92215058809578327963487309513528491103341797572012588340621369054229583878946071424855972210084815660586663220788245761718568941818611366645124698502866183082458485710113071919633699816798176643899399361500938912955890318751482551555955773744691551613688826468371018187137492708379903199582635620526414905832413106704821951406961862406492722905256002681062457171282207964149159307443987041503683409027477858495754499803727683303187233467872854410100935167932290257748164670724422257316136806852968127455434044553471870825727975869884683207346942308696313395063296416988000398781993557489103387440577319098274204903071276395349734318782348882220249038237587651972485901740791705354008333409564621759283478475503618511141722573119120589941197385852499467995525987742375902421928336009186661111310660040968934406183591669121074913710818480456617652503071959355536846413079462226136501297785917633340863816893455070755992382082118827175117285500905072407262596144410675114792348650772815635359095987138232804010166577387303712526436524063587654691610785975875356626304910825473013418394804014250184228965411048566996717353414322389349176262280820941855109838650820718022674626211429286306786092411223922987522727182042703343518252775647373098186075207371789381965946455404031400195515150322638739369655929654507241630554964548559141383260720215492072081692028125701103865366218562785379639751674559995420968837097293818416472329241092083513739253639806644576745893554772896553167173787903727009310590859527895172973020266038973204442102223517539119011207228116557217742334451972574030086113665175204797736922965772625096683594088703854998030252826361886038459947744585231953510156965579235594907288074028806593923636237906434419669307415452611114874041584608181298226307662203566567355512254885576037112336911118350582003767080149668052576684708732848425605588607445016372319456997426223673201497662341354172784640946814154401957568753371479351218168566209679583383985509585274788565399048604637666244107858179757353052615194076616813259663684899989053110531172843452389436011862138487835080717287803507248745589056141009627450349148295191600975807384744213154221880284838502106515633493833457600877131642199500725596708737055251647233407214311317330241726569560037227976130999091258311198825123316342075007042051010338294603674327971975727837154157810137578735758238229654850849487976861376636245325127248795973342178115066608366410109624420248763836966477914488956280684902355925259159828587640789480227388541124109781666939503335910649127498435364653408569471710374654171298649051137542693099170193523420357018038486808471566304519646342252685621194104025193725522269429581763603938726691870040197742659122988853986198668023585966489062848751126635248011403358849749207682205008402800991591922982107823608311894051865806226774490744595040077956551793383229046249345260999358139619474794730549991991058047460739580703013273486711731662792428522634574860940355620575009626381635027360341372661995554130720536523035651629474177392043830045119023691428261653095742327551469038875458715248348947834679739316601884295610492516366201918519723884177386974595296874428501078255097749816231258042926883894590919710085009311814172780642846607325364154815672398004123697177955033741032255267803991924337035270944336187986566811394380771604831752440876954554084245268758446493872061722867969165266991388607221582563857541055749239381865532459580215959767790498025742465607523185852202485005655932353978733897962328137563258822065045735628462464676025951318950941084475105564413635510327089989855751350613606438079807125103658577830253182956502964663897710365024050638341586571318226885993890277129752280741749219760088964210072252107536657742578650331226531418839107925286685384892827914018425993299083105530308664814474661316633999317503906663485373875330500555591283320441056734983501728872040560626156984692351641583700469606391289919250139240293677749596237256830251053888868005389552284255742934212658677394915653650364610593904082001667517481399445233973536095035058839001726222792058365387605736320744323243555016222207513453904789015253594496513712344528287280776184488827403875719713228501815242305256228071723099444224714152548357298592526442579450828926277285339005787993270506773344170769258227630321038330023720805462717270878560486487993223223298880361189145111619933579451947363735077503294616407160341443489562320214442117314781542402366298234162181613137245695310024612519394244670610276219396234589656034217869442811396560170933349733764288220035789880484322774038094840535627272568291955762681333865136487635344861976527290603670088903452074308805132277541872560704828034282539968928643586165124921409042966964484642702346835229427249051059807833188487389213722472399392592484180123470290219131639699662604349543431222061789807748532584049805089819494092209114801407620906485991368902914071732160568723440714121696597382863295091288716667437578703413346555959002049077694475050120115918195857137595818203952015008171881337954868746890139794238621855114029256453560946085863255309305405896422892339746335139344566664195982486259451307971895940916396271863633531761386760272458135503824325625359677780305623203150502075887271117068555366012011939985086137723148834187995891606433284286780385386433436710058454967269142868390815881488464639883537040687357049969844078218553353053858857852164116068647952675023571936268036364069778018888288403446451548385663638689318982614655211400654746814341257586407766479938117045581490794554186389930979603885145321360504596860096201119267338612581096635370452851838387736898324211947942894474630808228898514161064146119425079159020466281560654594441993868276563865874565202588726760073983818453808543608749481932906602965020697998344444860911633304640875880626026955196368064544184772600732002219502094722038212984280717151453351987439584480974917085223228601689965454011901642091076853398703587250277548440549039496316399030392211994943570247241525447477837104281444207055328113913446192221218190688122672018065036090207043624470931001378391794659940905075667030154230335019467530132536536019619769393213434098049355195567930317359065424882662577933132279882988837113834706626649417753038625056034973569599027095825171914252654737606222730150095763624387545122394315506541982887816813133540550499684549765312323309076086629184583862882530398519481226340020733425900057977844204374456019579478026074542573123529606318299414417411927688835949730760045521770858956670658207639750510848129531081981890031560103077159801283698797901284557913716612636097465514878222858728275346744249983485447478758736582292017126619053094858592036511691564071389183122389638104704347644609712068603970571642106990461382069884113289932077735943789383156004786075583763825964729854269655905934592830964425659699638975305863246680057763732587461732164907663490042213478620417476605400598768478210632653158972694647822534142707527892093243075964820229695999762849833857754266352838292649022930694087189886224948959360045523721434840216626804077177266501636974236929489966325079865308452513560475797177957974143074371394503728589256432216410561226199346552951650325971617874045663062217177255136513562783673141432131890412978008852622152187247967800727066725559548909572127722013783836347083053607311976722681922572404382463941305356110498817076353178110355920836315372848951785346488940928209676791559060134744708507426101317588647052717912254753053312640282495173904332324707692508690655483794610913650447749856532464084706791487244451656763422169290073581647084273607291767308238193317649182915840297482322215695083111252942141387419945072240211798607816224064928925060785288460087370364155033645853703737532474224032663317016198340535694568078729524605321894131180371838875388371142232431748199021944614872637810051937799690764667037270689079151181452515478229817077586471169087420073163116122167429828971772227178478571822913584104506542788519964831007804048563788127999283929982834905428874977683206944308539640564545437716675842532270305321526856210918006789641017675802037391330931706527993032201949518195047297081233249743710679101894985226186227891677376446712449411300985652523258355306124916738975128218300233543671550967426722818584275959944830910428658683162897123966234672344801525116784341018179016772264863878124866345109089161414062477845965138709111230826457366170657495193771256148526682436631172091460962656056050673532839983077274323850246051845930257719373683893548923728056732093377541612430545778189180848145542864106320022177842506865465668528892618883415550788605245031827469986917919477186940970446684645414927763005216198889031205125955704362328412675881482874404315718262337625233794021355842145374876849591071949446563440030742547716667537036978414575869475186781140856025183899601664738797532899316683651828579466861477048344169044767581863445013730628799476156428530654724279360829749215544916036618684666880164344505918864348668087837459964956590094104032386325472697959819288120143988186025882480802730628007456399032778850409408512011951096245903666055207151737361204692206237236545932883219791810642346819671939640020391704036641519460338520875763867807840284000996667795463489719238632375276950774750680853936904233153165143780101908114047333054181626873554843982519341718871468329553667997988382866528763381437786302190532934869116291287555730356620272877266653708017373229191716873970937127399520010500157192837909861205820225530131551100427308589241750886019108955718616905981193861820708807311859267225506273627321542463998279696525655406565093478732969054706537066064187300524760304628533110950455315191313230539208811965548142029089672442858956687846861182350170260343026289317172881578326526021568322549802994311345497749944990822055337608873218604442779779362402014011010516595451596131847962589316322318516026092172765611307029588168745718241530391492337482228273904892748551809306143553882622795710106631955656905161330092951759331028654686038385450984823338945904738678138650673324536410224358954540760346117017586261206578742618471359130714543906459750266973939199474368681286642833415648512066448166385509012502027185884126185578428686177209067576860386596034622905073221469973686670139865188671872333269879931303001197335867450750807407124398233842913688584037810554697522294477596665779432624523575791668479121306919570979975475402470354055819646946727250697552858752438846136505575245137741389035820749061677073460669105319360076441938923680552420424015346701060841772060481045744543842618780950348840675008666089388014579678867884004115392421733574886043312357212190420249144766285407554336130156542866167727107381672147809949710837238534588846035720589467994435014180676938716715805879524130059306335047998868310171307688499248020099491835341567902711439686930566031058622816401461580266838623238312732366539709114620213485014610850688637457129140737318587557351367308018745608016483524498632929989496009517822991045860595322555883212011448800287561193436818723752396846923354755659025161261041050855384057014506632328555670235634416208642117607998454509437369578775492534252293070019155290359650623616438966040344809222798396180426447949853164705551705334937023256382512024874914122401692594460305822427445915897577258471323937388047468825031507984585377721155289013823518124698954440634789956315981094766526024078487974709203035814655197374939463346320532006151127316140861662427035704551106696989395152253502115955042388409426572872454058690529255080032664801837100044463068165794035188543002827112274272387439278956126627857660087252747713835863895560639626539620693353445881350531868054538312043859821646287190908152020584315542179518617283751357821289780873026639070482346546905791497799018823529161319917461978798094127166771892789313044282400936088399940925760345110465134975654261273811960868620744414691955596108729407378099646111139106744863510276000065699346797903323180607384940600021342361334154049540338348377002781840536294058393540813479511633554031858596650940887667840444653623857240717484035981570347568228702219014926979485054736806365700647448049181908801268099469569052963500709912781021759132585124712250327554370086447295435018744762684825444931421025512003203354810266325000132019795212758393818587667807909387877491898851919092682711571113142640097878972801918839941574323421852421878193248809800071493880232531893326416485452056932077545000962647666257669727817897259815352024288143666877644950727431562340624627857446600604851516163296179306829773160340804429149498675643030004940324967320804818990255684725112207680340538000383599986759288556283672988285837799090640111778932962789501640827702597214618752343541703242310696250045847573122964763083179959081617793852944649061866188195815874193873360225501702756572470876839021664467986418098491478840601545386279099271300020627826858346750714546132766355614247221195944760848628855289677515735825274385266340870969710261952287869417521348133769283627180778913268664343294093167198567237794740821330038185827876350511202164685137225241906806064600162840565047828153249000268618542296535646580291753871284467377128433924887724962839965847037306686066779689001859080952159298067134880844405670275734281947195415286642221369345533745048335117108845443738176470290768745170683442650967993761709132505713557033220108874594703371517987212538419442108064315962563707598229065132831714228254800755739202275652695986256592773002520668312031610404464819016850922400365730011222552946795401137666399618292545084245950646254711295835763060670620223940084431799195586451130801984225531640550891903044017059122553814506735818748794456240585946306127354010329699825960189850111886856073164374592273201551793877173247571649602378743581842726278535200722820174544459915886488058945839222316406548582908774181536214826754166122748749807518283292031263271288031907899535233040667307280156097081620306587485229727705263390632873292331024900171155585240300066098707036399463661281019665214287737047322798054060482455816434494565127235346645472798706766205608228744078159872020074937686198636960961428587110214209691251360890100324074070369062447234823144149813083825394440617618897428829091847980577935279347436265472083914039997073524280410692132372442774155590850254350829960225800499483843303236786159595493475599873552315494887297543709647305828383048174219454305711937889594751353700286418644549678703826048522239670120702184976149160503334674395808806484918472137544059997423185648319876612440323456859827841316645060167145268293044379660598860479048753542004206785652453224488618840106278106308208099012069473753390330353774361226064855837119004578277285139766225145091699813537599794741278983607926494528818984022664192418552376607199791621513147697201320806479368672250266193558098161287376830240235965784476607395037939641857987536984934346552005220417325341208132245867572225322116188816062707014758818442163756348484978079485496974285163206724970704383659957072707912296763312240826461523093735031997958110017753076083137439031809343216557021930334700097472714162465037507481464848899690251507490350565575870442327864880172763584343077117029420467348295672190125975449791971769713008611388987884224708981458378337852775727366030783537145841909668174622728324899780471261175081860018361059629501583201221955250359170535925268103701721077772276486181758684954403055007781784926911911905878183968826258946504100105043317401606284180812642631952361546535453632352497289132488381539746687721493576322649621447903744428013339794321653827699378201658004930472832814602482193429905228215501750311221483114189553522321933974449590375890993507814053880886976690003813846108894667433042883544164353911485617755472410841514388926788421347783510288202631769511704745353519055444959973610959565778692780271421867521874148914580489556281824627025820937258922102610802334053060028928112935500960573403261456506761928616083604311580205752362145880863232705631294837933265447090937023269301198210232050823353879389012751500722899800684445005064297466342908409994912944655200762810637781246220343212425930137176882609038119061803523470420203763299497076809750586104419499599460040105367991745066554217811702190436461205689063525148501023856474397805705166372719385932356360663271396166395002570525573738864584030340926589638585375349939576058476207139456954687418487962882431315183950662014004504332854548875634085703283945257060981824012587461040550086422099394592636417214138263758530781260307890079882719550888507031569751585343806899463892511860638666057280533952419663044396195579634660397071819813026949964971360892163840974882898732550445403576007864261540398914325981877762699892607488762895973128812117389064624271829969380903190748178075210310461085512714972480401741080495104024955842191922224558813408160088491418059919212840962304808764467416185931681879383156044105414054857012786558455957710684809493399465475760889420291084512378601553240759042950264480042565731062030276474256120820711477427403085086436289958319177244714651147340268965608559774130902868077711564526792540455270962695336164673804296637552426401369205016882022317174462682979825557217145985066374511726971251009773262268124041436714948312743976404168461560679240065303646388968895534433204361531385251157074067879295726335545555678950760731995052504862598033910622519965873287421237523143485271562740380896581144259523800946392652991171239275842888242587316128938628901623772984191664904862614744405794296180271336219380604038597767974830150956876430556977773689401706823530078770931252678592138165975446988974328906225330636471553708725540246768318591367611119744892511492111766695955644644908834958468934352873625702191456773498425190236281440604695217300155622991053060586421376942542241013393268022316114065461763545426221051397997603218648232813017092200860608019741706355604796485093779017249291360987805449126755426076127774559103344716248349842109412347189542502282071847010843483100214645609072810272268252413047344536058215809632668480108721579549460579926388867346488803501895774826305602568250811181654445292227495736178615025943645403706050590095384634542482342095631326306280835429479238932717314685817359066729425977415336689569064355443890662935970927708840620284741041912792132728389086364880171356305485661288053128100807846632687479895631988727216268233117285342921477114364687017883729067343923932559073068905188621629828188204056627554908196227953109377693274048700995473486680727383455051618690275702070074326626518546842634866810152317726557231956620576013895567168659234766619451554416494950253655228691846022174828800254923194767987885015226805687937400326908391361178679632665300545658924818962078086982675059083634803175426645797917090765845103992687467073029288440066449439494784141599644769312768718237322776191177512331142249815791048271861297228606601941666647702701857846743408962953009657555345744073418266893165832331705294930257386706251154028488890052825063224479559409934809988513202854765875515764235519917400706552956522674319574044175193565939780435401885862366628150754472272604194464978810884119251190084901650707792605696296251840853043384502759408240361725980808890155429295908580000037952306882865643526469478578117993277181741188077577240793783291932248742704780709833945700024563405273392414302126438973347615561404459090787877949709261734915283779041121839486803699176246198271823790715615637065087825254601288486951650647423030438140309743997921573354590874328582985595855622892031208683646470493591862868269092737119106034787622138937888686489053741904002268980539736529508778240636728826394569951732080218152519142379571134225510919386003140269369401650509220332315056990927624751268838264680488160551772219339403136537639628235867809419530442755530546696371748472724420101024880924031700475924446372975606914372135691280502931776717329981607969003680581467613744139758030141764446887549619234811705404128304289345701537739417034691812643101315435533683805193626508299099732950497299180002683454731086019684720856495729163480085827439644962555545983136134521422160274914515710080181445173616065489766873988494625349834758279275930786977858266071535084824303073757872559959059814982081680548289006360710692162794153043549894084542056934098548802326657503113310910834365627165889452977430631325165262216770929891159740673308684938060549883389227031231532955968794570915376102906076232626033077502391032727518583056203402578770168845326224881691114404228074516765715582433915747039790635548095536699678712187121043712305510426756202955684011496228717761387331603108183503365859589929612745284185077163529116108382246534860450374383118983273580353465082570110030839504625739056453538591921608687534326825276332056863733991823809017937016601918639889635792059706766789629360568557326507259719639417938319185971870759803879312916743629882394978885980310319277403915166411586904861525138681496063276677143588378920694962718235367377781333871222411816569909693099977643873871501834719601295715177460355478263946340280134436379096793224755354601605909736802316525521223356484410868772060624233738385391416706318909633468980765364835210375740760026753022347940747836950687718333247440464121500341394872740207722414300593711556000265794761782455721570900481102101927005076153187260474268829370307960361956819100218564170310612898295023276238285894667713988258528056751053255096672019772654607084916465758491667277129448066860987637543988695772289579823832011667875298758726512607701949225448616804664352466015579106250069552422320795580552824525461034149222268006847953871905727535631983463190167477666395708856758768762439155410046234578027862143163226967667171583843618050905591563987199186432435164485974677176324880693797277075065359909922421304337859525030861957765040727000277602625581376629037461917666250704130007145495002956023620814542713361385455757858481466613876677267646727802883007878641307727529095480677067702662377538194396223182466946871100466971131109545109439987853739947096706858432817472286415736961938638911167597239008610817099223703258542897886268595825666240159597842521467179388807604473118937449099892576040854797644843083514638438712709911684311001640310878619347481347486221211854639866241556912637456353677399477215483819697042802079004775309908890876552299061409381380754185421956917512985289171973251273524659655397910533426578898783273972570171046257888141423737197103927214901653857565564769179160443289824498470565690156206134027834740602611629998212495150949224489623799533294766068005017796383217848323560336950103722532420457181611498701670168446637625549900432931798344458174729501473100721452069270777651535257694522547396356336754595786338933109125361496270099796977400749750598175622546941573540654330799200312109151365745994350278317475601073608260069644867949190104029965468801274160462383695744635041969625825016508010425582520230053976344630169556006333974587950974765020892619784754901946736528397241399361718680326248299777990371675416194145303269376250458575785724788566508998668069595458099568645902093463538803818642932195231444210826988321607129019608610270377465379186549824710576405979553854719332364410710507621738088451154281660930579484797038363282313332663630948477981828606987597666056464525642359337377334941573348393238472422592151785644078442928665108598050392328992211392606958724885468140798721092153090491788746576110396153075775533133782151374013575128334249729238161070574441831770626197714279134060841588192071029545025892585345412350999074691209977011421805487820696129784478605886442401206830167951751834233043192821211024878340067314356368725736130389393203987533270988347659371944032491352793996142905780060928873481414242216748986928821290740940373061381195006320233161308805797876420968082915566275428685777381795615952866826991973279432377153929200328362556400994116772803417432638774261251339838055514993367586796275524290385876948682785933201342778735065500907780330603065004316206053581677717159326135096246563738427103156658303665297217789074099084825627982800542563544025835415746011327866533696186387067362774763547090531957803781746632913645546571398165785227544706271543838749889459457976522163069655672480954280258122185816124247688578196221316794843759938544290283204615823757852816915498960758267614746087022308472546869053769658708073601409987457959067857231739186338960133726904389782097785318242207826581367953400127554940719175569971993979750722953023541965157837767084863759448247371233820282746153835470592374376172165889670753323456316918350511463706231983539756607448939926416790089005183431678808737656682260269427355189745668348150623557066522295441087077439729089972030949898580582289567672340007875403187364531848072454256778747154191981868422718946649554871249562352300800689899629789798246838993593892249921982384943692129704903253735275790399992890962524696388061786843514064901736344824394421865834233802716506498491566726760206988874623773718933916378095874397966221385500941535071715250783784519564841469088089902406490484009865308537043011082704081423663711841787564968515870645678374457463726682970502395743129991911476995600479680893371403822004537293700606854053244802416109764738012591505024171333121739656001306147074420882173589859030963747651761308549405334211028704637553068233200550740066734555073449783682600723643934415944387272348000717463988289248519635622440844611904567361482116232489416054578661602704603268641998743017112132106482728089756366992725324298744772754093053207591333806982860204781416040585779338411717157615709409542622673150228370868923322292182251032768594875225808611917520167201147120104273006436143738724681201792208009076214414994328899833225559848571367106592912330862353184072209172765615392428700317529627550260532755180951314446840213697134051628337763519579988840571080637162901927544641555996935723597592731025689542470945545047865157568558610315714763993439380047199233620918732993897677838263572085915977747416120728919409269295660505115387042968103544372235831768577057579443077784889091074609288702490731356623483162860002599778471393850578942254960778129768135204325758053918272480158699081166162689107744712745823787836021145740071640039512393951681425571943611758507710857543658236589749488200261243468814751148631884559551799996565081789684582353700303094105869705253579545779638039866201841404223541640313780441310488572731357209560084834443467561968949200195780102037573953438008261306533664005750136962558620028103493512650757008771920846909557012046283210950150089394394652333216342596508081358853940445051258101212482716376782310120571167716228954946679635481386021788228808479851586041781270448316613942660422890930567784991473626431451984985741377951580897231667562969974747415636648859872483869971267111373818153010592258407120051858717473345660108610517841916094770181057569536942219054124185426562228271750607057445990942796154874517770426993726837829922294952781894410515728626612826055433646395701181712240815538953740374292806864164625993284168246072607991344980919908956911682610528398838641772010538092368579524406963370506490840658120195356004892102038270249061892383511388418036577455950422901095738573800588186534594895975488562836344140110107705649329416824046256638849391181037983591695661090676499452364579852872607577525869661769034151337526267613810607188611997167565507499982647680812048320764765793010782368467232459153215540508499910687499901081028390017506430695478936667794332868985574416037337695360471327267154433345095291702634103522554922464307566693710118019920365252254700095795469137280358929768997767332421861232525422503180139905142787680997439849464319169683610900008030109789957533640929356359197058677187929301403571295588754206374225919224684168223100289835086708782011423573089368079540627543770372865767161273753646479051797989054248001465696976630793421933661381505490526333397600419340590275925258738578670068205163048258137261203959439858880296718031407388621740841186302416927752695019526374292953042694437250549133634068694482895804498534042251699304108342077864328079602483784316040969361710901203758749687456642180096039435965034876798255507611142431182225104047543160174853092079952834818440859698632253418565566682544706400116779249046212915595760019329551894212503250537408026196556626973682365905699347054721287685563664166546998545524311204557012509934697421362819845860445394005986861467234121654224239231751209388364530920634893906365739980188769910560089216557584918893469304484669139652247008070709725452757467814588702274501304736785397152513012013766937177540731569965353982451665416139594386527189861592047584061847626976066154496807064020476326691413853278917979228399648332856359477883307057556730170630220555076959496006940970594058144704519622402029222882826578887711293534082860301829525454173344415664268686223273499224764325467190784927215797291012259673562787634917685093993747633520666270083991651499076185702844797498450836091576919057869765536794440409444261337478751188183166355808266802447787416946952773563377188911012731711716991950035150729209407588426997575401813266430536889892502446114875423721466249721256551613494733212139971223011048305264844746212852671286032721022772371908913786771403716262855984659944982078174120163294867639695241070675415295645195494045405096304460205324378523390936253846967355593742690006799986764710724182246995017638065472221708267661309773113601352802475787250873839660018871243423256422842202911437751926233698678173913244159428159151747589818799603100948701561122360732721456908264152191035177096476479332914153845054629627112683027112212796325219343546434859539462533283899189612382159151706281248231795966370961086365629472177146515378105782046074696741689831338890444344117973591234381477850093693027003537978385445026364224416231422637735165129972759274126163952170769517271616364993235693564618786400225644236995458809027472506585636890116353373744742676439339192627632486050426002493416281284938203537974895828105509492045165383822791519761868255065642378925039631390303304302560208881642782393068876157754133031665845013952620174597727995207959994319523791078931295782053507607734297764338324013626996579226236933600810574319799988946333823628139449312936309038875316267970688574225292084482794013222395512058074349478533876629598466582833768123388916518756430984228600112851029669528229159996444400569470417016688607889859472751435078165146975761610327470051933107156631208099997444890453998064743762597486815392585421818083518290634184934610336375726990298390648434380322103614014367243994131345454634229179161546689247315627050378750653384928464844610142171906822501909321993260109748748796736124315237806572764388109214223591200161123008393010626605375250787940219148089637019077879250712647771885549953583999892523789899956909874560006302398834143377098812793099096347825524219185778858792972250612685002973960115554714558839054066998124136325681778906273028349644557356227259749394478697494657269228960721637874581237347994858529526188198535574919094903397575888959284387074062976925400279440608832854703353008419635440492561871483604150007191392807961987456428697516289705480444385678465120990831654379888876257270769216197816585907161922800932669839912509250917608875784639787640900793866171532508771361431562465957018996721695712190219501589918439044992385554057637419306720041260491393225571386296898249301565357329157093901805117532307924821847685895016454287680519700182341384531987648953704738019449349708158852502846046477793362781978775443020158098737979345280646083109467559555379420339019173777179939242811746065499707606244352715023248753661980203480140648247323955949374155291577877651434913358025012908198193178756784786976512508117820248903733685237742775820102597954204820068601354944139780605332127838391585976452537499043837365839614844438407491485429330433186843493951328874400544191092140044067271510874460174012211443313656515914352659431770972031116525139975473462766150140171334097877093009073802979253618970960652041745770369787794957510542168601467946316044055681286121823487321353513642394619859149143762781459934477596242827575083092524204158874991899721684165419926930660247520660863911666691983134388908955451493902648088482965857429505202760522383824423190357531906796507927829396992392954158248080525106723995360852263437916590814941507237309274484569616325678977264200980709683819325961213707782436018871142567035799709517239030689768076296199173076043003364139222188489288729572737178778201670052623672401325973952903620137823694297083669081473815899289851162861759021207296436426369172654361614293039975652138443601461783656675857368819627133525990069318063377151279019591475469603779276050849221432233684973952962030351123378072664057188405507123784716596764899354824747500836052373299100126661001032336847272768208549885142769415187458934958542764335616116570474344359960237340038036013491684349798705832600144116513574392892830690355925135110614490299282659877488963698259565435551276073139534043380483301798144841205788794652612874568133154764397258896455526493819638209180533446697722779848582480179913632815592340526197062569185884345922717083314741734224169642344968987027109218397842727462298023301356072404290493534404099953490100030282755413434382779508754132032364656564657193709713700680731429068209009448858120007990866050346050467848965067553418582793163095511115324499318453298215258841979193990571295864805957894106302354921692911480739917386715905217753471251647030902382764604631653035190260457051535477662641945324339303530303738672171585967076026546834203434053069219186263989662258327086312092820068504468426914152609484390846360279355118038477247370619920316008689940843944586416155743140111312677163443549308536000585593977828269272415978242457484223326959334935659069053400940595404775820181641634975224101175729545807802055240398657298727472884504663310216335964932316094136766133444462800795654481781719675538807642182630544352319996431100742350776951573055141133655641676303320519333781864256580169078511397056162309232794828789678488655759973255888043835890349230869363941672561420527535550046114203750484349033234540282445394852612960915827653421449869043619901011903404019266644047597132160535260823847929831968276095040314465481626685254350136837736258992392116966161158748558118002736574425095428422867880106207342494337236816758756538008231036881405571837867370090545511376656196317537092602070389685011309267864515836361596205539084752146073196193603959302778596732506380235704792821224893142189821625992007243295970171210066467687126675715965202527563866506983290545430097294918472082850682056251117801006595530397669061626785339658644918688214981575998626694835726551029928743417375529994321251485081482120659128246905572631745413720965568233756274012223201854901628330768144862428653553893060237087893803640373569794465204872368815610440050977244085087205455282818688391702094265270953627230789979317713153819134891338996570412149758773484073636735108193421231916507274496533800455355325734199787930667230065523721571112282192683552979039193688664016178460916039179056889987578286459078689155493048507469982017323782301754231727301417321845652029142815327622228065046336850116362992099304054780708723699591723065617741062480815290901971070568711138908018398557466740816176716695047051135570687026971870301484332819394393293347529581182725039196905585569766390001717075818903182641506627886857571394483033445908500139753245799752637633084315590277010257729904509153051979985006445139586922827243943265431275506124014640752876466450659146420938550149892755237457870634979766250916930796181376630746911606240957365316250269311980919708009300812782516587316724665985777224259290291770555676845142415529200429972360212437756076435933343530034192159443830468773164999450072455372790063126539905482893022786479746713453962254092297337172889630733358805577988505269460919665883089487403899780148432832489775680831253336232680120668674841996119744470968320660420089992130424625943770879717213337738224102625594665559686563076585254934295382810042788537210883331501930575002713899835149520503069425050039386264011438360387155604101095935983716920894719638652343382263810975987845617230299092959035936635782529753928899652378532365480658639419002054233567206910400038916542785236327608437624212255656547039414194865809006976120901364514947041493743240368490256798971391285013854646620872549309452262790830313723392255426193755408428018432737502696145895464155318901324023174037764360847888515449565322650428639646455816249392299661275664450237462939346023467693702003241111673362254094125974237420346587135891629524487604599222315904303761748984821203351816691962373954788096800262092228773637870240113105480642104344175945329613713755903065690534353262400181508559336339384205099252468236531472905695361836738494961934848742370409661015531292059472927874466555565334664947175480236221613568789569337736255468410076027008314733893338096076428506917576023327266302857691463632794397154143323851705880909094442110939855890568678933999191322283359856054611636154385797252095390552343962190273198911846468717704565868995234281559419642985564562863881671980459921211666029065262250332751925447839547924537435735884619552736873452605452548335598455602297468813776672369057858878831868376459711588697778668194911860240776028498761061740632031909529807517097650992487220014202425424843524744108851935947275463235750501694356606850521439898998280740077927867923595531687956991076109596793524469376164752230585553193415374802812235498407017310947133166348947451345027393050160156107417386584541433894017740576632164563149102159128559356566794313501114415539287595917917907097816121119861435614796486900564571040896807678912475730831715877099322488275280531651184731698941986449929574672343647192829710289653035894392996398446202190958925178726362639765750819323647091814984587432839465890032129255715901092995497900011681021709911775064119691834970535718074996809148628363306044996545299509685633214528022281423136837134509353779410526988221182373158046180800403294465544707350371855738366679051408786967985610073886187510037007548119299830476824781850966364379295661190413285595697882875453028314257609544886248455302157729831856702340736497975736339004086605876338928927652836886467104459226884060840409848406664466960880726123779347157003756619640971625279194572448971080570147771381052042316872761814550112697244769926643876324068000184772226556662481230679365249952322480008768936010098117469510265565710198190384824794816408457964616867553625861148336115068292597671041885726722173803979386377849243905922472766184873564756685184619174979225575883125375225565691090464223250890450119481208366207103249060002024040089906464583436207609849331484419934606329729754103369866086506687334237766879761660852577770170135300899742364446753277560233418279131218377544088609526264374693657649608568310369097038909040527656326695143625283519493613332387648565799162320645487247307387462706199559876109176250750687145289165793403684547467263279197600305483688986407628177891875687361072476967644463510009098020818012432003203587306957601589774237216165690019199013416712505510807629542064456862937711539012766029389686429198957992701135694892265957298081640395913736298261276138623330102089538782365146490913276934345665997526030634954100340442795034222921297412925622905711077017278371416378918437076570509485388846415472802087690174938732621375584124311257666702566605921310345166721167467466521104786401217386837321687684609808367165664288543163876125218831193037586439528019982480838329977545727032173956409387213136926382276682202745439919506259847865902660366829628845780860335101317377637894437192480357204693223785235468785528493940235332458215732025471073278710701144040103589943087773401993773318226232234873905739366822437932397157519975169791873039647028827079738289585958785496328424465570318773115758381993595925414439574940150820288464080725402910742369700557945134603527896686635426330358009756823116726360201109342088015515831468415903904388612278446367356666700763451446832112031998159569133397925600306052292048820356526426351055436669435813115194612227336928343611023634034701561954874623330218590406851198050359222496655282578870366471637610217759262516282061383163927317522843576440965395671326002919716158242860158339573079451976394427711719381023534450928133627160004990808010390066446828585218719187809639788716682915747389928868157207187001786002183841985476861102734325219439073398100147640636302608680060983363766677516546475377478070430882835265101029379052872129712836750662469585809279785660769446554510003463364924466849892842684231189987846638424928971123331755732398742625607297370655140566731495788097004328133410252377409393510252044390726157735383623205167718394120149549275786185990314626046761630103437930317075377076156637018800892774845347102498817615844484783411822877053965030438668719481908119055482519753684808914367857951087116133182008384770063475806090619640296499990127925916267212963373711353418193615755211986430522754775912833592313853334009666491486803409435729248128958805406824644092634630682939750806070209069596292724214188669575340067723943501289263351726541946021617502362100771483745225515128387633165773754487382443956801499484605207433985473247488434664814788786056473962245929453613066523789262851200940417199800878852453579706336286984806874475443057656283121765787783161342995435813491094270474089959578792856284149269264388397874522131711408383589925498583251199073977416932488242250929151797067038093706708507686221709199331502584505713805717892465816825157394762103752273417200400956750625210819346882753599459096837410694713622863319570557760523788157487981678153643807538077722431904346169300598798594647846396545924655431751485050299639896840415548762980317442777300170433755933779328532267159848330079192945849852665554465617790821192282638881531032689369766958790376196969269122087180881397840984800644551725694124567386297340089732752884140246575159551019543451253700370666157554633914866615900976640020541245741883289380418574847769739488127421187009426018955364837246165195074397860874072757041702983276829158716111049936947404265373418566354560706222307316853572650692985467095254612689217092499322957179733892565501279497658907021316971775895992149535454203491108606470720848574252827288915184458504920702896582954045968805191199089987893927737523697642782471353352186561568976977267486844700430250726416842376288578978595357750455542815609567058988404203135525509740840717650927120846859435958264958325001606918608203065628445978867556987217227156328878845640857671885355836116926445567217392660140418835456764276159412147450054535920398354176761742564640783938409984647529227170939864580979532606296572048389390711668184418226776704388089604563191952167400259446590888686158761738054867891824437266553235878005666376738566582324385585179553201045804100076183341743988130960891780466297858337290029568765515819834215978997506283406953997567938054490887354364516155613016375614210601692243329859189464722378388618764755525811167571838876537551650013973488936467307490317806442273047001540546128894112287955513560599472272817555350112732669454275895314452291267458679968159267516652492954008647902272185451111330731869478112774100942212790307217437619187592616526931470872677497882557712585830369552693075217903983381079975332310690781519754913123550536944796238065261132102763671195195798204541459899602780580683954448870159450932872925071006050955536618477508785832400847556119553268599220396420012296990303415915548047051344574837928960131606107605652775176445373302265975162239159931665010483649291373188974858654305372102376515611300655393731860542974992006230698374260282016251133490008504210974472545994680466626312919324937596190641524864501752214258953641170812673697193646414574697043306414411341349733509296758733658501440295597199458080406878874982207804675536919171154812933091265042691553366084811633291264857240465010287253222019498096428103923405964047813441521197326279579030537073098947359090639410519474100431109585700177842636379962119178610622997233527940382903434060600399245103442940915677102492783594150454370533343846392294634801588687747525443064115014820350229901308063868710621807798124324853451307046325201440622093794582823686067819951129303208401154789727581697667493473059676886745042547961169988538009812823161546223519975386636186230320445066303493587502334663484047569962632005110319004093203587852858009188882333263895807552599081240936235550522579978753111148567948867686633752642717347309859696789899399592138128667186346186129129321817658237171133736629854381714064835819399359190672078664536250282242067588144415086551016561163943722850403280323829168228076297004190809891298875490654841167285827926318706102102179369584554574430801380304725333007358232610178559661099640245769800786737085326048544361459767341081437170385666377372530472912176138135305407228886960123446472268146046752057502852030094831156165428088713602327567850150619395402025599944746853354196024557785062605521703501106731310404416571157385411110458400866417123593026730370565078847371766695425992052780086767026289319186909263613634572636088260934494966354083690189112207204766026160735573520168385922771514536691864594697213274667352238890565912311592388828994105264285918965068655686210599829264449749066249698357464881261036967584886073918060529907979803017670180256200192786113112051359487847960125848703652233217555182389075966240475031060590824558885986659041754970743396828083661956992293274394894209593820284753646673510206948052582291771874140921530251701585491692699504427812746972093317074691197307309209315374003072697547713728486162387513887752988232906484482757025762390495131753262026165459735250631167834351407690956882314502644554979372998265206825420879023083378624789587343756377878661372665284410637692165973519141001190841763754308932369756827077518737840060186934577816605354913129073359873869093246895254955674927750146480155138329612475198899866113273224017683330636669371715751864474044136769740225296283624850776178756887373612790703560758629113874493817527418825033106902740878804418649730722400016527821269255724968951558500862438846563003283822221400836816215969038908856474321047976217167381694427596247525975677934138545946085323260405460042987976337196278405304886294294618622767299407347552422704661718553677933040345546101924742321355412430381204830393390206671429312638412423324392771232958000693425926212703546395538845938798783797463699234606218947810433710957429943062509042384961894100823647275245798550578568221448889104628894049985939745255033673185684427116302903403519210828780587544241461612416406833750600042897003308898328787006644195897546538478103601821676854502612194172796323611816491252368867318839433292828769507706408869201305647305262089114790720297422475506668022693542835629626736060157357794236103795758264048910339234655369018255067346270686103686735916110667190410974361630156696086942152957113535675541084003712778725675541494376948096455699875336615718564455383072059364133706405106819191631314356881078791842756085362330404702556353158269224276242806221945876573264837149998370586693104532910380687410887126429775645775389312972527139762449990976954151987650575614848315089782368190427798516419378897249514502764886603097794277273427232442077284627184523019654706045362034931631623089864602686786378393922975127790548100607456083844310919287336184718148153694421862839336764035336517159082025577175394336848650589745933517177022644118528619151912601679763685000524352944775929138264765741184206578946426101971782551939395932013364334886906350230557473419431582671755134796030133450256351315991496473319238307523298005306179695615224658523948337501400122523282601109138125852082249907449309623000571293990237473147386721262524857144484291355586219783001977607380951131539641075363224478746491028521091025034626774678740150724273125588030423870067521866447089343067145740419908100403625736908528805129472215316757833171411401813753894953955067731586736858437286348800487573776439163668979367545241516508922103142031281798855737374401098047831924753984963795728516428830415220526145056886339130926139390726127639202179746319993536477869802797894290914649870067262454931407298941909943654363963814434473038489181387978057260975438299807404530172546846097086534205396243579198283862345680093096956405904856473380333540135215373027879140934924261944242422082393845797390530416418245296004875280588640411448893280698192258114298073301169830602942814849813960516206508803560229668755734127440642750308679818929734789041460921681510615246697435282477718299401135706389655781876567373726107809704785790736632495937447490450742526107774815748880972859424390720588123381394649809475492002026288283330536379507603105404462016412066791631265599473377352966852812589644867998522530252172264783099415404317087240967779534180819828640372709582139137112601804432554167326390736257851233980461297293467225495463992495451709953330143764626289743079332908094766904243558864436675642165431031109922617117399500744558023336340999329209091593399889032440221212314341298543959963071131111774922259966750125896220004596239104150088128594653503031548079075374563406632995826748328027269704962915764107373405960668355553414188587976483915890902555896746352314659199571025075431851127052585000356023520674461587336441494489671321367079387383763714299310807527547677462794705848847254513709106014104633595862706882269008763670244330859585604159361068512053485923580141835795403889917446944716502755259926714608661333919912577656193009584024285880839290854092827772200907313632901970625886893729186355899174474732888690653461122404046279028432078572702646378347892546969042632890418529879937532970651084210596089262324617501984618788786027119327630207357570117355068541958216526179416043604348904203700968121100172040624996966053361224504795744525889649364094201346022264455511002319319933277784886336903992021912086286335474202045541425024854260313109447488232859660569777683344233526926981135056403649012541926284027792022772453221257325213003867638148181569434065436126229860198157454076216505834485910822146297155271342669538471357788520137555075661855948605144388065691760043466646132700288616415429325740479068296717778927796824219524569200341450957183375373706209644249663223314124949085064013490954150465646820625607749226528630735313532419440370639351816843050420546906365242738095256983996029495805221213862240929009702717511331848393799008183521774340471629142496038234123349520219191848068253717643132043881199391153239271571406693309587099604442074218193760122171012837630455470343076090534811837243381405617676349831903710226942199328075155350653604088710591932360009767029567312480186073507216283168947348021768222077631066118623967831122325548460291927407581952380067766693131027523306880347095088354178925500748980837055389571474998256691703637648610121898767913764198706717806791273413655021578221917876100351844665124143673595139296031521666271608683002983638739913491522091859246252556436298252504985929739995535874986209325047701749963427146327627827843054318373817770403384788349091604488040226503632225283736763069334991025939138319969845756392717751183576737880730358033473587143073045102002749553665418191829304615751424912471069137124457953207051940684461874233612179911367991448873442184413694940476011381439614328324077843373375985447542762569475800090016213607014164199745155092217924792418630405349268533096416529121907645961004747561551065113810720524152422035099686807351404565427800187882243423540651616182594736208871516633127101884289507466122651433604505679213528048827423055149923095633480335454696897161916386198981964178721712074304662037208136052033486872405242261230280834352648339329746012250368779340266959037512514812749323844216857149373332601634356012986443911311152037192172256502998377172582279205591231338757200320775661497584225368627630573248932879591176823882361254332753030006899215937518781214009122242922896341542806016009515746995381972110874633316074989020970251102627482238984578140759542236877171667880764409620204080340325936806230730842337613179656251261321209104584931691710451049650845182847549783525599069847163418322944562349759069301619294361249672449107979912661404137897097546052303468485111994845328173518108377189421826618929287458694485304005532708752010755417241305746210725747249390695344488265106324886967148605783393222325170599288283711725934673789775324452433706495868751889070022127442824076407391921868172176440833828682964544649788762364661397102438423781250233777965591746750066166700488616130754448852869421179610720767005992425054861960635767233271935881706319790562304613250711084940267107872795875936478964520323184128337012210537290696078468811203029864094992637859167458781203661937187378602939494317195090293654896080582282395823970579502398202065625625919971268321801646743550343032599973176865343573492563171641980501843185722535948674489782927790020900872773792782134780558662244953170816342534034677941933588792548096708779034177381640782474430610083274488630519526718371652088240690494756539019291794716420898765305563326413487222073485919671168343227306362560548817085935274044826479779832828366471957784822288596866795210166998263725496930742323404801181983260135784640393510148467176282442655238032399989209248817156522303394299152299988634116364823151794637041623221262879472082650818543551465122664608306265912613715970493376562378901589715967241367279247682787300973219448238734718988657580278438548050556714749759393138211880622777464233600174658228330217922004714204095341908930448472796570328500430519343492329615968158148995523283514202139424849456280044285619008896666167160793366624150728766062160491516104231835401147394028890676728655157083573710362656216295184343550881436965185222627298592091026059268275442497733142602325695043737353422837360966117298353197939881473176577743002948800193229295068448107501569938997836838178974892457770290855588827474031115986662507250389003323985948198925290502745003250782314465720515995470844600597257482865746388475582669697564567266761884389487213107091575349723706215554707644597925093386683263869173832741746009519352338470195177924492722445403208128311725548045924196539346483951103640800226884834467967040779783801837554208534809473669598957973362574871457685146225835982723609031236510065659357413467450794045446794012299725510772927614390943616980777164898913554275462882494056015788281809619082221294442613938653098285961151577879381276475214626560272024518183168715285005155853501663454330810350798924219853165133642272757136777529800838719104730826931250307930101432017738320047928934926110741439076073298534491519052723161352377277144560232142352446640678205724137161186015491714054356240401527917721270201911729569984575668604181506854620953911736475866225633183189031079115334340823990467806552252633596972193618498991692118228816904265938224963414001462996359543419250613297973375339254854110019139587695057812749797289226904354682134387750751742412723480243713375974949366208063983034981058201270391507703356665277784143940625641436241337926929808706611691184774079515382955791327163577596114089661047994129188474974718111059841409989946720694826035035399186567710074852890292606744571831814811288858577457908482996951281669687159299158774440184342123269535283259661202818587127174992698263452956688201721068871524234367592997357643868366746314180154959670927949205034946643979074402048913629895862464531520915195783309574586719737588754448700976512008175578058985185303951987489564111223577470984048517688467151069413667905936243224442086973408702442156052460006069041117307588336663875565698951036317865419915098760455463743755060648083827831540033168064506283830619421432175472797003306410059945190265974283047907737440872963687282670878943177400407422382663939468952087509985804166618769210193003319249315191662119198002239580831932727619640299194828307505812251640121224981511368962420515849852384389168522890166475785593477849824939959603735686667087701187165000968641193840157408945473361698881249274158017672508441395485958799660677793877542575484917998396411649944864106358086667805068696592897232121830974634192241171724051776440460936358475819132602400606778010954994310328395905094015754429335102474819177592556869535618050868038848613182907538649585473022044782593710324434921350308668773231290157944923457030751136544613329731745161843204875494585466559698620505381536878646240711813665860060221374841612622624369361258079560309184043746443867802041137886439845724338582913139001253607050479966536542622912386671011656100182409015439090044845714775094164966418020588428554840598525559592418121934201371004050202935151696225967323716994434320356680756758998342860183455454032971323859705378825871725248330501339909853081678860840194616840832191690647163189645474165254459085662480168384558315236173735540822507908406462634703506121387252925406263511546324933626461965344279409202342491274445724115843223681657280497254158747735419400729913787717696513457533061662335709884571675050387246111362069034946364562803431842008810109229910974287909925812607437533187290347602965284202317794175707041342974918931420677601486547584078713953820434067185527418078651236008588417317634712056675669007425165011308364120117096027918514821310439039336678939439636016820618898978768460195132894544910783270947406076536139413541283570858695165355284095497784745889032520913465364012598836701981008397483717871025220950152662128716623010600789651036024091948140317613924590197220117536150871744318163089082985707048965565006434022949481976407605029185715249543765764171716876715954223480518167737307541316741178177508342431412940676816993423139658193220685921347298515931872555974548100678456647885206105509174940690386523783431752048735599617234390274844603070561302023882257125183965862795461342736867734489826505202452238825256754858191392184047844062728336252626882335338916034285841453032489955148211937238657233726186936349975026142994675237264165573041327183052772050572533313891047955754039030718631310720980993467103832454827478314895378148717159407339628760024830898787246304089241316587763819325857204464145718939413746790679341940264568315686868860790374176153703927955173469369943492343533654229260119836534775921170683054534411863215235556343572034479851188498118807753224515213882416523745255396714258770920472627681979067605154650034173086654300516856785628416877393492983931949838582963623989835676960079723440651961215843054523178870738444578550028189624539534105535974317283770402574132438913414894701994870312510341906181419857109913981564388749364719000815043562113588207373805677267190360537448655552831556146413676079283456099556885754573779058455299034762223169986893748684136409381325767501672633412024912664366841889807326508284473561949987353356100215798153997313009428455905924195312842559150467221421776540318507579808711363600536705343636358643468021416919745614896194187565408975992606779867756241556713320847862747755950342652454375324755711252974192532505131881798519080965734761866770278003444681220868072402207788074492265129083267217419746965307378834304114139714823660718215976721818876035864935257206294276202567964612832377837333034629620656855789250730372977195394349644405022531638379102255203122350030876771200042370106655830820868352743035405412955715869459066092317560117878651118696916434975222451767169136679495786353873704712616366649159193090662086110879952323280744440681135801032417217694640709648325457019763707584425577145696096260426657887585638154235603463822521998109076851627608731788037467496677452556645012032038852607784713190410576625311669173914733092237370268144415852241201278444569209825812447671651334962291615571012302432950966100044653733009820430802591410284201466949729171435786586586569379789005508806348507433090727018438291377618702686492616015610035731847782763982246189762309707944053934525678890255654963190690171687968329419314670331528599292364210568590298885843943070941449095612454682111839506361178705241606234869523545110316127766041134749861028923846684599011884695733963697236263014658813079586374623024188443311146727363751891631642026210637835189864622991294554623167121204811929847416938492163497925620680472345763822899732020306304619534070173633480559689106340007314588044018602247425833707762044261614598302188818759280056331471303073596598437942055387916548297205581948167960346969721015545693435737342237969506137541015923726390328246189869996848829660144465285123235532219464415410382313908156409926765457092524501714816434514216582197115191664326199931166331007512830634843211534034631616255523544373716594770332797967043701075436635111047574174883426728838982631529500488713247398780020174049150641245196591938243774595840984078656710341056810981357555080671607015001295199449601499966690018096397509240311883107233974396968385549369370958892958909741143617930236373722954694696399378866726844831670821690593838451832090546638879542151293787845425021920504811279562830650425140253407485191301714161216044305090913878769825562368038245971770189750730996963216064013753659321561084273319155337610439730861176705538151276754978875574816227467292743411975811624707353306683744175925234166729314889396542738624032260433938126982347405633724985404376059119923491482848702421056064091877475463169429211955652029709685213846271812350034792796139297815943270410129765841413529892908435831466757117209847441463648411597096718704724807223570053493741450617544142626757122004379934607928948019743408800113382644135355661054553096820206506843206224075336146338552292528152284100247074298239235603351938632724592272468171107226252215418373863686477500853231538774754295072148793964091442035245870264372742421816668266567393852897139139329955009078780288962554392917604121136240571216102445961662255051720934874930769813126864384909102524495192330014386483377486065805303726520633590523642647779472892753357542829135355509175878159358079702963576855948526693432565928044027426268671350487322483114479899373537432303900606653713550785517065923949177961948993248467991701813243915220204039677950295855229795444170597644206441350450740740935758311705035068744352399515740449123723979995697128016952799108514117143132591121918524368158006375887218001974759177681818412225142693388139106541987713044920320190832286779209182832454454905205005655573503073310580311781498872489500917634034182346757511915921565804695666510702766077760063022468486348213222250402566781699148516692278421953315404488776683369701490859998986370428137487614018158569097098833659667439200877147815560753943033967176960414961521527369103066793550430451240041812360081561285720769002038421140737812011106201878933133277287735677419949557496907570232808486972306343165164210194558944899255608172217954206759117505780249918748039300716400493227697275257647557665822883201155347572345258778476571221632792782256101238695061488860208545571362352863553424765245480241238833217539935405574883889983029061047450099910539695952883523881984605613722355243601800063501508153714259162938307290557121489892163164296089029229661706195851334933029078694398929450157330788912330025642859781569638898272003655026941581382754676915136990045958762521281021235193042326161800503985675128185607188829859776542613270039664172299636585961611602590819688441562271915886988513346378006841665892385991760497134189823173680523884152238680122336389969101395423036219400043635245334207591384236345184243047625202245283676771936657939324725704765058936604164262574516457962370399064550490704728562745369071960321051173696521824966062951372384166601400350654102764847587548945926302394533376278036465521531996072848866480120881160107079025640431398643177446006695900827594698048366621924763253042878041464131829056598171214356362584302326899582813164172139911687220839995914186278846192195463168487897994955505424069640950899035356183218368318459976311019846927349376133703698340788099721435893559635859245619524141020650019124148670062660962754884124973807565290414034151794025026901125742429914655978641190728195040999929689031621337901575083434453450709370858878620787120356432489652134143709498073338526964859933653097702440986065497004279732887063642622005268634605556477400527520196454304913289070103020545372871215324599537296253070939761391714000565241297566513807965045209900033415803477578260663268117680642267070697271738113358724051057095804862684502307243171785594446090153858830868310218993571306216109044458349517254851486536445889446132041313517905847431130409936276624063342212043441402190037290497040716242571359753115955490809289309086858512640332488712260898879137461176073141170100199058738753388145520151419625711955152855148223196075127711293682818160652331620239938679243834504570502761174618787433033426716808554083354213924092176352367607730857991972389106972860621650499656979411488284357623055912746046049467253769576029272546086177946185703963760576490645780798653226735203449009545048157497926552553078376986341679492840745516840011655185050019061351155568216418509505226521779742032082293438204732297777011510686967247046191485190233474415642595784797916560948671126632993138591034583103897772859260954163768664059033412226123017487545747348781261537752011478863057808218684989813844766101358602507437754777591097888795254272362393288805113122233763292933061549179928949552028499259944786035903679481326576790426740127718107185093072734004497011385068191645836865196697327898420553074517061108132073760301391206314576049486034498368245616053576200817170590290001031237937764616907162005994424757519222629681558041699817333804145434746712426007281739025556133091370783875020252966922124638495072616764558566854246923277723799720801834325302140025089767323139968234294220792210715778210748785850931398335047326305052428205354511273937201011368613998616730502028092527090071470421205700570010398640105608022968859452352336470709292952552263334969432272239794194623469352958695013490658540817308472960965696612033887564565324299399893730597558755103213240054397270095049759891586600485070924652418595776709035305348915709097454170234234851666301587320162493858436874678552513559468747632109272991414400059856456978460903325488963967264387974064462735345538034764897298810058411461161335100748444373210221560531165368411691920718522062952742297954847902696697573184375158554154052536482446784838950499901110832850575538800723359036760212705778436297358035692263591664719443789057460333817898859450270938446020000358915202218596179384428888680046228291377633765916062870077297321288867405804292495178965675005452150306010253641157379681103244347360941186036996112995849899694876580080638165220712059191558344165962143420558841236456355470714350841430766625952982047210271090862494009589400159412057730526040987908240698060129709392869010462716949617963541283908107837841053863898850480769013071124128763275288306375729645599074093551694672200132556927180641581273329974189547982394393914266285441238559158716523371571112771252281380145071000339478725970860720545530480023671818020424133914290331834840630745669119195463710406873255605149906980474618434109000522088274208349095714529339882886618770726967597266082887388229474034189368252952911831106428851267900744777414518044634331914204323331242225759101652953966687901475341092215006492941581279308251539408138035037558689374535690097772478220387777670802239603839844256760279962659845678857930697357556925191605753414390392474186714791561754078470274585973572996285303833525008482991053311837834332717497164480112966489790667605283165420751069472165386927169658888171367348960818117332919298584426011870778691666282788589027814901640912766811650772956553420248532964727810557785284441886680565344707452512121101204835743154838899452297744116284910094893582213997673079104329702580061422878753449885984332471321492113001849042193857791819494520181934184218553629118863762506885827487187619339425940187555747503152901033827759435675002648459965459849588516563513379175646305142724437622012077203401556899519958016729899198055135107657351900701363061455269025495066737941813513734732766148834460851455720247411355758374712712060045223400124236600068049161460093591737141616976619290724904893296034343197701765606124455059840220252483669577508141753603442515122107838532087808159201846018986897744574972253903907306925815332314635269569815050662717244534604985375505355654263212711051612244409472582270796269062376896633782005553529655716422635406528966889467069781549465591779646296592015577467874685319264473338963241318806858831582974976256021676445769418201158909967036086783681595994497480994089542551922884895802816832259281774271918234984650805885549934438930026370048881510668768550994448589897156930482626355331282422391575847307891619314061638391162777506368889686704856366533645386798035096337688235824831424145917061088833442969872594983904487387608917293702041491825370024787275353199345301800905497562682736750879387487439561634311465887328261539762394718385672017248417382114355522056150448887942752381096526142181819733863442772782720406273749399712480442936367725774510842790833290878340123287142327390689510269658699531543515929397257856297266076334969280636161204288898024362454484261686807735098951073353692777554686845534812395617906481228704922747248755906995893235662476977271128922380246438973475722074052310551406660869839456635369516487549246217059245124475884647856748202663918413325282847452420878968009425383992566381986673522264494321275990953223248228545778932393257126626415056585095813033043094819989650749560055298037567098553983198364557762075225130477671199995972390964482016459042996273537826907310243722362546292934922074294934372145265429623706552099735359655201320168963056675289258060025614769515732477943120797209644551084378664823238584732018024586962392981592017212221945460043922385871120132757858067333761806293516360169314133397540617631655501080029439193935633962184527662560334092567042601663215370708301164896135096450459148301156447394699832555824012491920333325058978097764233584384605915573566384892103672049533332357077039553088170890893189485049219452391361681879925845649708776385432674543611274698353486794205933466773551553014837963557739340972869995098817539396340677146369484450505026243125284300614496554468672306890449327562311943020003639597161638293273270092911201742911583907408200420017859772971203032889233230253646864768329261048610799030644677963958456404172393699910985633779326713499155398117005213434126284747472811324149116256694401945793456926670780110311411960895909204945046224976729315223454312099038165113098618525875989368148607402778986494450526965304636006547041590110559361092732374299084430897646625236936900470614767310473069551442640049828672579426539438680751383469468723102986542581017023607552948101309590262346940228481846772594392873881913596163979783629868238088712080090084684191745191141621624222607132472482130005241515869420921600629508851603328597207666327330979680881448227038518280116940166470988974439560154824718483908162600744043914511531097121214341609175362996146072615470023783899873248072391668500583282370191095737150759194725647743424716969189375009881976518928307693404315318610812920830832363105546441480305116585533076010116972953529517502630782267273329452289806153466675674885893434255629748218131947320205439174308292786165911468714304029952103340738043281313518186860054712516429849413087975162946799928319829811372801414534746557237387456612506159743976927233793659312598881637987656848239726901846736558513013890656852963510205421649374981250656591754106665474410417608301929362483779273891209666829569390429065918474489713556637330258753803322653940328880920839885756781593134658912687372545336955732032177895581864118128007527367949061011218272668328514938299615134481195197849618126723859811972537415151631404177771687247750698143851114848980417897535807414146639037337209876201778385559432083129492334921754238635487533075392737328057182832953696346411074512530368422369649784936924291173053868257057020147929566140071797405638176213958201198955227282450785899635721903064195397337122040276815081590019996147565999301069991864315312619864762875024158366913428083114514634015654543475030526713723664060636653723741132159907976898806904848772908862772785258603306180061473911181949652086160806138185754956667858903880105264101476206130829191905773755635796094072524518664302593388054177754864202940490126618557984822559343226921360823311024657545022927547896635204714651435117329884403559893741044267112721473731100188099077786085326276015537143216374063290557534604930363879566511806577056036610674523278029421424122864216698313648322057983761910062101388378393661466593978483849227784769804168614086931220977982513191941958704576269125681695604279869480631496698467471599696525056869375301137688467400863301087664257215577432637237984894134792759466557894894945287373773531502343199932353830449372836308281918820908344520430093931198640507673576953834611640097419824358670466464344815662672472946081425379319939028358268514697955093382115543863717011289229803202810597856057704533859244267538812602527100820487910794557600913682580096491722405490175682209291225325162690042860390246017164302601533508473167710151213194841256160161688769626675723904503350965170316881018048032637669541839231490888196272164639453440352390209374461403204633422480448631916815492965784848379500987850129660877106448527523430778825128382711671251837417130888263854563873116883502520164218004986349019684056374258757899939292759839828069704924577498461009201454632799995437452485683625676353706442884294421666497424154030540582468455307460346023517541536549529056350025685784744978530154782551831876863994263263455636417819524555528838756922482081178478883778712204293102112354944880894478143581581221087570240774009142969122690721956218723735432784114676220231750323776252162818419581143546325188844623904525086033119049087526009748813724632256448351959319991872319943875301416644226411661700242585652153540970439958464537802534337285390531149581693843907032728549072668346493762905752327930552028397296905341725340953009125918694173149434489683679069222345697325509773061756225524996692207189809718881896199349488056324272042821751236268600156580342977116211415846405240448091302451606041312903596163774431650374921250445062023665270196299955798341702296219682519743088378852531746166745107210645320893364349116226861251073498412720825087390762701354163696228618770981638476078543425342675835330108164669729113109752815994513962314425558806149788422407393740325250672702664466794338857650661664437901613629831583970959130241335675774917196602454529482774337303830081365815439733278268017998523344532143127727975606758451657956979067883502670555789145526805547967624538983829669416465025690857505281683366522596350730845842480239697435679519645960654811552757641632543298495284893913220831067688596118936263198144410102732548724391369201252762484368641989031884195134820222002548496452509819365628560465387623295510489707020002482039139723226628182202090478489854149164910207799963368706490727886774932208110661841956490558555192708656570143813787826270219931699999185894212127810651580618800257178122455317170002034713917878015302798929777650361124535869230754242848204485297185399893830890539838587631801705658046185987698094629066118289499325755630115423739848832192186235532141679562377698769226272277875398652967892291987009326949719593739361876080526841709825997614319241603454024011872081610939871462359313283423851902165875580825493388989387444067583823703290889499081600346924404566833711394628526201827332839712640153543181991735224632114725417743971934834780850969456278451768604957782063007236129112968668555969264567219280747855068144122945298886138643295025026130422286890145438018443496571563305330411017586973991933962415686325372955347637498345269524677966171997536858963171205469631305834994730278582679671983426818211189671266678719258203415854718329392834266050886447721946251000379311221279264012559323386985244658385794676977573249720052682132160865861351319757367023777591067230087794057369053400637250990856337808353302682954506363413425962775276470828880153416780737227226887913560887109217617410424556635923804430716757433072939064740392595860907941428795580491307719276918877959171260025475003357636135040651695957493331097832316621030748521398746242459084457779836669240758058265882565479795596350897139113963001864190558093846541499571565756652894612374971633323858211959225359211707706532846579684811899458331155028876063163126802794320390926134353539972811023269121554078196113918157424391985205961582131893068963451876438350934082806165203536194529457946932760017096813199063781622747644614604400400904660723442005470079707390735155345517209515883213520453852002040314004395687664848495588465736853945289879470713406915587108468907987994394032514033291070607243457561820679581098970917370352029227920043669257688917558935631311951037132837976621494682881733879368740281082924031381273506510841288343446701663287668796444861273366965133112680640859479540171426939435602077801146039756793590653094038158682703145354362120440412383332452954591676656735907822355179993999180726543405768209993024178130753316477708293974201572939174563074221089748362654468539368894195001773568511338497255417653721668720479861722754050257500203231739362526528840123324357740633605710693675149301904622734592993887818150138435923017901230309152334353206791790253955707967639089938413520145761162242968328314311649426336042827776908354872836839179465237440665285324923807413884734037928802362078345972652546971451693120096422365152344516480445003925802392755414723589445539114593139132077260237403754541002557610450528422782045565487441805257351217616844944799296184386047258683910979848514689341244040774414966757477757302183124096443831869904220010022383740457871937085919682787821899193920571740005949837891946970208035487853342344312885664297596736911085569163386335895040430573861486450635615728842996949483865962255117396572778546848466736034191219779095648393846015360532843583932305153692205528108503715335515283167381769716761969943939148310646562552893208801474811680157297810330947488786273781621089473493451791240294073274890599512322199894157039361313549534830390848182052908331221739303847439099931829072948251745595415483788273217544771908192129274571119092196360154956146484276110710772001442902208588153237618734101492886212155857290680870927632507155712069789805860740383780304517551307324023781346276290534607076223022720344079775178186920473042433215092371903976346154256724034240710257320833106839046073220732474919570649178321096697979052168210744841164113992601716112922287411465689389726274129280627444078651147711207252009820325592334020245061068470116876572875040261098949402992506866659260635855002230210545634575526005383930059388733762214550797740610201137523000646536525740719014738835735124577607341429599532333866493165206001918930525749948755902968788609432957693476345332943562274373794952607395028257123728450702066333431958376370853473684159527865626986046177374691445661305314358469150113077723930785552238534778914018825090540400109880382157671997681499046641693922440442414829636451032592617618863034412234447982817509102837358103317399463815710621965644503781612009967643972509303408850331910908090916861842524569328915990305612444967158480799809441204138936499513901070585955044538759127917702248010520762856253772702234322210209996100271280143384908633493212167482144744357700666305176121185547832845291620801126834523006787745791519729029041768132649619031852493161626023252609932297360355358163163028814238519990238646460632191311006199978244063404280474862331313242901307269014551990636434130157351304140258817406366088369227324679423688938793181215312851779253404449693894718459689717606974636094505971721339009142961497942323186477623491619180069894906553760205296633574231866002432835276785243241594756720711908961323329528591479915435377223115232361252251167863425708962934686239386887332581015756396529897395008633033315515672045193148180463679693595185632148975564520261897281734492108359367623679180066223424765618206025656255378991416964416405218828989415488776345985567016514124554745392212088749837385571541484430224079126231481784290401619273510095660903051866496253645295785614357241104841974534377788396876067900286694439498800623193736233962569417016429087777906588288338577150290035458289803369436569869589354061182220041647111596750010583749378829220010320663915761214568178950059077713324451649953724086111587742904223297135629658684154291213663345701973890867391098388800612517424009766282878909764983242368286008231760437445590313000675265548818363951161588479005041845246499355251237276189827867790719549400051872676844220132193943058016273637613764894845899839823869774124630740326862825452343383043100201369616920500025541176704623571045014585790539905484613726536641816657745240992886125790346720071293781623260187689242012857529377002582715627766359961899309975539769658984731873854767546919143228315269149166798263569892929119661642087885547524839744014735991237098718000464146093172826554632277103180677534381866831626684305305144645423856055212902720550763255965150687289933040712880622567489261750638143266307997044364051693520466792218855047732348362289278526824897717966343877479212081266526775825368491037797927648490328165678098224066867723443413460300027813994330256025475588092760552754503185731794048297886809691085003262423944680325878455452402109992812002764431572606884369087016775465648112143331627566139493020355651554346033360614572636953310870886326762793533879757092124927018973433670447383657622101194270307038147236411882761069323582777072375030490800842042394935444182848409492928220551698226715580574195729337869830866549874024720499865883867054596136150588300952630215486561503780444017931074501676789330110302928843722188632916573459460911788466240818137464061224842181592335146170212634714081989835984902094456506949494091872832637099583188543159702130790901467249298237344604289127740946216140633164982126821235112514219121924849787602555911157503385586323980191268180656822345766195283641894243819578951901135049367750472357023413502953093497184100476213883060627698020184808579109690591430873258960904617278560263865765976309703712104942035073352021091648350153991545049935885593346131103692006808071559270249619525272667042052760044939425814753359970217401270494510388273392119581206064511048874128224508926141227038025875802158429160213005991365574673480659849270655377506100075075193840576641483221080482914744863607865230868154918077556141787559422043516474907069161080680098552346668032615696614449875841227667863938044382400674743159274833214897814553499074959879037686044243698720798743950079082867085835770910369199464102209191376238682611982615285573754471282589385340940499284303732446264474623691441780174359030276631702551566947298164048436803919254387690460870424278049001571173405617683528041834558253191696406505387896018384917167897442854165980488213354696564589072897966852760936181716260981926777569156896581793081936316590044594745477773409967169687556994495066854114833101709695672380768308225742195300556034886089003768981801600173475291083181151154854036059390175686350973205854128978932608065486164915152284851044105874700044983262566760438595958467336921778081504922693443734702516513160424092067884305629558111499129528734285954341583043301602767590633923926116473850522498536902426685252525467964491902918563714042733099154967734526880999071214763238207864733090199091700590945206827955567901991843478155809019299585077689509918393231562029718890270964889604394936907363390225987475979490802775067542342451737087089338105892218471257365067027616266279654014718420967239988181082575890964602301128504287207385647527788300413557119147521044605084222907956701837419728599407772373880734125247130371962015827508069045536292620943080239153654486468843323652770413266845138411640949455431620173129508482662948787965778186734306090969999093168763577181136848956615209341475070957286457732818711870185102728199499150491647449615282622674192931010362023592150069952200177741694633355269960586565818411540529614263761670071059229179677293613488434298513714335396451000291878402330696497562737417500623813153496032525555048804106636646199599186240065390716485848555765681613514521485705002778460497312984870548583402766361260340102145326846388505819948373399678347536989164139709119232654122469215274735351552308911268985529651609153971090567285529295693345193360289089186450823977962066981664814679665143796581647775818451369804798799435974142437556906502214427587986547100332380282627538496576286544326904989392470742175112153317918734372201536112486008887515990044092443357112932270439317592919231660911146140955317782831012616521209774078953614775115763279758543450730823525348273876577571035700036713567356555207627111763779841393303683189661452210167358721514371909449206756190699747929222161625855957414635912488004638374202350435896370703714794796906125543809700041276546946660588219642336987909883196441294206190488855710835077284617937369268214772422405172880729956128132415682139467230670714809911026498108639124505715540468874201718832244036933321860573216017581367376853840699632154564999902745427105609783960558909222549071555672971705138036208093586322700592340318087630256584085876607477437352960432735213407503178940986372214893075679994311737232983155291449946610775953994482107074431551215974004219151187043227675152686626265003423304458684916533052317436124222530601822028832676565953319352800069040554570358605086778758651423045400525784965741585494156964472115208324333637905109082584129253905417193358127689082484131599882854574834492642470765568398528206711414900196883530352650398667899273480822143767886055711780182020567925276875842303791049785661098682616373613045400465909894410205573180091360457638856094702966705679434965807381406564849882378671569245373878901481909037851890262012667470186956538698424515573940740219686510854793331568130065804116415177629955780897271858196796505476160721770630291684821083390497581847331040161586325330635686870243900199139065098113479488145934387658038584869720629521564790304118092934314399999984454335771064994313555380944572940223941504086505687714589652054864560944854761051810666941365494384516733420137963733704426579966152703560211838711448846303369606479245055094621950002176235859044227012735681125415072092245941298012154684311082593733422571520137494026015521921200069531099585786269027056790506102938116963143751149827329575350441480503077213025411570635722613049916683278069092831129754832145856899747820886256657286288437385190190723434325383538394123890061227924496816876489567111761040251480769230811356266579923389039075338928003286605054177197755522959156425195932756845516248220428519384814999789479563774838071310628669316934447786995377273592232628155273349734579416266488413660458931497580260742036178317531522313176241267629936803655169739763862427780383063848049967702353375841659935912743840822578327055987272544882585952867041870310419382419140648465494438360183949982206916225658916281811239465070985741901688489240427429392068759271339877238652462240836034476491190697052070299881211061159606053558675868001825941403255603027342245267475268057395982516609266801265233023875145149382033582734654110594448640414773267443413759622126086820597926135470648166769559469786441070451687240205432554596167426433277964723578788914675136675473283072865219086688581892872688751822077931609512883848492476602805882188591595367129090101596984316586812235056260711912123786443416210694489704789446714006137996035693995226193475071549891502200500348143904084351824833876891293893966394245043561504224367609344354280564408442474798208894542079556671472630599976943352433413092476614194818709726409018473597524024382164286853764380964148175273137724825272420286357118817252275792929692480355342893458309182369312272878143816306560706891812503864530235678100540024483091667992023933597184128868711768940423730656529690330573482476659502896840303882568845650390308103563313827945328869440656004291858033364761078774735789174413289337974351791616141635230159760824638523463666530880721782226146359776621824150050866493237402622839770764259283549813144193630087141219594378957956158952163200113691980234098477938059875161289266518688828827278872954973646005472647801726115992242151996670347300184638344525905597252090789555780066923269664303951899964870887418678638178165829020217214213482460734886255700787938154156957286672842422029121338197213532774794915497100128821278237760362905402322289235102934362172907092181451489006772955324828485386125375655437925993138587090779210975362134477368857434091597630370175774984928237412891452197542588888289417855774957059674005138259793270521597309750401540979838497838945081607073789511625636822696952809849182745555533888196090640960793401127407981141563729717895731885654551318020712667834420669691674938041703296642454746361814929252782800237671428554313138981655659921251329821725963749491951889329171228933526246664702048000861849496941576319824198966397499197883915516272338208091109252795151483221671554094644005354903890835571022553686565744357891244209485193786378802148657738756343086062089184481730570835931770029436183651365673107752853142189047824925844218480305214412191516275629070497811921765566831296014422123736084611656645157606316009435568634807344268034574527748157280654850099474433623628118828222528519576926647357772233098601778891177012412494382558339602759715070293513665415163443765261583121679760162535222540201486449239403237528811776648410788452815738236121911361836365525300124829619211572409086237046578928696659178238151336261979725404426882077020393566593528015126314372338464214721613774852310904449807274758951752261703891951403155354631468187609175139624470925824434539189936135006498248541587988776082766393532280520697029317180157279101495976011750726962288622223076954897800179863610554168128790603029126123166121618191537872011833725554677427063442352958600089022768942992314188673415489068096687152645218854320663837337606570208859607923237249319075136334319163098080476867591438314725209728738823338876958030854597537968343697982844686096302148505857134045460857357913407810306207460973164079679808991619839411511169543863111818304414267219675023445848619525007266586317843111671237222207996755164706109700305341454360481229771715348086953872279570073346331111887910063958738482951192639766618984133968088501803232699410382996937542363295187778848103863842572979164231909849580904395643928475116859861029688272300554359256811126255984522431293827295530571183098328656782201631561325026248807974586887527520536411423392555536338187106503052719853403374274498235219699989490846303606640416627492694857648491758924402809972213358414975527839649797884331492117942926696702601718333695409466041416235188202928531749883365187444718141685520611647243460573508902201130596341490574120287289623780330040574784850618860149905167278050446427334387332964842088351491941702879911673424845045609038481376007913166799577084542734316334441742685292474330781884118162563464789437251320944523594661389905057916728423588450702905870601267014310679732538254902102933225277166710277234336273509750392239026308177889651183089488446780117974173441948994362748672119036922314745567849619150152902218012672290998138805346053410156465424081353916427391305469560304786268564253785774916068363328831358586621901548650360127785419891591676870272474666337242385499339742309599402872832601998679662467513218135842455299770314861358478469210191980572136391560280013272251817140634079649386898812937392911385833458037289024570058997385605488929907928836751269489678164208430464612130270543743310843811856411130301174969413286656455184430824084215145538098635524875083081584271239073221728669239533331356061901288193497290078730680650054202955208719806290189258332319563425551460624894771783193036105530589723748628079766740232267713634862619477262195647566377252798099651979649529747564999550145271367684837810375312887511847033971871484761000215522099474933626726331815331388242072858852406696155738006001902417733385283625880468932456774770907904789052956051029177640159166892379244865418075206215182115673779468973369245502481894441480518800171043873463745540699816301222943779056419128083720688727316995516697685678265478631963465105942142229953802027391308703534217813662401963100391241342639406691967577220875978506297496819109910260974714002652993446251312926166539624408402818754858578535920725176819287974353991873940244761998218483863190661153316424071370950053987088019592083207375828038326745816742209831367953650717433186442728651531363524954654255975315729921467232922814913785125061410756100495780961971870042500723209640269339300356569845791059623057593283163960912591902990948212189191931113130993789890802384377598786406650002455908845654592566027092885836526964916457880763947223012486921380425532423577976190400435861211454117477127937857810027997429208294819984620954076789897435641243131636665000085442235075927274602503743946422392871403490426726058121485481827632838939044725006201558801104928845893539864811276663356854860653686408334324335264025709301305590101447755396744372244304251978888107150078321614224772279111932625231145331049380983352686104446594444823163955663351670352339270160308533722145147512947907932327373655520404686175024003984288760800786870004291264251812911326586616633265203076598249417721562807226434288632258267508730828470939107363338052158843783456092576290467306347988439821164669202089592246935599080801276982944176272201751189448934690998886771114422535471012519761085050234856092171696465238151071670892528540297222867192945376999077589521429527779832536162641342996443937714435954150566393033857289627056104141938943595684383931355425280894795648814042839711559015509743874708478013822503349193607798782619225849713497590505672659687955462850967648458298354350734667101082087878734800431726726643288001268153956687370822756567804219192216985282453409967641149734304870001076802885847731497068186256050191298412079764246609779303604507525862622308668832266610096993872971700655817492325516702324552523067295243819271403984628767393943860838925930336623264176325949260531155073183116585472104118059134914605422919300210356600174921736862390575562382122748564685432708896241307619390347500678497297917053467072684638284718024624232482458127037760071193113493934624359380757654582638839023451539264126387365860302089038943435432764878596287418913559330943044454644452572822292661920994489335663766257657204640128225642271340705189918543441809838219649795072407425651886072356387739237726645933786602322427523263177047668259357426713463956047451713864433425333393903074529280300347543511624284302527531499045514109836339547875040500273921501282752540147127293302605852273063226746482062117508856926259482832032906276340089418812635143393542773111020515420181064807659233912593963674251150077508769882262477738448345546703535054036140799472271912529021644589403757964879466818851386578945054239810253063109255037335504232244144792294332106386946690621620619293368402001683550062080784283315174889664682200303413559409479099766715512454280551600674077478356940161818461044480667234347716225451322979795047219476564923269101817032087773139658074146356843580912136846002893346330469867167613756811468716036985335461218402781716790423821873840519507915966288239747030371090927558340894072250630358753102361372619808171397207404665154328269051085784680649390359021996599221004083455551529757537242840026144903959911759464443128992289191862065471990173804164064967180307373252555651369833026083211034353987327687837867205076280437680799495726378082478952011340266598189058984138665169170363038537364232875233693921830364053334145449922510262173375614943906610991743906679359934041026160072695623501399739136588890554296543465917785213209402634225965096920917282984875146934603061585306641123676387961363203454018591998651777192978243898262341913061576879152641795475084620857805540970991909767736602918174841508320035046631750435285996951954011531497495685503904299399119943170350880159521974777994000282193994684932947847575265658212370230748995341681312344835070356620898663416766785373967608033863362541878019856535684989891851110410947130381669126473099092653282150922116161621386644722113797364274042396756035182117607500109953753274014251351120181171057880926536518336874650326694416050493715867481921264127343058195578805099157646761737819928553372626713295106992199527999500037331544792566314989822758830212681072536874398455353590814719216079883653900677051769829698650903694122226889402667132555907124438145856100313112555532089351113684796501145552694771465715653238149264684908667719673717444547954008683845334791585052166021051342753387325195609465038120990838374474930358066103657920431558587072982292418603967628616512832863474236937610494303380463597970772459718710065551599985554706266169625003884871480555488413944798380288085918882462991618539718372095142133818378041129599285606395010181994045519656779428928515029895836804093234096225356708437476008222542340315033962737426961716774026901394446757050997219960607571887657326695234262559678330013778769119128684258434883808258349465300560400365240098722534562851165715923028672005298615160481321954777445757093104023641194254634156760025449860536326299311932876550017194281233953255485185754291889692134709403478083366113317970557279970787406606645102709320955396985790750838705720290778989426636959466584499475857900678612142999516298769939902905965634720813381110678702477358568887433658220555573522054048124699091934822147668846411001841424858111003475745120425271252907198666724643567283285621473755231641973429852961573976373729058097846806693849310150006403284609716545504280948458577769075803031906574813838128886183387296685291941637753615905591316998357468468012928638656487397598046264976858431077407031860759420617133952970648344243949050081307545050192287102471919457428555270225012278161005176010782527008000253418571288304309019817416058241705628329157785396089793245084751821735246520101473579807266797032631084057663653710696449653105979489394068553766335075993263932581086177079789454112885103780967268093692534346198354219589469057425729992415441874202822848252347878806358770310434424888744075613902263085693343654135410906138351334533159811781523757723249754284786412315025756954448527601161200732242358206766720992215674838828695155816607324481070565501692349623896658544889548753932975545155577767613317963537500886149474066456280429731508712047493410584627480784094475643472105565887980004352945050721445105287743030678208381214223376792027641917836709957011567783776650667880914223971978353957907273307795103408590906427551219858897176503436288784856345771237021108571574652508669183595371661610697991980749081577462197349585476719110323860831391567604840138353296222872045163744331847521456998870679240333533548277906639214876559577327482846658163126861583583014215417181558011900731790389041427368351047692365645294461995548203175784665986649284024945307255587358714650352439577562855751497471419711890726442000003455213817696343508990091889480001085027726146358322698316505491477878729331340722907002748314140270218312030428075789161573702668775946173288283493751232749335913477009394512523830495676526384069919985090145806032441202696714731778527365312630949021139244216578900660435010627718184258164798300340815293055539230927852503997045796378815241542779600160050941589379164466136469715735113353687136220374334941420102832468275293698076381494294083241834860009630192890853812776474095061757638994260890056882126159765408156163081443554214920728715157363610798528591666962807100003650621232179708217250273212944024536978346583884324710429848609610801601350954578297555315080604046388929828973609782244771490570627320919938002027994850048868961878758660584512696769370445723918309309940908197419444295453708092393292647042803054292431219444857340965708330207924797316049018335579652423155925717845784781327366000402676763373728127230633770426817093971833175209028330547752949060548588330896636283959545485616283884874543032515549825490354500509325605551340543861492275888403977878341896383728897483165092207593983680095361090026469959732546324893508494040783681812012050742291062654140253658975797243102379136714896047213429869419103277906528497913265196635455073052205624777026602496525077450323633722314069474657495808214118524650775219315034826288690061582684075803645726733646189671669964699569047123027559448144291426506407038699212257077004048270320175057096048823824939679058235865857835703505620166537440025684692918853303651880135363604045681762102874773942047756224276899651188928735368141491961063695137740698106213443858173625380405411724488776110676646419616730730178883139019780538745093840804025745230278722152543718004123775940767374310981167548864875934749502949066964124489418327436671288256763899639409398904172747034140317508055286774274552366898210942488318670372025008680042657013938336929490693693768358392025998772982248381461471118500560270320541186034779688661325582692660100564935220555532624899008049473891617769655729816888602887678182001704303176539920084746096823458424927758643021569869739706908983965826191184094112215797903503986437562450931715812317039376535772573260302574865223523348409853179267966254854785946173638902456151382715923837000130152323912426276554566291159542383983604196612227698959171102192109896460486812379537916305185583968256204453679919619061795555770587724809099944527228376456307317001675527696750308393126633768255605908921108431561092701300480266057922507874367752749279745431196363491554336271756819840253003528927025446476963275921358679834899206281545818625286005031911711119584362515610433865654826934335993668333003387244811506062874055325855170860475996986358822470513514432097526570896425739555482595985650997503204129515685887724307454028902517496117698664425454937503978136928454481522763832139836462583394599835138289787442800695919326856616768950290761569137774050069026189219653121927728892370838963069476899983976220045130176775201207828787017886973600311176621066292398408031194090732755962400606978046121746271765131969735327589995329294513930960044791891995780139683868614604787377883826932257389527477135813135176981047638059916319442689287836015786272860149370266792123783051765694034619102495004713138337591297041207129468537742679812118565499954981589669172509625061598643280855388975181823754995384767134589876961515013296238398629364822795164365212901497279213583488243598895526654135697930010273085923493157718171211402058529997126033550010028817682700984874666391932303078240310054895451870518513737947042130278334390845387483415444728400524010097817806429081739934528612497867997156311057194125829661354691476067360727439665968734317996213701989785483712058841331956383848728794996100491065954857027178840605043731700681034011149358952199690984705259486021506703889371821943445899580404987203549751855275802085365254283149974179521105560403015903869394618141616740660788302616600820848488561941416677644825878694083887778828782654005469193851546605474943539320331521578286898423608205064223298900636400398418666433042458458442768571735073764306227361436234865662619030124433750083822478753320001092808722041665501531673518791700598883948237295095133826290654850814953082497587631395918889911930341859352909023039599119421683953258064012701907306372922048442278303401664485405383337880540219629910397111045554330725007803199096173358793083965187212951535037744146384963634893897140711476795055856890514083754052923277150848354533598495112687835123394380152292852267185824043761163304511048647432404766506150417573587055981756074738803706421991142494681155948141927998088070089434460040592435214229731087796079376187382736981030570944774612280816880087989578847637684543988842343024293658197854270457579190258403700314957491540047807931364414488386394655864547239769409229851699292343459716902366639101950065901138637974628204752653133415862744402622241755910051971925178601132523254474857807947951916831716646654372598001904473708010686393194760001795059292665369649814565384315805107239773506156445975892291612972643145429160672491965564782725272348792974646571013581088764658922976478697323944223745275129979276880583399221447403251640153134052201927459125725260551102755791500020937714384023838277431548408919086026396275562708399130844765342138807589143089299621374652311589171364539903412200420844158038002822872457675852862828786760704398182660712839759481851770876179336983703287921982022794349518617108553832515047686466373245437115895071804567543070064306665229329851478862534154561366894790208774213263499338162369745812136255678252902673166254754367455794245650461075156384320200690087842741822306286285838388105271980799693990613911839005950302379547684523795327897697721362836516322056597986443216093331046080048825415676435152531323397900325812993621781716011858502508846977627515741947287248516816511246124889418365958873727318258239852470597788037467246942401190950710316768639468933876848469917051087466097042272454594949088329125745609754511776168681213985775974547388143190706055539874990572446262640935774967958942188119518268464213216676463694095196270881866496683653542938926700136128679635842819087496613438649439098360499617236135937344510816175794648131655165434496288035566720691454249388148538582493432108803548725557764642829140441926473718264572223262079436225234059566595605342242164950500395272648172284921198374952358619407954710962567192711524270543584468467905285498527589069394508344913788098903500684788752367905121921984179583254533099233194678762737986905300905290449102193281155821679217493811475950041493232271006853823576418662549913741245201953077425520471670015875075705964573208235125433794070855915197213396091540330363789067373941529815941046346073491590675456699037104642518256191293954678072212760265407007756893554069987641830700058951465398047883529877681330785479122291557882880254278518691738107888195559455989299333326819630066061998960201299854911523393325912426405538143628452184603301718698686014898093468154001228688206165017708065885083565186353260392596026684774380337290640746681368336370786254967454976973119908585202527363855502285348975018337340759322837282058070212209649504454328410114297970420118221463289755979347000175486041991732030288966537129137710014237574176387140643128533058457904346088493456058590384892643845311260509426360622133102864816722676438695495255354858588141596312171644803501683328164203555098946497644004867287746652716432523562795316151057223423513072972323072328271888629283915316349907599964140387770231142204010258903862718012201805161418356986241282623438913272660604321947648101037211345454647322322308710325288434556640366544311125515401429422554171857048695546333510547671092762577253740935066922110702092028861595478612723292628601213908697026868446993474230426687233815611095050567714179654546004685032039134695300934004590030967233413168032222544065399651515101924907513639038192343269872040820651506636110761249593202454312861283889942699248022716858323186171207211232244634215766898491184521836566498959651527458449591517234881869598558897271008988600108733273625846362010013212168349497800403357064472298845720916176384270782577081022700609017327899352999194540783758676614017038833439663726208532528499329065220845030595765025321710944992457113606738286995126527727488984929834552986844186750605381980346814589827518493190404396408769833888471501466702789690234290907838971679691302553305306318839953731410138182664503006306634200505923910994654386073802174245660864826695389019578973944276483599683946444963151497920242193690066614681292282892764555874979224302487293879281205342916623957338071110732223247725477730124290719953730739749212069264911731589176428807014119463463360828666913449711319994122150387375904501391334659706057501485254388954235612789407301879791521507916432405252221083644804414939473552520735142149902359914044887436361719805255105753503250632879497171708863476608260572811076457351612976727305797099122084803038401486705704677809992976867410009363637192222668007925283493169861665978972714260466666027046963558026944659962297200636640709422455146645881115268566456345149030241543798544015646872418674998809524759473044788527991641932482236128011656527406321333449323674080778010102163540108439385916348872102999253695301393045721872255321756470370479715098237952312239737028343263147054705163335763926030269959393024572535073530890708196637677275507872526309199470537436724698639271375494037755954172815997860521133236394754715035278070927498061434532510081896750015284317769713971263665401644081867857874528727696983181626909721154056287470931275707376098394492758511976203581202047537225720728390376389687927126220412176944329041760316099171034716789886157301961099128325140369193479661912381550012039854178379119372847008881683974910818989781507329917033335172927867562916052470698787536095984759645349592288548058638551008058730463490555145354028544307344095239696096324670274837132775548412299032575888509675324694066034108122874617092404748432072202191855547546570546327205038686456651364491143745672623834836199008059525820292640690876671883735089836370531962479413672886990900221656387129677168496916995958987271777957226714970335345799176749444982578565143850721346098594085620719393861998316423609761505265612415381889010625806601493343089664972855913756577126164347116513352604958456101667797705839883424735103117573242796116389535351641590948192092402738364144663292949536375484013577487468436981843011975262089083671502463337152908297002879734212523239162474337104683430508759512217725276365022984753641902923327970562067412327890438723390511423177065446381917325418204386634922946579861950878940534237559515558024299291963718371326287977119977412505272173877218945958752567396999079376289792388305571959259407847137335442688598017898442411064863003455496590969265952425177078367783421660162866152276896373678768572788312339594266634896830335559948692523855997361967314691305978650287972537020119424962227256995922300917557295931551113109800975503886066297540826485862994803374078073532407564056450036103776476331670558045452742202821628111268016193755904089913665992470443899130167382228317407639362659329510386110720939420731032486277221115066147131358761576511115092805093568404848195103232378213961240669901098254495760999086186337731677723646246409511222762267853772205668536397228616527493650699898575389981432386886785200322419868492763150968843461130306824121945817739024221226213994643414463013299631548635801210342919388799135442229270428737464278682551379920044208990116322946130951711793965115783033938766890106704366563738540347064421451561754748288828380662507104234699876638789768330912700176023898337593323253122420776645946417276561095283704002576847418498041721234232715178056773735976337965127784905594222318294321630122875221840128796808833917950385953281582158273458856344966660963040415413550363914760482329708142881371868270463554005193695768125913735811630405617575192239226840800726760494343810833453286916285833543376782122827884690497533597767730884780171585570732764101453350818165191588486600832515890032430356051884764926526333334451638418966388720798640756068997370102248345910229728191818902975585489736068200303453236980091754471993258639095370316648878130876607608804020449930075823023836186190111446960661437013902001570611906879922877901394878467356312602435793162682213843011869359475866647030386338243018527641909095447189179365562718308839875263812798502421618450681090230603123650701157692017459013880946449486681535470823177348207460705128709725811338742265505707148802112848834597109771009191273143767733984144287955889842163908737573795410591210977228359334849834453261343116028838830224431340744755039001134890017495102820939487158083703022626099107502980516715048927044998735753521555012149095278781186988330169487225786729085594519569619357971389255869275828034454425784422437230818158256822554175676909456933848906925659034117440680333202554574597935408668600243542962022287604006812025788373840486384901000986509272730270068763711279091070459560596782277285520784191171497876420018903048133460951026239290114231714491710512290199013178176234097436408703971238789350556282639822482265670534049092136002479369723157798480325730468441957708635547582498312906666819374531620193726275203585217631611864681852016325123097003739073990711615712006364943784423357633919161767704031793143090120062608100643413195242885456272960947782301581529112268912223660989000618656249888653840331795535035520860831896576740300416043616137480450362534251401353526646109626409547108505359074096043792943049069330170503416920263425505655453599413544920138041176339410509971710078162627931963612954219301578205349083791048090290640233748858807831904382184064317871732139549356446876610909309693165176942188922236867250148063837858861452050723862682790668551636005084837405194158217127755645856671982062361886841940930435762054584399371725297933386426279849903719875746587263280689707552423738349788775617494222029924579037362206957743688151374549498874931235432405796903861601816328917211380513036725421426249279337890647587906775344586782575359897025154869086162343341594909521726704215172664735084521257800182075203208402561697723066152465096428619904653445355169189933084038165861415815789473170386542452777442397420215913785971037659016412736313398120144086572483236476448283759877075128917815869903394123972300001620908184413987533738189674820866687161098979332767717660510056352548362876487631894052592690778768346049880657449601325289855899906695034799271217714650801758918320174028422848051679069757329507725921900792124857128392575432774212173918823211712202854744579177168933718251304888396153234636689474127731430759291827063836146118521540406610637154318849327255543263864454840671161765190978562988095098588114402941895268359621874444818611130157794464797616210579748961986071352840241360309415078829621620698734429530393027502807479836195823774366716644984893037503025118275202340348856832557418919514001446097416841522865881526835608898506486660646825198185503578137194730534460387829908971046230974029226104969527822025463880973600935467533187531232662857962595127785535719557072184822327540800116779578603534096790963503620614761741823648791866670656062697763425778948904627988787272725543822412192273330732129937201979490956400721774944660212255541477340040306750454024685402929194161564807274524890372592153816421254403073838260768691375495608535668915737624952110337762453229705867436178868453159414715521716125348753650305413510193154296397804278046163278464720177218453464777553690372077039184035734839238640428292145676070678598869967844376055533183902191921174310047053443454236115167692614289088620242885337804093243015825819639986130782239153986772059693047188557574527652043600368816012454070032405631121514090179060833657576083901624279964904527519533068631467270379009287551505099646513225334751322825901123053339012224758334273818997425062796813301232555736831788869804387448356823921487755134972999639975240134264970537335290615977980537277611398427546660281141713438800269883369339169681146786273714001853652217563643517456638717393395958349764609280380244307221179329679642321049037070853052281679191120129314891028392819712140544167748937529044739939129996487167187315690210727603793094738538746587703238436374323976248019021179010825331027579728769466404577199330373215762768103903084641124410360032912892778910889493630629278496875004597215278934267182516612358410275222718791566016895581805213728772065499061850169222136706493199615166466262064444014746867567985578637618998671932273003531500432094510768121356263920364492876106769155213959431381670163820156806044514470677259467677593472935487963960111535660327603963951655733475719835694699878898247062254108524943100806818083645997018504260854703514469135574136471235686418994621388816755263677235086810174671181132364163907889039279062921829781884976377066427958889078422223934984512913276954769928874847315952072740759920369224142964685339210347270579805284302389551223165530399223567922981940667995627789215455572620106516581102573715937234346592168520294336425232766466984637431650686570794797023773305418363295728448601330114653379107673111241376296539715137820595987220334557863186602575482062671680395275947534675370209524947300334074683274599760996263191044418303868871548163050357404914824503382234392703768369556767038493359329041478252567053546242091443844497824739843517277022421650461742083572731114211518878561777218167602519515528372419663777743118009829461150887261901571467278930147912114046773443732587736794242858192462034307711815834300221017852008169315822393873138008142637128655131549673986900649533484251220494078183314912447025816014804695920588759893803915755815473774545675283715678007421449809814101567363300333243028398599239542342855059556578213401615210658690973442008089565241780047924657554196699881809052925275631776780344853895935556890549095958274987309632850490181005564008168487381277553954353093034916723840463273729859351111207985635124097108682868622671192571359612457733533157256124347866998366965624110152878363119625670308062869916499294283343025372501245450263002614445243929910244158667456071724044419161121640237757097259486467531217139470085583270689741765483319720344020957638340475712242717174766528463172538121679223534039471735480910597406432163692564929479854015135442695327883174371304361876537252495774017074770141838527059394901355370615159454526094860788552398589282774269565303004437828554751846189533186813293864425447335861019538424238885209177921487748787360184051540242839897768507111422982999055660333245393023607281328908708133455428976873548089918954621077654612204553714954260168174675134858657303240406371866261742970131809146075635120878433620302526316038545731259352007225111597980769969557994097518161148039356625907503073843624356049149522515674792932748357724875496872333748311844523340345641683863507566061508857280205057743883297395224080924020045102457997325431807553340166274640905675320296632411878276356435889554859797429922020404506855866935316784656699584983787150789224388429735643906739613694796406101634991757756209923229484481341107720688076956364848361726490530678109113718459586182550185379472293443874158837053542622436045285014428942644213100135854769947581712744817039828620165936759597856441297577602125341287202201153402483209011639507961066876210056057665705043084104546640663840622990233380262571538074028524259482253405084587630329581183508822668945760500500297243624904900881284252230443633962627251715105136161288960962678522794156761107280017032629809309925199552442011327809111244403603704295084885698451471934312301508439742461198195781384946769078685487401563807172632449224080527324457294517065092750874949156500146508750046722588146747031828987273275562547337253219434854258741898447223861142911953336367104554106057579612136783281496373895294644328042177200124978770004332363513287612483060283517685710779731245627144479320124906669303925966214803530441461313502736378041181587485276739938424410636309890229086673802276847935939083214947679078479469286502114269855677836546548341075368719498118043529021257734123692954097931032040635720585685071144458861526608652810485293128827019193051150662225025433921266043172924361606780321930206839665456897547497482411535885828320684297536311548395676946443943183531482767729367217548048001547725773803154622312192263626845595232292677470712572334843258309456337460535113660606558419417362552228801791963356966763335033277512007613947456419571311849857171884597791854338694649681304581502016386032748224475002169815205765995968524331909140919651853306164201559977462778431959711118155782001444502739726525526438721532998663948181374914325958311427298247168887638712913938755678152255680781763335896346213029267687398521618900861167897879307999710362233001158696871961460433787445272015246356101645690841937382043180874078250701252143977137454464856178530456689166781825882322828184058213207656839549162027088238225160509047397380395356938462965550510811781074818124036096978721661227413500464329372298155377342678751702433715337788273022099404246417251090949735506026302211475027428062391029717726990786749036635490012230478772141052092778613654005854199561344961041582000953585658091861275274625277194561236988282552296086902975666725046697142967062880656568564592632567261959184515658034212775827664786311112578373728876805757032580421021715687429720860560703275412610126240376203570423443998772553245468406398544559315845029116263963484647156220810238621821794222525400686569368297849018093634281461987482772820282653446543987742823673806949082380314077276157003485417748949945925577183954252662206043356313831809080125213974482883852885817321533895546491754246674685703597012565022991266811289530249307229683916711554469575355806348658697969718544072600876245489506983195500665874745765316905296540328365131053330341176411316467987487109418107915697920466433312482347404350415581538176789954284266617552646488581909730007321285493323996652889517427670876252059808975990223424870651199634885688939162891197289216945959564828369925430797584143230093862249051163003752671718796270268758811442022514132163833863597380090059789279473236420160153404156381409617298811114137498386262798583629654683544469835600835400457252764339699058981411207110781421886818657758327715947099070462573425661600906974802505988728443181697407072020638036127396097661270135088107207079779019940218005811486326384426005465194413400185589949548207108375753468251078992361037553114657806452689707821800392940570792584837909150434108036761135964083017593366077508900808655928926417149121586838327381761189955234404345332947745228273878323747260466475718554241275248178086683772535665014354623172350573105353181852205363287566803536533386687265384580737131540729748378009874583036956051859623052897823450998911292667827447841379571595305286725701220168231750623563409949661349697633857618371941130766583145117530954669149981521515813274210614666363819552002713674739000264826362042574441381539499607269090178026221185054549442656436294245996429082138333128657997446046299660186872260967665375584342601925740391460695717264909654337497650724393024461991144326147531267655898019805792333605340447842117683482607488400892392649676702869741093046240710031216913028976425875842511589281601712319437935446459038821212685075322296800210700272276124346814993785542769173435001579303879726840903560676146891118880402114592705460949789482941956928009198885732164607513233403971838017277928849898049370302891812169422379913195148938185300166123511608906027547011194541720332830623192160679967625021588594840422666957921769947566781635386902355833996207433593089040583611860912220070481651847264606852873635255152113211771974660746474623081912741086022531449375174343262487528439013417514526780566373129005282052096613813025925484692844792737289613497146313796560049358045428945452393869312408438550912292206513957597824055274102141742570304980825600413452823901623078034703003266398375267293418859670603827237474027757809093760644924135005543419774574199330148684591823807511451543888685427371228731406618062111517424302326571029499847528321299912035803568240892313852609525293833515894080743978319099980700713643320689756869148983458102690003746748190966528503113035087343935880126268458783102138810653155908500817134466238594140633509392479231917256720685004208048664111528692313866273759348474553748793308349214792403960638865900142845699809701390583041239755988615242408533834271836445138336890670331680560812490151429948929353126928564210388975410683067976392744357498159679446661451971272754076918016292837865626748018516460529931534817972745361861194122860921711078220159143404541968729706712875643231883420760421451453568076335762447948910934040234920995569303554844521423692523238903497244715195424752205054120378250406759305544042902615612087767067930469455600668570020603223343330095454833976294977146758112762896694897011003274085304845878250929392927260421125970477559716131111017746367920550572727895011333353472834074350609136338149015988756651880131281318239625682480650192744389623542370283895824242510635665823428288825034355008498478788123191143171861478238415201355768368088246467179617275532263846253032773845295915345622178561537124835314095274571513735310476920967090069028793826560749564767698147027804393438281516991943063683771468537495919421900095712393631562636041445675389177942735680089307245298275329169041622760087891544102775240420884212819599553795678062065404599979545764881598565008357078454315835406093179265516033196969041175808785455357495721910389995541662178952095316269681987321606838554231278098940525188102861558597382052068072082886260397225158518920818857375277688844758241364013738309596692274276107177754226457856056128840789342376556539129773447753511236485310431718518332324132809195840309532530338373998376267156730143525201121645677233167854749772879696474669882212827298767119574342255233224999350665767963863415818216526996175596766397669192096396129785915601357853359986606092123309932051589439933701532064845576347166007896478599752611593538836415212772905226780977715093786576929938375715304672363505201291404138146513025758020428108722795562610751884900413744115849730222026929736282383773656561504268100435315493147540415425084422197276015781432807443569638669153028209994855827904587016518466702765507163859198029796402551625458293509683509307071077595276031166249216305099265692619874195711799903640228106503965950888896129116799381366118593179275005048043284993573836743322077647844024006972606484936570947572637515310321987343132317872332304916930318103416273709551332130564161262102187421287760157161791021784769817049282369164028016778549756257037124730252734371391333021235292717049131714939716626492440089499001024157305820702043660483574373624344231366947093574115724750568405310019177118071590862297026640364975953336387910091265573955912932367875283204760989141469746510963878951746737277496405567353551008174932805935330497616482799313108033378131500781795405523459716843676914445297092186369650732833322555253252914922772199560648846004911846128731071281604336221604365597937854761701086077987229210391676672182251747852220167101566382779420011430960668013541499205423572817411573993568690527998687430228151948653390265518630958524384925300969156315308781409306742924791869139713028998665389257718822809102713657366894198298328600892742776899132023539886775397836944361366572184824056919623524788503537163068562700223447350584977009391877219630443891787585729484880705718073435028924756525514047989758672183555644546676871775078237018242646543018705420129743500530137791001478100142441820792861670873529061470249545814394443945909983952463304290876153980790304590694076491187249377920076800342834342245111181130636165258750505028768048442043377204622025367371180646125379510613876603503101943375117217539690757013490185840363282063358608463772112377595342173256758829886879694968490692080481154736792117871083038378739252742554939406078297629712929269022414399100441603369817758899265187398619770313103479298424919767478096421049493364636232299275488722761478027504697888511556893735720246293299468366585070685971534312781972511372480224157718258079091437678290699320385296352813875294218520284652567649470520265964048097457972079650611016815695833312086641210119929268122389713694519230860062993237133913780378799745587577888145542443769082649218680876823598124662377151431945852839410994038280800864969331559417417758987147710443407202685094151106473242706263091428118958103462560347194399715366943593540863418429406724716929923727494293355016839149840839802981459692670381843056254304614627466150529421202901446568783185993006275099397277170082762549908662585143791339359703180139038880589768899519111754237731052240382589009645111198092282924900575723167251927788526013504897401203788658850437209272774520273974512877847833636777449191176849390889895736699550683207513832949325104508924760527423273732820027142121072595863864715491939619579018299236452904298361602324290242759507647216042336848487005771987705063369990277930183447720068520195208297127295498896295509198111348192425583925445976326383454093310583104279508765765853380899754407771326921211495058776331528766485547273624762174662467881109753754128972207564007236512112655739690696351755670815595705026523289548373047292952942468267579245635106103532610474270847153270274198654199498419594604569106113050574638085358502547589595056447411092067763120198268815039888860748333605522876688687740943581425354980503664638704559741334915468563860125651686557947934352457164978376671266632916496429639839856677175473132436770767891184902147204642736183230943264848798575062890677987342940460427491619189717188604312345713653459705216055910296444379748845988054580849577091390445631834728981559016415441602298502836187731520405375524827094416732322553119546716263675849674847705687226009673290054391926734331635429783263998909343208351889526686049980220058346125745345952019888992723732570588896811131095056412456531517337798019832752816757145259540216136712821465518780267903348231503988758188683730794968062688180423828236508965237885302070604588468576532460047909405016681673860117243058428787514381774039950666528779347451594687043570662909092435893947124592836616652497692657289638367560331435486469537579130436908868204461401846261327487448565434349055671053416073250851042036995213630268329872616915036844092764606293749788037755509013536731291897413216571036138606853797204309547138481939889703692028742023105494676594648954107789514100917934014702134472323289779276439791974176986148324309391882072721892786907438718835400381442494513069650671946428056225549609032669535149360970417204796787108122041318989279798235977611481829240964218117181657807084240647323631201757318997678243586640613048852831177425476100530492004614809761326584476066139388336638325692400053936391642916050404004167722807260268436656869815034051968577650824214767282104125990018438464898600800423890507162882339495059492537229112700723025350455282073443120637802708576269906524556592389636468767174413999556997429150737413001516549878922687253262708507140049363105724624570488267438341085872520980869695659971928346502062596255546580562797458196874576329399087633824501109475503498761024117372494718060175203108081397566791473549858827923924578912936094271275515238546783610338121596283160782727286613988310249507829233890593490235016754340292063404827848695845514500809534676770491754743746563184959045127768441680154428723214730677280517229736859926675395743634504962941901126303377149813157510355523931107932714112979557566521481578139876619822476685197256859401955777666228902575148902329316847562675822625836807372852974764413732570770270029610230188398393402665405224904067845783753145728905964917622845699096737880199813907436220820079528016219071786969437920989423625843298474215700635489918285695998941763256157831311294379649367010721538609148009886387960601301125786483578806448026646944408915974760146259253777456218351979751438670494466249309839868078302615931448134782272293989713235142214003045120004069327650750994471809856407235238758927536815579253557152405359271245502317254327439144286434324873769786884644725720402274214762214247433810907893777346406796222416616278818449162278706780447140363258040043165605984566394450292434901626823596559204260159353999991082909932812567210866540130890207538187366014433951772755002976807518344782038819114097674747427298739107902729518796680978287646425616681259905734718469375190105635410170194287146825749774023997737463096294155804043510932872199818885500673623994723609323155577023245853050192640628813748506311827212249786350177672964768406864829524869971184756385800987698848406882621886532800500565299512343832408854639484943785098262353854172990259516875174325179888205863332689764118443214160961044390696956107976671715951174688290957885576176764917709171256504874527000243627412702805380971958122478859051454775410827021238214346290910395878901930898863918912459531861367294014707689109899579592407713532794716501161589056023190641083637645319466072285273758254960383456225608738030593923411933229057832481273269029661083906617539873946940455746130882711013651360967300118740515787362795224907347856443312326398380388773944717909195943500715808666149539952073661315517022272719186893870147361365099845176553248698846559949118044950914891604892217709090518388141803395492867332669277239357111837061941307964606293216259945644889507379192939009730022121950035922984295876314498290647311162106290233911184123932784782831145267132472471889548321887176631842848811662400503360494796844975503870117263445990589166086547517908927180436159300321604478044865003881834155644340457150319663569889917888582442062378530608202278108120185800401886104015663523872065873185850959140129925776054196742368920768865518205288687029528712789598082508945963337000532832182665898276316767099806209353048964514553952574255509359979896024454296674142164067500984149709861496250160764731335778508397270755309571479507484928608724476942376309551523078926354757602848882714428018623092734478875811780329718038006362277728796132627941764653842700957023860384666891222298186071340983030858485819893645603221720561639123751738143557662055995547141660299429036146999041950644791790337816543992863394247008318298397082464524800793749716988493711364214978265116040550423705108215841460801622184920202644597771757782522470323556828470794751759223118174543190369964485351652925228276934114551453060386897669081743615085094249105918112392444507032050415269808109207880361815787446493970225299406887931285095747373398626266265651947487551074879576389384471507755483064542774273941774857598422499388682783716554853392263034731903414151466666291147895214342248056159884132105291061977512270317387656449206432427407897049327901180702758005850799303382685191378170068005735321497430006388761844798153843283287561751692319320339742293256330857725762907273654797298316532774359401241560807794112399098513818705034302711960263086385737516097684837530341719427920626288460083300489532098831902720031853836994011625671033159089291421798326255824697911153036130228947312115920556893954566343513148551451339152448768277353537633951013992426424893538865113986891376485523012532474492812918571527859712008000030103823274006294204697667347582867432629553730481624664459333395790470806517031685866216208229819746647797560586714327284442665595953949196732802876595155790884765905733265174531088471444766609651734676130909461541781933390206928749155505096073381715984397299487548062747853870510511801578464517031848936045119262119988145917707113318022313694162881679718273076879315896685223897433444896629511687473718417462017892034850772235799663448173984315388502649064387653950012674255330637864882151519791542024427818060213986163688054433939390195006785052150257614747957245417644804040099917622971731923411865783841728098351725959426562140149580115963105832715485309500951943775607763794368872630407990837116552177169737645479936899501102791651546518775001102373751986256851625980596791209969606001420907418604695066065165352324850517662170768059436130124723603667999357245311336889507278900904117278501897891483314072510484090953840779082210476158133057136356293904592787893901691177633685746266281248439776860347715901783301431795696769552720135196493181073570725711734129218111784446390018668186787104436495109572767933541540417945212062288861249742184424986482591656967541897991255699214893064446207736522680103131660320875162259381895577320931449193358653994496958017887925032805447413240886441809990774695281393255666385790465591188964832418564103805463157705685855273414646935780136070963091655650081033237835471919975450194471236779799370666256806981634015429675927128755536891427998729664791109084507313196847654240237823738047062810289033362476676382296886370808182243776613133121581952298315518958379260905526485119599784580348364535469776371362001349466443653323896206035724435946334257233025765281869567841525284772275599931656983239477526662193932130581655937546330872057095405626678292432031790206976501739611271780202839694992544161293984289773895932935991940666703879279086826899214904024975888459248822415274216400184769314238386303615086672671626843709195564231913807939440298075609927015370954221213995505121371921857630944440621250639195537709678684286100116244137241023810688333058796456343703854328589390324426867243747029903662575714921054165285844029928414451723557095975384243584891044740343343254097663940463252928202228069468398567189021477033237460540118080341258688120124823470988253616683890741406768324268893535434369166608963166696524354280531286419728491024614132471701636960396993291457393880654056204591985363553834583244288195891588342210727076085051592744904389738937414822531511608677228204074930480321748826635421631392404129181958138567357241525399944420759053120474793127872964910409972485270759757986728012650760040908864763913530169542122630285174618685027085450393417202033798061293015148136208571824278405989972757013382829474595998558386018045315265305384500668936799101027463026553369150906930457105411591592751037742750560703679142403080984728059236112865027821378954619312041706388008220549874403627454635836840795196766198635251276575008850353023743919349173326282456834388200373584070964781931046631136867231019546071961839712732513973501910646817333356202329133879196553292029677291747289616175708403443469056532859858357405489474093466330373783648496946269547124734000883351187145468240925430714197639987897067704834246766198155031128351018895170561122610483780759062344980859119669202710704645424022731988270575545971934065246967847409978069594936747982560711943710910240354995024457435367355355377834781802342058853146987163909187062413655785243087318125011699081159212486215379857355648086581742120742669413658285269013558519378678262817438877033010488860018093380153663080655874814599399532990377723543890216734842802815300202581367057999676866975549199146655129269490253745895850034385367076822402629887615395923365498029875038807800765595383329234834031819634739122940813537989051702510722833753062079749983761418351055703340287783642302142927472382932940026099310048768491616816171445981405293420184154504305654415362102179286900245963861523840618796358855810242696276440245165748218897783414714387136883817048128668597903107731237128542116045574405786507945618593202795354447175632044177839079369521028572908791912363980799551235274207336783870701603920113164325497788128834272849185804951178974459936461954860523640844132651417360641455483165775702248429672767219042276755370141690242953575684296430375424510621236293978948847100110811677039150428775341758974042579288689043004168120310347487785044042517488434287820285494882525755434405351688092324599667983416009636903488367300713621762313448940953567020442613026271922400639265596759350292042291222291452218172617331785831217284008399291154949926937027155658887592432118247904815810423318396650623138749056516564926354181942740289838320121601447441973183032944046195327383991324320271638650235835000158750706403302508258051107075815355312367674625692766241781816766617450662503903163991609529822614513126256246366253304973592207698868201413819521538240896378044356887075694716758231025979371400518328541664123001530937045574077215983042139010041831442686165323648245284194773964592424344982516999005994294523529945964495551358503430848514023632464414634915509630589344100650577841333052311591192549376737698140170529529386145739026222491393364977369476407415540844314179449319878653853777673357262387772457815947691265720768559592535313830481470473672420903775564257069803828936716312586403534303677303146996699534014979410834561475087633910591752305607466464395586983107144633160092406366311753712887217842212006326365335699264769709448761072696136335897760419923773930056821911031592076995772389582429932399150195582919758787470731608723449517695497631249047072630145885798888658994324986312406505737697648932238572564943181702808442478806478107430016865072052563579594337778162489354212436916313050969475876254327497351490664545953257669078198771646334837486579498680991438716315484759836373899841862934586556009775742035789768692268018140927923972669405900910654499494129022596668222761529158424839540605656715980147675548988243617642972634431404187388142089165610261226465449523519041963794670035150650830345531573784571454616237974037344980367972780755150365945049851971462571519554393155405660740195456955769593067207095791314296878211882074275658550614955003126910440165988941534736270480714253262847593154295012714502587406382442388870300816612830837355677073223942562702062931488455710914575504120942481517642521353033355950111236318732148945099718200487713778662261071854659439975498418274590276187592174587023860379245379282783718499303057994538831510712880415606005254117839811172031056810785315903006218966631604904258298267601361434274277840711648158905601427185867146378154601223973994332871144934917555892975134310352006626662260046058257513752924589195578884982800411894616735508268786134730866965852002335494066347065833110461884348525700455789585829917890212210574834063133560151999365312055480050580714052396535187962649082454810645911519658519237205544959181097178015707130415040101544554931302172873644943556197614668026280880914904515760132775922894191700414842785451892491561121140032994294102636163583909386517494610781525700961198876906299362485337963917817050269105237363180868005191799233718716812384629518285931007009596634827375452589700495473389533893128360671629327376265633733035984365309562156626520138502197820982164480605548234447212189247885773457681414786525291817228254447281374869495037051612435477883839187446326528808950583903127729565115635690566820211902992707784950144527714401104263032576251648248058831185124087168590928406545951896598243525764666906874052676108945122247918095779403197639569655085161039092051452638304524860015710817222774253739252040179882246509238634377265730243806755781278959612427844499765601766958694725492512032782932048972482292800013193244051386480449914310216584240163389611983390898101627065820171530863601855338970062512866666213778322397412925409169608018390521759743394702635391428296376387907332442117032527188408526637854729734891712486604622420546460633729012663403985832001462764651890408254750250270752169831299314285036877650715749995906261318772269851243082612840634208950358122017396877075502952264448367194297297513712375430804696124691105578568601720006024809614462751970746918645909656836408132320623836881017370669837261398497594223174834213695109372121747812233223314567572726927158225740670959999475908496303964560479332101666217745551976765687827764393854508602900706694601138970583971654233117335427398711287423155718587424232621670513669174019611301393179071075157286907709731251610045878858491094463396001512853145458441291559219734819698536805355832604621939653372127574105005952305939699406979288951615389701428902825606180777886445601612171446524150521961746749266828851905064935689063272369979094206603452523289521053264885748350129563161575093309229148337525314036548479231938267237753168872765510088190952059762635517612559756921379265038364931603839997821759536398277547048904022338783555047506646327692577745788890110325282412720704857529967002940784212167292105871390670058813091636598645077824709393515990116555284181997488353931252462187821008659226918954749752367088049531029813984008218505226432467321785738873675363951153568629360796709405684218908695864813498411096811164835159278400830964225345460608593520007304797372116685169035614572866089270008302314647442106066072593388025585472187285754446153447202843394216268859531023028831006748335624910333249511415146492577711083118422143401424680723242848072725423091435123494444512933446797238602605867462194225694844387588653294289641893245109169485058075146395882310365406762108276543113208201929380917446746596751002560795320192021802703807339013729559950693260937101454928056370482875000727603688383605079429907166072209591105046271676752842492831752189179783392794931720571315268032883528183265842985182555545748027002947179365984427625398017786262339861020965112322663199500176897230221793501900469395278725107302561734434643898980250621018136139724295377808516451879681495234880513982400663630630645777107751209518822015374437584375428739077622476097826605828549974795506902033969234927182648038998759402039232532315424361389745038115782754635955860946090637918593497657739142947722444623474411358202910422654338004721827266931432074425612563434243194001342219080211029169264959711116286840557336446702963630035274642360004837068794386512800831041945303978058132642394668459818932985697205564362437561142982533666848421340341537386227747726021420407813156553744499580708763496741466005144125802929738754456821306350842953726345922471951978728393316903285083455740809911077388457314534134951246222874682135299534020126501498374990232985068859878737224241228204107956909730092108699142064222734407645857323909616282516220586717314299762751010982789610269191237255339553813854597267087072621108864762459875797222494851986204647056806332356148665372083839970200139341704265765567507505845538811474195238280358696873673521152593233409656044408651613768980325196143169653215686468864517790440111740034397254254447210965770999869574662307396819316726101917636374146715598887153622679105515511587956331448050326705092725761467110600848988705865246912314451781283060666364378156986451169569586151209406015068462373091997124551195176309438710460594733077580196520148393216639829798008561743840674068851521247753558361190970325895392505699317919472772819488610164766606200878418286851510044063517106417763227456959450666642112978878009144179985768568703937319192050515863370723931430474477283633662245960601279174505282941962153151658986955662679845034745411294148852043649283459970547850542535152964792430864393143699451180285844589337419493078312412627560812349048441651642878461141403582444958989194661483919173921383107656284034759885190503234477642480174427814140342725404184275028384565551121361903969134336012200092419503564246842214307157164612173304356512781503352201711394958359147427491978877830829907369001239740508032645352698143919313891061863979429335203410348842899717793334229389337662014373700443556890746227887057480488914733554342476625927483762704291644226831019924387779211125613834142044015083958969540966247928383574914156859946793014098307680623068866918662808875774982557575683958498019460061850058527164845908674812484252375158033026602492611755650329716265832643514325535217097535688900830534056788602343284248809291081082378952378568450173080373029364402549447451094276987846638607114914315534235996250575873401634099554145161302019444511413799978749810773258122033551687807992936035224779575371462827954600534462858168059312820937112126887132624543162227606565689872039979450506288549504635942614212573315576698676073837379488249270077954828412616671387982891746289446323606221406432471384484023781881012079151503163771496030171190386422355756315401657409680077599107856497610661854727254480530922334889903252692112430754710894209696357845835822290316650258289744803751409760654417764232310283408317357318415400186786288769780805444286223683177009072984893393160151066306589846564588149595203862336282703218491458654852463733003287441703976906442568048249684762293786469416185478860357911500236242281009748745330625442117377141097232755750691542493605349644041064008061293537905861741704492427505126378681411658876831192891722189216705113823493921465627436661574911376788928579152055387652229159372101015423444590974885316224962770354490939979059192753829208507941346327286042279464807302518562123634440808928320775259957260554851575866602670274032675237017291295989735660257883928351038549178501815763265020192231023232549711585771235044498463280648555600078790942376012076253079112958768051302782083611915941109904728638703824888312517701037852881082078235964535220794231582167540339919183415729459976151675727295693734552657670400195377980854764243211581201136847687964657406080447075165453684957850993558374568181041729225176360715814507381601077286119794149361953822124764484482584499824508365440180769348691163209894929382870812117916589206887400087177760075479075452052004282886456403221594587346306008770067519558474895743875146525252502711613053561307087401414401896872202293430620772446934968097575168942528848341122606942434368846734450507370833025508985416692699864625004725280435780181981485786469954154980526740518335037324876458933410119341598860605995549050055881674621427508415095378890763360156987080346672434810137420770536177771756543197202010542649479951178538480347085740378826232846769267562829371630266644205970897074564400775499920027614455728194455841041360077111473344864398377466420669178868110523127217195603851183460380142713478917279929262538113292629959054469405684765053583314212446583413002919627084222738706120163445279425010396819261693907754314061448290959289368298544155764888674305834757842228274157456427910631279811481629855574477789552134113112354931486502699164867644797497972787664043488479537191468967024285055077993989183447362122684336535283110012186368487178232393931111071636065442121817364359662123538719600668142453044209357618225207871435687949271651812527675103684880030025979172677261505075586507555029727474239918609285630869571937683268322314690071632959448329716638796810492076049069173452196456774288319965811287825109016945689919685651402014293242798584751544456144089891783982141297652693990873479587684950670430075341136467032701238827780842702303576248177565030754341136977502785476551612142113741925456301239468097781235295832943975583975517802767618133178029629069413933771405852417922943208369038123620717181620377434390445699093266191646959016325995305178592329575734645530800667617060868098722839253622929607846478153051593036248618751291832794570937588612984426542725277941584849577519350797105570839054981566120070105504830582732313090443196768365886331438800988591930667022077368926321431357692717860718153868555582275113420359778762516881859779753841329505761925097038376131624861796798621288076287953655963485741830450064377687173727643911096176930476976383878459046333684746351497061292188810001934753433680207505216964960033920139510592187840998326467042870869084254751888483564557602482195035490000141870252348429135230471921984243051894095826849374365142888501719416615986387272305024512314578091692515767062775540218189834436277614158523739163092338999869339641031670877773362660065068273395097306271902992707442184630471384897221265047233452551070836649946355443888820408287894024472181344733198059385766524361015853804036312024765089654271307654566266493760785756636841321822002556906233233748142231813485865294736428083250672893889049250684711769002453297650010232492655445498264610901844557170863794040743649926326622667612929620942022179409057442088881994600984481766768130659838835742833074878609302599132299231417038342366154653130056826390546006949869684942233258716693158795832397081548049324957286522024413650204549284146071127410448201097067607787342848860899236081215161630408119279501027611948722111919634544315842865595807859758827007468031499384587906823987532412852795680182256070820085941615791998019438356263192969021398197376645396853997010456782866837999922124743130609514790311067769757148819386010221608272523759401572787496392337152036350320964671979265501642712684560198330503284644755843548865033800509446709797614789182878691048108822808817772044962229136226929847113917768589780702770769989017680689664537192320055379423411884238412263338837434629961125689910247663156397610646411484588131956231112278588594390711446144791518339100521103888797425171919581145703242181487010791271860418480725412077320493092016938327033343899502279338673469509476632753423978014668567217773423556755025587177110723143331092503870143276716000688472008387704845191896531080533442354314546207901378432432581460668484386540483845908074100727294630829948184825995697850295836661577041621722031344517619171114858163251625239131413671868834713849682469413095417740820920980979160859196416283842053023121603960437339868079083920903929259013983251357135401942749717026668708034731256664492364651234142381987914065761413082837802643394968703083748243784196772416982597592677640645571868061828154455765844719186715410173403301417065123223782491045540989805847848902496219370381217997111081331674452789046330123971591050553510303611898526668565107531083735165416038439718921622579985729614469167942465747140270797668274815022072446894306425882046185937104051543292575634526747754259894157901178447723686699134799159174380586965891338291467450894020108483411127540114085262745894118762432298454239721478919613108174045705926013562006352820589004009525457937031635660978104120704479587516767088878146634902906613512020036538153730255281427465684956227371324781883483456746497624714043289341724817333821725861418126153192862086162290833398407286706981690508569095613416018851475073949333688373288172426085194099547147810809651856144694497472804935398254772898554875085936001380168174897045103120569323999456680792915751323539715883243463439020016725805129912418272780606070803635174730258879183826089472381056147314789547943188809178966165280930116892719109407570840464960352428514852700143404279681834318890898866796955911458503099390379670189205526672200218513476612722001725193241666592492476699613773962747345413037292632527312077587074852818015491462547831555526307272552733929886989759401206077898715932461178583369314088101158559944705517555121656627809030817132854066752081741155402406442381509523838354141839186118384962535946731392875806369870708526304000047476748254126334823172715858422198738241287656338120135352577092794040183996209227888569694242337282907583274466471260874789733323605076758786027637021421912343768164331893236857773044117212451916365368072338877233236463821843335983534681260221536250700280310629087295214010643623495376655066078618227325303654105092206192039940092061304188772271809134923080248290300989632965035835085378590870183631388474358710203349703793285378961347349924569511615491982870330533255492711750492539642842084076518442872886071286729550658542293111593713632128841059825145540798324714598296490554366278389382443234055158609069614710369327215996845295948658762233991829769865255687992523642038908692607326993741178966632405555022023298460420435824965796334567602695546914971536283632598280022992932580246986815956461358291933863155630425747996485193469284550920347008446197556878312021586065965022835212502454138030966817008457737829394888196654415024270168732001776309492713642806381883283003324375376182543590073907026464153577680288530829834482044955149016662130182860639078711000555183723055449618194738340020518493195069087495502210303120560736033863839102068540419132945630337303054915056857102261468463922827518064380273383860727723013158502524500243402866068287249892746314100448433831701185566033469064057828190194595348850168888074154938569326214180969677530630489495372192713150674457214791013306449961423933006186930955124792402656596247170092769107965825614147450100395079556004485246149787772753474427399310915897794613318385099323776374892795826143295593961796109544849072885764081673698247451095170977167793840419109149993811516649052015764308685504438862345688430453856818558818683128737454626702579948561479217013052101259107290092793701375660724425255765546757221274281425986293163847252805353366787431035674733128583053828373754974413729681763724590835807356781842002868263226172956500328249576610049349793544417022850735529669776715663055880334316043726046835964468081137378706276620700116215296107960932707728185255339676648911794307648240275019554579863355030670171066508501966015556821264932459582180411757513749670580138463133015295385485900158830190235553626828902886404485776447675702390856990091092712710983967472475682134449218987370727423639787715387772399210730415766297106572579779537510739400149369052127025384708219508101722066633560276660068727273166155875332234626235000049707843946950206188014280206474435476517001224403417599576290696417367807367706383876396021417401785973225971712419585425339553420034923850892122207122717347047832562686601242019659174385241798412307576600304934808149556100697382083156962760760959376079479227562618038724377691903957243905529588346421426049782073220274829393819623232907841739996899475241712611530042350433454269950005784765997523351203814545566530303018320644446754455920361338106887883853100998543941806724313638018722686922187058802038783732713597137055501709626503711046978639166364637426191499051442500646202515889508500231425538346705322244442481400753518192950073972982008795812833417011917223356866369999454593023207614393168422787029734693498153960745394568141124400447636140248623838898361487316168604076940151842159465948716238990821724691204630814189580732941864118104989431818827889714938590868688809787414481281773068733666003748390266439944887549879186844898963166985950213268479338535886753092971719283272003547298748123066547689122689571131155122701837796847687980410806382987562515332687104209063141019324888323078141270308336333618375305319371629484780200492779902072863134832837811719723733336246555105222851557987453486877086911975665194470917211931611415442972332714944558475503300877308422342600769959978654695797303664857955510867178521854293945749401841627413924243055411705425039161103845026475159052101053295082212000245311728962368342291304282565093572156410411572057603748260096486080654466436295631229426339598929637824381912373597476387915946363863849521844391753300064716525171254773595193875124182925991439787939913569142215623182683222912624637325963079243418999224049873543525825781711422221176873847070359363269857209367800072458001653725059787342650708795823607978532364807325837602091870700809588584074675929982698031591393256461764369973227553507191862546311491928825326577358593810671375049839853697927310942669745514547442394563048409564412906608158168768729881709162530666811549600038055195064805505552629397541785083802458959561405128321941281883720325022239488172300151023322170162467151169711555098912830285914752531208227634448414710930421066308971175246610814315441647674987544558868049305110241395634255610876895906967018216584268387983219350734988543545797044926592952414325211803420638010391565730130609930504122579059347679058089336644133859939128852631286420889966654258823836088903776455001049885719330832559949588619737195115792855167574110356933140244009602724327083188138799661014492250735389559948026725344655573638656114930775908351954367286041924005520068153108656340293573316319082143335676462284500405255060473228623785185488196839775736578113259904889090397535562574720094116278549761117429509999298099383913879011225514439051483671392479444692363608519365713147060443860467775534819550629376738991753721079332927312067529689645666830635415319027213763503424103112477235108862006890693378646766370539660832462106269261697697846210289537974554039812758740652445872859241469152967515355900560207166693058896446547446655874757497027709556517636571241968388059175080030096129125518802881721727448099681854295488068345080774467387464561537237338356507989068249186882708347273129744772156108116910361183915795191218970545551993897721639300594886942729585111808538615402224055636780044326760194160129995496378728535546709423055383626508225269700268835475751079234761188156431915013430708816415291312870697431469248557893621596450272486906350098090335781944869568523513878075024973309526912602920460637409368088489618280050470692629843477549867544466591873722332669849248204684085049787160031281878404642975764578949482219811925656924300243737229508138739742526090034142910806265166520327154246807585532014009056422070032633946537438728671198450506323191615204600961972033327338420450039007689899957607844761889159389734424144893216965210585408060801232855426974130176099878487857310951530954813005634731335597322945062517295275119245261986152515219621140916160006926106910678254155146830021134763375230520179046465293253167975784982259550590657473407842078966700797708320930522458610116109875067989292911148721114758513674904061426336133128368216595032009352908445675675013062945759500313686613895637835978967262819851155261606887605079351608744528078094508838540929374450475107067565535868202137050397865294220273037196260598634183166871192209323906046456974372727660716753126801266233752573013422425109842942809121424089165435924241748061545411465395063805275982712034900876065517722880406339532373792509199663320709342773550340794014737709752647534720271600148661167185135565432346300542956209354310895759379705951781798145355348030829313676798634344900006474144844641265746945476030987415242965661216121042985552816561627686334512561027666564295716702757047665421355838679345835725676010420672942357223354649223048824275483909478838504696518291764039130586098830461877836553172158720121022131504951781070300071343314635570809918471826304807220668262039461271723299328921273708341885954043059758283423408386046979318508921223492382969263391492490510025042394673053388294721097202285814085845345830996377686961291396621580340031359912699847572233716377943867618199444931100790865457594736263237526750132839271885797627051599875839957541328482611711342240843516707428371597942597384985454759811754754233897545947292648760324926376466608454121369247631366286176432842504133255199760714426257986994153486487762375776171291964947266317340498944652400227563092732006587763203750366516928231129051299963175714613588836225475076290165475299212562501598039384651927927600796204472604253276090349016434041088092955936817207480740171675578715394988946061128701062069190208406401258254163316829491155489710415951115918691445153285764575001625551175063851446202782372496659209959363799164933140124445249058419577163292445809253889345065738774093880912601742768418723224087667574355130937731649895246938097397360097516352087230474540002051534549547862200558787475955449734293864992147136506192362735505425388734844470614284648896229625135869812499842019458237622012672177101579014138517182552249834862169842092514229747771969828352839930006113218275875670336799453409024500463944364555751083770330431256777015646215397096314565237014254786429950824997616305258581510194794365368492717559517001950732794377174205259568741887765446316729315336013902206960493369947754385965314103622897843024600294004642955847201592132266449154334721443224736980473376638928324644385377874613286353827718881702504976954009203465959741515614018780014102764782015942615463823306006297746700628794039586265494008444586453712911331411289649373968567376256810849040351564394640109982037968293334814307515331255895007913969700083032782889753669799151905276121503015898517185553285963200383713464297641481986826044321349937024347768613663796891895481580394933073167107112399497581652334593766475706018689477537631226932708511235872901989195225522899647231397168319234465074309675770972936921933434009838648010755183468026505584731605309035044121169940216464312563361680407254276377302132726395055021436269450055877324918070748577617620731194979923359825763218597331039662431488023040934865181093699812811131887979604197743872215095779309050703596743319598925185666203268814157564664183185156376980672715084469264880496184227095659541126213315882827657716438641758354174496604662404882268741653838304699690815043056594691741533988015298777979978897612339447923055161279982909301397474060188491234251199908989561929189807397300158891715389635681593711520851972401532793418550333335456706036755513196026457297964066305629058144548365196688302793371952524597288220249344123836253684305102607348612406784659566354636130003523728785222126428182159109325875112219264118523610635409217428870558870322763815711899175085723143615364055517577712287350036539375629710759019501003499490672377586584087880697778345094964269627974663842379567890915478435834928506690052043081979290407133871780099629638032774174221270114818126703398738381963646181709664221032319889803509373293528174687674444688241125370777119315528072586217356686564807666887353234048297709411288999900784530992249651636053370089449077212750509680934498133786884704233715533523756129026800325735004606261475083197717407604482300350206517619566895128053616757176188997512400593189279028770467217913547320054474402380617625807544878553568817726224233215174378858004583390026649915163004688958994060926223768502313313231992007777512893395689886973610067659738042748870498588403251966124474716230119644382951688582222890310539313599746726240055944081441744804749131976387161718513250014329109426087149626190562442740139236282142178790616965085094557021081608563066665439344397462623493103736759143448896706293534879314706629341010810288634223068188286811645971842041722565779799566793596535202969130710590352254349534095538859443295286593642679336026626488649099246940047897114266141828286625556310043727925565326746383183988129600206546117419055528298886749890671354091133931389714962411616278221754767837853566514074880486143459350115021273461694344020906962926816689775469227076973671095464988155603622484881208854360289883653925901141552894625897685605726625664522874954375499526277339664519348900414997317599426221597722070388788972691156530259469077092442015937877454515263484171827850616077041384221540771834182636699251457263793625301744483904439303653153281017209942551490901531522199759068151030616783949790174293475367802331791367635647860593367027848875517141117314789736094087494459172520275479984551497920224924073191440096405827209353429211576212596079159254813481044251538241767547852975044273628011936562184792730225553295055367372626819071510718650761484527747388114643768988237376224820076692988474715137808686569928890540558654228348438623285798704495446004842781430469622408988531594838400445935166885216482628915339519653450392438817636654025361642879251655919223776125845732025898239850396558717979263818264353322624833838737117801762197520755778667803929348871728691753667873747744058673409541431454259656351547780853693487454513543515432732738282461360421722384027098105108302512526535536141007460260309216492024337702220575971326238545886721847263457783989734504259353845599092952615121618380406634319700713668563598346208011804705138246324335370330740859275550082206191345120919056977884246602564678500691973193095322635322050464227875060883167573489327631021713078785566993944638291587990119637891417889500631930443735731833205158503890204842164094682999639732557445678453498833592058500742290311755554852909771196093484553174169298069641022808393846737779246788976786308072422385617099013480357662480923727790962276176663938362925619587307342994450166852463748735419779516683640537627212227975969991221622759974859385979414912139998106879706148990876382529391024661119055736623172113381769863862858653005692369132830822362269599560694537046494021133686339510780914838765072460827136052457566614733097197673035370958220777741562447533913718212537811662110377109524642795433462112007824576316639233774189436018361810192538068895179306635836445326487348849466954750168109958568281046728533653800793583527411221337974925106345830935632377073058208943203839380996642776781992278390633395399447788649603457244951506059894747073616679161579246963481643131037785632314813504558372209079544789317522617565937390502664902060153284540030001082351215431342587787649071494344870049953367577440821651023596716445257791422186384085614347340203346735127992656687506758904740354772336292498956389696929408155104236254979531073032619153429638563175265203028297469521898374332031033546114654595292678821034479221910635308066567061660448335159406858785869772623615102963504563187122416807222889566865749770727213221323493036345743826968615229908975648579180663644357624778892204193581326681204843843479628946753397532325886211277037879301479898976708716270453618177047204709647198027010577396490374156827533238838624651938692427529073377509240093337810552250925019807409271462371044128877043357304964554157312481337413632908955361818047375120914738518981233828067807077445562509772929656288532769550437445921550967416415486940861266242607868302155483277501868271592366460010081046548477581585480117020895313148718145847512994940260694949848895231584301469531632746400783921483497465756522895633662831605042800799434831857863658462079490590461683364262522939885538602294093544471804138271422265720711983363306729117438007270412687457676554555868375368811398504568860077210138192251723770326681738896704770268171005254045856400794149140681759316777074310314013922041802986116393195871217829853721302410226886964426407913361408422353621337325164673238145822413673428570519388657258095032906341162199809115706530536065449700720105379038232256970509245024033374213881342956848510486598630555005264790037288517951742351984354832117489861086792961702567405482241275110480812388210450102832625693146032771779076720855946829694177569199989765212033884758798313267559291210656911199769379938001764505696614098164846622942373120695369920121882350100355941918199094521876597115359932525589752734436762129769210110801835337642483790051337183339719165828411561962185518066710575188668297788388049250851517988782091502346083652864562468669194845049627503002913445202662837790091154566632587305047020887779510357290132808524916028783694243688878148370537275435836949852056778896002460839549323901900865812937931178270326299476095783823380296038082969316207268814237367609337010159602485494124991949884737600355127593771819680731392360546886825739184987361959099295927035228837509066232383573156773946731665064250195217138925252096067448300085588220281525273976235304625171199726227357074726667607703936550476730800838608891287789463847843031358934544561314448212294648777558952369542676706701478030258368946069128581811665141747966530046447923263893212412279028564400107181284604600422754555659614123611118568009880824933326985565910254227703568941794860367596742986081389478027735485805505807258455471400544129391598197467391304913699436754003199739629991933078599604798950963587676091614013698593876633683404996935195841006959198574291963939121820753622441510426339150436620334152445653420404728535335692340147646989464541416391649750429371926288934428847223280331967837152503776164081607596509869055614102144148320926649220263896192442565211786929093940112517662145834354949361706571641252905418889552734564640842258057014265080649800555124980524703104533230232756037824197948736413017588536793258039563332155136400981161758648114285001840363687594846659805581345179733419027532209314154948672869390894543826642394802387657055013258163410175234902845009488759379022480679594015527703522305391932331459686105121000001327098170256145862241287705787506874890131863763078345701357838141551463855451261092017622963833553047733508126703387692016901214361366017885955201425420868472240053272726385232906749710690408448954796839962944620619632685217869921427743721260758290890236810251954582892102892057891859843155399332466047247245703450484031149310871690347878012104002401838055990964444370424404183228723975856138476932245093622220199158001847109853212002977585780854139333018434830985122934404423583993570322791658209942108886716693667917440485146884281335041198579827638210058630307611320629826071829547458861462865539536904414964603590112045865862912207148782910582862633582066348615232392733731486862754128182257004251076238711808887414797706306765379607750957077417599423200779071692017846932600069844796217150440447501968481873540898460005810804662058962289929096888421560060443020504169919575149091129242868576992095709346596056291009168172498037140361818247397786642469501354786453071999498438107973695628685680563283134562143082002193080643988314128708269150645367734302114090813668975808181694848326570584611581833951211496910849981244322775841992419195269376202324538847942764209317986308423168100160747403777721119120006763509632390021906813849982200311940150799534029278455418145719878580935467657091499193267548389112074066091230097889608284138459066002759407134545428965868915266805048495420621928747540420200361092649464606442993890047234636514694871733058940716608349048273316773825648436854438209388945392085287814250584089908457506128378370762160949010753742039528460257147247008383219138937223947808384111977403037282691431623219319040354545626313775228407943578679825039945892347852129671295959005666996490055445389070947769446204042164563359568476828134089521715876840844829294197428993783493219735276670409000662980379383545110630080959718500640473486631324931014422851348901111429935784796581887964164424072503508885552271001319106855378952602655333916349088859728436063357497237366047637288010582651716019454418874047728578089192964893049336803397053152563454666739516353790612808295852278523596404481466238693464683836423034449410492396866853143399774176812555596126073777735449740646911062690006996906097435757797270024250379733941623013562496333305349646391492786351164995915628632120668202101081898568505219910255464752672787488297542200946606766869157548584816580284555960598432839905936949865647226418537441293027111691967061767349218080313397575051807833464275080237751565251541306583268923189281754070615970955923967719539712516961706072088364967473249488044236333979949874487710621658358790205584032591908509301358662111806082371219297966156912488367059031714567957159435265392273107769520703262340032921432305499061469302153345599333145107927624343718968944063279240046447821466832595969481402750112409557978981799353492227738077907140970773411820054506208725656912374147210215160717204898937983797965982168429092773877440639626908744123137277939668042593883885201825285626151366070254096426609097975672847309911340092185841702804736948490399500998142358187490815594412898209762687047260634129747359918603285652908513687885975513516330109921601959055626080373003269923159146689277991586705640909267421562778609063336749737431368781200170824825890784501786289529857316161432884639574456484728530481400736900287181490010679552789235056411730473063668093847639462956025957540901567276558994229131632541140600395640570743264121031675207146869231132482576405189197876919225756047956990281991560636946774582450404655677233385068177781845975747218720133339605413153705319932219406947899027297313766492452045900675926279593995877527296327869632773804145141075297918783401185719998388678934894582630450703403584902710363346157386883487456379435297264478489331791911775108034363159885195393442640167382814595358953288014726008649528239829615943374372160834801471627315840221316148547666185501520460742055074308951992000521355558822748439406605887498256886763746465841120551793660090464828397662920373339816757589396435015212723905947434141862662029307383473221000007316680100683732518051858500933203625692620603458173279549114066825389166208636850561377540188462724830970947944626767402128645042929613889439768882374780838465686036759326631070421732420088209395500779352699619948382371216322777673017073282808157150421766511065447401317035792514166112535609618353207341505605026365942500336515618398091720398095519882711324272819441550588278177272044419571820189536572009891710116702910249120981363728945465376423687423843271088172980110759294212658596984950534341165501814779101714525310297731644056717357125779044033319825855892176936883245935151614946176729901256503361307324336424398225618561168001542250850212901366005102746412854419278284234146603939768110945747744748579814437872481177740883436068924760112100104467561934777750510338162975876104040958493887759962593767885139126661768803665352097435208042524667715234552647592590721289907444199529597955135728898887584171516593709047114243036318030022243488216427136759612173507569304498710877594584356714007504749321268698319553406362785207581740517599563362030441208690470539225374740239868043420302468273355788537290424751506093036207557555722639262069503120414691055870276370773410818834223217536413876693274726943682049072311776318014598332488444911644569094807823683693588175290429847064748855969937265928181879649597801035396761098237160132015219442378216143474661914037553303843537146568429265447764280490105365002546596048154304759446184187261198175648065986313046696140035267091939648778679446260425777080119500923876630965576970316365626638413385968688468635638115537568552274730294132466975320912331875053552265928342972047149510181591617159875976412495385286398137473695162128955854094633054083785637470382977501174351349936877479226434599014853177445689927176238749374340626806205552710755782579731480069085509121163364751215751841446653838260739863388836068670709766463065208565310893529743970843976736864480386316786187818654043242741598281619166999748428877883522429843102309772223588121258273685062820990604413085712789865247783351154511426057712406467829314143189668719285064346197423710058307422550351304612322668662375629921961022315377438864696234834630610417616942384921252406756359730341746271830270994511139738486868761156806508283665868159289330135542544112683678788419538359797012977529214613516377058423233259484624365591978311502526764860791057966268766509943070510137127363076509938638322035586996893553535062456938317140624823883569698488589945005034578733704472848372918439633674410996555924181756957050063656399291173279355985485514420552443878024748075828053703561671246954605500194449967120263509911687238605330349432617338547189398448886741953055580023566465625886138850938774594412868213460832436451040362816195760371289459501141477421714097610932127778063020356877605750373186377080893060761736533903257315858506525888267465403494849562065697875489140902161120875590710088151998022287430395446473684684425862439868566240031264815516734156115773996631246087685322804482102022062034935232627370913271123693920864626909859873515077630275536865648603395963591023098394321721749185963612776516035797793530497395534062865802297446664944729917584749962067367560304452389542929497850981788644633236629614424596530602658759015159092497448311694011974920652050729968022643759946398634300444937926567244545321945703870862756514948674264720568820340345417936903545203488400480758276929423237936017380639390526736691881641771632561159487778722641954356071918449369673048248154784275810060998733514577844541688143939218060694146116644707848914445650291851198960821834265371161227213264798047124402370389929169149091335349509693904338259113044583369105941170023350419467309189878817653296058214747737119415044737136286620525076879026617563432019513128700693693987984283733688480525724487193493588261310460491590345989022627494834456200505057878717444073468200143986371268978748303959237138874039718289441036694457182295398861241566048190261039348408994704267295184228044858275994815527563121760121729264751328956430865543219523848094822661443469954714617543870478304250781755935098437598280811053662026812887519024831139724658272388491673256631463225037477485472256300358833123084302942409716439562501338049888908558917228423457242621553162981994289245989440373091021775327413843223000397214611050583481677391888236842805774311547671849931486881252197564296661718755630191137899260862553976427244412096168376642672595137916737628715211665750201290706561668122226594156014606661037040154254173112605147163376827921501457603618596857618580735870658161030813642534229665236616842979097014369356524669698867610255179273441840990822446218149343564881478992264279947766231809931864333087982510835586930249241591906735762634310489001113945078368750255158097256307798643984103754899433771434346726701576727964189401939160551089762513677666742456708572084437975937456806134199530006548573554698312542903108685232385329598445984315290388355430623219712449692517511010542072442181329242036564375577550031064120382703491193498804153392332942991968879328794200243161169645235448380296591934654325245410641935238895301180199660843493823338566047220925375674427746512789509515739942444768379537752699418638820890575706125894989722823280007956336799572016971859053855640637695059359426144441123930657677248141906355524815171898674625082785074233156288878271118123724059976964543073109712017438475437168207743047323304146852350677633288181873191496322716608829022132361597050243635181745321425779371558597402074439979666232635515079703499207247935847472639937075759239469894376205388757041116520095200160435490452183010976123236364083191772050538249756374724320330310359327983480506991450661249081972515468339244491073696572960589123369713568539687315683205719590020840965483840894027276898828931897223370219622925836232542455304211767028317958123445996358299703962056047369005327722810911660582201478318028961864167352883571722538364731207491744026184766024360897431079097759130066270630828986897897062528090371598363198328861951584101925826809819983378862007952272537459886160134941517258935915894864673373535719889565594793334586664820261687239031392612897527633599654843046364897207563961973216843560122444762448674435086495242811105448123730098289047227354930979655130157578770573201215307587244512782730793068915901643786737351934848701342347188926946320656658099872893661645278783287007059804336292835733914608574107044774364166628462649105096661733694987388551645264090472291286629227177938576043600028865050839600738064937409209576168781960827619335741887473377955101199325088662241256723312185810867475305864907169028826923832997337545817980187827295970738818902948398894069121452005039665270624014987724770042981854706371695032188647032261181195677474139975277097230931996870676032341661846432771010844053524929555956355730651415059013790272870507212967223350017541639613280473372477453207130711268339576148623067814725871073326935826750134965493230411766099400937651387784275990728685229568139937672114228489534858474173461656381519373098139262818604530431449486628131194369718612948228239018218118780533348797205921000949589998310392809725445836067391359228638284171669151116114073746120601719736709259315401964603813880258148373791166417496650658889205374532524806151504717081474324759149335522536189513952367883283053111263584532057573069309990564545872138240878115291474666137573125129676600048121715132235118580923435087374987218478210822095362963601539611394513132026710458146736354255145226700079130870456716062535601606621701428727362290815977205047692689281546189698198137984838882186523248379162471280242498517336031932070645032088645944243144810020014450687171731031946273976167055402546963616908043181762840200756385793795512713633084801220457164356317199019929342831948653848380176556570166784615827823034623293374577842038179533852587615555728756915071022498641394359052685758142049083894769053338817640629854110994368935266222186376687409694274908388362731391101524227303696562733978777826947999892912476652506580623608600785212583743978832134334692440412699262379761871275971569178798049665684717186346185604438218999012256307901221464335845772322982131081760849319278900398567268229339008258432005887925909241392387256387371299103856975094917620610601776552218557779347237715526698874967422595541227538552789881610052484172172592047166276682846817232113382559212050491009272454366690498635128170114156237240284356367312734970281850017510773613385856882259691098571613941197508486386033307630922880419065074588659339132352696533426683517040708490250401248946409787590398976960402486448273696488384916894619699579954620749620081052795205833209312028558646631833883745146570733291593156905734636502047401599863521824468500340821014604674963924049276525294106384437430617954266566956327116973624547354308510787039416675418019115724350818884317418367243105811383289536961401800328929706090175826737116204456134629384663285705585624847721881248067383355485895138505316098981374726908666861783001397831834736883464900109157048500680063197190531970981353231599538900838147172506485706122420260384050916393256112275268623308692013741445881074757316421490343784285553707979433475911897473450527877628110983458910113600864039799238244912931383205656672507266234325533423826828755517874917188036981297445278689065066378242307380806422768148694732290106381924334551851343300899359007547807237305591645450422101899631401819423028873313057313637194991025731998613288055395628667868042109594771799042937597212590736457578801845739310416626278195791188494053097487709433680956590092595199048576505456389640148209499686069965447305968768213578420488989693495557216588351985241708614916900919141397118192793055483310976079707503580009349831535556343881299140912190913215078356440863390561518550698428471514695933824055941179649851653006123360348867097353268289599803308685674336887340474902102742193688814842467009680556250448874235302668592322465753811401798566946300082903493840923233278552089695862224382486023813484645783038735790656526039406730153809515561718715118492734145741880968185141593072506534350145254711972414872558883937677752911386267739011128060853948007460537429495932752222070797207370502811991786636778088049393458006228817754353417355464026423111159087828249437143921036084100301250938980501332670762198662892015504455067606592440040077607474882450447680935181168681447237083638980358428086244262712962951295832182025501339525218895397937188407748648724419320816600528966764908820105963578998724307688293831610475425397958711212849635217533057538326524940673345851856757506053308946282852054225393341573965679749508009392380784440706224493193565631854828395488375181295748986581239009862137465410387233180222245433500826781180205830902189477742536355734942013885129804022362477886881910057156926252020901050173256571863967804168208550872389055482068095100147789124575581451076355836224239677416666986011124593267739443014948919526650337197461441287820386389550032912802875410007797836038662674083880838302616057034642247683912745871756569243331827616731382421790395527232513575449239557778962077990960876157597495453596796580556019732046085384137869472560336939585215098144585837631731373461946037106896987446981716663800865064919913960067392449119323312868775754276552183604014351977601370961392422022602039467733222148985240299560064038816942921114746161852854344361890055124883888634910998078641809542459945284120625846537363917740090411183804929541644843383903085543946889542239551147063355426316955943011306619296486567678615100947277227606677750514593184660639094529722036857550749382350433862175447294918043631016669333603722281384640747763893895602037878450951608727535564246475646076074486113816707123943411279484931521382777303433562331428562330860090333226814057846354919121042967275964258819412133758715889320682392155576910640544282647718489920920370203074827080755239628581238604131504682738209688663084580522843340387888089014448790795467804906895589436406384046540282913794266013660972515178453641658463745170546796303037006901613482543766393667429989758748788231276306519561014160493867009228409249983683095995894857213358647639535685503358566632243456813182338806138096156081470880996299742561857873780733749486952618001047185139128606182994077710945267432654226887443058473613638472308840476287795618011055733114745531623590759446670413496926315466467396322341513940920498564163035772180534889662342282748519820861845598170037739374620295170884874857887608580566163569857848511493032385947971296717800183521745480928623188459137660636015288781597231305980563641043900227700903485617699635733765106122799621398061142276290651367669653879235778756523005152137324236383298660110549676064618671203197322728050879645678012586104692712592353304500805574577001738502821323506322106761678610750795871291887831653057586613163731069717082157140262842718888958736894285906207201489433907636556498844345784576818998239736581270399933765788130783787332988356017932434785174842153204301444533046728355054301844121585948506998605411828578514245140139439102326265814569799824655725735566627252869148225957924404557614399546165998434770437738396692580033848316158047391290060568503573198952825388664924913797182484973566868103436533116725197379174077530329136578494443719276021861752074865645133343272031828451060547782826664164723202791438196442575687133892841452037228628486534809976447337158684290500554725901483993639555455855314876494293009636234149068803562030806305219694966228336752771176723261481067205808369319730301825215412806619901460993703914486267428513767436515741355222506617469656931875813486463452441315725220813793091300515289756186015163521907783692014629056981932539097659866924852428982079918299125516739684723336916032740697232145345722705830265079325725028174202180174845371011024437287834619555475080138082894844169444277658177877325567918870041416218272481661545543163360341493590964173168321311446020580495078885740745348569527445411488958926974425117343000313699299522578855794636264457829877442026354740849453955909587606192343565385480698479804507630223907266889158319314485452745417568844098663735714628001587340691620101106823199236125201448906839248773514087273582206577577933213507683196404529123479017056438840749408761750412157937614684021458584649173357710402097807304040698485029737432362818994094503668994977787313571978336226744788627445404251907801580952736522681562494833738022010731115543552027834457306047828768478240733431294800891182616449834318226723596475964479643072943817836887470311033044785955125144107638612728192845848258774823827724017625007266391386720677114137069090003515992102734506935764802092953405966954103327376664657808692043753577940990516147289710330789181109630566574507582677121302158572443128689335213355618038942662623911313213706480646462212312843709097384129093565789887669003062232661654168158663828379182529032528212735407577647794273766429382302107544996025240809167173419104483889349493595647053522759560099478172518615504153248101113678558586427791705847240032825508368208782811605379677427872943625254807622708307288090475603907050500824508189022678308541834760857766518666977731061378167443989902757535817895725425775402997454876940644066322841259263099150645029594952361949899679603512524391177022086853658493178044550427728249654195946675219790811473144473220873268427118888954901642529479538589216326498454764102250982829881114487735821986906072700777705171756272767307270104957654735096341926591687915876816045602477768824278154109858680347185533963254864318699704964319673915065220004896646453891185364653542156119271700020292306396476972711244545552059306487213557948493066528721913211063969047662585330731766182520974137629269923274930546012696859234587035167257779581147337626212322870868615508267274864095341201384521233184450607979515634567888719122966316069443331531676697248243896296824339041649805432266067351831536325526128784627467940139583019743509623061340483103196797227500683105317930404933919499383522671034861089869115796917607181458009734246295769643504098176792781484574781285930962375635872558365827409747431436926964221567022545737753104359662950152193315111218265489898727531921191967160734716996575196147958241471899287134879486160629320063780422964917196543523462556092591241256099187522984932066207650825868206828003012816512130990088405703177284264351780398614066443633821080115990482028333199851853265010638097229072810446430064730525069348185456446972331485150300627427896069905615350523766521099265965083593826429382406290466538364590600459902942584969689552132603725767354206251873301152167672746555063266814096861722966137057522539523912999463259365055743052711089231943004226618276185659642372875820432631495431110045801231339851507491131922166219441780823287552674985315455147339040564398716425381658714112735024811644393000968366217889555559439041065584842389605065560085192399031199984941394955168373684971409521018880081846742461817326517907049509216625074735848520164168877751484622619357382308717159916591068018878523624094675747570117062019518081986412407890932034580188799133511893759201958806440140214825978434743177297811460624813649447571649517866012906304091922731857127624411057904447648814150231731538819724780134439727070141277596537415761427179672840808692570019458479866534023421117872878913414494790619596011775015027467608506569556953674087674179254636682186797049178633586848510526900515151221119236125259611091413204119839367099003984058191625791415305355499729064548423870407960797634625480180933404070302696571284800091597366446650593440641048430355215285599401024925384406700271851160370645022387878656727983521405171437187766262649069091254001360531546051686440375708240745748011048560394794583437601933272656509495403787798821792594851273444667911401302551149082532443454733725692445172768401794610286618893531955628531467661668980433926632415066107130618844261574026476230598288111207717198157148323609620055659548951486630539393789437698471967235026135836597664896206725028532484920626526762142167471997981374361017875000662747477110134297723306664338840362696427189474595803561999771868476881081154673015675931930863924210666378634007748303268017730602670621158718921178646969472116595226239246706776747819047358709535049777570955877542397753157520634902552074575053415983969159394099678057549201158985362840316962580418375657262537595829214569358048814526962182602006210324656241409458342391469394127431234705381979960507826928024008011777449616717902785837631139883193152396751763956066122664186001608675815844890314061250106333143626092377195259465088122652182414589923064073848108966144767221638877881554980006187814497683329020358336171095746295027088751761143123260111779882079434971607867783000607818037101654649885040969521022505975814147529459370568228307875560253269772923000946098351815439734982048350220606529236696859892396018935089038712751472054996575930340026342288409877428407379185218071561175597738105923157884076006772567177150871495891076190631087428104548296357234383199998467420649048338570439307061243001085977029206331546438301819852757975189916396266912627669397187255371067327147761859046482828861373713153442585989130098023016106372581500163598884847242056614813100838998658940211769086905739569304170568642216586855077236131125114340286852591564871488934981498273309114085421216387762173428209639992409444922973734509003344189598108191491071686092650405635216814960679320865311463221464271851560526044233065002280618927075207386784776646034778677508090406393420499046603278707625877942136217120717625068475688489955082588726529879093573602037670169991938893486773363731237776539232841247361475358656657119350730109772746460668979260833097576529542151045319752685445763838718162374792957194905534813779441362058750668698328030157837253881676165330296696180434481692234412217374735248896742306449518610944199031088519801518545958530671354910796356278022897447050805072004386912296068224090111568174237697394300103457527713741375679451107195417180672833400631797142452602742028039876164333816462769218899953049540091231005428968029713024358268781700775684055312868509164158571623130910476679132752388754001004669963010391698601968913492633069226032497595603114471234879226104557832352345708434805539557809178529460593596651980340980843595685611927743325234181922259958547342972446456597212893250412673918252157692794729027631166707791907520101533956992887189886253051197280858960367756972466899318927543075639789443555349804785261061323060217858403669030846013691223620040636602327526959208504503565420314238318997681513236900773855952013708745723298650283910861271551979824648232551490175277863614205252800604451717826524674478485867853040328848247462091062249184516455542184135178033469697063774809596779146008325259224026613739890342295633586768298751464968091008699839684210861806250190021426814427138509588988807583299728710531135625132849131966415017043870008356067745173524707055575403668488301954026903369802977126063277361363056846910835576266303526451984997030562051713919304919888840978343469605470989366282885695509459249978012410592156035214272084434049908248252644626923921027970571254389726004980206676426664343523693190852368437117082373541130362302537787075096137087583061433469520661542906162203410007252444471088072533864522485559714198395956342310693378440976231759003738236979533150229843207446562639069684543706512558875169222720413100634314826762214798906667510552144361081829512396617393020322466015343048553297642156903346262665301890701296674589125223929126891887730340212523444267078300048376695243693091635888466493968560802953082685538882611514283542153550037718739212314428407848855865498587089222254551655444083337547234439741960854447821053504539865149051370677650076724417414159980870322438094409582101254990329844770263003698092609843470175425952961585745444592222762534015578412785676418673358219527811960994523752646194451342095101857775217472683228050789506647430270849584617584833878036943550774297725188344400584354732174568311627858965517513995511048784402966845745768617830111171022931403769120641207759501741767906834615651161987139268434392958312052918325414918161434758033577627371427283529723994424671971248962428284833993605736441808375892611989381158466723832984163517433802136024759684178125562087385214910166421685744028702428605203258210219066036567836924832593270848924127409340912196114259680346354343710265622251137985598784467132607668398353859918703994265170045828981059898631614168776505882299446627758913646258646136385659036777030849512254396566056127786312291245915255347960575759059344514186870897340552640115257422650254776674581363878647302812828642555331752153901454137590230710763263668633789594412139800700708346738970940806397512573161761169174253155855936100744239263902657523567596258448867165222965708169291517048685378019159064166068266660082224258312117557292679867875394407813815656780691157240627297989520826442202862153521831836731375534185398564453610946579442493592272116223716635787285164130703267982819694594213499032812900553519966936515032162934875226067314614692812419372878246286055753144959613165932161646064718056307675055829958482023761643245497164301098284305872786978150228684759654476451034654584543380175745746121795005538143895130460518801712640040074302837557660085775843679603417647360041970734701206405352840595790897248179925359999333799786857025950818745186620490313738028780587452817060926373869051819178297329353189986459893909218376666537230385752714654747766875216198569351490315870258713019116962710186410803890409419898572545277276421735174358983604887501026273989616847771501312150391701024390108479044619432904107764282181166948393115931628256000748625934542848112783137978134699002647296270707776426350664679120168655100620443807853353816350661031684212029435642406252206629552770565704790986165830069747692038919131942941070688730720567797949641540858733147158310229415297156791320410611482392645976982818133576334477692704627260445653078506144879778849690517079041347458617831390235554935684272712015359442115264729714621240111579099500770919182052874642297748495539649225912970349791819809402629399950352411858135559086785982107151950927839252461836264700463272327010655750506544009260683136368984565783448643138008448600069812817617860160845100937118441670081068009624077187097370604257456996375793960108106638699271639228008091615839024091989746145406966361857809886242728227659381823234531801426698105387511137684357228861760868218748747549174299613874362716723915731467482751540408663008802243497946496832184803647068275473977646207653705660566231829015612388634322379634387910343829491961988876891038325049248542160034634310149212577251408013058103228109246984938794498102273601420940167800119154614979052695089170377279629113929563643868461581836508684283226289622800681040234978227717737656445682850484617906757093650642559444629769767505991702443540940919480112558142650670137260481992998324770919553229444309141055188921319222050066168043980128244336388131739447617135212672007928304594227313207599229050154334227386792344523465603486733818931075634014622673988813148501836528700496597346726173544761018744672382469067371533428612166981584649995666426285485814072666146516019017135632701982984528582206468048346975328113499094415278548048405296650864716378832194220995458707330796840547762778287960169392412570155869565037718935000532017344541730536622635670355072442608501691748788051279378044893076745592749791896187413519905027725799328831228464328820019704012966416011097217721359832541110896591190765493042983757334180558639166218669864543615053790068748687267194910456129661312508943911075251647255933226869779956771237037621128291044929181910576448183515654062297119856699118444954938973684505907835474105192658376138384882929622209361862092797706950207663482082988491230985475975684765384707427376929699195039263564915029685976076063939916277361425733239766983153746473169913960479841413628273958115621419650795728168052561135242691748786716952387157313346553621638139381317987263619956720716126455558576399844662524890044528767917829787982171784546340932978178460388698268088695151301779219718263026423042441124353222558506364149567662476204827069170795252634668002145876071635683941924926967609081939942994178291660248495624304257894742008157466192033969209161493656900566607606182990873944235358404268944059729018862625445630857707522089480878194910932293369896695603445603053782370294093796724152453114303532912184690675014242421949954313895244394459093604197078584461460912096814366263377356008807396015858245788421146166559388967935357959610234091080741236951163712594229202384931890831822495699973651799710873821006802619984981504737043597697925680964177395128961557965680965147929566592163913989190823133643530524805361111012828421932046315909378855638117950648896939671763795986332563766337958819637186709613593780733335749018881394170716716926841220437669020890571099020099478408232408283063804003389667065754845163817496027920718895276166776035390728658788787807762730233636646134427237617733848689735878355263415118459072320110453400457397854481656208616334626446558456776979304611570625491825626030008628543923060851593097362946869489380661052386988198110356877475238883333808118397586327015075034816514725705716332468118795639287862002426174258812920315153521176438547394209087639566552771204262854465797846959704322758383857028450280624739631246631983220184896947753754267462281232334821113040728133993568094622958155216487484023775869619287674394878077876100350749856798809728400694770127422138433606298355232284778501667774182424415264690315188519757846554543682796961529737826381451976123838204040357869416020026108466354745489995598981692021598978791987031567067381533534467702285730474100190201352179705244736328694215625305629906325929932770135363340393319041301796868367006857777893111159348064136240780623656415604480072668438457748586844184209677774822774488178960269733719267651004744125631095963751685067576044710984765052717442245557472855582547181547666626157378319944772931394430921142244452797228189942748498518050869682474816726617980943569088092462119547826028278735624473116629888596739658935061464677230683868877117806893062362591429109740760094006315111578271834440009161191478629984679481289409909806709271851836730070930776677506633586037348188335017532700234971024995430704811605788775260331633915402459145626385004587761086020063788973236393129178982034183331350612954577225429493365661385727324420383475634880294561376109541150577871099847024724031970865892300161169466481085007071391386998167422858820504929977425276452621817788024057928527980146195356509073869833779258821824397361207063142612504404822317048387564318432872019340454304759627217712817369588043084742215183153257515370594688413736219093632216645438522818435417657043802844473933145304081345434160250235832057275963435252367575890502535347505850180250669854897352840785561417988002509787082124185853700859575348686523379372855123640393185297539599445033002487666455870328003443632999592430168086969505864312871661842404258799387393161935180099793184073704838074547498521244488214529810896845388872321188137727917513841473682438511509671120798428489411772472236647880558593461553435789736662381934194835099085484254812653177975507719869353620478480878911770220389509982376479219887895952272316993348315799637951453057810027599485926675936765960302738127762565071726366586714934751671898495131694539540273392712796210143616945709695891695711708292707023288684960312473415049725264110077288843515808445262714997049379059361867865194515333783343019804563896981307203830579204559050569724125606064979669156287278861552567675563073545353402689616920828133347810355257554764868321870573861190402825376532053289516290419986083615112756220381355180977440653181882047403041376528967890919702268000054057778876452331465913575802091088060872841975468090987319179530002942731105005293013996657949789982700159391673370847713865210789044731298843320522541664067941203376961443095639988695208162896343895437260887288697434419389082287978304471509652298817242736942048012213364437907615454850672422268181338647355675930111815968364224126300765516613617683360530464328299208874042458380286103868513311780707587565746707075577284265032980698727596824688490303979044928389322658114542689070269930249632068058401886765648044129764335482677145039512980940364515013022260938642404843326447830511572283613860454493031011976917706673730852741169476087698358775834330356773103121679856604127728000551856342120483006485571976028045162059491170272146497248881770970085692752906829539432863660513354270648764752118970155782846616384158639480346013736984608622657447643115129671470643537372652462591379645486508192855086845005863832068510632286006186609330005499464414318577881154696258744531354248725583949951323171909770295615077126625387488312540031335439129725026050751049886993946701817656534247856238392402404458060330985197765915054638502708236351323565923948046382233255266015085761170108860147967509358253155382255096930481901030496258437641094052465073815911612495720126256476033426075971692215865629795600835807442963058833225843792914496064541456560867453330476347734070638205317319822380292730646795920608007971440409591204552644752506159147759214377949815380552642873783349493898986612490997258836066333570226108677287884253832965843971032727541430726639129964673784944600685994337845650741139988094715206885372507013801059389494148427557870535617582657636434075600271743005751818929276065174788439337584019771525369745804902505224179928949708167727096824118960732321998830560161049555029774260220849396888816229036995635988148507120156799124829570040719726638551851049564716139271864179193938913490064819943572159709635455459881007364053782784836386795440246264254879165078105370381596385713666201790852323960773400275238804079604218634272182129270999198483823585836068796049073112044348919169187580208030278511145016649100743185216445802887176783050472764651616205381958887379465526557157670345318689818216425555144946488738107401835024173441637403029782923086114631646223521671982421280286349312831759665334362287760308490279735482213395121008471416295246280679974189055346685573631583631058265803470951345405331429152320024651956824298198187555961527420796111335697522780634815733740869397298578795690983466570041296584418696192649046171922484968268285267264110981307852938846385612392645460864813576609932215113734871037806398228380572318312834744967232671790165950036921083597251567880220376974715386886754778211555404499526267061698938518000506983157153474198510387128923801235639795665340979164016089747063786956918482900226489996475235732760341491738841932580823956244987112617900637269601632197694966628135053617265652570197688987645261359804817875730889172740561137189134625890407628634009843906394048193691709973727637639702318790622974350180208421782471347249671867238984467401983247652425263056396049063250956187899811870165720546844581468852393704054639611214361944777096094982628687332923738685593424356961964782534744661245010175229320674134259028138135114655248307093100122689886687029092132347020832341562633430195238355686177029170973686673945517130612483825447077667250774132392141506878049746314774754938345684675767707693889584485670077498718865153986030939484683814001635627991964427799709475710594380384838095589943949650587753468426027755736239303482514295730684433393136575183334418131028425416819722967325849515705481370559296731042913304786538409736217603950026531426992580497371681136078126481008509929236761577559987668970858193718171137863520284293327152581204541149843429398367975075732176340998927482719801443522970227400370155628867038433595484973674691342840032568603033957011079358235672622901898677162562874919382603116365127142142339176613765464956891573315766524016254525600455639553991719583465459525455602594666586503360905497137752743192492971761661687857666283497881496570378944888225842024049351830159278106447837786086999314277657294419321075100798105802206050479432618847392290725597108994478588242888782959338139127741676873405707679445211787433535358419466551619945275881179552910767090808753986547664004440970937882194107093135389337925660425236367256912762710840100535138382016657871604997498349438964444539801807902402145154552075196802168270266260341988607008688429840039203853714711569239605618417774773757668678190132659477327491355194502381554496881203270757985811535776894474643329986424314898417851475244004993261128384083705317578332466935025948054875045766729336325648517668176492638005354904493153519454370094490720202937675433614309193840451065619808116017526704395214711482863913460554220038796426940186142361575442347485251265117860956282125351444196170874640664233712573708956868147293919023041715623585950280990839334428349479803345735009190578911284519375766702421115127521857121994529781936915512911648779177068980712039016965054077819413240644202310119044920044863364272282233023117876458287415262129634996625069031978122259567289033732037520063731022339715827181006012161767350737598581481081966631349048838349724869510058436451722666914376338963297845880606424858276261560284137658651355121602345309689065378744369501081964247968147117433746895925185475961721971915138615011904992361554827084765062298131317811436371163239661696915002516749708531497154939276285850726143590974547444913046182177048828677849907348781500858440482171410674687982652948116717455005364309642867667011127226394971165755571947055568293937889391945506758167767434143767585756180651568795724461421138454576159219854097590521230772503651445353602852378352502414230414961983342805266953405318799909695812222487070908961197277215824338829468182992967027889750571040405282029070845479440792143588658618027175803023018808546388392522752844339951881868302629827919085612621378421823469872739235755118455671071631587613407171052668815522646290944417510979874413074633263219002494539365166906429922003609159944636936011106729196853003055665470388061667249261961178453267595709507620250513306398258325690430734453824848740570152861052961741858545820412827234630631621318378726897462914717433192787674315838232094782235765333719485727654899201528712930151367485980361548074456891313381186309360626730811891749518210269720663059010009214832993918615769817685956467257817878102271620181802955494002515760044236350736419327996860155792968036679729473385232101678861788788002076980182587901926645318219257084975385253485390981853625627427768424929718808108447631669336404159679559106471393014276318978518533526957450106340363470746222271763730079224089285056562585918811925811880477193425767469866996272976851792536407748773712267256688899480022141722116791449479472159212456549536037591621649304346723294567114222355635121798354223752388041223684729773828555745854390577289842256434442173600232414242971399211942796654285693491494077417368434588754976201216595489014223710683090886444142136613386172915023202903460571366074552901898202881352415114486937704436107882751761358894354004413867205303670197950786950122369189496745618312701035275478097118261231061675725843831297923992292749943452710360639881831123535348595799964761201278902380221862331538807284137990606122579663666751075534810456764329431620128067041034795610622363321513468073241005504166092506142787330114812062628862789471699895563144903156673753119707533525186409405764764593339440876420077851642263281088326738393862890757858410226741004068526064205327455675847647330389692803844980144020040415791729923405791175253270322608234910538176782954382946132869827156342658771294119108489859346409769087841361915389133445306173568823019873109100651225102387529582507969878881077587570572131310240880402138171592793931894418776761690823409325358838550822775140568601779476603695470780709379919159811127110433096899118150593486283508927099582478170729669102959689676197684445480760236990284100124950633267820832595560855101929342698647765836486412396552439729699766656763236868840675198042792319418688096868324403839701431467402795736399213236444331548949111909298402279191291651282004999036982559800815328920478212685229504349413779253012927815153181936555665425391357175117024052774022555507971644668510120711377644214127021738407686419155995372715265678452105360254594945735369435584523504222609695527529919609630040940147634370789143581225756737032187711612441763750534843404502289564499568581452009199218829862302988714956566629013297030493127719492683769330825831707722678264226925127295777539738453388060143858461077661803528271309448092732718208139076169743867170465925340089612536757657441156174917852505808507408056572343098908834685367165640985927100587332811018863764546283635343250733587095529990474917626603073961970188289380990288356125456510037768112725761409030073006989676139167628647364229429061783408312387187652938910182530713427917795638607778342483950023816184322262325673545426425659278748054351726702059500263840600090976002765724176159555703345386252739884553912777276786272307000928181593557053878647766392245040526106026818132570196949069986023719366911696180837384324232377922911510310876535510696790581353640468716430646659719382543731451526914705638077979292267737611328959265724245388432703441386931440310433803732409413855983526048688177358107685883198653320650717544252525658752429778696250967884279889915090052767328357775818244619927822379366231148618146665558292662338251067995604751937421863030464393291334087896268413916637656035945137832494703092962224704153343648209769718700116149155353544654286946788337513322265767304476407022504176636755533956140237497776419108672076917720255034057378145660456631604935790122387255415754288461138103852977303832870322848644443062806654021697489127513397620393354623948979047024417011965528430957704895931221552537310688427920158478098916056004480840736563743372100169627359833500340404376605684657906483192832400263341361455671384568240142773274208928906573546173646652141556262064805715409402662554300597979185050329880187673784878216808271931260307727203885574013047631603826349749920503202590806238871822594836136867721173222169181507699013116296879422024874053375740469593881091188830625699830410820673737043940786044883593788739909703161941518668366525538397024792353790666515720398698071928316822260805958485873438400687947266011934664562754263069322670034727373659937692385306099888996160543238862212224879102075494855047844461930098159297760052500367714301502598068562372955651525810425576282263404615543547632915779096975155871112319721676600473777510396362267071357000070944828258564000004175272403477761733978185350769841126331883587384971118548520402074850212461864107101529982573260424687663290159285557759479669852605012675611761045206656928071982531598760848605809754800807792641762027079031359715696521623962650804766608327176477574730680411604368648330099466776396146858717940031255963753041079300853797960637954246862299607906991322756916363974450550108057353292807643382612685497712638668950884889711151011030794655831989227052089092842775768561049310023314525743326684648753808048430010399638696128446812883416080456407732233723804708453651328819865510373159444797369464909162997712241705615282054981767709141821262882274831773134986478399904671421168131177446386792846583169340180806604282865046971929195177178798116726097275620027829025225266654182585601752958903969212910612593693975705559468778238070072603185633550075124346899186575552919763660974387983944994804302143496740213216078144069792401746471015842718851601267419063771143637732007170986757784076338036919023766640672931391243504168930076124964165044182316255110370465173384983118866274433787508256055749801467676878533565834443486253747589445506257077735445085060523710472161279269118674869051709331270889349265351822147097948375845384164960236199738276383304517087088932373132324309973324366961063339065340687319429264635637322311156319734971341941890309101665198937873220976728875227571470950661906742589277504718846413951075403657576457105920966426387722289724657181881988872096459583921851485930325106257794768085462719692433115217316574074319156080457110385946526919807872265597700267938800674163778198705584118012076024397741251308956607283522548251847009149220112496136123225434690567236339866443707449906577331876709450961411300800384579176501187795903228658533456516076314092866341136726450006818078486986750687372499264071958978678584973968599709035896911408497936884442014215498144656283479862238172395896436023525548212206967218171002026068504708366703439695715251018351660884959218149391453519259713823190881331195918050505305757809824212696274124591814518003030693599047997405747249744948327623454835711084093305250999997421494011426438274265147591026875881417198762812600296900633843684695728769777997724062231978008409063524260682182677307684874744310962493071523862484055711300387336978831246871580767818914747266974625305912682552880803296543555877600246835652790182568606349803149745521756448095779851270910696418777414010348764260660322535313177929965729932760824956335978582030252894732084364259135960571976388433625038134581683800063326859585771232150907657950299464889964207692112710291912100037995380102296655540618590805037791033557672114366783532650609488752081133975927136464841440117474015173309369940699713193784814340589434997504702043755495791002822512426735474321079150401278345049709795624588403245461253012362270661149514425098074459504070286958403679139181955279057423484737800255333877653772520975491717212484825247435152760422758902000858813077833184050273758764277491878575859644292766834233165127540773049761751876095385007639522499283732065589408836327390229073124843399204496386161512478481180948346585139255465441041767218631292196576176595556471098813625887188450715637356420889164878290075274362402304388413549135551414858452364672623272166838277457382723393084697883524133334107161513650047966898315611248785227171493409773827737870048456873432930442295044725046531396326506431465806861638289574233837607327565468534764398708888955452783075993636123225342316427735369699506169575834156764306884429702392618231170983937101738321195675030168947856950451376066074259279468059613987263649264849408028421903405636199954705904796251649421023042755006730432987946420110595765377563610196543798896056303075816497078967205289177637354132140806695984366869280664075261626553837395167431817248187625907903762856096521237407430403430474995545667008917315368445814743190618489615285208702947572982815394097031999712125207962498372192391560826598710430229087159217055341539940309177435853400952538371265596437258657995751516117998941962205892443001414669125831328910025258560225717660401964492729478885779589595928527611861711155332453115670004066268176807539499231603529720695929299213757233213423591141246813915756759790468527464874049389436408628061447966453356903779885186637397331039863645217065731191782685777249938415797708415969488341919786474971814433700677864880327984195417099285612798903475533072673174038215589097393699396988795508995273657862065114902247992410698760349978210141447530305726783643579278061837462234774116403733838891228464254072167877549184403227749781745083316492833778902340039475939194586640063166889942959224225082598493189049736474545374030433049194141399214963744911432795987884272293354890774692788723018776011979358102915742485541071498338320106446948313993972794915084967742105830491150402830161272069545172619702857616391860087161791789435024579439376313576749842154113636237307354765564514420166868632732303976704252501455812307766212842638883577426646540720718471803400167277867234856998955651481768025472158196580843022364042254159347015732038115897218474596888787984254223156203627054626915400658056633786056956052676049851920985214326608305549354792045177905438623382775341940117709358981566566974898289660730888640301507887811200579484612319049572146389689343327853164572330196252907586620014995956243611233914841136145173827259387996130511908893151564563471418934618993267133329313115995698429945875101122912764688375336390827189667644491927836478764842793252981114755409135432494646521002214758387278028275568874457071076642261005456619205149888753880015786050513943338645619026195383376233282591936427196952150645629007352298441456886395449597951098626539296230295204073791386537223230694315802360928221967463055700652929000409851040219901927575014777373174105578879917407910695964625179191038294497749000191841826482875991530289475481157436649309017619992880446064760378265042416958248175349161327704011771033943246342042156100082129973066710774035308805586316718439468814340592422720257139096129554700879238364123663797572352779145121580716010855462220309845466087755817369661017525761528061664885466631145116184901053755952498077161853578821050547456161026003516646312878207004548389574484851104556008210715219115155041120863999911777647761280112360805846216049214431217092861840331173560254044008215042857657613306362959893335907013745794419312444257061279514977869108081679057836787162065115605685888304106947065150290842763024272358167745120609527387377662466193979108827426050614026957019773967093940475459855975544952910309198019621921468429557438954511880043524038360969460138240774959665284758411437753003344396626676818087730438781157369889983512824184162939312305727722363433711336988392586399075002436966221991621962520831978969263176468288028916349309231424955254644083439445501584045372592192831751666380169081755087373626380727449668031811052484265554636266333348745493074367017263201888917864846503388606481893090690905276195619250115668756342835654699970833131315664882366914315150431033535594087107348067074880985214243367287597174857788799335681556851409530056412287029759554713793706191895437847999049144813375321806935630810801753580947639842263907599713642462856700875477102290364781279115420319076530562744332199889682770353966023435937273122739468419548334652377472714980833245211608460446334973740832656432736947918944711211437053015176937114206905036250528509868810902657144103041703447448515208862374122972157923590355418589221569125083376004024653875784725861878931599705738403175760723877446048967796187411906618136250255825959576996912546603848166131437017381728116756806925679043966560665153727558745542573161022727598316957909252649109714727907444994524076568033798084048498967391871281507977704565544770391349852833303548463884045314108160895585044661620085213457470559252246687040527437045470982082714521576132625078583398983004860606338011597842084913038616048482497471082384678260340956032557729448159866431236178781407549211922704320260287774361800110546098048388682552076230215675036641067659436994457418496916670248992705419578560457448025632178692255985180791414308619661101302820505550830301550926244508275678219270749909336016570292939228996597632292869262338881131911660727603269093373426510213055940104977382109909755706967861544584084172692005845246307459830692896043971850076949474041816044767793812094915622045526039665176648127381151902232009802483468183523728870460513125178703958318572196175969908872724672029301756644420987608019435455505315563263331648367561554853545342769768329611773225861946172250402551497648452939990532534133711181799517870318740222041814381276378397817133933440372125389795967190969477300706396622512618836511893365522831503268258670146185420091333560315120402900903678278138638738096669207866966860574382592264259599164148829851066497988210767084254367834980813427160396580481865995265215898799036516171290445948170526919839438575030506031003581434344329177142589154126732679258473103783538360787420694342035073588822898423167705740603221458677906615968431066466703719514040030515001932785922555221296326557112614024579686063174434162802105201295079317548405052022177026900264643254297190070727465353100835951167114128785828074672982112580174291943012694726615030709462306364010770587870391264722810943874678761773455156776660266472821556615315559733317476454921835762908240731233971765277719273417833978348384170865903917937459964388620881982946193141920656756508576291315898361732896337227113574423527580049414607389490912407682168039068225240411527317210680726142128672904393358347182191407899491240784011919758973994491580244259263193004542452368347120975106992383895253423966497813924384733877536763094522700245679899893130781745892565128729562359168636099428003692652287104544565685116201236328775314810417349671489726146740309615637533431529493664598962651881449962580688280439411402920750325077696099881220052429938666099830965078566814726217614957338207169755892832551762092063847800309998289125611975708938506282199144890584611315861879986654106303699705361004497840180170618067888667343089567926988575179925176226199019029322595700546235398397584558355633346244103240434603868382481597480034008882237876665819651319383732421795259923237487107949727186309314873889348857126653165611090811982322934249575388760327444695186040182461075602841520772776363230911251180907290632673026736624085154469663253064511325896469117763238347365583717135485639305942006061281896705841218050467868028916779514708153681698607904621557820292760479378990907499565254084512694498863970277211539996562425688957123566018321388608296979268804357526714236692512454762422337975072766847747509449281355885891214252075384136071469631146093107692715172566060423510109688649329191085760545171094946937963998997595848959054368935945532143357966714769368524302256488061353819730173751238133573181135443589091801726459009302940318588234080883701211148656048554018044223363484362145528858764461220573076852136390917656728361872295272901425783478876061680446005069433921055589376831038175229291139040541954000120910677516229364923773418396636170535095030664160747989641121957979472839113911617374306147345583270667297500958326480877966848165273510026849820957237941883336873796572083310110849268430009783289492357876415577002430800866441884656488272259781974780471233060535758192546076333585086577577547694622686557322116625225336612498025095947442881510048089706050466034604083687603046126436647642096330766681183461399548776139700488617398219021562801856619803853553438036015661002415210642620703043441199340856803823635232130084967204777288709698619452382314368165108176997836967403894087471011927735610556265042764556818564056527643983002525369490223174802168919059708241190154221441533794658021535132491075606828821778608674590896408652570767083192259701553050890018941017550650161014762945793594079269140210723361724250221812545617663144889412357897639731519702389732991644644720132004455519046713934124669321326701165418862770899301749552747353706125123775645818002370026472174641518094732048195597732827171934021006561439716620000068002230338816871921879432406854683382613670889744640100027857760268550077430087432457559562532612233652161968387883683451196992426398702016785820485617444751920155562578653374330951731556657543643415600021996590451185258841348486301839338496855989914667793287732373490335704445919387511208982625279752427605458852316524369912699353189884270618563490814283699032585949498900313090000158686156150435391737704405381927928881028357318150933258542200062393496868215870443615938255959213913336296970574244693338367825683494647364707242794718926217375220287050390292723055020894809067545280026537487709635246385608363882793832886688512063821381658713932053788457615571243748367868267000500569952965236747936191187696640739685454541840646744713896434075085972157298646482512948515761788513142007024406822681468916379982342038791934292008731515824649837561153054177475442529724373247982510479070717363896731170349801856673929174247334112944895576121639781031188269113868582626525852664563548342594372448052619103113483012377193647577647079844081224373699981877267119931468958592129090239044559628216948352161199012455223657554025800899001515213092387226009792317819486688997253179175871855026844381136142138107772077965459429241399236398205269079218569859630287272418416242438818494407959268894471022091954345532788521948539458666246062591038841289526981336226885800876428330551686945467500709212633118063755887804529883225302434577921909715437057671375052288253410083466913659269661042697672757570288089475256446764425056318478959758583262498562955392067228690278214476265784195313140832243905455618811349086600665168259468296269372522345057261478315318567349838682070194309161277692508858154597933855028627402674901616437465557832406875636451808551419885033681619950951086842362056623612300162795819182719796184900057605353856758652452335700910478121241398530656471791736516114858914250328454851861088549511304074218624825592600373049385399859686590437324313136631373466929097850164088566044632828292116272525317158267061527984668851221082671554623576442724299117525871949823906397305460007332602407927976179116907591153225869833201735066957322101383028382022650176687970933001652771481978390387820703677632320628508771741100630190625469543255897614317649233168590334440678130115718751828366489758064827390397639690710472758951260658471170715358324702916081693257754692612278285831822477965149131148387198319164153808804129512515487546077928236710676056826254977996623217292569189359704299603122919579050208323680891488488397860981734827073918609771186843935426850655671711540882485553708861668881860688692216447764017131714670100444153076411854878671767229696713384888134293046336945639881544258431037729671679713035758128350874834663612406603380064826308184235622360648471374183982942251028389930551738356130359047985496137266742038217922022659514189978299266990290187711048877501707775893929057322377751174721687688991177755376735424306947195554258499339693988113219305982387402553700418368566712916068793496562826509045970857924582235078384882357478997929475149597680856380006563508274738377028260346555910819171673915865680132752897053165053114008940272190962234801207274150342974767374822309135525895681805950843492086234564061998692398729757693563975881025015019269057783780931411322049191423537763415649894722026417991483673281615355642197343040428909504798906793215193227594495569933846138818864284880749845232716899087552633329206711884772993778806994209449814021310010255981465166368328406839291692156309054377542247479632763545678886041618722120153080832367917896876273152614994614429312848190358284867444851780542629133663884161995108204532598798925743110365445574807422437292833000280853120594807625512591413606300944158312265334127347025415154458464555573600877115962153175530361802280148391627745563826158420982196641758990891756176258075637410804132483049637138874300987166937025585182679712743710387914983578455094141643384656770045661157282408054023504330042141825717973147054740731922312350752114645763920200020706527454108606652868766082298230271640260416007888989359143519944340641471437407653271100936627895339979300086658533489576835246719172295803069562030633950245962103574150159784046659467910631626502905726266162976380383394416187965176675479091019846390951772293943811553742887138101183805349545946050802534471580586976543176670910792224930680419155863400763230021492837619221995287805798367484477148443879776055086429577590243034578168189454831844577585198252903544388525448517689192340080138527278415035063238873436737287700037923401555589109296344503091259139005286351345037926122258039733138345657883835746189881781757258988913682052622166434705720518269160491210434112313834100532236541161250596139020386671179566373597295746131249712929581682188481027662268113594037248500629998677799951099604122300963351415202300226342051116815220829225330299000736495402485727332873497325549566469160451538643890473248262818580391000269739353050570073435313724484036936723178232080544118885629108958315339609668421236886247198726390425045103136321698106043997955250933220202476609407710302513877869938064049770794937758747275375375544048855619517900552330438877305655114771839482573631795179835350946984910673509224421379134173237865693495359920249390732521404570670995322943319691563268921984702536370581149907285008054066808698682256205214462978145750763955547080421164287767836391166501824509287745884347368267777934256097219794489274911345030659390485034086376500873287437564698713362325121013859443895330006418934259362691238998032597665321787173882995691122912389356862264837986681200855798685230602121637611138983359171918795845691253199898098367979275545918203923415091504058595068427991190667628010881111986381219152516891365323828968230626276556335581576217449333008535819408371139006708398634078251410593262886618421098542069533005542582690020874163685998842594033089068427382827315007365856348033225642505001348506928445593604120993370429704522640199203452536491590126562803431455354214347747640130804499715782231383271118221950219610380637755043656765202048290282340630566572217150438485677704460156660519147887632040488449706719163332410586730286945710982175059240525198203611091190385296277559321297315217937432835197682233349056382266755431888789522644607086584604490332229253614383188227462125204678677900565484146773335139124425720244259994489150166885798968463256949360925057209814800396057902407584610410021767392966457558447971629002954538200427289936869130446779633532035708171885498072323335413318910027475780148903919805550856736316069838141794377727457382929759283838065700899749629039152072367196266101075431737793988659147343499592464527218738712526393586441959103000007049717158222424559247227575985654141628038705211962583359398323512536421975106977952262158378566849706175829395465035935971140236730025759526595220023657767602831149207508779478812901111938559818058053461056937275768968154287425591169120199301109167566051147778680312696522749464905108500358490926564138657537045417881465998852344382517901067528617846832135976412575795904936942111838438734743733734559443977154583476052739651494103005382197768993492636022880048893631131665627133985157576033689104580548580136975480828994556789384919442528951204303142531209053595943384162271204519106747443972050765606794589087444405019778450374446172037395100422375012539195564145986961181863640963519876801175541740955931109479982828564539104039829252473999326852420939590892413521650435241420182944903217374605105334836099658905784803986913817073868402977314579142291696673838065687476290018331032042846208639934777203242985434150939313999582886492131768790040546334247545968456733324484343483628272871971500725407635669286800349910849838088547564890772808273309261608057532795927049920879265056990924875956325944070676442835606749407118005959018652498538703697858411661858841543829893572530397109398106981264293046750182041765581276805676430903409079413591439619880502073926341831498880687964998093444543836931783629560715195460322711496738784611986022643470109525997598625846429800682338190156193722765004445099463538463855599207934490641701599052532593164749931877810941013004752284077300075964791011312528983947184735144091006592777689622083575473682230063435563247002589271488403601636167516014508522406648615703367128902314659766197327841997752465940086375490613586746444389651441959896882309570567442958666006360564235173036682375591624311643322692250871833713150068625700738608376501664731373007923998973422864184780858557940881015841424222464513430458146362051186932280100136954874882375984476488640713642547490609853910967461401708062968854211858407318110594874382314280146968509963670712906661574325527941015851621332667072630908429408283339530899839180221671244789464451711897719857197047998341947609109218104871845434529928168974129591223918019286291634912611320594807748786935026513745934298881452409677150640818304935217568116052535495904668743069461968112292523351126734364855638614916034500674581618902481709524338687035940085831941127190298888865265043121922870809075747434467976143898755217077589087427328313690522315818143713690173715642956626556123866947763563788012164877364276288503009713099428103422200284545795433292159195132023151420547482703485165685822252139761094312387414344490179092675117894385810755849420113282803872183431312995861123506205212753594729449616833880747729344647262810323101961068489059963356940879207155030208880528838664917969806988682969415726593088493026811679712750111459427845923504688161938167708868311490662647453661804834520449671305493134421589957138048172886288972328159733789260772720648364312977686921872615325246272328374088841670507756251502840867580220846185532814458233663670697498008351028067811414137947516254669607522674191927473894467170746165448685623471302452747057695975709907241408749876589391823129768650620463923065854395429473136102219627613143547738365704324778909012379321717987969442343345036411258550933814940752782972381927465460930286356191359761966104894511147697050632190879763221013486560865657817760962031713632942724808665711176478030371689865133025371550086316056760310648869644433349793753921148943077341193398678819124191855168045492537155864593719014930882234881804344243933483301689146483692641631972628355321379905846231258571601024222430521925379189231683868639225610581076685771748233414819600563646043224724040577686495517612222751378044155793345933944340444049026994981776064349203140023502249915302414645961829113417159607640547519399739363576689654768202708550799800809056595066746483099243347146732834079134439588494921030600956572673814493922519874502995940765475913326245057540461686741900074384284749835563111468290064773512739506174565528984915393851528828945995225092292746607135246026839925126635254299344237002480677886674684468977254539578346725342440026148752618481164635717773763140846595788105981218690200906918119788850405326621974778609921483971455117877418537390957225704289502626764010053483395095288397506533714606604776304568775323809976739122313262519394039537684734977150457827143239695436353088669936215434748296520513754860086276299868533758487767154273126944995352178642135936250922926086911815726044481027634291282643604872143408328201387126513627400495455465922111153866391406308178472408410221100465256734114775824323543918260579765398320022550718672749617397814210611526187501995665251861680475913022455010550085696000907586319687903496846601927687924056163056451715464889650409509864365692612046149320498758943126813623866068266506631501673851861364187325630551178130209230941466724354249841738696373463770554776307634493034255519273054087793545487530860430100551608531466403376640364560197361252274507831156094303103343283978140609821809291271750735417832657423512979226928868586109530499058428846164464863123323307106822586146749729778760695366847511756986906827686484802563296312436287916463937926507129887594855542671046683470036767547377707845456580222445883587946737665943524433155324352473350997850217517101966983186678880117418619127268490946501602261921336642913703380202085324923256013662015956909639511871383038321960648006998587476632145447150523589774709404474142474158994729933074760342223570648997253831203434674723026386985409620445919965616764278996543456906462269733375073388516884695494533055995241366017426025863883423317161097679498053488919696015131248203878251775764657283894353902456222089127800829328934302608832820196574097206769181854864876853153203776320753236735819411525271642130404848811299319439730775063380212529784339102300653722303521532805561831585696270513438853432776614529164475151338747728730438513425335671255791768904791636337083667515467153533952644440912283264084475159532292304270905558484945642631138492622583870185890795519391915731417864082623129071928866769641323078630701180238604306921304804442996259073306685966768323985180957947004033243219689539237820435850229181998130876511985378847338137023644915092414618341855792318654319944912900866430384697129137962488424246207899070004580224279533904109207908346563402111927712435837954596557258693484886413230463368408913872189728190550591019781553648952558570273440720982905634138364219671339497347267294180946175346697165387943897516993145424890928871592526012986214259860442452009718038790124340711348192131668163065914854250544116442027691053366972394303964094508221534898045553719525365850366674891027348412630473493163629863510056157594070209938868706458684640669185848872832768250483888210639622689857157919981373209861956752587706544013177239884929174714736795912503668291010947285481285040191474707549933420140576321080280639504282878605987082567199234923722322905642025245175705602210970490393054463073968230627303942877660189607726692578544280187024843745287112780118814573590063793115525089291629277115739912294089763145111900574896318778470006710307403324088928198000502079022290514939890555453645870088820549177444529943375556120001287218564990507501732760870561981879012898573296256966800324115260885878070372971251012635298999641349734817255999669102368279136234131189207134410894248929488067251120417789618289332439929972659705915269449453547172930068474049857710424348965169000201140454515422462193399471327128596930194308554925407907624320994586294773030861329853036922965845269299971702823165298586918711374220235213476911586048113576198323695634275122741080367711323408414369021702637281325949647733828477056507921014210301968367358482109142601455673869046765675605442148035059896195232814619985391982173912729925043808457300429663834665087850282489449767064678874449646697099856684662709563475643312443296429566648530889850170120546159963473801286149537721107239355772326219702482512150805753613527457441122295812964458089387021674620654249452407577929393053546716472280203792023830954288726643166493596606076053725912794868979610596471344217602972936233754487301892042662446527249280241326792032090876816066521608841127714168761605665221089468673563435877048586098248827553966897876219705091891439336861266056227019793094174083411825078570518283829062179520146612545083490712623129088518974910477376067970531672802987777134873672522343277608809212995527074046761623071839548535177320839943798639852526707920709433498703311594250672852365563297941425108737645291778174624067077335897725478028050597774438904142611641488412698894898204413320824673797235409100672406114960273004510148316794175344664409215086153705096237414358935528590626085857786896671878902568688692490019098694017024391996870537628097267778173129430140061968624634205884746901780851303251334921869289674652229947410986509885425945626714282385615168633949189171646175520110669097789746295257872824700393283867610648084908876727118660307860081004522222740807592264212200760242336152346120850706076270791732266676525462238383891058342461451142462766271759528573464780250812421671804465991034075641898607511316799649375490579105569864576646135884722563147104949289513400118562610027835703677040560507609774293844760707116547574481382489387408106151725352699590921921749168504632795101562560074802759521761313462555060144982738673166258113752231240448558783164085480125197493597481622283240826860799490037636509491245686187301860912927034812393321667558942123209702729868860781925256233387966910380055158513418529518200576198468679852473393391283467154752121672047186758359805843165204222014029558686813166151934732394609771105546518720583213148209530943777882576996496295990174001643031103957928305456331967066063869671472235186603309815781827273193416844198689768961902430597131684108369586698218639487790687482709816162585804418396041639499308391636447697980766505976448963358588909504119869947030063191263312855204898565672941238884538954612527395968299567606811126222113131652716902718388942119294120870272372823868131675806134151530569229948152594720261585304554233087573328104722624723991761281763542478685559726234859431348878054526791100714093476142671860170977601709383185594110196247269843817360194984231318947010325207589491045187954243821805988754077931512218246690366825633151564126266505378119088233310457784940567959346818102314080715438998104998560208121781184892124771083706869787579427291510793886964695430411451281480526939370837283000416819801819623086267749118377902025541320718445251743771097945408075399483155997861988083168177619814320674443327854979574571396427674006354021790199079905624416864915189151285723327771919113853059352534490510252838596828339666112803785211918325292195873753838850364110400410298886512649693352520305645117087112544116602680665368338258239302390507963650237909782746162958080336214771276209348963682800786791320945619197210967618151562270789258198853940323950120812425815486623152493073555833649236615564186932631985398429039969189926451891579411731292109304770688215452812950162262672621114604101761130713446038272784106037428975387627648337928067771665309999258683345565124358338278679349540611138264994409443177250339297107285841743565888865183769072398575109454771875478549961169802998063402160003621889884416138866316611162855646661973509071803513061782650451309715545735296541313915811188654629709481430913997971347686674762529975946280594170195279930126020376043968524659081415008410824980235622398664059750538640770822604976701309225174688256297003267074105672427293209409082835263337814327587537671236967424574369121060029361994750753666926720126828604018343644744241547607203901409205179111132261678506702521370632467904466161734661650231777948342541579849407378527353175051506894841418101859456824636651272461941008751967643620156896694803947327429746519620598655287063544075758166285814742588708544712251981395266280591875521288256192034374361955619333259666870338948288007288134749319147240926073786361233263789211361966726797056714857161426007308941518929112697115138857617455114502107104401719747529774090290338177865329595882328649449258515879513448785963359255596069541625247022630326137733315423381886561750916293644228535684077750191323782394126239355829364965157388517007767286475125345505949441049219838995486775747894667791963116023141152504327753146382815887251508160567234611246882372568606358907666763607334065112624178764350036648222956515616026788342353080031015677642165169627390205541737715752506469829501420230578136760044226025398522923859409200503931796378112416406859941127508701713363050293223218575543369156458275393707182737865955285361542421111463633438601146866119538565884583593057781918041379031650090222607121645528851009671235291258998614973419668848074577395123429981595943636095471875167576707712833265739851801026041133081398764300905072394840506970364693895928579520892283349537100122166642091302664855422597934072979589918440933880089775538128874310115575859599055326912346438242117815641798999267944414962315315899448501580601392903413840366959074285421052597171873331278491149852637780198396316577110676557614188031117066902818944481705502311054596074759590752050071904371781495400671103877282373123037364236399857781074194320132609271380353429653191290794648113372780038969784038937365299671320588036612553695467867173228186219497664221731779083763524807747463204532235278934603818649610640613622845697583870827109255217037642322934788509052414729838994625566707567536769588985375779917455394967574980326893373060814277400157846615313621678398454161613492485767247586821621557597130459386671844359773446256845393299449901230985565235713316073938912682829359284805628143616203093687757437111935444495583612074741216643901551540656185761153019808449573480953402113861572213253028715446209622184992045818732310066761471591806278708397822394810852345802234907581741509632512310571490159979639156703059844634868906326522111533614630530634096341310096363416242057624713567560575146850106233548046059429955715418615096725711557668671311902450974375609324797286146846948687448254336682958928053322708906863710884563528158484910875203546528104132028090723020060843429821651652189472180819896947529674295104370025891256131848909889519663522507623448614156165939502605363182488614686558093621146297111325633160337798345647871974675372399143589051820176563958141633612697479029273110514675156120780318699217167365922894410330898051999368501466162116389020030017310538567097109995737016212618586157833700661510593680149430040528715245162876422683875544303366979935240073796482326175918361520107717752851717434983813899597235851780043439771035432941461477098825572715475525747563009596120561494862015745691123297521327911064281973257723191342130450300495888677181544043850248992768187772432396663270356254774605700449684314304878977300290923778941695369013817491666650941625887797173309764768415293282353980192962622326216281946846157564198614311579275314694617248499666047701431275932451657999884950925291307499722908950151045752082028539363772536175005865169244599639986811477255967315913659996044752090025303247802687933390264085338913527860899449912472490857686732321765880561712530081252260242099212192143466495953995227379055740055486938549249490222274154138146639236425627711207520581984086216940327758638033662856587199321441663207445120756019535981802170767278642366495901171434569020816855492228587741605307621494584183340690783849063969352869690379397172287752756241379864139226110651728263788772151806838643500745489461379085429161653233877892054046014107526237008994150417092349576613795911852715083037992147510989881309128368043816252495557205967227475319732091347742272599331737099605415162109500095891586525556605005711338700243919195422427047918365075699755007784955670876698033466925481860066053618422531700422464340373192555697437499066274767554583060806680457422674878466329132756251938577846154741437572882637140906196172400675535945947783794207870810282070051554937188123437367765077875884856065587638257524234214584621931487913903352445128224586536631793384476854400702716945991835735063420489786788082931653347447300351884871984998113733134053839533479819999228317446867153714286448460065187206874671186124952037076832248387597775567339839014995158987710241991259767754929312916720331654272087918096210990582582985208403366073473634745790311740595811293641982619780116156691446296534580113372513811093043710278168387172926694241932014480128498125434059511612920222609856647569531984028669457884413287868386340329376922296929770852884279826873077782563154038187370899003765163568771547931608372375817876932280659087402219242393937485647993437262520723483683604938849315262031213592508238038038826806403724586980371872355376596364436556967462185604831721414267757790654215535487664081147983864391115926414616003721465766836176338412950585403644086196135192837188820080291862034166372015579537562400517464144763877449156537938659656716920743603332616724442357157574322541963267849052782575133722586424860907237228650030815562707673402948349436201292454718630470895585084275303338967166560005994265506473521579783818738416490101670535820448172979053323814579612883665873196641813148156036978173715509160294398473982628566976770887907916118869616113920284179303187262065000853604769546162849514472277574400883494037547809122988486039448325318116582594294229261986434596915972939443371361920383384474250799387275232771195630821568063354613997127772221386579734249129391851339792369118800779815262406451609066453629615260246640131849576315715685619857757509759609568762640157905405654680379704955341700600896061806595048822779685546613782585470554909903159765229187491496007814618390850371768463423328393131632734815674138322072062982010258017654725727889382880661272114987824367584646572613053308647287614043101921536452952447025961868638583001161572518991622497331302712397497736802725759846551013116503652758178222608234562384806734163104590509064324656486234070384835901615388369213278111042810484750466782725328923155107606969988628522395955109346114145431858623910486812052095289451356774524919058320379740424905186281403781403437866406596002119380125488848599892867696266412954361235911580924261528446727370334540896788787066733051653953306224931891020307316608617499200488872452405551131636222036961341884970356432957685978704352911970924337346331111945581862182967195044968432231253455026235844875585451103117260792754902623893797011462100314339952700653694190880803217843332863608042736713093250235835815287584720866356048373321380721163456967472317987609211318255187645822010932293952321583412815529080744822990884264032194355084186173376678932529378674538558241369979556688315119337388971713988464013991985596121001251214655007749867508976124782181459556067535994519315198617976070365364193443850177879410783804731015569761738827746974005544263250405041002162645318506799641343056217833900127524447046977337719296091658419570734779548361555288431750728807767271049464488355216297726839125994444909848265270981996341618581146001208344521099486408543779267019832014751588147189055165263576569488297065427295840015375852750076813966904043801650994740668014924611015089062056682273976395380776905607895806167101336436100246860740041924025667521407063054973240916725010347675903933955892884371527257783340112490174083773504786525460785255344435893096921841418922843127311821267354253995279268488418991208784147673253871885439372270608129854404000250473742442295147969260974083684650302386639202712166353925120086748156644310300707100628300517511533499001794996133678303314030064923714712338395304026133379173430667703959882046185758699112700740402617759545964314263615701080819928269650621052282370746658027019194624135580087262194818137577223463818346031807915770117954063742479245731964188871699218876732509993747709016993946248217522887406600461985069437653782381793597175688026634115888103972140029044813112207291242255675309310208970984545562783554502157646191369961701290888497672229743896957811850227373959447503852172174974278126498454685411054675772258758626315692073084204890710378971114867583054751537102195180319619582311699887806977031014579845235486217121742457145680497723336071545623022260967248632978447456422494487557742392247615532407167810954185313228418535259176085680985852951833309341966991809783631783585659081183603548315220108433919562869555862350374929551524193839429198754664463530908263411029040572064009099122570566232225718704707985417171727552174200159504368978487477930845876844315791766630628883792307216682233392654986661915989332791237894052135568048873770915730455719874346300019461421345140641910430325656744529757060178661606825264573699333931610502034964755350458421850261404804393138538267852396206119890136803203073361334333552620051692323084140978515504302754616849914699531599195118551745690023730386421448989827538203161104015462294844515797745436611914479986429076205516074841315073118097002899228434015886299077488199827380971814742773653035726173327638400505556547082660072695174042942953951156557021407356578689003531468601027570676507216892408716523798279699918764697023685824348892988526534655757262713909171511564367521496862786098747402422302552465693276738132061476059923207132646597752349731211463898983906752753198864556406057030948841634211269371557492487832517537949983939839301345400810386842316310101335566567158945917768336307250769320091999296066991164897811252299649635128021298721712485608893046425406272205658072308190536207711072585228031679637111598301289864220620227727668045255932884159680964824167848353311823192854927518712346218400980491066798707840155921960541994909688768405534206221304961114403184047565822680545080882170581244695835436377583528857605886671112156134807258226359309233490287475765106213603650654796817896455203627328273861101305937784063727315206634638360641266843196400080421511854324224794912457857087347959650218683453975637251823063650328165371784843169109841523373740992052304816098528137388736889495108815646601167009727306295066362065041468413243402228948935510368705008628557584011197343075379635430389829213176293030685017770848221865354635614410153094855468367566358172720752353752510402351035830959797166174100008161352468187611786250963932967738520108252872269890609162944295653312115598418606601769214557527231167284475641873811858302861488263822522214443632746367401552723585818425902140485600619851671688311429771989107786735487078209934221106470704253912557716056591376712406492533537114827589092939277890254725621777214863844720391074091661271294277132360061196756879900810722521350335883631152602291135328903800567281815141727930657800634528734005751815904770912484822241893343050661341180607974587047710295673177644149235725628006186574041662895966321681238885171951558967631218569025521609556849253208546468262465142241658175880286282014373135350279030485792143612086992960784886443458274138535358434439312751403634860881502335914198919784258914872439368365399140185722261967564489492815765519032762694315695815160686144092663708402124277192863409072476807866330805809994573823301860471361684964954116739100600282079423241484881862999246807365677076110909598457749860903099156312248281622019594823702691030159959546306168328927393300164960696192326792711225329937713774715625098010323368086164219045438213871562562806788005930366654869691096800485651717444183403731290323339642755274823621399321114171275560277521765012565691181818368291813061444756980794548561748152868460423298604921318740625496045875604219727109151042818693517291797198465431678142590411419169692608651577024972314533249991181258992440843638647369535325939567264435024791191307229706352675305110902635785936236959692641163628502847369625782164587413853423004992108338350041214365057952146505703870532335623322173825794745609695530902817840718183502685772109211406775325817822576522025345182110274984297934423300906846905065554736216829740349897572468618738965805497507523641686760223870017427837892014966830498530336646822305503415035449384469102818479173553950890672193782678113358377508643686009365502946297315014824636649782512804908069817414288639165094873559086609206529074439827299586782351251776236761407531827764376435057160194090813602517011961683272955622504329210087360248359668256034489300712783346332045013500483596541991837185951734408948814514326490538480058341962932207368381015225367366055743367211100213906671406354981809547976917701988517455101587671563662378358619194376091238454228932790519810682437115608547731807590751291665816937349091406988603921186470179844934692479219781993636665271814029595300731516192319254845706907317531857362180777247042805157190409802329011307974734029739908879301766226789031177788060601856292038005139746607360628478124535255591491271314868703073964419721574563456128299817959184939270626376432957476936541600096168813516847142184713574639913686212551359873969450567476445064057060319296068754832773131189952798164975476221835382761371092033900399600151449683489525435724063211544733739939479190048310205325383285128396546051500686761148541522687003884283371772427050903543869362753551498794192979693900038630876688185960540982167767029707276605073630309752048384606658235693740948488188637874648988273076935775738903457912851716034293552137808520326074925004586858539429796930951051821982469778348731936836290454231740436110190987206074684602921833621270337128696249237713510211470653708529274042309494167254039900952226962694533996417616506589365323792031089140066466531240247061418127545286858903540368689839555880952981612798380206475547446427838056621710523116128555252618435582666428981397961083107541624112738449262483101229778432081832339799978224692280860701710974879531021920225301254837369999131277199087537385120761013218530977069691545067578192224596707620405665405987863410496425546269790331555001919879175975177481940148846192563626344528096520435330030030767718017914982813288113149193495612660479964627063874828988049531221843419055202623727292812020690615376111401858766687834606309782698631730729893850983071403197889657507044876290568532951134519844818127379228465285537969969169879420625112559347959496769812463431287288738987882854817520507559652992694154782989180161946003465935989841728058156614761932585263532160207586403171208587666815810680453218618501037641641126810169796592805007043295319219227283325223542454168109877004993538594536967098954661121880921218474184089797316630158291679238722034628546305848428422191753697000050158547276989181374778363371617758067337687343659834372875150658951251058651899578360166192811438897686102056447721993649495122166841131699456969454813690872955899242282655250187316403089865655550830335478772597593416240915089692212080635862327931316800593990214221362023353641955027647607551378314188678165591382336816209391881848245287343196180054157297956429657868711560827945071571749993479633912324687166689883339420659013249045312439612036884974746543496095223457354085979164066398276201320357820961602451598284105770598205578934216900879548808154929137767334113535447801815801474155962594869044351549940035948973052646927876913194229470999570833118185947636526236975862618794884792696088449281626562916541419655688626135854874828762608156759091860860243143816851282930232564753044106422611467572179122334886876623930000180664849082345799740456157629112697166064568752579961900720076534663618137780026627758213373155447347051083830213015093533439567348170713353154526290517566045347265143036073040214648974420605167363939788736307132856918771995912051316888850945783894784383415324416283483584508163217235639412980848679315478972612815006721037521741358517947626563443969113209823257290083311309736222533975885963730319731144221570316672287830708441650900139731657900290582861144745799483349397387044949997497418662487486835938017176447408424407333817965144078439640238668113792768655833196297718952524243629648192988480176382489185277731974159601818691867047924378010848912297952337097678738481618854652885609237643901155022528149955614169331181909375280697263687238954583183515547290524677598500803541082463771007804185050748365372992653136196170363389332615063244252305178295660995710522190535560347601600967076092277777464391183184727201524308317619157475339149236539221565755280900911281443780395473008198819686676952065911961807212659862915428027155634884964978230728850052960796284308647168134213910985222401406238009966907122091519178642336530053079300695386705014543522611638795273673784272110266985985352734000239310427928467667696465726789574612403528008178582029812447495297181714712635508243825891438888974467514465656192086042442009592328214750219080164795210331454322953501166458097165077391546972407279473446523220509316011962054099690493041464129207083501858567937641124973432346283705611248707454630493311936231103410979546279351298679229015060535868461113471160628195394334394877987440951356911994806574955952766157457402478025735415220070876642751535693207932195566637541742650705245766040659508217208353457718047762726602759114953743463163645639642919956088135766527775253898627781062100163862694468492979231131745403052056594350482097278013615489626577486092630282527628766592703754644764207709662479204542300972184168081988426506198588382775853192823911972807374911678296541296592779233542525260188868620556621374065992460548641657836956756870786743279783096921735226424738965091905662320067028555588450512965796694642239228317777348797809329642208306787257463556863679930880874623866513807872888822308460775540838087157749190127085709972076509164522796895390651443898865700537193022801031437310488300318311103359062971871871786647947535724582367305278333024849910211894746632936229098370850967351703717702099697966664632349121957991124707503428344911895214048231111139668572966017492068540616932509520400157526083405373691227528893792973877641539405700275200783397784843508055501474975141263630102923877682544122927558621341025803429418145422804075193771615315634547925150121776802262785422549821635009295951994456181223183079813992018779336097078868078786960720070773064657025585405668393434433346643885223082951723639679697624017885394807866658064771596742067647296570352915786374932222631793569137195018886712127824495434307043995028461289441346359614458838840242638591696258874786673629206333939287550123358416401134349598873912862903040674195442125524474986807999830236072059581048124616507031256173543497521980171888139843233116979228915748502017374341338271949934084250245747378347615836087638697272734448822920708674647700519459493341126956588726955004493966427994735069447832056311814088590459635104535086376100301392947438981710295407929744352003013088585716556585010843575420169005796676867659713513568315229721741146444167369330922538160916836894930607033531560631573191060379786878093866583839506108223215766416548981555603824047209047912082069827835581790819822621283694028504367755054031241458754430181099985887208064615129158427815149178629524456715103846561648341110857693828995894465177482232338137305200769860719041424119077631008836655332218904207956802539065897452907871934159696176516828537027645938665242859298232525697273139065305152471304645905942866905453971999070549001476575160247774214322790861139525708558546935604733504022961065914491257044271195268539760314356138115885777821022636286179170946272273404898331554790755483417630119410838877664005228062445573199572003458099105757032293587744728057871230357856214769440458455247233122467265993792795609407605671377255269672826878565964559259061627468328607304638291333047976124929265703099858532935473868409566656227574172231052084990057979583724132863401377890644420073638743547875841643902461554612315974948813441478566958721794835989580270485575729737440443025797646125100227580251538774116438334517375057152245412097369360072444806306898627738786214416023674939681492820502449426886237568363272737901983939422459074291879020980951564392543639952525069443632856552076427051599666400631596484555897873280966156753480776708126877609162294146939742473766819614651316415103138729329250206712206996586049852982210704194203785168169514259943236079992660316448925243024980293931920638723748140552772872987299354211955565030004433119774388917938217388595553888689240598695097578167246895802326341615268669288348262163397721648540572408495004913533734183314612443750294440716800764212025600430256209827201368091237580159575395083489432693102252279164080667371911607026350456864864542426245604056802624384233825855008518617162144180190999398336876529451078560824170171697414743990581385267609344839271936768935870246297960530878871900726947515510523764277734988646728640894895670866859747239297664394743451055327096631795984243109050594590367268367303049041120952188348238959099030423151833810480047964918101586259771978834304379324357182400629339427242153491041572527737913877777708098484585022962174485883412274883850438487465442208717725545397572019620276693973492179211862835584962132737591988468842244956329427049306677820812236942733081387836589803727260583552876003783856379476243883920693491967905311296533099801591767041351701489597810410978500669268335754095000242194446071839370630119004471353216755451217955091672657040198205646763792880636288363788413700561992628986329692309234592215903330416678516908406921839455922746339334909352769382379802278157434806424410852242833842361134639072519876185654707388279133808576884884556621612367677863782820873428767135530974693688861382149520039919300749607149250381684061317331984544507339525173015468379617707480087813669066042858055688556149021857000011742921396968022746617502611444678154274078626776572337439704007432070729225209120928883554926598478750379498418193310431171027435043784691237544183765724987325124397946918348087052694592787343578296243411543015606054383941057898503876920981639746024032819886480312299679851063991190591725342260516427517807847464236927601539665231991491358321575124261120110535475924059651676071554065380609243453828240323236647061851069836891624369648447219230275092523033325146102765212953864115098046831079374791445502625066975094942723584163624170380708099144046919177109127196579974006643406817085327002432153930275485805827380109543388783756232020689414177289036304554458585255677041295583832000752340962516464635490528831451757028272579379269622479722328688702524458709152937288721090700997933761676831119192538481345408712697680908461002855144618056491934441531718270813028443636236122990640327263375651273365211124981960410396774350330205728028774767370932841230109289435115310257948294009784234658742840119034751245735163865000512384864620110327390790282160633749274676455081732650078434282720456732909272771734575122218356843605893820241623133934608502814700830025397675372741075607141540915708507577808749228371805395112973005685835106718243208332798392175478831558205762109880200140295277907948470857307381759365143281698483823346771446673676335884894380221231753627870840826515591944387246545608537270540968845749668407315528414694330219124005085210367098140317716862498004412278574999322615046674707859910098991089927159399813850902985594208092055277489659262053872330719296534440831740505637801870402953235543322929170855321003335581827901028401064677121688845862612186719615528985831618528096970829473356369904905275736109746080766710010664156135986566364253110308013788842487967246816736358695162346607889517312287886869758664816037804680758053988391787315945972320751505841419992870697305939019698528234631298347394643244144298784579460120929618739315679400196135257956973974937794063304450422430414477342928910262739277888864407270443537149897602995939782949383622266447273221575895718794955063343529064521490997185850927817005539939059911990274461472441483834935488861650022640272007859754210968888410071125524350531393758163478949273540015653472103856391963495761158346594880322447987928204015250731443277483339653713418272089529130135354498793611140749485289991339473040444812612873079118146931175463775047742111063510623390717207202137735266343485449276795028705548630350492870084479224645744897723817168427813556388690982193296646066487912681363352362585512763317525321230345289105836584492611324394289746697912255959462608516849546375577899991926660740114602710172402799300607878747923361597163967296795659029196108189992399600204268377777291936204399284135563380012149325335658664202541201659619887301968351835351700963252217879847020952273583832239170740577711183029773970771471669385930427640358712215264353360991857742304083858962379683793097858594655384538345813237235380608451447696672050840793243460030423767862861756792756728524076779153696836797250221075095988986658591716869642801095746890566612470063317730546588234187224393648967224662117879489930935411958040367393869958481326406398703973726124273792070484452625117400307970772978845943217377733978146718073746236862311525091987654644651975783484003401314464859848833008832244006866408311796897475632683869973718322354926355797980221922604452208923499763093403596997229081401752509402110811814275267339454016952381729261505214149546093492855988286625264381036337189115704084004834625506835109861189073261064308325791669619893759542726157619042391817359032752994671014825301283492837540157477365972467797953370870067979088807806670109508396690016181164349513561230030810632265485032179730242838339775095063940286150232351539759696945845575490836774255166254121286233450776300239997918633952714428898435849287073055077313906101430871008057285433268322338214208075768160632867033026981822021241648654338112774073590198529778616047984077561999304144521570308058657304766348754645273423351971405360686950363603249362812452613144441636779003071871338698987895952744694761426500398672526425614476973254967738885492379463953502607307612361161679099659472943340319446015422146301871462799523248737833179103596057518225464970605335885178139357817958544338920938006874386629173895283639263921080199726254983983806432738438703255038217254732646235215314749964899385368239326563669239171241397090673845788185949133009835547679714831254464718612834843311613228098837254189732915414541146945527527941250074643129313136444844751892763327746763296483682244542194651251412764566467097170591986794756588117309513053639253220024235010424575190817563954875339000416890902295450912644092855158173769396085918703537426292596366691815306313404357961190577856728527145397675147072708535054417799893473286435765502919501580666534372921893663978352729214682936417219260440539734852448046145290392672121519742001956160015343419816897336541090407929713334479570369089179934744279731402847275808701510161322556766657509873044828625854169203220439689414613280331293252983000833138961336807095280847086249149534168170019553969236613305655060122275626765267969307787440038400379246378265342081744814526351575930717329435022429764799728675268954332641034001695984927444556997872552994528987314073692621113625882951073771841657062068929334306784147722210563387852471691417932752585139090945925022546658526240886093110811074526562447156125484558653069976764285930378170803537031123678148725605314964111695462038864253721559596373685627661482326691736555408165537207027111191237340516427819195624843312795290700863684039159270890048709482957238790074104306252705571703046609943010964832685140251473291119448259293588918692907637071253203175938210966406158314923098402814415500380510237802999313779802183643759145105358043434481233335650047929954347835012082641735263836612598504608909160335159005151242144770646879425328505642382055809612161348284410328388950910377982309024921401736656468049673868357562658445345064129733705586748466408331073280264987566794301316917645629199857377255536836230247490621919756575308077974512553694636154873962623938663574295682103706357992432836476589741782931022182512800584713941339901893487192200999092271418406643568890971256748490587867037867117948564719728502426725735017920492941762424939904084658487449560049902222710141194694238966732400084821083571763074726401105215823098834284876830729520115348426145905452213372934285374152345498418594250471330187627109170654355233695044855813742409620666243038302682261064998926775784383410317116860030307239595114435262573363732755095310752447969362666239511064707067159848340606112753407501621931534312768452002277068495760880941773880246763302877496142356181381104879964131912810718584417647088852186464110793383316330900466698268171568687182561466326125303488379764051192721349185913124996440767564745720797720909596850905171755627474530139395178166677697154183909778832320176022842947899756914855547159305402198836820910854474358252533074201424103605137023081255219487988996166520067057923665677403046140033761442813364406643928737317054115709934477436047111180208230195445193197653171087639792177749486101690008161720264761286772233143211951160958121534497174621969061697221812882024982774801736888386606857958362778703804851749411508197019350856348772897037702033610227560212660381564180229604457320651277790851874293660632691827037151671554290725608741621121773315981258392812830008339530789676695878278817163869680728344709801035421951935229868286300118018225069145816528050476662234047325392657561789331450957208458045582263206754855744617031655882466437290838962754800384862434484514386212093478375860029529730172817787116128271498825114993140033112711211443771190222187071809511916177349546686248737280550287910280171865242464855309668401758839593627266610268048038707650500720051380386947993597584753321149518916742509736424273017787649150031574830938734538398823576712302549989241406015159643420045926550492219143727596325426706613147681550551440017193141871631784203321524780349969369335913523664811244900581070970040382284495054869381423698664375968363612912859507505490480974703123341733168511806476866418986743455074990714268997437174391905444611605406449800392881015591766824976036157080149326891496531560949366421368351583905425892755407771172841290123013626772103981221359087449102972782418511952395082038268488865406586980916696502210125885692014003287549676518496943127590816804298214501861254980199747228384836939932675980271644858810236447720490100212474662429563205007163185264353136284126781868926171371095346346184375260408558637518546692981820004034764472081458710947079491016576088686583363279851924785031759942507362700972909802408653564896646414801771712341150462073271887444965530198000257375322707424888501192533193688069016298122043550737810258260003955848903563971868014257831136558020324512577652253663156043035419930528239336406430359999056429452023070125923445903127962029146037711358685389876643032279661818564646703898584782731442718759407918286277903629425687336273393477144783768413094880207054745778683551706939917649946262623086888847499233189786956602278074592865873761901880692573297522599879153637423296949662416943033830446802057698981820644918418210945163980028613422790895234562548484976090035809787564129194118125544105202025434532697473217471586948832094317039347939789975053923206287103720244956436480904202685159174511046949997406434174930121771161960876003893459640923222513715458196357018430705126437323537124910404129106321059045053126305182852903332528560299813278209088374191940293243975435393349481621492844966737118900680630965260450435241710263822226543354552844037288408496246268905056460066624014485957862880414053572401487673759448660377326022915015441801450576538609875805392223537360558271842620018587300664882274092524582252636420267532236652141965832901262089135180308550721789683116039848512324369468680787894332508673240599011642948821108471035325892926913411616413313276142450117405900787669322971737143624412279223620567092294650160791677824898795731915218960642582575940861860147889705375652269715360958680830792433142541427079845484189338945632333404124954325247020115151949119534349544209239575450432030086729278085649502432922103687172944363828010666295150543534051117798220840132003472716918893617606408736721486120741610347769491126437934361121557569246698973194599302314532715938984704709676359698176025813682944468074459881626796774277980429632758825989776646671956545735700930118666868949588175363743639456244187236463168957202431918842334187819717119852660880007221352956169338986548007195479089091685824918846780201133330900163829630055713072186039727598426562592338214188443239628153948138563738927508571404601132665785625798089801657203164933989449756966755462162316115149519578252370113719491654760784594169303236902361886651556650999889510123545384816434089176059015921239852961328054908944444081526553283079626568571336510708573716843919101488002720040041041150560678583907663257685273670567590426039954657432660941718108293761068190056995066690054593098577294169490053341208944338868771360259947149964664587692969080646178095998468205139492375616120242499902345779618387906745212973796084704271590434478428910898471557701725854922057544516607596538110440863088859125215994367703913692754351078958627727519622554652787281822215325702781093295989822777734522633486936936760947071052594815721707656313147567633596323521439718751339899223289255544026792132501981749591217528076597745904972185487409302719930455016884143703894346563473262741675013295362002750118756333196735291656947039727491567804950110375007539786137892725634241310806714927946545897455574612034470516578630622886895595568483177420724525321443750283601841181777908379191256453469310964897140921103278026418584122569615399148611573658389070782306442101598718499555647926030146230661955528355744382810270419543791821291414479762047971189913820465693666777045135597676804910263410269398218362619491488229738704665322075859980370321559094450004675818186949960720077064439251403153584468296853509509007666166878249225138934287452104700542518052733832840588903975375713494243298476107181154694902676859675262431097884768096957761691238669546436530229884650453921114307171417826861564616969676602727158760804372006940839733542625898829969380261081466610601150737231051690726674626554387554382657199247295568804633660705310964236269504614179551131866895186030923417897971110538644446359150893260311654750363789031513177502975251875695334650780536325441761704704572223785122338528259195126417894874695211164549323009158004551891606628598572542981701578412542157252409587967795343646036832151689987748961392004427998395630381652621556234351873699323033244422573261575524959166442921605305051010455211872842150088562498753768526531522606067957296822962144413514441695780268121273989025500157156891805155443320934561134963043439512843205836946464594428490625483919374887092829499548307328792761138946786180437945366325874411395887579332894706763547684203840406694232116753731281034620990796006572930705922315465244455678762246749059000693294845369416076873294767212726123196199156769403464047752461559046039944861269462051077327077767029327774287467954825688159235126124803053834898171161378758111827627527862962039902586697144054843863753271204710438085353194690442384658936489653718929467777427950111166045171008541560881537209860139251768810628654849120795738837948803660936617689743873610453528583025000765588615858704903184824022576373428317379779063531566027344910761378688916199575113924254286026478628992589533511511170721025643004569878371221099310319731588405330307695932069615808297406545324183481441589910367120108257212209938288048665346536145009307826340567748236925837137024669322577170193251206268945129325812015788939252401839276431995741844958636671050044766084368779228228154000774967460378769299149104979054856787271526082703762896315643308360883474826298787908136265298978864194773213929340074844622607942232973997607175879851552371329949121361104200541527749152085332260496727897637354868248562094749738095459656340958898462966152042789932861535083366410778336402268031299691928751949729198138527792800411766999488285375902888194119840027540329763090731447407947485588226667321108659967426157937088250101420842128425296690129968264422731784485209872514147048488882765650251380203526604189887431309008926383412592578978899621642135212625828296404467375363963595729899704094146178949591339520517902696950911739956525104061695667956039770212246065814991815118107389248362849695804627293228315564161742715936598153966179137699248409519158116318236661585075631481074011659093852929016278049910774710456089152995004727764365948701055170185768362501748340210273930935680847852601675006013682575536632708835445969544350655106064450806293770748590428112056373990419672458042395463580874653712758423653670182829707568253048419088862596356237454630316166213067807650535927696339056393869889100859155539462962886481615255202400809850400295545655388371129036887820531575186341340484545746736623590565419897702912301372210232076181053830696899979726013978244997433156284528719033161944842481218939046940466560432272691587039863374899510221525405671455426342258633891841950137261774041638144029080299099620867242510615201934823554073049415110882325183987440520523701008883689399055665193657046694212676494359302120677173515568071002211791000923285778902245376255487094366451145380963600720937489443278888058947531449809073690092627597477986376969866145882360285800657881805100431206089775368935452552052348339839380733715622976609557611270594759158858213895608440566661343751240567491868531146514193491563647398036290163311234397237182985701498323256095062901520410101149387419378164342883567066387035878351742085711673694084474978921299800030923291054193827834061846887081745206860327781371784398516216416734346845189389462576770567339154714855699501350589441377161438006066391107840800230361513785483562447795700648988497015583253053690990390673924594982824931543090790550252463657963267220775612181704908234146844270277750224946286159060099241425380653436983328643259653611833390579497491306334874600453447574860286629666447005628354906738018429669152864877586255456648008837579402792671763848917201876269550187209034262215636443756630626400703376302442379892575670494866662100497966555262117510707016123573754443932579100943460208616709040131898690273635864679549536752414380627493158529739362339593324544462014041420581151464382524907552367958654656479077358448714451539215960636718472989065657987605915598808438742219780316163988106759211315997487412692393051900745028048810917590876870491558155374101389886895258450420531943895551205056887936562169559909538214190932607289641021944228572472750165944544498914863158098094451732971898551099367156271077950032941031360589276678671041378245929817422101050601441914652392865484948055166979286445060153555105397618480679249179034206358298389326946168016288504313906074635611759603864100937534288183175775682965850680795309111207905806882383800040917566126850478260765428123408606898534881399195281790144217855424604368591939428464904459604390741739707588790599289521207938970100977903385605467055870875873999888950573427550743373929466846848101948403149657943527310588676564483063921278250462953839091038542125863708930090998599118924398302207373250534978065424053612287454522236845595153090172585560860002657134269679717865088471867858510540607849528794504815667477285563488476785954254155525260657921248376215620972159187758059864092076144498402151961063182933684530391380307369092561852061253354364697044816010282467764057223809913437408272652000903663671479345557749937146400542821972647504614305178202371733842960713720757333226302803352499113937708357910626465531490844127051497040520338096482561063265826211246871888178124597910570258880849595758747345822114931778022560967781208643146641350994661094351341789084302804194662922523964302242341721382891747286953872638838916745203599535311741793474090634344183226749299748597920528140022091120242740599987168063605010631488272736672184608592364716645674482155422390063064391029044302059041967722483799323883389141972658950636200657619724945431962951327491905119649942450907782026606484776469501439244298052870229631128591551900633853797340490628680921574881851577404522506200786659966097462426840052734797523310271951750291785317665659707678407921816225083231641448235296460600022015650840288796744899684765715033938228234294586294084729003459244986455637109864379509013369439077726390912119862081436825617936067484111295000510154043268803667696056181844183617339707123779687510187253411189501915861451931916003677643802672263067536454503405751528164058241028705813167314716187008783440308744933376654897652219006782953281218548881354863865638819786312039439730740261467832503102203353460914745117041645861962334071464127530901973735221947216237619709895213608505197229595945102132523888429807248740647015578373225151054248465640981805405754947913885367957124727797426995513077342818875157614968301789170255061930903665918879136871129151946221179473088446300581795187661826413378861645953462997139379535184578671380276145377913905669310125471943008556460009481022238814463335271714563626611145238413616932579683356949826335379607531817143646461562494073143330277561728999085550152703415529052886186488449990910642288848449803480726641064913122332232121152991886469714114050457600359207832847644602900751053455552281234605834829715700081433903659857715759288033836111342588731625379158068831122997284305995165643487879750841719227230032700088047973546603925488216533054381727949465292682605531770035316008754064153609218611441894088716832226833040192468459432681321510120337447936393403208735719699818851842972246003317674685213114859969127908152059708276824970836347481457381424171426095835455906113182871344628655483514467511701439493425739466521151648335946185940303601556717587025781943350342141495418201105881009946682077460903409714608953117479728066713745172523703027189780461482123414642188156162659900803440407593883284760772476838971791239234845418150515042953360428487255253720936053807079826187288209811446098490489148028293057058583548707847883529522101619160696715136307962462856052866839534400490252538193083784848487040784149876960572951283470937388365093075950796114505584007476098747337741759733998610091428374370770243818292098600704325112939641706801535457047674980374177010435650735453691569860973959446782296911269334133800709614701204571436965361847290893805247254998793091214078955506873692951612118282687501290688232385406117553798217351346309938316638872762984691020126042808074894161581630359266665129647392528158766172129740094425147218474636486857713298936504129420346336477188910115899107198968902430660052370586871232299497380416401681223933045579376666604011527835628125202506174622782021073848834103824782218483537131087372001313417996750925060800449848434899534809387613698731237164098737619026144612237518188665334147992124652882574647893009570533528784960514426458322720653843346786265999507846724989927669529178809877594374390368610940624608828867119530182092644256122401884152324922232552770718794249468861545348406583801767573482843539564192364379447782221346001255029298599452988810664225757356256700458682261112202068425515161849017492120778721556440816447846969513328412646578408664521876724005708413998214240145133640367860298322662138026555584201285730773142649544218324127108825856253718614101123328417818930609618187595007185565965659007995497205023549524710097897565744216337708325959873500852073099688544805123489294379536864003208568223462023797428138651677149437560423255783469842695927830258197640631601741393729574877362779317995542212727428203863243885349372558457460926594061335989833261068804065538632364822673019903749169021671961289033275765111920066522402974624417584354457608296976641925139313401407989625587517876340826198547267167296216515316473913218790956509641196071103329803782539629535110827332690621040160924802069380680501254044797481108105344966359539614165543505510049270712296142030625478626989469961303421555232225958389386771097258948282567347636809283892194353505439421929963017913283377215404693458722912542428891044719697284828267744729303208011615108330386538287908440304836290358375058865871269749133530350947898055096226633704788453837767468809651447926046160280149654276482413276017960579890121835449931822973157986661093742713423088498907572963331962269835313661008005684906250044637626557994146282075259496086670011209953527539883136836460197102148406153750291966105891927342197648668873959434496869482105536346966239232531307027303471285029362439046727029810311788487058267205975774111476706919541170577478947109912311998134569697886499047311801451654326188445457549384234394541536658895130754805738942207984107259908181171279851496583101732237834131395200534751324013540693239904867869533933857787290248070973376922892177686105172629831305115919236586802928923325574223303275537207552413787797878595911563594369287369309036089147727680880003405128650763309876996642653694376948666158164348829623838891895460037167585735405008834086076663819775615785004425456372273074920821787537074332350486838912928916709201489791194866410491057631034317016086763903474809690485627437456255364830829271775105188605973090287977280132441131054243576686019031765269785627988072663806136274231323218731172879339212563001115577801288074917496076959709207003494348051175100453428702828933083693126734789745556153120142238696020498708404923535960155201664786415539271435564306297255024182687669697906288251091133059457550997175278935924663614514528509728971484919495967808513539097288609637713548321483967035320262801352871569909708933846810491835181731521280675792935862869965929769024129109611193769967540458177787729099193652787631441143760446350329410354575753274988656279984106201993165505246798360687266182348626669156688132718873286940860453462054371741331492280728702329420853412053521302399790810867744541947898108347636987333286036295121724625844138153049348496552045231817605474934458306353075050868281174778770702523104756778476175412640673670817065411301027242077024386508349609888989746270191607360341372088266309770925622146421652238025953503419752842296479628724096132544529418090250146263252719281333048967342282977498701448867008190518750284636175801998798722611151561305102754056395468932606740129225089943695175900885809208521964273682659856812277748990715589191111554048323522390508406805395535231606888550975608944164641252035630225707953239099418525219272757705195052349346310077010408226986094205595825014992548089001832904850208699124070902375908266555877628217634796797652432167914972180549917864620434219744004343004712352912348744620666073414747005296601529340008218298153076926935881338178666695951628025105504340053669527394643357395821339967690976618588266168685882002698311384062832906869376025740315315661510694863465671321837194588079965362884829763180952395842338575100111302550124281192399890972305918187750548964597498494967115638272046171923742909793059803658484342366809164633760815295411746932156035048091133866870126147816314283801085625812971465412568174560896712979284454277213347684834109093303569585740095233123835086065340001827473986523734295455827888403564248985920662398621252965208552158240156285089590065375646082652764226524159635943140463949556167329968834479675794820286666635913267269836129407416893886834730598498275069634226912452183122152934774484138517149599117997778405501751657818544723088701027360483733060793183026551542036371361840741567883400222577016785177505137222992098310197471619524734109464275819786394829482645533419314106982602651149347451682149537979497338945339834470025274838817325544331114149358361807209374621617573895049064470582188383216984389934695198366205874403665889444788681528349577119986849347016859719793326470267298262519494451690391532648229919019596264153424947880036527121963068089559478025021341463556140758504355271970786493573247655063122950934916584483088755042984582843936150707229552247316051927337502711172039268197608688420688916707034161500002801679242032076147196811575737618213644403784997877429531470093352248792480666782381341219136431328966485696285081687792049106732744186731713408454121132695911704897619282115678114239595667940501208962890168771826772653644301562265886935355222709155423322118922702537351504972848377862495067206754889050175972742021612787704734206738608185225632852758493411725846993155979811130591750888010430786640644346318496558431213219858931994338769186227334291996554817954982932721771423838751479496096173120404300772583036098345728000966617115972304837950319837856263122259343707403681154885420799130034280752438100455210439690733873538737358599136278162065126810937316928877440819028646928006386570940326997082235249543387433408050266108395338278153941621497332118946850669024673804073956179512206461423413893387229256904125189045902613572410276539239288970979944746301083372309439472649949357565802781940791882563572110605844812368607227738761071762669204891464181377870435773896373861637402071876737419477704922000387998241418950466113687953268394552282513136766294621895801934178660555694638212769370334505158384327736406670565441938046075910938329828043434462345865043200539878086303815647790405932687401916635176122544340838911503728254426082195833767596427019863958446791802318568716195037584491493133426920215609368790959474418518660501764071516619952887857749907216646735753651233406115703087994606426659586682685264064994657005841894685873993445787478854556164730482364821099619859816217477182579716448510046748190358598087665140957011557302959347323075402387590756071892921878238973530782035379299385138073129335059461604494735846788060397408816613041184251169554589881998369621620032603186002201028690564295875495029746799019532872059790000262457810978540229089709950218606013031274877714422347330488346876703185165899072685702760595650242456723630867301734157935799260305015228422047225642123668931786270330327559904201253716411308716900043634700476760279185721458249459511586471274105542528356890041327730516996871466714437292470913817891855726224620438627990940470605718723949340371985668068849687846180270738190275194863878004220226605916633314118883169334281588714103041136093872868145452830308750685331456071067145186965556368355525201492909382791534017402951381714381308906348586154398242641829074704207389521806276253065747985245435160892009493831408239555338637052378950209731839633441010177620915601721976500337463457386787658750767088363773495742864035098051368775640116977262398383439179775243700475444817266637933330845286303345460957770220119439126334802751638584264798212888141570031238806773314181879537328078257113078881790510893742234005343853004990652800495111617469805414972410744016018249419173196599305045456477819283127070298678757273193493204947994219238118162968077680483695643908764797253805018438085257732372772117219805525681824724778117507383385549884066410664173543807333302183753160759327799674072609521620709722144162477280303016375592997872282115534936195088357711660306831002902370382006912422380045252616722186944442192338960825739071443532389953239544782395999332834681584523208133859478081129130459937401584467529716894635513128824499783486111841951238016903757268667020871863122258916650034359917614033497648809072659685616092445614243583908792473261627424607491616045537654632242202019702177144430697871772464496756762178466406908356315334137714532455910805799099090871969116188937700847904656076462100387488073702091064233973668649648677637980682847056189090261354327888461480427468361087664545009883693814450345557210443814272686082856382660561982741566163112733484126233079917709293188702536735344403871725813735975187637196878022918241242580009869646027457600893676360647544706249906133728343735022325000359321939041878796365270225194992809974903998473199860868756764105307084775635183038395054491717857132319592038687709646594655455069760771060949948184878840417753196798702754921722190354704108817597828872815934137386411529904300226984138338295663530267853256757280577078600392420106355040545720898868584552216669864690680123168273462737536942812671518793637582940364932121836457153812031248292500786305485026379073510471548816637497142918481054176479465024775181321100325632089721157213085007725368320676368308890158545185197423221664885961941950184437621720912186555312881758162954128624494730227928259224403630379654320771991228815060668953837577666941100284547163140929554903780069086723810077959689376289767793448201693757672667966614458511244107266369703318452296335588156244592540381706481751207945739295796624436456735812395151030074911331039373165711407275491110562335852449087917416570855214964907359208948995244680665420166948064445624742873503404621656346770380737392181980861638514334225830409664199874438761136133110670273600352283606844181470208978370856678773766732797159747195434240811274124192517308679194747701987875882478198764209237802117253510959129663588128021025676560041305647475641767755151274943401146536512222597230593735958774626682070730537462394328081659138592661112638165214474850776022047776440367430012955467778647906855135508944460599206242296318337679584782761463062341929260470721792383707339106386156462978680764992246229767800018984139043917225098983441271471746029424490296915830795520705779300208934217680549890815697255879632314208514616813365212642784192088346197545606787603773303272381384462431627349802845590733507090206067222255983808912698460427019097386981271634266218418923689994150080640401746276850508813417804311023083701590922812898839812191392548219944958517199111432947343481363065237346325225602917967073949649052495395233936470165291805962049997429104385877335255770754857805942649497843153811089160446650622907373655625821293855196749108937885268957786573455499296687633621550737773590083477344921984402115217739366074912343619891281536752693900482500559785421144151696670786968296914547636193468563805560238615388969328484401767998496905583996312981661756125904671001055516672783617538020590293861464677133531479079769227733753956385070168152684167759291218548577984766360337820259363855137709045803732370986794315443359707812269436196773142079317784837221721756167847236837053973442825882075056880463420375295042604210019299580776746029365860082297146240462716288701563972983484965778262588606815814199588324350468979515527780567963567612803737907781763497596959892686791970998614377765199392372434334594834139803604743259069968294809149770251912123450161574599144108865711243385085947027781878062807978108463934924284026496548149288107022847627984416380073286965229586408049563228065894392452008269380344088919283758658102507403145064522595990208579377001536063891548110963213749289794641261793259025281719941035028900765235480279763428547845961503511357689430448519497841771409208493267672185017685536960042008188651789485694058792990452651087249929332332794860091051264645654962021916851406162811777753729625234883802075623367715917217020603132421921009630182643096810828694762508700169710710645310023140545095594855444184769558594255184686883190266976177847134487018368771600838796421903699503560375201899862000261349983815906565435540772966993055972228164341453420925309248088900503086899238801682813441275609234043173076087203649580782653732817916360704198832983580520974075244388898637084725915624588749984037497215016657537435597031536897790528021084900398461951374361285239903643036404998503013276526281358612950791384891944803892213375543664947759947691114525789161503825564563972564127423933758533426405837134285470765105540508031152464241885331233557546183164193754207501217977322571375000350169414733279896017049092644051577475159520471397706741538077322759070818646457765788267913027766179853996690062587945517743732538237542928634850524168034686615029288558891275839994931387666698233373229500159863204423904626791063469785488487519533464815526171868073945508980446612250719248185860355109332063608702213164429237958333055667707434286858905237535652925965546379829490086575080193891361477943264961040244146813904881298178092293006960788087661619004229995098107574433147278498268437449705426851126350412740082915662696975594309501973345245381928380591770408809660731352306174091616762518917004370621922100269967501585908637129453321199866412257466881895487890195826875218777070089815744134890145471917239283770448027519275406334695397603232130641135989935002999570322118964677731122935279401397555688504739026742041176601601730726143576429531304422969066602692134576121049919676482567463868981686280516905428009063873994020665763952058536706144852755771750816953244183634341068775843545111005650587374144837185875129522060049335829753153759367874527571398976016439603724055126293715429275649401382360021416781597436463367248720432741461035839721063649175474778706490513276954408678989424293223764686300017765576798261825521628597299139073591448652386951060965152904395742388564722706539825367707511754516998717609920087536299424251087739388252110711459288825234199479683676542993716188374123073550285475113884514563635291931486765788522023711110097685454475228427850334758843957306165865090645833618929970684857312774981769168831105995381391116230540424674505216094750412073339042523254773624946041027261177731579232055337705320787545494233514334022414384839369400079365037984904844232110063373967697567382811896972830272394673213523501893299758046443194148463376836817182249440697330166808908689936937653177205917295104135831955214112303083690387199891205689286767102195541589600770383128809459244791914114392359989456229360528656918796373948702841057477615167683116836696887249280130828625370105423267650305669863311576378992740810141576254629644704580557074654712377075408022206594472103543210879848987920833417570768206041367289787948489022193454408746695734917352483325172140000415705737319798468168717050810075407776474352758319170631543874083934108275015496381874116645199880212714155493859814012666205336474139089356473460457683957949563984581413721937884008612585226907516268233538907038464150471416239844579920291229659981575503796616695509989479110663222614296594833595544482583346722964174045456042925705912230860174347954721241459311612610228455330358270071242477827004924153618414625171349223867317802867327774150394663982147366410227262712898015070600369109226222782233969082886917857889501349150832408012252543706136862632561737776252793779079620181827071204852860430550946705349739936600778531677444430389558134995288031797309195644141979276032977613212961255084720229934999758806131916840533869912660691779147161257810664473113294230308906970370716790872516027848930267851792285939915051658931344148273907979180218104324728317803642553884497870663603701052361967900206697107085021215958439241507352255399463511091516337291231141519126768389028960065830662156656348352263928522210333944228270476078607742214413462353178425826434717143045613712898306078089195839841659539529787184296622507412986771245864317093296814848859232578228806503183690972717594502607873744355872030632665954557421059902367989951930667146011800093895559350476496693556543000341403084367548301746219961994553923453176623927604612681644979732402397811465739289610700537654868083196218145305437256140402737162710487635623109707973176701286205274888123928454873878889595987916207261139235670793164797636792272317399124879344831518706187297622876860018644691031933224566049954403041679906717662275525941532323489270452320280869227085427837429680140188058510339036372628817472856208500944463205740433939477503135853893822028682410357840041691748383834926070999274503471183916817190333251143197654378217779838781935209431371177683359164060095159058705788505389599893246093209044592444494494790060714907115351594872247148653652186189692339690003818218237693563197865828344226282445676119217220273692998703341924661216669252060202112606132597694393105774556525136747604301609095003554549739036626825541372640445438873562104465266145510722329200770013664443115016314007227809149246569600264615694325129334607107701243288947214308535910569994376671705563919244932849073280808092743139063041932058838079479575719533801079989003349817392348381267548840299291639463812867946562961113032382762970434074317975978085080279034554428647472059498527515397054088495696663924573578373152735979886282427905916963704969386015869742342654064348694904947676552340853165932898302880821443317140111721421950284517054125110347667395034417672456631025316322701129457668568110373183123530197733439075462325062367615806340201864305983449488474529339204621530627510176179562384218297804921269471952192105789353264707552631222354003432475882696892469084005458304520522951856645371806399007489817255808785583139743658182402623881364974090772091486640218004986188651315492561858284072636765413365045418017541685664407269958132667512308878406655063845431742579610577101068470838892129155545420071620379393328089275152800587258451963385221096098773532707618561328311859511026689057081251726067367502217527906979473002755892778044624334237396789496750163184831591293687920413137688643889796522010341169112315259179390461767874293767750701025921087338013924044714552136058838497539448562959172329941758427590173304830902703051002586901079044493833973092647093038922904405774209638012480697759636898565362017134911278162391579073982446856243433530092232430802318127854661121042215456076170973531833055175517023302454702127255509140636402041456282266047164795043094227435807993917299404846518825504738706936210816256352182546830714158101558858496712101192647232480560638898212576948975976283424954795971217785112875916557977643893092716107055848149856712127203885831671560070981393093571095598673181991086405303261462092015788058234394076620180069129899493595751020520809369907745104491340103279177322719946839292223061314052564089297071664085749618322096760794761198185925205559772164421240965553383903655635292661506794068999204147427267875847415336256682973196318083090375713270685769668341873967912365387977506496116641888019124422048363304044073049232544906370221393414361663799667208341623376457272806030465149988370227166014107923670890095441637634848421120667091520755059883264081737383707334300514686025700723012329358330647001199348165234661346064883379557825891349677446764966764302662748863558930243145091517874040407051346524131842021446642284169356890599737618661130127696836549765931558407323943262852458634993070449195545445174264020267151124609607273945371410429846870692163150177230074444131729835869917176914908444508076494286425390729073021611296044027075102833497936269757308484746749373635627890352615260987371175448155073184152315268971851713476413986221996405174785143364559016505734807164069607626537383373095879566387604460767938110786234800840233214324866917048038022466782266840629021903307357411090028291816713904247585629495644956852134946924497258175210701376404982300934979712891572174556913152151944051256575456999679695225515970262497989204600887451548018043699799775952424824807586449515661783326050842237619722839821065714917937675689026371579004682005703000034330950539628599702833845943508625045218391120535831703585957424072180170755241115172616890888606006105799857898430186747921419426423811569900739907857177639715153537958745604289704350964830464054470414545029073049420712822019860509031886455701429423070875302567192198669667862889186399764202126735105703565864461431262017389401110617460171735258074474252374061818977112984809081198527148695037459307783701429397593820752307151917915551642719516471962166779974115954040847023400869793482558932451384933676234650164608645149314185388500498832862466956809674288031580624138712082643524635718513027268499523834253476160100304802108338572235918796460492733672662200673710629118681763622565594537542196984921550634148119407965280983924277855115601357857885637575087371066451993153402198868592353366355419123403633048466974915005513231549772604641717482248307167949129441280841998982017964186263671477641370590759325096933664277314727615481880188715218716222180311895952673534435777355450061293236750498319875377671782249944581665787173522285318200325163349007080625139222504931285222083219352490263887408074829922549501692706384841745099952058612735299694932458678607384368087484395561283798934056774024925583458784682496344553950667039279928766247338114492468456345686995283779442162127384759142225128881211838685082969165829245121877081534169506855119592781448962958117201803827359910815034983793124644107288398669377952139244477564463370641287965840397397565926904205615312469850091699952029900389287403688166362877699637842870875592673125662183238476045775816130947893753790338592481292935932131912227339709997066398658090232552208526889136393576978914561574091659328143690930154730560495890234140668890050493980819850571511561307863686623553790097435443239913365640773377490694502231643061747642540036885565150841551267900820750033331750969896602538163250445315395579036676667500393309767123773815480769333384718802831479036422803924997440959499330756730465653030575598933338044750385408783599430487053559236184617088131927520416208105974146677425561148592562751702907793118475418511185595992774108416298078854881233722042899698929328484989222513939316361068035519990461787840935510809293117481253943609649233507480317178309339625359882697232098939445578992988657923954485270016230988529370709250664211231654528824984981408930210577347713008270677171051639357115582312698678673218212833927414735466329005046318498435374277454219182822692582664544919830295285451823832181620505995907364841547564482185703685392079089309195766082230543742099778831740633697258238322449979232402531260126776596812601956656245853108748908747818128002534577121203080919736745950659131943170274198500634453501130293478870979310430288725427652721824966172964139229325856821535305124512662487399884084811492435973387110359675355017379206341340894054319175279343925594043335397287613529543871218676829931322907034625615055378405740760179785321210241780360318179748524896206976032490262179267574644644016065562437504462018794023483668522463322953877113061209164238596352036085718156710311272043850502934057115946429063304558911182210360544658156403901093171404098877038996222986751596109103536574832998259408379480793975710950474644602901247301445622433855479369194610534348151970140335778730296784978886403011690040777590948751355626842455778425922858518613659183368688864335652651512474523128563549795257174361264514301652659218126888917115719523734961653317750725539886121933713190735811322159675633525833168842170568422787741024539073763951967420536056347165458278829897277976138553021180969184925433292874832175502753352258446095732101639201453159486479479212055538121123663195463297437090088444257107863849015977202757086815237017103148804240852878784233553185938894773851721696720829101454467443756984920795651242683376102863025204395896346572557800948762222374486238593836134051052144218873962673423769948114745844605514935568727731707326227957231499814969492281871983526401500618460896760793197966452255201757655859170057316292521040955488367540166816545690308611901415903520237215919957240972541238861104257512851469402993260240577682477870729966253435568533433554312349130929806276549414105247631253979020652563461007011380120606282531272925995479055981268555622102032468596344032116081436891239913402292059872157178261615579146438178040753525260947213435667524567494852754170432423000517007347736045346940995356957129376728945369273104814032215114135726396844381529669312680220669977254717064006773955876182233235357946692962448221231503122929519872338272394920060168037199548514789678105574539222727644178027292232261589090752960608142890461989906787482702650470621793261008295466859127955905081172948686260906802262063644747006169260833940041540662242441716102712892140510844139893507049488397815731107871551275329414447915422977361884892476169995228761641248797773647793232031685875497092908623195919860677704771311140700710541691259654866624913414037475371300649341613007902678182300137204429506217425885576643330672041094793797852276553023864112294666339566469675381294239443027796138425570548791872868369719542137642367775265008045809655173491968770167588167907921323320774279291820979916272314987028498288489087083186694580575066342408817514864647553744321035079373938114441173980110102469901077378011976744631856696225447694436630768415571677840110973605916097790988957645732863413680149364413807414786398725305016590628753184318522943256420516224567639282377888460066320769172928658903103632246691385709437479720361673875380348404182296019385676068736605559029402499492425542126025416081678518977569212232053581848407375924873449191764420975298818670756520225903577029904208108175644540530804829519256305512057719309711196024463088912065427515625565933003295017214176464087835542323000602125193071701126429242569953715550514292705735314004715069904284511105231672237876758961486616759831392191345477517485304381476658180095955296083901729611536764898335683303039783126144314312567145612512853171393362322369293452572157499225126228106274025501044252308416539940944768527193337877408118597316965767229657451255501978134956414638451253285749987753225011049105668715594739453451904412365721823851957144385541167422022634321155516881195892679353347284238872731871005166780109145025888145957042958145738706383923422921450951123524662803363379598301368738484457000645374359323262642990291197702102773591806104601735166208022910641703892397402305998163153695583430667340851670678889895307896780043593365098434874548719392960953118743636902778559453498102702656271013959684687841908845710229817472519007936313599384579749176175278833074784009755631973119301524104354377116731952277147376506609905678675546800651521119340894211763522361857070995948185335593196619961731323480954014221522608270114279738718180174996981111098490085886139135662221091578611856992222190415652505860500391240423232667595824389777592056232714435856124660271979511197135548198253638284148953780990517290640770976366019067789103819615570849670728899133000039907612951853428667412683321196849521668664547275475222264028942494412066398683421042709192955366241538312874263299351391523334440264483475642794167775685421473803839230366178027324434205419808987639242357254580164710703069329962994202419691841469693293113253540501227131635196971976226578864069573811070757926737391970794267850316908374135876141800016763648929460661449997789884162620951263212538765890224929161873673467433641652672882437804416264284066614432098833300500827740654367283325929336122419431906270266797884711016241618019762326464130618750280281772082368536821761430188614253221740620903978293883799391829065030247553719725247897684235520893703449784763238586268204746949018320463982233759662761701714980540395989448720202878689897684590025500458232848636733286329851813200998154845455307396538350585917238572898603640895217969092156246800935585277300460583073442301995258931811425874810732141361688522841653221770121700213095747122864523574009234145411593168211796290064426938055919883612791652339715810081719785927103578167014229601579364675377458903646915235835634447669386655644229882854875785897655574942780179178846236976932705802101978437616305155065511427016611340408866252433523121696777682780649185885698930970101967369061255340953898882080554681033738249714177692558665174179507325871574365262359236299222522693856798506545275382089983698567924831233507620062743012010910917696590252940364493333621512689670826880428878963214313744905641768568119110464559184633608939096325040983609817930116510299500077540215505548418219122083007851255453635200075504118875847448464012062080936763398887636581827043808975032794952100396206087084043857825141212995574916163425902866520381437110160350416609953980255920956688802434292927714308074761127397223649400534274569671289029634935032771415613000013844430989800407826613941904384982074218886002072019113147797996212065722750361851004082136384808261567291332674805156041446626420840483708295490798816800508483788080428734080854073022723011759160379095387048548927182540770830648249051011562905760532485291235248098722829971431298114320390834502683787992019682446198375210660988374766860683688940981082685687891995112113266775416140913409045764910598608829718243828030541307239131518190455478357211229459622807555373719858182092628567557138357017244568129314979216365637653890053448227160296731281798732614289851897462714031947459457069779282858925667930909706264751581037528241889406880898580424931502509142283760416081268660467769465296608992077032790759239340951509046709662318691686773868508510696322750075349935034039951974879600544044625687173091065080983992860669885335366249828177132951129733653901064519595568626851039908135530252105318673575686584651414559804876496702118938007933308577371779796949883496060995336901343579861885891584270564742307886682050164512730387869166755279182064580252762484658047332824028881988640934127523349157668373159150284268461348916927013589575253873524101536680121962625298053615697647122898718191892001004237554594540019805339393803212556468417494696712158345311348494550088994440299423896125702748551509236263049497891879390469284409763506145043661232565898229415035656957003569161489983136816736245905425014910803706540066280190917416971278927917394181056565965095007259159289435367806858907816510297661654499597204642429946017869438391836056924106563947095413192230505693296585159728735177123450732997825817255401268742518814886174196719146719243713860148339700073188001631393522409418837308231595518353574333746349865853772390328760057262465645295174912015158523452646615220480990815291823532731473545454793147444034839167130441587782884201133093000898058826287381241610648939097011948693891032640163793674425358404449406164756484189002179574661057003331432578026471899435424341396979271253162729709055470354310141865689345239770249476933782898273603546933913525036258132251574517248634699871516450410338433704598188582507485378205072744460609529847913603637430206726789347281504253086205608876442452108997246479509876898133069089562010285077646955393561332949687986217242272349670931981188755933016464298394904960605651611022004194703615833499104225340858085309067537577446576703582484858886562664708298572758720575194971587220632966784529612116275748071340184303633818084123109396219448700407876432078424333517579406275854395169785146093077655407329345564886458019034059578389734265688828254905516487265399869087029385396243723024420084705067308403608538077315423365159693242943584398330095420790539219283475267200137551974357117470752289964344174128215424047804121628988800692796638998050555293464380288236780442580096556744240583279726043469810845096091008754417446106028101655648130808218709933700893115131005623288237114235661370246167598238169801785833906372091488426131131778279575823737657043921818302366039431323812440905422114762093556954902715320970744262946649009337400069859928931329974031223622688093138023994426699236346368070406653328277475825665926488790149820071646047587083065840559308410136101347180006943566747326467639983551429906636478737440867820521412446640233663341952674105081788803411866982050258941340700600302941376469138625038377816523254592268116465506626530342713809398520686873345677913247831136221355714805367101404902345535046381371684068906432466591851501259984204692592873851763139127469487895056318099101816888534068688480263366076524120940042478280932636706974402395117150038911205105762121282268746210945594003581365876037608937744304474459940813417169676757028408602735930721482102953335986056544868445766807030220528554066793179860236160994203165374011975088998794252352093174189494656394845352813615912552373892735575229796610300107008933922215230662733803815858848484850855219698407367163630134433029438036814450356484958510007392008290722906671302912554761245723100193524544346426541054989977874532236212781916433800216823336944037342226610657553511152083155902190580814983352991021517747351732727681859313642605302841303630835512755445505285966756714212704786824272511379405169613853371268849478513498986905764038473578777403734172105042306334536390972352829527073428370955465648448788084072482465226042556210650519678662609409366393372715247717036021548500972632737220633837584826526238845428576044065709626261273461396097129122890077965390391128407859326380686344902055355795798429942219962756459961746829002000077114559914931290201389948400649124872634365853668815120817056987591547037018337271709072534895829178953239308938907336311802277170175589978000861359108280604186073860065124730243428564210420126943461245636021991886743138477864088447743312831412961140824948321613402100100403349325418181327587327529927603803451326112580392193168290889222073293793031509092122396297233489338710996684193227920032771708355312020171853732692293398917866661144151150126765902684377993381984681210711989613913135072661558080669128243301809510522772346219180287100257042181877155397688319999333494268946993685972304180150150323969102883390463221210661366372982557015132642467669716783796105177731487909625290874902955638598872179422797357810966314397522012350210738044993461040063602431283387368043621781912993127347943698747966689623329060305678470759238202970356432086007404193611246134149773965782578508795134091834153865185504804664996707960218725689257305864425747687759760706257804885102247371309469778478170803721673439646363425148306622631458947111797328408617639241087244479237916391114522994027320553040743374578333562301253901362929312287068405646964943475866712652899288331166453056133679536140653967717529726708193625291539114075889241712528648518901132940946221773374255449800799144822279779522362816352907592131927696127898543853260188525335975010444521768894228665579613058956599013473261159373833598941156853970163622807207741231333217975252320034608975649055663054044970782043034457266779779696192871353476601829142990196298575404208572427394672908336865094061875550592599172243621092449375508228031253300025268336294287110876839181572656867455453981566785893024250456506549951988366036103834736396976857679800019416309126016721892813991125361689529394826366652749843123140172384199888596447444063188590113436896816300639550363847925822006957563052286386770698989632300328239241401193536481415605960174619665966692821481148041283763113504618309341216114461380119417934317866912040708972911655896084408603379563395489951947809295785775224994108028149181092995711090214632537234893756682212084174324422417365929763850824331427562712897058697936373791521974780688825130348396266965138080836351814185114039290541618281599820093046282236655773748847477229759002268238902445114528310414610432777536078834477291837086506412889701187005174084086429365894923741068346029110497427171095252540103843985039829857456913204832990062502658342344163559118009301015781371256974752235774318569639639080376979662438745416938107216428648861320356110701345886615653010143886153806690273522657644176277685882632936412804407322907911968169079123660864256535043846596619517878456461895837751974866803827609788183378140967615896510024867401687270297936378184225491164547533132077200508484011390530395552665628662988008207764451924948976177696205930415897165799754626436126670074105579245182322896444511839503501096217203721384913958641553133938427382048514352006351547893256002903764525922189729890346153404840461241232854298050543968076518975829791208177727525341353559579372375022681695477699119525370915787003589101025598439340187861485436638927968262701305282274014888288773072238144260049516574364998470038247970909142170220058189849223862874172465366386736816748767143417085520319433842237128958904190488682642090541883557129487359493770690715227125335821738965058398367379313573064171984804734653387411474758814341022366132457777356499980455840436069859217415172604495060404902581189282122061150607859879712979010850933739595096915193875566211404906532407670346683257013821328217675598376719661885760553006405706189402320045816062269365804420225888303604301301678339018307744918869618318710189511152023893762480906248724171141716330416422703441513174022122974777223317392924675225328460264784141438494010121807619756529645903750410188180363032365886347374821485979415441616326359501927072474131627309237158332291822148741933935287171677063357372863795781736383452293012739252053902286372014020460508037593542057752814137744283325603458596059420817137054569607093230494514363578264299554172331758198047886156039515318019852976325722316513923638692666284123360881320032958269684406545733708976580670592746201395132584303988616019930646037848594646089657544700077342276837729134692798048148796842793370422236228257427405378566878378240877188238542874600751710797285648870321060494071184286556062216196209680770012045928241970904948537068157466101117057750089124249758115500175566413709888551379661926324734411178440760577423828646200869013246340668160571513407452421187306142713820474570786879408906519129100991055809186797427837997957320485771978074932412901252513004511054462518953825541668550480816958042864550049814299027823017241221954041582899445606408420301263696648695286670692657638678693924818253764683678410226033358336450401929398586397523416432011990742614020117376193053792089624473451181180121263606692742113150986708217360055226553596576666995013132118675442095420505486022424300802904289259526194420637973584728796995242198545218458744508001148443747965172567224085985653587004794135924364190551202513821879249317233854763545743298131445963041446837248987607212478362891531796444767420548319680428386873328689814446251962197615757603047197908792154365059767131541669362768243457773247921303670533908712475636257861502878173593551647565146298315045579513410534070399151881596237893977909142575697509133305997047526885093927555394143131151216350161743758252200512975578961444858372748797201705234371843356194631617753668693950505809420292500734181138379404166608901443700375116893941725597886788758318462060555412590489631090053813454397336164960901100333050241573414247078052518831327514722105973288769788427370975506906208757799216507540678872529010699802527061371873884805719229503534136702080269414884574712893634300239468522748455892205407433524189351878821445109582958592272063154268312937225288255833515730003511642225739623555426099302127556310650365636902819822642565828202063356675766103956033371141384926772258123767571257052579344147482880109627040946569560305370999730508885964418097238582561340974274157998513566573109081090521045341184583883142175830437880201005831067042597722569203304642214824311677885465984123161707015895511679248884640705030127560458542088072490334819419670201353306955421944089983081235273476232878995404668146355382900737772541489207456259593151690646931024685033347855361195480217439326297228644344285693324802489023219743147525849092912102500257720197333496479343008733406593938363150537191233225216256611014522226103315888856447011174937041392828417788146223498609353505597107175093289400187665769525359211350960373853386959596578447870766667835730596906119495367487171081578409498649837095788042993124092152423050962957086826765513724235293450088916025887125443806248306392205910903606574155915807181455305348545580884427611953233225286457564563536271218959816844973600486185245637350853784469906966709786662398305114994616517202953383082316014113439661975298012606694160547446473086879693671674725094921367250437535181894341580375847751717270056722939251883271202252667946588465933287234757955829613568564238965319219394638649491179730253770158523400256984675507776487585419478692224922385176158521844438157727579757389756891545599467753697287913315657973895462999998819176057768047269827947781457462268666634614065690832305670786985454246167631291470157934849553797391935844083705090793581920438578192683609124900806803879195070205746354449431322172665051958432717845039146234226615005074906542623469934262486721471258328817354337324665516921495189974507264650661329757357461865894396514793303830393880749589825856930318443604738950598968007736819913896548891927508703767937394616387040175768120092411323871132451390568986665493857833555480925890648150961085630323719198108751287145711433369856358025398237454209090756963557607304329400415407627628483334772187570897520964389202598980786378525841203592416078453361709116297646803303967300109757898368052952171355986736366466961325609884032705056567304851126411015878365183289587462229779108516186860841495271522683117520926561977170553611970006614082373131935181354775188586388626032692467960134163873476569984710528658880306527309369307223564026357244292584261729888470897729862169902878455404561835381129030899835393533300885146917957772466360065570121450715425737431775887319599538875759036058689362829443543923736484264266570709748781177112677364349147431325622656218407827187445975117189153500708161447434935866727779102260831707383444604872137789657289898167927198317683690645312039222218204851588219691521511016158248168495629062350657985936795634139206223307717999592091657144282891012449824001980977822063672137355429909621563939073462572523123495266351817298441468686315888279567144587767905489607357437402138088276267485242095830236123844549323221018948798591663673065853065942187111890911698859104790935010979262025066057282987669675775927917286976873725104775341480584815719752222907132366543893539484274265449062588094202531320509243465245959232170322198060161538646320588312636526475609199799763462478896381243380095051309864784988776446807665162741656166666060824686803750918693937053419248091284508690764879832019423968042513710791206125717405133023006573336908799021069687401192124944977210472049334515196885374442370945765422755388077889320292770987125747356152427269975210615504125666100986451022258623021800814678773793577302390484384658546143150594501109529781939583838430905686550301020471929536505914745142392247836910858298689678494532016376114182966853311377808500941269260817378826560122481746037169890500104396396862744141091182630417189923008477609341480928365639077452697802818065323689673471421535506194074111129165654898923045530846103282122068874624781490377941627437548840732194958633674363392172911143529933412327883150672407526696358106750926259036216063267681767747878810633566734975421216561687697002502657665801078286021149669491112796391296871961165056223157072434840275682770871214536826175929156212556453168963296858804090894882931126700122278854649540515175871052637272274016812295890325860932441298209173700529516450505873634612654819309457345726784896926153185587091965502774691174195464062183248294006158539715599072132877511780348071737969305510374104532024001037524557485212158844839055171169826712323250785146693408602661486995903504815827729465762791515049691533012906581762357548502107900239889368085323503308904557427658885063147023262441340375933722766828515328022009723643972715934715801155538831605957240213357600853719482257883853320009379962272391758563452070766776894753173084697283875751394710343233270592952487997163727045962791613833266486902272043778618513125594651993722732515241611118953634847746689055307598335990738777125948335318031494853155959257136922726770650747417856891674287057713281085202647248501484902991443201597113617359526029603124643069863425407625437496194130934107493619394823975887324012233601402146718523435355723239629820363439039575954003388733280917077851306198859405887652734634205278758203215139095148681081025232914484458446093905493525896659928984589603127894785382783163702835413058939727430711154566734375444569036479267277146302859913897708658033304551432719287517382533449181302537289532320858950085617489501493519983471932706426068195980335376961109810437499046925152752983515017773493401312721946455193529313766935323855142653087280176899271520357632126068228438516696791224088269291339527394010727267942597119957322769764691800737878327524984841747496741837617941621845262013791840057024865609458094348842508108262793151340346576033296415872805547644344913438244242100560147581083084723786191264095388763037951067917759267464350325889393523345142375456752254800462682394881808507149023388635508461646929511494538336611992545167392876543530332324310134114964423277431559274907806319688351531903856065132789054098954959329119119048386942280728969041701868746950667525045385035320088239564572082218054583305553787618318246803776556293188964570767790323001249568337780456785411608885542117272097814272640605436853587168196499554369948155939635847949793110798005704733427244708715167687762530412524438291827279249994366880243838130416109086380742491459141917250232776549212622697607792678200151644326498560560188177090742599073431557264129622300679812550564594378855549301438788758737900408902751343386991539031734738790314398622815940829494551547500772392366218446493122572503115173154992113845167960270952847517956002459381930384290611131160807955716116422726103183085491197375581219602844077628982335994424692680585934993729149367068282354181072173572494063710561167950175017564538928521131645525960585692901624348846801755029544245721163802321134685985570453980602712117074515226353600984772078034796655708431158601598506942124033810634556349175782699160579576363357748790321392382268669111009648535977096310992185783249479874303768595623623292397581272619589131901294131128848973474839825728906954804801592694827344307403652421038999180968988896027068671839408211884680717835583920480200367291780984391829270055744706468835707833258333006986756175842376955655082937264691371664243905927582459642706320487441557929490449624976077366629041869362535192100459016793823733379818144926059208060495005701462995534971439449020347473469139326207101864678301859881041542225018716808677143158921068155745781422535117482127779582176793037759400513162921292391867188463920310368159670864649719603897493268003361513702045355115057487225575567592924435144858967814377405673183324079821574172650733408728206072842066436620362064681247693065920082731091226917913472953467555722453324496630288861551154712779507508488011847228497761303124450249171922869448031449422296582448138842470007725898007019084474120814027094858785721913449655609267386771634362179935367966890187221668936318970936431087896295095903837685649180199724794584655487358384095689146847409800433057664814671080556904459494036071769937055390910665046068213947530769265714319502924477459448012886934137991765926841380704519964904257092087105392025124658226852590594951011131689158823029365332887836255333917320771540613336047641224178210843562098242070494475111094507507715837449156747363194481515437100116114884369679656565548498270521818679629534740904274767117034133019977103498907788869408628752374751552000920005769567074021410888119213690796721693825898880805470018957479254077773686435717750450949585663694621613494647534076041118415455598621893928197316589226915010154916525939617340045738019957540621245936703889433099054435184444055804910556799890121698819656844800112675445719889796276826336021942039944631530057936009085767143381304556978000264197967973150315957521396245242431288709729344911290001201311930008023903730365367524096323328097564408598530466540160414134757624257318437024198889392007746133927989310744865510337752998591352561115921155014380611598439704432098079151677121940366841566198133997322234061565548837805987334243464482042265692575042478623274301515111788889945734319430651826511953120813591361290977735058710532065547610088041263067100801138688151226247011326416413025747349412615245508557107744136954794733098959327961656535483612811989484933194748151855501842912212143836829454445494982736824399913487139014875598038378988605602991329678101506326269827118374638911266467579001756418217732847531848312745119697378034269285164165881485143436325504200476315043033284432996449979377480417577799216367241087047052803077573325826303687883941775148628700628447022822654419579563593616394162626220300502122706577886563533353985740864844197033733868619368633828021399921167445749560901318483895708056160873063474527036606190548003897674902631922986718753763688075361144122033384572195047849229952995728692404021873041754561111295225722532002333751847906031108039931181843776681078112594093589940442264845788849206490229047523398838973228472097076665935964717054519278804105921399616596881152496008746986290253741872700704339335813891005262835781780441827299721473326701460119680135681203452430146369515200874251431723922560513495743035506235381661917439705449075957866000745688166455037123272132551406156229674289711051850334033919061469011431582607374470805490871536323942034743584097722525193517944648445287059692932154759314561108683767450768897150523626030997336556454270637314354119813613348154426026484414922945414155445706867037514115572741032092131686309014830027756017800456156096837744415849119459369220502343845849109214574532961794545205748470607347599421413771363311281800070659230552549114796814444093311519508759706425193034811374759879137352869270725884919735018591120339925818407271078087682445697364519500431655057192826039360312920095936869270179668490126352469886403487875299777513554807682009238272916252447899849206909637734200844378333154319438004422321145963203214625507463671252759460046556720241878358929657826175593966560213217359396410456202886204921395216646147811028422410801787828293764716036192621600102881258264154742876563176947764202145709311623238102570013412948247729005874261330695256760760693560286435040017100287142794129562476397796639391208537477935014122907335997876664750728930995825126839614262912036246196222590131266984114203416714856967353398651028025120145812534562150439276327006754239441545977361386206159115107219655896802108797883298720952578181310842839770133871894199994717492230456142045734155041218740399822154026143294276423633785859632690179086844902303469342207450845612497157301618586203030887460892531196467703645566066304950643135272755954278435746666230973682327269617451093973441745188850141673912757384578804082062859159843711831814658805793136319375249813698065455483902897102298015034655949198573922198877665765644851950971522302622999273886985474124017561440962041177573097162185958338251447661840388043545279310128476594044478636679867244326505980437501049850436708441253336698980901448601252958674303752438073762329241675154463998386164478639242985203065815743338562342013767675446769068452966521291780604402865216840729787792533152592237089237518880582825897763445688948059159621900678270517444983304125338044495441402329298243895930607323039815987500026374804887362149830713807254646173076346288021397420553181701496520059035186396762312028673322090784647564085169591185872084451165249767407700990522377980326635076937939543465851944500890833521177339675173317081127563287872408687554869422757462981261568055281744081498602205953266312689922446984077323375470868231710620137189148611050470739989551925969158148136913246512430657681099260801360359107825416558097167749186742646787719605617867830289413754769482825680002375101049230977962605924324372143864881942707984719415561856968784790234724684086700353694376999810676572397105940425249693420809649934637192971289827282900984027724101068750977946265708996260109651688437917944500279532182008493860525225293968596820406792484432340816323215577523631882610595764259983370885977243702996011240086283287252276987445996984994670397938898926966143776002315364958454300193572854286378946447440144855216340435917547151109847031539737590227369735855194515642953470133120620303420478005555682457977425015775299433526912913272119617883948049687621311467830077895388081678578706606156041108683759767541539518834233417236421043478182254253183668343974795214757972202119693714350716175577513416906987868187716356352421528246967670186501284907011032824583121696072989036432622396726071665593718604960450599719610135968871261877133548254008428236715499534262376726954964943664574755703505384931597645960386121542178572056272586410032325744959727734164802015988230494622128081480167952420328166199613406664533991611346864552871264916331072825347230172637189679971551686630123813678874263437442190676135453110552427559910187228123249507001238340126992705652924104086816691799494495719336084110113797835263694275941008869236457878182724856598509411996662777219923732003783832162566173080826957113040624896985586723037640982301511967677654869660555049468409836854817462598212722449008725334212924283328993073047603170626701237013677627338373233836648138628662609059381081822872331746707352378398822406299933666963659796648782821432223302467217912073086072951537622949858091752660932732498769511185103293479803403627535040029381137707351017403815668518432091478531115887042060252262923427504113284783535666530176884203160512221363897424477390797463281971094116907367208090727431548898265604370464811514052045408030916557176448829643179471458790122438115833763820277128650472696460298454297852135354621404644108142529511382647935725843067571913177209108320578799240245153198709934187239020861788191894853709020608140766654892969469997619453798889684579481756605689598574810250794113554983612772278055470419930562085176801353413362184412442109703691377273828713156537089301367718143758029935654768185982172318392293129935643050250462375553578867081204252289534413687685562764468211706773860409001833794908185943544483673509236274375481435194477690093402411054999137864111336307512253165452550659984535065896818908882663241635410033298844829669289673775814670784218630089036515534229128539820144366274673096900730990476869157213395379170017953618756726583198025267766092738141840526610497007795260807907409387621238273718062051723420497015357071061996464746814470628832099168198356059976466277520836010800924473098936537343235223945282208211770053973306974324465891744920413240813100678672831490325450483941876189809365056504705393503196056623708875221115459453102670437397899728107928288987712465865210295221492263363447851838567125735615385245932421769419712440506495351718360504663100147055296073095235541765568268462589977603889815750673860939961050166944717824197824088552886665163471710571177756109847643361041906486308514296892276496538237087679672981589620730128281768351423995949902327035651182612213466294271091567838586486736064299617700755230910997504032176833687795983742042551142821326400294881667368992480218765481485745862580780444208656335181419621521871651557136960657967220762499711535863524778786070358791791792722258113068180234036568203497559504733260842237520982991954162233609074636416318243062573015817012761165196684518209793043946436761388168593281649377897199803082499681877896221597862345000318160132462027016304846447330912237825177175154116699051379350679672023841965995795793652801589763306737698292683059584555361766038456108626280414928627030446572694614794473968566946152978051776704933775529274667490787866898417782825190063421203769774534973182554496813252537296723300383083598683460577342378170142340852339808072920411185936661203303211871031934641897506069067618122561860213807320830704832383727613384078569700844521727083322086624871185865601124760938207226613431778156329890518071162510030276602222595907875769848236549585612019629783479136759802867500500475501594901744037110688891173056608008284834996317035241863455194807870026968260204650150198610585989942344912308597647911148752846262017076188157236329716498320524512591943021153619214253129497413230815889679683933494591847217488235408413838104084961241799065923390544030635239686838065229147052688499870657886391581457856044524867013366448689674573142289270636859845719612838480975440169987340382770147072605939401404706779751323899528111059392510110198224676554506694821580515388674822686512090412655319445366458300388085775725484276213975704958598545039444973689756013776514399704126520859571354488670775591453670227671186111688229486703427955362086346865823723283156906498498038271356659828888284967063468702545195037005789730136959741787835189578053378363951611387818241076664761026982609847740901042065575714046119294052086519941426043970138869543087586333752031907238747592690743626790037313538353846331579177865200631326442489268270120805795302261104016427142739157318361257153667318354835908092993307259750967618243344691343458311236628266051605251432142936625326596523164560876793650898510832757510451237741912612278163156226635810909669321365319274097462629043015494564444185294386960733986249210785676637455976095892897487119433738063693739104070657742562620256065039899789411207104834431216616814844504809864373995406360268136113274794592774816247803453571030182204591324558932214187489597709192514328350092015841438106738032399191759299940706916294443605019351117312000199606984321342151269442573604929559987645480201951160434282441720059851105188834401324341860884052588484099557720711257802325296610237854433128090475681902231395887906093971699595473455678203792873595156269176076532884425109193067219432435145169473996158750312034688497171070040271975574709900803054338100177365128567070185547261495110736944326469913377200407118924241666575184961035264618597583569685020673465796514590389635724127096221054489679007029829293291494096520908790457289179348502853835546680855016117783124208776169846682695827686584187420050624312821043631927657148389576961532747447246185176784642771874213124770611316978054713748681630350317433363016346868023051711402507565593116884508080454366569992020725766253104397547195478095829379725433222453068325077129890270627327490597412379488044443197797160314874803009982605507058684487283032028200430718764773045497451741950000168846595665973834960888668218940637831904875020301695727308004979602216542662096207912736127284425618856528083160838745995483323878314985534044076759968047088232398436756196082680596746075177914905167312208076247190014566937181751793467723592951853791984196520317938492397497557944302296089817692722209942537225502596862273697992956509324917244833050341954686431856154440611656736080804403258453886546393178673104997045339061571324981541762869134302310249371848343317848717601036115499572389155977033704297075441007407232272608617125814150451846088179020900254141883767018940406560561981178862572476644257904532398685315211942077408535280939997453631573123123873118719827641781275885896850846886685295839534235063612571469765202329263878734790098263008619810521224947055552424788476462700230826202822391670028698142043105343258423811931979206180055263311319293642477322746884482949535912476973774563781975679974060922064108163155277722755378610475657713583439747936856216921908225692260517277956220846285062759023114606047435623470136955367197313627242637108717586120144401358526775177315085702836555488973576176573738159872208893866934691801384128510046934250797941337449199585921787416774954678404862720445068561094050576508609572186993452058763726964936541440711649420184611257270703041832846324052840377786224368875930189318718990720808640704534128307977134800905033455400147694291884676359928418568382020142268394513869594441796675008013297407421289973947223119362747140912829112361801050687891926467317480366807510122505696349597043310544110616409876844171932402868050060361949979760958348275779356324054685859045857866956566615545640564343380584786437137625066497319880571148802467080183224797574801555676956457926983022146471093915371279200836644239818400505361736648295202181775908816288271438628579782038222712083708924074424848546808295445282452653202549436881450179497543395368346708082979029509539378295331513870567487402213520105038588043404227513438014743536822298554590291113667560181381875441933118151010854693149912333778334141642457604153522705681931783884390097061026148943955362601171201042237200625092308785244531584481914754633703132788787872968182360880757973575575859662539188024219254529401545991779794360179068539425170088225607859893923779263221747893344635136329216239292270146932018595901911415519966148626409520698015619466120148710572788869777344926754721428442845857627764668025628540457354968953841549136615974408675594670777835366732366685416401870340487425147478772053077669610673863517706372567540098673906185617624111620251618264313058809171400272110626951758559235815709431099456682911681312956354490363532091264075000886326903426830146410822233670801810273453221311073787076911141364619401273165458442482067094493239966472185268105546105868991976257342698021125961508214125339210203696391870434948111942181276220747512870743016164838436356950810511230920619822705498093045044204081277683440869197036183566791901260222238371177563774745501439230820413309011255484250145034483247004784109810660052071211267575766218599153228296102465971589581163815049000543445108331510909620336325945723653928578814803348404179805212295349094656756494611808050657946247721632921342364387497363579804600961575150938529848702773516208355822665246705840447002635831582605212384239695840067536269871817383769076486372524442277247687436987857342609693909040215455290276268370929986888262609839639030957417940103946611769664609199067624559897363296577750601063407302988080086003298561445466647837808632278655393426511949306576679111498073616448402904194127325489833658520150305705661198913302218277899109374472168579215662756866444928297842334662849920659756667764622365017253706267262075529402976818979336829606365938192686850199974678242015183517789977871166756513313912675012915893326245010995440533803351862599895529412782344074068774662197170575308035730877905170500151216924828555308099931741984674346655379043257812117165620816631410438258766197053104164606159208951195640358149944211018297497269535781308672280273435389376543703590282360187689496177855628871362720289838549829162983281439464513706839400815221400776139451017165379609804924021246205255698328868994410646401304978159200232511448081620568408809477309287960506902807877196032015149946201782620936976049698427898411894886608023277098961814922834966981864804803718805231952234725129983433077037106146997983036396694345234423740215662924715973461505692176441408745636528511596108534271134421111466311160176873464883603267300451773978711709053878051962597416946615247051677311271015604402823802948992584033934107055225956780514857151284826709691004021726046820179543693866443547882291932589998193121452217452973543938038876573098952022441991163843023011757389829389582344084177246958308296282915171191545059449323830536253445035420804250678027956436801614844626612835869822038174258841360195728212456448971189585712198164341074994640653916988998372379959270355763138804306012542549216951328433896316421715966870925562137563758542501408059861721827283720319667019840353597261049276887642140061667909422430556680350349296210383676447736107221690031949753622853263080228886102633308508998308359214297632219946277146103313985499174044982472589162489184965177265709492704397898215734433134731909486072555651204116899129232424778514484356603995489333494130229980408748028246871555019909838424314585410991635960280575305541182759710631884777654565106136522588211477760294096516463600527093336943787823560813657772172365348355760584037301183068618682991925095592146366173366363084326953897946498521927488186121423759966506467028605291930723078938255644033162744963122657262687057468072640001782353789739064791592769384059063528818371712706988461947839415809420968817363576055975592547620101045215928076632625086940276531144041061667969360434131374384004178775233472065022962831958606799465873037086570528249820454045899363772811311703278252706919955290630973913542027703731631535704157975843580155685802986456623752635220869915637701275384456356614935428310728792647290313275791704257729679403643735734014965286970785271504649456137921252861199707644142016479181750517908839585703719681077862187369246413047092581520797338346448926987832498651318099061434898152942795980204921861273647873637945291212464137546165769930389499013991488671241595165297451147005887947711632272627360101028144992604312093810967978305191399332689332559538516630493264929318765586715895888476143649855135509704287202374162304077369303678504877621135572585485958340855299204896819986707484186901195359490647748247399915689053642128457749856376520696364491445216923542157654136553940093649342682001778957330583421256412318676174828364538359275104251208215155422736757234695089399922541252026516685467358089064805575048344935706116100823338300657016113744442468754043067798505438856740908650680771658719823940756995810243491945833880211816843898842054339358772506859354707506734320088522563205831501195654012897976343941448785960773006884067886065309043010871712084747197230718749483278442408420349448209685960223463621407333006243529786205312496766933761920016452438568429894575125483795038695764894879945865243360935665316948811947820469544468635650209117616518582568655708021551882979901008310494951542068783375961351857183877088402509035379096353840097190765382678769295398574936212517573694609073668160685294063947111013361658700853239084720697174348065597570798890170169842097271150242063466870079838853085877000887397515010128899305321169693087183718898095761832346689798960622802980646956311716808498406518103257546718779018545678881909555037587592249285556424449031690108880915875197851048216654453731081109229641968904585152540747169013163949348799720253713128311636109710099784987362851291743464860973317570442377561453082390870974737107305272247228837610159154473163052286481355213707231942157398334127799650341828056167692748042900320014539161602631790419006218109675040529545695322390499928012530628513843437723575982725056489315157202312033003016050332982240330999355619976399404900436909977695758240615680709845504956424075380389079499138416589448643728628308991608618129262969602195031779810616866935663206516748748636977890031124927974790670703429517338471392942579686873071626014515547076978172795970331468426945870558844007054053524279014623991958816591955217388873613683629795297251151287377921914446088173743132098296161247262766086727775586288013013818766147920913285737952132427813039818578074989263350174994276034511560093754750125306221162342477860282253014315507593102218197037067945994146783896595616951241806576351046270790681651461335901106515993473813205236365608723480547918253097393050901499295508652346663979638510786901185565541593256734042068872145681928790298249171724095783874273262683467242534000455954498724312838003191285535535084925122803734095358039323490929239283714568470448933805038236496137866637175774001774427373603920011323156911290674962818288956173446797162736986150306276426543016553596643820377279778457667117703119317377715631955597598934832170621524465524266047138469591300523883873996588716588821342398554711221237723019652598673438459604422002919530974774348849004537210900112243564534627224309690855983243743724717554975585631659863748312861815743951916990650966451398543919841707611212007352267144920211702957073209845114538283721878229037860584444251889891156111697586314631169689652066247819510193758612603688297969945469749741921607138197004556119549599315966596909450791802075077013827941803495165362320358501306953537471729646423879528328953997043924520520629720069242798036341636617992670147776204704967582196094187808451415876567098803278932265935067866942646721579501139275843024167126143074755841636988600267102261758858734959129180381724096304307469395108866079223746116588380371269599423264430082740354243595407605852784556342446341207432656084590894748297737599829339893236838568741584763963847955041683798662395234497307783440032583850392550431162406667108750626730232016626427922503469668160544472853945779685338003695239689831031362196069476053284591047860554406692879315421094793321790322261519184310201427455374464357122831268862670444134054310894054453414100353107829298210202448715744552742265963386723964488917796499059873472004145246385337132333225084013330450033666753840019393798782197861012819025084844124894091153700061974259708635633665356727280487954945526352873049026654958709861551426188968834312814921498023175041587013005402790518512407363554852645772540939416900191042471888734893286845236690847898416199414528211552813440611784501440360940063232343853045008671715708327619922638343455210975202896793720247050487408824851793036835734085405086699676852748904873449331744674482806845171315350007101679399005173851682026039448588613366942627152929905802796063606571206827428589772774312313762340504589585202870437251145350644021401741971187626386379992102294475276042324899560591907303688706993594234549227798311655919206880066643093933629097583059008697042683938581488578051996641442899568257044702164999296337320081016216137078090674229055498127571294375728725608684680946480687775398802522319405091733177364394599950101171037438048488619054224292937604468197192242335533040861852739393285930271391175345261860492778242686273980596297560849102584565089787272834118368471542307881546026307727755355794192539556839833454239013255803206376630980063969341696712101126982166089048682007595158602914677246709751468832892344092051345330371686076514789033819576199628669305958500093972434715300708468965766590743844571035666617860888594963433699925496134368340764164160147806178901334506734571076119360381696948625143271029634663660328592096294893361182151989189203282093812190243055835564964978077394338905011081803827730417500377236792859638012471473957492908020370344700182519036865740820246851798862205469257552712306903405689865838702497561929868314648931372408493288337835320409735419698102293871486312073353262944114662244382955435868086103194604144923026900767514650765109049388604180751609495624702863617738088273375065504844889325226651145277243530036915070747040030919593757256252274799402250849218215764669946354835484765572418071241273445717048327824084277461430011942097246354246151912800796215198042807473148840658567614021235170039888373109893321971005236787494291195723837774923901219507970681181977974413792176473869756756129981933384539067374311893415433589732924942239047259734745391868208800344516988882641566146660250657100508369292699404174156154106522185685950719402540691865769951090835748701525482045882795769936318971601999869716845490553486880300662898748835152893133576898565904223858743901498356912088686569634881283018036831355045230720662762977962467525037377361341856510660071644227520413909527702564544694037292891079279982653497689836190564569931946988577215110245099573408822819389470631485393101110500778927673446272554434179348673895466963632919950420295809544991507696619933336057427042428174836123281990594348062942401598882687108175727143821721811030391906141265619423462384690703750007118133749838515092208538808795417117584528015881893563556356886326527930734884462779345021948627128264019367588294509525086210508287699846539753427379897809585303453115152404749286600178144867286235087855512587860809068417479475086538988045631174154793298915202592343478964350302805215038013605733171845870503438760976016513070046269931974810537396731127082118253726118387045339137175539373738865889878483168197572358599472448639141099872970962853571834190856168435126804482500118301220976466304792124512560583334905409620826007636608754180448236035796530561104529566253745221811844791899163855633656798544340078004686219062053738167122695713689100276338153316358982846045499271405532869475270061508435088735411419428397097091358275780613362770371787612218966807655814622301267685266683118127796905495248283595777296630544436783167798695980863968091934537034056802205944752333223210801012808492531173135169928071487616955517730214111186165769732392003171210599344920217226396902162674495791568663987459870544066992449554687358187669678731122958313538499679024912002389774973024864709393355129801970534088925394130708612132408193716085153689128697711683132947319899999643686147814358177994392617091391630771679697575186574616829671693315974392590214746339154741481439970096431548616872853261099244962238909964045633797555645395050687394448251075505230592749801269810340836549375878655145160891643534769278373379545622976818872819812118363816747025591002197081322848873927538899177448804311403540299904682682936152707896104806749465460235792844316311900744625468609459425797153317762377599738442682853383962033662100884378045264260162781862809562859974742489399608603318721225652660643547295969286567423916143596474870352001722922508273567844221261976898672484257396435209021225201470465341310925688912930714471514449700976159061384768940742344889820551640412202367065797918430135212030561882091730517972844755506020722202778188080025635817332305959027655796655335543874075097323422416245806915083183099435663742837011641256483333777139248864630936608044373220530056165614931255482053779903369889691915076863834317226088524168190520223812674261824404112610365392489014440717879625133142848785176424689824966034041856397965180016798601827095375600352072973140686754669859682321100439189498877290494805995562507266007343034645075658510290919780871595946323930828388050795106178402418719029244885306488587789307775463242384613195911388509517508032461411685662628975836789046813821957345413289128951373742677075155817441755596108844042057143104098368550842940844624782993404539588341185667128874339580127590567824801851047273957531243526431431479943054446569259370998519372636361957182415010879675531753621171992149141489483973792912271256633973914752997028902733244062474058412646450490839869865103384909781086625371504862211607621090190554375749257564102487400294979205428881916926469167491719129375308262786441823739949347226064607857401467680592991645066077972956782318234470381035465466600444618500634229518108530809087097648161525489532415049916433672899264180718743181006390352307414776954653592333972289744391757653242579991009856610358015999698547918426139798259940213666981828923888327898319229800083588736494211686853786542615044234085261363034864915908597486770685559667171497828719550246889381009805702470182765098909902239820223903339078457401317397523955449139404257900055654596589022231408335095212338513741632063109982598588446375819327003819883968325323431952200464442369058703517705292238157738414616205844646447681604282543349770134177281879616107739293826711324953838490734162408780249196397791783416137007924021442314004239993917093449291518148689673444662761817067179450746253613805229135476599999688386994221634806938944621651208524432024202921583115624551408622440839525498987776584574049792243079346563819888176846233051358773246561403567660131631968509786884593095335649745348503795245413409813522292655017274836349633403771227801563542152014948623972835070648516406826271596242039960685524799366468381716998173676218461990599110923245165260056935370200113427150646911750010620404510788218716407229203811455950955090631637422772484762627418108336943711394459322189547968538522764509312798492545665991644103032890154011686607224006181401163450232481189734548300170356467941686407720836339565836538067398924274339948946852832577670472970904293813726883529730222996298920886033600129573261858629640485103700896242301226006486850924676743596690816707266665436368635214932358777709308054474833935829508913975379878347926867627142903333851123261811936098757299061330107274159952054782517819729558139568012808021032889965014846531907852085463827426953149389072828064453718300902447127656989984238926115486225169901953370167659573656467113196852671888810884376468204150594772210694152022632690184174644247417414006278746411133499773694096248638602679157935427506173778078478575373276819366419201834293799152842977961478182713948250180959537375549739412393763281117419256107209640930751580911609037354485015646358937552678957524361914822606853710704778920801635082027339584447679647080267871577821326448887397325774077737255433018373864491928932682133439584453701271324624064419721484953602963320327952009699886342777372488806314106752174122757802937574694418772606727184684277846604786844616250250228335677132905535241300243849629791715378378318679982139513023563264894857003838861342561005396014175250296876794400331991679385863825718432938070055400357086340470202849788344070147969179885333810602386575567855444375471873430851337604853286122339906375301061617987046401459154004769585654586629174831714217911352973621477268849626810362886096808259207791751987006672197884092505770539423161208719342866434192839158128045321917651680562950072599826817220184672266036166983819169310254993855260880821147332476266070495768297477197189455885121185602151540288069567194465421813064548881722965020888605262377465446060685861545039198185932944057788458095138192704980757486384476047726875397037496240606128900058771770027789572662808640327712552406683181897386916668974142448081860349776079817618659983944941106615140338038047382513336574600181331917209877591795993724364234772867105605193976709455333232662336240514030594496958860232222428428159633371908766966914793065266424481945103567684031244836796272902971457839839474833359773683521285497901909771113996468918889716448270066130704310464820225976402662784731551741734678266943566818331110127325186972063078233603603857496168615298530686713576178945588350940537716808001571097631274659149686617931002960732082014580102444387122922177287736321695066116874523606524469755873267166053835466147545844297859736741331542008039811784613926627491703923861840773722360627587129652011570204166763731866845429861676954379517088105292910528932154630684722717944035558219593351736611967629160839796734959653892803965825162459309378554563694804755002689786768874084534150722267972698523617112287178966719770508394458237183371280743225506994766902524945794778235715113408162686505334752335624709740282910587796203824004486900941862964420357876729342397011468074108356096323186095069613820043675480418636243256800471976776107031426869402728120590873546213504345390459862048959985801188484491709571258204369205882957982748380404758097640621105405988790727414234782013584303895261931851034814058263467737985876010094537807404845992045658952868104872515611132334563629132959619687818965435636903295735191096738601855919857248382897591712713888760523378428866573878385932535414411625932394260079221735042207808860874149765207125993874797886096182758463614474488767924139718912793579944403939091335194370256252869433460621091533741328322937256280739120304076113215901395951567169827472700309013146036090570839391367653038906567315670109814532115047755627809762664267989786779265861352979264696976426016743384560999034326514063961103889185407589183364995085626152693108182497468395177567622239615336589904641756386093641144876610557035990205980138845300536089330406868975083996147415597596495193438329576505383139360494174104029823930709228087784769836699503838524980905482589174323381954457701491709471328842539467716132906726085387570453454973106398306129102676248590905881739695706540729821384092312239799558668437567980539655815776848246055068582679416164254204547433241977312183227694778936233599188776970075173792168757110760481100717412726523241258916472722789532442290441052144819457877283564246065488376708402271042079044717188947212397832708017658926226240692850037059793949045270136932343393740397095944280885160901151983346147285335688733468032871029126476972721800918087931644721480545849828033845821758625238957190767016899105622802822812031806774705438817463827346772248299108943562394609831534442222198718478440927112489746227541502677993948605501557170357316231782500521261417357088677274266415448249437993085181418536667685197800615675863217288257809866406535701001875024046329744633590110309834512889693807062054048941376122808980958936286445321344301567746242301055523665103943167086105277951669574134885236661476789308626203324746507925286871799021772713444013792896342758580611687125710738343279623486502336815227418813126384624783522563308974879182248588918706012858717870890121385433599949075884374719210719025045614654387203604315508869852238564145679830758999384458615434197079388052711082653369638754245593589383672728388609093140928419242663544254851046630577502727858483961976607641619556796939642117244434824632842340294575395461187204347395899674391435191320441941063548661986750253428053291027357789316752716168929565231540899246299524145884475095048244053812619372959303327515013706442179992391160279674740832060615260656075456434111697148073685403841787387334577082493425221914334470923483273653114285681231514088056606240579035692972665701427688408784969567772329369232796553477048531360355365000798216954937503068335715066513319669825036456847349996759884663835435829076604009690582707264818935134680586348765495232320556734681989674858336071646366467300369469807778344280885128472288377162583160722888781208622152131201147126811269054368816433461304784621926122388188423228576768267345783205472251702550601470201766367329767091164163007643925521064916064431978036443009373186029418253221586460882684841995346630583223806667249098396400952330709255811691545871768441309548324324072518744355920612318672564314938438871633420023655350058544318425623942182880638107552772878242511681217094733917186336030664179682902568248805225540457491831471696177946308918543979228144441454229077830876864286900705748825184542059144842629034495994732980233374418185912805809809753672768974823817101868647235246910133405562201247830894806692424649003283136676939704572153673231319607101301737389072240731788881192253864440789693277952019404283969357569409792785083750320751256506344083090159117248986715650516067048596592671395465519297731723785045045977544928041693540052776295659697017763020765499668306992819621568988103193761595547972329290096927526502035690163113709029275668645215138884942456346782954168993699909467402690362964400909012333950811412598996533685252250574054923213999040960625640465355658546670698499779210295135253676086811293639301221033608353938017250178413063639376850688692503296595719919911370434185963360554824989281280453974993793484429751998066063599611793794083789901999417641689143937783071271121300846766676519379334524573922243378575349274862346905923077736004882722249317843871039718487849349070766411677809303345847586242346868380757134263663907588924550834879793540229730971823151816617500512354684038017829271108299830236572645086302723262897667460599064201160463965862362817986272850526099984947457954702256386203473400349372358208476711533411905189388714652579936255929419487397738311610777561033062652444575332760831666587405156834628878612571168139195929815307551768736751724054383592976559717693002266094391628584481836829025056026840928040934483720100776250658508917391985607860271271775512910460162812649086316121934352711699330407480905123574127908117129826868201141307006668845436656871026806280646833196460660922253149683426132340013754154010861933253653237869498661063127211860930408537966122789796318260079848469726937853555646857071660429938126066518559599783819686879428682719563994355221650229817272104878169426610286968647521706557719137278812627697877061160529213249951567779420408986649381092688343759970474758995629127552755329662014084545621636210409089499372955646241476677863818586256198412205060004006215638608556604212327429053795256465828925784068228918614400253782426692437151630950667125787672087029385473156984863557433642841552661728924360605185493615769958581505871552643622002949039071654625461202189617988338653089809335470244049217674947962259319450305127288843529793982388308576828548031561403245722400991964422251386929346767927391898423493119319050857000179604738002826413971692640543118045180319331370666601705225599440124597138347583680529030091810688567612970016103320013201760564474722752499908132342815245630789229391970948530665553516897110131316783781903825306927550269560867124917520559750782573212092461925118327522203679440123666945923168594146766548742460289958795853252934844288469944217838948958097009155894866413832055071747768706366909041972883118311573279275419897336347564668802050917804808710321243447122792916418968750892264156800849798406436342772492783272280397456105891194841753039622748299916500068266571965696434632683758664795871803986470463381952808554083146357041248098962143039559646979586511114083995096779362811411947183424142577742922443230881493657418895671260499742223466619093574079263902308790191187239863184014682806004201808954808362344402178507041672180908436022532529646263908051418169500462077295101849812705425782820348263059372147424977710396866511345220700500363156977669054852766997333065649717762756768572544911821797161633705149324439308005631398157322548675595118088258808808283067370589596426131148605956456479513057496002538924674049735290728081262862663605521646723683937991000435311848939873656991168362028887010183934792238585800009421396872391683839864340199190580732100641300295314130521572211758883132521912359313252873719334089449013331671619145152131558073523614215884110217880678392539624437780517656982761296389303066122663740759878376249654237224186156993565347944418898756880017347939797484036129972024567476098916608222030507893430431490178436773089433655117021214753171007691353177629239647373996386549968873455805288705935783036345105927482474796996493347413851122968252042742338293065779871069550666212769740997875022284399037413018770273370494107628854835417051308475422225652179278850553856105217458117120421369958021942366357962158173519998283454435824297288186836404747248616231648841032009139644958788694834778054467548087081592389963122806177014638524710626947527711346916461251571162565192744811713093587845792478043721222872768998692261802815871900014527827356674958975869456851741499367758015523953871675315235968335110738258079912266989228286558904643429387781549172965356460261003725595976407339826019339544125768871684588663643521307607817707734119420773943880177700488114553794785463839468390701190567028623529727940495910650744579148729269859177918880458345140817725503413965811228938553439983685035386053630791959365986567141456596952691325343921478167163003352753641736913996495022483250505460958575975857964352356707590811104428877813325165466972497996416330754215790847973006195118966872965723933400431913070824768550784462896596105336262322030490780916641313801368690345452556144821490165468099518449324518897135725285218717855609788771652201929238522477815150576140818773961255832635540187824585782713382689351504592141837249920021912271299083113139027013527680774216330706761597601641327595143124886610308380694365279068291139438367433165819161291623006176270647747018521296161189337976694646472040670758933655639600888180411140202246291399883416796570673912244325860050232767571218229831207917923870403278379128785769602558707032688545342652311144193765055100722822361586450010468222718038200991389524016368315696835604331615688766929844757249928562357674247504547681843700760285873806741399171430181870752195703463417991857879108194282996719858189804517826029533807466043668186570071177997711074548477886578436769104439029401234737431242379628893496570390054483948601768299881983900883844507661494745537575169793404630846681042505033410375351699984005879012734998013347390004670498586264910327947656622621727904391623199095970261036925591326399165451426431737976362701461817521529477999125881729657054139711492146182053580610891897688071446688677480640183323038967330776325472100395374893798833588190925552557808460535872229869586381678326574288882850282943355789601586922489378679683685645609165535532953539138141605709007886617767227019492149695166366671737622108158824664973340302616035398431922745264118325149346111491237406447918174412417657057410809930340323088423100339931069809313099332197642573156217439938250690105136915015038496697733966277919851355438459580415505621159876285255389106382748596900468165726972976573543909863963694919069258282562436387542922955991128928629625264500144541422451003314391839271431218657861108303070059745706543206164673703079582962299770733902707066584288179549342290666901579390240047620745156092666636753625615112402489083054288787404581020467112623982716224127757053233335032660821520333739860731262277909956595163647591283439427544048241023275732825709378764569373778721653533554143820788442089983711097986298477508945529531692499342194272635308906645245186902145312911353930182522574557001873243637105640212217289083485150311866747825240176601834244741710978802025639316155194145918247149982782317754365278807738723113745660990281751399185511269162759960244680482492193278172531224248998668628383016802984740622578392915814655828004327353833594930625168919382884122970393195672312171668518276582503981416159762287136469565623889430995922701879323501005750860211388165116600793965906081348783316831023791592504217021837605992848669613130560905389237038227126452231628986545228363054635188596355001608332270401423927918145348897089205305787067682651015511680158054301559388922275773234193965788851462023646673135586399094918610787561319770838092109549383072721585211873141400689456117373403391954299498494885182972860738706878686687160177502572889455023434003183354280430853410234244782661682555761715900006992273552670651556899905357764911027451257277165241073810069416191587861223974158422584025068005117735972484050609984539300773974663928174519943239557069220824329026983195372940397365197459605316255481506734032900937770294493678052924497363293539483084339254604665640238915605974197127395757450890304955507344691375759948180556912633015396577616466834601778640733133975227513960027307787918988851485223728369824268670683225664682242654774651082900877070483462453165609629899039914225139802285370449166298723239802680961200453135871387686060425113030230995701225050480732725602440694204479371843449804240294271314054436106531917949101663579543918347511112979652682735217286546125612357675298112211806750860551540901482416359479461929661334586674767608356400521701601633734456619013191858152373925841612172952792055961861931145393931958813139167976216812049379383852253118731906461003133944238775132933462274991910329138561278920496991199814456264186571682348491282292327581671640915321416443035134048977514353524741402176469713528081473718295835709349121405740303686644685765614505007493475969858014003943962241963346008768655363459190344033976313562302631661192420226306232080538141704821461695229778756727922701919848373865929156481443734027664445069182396064739866875214512898174775335711170390471176531522303603009205087091802289262499195035541991430928852950120258650612238244259372275076844974041545207498964803364273134844067658354031167744693932697200172889900076479384284785202644489795517527875122440773331135392405773841445548723575770484454873366274921172735514439390109292491486271895127479723674360363152152179586627548188244544452690051594888467848023453275504126365810510420352012172112334512369693279315619925280790711754720429666809145919937874889376738404774729768425002414414037194738529561020591530463102524473603259988776551506999041681873383069606920223608108722970829952786611201330375055291630284368738062221717800186239180415397454644660597894415354111705509097843047873414365231433369006193680320895787820311217006578024117097185654403920318645641105322744455443665651424521040016670959577791811791402370464193473481096078847792116717983463407639663459765069187678589099219930100450381994895412888455822943781049170826220454605417769026680684441454409836292612684654620065262108603660428345899570132915902611746241847600559324107680258193240852983264289568240809201631726664266305013439457365792310336295367667210668364358681576014319729411134842050339655401426914654654713051866395596391213456155228634064493954454864658922636921483129366348251739976920351688015891158351369135026241237173624796237941561832689123913589090285204432544117816451579313931328803117641176174343821174182371391166619618206967746369800814616523682938101428934783045493059365504814502839210080422980152562222261864616460372514795876784810777319284838390817472729056907499557534459648338022200321621221227605510694587191751172596951058079136227667858319892522462096520673467326673794183360448269151663665300422849587014649096607209982323696265514249676161134388949051969298905013594106126107332339281407177827444170351769096815435456667937088573411097200079143276368712182820658209195686262288165767956124330939209379992060551565831859448338747728115601747832459040135171384049740959304564357565535188993546484594076904114494507570260470597377215688361629072050342952760156121787889107379258493494841749027212841826314894969843689566279175563042942579234306861632476002728280817509927718625997658109226306354676299724881472840064523039894607687148805195541920160777889683485471344762673182918731224019199051915339033596021095965728777098095796153689958640130871407004610350382988176547081991721536167475157626360544925092888612908260663560231517509443256510651387424668773678176974648102981838776304850677340053673866922135529224516930462515320632823858295444149069615112716399794864127999261621853799567656198504251087643294621884127447709015300522635072990310778611807189123598072481761884974390387208377911546890574967209346737620807272864875442362326967603403708250402038306391871708631310644160323739995838167982318849126993162768896520293709371849163457599491646521923215988944504877165147229712657479338526415655074415572422537497241867833963758335866850672159718889287071660492326830674576140305697422556242959201354680509119688598528643316348653124619657578785125756690588355556771468455867941251294954271322456676328543524690352524795805879876022252980304322327239567580121105894898306111249161731424459409919800421536868211414998415782890756426949128385842183033728635742256272823671539984835578428232971045131132640786188908515036006432270817021051932899938922824134883211519526965364658301564436291591376965507582815246171847379753328869071760533042423903995645272959310827862902634337259523006261342090825261550966274157979762109864543690244951065046812409556934128312112702794835904399159397474911012413439279016981218191206204013848962745026933821831007111435578180378247626972398247121252008957264785628590384894116138107536448637205334611627645724479568740475955621364607301714924751015084924152057126503676658560439088728883913949903903471836869619209552374759283298379309623299297503786242565302244388994789054728878677718694987410746222718345718048172491959073630183955086409033726637737896586855177491680253566895120714571048565107149276533293971616350066183483323146596783855448073269367667976477881373804361548822989141760177083426912269949241057482351007405979590435302223217497599302834261850092760665602482751347328185299920170931434777899359198151876655287708712310090435494387396270591936603080474522335831343147141337936970554918498919094983230105880407982191025102481187583397788499477952973336275696492010648741772154305718434091159157285785347345755653016623685314354204402603479622680997667681752553498008941331096811537330986980023597496747902502777240047059834193888814852923077128847726363537127963971519676848003823817017460460839712587237605194817566912273074630694074821022247175451676191332113004704222164724443476412606918366000846667453500710774205391118777339954096147835196493865482878060802716392587929264877127614674223049372866737011136624072197141022316498693044527443472565650421993329760520701635201516760674396904800347489330910666098825782762946482170876905551867092532466079327608837379923380308551799123654708174237494080213895005276900022474832405079641759986961025030159978769849119950400725143340803413279839846734661168693167982639652297068731194637273471900877940645359205940380646573641414800025363258415657718000543660332737067918107500680748184757593887408753802822924209371857758370902080407836542853846035225394236808095407099457280254451104393324434484717314267202949286578957473884969581864651110246573731040243284525304811158523389553272312655943812364561157801297457016528632542218789035723922955976371729727388627346300278650333255510899457043580548941720625573306726640037297597628685254521298856527658751683440284901065257241294487024055499607818935185905694706018052456671639994897849507099583580266840684696551828058941353486723454239683280637726686490929936397163357084305031516663614827644373396546915861821460379249314957063984276726590326884551796896571616137242423712215668980087723898174607523876328576058849431539636252846146729349866385372956970809970032193074248292446347598489400599101303193006764814060119939606086451623154623007089818592359665819523321271433209113016016899499502221973923513756068039726877839400212222082575400429725713875244488337435111504647381026067620779499911771558319000370111734795374543315703708930899492202074337371953061011365485544730496052724297602481624145956403527309600577101666533519247531540127307161934538389486782724855650773668708332297712771879398543200270180410405448063155170205406737597249917546446355219819460024285980403225531727212568734483038038910457676227597929793329593114045178753462885322748026155082404223283753585923687548066111552504581700510495625205253620102717186132378046981140589831985104820289636824595144056471974613942438606641577764011196318135728160274237160970104089537336165384205248349880796834361553060176269613355671974952968001929489390414376403300640180098053438931280693072714046009514580220891394413167845034151614320360300990217597996430693865959695659183397273602514759495176888226614808882168399909679323033284994970551414241006631620922076230230069554525978287909697714968019887564754805051989429304840119719356332427925231541997839987890362879837990032483854002990248253269931794747348184794117399224575949913604714921734886733395569135678925077654049481698264708513166722769286220337314779818236028767723628518760185793640987984364720718331889303266126647055242465422445811319590541944536325657037571988724409735081190745527003680096600907651520472361003006894871994142254880472633294055350351631440891267953071599391551272071787596002481709799335353577753493699801281751774824009134037756773515687540958451299513391052466728794696281899607505184665755100253371307277045613729633687494910213726079684117190076134418183617286520919267250633175525892096500031970585383453411242903238261251491739409779820228963830727567975137366316202690082390226530892474634552638235370306054466145174152334112736305245773978972385445397798168728949022824263989244750103280357686608951126449107449287586500736039846730301268687871409835750181462559066830432467433479678547855706277657425057842810755023060572998745697656963756384519914765173322402064221436008997342674450483099166668013699852965605024277270746789895424335724996159159744763721341344347459978169101554660456026673900740217997315938267897194282717083930792219437354773045565887294037037068752478912505964911402417130229530559963670519190100621607076165362523011699999434289803196708674089635204098207586191498238269616644271562680089403572700609942602477631042840388944725546996873236256884682255080629669500607767908594894214963174102901915774567787852869256158549937117787046406221713448968948908731042105778086530388622890399141354966415759434520200270551539048171705348035450212614274399630612187262393407968338285264294013843386856972053695307255174184188338786131635038123945608662060197777531141738385209189867236554070416742121944909697249905121906910982852557003652560719421685370643175803845022841177025470722751718956485101637844646680402575807177706338036839895905939330946911740983940800918195321234112478538102371476256924685473635384774957892288372271537134515416394466043930201638854110233139001653841321017581779728111996847939172036546731433456704552943125991297972789677464875042319608270700249795889436482281387396055854380476637412839329081284711098574814714320662548536349972698102263447904407625685116295961889825074738415113624278957498402636760817687707710652463024746172176193854044677738454483175576515818556245839209604129803844162957326794132243801769239974148532094695622371328923872567610435191036073763644034596065996283447530662395663545052023937700485004216810459206106374439142354544450262299312907754970242787633737536031299470594878127139720334218886384742790168425405660665347194214167826515570600057412410225348047303079219039927322769376455838769713628645500539020919373614408199323662883341208361621143040828503797588581448988754770575518883316465905752133209010526744414906973416897812601416514240525937172462250906233003001503990478383846079136627520811693991596138937725129204159448772572573040470787732885333817809248615565042986359654148342313648627974062154417908470726392139639672353320748656783003083275125895594745122608222411004613478516449526990836399104078992867743675911167196025212347359511853900475697465646912172311464603798019904588309475203482364493915458939893953620045979623982449531825508881525549825538911367680052624091712210469775586704475407334270535454911818382470742989231890543827439758526886866578221079411981199473131590111215191826383038596319818286650929783583371948446010367232157119988055396671179391565955601799529394983922568408845556006925589750591295672896056142333593638186969060359304887067452214520469360326320448941893647403135458609509867655748855389319205374435061710522756512726604776084712247389607378523850137087858574613053759434051037871724947821046665157234579878232761297721072953229755910383077862657781780551891634251236728964124253015329332446685282279292402144021613735283441920670233731920656961813835386885062014713527331936421030830849843500391293611837550120322998532295893680039575426050150031460773214830211820707517895768583613980200911233012537449077917042885778531648399054894530418655128537286311554033275255752117714651742086920915864384616887060494656159107515647676940575892172188265329603441927703736253838330181475866262906334356562553097787200288421997990521726843859480625081446563674445337474652046460401941014286581473804134360041784196053755367010813241361158414842513078441646100367556658622807628106608022409955997850378100812681111106549892786846844307515778628161241010422956451360414332502915912278676622166272426903501878084845565109496933615290859559423806724801025142563345008931068470574753057350691405530344402263402792046452762816347358888280805783792423510993614393044382847134059902222286742532530483684723346378618318817333829193411926760353841522248483039551467537544840058208735896691534655547778438025327780721418830715918860076061829034164996358710870004927598108519757547810945255389267471272632661434511799454147121747597826945129721935973203997254257491646924092502265342397671791863811388417232376574702442692885482601256780866946291620784229065009412476489571140109811698471393929528583608221079253237368900483401088443765090590968550023816911426420586296222254850122009757527846237676032871011909294489473658690910861449985160004799633290201110607229129812893939556299910859780039753379776742781893577186932564227276481807402631390005444366080900702643626875382320651189927508384594591910933781719999793617097358757094668587665162819938867289773802438438374568805285137109955346666196017440394963183348202805151256355269294274844923089805622953568950835452962189407509501198663689404056475129529072408357181401859038675366510714389201269735330321582047342063227742553484954252839985398695999769255409453199453335614435245599160308212428928561088697010784938911977412565076688257584033831274288410874624301305945682445607778207920311898569363721319231129871165932994436580354460791446336031431963335323562252053467296632418326206506636061600614985575710565880628749776992810212383341035483553556917197583299060614590354876133659671596043687737552971254754945005934489387072090248204738438303640705417264696168843157188867774778815917959667119359425358519400746290782798691173228801890323360801963619318106856482753541108685645980007702575888833857357983584460286836602509572679886784528823468201211287226783599598860976710742177159450562408572579144348358281941568980721101974913707894968447565782895019896350405265946692640042618073923616839318076785633662901588876968724626861415839699337478927131889237711608254963068754278087931785195213672749080343350854808724799684512671615934210677994542537385549116845103452079293087199610080692940796622593984113920717985197077547845184307649081632674347110107070436759875833147109224478451436248379965767387210310325092723863808859895436537955544545196157075867855181582889123449472328457483599892558395574585790531285533414321264276361588536017692462247148344706850459749277671316165806486908212450583480958281253218943916340113419537065855214188063142547746665540995323184437676285026194244304057103321960649383966885390153357165948104454727389475984779385101915051862550936959271717251118701430891467937712652965065158724803056521586584325121003033395020290074302512798081564013724362658581658915535147519674684294948541504382644579648034221805537037028513936213603744610091451457505969082907140846948146594923725854590424873221639491310060088775102483070963153193397807438131762758331075301781491944188162878826131150026100100719370559537762402583121726311272212285493460921756631678506032327483657252450856170860547995897060672659033025899968806766637085572860134385111727456608034591876003876591300326107924746845846046935665687571873376127104384657849671714644373518447597924599904175224820000635892000587918670706711977028381548645589769991737516919034449012299956126906656844264206369143229751061150487080730674692745662431779880555599114184090032056131436125351321446061082767697814995432480017279126682644408903499686276046949826030026779069004587094644645591838675620012878872668336546915997799163694856063964557682957111674419450053789404678439470910095195191641877296236450539784525674790248588172035629060846466342974955528553973258131913503011476718484348067137270590074941243689751233590433519573435498292736540735066675352430207720998763564638483400877304394250139631235472588290537374067299106492585796664267722408288404867435191295189319071052572449335564536739468426926073050930619379669230551347764738837505470392667006107359602976996794477971135738319214439948973206087506050222237771166461590727266073773889698783822320202311978854257099916859153046153360590993118333670390957352174128411095602971680635382685319518620486696140683863496252021045200744185180662285520372598497650259850901390102748553970161901099044523237748503729101007858589631698832449600653263191312054871133529193339899106595595607554965318872015195202968591631757844371850614570884233213014945716567759870395961867603827375405024990032771292937531352679579991911873846717325980181752413311752199113881628876353573442081009174439459830949593910382469729191200781276720062468411026502593429627343843143993319467879676895075144240379204063121436554838293266650476555022193581692965083030916614838106636922597173461781104955271976659567175754753438640062031874444327430780716247460027331633427197397959691030062322213653157862313124442532020393135330805261128266646505174230925941198634194719250575023114066896247333949004056101543557045541735680674767826679675126086912283376071337489556621431758432289194051539586188211666590287234983358522608048229140676854938730151541601393096819771498578157029268045374797973174336225599001171429297633693294257288933278138155371551445609202477834058595412684680271301863032903407335965866765483888906781825385851184601350679914436919234422530184360878839427702203902187085275638135530417886567855946565627498451450350031958870929632033236116104857817858183578588513504351253004008796161351991724550779144781062838854666913283348969829257027239691540522911424092925361546503760251890548486445338537612298225624519197000631181477535333572380845891548692379463157145374203328559197896933019642485359127974375084890980524889972774638352102455593375934996372335359805355190213779369268061359704428770155577269754623990632443222462513651521580538232752998853582932642732497176136886042996717006671358829412804885933956651187012109591163082117238457860004948166461761410897292663146132345642057032612369009611257476325688429596278509271656595453916029067122144393998303519181930717924357211152949684129716808800038483742795236622124170291185139320922604033828266454357511496483149385979383912713232408491363950588382899684742418292311605383826315778237934135550586999608716842427717777425607496594467786296684639621279073395940565530569488860641958893661649411854187655344270722158061202699712413281244228101824941907093603839824323359755556337311933864989348248847041112699598430534547215757930809185785041677445177696410932303684217523992043166544916441935921375317101107704978664773604242072365276537117204094520222086818316321680079776940467607226091749754082429653781985269977253354250674053331200592778097069257779699642208354751147707902700239958737190670819038264983796312050878991634243981476030744862664455543166942819489351720024852233649275599285170512779148228928044097541340897329020710903205920325077099952481729642055714787182144843083925068064915514284613561093627889677766183562652259038107044632675735196988172256957083991054448913589745286476040749309001220945646264309814737325700089883831139661962017650553861907123088065980713841846100573178795642300584207522108410375355870297657338266179189938862926688312041873023580516989191782690177401812548939755837329041776549228542707198441816967112010592722090832187433743821375743395304559696874332430428994890341714818822923828376247688963431131668655674774924253393570750732877140098100072996392790739743551720357109518395296903471221169382076924417850838098358300775691215346394282453745883909753823891389620982097538410362675286272631545003255502066024108171268115328929663348195802418988526722793888703898916671569104242223484566710985589066811229869183953617832401732572568530608013078283724244578728251123394986526802140192292379024913608594018887062649822385555590292486095032316746327914387039748461395724586133985915153725347828216736712971200164613445159969587609316644568647397150159312473139479528486720741793698647658368179102815959977896492718853995571116086439886784426020531205230160399692779086774076981697989952557178586174836996329373531278622321688038289980469070696281068455484900178590663566415503535718255565561024600900956582181988235347963013586180158315047735810106120615021525622830331826509482451784411406920132842971367167036194563406139566155826114676471556379933541952495422935814628182918631483146589287184609072321629903758496981094313898920576951462926891361587675192609089548209376237880447323108062695143392171449801873461344826508757826242251992700624822911176392674312110670532115492526115469124028531637357917075442325974864799447034149891916659709033434082981462632461256328036022770678805325178244693597396056623546145652960776361139430969265648091079882687689208890592774275785578189360918949278771440817196214643725859236741482288696652817027065616701840757554388973323787676971603026989262049053914381303439615640702520204342895941963363154974148889411941123107075538777572879708698595799064328373702342373216749072831810768431526954243737604143843500697962785866914453506630909900543894714017743058056808291260287463806424289275867563620493266666448015275390664048975430824630151644120024559100926800891943772758088262163635487670810904502071774232639929675452320465647391040736584919093600945381325093131670188038987708933645163130747846717815908251334251585855993968476525728206512414832744758478358194697951611641054513282303352093191934456872183390886276889141718814613318416407737711301019490828935772033435768559519135266467967738704962933521090200425382564738272190270266809632522734737986066983250336150630585721720135411937550066555294456334536547582763887261571995883695874760241772770910195630097692445528896574417141318253158913602803250869730018713181394646105512095671378093192033614780724707538102304521259994535289930228180760472088936372404260507280182806000892346463798527933801839856056277515467777401664737358230783967072043751261653410549263066526100683365612914857058916852631142908468951285184017505913786569954550700128095677380688213985173570778926592369791121796771235544009900807108583111444477880649437073479432295161007827024743340631839090260211339019705216325538285219321145779731522110966960839898327057325826064944224914015616547027356559962700891039686971095986540625500198264959103669677377699311492543117753694202878460589155890643953063613183556128320963884745222157947834218125460685401506866009240570659853268494925008721513205988601975110439917854647514749954943568366446506188096567616230604456181846580405517096616717743643305807327897192936057362664318208035813086969788398653853522356871799401055545000724328377485766944490947877031949304060194106034570314824390150705875076244987551533213241821045706470889197483553283657271907524428993461308468753878743341269984255652940630581531557878761224603305214435109241280241531589840298580141397403494948761746195400333121514100624904586363274130998294021339161022146998221731105477032819924054850399127542368343651093395625680279969496834126412580972827506146480154485050631216412386918044967365960476422908354815578240173187348588049844122471606720479966666336194357780315446333666625605550848971385284397095979977414273274673684718863011297981167066726292332101949371410929205960300646815241962940653103340607692704677285760322021967730343160793658250683904622570911610648624965707980437199698659647915227785318130333735941609808861493728926145699301920681743631435408362129412582744066289355444972678444748049110411335142477528368899267681057797479348619469385394112074697885930221507221988135851807777176338455485358451100379993852285473121182672784269284429167471728669468337451897882535702848134873268458774240782206552932646902236362542459490423115569929311840194690706459570262464932085002899919074111068041842403966897048758804841466768633651612052638713249254599947926572121630092182121210907707834355910827728064549801002198412395873530738022007392236989009393325872162839740291781894604338883381616219284383179742614581653554467654605911739198082532928030171050938078768670225816349049611745867933021564874494649882461507702477806634367226818595954435487039394743854727977609638728342755017840308043406596469420450058747343624866834018800692592635571436441186687590684642647246289876981112550291066366570322608337254909979222469894503425347517038712663493791243914648243684778684766504325088685826806997927665277954947920797205115454972016445872909457392312871180489129032872205227459277483630073876435592957272459803681826380572609912254986509214076857602838410233489404130919078234659290392703938894716163401758191521735549921400201385745612651468975974851277910649188196293441908089273872159996240196127508387139339182814048366232937846064783992946105122346552000870012800277848313840533288618789361634807919670138818774248168557163852505116528268148646527072302361845352523712838981824034111474386241140822394469017813562412109213847498171004359906207216488918872663026052095860019842058605099861643531235256664110253461159916634232785110369241714009538048554767950456453325967102780760681086796807520865440413657926580425727895089308771087076029152926681687741560883245538599455278377353139540521527986310687530632670826046596547434253343130181570596012800914016950032879593893067883866925454303800393133443479174793062280151237992521859568616344787421537581655384211538247602650016260854016702642330861513300710745556152143472582645253994252955676377280462562912559556973933183496428472998654092594505287893816149227435513676342191572479318549397354725465269400204807293951781288952769865865486613713453297861152473866684484019696589928790215985713695586635371730151112324737183500074703321903979481157479610996284178010419989675705108696450430912862899088807941688058346712816542937237411802017598770330168938350913252457175839057845198960810282456122504345245637618380510369254932201945479756087668399988575493117989315370061186159977388418097922307247171784004696395015017716359802629549807159146138102670632471841336981326306260022723593618209345966260832518236335441089724002236671956221444545210675352349759261299209701955420469851600065854276236964246401192831163113082480577479994160450937994821887774069507372777289268763046034161194046234783893304848435272438488122529031866018873833290170901504662149056199846391531600393429988240078331888210033990065363670594754821474006673100931708837875042782516463322722304879867320421048536906347133560229014028157352215897112390270712454587186512683540375973447484381813286341264020089466648100089870178502078054020018196628654918950749319702311474584342524694486363672616137910976588425079295775060660775671072827596610280329653327303547880312645466568644498492593748445387496530294333046580676648833089065398805684685534954513517005093659406143976372080272330885547621981612862686563651782110907807193746732445941144811858292974282337024362056749610450446375814083032983229055550994376230883203527143024726364958808409110954101605061468927205273766986453093770407767562033581967399774185055683709229020208402210840165971961722892579193909957706388718063457901552660734657681458491519178709101379238854901538913445299804644635375594845614045452178124444502688262310864967203627213682402896429265298226150987082762412296874067082668559232277029972428753309208422851641815141942379695611327260066233538395750342389486235502098937471630160122792592348482050926720855640636557050351311905897242924521040316506686064886135944756998046179562275635363600740387249047102479136045672609475302648566854825260612069491483378413838665136507787895491662907199343639574649253629217607472601708333485006558621821496698038295333465232716600502684817367545004561665179057161403254716456762168464735658798235337234117529984404975074985055206020760557931662345651848544974638408899984154214441273096390794573817752823535152823984051018394899556547554655723653959913291969769957292939017431362566347988448427276514392457016414805897792007415513639009666377107938950002674575963610878355830561183740585606039840090713858275443388664026234594344424433972788873764078822489187422785641642165150210327174867111956299260653973660618023531115173670822461345276260937434364385437480511812501327593246759996733721399291469455837600093045622944014351981504821614022940995819351252580562657306785789997202210999148847461217988115398485913449220232566758442615486881375618081910063841099263293288963828908513865705714501209005697100463447109734572736479319156253535172785797814609953855640860730735203850354427610164130582998383195431992782597778418005440719862760526490099165409344030576505710847897653444882175206596303567042346113858056185250635112164852396305571919568436720332467924860341525752900362751095053409424007500841131248821982219243333197870361208612748067017711126404696952148559116822158505618571898288643928559548981050550649415927609758330479802525797777616853621803309136172767581303636833329203990209847908268606234422835913486189529200836393675818665627006953690378094884611023241913857252277221507784576670516128326182491262162273286943741522805460703411385525887554492092003967263604772302320511332060263400428954151061917147488094754139846087842767033885230009198486706586156747836345025584331144206927312820110424722376024522549118972620192112930395005380108546077150477864308458957776191416857285314975310578604160585219331702901494933783443632015900230530391295759448816730236670378521270731142009829758811165565580260634607814439552896803093224192263589457932346042036675375288617819072936494273996008441435419593643364513707350799963115285300405215813081108258805792469794739018549914186347458011643920088300014709780011395108171748962424979855692695177770621526795159247423315306674834725453675930414393071319701800038782650875385190330450062512087133985073654335125514344497987553791230359542060778653663800993706088771643332338229069991839247024049392187340016204775792247345032105015252491438090275800310749341846952775076389901186734451424239742756617536038701491058365247911132097155374976004690442878245623990615777617745952560135797373769867027196210120554267637110251150204344046075741273242895435258101277969892053715663935315319962048996607141557343645751288768952117832032750402355517377260170888309066762703704021921196324040452250141081992749800571043684518525315812310442037626910984083821315497891040771427275245170465320717099435167197364747880575886585256343950647105298209553302344947242853521690169332983235297712315198487451625290894023102709540075008517958277801665189260454788502762065822755777091989783859334379533786271030325511572114268030195745212449386062533822554694517191404305976759998189178846790016623195739604550803530289656595117879710039069657536473615640601185166232571016273888972860383344371943748429586032218052901187656236328632439979170779812357135678494830663060397788109313116273014127031000761807204454934821949412311117142448490553086120733240062089732642044264926491071470268471532659608102607721022894280774341096224666469220808201483073805818563509688567173946637819507413611116960984881688727697242969076293587140108279289663972379925639571909359519497633795077300070465890899712914654818226162493755413255982930160643252353613134836441573607794195484550018339287090513994669315246952513958567569759326430289785929947728153187949228401217619460288709253723736742563435551977101083708321041614265431280050125135886314918405093160743660260233716836133621117303374997651868976484638912226744610386455390764718088255005409418282233404833443812681869113457030472028049314984413744108266245120390459982632475705320197838293188245743421798074370240649420336166558876015566278114105313362188389955290039255262532047693133301895563085173969582082162765838330044416160145189173596945769103745788906552869322315475740505537564109976396256084039501209443711326684628688756756063504619723238492864877567619457371121902437504332992414822309762381935945431440696776748009705754334918509510092122722148723621532056836902185435208576649238104696547553222333828326500923198124446952421745218201837538638915965535674861595107596863915066757577642731667816351382680656384087519276167626078532632689581784524294427206743559983343721301894201541448038706296290600930236465585682173487949906314237497472187444442665736325804091710046410471488560639146212985055405848230200746677373064074844596543974334837348353486883280845889908195061766637640718845283898470703791088438989064531668751526815141044885304881360082536366177503682659059245244284546756766737078969623908804681718837345614414175214942325816037979101503964440556468582740281167569894678305920462736023142045805110534459098065170482635359855269298392626974351482715961988627919588405698694598718811517819293572149980684661955291975810578758741463679642161794951520504280549749384080701919558786721783739984366837474214906668017055455496648395157782279343151859787957417015166650927218781968450056010540421226597498355614276124190332131840653387302982823086121122256714638480549119152313699033168135694351293740573212073132199381685027795007767055158163064486198321514588837326869755430353537319050091161427682638806123048476033093870887420374691200180513793386352643539993496156853529664130400930381673699231349879732874144749412760534553917786210152681696822545577542545020145698821567641279581994130313983749448767447426334834187520245477259207226691912382397401724110922473600560115306540609490523140493914186500732241731775028623173464164878590305705540515357473007745746436024297486629207589521431194288035594558926660040048451065008867863949508294081563726516276668171639825203926627545140187473485994953816370276379335201388387307326912450197349545741044997582130648540885504568218838491577255764288709858904305220443514063305530701264321637586640781378737717441399707396014289070039178768663004184503615612811879000661893820588601188727410298252366512958985754698429804195420382573214384853694677041826302060410604793606769147042263358938948228838927250156942183915136227313971467198271192032147876880885421036612904695890462072936216572024470610431600562202635544345248140674808674608814239689597833953539885256693092923233513917833544526887564540047555380612156302704652100968417731018970494480947855945364771940755366017044348007750057155589082173141782807726241027413143715209706016836175680388613189765696642228593626122599286679392608120054642096661508619858267892656818005772069554018459684847922460440482357458410555728868701765988875039937788291268149203563329460961099477399712673665030975299970132350955199054215449946001995413311192015488509423981779360563849959092261565753350673438050894619726409107555792442769968763705226979350836048195853611961608705113392235272114789059440717283972119915735924610654282782548358421720338914900872872949733235100932518892551639093179027367734137923815986043033143779033311807790853676545354887775043336338770667630860031322815050352257075741176144219246487510061539739918444368477667743372051091913661447142122740850017159426973533496188090506616774580100777848654966033065154222008375278693668327597719221158888561223836811186084019987082273718743646166778265445077947471467448298749707745120400058984297390362281409606053269560109816928810429924796445264253273413252863380357552136659338310970999148034647035260330566398163597950512880860807233448656896558598711910882252482943731969859372775400578338830330322983407250077319278590831675216049695178691971717566309167047350753221943658796802063557549541003391372953136046092995005250036604785057646463220321410039063359870587413230056119313235906601690818711165651466640199740227732045101348245841133094023950591438328180057238105867616347225345555760703204034676891528836088759849946887980928852026017007945973069298618371074886979524260421799975997669295023814007601505870458932575527820842438932510249785590481724833822767291650977268646643966247507010924188836451319553545987534191493749620167528743007226690520125519856997979601091780567419439126617287434254972065690297355253604499023003983627186938903834853453229776161357336720657992680742056329695229957100001061556366575342871505183791201688108021097628360576670623762055921270648926522946585793595611039503583028030660128719601978204069500298902536657581519818722499007130546994343288953999518798388104216102617443855095591263594223248885020734286040186914308886079229613852458307730757167798415997544686860798845148568975408917181550050497195006802192902995225416484845662734716639689629865724133940521288146687924221322699472663924307983323296912956540545304235850704220932086774531734866808508643616537345680146987581973654708799765409101415477323866409620574919646286975409652254190792893319144461661946070953485834162788609341881560675682680058088876406629023760316295578342378601408885665481520284135733034888544478339628951191441026358768921557748690355431905789251772230900846863485843560985820586293675542626540690053638624061591023434444348685494112787487795984892078587693766640914312794816740326204106002543921652762053848132669099034752210383757234049749544025492685880876776820498609387698240156470695349315743464355040660434276509414337409439972112051182148742783978635848072541328701539152036571113965994573880820000885505566578594790110333894029943229801910836439430631179511840417859623080898551714869504500256288219715996485298049161315186952570760014607070149790656031367224894945864596052656105989304478722684231774045162515729057111313111207553189782916913130278681049099113383690044846806771845357060435683209724019885326573213309870284046605220725709343088465539680444040456748601962385079947505199347910573898382969004455979966978051634659093356739891073702270915207549869507666527770815090060173835921079334202867942228791014962314143423445796302356572144649736638603199252879178087972588740808515955099363333936157015343769188959851819980599781896445466589660594980004360230276172999820274339867637984269758897545424523833965971169130916427186931861703224455919165223334366969411879649755107746686092427071055022475187698549094038374273258200855923281868455634243009255028068290192095573122249751722977463709353921611728658918801954229426801366157883821846351033970037520348228569920626100512040362857722492404003161655698858584690780304791030349378225271958123948127899974169247804571958762156411264606355898140172016431041232275756819696575876138914933809785401038433428519933499833779061763575840355586476851182360035632725271788026134512662278571190253717674098417151786106047340712152197550591919447336734172581895049966082496674138347273700457801719350073465546337409994909231715842617742604354708172932972508248868783158449763478332474578734398555387595728718696158910074880716173585184914772704493402498157474522615378262189340008912437865968123304020454087339065355209895259870306761585734716827928729223695588836759130518239997689877659504252176831827883607814089289799292178098831403762591114005964055844259243119633967201837727791632239937067986668108464320402489776906095305404688528210998769152906261661260354041850564432808340425746646408661471870910886260397567514227333828791218028323269826827863901190444507198104479286923822606740751611358426153773611020668001267603470471074059857844360090635058930854236105469886352067285393154017364685423099213614578017725571162360926998393957924140791902782357480613064620509765732124335444001484723288617452349922688552274753570482736054681985882605501049668330598266358974042172870803537163814597494945657751452127348307102219338972653653634837073158521911702386783785427240240167123558476249550023938470014188923037510846559673969995466640302414859895837685367630944649128113939276855839739463572351794081630711020827900987551673352329478576894326654309951136763115590059031123348424842024071757871938347815200059971214084657521043438352982163050899032276738188673212252125270995935454290067362050163174048005392043824694028018207610839402264482020428058837292420745047825226719132888883734047173750579216812870624388998168039443615732080421614813392250950523725054147960504706972629055373700330346865431494445580140543460219456845407178182907192160122981406411879790844858889232528782950835272583011506778267784906879162596027446868990682481715066559758568673104230647684421185130073208166060252606820141143207048244134683790116775666593710497048608362776486528260244181837007624079748683304624689645859185251122406013386008639323353118404993024019101447408666697434121950890296210541329978716701095422916750079209509385411129519155739338464094073742663988161917215116551987970309126430953343068846342870550056814736292533827526384389273584535420701031740105732935173433238064490735884956940723828416608868074257356085565848464973137759065446826620106669103077349690215037321452174473674969961379421733285964762951841819090245389940221422761015072850241987312945255711994435513092540503178719370143778212496706922997394560970333917865813320160977855131982080072104290169921375419320631028605128687131551463555204563341318602378522562080432552649141711309542226785096677690542446219121434022039261723212316558591719122524093633981537510504115618568898485822196122543610605069544338043293161695680282653937981634947122194726712100982950917822502040920681847397205686846185039454750608000243603628643115466875632631461530129929505233490232187891053860294537019222904220523162906654773200506803400325358821570062672996130144453361124056661861861263035790694923609504908755299876225765851625899416665055769057211952307310613366202546937743748717996373220960256979339579946730182914835568852929528349236368201003251986417641386046766107953188912313642305800349024747868357891584964454245085172262305961070721542291419084759853944525694414563964173482133780406658766992259280678821211834974471460524531418379706187135035767163134578578659918366555853097499523827971931711753862773533432609448511746482018187367645570551407002123752749554766067025381787909345501211974871383762558858899689246485361273532587732290043055673868113322779705805816445024223107563692062035832143366022063346241085190578667966988145810109592180708164879920608590800902987927175492956200989118427948106705955471815878177641562727444987708440495164753833510555508047494957464884408060627664320605188967856726491961134974596944300319928017438971876576847722153949679735355882647348891634716979256095718320461630148295626229221591512524169343290484151535843042925122067014029188935904847692861344428434225339738899386741874620779114202500241323101174174910415580647676889572521842940902341231936435303020660557499999328021043441176319644777494167578353258309297802989325476895545203788361526204098070227196977917454727150524755456343886920867367190280255161283101916076591945777297012759629698944231105742775177055267479399749969732966109827578407304842008558567295836033342068865918856980974172266002915069641869924421023127910540542165240139716329397899704308468812740299509914839867629193681124615730235779395314680625109633757451680266699427020920022866447127460691275828757817164397386265391895588269752330477550857979552355371829214493084603648569885630700603685457112628125707398314816695079669307364826957817693789809398604500792864246712147844552121121392188694625744557788405592797362749214534737945825836375463051552714719526418366986700817112028480023846584200435506582193330343082486340860705330465194612663799879740482205262699070923888580468299895449571417490520279013381616648341389110944771072038808115710120458718019329236994530930828849502173734041711611186452644736960168869687833648776556892527182182949957401835173752088007560837799968866068693114061755993848609607983787994118520120626566483507524575174908976458551522823762122676867139343687942466658151628191227150784468416740006644850775076970286435475357328136133225756552524517858130328123549997307556759786121744987046328395249603747188613305784435633594859732846267774923768810947816507480478628247791326212249966780486436359927370939409925258926592777347796680261822298660478693890326298437101151636913100418688500103034330459884769512354645970038947391943623004115061689905440989106130940232746412253253729349311359258664142352944520403730501426020677175192452817590444291236682782432450862588542184199588390788053342217616956972819435107305279393627721561299355489611141357170656440093487788638589409475573603214574236286595341544565412859450527203994189918044465326749189792145444754991120623961805740030325682054771370471183792524828253834346284523004423101630000067479390631996981210822118004725009595601890618943442121460587730460696727425280629795054860025055838115054935838944804559959417920441454331464649396075164311165265284636946013757952504074156736739843613081851657257488669675793692215844946294016796636595549817009776182348710094128097257311832288440910592777087749191942892760485452547661845848797166209831500625970672582896482378634428889097418690103876467471248218109521969753246804660615618010150678811133994373221686953781271790102584435885974463518559268975912687901034792993131885634973790240939523133421715094219106593674872025013707398643853469483621951481134713779273219406790329998612584558767676598117062667140749114507658760488838919437912515607519822574689726978779963435607068341088228093252110085789462425404575601419050527800740789913135099750114360178939445291493547906394108408021551599680275134940182370297952237498455795807937379552509530079829485138422409829816805020616787373079571810891018568032156977568119985482230913062080634979003645305172226529096417254071797986553431934474360900684383370693829724293502189100114633159415356769228155188892518241516597985995377966273627506996244667061713377958797007651345123880549684883822117336902136174871348453595110688141452936143161232678813422080658541508722117025997558348773467366151444771114537115861661677744538561144790643580277289731206624032824314169443077955001694683562225094568608762572116686654453339599805731406644389016759442069995753534569156926524660963363060933509625891506725345777005288174156432263892592696769854538367814016673271125553918611722458641260486882849934100772760617375701231690679913967107369702189687760724530130627320444326186839467586465041045167754421616505356634770012661300297195851912141229791139928607884136143909282169230313474772166199507020591508310014731548720948836818404861005154372939087506484135836929788503113878706975328249696817593694065897425715284529068653207051815189326481993369913719291034914796803027013786669037619259127041365624129005007520185480557712269611023931333490059947220477527704732093146692956104422268206518960924757507659148145938612591308759970390889316997510100821056619342369051253221346537596210195535051613884098213597049200369409375638034048025884300781855670392818642635869631254229597635216460996612451417559146535332045300576755172807379046656102687560022491119301089193871779796445700330815887634654471216957171711581536896928674698655777813829581675741361066051203795630684648532187300120617351271020010798390296499744707291374903028364341893346479037010209036364277340704239829494907670499558711040581411293704944081809562322220402475704088921944884055134330157486462216389910030681984098294093995183231692764725319412830172524010510342952461594839768655037864861720606155353832322828409370850023466745436520025068491848320566514491724399084368179725879307306371625508827247522499584652236547727070668604389901868908399299246459472095506899092374215695934142202511923191089516669645461358565724676794993229788005774456345932208704023557206467304186921274468045707018534675090874037534529271096711500332898187558013345126779689368991351284170137313775449766031661408305231854495480068087457420136770183497157699836331937132973040653340308435452302952637520426819225372717042655604007960578705562871719559111790745652632126843988686356389081477760674674939580136666168676132789141079340989724106134057995601787529190516003940464330948910991173228113399511153740445903226800575893035111641039678449719226025856893830497170870919957345173184673217955077626441018416814192103494206239128941791282551729133670767812909231650707709546704870780300886846397116900804074270677325165754829414462170007931872015706278318148692084172926665028553434090885227557275572943755820103715608366657138527403935895859389095090966856517784715379568092237141783445390389216203212519585989363672474733913458143733350664172063531702950323059649399313479194123104791088787346461268731324335159054853348910469974730502422302391770202709131590009101177146996020462349681183354549563911893324260111814618830764118482402228823275736208378906317754538108217258208610744905865967248506829210523570882377061441866837965079661899742552081208396203144918921468435474794563620254225872600343747010227615328277102230688352215636809162157068752102289456169920419406114483155789172537341497164875316837441529449346223460545527564492206588206870564784883294098117401734570246289881936184818400554525703714416487606786896244532640083923215558317123744855561266838209695530818452645438349199865715603331736906761953029936856361300103375455621379909571999049283628950258253582347283635423743386837545299077096654876173399645500475366437414029450907811787373670683612408755713036528112782818485508663334979030560822700186513988399958407464763635580225405171543163288863041455058700393685177660562249325820994451369240986459326008794420232501543615291279860587531454778530603523889705614450839347268930939506206228143306377699776183701334647798427683702843415388393936893099491085556580692120969003431720835406580921751030150283464167226858045203417530141721047077118045163257790729891125922142932627857379025199419280760181686362509084678734708015081308199768288266572339458721853993808091567371734933499418652949520591813776766155816463024171564100983097088908151637011698435557598530750101585549307265236153717827180863033833888122231991652199148768436193349402818349657115775629927052909462713499811008797993615979135801482507575686615899363502776445694175697978973120663172590742295402837399608155163975578444152748960852719036089936092809129422513669966156024221842253892940276318927325150570218401546348584540675698065012395109647533483523302865173024886985189849205790342876685950435265627797832689937347836345212023352918238410443519567618059540696275151886183013318739928401556596272420437413552007933591761621399039423482241846022813760520414434319453176807759520227894226471370450798583591311848120644246484605697971464065385728880537950075947273335912964114856790932805991105284258688230786295392549126585993112001327799792961751620184540881157100586395247368310523848781010151574512787836231221632922603009831234106481266032166904318999184812375911094485902669070787750291705713462617090301399008750881374478213591346374111595842225786919277087925576782015419238727552731716407289548106071997480772486620431682010094536889800691670337662306473677509683563103984421906692034595927714697633220805457967718869274845458712227072516457982264490283494910985456274675648142094551028605036990338432600441927072796707511671443471878560065670637411340464396996310407878983588582444182030375786841773170758390789598966226026448867037746702307398192072863046358290574975864487502733478569960365470543072849313123858434169732448886612506870482355646578196465613228443280686335707813515807427217958305173107936498380715993600830773916640319646225704507428834778881247531223994521066319825563589155069092452001414845833609517630197067244500952647305694429562874858669127339827224716025759822263386953876009515790465720797971302092048459829083092554216368236594160171851206849008756263859133004203424132720613544265082405993075273708685619799555323666631886053343321349447534650558302404920082519285467426919210467033058999810782962766098911919176450095236040548435321688728620801831203837302072202752671899694394249928152374277740456592335042447569239310726845766665402908685370333659520280615052288399625699972987720012910033652048424709974202538025884176894528394003587766711765791716224611012091755516185036847530164111306183417868261188990145225921805670658064032483937182634655426588680999960103148286839844177885722445225282834115237747496599776107319292453610896616600540683467013613765551331016618436144441949303480176616251866167210708636913175611378288039516468671006613838238697309251305022135768849864974285634428147511262462210846204638540173610698955688185524573557765708065408768420030098505728105464790187719179381653255013557145904021419471139918274176011811796454825087167993274821894861543060711755002717778588925990020150703516705091894760841627279234897087914228847404432396080999838575083588578855363020178191061390046597720298847669921582795845991957004336089533629656264920788622080929407208196138445425457682148381069879213807623961047454287449059885834712857512064498012682319595640831315608793538436155303899321394966845637467608610724318172596367646882908575468708576262768768456324238627899014448310782489755993193341945529446727426022084397363470489230116190419647266337329995481235589702575876593035894289620470187448140848368196541160011758506400385603977806956562783268248760645229581076819643019132894521205757631020188801451553127465980071397301563203449857296445547694642693987752823595337366987777894437755043644637002505387105747186585009853889407392787342179447047541202201020294500685670991875804300532466801663000619952778145189493298985324639952307993187914637441418670111522827641390580497262759112988003567952563002745064878162300281220205275810789668707950652622061264851251093755506961031781495759292286405815194767536843674491183885220708878000268627459255087203044408233000771420000923666216270136355461374588874150202086321290876186622685945553221159797660302865465077926231785675926085467421672991584383749147778141613931170915340750312095946355371139134346419956497238676596682989803155089355307686221429765696343778586079294947892409202694848063722698652996705069249170727524890423590023027877097045975837671776788667077002801736320006875160430542374960984287239655398601216154136060060810986101642881580504182980214087447835005690374227340565158070768289884805010644707754437490440208657034640379303261334929934180468521210955543485198440240701186815951199379894599837901315195495565958292249923405548964623970845558742255994185831634262939772329351928956674480324362111080106930120112795545157055931306010267825707718249827282977392601660543179068199810256824299457581123008091386610111786609307186968308078342061488422592155579548907080633485039060256915422772024995823826567422299981476208075691992895977839803892952168029214357971493427303873197559374611315790846554549093916128855039279820305771417152634649923392268797546376051114461270207590922597067010973429227617958032779702514486919325167875202563380888504295830767454732923237167998285105910178715544792525397104473857053359011976630832050312133323188065153218485917236381288710103166829963754612954403796442011546020060367866220892326244149673600213501772028842101816845370893287471755732435830378740200256620104231081473648100429189356458792912941892334909420370762265658367678348833249578289932546927635588433561584547214752940063649365870284508666357468251682042076960595279240474981182688783790051704214097775127550781379779149310156825436723737111094358800113117137865718519218643733567768215879851754126191971968894253444818140377185597443623112820400916240649712693052053259812843421836352219818076726489274105891673990347409056840308563472641235548775066939341123414473328797742448996075467442133515003641477893819661715942636129720571133134515674416151514584070041768881532305861835563185522543924214019613407753491139415165711350655098252127031665353560119343714357613826833551687008060900231733432942929574650665393102589183842604997800987121530797768242916923957104143003964948662986685014379432744697043366708620298113114734619301283230198143756319201222281582641362340471184867647750193526710702175364614091532361510045040438065776956504075770735685225608698996105682038804814846006179439331960489012371596741682369932966493167386429312407950507876007632797276422432895494362820989381097402308949362222772928873114834217920165550312140735876395172288428300811131741972439966661094763716989053559986411402892000082725632414826317719975618288283145715563811953583736883696091143465319690638988015280797871179321416776500118352637681686203486285148996475911822099561231775609153703795099363880324004397650063929969339747769257056877788284054424555979893562051814921215850676666682760342016414804564265344125611202402967579552239145227635203020300085930047444985236089191546964849950595081128865888971396166336678846349260852648339639320619521559727923923922619426444202954117764600024819515474481937810809199997901608914243444005619897989556157898580703428796066198317717135328282089978523416640147659656204016556809830891493817413396372956263420935675428810933322726945782355439922226373990305472128548448856762161581196401749156655576196011817007835409944828136326732891579038465116967034426606734927558996505281684330603445529157385998290324471284704098669510389394546864671694110689258415050686712999652862939787035722839534988524541805985867346754486917738955728985766836734814965738821752331626572447067159379063663252532701493663430244542557428208565961564406072007209738948607216552351735418796041070836001644824412347370324109724733256796056541324177751832388488942361698454697589451370565535153251814428082903294783614566285768630469094322124924667574088122980085758669703911616777717589700867899742549632754664815375922357609519077494119198456057276977245997679788134974519039955173239256858007218735815236521795919972302346643653582073841787462934148305609436623721077822620471221137463367201084248955882276754614625477525409689015895684798431620768858201582289065679852151351419972463793078555572514890152715018290500348013695943981355016411976454328495645823774236258107884227849348958663602373888582271554012173447133237026985013075004900713345464769760823392805271301978866076419109844108723138308625838419205014958385386730823346861749499743832788644478066753737175018539099496108866196894377493004505094591921278012816482813551452042503689519169750575454635135610321083835774188590641832876866740859842802001812078905690889421852567115144598632799307775588559694855986951359693554214094765598790695385176398729110615813320418532213367868217182054003520177611534110548157077447109497222787802049747200675641834064822667125707710420594594441348198287214870375037652109348771568032011957427406426199793580481569092854360047749005108306671811564113010373790433775486930165930763781267062417671024087742388540571755219255759458969873124031074940892442413485590023195762564905958345309577445110954211491356812563109680634058217555515196027566133106823944539741089472953425535744680828903527825440073152408608941218225276196885388064592826295994009485520662786722271280049633401065767096657947120985861653356312722869253720194368470119238826626644439448748787541098344328820465540623078954097427969776686660346126150620357713097842311528750167497523051448740861764075270595806466202911115402722900851056767925714958419983295029570795037455063089328129063096481383441022728588708802322981715685602783627366547897665577612842271730131245400419434353251417579283019331724987044170680151273432546178368293093543879025156072243981745139225869539868959642030994872735000580757603242859431287629746040806813410831795768957133224542576103618525240657916525935486430337410121447306421184073130474405282243880379918023016666451917556127744151817240374825162225107697032860915835701569823849835199211500217465145487788773347099759183904193681378134896228470005386011345478714168265075140533686137438055926706850722227412208409241035462611142837841415355988336485440908801520406038501189546982065563941598280557535641319457368560453200309748399497574249395154776925739244288749312550557223691807115598120308199979379967246095004930035993249129505563016473937047870732925525080305650840380577762608014510941137836118866255272641850183456995817411350259937581950686976015782334717781021707854061292711559219025758979320935946101697307151587896895704205213554588157613802071668378301216578839727423286821198339172162161229122450707575684404238336320120032072209763233302680679646119459456915371490003578334901389821800610828438164050762864681512250493147472310029833200282173620246782799849514847364618249545485717421259682164318988141165257612074070783668383470046123837363383257000825607860279521649691248754116544980855396457614354516117424945626501568261013734252633875765899363635095985611520124438671728005089755759547095350341513215982436167300823762527692820277856321928270658678461138175142714290364395280872901497153357302391151627367623400159972079224288050166483930865182642393598977982253096860527283817794218829160673218664424008548434804722928605012499269305213404155659537975226359477375910057597420992968082484085650245688914170258620660108248862883562702944513782868284165482231437594530724847065489916595535260213745569101321053089145470482202001856047824467353064534679686995766990519702475255587257667317788700708678076912503825406119118562904899666114228528244006570720580237219093765332568734835063391328429568538403288381547501669618166838686972747180421041578101753337651398664223483091345689455001386916767370693549402299438353713351902829492535604794451078750252473783985981319253462255229679301552212219276660134687275915201179696185076004533815046544705323106073563512582224866212118603219716452604055996891128680702572629919178894574995437973439570858340894093359530114579532756510687087847599297936422935835808584525823775459317758338312367547685118096780173684074515385554566039799627777380591953689754387202565631923803561050927966910617893295986668523698980921539986163280592867765632659171660676316575206022883482778110255118378363887592727072838674739388385948833043825371853362842896249646453541402773198276954179851001802304812404023922091284506102394457158608093319555186545196917279564674819785406303899033321916549742353483855336546256459564486538765081766428253948948195878282150919431557856564878917587185341017256087140874477954890604881343435655000549089566456288096429709865707652584613325516711685602573282819001972113761910000745725241945195060293817276649515611034520576887436096679819079124153464747373260360324167473368129661988316342702455123638230272182322231398554083478396535505551142162608879173050894064702237219557943761228077744114537257066152403922737489027522232435475769304450747719390772584789243170939747679541401636531555195099239369334388559779296088700397295519841788740861222116970919549686380035437656990861106612356902763644030144512862635285167417142230646834215968647559357057475977857944168590539915326194593035243239201278244807694847341718586258270757796552046526298209724211218188402296613342824301324750416881567350281064082430690931570277955246828993018559695721899040044897158104964206719116125745805634249943130795910424381713879985746238196883858131425457174268044819054022093045736668630088716464607790840432204436099877672637915253833389348499778706078250056001156385897829745836721599548957972978924396345645430581811395644515872020563856143874061695127304984908578684664364232506879928757423311919547487877351161488311230767526013154280978270018875218183810688972638736357686343906441526147736266987858717356601842179932709908912173777775672825153224111287049594377551431836023960855409572456710584247509696161621005382331729121393201534308579904968634416153690531076544352871533917483508139890063616563974231981440508494663277598060432252363790563714308541372772207423591127021137494010033294266732996969104119902789524115239489034409207487686828850555873670889998617181614702297803271863080113060029033507140628613945358186254296879112468427961396367590311933571107913706900707218312518340347474382118462682595540070047997952275902202167091302157735533126424187764407576348039995489668023611716490546998864957340471734611055656638725787714915399372500677250422850676221380669387366663378155290484006362981621076029558904858039672005637984272259546270399479413961966112618708346647022824313521811037773331513515923526838600110508850663092014876763880086431052676871142804092046754932126951631029698149183707755823827397597072152241953467875698897942409149623151830841309675239089806651223298634209546918604534593654119806154166543159748236639412338916251475390083918763860213930853038969582119342484379926930806423853193369370069673588434376750841450724372811493503596950771044614145978669161528808668797989347790068364886200943805981213944641382841875796150789951821703692022724042408137251259634993954893828045570982050124418812206433190862136681459106747029809832696657413020506113216991471777984691949705490058281602678204464943564900959396845772871908465155432566798929659450014796292881395459763258004852652679097948073939272346056174682501793457288748640125074335796349904643880336653664371029071489923878304231334593485753675889469139687100474655644528593892798916628713454752843033995974816506764023593464235844752550656805751056170186685706999294603434537878624416915880654603647404185663444927239049583667322000101514179498055256585229382368585913936150814540032775681933903102790493070855460098288647396725332192508044092005737992628908985620554663272530554858317786835242638206772204974187917587689806339794041248213345441318522019276678960721144899701963017769445535411744197839530484582987497952865087093617753194595378682158512340674965900532696298455539880396333216959262689775680320841001340880803821397418869365659469107876264289788611200679369039874919466824019020476740042056559111221975404532177574223553057581522649529353883824012178108881806027613038080939652041805870174894560413926667910397999576986325981606991282886131879928618592427993073232633081649496185746502049755097148378735278905990735684242893512619526707215974929363163385187109764418839245139929935448340834044765957344407665553864546243567054109211810389258838208588292421123243978527482047535095316698965353522343065574937537183748304376343414631501109237673195214786237411046088756683220644319256399965473933617444807924485680363021930531174956966811137526324851625805288283365019127469569942389440085468230763583826714973396725161064906150896577428878948551320241354056916198281482347700862344737357887900723489076993788841361496254060632260357866943289389519434344349171234765596472059603935292220617988790653923694806147725796707238166677183585337406051802028339193314728523111515588440270968460428294187297422215009158716547987971061289224566019932378063448324296842293152227979095069000550191367120107822680308935904841373448240372729192631298095826186852373140141804196562226700046058508428660580190325077832162715433951537144402998875499618507914940961012741888880032796436423789889899162366551485039665696443636992193272109750985724449922895939795955879837965503881650324738066483402778085816529940772612275875755306627620673267578635659566093216055163194320439079015594778744947120277790310863280753448841783486533114364665446085894438159628293376683045813606582085889831937589369591846985987713417347192227845571273095380073299557880792226346659520375184819896491901676197011887041871103953230798467124597909836346908199665644566532869466706020816643114112278119170224969896742168959104941357135574178479174114565256584000038213075191674840824058126374687072491897952811843699731494964175206110163204083850484644317634963200709704810443548007839668044989873220201227914284268414075471297820057048091880378071172687354433871528602353504753446508347722913993112745087805993054020654226661197827743336274350307613438377930475985716713207439630804856541737853959482022680024477668499194096751953408462785196409612351619037932261432745156986999176958913805242431184756288218416469984709971481157205680453879862919896398922148879955460082445879818445907425790934241131962684476913979606104882946571230215661272144669967683292142723370619496988858637104800606842063956475796173194796368623208759380542666399488540753283268703526293781437613583241712777551639772262732561143152330860394093620728336298483284488453604338061199510715314071543209332482427276721736710758046843679272048207565423608799353805652091556355474089905568455603070503992393664370038632772673672656768403094347552020813977965734429854277918252470359017542839251447554031116992900212412197978563662870913063298329881028601413509237930053270739639652466533595825503203069088160491711458443825633353710662870918470469884959049895593727992252049992179154178074277744085066351324369412792169848718170800842441644860986467553843621857617805613371300865760385322565486336356318838885216595418366609715335156397336093552016223534786257415544639518930259840587775547263973377010362025132108795656135472070155704562419001031994251096691215208471820961381935179458610832444397341623354389277262249236126492234167096979373971093198907344466704034829429065828652891925387385047018723220589687029221005322301845217029422580170310915936612238116977248165885578508394431436889059617932502704942173247689366973891341656088306776923006235358528632816026182826972859054881849869929922530737025632833628141809714368042082064012135913347195139068686993791038649074807729402977730241134647556350769351487826964108533270067103625647260431193945332384006937544243561879747472867375992621592335745875242660186284162780497203003637170142150630580109993785320264953975213066204034615295790899528827697228741446758549881602204479737068328684759717634595587793470007217455757845433275334241370305644734484023274053043365875150962039688765018891646859065469716255268792641320209739378200141501425205865840659311574519402738079940106299403507718906069542086225024242634269780849421100489968633093285179183173310523908280389546396633337529710707648814488367370440497915979061995615045055571124447089528059181706103209466610534495226706140568746397000043058178925230880301543324561144913537366528814464426356676394825338093551512818071541315900212161507164126786789700637483709286844499556626653762354840869139004971724311697094263122234303403422235564168838490997461372332659776010694836349783342058365364616452932889105002123214970277170122765764997607114345572251547282045090606319424719412048566247628412949672337995497646897462812942079983515027106858023477607129291123255258588178346407960961185133566970438336127620832886649588495567008711816326841790195396081607840396581980607685037748817891818689159237410440814359699912220917238789910173996335609205883018556361234721679785254532148370970872263058270283062967947371042762175763093258153642961171919619256033971512523910585311724314216356541265330097670764049429172058265281388514462960479712492792156367698170384657129850771042016351018375986347148421763710006845408959425803359973576223031613621286258068342564401337796992338906485416908627183285984350559143025503761148810569201819032648466605680088643263065884141250632875741324456000555138787725498862196002493728119985455761975626894894010941878644710611832722176593765177198630799370392630079557516986403456579744326894928819343731676090956493432550628581947056317440634331384298259990468245547845084784784018601598652820089041012829847697602531620112110294836767152739525547979052588979606161877414266447369648507364925446947352305722862903699181767436861642207669808687948303444473270718540931009942040539826833151553266683451804112320351876383412903191099138670099135622969370717028439114607481546348783213877723004459301980921477524310725847448150660201974613641231288349701910556501535491543751794644650066122861151617957826661103339187457463184888219203897754852898987226916646847226137332512784439526999980398736798918519563134285667222227748613896225982532193374772020025737013377938100270084562186796169756853859679525498431126192757688529553531142387409670786557899167468374295717375665714230370909768498529437011270168335595126231057936962221691667072190840199830290513389788618782269936564665284200039841295454551447135302861900852689063977175614468821209120352951248889562649719746684881743319267064729096511251081194561438407155157867632849118166763307714289093187974469622538480001026401638855128645918065707351440203015264961429831414230292984382992154034104380368766237511876183243691008575295974498315204075937279395686493683733701624426845230135412701407070037746104650617766200026721529331025167725788953820183028472330504403111065561656413254299491535990387590730834430232739781987652130554886455923771352020100503272547213001911867915678921573661797645308472590996609981448309473968489046056834932151890022208845525391684442582238444927898860957793810313543086964098739191042622404170284672577252844629637659258201359937379751586059087160339861600495658181319055605447511583948571091705138549362026674887410827149821286937564129365989562337515177430046201669583666527486742003939048485158088901692833225790666235363689890321936789870358110437805221980052232354687687683409881067329217329414138648306239773148615833249036121596771064016340253799733492022828791435636591542174041798409445695195243671633958740305860786339588895940840144817678572487896151907294341938855467197379775246659021595959193857308193859426340269837306191554634045157459179657257566431862319982983338741027460075885674912702735116564742671018976835209129853013051390808472356551750239023613972308421120013255594736764000877121791296562235346785442647985244960297986647185731001396547363278943621366750980830179306017099470129845629187304248890760405341065034034721053731008295516019529291886567144455918793528869329909842054433406873533337351704727507249212476300464700491095263955907119368006352973319814157773718177271679466043285498041092892785973043429616873528391047713098013928781608399194276576144811422527969452109627644421513956804906635253868076265408686533818112516766360029112738115215369751091532670484594093540449115676032486584860737987627213496991755726619825480752948895644248126945248381643386084682730429962306313519522152128815337853480349857674181785818240227642363385463559638689571953322591479230836769211365834314248079057069068368819315800709754244062755260375677270212850401725824481678370488601871900109296543373999087996917744984777640119795886808037345080164409082032875928448978806532394674759439128054499670182724819324995740113729803627086486322595925973089652831263878671222878825708975610024034468148565605936388804164149962162309936536406827649314058540789792409843201488713381003715272551377738961984177946021877253286205494764075547557031514414096634761512260673512844294685863067328735644123181583435904390009270978097622377301574554764701966642831910093573565441388130582274906466848720671273601491225338165659110340534588499568617646436545600002678794547388896054215038685434224500212731003627852989188363156756848142100406470377513938787488495106370017655428166045797626722090066952680578607612203876855204798986506539173912166731088887106154660720788338423353276460846308121333245349002772872472749690641179140063750450231730308143035364154294113287186995850861840968705723602540066862365857576193244355032672885027523709936123432261421106166470722617258939825403361296701622402831868725983020879674808925897464081318220617723051512401932208255586547360601241132807648870109311815369532671545680221487598126498390343441966523931247204652442968543994011274937188441755946403146812952735175187683389021069791695237413151887171397325103424174392016896042748028398066748823117710062055128918852202697345800861543774897811698679120387971661103781480312139625510064733478868845930797314422612406579424622679435231890680872757776341095718483352837527218672852539174814889056017478635875884633528653938258115536781873592499571424721786714012791443415511261912060325030964964973545799984935300804860450557787628844667699769712182009317499476428285730253911714483537643589756301657999907857815239184052554932772101025372709088905775539763529901068444917483633417309395894676661676137575716855956772354480082914613830742522703702567689333319440161468273033742028204760803182718644494480957623133062854839589450777848652880701026975429367175526018727746393814547441787827698749169501601861522320300583673607513033455029669883179419959878483719729997617667974313059899756950358389717973932560709920184422930006981746402320571028587329921844999568120218363468116654718535052828743344144093098270765451138331408486723545249802372795924759379014914567709300719366094732202986178735342134508137364677412343675041657739326115213943258809833238044114655614838433945482029268660367730703118173948986627195689235624910736742049044458928042930211632249527654615438380976292283793026603292865741132459567025202580796447545520514348647008735128937219452959598512878325874744622650552010081151710303686687953040816232506089549822993442362720826553305830559786857744561386497690229405956786422566880539352776370370462942064907261095219226079245082573341411225637596811686309809308287223971419529442969591329772269145476309110922502900999318942676988024665996372533104417280381893605623628543345949952474588460535145299354774474183532259014176109068475664086778125466690751530668405541311944785671111793499482737644636900899642355319007005576223073482694167709931815992608772745440444610561990154323143107269814167263593766473607769292087847869782537334303922754555846121264934475237944597913648611791719698327293381748692592685681564542563263970913900190701260057520434712298913022883861577612725845996447279914953006970882496258260426077335713719127577883644606730347759537624772555744827308869950402243776614720141178359262568391789423096348698269086648297000453662028640374960064599214094490306629951831063754005915943266281037288924696734051136371008002515761166352177047626336306327101761182534859762802509566646058939093728781690551699229687681647968268099677686288491054887975270078393744639198513697255685408192883804941604216524763483538025498244614212491893282292680203099520542647609793646143292147152092518774364311504672462337637840979697234304597187553683976843294004734510505091879748279811316433600337775840793534067755607448080542503364587081030518413624491186914257729006697373555918645747628963313711889509071938265844642770482767062143023298630528300685465157034118132627286396042641702651774390515401968101221540418515154105079931171864786064485383581612601561337855246791457900246604648109719994730240489277184002504644731320448764345120842341257618542199322490263138937891661497046383803708949033856464412535375974492781664998421090755087167748439274448056297869441069837487028677378768241304640935032024427111279599602056481544724056480445107170164638547718563499362974977279249118198726010184023281436657178365588980309473071565049727978529371152788665553125168867703200652588777990208670735522156236473658046267646486221380487289853782579463807729020838884749830867140723543156091185559357115356232438899117139498376682795200734870045334691842593525408068669464732092549364353742041972840185034443640356810496854698143176236716477375173854219020970849707087060092792704804611281162768854774484786869237107817432795303795746914854076630180645155111605530728370845928293068433958497120060923589133584702792719738319395059495290037086241309745336816646345471119326730794594560864380204201403707122730599073994946821500295227484632636201191876160399061603199198763066614580531571771019848841043518751877263127324619184171538720686609554612556659603207543205525580122761682779726926159994726903675457081527434464971193604899840477012855140126442227112897442421534021209758927623836356122763929986772557909002747034349685320083000328181633719032595426541907427018089092163595129126937812547897784622507150409521126792220677953201052797895508422722458617725883269402325288874588998399778584048114069877970523520334576113377980515977353347909598533093256261577681178555447014877418135110918902752781998139089036071613564518807385623577519071773597021434290682848615488772348359872248296262967232723649657057560716107786313538805469622313905498520434149638425358804006646319117985198059899888024418555655025610719991237324678389378342771362987435866134826386436389438590156726925109913699123734729719493167427301151403550621110529392580863023261979366893647409696894575699667659545011228497891893787535804611007899426340421473745477864255094076424429030777924529056604670756012704308539736358047351376895496813509430563841460796080242576398096005458197228585921804114862828506250474551876549465100764486999776036744868361519910321575988281715023970208588683001870105165301942417050280156389773073939547003117175090370041521514851932131129953662514655417444644536322864133988602833218367014065849683064695091834201134695864678021192134539662513772554306422109809282723363688291806115548786759807774116538019240013342979559833159562884259795064608587347159516012583165068847633800723061552799766505045669794077207058028381423019237541552705775244855803897937729377649999621197828450710406101101728317036998628453672386372555824022740813644045920371361893243907895970905510253932896746887475250788066811605764423911086889101472094224687673365232544558962315590814358504813492616404851888144733031631321075098091566242036907069846412246892948270468635391728934086663298322101604205622197816994970572440891247429462893840964118907472685626016281001736504732543034644305131348717425635583386606814653581410100640546803080154643599644869730358104389684277429918430941375508916349166792162348672083864194590486106033615873919174593813158893355576548367831629053332427083354313769864932300325141238084042407386374146451608405794488163309743696872693881740629125907649861248103263313203423248630786676856400342631962691258210791683931852461117561731464821018315193814347063308375685463565210626718799569914555636738980154456645873982903860507787788969233155587466061441873495503925152065464397328839287428923209507670453770445672068113311498280205302854101041375409856028046220380585293587858597338482774116120553962818436500418654049574993485829306599600993133989386071706852640722462647110969107938805962985589823820942987116400239136741365943100447165819182309524174657136084354818028107968223053428459992314181870153236053845740973815393827685681147059781372388586284654978394695290355690283930504859884575228134619111798671819980173695705179188688011853260511961635091810648316232949759274350651865748871616478088232271156948817924138073513786347041661772764943963269610960852007842776599912288305755852376202574723090051707393125166385684360290144147993806721865065582345044156825379950898657476330484070040454524117473499890596125121269404564220399895080964933857478569922267419630622409162510096374741044936083976653525368673259504761993130475125740028445410069640924914590701238228672642855603991765104328214414907412799305407437312588094352089372992922136602129810416513126695604168453307450533565020894708534913112761729345711544084082171119574114807017605660313581592946093427448320273469611588514423005371389423750365105063949216031789705447861063909465094412275915287917096662866749743616563272761844778558923453458283640070654219025134713233968417230730714578650631147076234364174066439171777368098813121638194600931493115971840616177557596658720176957576085654681716479839221656686787874567889276352026533171725356239324411464450776289661856399359979021989972426876121416046872517994258542201481246696949178528338739175193658350981152164717581881550313279360079287902870966165103708559426365729560440292783216512409877141362996737673514171714963177606730537401843960849928876506076908406150646554229401052913418434342780148821212233137544890622225778231791943789122380020821738124856706364021472576270541196565911304016137140025169563269007880519479015561613383328064291091561033943127815289754973340922715748499866271601643015257426528038255190991651188417023940615594114133785828868467588105311637055944552451021150830334006635447833070907837220792091381170602292626454374364382610542930234302205667877908442638008101493715907812926538761646552268155951507193864903423004234177061692356133799565102516074640216905302292826607550450512280309612457109708320985500264717036193229460667744720260714982157993401620117279543561378087393050694003146975025540823793917685041541914916323643785750859614650862673793844077563557814290741710007687613774175554842463151991940001226454033806513504947014584294966030851363660934254455071661972722288653656313405480090674446436077521430586693098188764747939817073897127065247095043099987508344608924384813201658380015076345543955474736281847135199124683937248574150136512614429500581495644164274006330225396032373625308874336946628059744800483465238603366346669209921087442586108852386127409700137141996156191290321113091632888477577099360864559646547153184037187201655493914112267615794344262295685231095137044077374730304721002718665581681512212686245746387742787972525719197647197336336986817883691603425601411390993030498089481113812506127532856451717649424073408041601097887612509723099923678163760199362778144339244277127884509863390250149193284226873807690022306138005955229893576353683542296218649578902637207836244543564983801089284688541446199713977636213908716633409190673149038195761973173706763803872626563571691175726686716254680739467827646950321829631901604754385200797596499446652820973557626609215450889606145653398496463242338238922639194949638376810308094251366372995237867971911181467308929577616945355441854450542761048929468865218897391300361370088733654221163796253570346553515063002929939539095405377632593469925511953772306845298309180059692136013733722511575095228663501582076166911723149611940942942303315914265951663595964267978528824841828674693753681337351133548606891252642973925813960124468798092383298779045414173552636855978800100230960251772485378238097386188271223793575696799844920840826374110325604794991413260023672425449826288222324836432064468143997172389837085433647514775942772404644133435476065602790458536776014475664214557711807834302579532859432165373445666188276877192444363852357332435733559567950127487775615714089277759920988877475006986081783299040710335595375571230799507976002487416922492751772020491567589478857532380123533030685906145392231126359464797492987820123773325419043081353365148078721374305883358201705078497119161175329132286340822453363756229729190988180888879594427010000071473743490650825552889201881897482859203012606790671438497889632086071312482626050640370879248126382324492876767307244660397715258379035314133914793357239431534386558420094017289408150494615509698328527065485125509477798518547323065348350693107165983739030573830407546611028816971949877731000416574036104643722310776675775303643419912129074206167886704536856641307563291670926229367825659362651150222496809573391995120027566197021507420534270866140989044318171846723007731374282765686072278702535400740767796289448959084204267215346858678623037237679145945092425232164042277497983536413116310698292185747668012096784349575637962911967086921514238755001432719569239540420270549676585438736242811330392973167518880285026151291158786490451949187993295105563461461590127206615414348147167480995320759019413743631220661586232705711223759906981398865993218712618652442066181120379438191760156355501068506806888600951747761894166545123260210736180833992280412851547592440196146176354489339381716886026040488963813191630745182220185935761374897908473589175719412676033963076320846690787398591667244643865332885452925525323251069197560265597884656545150304070064905053831789103931005358436973513103797537607978063247019211156060758738291266602431657660857966088691797626852241780637103665539403768773089087747140079943065820382663842131932792593399532725417639607360450725236263683853435197289590826755376985276063861681424725151932502446556936146043979692874809796013714403810561753534734770972796796159723163915740543914650236771744036990499363728898741745861252354914937322648094604826963878090391944263610984842053160764791909236110204932164944133705358420670594786170863619460970293970461577322325294297681197381574458401339111024321782599179391288894488800079215911758569182906213426040367744335426058801461381490585001935948768916060059802229565380048027752498257524898014583005194960336283268665521432143236799931285984204582316140885580586481778839072207873884691197682663221257151645917736857687020428490568657048138766451641248776019937392001596274327982467042953006532294869696503299841762675308144129744345109615851194404593489512961603511735973728116242623442648090257687315633918054855056465421145990083722294959342281603450647484149957271002358439205418696332700213470183742940408469005656290358437651046169135286589593249670832406842499483684031258116305498290523092276624353901521284055728735227177608075633504907114438596090449150363776322679430468126387012432509969026933504555813388727714913365338356159980117751760756638970187319108701515737626361555341986051357839840602437618851227248877298752865282042169542655348934664503310994591564291306768859254767910962883648001364189223669852211686776395216094395686838886611337789360076714335288684732393002562046299050343709820158078227882602851270252888149161951253912745921966609594975891889746679675861747587975722522346172921862763220491500350104145416497558052595964902921134537252663745064323278634997548008937946116300492299398240768569188644821519480102885020487695903338047495123347779707793471050696613123576153064992104297291271267986855150961625730407424348120839906926070482488071413653097525974306920383584954720898673095515618305484600430308709501910705609720423774010814644214036733780981440717025408267895785514033958165728994967270895885983883754145205434200770516797487379743558028324228209110604436334597196814326738420558971037829298516233100913595894529656233259488574071585159417574394913134872701616966327195033034782682104794237191759861194809813215386132529661732678355587176071975293512891418307493629846900459667159188856363218191451096819374601580135543888908733614006140104781242336286000556011190568244966892579320064065405675551508158851056972052170196461536581665272215854150923427155019792536965127420465533736631579750773051114765240371840911524002594604728063363998919005874773289186918117634168814290332247508255920678798939876118860982456395960806770480059835012324531596893202552671550925395438991890010962868343975224063776089586455506026595643751248538869733244517707335737435471835541938791253406681117071186838164970472216416850182168304259140257266381546642344928856869643149429423949184426189182253329119666244009123447671158928135585225908381040283800627504012691233070699174003262067749630540026017129761578379846947340977416014556684919235304362012833774600279704626739197521447532733227496556856313213906963197779690900688991520100003488161476625030226168893611075921248530130879142758323031274138356951987520384211500756558924417425576446827354304584132854528903892272397067169931734586237576004400934644531169066043695777766161857292402582427480798201125384437636170055993503665209669078290425555368463145861831949191717734890892091068033662977999061216961315147816397312244521358310323179259040027194672650911807719165468003573710646230102471833240857979796082991282855821182012392607054861625707283771868560401536556857670909754067270070597430669151952752139893286509860416380717315210664915707385542931904195300568767413599475922268102091113906622341098481022783305134325593112522289635211113197985891169739662185031168597358602979440113039223791897723371495302356267340076590796458366013475042576894335816891522867163380731050311058285119186723095536173716153622432721861033437881611142663057787116834505237718372141484353337712750484450515808259846612709969041886266952140468691909189177129354597953573476009262917730368017082676213887268177039316472922040465963137188177234943749189521419910349066474582979686306955687270947718327361800422889416906754405961140422578571897134895002318197932572892409698558658993055864867683240795408163267285875566696416310984900696052286835605686625784879475100343323323602876929563900267255790593267603784756304625501296943954506021183544040591069484856295822157968330966856714888971455209280756322863275443849432543249372151297887570823963605515305016561069185376433441351192511621111815373989723332369500719679063395438109773862476976245299945039381877095588426213986287225517447444978310940760300411286385998753564964816111289873735962538530285784876499308436180012589610522447462144040777472982094971729636655283150017478448469288139560423283235185291990435541426615699109861785357507563738800423454665250283819641435917568723905565720023880162627597844133251570634105363973604627319114475149320997939407108408516686652114239089900900507767812214450576779636198590511946228743234231416896518886966572420907404629326990369836353531009823718809700814664387044634695536558273651794487053382073252334376245471404370630525135499731566215818689270200911784847643675654598458916707489034245577420430856911619836003772727509247000343970253357102580157605715297744089014995525582013989573943922368367467836659886421588558714994594825725640366429513249180341824675056759207593348651609532707126908423667722638430848432005025208537176839363728320603653197567202264076490987958332715440166715690294426851994788201389152428580448698673489544171537342257218850044767314543127191740324651593092318062221716390526167389340671263944508204473976558072280984968122309916132811638532268831953309707863595209031554726824540785457285656989676266697448861518894632967015497396675795051312183207541226630617243812724169334645548309768537905028188082333451892060441125360895312188427011761353524107452830812242263553252118976291958112008427037266265099345550405135773555992295316239944324590949877559194959200622548338049665644417602001834999860052554206123067889700629832023027300009006932043931692805624418401840247063048908261546846660291552095808064966252095100513115293760796068818200298933332900406668655564847300563369860549991376310466690376838451356528516625993070303867512145100593567770266762006057659312539678392887425721097069427718667931935411665058916656887124818622996085791335504020843522094612843532124400660956352241604188447775703491091381021664387843775830066317002901633646219271976974744801795053987407442529727620126168803854640693008144935254621667780759490170385242680584472858379830733394000894618677545531923525385179492272688185094333366238360895117542985251474490623008147132457210176081546676974940295532354769193890961372748189066442398696815558717074694757047888529220194431154675149728536281383891240008572661794221723495615839273550481087797282556991414102224254599632981047184210100795372140433362885696206044913902642439394343095790313597526813499915111224526695353412453849402535310560771469260512769462144386213028587938813928038746439690124295953710310095227152539269251005978802177170634703154474587819346631224645247636522187864617575388152465697016349530776956944702607323778132088188113777371680155022454111084971241357849085166287565562604443779166641018951524640891785583961746352552924193793217101806455611152399155689831913561713130267902599486210496230606200393442634633203229974596097334277079600932843641369816323597671230768160993549501211883726181212355027318016355717161231907276651050748578541575450572840199204785806877358545662318768233633026385870819216523309282842369381125362245099762746657974751928293365208227928265381946759810808109300672051855611453285090832620018371911636807359315451777531762784000752205559592162697307310568080194041317662943149142136907703851295826311583295219309383452189246813166673163432046179454776934710646752914998061182783810145920979092322916046606278834799122657537173324244080941544336602751503462028006185641071550918745285585028124178281256137196080085466733212964243369380835789323009113961296837162894288522923966041730696192804894100013450662758590407421221132046026420481367786454081068327630771028005191647616173253366987828865476036348891529777783626100907499641378139788935116351526387072758129649034051088916768304421349657158656850045105205444853130841601629740238710057364581066649516356130236185958208038933808329502248156752539244292599219227023936721788667426107948715538253439718294877962375242806113549574786738233846633929860798035379826233190232300934626645247875295313223801644765371776974967408720434259437843927725820472272567013782484042180861448314391455927610149130774653878983743552227458068708332976125911354733939062892614926283227868329748767423076388992233445822836757715410347948674633380297091594972706992920346342490542392559896542731310969716299782209010000164988324132654800076138189674249201381499633357892090677467928736247470023114695981659068854969494152960696462805246813784462127335905139536098346983029534413485361404904795187589614500150495281380043473057966970523334127393447105191331080975415382664043160088955475887294724217211530721670007644388610372639609976285416755285886142474981694378310841620754547442889793307177642731142624581303432320011861973772793066003356172072861945047938739966338705472227594993567637745383440203220516767429830969334514608416790009083426289867133336533310208778121355423054530371991136371172546563186053960480602798742559614334705493359259751557424315929694505378490280760923345671930933686660578735878833090793068888687141297932208626069071816884450000137168196178724340326621901452456005194065322110739332034762167653261326157577661140407423947381568598246260916104883499094792546554738210878082600571114462007225884833197077019001474251025737917548773253333994936483540342364878185152441209765622375536014683246795441127246823190143745193506906067337946794743536127532755614346640972487882272820025635041135413286172848689738928039795261587272052169647983386310378340310224436579084965004353326628455574105337802733054281655432700784341737631463476212638212361126417418890732542822245296460647921771086928896627921259686909162681493205299294947519607720041863866669469852067086319156759121387881760495640947467802059174802641052798374517452418215920906661483757507837418448325812635007645977290685655298736933398733181719855342951423777967180952591800485866392607118123125109772999440343294529569161166985861485871171737762631639497198318681806933101967767578688761141107702058007057399222880562882945839707476861719759136271865857103672537410059313594699111259350329741425097677808152757044212238008918266219431973478107870865390245569119321602286725811421557050329701705360358217893910883000191208291269866025901325084497816628765616650007003349291642583081407773574088002640257750758557325907347703691789300460124156706257335452793804499582831413922089607889019575560880289933306136958153044453172174912884692866224429955035918960205996595532294599928994190152180074725581465582537047195869862365057544746389274991747310178285300180014181248618297984567101774298912024441689345434989275837934621424510153441435285723705404762673479809680737004288700441243376023225637284482166158909633304522038720187354943751997539565009132409188562654938474688682350480588762482347803691988584489325303780254447897901975530616843063688754920785104899128383779745714370931515725118937473878737736298820889576286372934725403047592700554734354485853531787731560789719223261089609797184614197007930292680433085540316355085874136057188367287232128982391728202554843616771102298819969258710059726306485070667547483575953544249225463709567001475926264242539964113369330912395902000920182175370308319501301898194415325952556754340740286783178806807753689535451982970295746083609211447600354932701611742257168415500556210900207197881346721396600087793653690389289567089228942379908476177839197598677967539592991043654389398033305954077463747267323602372990989424327064912681141331809191633129426815590585987827632690395382277909459448559224293757026188125676157864251500639754336740431041410141827924333815132451106001235872710049669911969732114816610708904688796419299443657196578621724795063481512947004556634135864827180700349718577629986135639702210049208336337482670181177928263638950586178501414258505019097301631116238893724244157278383541959593818626837866042146102357354961738853902585538596927568316556667973040565555200252492498942641180514821098215505947690881473028351970963801846985535177733409758718581339302657213610503311332859259222808277725545268320907007920229032028084082003611968209360262485685982564265022251497651914988945063185820507025299616852468246945523480859867134885571987189930224409324865213868436137492141621870806020067557299190270976089311535877960739565060548137134171350656719784536177412914759230334403586776649040048548828194050191378349930815628041479039048594632704660018266405550496392702876768504389133800310451823137039543837909340074276341716597513292805131297057399265247551355941220453700349155589740324221714041904353237524626033265498411379836688426363605110292949472048876610648875971095627362599520268984620493209637774657726112438243149996275442665716379594969708337364547577343652651849692803007280868839971487324228037431257887235448528082647254509876691837283164460410560607309927709702430912180770968113070623031256517035811582451786357892793854361223332007442485620809538236507615945379743724060984929494122851297729962936610848904655990441898169798698494129282669935170680583011144760836586905001631987933749349246529443959811650567772538610777873263826904284983741440238633034550754318817010804989938023734817283795100372433972896253528732640411242608179938112239636797712697304770689590766807206817280903039717720353151741112469934526374186102987954138892010174832852080433530743651187016048162965971672851778455029800526881703805581008664922674590672787213813735050702308777209252231097250168134053010404821652304690353783829452766326074710665660929837742698325544289796855251783864548101817935144009248690356916536269645065623066939777214362823450149605349347016468472901129918540586028744657217023738152970151399867685732097018443304673080369040605619336853030374375342337549073768149952287955954119001565699891488847721900537263553890341032910475187287025317794676060958323463124338380684659446776772749934949336279352613161415490102510550423835969398619979644272591073512016902830473379744563415071190601474639438560822631879449034118420817868367225513079102508547691640364851333546733306554263075572395550285626605862800828639404277728627645143184739250626399695308283503519008729129257990027952821834667011415922044166687961369673289798663216325650821843053319623449968635857483918330316139248525696957879658457204530788858826946760486060160126723779593402510045416810150061767363766482896989897219842910904999581665863663175434536887743079511412636711275249007481759374398657119945281469562553529109852334914072122096152340159009046411892648283963355960879930360954107004536359837555726881349741177556857534095824197772153282156594888716058123472361702292083133402398768956293676195141392185835692888843537414938964174597762657689968388176522306145457835765024044199044977287471948920207043005252236378354425216080830823028918579908897682225417643156481658740670929511316790067916521326500830946888951055041604586723442694912577171319599855295571116148242192945261883763423344770468218635607601813307359113770217878895465234047325906696504599375142178082431562347457810535029534388234692540902531898245490408487105699172409662357974026095412550818581174848172669130628516742021720238021448924079095977447999591336651325265832293834139279799270230365832190427614608494222013463447537019907153206870812156167029345898429798206556706597178307569724559040933859019634670675436981406301657506571795991819305189352757861940546364389945534369922663812831354080804195999321209020990380563779630200904402508010285006362399775538766301985400958172120966269969688894453092527331861015323621414392333299499583053704352630527306439031615835459973285252175816880789585017560224813288319569300987523532729358714358848461703567059031316239634886855825390054499510174533803694399662090168895562803472680307555074107733969309305573589506261730571496078556489704478335067481010772196032705256209342398455428945239657312513742441120544336772871602871928930572491614732673234262469179205441773292887906326613204880143842679627318436162976031545783283195630296221952957305694036734890037903301229759251731176826932469940718465524714110622815713695258966288641885055798618471732407711313832829592558773531290502628680655543516045480173005388347437799941995092275265453740151924069541785603681971134258053402874025586741314595021607853892630572752482854902654865814591462923658288303387840614077405588046787791863684760493060607070043000194057791560106974998530936317091878176877731664138945765388514099059532311949038630617067813328075316320361573679764099940344635421543094033590512389383747451434655222912689145754272351575083384293465238417842381760273604845940369419657730368223281670978603137066337839350794310653401280073385099186150039276073765597465883433960940216933348855851480345145297794656158840179869940612892429300135490475529829636412704689398638165679172833537890114039709434113115772640246601021299396387517902336052007446249175005505137354233024980222262241657850798165944862165975732888081574088290131261837059218149405727123314872089319720911135670689343841470385000926415290555608096536424306075741055430124820562597276469438332729635863821353196590485151883795081657271416832755531678507785021418584932560459973942789299153556967464306406558103207678532914941435620983133612765903123800947548592247134749878762330965663904321838885900307240850220779720757676141004996422681427744410008488300187342684023343212300920358138399277270663948456871143486153690574840278611324724221667135743558381750688783825020791870913287104619289471065486762635551952278839048760391711278198071510118852425540581602998148462092163032268319046472918611284174040287579285061147436412778700511692458767875151118355634852509978344748589856405543171466413684499959690542474437821237138802065184468770227324921882916145533865692446600722386021829673967854369701660779463997307085044212576578572262069433331367342483809513283001952481219986840387025970204376422078602608845283024223754596629931147408690526811607496881481396764946699379852143180819945742892516429553070607098131658039474008727492567014931157241394740761394734520458229129936954842369019153642546387753279585330367221713724421383214528332267840560216909037877178449761398688195513843263923064939308861791148196170252760181136833371487388022772125657521313690485925926344120609568422755092520475781271426622305904103103992092113138073389820044734978034071462052272054254482068621132310115079464128764329734316331832737647257820322861780511550581927271549234690923931193146137169962693285625606754547775505430364957495804061610905668336086830649088339775543883277962846815951918506375719286502248559079257386213472461832131417902363831055704440589648446556221273238442877514642031173635142408816593656963529204815418745778039340430959056249680684076263539812502147426481340036529620857611021884701667642793641336871795856859696703204069257028901362086135706186743975108920737204392546913405047733670644204067050672125226322748092666404413860274656291659796483359115415872099927736268630500021625111631054596019769909358396002915354660875732119392331552211676016381763061091636013851610706786078609257075137532123125988768480320147361720781635380843342845313514807562984371808708096482633355491548128141279647241566151758934893979953484958887700506445281798053355287533259296265305160535946330544351327675939400700458163519660922217677933995581919430703188428376910862628727195611225641984458669349824710991372516522983876973220263760559688595560573429087237603035158698761281730631679533767457870296353265594687839454353932790134813890140336754438243314105771070780265360318544898625536968043113624660594997176678609118642475034932340578868572440237628235172825686991261952701929056079759953924483414560942607641269187066012087328353587782586821850830837927928441771213037356221020524231420885529474015189944417402153769683209311817259200413677926256098580895985188440890604798812743843837504013945411436789150556046559959087897569577303101467761890620864049053449240430923403217230400722378407151951058453922726266937501757884362428330530114061160924718401066496391803487645791967073695576576680282514553868711494424489574218531661880234792983948489084640921857549933878029732751128587023377952409688701459923480010555513405861374945840268097445493221079765497504912998650198062128187863709450879176452615459540230749883334019643787967149047209482907915576261376111514322057545080664767458980184485682342147971929766493268036284453797822458727798086839733733657639749291252562894117719501316212092101306309284848299733298501669150310469848956443711645126878778692859054912581208898099547991620090307252476792527541387748505834237529395459016878588494696378186270731239995037071960476792033157779556339139575220179080173200406984369121759359045405742084744510488468476139439724921429000484729160575186207779811899084195319396755012321613705184948574685904576401148370687981818271372607209674996846020410836197765207673205871054736091264011834654682102473152962844924799994189351082563353088942469628496884587868684194104961463432240499046289401259871364471160432393682640258758471232884368751612637762701544007636229961443303997351205736778615537646376176565167844957372848790432843852015721036688435991994689483443322614397959061708062774954101062972710489689319068471749374867502778264078717295172654748446328697244326632410025028142586305716057535559452041552210862099067006521313134528698404814116730344802559551895277023699346275736323539399027529397491250405524359094433503132466256700331477397816987995391729483644321052563104201452914922621751450903441739128001852218069707736888210385817883484367950991118789237078429008505804442662518025254658321891140973033297671906996696156840183828338427920042384072804196032326611509806712337484835971030150122430724393660065402793739819800854351070021031282445772392415991802687180617066172223837936215154470571288303976830923244386301554531111225072950847706276991035658263636243495840305454600362992342765808279493677091622256756544631162510702519639918722407313651114432502793106809027825332764733774660751459233232546875728251177265467072109727539845986952048391299268362697229949018948984015495343973636452607291703376241806898272796060790346639551838484420412485261202437649465041745598825398067741066312371075698840271140692868256470110181594940044582740281562737899987720410103178783403694166738339700559991963672621954030025562405277587618131945033453275780153710685679669407524091350636037768457409792569876055123264052670807001683546988371809625488728911692891880535436159372124048277413809646516903757417137829033168443288057714847066731919817673765812133819286314435332974935097188039397945299976365878037231665920944824643999178331851777133750798765462922771377658041411724732494693586553180150537184137018151807972655147535666080453252009415476811400162289347929321219561787289239048857840524906932562450812908791886087369905892319396925106558005746297660438788844269774609857635854386042908164840947826946603979121761310097638813080995219728781120513939318071203838184576413117888326954012868214629792890283074787673772450063464257893117050793652888025942917655123242317851913606808114652633088179579480824297207599300887981148370950487069524432316079525745377365094599040946714278953244895899683038017068382024967364001276215950880741330161906079886284972949408686226287882894531891735100419151558581427345595429716232598981725413467703918794892987348875048527541432988980218424864778769083834269273255213349744187363801452086364759131829088315296077108260320354355198573336759855502674754827286996484829628090162900147962807888370888758190520963657648276683461091235693315579105941345074507769014904375194772511408514502560618064199416280014968916367146531219968898854480098384609682415726032925247144897000106162678881507779402444161769847268943819220721782136660816030398931969426739025001190298238147179622887451470574634270291489786594122816714921030328733008152728147878301596412996899774291544949359896340456795304213215841400120435576802976472491779559447769579296871086016266314408427779500266714338379119975205217729389732262069261601012713026997158607929655168452514935105080832817649162537249018491419052837009180862610570033816923982463717245724356361553608576535086594000424300919187357818659777949933352865378809201411362979217049609933245009591589604385667133731713804250264600805092958215095935008589436742110439121568563801682535622101652609780041413932116313817279209911906227800266827211259558668055799218701758546981914469105857444731750060292024714136380849036915498260874988297744941281582438727642468280853385964639942555861316187677988777626369043784402103755290893830618520250730099789536139886226438747568022101801675540322196038557755678127891543347350667880730389999329548652020028006524007431271082869873675229198527445595339357654804639820715254611513854430653144605055697274095175379910696685298854245766732412501073664854009007092949252246244186764929438445747912989844676500860696376394654921870412110393657615044622824161780119862156977126903592518650721716736506869594592862840009292362308365532421379653112492052210951557131229930383850980733161691397753602103440726486753683281195668302967977224094493762696441435602120470095472451656188219579166924754359567874414190850708383091967177619966752623117695277573627112113685815911155204768198048287602957262497653825362966426445224132734379733882188707369704873850701190002165101118658531585707015036199941930259971690660905609052194154636382406114481862343271382534041682111146235748099525002227875769579460150187599440447884812208825573359505926023667997395892714409255144943605276774906362803876903792628089174202760777077057620578322978742847860753872493952852717465091993852284650571017168724866276472712225840336558510267107246302281723694520907269862074428710114559967466235982154249745242018003246407056390368196286878334917209611043078762931621219030227106229545475163804772614167690135976828545408159276181202463042667075250082746566070007747753602344517139188392049001537397731200318403242683849554293090869413792199949572081874038807160419889819682113473171418168531455885797166931835287193481384403958773186493391788881851738534706650440494068458737053093240724559966563666395869764666828241716416968575738711241192960111653131176592640754443278443191510350254084681609510927004826648481732150453364256892622383397352710555610464947685669113571206557716627916989373323815194375374462689248320885522631372121618841641324541575936011078520025450189337987412854615927568358386887848607992622318723897505944230730226099562286172887062777861348112166893063868828044877011818830555149162672290108953001921853863535220210064042484886561908135247888541617043448081286551337757306008503102719985798542242481529022015065379389944182061487722439099126851929663979541776072423460642976650016622659340760408724764929168086794035645759834575247950584956919998245272658917825440292727584546664362923989114287451376738972476062797444737715090283182315567050738333522070524406485226893491526290838600085123973934907090561742145213074604346747598735091771418428911373681406715097384822842178863178092567553950852787105407623934315065044012237278790550381212702506774926597122052526586154595868898133954966585134903375160066057196323355576196520694000079132637607453444343110074010547634765850579833630298201124851575318592257141058123865958208583201656036799702819405713642028606410318990336898190097560922612353834897744558488557473168862677718043823899423804975232406569230024548505190937942397903400685593381843211154661445680258400516634401698104939744926196893183921099342411652847175915947488477749315761653425215411541865145658724800295530466943723170593482509214363232142012004571291292817789080459060886946503058948068106940558938928618918276502779635875426580152007704432567798298429678702713181494071744954866544819539703876768498380542911523837759296989161987512201049530369045480482346481315111383442625887686059517794505065785340200932285570691170881384678436546813740864415343800363615400147543036049836232064898055903571879351419954657340323339698282548519958894677454929271106528648664885290597862452158784626655368925305255513570941878519748503625082579806303748446200571282801050489406195946375942670280244780057421479754038615228790876353375006904766602847720049488658226995728318993968232365432057082903433046396760401627748272779987253773638979830462455719757795255328906709680889459210339267318026138905098244208080163123427985893703143467352866777354060720652920506776325205981411029323581226589425905655943194511690258497894918248029445820085790161824814145949875353945528321327595287712884770509088206290315291875053386509248483479500725565900590986607783865091551799961766860053118629982553616031432323050923457029029284797041061803464906560124141239241072108194045114061128979742967014205734580571439038595766644071881016244677950272648343151119871310089394383177805586727608722099332906562258732484095611869069480258597625013044162399055166722162600031108729069454518983968334654240336556617531942067370479680726255700211087258705110204029772363226950952141035452382254120600610295041329200784570774336133917473878848861210587704423657964211512572504116991197055406739554546406166084061737267725695802154085316185514491055052724505062935019943272265427662106196278387789594064326400051393893680847295006990500594861109934493729325370492934583697558641148307445123471359501435065004604454026124292904423480439869565815774380772214053430764658513404533060431252245424697626287339219177523815299139887051611765537314682391209720548935475912133181271059644512971164020090599738538355420546899727092782971378153149114184993341713243425746654189642737472933577601206816288837955193481284238085563846213553166374138325844582090480175703769902044867607418549028137225876787329655144698421534932435256513962446728757269617107431852829559439465900129477342339751660808967748250659456743531701680575060720024588429924169403211184645838667459531971096543136308667209822667448208035513341518566500855861771045304124946681338062528437276346080123064676106529055654692399409483810030263444692639256573492385860638803963449808007179781824162888766084949362427809596246420447979535207118729219690008310352475161046743724054462716794804411469358233032895431182018146307227355929908086813888807861633232856568622353697253244785774986462240951228629749273122443725242174697759607210649611761296699920993453947893653015375606053295625922179909127814803223524642606536493811182268414675379868330323330760386092620959864996889244747259562786006686936126549949263649554054010694623144856546494632189944346388306113857621470112881494807509527850934215046954435529210550544361797138319963901523395418287369706350468670060456895331666198284783332524436921414689602086242180724082689677554491631686322114938935553374831142718547879012857153593025710688764751452862896255943797899937937247615971928550382449218260418740634996509756066441434127045664515577516304856085091599051334517291918992611948036234290075734480511497663182016966087217327567434625396096636610130717685345151959299229153110580035919606845480454765024018813278813024519215683277092982510976880984111590601678845093874251019726021561320994047579194170922896863773326779515284308939636295814663532530784791366551781193370105832783732368984518477775931722003870977463652991183939446999481274601166959557277413742822874282655307311550986820933173448549925747611076043831398788220977357720149925181791912223038290081664461733274054486599581157708923511821769629100379225097710689813422763671372076652842192212390158251103051340824703628653784925283234816461803402908847356393753421265287338131999341902058577155903993387763352768500714443174551475691015159288237454421040269069632510025385717363258144357474696828245284390499310540418771550523089798692457246218120865705648291337989949533384818052125122821659283608356613862770333246710410611753664912546765371571167396211869121848804097781377140822393658107595146802006608525745828524540014853095622983852959907577772576026623983340161707047611138171502164110234800306006405001709915249962847312009832538456194351507300652520267148485411262757430495455597270313594410568239418280632343324182470513307400927726133447099116483699736021463948321663863058231358145154370140152911560783503003263990788782565959681744795170935923353400687954524854428096142263962283207557799363919283187003458217281034314250134610223583520658641033738709965583812643714597417793871906285629660936552243086099649728126580993463033083743855964223962925237469833765516366315532439883659005181908339966417073440323650266918647253655817488194765927013006984368063720173870531156586138835140185615507487107066478200804647848867363046800293243196377688954251197758659408214309252774893402884421107341256344973223334426438901113862219399635322008686540989634637034994019351750834347165033910212403935175061699578640986478690158023991875638570706106826484486047087956033419738072641499410984204524687996483014045325964120228510593431555976992310144407699613845029590278929989088198882796610656799176858360080785459778441207931302905702070419425509402384027800740869484043146087875271903941324735789652430016273768535257375091322788287227388638331510109229105106948895493146886376114309907975768491240580951163537547969467886527114727949839676514065962466985207994983488939822621101696598792955810011347922776783567939343066992980125042246704253412499472241532119153766864992945998784195727895471744828358463201559120474604916374856184795908619821433966117217383754409498946488554564157545905916414306219826561390869667035885893083194821920027406446014602710991253719494929262859151067051172570461085799691506221924276831578505354524633791433800889846654533837435434481091313707408038703081808590075993445493319532531642296589097491118549287943763484401179395253735320992182977282736512632036209923820889497403505413547621076694475507761045576541098353679166711214545721196559193487244725440527455636687950637161554497826892064299230325932445232216966873495495383812956202771523524975207953672510277272901658925444945119929644432360303889948958459355139039511011546090832290949848469210620342110049693025333810977980140990678424566228530539377537900119379315893026872290760108319574524060785471531997501870469172499347991616420831343411128749115285580715840465248630050654571049424686358029833823949847613403163839890946018035535749829965925415245577011966218095739150923360069156289572890909672958700456417955513964957511422026265934964926673512880316004216875826329353740016978732039794391461802708492113797134998829770756692324979998771587624656108288693806129287056328130620921994713530920495559673032787323617903329172226408888151581495274094114860413057668110544680613528630807860680527141569955019324006839378765416960997497176156473177501673452955238645404535102195570750514549687892571143440798278317134077013640082948368932479068667718278826797312288971580909953089882836172368878793902082899796898799581303604746804439966365406005331563983366117002080467718737508102699867004457054112501821621372929204167846750824637457659128198438769364753287341108461565370836905486338721386523642369011399213296118765052825136830084374063104317842262618655800448798384876735025308411393117424918284249149768967592835853823035957591318645046610616104209507282839184114152389969388897054540274556490101615648495210230801816112520878616925645453645064793298744153823965366185299131739273095139327392160947454934493761497567921393530973267322812824862781481790457893103503818699200845174722930228452829799291216496666973843417538380722934744481386748198686904862589616626909137234879464143850873687998794726265831927445160776586343383885117745412810261955802431794218755793963400354547862322576228747737010120810066810492361005475231054969001396534105870573884055933591989212249506674030467213289961086836620126246912945793221705781804750577063188364727440905994799287854334614717832014782564732602659393947339670813106591019390524151353126271432213772423595342874869356724051026320041314299101567592914657241695039816123858242993054526072508192788954585203228210477665418169182711531602551944261347302785592867796754183380299307287664682091932554925163769996223561880716083506961597974950747506611022808243471886716338367410998160055241362685495832742201488421043608585886491201575326132619098826235033999083327388605308176563435416877756674413408806548137703785783824745873884328998860470390053251710084552967825520249779975048313022951888469784975618740039887075903540430972915736513803195007233215934687686791123431860505891340527113609508157980541751391750362441010552431114787813202206103391642195307309226513727137992135519371338716544499643508599353176428469998504160653070807660069261121045389624770871890222521742193036041828055564721984891655506382018800834681355292085092557934253112531004252278752531831005950228715677548358521406163319489131336160292090578276073042553508608506768155580425711112070780295996431843815935358238888402263226402919272486242592157138471107535793363932004465580029818807783493963849312934427185290227862664341525326527975664507326512340644924719865091143123557187268144753037769200449331726559954641042641183950858995859744133328236157350540349969387672391556871646334467343659893327232118113112338043571442940710042908247890402279190975675100767289493642941693559899139667022121111969522504082631281722982166495408931042490985363311746688498831820667185445090830252583910213930091810801381783509320816846522381404094062748502352400773301473653947143589017183940183366489155280360844493871851754642418672642332724077257626073341687471889777074181316260455993362507360145100278492018628623471374559102753245509710322945010662471208081317419433338611992020870016005916653671064672618600146722315508214306461684028224663537530763488300020524134490014160511267769029867876973606360489831539045861727559792992245495366634227872878261390949111866285195072167307282087559451882735986324984551522053090909847933217082937849539743615926184324654962294909918103631452976975930140992072905725377797110522518733971862965546547579638249771334189585655333654666140797232332750600451642934223975562353303534578899364859346814984503467410154760490212166486270506215252039723968200488759962555451511281769167706551598561882785608799765188533758355401369604752133600271962344897215855706004917711604371524180373780076510148507752240212134029304219894303900668919169022817010229332515532250238267629687918302281488157940410816274151425173112407448765984439767936931792965194504911051527458694372470379153366989039354066631307236995087673374342537057172165250741231622052992500380978618072242467244556376865036787769149696968360995269912885083310047548297220702116506423752580772421114123558479951227720321230825268008459638453245177779881143920340162118222053024163307197190576013048423113113314752603155665673318537638056077463505179250879373624483019086799797369734270162373731446959716430361036411348754283334485795341094585878117473519131425294335143966496472613909271631320694754650165568176813743133787763809156189794666291520462671594142510690007566509148168442687292578857158642822571699460295923914657639961829400834546802020834346479696961836625542942111746070034917834742786866784784364400096548676779316705477842882592426152864795415642827619387592869200690265697732206035986360265181937204859380294544717020968697006149812112691173910354232643748577983657860843830161878002035326750030502571754706469570437517528652993442521718794058894141379073271638001335458839830173920095550063965809492454540728229732314425111059942034369785712440004406786835373678390057513109394148302991675983337254585413761427648131454575056343263046891533423608131809800342502164969121406256404609050621085016034466864662975360087437564815921275489096347675740238356840571434966353790109065464237209465477655579959399544145858759076483429255612853460589066021509861636520167228578766328334488390478772006010895997345650205226006268102557026315165421405648706934264890541057495066102394612191665103112251602287425649847374851916894853478373706293725596543017312100829938429999108292048159579251570700549737215572668350245288067446493245014227207683725137009367734365327214395536837762501089631202106549269535922620846043658567603392950831356342046258774856871696968309010651685335309500189495376798149798758511248068288579823437978770868892810712518467909556217000899171261643530216956459137589170429132042499463796981435400070590726441422028531197108539433761829193772318647285129977293897108141523581437103014130072514651895805044558408633538442554336945760580475836619317090373511016178692014378843302969873376714654825461155421014213669937921788904324911757159765612619253300017970098941527076004854486377788493938309308213117270762231117191183339963618861382553644556408404587130258711401748374246879324193866777923282878109294957311115137102315870948651884003630248109053328157994259128553451908645274808693170311361768175472237646931118930728644532305412544624541128028797082488824239721852992857999603770356396040969210698854911928825136378348348497142211184939138937173821251655829874174448178707767832744494532572711235104440677558857164800592803636198322993568819430961284932527825637029489567515468319768876837351952029299261113941907463450638292376034926067865774816862586415168318263243735437818179335827233224008006886224071232500229226926556056725216629308520059296672750708350530026444173215447490994621484094353266448818645687582890827818283068714009067654201956747213179535873636951292304114234089107217334345857508054728067660832498446020219883062541930926866629296601304778661665432712517276501665994085378043177694640510451910693197125952121918812109706917141575241925580508560654653185285092298672075536525401555569047937430513049062518435047195740496796979167065140147560542849128423593131887001074030874476595310381058182097480104727908213520169446597105936027847773362867534306096016226986337934358389176966004585500962390155198550433690297589408528331415260885434801969639659349223970759245291508337151825560072251645778068206313387056336369261988408840968448661706380419174739988796254531728378963439373204057133068518766572275158332716053203401291123374314943536928030147390700873102332680983121254770577848016410340763417426605440234856031977007742869995535597045364121787216186073224972025633655058165481567202998596491633174179456578776677583730530666941879413114383107719288886552675043063829070551460342300360410010270575638206116446232576073464656300468554419783100341592957185850161676109839311940605834105799841272790692164212816036392908050211654996601848691078674927689632226923689500694355573718858505880202645979129137973088951179129612735358544148727662822157533282660979251043937145090695163970003824704245046450350675783086857824946680097757713351435530862389878471241647002017407365402578378101827578291243674039598630057994285112213993210139780447103821645046263067078930473421962344194777907596255425413054085266358077963902362729027833053709153895516814992223349218478184142135727268611276553651704688100903163138814826732207154313904967858113969185727789674844152590416739811511197650882788810136371987825484568982087353523335939569892526962994471698987592113884705426021028531891447497018665179865410524810150149240510368364300445323158750678141842777630906045899159200207210050748772174743628487122144452985434097968211815015312200429127715944045273862416652281007531407522533996631073261151462935194421725056596193298499315335124791943612731951507790339024173998882171648468060919441870356054915549108615823379880453699886191873645675750315201414827739463353916529506426259328933776966194559571192376366401500780624888699011094304865743862723013853228310733140196279447868700986158589029126587016974960937528854454938534442886483842261698928700645252794607562967309676810116617897108919129910323530143512373759574429816390117325347792549307245482028008635962618533937223230058407110596791514442353205584067769674685316355058032622970677072700861865799329464479036258616239704371995169969036915049271335360988174092687346273812578562227423739408529669647497262872694126763645841230630859600480110024324561589577302344761910043256446080794968156447612909302090855206805974137711170517181455949804955771294076844550828750451947182185173608538026996471024558146162771140020731691277852957035328580747956612628481314359469931287208906868302138934620046486298181711682253478833399714080706859072071281843702459406400094515280245166234423268808541072706826108462224080955962735765473566488607325665386319632111875263024981118708096077567460962283691977175210187252682651513650120305365649355661154892903244029683572709848056565398074040980952218329663727525747649425761302983992552617052961077357578926068545407304413547753378266431801866646182486593253477305197804743642015030543109450316731525093442265296561059306648556745459662107029118840730465370698634636519195464079691002910819970266729085371489097328989021383776652566953482242347057693651447995801831233222841572859221375942575603024952569539889786868253632258739004141677123746207320494795026634913902739450424596543660055585607706186785660323838939570320433998677233944993017024289363955473833010960256295062409082842725657511325591618539292365265278488214703470650289025346081856318213793781261907183797323443810044586331079706546415997265219046657932521973041968457785220366343469851579969447367438723791178293688852095806591686418696831218032873586694983177823834925656562755473827174952646682592656011129640668472182241017342034329435337312069230040960913093886871015216502221452485034232437887926611259922499149699032814511462573474300663604782104376734290699567863133237699151128064220965303463779668110857219136497327002168893968040571069686151858415761930457062725187541645969612373545259346615120470262635806849028490648622590736161735321759589786349503875355459654209584556695862918138804701933416984623340516712517869652997268748637221261477534256228101033695620049057351601772773905414700785482890729880630246803192348086294100777515336659017817490065922765950167546408032810092262386829730885909422637798789635386389827085744581796362119527194946934955644174157534925175480321241333557136596341741726995260844414811794623156004160405002812642041592487184651366131389541582623413646468498867883145356749655965156986995711471126079673201944051282170871409954400970379065717550829549615378861823846883087527391812945801753460799635575890684308601498365376920153890053973415571363887156202666201280595357319942750704989739794266165302505074275304952054070284283247602204331156332348699643789897445159056331831719287205505196061830972795193042721783700486007098462468939318692308211414075632166172253834428957154880297526258708947701168197241688920870449956897419162754403600730767257705108588157246296707168209869704369370103026345709463110013372342667055845164094497291731917707702585958737200593000881571232364912575568412021933632263859133293077290578767381299871108039905098137115142187154487237959253938035980153005342593637111078060232544131568051181889415791597610774551069278449258964703708574067033882588378295923359433915770053745721208834533752370443285210230127352823835892291331330099247493881701564464280717708896503344051376227939043842310248063149687965915498711796258251330368047302431898061168487187242543291131280111821976335047992999652938745405218404181475163382209444403945771658839523027961057556289045921531519873398598736869307579862467707877636352600532225079007072902936815912530191450423817308162337280637025657389173900897500986622125641542740501345166039650671577387775885865899426705057849455574575710394290411955640014960383605717923419326180318178179026340051449970120771003931020427334721750730875606562800644989055976898411339285311936161432061493529347895154391253327625323332717136154084949256248061810231578178910664543932873484942944157451413987345952793308472560581671516839470405570246066774712820382575395881055134862289513491223486899484150497110291304875681567317918035374728658597016285960045828142836140595503243856797209645080778108870823066532417788823543863529077433279412268795765329062624304432824086233914654838704826779753216117107647542351174001134289862336019312089841022748274794374836018377692467429391661944596909202755432221248584499230690462131664049762978322809486115071851404636548297501932522190552423302783533371915834383687391077516670209282958635978769507535666468401003743598018876769881417938872739070074316840253189457910106949365560556437628163984755698877598586184671572642657162609660586199403466816085179471239497293856274451806887061236818281272732322232471130189683948450686094986966574256461810516946479895156869919705823328295230589840953196070999141043602733430984969864270307051651288794306304899017498851366613979192835318314508610986964721415184899406508876803681316111504720932762000929113587163494159994219935869044189075245520577463258683389638464839410022330816165641520573425329121322692810614137707052373496972398727300506020422769638190418906175982939141503431601014787652382648087996618781653650602147149177758919006420237164422220625788801180972822670332658317799284940226180166591959289005379088468116755333082026626889737146304502873807636710263156045191242431970789243011358074809156110407775524898362125797213560164048251588692427963076157985569337005959903754648853641746203867630531488425817289897964163124401140915987873334757410061870068140366112002909805992648493416648805282213331033259804810546590835149238099803261825105690789888416348883210894103981061957816492076774432060714930854912904973203953494745637571706012716569580741898368385350497216738899550632698154412529651035852141219151908501989205252728088942306406829541509353153147629153445692313560098249375512894197757835317875796888266658831198701962232155568979160450317635611460583490818960087007673943846676996033966258119176526847255609092426229259544237929001524644428585186409926645541061948825122627979147163757466614994507268428211824609621534095613367361977828048706280266320067790031623787934895975520062344670532199550848382918258016390866434309432031401717050706575009977132384585147891925484131321024546450717729452434474147283441053100442795139907078018187433383899999072207289334286987316001073063483065913849330188043618490496928543070260716837191160863991041430364677571794500324165086310878512230905221504875947012091709602370542329016172887563747925733027799588992300278695927898432694115781518590209765378477347788381697990668142412334445705281183648833998095745943164165111144530902771108224657328755137034127114459575594732886830937769773630148658448156799410576886967950996958289381406902027467871747057198554729995893584229260291918589676566173292505769190168767609500957362320391144702140317086219119682702486181172978483657025912005216597818932199292709900945035002142673138772441733911400726016534085619270712264222301878037627491257700057787726003611377268753679008051798615146627071061526690194808501052120269802884797727203554249569902727719644160725187687240893440102182288774646525651358574427347429307620534074820779596635514218708117894567711468003466884024189328185092817459877644661361819294540088654079092500301128002530633992109638828575984036153857375503932357261154817264667395890685865322293051592416445670653875901603094914175119702103677701367668079055632536050925286357669010835872799027733941468713010976140493137061063932202580311799835671963044646269748117987283059116052117545395153302801159064949715039650780289909370327921768411571405333496061427571907410388167913034893994201877957434306281848062381275265759636761498883957199305301588295177580920787059172517931413199216017023396209756738993594798835447264115982868991122570182015803397283398786279638448724261193487436522397398088996353054238057078539152385165831275594935912341886949100851860259654890293235632026190747956366952205016742131942561591280161286114743455835219039721637972557151686248920898028778699695635986220073183728206351291873180397342534970905768758056982317305834701816360594229768290403137168707242079425989121463519068910794529965368810905011822628379047582145810061396945443387308968006280955605012837954107352145079207153161157762731241001724416174128871146343692574676092765072785119160038949579896340219698040758939565745725975859083710094885463876054507243088337234740607456309608118553691559385485259446026022160289955877454928983254902480971141205707220180645010418543078209234745471294154627909924463492141400627752214620937314947196887226793265447826651704299624619744429562577669663674403913660203059005391187506263238058726217526540835661972176024169615073061093347827057910974242346590918447166733683148558733548773356847710329055976227554564127098364760201879981540165104798377760829795629325630412566952551985928493453301506827934024779838270910759250980923179531932549826500212788638059548416945575340982514679694855862031291440865733916395340529707758873342711346784276582691158530052560784734941825912764123420491006482082569135213424753162336082891111285770691804989715451299065225186148203297151783884603452284355348101749270995589929048693396996064776696761360144994692478636054137709202668916254651758326076378061088566605511270523519889161497862144031149681310748111228374305580392176827210880327367676393088335887154727222876867446089686832263852156298521980607809319629381644912035763169474473785940797754697330985225106226314253865668671822807305880943812169311529404302563585366673179629611791751239460324210035033543975727254026946590953493202185125659372233667285813265006484449022467779621209774065879960165551834165018473505672857286319514895792077838117005338709920976430735870688356215989023297857396103583055065737861945705416812046499648695868220971637679431842993961540750318900158708739116509023627644255448177519929870547017915307072246328133462512036990951781962769599973604216754153781814317364337796858727824235085631951804691639370850184274335800088404760562908475132490345542202406383160346751916663078826145816619537220150992048582708635217392803542803318693570634415096459192643855596573432595504790098590698556305243245491159764666629711009143810210028788633219195969722344486392200000880903049135317246671819681399750149910767475571128803672097194072446171781438498295319692718007950448990787196523941397140727065278169784623266466636095538491906390761388957092640866842355652310865866338515411598547985241505378721777367524197918063760987615030082276568375601498580643539305547152660636809251071741384308091517793598276627837462380470914375826149582529585853480065916526250789711291789425186745574499922678830459782709245159131069418498656759972296216084287734953574489714059508341211456773919537278630987420424255547202314113920496089007905096339157130062181934060131182152543441323721159707267700494424835148278912506802400707783410210564263191728929472567472792275130153732003747341830202034157756533050864565557394945128353776116639675925313311161966713701762164715637880004986111580784138466619167632158018092015555604464686553536963165599862968468492653232776174934995462919734422880439100025517073682597911923711246860923477949853336243057634347025327076673643815515247557139003800716402124314122732883620392741018932390291051070337862949296618986279822305276323577972151412489754772057631779072618047016513490790060489171380325614840081470675050727018787258610586551107508831184316663360515173866869979125821836888031838897951244687477159693186264778229950473444203594378213356119061075200749591183863171791991009262595312271164008522364627889106468115285323647317408446492281909738678220387750649116642454453260574312593181056107014896976462027121964552531367613599022732890897069213131380946058038623333578611180035727436372325922953942332901194122840193596636750475676968514047780581073436617324746920693831639629704093810636555013874238542388506181190129546271492565116123807319426215470436200294297370671330946633651602923789135760118090514229508204246378549488039366602338699991065192590858906138272859730627220567555409322310724410427712888263268531348619842205959574532402191923650733804253990228859300759249096264434384803742778974050760431128010198041477672259538239593275252310615788975311359574439392787526018750435296949460608550732722177816359992879458116249363179028296240841525103921142849276938916738796748782187629524232846862325702285199812063629601830239529420198003320301748846584944538429089013362920967472841900565266187591070076641215459454922533411115549443186626424965475605102594873996155958973594788557530139072667759612207365571984740970617233927501835425292862810294322183632638003268683766913441760671875007527110787398122505674351294361558786546662777141090909322327526689390326562739209148953246511029584546425955069694087081433311585552958144560393273703988429720722386779823617333019235060450356171439451053297077482967672687476446304001604914088351770068821771954411438087706175312294580997080558918216762448519948559252159845803901224099644913045373434526265935092540804851389674169905107592564766715748266008272257884892026562154879201313348958745076786789699164861136351209259716077028975155580156679403623738111937556012960988711676640013686018682489829836067080903964976601005294012799796392835013090748335829774383167234729966136012894607910960926019749647287269610152669224474762148742934394616632314246676975073019675387587337465248299201505685438833892097894593098612240549848084281793541079835284646904002892842313261655857397199354257328611813787265945927719609809833964277871371225837301582203574070837320828626774742739491359648613374200365955415388349552467673044055664710462358118053435605315193898542349463105590400646744980643201183819885318711206164089209429024369097852633597367056579558901951084914966725575146424693575120173794453725634594542029108177696678374761598160065468760526610434740498217206120899662723535167160591296665793461402428716478135564394120639421904410407760614713924303127927930725702736001813207783098665757017970412989259500926317680481146456493641102838705218772045856306579288211594350016268001523879985293612280629690523293852778511673946274524616102404267901478709067017418812375691291149571258926435214934490282591443236631346574634533871511975209234914403340439199305397839308279969199710361003552069971372642297901068935769990390444346787826635587775266065351683143899079023972714893418915020173859904280885125678425453990188871334206806886703808319615668342286596177346450400774871461624497970541810929492091406780594145385069202343840572085969599810463199961931104692124642645938042441123704984797161851517185305641482325791851583299860956419378738727751153581975066318341670283592975038947142919907382933192657671435964284911553227359223737246276757554838783865247987606414978903475571772416303309283952058795734181556752551138034219541000900353356205504092619403435509534420620008076426267325422835859219413957363230608272690857899325544404459840868340984236358417823864984883801986683904733625790680557711574867179343260546382136212668072281554370950615442198083253092191576404464293351739478179467980139268873056973457153286089363504565867643065211738217453199470170255567563913546266638486069305115301156103549294700685836922692869414857895982896853057209712954071378671388130961634947441268861825864408835837465918242769630312829314242205707116706319574825257778983468129935394023188308742886422253699960953848941374429981413856643797080721313409276759473804962687506385215142952410443222497774490628738418099667934414992487654181895273021218445036616981745968439807176060348365177432269560800062802591885539948970986193271505953422583837281126404536270120725698879874391786548694685051009757754487791804813020150498269346536232329152390306144225004725972605148173762835546859550702204466979826897177743670327103983017515137851626752248689520266434127129781945756315289399948207600205325843107315873661648311250259332192480533838822695981325691787614609214256761645638428469733837694512989253694252309084605863157680449309253708724058739945845072227175434574342476951125086591506991301373988478264071638440359885431522385714781498068438155563612510039281066687665924096156816929017604510205278157012857068883654071481662891085260906936751864061853320580279655731933270754560184337207370917387393192153421939601211627675056602891643172175304828566895141750531402356429616326406077940142886109576782873076790085753779130389222122968725246425165983168921666373948447454864377430606190994248214971678537866550102416726380592549841573920945128344158549968293484700575180031614242727184802622004752032556564275896708626971592474757596572053120886716251536327457814654565749901943015971395263706064721415965004233581504827285407835798693035832134067128164078519953898136912330241561265264669683387896697672940174002220391536433315866407553629342045644883458379835985150040568825275246153501692639201589589510626648929832978569955057618751777708385029956422695159137058509960774339308192062592771745905627103102790532361695626192910458108306146005856403856673206032211181086298586782830917771726760814491507152828856499831574782303620777600357950191180646433380927305004111532925789493544039836115042597282327265509677640247181913770604236509412299976498298963319911769783382680386379607624628515581912242215629495595157511010776709928815673518196926623898260477382852384931082232408671515991146369042334233384874582331113863985279209701409392836164519946918910152586642546379480623270323553589490678771407655162483111718248501482043631832078492339259080286497972517478092002317990570277735561550531986097724516536508577385580553173949678042303005166559471138403970409937943080706884419086218629727469216249116977414144810505564089083565934037956673215563676756037625515186457313250716941398474424785630669499023330691453710817340509686697904718323342361753028953128912336581656065313981327466987035429992305717879982014149717967453508555964188221549921672734643039790950156086734860373044934284040141957701775378701866015201663447771777889123761426086735624989836500536325309114773567737209515383167225909993216645456667897649664912693524509759481524237327759446744916144474921070762148411144664746918086796516198097962998835675573106584810490518986681087825014810555041294815915133237485537601440152549709753884109001224812298858602996894844277051366816296726841990434398345528748606997263156463683929002669713747472352950026247908065793379218211702868333615257743315881307515157195640860907687385477623725153187433635241080876414344024237969943416510492327504943569686229362318251375116787812344376209098359750433420656211595932990132419824758252300555351742026792632847777424863335735844879920477396783303328335848783581012095847872596749190789808267304143741312261882276425917381374676528957933347289214933153629623870916410642270477551129977859655626005318507634399784981024430849780084644841603689119798275769653159003161325790745497244194513150284266006399288946722967650034426187434818687142836180554328427358850651355480559410812548837429896140143790590675021905380856781397786238928420518272259606006828449811869587177878198129572283158563842951180425171147536222222838477008068552645965631870706373022115542827786312605764050917875498863416278364159523925698872394065162102486061387190125330029978096937176284617030772502469129898405550781915829933633154050396535423511392689285839534114352928980959049022419971947728951415052002307417460157343249544346329270286059045208020683872477890840156696376695616942006097596593319021377969570437844771457623982790871446612089594802637446896311433444779816312196005375113660183846480146929773719536239435983082518978909759241480218206122336265929837485370654570186647857715564297475881859606574332132867511037610733170742662493132586076773451481453402534393048809585263748490407133054760370420331406152849896334887975223692003673057751485771344092306145845037153355380142399797674279116918290337097382707328124127761084700617630303089049875940282151679312658481618662748260188502488506364354945647263364821196802694107918521588055814345511993075205383733225156720337365782003244777662024390218936934323484605463635611104230266916545024017751092694717312651028340195212407873317782521618404168992828750479494061983331948043671753399234621785873875697810622454729978587548606482920309070910924147726027573423615923852387894662323697462165828773978120214013052085931785189993983086286196632930548918843014060946793852326894646430869274108365614840164174630301054034655925735843118733512476006125307240281042594728938863855873616666249975124718637942411611709553603160674627111587241736765845133345769583295216792043286541159358006385927690777048934751552229751904043740293912941700456945077228868675257072450242704412584683476307672321451481434635584538384671216636560797966260362634401425289083809204341673464097132493071067550334226148657252194332575651407114178917021604712286027382287676634301667965154018804951785653135471075884840842433579626778514569449264100474946749104943533061140041873166312188156415031952752250904468684485708852125726353674189294341509191085659278408253689760796380595614187403353020216214089924629610227929191591848301011285701683204812166118996703726973346872759344192693697904267913864987476067952527145509392239830359662960590281473636314393595561780992318880475642768326297572118139288102858267757683205565829821606113260857663309086909193625700727693128797419122436659850505433234658381533936190601535764959080735632012191158997835586673781294757013553641260124398711563824691207377994632486550333314692750453208460859523941676771033488469905360770472178777655195361682466506040660620095061345167116029975189269606818884618397474096098702533163801198934369024554074574329668873030159771031205314355708577275938180280791844968726630354464922676927718721905326761909500620224680065538816707723258001266088920517585998458622444941706787519952677236898917934887053694308414195546263010404678927591715208141791610354112998066287499452608678793754450820215271893108411978784425660364130374710432415152369074629515872697105960075721868829393346522420490868892113985002625854903572275119031134462044348418362787477502492665015226976079604373497853346176339513520635496769078890225640721544615014879705011738885227351055470538869641485715709804432393045050903895992854831486575799983392979266923150541498955383613925417249861698047686297219689418566299706405679884510663349431268336287045663347025116953208091898738593642497705596275861022398369165102383032241400374893116717308021778173312947900758565145851856995214484865401322610073944278786159365451317096491879144936978608729300679734322740559542866062318408669845911299441968863158496009753695011253072498797399219163508908932609445579278516325699550771865814127757208848062701468726604004898936126360375013696822754446065972980910887967041811079653618058741079897294524006490764098500758667632514570872593353814721318641025404436572819806125449627076948704929894410428047299342880677266165116312718442981892625927175951946384926779662067531267895873751628671748452972555372338268107906761867206296997463439059211988248187717937430724623848229061370750565012478077921861310721297232944687310588507755716033969490731911879968208794095546976719206388319385720760009963696055848241367612821292761743287348943874742832884650331462295958698965433572837960538307626623068895864539317242544284360153532229955724568726228089854702604140587347938594324321814541673945172429534705807452925297755758787199464138834830473676273081532132175313589882991718185374857772355433589563410482063577493330508396020598160528357344929974082361099728566880976853492594756184709579730032058382306764857108486109841496015661101287194091214001436850199400017344479191956906428735876019765256747473805240662441583633359030171720646225643886684809913936272600437851108498814638307461823375205103853168414446156524623776498750290048907859996121111576630203679323810695001498695306735006011573905357602252749691719850387301345598055635074778898255680882524503049246247360764598840697822323494180723351092312878438550011799442140828499912331772233792946176000660332556449116727709986523603824395691542470082724004655543065102744687002434439214886964089061300392049622433818881165712276025430381319066600617512406000334397217756174100307520656318406102002850235970035783582951315737275749843081985617288289195485240544704988568794668644106928858928818478130163314724636102605213179496516830810486400870243185604857064980627430861903563208485128838481496451070556536609489354088441128052197128494072410826145247876416480289063275513850314065299404686359306657922280711996441585603125088088100477296846959818575844097061811374145312704583241460748842590189492323990457702444636381969573453633794358210234354837073667007388669126992131062705351673517845112083053447705331707610643796086826702123033953863962823907853846201271894427028668657006924361303324116732952763172197318492100156281489247726350552935974958456858979349330258405765810031798364181547820986128636307396841115812669583010643539323662846923880046133902817249162723594244814513634856272031938364547361817382961647833352073081912193464336258203738580014395500003084889681945549227262872926269419991731028415202030567333381125122590162260693038109351426836645682355143508996579387987168796142118721398185363272965098974982415068811998657269814547270667206185958162859900990465595011508653093036699002040356287187904766068094576498706450966409356049385901235752988868322825621219442939199015852332166663217932738075511065296970758974722710940677200982492043860475520149010800635437650173622056993699636297500024546695899151499556032451815353224712827699968151611139248850544680296011488485127919140660975168422766115520979141529390067496621414932236667533443244871295149074263709675173143607932457699648743911118629656517507078133313265828674698773449625041536844764944357624137423001189893070742152911712337410593550097978269865445194175941057158486567490124312396642743533936723144919564914729922099267804477523326218242231732026877160600403417873277485994317025252841958093389798051311931727804740227602633964786959274189773147858107087473613715658553054372316121426219295937634560260754817308581013058509896590407946604788988365527131804378443461910310772479610417929086841107180674462110526744731828424042984508498639029919102551952867474451873485833607977082071008138291483256703292806972662862319249152830205154017527047542282074133371683728352944639987927020510065436249166460059508003584303524949591717499325214763726467143420202200779515766688648003757149802311927877183442323085723598192602716650355698257846143778904441872688732748255443569805739443129333622425369709567455537936196565410882602130336513524032981049346910565647460895099325622091210923419126050343444368551000934835442450976941395456616926997388452319008638433229417848844672128253209237179464895152858528293629241370632184957566171302614743367166022847804901819493855243350543323334625885541958630529660820875992027918973195703699507499940949947823006177958837470519330376445492867707593442148304345112238117102996755324686481298329185893416528025918048292289250904616991254873418459782637287976789688440374587450318585816074503897894554348630844717600072116200152274384397050052891132591333320102931330743803883097170056278997205247171628166478513418763679844525251848520209185863089563177537993864509049236257061446742219725678265707313019341751472434444338531955022116106374195857414782275926210801152909302423298081101321856515389596510703340287109996482988868659685536725922970918334755653656437548627149694077880519625327736967242832788194756322480154256010894067929207011524439217643082592256043799767746361838675259089184379472821961774660768569871544720203110682998799524580109433049006619293173642527584309278162901938871359345982564194990056678141801534107889562002281397256045670708176171780128536460669677361494988596529321696761872833427907513343168495556637951106063606043458830554700892745584572667158477286009955842732917285433472297420518124635218844272223245829125285568987599247205507756048514696114485479892092086523464133458333526732159502335217434607409751713677034038299590468194575287061538359089648980608756339682601121525524282477491345944620571624141515490005320433173112413317367317938063334849890145036113753593353450106475619632235559219431003239887305125090682121665312904446626620177515056967952381696493399606114383408831071632190753004390334807531788571050237867564729994236671469731864354992860469654894513914857870956951814302679374645486686744896385600474625767872411372215976069348838598658773628612888013316352656725241030417296600993758680831691973893779620421589374599279557067375259149123511086476954849791653084365922398594984136389552150761078218248745439508579650866966704845482781803978438454221135697400354634163478843162388916592307019794697363082603316516567005092408212981673798060118937658682015783133012046046323225199508672670716809570075470364570543989839948395721920296665110405425226064250970708199742064793034506052183906634111123521487301079225880408994532494248251006395239179588194197853139843554526423554969714175280156535057867780501072511259144224075799261282901215558260114439058894753777278457514525114932206048669239932100587411248022680965767334164810662638253787134860548058517850100697581913836644071379727843098106447301684952563871842191356045305803988277250516112090186978548707949083875946914154825034353487755717736127692530848256787468959746108170245562573554392313620049514736757281645856524173276834149438074548364359842933821473921363623672247105134138961938547468780766884586133925340751096566524314926218600117063632900671582274406342206688036322155830843078400836695812783097230764246087033545031875900635555370268919311195120501531162250659871731933996590988722952565420393641135497476384657486328661464194587397860347410582120505821653052852302298288647791761375604956712510629409811391394963305572743001438627577194929527550804361163352582554068597643733800881997124221801920748054830628663135149204781383365565633684216799428883313855475050396844451139459761520595919893383842535892012479791282586607518976306105247388263975456586428581644993863735435084056190255630470164240125995010645149863051606557020063201121713412014220923973906517606124966768773577935147636709649583436393623412761836794175743727891324076409463441277981026811996347957512602383884142238948324897572223796914320398157955030593877454009617325678533736731599504937258108100648150897626323760859475676914360134866219212091701552905497707112151827422757369056423085879709019379847337084558021346605009242649730757792756101172799418181544371913558732748517716567842807288272810963329741141538964745349681881910726133192368641336215348193326516704812825945677426842947355589208887413659295985580648512813131593430918681870066964352776057566303085495989402993973153075356222137273711958076229492023549057382791804389959213686774348590357714349884813338324999102360393799884681542092754408774345892971631717194812755999148208373284584909326586386925491222608804905549756067768820616890803737032539438759283539760578047980851426904979634439214915424859707027089075472930233989942275312448261137908753577835084856508423629364311359899287805914206875634899351044641541737149516537128221850945080815693779681078898156469837489180834657890405519852760534221689026910539844151079949234964224844067482807861817267239176785011697212453819126824561117553577229156097126900619429617739204279784769087782138670535693503130306729503583187984051579770963455025785556537703166677670741398310196474274517400072572823086125199940419853527392241040999157194909263195400675608937848768657347759925587000202095910155380799705577804041948748556252940696796281275262644252939399594487480148266571846254760202717224518337392712362857316464289489760651542085385431495802525771555989097398301235005502021102668569690616793931646605741824534034296040848106595492920071931968164897494752398136137531730961303872569250355526019026256574940412015718271568651826321493941865064012998297387723958991533153336941433832084080326666207725432505542301472605040418351432530543905646559542915557671616048063821220632078856401268972817144554311961735991019065639427185614178210454698905169143744355994803035207789080524426855524306708703235151346221668221579792617335691255598099678210187524802097378285861676975330934742293311754331561751347448804918472152836426164265817222041534355404925044938822922536383747274106018210476361731318663480839344769519809508928742114880458943838452930100400475074874785653365763905542612039942994721941307868236980872857966778856703637742464974621984642433727477290581856875763050223176443064361216580210815049376144713106764234104506339864299249810239140466975754344830001095505411768425067275452814014870350476236852353979049046357760208240013406812123402304582987871239971879547181747466926960739602291805575020439253283000783685704709598022993896961060519743263696213642888962573497975238348107743900227109053336589889644722486430713090914323225433414930498532357645901966497737171593480985384554324731973206150867285883747499069820834033190049955631487119391399058229421468388369354457775922517950863188435392836883135818261045272566180046643363037439169941138417958773187284038005367154238626527185925283849611571783462671064260297799869530241539033739043245409489391606427650551224717837792273960443551530309274003887594232363940779686276791631345942264149274002642015185768737573793527906515986264336603495483076725699162614256094316468053906878967004817359989919257449793472568320284258604180868565699701771762916611954472973138687078537700911950749234452343457509696295919883174297014031934856648024765446775472379657811975417715741107894036820023808122613952167490309948088204396490343304276921436267282509913862910705386192067750450175448398523887967674347903804249242925599722262192421656265749898255909037728059709223693812744425539198708964162467278932432398877976074539364615268925938723561592331517176846412498532396036816720486133796300561958801050091651016325044037289505755307242908018310849617564222261765493876845233724751577769883748363143832163746164139550027237051492303835434325818608582038297686162385650589575352776220545649653051759217056334326446067620073725705098526458689521461979779002516496017449641483308821730105212172502433511278564488621371304639284822276155966731378676241807088811540235420573998131037521146088521698309115597607304608234374848035343246452518920141422668716299635924388475471690023778754688128806733760113435218188960544568541286908284354423979975245273356054054619296494211712772114700094039923433157935503469564273925316420678310007224902751542847807142142772680567170917799440779869225626647206306574790476375368771208736990148407981265412107759193423527939269907173260340773381790831786220817082660542357605858608965200685086361632909340594326230358196249460214160772176682147248463815926337676665214356637846051439479654667924123660402432145968987156816434661021775142987666595324245847841075149696162299539082221633838565224154257675146799820582260927744152446550882345609255513256651640932722188302719243604650041766146397842680090828456613443509092506740361151953195093784356466112774322393123697658291863032856744537012259243569485652601778034374516152134612453073566984059263068695696044125597328825946893782619514764261606671893232316092405396325968816109900107680782181709950103959913724277395287531977769088004232911859661664020055103338579795749256425213262568083210700173231015412124739226496055697092099011432977794269404400616925176520438664529330913100416645265269017816312987759440673199073527248732600634408064435139818735587855582962322467205900656638218002395487579849421488654535455201022268482181957446436724647595212096677610445558257919192968475211572415613869870853656597202188044459831526135239135694282855652556220355709428435295250699313052193023967625443651491940574970753276777766371289721646510939863198453018303496063317560816652235188772204136936809465285810217610997398189518798550884290493792410044881652051050251939434389809859973767502409031372656231910373787571668339369667202170173784679610683046433362738044888367788819030599343432207982560470096962225483423075936236480413438581134313473989226127876781010081692918593934807694905306020555155370971425593867907180446825661480421387167127421284003142276651241746532292124028204787488692246266464057491020893073859484623266279552129115456136891373693012390953237193304707344617961842317715655608504991268645048523275239038907276308578982467848095609951299225789225506226742237670169345327035497925306719805792317985220896705003397273525932249905031069607016663550084161571197882834252825447703689252943170441142899705954229818709650892399854604457677749377057185250726565054622166272508346966077831003605552173416394650689591090871137039492506361509592992512877391000559407682126611363227828350644842076709590753919600321725208294666759333199847268114500991375290370817787117595108406414624252218531031365372758275679395111468827237828154028906067095502866353652018999959533056384977467090291416590216152577197437795201406775025999897838280868953190956434165849718117139824035698294358810992484932453407936086285559951774526081078954492566349919280194607196876092023541017839023371726082057883265228738050596959568915068133033568753539184138078977467584075693287716076802450478679528545415763412120316693918427773154229615238134225576663570887193665774354388739476857046327571329187732189289153785377243798678604120092982061885603958947865263121620568981854560087417525992651106813497500346586681265187397988887333774108220645439567075988622028710232403265434647253213225008956880900605874029660776066928460072709270737101499825467412186890358783586935480959561480828735124236514919803158821431416390694006644245296567856527830737233242516390305696592805942729980383133948967718787531156884773687984987429593667623884522016464119177307754914161783889779058925966958893782614660242173923431394594879341571638064119110466193056491387664861839312220132161469302368960420791683216118476420979509836579858283281880975510801875221975223546862046457412427541378665362824788921785538512783877806660080594761874315905779084780281631149380803219371900595118742762977254888748461213892793907812670136673842999540137971603821279946417423599868582093591298683758468421421177263545402191784212956308751169162798329023445282806307473341838500230358491480234672919914183328503062884107935356332372915066423985548560881416939486989829793009365914155953955139366887244723433442823043244228148100103329605182892641088494000130276734118835894675756437984119230745195689716059579528913980350476198478374201404812075518328278184308709659900191558492882833416990618774834460554455462275173099103807523664125650377669988473481928718896603281622136789952366986021263072956305434387435527831378019610086091104629921782127247401109922013017214873027466924562530089425613851852293353831656712958525486317570855140212720882268915455942449158379169664297264928400069211757711135902938582933141863634795234377974466454881294019220246492759626737791875034967887231850007969671737624943144016811193780828079257620033915931337904274038883252624992785102181042194167585055670139252027836712906318847366099129701328727947336375936330868960701520181112372874431877886888912952906473247133399306955920485585011900870316578616991602942161878206414121259933861302327211285273011045486569421095733141122129279760799344780101982229593447599631189042371333431511431309283411672144184320510191964123712164497773422962491448550068046411315561742680418761582793115765132730221111680051607597050497036305105690396799688952349274763480976558663688565182476090154858235276242366465504982565156967703795374747764942313883429054136273755043638995383130810313626605855281764661563496018792809437713501344206377222578157212683021947418126597134491128809250754196590585396357212607875243453229648361669671635234223268129335739355783528902606863211893659571036187415659148036179244466357376109154937623303136102313849214168014389084524606366966264288951243501097847494003926254929969144693689563475541178359030761543984358696242229693319057816623867475687227546859174868459164778494209692994937700685609946026011344568397649021443732863334686314085524112156942498863479907920504355234485542857545002717114653967039262060526839288789045734190157325044432288766152899805109551613319480870532722301859219955556035517994623482675554228920899927802700519965356637903087595693707087649530084663507825089883922981019814158405917322093641564408688054958551634158088193715491147173309652216574116327829090260093458363522934337681710050915840784158224628380740292815016425860140078992186587565971999653571348691280976180365416754997565081488687373249989622324049757480134929480775094537217551168116588641538773550174622999992383820701210905757671388808812587026975229551994734114631284995050674110081172802225108325576616617983474513923077595688979518803611023141737092931433490706447344137506266931132097108920117724601408642585237624541245416560047122557967264653521120701976714541896115909958065911941961585069072674253167851746298454256467487276468868078711303589053728638486912313869148977518867318139256338370495933376105432068882459559785351943756582270380646617729685185338963267882384468344221880983656148931963475551075427950868092510438525071999359691237150036438948076123889023496669190124069870377322880872201054220893680694612601211908208361787193424144967365177668701550358255118477116975718964947636807742902760158637561784296476776741688010775982436207724123470943051420076017824592191352857611587621288692165670500261991967240737641386755704001062306728821430686062002909981642945210186365085413908000401576905860677504106014558766238917067340988626124337589416694114619698138888901878766332260971679181447557987821969468681248387058932992405180325800428329622253991091041130049289969470152562779206707575486920464627102169470992883335222406814868869488030092414412013827618951789214425926226699795388065804232247370031478174990629583329843418696492804496980101549198237520583426973728684354273531746290989934018820580464629971285962966377804836343295536599377789499410324506306829846486183074016393083952452223573164385275237822273608163801355201978555650110673398154974481083928536124808636725680089847584223027927745499565280913867775241751885435216437605108171899935024633412903056651530746751492489165669591498622527913340236355901116662487678265176309109864558560267072984943474061633728847003260664131888354451486200043539224391247261257559057504733678579979590526975869695921598684216453015450986582468307438781114434180793470459000683047652206844651999019814665752655145134594798426376527923352889206923445974639745281371115499035127612060740831366026131768240056139885121696645972105175036669647730616426293979290395748502267413923308899899499543247865385708846522107699809675060529008881561457343060539549691752687027401358354750035337856777087144118367781867106642806574856031473145087856984562995439968641550282201657569351528289518037683570773008340546233059273564147801035409726633369146824962721473160559227800405886805161107089229587907787541016762244409261637173121296966253457881754672579054106516040237010834232583057084616565105534065129041716492351714340653163145432157127268082762470532320458256166513416733583917339627754682995362962818467855476201411626775850235641572392905140813208245216695548913716403562838106689849480249805666811320216984171710788533341953617681333437240994750783655899598760179440812003965412599586547704988726585464244089731908233715936336197759489801839906288544513145694376227770647699506405447804717655428288423239059333482826981072436369643857360776996854986254850334501082170024127230630637791337332815867161630251251500415428077624036595821149966222665886491171382044423981199647395797730157972096936120754370846937315093045204830616951812199006750983660946704418296372812001809049477484327830768532053713852638533564160509843590606830837185923542793961615142927948171924490133666685536176338368473483702585486891024598736838585359435714478492636936987086492523078877948545270558200131313563140061957715106801240771991080196975016081635065489883927960231563465852987826765113425061383565288497572059904046413844227950354882901666605020398684086316151249243434208976505670911777815361885583647260249980206953115385240705295784010802433992092058048995832009318542956366048971028892989083374357798595338130857261391500133498094663039632912147244477045504945475100432997793709098663264265527198509865085333006427368006265525911672380818292329596634324676592847725330162042777828832922396127646408715989498889250321006492503870870962927743122326825404324231201545788161937302864780856471761275037156782059691084156613225301744570981448231518356084241279021767919672474701903588945494300918421245797776279540956567876179289738636787750944830519442411584937231419733665523872438779133448301520378626771599086861110958431763299422922949062782479015032103148752927091785595776246091735627467043419802928785510233528698947916990755326404736249246317426169582304521182109590938227147228150807216100665031527871000074762748415065466256089707438497712113970349113096914598842765338241786331169129323271755957547658777818748732313027031048451588456506320250298464509322497726360358341837139330112185518622552832340605657300443824495760934821927093379081274107802315813061307676518112983893057745021275317382827241554074063952478750329829751920464153638917826685526657717141229879637640627157709507560662684102910576072508758891577341151926435803347616672230421149587257776009458917893335212778474721995516920051063174088962302666238181858479566959858463400192585193860067228707415035291713659762004205420652801218158785953124446750980665982290639995012567582450542103625053330103782474390716376405779963959169689469071645666463541173436444946987560628391828471326692622709856839734737698128871165691167413503606907279382101126941676415238558223568544215138648657443548898088390437357499971802383237467412229098900150309674893552295237322420753917125129655608193700622666410161324160919009544341350702867317989016394806996997830047961433092354112113269107669443464303715946567489030362537179360628011855217803233844682672950026249558672367824784949897290451667701869725316268740494353725880330710080941606638519772831053181331420615258797812057217643786135270821052708178229205849669070978551861430676437729123657591777894700432430415773631347107240116285144938371178112477357370636264854574774046148245131254021377115251789753792532470365784574361230512190034446762208463474280593766889077462941407360230691533308959999139350156416372463064044105750977394213314341373737535168711898869074257135237586947272630409911305052337932945264501190943659364169889103613684986581484173589478314506244323462105675810742181473454052303745887140572555388124596568320441739270774454778198870325275383562215545100009340983342189938679839312757661543389537772421352622498190647109468835647706445404681185153950139992704213591121405436353937425738269308682373456920387606995070804443434070736735481909427011033636838411402458221161943663337384171290841892972655882347214569424175737106648190293137344969094617855207183278852727998927831825049531155239271120283412318011283999838191040884719923156725175209054743327752208219978089398718445797623168127561098191519846382021997093150828151060475619627895570894848030714091518868854893656410667546862884324125324785864910117872611646123050291207384591215724142973538284481371808548241410561751572762504756737269067297917618666158018091498406973649602769088123435489278360648917093104259553161490893310340941365671352600931080647006988531098177316943365291938301420036049264668879913428178411213881508167159398043538014380063180361197988400991308853229455452949408814093264866384484005477147747588981756675009125833389219125087081128129638186914412831810449030194836597295118958920882324792296409112925093254963781851584353969446792496818821500108015376200841434264022701373830739267960929178188869386436101423442251598019546451744748759951661841335672215391151581001725779248965997623728030574337000380768841468677952519649655880274084576762980116415295680978884168701132776520292321803850599050805070144453337590649252608922172146074216711739124340588191511639500019753613128632229848541602613980640504662184730663652280095022213919796791519913028380015743206957044532052586737634688764263514779725089017791415417534759718688342544648107192314557643221300119853679579395482565237416108002590098235406522208040459669004225770590325691845731113716331310191800102339756550199206248427522331991969950320506037990237329751559218843064710458412086601574039192885159897937134339353150854635633884880008977025188421741374585318905951897302142653530994205602959140105866933415669712919326878281134192988524099431857193408469331607189422907029756933061965808754028719558230052836941621516999396265492674796671497770328705655192128667591765904086751489220087379439930909793062753169467167493905118679359647750295496080560194883829543180614178639790228604872593266211641021572881762229011498623814546297949011787966711527156876714344912973435138633947867975116816474440878455666854125504120873976325451261851913302502342571328076896904179328108331626233307810086401994253933597199587995988587501007692480446666281060453509838483064645597057703523783958831140875032983969231713216299432463605761287312731975298993238259865611979248360785680290856423756784200615811739996689742718588791207536064765666181049417492340389899385885751047039221970283640645736225431730674252467048943644160694123886425180194177214763110052452215155343955021417338850148563652485154217243289791077252008926502635384352794485692235470411324111365590994022985855372020113734104983234800694516232456325215351727670243181916907525480493733106881017187250068521909543072158029980121624665067656802737781346481767514370433828482118071148832272148324496497642129981453805835006021678450899839835666050443625169205515652019133876147902813108736341668901353000644534915243639850308859312573973283173928013713262621553092101008608871952053080990930998168966886127282974931580995538049097292476714900296463982581892939379332279676111511576958755115357781221310454592931516080396692371365919158977030326632502385704775174916882489213285619126312744539194146737800529747716200006369191977886388766613053447470401688398031719396309768050440133965132094997747823344809795675138707461395772484888475989841967013699779761255923073895511608096650603223313851402974722729535155085564200195599583741453203632693349418868115647440503757977461551371019360625947933196309738833501747713853546682164402306130089188408420471864086643402498544213914138113037593221404663438507899527520471225310795744348629844270465542665891253175307155040987389615989285767935992751737887251866501599862689253965858893122137491350012882601606235809335305217741442041148921313051942977419180545896169096485261667150059425368416798360908784296845587361982405943362824157706568782325931812727326689872924430322384004570166463979182452027059796358490158010095176393303603481198438695645203032269085972995110009348491510358216483416159117950597178707961156714410308308907335082510207435702919315582349380749175043933507844900362118439072184608260895582206287077081835481732519684894872129922607365388353738301963187266218393410885111796902321804628270590746651398127955584802626282409975034825715058988568770846992668436102737138914785799433764648743447465362938436876148193655222804372141962991802241613487061697033651933118500267277002613326985232985687490572009102429867231362711711312132219205576923900573740744954660533490864580320053308733318205195516367740643872144478720260860579431313446812934872420177712357950889347193728829063881161965750307625296922700352754281048940555866283456877437113894961073490376968661291589911761444441367380056304104664815033317744289877902146678177330662843906581883876252085789385146125266364687067073949247237550417586083401376397058575806940587791951606330385456130489424150307628198681766926242917369318035697246815612043393479546424337957106490817229158040031847272089065109132743695520423503305999047423133228501340040640426364586870779359609767063534032916224265901528276741811546476070727491683218264650498839710331736605815609706221952891987472886267058925954826034222052214951355258118729135701910980841920019361438861995715902623937238308396444052196665022186987317915272740848740791680754753988967111987208097826872732089245566723902978385304456203022451144373652383434987076461948957708207073521725729962715714495412903723728611352980948104629685901889656186451027858213698213018336174340397057601263863421907338841677933313114334431401843543324539626426680217057586898379577075135128699612989293168596279705042255481148117030276608269689913129797408831606969373591502842965874481385498711994865815940627340795581996762985127535661373595562923757753840899868139565599530315427867773775443508376448348958859507109671132186206140594204340089665697388526027195019033715608819490178975939775858702069088020878515124843281779573988023523788501256264030415090626111219398452831487690612483915567707622147485124952876484082638871356033309747518279468089975043020273341781819214013652941193768957987707142638352140677017411720167675901234922904370478118846391965184018633428922395991774919449781413808749726848411138234980951188344923258504935694080494909636403502387745963014635847102090906369910809890616617609323129679886586524832769694421830029984548029443543223951912536516432002393140753506199956433861091698676986843737630311049711599196315417751309052055423104648619722720804705469938244602982114399752861680353756297389053438100764826290808020273493653492843651185669408498251318374511702266665128786813135483880145346772079384433551444642836950782179064768050836729899465533027205264817988782305727602125700654554324935173858780316756847446884677055466374803615488109309956540053744008439614517866458644730931468159702058862399683386471220141757016941149109539390766537983090706742700058032815206096714746343221564753908356938093815134603679658062577628794754741513807033737982407769175803140737731622278050049547912425627286850925965272913785682877773981991294523423518910499704926945916223842286346737273748833323223375813557778995090816756325855021735491099353101304509463662637987554571933083960332441669784923595106138288052324506464809021253761291394087373572576489221249766757496365235456020307871049243161361474175044091649831052617631706767609995406222333541074115227695087691299679571805759342701350287558584447760646771910003907834864955731951384010090656064284569670797278081250853394182816779194043884566217337300171761407045585891281423140651278974155693208198740129729932179876967376993435250244035966567936374334433666020483041107798706453737665151409336019974265165535195514733284623136480607904050124644589460001341208963335928390516192689960115051524530487909849210763008119458007825634391052504998541684264913475290322111942916792989151794031344304558566501735774361588495323513380284902784107209288096267130262110271315855999743269218592109422282902881650930086692601049804467759134298833219672029970672995844422713907420407944747268563199431561759737812061233749899568044557852964053705805842190965304449351090735361116748450491838588414901323623824659116981409216158693683003736618382322143517897962205731422255979169938452103074816770289544382634106560812375676386266759544657060544671341540906552741595467421420044120988090048451460323379491471658805161304212926662070337977617740589579405503163338139513825444005471706377225577069856450296009832186694297235190007637029313120823626731187955454087722211570322809544992837092037516641648004580660596631028810626241283583874009874618260574764271533757012251910291226758434231726869375564785908473172372389708517813012692057632153280885278140463251431130089569851455873141600977997050593466448206575173445954478918773051446579129925740515004509073000810901204713421727422339410596233641960338943025033490125773771655552872662653008269839056686363563594366571726795152508643061978311043838749196592153816363395255544496474307072836248523776147705153148201115980942862175627572903279027237876227815377804325875625765818487423661578988717113118840498919415692490144388799787905342467939204065165686147456566858317796521338266570539069934832129232896438122087422886198644048386249652700584928248036145273228210786129556814997967884827757711754503617852016416469262023553245876243832473532700073443212921722053621473594360017589806577781141616367191172880815214508487239152501475774534854110251571075176101425252809413099131726153528554194844700170298055362226472447804574857912686651620760489097034220007543526366455489034078373716772973172179718357254328948195605682401216452330159702016199391012204445640864603460153210996913072505646307894595162506869847856084305476457919110158309021303449801563141767729888823170092067590328178826157310955640450857913478605403026082150078407839790980136930582060180508381014767658378661689599632346018552877038636035669105174108196107614040988851996650562570300254400663700139708526371252729985210847129220498572508324655289716761647702325336649215573757944021178036521817545767466330339167384189557914974832796736656523885618395231001788920607799182718929470500135902487207028165583470438675851643470946415533308300193157401835790552539521971573305334300819705118766624429046647744916916866392326617486374244895764033563857585270210488379200363671793572449466113055326265322199515015205529930425494435858627948118440401671963654451622453826416792341140658669594713013619553103450549666522133934214218729641554571978653196092975178913052819848917836361551684260724515836450546775927208910222100780116791808397761606839766853611353539236501000595890530368285535572101134596202867919209530050819918098728543143110077190228949599857132476223200370655336249436348715075555517603082289407975458069031014642616308474284202723011943747755530409561963577379749298287966509280021463267103089359818580511695208008324475304249520411625203497028849757290738060059821023255875881956753548085837183021658827588763330908973300296103453201209853525544744367598756877567105473924278388065398703946643150640089182342410697791130654497539029867218356918051253883667729690342727286406279025609971550787111021298070618760947186798216054327415266130738806285338330636206259986454114669183496503451135948839490813116628171639877092068318229765392731838204906655431830101366865741980870073035575545806788366876766453808198531663998267913539823800093633115188215300401659467102831820897718866969215076604395322858640981725730670741972075934037968705065689357124033323681441168923437592100131066375568736354350907340000802474151217760310757323070213968133244585709964056347889954998223210858349314233258298781792294156351390499418518347457836719138408234429533944737276338254076272764448433803201671883750306753920767050201740685230752324090613606801988203525832096961435809432435973272397510916911333819496049658590593243480627052193650881573098879718342401997581059098368242393614096949940483223848050259186161317585880526376449282486464622870835809588734259187011277245218738060004726821439696153799439853818041672856655345986640229548065885414275309152934036976593935645157142175870459282061094845826571465942893855006861570965707928441950543576647405787415221661299505587444681226623740926030856466878550691572858447573781056981722623174153036752880613615030439504542225824122463620775088232921032876482379116132734920630807726461627889796597849595221755093558348453042536603695791340547455334851817897509198281871564910663333690639851191283378321810947628625278511559885336596607603553983736589228180243557408366328295874417489586896325934078441802118197217736335873923799624512686966455833871434698462993629462878377479494534522772688145176095981780292904109360007174966673303229719243365399277296670840203922577288219562473594278889011025412516865466603246376082278225823194693117340979139646261083171970968942383182420678023166256455348049701818472773324888535222910720524036270281110683766106994336631197087682576900001642951888144714278857596388303460767832593779933209209009290377767989953105333690852483765009316433012952479152789114202037977461205189034016914078463627229047499119406580347110195059093257946239013131331163367892909618426341802641383422745697558736924766500461638065974035633596089052213735950018590010892394584890728739935338683706468702009530350555981179835479481551057950408682304057519223218319940743749565307229105521812117531444905800539503757303892055115649582618339762451793654907342256036931344969201900000618991055744288980071589664367516618588943241103443406926615389801374681418198823454107150350145499394575418145277736389206843389586241770892462550538656643972791849599496121274136940428038503320376650554886001609380977090372468693445769557512344573921027388541300767160667941913061579558157352401262171654694606497217828651090489949671769721286634655869895233705362152734472285275911624191952508176654115886733396304794414967040272175724313550049593809538991371561443892532373135985859712214041610502276068795178996895122359840743221577776419629047144362862757910246693383375113750412138567855340598833249637988955172316216763251092398746334141948586821578010965006176230962951249002199715588171899033493707420795937204289397462464802984898419742468246817965629840548492220051507882417037904703467043476469296528823162944168447809381105806833725463462014676235073214963047987509460074000685089494473662713782122617207416507504229936610465029229244544397809148544024780759070622074812606242132632918414314354233870217950339520867283697778229632996994694211975345162899526577611743894396655748857711878151615843293901441453121283131004230417249413417148897436153285759901327243765126852816272624520805988216884592485753249584466443567746764263501960597644463048226276261779031002566892565662753073913755566551481260082199991309925812014816382176390201467462802063786933574902443018082236178656546884345517094862511562931738936922985794479703873907619732375415869614637696455871823821982485103111511261593271974168176437610933065065187411499131572703384867873737796263780144234625071383807177827690143939963310119853900578623354810582192695158451393553985777769192574514864620401540278124354025838543256583788794942906912001539634272192674874076241342151836299654518892710441623951590105329745470507535976800985248683119741197779906481345851343666301819028905173143542444679535531556708473450184199244756508593474758443793968373493077788273979302352114887606936369603223468228365966294784884824834878163561710608493054779700352291994537167137253396652367079299352101940654296964447651453531593374064552000743843896292778017587021546453703543283613572859352033217486852612692177928661378817507579891048666910846713082796686376257019252348909448184090807602295323360198532477380577552152646366604679368739286141394962199133711111782326292485225682113718557090400036903840500556318437680118368508221039408422303497223352396354447708140011449309766882311735539160099696393181714461954629311512448828728175061960137296819105447813140289472004237699977996840529669785705003034035495943997375049247033872678370197289043898738701454724778967572683089853845909302135880497533175533061137295120756250316417378972864826538386704645106797077513705213555112187777492376127950806425279371419188703688933243428453525058431587774747574421495517120657695867863234913052194435759528095782760843275071935200865054238909859048703919603374695749121466714755627188981965903412495687437113338033950821937606310554930902695148559429294401139907819786823028617243752280428173032074815664816446557804650816903584515465093242146496603820268849043093538934323600152475810098975496351107867207101838122534464847132741884286264535609259309179653665832931922874260058117635744062681205521461151125072400847352606380403777450929296735866477778684732394185086085648465069789494849335126446379966949609930618794115073284781809531096352966022026267313469052330564990839210862621936703026715523676938705672240823617559977775498701418004080687380808326265104785833979940587523971249490874704523696097922223868734330052456873576565569628733324508416724195744564796298345726877256846402875770220857533682100805007376743947513293825385109497512800099014001181423086992590034480245033353038841566322659380741846909603351277863013270836213808027988775595508761402441842181016513471872150137574699654498306883417167452024444536820916754083652406391183271387109877146967094702953532642047506681196874766321561476943650713564810627415508762399688887108660631033774344433279060833735856845332600082780866365122749588578628516332781835560741728877704190819671371668460162124914552766214531652334323766751134016995945842988526281784449513442913139927486226937444354449287485917762174157588756473827515779300296201722915790184561482495440783249014664410505587929933026623379352071423694512114191934627098622972542238365160648214712128441282551126308439007605933245438538902256941318249571918693939851928316064914618485439957011834466120510292763354446797669179037048203787905035718756990885631019740754316713415123219655850737911520193663304499474887180288226651809630280910232519815285033503924628897720681079194261442539258175973946849699386650200936038544595216991952369516302970551345383612558098456889948393292065672961742929597241855529095072353185425078582316257806720967710693266685844465865351235727613793458704748865912755481581668218685039413974260168336620256677060816038260496692712458594084446265853269894650771209490912214375981092437362813304631561434786887725690410412809651617685379464731232270140102889561750798348600378810386531254112075343398556919700580350191904575199153424410891993081287860344487126154176120505415032564583809654189438492208936522854814623941590947592847890245261562315948104253228240378354696806189811924849044287721825181055335933167967928017156657185297038745067034520067551077835525011783716583725862073695899264172920601353250522061002979105989478624406058249747834341305329599544273969739843113717140220927410646795562770433093724768077576330659761958139406669701319048121388539376189091347614222503855129969216927086747527650441611955580623902803254293335330112475608907819071693650042118733337550118547803362596594392043592255317184375253816277574658869575227274059453164070944227850020514960416790685991711693824810020001177863301789483330872612398753195284705713791563571376681687153828850903476144308527760496011225865402794369088577455612657536960637662472256979772025798471939002154781432097590363802464863190252665375563386468186437484473126939530695801658093781156326723584094998788583608075524029168058348286406464360238024579397305213520327690740760478632498544672183703118613956674068903978820714134086549926578039876550792804187450280650820857611206195269721294184002117919538447951297179201132684322337488244684649245110400123679662019271135647058926872162050197470888126062709517555345406324524009546423474046454842300135371463314450336760230053889775727996456350996052849410490738338593172206540290124518707711234099425866137128823082167858140576853021329377176592216943127962749713786100434283490644859911115439674627797008339555041419742057544535191161444722352666373797354809441797693226069927701741384313508266308991960638260733682890095741507312761115747956043366033212405008052080871251809123374250664865367657257034097068386880267398919660081540400406867086399638622704658667558412243471711365748523427736395139124282150852714229251206777854529269435167753345554344926685524396208902932190978395015841320020829983206539126807657569622853290325547349272282282793648118562892531256974909416857259977015634516111430237694682211675235606073390476512323478476432139010785965964654172344194152165884621744629754585678233766606869672708655571351264683889584025199860526393655630133338936428956687493747802792496567373856957338651253152576972266379371812699745807069558526121815269026345971325706332680745522222944354611573916203446598650604166499720312479976541031913538109496798670123878268706667481444980659037840353361843290981026039101242702330813445033385501613275772900394493754095553194999827594890110546130587087098816719045061939297473116345049843704624125568281160862786952976589886154988392901370445799284708705778841447039863602103568631854022631055998864135812057693256400774226960003778020133117725265403233894839146482247749089454486657039388903690004511957592229486484697138391341206855576258130379262292709537591250755461746849878510567002532303799924642527146269802335526653148636403360283185070584811913201707815213605038824890140683526587191685527193172008943487137064423693394882150030347464178761856542228011370600711128482716334340953447334222208129241502911182682552870971466389010242508906473212074378510275794387934830086105532207055400169419950474637538590102526791433084632074961055838771094492793726365428083007413107692425076338660065568585543834879672119507265161796114394800223908034480155455344073344125268253335174298040677805811514286500022671585616689737754970689279390331505283616809683499919534006693636316407192011612660776625447405222599125975953436726272054924316865880562904777685610186967493172266474722741340779997237034371681094757207878785798250441655631515099966077730954688905445023427457434585048124083736152134227977894241979769705788442728214563053752418306901045277938531832315746983305510819563742334857234506603946076778424924353071566719883176667379722380858606215913292376592567057120718997907662360114002533642950614018408682631625593811431340013312518411834891534274679357175754769973271973924686617405943977792776694250977096372860631965812035688866549680069797463958001551643770347970873039012374731300606065431043165219237696235141801061863641873383205511405760797037272903732470592320434286150903225640070125633872276554247854661372649922490109326269513219016796965313664073038998333933140514097816662014300265117020538117682587918378382282623603069684861184435243866269617600052816759173292122051134782024770000320574072148888062465625341524269002609174538563637239418626531092058276424319340047866979356920320296730201287852653341163323181081024551758148274783837527796938639865296579561737897808580701427114408119992601465082132714926602038886170686783984794964191961585558957007335590929965946953879963971184934005949199833335013169920894626081275966534623881361526197756322248852595182690009690786647073802341516539064314365598866909904064706863539495150868342299824419894659499620411348161877015848097561971240711915420142456295026781026369108943609301868925361177813155677454532870436357501849783419353151761552264879097664114953309993460669846926372409883775615225301891878063735990158348240659704295845725385926957474359810819722845678086283372196626217156024657547408734897864097958014156025634744384018525110464033650100705813929786526842648584282171879924978356357091673946377854813891556403780990306896546973665227014279283580135641678983466719668411734640066746775886737637823567055036569520172339938777132602351276476672788664412816856355227960970135446893276606869417432989155653360280653526962440314180313791074569896913281571795357067651555527793874642184015981602603622924983938649964351549857762044397371096934066130448767401043163151221776567951855213509389293171464062318775693903008148854474982002982342933913114218321297195869253393687094255270924942152837814269879219431840635619809293128245825062609672691576159407764281861624381099915853112779629012690805016738498934995137807006480738194277166509526307824549535128975914592695215103842023398792501240580700551050696883556139008772369455279348120467150090355071659765454100385141320867217133952159607887347495359246483089598550555737476901022215562014666953094793800158610087589192189974007454057907964468910261119301018065253693017152770623177770605001572172453803237706451524173309940951868221597745756610587144883032996949104936717328634120857219328417154518534482514930761839875347525378300905668591264169411958937204154242533433415397440508959113812474674783773319747666857997101428304552302030773650471476340884403422311018261855374829656966723713946524793812096728221103685783457700950075604280235732876537878354528366232438581233478853522916894833036531440515600592360247215193726560976283681841092883752547506432610913406423520171540290235610974202618106834251768762017251516756840237514126599113621218864733976837367664424212795520315764311293539663246798179025858804015642326693485275535228453826138831695323205277549415853527275307574230671924720788013563589394492429547261890535657507182834844888827518121402951920979617522261310014161263158505721406888717977750171123419485713328117372284573182120429396676352497984644991746533380506986244785182866344028510778749991159873881186349316398711267186290408841876548825299765623511505841624264780015787841526898120540127155413673248359562744882839602852683715533418491122174049920376736461683795107178035741295600044249124864041694671193015798425464844615665981735608853766961343258125102686364313953731074876190692662399252802303348871909677352879040840349907310723669620816283606904093487751352466256254571273163140171151832011016327197262357054547484977657830432385642792331310490220779467840662449133483970877128190424321109331986129439607445101927754986690111911126174820510186743561334311351599166125629124985866304735742654472789906023136012767027820927351508393594513242695503421566030406193121677762776097753964120190240106649977725260008280548692938395646251903813564577878447124669367156357186590239955368799748678035485579257517117675496483776265784921693258744552658279103307867049983117806849544112187492398902054622658992718746123677649705243067173705421219179811408976307771421884863238457267813855269937499209403986235062977056620600807841115608625817453277507216751616334438112855117868375104623075143480133063387108639441255278020894502119758549744786957439466995286147131517207096908270539843505561741580849299602852557343307467387651542478182341612111015006661617364018735986242337458265251104060235747388028148066926145908233056029841982487704960087486779068686586729678268783712868146574670855809338974798717565613483737385044949498465863227244731663901573210670063937881398851907203312395838441571250339170769202160199968503699896103801720252309118854164704375704902436312168403443434122073925660086549479618776285429402376216855865194155962924157692973038476483725477383877980860465345363159257148481219750316766034194598276533708108571682703099530030951346338495973126064090729997264052348666153679586201283559072928320682707625718730069075291784567343123860940104628171103048462463809238882037347524126807972556648460144681995625534757880071720252807312764538015127601097551107908739457057432622514267510790836882781727266584645940424781630201071062108424319702717112437610755947695336729220223943124412745461964595311480519667059087954377156123879537930690077480431744420001482037098211023881028024746484254297595590404061965287625677895734156944706218711367219840292970640915681785528823963409578878847971709789656190991575172093004845960929109464801540657694248082908902453573381691184946052394169130484324801777432794980448048044766420959824259592489382530106893769061048475672745477593335378137473075574090545051691699183957317833919251711817940993571022913024195296019455959842976797363547689109650749627641990072964900817958651743818579647907441177205093979868497859269319073151043994596713028100352517317294202545991387223710454168363174565140055663091566273484971350161073242966660780112049277277759157156896737329111246479497489129427293592684517214325709883975067935675918158157871105575028009103423851097853472423398344932200111565622883391676840768543592838713543119382725020292810947512597406649279931017847079089703540022611189980538549056184321974827163598710446717808940916866861432671547619136370907793244800896990524011171003000262919637570187865084472163101155481093894603760122313911420839997057671896280061179191608843392257600676835926268882449185052664396744312770674226785152089354118645846874272279980484224632875887733545501081290431693582474761269878828235529226247366537215524085173347904969432282498090464815830446158989164747912297363741935824418412718048235090450150936152184486164803595952755707513619163134251385870834214846355388887190409333996775082277928694467601239057164628776720608632573134535304679683829087892285884991255040536679560597980102116081077279829973651387537998117859499428395148342395658794924027974594046417703313940129702910842759256625934621263584243583414358798682249536159360641965452498986853990627440574304726849235488457567844303697964255163238942619554137083311409381838126811830673119001930988140274397332546746888630874475198054217411648267408368425623265938299913314698814552997709722652376151007342760310492149264121221837794894762350926046499862464998416166543786491211284346150297780341848304072334487973014455607258137484397808515098891209451544522660420594548178806129966230600289847935653961450451131151745785792979363866387408025772481611205135797818544310042774628120772531111526658643530650267547720170782204577301616599732559618231715519187617776516538772187069917892287966905561179761940043919104548626272448753113571621659945919457353583431107618520061723441464874785248652017109786786037389238410679517195996453044480369198666012845680820430633299988231494108687110865662727806098095458298665059728924692124051957469905245566712597045811804444269918523147055445894110264386067062427701742820596366884064798398205905124670733785293985965355613082397045006921101474535021409517029934231446066238437381688881657821949858826232973052786571937457871351200430374662908815871731097772846417504341201340682213165668074207473703485708886775359158571703373660675649048521996911211061212440277894141368208531589601342543440956834676567861082483396013177112867637630175760780369175303383480606662499963237909785529283787938581309414436000880021550327032130949553095868572751939402715178437705363971250858329911304070402681916897771455629421711622680866902729971152590523657269002172872195391446958903110065869102338680999644319891440408935220212258916407615654530034205430097029013385432877036621487275325848870250968626107635110933691943106517138209095962614300110625058606137805917436987391393927164280390470265985180774079587489617536763168556798745535618213245294104794546757664272345902138548086436000077472673813934103032098635879412527632957906458426692251992280198989441347604461912105158635801910279714415024974944722968257850564613041894076243715621172104355285624636537488388806815908920581530976629790271890115740429914717447519460864463771541524765541597221329577972801200394015408470923975104983948234445651564732903530173658948036150667803869567599200374659109948117744399538919035821436698183006726237841489008514058763968736623633589337801593339128524575120281366359023887442579085580292957737002391327424640134867648846939265254651322553059581537280935904410321279670092828213192291245138959040898662326286998953569059817114722456047739074098835657988188806955011472228395852540161421304162685521057479803399609087310936440649810637997190407518297971841260151004441793671212385850352564603127023691496623900995708182516182175470873906476146515964624969775834065915235207740797600034078774265700049617793400837739328226995093480472655879182944387675419343371069885266144009991419384537017424806526303427894284046832566630204620206887003224082920060409971890984353708962333372358138329087754246983798499953846723483973785304610288654888445784363018568752601049251185816515591343037104806335242902526652616323330671424773873434158610469790481330924257816627160500440650913481924786131710889100089141361438445701023654125478988532572565189071456738906052522575468504569596674859003947155731089830611561733022142171371130887225574504606668340383996754850204527652591197040342816466378420132875477477785092207578936184573521738065507807699823078042139782828415346197214969986091930775405529169853229487892759518698385285936130646487786850117067882780432710992608211864401840585651110375446812122275063848775806651764522716098868268445118441930444310775850139297762850749972427416690712127702353524865043455416100346052533524427304680292167074284942476753280364938894150706057856165504497202811378539468187649340937980228180720147936564713116452102770402600857564050198610936509773200465848314212480825397789618607832264133810217601102396764860755983124984987747176419671753589543243671608414130533294399771793549136894030545893752789537024043598038080601154808126941734219924740561212746427324998807649383815685573380015030068466258361162154023466890373586862840957783853055694865327231880421707748045826638458916414392319872541003254239325521382795596587819283468343188342795401358003081929983665639123147657123186119729697564281865079961406722430885887935992424971003861917961796453184032823135031173070492651174866674589261625583385240078364755352985906093154616153065205173778100175249608121614332243194694452527851928231605030884894829556181862719266328731671952745025219508199611360048601212309957195923481237712197749435236495561831700116177883349426913314283685680841303366092266313918810778832066966699583603189706941325646467718253276282258735325413458624348342576391178166395885303090336376526515190132012593901871795984903874760070231432073561683798075158404781036841496626103977357043131690193749190999061162399985135658259560900313661149827416350750627189869401908860156575937352696569713424615222834218359684995601625832539028581064981924343076921485230625115720792895914166894659473259236093402374055185475128137914967599550432008431482742683374432743321748983017063562144405697079865974727094227309263064072801004918842057556233799374214397965301058526365626672048170826911137595998843638889566301123314881127527211785854210557844156333681761336391484687437740641833053957105693481342650872072497787137531326334991264052373020424913174583279694986311556173284468863294050451319595057099793722807187887731254071791751397184412272165859909996175879018503299659306935885713196259435607414332727923457217064604711797048351799696031325785113579233067765195460696883692858888797321935958632352875301900639414483363070751135445960486661171249544260213061740400150001092908503245210031466213988014353208155996621084786105722324838266322661266423193860402057629962906617153538445609957231444128679446655068971583395862127941545066868750250520622810321239665214453838024578053032890957320212254066391297976177721757534066361813460223105076946218734852202641267508065447515149250206158234086361526231197446605407227275674396037086059383561311303007972375073700001958251844565085767856891041137565509351334803414331790691524440042668413132927931625611697404949460588271544236092186068145894555868837708362566588349702815598497032235769097125200488521371184738333268658079935361211574765640206011667094246795437352230197219202167568529365451753689009773635624275605352130292655729874854314446614863317590728129727455304212154569770387969251809890320930819971359700018853115671156538783893314908235701797008234124510912652283118614445084772477473926458070222175282875541869905963462061734682311871019761487597823978152262141432806720855994669384337594106153629703879803445930350044845998825338595921916274931841286958668205262412708680075554970127540512634285684540744893977304767869891758548535568073962163901454423350727926329076146427256953861314957964736013510520781294810462668745390682003885404250736526760078589952789366242574807418104768238684483796980323460245425491348369706510670471579190635418803996986449454387837923975290150457870329547175076590946022129984902661939716285322016774461310887723046698273117222307598891367804867212025716583689390551296572694228656841141880328050309829254986529362398888747760984712810032614147512707265363193644071939823752700077675081980298178862717678682033547025935493923654130089884606903753993628215743584351214265337526008242337492020981267488215393669466800198215315484087256996353722692369048152802373269618866152357875282402971045237048444443277786657712146658568308648389354208039721601561224606783262352549113039569731006079257020470873119581300873367834256035343367136793343427175003045498669772322628002702377380878356982580425160277592233967956881861531523105082927003008614059713821324329555557926992237720938458483399749975493862210686205181317255447761650834495305019803107950592607694046438343509362225820800826294870079832191922327248878529936581728338010445453861498083841482291410813177079310786989740996453493604741099573537424616519797897408764887310036598117723200473761498804446395660021869838057090215597614312504651464169171379334466393237804849579225952817063454726361888151055386079689508761277566262405205354680563793715194781213687212063111409865651906603837014273197077758284203386234526708413774187545194932717203798401095003466172702994762984324535404101958117868258024120483539916834339465855628845880365893639999656543710465479606232184991881088506642051381676800855734687551324750936769564875489778802272124141662976239071133995543208160617133857429834014223336546633705066372858625103822850282762410034869233925882114647998274281511978459165448980804829080715304965363367399426916666818064144219943721486434604589592548634135163957576966611526534834934216885251178615153488118189903358954685543419841674152483419628363324254235787522157825373725256737987404828736983209452319279272935406605538603260196637650629405845684941085920212780856805195240517814644366924070227573916587834498263226907166302616707385375428076432349732945301070376915298368749598080319673422125619035605729769231314313511925487253755274664619372665725223238103960650454230500158652034876060623689654331386754814804094221539108220966039774327043002384591690543452035561132454980114827316996077048075610968064680401638990825725046831671935056326161334570758143018127578179234553236323142896561690369751047029056132678728253752580057774673490854451187374389017946484598581555727377898613193495060415187239328975747045412560831104496162740857813241559659374696101831448211253806791398792741390231721157311863744379051770705016016494894579028422295953022092610840696868687846545713392419347991992905038141251109788670052141326365109959741398629008166149214974138090136558548860409601448219640337605067911977667714862464406192087525399190607996517547283316063541909898458777774708485877417040485693255095332280502694295298558360984371006763846122659637555775831075724312722464803883039372353927290375988722522282830765002234585186341457889648524067804946005564905680097114920443178462297330685183986339755265924017243347602751346460497669049446184415623205163145250132348911079572448326704305353554076356575736543279931970268371886890383157971122344382102518856878064650465242071800046875222689163560713113910223551536897399754472357849383487315247987597734729291962845240643777030265117604450953903986381104547590886281303717931602850046325118774500355937822560933111315760091562776492215237767941840553953933998364433082954444143621589216399469340941507059439145488988497330547223842867363406232755807076172832601956915333979696528616615407860187066566656743316640734142842239561181138963865070006590886955836393999638345726637178108024617991277896572096487533896087697669705252924188367514164290661012068197379055456481369160629480667515233265167281010164507725693871983082527193685200378177988864819823704343272502887290950693225105089462587017189958382414525041748099605786057221044196670582461646920661428980554152827466687304976547073949924249494470655699176132746643457880642928032307114485404062502081563143468064322716029919978684538284732364387105937732692790594199096035784518784323837927823648683930856866062574770938974025693868960163668904777971228757952256390108900828974499984060687385128151040659026283733330256744302572301056384529084197335242746017204347224774551713167657001146239195173914234204038123736201925090219096899130183756666686202285473811022298381426173976676789326121381741166790852771944007903722717677309134128535842466247711113234612424301647257787173905379104284362010302143537163432518153436146270246846112730404793035793312827564417806020056409960946843361482366991187977587322350038524906745298371662565790354806212898488892401105684989937124357021705955380481197003080517309399983253022463616585259605794577399874450671234288516162128881460781602485728463000681224988763239664396276438051025207860097155289540795147653430122802964214421136563768564297067708805181946231697318350415607992407290244344824354049556396603375883772150555718987035092147300429728057691080615662985170345199080749714073396347289159244647936034556330632778704293484732549809473631387776320603732124609221639246930987116527532024987853651581393656052129418637432700215679403893837684846106036186736995406659760172542569514497794909247824817576918386563603051531110341774254166571108232038354962572980260117948380827554944631981971899024514288344569598716092740480665552578950986523976876236201500043768193731849659001242128954118292734239500563448600022450789344679418236499591509213081420025734395000399055216479579987019685258616737093023483767203228789931143181289089051327770515188008702009566893041143066592598709721642836983882771532642236176408204314236890101648487236239912213627408961029685038783886818962855418901053105465299592049039636374272658504320893102941366538533218994087059051245613536018938049875891897662548993820547188356245508318020479106635202139683624309558677260343303903330720248744020874037377413328077523431434816773889595157584709229445165746015526451082311389068485993839557252108576445439945831376157394554820531248326097989118998200362425359774287311018966921808675918512465769589265514478615518652873274649005968104636634556403552548867175344665877224554900679348752583674866622009694092157551234706971464321447131092877677492382260377108401905893516194648408983912568264913677549580959330562333270897253896976700140500733598261926206729826263133246463813533067001118826259504055448436813057480380871077835708650394307855451646206322308423386405794378585315945703319492254160403773745947703108563334449461274031758184434089754013691659079668772024702678108851709517262261378613498795518002446274153646785234764992708786623571280421993904131860595467597736916104474205226911279270224260811555377644728682205952027796359612847278048086570399958710638584826541534162698564445989831002871190538613827289730641928209409135032262044561059895085889594042919482930935842532725932060077644247338736573381448380941430888338888925454568699234961694652530032327424822351237915887557931047567513572134915687089865497392055500419628122009063657829002074325806008247868029268109222012336873679867006767364343750488585028244472922832574895589584262804012852796418623629940045154988287030588119879096204944615295855845793043043628776728812204366512996539954515573043663046831548257281722112130971819797523535283309783560210140115927457126530622575543268510685691297373367765583509321981890295163988317816338855271329141005495455113586987423602533021624270441729674135451158072903870028307780419816012476538947679115463687005726747041647338325012538567318226545430292790424913981104928705870241567222446583133379134452891137710802391986436365668710091840631936471458361984994101752604836138326358667437887716770501240600562417964488381225213532936063180650541379497803119311308844667984193614074968800626319023752706759311850836715597410983216861256110295364771675627746835790393354058384807433674616639646630798723771873748915017083886181514607707850707312387869748298842038604659687753332428693239025547778186494663607628422333827016380990771071388626781132902545690407123272510329749354914493269697518461573346030628263461466081241617600526796068314763141732181551107044819605960912164062703991870882032608151435844117835794489474899247508181827938755967180386693234484243567661029523627402843373863699747431755131146819398966343934299004768186888679881470075302848623398440142515978541934680871702274862093938098471286866134802149655234347038887219239936508698836983031223212694122136934434334389939548224169349306269465763292609388734324103098229513697341319484818514378447807066099096936508843896643193155581172632534956542940924916963678423449175656289353051815986550500394386671328683085289534251008817016011972132460094337666601246147433213583801771976710741740624729556661601172073619500166694424010227516797324234640417790334507848073019872278529102584802167699481918945942337130839560623535164764712332333410867909713383236691745039412745517986313201372480976058255737302627007707444507387861704153862848929388350339668857361143236468211470778233973417040018148505730311547612666859631829619860496356730691939895133239747323877444330248398073151030405373269093261010444094909862014476500538825359524157985622042450058692751656203346089437271386870026123786500651557454158077784826355351738063416645990923278015810651522849884407625188724058897570461553092331761378266019500890654233814242247395380628514336854379591968683545432709333176245361565167287453815599141458883727337523431612004034003634249484710153373729768425119899453120140378096956917250883464471317523372627685368886248208799281578221467340918645332580027300778715413949526393454461564916360942907503470778517870432912495480623390241132966708581893191233052742598327736351754165852471837199033979490219989355811872812608624689412647470974929449912660009127297673197026719538262119898459457537354571666859564447957584511925264421228118562859032371067384590919833119928741732716061914605539633511373246520171622390560997485800869382419809060451635868830139853946347961427940579978285736205445499489725755341017778876639981314683517310419404336211567959556144942304307955797746140999410801094022285308738376762987024273392370875660155856467008166622457607200921721313603914680738556810683178459380242287373690317612447359339778248024716346148869013234378537055996888695764205207575544340141563941760420533284104062001432995672777818843414633801269529630753678136946045558920722815545911771478658300783723082667411789106713466296499160238502610959792666663927951360888109846131735576650394395757461419638329946117594180502802530076142864053714265883891690578637433434606961898324342890384753130248635815614702788593188203242968237909487280999756110377169325472790391014348774352827718919334216175203456120334034470022749157317659017044741322637100504052610347405203784004683913610047319476933583041864034668432297072956763478231619022374610704863484787358631473228272613302746746742000474510665241062449302901893595325048674984227943845469576552171744801967018346403584315371195659309385651445738481616120493415804522428158712365729119138042817215574095071379365191870834855729297313827843010783713027584762213848446479624978543648300210669482819953965672787481978537136830258121173283671060895812682729776243703010164794439124266728901511313377809835367741406373750944964269234035640767426797160352281359896132338192091432411099342495800195618255577827076564071681424417764215418688892234675444726635373558090205822250468183590262855090806398699194676103353768829029893756982146990862675901153475394958395020122123484367094137443380455343894599900930263925331211150640858235999377614536364440226363275864214847373699972677531649755149353918942179628203728204992662550991649061170472345063384870656363476523685791863999985340539467886182980021050438212468277041636972355768226124530939283329465361132092441116437604040180239422381580656029206713859901244038025814562621230140572428409922743045210179029885497968048546146253583000112060411307063661991676590101280771637507023278156782289389297831656340801534493607957855753659619338579286147096210775013074466863058643365543585696497838112488709332813898754197147093891695972411846880176552584509703498393042820294345734603602283938901991712720322597556271452846091602612289772193418963674235594625236550887396905154504074896823509041174468766090956383180318777291402144760592294732862536763290559966158049427160783752080068135878861699977889753981012339059289104659554572749978971641553163127821409430164386948133057059529118483550604239163060303625320687057808777683693291391917539962866799203281814295086501565109410612322663435432509789649116997342570676201312591112695175359906109610254202649456279102877804067755495473126844816556053417830676902627884225861700353993348167407578112739921429998889703343391356753793354672706284587212738441170384691792742028190571713789072439003603443655214613236057288278353934380891613536222886111819050658416736907034875175890997387518152273032849674942013423352387865536749714424418360537836625907751675264610033600448317670265867333144015433147815694144899098918733868330937938184222883744783258402635822870430362866410305544602097540130528713010691075610370082895189154767896074680291351832371057010839601905884627428272157034140551797500626678303584978615935771558741999634377068306485057563358924270580270623795399033886440172153241673901270650525402263755133907034957037293525455422668576415935547107903439097830230486253811698771059678463350791369590406146608167549563977813072255547052959035822630793891611133832295671367873375867191094068072083915799723157268374796339510064511421609964306609609998855944421417983248349398352361476631462235827807129610133568237973602320046877531842021954760245366979950635153041370009062010385089903266974255796823377955649290741429579207652675933642737188580857671144261260806818903634534846198068804764732171164890542590103157707628953655452243092566155508763173390600786688664805762880673511741668120906121606498448353741135156710161417328292397525266096902159923829969974533719257481879999857423926299319436940562423390573036343094138421841700946116070868202417270458194943906719722505958743302910488890415433207489344861003469968841448698474598837158953254680504095680497647452503139039023832199259641419963012910917867720795413435535777881115813108104542869032363201773317007708929136080332942852869602094990138946653478204640582174305131831936854769787910820617676399342294864635380108239420671743634410675451509706422225451577686216057167876293779679737927537815158974539215810530855372493270590991949497569998931273668409102443366366199506956751487462150213109222097617119471646775795846902587071228999635971822907823651830080695609734675649405072499230736384843741624858423003890247097687633618613859460656136016961035457892886266072264740838725761865923196506034489928346770487544524252307411911110900723127871426850120872657574987683816828187603405228876476260937143993280019260632906459970074996842969730728523753712986866660507055027996134572730781256670737036670540149786953115594137900672281478440648873563476065719879429657021072099065222620535117794478748791047538109235936861799374512782354004269070553388698144845301830032479371550250032368823726628349474694603407498705586169931956426901071731201189632285089069272592258281773712239051237942568549919117863084013105409052964519372694465295702260279572558163671810774733402625727355790438209001997971319612128950969137088689932373046309466148353908571512481263818890104291668004884024097004254262059526142455840148084768825445859428384171918772328924119983992377574775952993490325215835096688590306356485207379561836371487151009885139776710606063392296172675080138173070400232655332299806242931097892921131482492014659317428475193064300423228223476089355222823065845075923662861121100280976378959024650929596524080748845701140171609304719064447939938343150155038267929283734075399922980049562790459296494990064821721010446569665761357912326652037015681385782283648580839088747262781045423072199611709057994011870319932392056976647421883827967471045606128506814676498534467873623293669388004612789627424075288775552174932751834496858132450738409115994752480236485637730716905685879038346557448595468667742529994471127995241596932537735735365244733450798479677219986078418300431053055366067615316102430341655636458181541194906143788332292624280334092411008544534050637446848858351291671773181345345069415996169436727042613443639890392159130540920049681312391407806612319219786653222508022687229012094320172158978715963416560336990556332329664334358258513328647388818118487645692746774573268605134496206370101148700873010625631725148514007492375169941403832726758690816102985756512151840802959482544982137529477985147486550858500806791213337058549272505818958721037105698287811168916367351276461762607634932454568887143364370661812111042797061252349796435261515923516900457078784893144903584584108938548076232784368768714783717404944542900368538768261123015368984473116755456616735202905602899914509984375169914968587105002306133389083727839408297531685967437465900589125749074041208717062349967550074576114940554569845127581504004422688276412003243706279860365701250964618542473648939729442800814783206980886700645343788169118973639143325699175206011756126575389502645655319587244113282642640996855723031745913995586276729229209257973995508768713259564945490258329333809732116438807187522240748649730886791458042248495992988867194387033768606301800817715886187178348842160864867751265761588298409997100569784949916969166869008011053269185981329770911903109691413019745507378292697516960213833076019110581550421999295716369271290388661661569589110460052209168584100549825230676599203579808663565427785883125726306222995576236817380380594805522548016756922168327392144502391611249968652958094930619169782457595041129916006870531592763128948136875890893263752003407476510040841922136198619735626885966022051822605918735286005863978938128077096768583040927176681450656222205853843333945952410687087678102960831788241206075601798490706604638852894232144871624391419631055593562857494487158306997761413885003024469669101496973952173012194437748814613426179673593497625734603935198572226926651345312972496459097567874630159550904314939146585199345111976173361129591273499997974935174684746267755858837890495352275873539803410050481109902332947434736266416246676775442718784360727060247675536114205796349572424009038592979813382800703417835940108239934146528978753983576544839224738963021809654257022596444757469578973058223399331239124123328276678765608483714643537678773161670710191430495026139229768277795249906837790346211854300678235247885707196243548788545674152696236795924428748709057809371507316058366881546630020867454344432228573616147231519017546352667230599925320262837405810184333143753091423283969760841918872644050783805831777998618293934093809197040252158655107130115762666667943144827871593630158684266660284053443533034688854450501268880669492465827858291829997985541654112361701735435759969487939359495258148887246290252391076711467263826812350168902130170903159538963101768846252221902595450126397772224075837220826393766185961591491555968423840983029674010785088116356634055875932631360773501986968104047569991084119536021526649160925424204124849056451270634951145447497557136921263424744165373460225876994777097002716954239457168967080458415643591331394379508577037887883310224027568419547624730688686291482558349957582609023073335840274139280192824147473258097637669169749118072800847809997146827516951503899550092497780209183943069988504688656887697868148343774214597919411662742602823195879975506533858948548470374889867521995615691578597642233783557681070074541933325382518213283767954237996020204475481621155506863414612405986224034390033587779445302910004189923364117872580754981298172158449532758187405369228236033812448393402676427434316467105832704482988033347833534189095005538431098427705807753076848871344215976265327169526216858373046468764399708232346169830680302780848335832241004139332711035750871238367831575489443129423082604918701426728754287045545266481115238587036169451178458138298800893877174300591450506780975473517714934044735919903963806426906741107731880365044199987758832468996986261322773682258535182197789770579105725175143545255644323534352540585835872619846256722176793749019790951756162144886902657051281433124969310767210956268258512894223736415957511298617788408932885883307012392571428198187782561707261540274961390607208904497790497373897572249632979232819142151487155357547032640026305280038612253636414346650971700485778477545779698379444898032934302375319055197388133385489992173263981156456235922939846269859649353809787806098913055653937846334134850429255750336161287325343272886560247771898189001195934890816899135570267835096969257655818337445739696421726059001140228790283022939582283948709238244251670833377586067007780093048548838502866833116803886052032502816370512501534178639523123764921757923717851451356661865782542925019094384784965056972951917657759585013102926123578204528082452186906788453740935012495619842044686413200520590828524175634673790559415405250373445838782777822127483130334478237166595836043813728414987383620994192209180733793512112009086644125712856742102248173211110016738447338457846509004707950292700786675293698556464179409283732295896838805064369432224351661314432168845670018067908892372624600583013212762288478797217279318114586137865202201501848279514230378178920912745358335941989220857937744018224272089409504436676467283849186420606928881867629674794188548123350839559708936300775010746094952008185193942379122653559906973846790798340860706748754650539262715182216239387602040102773841190975517635493286213262114493665285764925503002229761453446923967990496023397797818495666401783088076076483108114914601286277191295932667668245244260839456745293187607710209387843893452180443348483489530255130815465488199797121382575600273434231335140474616604204149351869617322430539079588635956543580700898026126585762596688863992084068742221009157293124711742503162634175309502811374812742511507345692224923410780936802771792043240731031970146617361221930574915738024643412934996373668691282126436885284729957570063907714196389785300235462016752128524840776033858483828928586024823571680785435334479278624097717626669963868518138726539741689494731037368763218878695185502034962256356654359885602401766550501261084441020687235864559314257507473559020136803281255423287308118478777715575303008414087347118212562424131193923139527074823729018963772020690631379433961795992642948954497043302002225754582759848781637176286331563991616764831897450970374501835199659054173717054576148479485768280867952838319188026892253387726452942670727431703779983151973832831223439211129782228379211335373562998338645147288412737950548691965764002940583762797402578365269385249725997934946840675447767768395850511189152985420451407058514412618379704094018322609943470393784938114240571814409906550115225218379381149112831109497420599770221811946194172222932024775208458576711698087967340605887004916687989825095975594692253336905610883842853885873204907729474114859702549638779409310646667603783834144147806707677616495526590543346610644668778294590014791799165980164509984489410245847198445648933413224437636888972636004342834448588482652267363819712335982161483175774993195917986889307589106616331277201446707279411266814077216879523297912901245259620358061413102996281153785111017829648192398883256787470138871510759598754023708868365325979467607673936146218524686876062977439270176553907733069060336425383796319367595397162449531538083511604167498677417240472130163236949134038419157890254459654980994405304526452379088991455793719529784505065463406870222802552619993444362720527535377225715962120867288412012700675790360162562388218432892130065207964727507515223526365306716581279614800869179761533355508570756208825800682410034737002025260120691767183448745235029212382088525301322646485957799285687154118683823988151590353239338729163994702014229506036112112917761298888674278044490896099646939794058628738280516646477416197391661934983415750854524813848035353966777836917561088457098255759370474694445830869731720625089433157223377634004402504777325607584824127745179778255296412154099804581856695224863122696859493146287442557422576510486831802209754150317060325936594190757261762383102426323841003840891745723170608021003775620111101028072369300629831304941763356211699072735187622893871155248209873077100087857111463113494727273690193949151244604310120223156625163694171686568607173552496491001209640424624206632350950886049187053964755963618312261565714434854287200854805818685305171608472283267084608178405330053262567604766274807592441114947031577876107288770807353172646980615924979663110898867845314117207921562080906312014650150958548526721032724458355611047635844267841756769703904669497698700805000627339659454504477516226027338419225728096885867709634387133358198453520139107436540297224858815890405991637462880672757389866128400202413314677824976016140457094163395237525329150539329168997586586773253785870118413731197709333455660892035138211028260533565884234788935211318774043382977348486412141921465388326810226279271809380835663091645622681344348867241924472067264684025967361972570392614245380210794855732084403679014535483601039180253831818206047481808961574320660847392174677945204943610575453841252286389580504958128281042545414801143989375914872790672905104385308042655089556989379809993785849928793654923721674490300176179963326465863946622184162740026021361415198827995453775685100618646436555723307119778054068229523301844193624851847119760341786684940370656885574660968684455418519048475542513424476599780264466804481828716042879182880196780404668394836211463470905105340323520471480401854667964617982331326960309750317790861430680377077938732812213026736733327314951391089653377491362720856736604214405362634555374513188087485915925129792055605828122440374260291095007061435674962569127370928158107636420973289246376599546945281091251697204973929448137780046776081615508441946403380194238255809702957300990233101877332513879740072279774969928434022243498938380092312035533954736256248481504200779497368286004292229681681782502999555789352690084529999097405344802948682902314482953941196876030436120979941156095784225229968603959358997427802562753632917473961467383993040289148319827679252469945899768244067189376354121676666555223556937604813318508500981371360086990025801164832993997770085237196396811639883044863908895287515559233699030868373632098283624517713838627898186117587434923522017591848948749124281978090696719861160514253443119405577122861207464049177010521839111745175270614786290393736044974817443439612157020725388057743541582265744539914337363578442970936139043707558262029315805427117819522440440737012146152147929977409209668220009830289963811951529158688133478939405694868320112188035892226295321964462511964415446635294510783160666160629574745587065337792291113583437839266656016705456355151279954747565163133443390608482470204265152089640973856599699211509991265928051460121677073145012385181318786540087803572305151051755866454601293566914921765938748690120278109005100110298465557168168626425257675146093874736188147287806332084867320530348334364562270245236184202218660578653651947446240267048766337808115664860702761733566616733381076020697816063455765116123992464880657393465275533902085053597015285121748497496202632817769876778486256118514944442711531888665061333184640935001753703373344219940391698996485831593419139281070836338948638658232124172625674278843128127655448837739974577564189806634775152900254888678851137120459553707751868121333970908532649491938141255977500985002894141877943894592950913705296309674688477185334168620040240917589211392634636244710937925568260049494992474388575678686175791295627659479824025835155506103827058638041079063324529690574770583987529585952964641496173324134747855350355681963838586628365737198189660379933810065805080090806702859899454349555677416956721321318979438198635576559034404348149924178350209435083763267480685844482698665800176553715778551242644445734589537994612518836016108158138526399228125629530576547692371703217414737336570609952477615609940885646770305462043258179569522890020550889479683759137328586665341618254621145306385208083512591815015383554019405371084467764592853174192248383957684805994976464497773132887120865540595997170347185297143227846494918605673393971680267197636884910453360375649649354848220179022081921320915787028259467679199925728301039525489249655586145329003987001481083544090742807237485532965125057307636808133123582941389202142195410462845918362930492547502498616816718987865821322961801013444245364610746234215274586673064472429891911679860316551718985341817656944860449510489991775673506866550754896219858712672893188301372517717659262331620092013506829806978951440191216503451643885446033661097102714274897457853749634089570393473570227260837556467119267483834494163301962206364487127136620646785613884855954603780817844200114793089821122680620523224772756133209575858062593793341214220400906665171795954326743856588747261086545385032334485546563515593749236255508739494595740116537059368977070252074240645553544851721940270046613260522010356040875945619678350504482381213997638077233962235473992412921622279424982441665874475658332099947255879713962757003788865782173424188361502713898971070833206440074990507234790959267424568380835771225345698950886723264518598607836757960783931728694489184751005380324368783172850347281085273286360237687549864040979173408967761659876555441261502889455535300250660636359324762451556143085597380871102141808202917992704075459447069960376562638833690463681341271999319044645752629661487532499386131195031321195615397527031518763193123951959018627489602852527413508919108866453246502374639879850503743635358028627731169531364507454900867411796287860929995224026155042275383721551789533643876943878098919062565815814271431615523669180865239041442942277510627419042213801667060296175510807193052442170179012030096079713702967098505105585328497088372879600160697783392809364487660279679247340736489995144880026556841401200961145039762612241424682272661588026007518456045233058314336371800390501502285285411901822655265021217466626834062965252726921247640771960098988534648876066011379515450409909496890128119035338864142159614111082109067712020197605401795763032288185717237698860615928342986953947564876189001978286295252610672048545135018069102466656935842570246883378716315277043625669865875624519951230687469717612651558787886884150318339481102592268839238353439907263451498553505215818812557243539927230294410026315003133396890401617415762923839574776530619648071917566102555626558326961303357489334276597719055539344002798703611494293193272813411091323556861162468304719113020553039140264088389180751174318550614550432960110695776803299063709972325911873442548749619664841746644191807983955934223978232520979896234662987278888085533036685996363074855820947029504619524881626289198940782520004184332995315675374490801939423826631148717935893271800693378832039909284908943763350043174026238159087576065368412597846630844226345485162341759620710649307986962665098059757754071524230964273270763097932357035182992578494451584204727348093194669615482304226678952272073819654454359588334997566904357653898025532882960933304345515111284165474538960134614779234729435847338050606847101059383180693217826347819833424007822183800115812648270985889697842144023344390621354936316580843076115165864416791678020296788350862355872016627513392978863164853856516624683907813760805110375381474332609458926092808172547647797955531315461711479116185796501720949546453004142789911886311963075557868493541049936180271703058944630795914651280209832672883969221377176767406758507684324716457241253061462608963261828012066138364217631675510537188913619893943615051237370434319852167523802951766972426693862203124774807300852347417566272498987071389857828883331640573092334532491163315399023828828385381280177015228896490271586463992069726725090551777550825476438616729881016566613759458124558379901540197737313864716113770717862057057173342431770131026367223408060700129121215418323709043753997464520086815510841677504799413016429206181603715690072739859789898288814980183081793252238015347944229887924185403906828818588124915853699160179545772008360492263837413013365606713273178758004597603130668676683736855236886436735238313807192090488290079678307669300838069966229822406372587235185624399166088173027880583247233497452661720342715713654389996465596212170872947517966958930145500373054596251341367734350172113847182997792092559462314036832168530053052775723086947306603896876108623497709836011685856541348166523361998561638636467015391262011993516656722404101478373849228897451235236940557593247242968563617930658633762099122653943367042060857480636017026838722865439041310333481474676292315482452418934222552880965386375618067472399647913812248531175005530046277975902520762517935990072534545589827601313520691681679129673064606316920050562594048072770573809334839824045469340653031141255335487118744463309998800710934820711826589934554760000348000524076089427009602314930445106427726975739870167370157816215874695501651838800898286760558679613603752140176108278321340009083596724179614846770636164123964902655348463438171343402996744454171805236511101466887517613343981541892568357503769899855476882867625854095448599687925144083539877299671344667308941532957530475829916758970028367214505548348652061943871070649099000255848280810299229074193551562367741928958529690078926241700887599628583141778117836381277070869328468958244429393721963789194680376978756460611089956253840111544547491617986495042398585973480025819599953279926794523028233884396148331344419804559349217007630319616099539594572367467508079855912220010454374712141485415158377500239462314718437598725954706790762685095315441557240518776258585323937305200192034718715964156116775421570102142851971117443116652598474421353529291389704182544660221488133837436411681953520904047903797671085313393326308717206709198570487496839842501582081530646953501106364105690886406050311725097119572415104817065673595804811225762639551221541185126896352554967899698455075173696137496941902037772104407534881879682198502584684858167890908190283512811701703340886281658789851276261819076391404533014056686525951354772382707956103194605673559607700190036444846825326936412668132184206437562001213843952466991216812071623443739713585175197030147116445411930266454685230951748667359544920734006623441874415211555359973047643671111168033064278033513279763792538069179820456689647051725371767934048590495127649632646484014383967924468081476028416956406709486312570894192905712563422129101171251891016754698670121641582601497033882951582891760012896725337416161839084960639015478325413495610060325285209231599745241081699295615887375470056680262177205067089788422281533916958517570143924206386446267523798481949701535301693874314496055472322810569067397804932057199871771533512898446562628730612085698783709142973170322630253352861436201277410441872753600712284295953128138591354803872698477362986587957009109189134529457588849925332895218559809145205061143241618650496637843074096804388976373847038621387930101620353730249027880971313096286922709162731185070700995071129955731355103294044809544485610237257070795499096402949782804978990482613963683479508583560312583061538218971101477149890593833018875912352640900953773835881305466924958586563441841572141684306519225661013787293615105682522797680199361376087446968523385640957790671258414962186702528023208509437050429449982063322395458857012773795829770172330358872341989968286081009851758161733550466926742892561666146536849050789750896519388907745642767652801227845967509514520894641147520383776596720923274787829107076014767695158777331871198775297059734702204002037059893195152328861264741702243155114344773024408469081634633364523041607177750190851142146227736050353232581360837094475280510598078997687697652109144025105773371210161207314033263027239621361075086975418703100318675740396680571054069292209025348616413466542675577925979004585820397918339049521654786300646450316117838729473789056986991015923868387660723370746376483801949118191907772129322775950719818634287100180297803692060521634987485589071050742154245912524623746053829105404788218926186463246767131527126304119767784225612433699235418830751690299940110782533370724211611025458956314122471364066808020468076855857422926573416889380285836611541179760747192431955566002168405609390695866244306736298619590777020799050569604862749394822743182497660455942747968449282479544263518281012980804326564076492823658370201463150659531584477897544215714621703576576338870701136843775497927304299427235773268834988862084704767923593619084026274886446283569479919530039677759901222846922290524224800844647550704701491979117254896630700383669066155484239671597092296712273393174278626009081756989695769870850811293528023567880875762868802845046603729943907438163018576021672983750629537766904931261897234814148386310162498462764960493568258034071766121545660621304109907308533367915567608083684876250139043785387810430448777802367150087170227470452232921501711755105056702085130208661954174288541506148536813800303432002432887620319081096619513584087413704816825307112553862373998398622479332328066241786656020936906268187156084438780376469730041197948533941655440298958901167530907215129024254047251293717273616178215231936935018213322804677787989787778926648101990053073350026821900458515212439072508763530445388012129648354487510847584034800250792843837474501573918110161471231145945915889062782111884079620790881780415512221851205950252033643023078007346733654706895362492364243734438333375185079479049373464935858287218039518696296728701150004268799343983321788232527042552825105494482096874386225044093160029462589618197394549968001568568731197419658902175409152262239598405808262142440281190107332902135506617047553412667725067811491928720021107275236561707647676568620330374498051153948350125460000834583336885158847393301542769272245452437385686999300150166589675992146774650744571912642446041610366205743798451722895138125119143071614750577342791154458187880200348320374277795638821164186380143457193866637742999720368474061227816500010602642281577714123090677516087825558479113440923213408696015644009502912836697028243259618576777498644794260235955560027945805953032628640101560184272187796656170671415812674578990005425591503654408103623563445944969589523466081069562857905734209234209696294066464180297658000322936549944380247161047421590029902766987130789183387515519946815315951809006457441555416340505926922703182047594215396477423143963559855777234864469860918560157772711172051143660994255942737184306322850379770964197879515186562646492183159720854551330590194403611701496850129197303504197287576857985967128987498634835204267425977420983006954262539907899873240492454804005289487718477333421951818664150643486285355621571472467929373759090033410949369022044928224794536030044956185538228298886269298578725731830562310674592557190075495064615918193904560450586048167597528054244937160031578698225483113511412633856422604419814886851936905329585277889623798569238412407008159638334369668894632080230118476428643924281611408936563889499012125497312227059300339875859272114885703741058791693092420816594699278122704736770192348287551417208527440541798077187049705122550191919811642495430594868624618085178603498806046266112447840605280987005534565020549332961258035211162287529383546571711233672210465208886425004427427265942982996165424034205044243891413745680202058676220916017645098053135378947811542800251596208473959452841059458068621314023217065603743822147588547717050132142231071898760213727947602634714278521481451779047307351329036178465316420432957085575845532370417710489240916336448542409187448854745263246682390052661182331852049721746621545564378769272991798938301906240615768075863663177586020396396658273110663595615772415960445644565826580712204711393712493561967281835099428323739568331550400681942657522194517323746752384737721635277967355369133245655652239532330128020526787239943673611686939964091303453353800120453054908859622099146301290626292650151482381131103527699240902222556815557374983854023237546412645895577105026126766414942067778955835975823171487488598134271431367104944782879416798884803490270311381676813970309099275514502832860679616566124487881760520635347909867846798120935810863639520878101596864498187406003495782667656613875045797338801630437686122605174891372137152896941189543998840675520612056600563024575311418553406056183508347818082260968777239091642873933325062806759185578987591116254108613724780391659664164837395579535199494406968531189931196272275232635139792919660566143487280099045725104533288640551965968460071682582828338006707615249491603197663020706559025568762010350827068974822417905356800812331256707514042195280976895037964668048309886034684710884618654099087839936815289309873175986785082918265557143936058820350426568066901574273639846376438564190628413198913664950632979504125278123675325501877732728441990177864134787253790565098420718920144283658827862289462219284857586760329393363701923453128601077759694611197856697914070119079382796377103415125685406856413046509239890741729980309636441262447112403801124477106278979285552335110067740514710688766734624652158645716068784228278261964913163592991071470667015199829706120349072669657642621919821052068919400521780957828465184577144968652781888824347523356461657197752692814845165807033160953185082976994911702880030400315090452149994933340788121441582536886279995116182436239001995596083704500302760262332242092516543609525380970434332475779282559533186005377538407878251108158768175451407520135672924616022380560431288371496073689220441866378228731566215822537465961608913592501357583806671240789252899245307175700813570962727524029686624994058265743359954337108440600251502115404387659664914821862677303463146571436395623484677522845194037892899975278423075738083375311223846156648758953164137692441190290819771108597312463156776104331025655795406422412921502101568628217584790375445929030752167054072837019373346393117116500000967855003315575504348447957123169139969528186110220180823572745573763436377047779212138651090151255428437312336650651652872421739031552425064451678176194665976410171466698887549272880266121750052771749243763634138925779535443208190329581124367434498380443504585995711983399235343447181782705270059594960611346430957225163109844460384320433378850493663325358503481510678672534255289596962704082894690637455013507268351405122889697072981565341733831122827897484188261279866062068928701853525609252503130348360324716391964811729914000910749658613719633119659972043215742190541577012662861473727826339814871902735854042908735001799080031163939127490910986654999362252509901711946379083480912936684819734575563682211275934896860578152953253930930102154101678868045067386023342730894587791546811428203008959262855375245921326814390788147530300486042398949627043573335858457332020017743664118540082885567482828027131463535872826053556112397672974444789583107427385161966314965906154934506756183290588040639422202442168848223928608162767451281987663138552807057393315376578464699929086345050136562237790629570371414109859119315471954021421339818578353198285659024261571337147282204825968497633183756613736381985997592497388567621812210754498211004282397498668840799479603172770889022874691941637941943812862426587198386641320280499738747552644707103866656300375169457431057825042308680902100023226869087291350069279685377480888108960350670042559301775955370826235473870000845725750755831812282269840839165132111311220348453471987809171451511516333920208691815275331374271125087539575329227813773315473874170647642472573716826342236464918843373696209329864378460714393739430803496651470698789413545619612738023819093878567297703074828183573129842048916382373696104073884814515816276210949200352286010840121009202077865391068869895894118626825618446258849178584614391833733940248705257462246485906857530439834766543651542172513554005361088302671168435601170163472764374607839697066099822407950215784568782566620556375318094233677477346349863799971781261461495162701826936804359962353122639536149534477638904053535736906703363827218327164811024718276865904851607338939422102788321752480885730639094335090028072800627184557395951435530490788955751805680128138887386939574717827385006520478145474704879519067256010583376060526118872055161643377361771993195371669724954012297911782281456926239618572530539023454936652735366040765720867184758567134295215789042188888656538239881566011625723758742219582862171282602516881137493613674836499604736265204027107091287616972603956225042789282457975337607383494941900021724929298443631845810903740355456763137172161262802024333650874122028220385495494610904788413605391893779343260948493668192310176611673015052345557077438756117504875109406630949611913307133244283789336080881124404875687111831689409487863886451960498500444122451627714339745267397392968533317633622520217348129825618454370710950863133471888536052241344627581628679263479558215680501666331901134161491595209156296734398880984672576859746782257888880502169005060983326200667300551785256545909928082187793059360199717866282557175960224739891676194298917347728300869923923598218635964987839874270793125532620754965451213426208119821617157769389194975542048818218861669536133614154993978069948485664534985180163783251062482299626709995964774174187607044550408684671029942902722835220948305726555104582756308334002657346573863433065004636550780943613646660807681430293480134709187249366101297879643601685321482613247560069732766319567507927455342922683553535837405666712284974480192073774927519000868762869060576408347725597910673550495557052747534470548467530574920069980887765937116377597319250940975688520705006709750556121077867454143937584846393793302698238942332380457623959667204694546786459023171034375041630231822161516469256594811535858625353074369800627998043973785978891359305719537211506095679374542028826773239837808872924969845827643927130409566655057049433997290231438547868701127733651862284951336739345584138132499480657372164058957373061908521736605500533148458085525637539404707099619999399989297319155254506123651623133990808222882900485287773717493398367145852075630503902824509469260887263998316479180363924348116266341133533511040219007476082337393901041194453541418800800547471649757880507135832086683811607762517076988877818822296507330517439776289119263707743732974318576098150295982388406111212564665896668988776817956085700987596261569520969120087182910483343031435807944531498409381165733675398582989010955648575666928150353328131101431153378482604557628956594939154861279771896942186603550354079752203827692163321076486450367416339565291717630037908183911495976962449946241962387209398181103295786216806097992516450116642737059980382809703567381674963133918589961611373585799984810694710641740119068719295471443835510099072003806138602683459722789638772252193280627149479209473673195104598122267236387915912362178583211202178523056188982357982061045313754500458820592165790431987757603747356453621651327646298824453585945950904926181883079865439555016260066989543216062897713210503434624737035957100129588064089115693308582084359459077534899778269355083694035629680725322969459779299686365951655371162652947283503061461847704073251096626514813157102487677855513668764427570752464234417277108764641056761127286212386644166007034136780865839714889368752500159338429100990175299006098671148539011038693457200674096769578978172618683456656249887593536958553159502911617189545161321232686317247010239519469474994769538417532316402420376663699315051916508273642397353054797768452125267871599567124047766106348533169099553343995801217602529274689959330690982869766160519119096884478596058599783265103430029724955725702682075484373978967516993671823214705286140336259442912478215475641049262314676738057116796754400552674543408292698624208790787928753404089616791810451102251826150525500185990583822616034143007782017489324964701834310292793502517040579649941961518043852962798102922242285348071707670661955120971824745734442923779266573842746876545420743692039502319668631413257502340602606626088263609178883678032497256558321626247298184279000321601519386095915158267830706025653269864057126304526110665770695481004347340552980952556631640740778919695106598579237964233051395108510916495933758350745721115306196555296964810265405178727470884540151762841760261681042389968248402102722265435614412515149448477911823380307444026420366470891512644351116990660487722835621150727158345737144532460064840816413418986376159182241092992579813284671404699282450699824802001941299276200157736048243525412673698999861748853313444004121789348959369441237254638290489068787071047704756601240444427554955190564793765940485295313953572677232380904077880957825181444256280944751931208659362451553525649923915296031439055172597248468419921447076649244265639985126222662561053505302168318886762612150895719883877943750011514756857150482937933368456286682884297501325440582486388821719126442211243388441013632841104392757532792553406846338582295754331674744746830511397497307780044915627299760863541598684534932362125527805148968833894511425188187580573576508176551351648289868593234693559524256107439133751868282332668203085625889218559092196827416193189172997391953466892976432452867159268581687081410881579623846133892553298032485790553104197156622898840992712609502980120814456254713701221221306918703299137448115579839628690511989610923286373931578465179044304464064642106056798597163950879915153995845776722183681713508553018903732474952806643880641228070009597284358041815852705450910570316948456676590080648810412131278887318748174754466724560538342195346959213521320178777973988159505552985622990263637511701648869086140342515252076822367300803973986856031711635119869095834727929172711622183777328960320997022658112292879789260073504936702883401736639966843615396698589318406281623919510378783187801896573950472936319597701420142002680445321935869215011052318090103308971020635835598060715644034746243976236987747150651784332923586023274471904096992852322108573605425126993968968355426226901667254025477040480892144050597467861978295591095683174248489539619841212452584815604648078098772605270226515931600815301100853411511813911165575387417348165720185133755103803973451180081924240752746840204900016200069697619335099527218032947792836915310964586551330242613978395742086221163351884556444800043877304680870786876042584431509054116024346419042398838058589814038875616298496636180301847237173246889052896521521262167110051632277770787643905934719821283869834798194896838822547927777339922038896108862490396225019651767584244514364262440130424747989493448958795953316396478004187260907986154950132027479953703242284014722896303066619603500138696255840633388304032864966348605944716380819054263196083030035916063891431806050087499220167544927305261489569009109618705335614830284708292772466124916174264887480667316029016507774989179838780583805723706153059196905644866174073546939569542198507511398293821055018480571852822205343721307908252490349021328460601637221416658704518073384959557266237562848287959384576214196092372252849664948661718866739712388027964042208778809742807721662518110681773354854390681047331896943725271522029925620982019055129152850600506727380884374028390498425138061639909983440416390142758488217580251706863339004004955602765385197845498569698887796822343665079056125454404233394646151572949202848706755102830701150687938273803467479703070655068732948637293778625338754173110451060845234677019412001973388818183039174848809736375250006084506757656254344556382200172323068112467936123404927832321394403899460872123707887953405733708747468649540203704071769051166008625953962782041813027034966295953997469423488797069614732513383610361085186774320714274747413772542936492074129907501087526769355435427970037968905410413007882866050259321989214184668599493237642020143259046155537174686712485107757536890390296122837392821150687162613750949800662240656484539856623261965051820536179913709861078284436184549736222056808349573699918132860589566689522316861148158173029785897092188523792676241555067222960271170218372713881994279144598011435427046431263844569287970729960219973208038813478561560299112625925214648343905626701853395514130684491551042113998097209471184774527190417040186620524669225434768062932020396992829099498231885865375051884889287453660343300672341318788610169585830755649219611266079112762692897463685348818484333847242690587927259562640694429170041248116373017752891546058967078920136476270603393908402582422405920942704319143329422433682349320265713934495249292354404650193389857515005447459723565252243812494760733166511962351621325947291489333703703044509236477101506228684062964161782018989464917146132027812689449695015026805572180991171340983558886748940236669073130110296402700285495554867506572013542741907045422985359046251656750335836692554783597877666748451251291976765285226897339269270936100864554207974645489868703785846053988327274003864909889157817462455817011689974741024746412788673261561564079404650009162403994149322048230662684687555387658846690564087045560181694085097436962489625719862483343843404885254941318820362926101102026064753666239767339835276603080670635388995836924624988144457212151451760041300434849552549414449708692275902976726390577595399663309222602281310854670479151318824195334874647368372025161459903399443286294342201413287131757577715758760060708268403840105528981688767107321119502990721601462004537956045999914741329183812166204569941643516239357649865153480800104713601030719468912412818491632877756597776081497793722209166809147125216366831217009600472728056168720966802236228662435762379620872896996029166328874805392074836523889517184537197552024170429992196334586812645221048183269369559617455614375140849762531082002907365975094979556036058268298011973430463677685398532397177155555188497116349295587742853887407981986348341559693127533603415995513948374525325959730112402002005407367655963749440880602285151963136676510578360219578094339770518746980569535992277462772619148071956359098672677376357157338753556716541877107324078420949211245695475549724053423093898839752635113697128203565723983677679368754871550607242981967360710141491027515689319847222678467838193010482816440553004043035001782474884166976018647841133663467763732883844635732875986242610482119311351264297950341183453692763922634701735332668156651757399306503137179892473564020855850835137697424819640605958139111428865184311871154580120676464175648153798705932945367920689252347156651997518520409471971885711121999311834543126065347795450511899045103000634328187011207108870138959990656363074502505747836571970435201488877086078887544803674044887401785032972294534750598644332762481425578207995712765327473079280341148297363181652550528203803408050697883900884136378478090027351018385861747446311252444187890463499785130760760566072206555323765877078398457957974494953628800825141432177353660477298235796713544626277591456224334832870696063608415937972282725239204710175815808350200300049672577001960934926974908017234413107184388062612393653453761042795747909966329568848847414235551106991668987424150244678847216978651869749714655568542561788702917564378206436267690073265691384560165275532502057994969595229747406579302057928726548941879772046182306429502708489972353982595935812302400275331642551708021843332880592375114294668510308181148208836759933776035723772953714063275343833192179276338169918815635352771898654408916168834388958692491127823108206023648887081606377578661004584607691096993620300165461550185891794467595741451207095347960502317659879449213156209720454118329456341038759321419173209198719362152094060682924953942697789165497026581674107572422137504072012406464968723079198432840190149405122900434547308302251319891188377186813173104980410168157183109969431953832348302589317823259058847921424474677135403463013226953466550244322682167929750034404021629431937999407854194089415717368398938850253642004913668552847414998240004158081538078656570496956761338175688423774440534282756983782567139668939180991762250585560082744635489251163565192801794026976982148171058960915574905302213477847684303605547831406757048108545311379866356956546451422845643938999208143069945964649466367079541563863884496548993852283808634867571281533746208185057792640772852031827287391286418032674905245231990219509722904652669806850997398859272634121789159231251507511475032911981421573734446016672947761867401887406274596794267987029969768210415728725476893114902076453479541649508137524778115193310503309954107857975031694203380990824065659056820483653270687034810178792770472003975717156418429200871169825578740009659569514655546746779564137094308185183477016869031560969033816935274129699160518073420440297636081370209241213799678282347420840328083719736690158992751605357472503947578509584198527494896593281274278816044344942802142991771492049656967480794522652418577632833023098809556286665830262053882718531971212818511669826065501461474867201492851830132165621254038317908858463459557888137962337258656132743231124117429536009629377945906269481492059809222436517051954534395266760875956522819014100568432907240224426778347337757676652317906826705266634692101788224459107594605939378000016899119790323236159417965562631668159686193467727242758778794605627051625451821297809002187137770423298175428617487601274886943374486772422151660799434935263608280141703069911840463744082745743967315440568886697777096309305122195232484628494921026993074690008338353341166534081458753713639536309153133102259243840278661947150114551012644062959643504196198333491643181614220301660653388291943658543619404547791846814271555832659467086652122764338121614102055048335216062594630408029210620470483168334619397601655867029624647088252814348736979541291460664070786100714617343569319542727783001580055971324439614816152992360062069697403462366913133165855595045983099464299200235975699895378462068634887791471147079385332533727208729805626430620717136197171509033878505792391980499889578528209383106398438598261476089656542331666798072319464616327431816491727280091047357853180193064693777654196546661850307642957089905752163618465866540528378678987734629789928545830546375110216692823861575793627967059133999067934328227004168270217521469277724190738904168371432572282564278988554165012363977132467334301985531613595739223017427462630411914328015669962460288834737194294181871867002375031296557077977517973120852444759827286465457789560620022210166315417715387410220683874576529922619542339889997622399049699010543335954746537980703811183980528476473996114595281222660685200688774579061891800242456349193605832313169588206223763856845560800012974717803068781548746845212980759867104117957635577532486543015148040795610060999529424190706699278066853648148265239510818479544006995172912964056514165544797287298300091924991038157875097195717559535844680157094222056783520230951615927132741971752964425964848576237078921027828319670660786815807637545104870909291050518104043143602315246656904642952608794876735845166612127370873037828220432366528831945159526580711519882999641275008098726733741147868950723712510591951676084387024808208647904813443052026895940519433018475729773164427664981795038800308428239331715098905201800762014488054956051020015182820176789968426899898956080865342706966042729352616517883958982829616247311915748124674974893645323813975794621467239020685219367886309604185351363160026857518681972274793039305335616897587519123987101414473194879911675375127912122624699067759969408664926652292316146217935974304893540373001558180417503197196489671886685218308705001064071061999574824955019514084802009858023468798200220340989292803156934876317262002898816312090095246784667624600973307936337207207188994978069859343279718181839242414963366832381147028822744769163237732348123097789844960889322204048549552154022856586442094553838581088760874627760925110805541166588378464495360329383988112925235370947731340643778443165526633356036145913186592558461333534488006645044234276589407699390163892716903395733496501087902245386613617731232866254746094040901792147832552721617371431991652396732746052786019473062835611694027944567490718141871940635905541573540952218563847754065698639875746531299870232406197572107055315484365968935436376573760828020288260534958599285855259610011826396857297277057653807142734541441472279635919745204686041613381124301856315590245999676484244727636433852419101472361839230036899947853736199485333028012125804969599376808152230781216624064578029676941964293108813404220570768666134543993883505734964269762696289353864241497046074457236965860991741754575585511877304986649253078299984139884817500654179995182201367734720586835012972825966739790424033635286643924694506908826113299862948020980556824296610329043967883184144031817259375531025410735945647654408178450277841623804428014484034651693898193541978653770403563902246582595211262183410848338900818115599782292893897765589877375877988309709932339070801881704635539474731260995898560782734307698904326568126482816206238532540013001667315567461283464020975730447086839235185041835373114057412212406278077218256866077140563408433538894315906508676883564511378746471469720365731075532658789634617594572696940723034382014721677936833940180039541387343986745165457264629413695195470826109738841865919645401649705699262546989283659717673269633150574187228092425994562050342155547166917308959860186231998654489300594274948541724512854259255790312988840405291099498207310253431948555380985936416522419220233777829694694173681035237941788418132741442730649028140207367207842221238227164660489280661462393971359778412270297410306683978454410217869837985781276815234634763020282560060722688735844253607354074732971224346617240539102450205188166908576156554488307342245832753288511167035155245518198776059521023625996422711430740963499039873333684503960760159454500316196936554956769787240102035806910049281582520941534538705978354474866336779893479850398297036983304596883470178571272300523305924135625148428295616743422314731504445607807572978152473722869039531204854059710948741031606217885311907453815703386550170560445323166465635544702724107325193400656304184054588389267916983791364955354002444548520316403411855588906616631073145345204167326837990190444923953490530319030795611539919197096547317239744362378460032553229335848270457011176730594583464630014825769229978255246109161530479169886110699654649129794282694756629690314263076327903919953736555338010644671460530879196902819432830510096901197375671387807756817179941390118654992539443225394018166126964587146697971303527545588507181508432042554755384255517750174171617223974820468967239569189512686624628114003739363293103460757133809548257137772397147738415279646234590943023161455777862508516951163623207009327698618053155964099968862372929475744052524192784629924871925593470586647712282579376215387891593626343613101822159647705704362408373765561681875083869006099453520972947263510162013696228994347767522456506213931837262644571839115597511061610734223095384349483452418543140706461695879218889488726157029691637019988139995431104296857693061824600836566556009135738599210986260499099127512990850641041623525017752466566677948940113892352789865014349977487305957016771113863260605374244515288047602755498478081897190595112833790204542823993299022724926504701769620951104359504259880560617835359604313024171419128611136011103114867616585511320993008826590689452838361486109449606900102351582218964283259265640981842306615687672428591296453240389936071268670990263428229984903560643225415937610044695580270074066356376241599838095608660458085545391479949400985729584857075981510228163112153772930415357442935084983113876512550909878976863893969631932900314388140946768288760278003407847717832678754461918595631558377398812273289388451828107509886619883052303268762030352570423882628433584790145280582882458259075981341868756167943413125444222971471202252064828668600699954702386711310428990506733125809468946876522701365423338114801696921610842648959876119749188938783837952098884679453091230885539263667131962982255591124304253223635084250705824079086517024745133069056710487006799121777667090444083514065896861338432127705578932613711490042841422834378159335278609908588482698322803923114139238492893683667243521565306956992315039963041018265251474177215397679007380301456135239910400506070831542105051285991437520292477041983009666304515621961336865551155127827165117771367782211151139003074309133194292555604704377028320647438334633594055632373768951728877902992125965616537458823391606492977690329478538317279879840704080452744309161276591337093746749017759677986253639125458056179222772494440983302738774945891700747076708506578878340016217031668397866576057840644634697176944786160596779961788808641002390858635394691272259171133081794755964422625018097304384757247039528471014535842943469213723320221654523076690749633369991387710263336461457065073010449030832495892845057961990686038608732156457720526800819930891047709932503322337723122938350812841062980648623582119151829009105078184422171471669601544111046856222560077390992992686796580761164178501034834345584133660743580422781568274113876621241507828479686920539972985351062836472443010758553522503277461570505181567646008515959744341565752812122835388055477512044534080462577848823122140423679433016575311187125738745175257278588168750438924119682345708906118083747083915193198525461023138054268541314098949014097524158215556744940883139560455720416482907584366858369700866613238194325524542951970511722882411221481720911414349657727463464286484504347960714987171300542709468672824663472204903499289102703662540569324706781940077571590636162089814779030612651722851000210847603634581168299847798368841736679239285464227076604897556521852890599954665499090206488013585588826788152987683585485662331839921124219633988633050381884576342180257156837503983243437656620317048113872223919448746862459617098632438540915509142870074065153483826816471233641667909306009132003019870270554231130710294832018884121595603344662578664768801371123340663630555099843510876758039508211277183841148425075932380156533120316255324926041255535773988339507356009183653730620311861852658010133575357973452222071594114168255038943018195764078725807545374336429400882015800458355737108563469958574951454106249020423490331303186607813615331675484465901629392344309768530168401693912600561945231919466565714704017699920348543527984543315058223812787000568410705312558324374889230743219421451375561788232402712752669878794021572839083195029511103353335922159596279469274812529672561306420324582243311096530479988140232926916925607253943331499419549778465321432829960629372505932459112480435632804389440993567230698044603953696118368377540265833337349899500618152014551064377027073417633968747595131334920914346344930002910182706959775910675972329089564574193503989433501098190769999307028016551437633835798601528151786028028027354579877298652575490632235328356309690170584122183535848091440217495243727388297579738020589993359449603174400220903082641609779193156316690740332915000460584433169760144671647699145254598939099380805400983959632796464007305412991381710104193503427217269902357678402568995740372418135411244359898423820401132110217513314016697611163166844478552476003632315442760633567968076208436104113594948062408841525229153209987094773003770634817480965563955096140570862851390132990512692076361020716964939787432824396830127979216840932431730987654894928196086747773947305904298511696331830936046773574169315414324089709905109887840929073006902367395784151029199165682829727994277667493596946874240825253783231482429511894095551373758680355928618735140941468164515114419354414593411239465503604538577804833307680677765152215875174530432941771595711636181927218183584631772113019683432197119136204459980599082507838601407684449643660900016637197665702550919235433996199447295428421480703308041071004636849556250808544747165651598293189242473626761972474800483192337622238893499736021238253501070752425035111325284301549314747852350160716707679586086240798184737878444584790820645932594750467067128719210020312573790963430869062235020034997181842281703395270840293727530559112637185636145870788271311091074383094990815477050657116655838582956956238832787299396804636829430382612733145554885719512860135274078120368808709008722237681771170104339342467843322364043006480188086559119774801448388019467910667565287475648617690063959537474593331392419917105469729962053356829018995776138724318595554640204464742970655537022741161662004215218020544042895085531790717804087891884304295493127297435601428767756280774230568030596705559432253062560051021980027953162284953024452241710435991974114325604079022481492421400782822331086020496384792160275268937268852450048920676803826834501634592260609441440832466414835428553139789580919686757803086613571118193809781773589154740752289821934876803414634697139868327098978798009335479891489552143439177050278459480634432298050148654179698026082608349263316632476070173862728654774971236804369315091639957764167180041009106405473230811250866111520059310500052437508187237695633446790076625670369973897873640060663788935128195440105403591371689538307071330276840144943244947278385878408063367764090943068297635361138350266360632413578649500786796942455333216291064858535584260843647650595433223347232227076457597911083012786897122051511222572909575846024009553814583334538220659441749204698745756340909601175767772786972068356287134972060111335803059229569923138315865372533641036062144922837346294701039025984442000826172676023026490292269515728502937033180433624008397501054187212780399043344834914086382256211202125397152628400156303498063331050968381871868329630778010906299607226381684554572568004707157278607040944906265548559362775341689288225001989229693329253154062077910064129146908160340956342756201550081056016483623938802772097451227162208464510725332074642577054524337542589367252853678238582223863292128246875338679361938894414611521399440076244991068359721645526703356997280091603676219021567004369508316669888076222901347888545804999626321651049015901898328428499244397748304534357633498338195966236929020125239954063659292222820908192957291838284994841025620571840324128093924104206590773710170202175065405341531490267648508974529618295498208664793924284086892052293890912118249047672586162057589797693060516411321818171741379738080214988148358995137232519724732759446536271752220911769107260765095975443139826604933696006077514449647900918628627729012133117420893802137920107587000316765271222260625790406896477421323283172870670447762106978482552229108264020346277811441585471585998846507401241460367350067438112114173141072969338860444114812619229286718826459323899025633021212667399546265028358473203781448106700188726751702627355489250878488014391919453137503174919168426181960246154465380441195686777352503637713071037455136632359092883635266663237759879235011328394893646776026926270250474507858554620284052130699487257935104059600912878418819665885493269393277148239390895425146280427581127390455238185395389704251259702914871444384278579089379303531841940918844146296499658083830974304249216582495476831895395706446163483842758111676119746216349411732085061933717217875611958284752033089518589177836580554900597561566902968039346090264698827741271664529334314894276248121721241843706689375559256073892221304368440994614168382350755243813815603008867486690846241149328573261380858556856367988199444920138712986098574528683222615408950088046815190560536170462037378758629623187325652720344574267381404526562143427779707091555258050020928876234175737018240154161882286152331469783423065522089408297843761589632836650755684013188050107631080636304988962727938618013865961565442403983887709320267107854340494362663113951096481076009946853878554982544431953228725374673598544528861495362521604280960787901459434554833615358065995144575522826515937259352362834888575942241121233609822102206977385353007355180171167477223981119622624370031502247805489580591971043826448037243044209118738135203074946171683278420412505075877259487189403010774983806659440478297809532771008540807558980037371920780278861021945313975724045289427276999102257287974068577085459137606153295818613069141708883570793386949479212336466065326556402737341128855461316680239642037796210182427273965447424916533007823575419360140174662733229014097535583644583597747612004307564838558673396061129664081082467612431144048904481977192485581670747214086922793461356889205596782964332028312376709652389255414122284860604181503010225400065000847771414645206563224452367592530822635259979160366620758619846014204526908636514270781810655839031614143467057982483022660034660590003800967807313766161292566921853974727390852565012312024375253013441578834278412260731555116439619062100393151314909041254198470376258242558274228170270163578026918421533815753106281456832409271139626200696222594081289277576332553044184803141579811695448489594396596955870912718266424101245032485125504227097532237215765066935125436578378164438134580893919763043844485789559803551542702355821884033227331874726187924703960346462314453547588854438050696131591602366958900530893000973630390855015963432348491563327703551125805172726550409332180883284226766233970186582183688905598602317170759985574852952995749832479191461136949932065960137580314597573485197883519325220510627465321461602263534882698987737008778807352714093667891681522707274380196095518823168845858499010016444302744489543795076339426827578489048746412019169554690509464371105322153139458761573204945379128738454463123810416075813733718459245037584651661972416635161970163791942020417080803312449361416857824327717342810265663123628815171361652802868902381784536729143446884749669506641584811026726816534718766892115553706008920050105934826185757985759539490289504607927109701819080780824982817972474365642241237039003941896597098852008122758817077332813040460309643241192792757918256822008919829588362458115492727300418961509002224559079119233052927199718081076571913843758071189074275527956261738161162537971396693577298683444692181525688682789260722736996705198854273731638376072587114760632619759369127954078587874738608951479698467415195216796120016845190672532210875221777485792290494517416837546646143737717660544616280836754160665410307964863614849685028844584245004928201304101867805176947936396448339518137879594538681489852371626008979007818821891442557906700241611504510948111185684840710059766610235459288964737172958707005862671368647925458264546514151424315698321335925259052758846396449530772489362064366327927541606035314194231043892024694201427378622861178792492753521298023857857309123820150333624874932312412964999908610398902630177429640233495590234457249479530342559142180786247356996122849499707293921350098615938673963901019834322111752936834979712798525679317285214628250818856504621195851138197781834359396780419179711505407186766904024391388746679953592386459024955521948782821158243775304293966106691344221903387453068456316700273110698746364460144226414881415829959830840223589749018484597028288174411077367798208353951713546522780239443859304073288228456715146932669883095602766917901630735588288963914956182884445886118712641728030237278393279735993848084602704690184733857575941529748973587021199806568125138397134169634168689413999896253646787088383817486329622230845161977170836865560241516255168208653489624857608920645827069537340677299289512516817242315263494452550194494443643933274571239981870073102209924639630879743501437256426329749699462244536582348225403033397862309364561015726847807807908591325338517345588150925049420599442066679049459962536325951980561759979845546907177843303514079230796617141837907835427176284534430690845874479028721536915526455484604055045930214035062318140903108387078144660043639777716762999046111815840171911237638380877736077566726655580323491768877733822872053844272096887517994197334682950981770561761698927303668218491434436004846714892165520194984735844860897284789064002205153997277736929764513067823583643886537243482233687852531564907406159750384232597258440080437560588477543973589901177583704846760315851756864629010207929035184831078675452881448515639745721375956471687739945685179037446829323097233225873044988420387862075116988332904754670999410432522946007351772258879692040221254274564637882016445767007977065040253071978640543275411211289970412953226590695776965998390493277572739399182001197270895619734569432750854997418329442637569048102523885731504011327322310442314759289814477534542396234214564628061768667908562429260027822816251603935197762245483417168373194798631174993919192548917248628626648173557429757829867323315281014175276277377184670159621075511435191637643437037879317359733509163190316759548387910756935328920543292766298334422569752223349226301318849115482643984123424067600757248352057830863240650893777681581869662451748740753476775886210258333633155471662530438402764370222189652457113031101402451569739164654376834339785603502329360183035647746379362845884888976481495977958454632567743701451052690529282250335316257176748427350908183715385869210607231089911123042097950698756116709873297039174520850899403770824979935587683699732996215195758680543437211318696784616130866665260742660288523617686800453184624903258064132223577940041659375440304540095929006847324467834058485537021878864104324442706416319259780678245635812738395352749949014718241194633738573174576222467051390782707574790195982503326731907704216955270750264794609489825950797907935023283992605228971750733391256959700595672995900254918758433166852465412300964674714906338349385480316386199766331776954395897131236731544795322367325177995806315676926771165498819766394212988710064475489518297242109012122773636453701762877875242744605942227767557029856336414797431443047528579770825751391711592355942869780899206902044897795210807441684154937341909084574891074608308722147242921158878224612211655581830718301673021549290999668183829210104540050360748120041776493512064556431422394383880959903694245578601576455898891019914332041820016976740385830460563451350717886876908417752687283364995862894941837047779930239928646595898742511874232640085752486411270774651977482787468663253772899028162639770847436703534474160967891952719704173842129704568162986638873991503711854359349231132565302320622646826272967666405494762380574394128628399045720990430666698630433249755480397345319256000917259003077634615385107545346880777662052098804157799278390526813600387604501471111228478347011065161485471294395716209547819746002562298139729282912858350718371471620399828970253808477680428707253754306618798516434276874076259127596697334480779300486680292751951681096296124746138745528545873887356185886076175211467508855352447966917926070312375763985328481827356349708518387427623271958077514428248962919805250873961633833999001106899864288248905734646939836913928971936377701674612457509383680450270435052010446137603881568384452428561177742571804051798759925239194804060827933001870310957626720174778981453996399869074716349820248631581130521706874650896642832246271059376194479183626656191998753069350988577093198049276851558710737099720417961437135720148288948514200015874892320092530881406165394235707784233717104161580393969475696342500501994879749043925780014839895370193536403057992305005504385757893641413379537437029884468934975749502196337273490732458319512867980462293150723646998716695448620582491617603808857796212471533993303265368915170224140187008913528312402973526250015606347162815166362911182748198093397141569077818954438084123084358820230658991495621375245052264718181029467694671288231841680761311101319425044168929811421181647819376789335572020048477620239481379049816186324139484602835325115406517869215680155164924946014816358776307027007346745449257230704995898289213493473168957090705800290186786616827561836545703166148303150475663356593752216264792246187362640223180847058667267540469798615206612865343854041852956121951158353817365452258270481647845653829338506524774884501582182954696031894121274782702921945685822042293364371037624586416255307189627426558873377285442108365219109730288142373399046209198278763264171307954379817084382620472533806130467627879209627463616989477237845377217354732655817166200162987105775366579867578170576773180566292168082585933964594472947453040422584091107694590848618134399244692404131720462864692477592008712752310970805076133438723324109564539208258162717565085748029462389708798770525605472567622592430064270067950783373557164840991647572859639826882181280045712256501597106376003980295567393905461277841030128265191100284943053343866669653993126895978792976113995452424289167668623123872548637321741211305023508573621797927885979692651506660777981350676651929571693185007316264067305644308655506368218198320573114369625764668530125668472676323876536974445466126963098267853058000383763364741686447897257906939652477427780345529579146190868838879455187433541898813468088720599300384411960869459555407377180780161932724272306900246039783675553638726456531227358565108789610654727626220498554209338629754725343786293562882751063189997127917268155242414296783330539800048813393345788290758444096431892220669791239201365188567787087123795462493668152732765642756270651003461970918513699370373219481714043085570610092284780669315224880348392412914448657661405749000198641756471048571189484854229287629857374232814044349322329027793710642803434726644721688038122538511388830775371748476473975878752866531814542433137197371277562048881425269437374463993343282888060224142858681594873227040012060690128206649361419209174032128854811970582079300689092256227452135274882466374247010710170802222560675223518839162083962276148171492330130138463006516669742590933135945418666484277768022919697221540160592143297453191131000394432831042112993226846303028587624798631193917676127369758106842409019356499218658966850704762767844803875446377029489218788535764648504436892848775492236029920317955978905827215449397347417539908521335036016823646203596949469629155635714643398699663976572003754110968615053455215421891422198233205920285377990571122453903283183438453854929925213329983448032946960763376192929523142343260278017364092802202668128187275834241491731724080846932207773066417509510543407765799361976587656971725404822636021656315656910365152296863317352009546829684935665347243805499554550411102164462823016667686752121465037496819486564228914730395321607706972439676081930531058725112437824481762697563929654424292148761013082750021628391006571950152129514920069865713450882603377421475236215263267577406783468881547070921786654700384157898920134921944566198211146755032856478524891017224662857587387414060786566296731477286093039669091187001652576586545149194803908295286019563437576127932480350720806188153978613498997587131213688000885237244304291109000735347702103014345711893291928901781836912524375988336952400686362848015416231848730584288454608935514118181586140366999897788501795108152578236801208681699179713478075131263967667015705893153826742132276228741317751722272386758493213829965587772230230058388158962589968439411146967875007341668611569611436217952464554892972660062773575363677212744980476712727123813404401405878252705375826275779006752635714747159040991298959035661919566436513123429704604084489076982819228733039919537044555523913538909534584695753989715676327358066847970399867828899306091874220470599761962025231423983617795578996522245085925093071881445786603813564324946937542416932709474670745910798717626657046719770557129048995897505905324297360485738337160995347983328643162139386030436865374891127117735995282782226559262811706027347916937809363950305293621204159044087877054630969283990895203584428538895586497169684876017302854106645421157126000393711969851599512658539614562702045643082513736841856014189660225974897000887148228638763610744889094709025591750558518482346424755360960437975189206595661222294780323686935110811900299050551454300583866821075809401307549112048756081047874101324631177693872727145455224620909198565511050945785489258926476802148275950015329816290125967064795808785241989020214666921207587030108460525040262750797040701443355681325553055938682922485289694468917909484806183135678786042307880002831557412945636113116058018832808129754827890839756968017473469920455858935329189034089001296188244217778180517836289319165036156211544859582794997208068100606339967952279133109457259486766074296467520485897945736360184781316389950689460270037085553545421696291914754185325305355866393809157091145113867490155579305498912944131561965961658374756355989487160876996240235132287168503414305333626737444824927088598600591665549029101570824003917301741012808535529159001349018550705467089732809975399340070599214918390432648494700570011437309571078005921267882965021105001830324397486622526566264207333896782859421365147441624623819248837882407539563073274972968455273426117196151023099086361270829987710832991376781332476191437114396174834683729557357493640589750226862567099386573345300498171153480066295866904526134689462965361133543072570356412336130621015704657746211122062086008672017237440104674976734259894726232036108271941368887178649189228161900154149438574148917073326324639064321020965975244761178662840965670543697282682826049424759424210759132213717504629425094025374896672326723260120641407237622217683464721171142888073348262329920378013235965215987651343895042953030122571220447249523592207276025489912290561067748566878571270489247881261478790701386372637268279420876013372476612585271695185372781921961548962958002951377965699297254334520197647122699570013052103837555122676778174284933871070955921741544814165317990829251097187349054980935989548960534632229640498110688068522954486932987536691460143881771363181910519507366813535445082545582254970586443259496044706948052284357212376364070127658366527601505643039780902196887283285108737329998496174976657059392672600876305343041549048993590789909725572320091942110096099125981622889138981874002165483365472236856545002078987493314521136813367387707634390025057213762010459261963469354820308550990074789471787903358904065169742349563837164578445216712614918954930410007880857407574581495273002535865665829253743197782395187988167119367683185504737266577372532108612214373960585007187296204962717638691667862914595574122117075338442579981954271653333732742797253803393716446713194366755764819873031078553845908224982653569832993068487500862522730104569616114095056818682862472919027181648558139898294759852384717615968067807741405994176936889210883703899188906215063197570477076022459782872868238417301983408947561630808879462909269844988227238809410962218481918001712006484186023071885681194587743205770469794103285837090262075745497603296185692574559601826519481160194264636977187695263838596377524163326122893945076811257681473385850636289899346651905051803796515641871045330110415843287288271202304737103472202364831321938276313842012647733886099282715702655844724622777623242888218774564937584256731591045979014469673761803336558225744283719755632097688894860065840686846792406817177591064818005710273243616953487272885375112063960138315911837915833566771995617397976378452537331103394627630037229509148895590352001324216120993605130445090364645146202325048389307157366394155470954701013175608219345621825390634446453303319724501674634259765743773101026217568353395616274267168933114372345576358501211264878070280722038535833240575386472092865082807445912908408178685529414262908917892157803972796960491203277768904984862250576108103874231609556928139459554987541628354553612695901229579669825697357021485769115214334867898446640529898428275706075513265899960815329856476344052459329108526922407410674284055023534127450450965968969397968152029730325002057965049006414022993912538412195393844206613481753245218192975500176541105190504918594406762464379469258760395755154168939601454663374925494397676735423377109822192674963834160340414275271631049303985230273028908550474642112653187148384305247781715847890238498964074319988441845491210737425704887330069388672311036356127888657394550139008070583284863520087602943632962666437723369653984269590593515510200313654872889181016908977723744138787615047690674403112382940290027973882708497615241622926739585117973431618387345374295421454224670143759527866560577522381304375540169574410598863851710707509556979235547550855467524893566404445158099206175925355283212047609579090336397164241040462424644277495262449526166592929040378788387899704603262231102560372723641870911396491734886957834723931643845379382562770335181860705858932018339787301616431797860671798103758534034032350212225917224593259029410545390450156370069966340951469068406109836784821380807416337237387520495543435254386545587442424845712923217504170477463349826154946645227619839385779123745955246618948231749721368350968462189109090979642330092598527565082604220106035184313672728363697200452369262024622982889936259193653708583963692127553746375092492642223000857285876270848881694507633204345342128240619776705956958869664546136666929519523102495490272354656145498132613864243031073792290341845338530315554730860093836074023035960621309322556949712025195167537117282553858222686793885787676875229420921717834969314649021719004160925904890970039999704988345014371554636996555422015628265931541413531558889728630263394858724231207314956902306866752160398464995904348018656197296873540835634669931266096536679099896166061024768712465579413228516491753842630343954422499414346767051223789200242080379397154691161239294733453086753938526571891885689808879034453118588182407716631276923356474249118112756625069957845344964937318055326401916015746164640386509573790119536058809031947688629090883786894793825005345934646392820350955251447173430609822290276758144624489045594603571658614505080439071170373974143705959053756183322762936267647334291549069379353794788843595872680577309388232860112954953392962944883280240631385526251555342107339291959787512671356668537048384556988240384741651035162696023111042488521439577140847234145401412017098111726616031635243234457437499902827287803066962275198154029554301808432606240820153204431461540934467131209870021377468694099974215407516594311187171248313316884425532622026530389628539019639566712643558518845452245846045443998929976356747469616864188582853886818797054438600150899067500213958773107320479724062605441187901774371217026717209275000253484943328008716356578557536700336385065405468602541735837640868916451405580960906262032786818627474475043667948736280745216770391545768612958999808273328647161974222851964003535450779010358632504103239628843081451182093431624273576851106268434534864179785747464509268849128679082582720740583837762108592859527987908965908998105254461588263366242800873323665131446387748199561563249089696881741086495176442478677330570145629695312399905083755094302565382427754984237639571036783719059320882231022162296287803715348542910270692667912656275055632243811822065577447051856284070022114849513129757120024142656150957732028227156637948693244357645281905365631591954888584000459517477909637296902513841913544137369854011329288398132648091270089707967751786528988150062588943950047099732806882761575133334089331874519605512253825299347708508260245474108222777265180376725137132503050884548063959684191692420860606015929425247852961911082078736710175762201320483525658646710039375538466154991495543757997171968590820637278351958045805272751471850019577140382200966051744184244853821737409615400843945493211085723202345153761316208412635809030156328121306625487965439365588472483158667741924058943317095914652320775609954745815638668605075556633502290518807166691394208759901333508166837604724147259628517569677977945624815445877431026853791328662149466774952160609936664512364340819404605295166928373012876300298712436784489859342495431529630363975830410434063117285346112780940934985915452650073794439530231064187199526767432483892192991886927749735232288686382118807475950085768085504330721076591109426436841746159456242665409291647476452338573963058865236621606693222659795169188561206409502347547982030860285331608470259370600080412724472524006860212988964683184915233483499568336591685858081577945891718062111719343390743304783102009462845507092526278674176821559011053819363655878457017148368062013396843374015668608822495385735239482981165620469140429073233164007442671939111479866447541532018215535710484750245315591219701114324573288676910716716130553921210469156786400289186474074758926265480855397485716804825648118133277043611335332622240270200125130081322120058243071193632586018832737831177957526910162878850614903241782940085844575729159191393566072510185447609973653277211019905425763156518220916166215526394844961795068509165294499111690174211848739495912727129332543346999163889510198172895233498634005685646014324615541063293379507213701784776428150013497500139197684048239135760102698584237835655849084755394140912724918647788778618240031347025484209588180323151650839918452214936753136240145400876802892863642281156839371116244886859887081880406229489489230078891525512869422039503756517213128478178258589061550948011564961294997009490020212202813541181341696721573666137919326973484920190076410882650389389458459869820048759479461523627235929077850436573448983359305114655664439703556322586818693700821753218669752145283735681924182210184193280128015108508097581360363352925602853568163825791102405436842900179307008226973840173306423073771066167012585985213968455154261549637171883306817688592479953082615969275351940319975204257892782704937227004123865244870374949378763582364668061870275132473780281041283106750365501921094132116057199452573129779054126655724213081587432447939213144378591569852481127058323941355406156515740866562408524284013457069022427718707904603813457000297418646690345691600268489154698302771536392616902230174034836842368984075576547652056784076745943854583062541927772740614874166949295153573991349768882014167848919922323759451084028553325107104026427302438887462785549006579665458040780601853657591839874812853827765400452268827060094834088218710540050473164425490915924566799671710443305105099851138869956045469854468989306679554515832566846484781041960810121598111717736427192587642306414282034128711610874960682517202796033487454942832028129287345025755485324118273102964505986752960995946054536462391213334595305817040535512343874187584906331310892230655387041617070668009318977487837781138231574727489507946176586811703854288367657359855469269111063995157503100857864011181093275648089559103567151454072694180354055547198840649808922474842721002325754911397050565934857318140129795918839934296494355570760694308268027321699523279019151526562039839137913792859180327726290225543484910429159872630103243367584340376621964994027153791873852866030178621794107380120761131615024699425405115068119975591710016731761314053798089342651539679865457681979164223627981476208283100344273960934371931940422820055806191539938372317458591302529991694640177886179255318043055957954183392819426706308245918403817022016208622437169003650529994764476696710438328587011039979527150449696251244590679518438217450941643058707504861934084763518998701308236094271927500680731438462753831773969699096658683701134315024756724970725663331250894994009080183844614909959261573399842877737718302046202785049882383624468601976117747620065451635726911685650339691320187218787942926899190988204434955252535119064341017737022743484718256296555976790705073869391506426451033723863838680490647334644159237936370260200556803589118280232320110549971422255267995246896556859139152465291896289301549914299688745533895872397368112305854443955548536713207450356839598493156407269848506223658113106660349411854627166411947316509513465533770241295503768328046263783211867860104931386953402313879679783106721934361972170422063029102592416291649932076655827200742218330781932053695922189741539439070107117591766090130721776873405217350370034861473415538423117763408767963824830110462744897925037278970405581464896618597969939310121526525760291612861416894973481500145563699827086897157642991637220346806988027094308813149542032516115053528536121187068260794858391496219692830899064797981820960032290265165068741706475452691431781869916558075346807155460246760505380981580694818955239990862691428409341765013085739561947533739866409815660414467742929176542268748190884560780961310235588638778560850130993304777191875310565872012602638864961686263255441142186517631338786538327986123966248013527339124478585483754998475790909478358586844710407073644520220869708625094745410886435819026300442959231056572547199561020328850648167106824379903815700133690359043520292130517212555146510532673236227626416948283807902218560778884561101975945187750001223081064404930150976289030037602520532197778114061970251705538217015717483405466488430365831346365347501353266498778627546369074536872946720180883085772281306456210730760643047770644187540170085606232496587324735460396769700569111417964619700107726441620816865104651364542812637828713422255236820105863309780007910563989083083983699016023676508210345106787134083033110890943829715959434428271009172359882649887308685080371376468190066403155555722829479815998534690933531739251696083135349093323214089526216413410004309073792387269902035028173235193981414813518458216226035108561057360289708674692276185307701433829889648301193217616550386187647521610003513071293187414367228830852856835559361897017420089892764366697989869027997824719907061637854007585819074489761339492193675973041668954970498117446266754273971741355920119892160217287903971374485880384094143766476976771984507170273625135556805519973778415284429292824864337090443844155820602442770896710197334118921200437482309342809208170535599924122385392554904249291678070869864381878262658537463428736896432301205986463582608342156886514649858160413248425166378139121418572410230815792090256164453629887597877054185414463027544860946146097106775447494686525488888434362046271199664848865039648403028837046543160201703533751290929799701876070277951614886243182255701442946447097609881928906302485070096782629122460809167488484863873327628267845836006765370397465473822506087525083971828877531423873750808311729369265959100314769175148239817200170824847938440022838395917508987595866454865828933492025640197855237838789781057332751079160940409670596149000051679232343321187947881251993519934939129434179264589925304551894180173451513315932083730081557011895679319651466291887510873069620959276640251780244920364663266263937217161855558835170862577014327175763679843665237790637408390677422047382061488174547630415110412406034961398405481698346657426594121107556347676055566186613040926671018361780823236448114359806496177606866099587104997379824042334099383711249818916306353461950933146580593291006933619149664564742474162717691143480945482611344563635006594756173513278300510923756103745533082755932213955880854502363654856630393688367047468832708693176869900078133287881427782963384240764674180320262235498040113838435027998088287044959039611591800030952963823050682904696560070254018094324398696816366027104058472140325732605776294268288540049345029230611362437808218034775516045970942100213341951172294080950150422791285478591966535922283489214036935641987789388974080006318275597624444561725908376283766992409543822213414299971918710801457057606700110961788500495185013419672846888118550372143420685177638793057548117378100543039954401715478646764633527450562978553034029047990794289442703496002046810138664778462615381501456799895217063693229459155485203068755692602097769546713255509991647424178972314121199373826550198506635773451922565093001231344992546846562177855312139255117838804586835809937207535423122896308490581883810469465531210463746812239405803823019460576022082908561061371946569431257732169538832448524979851588817146601604532705480100617711334994574411546352658992203069530829576499524891478139340485662985640702309960895994736796420915134535874953222270564556274378489794109167336100190835653675629688478816495727866516956718406037450832804954583188927021620815981887355008291877474167680550204730360852045541542068246695705542987509280789342485732582178497584522795891120888942383311031111945250541927249252705416856653746603894103536247450372283937407609530455680270814761939255209338122801972712835361561909866626745862594751665325936084764547622195510584566019758167862906228312205452636323109712635988569596443090964650300560497690299759287898326529445815553135503742888989393252851793426558318860495785352029688582787297955700186179369614024606369156921910571741430354780487499755105492278016871585658960796829041561017028817779371511999822725855627280104247410480684432716657610674459240695297591916481347739291207351629896422246865110519613713985430705913236065146073416817462729504490199305540313455248180754769567855028783531488202108267356289800915935062526899472813164183886707028172447573284237772233902392317154200782770482820760316116944220712629146324100389614510823393604648768594279855058022809454742359943112009560909667667176292928528956219583514556969711677167535666004956845138744819468315670323203637251004480484586393350477494853069999534046462727607027218061923209085878137277313208637937016464162434938234144633840312138221642522102032077313928447676996082101710701024320731281416390753809442919928175474709172646035283986002430076455610507345596885177384482961597597063435312675115786178041833251841751845260772649381192599549645269359172348828572204060510100741970991414939974775481096855592933424254628164871868439813820090624276332261008737827129473087103928156330635053052187404281689683395082404912205640922995843357038722394295431724806608554957603374302171071628368218274500464624713344397089952246487481793563241954919571034340218861418926693476829397940080632903695609943100828675561447742903119941646628433559573074808192108599313859593416303865890263102049787781547004547932290764668407518773353786481140956936394252523738356727294516058968863088252871294665444860204355935152882776830041424898244856196650630888983648380914976945972226617359894601229913854667555167252776256130515283571493593994009669234363863831975737239620420177198583779879799723740098337383791150653128326996092059707192265100296767399331821591465976388371626264806905314675975741410247684641488651875020840790786941875811288317494468764881060491111213973226342250788235852735042617416360002944414707748843864179990127212144898984201272837124545771567412919453260922480003427631502169841524269771904819367589874696839292369896786261288309853513954750787289771318187905794484057064231082566076302104615058257940833447741149719920912398710410951922424075789069943675850691568246394231882965309337258079158985320109005584935466514905230408187844638336660088599661774335950842146530264349022779622058900137908041215482848161570963492879915953784556514002055396655108411263229864018983393655892387691877002487320921082532337087837019433019194392368071727899868544746417146963170933159960123191007510343417341232392778379934032149013161629331426815671864319591705076555803820692127542110157698689829541352012858819809606171366263819558757110803208463991781465161540907408661017072819393197798926229188989113790122838794595918649899883778626184787651663698599720938249485260024721155606215830762655322033690244842996382589939458870350605692226640713489023761447219099889694709275056467351746419940524933531191822549002653028338012047551492517422910771045673288251039986761332703163382492186873463915364839931282604088635910701671657054670258056027296492304980793523686889103001384114539677617241508860942713074718424486699327815710921323168908561303941193912796521642316194564010879423287578236878152725242393574795405709653166679382220579980213452355888425967958062704393543128418462726737857022616539925080419698141807570582354090406444751479019424302311833043185944171251265480263683653822029364948809379341492515526796865102990923329338846922002999888215270536195048437452643903323393869239217358571376759984774083171454422410783068321720136279977973411217817611404936203717916748826478253521200560994349924414118519402558029222572780125784798712411939515807460070362208332529558976106920811785072380049764064634599864581943153606401487087769244985845427030552120523102821004379917143068474091213834735041770188730094233497839425764365050231214431277172927650457318220893814630682650556334885459439952743203707496336646801018105433436449962598976092025964278286356663440394025162668330385341758153583655118558109895213946408285213105970474398095575289394584557422481361484688000259632922191668466388508945397860041731400499695944442139838721390457074860525319464132479846361097070629194200617570847821630226852456901596560161201808368597886600165301490483493747810658407753176337612701334647826362166318579343205949739237826407134676020151255706691545825769746928485573944566871824527605432137882966390651130766388029982047883676511248422344217031653982335586916297509740262195940639853349841459477197395550691728114429976755463867363021728367777679230226112222426259057521571870664526772606441947150403470721325876038156722283753042298877534344280222923493449069784970453612440503540978412426413648427995066801103601437617391323541522805874684010118910822303435637617743838599954896005166002569463385051895666820129398579806601695667805450642358789546591446272357759521378622400109594989902959484288739992954114235016678191949299988288312060176892676890687111232216663359193588786472168522349333615749873294574905130973838303693240988452712845716518353839883797609247821812996529014304913138832713743779165648819128468378585014730231559880830740789017630964329778286000764183146270090837655497542348454724112785129832874275220086492744010328605768948839946269411567793009326533653521593549890900320767610424649117746719026317993528795578990884700209352394471014422794642779172529689872453485263460596714185772333230140283698643389392549978534757699112925309653090314522889684527729557938920388103775891742883224624589972028111065431057063894320421461300368807503142774164985292077092825014898301761356966023003250648900506119614249153737077406697603265607780505438019080180258652468335722324312882850073729203318049116813293741094096693130729034162267574285849361264229378010486942068673699505750946164921663553574555544160429209420872546506099539683589243893929128828505810767932229604166620860680710403751082934269003464230279673768849589871083990190633807138921273118337698313747345780793618423772907063685707274680205820336846351623580315518345634518076618065953748615162522737351593360425596826829141013446720530032037396163814140145760579582647873280850034159907252317554817762054129090532321573738136675864192673746052705352176835478039609035228291786118256891265532881582788106155095053689299861860989988913055168513785390007202927449711717658664803986487704990609021533334868782693080697982781282231219414755848012790373520110988490634633758615005457745496458044240318185062367483621215085023454219803528098530146669443413397331730353480316652811914569664243048783433182991465540740378371622704337731086362390180480041159751640433754897490545684597664879980220427198705846243494941033860006328202909457946455032317715143916569262473470666362038003342056439855003319032944707644104580620452595385467416341522167203023102482307222805856663199996803635718903186832613028109213098496477487676650110232985720184960822809841278619267193080498910703013838496767249659202042233864846579675701254278652886768382754550449236641240672598179987080162053929320831864650513190717301065031515867168870534429629721364025645552765172122958981612904521657074349612316903694957930798229467245604239018869153450504185145345283721495855752127918222995362650589954268137632986697123268972060768662038150102787567101563299770808929084894552556122836210086834644462347973862088039618447985379981885101561117977006676987123177389192787986327005377486917510571628342764670703027910523366058982875464082989282935397459615582149838801900115811289910908137362745191499327441521674818935783049450646335489828161731504465863169952398373587864309909138705450206157880534836440514254866738156418852807115062978450174258872689948150252427599294743238093304061982373274889567900145709964670704182864955329519573739088088326600545693552656487863396069319618247702539186845024401053949467000026101966617098520941895842538509388526470824415221196371065163371494087126453453812637025222335534407188800693496961693425950647269237108569407135636872245292157909772673426416128708024621718665323177971962520694403083002460725607054425517090602428893378552525251982658978256766607920672589687627157979054283839425235334720184229463576110257988025991213705020190210851265544497052934573242680021565066935845885337816731518194929279032134682582504497114981909854740462022000774370644506588641192375302208649936557181069400084403376526666625260096777426941166453278966463893946481995781274701861311860827509385510271526897180408853627345473095991136607046495869211006621951390553116410105690469279368820315520868822683329429390671741515909798030263321004451025642393612006623408870873730870598995928701262517232785756745479394800565435495001904432219203506221608915373858349760934678787513589858516272891513488454335392407940874057922725752722058569179950613843493155765264814202302973722750873749274403056464549424920585513118406339613964426758934100091642061636908590369243133256900267626184759577405446043373889461057523756873646484063965023175872754818148544768543501761487416100157070184286103202027850854905814874985638166238697198409343420191597736774455468937260282945490037915834770292671393254081192944272381733854154890851696153241818286547784767829796182659875160926709667435969290663414606926994128383191569700972186077755624523849454238618501648560763482068889736946170748400453944749576721766117383309220256876217419205548702039972582772006304829482107437517629645426200823213650593107544117325953202401145198804153160315439142558391027506544817730381914494000418758116994980361859282909188956458597506322526689421324825148203157470816883291731664251337537804732892280805960354515224020334709346486047937545100974576559809126327573264342604490742775697518809488899582557943493428191878999586275943100812108589027926659025645529943291143244283326716195638992699553867479215221616584193023816922725694697022165361599091158000101078397908019899696285391381939874106862645948792070074726862957091659166055792969904266124285639558032563792337114208884975557967677185275186956369756650501062444557685507062827696688249583507799360457312083598112593672818651424050978916936980234700724092882331166471941146801049827971555411291453468016631191484884063876449259498644372323033100466259049649551735543415584371194208035838202020990603440308452995555148987597843970029588512039190886068512992772525244587589252639245485526890155782252105153081785724740264592305807776813008909743339453918026162559933941472887347122556395236220862081932510524021071921322291813031487669449003897959300831625697044302314602865119022369778493851568269530452054336288794039708166718349218675107261013814923463302703641895613648352695200646217184827820765692376023441074468967433610697635590827559104230497286668731595136200519010912992562183810236654118809764273920746540550795284272771151244766113186637451454537206644758164656242208102054500175123712794549912421786387907750550318906842537882658683005127757107036331590066641453628111140417498279470232482753943991752549837401686823746813160797891681538870497970724571552421353186011404090535040442852244880359557723999989820274581262566680617629691078276603180794102484838695472456504425121011232218977052774796476728188354727659838227928052011202125442409122957345141467446313004692670234456403196033022552237919393068652964343923855514262616815259963656951332146336271371431511600791610161994683976905102797873029693520810957089966120821004231201676757572098059697715130485410209870056874767841286731559204530821109273034254376208087316272827945476734185120631401105423232360526389751505423750112833350858039576993892944123479678642309704828563976585266278157290875148583493379548991626172940639315990528429726117993629638394179470409900888037747407064994993149940444318738582281286372644145391101504407747013028352396376991874284316674907756430456118523367159947656029056646762582574630896934518109869061972292112040292223298452165219761900354408996534792409753449186998898277105675832212451184644886708368773369454962758799528049264617750885676595495581331419232452906361779548777490141976289999160850121298536426431187346917403757077461086606310733423358754488907726830522418204216164108557819517614222393971824714194484752420600092062248449526359680064514743147860114943736060513030158679642506183590307256099397531744792643524590206003864558796490478355509026199415499218576157226244697491757042858675650496186337798352913098653193394663278819411127953301080936144711853947569732329433777579374425118631389340890348971050932082723671097663640356465945023476966178338456936513838098774481083450573460653929680845629394423111000721017681771524679866619591550299895235234652292564834832568457895994417220066112538442665270188863795818433899478243110696760940548503717642747902082503779879349127612951484004138573301041349858894596092904828895124655343434258013208131119907788178394132164097240438299027130632737544132194351027636179990621351082612958560286696965780946546949338021469378095001829245535801078917314821070178635802890937232106167638233303825505233522360345281685660158431354944049500763059584377283594735829308137342774339644950367206593997743058952801626672264846158864029997714289298689064178227076773854970522017857292996198980211304615287602699014426862884987306680211059243537650863718764715618678084669361478743578095508272263699036400463302342554160943821073206068783278803232587056825842676677046275825434663191107510867979458287548986505922742212365742547989622148105279126134285925046598327652661459452615710050075154472531434870748711108885085133536064389279404776591792225356301952152623880651558977802619209020030128524867500125101710775512763632857892113591322070087161781141641333463975925049123340078889706859065162026538936595187141554102014747185357760856828213289715319188578245953202694993087617254623116835432327222842957782591127857347506237939173984601267443431033465850492023748756973942435659637391179831881906632722430995249443465478723311827713503221905687564747211474569283071730622505602473500958328731218173845391108667033990632388287749751098132988338391793122419344554716010639890540590911634257773251999487907807959592548661415882523562045064832237562820443748421630301382934548690083352829605686028846969340923705708984236366910257735649423879574065789275536272547927925531796556256059437819975108276183196629021798063619114079229549170089307158493486096406219270131457421100981661893972307281873837350736112398477097159449051907604185760309775182851005685046779862676087751729127890372554489330500719288430920806603832447992775641344235514635439680065305396795632342017624504928846976616622037085053150442573251078512302125018329219697212597853880631771697992653520304843127664992099217315048257094348624450694398082229748417479476691781725927816747154160877268331180693699194039680160314502268473755738131437230121843389679312587727065076110313108690316737051709864803113924808540809513331521038947229146845727283354098137697217228496673406101877357612312034559916395342939429587535682518469070787118888505994313261338957092181605486901269598343810450400724007380290764980296520111683258592816353707637089481263614170518647825003958733671535533851470974842171388314627251014459778217047137631724987770329727801523009433873646661507960248544497718857958264549914702955645555985687112427667117758148108299969023239210812385905305901926172101780479159005108661585603585940151513951831458774142713872732901770637042374506892177398816087008519656085153246190176313035703925222244124086456610249174859976166958460619428747576488699665122851002815473349673537687234975349274784128102844523552974839461518174513865435262727884359300983030603814970518968533972709243208121358712911417407022013071990380176404188772865208564024429868262664850524997968580026225871572799158123641857019051623710300933266048027077090784749126821469137121986443648668329773013304225209530546822648006674351073606725601983603383815203651116958067446289488200020137011673657195920944481428633369652809214022258932297949548203137652859850429208452827547960959480438434456569724673035853047117546407009735942983823424476671198213491527518442707702787744622283262783877986445724808021071383260643123664908039603430655782668858948103004635838743604548216850648847395282341323949657958159030417840549991773020584612381189957054723191333275381648106183420415860012487631774779044150255493281164502565483152839429712154734950693782201862387871650846009178535062205004989293336057138104385961447724835900425287401175559858632060263715899235795405962037905724486286282946405141825033001272836418127805165107045212760274305908639272881999868579505180160988265461464530157076825419069854459599649853404035361567314818534437036600619754912081662279486230340647784047277221333011734224839195928116529612660618345300273363861582257934370260406993093753015955881289507662884611131865256904206090242095896064316725204187725281687194288087551454323596564860223534668055652991053829142798478505201082770665319714932598080233246274823341820252530351241753725555023649051211157253758112955753409800165849249719708966942312437714772356933465308534614627144776951263697311401588774362435830023190356479232787110359272667117279294297037047731258640659246468382852280025005065507227999445127092721095779113170712396110440445630234516941297656305501724606755941839440866582075404690473466046155616757236800255734473507451476665705995094355509073727488286066270209272189435451593825360722021171616228125565383578206255469540306359165335500471795461228738849016427336921361679331142928207547730937541472629858219714546814945453846757429618529794513615841600749435507784464452972634374832698888805332348175787834460102348241991883997319682056489095929295691803910763488645055204367895742644478850619157321500756177597006853950328792641303844786888442437470042696977470382460387651410383586538442648083571425477661612079990277345499960623153920364192084947740808939805115736424861108173479723936979006247318443473699444308127063908602895628984968343490759538267687516066786096621375692762136628371990320515881559980384865173401374604591010484778894131827984208576793749693212397211303670394891785534081221904162453423183459663653676476270277832930550828666818618177623022144601833036539426781166754307948476327479951829863957848220385972568324323359130477817586978272988333097147789560866219778044871264998450050957043367241367882378905736696705846208270291722649867412587332405385281790307251507101073590137582799210452864342517170661431491560847695936294806592408987408074164741544809669670889053434121318290871118982732174560847229843159214556307148282000199952733107117523775323174887117757875165889227559242507465410597758566314763765296025653504742929178409515329812766751113739057392661645379643815728918568257578259701008460186808749466073274445473399702225594516460047026844001444356686055555260480087043736285336686615260892815235860972178559694701107572964551656109899404318837375857573705831777609881308437125544743941051410292502478415794266745554516597814996490640396592230936453571095826673939675265859404312684680988469059806438367419240788573899983053369153948895693054734469086471911709371065655145360503558968903132956482905725947488219680368463808936592094338075579752884968564911741136894045267898337426135609167843461813910771019864748086773156489368778409396128328593667761117075971359826184911975765726213265024057467535551495021409439747614583175262134415868456041690140078310766005681872464142721563826409422471174804471313533667370478648247690237344202951044035758075135769039456071581969068273856479244909435817067330123932190430927963829121116191684889612744400807871308105688436533729754905879922238239614907174711791712692910525480874462559175928518799623096161930197054284850753511779934851939370489887858625469394827312964070340574402736278164351116603828120805189339132980267800597441563836824506594228216858572564534199809297321607246126494600454737838213577761784955566528323376922290994748075261063565609225358715804908830536105356165557203719691790190348279798686033704999418470646492134204229617109588146727032037462293010486220895633017422986372757202982299540711199136224041524200346209410954530120314920332632205311604966156916451373725098690389424324764051962920514229194838452480139123263546193571367797665149028193940598942451623576703905465710894712607047616156014154003482375955852060073774841966817785352025982964915112695681665611220299853678594061739076370410058473986623167444047255194170658490335935900952556108299519867919298715723090505694454319718826093235966613529599190823384323921479460179166710746510573450184800012441043587676375404434255476641536489084626515879459131382087674680907059771066095877528479935125134087929633709773490407094158809009449333226407362525213771392492850130759911575802775408601284122722641230121030300366349187214250170501670888498435499818034892099358834270102062567712712696219293893190294667612637993605206385894892782221621467058172260338446436906768857251845138415429574984581546257814392436141205908246957079317559358421476458033973549804404365111393377060403019540016915689936603956610277897529750700913746467618550377804125012082409036590716049615403833108621685977226230376490250906819441990735736549214760937164539444855995732964882361214011709300687926638853605470615125292733054794651369929380516003263338108197069096695347091970360599977480325596316077367615175165105482494806028009173130439521055730359659895437745409751208839985132778433900626844563814151585237437812719552867309945929294146447952478324230208913534431081841930055098641500342095663217697300244359686858410430090280025470073896938714897801428897985668211374195361417035259710262761726998884721619579554287526274037148290274306773333323299704638794989269277021944356870428314090897383255926296422566193351004028203504889521236173978565935226755121917515678845059902304760463319156720624871451952014336439222776841056834802605447365163914832891092511147460193918427744965472335774697833662323497968755051702875796103497479198926470569380172771586806632251649005068565297524576877603197892186523526711263036786554446235485182934952505361733598941731557786238339617221195851716528131897545049353462585808844558005396846655219371267632950615459673482786105332778715799953203228286714023302237155067100364935720196021691215962378748477701262282833012678996045358736756437190233949669373445528874455090759112803990527492581941147052296607196322425798313422706847693178800295799933327855626713810886261501625704688179799627745505948190223443494089806110972939461549026951007587920690968372354385738157467381210042365860883495202875451557483021842940228666700540762983891973115013593522575518987595107816496008610048488224296285846403931472220795645938221828157578481523060831013837773759033916037792179278297268548803442030566040182287672869082478676983745941860187935744500713879099146101042982731558131948703018792271445113371847085176433481356476647319349324990003202824832843595409256713788800691032733014708528171950494422799918145145244420704894761960998332718356807346022850304474585613211136650809475217011493289965619699435941352317142588524496830057541855104812035635546300186545697116603485840125449291408005365363662658692895547336959838326019272643360355116628901802819409018584594208983770173676938042557574096754550626010638279948390945116803781955263377489274011570709402749535166691848274286974769044335752941392197321365846191947299833424836673024787047754653344193492495718690227201235428029133538496360773707434172176249281977192051905231444040025570458887502838534021611828788446107065107573835099855009376806143026948939616387524469914681309462990247540223596674550854410527981453591443419981714940959410122256976238372453441622306783878316437610365160738168238152806698511494042091758031342724359365930667851693592715981742241370599411178933302427761602486292899972023349570049937354486011965369772187129382930491906483923953006730934966471807371458407455259734368224481008522724983116261597054366436855845281262839326291656409317892879856522214321836498966828388741681236223310216932491845584110150363975690591018305104838585828029759247712564567051935489408120241235007829287345703963823409242855148999440967255483874145512353526536512096710539481213211566567121054772845117226027953128109771139419491791483167506180774589976478476322052267289626272232622902326914500772201494338916439251736826718609327055741283296319090102936883414138284259885816237216937802428258197394704122896120564428083499686231097793697908312177254713237724408129693427540467333895353331081565506459896725091963676546408049313846382938137932476589327519086639855535533381353446405830211019279433689120463512482096401458831728639036687096010816480691555324946501461831388060929276718257492217646425386128829948304668597513824320759155610405012665617994340284922769201186214833763403101755335282580809826137038741179495433428906301480706520685066792580616184635889101609549424394212100847607752492164761981396599878967448293266517888933636310265423269613935049267593384854785777912507287785591734962970269749692517215299138014679940385220178321853324940556274985870197527817619066144580752174904111333900928325477415352015142612082206753553378718921792845563635603809713229028779345136661087365236674281366175890762766122448734862881044327091129150983600860422509170512566283823020879087606902748613729665992754998155564022888093462261719446464231516997961625486023207102865822327551292118965058950661709037909707784823510162941541522417608180229030398318466578084530360926822321097860241058355670606040744754068880786214018184299658743952652768184504306377861657477179409832007916477236796897144001986867604885759768392251409689630529890878631541291280950693114222940522018774431339464569053503077393769639705647605835857065026832441479507123790914557757343924072960058024169843639583968846446683733828897343495948283388770841768032738124672933268354504879309360736319831477285588942748939081844961726101754231744398962744656448289831711920984540702745993054179396095587925736282897975214588155155493730704487109438813763011282910993323206765681238154110122221486732811490934056143528177657079630726372133305439780519911895188294968916405752239883595461944961751399246113525105607658406620109056456596538271937415117915550587653622023523080568206053110950077583005796666682641793319116704122335691142926830380392447856780663530358120033962180013125329391621894140838593455174127352629446607217953303489665448373267251493386817725459225778087357709198012136939678730851926815314161942749482355210032794393441600489970133911969363206454287741911788503444961692522274544831650922587639790429316227003987108377810364989033367637503751100948379648323338076600113241026647009571047160713071667737235937143420352425648570692777897341470877798332744303833705057723935592726242846552721801616247137718399061374532475215863803744976196328891732068096547495015468109485781440059416258274684735955641881487315797542197427195228044598747541937876931188157011706135680848733930450531790382344648001463506796402348353800217114913859183941097281525208286629822067899397950301488581937714057524076570397969866581264579811556679782242814004682779059372926619373208991603801477115189088932123810303693064385039273921088818171383388080513649235957810335399297002623006521661081825319548364636904697873145109178128118541709926770075899973663430481203251871270058592753849088792370594851892584773310939983668251755374282233898756289182071340009852755622508227884905411634099070434506119398240319557516647233353178261196509960482059376922454462452442606475455678569696575539365218508882081255989454522272483847867831798685273356798773661424151364086856182145252670496884292979321473812626298389381879623750364989504414255951116184921160063636282581245285182613772873095884360907434399064696324504243697609327126272291899300426223835056360864137859475847448384676346371236828172498773305067939037668669383504339432502371379271737224814404442419766376769556335164665225350450838587346168318260965172621875329757224606100766398428553485458379216983084336002273023420106586575392912517226731674302353934026254474117534429756978711337580176903255598937889698453937815357308632609284316960701235750264519953217404244693537128461013547147608729818100700971251806421478697860695238605931654560518796337604910615150508511650824824525165300444245158317507093704301062242592684591966995913774187445141822951213997421304902653816491066029434979757191614515206966860649834988962713967937519194170648219764417218970579680892464856827944231995769922771440523269890138394520316845025609300445375066427478354708716642563264756814102087393280296920747357645718042939454628832595410103011332304754862015957786542522997970067733284099392565688697091479521496943770201073599364287068000802931055151455347079712098670883615376078682900122168696056382217890432150658033389180076032237333841126268789757123169222043611330969883807080447065111335570850301075979211381643121243348405101734120336982624833484043365582395712849114998614582435473385112942293445341669785676302749603789731873570424218493558879402969618353593366811384865573782418644088053160262780998364957643364955765970852427144856271420530680841934009812773410263631118016436902652223886076124338038417529568046364865827574563688567301823265708221665937627743772543126940520094811217626788255467385388662374840919801438846731784245641912343085542373813914068725427682003377657307047497187598320530692812206085036593656969124618364369710869520310163225799110970074782338772807047872201754476942629435701008795266355212626892469064615553979569418949741628319612538154049285757317770934754813527877438109447553355535383383189538921496914916350633262094834938590508715554592579616937885876485359012443493035033193186164382473151231144721036068992170216334351243052599209042119721572582269670990810109647740499109973239135369666655903327731439864148358248261590717496531459478662037170311246525085862158753637931077673189562378167161851902691987429737515502543358843158705143040243349269149565053647895163011356012306163515587429276359120024040497936576283329749338747880232296392504426718724463194648725448399921374074876218269254659903153319295480129211242122999605040066969231943276314054295899938272565424163215379276910231822324507490275180226932319143493383260587881232928433212275685717468085815470081168686031870209731733093425190164095089733790050168852933780347282731183231614941548834331316727353060344177096448086897087199121234678197931322889262830383637444287235910525819598791196414284413384946617974443398028175516374873300145346486145726740941018836426642226168382406774854171413131846631396712981849089825616732040427334640669679513831645136542614079904025483221971645093745275466768153934402354700677047906931508070127840646951055552603035785377573393513274666121699897498836500005466696631783039124510050722673409578354754530311894026045882093361753879335055799573236383234658280128470851005379085184782533418545470676469966029536369768860817188457532674545423367179663484802719371596531539727035512549880620660902251580893819984187907112757890157914647460519239208616589819370592834410749983762162023582085561960472495105881442444597591039649693040500619179595259330697612279170673972709327371591896681779425597930346657548136730136358996739552875955909949029509451877366574899246466945375627561458647573059579369287734647041970700662828987144732796954853875206648392002949958645381664254419025620509053479100775751676125498175907207367481947397250757816688408029040268352824209865146796390147004051978170312699430845101464282157689495575793019206668254958110631713050794071124772685585989348906171347338992073148982156925384587807928041715320952366493328030076929933160662816980336309094369899951480584099601901038886851601189886521741783292170408835190756856190081790668510132896807563514869815987154403165103321006616918179900689369829988790478176483134514636000982858213045133289407428783069280077961481730119929806930854633083641451659266730096663884892521483994916796603576128140653397779471408776428353435842850231123709988107944431211160241055864898261332399082135759994932374235659873501961200819122308250658659393356596672424804794481171044056506775462550918568698902559709756548445224038297351753328570495422624117137430581986274418777742814321435622722739745211193860628405534332585819078938567803618349984791207126088579856251994517617725101026445550151175254635692017478125565655860659054968271307267111609377033444284471350373848525180129932558499089951475496177570762790959799496635580616775842406261290080059098190347403481914162649531319269050263102684970088612631230534725684393375740963290643504705410247107970868617580507858585278846750522069406628154699561096204911728194838112663729842134749691630315192341787121797738330460540596099220992822193690970663696053510172930930161444816333978482261344455714187562894895908589532057273636162476213077693013106781901824880337623924626663595652360815372860354873605784666353174415523499937228013688275473790798890001345337179706875537488808381116464997215153361206926265716680274944200813040575551454771274870578090877322850412713463061098496861684562068618240087111008922952758338465962264419113761165998571548392273889909556417556725603289732351626570729787983279474982618304958101852457477328002319836949885960961675556508367792923978549897713471654656983231515266307505770328502024639592267402924144559726352852247337569599235230489955731532217841805157394665613629158233647952789110897482065055612450692054758143638746038149384259598884675738748658928777863892070571379471096976447494592456140184646869550793095133564188487239094033496699727460607934750404943506939675627239168244770149366211259424423110628508533250294667425078459180859064346637703763914296973423507142377126913252940094887873782136603900403720937581141896323243111311652805810405841593975826841323827625232136286197636665315801693277027953696342386033233445818218505175848801257910571687558513558441774738000047767778245363813592587943229759289010067273969544015223505981894316661824919960279331813802103104962595947135761955704233684774812363737897887465748750775518783770125235008912191856514241249067348122554147107330123459246165144964455345519234549127497109698120686141313787488015753641444886150404475828808523114464975946961492456736372094519646731239867582465622293192408265882898719451017904858803063319510894258333043272083423256285818600507690652860184251217718123282157008843472874385464997238587406875529662810298984036278549075163041412988506193834170513962282867268196985881579403134747499046957762378046881040441188096743573102689313872821395818302574684164034523009133624904041009983897438002653195093880895916494037278767294097768278720317047603302857549214289727939789392850394500004573747207366460166031576901302513571070876386701948149571919968489974437920091207507021858281661866000151344054240372407397163145738871645044000132907430787001132464581163725234583851821645204211013818499938045382317899754423783251133488012135995627576330471063300091320183192625542274180379259045790626071662991764298158396486520837831071533819258533247764359314847640061521605741410612119924051895014698847647673845312015848715908562797129991624840729769038634119783621335265611626222167208768608429552869400705504965205826224413155689287129035278271901130557454575839610199318949241309801871596286674046110679420034059560617192496422755410752771367651013235036444676259771498209763086454899304921086449656324657064700023655739073993005723824479173819057221533709885944085096094113020735624969930300192503960289177382069064670511361572093843383769791437605620478510878585932993803501178415879593223975082413939465508410016721481337658768044789927708154017022609525772615886988204563534685270524386724794628695395072612899959397645790564737164980711543407931137970235790716540727575104953480436821538138270072115051487670994976299258411701578662315406680022851593723708385643311158268061094792120726617987287148828633955470998899671144594602058044134424336962178154307662775315032642817287401333446716954135129039130216299167600721059216877836853477010044183596150636105919170935823007111555555650326923108080048169622878877676249737072611820827789056481905943262048854653687301251563012411992506175561350693417482160758468601683419527093058225770774406991309326362544020082953375047262707932497089674607940320443500305273347246164781936176628106499578212049107937653411185932095122945855559256145089745613788664874766887574410139067371355183494677413324037788413687168961754039040329036024626715253521609845922523009503632285864228739582862146752227294046085644620566390813058671727607134129995971607398831860636593993959039528692860177105642420104537973435437090020815139261273320150537484544405887665512304563166411254767607725073946985724927720001589330373413224490730332541390562714593973536107302030295943794446762897618790917950464405178554545450163660732656860705593600551262716624154454836846269841764720254603740432363357868629434311453403848919019202434886432180363071090917767029216099587162487414544214632857738090442585682558911096173439890073681000695779046511771784623452478910154474872732201202515852290642730406632210284036705772487156778800904400892028949673434823117485469299086464679850642949002000745042441114699846595081325018823860027793779773389609654570446299855772045309219132057098026365940491279500437956124736755328872742576932172266003709510905348997025621073002456849726031275744317053449615035433589033176050969780011151523227889140758516188165396754302199408402083952692167049084536584352464664587106220797255746312501807933347014474341904199567840423655942666445752539192806028590979461404601844834282639665891156293377936533228471006428860765092015258753059911422626328511602194718883797859825804401047208524422437054646715870998287701650357150012040731803096031270729591036749515662569881217304691702198612848051523245414539545181289631700949779440004363443681577700810153890245465621638797023980116331398964488196092903853688963755983605752020691711510298727573986572764936276100181626341135145675022465387370982198314953191401151258112310033812663625304698983382899493308147100173485118780142510508780187559233398973429274314321280200845093938179709791576902647521987774084939774354492190479654767436125983535652423723058550350206770207670454904980759144035934440762108247644430014805019136964787042011360347509977649190383844488082093073779239927130660353572590378454067816753011060592391365970011523394446934377364342642993707373887913042334497855399658620139928685378555825315247984682734773281415442068314091062794140831795217929886806704884515733688926181083607268341752465114867213939996991476378311862781085575832644578086970357673577690526490890469174946523895088034289978130539785021461198621481342340835178006385219821134870193099706439833525104911412123031927109747305725391164174602611614697551956423317315302467325472694705072352816656019508223786609121670498547552597765541668303421607533308178144343452710380565457915798910027424993007493464090769148491903310552387721957248660040416445597140188896388136737774833876556368652546540613934753468776278316438438908175983637258316431408131827021243533719366804891261948951988210441135089093026810287710109608133187496137474927466046352774237169952392803199524905138113686086348742753805409444696025510863519237697555192221293451268951117408417027401271089591209692706347632581558795407820351564112636250194506137941230571857484142027691600079318291485335305075823014331461527020696548239330880269555093799743569457164392751261227224246855479994044425600248681265992324493078128479691985718936656220911555746430203706941030705922983578920474638730247328830819137672636422871696817722905649743771387920299506539329558166402226803492145383196726742886122465621498118654588379026666188110090699424792739956982927436387551835334875561333793319058249757335612345614290307989141313524228965988958404774186626106886399738726709630609053948230897537605144107647866628151674832737709527220562819378471982775735618816214923067677483482016904891606092291477631403403922476388695675261779877215344354337283633812993528020138746064668872278194766067981140195905612803506515946002619811163739784802957546906059155329800275278280829349888460323090376458491699682949891663098332582894355451216113507682840605688448320858805442774907329004504478521285556781388239242491100242600247726388081870177756455039567879070661913523340290249093273540109224959590409099209568408123805463923517545830642334571715677962572809234691554437006481113984912191743894739189026810370367817630949518799871111026492631863104694379075759892350357125913516856268450553950020105184784536921050815531142967074726695827658397896809864578091858405627105116023253356823184019448176116343146510473782750663889000520746588133409810957885394176274047177225387903199870411111713074450258122950502422689670563342355278823950665539169637503137126575903794247556289139459031694027702472862483497436808580555718748414763301231654567573322613096656069973319513025737128367277119297325550822736008040113058104124411935398178031813759804826716409227398851897733056442156271088893279389162061783253346792678805186115618915259362263348008826255651697808045617072043269135328340099118590741271086158831243699715635664565930969833065755993913746334319813544927515573168838783789763444274598777270659644887049898441217310196992887120162302494408585380231586843754859282485889922435381446593566697021068771251778581608380252017635749853812679127702259864060473610863799263702170488458112315365952449105252736388613130042389240552740539566361276738133851114397015537379110926724849100546218837890607049701186667260209997382700959683791777702447325500586203168152310181109744384058778644541573166887116742432147073361822112049267885520989254590555282482001587686561456371962173393804643930252840195223093915674641625905143022703087481274927389716723854745216198612859770576185996788527239569780199717193345840227806094627140924544316275465515891792266229835523898108568090716617516799485612884791462942284346062215895568477421486099904129216946128850490780841409276615345463189473116748704506550694528290408286198092056097246298856407077560219835258004585086903259647483852452360494673803422294822590794789498330775161228384781565273586571983379178630614902570364929994478013841938170291018057393402929882317299113957737042860523689505867795122563946277211571764130276566780388567132741916440209360439688154230481452534583754543911197743424777645879435635405932831411734740716429186353979319723278837130358891787212861181518280468960734105732827135815279907017496780521121045814311616519380281479943966679671284479121421667342411352037508171018563296647806123400979492904535393036842529629728087411947076487087581791565398858627160025998409685104376497726357913821116818399627598628906711905976766331943809513492783015622023051430303691535869365465464172551056130066700089136638201149441672246136633230607607755573872861055630848890410142183435216052132502373144271770658895954164773074991479361331823617469255072038606222094534546885324801524177267734219246374222381098753787849465746332371136206427345516294585422809687665439666518095687365517036841505304588251668793709265587702470905296506803981097688407263054983694393166413076945891113246944656109353935314671716128910463971268847329800278579625482231150053480083473792618636463829933663607818644375735047332653591062879702776520666360276309293572783464307776180023042904995327430902018829107807056080220118742154201390371492525632285589837995822902591918391867143882641417907292868512123784777729034953376833411127767317260455698002817933359234844875207564624089870064358780227058987370221725850639200362838728355271481823722882828693237146736462075258916006456455758451104004817198315157145289205606954476964540375604685836497892693259915348072617390717817729758507026288273004939714317594842036716724924602353667407395123985799387025457333576515938128719746958142617383602480631020565046219259393873911491693395667768590816123176628836416728029380887558399588880134565604494835478884463049047319289401998506298917568181946334115875932913962441441830907484923702131527060723909439575297808813698914331189453477540017636487537996554458468027684427447949415237121711902940988490909109244867839430608487481421842315764696917715572212849505322793147569254934440327063797715786092252740622073840992725069664135104962921005620956716852305388044451462860975274107455338984252969710610185524820686457287579706419631936399565318622573124370908870581382330751812914151309446714914477426085335220925075277637371211195145748049488464352126032727354854377066807947168149400075183481578244776636083179541200163154993122267087409360015079454919295441589282202875718192324150987125607877357796676522691361475557592291518066184112593418494296202291309415384560017512458624393532800184279312016838896045205658202879497373412482735138178245029706745034165905866914430678367450765267379509571622313155265875844696337490950641509506963194548168100271774271180706385181667167275990789638182640891394153721360310760359576353962293991710691990128275857436486043588960178310607133314892640897181289706245276260865288010392745688497702077004126731914456210895159166587078525310934539177319901478614035518984072151388195180572334207891573687711162087451811995251350846808534997998129395660696102873569452476320459945426085548598192268413480283796192517464763626989416716362508386823012126844889311332784602716591772225745182116027684840774772209924236237409965602782973070028551169319415898163187458486575435841430189723807617846298552791890018715292029758389259130468249831816278698362473119718089919067643494680342693280853241782198105029652134863217091627253335664539258398563436306965614983108298550304978828653288720735885768418808296613189262661407312574390242551853574276158665893214393532096482126572946139160216563503724948738500218125986976089057227721446463522743458257871750045405980686976429478198519308730468268368771897366204120981122937781359344727452278720366325683578085798889060001176414995766633922832692360511273121869369619430847096075345926171872467322301428607193869901279937497056678345346736799898009193577826770228620889511738744424440165629853336082383135932887575693132741103443885586859979337800477404653449672795504243634839961256862262939826079128112601176645470963008064566361536622590799856985035648942413178413624890106681516847813241260851798711676946954820422353356262608907286640356842052248776002245362156772467418794114572677860886984727934820787383756508763604142961101612213614744780587585391824320330320326409163837893726526278308433571921076789463763104337969198279900476490433655956370786245847817483983736559256983746801533962847442716352320843443756450394972847354701242524486229331670090885935764125567710026191003271823683527948952083370129400077771509240157208912013721555125835696372672996667422397742046503030703801070680308446399399176147981356386065219512237961699726663476695862484627107929150701786810012507046859913699237232568213747086371113283316966916251220363984831599199815026672735043316431143209339521323860224892429677407189381832362241911758652521533382725400126392431834035802781329010028505568744863850952362139742982912104552607610892834166964061904382049325242036711258476885016359600243569601333067236080438682037862896295628382038210794661500134118293110043793591330928710222823719668855606963629536847075185588079928316289756452191518377571162971946586182503905579873265331343745275933066472421245632527033943464472062371613723145290023537702891962521797442596887025422933661561231366919725650350665643661463641680010357390551235082685898529482268671681245394758316037393461936114502181820231169550854809233512553427918150033706500430946379536615167241214688307751830124558543254032604619642199199787349117042948545106170746002310278652611560513088474033946964271242521156337282487693516658061384207328856005955402634623518565713990416882796438861418008956212143447217391749698850888435737989870155400293185295103504552304850494208440020503069891875455536333408068603526747728413421965370442921164079982710198477969791017856706251459906761513078339956732525141996919642700967897741154723544197636337555763242193065948964974831241135728936874521038039417765664403739020228481934326740262168362434647673964096690442449706024622444382996716745590083225218609039284309769066311938806707002295112052419532580427599677181518741645805430890661774501630345260374482900315083223666415128439548641100970142624554789781271238429698123594591870450681862206370674141534767303076417373942374774016345876451227201954512611413508775139191296319915496788123072506449136779276247695836596166483196601394915670449283641520106182707142924082463145066925515863720740785955011538804311722274011930560875425182517194515442427207693146953926171497371384333334607205510986515796875078228977507611981547533342879042442724389365225016993846848330099303090170712698823048762588290147613895420587312488422400332429275748763016570489688332228939230844622833998188849401471980301661865028471288887452831426245609004152678826389815379276784016278554829640364741992838581875454250111550131887208624088501551860327074613598607760452608083526218882361586908631896243349443385175857052749395904036540201079966837253092127875911435187836385313951775283177038169789321653315281024390086950175117700359259530359411274794313306885184781286498800833334951770826133614253182295243644994282664279068806380050848188431227123294742784642062207698305727657500868663714001809336124713738608976077265695777627203356183787061955586438487304678891389283057095605108369663528390972283152776076803916202832118662294862294383187287804268327599090484744426526573376634470830984411862846129026839321699538831042207957149599910289486046174580992153875676046014084418658081193510119063300066410744123581084889075173300530663417862830726206434154664604215269216614742799520551467760992411076506171022845209098165913123407855387556199741803164325792957021481155275100755515437125646468891152366899913793191820171128032177932069953031958194175275051803622254512661915492392020631026507077879624978987441824801801566430859454454794778543401234849880253097904691172010827584343708985219432668291705072394030033575459227674011963431216768058840879106267100979705512396101806357190917030689645013623347057744066290931772473871412609122798444268731453768858444585587533103610880431456031092014742504478126564640984425512328266930666244936351404632786263712276746932379665003748161244355090905374144419249717268563541795641118533327980253091580281525176793745632335456976806865709572428998668153285024893919157073632072565834910435913997542699186712609683175141502357106410912511015187290953058731485589031265151637534869629992300792382181317553953057053676329770841387581596279126055718262448273644111346914226441394585972420162553561468855379633622494690424280196891288594107575542920592254910784511388850736002952764196290818313117875456663043549526343643628665834559622547118703159185888659212025482834228218785371691099340747699837619199741077286506538156169550839557556807451148789866676061191030697034200661109370370181816731855183572850573213399132913368989997312465284736920166671913317104482051756231516891782024884518493799369895731870052550428246938355895802682778390037484552181182732692195957336262617013734388261514233032695702542720638695641748457203150872390458183871592876489130233956055431662324611981244086300455992023185843825363428970052379527062072002426402061232089550662480692436758408403351336743293026211403892461506596024062605955170646429954785801829026689757113873223911199232644249851129304748231146199166210845928648024984378651563280162759455736940282679708298090153636504547807222706014775139791322836303042088687458449178893932601100054254690465660645506271856201323288802365627539333989988313592605383037038092040512636863618759830949545781608848889844061190771948895708050695712539540213027203012740485543077766350558959882922295140606465316065080513831748325461599672941108352090188029645674571840950306810190562610495736652524284047790942662729034023268864797099640014164455635380780465424722115867872769523567159688147893722317732399507341477477696491122360456428532859857247241525883672930657495978666971977832871803119885335553121170435769453972807349706000031517106245660756257510027784586276740571742746309012407082867515809339779614898440394695219281821083818933249409483040184133306214360236893734961889329149507395989291165877101994130619319640508741283177636629602854257328166323715715572781660312602728784270573102265243511129837779869207162119398927215340500919697593277686319017991528430934834332795232944441486314908241375476588699201193455048555393288589636848191120088494562472380089727459639524353348731285775326432383024316205629584541977885929748681405972290136609393385788098368519458357289089061831381863331175225411013496322197113232798774822464233296317807681163899137585395883103772387154362922313529671124276613433795855205165480690596918026799593764641880843412120987301338575468914922894832621422563607383707072392115982129888415472835704044067983876825169398778207288082311710064160851790361181911657972431997133018839057751838141877413265631938920249628121734245694514717473576798753366368717571655731416421355168369097777369446023310902292418083164326276601509598084189565914600537198066621906548562896739595935493083950065826326001560616898662963855135385201161080250477987827701301701984862597897666310376325809148372481587369863437416436527371663324633813988365263848862008848230559554022515857640499617277748988608881453877811491615244495006546038706503348415537868993794047046955306908414498075803587937062054840444901776267063569988027724444473303788125675989186255906939909064348820033817632396404021360376817918444160716043196857985523761241401523344309443977885046451379162774381447996845328532647237158055885223871509300059903060730329253471577481049654777876146305771353332722558279672554839871125658676225522192739532043847749832350709339070118905938538521818386989058398860799005890164734031223806489098684735417284209842995240673254890283313450230461430474665599681703494282805751242877835054158887168395281985063518932530220111996386089516791480466120717015236587385434562489303186527250594399965279653532401504470849567720649953257706380680665627367292822039572757520960925151166350625188771416303905909823432610227041059962790206336267844973287829482220583767559865750100558727038023075437052499308797587884509499174875867657744731215216862335833047553124370780295554689452589160456651785636198979514040351315176408040078433287418498049431012695972576641531548843534408911261781457700047498479697280709572463002490267445289370986971701413814283340231232838317055344012459754871645112135046572569967057907554712212724911967053009804876430893553146364786260321648927330948930854964991877133934336607975243850144918685197591043291086133523206401568365374298448652796110827794689522439307006612567533657264426351523778495903150757533420598901043019360054770912455314543003954228981867720950543920265185959347423552871227238936716376278390229487517304466364635677803732423096933459761307962157604157466997353647766992322701985908139908053020440166854709335995706793379016039121178619313475910636984657365697508217597642354039924779363205732721368999723874517054337472936551419765173421886954530368363930701192584816175161964417360510635654991132206796107854114431988938736885786434368256609073662767828178402063411983161242100522971911925722972877801185227849792891744855148469133341504914237754466276137242644753858384045777793077929047979327675221053255338442688405665300077926220600772868759345485284572697033610969514746669577146723652541335314606683540642213139340186592138576791883293562291594855912963250576100493496846715785725217099955195897341218733076257412188465236578569009020697690137789479398264507587036560791902802471819981324907516213930354904316118741096621830121817258415593786472649417345355819044648807920521172655961562699524703593831212581992511153601461265480777034504796031230193299678891222185057601896700478721920622484580387202667430124995401580147295217111933143287582838100378047282371023169632119772517389447636255026626732779934919333936133343477872717156457446898566866456145975756468189356153957356069912995537492031782654133010107142149397426525588248070095383073947691911362892603931728825499841475966638487497353508613545459979006311064253066550411659338443977238091859741111505930972141778397955053274466513462316195954749827140495227906291870000241638556334773184019531559804313806540449242444934864582786838047196470479358100970505436573047441208767443292981242016038332419037614780284962287021010566554669421583909624428658914819563228317569159152760998204413315916676347146513134050403948481017961380147477576063227240439499001131398612777244485841470040746798066968255737436428774524761531668565999031747686286881989755677251824873117954778130756849953897971238709386993491472961558159447335250096296359726093684476183782330011563015435593342975322115245121202224645255454554177984071162903549923372090914852872131615461607409057120988180537117618937085459115093988950776386222024823049985679804016974815468999488994028413289557344241623429413295750394560816439210762666499343262791510183896273136447851285880040777743409786304375561738126570203817531886705479903268446966254324756398048386952220676950429358938282350517817894691660817913174206431505561804762148259995967352180198008965869904644218972090766392063846941310918966873400255738183157911023711136326169214446412492004356850828596007150313946952366574134889217496749223661065341016174519253607142618948663424159589459922851821976811791833080523680093610792418995891051763708493823105555348541398986473963820385268028574384388604227145249298133008205475619884357423815792615528046310580969182423624034453665772902653260407976734383125093286567095369669210217530245021325996596566124444232696266657973832782756119983089123728078360439728482690617863666857774050041675534310641540217859643188715195773416638422621661308351495082852156283280471589271531408402705543564961151247978946347185833012876660772537313598914520209728541409480355304677734421429483654697653603055639863920813503565761575851836455953757082802477704079000926121165585914360506711984494668119940735264364624185570485773312830303251495978420973250997928861950879024880630119670638022724576240950233176321019780774776027469854903308058309290816976168125229181390207492574408710911214445369282695306443781878919823176283141028927203078978909466255191658347111122833492157382731436314027758274238295602171500622010528456223946155330854666738740260586584704147931182080537656229294488235083757282722341166991075512354166321714003562994520232015535891574811994672767005859296095858206162462976010701607831598958904820166700885056325054746148865750349184986902766024019601221212014484900952371023737240068359584086293625467023942487879712008720598273237486426041633323437291547755726892046806992516896847270217490003713281865892822551594387004467860223479142963153950067300569386645251731674024308101406492053737978289396233021018983602346629880392936878286964110899847435160048939792136599799268915144169353889862282038660335628947202423750945713123684271454708691827893458967488103811279702702603783059734592008047012244401600585724084421813941899664128524538332138990121094359582511579548166463771825366544646076519181660113939497797436715316792516632192338188449310030237159768261516392055798529060971301108583284212920108430644930533741259991656325880396996567309831455955530482103575857096231588757521463427820139961613579263189170991247009309132561394820921773625688272149492710944687283469860438187264504547959783488144208733411408274161162775183511639248904570813202480933761742410508095852002196190844087491871276805678924800110242294745657809245416077231825278902896174474904128195613410890058229937876506302479097705815343345553569896832651852339038678433927368747865582838236785078388369169229542931949803885667516185720264742243395869760708542505826475957890178161923226405422556312374571139235824740395269099133511179763658434753765710710277794562463156198589889043173281001511180029867407211368044332459182602992174968334845437113371679288286355948604335886597289525757082757712446966936880139106129135685223424316013096422581222109046281889751842113235340232379635825946758468496349426496840417799084028777240371916447162053544164383507316173241793730089077708198823825243269239752146298607706684065805257402041472695926119014507005744915875217475452244695735430057802918981285899874755382353806704072338476649018078563040890906974309511455742588143641323331717292182305151455923444360007972673332299069396780315869201537537161272114540275494234126493504866255182616004833317926995677884802090194996771323963120415866491387158012047436457119040997361297307054747727897719518633348972138899956895044741723020416426127118640772080936484726911725717974879079464719097152218026736653787618002545372847455696543060158017875011567948228101226658273511230159594344838204448497769953460987902564033493183858061625473877644464147608468697932288111324030817277780585811785183511639289316284158092102955089250636770207339370647527174817778609925806790236045549915439823831290243478476601367483735309157833692731367261150405075039914880994513042378712012823765132464877873070206491323146335438216424472380998220352019527239823604332545975473300828505639867734453073498212071035314552804189133367589798383437196189370513593147520222523223459688043668829799980834450158544800006090752804734628551311059990141366257094095538175186743444596385522767322751612238831613552571545371695982239579775863177637540000051912346671786706151758221924470409120808371124356182067143697777772558327796902774086081606974648772462922359790004516160920909855123486447930192053843026286527562573727248058125316036030101552386742264055204605223205152612618675684795097759598401250615703148067628815217948247411216528830976555144107439738197583642769718436064568118632537096751569743962528040175719820555624447755005446722496696431044135692391691933862046640506108725183003362276094625688860921093089178220430182027443384950603564646693110937260914885520098895668219236974026148349244403432192329650883675427284422926146334085581225053615253970650219444861629111074747264839495405044440292369079101757241136390435978819216512638717036923584948971161540867547210314402601848587681752107291793518173863754326359562596716886460648235929678042824082335711914617939469674946918944221019060582342968054604605143514217182535814128801582817942937315971913663361228158636980637202366607980132103139816881268404495433195153449928603271719692285893471410274560464138214785505631247221153372086084384260475294256434484538605218142740377378145617755181903312670977084349600205546630314273603698495401534204801609415205086053919469802540841610911255340863056514441329046298564855608185756707475288782712730227694869038835599718633825485420037375754844448112165558469880405900123545619602191700841057098744667523186666972917140399528493264613140854291747339735833684190315535518529648543085776550647569441988652289355847232053173808194302908584764513264982276670842635666823164973308542765622857547187718592100982779001462327357636185423843109557186573907048077644986886487242397682857379606283695994689600014490028057363099735139906922772602100928764029585415794976894070142964531891363777499379267362587632726522345966835624893837178998756515510716617373839899483325090061454465948145136607950466349836439993279853275824198734971987035129660646334046403967265270681614365926333639055254435805845863124713079897953104572299703668204675267206231788622915659821938510742930622496561791854793946184975954076162504686580640056022208560921001518961470104785162472145099075626278915399787010512889205889190194371150626695240050051314513036425283002172239835460052334774551396342908803870792617281049809718861885504911410164026225295657450383988043862681324554525750159860236022988071989640918796328754176150765012127350990829012871884278291138252186909199837380091197082251025149512054635206288443925773436128683339481092473291819748528657962948606092553822454862161828678020219924722546483672026701490879144843438507754936972841123543594073750595168622844681817634649304444212030544043264748131487825389799030772788908343547684205445848738539270432566722014585993362739465905169679360548317738026716122810276383694320576124798052478065763029421099712408941175020176558722731829147500621363509650784869398827570932984820876751748259375938504944911546834121088798899634688421884226095661010048591467541765644506526874639767317337294581286955431803683869493318797592587589801947357583662839512151867221174086682784252415058493075185049402333161494073114224264094034066559054385803957976541114102676515039718097116465387441932790313331759685004778751910438089430744093404835584314933844970966588866933865665135381115403404358809850695605540450275945057329054751536442340800611080615138028496908063228437313097602208337736979746787977090130000599516194631113426981548116858670286151573119256293729905228871852630152439549056307281106351512937360778053507032370805531660149008306248516215781929649354548900488212933117546985651639223314395728861264478369602998379322102071822111242895611136480143522395809521668909437279276895673738073792163945064035570017659264612300061967942379059043323433834670083988624178992702055366348069248354388053387806816248226958044780086371472727868380491624856629416954168553330803627565292155671061406146249983420304081461932124410505695346729390410886799670865697076384049871648385577944928286334043515786113788349576705406714415767859687162182519146472873588022922069992337515209175409487371112630833127777156397845677604046367589133239393569744108377443150894882736324143601623003884091634000879404413376376121146957813477840929252590243407023760113824171910524026602735378810661243790039621013697797057547425573227003682956289302871482876376602019759382028495284837612683805980165103351565552250562276832324146240201567509663605607203145768686325142897984892315412658583164457693653256014117387157303128070809025204967010129658241679296677197696174778256173936760562338315155282911583478228981139887224121636906575585664578038623868809845383279673510741650377510466455425481197065613142852027759847102339375392967389905722519624178254433697497760083815355538099926285672048472415301178415763457917318431919608471755854612924887380635319785125248732266421286480590178509244454492562110600873857642980454160282931714866224748942895978862948111108759095077507001631616521839872317053015303165470763371451871955216984851033763065518064769035762397165008269940273554039392215462326933261517964905440134898945776307134783323177841269272011196540838209424638346920752738755097550488010883468596152921449687793211941626232524121581150470957294756546185682983984892778367305075213718552519760522316174350481637898573900214205066097006054081049382904085285690974046858466971851982265968026857270353640732021014451128894171910154119508917232353059018466624927737302569139083010948092808632428255128568322426832590103507500958573306927086800935610550430972293292617503306661630121013462922211902169699190931863178574806578909490791246590864787401768834596880031719270722428909609336487580640368072501903850556859305348279802754211183871747139188110335068019360669019032230650927014495806152170011825692547400144332305901243208770138488700908037069335836816552291138543798617249091542314542222338007134085564335014111394218877618078092172572958384222152370489734537061821349468346248190325378956974709382139881597406752862039077935180801900830807977483987787971811919214372740105424571348486305743568562735565242200424758629170424046392944865737635984117333819058306724523898456781658011029915847865170699462418119328956536297312102016323621329344656185938039547279470675512537018713052435934863472796378231490697314752927209114655854406431711226427345369723688143778118439178146656098704355745989804833715890923093906668519578038077018607162523385154619765771997593890310384291838354405897275969144472726169172137827108313445656506612126026374626604041724443393481307320365557426673765443765281287601336786054354036912511947963850181875112938337285844505743820786284771849560418797521130713954907455310149583364987523995949812900985849752362843915337672513759826047117683339635848204146107747618311629654765967594707199325580352639027441823995544555817919957596626299852828347319432515423706295843422436356197164276737547320270939621788250655553724275301001998909118560879357632793498273544375963104350274206764845372441476073142056518209858270035054259931873122839718772556594445995400514194528041433929918917003723012426753108402733178372719683517096715692063869408063412029531105952092702343248465990836380803968279037979388105137274205297585136532704739939429448100339695462072082106592696544531250321232349146995754944554801716981605509170850326115163458995799404473971717057680515926052617952713761525327141987366906092463618164652094487633694327117457417828523850030928152323770424950354235807482323896243725925597988030556285696181747308854928831057539531724608199576943292051247506769142327788359239105422540578368696392243272387348006216884853847654158755592857750129536740325152696146616097863295287589247279623089118139144631840655886552427817760741341914778235966633083282034658493912446348577922606095434684722285812476059822282251421213568894119413397645793832320104216841900352448016009206327728804156003367757086363081277788274965458491594466791760475989849633055870624462923635401113157064254106415118518885846459450563833932178004862224487363344885793433130851124806502702630813855853274934828950907474389201553618597599628565334216879966783543956859244271966752275759946446325957535894624290516862041409377443178074940475356486524585099943798141093479410248257291100061147510083769406943190060738967614234989257204733483171780552064141833881633214375354538528163417408414835042177760001430697122097503996106114618349728350091909402295557146417584731571571016497724051839239292820662987243480027611128645804504278889099200481910094287069315762280015790953265573062035506652113872041197375000469401739928541617994245543508172748893954389582348020834750697051852570511208362440934431072723131497493065979585499462916602150822855161957867581390698455059459225652809232312249162606161713749830947649442347540435808245611554323895551854221425105235456667316942003208512133656905917292738414544579114358174620923395207639036631750481424630756998355242293843614016978021232385654816149148049905374363107730716550960680409713473549909925298648511910372376028527217618920114839872679851467958561081620638719665368293428947855999012153644186795213682250823008983140074065754176694446725992114900563316858861988958661195937154539003985383165778794958533268559168374672717097263546299776433913863846543569954179828433556483497537392995148051292294726250732801503771406430642798239298045464319158744050219113953492445622438963160063938750813114611337820248334431288991107713539511224538867651454020601946913776490766231589005665806326755240706365945849444361010020455137638025080990039645605194722089490247194106235693295232413887042466203504151321865021556511680777229303815728107534713326353369818864811871237429491980779979949798241285287694447927735992456416182901612474364655572023719598685216781275763757448801749352083292583021801271938607784168351887988795884060365687104328009617729554409844382439727229785978285477661321122325823097879693995579096832153192624708393865048576222591608051935297714861105901435778216221872945308584577683113123014590535509410600292690791810794281461799083170275175536632277285313984020040265094388218376999816447239841791184872323311600779282338030205543493994701217293149877716118525469326015828717053212734759793194665891244332002662620846366505630126458440261403523582482780866974661281988197679040340681859449160658770716481347315897299885214694417752690442678953153028532099282736838520067640609644944569737931628573175901810647676638187241655768904125517199868548537454312768462325283613165740925384411506996933297754952609774983879245358362838533358334071410362559879903746843559901220444176023032809805765343161528461066850860903888521062395761477780917509059400873736016833464000796141927314457155669564266684331363414926625240239205136116619807248103220081067082880430172053677043100254117010768577261830601587976469257219878903528644852210548136517324644496067264230965613323898198971412208068544330371241565625707885062701983070112356657761576303382211232582632436167217582872131286345257365886775149868861180313581474776389812922049637229788135891706461220440138285587763864353148180182316653302904003975992465442434800924841193142561322135811188645804383237772352840167044504944168496603956631644867504624846841270734621730276059920755353381801923742597569831808460451046916227283307774085741422815605997351478339938473959930265138221162057069012193731207296255155111948220818666773306292325985313961625469620514827711148380334836233361943565251697352868361704394721567864885559635005457539963400134967962637427855241576423104704884911296556043488063944335627579337581273818725058517049621370190455824222442285204553627482472411497330902968891007782962517401982657650646612022102750054753180453175427588947395860417555916318043438461987887567616715537579824248097462108915483246834065701456956327313587019344332057609619909271891176593525905234556130829763344809009002207742231268501144726515212710157605200685025405818893011766729700513433133718929936604092804193291955627028749287881260275422279479416968941136548458277660987538726013322817783588876819910482800626171978868284368236724830995922208770703865009437904781153840771708008158630825983032336081590362527261293033137533017073692641954363200575809857824120979318059076890445407846691768498063906745693020924896106535869412506728915688284953687697676982223241203822336290739746934904652559881682790220242526639953584501006106848475866769112915665509624628649277415969289254450994404917456174502299942985736820706679425327232106701454558970919634366252877351603419803971482065245814546406676194503999339629958961385340625284413320643388238244777571102094148930462783042727151855381299796440628068465621653538923191008970357306835104453024930669755864941900213969799172934253863864810876409279177677457805863397015700635649346338856785503341409597602983614646105533188872502647051838016143536366900393455089676001398030539399218713888679448528387403658656995821689089577168097760553562884479934688112041056351221979962693456735721207953389147820503785223317686649155308221487292968475664118557182331031397035400271989446734040082234762874295014512918149387160826132971301947151829585982052212451910864326789131339327143408266550692123814852761023872363451626373197752248581555490046613351957176998058223841203541708613063208888461109959534560651591450678937722443189713483338544331628611324501174518781810983101192706870895270778514104939002016609674771469998291204276469926826672138796822734190646945545697117020461100452073101868581159307885171856313841943461475257894065393125056305273709965375967501405740296183725924553332357216037888961782255136372602366886041669829697600252448449506622458133041694964594783659069858869222641605049073450835686045958765179832807290354475836977468876763353692944285826066377774022050548679934585978821198002008769448163530048977354002870443722348524953740125716037256447554566820422903146151156669942416764512711444130428833270685444514916142236733172967729833061183578459471439423647906287899328351329315880923533953278882615379122246486766947603842662785278407407239937153081423326591792285495537089201133436950916373665953556359271238841065590313688389779305664108853749192364351381216020793180083938266452381817646468362675363685288374779189877325622378128528415428269114166833404069747715323888832894510564497790721032161005837595588837108770867839494044821985629771726873901013232064745398711984849952940903097144449580599678730378276756885385663198908763054217413298623041730910994766034269553552765981210360602085340051364099374693357450634409357183532933476433421184034614430332491579368652673227422736090086672664671445442511513070229302525479581462398855125064700733837758876923450847913881538773853214677644795038595628597019703985786900623794528435623952523582614672841090243649663527175050189413763890402343663620371619017314952996086673623693636584119164826986987835437358674463798013027740169076933879541561713826813699298512395448565532305919678725622946687514239192006818269612639691076169662257572260375788840668530244461718653182514117886528149675495111151133741658368652294688533453915109612108538520453146571013617127290951379583662717889054602195480907451412953987064972989466072309868404500567375075846328784375391063887115249999174883276108027031859685809324695597125124622457975583685221609491483455597372053296408048087754903409743491264485172411933428188417517879461807099223449080096027718598872714733637552395142071792718428520031171317004297025798551802188350498399279467503932441344090381635931841862014521143618906960730109777761821379668572363380592418271124783370894362167391146980306809270161576072295332100341690479216847814431142141361955990957026097437198774543124603509468623023920341915564485903187912159260287886668528727242653074125431069682614727655181767053184429962636561596823586208836667477722134859645927227869235188784006277247863005039593988356883589112020287733641814820254253450040676510442612393390850806854209592965780333399407067854836828286834355542758399145480789970175322647290032946819752789364630792689262257557610116538444724414548970653665978435166856044439213145066479916629898231563260524111438079170412315723952207416596688491014429625182222015506137073654031626904012850051453491154709315258366223177322309289249908819738301833290194828476955690473629747601949852779924458291900584476823752991132763391371473137548921642683379097054783999021400008279544130611368160584569773787770963824659786195482073597070511848541997612666605031258543441367498645000649060523963443483843221543318865178220793501238652917999326998686653589148951213471540835927259270125591626728417254042901019947377941391783749358467260904508030998445644906362364433948264705849983524246215875283073426889172745896579230460424176096349890304007632412240244346064681072397165621636901559183810503471289532909273705685197325603670095689409706207733171272367214836876861641397272397326692684107891057273737365834982832663554745081539590423309166289347497687556951285956742748532527153628177671140221839715783001759078614598151790009543721465963915574449320445489451512058597040443168142134946946681476089381320458119570624084476944346180979143006555111048869266085432653347067606245330250644882315965869633587351475706064757859592161302770256848979551821391337302244989386038688732734922805326647773636102845677734813963081503125521538862586621696964686965762054063479343597414921251561001250456270533740525319231887206925614274468722568319267591757686657842109504618508772699463562033738726571026240721847112392611447223334280123028984977499992326774894210448543191129684031794452604682308874578847428980106078980564048291350205844661054181740834674983216823813529904496927901844610641170392218714861535789465291833584430472158048916909350158887579235560011064818245610018719291473737026831995374745077874039570061934347628044947701724620226148591945007447296608243477785324359448795625902128207509231700332734728327245043001741826412412712393238661695675689792731488468308640456342738906151128222325404286447600332374045882927983585294431696819767068297566788345387960435804803029420771121357732872907848564246463533824412242734236704935885171157936183793563401022550540594779134354891221426362588249381437454751221302332587987598422623475738165102110697673753795874260377237811246676422114627359233390489234566135031684900058220217790320214755136050884163453922367439918274650713581731280927521908394943439094603168062469684278564673487472587039905119612031836291433487902936740953544413449973882867626100217479229239219472367593542650341402372768352520312882002580630446443928442757055749346188498278737402651864690170880646933346554778525925001828030502272451257215480890311464220185135510577542406357981440700541507480534302375880574871719851113074852385939081816381236557629005787247301891611892640223686026283352631422784715265340543498300545638209572937614016738933591514855498450353912957893802242837201641436396706896210299928051790341476535644371440000616685927691812710039484037533687375851498147107513275774147816796149457366163674363895491839415991449513321640980062399619663023818130641817411813752428308309016704357550549376858788095017130520173462649974265205145070288747345131839528029690740862561801013177832470950006379934476596871266030914443894635550731430824610235219750270694815517806277435569650567829416316715738541573071759191276801406810476331967131748880641248486342805952877817533336107660425346995683478279524840285440192605434649120881527154437841087702858648014348248754675789876377305520570352019627800987695818680693430713807290171942953726166517513746858812246493041767688561300469956915492404437801456377713851297466383053151601181006523648194964356035047407344417274262685404351064525341214148131066820989882001294759851272378012913749928355172248197739138956835393227142202857078464895800758982032680258253202861279248552387731904407432177058316373261865805914898040959343497826542324092428435593586315471033775963734679109110853758792204222814194766964515363836628471623746591211993424600543579073373199168718648396219487079703265342894473815353857295552000554925328944570867469282312090849739522003586746257272297727171582192400547475786044257353781289425496574128067636714924343829386598175053646538004697175597928281001214638083530982936460527512357089484208474450842359081005054929492173738420056858225985460248326507521347794498945984984040365062219361088605830128611331952916570573736936608195775929727685457768652083521275480589255924157541078957338798776969004862430031534895461111001947981360669110845685717029487934400281604253976716710868758314395082676674197803440834324322472694858919961772893786550270791285014328797872967457805318413664025078166786897040773158266194705358245509571631420787938196580320429707302168634670188543059601162071510671157884574324160696987468444933809639637646996952875703966960001689785321938030829989549778226105300758246598045224986609944012497128021558933437858415610212077125876385688763105075922719069299942076940122950614809754540572894353907052440875392081001964680005109363279051645353499527243286726844379906537409189148456391343933919876485834359113105169333074695811410831856197412641284744165816047853390786941768428063559007336636550508868973096308122167155229918863526873545817052067205833079985268046752446649685726254342758646834782038684254731754770355660877540557964214866779181457163955624762814542043260908426695935512440974235703380942902353727981512015838943153923328091850608703706445823647998514011969024114646875836282051203091316300358422365761328837078763295234384922385578342622321344916643676874446115979848724024282779835020803402305262691500804029834462360101469417882490908821730507270716194389202131744181882944256221698994493790121109916202443620440628166838080553410083658411389318231039068948047099665490848901414803982227249671212099773945528379816127322838054508815110499716911754235355622148055084231950310062959609611036252023251972849842581734095521018438489866964771364766514506941159144614187380344183422218660902429300974795967909144982626753850549304450166292792400254117282037612889763617168950875358400095147795436866342465027867938185592695867639634908910410178779336523357200095240964921434757159642664612867097194759688618144995212188976422287889663499133330964797558914389786290228248929227227042291565285323635043723611768326547078011939951155869480486982838892635982876686061006990941935141081993961304087570440043578615934510473850461174911260767319392235013067082159771108877687660368984367699604231915105561748730840842265257983207275497917391145321471292150814958765404839785929466572658869713719369746122923860869713279633253493969997971254603390508570210056257791291838034387981931625630276064587076345728862775173609527276276509058800684728928888262569194853447743474355950006923348779231319583907503885704334086844435427920197532823224864277678351648296000921350356010605434893488053172915927943325780315154337375093999289534336374206574010751421943023078380324485538292995076867546412877857416068394177247156526352059497733322989872322942943001358027819337362591856684196197411029703944177903357184628617728799154407300570886917169240288229826542936445915372208002390615462383572414279118624319712131066645960782934344608594875125930941778332347725085351274538834126077181723658284306914246036580488076114018478128310518977176338730366679600124790472683915497229165199349650549351868908751063923884140733276937190379959720003268725641259982400967695697349424398856662793816432174964092357698648670507366690595620649392223409662299468494165222834797563661036845733867124492279764060802826731873806575389711971668455452846658708342940947978565867219359808819065089956439710923304813463255998033928426924717272998522183200170650535923821124461519661252415220685004818980833089782699416361623857049789774434368617805398800027503659628785832368015394561571698342149741425727672625180548781134445579953699252738711480327371533979588063529515156173188869813564187256493872820551008759314605446577731425238750036767440467564447198808905321182202344246573553947568139598078299049356265493792882138016281987087953025640314699497205238469723007642261494460158214183938611036941295108962720730065961593032282582352925725954298520998108786247016043307319632636378467784757793647508410731386687996584382869754719063044099393496470547456192835123970728102620288640787357129194709263832959579285999430363471211850756436760790459591482740526548598466111569209496586456946116526309168066683140586432590393354069522154408584238868389000444383314734718760247669953086930805127542129139665030725662301350847239806537053905398764033683963882960929643083188571523522796223047635457633813043671208554311700401234217387384749801547641814202382101236823410682254807409525302544516469382434917023545534873831026866171637973336762249405237769001786998281721579407019393244133086692479264061424424270398194640401757092706872341304571488767373451878809467155952170488379764348354500238142920702866936768209806564685825643264996008997628682719647469373441657079112387249424637557795513370978746832340479971637542000906529766896026344611468694777905909748232035029622924326532698766934205264127085361008344519328017855480600404216922068146974980391710481285076415393561262425025073758220497256652555245550946188451877015614485783184531437267385561520841151243535141965213621808584165287915829307530328504047161093294991473717081387065657653838660228001633320206252516486234979351281478543987183786535169088863542383773137790872975892991339670030386334531963782172835706529061849460439166884199218542318731592361605695904703587100895231775792780668586726721426826206690278724313738183667902529146222338846935976646862532179903975454950281241662111752889681892201326602506483855633512155945784526248170944288445923004385334529536310220351841731603931537020900227373145938537217311683186905271994107569692937383287694313055346095720872815010659768145239498441423393073132271233887223548846265875228006063166961036243912361967581516854090104004952781451310083173566807480883645145823698253735952772770276174403991522767040981322917932923057032317119344991293681373992859391461026957615371919255508704021853028306579689657629376376411402151885470750938047333361647776836655447800422384448614769028659147670118561562421283394062910138985501278155717262062034306182484152347144266769097618641266367873884522367890342731006506815291795913592396243972671627575340778075683404219152341625254583144711445417946164345540262375341699989109391987955897468827245540907166846531397273396161767208016175326425417297552730030841534770068536265068306428793873322963827917587941526843048921544409651849089898228362455609826807583977160326313816957010173451790056690246560821177677911824600199930598399195946154212152029217044110296423460656088885682182174600091689401793150816676139502679503098126310541490724733400642196462732509575123455735060228867559298346157900991447942648276511696656614800949956550413687896845049443490621421997514206246247427415043533904445553663453202462529472901019814469184482565765900728830944900520866833111719010078994149069905042880349966564212276391478801378560914154239374563537589837384065401489641736880010793987372517626008453100932782434598112719756988543852491673009927385641708221482513508645953355794457880416992205031811269170249041538174953726985893870709456612334525129365627364560599227809382599303514004232800963661415099105146771601505996441421807562295154174688842235778007707306519072714128582508465021603227763559739057422053600899239971766790032548228286232448200365469228300935521960723861893419428036387947883504854219245290622755145525762018180728328477758771718164233170599018808604050111593846271425662176626944915361525194366529394955432199675848684794410084006433221352439498281539076120126692090690615596864882000469581335711051332923911383735224245479482807760234068112134923641360394697600058461145846449141975165265518654590056491234662894792630654911065915829667745467852168318450652068869358133545176431610663879589941799602885774909278576823502128155027580908909779787494418438712348356895721491636719621183260686242056523642313307289351125346865683061923739208916725020336307618312684878592163574342032128352799169786784996787212244856957874329975781581867363880263804040257730464303579178107295410391471109612734095119800948237898866504447643408475836896190635685108993447543068142676882732145348896716851356202555113066676370073099977206422681514535455513099721998871621618880997061087294759767262209401706065426017105014495172722925142545651398053570754772458554789734695378919835361384125090070281935691789366288404839401727234189367432120782529956495781548599946731725005337838413209588032935512857657686860942458759184354648173297863749423633340808328122944047124263636055085554734950067943094120809984712322044184833486366377825996121717869118826662082298296725447389039108427355027209721921992881234036901080643137338955308758641244148548409721024902931507569188676704295707122446543877728185544760143692740360536418414156283701099661706213309001482748635043717154258987977100001067311089601587472482428263383917630656945199801849655097355792615327502075237512051840556600421528400933215680164230467107333670332230938052862697675903631615881555664334836248638548920475918889904811613291449721040265553697519910515858507008117544134746782673716127550383484485079603726010245053115222695256910011860778271552797239393892867608849767317057946062324441015387236019447244612058717119741981694875968560888368403087096373311958866628933705639418484084238735899345422573607430018881217233185243786370682631694028577661421927863473448884451540581182407959461005199074439220335902106344080234780084935221991494044419462765871720213029788526334941154479606955581194856536029032373903118901840556452559422724382284435351703218370322385571251679067216593343576585418036321733966181674994410743400831155108805149578161962615060355502012073267916128536587311277868034147999834395136393524552593459948247865593594598632380409522230750183394940953319758019821759102756974203867870268468225014352639700148481879292976739944271065381211373564084902494076425629763776649782860920611557077800825852862550131409933241389334501349656879959281908382607393278987832326341084791510332162777506218585901411416916886303580828329540035068683587492061450208757636644403235710572217076249110466268272061671048049988317788627436468090077167627603126229696661130067563196721562336110391021923278760300017127780101198919826975146972584637222034635042470726987177481750241444513396960724457464332845431595824570069507673180725173716530888966332572786299259187012678648817733139525364885876048773496297115563459329021490424546165522922308942987014964168674511879506135667625709953674346439007726706773231494395236344739050950902920111223145631399162364081631621745000345495646947182951829113299890639699509088093928005632509803290817867422803566311323903556570299640664707504449614161468410019693691975316800106431543381512925981225139874679309057639167349228551769106220315771434900807141661474730892565703396118491498374340765933374919856394269144717867185448198934482492266252189536580678645745957492791550386359455914165709243864595468467817902915462902889043792555461149831673102772602089511262426409698697583226556935001078442453128248064575737367688345503646543544011011504962986887884640285787212043972350665734099169929847346948342095824875809922568724625249722937270942252402367821874584585198237911221222902896801706289026632030864076390719613699657808121310094250614139459954149206310034557609533341861255680332518304635701214207345697778397320027451726357255720577138200255321037016287993877561016221708802511481979051600585706640923748854290595402940885510311325125942465455137225254569377705941330147012058371006799678225138815632970508658879090585629310138509302833277177301149572890736601597768769011831265575673957893018413110337313873421228412759564371167856741407524650948817161807427825624294434736324473590199388492525640436508747916657815187905645358752750852504286392053551821524320828807704946717704444761484668835104400253369089585442824768864897823085832076890254361004532689251581575510920883745796590692609932247072288208953253855080284649970720363802876725785328705975440936643228626662874505302526383711021771313484283244000894503528270065002348049446088843785152158180118088178638693406414781731574566652955236624466095565037984654552271481199039165279045288570027073950707130396044949175945326521859083090540078717732578676102295202475829372368605073139056511384100417137236286544359491190788648790885116130067055647379630467139912647185541052128491072874761576016079291173429227965670905934141398899110641669560587537090112110634283347628350534142226205030402013248861676847367299730722940917106589903767703358939231961634334256910195757798137036579519185380617754815477848742395246511074391038379464534064280656115250716413166622413766764163290021718202018885681540127719035885907468931282675730353750859076832259028550824741388987026234018233130595353179397372810421750971709408569368197862643899700456396226985162086088278583309463718728359650398794910904503315045570626876012015237779803089938224354409831743548548653813797698036515046184765245962436052217103591656638699517664016482368406502200817366876343213821643510676460126149441512288395112592730502592901353996617795480831300770015835176132093987387192194571602820082498192201052763788104215956046092169169093784356416975627647389035277538112766126774478955165309463237299657785085251155976484393314591897309908527134169338153633233492870353234109517187592529819125244073715786144407531523152267667142534197106019679419594091282847289047015600605542773053309727100758848734132565695228457363744087701514473302899788843949565642749412785903005474099442469029294092914305578718605536896744611020682769217034941892648490541602365585186289351230581806707511253251665954040478475699103441970289079630946222110563990314064254034350684851721580206330747676941908667506369527147458624181283844722367774469012203553477024626436995169482977867476916420446142838668101781145032349668081042159644721518101725211168781090089846919672142201080930405918107020840251056745511518429339339419957257511834761663625115052429423072745030394495028146124695763739713096626219092821592437244022839237124063129205824537183440811343955519211191725225691396362706522289857629674519785411720627898668399945976172026608842999849422436981265004808817467484116948353077403822746576979309552835787437140433204421158398566856091144420997680948492411167816315375928920449788412945261086089809257026078498310590640638561200845615172082831143154051077875364457955424245410936848769828539170883120015506892020415608329234018410878196048781532430933051252328114136015573381547913059395257101712854416556152788609517605913969630889066891448017905940460221273871830463917185991612642348269425462320576294001219754021238383083635083355719378358940406342308466796317248966551482106943435342020726734652395863751886809460941808290458527747571664816181918677473112239562645188393840010289773813306187654696465965144856440339185477784254359138287776709681089512755107265550722774384934724793657127582365202324254189505265442973368717430151902545586534651178533936096594310084311036114451234400136086008387623404605092142698656799907346974454075138393370325014997743644597822482171835581998056189357447323209712822848496418026697429145918943478166234149951942305325290533215184509430188644271668337829939771654240357325130670923688188715861250849256668637244301483472011136312820832476142594098905099164524338724971418871649829070516801980231331261713923577396496310145611645792054421125729975723882433856812076085935096442561174263896196823966287314521682859403010513845852742274025283217266898823520261455341167360999012270428774832781859237350517742666201899756831672687375928210063530504306883091114495002986125178336572478589309134670048602246743588800036490845219062371345315020980221113026820194819798027999193527952397638294175943088306858872457148399178553644146267753510514739420862335118572835893589119420645732790181958446376989686665898955781330048885484694635182920481905746591612063611450231139750976601864597074858815034861027707508617865113764203207066789050816900428608228835514140225237377096857867538012501977956912449269415316346743961497225654611176139983755692096596199867736031856800889183440316973367327363818619656181057040145995095509464040269784744077604704488592902795101469197011525694678532061936770943908394238454816553975445965891669469910680735653436081658554250325406140295641787272969844826048862931882698641960600671886836937161229332233164167986757180163419251030425198743212120250758086257015298811395091277180702058595658721818351710034037569684820637034785057643707790014971014597975537544145194309833570343934658237675722060810632029313234679077657077327804938568467506534687858948552535857901430413581477904128435476929821854775352724294277404069569496964776073919139552652920434492903344675269535918043938611618604292881157653913726596589057356412097423036333401936970582970223674949640785347057467010257345647043790569816734901468519272814887722120041987097052800160154259541332605339921203040286044176460327217338733549849307883604381300584807280438203584838521344742333595391141573560480650385033509434930782073518586329021030919580333776811873938658291529038533787848048744804510234458883849717655836117318521765639966391589525309077624016319462631018335412448998746353731275979711327610359805753649784721636539112343947346896359963964203621348713937028755521294590894911970566489991536272934612663276901078033612240357794682647088504989421779547706482628916480492345175006379857967321206717622667312463719991914878871434322278291247614463193897577557267860882812980725189232792141364893122378230050178431767978666617505896191354058308654818841869722306987621276844294590190513393669865615455501865907508642410887433929444397922960186393966181385050222610060565882229644928642386458597563391844831582911447713393601217119093181967500591896391926260268911117897977690522984380145855083737265333088189437463467730779689314584106694927351004670018935942801009216502845125693800494743214187906256523677221375672547322267674366915280938524093875611029238907470642267701281471587351212049087911925200204716000544798267617536954053025960917249608882869568480147331319452451619983151426341604012036254131446713798149941128427571424449658869438706021054153198165618675956198822442316174463511951903438398858578918427187771831490460131984143288576598801019689635971044114958413409596193323254768475661534409930759242565128964283456475750136107280267194414380113296928672184970210435890652854805977395343960409680768638910113225342227591401588907999360209575245002651519388300103065073129148127527330736253699897017099615616224085932391069239134415362127871729797520912563832409377784917188421150333784917106878967482908226117922263172157636955953196827856762970834964436269642025014681192338322687002891583243468034917415961163613198477487415124410472913403612309041101083156528034450924979589065166761935254231646335695036497989707361859032929273509298504926192000140978748042981510678606258257485982157518567890128861448713989970363285617174321035642978161645063338070143573838937188509457534247559280030866075462469922478646866091998976474543187791564743170153302146742065871114475641924088478740883110390072903753116384547262570522667174900789744575706373312890541610162627924218265506051634297586713154703109659817466865738991522635432208385954087949749475101394233278196245759841969311191799825045259620229505306335715125784046677011540023986777870421853238736869638018582444168428557723257911013321202327462717054483852971975789413378627799139101969567710016634045622447037258348549530330532261378252956400230539013592205784374113784479674646201053198328184139747514101582161409021890014534535267805347468934478622152803665965440553958698905632769364364378355655125475784214951367655859951203805084321512219054797980678143331558482573778289019773630159865432674488826110526174922471806402842811678871276646386097100040582119546870374392359261829730276679160633123360082254369576337729483148952318571227090366703084724109833047720351957497772901074595091742649770183061243317497927178529510281861100903240157705166348601160666555635275330213449215164716957044219616169117052190541437857178117502266295871169804081761814469157458875798893696480935868751032854337439115456457856366468361787265318909510895325586972892653787862181478905273133200239281701073241682816036268773480804962065477062816272712830854374186330896458624915675022871419207431916085920642344529783722777975261914890671276638468369063873474588934464791461638998218395629137974005958953762565932353312214931250696502644192485502494825572580305979493490432327583312205443660969986432555174558556652196630445142231768339711643318883782310513445143125398457234803529063224062629739971040469767342575766451536332860619716086293244843531929160756299792999670963195626266919733570097475220469086534957507991392434227180312509144368814963979900356813500321690011413663003143718903339053493459213943660564902012362452563993478941607655708905262619641355108586938879160741209133425789052938516740002458794606521567206321915276519199504606685640248521376851277304177218143034738840389644292218648278448870078755976024116998353889103220487661801718743081112168778016639093152591220152965217649608452318872366465800774089215488695672359664504417838658022133206057931858370490575956230938933155730406463620919350035857280774064698761674195807809187621702011005452378411195590925097330929340755918602371194661330729884585685007397717680888605319773050697559667121009584616267277794651534464806741750084715797582774632570890131797467146589440121567514595862646260849114566004145675784962505786225240152970091638653327567213270864437373581951185136832929242315495853405767845146954144208337889125517196946121768030006389677486069585043236497557718502918455164909223580196438006941080286059167895237953458307544208673375966035120232804469688133136058561261690618041481458738319972754370339130031939872194241501553331016961185125539351637319285145114150588462770589496175468358438911027100930243463078889907495127145287044630304924012672512353310098153816295237398212254638770342334622046174244942483106914350965633027214356328602481321984669991622224815787054434598347547717808538861230571978675866393652541267339192871719718178839963725636221776693098421010228217636349542346311626555507963177655710172894719053971188736645431695215111259800446626042008784074735271190913570429197209118480788748045085107085337398147679342564322278467066543901445788182622663204044835009214871310785521811900585949670081256753854481146814849593595079551719926018435440478840488776286947795689661879952060128124889129353047671045192865585499515947126965363411346324105262741887952819813039644036352946064987077568471170678564686519110117122938642311988985296789243107415882070704894472310297105933244202526003945840915807509027390338253132483204788776725368634313471609737044751694801012658882625281321544330511959978227604631960411494094435599264156713558039661260321351637959879535299110489399660250137584251591217030306829869557045254860426582086007823774940631827692097460616696204377322677854411893196725626689942268165083271172041025229232507763228888552999466568750026630163027964591102725092141665097278979927229651780708945492387850177851939543250436269974103439861730874416980889067962924140099329783208230364110043229424481066820353279333578745816854942800224665224562509238550096228202327754117112389745974427158205869366432822144635590614994699935993498878876058062632949101850833746331943825099796323977761251839712713287644251220005249695334499252457271701400610044669579601731615018102163276699430272117471920537122907778193860473739435427933939332221856337797498787541838060179704377398264057296842747962613313628227319987608265382517180856648159931743042973213847515322236640597882291505166200739913693057345014013708974043714267168139131377389547652402940662512348913208491153486027878985238496529651988325252626710806137765762371378575012218688237600850569649708782008350642052112008237725339871502415812906535108483186473276881663881060614495691469577055132458944498546077690781497888686190877093709050817993543759842721050357739414165614309761665743427471550096966135387310008033795198209465559187227884161003246862992232229051925461032353119165908874532030484936430970796801515707323296563037458306142901270869740251950309334267612645745685667557628309501782001247754538892197387915115548729816750038817146536475673114495982238448679318695129640971685316467678891038722968781982048671866645106865457166664599268626132767902178013896005694077391451549951977568935989138626660544834134587315631866455232654185985064527905516747907356532730583509726908760077504660326084872667575096540076071346731195094557339834850320283746246534967642416381690077009122414008150932420641582076970239539717774022881247080339120991330288537637162860152969189750138377932060749467463150414469690964842362750182177437945235703896827550557069424250030461381539754842711781555519752286576611575069215546577082374741164037574294037967531330001523039962120567851658795673947160231838631526085308327390171719272834590420781641530503632376788839887889991802915683470981770557126482883936795713237601193103667658673502072253025836400286927159611946717030061942445218988271910357683848456542283712678426330525304767720391709064049899438262695458556543312236225163282272110866364731621646593992386001530771834124322109459170010861153682744160984134894867102123414241290166634236863236959723869278424762098500926179578423416946902375271826101760812680750361668092723607528175904138522111954698875423000377121339335967680462185794638438958324736614602784243234202590112529164594230049908838476926280915002263441700964232047241023724727414811228204690382376353081256491492108947746131855973865536573557266829774216586640159556972591671794267140666123160243938643439575900015687161179436556059787975993826255956263620439337320362894373461793404012987958624029497973742979594142719530020472949483163541774893391723463808581400571289774525276190932513411639426418144636207252137947951185873549851561048851291253169287683308868654839547170929474818342595383974631596569053161929765644808463666346035993160218353634284299646812115682390462001574759714499807207198530216719028167168719914465082869521914530002061515054607244013578612280741438680476817641332186194702188412309208912272290736798827095308683006823890671302957068430965885509657368540785004939549294907246266742738474866683807007057762552398862886115782654703067479427891963858173173404296274159953956408761294960506312912825931226626688215268807366351387814223148046904757611011478603263082177348697555786607738497641705963264827225025099058226524031513565828098344489033876836166918753660200668621150514846543201265497433127490788136852557068323668223528028407880956389723143847538525319935622694522738285506127140209385676720919005743186628692956568095231732780945624882585475224285317637960476317009485864131591796192203196806933367208475574551968794403378517484984747642028472141854358200282033088712476636960532288824026420680706363832365520722715577288434434699441496163124657307948718631022967734016950376019827197373586513439817012245629025488538007221047670443923664095898450106222873540713727743418715585986236463770097494066100830050275174417700966625654805101747666628590688168362268630402183032752732075200301811710446517019559430005832831406334089716548879633354117255063488498609872513008906593927305375248848891993317412879686157383270355185689911954143471173841153217655912150831460775625830919071559374494873495610300833624041035691571499886323670221221356311492758958550719835908839057487600542375905369953918949060240452618444798151645985590507063633805581062258097171577466949719121319953496564843047367872206690152243996826586763275249681926746769746128700137048526736503257311005241798060208784359841205146351136278500316330392238364635038752996502808408326237907870341595766004542147962391415980943349805754777061806566034890780808113871257849387636850913772097924671744130566803253731384009784024427953130668901540102179924407572178841308190895306426263142762635244615285526647549802463675484467800997362020059650277650945060851049971534740007573057036414862301464490675882659373346337625713780524550181041841426470281291544832301194341792256862168735556482125804331520597247826353324832246763701222527903749368729145029973357402283369347211655183683912333040470381990143978254905998454422939441811985490445892694176470786643256654483236131699370827721737365294826654934872977301529569379823336375503401753075545761316550390125775794764598114409421599296141556523082602765698599103870505147386339301440460211923296640166465811597502842371782010412444651270231641644418733962833786265340420000117719526658768313746698904052635427034779092597254718983108050039750766990949307159871305250926662159061975402123558762627593336878546638715087547867720819265460320821062498121847846702389090619094494413315097984188727241873871250149932051480451941613676052054599795715410532221770959316837417610375270919327384443091532510169242060670709691476715002643146523763735628183072736204644264712075542020774566791621689595923411117327978812382722540700989793783158709791042572769321769390117555788697362644905977601858722818777039801997728212089504555206298646422956438458180694764399557592445192540263717308054306020902199731800516795447306493600884866733735664761212157708691519252455057097341442578457135040095806446757191068746724060832787893307234100774861451442297291965711909303222069661281476448189789165431889883207718815602028763311777996952744119557767235780525297870958317345497230857537947667044819809489921215068605946474006012573026309351977422168269496979770318467442196743459594876973359350880587553647782536273865221320073426964751549679628285628248361658281477881114100777884235479927623143788832250945031821522398440852276088907237259769961482145185749953456901757061843782277364903875890291044780508467509790832463509372089332860589389517331233647082267522394600459452770053271870652309636737058103960831164830051607998972700710037090723665460547184431101853251727374164827321484939352301141705518268786283987609956170272416792020591428152198762320449612055777525251789937819760620475222836358145801184501606946280733226288940619664464559257949225083913288895075216435626591872094051038383619989864034359125762631183508625761851481680521204097340130839054722263568954393786662565131624659332104519400258192903446974500024188534970166059576881473557351197364666999365513249553272896514441523764945441612965515539926375789861540369036587890513406801138835382227215421722426773649410091891981338193022017667329286457633440450289927327421231973961367596233757150247613668153066319133905608706677603424728823124456312394286168376661377689209093402155517198592385924399554020353529755608077846151321778090421617862165378128031226055991794308642714564018307725866223674063527107975762699951064517056743648468992062367458122623850682970647908754744980868794087332860450852814790388939696036999894130652770176937990830535056095222331148580705050809723185075171910921390911380451910497082557355083222708533417421765587944947352193175829825263028661046690217103974906791550924959673763613107892947643568327647490661097364349633409122304227552336177441946393406896738857173455223096807476566598323594711212501930529071257021534806646896360147721578895423718747382932547186586674891880436709445053862840326066398946059082591816319642695812346983556524218672884440873443256291191373921640465994009490064210309175114660087630245544263135981181944855122559715443058009377765861290152729896746402604420210754394784169214401171441728258277969220111088304206110176435460622204286750125580506381348431838696956447907868246723045827597454081860585008788487819965193604599995330003952509956715342580444896448911473660982239257611525380985369166768821806905301221703555405491223220366100326143884045394648177754144855239511084512079978972384539271463860293992677174874091827494463992069991265612539529332842483815238674382919974739840811412045474418496497826433293350268052750978485892711540755890355381493945563854122692556184331533032260378131209655650012492521453913912827276903174435574617045018906281562610766469213581107076724644337380738020298987081371346690252405545690263612980781278778537644114831859855193795576363923672314375696099854987113695434455784896756980879581017935071678304364276974541122023485070807066835711691719788357641496559676627774347081237633347573328195699649619985915989895348205361326309751821280087663657069360069095555660139605779674012287003410789747147409226737217910419827029074961356904548544363114374822643124633447699348726592402277865904603925746129550048206511776948264127820813675814377042275763572505781373936543942980868817112914283209739481295695303038280366108710730317489290431976947692547046739551181367066261483568689940248838534223096827080526931970578923131394254126409938579677895499225049078734639668695213282885510748599060057405947911610657195247713126729330362300809117823307458473618191458613404311721976870507881410066822936115339709988436774916645039269021301643717124492839774939852261060337835271792744836096491700320458901654252192666500618573728577166459146943217703305575568674476568413558026309771042741202764822122318131642943686903746401330154395646492635733554141721575531991533374544819158386866059482495402414977491935988808045462516766742242192569887458801198013269701117725772241869986498941207646015721727450090264192102157514529112270919865442782607757193474090133428228893323935506092995586207693134493312405093638514709221605708002109132565671354739603202843708140696419864991729781540595207005386830977548109689324005364417793087687846500414261148951148876505344593446319852898689452346026602671917805163926337702226015631324705146762303214918659832810498015035270128122426412566829267199357671968127567042689614546008881366046362875440798597536385017471921639417606816779851254027824319917998147587861704322913790079943421112097481582222619175175004653626774288511432747704525584121240015384780150555199056854378973782570800636304480636988813079856253001150341907862389665727728991301067511761423484308067338964867026663104871532675922308497196427702492171787853834371075454869325083558120995516602959214811901666701504182648451285310307209240364842997730002444599744529585356758478754020553889240813879014398002476278716059438555260687656061294315384759133142365269412596588263710331409698898954003975485017213625683961769655736920387936939347328584832102262054436610678785290366168258988189969948936581447140779732278245391637987379310855121457279210077298239694965430875423474701322713343240175008867126502734501663744076429927857764218555575744110068815798837310079146572818154369935899205962275792018820781506944213926199388159247552285363070699823111088998709240224737893472539143334820273634299529027001286108310933656204628105568418691501517789182250483228043331828350491218127275283755517806168355795233595230597912725454232477231428552606618022481573480620266544342057861710814030375695635623757680017827836203198729621415513241699645196125005719602463937818611914081845055366320223577470870965505199509850530664806776654334343232841312891147561077869015373199403901491701138745171162465429821732751313700243041978894095261734955348664964783210167819268024089562320880051653635671310513365800587803724347532460861426083563765214675203144114329387149380351432066531676926348303108954476916308781560815219989628298886197443071075166702400249962248023463818816950078936333480301395516045356166511385427422097994585933916109438703139801996046513026934646675064590631059940494613683084251055229233125122946931399768051831069422958745349017215274704065528922537091374305239444258839553331524535749504450781616110837329648492682632365683958284462403525936184127680671414162513537369301004329644874101360807472578401488656763142540364673625594964095012083429583019333880688384341724878575812390218520706905467305185105028047730137213398535425850451796311992967127918818523100303034033534572966125182809917537680024309820847819514355497831342291869634378243010141116919673940274461085339786973737074556084306459875926742548123691099586409444537631425985082981732439287334760206708490920317744843795754515160693808229988376393031263926057014097197671374268974159999577538932659199931198841311051304875850245814251586618644969633835855136351697894658492121234112874965825771830675181297746343069941388425105517453843253621068512291577213133448091909491357879046023394283532567490796954649193753526170576821865664167428182098328545593564694106308579088984633178192644518465675639413316121438788565389411308301652526140330997142876376222696962084751277331667120150870324237931611836338930226055128457219378817551213804129873344351534142593223916083703544122371885467409935211654399049574988037072566809352660740862388339103594850965586689840833663242157226603025532592718160322799305508580269194385955234698866276607384563480759838161834363851937332130826405117250929503378476575569629918025712190805453579539669763441670246134581234069540179387978562271911007048936208840126537384268362637156025931649071939254965777368507518689886597969969287038641688595656420191959679474299336674081635217960589482163962053854854550622024056555599700816332338665419096571853530452348757093101295956074362620821519230664960825855380306081418930082490578776446939527362597596458234893524641665021177064831146389815352124289878972186124374204835788106549847898499165855074473355680314227842390120860314823068226200214807543897700863791281477909051589414836213020296573577924522653529124178001831865299025406504126353818061575051744454615012155421604335479183820946980543222823531845199232200205644031990121253370240753035744013664083442927581216824522197423063333212460945822959758455180199286467595316903398281792828560802390056833703789541695063686130602402081554401728330937178378626620169233112291987394300173357940957183760733982354822552025813031069879341914459857204315647480450480355155319790745759170461456476981743298826891776950988958603228038058286507252850597079017682899659057073926099364736995336994720840765403330937323032433394286438180871992244564570854607594044303437853141477608824034193689346253013731247125642899087609387399128203863871413425524417195170508674058465172221634773282968868713060940618443339013211506064658960491501882738113524280503285625165220249740541444919943121182850183607564599419546453440040313888084684742553997666006723620635363058974280000863645993868831193595846262786363058910064983718642476143532436643093818532915506791042991779287016589849755278950402131744761830495485174289482329239085602445462360842928005390167192515453273633176456034892836658825034108124457100477779529046458517212114392942056494457729829032160920505049294544107254286779253856558779912413627779332290082952263027989298731840631678795807158653832740594392721666970000962332173193573345517948679170888771949719179419031310504295209776797298913455196939095987340465704932536483472289523565074785139550220850818325785008167134517205030385677009311870046273162708432179825595039484763601141361490623313643477579241538507597918182602704926295049948093437577074196134998984379829732734057554159092049334043749088150119300100783180574339400619676206640675562040697335925704334425841914158004661782662586760997294480199566559123123087471049163624388422479240222971114586294336305747988539180071043324946421470102804355369828712909487189863706231383876433051872094978809873206697010014046626941337100482073731237785895005299796209746023534657407537542120300714925168826644733811845322010548720686583242866402180287280513702241699987528431274372508451190936337942746200236626227411973991715133955957782309624369508163669270499307332083445300569990744129412641725230585294371497962132530531759489072609464650331977256302882326277397478831466039374562000747028573715557098822571738991786933088957684617621797040933525814322469476317562595823502621139722136460652790242723565333426594333047731264833705565765468676675583843474782353126349734947013646525007464952380026232657875217584906502602837848658145737193281512005951382677905324653727581283550756278283020387149247184504518751693534002437444776404630984980162513821109901177810625363426615999478037519782552789522593061655430112348470260612842615139109809801082963172869856619700460784715240714446738886715409435877964381356312367736425096124942102200914814956445390593030514224312656101695470666033315513055707895249465746158250929804101724012592465626499892170884729471761045303973164773916249191152993900551650968646922879462031082359027038973702923431192895253918759906723284699611454809115352565741615495932790914644438923571351800589214105822200950482788062237613272885209250178200454962660738742178972553653770662301441138390125718875395200364578549202025110960242156809736695826465770202675913890729738194866194755378195579426391616877455030301898753167719421717837310112998453448389874729277386066117885148604055505126543885173867330281346609662045024769791031568357134724432535829282943331026961248763745608785111794054427435124736003302897710211914239536532493998971628371664826479584451409572517347054249637542385691789039843640264896045746876516555751258327604883646662113311677707021110881451473741186369888382663880692212305318391240681037196957161920100285926663163154601212059129958898986261294574163151917982323299019249809696691929942948115668910163217399684929209233388698659501079003906972634764796160757403678834474034496266990423882492337862167194161255725750249515723339926090546436168340255454189101954699135221067097518007674675246929668336240465120668703597652576812110272006985081667467128601270284068168250155899714239374826886096084885355844697447758440077811470802419923950607162945346470574744844945225837251999478288124573681713429902410789580966766497118761064954439620255990675811199183772256544334797556693978673042582922450607379773409384300924918664405934745466948231550023779977012471402012076609572627488499609122217169619046615472873082524216497536163652354054798315813737109225288745034352460721953949805353588423339973965539492224086363482573027423907986282722573606138392518095913710243894147327462128762519157624086159912291012210916207685919574255510595268788539439129584543358332059069716754286343374701682180959938194974967950668961545995879526587250261922371489332184633812163468706757542151550093269887903650170153204797671146673169230760145847507402266509977030480064839083126263402633268553476326417782160588509413836498714041680018209677982016312482597417231006339123622946587613943480787849816585867587946329066665822380749170880696556021603229586670166032187019679162824453044782972669368882933639303213387982612738304439209879492582341224213773859072180117375625467742296486214108577817989851951068452776394709199323434082678217191070381078261189456866436728913646196453585706484779290710825185270189652086973298379516381968694141981412478532825944720822820846307023681867818426573357646456513954510591202848411305195950986900885760662519530162565725648923527829043217168885933187444754194334824350923508647558003976945274684600746350717811672624830371001965618669448643327375129109906863704251340943839616304855299043356436409512495200491244998322703409749515766428455436667163540950037552942056200103330457623714376776140741178769118163875013341789024836680038895778177651398384053851924497601672648706766430641071493756480019922278134596555469971139657308641709933611173415414478833794167358341754467884347482631229591360415483488168333900920434347995141779248136804357752475817597482750478152416669295490289367420102832146356817400761988837776581786582966214794549122544695472576005683905926418355125962593042264274317568621693984811176688515952885766852332615638025934498116232764821816222411442837677086475826638843628872667614732604630570038518427844218692951138764383562793323085799193754399743081986712457038379941408480932831566851253489562646420747443831191938402480923082085166028247081415450610196498730588131848185984027746256626521772857904140977694939732524017003024637682082871209314810837821653921816666012340890975605675184030104902703649393048606054916005625521624295185781700937275117651720582520185199223306617874074042975333089922706906127954061146046944310703563141574301567391530394874008843237450826354064070858832242596629694317173712263025636573462342378734530214729139289258842542269753873295448805552698365379679974045735420356676471728445459452191360830984676030362039634675950551638012338934692160709129969710348090932424040429112005744002815361051910680802650854475342391675665802528427859006433186436874164585684629928107310001577798237579532405162324379037974097949026340233986508252637036649110809837908935238420211735815829979972292707282132214574795359305290086642211805353812166302155851247142873916243676212101915700390821470816264044680043963734774935900647667074281506484496985022156352249345703429852341251679505879356945441066421890330252986372392641171060969999104673024684627827247851528482723749089617714287568168296255496716177389400923744835775496731195079423502337602640374502402952482588757337981762759720459783951623114282890216939363326343913167293119384491803245129687319692390862388173107675242203174026399477409389042023531844104987163399366295582325925854975022037954015946904993728120803118758146834582875587221609858675264478844382649052279395873321750019173164291811038338338871606704149405959909082659159351282321177985909332092633748801787273353128768539650262986538066224847640642698948669901094890765550392521885324965183276158993729222710070330601422196856335431848454429333568188612699470035328256574568674309793505108691354893126516609002423142136532745387744892365146670530244462738921277060736675352044394975485846664027656446573718889076871200872296366170142719902228069101242866692761745034000995600690577258725078898755229500579202864188309226262947521895580589433034356331511259375473315717176689771798286679203116051632524034792693890009680569238895425175082697394475454474444568372464454425715648596125436078198763169595680247634977149656510417175966310165972472894055213858156950084292914429300159705930060257873645006123053541837055376926401967483502363056046113394619629847198997350798448596455769507055049679760297612266198579501899633465068634669724749391339790795606490041534666195839637073924802738897839207695868188148680232513330023993262457097491113035660925938098729359143835019981231918060738434308289587802817024748555127520165812138794892601609881492522352305489683723719376180421178981307716156451120827769593236851626036576177942030156797272738986860086166869680391556166430911272836839151496251483742623727307918838901398598871911535969828553585442691751055422267739639863327230268190401401161330398101682620188030347462606774756471163280193108699156911345515511500048614019051506947793751409339489352001211073442081206253778404925156369466188179778936569685536435107494354344942364153152346538040832993355987462517888782072007181912410702782460022069657193215482987285166276317257967457007858877312039966832649264419224118484052435813244018036506440472340056766379981586256311249294732538854715850841347553537314145484492488701320129911590239474263740363115937738109483421936596630555961219448984856565104654543986833041406547069071774140105107154918867689402465496874285302143532780003105603498123326455774306293421618013360135019928114434842614896535916664418571697366859252997711690976686923305844657831311109999421627749762174973285269558009760433789476455133145188969929383950667548901602817476737328265827339519565496494129671292654892102716794469058928653642762585752516680839985996107573580332040368947276639060025028952393180412129113585738756356678446626198735746211632683925174485313794496065001036443316054749371355919096339429091581396865915548300816618718023159295695117402956144066225003497484716088319031511840831650850180096358143657955529673412302522662438067944829002190273216911444436724442615386467844725894759316290174965554207065510388435459484493910581230327877694873424508080502874571045621252152292933634445638195502768460622578720424036716350222375399629899375482844819729681867109533801676187645837437357784006828978033086212956682011315422117826927731012603556549580658847228472949081920640685860040816466301005487513828463366727726156564593169981469371498353076585894888191652871660608233985815978216935311610873405158683419004107834215837970222112125929713724476546132935978665472656814102755092406981526280258066921898708688395648518731873149581442828048727174628486316493161321319411869082932006100206739881706374649584827847658795573355099357150352673366904968215243399821052636974228812841050695728523760778014052728724269953181136564161476316117364972991587899689856247884921808500174581531212214382595201840664134663924593517276417008437146329754351264284802184521303898544545850032235448666644974309311364475542473802701175868835902064155264669690358423864186580212791722961719524747015665545032364696192856497300996948535450908203670667064405623742464964215504045074456136412200251878832009606144775070619863573795806015436421076113857538893861506502871693351946427258364518057545087306790239320211375468356533537431598908344956877989044319639733598143915320671437806613488093334109054358410363668794624025601968021438859693648111762825432713580096260036406382562752994992030079663615895309925783740012368851696345328022501778847869510349274919666160290216395055555857496318336606354947791911717998783959992102332913276731780882495394748873212285188462153563781237548920793028993140229383460795328747700860117287920389710171432757407280061461612141352397113791226763521790924166300515233775342233717336435374970846183562090751607000524328893271185323452845844338394087892191130571238849115053602578232497600440239965947285946047756718130613665091224377643726814644605189884461078767332090703826012968267222629873118582838455911130237348965382607300839249380296904402469084583320844842589421583810991970736848392667036537863245022739257334825015388290898124107765845814901924015453538243351944637631918952304220809082836188582790464769551233998288862100361158240452284075539371744132825524479385545486927981555002819970605617425309890917491319911833656121921816510105689343624487036555309606575757578525517971129621316554419681242911304884051983331812098841614647227530976630416438737012262235677809479738345065767618657128396906204567576527304264918478725985515351919868311871814337459958105211341727321790687758624294683888881141812059415232117834239958729317709542767310076665378290594190771744339468736237757717040214555976841480058201484630106151294030622756546603702313357000309061498361247258007444425376555887225381983327451628732175721567761992576448280689513912785826918039538248318342540870248749014261307474339547273881602240083307043704547928954623366557030909939668937354656361374898709252687531634464739547865808676576379530495634858394866589471830089479426358972998746505722720269295105624620444236459264039952769369208580173232349048584768780815370280864529877777170415668939122132439344573703430984751181229708571378300608501294205413298447873754782424951924808873263211812984838860025510000547719512313419197265621537331436714572583202640591002672372892025736159261950093997302452898603491343864919844897552586981144136491675558646024693395685912222252264388017442261566592316828533521020573438344958145948972362400294694736898830602581214355411442036133763502263505941828387083290979783454830575111352289805291248454070220474187825663620150639845398577902223490167486547272020865545799244473013785822976647661607287015264484865117803894318669795175375633683030980330680589423462089998067086895848780636351235256895286888820771905677064055112866863299438951143701624120046824761375642859165927811480118688464623603003208583161971000827163041891622201454991646045859148206565954686990367973377221203775843445579631954875347330731456852704727225039171885013818417507459092351709252282876098560698026034950326981366472625046886039775144428366924561497347492898269651121333395038364965938612710161706351103499209316052313004791874891081098593676146170561978886591854485733291330958318716622260147387779971568782276543472050572365713980481224426135421160317646152376058627680260167702652223265234248192413360107468901223624773760262357702748341338088792233005970111943037506478298211942471428734443912793007571589917508096316369215204897040583036372023993123169041532927643797814266329198370520094758865061975956470339184661048517059819294703209572303761524891139939194078293349357265654160844384530288762075191687893974577498719463417007636012493310478678022292093125282447741433713774796475572947284134154134412683854807887557965950232353117726861124341231645430028346384868636707247129292090091016039926418549986121937562568757148541428801198481214903175973695235986554966304048579848599394564250663164286651845495286735041659617211621840889071048640654550777153399668011598279044992530677052219229900951512508593908411227772165501183066741633141757089009898228597695995890307022561348138337219702349884320313390568570456270995599437447620782911020674331458351815645820155581114742260752897312956115165305203582643522367062321887569294048342843011568570640126707524833632809377303408101638621658232560174749343565710020737842317498195589285700340503795773032363373241572937956056789595880864765877828463795533110651670059006865983833309267676296073415100080288685520360316659093786438147476533352857376121643068242189792721808524956360372568366340505303303707377256750264867351076449879569402545215737593071461349250571806388274269887689064417860483991351347523345679005923252976380129083868668923022518629322643054227051716875880244891102712778628665786707289636461858683590500671538100707491676688094156020639968834979627202653751791375393080774411947058580200285470288194823587761809109885829180439991336096758174776647728842914697647398205050385286338708219765130702347273654448384275873143229962618980418205650331549599763425713407197928315427182973750814803522215522094387085923867736521897813699995530129277177012110208416398771149054609146653954286157650524232888258499542380116742713794794963742221080718637998829058333472083177168885916440088582362476951706524202008192311510718745808631976270596493496230415546043768273430793691492711860468097124435674803099521183993925999841328476429491016272247209090422804536575997588711020088318400652300676636195031090651891724822488687970547922686613221366810788869455755295383878428341135060733709309043960406723163923477210825382781455243504896710261763544337343261179768941928252287807034563343324514787488519648445143764233607377534157403094678439746467617199872523516223085574802953173117050084792643596640678679117981375481387483115435777621773852089660662090261865076699193720359058111472242074912388846583683160705589740218690598930971568145916364466802972304008862026725936932431708514059069537568322050148440786694386915380772316522203840512609358963399242100118493506423036042252408708050926664241115653077551901473590416267178206957528102971255172435159347143645970961879517700614736466814296934845189734009339111447821162576498801201061956807501502762326339574805725188017874683761515596593075476224445666306160200038831533219489330769374105538545203900544607986534112500494227972170228679256439777886021866524744766929587827906855637015556794401235759866311082563798487623906786456950003916015893934234921429418324795378200899977770356557195045626939455201395866213497377410607406517853421205400964046462527100306609411298955646746464574104793787149729750758900731559373448255135702754325935787327061344418669478634242736940972477632348528921375844817845730459322456273038416511349438166447847241622540091209606767197073310795708458384016523775046636081990740310892114423932299261502938485748952321589527653328221398192316653373010947722347772395105937176410383553770721413412227814956759652011445133039383394118740045842953250844051108863369895584205200083741862093402894911223191699178401286336442430517564799800792271893488741904917071441542549947905748901143774614529851469978032592500775367576550201098604965796640119886500903874425852626037893548639392536803840938650875650352674044258846237440237362965853071729186805696126086755057598627895361504840034977314122245161745952913097115394976452126982643181063899421903268871068279680255396523308941771652800121238281634127680910857353811324953637251592566193264927326197667032731765615770144280401407469585875315022331224704423265201305452168322512376932557647397078972789322825322228101763727939132574488212530224396192809943977449294089874636220539235036164074766670162481401604587813443095328904304558905046509319854233769268500159172495841635323486568813912311635377195650858837824594901946368963862256172378729588019948282542404857636423681513834163566050332877133607061954091754857549939536255208781691798634898489065189964939986097614581867922380273590562144374934345480293315609811870846922479325535411238760349776257990351297669382378736516595499310146342535213631464485563229938348734160017714933844813908694704688237125737979412614381211742157544237255425044406284803399569713869160543854160557417583535816478973529461149214807473333754156521548397951939586383862629036344777295649741638404388518345616663547589576426348350920450409250962106768187652084813019093097598507835097765168109810619126467619564957440733576182513034630591974022270168664165153377524762091092871308955156957409960252603155833743442258066380169191486049399254978480817751260406128750155565460793954505829323220521225732818440100511983931797582454530582055041587465858894649040416322076787701104172659757179594046604676594664040892664398935717659765372685975768532985657326456941461150033176098726346953767900590407432187392427560360116385941008760228944886059524873132106800987198899306738400165042919109230216153115302240243395323857081272779030409555951154182153333325107782084380785816856575264310222063478877402468281906968638456623005613923489805287509257635220331242901619405106920758152473523927628778353463719932867395339475440887440697366277735912040275773780820541066338323954290794751620023841617984116029293339592824417460683363616015764149983176532321658378577773960181396141300386987972180730966804266416986830110851874078086276396425292835846285196381745971103096306148663155744480150565318067063453877176917393615950270815022736407480662702414678780322027085655291732877710109298829213834423266209455918202710476656445900250990460533311018892816832385434095669937705835635782082939107646634446589206942259431346633778170637618140762804614293295843504951073496432141587633829174624901652183037033569777858570319149100277498767589797782717685827782152426869583892801254795759890466272310200527331771072958570879203181058217156543232524167521746390762317709879540025121674769697794799427775058482809906232974974547768640785846343765208389048967347648129293622656667022831497213442328060115881898057301222444497780416566813057491084584671543280948007495606244656314092012146460121119276790280306204040520209899612886874035272497662098807097782497485685528858286516196170392959826726698938702036800673660186886474947990314866679892115928202685862161888076336915601547965099576434142430491721623221488826110313431778879693282217666098480487495187478191565087047965062488703837865001018970052800488365646432471716182785232487950958318980916366058143487016382535469578635055662145033412349001038981622161461688246290940326952063418983834139334306111816705974287924377785430392986412599796324348072401938243389496294257741402155946739566051119876312799865009243785032622653516963651699111762081243972481727265518480235968160640061933326438829614494457183493405682180062910027707766417159414003430268294649791380658832828851256340977026292840101196699931081728305120940409676149991109169282323709178398498276952714899997884116510069145324964078368457159072523271963166530755791963871450467589868710110363060450286520228680563857955646820633519423430630804558478350726739057048394734186300464450254304279833404886295891596850963801919478826896207885343536000707653029997464033077214468230310939488641944794791425231113716551444529736524016156449125198063067815968472376746324554552470679651733535941219684233007869027306323430933535664438089863803957004648102530892763453173224792870207438000134853292060726246803487458632900935801111691513604996923484705834395455569468599272841748710623562632251632452069365514575682303295016160436212101582038216451303813212788040532916032604881330815136841148509446725662310780778559105307578665517070503344298489152810843361568516358380740236721580875431420025686608932253436270399825336956161621577842085247019073526856614571153011461400441250778417274548450000086194473029398610267984879200255943984334723524922527187771587601221176607809175725671062913029770911043857637660003319156988487814107797041156048447442807557825223855604467619411879014072935817894974146865402836907850367398277548963766320662904677349660389237398684057714415223115060872124856818905070843984855270443762622093025927897707923748655428068596429589934413592194616246273798372310080145492117942424685123976786995392563163423153099798570178898615684607651621674301699254336474426043538960814627049510585663532970697653621252542204199376190699194473093990539860481879374421799226878028437461210842953494386067600123155595242284212819604800471055948287593801907660284639374917428906126251280491871728012561286759784488291488769637492918796025953869476649158784360757701006204235766331212895153773719109632168828681144859397762760708404289041776883897957530935945890531314520811586708458904969792603968619464458559030737072332279349536121764986921418590777696483197011774892290954627366804195833794962142613023406078748403157466999209461795363198545567749092100252202316705678010428437331691086584821230064310382841893866509302595001681727625691615438960220528816198673431714680808528154391887412570867570654172122084247322268919077411356772258524316398865740275342970301503270639177938373152339111682447003902240591863920057168146997518897702300288107023905035518152651747498524563476596373245496963082325024360433865076279218462020085551370032927167131186304964558367680431622255747587119011074498222548431849009723715694622708262593105212147337627806223360262036975499378965320924695336148223837633179493806265719140323443353809283205679277183037875282663835329876909651043378553205122202751311040107074177118271708329164674655428028976045734386546504010007039389998875665228968489516402343587608786789812613191535716630239073767279001053554720742901925138194283546253576639487926861789018624683246719128067544897575387973278122552812992129265771282843226036470843204290407550341563723647895435337488978133045308237864490415231499679698751738579916689707969241866898750671396955987668281901809454466166990917092579289150489696243143378860450312284562020594314048583880011146037124448690471108401352886974457271422391431568068842947977948674487820977639141248239815883108093814037264234396691452095809291702202338318191271485449133402762487094168220527006551767562428408968978175050691441372082294115088175107310274075381686345222858732384622550632492839365073827174082774532102502962991966703556225428989623493749957476285600577664754328446896563963037022211154280892587012535006975819105900887395461050061156201134106281959147996375262695799029629352825125150697985035896466499040734722508659532971337071159464359557363395787098845574294557192475093415055365732993873906278532355284090520973074930920914145464607738557893096089754326667829947630159110790366416010348214381850361578726111129335844724878685760723099286157408689111832962640250714424002337715470948344727510521360590576426447297373477453134573455951699617658603767037831215835120159763501694919555485771070414094015391944976640092054020198865148327034938560571150799215668895099228403820994005473220449027507408803607697547452751632203425739136585919101748713704007553379431896935297266994851863669860384164741590633936718579448655640863507120968858060412818281172891761843965883778319071436330668901981682284689540581180676271904540777162355164038419014695205252480548647677803492740418224227402413217905873694108623559479624814632804941987939006764602462577081264145735619234239769136930707224316225971469457762194254512997730403167193614356482615433167004521378530073425362225164008852302843052668391129752873518518523931647684916501289939366370103058942686924920228955644645854676190662511783159689160167514837344837546709224246697602771314936066525309902277239014965287684980497359012110579100003135420801169641765849105376395151581051921353679794001545496830605635300233221614653425544953123183487495052818473722076101971603300881841483294503933848857559481883286252980758735124633909630741083334249782873686506931947257858615913781832356680252331800509896144476964633034585390465252701973681811630550494788342235812971272035640963001987777568712184112249631036014804346415065107794149382114899567585981776129303064226282377221454762442869715022090467872428093392236021184468493678837920565284267880832379351428680931084121332397177428661192861895591014420892225205488906252765603417297834663538480122511590196059892448697156427702486973652849412557494161716945784244070828656467157754971387364464670728154902426044446349039422533508895708739100228378000067771911246027303792027876795010651683860506387802398779093664314842989095179340344085187206850329011806434740853148901347834792484682849394293799390521169696706594516721562081235794128651011516033040734824058228418051558474971393386886821108330929875355829382066713374731267516558450682347496906436071519698333645165477025636778764687583023261891760209433601833016189960514823752939448730070151335967122659406230487958023067197327878233837914569735283189127781184956628248276403475463421354073243249237461513336190631416386707471155577918746047017367191280990903730132196768093587495624055922206271988434806274801814969346832495141455106551297689846145146165381089890836935824602582638027712892567384152305014658659376143742196154556086285584047054407876617826988525837666422721116635910333978033158489451171107557923001396362583761621836681478834933380074725573462673178516027277564523340927605021615140776837580557147618238159285195483597325703872453729083107567209742445983025403628224936198099016166391905927759894799469249728010435946982537023913849231557157157511574486644477665442443993671221163183138692437401451205194383536488218615441797612858382433719546319096142709419603303726852537579023623675202211810609962044576163739203914137046268556651916793149501599540359048341503219697540480292971089069819940458873333539482238575787769999677797771666010683214017331791686521743484128527071644284893574508669089638014410008654860809605913773125908660316177481403401905523454639961145709346445908075229689690612110610031932968854937058589921404364919070645163010855886293416424455344128648927451691932544729429955797881156919415077160777947597322905109269301565643045831023112305687225573679821145190332923999628967699274716210639833046848282708440486832477673445748940593556398520505944776751971912605353435213963532194397276232274615093067516014406367238702906028288909397000264863263922428753743369106254488201515011720292269228628852980916651339018419470222274808819778151989247575096003434990390776942106809255600873292642034842915733186787892585959950440153155305744362256127983753557727233213590034773082806408744795278295487099709859783025482996216156837837994115109543099401830729779721174632197307082812293883021893419696473482547242828982034964414433677103688513665179826430288495354360975652558598212287378692984629206482804352513583290446321073205280940872399164605753753875437792251046434417354776484552539993412603650556968611165264089757238641749653748130747495455676495371954688710607166713132436579044040446737719572785567317502660306283725238852715231791312329571452886277276745815514456361473398706180318437113101002277964367744274027703478946638284791125285856158408959807159651596810644650116937439680870765445508745887359832615406137255227029593950884686618556542301873906183534742404869388944726294677900181299574848098983558652775523072827949914088544301319147612106267424522411478416367128317371617554669342049886892818057913551730959114227047150594767750173161350141956591442107691337968644917107442134708040801048849192226857866916578116297172571246215637567395259193758123747920970221159230977794227655840422356791262268351536514951336716541578166121608084193784512481168482676301987844505942050911403101314408691535356028582393975095459554568428741234002284434415964448107617554079190908266961413209237046879743294309541247245440341435740246098187001365900310941353583138920311037258835672973515276805125934163667988525811303407963282793644000448829271565959533241712322952678488627813774750362572797857010822680047701224979376895216912874206531623251242829893836067298779604020687503174145329397962347290320664361177563379583550015209158857755540196004133269866298555056891122504030412749686934750673602409370523629852337010481172059725332762629771947853737087427598126665350399471985821091247128430972960490038331864335242702485389259805095440152547469645401164158823443850998915642301578492507631685815278252575353688538214347725509464669211251302192194030104768535162502423734124691736967869405675100578539564206216308775647968360356764576800152328039183672040581018463450788316426535359752681331288622606519025374658054330018649799162327587493633617038853583575596628120291969442356552367007072390205466513725419433459762746671262030352290641920543703419870888784466956828397977922735954603876875582903806660780823785925065062512926124410677979646406365177240600805381969121765369141969502646213056021617969263796351807151806160867191980521996615720234664844446499358597697993512318592152778584916191598767757999873324927258758909717442603836041158203202125463701432677091368717129390609563002760491443628194658293629856419965663026776729024672021664099871526549111640501324127820325006218872179327678194350041950433418807955678782374804470174287514076546468209645915193554161518463910968312889475080590816287712587463791520151748481724390621641377265296756879658832837072777570811583677666736655874460504041905937339353781422299884660753528126504122411147669284365199190884117863980996493819913354751929584470272839369435578283985724099861205177257369335423631012752707895427556587158178129263428523958525856579410214245838965187305405588096256003358563726851921147568325731080504303884881951211035082496697938943933025717191250137021748152093446411699863968457411992376337144807184320716556232491476164460845023457997319769886064498234643761252937311211036891019809207026213567391248605107067841567475320207323938173567811776024686261288512444637682919750590555398834927023348245952291458270760994378036908231131274480155482779141028168501474559942857392178271242103515622513151355426554980677555667645118923875664317603722062553066261666828756104731166861460999534712401234045481648448009545193061729843711123758033369793530052792699396591338129584610454539421752430326835517580518592261891030948938914329251709499258841011549522549118067605871755313273549895399276100871110200162004974576543267883251058552925161625103529413571218827715123640590995718257371122550452534811408556301044110193290853101211443040484102355124444017046866067799923186625077755567151014599164914861185113678904004410014681914987290352586302025160281236114670349102034529419707436676284255481901490921767891442774886204651884808007447989850638053029331486336533540785858766597703062871620722054073109712279262991701989575571961550476474549910680104492362257678720231758392270035178446913028195484256897205038180071136763315804253164976992927133026549055177209351120493793673268799094021359886558779973375394897901937845140097764388969302731630080998240769676293046764176468110388178772707768795884729191412718015326692189219292993420112238449754224526512705561002458522188311709776496681274712819681922081721043105065726212777957944127021665937491663372590773641751629644010034945516182269837753626559762684358172063547694476440729891038564180570656410708324915436598324958031297196277516575054235449250259648757957009619674269604607462475872481162063813561404039265868230109297916384729175370148429748990885527032040693906343711709231035023435995270361250561877330090406569207254959742930073849231647174386213902160182988612613138109239106595783810126797648939251500639913029036444013771626622831464647329486870540225360860316367566664085067520634635066582361461992677601317761112733890573999299402575941704517281994489121364124710088465737077944004776586601839141696599827864415455235753097206905978715851064554727747143518498617793579423406723380246324171659527586130173228637176704475996370155618385426473960065082043244933550906928475057205036261442996257542168767042035345308320315835145706723545536533893214436557160344642656911465763249274773873144576294732306013170507853975415324221039267193943664906282862998378141535492479215955678686329251456157541805850725857419770139870409483804488047097947378845511261805225542089208875675018103844607449648086818553557389508015717863889113653160851956948294080907939825810930139793923729774837969708186397661289329418535244264202926539692795157287446705348320294779216512934350733400792938709074195786149815675616920214973634070830329561776679141688703198218823406899364258825179839744385838373926035672976420213037705531551543609695487832007599285204131504906767013586971335027513490845697247821109637049407667201536126684685902379146727943703970987170787291407424427585279269119386501335188095101509316580461425804973831290425993852872810831096127302384523656270464714275689360734221512849934552172010500159777206838851682048992492931792352888252680664357737498197318925704793239387400668187234108779022147194543444027719483960109589837557292609608732100874207622219115294204726082741483473081249176690542566336167259519300367883959188361633072427735336053910132534753961104250158392266084266781991496123980134412105542869390162788270572103374300591229352828502595797836883395937166690221905585876210687878225962439183176966576427093896121312142541303137828566045693310623669337424732268355273168581916585901016277981800399042836675894496409902419460441566884685336784130227688368564384422158647960022797134569025574312892979163633808361222654643198062435660417159100883161287337867836735266266137341820712016924946941711823133750174635943136915656582332968491035102750703668121603321754903728693813860975492570636903635390206203005919106046301139303823223559612971352454877172851437890528978852485157523757980355113501050611457814267962945711606726901699763710999715571358199791987181108138463864627304719779692622526748442509134122979644849877823797852125641404917149839782022252857541410013106982138994533266643253197130271059155081210919289893179163907219193192195688900300455539700469164053548338916469620618707878196424509294552039740434264180576687160390887630897711677671436893379143157103493798464777954712419165586504125383084694461756126080660539535197307461624594602559351459637470866872409671982545403815759277266760303404356250211661991470894363043537235229848909990991045259294217461809721459624067088059510827513630897343885165274181983385683813931027695897963103322013299155784442621392450684177947004119549359136120634730969286904869297700030501970531006155878093994013211884101185384332948079701717068849607958057019391241546118614379708860558973687211823716131130893139010489882666827136385975813441165627969344040385390292583168255906563135671312737438366463964944290579748938835284798015455754230404175541998941703763214445741715188040869728096800830590487952339330296302836881338059336769744447822806620570100115282664220869184407512750596811456205280530912727290625712901925789387193693956898226634626946927375286950835923272742425722286494928900690214530342544783673819421732636937104515286605062708909668020326072217100021693830688004649560134118065936048483374873925176954891250535521511048080661023625616337361766217943513698933070544646577261735487454160058605204645948232993730592410195937178288167422405717425371614723419320872793159921367938000867366413021230499070499561261568260867398204385628230030958984198859821972828891566046533085489139691095052678387782937864075981705914517308983776444752723676202645127536699912140250168481303176398023876237727300675189216947448338300222752925201537165642000169252508341649336137283658421295684389244599694076769953438910797286822984514298522313349437256102533399060007486486681525201346833398015033002176424404790871938776120863774722977852576260426793099941220396801916283048285720590398525835293857905673220907464610104067700342185491681606978593718470026317038900226474056016989067241739795660253413990907334990725587862235699589385740985250136122354173187948728323820609187805369981183016438421068042920108058801339510942803603784749807879373045947475660453300131648791579532030841044698284327686955350198697164692104415237687924611214444254634566480726067932944855258428423758110961725969386232286200796995016212408933758620234845654267384948058734408403851844637822043312050257487174600511676967878773433777923115669666488472352309960606214301523141449867992405921939280806256507151122277482565147701281112482411586721509051418342061123965181036950235065688079335822286271444161182470077908179284317414507410825530369442830787836445537447739507632543745328372928624659668822885809343087955411244708896773813413802782484142058503998897970565551488491166254000977613299291417481608091460400093720812447384209589659250035740697877397911657969487263516490403531258117710784294854692918273790345447209551639031641748896526579102331618913629328327048823529257717043882348135426806851629097490104107182798781682279519982662549551813334951576402420371679007995781412237149999929022753696685020795558886495304008331412697789476082153652408241302034419256165204875552846829487838937292135593234361657247672425863287598419811441630365671739612544834213385650088843912978014229254546155155590450508841693061965784151024396313291021599954884965630042745917379792086141397449793174270865875271843985689090683916851849580728414645938451207975222365136785428574003218625953631700535171584510178128718490991490417947683282186841199726607101873953765049772913756698617808023244224622288815657772404142253291019533790874011196944697667046305612846591698153654432348606258027806272916090568070396041660948694096127978096874822846010744767664983072138383248122826063031637760981834661518602269731447045386828450775328086609933357431875619056078569933425057122269110320000179168267820749993820488593564295333959973302717696157633799344713961704227639558201414408234107287823943790968743689345073078312192678537037988359908270640775458202820026132703796800904293073988048751134403677060178013969428584675096131175327301874356739675724542756931252909584828635689822351035317022472564311949150055682695714064266046156644601186030933667178130869687877129887723489155130385681850589292594083031799024146473916581294778746817395994795726555523030371627071078824109628120799056195064901738193777739716968441480535371225587392251412336437912362345650137356469641763348017501827775433033836625742062527878591706975343457994548172297924638369302027294367371872459795211576188009638506556411837553354540559050732199081247149945233983613933838677312300019765788856766453780860010469553827771801886002455747871704585391085179078294731604455562807743869714237849064612959282469616440775698915358433884285101513447447904983143588500476633923480255480823182729072063847900845338131233903461095941745468316833907846561704122434188893991176779048887198537259964975962345987537809938569078381038191963004143599105048437743930304409066506919258500518643650327649460618657926629331677021552029705427916933021970893706506997119097966374874279952054716874353465634314859551898488058477248912332732382977271772471853707772754567005102753265086337443616918340669160551277413517110097010050903797631964419882058004681330803067663780833694995592160453731375892287672146107516702448022021588581612123426461715406302182970447358605157226333221877253259841395377927464128746095391463145569357134961582610625614953164144607452656344393569348288190872718663806417957252591995598768906355408317565290013631896490896515318247224123027196927272518148941392536690526326602703448106672610439022622621306054995790205531998478358425175250482964515615991130845158193168587899487090456220813873031844276646046611614448110012911485106800865116590591215367038568817711900851414556720383880596405403286313311164016959318179877982826334804024123323640383706914332356669026981138340831212246753654067549904901713801113720669068261778489445956096068331211139557811726595135557305577982657728159521722326479302499136102682939849609217972986790481039353247545117518103361342961880392515935426032886767228055801302210103935586712060793805755030511488023338113473710233132316847623764436478094623346473807056038509045358042799810467335650898803835660609792496842168454776344081820970078546863071962757109546832513399290920975156129067510738371484065962396732936686004341338024265781540659995232390447425360159529195445069989392705742216984154709081124552631874161761557227605643073793474342894481388055468001110074985523339221809328776766609426624249798489884745268505230479854470464094693629847833916710675107380239371833138213034866370633108809434769742710297258772519725931239805591619188633632936983524540516651093642494071719143284076912742061148249713813364375036871236834106327310390897440689308381429150883745047160974378224358466497326581855665764159429132935030290185075767192505545473043005234111439529943910694044602887118385636881691397665062533575736834551983150110338377426784150281271525392873829390995241645817477879688292723858279030419507180370000489852575903097999430376783461023624961751752426237262300860906800537316609934375368891126273679571159123380229351266394486863035149702993089335443385244360206877649090617970119338373078066197355069711021385677388723615840978888839808211005848863634593318911362532166311664291341773063016606934776134935923947551269979769081924375880739325330711874243529708450498895517928973505326282074515203297126807986306870122562645640565181072854516356871628397388980589054213669165506253174688724945081528459831274657504856318427794248696983493858132557655575809022568281456083933442408751337348969279811008438084769268918044916029578508695942252644470582145534540022420252089746469431647227934336765343470160277835800131888031572323362089213662159297167807159764764356348369624789953921303500680126284117315773370573451227994733044176800095336120025076296063237635025683466349484035511728405806310056067354320666979745999643491316895797708993497105234615187473557655093047652542755848728752760306380145159082189176252395448181761372513907020888558568207275310211540155154876517501402407297375850496180190535729960532778155931822263974335942873861281836015638778954957457000962870693252116295119752673872184980781613209936868520840542270841041797493366613022887217117161474289321163137423244514077511600801757647486982909429088440488077400626180175430786045417592307309437345958190502224942606695440090056790696532838365119807122717749800585780399373119001515472811933121802036229865370879449760194610596568963604308098911525953612858815354212337064620518049165985482646649039998134840947739727285751667228702225132778075851654694753357779705451200309278162618306976778048407781462209714804032665548237256394234307369170612029552303695842065363624338400847690076360894778481079372153638297888882883681032327768413051498445629438259050172288210443636615368850952789162408454049161391371563280816903162359721100677838729245136958264396569760385726006973045752961313091375640372372168488712004401518531060111933023559442386755068320339235404116846935201946078530073556874513668279543514642106120165403300165070947042987082604474447876085830408713162562512764498786554187387036784277312534744910747680496202483483206949592645285138946983223733361751857530327657337165921808411845680184287223535171421364885357284214634870842279381351988665537120582620154713890919324914389863076739524403109308472009703162212867332829056285782184593977401659882224392362700410340190188860930075999810819385530839398305557818411203015247137859206350009555159324722856551030414065685315202932808572741377221449981117750542508031675398531235993555023826108859059363532501904600344975566487125754736599067275918714826212635430846279516846429904724176256575852102559354142227362289934931318973807755059152179542048609488918622604796136128901750802152099692869591251063289507704564307822600494785284770069740486634901140849383205205872728258698616789634244843980562793758340891800894399371723722001567189891734679667184283182013127208300160867380465580862999338486803542102548449090729810103667522454635787566428199396340215564472126720517849513447228522342441159673213003405106506999046240236869937254277558624058515062494009588123653500162702890466648730202952398534647358545427346809525112758570058828187590875547247540886439059176455723552356789391939562432717164287890139996346463023577031818777649644735355197816107917746244490181972981321401411253362729731330160590854453896403666600941976252187204401826280750589627559042218793017135995417354251134957568664865615163943039665213872804651593071678839611034505860673539814284317827476486192511249931355630714123910571088513665003108426357954667343901516024589538675758802605243282520881411412344449219252413264748140860029506260657763017745602356489761886805226665387056330174685174697318568895817060887052292663482980451661965486940030689111614801468419421750891779715702886064238690532721008504902907829428209494162191070780703971885129679025748130562286582361497032662307557466311133291522659950461908738328460839868947063881678093526617927005265123642225620989315269684873493290702343115618869635844217189185540414383264612773529965904012631916015177504991614690417013350156025862363224027594462288936855233127608028686286984077355186385861992964895194073453191516336734097714248868845376148533950648680509921466037989595416481390075325926774339203604025854824416608152135852832092461094138857734251651968677613261822539238671798001085162258023660861036820055268795343828517273127942403184844107084322531933317200092306100677192227690826457675342637048580360098940563613250811342084443503115297604191831600743470415276758968114108682533094441529016315523086946731948142331243837416641780567897898133599368666589288177121351116780008166289707922895897462340828667223871388631042894534982711920361947485284038625176768828609051023968523524589898106092993882527651561480395631670173381836872490154256411267067738427883619218256097481161062909440980671218981278588832763404711704626694547144761869474811808879331253748145709162617604685768004831440948299588646061776544811590457833435090663012658424126507823532148009211057994079499664498697281407178233567415820749431226756335540954210956614326722214302752020453530153924195217089194677642417873004482530440191312866961148058028953249141525462855992348214367566279994075195176621473070961498109566809449536458056205626798407201629550796366919371286350429090061405687160897896764827368489270545180492561836883040897990969964807406000352112639428652789624154365844303198513780813212527071217933783029648865703650842776810143799205237933499965882391679547657954679738283423101272021019376603230633025833314166185934526105097315693724964611045114381110639483905392989187747221929839732258087418369931065825956262797814874321975045777919069309917148286843800035014666429543747742122102148223367236032206126398018510728636265029592122876649127943041165161343021915347100929624098059710192472514230460469819746342018061901212406575186307626782811437978454248956517012406834088256791539152024678400193789741321308631158859621073261436118127133729321269851256470581314781317769238706074596417286169692182882156806510011295713100742086452565040207166531734868435138214334862892717475056922230841691777327471069965509023299210505743069777813332150594454414969975512649013371380690247389752509666917065808136983393963383615163060781643207832814459673625853043013493651372206514644440012395493909829237034098170436403435991271098875951786580958293187388254988782689386167126689815500799170526676577916391599970004469765185836151572171124018655197805931168842548828532265985058477253200584350341239493224192643464280260354175911919422912012478241697931693560924444160757320203253890191110348618897686951371238039521404010390259278119782741329802726752131824807408356212631144533761916328624379058589833996394623753412790727899367088269908115745801777349671332630632928182732761222807223968635023415529401518172061201259284286062794724816817150283123913817421969648539249417148522188564083818802059159285263763683525707297317805720533095208349994635539621602741759498727104259876841098875233973172110902545608831970750635643981078023973391142329082707833803745117095949829644143406558492604456876916157069154149589629319162670414941356671161998875713490602895686283918133280773993666701731018484322160823513303894356216536002659305325042030788815811732683367487900860820940696102935582527202531607033714385996412960699111805547458963127128561383483682459677455202552948052178121788484743663329320871508248043408127250795312887635239834605770793098096251206669537792099064247205071921558506949072100517889078537613702251119168722227816677035754676872207037948434556377228659441229099406804871507195303870761405608540264649539047980766154785168314126488019337558440319512037486172475652643354343411961009430290224730406447552788373672740791940365441905739544320492039542619302979114394059212406870406698412757490253840021613948423893404226239482173347565147112752483141831301820874215727563313234650027527685625750418362638908459163808965841238122382540577165673636037523518088873156746875554701539982703099625226388230912772972002000370003583769976406709395989467363526364394088311063720074448124644475458263905382182179106816240408809897296030657422613995433925730941502429159851737681595216720863483458657587288757363747157684724428381855735938382722921348484872767221437620218819621071590038536295793293827180715099378761441895283662353814739732624047292381897570988851772923872068479785229196917055218374158264513481346141790046647243640642115829763023846274830070823802747931762167207622018094264737244816112307926266666461229547867332092304238280330067467647436425891438884335022126234995743008924381888750808899831162338118117376459135451587287044243827856237792768152715793306413398455761981475811310561047641468318468502305028695804472988400029447643071407682701750437355886626917377336449374461270846014579118368764235852701461973781758988685277964330753645460345223528796344629254070196446625938668867209659071680264789243955209430883292587552985647104236428995167862864194519716408829307723709759955232174087482298463846117442395275200002882323177970964075081833393022514334406723102517916019857819182623260902553478431762596456352075206821182618382747857918264199755583845420316723806031198690022375505257449829088478264343420484692019297165597848836874438049027878323878451082451520981358332502150005037438190615811751222084697730093046174364513073507715215383240387207444238804752834834797810066327005366751826614288184958412954437525360122728122424035236013719534220975471842226907128892340930940825450253514449458861082101988181697288812240773078638801165371010395287938856388460883429293576846759759229226043852160545826046626395466492373421783758420387391373414641073575722051822915283917015423781509222641839917714993456975061694263525315455786336266871726283569286095759116080184448846614945395502841018449358659858074631284778613949267419542228988149500036657606456652681608082765125786352458627044585820946227227383416038544649909756151251285095600126539273909240477539633464935573258833505140590009664690490874460050410326825650552188945480212673555273395000162385218717298008495669708955915900172217946423535855485187758793871621983470338684237144743870747273721549577792784294998388777285055820231148167100348354712772750455986706728563037768738674472455417990303694585678444616080710924525233749931445503106148353379385156280432467787747855960166759273844114644848239524317726769404012854303549078677827216695591940639038064230626532625753951749683089215125146591845700177745753558033547683240785178788713146239766449360123761675142635840511471808151002171008500244435731263023404784116986457972553937776819838251615691429381324738771012116305408143225514484874108361230018863876885713488909591174638614787381847142658359254570224586438702700157072653502060107891705717675672264439335792616538975692153959037325650777663967508623710334155451299772095837260746753829820967611267501153334835445610469589468189026320377391542330225724052797284908233876762584909656307974360183517510123092813071649995262780932131370596044923919631382713788375366102665124580097251935535030498742084365167906823322948388550565157872905448643834336138116030383834490153803686654697296855098430103363334270225839198675215777403418436446509440358963449688553857919741243111344619194427956824171019675601742689299011069676192733378436413098111116530015832731201120953093788683142870438124422528711726206107094333927300982219205699102312385140982649356736996675957803065367379815097241734066020017578002309031986021863610389775215361338499437682377983180892413766608562330661954779071430736670242386061228403384089470387217011714212898051900508535950089590674962213162944076478286728196005294077966305365863599431438682806485741498092072343452261191079092554219288149302003916533061106636489407009481612201038331707869552120108747852435770303470482760789096368546758394410716476877877856079080675015405073533162078152805800265067509542795690252842200982815435680107830146196304098499429052372016166265504290742403191242498659261573917007602932375681449596574731782652709908107586674949399828611739720181754550360622026284109309392026559710823266489699703084199991270648062294836118739820542886690854925908138906787060066808948063082681303621238942726684201196090310646171152943436783130583933864977385893861333240162676285854726111243585567212665608738491764147939108599099813280201476417097982416800491715269493543584895009869349640678782502293915243963222336762123687825736468543314755951113957226285108329560423889714667337958888123826439298507431157675896644418265023430946662750874498640930306031559544178075562039211800372908551244556907796189709760993945193547563449082295822710274719378456213413526093565957249515738953790242084232926710316051210728802221293028797054549279390990544310414691210575483151696637718930745394564489082784304209326274025255381748524110400635445404176617015715051759291552434615624565072241416067734449421395559742005691263410974495627938527190502875488488729059645976657201510463358562517519511976021226282322357066404817419299917427097892817499977658455358664694678187739240889264408043483095484556669570577673671661956493692289340193145857024222226054948882694448089416319470200214472747244232874458661848122658789993884670056034717344850779721263144512847018980845584941103449855509115335282173914651201098904835137803346257695985693109672191402415862284991667085870310773387237325573115830229564742783990629328244895541547036309494263459493829376403813424257930834402887390819896533028242496683784889027224997328682163959811370286974071587002268739668930707084261495300396493317306919290353574581743648679250013226062755053924345574730394685274405307987385374695410590694314042657772375479249073719655876748217903011193977405154386887333920143858756401657214313194507180862834243043211005937600055723655998829840636171920627666494910365391974554222039692285543094535255415858703432953315562985181026086491266369046725987150930257416730901144080475444234840813991054655713640094547910980532232714267542178215886895792385432208154524336567651291427033128029640245672528784077033580094385301250906365679194357660713829232866252967165182693926180853468561810271618965385793151004680880781135917471468073322237981528502414429707578913134150060101231250993673238396182915885886848461070976350291065518827389753097466591317894200573700420438124743533799056602711033667522477230874412194874497288576314560017491641409225637617727307645339911542650443734080180700357010757178157967980681206875287886387322329963083475039420723853054534778107133579604875449149110191984698279428723731469692761009691881911641336423202428892585713597229967901641307693995167388599539606860872159232784198485337792184701487405315180616104124488482606938422124334584956704141548233412920189442773135119913492352951723133935657074515328801037834034840288435208255482229425722902530724495007687252245160682918917639403451432092731717720661344212024283598003248645216216855483950873049209553651076234133826960539821791030932462220583960232118047215046761350292800830176395042595049471784176646862921823192691007357010700376653155774521215475148756359972055341441406305892126134264617136893687658255208948487072368327160479092436215969253093212661435040675046604630056599158909912648080804672540119368511464642212389621891402515121056364266827188198226098902690289546863912345717408004975054292898320962656097320451755637330738924548403997759268196514836284191955462865690786943426209663096194549859877620233077549815666220134763742733606317407455679738099198418104750768146403363292059118922158913523142105563239945325535037273863234775631523385744125036025841411094532932524766657177364787670199234235592637195301224610290056300875769988459963872584946418270148260393364120972453307987359907181658710972611212677452184614010032430697901744868434945991910105200801546495848176234392554026052404190963804990759449810724777476171236950706119795145821897950793131368788024006586038262601875295532206636530195752564925008766648304836917758372807427937840931833867451614414404973071815086945006425387114229400048618260049797732864069678115937740210286873169171508224445502883692564232127939427066436657213770542486208131759909462177493682753227513925608518313542065186289213834473657714063698619353020402005701389239159497897479896704273475146439143319020131120250699131117511360612809703292144244677074448887859460984201433359329395047740780555762346426818100156773026322744839549256539249323342423653081714069998173069827999709717746854594545372219077498898972900283758828952383271563252549146184896584199173356373365607121447840970569018772418823393419039030922274323075009112002585715363541702135861560888489292475554686561148543320201739102075583714395906347086758993289120446426133790056828869934360026258266520869179189586343767230502048440574480069898018511361711505484029844277498154584112243241356579818732813049567392723338000792159502950353666240937850536423228405763062249817216643002956455618846312819744043940573422223275159971159698947746923944672556755232442952138410535083657327091467166455788923761739581638898065737235404008723332388717437835048592254041366511166341559854994113558124577023456692913299256768844213904043341996515435176414600303067356256064230676316171772904772924931868581585684291158425765065940683922228533746441651804247295014168360492583405108310744611075392681514993118029965273892502404203086062238098252428768511995892282310250774145586514490190903848656785372377846268551640538174210444201962860669736417179053933493956855636846218317502029727805113399156307493389339757891642780971303436837672896015915475477376609750816078313691489057856305724788117042562396629012237105487750826847514505577621644316719208384334827735554335039622996611722401480564585899859923720256110313924819184593163386756178902049574159735676003715881822839261596364032057185942264843022134561200991437546632554807382943041231749682951753457451173716706525085945013521181613973628807546117918196485430543325934692328577012599335263934973431206483738465303709608859064442025832978074463415576144734610838786382466429631154392982420964252429937619747245567956946784400112523905033681214825661694749224479975559045626324757778297635905610021686238064082449902207701172160726661695991841166505416142899070461943094854902056064856179408973678267001448760972410816303781701138863534709313098860605068258181043059240701707976963191389124812667045521654471575740188828819031404790052708233762008229155806447894731254786462414111101906454762819409929183052002255164271835211463456808522584794411843241927742447749242432466211731110209952507896430952427733064507593405084275494270328858207719104544140698530901175574595598651265722621494926312126823180208870032112105945833690033351289602615594735410600331619708408461395208599718997225205219096232616100425987902212295388834491350508289879088622600660785644160014599971942599004703912027664434211115594880471642890494219734425034054201202973925602118662936604431328465836794827994950508937077289366450280211708931022441806460076116098720446730266828289167302910595878989426456881414777204794824099330302283421191715051614193672921428991234921748508457072296916354362769446983641207937252894629842551702085210336040229459306652716504419603368757044716865186409589199947116716334851118583504169363297359717709049448712111474213323415737974375122593708178673863760244982470095953877291486760269877358034942372074612822195038861719442264801630283643483996495675584601609886519771607275151855859038551672488080168102830101286641890165210462847116892719393819570676755160139460328442930258241516080279920165690514341966480188795559989806714119328924928770114723921741646853716923386839891692541900186113925062620548022530374136526207280075884468410968348278228205867646474390885233531613613140958047527997260509310778222826859377682361852679296545453500049856266631697425730374613487931310669275390649684518933254823612922688718172618293094045475648136493431827508174531353747789936467261078127295713453025583517621597250658641437806668515129844758849145910063468306533612387058118688100767449226944080522040446089869786861739879943640450602140443661450473781305383182854318423666076073154287965358848202737793625267547470262472134534963038441941615931919189168745695256935494195644828240012615907494975751479473372840013350780223742551051313216407563407778145774502950660812317954480285530319064825726188553333304550012608930096417357808116829898981733586577478735784646797346112274098049271003810448294837397068162021153306231228263941163469446992478019588068840793448909934999775664210142433077936261309579074912363862628724243488614318646184446045999862236429888680654051889945229712885925848113118471852327720451181192215916128958898103231209805438324878642475355487818743707911846241427314499252380211523168583011909401669193164060509513270259886784163154742015118969494839902425435570476830195085822164193753339899584467884738895000335094368701538385193130281805572054832690040666119442274057759660405637392772729128817113102121550287325845704022833739454683626301940729833693417744109805719883247026853044366545942329744974954236087448574999776444637735460682777820394701456947680967926743155023596951590833100074927477143795047540418907089180054369363899842932456047433274274319810866349637241493099061798046885531154534686357148644842984530628108880066652975031377762860217460086256322896922168807056909203674276196715300972101634598719369553502703956773284327733889141080927454696555674347835906009531947914178068420887176318438004210254831762727908050752564077607207424437790744970171467896319027226908388904321578155307556569833398661826936812574190745317696639519276788225570505926993855662320170875254571003705138162835237656682344323961770503818708891310876434606829021804968087022316900559552567564877211815591867329553833456477196544456661029946469691938089827638502721732067999784989614251922583951444311032914468691992376969253743483649177341320015690749242294720599959667650191163041604952586570010145992362942617094695089633452440647394487022985252829929054472233148946124347386478798511510557651520214306280164620271929381141308968679470573070095716004466628414778572434447601412037245944372754992645423995637984626598341927207016493423833941489863512159161213390429023469753625193353490554231102962474639501762885554843153667154541450188739062439229270281142013577026309179687729814870731317929007471255795833253347916794512747851378440155011827314271352702330887354193670518685150939359538438368670171011063368120637397483484750710123087823625261041538416664934141413605905884087169683650884299984250159317414288413354551529696622884763378780586079098002741156684705779673441217883412773959574012618451281001460674443437579345189251767677589017892159415175069788952231918317157010600053737717952826986076338105297380685879823262948330104915108670352554104130529606051332106022382953649840007877462196036636695971395650127920179215930908572468814941864098083522470362940832759396261146060239251927526221954579857936853972348574078727979958282684534011291862844878294962854579630219321277538019499928072216549202865210056464685562772244902049601805725282550527933324356430881211809850998929365200585598962362368826292452443508763172860255803861148503817368721656000485468952023999609694411676782039866368015805327288657363637369773061691312877484266280032983105031047684617588979816891091053154942133390842426549004734198174876534604424819725693277745033277867647185544752880742457245410868277546864266235550403786855452597002077818248627870915339324441332089719179696800514469110666711996944413368214744118317607108502819672811032169331023682623005477205244238228594076146978903709706273981648614371882403778153108985499648135563549502173292232978649142501065431847514616890693198585318256997632265834775525204661833473612617851939032653802302723598842844946392988567159652648254956511954320128129069015433266089177036190114058398503651336894931611134607964365496729969021890334040350591796267327373596794951915913693159802764007312482586658875931208900510312626224343756061946320710308387584391228114716199076889977718356069676461576426084443437558893099175497744748747165143467036106592338307843929189135889557352432494461736177748824207674094215185119815353341242642383209036083872198243286385768288886806245816623220890031760786007664452131558109379034626796776802360376890816312703132680573736344639601488910634458025939180862201775010044109067748365451714122791240658266854272841373691588207385464541018703218326890376964038227125856089791024512965501951770425422254805011951642721989395876284253872395026532624117289776588010314926984734603867999558211770172209090721274808571131363760083291678896621167745988257198849466421796166411561339675033222789512693997757394205591171407074946482513588433083555741998405474212617746334255731336661802087948044567536158692422255198573215932361969378191008937837884543867339959226532805161265780384865707026961491548935953910227714275925757615118264948815278911171903019966637985299680592937321104174386663215670869680597886807559463844000230172590413788529504226522801085565576259212875378995838262661014266054439577366865235476594777345221855458574867822096943078940530187941018659518379841672290431800368680440444361612071568211914668564867477419015566923021904355947683086099654438730928080695687123057059201665826043913810217507995579970369072475159889958338069514914705116828060372568120628296310032073159236975988985260057111051717429916222218344336729700917180770197057684351523781714023979270776153098743331288466256368663419672358098103047367291780620969447716508567342358246225547842571274043434537410229995332033948472456119538119769380706532670347644011642308661958475647679647868334781702730609292921749316142888942441681688433164999414763892905843170146891839603980842966621305154946720250887323892570665046395735721460106461435156930862293139199690706909875025387013759469355529443714609708015819737200475530999675697024654738716332728729888102647824072024900087053080660025956469831835298414037684081332872829804213980707558105297274838149944449443681468688087497819885384888332049954463321476418422021341758789063204464560836311217431053029141552851072822976816324375964705920334581142645147299778256970496944278360275092596471632047764056527815341787194090884769890781409365582774758169139058007848447035072069457228324382850083137951068067941380257601420363212070492163641139241076103470712064831561504582471186973483395650349273453791580354152777724077131806594775437436873153704611316763071376837752906022164708809841051869695743641620969102511534062357485673009988250481371207580169284055112373779089980134222393143199759823631420364415049570537551350205337889435228418730563054884072726804245273393245761290864668400802617877863654832678433948505631138487040785033528174362509308729541536535306535450591241378003750331279896035829976697650542501725393089024287916378975594430742638715601283202132334443953573285738732962457010690607386026737224593394708207737734722512917126496110444370484258436575642732792612529011334178609367961903347079277771814166664433569035868856174369749820046916985301048959653863266910268901556012123846508968348796105241201748549699276831900026777560654578252426091113838048507393947484690163328591099487581110920079636189301956309567610406944836546620323435718188076241463508849513545646290826090650096885295195800841396780164668971814835554645708379743132759645497636308197643346117712964705226972907895207278853503928726550171650106791726335223266383995924305786951176815495100530976738238103697648080748987840576975206649188697458491361281985448262608375807141123682188058062734974326592247668451291324664881569830190737409223804551299808628777250595006596699548818001133214511218315685975002510431281692317116468665639931662251860860508850415037850350687458515231703887161673451675533543981422447766716156542364823628685833025195728888461276743448896414277866284938655478681644533758218741413332664182746022866421579617004638073822436293125430288519232727112888188523336263739223199286656882229386551015401964873566582611755965393175286616029199353822309188008848637745926231330895817994255882434591164054415636387394041999989404849473653245233057027982735582296702958935962650330426319360495749080077957338159350078969107752847460415714204728090578556405168851329996668556240428958380729961338096253638696044095628465737111129290781538276707971486275925468762055866617372320336605718383411703152516118130550576107632097291669381876802806636911053859335702490125057800036351480067304204728661632537505230142454720754870283535668429720903210482617110814899034995600625218252798725874348866245832475746791443875673519278248264141683431911467361636718417383068058474010598543483736981798053685624951663389555129867452976314514962009719774310693418027922456655196728554589779897265283779385941049774037930589917096799879214581520186755659806594941671118278209780861942511630940433896650390410139534521748884520697900719454405347452775928459783031864624163743245188089473098581144234552655055830338059519876766876869530938229943330049677066022107847933148040622400520009510788347699076006973674106424482328008310897293467459605806660351156152632696294961422626776098306291538654339742666870252399423328932160063740744653455923366749720846066839808744410305212359914183624321810726563909920913470616204436073522092358570702395682618746352042869133012021207209705840405963651612347005007490781344235311727229291303456095525651564155419401405191515638578684934868989279376162904894479266605773458186758069505516377319261281570382500914782104797212720615475503222555268649145387813393013668154685070531366920608112532266444928386548296413753046023277516417794216480291207190798038977312860438444691075651147689027498996243599962175965374022800675637977298521526986330648326672731752191905263433454863745034088694544532447580039827797861359038631803123291966968908805912402043263853339595355308649003879411726235796059638423623775508791571824992448986482025733696117653523397865198027534704152194268313716600821040549138059225416438496197098786906629850148609662361203598069780983983980483215896796818807032436948789708946506556462899336617850919463237304664228316523843927186033639746998936687848521926862136356394018361183384066571357431410705394742343590897363887682584503641495512659462995899725210942949501609819411821955732365330279908988464370886487341801167735085104930458970315541741447372907417563499562337654185021788758492139053957826033810567018812392932736115514801136665595343661144380956121640482557170902707775632046001447386972609401397727703491268741001071798188310546422182234059165403781170081480754217739283367496668475743926526806793857591658288198532551788989158360907833053907339046631975748041183387330456607467496103565617560172321015739965039923911711643702669184208673586535537221832476440619271748731591993340867741198632847176884346742870022062780470525731693538476465989328802892787443267503268767135057562886715684817623668363116557844851465306671740473883096365524596078303094850611776361379298538032092766591057053573770479154420267336797944515627417812387600703059826827014341475291801558904131551859844101218224379575439489628190534275145034868693522821150843714830295618521321699668616405234826762500087310836807349119936533079581386096225716939451795104662418146175744121128504471238266079903135186061051632030596343229022101251525313337084507811981873631355656221127281730134814368239839597865775816436073184238400725355841912666213364816865544291660834416467324726211147467536114916616043512268956616245656016345057597915932430481921474213692663204352810329515179638509135875479148792894874990316774657877899237711347310603812397516475362753413166883102995948406521267364084942280638131236491865124918935753883818548906375790290748385305677043502812054642470101371861997489804242042146334873304118022738582404071536054328273709982683394493994628856904840393369334883869276227518807542270066583490259557216513337862044400396776354270386895305851942898671338906906040281699363555301074699462750378705861685687687584423028890763186017317099386093802752711376888824373269596682107746026075007144400640733162848741596694892603636970037465578528076708442431677124433629078917629645607950281586479268130136568173783176001320049969948113625209172447850644042991860584211452712195329554086462367894377922429786987505551773868504877813263453210663022366065857448985144154015766421755695824378558412957113635349133544571788834159319816212833411024905502642380319238370855974406048769861488475902071343240008226221730946776461121714317317239539053746970907401852609430261353639894488100226628420302314569081573761554597282996974944686134740042131874843112447145597985601271487073250885531942247445083771494413250562368531106097877774822391070791884497159411502093788655852162277590793648071630069360937128947882520708973355571132295184971278292297735446641366172500494838752482450876949906856625259006421242623329151758010836714038770328238879263917243225336811975716399197809542478598409282392254144749278469668342349544604387664032621039403712582820372654952341535624872739501059172807338841421346776138030861567973262671930821448781258212865863072805187221411373121803189885487666780151804342108414838897912329454827250261798765039357077269979278984084543106030146428751396579933683319488020992286337993657167394161520100609854260325411794499814361914129983614064106281312637783893051499816767995757468669890151378640092048890011766176071333907209854802330863638003146902570438135783802135333095554632613025382445086822995857231169519606449586457238216222153834669142701483320555854129078673590670758433029426543263103336525953789682612815592565709798501675453007719566489001554674484490558648270694613447389636134223216822958877891229592358537557288937439659786213713776809341109789677968862581933520388549561057471858031349197056157936811809174915583395890533612868282019038398799873725353431610145191286004512708177953647366376373103037737554623578160561480660503575971435998320335587098792802453105195470559409588031987629899364284578644329907447141289845490034548978691721024423303020267301262717647671155457385996717461676007186030439859682315473745731881946251417139001236920126702497050055220535426574894531532263469864543887369523682591690880377842190494315176000364114762832734170436386570436793129644557898888820175904961778794243655798324551760319600528606835554591437459987425847051156030434627078251393357581486258872376240203426354752476527165810369107534453631534968316527134994765692052556263006461355703059664425058113714939449901697338349506323307977558419470274383379644541576140052307716028444897324814146433091939221470127197235027419137024016465371737009710751512958523019328272240608336335938417755291292638368164743651698570974215384288524679075168525703146990897082604658157728535861867840183910560597493995518015259458648857838203278791882864993139668453352585892349767274274522563844628981595084106577607156734207399329719443472843743490336812221514052973267093063499396673583034303968695753753068852285540754610387094993423324537033515158645275242100356663755199729805736740859830223348323447870518404746069469762242576754264444715097768088129079213185250305479534062781753974577880886708154926445559859175609104759601374458003037872288207025963905664333637003497657320305717499678073647663063407849161141380935067467452513355960762610947444316832964630818535485946094062210986491582480289420057719559920385976109757015555703527965286107904996685381180301328030816660115069654736909071079344263109662676062929450253484955011103249966909609562573527638614532016582408921633344333086704113682459125421369437956981233911773963052964348697511765514572354467948833055440392137758985043866029768316580617644270148491451758041594889481968698233260904643518727663063301262969336750314922680595174379931513407734678023089221308093361429881501914619123771368087651698175148902762468007757049960946481004728351400826144712442896301371499622788323976222215194165228754366687010264133110336841397146345301273346094370434942325617656869497024873400079016235249714247029206536308024733847035489153374789673946633925119259416972908265211717177527293664430954014703057330081933359627025500952965267852727120670498664033994036941666719405411344312133552918221410414283592471314642525007674202851042455092768658265103051853125953223297298471451004758422227223253701268767997452866006304301477359330610086876033740248055178357705357076134063956483905426770101814108187921514501533653522020072122099440860994719512241915065388762638507832969827119155390377760919253693629589086054940638543961180697338502541040859081034102463535402182644778188305733649376139199582611541552221534279507885471367964503813951416766222392995066860456917418935256152498368138474420849179524247926388566903004678848109100147069811264742910729477363728905697990630892151024428478039178293367851988284604134785462425127982290055417203537354823248213315404903421738240262387908635962814939740005839901884943721720802198881631589169002582306786133389973268151130055247279995781389369977574500919255154286501492309291249280991084206805641523053709211771315288949234808676637136099683494914481775375966696869579346480574197899089874086192356372759549993991372831605951672778819596304959499440488390624598650358943329166821332986889551161534917780958759257033933245188025061479638116277355809882303474890508351566254825521827324712258443548184044640359702920846274005622031283223813733145723780675486343924890264227900533247309120996490370650135107530630253168539967142660863843375314817452341187741164650326321559973737965232618374806613042755627216782821284735484043902366417078655152066011274368518444034707878608565915267466444860480633109296361749265478447565893496004934019114361355101082723775813881288853176659590895861397867038621980128270898128379032328824427921673647773793760884596814307533380896770749405958386772670858051173402539131902893541647555733154947543537625787430340515072660024092036871002637883794752821051597234373675058343707636175625812537424996228421627194319746444551689200211797351138786678348271020886785954079617533605442978525586999624784958094239931850655480993056485934601620808071321463588568616839254518833060735041436544248695261308208623762951998984830596266380192664031341605961431558849941587631811240209422069268411518591745174941710314810996782961441929368687482460901164375433363771780438663431556936403174691796704477358719187450982329407234101576576104439211783383939526335618175049535758776572916241315886337019476370464225520321203204609502386530440542555612633589640309440055490289005364603080773129241831251159613733456034452934184737957316319872508918923701511307998323919908754017473506641112943212167775592573384136037414692755198122325126880314264957104639334613706015114956761927851585357107108677234670605931050794220811737517756984847374625497966336281344988586816676844726029506398374837235568418700210137346986071611596858213547944856151727482192527454462029029506003286020629133711810163776818292959964455199699881302634175303132630903191920268972028982002211246687012135295119279576987821544988961924237650355501744713916120793919176840675590587278488517358517038078396269299801034116423919579059012883474651654408534080255660158709479155985213762091791687980322130878629574062763930086173591151736545934994170276554530286534230614430199977973882555281015837876101032752009849202888567414339137242888855235336350598148080093591807091202604388690703276798338037518957775442424850091385893443449184722782975776125921094757232244957298504604759571338325374871522687833795882293257804088108727314690036031288129449613250780101823235086821231119458203520275771860462992770247120667107469484988512288833250926117938486991126581822841493935630659060149200325211062617383326232654707246790666456239130177882118956938877349939394472749530150390574197819362657706932166413300358059545000423834122664636363584788471783750347292908899219484744443397735085356183604051463685777188173662296401116140739723969062332648510038666086233829049659201218062876378312314902572876101588629730574161814386603925224861657525727276220515197429388973018063778759021629277007626975341872519323984565981365502573769145171424105104359344296719428072956294688376407781187923389537074018436855899362541831467108675011870898873766249693393872483746099652381267014022519794202413422345389392274677738959169551418570746539426401762047657081526614734508078199905575499918029489114400730078296808597094739540635351220370736900471099922174726537582713188662996162591802719128607710182880726809546590598040128332632164830104182087494301864604140604861447637634293021117783788311655333336195669462408388323229144679417394776186716881100466811546323502059107124953305420434715090967389479203875120100786859387987887939740441344548485683114645397316760257605335449468579480067317314784626598879112194791656628344459108956874651089288720352649931572748487699656678952994173033917614113289829223436092936264999222766928005939648361345738262548717632028023001016876083291080437822067183393830366189561725257504434872267406989483211901546355237162378517006882811178202778546532322303473789776320131461935801836971720643910695903107936506845246761045755757245957076982890188983644673219652195364975140185547721378680637338404154236238672308740774799362902344822628498081971510046897172825065828470968381866602393198187026534974066512725150562568991014878246956896279973278575126410556942264348379640159078292226481703754408451114433976849386835767427775842452938635466769672968643132973618736278892698704397331474390593489592864371280321856964299245020578035493251872855495091778307295281884792845523054930384654664228239315599171577096740549344624915342690227341539180176936897253292900925128889539006037918591345797300785550537456644580757620686737481869025682893825203618593466420019734041195806426956711801567747158284293859749328279419656627498251723599051595690808162726466351413184373374958526866140745931609584761444881860650878842067313423874476052519218097838957360454941090166808512011883353231966380203500091695664844305751023961091213667328729913768943202123254502686342312482008938795179217457602217610921925981446508719231261402821058326151902361623663186453400946285015979023218492834552591432268791414958503920596558231101807728898762201958489509399813421391616783868018772582991378886390281754310115063915606710119550813499729236402799827082397171404460426911670816119670124479848028057906683272428580201104662975117464059214108391161158715560429878961379118980855702291038575014940456084347896933840973871479535472280627547804753942946692804459095024955523752584822012397152461477769209972056482533260191681467237380453671474955296326605305043133510776439394305995995879310385002232847051801634190589536451013918509439276682017533940638471225373915420618230441016257170274380824127447686456677501368467639168682590289764611321125134133477357639191412854818776783018432299188359476827079559710469423860042157634726583457212835255749421712279635367205090893041028529139773789826450357866797226470866691305190487251444566795923690477902683830430312929695934800930605991346952397580972717962081988679131613413112195865973253115523764225201452673159107244250779480386027106578284558502027000811264437178908238962264536924284311777078159195074521296827233015617769951816032827769832196742199921096709827367687360704264878606791628122017407725905659559606607083083236428845629810594571581193390109928013407894763957972006657534232846063396960947101716750442579642380328847486685566218709003308721727254739523741245938827270053204120402962099503198506191488554766836101321112869420235152520694639148064229158470795633532159682981494578296119217045036634703434821441456881499309439287454710430579651566913171105723181679160569664513894847680630647644100792578540437111935855840622362806763096667396964777808567771904689343631041261995519521354621653511775011717983309434021807578200734115065642266689365654878030970719140864078323960876308964343483194043305313456154245122821456526470296475488154663245146447106541458235985270420834986333925365799978775741993696845235771859497301194899270896718125411617740901034085797352458264169747387135406418865708405342768456355455153556584090804844398438911090653148181520225305141204177690745597996333445778188820646009651472218375177733326278966611150851790426322684418405527426921953054090946200010566193101391143565978379725162222977836775471123145210795298611937153177945748111736451953470478323511537701449501827602204799602018435232136711829501740191340387917756889740758322712433336584613336403206885730007041983580830195013384901293573545929182325020499433392717120270014836072767501613683883535266060303059140940249475002639822263078531454149080616655563700247306116999182855157063588896197720246551995162788145348361769201054421771713232272944714713090064008775504964831993547874860694616277463829597551420799820702245801474396966070055439287974686583691217653834599364123201804515925943563453497524150408695650784176893826123641848465805613575043105334680706460856542883928393724084305212553623587181810609136485000458903479658195343954259840837221210772687632846048423893794715798457022435550166614152520870900721375979127938981726064608821770864264626799088075431290596066201090883614075693384462219241576068775741409338165015539933589976865203185352812113413104594861946711177286699821910940433910025797181942575938942605881612782886007094984897962442124019607408790802816967828919756833084164040885737809287746862013968842440966847974045464206595712038297378705009266997179022181355278024250761972075313943850593414090229901533014603790888744016447175366428344163510098081364860736777967979290328726578996056437736533095910472062242138223708303391865652888316925259465402369294327649629383359704800311506283837556840657263419619560618257933541818983086063487510716007763368113130613043631636366268517541459402807980459923253199149875253484503609905223505759682361113372502219657986875188859903355603333161346888352557006533508489824338157000346147387671207929629937886110624131808375384113311713293605938579460204931839482158256962874809412461958842307793906679696190729315728940402894317871343842966591715766443459631273759020047755846174146480518253973695697921331266754051383510542505297326106036249698907497207033900829594278246904301609869183369692446819432415435093023469610506412290694773025826103261928534357611637298381551123655049813268324416694773827059586329171238907988361726934571908381418902790532655698768046681381187731809479777668568363372920137029912763437765250191411209718932695077139011305934352969048879517171146099497431597106051723044295516625881990000397021628786795286364208329192287901268839139796780003963663428902548906493139295448213422903997182706054760669577634430406986375673966401423273681827461085784862185090007221876655486211186995931729313323765764574123705269164621960280039806809677218597100653416459265257741421978777492029493941425043857277586402595397090408238748420359174943499498521259762149225860641765030297931113954604244212352206015206204902090619429151708051905162286277883113851952563906324808693756377323533488701057458472877444188283345985054375058311514440624039411987904672568177793614479605964519851936523294541279742715419485551243140569601821415284103876793295504713781009170752263603936643910015742685133565938805577150626268114735433002168400372211832554929001691798193246767421240837955179051736925951744937585399402804452000553290151800728091794588410228354151671800991022756195590157004416566232710065660354339288909688127068945344054232134304729491002743681596547766385198965791636285799633080837279375668105928925243840470769142980145346186287484309693016056688850665637672805688576940336651009373667143911784493469485697962770138700766722685438248082514069299405642403471047246567456396933668663661466208391025631272145301855730871829238665729758629819993159362025190927817114065023031258194933420707100610711823150203943767135555149087404878511782621946504242848720842292091907733832620662088195350040692360249587610459770443307404358613685669257931472292251871570578087699034674634063564717925127311642515020278224333420692692337353693648763959432301403575726290871940577895144904142828331504656937102760575582368644396031975617257721255716598121427807913826612481916455128615610290310870849000202387333616577068990348784017778509759085951372746130997002909900745145674993040581189016776985025022353116038834261221662450379250834297058168444924151571875449690630930290598176976837417445715846429491561775754373621375419770060242021082809901234142905953018629486804278755120447178061274188484498105345841140809483146387790332547251390034229513008284752723417409233255868819401850678227169969910401410430910894857665478604138649802512237826066144767883446119043824673492867893625169539823720676904374419115895755813692837264795009508755703124202505602694070792617684195763478232928003788215290557744183515825646103784635105350975927886833406338961907693407396371890850494825950991981542857243488198233907688395673157364123421908150039666897605187459542137079636685443008247245173645220493093390404625285778396213283894398645017247641955724945173030003434695796395612162357380412940700194836729038849959622976055335824093328049952024250821941157955807757914178141800102706579384159590082961328098829258888621323797527023994466462326021281276580045243368571366323116197100187832865247399384790911644719530003552273013322593988669051253340582670578244838358556415311335075020797213087496435535345619899429088539173247799914688707759812749197786457384382225890941421169532329284426037512168930149245982973112181529651001514340407936092250259742369982656097430737262167285376846544146597415964387898098413149227302211502764687518787578365281728767465839471567828341745732616095961231566334869909689271589348017110795132969764179096619024347681241621418797699663589279741429844503469667231854892516445175034169711108914081891878672104047717082569719126811316759470917975164151741465348176935951621820585369956940840278895761413571564458159955469142114052659315990160882992635452148090952863042926693984157137573499403904446231136800364856792591764593248042842024573124621255395998195854442815732983122785789090634222946182258941728776578345617870747666747177117057013478403474219780607266651955378026940678885672712434833223283359607597621181828012103970337360943744107329779188008173150462543715517986914509185788916277949429470000913816434862752472358669117108138413922851411572189794416918230256900458783597494958766891789268608225149867973738692093914865944407291958835758890852319090864565480121797577820827944110081353552452063924435626427354117993237108778558089693424250655495972769373732054880801110686265028048744989010423192774011896038249364599392561097551158345013706997109190290676017130309308712570852620004496311234505292821579149795914418362741023771449213266402864733953217241131323374147815194660182247696646523596263123889415550729008273053801989769300542020637922391272754882727064699173601697684452378250159249047055708407189523151121772689313716114387750713662891683963462260479974040389986348123097176427593772532949762212157590461272812284090230736384871633633182289348747091997587504323723826344161384085285090965817215125926834293639420203235414283114451682676206468818095545230214786293427300332551564542161322565807583217455840699244504178945084182539478585920426724667917457041594340797486783538461414902182753226117882009650753249398163631946654763415558781916269092758284452333374999576064208799469542254873480097568962378312110593362420246639298970822115219314728697721483167488135096479522797004112863485909198064150227046997265643917842439087891599260413835636312772373215482629531180266493343748998790000521773077292199908573407783412301255595804998469585779989026464266033813408838363904212950276247547316619554914517749424538079642842750100139123027176063006360072143095717844922373686670491458357069903040698368414703453541446705523570401717335405693554038253411182083475958030498250899673211347821044598204759601469448172217811739162814057150576171869576051234017966472830944677329217087446628397521020224075709343521390963824457536600344806166304786874211006538852145354107316579491775132692796792752097929493240798878797132676928825031810846836802056647266780333194490565481656125894679212389498524316761461928773707730969338676752619678844211554599088240081627122710227063102593632276174776931048496364065749317647649500796313239198010947405502869942606666478030096351271207495284712220068307792802501463504516657532794101925547526626672958307028942401593287270287017069857669456743468139460248989512231113859006840485802493605766605448267992074483234257482704312747329051662022652730018000566132241430258611465250896733958379798049445737876715751641189280204883692164286499696607398150055834873756765589743715225282243665726445261267336691838663918007638254496463536745181484122959425437779094482392541703336439250834226301560154758259398797178861657519931209571386079020925608406252139793749153847668371655041966455691412715284379197542671136171248746681926217692998546384231906065519080745140207979948331132479606554502954464620521532431910771800573248130117817337552649292721450102455469320562651814226020751538122363489525744398296260132487699074668952654346523012483280602770842881571042943787983770066649687295490660631635191484539258726771511803597037119074645183227183958789220119227386612670477910387549040385467899172530771656903502648910476342041578903302525426087263311984270077208843804797746971164266724904245226125343456600970160145046384565771122489009132892410967583154173670379403352242613660870190385164919585433882778296254563788211782041779645250317071612578758794887279668161227719412304877685778469552131301835522403463385763240032709314817363386995110499382478163301633707535106637677774375330992676989149840186549349555057218943543022195742072131620702301255268442009139970603898242026728359661430783201940835315793177489945887003100295998987143950515798257235677739505130970792453578836407581517782089169612091022837682992179475363663046498149396231149627613845805668113026362984963843477160838697378508916348183912536613082391093701749067338619564813031227006897754613437426960943715419823746238211865704213517290499033832076813375440662103155307459316359897644568077981615599854494306327950819275153522079187237029738711675537519211294450788392110434894304641042825640612682539508392943977653799502637114681801926356905099487997205536982177149257574147400945595423497940704025431380238195797844885762158957641048586997177612062846742641937036754925455965372729218838410876731264542708767663054299921360124384050186415016478881294592011713035742431545366788750595480473213544137500239131700964212461543464943247071178280611100764184887626859944516100963608085139266818033685523790432378330574907422257473964259593124487253551055368811985442802346293876869231429358340089028106119291646765515309897180257745587585886670175448220209626625281768737223383764546331814076374159504160307019899919141379145236258127411884460241701838380392253591065104398220041179512516261607270348613795449588453351036839058419276175205838157574495776674182578160146875260474078302182293504000501383248729766953171027951588671762608086229029718398510139926185189329734088819456564155371130290194964345374818364726089810156914077893331590272872983107504319926927506028347610391755414369916445171125560490386216721861710570934938003412466821480129850193299969957793229379183589757858182515266532497039175975596042549103559061789229413273537498901038948056388338995676323371792128392276707278718985855943721453276798776437099338904019281545668778082499339129712274152258337018374425122186329581219995536473713093095214138005194648539332006039087841371493802256486957975220507115755653707088253118692361215977660327517069058060979471346914233893262652695124096570564980791081190150336343792492070786430984267973586812661107627045103817764681593376830886503470455693843417045197386993101566517169140346231388912888928493442159421210302355469621444723086507789503509154139156476146853058880702797928089200502364120461401116169324805372139282699557351179037892095012628539961938183871908269166498094067206977347448063386388878240270260000466844750321152721359125581233991424742158528554407854558380512005474799631564552244803947131187774000034300050774398519123850857771377997545327790001626234631494478689408900616076076055874770811017147600712818011405409285836131690628628123181188972713758479261863451781021799859917103306738572041402383064162649148141610946544989496527764289562416909374809913510041823732270761127434470161372560260633352775320973373617602041364007931764742339306520263329035020513570016931186178018945586345132473805679517777525501509114532138259539580901788445565179103723227844382954041308826217804544997991821387417427336009285293213274005010107710121080738373786391198046026336628906021675048514152592491948284201173315726458446692061676031359107709904914132668525387768918463871689862164737690711828083736253155620476214969037896817395604461922478239165461371341921932524742953499219544081586609115895921500503004227686781802827054272176355491419786318842113478198540867820119734041862258260612306042156899914792985205826769976665611275592020425270152937721840795646073651078541489761591672517064144288520167843837961602381691474045346404402012912852464434521365179899724259763206280804839674821146321712821787443535421950024164958142579946775548511076586371482655203464382906554241274366295837425536275041169457630061383470611100171878065950660909515564978571899996858165901350820689015673856712527461482062584488220153403418955027311990865404257636575539974287884099918022091718518098697865418641543478129549893945782388886692415715023085018395901982233158658098008739419171711720485659738158743375259269271327549713780369861487992029912007010551951377444649110126844224520915729332243004213651348502194659470264982993433641678138194672011041842596329244381475719087981394329003744412132486139733445964577027000303424727845551793409784207244440167908302752148331487522202673261680165110847419709712820255828057715764160997433259457189367953708572201295755356982681734842886302956032116543721695639649809910193434943892046681307729676928756390965318747840808057796537397054398272032378991225464963173381260025491032897344824379066922647558004209536400040130331968036931781635542484733428760117418788934587922998582354311630523982589988969526156191685056452003322854729522404819148953909680755762085278768648136289316150784931396489772525147867171675093628220330906858999296442500247723736049685503274046530314135678066688689711492884555080654336302745857303955254354479904183601106551594446153482859187138837103405796382136100336586903197282897947388326426601420775926064967066122036019878494849591105868195402420644149062859434284440185470384928953667048980117096917086101792547053225658120347184950513983696781103368925075085287629135322133425837384616210658944068571823061363583920318295677781535346863042569806835469840134988264836504323759559066219726786598929075029209944779507744064040712672282676763934847033965020324448225427135142308638720091308062187555719020646630765591725829581074233148045762091479005337334122474359378080521776341858986887572459903562343228454351201308167184512204633941288438119145439080522266035986470558557402773409966129755035669813472885240740410831606968359675734041329578688638021544265380304686103278762654508364232574135406775545319405512039287664239807668163693595806490241533356058230468640736717573148872772313703472912266436849075057010056634823653953111820205393491381857487120484166473368424100675782823180628566890181428470771553893727111324193920283614331570413368593587582019190209131193979444610910235207083090546139868752497821019119900368089996563847387034488823269510234366515025981963653573976552432107648512298209811272268804646547026958665956982337990848854123443597058908170462435226697039304428993656727233484409363277320433766630658089368158854945502308562442287102899968365091578861934906184554504471479307237466719633730102705920046005478612875860978697884542681565596441681709835902794531630581401384164698430365507509182774600818151671321566983605685705917706146914231364113614325675741396127046316577775799071909919992969670663717840202470617401753818856307181626179396678968232827778484654883815643546776855101487247232719476384335287622748558246475440007064808440950005998430002853923439136225583050863165504820540461611069418295655534533951628949298549284701546508819700544128791554171685061499624854706902904570428012320899112198136738651710136306064901285151519665280385644479463909843189621212534147996918584666985002843972625792975047747805691860427313344141369374944527470774999360597278728216758778016504646303694620020895034807522095046881548726261016747621273553944908539993185686781445264368296850046311125302771541333973900473667189857679832926597758411642931519038456915829830284062497046165287928358970404926933640882882566689355574609186518899346401292305519371756464489200669294524746463154733022474638029724476479980890428001203397032138557817623288894031396147966526423335305960321441492756820503749464510933792388632683835407836271131426309958343518395453001934121363614276889747611979077084628345661841108042078616505931674926328624757161943564340688359322265767140786403105167987663389554465857761413358781702287120240026656372922082912674190530379951274962541674338103260368321897446058015218004777566207336130447506434884793209516530269062561468991491767922407312616539218685765069445801619557761886749491210620905078689704763881105481272381729961144780041661979651146287878380620604898941533699990387048680349157316643123233144360333407823110612581212802124197126398097745915235670709339604540179110265142308993089186458848497388766617842038482169726571099211058731456855696991712177055748777551315344826195743902346519968108248588023995705700681883215360167150515260983594443075498418300152175922282232546557412561294787595138908894154976048464409604707158077697677734305471697899488610909250659993766290973900217800593946805440072417820020682390124943618379826018705316023539525996139462188886336922783737371505314500940016489512964493161881278677623118935276707731951144617463526585558707264887303183346367795931651017140074058831303534654723654880936994433452541402331524439416724420245197717656163863196319901942202513500607347994313075847168257189243446681517855193096484912514764257512926880467802926977385167229750783986583523666404979250676930524262182653996177267778395226260251966942629025412978673369842232712224121776353471353000282843730035219015458577696830481978883467136919480497356381780134824976164698401920007557136132742214658158730433694885743411051036411590552307859441257352056958098208120884975705057373251557134767926883375164836510920725050950592519422252729762351099308031496276806365944436979165452997462822536756021868873453833269055434390359309704333807866589251914571548232196619773598547467697163389676263914720707936191877548338801175641331348968010126613511257556307283004614633108158444708948707060267033711773191743124236194820438338472054237375507188801009145266273065314801114863892109767317484375029176102046553948829644972526603024386690811495990674250727554623758390322445133198912304527326915309118187900075867304283646154440057285724909807486568434093192149030827088418040924219884474524263294704561766912905006313043739957198059561531185782038507395160427617380814988530359165240512214023385006228965455023226179898560903004435340129611272965539102696197917244435423655182357955478189137830235480653907367790841664307559600854689860917063608471433836888551473546086954094696924544687837002764053914441834572515455387179586495542957754020085650279884782868783229751173419040193557892681251773255968280957582453994066785038279344106688753974373943421017478755475780561459655433284346092281755575975533340890755118720085277676185087652446245438030877069870993017031918832735873426935210715508102548117231674547615148996223075257333150475730387177850800401355442032665191183733405967998834747826028707734937020735703610620069890110477370854208480811703646322872746093530455455362257878068085947771280485928874647584280592087761700487895441554684646985060522971476504807450360547784899991770339373569643859265371248773079927350645137557010649963871690050673913550287508582531187112248097840925498264353348612541055044588349901255846612184448424345156928556216913281347758031201032670403749049207817538317048821413953873111038392853729624833968682686812018065132017975654660944251932805271797881976620419502904311856995808450013109355744594827825808719904233583708998818032249951590117512584361458808748990575651773841258995439379786804995364740475902132526638885870959226804348516092982662556312090874752926569592050631385492660294436270291698788998343414358076382267240478397127777436421300959787530776444419788775084752844581130897737257197095499567651166697250331730414653303353998424612314196646665968269792774909141639749427004888184647849942026558137078559467347803421573017749200124131093635134503620748884407538542676454972339618439053189301268617365020991466806874551538516901823901139171538234455185408062722093269250404841174568822553952839821725763444641385643469067424396358563783034612044562903950187293066213204088546300451461398395882181778027580971127533174074431561261784138417936821261617404459742261892091507147085829114925690169310037314565172270413379986743808089365992537177078624310274814627794985274025790938134464584225242736247206988566133003280718480806190729629971252734619055231022329538738244812769612945830984472527747675210018858435540999246394725345428699441636699780824062090985195491725835188761895903793228497953782153998680246589974315364374198391058814105694643911176865322992154490051080970466888119185543541106579438269080151659786441879311493070628759644623107612346434018758261651491296137531395145724281734714770732192109981344392139069286500758173813919124282215138012176146256335820729695559111024061334460390394151077554586878702258875291069920887781241457955107932215708431984494367973835014381631682479222387610714587591473727938738107300478571107871330355065152962441835513128097696174353509705008217531195289632024811192968964855930916401526637672416003037182630363464467688968728790022944043777651021722562021414611108426389264679639451399673273025140052287159131865435314926941746277704675537864838531085934065372487134095897047315734542384888206531345547860079281756462345159272355381555493382349490851943197558133686404162390241019119427678210086604042232543141086239875069083898479403439239365044578160754981723804074179002503306995627422857598626156160018730635297172314487789336161449939464696492638422395061865074422665207720674681651904998839007004800809456240287271564550535622159859197466538303878222946601369285909413566351648993932611389643203951795177054662086490928347952888732944442308388150173102461196465082864427900313830914368544640889683447262991925150571405299260684938164538510271431375861003374535976217412079735619523103370174451754447380712499612100811123839713965199508084180940508046408425439280796351716833346565697126318426210440186477282756506050210390275898956270624227824126841616855685573821315754805576637945938764876863390552293374834780768961079373657865414108825339467169907675949825878827443960891636928996729105072250943944914159454085672833228699022009445801306517615330489416683279261626922370572331721205686631433067599320309914542711235232629014620822809158702091994128546547022475029001157963174111173722939783258900634333190308997034275432611692878530593135796133926039775782340115909186512347344938689393936123004371331922836211409958490486747506028283403970006389371139271235770424144955111098081076995566816646921494957578746533898556870879629412456343763408341860709357259673129270477265629322796010698474642596335941551944100762109007560739573702975843194927134826947396502083088227556410671931238167035977925837512445896530852884431018062430075414535775611689023702574831651600090606765341549064006269836839991803456496941188235145620070400450477298258219126420842324876295719057373566829387572775539847548672896786215162582872739768053991430721749133836953168377036456719444387823539925506901691502856603856756403142030859447108352164701881588480400141068955280737284648350365571525963053828995544212826427068312403427741065400776372277715855794428515141038086637453032789434680573680625671487222141116671796801335594803287222488331988329838070096650613245963788432544450293667240759732355541482422374815691212804359347111514137692997097344366139561920278027859837102833143775403756162136535521399621404467439667484489450802999625027352851913312367236979844613764112521853294543235757028947296122237769888427326756425680119118016472567160209441833265724580537217502114308224225903938611740872463193751355690381983796490466998795869021686827673768100690107437755036989049308090736671594642085070759250382756475398098135315020185537368569796515599352462608041324687983982965044601892162378461113618664236191831367195936519533467495981326176482548227341750844854419423260542680415769674608078485200890076582163789287127073456009651598884623729724540961688176452223207526497251279332586267167343002970798518884877576629508807765624842055522546471791420104342129331850421816503888335935633020024328760869531843017284296230742805411814288839172127336435623082683043271385891216506565220792694653403507945288652104127576448628334817522838961815324910401110204080389408244966950034166716696161645538607055413466094469919596656123850470037209501782414377165098574445211098415705816400112938370119113811815486740267314229539455278878163277954573344461301049855991565880177692206380936050971369992148515729776269273464864427750323672638212458910415179082450432724402174313137472699020849286060180644528070709948317694194755502333911124460619817487485984520594731571607563043649868297270166588989011117939910560242721820361548348451878014129583052677586755355118793219908467672606706091523108089821322559358118335597404031767194882292696562101201064066450253694644546216869270266760745581117676771272839058341103132977475290511587796393596404281005342681338801878389113660757884785617055353305504740109637286825408307177434132032944524242490706347854924224529044808296073922137971753886824231884160278946237763488933487389436567371618557622617007039240305960240719213468706816404131848968228484644916051737390121749762363008500968812034189955932693897037153488559212859452867785005624958589692645238871026900460545007315230895377700358035070122632671927654054885010849206404515893427212946284311124510495537139344594664839856508348250827733677174707051433932386957870433274967431843108832291514798366708406975440167654251736506849896099764786959959467831485255745729566379965301596217017542772555405605214331027254397121048360140289639754601873280149441459044004704093677154514266485348969595676297387817896971229728092171842251237964503733304343994007807692415037964079202678510039656764516198102703289775352015950922630115630333915735585944191144217148159097561360875812634125054226971183374745981689080917007204157367012291942827171262097721559445064322786166352162974151176927466786319788378679754981237242166614136135357633338558672057818679954873147709098730447183653891189003391967054522401830582577416961531954059096573210095001833253090713011854841185246680541439861135662962696806458140669807237347715872548126914509005488371452002945714266304946813916445308727210902929993801608867114429762895705686532567695453476443388158153741553732014165118174801110886152469276757454103257142179369260266863969120461335700018541315627726508192092373127806734877349341689285503191866176540851825803054552944862696429975873770191531785429329177987499347057230732829548995295991116606851970679013833763320821761870089663527911754349745738926116215351066390576292234878340088429787611422838898679480174779067079747706571166493780732165438373465279846437867273931439083534075855643874312020004919356597549913637505246933439022971928479038790505020001734637535580475045859720315121655315931833482361187088508868877967026537918708395594228648425408395679817709482202154873102651893174013268310928167284981868142304845174912041256638638046829706527544095242606643899752915112725693591909684660660834997562907658129187473161689567441904210289687731416241796258171075663767740561669393249754355315112177326761659124487084977576686878904823513629018751020752445668588521495267060223001544845114495534041485180258099539853310317938501604101818504232100232034914581559987614384478007705990777963356480469801807521500004981692516515649536665292140081343641836021633581317204097807149269931721111093292914534333935235504196183337103627837448153319342185534596008847302761347211957320242139687715391291151294733858101722786272351167243129034120519787814103730909327838474802935100309087825448590385245487691078572219193185282622633848035144573723450710546746459542801023843763933275049376125997298950761375310147683946272256146070513376537354949692403517786774957742559316227087982608913441046654798109584854570657872168794956531620310317961726799919265296163159873925062893246763226593817212313641002547812377950034550850352608704590293330039955752319912709222923908637723256102077879486052717624011861667043876444361913258278319106837922231751895204770792619201476751967880370629792447716049820943196071503425922247468492543500397099584173324806353020837393393537012308778008076015932707336873066762981090985596223791931959618702756422599807404283280124570937862516511273420809981697150563920227113652824046217805793958345188773768674416360354481415026298212293162142390170171818150246361246746954619071857481025094165715783865357928172656735623096923144373626188174398091502157918444123286881694250848414847794594469581535188495979776221531546258588036933827063136423776067513777816861263887077842907641970468113626806177367118610818968884156774064547739523139024709430236306483998544133773003569003817518450067074762003308751031393658988087293089736832668209301910890026046787121657750586244306156905945125498815871802954401001169333084413488954490787767087354038467456632414052513584154434736208125056715107834835238731631341275817631200870799645208140613470341807463329829798758383083703644053855007763332401341214986910079334745673582378760044093276301429902639562146865467497778623982884665948860090471082599548914164658027302500379417403615131693791684850320141092343616833178577156442814520663458054423151952879810519522607890918750275972523825543957634534142295823460349495164755167753809171331775007825797426962337871938500229296909687002066139553441389373975092999373720910561159494908394310323290259107447768237694038192659414680843187874863368225528160993638721472308399052159408892289272873882658086494239848571143675193026996396148370388834018282889446896615676820385955084783326384848291353460498843303163473969618415632394468227320114666797407130016347922519254189255232604368697204598330808394988467756330357879106711688866127255224772085553901712318189381025600655734724120422892986397945435559512435623731439855791987962345422971759119069961701428880083021088153975234475221588650841141336333617355896100493419306823220421763669766369593816396509677416080274595480970986536712528247752240535274173485539438886836203273560306540739649645145575551483702265794581792142549506978493297980661295070287063398987100227326682298367905328490636093328877518330196413271247392599965814300402035616182462127883139854163665014910107051946451735038996516427334681322865699247652894667953855064558617019337369850970286170398601416405516794883439386830648005627975123245779587329235955437490567360587405197075087988621250465960132292188270268267470666983161690725291209726720101844373667317075689765131284367992990761842997659576433869979098658829124491610614218566947298853287902591970865931267040199723263958381386421883129032104313721046564666608226083200960683942253025913024930896544331986942669828816124063624652906937297265489322032831719813339931108279703636510004125926918547003815723845641200996275292987662485366593672398399719773671490574055353695576791170391959963244652396949287555241395452933627869161697139628756892090036179618755992003648243582526915864371357197017708760033789816986917162300282658355207824511492252888325387294789514538339308298250211460513674621854350968401600631115364549732812960721783431117174838584848795371746147651503689473365965168849106595025229219600451508926140157418741106657570846636276820642562635520321870490088010207607525442471726082225417522539045951421162572593015303296485317350088165780908814829719357535997434931665355374451680233641802358010066084668931329740065893705112023673375332802871849536137911473011364285982611795728727360148201946757054271836487686449694915499547108544147069965630290880715255202421236485992154050599145512654771555969115146717014242735445553200898280857707559287139620252027626523466341717681586663089958734717850483732509068496194456232028159389461507328771433960156726228160976326087928462227472163833068865398077519464465746991213897842322643520075920317950660353417007954125354021148403373953246353281685972944131666420954628263690654065856756853439948973824780963336958420315342303974245972380065392954808172446711601155808443468421251687025713480369183424656472189929885254146047160262588206534931885552270556416687305037666895612033229586008767551905510897576244539482344675385707877108901174980495184087015899346565934029164209566510412742666213980637662398888096073658558969496341325676100205409856945125356895584757277110479685612264990940645855412899459638160796141227320989780416352320560601336728202041924862396244834691662710961455906471306043042969905595419774618667610717899852404242552839399844015228122183160095264179376061318648657627521900313116676145767961983876862876883061979790538520365311210851698359602464025837140359265688636527232759411381861466407689772963174282090154702871106773202180116090357632738863033326041129821001559891966300097202741076213732263724467395618009856789476825391529250029762529503104001257200587899164073992739429876800748341882819324744998410298584364514840836347233362313350132989399144497160179710433074581438722108081614928068678368302603071786393164716576332654464299100814698148977396105103968435537557837292461844883734215503025133232035232404305833060120581472610465170137491600879613031135124396294476873994024804316271954117009798767897124834476395887860081693347776307916279757978635924293396229324061652157404258407449280215788434906950269594643201243437259566897031803928830714729961658474386545580961930479667025725815349397376777792219462940841907414887278104986222523316486923600356552757141211851048858510890449773346220025013059455202194886743078874557441377334404465634347464856885192541841681803545592761789341578765489464346955155967265948079304736858786667797931557118005638181543524606639744178585388452805433088177795119524263437484308560107499856009858032550183292149099377019860552785043213428178898730748285327852846581894633854176336500834876923158116951616980078896531879152356178725533021720627485997934215510622980830578828887956054622465243901089934252714003740525672130370079778576163551668314987878579823010856555446008604155381615433801353449557315134408249877034857621436063997001669608422527434838045174231857761485130492699505941625452418994162773622913339876743648486258981701925953931592765093902635085492722559987571707511600282463945221713716226998649179286394979619195302082653486082875746154124454514455714763205594392084990091986282867657416314306005712701138978775399545037152875168857103525666767216893782085355736362818025077626724639921229529271137716382186905180835240293101268125262630425171133304430585354009150171816644188470472201667374443454768899791573817526772497681648525199516341826974898997051472223970472342070958014936538732287764143885471404590936879527686229534103061353419972663863900374059911716235158279690011639429126383780208495034218491064656704036999377528594674626877759228334737934797196348495484409405144025035568467717387688563324448922766520243744192031254372479061373302212643509435613760119720997839985255922585539957114193502331942876872662146292353710704989641740994232033042189780820184439554002894521245353010769599853342492958906408088792305510868179572012370542485807057148159774163373138842593482005359812966110353931557854252349637586788683146294828727449492250344369073859595371411129129007944808743632191584213229598421020411205033188608452712968028809160615595358652755812229405116343732194305141803032754883614155468130222641559305599185897668860038067049606881146682379486571384399042032651479424972445107453897802589873174567060517410774946121972042264714889402991363134865864299149219232109512100137894222558858419133255852505738769027175135786327716968123166372988002508457805391858504558427338015567671706349545875103267856707076893768092014082703795628262648599957313995744243976245772285233441913721991684997269707231630716443470944881672443452000268586622737235374594877589779313069991687654714898125690878276322105173056854791083009276321650252458065422573993458261607331101159037677289223867851238064810598931733015699389195122087468495947103955901863628947662514281433887091021847627062637359681211958555366996991593401434933073491378267969730300969411082809010393892763948016476259861114074556279740583303956526941468556160394710733527257433571702191220921904140575619644439088093682558453127520894288658798795502010630409825150519944847298618455282379456578768567036443411360871790854556442007831701023418857903752879665481142485292081955381214460084678885119093851525350892216505568963303802870721440615535715181567902376820588978702589750760075728348879893565172514102796700590576060871885789490856882668892629208043305192529865553007500795864829838439304563821924291934846600579274775711214200298596623289613041648673298438498242687979206457370199621409919096673730272799669485811028913905549536417348629275175255836632813747046875005442823873470180631077230712182709394609458528293162828305361457259036608288364443728414123534976945748163665324385614791749348985128943212715946083390010275270515532137307024219827035371374932313952604761069192134835565310248606695764673740120776836441675065884629877750350023215514616576508568764964204952786980573900540432198417967514635417421383836101170076765604080707038528191742596956394463515597081806765405206079872695312208690479770102891840537690666639463000419900502145487700064367025544715285566540911909805847281856587750254550449606157837704442719917441559989046757727043777310859481684422293585998718141722120089112659304277679337963213514432526339072556769856892965007658286513444812996607408832210892233804785110886914676986971503730957449447248769828080409810194644397872245965945880442867077728159738753309614562884528428638991653357228025480839373943549849114814576840623763591896570712317489866098691466030231677288052988805834967802818718458061310217393095226508372543653035387904977460802033205519282959589791673717134658646215348319211994246913840159562197129861175294011916053344163259937426977741241651195608927515647698938318272933155569282130189805961233959122117682488874120047709518765761391544372735663319924578691097565664071594787745335125198565100634395263233629331512382339221903815059225348782014501217022439608833882798609240969430928141628167836191965033833146421708614038870133970961377475357538957088798635358519365762581283072403320882919670615635583871299749416647082691797544316589107066635253339159358896882803115449825269966439247857821360738086455608259834119048249819824698068342078374871243898376945145572324486276368827777788606465447619904026507561958793727653352522289154774911337965484557507367101670135369925884613444694238782968795659855356251325650530211301994967150688107769978980281470675759507140610066990496298926976006086545837376615355591769058872810660900041647954363706758048113082185834321276537025554366855778751502741900486859866756234683798128577225794188244829589223816362188886346347462772630798209180222217246824112956373972656100422126889792219066001859158500545641831542565302081333414193583636592868584832699493696933114015997326280340712103428597472415852255000731176568659705993918513765761886542671683143652153071543480831674406434945858698078347590169275961516759449653693969139845854647253469321302469668076282076831626146068155074222021147302138338912170283453014950972667552295726296764670355953329761508404700158280944986821473384782334132575817739912063869425248035160899574980180677138113335005132247129994237517779920325775188090418275331131712452460586526097949043371576132435566268624948725113921720738722374860589989062198079517870383239394338955037888759694637000879143834922205960283520069336575209695916226488157247553003674670299025408710462265735140316412919972370203269996861249065945081694457548723347316765125643061767532839707363759412252288966017287336878855294640909030701340324361090048312354081720910034173919101758417610186671744950577320057413149290536074828358474045058765841122932208211497145218706365576803500068548403233340317602313049256024812482793117969650950863557794435243586655635892152246064389653544691711099265899428038841905399756789835572191923556011207816275589560764681408572327810766512587414147481123065383756550188212129180372612113908435504428277373730176199566860564988797303241805143283204111766744427937674739433471138715831766797439798465366289985583062934715646119150567456034657490015730798923506306536869980556319794652372520741464535385720106308566930495802995915200413366631546444553386821497434292081260506377243613217842258505836542604732989234428936943145255628997515893569642136974750001372496157016952149024647597795836376757783903408547847219908119018373637644656758886185719603276960825861692543548143080502893396812628297676368901944483653079264611262673047863892746553020605806185347269471396394029655330770713155596062593872787954190227409521872639117091931113730654154500050221511191696361127080062661540396255217889838228186281457454605099678869021728640825512742640131257206485893688149285379754562675663934370544265866384355010196489446462466610159510852242437747460205122680256726304694626255366289496477749894576271187794203802954261508694156640599817420253166677487086073308834609805681693007036093897079947177393675103996028997662322596239187391967273575379434873461551699050835015837415966688061329057528118902503924791599601214035264111770130563776441300518508038353867011894520259695481859587653703331021185865804942329636982954151334778548284258047137115040733698332155191789875713672014476210084782439623834090350710995357915470305871218792196779049029997865470095139390903924589058619340956079800085997628069061146671773201671125809851813492368766580463982794672793513451748054431703186218245524294279610042816137245956262254338101292159472059894647454478634893340000427899950522852257006214945170836393155852280460464853813823444350809522492773041812611394734063827108894363266298775385763434349018773752740703437879013089244555245122844165554291643278256745000816555166443742860254970637339194703332377196044136246204766575792056239478387499164992141727116032164856856599264027984127272067069445477501738498252800197064646882708158222506701004945813341050291755634847233650577096696123701994261770200163462268235441552186694760915161156630473780933918280737189611460895331627194967417544744849315340943829772230733767455688743623808825509043791741594836847644267473319369295001029371646146399176650089208829661752138096521403170518859672404426212022780596287950991966144473275888261005242114677058077720590594710862112100646656376504206251961500359171620010232183565717265591869336211143528472427755937070591644192920909899012803909516520622255710585954463353921262801853905486473481690948623727217631406117833846653218925075134046633276337271463510019328695408911355094526974458894079731630099799949678452329332567160384254399245482740578456268095826301980468208585339465098544124716913962826358003364770662670828195481518988383407689919962377716542872753801684627856640499662834132223920873540324628708625653732222734041644529783319381882215307501650889396387898473631762364055135937920724446326394574661746984073904200046022102696366171671027406410609706300093760269719526743444469440353617955329397055463139378444086254556194375471205609313520896332562087989104877443136497296290523806790604208689259336111811107157882657801888512979341507086170405664552734929328068403678687686067402612291399033540834406204388343901853215202301397252855499347319028751170504035033204620470685733564144038072018324453724472307206931768174936570277016619417847990074889098119022126998553821312299662277751243964731208375098880872327559511569097227084691893745391651940615009521095731081369198548789487582747303761026898621333524728186489182043215322334641409828205003994750096821802970224265869535325406508794846932837531237254126934230147036463236326568524183466492385048214085784559019355374119878956491418883633911546507890721100206512881510404299214036115433358375208184112735112447096958187100755023611722737588607708630744108412792512112483121814555306384492675885113417871767720448475249065451437263240534158720898512540559979424009548988508519440540314580809727762289731585957950749792252349170556307497541358479528457096377950090300688266876289273856107186546551338077250849856734473106964742499358846706980843834888467296534943771121656043347248483561064997380675481680955705049388229376780569075937692365312634358227859531224150474074198788928155536631912218244305886126983815121633926486291176239076716560976511441035156333402218010458704911277924607948819925968624172163801116139487377347569452531404685279170802790372601985845667044165130140191752420925028745535742945394252287914600806804032336568836123701401313634073126676925380368236703905280469911171507810115621974791008320866291007799187878609785456221425567051521022543415141985677024811774159839840633163617948309046435781478813571881710463515246737081245355118441261122195977244998097881399379449916640108919536681905453214850686489804178035966617313654005903923309109831870203470424615441144420558550495576255256841336663281312526369580189666569156675011798072099334539599049399107948588895748610218809573121291948569597395206907027726349616653800574358352742916606942914150302187965829989244205710847963984415999107807268225917491575962782793508062498447614919412956627797890111198991983334986798931251836007427264570071650647102795223371538303344036518019763768986928407232823651738792524674457703970868582556606029439536328659075920703418619761526360090129979320690930795212086681699442113927312832140312168807457146726535190886969072543985349387363512187881202291726778246680621669783888924285925237564313283116308314784299384233686381858612312137311405057295280835319208878806152918775449901452860652566808336964504239716640849683114733988941971596744724298874157555733378377651960529849958997736089167372400433528986899245993377039845997212005424303039885507103657364217644796870999392043655066210738825435576470826772038196337336303938009182311639088104883375638554941434481884118918497398914633343094521606617906319099810484578983987069368581557770324774333266755900192251204567332514588035434821320966805051921591858586647755307793663722459796908630799550723661329770434655008387072904358111194819236644346150370378952276746744791310677422924852652431756524937952594255557880048888470631556384356988804460438446453895285361613287861368589562283955705308137297557070770065386620058451238776141409686095082686096334508652349282937297820201538427490902327915957336422645028480818985140842791606516951956451582119716442750267672539436176929540493084845226975417277811912052890737275473517296058500833509873275848621064369026735399701427322147563586582184143561551111838876686697111491887391450324838927594569601402864670658405109559261712048200230706881472519019324195017241220166556681097252398374701924138107004536968874392282936330037154476301418558874638312806651629345225173085022291187612746070084235379529168040937560647909861038699996899490296091036532209027360489234141972547509751607328701183421429765917217832867512375668966942454914381002573620672245269958283978975035014910626237101646204809364835989501855017054852881539618459640666269583213130222155777247272314540806897998368280054931968516236105311232820861353210873410595668954098157728405894723206168084440029930292598420436114346426662423974402351239731121065952335266547648172543322541965860794638268469496343339579354868655574162571557870271774369398705799847702468556255706502555255048806294961489806821935625901411019702960609624516445408320493759233132260732685240231321121531730678634886117452815205516551963499703226929465427323773788026511669459189943774560492523001606602908488484846217626089858572547942781693286601864410595890319503814676047313133011618086460865695065285942686902045708493488963747960210563547333593748940801482607375619458443329504229560986809903186714620502700887792176397076859147542953381136814839616605269115584931317511065953612325431835713129574681052668508918274832422076440229476404518964864086291719751922014372846441474037111853089008843025459403733978834424183621043654943166322274986318894298669873166351697186331003455684230893516952790680843478715817382101676625722116652946371694772382418979652853159809646485153416130283265971623479784606500144528075185534641861440298242725220233240551658831175961797128500813606692233746350410116131619530701959085943851127543780097007427847349786382805574474392783850049634696936094253135479835449569517218703165888971583760293572218677865820112688193596454450928618723433059468890677361522149245308099696358967463638128278639058815531484081043302000839279155138149098747213424240612433831494729804206617910193641326824698792216137340296373940886796830142814725604470233874444643344602880693097343542905610590687649620933953262951940996818119703469659901390444355764863151723356749263363721587786822490605557024925114059941494787569502783849218207298936123412956490425384984547637582674360760317758718691600094996027172911525487677187753958906951364597451920828856201249031031948909105818526022189287573196420875754750504214376947285658526728325380123316965589758716298361255812663338428819650010071230326052790244962437372399158855528209741417145150820363189808076015370736723531881767320384438939652219641726319259592121973637771841866286047248753856117231476263751084796613479799641124421476802544719314002899234166336289491825835283974268426097963108102990012975127616548304008139054008304622819203936017039205689883102252533304161650149949964638299852465705915678941535848356383295885068132333614579504877033760959486432002875756159099920710069968602188631475871078934909060646723314628433659027284917882532837457720542605514547042419479273763479410402691430569057623674243907434858325531569662086888237735001481484006216750955910103034191204096650642936812177955034246976900663588499984169430649466817738258593314890130493836910439604631020562484822580753181582652989232906906108664770569637513109920953521041535967072168871826588910045083030127564599300151826279419145763706776719474885064178307115795160413161529663506484948748477043971164753906621147165352554380336354995800746174533904377349763155252561714211073060622159426302567877784037361417197818475850324103333687429310552190383299170934018408763171481858915154569613412214162501093950745385905400771916165872139361984046840300625851341287380653790647218607706975444812003001550485602492579225149030199518846117822794195654351347563954571602683172596514828252154954311152679845796413092691669016897091315597594532547389408463347474581473081567783124226833320160945055438455515964165106036256687092818064117883752672973609210083424135588369988748276912810300909257934719748633431624224560701706002986051392840034410472718967116071303743940843470506834072497728571010658621340531876188020250281659409829749959802673544009941135134360618209055371022215307161027439203254786166066473862168348591246921606295957776140654241686071746984732870032247936121218495465518790597163353865205701047682689886888091496560188290082165107450754869638120348726112769748601847787392397136457012333973003148778428549580092831229358892021660122215271297179813317080342575351713597765688810965831254975128610170096444618197873560321750542814978580912708768711986081754423936752082094808728125394457440374790763770556527044625891224889144958171685456409426254945283170414673201155622920876640075177373974189358808733081661123264474392023578434688567321974344970431334359559005745836699500233791777116563083084259438530615915643918087204535095395629429448110116816890064325618666808312917969163405036660116141006934716300018392156403083110422311675215268680228417388273255603804912355929225975973276929306315526367865282454113728697036668042940940720513451508228952252984687382819120774476355073101943118077977229362512978643104644561485789328917049823547485085388465716530095083067872996947613226635965928944907252583143677717034552688845519011907395630234406874772063524113923696111892976587001913492103266835765302980631535133924488820879133595345471481237090585373858446294352454013737612960035382059918553273567700194366326908658728090535794736126117562457458747747174328480933641115744330188859721958047495057708275677920068583677937856972140702034809642185835075442404295555442234755290613538647975532591233912404796779335315455575425622343933675544169889084066877737250926076212021812995304743216791116959054938209062452120734691122754828846946560360098175942044006975330444175025939637532464257369467831897991673118427171936828602150945768838051383201258596230173313723516797611713924235337816391969172534845637828283419301231329100209207447083639793711602876352547559810445661290702112568306563997110265762077382313839512014944677889855905718549073351025092112246245385660366722511819101856963432713289725115574700525640554629353402879810587487865626146995934557732651300648217068779596532801621712046841825939995699992952133188372062145526650514295828731113584100317285888460294473372702069855186787583419347322254622113327140877396838411359492203424448967772378882669321646325035887400393339213102761680934650226128150988640437472428755794529269035151389201859967500500299122189186536595568069668826559775079741745791377928354180698978066166480233677479954322827545338526140419378199742405260709221206919519943143798657562977131733328598188367966226449115802035120527910052514980564979992797904128629843419674494438015223596384680156568684830644148893525619139215491208847358563356896155364169497942826611312288559908232239312986227279404048192114583900616832065696379266595831182699232870911355281979880009742239729218621731322523932878640214813446649246786129571491051466791995167113657102911326326188725809850277600566869845318195320849243644478802287759777315604465188985399718486094572003533350629037347581795540020773675142430585191518597121609786306493811982931351208367795243519074766064748382641944197802556542321941307310253717317973600959586030512227084266040390593590193900313533854065802467537447964831443213097147003910738765924343199961184475496881038777810220589646088114482151516471158619298825220149197924885104282035830542569976096414262695953133539309525693506463575352975534888404652026678685570126778093052911162741210918987311758527687295457308052951029817140385565972289505744094036253841919947879725875884634011533140207273272180195915250252539822253766509094508991739187378905564995053211218811573029876458778947562583510336885029282345086452551032916876628923632421354334184242400973196047599655294913194812918977763767049663110949554019097176433730379267369701359062968835043531741781911023858859454874200990522570216849288268881437164624202454229986628554690132518388928139709629315280758110108392053851871930928805447541578599989952714783774064045854329447583694343064032183337895954353612337078900132936076701887693754994435301322863052175127372442280896289753708183023782686546067976371043253256776504532710681886858914859516292705111173908456087311244357792909912309144523811804916941527002537847060904278327944925424362040873901034289593142952708920687813529746161811498277758489805791967524170320430725215331391604154071798438891203289423634388027127962785303569760212585535399616017885090688593780553974615023892296815125358835199294393682051734393224179003956978045903300444658168100289544048566329674309046850611755638356719062311009139304546871870111615068954408574536058997465419310601422454379320444658886642720892658449905471287437547562575567141275467649635993289768286892366241169230104496579536162359838018198512489682570156577980280326830614558511015441115702290544025257855955611823679629034597089098636530221945084415454316276688924506513689494272936786676781682985350556477396799440911951943799898344395843674274807902405884634147739274813835475768977108281464672666655423936589012712737353831289902686267544341080326821810698420075713355698826858133064399700152012886943854991744027829646356583123085755860024636405400228018676994445808458103696268910323269448336378985216813068241708537073909295776793953089552105469296041339616826603527573512126896373388876951422697208907317057854188013318670949194584892557986243881855034829899153714577953096760069669158173411247560913711834981991781148859076001183086785562833705614247457247332194895522759720411850392056359857301941251141846264788789448478928221878974998508646719217836725134415508010014372338370109015049610716664595495328308147410585641047110108934697790827538067519779384534015024769281618752473082827123776507580070781585682057267550849622261582054611333804935419846352651942388063817702506393419175902549718067709782424626739396076962425989657083137341637618721063066047129042377565250822862085060166481853644515965471981621331051683619967886773053306357719996962413742665766960821604057763284314539948773848652987347187037612340774238530465995763833227479304269146546598603341086247607571443554210739381774590994966809291223456100098696439644032048439875850334334601504285636779666101327264307816358214976712008113477991240972838176826121440666600629907880294943711323192010958695877129997893058484632111952329695190284841113698049838904089845420279832413406700308932946958032525163238511563741043677689248416117353475568395273003917150344091717884337152261537866225239258103503615609108461942808936990501273802417467100045956697961094326874978757455850040244570770394950259374704976409058308522693507022615017407262639057423033068106148560033412321844478146063923689750046785630021901647760305052456138315520993548656318530708597492993078186812453630108976298637939600004299593186705028542070930993338542042118446165636419874519285972581824729926873596576611223657315030678958619072388945500129266096135592549240338977887444112775103294154900450544281679975984078844092998934464254268417816512070792279096580658908866966769550111275115938052666884582376664841615200724627958877212577517114672086296619574451973050722529451728555594819990643597115435425432977235202964168448425637532995984215080817035592400425683325696572926262720925272558426647943767686569869714455524495455711945372715802312957369302179551425425544831808588108380234747566350087487887596094589369705192416972571572597225999958418644178741175021040708102214944958982059146113634539011839102729159085904598980616987595913451931958926835183588529297830392040874315862638333124818866902815341889492672312388458108979457521902201089145747144818709451290528813095049413581313306440136242264003171384710303408256537741311121096488932397151899627868753498446893087360310707589934441633408735417139714233532927542608942185474666477227202366224339924780250122195654460927214053112111090757799669303903576194614394563058312094424399959067995525767022531855689465837945391981015927423454536132901845801287884000855944211079335947859578059011052596941413152489840913946120025852143510602926777544520168917618909227875058702087559846423073032981082653622029811053578774753331268995119636047340142055242863847119593636349209929727783436080063968361503263096903074579991355598350647717948618784973285907334401946584085294322982603810517422487992543384273389025806812938600807807732793840911608381835037970825952314879164226701165002464468411540946527006623710758023741792200065967781020546493816671793996335458736719864612336365976648936692993206703844942018182090429595145808983357615462346627743281223250485504052964229415825721827281089938671498061513439513599779889303348520359877197741288257202620801053947891391573274797773936170195469356471824711742112199914086482328830649621665955076369468452305992640310233957628159435676730250717611916832488036138348915874325816460670159827800096669254781731009526668892567112333770933728928740690381683716412084282603816209010185697520020660841074227038238857827499104354234141292635784634138522389764784283253905818964272751421444045568806179077801501847804150642141053515219013218213777853676685895301366259066210749283379955871903929727523112981606770013397292254438875879458093408723409868347606191454176253641897795866221044431150672523078392224607764560807427947398061746055749950150116450384414261706729657751173722986001205426354777600549674095080329256955197169828638510893112372440122306103689689585729785831993359961729642845741400045448087907364098526888246190784143084714003108804647078081494754070938929631687472842864477060822376252309664491799334271465987266921585555368745768462220378417458951649118054448282691139885248271266730727828351439114640013627535147623140501609294462327919628436667072502347052087322204491536747072611911514877575623719827322952375015571092307071770080022106872496862104387762790768213573375190346272702298814275805785020165276928092543964568526723404116114622372300068486050372970394886766231202542496646437253652586424876580221738500078001001869925473838059599063391230030812660148192320303524937014638594040002167037187592234370572718521226238348736404996519242879126340852833783308755886660370351324723245283696774793857612275511538634591227747479254289496981801519540700336113572141629381778485639388024303254674160264958613302886254266767122442801444951016556542828362039047094112149802765254552554953510345895804828448396451962920177901258859113493145044111721682949504955730959470498667730080358320373610469115472627006495285448923546854519484318395160041556182385693244122558741630699190671752195722369286719744822168376204787212869618558960037229171485904801125184573362041795784294695866404568316362633255630658150787608100719709037818841300819465484140641536879697313821833758970201669168593572094109188975655484349598501409151711947066556677648367035051905394878446411487866295714790600021738960066531806815452575145780987413644845819746131337858928437628492784790463352159602185295313660495155945552573132895742354861671911427593816594206860538296109909225024670473864025387445921660500274959427751598280186830323021890435646060059252073264514108155518805587208086225943407427655742385492506503976417723855527104252062456421577574296455919046370600030652815749054201252696875239633311615728400019841152203891102766316102597739292095334869811682586451312602525352809316019749313455145689179898067862872576409335719872988294300398417710197203367488215078424055704055530925178326575470767803616182900985187485535751313951271215713057965073844190398637411596083749075425010301552339792088726261699808738272145024630604260432149276797285783986252650379814009254344007557078678016214869263098924859896299214696414912698566486269940800350015435513044105139741400813266389083505508270409321950094462570320942046751310769515987415953896937274547154596174983724505207939564353754336413944661337737293857953632221306423328933722980247361436830472557474115834950290490946624976478955170314332036961002807018132225403250176040620180152203569267576709335500572526470962060418709121954749123972997046364146375685399672664887851947491971823616487205192004203357794158757720100313562098495459948420548916334007111537531376608034048575965827655572591032012256387961544474756855929230250436804990806175062038042093504622882091343116309467080226135800036552511918135005428576022618943131472094711151565368351484824063262557886840815199637023430058711204550267211125164888809571006109587404138670456245585292001279330381005026692961437461783229306663854352895595117135661059502094455220043492939880719341623016533208295732624057673892079293585607251974726072030378685434120061867318685647563002223454228627446556999426253089131710579709882983608475517372629652362918101330797220994949161276865434102316403063247338217461874839741652037795260117750886323068419968230816054652784793970766776932371914045881854420047778133221777150939768338511344380261158291856216229203502295164850132283991749054537386443041287244691072579877507451915036978784589663866655630444384110127588046064679551927117709843495655564407031723598606864091273492227045392336686545479285529394496697129585854294268179047500643157605260892981321797531938273809250362129914336800953188189456652422158868134145401500649538664840102173651910892831889574043820685376938878725266156381679965292281118463302228492440345793574730660931918797165096544912181908158367474067803701587624156376437178130425256521520587512448306586008934594878621031798738595838357167979589351607137237988308906102886196086846081692868947017324741482057485231356746275568402301269986382543311189577031828704598560815013375154712154531584517570802283403122494553579008795172768435446726123831094998481199638307714075237001197962812751504169206870776817112599473781239607493904512460183826407040907842687629872547497506435817349136448168139853016523551964457189585752303027300809294844976980538782329862119433450089974543966877641955100160566422767835324297647245673876136561756820216352217508482454432524379916724192496140906111318102414427875355820375798852875855263695099960343206467882660471282568061127883328270194547731845649541235144257289804344690916545466055257914006188922315668733261539519315246708002212663600991389835182200745577134284960230116830322650909185747147846149630748581120399982683319689362219009297823614458235034264896914563933037366962530317817814031680072052776510360553698407487615111120048350503614439924542074529807322298403402389687255160671003186389508006953034597850045472614718828185771000162960044711552307900352517815957284684477867551913808384303423703147764229131082601725678082763593529094963061534944571233565669479157290109708090303817421979301075301644002312483610282271205205518741490306286995928951115637183042060250086576379913271860104270216048878692753697129250282617255534566845879622501275218693983500458306895377085416729452879813429031424623960180585735897587242760476019269487271981258344767210347191796353521360148696935905617766550052212620059738228065512951179594424420180828499533789002770059514567612245149516343392408286978903623763778995012625848374661556066687864057288760973986862411106427383920390116036218708991649708254087541837929415947454818626175454754524926108391452405111004209229957202726841788528209100092619546746777703471500636602400699759393942651693286951521357552847585526941487625298732152667643339694234452941360730874872429790384204957960625255856901131698087442935541187786919826463849040362915979852105442641081266149677711670819566749009511549993080684855405520350317181282183391858926808671215600774866517799838539480930619847635640781603185281143590116487498793430573473239699701426677131438621927908654791992133008328220029858702333323467199365393532491345731482835466757359555121751342944293599371381623884489392988261543388395282850897680140148374849221994356641364202501912461277930015083076571182542818395170290156988525830695109588077046585581075823377843131301441524434792019937420020943020133212389264581473729483726395014943200664980433380880655162042384727757564250830563667063709735442442958247512967606409664537996500991057306361897455988755522846377564671149947383382271912702829636362103939910207330072211504866964012106028241699233172152212049403967920228487816761655265849190406499343520046988939140347860600495490110076928956387481457744233790527252831727262309306523741533096940569726630908428294990252370509687432368053950763703521236415343396839401255654842556342236433855568449711609016620084636525237234253713363497161319444232342896519899520060940945701487969321020488517323695895598331039394848218387528017741340773830877930516710929060994081074548190853306461655851611571933288493867973512419374034873889931219607712045573024784714826527556335915667773386928997124438600161663335163251221140134409913578205289963171671574980935163545514561442214670812410229373304090966703475537419954800430664744782320577472679967906513646060994850922755696331005241750672338861211364756361262727942749052881641118465357711441711726056589240962876922083612802995905844311427775036410929727220819231882572505370337518233351006375510581291375675700784805411111445690398138919494917936667624204715519121301021537215041183082412793301380299611444439651710978995175583375733654637803759740714536162639740093517125479837714904926286007664622017303791504308602214209473354944163533780859379164154937093238966174902926289823424689597574365911639952152597621686321876799985950370112612629715327652099388896080257376033077323120583921156455302239103232570170308775522303590480136923147520606082002658834904862938360634072738716612745829997559830075429617958618832269772653019754445713168366257796928085530184839850778624183413828923771024842552166408639203202889214992017352939544936089487993926309006938683512668030896572741777894038215822285178327898789126471926761054849947697293711525391385399451162540328742991591886950237144730145388373861307537577641341453570423238704012689873259980664629811010727832910343484917809409158622300186419259949693671534810755813861559963231794666996265626012756705992224759990679139981721380135292525961374236908910362981393230219801907148058539603206235795705353091114189907820221443874676488164927028872558327471339660752638967571407965910230458715572958897187821898818290407844489495144808353958345758119965452148745698920484203064657689046113489350356992265217397385874857560626043391034336381868710647391220153500123534355009421386742711622355459424349116471239200609640614978638171048080159677433439696684731902487128732379051028298065953525719659375479880211125798843409191307804235821229898146353465225670709698168909059608800159305196563920683453239148111231450565272510731899781516276712916142399736089250312362378064274738506233651690147194681601506685209710702924694438177506201197275345329388123213919334752144832221218450201146460846868710538616624452012830051955508740216093470617825337114291094928304365613199092825349255425274089273757476195642722852970009606606018638168533806837649703098050161765958626254109800925887342981305437826771152417814820512428229418730745941583852385006591935405768264817842899033068521917957018099453641420327260618159753966763317050147695217863391360587768361563469275589458432780340363944062252508021869008852994159537227351129199500418784967139446629732931059625902551754570630335807693037927228663111463480468500181223746473309480087318178781354313703938480786566472535423267912243979008236274166374426394956238553440079723310450214364412603255810857154243169661143687672751671773295242792378795868292378621993086059123725593869647099112616759771019544741009108169084943256596764979149680778346184503317306646311108795462740523303319521349468978662891677516556132781200840088439663077159479273264536821684566656876506822230394636345574445460828104777560765050670175759703252219850350516137278976791453237266698769332292979035261085932430090984183111031288826938288083363283821973490692986730384637427975556320126231956560953698748514884831425540684880694711732224854256337372063040965933781579724734541507420545752579482283094602163351597952419925829817112337793889421879484712681164044225271377225374806143993495593152784613681672205003689473256268176292266182644071656569185238437956118956319412585229601443958292063634531977005769101028767489732883235997285527302967671490941595270992109283363142157808191167868938902006556307783860965697566102065578568313660575050442565988408911124101012846798433805331354163828689783759264604266455169108816311686407345097381823305383920177670407543118489544760967618960671145557759528332129489960508236211980278904895674572005124394600995390047137196681530956213698361903200381447612734810513709981411758345432683098413623576084394641590961249493565452813647443663567952147311356542571484228258867038675655175202521375121492079184242576221324137722332469287473432181925801492624570217668951052730270276977477714620023264426555891897176189309577643527351035057172868637819026011594675753910527816240374219907478070860528294183591191665429548574153237885252126155743929899940688630905461251120575861034347938087308376068706079875170131408643227865373608415073149954356217678884882429115044462834307126579535565126113646745683012247882601707030868767590729275761059918301483061846255263979107810140759985377243364414562752835970605155336801693483494522354054245894313905339262380395098403925835502659984383891376887951268412583328168269115057865910317381795375899206911653374265329004629693444017918427266275589744594697429368635027839017279870604827310759324287671193817441302833519183298131866552910055618012892174010235017184021627616625378750955321698943105800359844488125158985634867562566046706908675160874451567801531949211839175601824829183959628611111882683703044787112144267591197603259807260350236582937222532579201641049692760971402587811633754919215393704384477173131569533363301257270369476113600108247517882114819026151434166123819509745749922849220544060188617576478653841170479551239841085010198994275554702890212838391403389388240548130239395743351309457322533035850049803487343555281220229539671573943086126688029898061934707216304556815738986504713369949670610625747469182434265976680188203253524034540793944815744817775337496196798695195949570443764449604050124133298361138458718160127205017568801418146726329020881983755725643667344088245303140012788877636783739723074389337338080206765402467538368755903627064004668937289510771642182461992751008438980888674481098921839542848200517593907155105850698043409481213125200048185681569874171090797123380350314729237135784035212043442071685271977296961616781905710097764793345523528667084237072726829259080624848151433320660495701920130409699703108270741525747699422105933081186703909718988676977784228134142175075109074015506145866297974470949566864390541876622046531715891782585759336446697926718147771914157318565580529287529880828251977460679684665571196924646064368513576591468577200558308267011746554930916016420502994797145117782267882867888232348735559609215994143044575621218729384704148202115612944174475821651828951949502953882917362289739120640266825713162948983404431036578720205720110434460808261817467360138947152787468839557551632403705535747622241828604291059475467742213838199351788866604517468300918750367278741569784336646472762432240137854979574544183467680091065844140402712057759089394267931652924018509540880025634893031044394195887605170975653487057050191203271238160833204766500509550496637487409771405884751325467977217109205257591968686165732594072154883931312190306148895301993979321992754286837937189985129996106527928261540563396300420268847514802427194987612982224585494181141936588484035943478750109595347940659109333041574116924617120758186156114629782138007036110841920813438671146899759403808328909810935182003682497189683187331349601935878488129164966573002231443506869076766755422447860964485590718088135487740762890741790051326957026236968326870971372613636381441134927028754747557101396874762164323908300256693177526564875336537033223108580740190096898099126788620472935293992323148081777133995273304925214897421609141517716574518339305010003283469484969329733985226779704240718508759065234478409281078195302630959351737357687501999755183395924323291537972658259894127680143954354673636236098033515027710027219864398871213225638903984381906990228381753759620138129603227423715013989256568291598998754124964425117612048922741262211332572087022378785972482534678637511999467547184808899844047863192132659643135295120771102418388984757785911848774437917736063732204647437006686328612008418448315043755037264168058577337814002968745777538177443563219875824443905016078948742875275959306628773474724088450967541706241973281169392333585084261909744762514762153125580892670546346970711334826728063994058431015948337678717292633499602928305277546104218812423810184267892464685004367720904535340472788335752357171900995478747644343118015718957041799934327376331060738395583434359906221501115239951947226233937282799425820078150550080439606476334831815355746664156014741255814602801501741250464832760099492869357175411338313293515316612408504201254741574413986210358386069012519903809300348060968605687330359416623484978117517053832282736215062995369628111241979023508934582770292115928404309345211530862283802705719582884111062390584687527377103031550483214881545393094122280718959761561021592271299496583163933728264748118512333245113562153003133311230951689864938502795250412322087879079751149790576584098148684269828031331485827910445456492461917948824250018482425565982967285103379257135804758768724389836767944188611377709434949235832596099264458620863840709644235542146080844457195079176820543791871604714613772890423453028507841670865376676335178992225132987402089779643969514830835909989827093057852216494986227213039693698651200562219225594629630825435689122791086254625695949352053777910692234807549318906378725113498358710031872014603503551171135308853096508205793346924905140072005701039915460039897458908821526748284420319494739732417067495471012178403392681134970312920537535157524966775016350503464826992545321362901533052329540325751618414380838153374027634925397872789374558458243102072711189525551457148064079162524787122517137648924591390922838726457252541178130453287410728743142241852282188270110791428290423084655476532677926145970815953257508080094751991593315592217681354919760418616715777440282953970996045042398969705870101077518428259812534085986984731181344855281036251133096204314731048733252079169081373902283791686026735292230510166786512793774297262309222776015212598169180126030153568224671232947185964112532259946553491355385967523406892793585931356034880189948362355151184429036452155549768620641330476197273275413775814806011396639020152558684950417038025322450766424034749042307487229838827121513349027424584773985875035827285073773755348992493242297985444461080554338517514323258476603353826847964316863382771053312695865676390295645666923444072757606215130355202113179288492558379496820134592442790299488263305774413303711004055165448096148644012000583140330575062675293606256343331332833496887155032851898998763210571436083859026552739698159677391744888828105609876106431830524720617245558538474889236958584104520278865091570234737439447477271663256390601263485681487572412154920452843047615114150810283115689930651694901079857430692032745390244227685182518203786193998070419315396382314704401893542920316625431979803892608283701888589001146889989364010373889969879073039473212698575871431370290121990762100498558903919254038661410504723066582985209821641191274695752114565212175108080144023118783335897699357033175750923613915771008677595578907444401352860833706286445456746084368369657380676185415140689264664960366166572887866785734379283850024344724362349573705753502061956058626511418423855336643834273939537448322328679357386290632352228105970087292855256699117559154853338871936135823831907381778558780231379049014635184463527929230818052014912759402995912101125695788413867883293642870979886429057011291650915143126253201890221028751711708430992406448728637790930641312055565394258528700432751093214784229633295973864856430228130008628746105586535798639720775719882629833450673735147461735928357533256983697734891235849845029399689069009811296176350134041017358245115546049742438856600579057957781155600666924893626048241055751657901753787304246596883631763996814866562286267385168709827036386956232674789759015548793305606602912448994109198534083561711367060967642269477013954022619384514817328607413690566246599227471633259741940802260856083062658725743885956870810280654218474919628132278823667870282659529611759037117058764917223029984370451694970221352389431366975232305523878417410432269011746956539267328157059075654064416166988088937631826321034669953545089153544775127836767685246360136599067990948721799486269883768689097508531990661007979249161351627347224823100677488207572089237366876204994217125809499324807127762469488582023636625579440096525375392079325386077760918720155940820132496016931084374316791681383756991521788624542383054730819096338820240411005620859644219501402652748414058278293455351668489127778841224801996499164115162164058589794231682970933990234512244859910559337586203208273732411546412964842350832426161996907500539621351326618681083674296555135994649538285962146200335358613200388673263620277117399984859829119261030660596668948080158291855368875567092124957337601940996326361786758647186797684167043976931749077852693094789019301590520874664069097723341713729019040826956749684886525418390503241593839799254054287664373876426769178114320107466149481019513605108686164935152545689290316053471955767563477767312521442286612809909130435006957537581301811867850210759323314641282253034702637000124689343567978020992744772644651219659409957625631621757237072369281619936193749111790725472780431805839599097003890018777957413584304130934821091791745675191150234063556126400968503119118882759153738553493180476898160129589787295397746281350808654467084068671458807961109863741985622330272720483684569970489674475153642303508833121090072256865645661990735773246670344723980385168789302039796170040209197421316400303983557551332350396080777282965806034196611274536002988023511621242995615934772158758792487538691547082512751854791794434784034964809985673601590140519994742237201179420103810032881495886077874242064573910711217458935251704097541989052714962498152571383525359251283948542128694039783929518711051967532939031346571762533375990216710551814253145954066690864293731145882675601941850607534650751636459127326015694822305652084020790086648190596110526676147823755882181959888922532200927355286928213327958145378898953360854632054161315002250067350141262181234161146254293706053807516831381554355735328913964263902356419649023554236546566162614474445649357857671647201606257136374419919081163392715335892816096614384109122950062292122506031549994392711828277710305975536780079094022772959081148152049719750785596179269070585278997571061086018085263533221979113746701813549982818273600028706405322766151649525602485709269154985181304275793627205696645622820387377241565223857655689164711908442347419321238184707330181025054583930098199689487248674493505699767931423068382458901774017844557347390455203652864512538110829647992524376042241049715267263354492406597606076511348556866585878880624940964109824630339108942751783926941853899582659649311705437659497108812446896898640716718911263161989320033565469388784499388955728029752162445361065569977951640892224973183059631408885097350698131021292213424264612547962488621469971446174344921454681984677746381369650166406439428176512325723128649522201176888080095037942713318571736348937878189387620575693745713963927486723424977594115594122222427082898918125626376962431483133338335416427199132989890255977576978405070722279844570572843659037523759474742142378925136715546510142510821071611725668811229493623219249207766998693370254091974132623884921745575758560265125029739133021731162659721227353777878421244212267624586554885390663933739433209640141293725656091554460458111568559968417994017438995030678797673285738572376422570449429292609535382834492490917828878609198143037858158151713706628296701995315498525771714274258949763307123809053070469144686251350519403002154277685734457138353407678099776913453142219831121538986232664756385895290556775379776632551330338162911808570704295544409526146116715582995442498218972858349201702620707628732034633504024587693766943018296094226086293969218841055481835744612288730434137498955647096689264733898875580352708630910530231865364256907846086221195123925219790536233047937419988380982714956377792206536430609826125118009158690715741652894911828469633725635631519802651788737745122318033013365927192988506138451917280029565775536023751503212563502855321102482287136078918454692575398083364311947368363841321729005531260944340419190259875414909135753042880339421488644243241843937414716524553784019363539344980373302937399676624299404267661552985576126373764913268587278353708991155348055358713397422612602122060822327441301263440144339952639723096929777193435400866955389185880075140022445697288426292159076100538089810816606259625776778954510968515046633496213344314604531228564923229557321814159642744112592435264752371590889202032458662853903468249410972584209439299168125992850367366690363641025509021598722051646031642010477865299635599174482947378539826446798496842818301281213899357472050473256161997201898289538906161647516390088477280566959927832817911684219776745325371978682817422936274918663633029141099566100989253715702922327073286892782893548432238306363426506587828585866086865281423236362999331878632526469790098538644527420259096815788018614783700852531784827624733302790530434649358587664124865825424260518177596318997127762150820498293524030021833924252911190098176145109878923952534928732457959967019203754212423555556947809184912912040885252680412196470912660180884553711106323553397703696618002560237087407490767905112979384065927013549955203711742872414201276264107119361378732046338251287043896526867824243376459656638784091806438309727137898471072706140591907076644093836608430878864231011922446331293020896296552591353731793149786007671367999241598874329803405650211119964545691672074686379565682766186357391817226628243043670008776059443337878216460083485470734599838545027457228018902121478337259890226338226540052601254354508725802542166956461192810327896541010076759230373582888110962235233653125242136644237588257461331373226234930503097486682485897839059897896601908963088869759568267262334203566678700262822627571251200334546059282338850306746314999164520846331238623268296218064712865876494707760051804055274514213009530624890723462533242530203546639588954790363706045041745025821992255256149644975988557165168957725505951851105541161215650329381578941002284242186008473380693467146818991510968628694070884209739331237410734530366222251993093564478130804871690626400596261881650159631262368859170445800023860250832883339787209520604903942338416854084400779138002608151333521459669380580732316815926918850943778544371303977867042096864218935011988370764960470818354454581527835043164109533537866101188590854627436484045914450842380003318851920714848734214961330041040997413472104024374642215321969084098727875340765199018036563593825325193539207598600308036508866214784579659314529417107213213759396489376244645115333476478237735304003772118590052717264433188302492037475863725263105614085508010708774917607907797747014366684518322219710512975059963908299180377819329303180210192413556823301162113547315351747120576314967905333025842192200264653827624456089477783257186142307207087063096450879087476170175008478986448563209041146679704216199773421326221731428413877666025592026839413363599632237450634772362450241320746804629387630469835726191314959929788145456372098002324980952452977187967311160634755737331921189092338437396062656109811418709732511828956357413703420563988395024005499275129439541727037183906751036294620855655888448493009644143034438126165458334029990170840500807858721713050252369227024851860968797095908952703120223330789398382709901553812904865524816981976550241414417030818668030231117391682608784076066600376373264458106802772024918663560720152752075781286941448125359784356425761149663776213528028269614081887037834704852556703591989660567039026782525866944458298809794367396519235359607785209652190530107435878543097243961125951461218967362824739165128355737152024650689327008189688934423333265905736572804532397891874952874762704763096747239852137854898826147744059555072363019937194222294466866833503530853642216493297337023624892053468315496982038769420073702808688328117705186310206624000113040780067212421413371554247955819941012857721545675365529783193115428539869373738499437301090370613016150351061103992746754320909646490739346693901985101882807714718630186816038997304063409640888046311754249351301877767684494198661974130430783223529250497658485535700223517115956272501262249021960204714185301950970721472331984545988078392530994490113785922019329144884620548923554949566221313070062980491706903753472711860065202100732470414528594284877829679842575675429470485502478045131254160641466963804768610723747612037896408358928416791476113304809525956577299228628197439056077612393400272405095363794630841721482874784607718681725492515125762686308398435544389363495003759347117917085925836040521669548165018576451242201397818177568401882861773249242353723756231002552182466160057743029607431048524276742657084110076871930623135159771325809252585883821760037834093876573380870027741093923396677099967445407806985541886149226958322306611816526412526510510005642203574106237948917144824983389771464396205522761647131859619396333535956246120995814500295988765791994604495876730759186287580080753729276133120292277553238026540868797889940756958295462886487975284330058336165908105054779594496342817387619518646100079072043657415833083537944026723944191070290207930935310854534057699150483686851359671787026011769813763356741273264376721958437165959937600936571108932901127702943187354461528520513842700822231266464046652496643464615790547676131050411761005823437803840388598760713310394037844525520497598135106659007934755517411286317764681669996459370929253106735109858376262304392857586058451292497059439115682085877011319884684995456905584912159283832383286376947079208606730216631976628098513807743067385036830231417571041461279560881741491489201344041338272123733402825465031951072460748727985115913022857585695292177857039073209826500076945916298418068362121393081726493126675477739856508603334572387344014761680789775424129982647140231738893121315361782013181961192197360654642672978931153565218450356187592989018514759465307684817796642572415370039735572603340422072489474669086806872283099541162758828795983784785544431884036592070634883697073608596951956799553844675576449361174234681821511084903821844487577877094911338964766194433644507453610519447387678046975414141586559287501279768117230086844084874565408950817965473335802594769833942732000409984556903710279384223860717255072902848452431904896804540460469698957651441788125398737036445668869648441850758218826394597439197479011560505277020319423578934790189935488885902508008955104896733008813926794159582916054457392415221184791547514181098651331182481828250070410344551014531338615104045262065158294771709912965115026929330697420644350801851849345555565328807354555012828142786768450898000856872568421448060972310585419469736980638826718117070197161811774738334913433442902697058121983043133890289335573315346643425568553134286850652493079259420652795534178083866276079864146586090370474991163200423962048022261479898114355655887237333824815943549011982878949192178937533356917624882423199739279868980682580136065968149866124124124577483506031020698128999135590434902105066256800184873595554809332615017514878318340465283120215916885491067103725922438176317445453490081562040298659488720039306450835970590231914630649456106186104910309603310150888113977842016997215598875966704693189036360680309070573669217310497821794974940246970156945244962874796472459794115364816727064643853281083288193195153316067499851915769099027410625646379011909517806382429451148473988433849941601673259136727902727969537541476983882183904020645726137475312103644641929976454494142291001698195384754816955588246069012819703068047717710413253067549500165939220323073345196547640884851065470312680133361849192017962676814076035835990120118094957395898431118485428083487725196308267507811073713238470556051801738440430837768784601461925299163719990984552304993767203023461291728541317347509820723238601760087880840667917480619889172133199884505288439408132558822602138361681636009811862011148457962325641405308538327706426162055373054333813546262034846194697381375359202144861225470477746443401455800026454438309378829464272598757399525149385020703375175307973510829121244621865190016321545517611904545038165675052313335010746535366172198665727179127577015846472915720203958273761379099533849168845793381569393386854571158492736599264647931098650975807376440937615453441782248120856755000364233456230929562773610287171832828361951750912146053253442965714200916044582844801151482071003788739855681045102242999752676621039858005571175163412308700200720311801735893503616186802984472624992325574905098133359625421139374433330702986823198370046196027389682898277654699164161292919689173973018382857508074788072729735941462834160063668456741520346799686490302684339833327310512888394127771041973945317003407617583710006594498220084189254204401156849819806160849424192611866771004092440122273695560880315648694103894493398760149170089600169798212051606824607194841861134655539806672838577565176520481310073220961748503081128560843787388148840870673441048930959711556432673229062585619422676159257952251163912851836477965443644267368884083492603266242181975308014930583921400354728421926566725038102090504624886264593902179971732616151986288963233510782120862235140159663907116875820206648176214704116552931662708240021973344817957855017486380290128265935729573290097520551997658650814842116767055452878935283374608818609582152164833378887645743158147251913449427711653257173996547352159225514563583124692559845905031986635152808540934588717863345774616119714447796126458884347815413069334385576755465107902908425971311405215478941678116908703575291060221198915180530770106761044174784020773145325734819353885356437783191423212551767743950691406784626696029175289282591271726970021304937999544683882076285257766779358409158665149780420293964617143442883795070187025337275355595594373151487607252517314814869340701157740309823914692651698777248273860932011394131686002014337896390856360455078084182326284941200943697802279056873830461644257281490486582933536483594207802320899997156406324068365765942034196240673374234989426163129952920096168039036879448550507345162977914640928934238863673053226903183580309336412815446517280168529541484931863505736100584003269826239712322106752975888704811169879103458907498149171694430281760193250883127188619043946297684370229775961809713637087927475029313241656514374272740842735350229094712860197207181519014211382918327748672097457700829073425987389962860771720106868444252807446555863081435445143530952142603378702912646245237389671176139070637401523438887808150898237558593753830830180808304522138056000848081917538748659881152918199720023552493780608104131451768815691504815374567455983703325785146211530251856174007801917267290695040764676862103273975680673494921058936189907534471513519981369015091827543930985725364083334929045016966672108579839181852174346991453237754917877620603029133301910431660075771157143810787023505609322879349405541986362390954404607026612699559356547090881334945895764253523472472421354130742727976890984010480742135155752116949165908939160562856765488267079126402107665566537473673539462837424237146140556800367769250478772537624885064578885233927522325724084501016245815313600767071883212563420612162113688113455867015309496648106385932772628425891484101529595975795891386882564981469914391459601865394533897695763560984272179742140365640530668936536153916634015519060015933620672078986716791608823566188721798058710163380986200741321004602244714367823747552986681073799352642640981275016071675779440303168862699604628177536958305038890460554168361611316537512185923505043871521330130170612142545239141313313743475700044207271723582312555380656118880959021284904306303892218181737413760649072290820734698964058281865233193161479041109158409273706487265220174172666632052078928179942518904267989094033529106305070276053476211016851673145434039229727970618001994720624701750873674506613224169532960836813447992589227659474765757014482527040427453644276191885128040101148616422826774474666881986490628464355901739981823067765562197682536130309469397812979429142914582007908574728625543222625502044707894800210136943733314157777134485463288653215154209949785530883578114010632863548364746346784390442581420105217067859828952228629639426512129133259482902049482270660580839352994518793781189041692629671934210045625347025440513762793213471100808363425478941668146670719014709219488752617366599186052535162271681862130556431187814075611679969372690514502412466651166989939460697554282735902288697952807239696736004049164316710337336162939153210216551589765770919830653826480648457354856284829599147492059983693540023335012682368994267762234120801395405160236966812595715388493296407143492411276782277493032412116174225596405559282814126047449730881522254198062223929428140604982507254670689541946892168497064317821639190620965481444514153108399198103998015560996530097701437897954759007990476825244718881804486652478414122226043505459466330960416594771397566944550203630816518211582606521723129076133636834887192378842642219517072031369133160174303150886215186876130562994468811746784011622915364347946607725505412731898945381046551839669765937553144532318830670909841893900226455236046214841004949397498898546266613055130147994610125311086894322133313741435192284130977976861770098479355519306836470932746609082523366261146087140959554750784973301031656559283690450676355832768450242599898369794904619147079879833404277303659941101502292311219359408202424110594949634383283960766346603519089099099555856362861648130905701982046787059528057874591202116942930317710819613399253867371494099861880647608098835322752109945935375722404680996924581365042891729228412040886646575116226977803919931231470365633844108421469005150318263857369104935236017791758955732770920832772174597370975013013384748884438077988730257644736957516388979103425355837016164689018574326315428937662541033212296018436923183976599625198797672628312102958024701386818693444136258558674092647279175469961980343343123655836672732677493988929321505812433673848398027624311271620889198789246881219056417095761408369297772075195231227886930140311214211788886354473887302457909403612258822572174624752976430545258209694430722956122012993227317164943847356170143843798614952852249582111967272791513001730200640179728643478133879734390373278581906823863608638817995379526954248860387900874150710996055884217080075202544685530631482983240801293708973363692574623887406919069791979629840895990166004367783334836349557075901010761939012300797571923639343383046035918815219601845982171700770892742821250400667128420491672470215388348482548329224695433760203499083622052167433213313097231701471206982784850479413604603041500340630861322441804957890247721596754534036857989127081977471029819236808771459338753027062195344337956302103468046813055513470486277832812811979704201477705414519914699969668693578132027768721453483981311140972431303688332944371751551442689665705895669472596113365232655259722997608538938553215953910004749462614231004751776488115840478252719783503037106759776190962372729270305942900997813669527773549839214565156152770150787590215918298861312906458877577994846774891410221461404793738391908445272054277500535204391340685730494001264675952201969280223468500426314740877461352818562387888456099283353668113212879865829758592396989274315059329271824376137858810607652485218516374215130724810318864559403396557868345993912864469273089222434639107835915036053526756793683275166478112659934815891249576506570678249321070769092462439714761200735397245388161815222119595171229818021699914996720424818651045320200816737828486822372078278435882973129332630167200646720627194884761788831277762523267845516937855573081912467899890007054355455754475859302413955488904879419118455753504416488331273770484764228486506139988727324573222878862581277691934409042675283475273855253102599453443793546441678829278247664196442925664859085671404231352743857943810247959728876961213806623461265092753140782501614248371892240125192072244111487765464702973112229302299992945579951562690120229055038813082857333510485632281724335894256622798117846558804823690223118796056832632501786838877862279494154812538352046152507405983199299640544354759796114169759236099601257039995561726571801040232388481536272570876097339709058872429945333880587883978289473300221437153880842530961840578312712861042415398187519536834766852901173232745129067281924202575572504396569903801458882309645030692748463814455438349489057042600542837277941213962899921083702291114223609294084263064934236614264007073625605442098246940908057301012798509769921542175124832455747196463323551525844151582772935969690996189847183053463817490062116615627634885256656217296430396851054879448788728376878556246761569509122992940201177825464828875934769364243099864441868920312013648841768182302882158013659026930040290223314107375054989059250612415413946887926893946212564017709235632866910134175516652210802602827283666073462746103501741415651854324182110373832064188443161878878650272609881106595350277336850577907665953482183301259856153962276208905877272201795106448874862814317041177814737471079219158319674045720672531354118040010244188363570276232899581237108701944699400410014040299413795332836670244845983167376110414807846543593724953426856254093068447105694759826682775831205335345395971922525819115508353006545704806621605787891749160979163963512716351891595243219290900606408938423959984019958617635085417656607023503158408862003910267637605970811314864090694576830123211032643940694148498532286327433612894110387202767063361364523661612620132683449926194115264672568962704698612052401719383933672810910784554056530727166270870128908862060476403315219072337006473335462839527459899339730192915563001888167476940369086454610717136248679241976270061596001537516151436926727393466357112873237163583443170312383190868286495687171571535710474777849114684459955782216793469674715918059234302951067815188297768048222352839401083506351142925302780245787699949138549011341923631563596677550699194593308388576972705229613476971117783946372694241316285403248159864384409848998430028297826506401839136520417023039823483932443437376795454160470033897281108771530547546677544101561744101054548372823881960723459167193835644643903126782030623430589115763590025669452228941039070383396596354413692402086821112680480568987486567822057509760233344659881193008214035692632785806268350009637088150267933404730337376134139907215682431238046165482843361252887198814291135819625389996835627368137771438832697791901411776071219849962389109732411214173251367658389716514997736577277934560089251394955646593814835149021801933719212857356575728384935972625743653714707359483363141490655031837772219886333619645448211646717964090376017918434095113645543583835024148400352359532766252119867086312815501738675895521751795599446394403690988632078268255697372841619693357197312473700637384314630321528245002987973563451825097492458866078927185458646398737721058581459197603446663141421104107992872862949197217879798875452243108616158544389181533680404903646026986275037907895492696868250089007403080317090495014333801285687973292358229044290051672318792219472632902141411225892331191357798875068828046307012067281436875660306710335642200512362113348673232240764183570359866091390189184224648310154890977410762717665211075138359258190931251730603975428237594152113084919868283453367693807777237057804259545696677428305901705630091524182558684868704701056259476838753589959513754391706594839438260787800968103841798186081915610218078828103399776362044916298187489612358680104560157270300991036136930616986945265086306156177873608330087203847295705708839334234506655421625713965335777784732571625242110377589674491458627892540822744662506926392086502861605754572636805589932125803939036172191371805057559153759786405364867978283625954454515739798358300377486474532933241781670316921626543926252118230072491247969809054053887793173228888821624343945613623237704774180965197491713844651775061476800188794066348019343134438452492936440867252211180402902253173834961630345085391362329752350277993809897168794061473724881812896473869772748279595142854122538824739758386027020609345345557343407681754953203428796849514580005193400941703356767477150217215421716260866031262790776410258903731091980191632651594841109262758835106341115003856317042652625295013429468153749795003197104242698253820597387276274563329705514234496815003643856652086953275042502043226895045753207122635941362755593321825783476926505898867430568980098445578610994185642844012582349960062894652241991738035148682266283861662864210414352926596221812272611907249942625783896065123997035418163964091293900783353917903399333876875862508061881241839650434891794048230694447757868558816449637625150091757636480881383320850907185665375231512156578375375356702786233176164293291098117903192951483651524737617428863445451208813484593725298309405194614539664165190033373577377503561980049953012374594042764770017212973085756314918680769772160143997358669742997832760427192408879784696060161498828142460872223450980011537423314886342038711287543905529257833041499967655248619148784758000468228221925901124011838838170665268934814245956763964941502850315887075020705426866738759762661847562522773360098051103062505296609655599567508514012886823059878853729078143276448450756319823830056348109761558964232712273319642934495280664550608835045511211800441185452401160118409015692568670858807024216916748181932159876775047048167167029375248412777430597463299313310954070050381033875269962401629746906440854121169998318229435316752849440928474983160819104584759460455803431453270929122724686643894244041726027106793986301369174468171232866700268059806059097017726593038731475574875795645159441659565512831968714247439609486980708753802050101879395461269735879304815552085953617779135540097798272358561313533791184099662392770695026329738714098538551356003811728610704533825128198267156477975304630595610234049146309368394801156634231722969764615763192680144673131383095867461023045731137864431939270386268334961459155872401721235539157364490767620892890630328818670711497869789323058459823242304389026059703597185520175489383036773080407407944761443124382303457888133227026414033361119873619384020593153117435311211853988139383875995164745406388313961896625005725459278642447604214002806871714202053266654843182335487924921006721343697277175103088266499123669613462465924471863934176407789919139256548794553438652479793769717443234869200324394362367000843426279103807486812111911612761593310167350530975907620467622649336881488333117638923674613234472051413667609282301739303431089613148779946242422842464612028751104654298142509201929623876120947373598244189446630719456694069413787804524022151734340150410346672232289566873745552001876420281806281342701322317805088789512521535442945251765194177689729470219947563215125045986456924292081664279390998107124763272446022699906120293710732375229048398474608851658059660560487146204172374813336879317716067247446401821540508513366179449478371232053688451942310532794280999320971451286647403184178713765630355192668129066311694980739128365643608326006887067620534152885220714634738735314160653757671564899881018499717099047036323573389326226195411725033949600796081191412736469085620688934318917556779376479460207143798149753911849568175215298844785964590426038338044724266940305905910467095350292495833273096597174336018370779197198164711429201555048503792332050353056773673920531439240907604561779229821264854380639363689260588330441830697973186312738366373775500772206288274092743535135170935896405935529307449167529426488376374797933858824661030187209895884811332602004658004029421024716368352752847007050674834479008503590160582690455649949717444757106836878529525774137638201370664339542519264081013859906865581937704849262510200314788107989000613603514086479517491065173744049234513493930643161823725838791404460035796439484213290834969437781613072593706070159331701847166316373761856413715850329929505292385919940224414617782701046281670962930598169215196941413138413145146052027424695771942745098938535015028230425492716593997592345440009852779112930663211003779677577601120048058338554722131005605611280793721819550966397607755144612770811143435559291414790288667482628521984596603044787957173014736550734779507078611271891136047558526910336944907191617138528723701787932394473814174277618541441711615796834236299690909049318513975483171577358352481019071376026656870363875911191413496615338006918947802149613555168894558371989599772761641942376301975482370424267578097174986665651545218725288389093509802110137351844770057284182886234613096764054629366150093160563941092921565221682105092790912658306619808483040001992996100614006146195890453452577389631337416390341016086874556891128849995763175586662074714577755072242948291542514615537339278412148491996118126444348170097862853236248870323087839705377269581912429221689878701692064331456751659166419373203037431825512158895972898067142020244490808067915384482925346627465270598248454401306586587482394945265800947317645544239036914090615775165902552032332455482687458467660576000894453523839428811052306094380485065355568332412323289152824299043435256750586004854919791578408716425038371669744293836498087859241557836995598718066455575767466783121986765401388479605476620917324622718812904746970228300732044198359957218988287011463456613385612644836254607052872659524861820980336454096730660884290027258861327565079770673093746030945866796746090113933113678878941349475535606863055810616657082365863502811401714678555343388526128229478108781505638695313124606349322209666498901587237233573975697091756890908579119675708862181845301811750803962907550191027565749302153355640144311573948665763100464877925535130405629011029921238015070635765089360525165386864295181126138634588839007378507293925507026630205864002592717953485452449421470516320590573894448680970052704744134190480754684402888343504042704461702347924637621172276195921244725244452422676260150218646586917767776088927747903724808277557335783520524347928001820922894253673840599913787667163722013659154290055794621300858967419164087495016125205354716469654800316898361630247023101343054333070609143392406033476438477954736910089834415344601895016840798070752404074077238836438000395765503017403692354308050808379887587590493954886184105975923719595507313106694343151076680691977302188229593000356649905749373787278906936182049758847357870244216388333252770629229657777855516485828268411754071286583678363167699872299813705883869545155940320389241938760713688478886908301222111204914459407478930786857285525559466415342451640333266542386666341957526000584136813977335513373922093745929525615033951470717428467814778775825908918071287784680912287231986891448694324439280196370949118650262521708107559735374244597004400827906725405771282810113878353677934802331814661775691889303012564712527223923003056763684520794794684168867775207837215677942882009404645308485331413311893427542512270314055194819400074842245511872873192637266009610806316930325295834982627066796026495578182150661051088586697643849465759723867653543619068866525968734417572221225555095057472219478250486700371655727113384463074734284744640873505508336606641383451185954199216659960764296873701521620778853776823247170062737022154641264722386258694231432258504275694595849234520720105445345145781246636806798835020995885644412837850793050473792173618914758210668099047358984434914422428395669926935179819537725835861065681949706241852492642429662466704171016810736447081531774923452682587873291232110383488333360329767894134285780114341342605181907645391703082560250132398846760095722924425781289796184627307194617770289199093074823782118854896705072986106512858062624487411880853444185684558763362237031295728496587006015123156406715818629454676663813589723581316920788311010239604234369470192095441785687198928157484053595321916093460190519989797200419864711943890731757621025399130964307561840808714527190112040279208517690462669853565899224733210967734510298571260486876488734669443407580317989973572487011985314748912846014405928799468552378683138910483022151658918389352341020856135611801858347789606674713405638580900678254654265340204487688422587532289119395501769503439894814282213013216370426036133971407398907024777835631312259735988585454498783168087919211164016393710335110306376672013138829313991133533037718937647878327127791856295272971037451183768816902402457703803042516866216404853953777069636149424960246267096714047094694718935076694605477299125364925679504237139868154165020596351617423427547957658139201475005603226702823573298362108771387314741988003786347356301319148344493004738239669832955369437190792183781919831707247502488673959839030792182061579928258958610586872773949560427655354428038021840755145693835670188963731977660280038469160353855673640627963755549219339778696398692763853591014516168992165281071563836044675997825509996321270274849349633639885491066912106365778235355393403178142358844733487241922891669397414668591706645533231855303805117871510824137136485866027920797644561113374768843524561884531648467035259358916372553523619137545095661133361986905009526893723607474024175807587991563714951516100912259774698308279283932945398043578639598484386340304577019680817528165226958496416058780510704273959995821932100853693582218754666558377269868883007938310587209790437015876855064365875161289819909001464704699981160493703966952945824817752369039146090888706782521893550820262678076422022380812686435258438229175642049009703492924305201269194237303001748634342708754696899311061271487351295066583974134350169252633303511393946136384617683746536976097434286317767934089653542606974877571251091123950142070375303419336973389175473442197626690511381191077422055716772771471537611269758817213059515047135311575330253042335816792932035941306655705211589916569096955883466246488479205264639442031776697049643024425387290165252772630776647585958530859904166772346020099116040302182217280208303667323836015361302844122808023485343705033924132420263262409975938459038578187798803895426360137560837912761730866969692889949725811399701069658730174920206995119222797022229291584388154628858670783289841090203554758406087314771142970722957472779371714614200462572939457139106654541556087170615138035454912901271791818161801496331543770765286907679743256242013576804692058490322796149126258788639903773028965733534514830430760074785723972001782629006978580405408143168718895710600737605354598991617037501458753981532310146471846942175883076650687817327767736467831346943357706191569095310058037476507348341717672524717785988031842035888173793870094386967876941771671899976303672910428058589845386182101830313299693989569900845182902474726061063054035102718135600851510983337001632560632105176097104413918543889570282437059945324745685792516344716907141257561327553735905739445565660870567401533891013185581994574674856478412068728883861745435739970309249798507137281269410575603585028335145237482269698872351781861944333757939647570543498135021748411007965086270025334335144321530072552413649106405819468485731393480000758364130472765302590202094508796555382231706541692840026462531680554502705082902314874545442501526660127958320585121048612013736645078180938266432583747192903865422621754727050413119616293557079415293488823139482032319724473788317181060060651118675570415237110308542333985012298660677292862627419187658552783951086818102996042721228842052769335022337055938195079603233699768338049271917624985178100660162120953483267583130301753777582661949006316946288200343394832892125808993908727452465186876798738030186727519277403492304137989941184618112274494075171372911369298115770396270105961003325304517520386743944872128314427438466297387496852513267070046789489598795778312517806446414670003476499687869933101410605052044134386691806238538698466210101926381948413345498282322365498495478161150806632152228988136707540555054390445390777255413174052357537171034661561719713411200036232245847314169103897285626283348651411958086475197918932532421366700120451052550044989779551138641219901884081964638429646024726015925001486394232940943038335802240456780667637989918898117359568514272074604036366366341851542240740267850056778358758367939502334006535064829707803307761604238180427866580273260461263237823810622679316871769691929379410912326123780436129737984797273392954401293904335298599436980652254316595176348541402625490337096053927096667552588150777540369580084149675523755834999203824736869877921049732609677295939797165202586265999524336986162458191319713620689805964823384185669760505932505696542995383582203201011354708837548877792918940438095849078653150961824078682774455297859833238819102560194879769027307928497210889641722468823121475950131017228928921077050850759504025976833750424906961472795062646834127484240319767970047727132078107549652957516236430731808571957494374734938008745986489574770057608433208070282464849078487075983170264993620949971081248544019395028728784772377468028833498833491572892121210125083237698819772192802912287786330232249918273096124540218940224467328557267746530651377164532442491662731878362345308223182249632349895980875180356521192752281579388482354739688262986918065280038032281092295719068883698207822774853428303813582722699994711777620325328536273058757044529405874200880021086671716409916618515240295959857729468977696201785003046867674901004912058697256364237389744056182132815142301129976361933830130217351446490029244375700471405037682399568646969870069345373887103226277575251631310323764552162051826789912955815181696146454642826589049624559331917444545608334025479831563202206890439539670327188066892136421107823348956301005659526285741203641023348620659653479626513295796812132629269966480725695844410310400128448570681487129502583254313684488984449750084081560730838592491880918160049176135154911139303820351962694986902059294555142590882469818166379409045462315901790682202765335688281438423086480923711955815529341057013096011507278182669270979450340821147069377632298871796366470957604713243904295175111880857581472976664360080995998136216284448224476619869160073234035236876162030284066897371322367942299366132873365802793748669343686066930974430978182959348617829264393689999288497552641839230475714753743525502389208393542158615412581012991647708064748278370765381061250577996500780883939422289080190168239004882731190838736766745126912077759013881216943593381479276352657908089868015153366098625229287700672842418330630943977055685869058498263468957282412104412371695252660750421431038834507519336009325211136955527009142086446660055052296254458742615532589292058027284446166377574473640835891584761138057499790385276928348871895755581133088379062973450910868956993018440354319344215105963852959354220288553273652278176861990271487866090896306950465668419142059656743959239213970464250473249035313102727909934048899087392017122529351368665566064830722561874318086026280870137520992722656813988295344113763699748585798154825522539500336251946423974601277949501095231733135771316059378392126780910666905165413788496878247141808723892167445319744222012512462832349433489774491608203563045741459896534095099225900608162326469640059205655589155228668138338892118393749390905266497209472295157391030969090958920238883761773423980493445605091978080521940650382706638478450351378612871680973498740082065649650965655105472057100090401358772914854534743410047507409384389441298168198079947201248619493479753976338908426095142234556438188212078072921528472022561579473198359900711145412470832318818925356734415156285308917271166473707336145351641078945996732057827309203579949291366858248554041026993144012779628650850310574825323445392735714067472213822202857958678330961711335958701401315563465248825953796619701585669716006484104505303948785871687848556091925727329247450264330984696062296938758595760159315821849411613911932423209670158646142555782543233493582769953598039708539484266558412646759562081598731525236597145139696897979581595981621926387408170515133786332196552157623809608207694130809068174778956318469560007607563135829136715400320507641391494411849534709580436129605932122946626236077414529575012498961542151605588958225161749429373505486801780581329174803510029232624226546607947836364309594305892903172015012474412534531132638200977616649510448537969845518868605562053869757105354731690769653524206122641932766406471165054768994148641460563535666584774083013746744190767781361352279928632177207887844194964722030731185890812504288931179143180860369317996553950130488328923914259279767440458840931834534607046878560986327933019064119232958179395077034549703977901205758087820758297149807723655984573632817806843940772547787632845068325422784432886502875743517005255651526404493301094593175485280756613404714076573051405967629932255410608256121282242354558421290031152999835062411390163570380572623017205383123040388630250068643619326403540136323124429399602782079254667087029353423144148580542734980938153910841396299587031400418460494569954061191645180048043364952104882239389080331450707247743741825843093299785987437167808709696433419466120744465135517957656087354993285323055521406088392768459884656175986878599970085554364203924645387009230853310514816662317770078867072203192799993128937151818281780236153722728364372482799639799396436427881861457720032456700344332506187166105479618711203593081480725230156308007833930986558761842146435562744055189131046154453749582540944712429869946749831024977610829766665062310178765057478522465912976281062829677129955062730725366948030473865663110376469199852263729742021272608846898557104682971176605157209741409136280535121856942491067809147532178453779649594554307036479180574791751259305489337484696998170013708971468964140928211109566762671317268512615523888623200062204178256252731037645725264458386550168963365484760664858658018319742744569685352299225249142139394591047525498769468070474952340933987090974610321273206630321802404975829258255427183313671152873142358387721774674316950414654324576549140882842099914257986405907293266147330685010425404587557226157892667279285508665154675683075238478345523266129233281026005569197841640239522599741795507264763896992003310039234989502961778365749349941702940661609276614673230751545382010859413219772141022011649809051481019393488880666535778324822398795414133141711896954258455070994309845188185531153948183843826293992517189364076949255451547653290091604146454378610522745839039186228458368307775240126056472066075928988535493523832816776793770116894056510318337493737017652872265204477213954536498340226182328969307278810241335819225606256041470851770467594953119544977477709350532340143456333813402282413988542147995725484459304020415658173616152951906689055557921375766689137172802070360924966842770138750698800279608632529420496770982341066411539724076507248778018300919908214384957958395418192574438039947231962553364938634560816400827285364110961327574397359687000163887770840682132191184958327067913475071719073464203217393642977054758635833070746682067755214705490601722965277941661371329286017130466486015832931213742849229977028085489654764386810564390594166453159274021481873138974025433201603683083086821172336963064010230377070115680034673648761019605705340563643565361967738592696385912316407940131935172032775412168296550590420376455496501542226731580964947315304021913368335267777526527842626912167828125020554012620271391580646688099505447667048782653615114554237251852668039577200947068703851813791428618407339044774430789178082279905418407357832397979019816937317785600585774579200874942393440751651326057627430187739929499123453179452353823329342243962742353210473978127646415704852140494582662113082188384154445949517869636514493711588337399154495966923704032098017688955154590611586001388161467239161638691626336306797864191252639374390103029707485329652417009666453304360830512771966804789585738389503012682190513203636057131243362823597676945400058416095164940328061086221432537225253877899557034614408738319896751748732651784715860463027110706222941172647994395137858941508221339213863224427280383427224636039781389037787817037451486686563242756932302082794206749896144887822518828412955622329083641027262969870407329875103205145935015802965326492419293500836499485815234900605200102175788591392571072140675289182590439278515470151127773696565230358729780605053584819567146449378387171798692525809929250315077217263153140992218070661417173682848848591907909160790596998153183887258019152066883046440774133587226696749251262817580196461925522789846172127844450390446022018511551399492712408786413906018511160796181537792371511589169772102568967477879814771790003155365704863681846016445931379317084460377748007155703107535130074457077938721046669925427257828447314486952844518371818661470318044581137747333300041299724848731513090467062449862327861966838296203375622507649917250757157167961621064608221882855853628216141413283362980433633581244789357164969536805229040064613731108836477675856022534019465795833140840537645043334905169101975220624046536733318681985618182766020242445689107913162412936718807814475587701950368899382202855453983942271475696117336143366336419622823614711188630404645933398076422566532609300953275040559924302090802585032891972674551123002723375934313015186580503907131599686825741710768990540334119672254393961748360594242862418602636571202670764345751803501672730961735697434766151282688604087538155300800131711603544131286787453773915373192173814619207365059133052332601532334010939498962738065684999453301141678146693120258115571719967976507769562962562545465365083352431156552736062464283824142901737984500567624434242036698282041647281722134086999616438796359812417688819030404329768167170279038134259915373503256254476160672005110033826043791269055772679729781569286293463002863957450099659138125136443872577218510349568338443961879996224478969803228756853559224930826271950588917197645429022053958178306485020168045311135577566839306893320751118527331162242390000833985835255059522497800076690177135944663529617913815537925057207615824888462144718419209091123472449914951011415616543073220191744105557416118456494686286593913658275764947865292959932050928402807278498568225597811288078684855197070321397973096424011618097053426367068949378914931661944418716583877294236056579306696445159692290382181249697161919051931414373744620970725357924664929550271627282081871409938454266438655812588107294331942044597646841679800166261209885989151798102975237564617867908718164304817728858603571023949490195668297217319671483740764120287943528695307164611900868937635352479994786995318468248647053797118521429486069561302300287552001786204000509505249833906183899490502020454282592950287890594720214125571066972918389780008800792568374695634452383327531495204624637748944154160910218674262848643734089601704140533479122108299623222095694508599571212291724810553632526547495482767039462196866894556932598709072561846944073444499972438096172553548114950814275736302641066830812027762652041569930779425490279496229395666673033868502301957948888315753382979422208470288422810923924835224731721140638942889404714147145175317382646087449631542597792421966704715889435070088483303556947831395028442224612933508153958944915972920578038116468882546026353465670282930258829972798885559381918598225437792622308687210936732582913574191755730240977964428502435451665891717522678132371805246254339793075101625058119854193245211825572492892053266333970227396900928707750949589807921727991369042980486052618038059248146994403484177179065333133876622419109828331079636755134798777230553213125564082282920105084775516409769236559056375434260591990901042864770921116457477834911047306490426964902145584655575127345326811093110307713356367189702305516014360944896224848837011821922063942590477035948756157810127520652895452927778347053138430094126467788520455817034810712388890882938947946535394304611314350497602414449879880516577408368299960452334827786957620390635611643660820707451838874913303374472860398509164783777978761657533577654861545574871943465809253061863276528898688217920335100728720031399819730644320909399041432842677882764382248646556420347771145625790445429556879781878423126152890679353838891001851039809519317652819546453003140111742754129263410540308657538667884924760113726813849609337223007390094410681964988145939227600230130754856261153596949323236145793674431328675034907430869674966092115506038449164650911255633451808544992958342726654298162935482677028796934303063917763308578426226802974108107686815795625899872951035838208837837222105527835327608222801773557917566183908217002600801282505068534642958578029024243499803722688792415846177454415717734622297721358854536155505121125912770041855029691148036027473065459223611314204156232850422785337701128204757424569101132300599335432701554288257153865203339763420354373360867819543417644290735801387801376882605823970965406999420038104036428671483074747641541189729519483907160415023521149366598726799982070065017380799969987607103181841090784747389600488629959002684772193262072786825174238310055914126800687003937879211519660060950426022696998343518745773637005279966301566305869575453224313654986111392329582562623293451521146427739324015037862184087670942804715143506196473929576399257191402681289602567914082953453465530274284007287106748669872650787251817065331258249505636008003559735464776494204986747995276980268508608200296677413437515707099682038585837663657017084089587657646083155085916239022949574981157668354779411210654098353814468750780443736068271908248201647210119976175941296480999004744925224896631112861730095973166117341554805956996266398503154578746621448737541203267643799605636415235443364069394943707189364464310293465476260907389135670139647799301084509886975066349905220693641062681707976633187952077838154760732532545034102867946233112310030137675519225823611831745589279147309559693942417070554123469473921224347745671943100665752381948962864056987136530423823303697811493966958709917805020128681423956709026065417392127269441778045741567106637214356078638826953568443684457379114287565064970766914350469658705172815714577261587022287129895946188744687299072733973020160406190658392782614211102888156302791028483208164507291388240303470864263737024622497468242500526034327755343008112111496900918949124533773288789562252656737200239141024116148244363457798902307847269726455051945827418925468457045537385558082354973875724663061167474747469297549356563492997500031533145255251253115213077748243248422876998517992524265572817348186497466305256404425498032325082838114806574811071431866084250877682112668293529268948484053725582273878270490955788528667383173839091652694896945436592046719771422045271565483630096939312122708540408655581961937644023814032675960060290870086010338976381732488752003766228798537692094777598010349204493444892677538508607308024488464956329426776933762482182670257522990740134244345209862521450505552696968827317929194969050369210242561858390752575864059171089293660809239159968510776473970281338766780409231642505150590810670115662669606764573412026919673656379937226238630176510747991983941286875409329684191739803407099072782811833357160040640678385774802752667874442891306382306370838102844788573881751623504552548638122348224443061263065421438619117623938848268087403147480794712413002758903493742100628810280165721196753729110789463664801847345929437700039751952182578283664366870338973074280156336487269472389299816153459222881277252698876731051245042542154758610604551580483556939477449134336665595523227867803193186002810018644083209759772948149841942479179390256122182438534876024768201762621497995745018179173090377901095985625116667576873693118121099740124824978004967931043327951637558586313367792331582546327616755847602690328422355024601687540707992507740428417853193073612456477908834894980897012796974728947692743649393416970493331577977227464354564581186136418676242634933390066262093660882949070411226614704394656435251109733140907997924180081919448582164066655559309573277534589708918429633649482905867505406294858617930296377175715601645182556977325197795050154693308708443058390172602646108547034080870064815223296573925041360911311292040490972483258349345013982839050643018928723238009478071085715580587973912567471013035824970005165089414945833385402933280287997151931011915488498594504934516221303822445800348708967892244996053192181730551565424385700171108815033393476460251092644974867885596894319431937271521506259898368062464948325973045455647516821934396707220237714026333228493697392932085515547260222908689592837434066538160689935813177610221951476590373806573441682567544888775277943382890673634186681041940981125888075144861686140181037529243052987032259377066350226188238199479380130146643047512619291027898622233886593647223867288052471896090328986101415568718512937536813144706308678290237189368741424363439232346653653248423038609765333842604068700967373646231435349496273380396865796114204495092875718096483855534880992820905942245039723766945637171152377409479708755925606833071082248793675077084201949482548742937425699003907458998787375737942843968493938456710687268970312821066983991441595095907702311751281124101844039539592732586680971236886094179687612642767425768915910793852233449533742635728130011315245752447494112344260689471377686184956734311932715672397734131758972099029517319662056772143636698256677861547282703560169384059456897532086788413361502051725379278234869857143534741852231617998597355464644956701720355362686166867573122878971744887167897198270495624465164887409414809821504358444956061360390034324580651777490877991299522842985537853865579474316825430228570403969771819609067499782367360494755129329751161173124134315104663441908988758810865574479131990623722759474215215664947646332365596342612785803156838664106267655093083020121373077032439527284099726230500175998244822625455678116039449635647666233727910626632919287515332237372641373744558229883367883739632377881839517871054919896818853865290880964243654850465923066183227883630080927383176787758612168024609160549208830514506895802362675510252624053094273874008781114196992014002599736041367717456583856562839848202543050950822977369271039051510277898570230793077015924753856495258905969694106420903591688121727217909456213435551027158805526889714773331193759763244187131264517245761762645514355348830424314979936997168713917357333613497461911742661058439943626850947694948167488022736533023117557394808718957209080364397904848354669576336444242696714128457190840066756746804424494585472781894611657009185870461968928524163611500985788814980698129732401890306736956224197743072251600517059354869633835580964906232826805147555918011855840673636434339466197294379112748052791910484413856786850561101529778237600520890671769151411039564084670393236409438911805078928414420414051746169931092988998882989961681912273375396597603302753193527380524279030792250275215789264784062336276731392664061458042688166896650322074602198940505763699264832407074480526202248495135310199213297356083234443590967545084042773432913574211969604488530566688814427282654892413032806491628630306528730282415592364639828806188516177490275098488341649368202492342012586912310941496839024843747379065792797263325819397184691325227728883049267863318845806595351189841577832983385032756560965842679995799051567579163179566875809700588376808986235615302940489258904660302844422576910618646032532273204964388705437078408585405360815436041633350191851127202714546743906136013184767944544266173607543248257397213908272539899983660499160953798122855036993686664921202113500997348077458964713584225204098317332949309663333800132250167192778884214534053404462079450911077680475796599303754612835994661374476490840005102986225708141984318892000669499444292766934557364220358894929382514662098137414503325955026501926408533382364388428062638991293445036953125032392874441491561423163333990942922694410624812064842346316963044187428704387613593778912323465158665137403114681798706779018897647885850813353489436045312091446997623265350466016408843903292692601883499400184807516042869009302992140324294299071912777116648183643176036187400180922747309848856531050279755602229769473414354155591551985837623086622605064820731118115970112026976984302817754000067471456931766499844717251088102539075290622630211183964510831455881637749905529812537891303472813982180948490803844531672357110130438676436457122346568587598208608474568238059751678906693706126120322964526844288446980043583130216849877929466465903140426729073739811406988815906643299105798469129742488097106466588007448039447801187801099492631601376462463118344103093329420995722565093622693036299306566246505546718900517134446242297140294362085710250413098544609248989605595164591935764084279492910975422617559491938105303736505857632152000098153099823176984171560449992588856042553612765914250468048928637421211732632103788484099719007635494613420091428360713117844368661760388490386461866078517597285853275281986834970270606403699373156487701029993320501733296599372891389997668824162565748308775541115321078418633883224649458827655596562890417224682425073988725003029382704946934982240449882742098587709323011960740774489880615105757764996207374904500108282321504178121344318035404143322569269777261862343796407264214754198606142637274950932397032848777949918126600579716671256788772574683271622386228930490185686560446434055679669579860537915290699250535391533032478382874720812453431501973233573769147693871947356540507942196058171672123463355250806943119415100196701013158350955349482276221274055742012898557058183611558756464616673939370712247763378729836127056202810988741210946199911034504486582548220366829895771092828546006833395922616300425550717080344604052955341525025776168778647393837785421240528139031699382749437308347389269483933966482848981002612258359706465288711564204685725767658083159095044368406553676595300981525120850084374010151370591218651711319869534355163315230545289795330894932061253425864121540953916836970630065968235412424117325040523339402078646681182324967168340269224671512225733854908879729378673106341936463065695043618801015433483384576438423461622567066675617325981325061759638463546233281293958412789901796094459309416374753581660939042950797420225369452506771935184910874113998113188601700217834075815123481531977786311356834606325705360999617371792781722310205359370954675710857023091399251203705560255145561590025464833922394653126572661488922709448893808180715161951416675496371003922021315888079293956071616128103253611771155798141860169752827779436991927685975893156371239126563172380233105287076327986956566732886832911254130236967470498528575487644713725549333381870843067260061955446937811804497862809182724181743228544572833328801788688544339666303174403157292537387000785475376780727209365255101263732739753717243514090806138336977298713835634663134809416988615944223610767781416769507799352759369686486588758748580605968317849289304615493586061030635483867852043169559623589069188455921293206389729279091771398475345268469572389727981493262330074330163166555704542894727808577753520817384908200627340387125074224495418652286526518012152128265374974856181376982730903688906478044042577718048551554237603790384881860605293577996961585584024535819142937396109596171579840541404451414341936479453059728699457839319675682525418830808994260673855488007482123015961993762675626766069542948752609012161935752791368269348217789130197463151286668756509855801831456486518062546129768745008127902817184680452640648942239520043054294745681422353291332518266877022522129134634630815617725364537278039637327049525136058386108077845156459262584015845796783474596202359025151556729319052058108975276099865173938699148708141464246521943430043047024334116979581629757427645756003703678679842392878477059010569702728086366380107820819005056147021559613614569060488073034981798517459950954746112073880454778128717271545450348918699085172890963242779722077834887858238931619415487290421580005654458924001550076693118375771156558824317288480008204255241053545799152377371878910111939686514577101304804876058094714311844202940904647121847079718692010178286810022408573906030024351922112366587862605577327050769875900126459368110237192993754013816376497858142831837502833492485915251000035207162235452583929519550780109766843526780279638356051615158674526821652214883806551579493509274875089433511387266009922673994365382230116442907961273978877187558406460493368342547590830856075889724953699879915607834262198620966544140747357952806641308299962031882198666011665080731323082469126299709838517943852090858284303570317674754246888693336077561856810318981183942182184028687849997795095705038017172095934127465632660597493587732108352976496923387229655201441281307567620538106616115152344691157532992623134674947701888049636215201143816473106708281859342098019939914426930100887959396850108741190652320437515969356923212029681284727511390095916661635892336683043699226456252794555864219468855205778766713547566015893693935883850583741430909067994315356386475747361418547474208301822362648120006330039282008127239472507347503612393585544454666669243742304634720539402966857987361885731694445643093620303013722718845271137510907948599042589029054382302647131257752715189003908138602026929080455153281781532702515939907361449822701036718863319473220342973720572950691614384127480492433485062921913887517957268944402851690624680254528924692208862486314643415974899855083750752622032540928571217363279215212759316019840391227597534551290075436625829171749350542702888564309225677829180592694143777759373619740971352572047145480132102990868923757806348180889228532463331909804748102094595556868205900545749824426160408254314595053219518826644008047567429982906551837827649223078788309716505584519220256533151397485292324746337181151450084396309709457877140956309249906715832742662171089154066943122627470936110986015249339897157306145338998991910757630497899651298005046801746741543935751527802675253546682917364980960977673273255028530877642397377999790387963516954311618550778244075058742643053956236236214401475100288818932085310202443852795832568595774997725038285873975586273434670555833760679289174963252023295024841798994323588379584782706909797856350180258197270872287279025569056575656133483687303498207665392212030167129660493365015063981816811638384217073023576808573780733804779926464678551734245758279398405021956690242874328623777891914180788228273703564386777930146591041053497535467156415764678840652420127584186049487489644521758557983240703276744204786338600231501742255228384558880202590063997466667628530448182979481823852864645813207663198225550071973836154042949487667827620663429623961851873566585719607805825992232639273734281785310931143908791312968695714369326818664553124689385417748747775403431511451589121890569188505065569797232556920144377040873438575972151958998945551353463768662989671182686280500262476118865740919073886423095801222853212601356897414189782574841035426129511196312978145590928064660752722209411929883132490202600012001624440327638849354438330262765652266622997576439420125043315280254086931653494091167132836611670488722365819760492976735923966460907402613732786475237670220434065160646245772311164156546851796748134428091912278537922649369037212789559023751704283694033901666700019620879294655830522901248032394260113722432751373909065352418124063642957314456824140434864912876924618135730161655475328025043682392930829726053053111630396017471377883703226443046296512237855685552331055673623651323575902783939517824115907430969064096729462785072847421028190477886300580525985953222098212556324191744247230956826235564183792267881527383196446549675428520534330667930500046653867334599492464308825797635576658553590255019219084950258327388669201217240996764848851967635189088125130075706044028153195959629590726128735956342793501679445014130413941430532452397745786461880444039242261393159395707847844706225433826037485367929871087081403687436503038980995404622027574548463545265421890952198066014392537771456135453609634711132004524117559570505989235723975934697928076137058262279331791223335236307976255457896589265622828317351515734263681673069044383004754345586631629723631200074798098614431104758172775662294049439768595340618631263326444332602748432736359809223729669467340398526623864111207082384674668937995115345142098963325559487336514947574743139272281702016310224496198501395298603640082774893928538270863870428208436254686693220586974039533639445964654214951987472724307318994129225358449973983547441869006200349028773763110814703360154146194858826703656768120630139453081170830978524829312474885853948450904852872240757544775107752627703379064761782794266020791805481478772562486906149493127471818955883743604412051278472474393199185371682317670737182379649001997385432712040427230367402573187512254007009058977920217275496796200865493670063022791198673193022299382828084422706729345302931540052354445719976839408569241847131836089867525298376124314190825259928433046230911266164048904569242779429614984255630710756458224353721828445119181449122801804693870811582315547069810210430459783849884885490074287207082461609042048562245047835456661534157129904216832950813020614155107877243856643924976551377342967628035672343156523296740905726264874153390710119592172026674989126553092987704790855529545862265281423703344819801657172147707095771977435607042100140340137895807152756595501304065070486497041518581177201020814859746181954680398974245531910175120189217874054741575119960662269258479799490207668177530949178352279524234724575402250000292850540504138949184285021180143340441255862851438333471051014532812999237461497906382918460811963409510170277085591705173046508684717119175852254936895914955561689383464346466853024882415513762364504187021636386706967715569235736811572718400461762713888216558263950577628772629629789789488569666605952115342107750500117508957637961299775539973281905561478512723280861918225114124495132768323957727104501316906758245510206701945913611659596735897067402578498009732943740589077634367013381282263426902071670345430764858591392935775673129176574040428073912090795624584976475875524234571434096803797757660251940214935272306582256831110710316350089052562057281805874007166078466886413411060484748439023219360246641387976406201826197497480411759287690776831786174976635813009332644867186916788651189046832869594179777025691144015121622229670710825639525239682981440167620389115098847856314628567852530876794562416981234314882184498733750782249512920876261867923279699765315487743726472886614216180949620793982779627532878260672293663035304387593115741489189541327877852938527764837538348344817696902218225298286254211945420866887197449790799975314217101166727389386787528629097993726816169809396237069331763784939797291897813470979793347233304454904489549237102348931122416308738271197210365053630716453711668315164960045359202761345224769374349419875877661783849293099200051651213248290205669427037995307467136847495960299063232104414123264053148452482538712267347781301589086300756910971522227201439413091769426508898246672669182533285241826724291429094478984232191020208798104222251230374367500511520127100104282912060396657832367191201426432464980335271657506230874867717182041635394394410434112284426429601118714121389788464835034749866363034306197249666300156606361776108392496169976935633208209355139696977633885630648207640089069000395143763991162198095041447085470999032926428623880309071811749606313584449444929929739761772677506741041156142126340895271403103420626086284862700605767659068147675800321698409842243948208229036251619029426216098619188955730349143085880860303788921114904733084551051541838498824091549606024385118262076517004409847114352289354478215584881023718959271640385670153298312023924226747681199024196684633717064503673448761249423196081351173431474332160725580379654870301359110703035071380240505375120859572374898347409676336497559352018385617429642429296317901059112085294371034846530486554619683706827916289429951182247378653062476449419275014681419453714558725249768224558132785141543713752117713858598504384512828926838944795568660891417841181300949860128158825362573268490192018863908459765739902978464524730677013312771604054239779234145862489902146814177337480663474838118559449862826665043516181382702613722647690172568151469774885949340688216806503518478235229135357347844324350214478622430449932470505497342216650507297130324064682035807157010035176866593459889133440896400134431786842833460080548720363417114763125406215834899050112654800147206001780450385972477367268627696857884949032997652902988706943662566893714069478026219904251324846963186275178150020146616693496053154104042553121935972702087729392348120742388273625011388515310752340586430855148518903950434083326650056101356944720626746296594836061576084308211245146722498510846084231127800913841427946097475851332494492099195626118759896583064774141178731962950889951897778340971290309540469466352015273053789278926433687116795105082929145836566365438179477045740506714903509378490989442085654231826527052625814421280255775252822207396898791866410593602140244755840820657985930731193700283832071571104938288874508224623359551168326423970058492853289379894847918844835909507778129893940047070707855626742933061212315534762224194322146152580571405812123701813288505153867525434472083888038971121084179491156482717860492669891937472763439278624673210037992301209761384406766555198455834513627782934224980218161713994243174793528332159050282057586873356950404666666604062234762859244178369069991385278579750218531816810210528231707468010406597493018191351523283902031531106600819913383778675481341448928460959662446023304373976292582610758423086819349966937619336582253130639334500034675770635876215051961454714326786875752812315380180497673181770886297749742290788085874376530964461475187641401597501352299376667416110852230339251049830950809015989039214905221185812828090335095185616130369332079948253230876902550188429451862552684497742156560977008800812551995550489317950406997457240669154915133394859482447070072746455015892718218139848497122029739477639510121902635165303934163537175607717390413070271772850998432676031808342004816289920730620944415552066656580333144980370058271873519259905674495759791080686079342146784368696981845508500037284345658614515753136606854754391908034581882082275658810600960657778905259829747064084393452550969130569951787688517634256791267662384887621894319272868065037161308798199784639115822681932342987851239511629579908761823935365016354602146418199949125999635356533101245274355773621352735802454649383918865016427074881644944225308289347115290204448290976550570095447482307031303857433760783993626719353631433368803177163771317199320588833427710113725148867134906656691806608950605122705801892384930844296141067082291625840696557747606356936478565090732369890787380255533610206545665949286479979410036562150468288379367167321069132121300507953828305818236888777282594178029013790443993631836439916381783875818738611236756253374806779639012806203708302973696660456348161938343380010119205073655735715483269000406471299399454066892782429589920851976466038793074046302624247637795669810252857779138515510768445328817330266658458464462934708855919601169289585754083566450539685257433645621140274610627050562032422410256209781238865317226103158828479348880293800284190384519256379678434351045475243637784368647940264916611532048797145346226644310640917821977702096414990556159712136039446699776891164653764916858952798054259387827767525996002991465813461416443905793882264141146213938520456830355115182046685732187678768348909865116225189974558647582194102566074695648692871642878220801284893517178888157661743539658537345957072252440205125677570268317635739719682060390518783011810682914004986204677374744089516150485594474882861897431095625892859995454346582010135609482988862382968469080970442086387150107234233403563319680913256996564844123507881898122828888264474592794722021234461290509725060982277403540110223707833133989334603003082944358425047828987457647630488039087257414174132216271096240731510454258777518741801781291565157001256597209236164004686100303113074804976710281904506318477734934736312824970122133511482762267517712322935511737173276766293760814626983643205036115416277129866774053092623192383621584718430856492764953586802049334380293001545752806945285219228864085390100008188108935572794388116042427362083781365926530588090622210539198572937749210764496917040869685815335829283707125699626085445461737468223294278725753052303931218852135551607612977349213603869180140653731827941024194999361373593127582554460098916524713299933798024271275481897998493890040856361908378543375745068960832507713397349584094315926873831183191207041382197067923350687175983385724734420362699010164116436796982747453331823262945639383201008853927953279302623768244214117464816300263347762297081451672194221515946757459360026353843559787654731997054259472891787071530000289331072882478381740343497224332325474615219235118231570063123124763035009624128524023112297760206478231538414252191383841384544559486471729286833407317249493600941047605681223663590814670057129160501153094060656166007253556125061215029752496504838282464303405640958938950182663279203805619777185296469538941892282089191945234632047291271734240710759013452666662549167305281769666847849437222635561467326366972836748648058400021306154575880431195047818454578623089881338538570440492204748189723339847250482881886768106539829605458897952142304463735921075733670998074822050662708112841365602817819778865127330347896314030646612054050408505535894977044459988124560885649118947088120801411095870787497099539619092039331956264558700583366650524614997437905380535744923869171178241409254119931190872531753577426656100656671372349339981451173309020188025344081115532605056308830060121705251362404056561342120552046654842254938586495602428282288522997929630690076594191812940702070914370895138120116654989052299004180831310558238285662946119084178461381735381291430369318678745161918090615672271572640818460676780737639087004793754899964070789816127867697634177627998327873434977367967845109024118074905826407619902488620357035713070766880478180191228707534412663598842408323974156690101923656662506960272990692433902970869919554123513229561207509897045993155991930855788846808026916532132304586992069105198655252459259626631912072753604834499130294647129975780833255676105850656550211587551948949892922444266234980873660177831392806489152354316436658778767628219116200115060759601277794180040190500635836786431405733737295704573527882608758509483956064168054903213454172580705293058027480573365592670599698300708033737425220786837553575462595061392572394178034636239171431669202780459307851925103252773732987182841156293186521384657106589010095639609248940777906661230452597781529556292195165916214003876369958870151004404419871127874082756983856371716587592845728933423748904403022967715197029037192904428811373695704890112940346763351265161201461054224295582299522753586018968227125260324797578200794331691566347321603910100084594090445314825053762067214527012978261556860682430525206938877785441849548198131730144723587331262679996756072695026333733700953539484403376895882063774941156885804752851395210220535638598797967198953883232948695843910288264505609305998010907505928225154845045803672757446321472784058273769269722940867887715062410079092079542103904176982897762933645744431431898278968351758260591571492907607134970130364636821312401613954142136888816426234912614491145949192517298444106027575551794279402532357267877657322680549227240481342103229111759509316489275327016946336847541766645870411745195901969714020346295214716144721782046420561749581068516102778332069460268718803701171135376318880773617616901324603488981287578527381375532604217587171693473913757651325186564028672568872976132422658933847918535121896319045951865179391288112205917195773668289664860750488553986986496231610141550218753614397458581196128476471075283018710120253622249371082340858378558705919529978404364883918338889800174057076960055326763189792837904841458505816585196460571851503950929283286391798155838226695390777748854993871450774396871257688468370952466805054021915624358844296643267117274840916373140841952664359010389756372291443331046849305635545195675623022057013509672029557366282368179225045865236551385563021759258351459465478944401790814231922685919555475360556732635795796142649575211688580643092357446384597661165356700120675867775173905338520221781526548395131057815776314884362475359623401399477610129297530879666898883818109972751505493242460893365036518561387742493018861038681623576740280115196590608670895292102316797585411262443394753948197839660089917199490927463480069532376866930326392095243608288413418284208739664896702063899491037212487743309287872170233253823300778011115656437038687823361583662912230078442307309958191519190276991706614737085788418185823812530502740756161383993076477955696850788018102591852131179429018899377528985190012185713127561251393230878865157637494018223800003170703729845087160996771229072420222089274359442812205028526414193858514061739603949994324283409530806018367760900275639046747748654975523254716444626744712003690522782498059521044825564018431506778163667430580283375119750565574702529448224186635786799055787192509364859100484455633334031034069154736627991308086283002281167911305858745655881678429080625174422000521597795561983759022118531361663234495268985280787660705021097084306799830186634041583822889586503553225841856740256031926049761142700333227063026856518597553421173614734860721734432492254438628960312960841418303909093101615748002754766470316277703069499047737717079536113600127614344570683621475584614237187241803933943104284244438862960220871188381133385442991554693700344201458307652980679161153812256458450043601766291332197020500372387692412942892068866124597825810480722663434376237464296859488631352969724782131930742153659641036926655014247066166939927191275079962294988642789510214496344862405435152938470377140869825447182826739405834177470787137077977854399582557046117379377845673465946210858961213852036217449946367861506522861769941034420549310488677572676925381944872895695237728875155161795297833005809178813856713835844855602690455430443262551401320247721212917858612765707691272227642064132414877992205570752024900970730018039273773342712762467209382368856058164363299741831094730175973010586861188821695681067106658370358222883028789338034858922078052477642541284774781015553688887307175946562711478719121671279524390267745518045750089598385005227383508125599721624666982860254590169926037124225476569961756628553345197280798290484963414423553352706507775399119501234413961647224051839653856520687250558281624603312579881681649539230598614190254267071108472977505880816637779049912418644881661489297881052035825007234233198955242925407938689590811466515483024424490911775624949186530419846911616081207430267269591188240974460436662643917684401058711707643048514386817572204486445211227831875590782653517517033870773312674949187857252473974848896740714624808742645153964418981589529752055931014936898957357973018988117889419723122373884985134943389534933188907709347106703427988751087327286068827769454671249232669319619272512495478861487299320485189834428629666446800162266341251956635803786053844305394975490229151970111705704355639473071023824937091244898784829140532517459933961658452396328502806432705883484095228957551929821019822273677679387932748247786299493567522227703328511246745148990703096944225376952866372974512696175942531882414837141570793339955177624838470248187203963884774752995633678990165167656537817343103500807464126004484126420677293186197559677445427815748071548206056982611534892624396992162998856803626925584744290371970995137286091689359352644397378235823098060785586265594936144329311621456966702691460761405337376451233496135423910144304226066458486333874869277668590987285639290338328420637812865028530815390220453144292740462672275923757968136518526538529840785964382214473001711832170542375119574853597447970176722754712796601530357834339630858538553225290861794912825825156346677702802879559109873781086832006874264328012085939128294981544176217393770194224071930627103130121049183185218405362363122431744628941344834888672007155573653213240646336243480428176766954193752302113986188443116845161116298404999571674183398037749534596178450581994288528704300534512231880055448413445741071439076220086597328129924790697596511820708561792824312452639803590144395363658831680306638884306962418688656904694142424620818778651738148624407629447289335653452843660294689461684571814255639407247389895426078459385083415062941433584159559487759762529800471007311615376746668417009954920789838436161278344776292917902700087491213465779380971226004192783446411368813795085204477559819790131355325008445071214220430793392543297866189402210772733032280317572926336390822775651412282824440117861778112183345844966446824670785072180510937956200900454517294253075161212909450077059145169015600288834675856329978997714874898368410391677756651553605262052641347289318749162558709111773322117577554111724210212095179152082430599599808955801881043777324856789641807437992729953687331962267974471633616547249314096476359873904034029352129269413728581544690917946314331702484443610958623371839378354667061860529520111964594453875453974984375772864637875463674478912545962159288293384996277414192961472112460929552660778969745585887986796114623509071669697354430124490464126662510416477785966408765641534770865171051202672040523726148434254373844023408652742068643506677097955239226270124806536646538342021487939442392307014822158682068315869736838751948189924288726773282981553933496628843637317087716802656281872194062756706790643242507745611057372373810780939590413174426206569436131838365899088998241904998977381484776938587686304638284062038782327319843560709048563573807407477380349515534089762981373191551665005336707351920619106074668937545148860834289655795029496852352368769746438714671731328570584328468121943079821579181762760319978544882942319217377754221039574621237740622660356690690949443001373565856310613036022892761113476889741043316484052328872803471462965969961485802445672972066133740748070474514266284570881693893425099252692333236445338438114406556368200971475031746423093489433197872659259504206659892759745774486918401896706279572231323909797026419270182630431793392630598771217146708566366873795853310801349917250735561912467388938964648253311027984309980107147168407929152490500185324135779290963037631568259538770006165167479901682574186452110625916649543747752948419176906868672524999112296805757291024554424409698157027600131962946708128983541065675207013142139903231533783122668146383778159076864363704668639584575408829126752032378426903493038178064438055464236699856614329992158358928435844172148378362609502256203212341170932098518167426912340971799682618763492683250605855681042838671654814714683282414826229591948710627709763623219660178827342524765588475148841546588335777646814067466186117077670530272866713028559178892868794820287371523777393456705039783909391683299195701971115267148533349497915670469021139784051034016340500512567254666087513566412880321301969461367356855192791305066641448462236466775315597970626836863077766302502572780233477982628707913833619403113215041659319426002604731396647177815700068207703086330548510736992868834555301775658617219490295598402620717341492885567714259047445577512394925687246705924217552794774918203058616629195779601511820133354181929714649763464723961611029063591677929893885822790124048231372664135321774313887974304256196174344411179780757096143862284675211796171157201076618267261833819932320358571140643875649366788240052883292755565187982199893691788752989438941757163105070191997749811368140351677674296107636930639425363963650954429712055249322141288764248762202379839370924093592767747838898013521088799997655915056677809430335547985738628978577395144413572372836896158206347457955876283600831275505361292268309076010363636956574270912364685192322989555722086959822626871915818918136353497394116745962189277319005164631322355600890777224453300250069754607678493474366704469315363025457636428915249849123109517272624987517633652404915275452753548892534403100682559575339891564416852181006378231359711110374161055291240471324070009825778021550623761749583543822884258006270033160963874792594679588091950819078739243087674779080987516513987060016977037460999777051049961655422394543360490932703730330652230835617153113963191807030470052933574699374117067550296545303578939784699103204299116894362553807680592660985136562796213673627421023266471350186180956811390902032291237335340122062941865155264118060457065715390233880381190715646069540420585813358168706452314844448766372560558061252682471868451679044265573713849356125067488202736187407571770972867639035430370322505738991463590874441008971691416349583491171065266977534648410351942667825102191252985933412825871998868687296679668651693944176729490301008760359136898706333071640744531096459280332794513734274988197101538032246422638566021236747450230130306610273959608081527452373465658461647693864322912477224447995873599939031928763729578150910229278228370879048749640131899396179911546432655183493945133863762242857591937325368437529447827651131332974011880628151819027024958968691812325339716329929938093345947211011371118618403033211255600829753981048147501511171428446556617567161467324566034416484396231401994778390491284003683344730243491732297415617274507474299299645375683940147164426862616812505555802010038453863603036616236597268350533483554845113368219376441084704804588556685399891452655754195288743300338472113887392372389285216648106923602216444698543971785973924314109739452375003840705297323098424394373212860612394155625238071801102597727983621047211896835937866261640287322872126385659053898875212204222336825965187060158232563714370477562605244084748375074940895473238040155855125835922493606720089727161437004654617045289451132769938044366605846810082544358689607165282270594971892456004028493029354389598798502759618085627992515333083161612579013943272155852773170486751521948094387105797293588956459715284441877734283615501618422049197975950256239832866742805016563179712190365713022990541604344892624134790780195744440509404671444273371043321029904695047909215825366050153075294420993462573832351762486073939647976531107747249186343600282595771106914016341215926414473044961519179212308328520559139367646347985156844949130986042324244773090585667531004884305725310273854310899888319039633667497145275978882688632823966007764067170245073543849349969433084438828511687250068570570416410267478888828149599500686138754003553340350873893286358894838081435131555753343580579513491861546703375539903009995453835660239633003416698857722302536035326436115348267367067113639358808664495494997297380349535713507361701648397279558211646274513922331174298951932271415311349243156928266555202933427739641790964466402662515981872760757085311769620678575068157458960423527544320615280909446311295691809091346358412609761515148261525379303149388766526308211354576946393906674291480041571829417417929664830882418494509352493223065408621090840642581105110105946534644352090776479788146367813962065448197778185110836687620183823709158614342914121941022274897178421583396715120844321954496676810038512016730401419257337232843021079755792974929620134265056742274100157885773200215508673162809265635279479998192365564956104253356855392940246302945898618232871796531574492294053754940034219107359697181720584075512024929484972693119395051078560399794585685740038271550505779141650006644691818429768620181490429607106461563479191356932020386637208264705884118576880761641508175158476503551329590056663709867246834527698794709635805858943011772699953392435659644569244874340047385373800039542837845893439822748421386566932309512535912954640825657267855657815251127687456096514095574782607488607652707866584720696979087987043096979583907284403854635633667550681800215738649634331523283479104124186875712092865540872221389547986202150514662763370742757229059953513275582149856886675587755638391865999743991148411149122414218410698430035256135191708483070260033233781195677081871352787677022452653052170441646257754922907700829712806321864044190692084554449004355495927425767920342467012738681116693482313775531373156510641446265315479970075168624968249961596077446705385974540379733722610020612626440889207760003849907432406654532623067313897305472724760307362814172754419982245482782456301128903191393834652443375376776356363941720458951606579873771370826600354524078870645299791415767744013243091158082684213699718006730514725317201053958889236941855175645960340864835938717096811279121510371022413571052397457487784106694281942417954111673941698174376239744670834938128989052225796062874536597858338859350138023431557188648991893075588630145939578754137932334801159083008580456133363113089976787927671392607662888021306168722180012980338290453340847956005749684732019317253742782511536313577985160715408387212801429282961965255517803947156368235426947281451389002329992723600597179933211320525943720526732819118780108232617738703327963389547807637910377192258606790017585898277191632633133800486611944704489938031695588213745198159700714333785540684405422832714521119584865278180594802458364733559045470220165801054413054595837860835900945799071742420033042855639471914614069388467366140711348971607656118522382351653935004193981153927466243188412962527034434524480520089430654646124364699117493358371326907810055515387518403100191880416964377028368415667558324522477325352135039662429712776435067090478704834679469280269313478763610322337984544056094660249395154054505169955749070780775280133403870051080533483040001343951844937580051392685093893908774395992623150822518551040019401937193796037106279530533915685342951078912559004578111021976007317782953573860185805952200944772073984323007220338692974406180914809154151662045732068540152538866374428867645964968077100584375117422323281984795083661136668028281228549571380608927952003000541987224867716167615002700654920990984290875974376579949691551764737419452641253933487165801818536360512985634467612557172125044132499606722400429494145548877355870453409113580481314449729400251926965876703386969797780642267972925576487988056099465847966436517215223387364196304648395021117629695310527611341461809772478058673702975487597986028633265921373703110514124603634218325903703450089358037738589847718585062008761147153278073451991736321609887659281851214506937528040145140265366424166347862086444482587966067818451663454840310605942970294298980626856687792485782549071184627795534171923421226415960054802588495473557145739510112048847258302317097317499720875990967250268762137354416513642618961488636703334951502203598751109154916041301849940737932023070858997609036878974943511448471181517048992887479138856617781451224250782902563129784778438911325160781492451874080733325096614960699953777292727732211455628905923592971264637661433269196983488248442475604163674231964314350172022526467736085130971144218665355243338543216624084729953370016817371888061782057297968596151087266948405575645788033584685458989601098143441174808408982356173416025457187842819051487201565432804778852931350241056588292378304790541890327962132827152198458639333084306993406481044971462540318803881933974329329240650716065600232889091801167051600750319509207750016853504245660228178182639351734955068950196405375399867762172055743728028500632352801461931286398918107656237658235803277037220859747004118424394571421670562985062262934121854998799797581140861282824102713025649253263292540500212593614020424352071970576679484222633729303420816014915703035812217755884481591218734232757980262239467171638447586296724654637067074505468563612542041752515981342286160679821908344054818178428871492531767516583613889559406385571059143124226411749182744380798259645650676160750963507938345618888319015984471615415911435048134315366373968337892926952960154615389212964940362925456596667079153134672453990666357008328545529600061561190005103242877928978591081003097182350136902475505318070084203399192181600618638929059299423661755229113459279257914622557600553372767028429801671547731403238099097909625669845676664458522409275621619232394176039533912480215352950768019872431432379575933538762116045798436124726651364605726639306899572786972751867264079238148268372455068735948324221983256533453071507072389376911739923718244615048334040640690953551488972853937490435057571592697155169595299010638482747789337203746042477516889608574786926936088201053702015611442326994849214235449959884596086838410379844041733626514671963368381744403673172354493783229576672811851431856756006767221637175410486020458931972452127304935543334561085673676530587301560373182140467799676270138655427277063443115048793218201749061918478436390310553184041039344008168508214462474955849698921715643108692150290003624907394802143704785428750917509077488541468263534815242454673417936096459911621585885985415597748432273671402300261000288838568777904053204892793360243804546422327042983565619358945699936235093814040989053444986814642145298491885656677647915987287989603052705494660863594622775923571630146550160666506780920354438515208173971014732163860042344910426811198436870842762922963298850439364998922042623353219173894903453486309086284989946396440411620589973722871937356761054403442035422748956215286779916736504674209876485722604848336339637525827140321297822159238100799866635962111807081684448687580292877954632364578204161221238456712401536612953039425096855544997268811832072987922325541423461513690164341750779268796701586404248264980679532394183516622092100063314478315780444139062807405568515767295105843176956447701825506858654407520508470495500845925817251297095017768833416113721006784282270493741820258564489444019577828019487674370160308150575672814690079110669256868795342134279001805897134127115925387258242433462111813380167780990148274094117601390677409282549391781619073329115972903517410432225421233294534227147451736006157101328201021445614324877536825082753263128020788625654953338654603822265456770131069615606903503498638051516957446634106307625622491468401087480620621262192744292213789580114705427658854349180779769216984672769944570181012503861395653641063341754485306644944455692033602715431629886113768007087699528525382414318898465190158769146274849072446077126992254513375306452243774005228991473865398762100204305955954076809814011525968979405901983006771893695065801609393009906517501736794669641710986672087392924580754908306109453644127211964283494150776539834003659123218293745554375042111319841997617171832385330237478833399257691431130293734002559412782986389388285374535795684647591017616760791823786657407297667623845223411027800566587011501173841086587593164100576014197577626542097108531972709541781658712579994232318240305016583583035665769967711078002518262333469709572680938236852146387228129400958282472924509101433939302946217907911428833878916512957662537694003438004983843305653938590020213916787333964780725810786898634980972174066803913233111004739059053659403200489576393389919181357253197774080824550984505045902463863786328240244859262290202222578135703749868169514880834571276625886426413499223181699517227426557604540393717122826324844481103017227038752459664504802841084415000742484731731345538786147244854174094984121921918981527385747627945128958823357320947521508493962233087575116147271143730202361598347582357543918548535249964111777392929545191481679000886807725211884531759846680171929290130202185451118773347106597565130393195922955676678082836854630816646741774994112289075869663292129918043299411517758331270591474354123408435533143767512417716235617099816585727489314167029641987422219496123777432619157924767694975240544918770488633464517872293671471664388017329711199962363908892407641012309437808191937524916181781168179707477518369577588337759497746148647689291627834416397253492119997323760181438125041980046552129827960049122026262142712665881903142746909423511647165383131269033335971416828299191315178526736487271597689313353845172155569674249949001044207638824169720250773179423656589663103123438586261221024098165452712261615464714537452804807543606539578485651701950961106687321952852731433319012590215992496713282266103045806855974042668896056356950835070429781216055754901113600463106670014036875879649085132256844645389705138326950613238403094840033955542066337307366096553258669826862035845349446331909546865637516724773905874482858250228069920522102689125891863249489245642603264817164088375655564865988773106925686653915350750136006320501010011513164677949526302706177637617786829765590237514270582190950923816715867937526652308228605696479463843094923931198200293628220995562305056856713896640394379034139487947889342312529609451592150639357622836021236283256641501829120111186923484655402937982591004116806344225500420553259758019741520583112659037375396652748367267162850133769002874833507358494957233466958142334270965165932478068060622111945698238544754167309909802084310575553468621147917477185777073034041599944183568554503611010437822775471301039593144774243104280785359351308648135107083624033770952965917172022993407253015022886501845387432611277217863526710725361067428467263897443364923109702856307438937503618590246311966961840473319327700786281814175840924423222809877944526013082128123875620851965064827704883217630019575894329347669991667942433573470295841725865952131068443849357700922494707355538614380493602828394875762494984585029366516842467669601585926104799125165828510372642980988560948878729825091301381143817328327576772546902626989778633507542856239331485529242731959783737963595152508160619981829639483819190959256595337562007656960159390868603594403032125841313656589179560466464034755100371967793352131735360742412323474506054622700718172887109520795956980989401092982465313994338573457744871095098604624956383978507246463479887786500612986741091501328425458881481719493314824730705975812532674378394430138466316154758452222938647703575422281119056139300704008267615383855544526069595951476472272688127266541629866657919710742094774565941020812837923430565947856998196626878162225507979795532882586117021037740657337088652220258569686603292910987437600910899774068164178227712176028287521839000723089436116381031924732430552010353937228598876779601133159911176599011280397460845276110469214399632309629725753408382735353548193239206326415026270087618431786777380945190640738864574773935983856645807973980226525587599187201622803073539121701349454896280934407153852686639810138541446740229059824460042336370227191974842240894320444617459678994260507573172752907494135425734201498454422967080782653654981646393512183194609589852202382784945247986437522682721797367906551221109719360026405143814067181043423117226062995355556593833807923173795459802501393046037860018080310667089119085847522214071621339189102528471758242137607677824128082537371700538918770236960064703257423032661338197530242578191012025942049985360269511793964115374748337616780395035973995722738644262166131667691589168080203848525534891486519154379719216085948973504151904325738188079158502958360777363345800834644605568600712383402621128315147138680368697485207097174690028164645322313387368341249255045705742232850421853493691582221931274216227676826600170646075843609734766099845452202413798267713714745003418189570276630552905953659810629709934344989967804778382462644624481980833184083294311557884029807787699196245647877077366978852183781977110319284394452573758044525744977964996590242158197333846627725993719331903906578390606015758619576374142992874641677105136050727012400560133903764914490956547927931192991327075596061664078118447068672028683871170109523064788538713491381037123683426412051889928243340494191307342576295186109683122834806866449414512984603182635532926031888251790483535937453706500827314664624941682494017089482792866695841946921715654460206946596521799764674819144196135241908056833503077648671430298722524133717826872187736123059600820423978847311229232259514917012277593200767647008474099712659375836284749412781563832541293099417372218640602826665435973700526178949134434431671645191361353765453740418250533239061818968919392574878756549568581952054554283715721907058335149308265478578095949194186024234548502320220575383925586202489957188860220834159719601806320107129398776085545207282837172974414503575125750851490800876644852427449495612143685056262706621292262933778049134319729750031254962176798290735852043478146543332316481636160484544452257884662109493941178501074039047620937762111154076014094756380547265484171840109399756788081687243083322364879821110655008800624913009662959358341513603433640404206732961335655962076146793538378140687363315984154445902660291859077042082583899722224376750145099577677963678663578467355820273031158073635794411607178978896084704786937259698146413755414190640807167200128270124848511073188474004230767160839553697212437198478133056388586231645328613607115488634744826679681962512101616695704502008993951346648826899024676126793748978974624194621241759216365765734248304685515869564594601588369987339935439203634096914919766279051428303046848704342514362408274639847247169596956479942973923231852595688587025127677183741047082093761526046920739088367144443498132424322398013476572144618700440694733114176919268434345746512844568013060071487769268305857053494451274394074927129575015207032218132278367609872884209849877463345863129331644242357235209041117218323527061585024726808360947468659482352416510999013341966387200859402264359969214248382681765975231342998988353327834007020900570443445489202790298670419736915991541782551080281116169370812473914793283063910779926216111250836307704450446410404519998512316455510012673971951784003256887066497644105262099533198986362443526153329109288535445033969106184322970507500245589162856194036760957049094980877643903630323422419198103814450201481715325768173627246188445746290658259954773378704070237485392731118064827490331391103257499201142178346787469283222979956298961970045357134400012095013896598773318262796296110937003304521596606360306660627289776247222826998721186363870299137579987449916919710038524765709495972635384697658552081942698512269200386916099524611070211346898340924906145423189531962549904440321411713553966188109451259026944414647288255541055849411126786573398776063396748441896519764460682290602618348956095873594973623762020485667660959866189230876195411020050166895751774638932220651255959640423982317028530511530547153565024993727637360506486320019129155187172162371623373925700575301173551462514755740366999507200627934476203398575003174592027574759496443586708379561811430585305303094177810516064867899389230420281440584886902150948775749278767687978208983385947811052145637233217019522719561790357300899338662329969256684180132672147485413241215176061990119436343583921931614207251682963509224952720266631920310805943667081808990289923450525144138002968756666367038917784957398351061677703723477827847005367143145981765359958324216313047656239687552357078799416881834492222453073568310188724657180517912477300119157848517547107584309116801660201653196039912170924502956077045100629346567342245859986313435878046984063811327735459432908545016692333194096570835992093723265386439849254257850423920205970586881100576252102333963159767169796263005675736924347290946681554100672961442168973252813309953415464555053284363924419715451737119915597714727603850108662105689743373377490379569125004463414287024195329004489808106600181552949306479015825268383880807071579387429232416718376917231828278157399833237255261583791839143994760548636266719664587514124909681350026370888120459169694873145124035217756443847529276806600234817645227261125354531211839491614107647655508987487778183422682742452654895555507901857237802960587919019761511307970851333674486547469520537848393344396535238426853865816033037654795818970854762431662700121003844987161440700978350107450354500843943743217899024206003634168856674405242089803605487520884913028949263182613583756390519693307581116914893839236887506754858490374641009365733600851674944658826280799095130756507526909063112102314841233616542611991698723384104793431222748242866804377512413746642864357195261432714935966102607823020126610132442025432844183049132480757597817629211090735549245213838363620867437069551158699660413371411231094101518952539405361769142015137184444247099780564231446183856797587011771136193049194402878138403171236945963646593292345655636655237435719822400106011467585701537179987642560616774059857093899388275163532795802914546464991019568370465508117500916902015081642216673192146353363193983920437895708212409327204276766221463608137162971062137658934398527492177556374533494918581018252954066432632402679667929514881227612284959297107179067189083707924702109367387647957606885361933828547912510081701766143799141934629394091817742555751945962368983116770919816897811302689286384714063443630110661066881679064733296304033183881183361322788769045638206317453455110610416603180438327952886336188788366525221474667846489691139138312255965041220372003603526534348789714262100212870838576031442628191921488580036728348199382736610756991207143813314662133843752283522542702382877608900515596979014104325847322278709107855475042429507766329274806233745965932012324008839150338997372045466774460557265158645553362767155287182805657977808566578799133863061647758030024115090139703309696320174807383178067910812951384857177900180585109634700535344948002453271403565295964678796659794821231598136186553083616566783623246814687534961300292908240496637819602577422614320863953558486360767657875162882296463343827852750942775778361687012825503132338368714009753633918851189552597969256096082481062785070178937784126233925598073078335455931695095460644078713560614906317133719273737970287741373191957543160707596725798445674996406192781411957450772770449754605690379870743333517635593263316120383623067313909558365581850778096775422795157664222320078359720601550487541459537304416560512397466840239578648429328020624713379254371250728153675156509256340448039595517769399240594622456311825938475904796739607400020844258820017796714424788371529359660357068787494593800662671227431864266442791623968489893071059364322029275673491921460775058494846656724007885523029872869888523963875460406668925440356848018395722652303396176141229092539194546679765100326344184358785873450893170226466448241809624568835401781906265462113508179631533394236526406165130282409511983995191362471263267989413476969908257209923391007637033197532271767219130439492428411597739187164986736931951605045354034042515359285857840194845491196582988709617197386335330335345407836821771811970994216469880949752618199868779175084267382528945181369019250529817621583921153335240824405358345120127906996523717800556667266223843999649704953938583157497362334234824352611334209452307758082687012059656715596596930392693163188399101004062802974701006447353224467501671221039452779139748476792784114095584229793902256036125645453584267179428494405516261617594907601248173355372131112310684584215027476537498459170326099003138310975466932949203250178096860459228281416156271684319955959742459017512495495693943025716104174189013627443622100991847515578574220446493833871851958714947725177154023164720373901674582065978726262645801904278854520189853337101427708819933994518505902318205391656055089911445542464602012805108774322108881825694221999853606485235204520823452036247715638324901484098902211384009105545133669624556142860987506468317033883415220755890864732303595897125970849006880632775156711779214030711446330759463028247643419373448370330332967577046179205882968787513850619615006517855018480507789951814360917149562502887704785546538329516712425127717398371149544624809293125868370085601113016960191813729422477059727329693597083918834430812021322653827186331077175398296945801597072552174207484197147539621431682423281766839670952919108789948327070184583798132467439349364772491138965901502075997458024613857502883429253863923329422897290571963016942497920422058804387921786135512793559335955043059276207499947162914748018824332576001661234246567038295923893013928115041100297870397985207548893193549698295135278348712220422927909968054551750755891051966401351613125488432982609208620927992553317561618241349205219943870912474263572850304224327019468295970446683886647242239720664995079668941159725252738271893711330430064421641324908404194482998218335772766820608725751638455587441861361344692636713733479269436772711877468162290772782098099612342730425226874770424122435400287591692704304198546608230030608600194265934007624369025101714869706876960843910505780835981481626226901083209550357941977375913430054254057158438755669689021079664214047546906093360258642763966804399225885844954175739303028754520494773730241430686134899359336038855009231653268495983346306856257069181188425215078027048502008369174218164287990864523794342848506605157444295189085553791671205799951855114294966066796404962073695195839443200897199976124212459411859666014289685958406085528215902554671975284888561461537573757996733285773299283888693716804683010943017866997169187114023634889249176123577516685317443353997149968159892023996384936151285174753732046695719864486859642218034290497906333237573005798808600733519825138057383687843771231768620687121957760470839156642817558191463218555604737169980934745222137008983328232607034921863437781968535528675103244223397790407917382981770897205568384275773952257052544180598240094030752658032633137078098009178255014794044080683883144560517873679177350747879698432657248150764190147864606134027950704026219867998349592408135029926121352688021060210170293080550948912370416070546131082896599712067326717095138553166057370683164636099649661133905045905652867518620626012184419026216018021114854465867833409637545902053921976904277007832333927791758508184868258827938272563810333560807405053930331567901666722435627642032728717020320105751007665082404319880323559404761470814402248942953172529182357777615043139103653564039623746111704301520821893126801373070673149874002215942202623892855064746565871698032129422808779779442494582344087409724231416671422556114105608425252034348932951392357124490485482123019417843189891767168501998633913066313549615009140234464486010069292343191012878295565343368094072993326118141007384176973351448980083946556041089541754299487071581078308931898396210711490476644574389740276392231619577062839283062318427158965265911805984939764763074893129719685518903100585714721356851808173289532005093971092665040260271871021126218889059984095631568301408174495909386615292059314027983835994748960193986120990785443009455737836509310355499696806162836835277523329806313221843005720426261114803213194595136607041730067553147521734838311939426333859288653433750491707457093112043801837230965161319325655227489751244844591462807773171478279822936400171501318431861839260689993013973535699447095373095075165931720164098411736023130175756858614680076907540790673555096602600587649598125218338272654980556079176453360739708647414338113668125865156706623748857533881720148643753071018863630267709699946039968208075617245626673314645867631773446760176176030402631765668892164760134109852256346593737391932101224086228500511338871623985323074056330471995162694595160549287692215487583066845727736746200715335048199950644737243671729528783702879283581222357575126228879756635574905386245590978466308783947641044353621499929385000320444877056708455468856136948187281531142101140942641999948885556352995494190730532655047580172584420819990274356427758973050027248818088967481317861915641930758644913593309174790959361256867022076814037266873641459744964676380365285318468066438740938201282413932570180553023795149480502726519783353092088065110911174060628292798264368280490945059417785199407942549715829692560184894218072820860314675220898152101788043070150431578412103574210363808649232876729547069349375036568221084407744142237206756962082988016229456721816322198102104381079615109408349635090187103401838065600179227777583485995638123277152209669221266063060734332967089733411611457847227522415457882569546497420456932740994579932028679085174195319293646546017906234311609587749109931158784543657437189487473681814674875838778476094316931704023140723027323804016462630750480971232734038738000543664315113435138197149723239447757683572898707070568254916660173611036008295958345657161290903839300007347126943783423657218765592147957386767575420929404130558699996081469508366456972015108530010624790082250628162704207741549147287271104642270343455839108540241721107031656737280481395154549168030754316890712456952851310603477476311795720543299320355462968844755620045208595536496576174110271980203267258278814957256383572693810487656435849016557091106070617297413637416600883650268425257206643180584301656900428627965395385533710325969118642544920321252454108565470901532132129641129550013971968773344119017064651982616789342503598315440641992969089575321451452947246620469424496288837422124912215902692431060467966987230158793437583809938473114655185602386283693696251231311039056435886574116829617900910370436679510853655650262460552922576221567537159017998812827046777291449158871123345564176370650969945029630918024286237196963649769294339694265255937293296750986990359099034285888297987020977547734372398425407893536438616579053232933411218072867055270876531766923065032892757709824204619976002839659514509991187812672826939172770825064205183241219040288327318773910230278687243650706990242637277730685330501813920889559541357867800260949820079778529226196834872289392215396800534975677685008145257356347898445395981884764039718796980008385432170289053105396020685979954996893138803952351047117771993011306489686562232878126283467799582671490022683267721709195480343170337984737209276645203069882824465802295403469433912291416037318819964778718366785925432995429862932646598275986186652393833643021954000355527575224963524392624221763454955863803782702254736259753342007057271058878298970431272879348390948087343845606652440562198791749956213691219013001565849572525855175698993736475025822627458642980538295161051062476442554811886154855968594461435508794034690988722266290949592518685223224867194309505722813114554083510689701690008268470368825963102657600924253334710705884479134996226859259539903782230629524665305457047593964012771897514200928999691692039538399283533309445640179422601771007450626553289302243543888123853295361004949109253982407197948905231244130678520749167136432574505121756806016724312991860083513770954262474173615487237046111954299916458078419460103762389643764378362725001426631479315094574545132592935790320502836063960851031186840110383780791577751422496209796786211690788211749094963274660479710079968838309914289499246966972575207874330655308919970626184319163397313117048689432393059554817147888324465669792230952201124614667112685175906175241935293827296174091995071315118146504152408057597888422635187976959581778480668782546700480712061287043856544844259175092555003350631040720116640160219163960545586983270959230700087118979557895878540284669387271375518715858343787470714526716244139742721247785422704363683044956494525670832412165794108514705472734631817009689202568701905565973343961776753056480700978814632527841885450382762439842412013763111503064462410102446788113189141976374022959007486063516012970411603065823091440873517493047624111694812081966869467266286618092156532459386928118367405585019588131458446412959343951054383209379671932388373379144754775841371260108643710548529296965050604960303393244209221939162778569543928624665297842973101078811371403961143987480352037758283611747838994362817845955394693895519833937335751454278257434431107672225701446560155615553752637749515764572283355736766760184516892603046157231965235684984211958199066421713687528721581420948079127814492689603536070069868634741190843549862752055845279833100833873079653572213767162698181065889525003225166269544607498811085853715098347654248154583033132832342600756938573570196787700993880765051056329808522832720825536219185536486498624645832775377893187050928469413753019488068155216626829258847730090675356651301844212190707430011771339411877954823540486944465173704850535825442318359424815377628324428876863904818353813333182906609731670936033926476210905652528617249531111624816687529243204568377906528405430467949383028457540900926524394306593702949131535407963410585119501738343766174690653731125239355570698420323284513913203974106089439262432238086851945125928373904809523801032672774755752522612984988798191899047363948234219736878178183282045678657622725117800639971431521231772771879734580102288581764689393316073072116710531550742467695538934939450025279009865402680090269759197990747982175368618402014954477882755240532602972022840940997058806298697385401473132257187446975560390514232121118386539401831978972304613766028189456644938450902553425937482510327966535190719112661637214270439009891997929939919281849579251591276179204377870017507129830996468708311201673300353712684256323704600422479822603811684814635068580774850289042392286871702254289806533909757841784301912723968706908594244824227537110803689634040432653822684357978670759931870573254952831019748280604416363533712728165765945990549246048842778255324875720592768771429045566480786762239338743714603593364347875114924125237147963920410574352897754779829211756581892018525215004590165310529506014876298622196050437984763253175454070105772004644242947109207703686633434745949509054648357101053216156263260627776456779214031308090576512961881464496850523036606715110773408299709997478040037124241843475158054808956400996264167422327104763045290503132565748817639170485611448819764668156548511145322766645052541452908581069770353244914227096177866827479078001873038255380108794566043226795100556154850817757983932761494709244572476540494695754047540092619367523422784520165992243237294772471970225815279673763730711838266638911206818211677122254789263887898875668745473018682671218355449535236673208843348021796996659733852271036717162292170041935013744164720545703393231969791077985630696407255863632590135575678828003559540107350213700854043287631374180659295760916949239080832847814118150246764617955259828451012014223735840165954273648708410371695773204333594858983659834950584913888164507410070220750191172634322171450631473272027262038576236030119639080421459700731622134960297673469323172458314573017444841498715866473222190095703798749841368540330363581022202662093569531538780375893661844521493595119235641275747485112103230263985064817814125790753084349416143590309669553918562616272196530905327575586889924528742468210594236494257348449065021308178535372343737013985362022318905401725296235833483953246773696382905435319746478650991593968729981132641850496151548377449995626283592149568303577669281212917410159718986866904723497968099549196586015419231306176095043905506410820515437398599812704911486410711224548976681354029500650065986191602516882516577745076979290179563776692535123586250189465089489685668144890034411620956489768330561038633412896579577458114660042665316752348883082181912052669299631167691557085579071190698395134811244544593133878369033021016136592987965887523939966179914256321217453344789412987571713879395957686657017590257328490780445668180719281987711233813003254908084275914466643865478600980403305677577971095408735834112331676487295519178026894751099811335273121964805594271026598958470751555661173443001407848585475246300768320169337284391290593350894558992490284852579880399120050559965955458977168860655863109973892530093579491459061852496882218686880752666337404398217328342422766641410914739710283277803564753340479210746335758156643338289380043465859650749863923592989990126834069707988967656042429816981061110339341737551609331845117012484939499971305910468264319960167099124986800638423164032608627021087913090334365962250812568088386147932103283695604565814018239067685229169821419788209753298770764314521482857707314624907360891962175590334595642115328896762082030973612538437165623790443459026102695169675568019220496203632036695745196882468095817783012192420854552731678128879668039912583443512993597783946143443895951047125532590773588778207007437552845186539976139179009799048758628675762883855311564679187617610751353460306520382031381930030930632707038401444950929937404380766228837508873941408014300735319525194252852764946984977490887572757391949987808223000939097741015398976502815043722004761048108235584322763246378053970196318125128021173641456794535611938535652593299472406583174590676208362367710513301142130307401750488199885161393369204450102579540578960258461738569536969867161080023600495725757184624862134795246293105472206653273719866974651198144875607039792789747467895230298954394709412582928448706439174741085166956420859013246567398159539455676819637404096185256495246818726153727870280277555040872706729211323069323958354180688068289767683718445824699207881354885145348253860261273106314936758731312585637640569751796310476107040496472419662127501025870897324481701357146136275135594264825137042787877731274119515633814572469554950528722525326278231086910968748089379535193331744687902230927259256892682673632433378580004159373257146203049428812678003372649814364792312672254705260244911718860947546084910792689527677434935588605658935148580808723833430737938417027983978628035743730720897458887242878902827595142190969808782140587847407567726841972414723159937417186212992761580832867775541304556022095751211820185070795261387321682182713484787452871058070461000948692299014955172014570191134594456372387055030259216772019097516792116952619595511181793941641441102287238013345741459065473815101397857118704836742410904737077914612374505816464599905296349769371397736620220788452120495624523029199675184468649692591425211100451541144167961906040851132977111788028325914997829760993113133450698320950149372497192961467090144803588447868552476808097183099760047435043125625765322384763769389336603897684895613067900523772825162401336042696679958559550199129088579062043106087680993512886456645299262516127336180915816704140493376381441175381981859842403673818717637410382144177979168930304440486793511887012074110159663007269487487064493248601263254405192765294030221036943543584907207795646288423586794365470702398374756839862564827722575016050903170379194469197397091557904845769963967044912136114565567390196507123552095235354626956118885416352971857383401221979760068058292619478483290161688017635223053066957663923847287702719188345766566489619447946828323837254649225994767919193123996631574198300905554955882537200013714588841186654703795669476706150314743978342279155419756033611027524968227905283247992538864000687546037412154996520107816145282287745028373050726320243124064101588821365656719603807410104411940114775631990045366125257316091621511960137032225497789552579831162984443641389726573601622772422096854220711846176484619119154307804735516672827971924186431362055283464018715775181883136600224127324973764196200960964552100208357580417678566359734928313164991210914508222218156045874196980632582336176744010696891008731630759730318171937331046418838300172065721773904619307256831088117929336378256249832952259921079780151580119707782704175750303267304548761002233007816042561975604218324261112038149969529133219892495278640463569499596781734345457073000081321452717365452748591917878360910968547178934670553276051331733878002136970640455893527612449649704384460753487241396245741767164536272916281363082625320844072633450998539879292496848201406450265815876075240742175862194194557451305593361928270266972556396554889577418030352869949259493744786724679357681587304021992937407941012473057271068075544115468643943010359726581193511600281830355943768888972264229084595222015393402609354660664826693731663531328360693402565303952049630158333813254396282425996092879536969996386213609558018435976222639695098721618154506373317114031160520593869686728723870759321727573849248409537299441163746864889598783425849988582447364832864877161796046345862711571930261007053843573134950383319210723793537242835219373256397106352241928073363163112904077293688531871310837217845101529428178992441925684026794882230379931353753353234477835682477054336429389461077107397615683672128089160156585710365490383601057611026463261103372447360272751631634239747364167116617839796072261725935068111483653840301569290761146493069218510401892579870706381744282875570711804333021923008861226170461883408184821066937462159134914519485532160201391012353185732499959001272930226064532752322735852172200510774105412260934871562990981271253996626360252418705669475562232120824527826792824574134366977446742205213498236936819986762349612730565383517693820264351301952048657908206484176761367256896766097928867507114419958612075473009284526334930040571559818400622713698556447944925406836837992729497330280543898551257984767775255023354972067120484548002380431621757345278114142458798084641497017704355840139683340543141029164952035752151532097375589644200771858582314307794137191506084036310021132906284678210288990304334521564100533911758610635448680870484968764307149128832809616149860370070519139618259156149241147256017224699316496548930689885319132919020600042940231198347721823561771839367872308014299738134695883116910681110925937936049192493418746754005303287187382236058050270333135080473140997429600291491903217923584302892109075586650310624049333014321823859982383322972352718059860481427786864321949402784862960896006093207634512826421522021604375447110257480436199999574870588818939450591787917582902149000866636567388352520605923172155732248659372143718075677073226580955692680132000564542114465457484929603278250062721585700086860496480480416039696485833752016947593061061063902539483178542696885339872339638873299070137856805607277832047429874280712120440115596436236464554235965727359615985633443499138332395961719757821305576087857612976953295289150929527495497334727302642894591659065807819798036865663213402829076414242813371422512254023900534569898146408867511941476656270484114789558017608083404167587075308832213128659607431848052284619504804408499509894009430335185328341578101969832883814389262527236392678826771337168012069857654352227906896510636621985427824666114682644515668569703406205445869742488350968195381406948935647319495807311728647993626133010968856073926819388377884405189120751855032992774109292772964692840661702502259530354452912230526702241632991940181457214706405967065203487848201131445791436698660143202909168913424018791938594146326255840717534070149958906703281087414209028626345437987749937736972271639527232388025001891002835959700644553749092533125358629911881473104243572108074103399458524779064997896165099573347157519322378361020933647340689718325732407543075893695767816568363926390304756832674994482307997439597318927771667014480049846141095708055490301942540826786248024080717810168245232082882121037273693152679937942325848852621182380856052592353747852260897530721874735857385088846259086019571993089726213401041874987502468888779406865158294822402812852679603591569246519391326172678252840113587062572702108290763277212550389686068557662156685597302299830730206939880534485392851606206469999703654478354224500336083562683338121308940851640756302611192346464145786661815677113754276628993064971151908027600345809924882575370030207803408558969998912716611427203184300989734026754890237769561053823136710607889240139413447707025710100847589161748602174735082268647652355000657004655810795530522543353703164433787839272157373851793497195123025543434123805537226685114582826674307430631830827906290844420023948920133074609603767295463025414305233641856614142675551059846752762619332612963082381827210707148164903744073608351500909656459806018165738612403076185256442568938855188117481365841573744486672754187103722266075961992354829050161755429777327714387455817091814271545219097120083259826213166560067203264166391823120075278412464623082301914499033323432275058407924379148702168793430941871798457563584759082822475075502997123915184261940090592698224947108695902953482541996416749144902946431974012972761024370651706887942459807931253412956819634121030094329409039011367011128982684456825675437278233373512057920062590761952689472983459349300815894125169200481000794099186560171442394417598021249810050516062990342964105619450126976502690357308433665456663972392180133820494507697602167514750852510281223737087260051407652811909454176269177957736655848733388985549789281803229297121081761705984812403036441818573541735857099776193001659252910280131805323842328267324002793418113217243504873214928211951627528549146715617699768899390584304567497103393166200893552777239065143318555325891693322298543833866284547693066296101124330797800216169359847259623252375045188923861056143497750724427637222252277405525657155738229562998920153783726675752722913866890167831303972903458765774700455728171086210451835277856033723208731313636168004956658779772568836582296798882962797367744763699369686225595021381396679862281077194997713377760500528426239544637888104001564290011913810000172500207731538354333847496847613254010131232953203478244515318981747061582719793097563582066743941216833319051424468188860274422876384042346068556793270667953863022906503227278938794793362019366575301611071889005917467151556666987382996000394834885266542914210904104979873370275612515219632394046790560124501792126447191482845117434990411821197868078565224867548534913335573006844484615749264769904820697615485642386275112666164607851318584453211791845722567393287302603536940334318789651927599104507466649848500908265723964825488249567735270343860296197634441932803920641808449514998375342268833816488657039218075602386296632784222243359824008434068123790926962929945923692407342937146065675216051361823565379186978556002010083301808696232963384244640137494479450153392995297927178723387334515363137619214578113881301842839790843454976762290552347869012298931915638810777744178369065717916948045774778892914120934912076874072192283837890615237533475355345091617105454332970009193695393138218188041675292968738028751382047749105936984046248057184593192779687186823875141569686638774572688075283235409841188799945858396822552423898134643279362216465462742615597469473125537170069568952731094661782939707606376067940380568626970047099724563799294121294723555561364846757076301468055518053722791606717172636281150903738958314221200007353384206661502178319312812673435715898527581342696919582612448753520336591784639360452846820195109113253598354031798102725241443147350769599871368045003922802020732470389461628450201080531082406653898481937125005595751565713963751554817863651441653583628700669510947123981933561431848944631323131732832447901246993254659794413405096990062664792934389481093539148089474050076905280408644464499848706502915743366065167053906995077588324760304311503241893107779219604069237702901178363396128114110288342833836225977150540299259671134278685643163307376863941926111817352011801973739114999473825630812535646014273543243976555951320446550780765273616874785319509937762511671790067415804153214330026316809449463901872453176568986507714349649100168264563872910934580943338956239085807190367473149253041426009448996280698572094121177406181333882156888358606993026058383171365099404530437431416182833882756533158345189479984600206040870570365623867912158425155732624133688012057904376428356948854731247707558610687135749080654140903233809625449710783973223282127923510899137751327072479183649413597549205560296307553168988682346213575356506059973978145966777917833800390572342130574177707023415170612108961931874025381302776464155545530855943497559766406679994738044865622259834125668137228247232734317209040498946186203693780626064879303429697524119650303107248420052028617795751982036295176739319563157184027319451947051962749097785137440848612015843033475362518341953104961305243625831723043748383325850100010387756132786810676899559924039653030904327334301154713852454505373212649523302513348033552441438526045964077491720369457534298245024572202290663682441212515813147664696752993075124395959004114790929036504889116902754601067698175800212690289594785863600858488610216726754903222725146798506418132733365432545148675221984304324599714427666921134484824379622178138516420496092721416598011256189416236907715517201401641912632943846585160076382168805349564085347995386448898428502007080275759240371469745796451774105915795054767586417110343924851059066237069098843501427308285799701519930170949455087981803167627343759669184279724576319593495879264466445401051129390432044084875672271943052909099428740035009369848407401233972610094446171774321286195962603435739884885187787240621864379012808345032656295421489073033571398383154530689069072799507692562717249619048143816344913477389409779640294854077995383266429520129509923223482097955258324145250294943676066722043792760192861872319886867452124420936004930251627656607981913047533283096587271485287936702634505155624232790067707281209249729128785246257860041734546252770688167056106543558364685648606181357805591598066366266740656431147141795676210630342207687855297398288578312948451509246647108654025395595404683955713528004586770335196787204808523825236472885232486496483034609553788682324542677101492159237348261422692764298392310952185426611434258602761775246786099364031243273088346874956042972473545142272055726658867481216453858316668357134807599128853695881180697667766734320569828839442198295922135439746948342731219681387184788390639464410586221945058527405114174930781610012319693678442005320668836145519302002346822269582195223247956616213533117843284731771084568511955105818855611330272746800226785736378716755655600372420492415694393017641994777519493657299802371844264306842388525965893875423893336258262025486554406427914795707148362388974629587343083984562761082235612273588222461265261151182079680582448019591636774133209046150333150995676544852734740774114200967860416216162701326412384231789677494852823319206303255676550555195257421711684790614694334712557708404557409576161305598305758842177700286098687749922423477466629805402340128666733488957756096458798268290750341194804361684345565878122003619962153747470338762868541447844874981866762531197350001711131030705391097018198288653341594123994577726338283681433416133643726041770825709949420413364270427313981877110270274221417646977980470627242855360231087065271210885358605718010719353561047833599627321069143862936128619893637763288490425771425892037596091048856614296509792658536489872134614360090213496694606410046631332064959475586655875629346176804076163397483829334394648655695556639169175625491404381871841128653957854264589387205906550169898616857078893172050743171734079071505725055735896925147355297428826201855276781510384664070127801627408766984424371659186312297619798984510189950594902041975063178327524382451550835562050226100947224856884692347700888267168896129040566432671930972212785573369402554766450528526743637633236603830085151950240434683069804179349486331167725475946075049876918578046290664780184395452936104279927457736780360400687091864323588341703104167592041506181673022326912312848802441890835888953328280097788983376322442548279036298110542867947412076885933988380093932944010485819518450784520744606685608020191513190350436557750620942118473404926411948074806578633537019876229610572798412655155781867252128322186567869415666862292546071263496875985148528922589492492583605795477197970409642876474236725862536296077024397007183370230242828183129664051506092075899266800444669245545798298118401845093710791153471527152621864683687116697417612058099068162907170712318544952355500282303329138198378830867872300558717593330589032778074478664763279609258646983642135615142061094914706874793712572369804297755430212277548469843539711742210289177819326362110743927455537701453656244298387452713561076594103911507264934643943281927979434145596510468803773832229659322181962823442421715025622518997714136414190208759492289919705259728396787061920324400611673627989702018446715567295403193118522636816332922799429307962717618839646701543315219626648465833901650245530091109654462018097419236072337398894418157335626091773818328665097110176543497964355164548579731035520043210603211211334104628119775005277366640150998252545717306353661972390050985084846527835356823292021609321753930664647355355669987033857180116630445557173846402539759152939851110985440694067988964479730804591261485440612155773977968855704302137691541854098959753606313216816701837603894917025193525620079991085828231914943149255212365099054331377436620974943154963203259135385908358334843829539266513701570072272862157673731220591105008067930982589041882333674526373105912303801630976617889856752968213766509420880215767845939147679877652359259715838215016457698697809496837016184998023886975337102802811060895349936441701798713725960093449312761669370800362512149257045341524292544480380286920163185413623394795819360559462499385727150377400213306766985030193772556630981668159496195082192363505532249401090481464319774515068713453140799467440934807984127773608250258269719184528312107659118967237832476107530319459044142608677273128209469472779356006326128534450159966817398492328737556504798328054199098012719151877731777281905607511216187707242037565751563559216508893161687841090830600739868366360517818506994743242495505664437371726017114888438527197165201371213938056420097419133761462535378728651624862164879049503533214107756247024826673003420231470443243843375465108800827531342133047809510017578667341641060259826533342601545511962575544511088442820338128909678021220480286478332398748923186068660335127030123309292725949923686546962429485129898955660658747190691293420287105592177471325485168093015173277221006134029293785724057901554551592460493070137018918381585712352461509631133621844257035464851049666202881184216064964723419459532582398435813542803976250682087770160449725488209192538555230451746558424342738951469310736765470053410325196021160236096320970357048033487330895737615942936508129965036891854366503553961233196233725450896741822770357520302143043306674152278767677654591938716637521453743230218843629359449470336785465600734003908712565991872807520023585059377346891957140463933754879466434414595166583256512783727207604677775569388655003945138692077349761441867586599177137171948844165691791640001330991971953997628972620463126253045463784018712436568771452728945369935615945729575111236996652350715480930418345889133705906401057672899304256309182411899878597527244364226603797861446788349083747812870190565865488991742315602061964187843833807238997682445063454563784072944354567368868138504279531911960177834647778003357230586761736088998415242957584920143341352385184112937147564577046942521901688734965683224943375470001311276941329712401334171429336548984302356850973294364717424590856709714059377225494840574148728180698904828917785859909861341909258978847090413483287441362791604070632871287120700796873679706830366986633643873108987645146583800779452991849797312486719772532026588470105104951457046104457538479664228934816502632674623280207258648460890044750657821081497612213506141294566025547080048864386959818869333145787149828888601724596735663257958752548471209068559182449351718994630024016752158902995159663892968136140483450157849375173079737161240596801151607452796356106209158526545212207499693293072350850360404574927164110380705391458414069705633815628977503203481970127467395227785828232887653703333589749174608884371792226134528018185903672997968790604210145837343912434418879264088636642130600071886676197764068880989130193306367487333984406559017864073166564512573852944876420482597127680679411452616933505813764832132279503382553834682790988506428193986872175682803230909992740361965246791948399123534668477219679272276237432263388274495546916969101802238758929757990421972061260279801135833808099031112725097527608326782324749446848842410293617652072632657153641256615655393685249875538340316836025702580703781751123861635561459083439194759587060695746135481983968308552170397862902412320967941168636722509992242641271329392605397152697777411202846666929458783031173390429818274397752444572270405109888850221796103047194912401943499252217715347660086690425745040278361775238621824097849749785810224507690735713291736459963339046890330931948598866451008270185293778624173969063806330599078697733883236271406791305313644593022015284344630256303908311725510704585099793596623360139757973547202424986992998894402031553584258825909926643749690407927653093393576849243500488129874939274333835881818071853184965819024037584473447074881435651460587474442440951015522309719030880308716257307951931158415059301391646617915105570285127375575363709399112028839437809377588073518440893124840773425437740334039663824710225166515713245196863617937733906352145015862207833240281578324292450833585793175521362567877768018959119190929308850976471270986177681670017633005573622009084681132105186198966531916855638197842954928141072861942442317793332659125833380090806205432680670092192352809114296022037647288935456077985946683744179908188793971463744005798455527222216761337500240737099674449220709547462167110571184784277561112105146539170098255954208744086358244373166607615741074520439570004101229213451888580441095391875537098672015970479998144947659040869238137950001521476910955113969545742324880371517578986562801846778508248509579665367422801419829224167975952563386430994303542306290066355352647280709097487298495633313895877309586338994190912610804083420361073125063631804117886883005597869926056448611382852450552053879943333647370067904723869660087577367008744939310469489980031804404304772611064832312165824205172135681070118621393922265445893997992832389645214214453807632061790073067241465670460170394294793769903375755065140370883626579261930183367584601980104264221801677168328099335826686691365972717452644317274281593517515019567776638327056403235091249513955460870467415537466438118948869620203420042671189061519141268453689005048302391993918791362065131782726927660313289534904058045556960219084827712498326611748447034976168015159774882353109157702547177488320316677493711701912862860246333710970697989430362468157391885367180156581944809504468712797055580121632470641462767003989446862728000718796294319460002116955801002892378795234697592293042573032392154051395293233804600914628265821144266566745921125566400693577601932548725396506451334096387908106339532797009397552839375826861752876130254929810483241379780371489228212978873314058763353138873681667677687027756769186645416846916579115455251442779804332080161565906333135610802801801121411487031856983424707335608840653306480253268275505990092392710477096226929924208560234686707321390172139339429977128527539295560047162862830835323532086355036794793268096220423329529203695817729097280386957881217557262269291708360088903869653746685787101545239425018478496230949861740430925855025660697535301439735613471489432066196340296756871853216426016589016472232737547886976845839627239072430125658061256081556801628584036978032883514140941484812190540987901705929791891289122762608934087419623566237746585025814000793172836859728423991714240294060681777825771298560143643793133741959142888699847283635405951838514641551484975531886614933285688196647223474649660836571730881273326490162560022456806508495210616546600325624226180367173685730252559937874341783968260259928881331371778638179267626289482332064586316362870273159657962045194774443842581661492809959271659417997892637174404691420172819901888325804758948408614382136710792826502734911858105214459914516361014240798286817900750234643014167956720007313394706407836566357616860441909589932024231254204070511881361062260798136257320240074670266893982706416208535669340223187927882341017743563958199851875605374914933621768011044206725422059740118400772760072984603177405019349245269213657888598471795353899369566135896572680592578765664216060055851132273149523498940899315536477716287233596674017711465237265210498792480411202511392777150481748828094553864666346384040484573055117407909740584834265528838206888412332294601318014474542958043210351825100511783264997619551017199615177115821653375854342447274757214643628312858211984173873049772907769485609067617747290076588341783237236644378291504309533142866446491019326589592655762625389538998769189364170577869333889736125218758336499739435531692088106251471046121427881710530052876689095194903777914390567634416944464648659132675036631731398177507711992993990419598895663697157994811431885345068968875020248747710617408153710969290051939953408210923401408851500231885533414358639213132277058733765374339187135873886509800251035992181072143502560516982736779191726461256215523366828349247575842415458237554258362222579561572428071756327107771801572298303310227031631293880345421617933823943649647820100514088263111009949631352827950237591027719373957794192495612145410680495584420328165010969090487917389707842339993080925309265587232487857671977525187602032497465660820440085580295264218664003610920184067390001723982095410772801908609271536822384282533768660450149071831719913725750249930489271088938125013084342795708159020989070760532711079342825808462209177490374356880994924751368202783500732021079634050423180118253382328067320961482450977372034916811549718852932872851186597402396953941944374584105036381444845732898432427440580101382185518289763840288333324388068000561553873411508839470132010911379338733300228043319119682319385237909966294709022762803146483947801669071998111370362617310375971845491226030276115035257028709282985899502305577633000184169944818975958656597276542791355145108310403250481632783054845076554293638789162781863411387006392620504321644412453681926199320444495749551074622729179503729427136443904418153258589923089821303981574562312622669285113796104333504192552209281107738742141152473212977093104617955401128020627585757985510999230793281348282609718928184094400650882783385773782717233636057651928933843486223830636278600132793732381515019690091558617723233624545828445601080955111712072116331243571907524706141330861779192535373421000324621937021014696461710093762031439452394604945351067024485536364811393915593444192344511476209551523314816431102558771757687469144082395279862766466721192648135494933537796316816406012877992222618652913017794628333083222288581808183336758384950794727425388480864697500613984365662993501854022621913374247037829012558403420778065245218182729588296247401331343939800068379223698948929518117754627492216663822469473518222409245825644528393388800305411486842064189553841597515126041277074176112756897464978771082258474446891749540836109694628957861732787657152346926545446373088862997626132797646867199441320819517353888440062367435914162093277308734382710409035784597227182731594767191340453039306060263228232543540642631627305012550172716444216087528711253447514848849739700551643932252729443975258331826728211329456028486793046449217516980783392424489174689712530267758968267527334979248591819267388717145301373858072105772042112727718516552795567814923201646938906788140098609908257443440808223459730443571801096139050336681605937644334070424700006855493831364158651883821745177196630889516969849483926962848399831959513002955085467998158830887387909814715897833139619340803150454835148068632874040994053976121448677323728283313207742289947334841858231846747686887204414670783332930891916338279002997218758980368359999919466701418818930670303695811716666660255730765342938099103928206998279778285755097899227220807742862628164695291502447441506769101647607523665066251958250415595029777373109993647875811697879266189128142011143502974504137376779634462818778486180534464206990240307012176272381427953051566098221316479196901725980738949816878865328285515163940733146601604389760735913867756636005764937714008814961601645241425915202854955521593891091349831389651587670083965503272375163199852958367680909743939830266800018518814122903450450156079437496476194382932821489805422576191577921518867499022962639084443387824549661349520598183005873460445873765706421092748755025864025043722567942421863707332540369909838192875349445231914036765126424738319651857146712534409267171383123341188639983026086897142507378511581315167813792108568007955060888821365247838882184170590926351920685613615533032350007071607043378618792878770942682726210138450884226134381416013761750811345885293696560960364362106406782700772403951602172139094633581432766899097677840837224478877031456798131875228210734119319337722093923881955979936214917367511612892952800125819943036096046566723263651075833966365954086098677118405935303941395303783156942238500276132615784300131376327240014051935104735045973237890556112385328124897990572708619652190382440440511390712365948528620832444804395846937388361766958632209133472507151780934213321716371920962269039790040400380542241410701647021953803084321131731137551331195854312153544766043395914000666132098160103496584989513926875049225151693356290394085254344263270684613681182985723251338843760011755777950687601907646210382462014190926457661936526913483092769765152314196437066541509068388593713068274674504661625493029151249298920368304059186049653738790365020857520907679404696603634694558563976481147202477928402264681468991827429020965115295387427466333014720245735417190914824606141126154297767391440013685627539669686210088976498103998911839262748900034243836265596895005956664916788578601086506101674996766186832604985568006182092437986060279378352513441009011283659647101760241828209455146688605616058171527772699768073706549189197222700161474819400301709417225458663041862275815983057368823800317866403817192397942682542572058780513314001970955082007318494758717008439035739571158711362474061435663124646871917060446365262433215447484577679319986309219466632419044823882741846974482218848530865750914657170991808450043632953738506788068440632664947604017447259671983665206779815547987887440330255322233402793841465067495362413359735963569373393258239071312208785156783921485590524416155532155336377344481858043758417796028824399632272556679558191373161821278892580654865165151546900052136495985582173324775153443000164119196363742175512648880751393589523422984501874977224677509413573313835270884372484561577255921967017816383626727963875255927201179677178862312411853164949764969256004079047322534867172403885271954230571494431317179664827073710812275433265958396005386177814341618445270409714001607947424882963745197919443178409796797320594076021310860064274550899475229749981531268374902750461081593645591047964583419807929387303325252567322932757700133539560621034486299765919542144559938136788999138758347837847341207514000104622652492025723691108607675308757672441349632318985992913876947918114073296310095988306748090802209768357527290421866078733694060203099971572484082944122736034490282174198961151535586162263800147069901390091754470881936327935088746273550703279047821277878552335636274967471364908384719682545394584847188189314523781282745102941656880931760256211553510415197891010929752100215287450201916487220800060399281058573200827775167278118808315044940266783733225908190186669318553758799158573647240642668365263681412976640415461680292783536783953154133283933068924304389815461144985628371880619274242491188199090074559697902678124831326037170583799550653150184651069322621508113571836071373573527261457801596582867977932681430669053139358752110266003964715802955956522109062692516625261783724077509675579432615653066134842151282122686094803172017222937079807748160832057511716765013734471753273327225257876485435523378659565522944725209690226081559815295737314077136222533500050697948153280019526946634292282446060727832395870026392413190976801776100950379017505328146346885540621981487823640474467000837327773646231917733794332473073097466060955866312713761611993146484386454285093482639498949445065478751380204751493047157572232077573669403893306564486738845665440003266188989443409222296684233754540681198244974473782468313279677499226410583705438610547068188488583471820820267769530909548894265596247948714686890220519552429493764138229017356904593512882666689898464029891693871107887695005198993055985534759897450263627742657671024493625361856559255042160584662283143794823679937858391332352426850130566394403580670896471721949137696702686641317851313450127502855565612690650806752960674142665356688397529304968761337914122210171465448447707934832591915141308169874210597765020027342755768874202743405230921078909441962560582561546566083366696172720814963140458336249180424740517202224379395418849759725839979497584262517501736784851489431731299154295167078985807817799141359433313669859043901605605949127877739247880151151446740018491254673029644788935222923832924595179503628580471379344681736450229539699240529853348250251062705827100938708529047729570032850869799816484218452341778755592106705309493099754116882272561498939411130331676034134050512972675301148230150457703797187074938575969250431205214163246419799666809740609561559960423694170661216353519266760893739866254318535174180890651692138157623461056039147896727137817787055203885580909168199765482702424451950337247396842627749817774755794226598060148718876403848573881377127165444884025914983762027053510458771542455049480933879449393849107517852399147047269362149662147880925316668255154881282644596535366800929704097841760282667668907298601168420062919025549568016933881479807447892927115080657583523805316694828602291741386431647932604719845438033060750506274766950040825416784696311628594298453455707534179936526305436017937172355933241948070148274996861188807536170864597025103097022444917002674776560493541232682633680082245825409843444504536651788956213728756868244366401457215119460370321156919264564598702786705645270544024081527418815170707774926323647070397044972077822703374212055389084444871149336791737168334127142428154605904259827714758735187509931665678169271353509643220669554019137641980287888008662703232496426026469467495703735105351557837412722414194294086693494387022099167769491937717235767042232819677018161236754366261511796456878331841185825047037593755251925117832541708435801434653090571926489710893018924111944378349078420428123975793714959772480118755230392669646224151950649589549961067135187807067245297691669579869196997908727542774824316715051379159745691203121463510111957398857932483179750873992313002540417846010149219101316109960094221078753360501712091819898046326758462834049332118889750040169648025084247250142780514466281040259985405743886606939872260811143478357960281536082325536795580940240925405918920482426368330507305290717303313185616886561768039422798734319357980626358777276728271380421307798005165407448672427188666486036313946455072991899905419072387217185935533517774111399836498233345349944104564974702049905613319976957984713692638240269843610265399992250706177158582350785191377161077127845609889974300937505571582923010021795699168777245956490719674317624699261195741424635331316616648010508340284591564301753535778664375405157872920810350477871069901102305395134562437771091033955666203284325288954551635397183096845289893560787593158864979362532920829184838608591558659526373452602101716014273938725293726113151891155777626100854370347018839593627101573746956480562301211036539356818550750417379770091158997798414400840177805555065083283405900554222718304296694462276008545029478356648533019552744753936168298954347719303745789031553864049634818240718156939125852049886913724610360945988922408970055766989160908528834464606862945722793217098333280380451425861351701958912795900618844554455119118231490564564291258901622993595733080860699219993852613388562457237909061571642799070989586650409167558954272865806676479917932309196816908948908082653402082009154585785512476757564324393988919289706845518285439326138572142027044243426747970362040454810164546489691237704636543506287918626370943482344476379256686606197197790401260230157141411218353538064543076286623831326072260473016573271602259545234390007816740788931380892782088118313115916187153447705620282017000290260937781226933094062814751687829922911027568505054791721511711791885043602544356599369715811852982962920713741441326943260215065735246696887941921306866313945671099238806714813502054402512730184219225740580216295325173798967394817201835599407636164729722325937631490922831509088466286570556012454863008934690195293801255877856175678371941411679184342266085842187950585139149584940457886862032118882800107673507649719048839147700111652037434144076290176775692209823649519535934609027153809815491802033912141819762903915622856917851005334038064286327335939417863003876760061910046984979756370197346922201616020973020029368923308006234285325560945877840484563284356280559810342120386311605299775584545591770382127994026079643125695654764752241712082720412895878189230378467906875601189367132181410196961832995548853723587186299914035784693792099277076187159994031969005837340871194116702286903785476789535382122381612023515308631617199519802543897869162597107970607828100132526490674406867381417164862717231133550513518220783646321782830725944089572934669188465753397298152368716135872478332706019477750902028155793257797355439568220320900925250902814669600400060565484144838205259704739294660817760910932380344335105659345858022391319134774876243496020752821174730452577639749984062281181656199576398056507923418141357855797107650943471137542465200975511855791602844094343024176588060944460116445469666164197551271245768773882048019651941095852921365545851897400720175177484174401386467298642742815125801979495369299282600722343831051115996637437591726794870444825560483273139193727993918674245451644072394354931572359627468131277299722243468638224739341246459716280639193110543638191675196134532043235083742267140568149603566060812768745412917121697572975115668702889097915211769792134429041249111550478562555075332308306079503614190275367021343707467984721041912188698423330569764960247839002398396939256950055392264560660073714003825586142636080838670013362318940489968128036009184624409196169821295366000236484880473651731714653865495665299670163953788402082020867905489025249322431162164451157002258877772578585634173071218263621375559766807914488572884855061073152289920128606111382952946948358016377345838879776202890337985325855164257449334195212610210386651863002635537399991552669455120600202609688003868510851339897449195435674320968687258541151797238854776913611016995077172341128059779242693291896601286328453341225018452224807777135529545791573215634429450732750185883294096309535015951084749993908743573188696375835313168249669678659865930775630923749195886327565820702088712149364921045354575728408838393226377842126100665258800470571846874534878149774613660440069022316485811480345274661657376011255470356287738088383534187864072071000355352459463300655627033538858019534829856693727079696208308698447807533484499621690366951750428506810809071970913334803760859861640991655505093461042224708180545512593656488356062829961807620103027485311369687514991058835405822522193274358824204460621689829777510877886046559602403051244785048536809119861676243831847639184466047879357535107805805325999666557892020395038872401310196073392350014071030167886920913095890737659747586194358541943393886064747349077457679060583915029739707012788520155187258451207788525990829987439420004197646708952165490391662503545309947230710106057159395147000408976252388527684475539430997275491797030688470344376381063730201538797236802212711408719075438687249571917159687247939840164851678520335676661487313059094709569724330742329113025574460574783743523953295411035177997305624158978914645668688808792769617150990905174687471275916873008663894826154817918391358523690012955819995826821186301837707081232649344047290746646717512626796658572795632263894191200666276146549965582103147089734898190208568655788521426113668865187618565134267919394357345546516814474957803043117755970241637151499848423879080205582354733797465837862472498509812057401555336298007717049977742448177454514497987251006466216461191828618096794832126587804978136346905778202276471135178034444642956497542460045031713731370492591591175564062850856855500434723039102723080722323044003205293494644474294853796055731945281641734400240988181294665964406687682386458109587758549458003106103724052029249619417407490434226929784095655167320906987174114213250468922607844621626619362765592909067028438295317052423537799033581733716332976359829412775358645513414796915859360138178115408249420040624263991410531051451476873549885770058675238995584781770807430734952040117274111882294028599153573728881347969508316651153047958124569910072950418043023864761014867845579029296241052704807133909636861109528382689537403236674989156003336515834953611810501773737215499791507082057496869636855231213444746189488734295357321892095767364054310854367064892065655162273429250570859508150282221425630257424008083094320785764059431450169208895894503953313369463913881124235439050153063899143034648496975704300774543345579238465569072097916819642168554136817418550502149853466027441358585847892508843996505657895888034007585318399327920353901874558894791234317389303249765362451965234523935002857717689532341518020006999891910648725768182678643474370522450087992306856461957245362072882759892652913900624057269930695368528705274960475558240740175157002712218928016624978736669778017896797364754936498696354583733706549594757003845339112598661821394477743954331694296189818067217872890303648123058450283064712982332748915555596366419967172693262852568406404959678352124961945334960554832909991063166580785379393732765742204791758301954207535950443229604267394852041938358316833007366102677544636370793524233523946896898031774407675989680143824880918196903426956132091458859225327183274515871489058005377228851561429954287333797835820542913260047114317167566735116895987438088814377534023985735729382344484479056494545090833361364584098748634785051657935009058139458450851627338704573475432041456863539998799245686167468807689122233216128785565055252365773814821964713643864814975759304401323499765548521899152717141939467729342683600584201053193421792484759135637785741366206350517416540821182104636231978393928673352751546843989460201246667871686477149312188989147951006215475841013474850767412335993989001609635601754772319561556093091128940867544518719043191677374756400653369264740567810005355071777717678330552386724055563923376751017038727425670013641744318559693665819246777766976735312262395780210240845178662954628172589763246706426756503028407686374389425664460018244389164717044669588919611943147713990632033692227731107465198520171468125837835083406966021770268165436136860572392871814197213634710100338389164499602238829067564714297285835125755041476489968979655807215762886624311227366034860496717725152534649294595625733334209032215913791567287089538714440581862460296311688372042545857478368437236654056652385472518619353031506602310741394914742838788880180708758625844246991239326526749273884983899492345330015631942136560599963294374833453481319700909374433264788464837422988820934309927104689610035914333788630704458883919410201148154484202225921229357496514923478907315546466587087314902915088942382552638769135035704171655099713951854364099365611260065911449052377173891531558798307658506075338203551081874691646057103994448487098748674755244627961390887026854828087969096658380187674445188991122157132957082175864167788873861572159985914380303888908245899936077849613294047420267634015215025569195604156251781664926004009419775365808852932170526720322676634714528409746798149778397203926493555072320743723502201833571829627873710354017281953904322473667967904021394122872973283279017592747810940279576043777945536978004732045574696280514645465241894834581638003535796521267438843709063123286941363318012568244468232501290114152694962338778466187962368194907466347553589770931228825331599957672003470402038748099786074540277817143687078194862234490213566024350855123996581357683120664479531448327831285233988550274819958797100088084198411270510941481713507431351075175313705021625993882892943537914584401487600440266987251703580889852231484947643313686293574792552601416180049860936919982063805547480295813194627111427385078609781906905204869209472892938416546085387418792832177239153599285217966534640180007630447887662871281240950819408224164151447065734056992492066494897342751075671563382670514500431790803799611911855626241530999136485610358284631794288665149839848689496630787982698253871931963639632215870563964348645611121650041974506593793450326470577048686330810619541731827556480801858899665862022756957192786327879983732461262340505595879929890143133795058135104538324409167028565988147246052212844607724237923126789788208210808785131787650369369452532600615673671032320289199803834104234754728729582289271914746450506348312889349416183804823762181074028000973326744477320593912783401906152772704116650679827782801530619875692303301371348481046124463588051315786026704267983137656386338141960742720578181515250045941961199767497260554329519818467802028789713161536006850652313076494191837722513604343353019070696831567738078110331355274648846639680888617542510939006718235257563443281872015665744619613071770172452499592763552854566020565339069508278474180239709291798513015609819361726674653263114850633594679865087556454928286042567926320187975293128210732862010302239297638783140935854872486527649478821853390524010968258012788669475739646489043936761111024627157830796044951833547445849247639657223204950917981805256415887342753960393229056294580071072254923651811041686283662929178170340410205124259359913398794492263650744971635083498792671724097320664622515386982429685738577986911576353174021829150360734215009700680068928393958082214903826930560267485069378659016209856351154561722707526403875416109788302053095023273339849306879987231364261761994838814115864297937628645006665390381091126674334462052848303574045122181020937604433714162810115826572331891044655023201671396130301488634913154507324730758397104332652261509801165165577292382341138164571512147482997757351737170664109013750688698988238541891228782901727244044588449546381755890758488182782823654085824023646904360770108835739483163480922105356979203727490272008666444483707694037987793911032030148070847351206303171370606402637321070542435955210973840720242661781693235646348547780544676541636399330254805231450192918332392112591731148633296061207805300034318310546341315587325791202463165086637888268999090028496799379429671464113106323603428662622021881133841762644705087729377419863464782288402358270663008249800571503472758152869331869584701411827574535760557470379844896039752346779462667441321463573364566886283451249383886287564438274370343064950589004748611754346353037159633160123198784887850302949184728526121452331142115421169934517633245099578844276933974925119932579717119636347144023582936903575168777024800615180902192058074414870229086867843161359368570129104422098609509007881516330765606571066477119198002808739344876120107725513356646581531295432360409301081969433447765079081626367915740456264297322429887675834772436459971328120271867101451909217726322560350204619870820663687703063892134769331774070602385307659286475441261567863777258601279030463335204138437743389008148336003895364473287674872832306914400004191871885729324461074137476247941470786987540887537727299880531775106927012703750900415691028659405381764947904026026987925168735086023422258712733012366846583954006080425487856793921117380585978968860022977202882214200327444520477170834201385439522503751322475715642463026695059092991758320850276091365100995135036916176442233293029867065570761286160688688237054187103547512378894535636354426831082962696974713405660383395966021096214169515719733726777363639248086999651606168897960730343056978629896758344768716976009339871253459381575387365471012319981327818677871748094164669416335848320072493580913735166432391284564997258935297269542351415693226881828377812440525467313350016782504285725935930518107354395861111362148584749861047185864847656824540333104561449412946707092247315556435591026360488647932251666442771796269790574409282990528558107290387405212454628237239260953372980492843241405172416209732718776509926530582648138647409560480850004396204649241321598672753374140588137013256445653408049870584341886499645936271740075462511509902464421489087935431838073300379658288420096598437360201137115472033600172205767360731288674388128533244894114123573305511793168962619910550671694590453600440162181412018597192648160491626642318964385720472819018721679872718476762582150887657772096401097301012982026486568092041256915227346855737209394669146736660434057390925536120160447992901007873868684799795227983915136116560433241784529218122425023565712536366604923900980099342798543775169554284939352743112406814753082490255511907255833420275691473970721836797121101393922574469070509406053618989258462294406417037766929426335699524753185818884336428660397719574839670825539165814190290361186190744203305747642278427118626330735436541178809152282322511793545009068302564974682152472223403275169827173323650100246310896571295531410234984484272116068511208986607466346977201588419377718821781106812313010139577803964598040769126494691991702383488370476743212997360456798999556285252119393498263991130002321920515330605217171107566567253796129829544015171802723960054507356004076857685184442169873796757218440271085242727850181456837981806435330698353342399496281808888529219949309019578441829682936568669740209929286095678884597420044401048465976572882812608232340638216942738732957935660772108361919217419400732846801113527865744967867889132003135616040355226018991847510024052152885428792717041548265249596337970494385489917674858351169374234164948937006434315167191041646383580175947171010447548291692148619747050908620963064584818104887538305773716502814294748087247226135885945268183584766601116257128683917124342511020960700480035308200199627080977100889138897255452683836582777634899894861108214208890290903016971441434631960036853750563543492317647747525459162514435129503315556793099826913919442621023633201644603357897264536645099904768155131757948845889810766803440887345701903901862012399231101811221815852464303013986996889760504695628995420249817482749696105452838761589893175835978469194747100648851051986637523164501361433881429774644059769971921035331249971319021539159632765240036394008481598707998761911588097821331410184140970293850056389302758809482823356312479471107895867265341018410316532456650646539370402553156363965885211435521218591314098070846517355945905925987631368958157868073793961743419069062868107366849403871875232569638808227147413177944138978796725663229192446405399296977211165966811549470492853008267347268850304242550804903344953936893047938248543584930966305450326908605484437252719065324460775340399310489566301530515825134532091233315222342056359244665096533378266117879636200918270694075233043850727312702754491520720127507673296765909236942735166961674621816927881181899500315120695088208009687557793044073262929417437057141322053514086124464293310315277954078490482878089757168615157199039320879500482589112575896994048173743283053329839599911413674228455453842674346267712838440630233935258484027224891228368871276031140166899798779155780246886420126010491852570258814106302604691067893251240119552907389663670934793693679107290463918036275242663406580739050149452157641570402986566543632138840339345219292640810136671857290606869197856471172625896618306724613362552360485433893121516358453920261797160797348628678488373985507478616000846269826410243481766042818345031632632633212067939629643496985275431410832501930399738494198633571075219885295993143610993899018901432801091293017007236269099601895497883536140940284293359972469327968879069995821406027788276128389934815069352465625902689245288325624477289358787441614625514044988103811975520068808931721247808867801960083288238426360246398968854358834394987896603249777305638047814324666171724059957281056627347815278560065013094964176691475928038157327602931205505451019582159233417068322578484661558242962055442454408736896877144727968750079408596497930365311302956156411663308011456339782970198194934978533556296861669522129080799675312460586551602695241133585941264991160856728495484560894982363074560074476639070921377741412711515816905840056102858612056357659101825056491011459999513172428037684557594209696384702056921341240132510325453059519434906478667095512236689216282219032992056474953731745573557928007259151085151085180497207381661735559555535749032043278860139248499327104635373609248670808823421564825685531082789663379061879645164450096148551602850029571712072521679349507497629795357129344539373735102083852566709704972336961290705824226017032798421078332758226216939739643785724470929925773086023721309742175474946316746876596988939614306167504647681464569487720796899410731811620471892252107391939748131900828349604832406553929592408742232466896525682098457238721153447128127147718165657330798920770236102029689363195516314063188044250769876019719747290160555867215617224733932751337589668080899383586442444179656885058930979065799112036849785632141502648823451293537255948561082467363173324643374331873448789176770325129138559286422319686583876472801375117321365828914152752545331105241944582457411662531450053643746715800711426887878682864353312083340326990173142166009065978483401044385922859315776982251073521940178509187370782198553921677355681519846208304754481140801040213917027492513851021712184531096784357121032138900285932975030372322184522024152053253006202279124282977814659072432145484129558684345591587892681403971765438700578299811737173644376187704386240843365115245989832786110902036625944737282758955769440169880457126103234517137228711198679212587445041548804112377565210979686309363790470539395137526841735593809229835388136414536143911647823894620368158580951292799071871332206316845500386737044435945737155345143722264087213030118853041513982211852970329211010925949580159189534119891683708047660382148007323661980419911567410520654426869774727773868893187904660602817250817750001098091616761993718575027722398551630731103192658719134696780755426861048709447856191779031362148361366714858639262810079635988214466092696073920275107428912209583003535277754225821120378435489764962720493886121213718495402996126329146616441025544754425923746404963499796759626126636575057904661213634576874312930183321963829551961864343481152716183649991420301871073936707665049136885655030520543886546020461072012593614673130880500318477769467542113832949431606363811282955445522167727096426587113262150050857901497961733202575053875696250342899332612554530350624866118878548954215145605063348130527657086169925385404023504894255789841147216734208931061233474938534727134078783580697561441179582737516295752848851902529488115700244368063231779013165414757077910174550747007939993072240204785199933047702213647749183028889178346865004936115203577715961694069649583492724534736480150816643563977972380638642323433136529176284097439820593037773957288680022213615537848375950984768508556890040341575309231109387519973039291138364944368278793644386196547315322201925994143723818807261187449949227814995251517296994578328738011537304104748877179762726217742739413713080847837443481583721836150505848427835272613241202707467058561863168743076731337229399721294112404466868872773587882122686164762411064816003454518326883046813715648609557517953452694176957013344569525830021627956859056003528878725815820011209107714757795453886355490120965765241882540899842123295830599148331143180869198976846656277119807156564518914134735078256825259213682645469010657463075700533889997124471261393142254647673527939118308329634568585327338835372590913457801582599870155391751198440649601456361110883951339890025422562845444943635148413828503337336507391676731794278004570038539693114567960520574722747247860505157575036098236660719487386833670802436532773656962131805306088169181711586594806370964241032897054679510321266908212492153433441627127104298743787097381234211958173128306262466832940816479581369774094779853135106389436887973457546654276132028238431174032030364497511759566295696352067485150697781744549342866915664390720010170986017715685090480802337230949386208391763403437375176609900693109684939435570817416689429049778862536270256502960155017735438586212795789398373883392826589761819620750418787557167743230331928530920854397953655270200901296164130343802378683572091528879597308722741313154444042606177819945364491956964015668498338881215275186645716884431953423362634401673575688918124929504485962088357345111146657457774352251707710039811795863603853796300504300755113833199509895058847150797802871107491018696416324208888557341116222317801398100210133143456973300685863016936562642873884755534323595385665665761469411060539057926368536612551155800201939468250403335221755519499888453990101750985059000551868387012787875652264919560342941737914032278480139611899744297431839149626926789818844511172225034408900143289647886653783833916574876508383363430472744225063506760719386154158525451654860406611837964898480361427405523448799527542096473304755579352402247326497157339840225469314390388347296826863268060003747046857588500608038870461713467104662849006745146785783200971448805997869571385112658731929590456287906242843376889262918488329174877427715587118171504410469805880130043313154550950270242616349684408153835324229569464480009826306140295922667447200484191840766979865451484606970045161637953325273303834829533268813179333441815581613717078165962683271584582106428167539439559471521209558097073484312246317202839545434827304474379266184745001335849960294050655469084467380939312536602847514620865352903270770815643043436580379768985713395915368828442615108454215380402405758128440139448151390580500510537270222410315525244473878779462836212714685442721506814543179511240321591230470550382455015018118875616455859262925544411739105716378404903751450000973712197213780113692684402710222017939777470770896830894653857330655706607348510345076382661809025998020693081786851420093190935769579767967638958537238844529819034569892902534738883982185943242648285964353745569145179664883387838271666342871849111478075212407257821856094106265574850065927035638978298137241933757592612975682873827595585609081805069221749335655702339159206028944641174795460297742048560139513094525303774299991858625877552469181971598836146210743946408873765354551822694477994682315691323394987197057939615430659028337221112335878275612014472363946043213913606660686293303629378321417941313009451096887957459976523537684531948778428519954278063902076851213857870856371644909436638906254654430988993342257639929614912054674584894223247581314370102687999817581173198826046886890521685627285341381792248072601784573564062166206813208586096966839921492737790341377938459511085741175795964962215002395470720182787876017182371455286224978843750264314263276458799269283473400476434212882258653837946120128986445642268498936809356804232771499684269842985882703013389203515477957960720028634380144786578278159486387652302385934374445822303398579068049435776074371832301821325473566826643648563555001810194071452453105320299421582806966476084599657080456503193323907685457827278666427368290979028715631398902005587695844263650254205839431311424164857313181138363818105911684428757027523474118796461278654083835571379995719240953110829909807651038825095092241850095109230065885054315926703543247955076080697398399983446903886588716768077002564363488148762525856607603130763646580781426217278864526210274996451570242418972637240250449393538983618684388006478009120911190385159940394832927305412834525559712365588925786760847722019814923279621906119706514367058797036861985791502681202875452909447152628559181097850040648309112363392576887228571103223350100887241411198182768966847393127871573280957835300482515745678858525834424519177104761207852128928960508188389771746896845681115387445997088050027196701123645527881900560308850262253711483361141814965477412076304068514760999508276287913409548239315293373894146304426436864773257611957347146699160189889400441852168104079368254787330547901344229971138248208856348245950059153342734557367640607406321747230289037026333259562423030777233339028819534670378107921138695221947352807846350182616333436525015632618311974167777814508883137092837909418264528650859487166535756368270528793377755224376424851740264289644617312162366023723925561063124777173809864350546818022247210331319770708141555753239050514626961885375574973570315662264570792452087966692304007732094370648202757983156276098435816885023342525712335039430259693724903225858841093965831291767510108053189342168734983255588849975771887528105338021692018215925498954005773492872842633892101832913230789740458147628081479551625020664814252800484516871222940519842641638084010635472119797670938166530928983752403330400808835143260388334125263766140910506671241667478599689490290481569773146403173030208802945421393472676254291267482245431964851245639457649984260581403064327077768014311915291996711977967760869706914772738437844911652663850412087383266621685039599254556481366318155104576725107099911596733099080140305338635841039069493882250875089887779926935336991896854435320668397445244886947653289778107893415448261123324588417471221148995163505772874843637332689796157231392590050400301924334600074490410122608293114637646033955401629441479961300452250999723135444571921527272744916719186106289503626825205572988076826769747948257463710607564496154852109919320728498857789097985972751604057572576056720672963984245597329436018977858448879429172971315631274807435923612297408362881291841833589295891435943386294176559688259853414397402757327370683633414832592437281714388065792925692477234606841167761639704149680709675390293426789568182477631069059417218484194550713068524830355394119854749148833161239836536874088800487985864175105377137185559240715789709612996213927593753224992497075329237312664617656229042787269832406715140045750080482559891142541029138832693437023051885698607464994194796103355212780352157330910496686334411537613137469914746215465980562849896793116137654458042274115432382968035105972332426581557249868280221459584110485818324971373552774256433388935563909791740896189966699856415106821224369173847248608131724364385366431782995828597012820041838534127434955147594041156551804776522811560556539801603103264355549172429017501152392760444295704336490503010196094545334954339258440998705607434871231735556443616270461636440688110831399046310136808481969827111556830259005689651608995633415425377168830847518932573144133770156173147081501252057414870293578205166873548979839213643869023737682927102237323681805587984650515025926428612778809426173019606333441917283716612113339925992221250324754051953589625575608440006353229038606648862551210365556036238309868647058081711751507077325321358604534557002298427436443398484507684777627204113696670976330344252419373345796220936547373856101626437379828629296160733315095961235012084975345377172607519803633707470674526746375647174348847493110978609214276253143948822292928651936949190604585920802603476402270573713165360830004615797191026102421626705815156900085352253235421604330276133490897744476784189296855502145043312826749996789052619571835839962655433679979744737409237491910102279657001582335483559469989755443851926016878017113422809920745669703592293485997314518316327725016748715875366159245386945213329172406378575173565437117647157919093243372637164594827621325745686375295960643527837519331456800369808442016623693486264842363711627036318427542572844942642390425133571839058100657914286039636925648614108652583644810484222887438732117925083480271250172984004847139760961704865455523630749659491259627058231391476610593781558606997862265647910314561430271955091489564338739477533426569817252719007285049603287426748676060600100347229725302625635102623165473336313193836165801260013359548669838352511291435937955611579092896984417464314114853500443160228306626973493337792723133041184806505210718881413506621055405068443349212068942708470380219576039340516252917986752708930475276460594555040757177530265766295482114110906544387697956503145829577318907428605777159339115843750697286943938949211151441163533244007773863655938891279125288837822001723212086371473882392612626841642620549928365917304414091068245686199040103384844814712016521636989539359063180894406646163286244023598412519196390845495646503585750048591893960669563159918382727643646947467905296308992524665706650737997624495331343819082945987474206914687563053644217547684877755132117912600284188548836570763864275637612882452993833957460718748558605810663466131735214795125088524542405964505771108104566757067763719195880943376835459932338532681143654859155285358486550387962488840116846441346954155436487462197644793005352709572161916349382705428330442507800959321699818813068229007234676273196904503439143420068224304943887138511127014050105506954607085598732542227395878741792375000649634523227651165513817563337478282403413207042770539527625828217576660741840611829500569044575646635759346640386696328791731455012410035931610482899208375926236209291883667676631796161362997751568629641489300615549382205208647639596423342604812795262426193407581171280576984696169463469509716205266938424269614254129683190329414259170119043705070391665741409393669780578665386319075379543970914431294801043105678084558997434656227456169622397223769300047307454390840714711023874025594049705193803834968583556503027161238323458870461432451539740570357615210745310496942951191089703556838707687349031711331155624862605982164994328498538555480076670257455482055422638960791676695048126104648398311028040512388545048775695547217600650807810163858820063581380201033907525181509580067459302151273307736361366132146121596673609043117047264307998155075934400855737450853851580389643003989513903506166443879475382850613918372678313320233260400897668962618745437146507484491505791854896823977283472560042014044581107008245318486587816180842163965971175010260445767484290578275942631867130686655894716724774947350838731692665854022692822102695446952179903153454287037632324449497576262017044754424174997554661501477230104310290175155069810754941410537421866661295501667683967882784315278190930575225650602893654862506228090987270164136985337155800840532115855848774194254574118730186418846636684243261705907323578708766991806940341711805719870875972172976553660653043268144208377672395050589238090047743246899536357103961359804563511003778603546961122832303065998885487231633463160532023436264892802894745011291440095093887389175342629712291657248044061122688092239805672041203692175909514266021474449741121713148539573059219267637336161103885624764350404433145115568382477367200279713791708702885452689715453652960036655461796379631721508829178739971658395707099452268689253580800007671328205153718532923804839880303805938071883401088765269138118392518260064900984915990724571482645042988491818110346447910761688061739251366314145950655924142203952078453092681079862518704918905024166970370228989474212663275407790304636592370496678750290151737581328549717758523313136407257387756673318454003477760868816043859431844494888847540036684386354021816669154780723886641052331348018378248427761726081273570839921045173796889865894036440189896610877948469869631370996405212864936138436687249914082414909229322644277987761907306733245670736125290601765248579934637214198740503986942667722787681871275689557400793405626957443603805967054309861405488744005998044635525803332700462506242034934898281662316867642404333572578596648262943701813971812729839689740381620333698425290684479153459806191147848503352848731398549011453807555457238620945078238805077383253849929716906751460291935963700273159165400798592953442709759316854746471647225239631603300964228691133517624969823667212864722615982623069985423616974413117501300066444666714497583289782147952446530659512500808471796292954672125798862060695068231599901116721009995669099972411179731850377426081505755029597767815802192654683298818122698834964379299746365664339949848863516612856403758825141825907872765638314376514044319132838531018636674044188815006149761489960676975879882773706722702947902901892261127304444490308007476691850963021331972026154438751706745848045864377085468278938773449734688951674616681231286925634381930951760738358711219391552065047862305537429856720236049168336802344822896739719398868360342436994253601061452231281527433797940877206919583527436129561832875277066051173388875523745628872492449062486769234437087448056742092814271887295642806733141392215305167501965794806472649234822546307455389187526548603801806074205244171475637822465447574610506669475168758396452885635482320837616915764882540393391642093176699368586417607248031541288839807991381611168711939751124846866798442389860391049868457544137312687738265591310646194436080149469192334643121298301622842798463505096663247774534069192298359161464021659650576731548202014528292776371602479981632343650324885734686954548961866445528047746174170292372422484820898356125223899795217239110968251782073396195291188617578295554622467554090344434194417686033965023583583136698780516198858371647374057659251108675061322937414742556931801883764109595076805955389986124313476260803852101684857636203864754920838513705778457364213804994966764294131143521716269614598684140162823765412959177553740304177650121029163556334803192453101873474798918084879270861868859862636086377048209583236736649979218611110869310341832542199554451211063176323414020959020535053092864430196951304230930306821599552949674627654219903926360934215669868207166229967932072897468294448312546010099467522384177084968687257037200343356034797918531376825141628708295962722684119228465460607092770213043939029372087152697902459840164677667342579077873455499853710191683024052464424928411788297460728741484638932723159424738861993508472011018422948342359687736096335585470810750194237335802057089091238371092174849033505338517498840630088478838946352072121085866504430385058940233652337459507529559606001206551838301686981233785576991728759708228611553230612540750404177567803451019223031761187913908290723261470666364625925603516821489012315201085746981780031262758956975252287306651780307843199473780845669422723624783326646239294631956981072013072291530130344598586637274512983374402487240319581109817673264467011561064994831086429794266143332705401304706391202252959597168677763073663467223699057109150574869931688537361209436373007535896688645317206691848305080620197479004774597204469200161626081001212624816067030594436935456913771723473899015352684698729204203416739580130032515332858701933817936595403131952103233148477206156959817340587218515751194041592643337467333884411943435028345213733684269700406066902832428597755328882738004831836703542323277387891310503980856125476261123325633348399963535116430601067076733764765968214651485718501660014746421445754601165414324046269708817435656323119521971285489045622565726974337123426571095789967140957120327746455422490390690622555117627202482142907613982912188554396501109501559147917704045330737357590072363557466702587124793583735694006191263237632818709711917145604691403448192880091370528804417815662410584901321846949624330306450874874149578612774600191946166721306736307496037392326100426468941995865989844739275387785759122476530998225881954361980669429591812266691787014009660357737688409953000690022388387753303384943367970793098926382411548441173283088402389073749519638944849478639630669168209664984955754021336330053639908771850590688247853697692927307614341742969879240500795279600566942586863665030995587781624242426772530174509522586268649703698686492684073810533117294546939462990507092194813933848195065679866657994427666423385353806024863607580042160133115950325901224036627519428460871536938397421583775270991366905159722886455814154978834285824107580219582852201597240270644299701095837951304900119631116283805527534921981369049031647324858842443100245004791044471556454507715813848620922920807486863506994249205740868208416427637304398999003499708040400261037300256787139632649157579602554438008511427374356444815096338615015749926346046827216401945125220604520357868451514710821509004644680492879589480353631938699429009032271856251171405971425122146232364308262002093276854521585912589691124728903354852409909457010945974573923391892974575809626794107838935603241168240583325438430052661066586770018631464439367129678139572251584583703043764693778403664348329828921921038796404073271231076989382364496848252357569899346797899039048353579571105832577575484976026052068892326587175580805392714782892990432526899561313272318350479981339722069557791908914024610734743734454830357297628503390389076930564530202978597988489403296557094228379490857225829376545139167720908818893424716143615582654054915372837606681373768636190358028603876322300213980181110523760316394356302729038053742102400086074416385426048078620613293011859425777725955554042357438869459954648292167877815051858232542099877132305312067684076733008074504764070046026343130772950889820349050197590304015572919436953878844389780029478433020916220491276505589783752145162568125402630404786380241955277495678600210252354197650681804048926551661773418212577303760321222432142805524157878535671556064083641940751862338936568452576122195460600999085956961273661789794383045836321080530663215303310645644748145932138275546130606729400772743274833389475860900443677750671189336719146796028051580716257294838340932448490698700897106143394457353851038389649512359140047865751311705241139341954373654990066531370216918518025458962931665596411718607281085303915572045636564765931838981286141506624074685510457889294055668100360578827267448200638084608241515406365732332377746981849950960976202812074338164311918576948618484678991217907655126214647403236217369937815210129044920422064334663258728832252520551854903776728009586781410337230022614611754469514901770025412214621989038206891577376097980296440809320941572850603535459819024975365291231743893561307896557697790957596177368040316140344372858322612366323483656890858255092613359485491418410202967466695271639152268714242114502286958657702157414938487121113404990702085067634321772931972691621858112390310635918188549169069158016586220729994833272384232119747484932476238718603335324933429073671293777441074828788720543275045994044077889605651339687243354487931069711419288963745168946639263350000512711736947001535553072818009225216743384002965414944882759707270759688705942239554387715201427936709144582937376876713519012219365450585761173037938813989752600204768537638478720664768511040942369526781806580577730651813785145753414863551719164271347447498811856746509891647193169271826889817685395797195579785985384509756608831815907494823967795263252122211179568323311713685276533553011678253043533817857987531361609214926967083939697990367392148403430630422527910500243644051767356865873539547576630566393595942286657245366579316394258465932480849647519476581246274646017667677995404470763666495258915182395082032830479852364405891620826998369531212943105108885426399031172234995100126853759028146575020964782173367332746014062513016684922168593339533097821162154334164587991630680471027955641942389069621566031476115479104327692036395681238859124012116472663286991877964108976927206405510003578885961720998648452027148178968547342025508735910967663543424068311671194394582234228366344509918547952672418447258954439875024745436376517070994777808959112212422525459714326339828305117716617056309485370772996765813065123054150861245695306214454688071437574908853838208807323850246562999365683966746447562855967863543168699619428191318067871606794961786972399466153567102829021572627330365210990645865774447549043241365720395697485762533958851733940699289778265506550947354889328712084527263746019693313718269689434268476255652716442856519669149910867354735359734222437924727045453385305363202549459938664841004417084940435482927246132046583005110382464396220208603350205623872345226926608300097254246129806619159403617896473964927911652849643064225384323129630941860312316054647509823037511908516832462180499187663862317669322363262614868947595767525911208512178006071315150251430948365217165812871779444846650302156689305103402789128395995403127550933972714949979302949349998118764759910313602096658579969031063245794375903165478836799103436739530588967519508428232858626864883629366641239591757455206044726133256835730931770599468706580398195005375300645290576972377957967012223476717535627880455536349915528499954094189105767400349373711867844063151471714546531628292595320454087669416828959815209469467893424413434704955037630154249984776750061075949811278900498315176655122612207275174243661646273412306834165257122649656012283462163105918503906406499997062092541403576632132583122433728906675171701771964026396271094506334189978056197587129823646592381508073463189729480960276209119530795506992702256368030444466627468519914016295402025060377035169912686480272430519243617865482542025834774752895932897153007284917028049959342329874272014153649788559556273341709472922431926607761851832539243718028433010977801522053172226961438732393496602367792587643939437082495756492466243156226247571191616751931897187769954013339345698375587897280316184988583236027777259995589427304556545799184090578707580806249052119205457663911168348988472601906176215271055516457976315874688891896792519880222335482620470723225577429297528380733297596347512015489860742949646312025172260732027876276000786376827268122057906024497837087412782431028991287564854668840457773931515869871832939503254992490613689114917876848621576812746064941002053568686732534118071397933704245151647519030158556195288864433775966372897476068282397267864602233080968944119345267405785762957955622706189559804394634445730350832817546984453038358334189548273885874957802181287303670329542717851898981285099519537119090766585107645745922803908384490728626212714600234475125111026138178235100040537697052728200114691088824498259720758891491841625833469827329464699923961467173649738849287914000367306574749353089628619894549482559498294839729256204311688515455915973989365831416725350270483428795929335795692002523082829560021724240707648237870388026730327548695014308962359621235391721743647761444944237080618540341859052145521740827140075363945028901009324008806777379433446299875457586154423990559717067389407355053941226410152219900021416028987347480915643991412530270719398542331578545525342461122701348275987608471576335342022513751487553331305456854987688113567328321758299862480041447963828168515173633400891330870551811243734055003617900532696253040351753889298770363292430744472406180833066012756701839865476874316857754599856277493472285609702198783718977074837304402998917953600023617385247482376216702299190021253771894338383803135686293638030336044061916693025099143585717289752690906223649005311304079528053818061104905701421771353002154421887753739312357752052491406218749091985530918108907457673970283490010404268004080166729249496559584447434007133857312924354721408895120040342946177841859925883763729910010663626038062168414954852590514705985802850547243539825116272977625239802702333734215738721949627599792177280603471095170942346965663376521757815764087933669946641108704463576720131473513941554856072309732614674219585513465449576112266884655836247810860950699746006481128550956119244875486877947452867088804697038857031533502434266119033101954521761238860030648249055525994523397718339703903741169170042771034457044945144121908143497948123530894677148450728948402484131076493248847850137034841746724502675596804123850069998325738409763129629078058990518106148205784087772817469405898361477131590875449013558676193074763744213127507015777523334113855974968208022235271804852223678439717157339770419813372357702971336828721474930462702077184239212616673700934361887687667544633796017168650302222792300831718779495152565146453678411996624548660949020608598904025727207041990272405508187363208800213700975279057191221528788378125098411583401997402351360968678802545114853537508438865476588061021946432158974458929384377533638423637410700574614024386354893442822651175066771150044966605562866720977854975102982484694104380003282560761677996214277769704569339734074037813770328104765927718410163091239752273296934492568632514237995238337669919530871935941270588533768055428481133822586078841823084914108181689805157489000348381717167140253854879996780515713313661745344543225839386306337993276681016486025770373014000914495379216807216142193351900031442374040686665930561315144415975915299291082109800170560372677951149181504947229256724044242747088024018297442915891453399670368971475930086770307230978917429700903544099958596276854628572732569463640267115265405013392258972155180468768978434642309492478215342926873342634134394437152874891362620501320363592732151877905773214826466527981860634902407144270614609471387253915245553508199089299431073948524046615828422696552811478984514123682184617958831401220312211974722785729232456835012555098847335184580517319754879348589390018881992759803447447023265457865879308776042419448969005779249500064355406260033093507234763298925003382881210398828993811683641509749495095316160812577580043771320872105782779675315632015151613130223739550079233572492412181034613597236805336430596456932115443311900318339215243698006245381018323088573197012592820619474126966825820815694785933126672139421237976298853633885605038295940755493613252225814170502527252322806535612462149977811185488433623273263896277091340692542438430301338168176070201050627956787625929740797848730125185621566268314078346184917388055420871451439112873617510079772183808889463277315198586965407919564072920379263154231490091470301386424985332644923771180736912896512244080064872193546161830640020329036229629418096030665350286705272026608151667411617989532149329316502890673570011105623234340214967106987372451990372219098649565980691588234593888035073576927872207001465677779074710371393885028702679450468845495617306700803905168895261368571121799073846860556449557892580922157195086634486901331610465417888609899163766644021369550836850066877110105932475142642440073781946621396019876082878895229291365854079022786114412545346604614540990973783567072642162385651670878554999120227942382161286986949121378523126179896238382119384685029988414836197461078376494020810149125021668160598716911999976508479615972856778001294519821063904458218056093260866489111393620181348100239349532633103476741352776198514878357798483933219967279642851335562276269030987892618389551230964251304351493020132173586105782131375805418356406413580480014248769250448403060931393581419147807767584699784081543292593661927570549016028141383181594239247065811700343858381412246218424513021970356361228112126429305780146498840406647121388449647277734848983418319016395113296041264845913249077768403542439763265694130938770677020682495041645639879623066713847179118068167169532931066573043438523287402363950299479858831619907957062589339286794805416900746093033426473504767013763888771575848459083192519851618377249477415974861103108472567783209053300817166466015653147034101428474044823361006376115443178001182815384492197028261277918035439302807513368097016415418396645581683958159525331745311295175869227353061012083346715816262104518998537816385855590034548402658373829086854622980227652802101355655103279130205614184271395184884123995172620187773417772610935385705936893763594279167916360711189187954645629795886952016625998169503436558579713060114986968434622392934769412553294628358441246920301519317092509630796958199160821474608740637368743746924749378771569966356096411137553167670812789718228786761423456856869323083395025336469116582174604103127004770050706768393453672984643743214280521453772487377449548977044858570665071912885340478093221008480690317788347222870251006964303260641940287126860035014014241892965304422146495306587864343815108504081357891800038791284437441580913271768964076762354263043869034197833273792953319036041997021481421405386959679453816211127813691891193913597922092173024533425838308681723506460317386699051588408279252242423012828209673107213700346438797616678172198653483675131576205730324071753927942767368323451348549732613720003995693360970774881109885840794215962940861167532964778572929805772821946573315044048867918857918384021720933582149556223820316868505937132755269837159023886222646292927384362192116321924504358187392241654219805669162445086504841189177845771621917957880715373777774354138701754912076835225207019956043997280069808916464083718801012529791116978468885965973939299226960605523339438165784133490109728638250382334337450973891700163190474858210783005316887049848698290475838879657681986786306212806457976359891831531041428056990716888500925998876567304259176726778876518700604716852903454944359169826250488867291787684508263880892743668189397056729641754382165202137833255674047859996758037775267857535872029285203709092413537097582780101289940264982287391748768020799421085777648789169764862072795003068675563267291643577456776698686514218508595219293017929271620212842774944322794837416336794650318018770966593431367709486220831749138163685478543599556035307111495534619194874059211552213395505338399991510327760856884525622972570136155301552683460948701491058212139294384137268659812044527834861357946272308138517704206480082221849265240239936465740413943651130745640758548233572409751391081498530942210652265221081123481680874567386497924617469144283611365545989422440999467602116432353036278154574231422564086135192130617800121567297585899310354777210827353545657342000709423360110716599282175134256311251665774121108279182654842732033110086339232040286908569709496258128109788453381825697669818039007903315668491416880261111044984816733464207240019617604684995171913215574357992436220048799413878710261014857594993383868710128528647906466431106329304811277052587262157408376046297140330912693101246619388259542530476676591156000203098726687638137849315363434667035034083804975211842239098520357261189305961973156229393786107407052807988406490198872382280007337511837997715362249054452055210720255826761926383665763645288280649676810365441949130397960419478346240615612949082942588803246375355717653309480984519635613859554272117851665636438491209187178272784394792821362715737732049499259531128861333991566787174146321837309299911889836585158383780272463731157315506747044911149775321146878676028057681168676375921861770594581579420579238719907898664105777365194527146866981713175800902022066245808789238886364055503945206479284671930869526920059567852041316447512947777474689541297770741236442007886308618167166837418272201430509667936231564620843676908714592736336196774200331878016087165236205402613359390903753898007438051378287990795688390377734374284855294189254001520541802099939336313808357279559335968598041354905150939908600190676851209415286875150065244292749573097254037341323761341439188540202583777821141858264321703193300215577206989739173628294973280631779656557524879301528197212030263778042193381281732503451259914962861689188032269047896039664874936987350886404361219360169053877047058896177132560156025708205310306450078678987768000498228799995897630432312724594618213174113684990206838964403066358064064120446410719475860681121954790328131098863533699991597672044387348303083100370864705019744857714895181333614691422393833652382470202981778120810782061210928137008586445858489039414328482469915459847674313582600302248609497925493088214302433682993760321018675283341609647218069460777101329376031552912915638090450594454688587022063431185696020609160081836311354498958682678301877894554785641909406182104447137203332695117405220248972622322662305452912292975889493399395434027764293451035954098850301763505748893918113065282905198270593421469756850552048601951559448768241940402830433948546586392494892363292044699697842414491749865217707052743851092225333801100808018217626908601653431719338677930827751753564965442846955869613084572380337642995824785871019144835357098136381377423991730876564718325810088497037805425072904383448405339217457628149995177020234226015033705172336996043255201188711199617395183565883641946001091614567006251734346288286145929551711796331650540102544745579842149742261714979622284587119271218236966883706806925965477450354298766305625897696327085835153970921827462708977682154603499487474480375308837695168646835167839705431430802055754696368968688260785048406010865839823319546866632143719383518768680340478040668677588471453436231544365694345755016853397651337888417130703366694558996053634743352212079112044652738079573637704557665460467104108754150089166171978766242975868461698207122342401498454423158061010147453241759292757189507554877069480741511912320329945089162453560279709068074998174790480485219771664083578421550070841305627129642200117066821468186455471349897280345045127152656042224117052418531974508880133330257321747641634697553682195678929778106610288239065070399305213589120923237973643836976092673454143208108359980826046538901700087878497656232579863139918134847821680743450509221376384364587384420538658548469699172151469008014609075295346399993478669402639469795400137578312551306035656775062470360547223777116529084631217189035768632739206450784381066819009958034756641624784273131137835531409915397737512045046820587525515143470970734310253781782695916057786819226907018803192459526801712600744493783450462768966924768274857337739024678315953156288759246350478947042852621205515257622842698028982050720363138042381749391128101658472014858103056925388600279560370766560581868642211909910534605877687758430722597534325934200575895784964160687034701282904814518970410692986223760955943093887971578853253518533078853321641372639213450238078949323176807280464346688473885405365443903705856246357770607185229562849103287515419722256960400917270318081012301866798476836351217159524009409973219261178394738472602088461573681263219249196827076713508930198995452849111766413105688094653494794349080587283606544154683908534390960081750548124955728111939596480166327773257419301981470677283397857191282207821029577368953617413026374978347529362749331466820364488870948132267115757145061288829796290912505881752824384516197854829782423466491910880090895399018063968732382992714006779691276671129712402164635897468350800766285233097697749567831595678921118395875834240987993776381173886615570460129705963431420315130264592509073442778018356173819070995507741221426599682407732477745859347403849527172611474586713604916097808391264180899483703104486244460036195074723948509069056640089873459942660087117362104577716077656552791315231522736435352641845463404868941570497853513740782020883731997697983436624928973798469957187531929075366920809937526587168508860138895827474815660293749085646975370178920040247042724821123424690478539434891122573799103110587731904115896796634554088647376886642167702105582141078906499787311857951423162869026416046981917590733481233451862759262987196841807199442629010788302190782485174363880659413588120460185392989505722373671509108974509438526486288022384309106664440982712909850222261415118354803962494205814810333450159981494881829634652153634409759047341862875753358112094537444580654011881606337192878022629948753696881133848466836255126556939949740200273615707032257756755386734915433389641040432830567917026184147410646111045289442034573669533042712117280508921959943134751521181421400065475047071052857689988289189430221842906919700859418875896477741360409765920341792262367305839359809944800001458035321832130193661056498024363872470174812394919473009281275641716797829177022991469166519793034966412533862595130225715574605059507347175281642257263851023709149769685377822154084928933387673650317033391696995966966789636516156323501481402517398948749364711563199874283883931201671241933149666731925174144389404030468683142566927339450891237608224323426558371653156782403634671900588785479176783393010926010750262464894601034194938632118486100150247173616895344432542525973816992053536697541748442329868145640394893949029239423084330931519039529542833069481367920435687100284870319918471246391541958029299371893841054732248020913879348279879192499148297545882244930923266727475334122612236031269723475456040419640842294580249696162563277860539704426512809771326559170165035551871420952938015888477338886290869262487694682005494857181912384349107148935828756915968328373546171044767791724409565904597078876300391488570537127702332800894350327252050955996816696156288839260386951314551056139780765964759077010830953007112625212693227186245850839764719430684077498237646977185543403681177083794440399451156259459434911274936093248758980291478022459660622794939103419601236995615273383919171317969127985865370041542713213905355025358497312955367423973598287777991389717679842631120056403340505195049043899569199664010062232046787195077187371319358444572504379293922847071629464125824952292017628698059745487181462981130107630707160068764529361187464452038294007665341448662948873651919000349933167109024178882128620270703476753167863107934856329202989166629032359475941449401173819639173911228672661764138036600555286652119029166340360346747005236096497913533036911251947353407336182203781816559479602440011381924337435863195852906532616750003088718575160384384675288880497922722011112712956891920457862137022771812438361904851518518791283812666546645265013247058028948655440435732023152597516783972127939282887262191651858931212567369288464147880549477661666595428449335319062729219665029853493759137311584400469862134960405517195891451159102570250565120303825423460789761827443895938126090107860873819365166774878231158550227807068156700680448512071778296559810735406868214633517879626836421683086754510808373173645761443166506644432262103052901926890685646682898056029729251771000269985889459587920268405577563435738112409237039623123003362717293076605389384575209638135978466333715803852932588093412267472733029242877196123875617053998912951783774680375169069760058516058873552203667649054018358085369238339132678211239901222502045024963130270346556369650075691318401517261272563841760274767009335734448813013471466309116331722039500374339320508028169973129772638036041285974089768957494772331579176402496726281556474813223292562433152458954489368012350748575463418685930593139611943593879612474520221343576269454359310566053800584744956010451668110631366596889562251577149714087661573035052086966000555555455771273095498408621984356341870744306177747734621482429662383085319842594043981769886780053749102338140442197798269655935793928120690179081944557972705846937197467812064673599281076217588461250710912519806623317497320962986856801184800033487688624430555330184509334403505537090285556797596929634965059913621788016642768040281240107790324351906900545361393415001643383963652436540143823149024548717802629651498465685088018769098712093989163344405953350696420902550289732402854160798652421819306972578826949570964217671923502673665746967606810091258126295499324006011915686723821021289641786466332719793042732489007756554755467967090151370130665021404977655777608544301247586954708558353233039775786740711118016794683327271908302225718293405597008725889719554657728755237284733208357628621776011394041903802042213904990867642468183221972761807140164983593158618108814333764007207959785349022095621927114894048321553181596212839823756208131866047496578419411087642690030018931470936488457090957369154627130603262883918609135562124950102023688810544246870303941288783018713117156031589488929611325252130222171062773680013539034309156067726280275933871645405437202559584530212897948630380521103503898500353389416236004227454680879790821340734031549192727093479163608308851373448795916744716586188173811706456930417546847107185148661241745857271314185781036642871610170246779470724379787967903537953022797582385429027130932193371844117407757632252111720433032528417846507635328375303151074404946098767189598664120367743369865950870359029041772773212800675701831311297043707755299650178097246054628325870285971337561900690817605988266679114106172477541894116602908640208529461289560310196238507289851828816440659046146042704160594130572965151477335911597461260115942984646326430472221785736838006320491195009701435297588600866248344889151135291628209043230010417914081522133106731712414454487078809656293730530175546374017849024750029131593838826863095782647798726362273910323856957141434085373861185003443720342942032074494006960560485940660591721615885273177116291530850170448744864126765063079662551912344181151612687864491608059717475106302531078196635264726688785079412979057878320328574877906108735790961195175966131316701966005101775350195246892078869344761343760983358208415637219120191599307879593958822320772892159545775716464497070982507457645781549842001148136076995582824996814863720976643043369145763808752585998367159253569962774106766431528544943348459448148411311367455560101666231711446596886787099500465220022304740071637327215107723707464365440145336267332194309916925118957592249618191736071990987460401476548110979418657434032279018207037895810948944419993500069898837094816345993973504225881191681992283517505269900923752810458602764608131927223662646487677198644639834517588663303231340434338210747695169654871907072705308661567433796009104068436706312338097175562644123232694792077684934509943587349666943597680718221429215228005309322762928411673745698068895792326635251126542780905052759790586993384149388593032094322503447606119766372777138133494845386335116329792529216183073628273612954988869759970245041964870436454710758916546643411291948426335091570173223829184129771564913584096487027128192816019037308996595299541631060811334846179977787322433052239917379711776293111473051012184033862984585860946128737690583533753562872284109500083497320918483271073052443032980220164343405635528834851941931887712844971963488242023776400935538609611332385240832356852900527014508447220352931097558329490175637432570528637987774531549481339554492723732909715359431121392102209745464861521624612075503769396839305108386568803651444738792597245737771080192829124662241275744975201312379536825079486654495983648631510899722244531570871798853234347588448783509276910215546446313776932122439415803032451334060560904264434070114527108247001659363162414573743763908220750153801509631163459429173174365544913530914546400301202229970028991178834658473824801709031161165455225852716995023264751118951376587884937568452333010520416537850107372896475581118878484516500116454845181985971500949576468716290802165345293590193766596322103617687822606359883572694758702564990224791620288698571398243990063652953487361325033246025909202227676938471043991399583069801065991944613253045131393355072889315797171697128237455120064813639748153330955352602851104006736009627704358092488442290903011895326826576493300236461967983672854016427680688749381398269984964296992218043722782393070466620846271548421720957227277145682608769988348232858976675208176322852356136370827479423975193037234402625362969124585666053812957975432576242419981872419727826713272768734269528546297641038954395453494210042907368198398384697594398537571234324345886651145916501451730429086046634464010468878889339656951578973107887234782611137493954679013131890715649813108855710526228008460532302083226035780615091645142768155718961690098251258001268977358001545749823268946489880448953549756473463618840833717586601503286078537195077577276770729837631560871272093531067980225964426384494680078243604097089828683835622376462378306754481565113545641668374510517119920164241388184489721507989519663767746419332980134411347776877923460022357016056470046656559801614179433694395326396734222488037746047190032058745626999593257658082510001658130387138036446667604742483670213831577040731609466492748991189989353286575933495656480446047213875180542351840698834963579268809891435088891918817392496558802403902075804765164541658190288208897857604635623955468913071140398546836010949559299801641107930454750907321040494516513660293908651189057065390678952467412210598798856178677425387380018727964973630874673759824457765153432562608355747655553025426653982947210831531144528658678191073842059081293101961861559556603224542558392776328995664050718387530322512536739795352772711427873053786346550787757441636278847646009273054761738824862117201634313290778169545525703516823048684606111554532213116489945621395798227339842855648403451145142772899627202240524217233090486860214188073943844783801793910429813586552186777344198899082714202814369994178409166179113841055552916490901510502569825745200140991251151298090774673747878824371966726780167465853465498696271976694503607613870188193082897112422629743774161052912696305489874622953937215107320784035842767663866788431507136034282839455534457467829161561477114161378596293899705306896785521965778089319075402570296910846648950344982700016626914528411361253031304657148772092038457420639148197733883692873838782012482060097631923326754477955827690177132286740753862737426234977314536802046794345288232365756254670238119910103783037562064355840358399496889847791531319933355847500753798055841335364262160897746279655267846754387026274656224846591655573503833236640447222805699580299338583271296856725755940444252315994374935187315436067706000117382158998618610259572243744986925170619590702122792895948492805696686501988735715502033066904413357701513140676132056041387078619237512676108661427039278698528456964211461395156784951664971618618031444856662006197882121275798083717301891263225536045998171745620025659840180331452449560793931159598687478373172047506890717277894581589520043106646714563945445788968623490262037705247029664730493450975688058250043265138384472301389672633255624135323200975212599684297265515833696628033784825537609704836332477287925235606233497254220835344660617435114068892382147065422540390788095895483003995279936527233658197174004748551012737256806022313781779457518265227840963800504413600245579836699244568529859790238472080868485266053656131268751895642225825708503324037256401787392124330575956743390253004440666652336522609064187782601497741369643345705415764984855576664372754878063702950258789600671972179266886495224241547915677298465913457060137915368854093720807941688294964675490615658641939745766527098994437085052490998559896027408327533956697461809257800587748667258635929211198044742473304614893427485508754063808629580547202680616419050587273717983207907377635668816498462118841015477929750642672738975950302514483771361882345938341948427483988808729420460613113150821567314250640164855093486351322609739601666901125468678939840104066593008386179724566794930176049521282030774571940093099025081475649698838028532512833273678485535598764886859245612019539302591057963394116899481337411021735735154316264728849811051764110157485933612088264097171609804699325365315525854790961067937823502490555074081267093695209390652351509467923063964456181135061431809261935401653352277186543892230713007875626082511429360951263919484186848809871064576218914512788788381581488905866427261154274530348229722611612676138336379122527441374070040836233630232237888101176276489154751889536263148660674463993760080699301046285795830680501505541995469855545272560509449096604000581841085063624945832366379378695123836049162038477768688907902281552930434102743499643876480524000239818438990537649230235480011226070890721131325513791666044310025501337785642803675361412740844746070141023516045948364834525423869449229234223567551119570747416533597696431086127219134371249143124031624306654792485579448712057741020896714998493194993060573277163264311869064993113346089802986982163145998485973524485836105735866639816991168681374491596929993367583117429176506448479764274786396732882630747770301251642173001537418611895994772601118120421643255400109228563725689139695222981919138562063833560396672074927903510118728080184812398892159700305019128027982596031890355366262018456719162009425144569112564109350238572489504724869949200811766706494343264650418272549890757772239463768334251974098055697113124666889175769561038094217401357463211336333931456528487887604438861155031924180061776994325800366000593924265834512015815479460071765916682199286872734437534710654560358892184272026985124442247611776108426104037450604272666353391233143689457950464105350649381528846578806860951783984632377507518896496481319458124442567639747728456176006585596850973976556434438646578381054650203849898391371454695136458695240083479050350033687052426586835452333676167715387428385091098905490890109641061656926079783461213752155841113301426871710499358800188009564140972134037636435616423341171501941440794573561693756238537123019138888650533254749541430619951983195765535626276551073503333069723850194747242186024412648056555549045169915701045215677883162118528186133772940837102770730848071796465153995124924890607296073511334445314820735938697320382561138801051226765972219218392309401942483740637044206675867699452487806953683114619589226839835870537496383901244527295717337090308548783906074122145356976464587665173866361914776115945615033420254976685946816996203566400551956587526996287529682992685829498312424291142769195786416307780865044296282235647820274761689768352832514851468298232026444974647011605953688168887356510792456637941732509659566523230878337829877719939293390689601267332918231255936900031308771719481432813752828491036132815922489195789937159770878555485802668709540396948766276670979618938835161978559392456646784376958323299923639267359918179551708849114483747485237705776644504011944414344884920216057552633472392036568513806417455981773226463826957845454124016019049212094768500585324215749020594065390456441209484687986896651360209701254696241728215138520152300299979746426337496874568156950385178669712250654013265836833864098139537840602564294400632569708996825757331293330792769248713089004593597417926450899100566942200582564630084102704063100313994237154016384033339357773884774779137772945532590531836506253231339132395055059277028374946533746399592941648638599539511042623155878079094925558051476915807274022071125348062610460866436470504466985696126278623435496984228458157355104704904274567817871714987803332731189397532661627037627467927603842791126976859094689351935198333985428305638355660360087899517204339610473556290939971325145077735027545702446373634703972477158818647068518307410774997966362914130007086274965414379849676986223573598225359282615905269663847431143750596338482405758169344166274932027490572713984318347154952112168727470684799680322242474308359834381717334557749692848239368421630743915713088049801103410598877732129917269342050808076406759766349096394755649627984571849583151410485951117431988026727601914897605969642888099499667765732122271163315172653551353992096871319511781863559251489791376720643719073179675505827176268635911559831009147211280373756092733571132827871856600536490779888237421112468973202097772378597941771696370879569570861510885172563502560860371158843592339138044813039202279684593466060407839960799016413840294721020706170419269712733854823634737363329798371781079747692362680357742494665096525274626172213947633470520862014397773538416186300581119131379274984287387627216434341655222095856610504889381104101456936709545233757197740957083875541449786310804120723813156368131829309854171369240914325740073191701234139680447700690781658070954221319094611908102421090176415302766078311144684063436388389038468493459509694149380993387266059061434477628495806303241470418146517160600717804014450354483728975277270158329869453552986902072671830901864087857693476414289906618641656962382776816858251992011631105870303845281761725667940726416814784937300917630188751635023999987040680083594884150371674538572585375771672151196764728629865288949629623603254009774994904544550423905952697029408871712192292184442397500747919062163102298725361436770122544179485887089121676107140988821948869838563654033452260956909720558004984668899921277107900604901634351362496843332838673959804750110015457651693417507023575304797360997816109441662229490404391100883990964350104346514350255730196007940318380693545671285371389923732346658144497769728939349345127184131050641240580328800147136855494248193261322728666479672323942150452464581927926966461522250955538088681659832240597998520732710366628654263284392755811114050096388917390195563236772204298797933820473913856194245119074417606697292840026958171235150687551752846890094660460135825331439851650709228065856361284995776146429830020508988366894111852008965850136116301041859623233000683311807523391047892662625196163547972844599386419434615792707221500591738747849068129970009678779257530986953564529817419030278092485330437596360656251537656575987687026450981368482823460387886730128050516944106122665457054781396590964438090176872558484353024508463189578105397951694051629493276399720089211660048930642558287445395391391413772361450678718243761143170623056280969899448793434851358356439636401300544503175083598268308936392566056744276159117933234251755758428873896110959289282775215656504019038087665186545003526640821075022099484958695390068003899917706246367919352811259455925661834268553618129553860021213400917289357551872963209861427970410340805867274289052429241965167909458121111472862961986392943458610440034977929967164513007456743839115851910993203457093017701040535676175614241407355125178188005205437926974800343528630492270974742107637866551829026215768003443370844781424062214653577185742190105849824047366379258463661027435108253517960508281513793375416098774671297814403175543496480503392875904369842470571936503233715220020735020543559383007101507221184747576451663908770338259675410620056580340344364002660168065935611719219663360181094106962065157193105504353214242567535945607905493866107895928406463513613353331148474471422615902409433005815838712984884877219050146523087572644031520970118929829862108603396891914521849982047396282526092145589679717911589229739365380078897106040613480267336458878581159251703475966575514462586382981035813394481859974734142340877447826038864475084957846427009853283326257787823289577501414492876720432225863424290829838824102551056266900553033026644331146566353326060736773483493625193316353537471118639269112821740103833607577529334534774023725935562149529195717591007156748592298466518298673259452866298815034026758125095166483449064602806607337996652307351524248887522770578898745151540672219194501597018065811826703305644338582631727528045136192346404908997232717727757497831048166628061129879220315756045844494438139179030988159004501523528197551206398803866915388988060291693162490619625204364413026602347171673448117802476783395998269634347910022597612901522465676849524935237812457958782334234801062695346359571534424102554359710644112403682255075153124187384067117730945028753425897034783502918590489517544028498159320867107235492627040365980536142483819720445215749653084075838010857724717327439997426366090848704164171130538044714914478637873542241038424264837959186307022465828201693931616067479669939253481362104972195844441629581327105947869127193455836421491805107268513548318229482572360623578427199460181229652484133867330702693440066317647513169797994890972214816987900688276961250455344720312178865628797423011930397133088682232606905323066505287683717914668556739681006186698314048521557382428839819520673793782942093431823439682673455649740250383584734484949326804689940097575401715284826357609004696694498117119479936578803584864744234238256146308236393051790305827263585415102180326240000503415903981222804630137574170543928479456377035964473357201295851028359429074982214019201072045400688477030875235469485784331548114435415734738502837373106722267677310798138684711882243312428506064014793190076094976083273400861490245614315485681541076352209117661528916641506714375152126246660981054734294464048976211737829991584250263248271088230859574723290472351781483193861641773992300038120744477372690330447054461312780182249164423379854913071597089092954075150859695226492959861406551560327803611156121867722285378627500647430425046105803689058142184404902455174923833154653640875211337350134057825509162843058278987404024848616995773596938855692619454370746852551293196024254094389581836770252911936359970128509335301500013538951189404123134768632251665538835441918156609727489415647601349814155483331560571104759821960220211728406873624897060675496726604209514739708490692039755743020126403201778669670501055414053527138560432532083774545738800176676914585722331619820672819175228475944291808244651793073821261656416935747128790051264697644995118245268859197362828551403668203344565681207544691551785256741955082760917754684632278899654981505929404968723906311773886810467986703184485745525649037065353788672397844201041821644212356663666569304323641284369466976463875768668474630529459794680548369840102206247027367647442780179811973823405829800704381958684295681079814352554978501611561308526979858938276802544250784645324086736709307643130443583380991392669580336841948174923666714806473915139871761106834609058837666220920519006997989106812047811877422093937289531799588177068312487204320859342588957338599385310633606728991541759073887555135788636483790525321386303968909071727186608622125406380034960510056805436156818817922928540534853497773888238785781096647182911158511517713441140797279240494767159528371870519700345728417718975579994009938323613621775545035937017744740901355585734657670095524880592514116866543134189659773728415973715028526972602546709096240189415056742806165703304157767482022929612007612171543804591494415764075146207005156244137497235685548516525190690321330849618768385690397018590365600775454744067385545994732997381559002386577657584587426313942825534574656837041036302009765672257142588815565361979676964863888531648003160268406135461284668059656084661049126796098390780511290531803544452276763348221192504199458935630037248477358108805326935363247132907617047986968185296025695289089674758177848955469531150035648958396662180393810284952031553468816646494021502277352094942459548362578018794128431528241471897825334175874462030212996261630673182564669211976100259567119664361132817083244987946566454567061244151745052571739457474215862954782420746846951561044387208270043649797371678125216169630920905023905343045343312051160660060085706617829733871671062344258718326895742995731268560540970751223504071176367499075603606020571238603014551685989967102212485655072299173473186437727101147864230014499581584518145007017607446579930147179127926139652099071917907066013864717071515210662328457240900479955172380139437339189574178187233945703435261188583202002754940129858824588161375532130859743804978644802647141675688177659931253561782658682600532144044968945771860365003738087578174111080639995982761589360071718823126398855618536901797878757493451259057939320667366365406095868698965277154044777466812310529891079609113969480695059929263093153078510918053053764346993190512031459868431591028816586762925389802435925880775715949176299687704362628337588184670845997067438591075441507893559299335540866327433771053174932485257252612068404736751852374534230301276428058266660672684056937922565021957353648784573053034984134990496860628731177227174559298372101145153250818216438570902174426483418917718919754017569379662907220821162916150030654140758087262778667277514481545569414323451746124083096827435689770470493097969626400402115293511310795119946366859868324643399672335110460716347321513973205598402731078743296666893644446513953513102928933639387521541366965541111949222030094251740083637411856315679548817154498734478640943136718976913583222430984754780926239880742167897731333362855832171449756360140241110867375191130677558745892161408013932404139249551335092200476211362330394374398465418325075112286913593346045082590078203677140674734459604169209854349078954005537651318926763485960464588043628102858043129409579865481026516577220759098956714481293546660732235464745792152740135797311973958661773592992655123341566507630303095382522847092981878562632996130312129168068512124288919405488243308904285880032335805657306078590062709389950041363562406643547532594096016619305855695196636185064467893366543860476951462677317770870440400766528621794904167493155593438696290905610321078801928926467495495592121606905632754517450063065718023352514673645472531015289406865539465460417270064798399541295068258903104667741312709005904800378897312926058430467183819227488696575266983757187409396885581619756921750597338680962923220440988507380052811808134499253519827596146253544304811024381770220900454752077056294300180262538598919015563106974282775993524073841593671800624093872792466397683005652845955083215050561331395357311374843845869918252371501824888798871905561007627249006486692332670126341098439255831982288262112940285331494102135088659203499756062517370533790725815490555216597763703918735330977576819082031088700647266752699239446209609815450416645496016288287285271012077724304743555474264508302217751099762948786437827001263038487131002282150547174147544491540215613349654208155090941951298767277034593474642824457757007299255943625566406374660206134253843405052108560749842551194546500094865470204232204604707090791481592780117734347837567107264000608297600631085260933648009362963099212908398578802287114778885148013931894785438550649558832870180970802255558599609927192722755832901305682286127989415263419786207712635249477450610903846708537855896938534585450306269737162159956042476190258479240147144383007489672766548678799385538142445533055137562298957224146454836181019639711640543024720189233259632009238902695516526094045855971158776222587871922975997217668284165937180415157445252745406849509144983356450718120354969463997831669251527117139780023174204505054965721203339815428747181971037328970853835087618204528833626733292076579391956298813162083813400469351188619482010301973993288906160600107689230245512142040538800599546986204241337333381949532071266674575321538271419100698788751526287726476854907581419804298259151617658134928240440577062841710031126846552485097411651071283711639610425856320603507975337845501100409317618556307022954278481684467277381172306958371610262736197045835933899879957397353739323481168334386107336376646321456170005653105650597396265520429125561424419868133616808486119123840156854458573586729528256998614282057002459985811702818756603411969422634955610922048553970349918685253441790508741125963690902022985863471565181063929620961493816395806849464707140976481738860450315534470171093158078502967908629801823614482260660033975368889639382010395693476482171418767803270309736534639338885280371811726206984904781605958359784223076906467390903807454480929129397807922230925327101461678029882402699018983638104755752900972496648269169505797739615571397699392663478314497889146176499631470385945620738407417854776049423856481314784257662005311678522606532739433062934323985617392335449102761429581281776052880168470311340946476083184952014977082106650027196338798237828160953120359815028689899925102849252672781359489647939976371161737048298876882172897839099172904396897988820515009158791763615559126472205977482571934115553361695256211333263219101170007598736796340523234876802733930080450635087761299349824367698591463210003958277317495427327911393344483315413739009860115569229342148028273689750713058896350276204251079239100929929490867599543360159196921410326093261662931807425307420793996793863055243396712465208733053662959465025119167287989306035333427633106273256874607142507592703988505982813458818451468507171926166735197289512247169601168964504612385997115818686288357764985696090311435511227719337287476583770858091660496239228038836234494762731436597367359150511075829487421778538085314477832518074771852626520882419880455478283496326697349867057543601790554771873823571481486119131810049251033344287478079668062085127354482231648462788438913548712980206243042566695613635625421925970374364993611403410245618013061374938362033741259609445532026623332628912182039248573669172498600445966015013852991312645790740709126435736872194654814121818340271555563431655923286380032851189534541946896741615978099276491471695918449840313918057288939590134201425463716434917917421163710952909186322519792393896999978188199628986729332664977178292421005618155356690886201228299195007203077511664359071611503582001351118326054195405195639544903635697340275775864273481849878589244964972220371760863749042432301554072390716869450969316903918372370581434251289662217243858470323159716492915557477720781601644952503702387064564856418425315415389507578745722238323250197003641659902981307488807136749519649859520910088867104887525755890294937296206752824986518980950272006130694520492230936617138486692077368940625382307395813935843373832556499021861711536124463622595571471500418870995175711039791387001158747773941892585129731410242574664988061696764978572946481228241306771374447356281516225957410353246717504506512742051332848710438530336479084705966835016856254888882810711573477928289516464685127439734662184292787157143380879005478167785545183845694670101148442501598596743493624007903370440247959167602017895250034275581340053157369207028587394529490625174072784647916504085463246717132120124917618569376164004457898644644747219990700148892850208626858192488207291766371096141322661065095150008599938393525375398892834068122451223806520350004747693637479521387514850893494825454067207928067622440649818594848965807929551011061806945933822100973077060489221839338147070260537422058919791633581256151531709042935765112985487806350601516792213689706823510745991317393980197382568273329607511500683296208437368838281868771087647375063324904321996598689049906800417643129525425071949671969967125086026816680771679366474407078523239032154526163011831980844441735427048426993985723126524153796850836850597557723833674274806785502575170549765363179644524998109620417066209570935762812078322163924914400108996608347432263553240849961735930964402056282246645510932362691498641937451286366171183381367580807740688411640254741457500762993508551504784220308963868743134668429636180819229907463362761856726767939810244000948659886337307616712429683567764772397429747829113259743811422309095186084346750648204804918749106894218929010085769894040821650718522166335175896899120948344210963563047245646799992221610154483004829352950333857656097067942968387943515771617869771553114934726428442964962895162325702608050640345968252205335639045874182089672468510452413069221139515399239453378746267080607711523581387707459247386476270353707512701220187452746647529549427259707099980856008169432968424483690546288971626051484821504172232425998495036758669692813082045539369848288678201932750470358604515563987796605432678087484783925394192826931294163799249190439810974213810789162696052182137310591660003194792491017694955724274008609993355583792331421053071343802242403000489039915595358026355472165204122883430533569120176987522513899564543532955949564125789465392682564678391868927782458867290571814585604122415162715539967577720950852328559227289352238433358599512519878479134476982607975380817129677370489344607904975813796941488742141690163633744427853871425876478803117286095028187309354081239583193754530020323077919053392675974128769487413233493832669128771952554040460985433632150544467394316076217951079712606113910602393685214295680089464561124745860231722020181023639155879104952169163503826273251362699242601135502956632320900192698699222889087770527522217681117674480009981803199731341282881957410210226580203635115472558424313898969988742536915228348545513831183381667896481234388010114588544170316798245792211582747664071167691745438707636075194578661484446642705632007889185337680559808916827019000619096910254405957654887831055301854207280443490924824355053127327028713655169270562423262322421484125588892852794043512096846898731505429345805607959970830488578867782424717786068099917300834036175417855657856068818689162059931154059811211346083105442723086485661798846261044778432182526261717308823324725531932106600797024993651438286309365521910239110667406089748617509879501166905598777180676650251379304036556751484616834137175146192656256647467914208588889648970738103979951972295135443488857343263063741023886392333158914236930619526336724718649391151946184293199248723362293925980579724174879263251196287854760918218000190899692322873426431724256623986265997726017398483484903861576650605059502921100879639159940344554856877577563116853096149068226317751841502852500464877901845867410607357607656414841101630310406951812584302680813293054672977825670868408160727744643402827484348164049188805455154603995966723097993664726753335734554810224139032042403078994907877665080223596712934255436935667744332117672271576745128949839196355408882447141204757831924420319911203420838574330159331612505601714957057496686764090336820587504909611612981960856084913552621028681107359613592424661614107154825635364776998952641056715340616077143457065526888902454861572455375695174280192006455870320723927926616249383006253551881691037742634072773778110961066033463318188408545115303431730871368159739982234584182057103071874403803760326433353348731669645399767279095618555595391401145828848717205160334245888480727747041131938236516427787783831575527424160919013196490559276955654635254521251406849680524031592757190945372206691574934908945344080069522202189068230460888233639095063602624805027030303448575236202919579391289843711738940544024371956428848496184671497074611597482152027428096477811728623698639422570135274636498863480784747895646968432472696720397983611309449660434715516270119530498395517369564786524680168186531795617764994479111712459326836326451267398609098916357979895895506708529296905060441611390457593898318828189299332830656726018511774808903576697460750405363592517467877352602783575239523302888921509966599740946550154188614001618162004898616202754840304831219943585758688255211609434432527139637931829048483082786410986424884516406109365823351624216519007691584652185845486363790013554750997506967414311026625392910894245732958504329345094676123264034423912204984473821703106061094418416993786519163837643521129729122991395941137833167869233161324701624713420571782314084353572633307635380435632936549022672516329869174290320462237446579026731570812826005040284571412337406475010125161494338564504077479253941571362629960720504947294429515851352635384568203996497022171173747720469111204442675441658255478005762834475196079217137055407275029949657490309232844541521308838212426530494928415254256772132667405110893840709334303322003747508960766102582768642994594409910737950188507882228098772221138621918431399073975455055152877661833602501172418791836228496563752467986462495326787590640014992805947110603917784337988142312518120808450802759584559347460370713218019867003679136815726643525439390662138484902408736531986360173323722765097280370649722069031724944448930788578783238014607333163008342341558590571885629771685480642173617674119522731620132833350668925770873279746837138387909801215644285651200254752476207718978983175737911971128774369301957185176945906698636674298541666461623425262172162467459060358008958978461682503584347141159512967508733734039719983505223444304550736485768532109133624514315092324245977009693652334903912648101813720550491786616570437766946181346067389996729762069549190624426711644137542298208964434137006523711720885006858455906488242442401044351218551151090022728865264441431641621802715865764423413158362962559475496841525662902537518734009518856876993979389576676098707008855181089290182607266533256402157624400505223931659375006328533999877878571187511052612142310670362496933871872972946876588026507118128134580519602292827803650299457454609212035296053270986429969623007062627692572926857385617935208664656707539949509756213198550373651350320625894060159035899555915495397907797467590338107302897136124905906723798967071527552070055387029105601829909659583855525889584281943293627176374529319031658993728856233260440067694446591392548394839883513134212117160601669236598408585033170699823141173475241763560641470672031897814763300586072319929581983085862816212613490946774959225343760311877233278275560142395340226560340959369041046162474299661050755871526784675442312307503532839362763236909087126356553744861159431624396690666504902576051068402053970013870658540434757708191529129383429788468297308048689726210242979462892598357199059158153942343919430100420255277369051744958633656695181167537389092969251824396827717761754312738656012919871488401844753770192072432700940265397382622313642779920500113936098276680106059278624965920240803581625793677666930292414588656851820761716347093319349159495369469311600425680193290107776016515197627611987998143140743461127371361492600128093407168066179403024277077290133493748232209745183964423160953555137355933588557574976480821471969746047944894057254778140709790636626139029606876757414015000572645233900439454471422860083811671628369609733073890584122317306204512432309418764953467317492798200570259832037949459525680984229684347058666017866221198747276771642654372496315917303757567244066874860874049782205387062703106551662526219400156122878076570623911562405837125988323812790808881242228716204432890835940487454300698241453542568548417214551926712013522046914658658289733255554713502523614228110402285094278124761725214770042532120565711093845810482171984032826933125549102397370639908129084861692853205703537672883182500843539646819372641371633519914354286549329531600016389497445139034572321800378480821772191763839596606049631314509450979846259911512884981385957051162062533572492963521933448498867194551802056823368984307683896222973943400765756813410316812034103029304610007760862445529763889681954833983218616913300685038937050281619569958429062139226408151370907446399347539178042903525247484457523143464524244165230832641215618489446538022429283264173530353127765117451597892189398373319845795641390441645316564883301703698105819334523684745972323902699632113296269217133135687059427810599619090284613697322274809162950441863458334207965505359217167377391379082946781862433107826333198219927192776601818086856118443455182590123345418621306887297968909989411132412021035180964559015434053883802670900548711221547245113538903799956126809925466668734554108642163543918274113433839580231223737378485042310334456734385503505488196412957999380492624888867895685880181994708368735336694123471658778202286922459606362264084898068992071991365694215024346748281748872139675081551460904776926499261417029572026531233064162659825600818158561580836653936433666105257227412713400271999801943228156228701606153839567193937570284778722028720061675933004096364610313274307310594465896272512983310004685224445517328385009442102179776124521855706745045618169889912757181938722189092758224263095489027388339317769096798423440991620320375586366349626168225394913686070727116157369162155907165667196478246799387860170272958126762203420078813188371788325403654988247882170467063887331440239752546073484137481318276858287455108246716066314445726781070843413838887138678367287472210594491369318864212586068227702479008692453213527558317446626251984258568238018243760757853177920141505807331919918788519711726234598328541151801014285846049415735185332962456482913095393118558791670444512005316968107417852962944814475971382472395125248395029420263794525689231692218251297821636788492382940619663859055334012709327354148930946251523661507821139523354848448963110948280592904916964386222785210109985903264126287719984538611245482171756976433503141593919737118680250120918982372556499093875939240824598392936854718937890698045739361073744681222482421689074472515776149877340759148007558260804507699288144415373309513367458273366387801500835791695422715540966837288926382574916934736025511195893125288729193046366073549578811224852597983408729463690318793146033761294406213631743930513449200579812924007110694548494775639201226642375317082905785349111997140721860264371370868560104930817237307541028652072530094969616509271433984055541204674450929446858920782551860987057459454089516200481376172988980927996164620042935129603813532363028708943715603131367129910746243153668902346506255130809152545055910811016034847044453086211309383439373839136259615092450492097317946856390970118543187129086206707211695408569655011482489761794116400129474376541776875177789861432577083283951893606643281940688157548848340421855300851143653572216300404821470881763801676894586832128734965418741215909725177390626600937895665107075175154990328604355655888606032379300267305557062901064553281316795144850503489651408346952909593743443839658643385366341727794044495753315877094381718855145430997635037876030924533051842873987259543691484601317441104968649755847504869435009504279762337223247865190254679745216080953841494664622399415507816497000643306017799930425649386396550644851845139867813076248412283615419389323257687819485157358546766945841448971172054488252699046273411051907487989354959669128806557306245010848761764275645220963245030229014767733043670561431420264214521484542315962627065406572884307102420033030442972008665759768490903385516666222968999902537092196726496400880141755348775828958299580305738496270320652041689137368243603436682742010640087825686534357949481341209195865925702303485825526006120154551232020428981680788358540985873329819438588622519511529588968286787717797843296507545166519724619802355714212896011533885821798946127268307313841318400412431340515339803472372266518616895694264884655943820349380138949279316522675214756260701250008878718469761036176775791256625602839077645149683612805533815157464040928322093221029356178164004359203361820785492674843922487202390286399139127903582908793830427039364924729191062011159325869393617514595949463572448479814643049186137469545662032656657211796657499099093463622738854955455536766374798163428046165087283233660455493358269693879398432926807239807727660001898207847163395208400286456788633905745863299150752986675542780623717013510692151234925632121653630849736242374826794307144733186695835943594991336093494382533980916701852915302105723376282156464535917608737584838831571191158280973312252478059304545938277869970001153174775546922946178401632424070871623205285896420931081303629953950922445065123880342181045774500076106381477580719099119255167985408032346500367876097003845146615413389896128166436952718530858096828511967672857487725400181576032033504914791343594547836876064976298353489680656292293335133256564813585997769638749056000333996534769547562048860299003405131844395899449438458167140110866533352950580842067233270456591848320076331378273575246428390950171563018061762907466533263522362157108690641144193758903786452872347528693994013832411559101894110972436063916378120392639175929680365434213793889927459725639298856756995973626440907676245439809745427417251044403071326841657155654244563072179502819537962211718257834532777718464148626531858701402049897835213401437726234457266323326853331151047463777747879934504242373927312488301971733141901545277188633290991998062992671981707449044978850338499262902422080568165111189061730961493817637125123980166842853967595195435768654672409413930473950923587341069561620640329910596810106537519177202187096743056639220151876862123563869780751582503753119990308015173981178442957812107956891377726420255537059385765945597206806163496307176858144916211782129601538009450920469806844485092908259253454574754234886764867501386682849363890428849137657514393296802968541059390396421971330102980772062957171030359369094739298947526675817442886440267823646045576020163331798833532638159115554118925208946125655901875379340862362605235362192693377343297206252355720898780141726371991451698055009443169225752331063483893247711282059514492022966195621169303951083591385131058423258772180070785495648899734670527509689142765734381585500175712898085011223607470957772615770388151000125824823626483114930842132243268930598156354886620763067837904085717702329607352351737041832529564215712228172429943871462244815233084470078116083216603719481077164820900449667308886302174701771064714077459127175646914845556342898707508155442502393160575771754054272296467059184410727912885270874750982643406914016495538273803183773647912581540312159678408676153036056357554809749575293400606514501966444462375098653220684578890329141501295344014819210348300227537732999836895927584525895251087694544088097431572557926145210348166965272722232866581508265383887581732574929565171086784146264683270237739558434341894967976609191560932112267165278035272719795549662753989135004626870725176467269538854285476549273585883640136200623187637035529129080729704520373866997762610521617510941536794387326116448269867581177754593524960254476557973319576258400477476506440989152107965938339090844533519800303078911432050873209975202672554315457459759399272485161300275864404114706011564308620132051158232446990259578872281677795022773195776532249641357998869609083665448579052719435017378359489000547542189195024610414169694400006629073140052815787035901422390863109977069673830558280811628928970713305851724728119671663185240491489831950178537558262670342190424794596953390071783585178055289321938473338181470509940061015686461976749897197975013144292509711237536676512526827649381319333952256859347197639154421046829338009004948859653643094864489848670982765589678126826206988861949536050345074747047396088871726781950568111163451040260651676540467329820787322801553840618504312164602951927353569954603842164197075650463161222760695310596328461623376255215734953394420831015157006589890193513150739494050372091823187825007054847882568766786944081522325201413577280999161467607007268844525869735727877430498032204652244243657855016326460653637532968882923333629905518402988962450109461103690628929167229781068580823149735713440985388679822107117074258975122103536481812725419178595836621192120811115194996158139882408578284533729417689578799925353239225510249700223098409373917389598782933277079752189246263503933313056169594510738692113479718352886095773871317642782704648561267069080961918528279703885147423956424941250205707898450539860131320576607946658807183236592755904992779562638521581905595288363146526174829306002381069906836600794970894368622627875569997396019037170075949987523080900597895639835064968592579791969872236366931952049018029644062949900000316303432158475280696711704607390898964470804552478028940701195867151598642139264461737095471693242385575015176839986575318047855051017892332463995125529411315487786638113713141519241893670136279009374276598728008306039840098210101193743853964003160310179497441166670327304784232971129448132762736569334837697739680101115130114356681723872201720030583179023198516594941822323759666153954639926309080032134625672451175609807513507092848325915947250108185239214691451754555295088808402341888942629180258567353126110277487041547199959228132362963187693675659292112328012529283457669024759055177950322458307076403514868294757258243557484814711351499921469753172141302108373376550402209065474383003988988068854170478447499944527731384466660159878640818957019394079609237019952824861808415397079507776408167779654247223353442388432758846725596657637639455090587473884576401653086472874331915513975570751848842330863068936640213229730169661317291608345061243388313386472779580512960399989583755451360450672140746637180786640514775622543959694533634316027393702516276027121953518266205511909664929643099629740557455613123354293452644902707499663156794844358009151578877340654858303995383016656135167412678467133239896997949774019954685867359514772098466931814703136022757862757863061972786668183081989012991354440445558442423524796587499959529290683568123274658623509523209850569253491188867102206608353904970127519051866559979210666455053417382191996234500259771615518523243559161682313301280058994946662502410868780281937400366394791458887728317236423722012320669399994121757410551065337322261732724542405789358514180341628002088867005867820886319804928937267056125550617447486019055995130390137823465670561241064490990537507335513292072802253427946335359306621719968397633106133799757673939156593490373741579542987312001042591842010865459461020125935474139272840512220834526237761674127873217118553534814707604914612635930033936351999127419986046010551512479537818734104611485697626429488132674205550167342469280825695988303129456287038196752934351987056289180776101674278435591597350073745594864574824071639792201304158594107387562338389571945863452960825280833878033906076631815259229130251795596576862594733676974063554290498964739467383501039742766884522040105218018049136636347639488288500553591778612635909881362199419118005997567489505740555445709213689718378752971460018298104483290928908233553471764281720774936017579432546365470865710180634443142408619582238882049393610282438566823770729009252817289318800811158957917203795702182271722003723345032712558727570431375953196788324505402400201808624717822602379928116119982805924621591655822724916146189136867980161659933622912928290657630731303004067239523006249372636673129397028320496931219315358537756515551782657968701979651224231428124160742356355638677798716396035956529966419055163135166157085223210564417017714698074088919714365914492924437355624555215518910806815416397671211812288808911934930347050251420630405038411965018211839410278849598209437067511321796774770170469229537641838914389020696564863372423723110106476038087177893621466376356903639384148216481316467813572900925615118743873641977078085954237736806602318094018858494157755255970837863456908104008828703396790904803510934687728134770599656313493141385554304663922255274383430884736279228695877348848098185279725679645598981212410363641837733496525230007804895475357282922936444390858824152186896070911424282279855239874497735493640155199824541037943703864509359267961488489478323488365780524026746379560444681626424935482650269830059043102107858312355513435328681187426470885496500247192175292602163765801860897187735131062898236720319075698948514158424486247129785668101121076400664503517878006807779797404238309325303446130979050480981187237757204994991009464159444184954790546653473702848702208313716318160741577194142088244798867749307176400809243277362934183780360437469672086017089917680274857670455782179148854021950886338468000495538044098606391454160260547815587912891609221863003626762548202959243963729361836418024050465520946079177463464912417195141106641622467996703980697003854930075914198216472349843158503974120527030980786076159693780345146412884784763038391135727637516949855376515408204920165303695472542012876265416847889339101353007703601335301538489940233550502232275507012007575319041791610769312093373175280117215537593342190895658171264103551665729634199061166717413985191457262310469003646191302823929328984782049595926134838511887228536953182188992730857010888271358128667975379222467074253022482074471756355106217670342876190702104709452880901939327213358792719813868621750561909731038156831340771295277144134146399421477530777961971866898675868658002189323088352785492911841888812956626418574701388811987690824310152474332079400632512092790692800302284699057163432608088298574576455958807315072416034276485949414682107062511030047442638563915025421743532933966373262389245637905078927449850265536869068404132110005188024365550404525623993223080436791564485583126671156103115778980754410577679915510168564190332774708384093768486916744507710316789185612017208642285653259346819421261682921538868603465432015156353502135441933767036241563204430724235229469972803715907759540257856872521580820100055482586106749577806172339629137954570734951367768420671152632587345986080925921053832043638992625671194778846649866909308288997307390886179892029682197809942324758001946996821219474092623993991217753531357995934221290519162252188407286158283777219849137823186028356345307335469076662367650618879972861662638239255143873487072163425030356956118651005054492713395345779594195295159891585693881986706287261739525752440892077380152737408857975478618907010802940282208091507000700490454113764630925896175141210326623318579986146674889059665452577773026739583865950599127858889909176449242048347150096584622919152897183483845181489411353339810847785453457646556917439615313487369436311539281369550860441077166277699129791625236442005596765915907809502036933912891624066997550665860853182414581834429195463627897926176063416577798262471904572201721401914916604843632320738339273424399770946311615704592442188795780804973700567039765671579009640941608686764889875315416423150757099930823302770335551297333971298888783358361754804201033559514717501999702520061854799464570359378767038606186149399107217804633074594397146585508607823576039065616678287806207257344810137828425350186723778358591005749772469435057764914864584304964272301136070366799785106158206518940519495566263216551880668473496078679840187371411956430437684044446217657144991695334460511394713179757384920665126140817071467880122334336609895714766604958793214372818230274419822763216426941670108288427191879503467001470743649894037163526583959533944337511808562827629622143865805698562697382277555609941436872630477787158439309256599338684948173764934613168847516796501801043047914824024771024215320201696664696538538482824907873311165513973365025284106066244755923866514045397139600030954287533939664224400796001874182433702387374788717102617681022517033741522380174287438372041963058094185625545627619014049471563208364999833238873994713004527245640325032426579265885331288660639207003472799004027432382578529739622830804850027233003743508988619371001862884875861646991952710228456595520502427391189607439593570194770232077249381688238574300417750533479448683510868929412049208376787395931967235700270586781564030934247250072289765241024840472103896929063598248553086495243012103004664259726855399425030414406248291592913594232235561396396048431857686756794995769290128410510206474442272530983714126389772377949132452850116090376917318579287969504534102864405200828509029813963525595237617622885848504462203115093664351577929140542499044981873497946815431851672156671174664246401638025072851876536336828301173514649195259440681436414063184096027678976641083972065904779782279223591914955122784912399446039991020697258467605006313860798002489532263279113504382260452328997029949267722375298463186000619925304978706064028484247440553909620156851238624152180709326835481140495510455664615459276987276045602959718490612194528613564949591042386964194291464126708337677127984607090247719412255823162621384464969693296890061889651331834893103302450984171627179439599609986302617791579958823641932016152051294099653813786814589512724008599001436924626234677609207364406797793034672530409184628770027506173833404954926937186977689979810156457250692484379285827748304069497710126377827814109137206268016866678332568783716160664814454528648156319167167221108571133298335928252960148717539277690760216641129615723314601840341478067995233488957373602221023659435580714926478909089405178902120613044426058924711666242414233559432102802040035576009862821407598024601801433974056282761174050651991503467325666485837042890437597269914984099533018393844922220249451036997942738515886066207808727714458485907917061626594240386556179419481375983497528126412315773759836612342491484473670498043956364248713219974742312131580480693535182801145750568133207796880942749858452940519849155583167617265494490338699011118184414013238488766375533609891028126102135942080562581737939411745814027456105455120762174537873995994640985744536281948654098065357925079690797243003435196879880337505575529627711299922451897870787794590339690873420137008577759774467310748333351127411112292660312899574324913080662028509669478352977728554931464722277303667320032136153397747807293160515998858193694693218842309751512737819384810829925091754425905401122171235184252858723502636060915898727818503839010732848962447009517972946008906425065528570773931902128124807025002914865664514247672129546014685193594340105258089073823775633128694074047135857552305520249485366595205542476706526173766806313400148659716509940842915389799487895134719355025587865585835972402914220228177871992210367146590767576783821586055246301134424522486366537319614701112284352372833273749943984388978464094161808245192865163791962852539441073104755370358380849505568884133360252603268717077695999398186056702010244949220175190172884633037513393343551513026934499814118207157080213268971415558756004024967321588190121465387753686248014354322752022671686790675153891136472820080903463083181057607042659581518559623717754254527626054287484355640615509252676853541429813170726770909267617644434837453403000346158697433484554111739583567902321623618082092167416791651860866462853242735935949353194983613132985244551929366712395904243011954521813149515550706449912299027089381675458838814655997667445869877024409781002644633871620497551788358584206087341076955950862957217459513699127834067421840250943526269415444598192111845507925666478906619800603007161814892968536319788055589643477904780776019057471086582673107270082149143195079458224368834354477564858171945616060453668896907481824738997052702404104287721867256362192646325605285325272674922111992708356815095224248273396033513814214651064220090339507648776829733798519509624705084374933730763303522068027501609730995732597364549447749181860513546131672844709123716827332297425166463985115572127253627883483906099504346381089063877074647507575092377869769716369889777318829545938180235424409090060090731562684088503231131583391476822961410916429217365878479427522680351176000559771205199194066394227482405802139461764368781121645532835373026613236959791618328224030545602874205441490831691938003934920561906539083458040141439769864132908314688422072791958934272216733222625787030668589417378021448648950100116491745880816970170851688505530883928776478296800148605433461795254009789860527595358845713874606436905206165954105612486185019996219599484136468284833890829409154091791339100782256648001583288011597140468355331774461937603972545527832395426600296982175308263225319100540948996980950907757525924624562867447272497642258806577932807098440015059769937118365358293460248320878996377048589822294895207270319992453042605509401201999101037253442260981177310269200659317019981032941733011320777713889041922166500947977845671620662680764832868181056276260825265726163207432103033565700888860606003041313201248469181492683356263507866042771978066869782006382077464428910644112944419834289509993426974294947871099863238618658290864873184169954756809444611801535279714350764570919347500124507348656937986584894234192646139204981711157363084336329468462415616938675124258242136533196936916792733286321974077297138966174413627699627607746459774913125589358885907091136975907896579676159082899881228049529430108338220119504431851495163005570073339805649045108205795938110024273495994231439110055704153077791600487076475574286568053990481153677493139072111115086130699216879622984505955132641060780791774767898984259964769791174871623429000673781639113384552793219536854495144267815855403103059357373444733326851559804033210072538623780467417338505765544996699453246483217028616835356765341403881469643210299027530742039156449707643325659602073984332971428279828503818487755953055906219876142849436273914391350952731980842728287176878073301675689690115087253663753053139454257378294902783795480384458569957089223172287319115376399627970691022097015694826741208639806964147623282598583049929295975023753406212078172535907906860943166727581845166668310827022326706161107990931806315365974982381961358030807931645246466596195141223408715181980782499275412090951529512029962575925423064489403852092797567472394588816221406941798560182257711813771250471789102441748000770214123735781784714695686823365724173807267036898845164651511113968283563153523198703356486649138137886420212428067510728607410006367710762478294149693739867001300027452672638913392158421822831649192454755869466149780545065962715996416835624893331426284505600911746736022106133706529119703945901095546142553707135105155014974253927832904580882005932404911443074927929702168591642866138197587473571392032686284902454167879223933664641336861493661369959324603852002655373396262051553367768162550140446354161674955802679354728939734045296940529937227633061549045659089251122358130664354703478336683081829921430042250809125769440274551776173490388388201931686342284354448752495428749008893584029179356687510544600060748823658643287192984092612474797278045004963558636571192154886306705887501078344631166078397207386479567785451922600489480932783618743658236588789502616890771893415263788209569267742234681034145898022942791943192536088215740801759780570813960593679456841933529394403462337510411202230718954677850468609541372705553716955863943805553210954856077320762244695782302653495333866809274270357771507652340374963463164686927409210765375402292660071393744969045714192927290972580274598835298822549398335365738432985867270264437949388202019003951952944677472626377475567852312598013283589367650698362063993203244709510172144573108977516534185180952537204441567956631631159941802907909540398515181351235333260142838326101043798384248495462368547147012273655844529676997133393013327286770364806124242971245038896145910355075544040770701006114665347643602515445940540459372525221420759111760900620482983140342030322751550768195263262510197813504382848449964299186304363813646318764961928733428143549853633407068533528221728676043486225165587196248180173406369974367079418738647304859999402263757705081631696770079539783061747572370796160099941495805618702227447083484986680657785393476771921955927833571447393149938403868116879789791518496045947593218351727444645422715317309306766428147170303037151086235780063749661257981794242303727176987360172978127410689735751390013428690775735722277956084884914439687916887472305974388926416161137944982114080477138561184486141765200925795068340084246890708761912249034546081336481756010084731351081000291975262193016008373306934385515425636768519626965494536353018133144455167501501452144999856810980181008094037119224537310753265260088255593614996755879447555838701491924849690692668524991778792300580828998699971551011443657270872176452067169729233135871583714644713169642608064952509936855408544936260927902144236767206836727673306050331812334678028819721238569984583922017529671174771465608638167930005573444465264326237623575911617713809433341309754444870395927468686024992939665645628382781290373294709647132843160961825356684090274460407231521132140857055206441047719644508942235034419106691760107656010709915392427019677536606601580787067741662767018271825280524855780602979509198422303789214135916549612445188349162944988878523746199957099252311250298603989390285958555907877104832574229750108880923043612272528546824080764763352550716097857032827311475693915871204186950876697663836098175396901988284975132734506307277781549080566997346773860458013707781808365624103849449185667852364438533263037738021713248000307421430877784261679940105871773539898582337169936213286256010463150007329246766213459510737922335607092291744391738477548887133473145060873708173366290595396635822969439582676384840713748924755320036280066088721632298014558823112377149497599943681233397819311896447604390737767830637976031052607394194093339032181722501592034472264654708891840606133444923351408936762882936024253857621542557338019707058249994121451457176873138849755024290044791130941670699906150171639314592861782269416653269210990528193448076190747912014295683715288721897571491063524614474442236994787114293504775968948582459471815751829051409118631001331073510468928368156116211814052286605683861476551570215223469641973864069652687735092646720082574486666935401046307828850215653809931450574016512092693035401960105587818247531393403993871697385838691624767754926472499453814151617272871022780551825613011960447387010533737945622791686694251438278825533700109814545460641328124999495966351030649803380054845271571931794292322754230759317715664279756805388203656333696298876351354094798656248156086010940910817421876592043053935689475392162528784561496108897222420345106203645453034253421150713219645159250142564329647411641197552918807256549735225942306428767100041657118691946568155834623114318229588920401827414579277653529070663915843108767101961063108577772921396169262565233165717801448023211157561436317391557792225300377679644563845487921656881487309452443432788209951031438399837265262390970536605831306274832083182634735499931639807501046380176442399224758920351745460676441243458664379012163197226203952456443225829372860096441870945665625156481450331974764195327627545369406398981275063655804792012967407731612125907626210771955211869426911546438939553847614858104163863871324624848812479501731265303343344880977555318848751503142421857610764339686522754903801031877874188406975085379487139436229377225648466129508411473838390145377558180485516977196093436210264705279619732728053540206857783389464122211399179968465009511106049173530825144724023509151596532136816607691363487812398753869506373104474001651985312889279484140736610665669369000046793125244825297183174435670711776944661504016328692823722484771375694591334594842172482192872318141823170481534180353366739211638933386725186945467874021628621326230395025371164047299560875192319914717524610536299134178437206172862219668890676882934725771174077136536603148112189021379709099742214295466398705034283428264513864428669394444942089488453498911755320410474377369437419490824202574577980385480707286922509423987620530235068036035925702555650600576648331743284272181762296506457654306609419463006214774436784855577304028285731189454837192040853652661898601437091429261886815764606321431916874412079938641839089492636179956492452364574031150522887606734779944192129164682190307648001148027569175789533437033729015407527282801010618855434435355755373852171110655776772987213624950554383061542973750891404835706060598028689463497815978985043222423490461658742129385889677149832440296374940763196123273370988802272455926533293714742170686577584970786170544151959193458995918728307904199956022350424543358901062673268584951119015538964399462544404180262834328639482264849115156272660160610816492954649716739224508588459325175833301789599949628493484883384434087818662153799598570520057899444449773350858083114862410431657970472143894817449326265294353482607521495537043393124994348156385125149320408722926620801386345996751220429890310273832729481545060542914074852584099731651542239870452151683561534122804123072973364123078460687493888197567842587432267018135654721141504660815833026466216105162857363563223431051830909150142510117153182682645156648026999660852275693244216540128716969382834025878208615177790197876240706290386772723435743472363517157954872886082936507247475126030423150812376802374808895785667966417109145021264868717664352911561711068983418362522497931227291989966929243939382935145624892275417598216607254264616622384559377210523218262395926067535623493878144713525806479516100666592706225259858771294340715395632538998364802360912099598332220407670657210075290585429190799581692672215364584439593044820881808827982182388525510517771559326211812853739854652151741103847862095212598183171125405562754011294462211830864916026628995438355464537437126317775468082997521011287248721658150100786379818109334299968439725320264484680293302986199916992678212517358979596658436619654620133130165588942683893690275944041847753191108558464459596610878512905542460719204070768561589787926431303559146104581425996065664609356645994064822269146513803131938765693335216671139192231438757379336700985029791384659311165211946008417172619344109715485910169576070854146113612975257388939844159695096766346896486360951230801087370608126063255396348546291795269727532778005238160095244669086954707413462383878774794294990717764829981027512345529769359128657125755994382274310043743249471194446064729424436774561337988626568893926122161987136639940582327854050819487653216496888644382872526793463546036738093352861843041562515581291624174718447589672905721975440450595130726535335517521845832236373194110719421615896895040271641221639800525457206833486487435167801725398776896410614097101303992285271377686108029002812648391595316419448780705712100132312732039158422572955241464736064730214037281487568351822072445321831922675810404069822609379962165005607730564117071077972609865093999517283092642440606110786050905173017337925802920054445019295700726959513063035681630067795376886579428187632423227663557345923018601762119629724875425519038063372885773644567295665596246513955301463789910459185192384352381121001493137018546150759712268959413809280193066464676042538057851900787222127401477897480257384949771438647416406591552600235323510751478927594620404739104231250760361898976114739772141674135113891456257598293882796601158525616077918356213303602831206174786612219729829177736809300021471457317036638756193345545977495731426004393510964847900731485157902160258614416503892803344842558901393716112319813324702365894277557296409114807210614861452061737149605641724925803918503574138172777831370311711383081760948225558093824069923498397790444942001802199146307251384326463474480254315279076318157419818562498673942161581345616547717999771506135487989238829937159315073023089721730019372227004206300335076223088736445490924878234704859053274719192948498787260606136073846318327536026959631672175560284363064333326510083530067732412894670530658910225218896305161681189102729957923993743557626774605010103334003934502423023346019117536111882544257891820987780634180138288063798259301881983248399241831725596745353289497658017120914156678559938633266768908966184875806587758389557848907634832892496396821971209160839894176719870086765695631668034683905967931043007510345353978106726652802774726983941468044078581346876230949073262500381809289278365129157952366014183953927317340711289138836336641877510913310691067612805122421757679550850090744776327596491107658383157756462268195521481199965178121858881369167107307244043093686502729878347730764056942147170797886784976512257004449166496142126914319340535578524034374764843762268441772807568872382577493848891075665961588318407979935479963338975066117218520508406074672167818250935149685226041429079083551165864735288324094932460677417617149310458604722664554687554778385869197516006543479680126665237863267695706305409727654129620221914771990001832686723302047235975965077145797978543274698602649409687502498578879459530642571229842665334982398646703781024740652106138492180809162997335998579752870492467904049873630264062223429116061414115167130075175449643974621819876419992270375083485568289776427678451976351866126642887617401383209910502934280272832563018195079630428812409011463867857166205744830530216167414398784451636394147901210789029149704128248777082791746176279392632439584991181291808863016574773500671451188245036843258887901843748864153817160456508648733204605983564132767852421047269952792263709018099822897848407127175603033398517438876181031860625167225598554027865555063827440182692720871052835698968324772050899392787243713684358690008772189996214302314385120448968609398796957323111149177892188100706339843988171427798111067428475552194540631250533043328970759649457104989254197915857922385223605755619468596078958904739699513748690595778255006250256676642542428434989247339900720678557919474321548159422653801899230533192505615152721830871190398674612202977727035999382495851387485393943775750271460881233954026396711394482416759602857714802269208485240708837658279963184583672287021962340564536733680074862674251963739799959952795897944010658270113201669738378219174642934882268789424427705983627117459315848937200923714694984833883202742151551166174927304518939245616337846261004178619882077208759618752689978837847232687333464599538403835424680080277085663794865862139179486502589079854190922691786450326940163594625405099052041882976612992748295907395863062243253783515527553379194178931895569935264965581082502164453732560190464704594139570960770333152943182376514098527614125756750170797931472797083824896376753963166364563783177767413281767586610688664574913589662740279560301342433210198557779851878033288177090533646389745786670005661894667759332112373168733181606091965948193917238156550215967100871010156594419360436352444328402622763325380362458452105759800811269178474514753993016316154276472863389107594099600594005539592270636180054166184637528050396240960070660846590458768478300277384008797236644796177637941032925251543888424400778623147667294191013141848102997395212418991930552814892785417789048529655206359843907379607002818086364098998843103243779390775862847799526579849057838305699710582969714624622186177290113407920499522420312825782081849586391112499950820307172434051555168129252354858721496801268477594986681507667518756725190770160574942081496668188356523106559460760056462116589516707912478882690317341947172191993213207893800599009445624496213461085282010823337473952747578086058846547122050667928495186149158163010061691390505035471673139418480096925563960255038571937491719305766305436024690584521689685356991807923099742577951783279886106930636467016633338228382140487013992199717264198652928957931886287792251222511118726654632156993882253030867643160946518245042376006066355985344913695715689652979718507692157583666417475651897092140764857519684239867377998806694641196766265805487192720899350283041024938875006080278434006009670376784357117138101610439225631232989991784387065374826974300535519743900170774876983810917636532497082617928219477651262382941569016744383737542120530345579324187273881281800580060097724513571380789502130394625927608291768697017258222571857574982184473495467948668729127200855355275225164810733740973962202930143555533713358181350594364784109422015619325074104494164191710902726368751452084135596346635799476443338140913930761346165532043924498574733021540716577085781313870774151855660525423894351801201396217070767112299378365111271828780330736933366005871120084068645967527772896062369742761953583775592838717273357792535283832333448707635572557073413046198995623929177053079866547757397651106845098183521640477459027625295013893070888854198177241755678821496209253098073633179300754367346520583198645138343681406569394220576511418591867943544117031660100838119354927170506750851391577651990264819507355365508932223901172459463895897532461041602058337397032269935338244875956795870035943014399437423333512662060019721506244763838577908996584662443748832818951820059728696530343685495790190611038339380572384403295885870815061038926957897440331328096561836260853907590637305339361654705270335281600522457015702312532297061969639037824249063638167334819401727489662308278633071536706574820384083202110662324509020882613771919070728403997390821627772351720737052114209680236748984520786676458056654728227243091569725920960849236563682288271119640136224544487698470569174270501564997300589897744693915992112615478580102414951387470474941691940903732599405484108885350947240665851864708989916005677778349258889062968029804032709806777316672291953838910099027235035474040898491440560336169372606770578946308738609542574129736943865458197844778353854188213040371258657514548270915371577440994881408482515790937594808104368857335454382726440737777044620530326713540698997386599648265760716473846829763534341550234417408350907229524854977718792709612686748117578493747033873062287513485472186345766654340378150321420341759947174123671939648278393483966264845048965374600442484122453075305379219786278632503374229481240218795677310086791759121498516645749686332580013539376393039164492689669759717966021588988388774550024321346027767405299071343957186242798380662681255390895855464589093174719997214941618831621674041952210049611688082199646392689672506012455334436036766768467514002546044180619353512734154775182339459460876362750786892937147619690781464991722212276457202179927206238825502738573509282720454542982783430035186550166768403074847137880551570979567265938407509260639882658813337660344774197866332836553151169548535775591823586704567117886685866900241386547087342427556241769222466116399623725446978722882344258354638875663276466112342649212390086797029637245123424756493866096939821453512199704826402239472211107438886861185595894293346281297586076727016003852542785621553545187853268598797978608667410233289372393658507727693180426873043270554802397866261275300989862883691875615266779654855808246160753513586317107440512931315529096207949441124091866678093726097189671685071179444705541392639551036955201638166687831510015677304831782738259851708894835885775558065771506353013596398644057864002272728071946831422410853803857474499172255597756675723501544256777137396535409673461060669842383532128788551406468569701047755078785214498712392651246978234906550851826925640105722328470627495651525585881642972855366824743821703889053916120018300466555634922043929870410859497961534304635571891885222524956835188894393262652767763688490689629832657240188511230928489899989236412640073072386098920471008346429965148914239708481381865313624475395237144281580232782047792181535473754840259409515309803136286200290485283318261445825167248823413974920671058461615509578191646166716849961585678539687651167915106026419805533523043460188008045223497364950818391422820356867960305511119436406360708345302638639430843165862878579351695333753074414631649077649249089777580891337136299462050359496380080963586121452093624482284401480457796763694567706331309769731428776865871401036562176814958610569573221719345559466436588620062155574662178792318550945784366763548555183248618148478629621940202334951507022555297043596033732631354960320435184089914485489438201636496424721724477255708729348384282151640963085445859966650686290211028723424850924193693869961126752271819166606742612250409218255044081005144520888787828614518993948498928043681173508232498400514007097354014171426306225027303200024511366940867854284839082696745386674498377970778746667454811663299195505448365347879227822633013480046624497529394567706878416954236302286886205778575823615303647620259134414383585072327909883251852545403677931664226834844546096238697346347982569962049071051657296276021735217089633172498569177248938397907331631426125811858819037284848493403298136022084576011466860918472033186474988491634070514844207252764999266272637386196565357047328070815695267054754619566037123837371519109408915488455664600563468907894222642355480194748940136765463129870610693992359167471990075054384816654071465616752519336093206375994279593533606781710719609007485968077622023965540659835003828819250305590045509373522156981042302406381149700505633657189330218209531501322705559581720849053701543083560931703379851306622838459320074825525499899981567456235000771020650025583374637456974620752501392083310253264786636664440769121353197480787384440903803899669564356755844444446603669419442621861420759881885735675902327003059099805093444241794452598080247692179197443430342478024573819857621749656220102934861442995879635035224076412220661184020227317180878976016393452151612046095877333010425770048705048763797133651325828231504642260495180122408720157170116478618770587920137520919346409987465131661497000300860109230513375552983480147300549798905207332735890006639742312335099531355285733733701950284570489652745931628741009584825351229161892948383493963158515787853255616413934801595893333434783957367931848474918807462956156954831547980753610630945453362776388740651768084322431768916763303340703601266792854270475111236363679335167812794157305718655332829854450837072184338293595730784420997380798772580386403450251569547928186994469482998082884706146153974201086896746872951109605840946519306938076675725640370738085840587729619153767095071542096768771199050055149544484725597686364159871197349506432031617598773122684191123823522264649365758323291514066336434942686426975752501585556771566878040436703546064762615391265176963762319418341546532132097518502979941353864601015572684371298550158498903594024435247485024757868651964017341820733723986578948976846833556432605948848746107048718818069074471193865101727752655180506878746865924404887236566796208646109744468904596600593234793009020807633888211680152191379937646294941908070700782306329604093993798531611734396898697228341345909856007013399179644430370656592291540248701022470950504463596824761979804890818479379013229790940537121254714047887342469611646297008737493825499060940955479042206489462431705582602256431501199150061441686685059505138491819896655126170187377309607920497841328575266280133688726859615379271078754097698145974017514998946433377147116971218911899709009685313670615669587556350008405764043602220743822435955468552983454318639761178187066705973375659756204723878557688138367637373154693759066609346695945352910056103788582307990360592451993257278529746282846724957204260478422498538735497763173585451599619677118486232113156224653362306245277793467151067272282642225301577988218739930841517105230856948140941885733478465066822662213297651390416417424254601535029604450936206412518871157509853949197303739342141871038929292425923772214420891504866592758467209863053302940712294405787361006252874771324007264887848073559170678342678555968075309103512785152565927920648536820993892343584037918389476613501291509070596166877956229143772532303572787360751099964981701133063198830188772015591023141292513822151954331215654493932898230477373409528470225324457205192405431534971763931388460628017652997476964572220670644203629899172671316233198038559702762880335576411295218784623112495071190619145009600798705520540911150975996977465262338836067986968788852831905388193074770857872488066187374367540535834182191559356298701133606471315068816528769273217875098217492300386646617538233381811927365723792386919713801733659779051009864706299972622616854294394131249153970064858286259419838503561592509141406335759089535119353134010785773684029691583052584441182449267812263849188814064704132672004788499086639237998273594735965683143944219440449831860422742442498504878291028423737069183805463747907352734560763024109128310447069171426112886417479327632193748553591059093141868275252969895660879462060968334764067478329686946802572177705244838297671252442393869829749883657322710585301982147817375915015149549800362688175315833548349119948841226141402352198538293835336807125856670392413341734505637466508538485084514710860530528309474836338330804233379780316405370608675575285748058302202992989160829037889058696742679321275382060497218902031528820540061770083882484846059679031439294137382207551111710272851873028491378399316887345023430381519013033297197231317213642505814452348535831763774531418651707152256583563955438429060015526216838831508111328253030046273658088938048275257688864813488986873342030198328875306180975061338778386819480627493547137736913456896175147267195088549976566451054022135436702055935728819949699779254391449741604275894721634828610629617749712012145173422303855419965198867157148858658432852769486780474293990645886214742296285720790383532110440721304902831481547710183983990196856579040068796915905411541673711917216955095693892731391998862253832038392948378058510911304960506843513564285548744035673046576333221697794458977735190965002912540476400854389259778068869901850419485973797238338818321993360010376393291463509120274003074058955841375290201338489660824469041086409560709384187193783844787211743258132735182324545398784859774677617450540121054614649188499345038577965935195297170036477488561931282427514911145742913900162623060274999019849138949917714400620936778587975839404060725690376027785217776848244872878598138888868495848852248347106082926123909805922625540196829728032664820053899666524116145639500080186436684630478694706670188258029607372090689048073518703434321602437231799826846610843227884233872468786180922926114174473561888098402449784309062071852061378883158022002789859353358277934032688491778135933331368464855512792523021419983044991570078579228234258845666707152326871130261709021574124880573694351071637809288169834169449200692501353749690399907523968898226558639717965376835344900643063564051784082343827378579003315672683588066007189975364101458900081499679552060709786958929229502223384359283209398143472941732596882897461307829521859860404974874145052195293089461349249672552466113063780738397259892958502759919565017809494529376165642224862574482083383757232183580242606823643683680234628385102363763365835702185878569711619626348502825442869220664046030520791893797688753064795761187825924656618476749105885827223764469806365905907948459857119546460084209297576740377605660519064158916764957454553465022973047596106716106741417707663647985724813570051287781952617253294515404909287030876804638671000225072808232443005400463752280298817565427215360349037020380737464118316997096737240898603350472641913057852800602807412832199684203704353296182190010936816847272061902401807901255667554287206122686677521424689277172229049867417237725566131058146344796441804926083147414151100548449736201426544334582819188178354746242692362949810536126294954091448559633663648135772590809977570629476742571796947196392182780338338249037080094463463959379327590432968703876148874216987915081104956805133028679332454072921224695852150543504118559383932375578341335429950475546452544800629338192586835349794987062461547728272742928691075558771182792975311017672839179420496432617239891779348348473278881309371943674287491053327377033744843162153824272061891773092798308384640053886165881801687543318982940901321666314435106709101922035903319979022270315126050052717577185158665705854624431374136753458461911339104080295036579042508581288976606069417919763472983900584805636933878281369354730683494015259147881779951018679939112809065100579615029291325149426032005135782648408063577737883092629817759990858960207209275021704900574153356745924920126632798344131940468005446331637471355817353372677712057372718726349988181916700449811023325866643891197690307722203695095894370098137493323753079621680695621068675856985179503577116205332593916630578440364935553008218151667841001845890591891500916011718908003609153624910425199887510483353888156312509225709228124015681611183824314821478190487984591982266966511694715704591350898896053646704027974263026244176514267629129103033907124057133484145750170108023625073392436792947127732462436110042962635929024900494132533560310637563078670682183184361384627141868425168904571017289881006851390137928681434791231288759204487901843698086196739444012770434626676870990835361587115723151193731837947711994168560658699058372119592511555545713999711772778737310679594496959678623968109321437512339287365623400849050142846853310620385104739746874834127402421021622422797405182190188465868145087512823315662715716397906552975582564616629750892718922222383672603805701689697152750220665832718931914549690747489385547567885752480761407672420653773731268718453239857352890003569625618757785666096041601083019339994830858782219830775209721328208859284788285101423593754013619872579884443795304035575803419369828812098198955484856945284252012851905542805488970121959286490975916661008622101340893223028996213043582052701678858408294961993591876817837213375438968702655708939392127098060175227912058892685448555783967623993945034185817037204660247425890741416412296364453852577768829014514547060578424623564566560133497621541105476264979830603376904260447402184460515396910081941605750456618528665415046633383329476223623527302987018081034801751786877043918431952044349763085600696744196829193891951971874131480477042909604349232572487850784336555990715709618952502884846534818933155113277044973269337462201750104659801197142689937658074282657267846679237248641350349540067756498186149413691794313232412569989506215795923577509091226967323596959235912165747797557511229295311425808436271353932274778172416096849117829553448875646156867269071326107789156957778021370369504911186870300211793932396389576509104808717463311223638807623186478136224308541415672140662037453319197281451208817004783489308282980593713249094969745003943588798174329417679449255428682494371055867806130795618272472568692407850040085254246137427163300900331662077072463896310700551446774085277459119119863424477172963413367639882909519880023096052654036305940793539901645430803794932534769798307010831137015563653938943036414173902690859952867070399525845147107606977965056603945285686083931515091000684736036785192862164899530957544762191337971601613334516431395881212220744383737704701139788053010531133799945711143376085307142456916818862973066742645669471971051804169769248812309329749575082893655203925314232137931362701954439792740151137707798031731978336052966223260315744295291220389320018547548812425084971595663412643583027671033359845085484144177329573911530578892371942925013202525733158156975939016903744028053708702273578839427269980110415034276140007217796755264305947836148905185822377021674046404272155888573260482826661800047965229817792530972304095330025134703296677279071922739666991206682684845469550676329510450099617403781066611388367772768709086731121465999123207946024051907183351810351127244452793649627175060821654104034729899789514096311699142836014132502726857158238461440079736170809387862130808657448320174846397523052471297297507474884163040066426505299849036612640742513587400044181728100240311041362615322283490192134047478728874627308334460142994590176233351182681979879097377801044606517312329035965850765363036968888240614572575363351491200340794726636207026751088047376955965602653373407717470957686024935917975889697227779565003327284088681464266703120184833422250095229830209245452111527803801228586058696577555623582249750213497434344077352265081264992278291058078072740128869680833970672670212612758579249351618106390376737873020155612515146867705694704690397191460319769359451492378891332574197725239044684363418605130719025584197628161071330796404644951001452670433101580079787304954353245069363535397097841102711185880529952284207838840728513528739335849196697304842614681970231467428267721746495684986410438141014795448190381340133837705435770293197343857437916996905440882819374088502017071023122770442674916892983308346437002612571009465689622175603001627525134885769932705791474685667953134155595739730533831385686832665192781163346253739335191775556115929418682856651709650982048043631571497435266000033445536130478096499054965883112111005573435650253345929264299460378099163605535059385288086265642090263768619107146777008229841102215651355891536901796903330914465872044601545157427453524977685961246281996247473243500733200905904951770977363660345137684720845969639700211226598572245931231350183328524966858768259578006505017167425502833242516198853868508760786881451255834376669380444775915651770818622093220521315961954541625439494020816910035447525463178953012543050235024149901187836972761382842137376779007356918591307528170861196585792982321374151775369275635097400423711580189213588258420509474512863731256924585804841654654860608934590627685374274062355962216410969944436519173410035602727757843788428721385740861889907581806386139494101496332319189716573267753242176095124165265912433010602144281579566415481694364784609744726845802825109393475113371689750516045418389523597626362536837202202887175693966596117229923273682678958793413859998300292166775688491910172282775185027869005609070380121265325520055368902785793364630439878268785929052401994056554920117347936038918472511639808083711719290582254918780623019042898986605528454500931057510891828402680045904798512186044617057816751651641159919638957583696266831377676729984453741206520145504043339540829704699507766039989632325194121774641257583003343890430421512596482140981278858709520160262567071262711888919469728051509287180248601842007981120720963103953269874200558084238527934768034639160591907547540760720613317812691057572037912674874129471265559792414978021735217115305772713584615440540825828683003706919228584930019581299014500099490924840132968932384446240015382461200197284360831899480855113444256212625451604346942893263857467929176446282381866697625379709100466296036707632247808374645385505137714521406599027625151096308897893638116901676867280212851072535994856911267327017858549132282884963821905705329369903953123062865818072157028295066205156043244789730457554484587523373584875626842346746111288301700279951028357540316070631533000574467383509694508751764870327876192308260448062842464511602916710376488129896420725709183911990419980538001203882289631833357575649176487300201536801161078747033298975246710050431158495877887542929156960145223127551259850364594382223993702656435990083200966476589267152218893398952007229047700678124659408305671094994662883799612999732737802013294228764433198090087149295327923255578721907446521499373697678003162186038871970776032208995360559382858937702440978588729855259834245426215300185745832334099685730667244372632734253520746895443417274599453301668322348716243347865622712357115661115141648692928139697709595940208499914169969822401554117287767572448818797411793910567594290498812497089468141167803707905892368240942564298874998865541821901869994945209861401631193209104436087433528293494748235201205190664935878516416009091776713802506025995709049458613630793145756308703122620296923024516057765756930485646220732207164943041646504739941510026257613622334484068665527986704630497070334695393137988314210222962491529219017917431720221815197257150041116141957262212864605910788313578643004035394460789325502739697925822030169178163089246225552620143705672415798863742295394111816408100787372991397415301844511634218908417686532009490398851065533639852109918005145255225239870514679553851065967356880366474252955206725281640290054253639453968538374739214935065968445724760423272372539854631796110356666702487649642319502249126517446323208873996865648442227180374527057176522051477707715547688409894971107360158654370837745659804918059150343695848058042100520880032427945962615604428727767640409241167933517636103504049232545907654115859422664223033426067536921981846386093714800793609553013072477270769568494359926583239236045931953842952025238037857375470686337083157470099312385369173415632625886073801399606869564782263166187830198514697907758146484994391530496837699369819193850048161413189479161873402508528199825559668899909568543756734577962393373799700440237482306462940864313363838734260250902202653918680528878916734049877540243810097862284620624299340043564960814895483645008215948884519365342079022916911608296533350833086651452447004520294267254003019587882330588502512634375781735706341607422048285373488750234357364891109221984179382778500625982266560946500894433240853542875974399547287651773311671897017855681555309560429367444346076917961090825734968581145972915256487535199171690602605170064625720308855943616790753788747391184356215194621112384783634483042730236445134988547846582520452102679898112450076328066424974390085076877185040128555511528005545536364052987141281817246272393652480795551861096660595169078794386470756735543550657710762947796128523843442871775653077724746134531409941755257974710146147824319699967660209847555466187690559690931621198736514831585891791161791238410644027020306383841182719846000559932661829335561232475329264921966211187076428729417108483068001389567981670172219728334637887105234591667731726874993617393518844036383169351189406579752445184173049963246545253540663667284293779639932259532537210183858855681956932029808911553886691277439905838533600018405764099674490372022165136612677983652536433376764388605313147462848973253644791334835623392068352399826044395961396205071359011397509411332923969696665819407143503616745189331999795792462404723150888346295381217873433630907124909779741859036285476818998396896171261800073968046430379510333898346172119904581151136430050319341456157626689110666599365663506709002440675514301823699265836179723454000600722342621720076318629783191268502772837480553557082461185652936362087300701454651591659942657151998920529930855131299648096703810161543300622796329015098063863190889475635438609413765430781847654348941318592000397430043386334501220961321740413732879225334351298676817080092513060063172751569466872496155075192601998621791521684356552525892547698262680140964592433622133474980303948130966946653633600014000823779255413889667914978531556688797342869995683028600753933678714409166549209166241933301317287249642789756518378894840521130823395657354978391165616097295505383610094933668669903453010774840464113677016117684887707776882988962080090426875122325390367990359195355250569122987857831723479149620944001439252376476404238217388871206515853062970287240065369454218023167078715607180590088415602251518414606619457899426470095770722218393097102818460990050068165951013179133449649023817525534926947923212613957269933056027672804043885103403227936620827123976577616772463936422697983715676331030516519640556398538478422585960189144475041704150814765593001145051353735564661868811242994226868498437780878636118612521594869966266992244020586153512353563196192918267964318205357204432464073265159475344638100427266167926117696437089081780160095118955056698632590036706586630070398492075897166659663679976574620182518908040989799339512902066806675658041279914371391006387730361300316762620033867195485561587627975402278531610553895870049130200767046850156751947550637813144389058988619290876353985965158712407575100113985112099515972057508201584634059557885377644471651632044633819800642010133265982990254509221950775847148476898775589758613311759745334686335441184674738510705622948564338365302021665476643391204650176500037892284748803012456765526049203053516788665165707339739298109785792981242228490871144188800848061572004541260698704611407139441108050648459474338452196738098775341633566410814391416492457989023605837920533251844349043344611277903119984122883529807162690420333108353020836179187532996529777397798580972533731278864088039661060314511307749352399101144723102156877302661006473733234125301382538878150290424176223795650364376580598593440536224123861962898786527969417589371289524407983955816737646313738002038949331738791299703208119948015180981543572056015892153939157294433398573164092399425331534307838174134707814428496796169996355950862467426130787063864467849780164211098189479129942605529900211192052777976913125292550646954825041846452785129119369146557604238971639494578273382410001881394212390375274636985328692312960357852174298557370318188015083701985269653695980604208118498094323025122203991117847447351004502524870769135354852801131240119790675670400636575128350806528988694803705379883808416786628727981499314930586293833436726213741079992869346855819987730545753859666153581293501848148970065414166574080227369924999287439288357602335634365263311083476310307210825838025519926234373020594425931725619611945419518524963103910540412041598491949878175300411699817325580119218247556731350483478964524306233238055910448297645626409412960240966993476213530987773110480725004416956985586883272132578020810714709861684678549092300442915663937086795454509213856074234026272962617695354456641411431250403392733080208567219052865733225517046230882374219793854820440469497296271585494538809187760928033807710487945515001512079149561040821883151638991804651204107766715206986098362181510389660788814849293175710488467515426161022930307158815147515005302227598358660471946454247220461920638231495773832623116774576630243979864880650564312786558216148405885698740208301320517849073421335594881913328366108955322829915522894737698299474378256495597768964076469423278784933734647689731871533742625271568930154833701899563004159190051653923613109112998660261731041751000423471435830395723790232145881438896438019011087609256371976635311435750869370079172167497724508949551177831962890740240351439511953503378395977446570944434271250627476191802467215572166474455162213814134505576537044837864321049575125408933518891974247859147469247852568579728290245863289943541125799602567370234529630916786775957393495629111640942472964609749602456694912261757089483713790809685394650547135206586677300501116770371038545516771833644155899661340868162448020110847861405390911498103099335714529289201966834054217623580535781621099977218995885785619913584178672841998460128122858918494080768855564064297050515512285696443066648417528278840148754626689319350133595875418514277236737982929505639863649670930629452177049973435699902787965228565482317500133987938277912091182171793052237120822095593888746340523521860433335075907984027247066097930381931621283946225848581434041962050128862475177392101000713168459518180419542223019128170735280732451856427279429169399642490615107047510141656711274298002286101097110236148695941932667787517757128535025888147877216435065367146398005514653152424031908011238979049836299447943495629764915221066595514305638097481878918243384786059727745152074672382388597712230543886329771280833897695364902388121855842894497487389875001572849369593526063462577030667291783350625206836770433784741393077886858684685278792137141736149809455399023080245570165183175187353432855742321437764880667545662209512124274128365926588578182256728268505786302476385893178694668978288758151177478736883401777804426274120755307921428474121923934948411096321712407816458965409410967285241284064030052000863141356546777536088613819549047618549761405674419093753849094682928921423125929623306581743399608637441274019037701439105742435961221804621156826012768619654759053667238504851865748940241169746597750517669801810738903589837812784794318952299803540852563609775970408252013233816179633828524038785801574345785997877856026516489510462662701525121703282230937860738513112183935952745635990776652948000287192527711253703649497593761731970269982053443155180255691812278180004213427180647115240657957563046311332387307871443460159789188693258412725712912597559868114361203907298341155656863099162659790932655836568931671263487708754871632073774182045510127537877720414660614921108221148625376368057627688366489302356874283336203644822586666504243192164544409703533419270450156433846377001632711367194291169639797855365259140161418895260247473353152173565693722683230074830960272271627585315907848766090597806223853334537922565617322815991133012063137344457774939832557379420780481119494578913913684873629548238227876790142800255373327923111642413868174755362215677441645149706430865514491251998858708515098932652296610261302088002982500017661615209089725884436134556553460342001700353841997501444948715595554388031174729084088697060321705170508345214711907399440418407285468376510411378540989347774897486047909788134382743328410914883220144962290881672738427105391453037869550343273061981457691616334522211416566315227441331367144432800070953037036617761756724170867288858587562543046193703391323183370722195167366513448565927463971843713019949434739817397686697231327203851037218069208391262821895739304063374382519026076911063461985756550395870571918775029255618849388859066796570061708634720832522225187749186452283861441560399031485294968294954691697445569549265392634118441503283460721743066996690729532283994884271299884266129670793563895314781455886000409009545760106992223524455707487801005135394946944935599621226158746522432799983262541846675309212900476015965676063779482144262292486237395386241553087086999971507479431524110723555839822466492133279280281883437660109301814012379573276585124404133072667370912216702002736141066008056394801263114730044485452875610167463554922641827292290972085413051083022385784493155708703632108778696262147713579567169990000238194212959497576816486428391827276910728062849524464264443197990781985372085174727842882551432249146459214278006620718010753658461356071779342393987975338113333083478703570541277477515987204997761549766176322980371713475330598444786998484982899570283484377159472840288080800910146389001265936190728085550563259944714946528539945361428890610546481690378897079546607287521117659936360479993963125780520026501125176339910639398462609960640658012941233523563618948686672201945911102367256957354644697930563587793922232890727877134778407635609813604025399505363936134677565050834801989944276221349401402943805092251849323015862536008680485936276911912034457496844016678200335926539014622557956194723397987150602019925650326839981955443692556358811437498813785198079508055792564414788400640486127938576264805181134030112971819686196739153552067003269510324346686848404985292370433853712310397704722066231686887223125134614622425369481091701128271646948197973521353257419497874744894855065544914140736603631199159469633509589819558611575045297275617092797567754182023032690139998270271542441768603335448596388121640612984095226509356286007333114590583640448847311364371887713584753820097945463822903501016736509770279942696036033718284688873905416374975718747440865026886389985865305314468691982070805742319911172377370904359789912609874314637553005406620779953997800447547767919917728889441129414550516586281645383511246499249937808466825623454910207851545402314937703754606538333139045901025421357629842663522532266870365931276060737754321503005366220686229524469088553597079059538912973832164202226769133292080862180821675423321163372375860549051838225256218606682838315057521378645009971890749337003896356823953623791324809215242714923706661333238375563726960668289943643162941932818169950711254047259490534052536016056003322553698414438780276195626423956850586136790714040091297838362138746029883145300734156090756914903593133151374163605315172409322101938461328594453414917454570850918154066966999668116746248951243957886136436114356489263280237751084592642085189081184264692049898769104755209201257672317167904409428295956697391993242743696687206710002897305392308534146841067634143088418467674208892210428775558293435291198231631042548829955739411730784305723397648270320502695479054795479046458693163930902086253694806407213851847636196686074335915968036996590753202465722826546728539550637939800391786916463812123760259514014697272522926022298183849064323116197808214624013134619222158872256734846314725700470061991906352665772294620597340953928088653457488980715932162741880368792062859966576126084559179010769811493870972044580700776784326155670612108678134648096714410326515371754782829879900530935898655043469166587436266744466608971628316409652577043111667388579658306913235058419029183849909565509570256877625563688136163724055802763268032154558420278431481076046689808433096552021822853816074290726037543786101721461901370998060984129689315364873259742888452115478857058286347360947399341248445100496987714442841241480672087418774987733920965375267072704888394650569833778855116340247376671699750462876065505049991323517742246645712488612060751339983773223444004514922984734827768735384615827344261974961435490509452364310241695831112945754427448677469360764565537933255313235424470839736301821613303152832049298029036728603360838850857567882368534212833518259103224661453833749895856741042645130728958063180822731569494406070105405208396563398568289391674521328155093158719833505147822893385064030659403155682966223822778092164323936607485873290031642034600059713349373131371866437833974104752979284525342930400792071935844563863267401515472318617141032867667229049838299225989322024982976307649794044159422024125030230957176199716055484638995643699616368684020677252468519447710734463539303098043470952431122879035486146427879433874011577145944837755848196317115813491032321805525094451970249526067499732619881069843674185736766570728455944080160519098887898248187447248587279072706971770582439095587965669259091520983421976615380314972147294637632935738316871107167320855807724839209969860452805118102954775756396539707323912801197561011840487072329357925137417108668386699745115954973848124044245871603959726114162144264641950808575163125396933806974406093873895949369211381359922734485218060634444010986194306699645254431973512615395774838529960588692061895108590138789958702032139927104743252094325811263267141492802607478540354552395554878418097623008798349218150398855989697498868512997261556646245536715643970188998246403518075497229938705791336072692549672678027463421639074972887357148731839862261393611268270802986572614997261284744411757203902355667294092638621880296712641731929687860550424407679925320883145709386961229683496958093710210721298970145259926524818068529656090271334063197718172301594177887969780186523796161086705018872530777758163924549461801060927828231749772006519271636927746302353378675968446500151622070663975069454602905426173073566109565729433704219623272923872706574116030390505632661439159936217086202037749266512899581945577371050713608064221777829485137280789035958295931417011342959931647973587036972686165637871424802195346627761313497295823278878910923114423016398133975166939683786094300402537935383037765554529318936322388385780638594412702287456899092585708065614032661212876755694923075913149088955090311244180177965420808951086160209226834142074917404694174553809485868499991621920853444847508824818353084543475915894181180754601157985005596940970594994562597420120336815626489256192773012604621275078795000401094031892953308232794935983394520528632414254911083285430099432894622317529483094203072447840008554388927201166931351389712825421653022509739742276469984573016989162727895851018636697111031170725606758827021252182962494367367209599417420146682208051713242230592117493931810136480879768845247673816937871849915704717922058596722159900970531164624808591393974663178816025363618954413012068867103792333046085938607015841212639571102832979521746901871994603679136405534526962964022758391372622405383802443862869492280399947535683448174302261885919010241371721051540516847563026515908473645016221883812119245088918027916371499518370325302033348613733043877292630858133163412380898530142719610372131544330925775134612867863812956882371961178548517218989511327968163722585649910165568127903131297357054245100936130765352861518516468171618214729982181058660002993639939041243260034053442693164569795681631956548935497987570922025432558766295844695554166762452324448899266135834251943967483509190273530975595873380320921667902807771507385790153112799636624696921604626948990835409542179687649673883398021414262920166140272011698152004317550272043262842676683462837213977190129215056817981372175053602349461004967151377399215846182885563221503361481521165005540184696552651184919837453406780783563968983573942789908656659072537980517286434906480905967909465234406266491810145049007740698177574852913375746168187690532729648684410763612464022719527571266396244576166923689669892762366869064663332518730225037121928436097087465264285527417960001044876585289556747206228449832680567748817857794809155150622259165281930905472522522525813172020433500509252254905638844918218289561373901199715300676784172444880634387376791584955409771691063174211480262354282267595422542871940493585780279157708381844327762682385078305184794208306717922186943584532956073523208643418342544293996323596320948063144245849838574912507477843400304207522313218187224640590247776561723849040515646469576029880788856278517977749508247224808070314082252835646481173999155748843603600292291846593472918546258589572219356328185195397361447833348543578202331780208859808289296457763075104138289392578467893842842735700183089705797728917452094119040676237484343734321629993051085434257478967413947062697857255198684286072164846451548120582857203792014510560196404995237409582553914987646127702649308723792426031258227406265807145234512742873300779870786402890645497586778601000652728950623862801838403873302067593408765187728045039358727148195360802312046300327892968035614191238040788819010154469736568442000838444988125214028840009218714429025634803883304415623588616256013160252527245305455659995957293713753721114257026392434355615006587952916610977900509190119749649615078872858229894353683437482368994571008165938668467737770527621794538736770213893939317044569731933816324315166518479469376016383139701194663513719100866996728654159525814949095708338997038589730505072758815063049977848985552271584440175797795035845764040811935144544203483077817010117902234528588104354828807346243700617235329865431179543499237770816967415735560412255891264579412325462904449811852635754277984247985783155676002896580999092489957754758423042646696714490176821256774236688724638992287703846389689120160309015168033702690364885156133862289306641072915322801474357780436357004785981417836943586317938249201527925594940980463432404421876426212340586998118420486356788330321637191103863171810495995975599354368549684078794388002169912330279158177554965784738179109377530214500157558862254395147852260078583558146917233213366767144640824306350206366577798259323168273164855388039964908863842011130281334311732713657874196486287532340066346658408382631110161251078492583711112211028554873570385970278132122057696247981858050011548305289418231370913416740437505771662018667985936831913828169997947360975530721650603905201269347907196873015685581695750619086160103371174907882020489568280800418941094360565741221725785175692608933769746909012778268319166945466327408660031604736627467724034068441011597017825137376660925826476561810068797435249365597000376705985048351834590493664482594052630195736642985331261646164661840729203091413226719146194827904968907824937642440576436530547838891300498421895937809389901486624659489816099174268472264739803778239102108288384506910892508143459668502547614099153147492317267091325819938086857041478262131084254022942145971379815534863283356021921016968515724477184235049832809194573311785008709394539228867335846704948472106526042010788152043679132724694407997298923615991240542678419590951486798302035755001126413546503720924974171106063741378047153668528761411796744389802092997770300293383073617974065584663340863250610842232753956593696568683527370093488624404672445214584915253760696486907253351383730648362670923750174984351138716520113547132908438516089763625238063134575756942173439365187684096558270873533112298882862869728872572353116588604304071765541723553364169377189176062552984010588980587229188185221896547136508121919758150017809805180646805625976045536232234160135797476334477331489937624793092598746306238280143292376291017510884397146731330955229387272348530938869532711799913782561702842034470405358737396245985722512055262674656793017616138575082252340436727237240112409740307948459334040605684460735642597151595523701846951628288258101638439743936005642514741295957849605864176773044063524585872291788446535062954319073167873064681346941571666194396656002025166415357027541408735673154299223100804835611150677753607467697149191686394369150130589899737831858918876463966902463618628310081350119279727151221316564589360369369822259831287129958644716714343207731664812553234096398616439493389256782654698777542951321136658476123789493585396068700118745529026722422663179251992302059915279155403940486251328074105684602809648487828552625190234464668845609771987315949074360335118362251522386555421286007389531511785648522557616570024444637974417694376771977227646959885112437873110802039302543660418104441247281135116182888854227094648072751018523684253342353047633583953269846937250116437570108708796967690878982691093663998332387757088411801333536578819827028952554100926115177301072538945149915984425896271096931546377194089644568011614284680930306094516359993581004883037556980277337301259152225811350406357221141540119808998588262493436338647731688296192392570998490789605084129443743511630905388624181913157835593490498607005251087286819772872903247354936048628703976772038850486377201458605225740179957021349980051193137565099975385983301503937293366365177675658188681409153548609142799061203074895059538956193086140536254749151525895666264508564150310259244764697849997773577210905536640846764804789986149860514037121777394010296884693406496795739977868332601899794568963170512931423665290147906319506704555057050486170853667785848291900272055555469054232735849690796696896419486602001258221578440681640695828611330342055696287726937374282019651092558899800468388454457183117596461161987586747748664532947682888614841079816984723381024154412499883376514488322605191370114257242526247013045165017922695856166080934570217008299814341294331894844705443564310707707235801403780309082594117642749247524299952455955182033794140169102352582244853384111004121689174892507591886707039472698184383789789033037232289273319351669558374813208657475057133612356462696918278976904241708601249394448659433330685989428882890190936431812685500399832163615490640840123103629912468490407320272229175042592370119669021147145204288180687787439583188907885465151921240247618349899957398969631310961453927719942550993080236282146081815642546215868237806108871992899190879014458442441265517276319838603539483156216648639447100378751302752006113875370505871780685673021161376064820575417747484513401667879155470080461884460535140132508600973038230201345597394965759582006286826106110668390604781841550814418824713936682448570380817217326738672086374782606704143982816948113700463873679372394509818869972947180398779813864807485306098305953936583337189564449602596066517285985916087002529667986267175583374746872987790990933793925854691860194630806840345798447461624154323799248761015347495776113736373898575932048830652500316545425136442818084632492407034140061802554025953109296675449733698775226797694083704543034982670158146160167520479218003287540437939978151378805193011917469647336599360413965834396947198084162381529799138270194462399561609064373611909067388653576254040874308997597161669517684545525521051202451430976063453460230292402410070406310185508692240875329407201344694839118419629787151643037252766255585788941389666755174189048604380986545762121625207459969559680372998124801095314226916700718063126986579651952674923941227956038326784857105430659098244962178648342893568200275494034031114272116114655225175987951616328091439854650550837096020374994541795169763625181280979997017610261536314980533386141581719250900083447955565732585807062112085624701774109053716968079675221624042517012236384881735109587721492197676587289152714269053730329126277320969686523482482624306035650421488620253440349306432863621992598857256971352151629775723259260286148411592648075648319008893398805338903745750015727681809384654016315099326374941645661270254739961916785936257021598116068389844535487965437456756826159408205721356415672236844530635635173710134677833572825431229078674489269524163669888658515319935004897160852338139906100951261698346645370236957377450390168273170461737727531215622258776618565384111072123173874450613270695378782332616291193978409979903871397385783475114681225506288915082745697407874322791077056629715319744351668954021618472768068235195927612177623315500688606620214088896206292222345651835749185148699446601985119338581486512579365487094493259120390188811196620242949210288873621406703409805678804729089271586215429470055037359545542067044269197453612878262898224258748744196493107844347791548930344696452672191559927485572448191178060742836801870812382031579954346847800513911058913713763874003841233649479463391953573006387375261814301397672868502361306054935660852598697426318799995856515611102003408622939864365357009241892226216692112655687164966415547823802491188616737437073544659306698460835828900420816396445471586788906127212535471943151291677366550836906185015374515907671445192355877898228704869360497861671120326331740805608692545992488080211911006076040025588975392123037078248449480242798908806034039879998880065811843721783828741623588273713842269247607011938261031983007862497951724827857427608138365049042237727701500443809029884149138698276822789156586681116919936763641377162331858642805151824115132163016284634026064130335437986388699482883867992284268563057883111165255118454432106628974155794663383501421286119527925130413821118223060135153633939180948743278694713087069320804360475989191394342417107232415043599800282077946157772126263249232819234316812551449575331973924031849026877329603817829921201704806763581194730262006190068677029264410864851218615788692273129245844429926340115646428823298983262765796570232233583479042621817197858182233360518363370650157262908556281399021901277215926762405394481571235567493355546562806473298082597974989386488042438903190441563456914481508874169587562567034235467015515517339097903658217384526321178453045684941282048993818612229482057001095505950588118770124674865034649266837088968143125718402361154061426811566262976460733616746656783110173833242436411580771586062865666496555395534069992847375971879455436635533778808028754536913518129322197726919297527365000293609792673179444095987213700947716479187242673169221444822613422847218793389478888552412462972797429520838441121810034167346228850943291777621965130029289995165280921076374460093812020297411384096434127648923886088422571891130249833616928159578805793294681976123857350438402839097625013052416535764640710250563140943859664816702478045518438928777490162282574213274698464393073263444294738093113062967205267127194442408319530963000769040849635648729894353285901260256998808900399514582744485199006331716810388568196900118470188711294373109670264106132364234051458503702678987789255325134189445546601999628070155279465446280449272366417370097401366781097538888318528986908052432772878166100567256679818114961691922719914250978218495130236153392640134944686182113067722867394195737985401500526711118151626298388979614904424227183142142030821030927448897087833492283399674051973700468730920569843800260410885056365506447301794984472707586531704294516970638726124077223414453898137430264639592695220720245332318902668759382416205780174060998370211145397371393967162365705226640733022973486593833819474940256169658676226811535754665752906252605141480782506321317760169788287672696591297776897587461374759010565121932018409606742133302332291795318516719418015591625783641035029325516244974353562348756223998806741302484441221860789657894497750530946440268734740227807859646031196847434591792468211027171455102015099338848157765310217915579750595881438509360701882640595994457704570254881989144816979502087144038091253547072902656756416371028667325175847785440833655870827191255700296293476529246545868030326904590441574833832326607516521047664854105331470462116082337989414301831042089981302188235602182329722893671955464132478353358871807110847694326073778763628303728410553728713373014222760127604800275952175341334628195215782678599425337218548802512198843858072653827562046722443663529573349455222415073974565089573098851706417125220395388025394177731253922842592011718119106641540760846474414048973876159344166217716014884989151116964936239447698860431183801920511062605001585648627537855652073762452324694539362884264775033797291166644008225128664181718542923087649820274260078390256906798316595583173222280081683770513126170879008713834658903263958811842462999816925923832093337952833933155554117595724687279831709616949349852101626171479161462813270475413452982279127016967846955375577792257468511621179014884399123499507518991426589829593493151385848318028167315203658668085416732749224160336958417090971274131973238663956451215117992761613118553286944624536472832785265079172794401298569934723190800893655460051095514251813321627821250761676691236180627125428280845090790370033623015925130935788637492410001890657967159047145146192336175253318347143322983339433783842513362443889786872197985416503143193014104702196532246309189156191042585972240248380615387887775476652627413979433680096888637671798283771947280539003546287128128809061626156062809801529863044629696348741003851048772110621695565604387281853655520129947248555463096521517109331289176997950000065614301524355384265786082560724840484551315297273831599366632021944112682638872726942113314529568178105822354401181586822426340326940043919329205654297744552439288980896960757171895235409476685686780277351936213658642577507802205580896509289438621400404583392220391819038580042482461824546663174675833509281988458418134294934426255750651322644870968985076503966045367653882126583374272215919143895948009319816092745366024801503989174431944686044765366135530337306099352355882355270248079470168307591001171580142465801162682800828901243192427918424257649277455583258431155918785271714470753849409085341649295263864301704768220394383272221493270367353730621279278783057902407385005026063883355822973236863733031562625690895627546537473729736209620732948927308037815670231880644484462434911527732984757297379761613090645366264202841373526810813825345143871691013023780160362064264607648136600465967643082433163857920119553379792116427713151103613621123044338097358195687569677375643503429945717727804293600727938562408473082287233276531124629686628996390568240815978565134297084910952481656050835979305452267916513503164963853267576652010321070912730997372748233613361565811064651867761306129462592702082194231498997048563499145501357747407197141594006969130415267036000101749445522547559454414695648106224800228495510287326839669913974618788911916780783794315447011102944707424349399768097006459090513685446454706876235226163755327781962653886925049714786876414852315901283302333419376523521824023504389182663490809652155998327498532686377962998684498054688494178408038384989314710597142794506235394433271328865949338551194080246278447538235157489106336419366181993004453140421456382783184003457272788481307599643701820967229288099859228173792086709819448636364397668932526141887313025142312822912359814612976310276402637080451885547338761447850093246178526761428472629679886794835570760350461089742764640074238356826361111608996383884901374528228187440707462223105815042908333393558505317524706384263746177742200077288480416911560356258203993199524571813013398546316690395397944394833335813640561040678692069882498133765311281059782950848830149429412954612028932807736970219705405391751386571017973468331105251227752173590849288480781588486989288740154900437385475609424756043856237567913406227992279232722417301212974811291927850478859688356186075898830014997616355052516831412382370125983260781170047775547054054293856620755045314784116976624362324484522126778140161939595255458882711908459730606565110835911286551475407187584412535344101936781385799802379892153183109794644077354397765624707592070789250380537235492615509429608157015441627496730793555593267845772309691228393702752920554676324813893803145224660355074549999947617999922633774566600116512637351150716636668610737920327036207002941119354428354679925985929869759767266262378052680033230123696669509445299680720292960439595418279914473392063843852203331801761248304203839739816323099316865936200322656992479219001840171890034336289966534148007684764602065319027626472296167478305167706813601640942110420601328004718487499627618991309275178544527661676248758203187513766124987478653626378045250828060363223298274077579478814473117216192592944533217450256922653729982681558334737191299592336592219927944685799515306517328300782080593369380083948226753775568067822932475848613230630727330239512595169513858186753480932385854334356874583894359214803141506906931474551213185178980153366320815681679615562978426068888166498678087514527778818431754750134516011595090923035869282067886629151155226350123861924014310578029863409977138173282819286725334993380479868746748743199132169295128936383395638223966252909163760569845728296315539309094217915246667232088030873972927731943649765826668186423589067774265845907767887871177704346002255956585619559505670153673974450157966381969189006253924502870613856330807593121646741827487288221581121031354817330180630744416046114870782087722873468076467893683479335775935569544072070971487130661894513664331665061486948902953624669070019699540772237888957544569650654550239457367889409209328491932865257278787810691851561975238857717579009636758159393872923522015604313724619193919985995022598043022069846617513544298985265445766405676563543197745815877519533594880789449613191896798882314771878740299177195300918085405275712328304381594483105872593656269988317003040274174368123703850956909617096190124214117497989616907651325527540876633363563605890606083362490168071368771227303979271048784646650258902739405919774870690177017395721195337270183520530961834257563800944956019965603167056381231255653811222760427356014757034153615137565185620804659995567359207176076956022795718393249165137283730903094428068913915450999847540235313851020817185088062737935116704980309133118791406106492934901899142513874582438530384913068667685080383204150794370721443121464671109702837235012808514818607626735903454362529601740051705460182749680692524812696362584536070811553962253279814911216134269934487718843064704009925064476174085472255313243205207161807278251915250507808234441650997131759643693809458159708494920303347885571756281466768333433593420004877790214568638649462238682729476827532158544485159405968304489180169753242442221857250617172536920368236553205481888302160788673123562873344225674269439434445177688155028874814822427781356567318038469646318150279132394974058453139624159093654914801480895089379164424644551426928110287833617326623805485929774033724934299829007375524611392702127228916583175588828898373707879960104271131723825318213942726765591213671924120188663202292959857367764420321638160827876043338284065620224453514930731000830578945764616175841001783739560967284151404567671144403483291638264253960563408250836867079018911446590718160069426246014715869809735789958042776860498510735058764510541407158826332646863851671194697465752234406212729584713094470929541619059341250469791533520165064498434251138670410428506277179209164514718008686998742307316129774936321441701384734863437612084871681686775565843624283959062627543548823610706079163966567330276997469025738000868626285240427758219048292536755155950136539175505859030445723152819604533085415558164001986156337503974112770746416208609669386914700552408865657231971129446123320171561567884216662085200595048847450953553801011749473053132424447600494890397523489170093629466085399897886365593210043361166511541164832963113157086112248644432807141452284297084917372051488959126724810800334156894479060322483029134970085456005006672846924140374201885310694233328651737226741394803302648464612864397341386742324709197724180531737927030374499491114888608718598318047215212443494478637429350912065873981613829324448042897388258234293634634248731592960344430366175321626788587236008628456690647953705590863819082214115473223060882635051190242717893835968167613181332418347458351302496496447909085968636462157453329347202015180394309102933128172330832215279609364311557032957911154337674515552949831655675548247447818709550035756798453505660271310560425098923710516647066879090718049155514501763790415241588741209351807779727541504694380959173782636866897223962455331365040959761844474936845490988317231248577432357548133851813641265490307011653961992476542165058470589405390506032848439342819804554906029254974048962127143692210534962672158470242684278193326851030454806748275725020277655825590441990940154333397239884153426341763526840350225711783918431322276288388981013165044294714905641164017608427001346503122897572169640332535298310495451034495558022863426553040604275539974178862450272623137853330414103638794156533849441475728645332952211784179287060853820751676368526141564526416695461457083505787185274683487078424738230484126320819284640027566779447280833924703278578615348255012791563014317528591926427354984770124728235227195278490977581786021031671465153218063790704377119197589469078678774916637119015919384470328575732616288998106151176670729372722173894287968237407353547455177932953379814498052315715551652678655173731962062116369529083201904443290700415934863173723673866075360947827048171898722803727463837482913584562595548508008299219242847711481550758605116597679866812118115376653635895324182041082331393751620697429992545167584061434135061095644222291887361379420252000624864725398910040204636416358770925522142144272161089719502312115705076446975999113766227862480389826941114356162627003216022430436283717790022937267203046457904887659266161129284016506802396360385676508522671114453233563661682488044449831873967440560631544652452387673176798751992218451191915496477788055081566020654650020082980078492512419648497959580828089420820503197975159048342511104800884481085188262274348734547545583089812576098402838750856493354440526630365898841252493554285384343123042583148217640190853687076842167908692648937812045011493162115813439487751393091479614688328865731802328871298052409795491424385938421801716827644674158559428720921732955065483181304359967458958481659002794410681516801519220845002690886304431181165820999540787196675439463279425248326844314442838977303564548583225029571731786816842625903288488662245916991708755639775093614186819053085134024928304968024555117729687119309446993838541135017387571086584954973669647321291482468186465473058287885141750668891686043261152053871051506199066970825885132002887491377975417502779730563617835139477590849917845088660486079938709348950855272801383924998116511056894957080277783273345294771753088883183224250906653599912351093296261576021844599466895277691438471042025079797169094185495129485132584965120282742091077487474067094197142314579485962857783996999726050260872753347281130617902943792150475202996582034964626220971729187874241479681041336665881540956111415883493218369766047863497961455901805314548097963672712671271395401862955702927311017382941868880853529184168398480276977382708583806422842352572779336231007033323671400818922880222578002367422159829588615436247948203848460585193314692052151997506578832868098210330946183628226423588527271733149448219838879774585533046215200458062786072420852641738738219597130795110258012046337875512351748283996177993500640528962945758471935935076453240357149861010185827552438326050926993908708444836433439407613926875756071011713294978747560442038524792174585320267127402247254474661998791837098484701561663370872743582781404201281461723439949134195273290008257882457362285109272912604962139103618123179818513085417244071828081211926081053696030691868172316811214083768100645554004122429655428633163339665798339733726166371741854928812115802525414510069302511945172967622976811227646954790892961144133989361558056856307141258745559989317695464005132859366642373462914663390167224828144346300240768372170489049396353583759883679071508078025042993033693321581604317150699844887103070760114506367413969326254521380634901518705355712843041120672228703416034836883923214357298709077472774943586128584743439261766486262460713061966955455652742127959011128581507624038594284296211296861034579507207909363072784610775852263295705130402291305708249270628817519097903673094702914053610889162305602067849434495511166100167639110195090344009598856015604474702202569414342888460729820933481032280736682602765972772641304634123543735653452149885301250393459877123310048650296261699237312425870097937389663889059000704914196174844229199165196870610762351476398131183442905131236873688629653886466469712512944006936571230079576880203066776856959966286934311779621170908837070038460653498055116024639236526938338274120878822718358510671190197897489428273898726381476849056126501516833985049528883919128486181272227234005046775083123335641838933177644712814950740748000747275308048288173947144229099581768737968408397267363599871496164741074387865958835564514612409570289783343654656866477966434116145541765323762877805507415795755442680236225185561908234578905095077294146798472453286529857487216348051016754069442399402791512828180370461078425707186048137450050758487641641161109871475946075350671028648893732148964111917522751229341556309906694822992774521502800011248228804684626618566195788341761451307727248780477565809423858323282463037139676320988220747707980344305541511687187579582338360676846273612868705320372859183244858603681441416058667149329381665442156652841623859757583544553403112324159974689520123619910035930382248714801318915245133219245975822972213333296605852477982732526169689022487490802467754582145551485043000341964024697938847372020510931225997804404092474107055089265606478553297269399291986707772032699725621265498984971559122282518591537376744960904082497580941206198715347165065827893575460543581501662235349337158418123350599137577036686917967995218892329055567318075094229033241281443918357259132021108387552071202965349003551212097908150230235216646725161541058984118998101276640350260700650200395476682935495522314292794302322847900410969805263287088323259492090332574555910298593873057348853039598483805116131251193836180443977596461413507697228283100824837478851221238923507711489746003382876153416682824655568332169700486913556342619099556115685884393101033795729301227161239996498334343719564485011033994016113737288704820840167749319777377424610589500642593538618509655171167495683839878833480045045992981018463775003040073001630843541590737099641633690521651498627527366742160083288872425725715246924555090531886166114614056121221757741191051669589180949688842848956170507453720581693528876158649889788522516167315044564487864301469469442238173449871971088111322110812044231622053316107656666470031837311708065732482939272872622038043861753478448812735616042143052022265879313094014476054810061059834148348648624193512248371864641129395020018193950674694327981986433820618523605101129212377027172245507007459820156106786871558216964505672763110913557736396639871471920816696115612124087728704947244247762935162449287173770752571558934088178427609953880206716062149487639126768595274866196412399012831586535788983231908084533323573425009844757427912564570312412907604528283747750094976265781182043781937636009446941961100596744524091921347083196380577126984552492482711130570317199048810796841990031063050964003686966896499892473271738093193092571333703720064116481570297810584927032994377718389293656070908502029815628794331936722557446647889754278841779292738578324356266152134508649931319519033138685460345137685435303701134020116149524542232162143960101681822862588906944590423050690789933246261091706114096017297822226483644948984433562028469443600198411550302976914956002890683825290671281808357069924812703292735993429565413770631728933216708067959964838512079362234899777712128598338813913161397627751469822903012053350202301217018650389018166738250543268048986394593171034174538951850112968774245544582922365783324481007970744004755547777193378018914023053901259888468258843339535632446068923185551694628098197892195977749245757658877447031767026619110677416480872344735715846688547815814440578554949044297716858448022583200860209275051584661461725375705564210987723025767438505378311183756866015930485127091779754354373548518899593776270352838324822314457504791613408133072574215203521424651138207030932160560813275869592040980934464052261013863898553504700558274693449234336079507227834231929653884562008255869000908528750940526632928392842309185013303502542529442941363971645134732277395299759000158939493371637131993883702303790980411600771905351487407000689957731578776551777859666299425135387391089882785566404339561518635290950188950512084401135774045491672624830706190588429026004346315463556049143462220312239196671136033668118625004267921660122522190276117225300919200220099693789988236883282668058408823801889341538998496758613887473924652613539867303217663134209644977231347803406215668049258187350961058887861912591494341624594638009773194124113666194803466155834126502125147481300852726157378447944674164332373796214924637436653789470658844126010794347272616838883284691264424989900905990599849334651506421192322011054941740299260577809465540681366387576378843243217883570585764517909385777958331404122353699732271414040040646581259166096586496911558121350398051743496652747075828139535487782433515116393973663896030359210566742545450954760305217048365688637346881027561766782050037069901087139806876115831806280038231777177047942044318090422939921491691336988950046103387689582717448255521920580678750977024951189400476571838062520471848644873283497239505108908864701004124056664566780500535888622241974194327639599474461452605363034675532024823971102312091049245875703471267800007016018516787454558808439666539702482815710108191795241627779768349145476794180134742725902916045954002696843084592571348697563834136013673693264879606180585583669802786557958206207407519753775085345049195570220725563971311225595713853190429151294624230620997730689370323482879079102255096576861677809977623865061611833646383821875527671171282001645098260281592312749420958501501211994373341821199527781993882090875688242874970996628933609394067918377643504177550587595720753073826725540567222987174690816844575697639212776491913798394852052924463034394784458040438943000379023924341231953121279573905785668479298278551913175320512447567408639953129241863569122196459905770966848491312050520610429622659877187734351957596313380183484097601011756129138929589352954300406118692816447109949271830234061481565187630162811773447670832207587397328140954389417751908791059899992952222300277900060361949458933659223206396832524690412585069214018270194940063179535935812841013180142080995827599673084131129760246760117949143561630162269484481352084536072005929816419658835152502195815199324129003967735465401005849790093210836510625415471974764978957223908639853797577399142857407840521833214844843320841927707869541731761008218944242656867491610250932179029875412318467819852244706497132431196658196383974412818536981180036970776699574730664901122980516035598850799867421068466093016283991161258362077855078003031285719402152209595368620107598249915113093533305752115227838424358757146543977626982853377375775504343267039937598776607762120189571669585355091814485801747691165529349912575132188772088517624070715044945058244534780499969973165664557387191191535025740847490578245850975140635676582089797414335357191918707671744417212978710534130787307379477886242779591558360603676432865285453061681261000793820261391900327083150424973924017980492284858608907383145026710976625255568224249948919208884506376669079288004311512962022976157892795885270298749030667542825301791899453131223545588131179613870073165982985152249638598270840062211037996900076996339906594599074106871890830518262181563156314452362595938308161309100987873718331073613146310374356969437699952567826108343653869955405557220413446608442999396433605950253044368657049752109220541340265434968361641691868644463278814326144626573430068358810628994705434652931569619760398689936488832504804549514621137598722771480334375843798229403896060513010940115797345176707377760232744857430580124794329363472926661563276589786846334106013246817652482771083584627472452073872638684056100295952228158940016120491775056186412945372195923295169361570305638525816485241794640269554073087610040868058269995314707883368926439957090773823121089621819686535395610029017221946529108971601658862689629462267539934118835534013506086961062882046308178356405619230365305447992204434705942595597535635891562130425965582183744910074528126655843561797824690677300192218336167372981226922043211747752267475045789815548598379903872776598922480807495162136950678132356657133481233859940031571265773360509090276388198166373045004122724782582795218491374334486325078054992836824878322541365776760425040422219470796992466977120921545522508883399484652529446292847011427840558199357970202232262622422840757033336798775972170616226432432231267454954143572497888450104044987350413691012188110813718695690944488455484509465687228829340124627512818744403092094424134467333651213986393209547409797087962514060864646433229482865334224007034227145232082369340665829861402111977410126351924318631008854446083075626149418777522170040891320991453207064055291322341082129081706240931782458370391025609000309846869868480765827554515049610614473373854343843725374399942424345357451971178858998916066381823343715986810731562555143578297818586162194055503191098285660793009069567423054295740792915814189032805303928816672705233304994704759428811321032375470598536472668317470179283884055909459335565224299502091177543176401366442561872543101539601269127432559180717255377229962578240627937335342126971021584835936950267009697420426949948900344675347453853115229428651280058357981191257907619663799085278239758968521822884816742638278730891497366721609487406447652025588213580375660355576473507784818325300354890720974394462407560011510555501744858153791932788578172627745317962274620441572902895008573927673394293292069985678883137957975798451402471275316344513149791324752494902215960767738228543289433853917496617077822479651005834304174440088662190512589269932009039038695379082089375007384179832750010845305621788894454524465156502412731050759889648735771544657986351229304489439906641136886578008698001037527222926462308564133099036438342253552511446787238193092399322181217001222796420631295771273851204989456500085606927073298123069586687598059094746855293608931371002628774744915061228778665538359608169298280973034127163628488890322598880867700957912258656330414239217295083553959766112370190217735775315915224496663672236436946940953010351394950587842512696535396219775967647158976708334327622092488899718829361054939857503182530909146733475427156771651007074967402308990618708337410980805050166856528701960625375427052135264263776066013552778917522169044732376157334826809173007367643720609905124465864080197243041872932860251120373532748539631781955828031362502042593170273726065639079776172885106747249728120594528158916865146729455204142401708081412532068961872085883086201049623477862058550725285974645965938532032678116178600179735769592435480184013895655191555945146139270315711814185599549471175918556820561438213177422933757521691619484696569657908828553409621666973511548104669532378497566906390184228214636231486439462353779555663221187284501384511264438821162977414871524030915372085424394838560794290226976897612338534747728505785479108665077142267165529258265819398695820619940367580770324721686638194486670138258984682394010328446568818844622898870507334589072571202407303846062348082123573071686344752912633174192830324724294976343426541360307513601188451827156117777526289511422619767457194531822925941409490882111012358257497064722163902939367822692565199960220615412428514701079146311808302604411727174140763105723698282812309382928997882396300559574704443408020776041833349173465823430783825785776246071876001412938544372489815533466280952284491361029025444641587560210310142362389659970742282725703505967868043518378095207998864230986462011950200155941590173850604998535329011755700361947695369464083868278432249793164617021447862559158115178643922902935178364617396211016388433332212919477492506040617179996291988618408349263263132313692862514698604958382230463293953163985107739794438565353837736190752683851802692749822736969807589933461165162481355878465081278586818134230127930446382491228724717394541481130938264815527689607686223330422386960835797447858619521403922906287098781793894359219407870794477311882976494244363224816291783906040867797242762927037570368040879316043031849472750732535483467509595609200708210326346996081565896388841074667269866774089306131754984745724707919855183196738274863671905045141495504445251077198516280248296690355740347430432022248602555004695385643401638022259357157332053203414593227770541330390117588879072837300895375744643478331803425073031832132335250120304282583743850569241801773839759857425850718326441588079573545937648966686734469395449602612733546018967777733209945401493514822415613426340734557466364449848081613801038208616770729974022271810924450787606290519357719190097993513007076161696816673331712040289439998870163720468817579077267271508005568933558569064729776241059061617224619446888558973031024803711772624242540088436045858378632042514016704937859643442552237638170598716799562877298466793149466630308239313758813619722273133227932509037509722961582532960640274267134286449689706925875517547090237848776453718299116763515504872527843668921720200800333901500817377057816482898489252102829830352451408042814666155302884569879490984430062982086026334154661606870536461821384265623988225675882802744520964341581282361463226563576915730957053342373825885961420440835730810385389818151495294087027111998931493441486107134260333701115064622109352395891112394152374925408199985452404742806462917973470767483997405543370604556752631374592828945311801636043960031921345361129611008496811853360660961244678559654075520196381500117779298654421893437742906903063612749955863716307458605640940645165781841592437411207778907944644678628364129675473552187558523063764467470691253693457288531744347370490739298057536582068927906761289462745072930627630781442358138109337197587405202385002207298286165423221817693832556491210047707008188469365916398438821379912689074919401517876523929721204179850135865671412354638113149769464264063002941940274802070254605531329381012713194132168343026590252167390209365273292172012224563662346998159477291157953850020259166944962076439140782191810953517499351732491602297652834212607682025529615696838878034577028918473426214580624993977861552523218046858413107541904033949161059398780345960363169588143795963173766826668672046849587217745124791202839101036528260321990682163529728224087596482536602245578080683422952605113103851678759213518749984696397186342617067326388373616902511977808035378763988351139248089943749705504726422795946254188725861358023649105860010468397356756890194804621301977824880845005402548929895379064476302598407921147543649790725523139232789103347608914306695040233512340346896781646539105896643071861108573667672553566037755963754655605982737653011519580580551353604166883046016038179552113749433499734536034081322368180672580052054333066704635426150802274719443285114719948234509422497836753461970477808741587971129988432803961986525953292508833201452733490572462733708576568028026860919041395297507027450853911415589529271044040898988976056055737018205130798418036238842557796866024155611738987316188882250342992143118665003825267710436494092620946300190323728356655347944842603028327591931802190899543792356381358394076072546791296351704392809359458561912788147028103089507110480800609658449417483346743569609109148587908475802249332527113581607444198357322489664759844244059439827516475765384613835901350337428724356499471827503731193174746695245931089595691697288494409267339986968105329552195168046585582059891391476359956235272987689372711410729265871112803010276817210385110178491522940214536963931269962233900645662070570039497105675895398596521041533965414748624258535811194598425698412744140827208935621524666908622219936549298928391167325821828961328586109348545021447819688877864089309383835072175531389340959974314539622217739260458465063730081960302924190142621401738177561547195239139217512668697994536140923883662119802820896464504881528391555046791296073837645579005401426062741147106453055809496887622600384554751128826149169077278368318066410364811967505226704548838134798079330704452099005292298136062586312382371460569279069110955040189555244964781043466197611492710989398900251103460869762482531665255034779207206075980608629154023490721630273809129733000346769306194753390875288480602974028905653957863315860962008363079907547438523980154275061983032218862420576259480735011867241867025216237688079568496283035959525481576287682125527302677047842152166359945214548365086552457111123679104337151644276585188903253817626039097822798528849285571758693189686499646894946574120193393120940143505545741055328888745011671066256923128106694689742967684469616136330079143795819153441066608583913217657115901204645864343077769167360799384125662037198358622358331901653092474748848975430896379000216668837500775032345075563211244789191062133449409048848380477364198095606160820282386638247815286217665094570401783097953309035660461412322746816141193332517733778060875868186461904506216683799048144487381042463706938943149185069402113544155246990043969283691679711065881681787230930758422397882399599985262880389038029290200473266136007251632476800880708084739541136945341366554546375227930163554023041093629576674470771388575247546180354323929165244698799355939177366269227465765232266054011479122176186528349274112082529598081994556232405070701888876981240551808228296614678416996503546902193119390636985038631646604812027120681492565986892572086513336779484651965725526084115522675828117865759541792471587539543553645802362172154843599114853966842960158042363844421385132121997818802992694159801157758706557532385601278555439972710963009092026824921561774006834252256894785115199069363080149662115998996749232146400986474328143043764401530202161103707293755267816311163483961678068500789680116939707533135872103662051924179170072332872847165646946553229690988200192000989380195692164480117341639374984704743194553927391667067199640365420635101102350456868377329544734856440174162405255038125995850773240819826322535753388490059793080794604527484150136644211555015041640707576681871839252050232719600578111106771139784272861817200573584400629954161345778983286101023024800575040927745280449606999420611877018230001733333229999564305377389651853689578169066131251059406232869194962648736284541828079691831234415032470607918828427535382155519538764935677286699986334543995549339589613231229450811960503295406135056039953219661584191349969538010620447197738236346523929891745461127271598147339363620675201504120613387947188115231727554817517554869131314424340894299985605213761302200422413954961469490059301541710884199955198140048724059408143078749430643872690202272848144897657774748288673471952236580231905418104158562434801469201966817159891579735149876355345946033326627104572037021518772058196146100411172552211603353984642475604316581884551547371416178673475933895165516307110634572612267298117700928490974348026665059007238749630891026702015679071225806460822629372689020841071342380549558536695905164343993939318773183470325738299917362404026199319555165560976441173703406723083821043294109549586761865942811559568837357555845402146303741808192498230288960984564326672034745092621458749067938907568803695102692434389743237778982149089370202841522562795619926177285051192356948562590596501116750780695411425687617444410258685442190043621679380392676599414290968946201928404108941491865489563064212495746489967346233795915793581156881636647773554716822322943539337658880098489250178116906660550606096473505267629553084903006209499869482311724152227532716157415943082501318039655103708427502993936065595558912316047359670116527359864854547617572046434082420592798809188699993550749228553788934632151446007484912425625644220446117310860916611534262719426708000787019455327296428955041276131097237005176622209718709095217824715467603428112505569457617404266740899132836487349931617475506765856711024316422293836835297461595259321829215582694075427792282742452270986201648735550398310449503004839774581928639322264226043003436430275212972577718957006037978410882825545080355542533303070806848684072574755805706042334752794569775842275122448323027919188324611159017278539770572145001687030442678439787511883888959615595863192360106604031569507468970806620363297904715197443616324920478208980000143933912617655703106839219890853190912851549937520381830977500241450167779706038777905036199640322231542601821154307046261854649927271713295410521007441521852098967450971581139429041858144474508173503172918981093752750846762817985130107373575199286533260318260545670694714408391535468758725899156736886521273713611042230985632648904225845583324617668599116977199499077855338158428717316135166968265215643042833415615562917207951562822709716434874369841552940687636030326768605332158926324525537685609589881123496178312641377163311554360918167516757817214118520473900657489089061499233365188304529425842377248589036415946496896024690083841641083015088513532958937874797594813315568849654858892303450504631539016865794266599380993227898646448986226208354687607120501252947110471108886984850166203292903678316639824334718794251181964978343531076132635720360721411562715840626978485321353849286880747705690933931978618910198290277620473449032962167767954363547191020776541754115484401244933746491584002348448112305427428192214867545015087080544662418489491955507149666548379809701178667112028891888816096862697028170846282309800723932110945360002223086053280239824214181714971976940979740679124399827283638232227907389272000241016191368291519816554827415506663939288469882120872489173920767800174309275796715743424388992069020079000706672687251806917443865220521039755786429877104509904721605560396257375668111035864643399422781962169669941811122008018070890385389759419855653194635031371424420624963476456270294095788135408929846479813417987457601337782747585367728102494481973276924835770005594791056347172112835413167133947290709661674730605955103144024259564097578037464236846373506224944831170445323648140431117438366208004879883759994136359910203305383082643439086730232036378378895708697561929469695425391727338394383702364495782744069670528804099424999675037541252813373073099729722142365059484773247663640799029359125019395467383904458432081677244502573756758787720019701644773584644544286723966770743679241921024283800272796523268006178488227337519001469462341927366606970327952766006852066189860482177359735640400901406094818652480862599218440461618133124321124699529904979804706119805332071527737709443136730985296065037644301523825402854461248034486651757011205129223663980206168752363314156749128222159994674077444558072964022374751905127070415963310432050998425110904506995356314031088906206405629655364174994741066950886777172492358140618008917070379494629941597908285891367504472293498844885108031662817090144053789235785183371528139290484791831018721021535130980490467367215675191762570652371354595020691413842431062921944661325504037033193963068268084107371020722764411462610156029542905959515880451176731127386011095770596017752447920312568053003210111985952604656744675385563715552333831755013221196802387480111014064583942609835029811101555868607417842055656750904627877532475328199704377135425460150231176348786268947457641485373478179160116197668101886892856169189126857029635938484459728360070479607036471771772371279217301129876333023190646341528803747662522263763409455006952796288685409613724667297686937221954292873300142639359177607879790890456808818515579059153002552263023328366519888429291950311562295323468896405186133875583305844259395658214520809553456652614726041994600390974575291996329446883243936585105207557122064654494111547399460503410933159900879559796882209885361068097852905928186970401628001664113186296993729422649471785886055208494538937198591255134696846108516132171858864608879321414379403514464602646161855755742991759086848394720339520202314866522124566022669876084736731336514045259436338065743352140017835421811997063382872996865825013794491322433237170432751423237341452315256729431829793782142097905246215475343124555616857922556184689821862103880981271937601372060302449001225124222173994703957006555512233077028068552494950679373851794139947604196327096154187084450525225847341451832933716990782268063149726865647618608786818310865436346766606782090833718652500512145091048424524378225694938761904722079266067528119551108877977179374443679528767405674192575206108965921335319686378074149560941722325930559343103386798261626358283897845229479123259873629482182565328872502145029595323139035448464605970182534107769116586758943278186668671974786726374764237030814254814164973151768396742015186477145378992160720811051015182864682961368048152415940902296615246637075512182233528016943170678626997606301359350806072049793934634082957019276165812913817449106000958174088214936238897975731002906606781631706325872768083140180999939319282146716551727619971251902848003809237020777141763175931899073205583895035659564393843234188303078798452554459602976564762747596146550915546395478857728373203995032645379874860819932606034249045319245307791913201475783307505258249107601871485348537090312991716859449573052338645158498230426235956109371858149978566052449951083239780253190868418655798482380505738571030341833884828160100965611592332708912232958911387324222073973125480377636071774267550127133495305037516315278407494499295309872951406519592373117888219500982319541406985110550307212894896223704838136280456398876792642357829138164969098925424745170234932418265264812303554503002116213318176257381528117924224529275372908147062759310655699922373688308058671582478298058234754538021913024145568006336565517484478359264480011433186254796610047929149481409415662880848661716135164806758647621004529595573031695746652309166169208363808309609029761256874392694891742399951961362710232760501822451110058159743782393361549070170350451010007047494622041883874081971816388480815137930318180018744482643996727653680075803326043095842674281484938126752158689272834974515075581348256917138048366902675967182224915713582363235707153515649277387857857923439103468973497195963507931158865871790177741391760002590091495811974206663055703468345471568104912140157201225177498722891233192865146364069109026538355438288926070694953382198239913821392909545532628280076543870265480917415436599269390916057685517321527185185127546462900503588666287455310301889378060961806600158392865139843437033079047759354440889377165435442373295134222703864401338304198593971579842280048378096933734770430360455701302670709110985618798779081317058976577863851040671769526040903795915292316410476639600588037968259926109710470532303168444440194984871588709480724638790030995671021951149217460494114496705656994961962118098318009258684418693844331935432470592834795846223191963245184423069030284270381403654470735411679076451015474326705666986253338382668178757681184466612552225667809926671782153474511762166475738496219272851248155518292539189185818389630578769916497866045820251065776452922893849340612362039552049754552570269526860464311591435336602266845602941273339650074646525418423760398768290894923529641938560808811046292848631127663513610883787974048840700966932497251248099611583060286878787145912259176539259424797194784647100896988998506495335910831050872335880203493196663692352112728319747782673043560026083295109067934759375494267363983058104451999106041434324569561981237652798807703425664696035033620507896824078131454128643158390582397576389767802381230202326407007947470446273846771678343379311871089665015078432627481132304041904452935384940647799722843352273402587713060415322875020498235676995002680178787327879954511182214072407377568380947657057833291628107494229329289363645236442994045600206402453713427920097501464452557864094317080060563479038812643963290302161071040328295190439646222764735786397708787548126186543530128503893185661301982642330947938564116010584302643397012639459485394953857122597597732565586202799163978176926408156543177869594435378836701329491397525535905811660502661513761062476409467728885045834297194389578191907842142795856577409177014828522973860196958395923256081319482357353584633410431515759307072017696237532989557878381826738561175958475824491845676785264167279121896425350212499456235632502322895808484558894639940647010191735665165452289314736172959953690329807033657387645944545051717570706953572122350023637072033533728886260786739310061027741768574531721453643972645951094612777298947825191533848113455405190178784941405118520911678800009937982082010652053297465017032001172446179307979859713537683651939133294939082814529814659088412266344069648635480147454400943067516586647939727192695457648337324601560162093335616021838122252576261870282346587230795899108056538198635222507925066913291315298757551141129232785968155202418000273417602790473765152348179397807427718779560077069539323272754390018641150894021626067206107586269489452528426940125974218329785210752882084998842705713186915935803077539308735873481621052378057262558197254694766491248823737763786273973185847759478101662546166836599664360513719317428986071681302481693522291381093307172219541644047736028279634374003098253354834648608746042478533731861473023195051810008970868986498382091914764911423715604250460304713775928433828231350134428639088027427973847042797238362997120633477534730859056481987036213535554161885109709356186857025645893819391710695455805488455083214908268334748885298869190354621898229751138280826760464809725076073304763028851256225623262166898282325544430284325792723180460623217974106473124113946023243386669007958057209039467496904199508797824231172339521306795998676923741486875137108988504598158735153004151576381145985888093603459072862717056110523055549927783120268046842938746531148012535883187351734491796108718779408440752335525976363230438198354849965023130449713811091036163464985998689785143527342320271868978362645628541819574165079280981227515036520533776034622826715072591733391883716967815879892537292772910639154884558888202018263503014389951866588104211973129879252147749833925574371877452235380005722649860918813538562192403920552450276561897571927853823530194401628683979249524348767456595764627618986654339375312598161389114977344989585619469382358247752890968930033715590884319468845421839490083951524289368743463993384469756369499614479011729665236793793006085253425241039712894954632737138811507395560897935673993234073564605122940235886453195051362997713501834231799880276242928120371230537478350896472620314582174310934604489138028317946311839056436881248086651556122681341917294370299389084362789597829757031765569398905759552234877474086535880670395560120240140241756676085506062259377023954515233777636989091222917680763262742323137889341382137472690431368972198748522656223693231540845656363481890605528969178655566177357290658624275283724076340596035658808206368406983676544161044692264112922206694649954756777853435441061963645729553795881403876360358448970380101666123774429578533946949513187882249724782317352286466381705529258845252071632439894913513131997174238226637407829039421549522638325157190806444550703580951807373817113528946913267381163538230056305552790716954361476376781801068859461210223838801606802565970064672775199567395414640387121314288312664114359473012127134116268381327802404821607850707999205953942960482499253241073460220376309233034494775284693276409445784244271373169132137738176160713490334976493871827485597001705491479297758826514780741302942684735628162012809073355308851950780731994153610541575626093546521872081431079620344169491688695296450980855044209453666340092475782844235384902862641153323859812353999657509901347105365353173975372772135247350547927562621469175512837649049729746615679141377428179618286714483515451284408019619637186835347528222724039427882356243440818046231311659312010596807569768634393187213766304492554654857688483220600141040694998723812975205125093250601495051899226624016763858526723556327238484259841714531979115037493361252617778726061158708889958260890915414090426025313580966702930560640862871694419212938925970815137217115046096205662322691862818191113703965094162225384974443119553524027830890537483593623900287722406538427040611206235839328974563907581059776164279391611559944953149382868687660454859091309844027771206721912086477039429580701753426404154372505188449516311141455471194554776248323323994038138622099811759188102886027485315893239367791203319961539095982750363654666405617929839208329564095176164489620394476714851593634026832165747993204485578216790184508419881302865902602038493697102462848825830241045054883802244094416628430602757872096698798526112345010290841144079703640277266929458944866711822147564318884617581223477131802416589947712100773644541502396223964157685317455727118801983248118012800386213735022082904836455688072484947500917287002982152105783012710916529112262729687355134937221822973707840181190743889881861843731248528276716422947641087099999693463860369083597921755053151437919149911151147713944300630298003405596906320259381768618941371276138238335033856262302813866596358912758211677224672233465761187818216733256081439666935203615799177107933008322589485857649601012945498285152062069845361824160032389573664306066847104708506940486738809839833905282303518854034106355517641427261010710555439378322458983046079128765446479489205357214431125960996387641084378718224762127011844436418152705472469235181580416358542214517193879800358263987009406070816219190623571013710840991174241166657353218450415910521750729064304653285396993580881590788304485222700608556705103348620299354355030743850508433364234614481570558471709681197598562425331469420579083934676558664779598057248914038865991968154553944152169972869579427766716099310094925606981598236165347683578794651063366378975815512649325391624478154899066688042469427634235262349053865135785683697086096600038434091494816629130846802898623833333403667979060200763144294719711895406089507892997520389373218978496644940883096813187238280667848700628678661391529181800330509408076019390250523620546285050711499121599037228885668122261329839716563601455008637181913559967538025092054116657513105781685566947389677584256640909681073574307645485683293752613756373953064744043535609491557798932826313429158219324755935747226884413389163438130849854911430901526921862866523912410349631501845865243785625960304460382762550140003735153055364017618817912701198997813812451553696710077082519635377638884155558001196354790634667866850816378158606919686015971854598954241069845140896331886320998749991203593881625152706521665209072464320714048417110409825120101702627706871404740639350001962945455349716568313724716407691986562515066471843735179843457394195936825433297105657172840670123871131786582532516719553206491532595720812623356907199489323335907313000596918465900132350569943444469210362921824619043031684345670617055070940914071651969012921355393356227706521145793621023884623890081875201159789753811456457525965153790530451157493072827108255342406707179486680787755096946831849677167398299076251779163777854253275322121637242625617256796091526379026472019580039587253982260669669039042016777075756390720504467896018904120050377551538294176384641078148163902617159072699400700164523168530729802095127006774533302647236703737348905771288043078511144803056164289332077766484573238543713239405114135355589840982080457327546240287180254309858962771780846695343551790262459550493895029472787512299921830862346335614874866711206262806315917019573022468083619040883657820469363966629519330842834309458727929227039304600830562610213831832489177511705928142436848697935172660893054677892947256182375092581282776607788792980241837214550726111043151709655847385388391827988639358896331374980099722503130082622293447614043445917643041033796783646647008822890302705251265871324425022269438042121541929049502900130983073441570854635014145466407858995723336902709437811347308539457391566663345684186537461188579277482984181949392913469575532492199260147729603491968685212955367094367250545400265126573645129920320142514631615297369876444185307455212086620119048939598536130700131126219211724081832334710939432436856193189555735179428705458450919310788427497617948429446888283170792039921448146791060854474795843609582762337090235459447758903057438050893372943164000327613738235067299648974950652198362876677637572840205805397023153532321457557456987123967118574591476883775351196121593038064212678495549072731701327433325111104697521243549212143855451682599214796503034333635308605942282661156855528850515744047543374846903235055942602109841292138886289932574255965585035017633340669606804650145652519688831694753714630945086535069670552010551832628891987523645886015067359667137742243436638828048769815680587052512378382152754890805825410443321788712579991285024681178941895316071142500342889723983822124200069909122273013375740185159634096140113106040381847952552747854658064845789738553634553902328762175703327339658975436326789777540155161044224866792861358845822995658525729125024472498266895604180240175620006843156367646275525933311548797052245522903646009939733123778134436096694958388952629326534279062421375981899736829027048224921649369433906545571153047925371087414119655071756299737021750118586842206113066425860538183427753818758437024609469558988465979898510219268794766905014310345363733214304314986277086439181068269362015147179890006614119574595546430021322669034163047036016185571772447237482616281952429974268512577101494557086789609705586249032054908933954018247900879602588525371889248779632580139412694076079822744802235171335099924144924983519649754709412392666834345332201520881535239602791362711657417368274508268507530037162262878941907146865305279007358483624734866197989198173154012716715878317646432094375003270788029502907590906996841679922433944988570648032317182919330860345440222539557415130112532384979936234294007186953422770021296008150141394868873247738030961634516625908814271497201835549523472639095898659414626068788701431026842385469655350183179677745681707314340508635185755731911267797062053127657778843048013047943579614728257828680492461104547028941705120188624803011155514498960560352889474001028479022541806997107291102738145388816549038288155800237966397340920311168108118119852248385211751568358066553927495403482264870924125919862882980367492996292386594186642613736425311822295265333692291053891343483390329780519849806635719518421176754460073023011741278427776847171788233175036127148145836682278547960077620225967628915117805386870049539846661617332525178732532344988207664113470341719553354204586076531163757393064421089254473118225209417806025821431616200884891833838361429958547493260652466700287569514220703725599965668890792212757573431208041771140629921136028933239117574873217698235485646444071709136279803555711057733464887811638007786365936854052659202795886105544154927504398548531022825864575184380041974091267839279038582268841574680073206053447197863814750932146587215967295256338546209418645928798789625428503771821005032112941839281145936597195106928780182563167252372134986358274806966256963669863591919256573144646635950096916407991790791045156478781991221448743118510708173769245580388286893781205895437461702484631971190945099502540489980213455240511984174690535646148120493092195952786764553226209337284622768143906352249358959285500801853450914198973252187120319332462813153845374243343770019390509148114969311569694317857844467809490208464859523230170045849665840091913316258334679092036816140198455877787885167384777637364948473425021818776516558288281337011429853280806022552275773353082152568139747261299080795082568966685834441483516241999513225343145887652643379627804996437572572097712799994286878241671318316723522624034696359591363118046517003136145633713530691424335352357712846249632758831561488785681688126391649904530560565981809024750636578657107693862573306019077314764579787772966616005690124177131995532361880578421707290093173647517462076586234517584911266701459383381867490160765203473031332501447199075993978929457194751990278522201683582755211863194039226666671933535349640550106880553950715742823291693806750820152851483377265222542945231209898516904848965074062327266872696852852218844289265482596352604414443564071515961029965154168382460037956882820485022583376462807288371101617967000736104338767403427628234420112163710847650638325255844713359908753287750010107979531394338576286804078047989562377927384044309119482623628499468770022332267514308731628360072507859586655753635692188667749711098006849791483202824789398570054021037460612779243511737153613315538669732936304626922827756334138262580429098839553255932000539902087073914198967566268781116987230386921740679548490570652750485869410899615456142686076872913923196158849346065926146733493907394648615531872347984587991100206234104897736512646641960678625805599539932676785128350366664679410814202417010302336829252883821666726483945450164013016869169844913144246231030029082296304814697253506995132001122222447840748799318392653509687997702311145507393972527010239765267362996455808318478815707456303947373063390894200466278244334261876528036811026667629509184032391013566984797078156562587931255202699643749667963948395719872467513231614355196845104894286150385945571607778259770500609416440536130706711590164662378460994230069573960448345725764973972157210893425056881666419622717103552640072942780017811098171536867162999176959572475758072626692965290677227061391856453975393858582515646939643828721869323043074160280038389656262139103499730512491814421213905859497185573834821172357690936363438633835724554450476803463311942279383239195851237118339703093427481256141305593303110647438258105540031712995841466002355415452200065280384867325447706653516643046715084684698388218845625083939903577126008428344436284574255262342741191849489519514000588498391828708557342693370887909059207200723623161528525247263745644628812494092755654730004558382088380438066633573580066517393264084071118280230159154990378769441192949586558378029497415475849612269390581538285564210407023348290954320234393295547632881550383466954084758313790044565040478030060966731024029518023149932812365791793272947437025685574390050088479239870313984402872451317428132979904214028773918383838877587329487829572562276217030995992572995957485857732714004482548762214630531691814859660530814636842924020569970788150238769967797161609246813917158531084979345762837374133093331040907464196674354852638063176854595698038820610302572285809281332087648227145380506581217779407081499780909159389816581870169238311556271375957664792262725352607702147909111751158499769773117433804663618328887160600826939500171842623959743889498586938418928597166094027033002428239108591462268699448564075609633303091457753918934564074468672151844121109381487948020829227242520612310909556906082930806832763839261462493287177322345051646952930873356399325715197627052906365269943559134448060056841155674095481690419327892707585872988622650332729700181300907000999069058837039032645016496234165765476345490555859479629108555401057170663376426237360514195883958015281992488169885164827774513560602477570629255302631002352282811643147296683279655680150793157819639719405981497936847653698653496963724070738658092616993860741622785898764260009151917736859970160255238054524746072008392467567188426387553484724113529117032413423666545019850331869763645109779653680704041865347301776810494779878018623746685222860643181009845152349215188592292267369006864487134845103832774438012398789796566960166770734226109840045324794705201002108289229043856105595485082223202719937144866810318485912668457266130080719055765920896337402299623147276159921684959953222598867307200107113834439607635957582479641336839398257765492020350904706338825598872440278018220042950489060331311711975471154271513289848247232404347159015144647941496885180892418063008160983204138696667123988724585148925456630262559013965702962850083044232429407910975514532076634285485517286608134085363817510170762219695225967646299463602318808874832564921402293619441839147759334188106617936166692148276863610809812051805427417210291893563695904114503538447775241179228297470695304200568834911721022586715725640117548565304017432760942845472937274685080633182950417051952017486592520690166074962317127033541787510785235594560676465113560509132342675265298222796602216584010823340884890232625936846315450369266889294234269043893929589203652721571529725840968159304979349885120314581286409475247194429882972532397985566417997161775468888554157222326531546926213417282570897499387996610857528191171298319106632626305731854752235785785292138239492042315780952263081279684105520520885419247386706292905680026339616092682366172703120565317577082247479467642360307714313518072206732481984990258375717260152593473984392745042366973347150341591042578466672539971877757397320368547096971457800916882094837625611090003484569896645109424295315784215759259330920090537835113472440085430323186970570415384385422479795180191592791920313996725748968300428033107915919280562481867657729381552106988222162844278963342345040556300012387683973294966794897195736317313693476432311833917928131056069021725349830829714050622564925622354901829089783594821156363633708753565541715868285823653591938228848929409236116042400095430513862483836745712855384614106185276497304098046222889896157389437343515081127126927785808405549180450922624638763463067659864674384253575268419982442860940978923288364234952012265444610862984839025193196857261531451873987883801442968235254451305279942561711274810343246381598988349288668284891868153118519349453875078728193729634285583712561192426108555662069014261554943340406903075161285629076723041105521634014169426394966563837044111451762557142071451123625807031295298813091812731382514431058020845804041273205760002332736304733278250672168686247694056652396879786160621545726279466082096803009723971062693578764152215485671405248234726209217084229422419075214698274418323300510672625175921182805427764978732777596621532834581913023717971356937720682588151069243805138424690485463554399003186120725374972805907292006173679227583809886807856992080383021846450508799796297773533658152557935310217465997550431467170332392164878294703871646205015148321571860810190364728733275807619670613761887033500566423528407550331107634877609591239371436706995010090392582045393603530921317159870364993664393317706380829027102002416029865002980449013402122992926294799011086278580819342217573548298718087833057562015056828610350474836290517021416553455455383094316120580266634109285732532466988308838823513355582529038339688835054249989801543534279451654851075263542741510909047218102409783372007816507812991164297850778971839321803179989815626316422909997717928059497953472299433444284584110010996108030707726197772833760795579796752721354578628010275919450754291381987229268310002886525473530025891703287999939445376911042091299208320428891929416730010447546662866604546869794349450920365643473449755083663956993332785054022373439846849794359042972979913088453279590094560315025334755949152669934542875012131058544865416571420673419410485400431077716900650502656325250010972731240105643716811718172723681526868503030557101617188769220140460110879058371599889944261197722339588453637285457122871625741706151199279383433242145435804783784637532877009921283092750386976644214090224688018403804892748494977715408694312981092254503379391722722278758548921291969667992289877830100446415117155149007768463726973614346486614885444702267969536890202610143694614250030979159607717551375968175755404377529229683465249150016884903750163803229607974966139600475942154740037232863102532584958624810337786849242674113574447216000305055368200166412062448310963001597913508621935539664087070804209006732815264704241902909736615646473174566435081059403943170883194549718662017667699385084632637651642800123021620028324114903770558216983097671315213758872075906726323366677887272504028343835763831590765895780964551365497336856767172682269697972263568348472445508886769547040845303727256908574849042073442773513399615570813956328260984331789282538517913505389588415039187438325288432158596277123364964626624581481783635680527521192113774896453919737535032669924936574416844747425027836543910760091917068126573961530830965031941992357499386619026096108954320609686559337817894478141401695434790727757269792737349712551415551483329470261358307027139438243954271092457048260281162665840603346693640335273576706172266697611937986318744489958422486342404046577361055185871586480611186713561438730447066289401736105140751383611274777990027476173806307652174745594080072624630527812297939640036135452234070133591146207859748572551079108562132379718426119245917026108580823747256836955906187919766844331531119303145138257410071373582023011563955338126849555878010055349868248692745133937177442979412510094649396285919909502413083433129477272065441401114497411266852887636791119326365092174185385402567000358416523801131629613635847777129228814618637160893513236117269477923773288900769187902239224582287082124624385559458354629876516573000618162543142526418270484366716056755295454044876400836150186040454100904656164955676787929816961388057415143391190352318340821806477024896125510149186913277256573922466410300311015273053088711038086404158899808673681426665615143789463251005680719317412511462964561744834103626107683728113686710257975220057691709679144159424177642367004883880391521542112284906165525416771249875637336513496245546536234887108430641444670035158082460714420684653861819372547421198540400941774901896491560019373853409093243122545914611875353107909728560142090139836434423305273705026632546380891257456422558823713172745129327607710734193820704046456012919384464334904491127382363864350837446558308208356563024578671317896188807013745175434815700398380751508227988335681809262916250862887863570210234745217101980394764631105215477341058934645937130145350317809932546163342189927000530280233617142676815224955122349975233419683009139958263762660678134454731367490688455965474538231621785612571221701396227302230092099352214013292465107047936824508709113864986166788819172549850121344365854003320917958199914070474348153832157611577518900350311019187046437976699732901715765068397116276910184729421629117909577457162826614106644846351639048461730219819680851458931196966906557433562611430856776264029455722292472744152749070523389957241134844008458941608518814727096939570274489930506645877742526391779196147678513720672774084699301166993594955897437726422164139760004147660659379564112398140669155887901458354222468440365531949312955008795100360643588681700845995549877534455026131590891970193400589323066671757287788949269451366236579458222970855458162010769261555654434561912860145819921282053792718433434432974940009420851764740585580965861555390592310153567542127055533664630461770319643132318504317801511718234999927517202586404835346354827447559909609009261693563895459321974180925388237227998582278049712351686133763074946942009976810226052013887364680159354758616073243814559502658558182714051535772284054272355126378288208665646494936716416832804185344453351218035146455386773387197975820276804739076302171568195238770049648032628273377191587833759482651739248587886539746548612994271035416125359516277652872248690925686488498299881489794921950303462481594380532909856438853228163224988893750149906080676390406899266090852147719586625769140328099389350653768925239849958353296146836319328190646150767582220416577683577945474173509789388720330532485816276941160434064945206254456724292206979889523552473511664314384165555574937877883466449574424239227680173901777875848947543758799014974323844845511949095980704406445906445644113504463004424383228749530066878338414788594413945023756019263582798994051034699707147152441717279039344088348538407951618130881832567716844669179196445358060831348814722382795743369476134721165618998755879311758654898900923706542555412093671205636838905471527768720201120360646762193643193554866186287859274219670551936263602969066204478472965189858631775403933800509253029554593169610778222673690283602739359594146213229965691602842567806170612295448986793764432652956607993362734176527945771675846547249730158987156468803502990757556378471760736399148735912073336189667551268018967759451227018535474674472262442384054318832601366928186268887566446641422126993252691278436619705316247652358157082993037803681749025269503191116137984277451856232364827428909043624538339904591269307646305651531429766122609806478236147004954100366521126827929796148824820658115727126283036265124154594595032641980029293885705432090886760323254158405194141565071428573648042929228365585847861609802029396491689951690515061072488056754689942333545897214297919822051869579317108842687053615122979360988166302164832013456838796720193120798160627289526534256273120008279456277265592992853331959524457613616073179686438085677685636851616296254790719303710443423751298883554816009957236583706508048088924929695904678343830839387279345215805706739015618769435340029997169645616662675494022172192776782727145102215920027188351803099443764345095597290715586634821655670898603537082363125849114190862338686489852073290617684216807068954128447576923952638260231543301798146975861268080432050542684641387483693764516204918848612760165766760946338314516955650207756384220257213553727161316651637966769873453087245369635726815390667079777517201444324245960875248999053850641736803737111536015683391587939981409772475904290986008891650077351972921878002862049611368504610983146309831713794862497571337951228659116063421746592675088794412272428223194752796602602231624212379186845379880316301889971314712114297443024488601744943580934871218330831034124337313065193223226362414958874220826885004216461737392500097670601668953577235242324297225330597837149548839772821363208453159133524900856400274397549495438680368918656473831270967363496471326440687210066829277724344721132487672413917975079055339294810229987556636026975200787002740373016655015135935030401396651600270193827718238740034906772170211798681507714246467372059087894982030711774091670045961835532880034709695978820069144042767491559228061973291258664344721500586480352845014674241775354507450679723927234465445151791207300441541754460056900529749573562830459280449586245267298262267204246102423672950365494840353111037095826034480326159591194095039650905162257688222356773582224089002781853950478134857310085070332967237769058687554668540975441268687374096324995092790940610879384401108620570767283242543629146479940671675960560065913430267949290524025516024722906752976207453682747239740525932089500918045221418460021624354564142926388578657330195742667503014854632055279785920243858596490135608826460154788956133883833774565957055732711330045565388443505759538706717903417643128847307381394199318989616922200585408637385548130747138077694678978354372079434290624887892903386248109436629171382252149169577694772288883647362325009261192435416733986699778748818377903857252454334702696151671982875107756265143357081260708110681934082841120977206265810389957893061504371344527333712603023744986960437721926568608407671672890813826807202762157961791873592378490319779066411739202271124362556500476940386379554636580167555463926133480110901716226270730232231057225963653842459772581070506018664566386271078293053164983926957982914347936411341615735540318650159744363946408136587724757407796603480185596859540904211698796470997617196669430296627777131128610690223971465894662607581559359642922037849042530786085426406685427102833907040764966249469757755798408504088288258275124151521598649981377298799484392541777979157730140613359242802745800172631268280926033879580337132315292320749036916743404721359714141720244676338138700327727827557569718064816140537572939328867088030858741047119812873401776770350906998421021306159396691584732365683142524011284123330443660458134539109319487070295592749977067585266177882645970713007099783554374912422001073923882343033293801766343817499728268823901357799712083573447398193642025105879685272879752026313051439376647524709193710556518158420445269920327542345060320317137585500291575970774569255611032733385665640336489245991641049537192742991948073783069963363499128483992949264372621392857992746238257947703714038066341705420443870892484886440569772162382387589807365479252913147413796524231020000483506435215702101109490780030540640827556165664447780885209507521688788658399592865899585788942274517467496359193970596876257884199894429001466830326845814645738129062523600311716591736871366304522158698037997139823663467692909227815539417314191270284484292366208042208257670202528984692490416798833633344416790617515852916671352081629938604855943469175541225391815837338766004854629655981084748658220570758049745192476331808506260642798869548165538559858470901176050549586734712017721052571053444066778643148873703405774940655722549472459392537528943929466692388275555706137129443837133746140831906736771748926602194387575790428863810616043726984738060666684786936019610672795525381199534016169343317809642138752152851870466496767942126867380267376905724557454908929351615707409818775177903108304220858117738433711341292965045179668517122914521388425941092487467097609259627805937650657276678037900731489364556160814682411474144733081606365625256115152480891974146907353817799625684960341179770408665578511711154223280990357686259828626024117840402695367994827602024784865029198459391968463509973519570123464483333775278026414582345815421359305211633914942837924194379873952916262586154892976600104194437030456742092034394756348919239990501876788348579927024274959459380831956234162479103632649907231332503450702134271375984562353342222837947632344231123190519922509490998292987925275263623557148310756085036822334324907081424527694143291127377945251322244503313092835876722991504599384499055263291284624732405131692656985206368391746884528557289302562684752895337176763745058579049597477135502235629399519750886995936361387207968928875641187015377882158191834095713199487902308207415837976827145875669076873452291079943031039038894712452196769921619126366809609224020597950066769500511151720592589426004467167973334379309115929838182817898950713613170077506532402785453790207617579704605470861716858636619855877267364444462335818770442744866642720061038715580444302623115949667525448980315705353600328535439937098031657650736488857280911866180917891767964349873133779270348351110033132599857055960930920450691999165447347330450581270037877166711878304550100509497895717763846950675522986694915216827847586278220094495771597719959518546264505006198283326153081380330640302682425239447910029901352569194330334645416285303915009866353321413510022253160885205183807513812361298757120707614851087180944100745115465724064506128214928682537349750844592084861961759836947380419505627818677984046871291606914547106367640053621685070297479136805923057686028271653496267513795068294412885146453636190358209140031180831302888193008574009493799852412732655522393337228244924459002218233457447825115839528562456900685990778794896381137614432407518744985587783713513850060944325556301146702489514701571331015230135581199005444370093735061841540659883209810906213701941594115208034004039039913060426793134674141845502226455028984628331129370405213084022909234681977525385786243398155261960729972908864324583759283028073013036740089980803934598810296148655531712942379419854974169572478315955290129589614612673620141967693020426894247182927324400096880326924764836459858613239402621364170364469199780025769921234236104252399401382469928802539509615098276189743838666637110959056722737274175819515823932473483521439241954268476835746136494507576269587692196309842373860786700095381952407139343129591749606198850414183556366555459511845972960910105690488631908025478384221435049025428771102640132008649716512094960314473704759306023623600932797375367933809491564281410665739917144035156140564770130462694716038827131490845187462989287247103076450559025057970182062632777713900430774661421153349875327027812738228032091848668556694875409761011508207660403350989229292197450286356028750353995303442187914465203743098671298089342061701970026723130606485596333101714662491329278304866004374113198761927170572112064597170123556342801012508955802640048825502049251770149604734506624225656249210668497626910669531841209659144161543399193482035954080546031273025622933808930087876832819094498175232842334988573037712681532409961252871224126069473187435588334200470400136435284831287739307944459814893093198470240966429570747833604913833110880598682561497476599099616119931403766172047566197313512614134768671447312814649146151867895036086170214873650348554189725099551511557502023734685852567957799264034967740669837717291756256406139328013895282055906209493065050395345137758984131922187884605595179980614632562285522006291955076905396137907764824074400678143064965770036121231844799461339702282145076337391081981963290102816218339177490312557105089486123057357982293513696280464058718244405247829280204122174450070665799493525524067182528693704806693947874342480885037016470276147888613501367747127723703767141315150823328600600140065882118377301793522056430934801462073649584112964252381543273186245261991028278434975485034615953548281901214500320139474175065320183248269459909017746716051372650228323433394970519353430459635278783228433618806400417153342830617114894734331552157480981714940297865663821452646501428715826740112994333644528262663011270211117452633610124502198101495883982450940002888351029155592876602744628073326548729119965168053121135155287180192162076135337075115575168316603390961052552927283160402538216026933838461059512747175880914029064567760622928048195981804069781702690147749799960097944281947658047620294114867221497114283565734564928902705008602115297985308836974541316678510955994682437376716423744798707698749143557420366173260433859662571000010287469373965649764571400242168093815462815133826909449767496581107192515201188876369830407623051110422252094320244861870065895162783593246208701677594619717736566659890456085443164458255252395909734127117191680065973471400269453337134485772915240827726899622723498381954630762892807879405170460097900306277963323573677433571070131552475466270060900501990396477358458714033512402161047400598307285587790426765850841300223442101157058090745216977934739442243004156315572862785509392381540769926939781068735275338175582253641702680257882781267917390858746841314366494462404950727086603038192053381499278878268893418734772088738211244189248937565790577064271949345722670746254533741001711470347418178855745667502491680377340511900348950886118442153564787020797221572244143517719183647556407951082722378754301095858417354109918692350930453004620724301643024565484671982087843540959226193034833917117141778704018118174226483112739383548065933327382441843561430381679740611220712432946914910243820625935468688148195555492210722751011672148501511670409756650005819139783640978198603335859772691719065779989530505503002309017721495885754868945999171129541332191716119049672895605186966353702954224412941075034082644714189428620246943994095397943600193785499129556241552494270161110057413028791686742582825955377166909398397930288402798500514235690479029588872842909118803400030227322689250556803548658707509089663229695054467919174683038406999212315147214363778152805890991016126544982993125850415218972459382736181349051760556661123630546679827894058438551401714904882957193575793526244062404924280179389516846095163139253689822371996591960770412671239073918307385670294510331196755681718512387429469285929181680593460889105605662998959881294329299238386772806617937437059626311666409323130835585440553061030956763794359029176298357417124173904101155307645442197454946398029331273669516432985965852509487002084865191484267392192728690403964893882786939872512944184149879330837558789812252224468331807056168122210740043060245006730110472305536319171170155365522588924936681277998565850307664750766456451681999969571199132964815888513519125249554270540107134833012184341968379061287577134423689071887524785961423117299608740910671032350533138309997459859316173731808547135094269795728117247310748226446990660732459079205894651750575254997353626706541730750331364829059963692322258895125414350337684976770325888824801932299937654083110295207105261010392388292805739463596521046362303123231008279082708785715140442753705386949631267027739331006164507884000060216582404787745660071033408246113753699930409379452528600360298867253401481126492179522522709204460611926861827758969856905444629746620720974494541692534971261001874476693309644316408101637300614584589130669755575614663689068367313368148823112696131932993821858530350403770843377817617836147297037328296111089847811538191585405617672948880617543995725465035482545747102292705599024589628779791443626512992592179496555617484843395940345285584617557286359288444415364990035584376835797259121967503054678136564215856818218159953497153796519757508706644987284930052818546097012111246114000021623903233307789693658601510345886049787221574118005004151502700563673639114241760727874041850976697642366258870266484519688804474584323313413445171305153628167876535237313648932028151550702696916753890155675154113342728764347366917671351385351227517231971886632648838400655146715388294663627925777902091920065590920365478670638467239085800748149818535148903482631583575683411627720743773411598408754161210609486530034409547396842660306048482595186207821721534531663744710341489250616677657147644715909324854295621010199748464364152655230138905855532294397523864595055652438173429523440903050597431860551845754718915790930623830022635935874018140678942625571014328095612527820528872474569204533692594771060160109492694569875725122885030001250601622848696581408465604588601661790576150817077506622369901313122375562546222144643583709757313791176316474490095653683324379882816244307558422332119033389703360853720010381019074381180333471243562454141136604774038510203514843070238100258560023395609779719393785919395645393953519830896521667197989538273542374131975049607907850737020851259238512251871014183236397578070393064541577036330146647986836107799204911670658361021330962107111868293110683185227511110887975275197664000274380439498985557581365482707071672937691375633423047631277530401674605083026368151882182049458557709047864311307664835506049376794241366570881148087764686195841611479163323244110119727098642865573620926508520770797178999142800123551442383460721137980173650253875992467618626848498959070481602832717661474867048089831414742793867355356389740520627186819355048149190472318136688118573793319121241070438183828215145637219590927543713337991732404331842155476119327720067772521190727142325440563527024230983131824641640967568624279101302749189519836798822919230745260300330374368046223628919692495162815796186693103812402660361016665124028906859774078145853331554495640280202042762072966852227963561369981374840170773267400599168485174098967366546552769888057025902662148094419743845942349186658766058592432898265677408782281343845516059159479124754811063761727034470977358708021178402744877809494576655367889768804816667450174969278324307569462946256522289486121976749032975060144768423082443757485425598539779182528231837448923536178914599279065985231980554332477163192011716690792152902128423683424634420993296726278394731959673996613709279826533287437545465650823860276505241839319111088544576538291127746959372060201154957968564039919928680335916947743268335233645677669789301910234773365401934252302786762812546896661709770419599307736523565581784427939271444892310915525890881887226191808467881157823169067463043654853420414366945889124316858675535317969416575242113835963688817877756417355007081226447711462689727726124018218267998556460856571385661172630325804552703881451497202623106762613151784320553260886369819914026051150954286406776947531704318671299932710177779406412949338403739060788472731195026699821838808635536552206528103958985714699926553836177186476046137225242133483565574460632921175937665763379625527314393468106824493540489489714316846314571273348890773365320761477783774098386264105906420261687928077491145297556166262261005717009907499368886392828529472096190976868347001100225462428325321319574893218555001276587602061764240648769128250845090082345837596802742507405763410804512429011218723618545960524537868314638479879322663733333294422447286969108717041045190257434491589054884561389772910379573022499664231927847163133679870460541416209626557718704243831305175325453386000123861516724606828235967313811484449309861764544075012486941869937439396784646785069347312286503995277061164522860712244655270713113665094989661722506593953630311274349558247375376372772837100279023319694962610040757697114460185948911130620631233795867826076009021510376276324550835631003651582258502065079537240092320058677542431393443691687198729122297619867640008994768832700992606603757623246200882262496840579525614696501692623929666864901368665173553656465482127298871143583219143193945346232084744321522486131262556213450413746489545232800796615925261250823834551935403104637348312583405329573729381901518773003322108193468868216272256983519392475928993727986761138281181180558166649286101527749638266154171608921157825380068232811374468255329543520961287083833049169229149472150191104703192198394798365724535177086826448217707646634454703491872341621831444338916289061168122474142490258751879420684410690666448082344048469784552700684798763111116015399333606474247075787385002782072625409663273697186789604343075252380240614202402393777288308260652440123465054288161818915080218716006250465632620600572834132504009257227946016599555020722973694715847373157597004346655799212139459347356589899460030392659002699716699732271943636822163953386393166579477038482591570151386648251023650271028876571478850924472412508451731896724352029479450922583063202181874070299437467134646112236155505089565922228885777540693635653587351878025179863368348832217557924815662027101972430203776410681264473902165556193142935799543462025303429294824335099077034794443313481725406149116388476474838339237841363406416856892560908271840885873107366755335932539828639988276761203070591521382546087396566788385960033925097100333424577190787852598667045646809956447308256992977459025385468946856921982705012260427048342147281322960531526430346623640817241609082332900474145837005563461851894555904934754259021856256576086229534464135893584024647384148081999713977639371905866420232206406955519997950739066856689561922476397842880360957986210873073587448373652081515673752726201436584571017856754293763857159485548646238256648274380667189695952396773548440860481327992091571255532152754167430554510033869416027651490407903316063909136897974444908325919296600976883771371584757194161698977395864733902387024963262902538518873234900707945703307724315800154594500347222467378333866843396362745184753772608956773981959457670332819302288742253289279960177374510171473446534673068243652871295506517536814583738037468839284563212613191127669493813618726068436441695496331029735608495837201522896958047856005159114483142897351837400195266046970264552709814312985144661807103701617591572926464811106716520532006315697789701216087108269094650377900695275203111820348237623361533041711721824639856455578286894727638880708521685345299984103737431290863780768799688630285935721126893722237941039003770333546634239900378883183179665530210803852389811446167396021040136074107398943889280606643206393718085514769616404277154245875429292664736542475425489107385081977009384600406431559498708900877504653554796717499994739972895316851997381577930127758946914024544396334752483409444113359140469005725199454738972540741297831592525836027673757607757634709525300893123270961120180085852078718543344602125205785424719538088865854086578871106315397363699838034657207879741660332153385412063296819377806238637188942999602771003646708777557684721167196773989016689824613492608816227532703073013625015973018268755075442587329283640568406846152543660394750755995166101311211234603277952603132848718803033515020380212380093347235899223020855444423335628361915996451109110496237128758721522535248278940195130031664131550457183466274570919136077443099214983576536832315829555348177495261677369124245382558952217265392897507831807398960357287178482114554951864802253590033851590844753105433456264582683657331879774078736321437103070657595986224618370545844439420131138252938152870823385852455680272032592622739866810612104221392647067960414862945744389731060559871720434944645927286793514959002814963204427632468380548609002144649520992453027130694138820491661193197812549956922457303782181959941532629068568001489112097159681115538825527054559105583566388482186040134274580189798536490029928170724928432105784883260581863753656621328085457410764093513356561344267650095163306819035530555242459881338529481093874429618148706979067535161947394944018847491166856061490672447827727906018683587216395326380000726445223914728689807856879611411128896755000165309805437397392877256984719717747153372025175622999842375280889409939685369999975741302948338175398804053344587770933490485525070475091730821347499659921192540627583015598402596868904823503307349459824113271862400176422233685290770486475990076736743669892767047444321706762213470478659566142436400017961957355435542742669964478425333556817845829025608125425869708814487715715693601630066338824201054055946552562564125014978184958262627050834753349450708526463017869547569787629420075046271194353618259062272275098441586026805277634852984926407135566704721166085038983442980676170510238057893255457159141521609992091996788188081930456688801393049997065795111473861529350467021590550442254371645572025734266467849002543664054151468435840975100553406548532626667753661939625998325029547675557234241560829908709161446679238549127471518297846302316464708073864893916774628015956887096420252473978549300334698473398300591310542457074036700892852129053138292885372888312629022859291038977632805466197668411690680395673574624133784681737593442949168172186598296665381591690816252997601314371086876600311419881766329307811734822006523366083778497504662581467742008631457880456405841550768829820725229212844299424617261580170215904037620830156623122119643442563285047335676951503310738451782277674899685522177263133821189977064075379984137387242519780550702820317241206468869871203457117672071364756128507470423091424324143828919050125477304908527441675954531282204594483476908072077940253861534317999366047382473611518725694951109486090012433586486330737079196938884538749661273745011733265116755332970251664400980643038864912800939260573358864588271756740668929173381601235326614414359333128932496788066582561923253591635044881964195442818510248525898594038389880713077615598851547259755975685130600701495113486596385384103271865907356384044581864456561857899862331699831342400400473264669058516006397793990329364883920792591913433248411645942055229670541972128690869617884983523709139478264954982440737277119616876818717451413788201202156022906231708276784903148100455263520541037326500805247360613597317886662800824629517753073661032035572468123230060880762610209054138082868986378738056644661070784040919233774767502913148812748382100998411395240464510662389463165798369266294999258651578788816093733442890406697894756378819632847302256150167277933727876126221875812596381888081276551761175075891708157668678616483309746924009049545652361737650114624481759236828517133825922756604850350663546890964449208556611360732975197896097397397477137571165088247292927521724985699270466487314690045233919284298330539579394311614429789375048367793505118613418366334626253475433004268214540123728377367054598113645647592774122601149646205086793485643474453514911544646363463566760767230998643483923996949889837435098137999535423878926421321916825606292068080475315373452799610532967522309507460830023164478138445909704912733857999176360394735558375806036745699162821919421022988912905739729724511192666078590228506566627243062801503972082122600988504798139492700548841299476813874619131718773507161351327407348091240362276818809939102547108928335223553451840153794592509243746500808400506184115166997789964546053710257262471373401948152604485236484264088058229679265192077993437873681824240040437369351059516801538806791025314362288861366813325325169634505091979808745145368932187559927835180134722958630237495966042604155156290285101415664517943215453722519768528704433367736897123066042041415110315341617138507395756341018418984501203856122488752334841446775532928900337019888594638366464441453055180641636985753713703948207202041322150539620935693822425111441595849672940060257913362955298259577803067727904180680852867096895116753747534144519072498756465452292559305246469915879385318350021466750143070444444850440010086724765358532357626136430804317794460869277498559217193219514055949394250254916940533673892219014387508484910884420312496873580853171932258895945336324606261580859053373238231847611632321785437831728979794096525554821775254163751496159570695277433197444848368741518841970533893892158121634284050891700124820802558641180440324557095434269538770721022968229123787599522105768783560041063350305129005255109321034265497541012392990928479733389088186037397597943949761601157313673016351841762935707708380891258554329367535345548433294057907515575570978249626956219914626444278311058329443546777139466031875653521504930410903552494892583710313302103733153651203023121104120364528983886591659384575010641271077643004879983998381802433840667347571716772215736784232572477426328820426394490120511184047081658088472277467970134928488293272371374808566413405337777648483275943206151651483995181259649851756740583636681718658669773419843645518094680138098324492851366670118977441945998810746342912630380597544724774779285486839964319309999238820134862838295832442893187844477869102731569347370642692764538499936760613952995372517225807338554333946139238389312557199611906804260698117371906828136204600901554183085591163234426831808144261450623880716953525499247515141316222864649175041959973476227915877229361983118904620350510508010414941824687963638165614010031617091652517517258355020020032128742742057954754962198941361400220289405791176446647488121205310173674525538986886823679975422163361775108058592788033733499080942150999850928651911985600730135433144934134364988187034545140015794235948857109186983649906344137184531671446862816664564171464738723642174995788721996817924997240380956608004698020167484311545544407709145251317870705884997571689959127761575820184140105471313770014681763757421397690935440864919112308141324868329710026451377755804569337757311326608904969510244726266525384539491669882202368138445036607254180839280084946692514468633458371032999317899638544937523905001773489830727663910479461669017171243281540882191276723375546973131990187021051919359492655416382198715789674672484877348266780545543994494967089742450216673125247904011607482045885043989232664223473988686481455885804036891860999196197830662143952036378349455048502112404167770829663258986503217876836670766101732523698509667208469828263378913060033920782888433876632198801348399733184791783965059354039288058959257776328305759370995345651125736769281114541873452915053767915296860048553203115980959122028462558581488177888462363149879013113314268592511243967045090726186970725403347530536245879831906765014998061746450978709807191936158645068270077082601182142765285865901302685405797211234448089293965694814106703729951793556044125355922856302196051664064642856630831514471509103097899278878774737759716521355879121236617845234036186414011873733150450609330495048186585765335155629091634466828555040836397444655573711502688926120905078246803737532220134651023779672789378356160437025980084931943535102790590626667766291560545473682218210916074659163081555290771081934444980882119745244371057734807594604363399283747428882019767004501168520573856682942078673363335559900345662726914970386475154273867160848135535617025663819265286139662683348060699699528017689220144582493970619342627310122338372576358306094347731925138583882503488723727596706912208026286901816910106127093814159892092487835545702628282606878853937421366609120584059081919827962761582573742322435451244760773214394582515656149872113168373218675836944769413403587410886697182428132906604599433047466130517517988801928358092798613271750871694748410939864924637192453132372144981750713530133436242188298585773409691635506399984802904335175446313127139905417934345140827526170008005951831653916431579517891150312810189361675270095695224241646870587218193202770540189658249960994597793071734595583327473253299214416598930472931529046781425745513709125725858927732143145137398317206683266034663028643716043946500400988270118183171108895138735360501274953338911186166739598287751486717403600588848627621840322553077801831240845258877884249868347645057171387375237647249754917574416809557306537236717275975471075059225386403928355809632545266554794734457589817863571274829922987931717783264856360426399913915687510505419417960416610245898733663479358339508942468565423768273012220362427176455654309308882446561925094397595571050666985519050983700576688874069450441796370061495019857378395883756088304645070893160698478277290375684075988791711212668606297497833670474411991406909360429168519413106221271202856124628066074650055353176176122801766938428168328353268629100209382139216093457011893496355122395142238333458816187049156194574846718548593610780580149429637948589794777128019204758873159733924998230828812121947065730305846367698726383265483259358696279989729981443993798663383799053041758596037830126567437085460223962909999764186131224204102184254763722930712884971131517936025999065000489383781576868195492946135503826272241618237831702236042016793444105243049516271576705988336143227242995512654066688253818744060868894839161978518825437320224253852995629611858988745029445672253592657541478197402720122296569498739875613204476927850656655473487044464307331903123007519441192264089902492595104858169526733628075009965533308613829864084318274983251113258885094534609476933209107705111946176375434560357005156361384058720785025751583683389348266453584108617879626662847082837819916818946636424453858610010984064946186291759100852697697228706723323552506297202447546262919727800469606743470524276491703038628482082532761907871056865749840465803609857879410069757651109462752637045545679677507036859417743628573329288445000430300332890284570507081549320070867694881616411342080806501564366812287063708436196847592555734267490372839796081670901833412371256513921831284259763535501510864788663741336285860392263101142842498630913677782353682744341294877841313914236649369973684757193447595598180745980240801111996232591970206717941596094592343439009483965757844867405994872428130623308350111812933732759878122330923921930580657252975956958618260218319969475448248550678629673226009225367250282243156012239525504278510834230614486547357307692428136647798966973032818675646860604879209144894387534677079515744627227784748686782725967946455713007232995085233762105928616904228335671513938143664141028386767996503370089158006277611865698573905120554487611406558118409797895131799480987342778623391598523247689138140550970113561991617052381876742281616827795595203765422215917460031363017238507705617996639803286804162471612765427948261205690358977400510412878157898059959961113376302501085776572486715969239734489769176927492161243849912898406662233204377337341283099549140980143077269145805278018188753817970252989817815770007971135254022945301232906681743333854023939653197930174871483962498656442484922234385092766367810063277433875180193467803747405884496327975174086857283928968967513432694045929748653915112964113469133494089174046081709281520224186094929789743096783344655673916579850271390889176238982537910909668956661791694159159188868898338227557999412891431284089674570959346265842226624395588694633999421480486643611375152752649392739068145660489861523584970238190397171468393936516067243255350512364918301131104364281063579872167760186123052766628682790514201074812091581437202995160713412222759136416869488512248373868796459090687270115358381786533234113890836596207436828009082361459719486218161615483499280843965210983545446924567330040309687415325566679887544372182748753330104214489766268706801951437522635228898572904718960666281074230460548334440474786325172154563508042423223766572225112890088901461457340475407149753855511235977943118695442545957050836661254785275916245836692653358540881665830090152527206159039549788471745320758386007612995638649093299452093073938147849918607305140437603787521123204402104340727056521628679817659343942983089403892713852450761963037729130348988373192570018646503771367651930727055669253527115564787440056866399268627431229289922630494574693483736191918919224921277951752419034264553667627272551333354310737195743050205170899813764496445221091602038587684559375500978983217432449839415360287805546761970532976685632554557285390135226600394474897217893879026893056428214149853535120576920261465635802933670986181461785079418959855858824202566623497963630415409110242203502015675508394517665718750097045245437812422777938849669260871206876255288571752637936907270386061635273016491380552844341285686314586819224773508524268543208831868371692618552101607017252691203370833779276817512740425544131425189938485322176740500329296808889589713983782727182539320862354773142260621039201045823916685100500184503970717952430379461764095104210088455318518821569433407435097875789679164651870758976952564256668251713521436354191387346500137349937218730210724085046519614821115147617848837524161623610792373421536754319324639920711406325085663009422652457453352885804102148201464412568653782092811070431204383093532904267756830568237198553402191848226274231871040545553446077066833421937313087803633527411301708412343407806377264342665467141079259116764358053433968868930553728444066899795534053368573894140286102136536445815752133610514179635701216934661686919207255296896415038435183916167999127607359215098194134819474413407780580551090755587610763068731388152915300376078260599727549241631952367242126098257563959248556957312641054541701056556237682193220494272597875287129832841297220327343072907615466546314437320097945328627760536043492820158590769357644163671537885340756294417112299336352626182844144161141748826881570190652466030953190044989235143390186252185620940856366613574848193476810454556058252249644153057773264998577910250621286701994349171506508066349508440506418696834582052523568652526631814364254097204224741930676025918675431932788884942221429036463883984954231352950558595442875241505861610512444970366121814042854364378014654843614842134989325856546647228845356123457081543901445211520936224156576591817586807734621124705850412488975504818407922033378802608632556263759629108472608984550383852115831611142447603451520262057940907117813572330993924711886360889292175374971713844192086959964699917680086600173433495916987964322638471691215472039648837135611873103973524170521461377658665410160841117455347748453102152258805678308286244498379862431579207174637944012206123499458316392472739221657253719194560404763233561969949529660693008842194801573682374080966629641070009787780106590692296412958402375925562353551829072666118100121605258478960394432204292209089697839810091120573364817660961919641458173384431919616095901145417287961416211918398806211831288096699975409756635818441419649276656567863552436307795608616441218524559645675369058321483573965331188397226186514548551795692857993101207267796134900965608579790165155241431125152763122372597320959509907033444510498961559878229885054664778953600671652538064659582169448210634303204011157899661090394537657283356853089337117494557087265036173636758166400678401700253524984511040164633577736368101459880880256244770431598047346551099262417888681170195110664243970148329829017493169745111996479479506159127668557912228600783872550774623162078686977690643786237588361259615487150473583132392233195175071454006024008606791781490445555271300867272174060632786728253234734194802579259275648528615123614290596886511785838949947455850904515126988650863599175867334796063849375479193083119618284412340544685198513979275277930019929463069755559928894009232847253114749248423883698122658356547403160962136349015393457130341506650121217942168886765355365890053030474584521385985807970966366641736799147052665022336537861212596163294715674612249510580510789985879553372346854094987565347875851023866790656646277399730244760862263368405680586959464474905386404103683703648171723659575268625112688316254693133499775296568288996104882554841369552197758800330078014693206359849282777059391084739139386963972205489739605834569928286642358630386309233712338325945308723696089087515942575479392807715051525447862995257914151151404689172869741818025909022137206711019670048673286121003537075360584169220424392697785067492540048870954389027081031601763362341975680008775667989533943013005335794453514336133779998732722688300504191558949760161351986312455301295257787269610071047780693911072229025039628301133718879874042313392164514792977591081113984484044380130658627173929856188795576558815873252504570888435560595265780536289891032568116877135700107665995599404555768200956703600548861198949744574098277973543020688841952117707012265033282131455496777722637982845890761928266026137739945091707194817372749207603833594990450477428266647423979474562072163672413423113692657589772004782320750200701012511990183805425609081578340762657257556209507925768290659566700032605246157205052071530199087753121276987077155410923584935981692150944250059841124439923039295355266635326358141463715110153112347783346052388028404158468751563162912796855295132510676278147728819469572144098200707629963061859713309444704187158617964054055112716452144423527085929883610469000547822920732846980856504859181514360259915370285165448452303438992387172923641208422743060927793301942884938607382239775847410362228063466983995356223759912448181864661149424726159408442168989960846270880297166517750021534007061351523946370203235458706164626449065766640856535471324590702943051187780569008955048735530499667401880015802925592269633493053610772597080333452355879576772988733777391648556112276191678252363200800360722546966547212902531928021196340235769829404800557842821670552830326675440709024222290242917973229681462960213959111619790691580482658168617728930070120889065077271058588290789912711888176136286688960725277969020534622836908720551352703107987012916378076070279753374617559992985832770507979815294649998783929526536853822745601334670505373030823520534630296713936721927240947794649104484291904822505301958519602068582629445254882875872102800995170293755708655188702424916109588477671769886552576782235753134087898093067591637763927829656618795949402986935112902761965299568621825383546777302907786514219165842171510578069125700634109147681880139607536427798004081078611198489455059360387043793867430619342468985018215647750118818585366962634004836584811410955485779230816752415426174775884801887984583518194350230557500530864705543085211039413402035432449691791297759673263875195547505731641174775522042750561255789354756159064004981385999507164672477545502764962174893992980286402746718861594232234865531620946295460159298561882583898293801567850289029192871754185640642442937170248886593931153152362597611012896159798888906001626793491777457316350466932206013374377200495042282173071707934094410570946509359198102736646943972866684138176460475965023976054620360866279574554396722547675895751778056554423146352050042442530641250168608605930338673105661281640727392838473141252111930600320567986236152245551175415875387575951935945646345416986626817509377206196800506880592814006638582289318003682608480830832737532684142685851738791022080288495357146440651437846299246286291500887321240523425399873021496642566305328359591599475338350127239687881963265856972640545288878965239945490798259422643113586516876647176283152083759274919030387207292303080730333879675126856766341768864117946378676985466410607342198375864895091518494301582608087545364950918885416719559057350862853493110124981737346792454175723455677902780166172553865301808912353909403663047007671157023772705612781753070303818786495573097602642116735321655997730507275423254281956791102577230545186005594655926606631231774084028448625825256622675162997431397631196840518563706107242151012413455075096352728118945264510176317610023829469553515620561123635984372812252715720066311996229905276736304976585284197183635504093718721738364731096755426383392551400063574540740216488618521916054760293822267413749940856982483655252637303984188030566282482202768107438536169478085632383055712364576331836659793814646909789438314922862831689204026008077936916385638525306230685128083884404409323839160999754152474729150178449496716550452270209475942992575808531421517372145383647297348328218132849426082783228701087739449442062558235676274173595899192279309595211127930893628937776583523393155814515088641811809359928936116348626719870216162702617650457364513930497568078148453091058832892352383574037605743289429358702554532311754297261416225505871698756174629067123074086074898968538492717568506798019085124981290735108113480863370133472385752266117594367899299097214089862317772461164088914755113235808257901211729877696829649467329879681261394920342406232553157400642535278580898310283809820332924362123109469828998455861190073671507839045938110481966584305458370671573880707580696058535032806303573118216927210695556599707702586686321821069224529155785805842301064905714938269589312786910598419978597508376338490911263346425652793903706447184043589873892709699868576040353902871432093710076177037403615609188082157715521882075533879474352338669210293912989483615045522268920044633526921827253203867049684349912284252630765870746727699173547208242491399060706813204689726303709333786722497460455696047818153713503785693463541272633576171045224823040810687565003645403884163623598223124989527030512332676531591108748107875005661516586478161391267366339780249940687648436802105302540620288257304094015140838575407828644649189330347323946729503528355117216506172621415777066425779513232194882646606531784265616308070710156989687889422078732999814180694877351800375098967030727558573311220242124944383055488390510466610106339845208048786623434953604535268606038868277806679910066394138214987675633653205826973535416019140365154554335371593657215372684226558086576739711153238188250745964169594168201564976944244684630418219025748332157432790341276395577932747122545557909356413572534126094059308678411787517403946912608065869649058531552789946677999255413701152234733962279839422680620541700940925774028911724523163431906329079814334352735524013653221203864773975136988333067175032136699168674344137089314955077576890431935152614549969647598957927413662078775173179288563064055475089685517469560525093047078790063666164319620742221770577230619082111649460784797332486078750770094359800003882216723942800398704171499423891217898825559006478403409283209512606001509440183668742744255838474591648322638321971036583148957878042771426845043512832929837901963988674936231980197248400318264870203978157585039495047493651373225586705370712879840843297606562184565582893864332614512325335882104451147780489870554217214698735235406710326412802643644553968754016060449322117994417589090520348372638964425728342872204411402508526229708529532677211515073015045402533845617719771574234010745549231443476287080270769493043272584071219570732273207120405981625165775418071375341227758456976104232942838095384926144192199097119821896057680481169973000849471226555156719990726333621870208644014646471912182734121609965021364874654139838721736982304428254453296714302996037208160283362423344972551930684766570015370281773269408513630746155602914468569416409224093269928550649494084201728783443047338700313200888227253968087141836653354636462662873149564496997072116764198910654451529082763320342025256280809733065303519763726128204136787569776479092215129537482578797473775781940024704194262149704553701778868740159958951280413150696237539847992066682704644507061048813031905615582280911641172955669757624187822551407921267762751477201479181961911254318376120131269153141817983558871332354241319238364835695680494372687745752427458303419596597460327364434111431640622809264505169390052631532045238442029922398948666130163749100257843452525259941607502194554769800530135871899012104535287595314817128986601550321115021490383729996815298004127229501689738848844676906784819192586946812008861713381059825321905787773137642928488743487348420989533491862474548671386432566351370065834670694964893204704494651546569136663792530996241581067009790891417636337544429818700410394459846791067070689735448570394365621314401336003135893573764603048822025916779747788146176994757917044709839224193452811763857699227493909102317207688977120986983585912386762699201161376571464181728290696519720671081980140538994671639190367600579981100560352426459798817241802583270140971160537887438824756557371080084075201416895189933089896201517946631124069767734330457225383827609774399885723798912700031272029967270086604637522264853297926047576944631665578965221927460101842159420559260701037232572860256124023399688022695747438481427556037800460841925321916533360179203350645189328474073204125745826903625488538896130173322558143327188949272777760067867488717125182106977637982497159061031139589391543146378912442822478418669918741736661175709812861951956350213643793484352709836066490208281421483410004642830011689031004840725644996947827541212196402338258730525761374192187823129990555022264131339877173121278059779173252579457098681550793842637893814249523573746259160864116616810974329784889417054858386114823573076019059243264936436405526685860960073260020159392552834175766663767292796643413155202433952758072384270048234760388225152451484899681473088298307806522442217340823044127480923427449976552165492004238287798649192391179234783937206572095767359300757212607071625814567873424872419656965282005078213085558677050408626634914028237213328449772230661724912341695496766617431129793188106622976100440442111395101864005956354325844016579422507951627564747895282286105993631978039659521483642325171594762794122717798885954248955682168991071030686216283176613661169849920345707033638993253389980542589042971553595683819403929748039379652759869995823477781639837662375230484002572954967328721126693592664240330489350785397578044670162005389941918507172920775807252405264790315768296606001850082929235165346371411882889433484042683597255510663529735574645366280914712165685954864881752169023247016249772280155135653728267546141527066027380913664416601658644493563277096359550158214369445088769866477237525021310053336228012610434449876200989909687213024822258616427618898169103425922843571365906683349593338347527696855274345353029677795490219307547267597792421428252574089328891945790942201639404774031184193761111967788838620390694785527959963676989712156367489809664096477451733081768363924313574441913147690845322622544972077951459710001309754322695996902422443790310968068501240512678774866302850141439258535049701709537211469609653588468319486022555229924856187350251060758225760417031347313223875621137288007857147005895114263374302346588864254663760906738753472725925970389270472050429425286282941517612879208931287039119125730049461630734761851017410016970351298648940630975495323007672074353246889822892293335670873203780842106128572029962727478800658669136638505959103248298276869052995300348352844927133894746855266319857383973629888907922910007591061887793044401520434984738927395036670217529782602288078318183892148174307450947659905006707620251288413994083330875508130597003317682047416233824869536326312197978538876746392040259621319510775637954090949598121144908398530706697370017123412635359106133387537617552170306089349142389366159490589544024547180475580080010862939225225092769950432923962822282790572772613366288659639472640924566065600077933601804933111451071758181648386163970736414193581700486169274293773022785122402457293874762001178529435399579441197783124282024841985694455739498147882115853969046620473757215983852294010242943665657101038859046237166900630636408216831616396483330756807799179615219201658368981744534894562709969148910604941975467614015713277397630203762047077453164198449581215426114173332293414640442654598114879535823047951472119712628806379549132699039787165915910561797466457654868864393423470590718755434228123731870902069448243869066452228352932782449454602045501444169857619042970129408746865364333154642615907111095410345707682066364484771900716041552024348426497911637394310361115104121984850833013827313550978513342290383060403709201436934878762292412850639342285285952685439078317069165065021964859468102598558554628186865095242016003337540775524926438438377632892778960055439121216708438514014851119358494243956177710828485083059773576465931116309592722198824636647311041491512386681390626847426783159335439390304272817242545715910557208992744027402153309456971544978193519441273200726306323544457273408826694249867171188803725603736818842244752725568759589597229377413237708489747313675482593582670598058852939117566529704351003093506303994127693739035520036319149609300332642894198916746086759312628448250325814530209687567977360003463239611514244344932476143128852702940556261775449678238138789460159820003973881752519391930689593540693395728594786146789811887246495263765180271482223600170072988784160564615087423758042580408490059101049813508227246034545134667295093533240508124293605629915369544228873736204061553498453498252501471180712082651556831261942757043436903797781913355956897524701225741327966132436691288411695873021405951215016537994668484240869682897542200890819393226962460434951365811491847424764842177892575947467295745383253719350049510227962427825023577765376227623023741043256933444432105459042350340917633598648703350013966726107175150566739081547355346283871195620744509547344477063289731343121933874999390413192878891352987861203151606999695575025142388786952063235282165255509078482111877571103331388179854736021006064807121512962678906185768466565921237119559560998935910703369122560932036768958879944798638908290652700205453372039969682898928384019755273398992116244455201859614178423342701032013302470378228162764857308844435265889147197784241641501209293955979326369306550481676058298844729895770778023017183108580745059249758008491195138230043844718909342586605493988552001689224278287471346459017586509821147505664042468469066318301112876155410064936238802730538829307719355205441634111032351383757022429392597534909764314217093828676950218289200208371112585287376811559246481824094656644993383816177594349295065135696843774980288824919569551988815694324873210292553708174695836166242791998845399476933017202417859115800520735073025067692106774364018992056420646716856000847257958702597147833362404317315062233977059120200767073391560730389788033085328823177697036364444952023284486661954355389970678410941323775984491916204453628804669746178368130052035613851944761343188659359916307681052846363419842095853935611947512833008705507014599184264820996855134938951507903455415426204896879223975262104677616105579948575147624311346352186781494335894424309968788836979870091187550546119748629535489034528511392349053904251790503291452033424077985998061732222920694403817441062399856539364441324968406913501558663585675982837318158334787287478978643557103492930655038527748229600509415181126274192194449123752358003827805517466924846580753629356171731774322956253440875788784846030330036690637639827109635511669360798109309968581368764942608576733652430663842119900218064758997281239346257620591190178654477482809266955325196261845281259932890546340039916805975188475813860919628363367469452618374275550311974928749056124117804040530193848368449451835291239462994941110824854373483328587292319845012076809503961213776872305944650211064060593492498992371597734270564577825475694021918764661953244358738109273495054466193155787910077367983218326792004569784882034468579442012448642000449704110718159548679475254267584279330449577634052439789827196297362370140825295837746806428759023695877695047993570660561508421487178649406334205651205420552510509328141277046849784716806646106281502799230447099821682544471175945456361963823278082032987941876369698495643063291681789918869372810026729716933545180647188231142765228739022444999392908174435138320527101798848205219142044675427188411957247839067735937300800039841130991787638544400617280719007760833175218174492093380024905996375672336933643931826856105657248920070877172610298720580940151702326639575340723509277016196612971695194363223103356923616566913548771412142311476740213861387800394990809975754619519893943549906544070941865013181721813033856648578307005748380706354781725252157583615078428648320229859418043633383579147920189153279805429903424608885480038816049286243809684525884749654561349443464412066518956853100219464371138571609661612469749813579135323905173135242311222866664424056393737586097683146437574534215137218567200110788912425544255563222813868543314753019381280643886842397722828003824578376366960490155826375150823562436267136545903944343424265597222376501698609185903533022418580478043381671075594420942293360621420445644382694786413364006601382890497216474029226920333669994243476517314364089004502012287921616648633041135997917873022648273691401465353129167287031566882052885606742548241212996845760908374328596323416092451604709341345917742119459090865641588723053668120086169758680792351831488550303060324476460344342000582557983260379304983230218229598046215203639472825242912429177075057144973562483917841898876285791935154170155145763362539145482181547300758344731726984152666181016336990182423721904427970042071330911375846082220686332346919365862136881419128857245224421779919982549714984078525865190552021112920745209682526263587763554017727496571208639280272958431484804158945429363820054263230142500191369379229003685404990639775765027736347510600819558975374871173510484833633375585285347912708144834437336039384544623022773310458373406097676303188292729446745795392669637795398842431455884044866293383052396070296261724670856096723311103937408763444990625150579452838314976084512615234766178189766692448018353135152508307513928200547666946571156661219726967829301033900263052504548112856936568583316074283344590428902108668653339871160417905559785358797097707188525766763791273820162139720855126980767375530258139985613894169603870846448477897176991343358435533903285714423090102673335710334447656749011234320109031039579531005863498236412140482778134600741895695848647981611134638708625617762653921785635254850645655089568464857502381512947580859937050170535609189104489795255071966825553598764086520728202148051405198337518834399756561159094814072622365239437531046059427524667875758033798776866945335349210110858645495861335957488026992467908427636363367276055508735455398172933828840130662351800849827866228191831824968659064542727613494348258823732339102702644640283057671774021474232039298339271755723207896282208946214158705380973551352566328888570230230755296770193934311277781670316439905178382240628836076637311809607058075603974038252729090999379753901013651632308454573515646622837492617365641551196152763197425498068179885004595055934397721034608886481289603076345114136295068778974058472546235158244324913996942719821767192925161240632794602179700371455149187663243638472850904307488556000546801895663860869273200863639062385573632065680035661661483800156787599554252102045601545413818228587646426396074140558516049128967824212420800065887422458130264110275209404280614085247352222461034926343576694428079245926293157496572871080546096666473121335142851550574076159505980743706651315066174690324972435463260414161532845742019190969590399022829776316861639984212285083387104121008342429342855043557671716266648900258300637544894881949012460499166474552086724518550939398716793637597472470371004995631414921710047540474611831279138397175514620287888963174023009437295590519220397056359419943237279093700121616176334991077537526122229022218865528380540474632551284923092208891324045484410316166213004189466034294257583850628775300820680423184292199960002188769084145015294060352288392008396433038637613731634906607063487327069457023568664074993019884691194972031998441917081614543076111993755247041206055370447037168345920730948330452286804301252609680309179064525025634877453424325153498314204911277660217909267137579243581404811554242613974184194929320155823488910655664689072453523239124785723062008969281506377002698392087519728193510892197858574532822233171303385495174184095720364770145372096616413387666773715109029997534179562366329479781242921717172354860840705321827960321870780422616092456638002064442707586966642150088721129837454889614204145595053819355214964882357333456538677004843441417943377420235470738672303205888213494401435464686387238150956789246719144652574529925992977675148555054595640269172676244926655451222583047095411044607439081457665946397099464936147536115518352677099877977417230441787835019156874831069172823482625096607829722235517900064788371535294673386012511105493349694403947176267951560015896050011822500999297795501394996605608838811972916516537743495920065345579216363282137547462141846879866518946901662574461736712232622445037141879039113797839138206983837751650287148310590142776811446943964288036132439227790081705165401035651306510353470140443212358642748508325751944368920357909099613366134418067244788154314421286786121435267591246452637748615176078538661089406960988390700675501764445070488304278978066797672341539090135917962070161851958965661114642536207817007897488829297527861380061020425582281566023083087040689783061710272894920332679460851341988452744430918619116093569231228963967304186575085488832603772963386097871690222619241834687775770564309302081552423283576596291260978130005420269355893646601451478692114334613998031685576963281936924819424595618646879945842889153992999852588158645036425312328035731589496097400690701268208088319702797946229524647370247324979803632797416721815028247745573870425090894806156527733922245271056938463652241740773984729911725476676635317349422456646806329244645871644484956535295965460218283115656555103451555273120012018049656650392104166608667210993774947611325762074629709011004606115976815692945631685060162383977803578248596140307243923984026086734076367874898490454785255837549159592658450420251629429649640089250739988126919410783238527071782447742304140562291707991073039457929231747022370907024438528001273748296117528566063595331635687713458378313417102775112618673883479921251481429300338704559426209305630731421651228338186036423967990215226950540351136310131473395507590008947367971721268185555219598474225913871888667247100569994725477748486943840005234674212143954530540013365575409099377214294031845072423854675268846333112073129854414342228247965139389848866413200435127289466791709015008066427427398023922162565211231006519289772346021876071527117332572323639470071643726465434554390029484950881128546789432403524480456521801954405693703744836522338437157978260744727432215717243289772802672448079321301019062298529855750614674315647053189224248580212168295299906661218767744900049747908563572250780292596561879779657525294996660259187592737962574554608602830554699955150493860065171070986372074603445475445607693236330416229592472374386213775186871482226130412799886820516383969925381735013398015744570483059206557090864619536529313409985891904073806321785133511163757485059711505041573002323768116121747434271593601357411049352868125007195547769509345930898984677647750294885407968746953550843137839521246018203426060843327147844209901827640443751534497985438739767354458557703743787062912532806199703748843340475994359092216059595544312473856175885259553856105526933395290937488923654091429037749259710897267794773159963151122004254603039790121645842073113670976404784921200062258560482921093215961953368920831588171271532347150890347421112645702603325597385891130218842536028300875024107856669726280961980515036854293502321761226379561578851423210442370992479846238002947944166179007523951841088846721412105754698381693044215749443293985780538998599925067177282415149589203623961047359332726154913127733640536787098040187754136164483712513061003468771311406049336563587593648596582367232417123899856699692603444966698973340874935173682597433722499017580313033532414836949717313411748961804693002637540872370981480105524433483704112385180064195710018677134090875139556899861307518421927560348012767460639121579098438307598219241102905467434172832181730780637823414246438737431443802670018089601793597706086820063688057041127224677333293225186652711662181802416237150425977853435940776605080198466089557751935470121600662783940450100026049570207713438633537055931702932336482410613682444805194947187862260595956546216577274966336769815336301687151245299892801231031427858093904282464829326300713536689387898943617540088530975042424583633207371149956176122861650919479969449516258859163091905400959500673571108721865781589079441590882457091625001868950375232420748262203888343248860611658039521060457042657465532846008725394874694911515014842301752583523851819722824103686550034645866385341426656842671778782117622002587454129529659971621848908967867076358461241743602431597070631128551714350976680433748810208223934701729921054123774483362469151645704989350617234866295378163167056970666528402269422690416927989812758660351464828367971857642431426336975682296329092916296962669147172160078895775444914468654811589873679461722445434881144864459214647705966770625942838413581767661842135385083491211888387327187622090093286508595352019870042259262378874374487118755219032630939374846035074641441256179830302407922888033324188286427195996796636972756906476208989492555997383337380698696755498502053157253706278766641038382780373440553713846324340096436893426231551326698364155776084119641810306198185392370391425762029296996277942847409514839645858500642112280519158960155691637741857061064239487308014635791926343196667760973593088707153249554324900806440931553705621785311106890237751028630511674153195961870403380812580622174096163505865808196768161352409393040126295790993419398043124806732464643176167287396239932135251243148141070206593101439215176216866438229914124815731826784694290777492399318524685246001726732679108506142435111351804698330091179163460370129512933190272001365099617736292841475299115151024887572593870928642665699696395825249532801686945992641624273568352703032930105697055548960486474040446197155921604932005650371986896592150045757406471825265798589320706610673690684155179476127395073585811075624250215080997452291471114667473509630863541410765787053355693232160105344043721432242498184634898305604255847700958582800963074886996461439697725625406117999260988211264767851409300912514464071283486173619234116909617248302184053330803992742822025661049459170079052933069350069496361269269468163357647669885864952586144744512446205765210698458998557130518563042603333484195487923780310686488779223815778533351592621346170110029631252232073035152618289500778996350391777366010076206144579347476034216421721718476203257123728553432187132585190439392110626149928437045200490906132659861960972042805153854999578146824090734934100929137827160064206991074191528369363650018553815101213976775039694535684906159710754000144756195615226348922164259291046916061664097387553965989724603920005249935804733865189333096665643247138237994777560230876800282159283563152284272502027428624008404893621233226171531982437910971653253860321138995862652353680709119779833213544243999083075695890622294412094810733491469947112322837024842703467254932695269441268471313222349685158462544326861016382110201575531928531386157031893804495770817356905374404732302163931373589266358384944527301174332097659679011632860366380615480149674506878877509012910090439288085024908030623089488705758633787541363270622810818202993038724030679266219899316194446859430717457309352136754509729332065582311370607271829055570805532933164934268781591031619331508066377190891177124475222137427067440871613616816268938631021210455855331729833018339408204921965477416227323383331968213199711307309487319339019890464119795891311430187736623238799830650229375430114314999400550415897375780071439064896352316720060239687307845880102664544524395666843919771237927203215410680193621114439828110300088494882694835290429162912563031470585365887301292522694842752300690505068701527114572410876564487477192920810482691620987854742118327139498338495438901772801929310795750725320875920460018125058516460304036938793782592162500580564434386215937793808385334037035098207238960362047832311983087057252316600744025315485875576123730827718737315028437254964421850411322130779147696661578837631709549841864502147227526298750839671903108943571133634121562078286218770628764739291440820114247004489670515858746443941398880812191938986851958277868689190820537672839533086098338614136369321652475041018475765109064207373081146618047360894453880226360599784553443367538467248717308557166485719122776955995755571205626295615455156401342406427087460937672564992853293642202760784362535607832091925029700871938184718493574009712569394142112983701058445785494100378349787458040814470387253005852356181493614928148466301219177724734755654329035933955290740270069910360553642710061658572720799869154854888811467990163581641697137116028817096076876623098536715210940779592762963455614229718500002259764970627908368612478490741420675496223133580940929757469710211492432810667654598527072367968596882797645613823634200645299240677937485564249097671006032886641824361551723412215647404011484645924507089085018157212440130620503089837287836922349281970888507191397868544270810944467122134824030462516059107999492531535273076561165233256453549772472696165978903103605905262824224969590806538484722664101243461345550973024525243275519408519135685779415774202723787268891488242543574682657372099411902528499682307739501569181556225965399475912797939946517849364454069400456159584316653245864917684874121728002415026453139084248919470346066422622412786264237982068200006811237074208411167728270475541310866668003682465345279802748335931428658676772649018731565673907229185586931856415520948075709565033540355916439998642333984491588727818098431561883161659391111632056888286656895939888957669381827871097746763397669559284637117204734169159131652337057091487155429097434702942296492767862148992030105978221861279854876505577007664281518268488513758682575161638729318879984419830635502998799991876158626531911487651949618260685065545219229530264521463086937273781980994438957507992603109503072816800959354155244114390245414577701897407035882873863673078501025289033158571876904565644712908054453844747526712920735351231452647599076553433622560875897392280267527294548632273849058946983004226664232609004399006266365682453550762907063276227096467877354432499416468637809591655062798336902087187008001978566181090023524423512394887424859699180850149732156004768098916229578552210387621924118931649130994823959166464231264508861344279562190253299078952296246536694867633321557142666447793832259658232684034169955889572017841249216310187713317084092326646315405543077728141021882611071769574168362237318032840625394857301494671765807975711340775125172776414832649079226998143896905366061021200266469602728211871599861181138605980563148800552122362671278722008790616424240878033118160900989367371422770855639694803719054203483106874502001896082921084598808149954742505220508160443108994001206736443186565047336229868769579202936344793349169584390506748323900263497513148357268319398580830970724604493521946063915782186200287081443032726638770847609941808600890797503366597009905591833715548449780560397167211074994263794639224388456143820584630246740564445934347758207240788662290487916211437339386425751319082054135737968618731644610593796981383561191346549346227977169360394919920209393847017589674155165942040853459025503240487824597895147239233320797016257972370885694996734626977946583313112620068825030834749457078894565159271461834465958136241124280758876486330758239129322874969708986692236172924041695276669333335806975585440348598812563393522640343111656378403230273892648520882889978082155798260670118065380047152695093783894638089226976550599879632230545024114934044429375393808246701958164803715834682620344347120760032592241102383300424079486320756803067096051968885296496963158499821129907820651443984721921463180635126656107102764720906434994460277683481395195288095401828046080154308051570635256024169242807584875609354750458130113075829387903003449924797970432918537364150384158840649595642833643519679095361133139425570649516559144771000803457716301123546597896155842357269774267186451517555893695412651098000573970574168436150051093557856370324315487479242691875096882161982066261125827573639298526719840167943904263409990895489804573614161635456817993825092008601694820817034668106445633448593091777065968245309945981284332909239034383016225275976552819780528671343036192788860358461499543873545979060108546808599025028812767963787689577180426326432792275144062602020172171715329718205640739394014888547074596252801286141416526988117074428335796501726476370086003659699673699847508955984184886228523557207848685260027773376991088756709812979401231435724153974734557627815201189595776284602724328967869314333413027243792643170859340849621331781737800927804837596839015009347534101290488551180389974122054522826079800319619122630507120071839417803516077923671523897893695464418370728477106843185597242825136655183789235809773302537817514576947610616312556617545980859815516466752569537686151770462139989772951493502431603878727366735741488071427311439681200544600098217697244168803193629318765020237840051199624609499787178457040528291970769947007779701286866916788139898941184351134804551836001523056169566366415739268854868112458507188838158435407836369174876570529806814950188770187203091580217130700346606015276242114611521993810745910870935169317535105233535927858888641321545173328635838685600536204677500699533568209278861733113002466971315787182439601274207120519603467942854757668096082644808457726492521656508400468666143982615966769044118382019999880971157746782606297656871626519341243473410600329397464279818406970452787885614846009078614336796461452869422995270663223257449784691548604539301752224620088103358698521727409839427150125589701278930359093137927215626367393696496994008017948528570328081693111327422441678651022197740835551703827146537372522811155033443135498387856967786561299599480513588033895926151119099095525446236370812577986928261879702545982745642896848758609944546577176794221654798142922228953977118085887788812558385106100185018104438429224923860534547335860084532555448995054830529356824912784358898279345016885230117529304174895098099085322468037829643691870093335075116537434311387913918451298596163567970886141275086345839762012689715085774025833814682101492160721553434398360894299425224609136897000435149073790393912361337162049760500025945704650199555318627311030811379826417722953866557685758225466146498245261065868420972550229477229149019788053765665187023311796542632041155069065338475726347571057775019238844419134943421724948185268455112179334015652640081137425670529629274167555613082548227838786889024497177842942997406124017244915169982433716965618076263138378862511018055460354175671711656979711258449344577854684584030583123839387698785794004518777127603705011889323284565438904279719531198468774064796523663361966470893882843852558704902610591447733832259713142524514959944644421477835359506640346163723704442208680146670482753101895114711240901215536570136406460995664458961912109179312866557959165745097077841479570201589388925334125262294645067308204521646677580142851392563896367033265958379056877781360484086832069368367702316259255625333768459522997472051009873817803662138874238250216541619977866230546237606315537049404964528288065842209903854847874780188687690636438306779105075015108143168035066427859726640758702803167227405403411567666825124891621268869179361473766387843533775884673522274892689996552931372673079182049038097155261615071464517970444208345212692069779876397247957230270943975884980473032086435688885541360501998274444715313351221718800338518547425498024086682800177195497774713339085644505708682560608361223557090038541122061186812548932116240031042334235335617029456918191627418549495852380329168467918957132174289237862953114731300476421524879768212113371448191844747705065615331802334217198837834715018363325008131549388092743451503267318418790297962385996739316948029625438343897379248068529100160535423334979730578387544719869178451600417480983877554726805274508825888808380314452766590537798274731045804268152999576690872334761899978321788985669585636238222651046725052766898480923541267353750590453830527493547460893614339880737791999379624980951971860279463997856008733181706410494886437821918301779772230563278672260665935124764082009854905092524432024278096292850237450533859814961522227788379845761941272625000085210164236829845598729338863481359964975172645445387040078467009261434436298865476604999539686186851617326133285498326521906102301932689747451013330676640118741857576993215011189830291027460550265497224056573995269685011890751059081098844985182881843133617173190962917978960279300866491626046494046359164727000891485796437551437447683969319605261478722115119766105589927616026087872980096806211788104363737323116181525128318816587839115601337499214053725491575126381487313888114751298866622934639152100073723457753765995886120663365936322146925919339270885165315520184673229726626748084416930305028849942756774157793238494154112614741779113518962619915242006280885012652827082214983533625607993629924801667455735842535603516879112767590063299533072133685213748463189049616304319148586139228258842911869633300936379160257384350924011520517295012720499093837779892630876184990748277089824511955089728101310524972025386930763704204641140522606972709290425800116848108400643383282232979057455404121425693797705976827091622165287767351623893559058542704634330660623357355112919165346016939230947045339504679226078374176363780773914240508037190329206747707596678565920979634567572340571414022782988867999306458304761851336473718282314379966252895443611332704013007228188570787217636674254409497819866133733057604349180545892955156118769509537244119644792998347535549271888737993131900291068681102260755458100500364635705460293774256395503067458796056963007224491183749379066396562017492878640201075720081131819695680707982262108833973254875473530143564234384143432294000548812608914502054977460082611621565283444955040095165016936501172196810874957891196324898609377588238494963769269801558959412283011270839663432604515192036315398053955483515720418743167226638018510015036603916692670808433786133555787602997119571255116870802406400923519336150764372227656570875242058790683003535551185909866166289467634246140391290637104299819065743917189018713304195135832000260895338276913771701351719759052277562773280325806971702034556831811088562689155436490780134678638857930736917388360594980508685575991880179156109960389075542233958797913887542456504808892178969412458427039485210228487942135134892510325598662223185528134189899245699331988936794419558126210615288610682329667431401983419666727776821912796175293038929196668265232398200295565128603676245517103411363521881920145567557183852502278613528791255586482388266692453718319425862100396374663272920340116155765729052150795412011423468924755148468861851759174505925558164633296100098332669429444795756818659599019996225139343297451740205973087367721937512649013424416960243681575420941523823294782002270993608205015227365574426155655422389917474252370903980701782114669144953358773389435730791706059545348017172247972772337518579969842367771429052367296823602586279581844984748409490698081108735709263795529294261661453257290941487945300507567316996504031926822038859102390951790924455137784466628982004629726072318786489424617980467539414256213827382451082256946263429428197057591978262217291245109629821563068126067320333912279611382132701423589153035619704835389620644914445252166003370594880538448709316912903244877175775582146470372872309081082103275446768465937316283556370909964804167839969519557585325031887881540482879927098170838809082118624106026439694540998825335665283485528635405905806816214749077532918115777087371743075936133601201030228524443369524360854761915635142739177835472752324635337717979353111291408980687375090247246739202135775827568681323155952840046377056845099350791628845360136295738198743083599798161323274618848743080312927349872693146450496689687231779966917623492948101858926285673559012635136715702236025848030987366034035508738080656065919790646534120794520368242186083796954731845335577278986793432417124169595400172743956658723805130390021295720692018092209874771277683842520872839673306862545230969447788178754809160013697622755155956787964333664831302097282331719953505430662617012426394074821037261757984860313040929731457658278225310054801844576199952060599810283822620735740258211892383384662791436206132850361591908012860210973681787349668793749859379296541541075826179204271079639761984706354373668307184438926650773188924526805779777409936562297072268152102232463476088575729618301038735596831621015683003247385722315981081125532064397619065852809059972058688970193871644390198540562645647223271068506315865149504547970029501836191241449788794047582983797336985999108424904115504003195076446182016218174728456391977607464153036923495789035387032413040138853764732063596673170769570641776085191927428362603735818874400731039663548543696541659786168820377732769842509580780271237660083854819300078789729959450965907343857136548731985916626132952545140183758777717129851684536806455337226051441308652629551904453747950124844411070489323451713895995143149233527147321714901720072680343091495976019068399262185420023392294098699094927045258578662396397119213478803247802052946787257693971907396548796619308417150311160584281245194832594581195201182886389298943743521568860212511109873384560168687037937704014148611132263802428539168913859504096468018401209163549027947991418137467851821979994837589381549612412598119181763057895894944330756407503920038544319358817742600884924136084191062542904963986045515770190319022836641422334508882496521634144207488507603875272208768700247253105843642682577965446786833320324076582881561472508505160797448127493832561069797262022497562856905456367461481023391199396294590809272024175134815946351943411780510595999415689873531446105033796199767402880290944408550663206133667704030360141059324568185172976843790437858618536740978438754018696193676456317021812738522494120284571944468911190169109278892541823300108478254798603916490644466998326262182951658613902072924067033292838620349081564302518870271382582370344778092743586732969897537276433024553402512659347816320262456489864306080954171392346788206236269062499969256266711830629450660329098696185183648306668499409305499463902554300631759427495089561624927537460141205683534144767118253207258138731074114446810730454224595787049100942349360601191875270939736270416622901208970840043570762545179541028331750534363249244636181424767189174834618580106119956631429804024245186212458194588899915865570428744405321305780865605644991945891773171666386739153472341971520931716169080542996872674103861081088303329877787802264375197810105449004463606213399875217124742621867319853862818243355445206116942942645198954814621337700235541760378741416409355245075332607116065258798905854820885544410723297173532540034344623372799995453580367398515556057231194189003020811298262678102964613698771638249023529474310791542102866571220325267240606111064807093321932508570859322674898476087682567737375193044178901188947854515745667496405375996507955507003388276339180614046759448839920313362155467006037638679981625978417273368427789248085317991152394908046596827808174450871943609640938924529352242290615099655461966913291740172056960462539977846614403881722140392865864067961780132431659955432221140964196188762571193852457292371441340576159531635311597789171438154097339044411897203713631500778928404517695808515519972758747287069520114154518779601899141002144462403584262437647449389155165898196453836662401105229446239984202907253185135098356068193414014517590914959007446906938657646064519808475739069877487466185294481856893500384457513031111910030661373034259302822186167845600970769415381820394323438851154188891221861020650877671801060251287587989226465685084423389969703653690332183738735802110803074685315858160295691489421559394889008200156072516291341197615616646334191226725711142505060907616258937916861087217715968300522375949951867930491126004548506348353283338360682984271329153055566031694096033356475826587243482769270881217941483446234129653644103377658773632078631579524825016002748956759607500060220986931469011008955100444897604148960763545994915505508648736449786787455718380373278645066488722939732731551689591098641182426917886152354404653739995797958543392411267273147927519135343314521646409172716083517261530806497182657003068114887716193999068727036820826505407525186061990238494099031566337357843810805593754342632605499666480830865538054389916723208518674237703626823616719114799868554761965077035328075600529273097000999196692216583401219530749710096015792936674545869135166925447211789327081959372986538761001276960070368157414196033801526136657181796341038192852867663174017992659006851957113468116521530558363496065406365415096462690509262688027949779507662497266660328872619107837705024737750905191066926793606490223515256712702133814589588812554876173976795944034080472885749175960705856834412821504133335469579941000877039955666965698638608013048766629812377953630110883324837695437485354951363441129820782003778296854748426441332380250935925167924043897497213889748051202036069051476460748241640841074810637221297293425624847234054386662104773701636544216796836742980020874899792745003721871478441551620541637863835616183952654469477004651963852171909662739344086953354506163477082820689779730896968086128077511698541603132630220829821163940773268083882781093576383730406288846864999345202905640515606750412654997556181540050174050795021074743976230579977945182297846109161280376894321936148487955545153458957746675689700168129210042582814613697133877194275682913880397132471197048840532348906307102797673950313871198320075274561394466326112855541646143544973038666829017284698816928882869862088691815992000547707712678031497398703647642479652867486325445966573056577985009841300082351379195164060421031652879302944500299096701023311684254383174637972373619499723307661451954023088028542016301891211869949627250799466381765040590543838858239305728586600640543393888396348145319553656087882947114484957510668307127999900177778760738121455087784638070377025409022299468868713271170394290399828114271090396968783943044571974377953544719893604100962360443021547008256604539159455977891824293806089021581340503417810730509643331085482069963563119578955037709329520547538324554226631050681826865474090678679677285388807973541319885861525894143508123055056970166109275339493262961487153178649672521057057786049666248330234841653295778462133735219247589884798976697403138048990032682462227932684351621163977015699094296228604019990558283116570671515075122042101746169906773997548620647933755754337187676760431182543187722894496239589023357147315516230191799062217626180054124434604580310792177627573485350058241331460891058673167007646926735665519861950960961144972050668348906384743376004062899634877218899459757405103329369592589224180064720062798078710136277166405804953757129701344217266659238687354186433959908430323381396342157929678460615787371306792589935255524596115396050986377310118113169639086506129290658975376107939058619319575725047035748247755437090733039600948922531486833414832430219186733282714005090309469265065929512206447317341718258477283640943764119532818390338104982115057330893937251550291714090150758860747634237585743418783355276276308304671731417869288194548033833397302980964013021614899815773021443456674193870387367576782923897164143759446044770411795540926959951958168421019905556643534599142944963991255013394783751327853898732208129036048402562085539168562052705040930080211505865379293413730986620051215245211660107741091250369630638824734487124303671992804631549417147101477703770498970196330721937340983323236839132154918366738366060471994042125094716350006671490941189222591383403444540145659563039092768122964132831228073622470516082323503255887782909593734457371795819907005946136215148462750838940427725518899364758803194414277311983780890282576059612335467829599895157040847556139951334440568999659836258761378372721953931854414825700350683463657601562251053588311280732203414885237737675996089533648827691138073631470526974735366642056773514827279490114977208475965650204667736721949253514528959148441926510018723254876797317101157407773154291291806213627949313453652667054567911626365639390589092161880880016652056876413147621769226613158748356436284456016978426348221203039652712751352590718045733380891064922487246101870411409492295781126295235035609967751572563885125463622764354096173091799232538674572479547313547256852716885477843231384843479592453280140975355369308525873746069802098528655811998788451381218288626574930652338249227274165189787321571758934285362445763001104499323031015158879212039312629421203505126049435896015811424043510951952285712837790118550301369156953488832282624826424457255618215196283317550729430320934618223454901486668332428875503553953245093786653833585477101095111646219906453075559411007195874287783969856943461481560156807113233211364943083389195550175291413720978781255224885712259630878003709494755902695843551462093490853801880109848020900778046062696449902813696443584967168159668696757532429687534421669032575270568259103681480100309876718009000860784360156512753555289174312950558880091008079537504160759499634314934508845610675320910840631267600737928724006676923175866709386526960492041036382232886690595705259641886999241795886201375274602596853789799364175560460444165730983200270940654470684242134353740917944870225731591938382380440539979814978433415655998276522117894698728889971104622676272507527273895029421583500641081842013457834291050294840948556778981965241911043278706142672950910131395675490305642884316643111864569378953938413839746891781930292414816626048246753036910176335699805500502840106378139201955860643874750734716408965706389659139399315790652754002233390119308470143746118809006756542214142414043196018905740509140277381797256581797892401955596793280842624949895125875047666472286973008295884770432347971018195083175609461293165665706900327296089015186493693440611380174836559870339559709494853360574107077240918365273278409671435839503272376142775581470092308876323006182655420945488384226103133111914202935804000583274614795500348558049520823657621558654926445829117666214635212933233599767541474986947668748660032217176873822207859281245527092115084934712994556193627290589127260524787876174142600665970011379682414788858397264229511024522571117536531072945883114086497772360988135092786683569882133899628675532467327386965356478028036209535094187638202495942747550168241087266930770100920488242435116224930898056542984121872353086305245294223584133113112716328017396247919363272265771523665746318353745483919389047057846355770210170550118269895553036788057493155453110186841958640031593168936143617667385046749093960171304041927140341333775910763667734926063542249448367977366753925601618886532398988320736493934228949684375326569304267887581086931947674241474357445597004967905118443366674057961507708775239391976598877027778151462416966086627314348781045065750189575343783719337701334103232965043224219383223400228128588377033290347559481553243735520895715523235248658605578581180956720552429728787119223103850303066535990485155678404808767321148816503709683168776630782613706265142913689016286050749906988339783219016073019530102530013651399700432183686232843697037287940011986104380817384051180388273671793322224544025903317985393118842601436380759425609932144816013467782688612605078752792667074894026186189509018338431081097431004793249406639503337766418802592061963308816406948059568767457559455134681424344484153077600652111331460898593455950390523157041662637876305599077912083720619478204203491183759407731237890271213766756113219218089669922727217101209948901925222607303829323962803611259439435461083216161689827601472688496845902386377487805357293844931694451420546985706612222900275732941923833716214505718103747503779436673196228364184331872640237205139226126003825790240303335181881182979791048656247225991985919272328980339044406579486151112879746780332548378716256737944551906569293995692194236892284175051297533170882767761775191912837462516779037358649392814145672340724878676147687478884688299839382365750277963294009075279121078895091352557093250409003377278666274256827926576891712564867222175527885813262586503551675911999688418051513290351818722354054822439802767901353719459113424926654523754120615399503604191148223052749128602080424985109952120220627700366769914477661930122931904888489673910843229555489615556325327824338253958792838977408501264861925553387956812113542017271349363676173021425206237813000313136691172462674364779952052716829421529087150641891404124576474918260101394476349073487619747625935807158788312407535559168354564044382555092254988699240208050269640863571368603795032087559964301166364066571778643547719444549562633731367634889819047978888937161211760094070952928666388418096848742867598863748201277477762844438902091749340838247550109890172442918862589133735015081694647394155374297389694694401926925964770818986591741549956389482638166696037900341184882971637204569917278760520786314703091916649578669295474244740490731223706596582837632464030738995083729906061135319930985963488434836856146275366972273423478567139464747893268802494255281202766287460155295958176394242130209165179528416271687017806357481820014196424146357719330706512784634446114279790613144375879041149875861487507320651554292920203501229251192292034039071564117160679718261712380012111936638648991420220866409158938627546284887583168339609522352537157901389777701220666942983629548212284877470441026783358744326699570467877620868620962654850871450926557312306898957699479538722295383707216362389301236439297804592215489659330660789769900346020001415941368103671599895385439880715802856560690083460207908794954954257782704879091313579821559547287209271895869533084227774892736936404304446431195750280626111380308715902812681015965489930669370243759269355827440143851699922548164568011500337468889846843135587681027946599174786089933176003019135631105368615278032208940343989613760937712984067469992210944388422319560194850283909591791757243688733794328334113265326130759513948532252829077257915960949548669688622226601532346239343675530754806444429390622429630275351861844460516958178776658462874318498778061273715256359811201906908659878326580366077196589204540685078351702554066363201384650052501339043977315618295332343671152388987788321984608586903669152374654062592083512125990259379653980200465034968955422565503165223786681107156842831041117479714781203947345258536531572705250463337426395645539434474123346979571875181721766883260909235391563967848856772027461359175058061242575789527700387583209421616747377728436268523526478782288054143244130460847769064952095247563489607026042745833270130780979797331039488266039387967010645754003857207170668278414832298676594487118441530403483477805184198585073054385128110227823694225386159181294682181098660637218942022534495738008693317599641747051931167080450040844284720093824977427010604964533680630059030190063142665175358610132205044857765474594596713756401285668058688836655607441819366712010948717100970888613878360542400835425753456588211325631702287260194287710757407230811020101691336142216275247160158537767162056162026033954557481890733372864507947308037591158106240877655507222831544796844774950195771366036099103785002726339877829113078646571247832523365402468618726642634655934286274429625616453648717678080181439185429745033904174925459549782455057775260361175637815225311106245291282770343590744232629388550970532683755962267022752181944539272164636140422073369060947753961793917050688348792166328821982736187070981577186481843708862077425117040468744030568795505591960976063975700632999659241324618505462428071940250693237937531588090521717178672836840598482436652842889559071681824155378520003571096722251127444996569559841251360221770978937552423121390004882017868260373240369985674008782073037402216278002086626849846252186736471385133855795512982763990316843985516747770596560317619979275450647185403110950808086910064699196579713865997627650973031049469209023838764353443142939440174588437212572661554262997808385438574555830988938936449700708978710549522470023764791677348833160607781574404431922733062639453195964182085593554786942902908492077057538404459395662468655716081109819245517947705780127025362241690893775842139750022782200996154677303280281699290574093439005217604386330836757904082758878736755514542558667624972049030195045043088874010265866077699667141442990663753981252761041375666321661150548632358187313294718342588326803429939732893232465241830245927706974358366747306238061726882027068069001005956561666123114853154962508414648409453999500194703144962219547481030571602905124614018641720010925379141882999316299926921445155898654802958016594416411350553013185901485433348653675194771631148387810461449825264086318957921023585045140216611349037124926338616352606168661586301862971375752015970659723629281005165707172253191793890883316776858428709882549008088687126728401449876976643449282103529200366269685481290429624265906160204433626539995364194845623358080566418340567526940002237107993323281738915626931031373622985246446154435578640930831566569179337476912720434419034308490944332867766849415804211006812768522115416045067846179204715517110496999683894253723217943791597168845570533004205255076144833680124097798805297130772568407175787726536331560542467905215234255288170614265846637784003854497836911789728121833693138687984315359959751194027239657407460753445942596162918145537555964800493053247613136863053098452210697294818960202286755811641426320052502536007401973121904500553934768458412579533943173769279881011606128575405552559095404476445769525074397876090457243777882442134674167246996597749841673589963921975718367727825966035221218825644651834669674263889039768090238103323334775852550815053666198356718134942324097718720995886147278498110740848404225913220272149290700075876922521127899091557199465834274234214113706791144104911082360665632891180406529612272376551412079810190546142258808064713064662248609590414632438010263407634954502820101370289849676936594365143896246838917887995467933886988009550981373422321686468962230125773656129434079606486828295470192761905353033639066412146321559799680476605173832941398095692417139258760651587245406754629508094021129480699939056293542299738950061253169322745751286797150104986247283195848605163117795942572887065143364952728193917742713312860771647510233470469128764965727184683420757614620904066916481408853043381575476267244574658254721292276423930759958884373780295301020901511742112383272697392845190807420343320706270262005374171419044034851299999064041048102393698182086493899853692822696679190354278034541676664771927677792585488897531666818138244708676347101132182786576421718978494132557281212723324505726842689981390838151168990833594208721576150711348533183204354505023304256860582988600611130619984671162809934064950992953915793434338936461906145921144486788050001576061986122775715697709529866948447922594366049113402055124473803173533190302563822462007868605951719568116013623601102999566700802286027680069845144302235787732704283675946589716110259231494779321211351679719987132761345709562781565450086528224925993129269469894413744601256406574946541354484455366074770309763593541672861432902584992441627632827132608168651501419670011183790857486040474616721229438069887179830969466584472480466487960547934554847492903427232938075889775204747356012956609885726019527799148428291382380476175288307191715709607875124735438333787238950220393600547409928038742943642773733295316513473493830524550782896331278753445863196962951188642422682187385218158658426506449663414168976509634640775092052405812166444536429664484191071943632964240068253321802661644788309827341252098106025230594818500174231314545866165928315953454975915081311063833250946682726474498392248750981469358718587378390222499937434073393440826267414946074863863954659636814978514395776913921618391422367043999930329187550680806713974821473597479560815490974719675459495063869152635342346545454887903425250807171590274868515361268227374788905614895163404488951180753145418502774059249016975696135768533962165640761923584312575177320498521481038292251421490382644341694460328989069770273765235740278184043517645515645374328428657284288568262642687619007692382348992745832264093998592602847387855369623981033667647034257006389756149683487718597291171599412797732328081263036826167030833870098158525837317157268872380503096001764580694291155040623097883544938126588392193514884815266236796414665943396342253036258684137426997766577472269059164156514570966831902099409737556384284539583167735978373257607729695894232952330785742731677371410496675336502127047889320700929804562731841340058716841665308688616379633314893941738026599278387149333945635555696344790302356871237693232591490837785111318984831790986121070930043648853570010217818514667478054715565348507733766108331754922961076055824289926048833357175519369197377169732962088053913660195529031758625840797032192478988444768283719778867062431154294201555073951811874484159646649469710702475532400058387234393115722106350238689571210781755811407788899946324085539918340082064456617300652651994366216594108106463499886945783013904099230339387702168125398702209557624035453378166194401132233663412720527929780177872027857351725604320463018862991517423034697284853818611846273933229228680751105603133538008935623992517206201612338555765925215679345554998692544334716489352480435524635354748948417520236786633086688745241539747539601939036436093053337342176585675968955149352595437319204429987156995268589064738032925977625928041342083466883096400883452556128250130590478353760836199798551461951176921954695608204132729423653159075469301593855109567253118338569574342569180157007614127186395207306729938229776947433864060278962068332254812733802986417760476494325981529126449233671223981583375421438427367885547663228834036023857836364718324221479074196162209082584528981007186527550633969413120454622232523606679701764775061909271405210107328481308035604382397038387357507828076447389846773199985092243816560132695421044855997905637116949362672040530988072959114474890675556611747867992223958937636887539641094542908117251667971105216727238167287541299364886135032882236076495179507796958566910445726499040360289515121616054647783407221851343905360741011586334383168611991556751919789859553012238315073930722455816860363726595933069397738082164657445581339892389640287660034061280203904959982516785823772816489016601604030867972253908835156360935474829138379438652437741044644417674086298864986949213345099019571400927472060826228590842906727387862888205235511265056947091061390020129865393181862818988072737371462407073202409053020861392341082403315580906029238592969978709871176000448016913415820165860843504929917395884546620203078592218443653000811573214182069712829885267970320138397460337880447647234038528657352178267972755333814430562097746342169836225878663999751771256103891590659369298056279782511030921094846055237266386038263494221735327265170904503315115674124333421106682378749634622655209681555949557251639440593617449613645664697941617953972733931887331715099824152202244308378971098149744536620331492796499079063220641434847468121041927016386874285863757881001336195266435317211324207451050712363830325821775463128407077516640807506685250148518498563913682842999679356992463155924233106393705512056774856135594730939943475323632826800182891107192194899831416705605320793453842315586016767794340866266149867087807460155358715081160148552707020263166392221465023700369335234265136565782669017204952691811935293116542464578594815937180106302474326867522682649553156007199933075400454718997127690366624248245647742588606651438166982384885091850275293896771280853018002101556801700769757375292369971299578008723984754547175930341841321787860288540772215143201308049583174373590308128997751831987549736961005755213227278909475333465149462340670576830373454261525902069404159034771857631884091270898258346344263080545486743725545106496937258999580478882638364546893099995968284179573068436400017916353147639641555108437218527534906238109163086444713862393654980480971418353700167689823455655089451067700592840285567767305895114185165393386241815436940769046329527449105803324064849494616740094570831646989802472223465398116572489770266017086174403178815352277592919434603049178601576056447017128753343270038074029101965892715651380890034058320496054964908546813339313999872328628958891318740779787335387779027701707245749950197328176539767774563725245531580325557435993718091461782261019090742893087717836319755333069992142728181627450831720386332188676055968546708198711619987095659797775874051542802874224806799360553016097342448660348535784238474570809629645363482295548317643598318886781989089202163829499922343212125578913053886489930073575774527161529034363444156170392166428785495269253964772508435280176770599127085335551737406208653459488672299018992217718935244457591070517428408599074575026400845518946852686421949900396134263363643157223394305684356723756559094873313002500599075445344327173464469066024218831805586901600767011244468306905478400531736770411802742895705321629548514590506294523542286255143428907750758149046079919233870225713969732068419343862347809139940829954875026958738427728946681511602308968184220078562210854387557061094894626700405760958968563417644802200458032980689187499586738018094255751455451820049415525192917964847250830460143954236932646539028869974662918848347269291953655466561955773530108519283992715911650851635047164966079800574993875703271969971971881967851679249664656951280611165081921357693205506375056315687391296722960707079154144029403033467346800127755103188847812002503848949980564176031189583728551676456699422720119845238062932250181805223528072262189798546193247284509764693132948988435392871796308491867075289858436041757613601529065150053763961099500683210846352805206987680361754823809203175735034671456519092871624311550837660133616835586570329782682207965479578073076088652615855193331340107326930323773736335678631420380642039343226938467750577037415311200480347171623290107273890561842952691736085346875075887535002822567916735877149588867854436145147368590284160336091616806184395760446728834959276317168731112866034178458934727303344956075419094749515901477644875269062554548953427783383066665192629493956167263627439481043186441718972445053615601670124728000708244758539799591173757454204060381431804817419105058965289584616171319238420256114883887304376064219356103919985797805998352244695581417902409266861152965310718904329617731823991902913310595427534193596433369916936422468843797903817205488164366997619105430044447696575200883069589008012319196565699428869243298222994454588899965375043480141786810920492530834217423070337987782400238736934318314989074481510240456744680099378187618639632642525634791395796252759362016497786319595264780399184710638867433230307579181654550523741227239870524996275516191704255474392985595267196352959337505749392686268255917365752921808041835466571622189503584384552016941257080048505423343131671022894655270422306727029744870565531745033547566364638403836080798941416963450755274963793742107755758754705076894573722850006197938908371621599503278190615160535270729001147712099928834622925464429989124643217011970586034121365487287459867860427547611566404369627654468506897228750153864405884247297043121988101350258624199502306882052733860458729456030642630912838098794375029425108057260313204472085153770971490377681145539240574887435531838968188624408406817248464032493467663256784011478179626321244367543528320809882564479986948427940725800283880598245335487239733675207100576200296386333012129310618670894088336495807046259096070261196616181202194172948158204952470961097713132719975272076982339751034165159364444934936077834953049784023166855336901867911134345160815214043844186705014622712852849150691045224287026916405964112849841785132290707751481744162305655301473050796271262609803872973324673946536399359598878364600642825641746833836596951948605274624017723481668569189226815139176552245301605365771378134324060900566397410894884828713128824968129326107850988542624710184221918124873495386532487369504548119194139569954353540774446480767737085981968223042131786471330885887262767259217519651027939739736634618563000422009877315053981603445555008487408316429829224694567348300457193192149990566170496976685889435463451053090013831889349080437529611608549353625950919165689596796494191454207126512783265342695196835407268308514458877590659897879120129503583107114340153415469103678612945505241891845040591084908699940361280940984512784538748255123069717597751037626581196262261739618036977413610970972647492293518818975181465920239570080244850937542069503606520074299516752021909812833130034662889028631282854830547414253459033633468239250464464710794032311669220766203975120325369044969345686651017910350145096419985701706197812117875850151422653528803823995276227736191023674617356424720782858009982810543000600384428631189691506493582913399326825951732305831449275480390231709190798301370452804728412831780404860293061080828079182311920398353497980881366132894562870607457459421407577302081446101996589174945083758073553451152725679982449254558189824640231818108917819100914994327462315235026291973505758143210234493626436449397929020168273689684334349911995486504136124936598162524673993100196607691092701910661752964905930811765159837713092343790307659009168505087696921887946018861727728445305162257739999872900690596243425955325667026023995823936582882485243137790418320700917209709504000818535889673728555508173463740370188535188580224060265918705012227109860868723018310767738320198031288756875168750018865816794416616821477723011214843274408349000961463289214330219429174399002025764124416054322670073350100981387461878793411645837210718435047767757811348569743481884456344543920699567265139323494637938242227228795893337555209241579102931815516336479458931359565774203656653416258975753975441425046354385927863767585071195244147761848288953331290074088764594824992296048467326511243793236864283307253835776094518488114217828435982637427344664100763967203063859443355048770630289932487718770521658601973735452509298366476736865463689805219788558842667301756266152858777486880616994096182951912093638734269692453670044637694359294855256953829083236650688050866214045838599878553546243092449419693200931698558827638290532094017019132408426958974715506081026473890123557136820448133600419200804478106188926237206783388384252442432032242898152133648548466912395360112429589436832008808790697663453908091442899265616429663215161384750246874331044953402621184122209550974694022416426327202162606686219511355422198121665508006581454675788807250540451135530784113588489647788670984309307204572980151097835465706030028714710703911169981055247582087402380803386817650281032415747676784334325196171931901416366131059080922922140744828529855421526387947677224512945061781482943249128076115451930190312314757666277830387163492877545887901438410102533701763343381549697058020887770960976623476346252564895495677299841315061658992213440540751773483460581804492127637149592913342388383130274557102353565444464209844585409206465762254942768676106172982934348723658288566389416413889947944750836107914091283882543734693553959039652836456986685792321434191981737579126866159827730044471581428215324139030663297873452151016794878169175055692090005463282347209882551035135090521127483593684677889055818737552178120950796381034240793456786190435277937114032671463589895955359322008146636344768090965240722347239007170408850393597879254731762378020889966864575970088747803853875982286720181671676932173791107444006326853127545643811172225530859304204815558360133967395119782427826290636301823814965883698588246176616820937869761396065362391835775568251423448934200486443016508775017699475043913778606982448134467507943160344390037299760339858777848703125976688971671513792716307418655110054423069183759635768653225205059304524002117831697165127342478844319237093470229239097431330209519022181987429824922958176333885985472461123004694004839511166310201009989283438693900863347621301300547573929122317747573754460338353032208238810541901030200177441380020623546698836985252125176653134518726498360775883934742555656975028729769564543017205303545623820796053568669446179342450110347537977437606862560183204919888298987083309230317098862214930629412551218474771715946021900210934369114594864158209076636098676270221009216194024928009243070818960015316256199084040911291695990458958497036508423428804152287096551970652891284959143797103754054580239067820845991061428496223883734530072253978885843043159977763928516324652984271890314357624744844440547674504419338900948483848574830297331127575058634759881562615100633086627272097834559009619829317356956339059055238144671533448409972922132195541776258296392810132952155726779191112698372198950271981222281470836618790175174445253665666333598576861145475587531343841168027731464228639418501551998464085072106258761011080435038094426849576329354681515736948122563975331424660908338157507010281448680157251172115661228598611384837300614201475440737332606424655747853855936491039820011269508822465996700237510205188643764545710755330595890654560403314206697056267053391488871450740274525291287939279609961908179912629254558389619936330991547718804159894348096491244639046556358663284826718704083207537077400215515333362589445510878422139935600226042739181829945923881775880925083879550831851100607540956785439690571636916958200012870129699118958262276901168910946404623338484565742007790284947816927073162092370557232788383708555367435718209158144511557724295527789496328370931934550206129612756847096370609381707728529207428850548184189909628194952950935040604205721731248636412324544816142912320928074596578475066184452731498230228481845809281213704312296554638241597309146488989513646897745746734867899114897075743581147076178772477969937938464204724045297108387628955016309799507732701269457097550379578819233867759635951680334463417576981586255986537239975465159175663991557453606384210837220370354704615695859145742023001839347131631085473088088539799724526258386965376026200151143604423781578805823595793022455725813295153298065638927714085907242870515425350280400728436018360620869408735503526527092900496920271592328012180182031221642980152757266139917009667378252870942444287847650863600334179175410514314249133481911604850054047091427660728272309374875107214922973854088347367200690147080587732909177492738417367897520358030746350203077176194375046516811976258757577215090645408728511285510316117578505701247687696576511379691663007088970243741217310739778428530001592298052555971995511892391238506129304023155028623975189045849452598095089264926038248676842136655529139118340703137523325096003278015424778371854433568161228902060286038495170225013395416219827390812240142608703680337201138095349463872306165739693468120569716300996810832073671694539600628350693736387438707282704742853076886877773503098319227056518910441265858103992433722533883278864849433934625918569118636731668879762720807181687171725545587937176818925201942819870450239808584518540352307856783581415812395697786274400146303891041414550356722224267744405603862763012034007310038234497708898954259318212209405717596936698407924688859704636687392202517693051198295093391990690089364668107725431857436514555317561836012243998731298199793442413663247937136269578622099897238321830707552564345965569640014963321266573691597443763027892344426588539058574258789645688790191135791823835084910278445999532606596520614808442374111353484900990385802981258248444347959981722504841140104988922332782137561618039164010489859227079320820178139317110753326881974316334014669761822501649474841090838884452776222359527062126538416759805047214259972068720949566710117298966297295327595601579320888982936182895834607270222782894980339164395960634095510885753410916048581328470418724527186702302985574571246671623175433688654597194772666218797973432982834575543076334719721271934974540582046348615617947186931067519594161601664759627939863010369519223200870221060871027125561097427388653830231096457824858390475058434994567667181312394979163922025725038413933458354493952432207514283932622162899752647788200619852162029097727336525844202218406220332092680130929891725383723135523246718466909050359358785502727993676745430773424606946565920427515756999513668553656649863654709999759038737969055066641074069336772859985548111552296178413580890166228598739480731304109654364331166167086911246385188166912103466393205576447448535473668757478081627130737612441345582352746552001536639839779365828619726947038556471800889304263734103279665259623857093414727373639635431444846937050660024317191429599505779986142562265278307061155749555008821303178355599510828281893140500438415972859752134569950436431645818079390878155515411218853913996865998412424535699702179432489886957181127552232948983275236466296925473457037829266516067538786695210699782882586985399295727108949535176422824585677079365633798567517702014751789577098953758600460283620571350622478851624993976908424203310576626770930294130540586624680691274594780995473160136502347382519958972835523569430515747489761081563843845803255110275319296470312296749399482378056547364739918380898580054693972667274510400086697748539661082440955518476639059937375435224466405513451295313232654851112041256495677692701350584127751980152677668439138255652169972217828146254815208973998711843612382216757545478813057153999929369600910737286539455362201979692631121805586145636725016258309529715922362779521970670968883524999757731224247632268180587691659371792021847730169961642815444504941634644481675802104993464738241729382439989791057175611667880148210211828989561168992808137648557004656345641458265106464090171205897243011203006824470842228485097751592773863325331064887937414380263342163437188799434270742776811056241192652720463643585147257846337840096856345992527463136937228010397325950530831909268523163386541488090321757971748722868564492750325041674309704123791230418739058398445017942569855566402330223835098041751764810886219265306046152292931036614595235840325670328626427819883362973028573534105924305948030476989354473912230124584756413895213952800153782158304041580010455420866471831664902419475985789685031389484135587341255014081668019510824901263460537948211150430613404697516193963522975858155331685377808535438037901787052790720806677544487207871274379025058747853448333595316663230882116406991685842113039486803049057843622487279653214885844826949615413563200604560697184853553083311052324065636177034140439619687617314761949106738283514552623379189136854465042049992945110815238653271678401945862725881902809546814392138762868775276672204225537356881157049702454028697781097521390232166410117608474483657451746580639769898919902241196239351219916460175430244871338464408634344767948172564581290720651850615552076140592898285795237732943659002001892315787078322481880731189448667820263310664647383597536946802831585534783548749678533988996847563647097395616275701113250487416437976772741166601336553168524276349445620289381485444132741734459844253671524233941675347774780786795954461873683511165896265824647105897029922232834361364425011053084243262760532798779732358704940164972104711646498823699858540043274413188795754100692018876973788338479909982893921308294035805332658410863466334383282564449678505989314498195963746856076455850421650183824955723640838456748729493282669905101070732783186497014764735231757247010319349482938517873209208770893030534930290349797302637407472558739503224023220762880989329632976133648917461226753841957701516577589485033731015189938746019826383447868648550816126188458251453360056694721481434458445668436316510462614096017908070824875976760175522560149832364413612471083907031361704783626295195866255739253384793497584281180913264973065039104738264811418287560551228597768312901772619795456579869208895134915023683192453906098769056922905800349697412257614278019995301048643268157461301145769803152185624094550601647480874316050241886185312344057294255061127012389321805604935574899924758759629073644963441759376227304544323796015622163097428846755616958646658603442866104575216489889918014544517862694424898419968927890402257169572047767164465677664803297800825825376087215735686033898355354472780803971599576625127921784221342468981076736888460406737814817778436862381985274615343963864974838268615526899286602617604615630880580412486750396860673257883544467611865361848316459104748635608462725706362822385829494025692705346214848966738231502666884078886088512657082528701652578349582316921809030853250395972487914253696833124793308050661319236949265655703990483319902354991303082424459385524518513661767755625861081151635478260326838794070015340149726356096709777539996600142838225710810232097090614653415693373574232580572637268028090777168821758202222107944371280435596645257660996330214299963551538066378777237344481965965635112520899339463275296400728748828440973238890339245014291006934463389216835003255460953136106253656275909626161417445844865400167644931611512017947913639878306549187547917897931519277286527532183688860698754561834635558505697555373056094443061719323957157310763610175738887966016058051293809809487648469415502025167833972586644249787229080050665692865800583234923015884757499386730823756357484915359138903730971589033309486551510773264387179785992742651715387451861139789793852701329561250287220702172962365680520782364698893980001290733617168934975713519136656493264365445906430616897147654439121996673689006595971146121784299139918084640970524727110242741886847843681985431918467556229088618050774519863042764935001927304791981291825729279125917546446284368857943485298031426108415017955600279576166502077985117100680714828072483218683908856552184447048623778989184049884101713531289406636476983597547852378132752340745379814629082582535480361495470804739354319124354796178103989745176236073529156743442579623041955388403411514914803560651743879209652110948501342485106920591393882677399949717369099949054666894260406449848867507833353598561912662439014527057169696313203787687910827144526735941705365417091325506413770854976073313391621620443956141374115795580871927447689048908296819795516343517733793708674442581167788271013381156673507070624365831457922330597501608686039065680274225057864420914405539781699994517074277574655542851562212327394601876471842296330737291946308695241757250322866496700384597670328433679774430139833667017679997228963390441180296752496968269856854961847514731158874581168731881120480083208959595800788582524706379867010362031634863299438814808493683374625281631737281985324620523851095383625504988213064419963365435384775583160210520584189985309702959193762431120816149161918043988911742720441728934885277438076478006255130598313525405334858026280751557610029427413276878738822996234712266263867547983751795603366258952119564471263749310657620413742113945210079601189876158337594899102012347770315423793540316180218337987202259992663573522464469451537923432455128835270108251383369488744758129515065711874533699183111877044122602397122539778504243110975304874499188410498209753540228401795956010500619278993414571816575250317903820793569426229548805565703582890300475892834096079830810016590289005484029632463195072470242903507145974783709181608345156741645487065543090974988204839510601257591135320470238622888943080075322609513879559005299373467548382372405939167014298420215993478170191135830795828584331171008722219313797098529193371849304009987072192893963726295498796207455469800519274792668122047459838208127305311115932314494264701346684975811524825723929674303726673112272689934892124453107024005340062390499128350819160722369736462474141784808503616509025957280555661160310061952704643247859473071727624184512933533689383425996751156457772768847028659460295008459345149022902324337602199779934746341742189665185093013189054744939126279859207039107589338167672839121397316807325617926402566371555208872284424433814487829173212244456817886632628145986918546981451290127202230913170851348662691036434922679724722927644677828567346166370047783904771786929583031240368669025368510563312101320310758522065020712806159776783349456798278012296910791620285198128411169913462130566182357122784455444944799339973264617125464028882070517625848243131983944218080310645210015974300929876544786530781788262478643298069958654032531424189303164239391373897450254068005196632610615818970351859757683154535683747961369379391956437742768401181551800304553018081836221479893020875582500368030116763317099932556792936827024035597442702427706110702188482062447734558833535493505589272380706754181162265269154489739724463092522568278100916176125759857484260594754905209067760007536111754156496150397863819778601368812714589715604574123802179496651107476836030097832930428306991208695025348289036757614183604501368180196519839366921222826779745801812094669074774677706575824501366949383643380507893584581009460258235288342847683835911445872164999085810486236362665126718315647279755482084802106798305527415220299997596659942832475307427997853076508226027794915381519435486660702428510814274038128429890365094371389163967825148965993734841032169416727516925329607957140818671515139290457907987119651697968362936714158361257588521702526926165715276582001803606980693250246567798822349608094163563013176180629918744302397318272689079756917327287907459910598194398655932008019957087570698095186719914591278369460547923832485885381743883838399711857421316374141550621922390817295314414904824541391021635345769323738479362598095631582103933915714730665354820541073319717165793937774355385381485510844425985601813039404003740520008899079893150626170381772160744166759702462102105161886799374113975170983347192008059554598990983433545207602165849640328262155985514745708957962746859201783661397269781873358948610973737378291413742726338594820701534741187220237361053749297404391329516175844422706545419955097421356399483718198455442485482029244585846740179203769293266539467602176198451155638756488030823151083856402028863642587374563120249333634429230243351707098760858589802569560313612674613836999770204547943156401654631213687209367273369862829931805568509986781797997199948036789513438059290566278490546234842744091258850668060152566345736962850848313574847296754698316689620928435541535541538407387408738388272557218154434035911700108643218387280779500533724009130539758216836115153866423878162081015642405222778143867057407703092778226685234646882230544701144316934172047903507406390743682916026464291738931954750809297668114171366565525216607351008510965112439125094372857677355025098292358882408879902934847754395546402971120689458023106436597749785558663734672534017033540607225481656969928043400288073165878074744876458373509325931230153584401392180223336401177327254297328153047308201125419239044962160862674514717746128280528720509072526759474706534582584440622251068686695397621109598884771151323485487617043282081706871241480926804985956553227266505498836306814030558786327355776894287833694959867554567854381031143440310939684438607946619421792374560539848549634705647293038584015147720101883416752533376279732077068467514680072888779197928578866303715323873582381933179725945239623333581535223122506025872765296404392505343274446587298583591465374814009771325266630471661605362342549232220109509730954224837094588693796757472379739486644361045297914356445203584406136528642209186046674589517108248656849301800130497269166514867463348015376075278278482443123351110108329527035781964252797290191354275423551813416997297589611018602998876653909346658596708697528411749203193677525889841565435997979432335298314417354373641149179396928550525789258078133423494240859869245751920021079415872375934697139717647453355101229080060678128142014593489488429303176092219975018853071130980817575982639749687733015953656290717055179841914368233929352242131918428565862999346284905530618994537137239185544637878589524520761018826056852057295704137633135753554526033873227903404106003021951484638285631143889611030229363441248398374855434020683727686301404103439696390980340720389707394968519974550229295923556091450280159411612374146204896939903275244618618413897650178033590267788400616021630998480021627889377033725508056229543209401669256287396688416249526015468466265481224314484484891168428226958163668232608355789622278651235727761369025213753252472793680320816186363389786783256594880390792538537954528771937573147570133478748250817319006612341188440754216779373809051874665704215598211457088145418454699164711149641422480198613488468897804055287580153724735465266027558724451527965883740951594272362376586963827373795816248319361798905636895373288911075102660718239161751847378914269197375913895316715077625719082151562639519056468176721155687521225479259343227330738944898014640440413814287875430393713157228996971812693377149323831380385811796749362811721718545467335736955300477815706420115512215352154681565555733105826412734421488422273468287698301095157608591006821878085485133423423422842831110378212030416637136229287882266294337546264155087161174469273389713630177281658557939175585972091385363249913433897520676093262327598403481252956418365147905302965475928092582255542391454011808502057460834206785244219440430463798306712814257518968579485509179001757487212728337636884278038962174954566991667356155072566803519573523731144188768786550715395702606814150075167951628358956188701386691367902470809850882196370124519884021793641597525141228865324851302068405487358573430675503105884094918192411329626288334682260659334698634144744541830853970585106659912234517354942951629203067711630739971060791813469902443970006404098509131264934636973222012810959474658455383025528834444804864200238794179562762100240784806192428504980482874029500210864267669451144221728794073877386581258463296588452104511838509681698752719996652564498413626032305314036456232131841961939261496312874664333844175514859531554401990199290599349713414951489057063117233884497696988796021825470259700535414418825188104539467644003739875860883181713614646051520953218090997841236673349916141126078139738638791715802022581244021546191367995995310734029642064358198972032195658351551338381613603225796434916377013004328638753091004135787474391496361624655575978304974860757090668842185755920077891966627168199061020537526745845667318524608272922295495364611906815830438840629615729558250361090424163707404848380868225320868885161856760720849744387024217174385184122160237065918672599161713284551641416120842135472337208357331256990501841508514846287408692181753789070274271227581605555493785985421405978613088608388263966817951602000505421105122148729395312296975812395877668342406615471090005976363211657831585077212311240211286515005262842939180713590902954690181248545683899531061417274448974595085206135394247215631061136803326559150018348044132513551775174522002405730666432046943106073643922525535205223403252906000656577126875870118767385756037925102776243019518703969213399799763433181084290852140317817551409722696538531288757720161677320170201158183631555887133386458156977730547960087295752062978890480405337081659354337738422249611805789012144065513494892275428473963937636344727497834384556449839320388705016328440578475107555685571016726519615911750938448417381462071131616615015332952624672475614908002850727394538926639779301269837964515624422396940703766566655565570138702235446310906201578107336406747744482726588093312863787455781587264619204667850471575342890262088241925949333719335560329104328834451597161378476167986680953398091532721706272227362163499224340959943499297275865885197919505143957964539023818688815439262096019362171865788432702818589758693007779638747119671693969586060695239252643750764468050931389742987862488287410315162639017489492523088572382946334504975596229532235120368197209734371031636749342969692873757503373434161218576084959859079753884509300449590191647042340819380226366453275540768898566115358072952991599293637110751087372460644982663728408564377903488939617514955912163969152248264612891701160873198944876379386883457030411368589828501626687688965057067500226835081948567949088872781897044629062462280905965128798998029536883056174289820528485287087392672216561439151290196375526655549440062894412149954462493769255281118615712341426663944225260380697196451445847917291101497619063916327552390506068228008928710164064649595858619644918319697835306066450836362165464270539339054428550006299606714020442651768665230635336549269042410741912739223700626624436520421993396311006537698369751401441923679183558186216640974425472177837533714869849049379321476995902761766840680697272542240325667531114539976251805993152629625148056137372079450991316558962531340927415598576903473295788369665577405739704575773896809739434199507010056741440457443183949608331097437209030051345021135314305294231920300051888081004685617413277670306451182308833095726366097080169895405835180402440750813211633314884794754076308754431681645265746984782460151190403090983427099412953606681118944801348658133243208872689570323380175330772015096025258957904020109570111959156726460845798319220870071103779102856748991850987267141228749124800801333136815285207856812496033690298911783898726972279369492286365167646231847118231507116041251364744685481870589835317856537525892258978735429108102652590700345787436491680771328067521857658953396398458684292772733770506730948030733823669046070238712237882872350250370832496969257428063493977334247452117380101263555813428004490341758727203502935733443160794176020948037914894326499130364226150808589298871164976477640692135696149885455412178779395520766863938530319839007091166187051159172774475000046017390451151535128466244458380220399095561259189796725585793957745967157982907176504483822116508560416142923800873650060231966524381014912497981037534007458271778046924312165340962072373125425989729357139042660727947530291549227604874756044824929050867567170189154399613235737393232609856577533091439678554272074265268942743376691115845325674456684484535678960906650459353183194752382854531396253794752663342573083464341577604509896071053759629157559665205140286279580979760571969358953645767573569609445191897150702871405021227157302844060386469675387770544803436814460135977818029968317434314392572575115185094803310770960326663406307206855141945327660765930437616449288482639493955365792244436554116620132758889478336732530368836400081844975394834714393950238596765677375190927512975872845267897978127377655201620219062564772818451583054100408324932738964233516944074704317212153335309807647725250941163304669823577063227904404393248176088444715229832655718870767966065700976412671266541730129267013401288325108518644348786420869884681554290680986459173440836927901187306104069818145846443515545093482824429231806375059987142270024714617748375018806513414021957991386605627104758514805480984870424314748096792182394853916720793226568535854179113737782780417084982046547953597938336523390836662036785153499148052466596683161052957157789054292933198030489095156451419719258997591962357105845467048579635678156051444177522936254486577090593097276501727847694443028451633072651124658521016789789743082591753002350426674216565192729680498423399150323780899138898426468660655240778172547233637006499960956382055612183552135779589188845361373088588600827106438056802928044285844272191825924374904506493554725345869999931017121775388852398274592662847463936629909997166339926467793841552730553299591687325322782406315823457303194386283526080729753665570209812248643519243338795298956008376316667050062847889444503688933794878962747278206462575150880162077486842555587001569163802957924655833552478550981810969540065159063996914328615476259512340033413598217559093613065419654404340754074572353766267145505897498340168742084385386355224205984739169403513748014058206553607927007003042101859222999365823893725824750878678781124409939678035690262238596757616493338617894474818802366445465523392651570921889595570116712456316278970136863355814713346395137087967823471347339188061601146062744586644789840994307289133287768638836031658102699254785681302561130139472947755544709360343734051819412980371006537712227338502149316576902658660469954477242736765801348748863423976161195116387015512953265214337208127299877887178349649456349320225079269568498938408603343887423180802439923021809964605900392183805000128140053387093393858256018668936220190461966367899364063784768483900433477704920386512295238715396048496581844330197814446898919748002166142105068171977003903676958742720609476667571481747303173554457056626176938020557924930466670451721532633378281265324041762630184202749560858754666731222519812539786523075909005611407381680398458557667056637267207598763217662104366498124762949873144466637205795936690301265634765293540724170416102181665352892144334638595919057532388085102912797781794510724492673621220431972022219188250712338921774005516642012299837462585458302106331185291894615424375849993897969889712095390697809028461872093162375009665445574188454438548990767740255585047051263475895670341202746078631665726204326208426350037250520545328729495330281899467822942415104416162145437031801960566319253730863684701959789380783626297709920688963227921379909454228769524880976303952179262334349129799344927583952612599064587241771993036210131528258356190327998143780721977827354685509240696382900054548158485922289348627401627429575161525508174976393176143252976421385806220988075278949412599441148537248838013268494546424050648402497202221433114962202291557051876952033677547094994665569752656615760369208682507328766236976979861364126430009648144637738422528484663323245758190434930355603842715557697909905682861658577250017226680700373442389570218863085033337100249556060575782485503445101903988034877108661944975872601457871409997561048500275396756676984663170007261477813324820332519109303803697905763375333068484166568257407541792127849734568240762164988999573913804774454995642903742371128927875328597227882431629406436776729992720389991337589612393191084947146548287922805249559750486723649343808689220313583997997228339073998205539613645995917287421917258294691374779784505199182182174877863394979257023888482095756518121936749620505857076175956784697711932291182417628768372580436566070871037172234184253054148319218050675665277398902799546623548391364376718944674191179441905584105346958018085866661219135768028236063470047299762829073479096374589761576538554515099166820466945314752762076037870268170323421633516060294861215118711993764115509755257594156325582755251749746792453157892561134418827444233310110703643244726285050628271053234786458240205352633200056440629452193796301710980949050993782446460861697830866714919236532305150884668566086472739127377019100997152063791135211368897622516029034960729357613896127870552124543221965908680128924582697733525022440337774844223485674480005886273469945610185075226177517501090508243789418276145069444842954477626663828394346432476022707108242886977952411315981962419361163757602476135282572230140256383300946063066534783870635061654698183203211849969129062159131324252178693212553347267920256028294964977719550001121952478742156739414582683666228737228160637607163516501904998421464158383961623636882381034279253976995932761934677726040757560837624718348643302969889333146165078336673122433097648289000560252894921184378265042190818771832733797287381009950939654873253399587922745869343579270792514762416977393997503258749824445946230130095733795602149861652836209213178282370838011421565514882927571978971771854891702226980642285802803087255506270571346476692111630510620243902752274425305001582314064645245189166923811469502741413779562443099557339982854422257206589394656348996663725415472570212577232452870115400449500399112978554413042765112204784082230570252745914781657849550817863373145419339176421812159119702940775772138108221791330926323979808170164372469200486331195232337719292384517444018619555018281603113685699731340836095343824275167025140152526749341757591282953934732286668362575051237232508276342447267947263343720077969143732820852820786881729720697230485640565290366634359029286994902467888980107717939877559233814582840553991284026278739736728910154230879852438510498689683908806637176141534650725615194215867062630950343118243498642276645381818359223620424076935670362023008653360962955939853038514516697170502459074110929406019186620220820402079664044113058219579169426300107829179277284739541602674476406069571587724495183408244015232522913527190506460914738668200800110937431427676533232752048476752827750115408182524776321700320122126386415279515273909452751777383950034862164998712388387527826386626908558776315484026612481062311552042419019381090313548976750869856827833208542746113035952748964642379973453146394205592994567940871144059525127835513359430048682112308459362746570843123708743888653745835160996362817624610942066720124235755879403366430332018631754232439054276330467481673305074633534499034010857930603510598261318120612349806095368975975837715072971500641099790588343816832031599141094054855859080154321653202986572328476504762222750463510572505736699391871375710158264659191081878571489209421312749748385704164713998821072451468306034888296183248195133742282999076671690640990328722833770250294348288718569155725505184421863701851212025885480070352244711630907384494654475868129590034787307967213274257717353037546543498484950117892602779296242306854173192013592714762830563533425234827763217899160677025780575995610298332034393505168325869784253378529574140426314435055721214653700600212033410295264115175330512869148087504801144966673205065148819433495935572910101461850843204579560121111655192828080632767174757656235232340165378531144117584350243514771103506130601351103208606469646799933113940245504297535341868029285037952340673486113616562927056424688301823348488877645311114415081580557158469068932838162548179427303239413789741155810153197912265095023624227779730324020401297765901383445277683264218136036159731481153615289271913016114265088132984194985056941884615623145920875746680801904614095676603774300901807575206234238174511042296265557752468699423412490693064872154213346982971799515948958260720774882889566946356454651482902004830559221388038814895695096974734781647267229529552797099335906251269192032964117573242503674971582502345418501901663892719659114651583333894612448942517934818421951931887773804022431578818079576468098742523318102090667046552974944473524817167689696716953319989943563597724642542412570038948478463177348406813125678245721989733394205168902547232001717336004823407407952690239070297339980497357116587472064366630523666770583588887656919025537708358369939152492678784283780337477457070774712978896684768046424035997196133680592528306665064596342589930450216015455218700914024452303998400801816744164643977997279806458424560198412888608465720916595775101662157276532541914384887810374277629019519442770309539801723864572243699796372488962829375177322619741077465792242440117326973352860475460452782934327243606255812304950621411060663543511400626411970225463191363512308708289798464725458951687106036926059179407699052864316981916131135387911450513714996146686718140979697569887508102307816232535004302202189012976613221751141680801568537021735932458096145222178684692658511432448314887876413837816362300886181790242621493422406760559080166811076870752410847351746956980207812423317563570384198659431754386832497622087598439714609988045880990000295894204021064434922121117785098704250325966240340495964277855185113545453404459686737131051185321098625888868874493886628053623969516980807625867460052964331368802699374767831360141350871493522325826423836082633015636413017381335241325087976911661547185961492831941767354348950685070594175971206307509398279385524674198918252437904098710321523616463405642710109143362007778429450925275128090888314113316642961773012815231223855755721495944025023365355329304910181694912026118637547382943531055905968067525009420615686962456306736103594319641719948978028892571537237019990825249238734730012944815057276360090285711170345101938683440657445526776293992977216921538019901785405934957731578711925236777045861106928811073758155110716145357634091169879643869032213574819391834768134516604313975367002885504139277261717456650822561887252703641048999236676059975746456239360382527177012088830024842547647378957980424854903972227181354699067055074708356101970478672918970433891341439174883466760245169545457192049550450433327650389579969840776746294411709917388504158572740623509664681439375123545149760609064527506861819775792606686540574895323979514332592896938355771330435432303934099017765984758216649413796414797299232870157580742063992345294890234509870027453075621122701949902105045508192526220409026897812255600130989099650610492321536958098857634790383271616674915004070390383881171712988027878050138948536586096539868100702617965572119169646515567004346329493243470694433596872021022413030963085477162142117483597930145646762736320178598772674276574081430244785855695811303512483471585043606113638333403130781445631651796344506696958618931915935942367353946738688732040888348556604177611113000381890618987760964958021519237838331546911435671963922456879468706256167125371770560542183392151608989066712480677209951184099791882120836370831860806266114866920129003321849077581079510544743783920828656214707720336923968582989254876230853485048787292306909276248840711753023179525846131822807691036292619761536910752960613082987445129561286302659334142278388510222615186972642604418829058371517655955036283390322448610367245017483654495231010198563421798522369084308761568288672605259315185706481348460685421070437837951612342665643005317688275388549621574079700955050600953173778478708684646906140761813333124830242975453914163998916977497187141826202037656773649523227669386738278255285492598297075045421359016659591189328837968985182452787541876030297805229733054736676438388414686292901762351638299904498282015914596842016806260454447664402709785196438607654336700988745653230060345201589605378603208833437873557052792335183568226441558774685969895700335412636316452206555239340321567295927446392997299235374864117563945350822394057051692926943665285867031964390674465450552641477070786558028437021361582152571984207519705347155512501077928796602236283376917302053905424464115492115975309706663716445764635418794913316798244202198611190553960121326618520527655167400615612960439343400823654745809444614250720250283499998214034916990408846791685501199539908918692931592905739273835587084277445205658380861462997072212767560854406037176815621298867206535155155288939103192127124879907942513756349578603331488684919223968408405101161707026879107858303166569678260707041019756060353369147438128568130254948740534446073892783168484486999321381346935034611049432463166587061486762074705865615130349487737632423364466285240723275778763934401580015245462705927938094317976627843364285677804935629109747979757726493649449807753256946904909889011781145445916837638005294850746483571248904397407129375703775098715251822552300107829192952580321381677857671037831458313958552864964605990300969934526314994589012236984454084244585934360468609802218870131121050521818047750664191148471946790173285569049310885202404492724525431839378039262525360327240232283641486334884651004700129322945461898925325230706834061269368065548732263821273763872510052982690053313813995516695843339373245016942166063020779809754688613506903327370869383326739285909839900191481624238957144344188595738217206788530514447056313076944478119676438429498599581534379511174951695102808660913415620515033962765004592082112343022865063415279126057847841963362933181297117395712352181747083916899016682057391464460754428148337774646854460823789594370467452858104262572234267069875607851780473181144520568426566316182420600067588215342909603027040431277652658368874342225669694589127456885363652923742277319721554054602140563605205292708860018429606912846696925656173737897711761566000086090774467981076057244288569036898790301455162550895398561802293639489134882097773739800285935007674160555180776151477950592655869947504163801195163846445427155028992873845647214375187954618515610469544057086756003246535498047564063544393071476966260217875741082379282264583966308653882020427409257833333018214161833120186395906568702354510247378181048556212693444801136544129193249193390291378742833411436141920159374745398297715820744726290662695905804993739576103329151856443187692451080979763453983709458810783152001742208549914890105147273106382801070400901539123987743511523777829265795199766242340123827563388211105224330938819828431693239751188025648177546265574328321266699832145868762095416591808299539281307483291677743628692775543939052679531809691142729417739586868721289751394830649126216024965406708210808079083535215078393778593181511744191197370494330965801945424435457655934972635683388648065409977325929724911689623332031269724528219289230553065158486480473513212845709864007995712588858895472621949198830245194703168445925360517315405115736991495404277363010401564330968653426191424078736097031581256711505247673503025770179416202405770273036706212749421906564241299217927057727478143829400010582987361325558476443830605955883354513670698510163072985967328424221985131857123856184173653315714636664089381053836284583510846374371243757383612751407189250112462919740522187338024334888838210473799998089462094575887535063118648007698074598754520064178234721493874342192364061940587161976714689593079407359892838555352348596561522643383040685256692530371371991717763462291665176081492186524945432976805428539206420112585419034692037946176308988768634890076337605999323800729492157195616293817709908413153963724720471567869634410350148762719132210088864366260912016994792677323184813435255871638168803690554127262500999550554105026036777779790383398759294572099748279446212531303661245438202162186307255310089679107340045453237603817889443781828842862234855531472193127124784238864992747517640126113763952168649961098836816472473740808616856171359087192587443206802411759945507056365904469262861209777213387959300572301515944465023375269267476458844395756748510585605376066401048225850784711368759927553912374241480746858741646093837412782403117826245390775051958538654453859295393800587750377659073652502368978550392869436255825121418969145143920480907532091185798581294648896984936757748734604717359171734771214075929961869262804187511735775728001670959479909016633697602346584894573313438761966248501582254857043284399624886716871578388819414478635243930576124747335430349266151547226327266277876028945656132967034019747639128055428485253717305887748757085726232799606329126665749494604867471096691884270783959761028392249195009071291113109401169451202818232641230466591585029786272381710416842714929581026744383803577878952057191437597886212079573728285125165503143553650667140317557476474844542825055990242502094033396406503464529390117532470877670409931900628461275781354945472744287195379354228941170028738334284935514097461516556761277194776436678503432049067885992918342542178173269601512810181089276150707205339656482811900110318261092292416845559220969244249636140511917251839191595636461707513008965319174854221133191230282167619268950736166102017463988411512281278545133587703055180850342020560863392636099961522713280120121318578410303483718729110033618816465203026001361576835197967321000116958115649372253463779384713074468735701439574245462221281469656234064979043278729780970461340392042508415723569570142265207118124514858430178982098104661594159488502985205010247629160997238089948553729295470421445825760447752976594955377195773748629754858004011167184739574430768076982801035678259604952853197351409091772031373548973613081066219226404158479906360957668608044260559717168232022860695945366955789928717419286002814365780230350494486507922934324289179657107882494817144695833837800368720061894710125712299589788381191293781757505741766732392322999620824796265392131096040721144014873943765579495102010273501623840574334511944822143177188876976869207549625004472007219119604513238715062975465842141861590920997324923723198207839444831080429051483662754692006851414332516401857185228720676580197451742750520109846301857606272771884061491047007661850351745110079081924634231524850601453332854801247388386944610571094178402562313703243254174846412288280813041528281757041709792258053934184299126030345766495860590471850720343804274182534872283876783805619556823242116647606868494284770915143285731577175071155575332011267229692146687121369075887057076070015059795038752785729799281550612625861356890772524701902574761203025171971424510458751259104371976029791927053081973600333392669582537191501320268117925282415273929058232121371874803954398033471068862997578329600416750839846577580570281295445638120137251031655107039837181195194319709217297514878598960439183604657394933400201232623653729787011325841407421464049368881818420636660700526230372623978082238393945806520269967245191465863040924946119824076855323236881673452822406640075812383546888148438078758912657281991025405829243379588972482317420257606308570080640848845943927193881086972237065994596399148071447021826153722160836222638239398459683793021203254893556049027415939246197027473972893067473796882211568783240383697971619298734562556069169044923075948007381967801951849238773912832237466984302881318235092354772162818464205803818077198106102761417001015996027630111057491389695952250560495091971640078078975118246902540687928912547009985478791167022530888258319601722878166217717702811854615729888216576446941417135958717412290693589153853890277746013699216253743513942677802350279594552384857362635493057594907731922839887048969421300544260049854527812744080271944887978193960806670826507616511022749624511367036769996249580911535469752213935489198043461148391425714455646690378869402447079685979787204604695609121067417009968627347704248047320499523417752256687013296422271104153753403565084695386162844473075088940964742603132527956539861808211502054480426063081880809764761027203746772500640955982114180892751496077191514731252845274310160554896212045332650607342967829768395176501830268960631878029037864335471990490960822679980240908691174586218145312734880424186063739457905332244419716300384196221864206861424707497124878601012748173752379304565118199599759274135101039636575803348255714288794216393129969143409105263045288383980000575012897202148614967330379116849150660998862391701389053369756096430662463220503193956734452524097110936242486731511684072146883266077846988920356961027520379660805130273659008455533828523485937538265482874148242770769934165011316062382360708962231240185112404280019952722102352402075571381170961225563277671341771652571901553516252457596839634191167764834458828803503067748768474613060194382338445899088322607044057142084968565295200889610921455767725287674291982645227648346323631719050682081311127758791503074937068994310877086462265037026026604444481013623924971030532550673302631266128758404529195148092918768737019960547511462433316162854875128247539855799659982101634116735724387739993082630053475069901438089044733559934116691461796060270688743687659360518615280224840289433159578984967998096718134804425354224082167996600625591124718943755174893772705775515169568149153642272224457799107209759267774097185551630549799310135774686734323121401123249427162720236061408672779805857450514840629139582776648346882367174569747782419237964904101075138026158281463094660883735846328497687430292082626288782219104573283574876937934453813542626259231456536290913208157408681564233013364146451670579531992084601534182101637639338549702099638531534535378593615141314028532962683125237712789320618821500136797076247176036761749501231225323148443498180056199100072779114649704683525869745364526108770620230161540819325473700272254503979418144123964721625802649907517945389416750314363405439483653894162838335829319340771839420776228779060581310010553893843539137971459384195449650246421421929670822304306457090483071273851801934274368741010129226098873236491823383309819505178572796488392637041458757704628282216991901136198456514674351372466902584382133307529210899846269240519583544826444588210092194264621610151105291154198507227889687639632130414110400768697226137492573990962065716741940777833865640369146944906893724252068828784353738575965738711338507453756517023226333097487257908579351153963040491589533547914486652987411489168261587947375689997108330832383839978438188886167635509068519054413101876852673964791346890133554956498130774470603031632574486548046182115496561636267333386015356552501105258909686151102678039354322222185897097294731528510173276187108511888176344866260661122117696693479311943651061641526436666736337132093862270216870487958352025979812914151121167974774416928089084794793568773020916620629525146607186317828394593065802358859926031113846573882304274639996035796050533951967723312993123192282149060745540277666978780647051582321953841970413989010940989704091799332898884631864288300676523539659856758854010045049568864845691827595510518522723476357344920283632563198078056671582658259322614484960494254406704723701490509557178934746683269870584040875933626776718554582253923635989397800464026442744685773862684785547370409449731429606727091610629975951518492305965162190178762416761927118216690392305156616468688299362256812002054446286771925994075780582676935540369440324497304448321104772650329477503149617555101103960374185990566704239647287180930633000445449548642475218431296594929774204774372449341943017118876134434672689948039290505872993494495226187170886452654162265888095109776110775270009459500556821531300513716067835984694004589256101496494080855730271097494159943631772449440499282553947800966667339725489756770106607014000223114074955526265275500745126925305190255957009620493832292201870911291903914282892532458659689277132250370984698427353799457246581367048013250373934515535845200679655406944744757767852945764944107778350740154854390423313847353641444665061747789953112046598769140947781701612328405485040984100821923767254743965354594231970025186717091685130381413405460520685094019244528921108358950959154829349599644209906409251109352095595385565468145966828601771788341307160148991763844879836729522126547315584955479844403033600425698602027014625474270885401198509582571665441032534753231975854281121817477308520837115238704036641210494758081058812366289917957323623605235198244542727064147699764416581368257394561809954000265756719034241673605071293218805036502555988708111867038749780142435745414224414687428435611079977538058033242901471995409918579075937282060536346269058580736337498816498806947161517261092123550113776634954697467652798007841158996956163627993550101608708168639722043588377588624092432748176595543527108212648598585237112440119687584990291289434842673718966077752558441460065807894097528370699242693185441604933007785216493078682618021754405834405305037261016630578175918075583938243079398719080790109360776513537494521759770168216356789475517531124477580850094214011870926514931728859154044781258349650338568665511888111454969180406610027165485634509378360375230685008251509202561040276898617570656098627861076108164667617321889502346011551705101271184696118190617285771103299876719994096329309860849513691688349288943672992815011942348536146668304248087375702834406450214240899628461204531092803940575196018381286825991918611062867598039779452961573107144198689720628505718265845334480573021928897339328469076597774666878222615193417140719710922135298987967645081399764258720702763652972640168334505086049474113508473772099627760185118506704296530987704493498996182006367488665239178789914054672032424771611443722970152915416172724105164613766939182781700200227473931318512770122744177862654197512335196745446359799822062017825016962671958838670193317693673311918241765878505761733799461905110643255409657448383671795501626578261464419399728709051636381183180695853160710490615671068073960834106059945656278573444873984147580598564663310032404639095978571279064493934866596801529925002505347309136860862364495939759276274975372514688533675601881097100131891177992769377361658239143864131055588547506929976004105556292756657588690499512236468189187479525346765033181636102258279239500243787478676677530275600279122511031795967155671632847262928954671980950989098135105716641925483628229480069056920251091458513482451003372455981484385489794005342030401478024146609473114360831744143477167452767810521219093083493073731207237351093303766134278419354799017151099576559856619879814405181391473952974976283726349723919972052478290007302095873554532928031335697822567845335836655602505269525695476433940586887207519350563481895462982958306671044030414196252655634538879618203997289152503981227872763510703273961537056765053708690292180721031305716387228629552584931120868236466092903017455640979014438399529088352639191193463453691713041726087275899939566435170215923454159133100451653389122806211250263152772599488472067261162325770244338132878100598206132272793509509362438947240909529911337580761180121305763741091883943975444107462794522258236497211418321969713228762488906033618292095827006959261900471118318882837837520452260757756382674586629942562995055960408999463725117603703541140229879103906058505208139244316463089865846926139027436775327128099023980277248602879522519228149572829196992673916313744895895195778646657159031417043414096478115586622794094602630778627195548900802791810189433080079376441396128193575676794854385017933683634454844409899106918041475240668951008981747039331181840966698965031250287412588305640631221247899740505162819169438041314339956616745222127611228398200879666854709422596593686003995677666630334620137447217065483838699060191038659103272542407608686298206198102107015141712844159688918977677416937697264903705649342581946773086258331047938061518192203775033365036962909350030654595787071484614523461344529171656807279644731595092394610632130546667678512261724741973058907813250535904014508952006949908392686360336226403380866520539005240584421323672358053574476882250800064069821495326065890050075420246912710942926827498884609905056864255548011000893562767960179828077111757774763147435475061572196193721358028715442287409784706532329441007672647314070083150518877320510569532780964088929781664383080883579158463732807307856308518435333958727561596173081123175150703676778968271004919715737672581302935507194725253136662576102217192248098705295635568250072118972856779318361364295835170885817159503081180800505790002286691635885361031788004655036367509628597990008903606327817491347921705100829295365612240715151166556067749838819494095055965974021027546818115900036215616278840193214876647479544099741218300641803022472404365960510977498938742961054211230526626307837419396866809393028970376937835558357476941874886447815758738848146195119221445888379905316693030436894997100087454090023026040715785857781522163143963221872787016416596729627018643321401428457318838790844297903965644884975745959978849870604328905956998229164225166757304419892518929846320474490689977617963688066662041947308412991754329233612148626755256100487955495906574683394378831455391608726870513687588419027567714462231342547729920825783975932372927232168440962104571533382392338341258000733979124227536124774436003104359292917680735786921580067337380424447552938543571538659001661248647570480937950266410572397947617356599058746586227479451837520530044155847686327822981677654184866052366671575143457556135562921662118801817255330911220626245073904053936290914348317503366880464040816210718733908055949045088759926945977607273997885237387203566719924101236893487225027839315717032162077150621238312268468838985982057533970687771820408090225082176714608589408517544080203472370374300773655401520574485443400268787381081536397688918351259291499393840169019121312522118010965726339665111670001060323721443118840228199660093203937789383596172750384333606590235493570474098185999391871638482873250614291353224877806816868792041542436865411919517930455927041783072290088363925254450552199613250372267530059247293079762439331439781990293490376638007346788249288746631990252049898616744741051746112041942282652141556281909947229533786867955174748567145031683091639563317030215385920450008727506516848053552611281038958845824272348503468863420407795370764013361790328297810363958462809063098426246862137441903081993807180443015250273395196800182872724731927262002078375931892846524655055308339464434963216382026028833186084915906243236629019959224958891508625911650796155586259186828990720487851056140337464287568278064537906946675039589005005672737140369772976836484063887763811612952071877798161415382924942834388583317206068492431254598591485168444378590739254270900925059469656609989676318048667604760660876949957822197049751187196254094108000726891658861911226490925176394518379036763948398133433160344110024388110569314451888724786572112383790616267552924376365085798057966516683034521237227493336940401539962076309293268550547637740018375912792760233250032372613140197598354578968124384685451134784999012465293992160587545639579076887687617898823632902728340363843662815908052731616881556142644501721466408526565379606149724034122425939470580035404770211867638566737908720060909274166558884700674382250383064224125714360815641046571041466662053963326325124184970185192701776216550216912432442488068631642427935176770214454060616233740257010930161324231542578452112112934618835635192470732890931309821182160958608903547751423363443664193753362955212616339852466866326132585867092375554928740201522004275086431048798518468819494592159878741532252998066663328393476884533313408360298234160797258288098884678476038634746199250899107419670864758377521598888791063196411443525659417556853630604358070205961019563381105785128147325799950537850868137007088850913226401360701222579021319314459740802935620170670852246580412134761197801148352285291134957926004343090849332531062028809968285450009044248905466341593511533253176148394571470035344395782647518200766100960218333423923709533898450631200187902790689786490305964231865772663879062058696726116877031184150519558565111994868732563420303471418514543755525091077354084575885982615208826160886224523155656816363127904988018065544408606972347194773994948435232047061990411242385366623175837237612179290640887830882872578523904222459066629834164190468622732911925013408682388425058007836624904382520732307648494813613429911859385470490880671287455505468236836155075232018234138422903694279042935704205474596314137679158076960483337540568307087030843150605015183368494261821233072304403577848310965761179602284210012446188645330648306644954039624274689986849459508732204612405097323935306208626093806620482753860639258651835948720969065236621616826585074558087348698705494512731341355494076361485942011039224602990072602532021982768326062597109244279122898147743664963118481556429941174768644168481509106899708879876717738888783196876659778131313870546372476974720935655170323725688142624751344716416221139110841115683002969694555664993300221473294552789938718291701227360932443314036602623161159102574717426960337680391581539654616528724081332799280473960766641767078972994323044804378668863812870823960102732004592545884245657123243004803391029564450047912372930450788857959339257893056175478183970230827983804717845381569652014558145863171717541359039680931313831086804456608713169203878341022992817702254768546134747687424946671198984773382415749003934482811755014508224784945489462365701789465220309737857681744406747748387266709497893990824071311413552485806257948163011773393425743740406348166566248047477341729177232285836278888486244656196874495405324332950016425813215009824658029505170627462322721993067552479629938185827156958325052473873697494722783173805332988044260486647890648090931165581541858438934233241524041846341040889084427331403928133423841935272161017392715481404949989552649104838700459714453953742694537883397217892057214500694655644218455418244808194277334413796808669558420539559187139668687438097194831570105919206763140836618728313257157457178591681145073314174619322836608759995241669663476578724469642216950423278089617965784250627981663363238104933101020611770890399198170109261901391070535672166872979036801112378634973784372756548457696960217102941772736266773167222110285204098623191223099212396541279299992634199545522880562953065218076479271077716606066485203937610483783059573594406155428124672209432256918013108331015299205579901401029304914646514309602409677093401725548185873992174975038471694589189932240294032103543715574998117365685649411035909905221843668111416006944604313713718522079368972217046192022746547114679503193498013785122794503155812585714351049610899943225832459080960574970753280870244716612810987449017767850170797415501575162639879989546960816994568599076416877047074544953849404356161384472329862966710384351886853374772699134954483182770512356279481005152273751112966060808612776044883934596805658080790191602465805159677016702551693964383183085326433208846561024600003538858020403272218526256487915256604723845921606708364918913558334817139205364277825057451800174035050643074254472409331896245856233178838327016955668623538780214384707279249123030594071107965860678716976798037621353838478710924165358348009991093285200336712373440534244329747982136498338833122413905096148780368412756234008742730999529352593786241550775777618353592666122359861058414776131339500715498087204756122637399953689548971788244582870561741676187921068570205337355374717048029464768156606432508389050307733940886611226497262655058469046368984833752389664362288387370449301253478225893871718227850229587501553701648268791989221396158049131671655941887820484049810230965499423232133285884409872208012165353767796082904924231928193666244851134930425400306467835782015244019483091249779105469058375823329903129352980045812908007243201062676275868448977763586715028061490594497156495089511314835133704725475923404335575174864979102604422699388943568370256069272929595270833983594094795009253609699769392766949350405027293565032306460225696233005988166313923292673538562719848334368369760886753268498992013015049507531027429733381340703354842452695217059569236268730522712750629674288675521362874408739457710012561957344658659547010056327379664387649044754578492924107686006253486084859807385306979796080386739161587283831416324752792094240531204271783561196470222227786680264315997195735479885715926251028649917090476514539665635684136686629985123241747325575249413298842575382319911598163965938785989313057284019576482188744436310677768195361446092555340113111325154126057660401004869324529175224298871618028181100328717945548765508430677865959205382750724946132885478071779291856108611817289720709055120858680962821549772911077423329183811186606284321194203712807209881739766247949750114188885268632054184420097066453917505758734347384617367247836525068720374250761690542354418518082722609024301060574110055222548479743702430094665640948980251532236720461350876835508979991542889453755854484344391176391561576707242281701987271211621792127821902386909031323562920993085682641937691106641937263902000381813538955774859627583277773629406921198583684475990991895255939861667805135144475617680269867579670811617505149883366067860232000961958019467282914907435522424822890456200887133840120367564715331969027449434053613868329966368631238634645418083737836824554176520441336888574418150820087907901269121700687483616738511400878389373807273264124041906493016333013934999823056144022250277883372346080510236656618356239163807171151957463221724572281504705352681280772056303656428781606197507975517653446485710681404214690876131431327127271632048694984250963020086403653983977628975681940045001096230609922801790102501042377903843189874688058750408331000641389420008903619455909934578623470609802640239109019584218584333130976687185470986434961838032338177279291539842090131644498576592626533272020158822464975648064783183069496358717964991219819941020516362791785971802823389729909857963314296874663807867229607887977053517993825834607896142044771105693070939380613075074010082793391028947974458280171479363013404754895524084918008752115670911376570669515977380717858784272335446856521151843398347191509202576415458390150139963611622900563824462798944230126366881157482655337080427634823015424206483824488649507639726453429428439991048574934725112639064799821857999899555077202961201885506097549347719064647512850760181464932018604936888580444376140979041507923381754899740060687281582846018773960808629402643686144942220744639191927157167266793046853905658928000348516218011422370176124999023506517520189078191349681410496045509260284191985219443843497197001487389894151620165544151062714357761531525066500532585696537487457157489505436154560854630528155870001564801420923798054968499340226785405757558819971148655414720147940201222973708405278846177709412470879376722902482130787138037648669667462711129670216898524620610296078637188875365156171000760566429290178894502270683256224521808184971417703331322402895158529433650104358461850316366960187076402417419775012210702497029324463229137057407253650566865552479550621789937212590777387872749861632985845132306879108719628628302963115079627768323119289931824761909891468043351255614379874531857817049142199490566549255399640358253092859115312738277529101876511480262695663394225460343983785901373327964765566559975676973645000170235268841654327756104209154774361742162293159087912477227290258575924302191577497195735034077962396016925525411382758837753336049966734474493600171480723899469507690218443772790796044895410724856296320825664534186930161327588694917483423843866509112300290455497497216082600001442565604601352186134546794618864796142204617339111783370686526334801521027178253331511864706739054012393514324643496609244998284701222354745729270281627497907344148309130397385011796448396846162340305058394073831185439086741281807450169305372525014853623600377362222044018177971133191194527572579091984171861769714380568023259966175780462035149408221862904821898195287066528390102335527051464881371786090688057032287695096600246460136183706186583131254044290079026244970904516509838433270588842061459537758556790658166906758375344558367087399114338793190520581433502668031096195304291845774021341554137657162499924941110320586864577004885354237019151696821920820877068767274322625928601566506048217945337407025659562558772767723623689321422617688293853177713637119893344362495985294388900739146781891513256856744698129515165470234052571204436718885798502884599008129953140716282638474869338670739640225736413116851342062966273307585516472666408073007580769116603167049727526832023085918125754613709147619789113699683458484819030713625960946319057647142767581146058604899999738190329638858031713288562045788740458814847935104590603207054599812703867154103182487658255405802071769277936601532281290371135767987831799834204707324876657978666174706775474266426349609610685162851856736075582146599153363033034851841446009537018079060619788843122226011106803363799356374800704205528963727115417554363365633386196737898069929432123564348230372654647643447617809717846583340788063382456892111250566568866684050902071639269797157135105820441741267127443901412806591890096566518829239217482055981920270466289809095550938635078513149586125579534786458775773287377977516051992460696678529720509377869120442867417799045901727842220529794896556324150836652547946171938665293479025037085201376328239854231147192098099487336582445743586906993828611797275838990597110577444684175744495040794499202803333972122826979005303627165366368954028497613251620202231300487704744223347278767167536498625310004006608773685569264851023618308103404576415077022767916789010236929758691655335961033188026191128325716812899095891065985585196959089641383102582759449068450793092141811711691796144639323815970652103301924680056332556504702222826506347021493378588794086381212653933105165568832942413504475876108545230772401423800626972458077170156810014146849811539303640648017255137136692208342064204093791232697155337486186706019144947940859608925792359467526660552588266306172329321247081269675272408528030983208892741511043761576215619422183761338681613353938184221895162131108394304029448760812562883166743668627480129556241986515439990389240370065610164264341808357862750794411858692167861682286157004967369473750620666700378710153694875255222705300358726923562398833279939560080253298287346110072945980631547553848918782288960382278670618877728451429847190189460306615505503450393569036234736697237420352395336903541476062747037598090943676091726393291472513509106497482269615332702008947636460449113448416349997828384711697037947664308853481750305420408537666210378990875504427323724617131412264742507901775076064034366988175375996347953789948661182955357346806447416417162302221578904021935973502718568542654850967880824528238368959420560367825106847373333347879438809230559535927584200888126068839955490037952818911740949292459934308534939158400989463413257399785846948001220353290473926717251824151693202290919584148827849973167076441493147107335276687602065259303959484645476880648499274626811468469454590625730550996606373628294900727618273411640574144988914357230361521799507640607459589946708010886436204774846413406773631215073307336371447278035622501553078754640150840479208353518113424408345886818782717848379477532690622128209750029057312458077325954686840739162001442446982344196491976723331346682305251786338524480945739982089093482943520646657713159947889814446641745931959066923964436764141345179592019811954109218012249683747597587076214031852766525474929200566375076158988860561201109177939675343703727835967963148808410586341831782896965884940205775858275801566979194646157065776443712542566893385746820338146122038567204377545989580339947660314223162370915499168978302077467822002102657026720615346741292608466715402021585019005686676304333217789373018286895062901737268616444780921673355690183127736534190768954700767597528300014371217718024236872261455007883145226850093392743027192304245125250555307526528241132086014078530692878833935320564755901377349938874796695992520855558736542909780737054209031648425500449375219976461251179110651825550805504410185748626142151401481951640680169789037176259848935611412142442167202488794750674212680333865009657961453680768843091757314108063769732838326723089444281690499118504397263170608387438783687418820973026373221240276525433638940341048852065827917324281753174035126002523770463836895260767914383645695768450947830983079824573911142688323920835848544382945907233624160624551921163076977009135686227471224995497173595929625078631218714795403772565318594638465688317315274684737091240447977833912508228946470239336726672513379158700267243200051260402823915541035315515859553604124000653465853292221655330016692387268742760534296981995036329369523260086308320880752445130886808777607104970825841024636584926658493215482112179814543412328220285939776584893523402816822691148893215341735992705274572931217795829700569869555595748933015746781372268393858245789170706804877827974279568067663800928421026391960165694647079750360126556366785057965983133006092709994496468680892824410479345632772091874909721171578198314578254520447931314269837826166448909329686685937389632002244030606994284237798982105825743294074274930726745452705898113741592423548554545461393887654149369481364240888519556124891221195246209463065204108482533685010616424863808090782717368549020142003273376569787174902648607778772562625737927043261312507055163448153082746635546817256157479236094705230205319784864152526541488940149837506486500757467348620233060534565199137756543570423056989735533997194744648189288798951024243349457210748451976044539721958452695033737360838066219803451198737384064326689833812333482388960496575957449315293063390801582500852574680234413820465095719199964258041085802731884959678042029414092345825894479707803346899386581199926317039108259963794361798912272363541584242792985666352785163279188712151476086884217730211761337889325885443476649164958309663512398638019112856132760887780627765592859080438363869511058405085763501321469765977344561493094390987244077299035205309524163659675944769374092921503636060622920503554308642808395174782478454095127029441006339772145776871159011913103161334185520501558597663043145715469999885035885257064380636055210669931189381755119775641866523953321695775712913673022495362900037511610843601252331251717052909896075314819384225647246220783965298160140462286477751593853026049772105144738341192696553960433403232603648865515380970931889211621259337667021212804152444482239735413256481293458574158138451355627810179557188193723332973074486949286711857755879679510051861150676982040898057316827091480163938369432286935876114788117691128770135838850546932829526201536970320229175147885302927900643110171973508278474131381064187163935117968176505151996402317648378296646440880279319044687185728129071208823919774820025614686749193381517623981487783942248252157149085064642964307992933087155475793099379199067926780835936411776288438857782314338529220456230487918764746801003138712732278955688691633157112509740842662706101265146553570539335782584060201821466662373443872682989058183925092614189142700541055439584834066521050993838189967676261146325010602532368530172861585164766644123564197615186832587175270214031583346424005506072709377338761962334540586999172798998279321941369630908892944336746649624566531297642460920871481286781027416103869033600857859429920232513492458293274207157958965022978515512401153100769334246996969335096335668155902061164664015284938616053597908444586845874909399640665489275197397471869500723324794116444548394829229767139797720948917429016000022456738287099122370115168462731590456016354748637875097537304584776737461223171339692504383900799304438036532749998064284645281626638011677158747484954116871370667807656674186202282421699799386311780022901885332326383962424382055178694346292025885271824952390495158226247761001619449407309519926574693829061660479135837799013614507987676648244297224746364071825615030294745472390438317247125601276400840011410693291895510713985778935648023725016521950962782823548702195289764655619998029220526769660453939210649014391132195662625784668878568788961898676968159633953839891674714469911501170380606520913050855037237595150579675914810452134907133359158232383561525612027446803909696472294275947587552897769574343016772204157180867135529776460962859240859159754443231507732358084589986303618171707640199930435795395530996634084078701987386451206935930189671004459310866211529867790788928927292394836471299053467896290450914068356630860164225379157999044544735732098009754707972067190004661128183422363761101661747569042763636207716564129847312322984985341881755632096310238819852396842960778269106758289057015179276058837223670601674435033563431975398788304758944964821587798411989811775539875634222732175415253127873128139816124666902546047015620716213729681579064054435347032065921572772508966740258481731087178737380970406762256999538786477602977403908943615894343551003800570259175505922850800368055937138800809481143915237572490400366278432972912472133790820759528554593469979956089651365130804589411891988587746912088669874845614544015872029692424817186508444710175350664091910392328686828545038806547244189973974479076681684537774659522709469879262719733825401456352998966039058201267680435096366566470314824025775483467398576100842471696129037095663639694656176028428031570682530472395816252744188518034605884369550448595146993282798923089837549354365006465138134130272114607260713953473299311404304204866028863878089841866049437556789285843231895410266869573054920685335739186540435208458962528388487753945631206789909458060128699018371250325875894438950786552819782586239732418391593821377320625438521469863641207835989292971403660982912495594678240157451825712806881951898783621944872948815764552959106746148037237211503562901296805204574972066892252286493298965575317357295444921961544429709130317095194027907188821884442751977663687980476134210445111227617187213518782945264641088585412460990268382043170839494100525307551495152021777059677140749473769236367611823094632477590700115583008581753118580027959411205186900929222679814459271172715290436076057402822258250604428944108149241375481503715999904297676886966807562163850296689902610935719764111010989255687456107685929880044045142195323912706992005437586153968104926162999798533195116585651722482438470196809030667485129094598025591899884023358232063692652171741207105625873123463094561068711151815579422902933048439237774739179421743434177205891785011009412585780199009596403071587222462511592854349376900026389299006416931707074970408883738388003568655801581023122356247414388127027747536367118774031686234680793316223359444263115185106959738317532092617853684641328811291255074891985502780323685426820030804201393098096438911550258211022895554786599835847235154939843602364900942209428039324056939423230157229872501799299210296715190781701747039064879332161958726929598690173848628975177784749746649112612311427990454855205500463612199716950315396442956773170346591364213054706158886577930545974002771343088393969346354627621866148218205389956763916824427015940647989849947538247221935702990720075927259514055564315444448937679501872549154100252424123288654601307420131260858558661707138734686100705059638477726133210597985199097699177838775383099240946079357647351929492930111293489981858523815145291971481335735786675092285553045805630615297875436546473077150846121922575958287364614087188013827564290864625196755871438387912732657422692872910312802462322986055603603154712459050308694603256154358843022823789230807063510139459577239574451782482448962236463264841013352321470636533396512689889035201827628436321876577370968773247382754881246401953654046123368036589982355024589818375347667445065155417203364407295681871998212141458737872346281112424201111292235035552818184061534046954162777069464544754759314813009637379781113425925719649674545127846017636534533743813086425792601536207247072122470217482168690603401899088108590511796006791939604605378899441547068724958569973307097393890107655062793640127452883468785738374561332072686237416439606935513806314384251843491565353655347805278074436409422329746745727058347409852890008765231025840870257138762017266222512707470472927876279180398458575613252828929920134499878321687631184957216081051582753919724403747120382959324957155961361656424093494494649519262650715285001528322669732901774480988651902781739852458682972742066886273213623995451331765387505213949567258335229686384535334368272405425608978410399161999038409868720296148704025563312049693280262828743645062848119460323458855471310316731915736058928527989790927568656871141321641660103639360837532417944727080508366313176803609160345977016988394671019902660945028431655105120626602960136822410519380548568940443304183892423545618329786598013462367016755483937451650066719545356973036782463692365020802506774940230016393688748145121545864342531800429608868336466539434947521355976983026775156504433518588711194022471621376177845669368460213190675758158373344428914423630106444752291203107163484028111180694271436569240462136353120184514187708371489221859025725783784144901802670192601182458646302441822090529136056945815071417927405204689589409304625083408071982979588147201114306803172047356513465082327689881980011163030523890875787378974347026732738769094839753442334283045833571552640305566391081099277269405465417526528820995757844044705939151995921614318329044307330637563891045658566812025177549414994353121943682107879133549765055708165457889837525588991369525343990605007103883329996502314754938497042884685634802128149030393809581487460928783616854670199835011498859597790525196840553200178042659740529082901048181168541179816377410285029305120266195408415948247980452691441452100299974203665952740513359433351367073830181357468015619531653769991857950236331029051892028283368081193821321144023745868534148732300864555424530299838532220360221511319131810384601198470984577618676691656652094706489046285973238971286288777146420483042287329087988969156914921109953956069230585391280977538583782741880720703939107361626574524349350829487822583368446073644580009498581338619105627877358117703331279835975708368203126664159438044854699326165275466151702421851561033743090356791922844696963395561206095012221671380692153587476846506357854104642414711383013944138221989300398397734907572676671739737402806154534587722522453800612352631405180343590357456042941751818574027256822444207793746286653608490713657223322686449023325880551121208587933599525189889813552913933941398648720026790984508126085045556466680145275495662381976072433086448151958795082589473902853811977682075150824371035183773042909180806790063536521943985056742553499610697600052986276159212947116202808558055558742954716470293762826839552419119738777116551624026470831084810277893276407180846178567940773339929968017196858602098144247784268133777062426755243610032674075309984513734112854181557165181149068009092684725946751998606498317948304066348100154265703141559181175674905336898415432536053888317833158397518269318441697920092964155335782675919238455773709625200990373252249501816937809219642600268106861873459328406978878360750757775951024425535943670500413506553851259092829962921629006790314279209118094388681743915446844948730555497500834165799530912616223412815705250795329502587198182151761528636624455737533817843201599661396582291835800144096232422006164814740713477387066148286664793747644590630153589431183021563829577719201592510054492767328552430764196399035705092849774451566675827406040473649531610156907405332200983535600012598686223802792756036949657707720321834217744485579606837351010505647781731424873985782498854829411306107245109355347638595714271383244897866300545136521974085918951434233296470289659767242949010884324817379244644396151806698099954018704821108790808429678909526294411520996168531019705792126097162955889696614052128647439707953728122456538147931547700776172567121549238749984683253459052384203745451466766439739663459542322459097618008929105297333857242250696365535375103020233983036372281740683109438576528541308379221794194138316169933308292830130407978386673174674926155441165343260693846491623251230535230669711504417538772100164755860840478402559570628244309775575865031903469363133686081213937629061067733558313481217743197660090831995619841815887122538305562242977902227314729135174618396793031564355646530632557471302600352304913236564070686696072199741333603128062432006692350360972570837804933399644475227073293992053407666169951619331429606173857898138284140301892223816059294540121234211440768848415814204338573393616717455514299053946782583462943223608679866348532510302391613397460819865721178070763490832503800716573150613489682810767231979029640179714448618604008399894424455791422212956877226097213111822424367531647777680385582263488230652089001449021449305100324898081829849152411265660526937843325111003702641461111980554793991060031540733182329573716754909364269977761842549915328191652190223405725004923138480609434564058211631215796954340365257665934527395547381990598598154190036294958621769922061080544184493450042538983314165448337030797128508424874047107694710581209746919811156075474327554252956215826085236370860578154491531297488197939171553926904897697927060697120636376704687054744102402461754210713011714372822458560085293443957897978027040476385748470285289495719272066829408804455213508826112369878691888501877988525228617181297293979124771815864673986272631498872325928791707145976704760766897431793089209803686081537600254551070663974722669464047219495133659949817175223697204414303843316649811711025973379364517567116311619292439045452810739387342802708770837529653675042502568608532482342761192046599896028195877359855755788105087261732806637516149058262587477220377451040060757145021164510412084107749275707029434839184265727413677304487390437643310528375064333956475930044133306354111783132870968398388819306984765643690819705327917517281427634775407867746676483317879214540607903998780077272125718807691870484090248998729918527173941790513319241899173345918380712761368903811581703599484235012589392541732978742600453105908048750746286411001849703868548379594295971002407288949770958055704907045089521608108935907973193713528416320058741956448425038679960631665391912265714638522908865836703968530858495545708011740930062756736220001292630972943929893501644700682147166812365847238116758156925670694099346944291616393081895315366549609428602112801960690134225687000146499844740131298497362094832042146750619130447466219214386872732210480215269265239563235848475695976714743979119706142773461724895300058553328952407896037558731539946966402298022443294308497987685070000595785221081677243431857999623233343112477115467693602769805432577939614784493818914204561229763392321909232379837870679258916000079757664739436541267146175685376447550667403144551726108836940854698938473097494074561308794608746056570906964011578955199020408590588228029362644349841275376504324469651295139081441992771858120166668171329359719716277705799715195882032938028235492340797731876309477065822052007016181994410766625818730170926922088364517763444795273096486816667456277941995671483808892226784386365288560600855982420232360143111708264657630053814465309438097389653399076278941657554798380192687576335780555769782982828641050992825845090021729350696396116949368659584235301025510912628814872002794870554240937241767838167148726878421135943763973107496205021224854750987801295846552107340976579285412772454592669200914145022462618727608057696795911254538866589877474745532421328580758185331704475897205106174722696969731530061094233736994543939415874785791764811551528174134272875448227079339361215276057611366863299375752866541456673414072814421831549867089511299235510768924135647621661034525335328078069328002214096999239713608025965147118689305847147446339852525752497019455546087138497054101918764246678300915301593851766414712371516818969721464142180598977299230311191058918841756610472693404847624835629842508192949414248262401758399977969188152587908514269696120328819475260527450057946769451636709831502315703044289896012170704693708163513148876973326581264052629046996121425060125194417924833382661055757903716450567457562804552047608027981657941710892124573811038022750676953040267422786650093383906163751529911211437169511227209103138142269368738802156520502366156468815755047757186408469215476730547299111253169987745496946587800843875697859939809060288546533864925523963592516080879452061367000438567618712888757352462589683710505890943550157272406673113142796986834544501139031065214391928334675829569925040380987556896053399545566507762044078866586790304494913984698440161827700811379203213134548001745781346948220877781915746286603112875111179378366376011305832066037639355425704463999081531268477919253095967501784018730387432142042864161825037556890926133122724566605840563757726742655162411526763579376799290161158305302538296743631708725054502334355087126447477632678689361385474838773069798076664034209038106617921302997440188357577400282915958646340363285771415498966819946438726272708864196664140791594202522796537564243748636284435361641468551943943779068113233412270324863854186616714948017288334888744048512231739942325522474428081536471711701393300537585707225315770054639770595724504379657326675578007927741457913834705265203811599795863331894440437032787714600186295007329467642629388825599525067567591320067884074697347426235182523500944504787882286397390391214692064339461829218192260593030029879581049060474483561600686012290074610845659089478901281580060681793247210418134402905011953030537472317976686838232753988165938660055631881463057848899520392548453985709219600405187468140073856749783770020256875016476208169812060415966650487990897894630255320993407153101532433611453255903062986806691294274809098664917051733048459493383571881346835278021857491602128566863989782540791852312964719848329029889499080342035954051905767062303513370867338994189169690227979536066215081630024892529261213518262537472974914072205909146482480345342713780402986823689329724007619585062400830351329973511517317236653484609238807097356559121823062445805243590430740631768789009080182555826127051668145045875101985863440270010597627192186238486153063359376452651843108875044818550886342662173509042739224878002922043288035897408007696146735809474430838059844776009023696290036101023491505204985863598886679600333740617067835650412962553535128621835769357408604798359663191702631414038642876097944604970947027716249235276230561839714437846372892381686304799351554019661433726708128953356967664075098738131455911324236947112940420839002545980688077892651519836128709241694351856907730765951668230609721383977382618223310238034652832888321099304351364733299024966991258514792252524797449021149422538959158327076095037051536664971421992321704398146140465905852250730698521270520092181512164596357644369659834408622568757371248754444277919165313023114927124976095122710459436474932935233875599654367299397413680600116135872593141755080494094644099493179056543606058906347334557452967519576971800827571294556448973601129123355796013666954848512542351493752340822659334736949376452098453667073106004865804760819002677452779340939919392831305161430543382474577988005905224630699610424571673295802150853858145306566119761863733857041036735878667259097795735687624612541919103695297004871404579937822186181598681304236652952373759604522662420176010673816619546115575235776628465830492665424351939286777312765587446965609718470951961646720967263319883348584530428130982655344781162350419703484208835466717703068764121014861295726277391171430270131963210131060080746309847542433252140013622832564777073798316488550690813145378447180335848832508428949618847658325880762804083286714567860249594175062158127059293444557027511289160378522383253699083606998988590328787407991065815154827019299669694827067684343669600065812841116437125633202609089708001842863174144345041083821456870794786683013029808889637450381077287306968996260332940445253209747042761859811167463610849745610629804020726333241592679743348855798860074806334337819295075042297156028106074176107788735214601813978698661469936612621999468607686644349731758544438535800688464286626632020130692688250889232662745602891568330400726318784705656936330569418588880444722051405895102161574694221540837922078468203353880104917524287822757937635157098933245956895435687135725337158397087458453901455857094585766372227482319110496187475461778991959802868913135332928032903685571400226415962308239564433445774884445886444733080138314111015333575555072266417366345668013020049773012890150887058209092427948283117050188456657062630698913186407059514515618617135263662006715671318062697492643397570062746709958414010840671690913713083636950082055655981629749789535559335881950146734016487837801041255948534154618920450170754463352202138679871054798168522487125775210793484048908595985805343215234007470158547368229334807845668082960304135373387017276432697985614545960368905501084811919258569628729780623396236175423805582559786123780406976260239067805090254764532529279890210991196487007346876019859366215157566460471043757627865212408224069294697080526543096503730969621428092036009879496547798461312110494324949016267009194265865854187661059333540154294255886514594954117503523681090585983470990685286144056000401452050534685882033233762846529176933997716854470439906617545272076411312100757553621566079433009181353056395796540394962996063848479681599971019931402208191578241473190650260855994289962430605348448673612301602723100878770417417282286520733268705591052482535707133745844820030722953567126042705133455201660764896003950235885568883422120346826467478274611594652115204898228615045568525919194054786068440082301711186158118902915651025016207779723690374891599918792566715693212183734871122037048798973834213403939845018733829301957456554207698409803938819967112097932994392707424120486733347006127172563498799191957095345068135674267404770094100709572397112085409661635610374207516857055979268121899002195019899496488002285353815632652640978410547170309059874952429789469623981657384549788339421273628291730107497547343583205900139017495121826640702105323076805549851769839416040285635977450834840587764358690057764775814581518971737062211086680551808167344785847430949664935214962273356121253477230242988916409313580914349923534395865268425181888705531921255926030056986426528060638623353549236521032933008171661600321552226433014366653861033331830511787332163158254115733294538816541116412959344896384012971430174495218707400534329949885359244320467215465086220831389134561683889628031994431142977440066113659270221796445206970306875962581855284106455422856320537637259093106477187726060581482031743263505158911141037075296684508888318661489302980923352086766133762133128056423939864805655676854834501698717332254857501476632291053253881221332871632160976558557667485153819445651943618576372992600830337023073543368087322862983418298045075589936939800347275004055287640484415974823768489534312502819204054698164304087703351045825611392738952501471664478296911336384524695619662130262241063008368163400095339651815867547077894173836535033594252797162709776342064834830913187682107313370953264935618017455865454184788342709997861020245284820510416572047460385545324189376276314734418543798329942221165022468442916078109261147166341252014356012749177191768730200330844729851406297849407895798253501578222200663297073143122455184464347552390248307899073914544292966874482680742179514122032542220140974582145732730070187159948817806313605388558924115329328031680027592857570443586362227562182856457880088986342211248538617118668429422933072384965832764295893782777636767058831347046340928918411606951689785591758353449832880186246355897530884023018580798401076968643572533845978606931208623929104592408691581471865915644849673038064039805398646514447846867877075619747732407428751333364504453731810250065329467058046736703832069095972545004083258415867198867965380512888865741117621901624373230090863288579931470421920277393251714731353927374287323672917353567991553570896318709608514273500578445751857790373649943551674022587335036406221127706521433356087370097224276952864676096821180332612231407736683866340876646452266546125956797069109745161050854102611326413161017075680700590342808748618840747170899993712690170513965050749447010975620896900655617415915923133126956533843229620263188056927981133332325333997185788414743977940526252123780207249625640930097651376227097872287924723634691562798187360664913124362242525089987200845723757098465609063113172649743004984183887681649647455682229952139571964496784566569834691718433913707081022370087869004845797363394798655263225266820115852135354275137764963433044289020397835454257551233992224026188848831445196590799358098826514554681955180923132200475703057633508469138971908821978116438334748710922829622212069756942005232673633077646704151674123979915439456199648851128390329437268318552959263450951441399827536078475504055981665528033750136481439255742493206763701931550291605450248695638222474915136339194309676069744137448103881449488649687701774180295000333036666299115210748922011529233875606014019257174806020923827715888807260192985917365767392074332383880383298280973298491829909164473459101935469743086672649382637996888018963398900072136588707011633612484086258579019670973726253435288443122084836957820430150241045199736275547853391355589456112564219076466050045282669961941390932923128177154690444964262231697072982686833622557657395748600983436614149678060342810171296825602140591283410048145246311483495882637387376739953660267098097939611407318122774420399034554987147167555032236202497064836316755138720165725686945659356042919843060699509990321562393449170703047759301009130228869794572247070710501788954622069738124850793922593697856439461207447036794236489572223165212784323465493301089934702774553162533542330822227170261693238191945720020373311376987642013669049373419821966997957957228285390625220949358845442686074157229644704318714889080662478064887618241614115304248781471316640915103508738796129404030835339545822029607560456041185561251710655249840347657209077529500809294579087961399001036109938048015455764491281577055517644590547627767718066628754586297630518041151728442604076878736298068398008420695805778927702872665780467282060642144673884430948122001999884026561458266015895098340511295768140665381439733279413749054353166414784262278912595509045498101241675585651091839084202814113413041320684736136931525476310131944274466562475513406075779383563354352766600382122512560715130918569184574436170215793201360675989628250147267656049751513522287957020755614690883122352535475987638348379333699055693458237869798747774652463417458467005748582306238762069340562911196813119393926231883498778688126819987264938166676231008531374098394733885647959753641840365968355255773461827761977818144873023791609244322647248225688538002808626874143682282572345389038554331830822955846967207422894312925049979773504005845290245078257487279336377999886863913058224675818201503084403261860252039400960335845281264929169704317941846234431266088614048465631827731765309768202680147682143230973467352909370530951604915115294209018276688285351193976376849141866743796028655868458643832957572339728990613834214539719206702665280543033348038584805734610877037857246301411511324945984150205417759066591887153416833534850931260754230594127871854617385048127253187029386384128844207507414807133015695575037030723030921368964985722150595597568544293130243627886122976838902835618604542099344028599541992364843310845686571731296362915587121631651384628974414987491689037442846219116184133022326381589158302881179547602527338067129064079975574866896230746877510622086450428425337365498146110615044859496240702911608940851650711164947625060566375743303953199530258883013131103566635320981609160033882113076401647996321226089873133165748592137613872762327508105037890900427825799805875680255894804888537213525912714622261657325113866453833524979774786521196882196834224721477320313805584321449550656159119986907871030142905193395615511337928968750163324244890224893888050184958982420794819005796856777456761781387290869652243938535333969742740771951780766700515710798234030605430282864069956093282063562934847178908682937269814107856804237509440190717267666506203137183798652202278390814172684046780428740639478947942463270407079311650679037651345152162642495878102899790021730750131436587476841009247602760301524225902462342336360887939583966566681565686649933630260832776222537401748427469281711844769543302138278735405164954902323008814864650438301891417899275687356574593017732474793311696270075037552347195455200583550099222996310680110333357430951259134970103834660538652969578783066791964860479617572089497873163001679668895807178643157039317260534573610754642846018419706059305852045588702492656276769116433714156939095135034897186201716940871387304055158858875735668532597610760663393358588406032920218471997975099858747665430532157106988886047861961720411739055086633832245091372915090658819710801788510046810144589327987371156176071892250942536317613737958110686225109462881910575955248283623624215561424563994268842485625783527776872492148452155808268568843928196414788855395400208094099395918154204260450153919374867839521188041508046060320462840259438400341517672461839629020466799970999849451130337937888528692134492824426082782954031228425348362007628030155600659576498898279301756342752893528093964300933346991705331327141930705122897472469501943477592263509145288862283756675987186322233835611403742207806441059331828787253603708866857543706724633581144812643534957284032336265878917562962575046499423429788198188304934844350567599656239346825608056681015063145783549096443696869439594426686756313996227670397121629217202109155430975317926380182112229595355288892051367359874756743033916810357898374526238471890805154461752230389307632000036928134256481658086864270838312196548138620030848144056390863821456104868970705587758506308314216980041469519621414946432590087167163796433322678252594968765988434968510176789595374484230390413897613729030594038692277968841292892092415729345916021431810972286327117341270047816130060145831143615311584590713738958382845228499270654366807634186292349380769136812828095193057249331521626522616131901978027866435615333355675684457777113094137608771567939139656937954985208911488565247117391088625379575925134974794821261414654595566931240414787406250527342346508119193954781851243331019176561175568477745966863371892981673471552088246071059247240150755779806158071594420535381663319286575736196966392816941713043511563936879049073323101385411891985743495966990513315442355345158650037326577512942186486703411869188288784922509818506895981921892977881973284287696225605922553452407329033812009840002887387073565544201988520206471796061889938522097563243928520454220233966608205143980368790867367538345814948807963747558499109535021138449150490465604331127515387146985526240965926456144164713713672503434333523263619349046552108419221742680445032015696447573478798100455379338568393501849202987556207389795139862063838192352973839151587079226788322062262200710428589314318428564421045402781003993571496788181159680324154321598233156467992831307431172328918938572955873983147206905719983218206130127731486668800052425958033626648518213386319121173031761308483197098873107783511942352095502400380303585970342874066250461707275213156795804096715077437487402639987805594884773666435805220742516543120296527176207800843240566406761192971021239297958397460026024143986044661699176065626572859193613570545961295599322566599501372516923852949425905561033711924486936585307341047038067386102902136533083000384552411644658633479628898212237017741951942008658765321980174145307700766675317984854643031517399387470946056131935425746438799827805846600626047337321870858995284996803071420551279401768682622514189960344695178564989937542100090698732401447959758500914709919526517366268701375374925824665078917323509075593040826963516806436618590388461324370455736603903056163379663624291922432852466176569175585053097648057284568410073439312909295354984253824408577633260662919839638596598011018150501614570842291129782860380856160053181439991793574371569884330733416686203503216472383876985564721415039407793417867560899024594980574925221212728429022028979882443260090847004549422704739419538980209662267839842491534661618622898930841377291709922412020990527957605694697409339981379952245145406784951645380343425908916362734442125885511013854496704876086657872218868276973618041641187598094810691900416582644996731512609540868629934868286440406424541782338868068080568078654996917251877269835209509405020656788419977650930812032661298802819786685483766449530141329492020263750155249168616964142010285018461623034283012024968128838474237483217349978727713789128425361111004601932085851607177650294638115271512929833709805817460674688874526540981896795972904471811573152034227196640291833774295760180284800995205136730086272017509961297322904340400198967409551849675249601880756028641482990422058321336988688094344232629559660741035811124620199358281442199334662885871791383662488474407918063336940258395211143686197509565504268568176103769063778786827638910784083900558162757247033090681341892729988511871394357239290696512949799122194113399778666372486619540688015999873940292611892627085981653559045915675181821956736044078417728189923036914443534335469735642934383120785431305657213268092101588411006515700333201355445289179768426060871275792460205949922031307063985926390758738517458282488462414619942685452586044198078536630806858475680045811626587300230053694389647226968556380439224217726131904222525205763148624372514483951835137591334784636605014385799491814876506401586202362735377001887358695413518438957878928992106059194429136307115407385831184837694682794688951877168594857003906189162802787972030636426856074723974870564433188323651965094408575122297715898606801641447305337706494122199713608937098914832275741145677096872102904298266113116110630576130829756902126248666890450629068505718185522057767820352953406216729059756842323801834654770359125492664632139979143538602026894457040101823572581632068137867179327910889835115023589477974867246032049738759342543433347530140548007350495860352382760054990571683790459416029238449896636570417231507778659097883300389067261000657457965171565190336856993206362182119302797596756571531203453999910353594643745625907104814934628033447267742521269499807288043230603440381574772975974906751603594220704282256512824473743835801441492370411019627281835734064186005933242072721095772325217780773620803888778416751796090156416096216313830954371712290670292282237313254137608239341189503795972776297196954241090781261473319868185742517767868016833985934691104049135981741740730747965407727533852467484149316171870717134091266426958803116203412104255434039051735098523172674645005114230027097711111292084889855515265657342431507195125624377731720686687559711227679766656124606291284647657225210856152357375625732164881289925191054509999502070807329541039228801747985467746003205886309436674694691379785683939339324641875252541850914899508575094430569850670244165178543595591793132896555766182741648130241766288890772765808622150059292945314846254506006949420956990737082429999224765116699609741093607773648449539245253313888513332048099032455720119160766705685250478362785757218350345014141329280674973874981913743175797843652296167327530064678977715693875427850053961496727043241619110081905408818498731670548252065872520386618588272027862410413359440083161247867706732251652210891998399550877273624127580800161507869591824025648435458892457761263060091611215336744185943342967895185144986449006471750670757435199402009781660784404570197948418290825438883241542087523741287217245778505575764055133472950610040234785361629135812143725882035730585453958939924539102360141490293480961374870071255788309103608311352748916661571264359294112676944670035124927282575620083397402592207442171617943425619248882460763542537652870606718832059724921326408362733586707491087520924276444753678922018645329477972752169539258393073022986874363460451174721183407803927241929235049703882233287941860245289023475481630524026985065668581385383345446257856661826999080638590648711071682675190197926909786815358270487971130940933667694552305076518525050940025863129304794100973226360143729261211043542706538819596503444079256327211567839213009273538636309765037306172981333159752099529641058633486150744724340990819916740119171176656932355300614499717226194637876228432047229084651859806501960478915621621527341296297403415728503818313436567887565331032978212505677406617570249827007965049116441304470972018776478410707110792327207265152897386174577359667716410722138397617528725721647928995204425684299549053699831034416470799516705274932069821163780478015945053483112426950188650309379905926254568424872347583194377676084722410013173396133241708281223766081052713759683065573988677090036219808167486615047544277109017520697409593086333998529039048989803537372684969955561382168502391364972164122174872972992692595687096936815876248844246933795943483265318900910182054772017129022883675816328660061994273363580925162565027447246650104498556262620396619933345367457308491613048231793601589635762497449777347050136633865619223838359724210483863298333427212665617085109350553356546427024944569302759336936813728004971385032752983797186341027894777157748463072936539400021656498012056351640533423469110542150163148034843349599520419025566153330799051298432134862542570449382807745890616124337382556172693707704738874831504541666937458309074816275202669818675200983119693462578117600236008555060228680351473811416396623622249732806501973987421302679948109318350683747504606822379067301412436500732673266631192231167580798138123249242788828614426809209330929666039612397183882667301965160690517184117462192904682651886301831930108463756613739459747400856548530330393857871371330689347970707964910747097114147183980000482478511484546822692842827627460619036392111985560749250593465116982901879874550634938738814878456356676694847069058025135087526317169437487544605603751798550751943081317013944883805491409932322130205069226851903018334203766015842934529320873237673457782584851384565644597981506604922508282267942749367644452537232732863665355924570054788899472676461903563248635211059549925256438287696905301028458596272584307801291041807996029165905572403033556403901043434515551902565733364911726278411518796899353175609470647736456743645523735700677511872235245132757200405647020013960813844307454210336290372319420305504773467314509188271319059169921505880541133194137923687954988899451339649096734699704970506086454653787667358042983049969231434986533283002808307311739945522798585210198114355526174387598341558761592823796008880708783103286273544504941668469183978754830511078564607405938149281986113010237143317402564436435479704433798769278051834680769984778289890961223827116849587308236195971994047813624181265317275754505338526582210373876860026732129418162791557638197699617535579676075481852519684255813895314442088369340795990721605401767725814749009914198540426326044629837024070559310012442390663875997821707274890918220818283666862472514098082432097585697738417698753966385444734372472717663123720360653318275844309272279511820331856501035482949991704887925003171621369438308598318484874931180336905382412100931433949514281035111491314000719459698735242179932029047680672473460220067244325266740390916473248114558864588239688889172045303401185525881166319760495095579190271337417657153303634973418517118014085530447676494994723704500393558304258154328112228563218044034567509380494498625345664645371493089916926968215009272382046968799358172756182069540256852781297568457516560517136585275811008162094951231485998685088360891203751127093654215304338124615318685160647682023367197771580918536346027029246625139734832199344807040655669156516851870074499859354966637327593153216537178254099274533774855651131983251863186046666560741369782998097741179960360892726072050071744998107838131228026046536099634132237087892332385700734601101241073732667038915498319238422576631954928286226081341885373852684493211253900334721959504893241768960264012066495150151596051669299054082000715066497085417182074412705853946685496391813557746907283571285405677857333904850389378947585516667979863490230533924114468073752016504693031407831486090212250024510589660209212556273564334616864561342725137096216599912872799107183837440836296312969396103389389134688832250493687283681518143648736921487702855824283545110773872700584504267190484957387851405868356229985496733206553195086305366524660732312405152781397128031606436232000594081550234602847441427558994822378999656175771055592060838790601997246919900619938121135584655254106148456921131402394207078755678660331184419049906565014759616548388073051769239195826010475125034451023645236041991734005694222097078363661880908469297652917016840707249888002807685689807977101609961148379694639980087920527832628624605465596452853711538304566888769080184237398257145238728478974911420165122664651871786851996612826629349444751213324024842413489234596828277106881733625219530654092616651671891661343865684739164349300988918865441442549771353345218728545897273602794793143660013556043911592425773935776003055663482533894520639441374302801929620302556948711940373790451306117655397073136715043466189905914870148320905759070677722214232128954600599387310653892964345604279094131253294030645149197179624986189450762967089062532979049037314008335912335438004234724034214238971572700291854580520338230587635046919158557091994404907101862406865887618886255736345417573196156855957367348052349688423628649730541024805347361758061097714854964397544744393578563394411204503901327347282278325049510722233302328442819173582035045763430395368123908554634993930637021806395428717831617141248564070756249634054560672960717937234370162243126243090475026305137393875116529002268125609764257616821705148771751575569185997754058830626628629410107820818169972795061925518380874979402642375916627589827795557669717418706058681600313431824646838911241328860619648604982665992151285578785395574149467439192188714601625653089573971786402609448640847731670930483238775735952015050501533536373642178277754704562009320127199415873028798983664757728606841298842498424079745449350400929828298185524216549214887175132176579479388251155912479724387448938226759509120610229522630081592987262922974884656366471091984151481514191573326007107269293459997567634333439020070047541516915266991811100124901024910853931276271944605741498286336310304225820824382939171741751771618504908718931228791263252941149539668058081313291126034800434739819206210426535292952568361421692680234752131565428926192187556944884224762249651734776766219397300711715609416523847668751288739033860837099960488239819572342875705264657969298142994504186329647710469645562722067338179188853349889595574919022430248294679246187455844210566985584734537085689535744786311821423692679133037138168095372274486167909174261683271318989121710048942994725821705434351454522967750879170368947353430746823532526360764561535063692041340936283755025028385690291428326584709294177346830839785228635499692251366403254362627620707198232473771549847378158475890050783312897270767869205989545290369371336467849660827758375161418843526226439314058895644139260478123588421206904735150282718033367795127363527938536371553711067308788433320518378505886963397072110244640239621709045109996007736540892184415091377127993525659640429094898643249359153085327398433195378871431328092110434967332068974255266804394527623336965731760987430008854245663608930120792279761363349363842825821081817745345461954717108881079438689991620990524631470743639577069977672114189254181241081842712741840742175501440932656914236128666741644012923136253264617330503378110807912201502666767462434723798375652199734893145365316068933543273116502219427118476159652803542789863279204679193355702421831092653851233002555750856396141541118144620844010485701552027190947348939139392113325825047869432053204998141036505465581549222638766250648428834542704380929150449298653564621466658353730591399975869320621032719852056044070945315168050073716044002936331711196555032101437993805341664901926266008760773192958288929614503387783408540862808132141372288104006621119183107985675287102365733659460638809348654601983783992396526160452421553304049009551057294259833432563235201274766095393668507349412039023931400019999304138729696915782605187654547379173983508451349744310947125777958775182061992586553845951119380584473007286243990794561568581187569025792851054440405113171799348960751219566853787064188492964311590546978764632292023402950271280069072704696339294923026079704618530434704064471060789087703648632053556853692703685313179160781631850205222213845022820012684465465005314289042013916344165882429939039761503625900082669894980973163752092391090296738215607552834713783331031439320859721370696099593351297047685373296718311208296085979084032400153593590039799134285697781415826325281102429586657454667026355435927264996417051254032803978717490726026303582828414907502567500623660993993483130571229339044683874010313420028483189012020953305842438824361661137125733406541767063871315936644073159054857869811423107009163940281224101850392103665643218139265316218464023426019226939403950626344156757943098676538418437395461930702475602013255157779658117297659913482284781650778017954028050074564389483341290476655388939248443542137727152648663016848213062979123988422497487028046959229899559321511592272418432703596104642096831555488005503951303493225719121773599065921185131709255535643218203524344503805737725194297873394358243597388698412260729135726132729046782498069722222784929320272279728401547323491176363902581261225509176227645924761791645248473042773641296565108768228813657179678998463435970217628762387668887932589003724183769864429793833713477499122150710552487433535853448680225236439520751857159699656661855396708346087365251070326175206502385633925235412174002660828490472787008746011564550838987571514743853391757728921024542136487048162764012166693609997212461708998332082093628536788100993527390443694761568883989606712669063917318182607295311934593874346201207346863715802057812568256799554301168669848979511044413323241425732161810496075797052342419408350829555208258231292248519283752497400246919946711262191686082110375816029994789728607882828513335209609156532125434861447590764888594819182364069817555646817786980975262550663159088509403825820849937071618496912176501896745376366344080015328887963302916656491881614642287748909542946548890804293842303242101138189108567891520327121337230205394478030458501068726509583947660188740234927457517649089317776700828460082197379270152937642342102119157968217729254758843815849413639276605405790609511034898872854869280927737882316039963136728865993066968946507451906077985382684937304770673011827283153101237823976907102422507583556643526900171731748209468505933156261913821110428272846385741497749279290064159021839527865909151172263024129157734287364010032295197938231753995518744158143671508103848641481765565710239585602246848645240632544654968956103674646716355994863823356787560762086773070177873014037624311013392757739043046012434285650103680251174397540355793409196354540288327478785594320285723363275800720600508442525911002891002761720810078832265295734218020035371736545557586480024940094545030830580841496355866640838176441354786081384907789143520965878839772584393804526184159343547144789503321432639316037467124272842849455660389932258380104946238113602265396108688310111506191552883380435156488024579121051264611802796641508906941768019694357607598880879452293154648104118041775405971813146167165644864745108261901674571970392538268986408375983211875535692872558773453253590004652326462348778893083828586101445725730494953024767810214688571296595480244695375099489698132077827936448164537046743189258838729786660285290714462356256965032244314170270381558831627297063395466427787999814108020289981064410338754919960624968731139612646978140780967052172316520859332270704645637778861595235699658957413392082420721220497442290366999893436613837823890353206358047379962903041383938785127137023048053913872788846473925521870759529068366036552578726300077138198351989550671348802079065130980676148666806457923894487098308649585098781334720903488317499277254681813469619671393455886826387322010392159832584907163783420309800101884265733839852497917373603580524395564079788522836199612875202056748708594841803652404155572933540951754196442307339745710775951158755883724804927582676958512726674206897961934956139711419719809467587857704287780834943147547657917816559857606491033355965888346749688148310285513200292085210698056673348940342569547807565041462444215909586597443677026473277092418913427425174717678500012596378327294316556279751669909888728396120890958741973676686530520145870006333093244623671673431851180349994858192371617614239103415166210168973925031887246968642354620134647915273840203613117314309959491907590783422845766432438048689020305099874960061350768161972380308780128569206431494102385083028196439913019049925435347034292474940595056067893587644587080025610095982311433525173934384569601742667825019933091779196308137859350694889302121850662660657058512283753028888283787184657576358046878615579334905011630302631255094690406201909411139666669005036060467454864542309842845044253420168768066931980757004976116607189695406071344656470553972030189037558656508631185524807755789711756148470858400571195971654322877633151217915268605576410510453909429604013291094116868795671610818668792129936330979632899878376518672280048684844396497787139563591427140117613959112709060260750601166010289873379949179019493840318995872739057362580231243979399429246988664793533828488820038060275417689925952041004129904933250720063097792026438262326502653574901752853656543111778357128911433557566367589241191600859235521658433370496385367008478902968125348199293711776990388746775955126297371758042189037520259555950862958577484925284159294857962384613143852735372061723664606082648555893041660505927564375128813132186571763905081587655589294670350507118582588287538077098614555808859068516251509515767058698970046853805322903746202218598744409157558967051378721818744060495316099999314323953240626697130676920814009762058897591490061569810711755441973321336602721230961208275237246993507750212045585812272631391853165225510187839582266911043163387025002890794477025933736052180746858680207019543939307625214966424797459278374318773692944630623209789088882865669381201834874952550297132600891234537111847112498151214181472677965469359854870986309546450758253059542783340808908438587800658218229669254925596417286477955216714656371241695977281654757440840971674321377289537282837040122938019755786260450091846545058032825183046565039445517960247865104500063110933136528114627662784030659375541412464682378508404922084035113009537205800673794000020358357837223199001398299881400165397802208704440409681830019530112122690527163779094073756765253554557745064457582930054048742545746598041908771734055405760479533828387853615469376008672387554173740529050755768909159748000988360945976516847780221072051462342543849736207783461241765493834130555646104168764083852621230589330043118739189919598653074650883242136423109182758630420027887520185790452056252600520736975047161884556830380674892310881997501797200387570550690296595372612439650132835157454846102588020953222123865390082029644960797923477706674060549717794626139756750526337606368028358279839727469053821144122419716163118041832135379243430428680306846889561932767289051761510873043918599538450178402409588569316411009612386300649102716065311335514005471377841998406099231612867055949783892899090238218143994904567297833088591738594877932117637185885797714106510773832175751903124029920514584077428134859421621278846657293296606337805769169961952063710390094734623924219489220739950519861995390206792416804974116051625904759666193640477198436419447898483928904017535205879362002386526256799097335612916289511785631245885308925218144705343104939414233451857078295791392605581961696250568947626407073877718127892196355708713282048562879566709180102279648394106841520072009225466642877348194871579750520618232803252800074868990178417256186622896348252691108196689090813919373137252915419636377861183197282836901967507397132820376522701731140956383018185695158439356392766649443699035199014492484279464742328603346562321045995117694551316494096948080331533250735280376835349299631184976666841873147388961275330279636012735430185044272623755710369094691563369884873700374637190772137104793810638572689933567721398331503822357931674505262229761798016930993892337332985550574582752378784480626308901614316090003941964434613078794271456943063568818488004286771073462060270352684131299004726806789902419510191609934102028400101032897285286142468007251720817737769473936625362078965968761593455630414341572238510226339603896380643748448690466821361760537821419401811268394569849642992873146527987788108801911341374554199088779827919658017728644736509298477511933438319897362411325809350719784885598488819542430027936881142827454277142830338346523572399132390580233764628281285868936462501569433725449493906525157849631298462026924278125569004330191823426545978451672418326240081501749984240233724802411766687074060727273659524202557387549539714195862505003873901763799403849413932920325716098266858767146477754847349225646092449011987660286085803615362669404875597930939896427491557838461931119843379871154733533662811607184845325246529963916157947430601348998936076785709213911231110346799164948943935300749061998929048631517483531638300960068101498871414552305128705892122834015352720422194994259620613978598290724562406281953116172080146258427436549376023406617984624375959063837875818446738281562130200845278035060755186916035861998300992661759630061700530788635821594841818468612880922570699218401646588227757863607879931105167438798362144376874195725781268712100507966633873470683546396744489242605201723265612118608237184551790987126027942637529442457296886395629980014515033445412942939655773888345839545076798871985019768635651704216889468666810512793488855769424449612050739126954435032140628804200568101004786449139809132817029901214298957313886395770266615628482433436645153201718189283866886879557315549335511358160942418029949534727877376328799759108553927888235360574136572362929633263268586958757237465022114598669033441567601079012636348156802632360669462732776162994784961466043182517076204077271239754716319633117999522386852315330677057501566827715817342573176765056860313986272975438336407173963865773399520653383906271174624099477920368585717126630767168982248526971355913453033189146437387179025209300468438428996023183823801791908021698387008743032893228292676026516078276562724792571629247204941362500366098987299641572842073273622922845078669835903171345443075301824081286205033697339588572033686294311997133024599029061916485311104579437184201708732645635101600901442473425110458589001269822273719391893164243813082015271066117573392140558973952347568055878325721009014112799027122143491554355782675678582533561902963464313642178251076260780616811975306785874463023948821738766466519143813741702020717081932983628717706470922120164203634878929554746977555342760903623147791559830610782694494101461269482345522498661709616973530419090794754130172271896663724551058460428239676574368739628389083169110047509632075820565092003978566272541446244761928428298438363953762088094087798742414125072169868502105195289023450236525227857085330588044190523659892022117485630252024392951911051801586770028928350969269589738252857346430073643035442243091277818889099625207510492820757841489457912186541392875747046028439925605556310138257867998531156572964602702154473163777440384869350409492955713499493751464336595072957529916444340953999453080560015057545025557141496735609449372773524402890899886686519329144034252316576339731997859302131221298960498495806590644299690989377231271300544524005186781173373465132672507277580032614340611053149387378241835551967510578544218927073403992075117695993485901246838885974525418187203546761689741272846992088254429119113113666702288337387741247030365208080147861487742116182747085179017327608227322708247935986625676594239871973731199502402422820253786565070056124583978576678407904988426006395864936381143404874441594471534649752439061010527676673889129724219615004660029432680994829553358199621980001681141320084662485015664323106567640432265407523080759861264366422362065649198716044755752299103277581459110947840132829092787276537397058456456018187798363385180479569931143690428605367227937103233020258479272835120338634071707078574633396668766747420790367938516201763325399234553998823025270702888569353604138111790045318745855124902744591146426096348321085269534324997252189844393018682623517100684069209781485977267854163592604924979292239041125652387793714005472456172843928401887232599711244290149666959343259502165677794708046546297906465862790723105722685921984579494725958471277914032492574084557842781600941191777369880988580038194119564118254498086633884593661753600225295865345759527648772407233194583339322818424667991181259185661681333621105444356034253128635964584969423037530421658910004990241826600408951797674776551747394763577954166430827452946907146239514766361817136157933006328569745751631813297549025342434774624799022693886979115620881700674154461385735318200448663289124323824767153023650290221168348653552003797860319824601608951697365824460361464206439755938032486040943091382079946209493087489501512786446640572510864701396913529859111348366877980409507985696795051466523638983532553037849378235072294365151759967518584531306848745911674890193457752766541644408548053596301806659941402445196890812510784069309865487275581396341704450874975416070523955880683244851295281436147147442101471513183962296058256703697514363152193309056819270925011290984570332820009350140938816459176544682260596270861169527498860336227993181916027960546662800850116994910688472463947533643911352309873789103176868083542447258641806053821531370262154560341526577333306898665362638670362958208371161234782817213285658516193189866140145137618723909210712741356864255185923314811321187880128467229382480408881704943963664848321845572773017440752643739770957315995200289251121930817030780559952644273285040823570420445107246586577834624571576580062671542026861870477437211292136890762800733146685122349102626834902947574164555639282171999878370738200736907869973335759243546026347961526870756449520740748641215789298211586912165335023069270488890767817465072024279538118543352068278845372182683519721966193991640531522687847811008251643840951924069900377157186777724357112268760092307821098421797845810185852383509877047407024601144693744641029058480806807965584795726873905719728169372821281788302320484568963919527858518734540278175490113288569571670630217023284542441034505585171622374429506126346928576982625023631025156707291357797182644147982231570495642316538133443095682835594679341143018945745260750737053097605771551054533561910122406036657609315091855522641765301946979360184105453978801921750869624906518667445567613997917439808386693914191178380896447973558405268739724953451311588693911961599433525822164194013923500282074706203896548735314970006919832367115086072329234912117249225280383300374876337608119438418425699638028557905394192390281958129982391576396654609764776479194245238579459197027085630556994059834657561430138787379543095605917958980890555785407113646151635593776612142836743038582597875810896415179281338479697639970859973866793141866275996755237948832703277397854099764121169979603447500809284501794298961222810963854959078878165772767141981181649217319144993166881575254282219806717775756799289007564265218804824631000049099745227058769361462260836044407136089070035868040793417076698681523803961094875154371856435882039780672599005218380100499852881192445762600224096819467449728874636688904516825549552249640310470668079022260941326409331920280777691192195326722456299802547953296353686885711544118184546543106720730902382999926315513337793223254115599864663556785511224080821140583730826753595937286147552389480691897982535779633544660638499968879261301734190395780831518717348491627010518962609912678727072719428148386027340513775973500206252500822987946066328001477531280918018549159870657915082382685027644800741815717749914579084803932525115648158502932777547449994113101825386879907016631137178414174096948320621806455843455709369084087264943196091035532289812705603365298156867912968356109119925547630786251488443218666023803307518379167649124182343520594480876611229390459979196337125067354717524498661693471871267138848594293031306284023691840323083770505633177548854092259622933916587521152116337886721556872416572566087723869083134895468599061886847638777879150988711783439517687670505411136949741935251773348093724277444883175714165956399025235563255908531246931903719940943232774678568567859521003784313011999780742762380173093146905899440550641347425733500322496423599618737232428685606795205171871089069330114643611489451366338316136322234946079712581425828284541247741308899596575871909929880832522488182238708572729478192497239667569952405431318315674485769307821970117849527796585849663793112734065818107412718547266351651550966571900301382549939944988392361846521240388682692401492310649109212878856434418575794643382114736354991828041149369327743063984975170400164779343195903149147345924186492296174119579109715323709494913604891249058348073723633024849645893290609481073022522070841175657085498828202574436669637484724950716114610129905956520176084815045515601657076218940858149948174618816928417061505403977537803244843774366224384958480474944899102300270619254192892798684399961572243771417629556720549197078514197779230094888369835570505804428286222863631899028006301376251091783204115522096880676162174366416510867464550691656684410210380758757803275979957618549991245126578141442086227156047658883618976210730778961620258746218586655103464584381904572068687406534666346718354930654223544751203824316297186825357646483398756505677360734849326011694671040699540260129736741320771024685429844336422625961101150490559796415246608642607543786414425557590830475527929582773462583478314208520637023346130710536017571919083618854931744473676083426093081352784807356658827211937713206849297162248952991881634623656313827138797139737301560131280638717834296570897301847959980595169092866403547842493429681873990644687861871338691085366587339942575669147549952155539427008289959807864910851393722646515549824361822773232003782460159317898452661536691959682552134570504353689466800087436742125564117500445404626324589832675642512849418465120316164573191147023767129156531637957401432717708918758822719314698882698464824092374167510753196499737363993358238766213451585188434750670331758655365587522693969373760331721793959947826250561646983315058126327306442499521013270714234510197001711406165418135326047028909280347537405144002865571844231622121192795494844985319167260170050153755594463657488455182430716839308783842751725235125702084765915481242012281546832545118786600315096447777342893644131342918188733460458608132292572421144878066538530219808019023057161318984470258077268062553989607359406110571026219570371092803043945084497193986330281077973391130247287116743013408189874366365115682850418893203433263829944932647756154076765537799552123988961619427011976870427693104227078727018643006762097312035285442710733108565143585094066662793956846921982291841963040534453413805284640793846703130175799002026663042826532582724008492046314694359095448591523389064758110834808764297766905694936337135339172436373467439790029672728994677171662826729959836747220896577246175558564099717659961382219750409915059303730196565642961567326860558386479805341853815705201178906066148862912704365086974213827774061689435950023324290887623749514384791913838124668974239705516462196478488286470115632279815393102853395464979842275990590620053380552267172602284920758858057847033026485418810748915531544227326469251430301113186435894678101851278103816409423884960850402009859740936535492632524877372889523519385204280045132812826905554314462219741881507256641729483498086808607438352087966828209815903664889382551505545780568016103246861596166417185609780689511351981621622410096803850519177152427089473965856781613550728399912949000498110107029328525243896473499000132326305806792811013033360316209456322732072125220254899123224926605096006619119555337347522683639688976260836148779326624654942283851285751922826841373891986153714194418448098866343556855351688521081651368201274379525117105544561588779867039269436780036193721013183826173538693860908155341773189378285180597761359988303330261566739344109897178672674686197306235984760663028740489328097845313279682424056562113377061787642811007850276630676309520159171601322867719426410467820352247106967157311352541846963184073820045734204993959055647055117758052263383845357883330656155143624859562516866049967716101035973063903117473661223939266569708560343021611837752485720879070050200625048945875153203356771975454291664720846363384593684259888371851520477824792641223941939555066705519203787581987725079690258315656727201743049865690726360148287978061548239576679753441121611975671935100689472804468271774552297805229286811576566366655925537548470007064853620828581832695709328410632953932558840029066458291519903925328609434654800535291016591673833073952351996409286184059939765310307819672214267533377213701911027657152520697227654153015105464396008541861573530808609483415520317247736881993214051280525672415580492780101678024967849232702198232249801665831612381645063697273146039720621911234971498544577698635022108477483876064801008104544355002290220061843974148480012058042711494525513604951096901790561629115522967718805103270284897502293942586121239640145876092930961925623180931520381228326354548342304202452824864347173894506644515261260744176047634502324024969750386944072814659041890237929200589558913637236441010167395320935921880182770185396858457423311624569133482474876929595402204114873452894028262424802480747596990080350523372807790711718536064558047805964615356351645163172599078117778102337213678767742636997937359461349654823451439098843057631076122578216297135035503309502972079930628793175475337029429090223653165375086684986116039707697248972839907449909374191720899892605085613480276855181713991719126025711169372686067889716106288880677370741754251711045103910877227862520198636435236405100171994832513595685844756694564956170346094831111982046485217880427509271140799134885148537307633107655416810230398071734714638824436845533168237844661969806825334669775993154310703802168726571873310764102008026370295947747076446155082979817617830225401325484033227024986286038789531165238325551722393631261678154818615694266470016900663862124411651600432827568555069623313196991044510523570850706336760727037545725841749288832351913068858261418960903762733809720307149836330782449267877972409874007791460185555558665321495025266564504876376378961028877774386884162507008042775593651193477369039963178606431416383085380298885289085911880618840214348505982855922532983804801112731522580219649985010003722779510940232756200993926338781852644350967479673895080034835775499593860067246711864870809687820127275494878592152018355655985355150512551117389368335487309362521735223295745845615450112680106793895796531606828739312576859486579145897278862459357741132491730668634256393673594867363203242709029718823635144523942108187729003057343527985867346492151538048985878809861617400248440655286449176682751785183603845045216571275016718087659376919833997191347183573086990167471590127595043567232375904255894587345931362853692703571385369347983336329832300711197434899201058415445176120486295762888502521339770125197454576105355137319941787735478745778017607997787206381677997239266654054873048069298256091690708381206141973931522868681090502592561142499585521802514444722265990226394036878309189450118475800738307809504357946905030519397802578395170185099857425292121633923402910933570521460949555045810197160740507337874372553890920753081829628815637111484734524968772202278579859061186952222820617823714042880872354473609909639251820622283717131876307276030749825117812420607522791300196604114224524502516943699528082139816412620224591123465297520908389780153063954567171323150982382088910828491286836516564652856395936917059865029434364605102498790021160756410045622690494682548353143467943557677512843882111246197346426765699904059853481792955692310868167050185239601238000426176748755936524378521197060363115179607198536877646555794850846245292132022721215052053594064964663541724567508122054951090120153615351973653301473495678625718840506163057603152676066410705452655593799389083821200805146484574442113661281969901460098208218349905406763322061202513002151780834784195884743761395978115979972540000477257935541383924779720532067545349412904697458146751734813315168139453865348053051629144569327764537160778893142364335338837529354875473505901514970840179289215552552190785524428431311630593652037507945336687623593020459024149026684688457003251708153132716635001505581288940199615889461830568719447272856999682624882992266140564362870614810958830876577365369272460997393615052617675960511636806228162563625848818214945667795122075472770030364110689998588601865581386984607685955688512741194335790962866534650611948487387177524707794017874760507608654014240679481162811098795914764982112497267271324604369377141014712488803748510348898102926793441502989549160318443944018216638695412176464120588191952685470743975600658643181247531625191889756132940115739582778701048490761948155462480511907256272770487293362139703878615563364255441947842390050952607824940516364907953308624272404866747557712453652468137650339659813935565051647919337539401394769500024985567581016955286508435358913613374029722069875141489908261903987976138330800816863625893471987819760725663405779002755327142275865602321684085696224727051245291265455989714999587689657722212839227604734782765938900970927438988898765418320173065208195577419912910222172393411235287464715164841088853239518060937796244314339037566181589424839568538538860985500094940293405870611024181556661008776439568882907764147321679052269405833243981682897370152259062832857595675428824947419953305603525727790270904826368958232727699036001799687507035525438541522433778442151580217693343134638342481289225362928360436031960320011574636917156327997979475848579889330334468150979588528640122297581114625506992299091485598960071176745391735453101469455412337927963031485486817532358740726798084834023221707739878611302791280493755943341138956433679133278936838769704882696113570337693210409400706161399142695981430442812628324956382489445450522471909812301307429888914283690753171058386570954593924620739855051439974923333898329940736672179803657146205751726259056809008267269057791194030142299792609810476232922584283623502343166181968960153946787227253887527887517999737651553257291435860344421001480100815623089330325961836303291434025040718605182951237754687803891324427039022073580089347404032718134149584961654568178706165779539397170270509194857567030636350903313808633113028267124677844895248696212079537310964678219233960165800683248378500438400458724655924137449128348280407850512231352623861538776890182955916746914241645499756804913276797871501899379860614599199086137475514681255239529371165259432410899659627627950092847184454783274718972964833181741579659983798585321937965608634327865397864429391333530853348810294648450161247585810345665889668488510990864190080986799969047517382198568350242501020326739763036482758260839237543665605219592412989098931106162422775034654384444503699410643610405747175200180559060667752734033937238692524881340034856399770777649395115573187126980310511596030682140674275924942423140344138469443740554104461163008335162899036427225780241716704885713686201023945407761885673866921447035175171468366784291279867119530150790477202194365284572695043788870221741054169548079471446456932671809800810329831871404900989912798413647009026507528089646990397945635196045689033271565537564280846808990801474335380474088486027542862464670280431483008488343078431961745138441775496348771174245643606153404673937192755730693666649394859953967104808441263406524752201836868235242921462740068726864452749885649944587554497478070487631754045358354816293447431726708126972070211504795596087588870471794534497577689132121136903788636392345921905783627758828094466093479586841069073721221885130959884053403873638038097906529871161624219896600535810722785048210908235944618899316826540732351345861469464666221313243128936972058692015245374277963228856831670299962161637939075808412864468966297798007527390308011607400031802120435135360146677137114007140046695013575958246327904407390510000910753712466228279499550724159590474521652789867031053565645416958162727398239534677907243918059131646518619165617833913823696991457023029170184719637098024121193070160214011469940429692680177141703251678036138523902502827134014403122169630417742453370136491401157918697580234857309958119071811630539802915230861639079696036987724052212749522123495579261269054604082638519468186543275142033819154743079356848508055273922374514980218705201946394820864760163449480870177089991602060939684638522045147963595737839975794277242759146555700602119939450327355586882189446393507354077730467743395465342555513666472291417055630406353159802738470974585807599554755075030526717906195322237753340557624835311602116625143389078343688107680885687201144371800879852481038645712728376152649693205711130332874690020028917054716342838657863974894122263334067325531131385183863048405254806302161965743998922571102167713066035851046220967847743361725414244155770903496006214349501407799980166913425828139258136075550674413443510549289089734623510265865176204150425791183445683664376239217360360247536429431258190488284269287343163080705180131776569393706785831261921027675889471974350009309519480469423066739152932637902895780449413842555132441563641654829895216143753569949493103957976441008198824812266182749324928330996541192134554965185911718493644206784341144309998979957035167959281830396937428425545053499411849800931737185312151881514183245015319259697496735316475386762485348221714284572706397484161927838020088511759574959819843859410102145261428715568394855181899010669989643960892362588662532603864236255885243502470256547002864239309782445983625559521511257290057500857868251210310181341781305166824888199147230535950679318271035541015209607336800090099146508108169667059757384395220301043609483329110034836213643210428199517134482016684999245559163607104254868727564480547731635624534985567719289570354430446126755491026949229980476133200506354525651204897193614491784757458933642181756839741244427044062412168007922292643972377989501131732807236506368200313434323249186969882062913799948124380748843346751797025222095901733086949345855646219799615714835746513597478882674748463149008356813693335017716022961986747249416066203220530504097547404962556864576406814043874071700520958714501605522329399638628657902580936537242011813074866319394664325164961675353342385068370267061576437148465378897323020454507071589165454186052661604956746919711428479030248722851088814190566469480121356746003023495211584042741261393696817607193772713154690148335470273785472392174885034786610743870308977007848326654542957579034890616892383003682150177068925358297892576450578538178179110282982108545095371807587830920984788558682910500268010502438783198357131371675258382076235741021617246713566055176381136683846349367591609962428534193201056251035093844820833801006940141244814547845166971597307643431520320406119375104801732725457386445540870748753281646809208717430080924887094387579305230224378199623500542735240862626804607677417313891561924969835766491382260750057397957995569679034344392498155070317580556213643955518460574410201124708971066682650838730992761435657537712688547051147417543213303387889106250362609765340758691077419827173237834241795069057235681457540599231461233457536208516755363537762855453204064524469319126404705702496213815658446443638290216141432624296658740344099181838477547975072580150624541496021058723875895737578568453123330568992292001864814517732151103087930863130424477494155810766491006167913225313391901348590770434427018169795929264034141343398437044687521641247106995634350526753613287162049648217982038763842702830893804081235570864439406100732229543924923840595853636976496988402225443952448642536469676835805291364599857871307196761137746496631751824459901982622360782944243972540544627225078644319850769254039597976531435275415257449994825779778047883561648938809379849690857553203874916330655411030650794890333724366596410142013750147805710623667206833392378800327214689189687663938950707711637460049367876473894325969031539589466443230853666849142163647061889585692671177213288538677297266027196183629540353507404124950497666682008541431243535774740656884472736694482873413116213280030383535226526320454265685216914379157881294810198547005264724650769469857316743081941767323881849001928631482996037546301110694816012870008507463521009016921970827639526054394523027853380082784872394114171680996861217875620347431323466607351634111385051963025498693059291655323831933028697926183304839349706014296651655766821579413403890127161361007743735140876398030176462315678158867448083412547728574078656469399648686008998991500653370603912681150742744248571087187685508698177005931207001947458955355979566258324620577253943662257365693905549757886310970066909610956597636474068323010552395907581618066562507800201172993525466524282830483031947018794573990122022606038197167321611806954915225818971256328645397727820988392790651557380666404349714110836133595141876265414990432588767971026670339162899277348234853823503801887493687546765095339162927163857073088065698994248576911632875911323007890232749575741238002866330971816451386562573445577631548791521619335245385458712192955601840062026858112058568512009416319764714475447719696724482748697816350127592077741691822558834756450844446537253088402882952733481935115946971644572776326162695941394482360042374793865348827032758343070664081217208229954467427819882077836308946050260335737373571696356811329112577077888361469282372833884081313705506556509987030673526473391930194533543435236828718682747165035136547254354697839577120943583627768993871867707296554628564249649628611148338614630509877415459203147935124629708009593806496631179218054983302802812869431570322007887976503954717096811267091429482665409405853978903755353914384792227413678757514720629987723737304569675368740363266282194133824681671704876157795304249443504934758478574776802626999042662050415693110742088243426685865532346902198384744108455837487932763709716423519429461846852717320327669648718128320915031567252288182549178590671457801461198583466432803601160100112801974847255227796373491769229899149926618698641561165707108674907020681548303133684521660544860077766517046767220968283802181684467924632978437012582370972869814653406529608148374951975509997126697362471194093852462822213995111043386053149854386270165263685609443574502190733318278417982825240391041041833870896179559167581939405956833379636883304470164320231930045192099634687913046726579405773395663611880761150761799637947579625639974112695127202129430937721997901113501286212719784073433214975668041622848583316858307714283882588015215725169178763577413666570888323059735818086322992638194228382182558682504800695937176815590556558543555132484404025776573123045639223121977473196189461206963369727620588051970987136422696275415938314727790267803319089517668265518729927983116417457158963745150254357301242775288951976002807797364375368886965843293103125340241092448634324908541239739497198753457280309607468913678398073143748387862666466591106275120104975926097855486836693738958887383719707483584347414566342060180970755962398284118555080708166669483533382030075966286887469461025847060032711998510441071035146086233106853301776393731633473500521578752945571156258297491182793146096274812369815152433566672794056657121126892357058862882409459268054660199817180253115577017628843542849405275135246029377723947794216821923841610237373157531511282856098853265842748051304765001874615327469300711119046166553599081028934978985709779587024335183048482055611880163454353747983062766447596327497600200055613476814761894927937859438184173666969106918844562578793285611567271858159821950779297749155731221462993040321676515311647304183312160231295602356485445231458235166688697460984850184029724486020554914634886684927962539116545889378740401719583243586832895157379711808073962087907278436627315268882711719366902567183657502219621690826934974848996928167762592908292661623178158741712484591814840384365962710958532487529433068004664648703339773456025640224142443421776516251733567771621506786951694429650499552347415111073680476000797455118112629416065305621585897723817836621571437749994860664758497731156803871554603668936298679256213721436728325436208370958955616828478975449152206067642443635976708674240547479473668711880141245920890329711243639363118341879864254012875943594314930900630763722665997669592894914511058299710481660776143428458267009191672109947700263843262820358750378640307777319073150174823381543594371362620063298318004583619609607813591423970684831192391674268595209563263387222537313398004857867570800924171834821309028309091757813895392560641619531032213938837400267365815317389435551738783294012192654203608105893501106923246058445957632281697876216729208554728238853733184323256171715794133322746480094087193151493368974348619492716178901519589694011855596337084122867547460473410469520469637073100125383752493622803611028929393398707612242121128538644597486042073772005747472355678878352249833249683728403163712539206996659691166541244358431966128203943046196480251054269160368837474490749756585191203327829047038370010475208881841419381876993565140693170584828346953832428371624735004124985188358448549525242756588218226924272912190823492915447756325177774121163138234982753030683754980385659407300988855694314183607523280990360941440863002171567772144955520048803112173483994836825944841615012816988196411024060335810354746543089728355527729552445682353750331104481902398338443907308024282913426046434367321036373198747598616529697613436965872215347309637870778387941713320579498571008132225037050040203434393766054064813601471405672631792587568234808748393314956508567832870519327226754278996778186240772027037377397866389934509423860146927338457536443113076724624389470108459470789998632570395093560643193348698890463347323320411111643681101504741589905296345187264620350354528703284759780294065629135252032602730429617346755906879076967988935652161107292606889116061193258101697841338588936173251342665542468399333071299348915681501641420429197064432363929656771081967450230307358167143123312612993277824219916251243024025181278489339083988988999606575234640303481082846927995929430071433764620847528354721436156670963029727795188638247322840273283692213811258740721968078843909914298291797027978165812521490860785216890170004789325852106403627526786475482820542024820788980270179022103621060046983902157793152819387400842733818781009378229807730227033016147011923759089739309892019335337875316702467210160545636223040352546480836653433508225129411259386737941512590475968412701609649390256364852400063030244205122736535007423943489631487816064619423350244547668082352723955653103958972247314655289315845967638347991108015050493930045766968545511955488254734612345825883049581950105379546023348359360630699406107351172017224321696896531562048239927836635191282828662311444550221924593962124793112167667152920321217641399744037188464208448567813970488356272023956327963253092223759052526535098685236207735127088266172230170621184978831408275869465900101762348797046407428215346080515824220541128609114173837715300663213269094356409517398451352347275873757975227101555836934636223599428928164678406351775099498240910410718220148014586317745868432531342151444060302662665688601332278397874316084133563249940174128563779697061195064074823638850462331290613011174470831531122577112495028224824727800628634908728358566588013138909988612102054140677588195220582136352365454030922258744830752212408130956324239903296511124153059761199553054959314388544098341666667178311220335633330399188163117046717695604486428614259766764249285184769314531694525114664638852756484433873901568939516230369779754538688735245310401478713722944822394492294903883842991407206870290869326170860503369766696873433845647645512664431399979017055211888269181367635412919936192340089571307634736822853740368863946881941829115126568510159536695452156961536050975335593921121303860906093838140445885696573234871591501680708916152325548909625004601035822337930637550090267049721114956676402358290359169804118248815257964547218048150555161805899404291760630778555725568698155092096006777234169915929177450915039851137013260800547661287958766112371644587788248674347305197250816809720145858665499734513280238977087930646620802672875688123607150330677307771409886682242415048927554562616383817753813564606400847504779980789191555666199394436671721885449055916248230932018906707306073673902330099222829459565922278799669208580068827210932096165103248806815870438146470589289493719121311874032198888895833190964180372403025399754318882731542290626189837023980769571689532346032653456945826696043286587250256059984917814327152469167112032377700460213173266159395718259272158369858952285315151473261407287053661674620592035228965468652800879441660647087569098486511922473551660519273892352433563684342110097376554707979131951520499168073888519418357982544406358635274444891850138321826341523781880328893012412443412152899775738760607734586584692498425754205265241781959479882353326009416652824832416598623134807019506709163764155354696658443852087242806362517969625782913840066524479991307572634731088845600239738053258423285077737685230624274241444743180967808268820371955748604960914857732129431081890420153702934971532535518603047778101571749095515488543902557308690293885549950542292848949598956332920742870146393834929802554342942956901827200021555701463607170967819027956515400013236484777840888301868452201272990537475989497191803208019154913679675182964706824931036549372212084670689017951664689222931918860504824032610583371409317029942028514621805645429702606938590435413761574086069208200928773082206958724156380392661830258357330701401433066085365661894935330684444764186923157667617380417260788790518159471655025423518422263590480303498439578655057641350505139332672104318573562319801691756741705890906041607132107459334892294897223197251235095051763409083894656351282151410575746146845978744521637675844091726294010455996687402463189129544141939507468381043928555700971161808782798498027882767046406453130017611591246915412203052131847944621376639804073761091324299084674455503534845639332736027901323635447046434036224852558298413553475402019318094845315721867841582399912105816152558459483217005055235215269868928862137433582662258950066917599434416092437915218609843817402285959132942468059806915035804334975302007579893153663108562489226540407017855739284395100840378644549969490139045857270454364032713570858738672554929716895023070892121310039906874237878241668434877875464816057923758871644844806382619993766756996140762467004147684723560679130891386091735612167426431146432110793372396017407713072399874968051443840585028572128480248605088861299964360184897871382560100255561532134644502420463055418259798911127191399061334931249441069631900927212237368654727948649607274113601016735894280891591197255746552518954691327052551907921045562548373394706636781379669660915511367496610928359002024773847944985570020312980117628287093080128257278204108667546027566050507866005954508911286150842527490437069774168755765972583952029525040136731376915326226613966913834375095489953679022927309283534704640603741127199198727802385583276076440703727528321152816659621692627520214009906396931108432521765359167308241398105802513896982584824312403881991434140267762163090485499164109570098882381974091676608783505821625538126935164314582149049615206784269646465001189946200311617742458307433928098151292192717560135906716616393543033295443838354581431261334340432920345628526561229549669394057514782532523006913226144251714933321424636632275032879580488651750320281348796581040215535232234189699817512925855404529928441772037047964725949134109893175652947247529193735246282457145920774046807046494913733552498574093198119401970798959626849938494372501562676431357777771235131171808660017367609859732445471343941048062906469971844338384018990211126676800496410778411434435332061712365131913382974678614891306438037011211583859796160946867285623028039051608594788848237117301719514720217067827371512832689130283909053082460096279887806104362336111396993900794998146146007291979695707043531089302842709080229085300726010976991605673822958531808311746710790414748474630783513348747812549156890030336622659841497821938043563017661598883875924479668834069786367482355789162570824835464244678685717958073438916531309778840362549767425020724689044190302765217821199156889087835962743502073460622051630739370588897450912998679588963362018603804623098218542801939776374967963888652593389518864230157552059899590959449545943826438525355798576091637441977890665017206926518396580086764081959208390023003481633076233546799636553574164441118392623618579020069729387638877183629570254100775464706987761947410255094347605005822197215844973007336889994278703537133435503329635596841726032941143123768987841477596394723208819148915417619379675055344693088059663705211939748300543074905905554991126816459045255626306516665753711029927970777545568962169241850761567379913773897915500509643015203661362435738754453554735860671922562457304515481679899817917957595760712453186299333620213398303951758271284948361662273451250492909370500260823461698179675224637602911552813439793657305501924249459936098094646950368007539692934888343025361571135108739290629623368026211743326119695052212223508865621696942203436860344745608336847185147827839226583391738653517532246189901306607737218110564772945020728416413563639572517702215959805736950362016344110405668135770637927623763478759974562200064969313259050979374815792466883008894956442061053032145791939788058224711285347070861237994975391173489521097008811600996079844190449670001076398123295991348587486664513723962749760145697847044726376303301129338038738239771558421417402183285673460032170376500075743131367848384307289225171741693643249571409116962773017914999180316297242745195508517603981229884390969059231793509290020804550890174858273560689841875621642878414962854479427137327149955822486187862998990464135056751218961795276893179371316943576264854781131093329348663035506146240443583822493676577192843644874449890935679100876734132347216877386470976914249115299782884335035864270949286605386742532432986182215228704558132022450498718497161586096246165726902391334050322892482720482338939414970697217329438613616882937745671870345255051041497581998362797589562520536878183631753851372804855342536748214541576801639102411968723006221226771642685288503730211398300968827981290571943392163394403271678357412538455417956692901768970571340006655185480712153661047342684329025794658806290090838254563646451974438622761221134406069243190587563644382102645713424908333648721054089019545061492488196330695819704376609985353892177719812926584759560287188060708306132015814306464326147461478736240388245698319753057149404956216845517757746256894134913528525515275785083076745513467656788018338501297990401087605373948683039912095165413229600262108839755154907445600974946623985904190472019344044982944396601284406167931721013302849082746471340251819072349916359638099824884759166712542082948594518079356328553849825843517760471137395578594003991661701294226622496526773821469028126959042453262291697817788829324605060918526154357354484209872383000788636975186140539201384872780718423999225820013258322675143881325309964980117141830226241510318288070200505296724158221695942585328885323138293963084121981024429746449311788945446946488009845252244168239434809230517880522470728149828668008778564636568461529549485159973176004899157628853777910188604445196420161548409383382814840282218078144574899524450654097978271305843623185626400014442640866075672980705193645117099702934442979377250142595716642870756083393790490287513224540040897411033777630900211259051501921903874890310159672396771321087308050670637600760628373116843218898398481052061103005249421667709804018247123887785453962088356498357237381448167919992412184448809769396009217575397920454917485548387076506959483584092614732637433854096080855576440571815889930589833641958534915827866340994687841088944011412407492432632661410744126029977331755136505760396021881317074754109995924856695088006107780678419010438162226529301689154540061884630336367140766282934221948733350382927172075405403562651964633460346418214461408529963531286919722105281493566244515819963905905030358025742075811613531756394883379201705643936024603010701617025913492548271143031463125394636803051216498870138692177733987134146401730860478981863053429529090904846587545950098799444626464468405478634317044434208547740445171921470172169801140963713972503402243299765698117705522781615800628086128269353071332613005278672104496581491995150802360088422899839522202825748868401413617623619182971200675406143899037995837807022554362224262960622037693362816808417033994031662802101290862771266826602582933883322593511856153710348040408711564500384819176905346208119863540546107584317066141450755583687149695398588144583565806597324638696104698285501459139371378190241276958517410993652464765454024839547031410744827160442168293721146001741308557855831557832660354297316892661709236931548853433080859364868496454780260294745768988369639385348047463272602507491939315515142738525371085209049443652113330270337808249866557762289692490366912852640170199744059955826248761914382590844313112984928333944715977430572625083194223003255069206449005043408226880181175174500634925033169697352402574495451403463832592122290635478632644394417980225119137177000846163455226799782179870418748071773543274463807002426081344491228051881077495794822653852296581261897212980033722721203490460691326434770229320620163627235034409506158403222571996549056535830494964711281415003863213972760073004335924104899517809253382012754399528121637634657293696361530093009146428308899057331080752159421179769882772265734426094236245851409845293615805462552685418263925995786167137728580007688143438558703744745413575905091678420324607303115727394564275019132523336433475607426241863705853567745988601261251067480989529494142756244582178074084848685392808015440862496323769086944698607758164180687345287191011106951351388490699980756303597192887335172728640432206292293833952643290845545711598132615720648295815552595071279187828486345426723847253893406808537453400232442712550381603575711012547940700544781890812462358318121188786862582493832272091420539694535644579462208949190685135975738350979592553161322680968795355898607760473706459609876405125233353500956804199383840181699137429118533586604341584817075306630312732925212389824306042915257694616664564700091459304348425979024696243037002049438932901161950851782351303671747578522706264212526608989459238040183101300171637274329485197383034157064798815463889234542209542220538390063457489898649462108623878582720864597060674117825467791289092177326814292915223379641786301936664750769050162060237480459788824114565441256946206542545414280906007173780041300253909409055998764727421715887961588855225027693667827443611200096150478491561870656680514323823907318269282468435415823107677993898052511085379038385032841059132881249979472701516594169460871697045203949162492052747380718086797110949633333429837210519576240669102999565383225869520544966713546179248853401315583239146718543627494392868645539883894316451493623537589107611545051748074381528669296477076723369136065616846238859256647696766535934576750801457355613748160904037387878131282006939118236016592612709859957720440366244061182555412837642305529386322294386711460643649566412197286887837251377288273057727652715146032510618594584925282551663212197784414342560640786272058116360891780536768485496678491485415254676253774310418300905301791317779034067107240418101763717404342964987074941723667052505315153357068321710762080017706478689563788224287981483170966693524851110154322389649761733886689555910619529177356273302734525974169620273867330367386545027733677323928328617418593207441045698044026050860008497860688092693346636659534060289165010903669507560223850587710615738849035201174673164966090984475922690899073363063339900545724750474710907349300752911653738316465226299951491042881795787533346282887552728267440277879489509685883479666889785588258268979147253977982002799887411460251126253069937690063659254167064517252361391978600243243554278405905342378292712753866872599027083524349313417326614642604631131680885364190393989358841997968955063142219455349764451625003634757845742333233907417924405404678111893766888997952593246165832979019459626560047057402362067159198946211658434463150650712092011547558728217662489173588047286207056747417098726766703762655665864140995891288243231572365981452356494775448689129942661480007452269360293175326617790439742912622652908737873141486653964471959732155104058701914551610191958174697581532499132910633951434946448692953167378701786282939703883668530741050176110996262904975355242874229515325624545996470823365338771955853029727563641539723402403290217966914834624371330293069095597375406614730947746899973324755143785719987264801713320374695567092460202489488110204979561334452465188798829927704940452018612112037769811016823229272961564681441057390411230003732224116602285420457392918148228723502070088365194125431478973278458286463935191777368656984035140498351030983752464673998306956411429637199222541279490599118620904836264210686069302866624450502279394620278559660211384307639083657615340462915857237590891805037714873388675304838844082191314976655116579097347317731341463439146971110858127065309490194322860430972609191296659264987954770737395980739868927961864241122467417421645523613557926846683273398977083737458869315166096370976234841884115167950842122368067042607217855170228023545427719064969544466145086278681200687348584793400234307690146796258618845926372403002818561692639432620247673311589616394581244896751120184194296544269703347600681457302066016183593200044960014195790569190284997715663392186862379625674405054378012342003431572689205642552429831040703180947195097240576718909763782329895037934418655538910645958897104872884808348942613216790907773575152267409457949609918989210111481984670768508735330411562328286980351560682487207997630094155808493338770796198812566615516970800421818855799479053841090473728907434153572691807475400818598297524463022392888720294305159899645911502311245767700692160633635136186986894348605382971254938921112868853093317117036496512752124630449798067129804978776469372039606961950069796339689463127018933564549589584098293540180133959001870736254214525492833243085721517088370078252162753685136770745501808909920319529360353827048469485082904780361329777362223010394194569266809737396395053106067555002449191902352539445643543995799196058534029542740568634586006143825703353285213398585208321928814467913044893097837409481496094486061675143814440236337116182551760595021409862624682357972532468989582408242777647826577256082989845140644925398062427074536594717785973272140082305476537649878916485004772015111193688007006415322243043100257732131644621634306360870525263939302421813081706128154059574860205980665863071887942411223864045358093736953999701442663644609238741366814768972975249084995672643922992242406576326502835069678658699457767237451746107214701322239833873053326661321944618078723101339669156277960547744777510089345158312140399062444660142265678629002787691330219393388794379077224939874805237198830532477804112817363634066499172650215773871894841237729776466616393905805457720693760317463664147179959658007459038901123523503144020305868892122367046946134232473538678757466034275709088852877646483715765235992820914022073772015363779295011968295998726074989638008041417299276578328906510495452390495959704863482554399886665969496865882239543727651815062871620013079316122292488352952199784326550708309922186523386733094046093486628019410910002906736354991617431701228038009037575516182965127425861961862254645967004499538677118025982049359867412951914830827540910515776899847654758079051002455840228319735410550571581707873593265683629246205959831240500864204008004564471128901344945295263351436053924496308488430382924713916686554488946627390945673252136293216230610055846206178588451167265021638547256815285739463058507315748672179018669340285592169995249862856085106422805748091029440866339302454270154829877738400683947519062739846161880570391336845793113515557369358127003018727568195209475664279710931359740477680584983775749635418724617257524814512379889916294904629682901689831123021048401914691875231701005682398125061430762495917287130175523374633763246036899440917193980859509958702251374003320184670605529378971586254757684079993124646982085637537784543467565187429642208855933620093113755593724158679814813500552269526254321358037589110841261789684919775073607268889411359234000726923095545623582962080963352844943646719490410698999977994023525671568956501607297200478218655106164855957400432089952960128589085675950501480770549717747661359342962438496605864689809462422517952342380000959602016598097020184679901373280728120280005442279467363534726446545844341842165800891097491397663950757041118097356248336319722441051527259192243241177399721552834579108018572582080471249950890891233834891818837527427124156866117850802428464347878882947883843623778526963885997687220401484255833104128692544909261989147774605882916667295357867072941577746564353337474096472638066976111132470808382363152473222282609177285579704041010639891758252834710141863530185165583792413357361570658287671260682551898007729868149239931274916399048817053210870983219489571142231879199536912751480458388109989700179477149266343009103141154942908470235895692308763061198510109339968084606441350888836449140679251398616286216961697100980751551866735412599379991143321923984823692745454742273026820535769946602616351391804643987796212275910568072646365541368755737529932115385141973708627093808861370120816781921578263441136898560940427850097339975580254927797250651455144560897171659006642683392008646297934312926124455433384618199158104826352995562012921774530113263685012355324826904708828931592735126719239008534373657917289619017173052478185339692017824880445616769753389358848144540392703634059790920612063585386078949769854599262363608119699087497624136529936419427600515436435138538561026225388282348114692796877407340614418951125835556212178100153313691988476428097185535763110124116713334990305975278302614102693246568066645207589394315019469770660028190225467560491631002292608631358019506104675391305767880841925129266435075019600667038350950072006914793614691262129904281889729843102430484264569173809356281810616134061624724528710326746083361501996134181529050613477829349118635096384394084370366459751720852888390877795516728322460555098821646270440948024150693550159375090968239908260756402387346463948246491000382919894437818269503058391112690778131897417702906584865958362374575054228869322118347811819310375070332719457991256914000514925284590221784162551070605611681269234320487916921178927972938533659791374969963615232381977489214207972094863313386863493646197822277769294072915810939203095876697903813399608376926064435347240677063570264038618889666303299306976251518175174242044072812156936976053276858993816724326655864855945635687397237045790290022526118275636253524153210167785238291316956399655217930839961320402235897518105110885953826043187891863114683884784175910490938715236385157607496655812742611290500151136029435667984489385042642701213603556256625367637823349189209902090949196708772631607254038662959616977928114951655783619415185429633668582289964391020773669171174914029417730480847780215497458961729815078134884937175253252946131628727757842724916151087130432843540548464751479125574485525141927996044595024506949356610104679550688359456474610033035873576539424680516010346850016857069398300920387576829884531625446294300221690356981150100497375655480274348238772420769930187980563723614373115547161271828273528650149608058247912392411372728863555619406938544596732704714792971633926658688876017217711883910166128945942105947539886771347063958665563376210514342835502623320944886442700143944782841278299236505374755756923609893574382651874916838173992109202889283732506797251204926354664380001370991112128379631048500168833000476298977183957845531212263029193177398332663254346111840936129762496656134136390449832240109084557376891763473370579048676407126330612098706557906749515574358677678257043441378915609537903608717920067009381362557014273199528588955776946422107824876015253845103561140432139469499446319133826288394419356360456396230266891509339202281386337561188531014141047878665580828554380919980661218852126805809593719999111083457512168809658523402636641974812242968370197268292601765336157985895231391396064113913759008696980132398361134513170945768660068769893242740933135302753869221774664757998614885032282068062292034046910716671741563573805776571187619224577560152991683977979826261319632331482458120781849765015307756599848328854987400857339584954407808973578757896830505692603767494575773634401881334289613145449810252582156179563918621332569012728457563609181090048977984163679039409460539559404880082918794800593552642322957675737997963371701650492099914178585850878243458376951407052130553819448826811839852870807160955892456541150055471393125766065905158835091665254597461490018056821110044574645085806806026035178601270647623543980430937435544260503531133549235130263798969451153565530173298237224072839761521387161847425213772966519603083865535910462870378155102595676958379535764352002672252600455659939268737329199272467675260078658471432751985072676926817977070455951570101357852342330322401903349299947367327481639618786175264330016294600589549998582600269218165273803617551837403619873076496866359445099017073154505000316501321892930416353298039947467977533756241328485794173848692565742949087245170487858912041188143763625405811209721669157021942524099318422564845328406628536105130742094508245020273604630343159074083699281323429708503153617704093295434972173116614523456802987366707110210902173381423428314702223240540199932687253906401578065748738644793442681426312368110165860768224867709744704382742966209869824605307161192602474065889126727214058571139633932297090252564885506915794500008818555735425648109868147975941384417184947087892158271221156310538378739364964757628012566006314287386676112591373416804592890457298854799237560837799203984904431463233285122370150354002230477680749321495529688892418506720705045933563851274529850464476057960362653477901853331650449094945968943729082654843428093044800943010169523394787062704798445413884684258804977198435873865936763086729750403455617380243327004758742004223356000605105823621607179864052112163975592328481277552145237577621335056317366917871096651665141901464014321527812340175421267609932984578575924494485660931092638239627902724128612280752904238078087800887475209642774717411941091400008054559959790432910810325624513757061790046063144731955009629461584534215023470827599877620864108602573056860319780440973887433906701969970136962608923941715841779153052399144575828420983382620325932477367723083344811546063068002927096544273761362507797868832769731892846091024818687309587650810376416677688830486600168271728003920735529433915804004966835677166008362830072965111943635992891849967606378497294443931948952436508724048008497937850811209588404301500511903767121787967309609588067493136082909442826937976513043893655605787902779605413524432374816653695792591917019331105183513606957578759606568573645277203261361230280005484058493159386132520700025775902372040508744219096425954050242577084662539906376595986020171807256175954221074684656505804097731761540719980275378467302010630875450699042866090406254338048150183492169493883198271265402749241829999694222713475048619794826366989285297054744936286345322100141259715426574033184269709881064375315970327377822986505076785682870422866578926758710081149451097875921877862239376296658419144373146608989958589389907677961547579048631071315564214728497623474099811974878092624155433176846391998681659003898528393193631999330136024469679135014569791629198661312760680487803409191637352061951581846030923635559485271959247718794432964046020732968236766967302916073115470486896402317732801079626502396396819991271975123378159743514049188264962850439814054400888831568166717211713617834706360120988982094323767012843056004489029169060391401286931255886724284982937175921999951822732029624863591866566504875074086097402537614855470172284330537594569709217722102120152450642179256593519799914239471377060105781206681280561862857368106488775196145031151919740199400575382107912347164900512861047180065081271012325787074031369715080156688789046151222364013913025599127689050104565667074668318090640656807446361894441088925491366573731807758952349464014005202291823330690416569283899416195659679179133116459533330470457152789187058511205092743813489305481724929765794547702991429057867662456174657216733890144413841628705134661667967535164998575621729905736314990118977426871738160232209009325225081516287644235639570852886121523555653624077517850895377545040861630514430345187789678532803713624462309417138839161203125655017819236838658241316910108370004977609948867543857966375171294284109210898128307216901648498573355588307971361784683701057389277526943277903486651810289942834565407147604347202551952239738026404750592448495468517281494663913914276152920160388892571586147132621409535182830556672085896039226038827818690404486368921442287958211872280613853363878093598412025739791615867826715438553728760576263076367620983937819101282673392446618411506713236330577418918958029148165856187838347148739879282700377049571398181040141043150770428027569742085046308874200598172740409673437896830056423260317368936044509215257677564935131794287796221923054104401854071014544149853984212087770127071008876584552463747144882226122051051714636525847319328042968244657702256104136291808379230616906134175188758357625710779475687683302954708665730555444067331301349398890084762725893435518254075261219414752355400185276107915137392961450084494503736243692734337330127718159670608476174590172041411085446586975798318385594962987523592435042804408231099085543455488163361323778881204568498016704547447691357452356470280356297071686468873351140921502813175211769826439305522818326566254368760612412704267045436214706835315023855382593950525875879461524119247462990577379047972718765703468137694906001830477326645158508920389911010123870028876599755297814432918233055325992375514726622536609549669966133161081049371577237313026010380008047659265025786861304434993803377469067532761116477050532630273820779249631497381077055503799056163644682497114680956167728242549647825113025548809824563646232403006408449942992143449665350156722366987350007360134385629379442935427512040268599912038732232130037420625938967549726629828239444645471639165095424801366714530586134823008667490442672389687415450249146950875108603636992582972362762593780445499243639500260435792670084801562402034269114189936267250558054127535037671405714009709183678643312307228107447721021797578025880861005779795273813777599592407889200250192487422371991712165089438921954091960880273698458127914954530568058172875306308738998284477646910140329390331260104447624364137886902505828790799600784296006120816657954391268135074539458939447215230012431675910394775035592961458643046406002180256822312426741834088953487341056219220564156271877817463324044862455439395523348457313339200880692126268022521820392537013062108882441012719811400595862187628523147547840314232853926338996724784637171474987212873475383051122129268181045654261671956014941336822203412370433341268124309251930766169283350393296710002620336971231718271099564824981911870382869660471269951944496122453903906995128943851257082928782441584359252447522656505624480539163067882380421162223804078343255818307331252973688725718511091941128597564165046309388393244892771849495205640410743501726753420643481495171931177642044749794936136938558058473169635193909945886859815870244103974021769448625760729143330339828347704313650627269842606321777169692067384302615132030090387983958481664261994801777801407219566724866449484563198277979062255756904581999321239075886098243681444322056065144541367591795526396813771490581943695862122409120318298257857162485904082912720598481909860126552206456257307317854871997213773212226733552396207533007290553402488059047592870420242838588262396854803017735344331566560733585453340653645876310273004097065477889973276572703864610970919020889379692435352554044023414819838410413001075030345030936036804708391662764474836603045309252068720412626559355570528130840827075929483825189428685669283888497287540207100248572096522966265195379023504552467931447290539578447832906957135544717561961126957926570203037647029640265279674354139312263625878905006625567199440830238618639249834473123777867534151956530953276426474147350707571297396457790017677407131837363531884578539795881931421247417137401702067365745607170799341099904936261168022183445457072516624921590515596507243857513186631171666175503240844020869739352528989251246452825240983487612682057547681054855327118602115962792099850157173743272076639574196661159743957825408146219393540964592105218196832565411344445861222722182063737406287694855085520752593200887890582130207397869261471757486192093045972627360586901337184871790162017621787603946219945994568038692721751555894899164549454924368867885950753604809273782839800870126958935524465853728328593314741849725805810738228975384871158760805339320797628323796763163217580393770234277065183315060916972496309046282888810735366171805089240849405975735904406699037924320098984696526033066501401477249684959114150066456954698755289128193138051515796085193520384382319411253753143244761550200911819259940884489222576943058899145817528217382945425299613066121002954175589967760416861505607922089259972862950682957346770301157872501948531338557691137458300150628225799671395707803188436260532377913708342900535541814593347179033808797194003798293953932827160988086108506127187072884908438297915890775783103897564195536883411476509134164214854262102527123597290163142671848092946310234461870395995063305186196885226783262685797829760283609717644392778782725476412722212824787210547568870807058359932489810269761269923646725626723774491772415712489890334821049013551090939376837336838695053303206144276599366432372343688036691498760834034085119652314549899057006316228302003002222263693553307178801811503562208464112331508679033377248493000616308834494211253194656225510956066315544593644025987859406925857901725951944217069326421975112708692586298508417765077839174610664123562500084230370066957135223907736983340484460696318633551799632525092082837113060371496553236077934501945802425316351328544512532248865934990906145493198862431261637799856947711286937333623768905843880652192202729711284526690654857606380614702665066545902133128083273258530378878135018580563985258956657035697382132202004823715046840233780281590421683472565651675938213416483494841702360405464253566209287917242031151753832480720460644171023113621472736225065640773748758106315738179409562640936271315677206623280111602665778248509585235214258987298472221837943023803233742711129987819683560254384094211187253931639408797043537435486154987428485730244451776948992345620444597919036250247206361559611405603978231307572067939903589313550765332782545468333424034270238311432940247390213969926035762825602390717175494419997639450946071361524283375134698268942685179461450804001004632601285190747693028150438317213829612134152832619535222714516602125338992613196946496242727667295533433776598318756743554856697925047204187588713337397477846753546133279246129798193249545885744469827390980501954090248792289412307149919179600461246931872686820119817361771691746189473082228328100043370434409868671720232613113042201616656051786166347888170242940615612959657443890902569744549786971430033738012409477252901192296308267408674940884598953214715777778507486591671798474396458304041849142571779298305912981037026370858408849836436301632510557496162798070143554945295986046084356257401808083720277233376395891029418636756321899870815738142228635433236833498779955727587492436563914645311180542463727074018938218729692494282720508567933352108248525786892826035182815428795441896444899658258011617127771434654751785683561373159697703277332920151907991924406977736473633918328265756210624362264665250789225483599959083670648796787701144703578253282608724782231988218071565768615163985011306384462295823577680366033674149443363968431725031944840491508535598008466898084269850508716989789797608652714550108277123882277289105930599662951994617423870224032062590306127464383898516197481686744547395882093123170847103372144663232971045513880539270345945284367270455543111367354775931283798710019914790496741873015926291670600340823272795546555193783297322053508613780571273319264670271463544245000047605880081440343709155482707317104107522749050175515743434631805274583675234543099228016638158107557370914640956642365160594066296769787130024308535333124820653745802954505198756488685005372091659748619584232158893271294091312107135947370988687368395356810516338132269248788471018567028477527684911466703497424553543639096698760433765912061783047679041418080017585200365871568270018874055926274417224756613758796749901273910310860582235274250361683212963528212447264756204046714314634496152185523099108224424403356178434165104579909509167829999168366340447854427404928339396212469151784407107303503088364139417847285073499314515065710538144662298009054027608082602855690153675408984776783877666168114804437476841051402965309267245521556525692443673529016721600924441362921181996069389006221579038733186038449098788345076595840190375660155278279828884216424034003371655457168440171763062640318620074053181017635785713768199723706905638305680967480567126882765326181641362420064698522295491476407643810923913954148596640619935204383966924947897073595385252319513269970623297562727854313513124370512169110892160366275593443718754801344843686446883919586229403541641005398005732641810073133820822511268582032223307208984661662911378592464621823477500090970850818284213736536156406071456862814132258487216882072228128199630290500757866100333903869251315506950455026310709066932093951250320548760284591820962758668169272452841271316083105465308999667911216769371020364910657314300161030532611880250815620751316481833053006042475704036715074071943274142930425309581716270986534375072327093865003059426787220332128959535810852249823160875826155292848631515709408994313886592565720838259321642639817840645500267299286309901499297149122144951560953877728564392634332575356158510218443818016449127902983562751215244212140419765985720538853697488536450344570259156283453885000780736877838663320072242366582269284804549450051532402986077815324977733701400255536678231821150823959731184947624221203770797397257152537547010890071290291042361158768022434582479459755902336717380265455606093721563295398800806152355767694665933476420242651641158180180019569453575659975538541110789369796119685695239171451668602501517005703908476597508299736731022686696521624552892975095824505355542947365142483542885924066340537616113085412689107634948944755309928426501547526754002412067367838689195813321417431692923455377953175185940623599549664682743021725410013991836574116460295201862855768268394370587426579097526183215465877481416089251377935742298881862187557978268105457073021172779577306193797307332541571342217335174295556841621409492414863938982404937481913357691643312127956165906217444791265325475839749357909832742762502542522126068119680612937120519279233403735574278727532214009989898737494150132244948031657868916679626723234469569667507862401857733541245807606854847706719550998319592057131015636559887200547000897773798698394612586282029234777952898947249499688702863399319324305851895554508205982351803705605323353805902052051782450932256960780614060964104172666616853006511102659952723005461702663032666580501771897137222829112292725687535905702171579000007529303899056169461338097166726486957795281515720478683273554230471260024060766754965241269095142832229373103878770731683811021991061195743051140667561128847752931374415905032561188482251761978125784299351258689218593010353597331143284786488088772089795256918845943024173594682604885721039955854896930594610762547003947546511130969106281030894611022506674773442888665320847286308965333192047151897578816172178097073575844964390993449343975655666747430991008510097149585059952608126508410184153204518841402428248107256338163967425252776164219414296871672904776570288856977073103163659187584984044944730515162279360641509679434060629806115044402464846126653940719782478166555108458717552661007552711090785809731037341074672025902284856664505283134628597532664061384448182929373575489688824719171235279115648646679678469934112070189571067756268653809145272830616080485296192402795186176883121425989068248773556942646048690525081346417060931539018349546263716958537674059874488339819635950391378045893124081999397335809814978259125613549894712464996894285308201894322543806052593251485902261940190592839777771684489763697639287335925862863663966975180146687167028262779120343312202675427861717511681219034043699829273966195728459863707634722451073192503267704527077810410973068371009780506575071813225966380323039962742530591866679322843660878503225384189167278935012675660891474960171379947661646042164154330171854248234724253499482955688439500259467534607129885840595896134878428325544511722925106194390826820235901377659045479929189953969973836512797554704304686278212699520342369452703464596699572445754649539242263012496160200806358904339655674367888091516421356442666218474353842118576306748364503398008707603905519755665395592909211429150849881914119696755586020433811779197694394184215115622984921799346141805540815927653958079180566836761673443811913742171669983498520360333174879887969782228421150078502803234947869497955030006787877601608448813456976509915868095503219549722656219343342588657855460595339551368025554267866579780211023731376659888763498809392727808116110300182051159193772049500817919915377376675805289378509947272497170931682154897448710568470256585686798182085667281156963086379477811472758245612238397466967900719042382621493355479211006925175414636952968370955366759165594926751009762667047972579883784891544630456817710059343081795844463855923222251823366564899936786323315308029029090928234239474794449290141364614692384038510371969605504640000055087083066946438734344912537804254810093045406077581818148532393449856465684956345483206894177482477241580309762885346736744679117327126183238534933187587245448962634585028044946039585366178011792163728558538262844020865053606297962813609308813477718242139044685732033224002113217266935314185040582635948833619565691075130287608746497912274585319640963904767196575225489936930921738639471286686165314269998332777933067264204239530681814315477891739012063639649970610762344031088544313936090009567868226704801798475491126120284910833592271205442056633367957076274999457581793488362351669168150526027006023171781878960528676123655061989044821915001111503240289218228980004795473849816131858901488388603867485790674636126492332033092912911117348939581067557276781494045308185202219214277622397101089460163441550481307606684164093613991430110253098216222861248810785428225787235290691752753860307048214266779208111381153449835006107634527942769881616846697922828995291624065387830123669132554184519467044912948140697726704022763035126562272435167757932155988432200300940736168759134003793034655434662472033718643393860005455733419518154829691727961882086218811589018567919355155608859225714373512628009595437397597656320913592557172867393328106566136603449772858651074710783213014790410961014050509547885115592571003795530997240880324645888651590952168296701033182823909854313814520493416396165673215442853327206316881309110286713301603584766161223995196062601687518358697486643233935374098365055841940601548925243379815846965654130665446269825312668748964304462198701908015762153627710599524979222793874416888901445868776681326185040245235083671289213032127902111517320759320815746495580981952078089629012367177573237220933866756869552253819895683540141449541614237694922760973943640347955267200781783351191988996381654643668537778505403500389481981013810132129594583877714069055906619960860110317211478564110757263095711441872267014386949405088110490337594433099516397685744755328300947122391614603306368500500555929582346136165818398868613696501766683148756833148201086423296553098796047948653319084367399633083286606189454015431257709626187971070553966676080827387821284567312526720170770267621431911983860038626940130975913427608130627082881709340348847952228304841251434881679574104707173097869326059685872098627906633980164801989422619196973439921969612816096196575979175871966600029402634753164404102521006832363797883361516558004068144870893932348557645179202422820417629627046225302147576470203158924590579827830724783453673924102167789378177115130832083490314683085503808185579566533053257303997640100900152568846414441690954506609516749464367034927876822856504395530858479824394789321778282472145958683991025724064302978903950413355127824882198858575139442610337365232125079966029892530988809993416689395840872170478311096980805803138267048360272955531393394545803382850504568094639282805499254163790293803062014638069897856317514994815297581109512527329920003150902788649600680485786763161217247106810963898814814287820171005095037527693434448130914460342910418751191447399215147511266001193202679699966650013566051026376428792178718489124887658025681096833353071904323959617439677882457401384484789304292558780615718846877620786769794104352923530943305402480024660603785416116335422149202922074334128075762976609502394950061730393120851107708863910839622989504078598378008965747985103786509529710211978191799040667291776730402169210036549421909564456669006971479032369595323952583340540328353801487106238407554828189003181989020255658720921983559980641136762839861665769319219035931194991465051443368310815280413013735926069567840294605575491531773819513994150552131206694010545757470854294066491048392637216676305365574867196537296348203692552342542352648697816475169797863297398472979628834202023147591639282870796357244775130778110547279313893866837989858441978215065512528567878899855634600514547427508319012156352148655428692768324103051944215924148173682231261873681799283835254360054450814418332357731940120730343814102513376652356085713405689444151068319772371383094524458859526787483763883110168378459844540601071485105588935767016593918961683711901310712079060126614879247695330068841741068616802209715598040936127171186941577718700543526949751887531312380018273866794057292892762684510817781523891974585853629487992434829054664663015041744234048082430900233325849875968850316712372679339420214731073271118015766012747581075510849084306410800220732081141014108709683418019113126457555068825384738387674417007620218720040592697266180338924357369818944984053728743976799778232429274852706447869173951602051631644709069437151183678067629372674256596154759240549372387888668199850892103255475136478646473910634253711135387016108808542353705398560907421298241580576071287177190450031076711980445688372595802008497033627794233377581702928603851626052176487496872649125498957395538096308950717917688703392124182152106506364020877681987812919572815572210219310216231694584198340627880909102556660626419087278285472192773492608688630203161847170559986905780698032797342738880571771858269699885219573936288175396610767120069262004417472364585873702135320786671533814737846428792438263379246710720240980261223172887826554476872662588967007251682456114241516527448620088108319203264878577648340305776290464664887548846691684315081904612554453379546679508004210261802622287227244200106240409986390793804386879170727448698217287214106052282649676942017503617899215502062405718904068424865065242852312031846739781914690126846272002348797660850687174414508330375919265831465096309349305211732886608013905905714257164902000979140003398941376829927147226731101211649487143183473291944921691475760245562822221595469456603025230288277607520961726755788243983705212094016551080173532273748639885492825838952862470578046180232411506375699891283593201277582504529391219528511107676385183462091459331550065599658981306557344234691536918440907116162152371312986170437799193683773735515357012543187585961279863896934298063656825947958821404441744035974161599113601292665687567766902034454309515319672912592058663442116569488051779360373542581277449583967842676515858682072332357295820646820379585441702100687415331401929803296487459181044510731021266721221156626222069668696107654971409742119490530687701355455786395135985597348588762249579410231025437986619965934654160353662573016599829438711623250532290166207936844657187185496160212468952588254460431999944086863325437164180866651850160203168833283632993107363981752054815917179588272789369959283280877244873387851302483971241080264521452768367729288145024019829512001429091083043665621087315091021034015411203638572357924148732264264842076592641721527891933587556860420705574606459256610895791436978142450777424340727029979639289768802848475580896939610898360984359580863543960033670414505734736112288911145031919560522743311823246395054055400653297120343689985884757618923253115877431051633799696985572477501169232792641330744235467153519383188447474394787643558558899828089676328031672354225624062412233859583112700092170299751083649367092278800257872784735817131829562372953859411276965662164019609560511138316718029046023147415775359315742683505539238987888128837481133316495492732076852577836493368513486688205559349390281957648584387188698902674850399853122124410368338750138034984078092481383243711679211357734937645845571165188404663852095732757953578483040303976494393703051923336634809391161469493268149462942203271321012234689081697234688080479545149915603810513277853291848860053766372518092951320660829681791449861111592830188907589527906650820109781263774109484514460709184647581168405079742105891547117645218119767805576282177579804659977925779596634302832203003064776487395897453453570704736489121589451860957187098255291651947383958536935308812193251791058036634321644088001178890507277440798676794688512876748063916606673891047277303983900842779587821714329786032259792600597185210430019686022700872942236218390851193574807983606792642588206995553864228845823399074769177992905501592111264362701850552162198259174269377998027693782004188705782262051838731486314114785821904302549948854902982140762408228041831243206482917059298225573000895504795896486441837847317361971397586825978926968028714530246510079219519500874100243776669872425164273390839407578087977777112974955637232610526940468976727562668315046935072916407986864024179745976359735810765738508020417497153641512731116244167325918874061913485895837325131783666193311893439290885741933206258575497462915693062593440422729897568523980228595286107282716406895370570540045243957548838497606356135338516362237445113558420124404923258456986357513541994773899765577716210971169293255839099435674586235287920570332144029313866357872817812978625577367175714477562447999906555594291214138056683422854967708322131018166356708922146868254994246605805719672242639564682087145653986923083740763107769591013970758255018242432979190077105129815766198788077148377731942068241906601117135210871361356928391846999017577237725072775643282584468907858800538624497042095193341087912348548086568313115258585383830200146770048224507352813821664418698184079843829208212140836692764808623948917567535278116123144942710259767288632184602787090947707369779886830065419914546526816477847314871174552399701619631146903122189306868269328440227941816028939298265951275299544133104040969141231030615432549214829188599628074469725389034855566901949270022489124576488114467792923060355802431555644706891825312626245774110819418197205409371544184639530745259287624630543313788795485655419751780641588806171411499587651961520521175410174724545229333430382729334913154994627252661368929502059151166624230058768491151268023692329522294633023659132862388019027448290257662202943747008755386328577256708288247836476992855042619169405424354928899773891352225856135982091918091642503853148865999606730903164945063929941669240426307623878505692865689775272692051922687775912947134709771700009409538611308291586775992804970629397688708719976868241611896097340481566697185535898403477147985236497220731892364187682977917672740228690296515963143514109485518221115057175516393378340898796407445132385766098871700525777059557820056261256334415080410099532728748060166176679441686768678624329886224519052778718626731879270911078841743628620392035908089547609028463324809310576564031818321895161476380096929912619790286456167519460680710217464245459796037805048412138261789619851667136541354025161066582068009047512983575504174020646950088718155088043551719053481207908204991579924802296378686577089867729245098895231169719140881625024893341508907893714017248808999100472054790428407021484805962621899029381136738462772187243720114653528858266088587415233772558677348764063766923216961213745672115533434530820190739581874806220891534900716451213968428938279427543256817516684215585646136698708267765649002956516350596312120839689987186632905656878609774618905020904698960854642078259679620433435955059853526164317467473947138227311384426781436354029367019940223391645149183929457459249246137142077761667444954166131311378837100355712301371754158892534746618467092573953321226243581948111011183790499677384899286527124953814579224740197844695627563473433399932220877066683339966410069215051765180064511820129656014252751317461907753965122989912852724520768280640464550493581149984234731554186952129483170005257607148292239608379866176403010511765862251677608244465492339700955742238551916786330217213852190391504717614412259326400770320735941882968399109138914014998978363541613894019707885648894871491023212735355537404396191870478854803553620990970687172599538099036346241782305591328499609395982289423503485847022929058321722088766550053756244139944524006011310538752010753841846760554757447115706343945761544044787056033056345340822260383262895669498071277514594182897073735681247509263787414935318922404182716568300334365071018992891095779119572619234010736736477908012903973174528955649099523929332437548905431777450427316130954060050883866555547046453837193461456426568556125625070489773561085401691481738726224063121553327222934631435889979286146507203430328289290862925421904358069362280390977967433475624507495274202919237928546832696904234471083227862557487762670252690822027223829248986153616945909281468563869373065566349236280849438154584679237728419433067816347454676414375672796438742398018530005941789621663992317594537359084667105963763705961708705090144700945585699745755880582967814122872928109065747464722397930757833111666093201638274719350631569365742705453898220322236906518729323996640286742892843475269849967341889580197825181043533108068867886679459069461486027591849979847542199509566928656194562967581400331599582578532191739013367962625703333064297233729124433721280725053715039442159151578937649928275627979410746546830202929262031392953441005595911775826459089342868146054075807495706984418321095247193444284822740441365751869909876866414553717731536108950731139813554395135299793983084864182807009711055549206991592735200862238968525415928483864940857427961498316282328010112109826323116742023854425097893084878313698511156703573078192444096628048040850051085784136004782346002668620951362987712460020934314936817586399513738250919078500947065352934493797871813710336651686200440707903696983704109267306021656092131418076342242382333375836112713508284908844704383217985788108101641087165268535118394785993947156730438847018432239729129135054379129221231107762296421843945716873018090235559686148042724459075380156708170857713460593960361806649945585728116449826718665952071023974278232064278559574486559915076970581779049895288154260991957090231005816662676184679979907378499749421886342098586316285573510102614557869519636008957522923197357489583038496428369564267046989465214218254742948541874242208857105927725133810195244784522583891722874604609450179281641408497620865838552086754355246095620378903230056577322377155602288023993263001601775904557817494064631634974448446542329823288010150070020009484531012182574984365276206428053698275506592179504565094669000510874724581287160659264501475788326445711305997590393522822444847746294410928267828976607306082886708957238394690581377409361288094076835282190382124357025186220976913986859889344924817252962474939511609750012550521551721015203233997596820155394924780868299923634027095778372005703602745510826414806376480819867060212388491988066399302784461168960343947990918905907516324329632689856908327362597487944639067164285061442351615047311799109504752487091221652930414900806959639022021582718059976808436053389336151087075994403599884368575769282844024690346654295888062365838256099747964657692807921172979118468167078218099696277168923567330764895242298357502594039214570633005760137601611701701032848414947586809446998710033016877943353263696609983973805650041108258386747664652041742456604314700410077387060227659588814468914463756399369990388778927537264028038403654286042517474065959589270306943341559319998573107068887122961600636849428870427318121922416870323094351068845776892093013947397681934388973541277027683869785304033964115716558077575324054524886337992971489267627496938062980363063796297257413917923692347355825102739471284966219523296449913334679594573740507539743615782866023754703594646564865099771997674410731229932417433669512254793385852435786273365910996773377562206280830094779549980697668947688002690785693388762100675155405333177673169094128466883624913640082640011951944232960885166425772214056914726676346106072394668951942802393659447792586376946998139860782385456651552662546649371913504151601468270998102712290508637648878821102694947728543617667503620679626928105095031874183535188095253739599173927830443846641139972567649782592897659033721165985836278127873762467984016337974981232556688852472906288306109137163187479940418415627453934927828665138788083290599415459159031754751651689833801909433568578810958180031696956080541317936581707245247329741991915510821367873003368222084372132533945221694096324851345816752197491310523025570820792948595045452540820388726150508994909715025496863063946075442075363340125153057501894566156110436509719466491997014386759663150912070797375169996388037389010914047069538046437283917025404495501450093223612902233883352055944710633350712151125453114465567421763320195493713984576946728139677608530159669838768044107677961265051444769744888721974036307683137447300556054797592003060441944709136856584308183323406267589546723352528085267947336167002212500073292018469775665186751799005950224821465427783850663088903405199200753130499457348883777592838356488757266426227608075028055370881306564783453934190259397813903562705156528334822581053981152757562102497684788679205481669124139392528349268588050308220780136156325258491158585540348111378586780913466361808782383833742546229607348338591573274496392690778187821825401413872929244105316579752063243496176906943877434166623270589107047783070521358820706983602371592607279466430907553436260327567205312980818525283880842538404979855388448992957484038972731811150730802778655536759814718910694964689581573700580167905806772521146413183883579305763258129033119807760588987355210403844183786725451519020152238319639550737028754817776189132513006246333051021607353453176308691729367126946907288353922736597991278423813307432159016861559405789538441241478590410261622067973172217947561425802420985110871866730674161510933426936832432455381736411063392766101075612078183245404470509595306343191048539103099212461736349044864923827599484854827780777155484851834258942199363725867928277306494775599767092862693979266142499796722181571205421363991850434668934671599220022741551910395206866830327789987872960970455552624082279117580418911980830681782619180385416490980718371501967769834217737881255939656979670353332113759791993652527287349655857013234148814371355380804849390871829346593770484498286861717489944615596404352458945799031860292781626997591067399319312097934587361726036922499743931899060085485224455886352750862372772662365549560451177792816089302010605942453931026063331232534788297023658423250530609485603418770624441308871319533900371837954688287269241008629576030541159683228254909640560169454346582709422855942221610644595695542132609060128941813401349741523329497881142497798668466993526168579811000958420687599368196291489503659667616994377932841126016479733646965894992156071617911822284458861142136498895480915415186723978061645022245323935856566581844169712869432514723905685133957723361937043673608429073703106765408857197711170196064537405778368617723760260032529216510697647408442502071902660853330245357765729485119810752065739878899385000143283086004832560841961805453886339305604706657913163461428347146836152466441477521906419710924061946072586188520699581838611285633887753656891002168723630011451108710769582241320114595238834231564960756727526121299993975652778814662654296539123340598571276103580480534272119416711847715663435355963450846108139555571898570744196673534653767750466253499194169616997443001916819970848205495141400971889945670632753923174316601764443788168090832551301632327818879873721995228531587661594150005418548030557325151814276894661920762618540134454838959193124343127920349428408098802753621437207071852390373792988606950602275331745573313612802745715672208618913024379014168551103377096830968155223667571775036034044456197269715194030834858124832851866047743704045982920691153047848598814337781893517539593833252924828308999968534727959788962996719426783123524653711002064419634405604723326862758021205602328203228922716787871066538149024433796510872986450555471270077866097496856981156608009536203804187794397899491046630692155835769566596665610455050490555510688309057540464650151399941772074302581952301409926953927652280588058203506100975191136074257313928379513407722925573467084081357727471988308816056892334482129774623863956707085693450609746025045336721744103694010744958058422439183051850128889861112439695516624138889267932057864607776212911813129298823533680738304493785490746899188379379979137939434492928495721581657654131442580227404304048222227076545906578105981900595207324640782034666533968227582402683956281206024842824625869511214852684695038069311466803347898413530986759539532398511078602323850599531856766274255054063776025140901210109704684377879097911070541928745737943713228101020896919458492228889641097432296338160299509555759831364041422127944965697643428852018649364345688502766290393712020354054694219549370862873634098194190646928836524484239088152541957638322322793252557101958233241371716063961032995736089592682989780569699274375481025829748027650742562490874484395332491324597113140398696953872096873742436810884388674723329013830981274840559117190010363622318249488499451511599607876394357972843692797881414947833640628475019612636733373511685958070068472538986258730913913643651713800146315113424999803202396338040271364838538091842072467098187271769727054619408347863481276330648889027444489455725337823771611326546195335664362120918679733853469865683576086642311770202625952325504460640833406572648243234676281046444170853193861364162885363583318296123188189376405222751081849372557162722946587067748752498717665977429743796204133690784881770056257831149257904611186165091919166367991285818796452388156970438134905316805910456707031071359263176708777959216726038050588513922191418987015795261279805691898928692218588453581202001613091747043407865847687177176179364046842592275441738232685751612502733163418571441231544091367501321223800449250452399183694309866853796549760030778894398299845055952474970114926004666887502349703341539666559076775340804993232629822038162904402825951742531925211271660291814748707661665758787325542213899826881332694075296432258650224894759437349855144857319976963567680361809913381065136474171382973487192076608054264524013385206251547057743392087600579897308917378428172417035964002182105021902229920036299379823689156894805339553688562495336545675812920033718984129554051716436903852736991364126912454737660833767801588292515604449433386473993050106803523809962627367330155598279458954064952535978699612967915914167341193352880470247789378253369455351693151004745058072215211916041875706589707452493661138954793289058897360685725051271536628923373159742855450747840681337640237225470001569242811783540661122141826570691541048097904354463517653343440671934392942345129656780397200907193655625416052209422319091484643972662819003795346447888410696173453697214960070861105539964333773725896327976211430571248108831698580715132386438399319267416700085034228326824087696322389513868099245315383106576355856110186559998939596724736140889440774560788020510916884136851246029184701580504189244431437723846719724995932476761185530610428368735746637035653348198751881416707715115860640160622861936759925601273585624927782627159674100145884567610514193939444150111508347905473644343952266920889617488613334900677258691829096640465587342452295598019670366474620189615749662438789375508177723793704964619733668800771709806520004938908714325353648373626298684975703280282336413381316739663810821898640588661072231165535938468276396565236407123897219939769939001159931866688269850849652360367147480243582176295304368271837465707851405319597674532668041106520796978330509203636791982721304066804703858683224439815881877680682670865524332007110935427943906472287861915526517605899549728515823381874814401241916525802211828129147486047660034069839400994100629733742115368936389066883883317590481014878092960402686091142878418710694635451925776496690662953222780940511884549219210518839608424323104400682490695048199491472681827200331205535639539340973126213230899827659528137527284856596544157925365304255727064654223142835699889996798732683525593922664909213343036799378184823579149902483951030112578315779982545421676583642945031848142042723746397447690610783978414634367623051588619077903141629920027994923195332381371370923095118664715977541306306545563588472762175903748615510830304331964179294329623424180116375156398592010124928267406376042203013846227624717397697353490771641424615761167023312570951153955809497160027449738174431065858867085237198868855909790246316052296877059679107785138520199254962895739325061730950643199501812273399573667502396710466796051253708399648886059369453481532082808733545872252198953036574106237493621769062718250776127888906571360043399997492209556734362180309725230769713251376322622804438588413684571800466729375944786247928283469859962050694114269903081251543564483226031208026998060793338621231837566766245431936710193613287677246274833373181027783837195064516974844895534200538173909849406087492121390003199337215397726114041037657957162549014929158127197047039741715957104446604614935160418889186893393787934335388406336628638027029586074579315536578340984513694679388523987510930326106628408028603533379529827861188242339223720651763644714336036398372161960531684929801743721586779588357660731328351397255729982738297894404909219177429954150815524869337749066969443433448711010451265463791329824118945839996733963664723566793289990828031534697161888717007217277064767510278369499028989211128336117954430161450220790918346230386672430783512128968536575319669773334906169341291520237818005908310125692337882638913613759013758733744851591769731854916171959936037123672765435776071905828956801965245445690980825580950725114242568025363905556652199975525344593808382995297742304696541611762137546756036453233618826366683385358705148837607989264955188557554391138911643995301761047049855037790691786570492171565416520614082347958299310753327752797845432794887586907170628026608693925593287349026211550703436369287622468061468400552036119070831289760239088355348465129875137514583866157129211418193156040113767124113970420431998081360872221269397870948584780564222809826610808472440004767748851695204262355355836898318369419066863995689397065122622620282292831289233784439995334155526973338209313475848537310737801401508848268912054753023460370895775308288698818085685528746809705350744985947323780833241358604388435717636268537987512517235758922596286655758165860407365420066075703141539568968302840845910354270328686875743474289422242049398258076381942947113859480441404792046701498500230339283227332971757593322169413811429401886362693924115017182973673308572332549659798404440204819272967067356533135460428722508623814969793304794267080192653988742443717220900928846981484655106470580118058908221343767676061655231857502265870296038993893729243708679968342240546399532623321534901736136617660313604908629690988304713336572429946698304683683970044607992055314393683786762919778000490346526501948127847813023959634933314945785547377513226044723710697643276585471399951193884465371669233513690963166646815042102814582909288608696972325893090096809571650758245434106155590469344177987378536035874419821175423143931365307405976636948058644541520090043132793028371488376129147857057938335696686361634457551573963803362711983123136612848396924849077835851027328948036930118544690716628031091408202508495751338773101764631983381298309154390110052898194006826273140352620526978409910029824002495553460737883039951965211358834809085401065147112007191761314016204587082204816409733024436872373846984493232754129692484941189120886046540868111535248725417730320445424536927222134608529977486772152589765124944170079732158420760958599849372238904685172428954340095870847408052070599857872540017932764373971778547712462912766340330396759762083718599274534092182400480437317278948162977951227264315741366675608198575996033323016673642988416639576398744516811117072264014639831234166908646050634437559922454769924480706275919578896723361441529162200795790630369544727167848631955064010325263438495134408920908119597965945932139014033856782416605175592569434393793194387425557533139118597930490594042859081492155703236182274194323440542276811837074937611657801134334404184119890181947855933987605241722558338844155306224112986606178203669138617281900530877324067787943022092405185161829075467426965863833421762117360204527857929722392841111105590184534624042083901916119809678784067872167543118102395456251713191205138190234760967467207877344616247074337040905164060860802995995283256328110855996145003409179652217607955382167531904341049656594503688707763362681211138767564098523077602164677858935612266628854208619080675363282965118023573704012979057961542561664259672640497662888786676036448230700587217421941610850272420596146781325871471341998857000624437989651538862697818036107792300198773577803238578910460841533725101180489777370811919546251701028515330031901187975127910745250132467764361459516090194853972577227169161858455366052854996387737975350407719857770809944467451060736431888303457174166839392788503845066114219280220081393947525932027266365022142475359472168573500778319979582340981904292177748341515489340873773644133486745867658454616946993222922147912070033761349888753911669897425798271748393001743515156844856139436577738937921474582388236269168796956128364910141904418382161895392777904774386678540311991285413307541308835788718355879335226923530604530892794751459245806162400998671405353457360563476063732583777879134525805314712102454367977765859976519373571459813222456636421283384397383342666209697246375387648074607313329007640020291640749280375100013486247374943306257252546663211716021516182005248012608476669779538726889615548868893342823882180440176091232531908802070850767686048197610354820152268841903600644627149669750070666104288729997453997784582130492298664779458997308940232750234168323799197356887711103262586075688571159280912163294640772425090368435261828252493820085425684946217916996190100789898779156364981030749918208242986942892189917262302958289282210716826508359921340514950465294091510369671225703689220814584033514798419763101482256306843535377948079561149497180024715094440286449509411347694312106741905035837810123991280639515308100482671803240296829367400185237217115196821414775661594812779781949382392582230273089530223076785237401301327239817420484074297669609492264403490957334506847679522846834891716249414039436875914386781135867528628052182816202820419002796092373929651724647104499323443534934892140990796804076138465416549658455557092351813542977920844010486046889096550629076179430064688907034466718332727037506526121957628125935455481257561387503597228672271138728732555237438132871410005084335363822718980570923095417840053729829036126758569918427281320881145946129060283416043041963135779316995827308574205136240449378484896178141790520379288241640678438669608732005908118088467998133370473078325721382650408334205917042774827129553543520900334840353273429093903546066675556183761545665948155015952545271128327671168901491830128870110162977303792294765341843256636672180226843269696677050210305166651660040154105206782019793968027896292445410190850695554425129856672951220073688448065776102778723529443249736458558158119836186318409138885920483751052478229756039245514662749266754322321049785526251129017144858268018671393799206213753934570326812417609459708316706988243867358145507480289921152709844625532428077106817693307883677711139734045280693758801967362008464404845205943897251597083030871573258071108896690413747307200337172776888564999858692942590107066753296674403536937776453130978339588715937745580966110251191383209957888062922834172015981910013173886802336075810404857237177220044792950829101663788289109916830097181636677379046567850625405723168754962102272492203157117301874574091840261742094524023668839620813590027794488786487913089465563814956205038702473172275412921142969055427163544843227012335173965267850605768416627582837561470825998951928785822824057839084853734304981188499249136457280476642992111613040107850399922115854376409061173641962847044360046915383405463894556609340636545656860681476565904416835108656180161577282047557907940843318389191600366713583536748195074375360474646761017392653662204950877710504217362456704701538342001998171036304792267311065763527465142327532241491111995250456778455982816178418903010323942420529057326052109357457963258767482036864646210804950469554528713030096911062976713867176684169404812328833517374720523363985967454483910436319768707284290366898676914515695255342422118853625454080327147296461466502623925604822881844848079349120712627075594378000834375875686034349242732772201136367365894094260888953968069375371410600165075271793699656834093874313373580833172086617700900162141439516397054601790404819844538000154384779327666055665132778781521637688566699369031981782782168365807243885648735855255190719242555071614055960173992293896411951084174704574325380818807961368773852333203508258384424090302309572669334930403505493617811532711147897546552289112846879378358322857302286129076716847298237922588800390214857147487712017567085945519348327939697151346673620699594123977542667119301672137354792286121601751540110005010903234205212703496343283622042333616832080060673538913557393185405153408331096952188200664056760199779814898257554585759885148565738286961742370790214415935046900340927936775056675129704341193427600034582452409744192296709005326181662070725772951366493283629181187186008946830404073082001927989501338995040024303710762414885988647918502607132556144454882146156812591103507359760281976979344519554914596759130796633158518654635234274261026502610433476654771922601995467697445977563555595895393429522259489682439780937083998355979623502809582696670157259824288953927808922204704325767694022757935005877438560069335500794146824228579333041022767792174640426112362905933168322341902503218939618432111213929610630605980722670664847021458558195653229964036484674447211581052094757728940019840313047968490165357635739004587935250492974833038974391526160036545573774719621748619444574157357205358448302520078381161999447601576775036784847352195063574454625243436657962212787010467368018296178363551864136264716941169011220233021952757973581647999582916495075717147040957562964872716720505213007470516403363103789317631436971559794346192958253052928676534754780179096190245230362701762681914904636878764043256282781481814519846413482616562408673988459536810667399291157241897959808964165194841861366241824862925182492063734438133188927962884856276798490141027636084321839778559935077097174678878824212598541668984062058731639254895777941382791315856059257876228567990850588331519487676969555917746353397884501501483462065279788827437278744011972992424279254000333997557599912237419266302389880006231263306397991101667331039102484427906755446005629055459187269452320715561259269708807812453252176563669015854407195083042527120131291295578874109780003262357829627851792737473485977317996820819980513986183127538960496828222710163450867187486490208858643932939626041758739012329442354182528168488655003364472182811707218290677136020376528076157024051229642358311622885720390686532505183865012605346340835636095083105581459071100860014473534995038815397200628432249207410709656048626190095137064520284709716055415632481487408660492995733495494394745246546896806086795036456503470615744030398693418129754399717299882320604877038478752860156419626305030352292573385979312271390829791653588227401536512285322227224367398658540171577426173100027315611786768981321304091470548479421303424317272054186842415130196909387822995752684065565759442422638836748221789100748420436006575763645934285470811049828515764160847025446567851260486321013882965864755731747726362118952853047903131899451101538664330406393817647879692136205818610923647317743966428874587734297360870599431334649553228653515659458168473362954794669081296507961245308512553595080641736391699047803880411259125193935541515639322060811359832139786111580095551789438283783080247219424304614176795511549970951626502171134106264766972027314857095128927395170557764760914627291365179876828049866633959687866791932274504254594191190418917777661943205800246120456774647643354997435355766743950989058553919517799791421039916163208019750758830009599242123179369161565468124569198252376239558457191217698015446056520846980862951350424401142691299997765720294906826899894557258213336556790524044181830213210657467346772407994989141807170067588462768255422173850678519211761742848332970428871152328761890870807051455029361789033454914379034494834978794852309074149776408441997460486796800258828218729934061663006461519419107597214674514708518689432112641856999168135672803840392385258809546110595115391384466318824394153540227188674745612826142137512211333840933080534962737037277822000001509578242657927540055539302100730314312849807119530131222244799773522773056367387001564196064514476864307528015361328637776186246075182548783968075564157152469087310102555885855577146768793690018777519712301089498463586634628846820752892344935151692555587852316192828344053470197317052086302946945418736515905523091856738830004486206705607466018714773592682434131663995679020300335106518263489301653013372649679477802911691033022751034303477476712773986920456143463924702028861639433811860462097937598541619727939451177462501690804784685930220426986205941280857989036948661327100445056991645868457423929355804048854811835269429187422526457489571669512495322604596657011526197365515103699538459509268065746923240880573937136876925564039545177610114861064024577299903651510848090123803355522451876737859321943820694828748977748097253446347689603567642044760872096920853333661408610933168489653111703152384358669030468114348661033058092563623410289130397531413045309975773030912256496246355471854488780729680861582280064578047927934074753378374960565779425660537507765003061459979541883541923483733028452237131012662736479976852963668093715921209838773369347961368613329541431072187700213591669856308265767176158188249941800216924018736829605793689654014301813942128155227415847174063320494037315728422838274040891119115121056968713750113195821149666472664710275097215779716727806969145392323663789766308973239642383251718093669968374693110531253297071265494706463692076084295644063412443287507477124081282456108240376864997788175907025734199099524078988644072941850472164602291395255274813697980684171452573279804843574299929186514619633436473628589643531624298874591851912417884887205352028858221255129698365953567370046014876794226509591911180909900410332664681301193197634593444920923906901938127063731743494547508600197100180757087746825242084725311664426860425279412816537772948044459174767937976100279001081313704321325073600718869225699956422391697033897220865101832723099803912033693936109148683672915565149726278129275809778022889309225838154455327084686659457876965599167806092531130579512353482288845317950308261359806630359213527962430579773079964155391689340142622283709162410088100674272154371516102712429568755380740947755777673937534385542727585454460890037134534863503250086908673905601071899840334728828758378707775436906046707516262407742459560324381905915893287767213078981783690960754662107100603806130770402282552186079056768292368660859921933695656200754970544991654106683172149527459648414978527081914857722975708372646656240960899418211173556895117635154513897928697397176954554085628442327772836407341975638644729383256773399414439813356492627669139426062788107264827596152447664526155272470076378800777221114750410814898768225787757384987114853380867968080426152299110115026880646570243483277386096660305591066689029102095653026711027282675543291592535754745752750978844471271014574298160197715632656128441351952215611711743157815881772449315976596631352131116071290653809112946285458300490763780415394167506147076501403829488074191339193058469106554630503843930115555266791083621693331799155651606889277124272494843889668268574879406485136976752326781894216456950293491061132851914753257694682586471554263647443560318014992540812616552278944604013109610082890610550088404508671132205345354972485731435445338700196106810742884064273833419920690474953287230677544981271289726343062770379325801966124425837669957066194028164009450954336791902619471755287085647671316327549355642507407794513337098491997149027804081533810692178978181693955987747230537492372750851024245986498190376113060090458602220112153138852287817279107670739550429106257039690389055300099222385671093433482278140438357707658315118666263946786819692459045537003997948361864344095605316007559529411528263564896390152793095744610398480720712396804205564079295095824573047288698915381077170895329289641485159097923166417091501669138192376205104774139913028219593820404629739948122327791667646301859550449560010495437951004307921908757922993371969797706870875365858045308518888849198513837948956356224981860969122999854518380891211968768416574938732603235313599498749485745080687275449070729543567282452091783131434085174568612189256403227245497153312735678159316588258027733994631173544101656612001113480447633417814253798818573768588041702008455688967220688403345565530269441029979845904945051184655210261681346091273938049728708342581464070344517104016008509535426562686643568345182502117072033721542332629876116377486976912138516126563155480726372478399414096276301031186552323471224841964304304953983972306033462943134609183961747888648395754502017203797378405172475109701092894297679820915431253324798535731724379478142476781727125917658217490798259322052669060901220876413248373000601128875365414490464072724116644535793434044840195312419121114830241372632281804802949925548600727627009606124873424657675249873416789730126558707071539639881452425349122673610201668570893061227302711354417687764272905021922857080266502015946066574492663834605081766717435174255033925333359832202660119804164100225029145340888800168528226073744854295200386934461835917452259968353416890186323187042732562511562685333970257836278006103103083135307826514348319598391148150033180229429189222962603387869700007265149420617971238351078029959620155663810594860244971001402799197340356252500505222419516828862110018285485597908779945419982873966508225070086252377642020754320013607362907986726290996201631871236726268600314568132194569948854119882213027701937484193268016795846696848767856735318630033857159683296905782035273954027772779755006438422063121996630290824291524243216389864713531240346587259631592943432774274302739994722861361842720565728764177022584685906938113527959563432363100790360661175347859376928588772503419636849094597583669925784176879076398235996245565247641303614997799960854785506995731926678468323801942436396717893639966366641807159129616400286861732406069372568656758412991255697676407664418758351306156434425017566094816874969792126453747630869236107491039629254959238854908482829050059407265200193716493652387890347975934795832237449598081545146173279432412638387169933956008305462245061712297071138636991840955865030560683137010368617701177880394955227518787666912992293227652664715212045782656844696775442551386794560376729976573124083301367692577198748668911088604960287912206700601326054137644397463872186080877061374731873580193301342847418139918434460777277709203840328826333363724596136199260217190109566450277185230931227524846595282829939651220769326730800192568261364729177128362601196591723198060725490606478287502404419183891215123877259083906931239347245598201693826867609321145827502057204974184004445500582670325354473873554792560823279073405281204168716690938193743621037463414191191150182004503850658176461592456546583020687485657587354131726622835939320347822506832249701364165080104304534472247131908112752408560216154792760122529595362133571810617075364175010178113961532409353890179166292009560917483587983728572236547486381074174454959201691882551288967970462635997443440517055479467956562773848067965564027799027764822813214040214014947407380373510496672066868284016729054547146969536911014654958626969784270136894086332373198975900130797752272418422317068294077834743868027092804380507003428050899192831887195480821272383299509992819439134768034420516964148348304659273019989245564977740285082644881844759646173644924092258673176541037211095541631262321923874950491525532157667602462273567933175608961457089574245077924468674591238936805844019263283276641020224061356638121513609433556194360589788960617679232906692970881348700676760159169610453614371605369208968893189421550511972011971859870238287107183094551981482615009698151722164351274023072178208643379884005036119981551396997004460622870050607584574939556467816012178229916676307761424811382589068750267719791229321374070741547438187706289479089759471364288034125442814222958845888789036557597309574025639767667658153028327866915381371593531501440555318203929766832382894064227395531271665172071695284518604243640233624895966926611692478740659537620254491708384631311819110436654192998547364525401085285643008332183528744624815929905318202359853456121559201781063520963898100455929855672786502667491395494061490493606265546552804584782246394982881881489614296522147556270970282419758808568351138932772611377834542953934462800936944079942697821558677986310317350828341727844081882751868356152679419982649862700253237072197739068943220775782586632221435442529800487729740492254918416950298637293685037803916317353505681553494716220288261525630398049255006293006110784920600656325516644652230132121176674079527152814653835258396262434373238071852014564783938148295909915670565420024901469261208990715633723853197945081946835638425136234087899695913618057894232711815534883935961961171609114396061947311448651835439032654438868276799398021380321610975986845485223953715295774109830735491300770489600598478703892576602403752679694562275351852085914401992939731465033768812394657413323266837808603720459726240194392406064041811515844493618004504094379736026109008396365359548064310577108842497699587324068401171659719987694143753260430464430220918201595824895231093837587321172425409957433543353704220160828712071528207860808307466271088227049634683152238399586234199804029598327311109030008730336230849910285294149216885163245204734708663053113016582745894122716876136815406926222554570676510442688053789440728531163876394573922441172056590715929509094117658189666100854529394412470637921613142940356950220806116276873321235416717376013966613421425079976128470667206526187348133668952637714299827785338566803203046644094286728063214569832324479588592332130246317442143035957179532884696242730273052578925201561216485006785144503860552566891813759519064886772673427374123298050014453815311938256651097430731334285855684648854368362618620917448080066570914862299004323503631560753503317124670127438608447472657970210635100685051531989931340892374522741691565794702843990481441814083330568464755726397650626864552801334352843103289428730125375015783196259466035801612317150917304051575068802596521968152584516137926323746806683810262777419384930384856869516361316171306915422241729526889162841773205606198743630584199745963870113043908382979575464282499861570301546187558710010810032277908551532333336471679418095954924382169072999866952094219341954047883296576382607708793392369121633722953033541517278275469377206226478951897640630973705525180228461632693758868883488125250084287595038070364626067257442672707428100650326143608604039726941069383942306658686895758767714052640504111549258011274407606568304513097563439530256330076890971639888515362354496239954464676815439496948511567757843605622842983418190220222939803108990606207116604651488335386566209372547876268632613088825095481664599234547754973156455716269419364395612853530999987068557448543769308048659931762676492506003928244553371445780380660702449141240803038190261137934470587534113038004775413483360061659534477435616896878037016629958836548609986538695560798177730839681403106874926088284612955959150063872619604893216758943324425780727536291504731160484016624366953254056801528799130458085096172878701377572160350585597164574330765769705482539819169274304829934043325714083692333635483955346433125413133401853071571335594560163861237548941745510411058170364883749576351705881065633113587423802626456436929754107152721634105865766470127980242120820404943627648739123694745200080399843465616008549466011687183845609379118568199224979488730751922359136814019014977711260327865743418558639547950340787407795875750156669848344564939856768128449615261155979046595925393542121131742892835031028303468863414259624776641547883597548899898183021978766937831186538376128039829129459149598051860483897658588589259959310314459759222320679200446851348412011131756916697815695055314382733054577111414464274707482158243117732462072972777968039888038561252211639071901969270089778997626963142509847977065258653601878320553161081767781726203015849208932971345837234504097262653648381793539260194736173869332522285731281698178041144863479481338902536353563231481985747636912989025315517664950805484554245052733833831609995283391183033425724617298807071214877622164229531558878390639279871939618889865224982796109171231289684044687435125828249160421561650078978579102438869802405225342514608468315076116954499453125482999591979422694457275079444161498077569874770235552000081930255214599810071717409259001488338934784099987522817055721008292873384566386503879508859048491491291293287214248644188755372404369030860406780521703390835372942999953458878102271165459354709976957581517687821872504837617756787840030630505532042499297433040866187931170860394863410863931508471250702974315577544236567501389067629439172257238658167936658512448533512335325147659401772019562993730454137955939312164812628376526732290297777792577730292906882241004302208584822539150036906743159693937896282225723769188160575778703826424968865734317116843734929459710664073204637846139538433865406675968783210155345880577168038297012126882661164396658828712632688969407506239325558612187528946551728122148932060894025991647759819984416038659114584460395951855740013037762946014344879757564173725881292260115248186293803061477770036962317238775712262144911838236902089600094162322864292571521066639608752669707190249650915381941735204353704523970732810196529893575680254679278190446531039979038367499101153066253043233996663958857926348081179658670404921646173622248060778350305353782652960845483324118585100429572021744639564360391175281582154464686868107035273171749573899973605299165507400866690895773701713592715493806694785363912523392850949690905686260217750536964840585001200955636202297046101173135851487933476075782661662464749003435477443095295890643619269714673568531058194386554405886609201547169432996941066593736939211898949957477526632753229092347596472802432820662475117919128850802821335159734366221217027073135906320351645631430086577295248146586545042451304204214175821300211132906805550706556038019185080746522302996492956006908464245085695867000300296969328041267981775889460217438305173235472751852330134713876242785143147667449062044167336539272786221627720755030811219743605797939746707224771876710511261985857277726575437404086262681516023812172158938621735703250305793180792591583711432749282365948249574160288872109404404651543355175796436764390010147289776042658891310374416718835858760836077938577286420734636116209142484706675491588541763321563222212756280732897558470488867599997511036438768240233947236243951821992416342541497451511167520230350775478455626940049097021277090278365908417215680115533010174606072915838661627868041703400957597657416003865724308043098670351129151608977064870998523099291328727441535092601917500743626331372164334681851643539202823286352455404807388885564364954740560606166825023281177662517278554516079603442522411770830144936505015367918781944185550718639241224242219719512975734311277383421022180300220882822951463372276444028766455648398508101273784463133895754958913987878101714286337471194631009683585609790162355622947233045835809317449690339262246255702161337712839514259889515677002883138588963847488316218745545052078427578593425316073845557778923805461122605603405797897056374601257130580397958863159972535004901699141721442676858852467425065635145850190793962504247340439830600057200507452357794923278682572067053238402997662668948152424041697725766492533505994329918285086233270204785894412188364320634119850097818257848669116827864316123998335835355214923246032526195740236522374318601922135241270505818347996576180383157413618753786825626456179597923247473248248274466997969711145798034102090478996350383384797836150174041434021882546459265496448423138113141543723273111353822414333820909206881367046074046552241603053384079811884950742657155729477701758427535498832369529772279252889467484392103836452455394896260713186749477782747830911317249238958684680488725045716928852603119191079326639631547631695747525287708243380199025108614693982634327018808291599761814206591368138209287233517902355405658187971278125373027518146863637182414326401327172575033854546585579306052830469690458131417961584344782524078581695212401394495224862436629015149450449834019041767590525032687658481215784575185367549825963102437502684508652599775742972937316169782390732829927281701061825729034609050380459940935809315976610531598390491377013077635231345575988939418747630873371695499636344518167942070382122519922310870180881990524117267641029553487417450970504179011360021239946385524933444005853906924650617361237398545064394456118417875142930662995085849157025536946225876211682916111012561617359862228665515343380047248876070324338506633164623180872938252934353964636766373084708011830593868656532647890185079910924258347177660191661803149560367470465768348416572812661293826251895323425307040055954197362722272209270257049361286941141099523825520255549893493713591914719013591180713164734893930515144154572815037521440390326516618250744970755417924344796843735241062199753145543367539820397681038913583153681983025508990942444522840298362570895715664991557636888031682986868824835226041180149870249851378559815599357262934556473538487556648833937272503829217556630995202098032557988532343747387544623275982859464124674441844885662034553873736668261531383933438055489745625236292005758783427750756837632507315936348461402854515472862081228726514294993917273388552650393023977577999763623292308221632565680847794994219213355464415786879781778791000744325124921687090704776238823123068202038097100242732951453199574629975959641868116720026903616764336146215581841340969324215250176766584111281848999081069319272470554198959974756711019393581586261342441380280358527841373730503563621874150012370345009212520240525857619787393135646667235375433598239013687426092012481297585887364509024132633090837132623676881328611044153736302753355701080590356052061984799504184438736469998870384831895179069989220010084109665221781698361258621243015242510336921503403106316285620510548680049028882441482992306119240575344056807474909226108136251143505878661862064448303187337165839334346734533644217839234757460069064533127718917271017760278007970950043449017190878992380062547677295285408131735798008641519529885571718404539548504828582447766680470304978552324585859802523902572130069802714805121127874413885725762022896629743542760873521092859195370974130596217482366870092682438933082759441095485295626754839572240858357136258549921335522307716731467955330317889870488903233057087978687120853136518529742120728661643093001984232176903129514334646139549759459437983229167571213544023880617573869578872822793494928474653187315561220992827083954980431373558806509972540495594532036667970816152819099914839797496349001040917370651668444190891976933322332051871938614956186408510170338613503867325094602973610370573285889202871594170541160852363577357462484544825953124971653662905232553193407396839508695216787065965877222021619354672408880879956581937327028314437923835560365348700914352825333252061749183379047614791482328723850284147926194915452790519636537777204808047108383120028704971751593600921139496802859765220773530199559218168055256446585286026303475211429339320692972290990704455607072789997935711545946322317227624415731812577432051379408566024427821908717987118725088370834468188995914943329506319240694690341952002152310423369924977463666622414986192424328115665316800026270469497161422823493627015418683957156655390060217972457551745738112266541643347074017112918703588518511423779938664017296048462792011161422771217430363463415535941565136720680424306319824967183938841217093581864141084371443941959960940545753796005696398638509301815651684628259077004166506546906836269222487977298509351017130985794381478317280355455748688760842222105181151853988568561249088216022372116018850413661792511103361957739754314762987198410531345679214310563370634345115988642363983464550434438336805572008085911430467494904723831485255290514249391633063999207596502908395428137873982765356347419832605751821340755682837409173041527686229392126361166248083347476945672304984985543150825178461880743993833548402286973839769704611026511817575916010138933893751166085348722957489276819227503889664155727093009957714743910905443412094221755050996943057019746522751304234334909407891699343005979971654518793079711890587623221640064735417599179225209327528950295467011264082261262156012310466230426641457615828210009911946006447530317139198647791682102807920872161972474775001075096362068267109348570123034305178809366158590616200036778382844751733005582881604658734675746724261367698366024769623566058739521183294603803927629806802541886687664438145269135832878906849681786142569112600470530639399816575058574671566807897041535005258363527065012783147556255854780633467019435784935997276564087566867258047671143722805561421458094562706405064198927081219733781338164470233647145795035712178304870352738999631321513364919711244857824873045919264286032131985024901511685698053687680017248168413610068813400908966089708711991958603669767580167507616182673473098083450791242285522476299595106191731824579870615557563430127087671626030294051562107085444678011756864245882760095432081786675747606004831844720903717057001697332640470463552256171018288467218893273787663078101883972269836949914567318375269033375451470966933022267972730059598741156653804834159719168851334633211805090171402437663523923597809754966279483593666789792387320098489336810407146779842610833216714507160889988619841148007663539958690602445404640882530460537682102250013418129987256102482954950841393372265112612370576229967194344286826100100530687463017130942242195278845421217819355662847210936249886702462387935217127623578261060038794459120319842283494194266801746269067400938573517325264912931797685156443392071502414664569362490742275379352323396792854669749036426988590151848123998596888042970729022269109359553285767024448960600314922079251806376585896467231885103603734000171951199199275685488746882203149096550024010392574591487892698737941931185517768448230660372896030939831647175479608680611203195620899199167483116395211026177468498784688074208411273137968785510302429210011864714097777710508343712348490946442529505673111505441310065202173864290075601621007009967348840204561359640150084876437637396577541217202659541017523277832277939844627562224622413334699164046772181321678403932986930503623630825412701210078157505464598225490906872981151769087993883877356245031433513779821318939013013465749177934739372488967718182577567316052064637414677107259283975260167438413127091098413987743038648213828989789613739189080943461784440138711990523028371101672330530153823490114598824252017844358129134953945339270014595279000877728526008684782896623653746475961338762241446059578306002077905055996183376042750359884699576968991333114092222575283196056488528447802205350916642084617619177498878976985474809229349284049127008246448388282629546725380756797594377196810023321890536527305755887671305126266924229612449486647659671701972449768724157123357955489664551123441001284447091524546780482712459460623693282681433937875812543903104642222399566967437486982020537443926794672740406030585881715189397844348022532658277831125288994438485173297726841850453318779529053060016879328652352576180569997675952963825702938651530861938982591186115632987302372599301357193516239244996473464933854317656525499725284132560837369712890927976358269576746947935303586587140694918261154159750280696821904943515547523764489514605389259672929364355425770843171555526226537834772353474700188669749361338877042477365705388623065906953470743995308645418447844126177410278965500463722217969273815047774804315034827060620994184695783021065488806295527482169942155356743054658094536367231156850182302001519484765420506763758627094057144377077636858870876449320956062334976016356072746038071865248953396039459134528168982221033202563670411039826727345807118137737061447561184758677170801056650271508098915964377519871025146723221848746106375512900698108319777169579578313138532588627381148230520866880573764380581037049289468539176622511178778600503190379696197362129619805441077595593815792949803664409303058375885959816924435224076554761598572417680628238157968373738174739257111308018430065815028601519799397785017952238152357890008793435558905090387915896633078110806869173858253317284534508727174848449201219064127642349933673632825576265762783758553164145340885435276747550764804184755331820448805457682033044272433970738574194575260982311790130981543313418935189129259538672052108414607550932386994512908590070124352967631753655129040128812920707052483710397749200552240830654805105267664015565479621115029714593020980305515166225268605495188869491643969634431260923182460475343551390656788743398630479295007264984187729380748629376746045749918243186351360911058548338770190681701462451158436141420950748267370475672995613928171987529822812671791689347800209841038046849460658665770305566191207473210620926231543796796097985540773583460170693184053563878303770527045428226773901368847574930582625227184419310081134773601189317817011399035711314833167003938810541541983516588710341932801282153320990644185832373444287994726942008964399529845115713445503423441198089155213408959622162025515366927228451491457159177518727915488121256484517239490015437984623726620227844352504922391001291512780860271369077910087268873949836344424415330198113832820610069742361383902287656060486731651449546079119800326695208907277153841820946067940414108851945538273270631241262748331523575808957441203135746777476785146679348956281926049947999684873547367761637214235031626641000610453708078518417168843396416260145741717845954639685379030484448928609466951643398660856456919437202401378235578715819224133828190950427689397638477043406587142368246726625699811400207012555996568835342641327166436233012666657998153818301532013704371003337938367790276135402709704555254278651751063501231527506128266426031411437493928315668464657973649452269516693747186005975330026127604458877199995639301853112699672318908197985959089380699501387058530536110428638321719013192654306440555022854394823721067496074977419725676726335497001836079585594293032522941379917235121826563487994694096483805073076593569257426769291630643649331761323443936903359390010160254042555954144151545730875086713849130607955493744018581787427515363632556430326267513952360470950713058683466705254410508834108341080637950814682743253492908933697452024077892811059005427081491657647011618510650324453283457204714776099367309633622240276262905591362134937281100645383597737288943274464185316197092014673554283514382558907306147708865654230604973565540455335620827377188598030985124936599332822892204779858254523298514822770737062664753796136098266671415689561288502427611374887309741207284464262270438232563070885185401165683937145201244044542064493217963413083270253231396861602101488783394597451947572791844991477194328588271614134260053524642309054280313705572204310113797041410433084485396965068543462050288245411814623402423539924679590114196756114545257236012597094651787612715020606500069719124750077886725377643085276136446131860323950674501650761138458032751967129638697955701355907269016093074686239621668100337537704369564381980858794701847215372856978269983009269264054833246759295616060768798633867718071328951006381095995619220754290257468289401637143079183880143184726349718087868032950799435139575117385192083495361371831391629007984107378723262156717548822688801117801422255126420229784386144120250140206656378629929992909234862037905547886644773003143263590052223796076933408806899833126992932138506399658673271836036701389574559553080184405862805828316215042970168168169746849074291446106453370131707963094704650700258388236791527299866741596409233270096476885215044248457989304146273867707804352031759057376627664884718689443955761467653614058027431607379981918847413627097365586984440915712971134738237533262606830766384709672529181884727627296193439049936703787551094638005610346609612012823186222685520579043325403969692777285931556659512154737918495451537446241266564859359849256492071897858899144620199094338687536076967498072918004504240992045183912418430414178530274779928146951380592851501371146244871668335901386538059764948212112231947634555645885175380399666047755587302223449178652130199446966014047649466365396800680805210576243806683851821255305427726148583020243446176407463799317123708463265383282670569792068350883252335481887188197391518667424791129770550549301782907257360290551047417422942481286686798668732802984922228961328114579189044869079805102361742953093806797301974022063352480376857729793323016142258121307276218526140190484839309949152166074536065704321828486291645487621236343969928393242664327407690127445797668440988036276951899865735208615468334499237613376448457921075560147533515176917337860127870819722683643222906718817555244858401274048852517950586749698575536248739344980253236698754679339378296540785373133193934632992449328666366655157086426048329353007433699936303726253149466227900544265227381305632060429056349222964671623015662811936150833279907544478933087962058191873233053872779070970935979252566091505148262499305863655078202414549870102014401842916466724132668270470366480812950510418412322727308411988398001144635526842871493005678585446362839330627120803159328552414870256939632317228906946960115612477341698828762937126507860499811592716068176670107603277481577878087720791169686856462266361608299221739003329907344052483183800718514629924718851914131627862332058794077116336739898744028347049038146032559417030437193608944790057022684239410474832977160315241989292506400395022330173547461730637371177159567557586502093119296611930907162396364722409917117411265740951773562558165236238997637923132900395107902540963377885221125982583872600352768660232166219848149580265435684044925360619124458924885602271854459838273829088376632970856486960872513972931421543428281861064902287802856255503453765388839566147566725052397488960583449116577808890705189994692935005703250070539267578849189080423352993215059444453995081540311906006645633390782975680455801993406970012934719074016081635830544135288813973778589964109272019690464680564997924086669499570343904115971447316256971084677545337434371136918254654946385944052228658907150825663445057289570087129570739927069055467507873341002782938672524506707330420175859426118843693615212105073348895281896168186139529852575748991400895139534464055521147488028868763487630404313761314689621970424862977521275833014660934661445403917462546196020875469835756033805003523404291450056250966557825259919848048927885396760921416123548736158661083140787778825324722344789252797469566761537322185587781745129872068269949735179036377524010904474731084662244863045264509524896146256976663895400267055416564361635935058692191860042060148378578412876735897444800704645978485493976204908908711004448174451690481878619992643228877338841897284454989706500715394908293921842864312813148668626645471982808008507836957516589241860784834895466812746419829874205537144775864359449921673958960194363141714862356594084298117918597844422731892781235754448868255579978408937593732335750423041242195590923502033880717305299156431541253505657069806846598001839193298717942420513055609916634682000688633014467177392247303039962986865694693260654332467154366329217299644946560454110538612808411805180116130896588136278416395132570231390901996935538721680366428961137905898101621961905565272476898162376876488572020579416263363139000495855527963703139907047506486404737217601028014558878539875012868692895958061803976134052382097396288480236051176130341252875248597585169324616205487653884690565502906408404634839453867659482103122406041105975511262334930368996368439246055894278158456354148449861466416223851195156047321901792869521354917575840736795560697400810250629999961793827914567039544124003558590035043571204137663285963984058939487649671409521913683326687488834473501771724240936369584326565632182585125302370777679267823415158328812738859952427539542328725509579988239959490255176247563636404636786289571251713642096227432415781450626506874761305615499009694748886258238001894896737432217159381234244460254006118287096711146441105800745075946702208715180885065270608349218885701515300156072658850701023289331033601829406509639629347589606654135253593587160702756696550367902581977076687929620602708159480335128240162577703448761767344510359146305939404841796665727832116374800850249625762367338086429256382854570443550708319821958427433254141157620906487903729019434845741685379145086226553650135277353514146595527583863898782628955020872142649445713041085375543390595538584678033543800901939758530812001666741871903958054134589642949387522406111196960781807386112218220042371271275257794380083139284365101330552079206873342941609903126299812222809218563226253203338044485059707458722520264475804508357789616764754360020319572572946043969859162661692731241785915391456775269810017278720942329390668090435383316987072725049689230587107855490219958568957060398305166767592883435386189851695987538081810969514316222641250061828271886895858461002397071314603159306678737215172243427874525136918665989582637524923532524805205684032461519343018372101011470993822806240551931867301587487392402315099731902928152755831387426833997308342227716387798996000149926720578672486057413413335425814485685180663241552653481500717678552080904649040451827020008668265676345124089052604636148147142311254039815104273527726137166043311577691201354507639626203035898583761780804069985307629563392715238604225380614948565236702002422267818449935450123650520888243833416742067839147493543508541876532244905200019086207151783482195145594252780072975809703369180222142252192761641207936488695661826923127129573954978298550174428687147493903365228891310948906191143978249789809256637108809618243194119978179721719680938266000293494559406988820003661425646251705154460323054610724943163355092686145457537272617872473895701171250250466116538474196246847472973378204613486960962789890773265784764075230482251012431331039469929711431979206562818071220844252083732973476254406258724033056401265843945787535581290037818741531966372630498723891612049684462147160340359285550770738374169810682335750102018990479714456423195838668046516850721717829090610409066648969888481914560887311403513308175432360476676705883451872294516265117562233908169158848839710225958029763899188521208734080046986132683416494623714095484656185730358839791133947987104779035049978181671544906506597866027154564946390802664310411153040949593976873667511139738743985531034757429484477235106128522185981843029504827318290105584894906840109393326856790280606851739874116254029885011324741145261595304277311410109153782202966551442947673734763812024882992479708256181967259605914504138101967219362177346554780508894691292802694520331412044965793305467404437874985940235341033992940343467391480348970722276659792106344911540374878689110671741721690171171448698994905858057332791995525034536593756417339769516974097634395837225647482923418128273446094994162259454041712548528966217998095521608550220749630203327042571029626380612828398389572117846233109451389251581357354136040052168693969353474352308912171563552166935765945138220974058368758172469794468018687316179810459421491662074889129411691653862753984370663046796658901362640716950635187805564868774659824300868413088874005782659321139878951377773460952373135120488530616075765879164700144133347150909318504240762128940114084965671058360413200818186548603160319085263904771497456221681034951162245999594076341472113451407697911852254666411353902320851244531254612916899836031842130613366447741371624664695985722808024807476488679981969453715883958152650252814821898676433690278397297532954253753521899075440569935792540562141091336820903477851072777936084636309043567753753155541043427843664219432942910016068019233739182378468946407915117011596303863323034588151923815462492495265155460354123405254424914183920902809499088190308617598465325160205365841246728401080948449315312913175681584893555821651952036627050103831227252454646671521915897837129660437431837509791435459442857763580828956148479904747385474067739784322394765079378063432796285875112079504642564762163708691511394547980745154493432765159932304762948219426379752568316975611727324345472697488903556589238137745806596762134058902346272718856200368698927679366443407598424808991505969679504546861493789082910577558891678179368879927260459459483742749308776228783775037842881735544501523142308643832081860095135005207267468466404793727525299836771054539927908563473153318652986295464251157444289069908681314778054835401210103328983050479406008444998876109126970105992765743620461144163851075941609190555772158558400042852010002767521234699714265749591200398848000596572453457121656047155162028855364606519527293409998879892196707999873621107784350784082289421694893763896719703167145498433355382109315260937989640500593876146293755981118875102858380872790551244830231237984643759370357620073659128276140655390561344470134026205348455113018231819162285620256005634492477721306556905212451868430693045125183669065631320454506136478880552049328011255877703028482153380473052279570044304167194601918024623452015790673486470150602161485057068280526036282687354247263880157683746081733200365915220474722715133725577186259518636020563115022162019936617740084537121096691147914726232808486767484362382450141147683404803589968297812452002094405136344216209561734465734552708271985280821726228641156608694212626299331805639286214529704251534824052777449117764727416547137830931144221923077667578333082943148517890132699773613226908540767740054176139394686593679209300928212815175122738139006522456770548622750959534225516418327303935661255621450339669723832478078715447807439452974040937808683214956922828579925113249339458656179427696134140974310511731371302385219898356907393577430417362121077579636376515145420416419292441800079630546530055010309722964034241142080896047183751014703157938793973953981357245000233040982243027881758699439814582950721775744097031738665997234520686903022667497039279878006928777102439346872947087163558243351091998107790456065654694096062237445261574657252238444041825697174070454036314245756933309559526588810384587876793512073004329593428016464018487385993859596736306872213521074661711361477404536156925923326042699520042872060517611798596055681166117179571254819734084145269165315705074771411102544762064949713139370289569504544614410656959653493069515116591404918992999301753918741603195051306861088391536132030366297972551547648476833743117645255558926069230894985373496264898793637306579218535195163312385554876094794982684064721582355894059862800613350872873180977579358712670732278347001776718665687687022761436563921856990397948262920794690311342988739299457293853795555226733400081909539042489474342841038284803759269185705307182017406158170707604189424651201940977135195875714329773094022681620953012494482724338200876179543330032537161519614568748620260940981574820577573463740982954130250855995173166759751542623674065440509959094805030109161059990698189472789847148790656846986862825316511501821982232087702872640568169853723463068503237101530591458089231389084728582083902290783096780342926055123541904041919084793519341059313058019034178172475835390430740352671800709612362582714580747433835078560357303706790349300449767539885235942960574285452799520237199438699565809256731535802449082318309894956644624303570304886993625536613388685074691561754128608071006811194837001563836665487876736295976613321522300625666576567095201091562760232974217737454079088706038088609962624796367552988716258749671493609469741782028627941085838824652893647513849470343184427669595278950261285889479779757600619121058106378568894982757012873168911787043523011823233983486740110378226917713884414343777711645028550261796809814338698839331352157459200936456071725555893692986176602691872806980642161122290535048574170595509974387035862217230862367711233375119851531060577495890391756599963077705437571335593411174346263032134538809298606133272248894908904677782748564732723978408163030694563628549875792891954951398080508029066861684561955994867265562997321883428665378353974780385188692259866246931649979413960651036089449227978566132301927906503493811864393512777213762010691341137953848079329194397154381278310975085755350243026548511181355413577715545590930588156656200674131058411557634744424124604252633107017345216431134180485034609834127615095734712916111608451165826694733924612059921734187327034249457284180119526556881814177110812046319872275736015664921153668137947308985287712101071745722677462361781904241716203562731407741651743489745731093083288335715960473412186622099229973390696149420475381302539714429567643106277349127189458382627023236666306644357573784578786614362428111588920754961495622394228332093139054634773974848888540045939319221509426062033413666657467010028592292379688960924253249710130950767092947458196598244798944803922295545176112529280001730838026338871633303614308921343715876695408430701135427483354257793238274822368048747701148719415612688818371589966805176373498285527789060709075288044507442002809448664013382808997961875744618661637285765628091754183375521188241841809243440395214636382101611146501183690120165922753358664994010381737042316873843044340450019231356765385630501008518033135517987767654443332578869423140392535437371546645046432269010805960863053379810533003109640336024318012085610242917134093150014620608330484481458736687169439733352485369679365255576893311886817252827683796321398506018098731171391145374432527295328656588825724187191914836513495874780663784395313355320893032692259825769343054679834774870430419117054892636349843928649670026108555985422350983423652442300532587343009580865788922452548684985928852567731157085198736615866297436283220050152559674672756531882234205149091140284571499857647540447219634011551547214829453478795145997607212065730480529337684423931560247295480424692140831182239090447197121906711993152596531586712205287746748064685350941464222164817668101086675685471850697876069025103675210737144035619507888470344528959857303969607683195501972031736466376833033796514392087157097821051280141192225463150244181909803237259557689130593375026498579212018519223500900059432946210107713485192650695785533049505395488432438402513476850101216222865552196961739198631537330187013445972300302670668263284340512141854802250493487078004500073686575130029769460744078864195057309910104320678340401241130646417534830157806934255736560930858562768400257260408833409583634609766348404270381335712262472775668598851201581293920166179481907534137978548327902028606296461825869784493542171298972266371419750357643242528724982178796239177829756717114286791586903177657324460120320019422939850657420092190150649917684265237505787459155828367151173992937504144721789595953475344122192659759577310984055969181397523361324193046416696758782939030258202253328057136292606678524803777393663879735406615014011812377402802852952364436058336426794742352275877820833717127336520828431078305341307480280719345525495013992947699089321229038832188083657811263356540487734438510610529559739126327812990256942680244230137036431717645707633468889696707751259185048044325486611444838467461202959025942108313423132098183286283232987566919329183569370313863930553442531187245731155186075148495113455521307972617551332718215883940619188766526013131956971321100446271515333362065321398297590199733918103073521729228337033792571515466467186492536263010513777798630974760306899007990238395861443740202680372763120218865294302015928464092692854548408863940336424623163939111603843072176995233010151960183933280788426876649932666632702901130983469270147861257046159173568052634469989798578242842545984113957201591374733921932844076746650755171143796658061151658314770347793975720822699376538678008261741675848007618947631617876193276817233267238556548146871389202876090371599195188744797348711723081088077163442567579821528201541388106879744128268369111577235964572874041204848930093210648650008223788553749556362708190363389317799970296493090408978467088511986800382726260670440033583134852475101215957454117432091251032640483701641693358019359321354749391491037848719764769867179740864223752112813672020347243025440563750596524155767248306318119615759671185035434438997811005952718920598758493620299326365452552542875818133783400546735920445957446155969663672900624802920726942785040477194116276165269233123869325915519444311685268161215621791931667296868219683537571489682824259408418789419512156886854632712392402534589757371198387018759047609410672800113529309407814317406689356511541129721083908972032405147510052053040131024565151236689179976502409977502053296893417932851182478033412331221022520426289177700265340559335186325199660645153132874038499661365286608772744828780412586822671867085429565240219953777039840302500632281348818335542621866654471210313091466184380221449867634092941331488596913873300466280850982869332873155237672086636855801327503918013464995164203058257163124485445718060377873792274029627817019266462117678898610955874476052212980410248463540701413684257417070225753707028097259781286862245935741414500562070209389897039976291111982259524149005440959985285201740643910612820667908265498820633404699039568670978022242826440613395287106792441951449746409444285836387472959538816429688022047414026626372463374526875781542422933727893952428463736915714516563805884819281783037069234362118617443569114508346187920327559723168191434716447659556460978580970676074998117600142631734772674330500549089580133109407781406659617663928410320792028594647484210806404083098892629837812089844488114722197000061943499142079566015112106112050768305326372806892408962914540000929641449241252323449355110074132588022827154472980950559970327680799485382525896244522497418317585069868957859443421822272699421194816185852911948304652210599493997923517292479859630456224843182102707178218625937457816403117206948047770392456284631599001466138714656820819487760470100373464140312953972458844355658101643942922595537161531932940314376859638474523919918295048513785798072467579572015483924653867365083415517195139957996173407655771723438616872976475890021809613132736380127522324207522367280252084074138785730159228245681852473264174743629120799187492088408555969060110442246064413503760895203803885804644281845153756110032683259595110677033612259268543796890352823557936619098782251777456662569677199635525292236116778188487528837879716611714907542680784798925890909744372827361967251471422969487013730287559692651560147190781735899865410389945256424141054584337065292023056031351891466210643170640946394400000133201557149399861540062468950999840143168049438005499476319569212036539984522592282518672728832898748688232862783675886979991843046720590245772911071186724803269902849306788954409860908613723157117287241728072230948045615430193994576652850719986431806581732161394787403453087517105105528919547782586405439011103869895940248623031249156159168693917436090837173679870400641688895404009238257630918366375616888492088072221970650618417243411871796886047056006847884985609782383503527312312859429182725840782574496495348451548051516156204633897185195605357648137598122500162582603764032483380303541577174345995330046153968662529427801902994038565564419601584429376396787754840130607335743426834117405118654989046850316449603569109689803054065289621135220836589752972615189409656677905979100486058068898801965155774750996785633933890332912119269436750283003482475212013665657178778556546265852109143385635258234830381372941524204242212008886566595364742172089267860217358865774069211499774604576726429881254892042844304404405792725763497473906740822021649847785123488053272400157196703350305478878082096101351642338485311537713909932320482576739058670966256965499241970697343206131868621330440809361719921677150143363865454279832698070670424579771924738583021625526035810695775252005205079133987165062396577105296267761838958581549260460028317203975226806946256991105562435497548626088678543313180621378724008823029385307326873442913061711033201261133273361948132764136500530088812190975107187080426584769250371739251505804764181394880424180984935412988085563269150362153662763297945062638938111570332397277641669797585049735573174027381679221782212881206418889738805628981381025438488039015874520926762723404900179578631257498410896809670130961908385299023113132567300610229408984543497841949433358000135689039743755539913263517298711196419347025567811519809622425356419228335951157339476267929698062487823719745008848304354870380090780138636277861200132939895414916989683893728819364382006538474864973351418965762383888147434919910783927755531075509374960635227359605122839581078742823535170061848283226228451851307261290983498736445570843860320739654795058988105767600035761044181370222472820224318218015708475385667036541579211536861985784833597094212356725706145934491564608831032219744639224319675390748211949244829841705529015558045328149833942774871487495186909230105292314449127955072380578714135252651074541738172027854612587442411972967392911584426644686359711284782345477317229089439691923252679540577098086421042263585920265618035792483226267149271680338793816661474438459874476089821706315008805675329754727842623620803965564248709745058050706667295489154599424400720170689392989935924126184586296271954203593746242993366763329537197537187380632611722066486766581728965907093547167213740422145820698638007778393719580624486827452000299385917051200713572826597757657739427821745736460661718065006359987497122736840303281536886963822600760019393091001225778268447339119742491582891896934313918318594873877869714996195069040413031100886660407093004366541718006100703374665206842711797914046568020596480219697057616829575741340434407479034169587413340306828147786098815598335548288688026254446335704579452226672071042580215416194569415301325057616639758279558726841683199882978471843153874891916680437435118267200343828230543729968601815658503536115399913317541823751307644086683150874548270598512857085567939529298401422670956154330466919909418450719045492851302746396506452832419850522274345818264647560335008835783253804383332063755147633097151525940058638723553069726743431066856928195418395385424227169089841581980292939345674684691332793469993367627351670199674575872176708472111351867580948051388927198853939879359262832002492099001758086266891232352247215425113363157085911089812343678227700576484833223769876843350268029837876104661743045282905323820939190637250884429297429934576695427004034689828667455830624125231930885476906555049041817709456324826005274373770572430009119345679261029944115209798269991990960908784286643097221466451447336752533091390165712030877773051941017675565824423963072629218737373442755859284833519634918015770311391985473186475749986233787043609258737754540513303559316385100248111019783772439289999277090710600153566610591292408108300388283345707470222101879577018830775126565581263187429731580713972163620542638963152022131218315989744909719736274330763288778952209944333284271596145855639792116482193237422818801367134040879331646714240160871286252757568974619987338099722215260735950368588510207493434665882941576196886273746368400386572354184016023535363340730548541299221616862802881275251923071053070744771091936553241486048168027741251483588354382051006324143443289360929928375968455793237489548349811364769633787813133591605207010406982092851642754668112969102675783373772143481984931107037746963782868988703076628858448687607658417722425580569630210812206304395562435912128591083926371171647316093610838695407969197561905123687627509773273346406838473418386737919443899082748606254824836605667580221213525323264869763502302106221706494056799159925393263400905679079219085222493213306010460734269901706161229565245645464582261595817664231078981771833865550022909233538606359000149945614636056508153319171968098300071227784784310733834608117092542311829888236941056316387717036791158873844465443289306162162013540506951587823623109919936524071045835052725105385531807598123801588864437553252077771527972037146624809580812984184320320675637880107307393893920865654300354087650883474815731564375072708648153058522124496191307774039731059148038972854417773428798387052307444334570982026347763801492710774436813135463696718465394905617589118461637884556151089067436045402293620806321082329321831360048097320156156092301037415554100674346633902710025537828479550639597950147382695940492865422325751188432070864847973338256890742189571928475992024740738592190182328790465862300431119115024722070321216797624441881725630596338455180324529570560638023612140977619372311305106217965065024673903861400298839270968212489064764323706866135079295695863947753667884805687710415913969585888757542022069996621198795491014965367289207378728226506548110561265052873021833540554597116311734498080745843728518397175931473069802374472710009785120736403296006942489039545048277066425725307338255656111751044810891794005982425327401119504023989270847836333426579969089961836260477729683178751610029037380325982137162127998520351436704307695690706505024852196256634077952029605411607716411421905459479887176847974534192657221136978927828353811823971383934285291839967177506886045017592870621415212198325059813322304488003427062057493386275076429456103895515753065619635701226935848783331948156141217266131719289408188470423502314623505230785875894894995641825264102415740509793351490681167728246949813004632090484880403832909911882516704797595605961297841932831463420142703108050503445612613217558106709383705090553324770654868644364158835207221070522858035379558699506302768575316188952015606114367984419909446506069048463644987640956230162767400717579097570186435148926507370085382657975792261258512720982231999954439303699248135980571820052498834819189695565818516238618100782333429384412299681069026185219727839449822332202808183898185009534744292808112252966778649304133356028846150323000754812287824191543668051294573204859133721231184259647543493450607177334059269184336315480841641264819387305902355442632920259745297772895589526825259762066117823252553419813534091516422428186358763769311016982140288016879169316889243240200124833386374341269965473840910151507721004829212915951492871195602234666176632821156910276283020564277036787630951177522303123229614431553710397327242726202439287989801393450091866944836316642413664729929440805009415112985102669103856978323818197332065334621896593323850721355636850449223605806741227314436317546424552950127858698548655570349918521315393612787518413830583750168294808895261119480681453765063908186966069749121200229747573775405716350342600175387975754741512602035455132089822147569854467788470997625783166093497478170954436678748263668101288290442401191248969404947523441807385650803071510124640502183353925080938037914812037373123574994605865819486193795677768319105061925691702205568460555648184148844684245558971019129632331337779607266969466851477038808127452925456835084871442814528084281275971444201527489332932734571968410399534492347236219562359134285651054740592289445592608962309952088755897551993044064068587700899081613080432307894932082473245690800268331060203245955346451286339015696534456238260032132343592880768011147256383206323282941848277433358804573794036142091393742250809709706130975816702650221668999157064161981802909687178323576437633898864829944250969201616729306417225400604908768136766204408551583915178719341520792450139005581155070545899305823742702320070513794150871013438969000621767030372554112082193405524840669610422333148148003805937880137457432839714701558655920940040975217226937570123948193452632872774601737115517344448729093988621213536273404228811702520568588374321416440180193096293224778068631693974796263243648525436894604881316433828247186515744612809480977616793945540342634416732675139860478145691309244784409406448265059691767429983419924978282833270981856673595983886795292380960078793049632238900059781615395280458144970549306723330934473336352622995712823684035911818043056147814654691811405375208779739149242334011070584140616837317476101662328880113172038969911079383632735833822309711871275575869340530058162850927535021145705100521266940731574853265398589106228708972736597324491478223825564146257471250618181661546629538926920212744478047009603875046444911358795710184402628215592086276660696965288179865493988867026893679067700704767856190439051045815416704868856277255617760780678313833831580081842026373888175675304365078806983384629829768933584017965464311007773842030181714403561256669420092068478036453482462671020189799488822398190337287703238427861495467318900537272904433373417504430183150106433155790241041989699039798540692716660647380194445333609275948914652970168948070213924348268015651409049003485113878721920713988062025905504884201521954323530018705357514612094962832066061861323289428255947529947382424117429125201787967590769494202495136593158254652098498276123574103244486423184006407505061247077451967587360214544209034376337051089652294020869365661730871640932235043765684352019927227094760352628793868193167859009426365958489270921959277167664906728022753118433424014465596687285855449054504360525435836981753810654118521422629611957406584696179355456308648231313847500897929707448526136751521086655200359375063547619220275619762383932242294171241698069302500148641820581001238675715589763913393444834307965344001678168549474449710753729546936914350807824741990475323676134032284992393264933566929956000823404073953798894647607087447295160691218278396896370297143181444522538092407725215214622749344173220405501045015230102230101785425046817146771325383914034901346332646695121515640123024532411357663732632400385921905694152427280952926620179822988718536812560380625055058859071893720232958498615495830845085055433917935779536572183459086045736780464658595095901097962580425107651524298372690412564907893154440190182067994087323495762172503702309769049821077691492107511766662958645688388990979974538923922668653966384766277926108654186525101805939290665009922090360252789731682373933379625328519228912855872831124599643540212385931839135416774982966168742325545651561560012515666688699908346924337101388980751421395057206879657182759708126199772601531734311996994189614441253334945378421829058666376169864708258151559774254848777330561004975584638022374071455699538983605880255173285519783128126222558629838852941510157085580387685747389700421985476877534615979799909989954966144321701239294912119002468050512319737967734612150469337548225819859430093596274758287750558706689844665662604402330614820489242636510385879274170764464665046608218886709136513971830679655181534065141737700994143583716308545611827286440731076328081612562763832853249251838689795540731427382585292117878534695246696135618185529483712862564981393467941805441537241329954976299017031583613284951364907584614565043185384413771364129126322258197135822436991726861520850078940090796232529791413422628908541406176004733141944227223385902480115932203835165010919073373888544420316391351298760944930489976633393950658210909445725690397298874958003449025525371188394493940887647651069009456965296569575332763061964754975191660179521863800921324954754184514636279045339402947618982699951558065224354465250873883430062330574357407315919342784894016814530896187178804947542451663511597525202385750614752009445882260263342029990898081548314500869832688433692768468654231067074073100058991713022118051488265013286128458618769792629567620402804196331195136179991232438485668879539812115422473180458852805046239192990546394826191157620158239620859501119042769942308167435976845995760358074201072189611203075843777343589684246404377744830147347203456667050768305510101045721047300656017247864395572218797899592533519528055108028160934687275783722602605763357661718793459651983578330082990041160490409777877316913888893796657342654243650982706311363909808466688100136608828368514312241258338868816415643217689259386570965806899810863519185624239122989595583775946016949533790011071835363828167494039454933747592449144459659960495939314973843093077868003158524979470589403118861267153177517857897639981254641195686006869251865812377046102909457256241187899818731530083924276610587973339320814828372371996229981905359132872661210283044060654172595678897592900412559189699614709517968138405268475280572580566869183298341144247626191155699797220996094277339802857140258409150362380371417284323958666648295641141853885854486651760509901559849283341554003693555260814449335921709792817536598840865880546260325452627744410624863012325079309644668789564878855169256460079329063542459402792626812989592959680380048630807099647930683472246323327738288828316430569411277237776476418294461306533620992909526483431521303557276802193078843202939925444367762399879239947424452162106926912422782575913774317159046543883908773850265238256614777895168116835553315404543700778832928908906796898261798105045923792061756376520901190098078273692812758463169882368977979124744731400447339041725744325786445475827498238349602999121213557574261012442533655527857361523223886582949458457661616545711110221728875536982044558288986292684998527139129238409494639957751057205351614779996922489621456884391919896957796169031108663465968341533550788589154237324161709576721065001854806428280161965544030671154772967157554292591714063451671624336675883610699693443941102614114563309473498368010024028625967509579261920060749736379802269893778894855103086622313106622630055600432367977101984008344347900455584182984777863219453591116319389650586066546020991243403678473727522001298711014479457682282538795865444917367565279681171648160691321500019823519143697852302613841819109495738992115140714502603668834115774100660865611771721321392571129337561174414655929477060090964157111840137436072779473440232095485106945730302784824412867072137403861814977418581307337258248722346904178055053268370837557673939605608944846781353342882071541569144929427295361618672929749575577826534368321654330416756793032270208772682054496011564292835991844480326510671260232499936218149548262610424191861654235424020092787386302735176829729281071990600542407100794681197677263001054359852503206134144063212435831163175104214696352308314747384237009169910176110801538366140846275818155470326796979644318842273100017123867365164233679795020250723098032166480773910780757945282488276566750154604820949265688275976380937490075876394156205777702257354623353897880572547850264660595205548474336978876256069870466620370358556426686269527805922474072006977071457016616029960642558982692866191332423218593935629989460555059958785789258187994288940532798941197464479562997262982943290543884552266559534684807640594110325144870068968935545756422224666713609711589744353565125072058989244673214187990811671983003506664380337208529024415401975876697309179199735584936443396601336396201177554866525780101446500647246206851447315357502546304651608110608708358558394860879688509440337989896427673589385887994119305025692775748962035396023437947312226565972841750483085853871696905727025423684135570936819715388064379962873966715163783022751155958057252439197002614225309920724184332624823437573201159170069234502885181806379356425415195735627108687013191626414680163985029874431289413141035783803148268140241501325044076487424741570335136038247717554620006056932213629686383747875250338328078136703599840672326433094409739771812291387965457511777429623406758862680631046688121343541831342040913787114077434249743792870285632852263323803640015886863330928308284794564168352723747942412563595216629495087024746960640273376328610609357084715861815995691962468638822308014126401070969148681501078582510236804188884152277367377826608758158757679612304039998582973650094698251770976875007012942864302345703740912778524135493269039161297811157086610646391583320651042019224363855654886627201195522210125127541840242922101928541495774634366846600995541922545308957365439618008714384299273232042744623228553255190390589276895675381397140964709810868166825623986464591487862201416376165339668206700401842723789068739098491639163023625228897602146905619535293792335694107860313989607521749637374397335845257851152933454730413433141996280015397390949663827183850402758808717902976216805582134054991588245364706027672925851254124981317050446336805139750680169196619159932047059919344016101796412090745628759172061218055739153981746246406524238859266277894433590144811752564137975651167030638000268348558690090427270213059654268200158709216287522997870622402503983441989100204077075482554409655063000148441122761537118531774030145144912355863899256391658012433594681622091727782404223015549180561800444346983987445161186301918747764547851929748433060587452438576611790268676797920993190853717113517250015820488794754446343902118342552335941664036380606044119130018381340879187319089525722740823260350154612733865188698892690897801663985158426947186112031952878585736832077549957900177555399559298064903428954080481210462978003626296689077565933313010958422542658241380549630388743844202761028464335871114794985783809858613374037148820055178398140488350110375059068226150466569745535826151782190830278074708132364242141958749399491915964685100908398361745494839412537972143769016122430359478845569115139899008842631778491664847594788302444388495387031251922578864670012439292108055447871936736326736657842040359336684027201314767483031949199070450455603818381805192879472431487058915791858894552939319852100714974389009863970910969323000650185614787904165406791096435094537675657622244545939442521013498406910982488229382008370700432500724716229148031478965405858724333131210989271348162640534086478350079234299534709198645351567368337220824555622089312704563787529423615575877593040499658574162812952590301804176437855448917029709543583661766172854376489064469784230276454076150043867138638096972893607653167836232030902933409038081508228236833448592452508961575036022527432141718532013180822743945158084405885410367896276237002671114256427773043320082282259995759879002141134493528529581004700013642238203246397268359794866433845992007449388878178052941656485312362801192816328393321278217176539633838323656434763393583660310564336522012666715638741073055147032891066993993971242151623650959748473453739512261564541942721708734278961295802165117720815879204262528426468665799384030467142692771533996762007709915584798079534543408363967220758373221301114984421284369162401279450140601214951243898061490445918028047154529419093690681621020062730499478176595882232266105540300703758772688332060344962163880925067149187437931117725240182238977166242550919997832377818217009207164086254249580275364718116841977492672041580415953672451090150296484815780245767338668497758401273255669616706802686319067774469349376808574526806725814550051653269552098934426470061068918745533982394096644475541171566121740062710740320087278064941454248785052378355267837427919274845227771698978039280922137749998669949076576613596014988932708460157491635429436670537513426269575520553317045261125393569055485569726421912456567088632242212655685757499270496955692734030553381697228719507826065124291813023277889397613068942442146210025937144338705355983126053972847564682425165174499494508049072743262365353641840367779888234317207042586994380871979487373741691603691903727521473633140307324917019607449861228897229184378195479618208235127208693833964877940838290744195535029682282678590797818108884470603279132235914288766726374165948724064216345400635921207941379077537123060026403195793027789968672256507474680096105654073448529922151296993812890720844200702502203743653714326573773494590862411537396906496603765584708617139440579405874174411888482686048479498484728547970049536022071424149777907158720808636423349270115253660359655523669007630983197025720517127880843547727882395953082403245223997114287767545639958130849147690039720548507333927351584070897697962433312458791130001485839774305593348346465288702262501986314019264459317897637738195349608264528612561808225301031278875208000803575591238805806657341322840176406970498256182654691566909322641446056376445317166426968001238573813039594105473216311199936885687720895187069211541015579444758039998688313578748959497475459823880850507760070831959854562259305889573083834818737934236067324795955894137723807138248597052152747851651102677800049044236155579623298666720237223566933782725485742082492911677856174343491786733173786667202896079298142696497114613891234890277542822032815113241616943569995296096490948554970890769818591399680034235066064541808617241488075417985158369116642242477410696229292994193399251268541039130480757283753239017469286104171987753368469382833474354542471586331913089429123576391133316403451216916928387854715368534114855423513390565118981049133715074117501612729677187425599583123722680802596247027080617526247094513174163409749235300329600716471488180612603884569012159486621832161756203956433436284694601864406997127590490281122851855167322310176713098721354961509056033446929496847968243299078372194727154225077752141723640062521327419326275551645372316859081433744404914979584173228834363093638472778102637125876221134188705112726619038356002341718754912310731929062822565883909060390619408082680554564493573013815093539338117994937286261907804269866133547574507670568902900132481896281841716588560175551662871598914616539602575075348134655822016323549243286505320595713622570525777075401366267398471340908253936707844780538202402384726110554269929838203120426627201596878088115951693481850161958037945315076227027376051951533699903202326948408789352676008998636494349080159448988474608167087190405847139180290140435293056529909805343008721451310926471979169579561413863318477249260839969880022678347898629134976405451171205748167702759619711306205816781875597442155207911425803831549890501091113074960467411070534726995109543718567871337289369115956628722403301815960191653149375003126369878145775944275082616078135800311435098421255853863009198169738088454818138987537618945930972187783958483029043102430056995168681649550769695321958280827200330346110043746621481384852176976226309450878791972812362925683082031323524678360763258031960963664929473967455362732810681905104545928824886863121852260865146354053833794406412233934123528693680716267560840901278864088418989574788290679079354229423338350182540380831511071293714753620581917062857060682229350665438939760496056503264575677139990733488126490212457617060075460162317170470839270526309399548604600447670671875364337078948812624659769847089753262027481443239672642214566305140719000605559070536081476253516076899127896220051091461462619686462842633187082408145601755348165349135461775711990881785021474983663141591694303501398863142248171826571773802063128040710394532183645536417037529531014555543754319260083819352542678067086246342298023756027140598124105462911923970612990689530474407605384485371249539567166823991542168856466559177250957157509422001241432418963675678143757833480543058190236359003431068706378539824740928181062383268806600621067249323122089325442898710609044960470194442833443087920555413447636887168104484480278842487295611896689065375149094008107614058164370783672559408333162782918763419172686280807526333872474453863600976192731191296181997425107859362491533911749856648529547815761546746425644745675738057192818827184355752871766257063979466048301049416004247545845375935359781592259326545601858065041404536947777727972980248451090734793993158155459372734339098180935335774282519771769345348324704175837062084818745919569897582764457146041155740131135838291101210798276005031651179240142689625284377385740285652119012678907433070100958327584816688225220934791863748954463727027296208438522742270898487694177728170142186284324042271122767187976457844934793633029299365485769032235075261983151980009505245464672245440755167662040092781206156317605034213421305185926735177323156177479914910354392600560888312495634499193345799841268321176710575156606963578723961520469112195905310847099779336953453585192510754682240870799387459967199674837076954510852566597102590523538630895728888425555903801588078394901451623930948243533183685046264211223998727709708787882512104961328768752818997351787348774854053200305363327604917044150672959033393621747701221787933565939228864080819657003100742183453433636179942047786428174289100687553744255929558383302663378734760493234527421701919187191507607634472429554879225641378296869922652573078907284455377074711477019751810155558437301255776830326454163550521333468158557972269981932406494489283417966028990979522536057537641727454076624372810749651544368360662824883355859321922902411068899346026057536851199240930382555856279513702424071687589743364891819038781359529061447207126959748609530505993887068171522357811904526124999843994231503379761850501171272197545754658872628440336641856042528717450156113538142843984307870151311254810835501280548107047632143474424172565033576321423066896300138176182319932314791691405207545258410900748432191937383887742563505433247227276735231149706185219392469389291544906111199781940691022083684303067365013998042604785337705362157370935069332557031869748510636945280342911031913007360647776860175327325352240595288148468467274029011168666170215367685946889079915669589760453786534042798283280221022917083909218888287736264390950862770924095775480859383581027394475537213528443548520289096837370380506331080179675697507069530326495951000396867361405210807013534875050071244770879647543845293387063861153787383913609682771827703133285698414570387736892588282242447381610660017024524467468642995981884000101450812738787050176823407505377106863761878644955013624049905690444148418934442818361542285039289514219823731464800317087147396561355594208341481192957350155979725530874837817273921180052588693484351924593078465564967465483191482000561213310436459593338006948293656934477397989437465833728770489752744870144945727962513807531669460128177176185861620121221816061545987336660212154956272708199245294287090957417931618258360231103990661395215683185609558083134648233454088404826717753093885461612934334622169494255041240560192341117787795171869934660196602239184312460945446333695809759554192085471973277113391283580787386966505363753025820445231178375686511614843638818117185820495057758499540815980953876110899347645481273847667190372593607732151081067681577974645926635303174352271863176956204951695070010372603206082906806502038075394895445577915243378163914065524411942710404594602660657271011088840745391312938270293528766938377378925366707957517238842403738673996929236595357062649985778560234079962341426505173554645539920778842307114130709668859622717629707807004405076521427129980608985856429054938934015135817909816269260278892717023361241142733008835124755821105983290635265228854497666018020369645535238078700995789249759210645581216671148806953432987693509329978478735019522552861713317227333511979367418122415041299768061775467032455039213266798675418454347059696901915283192956675262321602026138567929178274436582327396429997876498187639913930516619285414308888066878592610183642853028258078694362556756928655408784094421615406381775940967896698355947526899264221901290183600914257969621474094581565919854969383211912809522024595626856276974471896174572498921170443449631737211042013399830321809904993774734309367954383435039147303626232708233188942495346126665237176013447753211749238145143796754811458519243491715098054550793813241132519016509318721656374651557081092137214501820926933320542941902147359652578200804903370045025876257946344369070558442743076596131315969756436467281242313275281337038003644241224667222457915934910979962777123465189935377448692798875160214765360950686566527314366127832936743167213970321207625262034989174830413041522084482980985082821359300930114490083095269303160335357980849562900933590351084387694703235788821430989316634035417769783169634276670554700539071450315520461690343400917278212272032253846587718328172822020752071990383296153226655759208947477661217334385478191215638784168387822050596713742655463648219171516682106823904016984228210113870218163075973337587274950092112637413845446155006993943753511589314713906002475886592169562899258800743160149986008114464496845560313645160877132731716855743546260652296969864877048536529879922040670960784592085333272660215832340271037028753160200218620707810943584645924147795742497018722873580777438360768844576240965060141196953012562023556280772101965184914502191177240539244982517108494915668601911426656309411871650361011245995366925329477030438060187283721483175631086219428961802274254930369764338598692174484878705884156999268053113374581608381304848618464844555646668839477155498117630617457451561027201548436639835531222422762502172587585067034434051827846953581147874970988294270497375741509763366634658673231569953567882369705741869581612286752834174602688330859589544112509183144027173229495810050820000113770060709068005575716772179345568446803355747942093568120920809921219197836472445937871756313460432707714401666901502635863781761167137202320041310829793131563831475045015579029048596549044311630351188035346665285908842821048707936791998310512101083336423426646336019520082749933801480868970040288682916051307685958528627582462153321989564340045598300093319051793589463033644621021511969516202471889617818591581929911087390823822992905418508730340894835759147668367186643215005992860864967994051578338240905377244877511322155705834503015640051446821329023934861857469534715651740243341246474113416230026545272034799890807665200264009182863433214626729430654694736313830159180795982010767973660152030689997129446225220498381934658756706819268208601450718495003093733656822698923086040271918837261328247642727095144603230062955109710872039684514056839124424554386510189420098334741449475012422014059144778031651339340077152580371302850569494024151969082196292204537128296702214455235965743448561188768384655422339435575758426071385911404348234085569874242148943238189748267539330019733113093246751842583930305484018366367082245307679952803552651579796967468003591727142868226376308293113075641836910594320498891282143537738945347237463827586948388897879303859934968718692365783939891100592097093640515885223259711218730137486441395568539122399107157783045008132480655275702337615218901071925903712185859920535097993242044372381232773759562058808342655835359498402678309162879314893732133935500412837842396453764159838550037418229286468362811407982163482000583410346625723431570744282066052073499371832960270765565765174175651832313478022082327785385629401091055191938278298105471993177941093906313659339486525110960080172805636982605493828161635779278378563217779835823159994984888421600735858724595846649832589225367607892705055448221668792856379478521387840827049717342891660606665708902570512924049258066747445332774377046831435850543571236943901101068083598791041365440173021555715793575982916806701056358513872572699828496904265740827404935114858103722049958195466646725468860677651057237418720860056018754452276215578293999702814816031254842048391246980032709906409487150060426394006634818096735272203783537957624845354375928937049722991309152971932963416605579657512047907125867227792181697759332695837127124314082813959589756382111858750008695919794121942921029252633140207979488557489822229360125516653439722291707095138927238288890833294141317808774960254171890855924408548688108299116907771944066371533677857511104269071921666432778813665778109722263236447036284879317713301738301098510647524774438909752313804365427330077995229032285995605172711365839595900125002866568649586438786694272968582381942762264556910298090970876158135963238211116620041297673624242770514069425317788877314230943564454343298051416840200989413072017675229318526358209877337190342652468808967463322467087995768709500762659296156530401177331326801034321570443287126432487925352100979985600514982586616551432194342400417155571382646093403068407425857800521617114657936284893314153351057219180412859031563553069935270112858065223302562252495180319284096848563883454358622848647030209589687685331694738157689424212524834275057902036024491016439869025528901085743641572025587292720562711280108598564702683565177887001004103417015946569178333115830172927174636378516589018660383724372157967561001647776453125368548673657757463037292841772749839546662464606663213223895960067290145599264346631971192696892512666937153426013008883091690561102173346821353799366597759532491918453899358112837967865983453106617133598384536070217443611044307699906110983935977761505856102084906744228900166264403299738481301079730051823147210966545394998998763894229761147585055313585311017078500562025518233540946738690181852427662572815338540284909531453230112367989503529844651386170344828087461043504667816145768792045152140231141693734837356569263849616491499889984807664737846077195616285864304701404504571804118934302827907683534114591596892006497720434408128894934781710387876311576574974185123864436635658284090837866406280711529552202875697692057288749351590592896822169541780939007716009668665475470363492375009587288132249911576127770355138698139361228745388787430674905902685305580013667111331364607694139478478990275692599890042865559759272909472287304761871111408364575555946739528377149782303371309205230306878487476091389767626284022766466648948592118104573244018494983941586557677387043707059392445134468634116692226311815335384174627702562234235261041178541828225834623741971078112612955019923320970589459922857182993349019348885800734797575238301802492534291051837477552161646912477322855083607086522128134695581008566635503629294222843813528522377620125296809160495807049018550809036406401690501358403388791036200143824203710533928745236272142759249408855547004876832099875264718479553498337540687195733728147232626020314890480630053861094884986579976095273415941928703433821548475613444399511660769628999454564868272141697741159606592208450640843311999191405399021450034219509579246959130040950532782092509325882127843194595897484533056892839757675218273113642826425246529174078924933919304693534412228077333119396865151636184390129538272001305021558027697415862929964087805089786825170013830910932850997482740063854901741498640937870572379652756612080438724667097597848183757738301285409900284139205447401973230252792273827584842682145174750120699685182741598905390563132975754282254511606613152512330668981881136977302670931761824481807025864749200798851741089914201613254118197647493493842467365683582682507927226260839342289488387726733143507581939361791810971736842929753948303468216608002755255001406883061841368305216262579803739218741990870701818566709220904804195624556674003530263990205707618509822408910991174901481477958435296003051228851475405797973714659527265756858942066960083028535801043094294117414700639673715635275388129226136692651672188381586873216419186146505417258292691581965538999149336998616676748285133681754936190423203372053929964889852852288056790844687508434360613159955637891069230932933687208729691206867776825311269974544643923160140910486775798517305323147102337749988434176331404739468753579446312973695175428882857271652136739663297662279073951817474939585178363972854535299128578741901467536937773014732785766884643031876016758055304513137114635846126800209233085378742457585236539693845204456377436942926256489781447289621383194508661689273276958073730436003075134295713059884771786534228892877411963679804103968733389861781868217646375648989167549866161894166313793612992324737119249510688238208755691750086232340992281852934032958018011680771160587630973774570280571724192932601305537790896882969682144028803205946118462870522751610815486059272400618529689898697309120990614943383189768876153776634232744720260124086069294728184322068648326769476433513971559042462166579260003087677167675544400828686216534411033858636082438141170118129261293775759196716941659621127845810803518959540548972641343047204283372917369611178897906437999458284972850047071136292837454309207268660607154724862149223041489124566899748242160414134065705616798841134987910582858040584066789320981408254299514607918163131789938519790692724972036300063616699834032986997888139888411782272714140844302511773592083459826266196141600354510208106812563102406676052714726973955402686730063620550579177729635216243171208253418843894451939103806675124590181058807734359524951126474134754638007962410896986244104229815902679014970135020535332107936714363384176380801392632044675868489687700959879123724525975270819658949164530479813652582455209538486312948148616437950458068012239644422046311777790152540641482602812932917725334436202750467801494269713564480634603187652876048662610371014650646935497928869854403188713935193742920914963199545133886799870801593982680694623950638068908612883905811447430183125134332051141051261371655874134208441241532481037622361517495299384005011864598589781538871677282269427984024103176429554223465841747740464378434475705256643103314892759087107803945488047378660786021280062157865793619401980524749181925857474317433702346439272269427066349171680106934399386386881628851551910253627056081349293847149562374947669977486629899904058247492604100357732064621780882302150681783529630420131080074386376588179470034354664620388827621592006731201195770739643935303065781490732941645029548709757413067684488632770214338886246327541069342257343119124315754758288319871655081260881648899415821062133021035620268348847016024016890142774154233385671311243992289791808907398271010294688661527650737141846154547667980677941965994570728544778433063948663097723801875799880514235560051614266165740308695374226723978177153930328962991943320705800921886990122911059630161314460022281644741879624344355450384955879132199590841066099557855985173351728324950504067710473832725397559229998521469999339650157954895914778866824237706989706694933731101902946345641608898012389515570881830567383412288172234955531804102382643275779814045013405675972340254793989507127923127442817958403841659921800618044339337011815245564479270202973018458702042885313423862319596752670343600145219868310464802195695267407078881615257720233583529229428861692373149927950953000925050748059747320365067782680801698217894227725267655236246561255140834198980182062478804502784418879919429746438564545328597973445160695510399385230391803003192919790682964144958993860341433092361476989684645518007282195884660559343249351858080415155971895499448294149096937126563550155095725886481142637551558424188612093292369763105529005712113004591514106802080352626649485129605259866170404811319763490855662817808416091438831998316398916890013343954440771656313509315990180522669682919744227379628098459228792432265704173224629158696263218219180308269881853668124776859859894106001529167474621799355502121797222212631968722350696169130561863908109420830126871314939399543371047112245285221447997455045955765678396334361443953997462073779962489491447415898594342371467350260590303084015025855876561532148211511756328200325697534154726599466146417522548287086383319274278319669107605671391915731588956717406357500774003804289863898793448445725148913333625270899329777347511303602682733215529986907606200240544445919062603488845004189006356297734173271624979257065405166705537089714114634107127562715337647249510706639735512464671105761072853788795103468301329457349273524091388094544052666620436425337001357518211837813068520431208578381676925332535178282537206543022022584865285947605488629655669483464922711289832740076791343238060650407935511153442331733314769359567323004284230427972885339338143698055875490859326130907737484161345934595814442143379240960897193774435495975767097320981197812598488132639501412747851152125922836378529778918155722410658520370292303594367487636331834761147453452619772480158646730661141899278073391238249828921320215629091940049387992719876039819357670506087452714750455251443642449239583893547901099953017496671301956847862618885330194959791162621633664751272674710869998602710129788805512887296959897788328605372762476606155433694711051784397576822046368226053997083302137168480378018300454192375523732936154800060792819025462883704425002535890328818007053629323538230254805513934140556563118543308730209306680117814978271194830869227526279757134497173941448398888060746692321972230462166560011251582516112804313019778325055523586550544987840581887615697738428056152927416787163981382863352718985267272384079016679957886983289384811545059472263668170074634488012028484243219009643495324780449979937657903109591042093625053512928078797927361176449498718548402267312995096359965163526494478823525882355657499575760782379845918512476405580796943516946008353299276911280656075163661040022198423626676000872103456420151096795007811521111113482517784739989147351533805021446242660931549382598766021195198705900464803363519117437508073664669579601382845545213684171871132003361038911198823469940556321675692592809211820187517072427444774664401095070552066249652915030427955319638442594344214523633216075505078428744759631697452071339334660955337441401416902160127132636400131083833346318020292834065112596551981444778456776411667748629305414445858028587436474599145502164544162160392599364539762267386206593798728987263930041116264776397450954505478847877428734043388199678270598879199016781228926315957287005564847187728778901053392295575172930410567199494367166011142526557561378839109799172408194032026824641957447963269540754407836062310830245708986333899288295777663409988715802778638052487116883296233715594949545965454505293425629183353484392285231835715222363143406618196790962487671090873475463355320315842484636907676092438215075836811715500417047858049313185232854679773152472840297925855688362191974617816451281606204650253298189609443819822341191636831372335881731305215122110749509576619276712604765506322942663198471970652098431404662157268596636056053951850673136543678989101315153396612192577818975243507959388226381611258531220945314297759439478855465384893558368937842449367067211663702063168736880466629357579901487368027993586254625803670869692198949635597707017356645792294290606951723898721041975333384417566842788393968622988136901105751012949514852707211297375668148426673873560969356046633638694156052063628978924654123025213547425163940307904427891018507760537184660210316887840646304687709449365780230118789300934398130477177351964228378037088669237394311718919779985976002337302148229601100367704992935252383421121444954792527438359687074227422909557416478015550743744160117936456303455209386974434911803958444768890728426184875948845020398422739021135054707109361221674555448514721088597718827191655411880640153689570850784793081986605317834966731169334813715813078980686004945658854876631116473353401183345124123941518511237128444394955884578357260986855083959400929678347584920332106250223436036515576478438100704408244784876410906842927147120496170113240294958917844320716270007416229326228836870474850589913177496739801682509050475087663937789070993250324234388207284790250220292418580694492353116976552903768945977490426528835711416427245599234011583179451374212261479794523583492504781605809837445833214814759123135573170285624717568431143571453065531025692719877274857169111522317680766638282334225240451447029262635933132790241732908831923550170861647921041031464504913924857236564603238204002618667486147514912651259348690647198725999999836053458919816355257324635888838728596446618309310182742808654911044484493307177724902163183066403831145747442590200263208505554957253118843314760025091929079760202035819441486789308366095422072532894534741561636463693208541043252343875827247231947121167609752822867567524878323411631549345767409522380393815852684698995598271900300113213570226992588001766139479803223816757339812184130337780729060514350871600313625648077686725822084980327958495180627592309141293945870138135488815779172201183261955009637672171281545887450984694912972845582141803445612502847399306878508235604875436758408143955199530968021306245107716391168713872973123227448633163957864274779177149175939782348524178707246813111321586454202932594518317419889120631352082472008688406459320985931866388706859477723346836029565545096765612020471550252488252015257781855429447492447352862098705297723935924101163213271415728371770835763765505469240855863388567057465681429396643878298099290467106522918294582728976749262902788591141433623631099210156055654794294424606637376426543793156003887572163412831447436829930924075060696034834091254749824540697389721865813464614211248894519822094211064599548104479694823022227984312091699873735699667349465511089263818034450008594876001866345042608841409140674906164694905384829574384188025396801624951547757289040325009683348637583254919751241233812345019127884301842975408859130617357751171982816543950455092278731620727492893015100896051525013435282130242151167120073755753574924257322550443535127710807555288647052124680429325993312842579337556360236619938753928985868093809252243324534707861291611589883497983792329535123632990511668941510442357774425826322243928346103059157649551114185902369603502263794027716332284364872677262946093684952485742307164409915419195487417637304345619242156435131940123095522816407675906216735688834404628237392457254597213423166267670719180875943094974969454542055380729996182436119420178539961615469091224191916114818198006838524328360349524374119108101488203006759846585240316254853109915317031213434955276412225913830772370161870237733396408972232728967716866431161445587183054016168288983557685113215896753825921546984352966108795982954677712379944518490118965729611755606459590923226896204789094942489651989530158638098720114685392299138976237075080262781202604049536842038853354945887226352533253371116680590807679524629142333850708632789423716178925268356141340294675571802595855827302316208693193048002899255001373325609053842143719643488070544668979966270538334901192346099741085227366854045971083487914958910226181166670494894592207671308680086870201937403613838624747663796228060061667433851465873231607181321455074280790183334837797589275094109083750901602200431771733334958882725040276848584000843601638793762887888221168608714149999946247972997783692274207334586807598146272913494238099127198760304008582627550306362098921361526172841436657273897586175708442662538654719403835111303150430626185053996639448070721464920634508395553260431576473148427420299973451166934969856801265830728321465770512876722140951787618336502144864863878307535930592553542817922396338569332529380843198097219810607585547469847137584606496882224867840241705068460636870631930102767894388014047245100297073616999272961498628278768775034923433579096675729033828382023839314126146272314072160515061374895558257182341092773548870578390290352960089291987506917795602634234031096152038717729442414048634231068452323183069571076601824886146568719849067031832072217823307361655786028445414229881228135431830431325012957500190351056384171200289578654954160715595117847304011988699707904514085429467782671104964466376528631032979132472528204736810997896941835240196242693688902965751525021562575215112265692925595979877245198711827644492942648921722461195611130914980482014702740182799849389964491778081982300045416412366855797724563407797679872841045528322765701845403749467286556493695638937192295638511384000535467530705479593692972940751212297378910568672441621060612520275738257355889744964129557116970455476747318382366595232007114674518794230228791030682662046840601699039997588848391004978328661462599987772383374538704759447094351177800564023490570164475879996567427304524345616890986078824504663486134394583710347515511664147154518945255734756166004684281523708566313507623705642379948630243046461339711060108100881326078420131095889429471078124107338923117897630249868009908464762655249068682291587079129489880694024864288932011345414218680276147385637939376640701070506213896520973922025602319423709736277573319600253489468554391034302191979068747485117807425491913502975800623690409830703811715519732702625791828857695644346350960374969000175927394546743603511873938177741447663319447453341975347514410784115306230839796419153080176918641369112656784545328393023356706775685613571798161694843573991633970429663945528946558798867269606926066601999217870840899012844870349392709755891710822518705541336361916510253281404803372642154164395947017093211627153819990684664452455005740097033823773341297148862635169260917879682039274102664146400177390683860188897173329836268631353512518950853081734297863177654408450303464546130105929916535493837174338803876619006233033476303389193356149187451625071089470060711440782916696590023072493130891370458946054461079128071796002944802960320648160451086722397795591683477299311840507651575279173025173189640782631733871975464872981735394951251620694436852554425079563638837585519641880207913506612060901972515123591468437791705960858379306943289537841920685839608026960398368620785570467779647992504939488557120248558740568271565457432614644917135581204061804136759447536393080986774753887910229719543995651714591070231337166328598207029434945678637028446961475624674675948293246897153082722410051538448499692076263782863288595480416959207722091367107291648210658072484193230024843338446447833749831264616974679663463930792428159460237763958630444463399755947162795896059000965656149250559660079281057643212705626286625914553704778296893387555312117609248379643156946715406373317207237347210478951134215295259260155609467240560215385764540627917738953791503274248666060958402988954551148198993275486227061600841273725681639939170904775517404040480364327981830310449160619001702706362792849939169724563847714660712048125792547606854792226114562573553660860396467275021217637177713265509908473957819815116770279243006200509767833623445323343557248093077666459639379073136444268118565015055565241014352127129077588962451140170122113115631568828966597378164994044914316966564527245816701047415095227250636585690555671716288825182765370066845671808527457517248972227921269427636443813451619352923747892049947920992425885243860683403683650422895178957023954956958878829745741909669182064169968605322693738560246116239671100429190038619304853482261795857204910688538264940985293766086269376603511946515541493745469519384826471325008968951368440925028603384837493376646731781642802697178620345290304327753999387970725802068818053386185438565628892049489934383301792264762632094308827070031457396931907647308036536174835620852129245260656887505172267461053356517261873146088800581173838769392820118075213408821024808877404632893986145316976298691392090523379063767231793823057535961164722430000219360472569283429064529796435717240689678376577875078829166220949560888983337835666996965480071246671159260882954687150481843983414975498862056734049397606197664912735061603559959546675572989847808669861684512155035961105438931390099966828734743008954231323089076294448313173909207669325944359629602018955616335619665810571621544085503857325475257050340563003995426766966933453004573334053103471486951855828693322904356729361567862686316895394701215674029219193008477774738159002839328892301172411343257875816721432635942905462755205131604453602938485773923247399162355317856568095949062718737254302106511407440139731663470449860434717097607703381013921953162919759123860037653254448528364502126063708562703044915803914035319004165153228866296103804730238716510014651489065942319427484146377789177983973809064571716198854150477939099480711410636253087990881443997433429805018005694180190126103049885299351005618490637422548439523014161023134694881148708917431545007306397318096782749389225967948299548776278434763763599517703027361236878968805134403204354412003950303455624307920323606799514862452152418975714939445113279864697995773855279935858441475647994154851875037345002624630726947542153477907674562444659164672697371323797379911782151870572319457123222149644847686680212033545883224607260835342461029697137637660639523802011150296134147477008095863219956685462083738010731684021747833355054422697851961577147101595334730124250674997177239174483060648225383990999467622768578989096521729338352774316633425633466729558759878717218359179189478374150653006914920532149090483829527667748870282495462448451773895446011593850636929069807396143680837218456510766392207413084235547246621528539429781539407044561033810687521172954661278296949368737223399497170047828768781987544972954704071401550846855425148906890991768687157252358851326936337258274999907489127912120056256819851488995683925812854370854321795950850419331300531263034402155150894839616804825888190180402674333956042008139093051219405997017566315605161646304664228327570305037846748633504147212910907676171760290085561523703094870554595748246835882136712184716295902747052426958924658438234353232938765490516132034432647193002461562703839799689070005852065503314301192711980328175593901095563329523286731907176701329196775941624430824841863785032359835135869559705007615941970620458778198621232120572013812839772325770088877613299133702139184862724693081063645946486938736829177029183359764038759992713981624193694286363161552513186085399930110897418559038758417339242872203690705801598508650734287202045249497043010624928807266211010722544206373661677036118520496911007562491225761907475104479648096133400489827544979882461089424394578482870667814788340353419222274945788947645126159622840180614250419684752216457884810826230486754511636557137817883452638799107141911115716381199777576586058518216585115766374210829228757807909645056212300671098980135754742774086580297816808489691624613487924397147205321265237242850169833534457822526178349166631450947065624270311597506813217049694436957043468307411847181761891859472927024560213907479015314886600887688285565087202694043788909205762842713912528397913795680127537463619997335412104169094015586609012578695869327818782403753898071915540186030080540574226818134646603429845527661074614224555889446075608518945375828245331225016658877561053708129003093016647547839257964623101458496747440984315730035258478981006533248464888460556631086450604608069461472073144931556556895848296330394410862811333830309464202612661308208944224932557814697029720896286121904770763341053176116596894132686305285315066348733359405289922677869639066131664344089608790207463103007475265320028113721948869932945703214256874971521862813162741080923480195866735017995998470060842837342322369935066226271038288936185873514015706225365062748306171111814005957367693876715067903583262406015670621481548003307258844988099099053765203422511782643590358069331395153618632236465954784074827119513977549720375412680611376231463415742322449674016491091990409334030635131164944259070838454865303304556725335285142092184782082006000545543773125140588695300766883196595718341312612242535003630103413634481835937128179374162991052156379683577277657200175291452123588565985021316451467018592737435635774780293029472307761132957774141560750562744247623777398409900293603601270306460962818972514502736716624787016102675937072679345160971789300565634002199717064480295873615944083554422398174402605222140425043545185465979875182943559565836257694823474869803002413043771265996410122501066896635194875256917879220846715896843120363275130383670766751590444265076828598422566201759797310159271855945967702640911839709497579388368960879013993638522050735160361747501520530769244291341295231195144479265964870193687272180101442687552403262011952386104189709029644268339841628595069091420632708726994009940254152084810067103892497697474713253998129634674508039469665161429081342948746711185843448799993017376070106219251930774599015835311975296379085709009934834948565405054353174251019863879377804288030685126612239930064700295864214383097440535416783641610497854712066191090379070185655630617143711050798198903773770907840134662316389692598336575437594846226816364747632478827425066703754607552357594128703289144148663330696751621291214163528478029777302920382275490748123942300951601952523493380985332973847289592764782929264997303888423022072138417544521624414994626348738762271292763990811167304656735300993239868764568237090079540741005740747575402825572683971550764565324502642896084443533931387212611233808578928102126955516942150199423038250229100528430913677681817004738314137869721558926880878836854215260132547047018016935719649551984453430910639523433857803111667318515885525133116103051492974888089944883198875655064498509774412078846899231198248261723893438809147199854873851987651904665034846762102362371618430423919915683395885802051620341870889705612981387986931627200033649364522598579894973011346132182617516021625140881990588554003720015414971197523406993557084936262396364433151363797351800919640353482736295498899021080327352507079159642046160474607355277635179874238507290994725300723204061037365970100351510467405598206925502165655349313565872667491324003516297899952282995238666554557265935664450163055036279143919012134715995625726063384869261803676403719065558963513541168288554419247390736707656449936024179518121019077604697983048121540751660663770021919323924004229637424070028219379672189296618075371796752350508092262741279223494749249697148470990600808613586021016268729757225374584020462275973333405075341073632622277382377173737709757016123598349075696889141556188737803458478979221485909830396042745601181825636326354136466126283955131925402844455871014952690774852417055517528721019401923547777464016900670272521187615387553032224652923763344525941798994191715783446124605214159312855184226958829020979047679276377174302259703746217650694179584152376678467896905340136976932223392834316889358936933774608106551913516269887128088003137680379260015277620854529587536125796003080644717752004198133977646464383463157049091953110909794652315773276485618938594628330410826614944332043765939822601190056285357050612030422878157213413923670323139589501790591967905678220429052705453717517243354664822321354657462724432348249208420743766204604352875689940798053375477716938215467819980097260753373497251044255551724492887621534050886154152492111990492795426621070765179424949987479258802579473694753883874554009653595566025543415890492460967947532787608682282839055857231712212654660956293079222338623536310371183573147752431499227372278529697705218365269281683510872622046241742212174730490507675179223187942879785414347654593856812542594021321085704977470168573994689458920988221692749967935581508710938529137570770874525137465512081810528771116009960755884619597206169479021990302967161744533512680159888828963114211250546309490860543774553250714202679520395230409790529094056732250884497321810191577530118767956192064034488666516598553933646889701551342182691548415131003056342769430362718226468210397516999197645215525152355386958623361465385887686739799507110454618120617582417713131763020958973602493921641638495541463704350803182789036310567582032815781051897826003459270468406793687544374163607181102598061482697328187850498208623654547761185729410082287132128753108534649368229167983418350940118969053816207507640168338464837320082342728185139083102061341822892638280110806238654222269330215670983644304409802861321134650662105414735209438695883181322178280060035126823286203813432923333721981082024312775553380141190860077101422099685251975000848788249416275656371366051282962763797611052271202057046465829102499676455149016157073199685896891758231673961124923151812152369458910401352061776436194417175139784892996549314106937417861991577071687214663700954627806478493579355998488948149972866015287126154582739889659911425122327556845060323556797832690781082980804260833863283225672856123255463676502202879002529497986072709454503722239045362287549649607469443544175779127365254538722320952042395550192676602449711026168563840341333561943307060507632887136497945404227240977962914459803536183235477882831261265243713081924579984232621053756940477931690410592055357650522754864135380598259338027786994933303564214966309359744043050242876665454314012675130513392851677299637573358076406038619477722497188828664217746601968274218797876162543097021939592558378944963126842196278444639781670589734517735578886485689712562142041535831070665989612416239009054064487865475136192058633983756559433360249583702397766395575462340083487192664164755352617563162194076702153794441390464683195021497708574231767693943150555380656133883164634935742244900916139569700778400813130350711929768418906336503561236876705734792472111574390857297917410561069314569663138459450117202702885072037558424725161544538027162988494541846715805856669076981795808220957336836805781296507771241159346204031057803360066555742720049714089237975947054758133090274597390947817721066299959734506192344448220918929104085626854264729049431366734131334248771239135270532368485452239630417851976670874809953772175644881358762745642805253144550357946575540280261850137622249982266566779322656529820876227406803140801475483627460605769734502375582966318914984986610026977956359337616091560155792569394566731686722244757574213221847746027225177277117417204281902363587341997637121878704835780606510421889358663930073471966176945419614790290667519751937689356588793955045966713988460465846813616220257180007072445304572814944266376792176308388642297842302409922627764884904258540689717342352354981461097959561643231519532849535662359469788073467896680352790761842355744735305123043633305351840944369524109211977917652846875385749663713355587177035680911899211872386499796525893962730834114110328348157524345376972458588654001124704001500200429217457491976213101268085000122134997444694619021584989664823319238826523071956587095777998758304240500177904198957060735414897666083669729959611441451183370729273385524154723561226456883823357111561364570736282385548843809500829496771926339282059341237233381344833819110863225579220751887161469907668176320311802726875976308194201950917360160835929707379800843327490808077700411978056397263344023841314058955121956340129454582446747545105962089713994943775705315436134287317564110399488662773901130986904160885947974731509808928967469027648109736074395472891220482493444364761245942925595632558242751577627126501944895008182453370605016834316121496318719712176614269920060383725166048509979612286336567850028962565884052204468020375015666571424114432637287313945859261764118362556137839730955871505493375635822094579432018841555766218849847848732526940961693865013767339775701559668158416273091358549193556322980868693852817234981145728441305581152914181488832015168478458009172416098827647587681924176679575434557373142502417327589244373013921956807335993018262502086095610780126950958356348199948616778274903087912927626844943355468593827812358539974919548358392836018827336566156366526837529398209796899816239946965390429890782889270102125696593265767476239651272018424030885914116233855242641694862612270589210072856419182289177321645042882014741500188962077560778521386144066212522342596609503663355142427784648912894850937706498480487352785033329026560317135889178917584226640450166657742893024635306061713542458358767586436995351116553825868535614008679503294825084814179749142843420510812381395100114375790474278131278119331033839990405511851236025086726182844114912977057382069002676425842525419056736067956705307425533317037501268874998180469165432690823246837113238363420830419082810018448209117154506733952667964039766058437939974148525762206770475874833650023349512887023589030008078565203410842035939436581008695981694796219948740974061216032509671312954832124283982366365345511435316527466356988626060838634614136759745401406277352740547404297758379374558500304149604576487646106274161369441744954208985009034142179432190263968352158974625870827968963859968258183978666032202286129396256592794731326298179752974865288857511726538057433366428113465951745655927630436737579528221639745062239169951067012997051313228946467368752518555374030408005596575630138465235800635028088988332329765689411435774340028389478357799068570357552906274041927877205004940392039399465684181567483503765458260221872940469440647242263689999547352932643569836881462681995436968417601730033938155374191705153746995250042992898848789093493165717512763468039986062581148015622753381029874264299574427617710305567739001603174648886819390739889418862751909231744544504913940754566203631355730695340758544995563865214793507250354102717421805863061186041783033782138230693791020775947539819142961905465304643724265908144629917239678195539014485357076159494940845413000085176731578544283870883742909306398590032016841637744801151327797175020365561171608336287854748119796801840238584104817769168607798821323190277956387868669712519961212573488868819012856272819240267427261144960268974064627036973693488412183741426754487440997189876465637989800256718200183613504381212942564555350036779163652172562534547115198368473211312577295718956093228628962706342808034049753311772399227644546447154832267671469363816597218448012764694467532679385138806895635175883138421894635705942090844124974855241743408303099328514196136284024354618966269441693351947649870954600344215351573836812023374730925224947173582707335100111704605218573227986175115340558597033940932483819165006935366668483095476676404103088854739111903634446985283414974193489037972361604957199334493091618144213951845584845407455947690886694279235989078966406110719898863652666150870156546190789531275970762334694048687464057355049171358641758243981816790187750020321753062174102421819340367421335970137725434884615047736066179743104433139509559835025211032216210078536967451120035724564410488157748880392991594364016362251294751500297784957036546040133195266610463340411198285787237598405310851614991088806347190161169843575790374084948611615860589349702015888408763896888309225023804428470561435680753917056463380642799814296807881226982286446864271917527143216020919754654335968570740222165630136846554073458495427258977463392899575560876787128754898930223467510689729914208612653987324051274726029786965579024134202448658153956476349569160715029842551736987663985472903159457329375593147186724035518583667122495368124143254649263874141893730270016878955422287604629617052196496089046808260643311840394568132528872880218654584618940609319928924801029655263060735677668049907644463152451266970739072688542427365950062580709840502360031385970974176573287828264938394454807470986461723679470501744109181307194167484377759698609087799413720150002637911231915792699949946326731240488268671710989816530712791197784572956222614835887342882673112025344592902524369038956147891770654539161689343254738229472626305833391246734348122571002898562628436740266164032089745970302124307090044101766449107178224087085318553184964048369060743335571787839101815259855603326495243107153844697594510473135913743135374139333749772724241889736154977857469501061024896777116153010183335262655215031745747287619549953965695624339581669278487726311849456747224380581630698283670649006624869832058862240664976094450536869779172576988893077165224510030572464286601918309514359622327481040006862787151779529046457881552778673987787105592582339000776427289106231279441847707880129552798397933241497195993097756292076831680989545413612422564264516123708643203232469560436075504258671709391398489319224834518068292693968465230818198922134277231381657510861858050152035999085160044163774827708420249482473304713746401304670070810331883764240253641489900085716093918368706948983094223618381213627093030923676525611424727430742617574742317094088594853532196319680989428795226777321163714285693291285284920111699177870151527361825572888326780476881873370944898447534998556943802943205222566295926049262972643468209922531596172339829855393408394636904909556531450485347901346843239494252277906979214778175621948726943495681822127938313319441144600906365381667247540472510238671513710126580290762855011769784404653912766338013076051693978997903409217048659542698306031744752772260624307103272613779787843627918801376174706482122868929431873563120305396761473197347351574835540401766996285855337261389764992348239097129180041188780956577157605615655392592040060653804772120197751628187557896861866508192901097085343919503886700450406456073036170420684203431526897501412564480798845777129292255439768157701748342699472303592504462353364247003962726471833890159001845606436860723397234675115943999956287557583438013594462171298104463309006029053619398718338479282577267176661859401643692487553130425243336992750101461264754940749250683842985422909481579131204587619718437014223904124478901264642036794993904167280181393429984668905948905365709703601543082816881741985105308308074824132126150427251106713767810596225949842708972315816404901420853815750733544253682980397352315037240634117026672937145410205344217894184964999023327355004388083452036903258347144022399677403093240892104846788246055542138021561565243509163182063686435808533439985414698812247760926022868173121338061605459521677299635053678807528669691708429700945966080437165168120170585400924161093780925771244073713308357082059802292028210503273246658516062378064916043244740888368800579558348539908471931414650972621695947201093464350049777448936449225080023166355150269659106653904702049346130739275945670900934546011738839616673202177028691010238087538650761717232585892683590997698598258638747177195128450894985904063637913745290420910888210957364730291275706520153539759067339485758832895951603549743003578365432331547574039426251645067443736815433191582586342805977904973903783451600838559371052982800653183117622859276078327742373831708772240200784685166538563991903841636425410641563780926639450882345632002969177534202301716218431420456422935328453547096596072122491686253958600177299223709739472671758389158376039641088584536244205662168457446557652586563239830841862788040339646827807042069352122107301124802615158000433903775060485786167061920961856239870206466506265277391348256327266440852624094818434408171728777774783715437395862881287935159369223382373528288606119131508389553028604939191634872760528023376420280766631099494495572829281227224640558981100134075408908020855636430717804615682900312724823072726078103790400237387874313351898991669365914103944505137721849021452611627165441623500433142411704408606109532954602808077116988957037462437742937759619997384735049583946446385331995579806217723386048749387233434651837839528681577230067004790306413683696407892663893032208975651871542545518440862674653534626933804287275539959245485848720734310494181007177990492926025120167741117220344559412212434448493298441321749674249981004833261013189932333391772149676623230810334603046992751745177174539386128299237771896126869838915524212773512167926051286199385252779834101394093842074474773405796507732234087476069654781408990365980882845502088326302760978685647763609135992513905717826625494750625498016324627910399568306276709960994172278252907255587273431246687983392600565118719006766870687935768484837263262993883117679410447593246046876267287896704322122671187600506426948118827327266402049009249167989449581224428857170173585645032775714527986407097388992379820857718581951416021667268449697693691161061165549791868273340115674031553584050305052687888705294481549849477088182750071326176665594561508680946005984630738531707872351695191624040654406806801052673264438848002810615561262745941613503510555146923022882628693058565776694106901416148538698558328903153543377865523606411260739168032728138810238682803756584649236603667720584431487761806122843092816522468857994658870048163058818294398423334968445030058141352695534571948814713784403328031884153788789719099008731856414181443985997531464381801268584619388445977488262372057611181806032603003737007943397106705853439395235910918232559824487405516518678892310527210967293972329977717266764825284993600590516389944235359673644310755193452825423006765241965395845509910711147393418023963686475830053029294104673050868748088816350964038595971862113699112613766619834137754157230679544689458570158590519130326790377390733630756874502814985623176638771788598175520682646709953565579828452141020969542129315129876929791457865216805848912042096738539103775127132327880514140992982413955599087243621891023412620163156838402673888893078653493923986909476523522397921727028078290597240917022066296274940081880700153516932824732156133870506271570644606239388865147435036369187833737597913879969436597777770606430277496490648600320016266530445104182568239363469303378329058411845180156734043966871352436537449269547780788679112365907705990199356130343998592140830335675317110986000772562670572538007834538899640945566165873271417555285661389077267422621928638741096675162741075396543675012116384617141308259996667877261719281122593680192094072432770214685396399005428748874767113883784288034350838122912630443479613754970338051378417268860495756329330225965810799179787847616273556160775759560602613535692412074173223594008089811923033075798822808442226009108680194612706128024016503163059934431299678311843590449746237657927330067554081882244386049571987291853579910691695016211615548932528969437572561241582863264635937780338231602930932681289115596708991185832802252473827139206623372428331562916063200268180097105726600474509216089981967755111719167220403961888947339362790261666185414670762932656119840632193917480927611795101640661384524416438058979043960033897392372226494543053609504818565049813219915964539793039124514830579357717106633066533034378093222714845158032852985288400182834169327993128615596877956214004221484599045502059316841138952635102644766410663624627131685693979075762023496077339508125725435330498233255756099636052808935667110695529827624454541386621107976113729582852337650186831641632535652078633878855386063027087962215482453564127273235745467392592278548295947016298942776295526488107847556450935369589330327892115952496642867859954790516417109273576011733269817661623175469623758686756490320499224272006614758736009755677092584941512052548068689148089651901738555352843776224115734580611167860081701152083198630684880930709141363535637453993684865043618390569672331081862621011710490260388841021145656808101483761112249216291256373173600464026238685749314963772465509759841863581797648000947651920663680516460255783376630978697042210405849980657918125877590884908809715455539958327137786875283241723381780145711241418279837882208390351042706183436487126811820618031564746006311429514646771816910186974205144360356526364385146363401704432632545989927723780052807916521184674653739132009211145455446580173274963678069704386462369595410768776059105129503065721262776808844201032582147969073824066513735112175124640503942902211830470284194052083834231846052281785821750056997970560417530016242204309128617705907354674038415367789432693580005310568301072089678608088126193157931805945956009431090380675650617412727769726541951681402689040888200313527053400192953191304641840047865381530015509139652655359512045456315866861640745188265509924864691019305256628650182762018592804326821706210148109814414726984813017172335295998895680784178023350453963587545395385413293045247090030721446085013650259511919013828627668070816653849668571368208695699626800389239763064182071032963929308146238845666924836517056440854768240955278458495159224465881097395153347013138053027990962912125313186873513762357259966450330802473210018994161366720992395226426114745878052644079920990573730200292354093470522407763200320657175029936991938941315051515401534984717690032392540702417028419804490271031284895677802167552852871024839647161222747844507837265908013018038226516799114185629557296030818845649980196344749582580883362502592439543293612103065963335894129028290633443656572648178716735376729424498682149595187169116707493861646612243817726855272352781071463197155939348572189685269360805377846489410841858512173898354832830152692501147049160407926351581338698117746253382202428134702439250568417153553508963300950628964831749064883444336661812790773013143135935214343968163618203249007338075750849178851515687596119110260939625791623013849710855789376822715082678793076773971657670101713959687270828849815232399057810719820977944441954788490556985900069762267514552556912631361312358168321023623484559238805583208949519475277443029978285519150452200386358681878048365047437382081852849445548375415228529992207470740209508103161462781056611382758616760116043564673505603966216543354809074891275415243248913307465641159424558151516763990529241554804326378682465628457458817437428503174967382172066938720777024564604425697048961689787816703430126076237102831582019697618836441758607159837942052109251179067807648320402176244201904494430829911703252890446256767081782086543302996941641080956403142339607949239908136443898895997742526340238037246647015333503350654306853402222851023977250226775942524382608710494742581148867524109926972642642107966933957847197944779687742784540557399838984420901446146128873389000649231265498307117000309047600319886753667374385985535728480756536608527053576544610563519261826161378006981306040374514921622689585275761644288314773743586076484063093373395020045410370147816012900626055638569571931009592204877407965704808739141163848040347281659378361846101913207233743393065283202094164640177938303856302694519964271906002283047185928233993475681100161040218582280743665095281723036909050368918854798229932676533115148806428070092431595750774469053369840180167348333287451638864404153063360716893580388641841306391458785961183519919143178430605753669333794576186325509102421650934930234594794868515685936479538551478629275787483487707572824558449918342953070156921543810932787796313899881469748373223106460990153792832967129406247657206436806082944549123761665102024354264979865474584682334575654231158811807574389818151085838756588424027366743517929932588356287604409615539913796784698393040837826151072971261441075222529095921620401532936125134275208954664350798056735935689058297368535358198060480362223877324082836825591153619888167063600865021632267987878991691270400965254916362815641109716071426233586730608304993045001442106730147070022966070532779745669859702893595001380144496736514433368712223216320084644576748512304282038047386675626722209602905843483149710715757594458838075846992590164064804441760338938516123582431464369017696070126348697083894389265944953869065129193102392363490134147806629046155713088250518070975389878615444140685226787936524159465071804412593096989739881819680974254768223664006843908716643775591467959429325737912903081344333363966563963974344086402958428367736939044334704490492953320644533624161118437393119976779428539139309759217090270999394937915959590726470333864467763901438235085591055566128885071953108089796815038253135209981505986246091605232235237070813124316416651537606849971601195358490272928289005983004399999818195820442477661986353491322905082519627492485178398690377149961544555819664145824739050798143490692247041014260564737673027139243466912285968756556257040584759566441602891261704545281451606711868257414743545710753862878741933572367609099515470164058395164129259758297029469633374008038766108246523606016913086133482967255419793918374391717167323912631124979062269016911784395668371127016100074668838828582542074668371041313283355214250358919448708382570357379472774224588097160863881669910079494088980295821657490239942905760898555624162987891717234995331124192225878298862053056735081704109259115321752585244338187219423216789209161795552630443731248110057129451392336820777153948850913721438628248285080911799797987382027269311424084615061354028066020217992410066113351656373009336079694978317089411158263466642797925097435900032558702032970236579941888068724675523406845018253924698766371596084761323706135591787406131778310728120828976863615761251156063847356859901249062300051861944033625962820727354879112133261078631886100579003214256863899965268093150303259474781149210386229149458757659652002288994803589845073578266808069054139037522520155128836134617299116476655834588667088503921967037658318409626747516098882959941194374684306560453504894951031944771913258906053630601169622807692271223610818916842723060408939484353408142084215723032665940796613301177318489767430540512023683428429893292126543944261488220645409411042809918480435386451306892456862049488503804787436162886878942578880567959943080508811228064336286620848992546265504788435865734439224490619718254194058389743496668142735457470541838077251592836109939902946615462886824257422145538024096777271889404770975261800968189911532536901466249721766324962103894352248887783859288973191372075997141406144048313950225912020938287996751929882235049406635150598868941370394198669977964975302919179626682429341888593112968784847892080258548131281128728416411953215985804855960827442282245974099588253289315390929310711245348740162739892600798455124451093334814370126844967443145139406991515664486172178552538816246717501211741157971000000477905460399946982882719766658212045534125931219489015054852203028074393649704810589951399710380376225580165515230011881567131467205975358203949189881717870734971549204926896110859965943357609816696932588528785631989598425599253865325271303513011074419654544369586371028534839909162921005143135351240390159053504691107450217202617462100469498292077729944049581562981411704454120320673571884918528962876316459316894949861581418724018526780463377229748404094718422005462014566396912346326386625199414294539760376788710509405632378186961156660460426980179054257073878317570107005875618421077036763363775496266170264879036116944195492669160349050185652184599199415889060608787687038881701624336536128912104071689256340392280384262220146383908214581152259506520589445008831929488737394200855200839632051703195690401232533885915183268525428824712661916824420344842034007226362993219981072809793017867845820650666488313913756787206743679341922847209632342978974708020829840726779902692383100276321180361792969424573841232962490205475467051024428304228657345158926131198915584956853928632011298117671303710163412181224664136720414762308139728499454810846952968848698021555544008091825715528752309372335084694366835319268671305314287500454948483959211489601657722957807988768344991611171301064506871997985014958853546312475881999368038925622468022742586959002841761856465978780765922876625799434422265267507183295931528966401167051428127914198974739786535787039362005532154741449007221939578752050188024524730066304478571256573037177618766604760806331396158675590394424743723824767505689178649187358115570117458330883147836925249358555173584144817006633936144987478285557996439660945546477298008431291987285936090912758427549940930332255937201693677027974736745328664740685196383181477239429047798024529480901042640710675658520370081353979487207026463500227385415408062502578538782656534904428695547074444915225559532293032104979287740613921246082485648338322348941291573576673347096751873457454735828890824520074387697363591269357098635346211783821291033872741027828942313174463424257851222295584052578472003662212675532852194947056927427600917610948224102382233445219650795377884224528106639321424487726600463514513840870494025576906009283656272046395213763629425246139295733759828302965914300366269381518784868731495498017184922466367296286112826582786804361070228996557758251877640987797057420383783606676701800611152723506517921118632114886883679111317370035958759337462903572257629317559535712803285036731011681067025019298690011568610322784182739801773163388567463103594529560955686872510429987344210076444013701451819405132101816418666393229017242539254434695296584527151608314719136402332907614831100928219065184232398702122393406342066002326834889916216123754546542030837780204665963212667741810071365097833670721725684371177879045161559655662035038119445151449889617323505467842851077232321022398804587253249716490895172909329378202204768929815943585047783701277346592977446170119725668369471032428431385164495083111373713488809966383964821486108875186433964723891798342826981829889223377999315125438953696615914156529867476512616963131697417785326102303917149445164603617546515948960764635269570185946685125632445955934650248597468658911718039932589350599778068692256532434835007275830204802517413678795715410062678949176830637361489367092585203033089499765032124914861454849932853915258756914581567257366428755960101513217468584139970326923119250542549558663837571142156153964853881795198605542932941368963967226166253933266497842329404424078453964943541217592048577483748348673966072089136842250974659691562731911754293386849250175910970029998320666661300763657695857097762436210749995578208340102904220751057905211419175341190121194073936068768261905339947764484345847739563098404307148955658345256578561407570233236822638446728620658778951318671212522363030972880507325624435920068208896370637142805934272232981544608032306036544906642886215088036218075612720517429180618617404180545754460151519933233974127119161248718531136439205199713510560071165050802339072622332009759012836186630139881694320566708939617236413336098089211973824013194031130479125622656027605819542135159821911327700996721264475682590595724033459036692833061363805072763053866925145163356811690921556148954015673860487557311457439523952395491841584876175415095006916683147213561676646226509186920359668388723272851182711227385252456635878172369336908932523956167377488199321616370903229968063269130450318055122644730604920873536440334978092784608005131802412346518147193335927688305473836456678594436983109178499104789983762922343251996561604102629146092239734383161351348044557371360062704297619309098149844361440545862503470615844311319038350806130225733783095689299985166071799641563971955499320517937633575334266093083229565805598514640220809399824893383528879633491099169215741209578358656781791372995412103990895075598474411273329346222540433152081300524310718329872296237576299149541952982474561576159460599424672456175312586929686885627600038757866831177288169056508767831348920598076614166382234044753495661474952862470652421430474741969432365154213907710220227042611081519900973126110365230361231244353960081040110263807357988576821345872694269904962586858820416338518424067652943479200634462583074256926371203936163262943914695285207770601949343495998178404064124367376585136220996209707435228775702648008633495350730912811085895210415128770378028213282633508724894587117733931971351518438286167147959911417135491628838036790829062316592134701497792756509923708248404426381029218819010722112279708856997300490874687548179361758007827352028416144649414134714446669593030633816223500466167099229276914429266581264235664130346077648359414732409888619951421028419418828710484921301487200811373456315457974351753956636522075887564892488918816575548667653420169877745528276127785090856328978897845366347462142449933125076480578085156215906858958109206932867309305142351608520331790382380622476038132145354289625122783938405519374615722183292051155034534774831095905754386065529940947308945565537770175570091076593915695770585587599148723154192103112838936998717447496481352828043949290252371393190916315089935586164607719979507498684911896490781794710382468875069185713419229791451811366142246255307187232839543473925020508916917226097269752655574882680945036007005875115147586353688283790311560066804415199178599690420415754709045931606534353545832208727250708423374049832811212112727192832891360236510986197201358421271650020328972026711703656173022379696754463505016579688409038322049578808081975247314593605544541905394173153063142792335430138830297642990341208698441009017076742033922629916494651069824520942215775649948749493384461611857307629203882279595060205187618427150546286949473410569205762560479494480368541796210356380331955984430164389932097926667213895286542754405821492617108509844967601572776977966232771020482209079270918679424658950077316760615753475268303225695109414252037089309340407868750433239388279182276652103481726810057283387162638142992567103634776587828906010224322879182426564851658826500366817970079789190672949272004069457445512072413406969594870752261556110730622263522479099596440124471999088590279709085774752554617178528849394532826615832124784437775091710384170403926682713382919698914762099404932809405200769677464629606985855992035325228463259375989869821995753338824165844772698572522071505805237212479005178598488387114945894680210140378743268826523271916200237666568085971295218880795639564313886395306197188545948222430835576325341741616800355628490041614511244214424880952934756292499528838874820115275170243282813284002532947445457545133336596916293496985886225165707666764806923709804093178854512969835228887082643764588445699971364055858130786681103690964470259564636010470818130032292865621119460927069371461003327233341641102117415062447333036480366318218441978158450027441613279676940941851285224623548574647974316225998697611219844134112251303699091855132598694044620787374473504489338032915824759691756961893064622016758883202713217409163592091952205234573783992747856254498736394377213611232157653326307195592263742560649252810252934216118260840749527750145995538281382781167583562364903976430894774165324996945033170031504028382729793593582309471691581929261955623539930866163525575777742755418025311477030493452725212010679474874632627541907021276623280820827076189929430391097620736784511135901411332566580544997748334291009092444247999064233573350660679322914245915256479174971317309937801961189054577781648736669225427967993896723041471623601885851028423071665092539137992543890586796176187646680718893277078629491121435555446527832828553542338968241069424783312718992760434594147178061509713233172289749565955131748492037629490032790361389609638810426289976450203170306609973293524095836675204337214294275350875749578577572092686192415512655611249664254715225125892101938859022471681355656567925557334768062396599404166682526980171350531534948800049258929378104265742215821652676437943135927175781786161807638762759472197860659217360717631348868072315537188245319067241461127838429223830449225638161033052145802276135884059465107643511747283577297715928281329020986259072399781000561684696410599646929418296316344959163835885649763379797791436741572715124596721361945295638025584386846845258375753130665535734898160641124902130497201087444018496860472942376976719003084232742229711433848983320876460115167680724790886264831957223991928757761224864253358346882555028600488499792083255974588521078783035496320993083935861251338853703237442462708127513884464746030183677975188549901501999430094617744212166452449338728078814407760523626366300787651271934313758715179644916173217439591952461456340789816918470014879151121964530155767144129137420666208668805236888412368975755322869688061658209482743780859874659386010532405526934269493839952467029985963179588094714499603709086878329329225305711797041833775241960712595253432305837397553499659008025070665035379676005498779393810235648990333944523768999813450311558083380952290448406892012728453463683777295606271462730724179534524934412309990755572185497120266405306225902698511632251645495267447428804552275962737991406206853046092950377299713959738481389536441950983594858971110647907175973513597747727463887299947962494021610452394210078563029287107466823946207484135170805512568470800983594345131405901348250358364411234712294115631988243187524314466576589948659983473213196104570494675336494536432436018680065516108897854373901946504145984621754026689612465807776482229157300541588053515625962139468215836501840197252805230080476680477898622986905719044901879241785443502506725823810652819543132346620189413899052944548630753341340186148566273363667607493591904865039271517802875105902269040529544866045075547118177811646294967466438623825975562667692744690553958207018130248992746235032489858329302793030707237499599454639297367067727080328316167220422638847751382368588975221624179060643011415014262842791249851184943937100645256503597045582430177234126389722136542709815704943239437201310361504982653802992305536696679199462185908016471556939871238997353137141359862644437140724084713893132879289487980279849870218247424019815905611377486983945988813505217398290043898588322428671505736186956959451670533370958884824880611331117775700241313699270418872163374773561922361068161683115435121253708584111238396183313606592298157306371523140838676134109755392740469697291084272991733833888459292031858786292275433377990578671761063001685145439139143262427522566379145483120079387038444926551957346706398698701575123220215379313106268158478063445765790812113853097264092277922075610223920673975621823684122692678654217996968144986006096703620184945709485384860155215957701309317811146723302494857854710935275775069660649180504452441847862358510426024616349103548607032910123937385899134910537847914353196031690197826506590470013361197210726870889638388594998216715580456833765993670800549317422823785286645230803623768537112913815213205597072308315469326241599062099191806528810142040186609774790839347607247924112061965918869734550753582803251567433346807988414928593902831376874443663003627500664770297370352259703291157996437771112408159069986457847343409442279538012280589880952856371118383264995575005260345731445905394464443050414417521449519425133536622991167936311864366574982653343584467741633499856039579848746643331289587132043765944926343127716425521819576396237632589569470202616129099269365821912549561139250021262039916721520181495648327898714593706060399084976897122507625001738558644501221328355489169757518259123802667362605414143175242140855607354013761617624170728159459633650307771868575564582118934185932177591241845007629376656468586435523436151116977690837548409084138509979158356523654332197112585035430837859285234742482981549156272216495046688289875834304447010916410341908393539300741562512572177597638835398737085876994400361159698172904323314787728128052941469323189532305057377995245539260209607028918532527387685814335774488437169551969959139160089305051553666534809764631961659266879699355325987371363931685045137433314788841663442471556955940117875130628165196982140623674434002092119697936645689776863183530095926585189637022941969425399871108006111214273644635641132789520370917069413968522498618149178853560092240473145470523724407070835006888674767738008633685044123949372633813908455664231221788903773537642915996202782625517662557029833339021006487382765878934645117075585963252266168866097007240450297375548100664092976645919609644916123505374636780531636242886927906409753071293182778168070174510781123437816367241857657841756498278041157738613918164458821320822178188730804899146217665112102766829782054260245828374879619071946182228643203630159513884744082275568224953714904561592378790729219085797765446405988206786425879975947581676351962438610935851879361186378334007471869980927892475749410271108886923414251178820737926229577672280546058703761408540990324294295902832225120921876957034600760414937092703827162085771551815353316781211731632720674944840795272443406506978851297829090493026621686336436839286870082583460797601692850571340164256659714528232061404368301547937642830295949345459675769244624148101674358244750872020337301429858013449901589261463645527030703439928848552690517182889049473565966716014021696560804937288666522148013667163487884385894696294941275066742207330800020910596060846179283657446219250314827263749626232618771963438468969879390167100800261821502412253412852033477360967993263527929102431331581987675003578089541486324108785806721391691222824626133761831013525773595343668336521508193932226077119740778190527851551614402610757383551166293938647221621851886882752115098551870917777205272736029781895795515045022320927526663691022631764085856740560595805925034582498306286764198740623258960572057998428676710311120554104049804631711832065835322856248458260760461760071131132905468110893128652610650856005946028997604654072251511734229727704548841477317735056615354394682276607973566763770153752190739548830307026778330428231008413611128927139534557611691175912112643840378421022066602011064530067385496740106587549810021777760262122718072040836102530496800293994256351902732078391701502155900414803031872550713454285346973435177889133412231883718322061913114598737196848708492767605551919217177249897550400027283287217121360927002815003264508571154445609397893667674531468711651876409599160935935204084815862655503504041017080736511386093412800859286401957579945256185041235629085007217574735146389526947587638240920875339851838360256848965225313163105391731398415865540328264102593403957750432920509533787445450476634475058036284550935838144855717476598161903730122518304614756118518004352925518567653109548729963433396393954140897764864943755608089715754257664436255598279752894652017621944665989270320730807543508767666772478131193259463975098355627628031967965140411507984574519383640655810501580193770145160291364921573107625223509892282361216974761976232709173947379767910381373949959949096017576104632410465979214544739591510801687876992100471201462505938199554543515552828840967310356077588594812765812519296383490776511779571978066716216974514513599689832479461084792297403513689648237035346824240896866098886911909838378022549673094817714694192839820302262185245403946197456760727078466417569780075250074706076100159559527314125741526980043052580175013313503424516217744233214676652338536937936468593355961051825968029176911421578821184614934688339738243490945576975573840832728650920694317382567367542885816609178413436330070319211416983960880782886251786909499621310778980592580583217911093839119727892396258226574652229932380671288404805814583313302751471894999190189169657518603979494088042886414689976403424554137805519858523211537977348965774847645048089959157801907688663455921788219440346483688474622891417285135257690130006299576388209964698399937119225615968223794976679397984427347203602250361857028110256259122665057198868592853565964165387103241215699689541389541289940430960743509620175273270488282329703672294897959697512399733677463605453027631927493993020642239154740356488215119966070883648667531684801821227478943276684051613538347774330057681927572845507024459519034755473071531482500258695912469290945183307151919513648287426531313297150045367053207506034111049214132808173753316769040796397106216038011073945335334978526025854683367511572802561510773737104046934733614536712756792940824953487505292991631781424998728085056941047314195022771023956488053026358546206530914173339993096717353739917483276813387917849863368806672331287176466746168325449455944513064266974753724601753268239177993124165771420227341579808635214447300051013968349803635570526208295546519132366205018475741045450620856342565555218207218615462936023812075148384449966129569078931000393196446184188729315486303464559262108351691902739575066074781748475372604938250454553197353960880417898066953151200623647054728199343249327398458294650490006698005697800449373731711838049373540647064996964795557972742959850471879999636439501142602377261074722455209531934438076343203205128470532274005197106199540463663510323343874329406939301481870225915766903571323367705647060852045702557268605094814652766020453928407318284543670925557953842573318526056621777477143567188973530833244986263198256983656337253329597976433230314130488398338273504381086071188458353339419611099371960438424369980906818947126120478066559928056979494205719982273728298876601763741916751174342564913808439686280122577436414141343503244869615603190356743121377036322007166987311338847247839755013241068657168716475363550644986706437220849247735696905850678189437350130649086190208057369307315542457871832059949774796708027617192468489377820985987824169920696749452235371442961123482536032780877293952369290145791537207906837981173618957472452957219245860413651899437103012862864008669117362937289056150435769321466045924756596237352421923527210632129725080131859893096155650201871787305560530734687880980222315699310881348528569870862793414108045392408249095894948824840151011915993963102192780126890919320099939015587091569865731297555988350322839019989245906380861396505663200423398192690866192209644077452391231253631930642343540174261495873984671292733919504623548050566693529739055819891966123635866611368694198863864473779245717701306507385369403438799908277697157481463260439697052934791969144370435800531485930542071820069056010957214825332818597228503553410669731382865497921934502123367927956181932479261975885024923786636642980193078850229486092742280977509927750911744822773814923607035910551216200250845455426816351001654510367852757549240085628574505370581858384316872302684528218384193640071006955666421260241981750323419613488098169301412401991934102607246180253637609336744412330154755394238065255621682376103519290551016256482276994159903814666959626556515721896141514724346982922111210579502444688845053337119902727154878508112561696863313011202946930916501334578608670501492735680835569756547092471897348755823251876874580259778496137372809939897622707965592886897702040272499599659509924377231304621774512464548930341157621286064592464069706819679273957099258072273663488012775523304207669384361348129654441635852961328802436204297924209386538863093663338801687905428993757519864430031987235423237565684326156490545755806096251198396193032906911937381931744809431896745238942945377211714078524421679497443476102398664020940210550774405507696329944948587382270113941943315953887248308152820860544417814985700353528991002673847250865884286768616925789984333583190800426054827402413551237278839990085787570755949416489115438162891172390771563724837126253177296066106621253192665943687596359786903902969853708613492317284880103488646504384790249676628133844128186022681000577309256317243046569283846523935859000752218505211079096128921079863439390109899156268997633031380634726681860583725024521960741722929869586655735686536344805361167184488347221590236026795430338121404144644081229918205674656013242129454798079676383567334615093275270129663708287793091013786371248060715071680935597812858441254324773750480918701798952760681345705828614632891324236385421986113890958769964098166969285578194029599962823510868848521517925017497670812064734662970069506699001901884315352410720566042568623925391308149590715076517675408338662526010113913789224776233463871096122208372766784247202750179582178372492472963679602586850752013235479224577068196388759288666798384298416298242968241584824925736831692184377018267642799869825285039822037636863646818022517728962774874936962835968311529353576103542088951208074883136791565799707936960665937911861803011495631162177823914051152774691065242876191745864396715159947851173196826720783037143843763287209920770020449699700158608137904984694173482461306768037021090363963346109786799526651534934587001749842802381420040365535403430680611075888080569268116851935928149690715776551882322631116441749808305885175362517008182244533452651589060799549466234023978325298874642374753927331238014511116208444419145834190220750867017358579162340899737852146157063526025580959667922146918654922415370578187786278352392275286761702726506382125968242304306497524912295063116337804245192900611332041202037537291006368104173754605617404651922479163939363616573643350189647925002249763073037177575590494854581061539238378240118018857927013727194806292393171053291584471976296258507170788296904670051911400417392370217211810712441722409503001770862568230423725175331562101632080791570205287361562328933584822825155115426164292935116491156320964163198064440617596158467504903262387233901699887138089069709353458248751533566450033972723849046114691582216688159620418156804451020875224569671247873209124109422195143273709333528080256669207025376245103149967153077958553822011013353489791270598411743070581030544881442424586120377595250029354327846630857690990930201317185539644511526258446581323081432463796953542069788178434656108833177834425778235394046643632603731449483404223943678984712127201984236088065941378565188508286588453428059975561141669729568551261227683294085462568957258684796196141576430136587270226994232886967712570158551934561605701142749689190970125849786279544746423183595337578698598399161556434594619965390217665483263865320282879957524675646503354414736312886471181355231308928808802584513898432089493706266301354789064658813249450059940387573462664592076900039287006632845507708088123203341415093562926418300494986983734520269784989726393618549692164150558732870791699081426697154273192695900397576410374725522260696244691897729032265107513408351626276266537740824099851535051397327491398663004654600204708481872633192595709620455633568836562200939363825031253450642997743815648137156226585984902033382396383049657420163114461999478018548547076879118092985697807943246615242165429062823849444127707460438729992445075086849024491005018271958303658264350208133042622167848068463093196105593676944184519295710149605866307770829270681368687687572748682667921290363585588097998000011682321670522729718328371202234132030192230102862228471408790628833425953215543977576325002092203856937118199148289117406393563915739223078406598623360968725765180823128779439113429118120376569976862597266838520184234873002613819938388065765465908105340278465087905327789584830342406628983605864692446668875828276481256833557136416583253169546100305057050457103449142068474092540952699704907153887933132259472973475855726089584143630561473137923790176991371367927562741507556109891903006494906062573359560295943085526063078429881262010245355047728162395805979747225696533186161676066055692924041012349822954941447124878205994009389228352175034338202393426882498807263683226771351764441077333371415101471955576459370121661074332911339793116104388282588477788961323989537914594034906300222009948600590796392274831496157860359033661844520256569803993446829564238667090493220228449010110995286636326656416802548303780698848562241961467793470327997520791095618379517918648303112316578979208763723411490859903880813943900098802481935079935816481566380893463254167934957657103409718093002420054286442975244245021617995030902122298586442461550060433011077572804543453727728518081936958250988496025591466091073341303412780141672335154267020736828150485041810752909721965179990643043524462872606992840535614260418543739003369196842128702155857084697889094161180380689804592162239957830316648235951619031972871806558566799873695084606817915575113874664135708177872964274010049267088921459351621764519927189480241282296373591302506965048518137440782744138610151850346069470722842807434859037482625151872385619570015476495678438982103033655649198604728749798260043694282522657763804395574116324468521161015215558716715481877968902229435146350796865604507619367702181416574151672049820470269901505656726449301235704477164965892502152745589893692446355160411878082433141562909464213355264987406898415491865500248229910786573379678537773981616346340058460503731616186144145871629218785019719189049828834075822474251395377950406202230871495783340199478359915421790988777359022902860858338819320309080627205042631989716845866238898081472084633798702625255793717641926524224805594551766119234971659517045156543346238227769026228055481815555874772997045187101638762142340265686355000020234131699302056586193325054126659624608575943078364740028249137681770284868584300287388793305889582146042265357645208375976813787641125112323980802445047673232587145342936338583158206143686024414550788552750180389952743866755090435563922004781428992986529916426890911212699452286118037230467691136372488916636217325221112556694803416341353492592900252142501698615497765192770947124104773033577796172148854600451448955908587478738421090019256214683141100630631298338685326676808365016572236008871223716616916700539833864825140336982099431100162083601672458119932783012469085199778534735663671089647494333591936463938355184672900411465594834113537443615435019363232093350587450239061155973542880710117846050571769097573917487895097943723083724557576263031024511254525516088621174047901642553468063444127390557879407081564795442808995245768653404463594998592273458960929873727979856358009442703283707659916351388605847368766123330798524817630285334102133757846314009035549400770740446736157018379850740371119573105631685724535738938673909706251625940814253887931678726634231878464170113560606116270460871994233183394329217828846493683931985466149767784752185790720811490552915084959181927549547967210767320383546156215419840179089524810978880406463530849226398120460600440451263061182413755540723308197460109705918134302317598491266157339103147467865606073825534645132415302353208147833716822182736470024458732205487529372927832881089193499239365466720425188915993916767477973494692347630758496272699629167430851168000000504618035850740121030199768083775198371513785774050067307179054997216682845432823910865938035704884969984515148885841565537675645233938690543828756369692002296239645670173878957412636771813443823408709800678305681819836561324649100814623732327833286139267649882261180645777815665073016765548173898255192103641176138897004799828154622049224247363370991217378857052060464724799339983753456947274599909089901994587031498054467789225033750290540926256230975985160728708730160048081981681899441401392777474170080798695545788221801902465314458752797891884745746700024452172985055820715838024916458896813723496818408157273927185603609311322208153552176324150208669483191037056634533119303692476040928747549476680408870429467095221889252713715012468310980714118270577616827298328883157886547670050731396838542041906264920060724540722625307535242876369290421197669732420554752199936625366248783237113463416848710318583526094580811035357712467298025835321028191858451941459733633973591619816359147869370248679814016186574001200252402957282759069523023271920423775552999450916182186271423578718837446339684348903781349919381995328665121647034708564648829428819829775281043687331815753124008757711667264090570860285270207732192006905849836826266009566423894494895844481353326406822184595723966463895808915461916936170672929125572439906883849489263793345092295337666615290068734472203152979521129352292989544373755190292158236102802494561746713534486155885748432757839095013732305449126876248076510535481132765682916467811838667760408015250436562672982768998010704706930617029054399657885596023253707628505456344982473159884150313658192765650423973102621285836231189190784292497613791137297163845191924348444173958419727319797194994966112027507766961591712612136074854066906635531840379180455287436311007141926189763751485630465432479105076619566944844206524082629026156300025366930275964352634388897710112714801262225684771125865881811967207904248516357681906410126141997675571176737613377684221492051393502731961658740816499799749122442472436311217488099156937482738714136919892732954519805987335508418495351073064760974135501908662125294587279079590812313867533391138455504912531414705528803896033265605264930997149558823841666931712089655666386113407165056244142408690417480226743107234104217915176825168202663776640856420543176897039274476023148912055346090219413473588953930168788931641179566404299898870334034553844458145000547467505447596674553446202417299908903818653365955196419446630527179132803093794971087028148293056121900301349176707038686044383005735441980717810775025279958516861257841314953956744998331324224921994573835360942313538038805837868173292576167388928288830478803773004541429929644837900302120771504436161245347373370038638328889290695295692555288468169139196605243200253109612730145527395440936719940620227791342930811981949644321833828203931585737493146345650904354826300590310024920092266323724987537563323371880436045705056494506222404046371015366407545175850769321761006832312888616352690863277195385378320189958629894866702057421755970113602368548308277644311617649595943059654774518764806518483895621228565477001771943874669224896528315313533806871188341937797966608308400113842254925876757515213705431868964948318492664725997762044774962670383687887518638820001649776918913954954880705554659120704500377960141016617868840120365529462357604500724688318870770532130088361979903746173637834458735811104595738144622727459311859830063646147612895170333221296660824898939089195961215983834646070102012428084032155161106389086417872354640553315871001819497280688283470299712662828547967086792231613330724541950915378265707789607656899723532539160587693705299556525921704228586254142968447756394112230344054688460689810218606625060313917702455786440547212859308225803101112298250787855141134235049374836513173521159926097972222162764109590111237628201224079035088715583033252359912651969171993901257370198418139546899101771298933027627997958543509002342529670509383954229809590123755431637103927161631722540446067619193690364629345480586841397395908492236175116245275807999828298358802671344552142176209143540449868909001718580279776322726708338817489255541419212466727908264775467161205822691447932158685748787494485048959747169725662476316970352408324674154197942189333369911284343099136705951608925473373066453866971627331577281298581289301569289971919931431589421049049199743037486479137418753741634970634100677979625487867436523550576547790613195001300236446741037829558882435259210073562200085409146983388176264670494580395417801480686478267376593168539094846147362210631677865744617531008746665686194100710452224672998468943263693510117904203051156973513519091226775966035216006360717012163050687790518162458358562624895791631903657935607306281554226040022121530769090349479554544330697740578831608802908522206417852419079729474001820803781882507324625878197501461340603864589389212370373675063513932355751560301342557855184400925176982634616442590763677152629064670838242494206330417490075066380870242881321266183148542312988644297394788168005744426529731648844985105429905909024779776845845805647936944820468371278494587696193403395589497892631950317956998517762244255831457928429422548410095538988055388917161787457498197725846789780098842905181512260089232881566175591253253930131191971147165195543965244969233970083768154595351784347096039484181643688351123560118220736964456959834084951762003638626921337341969176472980813538583111141525279579873951570201738957865959462239620639208991426065741117368180812212504931777476428081454171165876721323194462459438626264864708786969836018435395409784293090489688285318285066752711136019390748889729761946567314172458021459696342167636586312991007239924034776407796857786998362870838183173642201750320468941716896150261690117493080458965505945804676530626337947296094568704045490159462574148247160910818593977760732545898775948541081231398750371589485268508937649145967594828596628589554845295886275831922381057655440414594622316066908257237074323859006431986923937054070768043465753000048170398472092909553109794721889435946388625999896140018192256610090925954328151578019210818678117797956199358339375105796504320509474388909079284393721493029600382688143221318004345527228573720786860756875440300424855303775609639116115630626630133564530267684984787030278255763536040550360419397218402314519842083274844228008595741579564061936765351193063432190395194949751456022854033021502355706249276201967049759476938292527917634465799695977049726978746982997924512010354226316361059137087007680216294866984612092291337914015096424109996714919383413609608748244582897546225143917667346554786054651072504332959422212599477590908273035770073004340348844694710309578069533701790583343555767614022444615802500287963611785309113209465101349428319776523392312592351198906053787310655461067220263565600664626100271310513541661410236770417975002486780187408852822358997113308290365920658484521244365778657700259848056684378008083920862683805051298309150692848804421653954065346726155156161334156169076972269719677226823354413920460715205365104469306775145839367326708949791121184807936356184525360904427464147726295166478094600433074803585139409274936229538714754841612043261981248776264163139739027096055394272243002110453756663363021859165373070297609706304345535068594073949185377852862418912167844209642745541539801636501472602215659525371807504512384782323658838622069452764863976270002491285008140339282794698963995233505208984587169893870965785334665176553237618625012155707731033932308817647633864716580476629032964506110874675089684564355915493897065655564784210551454246392394259293488448014692551516564536693834321744209059130448964111529374527658114966152335639221975144480532008651313270460264973249532425993754901055468765258726607088562625584431853663458216874253830606032372724934667768182657299315986820470233273961923373546097040433349063705058070785200471630412110337577184673882742817425731551894707523414137651429655534386203432872416063563433419678148565201744330673086788048919664576601925246946970702339751277619415079877398250261989423173792322003958741278841078951334975445861295070916060387433974202101150937261756030035835811800972670673616147282524719645717539791720125939096969614773299910651047888811273956567100722945438418759381746164227728998481672186134754500528842069692967025033301141888443401601219478283464902241538729410872962886550989453296685676721705199060465568843465614845983237097374940789180300957023801688350577642596371676149142096267349758837312998936193276115854408405303754756538710439366535333598811534180774014778809653302200046113690703008912554477326800707572813474352159796134358987783445028312905153465823962359096888191512386477327252956453167357030026523750297800673810316675522454225621563018440368662178693093720999843506856298803096350535528014713120495098684012286730282764305287581512448731769857614380044945826203061082884799823708504190826917815253900400696610452557813230323483034540751892213647312966765715435087798554095397146700602996059379025011461190602317254936320231510444968909687795758995642288592057540064194668871001218661926225139369646836016991467257151846821545359717981982887015023319467679204557872507527134734688981577090210944959125932936450644161226478635764421053492115829127700547167894957672444198621350844400883965322401239504945419735526392661193168611869293784728830909371334060081700187822659794422305381790429209947995938691684974652170073444838131583521776343102549666181249326127798170001467211904282838879313410382098697403956150199033928596740887661784435319527549737084100668403117143986938052995551365454345507182162019153422016008954437442368781273956173166323199608579050672768744625262750030117537129403859699531287671619095725444922645788145384908965808512384216073144160853539721584177431341803705251023094870099910341543527210959189767294519769486360662898647236790017431721768187114402377502098467414409028273771609761190285770300911456697229758388297795343729891670750070944894656985965016843563905359532058397038336582953604407836980619421528131496263299921959195069300305313241365951580114789904666851881639414489945100090872228344068338660446736380273086835178046985795253727494653065647025863813975825259782237353894692170398879762585200097504943076347262299780097646845047626185326702029364286624497661293662704979385448516332558874612887126477002526544950761462551831128123491985907522599926619291617247482866075856703409837092571761240059251176582848277502888933188125036343822120774715918223111901730685177257679257446116037734440500230249313716520438875109207632027159413816085058949110834149041386507468790179316250411248726097704250794551421849730038856851525890764216143767768786582560388614166783527494501108202712861130838978624353650008809389343695432224543132554968812104219804321600142129383762763030923026075515079450908587315152899355762574220453869790525397097795055936672085705758101902252856228410734833005388864563563488312775827810471660039300015853934608564178170760954421068040606750713233206466577605261538866304686189444290463532217161273055437292034235925151724140838053481158742367493825046148501613646924388294002595709451659209894483566710315751847486619361293749274181111210479768772587435228075862870484774621546563744599869331761769449603892508439291282445512266168039898816201268495950582747809262969369636869707544786384078262684925438788228033234798178701201060428759678456313802888539828118746270699649259002820659449431742101132804920164624922976148886314299198009659950251615822930000773053422567221329552235606234215367524796622999058917085749799368081942594598762591854762154323747496471739345312461925725705082596807612158259702036614604900506511274734875137691362532969422080292592697097189042236893289067202671174048194338757433022096546454224637823007159537748727622867649175037864240337216321282519797421600793324113343350238117964316343310997619361364764016591897078485834758792859247781738179558075402594170084688121886720361053371682639983309745515100555519463086493315786402074645261822782970435797369834509193676555592784395350077636354601206343113894480847961051093792854288118623358174762399819304374865681517959349844304548272309822843040373785353036661701750601375204831464175494226874533797263265098149782050613526400804635958171005683351972913286618591217959091761326183659369792977167864875504729457862159278244098957956636804276826692635603327516640349560697169225000771310019386071134131914498001579285368026013904088306838772642506110792203233907473863383169514787665635030220727659447452582262866009242509432241657261391883840508976954279423692062172900921607556252635168389389989108621504243896370891717929349492587177427274752726655114430861712315555520363399820652398041142392316127693375706673135235865414310868560774743260596427994522158627759778146766797336018606254980605614991584913403286282586347910164894565461485505248583137647404184468836751725685472009362242109212338715992275472072865946822262938217785695496792782235887042830211227520884462339042158481585833331978565527025178380149717864329997638183160795179962501168057703271115390509819009170591202349701575906343058673628027266810822677417461087486117999956900285771093957869307729913349440125792207186446914615309026162067723480350401818926923592834681265649237396719883683912100448947798578111169577083625652248444688192419096573089321888016036670475887485625937529051907035231084028497188813666298803457180775339847185484146044119737356170261089136393540035548278392647486573482283327492618594401366955436415136343925200954131883872836450162572722910778490692795112064801378261063537902166178751971164812938958451971910608126357833859936677928289514123331277158864420843325336445141290479435491498671757253136613114332785511420602505415200928905521878682348600140573253438517535341045401133444678441663056697306181214561387825844526828568214569569285432560134540247088463114301729316429733813817811150725360420183953757313668642507173435276861718287020950736945712924849278225467524991244292033547126260932744483378530198586123756548248950849788078928758759740662897718201411924585973252455960891016391535951779761007330686457855528331783873472515035792412409573124693845582133601370598510754274974580423610474229791440839008884422526539929781985340847216393511077285645787441370094900549639778479236437581928930086775734656335094375835975584564329395297817527578490383249570347437006768078735832490000224961503671277687615103318645116211992019992674593625641093995876890250840498048233432131118887133729475538676263496667983369391428604112776584407055271629517302751748447778695724261277349113425972831531327733709511838489540593157510311843016774947271829129332991036100085049652976686189928870264925968807408440669513065750335531154771448049506148323585445416632345653676029964144891897600975283874777520901734011231312649408414144154204649405703459936028095867646336847037940362338379119373135774489441109179608239736840572358532057818974331385420043019407762763256793860289534030586609067298552095341619577984351993985595203094760415812372713129591895209814969069199844089988194864516122463409843195515643751471341623728364860353234694693063141960008945891023830862489972065016885464376866511779248232974924873664827121780157315644656130075888347150808258511037980507140829853752471583249552223741261910236391371558206497287622571896269249062207505500760101590641078760752994041853811624256597820803766248151037986375840203085557192788188286100396785708083289304200177858301467765051528347983036347416361772834725280053552161220327590756468565362522089439451304724745180058583800881317297479631826577937616789607976155261129111139198411043030083071103067571055545968557184183195937676294785217114902908823038987146133064201288239653421985225213084442021607583008663208441842981226074423622973874608657877835232608597190134693121911407378920530617097817186388568157842492153578727840511595116056338437177355417565018334702368128353359019793495688008464265622372392155607729788573405027182342008802087247150534933729275011136352484613073597006207116122088513495380872204985977149739953360341094618827948590857500829298444050676015074800599909771556138437432140790664444779352454476825039993941804123866743522447221410152703738083029526306943574727500580516480676411580003256980925047152714111308429233598468380184701935112338733628767079698550057101933572268164009966766617657816319510836937486831634714677371932378801344128923148742049716773685984195016053020376755434066866995096103510229635755811530562456832287068506481174088575559997674941000211419689795101046516971485272560682707047486118486717002867990983935220019951335798357065212441283031232073432236756683556130266116446078518545752208301411960144728814122991821324875855580642285882260619616216414513971103027695539238874015555568605693731538848526642366889409964854621132051713637626628437291913828099872773748172500749214947064098695399243437392256133584514097294014889389852708990782339063891255663107940314761627780665796032611166263083142146517157689691941247004196003662072380523404659150672889216352719340435904303975752834228679857507799757088226821583445896643330361217402862134734574906209090769324959980966519826323274534401438034168161991341386335584370579963231543043586290966079111517559212133423436405053246330318063416726105437366266637663111611159703451354081970331045240405127144779613035229887010514411613756866924324072877093015129866584419374508061355578845732638108298750704733622579706439927917194780725284497633104809452237625323627158978406134646549470120653553519839234920863986733334339220187373652529268550811607674955049200644620847518382580834481642365511884360016915409941010951797214729084314985867192066298808313197375564320253548786753505389196884855725781384789087088310813026846952558120252231489572994510871378810113790092960176627978002811746424769703289461412849382922413474679800154819630291787689727129920337164455437732976057708521093683500299530980649120567432723951869531367637083485953882215356415325445273127928708234750657546717126411834731588415653628721242468288758037058904370882424451449771434535213561938361465814943326364503792493656542111088583939001529642120182516149599672278829498260355079314593145899491702311998361507066653026818109772628895851805477087354999769409076985499514407287725875756573347460311331339485245921980768980898958651136194766485665153000277589677812867079840910311887769101705622762105244041774193641605443490606129484576185558248998055817472776843490167050043804885400723771074052753862179373967238617898502613271096601613279820376634379780692721188620627997636427071427838038231790554214994198558903231750675023300951442914303875589518431796088051846762240233104681746233159142044357187415611106556905639424781654420884090252083909072523500987138934506143244124753227395672607885631678186353625234653618488776219477762098044376520559286702868070096732374646396125479817228743730517647036937704140704109861618161952038117363960263065574123655734263257092078713532503774846900222726771895605368780578822212490095877914583972541738008389919712282447046272027801417674045560780940382435469775503432970053124809767842614400817991646495223662241511278128104753295127245466021036458878116196770998740167910216263036529372851607902203469384539700913799392131417292669784691431857228084073158900880878203218274881847500766589284605597880646601773532191165421617027688951873525363138960934988623444516447622872393753070921992864341330309051785327677185756212744791463115305716108479555027353447945585194035635141665230674298439029753335373788443709539312104365562249887251994751432051471125744021020662547839147386430293030596633263088554107393803433617027968120090855307612318283846753273715084100917773767995607917913118001150452233632172549138456068341701858949675447502719521978412393675207219730385341243391022479515213093008966368538451184915872240713121039057026861968469371687257335951970323134149225496359367704905937723684078601953194629217409382324706314671605689189587579327813534787059921551782746961053514136739092704184272825266482179618592819575152116978244542134076657647227549289580376376665367721057064940546238883555388654034408082746452238544816793607323503933179736726270244816829109649729385133972586090240518694066696209597309112860761210880086197825706613427069356770588676338737070496795352049757965317084493220617842031804382787235552605581506376568711724267797738859125557141811309133937210795080888910741851261608830429299527856358048808125775948932171437528262326255695181831951741630226507557559885753772081171185633025733254173570970299517258064686311718357039055991566421678294407660609892817619140916566822961172950167243737163580245581092279940192516490388058017128816857552463773260093800703219917492794732913230231227654084029159772079563971810401339397725404955817444756213974454648800434353721209927539669787368118100802229787921943144535292216086381136854252077927494112059966907811707031428584671486129530295808817057339329785621320844054469968566270225770351818414796680715552764897967127220800819533351915571220108481294958280403414160370053886306977051851435239737236884460952334040987847252145033172826915265695642314964381742282207911045458698898044061908312589370613691897165364666719132319847830556165919234273650515425000848465724608667019944924642726737650966323791571292964644140209156888160781425878081586501665990889784899780885356698486148613522291715389233312608837313847850234833042081699074157102383170976011394240621212923766326818234345771940657805835717657323241907147475896484139786688098025356820918381019210562299237792392112239963188645915771128653252787293518473613595938450842945562609280413216078152733692811913598369346985407865116500991571639147493234030889608051085130363748622917124021269155617895237465084008669503541472423896901583704720154322286968194024525261460532469927009286362082375980003931630695056272643000639556931884844054482680983188228646234680637234618569252987871204991398896049932779622976913580757132590882378100386487276752457580021441756337083144535612592550301113975526024020218290298537812451381918348413760389318336135028269935925438403700736028259888718151624366894779419347630087879755797442174988957889571817718374967155382391849550598694036592243014998926171892200301837620695112358962563652877606668417418762172653195534667016356880272579985984689104242054587944603101701551486655863312193247255176512761954950771683923582642760910657904347070392113376077485496306432705886554370118843098132707421941481762722107867325071871187063525958823545807530980723909279597060993755701040940263917957650242383243583075552888531841521473931390361315177411748396028918376760928915666874381781220929942597929391756291513691234754227966526443095144791088815131960766617274644596776119749749843819483461039945549478236323363516612059312300295171143413985608819094878925965519233890902558610557827075696760832929448724214546298998930726029987908183575920110477072790781404458760908193108642653978611349232001262327532752902084274040187543892712833132955619121009459381671057350511936963446590044596073896146517108573973220342514643927702644727961452873584781731527512732851491047521471232340826008383415785095909785239549741954026812707622981750279876918783970702035156493080451435445087871600616358022703777192989993115419882896452779842277810296661082777614607649489420098864015403295140976790178041868000628541124524471339409997036872649213413150273234796028109098302180462260925101952552864187481318700426197446831333270627409218081991358690435583723696000735293092682417188408653858288075304902350537513035118014084210198685299570158738006755914177539219303178386704686630554803872970193265934233733396123406693836676159518456951793282503449736353907446485220551503675105490887030992127762241391278486898967554629713501000917515517435323345492077679815113099008856231518585561197963980161792032827300299886727117165894657488560267339140064823658561761200393203039966540035756038523453066066793467260205790002163711859220249614369996304144493028032475032921471852619013928175589909302336543496823606410897844909740130579628902269951737747869701906527433572073562787890371513337660665103130671475885706817300797146839958720845575931819901330827751969489658867902556756166096276355963247822169874826079408335867958136192205847070512163297478048813169169111858249610296030859839798105239516905353383904896468658483747930917451864093547003510042212531759465666940920358216048322106549360716951355047975361307750486709249703733747362025605868885847022631030807431375455000809851694895812727657845942386403950255217063398336751038549687957451175547281371891019388167256389302642889618570930761273223332081788945099546834828110062421800162849644696330410161789733771589036205687381653797878815321294614090086935074039351086051240200841349837521030994467935304413931827012533662147036992398219760225418622650157127756319294858974040614101291760642876389954619993955258772629062657021211084076076249491842849792385187036045140523063250306718648708627602430345414379433829913123138306426711961981708279721399680137286964863013245517474161133280886744686654792723712740002990326164007720238727163323887988740024253638310625685105037267815580768445742923294220844041815819221611126760405477934454515343805520642730123591712803791199010969513431731932067052372529992645657319941554585939560737117194954525903424171183615388880577705457169641830947254943147116139213730235050303452063061445844377421141697314209569667909132531301083271443803722256223752323175172219041904806912901399271800317564135263988524776362360533231834312409278512947717087525932234433414374107120790788444409841349533801203470031576984394492466564000830883475372255076766579582234390064801746833497067112707128437371695052731301085546445044844664035566427163994094570435156835808587332941314165380868877731380350966846538259479944113033730915719171434270582070847885336565855820900817573361279550963182156048331530753017840194506540691090013892260000756686108019828891947983233207034311929244192627554273174101841304762174595750164644679894607358708493946011202789076865997207989049038393227545634927848221700194629150546738435547915901002427892038769365484891902775649673399028379738680495799140722993026683786895694426276974577040374588107539661599883888103533740031485498149504154553923340632418527636530366544790595882296118648670861351966338391390232143412769347570094128291693393259721281276051715441626504944003246013794891099946147207290707604298264212533531087677581528909327279859526529262450364770855471372800151149969391351485838690386679774400487058549681223672419914646134092158248239985261407102654941184901194964821926864249016714045838295351022920242217130131993068586251270513593928345661078125415265763401815703798337843721837334767188458277518624885553304195636333875049642628778811331098541562603103836454319700185831109908106425292740984387711610552609687451655931262735439106926817806636059927772474918555762296287873936120397015078584258029948680836159082072824818683031292397342295632773890823009166816092864545955731341632842547473808237794639481254710397409286605049953836623679055554938621843686390168224721242337078543228548640823684845373576574822044261804905848985093617091016849969083583475503387555092169314852405121183024938369332669581188448540943460524817139292088873639745582496082659526403378776958145167485100420354710471640324966955956318521768101923457039983294367725695332288142556128405505311437374023309037409343535131747211501559329557203819716124487597450722117227268013691053959771114400205628497479701712272885634678523469182130757936194667918058474506138332644931465583162652435830721905923360494210077656976487049957651014582850328025034360368430619346715850518804945087561391264408252377182608568645262609274973885269591882490958898614082323272585407842864464417694100795453857740715209622730408905507166645074629205904740906644867496891099015387156461039794589998780789941942747629607289641966746359202279333936680080392868666663781174311673279032969261064180421976429766413687672883511360501373844502073505153603358554286967176572193049386902771986933919466560474252463752755677090194775542760553253820161074906665550003276187933621401017998776304775451350256349229380045593251219767350602407998948375427097273205842736356877052952309855951046652767737273484630422007645327318584863188475127830099355943526456117939730585612124334577273155328967738534364093315053063917657923462727266261490997869713994807713652687396473133423942419564137634448938956357660784403325131470780839215511070020095804049598536866280970141910305081060159773026538788274501297543061118659572044362065992601991304472275480941600710889186075924286068463432821246848797219746669922928921002396538624474407035614842610430328769468344233586289086444927519875831231559480013994803703483714196685281338645963493194692690071761349470378215458170985717792577169148103128408179412246499279029592775376992698256352558302702760125935450547652532608092917190389283457245899116772945153512668202016617555392930139566603020235687188863683108551667867927321350962949987236357063109688872115435416711348961621745845888864194219503898163419198446241898032026680349430054416089383281604240389823352091213608557617207215852189980416068624418334182169612922185852032848580591429663298489186158369021383696111936060223362684827371202512903827150191428442948792815499519838855269043884309604010147914605932455436190456445151690854590802638936556587229352335087889919007540838906615754702388638976977535752101048222269340833721724754966585791855509687040157205020318855763816053244196059667135938631835372215034475878550879311768776112655111561624296845736099420608585042483856270155549026156461525708502618153408932637855494904757608079469310926504571428331749438939921455139122094367019372061915043128585041771701585830963047706833188828573105824790873810492197654516606456171146653630857864387715070668432579216248990891647767883915560237660285462051732687751740723611814269816351853380069462243450389352212930656324133427636016230888799188743207740996751150972791104679935176427409222550462182334054812422485839794142542935909074907820865677755765353652596162906182804348324804575790022588800181611921497142941094685433852044257149576815291080058633237648979089960060147638383223909225769805860626009704467986829720725394331051290436980342716023566260252006101440293925880413601226632790222129848066671393823863973087968320771565601910383203102480201009691795928684071274756677859809534811146302088501811773740389241056642879256353779895802439534466002026945152718613648232258491642281018982118061480360678489020751256433704652785294819796695545746801738667746849218642683157958499661984342151976945234420628616709723730805705132425975752311297018498936833119318660978645173498729710810599237312797660322806787289441799299252891253273971286460180120658245675856414046513177706635769911871828575966933210322913050886519945836217563587172816761275390108184108924224196397681954346149670523325261793042423226376561498810620686731572251316028257646955588354618488324867985021762843584485341787728173202380485988355858515169380972227547424779564036682365324629189792303777574538862935423683752491834122987881400945430700822184185557769844856959044901390866846993934175401451439836749427685358953712925602015923497429763211544891966553126830514835898466756219523632400995838201984788250077945306891386034355203645685705544670744031478357008835566833490385946695664079417500613361026286532446277162640975305273987478867518530722180031875324344832671431232616102117643125965206682571986516902378476397921306381204466242713268561654554809500233403758173408166073576395375136885161186493567483987441326813657845122623701612304865696929062328405982659930313757029389895485185798529481458740336270159306162110428733988050370541388159472798534233659637968124620504817819475733315629475538489125267307807402866061184805242559690402463569762895283127893402807522992313060671012055790644186525166660580835868529876585227253325923885810462054838696959891143877352290747261405811682036853864423764710199199834608016318089487519914816166705561466839544361247225134953740361701335443243743957509897654579905655128049607434345970767061758694470533538328381650620350450800865055641340273745214369851761567145871763128507212719441932338516388663524196252404313240389593966834031485807833186811511010888844172581897668512351476904467475311710246085896525259977122875281729112842319575094109536906859082878987306416499000980285611538708921349666273350436116723260860050700894549214863583771412775132643347397783577012027700877918375702402711160183928701131796382960781160419927432297767827310086289232755523890543067606657442379710877239272198282041101700782711862170609409631810932431753646939519125572957110185834655443544396979140282145273608222222927154624587906338849362841405599588099660703377472077667215320356726466328171741854529439829339766132970152318847563261917643115913209400801323971887002844713401635103587828982237742952977205879963007685582340255881937498915133747002986127083186192803031768394940178418064941912000507589480096072590917419671360440496116896546257884524306033752409713037442250085068298302070862775811149987436724266724284432916224453062123011549360626449231773037791480070445328367573707987694551089866410392482195169465616753909213075884268701223892580198551841309350938360816619298861279822105761761553332834526237072594378737963222745597222906911360822717740308775041590815497877947752536296662620375170428023640188870263602751428359880678228303293660412168816329282688986118843367239622028442522587495043411607101339374025959349015164372072089675080913009697695552527083159410640960660508481359539585456100601510609719824932583628521548562220989068555228507423557940832501679600859094273411679556993162870577567310634340052738328504523540151159149482702762493433971643607269689579784566732599189517846112684268124896903346442156301901991515854080717988083263509515401928974677765182949671334598732809380530332353293596357904889751027509007009918227542763914672618068603580890050971202153791326997692870167303027335512130246254448470385785097063531661246922306093310920156760566443284199527902847552087973635972457048312488266914907176799967659243878692777390949309452223611667506080086586918729644555519876722050067336370228263618992298717473071491270921862056041296631077892807741589464567327332644969560117269034185954766161246528603118634849751329139686801283276823457742477927163383225068000867026022302677254385783749235312857042366877394008541380974383191184737014904616464500657567938595753620341687541410423818493437058538915633445330081104924954946653067478810034078232352377564841445452638691604637197784087401087492525164814129294414441794168434069472087931513715476230171488050514319865069537326363877561589680702921927536820486964116209178226132123881004439478642909564429529720416073173409957059650052256662535670116793591750208755399102039687881951484633157009868888307766362214403620057570719619251492309013136140148804486192153715284882322195478559866110480110033306469682104099045864862915897005769192534834558921161124076396860562271211859647861504784904047232682885639936467859249563295675446685084112934159388385946493050132750858532013837706576694738987824718385140901625204707890306273516953482872804107773138564396358460106723905510693155062088065507938037565687252116318354450057155347503358954245283374376926223696458542780655737570766445662710081121560982004852336366306318752251032839540817009923272551901224183686247672266602981191300048343622510026086352201955202679828735465351106595889181854929375913498738114812729667428189047884624178062497453239047248672817423609083125337136764567393918162894919276697857116948815040532979724467864522850893788780445859948259597941990641208641657353019314128805875619025271839330597930455794566920722537055613028777203030912821138803808156710770706965734870379428425213675995674140704770716583048347293723079004512272797048373906887601000772520092384871047011915208298598919194567650571154321664501279223969832233940379229669666396359205900839037407876740461284885223664566916264235123002349594677440511475957695910716945919859137029325520577794060405617374628266167683119957822811203804584230434324419410657250219365685665243196455001668573374868294923559959153177663836399867993249542042027540756222875958045195336242289548940853860030628963769590279147778879286372725766402616209143112898549986729105495812019309684757219458357860309125507564771111255051891533369911630737329853584383850078572710484451644855435833662317733479730628442491539637480802115145415558804449759609669846385816396638999675612509141004470609115809209139208175937926784486669722591571766706769753847600717302058264337924406703796530092462936302019268172610863099098481015758552675085831004998368446810043700606197936183649670231844580997755905899095539890354875054968867763763909958953440581521488289245264182246513828398242387573009001264674431879687915591870680528356961903666312925636630923082060564960796262390523891177720192460337480292655588371459571739846476969060779161349307066958359602127852441049503999656790676563876019169137827329129479532389652786266532904334348396366778068843425992725652375986891947737880620390520254268400746866532279053376475839432735396557354841908159684844117454039772184857778766343754793490387301439810326922134716080243688359807499329221111834616245477826561039453281385739134557231698120999388087171438431546298999706497768107033503794683630713373854887122242258028752687909808198079963700152168318148922277530650992775131493342115008985323324221853816103734489922699205687280238051657582470533851760500328918499630046521187437772252602852053968920426335852641419548040340669962231187249619443151639229751456102235654018976652851705284785659276546914132094332500704037598309663409715910149198060953902815586892124475603587487341513285390619686001167571264909622983552157552566207480867988273662707308366694809837355691028088465038618785183126028608693129414478441738170859972853846317447009563926590210044045147353049659403375417030056054940772101225717699649711855004944426198161487852618054686044193789598731292196329357921833387830531813226041916539872250397871910760041696508440655602146677769935957791487883867163146380650182277760586894865116923072001324229236191865469235674878780765436050557178817444398046401484819492846933853614523197318257322852900836236425100890702096262895131683622254041433022459821547919583939716116997319911187370096757179776317472046051344588992760712580359763004122537728408804900849734526958235103019390783851551962160774121685756494320426930856565926156348817967617020304791440182321348053019393881947262853431088874281691141422479308512010193033457718568025435690934574259797777078301660993245445533431625362703505676209057652091769087663597644589996758486690754008967615753898130882834090830079518787740286909641039213780983850174271442158296879246806899652468086126782775128498875112872911853375835116890894404292337309820603332432034467579459149587318538011101053586554707840760741840967307206443914197411101933445536875959695861556280613754488815385539479856133631497523718985434051581370798537550967868382546419328446086561855267176641019181741806167654401596985397113536174094278051854509376950459589879470000587605064828746367141095995532532099879606714861535153833709992297888746662021408796314778509815665982180501575115008007353993965612779348989391162747057862617819658505031956465117492259154027053679049092330980261706476077806397880023293602352606975146373061015804476729898655797409493477933873960818543891106148563596726369415650705683728222353771185776472219798558657855111701807918126793171533528843268093957782762347757961191703604908195590236390575009206734961219524167702725167748625752555431359801610813976155373502349378186612571997646258772321112979432353882412350789961287504838220117990116712694610819592341265257423493505296651818090104310347160563799323861562220844912450183786943383078486799425158895310630814529808931208203793467107930691094882602355857114965080356873896909934526352498216153796178878725392224231019939676201168678228641368908059980261272078296049902609730916076351769689169909350075567472599728813638230284413268868083744694724725324961803257741130784953021891946637761533077626605283336951632832385129272036552335700647955783556576644431060434800059829845453466436912111788190557159265438177544552730821621263451152456288111614786767983291497109144006662068583792720121787337121676366356099705949347215213077402229145585798587926376379478543908385131846259093836876464067503681584648280942096222969921974751159035318649698888926688611928444354368701906223917422428373512682452227478404724435780082650320371863772330736320948275172875160707596883285584937106420827460655318906206558964887008271169988405465629096847067564660547760111163971860502042530685702757574894935088930722119234253680963543540923344869932490959579238147415757072836384016488902173505377360741576843630702888909488249222864333134053995601282933245416811860735473145938288358477604784102351840625579275786477360940752199492482280831020848431499057697700382377113103127951629570509669510762379121029913631092065850086833118969690512921939996991992244981736404662227259640958647845568855463532230634109027545348714610577461306144964464843652345242963501310386778764344646118769041818557878114900457278288862201096539111475726940811273993093662899080070737868395922618728219883365835588721716927647343060240240770225540580849008723842428238696147910159319114186183082447106315121029564481677625698014697014842425625619265826309658971437765190103778799412162174522956806464601298588816589657675590384824664595616463841952703633211140228701382937720635190285167686832420239351596112522478585445590736562566168990701977409529090876904596563311894653539555648482997995318989229244792729589695205820496490914191226248954648332534368068535882075507354804303273445808809394880049605966385574424380302554218271207405854117204840216647819243843718573291775515816877184730968710346921934033987747615044165645416884084742402035534772744575449506656623754509905977116612478673864388491169256204175532849556807183292535914503352593233967183615049700480161133761328357477715342539968368084516171361555895752388103759465244503676126919790966906576596266962545518533891655318601997625863143787885384021159797176146523735256733607231425858921688637294032857424597100583882971095723058100757426685511423632498330464859324944807894901132269572821129581449718509436492698461716427299614821127173155745128476675267093592694262484974641524148215579005813299622825318984490897865315316705443105823395863303577667131007768688147465741575257863571980694797272881487961886137957205309446043336015309096336579209497369446882825336666353324062148404838733114217661591964464788277324368637329602100613229356322786189854597676751879022092723874156451315284584785201492178227382565064529104112193202125641873565249018152120987298694449834532472544413614464828535987971970945590719025307709711463794383417780324646585166454599524398608484600278681975794888129060022039983901606988033848762188482596267421998406114735287160413831316880114387611370494420043781000703251363047357849719223832514150627197405080492373997172788233156011135905259141875046459010441890756913389478871585493270982025072634821059623478429051622133064204575594953493099529040881533279142506645813384761473491975401742980312354618840013521118967195101459083139888711424566154659069052351079171141630579898327907043965829455295004333535176870305685214831352137523880869372857266434118625886926997227466704889296521349093799297995338373487388952427511174218552718360169739623063742145509354319736629681274350801041500524282653434137219022384187763195215958912177093150693361018976510570664713551183178880498637888482075477524489618702831666254928424966748481626064413289409715710822861271933640541368603173805188079378577949588323327871561891375339180332739021589259442249379649382697710678075302186240232585128773436355962454492064221598983718153190317263730802339435730766163069713758994342943348129883511447462698798326027556853923702516776076848717817827404140381277704361705484571827728156344642476768352483117452522854079406856830968137365512762464664379342584665528239849451202805081996256048787899992696815103394788531846866591976303923791720949972244540254360481498164727686196961297510191761654277377900900067602623996401916733986757945619397889328725476135561525992820053836033255687351858209360323051170439522582833698498049605174993067127678439938851513103542466031514132695007251878753501470631119036091968292161559590320493511154644375494399871557644260120456926067479213670156554322373853341340451699127282164260338752170293842369789713546139773833771011286363690499521883179831324458828554102553263831950347962843994018118024777365714760702840310892813877983529689590053267338237480018594870013859491176979663641789432294892577809534676122764981842292800739708132696757765452756960559701234243949987796583602415636874055873263285834365077458440192561993849782813637656346218895604879564259083723822355325166418084366929293111564713528604580204668874272021597524605841780577466442280033795799417482632683069907045522823004465472842775693584863697545704143964340848894046539250611119200833550773538203637034524921543741935075712014357647138765147197008047623678947751454516164990091811736900917184292167937350405873207332530768470611316198970020624242034618098136984015783290569887036358117152213942621097574284663132016967191965241028564109633403749504163082268467502038567451657013264635091448280693546417476700164530882980963397451414889002673806115363100880099601239197604330709899859073040900582354475832422604068645654148186948597720917361706116840335660323355853259144845840452425741318302776825282154321014720213023721644247820045873573322297739043996099813706961446027629804779989086464541815857354701484510479943900702661562059822384203344129532019368896213907846092080003087139014660680946754771414827376544402851331913834600967110249507217650506066798422830645886088869749570148117152010703011752840226171407871586666364814875325991892252898800471337561671262291658361979297078963777184850861405583172400846086980118035631880319414525325196299592745060213259273860058136471286535352282349796529604605536712686565381394975596107284396448788036436760201150233552341819144057538812829985864587167009950421256641419787319950889754765718093899894776822542438751603563295449074676942855557761902910154000262805372330028984229805281098764926457513071819158868427197966834975315232749688179955987825872749940777952404659042266898429577895189239190948571181417197324168991544257728402115247127570527981086294165945829995666214969673524001739363641873820479954221400378613897613796357986725927144731846626088151409158285805300350680221004127942007671812620983061405599072795707838238720922767726784985211078599636308604069054715595581842462648243621708448080281650393234560852405114877407511280786699638613349521579007688814724521745382875881130275924167192826698095013282133475581136393708178506844731974888294559190883769491586335471144161942919644055697489062657427949532060293334643224232616429642982574504660924827115807077734689472773845856927853804989509160039980165711126175977781974508671134947126257165387821755252950047320243621391144218512002862189385126755890399751972015702474902407833271787601503512120976419952997951725194215938019752987451153144914849267408314616707686345088263432102128169565279681083674444672633323216009218961357956458668981315572721435509423272325445271768499149337023133965830448060199489745408439028517708074119189727215455604023153969970351363745524253327664679896343539900117842632317584646184382996796094914617780455165634920544868199640295710179922318306043988327801779131409706564355922702249603456804351412972736963728209926734475955663988153067746422400119736394596597526599408995883638065128178568242607205598293582002900124105357531919971778017888437376287461212182823424709088062372154590948961649898367447755800824425817359664062325429634349896957682651264446856415427835302546096800657179101719298582413305072413692895910890904413258986382733403882553942137551834143158360067234535351534989764996133816395091080639041004005576661097643651919853091214894054700308756254459321806588541993040270887395734443463175810768921624538210206481919810844525382923533419549499515021795111824506193910405208977307190576527545802475603059515464843655746192814668939327057468067069109057277373173590541317123088138534461224456776232471543674889654879896831539197477606160729472148520578698880365690272037667553809652508964556588212344928318517919508144250986994113562315750518418916722140688943759111697837067288020155000953710102668499580507277458180527325504182990926611229142701501877399307279465548580351018867652520821764227051190276689118235544715285949942973055336172361260195281455019728354568651689132769103447720133432844152927901820347310101659606310039785236286444266242271470332298585671957647637501439732218423934762718230492966334859886007711535354010598375141234646142109004360915172253771357017260622038480454397232319038873586370467109142462473029833078405890143249656998571928258620526838464269052517640465787187928959255939358591087607179001343717450146800381604471109737280036717185026199778652477350583742691375972039971998157875717884902911089188728100357803881879895064685532054301150975429975072759878217182640183626900867254925689910671340972595452589976673931940855803290806958665962936134650102945088062834838434648980770863194716510150611553481398693347490045413278584655156877735351437347929206978641259208861455313262084927505816695680043316963927238056549071539454373686352215760160130996171683583142577035250038095795316944000252958702375067976618636722195154640717647828263364524587318984824910637556186258045755647839917073618848247335420948959810433610390690857139516104429529989792259628407366665045080164955456773841623377464924851913170310773161617512800081397002748542808533010750940484051750381283752926609363058296207900314961351609447306128080190169321319058266637302689410441050896330755901463114582509203070731133929507722281977807813157728364906689422551915754904210412134941696544333357246579882345211640742685976267866658676890843626401219255232274709708733429041431500187967073822683446025101200777235339415685665516697087019261779233931656758500178560293145822215073109127073583846241448915562073724056720034328784722676152260443774542195811277374287478007424741528568514040457293994949290613240458049283373191714034892046605839811392720002079521417652484648454321115361803104430397604751426087487242840992528290024979599878959544356712562364420005273034768115308626531344614921982456795067913412325738225727647308620945596758482636477162202876457440133019825501588452075676399854730117376039086128120781244918678508178986116297245635181977672249063633692178446819308506959837521509161147641341449024354104591956992682890000582371247182609284479296721769853887976354475342518536577325317566922629796087439676385605280433317610636291510635240157552360506033803855798947592196235274055929741350547204059972373915618225867208064308269750491028965701462947351032354412368558483672891535705482763001836731736857548729750034071488627377487767859574341700223523525684968587673065433446035303862637081378016499792656557107988018290779969965849753363171394922468576990343936110084508407606282772059158117762793227216076363524171352427193395922281327987201241784078200068606543546894950043382822474636124400380426262497543815857062425740018606545568760121785888912105946830268824862889425433267371362608520030954243130556164077933593722029345214597119460225633289677885573730489768515727706027786742975269927077914768104035330877322863512012065371984751408740441777314513405552380994205295634975214278188389680594575293582272007971720344148130392470134755589715765713862582656988616081067444828349632907996117162220730798259261644307003481235023213099328162271714485080709302080725811135336349408323082378934775110513658992057996418253116688697556042153116441569794975802874761195424064369215595391637152554400793293944703633119690065009131936927737507326184622632908895590812771598450319328577282812257533287489205532307594839656375046381674131453600008613276701527223645271159947085476787218747482125538731017066999290483217672876328149208148440839986266183743704884460963104816550139090292681124384175812716631032901434792789857726918508922426783197428536206653455114038419109365438138637398236728773252575352199903610069219308121308147276076981726007163095121808287881033265036407806884606171397097506258259360057987493985912100210294001306723428211507698856764470108830068970888858859699238234027896348621558508047384702790990517072508028203997031992083116112643574274249019807395655998721417222883692767283396200249160820114391175995326089234639889390670055993430659987332328254746750281061521360487714572187841064129939460228420204208546378949731944221102844617501366484563802478081410925302748009463600610742641034105696809752254790505884360699001207901100344365538144951065702992376490991889933395745924483599390007569203482889250020414424307086680044853441056613347858851334317649477853752463807757268776920348526566817591132418313118659125162545683591084336386845320604295508958288824543301600895319080234277929579974648647038580257245678463906619863363383242582554454153509424253891163437310996826964331276258596830353713942578724058257474824908385953806334208392035337584961514450758462667422339604358456428904853126960303516614475350434587015776840985117473783661390288298038582529492991742765245048092095180851905496896207567195370042679812938107563053370032307302256070807988343351068531944577444771188945053712364728728761527548459452613548898061439554748818637077683124016613713360516301348569636401753656443952423809569143061217897219736055958062406434600240699389131159217851858878201618678904361289963477423965282467571137017032214389951165220986811349998441786900769235075163949127427507186571995462585738246875665842009636662318748115287379855614207701663450670972726250242137329484240849508250429877884660227810227212228750679670829474625202790505045065877620114460453378872687048188733362917958717166493085621183491530953486071601372947185632317635061480045184146600332685722215321378365352308986958552050228725680290465096440355524349965807500090452406094625703956222263356296659134054541191387552993590224234305423895037588634695142118047090689545228445904297307650500286646010550625653894500525133576179836804728192436061821922143032187477158619548635031324502777007035769729332750955576966066626083046356080411616291392604571658308168306323327119466972087949000116882649355992940896025409965522774236643815122508977631614682795471314232474409967364933053611894710346189338110240338116591277456799409037329750887695733313990411067345221626478115315306098176893323499915564764114457898635901347890273726294987605580710730640969182615935733590119412229627725790154864450009746668440983718705430304225688920300014364198408527451954553766283636650458142490650187676231727756612924056505086619873158670201113049651238454968776951088054512396972832141362995086795090125224578324524059460921056524491696854325588066331629642021294022051789251935406192883283758581919563503568398057160011351147340267380253973869987912518936341124167245701684567052804287767101935654006829485648708510159345101276735801394352763656595020437467238779272790579135375679665863698043712022352871330086570211586574244791031156826389854665972357759416399305356392294936227079213974748841926990466873598487740264021811748617362045491414616555867519573224005568284457167527849410098509820614848072500909593618846501068396758851108659680712557920565846766768193711659373973948912299603035112508573833562902295333205838513759493543852286153414407981857235721347658154034084342373662962857094212531427707833894877404298802660960679403118807856352686554118534687601971199729981817805179218763035949566515637176970406351048849141083916962071637132984210642910607255689216440193841926855229776747050037115935955272500220874619227440245618351366151816729824448895021946574755270384542710514673473712921544325750308670872838206040884250391589602263768648719763846874731041131693385003373031356077769589019070174898460856664148188660448018184670251858995717193267118782943331795517709482781363815890278472134522814180205412302995454925933758557898239791084827483135615173105942960406112629429547132043287838749987202996221134763306512714249362154439021444879168911412571608025155475468885653500498535733169706410676451402294268981190717741343288656097869151083182821961834548157877056060963432255878743408308176699077277462027412901001980252858982703548434522537815621472469584678773793262562624557505425818715088170174102172105953448391032200730492074995653552456453243384274019063815452608988621668703260624367443155858093548359342695012840685316380850703528910132006316845004760195140925130594045962654430308481476851067099217195493707310424316149221501466976442267584986444883545423563045673309481121132719407926488961655826085577748048922047999806167432794001178408613068448298517779812316353194183148359913398388958826216287695269625802087586208675452264478976474334455116957178215044592021446033291651039268395092057655949023387550356148331241489291755322910549382098208115139458885723305747471433402127885565554974592116955087566081096575250587422613408317123468107897249731513007845897653424473911262620067169650909876837134123041658128924568042786420617151625308130480759699090192647347415854347988161906167727024205011401613351370804166967157711703357917727739494827149518455494184467948175880372148269090271881283976092433691386564889940545155872613363353045468095846551600645471814660629061316790176529917825010583601245009235426439768483315262244396460329984045838105123270952581121602706431521359228858219000954061939170467734143092261038547127442802735022328571708936944561899889501611320235623161493941222886353672338343126439025097613865044053418265031482082519349505513043284145391144960524541144481029306488070799949055979202000534202678032519761117427572713819227904569736312012380053703651056207588154138102696230681943078373380380416538117419748266704101758080685371553965251576776517341346405419660937980424222251510570033516321731567961077443785766108078591982481365014999982450978689441968708304986737005239575611402831039010221628102853612566331717606639390784566278030260907402693792170394973472164212698925003092564269465187745957116262457108518681382710633575547086166144565634105515606673898371487362042894505330388844633502624691267387857081820626864643470283212299598580381996303576130720882357544866813307111896836800505636199705718120105601625395380617958150993588619762275695262412825757386672600921108280863709272141854349225130078736694169204947878460756246739984075151849680990412439827944522035153943047604829405334799952318724370973239476162857913794979829748782380638708627315322036620234025458839381253527504998125919702100654083162955496226396014465588051378217142426098438774142392905676340027988791521695332501197029649774194830745275408957780865240816392285011777923860564092882409340247155495544073559471616238964648820307049929242677379838899774446039011012689305754402532537013554789290446571073697169701602526235529810436250250843783194129357539925081084256799911979243341933423126798756065876474614837844682038880381514182489393292685115025201406432208340544591369714560361396203623271182102829236859495205252236020311497763430984088901177280456741980752580079137527876599057250198772881442655274147490652779034039067436624479086691389355054618709479894791102140584729153759857653646834614777701507410879413813121045636177983230066827024709468129804115769450300507535718299192760548953422198504725491893313089265945416710927609802974758755230618177245183279527012443132507377893848859429695865835361124600224448791958037418365376948773018496744822017855145017075699080476371411721093892555128595461364827963504416890582102789525117073611529015614287863924359531376736168396871038261031695976203828268235201707844602211697913225971596500788740402882580437641059818017625853033823302000585207268603509124270739855455569935891305284106543838995586681215569225647377560246819244820442836692743790953675660844721277734058654797007602900453968798284037284527356075715846323515069317094878179517281174537746458207011735384226050182709921791947395186035615800309357683817455084151162733451636371649121083544256947521159084192786279217023811407504056564775396087276301255938581785739679844917431898739184973608454571440558202213093176309936751618252958889531715312477541677794344594919478876675270907084592301885614091400963026442232984071893418115133395585479422024237042585033277003183487342857076846451510963929878240858562098993247220889701859102995843753704665284993961886911512969759501102298285424773178713647012332206543517464619572251853596534445445290756257625322171820710623135691029856087015938232905633537325660135553074549511257249081370009414389355348657248846491971839962727781383000852294370139138455684248444097615371925570589218205291776394555969422099192313941994302339892661191148115200639481054483038628258868738358175478300355272789421360144318946627580332191400678779088200214735708142427566672400984464832806352320360606647608547569380175203024644623504368050776867992871948795529693248128587981377218251655242169668281752060430108740420677666477770944916532347474072570257168838169935304830506109495984297957543571713173842292567611760858379594578088139829825242783029659495123386732616010313795128470244822449066806371704354992493089858436477090725572472702477741126068299546145307099694345242327017513410335560949242984843903078817405171391126054858458071345750362887875214808890722959969677404144519448746656552774141106139113026238661777302621110263946815247969138662464717230415538807270908691882442563691035676607278940807072935978700078529035124666080158400226719195930665838975039695076791331201752572508790899280770351347797736482804004103579842387701372186597558422526969210205755570478395207025173911593692040405922250389066982965175212531383371429490358817093968139330929319668191299927022533142233931438606977640786661332211665528904272827531235118763327784544693086256916398257168161407919116403934951668254769854374863600489528136871423781187905264261325871577696246264492312437521021320560808292825226165525577228606429045070055330637673232203718099787554511976588440066026769721059025074092963654260197950372500935367019154265725579580138286210998316994634067198050920018914138625324141020142451048027107932558897283303475462764117545244170803764446575053259316901411608003722017918823507745887989529315170195900455361970142667300248577480762639028439570067420424473212750192252172442577556923144670521689425330794551568481783307822035093007511733242686115473237531531644666630368850448215354636843075099070635014382068976000343837091285273295506627340611974434591269799677437189196771307825170994756752538688006375038295761586190380042051390802798433763049735725823188804979964762699545735680123637906886230304987037154694401530396057061157122930959356259050151421264216964961692772306873824465071818425685871891055869993592244021583613772295497292082484563273947216213775128265824626409197960331223157279077283424074758638975666173817527001355367867235853688501372793200549779633859492492266353467707531060460371403490978674358111155865213250163961782038300274344253253661972631597500759959618066658144164855616436745412130833276388471730519717839152208579920975521534082095762795596967366607736218614927367404349970784778658917733819955727515552054359138164009373218383050169860852375744581376778696706591262585232193080407211518545586804991559738892809961707679411547904661730338060771567914747347860164792821672025110193571775896040696698950459391539709606073771449694674065083261665695619770821581262313218805777808720352802876051989089407790201318425012025681962533048919347142843242900561638535566861757175745688058855044349709502285666878186541850317534214614764444292956835254481800331630322368041684095487906717404197354316288919690272094189103580043913989925831383971697205683648057862221231948007080161500898395470422995628424101927608036171500068351271576999019065785928260772635572848214655887475995649693602844106527226043634084293709661346535726192562142277435082628002957218250873377233032456482892930677548105740360817066142899813494625106306513175956846181740252830039982861274931559088362773986286758613189572076907574171925700819620591411740696094310333198580605559064045083113514816695482096158654878246559525059729883446768528759628509483614076028991836967796056257185280074109797453092735320044784945481334172165452954493330345129947012678288172603268996844041452079074653729407270682854984604934580244772165190027383697104997940579073701924266361120949573253115341275367330579373064510063801075010125153292789225040428799782030817248451784724834872223312584093225428577516813836948953264154613119183977713545478276621147850938818321108151133964613353205145169142852506097654272563269902227628034171782954822307021757217307874323616951035272533510964073308751169464384254257814271231335347649227153050029909435166632105553656297361532233029194418666051209424883501319916095356111847267889211385157407919072199379277876458934332758768499037348841168497875007791658887505370660325614163459160046502719183668201588533402902717125906681033676202252514591308758068196379947599774816629734232047212055761569126647164854980643111067182994173190456422657149196246906947773499069194533278636435618603966088083496455229170161128637017403653463617755056643479226346954639032363597883700728195183813147824203305118726312730046411686521111008365702537799996594656990419479662275973380209253146887113815024701055417538187746834284655632639670877376553224572867574264133139230913517670755200484182638368339524328521791821448372180925990568656930434864851128415504809390755846645257849530928128089385450737394229456076911503880741643606068192934058782822955872970254725316621711478053574914497992516579964363713322133075120714236805388537899615216768132489684472975267493233257162336871947554728504098728538731796747893191210683104357492073739259240904735124086544987703516171257429598316586477163530401417444562266451351653305184485820103461033033642705737530838308023053084775712481418148730032848663843492975137945674831121374860179904414773993525752351990278244269064666466932481507490684630602117348741459369786119809247295042068212135294553435599884817641427879897575462968277307419456603915936706469902737336506696301698442466292574966630422440290993699388658077421404398865200485956412689508581602866096659678833848217538702816368955236424715056233779277794270639511225855312283369218044143889150948887964339250755921713682162938565074337452581472932943385648005887815548265700831205495830270175316712067896112791926538476880973702938492300120689540154751885594529354051182420701384614995227772747183704059547115805740237802100019469302604417338679526714554425233368751648485376709150821724196966771974281860970232244966841570570864048465114116796209732363309401380388017463417212653834524236381577233915542960487050441526805460693996092166193946842425770131769636553377543711337602075928627162222346295549863142632915697295875114831710348832274990074539576295088320503264004579836420780327762709773009848403428331730208467086967141505034442524337631181270962744073344498571567593729295673266285356050813510511887245820137175200752169812204501955704853675177213083902906150912887665208332476918710905497831262375312017424433956284353822247338774055945833932829549476524550831831009133673614584146352513798301858476535391751360888592099261996249572696265152687545772148163342775443425604775661847079610507945184620068662684995644094290469958297512489642483094078971088013336401726185970894213853180276806457076387404677803195853622563969933058091426373201582969434019839243541901334065385966735210753251374753182018700317467432380601614463476301142378162093676883212320080811868818793228136303882669794810246709372194086131536898183744739590402553714595808642124985003890363220470920304744301036250591847910738753058234957999166437791879480086449837788202537242890146727021607921975577107805815997047238532403179121540588909180362858165192497555749278976149038767549391383085861780594312543146163547948094050002400591273950178967045596462499817972497785189658342661092423689291655518395378659769699358492266008960425999003619114969790077644566372421229051678944772301626516639621275710010115878869312746814753081654163350293201373435016433405674270999954412768904266017486986464849070298045985328137824901331965628470492156925948693939356951038235844921577877317263934463938176771742894460808449879986570932330460888411794257528517534759953898630338896125542487253625334458595906325343831101375197230561628422058560907268631128263903399803947873541930057680361843652717806040379942307229608429486461524915996117421373461555796623084331521586897869415766202853514437554172404645234461092103021809528360909001899581464391144154687385588214133470886237546328813553806352606761395339771321275783278479760378890046645310380577065230946018409806313131726300901630185929570334038561071268867646676543273564888094347542795572825554128697285249406470211789282547516071739222435264863253433598676055259739052017572141423484307849222758737623129862031925863838560183817909288889084552798985747185423698230758095214295009222511475157668926885321146240644930432875339340712533594938554252905120334388574717269541201356799411510971662603880827807504506247343155169395643663091402693528388395636070727747044191984590206659939475896216629369087449234365667152218245721896864342450740468052413184193250271291187146950368334359775032299090677174496300884567392021847994282806588383484326066644410492576043327786843729181269873436305707157420602445276981186424398539993377290958586869005177088962203601337640079701986862767758509377492403206199964471186401643994713646725002685839825192898206699196385996430115294427631022242274642909939749437429509260553856918538213429974904851611803458539294167020447466768886804469947478259545025702273397694854000160590534908540370203340979323922243514078483803912426483656958390771328062717142380651469660703159289327051796126081671705863698103608011518126872899995423895355937891750044037791549047849076938218119065255513937094407041016486450405652401442285138662467607579265460391047472593443470054165159211932950766627481716729104898199192283915857109036163193089468905765639572352313987370515624050396564002992118284717686065129807976640099407057927776566336617287103396849917688867620517730427070890602505943393426646893239824435442176029202054770564798382089588187766324689493359308704208997925003540722881363937682300042738068384262695487826451352536631469090451972542474829146777440067922284333117959828573295817571735184464992539030569993793028304405038757972000300976969644481796649536194965932166071614916159728484522367372151189389975171932961466236954512573206498014931482226952648708532688146504779981192623133987646614343499101910581639618722774568068466562882145068262753232439612227810306029564700431551580135544024413955079812797083100463725958408603825297768282265183692985356789765967885456544348455553654473609403104418543656264659365552261080820159837490362474707497274051034127697864570364100793991207710521130272999408423816629269665448767625149940318839042580975042833543861050448205095376066755935636331333229955567582231257683046983663835864220920745866992401099291409743576624676170201676232692408506116089513970817808755202343037216494821317361222546232070087374054871812953653542802709602703897211292537424249632155284235878163265498483387479284118594684752271837356458213734503834902211084055141604122107162529628431833978536434677011530313848430583552737237570998346305249674223376811819482024516893124347627786258891052759053066993425862611535193293243711181378414945876617153449886581588327688618151451260428084591307272966881024618792226913170709303891842418121442492751640763168661764965376029511782834862634743492805653784877988369929866598332052429978081762834616236136070235957928655688497163541839072682136631296883797588209398622046885919144066496674470353161506349860263517018942900990530806036779278939801370234794369185970850462973022007453672019266655196615099862846543667528631948150722085198174824746355273290813929499173850438033169053122125830185529918678115931906275430291292913136862609930753260200346567983761410110725338378920760127486902840387680496143985087348408929141742483913284346652549783378003438035584367651589420301590406561310989648661639141650845906725259089375628154741122266051145304792366780948139675287078643800261563944718275001082441666499473511127038758066989861281108902374107228406100886303867769476656868842942009628878565014622478841924016681267716020797717282248563084447108040937838390145523678146233240607538459761002228445493901837069034465318937003869205192234996026444653402460830725071886050293056773828066152109753599403062359505367650392079696401818015169719071315961073243750779272926900881975209089301255505830210908584342417898666694495293406900957613232105452512554495342866548468032243145839861514515319909359805404106779572862815215327903072221601061391799720378753568815563447742121736039370454452129274094077581200961398701086486561879690709521054254021703439942616196917284431062317281796565816167448784718538929699408674615674620608849492927012346777596917339882896847262050682741351228456540727610286564924886260736930508807373433874563070685274903053705454461516955331885370117358726558438142786438807542795800424792502114777723178246739174669259495118957254484684523373906817234513550289231919406939720259957510344113695217458907416511158435991066146819681396313919887291325457940989921382671853233730927850790948506504071431358048320812577435722928314902959219298491681450669397768018314687502364018833222549528748298118467764284070187254365897312937665509218746816601778348702331620511993518267955771905612877312744631232654339625724307504436383260854122840369247485700209060372894152401008776882706372855452775043694404464324642997496032029733765688498921747177690408104227284608166372788632852316167782782849572053891865757943870946798399552152789164099974291781321813377675597283653936950470651279817358118010832787704931515579798427230363469822317760996110532819589307561730493376092488834955731172099772698515362704857514613492106354654597215812058643884024679182679497444737646985215378525161008425089372794196143640304731763210016297277057151500102431742706372097967229669927157965938490714718026833780078769316759432760115278358852203837527459696282518086366022999273160157206815813932215535090010197309174451780605285590406571882238667537857502097540764267116986216717482043778453265441292305556890179177731557892687642476908056846314160783856496734980161192649098632116862336638826284591886880755417044315926885838312808587193141693175633559475833713268023774956021750001558439653579944498683437226992057509263897762287922914870927000945394671826049099545843882757185808385267575733801656382511042840855659919071341487623230250107339394601939915126593149254579228892910837548296935493226700773667097399272428447213457676572541110354021699420605116095072938121537562706738190140424477863011661801015680570685431033934150399194649901163124742916850975468877153229268988313836539875725893352493562966128119589615186311836065663894736577410863689952445853414873132017557461365923644798319459127638570596278134883447713326957093395876416417708486358030762038418017850541866397304088867559810317549788359061931257505152536158849316573948537827308256776329502807694723402261223365809330849902449110988402410354918634001528505020324068712935507350981963928739619718376804590684718996060854140159475477544348032587134316821851079087755833463461388449697469229165661788766964143771684624667588784102775685931458225757658093145722772264954367033075595072959113538411389886589359311959703006838926040757609648539377107840079302487017512286684779459088451171518224448954097243599199862686974120101450409572049858927327263378586066348308323424439433372801873912168964302773816112947437498108113002804691384923408469732848894406059549859823977952125841562031411059685190900615519279540918491117086365625320855221290075724825268020604099021025939558801068690570541821370943397889404322258454529206611200293516081567842392847439975132919818436752156583631465553487971549222839809776736293130270732542371907474772967587823744138340647862650106969236224189069423309632464676113490530334979426028310553870444579371800946712333407108814363575705515242178149289338756873318367985181270726924612092000076380145854780087714839172436886441365713853892320083014506248077867892733889955441047347428307364289828728696081977974944480707203897095624625729794562593048416397175376029703916702989733061042472485854911004113942532588780827881386610937423066895604838130473222555793565141361477464096314624050622649645862212068635263597129016465107391824036915509799635154404142121214970833233359413830562470740431554095445882007450894929381305383847689999247687162790441539792716734802654923890027778396177653313475698321871004660483619604678922335595938383578877189443421778407739790641812207257961421354240209021626261070199881594391915553170709431449487564154913835174261594446378727948338454533928938167624143145090816174884585549327062828691628014414701330358058585932627388849208903535556988426483620214064325960478429871966368890203820400675515653295803098582460760707659536206793678155681334412130808882792848301140406655164806956750223919328803155151191522396126723943966282397330355795021620986615216888663489965919472106222797365957457182795416032325395340002875794817443638780741961652969946544086404066682488361880290760092283605519294869940239337601682830300221596137863872699980541105758767632614383620795919530998116974542627155878975364898429556323900627040146731317331985222225675014047374687668082397242588460143148530118433300817356770187462097101230724199940256167879017736232372435921358898044195120507944007115519816597182933645662884602043669215428839306802349036236228305646484353123177711227256561663252006669587668342742685470508056465900966166871099838497842034395057073341014352160278839442143360708245480126850761178458866862673739229521932044522696123346717539271070631774453311384931101612337641257799520821302295491060571405521381032012836214817334342874750555917307481323435819452209592534862691737429010150278401052039955072996767102579015320878119756042676298152284404251048780592361428786626104804947415368930224278277783615138125475354341038666368150941284000661856972996653111896769696280352821794871796063682994397519437058540547053894740407910270878057699665607957436757544203394461342798455844624702431314233163493797044270853908099746936320302445265265433462328725129842836005729425823638942791904292391087384884531346697779318329695633298786026101735208458309912155005250682595551063427846956825183691906161941693941159105399707440797502118873487511903624233192671509754234559674458961258282554856459144784042548111972767968033433137013009319255579268764605053380123946856662504500765824652646755359002567888170415597444696583015523888854781900246046027855093351421977447983075888297554460840585653165578544248806145721356384303052317911842082685839374811716934515572119921182861029994612325493513986349459977270609178396732797940877097696796548792781528522533386858899753599435202273091203703860805904486181930499694956533055331625533011499303071500517539228056877608478359324410229958755785462306480864521865854597158704159767841821192044912529285696031734725574895842185256743218069312392258560128244692518514667914793827105904441797686186440118980950658380470722394901392924150785813502435320546008422697734413269087816674295678825237825330356131049478526389264341396906310853760151535807372326335889132545407750525241924451276277922918056267316993586236118497362452624565411776493272084151151118326936965349993720063244604150247748593540623402957865222572918001801260467700459895547915755257085325356389596590541202289951757268098907279288006294419012498972862957589573848540666512562677295044425530554364076569851945269775663923500254466497543528925583203372700092652020403495831393665092613796698315565088381227868622732691249991171585344586918653543816010003886040454649738115258041554241052610483216181643643220819646017438792408166929043373630793165492980617475225622684671597537801788927082194716878806272703048250920416325481908870592037575546854789682158395503472237170475589594189030108513869458770290809739008075068976145339509053386124084520997174525229940228751275623971671095811359380854584643166853448201740796157285525047855034979509635688706834522240484925895715669367339631164979022368383152491007118834312811262836750105604340305247386107181707942305135875020473061046352967746997406310400802716197111999650794352359127724486867756404175815868791952538464222996877409279798732446802684211882571696754555889997274516538949353677004144674309987703155915371557699997578985282393718593147800749419095222615051596211401913653103713474263269765898138933028086973038072478437308405420635124511958915452479408174328754627651328729378450468074762114982455566056246099277391464794905733473102229338348812654035971529281426033074470590390720642671269739065627921842006946562479653536395838784304114910506511847656183730040851640276341697691837422225049087045839833319821661336814197351277806875313424141621425117186058103790228545677303164936434183933947146770116311524977697220149025696389861500896550369593976641427536244966785437855312077962579859636505820154816374714260144135866027628163725195402077424897156780189040463546928130435657697051667499220124707353791628385519109897749900876581765204332525368160539830086298231797029212904931716946549312660532043426611245910887870740440168731205637344962918328439908198050882695771379453909578832060433410820204855929561769431336542213298845537301102951776133216173046157205700485675140072980532886872851240282074207447849051770320573176027387546258813797360483034865019891819139677405077445858821334116966284802404917121071561294959508242696762482333264182808199042009780926230844301500724943656490758826935671049894915788148335125336322345787286046717733230509300310883819929299176912269296975774583090232332744320886188903509206227279981372827500993945281474701601461986266508488464316829898706596966659763290318370264739908550944975553517280631901526286198746009048106092756751715090619884926195561605819374023801648768299178890303932602155915629488455487964704787296257162641457684333715206022956621910158813503243557177959158869999799406820424770879420717617520848777529722599986015705472481854543507659431445985956752935110440695270469375650917483484021736171093225316872721692839822634559683033418023050285716181101048838586472279133794699860248518548555074384619948188297031864838053711579093731766726033247760619031187734218094226049272987826261727671194039096000268531885386548224923762002452240475515171692164464502872554108254644766462087498603241286436622952796569437641677571286421658035140978250546362273950500023825236560470918715038338391052093890134943317779025663445860014243797419767783571254309830936520062212638542492697158483772297663245340253041674618983285658918640379217569023454592304738570282559725794679926860366248346200221689835223614849445498789255327522461298479071846287676198189401765934114222819124431629224414643439659135859498338062667022121165959564739225172488391957291112499881102088735791289934677509445558226081536978402581175535675950158156656934177622065179238143735721226386110724759425873776574876671516777792445430215923619756154896987732195810013019130507839947266612363671312108979228881930127084431625835925833714194696401868962234474779393424510237779067992002792050059564305077121133487760515932412060903969133714584373074073884500186571304188513275553991689096928574374719920026881253525296975857534376051276331204940433938561109113666202441924874374736762160049615108443942521501657943079837668860401225749199726753824494268733980102256772088481117657886717636301558875619182879635758237708698283860542073986049062823923144032728159439113812036317020765614079493345214965111456112800870042851272083746063257454252549394506794176856867610977991575604559509853389583050077500606891917085774240416833710691173743353604806315220555670822205224904998627569561711421685716936322084957943101928826344026034831463975786651711020831288987514004045796424660376481237909239929007992207165428389335619501339732092918652783156160893630392325302879704655871443404897290056749635722013114361141546926830083961023870789361500032712964444276056727091540466994089679963726233408605450912256421495150382142647698499304003360194020906727451775602852697312538975014462001473139217365882420416192422225926966588377850886240038941207822819006100093156439738407579944780491273589879266132585820851042999807866048542140286183203595877719703660342041747254679226292901600411395241757326738387603503749062852767183550891284353282969894014054324144805507119885998668181591391294865422847460706503491630671023545415002669921141533746729903056424214599426424364746480951780935927235885734670834193128872205225936347666209573013190093052782884473464884934847603993771918794602159628493576656519725676343109206255815206325532166235422182778168622015623282293519112702630898204569940667814102053321816992345286602491195984197007948103281250681783240491053814142202659620202380820467765145261565738643946518439828950555072137412588631036578445542589032092480187079830787282753236026485324318908129379624181897120599121333169262239634804540512439480022100772302712714641620886488013882500998413340123696424428729302569662405706805405789524525950886619279323994030793574952310452518810208508858832267886255947750493993686956750774013397764182801387772412214841127683990691806837673416765578443513424160933025968578285444190603329305882981133976885866215696129507877461939089552964848868010121269347455302649185484049434945999326894853786975370927725963693955550174562182283241846839470594462293428731920713320410701557978592604009710774578064004191765061612382220838215191079733303210878062094340376942205847172500285909207194071241756157962924243410435090067491790648726287420804505514679464113007220157418767616199093272148561105146863092822868606736050480009394104705923588343099569044694160103439687500478900004929964246725998013747956130095269021175724186908241887806510219431965802407459236428631453301165587371402322557485190173388421919294400150862609615381835686338223267041873656752233866630373239504494871510341938869618959083844727849469928608896935668163326774681532011855601513056890988428761730048981255605941111996168935464664037948827872549777290864144317356138588734551660214599758346980599864424560449115356399822004690361737294293116362923378176844480012527162207695616810698135081359261205788730439129923836789937555395287753427633641824371010583697599509421200694269341798958797245323956214035672077609248024732304210871197567199926330434995174536840200258776884614378303725449204024475892226328687880182881349015896975013630159576598410266835968934197205213257788940321854401587256351924160335083522676714438152798563800363239405306709580392894883737010650901967567812042159199965007383510791988531239976576511189143626632838649880834241409542055392389196092852276225021962407545523916021122436698158857505037909834238662047260088071376118376343952614868150763590248805517445846958824876979751832383731080147392868682016864306237103813282855807251138096533476066137881765054207527931812317942012013847670658088958923800547441772645952601032321246006886567987105471392316598433491373381253953024168377526745776952141024560064037350233855498464361269059788721432070773654944054073297560964234936151301959091113603262278925582533057918482921102602353941160874259847161879345697861720417466546282977879049378492511340156347211051434917767723318107525280328334499925345969978487346728308559063161146894871098024340781762139859141447086952887667173639680452811661418611951979907327419991176373724443180545349418400061673926950832569641751880156417096240304396079238118221453556481913085815630900999680461609646034212299221980275749716152653604519772482914611574031660908642064001464833832004766578764873003474333164196547481507500420238973241496623403272254785765692301029534505217104745755033428970357605060303914338547896922071526874208172394644600307616489263160269089574180177102167119153287139605270164272996927728598947289650824516045354265035091548669317049225935642854406874997123685888258014393178672974920832085437336330039503677269287595325742675050052347917424434369067977587571456045373859523397690406047768093696309613810238609064001903969775087967475302790507797241762861168236571650605216647820462231556667324279154188990352079576826427748813269146969030656406615118980981884088094475437781731077232299925792796925892303094258697333376203916621754157533799332726124892489094642498362306394619029038264541555142607796467825644175983176799116069256475493363687183413205799874775592818242768980264965068827294106000629133693541951646005431986359023629218966425151276847540775680638730588798354093911807599115512759051917601240077163263910667288830588731148665783591807925382769244921861429504645964814358949541557641681268529590990323765368965022294789571036139678923169221939804578299808844346092791716019223592177157422307378858921863302094316961373462539096518988533281184574571688177746231625021110115564286475012414217492777547759661103538090432511969428140296445119312600415892647327797086864643702451982442499791869471301249051661072396452801143641391534473935632810916512906086633894061189795704631164683924685427945438336290872670775849011059350350651749078942436944283634724335857009054044033147851269173180602170988152977690537605408676376078486700666399152266970933332174329554393769004987776211303335720556245188203177564167871928429041211998576596813394935038427456212152786197193225484928616979411919368327827890281709938076976644180662704648840159104573761712668877190207499675259273172542332072667105963924048624523487935315883481520427688886139290516007512377767247308199007449108265095777721192584671750303444620057386579100360721298293569207415976821873348625713831110376319946963217691534156286926000860967594072909603002837226641613056626130295314409133674229128531413570859247641339225158060890352475893670120699694938482687731126223554384239846822481079302420122298869860124719166510972273105549490227283246717840319141069825816401220581150108760366868535180993844907474235924393057842352422861583017820003818019354575841014642891279589077229767395421935709875588627913309956919707855830286362149839468659665790685057777356152459741633564219895825700582013695756403769436952121516633123278912822807382121518788909063455194804418871399543692739763245039304009646978769710715793896649232862337917845199531333157301181874413598864483898417728105032411885353614690015346716723228438635373700044937299947489673457111576550666058448909455293157484502935467147443330165531839247991686338831192226385712121566077873633257483292980960464936243869022284935967789871758237690313696016314405998395046289281137374198704718084275342433874531984965807889995917225842951512814373565905303989097292041917036071276266080641949289455447550593366490229654544144009476963745065131996794627435938359012904329439597858932576990152164950504909697976596228602988908799521871363672806574028899710036794438574505405522791519733886133493366816825705305480432635806368575117533831037618718223005682851318840211837697295052555182763283323207045920461916578949573426854559902115764801025313552302891269984013995480501287887899814705163730347389632465333131453922653631742209159488715320192682933110809123290547749335904555392256588788717634726504634404196211565114732724419626572654132704009101102551864802510986998357814393087851926960043059322528414161071397933452185805488440974729975515145494426172775725164822877036536468258929444231841357365934182802964314469579430550277279249097547122586497123942983261202832896261261795949020808311158477542413372785417449362956215077335289091127885975313207955999880794059928399289423551297504267842513010882372835943435864557034076922576030352029350966051117582522113574960735509423571923736908063811845374027041207455943430357742801173476711152222383264775204917242189121612873297395246065126141234797829586835783159025418918944397854323141989230093374436700598025311468881994106673420335734923255747491325111177762273982918420924079639277436419632133930572323999131468911728675453006399883106110617701064391791462684351970307495616448823784964627564668157653059369267499990615138934337162460470582125029156091436998957316679196752700009888064750748912784640126111923890085521949005271036780595388555960437819180817666070968235123859625519820330191908936667370182231971605575071898854313823429129394060961744772504311233118574274610184658670394792763386207249995061921745518133015565075371507927490525435553685077916247148143849915709747754481580513265715057613022108680984178895124737926247341548152039752173957801280230615846385288288641332505289960914955275715847230727121932060783877114546685475479718117344321190614988101403626787849289873704397562530293500988292926949766712399775373620831985968688191400576593741615565402181932839125767552240629770895854617131703874442043489292708669249305644410295685904347885162653941386406452294947640940203773793337661337963625796525229991852910458243415044989107126409966418159146622872947621223632033027339227151293474346298656523548930842072987028506307825772810119421792026500868467582344086957003358182742412387001949928204194378125253088879812665539113261352586231935284649721105347268651950553505388512838172638874692938550347929941902605688333715942129129751684341640018971975748893044370506656316036512618613799462536536701003081957222595002463184523534636841289711552718287522424138087276523254115322859481195388892605616434046595663621684526851666427156213911834177045072731501075387317907699542537373896574419762490039692075715278218074375128046432450821664386442320112819649311669133207365713416434041940373457312744484424145838291656120524417569539899400561448292991872751492848417347684044657601002153297543826739900321025151153564681197892596327199454396782344639503181859661448300375151000354443466893588541283791723688597570423536966623226166324762862669092902488988800242403894824779934891617504958476543215864193971219300710603518756294604006684038591306639309994399940057134228806063805462759405759525944053489032385562570699398735701286008723293106490715708346994530322514171166357101323574078889894076439748148906351327547087967523626853335267315094395403559374719043195128063067538846062961802460803323512052955472738191773082684649278371942964012905872600484705927531870587113737887960475940581209118713172262733796997646452785007017266686475865553920260026686170508825963081712899356234084375556455710913047981179569939675643393332155138265380374438443963326477646557302427611484845663963618358683534565868800710673725988782991665728659055587037208096970529305298052330377250504469073012266040758048827775604439038721549961331321760057884942683844543130287171824006724849879253714982162712048093644808255731619691699249736520371455933702108550412090615229488569029109954141327909222045244860012729336439265402213881844129620629005230792514507713227087867633480983362881174426524320976289429027693608879078468807960366821994233087027837690070034647581456077379731143990761080293788358621240045770010761489869159847731929272699743396198228419298498532766033750951451103193341617480665953275166802535257860402791469125241006668258614680096917866221046806979637386472774027551234139921863835054391438572836653262624105958538693365092839525088866013341385274965783235890444541020478765499157717403948514609145523371076419331199050157142910300781545937662052400919481292018301718411682870606449349613127571195770838547940376878093472499469390609582281876542237029938499779241711119019034715078768516315399574835722644401755621948637476228158607949893521907108006831185809167012646950655315379867962158461202591772692466427135061447638359330159159819229293273021864206240523834754926141210286817336145774683685538119808667817939389488084287663345686505842849788672854301328828442078956877015165079169033010259290231389426547926089813484146451656310326967087321300269637855113630979210215125004328085852810672203864728789237427717460053455213160426294385559623899844648260958905963101058650179984418613599018299338600218039569853734249009181715832583780215929465955391044627828662991716207899039134150807235931468341612464412453752331970952171869538101522173323476874489323436454463158340624715750165631960025624608105216720296783325552393058307622291826588331539292444238758881940245228231731995368920829961986949313455014965811972998507751856626437521543590678745668960383097374624216568111192271950976056764008506151825084184874640013976465712988204001446883251848754590673712942572890233555195663466364313204451839620667726633985771450834417408186496601596625106731882728380680566754142540888730123842181710907118081703858042824243546176444513241315854546339432188370985309030140755602778487640898246701061628262438483761344034285618189366093915716226090867398900171944634582788778325009113444147052107209461491487894819918856230661438782355248590877688175566097433593429016029886726782311084401143253944308758328310364172231234104191928332266624645328229281919279173589001607265510875404744188455776800658483751066969777204280456313493174891040542956016103701747473682485915784546214669404572222367016554458729598914613761360604679712127890782423024215213685901264213228015134180585705881708991795377661347458386872548564937999457335728881315113740481594743886462596289567161466644903742788643113211302472891165522266419718181535797313188867801283822959830649551460761898578907440913498731218743288110568713613847791915540123849178338950152889888829120891234061632030634099507697703019252005712790050951391477696383095166633102648408249607623804522592050290276161290979591933524340112604944588437696238916357653637781572981977491651948085620245653128991534601367365193307528104234102491651259978572806469194341598194059644436218016577811948962323771154130705144574964663340381574910553964359905467759585016321423783178184411723578407933301691948098061307066556099195872478802587272388882223225943268997058786266123999816550115551606058698245029054049351257295039803174190921646515502153439536187673203319457051203668583429168820042607327445787308222388156246166144357083497505256194478200259658799079771858062900141536825745254736848938600034497644527272856605678169159765053716780374714340087944398336323418821486016845964882702624195314832369470141626264846614564161915424652687028249485969040848155327118344975049671698680587360750704480738514386968930350860523392107371552120437456207887148694060198448745241381301423148621460509668151882314581957520404220006999908758825496814180884949006777735007214162274813246318898754742051592446475697763447198423533816399169538678574575985192540670403409472650003511425249229061912911892179133154894291578522197615494197667662977144119632915627281522523480622858634304841526179998533685237722759854644196866618744332890587905967704781396200399196542912847827096822029963947314835163867913193867972131246714130709675882533984949097670820238397385387934854530194068530218650945935747883554746707417392473037209669927260694174304270032339603986135868078284399305409553411696285156171813580609759657222669132183098593460036827392450948928810375866014717407889836500844140275046787924940631591969325096123316237398030786998765030974309923857768330544029414201462009063419930715210381050711951681116956228875577080940553273618436659356409520566040332756591767282615221565084013847526721245663236407149457005689328156442070714821152770995146088863048256495760681440757696709626832077147890153067533202840362661356619197220551006659355783639961890077207432431776504570562649498945512472352843310165589111500004046647972353852780799987325938840696518551045957341208246349445110016018986218165386832029493294067670715055221077598718757948407071256938670822326766035459711374028986108883489703122617965448962543278913378070505533432568746711674470647763376351239802108064231036814027338674133916881618174394163567140695522995843564513466257542701938810161079144154786343807389945651792867414018783319100049278321928364716615044772324240016561907927634911185048804382674424362529025852312751233906682305855165900239413450916543860043822835501746785217053554435849599249774930317340199380876779159055239782964272017909720672488113323077973857709305780076934255094792768851744423799291963941145387189997511123411512283384618414012547028945087313846700203187125449983020698003049071006352230527673817192367639869433186080000938182510008014190965763656798493361082405700743968619863911083251004124448547238272444057470257718001470000783915393434753043295982553219385999107698362862474945015546370536333964476786343056002269975702521328158001950205538410414986885818987833096566881718983152439052006840193820028804521164675485611542636844705669508452737809667646689692119213073623967148230975858959164353260204679585449544322281706687191516473606266183406034268126130404199123524236371558141172383287972172393984188326480506519859132527074843555472340862444655545425259433411077336258578074403425222835001762139457799611129810762756842435571218413321530968048385195914928486957465878062144377292812322296946183471741613473650160776937157628124802604623983406480447841462246216958249874782040055016778656426076592258983049501304596355356210924064051609368468765690165550814456633891856407146416771927809511373312906278871016652835506297767092917310636495354657112178266356934928294505048143258022053379505621084607693554837281557569526799632481219678603326885070074848760895094382691627720727021490459589895170482887158975527868720343945978500041858008037536131611629771690517139859816887503498210471960550986469008321051113028269096420841741248182357775625889113521742595279062258706370731601519550608819977265850680078197625231329517878966629614152875453395286058433374892514848314725115277388676835517057159016897827068903026770483126389409593672240102963188616462585100799300570646963517751749956934975958742065510742618686408876191705763921721350921122301611952134992357920312083422997735913147196323947062822558071879782964456724303982827008278454006580669523902666425316362278464950804197011649975463739698315773898258909962748019152898712168045674997007666978995814763681405393827402906622643385788012355486116567430753835105132531573565509664675474770158528089459285223774886652568552366130578530015614684802612581632360309646583149002194816375695247464501111633153632366589299864544305236653894520944251452094063357431090619084689953049382327214026894750575246995070280014638960480286339418297847488597222124455471047097866042212867765025051256793562682251970109361844371198845944463812856616601721523061726737748921264266895790632909321980502991967311693842261239751911358721054252285205201782456185557142270143458805662977997118428243602678321260058432296656169516343632456537242205150000266624582260730362908498404889498296221546680065506540626404120215190270047484170711885435766996654088514386732654524577011579552014446903013510415767967412672871730331716558967573922869408900716160572669275726314095986127738694417712563881489981957493807126781611865517425329397226842983245465581017425279609271474425461032459980542000315935703281740156833303098043264596135633297809163528826598587655637287787576883802211509108943180091998094969359646025075258723348189944231776828009875661463698548142099214094811040477050680300700818548433451870634233804408511051819081395927958761436809776976448219504279916070211876827843712175687401908811604981431343626204579010965568761463440823777315786693511411497018457629687399188688528178271367867518088858584002646887123081684742687483215947172599376788381858818056273801413289516613806129618779861191419799395104778192617447359332150703599130592490927902440805867315260178948879808602564681537496542894874922569062149805878375169879665727699785651326630409378758373148833527015316639528369116575042905215329424413668788767231450460884953768526080507909178201491469618762405523424140398489495497748340079399778566148626466069070330736060954488150832334325021450911465758600193111029398346798581545349138784432845090118713495708461468341845165862621518851691674518970407488908503326208285429271447354906569643992722224842730453020182954216417191065476576536579716581051606992882579389494434999818660621808749354949703459977571109961182605428582569584246850066614648515603582576811247699974934909257141250148302246443473677985777848306958577959731350300912532582757081031693172678727809851295811555752189876030833765142772210282935063955292164855156996137584666503617934542497048499031835262157351539344543270482319053269323023159107918073012875664136806276494740585382258063783531249607611667451266693951145738739062982651871548678968926421474574788828109983715723589640017448853879985083760944308297778666335674550254012183284839215867762009847020887492083678888713153416276716102682311795760194561699865664776203949201418713547825623308879386353542280588971577688170453833373205773627624193367581681658201012922463081071438524670299176718488137065095255561680264452355293187766310309224250471051105326930260776867395212764407141107068758433344258064409711094794854479687185661771639194351252654164449267078227780765041538584940704402156265397979338152924087081736882360047532308237558067688705036990667453120890508605648143802685686591846723474036373194713468083534698979497131747663265838418566485209964454517790560810650578149083007790976459809650669140027679197853561441117423333380455993938857886594921603268036653616736402309075257253044492657578047023452750858772262525797764175417649934490955290518198680559153922325338010531810361336467454748514881864313746826537458024224816223915451081186876262457898191694718109899786686781630640951473605844013995505543935648803595722205233779919227424108433895204872776725295183203910997578408147613155558090823089681555094670159236483732994525425319639538207298316854554542851066939518395531872745466380954416782650547852498971453731469496312297849588761726714068104751037471691458599123297988004987681212271506119222827717175947172941102599829945013842973266494256884635444024084565768240131035983174498961591116345081555316714033030710461288196782247099580345297111766271881713150356889692851046621310396133474144137322454689078648756800476287700174719586620285369898871478841324126987118225545507234551678428052033755307465098555453174551569764670897914915396650222621917843350043279133831081587713332233729584327605954629391333355026796633702277382625380649100783344715547768134923465494220661724752500001075662283293300538964562620457283424055076924261668832561130189776876773608846172476636472722974319123583668986768351290320427022438474448983862559484425798358037509108904260258331490084429117099248877132074050286693647218214588716007427884737143244350983026480223618444309629229615226640267125100047157481617262197524294042781452962555414834764371822632900134199092928612801329796426610545003771850909092566477244421034016732307230637125874032130411170764885044538882591922917750144462578071860579812765093120294380435695565777550186218577569960589150437520195701100542220179736657357835411544942558522269874379758604485724715870412798092141785452142425700926337309753272795039093562110467316081452378745126426939860263669032057292820266326143174864208732619645481411746660154124025273568781799498052127914272135721456077856257575109891187420995069673024407547465269614130630851490112860347474739275975524538029103175335088719060411873045461690046636049725204827484288053620023424531019232522351790509965479552377610296162158566210336833411149313428990354352133389611191900526956642508553167013329497538214294452201702653081564528837365099265292917147478739132211307985947654469682173952180308201444557552277309880140274788805332835994772458578357388666217349314813489334103386041193834177249465776340804888583238757906906426974432872055420705603703925100450804881679328752252409817131963946753054779986927877570280876357243438701860290305082366319373588148054193287438339528513234469548624264153037783490699125258986756680792197391849403368001734556060369315807986890613218209131538341627413989511062380970796990253994018985523755264391215386303095786765513953170996543013229296485275816826729249447876546799483403453272513668000915928259690723362715491702550395561054487454622819481804963321481472108478245730447532764274550502876128279265009752555843645507813957353310069227371358609002887677600417020999234897869026257221330444965287439438071299233702662892326850258983576573132461802880593512223248777306234274630606002222071648703442115797922953251254910935494037434706975297225586379492625183935575733245197310447726614161878047330539910796507345102842049745566303230479079893642162651139375193768344559695410433359691614853711195667502672146951063001473074143269477589352370515427310784019973769142010479512354470478821484255680044585426189892030729170112772865436192897894956507915438567955308682355786370587297921257536525764171469403469719750150572407155383775263836133783289462817951949209080136903822365022896943634716892115955042501501316589465065816641489437180887960503338166320684256741571259200703256341085796823808074578228623803813589146983191626082707202193379093463742823010806465899931166483515755602937647322160880624399808267118748510053004563650815815940535700717951148732050301865972976517653230552690213887454554321818510262604246404357873431130559055278918906040128426073241467366178916443870017809225715679674888319668074390775591566864084308117724557767866187624555217448202272446491414909270441897422857081952732811593612185098796726644182730389130115653988412348406566418063246067942076674427384621070870025528922022942439237348825863646070964372653851838039226157817432094066688077132345419517837693448466830293881777206521654426073095705625756935709576370323790481331031200673285955956861882145937285570149343628724108354529674141427588459835276729167807977932568299585938754721826468444676602988061982274732182673775862956088958417197416036003955627891406910085611213333038304740551829602431141751651570266812098648602477310033408830360593049566450425126493528432559918141811115148457687911787419720517840342228979212238296526131218583987261742352665039971609076221937635767538969347143695309817690559256168947385087823234936592720327286554902791473741519244821658274239878339555061369488423220383765254350820641518429357329804326414459125337383858787739462131132346126943040399900696010982593073723987653921590388260952679743228480861504379744189928987622413287738556993574763632727190395175438822447442310312447680929642300742719565434657307052884981779748172885888442625416065433521009969446599953617277344299568269610873640644482885432480305803994000270882202219379756797855848352442471983119201370775134538045542605977965855356082085223536826386504921382943369841118115742938866502339028307228838312327656607850406053765150368120087479624469961037578236725467787491568020152611668675416602285267390007999927928606878464180213015126630938217334046929552673236400519116862038979304365792089298637729797354627660631394623508292774368166375610354982806581021500043418002089792115370357159157381047432983626504443638069358165277623273271925217603772014477032483539305757211611148823176153256426400483424191848109484314814904738066617113271960018930668452205965124673379205526339416657945561674971023290599073991931856009624563784409901620618038550494645386791107146075302863982348557786087231592389788725963979350187198492358262282621729041019398829874905841080743207342403298964783122624530452893796016482403220706095899805100871443603584859019724497209039525054255543239342929794111127597831959534653433695454947147325048712020083735591869051959503742755206324399343040005218468262580988294615607746860372580861895623845831653900718715706050931761214231829525374467246348816427749940774768179516068731979674608947685346280440517665399388630476871468900414475975192521760556626433185831883119369252286379936630416564555152065435110286004647178041393823353758098611516131743223098889297405230564666310254916630141078555412254126726971714644118621988311452373259154192357468730626116245242471538282502589660431007175830578856790542944487589324354007492808536305194128454403117298287672691412265001996549206991203322578982419616000505727458091149470566065421050959005611141729477815610908229861101846868669891250297655009571905361085881245736772191766825658511234477343564734831711393496438375012421660260474324877871746633845833241736209637330305711883648894848493599203750233435186888323068705436134265831006289472919172051349029130222536097032820572487008397171361284606449242659261042909544400355137238461019597833175557231157331281136228517402642859153904847604273792382753218345683902447609172572706413896669209380261192423000368083460590796280410260701792647658739733791836601642970456915298230336501363860240660079158094796597273467301581821122114970215173075171022142962616722598014584125555039497196027197422870102935225587226126785729471866088855683363026146361471553214814211313376220651626415738424066344403342713448100253102046550789886797700805007105649220883596294413411060989710402291645121769229154468817945639248377885674553202096874722874662119735102299880998864199489164228790471052140182269937167863588011946322916859623367542258447596973704847281059916995637193829049128374174446626313537871199898529451964095487060878887321637497552242016844565253876252863553004151473353339072268751768255312667555362386604048573362163807544133828333038346223109800602209423618900768418346780558104973504735619068812544151741274839223372505220370095282783975461493958820419546555851539000695595779925928475644424358079284364113272966568749321011760300839341523985981244183666233971793531349934941647003713591428389745348268463905013578065886381406380399203697865381487415179132438999476700235486820655212772672579104753584373723226340435372503755559573874092537703506393894352462151087660932091718479254941811675092559482619343640054637656503079251308917695720644174244365373580644392023675382918198326568997565334230848263429070077551454608065136740988701893120122446260672462533575532297031761866471913141991523497045317273619327016365022447700047259499084821703506884476529571750983017502663810331340578399225934932572204852454390099229696939182342305706998065591246326857187286173344283788780819172595237226748897059812082525312871226283415710348330414708195971568886590603657489090105175992124822288312157783313217973091305006650383126806977997919122335324703695241095997059426768855276280524084595180953246700467871428670830498373841413453617163504891381070513013882295347042346087348709873559520000594539156980665424896644846239888202039494595284561847950090647622116026147716466888799513754844113061516393123975822383788751797471968810228070063830781328811036585336222480660228001954400243690650277407297853927607897574474352420459137104846342101385627212469875528810627104690513677565172543154922602038278861224929516182556863323712860889380255667851215364732908352177378827475035516355782783052388729263171546391984585937446057146584392137754532465036346959173603200826498651734346350648391818523960708377283453725147513426941222534743830361172077861310731486494370329370688841770795933093190003070450920795134642691841059030547901093027289139693325039132910549789717117881298514552704618561153803106774320065577216366472344766830731934906107684748512902382372522339156358844832480232541546910500325988376320205860661040282900650429835182395518076664478033152741825531222904130970046080388238962744660074685865661261771702798210402704957892639939119763069988027758650847108738262376894720136143386301701362361879251922048522373828761880629187552680318845368860982814049541140995903588216222878779428154080207706295867255827656884073525292617743775599389272227426501180179345574483510782536680173937354437829692402470785194681169803904041204484449487326547724433114329570326867545523412210189531699296488065104894170776378831627166234406005108190006452670563258634751078813593472752815074256202054796003029369957213611476921762053673082493802231653802781643827842117799239439194189572330712187611682251977492552983790149167461000783545554286638198304664392511347063313291381332557715084197963930249978360521941695133425143972719472854170190574500158694352178117107851636983117981601676283171060259393145371786686978836755060180369491291206237612766886519153776982005222839583367735799360138609251654318207423205934940015094628648110530427311104093423106474758024294136018506932330600872884527849339121782482084798268823811324906843049904771639651813803595817757735403571189482515236721584318391313550756464574240731527469113880344299044525136782967754343791430499740034257513117213781860009765111843004154875651928675806861618195969633142264956052588667808431673835085916463645011210619257109811981781741746512349587319875283509520478117403157018935397632817285651190926161022817040259073217080340719540897083753738341933990702944903360852156644562522243664765182751371353762683119699649567234515846509794053448628103237978715670092409017702801533970372210302937668593565928391309894381110386083138638800345098159986910833314967441452682576735199710764122242958806343820794699900531964921429364953901392312119432350049377752877365478346992037316228149604292414511613808898418241204503370290646327097293681871766850713395309644120405958184494830957561240645929306370836981235052477241677920739202190474352956160414494942741162052077748613064549155243155555413258577044232087082835635775424011160392767034062378820060640633024612117463704237314840677939554446255677831509109757456422156713433700072159677267666844632341266266878847561637778351439242609384605663338611102293718461296833980928452423816658179492202659224542369588630755300084430093930368745821362421276612263025716119112188166774661864944464784619572277210582795750371300218814230849356778790077359544445108505256585537962029574734436091657169354078913154441917335608229830440129965450340312263242482833322090687308715920228616541218139280456969960131992582231924641732967589446320151385824379402016783567282161726494414335958560880058037340742002729070993809423479412821402800562323101855677800872258639035656287998292345161515717708048823773615092555866277268581355657353223770933811614051981702209652059089424391512386854431106417781859260731450479104635541118626031048285237510383566852916423667506676181057556243252211012291972260317610107015921138394358142809495113420468118547988612283764870734331509141250130557210491678868690995475001568833049009725579615549330723316299510489758085188078158507943143424070462067777629769835900884387012051876179523596149849861462065721726343760904259936468235777549402950614224874004340315471488352514011703209012675494460965484747373896256096229864417776934862426363543961897835610676898238265917217102873739129796794133510767326992827606886936496521381312114871670690398181337583940110478916232674287817430814009410513923652306893283886053323194091136635976009831131131510670973137285491371465283370084688653560346725696344198708334857590657677819930417459060150008170432273958392968267501206183876923152276209805255260638426771196336306564274274108205487189973583614904608985249372926200981173356797669944125982432329337472581765461208536519496657359799239878053230620415906715254969068634727865620033082814142276158948407098767588720485096361029708475515058047382436812106130849952004321715272942619181403612179876329645404012647961966575891226988044995783374867029859420985807319619921768744396866094842270436195512810032571507141164506182519667920961095794105636084697330137515788835426564057267785997154456337042814872792290570698145781824200955331594109387020028433489836426225838210751322769932764988628620689408453962058434056669906683814494167546524738883392324078586480922668447728013341006405595217143441642470949245707946794861700350443430809995178671021260668913969370596463524319494063289381044445546340263859355436093796498800580799746542738411896600749038912833442964383228618575984921257821435269546163190519006396450555943624945706123103643383341932888742977175256326668434573353108876016172232127481324417014055081752689862659769715929629774960669696692311519396509784921032326287930130556134808417155830197755779246372853661153368360037657823659059200939717119904521932868686271494780260043946198831865069050661501145404002257420558005206838322487621878219877953823926989574698496614053190471192442460154358736557908893947958896330703407471483783907873226829229543859786381558526373643121855482146749949194029936610149669244336814758867067105067250155089369018460897442377881763865235732722213788657785600548078405925038163119279857171118899629631207415460941530004880297890133783713747027965470779058248422426836939136696617657396433433558524025216053670364067505659151635477890316737357605571505133652314590793180629917126192000290543449415971021919352612336899253612181434218802762516330904592058362998495999503719160738246407954190502293538684101201243266682177327046591836134684256694665760655887948356213563517112303381177510495925827300487784764249841125969764758024084138505065653656364075558867133407212180041883705930433861874193545699255829982840867595239626779926869847559288505142170668446191302219391234132375698559833787191973161644151149871496208737816928414671808828707076605131893844962673503058272213770132620529380100295704212695912541481690062178789311578981763260893614334183632547096694009514971675970619376410753962696686286603730328397110099047122134751528540161253555119667560071531358480693862285682368963533930743771825784026479960134712822450184967882756706598721094557532670834225237143113903364016268701660628835824162199133635572340562363269505435180847610553247557031425444719879562509990373505960136668186798466060351125447093270340150683049352497572567355861202187376304493696168390238579739231797028513379216681717446794512429404904973249189188322396596934970162690934383721068990783488247099738754734640257311748709484919304509814063170089103446671008983646401468864510019104969467256064350259349444292150866587859758348095769662705644181777793001283898829550062131834491929584249338940215763496830804231632985731188625581151577011062904267784161042088614658688070713176511315713415736955366447303403276131580314413959095718980894360651954854220036787856377445860324412716728811890477972698899697915436377476931171082283340439880782025503748025548917880706376961459038239114764013719979802088222543932323478096437376387888573976913865948820935569297805877869151902511351538460417852336978517700483483175681167894297049279960003400545960862025431423581830178134935323571231310570026774399246941566064288247616066569825792843787075929902609619952583621891181472361914367787876126592826385080047897611517321130255015684533450782649374689615568893095886200375965780611220315811063317988860135206687979845787283532364859834976571892655232782323638242998694362538030956679461162970849126841567495481488801176816324372195550771461647222966673643869804741653462340475408038774613641619499872328192834968528550815285644635946204785086155252691178101619710865985831231606249582159916425102458792626744706058676420153243073548433232166412338897734365420393854039344821172598575457863957494400576295536058304937183009714430318869874742799065647316929157103577514981132104880695576278636656633052050984108664980179302135805320994011637729868134738087160367518270152055893082927262204813882389498675050790186103711847057737864275937064180936192910604966518972787381974915965534349978046979040593374723755384978275676638495937725035713850833280828656456802168747853382639092778351239508086732573073737877336279736366732739816149160252922959870435704002341987717371767070790747403082929109301390018344144878665097131787284943291333342512301129418157145442315841779278918601875075922487858890541244994656950163650751052901368931552978782641768331113892129129695530403002622436953530330753361486493222415921640332564078391155896603649163930163179021627016362924033288787048695905832903494760730464639881902617132832201363195208488709962701518032958702307596915253344343814291343935226268602654522749213710805747706149985929275938270752245457319837488521158208872277261567274957183066202003553959636271178705133214859531143379755213059093452759375007834282138028370258465081498206978722471604175309968971255574602560193840339110262402872898554451627665980682170890041650625634685143082245461914764626396875718749185058296226239303909992738242401895071653775427812827969899485733998135666531219707842208253370274016655625531969099998746023091409005112277214042377718774645294370251364958247852288759568042571792447671987503241750319842099385209340644622448064145557264068056072601873901895056724452915488716398876993675696148929774508216288246205413981972909035163825265313993050177970946189269685502996819630144030508125384852093392259820972254367638309462989170195645871895773456824015258002624573451356315876881795504861149512574287603871374767932046377642942831010371935463341624104095043829880778680034035030174010476311273079851552386040677904883877538453362953430934774999596908598007474527947532008256720849848815732796852913325066233727588889944991720303815408139682664620701903223935749122498268420936209491903879492804467533435937786846380881980558675846925092174072980613735241075553557958422163309839138534556310005604233659482009679624287608336954845404907536212668125570498200744516153396213622070686328616413331325689186556363514769420761276330430093179225889950065233479464060545819533258345426906537780977685978918082626562347437417877565935852585868667065255933107297166096627761984663014847769618460657926277075195357613107183254678204194404405602043102099352976405718515888158501550909589712888798123499562668543005853134349832199421226540680428194278070948715100706224678324591253374079704398305995462634355205041831610644568188258590597339254532894035113770985484229434243318804099939276452240541766921311553824142873009775707669128285344327626933107646874008727071143054557433858609501353782944400481079693220613219625873679272585305361201586581125864163416654488941381369801698803094390355975129674643105837679955846081077296669950949939786108991023933086176439688980255179313504969614426098639347119973682043769226852773353745843628195447738570675026617673623924898826814903837418668945486301390935856134556298922640553203616274517045128322948995281548702512318618292222330624435534914667605322637578361895042893518456343492115735792853618556938776337243918638929877662529580726273437843055512407774760636724718815791635053638252757718380816749029014103542736338710473738246764221354719843217300177035274889949713151406775493156220986452356067318684860666977696183130259751560798567488622064155008262904592800455133062506523889654576374086270076505157926122873245474155326781318239254431167107256725580949860685463771218324479444930510385478751217203942108761908089293611405646228340724028902401349933336534089245161318832294968616721990533322499412118930108628900779567275139150764268553606239683346282241776914545834100791765337684111714897605132511580665358241602311433443501225497133190512330660781617408750827008258721948463870911730900820085440142158879416635160672242814958381192862730262658896370525367298066743065971450599818383061359943280128342716384464436722032664831305817932570872356391129410051052527437015101842944031172738676616781671684053599655891045421918677376502596996833717777400712650903091197153092923932871266849612045957640074574498079899733861195524178224941593956223207381831996006518939358572766698911964087038438384985378580465369301345630597669885056654271302647065493217324815531297602754622629564226686732025940556330663780409696883220614750743954959177039803788268883829536699765663777620262331252811472512966030950438595030961399650838351343046763369696803248870241939138034112962197900194483043024559281267147324971973825509401854805999713934899491885319890543719512440136215114926359943546752687957046071111397844857334197392514674988307920063457287986681662740041354928544736592427250018293946730913583803771782078672152024703484917654584813148337783257952045301435113671373197565039254809703747045939254029368492135425000873197133182373178893707593687504496169083662374498241342002576520938670603137134571193458778658947674239139539705849903199662127252984219516407555469990253061536512621529867225070168802998242386768823880728867957019279827142299621096475725809898824600505741021255339006132564164828026479713339993490027732361161772002893546370347341807773827540906548311254042032697493802443552955015237481435251016815567023020994686579988094690018720876788596957672503808375600845294545194875379686139507217926372892323988505819328075410928163826967102710908443252275953425488932648427236627749274492686362873889516801717014515723990084586591430708730246209610810120331328442226368553125215051175407833110034020059437877459477158705148382066841843055196872149115095275055778534194475393730686514839679841469443373691698607547611637132809150126817040028902007407462924738255222579605934313973761712187393144230386667562461671249916890247220412900125803776071298364442095953411856014735810377026443572372479844122255938206817021970732125435963373643985093481320619763118534735901144530022106571833685213736190329559636237213965559148338062733074140644868748184663128990592273914351730103131513875075956361082412654044044509367940620876231681405940545794259617079360953536675209415913742725864350830057301507413071081702808858864171714283753341199029640612185055395736418212811130636034718113612106190449726001165537370811030102664579478628738771379343462936558357801879701729586092609425032543365650751440743770918461087682433696391177792229542931437060035511387873542313164667016872773511154222762970965147733592668737121958444827970769729032124364997567706178526724362503521419121333200252253100823179873195635686229892485403251285435351601643769482753519748699845283249608336222499058711456465606007759725995214111861766029675711855397794489545877729595791779221056484333277726535421683036266665109945748690524281285952853391571111528050612404919199226150043799398222835533525101515121283067275450424535534481034156921664716850848983865144173020133088456393189148866109149576503654091422381002117881579311922385129109036804595640301270533453262210464237349904171431460096575669628452279571028334226896224116276540781712321447239590333782640037897533220253968073087251965401639836492310269961496585914250041503358110457195892604270953828190087811814843186295586508215372399363101106978962840604935357710190820036651119265204027439531561462832302185436648774138082695506958448900458345048003656691349207531802629357285309312726241304104142795672420583726899354565912024827342702048860574920377472322829996153832160193060846482116208037695388278629864192796071480344939743182162354567106135152283023157871923612578920774469139539623280836227739771807429847781093704758295404184977362400559663960614801855341979438538446399272759528699873900097554574986406097181738142438389331335003805061951387657512561438174763617065082252445103215119138785965311360327615405060908254068829989464223733384883995893558834981553569605808118330115499701855413636911239158613000789694307849242084917457124885869337164904199146167117817742996633114895969397321068601447103034132890994860591360016237454982458800693940041490154666895061692091983999864937543383738045319242992635941343464937128028127051994699749508320202939873800165645383251162402279948897288600768122935615986851650862718187599603570922529279906408080404324175703118839995133496652884665472658743926695790057326195837907962943863039719513674697617871510013999655838911912937451921908691621184595091521102848784985195323678327024958700370802751010538900883617225261279348287107969583615182151208527922769882369738794171297381020442419166783563363788090254830685597366876833928621137536379540765717148510172379729461655116069119499097860354526220444532361198686152022642320971480602262575989488783567427002892247386335710186875679679085848898011891249420132588096229569090214576449723894743422672562644043175901694750738333997163026216703183649887260392596025955387172753075413617832423893370564873884313904171889272490848103412446261977807975891281629180303930454006976191099474060440002089345084517652369094873058978879504965562894643870224515859918840339248861524901478054679923303607159572205157130535737715042041388698864346908358884030211717309331228722711961737522629959639904158758518281373798734102040635022184333635894305829096653553466293853611195488921183989562710040220456631867521189727379888816339796549819141625426635752302711283477220121326336029803358427455274658956204837817060635368526574053478167210060251378501514470849612169608144684222681644082483623119780531985647762718356501155308936168960537859185394364439196251512641584341175627862779892248260314805218709499652417061605212531736632282235340146107729003477679633391507507359092898957986428349764699206613792683694248404380139434916697990056668240504476279306126446927446908835215508943107550842408333507020259956321070594189429829416610827140341913495278533069420568567023397002910287914481048256834642448445941557683438707991318516787216368923562779788273655232851732803521888189921485490009641416188459254587652538949028768273694865641730195223631122305762211303220827469373140171859717031727583271338685654511133188309396300404299498635345466718390538591976748117744097337880204300299403601704051327632805777688245698663157160012871022828899975593154499521152518568499041206929233817106366064419268730306973194279109924718155019484360578845705068300484506226006987775253165399231572894791127042611896390974039377396099542210031823483200938423184601156078608793208670848985671336353146038275071172666119316970770007975758640484322328466221038534356076154175619197623091906723662377841327417785756824938326629893568883839129955631844357253573951373518470287228812065039304501977388708501376280059575856472214757579930351901206643700891114087347007325419736974313908340167841457100058027362876941201599857811494725992245760958560596979072329094862147442407295301963212462385762552036002248879268279969115277943435543800291078420314769243162685936917329648274769301491142028998355463172615990014873913374556127974906216631578024729659638188106705747613354516018723138593720625976535632132379050009333584346235673568529163484217611697491501258390311268036104292240816721352062608762750310066112948330041501203203589985049093909816754347322989211972591608005671602838644733487565406845389202535367581021890791501583635870376887452417594918880485195239339507224263021421044611022776852917287078314552609256670198509650922846103274945648057619190797703422313331592496156313289432800907158869301432120738233933453515710670808902688908499505041043574844888992866200861362708362813748539509239933502459980210515052154484022802295546036049548084875789903821675342826470413178053851703458170881501861639487553117650720441514039928649333614896301463579967483927313584222893626574659514475861203325344710188475222648375482778679513860771730197738905895861968863042313308651640736123192639113738700893681999184461334890623554436961489283193857008661973233898788891377143634233770728386193474584680530177257244939634499357208962910860118391794481747402071851543188307066364080378168490207953461313166472935026473305743153813962411510251122963653873321822267932299094701590571562491391283511512476384281514342703001975439979328164149176881270165998773687105170338207713623225901250943949215907914285892593038267128730512710402409149793057750013013993009745828123682743154403823279447466519653199383489552272499100682598920778202705009082034189032863028849821019764966598068225360905998403151973790141858212573609294705764566461312706591686639359670333828964678951679509711563147630007873163929910112538730127398913495136790813760813617785484617643935255698631772957681360423208470511636816473279938512074628471737770057933892435622488845879570112704993333346812581292201906659267962379904121316543221224159067265100577378919846362366277751721016823743475311056755037786751456032075555697735600444309749626171953119588057161736445698064440538747326908262408309731661870116959569378820677460844585173439634798103963808543401827359813354246369862018831012322370914170433378585071718695822806520386896394102377346425338866674185779341214918290961971088645769907887609716624900120048619133780525729603872446145748101483083312978415764107413694549118930102066606842306829763183263185122359498000875757771893667833042098281328530732689611149933645638506473577225481960762663046284534519410919748059797606711801116001311825848101165033858175046686634354872081820196008938735536145053859944679173957768661645372318708532965604833094748492081398157077164658729333328825519103773662200978868251234720294013917042817030757254047780510223261842165872876517937153472050737009607006468037849209940352500507802418497506459446972189586803661033219102131255957260848580875836365447465940699403460602495834801724286477744150197803930871773618141186896404071369179286980740070955327303364020901256018985910431594898654682227560013210800844904561126013816940659257407456959124117359933235234639383939929313051725515711733913723314847089965529552179015953723900872325168818174471497903251724352033030241027873690959000930288277818067082028574169712074932116815135512859039928009668995191477806795362841263846915924571277314473186332275844834040220318337341321713104119407646124405911338195761191570212015285866586269652798750659202325792536232372015177588188303988615667940139776137493353143634589538664238185533316412579969259358321942715885985936442313140769224913370186573655106330831334418044628688891772197057190462866599429354871193923890275407727487168856777827197839681818297455431155030154587110077460554608904664736592560691877138358772540598789992410991266422459691956963987597747104821507277606960343073494300498555644437240662190902736489339853152599435663294387732094644120716696981014358578563182343458762814608819655742529363228907386720369465390570056943826832321293985567158749672157273873144075437115032274301919031019732295732444025789406786284299453135218190818148329255365480299578745228565139854340222567410291407451130144032440161508221012213288028557455966815007271384814013969610521045660911092416209220663945719307059556686081368134679630791079916652810151397704939587889508529882410784478783665129871799848370234136076690416264085144012272646513120237188766359009894946367699223066532878846152103993708259369101324050549073482409299197649682635545729274161954717986826551014948754520191399276268829667195383212390318344456899519209298286834850269221831073405797023676054260762359570092562265759945080715361303098324011597943335313444628667065995894783327878158366142947226327658512116591713691716708488818191365982474321063859339626863091283914470142844919418285807819564245681317652537322965846370008875032824267110846081047384409777510603207745462474211520768708737776666526334247279364510075573602843374511226370363816960596778276004909943311831254286247605873672803003226484615238845797756016378254147194273970032775406442212569147252162767348605075372658477506379165801185614371728302343707449616965705103716460729824876442480261130041375960363007468748122571037013146782372259617659483427618945007039794578715725421167918611312724026840579057474821859769854941773277609955912453677565740278499961942445809331292622984581608585009085054413203151973552198947605983085190785467737387062970593144794580878201395189803875375020547716057349222110643782940465564226113371245719604481182038364811801644056188707435514929247496708694151953486081864982815461889559625229731754200059132963576631535655313830988159419376992391516929637118367846572414221694632614405001512898644943761860267705883725425484790617802654476261281871964926315557304116652659630484696681670134398172950606602301190250545725958826251638889144743899937745493732103571133804871182662031733383064158064504306665006845971384012219297397437061410957012107027891756381179394951662088496090000628386734901146040807520195737276996857396424166347157377130064268819073937242075999741564986070022596324987674022210128360010040492221306272453104040503331513568706650183824888012559414918520793610464021224302875301687726605511195109775681536338605978975399324397865704112165724547246665160451788171200328365125938810223216914694345119776085677057815388750826632543642891938258120230394653912828444138411430277082246134513368053129002851314309730736489560142298780491929029210327772687799804540924253376246625465832108323168753949061315385673095343712694435536560866139844814753636891921091056222251430185049885391022705180996833234276014028069537922722730885377444773835998974180198155847597843123876167064153862021216631455870850121701410317291568511266426843636110858553947917614572093929299869295039248373063535269891723432728402277162313875769857682701311020926797672776961886601663709023289079706043952607362396713592517378051170613845448824580572145754708661285102565928728211577962850353921093641335785242156220690749638932587840030826616008262274285799407311633092702135679604733802011157097899475235851303451465904357918620847648615183895899602874424619388788718596361240623240343086472785207120778866172744895836842590615701378956115502437612925581767067178175966363404256541198016129128853538182401872016457749985703999592595388673726483603778504766541182783692933639806924028655771953026346069620178232060775824375423728119520066073357247852176280981405057076725939965547490143162553962715907654724030271058301504852012817202193351015125094704142574955881809969368106068063273588178938082994130521126418196494937119092569638672851879954191369976498138814344811620139067401503920852038094842941637254772629776869731501350038099411070067830307188726251434336184910520132985027897510013474460730103509618914576781080665270208059257619045618109309682109067784643825333484823793556210596958115643886018992286182500248550211778342799502006795648380410647884639777699334647904180617845522317112248998094964200929465081080409140039678880046031831241009823039201995398296663676337263803491172244567185030431030853641328276314681868174300631806057076432622717738549339361734418020463474097028708032783123335192924851765167665947412530053716470569869522702566303983013447655670287876061908455933369250957441616330043763605972775839437781202082385040855746285079288004553076978814182717893254959474151062959647397259777072633544523965011787730065218632219324545702681478979751798080067941018292748918081050141215561567118278918676326351555587677071621073289305835312485778722949607152340927006009354640628684614548644040524812032464324636800436792999332493557030297798653469620904694563113517647136738255959440059638056611088976607737463695809786918764830019619157094622891194143352231624583842613671181142984746768335027082543247634082327151731081797004793930089902119676766030378979684355811077613971247126608116043143136650406473854988999862796396336954793796740987973322361136538235050364532018149246158917153911858949995673594440024434568398536651966998143805661928644421382405270082736744136622931809734148149152493795557688919991970504457520929866830544584349783421192122328544618860980426689612802345936305266617336889537012706695323376366698441490967721677691738403797482971235541611730542195772313883239126283258668868125121016854522707275255898612311723131658947391545529701219996233789994830383396907286756628509053354310536761613682489462766377347653351189081195224211185999973878034404228423689562475984831012089113045659426936495500653761918163775773864288040873507894183523857040479981995708499004607860810497646229793213023672233141638310033456144114707434074172007509474708258730182655810926017691605316584401525144816664039327005154625739552638353177828535702125773771297789412088671448409177747892960064918091491428264791476290089550557389874449544868925462535327132274809371647477423530915089845405418855366244193425712067762440353494808864831212291227725051509128636708802314778370344352605458203759236481105384431639953838838077223425937645719517794694471097393680685456451870230824095993473421372153483391134803484275545265304244455547296850914039427526404076477194965413485392231485627723847791950984646545633146568704434964181768364248777028788914822155708989303810940138884662134991378192604447356737008823206548853571475233746948890684099236327887520809455382872783837693816421907999355181980211328634808596546775077581307386967321865912833118448101583017033478679273214672631611468327569207335201593517809072844785723369390601005684228301586337285308009166182117330199839814455207675247193042040998083587161555877003019101575300648028278095027801121996685818770475698574955564425906210920784785137251964133434134605774229627857889722088624792046460581833122533915500166938356888027850103456101724173751854537835588177584158509492896470133776855886103486862344400609709434343776927145716094758391703272931092265749636093519260936914084281943685674970374432144422190851128679322353308910143370094433320660471414096211221650697694623443967320425492774282425166402395953196246280669613412375531604829862733093999353634519569316914221477598815717250079212406203871711405223139514828506320787590905507552813637058186684561864766057889939776333239828641924258807509068736653941328585629301475500222886590082471395704554282884539582352825316041234128797483076519916559928697469803877376217216069496407919746390662266534701383327756857873089950735706987069768945907521822324389122720470207243832375414264933902383339304080070584336733552661361919380279070573765930855041856314102479786766822467575228249422834092177892765141651979044591600469972800476267670742376475762076550325412038303777452630754164008936717636765517312860218029567714777844416632766209671173102831390847073107053417270867545097729675731886417496339924815755910378932140779305753720262641589126797393335904912858099809356813102827057639060820211725494634702905296939398671764937732149229428952818000839331237232181996187018789858437725737778715596001799391221200240064380403059170041146063977263630519811253628844644155335692049645492542171851070483591064823119415374540241399557633840219151376026850821515038044021887999741671895177723393386709717796478954335355261237208273147189497522117036276783285203345346442463439907573184982466026154488921007070443538352786709269711240111130374706028729316789141132478674154537006149405213471112262018346616647767647891247009960634064426723329664347752029454113909905528059537070895288194396358592101590818380471833411852329634864664621575874651616100540245607642443291011513490622522276939403940665612583384628742758279433639027243982848089526960333328725917200881464710277135197049416993737326740327368288749102681904280343453371603608882793615757866538892935423932198114669268448185748647253621252595403488296273411092720804785216384981572260776755329895941272385187239107462314959974402638392755069588069824721504843614733669677414882739550357440408243882903708846714202979652200923459726193542363545379008244700641751401976683617388349177347104864186860367209458965355119888216979625993313604678427106901775147345920619441539146920943106423709178027171843704920119408521326285077208256655865581870227020726016840950647387774905948574505648711741671684181711038433818261813066474838471703165507609217733519660686042012671515952344624965811257332642459649951422736402646599031012111914630441460443742376849499639605375813369541843046179514343673649925560411229512954661114406700470037016418511146397207752934099052287239105889233858262453927719088420050319461378347879318682549693972598084764361303862504519844775747893501295312924401267235873630432865416789302850371294718813155206925040987924671266115775693227873284186344823399653755714819814389073643621505099888634222189697405754889442739259143841273704307395237384041721025824113786335573280495233067216680488113796169822426878632723054526470489136620841697418829912778609838804831727878291439965748098488610003793863327328860003657407654535262907291085816925584804738282493300070854147816127675331591045207128190905363441358676583541637786829183971435406822781183237439176487269560290533569936938816226422610910841747888316784619280544293553143822252224793579100471082380138520789399834874017375783521472701306334881655759353443081604736774275704591377619301107912546632888767769831112002042482458434226306701774163620215759939546949784786152501625533549584120032207553832735475454467537904922594346297507144926118726943518646274923158057166473168839180749994237142314885195259285345149103204272895796890765990341552256887343102898701125451418431747792388247054075285278671770953494254276394242478248487629396174512352238530664703915710375547087961124625220278792343674265208946770442399108265711271662940385505897551381924802813136209466974832890239803067870259554842870885465731569469146454701971891338249224230022393759902477082231399739784267501016076653615130963851062939874767848476470256377728372332557345503769475949094106561769560625090025012740661929603168636616702472236356372309296931112264977196320109486234936365161713629325894638273612277988352260358424648004806467134656696747834688628527562013523900046670010821051037576314705796952308258588637843545057550467532493976014511979463605432781740865805758178478459619334506390527628908126330479130712657199167812457880183684369319747144853676005921697874599126515553696720044126652601161642504898904829281810592113909674477685940919588490020384667778100627103222804523056706072908690807648493548597806971783237357490316898059394797781942119060221734752474135624655392695111442092267567019285149698504160342760577719634528178703236697868030679069035179870139781241819968353814529240696402060641075727973770421718951412480305012147769218624746291342451462460221059117815795032881076746068886575107837070897512894505409903620638415506152257157858703048317837989541757568242732739746682777604838743805778304256011294486842678337124740846281112677614693061942951069721065251150962298093922922189918504560376109519619948956337661092840036625797155945046784347682200084175316178240432681959082909965756360134921117996276901921234760311104926216808801446326576324538467075273477612723126884081040904583945433071071949317173856738356859902705601146346026522081151558378870857085700281249135891194633685041468663531707463992983629229000714488463244543498107139961027618473090272915065140633530309061279161641377953225663083498333844439697549329598658049393932660456590673103295522207805522649188997378124227724729076114037397903977393293869895990119083818706121909077793444688669933619744628989203970494115828495972698940718361175948268356935173702695780865952303947404879235453063884927802742280883915483413218005576330873482400270902907755504041209617644399755702161130050292105320756264944489381061225627494498660002648733661895997124503121323925747454584149965437554652831273709188121320697499791626272843710939696338049950899052339693887955550689716340951242388546525003483957357381496382814674341964952457528723678695675655827808736857677975822161047189869591362775956183741645719936710818432350171890887650177383536740700388375197234785384324615084840000424681156760206010089286518697080830570318068673205100299807396636477210801027238963969786016368632880472168311967723493228181990028693273211408490720601671147691985336142316248820566882347211603493214062917725047510267396769651969542417825835176161477967817247923489789820176698584529413391781704314647869093232625099342907042187374621990828039443423990097933857302064788074345916930679255123857693006254711586450751357807018747656572125161135380659253336469106548483100600865336044480408851883838509886213474108555803461642938909857289137281137362947784672114233461228062550709772777599831967164024491559495382542396797188702565287124428123748974479030983648080161674423118983178146987281591445487674968289747989796144785933282700904379774696941740503355916881305387005071244323191252839471139303357181897375581027692020485745687628607247830241611368116259286633678265335995470227652597939545803414589262406944275374152789894167749522946356059552898814297813252245738754549420990468712034345681756842427102404458462534076058232577359505464209806053274103744405769692190722647807228382248392274976522979489260927702274403168225801194729064728281170931007742779442313539368768392398013212374739312569435051978092658078457203967266188300570044666035549963366849992349077206514181936756758232020561374772137467361415623211355471275221563500133062923274220882013513864799864323929593727859638824066922650130515882682291377360655121886968902406881431475497381147259513209599119876251142248541044038937140859729950906726508417496209331955556153688913962568881968361438621788799872128612634988210004777664534671193237653944648854287169967339390160987339028459234750294370157287360711843448634219048941316723607867724596269209635614920280385100821944232479182529786590002925432717911351204957270152750662902103091919350121152322128111279208760760106778997801771289702225500943288806422954576160148172488990725151069272894388219888258602661240789069982663398868150588491810392174136513522067018530845881173253530291340740439880354792606433955782146486465839592695822952544873497601460047123450618797460081564439453901916851074505173607060816958631607175079293687138555409967021765826148483091033987654686804378715516678603255052813040641199185554814316437407051081624400853151962681450317610334534371280235069371047739788620347528199510313826593271916929989201084672468491409408219076329883927022733747839398203518219757404347389502317588446442498596218178367232796822779219350201612521744154184318369921774785328760787353696085770666891203358772516396527821759776142140613716763220471562965626202619524055287372298457183912410237295988738320663152727060754522827992887003582319980256361738566694610838856054808119084905256663049677891340621636755278178716687366232180686788351917553238864304075383399701548775326700203510365364491801943958277024511116593176612396615175367197556684586923235037260792767274464458998346139194153023786467163948417105381118746994840634973538354399484769543137595987373977364325439635005506399966823109518342899168983228277028517040333801774462721897031250833552098813984035666820036402165101466434541326098723716422096261584776478326391311856316945653410408566544163929589226635310083301581066812780078915642661330571648656459231276810152386834582124320631695658576370498886928756203480556947147631065042821124827108035542672779418952088450490116668655084618499158611767098841600180649898867643921975023583392516735185090400898076142183293537555173078625433778546988123586081347798778071292835602115572329760241340928879075300365835417526162374653442328906604451620955919430789945597246408250366674965159257161889255415771442989979376027226818998835598390214970989390921664620241146076000304862585269258527571264210127156621741572339078133682600514096344387224066980181313686962260746735077007834337687112370065330245290279769054549307063088017552414986197675995801842029696459041164752256673183424635177645577286066171406223056623198773476689108240852217304350486302442888157364149638938548830812581449780754142040331675538441484215166529356825253599685400149917059260817700610623320482050061607813725153534643734753439434607432009743287464062429585553313566414162539814513670456507950767823475908379247068335851365531583363616227746159177487968476980115549349462585560590467550894334386503517165928934953605496259397072408728448636297588870711899561460344203884271108069350317541110929705896050408698384311939563926535587876237451477223818477399937785423406430542252761518639512876730743843406858549641941472001310252144404375925945602008169939671254542912893443728866463545186171201419910210149726465049333936217931345290521679484636217363828146685734707153521321886712268189883011685634054797992135433449510690084821172303894850521326735271539544900569167309858192698298137176563653783483522192353086501416120866699697447206383742821192654379614291558592224904505336860227018186013511264693002555298166289601974784207022782668550855282223341812182776759525639084113173702964902020974464552174865696128415023514079883761483348337082444620550787970005211484993407240197280353809068273680112976738031546146376967765428308633146749907201059716368549250177553923373316813447022605285108759725618495262678417496514927296687112757657144648887206550605988905770405471361248867680450090308285520259556157647998432279463996371123629963485020987995752211239587883740454240600693045135827713437042221490889181152993982594445103621687532108657007958672333331355468368214392300186302900861745264613253513712488832453480542457504357022037465901413562755963972135123386685083127688568428157825954357431727417735062508949460899571514537050936780134635537037107827969265614018291823842254963549899144059460890523067922232397285016417841367813216365855490130086616353608878687829438745828541199768606725877658936325199574068671738087344801806861978504178799598853990560309680749846144925321160861550925620815572232130270091326218478326876567748517957169817311988601813115220326460099682063520878740283981858511211700894527691194990990729524762145419963728999454712021199228067208840516408384232232680736298530467741587593147025603109842786440908159164948355027045541280778993373700698016040334050723503509378059753222589947682637214055157231882137887051486177145144054064544114820079128127002214544952939851461472267478214330224808582478838764064300655941270684370446690114823873448228590059721224196916637679690887914485314388553634665099312804859088689699145064412826905543608450262759352019095417948433937820500878084099291951893025830131314248594411235284787791078957328236759380250339585787295305840655675925179223602342593440446753287917876529321802837295375078098788594134625091951158379845471057543235586971826267290282073149742523109465181910864389203507816133875254901997980219219426403151137729685706532126863026845591961777056483672730723725321732832102170883335553946813790722961527874415553638920448353802290467509562456726273098483630052043277376213733442414019401008054570859944334588294191215874712426264538318627852584807382533969724025874933055395856797856896999745025632612538424278248472376767930815710289380340601465283570816580778395847519210835223296796427787661551473443908632305456002734858239718280945413245323684438633056668406794864017972802078777540771750821445608963058112413272052539400775441875877660638213956657346694811789866499643881901566850374275809897110767164887546991927594696192965183032807007754771899006428570812910996063921844750797771406546554184220112810174236963255747125452004327744148985319173020634507191169283838535424883068516456379491471277836314949804985542343383748386406878043293851825634007652163285700053549760608314577610766125717518174154213056385877769934321380632934265855564300494201965800740052324855046411254831025750132543986572899297403874401655015916147150894684017994119780529501183234594818303629684038163145356947249556167435911084536888072366159834812193650346029709367458232177066770939307330585759514294569479496318413829616591384145804077885455317242721160980281341367555291263115711724870478628087845673183350559673651740054712194009007035037210853270040925566726898345312016602170216674291119369665348823381668888850475037563827349719478453746684000888591974705323961276376938004935828675853595398580385923327496772598647967735713938921083469738273298121242387260804178339230232543264141986950532403508275275473992282854474601508273670736332658031477354525358963768317262447244691974553722314473513065114372794040213752851235300908360897868850351454529318349346045800711915038992466189812319178808688946000320899303252018197162733340024658690958459981251360418991351434014036856014769240109689181368780780851969083059867668822148765501103980058459169007288131453461824505094755310786865366560055363808160014666216120416875039917115015008698674550214321597289955630385713725904886928510432075933996108821295976930725606090598206331275279299865141210542033175513612669867804208560007448553567740355035742342430124311537879617302061628185467044381236357457088048495412439170316516889300403726972585732924737175288241997181694828172441848018589669531573941744124913327516753026051513575176548657345355803362887741499890832907904021593637189461987032176319411281300555414105805869427502373782092117634249862092868292305634920014433806925632502307575110719104381461857676079472234983977663721534712010379806531591622494903437568519370922971559587235057715963449310669620611449657504622011445706117587941040793765004609542315909797084319403777579638212134797220109563636844855807185052766662690088056743040831829942425929414073281036176492092156351038786587653165130829612074547833685290298740769495408178373154400168598976197376556035634092214736527853501472570068473107287482359754839612175469104997677983623377237280489944762254535670906025899941346711559663066197663866080375842959789532293276162398251340603741345771816653339631041370658810945764150112926388659536469164561252309650449603285190752109841238199558862101137868175596886801509910864583164852113148035450304369104701023048000800569152786155276274834712958920995396040834236735704444000465075693109819307150424775203212072751742866689363206939343649202588749762649538569060147595195575189346364221064746675467111330983502855972180251174448998496788694091157130977891644018727978640173279894249535573730077446061670306716096938512249229448154934879904562336621330354513555531945205826773218266447405351311853525406188557330285064686324873733541044295017018978776585729372951297116587156277083068636267343088196209940866594174214787483291465090575354648130310643292636752902493466498274301555519621403581313163981225678530802505023462596767271539302644527914972961641038049694399086872263292165085273049968549149484638954602919837009644781636734491413825953299228476322666042998017629753477113603668011534643803887442974740921137849844589112838418346052001267926038428886366052878022460758855171827349700499541618942196973508661384519239702627344433158458030132968768221451348717025609785148372101482030990442004711189349627020072643614846064621605588969713667305012311089627094988020842195156127143855256173508548888930470030415814391349833796454987975917403756207968290005751447292680657327768868840345490998103185387472727532993390640561683325261500400456860371698117578995362980191881199784881159850935850951765223445119588211561095647119586604809300366811831688207551527001354412387927343255828649848759764742765309932909865942750225265265714956602127592076386783750402107094525089964369383903364364255877106155758926326286861079421965516505993954386426919661864780803158144506971236495549595286505468494964514910419249719354088557316778472488113573377850478836128176871351545091534905016290583700010907492785609336587676734297343909954515717319057925136544134724181662565581442978003169556838558859250277208761176431718750435564630750116723904043055438608173382435461197151892945072891776632031653325279243810270006445077543518700950876526750410609651887137993504346611314405814653237840208751367779352404525039822992353991812656861193988545078895927073982125724382598111097452416705498324307321087263324837712200149267082360279665431108210896403541272268673850804899094958075348460395641652328080824130699397327230732333021383082539555893374378192720295905913462202945502494138319761968820168657577832283231437746495180388997768715934636330407534673436832235480040695110674322019295150062167201531462742436153959404529114864097864301419685570882976379022175200840535018545080659978683894496332788821715188658664891391276740748818884432895277927796958772943806575588911133435044593785467872855512243736653464329651925015703976281208379182884493154241527433804909257045442994394789368083250631682245809358538707852078354556939414709174880901138682426261838923514342479492743586307350746247625922583344695094267926804151452965857292032550851041458396057588852019941853713779914186781327560624083676911937857006727364008389025170349983466446559544660602085126086484944956919033478589263362738075220187084957331501055161870837602877804498611096631175803438288486370407352259649251373036368204521385937937378252937067720935642248949542730803199218973474526051616844780115108107167460715292524731810173374887517290100363292200666595468546342744370325618953648957421530659139043604326325859707742726387587152577439103012588150975452040866707064338416261514682437937573720059530000587690998759472540468025601233302161226775932248120354691790741870557315899434465677563711548999767677343355424139240282660500824582954837214941308104251976123873941068254041012989794781831844482085891643650235401033389148114758360302914738242139361834829740936567534141119333960377549190475614121490579758258070663895168162918541529120235445169037035608033383504526785338061928909299292186375374708214009903991128074345333660362840139745818284260069304558733499778584876211143246776852736548326035938583616159675911554552974073713086338719948896177496882462177854567829524936521762271187837571805772789497960956608705315713630704256220644149280844386254333008761311307748764310589513555470168288525419233482720211417612813713104759117860622940868346563573778302981520402961459608038406343141468406857919542126664561670574749610910016671142388328155819206615325382653321523053090338924543341918972670826928839465504398986681015301362483499563092565874837642114121536165241825900721808188116813316926435104751194572781796876144767010904265858343944340393378320931961723985757399872146214943545551776628370329310393864185024306119188169164410421659087387563139791842632839949954671448782243461307928544475020428118719718023824712267746164777175979455488886443036034108028433607686306114346999931369818757766390409408406859641769631758776489849770126290232801495534320112629258146915120234571685822629000789849530790015522170055034533468216866793618436534814498246583782181171036003285728756276964107053217986677433370263792525979396423277704581441614470373162924588671694941001729133355172005933865981827930550298923100553733691980429737036555093068587139004152398152812735658466670569527863717735776245333961997997649594089830638032670239679556447488295473543513440320214846554788136258869204800335051234405430957557988447794561110353613543952072933138622120325479795653035472586645801019956330632998439695776892995446745800081802479283315085642472785581761678567523825810068973739950439347437566543772432166118071916572521616241802559654506429254673000828619280546429718930885466612167930449125785706283250560443738933740708063994526161791639043837677957263743618894142234032807975179432984562398210627767680072398981125688310549648964119104373471958003796714272420202267632220976285727801357447048665080012457528017398460570515574318225200114584773361201175159387357316228217972274707187633829508644260624032976111885078758971455547534312277660094919682899407400509064559196104021747165705729651266285871868992472808763375739425044709057329401968460251419135059784735682927007313831849836127615582849232889239076126471118677180193637574642591427026870347858968883102805690890727212514017243559439870260242131108500421983059987213465486182702193927017581827871033851282676360178960608229888705878132957194455133941586541397545165482428570585130007694027227822933576690487607469623795660740589647431079169696992303890988649242815670957814018514149563562323882813130600021395520692250601578058978477076873167164259301483605472121526143395827323443452782844292551881865749751202068085564157726045139625598626260394066439202977928019616701002358602644084235921726693651257264918533531139572606395486543776253332144658895288284860725312388897057784677334472545570793582485079592383665467170239346255072826662856045340119970238751026144560489545710649420797756981234642522628374957730212673260303472053331190522993479133983303601195285649572536675007375328202571844890330412052280495607204746915028368448346769481107246895384732762549104755970964293157043178379974645012621459879860613465737619930757491617287710941109283073798350714850129711111441129163463883386535845138153121298400105656448701918194557080318073446276514265739193559398094473376173737291713556252555329881378523284809314238094010810840313940244074038234363346228175990955376018875513077894381757501860062441751743454277658163645319445158945347608747358135988314297856504288282216446728582842991085067661215033536451414913298104753834639601413102761646129813972760274424442565468825162458443040822710041005239321501032017727024981618455379786681020822669020878316320553898597984115399792822219560241016979289462668240378310377931104080562286847009664943008740770694196954854580603146953292534739734581453745301979234148271392212295369064198504143132463871867310437153169964801939481356888529752530487021692964412731872898389970776956872769614256148245966840461550675655728269556418692210913765381667959240180586785854687290209360979026450855073017386484622996549605430491247668946106330286193596792072866306486795641371047524571710203457602089592396573253040025917596520621866833829041039175193250347204437767735129545220595041606031623233036362375420417380374488317221149682583116160093621594379504397045635142668610266001018990030385015686448385311484242973014538022702497922555142436748561681133748969552889359775256650638581715333466493780919822580236747082636140763840387873512389469794251701544551582963791427155312278113586548092177371652127540271274742501038742060758481209232936696513950263284081538029470365164658826818478679511637912168100474041691981386140729149098435210757191996858631394468016087487046694232009672249954807943940857605593543635554745032047242801543662116146451641479807025818501711571521789871593784197409277528896434845119120213372507812885828679343935732411800491976771733455026648016029264055085373988455079216546007371501217614411918571047664056033209958386216841079775929175471757388634715895520199137727827220040776028545694511512122347068696925487495484485222924400909010445993861950473869747203805221229559582459626818960325269355874265131284041717382807949330490787014519607280512448713702150031420938457974948022643325252727126050138402628261382449211336934191430217907987746228218663118249565443667152571040685354623895198577245785850183904284379689480944686819173081301669904424275089023357506938816480442088489426678520410437594021668812266809083088333736777083016224062531932201701441681923953763748064650425530866285795937344192285427615880017488051193380969688624859894283607642107780107526181211780732960734521689879285544068331450336613993457489390370778598254832532997413475352975378018164707606666237734476475782872205150961946590399642651654752643977770543864620648285498218070482607001255141975018172939539522220686614127314451510868872477572972477252868869293012966436533724167696000822640583913986493782626178331321879155156032712361915515828029284052636679184306878181850109307101517748921781392353309050921836762882070199023751021909690659877368446382660554100358522935061708968137401991508431423136406409783709033073324814523624584247186435821488206790218433783802807471167788493327947407166766877910712988634442188757481790911675588330646802479315120123305035849809705996477799058503776011787436720036750759830248953673297166182445436164723625292932120513598206321892145708311471078511780366710090354865075687980824912479423117131043650529299115758846130855908967347172170257938927989426019888892334409575410913768709857829542877076778792586327057272468638557574949668908835976229989033471644639414963598430421020755420773935736278511169392918213463680287303306946650285253178452543138111586776602270131770213494982076981914640047057431875133419145325887511508353517577374731027329882019656109131024472121039235154106165776988488222176599332908755694843072096450214997122478731565923793874535416046267608231898599044647834670950708924290838124464675919573521161398915016560261494689447373421354314755320745428110944102059821072410437604892767867656525907904438010735504594808659439954297993249565178551148949230522650839113588739953992904190657899130239807331572025467743465200548457600965740649949657817046994109084139285170662507679036042060317117378056322059870124558716882581862193457720437626273278461363227851095747449773327510671879775102286375775764358937600913697253940160718399462063549002646303148002587844917575436267217820095862401020063481917417492676829385279658372554913397101110065212564618267353856060160910868733728761675865376143778499146339691187635597724992866250676267668117836817982531688645902664967326952190467992284372641004788100097325259628718173240036388778815313441346710452190084036389303199134850734581798815500411090838585258816601796080618931086052241605703894421096550845323796415534087510009869142928980830161588473473196480447893640615893167156547586250843528474559499532632293528550742740677225611659707899546156929825463226470590810035057154213130354933145031299223488789009886982494741263656414591447185444364890742871291512156635517187231161789037131182215026007733279573591818096791849510808764669697016181974573518545136430542182919621477161513645787274842424824480843897130566576471042811485585107448887050150820764600989857623205313114874944150428473728761750004107147163449004259814498335379208245156484289939696822831297661052868500332019505174435136171154363793336169821842062490180491911896885455340429647118044221059590392068930318795767964713120410927777008904560153162491314988560010749341969848087726082077161775641920434249453734553914641873512425033692817751918389376205029395579767342778649581815192926990255301477188533351294899173536028523462686378669647158803929833816248378327010903929229202428147960239547579442178663954324018333572729293401915963925389868392177013851236341179382857802508450437112233404016297493739980706019130332692609719689417252284655066455312695941177333833444742173063651113876063298912748178348189395337653396692570089470073230242643269428333091929083817586486579620884524178468998909197531182122236031372351749830868980103256474283231378454975144541606558185936676771469205428965296179726001787743457523579285605697914520492945669351187503934098137884287739879784222920913369334055628090781103291744022179129965362113517055483683233344277884842227619123499750927463238360775743778390491181893941246441167290476189770692007071531318728776217093465658149815463878797754382128781901918762223437295236627883019910852007292550063811274799985530237403721473011483280395281520973828075669194865156282149459932692724627605157114233385663669285353920999761333833761003108909926043101044389112370603957450217740192061111081532769632823722140346365718327750718685930392519283460405293343338097861530740191495186618639772858595181981167395022460508132643187939130662676586397926256539331139125185771213158380494975394546588392159374867190548812384341834332790219851325845274596970330958908145263371805041077226177101543363206918112164480896311556897747739310605192268596995086440392123761451245779331406327560238248792628549694362151763811100024087295892159401919649771775917096544552308372461310214997117245490687900669737889418898832138279504249652181753622529110268157989395753057974815205292611693102293893894006135700396217052452296244109950906342743041352305267785654129075163681451443815294763788368137422848014252471958258272900105194511961756353486492469366787826105953370604154268901684539047385571230916335736269980333869218475105145735053937199706541820787950975300009027803202036407903670365126921850340008646242741133306003628337242967466281535396613799898879962561629280563429189148582656621437278336511637106740759485743249182663897401746454395915570352132813930902822499867184568875363041425355244562603496244191571983987933846118399274237871243781575768214968986873101276119833803732860011316219947120167588566311915001621834572418460374104046490392724986781573256277491092530374635321742645519037868251364774116673956300835551094382646617574984842307927955322996175254185910689894880548614258533657294318499076384556484427742176041962709900468371423626050128692534357469942134615344571243036522194557043705634502169839673409521498442714223011461823326352800383201649174262721448385420594040530247918279814382833560490718838421417166716162076916002453397357961860111184752187611418970236489318987774364020523389891536873374756599611255314046279950166465813753647060809212484785592982253946270943228676136913834606149924431097813846530007207027082394402972056841692814574405743788994707044270381083286620237497426354913690388417197027843057741242739354969180164945304538654727453274098691487920680057614135478796667329574777356566714497301699579182472431868276150692731837764246051797681306231199490708005560367272286804870352668686385725525772093909110050720660738775224562941527701815868840453187781785835503238943727818975789674523669565549910499760401130682519288087613974983527546794880470322549875801917743405205812995564489513410622568563680556033538403316496650187220583521201184497882736799651912282243545265065141997945232839899427742368913175882724578868691759535531262373925665035158841123055839153529383452928671694007326442768523608800986588905806726434402465769348654121957455030807279651804919335812853555131657486034950076122500546075078495386932181964051509195792185572294044749448605422960389973911662203544688898322704208644200015995957640023149557914549718508994834764272194508209679420026288611876956773146789743943505819378836731165596945020231590906035980553781168098850236279228804156213866236540830339145758401525569892930487855934705236135776285331999861006297450678653684113989707167767475400680063534991471129823174884666172331348795561292469126653869413198472840856254842733167016346040384987389701030787667726235900271864535052747331074190301727885373974410849114754055105106962242525727309041821672237343569688992006603801268512034391187256992466300438932865705257337753151726049912731545196799135732055322685143026779849672879722824370447072975514787693312860194012147246058516832020580905495927592479633666964333246063871809256233766094776347162127822239567698223688382384991691644117798240094018738773245811313207634102241346903818605100137966061051344884232262929716308109590198723867917754246848596555975898624665376952615165421660638649388540537237203882145855926097850572867493143327829890844906704719026380817195541419115254476145848230596219676099668541880041883599733966010319938407244030191723229278883839304454235786284999059290647489870567976246647837709601847840757853883009103612395391771127148612822590902054149738072109080353381257456379376319459608499756124456182782905977245490983884905503355597559308251582272195509528664604080745164851719219900672614240109753497329155187399391770640173933811089962625587549099025159543138492617029918304485424031287071552392642041750569205165623811439709784090988333676485014516659283199680913880021011148708519109067809955357650489798879001309428496114940282136351110993604310181009009139398428151369157247298347616541095953715736515831224427800231266837387621657271941125615622801816967775994429027547810550840876807902819762991982884383744899636920453063206051897215104817099907275098442457449640158526018757993458852845321847924208360640887170516793846302118454464873571620445872008094105192526006362218394544799005420899012635696090738593289113959444053030387284874438549552613462980655791406152989560087449281689254867749067205655307838843841235710287946742327112218307208842587457763518520506894197419310155842684880740227804889984097892044555400629070798530467907890442230754351797435240395151349545795330065365795539847771204516655097687378800611469858717224792799946248973673263522069476381511123871379666008919490692039937864784084077980682168739897833724881711053215459203683330125915773894367605258670208730582320912773296453581144943541789117282392591755947011300840897845081468855590972480439582966228233947031049780265762368503341033196297069369255387185661400908223198302188907925647357458351387603032816267064159038433088605847425250770995384635425318131891145807708112282520200168045950387632776278499131721956657451872175506177780954257069752662033044252876781927492115918282093607524916721764291053799929433684655277833590180489816740809401060963614987175465905121428345214624534488137877097258340670144420569375428035452502122116276084373934969465764010097869516358184925444430903269492855223513313286702671128839583438250437363274019463460605907105225911860323876873642379556570447408546991872691163104774643737709983306100524158523307653116733326432607362116372597692628294213580646375855570347721840581913766199212578915079879391922986701770845040397261362164858925840592311322443482223252645501618014436576913508162817441527284567210282160408004447527490667718844465340205208200581305836327095836291037642427300674550831635748674024935307041380077526231496909655901750568909759199916951418544730668613198930409288338460694670938892955511601369071866867047483710754191571085417082089838114727983799925777882768302554772926860443208627592751165827725249421039162769129309669313449119034153454242007447259630524886786801174239062947159253614071248372280747854869853515604778996126140477020760338382089664489759667592220263602379274685669912572150786926148052068198264522412818672866292552783504036541209935799242433628144580689625003500876168926201732107556726597733476241941375274452917148509807218280145267561397049412183970904906919985054211093623224507195231405111325111044452517342828097985006545778338029829315670728862913363129227270361942611630563444624163546653453261082014906961249739481013769683928839424381852090596567607330096917185120650144010297020577459305294552597867639950263384375032196181895774614757199870503431038933741959000762171320580563193311580838802699657396377793296907272121984050766953312764465486168578808412621421072579835442725160494467404938677774623887833114056864453718325713132910759030780065544176788975535899676971557848358763889849075293156320874315753916025521558348683195576453881947298378703094520635722003894629940354337475336077489412589683821985113924908406269592295856227741225742965468977104796063095063826299329094342085782478233106109334426369968634345014519121915716789580794002031295662501824325491005675305155986010204246445728205877910162801210180652325901688480075743160301532187005419536574716468374570351540504894576067540406564134454675820063569395575699165231242038049279529619743576273506720225995745243679851447124132161480182267008880268761646078297612874472692916421260025092636855698388245425278943872183921587592822553942432989979353764937747740314924440931248388731249581100993571775627223840888947556775177031228384070184252886827987877093461197039036611151479377487750353946443717603240252960416765018021985427273806677233070106978136222580264906985014797037922164746313000145294384560245470798037441309306776440902612175754065337064833201716975973601109479272853297479215643289456781637594254124485616792720918414516659347107455928031431500653444425858257778791140152880053643799738305270450547637281813576108645022193343696482582735693448399970213923858730637227013811437083660096608282568547092660956209370594112351427236447239614531690119927269577223951491197378035031068645068401378665263417133155943555922449725045163922157177056614455320919292855696462887230303657285077747192979872570463359443849266441025653018052903751893076955171334795839808638284168880269775362481891102429838492766883416720870161073679958110905736514021605631879821397221627246723046110680703173202077475368082778807125004531917975868625484006369512175783341856842567696015976796355999976444730879477383596680891171354032489764874449814909850754392416578103121574907207319830766616078657811935886086946719147493055077018614115220570868499736551207036589752013638310300853398084010323014127720616967812556360193648068236632618781852309042750468747600156257095184603827938026154653526284243786019511763280026428929405146508194768774560290098221404753697410508456378784157587155539378057654102507821747005891705084984803810136055361833032652214683335492678253433023037970441312175230928033988657670344989572704249733382017676947405094721905176832459086942027727519580199806835091763813278513643699247698387576078882199519544160485233612089101562476194263271368836855681026731494224985265830854182781416383574713149688826916172923768834098734636287446559316724680282507818656228702027939431731734440443014656835471554231764978494428743712372980936509056559216568784915400595480994158615281759925246254779145202972396724695531738658092327482174704167924446453077791326901011695550609884571757234525847693890324202174368690041190961464567889906532157490120807201725235420121605761034611869574640430403259769821025351243862527600189402549419298020886976562114473405903633067991543348766991227394043015798268474054947233135282349288570773736256845745189200074509457570369806329035617910385831333319268996692236786531960443787123055768428866156645443186825681887207625169257758986152461133030495910767000970700907233452537327395108922831955577297946946742112005506326436457157342341520847581793578862408491949326333909152012919856564251499949237923691970592478040746578248625081709094807912942370233981215673999491643762410596448085157475420128302998708935757254506873622772763159892999910158690917811138602641234665675968922403925418527661123546549907516713723371068125325439249953021734916421632354573811572573134589210126504252819785664012280218713999433824968162617221138628540443448457108278697529858443066657513381525491833947358046614673851797881749725798924634252776193486254507198928196248962234530790730630448131101198928834453246432171419721186609665920366849973482309505976944711760856675401270971301991092937146993165854113327569664841388201931070692665931655135908088038863708609648270582312240367391912625388817739635018381390478482560481353405279708440274068628555065259190438751816407502606313360137505004103142718331129685345225245882127088875050545072125852803110467279783626673084618841517371807405129920724617321566082625961424096255794972243129821285177077357221502980798239426187377226979626297303203921997742702226766813293370110567050007649687636646430718479411689340981792527345250056936955332212011707711441580831176249035962492222071535044271220885175123516940016950798523283895462735331169106774348512596707070670403074949507273601119038640560655606842459171305789735341051568980219400054644660202657252479721641496029684584593712574229754019128632895174903040587969112300173162560395402123488438753409028623851354137121834064099385526604428199193840665056200348953182851085786811342421401986437706915871733217669442258191013297901012693488342538824842549684338809656267290920754667806447444829693188358573272371130545154845057042957463180466121664064962066153568015997482777109988819739931770946020643096112356411056235738731671303975242281242464573778520307338888715987233982740301329011472005683150239259828742567042081447093383670493923604484024156765312931229198125358038732738429624269469244828996375646462641954314640377493463944418700084439418923409415111763872956664592682164939772673270023404280814886912216670421143884857029187834055554285261482480652858680858623554157842716791942316358930113756026199494861383529381820771716197391155756616064896895544246327359938359657634059448388370711952099340403783375790308576907557315516641006460679131167863818889605290217362235307859227136577943820943892649584273913646334511402249304079302169144359988470481719597372525454962625323881758114737429033717846966710051659258263481220426809368879726523842350401775346754579752505725239900723641056454958701886164246869383944019826855613348179937048066696452201828837974313137938601313169029184539150026563989810275454994583894671152697728816760018962556914362781363877718238263139053092185336224714650293900086445068129648249305338813028194569355931533649047117438430947287151430832349873525498963550674033977376811517642771120317501728536356221267627160991598306795575134709526420716275307289791378717087304958048385631914827403307798833558706707949098706603879368723113646494340406844741615662257152204683761303579731518382076258661762260017783350262362890807745386243975468575691251492764626453068915820631399705505260479817842729211157591834491665286271161597659280910994347812970926785674966362745202268493221251469645027873657142116474074007329756795611539400951091147747433045429727773242694807441491271090060599598371681583301188040199474228029455464279863797049126993517721672281547362870259518155467437291451059370608039628127466252900393840204872665064234837239204330242917843627328336512290696714591698635090728009165265624681445177282509967400600236181409471954851459911089432398862532830490851403146981646642111316874533410190160277075913903504225335386417813587044606535226272966810458265245676121521087682712273107987752961617234486739840639538791013352878469696871103456943980710255735087112246866100010559103049990997069092639961003452798505951037259647772957565765700090835105415693289189824414938024906927756005564389050111744992349880316982826464006317171750048444068531108847286801728580256924286575956461474963326521900682524862932191072112813062605421136414152907060704087616065314258043197307684894706714212224951611288242022509072994582051509074144896209584182863517840254722683085842982517831814474800835065976228146590805937608755263636915018450434009715594645074918238207339920541476810025433420861248783133907103736071945229353357852608514873373907935586816175400975945716667886733498177436903183769629609870950183185580987986219162732954261777792801472985459952229220581162779784616971178888134134137753886812918368401691721836679302186277826800040443522705380699444739238555613107949055118567260565157097980561396666004368209455739230754958887994230177298059172984866028543528355650104399563070759345062439869163529141786627936975352284338693132478342570900698805476328383409430755409047307108453544028893606782462361587543899441957810319786437708748489780223029472890834151593083764545806014983777390941039274217802812616704450856708686799884789958953432319862539441873843471991957747749199211348856056621608452386053637585683034145973391478464540198443764483079851428361355536682332319808786893236856453353339988938055600954850716404558599967072330962770923779219778625555619881704001924883361588066046201260215758517098324642373191182447928792028856083912994771021286687488221567533201402974544570437812721550911801542280310021040408143698478859050441339352395477003712557850388075692395710870043547562974627493233896836793857441384477651953273879480325789903520765437612400674322085521020118675765690602652626714306107025302738959934239222360308278246860870482882232084103234663406913929991847360142450978921428047322644826265790838476028688387725703406958848724800885439680414777951789834961995640602061090319045584959698015638209897033294604856439575833232737230126756780931461317023341548722218314243519511010535821688679431487580891546539549402169207369211723988939912333332113803323223563644259204233328413383079268074485059592399522469783479975347135153026031155451115284284557998863837818353473491111404296421855683843502422877125859471244207821540929302298902092297945365656121031803217487630767415624875925464625737425188223357657892297936550459550180550030019745388001293783755509593226091352937369900890877153182248506183929794742556624713656520213698738691773427880727105468563462885894807895486054801255630538747617503272992074456533859850599380430399148797796021963658983103037099025283398004660686354424441256106961507748548496341981325858863950870148677408689753908998488355580454028106665763025740477638361725973484525857393426198034182336295589342127127251946588825327824766865956103987921472008334937852161485489188392554454804444864581645951873118337483798333787132422956871753521058973545586578966765982990631750123034906300076407612625283557826966983033595450983421502697631515790237188453855176564126331891268550819808475974689463967283361383560946222944585874035627935944229836813285534023950822373636392530607414702115030325705455962220354655020464168086896318600205655163669499850243505000470779359512185500312693719078366654487197985139077435722370571615497982464567259557211952266969717407028317155034153237971478035604677244571070073292856719384220391521427016319244497186103454760530724820610760351491004536744224858702601782544019991425650750304223676108697984633749312337760563651894260955281713923275458960901041777209834319534290770284840242347656490617667006573697045021362846670123767513050825065040939358865118023282345877878588631852853341930288019509583175482512264633993876721115721495546929449583631608073262753119970896208060797584036057681310497809761816939111304179877914750427194803285817720584367385371356594185738288331107895693080163155282495376623291620793095379126764698762600830024981829734706583978305663171019593171262982003057006445149626272778937899228210281633231255968644114626928053764301164107024264167519614890979360318784799561849561280735020973696287153831655754564020973167078851940134391283932926858464880543573437592453853760557831974389519359533045696699728189321078262954600447194967029804780421155534580591761512548317984109493828179628570843386051593823349649377486983579029194680861748032018811314735485556195505779342983416317583393211665654272357535394500304758046786346952392288843433322935022306896489593357560442688219547811090322407952713450194279174030238291156574460499951245550164741613955307117960771171879060164930616616567073609984877089439995844557994265524774143905625167069604628036384149102936746361637506679503116647687005297178730853236531972872761520119560060530957260316340844060081771473980150962302053537266825508123274404923107894260082146369397900235002205369636359326029988292503497165180446374083610091970549811113759168804576823487018735307325783667132240370490926418752365435127484243937694922248346388740243025385069203743215830135807434534012755225073556064086810196309916222014374981147759220748750546960956050678875472182800822579209641313031462439309815509270274041000404948973188533446978947351205159861635576205357780226143819573476151041057252846196341247097666227956584056688571624229266784289911077051533119035007159052235658151225768276620366471852533799173643940832732987884549551844064822542426889687546401605747140535384717342740742912235880319567388128787149225843839208424920689653000024374185811426510370919669820346671986717125380215961139803403247356271798699137265955944433208438732663709755592909903965698458016784455635305594856671063941095701840793034827583468410220028468130592891060288287076221382655973842111995644488511691105929946120744148313966258127825440120254255426638189283257598240591560872732500852371470721080534832190533786247339199945599186395771259617203187779380998865422564046941660171096376052582997624629872913606589179462797811248536349439878158702663022344753926200350052679923559228527909339298397818682901703111624651481616442886788756498812542448287641393093314633033809396881568450704491780564908713158237723838132123004386760691612660018174570431313460477934051189285064161212976614029796588712530307408892410938946639027135114103081947130717027833879880150467574990834662051167099277494425365696212658248584316833856952302434759565737430140355333562966679203417918429948710298853682934750292763758342731547679335235844648996445479974014487894577976601527426258227917445842473740162465445851824675375043512362566884219028622420298426105009876441295538558067736967085616197046975279092603947225120171153028623418000682018674664783207575751896742752592835459355044158504692642169981625031927448247214210218795541794618237768448239376271966998795024817928906202161517215251060694992228825750986344773995543576314305652987189200402469857719526350396385309336998061819785643766285557150286493234433898324005610662011010432913138441295514481529486222279964098687658615260377786868121954646146477283721316468841895734009537214579821951004657706055451873970937290438547506858833797162065981552921755647371549250859467968364517726049114316877003945111002517213389505925019185376731370525665537939192490637020784686017302903814643882251853985926464445848268219676781771208183428100029542861833725245163796860024692027028179996366906394715346314394125463298398565840025299884784166813362788860253015088579563706610958404649909513958500867581344869095989311640394198064046698187228171777539824690219021755209283429754859104339964019763706457243937046126587096406551401464944188341656158639050796773219742814802321482103440387621118064924930660278553834779613964760079947850144592821075163582125339138413790864195146691467194319051540145552329237486309320919685426678555925181491611076626214200763451758445893184710306476300907146568835003763164959434295434280621908821331985176421561262592817152641499256179289499839184688375756943773813071429810693998678635022823325934827116946445275040178494650187840275817682248898455884995495714124443983892763640398945799880056877275433628322494618916091164318931441957940826034561220223071938590099118294438731812987400158909518182412452677315530287058574998688383137270371493456572650543918423272528944408774615885999091938086391144963171014280502529120391772435991244616626153786118057326313194349312701079234354870198620784771038205079695410749273718687961730470024552586439139204170505428903108418858138733589990652524977695427873033833430547438801033277128621789843058581910815402452663427672481653803880965100759069568987665125378169035790839295924008784750784081797636990515339490605732687825083772346490780368110217714124366904253379807501535029708359324439004286879862916855116307005210557788950745873340968270756372387484771635119483052675472294686225520018654042202235689831296468528287726044017947416635288851270475440431400422809512643164291861026890414273705665214917885648519254388871632617125577376902579182431234210351438160853472243099325841885004612304748081079716476386927787056336821450779255855740297431724902295480728938937446162512228576186693441126704162478945392287988966337620962861967540421815318282928136571223887379573289777628779867839938799946801388136637464870830922119330858507711473503792636712170872297304573101064849955272560357064614295922789225501615362631143793324415021699177209951683721567336567679166795543222617187250564652738812964238409994694846720591592896602331238305954575350280303333530656455390946620737219086854198673649586487063486780202277856328839947396796260719941869301714128770826543847999795625378841043125976523229336965679941365507089351499648240578161616039894202699257635393720297347519239686746674549548478110757241325891378186280664285366441646380509139388239017664365482186463773907396653610178790357331671731970655887421585475633378952311462577535744742612273426561089593601243514662038024934240236133980833330027821268143733751967572207050925133228005847107853553580335125465806834766865213476887991616361092886318241671655952207441258588064972913332904233512228931514771823523829868871383935822392605867389160651987739886230983590179671483176567473787469396120086188596376572641472073496565316746950238609152244078328710945045748872060715142417860066295825858385643396357784609556576065813962422090356961906258596105239425607176366577993062504341187071467421824417182466937243762373360783370148721073299898545813757298384148553545288775412320925619120238008019687497185888738866856042855539001850117333851389723669156311002113103010664632558997925719097238088167734974960227471036406545269091389882935539972431688980901090087472791165404187513016716513567228347557318785439727472675896450659230180192686009628743967380108564439547400077770370847778819097199455199712281304101437870627623582164523695342940261847998919718417300164499691374563791160262635614595654137548661113198877736934494497252307789724112576846990669621277267386003551344564041956515636068050521135913244360217954983505080049976131494222003628869135619050443274157403152035436103629247032213011167964914425557158385818176850412973095125597524717678333375068751654251055829416999764582448540646714739295562266950114111671299520823409281481792135893096911902312861089460786704832051790852198727152616311327652170214216501581537940744349319705309014841114986661634181908982517159307644249951349529810021810225919158772229300926290426313141082292798940269017319140775843474769981332075479384385160192979633381651645743941958970627427046426023954184236567055921061382220696984147766192737748688527595565165315626996150552250046691588204173290136767434845710037708398154324033229260372853164555214495444457427856090553456063483306708105803014481467478453107448478368094473710779978857890133784884235480312839407391767970273227388367493018200418369334861664430913599084704905398927408133574202335694276182880582032406485904883671726814348212702939852416557291632496462644001828038408784978919170166821034247898082180188422058727787213799758902631024237272209699880910399544312924481359730561771656240131427914899530500406623243260710471330910074389094653699761582332881047253672357038416204386359344276280267881907150794007390652504945177490756126713370424497222964718937331698460082265981967497153269195341773863859364846312556760810846187067837242819209444535553407475463365785372058784207476554088257026352046687220232835332195493018402755356443993080926194245236847368315546067926691398376585867963742238096992649727242863426585613130773244716087521135994257849520229792884898890524495318921484290616655161027468172980127939630970413894534749768505029111420864418490375079513951882833425827651841093164279361947423707992795272373816478605683009882576117575319925598673901725257548114527213928058222156672982128507217947177397166145047996799742926605944013046461702214751020213143553449939454226315026026468243812500101325029557145698211347948727799739241819902507191250642221883051293533383664474925096124512828160664600674338712398798243386235546586087287651861898405818728613443568365652498540831429526551949273730838660894107227161135532672347567390554880895385208183147649539881900643039439952228872411346312517207958402441302536106424541414257602566227535661586466057988967236312005478235886042181987719192547093477472394195014127125500521170310450671559042396970848358150945317712506184353513044085577176999660019898115549370695430600436167269870290681103410971533046518016469913242480060886494450546367706351833631975746946121263134565904901224213594893882895417047063460684332222887552271660247581929578581223261419291576684232774493768229124433904419652869001249782943188553223324117459860672926727351919866265974823541716430858101529150310302019790771217402010508230695211986000911808807367450846473949040581869120393856754149064413584579779396596529363842199233063363391957432112966660946195913493428431146344742317289532218323965625376707306375886848269557702846708772842620557595780874448567938760638183065390917696802499444144460312188046107789681254173347282460662236740541687801714178782813184353526731650499541380693618724327273733222054341533567863596352300055326117075481719327824417591407961574041727188545576585429874533984518660091364865991144992328205893690597606685792953843008979789230150918548501781659899564391798371114446171494378026683720539466799008333566506947048546127987069968290193564625876584790385770245968582556725644650585765479879898548204397893068108236805225218100002096393881000139232075815276562725865349262295203561376320329569794859956473876526390483167645846402150108913558536582045384472901525799885463005655197263421723593822072916310330657818740359337325458697045165211471945500517967801392637646155706587945426521670274954902424886876795932194280829732344803192978662699809235247227023393451605997454431591666015598299521564706510380474203316845637843243382604872033624330908637712984260999379287770236683187885790935296201948209355212553835900481417334729129758898950078179151392363281342166272248306710440937950374058435258062548055180240125653341359428074267547654727529003637042520237612885809080415756844136883197628334174798384426578521575226034119653887724773226317396274785735924938257621789448954788953634983325643022918709229371266253192769819515108963378298010541619452176657982479842753839316550144159058733470133675515303238633570159221196694299371364303960172481494298529337867637737291751872495141702153964400606015929113158174408408331199538726375027167112466894495394407488392329529581819506086866490374046798626151446304995813343050266225667652826764017315430414429953845901193087587915363816952305675301183979117573509986063424042101455782086534992325707784890182907380421002220640740149658097157885943429118429305241180376479631366924418663697116723826516498342281830501771274671134917852655125599999536627134307659294927310017030262694746814842459261333225940496543841670936210150824240590055334629087900921621220567458291490548894999045863077135974680378015523722512568569240248889512324353389863817416869381149472133787111095211206878132060661415647557924009529953155987185355819784335117592467353017161110873304550309244686943471094860189455359213486146150679940654527080737485212083912327999269545562288440692884964757414117075102896693093673099941739773727211690685645213718378488466633756396481139542091066298296493991018848764585240173034201558456540191046439294825809338002879197350840137144214042280556000095072342064891091945717022200477927499963606202603112469798674286349874517455791284844126442785642137095188678555927508408837593124910668336105775250423554021542596363602215537646432510845656151535913565030294747334504576029535692652923912394602250657029988060694498503795440046554474630624325547253264870673428704190485373767154865297341488561918333115759208163236144767882323358018590263825963517596545313136798808932193012904883585437562809389481233305090069663210724142423243462927268940920000085990783899033072659455081656198664006230546260933939745903453537403688599535694448618695578926359515303564133630829648647134891767864178133822142930025851523762616043576254553785618094583881560970900857978799714512906307036010718236265145113184634543632839840627596455226955296205050694471039119100165196747597841426832547352498000422507460258681404422696405470347245819776842822505764351525393366392550520325096865214133849696422047985573134294898946457975124424682542060162856263673720930006305520992271157719125903827029092933940052949946351430617538573187787507019490816051288276619986681514737753996335994531174944644551641161892040675642421509843614591414978089145725733389242592533557249348534790496893724643592404741268289086485369218328665418851553223254098341036413159774351905547871256235016373968388640353468554431785262039033724251268846566397937780802845190025855900424197733245263821998613442194351519352620095181347557240935316615032071583173887646590363192262109338619409363742237526678390788586658424254352332745520416510651249368912250048413166933269975657111347328265009381351891779303629320804297672312343964802075262497037298928326215012218596369155586363856704860193683929032836051313531863748350172546263796950324967992267595369920113742904202222452340135290032134085584250731822091070251675471671759909572798587408365818347131991548418085269225155802202406616357797626045410435765477715610897159039894023597104147166136270840053541857520523771254709105425237317772172011795746530844327196904507154581216398523330074716385706835733118556615406062798717131927609090401198537348642332941808152207835014932043481876273259983716525639099970845898482089902072823317914397553841636579457409191338122456602017620014121120728007962897009383216470699244635210955853821525389649251491477609663423511629850238241874630794650061134063984615587674337278904923750022330344459478476336033233331016234538475968595179970349659091532290577854703474952073449657797119515891880136725642791274387075049258557170053930974689047079986703445735931619832566479012709527551032166959667107826821030373270719331083648899714099690768666287116679668507337185492766248132951186398415252967965005161788861396264865361158297059580671734076426839035157080366225987782186262432466588483556014918200475919909495042895367593013646151441627915734759818529996084312903535074921803102243755750210906604076971148429346363924813525902313501658076230921808136325111578373871351044875372628832418557301679374240560368386077428955351983065122030374103308040155669335615475386549695335661891303048665433209777429727369260979396365301571163831783372474864951114903992502233844848325896492069677159187676997286213952731269471150558266917661541507699505081084973453423478673569041029624660348441921913534383150064983400296597901708201606793961969376521455867689246084606378005646684353320199939442871906592242939275421685091375066789844093237053209134310364994385067270209187379902668975097390768244898229301982172440730976620695564658308241029738403673790214665886587392568473885821887692870124917745969540222891666902291645506742984232034242710491524623941233613968933366130661670940623644609974154966184119978199639560571547783589134132569978407083343548928504069197793736295955011908948883650004393309323214823947338626148991323169099251738904886047574902140290809923853183304080893797808307404540869264856798647018252065362004905279110961779934624475400724626420147583200814730944039683367690306550051080117754748142279095292068093341954634642365951532829702948713404869743449933417203189980692727613389431868446035998830480154281167070965220696856391574708580899200687329333460984753568541021831237107010293939278527118609091465750799643820657640286000612427979732608427086367643507659892356845046015450515713783111918073421319624487398347752558479578117916741753021562461058775664199900529975487665604790382163286811988765761919911553716739156189615756006950272623508832015699053278642656318065069291543626210374759287277651704722905558876705661821149906968564233883556337595078718786243735718111072242499744395287868297776963452649972458438581841878320436944727096793103650986705224390912520180828683273640109986646458887328159993358570329390890829177222745583970822521556901242394839197634047070917501647535904680811409905199346629490608328165488217909763936542527891427875014913899621466792412048365851169261141645935171611009025276591001128781097047262220788176525217602157518866590226164116833371049570587033632953727089748885871339763755035810329606615307477106389175104735777318846114079045765942109704158822692138855098554657259140502939367947641752390713197268629289532195283018442705610422590554877228537857148999900342868796912599569097921919703922457980758036421512449877714951472492125746700617804400519970479319613049752350561461863477392022793079350857178879682608390196027212897647295716558808690893425509181710987274655266169326335894304947722017111062260866477850041666140904872329973280665921182192091096542823460448441591000673161544631747402422524981261658072020352500899270727107752835618474061868481227260719610345224892410770753737711586139938916358777383692362294296244787812586456862919953624090395596281501584768945057196941468388824697160578531267964884125611352371345700227547913235028881143073968605861828284580494618190638540159390384451939268823814927181998835482936620365670135545762752864651079981880155691348229078035412064815019717221085603191012036575380507672642968719014716338495328637576441939664381190076360520472364967919541961373288463254451318145590025963584228299636814388384724071798856287711465784985241805154660483546674139521489898410554425505668165473872635264546996674091351187280646109985916078392708792732479670349203205865453184674465914191996072513082636609391538586811314977052147632988438868336608624753491968961172739474029879952933242853034808259822683897079879007838547255426298694456840018614343683067746569796184608300101851872725144305966340550788769136475706902368591920102753691770570592913793832634985604682660205685134534307395935262534002678887708758178895356851452493223937863391510249604245443039693947595865301483501289937213359786860567843325560644746447573339357266033745498658421883654896087675876344236919313229282643763096997535642025793876134331867299551520109794088932312561034253900921968935192099438115784241394623215478682405419568145937563535584095611755606638567336536261400239342580996251694239879043611238477741565764900310408128626745225989689719737125254389783404175463390064550877604231855951475990391693637049837840704032105127592245067818648478740148239206202119358358434375110361909054325720046592457776916506327069711838589218556076759905244043529323270776419361801365970246019951938775986227743810811060366077116650624590863262426979954636410514711394642181070843468193817580384781103942720136274168809264525844841799571867379025709082427387208184044561825069223957808715543284240044141474544058205639416289890515224298233515573449957576379904525873844049892352819664002903983813715781898726504057947172425315595057481674033525046762864916998920891515653354903819506362337743332302219376236061650171000293152085923047274549622491438282247721662682318779806308233175323601334259995129191601160115233774743805202606792268496881893213377727908994942099564070598700579413413846952040391693955572902445148427630408284199459599193467259184645763197405144594850102236665894182851447387799484599319333510559586535402481880592046644434850478359292158167320105411519894619709027562884885027617197330971435960439954329872021429104743331748048231036497167636597334175477498314229129694409917286057312546127566014093607648979845837583034768049934864654315595536129147123472299312369415546912307118641484389604569551805931501061000691756146458120538829468623870570973483555523949317228685884258640504643387342978760107971795422712702527338000083774851339076733608277937201526116920023811747730514548422896663145918343497108177588895715451063530714647561170018171201146062766839113861018332225170155244410192110898273398564755392587497355155917497965643678460524238515591867906641769165074999748751896997351160852619554911897750700272350164030119267743783234387702127383460295989759210185371524318621609486209764187703752893158676779516393050216679624469350266842013842459765581116557788520909235752616021628354219047298749670185143524353595208843711813309614292288301013244351063873131195718641025683722413148323671002010595828749593519270946903197444114411602828495439750575678175763238880714270890439806720958216152199353951803594674329937031810052762046581493982788032549209963553655273319915876143442659230181036702771540832205825918181050530529722505851973965185858962579474033870741114475925606272321782601305847972631739870471391153440198704477707044217018625006548079672657676797165569989984640332691116293297604450348577389257289738180369073766296790439639265896700741194646939560835829833825009540277155880608603419283162667852308470409869263348960794004213580155113859046633922511413211964430729451147298366862276700480371609332650397130908656846577874793091073444839776606863135955224638883594846638199336543468419214489428809527182560692148884429740259867031443266420408745550308650870589360363758828260433916228523311162383954126824568853219222465081793434811659470734495360348343650630676402570216593728827580571836964744738525641861791272894450335333094458582472104030838116077297234146416019183636276027783494812938968902953186247801713083567959011159296810565856598166213995671067432972705221071396278959800484389116171473506563147856125732335508941564652275244453319917534095092063048554637832980973231100823354401205094877443349830875526633909721181223373018418964715035392486915566823906413979498137512287164103893848696156588171680487286636341945835324980281513618308685350389131154437022751659349626828462860730999302851197420034927028732359955600786998812658192865917753150000037495215656120240354050814246691878033313547239325825707181340339723098213471489420277913422795467336600571173466180141263357710116780111635495313143316549146445807301361080304290947702484537602329484440974589310158082655340810186108926122392324493520861973339714240783882053008229541171982431869184657543684661610732285267563155658951909009907942062025910750287606554031004096180641150904439292412374044666603711214785062046352035028383744279464556864758869741457038146713486219284479128557081396385279650790666793645620607280802604578705777393432253177961943616424720063833592047332964686291706150052512227404703207989352806016152292660263369063732487357483308758189960497958136820950371552754969388183266682888242453644528239955379451198992887426370815805958698778227101479961616710107546601474087882835335482735903692977925702504472503474329616710077164610407897620513876664495615287778154856733459226416046901401229887459889027782537197695615544192152476917792140148127493440859885244001209903273217833562325224019823593759251269058772951224149029544144414651974120333909304776425575544223894571947476363180152358441591371632919859991242954991936335579820445001502400797376704319602526142875053183395446971563181925522048334154374582440974286134597235990418049110046881555427712484113169181028917200294375626189420168807848831076833143131535194298381054447023317809796031366221974596933259019154566640175550944569486630300102416718968767579269206987593391886353517108093166605666453514976706082845972486417552099370435754695537190242094912500162087015370366462613453647470641725347196074362818102326629921494482736620620479343133048386540872200972336271603044759758213048731884058280949778549075912155703943488445532973479537690939548426068415196660278252799480955712903799927823796849922297655463040054520695837785759529385141670378538508928820132148988584731279634415485373600156310261025909782387961300801715424111841931783804954535014607394569988888986694945901853587402424108130840607311500093778432528726399165476881619470250537184423996808999281121455404623598181944867208586945793757882388829354626309469257798039775384096341630792002508724620152285895325454776597914654967598701406896518181368019166382168620577337804959983993915715606652780303130516306266016633876924772435326624637065084403047496465687413938098892610597659850212824440899420748119964984341266016175667831049993160948012041557023939425518069480287974726978201348349895592402295729751923088613642094433560865917930692485535630436236851910733853382260844803185415072849615608674588718312474000891477764290195583160182251190080519803301288045826448611151373187780936104536076471720707282896397909098260144311309938415982538385558032306640382334348169254588797546418554158595910654445071013236536138707627079165989292976737688906671831216816217539559147837253708670417847411553108570737739458434791931248118835869491975469258137770625254489939684434773418446230778983123005808060739684834162576174589068257454962849732737002389191598091035821557651182698340166486982261029473841080454368831282486024545273395082285920726224881685171137826101803327940934661795582456851072380651246128475478025034321380157024026604405634943389490986668301591296890099646855818538678243232422232858992945134300403159353392218093816074509583779569763158152665382622950381760955013873763707275771954455909463179896086445281914062483623951181226921487128745379940960154385962049529634366610112226421500891243126243502409203100898218655203454326971725803042812182637392441641848560874742892718695521181019585463143107611276165366502728656782720613667115854385115637305368359525079098055906801839733900932985477294920406590583300724166610599848678352045204892137877906417133250536646195136220138080507225944327026143132335903945457349003136735471964399888728901855721122373429849192144537185587249311451942974471176492421088222626769503806897380384036562343430535488162913063731032830013421494066250053090180419631822164173995420381057278085112679189303121393449435519843400351190705405649433139480237618742648625001001886093432604231384124800562070594474990505165003476637683323611696643907131460102565208644366849952144497140991212762950478100492605511735311044455065171425318200654208975599923093893090525049116739846632261977307938853934769748255636938745096500139097105727171159519238959432412917743408832150109133651405028882956909482089350673295652310154689658140181889352679723472230786550153763012073465444199943445166196416458782199442420235470991801484787664888394891439596107332858066770266537007265813579661769224290017954463732283016088024735895443173621512243028975857992395761600906058712289566746623608800313628764398283635692870099875528168995513025946834373253088717537135311465740476380247323634699381315108933842222331213355948109409420366875748375366231420703332830983408294602040845513826259174355604935164154205298874240786623200138268786406918712107862635702203121439010014404326853859317256026060821846666355412836095636738129459818584427527616258784038730079161481381440124430236451034548959149858780300234592545284436615035224562710117980843120115247284662008237029860266523824214006846061405318598626876255650160891523741015626976119207634194496751407758091346700363012661037918324871793013006511016757351814407044976469635305775998195554314423459745627937842614399732041909953397359285571715281040845728943353819027875428384130812403323697909549195328615404932839719212848764136091292055472847264506230962245851712145273464159579598019824829303109716360425517980035780909251385420706248349258352926963508686184815726864123297277204751983011574350718626551419756000345869003322104759042763481259221722189503024674958895120929994846173512750886035569397742893358270113018117362924456609030653626267631044656811656527124070157730178428524008673185028778423832930916489992369685759111630659862211195326273736885378226009702618954134061992779469468496639259853525153293717481972510000563011910304606804354882998077837947835858793917296933045223367268131416725064396823256291158619378687793457850615342882698326193993045887627602368351184497812664031700952651518931836111345651349553482331763261449491054518787608843632693906687782801670935928873719801474176184943821743063925999266124175978985431177422435365017290368779475688044931343647707805837142653799877439862094854694687927890757114724932224437215701106183705885407487673345547253222957114450726727677169761938972657437296242915038128099708762398259259677522610362186560476526086999267298711637330522687980910804347858420652750848684294768307354525655288571548312422906361021337148849160872144460566283193345992828896609106202709240328322327668150147986129884015539308267822625660800670121609471715260865416679914715863420181804507486497953622107947922084419964838258446749759809149427751040472552095114416657306752510520486732127107793786278052351923474094895389672716714272099416561914280313563853242457288347266362822195469440841033756878292857574333930336434244665934413591991437650987609330187068333520547210362829340088294048476470706831338488265338533481195722252407102263530043800569653100407064099324824145416238595618039538331633732324422031766902900745335658210194677589675017614963613092076523715744800024518643150934443527347322908061802129125757092119528610808581212966705929918348883808023092099675763154637221123822767365823415464045799763433178527975548882222563520410249350749564035519325087524017164044168616047173865559959981230863562035045463532138436713903617855628207434787377755181389276057899234550449200035531685220029845222870639483905148990271200271713998385384723515722044556765510364494670408087344099197458005969464675186582013211513175442055859474849852394178095859905618027727217125810978960140428067688637384949001125874843635246630888286350461375384131419793890082917543306138734666810099113170792303668906909953281754128736675261840629812884198651741364299536602017478600132129149419200844328569210435797881502134304837693888422810820044292435349112738277225433413809947446828938823906559076318823993209436245260400880758945423581228976850248264278804279962859650963533997616534647412367532797865129919832915847307706388256533690870333651455692482336963340625925373725820138336617039233194971369834179541011507036148205010717635326802102225817216775563865006431237703375116969031925635145471355062647890433386097408017711683909061222232242931865090644593203532448088511296126682043794137935474176279629543523584707961933760501422480089921011980598236269454544110521584656503246636152997546462601201260144110185504325533968265631110976344473726671748409762170395791857747003585182892325443599633369522935272327716406720396139027466872206170062730199884145545324144858165418424953435453299916208220118931366572446986780589961665322406088455533182641246953988411619400353051165977474287864128304133817059844013847474611941079894386618695309978972788060948367963254546662754105612013104117109010582882750308127089294548276914681548309988620848420582124126050573342310178368694058480517473324753043549781089764885003574060819287270656952165879383839713288507198654049734745791280191390266639925681548362952919160207767564179271452763940557734170113891410530517918965546788400566808462671813753665541967367989305305079408820068372076590554569044447602735533022469900833546778630837792300479671659330963650340002213244520104947676629727900334407265770797959861439858771518198178947834112321154806239055111224332715046195819176488508442549381738200340890400235213769092921650811661492648649312416832689163898514923134576401101367178400363153385869293338459850105527277158837528988812417512652212565320482005049723899187625571818393681893179791763443435437612623858598485404156311942905061051425818196683973114659894790576249567396070284945755395852311863428342492054932492457831818258095303079899407523580796106537460878392455085320139102604970683745683171507862027200412462790798257203636200938597325937161350101491377273494995504186931856415399963785311442340060601286277180745636327441120864970389820064959375783528720813839082220216734407062891791611276157172068401262780274848166443512321740207464548134127526646026503113900449809113496343294999095443375358120329997522125589720782116444876383383086390769709290991810552539353359792182342771267015530260899300376383620947055216550578444872148305134216323004165339915211771130438385445043846772386442601218514124030575485596176210169171196467764130882956187493051113062143067969352126947434095490812326328775469915812402349801478524424410714721887573122800272889522266737105059870689048899059991379460753942005731250926133191176327854785052934390530245443734749849818442257157561581475589743626528678475064473382470272905051286591322620713587835304039637747480341592116124721216404724643059323180658373434688569689129018809792928567200158993443529086994492717934203219652541453515297520084237596451443060133061525304330759596473832535152078281687419615602439826382196275403452962477944831394393008545368224275301595030845776333861909027986228206938717270966867083679524391148028634253358924735664696736550647868630153323576957392288450126612110852013188968782763796587551055582823618636995459211848517957136826928740038472327473407940303162039092575649128685695399808249502521067614741920027160058570806985076021938362965903759266308688671808581540970294299653304679760516717526828027557317951829741024170530763720720455042202185694543398018937853805329638912751859414770967719038349376851405779399478379095213441728416060323745786855970230192072888921379829679854976209960415669620613625300309636114238279440900598325984499018042979535713232340726289278131345084689575640892896501961935305921211998884639819807645990948415069453103885107554722279175216393634738377468976725051127590619211470659580535226924716572591402486486201172295187673716838709407382757151806022817772877830436055607449473080733710305951439386457356342466067156264232489320269371218000293053016890919901218778722570045330422770444639797327522226853580399322749066691026218705563129960635376992204499198065440233605580884060221861109027364221459756635843478094343353836268390234260920080937538771160427348226231831779629667366853161360309843250621943931580579639576806547301976113347079554367086343915665850434188261573880918426188674777541450756249411575697944108703806936557455543414487657948690560840672998469116487528296130154287751791955284859715869169235238963752519821793009100692275238219059255116027622143276472415255201690369153998575084846156259395563223023780370172737394199275299475186553929609501260046917297377658312819096489225681090368042382454674041573129152527463709649726780750394307368960523193397377977803372202573600125964023147634453235302954071951883253848862970527594037114402667361921006824253525022671264558534511091873160709474951413911470633873521090347397401628283033027581350186879985042444208971988943388881375051274151129610026168736782694375177542109764829706356891975378103265388169468899952329912912009836372058709636644285759323015836841522818070792726017923811945794136434335800795024808287322454925802956281865881406221653731980100444924370384541467501289797624229101622157382385226741370011949438385236888548609355031872291391788825998566077031816161594584768808280736410055108875181404468031388840318866897331508822654111072658415434262892951414967813039836466950646074642355628464398058941531060008878404972617170743926783590356877097481406963972045053148958978209097194609143775816541514652946571466074670028528454316436839662312825799659159697989079153399153658008859691238165682306421414963651673287549844751190247918161976225275307608699686660376411089621561042657291249494063499373778836958310885871515508150577650765692918184422746438067879146505018920019627572054539309882929455916672367834872307012329778784603558775249574181668788566528643816063420692794116006129045340638960022386042221499760538257659847731009906744346783079020474031371432335516929337595986552183524050394162598230466621948027527257911351421888768665345419873934139455655474853671595230605472830271248696635631906157895417608268395701740276870359823632222337368360773474637768933854362477000179462635563303626709093492348063906630232764167368445485903840050317238888863648360041778484149357722908325844775975023801256264383573538688936909464520399238302050032945962475320244705430965716263755009076151848994828538191681794558126275343272901891925008255044867229456191901074686178331821117160482365554889849366058848416496128028769118878332179158951216943974345350531442204374910453679735511483469762885542305083170938423107522630814175031887764406708032696662866013078175676233913954213595538757455418401677041770595668714399673146143065964277542050541342811195292765883065179961514367296819989205114455285303914615975938639692424909523705154457914234522587770163890805711466767614182313610993656112906902823288362409094926078475124905114879312607155197694448989399549307057641263187930413616729427062084820538184824329210221880528515408012575170118018564194460374569204069436564736440307905459051645467185359368199159787659941954844386606927465175964344751270458333249637776661744132347110538041580491998079480867521504307870817804770989742398244389628313266185181427254756379050393910495012594552562341790345053662565553045258603097151611780597675458538477904121683739945554666937079114112566936454518316283617979579238063901419018581062978691729865681836500581851795691888143250017419142967303674099600208333210354689722149670681749525181569548634706677093292197648166842287776888609661095250771913706990741726107899639821014726335262993428977020124444855656490561631369542480429485324999038609437984865706187782616720395747692895736017734819924926725610375098223955185623632754796210450303575625870692002030812550175525501763268954796396138003633365760772799534624436057038788866233875125581675533421872791192920475971556278427672757105607815924334602170076972998646379458214418214384568231451711842784115245347614294167069902138981742659903430783097237897383897101551281033661080854248464067682656176574467399215342184037868984094423765242795000641303388535986676917764511954891581619308355721932237615784093773346274934292329870502274204154683188267666384652561787021475936499276009666837748026296541806556347513343613599016113480004604561121399099385677038355523750157375038548073073698792229595488341247228064826129204396163829111358286059644848109604070430772825883147522845464884465585321226891913351714798918554735519841146197185498779023201461276578421444198752044917636342512395017444208580818177188120998121715185311984167633950224159180571600238659797668286044781057624217229839200350838700467640393983662901865132819835249539920915346023221232950276682368984126868538316200458216051709789050238280978908405133022528388587996771079463074017757740809231734752371318398899608123977532429583689116224645907129381514213304145196220175514739141787432821110807125272458112103331823077990753783453426852799908409725350500871929552687803676689556327531373590248329371070758807986906695315803945103628305375462345010100119710815947977371851218235122552779267739946974862333467536191450973362908594723281251431113519340713927705703692206825581509788820725886425492005924843982658418241777027047049324353432073624137969976016682753087113978969684758478513060321476818929435771912021040387924043469766027777682173423357131527069643684314537445931722538707269344119166302477930659904251677947747299455558449029296063014061675668899348788095650669904912858113175929212458507537074612679360122381415021695144027046908673382463804296180207270494213697332116149668345997318035276234206466377176707482309813537049852753599818020833683547315724295236545395595981317447662703258112412879462405701456623837207551251867970756645606874919731388846655865757882203791553315626973006454982257163527747167126648510507516981453174879284872298431653389054042932790638175259740798356478333124167199525071892600180144999668001247147211362898569962153490035244020268281438382621900371321580551627087013574894572404319141544978406054122122307228008430718944533591751790607084190644238130383493161399630549505668439505046063054905636122580261268291534592855794435728783847280438374073809694262051359747425362954537060999291446527078203343932375485238981742803096483912254360107618499984547338188047418495343112276107790306056059609657544494488600657796102817624740560459767188021478374838875269376422621932131693002992447779728278123228986698166550224199503287321016257434156647248530557050944820697368293757767983966456865299962476258442615030540682076949551868539954237959463356462050953341449278443140348099902221476402545950969555520442677951510647971337589232404141645736499748469384713114537191906913830644101355422326809223564583772554480885743846992689933132313713099258032133956954564343080990914771267009175960922746201393958340544264891820373058650254956291068434416983543001791496571403065565287916504679614851138715589434392838133617282052842816735814473864444700034070270193856498796916093252933376719791611998410555949588289180365842296850216380946109139380332580228215476521960175430092015034309305339000185067144267374950117391448112839378281719876777081079591957100832347208420192001222747695153359651293448607197416126114359952768872540388258765236337261348550844861898388093493048703490006103772635137379980289695186469816447727644545599776904701506726338565651332256251324918489887712026464388887746984920186459032374313143364489440707464362729769857912536085873420224929375869710481355164019501228427172289700409445513208463922746341477080021682665714359568330803371277910997283682633232995887481243011963672503092932789671831067094195751664372904613069922019521841362075343457417637837545045996679773529321609766858704990295707051550085761789269211648806497056326160067950840099954399884648835176975691772856197314163817861893280146118800528615107724736539909508444275111956245245142598680622823371740240807777952283736595705848305161331276806028777688579321779109991912773228595446665112261264893080088191311926315629652186978992087931551600675680641737971153014005871015070496053277486047122515286996989051711970645083816431995459108845019731644010856810395964944801738139905654788803194237494633012716391485512178534796280661047439290370917456687573970792419986173651293967658819616071063980560482990224180709259242492902858834588605849099942706187917371109234738227689919702482502044587880320857265382619438512479438103485046617330696965106882832910137815672443761301783152733255776403352475084561325523218131298657050719887776646277865577780404649995430559467942529878499889901901820283579674126665561917296351780348561193950879476879336924518003670789905048442644495008746488594522161408917325592302986672181434903124186005340957979262688192786424944236479664631264438325743518809830560110338249416466282015196231445930918933081116824620036256994076371464831997641509265238973359151420562995747497911258221751064610901083817009032605798479518911747108327766350955892440298017581869161641806413401456118683766875013696767347780844049796086785905528016941510196087959315675733457418763299493412978536788530298363205510000042309700122873278200394988876531959913967622589818419269631819468240213827885148775360060797189459407439747571805241777703001805832752710310962119752480246855638344013856797261359783454805265668154862573926925750059278315952780800620279741885248068864278244003002343771829207040036629401375341325837857181741067770225577965441476821936687903410068657842806185379044201413759907755679176897302674885316831808811727439041886336117278522625338074044188548199860512545263191502678601208167855167357975719387933101553067406740421577362387662676294826718919212819168273271874446412745771622203133279772837799754410681577397939073537536290150466308451663517593720983949179029241370852951183557961354273664118026201718743959016697510892220765103187379981812092834427375684994640927894525008785961200468930686352796934213173165933427076959452583634028669324071328431141854728049757432486032943347178318432906643282308574164051310968488460674302428094978118134025460141106708370873362199146250740662587733637035085924184322778666519251003075385438719864777559281194049309053370083137381377520655530800222948444454386991891865737057574794608885313074943488166266388299748304429386244706252489987466022773463567882889559220982983867241111233265765670119057367104263322153160790728253992668494302075132303547391303406788158314566752327960396542378737710852281785110798173601507760183258879308416191280262102160369331001261999595186797469819034019241236372274699354245593625775068946557020093785289252321091479451016246195979246573222440917531472100382380712103545251721148053091577317782031063224967913964046564704832362224051618373382131717235303521982480223384477621950751303335681597203649590513838082224515676565545855082566686168477005472301617770030041377190015760987600061067851707866619264691207983350950843534464580903839497018181839097287761295267948207110806611205770316093328058847870817128748018619014016214658891406106809062966649252813747217787779066076639419716589389183312225251587571684632474402410420627270075379779267697787670739147172462263288284668692844920741486278873749030489217761964286057009961738749034773239591664346677684560243540312750942981685561638590142370012798190641530460250945684795436672197824313787647039744819790546770586359928192768356806812739826080628308814655054868261219604397018839811539160937644322070181758554971842863490030520287205525746704105786731234535924479366385342590603860431592997860547791016241568647498079768108475899862108516068531183482311748253060979198966287904461247219680298337616152711645649429111781067576561991869515444021722811932533225237358702203497289296836557077942284702709093421433938749452013609842704265848775988313185213121692068325388850902927705738058389506573758794586310269150331371731897374764571602348595158026938863278345062789210057559394714105020832107108504317054902329969867722108060571391856398918467529347993984982702271811790754543606367134837218085326043839315435897917684383392656580286042758240926482594871531966819718482854991376969148346589291391746624135162477759512138523462903699096281382901204044819646746606430133641794992949272665982291962430032998921411630567707638559961464213164769851859765388385744501799043674855534085267782073843364667020316262955401537981593854919400257517172264744218113585104862563204813780495353273317363079212283565059893128598868187980620806572867217055169808835506951390668534252473098080759905153731877938628564424420419808804647619019295980401142163619573612700815356104191127549967102432068158321400038619777089011928078532825224345065403059354954427873545151046311074264182986219648231849778009801742040938212073790494921405565979000261161812739124376046863954484663667298710801739844482487618470347588609382453122428435776007024607893355492620554492184558998536564598154417759453171000443146811244447630132794826143934770010016970777032216335525634100085273508519938393390799936817534154361702999222453971814855575270831159397487889724467953427091335296621620811030875373755259715026189129043304649127566330676011271620064502172925425551269622409434175324048543618306889821323170327260894989866080058545792517287248328997084741933333083325385151758687142261551209867444448252427770921626188416073046630228571420976196890827321004435679247871600754703385334466775321188153336305100311300244224502396338302995631474731367963970636956228279975173448275924094646204152536836588701343512067261129315899317756796094019502818853602714754229699709536509321812546228700989267392744004898796549668211035708785755430500342787061608118460231958175613547199162317703250105846842717445122205646111715065345929188426158986229608244378599418792195064566167718592699089243843948170340139052344550563019417546616325824403185921128740103244499871449314477700099728614653864355454955800107012918271728307131364667537981404955675684692216727951123539967528374136452719920378458885145629568177019680145679230028612597521835836480109145597031151766596551280591353481118567223096160719915388978603767193359932304634548390952727658141265752093126144927605168090666356528917940852493859428845943263405337651964762162325533701814567427827010150755374624181096363196629643451234517417262180216111949815559044521684518997653126289516946885883622460147682082633515855612754353796020588211732499866657745265159397820170762286204310041152611427008817592127856745620032148738357189716859329914425186968526109090465681402057027660321966352476287807727829063421567199848337521677191539263503223605624865506352936480558092515411765559659990974870174472344476595946891376158950732314236075978814592895488616380872903546896857697986603160346047571942364191433683727480968409377499925255858654476341402300599494283640511250921442523245436826462928177723444838126295202747932997332220409962526323683265922130963615515887697136419013396352134687893590909604489079552291450864096570321895652945901537699181811428024202500002242841710292604713148035153599121612067825519154521309395881699257941692752390794985452055549995940128689260161186826925098324259948750245951557379687307090912463611226859793809642516192057214440822870167404144035288924450746330093480079508876194370362477503211330000951652946135496763266930747443087354110111610280798149396482321951797546144573485521768444405219214379651278156864007437321191533545332239072746352253714468121274464979082384600832962413261392739326245850143874418190786910167885596879381777243970093102929793560289573104063655730962202168646432277559679123746432999241586189505454886921607714290851076135922063504607535563388536731445273823621236680966015602722480742804562090688584434248953200407421650352284651438363252489027360126430902404034906766268409588122128567007124212120941909671983610900218223198649855823817229645507793331163746299167282605830344014645840926013821080145220139117195732349691219730826427866314449303915991541999189418014776240185723641923729190492413483930998990134940715123968016412891251388790166513401030512300922924232718742168277963072614200829459030774857168677629074340016634455048845897425197480416631545069076555350486984404980671714688433340852411567314447940436864237796291213529221256027651803558173648443398845805147184610601240884394429407071040428002521045104808757123230892794678354199409071339502910573052361421822954018599778199317459402258606321933816267099659552381117171267531247818265557776628308657635465572176543640081347989679633873901568694198444317568577554504243147452980105808871322271033382417929395008627757111334527922467583290710045633659086076444694073866609091285755314996114294492753625618754714961706033668857307411594391483000077825454636046673040315409795596201295079006838386680067838480742632841481399541870045628199650898861192732119035605356795058937883167185623169007746887610876672505299693159729857314871113401483638587898276485565620474819247628624224455885806395183308284965486002375888202270960190353314088250835367387137565788762493607881091565045272113103443508071382245630568583931553232540002278467640647381695773642614854598901264902537256795383691201309236803300023407787713626751456469372943590356831149956132636084909028868699929407082363443721388347968000213051106990501465070338772078126976616836363766813954088505081647778495324625872529584291870481821817747005933618334154924926810792542673069195013819191089071454489751334132337286980769344882161515472329279860043579991847481842441416074194199061716970954660758050666111990764109860588319443436395410387937086073089767017680060849250608014518779820614491203908152585195385274977560376839853702456073508593871172272975291466267165994573981431705337029125744028743287381709477801921965096510830516802068375046341840819568079355557404994021242774904547650438565826872566760900519784572048865530528646768860673114976074643274260996186151254635919705616042274281550557022930130698682461116442242957024060806364773724217681690113613548959348765588888059300561623200778227615894983558497025660133063312368600301263944852085029299470627977989471814657713277919530710276431712875198738209067029691917808319800927461263327534767011064702866663830943538228983439605829762484692604961764855326377247103403278257239754017083466842857228240203458569251864458414977430926091067763524343419434901131742120239755461439119712526421293357345368404720182928985195148115473264949426427836438665062880588473753145890849626125035405124646508414172420946142984304244088425624692676433394372945803965900613961277913581025812353601610864271149406305737190894069521186925267030840074796397576217744334324143278679068901246497914272474869651743026012513183888723743421885820352309747060459195898067942117333849363031411949405895724814806682127188154371127399751034146887121505712023057184335305837186413879139898832081494476718725996516134120537904848239528448705733787788615877117408832261461905540940587122937835268240251828562594855545172771136140916760168609591785032534399469396734488373840291919914083150750019576327862360935931832891572679347407381633600760234132082425918732672486432224651018928376834911891592073484586236024593025430907784555711406825040029045859235946968325782989647785748756043703064161625529932833448441938198739077157072995000400404918064269910955323736616078391774351916752271612295745209222813940748561912967692688571255588000648343729710520610840684759247662703475826363281262810980707493929723947170848274641984578844798801001994128922010804607618977621319003635066645220456952988224026932737838629283344118128657026739460070743564424321788023983790581634398910566429721423004431771491910658415265586012308538377527626555086829460142632098563572821888815322309461090928603747872150983879689386331050304925297407831319038969203023746059537774418928225947626137635499523286144485643484112390425609361864021727118373928577305252843719426032270211508815965575285158927589867914898049062765428700575803426248594596492392214682607507505893318426816849022000182156390510318704905855411005525862244005715150520050932567227286870852040646634360978507216262935688119943122822098375277428619197232996491776693061313245038218488028694840971670738503579088631973064297392022706799084476543366322018571465378587464679657926912808578251737687771930522681055406884629775953356262042258064343499996645162189724125788108526387378122486299096611376746009185913116152721866730561025018560929345144157392557972771999124297749854726850799691549427109487922185349262055464299137309485232828378855742468059223303855038741565830919868433933114662333113236722138573678370127672476636855599714571264785134297516842342861401110120139942444697568164421575902946107617206524418922563097444661421823435710333849278941013516855628469842575893384062585874077854673188693368626930519905136923378608750811570075650460456533212743841643360046898586280655643646104853527804463218861486461173900759125481422390790421716627771118220163850768501426783439312996851034429618116171076387106454474009679417989223038569117198895207883116476676460148776611540442314758620803667908023552009252642790209879478642492396856109520295143670573258013695661767248118038031025862529182639231903432157864318882514298666102992625837329111865216449064504205888106219967973089205279816904274154417625985424522810496487565628829584626038452631385284519139601552268059878216619114586022300510712210208607680791826441418956559117467176984258500891249851228518614554377049184501633654202558882581901097524359789373942538938959676654449652504071748954424082881199362397375933134174635881623441829275473596503767800856770142048452945489857772589465458498257185816408511892434685947426994170164192633833241020505383371796861501816358934818816971051736799898024238397546122973016616914643723831976550078906375423586750664184235505960404332235313939856970174617643614662281798222084852472718600789372822738490166088889641142251620428280498273118115229320093864158191808850912302907016730848292738088543304339426021932938413922651327214002279291556704098328831043820862472255226471131951121354579303693473871133863063216872789390980208108884745176203480821638845220204341960108207254422864681604126007030744598813285067980154741311915659469828561381503177711679127176414792348802701449701156392472071919038520442616265305548728019140937319773350777040763619608263945644262870625517503455126117903918757757699380402508043784207800453054584151473847223526466782374835453950802603293733806421262626533865919827727172512960784887913162625187088148590903148994397739586121531162543589939056340381118484480214473010650249450721073057334951278023942936738807999972610685087552473996215604754324297720128578676023466969163677228375200165406195232008932434195545709502796272933607345372438520473752914866692519387486615672269288548343634763155869636176865958216686515243139660544934655437578120107843167251961706928270872760234332989549613358233481917825270194409497832874456870789387549103880387737603622490747484333218588855924051675945908368051477648464980249032927466798753608203860709016279321426242266977201961513902146120675557929175886671829535281583977398997394135436912732528785787122862711621128400001880313021165812032444493150188537236866603398903644536341228882214550580368467761719684996069145033065031788509358290050115035387886765982806962701861294662547673426878050179348016557535398646928966706087792939943645820429226555858010651280788873331533760001099467230921115868751394394373762929046245465168980705576024702913871653079989580719353560026424821694743465440247254767568748133033820573088456942842103940798850442650481060432054593533542047251335320138956085395833766724763969659458551199199102381022684388793571412771053821562619840377615794284750044227028015704880310248616981055321607082558700664226403630559707401172413029242063572447433302837577104178234297245643273726228463736680172981396813556974228096333072309418920054408243246478721051490264833017661480808891298938343332856834225373876443304105565798142406412819576815929778505281898145480402869263884085874422127004869169946020755908521701864676431906900108731051300259150383019348239812101881147410177057521969867576827324399323112411771766729470019038680101645186496965234310566121396838537304040372995344160682502754056370412487172914437586082404857207935709448121825119329011673913325063044296042974774268632457100158791823585238090511458552836355579695952509101435751610444649743699704426548338560936759407588728042414301707935063894805121394793901026246423705587886990302075990241985724810591197043403056307763179943453264495502751470282082301802821662848670193887207398858900357052206452696516920896930168943746393650508418904267032121674032421189490362123659033565470041128894988442957544753446744214362900607565227804044172758577672318351702940463181958415962019301015616591331932562856224450967539344378072732912106777573634186882657830245456865410689357385148188999977136548030079898859525642202330009214937245643244172480399085764730074262502601562954000037490381947296922038047755597269512637986404206021334284750579468585050504868462522358984796049218894385331491169830009530839564839825561931482966136098637933055818947987669020411924902507549877931691828399053084907847410739897520616989352791536372743600789820691936518285312929819680820212431773461320293245279080227023077859871188754693080918929308918298492901375842756952432675716045422737743353895173895819692521996693499215493040872079084483527814833237412102226573195520105577128366823565950488055811228466298206102886426145595856416111894224613777980347341286912304155608566577112512355439315042107738939641557016769220775578497497770304334093876616251368961539599785417931859852275784128046047633820406828545562496084091241654483880048387078764009949726454268980832686728622307201381348060157464145217279439752107298393019249425258578840696358049515802332999983873173512839253885009348628322797227944785579624576100916621299942922411373776459608417269188082051684067638324195232993687170714866438140547625973095460445428604350864099048428030217647290690424265447185412870508083414203917025976505484777310235506324286441438528252984821235701650535060408038850956739399354504488497058714640886532430620186367543811889804586203469401013038469666748429517169607568119317431301983096340322048186161188556054186956081294523825669444111033697708280978352049939095731220544310209952310522943161021426265131831686473991505534695036601884845018281629801405854763069104574546832794338190211339888123383916078028329285670114882070811488809633521167112561672976496076958888933567959916210069918890434668539522536048242732834220666497051132380925784045066787165155460819119900923126741548343751916138653161332552058468734608696599567294588359635397378744592053296910620826613230675765110964417217052081423221972490439165224183779671102922268285316337007476910175190489356000322244319747699771065419487699144796813866890561625273186887127457106353245725964463490151996849250552804680654309088205153015388868558372334348564665026853331070225557495427776504281533358943220503574280405969405508723241002330334130369815325669113319893365667456009707772553497649653564606842470727971592744146907053624319748117578559554539297592801690859627539023952614702109649147373542217546590736982230513520885443411640809272930825146680588368568693545891006607031731340454539051738357599203332528863057188001607245601133999352715020934963816437611548277274140047140509591106143978849854559844889744184710758080316876580184092814435621963188043966153383760703739354712060023815839841307014646324407484624649986949361063998762153615049073311101909141983350930919164892142809967454932236942021823946687980738176878483678167182713046491695938197373519493208720980029830861937363067771684314801554883817637284869224623915455682439088159364720963604555667076540365630700186564339214754860959734334111988145534802693651356009128098449406092784268553581478548626400465671980928656536157739986157669037002172190435554475116371805946999201662394708732735813530265970548291007874990779677398142612982561458992712231494258539557632899033585794778329235594141289624235318965718678244191830953773322401682602829059300299111580238161447456880417830629742776521513574616813172308089254671578419761530945909819259328859454221508031267867539931855766588292499746912410341303914580342239972448911303591929841924210120602849711531190455678678859079082157763940597745886029603054722108445352448466657615706491391783128271084966909663851183556273766940220831041018314620065754871450774850605690174977472817138709445254012047760378398695501513759520890671287476116567130269544342970657931778300524673527781484936742793241569428726257923223575190053230062746703739137324658217190514071930119323502144963378177266709602166574468168708354393079843847655993573344599645100451742224882499255713203831808403616299411780768373758726288110523359226682149483699396300279621887314696749257842187220065123438360600882817016095675978344235342048167130278792099485435647755050131659061171447835457331137469765193115567567779804451037500207621308849717683454356336121816771634850238687914915855052084901082846673483086827658940882531708714220217543713522728847594743130998830953298249018592841747760210657965686972954554178887746748530164722334826728433221989118632817726943565556919672340226696214952335100453623720969183197405831995307268871387206359297413338862391891948256335459268690089910133435442952304253603846430447785827074455302686896116108585363974117166456110804948591196598743322740403471439885222661141131737497879421457968237924688751342658486358534710244901943849016701761522336350880704946306756681085092071985765340820305212714814715245807804240750853561549165190883693859144205208589120148286742266563265137223994360440596024435960201565119328285407439386934306584851680902744675686425155561801746297776540612329165389874432658180185165959070770174223646093202853267047291686877771789189589843212162558129220601542846203156668484729078980153282941340764807330853039099459743410405246375593216802838635576462280050350371749098265904555273857808981120687179213580428011713349631638019044402480800827416201764081764449504591859338321817686621112996915660206795391480988703693635463681896650646921575457638319815114084109118431165000479694497338306058805413061390701804158589010041117130405311486254039705309579835567439040339047896118311102675092360128071632906479117573525229633141087742540142413352830891009876876284500842044213795637121507153165332609544939808911571773765056825349110256564648386956390662956271644895378943986470090238926578312943100070404689123828549922829009155523544877579332616359905051743128985486195335846051189627589331128278187325867209899174920953050569229535552396934478225067683013716101896451418892844864324206119244509890187113743878573014738511989488070777955093357140827140703441333239223009860181001175990706371121681400777310715101158611080047005720285590530679066251455648893374285863045230819445132420454194949934071137787025319130254862135070238439304115683084090867130261691331861024309618478170642485903390769391166280802555630231844912354225927714400540431326504442468879604910165061123747243318697660233294070978466059838768965532635466232703099531158967792284664587891755831865023000024015030893981746205360406576225196465281077982992615774820399108875341629354326772279754064204270524960427020612179018875862961347955828537100891627015581523320963769263875990654871314253367681032954711115404292161599175267366955384684502894239923358881019625341537262783091921990780665647536208565073452835645618480352896367396312847715013794714500466085597105563614112449074760032706722468585491733507967254780819316187913488517247555805970232286672780286074176157975596847433185825205247155933053405651573028363375610895407030821296904445942441663881156449349723599172317298049537548503995125215820570623195496183800664287405105994813522478531255394067594309451724424803503984179823078980829511814517311607080199169060701918005089104495697346664859979419078114688571669449490086818765090675993540493764992001832821147787425548497505183310666424882849159436817153849091674097376486004516829473637680765055738266110286026272043723290153455333944716089676751210422951334542129734707313217050549132945867354612987138173383852072938907781589924852915860876778875785295514310752195120219460986570371017458218740432389258344315603498987058406770324476427423041311890652787957589512361881760170208135824659456468422375750840542854986002129610528292830720152608046700196457338993208282628334056593441485791592667679356187361054045605137189608959610006608226946272871005163218246035733634870552001483415668180515196872184383761387511770143169261288434806777013915849401047069188226957117026763213748344414446995162322134490546922073567480087306251205121825495767215543390840017822409279319935166364025584465807728060406692890839479009707855029002195105074466243008615454073308514304754083964839912092561772672555495614446372526766882239952969746677638865799325391984561869215255065663728404411092929241325985417186806892962619466516407557796767589465711744794886384720768433136554643576710387291011665431702524005529000852101329364126735756929585069640918442931519061807495159961484655770576377770672843391646599196472796421230228636761978757477764559486202483845523113867573297876839192996428058344404670866326537578223715543888110262277160267191229178229505671054830880454866479017176842345706915553482689176248752378660939890537960163342497830341893436027255160337170455557224312847231963008732822409790775790699489368960916974282806888151009176194456717271714174142656810729879743962610543674612297578215547711599789207921629461827367210722824416311226453139397383265235386856727475294924056060447373068593019116932799983063322336338895141456353527303327077750332792163550362243563045141796838948107826345734217171035274292243689273724519029753467819641361996379441172291696820410948353642970409519041356154240053942672153421200008539524463707254529137108886490292893439399862117156661295839792977655526365968737856744543620031342746014187775786962888483426262660285999928051214966054041809532490063454439354448594456501118717479219701849361474719854206784619634554197617672721262907913740627479607820229690305506263722262963430522672317255180380859313056267743281285253604655894073591531138588329222365946544511113449070790161986034633764625700476595033123084166752791202801575853343716558063010043187617983386879027646661972876785329501269055643464993757833604600378486134901177361054003415460545650530570949750831442172846210283099024679148127943323852865491439008679341215045194017383358321675113195645508235585165025518600523270275587020693995650925348017384852982342655523800985190698773848915766847265663285075857510790495757192730801109571807876035564550371622760664059585291085771529150607763660511449942467816119360940155987059171916468669187300155121937297798828471105947933794302924995233167457029384474576620764278619936427938244561437968420026872375976608053252759397761990754820180648948619958840496129965363588430619861852988042261275259695792455664272762500342483167189438532210076829624370355547440176922246507883034942676250014425005350149198361434069451902183107547628452842566642304358802518370313781607418395413126720889052794327806814579777066143391515416881301951296581061351775772545590695891229050204067276462617520106933673302380814973289198557396943533312898027149695695180815328580209089574247539398976802950213417949791116661646417617435504081138943829264249559978498576627560565424711255851270794709201390429999251628286779789851017735523893260399800124686841957711628409722624100782209859107273879106746500037951128765551116504958222712728561375051797323876140427448278431630219274004320123902266618103283622409068386597682396596690428332916222090232444516282290260039190105154992843891168632494441700091942491741754847370662542260256991274668820484131778316873033612731537064352220402989884257958179496004599819718867423442577758278583954732889167675751147709496092499973233118112665804332726201185391931438294541169966812902849714909037185845526165198038213275290010375512301043534108135881204603642984463813270131930484295054376464545137462784262475038561851526921060147115334388683836888453931918834531223184841808428138558572323490948834386234610143733465946407086093498852278246432701893608376097094073171084044477647885317540124719519158180736395566452124149179975999236719155011653157663956940895187642303668203382820125540206872008358135942254310074894340364230361930776123996709458838559467710834103067888803862685846499015565132819278776488590232895704200470488831684236057779078437456090780366216792191728794891351562721989242591576756461071568223817589868974561682100155093686442341951399168233238447339555383814072998509154918787653923292222592299629122487588504323030075495589987495861399984567315099995371785656983423238565308001347786044114042001547399061899494411778169116147819261267181336573413252306428101193781900007102515651480828629588104147500031319228765982274706574606609318611403291087574153558674412283853540355928376960080020775787258270601243616900279990139990329757473850293005419791004357595361535571854893375962613991553613977151319264059887470927044953370128092409561684888472569122855770635398804636063036942346939362591954451457835205186480845301801270846323935786355947353295082706888741706450689474519354797394363824293386179950724277643224610431422325870953145082755957878795122844858361527921226742215295757876966764221470872127819777071990915722180242914077964011480306486940962577756400783051324296732534264698190815608642634997741762041377723967072961325237409379381482377600477559990658415317440495285949967575193051335110978416110328000083815078418658668680738282935853342525412656799648148451769157448942798996387150542078772076941072957201617487194354964754698563619399577259428129590614629035374130911202407188310866704357265741871832531837805605529998947146383394470549472738868968961470592444232445752826709645130369226969703613376053237644382275894577374010242017275214295857838208550022844774130903232184145353274167305469959893538917454757172772611157558314269145735794231139189844434988010717166309573339451031265352605839076049073964007624225688606138601389534536389008661325457177150972373597384225953979723516009811304297428655472951521462657131624966625871010890333943240021969982241914835348748195699163037345282253056861583900064060537573390833979742298745133412579814685732156786559411222585460205054810426629639899686002455631499322129515282401349314643187857269307282997827611458900662173275191207487730744654970290660748005180820010583193400229721214432941746874902348545722008200428197212146790567582164645308569750551907327643507001123445107841094906588030268523236922447867044960112699751531625834778426749567567320242067238603548669960548752961520408201180758869977743880144788975661864048632515860285227815327099400824642167182432077920098565390525241903016115883923483532570501327578882856116350951713775007460150807713927961024344911513971941165812165848102205193050218090384681903353046521202791198866532634338913702949098200899492812698364720823020552931431904587180055366369220955404004154439826787421999323975067928148449257610009416837973969564723946082106045651912922098707877284038274049756764162464600503461489656816458251706094266557007909118056403348696932100240117227990389817859946176440733646161786854923608907337912760140055477572181906667926740275099380805207201158471420262863255782350948330151074074450821660727157085164902457676898068684433351137010097172587542608552881268435694675790176235852750043521745774098467317976962716902678171525107194943056520071999078664985066415297561589025155243331294675354344521426829786762328392877335184817128462345739909861222682269774992924228363142432382084020336817423972346217360094073836931911305431084376476837775425458165558265018865275277243686201296640770435751257778778906870431573595079143720571659663324658285150073173916582925789075789808461793928083190799813115486164729343899156432987850412746413845232351607931312393409955449798633430146531013151182392475083270001568457803626000232463664256040413864828126438631684782140372645665656444403913126477916654604066120129893990217029277487895913887844600867969221767716899468497151796830380448739156882542848617727044810522022625775149827311091216101684140589250637427473600005437950967838304146671316892380901885078563759466604928007210557346763218357652260393237799301629962736461063870597809973133399443159113632156808491257626213810584152645959605926349171507023445464599933816267905534988578720957105666829538717228803866402538029701013070212509135602588471148753783343383500826621257026325622576220038713378235433329406759674577367650926504721720948060844536701008224015309324222742164055050453141800025856891067020094863435929592068544249661199734584874664337620428188448596942483367364655666043232467538278854113687721931170396697439178480737457325780101364121654725532902034481596219246716493677276411839191369688193535901664905100187577117356497974636106509904653188344929435528745890937753738767274245783139743249280964437230943123912171850047052172441131436114893090451736687991149314129782986777151739771187540345575769666562353468805133762015400089619851843086473797299406117986264166262464088650317738799219943772275961079073261218871614601925982041139200554367727842956100349478273511429479534631431268468798571547545055952051696740734863383097787317324889905393919006909077218777382109230344462263399708624409066983894007497175980418393029086105041341187574852504086298770792968819900282781509823594476921962778121396886916249681630855985128280479539404828793264564897351144529257169631933077143816305647794507009621930381712709408458019784636309236755810101245128417778426789858911338793965680924023607332391573941005263669511392091687434419021859043405329534124381828422495553230173291433947981994206459435763024375202202718418311388987339181699306508892876703501951543266014160609313787301108241292060855560591302223800530496170646802435059386991976120223451720938432651626958597585250122333465030590894746541860015268332649934702482129624202431507805259426395632438624887101974592065810096572966920198850569115380415865359044958253240810188728744858837846877849301066833245686493875193533333450931835537790624217682793871167845555889653719936223604024406179520694231832405955491201973423198118010548297090769820366373776707057867434641670030665701331398065739606239038576026178128549294609304617323502414096152419599625139589015154851450362880674456169014782774071767664409064206114801170897360389430527328590942035138426397670951531904139749179680584255933468297788374260370215157501020016311105173168451339347821015367724332659141647248214832515069998907062474792789949014489800448795902000919448172370374736084624074800551934450974028501714993062505187337426370660535046064711035750841297345107893034925168680864063806499987452748412375313398850523316411920363835236503760878233867910248722527507422894548160788328902810107421256160555874549614417115261847192175033524234363857875516929198686881691641448778155007365514794334616962884406663576200709394161108414054066198725444578136295502664295787090387501257314018481524230459919495243967432961882168147697664748250535998506723910852454940979840775118446301344905764244495058812723149473126223385277449632329431115844423991281831747965775230524199695105363006222911446087059259553068579621953239032106356691155949730740107865917649309003483675907600064640694864320742024362131798077691451371227557866063040937308706900465779086161235144870628103048351271838703813580104825875478037139155305356260808789309116711647018194928637614041623101941938024671366280037800498040332462397167721785836146017502697249321992315683285290760396490529465407443309033483897803195712556834414096337640790995990000880479908190676168141554970523994504317956487436482658543125359173889646943963943167045799767192473008344635506963636408383223966094852221909908870513016501314312447094150648368955324135862668471243188071219671264127103213724421123217285912394249024197636981032850985687200531362957208462077663723920616766920074674653412815302555520195920317599608182546031615264047075289314632183784954376855293704333186212102339771345959609014690287728325640802567503490775309988218479428434010188156168995211280827395264206451939572334077595498715047354966303614445552125051110583379818574205038243559218202230497270156610181484413963284371582059120540597222912286627914496521181733174976148015793277109637382419521836096089693063328394446985418580917202687368611765462911115439265510862098227166067525963355501417514710068886647191630792065619714587769170306093922202576995866873969127036984022126365777272426374017588283022282318827488435994300080825886251975836745432504439397672356410717123209389811366980870120681501926708446637334629038156150420052761849918812636666847552246338958197704969048313747342389327294959321735784569402762936264191769317721214246748320663677237980114050628731182989571197409721004889980137258038137307333330787779332117154609629851610175088308284343469911154374237796751084489987742950154993631039204162735398017291214235270292543501543712282128271279472611096892986210529331561678893118260038306306963202998171795730984105964948867108768779741131251249622688545046271856620370748411291677510494021439443880252326011922277382821389447753703186864822302110965144901029680439628614103715493507395416005734387877500454630896314576920680831681662140344789897782604270676700949656113870299106113556596711757896859317398583265075769604700748402337945092134890430799638602606555832829664388306939675222257889463800695288611349489724739716153032621864203567609780192168235058047799891363785617862152214537403244986182322383847664300435603247443059724720854576157745642050171570045387755874488096445419751724473798860444800411412652779623222488357896682983380813120767411013923536437525838553507221867605818276942792853054016567367424956803867195350099509877390808900665226877825950462990765136338984683585217637305579007732509729794611081283030890536746475964778891536679260919975528690803492099252635429059919240373993968489605461950460547343213134967837099849904026680460948540070950434285434287396307313713862057257279336033056199004250931950998424322070802122253505262947656396482964836590381758964965950012725570636498946502814621278402635533390588565783573142345887276979356255593530834681960232831309517317262494542696136198432597827965144471382129414737959161580361535174677005811593722488457703247867041913297026191496080258046387873830589789313255067321695858713903834569231499119462747631132283880233773862355700176358095886282125005523036943710195187138533802435155133929461020652994036792013113101348450067518271213178220234604545721263104110573952492639435132336675936381098227858248832632792878706861240709322379892640316595558822930613365950301039495932668075711495005185658623178216799265262221954689402208517779579711516998413633543076604445625754231996479857296850813695906800336580290672424093272615312666247265477279925197454117454210596376462628379833746605154905368246350273506441827973182237131727579298846783087719592084520429303833768418931501044808497077632746699479679267972170266716599556122068814403345995765686369493780687206951103863110116455393874799674011663207574169670407811576647032676844774572026097781782989768029219475783847064053737730856341404767701270120385552030000959623568045949150381941237895990292148062522343846074767683277340657543352001928958482909959812839260131097896446084003771179836658033471047083340100882150122804720498484562063430240757122439543642952437228269524167396846019938680391078894888269102427607648593892536699222674233548371402504367091114456183615752809538291867028477090113890858894725730744588941532587565138458561773813643055593340116736862335917435203805950209116766637761603356058766065579231282280390754570808192655929012595065347540011457534245830495460757756025314525996071900632811955757678197899108043673132391616262057819370715079558999441575908427272328781628075598731829162726046195304693290317404917798517504850220523050668566749387564847145061663971790361450032857629474216503559070877369794026206861975480718135380090744610882910264252265667626883484873909321515930212075463207157690576433251175083744947166012490198330143794107504356974800497113721338090164396717068948967603089320485449187131741382452944897879913181301752817741024467928385608520470423649437946815935603137161062309903464059675734805888096445586236121287064095192978087560050494156630759864588393650668494973871899925939909362262398926165056807060528627951335025537965982353475680412337592904206642659651169051684258150389061553783879525292575595474299828335397567190881938327405589170302855914981970155580207313042024536182355044769085039710184788007652974159548116003628348505516618583359007689864545035752279043750181926873856854985361128265736733470969216565008251384358937888781205579107875633164700556400883854665303943542449280817614598577096487525947612206198147685880295579552035591363272393064159748917335274347043408029924547436108028830128322838405245252188624865080351685748318970670742724877827733636048820813307701726431781152347083792852203540271163517715220094513584993397692731424876196224585797117739969572704212357567055489890298229725437874872355763057169372614195521611507684822052840272201237528818865660004760943774214431497121495267538935054243439438677274297429954746881521296555366431156937774225840758516325635515813818416078669985821077178454218620735053477071793780729985068224146455379476566793357221188549532108487879553781045242113228176465474694616811500882240251222409303367461623113568458211458224164168571437582419694531804811972320317103462780786620215601476475115225307763559597015042374811885881513557719097229975747176735408671498646521587177932679959063188253022586203045671552056587053801994739573101926633068252818462962145037551195933245884616838464505927644445575986432848366260172365031197719823680881314526102535805973533697557441166578064971445482530955259551064831722107300903585417103269161815956236158749140448327192168418330646922700310456148407742439911498896406664512393771074966355025124997002857297144560574909288945280318564661049515835387110268185356729010608761765855014765322763130118476023626067129935795094090911259911404826156094820674615722481688226618754779729538466964344311412010275192319440366373658243209959363132829301940039098899990617903417955261811752436032796580628125384311860262030046571119682401612167357282812276267682537886936455953628844704471841197618225918475188940851352212347053391505182793257878426130587659947610847392853832271516317910738348349048475618620341220278148668083012269972992531809178877063381570310731385757735420669101911793581881189213234622170658330707532361547274611917803578240207911320132608457171720647051646807252915734419552473820762756675428804150029362350798164591500725729715970933533347199446059298211790850729132001141394289186519050615023488853081458014276374694525764679547228711350222000171410974000886798332664224540565255401844198294730988954359800235566333527663867058825401847260377963664004705345470329392209777028889923595627304019457346719502652771525756967087922578810629430053477251700027083059066095595202229290109934488377039926674481374106287305405152642709612438162678304172322545673781876691022100725141433782209040055364812140063594561998687121800001365204791567239576381664592988287003868903872496062682807208637061343409718496356628944823611145619236441850602109510130606323157007273113766781924091197438900449179696141028634817168521437815499219783733733118612932690649347822964045084132971632717973211502841217646173909293077971859431071055209671888374864542475901964007967925574057842921691880339168458283736628182873060249707427622999720387175908740157844135858557295344065020778688725651925975501369928103692734056507124718851270344846114950289084824322415642144139358136549718222431505462917455438595411098576871348721135507144342681066607771867661721320904887422650376503449309121417883917423625680385344305642057860939418531041273039760283116428405676164640766507408418172389447222799120959325510224081433656837862680558435215620081238535787263324221908141260570315447314680815508416587973570906438897964223424387764943840480009287067568316930126710523099198485750679314902296788332739847413182723819696999819947895196850142765988537538780776051914840563195593399258855491152538007402238295883427946539077425962616878931533219762635634062669587589732170516538934889665916438190610818856684412432602336273049595512578037761297609536436163582573249999889416369897544929396568273827015844261505791393974148391337417633671574113309661794842107406097912819873849056060022301033826827280744280893006245264131582950843510851666751166816775275453995375066544879375656365654169623783506601544985253966759605123024466416770763389440020102251952714098898076171836141200838627453376264784375565914271258501201003705279641263040643781099580326440058958550527739033317379247700328711598564088350887098085434585702940717125511459470430798158431242840533261374880269345682634735460778991141084890346955276795546709734755211066114603201780072521053529815725719903205040053979999047320413741428250109113124601215599266623313458897615665849239320887639380092635857835464044047905576571710278011738190493223397968828511219158184570226116453340954978841657839940331043216985197333744116891329018886985569481877181552663105874374402670624896251632176631070909479366387421178002659918051494001973299375940123334995850770296859181963164530087363874238470383965148022413764527277949358101514694486089145295991720636305392795400889968821118751617300355452561952205097874469296712037155849199908447470899291752948591634676814414959457896755495198760289220440781274631848588454512402399337213757964987938602239599318552668708291463971039237397235315675410373005529043986267386133675702042923773629232629436150030519757019856351459941648658949505370571551091890756849189168784413694966048405279729063998948601206432367780648264651756148353189185519771396207007577557662499478578070843060132400313274599679938611227478664225042562081681231765267101255275426682359366279435137436415060529040170167564865657107639494789215312637697739633194685949661173911156659674194511238390303432681804898638533041239730452154723043195843606286566601828503622768482275847082467672303328730262023401097749711584153727802755915097584517778284012444466565322052465303666470994059035422556510067224579139249724076790557041749406826882528082370871540363677703300570036840330703941938972924005492209124468458667067830240462323723958987906436986360153113598337168549019544060621537697503738095934473208518804966675737330932796142337032114039406520353361790314080083868113652505723258650202220697965470387748878365346520558877080391591089965712699334986774297353116422298842333743302868879194657442475991947495039216873444781438165801639595643490452786368998746095990900546413586498592765799933347016452179737190584048080634227605769296130356518771080028892712189108023512317183112170374270865895672232596441435079866723230476172480183541076228844333399428326282851893100902216366544076388878733402233845523864913898802456601999838924138403422635982214021574533669770525271734700082490082459142232063272357472170877536939509762328486235382685444976192708109581073726781509209177810709655834017890609905466839632336243529523417050349740937218086257653817414620380451786669728618836797082883520559051489592521029845762895648011598638671145752802498153317647671873650452859012287957014814335069929581771860538559887150712020089150444348852116076494622496710047462536798522345581236067251977190999789580546097199247834525518741129068440738421698912696763353057179564335042074517590875707005876107361347730163609679025940324310864935855430089584233125236840959093862831414387398834431715077124972251551228748209629198895771656419860390982952983115404705130397668492372500879290573013392778444706486585379793559247263314980513519539026504630684271842173121610130787945976915793292331191829553518866043638662504941974735507782567253953421058210618065391270705003276589131041727180650353009752559192536854500157251956175008366493700614117309703280488414516586326060492100570808142577830406353120441470166204097224999033437021207484538435771495746422446947848064364041999966682421707469549337288694622021326865851556172027632131672623874380205644910509754761421243502719509263900781710162285009603170630186535314912657586726399473410094404864664086771018811082517193512899096974860115212468048049238421264203242039366609296776340959758337830457873269339732072567337681083453279338122908993595115967909334446241628666796514761277046993062027079229488122511313255523342341069540218881671573553045795814912700645666644627084368598085123035018579212481633782033355506741954053843245523757318889015647963565687006672980219690749175195826286409088250236413155095023703826542720871322915904819872742812751329265888744392676358868827832680676905636311596666358917249629545691613402194176954271719994952094757259453797182026505594344432625732551285442232977836435465231839502332544813998135339127954302437118871556030832518970898941788209163321582318675790755196163860516445572799625817547397660988108285278801331699360155447346950861599653195269901348189601999758927744556285033773658892874156338348835798847477068655953531846152369677488969504553907736435947064533483502198103830374243069086687169090367215436347972826801714532499813118413776097266642172362643124627963550073751369456955960519802160482580127423711475627210987528301621879416662794682351478043619659887861164037860325761076108688630771256401132601320201972212952324748988218220935341055724564133624993982229351454025300364937717304689585141466097293739208028955723451421055650652335146589052993722169832040004440882545976726210821170844572121481063762269327674293362702640949032205994710966677686827402209227601977437186195791627063603868752558880573040021750944915466582631545351702713604796845873679877463456955352173873197603072673282952341469272989680142529428175328220380800707453775516752568181097320129634526188444171328618427757379963532890400003150624438895951353442330941419370737596621118055995443556983858768173979657999663263818029564064670227860024921532048477562092091319474627043424702776711490078549422961624674060925833229651359803533266740531844913312905663193367229343283323060322351281038306261426725940667080367943246923235967229413591681685041841140181662485143608997329385777957105080057502848306360288888698117079379250449277241308455100722734297580659025719505369904516949801792896976302829807615149029072234013051965466019420892675666878134235058003019447833604235517196427837809240919080983859043144292943761632061270630307258377621774310278621406893886887135228329154367333448403329406040069603800298091448997090687749527086923744328371544738033248292730147744339539307412922301083429859846937958443454660163197459352763392237732415714397585750204264463522955910669031218917651805587978683223742912720392717959551716095872348317433858949170528288198859699794643031820877289000354414933208057072823938710086683257706560751061499379228541167742590490406836598543093081966506984053033594079348928792111593433834160459292050876971732196433805618779946516542507751750801177476360029435290288715908054611526740889288557468753724345960955125964041409900900326079087938860803848409203156856802402880864387824140013642806843261545686329156540021004003958773769615943919004481594946781401743994448019750382036873588814426180942188363412026920890379526227878090963020868625089576140702257154417179634529240050046894330825339033960932046060670512171878221262749742069656896263421712878726566047698766930097951213650216992332769980931904006984875820054014423037034256415177805984281153026455468592930324660891792550920464574461494901420766637118306821421530079636678960811074525863170631316612716217167224427049829255305467280998782892398559684078206014813692346872928284873573405947353831591139599247603984631596730007579221282411069081652638878614883314713718875364097480470711861952537204300263197764470638526999045713458634324620339408680437695800657658375168923085064364651997889005162362156147725989862452808377304841909541215471329146902064446776738567458571366635385469251276871918909038821669503736061719395148997774866502331069275511300045487042478953720387337590460272742565007790124942502615845367821154367327161800096800348640856290460737651285090066064175558036603461123323126194482302803884778233095558888166153364925630790865607834347943701833722794071794868918704191935952022510153506489075775513322421370391440488014143474433008814940674315623075356836573667647509089296400221182262802020397082746790262815857597182174430335949463145129789085768051029172092447476862349450423835766867320728787032992328532901610380704006016909465424901619801743176072098228424081683359984062881998073744581060562917018447523202660297730149574075965222929682132622632124799695791476586600286842484756427954774735905768592028764482799091287825677098060135410093863214310180699903327611308905801747666540582769356067624260720210715532468618763546310704738616892022493903543252987814110593534288633630219026397038404443286033362930254905711732317811535700456589210989224560656859971122156375876917649340114834028829706128349925072618989531087641087078288465207538040306258740556172956600355122199833872518233352304803181544068777912625226886765256315868955787804199833862224130139951642917738310448890255865434123944449495621489169879333851173821706052985496703621528082968496466612995050092495982896320774919307633855776518657107628041524109691257080562993988772660457720529721110365444386531869971772406307168830605037856326688321474362856033549763894551985615013929619497991375006397247307514772373579287011338638486509660822669350093334054071686865798514815923275633542330181333335745133551608204097482895020946910776644255931978261999651995336252899199056378027321864101502285669846245835553058840966688697656017833636673889519017103600866310231163656389212358576556234742793328681367788710742979278919561372556624517084918740531979016733024729168158980395035307935763849825780363609714442291611874942585578177418324737121137611604196758176634276132434186660485514931756715381308113378875850416167874553511447016725909465298497914847601582874546187387550297535510556201738008740884123791582352575171254651556918022306612936769256079600790149709513131163775770477779088732356024513718360833241715744414947257983435741750767796650238702850601043112115585138962472549923037039127572634106602516382670613261166513252285748592240011922831245374481941663855444529852845781157717782942783611578152107455875618298770148980958383636435296529056283830294231963985920619272824512779212248144765220040516974754180679531411862056108767254936630850820844585030931729040206747793427710166945728484346120080976702398142815453578682945429740865679107046478406373418255986126702518334507296561203368056323236782965095185903633212646861803324773803890110378288561369266422901441266375970611599730375160515150147041956290896852153279387965821975230982115860131692818378185252494062444201269432219784297261350121722671535943389675599699222981792721907748310064829170926302273059162261120509002404473279272035997657969933613396275877640529627972606297469443581057626987038704773831187595523456489667044107977901344142119758653107950942955356657903779543239093200472069482128643497486728535257502334086915604395951168727318887196788337231715821928498575198165383054434200258648086715458351693446647589290786883984766274368153564728502693223164297317802978367604126432912411460781552322375205841563403268831728589202796502834967914233990351916496741483857014131041677240335841615533500147859198199656812915149029691020848144149821513072966679514032677096254904787973246559621166413567364616460956613536669452101702930693983299285517518278693865413220117117528537245636377715210677948189222285234380677551740819902258933719590465325057477917803873108041244088609103646409371658230754938184321478936471071638593739756752743857622618331402670798372154183478131695988024595365929456856315205573753916099536884881831382713211279297273853082658673482681992155555432757826481962361175443020670794514657001450972802450824403803425865783942800277584745437070981755149573376885625895811421199243405579900473098251929938091377895738214435307743840272766292981368154016677327690842362743404551124555643695871260926757707535175679410865554394442917746944210230203184516980831625400019320152342898762221016898953567901926362105371486798990216495982676074717525266288979573172232590249763320448214785421386969022269707922200217909169034315036146190724587094947514162018544627170987635707914538982601805958878826817790847877732983658727145127620325948028741405984542970898787545796779784993374164942097564411393451403397725916882869132024169488971311945885745054995413797434426271257231866200062832685103470908614527582037434364225321134690533882035561369248188655188585522612872911349245914502295322169852657654007168576397823877433540308529996442103577966871476175959644504885170005101809178504563620688067870145547770720254374043421361276421668584236408900418335705269903307628807263869692963040314480631833284768615958645752940164890299157418997757527419233562096262614811167128918260290089935739886164668578420836130884369169043271364724305630913962691916898962906043754680055474879686320832696462710108976006265271251554013736520188548100941452554491187136522942549190893831094041932125189016686152358028398301955469011114307180254981307025812419928454638023355739290569068478928551981192240687879991055081963396691323352871185332305778660220968126135096289141486616297756786160142585820996114484968366567882098888749697893969305394650418583967829874824554933016667518574862459734056609751714070759209027469478886154600314304949847479776567671851877892052639082228221476324119001032481279925433146901263716679378025602891357983422162832294132127451416420733821279142885026591836180630994717284682824004683506897955676676944563291242739386671506902913463931360407764239054661533713252857855548023604016146539670446035943827528858093772572923283922483882528210635109284977071025960146245843000774218812937179434651446475256719882355576158464783921173824131865857846381131856368724238370097103534364188213150616641397099301233628522445159634988243409075542468501202503742873032418554079735719530422719641041634783450717921894898523412322792310729564962631151394265316444113419151954850660612452491476772614086128078392874940981441469815711853651821055112335747078279968689182066177828358471626546377311737092301864061925342326772736308260714771422969643862538902324474817766289347878403637061409941927172484357461901756642149823845074852618320411240195811239208431915819600592098579109768811886096198362463823477642593715252316408849154271103268607852216396850553673059615479802492258006058723740715091748362344155912527428524539245920297254577155465439002849102643655021248461320716837307194457905788605427667592200066690870880111087118315493737732195997061522539618040022406205801261167366142816486143979225407595495184376418693688341671302426486536592034831769163416053535952287365625059610857608587652856702344514255743779333374362484597018024513249445922655818808587282156602014400734596326469535405121007447441523788739872715596182320125479477520482734863167634637218953205709383076740085039805342766700049162854783705028583861852865181380149191358719897300270193982168833624120289059919734580006858747664224188878781909108930100062399554501482740280130490259642249068047391642369702432155978989942130708104037958910189087646695894297305563085410865873330886242378683537325727932755658167697108385704843969813415991002263868668114865030605796795859297279496186434359430466392813683095967810117102790846653797555929463104831453137701294687482230090911703886100892490874381645294700088254769915557463545666187230439270701409682098821612936920112989552870143760399710001679739743382824861004482277693438400474546800937312315548301598341434813951519556204847563147741266707335267178881934032043289833926438063606883235461625650128271447609861274390158530774109112839091792548918388787588625169821135829762082913998907314529194554678148267975854004585209512630778141777555283381492232606748086100676814634156099008342724236870485258095781392773361364225558964117885321124776216188321341459628269891642004285804549869289779411598228316333675605099898029199237416616748205398559682262968936085507496095585013485117420569758707759842955466924476406743901575548625540046771041140642464995786074077105355386852438258973778237254412101673869102638999861713354097570890631416933755712561481654383610156775304703669196236330899408305869108777436313154638555077610649358015393799557046605060956147520418132754399093386325514362853879507322444409705399747156423917395253444481687670226230293528237685405912661281623504808479416401489327422667911931572073721590829912294057697630089354801457832873148417997532906340939965105775424177078430202932271979651739537463183385187356098587522484343543691128316860352201002948401259389806441576494844211688204029064015292988438965186384425105035869692523753515197932382688752433095070533491988663657818169462245895164375102716795471913004361618142511959577836025658098382474402963164779141019089445321257979501713235831991722151354051899562779787686872434089778626572765350197255132258313100377325915839994725553209787772022933713257831110535024527653443460703671089018355269149612335609158148774856444385975150961524419299151448303511757614167672791245902056400301507410919515111967266798309621868768590259223185442201334251068493900537009153088068548441386854235210264304858748929875623921147959817854037269225418926710272915419450077752191013033857936901106248717868426651646676857521105879998627128107132120581760372021578663930094502968302788356706118003556159341945728426970349765175002699261918164608199521349903937363163913544100924104597960801815303265042448857043385641362290506283827411632921272960113058940267392547386829789903662239614114344438923814019950687166431533646292113115424251684780969775656429019778493096012176582525375506206666797038661843030316536349692565741406317926989883910759604620243483363412139126952042160857149383159314507454965967276241143546019435646303985511924560503457639430091217703364240241440955669892724397695332865421294851793986726852284474854010326978594873811461462186336008532933049043228032220387181363963725950486290048597467938853495303718909895033834310094732490740502805577496598934195401944197230278143638815541775219902742596885876370148135894402481327733249187631998189864849548088580538319416040683114164385350520997965526164314043406335917031619777593887121188599630838332110729049270670241872428592738220584659673947901454707811933009112338919833850194798879170918184344974005441043740199752458535240726686341952685504634026059088578405652638008173480256057886641072348430303397910970569376935992653648362881006234777662440623978851457760424843023852244027851525203121374172441927801461552808811663942328768598183148002302915277465643403021476946094164571319763469974055184843681722948910674791582054575471726425361988517376055594255908250246197960662624064933753760346686524839456108507358711380237043135119590697365195252804566632917222047393168820250012682769957242838616868941851312801442231788882440112136404216945119176391613091796561101667415794342616969520350450115842333132398578640686815690682869817196323689936934091707063609065167117473539944580832843408752840322727232175152483768175568674313456129676031796783139666169016000992077582795516947140900611912742930423888150159348851948218286277980530340542981434864926180641565951163725441423983266367942552016549784255027010931187724349702719661542080302360794493882757139546612118033594160488322242706190475222084832881327949472833057959983306385333118464982250213295806821850288200015988835508748290546823257595269486918308200586437470274387870184303582132259192085629730915088867599606852104037955401772169052994675331109829934686565186463963211841202470067053291420869875316057791578744946253373655425290168238557988070297307896437491629393180663658748278826099505727508592750356119211868467930352220655230517949775695292170789897086884389887085406738702598643311834361780826410269884209466756070153430223291902768192781007560315764168104448743538839985116662200236182335276504892286327684316708605513863792007140613169840431476942240640583961914768803888007917953036741622108899286534089141029919910880154026563261873721959360188107841794140821922569305688799407010952399296916029462270031352674895117578536257306699592579437756521008246107747432866553239279192024227305678320154716211973146545703670821415480322163027228629865082826103735876698627138207060827712030280410077883869597946496153447939496893266596951436385114998713272440193749650609272053585349767812040289754463906981521377935125409489316180314450147834367101890014276293856315765845669444390745392547304400139055854173096625056659630444516808136262716386009018280227539480756708299574112626697203035463190106423029467893909794905778375017712074985409098638060895109190099016045956270970865132270155897843403060408236586411272315073888881832146190170576473678058988312821667300173812311798258129010390828499812375601868530352426935414212442350076578945464323446879469571971982573139933256932320840527709577569128281084421224824132721659745826760863720742675623312562661451543580988716301606588567888924943679815151726072242196166198311286066028950208255564654418668083131640708748886369126000078376353960490478731064575695853085252652847019673687230450151173246905897487847776495598056774854805897833763554352680015160535596543073883857852994059497569472539615830947430094434673189921759852139681244903640008907098184583647627616469363063165500683337633508199894538633029671520394352871653906854196771787765740929125518675060129405469202710515645797329848030707796396567990587634539023921599140686489769689087496739621606322092506403513205620274287337677996425996838062891662663912637841166138528008244044064245794464145300982232791270601967861177744217251514250765740120846312391825803246867527993232637869155802082811137955718121554530109923275913231379691208868742795416325111405119618182514042533099096085767091970033481235929611101598392937560952718221765159386057078089708224176689406012078738667562730111251041243714960596406883283845902527515010604519492424326487232288958662496283267868393276157734543973463593818429737213430464406067848508565803426055920724386468921401101158616216385820835652793169824641573855101110343418100487022518778383016389676849939813667414219767780228479618813915166591132742458187367715182346440040019018414354482393646032496247920044682153521413794442862666344049833268225717291170241344947841145332565281967798138103271921793268095078463800907400875451647513175012377256554957018215936667410895124003213710916527142703352187064882652566795444432642669471629809047889660027178224375736074536813635492886711174969263535482358228062033087958101240233080996845228928541208122518999354059267148264590665303634775384753929965394147670513190542628174915323642176437759629723304099792465895247638990584298108063905237891852083014531859542957318921143940343140088672273813825891700475660151052909911901692445564676967803192045872245055205474579334810561720851414128276547003747208526788338587830431660586414942625316550476976811590094546575770559426286123296139962933161168391447607059363082982904609904237667909407822075055319587548645307650693324571017547696881067708628430351348702923563294109661998503889972615026634750402112385079857666526655858940031305762493563857681571173254168487082157805801210999999260787411837132644941351797800881200680302767751475926702799130972485337208572591807595164345605378897464333422011982545883158886243008076367541919525374769218865180673321109503246382977913093689484553659303654887803272326542709541502487929995925176401374405226603159810340061518577886119944507974071740558939480903601707826005820498180366760676266304510956191527700605898361393219713002714917249647536684609574914015453038800766307401288650113179273940165723438873731652268026240137709857238587221744079693730019793672285349133331859687396832259443262377102831081132718606535237690756470353124176183422609757142505585459080206701524831015321115569130544596701992360178557367091776464230363194166815728424934483024587967294434192574252469732524072066243630448959803593832132611661343010336408440727613065960553278935151939536963600087446869812647550021253489800035574814153537619982460012718930150855097898139969228772259432250551116752267722532484270761076392059372771300920439781066053420219141069404150336331682618675503855917953347189827363063605027556645259222239001010646949814302846251708586555702389389478532109814631176927789689473764807791755743086839723086857342624259966046782908301637944075893446774256249462034504287556793475069196219587887027528396588947233177630032397599727839887264710743988003934638964920668206518313479645134689085085835779976983317703376461369267229147799317141676172356663281846793745900065479418220640296954356054412978108406553775783918363443895142317583863451417468337597877630606290155572403584704964283048883139723325098651873894843914332922196399195707564060021274687135225764717999066892422353316937770770535908236621701540728178850979851741799715510001369164710330336267256727092403998021293384454863571206641564954116075281442077770897523411804331798957609453608351727409140390199832099006783618853760866616359305270120458618295197035621430809620241217574212766893141254566192239554887281271415507659570936580208572624216433262084643797091810873284865794435267752442356822805563644164650949818947407146732168362033496936117477050115739997749683751202288040843804247491149777076304272467079210727373928959731459875510246419483645754603898229848690835059962066510106563673678079003309616187040750803213700481765091100711208618573387700133081470322101560232782749650758840749756631797262540544670124999650297775500588051991865196584929320092283131725760733722240069157362673986958584829651179853322264603913939067915675756274178643127767441191901840804165262613156631719722567161787512075349155320586341575349258903681876197746912835644130884597316006764277594779333561013260912198726066217633038354400249192972845562729133177640348033144648735216441115729365847136458041931776463865055094465115608738797677478746245199087774715349022505022579353597696935117368897989949292607395723385491973244794555213484243991003078178102967536318155872087923907254296708526663952808872935306197872723029414650666183988651848035671948861811447643556687928248062518179538888883837758655595421555939730325947806961695557868910909344455047631330980046580699482474027232800229685330642903243239204321808994488717800751878513086414259493669137685448974638647104226926783252447867359540245976831685183622067552698853537742470592158580210329352229641841867530787298213353284884047981314458807259659520945132335146576889657343054916649254110257534718242944833641643773550694669561915625071760234500748322984029622676572872350902509433699623706316997171094655971199990972133982714478504232215519448901326575220758974059929535923550152424964496943765720690777834096948298026028480470441022069813550348588677870238917865016371720024331816267158868494803493805050687623262227605167304383237147237209065690204422646518566996486149879613867179819241896025214965943541202215092290499917032389287448984523122177217628196492054132799792194265714488273572828630498751215509416136231271297680544110292274516328102366552877903004774710395032715256248238068026494254817141027432494259050427161761347687230889686573334293726398820488490518078863733291033752743852363061604692035105399343155822599728550548192654348932922377476711624892717059968074499749696333664923647166082631508730280887250287026273981827136235046809951604171217208710441082322078587555224952469466743828724690455413958847007721030009469768530399996657667381606408765080323618144267083752993746946721448685198535739991606585006457355944126915378449126891659207192287420035460561513586304816032374617354266649227418393036894622322880140737810578244923884388223811149576269553563473189778835913015465504876855544469278286033420505917355255294970672508977835042938727459217697858695705392329551457308905221731715871395413024584277653583024874326107601209658656695275241823511096630711525899512030536755166603288419195216982053093634709153928793719956533872558603007133599040616317985834052079226891604444557288360406025124634001029196220019915155976740637650352410230117923047461545477100983981819912272948803169562262850751357788810975435001101788792115865167751451884294370119777685381167734887159287894822562675208831073821908900673427645360941360550260053951366088033654411445960390438405027709229520868869369272886235742636723261505939174290291977576248118291748578321879073814562818109213193977722674671742455796902912643575690889281528191364607600537159418433307612443753069085949466224391990279253090970984054819314547677175217019245265020460557559231628444729247726879922952337821981441418677970126984434882454668817049771917736920539691392867765101403771905562878620730577047613720162686837917018787671524161574410281094083595202698525610378281771388327093595328372635959458906379866999967247440432926002066903548768393815365001251766258749820330228159437236221109340863508627312406305438924081319064183835592719244345971696058409569817307499041366235224066970572235573646236816998464378587425620493950283251963028846611072343358539510985691486882403537766083561181933161094762634004108215107418309330930611117522086007729263873909497482760812214340655602232845273758781015924872505874264886429057165068312513973364714331320676101204506068630605701209000108694118555747556211700738104339232177003072313742292492694243128151619939376575646267083998044042506674580958967518460113582478293554375842199605034721902593800055253236450095660128724457217558017928586393921410128668655986322562816026727709742041984262910116590956155050944508235136499301507167964975531066948233457578398515395944384166947109730270688432113290794895720045030921473680665471413883903249823701872394464912594345896563572895385396477023382496510167955135484757497626657329158425358376782688110390846028894870285160878529090932823711304297023281215726189649885233065734665431796211606833046020506768166025558925878201555476904348147233939229874474950310050631624691142431465293781590588624682528741669829995120404331377352657411085535120218605861617946359160308515258030845598958990625422907788527599744530687199886757194688272181933889583844483187637638509157489045973796229654742928918819191626813727281560667978578449495104273556072209553337493388402688188917250676127298338705080980418335316926026025464981903045764257793212128384475339905053313442294857016006174719074341879672684612853287515446972600254262756908605370143004683689753831950029579869355094145449333871119253437098199270970604547703045955139599951824260770809800537363099812225826110782156919332356336643617378992193888906594199747050387688536994769400483871294500535022986808697546265909214374618654914329985890533445557974296064089743809409965942022332092652184878751989390513970918945880453569518943015468771291875540105290128672650799832048501106635316111024476596337495667291918738119147630502112534015480481913203761960814483841074320517954075834813638804281324261943243339341492284633322905112925484755615604749794695453281305079166250101379107001888632301201094236631291225255801475994161615805767600884765507127898430550324371580964570072341891418394075838443743729538931682509661678440408316449641640731328478752347898058374554380126718593980030144454253747443200279437997908408983604035096359627595926679880002576723394367656179507553961214758412695091561219001362928011047103444210214021055931698590091759803926475831495393227296713843830540647150097450946505316868696280635005642474879165294219259883384760279160607334964957229303206434907805664406298693070451413034455103775402672094614432700604034787885026911086957696079914235258687847685090193750189853523500480426129893877405134943546153379542998801547637151463148216944091570395256055295384809767360054450938907282504066512052738939016391651934731177811301336668749159555122213475111657405857069294535797159173930987477579568289100897440273580284019786193558965835235005993312327214819598909112828539780089769681265455301765743717418448331409520255911623018040070956507382865274025386111885043065280491389100397997284392807921929543748457944616899755027791573144356519807122236486744924296486116975110076356973626680339701854867281801088096002499668650438180767280708265061649169043703911654341379761683335597771374057613072239583607470293050574229598252592885493202991569716588713601729009294926600416733143234833381883857684128509536977599442610011787096789012355287484185797650251632665210382756299044139293776678045751413852609937180726074430708163220229315902537508555572986704009889552990451901826925547192885712628674050403780821457832682634881146444122606850767804612009375741631615797718656447777359304475508369482701980081488776839932613340984191153957966347106354911867723176392476066729551735930702552135410390262020186442734432362449078111098619904652662593306155594685525054212941616579460570762453085679363137031577032006333094615469337894295019468050723527958374247640365184171594786507045227672879555108686778884452721082106458484906413966082122358015774325354703515519044756307145772722512714573880502832497181735235505576360817511329451250462369649361567409207979961716300086896979885966457102629893214524033446576540700125998241197449142472107624073862929634712928806343207817308391023726929406088109336822423020024405084155509312264151162896646361472120421008047629378472105571851758333206911076598242031034658768580351436043713238534815088044365966096182676393885151727544028645298710942911034570636395133784455900398954699481410082733756576178643474029132889178025949710283587729765839795803886814277821879685794914976245119797789894600430203405002589720572398957853465243796763837067303412651199930208033996561151676325594634391720572133889226364853256017381167194978936975057002162229787148181098709497449244763164438264941407457086933686946097482835010982262065912281800185408103350564110761574418896653770060030914768951185221511226178163085875221894293491035319541108825949401891570005547272141342793471553260180901625647658847514182926053214011716500831270678157513643821724889344116781588406633794445211848303940462936923661247266135446859469052021664909578058813661843313140995568192844251862681461444678312101228475453293098503100825809002599526592988775100176948030931468040214808521527850586915352438798055468019708451806022957824702315148924306620214513864958370052957679478877165992851545332337884901535043563868821629668403387155943734190996925878016553144759826591017948037134627905103954914632442352740622111479134493288790210396028472556445975982758141560799197379265510764714921753211045305413116758178398045820351940746982343285344260152571879176640652547801170033614595073980011646748426407309329238886784654903800084407523988439185301571616762443348250485528253690050264769069327220230831000276196094439486092061709444446988153304237962460910160047805221370629854819626348221552843677985294110246379590403590278741111287459305709841134181612095190944927444129960953943522501276678559060194980741720517414394435670584282768425984757509756657429983370523369834542508073050960805592278923750287929826138066645456416358699302551207779804332031967978301258994040712000442799037456495023370183662504941763339081608768250332057778236948070991379961095600666500093024024280542721595086986771926153842333217012782824470828214559071017473828660357566250061140444951505704564121915036295653352402921954743945990566168816886309796533319875173652944581511042201999126228363029712081587745941154644311248335097193410109355232204290843691115151179435223036145482540344080085009667602877808459009223685003190470774611840007418240803753702112706448467610712637554369325727024354625002753022612621751156045935425484270024645043350007523951739628948378425937436915894887068319705100549718581319031096490412883786005853355184732815740765939874293268309502819031899820545419563624638187503936806142586644554547482969210199183961672851608136647261578010585495977853871454939078062909332772291443179931217939571000363415020614927232260689858872333153778754185934968613075714543130496318594361702359558101118185486986031560211473238506997728992831216744167990690957643171189796417796795858097652242600403983340157644866223661345787498586786749362418032805225971474920683975379475959785169397743839667589854634351413475734443081693926296126133570549624268367851601479230105227131509031207465429385553180889980020323297854288190757588649345401449643275720679702074089387684737846533627065487607182626083950963905449916752982969097429582802320157812135298705429093055323901512412043514908346815500622110744699199133151963972640977496847244253498089071129304720862174303519618381920157706145266238184985778293842432245078934090615073702168961787296333502105720475473242408802058172022924735987640903882686694310106090216815510090272347548028657036917409247512392113861445219389295908903581709790676551260855560383132668255473283005140747518071495372646951881107910341001238809846566914755437408220539291201373730437633253879891582024873125047724055338321535248202923107306253023054422467339191348364067076823220280128807156603733297419917711372893653074510309028837559080229358573059828784051887306635591178193514411750479693303389053315587813637298960754996398534843422460045115748148997423791941872339525457577658837260013338721494458617186095041037522767500144874874489810112874343825565170115574417955959759170451721323792478829138788833587836604073471984017117989103774775775266296277241097294020647596394617070560637457051696444851658732804807048677581936302490600408682926744820521659477027004362062503580486150050045801737005021012117456591489228427708135608442364540711085610622419052226516429029775632507350967594136526279030051405370267912164167981249918831282516796047468479268573200850661965408489812683198554486311744862985776100759680018037023784571734101681296610899684995846476139314220800707677387920183445263848343083092699835737990403159243206805502244745981623963372898828665171162217795971660365346780382575119459914719989493318171592177141938959210034332763354664180676696226545957499559854022379425503274926151679437706972119929481530981617425914719649794323230652610741284547514463762703708073546048046823626344346674096446105811286345492140883797574578245801642620720854980009934708733705107327700245701943731256387976339186961746435881257679519536459412655271720783016703783860669566951179980338854057249480205065301108261092605390587738534288995835869485372301446105887662820406907839376985544586674319254429663792026256458861926664469807541326335004773413884023821723053327262254837623904709035311626983917267809276042925903356444656289232958520848671413158865371101869168060902362845976734048457847205376572878923655239356276970752857060422371692098638370648225051763103101724905456173941657475292145955823668016926534446401700814074042927341927032203005530671673086941194611050557752917936692274202496072575952345890654578514257702248149355969776365982660763619824612223554119316564087336488624855346268009476453482047491825470479989391918636608496677850038039868628454189326771554273586509723274282558222191435017945300922308913407641051141123919558017499928603908995321512607333192454144889155587652259505076743608108624742773694758292738232414521552380332742238693579024030137622803437955577076024639100439726375490436022097114199243853987434005398738352844629502473990059892293640157662154978552883937940467073814547464206523743311915544800206554941113699245190441193174369950734349607676678732896714584713107762646171070260739316099559332834623408459690774796311705610946364596306286320234698845286933765827454313605330685724785061509397680500003880103252058760516397774448870372435360192171642407683068574074856668403635880092552036543215244070999330801810254023606096197971305197797917490140245916657710299149624248971929313835434362278912696093445105079766856380501266082725151837555222956980972157406845586810511531148991592405093499368132420610356455068443189733458555241288157507519633156743602281571071352300380432906801667188955010906864936758080375015604398614951442662807190132809133600087648293615473717432623348310187325652014541425720504247093896744034671450019347107872454383469884124247853088495026694129112850783782161402315746590652567255062213045955840651078196986109879688205051147949461195254206053746047867215441241235694680623342281302111145048224288617207996047861031619929668651323383432820452882222077621125798257960482521672700504590128554505449387954658043724271250800819244122878884201454175346085112564119177413093237949506105778418308161979940371963739209512509088059267947102827767725294066247442977226191259799366521837540620900668533021373417062672024069883771985373384065779254268885762998784240957189600207281500781374895740382680247517296179832096995047810319829002439010781191838489118029707904753911430976395844370807460913333662148519732504573897200602078069757129283860194792784153614450905517753520847654630031651725197639108135272538941437796229664361052119039848609683523285195257503234485862929509758968641372014509146769469265813389879616413777818177392717043249324363950057605671513242519843812013367380009675032198853387368562281695823598402591361707130845221940520305017671759420454110946029377225582189070883327974100559418629981507409190843862348332191028201226851428878188798662059134100608354265361638583556203458146493124721893388942696230686915363273368099935986182719158707544643396934245097164970257015484852804594130126380047452857834669425095591089873360898333477187664744522539721582434360797466750027208972521132131333087098718690430305570605540233083209969898080589622653173841668469189497788297631464434168108020171893465189399169427878300468434988515808931728506980990272271453065724280808761702980407251331609647637762723002230988247833694869530698174541142603894414936783813384209938779460432911476562682671035248539733972357416892964772970693381501276266923009063119432967422653985817147834341922564426427078450731013653522750152355893481648300133444485787807859988993902935825416031473851576019497664032214049550410715525518642741073765016140877074798377001497464391261123963315459355885435684209882401323690983058651163832439426826666241176983486646379196726959262415647028565805427611446557669020764714993522353727412916008768576119603131562679243454898194102032391865271080377613270474888470025545643505188041369688925482301564718195787653930952195265540377515004473230727137181891855055137005127728123477528293186485478018809418819935177213714276547953920166432298468405852815227986763243392653811788642329051524459688605005084458186278946678450989318740702961916859209496083217202367936231045717543641615922006679435536338267468056897611720253435247644423156048535288723701456147373140678325918296805940151825904259466464331872729330787658163431743913264777749675855175460630005512593421169127044882106225921137102909896113232583272476278001754961129261313961866978331782506769111460250147463425996272372120907446864994288943441861240040617452150924242827726871230719188020059556712826832838924238504606282795888803138082082221370094816109113688599191101520701674271964031825681688276856192172132003111278373889460579614737814990405434041518547352837457904018631914458906845577413041866435919309716166120027216755428156369399113979685694252272157621006043789747137500472624451886646497785470341820692970443290408345785671347243041371360199681056732275793029448641910328089309356293100387050011978120339473547436901955472790633163715769719759696230095349462641412217022469865815521808830711069086124530843180912662868155648660684248661564364212333695493440600003695788537282819074203909455678554843628479639127116551868728781377133431223310083349294440268080880723521278702190202259761499620007376423258977549271923046302115392468730110094620134392409861971362766672103290508294612142909812905849265364584821834429059470160915843336113828606195929067684142205857206713842323101513288672525125876740735871996175979965578883345410873723056641631740960977124144996837226090595565916460175711813484624838602132227535888085916746336080667716640768529622562065950864636568091343853272692715284896661576476516840034209150916253608069244961817846300364392355046716842192212062774677674339701430111552011914957805037660317536534359952000738661718327512183801443754290229680177776774890007023365943825880174852317309458285258546192412965511402471031585989209868002421114399812224551884813769088522526050767275118911479707145628803958752959235128337451470222196192452586694315116078543729069729420268459841792414338800061877514609083783572638945406437972097865291223104122195290074728833725203256443551817958619927119302415303026123929437879712480339201204658654496327692178933248247962938871539718995409060816931988484683180335967217978189036603237032317103805809680893069686767145032738893172080932134691248101735480746469929250908318432181674173292114995533761630189009558885217863187933307278424701332822857461953427703389245416258412757118824849755879963773415050044328252987645718354974044046826637081643348572060837271784394786499481175097713813196210131223352394215706712888719198023765037109946314552386986748522946915692230676234535067654622104895677303641049832993181921053518250776185544460389123263329631661222379707159984136931267031607505521749429523383309021928196929465686026336853842767138262258400976790037405508968896351349908845538022518824673223241234536911678173584336306436841822639828854485510142589567988257374994768059388356595465306818502604616435254489694975651700859058059456202737802675015118912943884572840842900363615972383180827394955027450272596014477701762266474256990655206019046000622751649921733765065788835701081657722326780335823588172794120589277748692676868024643881040367004731528490629598820392256767948937177276096195280349079803300989366855663259284710571902416600101216613172250157333549508802300525592694873422089777931125586761940129072695827360910173811100706531399305758018500217004324726029887948082200927424615950663453158874996635187618825403123568128398041948772608945449845550975121413922961673329861612990912871901832163473597373332415919735465485241160951900862689642440504658064110185495116023259415971780813551527645933594516072536650917464314257080845667144711335928756150754598105642820491598020856657013864702953786106758586625138490345101413003073337251389508071451452912314473805219677419647468872930583774431435236365458465109576020693329174126725829656733231354602340808740174484193919689606607716827794503589813923500129992063276778445764584159113482848793484045601162686363298072288070944584531441742193334868319363306976225291953380658364752860297854599624501648989159063886382106813106588781896394629417332382861460376296156812158597166942109660608892022458189596181764447911570950132816431111185614551296459499746330952573586051878771835525768795860673550427203060671330095882825751719662172349481103764093982672966713808313040383887439170225061193324718871118176864825491134831289819756563783115036968714769940854854489436135347914446256037957078508533318145669945505428968595048250996606364790542032547698728975114715791511596095881216191061523121526742410475367213644947011327817286870105350588652165347789764524662362913807411304144474078748225995407952773709835318175387446758010491801141854999725633700160175500705971807942337002324360954921388438915472557890786347035749073213231629703354364691614498936621864133023842973578361474765502533654185686745180969931827638479715387946354929366307902799980824457349041694430281761147916708999417214790730011846258818658959357447629699166731007744417609181007906180713292034699630677161315182828413052271147960436450013439403173956246833133439448354265801657790882011701724419650360193751352906307145132043686509350515659765859368615007977611110644813290641693759819198855507797699406027052993493179861804307469833064138184522192812887260482013942270930056321418080306109784345648410772196486944255137527312124642957617854013383067233155252330110916430622092341461315232545488691576689978800934447786917195055086497210806702189240697275580356966659813843613212931921900364488975599003563059750155575246622292595481451610261496854949611941926514904379178340403314499156042438100350423783746622491624832865684343009924371463825093321289911198503007651909546538276347350753856329852990425825925950447907317755411651306949165532781058674095815219207967910458599818437178184195105143342923259907219732090935306360912782308325016307443195249229797704450919051352508002812471994328450541201934788394883023946221854549294532704464440113164038284781130058953647632515141899083529897510440604055812981658193736960192089843185338268210914826763288961826370978955318021221733686040382310616136429702977649278287174710171995680121799407799694457755020435697850952731094535855130422022874881663498588092729513331356226319455925459856742021451584296033141881332129078538055555482081018125234776660157811604865501471253346581718939760490147208645538046971199704015408915624657654459369014964035662464031170146390078773857996945837634606807192107501378430815443212461321322221351681481087869571102085607964055791833787358444776549103350091512195615126628793073957628802048328999195935470662507707997132377172107638023301378354414616325073184664668091658243942817630094699184267610573400685594038233237405418061778416250844481721612241719009509035694464336845975056196848236405630548803822620401020943085878845935722640940763096169350827863854274329050859727003487354252571119746745530958823966693099017031142833503089523448099773652458186973379000650728409807948700184145374410463732379887354499431021738982134717684895389211382388898737763451683033737689916778247201856386133216517715949175294642635923556929414296360672027291195605647865561053879791304106275567619701786777918310532017597109896940870695190293826574728343439187658118329412914907553997693982165517692442954336850056289382992353034046971466404197873199969688786750765753779692210355925176400453809537960850839459505711616350804901414632790083571861677073839804179106128838607010321538980915215679261215469596475599979038642728895363463239885587988792139717390629305802727834194307242451732994215539967745236172081459505485262122213900136552471633540656510078872546412508938923246083675541982984850779338334047728515851520899738522642939135785838798331853218000244550314507160766052925734217811826689661995544205333585771886059412317286203314145945367542946120205288469445644116033066435133297505556279840538716263201044668191256243558410189898140919361305404858329540794714177703620703032560527694997462659544164658956652983490603618668577090961218199479631241611535927870295322687625976333607760114549612490120207212042799479888853137372143320444072675745863488257524866491827044950373555169619867080261576694720484555536760816110327449984141452408375712841705915178256442101453668906550026558048563349731161954369615872124753888798914908572279693009678896958706131625809570857406213790528521129251351768770001849727158784244788048091534405896742511771544315478574704700750239266501952082224953364205118282528623683232429403414272576012187146369608862077057544698106715295265939307593844150773171590486824250305881470978402432001903402396186238638949766156393918071035543031917727001633699715371489488211988823257290449391408861767836805674376632723817054452759911526447447403551475459380091958247953472422868881095371908963367534522138697329391451050645804287848824966622995135273941750186389574380540378206446691584807888585524575051436400843703091310084252335426511333500220683507115611249121157146068488221350851627474062271973980112516138800949187114730765846141174984878222071255787179876424703766755595367086587104597209108756009515413232593826008019689123470908135067413970402362446654240307063551947349660961296974069560471786686640651264223193049655072265847840998242194830697165433744230718100635844420248603087280751539798890001259086830317105104915380678847567442593968534556116616125814703107835739480907469473489155029815933150902052788022100375438680330647596634334269606388677083773925025741366323257440386434880869736614684350443623090808168622075496418904946776113768950916532021292039122350866143021142828278021528125459745254077315361760029146382226129434935149066302360667448739381071561410482308265673129515567791563980149140572517966026669421640455343287248442589706968309475499526141714152545820691514471672744252315726363301226198582135151544730181468741633242731654068282214176255283815671948929724420603393052732367045213295977136781213118810599157927875320672985661373676051227103810078685095430129060719236891652879376042041483204444145751246422804092518941462676348158893492695767881956548215931517004608793047622422030905982726635694037526062537596610451417145093234208650044476703194793545196282514169981783239499839610596777345611236790008403911607486256579639909044695851823534036433109719067142758002454807664295463919549270332106236771493031310672487358393519416794186745796613530769356217565421119665443558225375758882729039743973620242893695044801890181982729099305249500346782357614770157794433858207555872380657392745852836510818420192246240959802224892536817244678953147647342146522667897680437209358853106764009993616851429303995943635172753272289426218991304113478363847404093731465529548061237932862364625083985577908037288561301596969221475268967550562809988693333216600815161182991208287390897333869051400558618117624061732367302681814884272010608677312827044017233539881516332645944822648329510763555964603772337592618929350247226046350290821414419416058967397874799722155605379958785319532807484731838988585114113476060992379309157433290839433456047332728519660195788850075965685042011428270948928984673615982726651257871256427455255611214791387896801908903843686365147395835518491180364780332083484394680289151532368306083832178949065736943295972411759131687478268071054819966210563294318217547284799775513564318218300141741123231755710911625036369458502772160370452157403809954873972657091018193706715929510042243241997535099147579858559033597166967405124763066268698268766459597502087815779687435878614796929298448938788515845129389912006273700234703618262382909012801222381010800137930306181354872022855284820887645161753061643517542182081741758880566157161416438698498778001369597653871019741136389492053061832901903668935191326449503718434207222805830701798599827916097246441615140819578904264016174774289249985773261493242783266066702089983439639119506866787566111321042239755121519349741125965647760206965920043763656783464987736758851651153039513997065515245501833385836966274736583789172038006066384984584476510310684469076587251433346252381296297121966362775888117601930720996154634392254051312539626943971762826500513722016654535958481319990811902747541210251309640579996905276634996040935574238327233501755366825354802957313912728173909756483458626947298322928116590113034325117865518763984351358866314649232227177527896749223329228676265272650722488286701725804473407787483899358440251744804072483498511815705935618805532730072938402179978906257192045346601885811657433529448919518643756902430447898890692083778066926213774678603667794530695703166948783966283804171596975672881848360468183102214835387323399681604932820414891611877192870194090908407504903507007789831412489255663622914125393646388194929549344604999912700314137063070466922793343568156240608635056004984747204868762322018798445817767272964095970855369176377353157727181831336170831135703099925032741463437106524609846726927794823695091741311268389910629591190889714626937382220775098815640462657818825718527123961748933537455712501810523557032904933867878701072033955717267287288079703287856707871022686234856131693472072743365103176271257953679466198704637407053147976946525149850764385350115017672213923602302355455116589432280062761068802613069433525805149564935368298655051984021073970305151098817979120058207755893526883631631759674702386992511384312694248873885589948723618415122999495563246248975000522625094755055248908053083591786039651976126570256524476407912099620774638427668155068083506761043856804744545971794454770506698656760760228253528313455952966156084327581351113555330697626247834490810259963452491543413566808178213313449966955267023648695545362687142428934875696799529602486695838493128672241747153156957470337070434066538312858623763086637079164352422729519203413800075850986836438053766976989009994994453052782427514519257777991267281365202159956422737347543957120797212064512200578680814777814067683410281965986664935197627128787100455509845696162492077748031195367813595033269279794106392901925114588283925060686540381320693761911587516751228478782825660518423351849587212729835495901589106076074062452268518275038971340557330593846462889009019891685904027513627876266700455087795291166016156293277713443118187452475302927343111864481835252884967116015326364433248356799247453065868199734631612197594470998318638282640855640448997350253929317151636695841419993583425028265734587932908633220493487455667415438191577362335225482603243602889109403005483102670277182626374049187058311043028775320927149121994375820021445326482440457281844687717788157271566738333360536268885048497771530249349900849697517554563079189602996256402335782150909457145487066702370546986522084724529472346318834751839817900187407863826708028730631417863372304529977671985464433220469803177757188035542181186510080236408700486618713672350490993129445851366820530866903056001903723393218516875715021886510475227002298563960461938622346659010036300904547219590483980496597542450265168338439402113737006918873728504712649328654142640956979094062065827864595441974902853518403851290392352845877865342695029143719670246656187780136298270912167538615378052436640062181796007905599092686168804527900272263645954005032398034628508905838312286460795343658695056402833016963953208165707760332077632276524776771264607056290795087271647988108461849105295551617356182407805077313018927134861088129932404846341399137644002272009939978539240119588469099650264161331683969321208507011911854006508601065856395377190282468725798873008757414631504707959167797604554925773112283435347888971688072143477621773547319159880480368126873696025471120983593580217677274783718120932164457379545897013640679157052080235261014572412941848175027706650527767047128412516050217396528254121860280188571907057261628349799436339304179424607086174626602756725591609531935756125610410793414721381118369322083325917529381040646538490768956701559814470448922774377905352819589718988533268473375920658402654815178815304320880496481320122790759945445101399701474505107985240696675452477319347709458285560384614796138559883229642592273771844286923054172291253792025365587983558382675836885756317626621343321105084758422196963832621009153604914915764818453875525449731777809573013495010959976019939416356760550838495590806479012693994855211847809563175244520808490851919333476119361603105430981812841510099836940420328505283501033432103725479809236972747052949759215660192281865756713564188861476471426983021172961905766191518885718352592120147080458976884050850080843184551627393821100653490468150293700636206416441617683403054629184271507462053097311402040106235256551909302010638899520201317804197694518712352380084634553621726592816425711578777461232555353504238147570532962927778136414833290282367172133163372350124234864815323831578543696196395175672836170881137077304787906096475513439246256547942709614319438733766730603659699775184254260130841947256900472309335751884449083597111936798824638055951914131738340893818594105605350922777044053863971949377639546431235016626412461170015659688681400500209509207920413309857582164636404302463933312572450124048029828564351558184488868915095877804765249194073693173313462069034569429433739860516919969672660265489058169471680523308236549620530255468143443627318353173437475452839304681730857237695693790328595913855654605148541657930778086163930575301725673276449146995813770420049138396769134733866486202534386061156757727556069653392820072029934380406853339956031438326405116748282438336785432510970984982321849693208596181231412479455108006761033309653902339879967645767413882514694154264755411360026050097689509696946416048510205766783622580466778829206899475294305377724275661560205447305094263909063041792969281466831675980054509942788411638871926477305281685075780691495850164851243620233413297360973307375371819960643489733561820649036343843079095778231365221668989446227488102714253333161657853227856033189007009836731904291084952475776709720929189131307660765337990015725399149876874142580197933681162471437792642955566433789988650542020159587258003119571707454302112518994612633593864111594944007027246368672827910405235223481928509715973721311329919235534501794303317611514265312504747616219883623894745852587901892823147046646022640312404523364444161657728467636881293023098752725740690179435754097758889130074381252361002354958973258112219760336577083307095989922610306971155642440704326055584621698050820154645106452248423933252312859222308030886787941249226786447390724465792793035605830239714704597376590009202113827706644961270798536923918316571884335286088039194764401062342273749508876208851811439005459316406710992295724794427501649794128186533879231030209696905854272095770065910678263135112484804219779661484303119533721222475396452084396404829356235236515907614880207658109270836400048962612790050337632659168591510159263708174702038304627152558640874605723598711838441028411553483943410271975644300524695717564172252076231999807435169433902811739887428311818982160318007509322983086709785160793265136793749226815001125762060458818463420309273065040637721901627375556225953220172603415724730818824378032592703708789073705205778605631979647827558205168671664817977447180017731068077536926418289545976648922881968196017095742698918713377757130743414361948168779415474314988018320272672062723760640606703321938228335568878926709457135170455929646416442479125964358404190915686075378824853263680366266245950696007306476996066673242047410236146411860398267807026584919279470790680345362929532261577386443136414613382309832088231877593662525386966114698854689775113216878525109686665111937296674831509037113206542948122060688179235454383199946516939562404991258860115066215115902270041222745655955308891764519950721873991961357601786944175555998400266134018576254384381856670673987524826894275407207017804974909634539906760235416502102965588318902939808303681078057167092461178036831408337657932504573852643533709893554553750446490669906586513417876771302458001614479567552214172822467790409544958225761247257093557870747825656560550941651292500708749737616100947453387053591155038918197365674961731771796300333261894646388761681762518475943714611785770307358226519830444061085297059683705932471100180161123617168835485939120432056499665804032690741300770450141006123678900693820785650953438457166852166132845954777519678874807683643959545232039282718727858948984448347237538362058714073515528611143111035660623402949191574237028506844395216009021898062863658306108392340486070266799521987812009671817680072656406460453668986398475982531192431102548370404679889955855163185167089224121915120445654554593661894956063448356312180432867430078894248514005090753160620346966446648434531789700738431691162222331542109219989395677412780899594545954591410098530236346576397119432467062103277077263928472890631884139301245160419919975002225163925337404054435648089517524108958471860185104369629083285053683026713081868060356771242028686782635877299485614647638817647585334344935652430381792183568526313995559346232267725861722992195786038749533425851925449458807508568325249933365192733332205324939117467048740950965434629657593904784863396043422616647273304021851984744175924376372288325913666313099546505360008775916993986401643690744516770776776257803321356527655532988647299929188514987639838962646328160970056885866966569851473176427948539427475053987749645186079664651138753553304107041524453275996239844573026643536067492300096150204660974952557788555879293820240726614360870904201050107197499713299040283459728019011474836702781559603625293823316950651351285672198301743065293557374093381867479567300212581819607972260152175857797185177755586348979906871105135620196790597440594423438362351496083514054413967252614589620925171875598199246814321971583379617599592924209137206706752501346738409915944822170627269276565963528503410562250926076661346253404871504733462835375015129327555593948893624489890144330034376507053335254547689785244835990691849096893017407273402149192270011393731596288461933718262404055050732933046872791199339207294576451687148470314514752334410839537631519295794940122976329061721138409945629779684906000676652149349505100459274065720151453576807918285786557919361079939657754396205025856380745231781241821702087546276687192938465501975366624807767634758360328930721480763351597561894107416843083615386193116276699498789540108348270945964675061638629837013005913731054646039242174922495864081125007311665135163052347553270539073492518746111095041550554826134172017298292364966913004570729445198896355431998882077934315487644290028796081534210602060920960363238157921864907209322795018068841188320680496620452581945583730900073870501861848785122173488546795265615430161977186793493441306732129574514673497715951526392853164907208221145021661392265374421069410912491024124648588168519753189798355545537354814176322756633056196430445139360177248665542535625021094147355494646826789183636715810518868594853534167155483366311085061507790897040189977601848606611133449728810618867263150826113477248226808969544244963859726196868814256365093241516649672504296279234248813219148543729637811892691102659323764363620164958828673306474373502551560489995494165935262235223458469087848483743629924163099776623164809380754118401706883194732647957631901512761451666784947528652715040523075928380205208429792291569524879552418246024690666709949712907988730832354866040498434832332338579271221644646789007946340819060061678473806900093327361843225632489338147003624982319382880654204343806386611277780621356670872227442639399212238983480337972487879829551209510146693249291440570729057024888812389134448825920672011095468690830582225440945575893741693609529185584187286854910735459273296497872791400149331020546700793201438681833416520639793955216762767363872832170286739082657471299591065160699893478969650931054557259442467132113333704524632617704340260036963928705763212422196565781179283395710653339144895588594564434278789116292962381924341740148687973487186546441823410646464339770496539630652476229849407159135614482995941629867792161632933784717937405878050336773718588246038067668192990300390819237407404892177747456699795043287999832988674291891277380579180068631365480208182670929825471692342855523161433017812271595454006495283790488209967031265578109194504976292081451006048569239457747342452115860981338071047751486137394255487063475962814741305544587073560429820082081545340985083114503734714027158272800558483327819094439884332277289119615703223313940424681932637792623055830076236866914715288074630467383115559610162129633239297331181323502088603305358027180525591350009536642241073098404683302987819094058149061401785430076557847804578192966388671784548282802143108096093970425058424830960450553345637782157372347939322307398903667660440705355674025001239017820247851750022242821911395573567322744789638353123075444888182694124911840877216300297334829635672762472305144020025766493238400643116317703786612669904480771429905525596647925441479596688111840095609153028110675536599494150629733842325662155409312980989249578326530244142812329351080981781660274808372604662451478464116824499353558687772892732877965876748478381251150764277584996374119316079413409466041510727740382284763654441808937116617148429186058540459618723724868588759203362466873952938279666372432613251092129596548521064920055795047095380099913132129107817308168320074519401422351487749965233549420282642130893275312401074197559315818442051567112232902719192140255897383597391015241008300824730041490500583621276595317588253266516650404278692964110934903418532568997214129139832068273713209692802217533346764807231733111845945935856491045296497971711375267616125961477321823098548489237662472966068922406400879050964610220802682701052727267280434738442282970725709763697896177115756367105959477137524816106715245552813200127892574718868715861644670017994694430573786269112783059369091564899342184549815890289685493016396455846231056586597563031085777775565436408317375580008561437999348959721080209518037277195163877647796434729368220053775784064361234975921605700616758219034095271321394933067215608523131780088978145122310628925085917840324114713154764277322886968353373800588014574691179934682315383497723266055458646684851526819335718043969064583269205459937351813795693674393141762916047846814715165621036249984884080518832234937172410585679226473644882952036796608676367317358549151943320494780139099164743380427364080994601792054928665148864559318593734074438643626911234299276604926764370682512612844869731866591131802824365096382946113327395343678652541612894474365292318418736526616106838078473169265761410341949514485686844479997036673554547713412050676233450423384384779137652303398506844369883581936164387348416930844423674480539043711080172797778846329448578749006099943422698005950574406308003650619964950321594811708626947066353095871354091266866070909016430542743838349044075041153259758522153688878405065685051163060713749001377696968864902275799734536135084637091045419669442421442540938272712998217799998448099732223787866193809528300128612848508207166203052406069006884376130815698193946595338080040703453511886953435757536407097885255191567356443676465607811971754575286014017506816981266864555456986044987083775986749244810722931033755265378890831190730510276384536086652990833649581674222420422033523962103427775680914652163078411370142956578698212490828328796569544609076536370070472933199042026652280190250021656936099062831538169840466463902216757627940286615186725833364151203745366370521760287645627659363862530175325134955770359729256990246214390827419826731491123481836712684916365247813261386909312017501100432551893468088321694460065753767871975226739066592908307790368153715808684374747134941610291119944645146549765638336081197365895230463142497582662070702571302407776058792149268348048728725347847164485413444767678974274370931624608371322952617318777252366415227077211687847678474505453883624392868070701270805228629122903754173165118671752785181879767549290211907810462878224604306046287730650955976741800837432285192845701289375481395851969247116812988780432779611625251234866815281797556933419061668913952847431595938684947020359777595641567322196524278169171985959931328497826017536837861697652613124315451354702775797644889665304567515645131490707169476180878623240128994746411487099327122020507555033565807889702202648626682213472615073004576186357649060908038290464181018667027754044691868221732139378892385666305540413538660742473531744888575269646318197227460321677786838204575340290435882305417266770858050016337720433687182965204862523683293538216545159853213664421093484610378363294173450921230739699813964243341405088637746254960977698041934934494625612603400514031518700405369561898392045348180267493637614331930246771076653315645061519141967775070688424774658444642961073424951495244628389660636212326214661038702190343412263248371227058132173701252082483335731120208759316284197627422563389727640717834984866779997837796727359643960513240387374895358040775458913720835161279143648725430663728933428250073608010907362599084274462553446614337505766587915128908986287791094255327201947044631832274361997316502467418028701601597101421618665408689825053818970677057538955386515286499389437358345685597801967258547836988805616422377335214706676059806024517692489939516028079661772979962769931645113253218220290801572241014049268881445873501865871817883988404361350237824346444060536026109121179791270431025571125164832730399179384459029832665500347561990717499807332016056798837049576326593404621637558908884139220100226096914263710115824941838456289439526352968321949730314302914556129638330739082437280775415147992807006008937823490117864638749891772473616092282622165275488979662164991595534473017083433443037892800009900132197990515914643049688425534755917886902997521959075682628185887078557269641787705286872934926022530812887616722600796439554240285804138336175301935338404805743202460308232994688373868848854160818962291438690036202945765133975022712295544321258521655534886967170997565512424243619393122146549496379033814021833038767276795762531754745808449516131949286688387290115146536159522543762283547849931554658641784248011523192689542755467661738545301209557267141363166520519786154656384947014303635215443209169080293814216871725108468893581220172228058636577384036570028407364403494144564349942592176860097552848755603981103665398438698015901023189550436927478498589414088251227001915803104675148933556369512483229980947185548559516189392418675537110513579734321509732244206747433406818758111339040593236398610618587162704114206724942385124920173636969348517543990310461558282358350317206266541661100003373545771142951580793252577132319270122876440424229558230330601979283452016894024712440370819642285091701824679539900571044899295737050984427585593123850113917382908479889469035683005770721488683406430103265016756696005287518724305417404671149998006944965134314267566460631924558162415629759002403583820140348041407046284736269573447392800186433627680295128923017251030758619071520438912584872441478943886888951624480047884117558339159261530610550475945772603468907178090958253167343546091236205641103787108376303983797017331910067936620228494805471734505339249657267751064084074509444183909876480974976973832970506986098414624142615808786473527362550861466204810365963891200970464988334023835744091406357072467544601138860922599054061551551830591588539568232452124474926747014036216965884924997153678394998500403829931471008885408344281656737479184300889301567884899418814037504390343837148531630764741580298352803520375791723347239118421358327126392187843236835181000589997604733423570208217476344047115164569118254985677485380975738024896525248544149308638027891604659163035554498478156659263800316522255396954672972210834827489720404057715005434817598533629622474793388691129917647588241389791080901002301601526148695559308005678214320290240027179170024000223253555921668133570832428825076667755160573510140044013391937060732243322209174733616473699232281393405773625215580596222583919776878601757280627881124004216416193047259659595579638082201353032502898477389383497590075711878008090113526950722571628671925781742675542860711248503346811005164410120818303783899251251581857727048579154099178480950192102588498822642625927849628354976923083689279517974711388729685802083671047251101443154779857630911217860233753830301769269441194045560929808331589676947835303620735260571600706383136445714720848062979251450428365937249939464191470446151081042153933452662070301976011898255782927587322143646072963298776379614774190717221983067086018412500601991310955823108843160367666235432399692316484791622520297880120092406045239464105189719737677342384531366009321077705949828179098567343302740843988507637316723584315155420038288934519618268779918454917818212813579505538953263529401481095978490623192820499114810411655246996040443427351897301701442806239807221613563312390300985120186001410693198364349069926166981806290039868216115607074266228339377200236909285726712022777628940132836382800651663733001658715203944628564458790577798849449757509724522747353712538118634942927636646616999839715091422106939499562169636059374319599894920202456213217205019343133108256431537540106120149661192645141254760820843211731871756749725885756615768978232404626323634748117516302628871912967439280880713344950159064094276321756593073243757631522663311175517453118503095488715073728794594363987689518797461108997622444926288733214656518472845001416234243587706279008398087274107012705886289209510069800156608692745401628754201250947045306046647678018129904449247133824272641048804664991422744576125457888927739457671241923872743578107729112725604910652454671502043693160462518271110921990951281715547793244325243384319826335922833395952401616217048683459635518791732088708584453495473405652558964202350076471762305544204075707182407907233268288561206489877282537409586780930769608369854596461570646377973067434454155207672999975158895112857481093142902491465642557898979871493467788485330994982373077585157590177051722418800173200332324279920526485302877950505126516671024153017542464119995576317389046178874586264656000211168945982922081517157585729413298939406765120053017415827460435767431979692809768477247964821404545589895607972649523409065286292749597788252484953482312126798557545450420594883367986965629779246984508330856536513176860701091302924392086767663108631479770252590415467302436852922270480695016811074591176519276564359530763762069751242249096204585074492033639167665080116264385173090199234234652266629961641756172411516766772526305776937330446262041512870025117226671914831726908941062189761843007828746661643348635966415530360332438777868310245214518626416783172037718899241877033950338417351039840448401796048740119940226247155818568303834486597466912957448352144026146459810015402211283404304457153115179842691271504745120370912736333331113772926195831195184389831110997013308136663197832253348555930422234357277215582392941990190282907882242373723000482504570281821372619031634007363924989663840596159415043985029210107744122527492374489640511919805885257774321582634337433763927025992094325192384752734940756216450743616331620982691170240622942193024359274179207209352698368225899739521582470091384768456656460828485790694712273113042497949221182353272228738509911348533939593726746421207738280206025130647565240665430155784325978114923137104806525618160398098295066662614128187238285512734482086883395265546128067028419075457530454199782488253641844441092045055959802714887929408963683894429478546372559190768086416870525303235913973016813100177745004568190606130063611563476995088511619412228070802023711381617266714224223106450340434216416948678273670597879869912576522738812908126851438547223014979333341527493854289881540396456944253112739949704734372533595583620801815573240518010095700615029467572364992377186619603753483591696776916976179375599317501275159788090623372085487182136911502680558723637660471201314872137009439853555788465116810707051031547658277697605330757397407158405090548502071988033786378688732770317201228307224113988487643265385971103117022270188884433115799126442043041475281436248785534468490949199832878556140579906900248026482308199302025382649189633306152944257726031680072153189250826537540372918731598838202215127756751339109010001672840286424230062011588294581369415990929201590375742225090069389162796994930350478347721175156528685652422724676291180981199614104411204745806744868575465500914267922970082071077685222828280339101387917953346787225043644959126370275261734822601735783601232748766023280556945273521670777282450891640080987107844551470939241019251820919819635669320035752070885636573934044597925876777805289583992499118609111668188116969556025064118056987915240706910471602448116410889597121863787664100569542697238173180362374458728086983006253513535558742788006387702407326602696292810181535731716705202831118965129242751358818817557444276768852947126616144303639590599980954634358713267987360794866292153098363523941421762536784920802391831248685559544344299210704347324081674322407174733189764996895683646106775671488045978257484856242082613580924684304820684767179366592020474245515938001448232941488978118286372050195550141484779465166615952608071262369280169017817462177737757476576117820524399740866338557475939505647284100058967332547074217141716052574513051213794289760581672692602407053134676097417782945722995413358570103750931164415835917059757044670207551377450826611267676662704972417285398801581421894661901956174651695042685643872267942812379963032403009574432581310589152312179703386959994113368271605827673489528036943214786220532092758394768896679630422484986923285163576934497572786641392965014686682094928778141284480279618859084912097292543655854761272953465103581959254757087029641463632244219106476344783566545832479963652140997758524016873171260639127764194870663587512048888851570702216347881937792072305902336952745907789469754740978583964307680373186628608587154280242316290329795631315517987365214272605224859780168492462162620706745963836957258578947369535890042261354498911424123704865287386631668468466905876375575906888821358713921590108814107452555973488563439976026903398841754191606574475335003132291369624435979720060498056668329313759501589922475740992415506958170136834329322781189964438610721857908692734529116355943878873022534992430918160732139425327857165900577186846975475091717940019619753508769700380922609097489540764006418988336970885001594507669248846906605573214634739865036635531807146761356901964937677900952378527523638634425299096311355000606154534109723107468879779779305142290564536062496390894405530162902320290427984944212287586190216562954504062302367113395865057337576714094433380225718983282486090915683725651590966515702794712019980623149005047460735332871916223239795310832146420366371011166504103412202626632441941807262683843013815811099531346177208143206875783221806796468520962655048330409138532811286775275617005864894056292091462266525235725122139916820826158897191152329756070198980077662651876007347530370146618094839793076882632192986035492528389094465364109079808356508257177364457444791925140036924718212877257090110924341297402010446611273516657083390446899919962755051612603611013109729184941572910183954708580128406541510499890357549537765586985567901838174669282611965403191477550017595493026900185619219562508202432045910987490404091929758199927856919053179097761650725818089517904276737313429373826540630112889502296560713448675967952560893907634588533213997682740134033591952150829957877338254982350321323793117108391148656486300419052140387628453689681207831311172785366332545124857187379733177284634446596496973786311562679500990803468154092447662582109187823731174262917473709699644613949878699796471927009110767415058704255414895651395168742959943703149682731668776038256742649842245194748572727349359107986756470356184673570084526417124361109082413888958617513137939655032385786759865470155597770256971863759488622806249814867784805702127291130049268438653180715910704045852694140488187934661521876015349325903994531749588513943779241410730942153961587472204199964351069420432349764629476491187596250869928870509252795122808035886555723387873665650185969993466580699330573762328978663439308252904183759416325460897109435321063699430343671681845810976871258063104313193955492148353300173829836403651018670904902144736439343416141963950081002958171383482136315979564370978065859578629275483768983945401373029036681224410206754413829286284165770943192075417173859253977990225601375845991118757315601420194546197439527633787284279665792177737497958406967008329806033237773595799489867350586234810820812473380949741499780789438413184627951495048899245836796838807051937007854512172941343362790038928347096145351754735024732596024682236704798201224653200949426400143009392184316970378362618250773207578560324335247563929724416186080839317192827376137121605124449005461994221437401379456626147659520111511080183091353040175582596725516881268174975486244906721130119232727288627420714264139816112136579315922837258548974295413074926505876595722003388250474432629028675800175941125174075082393360122658150805568164588513732055920865838520692753023143509202139805742741652246038163411636418681094637347972425658950597405345363860747110331296444655078735292825877496270205110483405768352426528218507336677775865403819086218173694457929931773888676582970722799265100169347228236202095499984308422671051311677928872502855040321817427620082020900309519882407537724249353212607419245280506340887604936666393342783148293283431859645161090836356378633383797523100538623125618332119233166302848693764631457869330425671050704856145368870269016023987374727881893413921873316845476987863749492903120127125143032830305109545984760793873367413020751767288164872511353631832432570990012478325761734170899716396294622823076222265231232955612972714885456937966108308787340593319994688238361622236421650095184075341471181731082139278253452206369399022630505160664561868203831144722229620473848866513286952772134120853377723288614740987460002165627732381205725544630304357867428596707120436018578982258320976786394878633985770134548886215082552911790609715902835715586009084794850000655325787505988749151462684121308125407299519711430839421466790248048236376122442707699480139945494049083000177150009958509380046319513743766620102475245258746283413875547280067042375233824700772216689737540493650965619124311193437518182997185676996438437625594845101382695999948111339685175486937937197659078420537530824146582989003738831279989995236610030420862772004739141018878402447688179705768092551487033940104883163511799305054671662255407537271594188208229562713575727762805942447324711606435223705949195712133367594416370730316307742361917576097687165092456881548730936607670151697066357070984880096470352247193489720692608481577331839296958691984300553631689292630563745812110100561784112539360550431447234889222349146294845846470196356918629819993938413932283062202625966362157849080995491908661879007593898199774705210678868109489035547397723090152553260592395501921585273645506022980720741716865672000488542751713869165454815774830615507323431311131090654070713630650679044804096299114539328922307169956397561080587713333960414360980892751525089256874348502685496326932955168078073299863139552180569445828180253643984264515886480451251449308696273952569563909856928445049339947823851359129852037203632606922790340189920487163336485712341728402292967835063919852639525649662619465471080731937883985309680553728599225304108534201081281715821468667187802501524354060788280207863807271086558575187429403738493766614269135638815572944262520746400312831075905252690084716062429059642306674385153904068104564095309746115812204631497327156761969563423841699446701620929150865623544826725875186970789800862405545005820356377928279801232051726831937631142627165917031555795394030310515505396919004008230019610444263931211151529092885058633974894165238472029298444363633392634659167658815427222805542893323755763649765861124983515406134714331434411857615524481686173276005163284024699380463878745112123203160089035568710095376864880058442463837684098486055469840240643304021229280557532074631038167702840702731693340411307679140108890033644820633107277210971715227921299617648037654342496489384604186196379882593870493241650029503427883686139549694223519744423666182911888867957839921831353847051877268890946458346974593569386971508315449680344704561774271915199750236106513860301613478639437721722680935419711037711823594419653712041944727168365865420235039588750956293743824114866277381006025060524518726040648649297408148143260326451881407585564883197544063513398723545347573969070907291414440085251364170241597260063537169078854420116272388471476953848782215978309621013621573103262862112089609046502435781753031134847566183685430932574799422327479447120563973904640507345478888981654746335382619529579380152414472057829512354662249134117388687414348709305146768281073132261160369130101254618886075070492641680011889408543966604581533478346070240086466990290705939614260901938518257291577769299854268212119725805632629130605007727128502459382040710225598122456754854155618353948953038300275655578425891002040218606431933858941907084868522386696973718246657092578087132608808457172607371029386565856844871565958168881861136251595594973600444320535901002237500565392860320471903403622375990214103147326238859185826246572885990710544147588778248531659642839652912615836068916805239168960170482933469625255204568097840991662062638306517564415500159029343955251930989137990818749895153341313419400763490324162342805880737889412636035201028173715585840809763089635349373649624694399119435115968803391174324063731402922002878798557218938086388660832007777796967113516557131858244042549257493983574093151631117001801176921167421213574275000828080091203122868777892632956614771307907397003500303903194535176863505674769838987133572856621878004215063799381061262611433152068743409554871801888986101644338587680029390586534369740110043488402232721087943264551576794447822546651555672459104593474306035637080775209770914764641737880054851898574209474971108427002887564054206766263150963694755129285506020940118251892420521521354390550356548139983527571690591165034282332231009101704509942867496736137154332711375390236382757573884254181072481671892564398984074880055692614158893881087540182283032295534521403710728923889095725863826745202493318645766129412787099732354436070334741413338944671028794458445549672194577186726331800534033332511387901938180947684062603941279565979308239683945065260991626545753640878405861711032009211573199345755537109699618225535787577571754351785407285580221627382445048526108760727935658961045674279136582862661804970198598938665561457007718448962549273684648211961367514235911072767871639619643847613285470448032481762419443503968439577599440494819752073420922447992290607766626320816281604307758637031254637359702963211839733194225387854934674362888337784583720244578428086046678740398333349470164906136802425910035413110586425024994731435529125387607747025829123712764340930153661386443966257700223029496025060171871673751243080398057275750514473474512886793212650411811932724847255663257400426116057004018350769620873270862556049007198451844305814234399994614198182606228739777382442383579469817070750425554628376946520604574863965725040848895764014408091441717500759779192706484701078681803778623606489276232062920182109884998261907216416783666043378230896658958602855503784470747313488543890360192785481246033481008545118824727281479815532591732263873685858953067990372505716532867295048564907133715343558369023093440054039016006261517816176300175941765177517714527415468827649670546949962504216639906039234198624457080045325353795152800129329338055560020958002051793197997567138172288494427251940595951486651181440550223400882688669321983458147994053269400148709938751358052958585274515486600108247386154901754603028743716598283283167551996343973801815746479017986884161795928480635088125930628583897181363691339913013215379053940072812626592978829230985694327339671932026146907319358872183116598587924012005829550226386544542325892048080062381533681873262349554000536273592616791834577184251492461090820495946575228300948165575016193178818071700429973846017356018058302363994516789710349502837261389590056566998486768777850793359954862080556503729817782517438545159801515594876899362825825666807310946191042851398772381952117636676111586394892035863828834545587817035396687389902886007539082862253235584754870658712928483576904133178913799381133203253389035339849839305015445695489676044237265062432545008799729710022246570889933105484187620576881103606038512650280607542893761503291564647479670087552989416873238450228329878161048386392484743282286022354091845738320309506432628102493866579754660636902270331852388178321803055561077546183784172888457484304729895239169034423022686053474212080257470909228188217789978918891343593120255045883027316201696797866645568054194457035507408323156442233233578528888032548323864117036227976654543713716818552621844581689870125411356853186330623254722384452202339701027165964532865918149345364373621884436976276575897326120418837092751467904271397824683704381117954641057722754744009655503054883667676213263479273097946653257575404848926959331498285717198229300373679373981421949716145161319743674464202033535526172067094131065935971531385242402005905321421382695536476025256657191133535089482120366985986318400377393080085877544041826487025921249712268008251074787824281348712797622506778842207582771444724045471753737011787690833989644018046639458871511169389450033947627820127636044037782863385677778076687832017222968274639050855820605892983976287264655118579971718128129131344821422200394836191704516563460143890428454646237803306097769049289909143033523202242739337437430047408978051737470960407210982122762458893795996010706106013929852251951622019319867274288716602855535622955492134882184079506308918929478951283155348956241130352206639687677482757853915776480481712856244154775199712611285821009489259044562735656668264277260853250300363594955002182196131455220918954281204870761895809645278634590483818187716020204381154963924054452403829019921707750184469757086853732864027610481319720601550182759272380799190267864215718915413822374572410150815880798124113803854500725303616183939029163989972062314410286043406732613167398855870566177626921120475736004234607614356464801586186128607394381855110404070794250745921902737493482407392209793800467342689590408172650023771140965273807577594523872244582042217376108789290122503718923455754357226889566334241015904241632220227736457118054320461636428589565780808667645172489204569567422476195818903765202375335856678519770522239485443147217690362599607748665362921944538588574516915788180730539016870271646061608881560209466714845778442894353432202082295390732394239732972154050933046404084232049018279397490631632453356917036906919104791433846790033361801737904867996414354612878658367998948739139193625557520959511126356332074342924879787647504476335641526324107040954714377815741868671866961947122257756095713777042175316452550279085299345058881533169041248378548702306572543353232429012214200238728442579338303624268254398708856486632079365270428646904441594846841371801065990461321960484555154796213185492241966744344334518254734490823042348233386642306277091235365885630724430232377223384658365064824150592381399168130145860993228349764598363161666724307692459337324112982282871798105891583758507026508875195627640001125129481121557798408287585439996415214422660480954872884016037077119953267524678546405065845603675697373582459906416630521710346830129629067429963020749752263436156065356274186916317041677339887467519594592187376466306121336143726943626671792271372967364464582214680148183605122880133316084558975674190537254882720680959030616296129696017579791393778013493409973865630228001821057295298229008496338876275753120591937538704908227842687016545760794646766608012342971328470709232567352905520136370763174746886159552668334446999641141129180948443352286017371380092688185503077197182814868661162957765855557992844952365598470325400908800899589361259907196718712781042796113380580999581300049668995792679804121092643986445877134835114349743769572818847621437374097450895279045828109043510089925836374531089871669463619403117355793957189077168972788858065254256971904825029061240200924430519461800824597528086325568265130763829003315071307860932924190960077299114148497426980711558186846133824082496092606345154556478864065059924690939364452339354393687660723057270640034795117651828840651341010326269539518916153774324321280868330638934769849382843523972807824149395156306081908255418901572561282365071897355699781668441119934743639632320010914908405672573913946330168823835444994394303424242219282006807231135603287188500158116243306605893493016005301313675857124470407128364650816183727004640163447721382589247206384724794913711332915997711459984516307233388408218160385532189432013701474938688280092275092079869039946588210051257072573087671689602549559045706407243263320875493871531808152670504630580907297243254689878591834227506337222810067110106517040462385772519071478645731283410572950349792250805995368502698612441103816077871195659405285814052709498550714117610987878436267173886530743320015927395395177392958895680949168931775904735845179016570238836883936485931244459561562395016538812505589426775316496264836842684469009937786131810800449334827740394763868835173936236027326427388332350804634266022291151156220269291965479068658478547119713167242924939096577553068490842870289233538343632518691495695498634883332294390975397185356455765628729715752203579742335788006777226220345798650481318074320783555377737007857388402620020054302510633359728845519795081819820015405068014936007902973314859375904370994841836555403397133962005230412214194497960934894558410916587064018150639400514286597428090081309001988531998206599498577008999622325561754966942937656268109080279560269567225624798057941404718333937071440256715371589063108718978951935366452904157408414600855903771589890338667436090567625988730246391406700467886795884685389004472941586455024814004774138181653847514420593544622458774559553614205701575402409951292806243268777104152669247000289184225110656523663669271563919374735145526624854133697604933541680016932092287643171507887689137041226011058025334573353980484377771117012154627417959486607509308897383137257106615770909179174635337222534388136839654618338707553249949837431394524295865630224373794341210778174535341173944191990337757487772026000823281258330734699376023963262361082031405974907285314628451794152796215907099004953220095622919328915978229052719359473974444723288891685919987462797389914409343067531850579748162202010193726448569332526384855296233225707712335037473331655647616738681443745569761788860478254566622987060731104152249892469095860368322516206907424130434204714876878958698177618207471925977873265055123138438764592551124840581052225980121347456684674704362069146800076372972365245816199271822022730247457142926431380062218604865686190090522367919901787368762876097834948101783354216903365731509516691733771491635154877797077142686603128307823812302231109856305312581375347760433753174902053037689372414084682774246253238174378323966346646070585029449604491940409235485720357028871957432831390404121424997848690329064756164321034806813888495556033222417547723486691449354519477200534554912487613668869736474219265158540915078788798256307473589264477708461764748397525481870392628950924109375192330076724438810435828085767853707922728963908328240585612034003800101538964274630492085435785744478458191810879962122967394147625591282365942934263727493318509228209284316899446631509432784675736556077405782021686071120821066733238270269085554843037525895897326286160056019586866273461156217751700116914943476508230006482208706257930349690299813279641533079673011929212839518830893829294958957740485000020417547790935039159395244157406200013177084262608489498408199631698596540234594622611086135959132900403643069638616651362614644621323332705771837680416161021877548243580491684375330739867883885792100987702152964650419732974155399616702218479023994962666127472354775878727481626719965793195248512861137788590161349635130736738346498530681800946345170673548441424769869190012111616531858443984897695646531524643529515396337211097814185551491740724592433909853307997921701804718348264489944599013872831862817340586631499471336060557301079280527492989727439706388345326815454155423116718683747855372384276154609884337416945926380173341511693224799587405053857093470635757108131736583812842176627934261773427360905823723810438227386352040191018794445733025777981414918715652451396532520432720354649767734687839933409403695204642406833888542188375683353224710026135870647761838439312969520078170818822326288321488805956616743829150610771856613481870821295359220289178839585381165190929417926355286080161041472822472765868603862350379115567523156470803618600334590206399057502087798903009539751743985670764385403551286794338179201948684188255947895318504942855829939026148987027748106424979983752359058157953882660188344067628914980214917653491642190474635507479028196833041407358008902520377159863810735979571605879470376428376502474211580795083182607690756354734757836890210281559468958093027165613465549810308039334825516868301250087778390919276613999887102291867062777755422302842170949028641400306599682270089370347829656674489970871397540669258020158164893728752141913105908671535945153439467911311313890933534103696972610216056706746119698510033002766881746127559574700854589949066863068444751345656711225612077530212078390964859848357556166077054975792938569297077637611124182549365538173330482670385493591963384262816801850088165230376171862473060460165593249346076181526077854306047639049106998714463425484379195244067501216803212676023142230836128550778014153020465923423922127692081836691785406485401490713211232994822761610620734593828525243155384429061625113118379286917612336573854331308546671445461280728172120167796494277091625008863917341570976212547649583046630039730698156921141647905263385627621147604751612902498985288340043792801929189274523812223396790101776201200646176443363305911784860582940503084888741805561114347444100658038610365237578204917127421627523642177486695422208791853080186724256005713451603186279517879967067862256473869264709529014554474079577280869803343611157105807355889750341899831555296609652260942174377366157439996569938595964128468396920216746283832315734508873363339286197216610597368347248818038387870196532235290601014978546983356991523329485756155712479367540024203289555722608292433913776429881305994299692366891556917930860098295513719273370892860860251700782785851727579838780854778742061226984328172826864239984339816466180455955334990587649341740433246292764368039685351659150247303398799549123259945369370860908323244709105970797766327899350562737567953454423633015916646904402487481992891599064850091505505261417011461325636314629658437708616116884752140162871095350798262182477390211961792043111608258210846208940126528579256480028721664789565070116434761535724540417620567147197250289974975090012116809828680710202206999151899115267142936436098586040616087114081559563684556640189074327377783576874326836139048869965915077470219472883343412110643598737939834886979653578752298358644554450197375735549982076724328454485870770142628924854838168562199041115922534250127432027932410130324973326220335112787295786631401864375402948927301300804171741929351818611188196521023836373837388742041579738897411696444960631417467923365771376191937882292747066637689127209913037196699297135360648816759565348259263208331182342560452786384555260328713056269349235678227563867593738271315380449252662699143598498920771343621907889831287837838557918420300617176757373255368998299597169531922267688307496961159525231232880505877201615384303916724514543051066723550256200857825188048816078484786426687622521380224598525245105425851944425768354178001214090457977728966748624179878702181028068302457709136298246435019522260014966172664638058024619881631896808086027436975530865189078464411422296708084077926926906370797325251376115614098055333775701791724507833147085680711459544471012953378580893894539252454808748822416265179477530543477400348354429984475204187728278004877713622412541009941997369472247948451794761843438760069312679185099638354388358525562710562427695347411606702526558901733970711482973486611875579117395712582037497208501790087976920038793146422208043225525123185264630312688208983816009177789422328412771981095748469131679215247916303804458397496610628649384127858117140690075737335835117979470371568648873639518206420845549818822913209053401586593443171060796043755551503761142803599260676838554406187201689160509651720610550678864064773459913210966292847991542785524270100543297780040423055821148125134539034645010218039169040496129424821442296557147827522897732874617960133853378086363453224545876826900519895201071903140283612581368747100119704519954034826919403534722604663702154365788782196733670970941403384905219920654836037677031040229359711320824240460530107134935544656039276545058828674576766561593387090932384231429604028093598796559684280510342291135200266716291711936297508815858736478290465839241201341044619572435109741137370490274581863380647689194973222531402139574687529553063679666402189912366276411852405500039018048089843653579370613171807281092054172443888799372667727491678094357277774616870882795627345418937227403619829356877660137457481898923388845177416346154475061990606034976498272997745672838258729091210138307444391555709809939364883415540526747790477435265689094746842513274170539650643322666231863918487387672968040357146245754538699942393005350562121669424394713098292428355144416880451690058561169852639333498987486091283149788777325939823471964842865031203321391487923624599452945946985533629889061619323561168598958670469989911959021437624789255944977425339635630425148744648312188860658785705675636361851417016135366572236656409595429794392209516393063277479852216708066738823901062075285939284766293864522902861850043082190460342822173886295396403972195089972465933705167844396756823221138111811358596589050773548549376567756374641541670581768360211101866944214282629408463970460119429773541842436282011630757493407715574548328253296325538252096753514164382619018584350414314903565763518351104126367880897632628093192213120536778647182694225516917315340157900200834205348765135651753175240138936773276552201746666452338843724620827965623347953737107515105447600812027551285710343107060781223006542132080529157133889413937319424721155138335161681783031163612810928295444946824569892524167061993673554081700800164249386512261307708759328688214968794038801021974764886717845115530430329049423610163134594461691248332539348676254466778882908877339373692910017157818874411300211366638635523534678413780927892487043772034031449555945879825756799381046544366800244742016205393991830210235812222479868422039570649542644966901071231595485901455217481369273353248466944704522171651552590549058938387795206955476466334986494692504732547253454393083611323326123076666320421243968068389383484838071665783858460010035665739417411896535600933503055288606703463739447299632315430404487044147573944913298877640480654436103252145393089293001357711605961448054178542970911625987860088750468299227479717158662595016462501578515402276577207986612051453722895502193024324189942828530727090216031425505524650677879157703669692462207191654683618333404125819354412867021232313205818919289308140530449072158352271432701163718487897128689229397965580581517896477963076029103681441612383913668574676814583894398369656205954342699060253019701549733919312999226301661210040503923395825616700874088711499333991013039270605426886258525579768850906957658762360790244952270029755021609861291471142810000104497466839349061508806303295339850183027301340085771438349263059381770623945097617283138883460378558604666077335373019220816062010369977277037455718992883694762128635650406049428539362558283365400364756358196154780249094501135783162878424211438374065826302827599658562984467196316928881784481375694378690506683070912590133845032344550672251521964939684753070223869865629208684451017632129018458103834059492644030771108840622658756450187349623040740748418858705685400278598070937062281910069674425998086787471400822293139923266214775161053577456753597075433114444967370740964180357687078160827329846425318964274464900240078841885549164230374445214799792155309471177749653798779988311825535570340062151860356240592212606317213218161315670517623993507177199667153626194356937500288133622496099406753437425767006389298689689258768533174197607361684971729165749745041268798870945409444930164342094543838945065699629913761058834621919548224048226441013793388708876537282767238247300028310596986641464675832124749602162803795781671897046830615847178707601257670537616924291860113676476799790161911742688573835823641384923315790008764593128999008199659973339143978978940509717202896614365066573333737774676781099810056172920704662458745099780137335368159930184330444211296596485633610067067786705364303211355809022150699070598164546528172875475614604008193746544043054656697538071600243920105591010027683485329673676593825158150748397955571485941163627623610521208003929758599859279484324029038980756520725341193145001240068258406210751586195803857019338962187799153095179351339379214040146659250887342811705161232216940150851594950628735490822159291245313987971389145595828529717521184054608588436374152917240445528769886004385739354752958991630282981234065679288507062087905686681865558129531646704020632901514836136295020862694842355566180079328912769327401608172136154219618884682808044390204416770266388496444166509221931043627820836295937618940624678933101181854971831326071012522957614354656114204642231440804280527122488420867941238798282368918027635975162951627276079007388190849377426353413306836831919548804151246122390644583557264727336843472419456963202457497327491469223603970167408164767886116298343995976802127573671508309324949259349314576556418078942087803555133313272661417605016990430317239986259773486960112341866756210013533872189816444697261103627832504720411256819315801979217238685693955654723396821875941771350859231664411285268573160891047855043114926461847662953852155411222007594836122047817328619082084115019858013772507046901960460364928507059972260181482498370695669763282777877677310536987967757990169924700576411855995650950670296956253915793322698107419846709599566594286791844854290086860011211883833022338867346660079430059858553831916459993594838546351608393066288756864107780306055960590344245653121695761728402105618670179896580611754992306120773078582692138553020221909237227435214071706924759933238171563748353255826614317072726402477139292653948902385560355031824675931959180125654726880606658670988076753154980179108001716030169921834021006687629959401299500424168024064139905550192356058434521037806709751146031210540147894011339883985199324515747089471107622902228172760869119069505886488053110022839527034374031449780751266441958425019999293925492850586076831062329892369304103720071526125915462357247418585188609840327199322733552009757425936532760140261504830888271003253100585874046469521078170610828769016861676737937159280412704785507122150106620941539725357123108019563007980873870943128716249035196579131122348606319166268909749939279390421288694521637319441896225273625013132980855804865102765858325076253904315380534953100840019669613487703002481530081215015123384640909054709005134138969883667107888604313776285034855232983517273454104020809931947745441585194302779553005483703190243783841663453214881000839341435229225963002748314603122585452258676546968973783708944284931650059728740523072790691590116141285395430401714406090424027739400597722188377702743216513956728767740446460117153950064293521764099122761384259147176123894196512575504492061209030762699790903866280563476742461630440858917117888984073178173317801995053719987965755565485141185401843896230761108095633612614006444483563939910379524877324869589298789662540321804998153132785192837296995408689290395523220317477877877815150294372817882034791809388471759625467804258110060164909491493115772624793513399450134540250268810166542700743477365406096916035212243771822833291980335166085354601770911446822174667397329808462618255816748488981972611863624047887806291424659432851172666114936970814884195237669531370634298706470616253961770001680460025331869220710997045886429256141635502440876454119731469222507029833153494219656522131301622666519657846848072398681683195151004698961499817362001570072298021139750168242731390257375209105538854996114023017373815779519200146018579251516726278424617440189965621992290976512740186930999388488827727971932748231582062329729698084391375541957249962888337916059875992134035049808419456085227688770047355328156406681400577886692559850855031735223525638761517631377083994922424759543800839115703462361377596189679508111818863172118372347105668540136316115143874501841588027344658672161493684816406608591554254503363192586970577118976242440908552760338062712789412815500395603173476145087688951999790043709040630950662030660036621616905200089210540261643342265608251154836887678469298830432024380087310000295555911328164162108749232774026748989519709571345386420259235322213277947852367585695110962191914533760203624843997314000925902489237985867998784460161734116057769079185642167288614200338804923840949113837342901103051750677850684699904929643002251664933930114442920178397474460170503160103774656663925596103560013274934078725133196775208569892121572557898639123341694029762745588374590697157690047470408814726290553821231203177090844568154096454142686844046778314324571471895693347115985023574821331203055060371818208432943192668441756181242577121514438597860063842411530543899136378531761666692322640853448090960348546014004276651733572691058939541626486474159504088204749890256746845870896873894277379027619229768091875688241427134335414250443115085958332656894252486370273937134915246246260772380971739915649474814773233089910638196624828345824355223527434130914870426342590601870713551497965990617996588418679737084284475973029330431461349083701082688686044226287653109760577867065141034224419572094876318762631943783428596293538735790063097772814661305357216442361119788565712705269164141920225453082510734451631762596611521244817815603296752085469090060144889532447323071050490326178072456843536679509781296422306467607657607318556081592125907370530393844285779930873992961820302929110093146219787743406833435387875145860659435990665058414375267775313098753006212422518913517681531497346761120456700431838942253444471485528775160019763768057023757542808755220383288186062236700731443553066725454880707663288846641086260179838856339933854151286060781432108335058281339286401041452134960952445419908284286834705794278199797551416113332303419748006576711228032716353108513192237285172931068942855439530612468390642716758036266019382781504196380520532138192003438049043350979695069227111015842064658709678312054076033224372293200335341280669069414982800948546114133777223802796664872634692053094045393012087528390046032668011970108245788766204757676153451052358823688274238639787136191977802286436735958774830045924381264410493950215376666823198090121816325030613723713470292934387284362026527088423095826249687717759890205894070662502869020528459376313769860019246357724384359173412318497057775157295332774751106080955871045947680339125268507972708538647068032223738106396820838338254321019469435849874380966274782473679537494983955876885960171043569696305287433858009895515380665892921306192884905805594039603049541807667789894922136961695692448958117531850593197654145332762928593358461016834967129024037675545944730728721865355371519059536744786910715741223048531280376750806010250912700093735327508690388220070340026511973305932143831372817432631936998848418088494034106718557025845753995551182951112353492179061755667829699218377236260689266776101193940907528884638024410265155443190709860263545092699846678777040545803421314443704376917893082083044101169982016467245070302627025054681509117425333905852374014467620612413607888332373890126353750966378550538626397599283982477817764448353324775964389359653947271409739094194051964991949376850105946913919922605264710631163924067149206851917174503412204770575866179365806577873834387523348760422559913442896823459081599521069357777446816223058386158382983683930358230263693324556611201522115381277072394911772384537714556124407760600435756291877039422532731986006008839384971990944733003783337424027279880328246442186749248221574572242115406927428314469727617418548986555335502383475165932580571407310784630410189381525606875942344571990431454210882933107898162600955751530297323104177807943247742787606624077059321131593111530253192292021061192324693136179152223944321918334124106077130227280745662467604984468357149350378293819349478623525666184805683117798163944257023411781536703554842745259339135808478326327813380561230556210847453055851942399377007081758182828990790987491462481552946266868123646960219807873391328375503613917785578220888751459365581786780100662911643994247682760286712611626059273656951571726325782053326025109836580463695131230070177382335176726553412588779673090894395364842922148605722985798351012057481455481705720340699364920788189459405810911089734480000583802239109757570847987765156781369301319539099315298195036963863721546359026691058601231339277338671704900416428917573507632301554656301803936936434882231085007544054501978633433005613617839725623584287738660616223981122023084840254061745132612307913996046225628217919991627569868219727785633081616193181426390112269078157758393154554022348184660057656125863344338347049307651934820018142823184641943546141425699672166776072342027183713883291715374310465607870703778524409145829713112596064054078048125680969594983086780209177275876905439049255344450848197145454050922491558873261118470337429405780779529522047838437881541549481077005335618982898501799515052175387544992887329997744155469049762365723945871696187322298091357442084004362796020160871664469871817602776234635134703070227627159902257831128386120072351352394825749738696772968235752860368671550315418624250141452742470111592914588601927138653323538189856748073014851621861439331394543907657902994265195577246781096930536398544959007708376959778107953639279808838749973628651706037977979371864479967052291001050308531115879475680631824982979204725099793327763844457931418819369668324891705059815011964577558829680922707906857337666853877729803940365324081245438088056586008324517899656782481511874077254549264945207366152758977444884676461592461872695028611556778343279870929647521856018288034604404358876148394944902543038544680430197737174958766409423216051086666035843246088708896605467970996578495289386579170047011982394630061210435219711328384012932630870430305503848032008358596502339451619716316325408123099628134026487596488068208861475180487868695025914331965433975761506472974287188282210898422237965881149815370252410150366786319752839775640461726140309187613683484061318548716894161131612358758124246036085940273016031189875581866743455636763270010216993304786654277152794069445651920836177222968457869150855748831650799204429595269020855651050816591217982235149945914939397945463229058350487096689642183297826161432284454948209881002550025834351824803842335422268650416070157397770545693510300665254211463584823156895400242797676643071935871925113482452153425670040645510091682733574574595891297420824745046615533929518890836191275064158726857624805052243832821023304229480727289363478569506458010806573096075762846930717768420768565632683521234811137120760574444084031170059986492164816920053710545112744421381083077724761759025022542927732918262638259684361916859815723084821845679261619847305042951679592244523807765751866471011348579513413298210615067251237463836627699018987233507719545878073876589308752156688540565966524775595757446823332203407442753960628195721599951601656752531201308945913291183055197600752166499161032451713277613224599940910799836020630283474650444896458633499754480244641713861567691908175651974943660643453834076752549454343252898749874864470629407863878583941781756017361578250526287447885656572697163853987763049584251755838945928775429360447324227312188381765895586600969228643181231021042100430924293197813150777910864258965612172080512191665915450831203183339277248027270198207642395687137975991622830927243904873342449773119179494650624900612990761561154683222235148570951497989105705908523062530070600282390872035579849970500857761902460853704592540449781834208749211234281180646008055307961012011444478861924994254237715082938271981659582660326748816921913903773991822569427559862173388989089516675888215198369213820479096234259706350194346129777567324698452395976469527020482283188562835898225048586835056220148403652420684971158627802756220673761092644807732884137112509310475265452495788076608960921507756261589428042083375752026527100021907704688882227390034967311859431771033063931363517225201374291862740699230130241820964314361008680505010573008042292926024208107250292983394304805858396243811500886979965893139983050081189415420111910693792391322080243668441478666273492581845432054746260789241490280376087143283065792244381507690900958391298287734912324852024082481224672515447086683884206540070562053011284101397573998102039746298575275955367617932750678990799058059117260985284563446390616598775787002830270999263637488632360311159083000749550229033814924347965767485407784448960455714122746431935247404656790976434144974083207748852033861228428470022181225095743280913202957817373450759905992418022696519879524715334175302653449281537520462205140614611327538505236438422151070218793105075687724148774919271521104348786916292340388377509491191884449124125638326390780683859862722749929108728563764029196984326285599514658788157870455337524338293552664959972058318728917901142993076010871122769833723816725196001174556436737141906317850324474391283314467696789493552238615311474425258332021411830130985976470895706985940514434256620148703955874981593768580070363702455091397535528363041222704847777870128298795812753489809588204659047790910347861855568583429318348440968147094713350318355765137628832343693507009602254290450553762009997424688331846118468841752389793321763273175302189135252918782416304841845441099401433171568698664432113395967650696752131397344103293325073636270131429878651630873290448199106975200198320602890838701906858755387412243259174196968652574871918284462881789513672612482570972918578590202004171265454643163731899152692232146162816114500684977323936817432685640811590300051497832586098111495378452074519028775218861770987502606708197856752131380281012882769592593913351427908623301363017353442326952362331779439053197290309493968890903005149648808815212513769871127581861779763302641029369756326937473957480624300891685939902869824066828512675737004197496804213962986231928591003175922747757602009396728548106198321115304279945482525503869615468299092448952881759421223760165647212063201217723741073820058230657901794404013318494220883366007734196807452836933326136337870921675712964336485110074406215237379630052919414684915794464827024934017179240348964787843375655051891816361471185189696473210749854282775742308567346800266348338411273234492029656354421814635684817690019883053066726841001531180264994630003042872715719842098346475584964973041496090756444778240193855927854694053264600341801748353004595357510140434310609819693981446447053581179869655988670012858750356816911292141584144301414505804559590974676554454087864182771498638465115130680107305802523558704253295354120286964940264930944684999450776407964957303863486060651241826809308171408959828157032385222092017947513287735273509860033045406772883121540196505995730769486811810475938733782113037329741744850895610302914462143532186618909898686865570585021648150795667046849784103384373857864456481466190577776916395350121596218163681720732075247202126367264350508740502562904685626100375536253236639858413156157246403867284443480070680786961406354918915812182490329006448790139185724885726952612380309027263699907855253250151002666768263934056114969304934254408989486823190111340669050114191381514273104001196663893596610203609507224918298679212639084858686294098075541458179262402070110718917997381618990451167343779713177645806508671708680597449353060958277447410585190443358773164954194486704417914444438824964063191415622891513011811942744000138516370034856343051851341433250908818606621009423205728907959614645111769444466214713192144697354416573743195806296727303951711859871392284656244681171335533727411283315775939971815466393982534242100561205187564706834948157430210046257845265411563586709700104071554170019329675324042739453012112790119047653632424172619307321889458097535851752516245016696416074612039461040953389065671409259539319577742582071570366446369536639351726997566985694197051277798345369581659102187154776249292414773841749064168268242262031160144491379815024961613889402242530311304701249694697251848219374139555480272257098119592766704921147726034687183240153114336673280268327392575972851824823578409775380638773253541142027388647657522117632829933311650561843451994552027567671736700049257067781510371151283007040208490360943865343313497739586801439228373164790059223937703485370862133031455126932803398096533009403545114316665137243493671104199699141898665261679434186826551924461821742312900348129404912315554766944020474744342662156125670031608257608019566147848980872013777841267023478618766757738510083558641663043528834124810761132614000711791738112306508669868529410864526776045231369783972014039846607322129025853470582845608026586612044384660964004550707522106806754212999860269523220758684358855379183201265780888455209754248345682796832850248446856932640512050311196229967556961833414041816147300478885141765802767183038055087685622142747823344679827551831415757579933186036149214222896104463724129296179491768067927341197889810865956708904536358358855468137480767219945633526796405315663178321921336696899118022832284453336023290181842994400794880113763484632066801924764317098130084433616882062014499744102916966044950817082321170235967312938979204510533247646967069886630433693346057634732027846237277798638666346101083791411832454832446608682400560598021311410327660888070981537197345378372612618095257499155745310809258296744919642987177801627608428405736715362770671877440328239802370447847705602192258043244536016893606463448807020060008677400924763662891360281302248513769530221469281818277344774837730844323810735966376166103598370436140368130480148855723797121815995618298765239750495004529141173233681940868512031196800780354838994394840115107058482231173857468800534752836174105767860390355881902101256660766056443115493822228013229075796207095453365687237419171103592802376531537422384794253448481172361617461887655900835216456397005857705053172178734913059855103580312289090466183074583986006059848628614294195924769972703056332759501600812036704787476597813736904625409442164774739950119031256773833899933934120235695248755391953603748097256957118869226661715313586119327302295351821193754184173587569871897463529165715500669350122252447976312433071814955743023608934074324714464029769935233760885707495445904638895746014832584872702409815168803050324998181038877586909528850047054143828248875508890125631599821755704671563714368375106379505148809414139563245827600854066836662891863837544609577100371094973751381977453646597809551734954966748709705593963896605187367989613313904332093912279571466929031176351589164274773753646304552375680600358785453838659464824457583892591496406321248223958437148114941848639858829679574776736978667912364887956641797388564985278505065119261966904895908149674587916149967595267208717665586525323443137535169405874720816631160744830933896414958529364920396132846896942941938927897686414319376518783093068152606970448918772868236689187581464253843322225661278634518851279607099124890088178762039147100109990419554828812055052112639135368673900478910316400587940472958961658993563075121387606626312491533888636861981606619731578005695194167719957999830366818067298048214354874566417973790962694521882180978396453934322319246702390970771653364575472975162066823208474203415712766618513945963990681445845251752890484037462267346577131255653456268448015704857308166428256215001905716080614678714747938034804135652083985455300859420076734157859521272037810307555397485262087021351923128572899638688911735022049849949560499078952233040535787154986530815829579318468873570305298162598491173314346489413991521925092424591304731138784637095881611482648979660876910499405732073762444188369020816052842418501768026901740998988408827030637330404676565292965556733461311698033761404867373187953811998529982431594112701054941044676539769276318040746170826217839149736013181359332050314102096645134827329962587414971268880322686099024767567392797840479955941518780310502684820527464941233878583262239481419716383570720650360030724670796670794641092457952897186311286624432216525401748232087120411902789216347614883297079718875008206632870798190654992121640050632245421264818449570454223275851926854278730241592727649070927680347352316626074940135114245784935082348149032257282368982986078005772238377250906776354293654092700288014128275690206028256533177973289515031657592095938424664861451785025621483232211647084544931160673407235829037152100843439181253658355436995992793856980875597461832681343485114611448111603845117505379748193359443998345472681800818001807673000595913098291744011914225116678945233624417159020358515354178357769454568665447638414998020522588424624416358422360116636586877437291514276666999718596571120884351304242468410657796386988862292207355504544074674676420205882000496685466797794051335793722421547877548984999502720138295463973312063207841916971582233648890861103909400156706844459425535662866324126120973291494614586332324175323893198438565902960422950511486952280442560423738901294078032549356926763635879683711010205110710887515255501425997983766633507539981865032636501412953723136568537041430590507889141245041814869775782621744943793513451518370540364057203032780412312353231076093328619575490434829935124204100489222922688791218178795984158185273536426551465300212721554905857340345447055455372103527828846216714361998775393738976026342737786347616264339074839158667483298597169305699934087008027464653537284659226991108819639989643864700068054175264622726202152115281382256810344070157383390778597166773733923956978472804068796206392433578411621984317481382378801553122651395169099206412379707470799978314943534937804242548289340367546304041048826226116068374107803424619289589819404943968849874982760579566157475302973097884874042587823236127097119386159663813027381208831837535801118530126896712669956169814216107747455842752454778817581063852249735623142574051776984387770673839071149807662989027561659115646971951690607707237279642943905123275672078266070881086019187693788263541223639805500189390269207114043966042252436535622447215246563473895286543317179163858705366152552002611400489020414753579879102451232256873266987253963663596684212236729464533006009934997706168304084911302788930842784259482091585217920799175176232044228935185561297246345789613423450130810126285662461801849302358769091863306852444667377112855100717049711280125591787577950915177390459453652464882038279551525051215229543496291810586792370841614597640949894414234194127853233519285346159409855858778490890398318599042074942187747312175514649264634929697509475737525722859464356370233323642443564255760832422650824441463461369706742822853711909760403395701831312030208476088093654761859748602853147880968891266968531823369397998672120285186923853372515385511205012998234534607125742093015885480440447793969842967461159315710289222343498593020918704199544533166423093185019021281715648181802530295954896776396623131003244851972149976817032238368198923223620802550343536598019546652282391584372117036174873296054411139795788866595017356750203077660815562340170205555868590916050114430207574412805601143713750900239130710139665320126883175836854928859741791357981078817494301572537843122577339138631683832443178822146410859210696884788557110228367384180232004405489280406902620434167959602474866158013287050306504690969509166609238459161892994902233630281857237725120597182168449180842357322834029466743063622527863812982857794405297280784943236690953839192946962033032518753203138880575139062807998997329122365111204663985259339668489608603118877034642034155314763717393605437239303054517563409274752062564427938392906147268579712133526999992111959844538029790977545713651543914293764282747560681429819030466992252382413979689567419363334419954299231463732143935603131071567862183540441364083830974850093942912047375472965377219710774861486743789030824752152985216467856077475024412093074503069742233240480204408494081525449915878665340648273892797762571831055939320936205200981477028697396716069310799777399061491224826651832397280381603795841724348411932833338214491266125261334014591772334395840291836349302840960077232450989589538042733589727187734524647688495682927648840233424100412575873891071635777020761753099027779338909419173365084409896594688295834265552902699898082361309886083148802648442902081821405131533712935475600193770741359028986518054958882889015571302908667708803243661456623182062845193553211453876188920630600006009816434468376936411166928614046240763656069578104334496243834516289594229998901203277922074681635828754768139176325770535085992812310810908015844909061738585635703377513200761535326143672243847580802010876882329644721892361782595506953851143960541647128851550456229654634899530460713573881892781047532079949757148903124251265175310967568040825525150736784344288349540644880672424428528455313825706090045203303146888388021499688863467494728071952887749579879608923037713763574853659459569399989215287868514472752832201997703074322678300016713346124378913193132282303617639781845745499660085712198449978240187404557121391673954705419045902861119664293322730298553629860331486557645538060751266544440155659568197246221586416417408131678265134916435254479441522268900419262734757419080313661309864414447499432381096639731442954643464358994639809634930172948149957058725045847258684910412430001073299460335065443655684610443787908704279473062080100238822899357528590576291349615431192638315868939796408537071402606263682476858123087729589596883203848713983822827895126585141946499200235463680748247798441350115592514364993670255964519147159661780001325471109770184079708184752020386248130264228800682689288561818431882158187079857114316541167835342740135975912061793701720652066925822755339313063478824521874013297257643610426480848670030646366821956122614916996182812817646296366371693848853096378695397557419142762750543634214680516951390046120871899869044995051330244571869087736893537757463307700521871686044174832504690632423912946610840724143083537510626990366539471367483922585464223858338528261567190949282067361294289228796473040096528553794067680553389046502764215848347152992984133358181571091229044419285126111648009776166874296437058590556531051177624802873406905970539397074701038138632777753304334576379832445266201601054401707178836545829648881870732015259845019164721605293827366304211590353328944573383200069280294784647995206507078930969679392518727940678928391595737024509639341157965722719880567864966105279487996657827766954681332303697253851536298872585802710630150347985832579102769471843368888571706264871207234959614211175165192728005467194352265444799820306447359290875887803530619905524014372657113543454285733084033472382504415798073353836596802916129563625560367163935016761173564109265146590195883481461076332610839538392844025088139585037552369716606412125152445870260368706379470306781536497918357683208180248444871605455422441976538320521654080004775120832782270191246594664402006064700256675283970835988974504944606737783190747717483269664806792288894884436169422308091571820956464452387057549187290202281086592623185620194030672158842448587537539804235810259416792588022161355142348794614541480156377690175251252242580990678072356114044147723219082614442800384311934601429870346019101085634049475861345572331397133897134351214713639338223190435578921900074118139274877299533960326904072658247409121262177741287052975831052113727057646663211440691447169476234628878537190538182225877087442261374128093757908416988755354266322734055155425143526909795350929709024624594773318996407904859907486462605842094101420428279011548262764233147438957589459695982242066118388817721057762378885335468731438729598209576392105516937503908761160299434154105622439932965943258812251697568856488578007524197649860509852395512429790282407971270115647190910387398121878543701943772961734045896259459565897581619684024749176644040138594950163129285046045854023707474595248937999866879464147427716022118752912007135733134089261353242662282746032080898116189122171350165780030159237944717292388210745065742513974431743631521923945074190159467719253555681024076599698540062489882264374483634577325522832636035269316923486605553538154387921198554768008319823115440699120652585120590023550784056387784513714491703159132205041697725798666993742894142175128578028447292578280779671088745464054134589549968644068200580886306695298985263296117483243904984090176864539613493369459098396726377805562648737334761776269173366894909521861231168872363861555514988329467814247319429437472071382640745034319554038265789981491816239030493285816160043785416257765276163773600441636168356201858417872911429314021202492520485568200092928889544890320334184148790420423079596285543473100257344039469172023572190666497974578568203243808299317779046754063168134768189032472480777282735180282482731081558815908810667836439253893769355840863088160921823742123555672095828827515896688297316348028172420433750613693513058816807854866234004337593393388086506654022490850966978670722262955339315881393111713798724691610147005937239360596686110872599524694487363492999233902510706001802039088039646777961343566036354597311329637982126677450070707041878539761790837854102883677739642748355518509871053213630883446629280326680954422267056585139083991194282886319415375949881159911499999945656591981836004715127376033189249416742626221956740996156950318585593668255581042475467766751797644741544748311673046322223954634198687807378344315833698344308381170028907339808202727302558989503176235413615648763960504945701848551112485533280999205584714624521805035546407924994507570565034746064004338820404672819611995752681101653595070582083885245446831964820506581679022691147421447128361891181996230337427576291443698806042701535233685273222469912094045256843938718939644148648813475176421962124847109917269110057899930862223721300668733306636703255931505408079061883966785431010136908539901560081494445849273123697556114075236368279845657378253889718938550553122321504287734488509411288448554544121266947389739261254897538605391943925604834630464189659005700608913191012796240010045308280042682551301626048548760916804452688499353609145984594414468147180741158540931779824865034423569796705923858946634558835747858587425018633498634682277928068412880959978515355094207998348584519338907158558414919260669859039770527419448456329853132375306989844190063854323585474482790946472223535336643428193463818879689549013963315991278975900283043525463842474185353612556175260443989681406350460579570095362108746050720725686966423320242675724128425668686789420044195192674726853002925851970774581921164134048874356197895130102849510916343327896402037586082653370777597724111235442790435900852155076079835810437205345263696631767711061785364432078657422891064170342644059926923584249139206218851065692587598961124521546344293960161713168216565312060879120530819648033690258394772438972984213483119161334599816000951130504665634886014838479279559538697103971425453167113508718489565050524504390433419078308032375230251941250745075950046801547197929118475032657591208216685793517478962477944922238781225904844835168720696360254050628877909023534964317599301093069319730278178691397720659560116712373629138901215301639292792691307176252971742577925824976145840526620230468971436721925551105661673099510469948491445194177829626337126771019027076519911207991015679579290387792938554137077677043677918512621399696172429041842755997900411885817748132110503794320417464159880263866974048826401096620462650215645183178750107096641481125970296686927028976364843896961035168637451764308738846382328823366490474024648480739119291255795282477550162135286564598098010895286325243238697946162942641891346707521564067776118139977315230279947026622099597256043388222699156461143308379087601895948715359165676234734171809291958047928512421383471204615504809289294509976599493316634502799421313296562322011388737276985925011260256226902974803853706499385194026010279324736035528785535610051563669123209357580162340469212155012778741013192552589509547209176481541509097342601893823173431573584736883521693074598975713840789157268059347689797522458637005396705648526638661291315084297448661713760173794321737526268930985448843182003553101990553764033984780834601906289761081543798804324103839952570450989583276616562233742921396273770340971798829341689108673130105337194467895974220637979387492451208620129506047220758905895661689423846084895447850534367047123177177023411001484287781210416103132624745242559946989316026312650000864137468425307377542458539728136647852942341445093126017267123974564906224279741992495659215150095022179619897420034764781690970266088821668448252022033320764541224663693364856182941169338520953491265618909463138734051226174540471388386749282271725827534014636799969986936252337290666079792449567563204151490134994025921767667922107388199745906111587646451702607385435915399467015524238214229762637968420182329054788714603843282879985087981384523696464294944476312140767962875352233679485691474765255782576077916322283136089642722184976085891762605054554070029208947696967512472088731641120764765947787449163165928970030993145375868654497630995843965565198987725665907101986162935665278776879722650098126629468810556050330448076386573094660960266251196726812580101124124289408681501362430034512347846359145590467062794508977894449688196710690486653078383361561115764058446867911764089232790579140468858558712107022461517743617830809696573773898527852240975217266466636232448698273578845551775529637948495756348376288245257309035847532360754448416933019288527353289911204588144763409902077049048459390524101691484597992650542851445395006385755341454977334387646443775826120007437679774829398026868098843846391670926725577549967940991298425914670710654732765528028013444507056676516748811682358148343040422779166371824540202132717941112529761278339564327378219398453270565491754846453628651228333065160144593049630401572983059807025493307032699327515084638000162563631274725814848827993992291053714259741966362971833536291797862997494625925148403281394915379354011965612779270215863403947288944575733324014387573974385783182748079949452656786684040983746874222888953063647211511278582810051624789662002396858189660804763576162780036008998219056360071812683049215792461143909249344426662488489477369463248942039114480462817666449478849791732566337181429482506853845003998319588379769104333951562223971296933539389479604076153262529692167143319821561565218041863904723420968485305641896139462780926157540889116615185115876234529588193462510031557838979835712873756806192468732215105121093823999952809450971765337617333528333221924194030908877347409857912237251875362364376216184707494703746712834150934424290963240091506595616032256375229068354103082332698789103604977894969740815460301907368758468634491393021149183781591932133476768206384912290217911193290812410110559655562771090808916293001279297514331068865282938306396731281426608413161810288081124806498579425832191011109815979298228282051626181523011342859506847268469916747150674522549226349125639872198194956063097574133356016355910242919401597728381585333657119294296115777581655350456588032057757728996830812306883468762696753935054721290232957849466024662937066845927494217686836152442719804944229597440791583406342149383228664823454920212326312952336369621679474799305644650496948092190124384728770117545418962770684670311093959325641042648392305656245267366766299750024017546001612625107033729388802118462650933435672513221096864612774058180616849952434147829095169650367025011260448808784380991729610987158926987881919633475408620267592327221823984279249669205430692100777757248791479697927804833900857760410524038159995056449185174624837061985844608004164417840559508229907868004756377128862681031911924555359594422064925226181277386925460396857811013211591005913922277226245038510629788734559021259483242504745632143731350873864778549815235587818286667644439491304766580924065667806953465243650705871613842491524324696591337243339882214842442954069115351290207967158915498262764348142156008354429366348089213686091926151282005687900237154104813162204978827102773679573996165726592326817231569839912595705958782167010259943708371626852925461192495505637692200633055005745995428534916113944713538556876603002486158249298771179661677754290756742298385684731305247821757890727599139053352235243210608343582784132256302869865737044793516219683749714734963286185612942212208154377326527245266190519154715877858326734327616452608103386828957886793855817807883937099876282359210886244551352780065218612394073037216294479998009631889652005746834202504216681923212419814780015514434149258993483239896864701199003770721720443866991062353725273259983582283841266233030667367225554376740705745219228140438365312507243821156536954646802443244973966423321640261263953270076723038689635702470693908705766830036905575768447827297079088182248497897672101635068238304141618767699600381316923293278463427327942206673036812773116543516009939890592819173275106438267577954272230938051979470916245625771531896665516448572068999729012865919335624490940795365258496828992071853431017778202312006521289787391422521137293080236999496170643572350997799255394774289730020702892962104087285313660933809887784279532863537106603151488475992502552592636852054498534743817752526649518712733690983173772371210891633103904209274315616924132377994803072923045329091973752456901713658762471752513062695625344395742406784941410270726314885997805863449876405726264207301912982141609212812175509650581284332773946426532082407521937429446798945918664383573857933612696490043671384433125243470750442166793304760744450257469347823622315227148617966157652943822414219790196031656278815336155994682784638876491151722646473956330206969954853204956863794536743880990578136310328960262368832995256241320363639493924715381856808587304609003020463184862718803760675814166930176780841776494780233699312187996906623662284769467637687921744124298267686421578542532708257243787192483284660139639822050922979156483423954395484319954254767922031912345091148775651114271458859499736449774045116006849864060241062025650068313188297975536204234214702193588258635877874442855405954902890686115562242123058318614923879983877525790064906542591471808251129632929927022060397826131837893773862911727389326965520281797036514457103136528542257674347140001269152590528062926374697331388879873675742925634825609860904382292011185984947279132016132781067188047600711856597840267371258867235807137786721807342208487714156036175802010043907244971478966499445782267341592251349447782906469073155546481528164057719812520390830020783979667854889126505888818315617472536658204422022920650512184947852862911837500490624447944670776773865125323140040970413759187063152290662122498848078992018536246465034102157781284947312486463871901947153481265368949353937092408736771719816765817122725995016818367055489729183514142945111840603225209152379838060644335958758172439301689132326014127075777679399614016163708373815583658186528745236154590632197689687519159884077725270474615514338091682440134642842570300979589296589313074026343490958660101641217214088634606927932272552084185017346034064087049019233752026293794408363180727529853105742311239391780828798154687961373446333851498511818569576675443382161806212070287828116952425296292384925152555557391328508933551908416138788862554356402398707301131000165810479363302470848906928933287081044232416519768428049561295178844339552880747022424730438450510091687404372021290703767520814865442227010931325296417688444327134980636279491207877419409528826677346534304469835626213488761365817331463762461602576624655129671251149112157662177281857179268575032799012928811877333221253276335477945881906494864506718625770947157890960949109836648356809259540088713640167777081472242939192295567436522132551140698454640140397608873148065647588983350065137385778723664770508681057015945983180680444905052526920125981309840425188148827524285490738563362619309513360049754670501564344260330089845623809269903490449776587186691203913062012595578582935593243304075972896902635001881279408817890313287615412360991422374139325942046725393287158495798832380865626119981307898252928152204860393447200915333929012617596126106321757539005668767406953266782144796480446620177881088377847603126903710157880642360933721597960120331271954643843269298982101575222061102059866012300527322010533465404585302262155732099875993192023118898509205447580850971844959758281444275705617245076815172815428554418239216712144073844438766347360383511750853548338577405129041006134658849060989999996824310792956631691050312739898274355361039403988801826483875780976645332883978550948148336632291945955056253305478123179117223834942752434968496512684873570816302732702424514143024505753734712673106313469011012459396651828607203616931930132598743476518395309194850194652680736952990982868502579243559425134783354031660160010881374465575667031965550323965710256830150225222629286554141768554904168384531435136376410434299577952500035096141918341843350910728117143340070335295704468686604996605828653073698431697223046195682365505479827269979185244239963615737074398035909226740694263953998423008989596391851783103373116380798854914448347148111801442179210576417488672934937524740744054444369395604288243207765979730261178841110663228121655959403468751523298160918438056584603466684665576390549238051506086804646988553217301493847052690804805125479808494083179369561828382112690496529349048791038706017517482795032979258607812313756109674765037968371309011742404704469993721991048509636699616616058685941862944662868545181404642662407734199071901680300270812751002724723692702057209877048820009458505834180527115999066180187664453023199867122669000708609233141867723701237349341815637607892786791398331613695209967680801442628843854184991385953423868394283129092996182832291391992286042084757630398986706802782980285572239907803949631185548165350104603133453674163852898269310727360516113069950318524139042574513389889669587114563128892737473489807089733918518131625589639554424445734890641558206036809928204552278459848517082573563591059480648662392804588841808940430049056313109836627877827032044696424547030242361831601200526955243943631077472612252674267055776468746725119343759869100060221205298404482420314042364976965580193466558781741654459616133437410303726918108599916932974413002193387242828114136000327357163270434676713449862155557755203505239947390351949888473527246007040719022409075096599073558608624309757827490083980983668426626532510000980602261952957221323321618527509211799503654377840702064662223824435122312762190451364965682577105044140628057918953972267342877846843399035590875809632452143370239118312384776129265688444738052879190809501598213621058373618592861595088367596856312250926112263703599301681757748400399094067112066465251538254183674894661627329920964649472219155960420472744350345247623450848779115416194591898678970159589516654471822974018371018741598945505045911636563706534500601003944127879710541092822188561578766415149449758502153596015364978397770379781090931425723407666557582882669857344307231680319211158784320787631030397073151900301851975626752320408614528365613164847509503134649477528885755525653046250192592898675060903856212215578679113287256102033223526005069777863453352834416348823058796367919748167775895212367990891272867037511163498314673449095026925330605872147860838124218618608172665459358266532046542270998676988923213727204209873905059743588290436752424197789548082899261474369686068085290447679108288152603943038424379962702866082514358888882747590437148343901985122095533338814293008320105413102236477190458327686666038360790802059185264970367892468959819747623570461934867350646462757662689426604417984645034208475164242695646233442497316339534807800172797975482128942093055808920082708112569795600641837662821353700622436079580696165066691441086556383679936155721950006949461074543757773937956536000636098785530104130852205789971090192867794637442483126046456468812449630919764862851520150354837805101531137732556090270613723479547613687452053487891522688115454158770616684098919386187667956694734309080462721892039702050806814079061029796365200953159257025116358365339288925361810890690663145542770998989124273353436200180241235415263933274461747333415698147208745126853271978901555645078946687016663967929457491779377040522208437652398049696691825290567296688991294383901131686053134893791429791345112519052526007709986798613384963964944038219564192316317307829935837907182709629592215171876241190293750248560918629919872782245227582298519186661769962035700044078882617612406492589018771964694984121781841647061360019780155249536981913967825832123982097730217063719253909906751117482454627107688642440338582833912117239605039598738972858964340815628116047414050327246679039006896868443129686547499439685739752168083523063791264590787282465452946674104361868602057486078193762855320608818555934224338738874567029336660918597092227545806622996537994006421190824850804187394075669292612603143462598795916708995098286928799103924243698776958140958884708764502846522222635861856321023121320000881523742084237867730001603333469521767907077900719027378419130603516138639303787327120236690339298186571265945805654655254003658207708070174989130571463810857079364297188387816588350042121206447735642359986980060210744524435206073397232826842772251976066685509923272494468643019272251739093231428002787860327664993783751577263736257431753418106359472486518008819847661007683932941276512646492788756442148507344490450228107387203431429202602057976904534864071176248770192310713706549275012522516917405013096117522706596109542933286789468574406385205492623853792593754353760134952908011025820419885966985403259378727639582659716141058536756038568217736538563943621569021269838744443902342231319195473619730874783179058784177403174501837123055649407524499982136307394378430333954066453196733949286879218048803789597416808671215257476205025886024196001913778026332915272750098288414629672570029448382728352942157884728961495136683452044303678479577604105007327052580550178163144480410674303528059514405423296165466749658932786947048932680110141975033272859606822488199157736837254984410705490687646167185738134225463844860445587148256714510608606878015434708403112569910110811411899784708882026369270205975500014094795761911509836631369377107677801628381677460464147501728643349409058958973994956061292365049956705857030738872620479751910133865744489308377063674683904057512172586099629353411054345249012019677719703723397373112741806793026534012629675732670313527986564562325590982938435401851347287095491018459212647433133475365907131973731310203195677056836780548821449271958562931300528468331746049696768719929156629977466161536142489481954576927769990742981512896167433529879507616038290664399873323838872112463684622062373550449954297477348053368896278824131315973381266068859776843825110833363546126082298543091744703960542070952803614361669089251978782683460389060990171254653210177747654116672409309977381996523758445424358289201005296255222762093554074385931764861288723351468986768140767106476231131800507545649187631782998935581270766839934889018906307438554125029638647442110696164040672750835085379067198442979410447054176378003789038095383907696562721920482570897755674219559789657035152835285848504031490155747348910349156706893023296243400044056984167940985641991943821726816196402126975254189464557688769134416964366929999815754007628199731416317273079815242754239217858806196895439510059378987281024970369744679647514943969325160626319866931881674650265289673532000120271523707793521409610279806244170029849785370911225207592023326964755315670576051981247788089029241042291313421427440347775501387725854782795027046833551320821416704436310662093737389947247102965976686589040782477985271769610832035614836916527325530561473939150476119964457423917427611612478959731316977037441360590880532804699341989416201653324048064654719762424392746484425008617856073210933859676544494533697234074973257999414853623366175515578301296928374825493120794783420270881208373517425256359424312497716372187022899491446220772501629916656694380372731631592656188000056637626252193456788153846329036625416773052109801313439138540690279137283050151205932395429815194252631735972638611555855939587167426333674165223114729601202845922845577292239535268294701233249551558794325928688794679209577677292371929421186334102974955346957418002540236085389194557511339658466745160162647353276275146600319520128261549539324713701923462975391843416410897312537330412518024717247552084465530237681980847758432874504577489291358296675557545662801027543143339897349874210118603646464925671763272349122713355372330010121040901457539891111241031829406040542351202150678523837882719694608656670752887052163667905157130453356712627926419796834073600109204440498376200887017834983301614238276941487285319612704232463920972791490025282024559400507463910733059575911650959866342243914416179368392490651911851192302963934350701158282091419366645600346486100934630615010458868333813641631777618886041168459579314383051494446415405695260795398047729994148295510091733836980713388166426884454181570989421475145020321527214458227390800400577044792736948496521148026491843122889523494966469791516596051178095826152669633821280198342052058489268923785840056848141876653856682077794015257030766628807042643093310551930182230708767867782424734112464084130845629136875492012859671748225534391436469080752973699448160432159161083485201701845519450571671824902338677782384287817536891111293085864221761894161774216154682597751822884722717056255647529892666874967054860049280890014627446915289317278551366203167009243742397754515712406945683413624445099684325988514701739389941210689389408898378101810497251393473129266076707057856018654373182285295067530166163358495894385757971598764092748393901941047460032158206940358675009679858545967881824595736200513110563954045962289180331241262326427261707230731299230283414685053277986588858232703798769145691520961067126822266754989300067768610005789998254404203472334829637452546981437447418199924480702945054732165839623726470427739525514745167858784212209963336065284846134003236015773114080019365281477947987974022501951576050315175353562682980186469750100613987798014811905378760420736730939918615643656094066702827065502680260166738518058441113957367696472299311493239363980068809470896824679702222132390936874829887635253225554854818389889281369681574626235960718193444713413017355198020422798953965284150880508090342886491000931875566622245529037025575074147130711735577721968057006586588659296964377911811828554361370613131540817121589513109178431860367542947113145489465467847501824374904881570460993324349896129644347121987708790285437956264972967237709580574503369422796065539122697083348331079994280370807901552344313922120194386932323950825767946121199142337290859539288355391954458973878700778497946141258958438538023542404075315973591549105930975248179727684895063361477100952813156304159943167934714198876093918403100962550744922798966710232228554444863643788672258608835669660653838744452263644908644087834054342730280250562968229372534922839856031807760820144951514229889279301800871625253392796381599897294360479934083310390878795763485893166304708249452816734484665159236239869338377586619083395538240998582424896288806156908364898109079917327632320208117467816719212535163988207336534024316985288039083024920171044628802680672949991629453487576947483053225043244751635486237629797951890929105257533087640125791638413138935862959904684819322028127906060728883226809672987569390970765657895378022551545157473630714458380890025037603096109121098784229270285765855008075081367808880610038099306195383552844959761694364705100073302413701409381631640553197809922505442328916667200612474033399114459217082801050500045985920082878995977107574727169500924510258618797046885602842879228708764042889102065271796650123576147674074386617879185704330502173456487559730915165354733159109638581782579688330768399097525383654605272962750280294693051293227355337940970190517943090861788593854618258879115932923353664602118683077688036212936321100452808262925787625975270860261584443020403216136166469899416270065484725684635003154750853752839736390390449914637269141373044874755751444959524819189870048868008042300801292452547150865995840335240188101553489461034726588068007466527914186725770117426508633839616162337444726736942384664291750393643315763010879727724596777632083308662021492975902295454036831513604737609314481182809524065087195376923778396962263555511169388513342806102348432602089892413810034546609797433944168296155117484889663670026610958997047102907169597411062151347386364840034837080045537401132429422929524346819284130989865523798995978833737574702282813791065359818479038123206297523579320396139614627025923528443511726006098790048007674663174300476266972303175493925411361973219160647044076609034391147925893042299996233896849039720498747439953504225315964243703402491528774326916824054509931010809018127066660129730633876684511294208373820175467685165888248259196642714117892891689518391444199309429091975431369607776423340996174113480156403260874166027761730926175828094683838447315337453111386322906913753341206074810132599814271531486800858818283048916473171257418921809135095388504961113822536985467099142306315531795407721660019171927672255187210890435314189907560867588001367095882761176923348426736912036116871694831334792234658728481966549274905471574522048972371594327313652671093107244536133716394655774351297418792974152057687117111185033774937139232439357158069841508092928720029407484228554523871126477932990563949297433167172940603321640056779365092277623844654537240405830373703767606615687088437942971667030515486571167333669980095817844355135045340542972099080229791358685528810574774352962117544580255745753350633032164453854810212832254693826418565760184007336833006089678360685305160685750619108672540317218052790450976992169135111325410536691090825996832295906304583607758160523975824466239738307357646814221769681107041068578686871411299476284048142497830031572637864643406171682510437316635020897557045274553226711917710483691120882934726017233802048765236907624747685360207111677919190352309301178059571755362038421145407613361291013479462127032781338618217453329585500435573692294260252035706005304052064742697476424180108378260824715087838770691906523360182201723794438407151150733767386855308993351469998090048357706376856315180285229880748332788478394299653071305975527643290739740619854045396058847632965596565497087803724001485525110294558083748209887719198650441666491631796539211035457027750084705533967903074553532129396168796389620369370868615152481122263972978629128782923868685238744037352916624600797942168102318428839456383768210202547642271622376326779469183412639656114367229495238196710894571398193586269773413812433062422984325639303092439720240412847595341305098998302116731997251579584717759303355634868444333494543228357932849112706061490989253106321902868844928076742514242617221858402703848211305405894117294428682131010949557768526033136600726476101680858231834603811797608057202650582398580177760196466719814368539015790328967018833624361882279187893164700687224738987517412581467611906704791288603992102710155726332714237982786758660577524648374127575246549790191125701403545683408781222939856589314111166768158857218927342142253245750262945921520644336058214659391784508504494064480359511541936589341206057608723653438900735967575511853841787380385333364384786515277462048958699017750004584380942942577381552029891373863458944212008739827207095110582860194004131393365355257021679334465923037324635518982143603755319230189392608226109593816714987621120165538860777547963059216460502411036668296376681181400343306878930703846009880236634555624715917387521941983313007574397690010796244646952110943466850604034398750236152073084769523989426456970195839809530947621006073956918037784003804766954776666045356941250332926166930445699926699400114176457025698137188849354059004292373737466652635250458549164858915312379140052470051988616633173571070650411538300185197857938305686733400749671744871961997518937029311084448587999532162911464896705168539123281111632229828563385596566915847063289807518528865893911321163770781771280515418317029317231984384614642108939412820379848560669431915895322361514256719931841776280619945404589112967249686682410631520657783879379647146341635652753492474475394798104737616653446066352526493080695755592111636512628899950767479028133299565518859609605006983842894386523234829047631944236748499094455094741624578744692854149294614974290851199948566770039238617741655682498572018595983533066632393698748849018096393555344215603368237766610460684010106678693765944808887165142199512866006013686583908426330840614254728642723436945152916369569526226637036171421216778609325035288861169701770159480809144048435006607318381929012955606125459831733928072772945659150521404600056614411818016891164642750126548794579884143782718965086597075606606371591999795094708019687225026279583888519954751495814901066616913587938843357027134255317389030189370644830084426723705978829440010952862952476430325423852683633635244889100847606098158281939037781748687568109138207320032657269626323158281569326713874456182408557042977075427023732783033258944657401550561423245491270582881071163188821915365081384004664830941797489913583116069744631602164997355162709577948816760210169003863325061750169146321848564750556676062744025162423703586702665266106078236748398880106567951691629078610184072717029950435180576798431798505496054309308189390110327281084933743555516572200231859928188420833958876686970821089092248198747835903069711603397102513156387012710749367110560106474467716329506261489817798361190966918814153968977732915914706766559228516626727218125688075409955935334657994506731002636652882391785521310907750615141981045632427502731367768259879402148345171367041561235887947085033060333096651249092490463887884767200942385469874815530749064222335010107613776953575429357422719774979292878900903968258239740068171384118181125889552483697189638533576352175154534261949179687592667780900973930483611936168246463769324713689702362454336044312360681728494868069658120992461893672308921695447660099935188946238847451299349184246337774084140018765936450364283436010059094721226092846879736985663476266142909061754876376583527078768015587640656831741988947008510299075178492700147986145415104331126800501979652990068620971809834201692117288869570225631056996928726735244657582780821504883913453113436867534275907323373057735265044413945604088273087317724153692587762229461855320228092575806907340172187003057425968089229685372540510109437942794291171452572633790284841144718823429616236462515338677254639547641982744923350556278853560430481837090725106931907501617957515857421381802660712752986606849552920531838961382993839806028294781233006569093022194705118843097457750747870261655272950298159788984145554423877085723369752516666591164472639228402403975005446772530525874814060047728621694424616208622603561720880314666043495696163593692784271395253989724914876896689736779855596758235242522279983762951191165229354244105070227391556027060147784191740162316927818811674950393976107392434206975898227988801540407020259769197148584803179620606672701547071439866578127107007247786371070055110529001430490188427809547639415550977146753024184475154031079699853985047090495657221314573627066961559226958231027105902696830909147714308108069406884849075228531275899744446158210551932353385721053855794450095984303730644827541037665653843001373296275019611806061890895475933652090546437749070199578543795338288082480472681403752450875044951827788096351646891265369969149654474960702716232010506509692066920612423261055763430572421777800477262081822987913454353492736131256350812543649982336969021665096251589797469034266931287250966870752367454058833965388957303029367226346520102282796587562478528617437987858546849206404316703577143310884046436539662302435697510079185683711641165605099801218759315381850752311901727987185227189235602887282982964838211522960119653101958927376818761313968681646068104636346590385736836010813703962871205550123398589530303523161264910402105012468458162004857794744663691849378790551206524245744020753467792884320994798216396687246735068127838866548950109629630830831572227396220156633572790551555311269279771601569846606380702206249272444137600530753444178717018355595380136863773673475341618373817914433862732968262611718331461499397931930443950942346881274814451789179783900602311487083874525616558714692381871296136310188478173197019038018663598688964781691382558723577409396304232469692987685695209420042951004378888873200043552957309330766388791231828406184062480438237681133443874294320543486381313349256547924167269409749466866622904682964744613102126196733571704448634941430885336581848601803047571897183784214708194676994099093471093899142488685450829177454871120420679759968063892401345993949880860166684744983012066979930456981558661172640017646232558814158615784650961848131884227066019215129623440566154405144959042416519530729492627852164254874756275369110135676112071696937352797297917077676185296179467409929543812480191205057331414726126709623890667248681299447384382670229445137889227365384271943000499732261244164032637622807650350747706841431630538836498731263793444369699687626779869929942089220542997992983843340938273277888824517657397870702947739504189744361347368959446402138286627934772614099513891606311880639304003919146527705475232747909373428548203591970055273538503109914881485769572424182458607455865719454744178384659756180234148732015875198695739920336988122062627135183070945717736629948366740721818063804875518865996527884614497819983040917502378210064062938858471469005679698818492955208022369584663956023230928082070566676813383954231782590419294443124962530604944307681370404992939813923670992699242170909817593521729147584093027789245611898114817268730177896033554152884557185585919501769856434572462436171072069528745551483049543100868765321628012631211455539937665412777727082538430345930956745366904647015327047275358512911490852142784177620490404003013577253233166057020059090714805142467244861869440922739128155551302188465731083684094360182416771280863153275628209900102753921478584898649895162610830880503351721033324010590695024803427932026994800063060408989992253052781328300733244533340282563601402818243377687441450494011828276064175662930982211940931323157003113164092735842729243562875932177517973571241759808609622902743259318592901157127086895191721602567952110826736274243885727895025655727853839632213652830671614678450934568752952052330192699134475370449600428572717305614003024201666172029757962222226968235022164883750611622714851156915342700834297111975692271484104813971576593081501404568717458178907716152137835123468980374009557271230678236510642114438814228558622365758211218019763490897862955316509338461163473139139309799553364923964720049933707071090801108733306621801638788902221731084033834509722541851656004459305054249933388942003493606179317159162397916154326384841182454343314510508973184678283913168972441019873677196181671436286856566185627634909253655626146960091423230296288885068217092057860149962280625817953077200587503510676605878935010063364158618257257172501504837642085379666406791473175797200749979049297335909772421784491941091212336143314353272521243238254938697202327159614967232422863616766813571447943606823060163209491784809518881153866134442397819661712253149294909615041431847786499562567557466847886070213838596442795590567795584412462118188680927704286920287352363750256663572911020382382828353258816859852101639875003040425564640883964632043517209445473002725519106886252393947363574252078279580520690441969633348662370082089410357110992518435210718544391215614594661979465412949298416213645672627417081677990655837673176576645817055774744118890849365037055483874063490025666057943372922714605904622817264632787754901110375159577265639459298696036091705966902593686657670034301041761650520797007828670498324561904743127563488333819610910018111056902175681222820883065684038460223277674860893303007625182147113945991661547621655165610003625074180979291718158582532615256246679613014418473458517403704752564062546960367821938546315840721057537993106830595420886934201711797266206113527407062445518388388301561216934401978211239121895703161281092918004164696927709436175915452714383783852881590663925089960132980522122404269752798483454370850928788251560899256979429910823746670369390094766993829095878564166222804523116609369765865464412369813707927293727188944183790828163945741800057334451698668464842939909479113156066452158513300012384026102268439604058957687827744069796294328146327160662052987540478746626811189022206862612884443526786325304567236506366161941335088761174330610682062127153316209214499255780894810177222692446968071986895042616516922770583124566642105665497297118305643741457625134209108074107472017387141184867374749227629642229939125389211013555897270789564247274560585412295479595163998595897195365518365514541138185221706945495504441728716335431826303257557693757671096274111907767987237461881757625605583704856810721365793950503794615083890807295672102870823186902183187656176889731551026242076148574763699113800795926047958188331079953290976212466144724982504015651456615492497399162945346620736439383017178376299847866016929193322109610243746620496202116029330553433551636601195298081346440393562042530181972597058394832008777031492013244698356996751673448979485756687246328169608708091684336896495513762042433172765144364596917320828309816825572578595253358924248084093163791494429820970001966321730148914475903604988064409955019559871507249434783387805449166319395304650933123815666566101766727145756922858765563437378318759945489691590430229357149403683666001047816615097795155718224154946980881159668401791453221890974725711573837113343540653839368592098030236911311615128271106033119486024887179387594048250720931102216764677364978888424532079661752157756501839941234069309218317764670015837191149542784618972993933875567609831620284154029255021865157366227636409056374939983962455663102421826071329829646226257192725358640418202241859535232302591930321221511365246850991965144725259082355459367522930571256253320185543238489085104905798250965622988667562990650811411736955934855331846738221622005986674720005875565653522229282074877783653955976371956664423433277636374222064573210857620806566159418086661732552086721865276147425960316573128483487521011677107571370607733361443294636631272060981865616750076089514255652512814446272696299655835883277966847882855091632194107391653649539618018124681569710755044800617650427146726771408108013490379431607240597478917512670530174035902992844906126599593219608662249319934230940226459965049173360073467892407392587422059386614810869393181415849545451956329097123436207425505995183576414354932187935609455943919796538431835013104580991265031934785233647264922434349719130331959078473201410013485290548193120512771644694566783091302515179137517946034744646101621522151150251187558946470768523182694732340327038177234846983704493510096457943381606309028750861917384772105824899995307230573573251193111706772372212665258140649925419919171724179933135448652566553373955453113932898342939274996880898794224136910101326196511076217497332452273343302789841287349872260837295933034543643857644441630055485287121955586695186883468449398342502958242955521609306470047117576912744194726426909617203838356691777134190293492661193605303595629026746257939324466300588521290179878916629171641313430624482250361108268304718828962068347025026022874221637570947598548234707164879232242844399098927256146119047102539385042668463075476945026473737325729044852312294686271716285226390220847104767739160662808903457651214705480136662598532877223235933245531201810450764363307425210621082556010940614416133822737830034572774964511740457700770170665720217641112753450211874022848512418430338465143659362675861866104264655706177034055817962986742714865100681252177102321007602490293359948378151348457082963264508619566090670661750964370052266132444640169638613228823055928792459475202298810816832509485693146607965964578320621059316558992859492822710701078536586199910615176859373989356629092377969694642831911800286420487528897759213457656190419217007859356086467923028555597491268193888431616056003945471813361636936572656288385927648381066385040022803853382121965519495370953617217776974100537548887963782740505330766423048131373590057637024641289804454805031666844940625202920122334129943356992432902163195255303093806997091446827693354454428696903900937944486090618045141946010374829070308694219696142745929546063357666435025672091917651017858421580248873424892518412353223182010592870818983599226309766244733473677854556440341441924421961293205448785412323766336041954470669208841288618397286983423707997245692519058755755888527269507061480737166225053242957604678169203397055926332852186534939094280541875544266576187265987077454108147999327097920255001945985706514342527075246331150741602990822634560256805287478973408589207967678613518713941640966763196704010751747164013362624896432224822266738723301834020261945271453235173114915834031475408396306243817019258621402041481672652017438529252070442451129760001201212214860000588357425859791189247524922532541646002726505448551610817248589526255344612673244202551516128412034654163928070309070959656364279006090726856299153752043455731181871349598771741397927167424551808474093275313537863104458336751936771883770697997317691727695547591694591414689435703157081554548825507420849515923301090285113908549997537413902383417173187195037855680186937264002205621257402197368677563958718925931324617320528203110228198947487277805998709151595353307546256093519799920056967278404257290861738958975991621446391262099398113077395029352702202600749038463971242812154967978791581210139373268871682371631020379589064250258001125632252439476953794564250123848365850853382583552630443597980955706518367086051096940181424390064864392612227177149113765972628774534755509153691032569544082176278407474471960366376165180643297463443746205230652742185844896612480532065866697250933824943743670320961492999406872965069610702287967800044187494963630909374314785340316979013022336052193146838019363788908665236753549272450232379509189557657752710894936545690819252795034553223431692876363377006111827158670346482667428844663436102377178510688705938187542707574303252515060059685757232034797535608327003571751340220193343590226497249494186189842702670879472600483184906781421298030093284873467313431938696878471104378583011652506271718438945686840187411779429156000545021224550285730007690317622338511717196787463543290004969703722107043051531599326139474188900176991078849897787645043568675044136219451970893391394211544828361030208841675195226955162602660033002474442817633430035427832734176256758540669366659099402929164332521217715618959571656978640274033125526285630672593134501807291332655471742718991058967214976869562782302718517137238566012653957056785564652730558660853397517903082312252393176083177772403038491098197066914032358757877899792388698549296171372616970212138702732957681147993202804834720432797172896133192593800467593354661219057246910169279827292074060950537216873533978391127001877695136350037926329590773854673202332957239589975194253788558960350383784304211277235946480896265560826974706936864691597382816938822212995330056011225191650185381197129770769129549854662163693559913996375939893500623077122410903042488245265041881198767177892436731326549818109731446411562302538759705845860455538592965152293899003468448460662018039976195256887448779232547914491461318400576613661568242835834356752384843794919791324077610957205561780396194127626714051925819329801512005493923377817825759562719210418343637938177383933244844422664939660947358496019888578727131357634662335806982360544719224414210565906285716040672952144876552341611321936120335167776008556094371439089174956424316856156519784460173622097668264344218064056182714139111205658910849956947724845411328077861300972851153775863286526214682594395185636415536621627001463869663441623185350384749868583726655885281806513004259251730704632951952995485046571640745408857205653289912062458862332669070582694578431402026222173061565206512064803023247367903760249514979382403105666268489921144774167764885336979270201182375072624727244412381531670295347310127354907600775936715756267118380693573501039204804382836499545981631303203283818725079216321865297538343386914622923040891112890064648268269450812307002714150765458422356454885421272186401293210532380856868652164358669589522532183354266669089522131227110109119009583788194893953204927709022628313514500325246859431602157328725750103358349077628599178869145876694613583218528880627555740572338296501315064158910295491794507561098442217456757560996590664290468938593646407007352232146236936687444968562923311365005101293691338325951320603398186235656832002371540155182551523281715876835070145461937563806038002192154013824216480983812162148863187900291617852273854710185059995796499429028061327503936383422951953149590097417624162030225378795393135926711312688911196521189059027601414527028761691109112949724355490419972424245595682748122098355436346847235539313033585934661840893921773377609777918016083747820673703612893605703914554325081770526660064749308006729381886587707823506916884685963385001796396750071918572425473965995531923810419944560176440066220421850886159041750368194533054854139557058079814931846660419847891015310598308105334247139446727162235522038958624091867570987954703686090925832252453174907161084331694452373992425426729687866001525735258989736892077651700858883218953578837739141462779415242584731143725291337288119243020102911616671512423679660709789765098256865858110283726146782151306595367299684821655883685659644132239980885599320657387862857052327529699142239074591751743740210454576882810081684872254382510913571635150598199191342518686344244523588451525016046739738349072536686996162563328748408556906020697673140516097542672241765893424805640834243002801878824957487761380503367912852802835850239499311928580836677694525805661383322509159465869647414462479149590989627228957666963759032959392065511917980455370697076435141203343883540305088363526633832606841326171569068359663879220897429107149956557443561407449779639764438625720365725859399743838098936468749166386836334616052071815808522709047588438311100570039561164386936847347234023742931266536084427503044714923892560436658148734500552875680612284940095964227229889385461384607969432136247850432844981679577973238782392429607669907900679196447204464464437990656809028129978726885619395240392884093630424013640148530156115838625046461232680387281810463640863182503086315386555823272476727009006728824148355929949217714244305041893037423829168633335251829289367149214132997963383730323701262585218572439731253083707548819821709753219280774704750008769785216638626596259304313519615832900647758161782080816862022148257680370027183715759963771329670009250892630020154537093093856993253312052519706547308378977474227751570094027744036886650836986366694508198167985864882152392774280232998999474666108621331147232281013654527494615579400373015297890648314569720184444590929451916969455732921535422399262122833700835272882096243496665451777467882578301262225822343355298375695713694018107691544853286944533217660474913585956660122498009783897883969149896035606397200230402173514598775887435228479780079662017488930173449475429044918823568954998373914511224104535303983476029006606183385499680534579580840977709287463124372049332898793157120071779509404394601024659574619983528896836243170808517175598171345093971463070207157194083411086954528028517988875401303863571746216399368172385993109847879763050738701748752329324297755834870482038068464706054497606452454680701554135548412869976034391731295626901588694298793119653867322655233703059602425380769303087565690415231047214746655064196053883727416840225497791788718451927407755401638688720296666929962992602997297734866846822542692607265582392010272238280512612114914880099786746408215921349661923125182394692139838132730880191577811607996626557711745224399798172259990533061237727473854102642019959689389569408817312080661389226653094662210144979034736344861193053517089050214631076998937179561045855453988652455958258166386798479423120143217151240786056717646857545687270926352411223098347248428333749822823847074229657456060877951145032179343868287180286233179929653048507054485982817072478903513166076260694550914324971945253261652000654101387922306760278505546933550143137841274249569866884643261896540298013110302606869156471935636368051356761249668784684009941550944314105991613064227412099777000047221886512043308817391521418436309901311504970886999624071728734728269098152294055176669477665046088883622223670386774019742065259176183494386386429436372264338010955304297065137738823642512671800339629634079195601093665386427033856650452306838288759770613874981139766003924070652807168298866361729256750561791902063465129633088288286658959179182031282325205531718303797406162200464709237032680042465310145718100191413535075125817391897574810549193635672094496690558367129212500884262292557346521757088811307640350947056389097112164920237168915062672295572650373598122327109885848055385850088466450623749303956683883205041558928471002954788301074855993521420093130444905626546493264468510244435107091749221050149484829652588991890968260551298305004823726966634404953259579269090367732571741048850155346949834938561263803677673167733688542174335809583933055525182323393430559919136309435337916782315598459616620281797472489272620454397198115628363919122420327854248959820660535037035126505020376155757614516508752034167739302621566337593223026722850900391395149804767786975820219474757052951171775420297452601366691585910165427087959294223556484283995101170248043174553706343744484666108210141349242665968279308395606195985495048668450211264617021081617858378218987257103459243604979793433865431833715448604028836228518393040973340020749199784755643384419655780631150829261340555900131038431834613859638797697277229263426119407005212835525864919228498124034578689115855546839676137913780121653207000786341221783970752571602370990588073413883828743954782592774626846086432352206529310756957141033632790971473922767568790239670484641871720016207322787878709165818755924297528310392582397991411540274726133393375504290085003432626724522046157175450695837360080843624346358083010210791145796421355630701756573635734154215504013501989716136881311660080109519552604888524251233459780028962505128925049561697439117882419860610337991586578704412761422887004562762921241865763143953250419030272372751903299460217152653645389163371917928253187555941833401309290278635221934995270892133060990075932009987689615392450014489456717204281393930562456049040686381688058517864929691772731466655617516016166239598298526564084548429838404887686538631900378713983209403900228428172756802054858776645787737785889560766244747787182038508445508800775542663271147410921650432604211063755585651677948382842246085968491443826556491523286012681386338704729590547562959965094908559813665113265862274637885742862418541556798872975675070424526297857175644576463838583809210399338779970852632923373961367650445238638507494671253763948966646740353389250338611984079335025041867438164142855307423182887291767485330768037597642157646852472943861150309294645595272550223723538090559140916650926734366916752602018228467965028611311817442234905512944176909569587559888477406238781133587059439136596805109853385208202417187296711686742161317236657896721307230480041349922140490692545521278633891615634588707852283267138643221952625488280596619228768648950996697892779713621807830181111228406475154553152361793227067167840537196162108464500834451807756141876469117908922580022943033242029750272880504931570405776413262270963834745179685761249218235794422061133130342983757494912819687771381654066858955722103548719118643028779186132544854117808873322472074801596009516885236861012589420223846622938048514929489146649802968620198988405829223969794529077337782712452485349059328728889382416717606960514640996018149091799336342975228545980276024960456050972099907147488227020291799573136983917054049356833715754811707301105618196975326004206414248025041122838039377834933106983997790774769829925879469347034890197209241345504879999555115163042972210257527442281172597997240870543299876719232989481324560046234541420015221558795145974422715841241001024810080777614276564100668912330758255921816209116469953856084792709042152383110839725112517169751215241818263155328231912224368816877156167295411036448949107301835260754501615365943670118398746634713475556225071296460397451243503383999161968640609436540835723840489909910571900656805226086402994181812220385920236968843981620802070901737816012108362921358329977542897368128889105716778429501286869776189556875050428706323984425072057435996395986071845210722706575728612445115484069686176803740765198210057264470542343594782819220501488076443803421461498066850111031947182364240042956266778092184375873311927408468316039349872298649398865049123025209651934516703715850588248985082905680588594063584058567463419040491730989090020925485052210925222338495271525275746733614962928109025482383958935998539658699352879536223492566260749554555094548641055102525610633059578964304485869524568559840985218170295699931639609170658999417459907293499359813450169915890484251656663991104224937329560486683896787423646666569747066319298271412163059108379059034638176543519775066336958654086621138309566899599212053426623654414546760948030362955257324163340520833276491408921369490305049207528106880539768906011043141013203568239249423492534097254557966819413910045943704134743081076297589899043085236227724808903740157418203780715969059911166673641885272381328259141022688365022106760676955246021529519733308450698000685407643489131580791030305265383390001192094302350181257707439467482486564621368704377147540807554286159334406831756911328045951527579461552558953076646087901219409811989693725923463554741800296768129566625672559582862765928531451419292928139994026630481027889414057904945392735776920780038631584211330706657390258490336338184316720315845020518586706330119019110166379551849818279402288028192752477708896161662222492721528286612796274432133939484424334188913367692684537906485349546131186392206012720241984020040638414639190273166232359402796753195313165100306542033825044077253318429714589406492224606174949594787531333731074545001838492694249953947947948647731373115649767505439702069460673412961681715457796704385037627588927574767402244683167460589621982298801232872327792960140429440297109516344489287010261097037404288158605920997886122438671880987155129790497053251771749156353257131303470561765247239588109559722529258414883854624859193101824956603901056399105612530439086447622940783966221279872796170330089659364271107626809322406060773199025906123904904173955690439106587413050373690319817409282333249012414176983021466961451318243639086011998261181381758701816420508097701432783775625464429337364836548759812120681031295920459771465112815062766148947140140069922300969169389846551108203613247914135680804065839893892478697389795023410461786449387990513889567673868344368374874903400889683362866538584837285251730951665293624737833147154033853031110923298940432414062438191090543906390183988814431301781163572714942318836872140867186355004135848655876387629679011583578979143433499544331940790419372671173348526959681177809706284823579306095982137946698938814490648008161110703776368321358854305510944873949879839751827368930280272646027093650519509269984827096576427216912094851152564247739509184011581863109403976563598257654365959953072156947901208510150904359058543318358280337527471334543990331435737150014452833042866588444075178976443585143150317985078409081455236582073384879181787003136600953139956547056940632258326922963713328775547817455699094429723555725812152549340149892686606380224489521978648437046029055314223748826515500160854848474784480028295201170179726547316959728196270599591553145915933963775557085279372885179315448786067194614554078868120946027071560320716778656877162997324868099629584946807752618356504688413207154150517080661085091116990549263097154928167962325221531401766159142707750013629115339183087035095905643452477844273689831294403689584664281147383710061972120437012065181526992170743514062003137245009615997751443129587889626155733371138932608788781431229823720929439105052408506713710066761134397997989351954114968703837048403651854699507605544449265542291372599821016412773477227494537544730203835673172018282586979909496090180310782196578293132394827248292359733867253304676851467579508448265174242766285275845969376700886260580034123503136049499136711974262100217144715553036649918917654026305329623674599483531001869363902424507902203751427944426044075778599856469455748800612380350308447905936958072190408737591211443817786557625822079819251024353484703551321022439727763259844627174074199708926614925138927661631695623086334956570935112005878743524164472490738927654967763579594204020696335306168522593217134080785196244127010701497498050739034603901322126385437410451102241622903429421448646924594768537726242634213699705589697004823937346929457243141714440096379457752635636397947214350810823042815642338325429216791240831365113288900590873529594381250826548533039864683857679140383788698193181553654327311938637397894330354999479805660771778248813836818612468599169245724611749439848827752282730106726505519125812389406495047984241040675896828306464750317048546042176525170276838447810095815864435020422907399349100389201992784136611347595327771313580006379266137533159968130874376052855398005529176180916505997410346049330327700612098389249429921996959429092741368467492819731808058603201322889049591591791069346945400507488043997756428715196318734846693415484842736414529746083569331229130777595581010524504214157597298057456521562980064705898886008367803461969014591967184189934211273522516641647617240222835275356135508224346941296138112865634890348545260614714490506099004894973892198998959600000384190919444350329141711583326048112591408199006156019301317012049133679633460134810105880007943095410942817959501996734326081107786677563818920840934455014806746971311109396066012057039380086245371525183800655114831651860796566500587201999783312869795695341904023923806044905106241992393612456598086783281389291574388178212640103014242718640500084159909004620107136638851935979234971706564781191192452975199766335865193350729898547925857371282739285108858453663123278600557223461406650263089159190944410193477141334551097261079700342737287322104396755960149548441380019071756834840108010723712605003228056351106841372178353407079549617581108128694847563736662235015876920248140153844228392339343408181307861436249498491442192114815762051107480278452410434390988544355974386232105693350749822119384413173653539153030138855631877805398948861292748588303374406878174465146141779049316051445711145451723788397184300608450593179056466286806334587245687687678525902011464203472260280243632480180972222871362184136333327304763646868607001180619559149727536050689287160360853135248193750065218620632115097295977789795160514259808552860589860680850680143801089059408292981401351848480558956558277950030432495196378319535745991811108756222580861888806161223213002519879953820447562614162929661418325214402162125466487004574005566164239056108591775557533573619424373761354008841234472551568894877694948718521173864104865057214050756954893034163272255401924737583602125078638635939249498137594427248384920943738069238170297283324499369290897028138882220989188738819424924683370959418398628191087782202090482390071303808792178235693613478301749968776651611530757640558986666053323923535731767861379471690160946920738633465963790238292796140448444778641200419450270721742986163013242883611046872411176406688153035760168512225018993234236826227397376646541516427986403822767656552152981295034481196469632703169707695650080408543349526309812952194697749949206603694142418305473465203538090455982359159727839140605566236496588346218541927758971767807796083166818498773592090325904566859837318296917923105989307375449287839607574825866777652547629211102069404590098147661445307222168476602350569934769831508114902956253856891168749618969489745666753025959862295603398915459127466917703965228199389532553703661122295856474992054034119243581840781147455335590516280690361291832771712800526976024805775857740583650608272987658833908707012377973144799211224896319241766219370972125013593937361579917601561392000052673089917278225478137170014435134090628634169147531490144245280091382384342099378306464346919363610686873144813051976353685709340427359432507947745331468391054567001444246117873628389357142530990917406306736333622383840125855488817504459660705926598978556349079380954778703248824732994490684169722566998104434896583997426427311035441797436114530669606888706851606139603520095268596594904254921813669041042136945447728758481315702951193989124203985351589767667729670862416212054821722817848197526102620039879002162149912405519177118376304104828249735624977681333418176484782311730333101444365961317055763810956571557776230640055527285498815997609667683566722341216092125864255244217270230008390615864408363270796627365840200169327012876498621821940110013007135615525494090531815691790661137940523369876908650829653343274253153886569470920136409039174078486864892966582941821950972158356032526750876741384767635143748490297140866002202331346079189858063951169532405711569572699712334658660964417852384878332408033195551220605242815416028301982747815781796693936938849407806059305162033445470454720674796551737504942552693904400781625880871287175531681985016184696706827003770220921859855927822575130140302344825712954775917809016698458710879865860660934036402788575726959143486979202630220826017456787254868293859029167822417184378913866600126879006569384684609293252272905404393040693027545881388969586506571701646501231545733034441696664999649314560978101876702757261555181834799238321960686979566731231852147532480481803146987929041469656937500031940831120514980592475523930367338829423820967535673981653744710897532916179376353583982898911301495644591957012761277266188038759918342924754329347748086418570923166927417268199402332902917250404741159342159032645347649960875008600865146060489575812348530984765443165639747679901624208159450777845572474288615517043067052442786891278969823530223765959235652035373682542402604734070017824253857910544640037661473870654342828678434328511709303401082347510644205087148760644734116916016657411444916885433458122411446283928691077118233534672362915906525617047073117332634890911153284031696090188277803670739394614492044597024985212816791844824686904528412373463704645746216835819979612778320772347849034634500723103766767342008894810535313433847035040688507060805065554648818869876994549843861895279922876679144004663143803867727874095194976049762926268928627360583046739078229596031415424621040900842395218984203328817992947232330085167557848692062184247591939450865441581719551539138047667958430936547397624408247994400317069098143617408492613976154664274999655895668991490532572678147654023245246251248295955324050292678146092953667202075762748412405298505397280655320661902456261560177404220733784065421995087565215978845941094111548903149238828850919035126263306609805700410464993475358942380570700580202122848359927783727298670490162973854609580655966882694221858808168065226769103488710012665049411108691099425138176294908653358606045500009588142104293675648882737409463233324241892254125963614955993959610980939494231146570545973206334826561214056736213939246591566094574353935622487013556670191049827021529526253628933444942042401997562379348213134106047020365248798886376835881424108257791156800258871919648718085826111800801591205880471279645783711065413591247305554279493714190652537984333951205568970874304711658736437037155253795991902802012854307368320022597059408447244840372579261858152086436622663021758205634760409632639213366102567710712406236167677602989172888679399892872282504548448125502322558765990900663746292595383270746407830239035607994012563949743671821939226007679581693783490006847133161400190376112270041226824615134747614860377431198968887471354105528232554202940720106026423238342509193256136321628472958066633842901314470768488927386044330695639212230920207009570115738503504404658853440848700725280901058341813362656317079723868810562730469548453325916183764585971473532396364760435405720999358835730858032510599382385469430229728494245307812832456292548172986164219379744149797764543917819027946665230207143413741925493400570914757110557094254543216885319323582882776442543329042781418132440087544953638740466042483836504907466210384522082329779821209378373909627432328336998071895315522770765374399665294069796362721716756877699553058734620856622701820693113608109964534407920079402051846139006531726129073281239380487525209309389435114033235304886882822247021939888311243148209070004473223739556187894615721271912334311804046818903835348322775471584294479375560470157957034559270778970171735583876833333932398987083654304478272386240550070152705539435603256035379958975590042116059489481506093386017854889592884035749521345533485785368270288074488261836734025953777044641787639830947769694357912308838480671266361575310359405981533419701120914572962543776547192957082415811588968029273676966318514687585223213420155792960850063444517743786530354223989732549958609219576747063781531747247254490885668478914107439557227971275365274813637355428796339153885606335572440283205649972173991709154078450579546276846907493286030721307803053285812513756066327389712351805110111676567624529685966197935306690878177305366765014618691858209198353087826328496275698131857774824559274554594451368019809777537145469438961094595544891976563185906745146864334343755014593384746321490228780759884592851660651444157821400052763586459189342013209636021245645580310883566396346168061041227134211074256828220592933159525942713990198557386446183534813286864380082342367139520098570217156668085308784383519045415288498296141950299983943918101264656583206407301768562646558003585301682062129617144702505645349683364375180778769366146676555654462223262657094567183877933832095117883427197290040291413484118768710354861304632618085021562153879197754946029967221858478943479975540658110844708749773990630328839657758608155885704514830929005028491462678765708086277555720282914251578202889578722554768667419309352611802521897436391800280522284227102977381392809347142642445465436609820977121071952025570613928109033772019573150784294026371080321647128434950104810071693770481423920702221750931184998863265768949111932985382458893420267597238055613777278845470192718301955280131831986632653286423648752237671404784638829550915921456926499590979538505999610805957919205162832259386336523007539438413625673133097360387639296338376734155889071013876465022321920345914274458396738413247409960925406313571187598344748158925878554120640032200709730066508096689661406375457666769009640453051159328333253441884279843732413223485450124198407716800203928678148813365398206569583117017425342835202926751889572100287717847795603110582216507079682820011107042002958051533494390320581639851163471318339877187492642310254404545864646105179584588823257796917256135791053297778077477597935528693810102849889729535358155888229242009371334392978128333386615439495068927450830454123659662114357161955527745757317461805174313899389770195548598946312115745013419124288717794569314076787766158595087729442957262649820460637146517750605522540040024798802906850674883867561604873524181704733189294723979950037777947503415745287130775596629012249666716702299023591503135349184463560783418320779023094124649220064764148581555337239531664289172656208850972766700885725845264655100608419661367896688454504622936818043410816965748159540371790633665019373478648313953746878158058939803280366143479636063305158302785173906618619659842218600968031074757297946813906105668555340435121726935855121585431871326417500886555596706371755500055856264777550822356555191423257216821134789568548375310199920953385805956352292864775694459676330547881985643451789192263911998171380632405808650603569650472996316952989820498141298357811659612561686205629876029234405593154563253770212685850640455386358517495544156762779863267592055622151127137305524105806379072984113449495918069153052115472698323614149335233000337521768253451875847796345927051258897140240805441895349848857647881262072019088263249185687440782746808829830307403993571143406633278706042421289202595864571140982804886170473232333730060743917515760317225839522028343054008273983570470985791488077425568690600057668088378136679925459984439224718364571640629753156325996985132047837426106189908750593895046203123187785434627441911243611528907607654526478278791484987050996144942481416183240518066525151379100650608304594404489020591583761407952266129987359014823899035352903587433802050730469568916043926338033069983114083222846048450886548190250219093094561583463676163647603930432546647995640195267457582888723361655663310379950417946674436195039666043850571562136358866554363151143188416269346896621539730646312636176498455015220018431713828153000798782733910668504464213156213875173703832493358894738639866311434608056963211827326763520440972484553298399136695998322906055101970533561898934850960335475098247105188925467441835961304583106953754691738967254475830668433251169142766811116734940275582966036077767106089555356343040039103466821798219276264713557638697723161919291746592162126903107336974146434475733913092341539104780304998232708452611947987990154709443550501190092364606515602383357893287234036889534137437049724582968151418761413027038155643334816594900158204364434627061418010049055180573838804358601516239310928779921105602955148280049239045216936535345515382960771798871235234000299024616856362163093547563409165896392915122228102580455026145407440732926162161989752361978259847712409662928407366007543618543438403051387814328779279031820452122467150174619098380618188420960898047762772176067478119510489456309957769849636236367967843181299837511806346842040095248115975277264597506253554302880323307562793897936446442150565347999931379769732398809605571579275701268819803631411440762713615284516482556256162470267902397297249698974300593755404675751022360697619053028187269490987484387739767106980603744444410938892372159139882295396540288864621384559873359558172923062218258175292794554961946360931652287458304921371308460548723663445888574638208588199775246954383179208733139409835909577778249546257227258053584506933064110561690300035144636202445356103761403584297663900125089467946595679975205777448467366168229810966342044463055980711151316315144407946974572685575451390189729600335783267241549205478510879379125633675957482718598910734131500177126227269658516727742994678254151948474120025654245205609875345863018665064615858329942013583332485727710469654979245460650488698946831328518867959743078309690088599807432664514442950532635369945454798797747065672148261722008561659493339203885217288612643641573542176225211935600049717287474781015479344459244630560754251021881689672945172799947766884972428779570524878392042555886526689582896338358295382804330324063697524824860116854937354500162628665461869770746081018140322479816858925448294063934766786463145047056354355790228117692660328742597387451729393154946536620308002439654987720325809755049509869539995390186223271544185889693949767006633414914659792521188279195996634247708638403336837263335300619389475654917088832907853569789332393053330827150728976336136534541309776814222743714275260457774799106520029829373630282412672337447961728267379234306318026670212630256359692065147041530461252523680409860396298973546733088362134843714915822985930420964976986318341307775181177274490214466267481475589270711693891040742214962881739473485531480649598841985617995733867262161920215755781221713065347338275698469040236336323086302013955792834798753183815259110440535855271499736909742505714743743690734576125552355009034177429419923450432103851295044965380331681932861373204141778867273184925684047961846718893588902506781131453904657164257092645969292667151151746526316067052371255835426936285102813708372915918201906962115832954125848004566591894164459817961660340403848650716163183555162199787715108765144322628774190935909312787296597914645132141533273210354169133734490440077353432549190426948244369575364545419989926884012180995931708221147961668816275611667320462982535127051425358506126894995224830581533108486037913996338546126436745188234939700925284837967071288264353517205960600290941491390547159138889412190958827998396455598828260193952444117125410872866840991716727904415248432059183001727333292172133396574108572954331559087371615172274239660544619667885628252654645087948503998630976988301223343613197908651109092026231554613831700703904136388936583886804134131104594718315154304214212998886670893488456299541639504437140610377716894566624555368798724929921015547875542064457998105085026195870152358673715209460655904446351042298553329972407960272968181774817556934999682174775213045921672964813467382819936148201314523002794760311263262642197759367923896416302932265477480856292300369843890981122185195823256172187977365248015986410637261040657751481220699995791412334412837294051360243744633913485289709902054910071162021313192349518518179115864568872489343915465850457943373385024034187782592512880954856858700524407959605990438505822655734833538408278447882922669401520201192574920014567689484680560118365276918325714215651270718698360648703475960427448584170900031994725610097617941220271097485882181980732709386229553790779893668720548822506695967088618514390235333943003359151594783301950525318976873150163894340196554616640931197600834900743371631717188278983054316425413662732546479856649989128872102718639362067514433183348212385225132298399612135731650179265792788914905386475629805388578953839221577546188407410385139135793772256536951805360177196952470348127773295481758557609969513074535157931673241840003884723499090234865106408162352251865243254087778069646276229427443077377565125594099923056878248854666079221817897710945171523586296780506791207601084298543043233660746906165561909905848840533778527850276535872228583063995355291911402421219277560401541640167156256185387689775087743346088421597183688555819041240208266240743192444890964152934751855068985566963923040069688295134916156820368246875721757204830287413985515335661327518837402579422464744431706593536602419587047268754336808116908378958741911000722191092552605942146276354583512791408212407628624858083139661876422359954285248475488327021409178345323348437143681940143485322887173823154012753761222155568715528019672828603962739249865203695686077935721498253504660557583825341727396811767311901166261717128067103623039405457724053762494803065465589613016613207084277448866109377062623904424791986075001723949089255798674340385196095185869341574037927285002557534811227719173520858601862180178350826917099074376670868939668320726541957989694882166568851444349880677913810321732170072062741241834101610040965403277465831345579313437616935244964026164252219488151768480851764710637923834015467747872452400286078812510807931802989073861200909292168961981772637736900953244745432040871275097838303646462636651331679080892340646735822112950147432355356047613244678044433091847372723180774256311595381280591516172489206586133966003167550074454126204098133533148937307952506712060612426156105970841203137586796896642636148553272312397847532921102697856418902585500811485554795472770815353024944064523062576810164872585410055285615395500874904669642792701504155547122672025835918636597634573101708104073631172449718121201419773974022095496778453231952981766833339239858238622932834576020012711319439326656358124917700729133433103071202837548637263130107577538478725293046431189568057314679683161382644113094948965265792892161168258844286427586938022828588317725310253829999209253442892882757689102297059851099689928994895170050049252220330686881584847405514273227286127458650321229854478928354215085058014072746115372919979950435895186382350910095882041231136475365556016808390640922497838241132339583449932563690820155141356448289201058812409776282079401691429490109000712758596594571088395066282464879475968126958103107871869499976319419844201439317595449881750333309549272925697954248308407658419480396419030472276025651576394245088884716383881784375280221703342415142198865181930616487194671046051135441481683642167389110913957838374888325066917797362835019908107776758030120243273320821429882985095964098171966460732093806066728167272269163231331766898753589864626465753661873356797895549015469111647272729457934815817880361232353140427243389072671217163724512423523074983940092266449831662812931771662677917763491480915465071689726444259652351180236806114788717299365842243334539195283701730436427006057975163253968832779983471881097110819542526860366719577564513754431928732839191599444731758966396200962528582413260581890825713670939750850231616166887479413989271211767517045388426098245504974177652276026158051476805938854738542603772780954946345999688784201695877481540913898413970933492759057294969531817830786186550961031985012449646908636546681207350090563150696514383741116894313305463165985519332857081660249524899556021940602549814239099924813322845218524557601446567385249898744444533317945835551054684421271459350028475289997236821113759773744437645335626398063458098569737104200096976379716605210774104710729220209166401057481588988190871451191628054246546706683091416440825098994317214839869208950008247441073666084257795980888613496473528345259636745418158986936024214737714318711833818905765795330672599247514984557425671813389924004469455405886422660169014573644715631158807761566684941728722763236389302852864107407109760455979786310824409950381613268759772143579003241029171018735948128344990630945932605054943348676176990854499097269721559073476056362436932955354394929253458749268547170225638811990328262617765511572257812021728608880224367481275094853342717279437402359249686233149313348865971726397261656907500818652885334401545719183991264868948982167203293468087531550691535848341729706801342437342200460113086685548175060609572911810815459973297622434568325428135281916146226720428053502339507980295834696790594353995679161802540914022976665579367252902554532944379001826203572484411575676457413585960617378189834794101591835889841590441768800278332012381877990068378998953092623590028802419315226932452676121666725153230494573009240230052448830232647580566002921134624822057791428250587893284434011285990739812234818372872505489953388076044469601300077733106807159661407637774287163276099962323759744649850665024879074823240295230402995866002172426257891306328816980025107567747513854404282156648833844056378166132053424941738077835832247759211216429181652026158210837964276081249793346364727587436182490335943285360605082723950758834597258318085839890581282172948907732183425524516009889127832389245371975368809632791608074735715819152271210642856796304789738853724637054849327567304584528019545778890949779002261419345465331875920555367476541841209670880869131382021715956468309124627382431857389340969151394918327044396101100475939372379339732455659706761882258241878855713471386157747581567906696496207004310264969127027912746697123315094920596969170909477011774451676553935418185341970203784365114391767902644284946630248419542393741010804010984666997127593462625727083396630332965093193886656335601436789942061041108816715635868593113518495773934063572132666700714122227214055427287837492661663244783985921421094988942447122687141953178950264590268484398722944624630873974708405063254531477345204567579612795433195410090798300848852756805654223663918893916389390095903561895880538496433117823540168195026421132664353728854084439743200583738232879813696286777059477562864450219981097101581380897663792642707755871450185126921293706228260690669360047273275598321443270825779008073398605245471929979228101363063170116318667325524794890870435455655780749894466423264102937401488987739515596703352663665949192670402899659436442731855836904469860860156946482123656665734200799153504424141101827652523898782102505125072323408544189114876070908100726991232908184104306970309273911340005419817552061162785612983268266267683417129800220262049691862715813411326313861248267350530249502336556489806233517857865960144426276999954486476874782322906623658859705146974370832980923275752050544589005666578196619784706493926848032240432887433466381275698907295689042358835328898610075461005947009327979960590647488249567516584855601334771126423456473711615815598168350506145925721396956970274254009409176533604396225171430963341566073700803520787888117310643719515693964675285383259837271540200162096516187550907539780717043876289613359945004735202262981565703166056108910145257687907836515160009674725024170696392197430795565580901780611250313495919287833263127620388029128738237816345715688526675116616413797063976764550020783679342007348273580334109590297707440569711896604624269506406762506694563107616626493754347063938629560518702516217154787408073905827148448037485928887217710433334455403442599841618096555116327514775174101399866330439168421279124918631282627648000653040871350282366079186537804540673323991785643761978758989282677399722044928160249487705396183096441900083871958592484945310428836528140854384246569566998453993678686410291340944595870422439434885470702413558074996463879974457852946481206868803055759248756832216141337928527311495078600509960058530150559347187128532472634498630993915140145416450954338745805456815391860750708904374663367492424390239509084577947199150155703310897724349193600520774873471098960137669584244703511927195519271408699478889501947740903657557257691198966290153725022718272498564352449863565300291058720142055352027770156214678341583569005543008060022556034848362890605615914829751618886187049264731197081364529776029525261575495548648384808881092066313628070780053056598073437780385079500032711115963926563680210146729665305149994739629281306018735959297811366488783631772411647307607850976560017267209952434158797436755487859981708920491825119572767923780190960748332151299048562596569677625916063941814261394438288572109395058766813898297427278217648107426704919182691063946951771659142302556774215073569440014180292758182575952082809632904049009319183166229771918917967013102366387257591123354221309580102684450925386171940390760356244377729907388019324759933416664258844372192535236545680445753339726517202562676164184055564749085812365813194555610389669760202095610940130304635976776877705625263856014143890207952687072981138790039236026281609566168283267406901459593282073676057529306487419278966489802747764979242142687687065098638010547434901819551280187863216570800115174666681990733651458877278587974024157918350071991935144323479513516090070007962832062469565124011395334796178942699382701345024326169540283384393741455741811486465127258348643424445481304004318817833264546484619660244665595803759676852129578687560411072036570612299807172258684065255450797348799388015441767941768850609113984828080767296123827537109012122848951554852366479177454561656138609808720353544597541885506685210134098475543748590675184301764551251919758560608087394414096148414619466303346085429284162607318481901823541915180423398762237360221082737987018976451643855626335850658615347856031443040439385743965902511288529756599119500125758569470963182819894474367905000494460143381670405073882934254512990792651001609231346555936284236410328428482633357573233489973645399347425859359346531358746036856707162421058393955388045727372485187734506246012477097060233426364275559943779603203699660410891097596486380599310482234515720187335441631403014252054470337506452519435265113975973172143364668530268457368653506079509249068887806366721405723555817112031377891137165527306522832374788701361607795513442229996429130693809312243244513998986730520260216595947998947508305371595676916357363820556731846868306470735712689700895274633986388721843317572662226137010854243901777308796122917956076625409496073944372652789571568174392523981073162501969048011773559964146607945592671584125001294107463554387704689751046570224372772998840698932117284631591764964487683109298953237671603062053674050311866877704880264827522092888871667394094301120938745955453544404063164999508620409629778003199862355765542100702619282139703863940133253638032143433266382412340065916286359899946084878334338455683663438150122085688238275800252593616552065975760217555707207000311481416360188459146526656811017809867398644249224878809877564586591528528234718101391068352831922866866649671291309630196923303120679436677683975971997236731344050068568598321307177147540302196338637945187692767808643013147328741909322719066219892305160787670477197280681303489589826643587982323289994320513903586322037916303138113264768914680184836153183182750382122696464949962987033983866804344526289189773054312395605015195550541221675770774631531426163837314025834754069661787405857989924382654855049904396044414646199128768658629728759856852134218970845666936454690387477255643897582917045940686225328767526217431983087451837706677218546692849793243821935708456523060120515373694015850403678465094323810304797105133130201911229349135271080690349001483589243496924009382264882976828000316787735282538863192260667377182026817177429529213010199266673354998732985162268462345428772230207214379597190720186982537754812661183003481714948132392019149350660683639417961426539084525558559779691863326836757496429827908356362334320875072541142951406965262500439013651505612466535984820542921508674251362364882949705477717292213819861641060124253124631208441722635975378730440969672839032924518533347830922554621502224490530578656726078127826993475636372723211373062808022446571119816003655569945088130805256225163269423521281791445023412780008187284529112090956463763542471497185097508612248282616615275330440404927736261616372583603366429151245845238900057538376734325098561299980588019104257301501302197539988612525409597286464155876561752499475676925415978343882155280260616094058634615808866240773559922949215338640959918471735000502410229067009542639858861577041358479418073793995043486467666106740314797049984474534831030275350348855962255152306314194705437241026641751032010201046713468703868661529337605132670362970030305858460877399176409280240210141811291314666064633175301219336832896956443583057075997094641450333321004259011153715243518539821501769082448375453085533723845112911978678978475960134315663899182377083983931255772446155860410296680570577230026285291415573222468954737347614164341523454641422811766783107393962911664989002803635108555349706511623781976056465307719109126551478825166162073408595722825333691221852675917270524112596826801395350313400484913238091503247362702337714409866645308009350226691446449456767995476893947426781862042267906447841352130463095183164585924157443899285492544496133531310937170867652800274376196203431723665926328264072108346936298979978737737612751093731969647787295044352718794336305992862750319929205360660555069273463182873298039506036649661784643167984857524877311821879819705388377822086381200027074468673151201972229651044695425479232623436018949120929668773774500065684070427286465333013250901585350115027888411756503127586494494517804276254950801667163169651858914030489348858284462895516766026522737926517091341730804331634939388654437199041631252963679148152825749508244244424768630496877697455106826012756656921384376068988879360606980240070829581901763503660323510686227766833202938931226212926459978811643201690846431672253164439492329761818451876435450460498665954238527008238152961033353822691460294609325212530389915439060008420177063762660309343688804295709472665317290420756843839290233283546424312729308225893485837836844346947003915885231388249286630763470105397852808275682704959306006409580457613891046496712470797874884078398585014449011581647959304286903608852519230077574227017903162882064838173193513010622745486098274823472036656357460357219313012145522092738824756210891819525439251790794947550578991962027935472837408026230756153639709838930581006751805717694083058410155050854932407529726908394293096519300894234716014633671255133008331978974775628286480943865371963274417254916240563938440917370517109880816178206624571892749639976204911045905125843362019576882714080189291573224708668061757855817160249901216019503148459704363857828684145074473297774428139967133782382088685611727025310057541241482436502029078308248770353803579266465982242354105278034044341365899439697573433378396702453453627348593777796817536372937575774597201962708582970407526351566715882579503911994396348427450667925311527911526230252248807491766825264331094916441510644812267287468162475071583883230723962668616519696387401769795016678264748483256210802997327091342918636149710305454486940341920260897771164211834427338437744788110971127419000077409744653084091629986000601656165100350421257821378814474360975919764054359434582827455252989540020739366244489585892648986451296436496394339330506937769904485986320161355691248489511393764018946350065262434136916647655787549264628896666671941014899277847032516932393170302960914490367630948438642394695999591304247685498404572242278000541241386304041603802003738343422207216645333647796837168347867851396506560515089437262595223877326149786882445569469896320212238427659004503496757280854632904520365493573426087877532594063446729624946875428392181256388381155837127480794885570386419692150589377260400150935524113919494105642637817224199061972791024823271437911153933885072439081565922156585083142509587021651678139845481306343710907172393428571950291765699500806234918810818790352378419917034094709684509053502900794099294845019265679082761590968878887021218906321969601181369616997131737155122452025721807355859255054945327318616078540890433594629325850800934987867058812482586820191704670586345763745683196507991856450981406787746612309709240768603938365047723712025878689955480541698872046500726905439366295525053162621234014413710173260923592891050241013935933453409222408402661547560164652229040895568109225138731224638390739682364091352588539862365675959726764127236683261169286099518932404619790145109885976357496278989901504387474358527918011423216962430201556188516390638477046005173230525834259936421087305788539817447802966064110071167632492072496751916325246660659046479503792027196142301263796590685834059808429723381472799361918778878079878444981247736618163282810797303358460812758298850555705180217309932353144052646403043454542666011702909759707422015116023083704769448412402712989396923420867786529930605417113046463192168559610411032415953134144827714979711081936315041589403631466193499029044641375866313482659958152051052641227049048558594606160227627695346250422474166818631691245420452143320331076307494638402991812985235991084396993436043193021212455500686272974253975578110564786754772539430069563790366631435790896284071511349203678054014059849707897883484725903468473419418130627218480102111701373472415273095672413339210718929723502600025178743276561560459258121592645114877647930375137758040276960420696514460269754139820936887680149816802488980699924340918174616118446039529885075430056440814254013923365786773267763128120918361441394517662988243666421209262822057979139169537422355432628491536304730815831937079296815226150610986880761026487557628850911752546246163029349427550158273296363513637081867605404262460024048090174875603949521768193146149555619979000213163323066332868322993439455820943428836563572000062012669608804433644852431915918567293826207402406332016322050450255028326668522835201073922877713502494933658532013287629587920373115975145357751187929735944937313597664468446057679929956233474452653156671731128887962801349855884478299147720159405192209187738550194423989948224718066110375865072554562665784792264476251108803255284843826899921631075358541714939905387804526438532264220907278185855986895702707376909694685558813752329964544440633591988759203917039874569376478835329447822767928985745681650629077392227002431359771840069480047328472148778064535263591142761763640613355568856872755023405220993886135497974669493072988709068618404700251928188676963592183345343413083713423635029856176541742476825563373846642142028235484665501511449693404059754908832100099999393042645881802659994405381680774528842974114108220962249676888981715493618739748800066388852358792442942777127623708614419288130458674466839041479264499384810619568011979663920160374339756501645031361323090615093227782283774866802909559543805484312802896140123489304239256931293838348801148699798200225638738855005457971749198348601511097831736117478066811663364400983112598427549891543847009196945996182866064108642150289140198248830261302896957828425363645070090336407185015679650660394355151282418601841182734900508378991859567429137722800704770142328594023568427624267266512719682756765929663897788449634244463653826459263845742230760300915438923819535321190313022016575687864650597282636809344058354374152190028694359334265534032362735804387706032502247620765760904898902423416116677276325102630708095297519415608845375343393085692550548914178519723780326233997814660687984877637503194144836204345663705075448905835444185994178105870329843116510755375823426177760810064257861906687335864042126043825754622566743491089362675327679154852761787536613726168436791058862592664062163753240235726984786312029561926191882098597270255194387087912011531236182065198806553862040888231351144552633417346456708235320492154640163411299593608879812338074822995756189500245020327712118789896886805303150587284378826567101052114176972511373252307658452117362704961712856312652162858079968390464162572310132650789700920587433461380159358595306189915990998433412112598710326117914478572963818768996892310715560917749336588972099087969907385784501280353091278288126215124485656951869299138608148656145696645159698789929396228515598248501014651438042206255151279935656333126814331938762746697268415428698789395326641683688184789233996595671076969801695776843933293892720752640056506667074047985334076462391995039502961182412225006179572532357039105870618591165763135643496629050247314739383388451881423470304593179696196482289773493567453017272234568987764816029270952766868461421780355242849229554813537367163431997657921939192620222303007672759630135455606133732629074725736983472741558506651111289348813012567861649268052213779881882014246401664033835118923855957122182787843243372331439541302005751426231748476604553085402683231595094547425258991981075276771404944732965319714265881033100707646402545817245427548816642308014890963260270080462618248875757948504372043027620491124612151947696362910288740222008252156846822906078106614688761502362136855733649779217794947992408315977432335725941687840190422991698477289677021409943437293100537760088994271116773743837015630478239326613892474887313316165109513965623931865949463615695140568775103512026306618614500265050419013289510345434762328279752597547407814636276570247350114478202528640783403952832748299553650699443658187024647530087423417039027822844259743761339384999759545795958783210948761012940427844094979833557400228158170525669787173495625733036822045768088028896207314554633324709248334558473006912861551062283157762935313937680040355094112809837894479944832340770566945026833718332284948262337918061158724107072211614244202975627353649163464914448622225401399478755747660202077534586628382266522075823727624989456766374943064164603289621460345089292417596956781877188173303731809853635622621789301254986662631883323913421561940245005445592183125660854313170788466722228788395336943244288660218496566092766081149589171198194001652450557203471915417039035205232155514959331136085337438921402000940139751939715681428314903668822504232762680749650324044847330947876293478148507068069045071025891846655433977442318945783744901659864621498109569854365073219567477594125850657960476891395378348092946394945239256487021835541142760880842953433084829882371584252830208189232499676772563447815897390935166703053902933359577957177282805228019862376458320457402805099982179681708611714653635190400051717700809745060146303380675574003444289179040856604432106717523810346234906701791856593251468977146244865505968248673184495727086814875532732820739829392889812271679366019241869942394146228681110158349641158166854875021642367936199894458074704740080175627955824968000558364739777224088409640472450723990985340461951993529323568930360911562730244709715374727177249704510245535845951822656207074316561271148450629975058793278483004073164299118651379354609509746783151146184933028249851307253145549860856456024977381652155050350762270618510201453505766801261027353265943841851249616684947860614551477277771157554867527419956091532494668034016978359557142192140427577653783436398214926857256323520275900051141680638762276965808562430490713496278465997935294321135208726104671103670758167386933997225791303593448841598146386947432508164493212733984406290978083792290115638754385145681449788391113560851371074660156314934942502590036079685566308389103147297859959762511141975601822338604625897666505168151141426114385961928216375394032494766493126062555627992707115894115185397000236247612800894066618570379761918207261317757465019781073031693597508215981458711662427148307811657978975371404558048473742850578818144228771863059774863363510787025773071726231677596110236598339253687805485123465809479839484472278936560085349422166041360324549130312689240477244614033431750878564237704724642496675599451725229549150528175464706592653976866259501867994110731834312389429698238529488157257236116482033374972845454785349769395849977778469690274019026222619246639076450432014467039908781930433878609129935188943913666333910755462505160044887496424538874715406559655336965315207820775134364322830159956864583950437834090618550823596584456911107660490459430731163430421983334125290317019247094471312526875976666602914057437641144815340421966851497612832166619130563163054851923263932284388786838211532736714789106990584877049163993191034170970642331232308170903103445355347036259204807106020589817492817879922232077069472495842592071920417042635435030080243549809272320510339465215068607226032792543284296319909844672146853968381177770243187691252264145672732228876619201995851094967578784324304382891640216779692785413654077176729469706239931340544840565063293198112371267876991334721816636465586185662381229774676554926474750361519208646641966616102440113943683301771537386271553823760958133735994382431157821640206052682652759501996605756045582968660802989738528011332426975456032586916427201965578750893043138069778102997967788902992968779064682387843820923805568610409133375486168764876571418051664939409746390197392189428082868124738894563231429586243549870551849609927516093419923455268837100193038615707204937265682922454063328797009695926278142318013621624607948922551872553541490134466331123084922547463617779192938600546430334574810640055463252372895343016795124638620061463745496946134637267592825550019787752437844696250943748688522297005119342251928986061277173528472658662282804974372205340312932158851399682885004536640657568156626791639899109037316345482228446824323836223351117828490932574864520927618762400904661498716843972725254139203995893353065816371893362113915554158206587957248834625727077424316311340308082486377452895111689307073533571973094019271109963147026564775711816043530729338785558070326620332859961452867196670832825140997439517850442319552848006214517726884511635283872906060077298689094484762154431548140334979280846686917314960203792549617679337001919182880761680506829554518555494584197202093853894819710369227400293505613658942596120221429686185554579491801138951810833288546617805260535008840583748378395954689483367917281434874998613370248363324875532283903709277103087730040714684145339307244833793313061714393910088078436193373273351274442816842602951934433070882371914370214002924989651281180714248650943383590943351477571750468267919157546362119103089504125630017270234771867318610446408937808795525851375083718455032527523879836431325749587026916049615137116363035907968968651783026804173161930612990599466309435766056786036689053167846905259337392380274494886980550656385537442847623182354772009819039158517914565284249741063781799969883942913023199307652081444556917978934496953924195539651915520798357217509947679851884681910992277125547370315229215154528163593982585281536589193772474538894422877920060793237894131239504717688406438410179784028906510681982396036279187054637655949003370249566085798310995923822093403248226562575183827206883472452040565025345486358468316695941747489480927682232162965739423777146904771113617304041171018759435909650174952398427056660533376118495683981609965458469563806501256521866056321241095472688080653147511183920642724648097236286327666837756869249746246415090225403655955722964555570017457970703465865664269373438922627872166367352765249539227270875290352589790192834875865462447930872825454239966300169081685830649916838683525317458884656245724457953410510754805412905541901972867687585222256843187755858461416418432022119885047010450929351627943332724833929680365167899612850078272758969264591889014078169571941085832965507849041289705172502090874792304807329632931050721519828854189819635177540963996622031316411434631599008197188938610873802294397977671654814966988903287536408674061802470631004598055701459629869237785760063435599192390570256238852674190911357363349875637167142486648986479247370083641379118490361318965590246473300921277024954458548501512749046088044436916407922369949663474866593845177455803487366492578904878644434818229415979312527204791101003161086004745895662607402512189209708158236541459396690776160042453315671249934189015168166510049720512325139912625320029436600170541003903806275522090795171676783343462337378234201771352598759249900464444313213646389126872339911952764518696034172614422898271103851063396330983049997307179391944206120229354780294505912603212775774396782528347558920544631898990158411083237396012198641042591987254486348140183132398255351311345762119423263550736886562353337691305984300539887037042238778144867399495233699188177015806453350009658983464113574975206368321549901700423568058171618852106654525171031961130090757461150622183262889435980577111414910215994174621303364324253665987370935261964613669265915736843255099212853042979772130029340718330539874165240875555197262454810627660410641748982872726732846229832495342357671962038474315017204079519251510866430745669006109793420034635862130920946758378498519093223132025146026989596107072095549783814651119439556423006608900639737722052527865011799365867501785990902505812923176470801506580834742814811454013886332197215859267927326446365068779375621540312010187789686921048292976926541020789672818824970124167740015570925739796458685165560657418982914506261381030193643978726665883561892345862368047774210765409738810566785271432917511792510380658663240758412286785537253671115989726908688789484349679963254995250504870674593293023659169308373288246857136707763507753160803430121296632225252588955698557933519397929787948251870776243525164583143958880614130934618426946974677601551491090192708363579597692992505178874406667607360870105269702260238551030236877737043164166353516748192087165368589691766720821627799490020775947258325875311773087433466482777393792486934893999857136435524315149249459828993652875486717341737944101252719714889319946483557338631694718919386419091772403814449632714008756563228672051736848444603621315805049194458850222782895274496440579541212861252100290306580739488026886576604378771995379815427614895409404633109808516096492088053593703097705837412845277962438140843035084697789091614921668131612024151782952740270539240992384565266390613303239799419306638927521058744985134316827598528871805531987555929550181241811612030614889344148733477744479668265809832208802502414673687542951964262944037998635499804842546947390969208935554594206177547010643969717737291049284669826516893437397186667542170485695973086721702979420276345132202343878285492997243158836688659844246385016083884527692666175166481227405850034520621892228397219634561835097254848947108345638937139862084150551474387627458419503992774908557071855838272935459955169078758402923521288423773563027626509233010621827064354885027430549256850118746825961280325034159097475529832595346036523668551938728704562012004152915787292144611058263059778056859370010737756604303315627144487214033748440095617751094413622925847360613024481994493153214468006006176901709667808297717477920054481730404133278648267035494972059739507223258988275843982792617695748456316586104250640028688224995442136566796774317040334220403751156987177757138689021000846193989491163935284331148338135747527967118154744040865943354922226721643019576579332741029406541318745118710907225041265534176157794508066408262576102889711648975606174302985360517873219721155758669450382540818138511475633489164267162798991028047211041997368031598666700703663822249024537461007715009148704129451149272913120078527857106771569500812036655432755885021125093710655132108139183211510664724466232761529780179736900778817073686515783953263770432211513235286834035730851915251565708802955582774523982626291306666092096876586472101840332907247197356786641598569685688340442042132684374883460091263831622175309403479321159136623945010739263895740677489670730102456736443612792373717518363170674983200101975794343664944649169069432770462455149533427028810627808167802875899619004275835980898876394235447294080861927521534856957440560824252118959528568593032982302595634446120540033752719337122961925327662126081616701072443090945654442640677574183122904349901548776697393381417433129803467651341109132727166491876686590199679134107512865540654108385866834618396611124038074328451558522247288913355797330507563558281078444616479997214403915694097730239113588875070124762382475013878290800217302396246536458072366027343516588120487270773042900510598316917988753115308576385431382425567559119484289355341305173977857566028106584062285537960293250003079737285906859339697945381871364915525333256939038045311772030667041256950052424636601609005674688628870554690158540609456606730778478921007898389834951212862016302981857166553403794068195992112796538696962185935047011772131098886108500381303220629976095661868320119634433421640630626832990858890029226389891512444594105679078300340749460559490411812246759616395601910283148643885299414328958130124575034009443536757229178446070148382080755346682551557754225232787639244223673623049041406442491465095079949763284817418636899432637805179180359344451705836122714337210032776237100546774520640651965966498865142410202870816383531640870997760016477453785625911711403733201743885199263914749589525114560221881720879565464026418879239072346347390844092059497837646424310273804900008679024775595585444407643903123520043657329587505357828380747265899233010873340206802842152381425105774413895407489468889086589944932364194615170483742607306109096645275038426631328059381013679018654145111044735737637630818732751832383390570033142706188476601203897789724917331826366759769766793783849532530083991049699742611759416279055524675612710023154823093403618799449729006579688014542017729925112224738161005240304777971920924396149656971964963525440721281922816720052812886684432405487889630167947256346979778901710024782503691855987355112866041476616533294535901528528529310817268650504985080616366498168259946923193172534842928796059059116436044874771099901150038009018016517471935714566678039251637477353665749688334517214969437425394713892299532548522417936789308517925264272779334639302487243210329108411038044124260742785788860297681044016816727841035095737974997099773343082864944342332439591931951413518888554138413712673347536007497640810329103661344617956601996624119804685315691205352047970954567606772332420795950764587311089830838382591527754167683569425042149473002186857806158417917376513182849131083728625446076563411232466601735793912358472355766119792161916374287575459133954932663509626929505796459675217849921299985255672685379512465020687141071553487223012665966817213993981794842206258095711806064598456671069486271882705842448543876339243427542696851844034827751400622465077991521735356261555708783777299093593418276919341036723682190288631694095857553769382015026185706126240893762960522902363072198114066324455581308403187089142365874594719165380513773732084594033432664877098001174634631302350091304327334860080560860955846005400053443036948097815183838044859628250156959781067141623262540143019145240249035580989600939753245457098041039461129008672451431039545692346235621854551826215888318067092334143395610541398744827625003850977652897916162899442266550261061017784528422435423700407405126740042632016137872665770382167267304349966596954488889127210175472199876995315692191464824905477119203385371172301172306142774939309757114320529454647965573079050081158146577836379723277600057774554064080116145581855603692227376100785546698256654918998884910161939702840601013312756793934382097882328045122406605091490691250580968299547412646763396702802795219103476207932255523190685760213819638075141270298618210527906897159615653822492841413100382560210088536658412660615633501417905249027033596437868552088583336622598640662875938057523289583911059707171220914907099045302769024073644114556995664471897159796176230375864824683213529938650807710566669238175043681399370238744058734001310419485834891372961525946737345599776114446505069247304814484105189136488266677526708458517933136440893751343706933533894002982501359846940365231689442814017911815731704351285052192596033637542763215823616279164447731657258999587047125327521828269220836524372119649760154685659457848837051556006886266119018564383085171106081679131817307919486872887417164526203040314421962117432401473141375004555556778871523370066358480785125144735469674673850720906801986502978709374790709683487284156079434683516710532859797671312680154030966728403431891535233712843927863282277961691568665297472498031782743295331662077842890940959573005412859703889791175744971742593056386438355661584976150957858501933511285805147527924667175280481480056826804840738567159839831593216599759708478199319007023140412033292900435264331194920441645288573382203446748549138497328624793742694569492340419257545154787133260968426695847911705259038209409218355069146541573604263160017333264568897510325020654944834916346068501457741892547254007203681038092642733355253743172930669660758479692659866247621152872751887774650293653433791805922094278436825198931129054655773240900084777513121492579822374452641297820011279677817833620963975903029375645056794261186235199810960873347899948576616571746399049948959959866073704181873829631561976070183596292912441583138120711011725686631628632034949348547168390599661017683494669584335596479480414415214032835268670193051590409497530703519672213184219635939115740435926127253152720733176330917133135967089144800010872238731235356972576212768196216775146939222236497819462198710161322764949359132436889879817316303873078972981388454306492964440292088771350039339908657753965799991353865021219230728827011741245925938828700454573462192715439319882996516715333017825216378890598939795375082784462052803729806903800585309021299422206062351119670228693803690188290391155375096661060427502569464739116030275577322669231932291698674251627365125045006601504090375276194648108611204496465544408393810158197859748730529469259590016240024279584219165180833616791655491029910030567849931942879871140975192351119606548220993508783811080573954990961482029493334749088235991180396370614239537937853328310016590573311779141135420902739728938162640775439419737387510108514178120630747415832642530199697153392755309727038616337170462038421335025666891039498370228472612888264438939414673522333414246636505588709089344276347093816057078379059634864480837502790416240538415049739632333045375101346149679684586776370774730279340215524299844660463661197516004407140789137260789275270552528698397774869194446320534798007897735850715764833615399754909449725015978681607146523809030075222485531570704356189645635126839117110440970237019349021769639989814354153130494995876063423477147087255636769071004673809289384985608202026041401443295055899549132017624087274157152306536610471230312478144111978146251451351448287584898868933104343558855738667714754841274561732786119994472718426982151128858592467820643526460562283296707136466293494642598601740012027215337938709471426807770751062882598898656471735884561504136766585133183390973333621200193433304944455351604123463595345099422847988317687583660680694490112260019482836897189218227249159394607158762663407090020488798778909914269358734585988144402277834959841353071740835984235855509411401243169284108042904240438636271294693964662112592075770806911529323613049029375620176460350207459360497284302000494248844467649692487301441711963333839860602998850549526706354712796963947968270937817925379448387194141170757534714830771835288171684300188979928157020474320466497008737137662583562410025473160902821661205760139396822331334897330583377074878369777542893939421051767638064358320943677113675680485016124084443966836737537798999207427173585573728711516615314683919973286555055872994997485543207800457103103889614224892238915924903155926923591027415047985044306152934193629877997327065377875920268167669923227979323533786682696841358340187805929928048942029751707422684147574771116140986433545978744905100183238475511313350844813290579361907723407049379458934147619400221555697160481732998863181318506331288879763872079854794210205756679820801750372798725912787667062248922841428635238705641714362774415483599832366414288669292716595940213523591025688969190172285984722903990599549220071788829996341909400831392238781300770650089414766240316444440045197132720399377524015621818104773909727956366176561431630669119651281404352122721117603412652969057822918396318500916433359003909965779864324961330148928751618529653466454912262675715778237098230538594693660176893703227948642463039959567786661102055127583305413981508626329094135317370512174011118049132471773261226746215814922200128935190098170564698086695292235544962834932868952813708777462514972839403627424864325315337158012525335268609999259706878116086079285696082085187333232765142619940918598063070745917554309919908346069611568769761489371532619360287384595992175639460847492630732632719181054174334387834390454092690169569334226924167444496405020338607845089588082390793424025573439556049064172904864303212220962252980210979015377475540107986312045587007577529368460185077337450208424879863812212882282246096495833294697259439915352445029975644153918934154542706157001373687388556125631896886996054808838792496088750426013092064705815896512393182316003338298185708939750701479821291196869065441974874966463765232849186757040879681243570634586708877445673964911843601321717011676580627506171580366309865629695091649949029147728734594965930569652985216284849633245878688647695012545861347591437753080388454849654830972044922184718434516584004851284551788214822673436655635436217045282114511890196551475993384563661474984970748789167837293771952091412226249768916152700744339419694968652240264023762729105864915282080688554222868959603502716562320018180763614115469309126493173876206438978733793287961857713740173952816564273397730149853279789309479425171445802134468815162784875752487309693933619765016223951272960561544480549571717612318956826740817514444732883583253753992906398932154364672142534193448444759538750774609042393180949911538796441417433675229957152793881539184780081803431162703679315755722118565042106491454991345216208794207940188587597634038593117752599053332524477901584765152420997632690559137408977890672044462234027087671344101020311764571696291326978616812958188071240360715034926641676358513562389573707223732690341712151520608196001502746505955488133539309337555990424150804992424035881701635734383741097549350117483025122171324966854083103849776577336464488242262340364172109384173734368535602413122222103371113754173332737074835444094790007630970511032682323220516045610639494248601915708049639769909804023064545168199426117556699779842795666262761058969887043790983899985508249800722243578711141094257361024843856242977253681209033292979749496730250193147528388196609934448245449188552115722749627497760549520755574419354264399802360744750023322506107036381377309689849758271130471402340630141560783505615768705399640607909457067924523919152954078879384914825500554507110304686592808361741354340880674883242179924449614699168775149869067912915887944256741122298118731862931996879679325644075580900467654226252293580063833700074676479300580388843464988957527394808536821822463095789498347860020968808307686695068528615303126950523960592017569433062162535078517392506984948955623770850067518006234114870274510332105837930709894298432067156315747430803320302282102918309036132565900695970769954209049043751517721240193771739750456296180671307934138714234396069552285519621175111968582963329642782640463875012346224169151956114853511266570768127573786373216879548331937673128151495810544049546600724495142729037785605495256935813251056620898728109405908312730872352806711550585088938896746817345002194638553062402992887593122228461062096899343836157725092146984642961598646267416269898163963994073473795659792511617233200578143574078504830136712173052024680612232956594599567721106377667100333461381174589259823778659264247668677040629508528565116693660277174015231955690432634021628145758538906330391755700049996893188494344311913521584234171752417970044158085656885545025886425257012759210349478019878211441926366605848056863683313832170511022197529766574769990895029633771331594468024628400474468180374908988315402765442543216272696297191555336982696029968765118500638855544330673090535275818756588378301249799821755780190869722827623684898015212740597483855824740552608751359233402050878786798346831434152712337445952480949426828589134736451500754771031112837738956066366126385469020793168071674026199500493244657618845184138464755502646597092962259393851785163576326237371201712049488980095679895382701704566651033542141972382226394164039148755572422126206904076362926817385010045690430906454487817472918062178386083501021605102208540050539850713590332408334387150365741771464681725569917302739533569987869761687489387660768996312993279600039023532483198892372534683925862406997646331841331650929865258332049785724337397624469042756263154035964398364799217962747635400915186838734011583505587296051322243463361584367687907486500425526336420902084318845640849994694097450378420863062293914503419383235105128623226780316675934231700979362732355151048436545702947038706102468502654460148610327918986777281635080727601242312814174394643152705062203888447115350770117092547004384959819378466350934164668097486363031775023232906925960912699063260984691007785959345803737997564245358082436400804357946546468494713104781530467062749445614386338017153860423303727611111222362250240641672022735032916235641940938750749100802674416856317236418547210654073563964698535572892867354069471962898826008773270125275429131081416003161123929211655547375226892080286406700134636897527419671475827445116983290838760330932529561981338123551853509931374313980860333832286852477196551831109858028833389097953407651615256859290657374927486542844840107799026367237176690479691070812140446371886638563070082097617793904598337316119766935332280746219980894194746462796499761510416424971015058677509675200128496297426110053081777899378974367256141131991370164261036646535739080599706665363953103701293089742614798523380782333278506951973451248559620608332912457505025005893565621135560058721554640396380788500190884709093971712062871041065831162308585684476541131143640751468434697360939040929774424372421604738997723817451085383783632115524056211145204784685214982020621552665108453022202173718236428327462656844428278746450414207386206220532663048895833107959286033472309734942326143430682759798836198248282806664818877260663507877469829372835246304961242299559638374866737512963324966392432370036369447879666776953195521131586596115002432447023324954079738207729642937255513936327673395065439227023793384549946453139889463259254333367702583511857145318922667356195699613120619591033155161113523283962455562905795182666709344966510479908588979810142745549533886874387879465760326114019589457520780560405354622338594849382479081799757287228836820643926119400838097913207555803795267322899283774878507153303407429738278594283542102065847980574343353085484105048312133905138300020441761028078333071959930629370234484827437017588258767995883029855213142583078452830125659073209616484090504671236391910220060808550514708045647397906883353199408571773871018039150215684037752603055944364998761222813233300988123482316989118870950956950220648728524550007638426911023248082884666281592391761165097271071730584094174661616382571064838552246683139382835331977391409813838785298102586130864935774088648676781828657247637317973555171406387007886207268872706685133767530193199948115188608074253895083169543752866278653820169995804671208923251013392575877162714608616785277292874092263647988694765924239554702614104674202075191099803180562615674396353364042534643363887745507540602600992484982385234295489560946963957559921639217524569414220300857273821623439695948553259330387284702099807012098071089315489235453646378041987190832471349986949856958048393471476824748295784313490671366600427214259726442778434858305316822959743130753261130858003358162794947721635219805612838806608611247738092482929178786391297881911335749872254150818578131859435539516438658196745384134645380006815613016788764523916492776172135299551016522005027990190077937159064602949880638353785604305989868332043001469708453240315098814411165217976666692797192897150722719745231357060566118177529834887071593872999614009850278745874061462762006253533850558685858841040364748317886823003973060703860200026024175135615435998483797234837048234148029170533889329101064538766211146039084825953868485310916693178087095306733219808493366196283276299240384246572423681195642538092367422659380653511563197220422097845096005444585659287267643946015672690682862664635012391416724036078999042329559309349710123391091610543969525772554991355323315924264249716794926102999416347609103336439371825208741992509487727851580466311821610229579732032326320319096608498667233254534664057752968946481448491760734974964382425156244123327659557010291552410986382785696124346113874530349075424554889895296926986533603859893469194239730906763044252160737859651211166369900595642826563534174829095434759145320690333057774912135536104640061906268862253857957058558499552911821552178263667855001155706336765832361680462943935993812922346891685439265120638458255403999311608689985476424454030824940355773261297379398641378594719736302718641160826495391581011913726420527104846055410345971530603168519502599652968714778244015208300832343341994454404886169299176240556419096645586002712418145732612169567444388199714820607459704383508253763854179739971320555391864103968974446227651884930535916611882146233660539357825980172145215244500563245104031344398614646941080401058947671757469301818387176257451099893548660495954316571219090731704732854552174844579626989931794920448360844849634732557207003104369957948979723445053625222162799425293024594875915925977639480086214040665962098395608657186248939802688472160268276685998427171839405900100883213295621795411989548163114063360326172925831092105069030234975887652760295196532652244572347834637253557661842151009774655464310365227576984804543402419257625438695465317676903930861408088738120543232947045151950213188912001359557363458114725384768157803134777157588935213989350804257185185763224731506378656483835180893268981365544495032157110477750925242284719069717347749265424076659780422117047138655587351055501189557011361604235527137333163896190873915679644041726160045843632874929179726615558600197766828685188645714407164848001043363116418545519481946498177882862113982589229537501681758378201253226568904663632797030286155044737477022303494724993001451380727214965067214640028914968341707322283564887590690419569988267342572283979050870644190597282045911553348387522546948544650293129278231444161569137985458649140633714170694016950318576920825073148526721681720024483383108402956987765388015479585902537684035115046250872425759036992384082135433528515786467573416033335304268651293741242485514069284264355093357333722193826777224091763472265594794392816410165933763269497982680202117918741469583129542440571815612494901422056382115433508784018831645947739218401031261135892787004574872464856697305141572364821996851525972702204147244877989025486537890149604766950996933947214031773088291053929705689573953946912993565195575897111985601420783456464632042602276017469314033591435138290987070544755741830021040518425590920362513325468218146769305498457774065854416929679962788175973598122730607656987781803629964371356436084453658979732052583388544507597506921768023869061313584087837809637199208708123682582346217310580226124966214627504619013193258103243690060349037509230618575533604503706908669668144101253317835455942462543007244423116663168413665928408750509058402558370623617295666862085979674658628092599350678559081991981431331442429536471004632482710651650973818531809399073824578384033490458999777402402557168595885165895240699284288456022032694485229045954544530776708427177961275196234658680299892020705573936902847439986009470431222189443171521811923267369781664274527398568828240980641701212582789199887989193764772692130587423556059766093573797013945863055340763249616712370781999171624950864480373597702553774315792268492822494868402970790612821627837147176421773799560519852023241013861617771019123838471834063130096423062222396946806025672141361489592218478011028677918344290466391381923155055563533183155910029685460999385675811006658277942249971221525890006282759827230272589636434772664449774247501226062654358972539763936487571956628109646484993024908729768736179712044260198427247526760892638877011847220026979867632062024390797143490773135565062931806247084958389244386908495429983280705266077934855514862872141965988555127653350393306281235928262983350801460570818478305418136557791936822125429588151263123614435704588157963570164406939153722324115385391135991057255169997203656478895930846308599061930786017168714021569304393425640523456698913880295660292281242388597182907963138727999328762081153227507414729905424044355176999837998002655580404159619125116820125185848183166860689209309505248734859125330103519104074088170212456362844855471100115586330125269714758657664754509051414771195762263243883832955725823423930876759066341726721019121383333908255364065682562455343990876575954919020308266972554605967063741465116639607410104577317244547452967983429395983098096976501793180418051516333093545999917946357436773464640055160656812868928229824782636593786360542604429300215118353500798962146226727392796520055254826296385504431349414702501859127238531970090950243532345301230944637006109775157174469296844678837201316375507864801335796416326830987833402761658346371998770004213539648248993730479205356520290467853602423344132489178683083929450168333407210737153008093338815201059354253187065864188383791100301730654495125081404793495240075789798021278365050129984886788951581949242935867858238361494021754970690086375151541330578369755164972913474992312649937614489570268741135004542576244196308565473719659352407507621877117348357969851693763403651253237963384527358267346277640119568908815519087725107595663590417448184604943699374304956536395317795835294920396023065004999947158133488043655611504209361242402954153014531154371283259004741687783322975095753444884576830934760383086597961397636045181006434297106663521494545046657533577761869285444041895859440548176472473726669866121141998876428365518419382123826603499701729025379462434871164612223234960764167801121461228774432737069406835063981254903014118852040029989186030934621262448819169466866240054622041265687689294122006478464861451330697791197992664216596142636225865570584898009599156640708161861531178139694206121976692574692647797141771807307531815240776736190192859487144085690818196941880768453503232132522226545736211567529082640930998238972554704032921239411082648745959307949232200698113120712991241567068795592445295329972618275017672428854878823043122821312369385407281373069888722720843526178602211661935014686697570586735757799283413772324909116558940392673501257202815402693843534298111849804865119010569821031475731260616409756302271554811806182918686752982441838964709991644458933882659722707869668722588522470182302461240470813160292324298928500006912300649616549567372916817526109582331436334388005598518366601223508572989547424224779045074200462998513031846173754421448908991158069131528164743221990307165502656413985925387177173263309565645522242111138872427301667150212353643107870916700166244673258814844085675441247583553572147927563164793202435411641154605070452664338986562241204054574727625988793437710351802747263046849006377249500863969834383372784501575863434488205936385754338197668662465001910992873573641744585983466620172260579882919562318082189657259383712303142728065281642749577615661663260370138479640790135977469855773561110926309473774388678548961799338354775136876710448555627398379943881653521766207069403792378097954098486624457498410550929500272824679773359604253022205852243454501069697502945420607495087681379820580982950443044893967120310671797394987542347244658525385953819803510320679717732688752827669247011372346657335532564703461253719594968698241688503046889299933932861600611593637471361801415241599963816996692012064878106237270142564701396431307959556995064439605390240070252779428583328586536430866244854497168331137919491673919492977958370891819205762788237489843373713817737765336012641516760792653324991299501553182683646644290846983695702582597938938799535482166652541660305289407126194361057002720848406956740622807346311836291893172124716078358208121867824177178116869777480945375162284473670189211844454274030190898017537610396247822176741940441128411874684496058530733123785229155915897545775538268762737929372496612407028169482328506924491700281078016713957291913927438630124960878153260300833576157025322154237366302063495797598509268692020773380869624178114602383695543917181312347848861916402484270144583988018943156941665908466713253231927339728914632150668696059593879906597475268891478381697887354013663345491450449442846194177926690132026603524070936734227058392960790234980301929493417688868999793544331175472378507672869820772629438340132487838261390896474857287890411387635529402211388907868659862583047601838394106426493466114989999679345569512133012513415278155870058707026518902720444254319296163160221977154477424636265334067961114136679841747300039289958692799793136970694155850201974438383584272730935791107270144529112923354138838609367740931543006233004516659669509093498299518349974502846175427120209483159075443049748899877907556381018458987925384722706450218629300351922057902858903151121272016051824039482780228288936778449197897188507141591876188949083720349797657581333303718411357326357228191879548710365193974389847795696244933107764253272656775777575438162463024335716361083682040478951901699017599655329982600824670504251304431411274083929725744370427797302634832241325024344416358126149051097828528315409235308885634253583663652700407697218784202958732951615776803109464191843021933013954649853947820668667957133047439532072625538276338106076064477413463105408908521719483816672468539250001463748222735151986231321164066678094126540689690081688958274498449581752814137798187038181618294012291169826957034762971111665789364260079247722207306112060419514693980856402036548820619811242624249916064790846115444739184592375905885447520625459010540127317874026930684130492546533247987853766439689165734384201410343724867051746871934117923801762242156746881452485211727743879179988145396229823106040519620162785888668196059143432132503184184407837031058852501052805715666252513513675131710646358353741783018205345189879259328419080904952245831767568336131113421353364176312239665592165122282048239907843038805395520524714121436991195248413020615606225403244129685461993585011374220697479459341171922012266362433837092892343031492015408598289519103227852886328447867557584094826238237679154186288969789613922425686508902650917319182477830751320434210503009484459280567900178324665193817427528428370984690727180204007667810321217615199509159111293890088929275550255181894268119984533719583360899645800931093880580235146342083046413615448501314734294220398108237760289198012364394209411082305284446495553987379106097889451970184308298590694527047183163429115676878964470185961573910049700349993814404579583109090359590849818191504497710259796317019394659735561384643631972510493698078800144706700134866355714261993618206148557164405445853937694176204191043998357707981552734047171255498340179159268633312697456337941626889798307708401806044105431396697648765519071135916102014764513105324606667897215184918785147403805362803184148364189526793999112546772764144021223560219883152895567864981594514909681110174743875945964785676527643099004193392297438689935493075490433108417042790110531823558363744227977690455638078209770156153759888348004591873913410106352377187428843071372324039364390310025731416759202090888685493056933788522131879936248340787676049027833155804337556806033558601072987791293116578958531819701800940223620652781154852919212214117867111705184262901727183719216159424301843199848929096067396842912882405684156390024677944741637160764547077607844302682051300812511723498730585210729526397011048314423076019708057683519168887094078141653307047126430551173150254695978534503231592237093575481657045297179023576859601218311349090290312891711896619491778297680052451542231962481554361716368401261681007836870717321335620040584453009848004941277928883346538024543948863665826507372368708239557088308855588493967264795061652480297140952949908990731769514432008314831125717544365578269633971324098706681631058814697908374788409638269624111871597244496919701632602708870176743643720563729221788228169435426646616073262992170329702691176671971125707607265596341310146924033509954949979858667670070970088543394558237790777746707397019152515665410207679135834479331424860407668970473002154387375773972131473097677177643504178558318842959744011613677027034115304610134213122737152705127338040436756516225249752246948704901659393220917731169672677477664128796537000900335261017014238420863923513001735058923915755538814390737702942239612108364518087733731243391312123033825417440498189039193826483769442534477484051109118122477170748247811330136827012431449278239020932043571902145163253643089972684819593907554070039773807693376316119304631861576007597885913292781252789705618425193607943683253941745700432225256654684512578111435269225062648954161085277889831630537617118930602414033243727802498455820235225368468705650551708589820267490854315062846502685682815753295685579520265920056431591265258039219648291131965058169068547235566772978010085463304070433786177470155216846110574909190558075750890553909671035782473637726510061942905281395350727939431100240586632584098298060896832516931312319631207250138345013600917181568630846923146653892815948346854594904272271936775367445638402475029426003300092674324472590725892824265834575079627415907590165045543268996983960330316786305685381155179718291575093773284176540425745722178871667980355678450264337265598759326741619027619260328413659234452131599839552400612281341127819668591660756192285672741564423281552855841600947786853182021676340893569688035916179771183328530214056620215873321772080536646682980581759702606160441985733729990593460816785614619177604058827734139401281468003692258078132889342836691251295911443664728274615295109615733564686367788665872208450834700145890254638652000241299409117791649286650370220453951044149009993856113397154717836312541650183137969716362464421815746060143463719998896497271397324113113590827712743305281205236146768334543247804405100598183150040540491125020304021103934182576672597189650041535393402940716101267314498383453359873504902080582931815739525001102308635178290348206582037553249715479724928176065396961630681490446546444652240291397695850648227800432714549263138088608885928683957549771752118845840813568690225105363265639713215366243347187420219971508972275000372290419306154568385379061712239310921977715999407048778925576269391997306162458704119303486469220891803354212036967090181035703036277919572112389854405265906663565126773435439852401292648896276886649446709499834629220781321967924515082439803623358987442218322929092651193651498394202124884468458688074532530253236273342266990226653674556208264952342232075030609706083348561989145472853236098245019087920017625480643050792119449280202810618369148773657335373161153463583852545650776841989252584430567612716810347824899629726905708137794211977152245899467535425461405580689248875459850693006045365066775761980768659153757373383469530124714181513462317181695025020175490173458386716304517452053463858438019264110821938506293880457575541709796123306048529066486491194474551748484325996590031064626000137239267066276565373741975398705002832458424617874351557043372371332145318362627660444738084919094774238126581539567966330346495571090935682659094377813509743458284776229420053185083517115218385996015494371693008104675715936459806935167800727500100834217551427158370365688696144937008119186440445658548275644450991834385384873757629471373729109459806645671594409170782586628478960248325397740667660996587511383288970356564426319200818099307602461711789695246233983329163035636676485902118030479297675195199704245738666526119845292954117465111434299937204566806637314251807036367427350930386620873644559419734186298384584864339973841955584046344964955283935319014298813087525325912854150228649134974958339333854742273772021031938005114715029540639350812942028265617855882949506642948860297565416678335312801199725238349976943855523735364744082457257490860176058854189804769274063805450813583119065274148952288446543526167345624881401158525408582494295371918264145572525773141064434633217474572050385686003406158126544137458206325908267807483875561636185925310028844188086968222931304429796475941019351365656996217334833705491423763143970174049918644596653516794378530831316603169443951740475249386766163127176078444898063951643447450241809209526964529846729978261637383089079188996694810342435310329318019781347340306517188006303901444653838382745875231254695112930522991128239503291251199043748781475975829092718429118723256402546103212116952048920234639268804625659229915137159634219845051330399633141714706909261043264417382406117333950557996648627377559227359990268286138939317375103641434631865674417849488792937361388461178598750136245379046542456287538115177586553443007865593461139753303285715652143773732588813355076027292281883060942283804475781062149822169655888470037124291760699349657224551713632448976913404957276529536409846776577594469521999681690584654392419507422954086358635825603687676416811657052568125771545816201180871694672714350903203688732409230289785857079042122376937003426036649549770476171441589302482495520849062991127230161183486708121615992312501419047741775334203204429906585503452742637082513834441720525626074485632693521092173397482253706653315847996247854690411447852183840598149018976062066984811769845896067729357666812783657963891861058824066928494966872610858320703716139790123152635991555619421700437543035125665277675885615020104078443021988504629564646274570825031106707061339600643121042951452643975959956181217367087161543036736154685223889742890817424566141850868481618839683100911904130476710710838260814559470127134251359553628975673782569744646788577899160628800228753045868330349114321477049453627909136433612452677440587844964000088771732394485182313089142470336213200597919368524771515887846193863926440515724435973940561808867417536090778771836313522833637006968988624781636624595431163487054928422506540853403596732953389825972371927773955051211688832036222312505698500704238081307015947748098550455306664241636215863517821759425013253934533066376996488511878842079007929519086558665787024489452524734289801644791353293142912977708219855865546783593568568574120119280457057365811772998900579276606054171504590391242102046444321508862386584466204388431062382121644072560643874222885586398931888858179161028808213113415718873592595003127622460025883058944370938660918035485020185424312664150930165073149222496824792626788421697162147624644545406984272382650042976164637995028520665311981653640228259573350409683902639905226883138397273213591581600025507296499224637985840970030034381981814399620971073299733570689690906379648117561571067215857320262717282068402150600768591620170413799464474450241800855989221848256125519492410754518704950327526290467196820998098498827259414814803052864619062526857198676522340327432124789854794324337707181169145110421685739679316561960219380751976379887651751503211475372156856130331423571740438765963095699917141889795717083094659670828241896907877178166549599723419989695865086410155406074168495912318501116439688683386064410948501667917988294045771828268079469968123972349691120562670772430529958159857745900414118180179615316239832631601427958240737058701159782471687860385678537418056082237348950366385571132523797422609625935606240251196023850749543567529299956003694475950803586621323543026832773215894532454590181886370349485269112443378386584986295439648992580716496297482355162581339260810196055607486956120906179623735789155383738956930541621148060196921605585201518448061454838336488024678572499490162982021464109768023304895458608646164054438875324744695574749951058028850095112516791872154683037940311164961009076856199399535833950084527386783822232109690467850561846437457357520662494326591926767618239336484483878860411804294215210774664751640894728089745731013459361425212610759844518738628329193948624967441560000752645201259500098702519109630192353999814448180026759968490816359195340131968800479307736146471896404339994404332982532705961012566292657375906829697444099590285559726425024656475518757672901431122980323545305763823005271708145819539614527495920916921398852765731719500279490559863104454820548923769277553420949806098794595284496455799607258823242364356361727461369284873529284380295780001671178756913536223880531257318794380903869243052322232723031918909481603846753551925387439605995536765275761305535490205920102551363726466486392418969287116005172028304121731363412475918802993766837229186540631636684444721551034144639747179460287019959199222475321699999030329201709253890860848333112380254115562294759713023670424395097514910311868534741837975944518012709271910565089174778418014279768300199475411503023013961025864196639678860780712007379974895717045773745004005235158566133256502368318484634935208456391944922025538338149053831616596978755356226496378226201704647268601951592629850962381901091808019387127028613662502812911787328796095760094594313256635499193407728351802593707339719822734294401525728995506656710252982093450244169318429104680893426365896842774130189478753208889809637335000184536422800872192160619643591028920820245456712348763028946897881224598471272524456083129630339923848334756559224009363325706909753509771950837056976009958862749511885719521205724090220931265241547972974061579857997719885210651514545629603157540256626089003955489839012645303036708371996313730248945054508470062798065002047151372171310003194046142843295738341092869545286929392136690065349770041331254069700395369824983768952222014475187036814424855863498402828498440622447860616485216770133159835259717669096301944966355494706778625919267809908840093991937840111508060817156981152902273488497109949359427211205141785729389332780878314308765049570269397878261590994490346701484098495200625040827818728540763986501789956555471070202130895802822172347842916851975712641601235623989359994745550985804236981353621408374488654008863792653916135641743989150046869225661827835855686309151754356450293397848198578693684323237289886510747331227666483883503650230097765705420784702035832024251075185922876815575493662922660357768492841688306414836655402321416118048210648149986589438539091751555668735041124360810490772004841392069669329644171872948172155505081698483928639457292966445855186080010655987185615287971924897361084418771734566852772318793972708022300003841563599566657633681270529658230216281051900518444334495973201631388481099348039381211489656981719819363232884961173228573676286112031114836279636849074105499202590450979007300251574248435738523258576702489160083023861174875979366730331858105149672533586603712765966971966300372426102204234752313567713538813838638896033346657203766590792355992619924779471338922148437560269461973724959860817695623980322426477764905790549890419044766215665278370336028676359328430755229190152235960987249946944355582121903937008349928878201546277489365835537545853103533905905556268345817268694376569837672802735360417263897156797089930893697885061161761146982451056825757577251957643423954100723063602149862418319302322281715399456209123574527473523743665390840319468656915540683836838767499871156041402618472794248983078373775740963391877060649032590760029909531144716989679064386191100975124987351439027079082927038181061512961116038931832204479929010037363139548266056852186327791415322111818119599711865779870217067830670374153548853428841814044913707233388129080467729372698736118710039703572499047226884434021924055138414415889474694575813661342508909738448088016668559986824027284375671199696529433562844073950542334132753896711533561310468547484297970312481601172428008762007186057659186791052408590622436451875173960464297827058093801249120299922390953631916042867720146362004420132521328117487369823496212755250565211724276112400791154626843926507031211063091749831318733115621375817085284223572170362382635135394663101760910113226658684988987480420522233756529016048591564175236009463303755027038042375560644130374878221518981320376138629159247278522227016149566105793805719600560067011377641775466566027831118581727841656479876296380117794606252785240336099063840062502461368665161695305537868138566384272215625705617761378815338922927961046762440000731367742609856559224619392201397639124034343162960928161868940479903719401338584043482851679872289604309061449064869472176634628112192943755377806512335400426698722569038517656785328857795055687684162110018116385982740531783047017083017093817083071438110571606817404358370711891372999691717934928438952255935116229370038332848826447463581274392099792531682649306336768563531290517778282789912258521649237167407926919064612455797259395884666154624666928780246706643442887908139332789965987025775593182831173786424604837510924960501399861633951282443704448911170463480332824970476999433320328593920104318906627740401995085711758106708923671309079651863579279654340785828767946356780335213413910215903447697918482948250768980128777713924055668631986955099097987300203480810462192101529752647064275438428412200044130081025283546594442998149443437494592159803101095899630375044133962721676006167369444784048902572588007540065099134129582832068491964710773750132949567034961655523112362324520717541258421391731584607098129457383404120428661843619333132322715640479473270834717221054323316848279822415358014331912863834976168264403030749073232981196400032804170949904709085843787794755927219659203573770017623528493851247346350318897614953425720357600991935142598484744384623695960995509359482426968641619616345184139630758175615119077970229307710741738950698119117317495790949278272511527341774951094051680884637956787389644350065966864306440021314750248779863884221416865887184309803032423995982883363729621263030298760807368077967288240059030808067511080738178497682787868659077017269845197257328463351906850042127507846608308838688232195180674779028077291184757058485002270046789988242502791480348539082338895455955619875082144393124653525025049497743056093957659466890335413454728924785835120985872646137074426657355206502972663474918307340995691071732810678419758903254924246115910635458756698489465417343282296770306514471633180710359418432208811427105883505161924135416230217312629097255697788664979103109213820203621837331770650576898412749348727603092761134830540111515415268176895459414734884771664359518008602190040673856145093648118807840090361029130064445574549074968462940728861446530048358365189919260830197937359258609261686586845440477846809512821493304983285753205875697815857116812518119911647211503287856510644507809184382499715563853231528313676528810580276072450307717012641202348644299513416247291530393522584010291586146704350411530392909245979738324440153579440416978851706624944106246229140137697391769580146556229894719818977400856670117174583590166120771487050989645666938756538726265580630854405015089684151999370318572617865324200640347585349650640249430723157987445760984301377658535824234445068261123135443336293806594813617201718443100959435619384549330377560730028057508541100771813816572256951342541259831114114840659140656155449224156894660087238873796516381743658089043826586345589727798244850196519899629564476013992008713266209334360576777499666160619367153032698800826380035466068883394202202639622366927038311252196278945353318379697770252172260163020946827477659734024409684175563335816365775574701052612535447448550689655876540446539746129480766296079957417876770869827964535224174049944914056780408086860035299980992341759171271392629984367503394472519027983528625599429671486316033332735950996954650206554014470662279184601750779527930903375016273963418530652332167543603528240154625341137955997739998968460970449231096442157802790229656065816693352059224448025381866461621940437206347538044122241558444365422201914723992073172990613598153923221515439051127948791578202595002463454130627872111521699878383064630458805794604924360789707279807164152290214146103743233757781641217793444465564050397631682846297884090218290046879562996506006998530386664050223061319579197553602491089876487881954394855632082193951407852527109959469811626647425583822317083215916468870884493582689266802574775213738406536381384502731110001597429825968017468283745126858507973155126934576679201545307151465152845798873424526192867632049014901664529372810232337056483775716598292240976248613087413121462700170309048707195455491915577841975926447961967570018185831978625034144373316771109140144944798779154614771509334937280915192072130830030782066504158287771963874988211277745520241364534484166165183509744660285787684459854633129558017998446675760412510571794236129630444420358544296624021611375403196080946190296947470271529116370365345650473837826927746579339014065888960936595638603136281263763535664168841278577714270384490186070209808310057200616155300129269198639143779559493606839495973064603856616396123470221815923770647610965193444532716268194368626911811358136362619319573633562136762301421268319348289784066854851938915799734793697700361864570123947173945066568077081892028997278005375525505136117523777313249797002188216509783365365394625020631384191363887425387494551015436750464294328107818051226230804833260303066606112110565297672200011309840069116052705599976644400638932948560900362790003891264199054194941369355446753271517756362336973376367565491273251149211446305806389170631135962576811923356460322281965829382495335674028050970586680609051437960148692196091157908205645652584587614677546791800261321766348107469903272570806763663496585961346698525923141768500125161019572770809706726931548735680371938316857789298073335719172109884272143785384741540132706140997036249382967719441100824231412591438764837002859467854040114199377087555815188030329719866176272457695115586022640222561039536577455362140532641700458202768682509748827313003062679568134730430031005075001349221373612889415777927807807188928929761170052071906922775184206607471206199339780636106251830415025092668799713580771831148919110706232837522881462418311674618532901475885639485193430533905151408733427585472281103600114041612788977376620739875066677826879771617154051263975149535494858874701684723652213371359799403671216232193433063886617294845576508439282072677569433858523648649002671988528473257683347262317792683756449127432374916927596239450430634509169252869522160572944095081064919959121335583420084978031019719460656103125314968301791042461115221574569267103775046270298774513824172008091770723792559977802784504635802511352513314173190954927776910345033733686667206804382446324190916895013852113895495327613148053755540977959118872861961168363994417630697804689048155236496436808254968832642228949556391118429155961928917839552907394340335981027114379764939304623347035676318298881987407538976302365217062469553414314292347572217593423729400439124413772147602213727298673471058561171070107740339753518723372856305830543485503871197839414787455403271051975289582344099580673950439285458876960090728686563476770193584287770637802602127248121317936954608515708500136746759495093651540890813179450505830633212169124730653808892498287946914478767699249137884878714877967709260741443487828101395468030200416845830546536460978999653035188415172134426266708992757023878550054911894490258259513121258948320653046445124590406043824915488527099213045710933447980896583829695212639075791424699675954439082279166066496673704489872764165163868249898899248069487517154168724132909400695378933435551392087357676891689490486558959786540975544142722134128062160490304611914837721747543585152241547200973867544060502977036183091791385858362267990498297722071247464217110010813473091661098636682085119460658005678738162760895288237777825443000710915900135764052439121849700443444432253076317500682201648693611625107288677577735581099760347735009074659806856142114836281426528163188024139401780589275551865997795593675154216370188353725506363891314659268175556022414081449750208599456418442683824704877402413577414652036661025397548915129098875665786279385438926349222173813862014154510938978785306137354962582436116444288484541497532260631524042860455839505871702919553652758727549170096137023404748157866842720538890715337889185624185466187229646072928449149765118649409560273375680212227407501706403790039138745705053094551177794584281367595893095955673744614168420362971593690324023461932250135401874763958135945326015043635454719360243131790700893720852643919229675590194559472170345274304369022152768463808400988305074562853740124424008874086188008072493992704064920663760457377305676772801747450172778330793473146708001268684459467934440090036739186529321495852140468172136078622110966784385074452934778021871719686242462349700622657922570369851610970495991726902348267672771648570906560752141626475035824686431637314940037171759695711117489702066425950058174648934983942640958567037181994262810436489323180643817703804235830459899810346908885573289848098171492428301322023096020211252090572404149510036098838272241799258627530514270143899788307376901567795906558876214394444787199808111523053438427365186680574841085117062667843561073216950532431882032049171172546792193860569438062379343916024862937260659263999256076891695925557767006374918117285445192260273878506557624059695869631887809176180192726028667296403534113569848558617977012391167753401930663322108281099759329896715432578220349938098201958896984696896216253551120619995796418669781401265625336026788209909401038749802589137113508140861509737496005114879795845576123272999228824798834198087540263529284460432277099866650696208914661407930394316143148582518264774951070019774577666804719239501000767433785410979333380550602566333072796564574712031170873765381314965687849513506069981104924197919776180061467595138048334183436209857591812469774406284542648728405209596148121670219657824493251773125083506536332148979479572733723708295607653408455704072141833708045328580362828523169739903377827477109245168589740055433317280350691112274829336747195100882340623979321551898707803513875334234900417199429723984654072998060741062935489631180631358293250905658566555329388018405833493346986124447150395703575232444753495501919491314263990922945583979595273989634711959311993865280558175159569615492526222590650391317950855787522956604227818978223954407847384323821190058274788276165186732986441793865865813845861948164917836561964576527811248881482525571824858459296182688587689749795536978388104446221395124060342701250111519355739310724373390157265014272815712125653442097644707581862232409174557478366274631927037575754809374803968886789341984823066302111842327022254105272792202211482708711060287687113328013245074471985265035154482932054005332216797050222833571136963005323789942938523527891364476603497128309125996309471944997887949871082708515900300718150245320477583603714146821202469932999824133275175733943613527499226487587829323417126815358903280406038925784628766146567583024238181583718796105516711238939720856642691287249764690990481347547069967250101080873220070750680210549319854234930127034154588301361557627240555374127854955160004905194318927484733981790243214874066228949638675687100494448711202693332063768633913267265898600789043259208853284997935168584042318658095826871523487100731976666186224387790532919916807558124191158803316950424884638309609787264965128031830223894080329452416767771261645371470178241269872716239033641616496805379983086058646724724525806125460405969709662622402947109174012091287121247286087677318749582518798407337603986077799389965742603392139882669347733150589785426769115670188193619555214839391159422035211296754615828883940424244920310556106225703232218775785894081906563544532438168582240311263475563875193426184123409583068941240329314843942613772458484164168135316367663285096252221161142204980044992638157884435645193216643595681396517189119662524683652443066034128552122537915343258991328540877375137167374201808861294595655243901705359449107452548563926436379263429380999603622332929447736238858887857307480617338767183853278422569033556003031952768802375881442339485520866496032321188707114186093933186701367901630496716530294626159727868987127409097678921232911906523385266526431569559773991499150334294887578631900008549035921346214674173481966851263607943675428493069495602840025156740747089845641262114475855438386823486490973310421318482266506909726437780419970027217999939377788562327491256819387546930829530225481517237205053787426367002042907929228841127535070945509005959224638199623621706003295558185128445465583747629459547948453503408017570449612677464764478455305967771213642054354693757338252289026839815579812733333612642583462710804930938332515729088150452259909544965512258591207899317153517718736292266549979928740581013594356705084812924334505684054021116712900412335500242783379829435071849156864423314687757204006404377870483484527405102960424400164168040362310394832984801660183502507341487873476495582675582399081537813890561434175632542254629757423510873516532147713016985619782016206994936820654919034384778680265354373288446086372475671374233271524692465727838907552578696604999225354683824624296636034733723631689193782986948762122915706856434870896412537407675958535282110647642284882772948192359629403646098094122467467080388243338334455386448700797741473863080284925408367438155198969357685581064170434497085975989110294405501741881625875961414988657077104208730152523785073660082430013086235746850363551060340400832779769770790381553554953762336168897290118993078838117812564621826961845436893331609972134685544029519563993047422776024491215477656674818313753357882167337588096699040394733117129056860632810797082463650215617184464802202977193339259905239890174641150939149160553933534138191272894341827133536077526747497300585959067042460377157153630721810389511955009097071728682495515612123819462799540157305342424707223096668291538175897196679087268835885960674022399500951304016302441988694706559023528162566808996210717035894511824032283005413131855847474142474172086499497620296186810146058576699072360241147718742260362015742943919463443399778329976083745338141831746915549619487733696877705343073740188031945153241368734578392826591821144116873634074629722347396831209432271455798448079743430869694098726956441393875429109610350057923764380956671506816326272287762308359863273204946690342709188888301813219137207909780697197786691193574011422949682013036226579847778158037938332814638933350451497993992237465500281820312844366492059729041626509973764744641261063453651886994439560715258851143125032139352713400866725514984852875988253444088299328647258967754679069004478803440115522585787910872925503734829544108122405422566178437727801507484406606981505177517769275115217052979091378022587844568546545909841526135682055937345569032273603036819431627969563082541600436805649174126665633045696709164854453568058863680262950397350579425575972812021460766332625750445165817775999306495906770235003194518381780410991739367493855613836065301536252471261520203847735521617693705965186987743912957683836141624708982959416028641872378064760804189658788290721589853437003726797582680419031748946041479479659402140974969788322045347934014267931170316059852632214262630773430416456822794644953843455518954247403043847831801474834365793836191151836737736404637681104756044978824649858311075992914956002022871309423045963933128759036415419521377223824647659535705807211583379287847067822004066924027680231798397654961645261394180330150665691606385989883893420416776186239061228893878326389702991336838884731769304450885393641149322174781237431666140176580131080736117517518330474997359574819394040094393286593751474096889464045712038979878393317159201661328737067588413347139604811680786680654200556293496549512237446773593456653885881520954574432024426971168784262691891487405377098345395311962100185193467730549043964440090485041959170926142521753502487666440967380703927984949722340209124721331599087199362847589748006148306226800065876651177340731732592281382082332164020775062498694079051815336396963261948185065286713362263519896578432716931913580308554409849302507593909043257616613802742544315949294885962929842818434625181802789813858704535223928678626132808012647101291434801185137921335679955370557144492228980334234131410170356722536708961285805380039798843942547340298865583147056573099699546498104341284611274847719167231776080549767731436896186266288058812968426912378734094494616373532769285462703424863303648773349845656573213805080250117537904944777670980360949656619692937335915014568863846623443424811677124696540156506630306645102946869440612610031529416405439692933528768554948075508469352461770545119523431487200865296372614997530448066573725374767521536147099673338043326286477194983639188811565406353413058478903260919739147855039399417684149543480560771311171145566222161152426524550326938936898684705652634010607221774939993200953023841304435430269841251589909524267324332048386182952089627180457842152448769249989230060518425835626312171298901787510353175199737356591843133138206846567536675278518721138190561754669904119926264788965376409351348749138275560895314520445653903621892675534574415098427665519812660217856712508426534826826579229213688083433745891486038243204670795715036601006324895862306326217798679714873522173798311060992093683338270130409740144500272848062426211530231314560598978393057534576112202732675091260426034266415764348759193628463394715945876395373414654457979585266452101725485485388480464002629472553134613806319726908667562224050632880443208014129898881127892635452700869246629784196855946884430002968873353289667732361314822352771743225371193468137364318664460376856417793943253775257936611380115728895367852541958900782988118529472944001279271005929779816511557636780026620514873699438738509764977241298098481790788062579380701982522301760657187684278635222215213341860209900746125798604570169722566199226524120285418612606542759093214866332121585974517388497060216351706006181890082938980080877006455737288494900774669517810865423265440847048519048734111569677309462279311927580733384061509928732940678771554277471742453409032080828649057005274519114020179615939280382486367166360410912767397112958800822221274555769039669906267311937083170209700126143223124167255338677352714490460095857542998588469486885195509799307659107599181616783828525660354279163940980450558522432497056638894511775363353370950171732230828960304955643128166937260359312691637354950808575194256790870063778981543151717488118129008585746264837447336067587931931237021167839678435963213389393994373696702845271714791480698868380244787547677771793094204321773809917198196918079945374374380003481778359636954107995586709393652960813452769669802236772997999498166986101094423964044255975052504551159363666965340649921722053712876412225395096034282159720962679310678353848166457382404917230191815971509902497059759317765067804149186246211128010818598237895822339577793026711149162373041280185856181976771192310952876372397515020721614292229991607694114536179223246248683599946113908521508895190465334791678130446004055401766005244695030103437090580617003380627236293883772449700810773144395730235814503202103144811422941197961853216768381388161763963658689015999009353924212797538461607922846075770837977723226767704976646785422052889273705664610341041514382679749334288202485003320703087707322895129535158939428466351540112050024878809611999622304180436503051698896662188288447196637392462822957994279469051478872821684390227660479022567553387783218873527984894924167236779661126742965667382802864705317399092100064255534914852923881738696398746080365697898662416022536782672577245173686005813794035859936780960223581138168892711782826421780971963325406937044494644095935771636104500715424323616958533605859004438151132732287269955013061063802683024584262659040960681511300471223392463473456436481495928184122251594375763160064803641694684557042598833207219280839319221423864630720076473606423208471598318713111280536588379373698213461128290806600394383072199546956640277705122065158735518693341088165160387083061652031822492040851277074248516040172830303718613376912674360938966229728946432536880923140784137668681090402327554502190568090417371045941398479170982704959353083590000351674741004225734990937986277739802701108019941513495535182809008382886184807498090199410427409347455792542785833500294613063860323978342924977861814125166952657478261043759237611117842172662034355821736348198820079762489526307701626840225621882562669428258671629184754296643590080911991206628812667392446060980335969520744789952649071350233888026398662890331446832101821283057498834090860899241588642901787905892144792325525487616047507932400754468228939869828593312951204292974448489736504153685816840951324095736074900764624747194797601114061296124547630689125367671983556204678072095827220006589763198089141568123451058193933324081838043350262206959694172447891555639234769224930337421159276850678903891182143998413480479274362361765738034760246483571538403512218004011131130176813251945901754083073373476876981737062428918079747779564682680633170144422239217264314341325506007505153441916439088630417756459779688294630602435686088651786066060000481216130058618499420019324923712929312363482636821489098690862359882786260738737762400552659293983250721862062201134099411012824344748174443068465401184068958093453160050018988777785100401246251435921548652278486427477635675881744465053729672236156895584735620867353624763744108398182813208300543035247313038352780232874857621115816715368791906889551310048749088997727837301216655828636103569194542884196502447729404938457876867233203163303713940418653255167818304673802609325164184546838173872508663918674297820000337944491869205646504172142567785853083734414628862761983186433007838170922684900508339465607996789728303611011817570110022758244771360747460914425053061487779093675438818992768671101843037587032428863954445666014324532371230441895685461515121259133745684786947545300650883624383789816216057504490397837666961653972328486791014441190179301174539047186645294021726414516236583014873345752351295039427632371669046862823142007564438577697953864925148172174317953650228570868070037216568436565727765592952422430735636045007590852913314250677938122782390924634958676656166846732211382558050960196079874412478826602669309584004776175711194159240322846239204469289173905994062150839743223621849803199068276946149990376519969746141432495168075898596467694798178065364322600322460633416006784080511421151458599585949149049877438095481953614004304311471260365767171950898285592793116492071732414701805668512576093063854216381480857035968211364715207687398939654868444662603941518511376765222712903630429766151605207781691163414668796313288430428489309153221664438689136501022249580795493389733255512265508929263017390461451029062125339095715134951273069322931645964940203682790767455619167252370416513944804171500284763880199376236203409816308624058599044793315816628568916324757478404488637712993576672999079105344502029644584513684902181638898922146095858774758063870020424437368599402755978084463671370074846016734073464002869416536427630028908427747628459903132882594845280069857574709407809764111113123017081734148361900257190460906390286222500858124669757048073071944750595144740527420701228789370577145834755603654757519725882857647684612888543571686324043061315196644598851983293827358062508443574655789037387734043658078150204252345590042637003079771951808239048893213714858673933170261238845881512906512649354511606637023604984199711618369095156469262774154491217114090068008258887300353609306783956385102049905509865667137503585394634452971924654142604362497073593721092130439004368763748638565101495928761881564218021590088912228333184706390852584643136322820713503253043727387999632977709426348235729539949635964909592500733707694009116669133976086776483368118786289997833092620234146775545125396277745741134981289137031612710956311984468155731227794316892365941115493295481094833213316535430743734272861782362211255929707836374760389527935777986051681075516829130474180128265737468978896210292231241797746801816187883965073163762491377711449267692270672342410490809825915368486619889338920699061862936961915017386280426432554027507148640115071266103280145089115866574763769467017481355578295353576769828276130866375327125220081109609654700619015598818851310100292400866047003542223325062473270577295367854307573370556934185823077272451506542117153081141196835650193755498184397192058057072575354860656413571354638079476635852045847468679498143253510024817000334102299045977589925709204302561294794688506022676353287637268901320634696925471696769630195494565856144933374211003081110617594184339530544756211537809005737213986580082474235626899975168253347323610137641370314546284381482651262692440064844056116880836192375439020504449658066597524357849327147767639120017100003931683150494498068836374553121736334951192056451321671022570793246458613034027747632553696929402641727616275077034969323572738444230590860098875134290687468209771893616265696675128615607296424764564273408104944657839095717094984025642083744326323686986530190764831209423937979660055034686763305164151463513569722809162844235353680877965094187873282273965450120402398631803751428155084106718502646410068842911302963260732819968046548588958004398027989856347576115414812645618038639400918386035921653610141729518365827131919950986268393960261291055691443200781210916534147978071430434083060531042368024693239393164967759435693248100222215166985876331436305030893155068741885992872658755063720760030714017919145942153792342597249995024706135929935328611247102092150134290969679562402055871923005659075699661016028528502960629139315210409494981094379986105389377535667932717075711463233508190875562076505309419490444314295934832139246468896358817368515229460315400298326768760165717189620289964389840027990324419727243924321171411221885226286966510194764448241114460801477800551090250051530007183030024391696918919094059275144532075726345932073916436362912554093271431545801243312578813355754130197492794655126024648488274457719623766162970996591449783806048952151171456330681088042144967193118001957768897524584433127060924652775835219045257601861706301838551781468633181896359404146474417958773997129699170359602580633508900437044753750474925669672960577123583161229529134260334979630033575436767287587221300883262554337854160030349184367842828272348513413132041281756646179847657086969274744062808404767719228769979582217675989979308163043342277014512391323886588903650821092431930283973322994885673621201637033709791410684796094333193146639982347968833032410462753895379077784389990903997454090033882828892589352544675245244944207993501993938372946087356936738581869113859764395829689604018340555749835666184967155936230567505322671453303631809254556570220544636826965147703597169189670050280772081064936184994784085693016529135591834469711765448579008224388418887286211641577935093326023162105749856403344313056132706780706050315591316005702313486414904785518346065675644111222668601382904288308751116392152484812004159738895973592758745021719111562073646847165807435867078405376954386991319135410805387444224633496760537560725733552170009404441794266382062193296518310957818863921460667652745062280569839281468167945577497451297564324441328955569462397436380505744745338351244172178053979208986353102190892503333093260552799951015173459793331101681742309347042706238057741855680750179274307810845625643022905012521562463041310530518189340519400863805257442492344631775640088216250869494534386946097595380114203676280577578505031052328291118351120434703810126449997141766092826819340474899931250564364270789610604439884682330056395047169053867907502752958830097789083433415864645642300429466057750844194513673126806032253929802627829410764819586237407020380560023930345098778283409952788992231652188750950954811542324344286657025983120029028069984552040966032976265849987277186728928836475444762195352836765866580926279962273005723129936739843948544566895482939024105238066227771184932833238860468669296069949462407447782463897102115000080833831193255238955966782886409629377483968069309823876915897938625064071894227747291807419689581466842297209686698076395978228439110706821066709017773614463247859333638082277418745111241435764323949043751413016512770958659281010123296092172228712152529148133355931384546254021937947240822414193860382822964024383119338690837156426795263776978775973741457918666412620198312793168526916312685922910560286273012857389791573512613523170681924829950693611730800643467951791331711307764584425845645534786497251932001616542237800856572199877148138026748058375885229608408941822432733488544288929599173590395604442183556870366064554803016940509340635222062620129936525194316943495868834547412816780915845288999477889827382752529366092093386347144076658528829984573531987641869974241175655806821279349099806706297628965957587440783639359624554544345667901153637015471135205247772235525631582358098871812216638556552385116603943980140891309701037586725294927905696440340442604368394836908136663018128269253010895167191370261268994046145550711965723303952373926411568259629285092584382089281108774924876614084441231144544160267741482171972997740134633714831677497001861405028402689837991386701740499207399482608742312253571462647578322680085099476389301681929303470130730985712324049280071558755439559890320446743683376320204072011901622957111738908072504013607891116069531852328951175327664804128064470206450772638519018840101883999428788328645980905703841282122271363408206293943604878622774775577024853924723911040632773931712023325590336671914286711517771110624581240256019594028340509764299837293415649747435926293437173893072372619022945159374134132883609401605947159879052774745060480452280065500148018737232145791289826445784878042331002810355640857026782644629307880422266006392515423354936910555287000676691244337644108047668683335165481456180775625761011537806797259984519450201242602784989757748779678983253675509710661951795839223972742793731407512055725763668371091579591728346850917096237385062701981453710632752061263185580473440734565146108490454512230590113123722592739711970531552824134999709657029013534257456013290654776581274475798151243922079527106068863592114831101425212573820110220691033602974327421773695451118749588628914813697909657130806282941932804507385503523234651914543082056454796599398038838282802590881629372865228900027663893624913392673534719007852064651042367841505185394098326819741388772465254713309923810970730871221188947180495313652018948885199348996722971408882699728068580671484695958459683490383879828944127927502014400137553249430062181762922323048869919945296008001502008692939498431116302083240581971243231351216025471172526223311699555046155782229502371444447454674025759744828629334290388529541724203395260983882108409048342272382813464768565301307441325764906954076196757161111198609395901669741111256831514788729964824496916937863561712476400183835737083010651564473449477797277167978994951123581782949152673934793565867884171094733420589413261714412631332946557391912034230516837535562361855428292715762063010104440908207803665833755387669470065378111694767656278611486379139890262843517888373837408854246849938811018065059169083485366449772568122816477966389102838305989688848090064169703259284712180280840095683889758828517785695897594477280141750075153878012656705268164907941489729421832325484035908380970979764882264944735465488273276443909766111388511173571893688493696001071007520522856037826322845820771370767275758663084281447567317832485425856054310372513845393771396144385140440979099338129482246762346892521788256095799344354996134275119955121350041141135464963675881699320572987291836837094872599721812820312065919257413842561692994148910016606585136647036199073683403922834000476389986877917514650438814356261776827544084630595134043295113888567647699406172783418533311213876697889200102552527437380526592239113500748075356837909016748721989981475009705066692507623396853050243253367238376302357288991104882007248501582173465352279354152917806017779540362111849558006267194159661052972304726176910739663554986843509227685114961273139882947679883553262196872079221912611986484736592001611329941075763902876358939376300474206640345949672710873306896952331553504572764101236464107091857186342610616088078469867201714353984670706960691231681267006930216801309650323366608735097442140554248674887820828933781110987452362593852461543364999453575321877330524977253337977637783897014993147439416092962424151779417184869175621572359471333040421918157579106889348181455201551739507954835107099556296261819152143700873039631949286043268292498157322480717288372339111693468780336151518477073858092792324801609977106690409499076303786553072910104762696807655756917977829328451997444137954617261204883183600592206165781237695319161884615750921543829653639634411453579545142637505282927941467542000979587910381562979922244537350359288920774265626843176646147807292996234314178533568417652378895116823477164927049221455478885521030448950492270231227684913749945698688539630376989577130947872961440023365116548653071105144607423421607022032966680589779552778180967217138973668125842765778158728809111102757163477858268817733350333988834377816203992084595423985925324974069035315826086332940481198252074923178035088330006551435118060486115203812177564167130564975277174877665116038549947475243238259801834602451191998850104921441986844239256249015549789975917661883067699861999128923267186816961019798916795913722115433054865664931436389168644736620346460042114707487112425555873438749860928609387287258989201328936678593806623057205936956436852280501105146709591055092040042625210500819013737172220711282434226248413584016683352233660933165864897997935088237594605896159543478139471143140086031019169507650163449606654056329175101885206648639383687337532552147114420595434209644116987966769503578138607707797667076143433720810773805699134598571969781393344355725494083548748221371327230164711833943917159679212214783443858068690804550093072716751314633884853925092661298071983108708861847459981037565332659771996166732554014968539311580923665528631544478060687466583489930238428774331659453687666784831305965921640080596039639820831191524430796317945202788907132539844304843953411735945623025025614823624828810701014248304337052487074786055374425192310310709124070838539561135081190252651645036366258737989271008541667669686434195224079655402511044690683414604774602107449079557595336599324056194244647428127202601500093848514805224415378361464905745566026402275272651436266450102651676420823023917611388051556811963314338050477916480401234505802178536191819915108924142665967541184034747213099880875522177878245703149057497719340478383745062317604817396769963096544331010541858819604612136260108937452034037719040945907088268307237529245151577718983902190853260199566983353160691432920102022587713809817408465231944446685583336374862271461618221780688163850738112704693240542705034345094292489649071379714746896425853982883337046862996010386437588610448665817023886838894321744104704070229472766890639984076251903875643932404075577620043912142002348448840799216266787734034657801835752979941160828928727390274433177085059350435228595823010707617891902515668984273233619497689656175324595398128509278660264583006674821415918895010250184429498759866050118557772546558699613198230910691626535525531369961443349679386664716284108501077015094761673377474262147599751589433345910794497463508494805095419778808622373882582967808819521307712993594081538417378763665030885620355433620962424679252617398471553419491802680734609534067127204654071002722377373239407052702992109414445204865728004348372662167984027004791139404488351135826370506473220068310236965832011659102148168377849708327951925442815750131477891300567971419047697661186716903274730471182138315992588016849477101990356785030221314207200578981691536495040980482862301842075527271561577642096688107269934782104518588153676323205911175261784096671459269402436733300780129655865504069277374902881567476213509560127594059400350268436252375104238093135813628538582929409263046399619587837956378746864616211232069372901930203802408535052761102951195231133171268876386269251338449985869089701736496428965685926052001623211501850258173582946000681584300405772893990711293231125107969972569322611368068267936057743191953023870877910025822771341762510150073398473799011508710866510109927911848114636637285329738161935814138384673139532594245399168837040964339219424223121376896202845128066753020325401512412351250832830073034207313773918038311833885029986207119321748561690594257215190543332927148910809338863394185866848283145817946792973268550349765055447627943132807171404762881314412402981168034251407676144677283590098167156357855561580090110920449898223562354270525244243408123113799584222375727214608079690968170739248402522101545567581458672537106922348492980952659178050335188732289231537654420140996975510074823949053510517180773025779653167019816544979908499679449943745680861329626138975753729974403621680745949966929381998831912006717624070029043554455271001877803511020015749961062317953470085341304736860704131038690859776473289445529576743812073986091184653963879816018462576189295833240010976275950962150905291779405869473400104752406859293744280039812295140176422681778489527411443889736011549009842936724511281074057566000114980024659498121520035000518414385833703908771408725035234425485315201165009797059937623696332003437376210095361566759320263522265703090186870076596137721400586552887044265167071923870837656338776331608306410730507596289497338458570923700747503102194393408080238930386725913242944044140754033643357302981536207469803959762933399317138800120831759202247642258807266166961727507196276725612780887891003973338734208644835563850423979624332854919820020389650555543024989391837042886093051583574028756913392228223365791627457564290801282909341563348924012937160330914384164281865798680936810142348651568860109652321108972017859584183419526605276048376692293691319120546447805336772950953953191984952116293729056598678475492417136286052137752960177686322911214354050431864051882732888635836135076498556890701348383974524462270408837478918810112723956862274566222862314789868070588601976630579642392146364655285784986040686958486957533887914400899504773220797665586955577293874883975478304187096687676448130781433519449519391483221213956093159791457903864016396570246813095339647734154864137182298186049175060733294834907958888551809017058817055140941234728002485963513601408968271283424158866709583683360848028579904076020670917655364626012617575362563842704957986546828679200070547715695860994230074195160601214656413821905438142291965123774898294360567746782640493538923181336153409119496733390551820024063587639322591583729656194133674440917577597973472340601689985401621917887943306673345657389178303397075454479683351090969599404276883402849625637274676965705479023888700386165776357872733002099304102928263291582799292189520166547127179778629494672162561396092065133992111351487567859776041281740059849315633572014495300605771226577806581117002242755395046404568340960139561490925830832114816673606640938420970047053022281429961821422499597565185523578487869337259497796630362807688816484147599702840160986190518040350639026330932461361057027324267723407782095739907873657881695016340079820281975613598687548119848965060123552343803281311167740848833082795042608668492210584340829488393065275272103158396593572435604859794550455576636673997380957560727895111130923181362985296010349454778452269163839490307086803096211242185416813821075795968608065052070759290985107914909461300026456518675084066626912019883170145104149654938338977280846263425037646411412438475998500508887794051891741366436304348442946683214333988655032592454516883925561324324348690887848181293638776792261018111762872478616942714529378548135149434374266119499935818765092802392341444813682697662150220312592388842901414473223794229954034511658736147872605540214985835082360278548655751517474860485713079749752246027995574629543653128405506177172343651854394239992586225505071465632836792532972547018187782825371485911009667087361610820119709901874984160671558050056055894244537628579620946259805235387660784258198245588492304510713748388889265826318782124789316006352848629878718261083695015430184461970467796236944137129833610486930190223589571458435360206280812855357593544263899248914810836259961803483612693079634162441760648446999485419734225805256213290928826251483323543525337079063706409086838060142942311346907616516429796114734484268770219676665998257187043244618283719076963975770877781611128522296848584834679382086601803638146542617802377541823442415642020425802859659780795050721713484265145249796605004690352516640684374923260931548380174302172126497308252241237916948976009681990985035230631220587658900201963320694107925074887532813731821187805687432464363172138982094312810930533820966120929192494166845147392554544101986939972688119694200548083590746503194524758153480338382753884324502140666053548890901092080410496703880007684862913321353416067811761332994664175522639002197844272610434892123819998096189284827701549280354032951235616938865402995402909818964305179433887935250904862948252164442091080617117677638938748011193378714878561026552441733987113382400935807001145850137526196594927352521189833048609248064260290650157431916965719409292259243588919791730095263540137748068782066759922095327988766591447578059330418044542409446848178106739149684431617254354794411966135142317562060246542065556053456314444107798127542832688186263603864728344930774954531935958325875177844941072106404780628308985410981712564802087533231135960012960824140938635226628316424704476719946839381054306291085000219812523591223063468676959353426257455961128731168400314912597141576030858976439644671384618500189470370850654134792260032306003431150643181051398371024156331982975118471709256529336543198697536594955589943265020708891276710804975766785530497026203767049155907710957138268069321218363164081618875292517629007234969139479327365203238967318837670681194026812022037001385440539922708918133787700004514804512641859431026207418219358699511397417734856824347082187677846552759386564079277319537030813591289722207307575662128364498901105266997666758778837300770697769648037725480342308758368320773579559531293136523317231194965618531665821672948069729892113880791381238350085972179222632348272291798745808781629147193885360859224515088404488527639505835032726003903768227483968854623535668929009764932454863828987162819481866314535665155160929247544285702792717954935246757808540825552074379324643501731263714720466755949322466058348656093993529273072018553291740369666243355948333225181569270220248804588270004444883351308467013065356585930532388424213409666764365974003005477608613940250294090355682250997537777609819291541667487591413869028221024377938598035583373026469034196836248759650534485647996350673589842127272423132753181788108733710500729857551957744241422805140060353753992964514331963329172041442450985120088200793354535028329875344788477371577619227232134234092046748597527692185124100268286601064657795151386280019269241530828072260169172693308246721873066765230290847113296960999255761601558962790698119091197440207151570501365186449552488041624032835851074063222849618832122082192612033611894966956050149787257945557911707229406554723269141384611294976395754950601779799883975731269179092496901102612461070664168729819698402089276995233887997749449423692566978716894303366513159433926818409167954187406206779075838229913403004190577530518799876138851060295114858910225553721074235347286597594854110242725864024813604427642014079188168967183665485406795274172659417615420690012039058366078804500363858547703219698733912229033595692755445545628874647570322614052371548175541032625405085749337049636410963799536153723891493811495115779180145322256000632827730534397104297969113553610833145339614279978391202544080832535588828586366265500969130627320527862061813753678694059642936519918467384816114938366951841992276283483902186591539080961028081282849729041899481917346505997206395262763575533708452890270530707754304327749515999997922522432171633839300045977895278837634883975796572105679397214856020372704914635928684273682342451545772130117105480040297432696820918697716616112373444922129943971362438592351207226259454422542658306769461052019047866148294183147989606627934061739594333721520923027473903230492345464812810742681158111617472117448467802693140710971220704781507538005189371831053641409583267158793229083295385171187749823811510466857733543817007662637097247625670041875750816183776534795415302142219250486988103244416131260283780294584272931094952370782170652732148253222323179925379253224332108678278661216208681940872234362086817467881607422429831435828771262661967250772840726734681450661581902311468118822573781258652822102431628555510146871329213773366250711883053326640964842215476840138987499068228143003479695632684890732476875782104459735042257262125752889535366952953822612761578401318860265206851615920035402168117018724079383299176199865217754098573888126777090700088406222751704902542379393624843219582908788767237309881151168221780573567889788299337540773226583657681637593813129741055188117045836361725362016941297830523651062041396863084423536664104803958758521120300048650394120295554539117219883397176197266045204582099713706458399135395218612002563836688935246285250101564041755623122303787653494315502888822384749885800591977782724587349017037588115896339528102616559871432216137759565866538290715037861676573305638509438365744108719822106639955920830474827983838164132533710064562532592929290401985500322520274228629532176593024572286228122828704817433422083251402197583972445812619329904313260641886852588131352811931010289771593435457111185149235392719116359845366276667862995957093691898744402484539065235603049713767033742681774978559300759006534714072123642622555785824009974002229359339877617598621078798175715918891940043346743909646772888850586830267835657190981000223365161129801777876714147873330683779618231487977974394045768321183947810217887978621380105576082611794377555854298330229065295360136431585443773540745017115331620742751831601991027069618519461796568469549423466806115335135754522004770809534496682027902581949923108382755572669973370411483182424194081868134307749698255497893964313194027581892638860872009869311805773331947885945093984121937478294509855101744939279726366914482651326948714960245118306307750863511127600422510524142106829887054994497411332733461371086753221644185894794231524245374699372152518904134154593856066257812482931569223428551099607173724099999071958661076056444830211227013798899824875736368272812768383603761106362761932302035330777975999451977597073980510065090533627505811046362803800291984421562681566681692416862246740464570259044310864987292267283791970677326494290128008938076152629790464064193425377783174681503587558399726408555311392645810429614461549951524372904641394894963528427876442750730339759965918213329072050445203614440648342156492842412196331785581425348615330568536417385630629484395917948576662659638349078054531000229976082766384271392448559004681408578623939015897893381540291546770040184165703053672284562970691573222544108323090059312136810238383301538284092134132087093424007190336596366998957682869134731696433154407889131645744229204656385238480792796256234600343999843958179026956131756368359767856011783998825345754497979181789561257564837953743137778198549443192159034289920977845193842519573597843009884555085341296708695171482976317264017234609097755990543728503791440695573016276808177935611763682625306786072478849938292451379880872274728871966812848209879483569069077367017654020693718851251564990054004922674233722547730072161237842506119224590932843634754416812443325751591631767266046529572893002874633976737910591727331983860632920765410704919160142957362081246395898382547887369471912120083110914348381175142974274576628709192104807694400238154117208234472348154479100776630858470678684347141104077829714334045270722907291427572039842254275863092615899867525348158057708886779350461348349932405684048628598193437382321080617636891641865258046094443828718956235061167777793687691400981239012780683423330768169374998008748662639235463601242045773431526528278329147017702396677543264385265601725612785093726378465074343877244453119018882455703419590009272824757696479431425004619686297417287237008173890684776552994729852338172472661563139069681445612097168388857637218897311366951659153231836199762333210827524882969126945125888844404472813397384296966502057356492151622680969276580001808440332634337765689594163972435015944948760296995657350966461002029346903447026974224683000688705228513429028308170589012922669585594416174022209198347347459671607514381062134928280505453387460031094584771780299298084366340650198311876267502391086114955041745671807708414866502843697268132082534436473856942431122221597459210450590809163648273711359270065921542972402196903341840163004246764916330064471116339703048158124752422647010882808981024518781455947986800196822685560011071839960656302180616238009389829718499983361901089794826870149773904900569906427594434998335334129484095860142610754460502239796109948958189726572829398066094678151936023495846347851459377543418465279196237808179766819054539495917714299376463829303563771519091113874639504722339848080934141983294119802954017949288390034222428821870930812824065164219469993479551362954175027830352658842919011181338703868543086043038028091265646262218315507942394157214602600021358984510774250411578475568480136580662437777008054462351388212415201477415928580650121884487360165959829738368771321706635032780075289823591100898161952030126013972312792667288975617994105878300310323753569583271796421872059764398210434273511767337775849484263321699612377929523472910269585552977518096366485561932916954859848459541517511584912453459261204916936990517115335115333391347727019768530138853524954700822431535508075716987449056019882694678614344595056921285064498553047738115058145392097106555670250333061799607445072200095547697071538235035923850887010659950872437467495280748411174217864356312704909586834940278554171777252071142620239719763276243866164869868163137950508115186213961606024470313795981722032005492299828826902010572187531163064775848479868673013020999588209709946957036664215778352552702982495852979869199078654360340038157184040308116666693597105906515286027027091282585447444439888881876355633933224019448295662325818797378591001572357317435441673754099899345248558308018302150156594149032706555594952876560243485937377537273132856803012618086637068250753355095690013842049836784336945674647433831512029237935810832897239908253651673946046477106286125612822506195593226447018950411370440403866562914334526114233761724838182840327693215025751619951598941953746681248282899478118539342173418734813100511766253332362688305723065132849938335838634668981940212162352287161030257906925061590029401599768334553557935900916456739245911577884414778293601101235091746185870388388193524090226418338226996646684440434405373893452566267407756989728460512274811187801591571793035807749409469544724356543894784427779012328928261215460298987417039369560792033730948739225858944610690871531806764304733546587268844723846269033576291816564926141517111777646170601472758116639938563232710729028780812097651233261689602760003687190697782918488709082662162411872740531783926012650862105890488481902150256522978734378519705103769058878351394594926445269503873073834802185090605704969333372638495476861605783437100016804872040967639493032243099397556930050369067955511774660988091410166824813438445893388851073607536715855477395319207206284049430170000832547988739289760126227895462632053813946764080723847009810423531880825936042082239915479593755345018288899494331751835144520699118134585183211844507584468736213086845679870134712855290809935029892110364085976656144630991372050523410103106263552766968354216412074904470509814956440818438445605794960796449980952486735106416424811844411298745765021767737430020633671054226385516631873106725314801417434880736587746890573365173674034835321954834618535255770829270745025662646668973647509473839464875054759445399145504491006734041776152172545407212057992253362079313742576288872220575017296235857672843440839288236961438130096599151358409316757942608640965525841245104177955210508577446180590916457174528129426515443600847436534822240646770606627539361591944160416285460425952516589611119757401182684016065490777044855061252860905813450414039660737186370765866754378993361622328532043516922765909698208986631699769529189029978339024755266429608140338693465532955137406458087647147886604854990809064574054814018461150408509060872734702793175294108151249573822887216624289767616522280326770594434994321828415641217011991920486574914153327030615847488582829084999613424100949610671329083140540713306383637924391482972206146125068822142612017182802832833714744720047919370299965414711660204074558771936401842020820335691427837089651962477689927494542794488598365457384581997057399100534404065716219954122236199982277328294459654290940032838114879712455854174404457580588976144502473249430938353233140650525868356601842649036185100609623873079908669243501919213634926828925928224919840627721976646849206403693928146170895786980857461624396040606501045826938929117611634360282246706662319362983850497559289456956248803444411763742672777826964103405037150969753469647268669199178148457367879250904121582921227528530670434051630574918869798425506710556435382174341721129200164722778676612214800271815068136640961921485337711947837540260223088151813647223028387366779379719488013081360113743375202038026518995682621649151682119626497493658892583215532362189173019619152497210971547596112545648855978424826935103271328406800516708804981085916418223415720704443298701292173475161584913615582773219531981690656767326292112827307950235066511674634184271949774400462343983832410839685687343458989819335311664813722639630847075785526593433608016679086512552240941968762625617162308947742450504502604823267773346183988603442340724270608293168434084954057161419477069795045085232943495777539845154108635295662502007511910311217012362523093359240509695636602109866197525583875882685889157408900487991877652869550363462505122373757121748473163665259305977010166271483943460802621378772004997818949034833986300792643364407589844260483997671615387278844204668605543769883989774523481895099960531799552001471109921048855514645296069650539847112407920231939987814127865286526466750137033638562078689756908788936973533703677318570103853291551432477923686485389341500799558649630036778528948542859442991021253299623633529127967187961098113495077840696849847416777649430084664547746107238207379066197639854917264852753886859137546178835059023321163477504257686393231351972282557954858213653897103781107333742763629134193922829150410078355396164916822706524128717395948708703006716260557824773778381735763709160186867204967256796017769362461942523874170742339259262693777937536523633899351156250526245902036605801394870971200084490864392649634720917063990133871354518323654211731432995553747561507233948354546677356547323546336167667486333486006769975752744121209815614002909151276491251315181751777286904830521395761399226899423099635335515510425806711114026607957388277457613550276895591548511219619352659162040543243108355801877496290047049928724010136016656137430258335678363786648813422857251595888446187315614709467731382571935613134886114866811299193433450735326650966038365237988254319448014957427734783204485085753326107221477496638752504205778598013997088125004786453522056529716126816009593817601461617112547112735745161818591024785747625652670520942574166531186032197688073493578367667107526128408059931312463770599911058910510771701037297820199913936460024586869677121369632905578155188436597706697583226205436086176019738767718251418314542804923699673893940133053113012643568260538269745998323113443977251266820214458970909127263121377706972736815183904239991601466597896508388281766776398889626305645819850960734344939639153818048592654255376781678753741716578996349872271187339915294912744571899989607426371348951036464601866703171083879915627825713309930637116600087273792695948556297497839514091148737784416311483765838661797794354857346697238421260609113130295784464903154671566500464891246233127633792728378820800054917288308720428746203715246015549700738645783599531598910210190766957554423204511047211188372860727453376263772278201614781307801659342678083134882213656128194937428402473668755911231617633032255180262789271421948511769141848771833488230719819963134074878704433995245652954639745111436315338354186411194221786978957414501481587362360427627333179269926918028282766361838732186041392941722517008355865947353188832402570863798444695620771077758691884515084013484800482427327461724205599331565622994791980016016429810531552405488223333957477796979024551649748815396348468172048542197781112871329303879168868922596181153792071746714750702416204437386484499456362365580363756478428487473419258942576917296386589852269277906047642943771731699726104802137486284160423161631145074983278015607260888099892113516770060530205799717696215413466829583173525036204471492028636715238022216129113341274166339656404970545116904645102541724823834611221181478188425156639076103859380845141908139197870885643480734316453778432865035438632581322627993727734726857685271923207770900897386441396974405557310462465177204513770660435496931519443942969717966600346082839008618830833473777611684830905011929958621017619786295599790988500866763887374218609032938480465576965922482616196449199428164928081676649826752073949370253563707420706281173984423798412958114438099240788850593101161121523145894971881628175195317433899817745867848351633407135109144667033499079436126515375608639624789509393955077424067442843317294377052376911887473879363870078192828769121784268730091964766530442383394940784896329739890524292978970474859617446830460840201670181003076885673875900030869234937540720864829179503940143832485123196399156097900309325219799416202924009704699715500108290288698377292267280462191667026026596087244506483750758301010959896053559416981780178576224764678680749977232668189186510440801884192712976467546210373354341387229001798468978130867772749637575521358506851885286307878242966265576703856752280700266079150574081879986960220707055436001336608294621186630864955538782022415741223413440361867391997237364180889945455506423505071960839561317622615864947986408823133650525748854660540866981143742263203823782852914141217378718601712790186902153436507214631038714821738138845555617985633805030065482857840060777468885777376071098585913782319602880577823083676350931612074131602122929909336413587009788687306977627939954435202496236895986137576168075491947731603653394015784457787454754501731769468383770809782085803069963435084583134479958883641688362941185750999034934643145098578042229916606850265575621908030961041638351159961349999058246309704325276050615202834128432879507542513169016477458820697144012506334057636791990226169275365814512822397912853477680663788843760371943976765022553236703361128949987730186992996695121999421955857708910678504837268163594232025050645056164013221812000162467944786182395559036662447061467970789918278817935777874446861432395035649443309423483948525234836266847335719757439953699901129750918006861543791011659485216522009620509381935612965504473407226234767463109487914297622734048590729269298372261394351490834071365522266047512989850523382863046049031804317526900981261752203605018096580176262640457405153746181874721309829272214001783712321725286821652695835599896669808826647849066241968376684531534428583153516118259297913617583488241253845449155131987213416630707722767618155975085473680275607664058319026189359978062562235849464692587181569243189011360813151965564538268257507681049559061551608436761051029111017991177547775111849244991330113476992513878896895265690209804348872182869535337363350966638970745112106733087172747247720725541337318421045689321320713398728738342366547784876388348207010224294325612657431975146911609022844940686797059498771423647292230241317814158334466038925923166565189374300378002444629112784435683390072699705990778624527184090846657752075544228106422310980645371149398088534307576903091487822851280765691679660973620879290718693565547154660876296885237272768500132290350538300486691031102497451241768498728926942043785715988439443993353010181424151272482947654805085056576233334991740768292834570153308689170762148659301233502719082770638370433628844151372490860713949049023067988216186027755803602406432915710522464849238189935298910538569838817405351719966017562924515053017135180993022747353763857612741668412851637706898369960768557478797334528649468285642319868036165425425332698668013456030003912109390796642811370892792372956861669510500224916762836538422114793981659470786048358049075618000979824943505627588742071050380588856653807668613188450471883379556561883628954740878544197922037745972858536289059453780801225415545758966112062290719389998893196735808046543411759106870956625221622342625821732795268646223170282527215791057441524578258787754709513692566306739343128883393744438162309056651288330120794544392872828107287510018883609995452953587843156705977320663036098938444915702802545235367791471031148362628747205777592795299794397714689432696736240885874700715010445883662406400474066595107357588222145039034419553921197011936063207352446083728144988945414611614333190076247927687693541028953954334820041967448189073107546625794328889602601156951544141235113451015676268422657168528079128530711818797961366449242834891308985722525439518766711759813516350377570428997813860758668216180027611794313139768991202019863748473519294113178763557500186568319572644517538234361817678424903696407262240537816413699319684057894258464353491091315393847234302617698751850725394465025587843080323140424210085938535639839837898612906230999288353878179107742017518680109468107427856949710455600597547358315907896406966315685622095356316562632773655169905772631186797249050246395085845499689413450645792204784115716765475292989898204511656793330283883474127929633685566930243841352983937260893483597719292239444905593718082229659832872836447399953442444176588679164444886254141187583492705688933352567413204662539102177308832285622943969194790632361455163459387053549388254465330097289343098110099121790051589863620769196188336492258746930431896209526094984174905117721757573036492809673130870079700033671585227008955461263169018275004548306544896876856583497982168096155188843349063989322361122482956197609368259465588386333061717611024112290846340457219289359893363235834491495372144244645514204347306844300511730199050369385613341405364485702637051740315500799414102377021723719326132142530514979702628067847830383818197259541791040335579689525506706294270250112920876821045883885533293101466225940150750586612601073175609934963777004913123645117621305480900326347783341340433497775150722278009886311164809826129878006932517388180687603567303641550129268892946888539996286791837109828746282294470370877319300191359706441256514521897391386174386129991328825249667349521594924707353346370523915034124688647405115156213303031822577267329030347438533502851937912797255526924953535686021394156176040651643503241621052790688202907389832838628466729474645734592722861383625641596911648699029473348220584392090883953662336824817886940699893637244926055076691377709137134907110031302945898260201200617645381536944963993266139022444423188728983425089136464097659609260354684074385329028161720225635488755248240650209473451239704187925698811427456492310258093607925862011280296671321252511046746052477558921205613831996961768837642572878349641049288653571688819243388191881660613966040275263682092489637675909886806275497534327627777927323289592293620029862380024988129635287827800556098938964019991566156619787692309967866464897224283324927157674897451230849067489279120468279566108103767041300988347821192429583661762905057857811514515164790902804230660373177285162625895524516635873126874031252276965381014367068000693006256495998578014321821955195782280416210894430163572151352290013462522950775997493594726428233399470709789590431337388807137242944947229595631324317990057140389346208134306230202048133437056071025689544145608169092890387716382970325768507019918779189601896408191394882922521738715918666170554743148796163191222892492755446985459594146094724284707941814814156176684513529293407237516774583829940745711444201481872359784497525284791293011147867144358186124121658579073112398742384896527247022359871529241778372003270714121300146138856652045699939897615741338040356864792148833223263000089814284643766739260131807177552677069282031785696188092986234802622611858434336647266180138802996178665196242192311970535217531291654698280698757677667096589821017437139543695270109073701149329704360536412650084850300617138622626398984237819140643531862408060547927945371127440435234726688478442049808407401337988803384218487137873896150004839868440153189710409699238726300119115595801265581866272899494015385409392809546447839990412843337102493259182382732442006196934995700498675523629894570882978778726403383839434566372106283061922777747877303084191945601104602692244432244272807806862101989960448568285576386453544955058091890693337566485875746989239414358864266127992594616084965329372236312221637282797166663467771961191090787684460011245449260176241678648304231542232445994436027750586488217787983050978133029162717453963956575437752907534946449960247462885947139668667059756028621131556358636057946730849196541198145240356180102484340611980312543723257220766511839791054098253222545020904307810790316164936721970450215226445328227689792021693833342774285281984965294907507372684119538405700088199331659091835569982062007387030010663645593966470321049079709378454303266230446103213495638095804132317115791648337359394717595866724972829856801377037303965022161441259781718935618823643525616102751946180028514933529428571855721731376796928575531216017270496848072672862041489047796860908569408579578823604858690336440011546354864709075128380926253765318425149805647799929449448768188586018164337540773420195386941262386155409597945201636604950392904520469707661876614477335494061782867988920195592019072311628457428501433584078135850461560483385565757281698684167474167726141329827661734839567715307328059840365936898428624673893148241340717500259657643668958042410844305506094551492074776898909564139014914714759691754868742999213543951394699268112118198166573330987474682098714622706217747709991991997224696019743907083491178757232324270157716048579739768197925947861043101389929065696056153196684374499681981777130363350215841932617346765438546084483159081321491887639755570824629912383758725661498991761166459752653337892904274102431898439367681760129220890199477884912185795226083029795337040552064068893428013294432373470055646825183245525305010979769354223106531948633438167675078039113035486720287253819549490269586151441708422986846254782342668762934373934620921814394056474281054643533813844981175382586776883494848318722111702343261263702129792781004354318543099938394335112672022711617923974132560679250647656467516991317103194045245930196902617778702365651394813240792205894442521012087244224385351659152134071095752175469566690917935638178000735559750878991527216000716777109693549381479909476701889502656289621548549774769234352679051261876311233730621205370559707977263636178969443900340015107616637043450776882038012110606096215745605898271702587597423982260305097832435358537906917817658109061727822299288146500547206906378356298409583239443166633324870006538590397638076806277178555916351210404906843551335125926385654431026888706888434838442151277908754358578205118895210669144743398521311522947864260437756212405615823737890810461756953303834838499321681040577204149785907790202186770321142227664271127958524448087430266600345660211883479241267922563379855167288157864598882597854051547905822784616118410800926434695740974650331104850574393385106819931201109880352249855263384973028307798409635662920139451574008258295777024180295211548435590220674463042320231302993504225989287610670722859518818893810530857195230318075115978827043189865058053744079223212777308904670756497124670557215151289535136126591017841337522032548744662955152295735525567994862919169961022172544459997278952427998329105512456921806551441243011726699545116920988165294205185096516920738021298938701071173948028160340548799238923234086019010889188763782146609235002813489388450384179097743339773794446396418592123702572352290333489169752324709006829131759289413268383403915421107505967082345052522572747492624658582653476910653372420029272538297625551057166850015769668836296637706028154501099033022570390430211847122558755773080834380337285957440345727229360684183183084982317994963143364917863564808104160796143584042637032918241523753025806590341950661894221525126970764916052103069431991934317302145849841561942252666497487636746436526141231535442560946321646520010760766931564380719438798631229017158447082645518681368322940552158306169166005253661608311885949680185685103784974954665133041314658074084908068615259840622986122582987523652845987547971509280522135099747138664198040553752232334044072820442469137450626208098413849615574861759732898831524920438078641977580703224505291650641569508855326718455306128449441418567685589425291162891012555358188556656943640300415093114433664432816557376023853468159999829093681331909055052787640272435807844254113293871368718526145615204047704042182425012791971643962023583623605642160314672086131410207078447346825685593303932685748235403077918966010079496502284957014950031839871824524704439128366175818321435365970373648576834109448480692580100960456911946312072360297768003417995452041918627554197180742650731290015298717787287246567251926123625820122588485928031075266208205723215197753901237389575783232237717324478221661199869784683936882166935905030326472883840729583949684056062375146012207382718865562149060693222003113378314229300266976028609647457481135692611433402880006251509329301630878612120886032761139293339634186141200186354658380021633438514073463577140233627080847651988092414158951993791514564725385199968217057502545582668896147141196918551881959807806438684565240811212157322039909661408025856445905579074085107963757646872642363786015363468575863419312394231582005783556647728397373788181581418655278387958202972940644526241288360318186039068981496946678965532645214839535162661845423376969745206064927664536425628205856329707373275472490042550368266702636827461333311469182866317439714309734442315434500298490893733706505209470319313356604551727218306412386148060916100959083313296690773255119520787829538370408878485001517451104279293469971183897560781986055132619779266430068226841546155435679487744858540685480109419835116160502110469630742824582161825893255864019520254979347091180264886550464759906407021034094591099726737362473263388604874906460092126960066961424433472532519081773053974704946505080972434053336570463382704735431108023716707036332807026371475109265126224035849697644080482870162607917474300413665259295032090355253361558802914087215998720933332662482291870352586356582224012379856274656685916542064532028930807332212998487324228985106632618608404340380009554472072960522293599583570905724980272798072068448025285810267992433493456895569718539899554938062906037173013644414055485250873054596869674965925811062106367308148985659131104137703302919323689879780921624460026753535713938831956875745777397109250504688223777169317290340144522473608705452737949837002354761289918787024290531840425326600230260097715493010283399705550994549226595692983666805595151009324222725465523200596448863864217595381865092144802780622776486743931536248437377099114097700990821009592832287225038865962254664788992007725250369485993820433283207601364745162244892714676913383319766414325088808721949206692558512080053661589958846154832622880047890303606278050811395008918210796031287305505495007335148765589073701314326188289020248352206337452211535564253826897335258802339917397358600097600335260719128306632667571314891730395892973497349522734362645102307237952484270249955623168127569960613284578231054228142442457242133538089255683910150201279062081336437785525811447237493663308899031854720477786838193048190813382764866465358309087881589319628282329781260201843900504061725295342972252346749796370102627580779033426000567249300891070645321531253337206394110590585951617410476873216764466113282589392509660270158946766992074622226494078288826152733852998719719223909711825955049637364059858796101784625771083038102529895720818847841774323233341592762481627750846736895391921119982898656751271746674413074230754741915436797344328897741743232984306833314156335410225763885483728665296005417059819344936986913665141324349658611534102204216830806675709764734347373667500658524665868840095267067708549819123258378562757711296236527058495315302712233661945950850085544060198624120283751552495135004320995973505083346045024420747412334661143104366508834951613681395762174302846030936965616635285533969548985099136293397100071425789820171128462000651183277334972923113919284077421635054512373462006222150165102678021217727412048018146330773430377646307688154804123157457780742586711539339866292392255430894505359645089914067114807938718437472274096847174228053526251200814823108432027418336333636782705797004577399714247964387453356476607734349572618944740693769154857503097621060277968424883866047666621727627961008264081199865874998684568097435366468368591291052115995409536384089647212606101012860832483463445224698328940864934307535445790108823490423541609728407463634098959026172400813529598269437072590872126749173167146621843180527437982250416517413261712591282175513731290502527439564123938257560463137883650251988101353095475368073837548258048627873640518973173140620581612410524000782751943395847581302422046947436053804417500468732115693840111430737949899768423700234593248566056674137115219507515138245622759150632886288882179985454325658977338526494460921929234051659781465016326482777229665858977401354028071458155148248985484218443568061214542022560276006811683011911732385397968659859276530561704657363477279732260208101898929691063779982647384944825855360796775039237404014719273891364906143653059070389344635904066771047688029185415865274817492387480366365953674283328247492756023191864840479470564989764289363000924356798398925119017740487967808725053797311500902687923613982461819490662007466326465241810879915667611813075580970170206907513481850911637944906592422609242360893339134862186759820299801289103780955824145034165806066063300498410251314075784597576840383335307151607869417560877126891331840294783170210899241780321519694248934394507291571787197102211084125093395610759710761195610200411326822681498568286373813892369586430786982612809271736197029431160480690113271789386647553845353989308381277966489952266477663999063697476711197897184343521311317722655970448058663099580832271511980632032692190612429600299644491582985095102273558070077781398256184381707040591812571869611869893846085721697207576598022736656576197251001149569977453422495274605864295992099194557329481354495746991677353709507497529524182418897078171313994862551900702060440376337148872301292235001175048801941627815370227989204661105260387508648111242082664203878247172963539949027352412206538500033320275628932736379388030646108617422282670503048270673397247157388877373195171554366608372409144267367686527433820523330531957716947534577100389489784982055323219123158259662831190299712435102616509592149841900153851683804916974923270994025320303281124113230642174337201187654883687304336128219542285602544469935670979269844217472635905640537369226265263042127962289770050161177273162749602407893450934947015274247476836490561863506864455081256127893242126693681785523687610834878362100764403197109226628574751409575108253625261661565930541142204991099959554399936221250648172693338748088755052015342405370576589576234667175822681069607983767728483059812185019759097777308071393534910120098196523760588406997935158311388788494069944186733302074452256606478547171688804162931183452856172507982044657853347019869523827036947502511053639237491787510194898040425318199525796137840570178140037972729964875839033841954756162908562702136911698899838955330386353874519214850708747400549715288365439393441516687109621580345702818830258776907585672000665697301194144257026231196778434017708525334459184920027148505874823184893648990720979059061243220670777420478029395863210499315661629300003748046529716158652995754216998416752818160054568502685098496361017962819931892508151220575844943498033221831694230816308471919327055120709550689282402846034366522579943908191807549382474134357857649404202068162052967041067636054483209433891593893424741214545348190675011843156441535912958856335176905964844845649572614696714725296490312953651853336631499083715656660684026618824610003010529511998843905502346342743213140857455757082135135305492433182598489591307713599837947933384669393368301567589126149740485489785877748218209221504989017526785127301284472938555387270291212707124369344258049550159467823545190366050860894508568313085232546628347133431058864013305877669236660245432694363737386343932799312104849959046766385661543542506246413688653167953025042974419412201220977697584557954637428872422851104587806250823934930340542045163117493468236937268906917989323998197496169824603618033930007055926688988645021512145428291581096004766854224118325167062342952320568495067473958026955151184376139397016414796813032117632525746359190314781158222822252707324039373587937255841636154097616683830986102826096031614138909273605152034296499480130932985397691879443177741409788688876777665986032337828663506616479166816925943873611311680340738935991346411500018707097238143659564155376420933121902190563807831997808747564674050926233122594512948960332380676530962207502910203954196239727152008209654586788054709257433594371956725902146039659521632908845191161055630538546973580457160952947247510693623692423305646925098013874551246867843245442750450604043831215502388426151210374688509109325776013569765435862793188131362721022472781074383665387505457761033702368623096985858747332001548543865161138938962892509839006613846008750049703651899468527140580327931804988720735345688489843683072990369880816962991223585267220498616252764891619249729854452473256227990644653691988871907745131552755614067111885005218358817863508042861403426212399870510689780648831859217244517283359875560799161158287500893728237144816275815095924897086688143791447948458590223056258633518885051876929090515357702892199564501905682508319160895779494103268018014770928571178261371227493470607798358511268010101594550177260295675387960233629498615764571416395594135133311073206952256513497682982607504537089840821046674473239491307304342263412678116907064972695515983762075437952506829426022102403671124398301285133334332563501619620739871414461240579683243489362098411862737440535591290302252764285790589992624515838511210345501429106808867426890526011405335685894040904336593764386555714728725401613266685914358853599636760830276146103716064046462529672334937911572190301891690167259422395911904425662290407122777629021138856771630115413111287158510490432879523504101696263488421925384657802463551387323206116541203457686169331106273626577748421575383506105674779661323910421487101004914187232093286785343828657831384491172180113245021473091658403113979273295347155893497467561053572222370998788537771725637338249437586986952417004679516496710784906286889863673323159686097388610281585682632050760479680186903963545389035675530463571745614536329804711979559487494849592013123261504609899467258747183254145312428587699792380240496917229168513300735939613836334408472582093171212898920338883454773867730592785612449422147912148075776973461105869822293141995863388776315912153972197084103337464397413673072361552561479133418877123161373279961253974933410592932860521926556400554869853310058288905785700504591201545543121134009092297837030384078559111095573883203373107449954623410222966181239642259459646732801986782023005220864827836606971605792568988468742895647159076934264727399164467550319744398386850283834938672470735911755485108396749045091992456132294312029960322412446564594064961337847347180228898714264813625973813087731416523703485192302885889804412274532359888873063040301149209385730177085263725300595542890374263170411650281694040010553571670297737813093389646121529559026306512787795803701638681872413845720812212182183803356351894204417154743983305307347447654829086751000613991131534468244913581315222007270337575290899416476408168619209480009119531777860877371793081067861743623272376184031169627928476213505033404284311854274114930331639394750200498396798009936107239288099647069365162817194971394844630650529226479314951419715394278059182044538367464455986061965984664751811342136513377654087788798322751640156139644751227008090292653193052305846855748458252963691561263742563881421981579700515565065136070344693656552964233966973112425865025431461011074623932354211114648288637106379037390462266920061630768405208219702684048900398531959339564338721430274495338045197619387168543177645431203011949029015934285077461918691381333613636519073563364920546065214531501384346523475098357617771725447687059179856666856777118525802432270292718301411759858530071196780492774290449697897868430047818979854000306188322104979984456437099830628381405800156927903488052777446103072725183534022245061139464725848452641233100955527089847124308566934204655200904477182657411307230927871016387291981338162590432054132712147451384108670325652067835233174231973126133506966252281318303219621303326895574185800066320590166505434764359260061629133310724216075703112879974527993286382601799926494327449103611844401156806865452058076924042317759508288357150611539616290452739079625310631306805304638278121695642622953562520275378432116673523559865310142912696142118759760102510938233019505699333819220709462007900634778353544644108087075130728924869836420840215009283709655316253846595576596229679389014905875057524601492709369709066370706547958593798656405385297035564897977173980629473590560013037226481872574514912627250300226191803996411190349989785317949096630317848853387400046185208033494507895020988615568114079492664109249766451950851745506644683547191524608677958465822204390129096503680894186663707245888069719670824509477375139394348798237772994286653587850445403046951388548487430614440278386285209812429051376457386555275176971628274504127231046015840678767723519718760880989544065169449215920812719281690394439847253990250376801800445692596317092203115703459306651183482166159515453348219418957297632114451493932529580597458319578982391874427619692215030052071038116040286283670526142256327730511503172341475802278036370225746899209889926898119262366118921069638425023559365629481972183365531167434660616931017848539233136662023916567990989628393014096004623908308449927202606704122157459760072294114275420759631970033708389700597704800250377370044991534485905688346280961539594237570843003216157677863263351037490695766646964867890866170114672071136474118334535578353754973081187295996353187848071651754529006468561380198903037255170211000373717358093537977785544724017900946882150962351186843526240000073885700547654359557733049118216326905651377933791956847307733628230303179964118513341736184232483674613906671474789045378039559402738066764520665165774175744633257337528594437066873978050160124499481789780229648374169752953044931816542647972971841682501232139731755281652861814135328894565935802631534341518705905483550266674861169572935441840775338503581584293395032509121834963826894651654800438569977919602875886404559160151079080653450549931515763865543780252720156157434302835172859406848639026947486726834315014240666749774892065950561180479835161839334727488861216544932416321022108427036873090285067007976986720764389255721814818658653007005838308527017184202501070543673257837084270162797591846131359458203104327473553868245969186266853550026739278714558547912250787491065607258719868666791665377408689217006063718766814688119355088104070151229808533865740478724740766491352116534974962428082858782724247177262592681250361842274539112306075487750344831238608219136002236640279267423753477395322432371677470894038454204901599406239283701265981227370185074133121321632231871415154885275723095468756483905071728872636076207973380515740871877236306043236636707635354527999705573266908024741361037653939138322548848922135060041295133047553880107516519226496366910414022983589151091267732049287767846342406503386571698219138398959568097961211743235163186784022368975203972752589471986302343062475497532487854338449873995258571207542562430414337810734936700157714661594324230006557855145419416216953644718995658389752437746548706915738892406037704223396348565680367203579297229423035835364508987540648632567844647359420265894315589377157782435440603225984402947041224731374710645680232165317241077443921019233977131208839893482412259921931358488624309783071685655394118940789081770862127944100006025885795880080729827180692172722207439731145580607608649936541300081906903401433954584602795388996337616571532293533962463017537743906883260329230010531784685154641638196267694578436957295639243916555126438768979728786412097909911274958329027286109609414098821928439070467552419919999877464268549509030080754998472419221715399150376982287205297774976418444839895219765145909009220636121102373629967603443499845885812435895637237048558080334528299247093045758645400374529644546070600434636736085446931096362179831795472277525655422810682159721919832380861850933790665612588372469640164119419897172165231533372511422548819999755795986589428837132727766040643777175740838713230950253261421099762641955753567858229294743129094686542905546604356190867531685777043521720342906789924790633713316758928257621429313210718758484584105697081468656214361142078166013017406359974720537168494193037216167638547692131037259173839829379965691277241979992888567810841687659052757798758391152344612721710375332873273126019669051275743179473792474020346997723662589471295607529740583962607120597705843607849739592953233120279934723870748158184215858459323556183142104525042912027965749125512875298474940026218597555172155292859791033295644327718837775885658452261095134604008106246165666175870277437767199397193141651857725790845841005607914521350751414635325303649197304472656203400341750719144202979462266789728138851143392403097669392438175449116271173436960073754500070484141009395221891162827861139904597119148826798523929169791873434425203044904169704518554865892150724728112991979737938287513441485374094136190970751961595310854855802856407706267264023396681686824563670168081329639098187746569623316475460392736292244128565143627255916159000109380092826699615777414337908878264477038196591022656187823149083956625053464132375118370687310367148263384526014849036475342089481142036891120484259869686777652852185759248353101704392488159552462038096085498599372695713286738978770759960806807966238894941443463931213612793959798748218310970136814889237769539560251165035689184128890850885886644475869999806177939324847800837238601520056100911601402924190951801381204120720144012987946090149931371483367625635624882479434235377035467024051051830434303486385611787989714797212369070561906187027527428756968235370912186664972243742953084365105841350841309976696995914945942600440048124360085183898987582200474597567504552231926990391506456175295912002061076702711647883495043467944901653160545236528110725260912867478163679768908490476534615103432466365636463262877059823320735669778184837982732646975889560848148910881992725923227126117484631319661631212563219931218202409877886877776001026445803344741700478718420417740624154204774441139189436853346156925070774609405993065895974812183357096005403184297291020680357648119552994727037915652585670692454641379285380012871729933391330424998520115061278553160567715998906060448887017748761554105632121027461350434178659345481494444885314408850624661391838882238645000876168793139518846281170436447441030012208525083242140045221346592608606450343948351693806538575735561863644381352841662732220613381688470499373034978424567024055696471698065575422014056989385678381169238294380789986633513585346186700752631489857514114247922900306423958342600504978673224419756957837743137623068144406649032927702063914154491792506555875718021067875047649536230224457447609959904285422726203858030015738574237097590256815531359958307636722427494499452753066200374624429930366963550430525521584104766785573598118424761945571815980124071022435784394721866665298676837928341602074971078180799241707184135770303476403420171959501477128050203576079318895012832331025461178288674856766252446803044400250348013259252334641246662620814392604057743599576619835544023499623871255519208519762997286733631601164478010994906245874233314967333564440390107440656386700356796650478570517709067415751255528527797310551766723904983780329181072453351670407912689412530142732893292040341386822761806503587407693066674283651729107114018832879574767114457906545483616981394295632806683930082981969840611823225418698244110616378893749693456638641788479370054023408298454278707935734589462600499584251511666491302888926853824140819614875959984084469172184142628899720160283499901681660910318897069450083447713102095402778237417374196188087137805308288460024010627984245950367593501158264793255950773371814887929807580680360416392360756228221232191927603838222151783363625368999148071491077234645652922532415678138530712666791516856927944734974682935419919768660927070025727690252440454375881742965307860513644555718651720567426551129287862328280816657456185603053509856557363905931188617913898737815643274107043742933586423047643148309407002038389485588369212748587116454478714451404851476370819801530033356490476606060151764044601646979498888567946876296702624602288928023757667956487151222286520851928539496462633358498349757110526493012063604201679974645949307713821046394395418789571641843770624074452371952044068767789498381588803463065714568858650628005222593143306965676237234375937910737756849812516770291652682977064691347899032699233017456869256921362780982794523583373837800799272931209615568234966122503187136599691391226998582494077978334953854893070777321415638493890031622207766860635726753746421105870290438290997292180188893241800013479710843464851156726382168274230409809955278296113164175300988543328088315831894550195201521168432136582134022761559406871562062660186489918549931848051660935726370379546143639261527013107163394092975338932438672763363760740710948955286691627209091903000120889725046345093014729846996986916456342629772875747696831155265951196958085899521275092149628068270696538562537121681971056357429264524414009026191617780328255806045764211132542297507066729888720275632686324724675630909331454601498703856481167504055639594492561680730790522411645153046644281793441604900379567834112505982977122201705211622688679101949541984069841616426887886116961655755316489171797071782605778971244050249163844643497713125323751731770881452311499530867892454490784999728451958320939372260682401815178645721067461537954310654665226616575923526666793581475329335263957342575012509025166327316450914593941203559377626433143981427991189103332831272535699362045660777184673131176126011411961021882593251090493392510651435138273213399904419595285918392094033360732720787629709173989566725165476951977620616913003618971231250317581452876722403865962928579066364963404708981535977123856453300560421999872466394732017831264871534922389586713235628745926144799159150700502080914668233518726241768574693019081298278076472217728797997998531966342655252189301216691136980534663110923830756123424358813735125960827508511065718163258747575605591313490881564305191789343565446049649782532991023823425081449518789836467608881597926276266422810938653616725308934932342797354833676971109931857656448145497013423998064886954102409522910801148748632636782100648749396060223240015162827722701621794758909768302488039308370285068394118587460108425604573611350833357937400900763068975861290343101961017102384938965046952478619151534476366435710061727121975546263114908017957017589317147667122409931513993153183926806306767265287572538734799976353829134214702075620943769739371392209666366968342334144065686544504513400630360627463427450691779522493476903642607878383754952925012122585927602506801468738171865192070202455526788436970061369492136296972997171788085146065007798980246661823915712122294308913678987311843771561620061773218554729241756450326242384451678140722765502912342632654192475420368639717166122466535921792491814807118481545678924980100206911829672372790874798311626472711444363443424866168029256990697993299396016112042481902342525582870177412385705280361343632251666527210053531582361695612964437620320658347454203730713895133034344218228126740912454066888304193823114985153582361720800078901003326992109184590899206946113838020912760064631338777981503115862037144583355762298922259401408334599468083297127908333165123976187255065393639095261717496243990253345246301299930771363012070915187734116219318829937790737149533862907424792968673045012857139470062221717943381749331887818927432001089466275771100027698472784548393850753209990234884616649619270372944825911199298282027696882708804396198133248597969192034795764750384834095334241114027647597853997095631114295385611553152574668468168738131423202425421487225534897893487609569307555015908009179971723020258134238977654289096369155202359301561611934120095897402803361918548641713939615970577647070522924114443793002058271880678620882270663773749070961510793635143995439820942664176875477483080748382841401946119983973286816272337074424208515433208407192802321872839306061095442469555396050258117466643278315835791602608889993673503601781051234792099636227489634790506906917529382193515871993955110344559388571155917386569699295464136282844933757633348382797764313824073308719312422836440939522267752236750030875760537382441728055990539525470322152319769229282185723583067088329172817992660225606313579768880259192481257912747913463782290679349984928494349646992435255213565701417111059365703571626385053543554411116977372861550412393133927664235294838560113480137364972925424640675972241509264763764332964460491590441186107372738361847522871731573189692958404156879054216769509249259027871204388359896686001060394906415460752985308250141948926398098760726499367443073642245675267622468401678673938024140124053501042770180059465887910065772280682738414498646357182350678056791857174456059350250726172135664712722200855975683765203887278976561031382114045083669478665583172663424759237386159392838071156626274351846099208501464359494150383184482133108310101706276811457647283376132153687744962295656471663615120320959406926323451593097769623286062323683672116248455793404802581382274801376206944199783081768306461904445535179701349236299848333794451609785712233551367100426411577769062763918028744156407220152343605980024950797877226009531424866863121324949967060479597661091962666260105626977374152729950234853784038630488040647872061846911496426496908814769682919563700730080544098140021170617906686431960862909486585309043893426108039256333483187052327198534179007755990279155943604151531481397420538422308329857562424765937039661292944308394975873646779451190033627713454077906416105998580481814977679366143173083646169184690479857733219073479963082097369901616646951020019605203762903491918498979226429344726395063890072313641294144908403347029419700238348503892941831595865183437760517092397339028395819468221285846658224476988161073712644599353360594701538767971359060629597871058459495661926855993668287410599088816297974328349529689200637132026985403419200923572185975091331427436632147111546838511142227713989835771821086622005370320640591724145706931151668016243705334674705739079461922427800992872451324103466349373554805786175136350433634592145067088127555759053945551544070031921947447381476296235881247682729430549687867208867787259582564125360623913486260784002306562872221710840412840102955556991381295237270038318894370176720525187945958201717389575661511203771269052216538707580511781071273064147889508993531624986639808497639594028782691427062234133845193254429789150937765914169346004837638762315112240132816750281436645268522409560181516219703076402687633876009563027865615921572472548113622512215059902579864887881079143468999958517379466517653810414769205420944018248780111745904584543550188880210500954893389997694438439400107652226414047893357154900167092038839084526691397406648882888032858026788296104744652017872016328487859304002301585926081988348373740626781947990436470048248324018374660825255913993996202419502297591169282118736572849248186642226836255561693823259646491210503704480053906792613482759423542381271193244595907035048478680122774342070583018667258493278714866619497722076895756473633354034707480930058339912156412127046974952993590785657348081636230325572966713110295434532548239149098031409466174919315113887302386274426583994592508090705492547317294561451772361575040962411571421457534147559452307702637723713927841816376865302116396034202460367114492792885669221680859064732607318282656943862737077052524148006550335837674891325282713794217692767596203564541460941406641823649250519852436585326176545204779560663176532363198857070128133826701881795873537275699331462267938923688447291114767421743626056612862852602063400480183871967358730437859261627807393222053610956726671958003968374935396696530868498478385222701167411302081149173567940914609863240799186204688509409298211097975675173841246344731447413683292118382629350555132977589018393091263932490395187231138098697245730854408814080444010399205858305287036800789076574580171967688152170835055879286585670176965017645127699338396355669787452849787382729051069673735212823915943030287094350106711543857227672982106413580756469961672806434232144759426000389974523378882674117686044996217239432691490658917283726843443430570382055758266763251030546200126543846788937191005480155188981921205794752342937189989066128273916554994910797849357815717823032799522652292018707354338303777002506739064991503302700988435553156569344755151170722931792848712198383749840286587903343181707132265861964178417007164914143040890839798762998272936533000136019813376461623648230150101320795006060272155059097947485043904466623820614904981719985508761682307613470881120608079216517208284912534555740949685381973799119879562332137210549722868548686466823572619042942167379774811276112848959006805873420489481525660509471322036564284831244257279155009783078636032338635239219661541606012402775097271859969951978974538326446975106174606404726317256184186784026045635730310733670189676975722364592408017679940087349734944849440272307259767684171113011195861881511455715074222442662194229445854840163938520491701830929660577838732422754750717214616014845168429628375070902882114679183895145212475153144911224793562085024146197647508287071570504257266051546399439944154010470155582492602359760606007483313913168441558580288505028265001421478860634753355590669084242091433860231530330629355463482068498775012509815488912184557847382315702738482295690578462788903903922192941529120519409721277030131035546810536343954592130230207927610103470058124676378232807561348439597137661452570866637769619276489781206971790782224357076594377846840698535917267730912731956906655461622447627547133089831170391984564349198683518629076921943601135052340618230658284482373589619254001816052375995205804135349380067096783352153704107892624822720708059824705387025540516378282032772311392468444568602374158324899926374940143808567694933804897706120827740182901876276941636815617258377280151815797690714601185538309766127213498182331573904319836190916260701145771519673461173743690907500979120390853390426407704323729862161777088134758519169467622435810622507815494472467460929115946181711858613726763009110133770610259127404962200682702972795865675868557016232939042188101321408708691995298234842877907479176910809768555443143896218465727655447414117039148557786032420585016061320886188166305150623827906731332437691032572538524487672623794113560000137856708513273203118953290722657654354272220510409366872999740765719188842231209286929532328265918793448643334938788276564961122037597999395253729585279177907423873857510896591580171178396826859337991955562665788105537078200212851760587734282878680460899806369984474679797834318753969637311055084523581888792086298164824475212961830359989795511477106559212020643778940879695215352231079628005114241037406510670589420683731536344675785787765664432378093952478005764965184665755793115804606925668779524368811771681288936119883407209094172762908035698584717334971949906146203898083698862053874054516168969791642091291979131791695178824728374826415428402941321996990276438870293609242755338686238424992244009765345602720980879159589717555415696603719387326451256693588052585992446611712987982611751345281147556707581600749793375029768092193441367638276086000250641792519140012001933890858746066830484668370220446885005157574135401839406927127805877683308691421405408709843323893488612058289636319577686087627309965831128421341470215392346475499696433948987166104151616971659523244997624950281742551257044324907503021554548378959473320090616283953425455304108062672169259324902205878569240774391655284351010519173856141202016753399964507491883299352676972131549299066610826663172404618786445799387508292497740704778600022536320962606966709122116209538308966486818609900146465889905891535378801197816121468593064062600248970438538907256875182410254132705833149947648494084364455179683690904444640464913953910013342368675095954012890163098602626871498580199344240488354246569733501805466013297263167200041097637665142061969020445458307232870497942979665195240215944610854700653959288702071627469180431046822757716522472843829060095973449474035834655307736775687453108718476239682625047684036569384077252828616629251255985994817642889846991617197681811478460712635095200486055110065854093063166297515690169743613389504144433616850271523986307160634300638260541908845274325471922979865144766455946273348922279763704869605949783665971540325991504668618598927681379316329153958172446752792124125389249013339008120859911516216296400769950971132310525864820854916920124198913972859382582512670513357458858231978908417420196315763783850248847311130343910442813112017613642579401899781747951293552299249047617796785575704573599146022258141383382012377498461122746725729636507753871383073580031589946690141712235518165264368606557730406721984366259987218710413696285839707407175543053781221185106854925495093781330344431028734701232945379957010292185427023989503368207076561457035443107758198355052726815463960835141509651032786972022724286659745617192138668202828281594559050787523820563175962735895214085173465382667760436204920403474413367621232635842320987372571327552757491304602738778615146094118057342223376807914132700993587916038391742833296104470181046230561952300554712611527093823747430836570223337792295633958236825035158181746579824388312220541134432192394739610847485763871896262138218587482335841254659811651185258522479875043279250016454961903759054021264008282265981906378247710775497471986722391975846543276232051680352075372866237610260660001701897977760142818280101926958800213624322567137568906301587283150553799771762358230545486194471088671688645535649474425064537650648904589570786811687465156562066494554268565899518281896058647662364001871294947109579180778715517951143831263905489254428208088950709814420192653713963099120588155238342288579325493208009535290032633087328459949925729270513641960702257665948511980869335631023500008496436870743906350491624196627840264828190420129876856216815447065705251069334572802587268308112534079030688644409207409959992402286510607732123884941409041130312477247885494057927395821148409436167575490642538084258284952831101201303585895580127416632446943906367144819245293899726462211394827269309214510553624851443370403653064322643268863188304669650302123379855580318806145006407030485646330743433765778609520619409287053577609537400892568983121825132312971667189716676241317750475332946343777300211311837264717731711397788420817441882520029400208424480882199016632021716469916659035132129797253714470238457101332941764791618607302111157908545646730118246793085996031941663459429980043939607335937494108450203229394151081318941092816541753144172265709672998473383718180100795883227446260662232004728201650318416953953057940299969120862699041098542612048101992447331006894152319127367680429179593788934552309655796041329495783414627619428323687993034334650981391168816509215254917145805247394285758977340140749473514906683427021854968472547434550260214985616289846461899868220353860523048286064915173974301180500977954493308903943747530897878371653385148338456331157408198497724435199701591027572521223012378849635885538888390690659464062956824176454879812222858706808028277750712492664385239282698329015405105137794733992911946210616456843433421208366345621059345363525196137350891806228408621104870393376219974000740890037656167457490383192225562742035082404428269269788261232845649660322802550430994968023624447733422355793565309308213436214870485160625981300115316763945931805954337805941069666791201336521316428046351962067250656148341751050766112239261724564824185225881531160061439968987486213326968104675293776118930034812534422111195389093580876968611403060784149027950218301323975402618010985918776882041489410149199912171175105252024032952036619144446695369414808708142709482269533189107425303790085584807276450009479666261631737437049807489996841574032590439556877921997949721621780943818178848413527467419235891909637741839107554508903965163751452569773668548114174810620504486613458142887501678734243166554846145179710923252658689160887837313959704761906207062342281596221864837732203714057787321174796553693534042719166413378240193814573998170509073619315908236548121508768985357513424918975678032704244386391043825071343091232281222282492093141608985276569632613756462673836996135381992721975119534475279013285520080970924134668939786074716169884922158326725309950892442583384366956955562190532361836986090658472849420401477471647922542875538264762977107170361252257533825990836925438344554556587786087111680205985969428540325815766994961836948989659432356360432796618287349647816952764686210690251621171184760957176774466879274902968074487112483587834133023530670620672354665876386578074514662854929293608861924955105293641121915503442227109425457684912761941563825703373915865573444110270464127588435438045945569342189335557963569069655551627525574040965852005330702909429183089147358548486996486821277130915915976793725684672645314208578195053247515180859461094830986053770691825004580520058003532366847134667331886722407026375389070021025773430515316304019298984488599403596900837217777394260098284921108747150161042263031108012350095992456979975310725296858298214839843664804104372262404365697255405732312204826274569634663694462402405842559474870242485344479138280285011683201182015187144295701456274026772775696558156425017431079011550107214340546690575659549374223844243736684527709989933350364425563968354182687175132515004261534925137162594572604875077516500401116999520381669002982624473723930405041521655375695238437656086188330957381308779454183206476632604347374733527219635579762055273901955168378593326221024764362621075485344736813921302754085379615182937005790101102512612893277966677722663655448355981189473598378032087635052488728147515999041609777914470528152936528695116780573557938779143303972758476187298478355069141348405787836212722574096891811278480963974966798890118170947953045581414724963294380229067708099626357568083521194933668655937926579055194451777134084863696402927793778887652112528171555468730585852398405954132781133419577402556212657478514696169683837629377619332857160211836013190675888344358216945043945198760591293314442132863987988518588076360288341740963238169760073571992775031121062824536864590687594634687877897862371480211364921473121720847156133246969683917140922544807556191411162216475371563783311498004961829020418143110319278959779940055000249998104974787368932938669240895614353340502281943830663663623638640375699410282935059190936955282353705215151043071227176598426764046650735702231193229098056043590383551505965751731008546779755590180287932264045638341031311416807011843350095480547456592915589487800294754780459004979758187651763291651268166107387115442066356242874572558983128056803303722650853638912485091735166388109999077856062340185777402567479424156067784302773377800515309650534427461545242708320204861653773465239329479029056002741758761630476416779775917603010192293456776085383341691408857124000905309745144207305635564844335751552067634387902266629107947748992626153888747354473613287135077478635233656841510167246608573164060212302544051887258689853184873106078846399054971816870723871631302314221572519368249611039130284124118438496464342085959830956399722522863233457285240477032771751837507846359728622256589534382834408431299221890964552585936193289683243301169028411035878154013936657362871864480759604132635116237397303136046139466076045269549753283900119417363718847940568932018456910733476494487314878333940930886815398454880121349774599220758128384882533970056256768233740425486756458783852494191332249765214851947451600746576186949029260888501670405482846622267955557696182396377970520954321353173167690087890047739734041694475731764950420846962384973498766817126691205917714775022731672553715907743198201247884621537691355130475054402672986000183597177090026826432752107012873280451623312268416332267233525305466308747181322863826596215577839391754816833106488198066229094440883243982696728335633181501640178212415004475508387511597199130241373029619976924913471108776913458959320437921914361272520948853414758936073121541549588340129291955318493151186310838847391966821433163692552995951586644985406941338868357854645118584754159511601108687974822439316002495102588312078961865487338496811929529260202012230691836563221450944669355081627461427492030611722834017808221012954734787737433885916241195217991859429564983446167753647324034231066898823586136086591645460671376022120350800793648002182893625663867898808693413766072273548654181118505865916796984664230745430470867908250822749049800525474331041818348599817515148591971662673273435629923684897825253090027866178699900922247578973112562501427312557493754713859619282645464223454243701897259397711797129588609709561095144151003801500551928991943422288710853224136874915826080196822702630242394805496268656271285278216462257372686528068762226280459034146126963907056253030324109237887571028916021621394944162370161851501124223744083559128744505996013378257434286162540010072059506141628530220894277226203126643459441513473160511148332788183624568240209814206164042975806091838982028130998217326154111517547190670429568796517193229311910471201634950190900338761522145172242049599909355475204469071163036689146752502048141521656447070161830537298683723344114113754360660276749722823644032098788280698528005765331660243838972760785135223327548120903310588686128604121843830445537702809940063030292669019914726822547035394446250137332965354481444581710696648541121640938704750870197392066451559781345947065659968608878494117064672125094457307673681587949625696231889304698892980312316382161707926057643995919591273728589924316600250877238352560908556955448084713595905558793681900824464250172237553163034535677698825667147805768661337124016243954812992110018910122229942306872552119283223516156410525382856062102233999768910458309410937911352184784436813191785559458579880121990475345223599132416285417644550366909899364381024412357696228457033449290790515475602155623364170595236748959550703890954252401109770147596088438684834393933045258251180826912675118360849318430593552553385063403319448106344108018642209427658628974941241494157360526907203357214041109453544649221099061388900272196510631535402448412915974273707829917078658128845502569320704038185657866218061991892709586671389637857287259823060169491582217192599346364326982680750081918248284590787401624541355825554544925359750946624033540123949409387084953685034837868560317835317330571135028176633956084861158856591057581478380069482927251603294699386549545827544216092693824030453726766171757174063168088292960674022491952039141960885065882129075800138878222736070712855155509331752431120503062169883632931009101759280484771667176081844113985683590642012318015201318310552539229191007761243944788457562669740929575857273424207320840199644324829248303642484022461368824155173047360961858311224122178495548077061036206601627490864935225582209783178381144742774001134538709810091739951837171857146429466568528390600768061487578813858520427457965679167968218463001302408234713904502660485073501257155961793278505476880105934014863080710633761984458665552514279648439682612196732733254980599757026489149850717267389677676380953632306948214284066305221205217746193677299526656258139929471275487548309560531432452416837064958526043009776171553272979939781728465026791361200643256667564146877421186221292829527165855429629063872238473690920471793376391730649355324126284944832760957580600510400988916521746063271768488995566628057979253747862080520329477763297647536081748415251516293943766157837550910701143760603397940868659490893924655027193184869157702590946143498719929056021322379026944636059252091652915766892402823787248260656028415818769214445845952745112181621447930955514875105181908044371242419925327098176187721622092260053087053646975548679417522262468007894643311128566120996335516804140413422142500886071971670084194295752261986561370689652508607429478992330376510306620786022924914742954807319603109418881636649159317707246999515985360946365633020236408501709206390695029239702695488927805039313529360621279958715655997243508351203829139112655203853645817365438598705945279106189085259493871577870551980083329291101977820985580927912971319614566061209861993874806669539681601452377035805034598861474416448658581477315401477045635554433280757757939775819194523573564137720300695856435139395500558388476909323842649913820825734419138944908939839879680209699161451506929446906885672416370290824541226236566383172363178005271057265331030370310374659849789386538012827374137393903753520488877293474610621132560938252345361946891142635754224741089068382292109114684008672009251538865459277719667584653267190790548584747770251565138709845964447818971217034463590868658418806317651170023130446949748630771187280664022637526889117729069742451371310939505737277741850348381723059540357209244101764707348440140606372445297861640979190273577835716236071986691688308836243736692092967180379044039623967753820894447044476686286927383276194525119244104216382391171738862762769278351417548666522060416369197461920288067675472130867453839495111139519087669105870025972721109073431958825768344798916354964611730913171712861734067906244212929732779295878678941151944979069835455542454799251103922998557065647792490130791165581218693101115450475591074433491433380045547829779176874485729015919459292521298470078961676694944796592978126835485357064996529059006031109123117989565053166352172034677084730312972229057794119259891793406004301122202503708024954846755358935546930403441786824009460822114901286375869265693620427036745029013080675427375914112286493980369180215727729614901321407598456440154451305696144613520838618029134753197460422251356628358808141511654654159792037243729613074748961429922252796230697692328578131091185889767740002781733690350601380727236966469612453539216847770610758476497172573120555418025561712150417428475589543152182629902210699213512162367330595082799267247948994683456721781859052505505755186517060000815145311194172321894201718225208713632963235069551874753603630883616339729801273552076369648397497085052070295503125456489923325675067626190442222516088195818228831610450165341403156302836571196113122905413051514640185815389322540121749937842819465575611654525162754311287797942499244292817144359506730449984247635312256057167507323991569601500092071578739285797816157648308067830208333414434519577876662491213584863268994433401629280022242334773567907058520484831257866104840279133094262141236104606759724327795203982913732965448776487392512330276691031420924068578254004572183729433244758894324190026951599412674835758239339211484353809347277680472419828369756917138029334832344707193668403178703820797737857166479623068207211334840914913726428182418536893817910605067425365620168449438611984286943681049454500312667708714467133359057147891809856218728558618777404095844980126066979892849650659132139996690245795507785726393576881199101935340689527340195229089076395450610570562094723189410778539993380173777081357856411007007728067642735790389018526194283038467531674547487736046795442515448636694841450930254409504596072147676477718251504417134165132115918944568563572078698302847544348356075514734931404197182589489741117414200474325049616597886518459269275309023342765312360886557572446122040538314247658961428592579122622954999301106849356989724760713313695837650886991363675571318557262666026737046786945015736507100136768493510897582755281233854336084080754664846421225231235717206450747652461170808696918373684763727782535080790022220846409724945348581832792565098238879227227642120743011091708201993892817683358339245016768519940907043570569145786243693857061596696727913351536802913597929211466690312875342400727354033941282039794692217600160480422787623352371408238352028582275191182930466035034388537675218951780457515230921296307315706467174385895877061075905660696891481674745982089542531303176579030094452898916983249017431499261284256360873578901840276213124297610115225566257809480833583350646625757636541023589437442560308123768101062982988512375981755099017220876291845046545390634435864321317727405523738286885362994156495271453192674313570476240165068085504819897884433551925723635126239235972476166972060067077460351283779409644288333131375289485566944292825206101678674722778260079415038188090215418476542713518735470167375013423212137340294651965959168953027853582587685443002488747236763005267723792211371579583759735387986572558223591414334533310161492797193918841000744453953074458656762645673042018256678961532300137512687722227424458012173786113360751206789088632405190343729421990374009125534485265938367191099439639018851778957114413748237476871943991703876955230999955734436955414393361653288894497776049873532073267525038235185136580358999558524026529191271406055366435590509146712296663909624894721592598532014661746159293405238440811291499571646292907913631572832204663457645682052175653975706671555374249544978928954561641251019543883091461196900281899466617567204506547629946711224244232910682949277730207318558989915899963472144458857037190375960344679519904903156309538580715391578143509190013453554481394304593168934170895525526856759844521021927138152939099834099431293968759580606638306471671257928031246106973815361980861827775003512036925128604807092455083460817024272070822555247082968753514519341526297879271055879266281605905795169638992849808866780355556902274538057396777083655379843484775994455293903220863956528366502551638577618102234685028490519833023685725836127361930245244847894207561323830779081509679427826659287328648479254934664266409895376248151249343768034988691939113999401673944516886840274933461165805528020113244507199679857171547801175447532806036454237436505508448898977249252461500923698680314001326856438243903735142005784761331818431668497956510484552640625428903670078243687459246612837596382306972041070187367343069610648826176596152604613359108089593222131804737072788533679882099742230939919950278942929588722507611366684505485356631196985802752623131543120066099244343280565280486784139918262844393223009384458686026397269390664984336183377454352029907718651447539630057967532210556704717741653064680467898067687457882831397780496562470635295683180174231142851270037944377773949600885005423734990570980769076036300029265957717829021242994699608349407435256652855975766949636078161316102459932671584531699743174503630016549204812073674255067303656118377264554618669155812486971817428848747569208902853930186644418374227090282740137888208041193312029327912015676296253405211227945193841675627142696165513129868414034056855692722008880849285473787809915600538819169463189009102914258768419693292711813200917819178859470827284807500782047320198206436667755197732552175528347708535192516336574030125606291328676296221763789780018495335801738674113561935651997913428297116866521551865162557853381553158372122731121203444172317677488975081655911270150559758902251263305160120514073170646064047321350321672365426122265075678100489889363830254503982319552596979386674015711405202283722753838190170746108095744778986141955108462536578563191463937306238815957999537623891811177256005353860803446564987662996766298078440330482297080180301017564789521394481464312767026278741566978643193342635332757113027841368730226377221462581535802579676976382948053844410368865301584916824649964620768186051266033110555561685163240578630467909660895711664552673744548726002196285648454973345371368385568688208789442296935452284355203847708425535416025108250319072352573505070830926444568026493531630719300642792433371729208785078329157654585809332142029276999693043562695253507125694762311810858858439026120421610173316111883008052880684074722228954616775765259729326182735545219749234133637227056788894458615843978808307492478942660372307181753280220050961262389111351654375675359469122984015786292301202429080788795846634846073589141984935944911095879650479375797887225418863457101882256212032238877152281638071481447520084172368117057851706749641984959865865844717962430001927763307682791014780755372379832689028589065542408173223762230589867856124935568069001038827826142423743869084578560749153153335955696735001570494841677826845425585682446682265149933114525018335447664313010142932623458246258850611041388286553129664714326031797527436003899881891001455677808139805848915610755142458603129730145464110910023122737285197716857744017836549415238078962998086288111911567874896234669730530065731818301526742825927207976921772649775797151904544540277758882039044232443560262698845236166961699415013458402429461104855672805409273584153642795281180212405488008297733866165935061559795826471718995244102620751125427886600061644825317332051633995014766531437246360994950754157234072610667831686794600883882432517337068698336269943003489869907335189775154694525193768406785025705345026255870752160482039267867265448332488407017254356738575194201724167280870914906366802213016020357085763867178473861720435924410123007059059499177962906329744989501824999007998829609634146359902371152308100498286446489400793835358117846489763325476373202662084340754326232074178372153086172878023148644894064633508334569983409775297277289484813298279640631014223865165336198549163573806015319463786397458162595557701026584853631044372847357300711220761874246365173535005512706175945915729213677369513418537559314029076805699407393274278257425249002076518895077706155348735939595286943330078693308633097350911767119456698788536277119349974196043213523921822786812080384143112385481298721497292757600489720502703980261369253597952073215995155397530545689442674304846951726420822605603476545681387799193763885713170030278420902598675925143040388419414047832909562645017491958726922254475593062719157497884203296469656468835277226297170536522948167488654786664906024360588376983057650220363979651640926597676732247763359458241042947691829796557087936436866524814110611193648438017007261100757067946785125408553647014333872635777950223634609257086731829181427979888544315269721387637922684594865148270919642209507738040101921618718437488918214218934583400643809479872928628191760671062327734180611507660932774461880984647911256967890835044916014550287218611616580452366605169004839911285438934669967910306684603539605727676636323715008980769351938483738073599706430206007534503472093436396187557402858397588563049657081255516343700515389195020272931697260422914889415746690814105691945926708496516643985576185045929551207898875801147105433452696535508136023561860878777195398569821124053080306398554768744201839758724372584644749880720382414404132767650317157071927472154586185728206645230496018557882847993787800335444287874570004911237744272420952214613962427444645717670529528380901902353738407887454600410172015403314016847691440711160052363877026131280064948465224612557677925931029328726220755946660876447597556365741307618804437453821482555780657244399021096303055147938370136077355524409213479744308990228784879746730838147538670146668597262764323446751841179627171474034662232997622922533841596057268436651227045123416763116546339513519130466068166126592661028436795435093089515225225110486841352286151929160086319535661913015456777854783722913757519248813362508119232242564627277204619588816334613363007038998174793569871019287170016608388963354031029804521947898200427675830464098864602185245907035381732964141026381177885053089143447076226268475229795394336166392388564555291990392298537625420247127242373963796868588850135771055686124335012580297595952177743669756821294560155565224044637450069720725540554871777564742902065581337059776152365156291757428448900944716521710354249401084797996852288129880878072988665642436031904960638640328585426540245508075596344781999293189185200219592477485372523573035038446125485405851255434742507140184376442075886756351448354933237047262626300075696369264444765611817940757826620694608139210006680161467700728935507724060127845281801913950151504812692372384995479908503060992988870409044966915314014802206079572891229531197923719184720881371350191970279942340600928006199548012942997609917252945223203885486370438791713960240332984813886138231986747005605162081622592029061687308410735925133139320304827294680576892918748366160228280101140492328892706400079693062283653836348117239267020207646450888054946763193142764454178796599371304057943590785059593926304311995115522171395626714713822005815574305235485581410517082731480146576203544859716780631141225717593954530173694738470510045071183850652400746498368272393716787173014408447995737067015740314815065764365699339995221298044476984938966844102552478888799429808703425835492043347200575022071773712685184262791389726741459953371860832145113565758611509183188162211966661562716480986763714268291393882594544015676602717474531205727647043485708444122582836607455145617183001728336891855320459515432882050653534900449855663161554335264710183219856522232356260904220224177336744928282208575864100038515429683221494704758381893133881652657759412696921803530640751327151104600919363346984514274147652926445564425968881639700662768530861903032128166303888605112059594813242193469286851297964824389301228715690386727353799023520285461271445132731511380451830292697681418232687432774680002409224855723648259569915230408455894901272661442433712539866573289987988253656342021923234629615073274655740333251621248578201126536743300416283509636676116989592078004456762094367751884944194525009448520921793995283314780005809391119995065381196091860323947349002050760543068782132684814564028559809550906403487289418607470570424354205675934444674835911990471801627463282010179519613662682249291517198421092415033874427289338215845138157460274028987297832222185776911020666352586034864923900845003648876187529619401059971985277839125083297045187239795779979337954260878199179679888973480574417233002521277592255765547681529124526531535218331517947089131650451174907103355246459990069600042610060666055639373159620003021003726270563962282632201566433521461308310872218080723421506115545104240694417915157933733312345962308782299561139587229026615776709563488457027677390471759134744373339333311391857639178496541623039074832114093630241150361233268948699922476915867103035136691494880118173703538303837519508767271793285424857942786936031295359600576335244323174879285050708560142215039167949474774426660417571858970392824207879580023401500847501693988001169205631762206736118386784650654545109939105985212966791845042346641224386645183507094602963494872137001848058621814573370624147425438415160993602014859435864115177406523166747346586700129349868425922689193267028189231761947926486057275856986665515483628497127322848877016368403251314271747340216576983367252763289774886590931163316158520021353109731430491958788741807205991255743669934471437617946482592163055733965930150779803258258354207883750628737935163153832176514273349350643959245664056474812548104368076512714920672050137695954044671262512115537045236405693877143274662608808626456008654396996623433327154451561811787656773264138462064444384605821483270540943137041227262978740906214254976806814199439087728745122755717150015277617231128254524591503860667143766798751693557288236517252022277773222789920703527023744701417272768079640847371578103676262001306242795722224799316038010469612482141810690447164592358076795049031570495670644198878226245160276442020012392800755588025004954527389911704935797130729772147434369278874962565293774245812964604723555699045489295871852027982035347017470176641507736048640735534452186011226252573644572693671233709431312306789345613510270426012269554378339248456737835539670917102756970240161303809316492814596464638100126131936494149490682274928929792584307197817560615723177916939008423998062197123542904299892889109649634636945606216879692179447242916603626650889830600850668372962320420091321508537161028143596884273805762441719095883161606898383646530720748179372540790406100812166666435610919569899541885885404613506741112123510093595805930566938455069092500493429481969312913218118539281831371570165208885291017535772857948322100092484031161784788259104009953484007217378050201475165016578868234353804369193833135210709022617047432092145404479332592644483872053837281419995637355999584804734559102155625869000379708900577813700877345786508087777082287392600418095766765609626815067224668632832194272024333843524063702705697229563260347535026185858956411184850677026360032392554150047884466844231050016230783127794749444700196575435268906503074727650846025274201988056962026673866989857568231922959531000789680039178344504358191923194830115899102513933060512454937303157822433124218117008020512974423841102290435494804427760312915053842633785858211336358424554760342518792223628057349016626761384745333819582992626518388766066623217282832507561855969336515852683305946786015458071912964052560214487159638803617471319281874605811943288934802157292898654732409021415133427300687160164968782022894546400452257465433585501193463242852220492450490628191019411673194836161920662527352784326999722668754982706999749025108799995871388831027590722618581594065787263153211082315618031738596906129384477269952477873229278664582423401647917503710435621807690354458244667501064818102279144013287184255577664584612755148505869539850528616516830384324842108025992889195656087952157611707337349481618609834493864683010656152597695534042721439932146902352231045340373773260024060619733505168925025324461274212515569397819608376449946852719532113017800608214492598259025936811117668135528728711033053233186872181756263453903452558310724234477140071802901201003049122871701287116249119710233821566222406364928047834420016042205098523304276053446013453860677397090167481851855273351706461754263399669079944601826865343838404984676631567909794324776950222352407197912735218602890770500321911989932642994033236346813830531255940238094575676947765486840882406897883093014439400638270248795152053245981860688830451709166424228862035358807972976470029897084657609550406265979595338903905902065843130855495639301688199448812933484871510135332541165997459793636756390197574235525780544542009572077080817215453186833623607334227709928937188869886951663864228785137420652039761005873151251106079781208088621684637474220809402612409859926007465954916953395048245201733331632500815242767076644578475834257975132542318152559583391042416454203930116580780092058636503962471141862115295918229737185410666250697388808208525336448249841211588893759325021329706837101117719550505458620334615382719975179884467341732397026221188490771557742331458047432214127221687350104349307862272917960019636909499300857288764526937820781555006318556430681695322674095915259889351919220022902182509027858323060253927191364900019663003060456476712329980178740520503260902230588815213316099507097500029108772551203253535830644932876879923563456459230364521152545578115800123769746552722616707506324492827141792761183712028525144154217857959977968720142918132150097252315625242746611434045874948071367172299197562251586012573030147671060833313190652171876162654797559618605823074076256296310167546685369991162051152014193978608983595459446263591753617428712136260175254622763796964198092563665815290523168967748913493911625977394058762950643909778858197215993708741655854852950864010117536290939548674798897866743831569490051972609578562596888532197629632057499083918637433870174702764331234919539608889033472488244002288148149758167059636136954722848377744474303125050021113607008449730528041339850924922444261529414581818266960116959395893104032415552700818653377296291925923917684615165122719856359495804249130874639806452555327725825447931730525799098493863282891015230909846958579786869106055571287274445253625788191342356074917333443727182382999045384087784726719960362370683540630567229386709052757072418895756282063731227322803111365513982486062246858848296730958671241083071730753559813173869400169560698198464436283603964070785301723816674763510942518335807649164660118793673237395197776076407999367402857585862085158161456960453622605419578977365350243110486560015423949071246213325169746259451751910785211138383586187687766107070949650226859029265925236723985680592956660371222838685554837603689679664205170808410634298843455184448830196293992545745460395070643848843099465640495664264958072928591287037901011571688878686033540812164353972714105109039609904608562435350626898729068015817646699992190120583720393394178523994983829381849651641202432657352689837196679637136866496188592154236919628060318466652601320604483637941446426467366894512324069431039175742792659130742943539490472337789893051752792717491291677774831102329756493885937843167105036411919830777094021908008723628634044815120037259252162286483892043502128517394299945921235152591674140890726503519397578666562442239266706188612950567693005416769158902496465135698111812888648974660306298679517638888170713423542590831026261931639770318412606555953046035945084112119604921450782386383869678365598464086143324932962186708160652770126996947215387629118222182666207440631661244241071669103502989203105043982601918985411584270783021073391908552561939369307146873873882960047516007683667371163456787394053954719005792806648920761843260593526415562103032083762046895959804702358782063195153332416328896305911545024626446156955875634576024529597084219301346723272848142370945180717585090382187101541513292780531089143104590679512873615044760076696545892975531702992282830860471153371441573405240419789014341555393731699666443777780385404208421186049136210753010098854321854440519640727279050870152279989168358841197835206779213016819718130297546483674335238854878274307075632907928722494527560290648908717572036515253080836472212524818624824165609333507959056514977996936816570177586491011506581409984482049989843331748077355838881466914582579698549629842012160411973768929481926299726905166784504422486435311229316966317508987742695770394291987025766322267683103996995884787583562875568721665870968985837266491003242235384840147964779635190498141449235608629716029367025168696669377182890052951311516599637720752321515848531464295903246870725464050652861390600034019516423507883707487603288926320559967254358939376258657880646482766703231250031409045438786042435037613372696157718042852004981977833366876141111237732100199817014794154998784537789432071177341841687476721975897874835645189202330763979862973207284559677143723649682510921942690467653999807082673047490310197944849724052893453581589125907867554128717293494964348002420641900956445989719488074060804738829100144509558003315210802899026188420105489322396207993932972778655154907350083432680663531786803745199929961571500964017861442816171731746288629075870443015683737786832749072125615383624355543703889723148636855469921808706036745482077782712861964343378064744847123537502679572948573621093968926933708297169542199966493763120376218311783774309843799385895070133117281785100787055623807485977955360285003179138953127176247530721597413470727627316995903071820806359139803345741706048228781995408783907472554499124341354138614388609268240847192615597705762822379325550409517541574524135230093260270385774103324376040251772163697429651976931766160089327640449709849988137718843582516980964067866189664147362111669420418369133613566255523827179077499818950102938607631501624444376137384246124112897553184504373440719319338504251365692133530910588981166300594765244355713765854806814224281009637317092551192523595636615982644998976925917791896410804423671226281587772481218018189571618223753076042779671605860805154761907904066545811527658565749525060009787635895752970355171772461906459521092275505903036123473500103916217065507830068720726705054365121211608329430377177907812248614161187433467296720663372550457206852752962295757137178159815691399615617305945352048791835623186158557759830575096541924753580249097830113343197852919819346693860033623613495666084749592442926936603826874837998233426785294822941083464080273334704378248169798689331774630187295220233600556512985989410798979425777030880025354850485875395009487928617965040478907207954073207165734725523487895026251427564781777016655854064236805512100645928685950175077302916011375066334646827961374333098117128957331228478294170432713173971794621609570602123294174689517905758419637467409617994214675608251926992401074768938984206435928536986885727088111836335884267240398887749023865285996931488776181006380983805913753898917536120178297172606349522373089096466611660608845028198577597197008591406831105473804857565259912166158594784688021101267038394226892352708002532342798550315798542021055751405185878875844677417378153696707695104235651113214330760282898716956914394130416960147244518332818613542384427490871584808109212286523904988225169739525464625902477502982006019426337622626549558007153153180784927042509610996189866858639750844730765086926980035846946892690272413070034876779459820318737836290575784509406208997145117741245055222025816194821327954157116358684344452162639305776025600143111604503406490738973742083195500596113132555853487283606879479753397816898958486504763280071015585923867002325084429089037779309885644551925424472774079738083246722686121826521967801174137167400408767860925628593887046574435900245060000460233649048466208127577991927405528502625285771470698422107158357122116646125603805804718287555073766494187873470980289525995681503084028594490360071223282584426766259560942573623619872478696260523720626209495046957845285289057309377789370732302260640272444374091496226178171810939457442103452205890397032448208157444365197120222330266823323353498118008431883887554429038296032648311807047894572071706244174816774160763259728506544888177161888014506926191036824860879378857559360075737151668338185761163524429506710058889853120493830773590041309488162431756985924710147189565913337691574109197274101838234744622561333399238594238847176129029725936432405102312578673113075047804047419628343981742028581304954808159796260178781982710012006127266552658058467747054726858529078083857747609201144223211596792923238961477344275227238836264300050992701675486485848213078041534965124821875401497163363684507110620560595750113771276419053041677602235513964492515429682491244797149018093980083636191274312407605841984283809568409192620940654326990197073399218462680824018963922744109930411708992111591667721104703448987857369260437283628862486371800612200448676294479966729996466130422157348196249559255084252202353862186368483831114372696056480437696469967887945462587343304769449655906028225783154888798465705643373585285311735352546873681957306311735420033614900843953865767348120288279421418614415071030510762874083475853135383890998764106091517693787869157906722992878176448440341532443050137706630954478779812427448654128334878387807663952164348057542902872145070848879689990350588804908703519898683995693975427936138173924287985547870702926174469455481419971570237218092965951188175465826622253933747070978531615810682727170165264103783067493669989475205413711362409447967245768307570202739808877840196625666966940834510394848204751428517416333488153336313086786867669195786471183056350893945443938278555722310528251812384296305670759981620552097482513013075894975368091871765134062264101761038136999742766711517642209286728682204958902490239395349802230572984126082328661951202002323450174000552789470804295643405110110488840170171991334504185758561860851053968329469490914866181325410281151480627601626177697262146857820906300440880893913133022488172729308897552006804784649544603134372464819947614829992359446313496721873149766811354416287159734379690006449258393486519488186518152989393675152875546883396207635096571870093880507076505546543446059673780769459939957557983886808547363959524031925215250763464667295917509170336726194751137466516260180532052800786089646066645494898334000182154858303557072263322379583584316696648415524731272314498596818481660060736382500916570498264984796099431198620925988598990667117805754079652409843322968004184947605153967959213292788331585306963459043604318155376316443512185914172680213067326554282613412738187692165222815177101227712361324958049254614293537488689832250508921679644689201164609774228612161271766421332156972432236507732716426108977489132299470251668075196259788187806672194626914385870128733292263975884839474696938391897707668060502628155433483262452011346632213307943812440536053664415930615874034756087682697435367133285918994941784666588906255468549413236679929474244943396764553625024193805315519280423025561086235723842652928654704048189076679984140085024277745290845460274597193242311966801514142650150297641866517950064980806018975068542202286013873047039457721749649681198134765433306127760100555944918383518227240470176945163030140765804505923673985746307913675532381065718365410949413318371184216167905272919374742634822169972906373966477263969474612637657373969384954053135961449096817078723034365785242796160865921951388280516437918332710287532892867394222191825067855282969185578060124466110376820083479068691258724137976513992672348235145197961283995117575833476618008183642815755118458547936675442241707569706894706923433992925598790083837003582988758056726170552582943635731587822065619700387038368477513511774552279646540529414138300608951389631130274484929957304616395455204563574021296280710811645206116514414746707964891397998655672595211873632809261202952948899835381726168441962524005563996610021018526806937956460870163332023384438034220398008681250717419568938173955228720725411873571313631769521850691515164840567063004449627681203680274564197978204760960030801463758725906203527638845189754580424578903398328178624188008740326242358650347646341340522684715421260617811547091793172106090045219188923470313255185902823566600873410870238059653719709259706865134677678955509718044783349044046384335755380219026186490721091247249693099332520048071807811380008513582428760854375763730785473032659704050772466431221647714472010878766121440219521947084974545147253074888408483107354799698741035650747972451241598272447402824108225681259947070775479677648703043101999746854122535684258018084868636203947156456580667813525305089226891989697800003916941881968378968137180810557235172136673692817144160516164014519840240261703014755103714711965563478359166982784853226157705654968382557769428982084593094282832269816003797552952940216314724319799443891798053082568772905125557803784248397446115702418679504235100214982278261772832307336303343430277139129389103009209391714463734893003707936861218884171870190822961714756841103670253416816308709817619983772159760745109697996773035527584689220807924146304480912428833639127408594398833211411154748185943894615627055295767097289883884731532842506605607664964036192433087827912999076932134851331352877903213130230450829020554810420956422171354847045304216575173014120628216521483811665308103434595182193436859429401125385915567915980275646033084994070156087014405768674406924218517986848811436362579162954235403985167822946477967408576676712933469617078482933396560698631181605249347525417799693085234388187185804671175915170887886190766023171024703697364441592108897087418576234906288178119373010710086686538798315838489583407020515816739144782412494091084665538991457132265154913120718714285313360058857409423964277563964844121375257511874560530560150037201757266152806647181324487141824528803084603204922515632978363668697153362101987065266692048927485353256408983318170411363951085585514265383428597188720583520642195579984969373793362705785058761468335342473271696846690474063214821785098337335264702615107200751355988605582651042720108907513248499319422329403991838242953765115358578856769024110468220986018276900181495357999722921368446609967311822116748039227745793757241714318220660985693253233707268830630875367557219985166671725126843408788006282269282142859155999066163762333823996084762678712045938907498352682568701586106863155482702829240499785509125195980870945931116693833231513813741668363877737600232685011347830266927751748500153737624881521906166267709310271701266139655070853170546747661625870838429069537268500205468186628216320455734902003206080586683385300771154484703612843058933237931821698716123573031331195314601564264821574173954130171215122057652674900324196328058189459133512255257131409768479756553376238026312839405528381143036682651268230385622782907010857886754603345814295898715215418205458666523017248810567326192411937666080248837400514662231791689069465449310112237323679773719789355052890286332867891373612715383819008697514697427196635274927129167732284496551434855207661981448278753227237144928162538567799032899710215592459603953730025121033999496352816705930667168064458023555747023552379917906273056328724008829155698718598283745052568265147387893402817929696200439412932359372840645965850426075567602240117303271221976684337914343769901975186155150673583963731881525529381998702154486645945563179709067889871209543126907952797282494612090768422276869033577359519592730059159144491830478135381679323568472918000907849279799339301798649208685065063178830130795668880974778817398030278435317300575619587085078804555912652193038016704311678058178999945358605462609912671161945843066769588540914070855398896197803452911611264932750671199930788763166843754757456911021039208770137287290147786405116838579813602981729989137307726251257348607828082540521426136682032858123154494444858992652066724091731870270826298423559791353521319507113514924785524448504050965167680485087686308408353922645516378941035801518316466808607665483688894345548747465741859414213516800270279846512272177544638009201811888953626863173828019633516078019608648031963064255234073362877649117289299395071634742815106208411989917903529004329140117500265590855122043307211656126379164036051886291916557067125912203893214128739177209136331932477993783975730560903445205117924769078766061508128800697891504952222392206623809387685997241070358610508224861298471930680123187135769995179985227817612276035688568747024597435295946381139233403478123849519487634367065487500357449541794963520467446574826732686078578393185783220018555307400110252690683499924838055193701524455002344483591112800184611538203783113760713923031044036375214469487492410882059197746055729289754513615600730911143579252489933556663126903830570408133453419993839910858631896762990543591048298620599981232010739637226324911352221984188650428172429003728218499370070625434934018302819910665233407856872839230800446667771371419955016772054335071049884697256440815156751998663500300533961124953403621472834513307641930492231381452229685876279804863194001801364185257152595526830590512710632726358509176250185626433926587412837991903180887348134585022904033306407093005727567548415686869197126687526110475854037427495028148953196411578726711264977807370920662544065589610726723327775724652025658869644747222228785080187454627301539792004593055252720371586273593528486104682620479947503266199959799924757967636119728133478233056065498732353230787553044884356075548466816899112562168037776939209650739465476972744797948970374982531167435108548473635898654452384130700724753248870328820135015695027470687490817519057299690683196698027575675105863327997040459834948597902031818792029197816714428509959330388625841766423663011167775590002696522039500324972575242339072785424161844973689209494596397402362177375443914005969388072530092974391725596899800027023035016768897176464094425595062761379881695644233899583839778606046726312623273819500349627008416285905668008222187153626936276100481587582073419929915674332779794267555108117650603725869179012575258857487930577036700019536088535644276105835812985955375615018380849818524430215020622105639566982403767789122425394047578460362390424235023047333707975011800072831898349773640099637287476953509606450508735991874480854449363135888130275879822630436525275471911663981733272743554315706592548722707276685181962786186763711962149213809827110175152188694045353847891464643487965857875070105553045644422740993650739863225540315749232891129908950065279037757983062271908297681395163017039035704403102224514525581495873948243344421176948351983729467936722042121963953128817374877095180034941618339229288463187452360658281870793525017974343060937841236984994275880022400976644002195595496231326792338706599720126177119329892607195970469399698159853114553545977084925106800808197942695878684493607323694383590771559347322851563515951549373549395962877327304391412825349531113992580799258445389264931359300962056718275714302850619927797661894116602770586634677038871007415005697431282614834531207874561824076446192569599173661429684723411142185374352214461039423503820397033856492572583076589340932159141995928325242509031885445099083524625404322047240216686056612625071100648957193956903891383810311209183428840929561333085391130973750001065546400145935452105681130801195887525223405740531704428395925867518451321123048146583228399850716933873093783090652333657750209581936670759221753259873165336053244482929636917072569912909060155712297327782827056522224058036371939079501829188541722128731977967999521963995006790850349764304583534382539203427806773895137309539455030143267053955973772035714614003986666546617890633081950686261431823884427491175904116113001397656252247323149072840681087001280385421730050050392340581568259699726793641172340512914963980464421081143462568962574658930319530073686753075189462290070267665928388763777255241495469481632369134090268729173999525568499449683605611592569182409083324313358178386745416100409010185196672591640671651740865411781242415642208029665069000953473538733881842177576026465544964341080852407171496044803755363171357831452437339728299421083054452715442653906950734798898332097150873971661117986637085508881754938048487594003453649086955839683621590612313695831600153154746417364404603530231119433118822210916474778664128620822786545974502955940884980261806846381409725703505933346717392288873214570467474826557570237474614107987834603555757079208152360334502898165615170791203914419323890874239964235551285155478289814033604278195130721592230091461905031553628767333377138388978417772533893977797839317790646070484991516847361494567863607968943498652685005733901586282292967137363329476784012742097795310898226813004184241600004303237829226244427220970053668864161538666605391038340269815597360916544973368487424477277375138689829234256922141014795564128677332493627415190783211827662210114085899051174409250816083740889847595110581571365853099022553180096617597585930626243911519897494724940602908508063073791677729488958822793572095851484235476406720414174358061458453807880992385156211438462479269090518099933594006436908996424793654695475205177268349813155880380643580543848296981302347204549191872696135973968221673636151549155487900132993014800986210095987525715688938312167411722910063793818110374267515000268914878151530737539372731485485428038424703286471630700308303616720897138456075900657371303565506595310364384291016522942511793420702532534865670264307571145224355468811142008718528650218633862962654333830573962543110306426436892812972405753183297864849897011239275549516615026015596447829975256831159957223494015467388361109528559680731318466381829913444312512236768221415507144539018280803949653561413679962377004634626072971886946553420451591594346234344167097679790524442461276875377826729873581958408765879603714425373118308966675719397982488292694270999678843838909552231931238159906112716353383531074748982034306533218399485815845515038830163979209840999611594768625337542365348348150073836437708727863899641984053349989552911472831503752051087563131582202344464765764543474145741874655411178049296608597611180030975577394976663073262479877436829895059738321059627867221395259823679032143035990152116515455243357426003567578369957556999062703755112613917263380607136263354980576269402554690928035660147796041594521031934123858058635127398938402372495135644606748998013138155518624079333335948519046865779920349120077413867577710101452643759598513098286453937720821239542692814913527760481287737330393077834761412235284898076511485265588648976548096297512549079981525528603221073618147008506135521257466495042743630125035100431022455840768740149409037269422466222946471815487107835879043568545589504313118832189323532880534569790282241208881523662136937105087302728823191000570609848915546180557623085539382112476363969705483049427391148619646315380632812783814268472640518111061900202030690931391305570094612904513199158521221698956016338652680368446570533537632242665824483866773915835821684269231083839890738288232250625132523877665829954179160411036942752133627350738690601528874710959543203690356084540323366051047631303942141287817470665582176330608662520815645048409404823856934960560811239809403773625730545084439511615856645702367870402823879079411003100588517203512869194086307615013880709228833624082586525563429473835722123810426580043850838870016891144965880106668588352123082681109903046530024260314539920382887395510900594807985428683682241599316758697794170103560896037149803712862254827200940363379520887085777117185398109731808131601993494033647921064089138559482157269703545745021278950403970517119933556271968968694828518128427577617445311654708167357543858549564577072527768912567315787806139271644866036445197358828494863956937381926101731803140314809713184798744848625090719958212278427947266119391230338898012198626907731198385436031688479852931412854628073230734083913524466170375497576824102865044917274446282447927655308142151536463906052102122959711553456494533497287477620461514856218747075761528887148359353949870009576099160159124946312730248388536739751356355693431979807744298031673221427717948212066156533584594259816200013260535032881861525521294114861106676986829709099392767810340249212465783707576288800233869497983106946714197850317233537184602353349903451551834702716072622399170810443389875227752617694518314893086865529912880817820346156358963782513541946558532008927242185632583695693603855390248505438772895293350717316408138867913422923906948156007924786062573793798796294014153146775545140713226785589879490706231323291856327270044981886915524479082776559073685907364035169148829634686332621340389258967744726762247400083747174070399689389042589930053349234657063172772940424219293647384065608204062299602500443797396410451633286303180553010081487414994278502406147377521978949565569282431067362597113956629089590718175951241098820443653686861036817490582582976316466331131741751754918639917653067025001614359856022364639725798117138780618326843625780530360697872979416336038553881186013994214634491217603273861231522967836733709378189961751526728608517544114061366285388899326485134047906872435546575926639998847183098653727792564275134582412623271742523454509711473584640282148318109686739013993832774405223994123746639993781863244246755205741401517485698400047014066410814647189918035172898240411470385894862982982222529889424455631096616374725038199186507481257346434539612720303399465137978995814340688008049604002272743107335845702110204996614449391563762651526436412853113634129232810275270360906125125580533715927385613155582201871740308155707100369374690733880101985651932816652998272109286053301586668905418387088825328432284585653025589946402919810665453382702189855624807335692532991016081580002813919142902346608540112814460794089076873019771367991769848666834235217759874209628023983019715607106359046450126632170451498280499278345944390346813438833493962994620239189404495818438375816512394299563615548650881510838076952191741724794840540419856939697057932582480461185259989570242271624520673895979824769480022179811300357052881043676347507524225922553226020704067974889233711405478515370913558094038771589110120583701477440725225660232351471777870439861462735354873618661585755352782237035619168860204762241168720391051368270304342590881568849167436219020308383448274781645961658214165105328800627575847061996180747502891913982786996019710371872067955445379075555577979404802046929328747453688187363981452019569603895082745041003402836410950954920676085496698693206765054317010141657631974214327120819596529809383907388706918667766217718066058444576485056885042766235407561731969955128267636011694213691982391201151595222688347933249838194798741352388334950436916190528698756520481519955623479166481444604262861085073061667294885565888779164576796143831864978723999533924153997168715052797639562735404754817001755002968335300917577929123222971428558777951159525350114156961791553479769704710149954874409813701322071516363892968407611290975937069066416033422058046479942876162443101717950683099450773209902648886591110313587487077633019657458500242766268743140427567132897633592598605864113319739476303584328987949411084984811403938532002475755759746176798008044373054816697203616321179027803099488312586140815625274441764572730259776244956189601813794767439466320714818073140350013681032069188361835955530658299695055637913695238080570174614337467648759894347054876458357574922569077698284850223012542903871464286886358384775764750546856558883061226722617700332261964987539340927126049371905103950235934050477026825068073057319660230933518201594426405845619409408467809052941234839579682038535509673291439140132766633014505836318693032381099828928295846519788368449107819811516494522876662967030252230860042430876613807067056665357406294248390539506801814186090706317289175496841159666183365704333065844506505283030778787232737398954786509375723095050177138283276325752858838997188785519232376594804943998353288898851229248296934377002113217304365013573984357190730489188128565255059776594581179783782863451681113962014796272870516724925629484428659346651319197942991394078383001783424924025486179756249020320940215235486744116839823297968109944704583470862156087177264625194864780919041159365086127315135384585389029933461964016806953534933209756475708362506804153855486338630892366685065960819608091051433859302946849356646301398518989407209034564710712831028982230684407587954286707348308842461163668050415704517183704138863933746738839415296942048706304133825371476203787445661428052828446602545330081508612820826173432765835859287729603812791246066529580491573508664043899855076661156895366374720916709843972531269773422524472676491961578892611216979197178264179987193892436924541485300055936265483888939591344382387557947323388754858497252119467121955554444726771839250131470932828823061500291363142377679601925338666595468686246913564771126594151387045002981114697255524080897240596527616329011637151372437049185454275980614836111323218454922271287890957813740553607552432926835686966730068147946518061395571235411075412362064991413026052532291346978117565148310120300994017881963606362796983213844596174839328103958033870291327214062105016573936125887691227718927570519131693935866929199125679868294313535909344909965383937665798716177252502771180834407443584554597870226455687261301906700792511475570941892998881939694213221882396497788240510224702448361276111042563388134664622020989988889783378952471598516956814193943911398366415415477057964582472623085635397286936927102348770324554567207253220106057314288323207603522433737875168214684665094689955399790917773333779111878287546298440280328103112428648694418718028779789662200898956023504760222592959703638167884352931846989929316725922908629750222251965191865268988678345044065210570537087442193227795594995195009185193078939246585778592135406137318212349656639874005145480319027450190106789069607337696497873298203320129518530837095295151862475117702876372139469656820232319449440449313337623626630184352894956202881382215980784287243793574050498675356550299937664941501108804736631797641060960380209599388639009154400937732799373358699174611533023644157381165540455277025230649586664500466210431182161493064166415974751013958738370954604779216835239161823924390060972236084014086540226801571689561311944228033574383483090736057899362859674758134269559149939278639689656291945062204234185865928844707223019201140911584865114598472257487631371676910393324929081704318317740042210151094785802634580332601569028271360992961750867977929890735282207428786561957531603843346672919243405282886437208669111014417689751653697087865166797405696864085423304495164719819319542432482802856252644387114573570954712900676234234893104806099971463492200137235806539687542056523355867212878100486713597306048810021795283929905256028677330164541292470698220249844223822492211541754539017517908780821341078812733580141063116446492811757018459983347098668129317104518003985600689005946845187219383205800074658420500303608182356345218983824080301838604518653667168301291931294327983123690407188201536796424832404589551831163608211580160174308153649345491238499260358115796465243441850582699306262793546011784605548861045259636598887516102972718089824406343636592862231903669279115596185474521983431407812063446774068243686784063912956444966894929384251564018713166380008944371241529822776746083044216197693514673508619644972338330903319603169449857930526588049742692359144720332574327968779290239555306396018574027937391672690798334336607463690638135668202898526810344876028805268825798372818508427627056206608887813529686096075820633069759862271490459221769287756979014058179541749362618839636489427361983201550091924586013337118375618189489542750755820659054240669570820089971954346598816678981989081711309814953320344567333574187668790420752200796794138111186157195002403823078504898281081240580268782143634297748688665786180683181698347320928876470446894669784501133863851787915466198965584762470337527400543202669113141081286370549039193426209081055066454128791925096966077542712029448189567036150826735471999935821043182767677734982449910944932007757764514964279680836187987189714903382459572484866280295489220515761568665508910012954758617888882921391511122134186087176683500199584241801388500085031185076170349010241475071677981968161487744672836461228399562284951620209167631170038418091709132922498190472325164362531957914278635015643426933759873591326674985206519446675058917061387064850746600323473016640787128835348551698544571849724885364102591071339455023355963961372167820306057501999054969547843626062663221264267203766028677483416025647065376757384910597276504807711159287235931787376025191177960232778517960647789087031670656068351700267069908421154080253805384009818708782983490105097224376291032485489183663377229532088637893961417318521466104379091544554809579968365462126754122597898952166902747506750736207963999578425601814945233461270268955194656762705418274957454028450135751970601292098306578245816222003184031246486169927664836841617608872224960258238976147370867962896922493084099022507182668013059410445094154322447855853784850595361543762865954266777675260466223596443435839978975131250570233841873409674756883457470592953663514293502492660900338136377804624951087804457535546292880885246336274046140560133543773096927222430321126910605105104276627802274620012227895111709834932856846611303300207200549199222364399978571315848922689072112512819976520902281916881290231553481707541765076135022862764240955210299404174227999183847446757627716203411965016987860601882540908450165310576811850583901570338745114835036746441025585017444778884653635839257481270974165460363039374115206231580792200155165166531277480328758779923312277959820856437229965340196207324888281784473715861072541684125273523983258441012062670620179897571048420743736690821251896614292592717404814997803236435121554367668670386420032783771102505626838301050599823156743215049747500548101901946520270426229649608798703388236717761052766650387488928654358604220289913811859261651589269907738168736421763847020553916061212892245743514411226973135491553836151333300676859085120297457921981588965272760636410634110137428903701579243393940814628026966517684157826112100189949136944063449067924207856244095168595126647230957913743783345771287337360210656826319352087237784109400147335609644473253913180772970550057181749293578586333561079287876201078169660950064365272997310987748494988422336684584358041614832336575009676003626544696730621993171189938582864853915823612611577006118753211376176647078478566459910744850851298538335288199409875096140434926173503103967652411784523850143246108893072803576124250956083873911479126676956063961910545767159699661378894234243094776695150138257627601531166806839232485739517310226705978281072928026577790013503851824060408298871536939634881076958229354151744146566365734280620947510897053327702029861477214498424123942580170708662467935996530331964573917581815416677491934307167909869643542699436970607144838717324990504650443309769159524534279231892668788378446822922811831664377796514893952171010923419683559728199741240633451783733399885297878997272228845955419878299076754714199896322940365399758993142377743390036144153251795854902079498380444186610624102468199067900043398452631584542180173800061373775911600431431313946189600751837633764196181252032990623262176036935691523118524453719183051364382266201948684146384847810996562777668155989472214342703257410186810999118736718506181412742182946017772197242431299923582385972082540835864969435848366095115875781459286305992594777900137159202503234556003817187938661308915085403600337425557256412684052157326057807661778222258201374462811063305151855458218266204931857078735561537665964281258356563316389032613938834576721575876586397776873496300008355723917683982531882962425534712756712558431317903113371048429927689191314323035165699877251198831554175126498050416979114568075738988626522711650497436639167959042970468179101394628213770385749584108362704223181286352860784749997269267398108383484819116426535353831035100493308208102539985779788462588275653060537340344714860677245392431191182130118047608676100337756360415326107100966078297199612513592360132662195244061335868190955112302425008178316496178808658812507179525275186011480788902099851926286054544561201356175450542526348495734646052422225363474034987438461067021628450213794536150330418265806755646227727966935854352817976375222369819336169002809021211315570893406394611996794926773624873450584852924491154611563464304560633313800214959948353814436377286174860590935636400697068595383021362070472382112234756697539156760750013944170526053101872617781717329014960085044988127592641122583886687262981440316327424055957279973860025867980427764629761682574548736969718451147676424477252039593891008974611272427975395750109417971548454987651383420136099952914418240386070320070798285146661598953113783314793521784059841204167584123411140724337925489053315809280573307598197542482545892303188619328340178819797998430296840527625650886887914955507476075175599031145591737051768711519229960943770908717468758765342623258829923239683573149854411019801079175872706275093677436086115756864158412571751242335386705731917677752003156921696488003291090502733611591996634301060033990301149724422835705287097301251713117412690782637932065461506079322724841122381603342878968693768092607270722225599141923725815572750579495153296946941300867775518198391680052410611522468049739795284021372959802618686860352701902911283347180189300884839585733768168617598270578729577666328902367408287151378816764093822222790830247906293593522156591028170014665009577826244771618264826708028900054701315681266744274802899523012285658753278825355949080160859708184195837021557944028913240860010316088536104803364664479770638804730066432986100870048868283816607525660425461125384774477244669566431059743014592885298234486951075137573293288524942780258913916529730037667740847252794641135695882893018271570581866233296171802386854817751986676913721191007666288267886476659738812918340772419145925976899800321917224591656228022267411713008598427427706899255484532880914469297306160088537071256229601047672025967627807535307721191278066324878181237435896212688366667837529074114511432695095457932516025868613309696561118696535477168451139697124039857340410347809046005130917996568076543659126762807714675101598138319048728148196029523586950728991659347452622663785071176705296863877488017237758659005283593389514971214126601730252037539416426808113439768229271859352484630325209904230796766172369090741075000873948675617189143133199968646666260274175696677233428251300970747606758104247807678956657863591980320043785779241892664295738176890330805380539597841435564310114453237603144381986026230364098456533267107154386488576484173475904619208486118775795542879777571463205385423178521775065110399472422194967992917399979839030945816611221472411583422268475482492879462426829361039903485887760509800302518867105148143978886290035496487967267716829814967655617807465661226952619410915038030938635507804198644555161301300588453143597484568623824139101079317334438557417229858755659787986142835074194768916870938208370742750319357761246188017800173265790146419275010828339916089974804506391593123221597110384050376581372466808149296718616006429716704334185764826922118994900255050399622689763694120125028748618639122134279063900223323080408506751000885783416961923028761061542967303370785070508745968319423013400917540285868381930498161107149411510810159921230992377836520173945554607282611797863959467404523174865733474354445360468707772545573203692119566606123606959434372206188950765989103559401886391924141206933005571527022085992620037241260113221445981656813844123008199501676733039158769110602671503571159412808841338748022461063781464606003131078896041329645266728896287095160572330971973832984803168524106253579248820799803126209542185629602946477017304999647422288893261169101283087159767593850824613228245867063259699923632435673812329986688601017028039063980251261233135015902424119852644075333204177309998575681606517472637842407769195641426584691892598338485918977470086602330306406101671819593404131900682683460318781440093091415327251099912144807163358725453208579476200492412330711698115143345114669834034631354076155572272195231384534985980749634407152003298315877528308279949316004769008259216419967782862782660467386642204091408362273563720416618244583205331866542315812374127437806750900215288000938694284776285454339555521245279236081259649834287217635602305997839740738277780049204077576153620304050584272200959799365963098187847046056673665776229255059305935409631908110933804908021011084929903227218044622746394900644751771298451419942685784193771574411035471260788506998343333062466268197793728512371339188759488750815504066514065449093336100284986175311955571915619931482904441063869333551562286884882940805619006252774018196660113878493712751537557318722143827306690960300325670039378236442060110614637740432160856878970241478766566868126004144224507446009102344661924649081160275068869716725467033860971662719051533831277628807954350185062014238683581960691170896933989735516233632106724699527668546277492449209483087607247411355703959112977289884878986291345378196340197159399813223312651616935039587938969351302236370008301503334629970018471804076449564224267739321767977380127854171694970270098050294349764949845873272495777575793822779225978030032159815284549370646233522792695145964053188559662934664458463321928085883497517513687426819245908572463085836009570181811541908869518890028198420334368605728872590709834971676773347717463938029891241073972825319138690086952360331783325131014555930624513001975378686896205587345705081492056629674579186326235950598557824997989938110296646593042451590344924744504345388784081205329749907694801401008737804647146490842500060422812014761785321379126772139625621692173917374382580368582180149483800789967173872095413674217900937140463510040274938524145629964860038772895339915518879254454469136253413360467654396823829756441080064650701514184172543777067293295077485610387469087152604132019495210955844044278592059175503785818988872271565681828369405536434864931874558681638576711274607749748786109235338856658463910905338971631499982297960472484682811001182282577354332864320340361114868527846771752262462649552209501419689947377969242883330487024238238015383029515278662096926588308357057442248951741315101922243644423174629998981234117830988522743110176057540873653750988125848796428836694113406306200934490639986138674812455234058171458051762962555176502142644123279475265026598171333450056411884047096265154289473244483131710589544806319141986569424143371255105046255153246421629030128603060846925841193260017370473941633998820463007640317400244654950704296965998051533888246003914767686006053022585518986409772494782790391242545490719247314577662547612932946903531797276801520551175754235893073351969493622212555751698181589681512402396447706416509081397514906360691611454819372681721006575995680380232569207338374992036250827955557982403357690856045864703827779870339322914507482989230961106888061204407389415701927416275157119568628473343985399959385176396060939566775831246567699417878744402332658654719951672658452796519743505465573637420503662768679828873803600601977441066427430791134416046643237290201769738853514587590657552845890112405905872491904596734686104563346188462967480394748390594073794317627280553340931873608065644020657597250485364994496213998269332259382281440817452875744562666443789554195163553963822422825345355494261444737428207550981253281584817181586175929357462676183356123845144491589734309264085344932375170383389606452508337815384775252696596339304278325282114656017440763393255939114699853450361367771364564751476111154869857641713916175242396846348082125788643901887072705276188798447970494920395416312532982976953337586092737380121936614251919254465293338188598362499893258458910377897179356824567352511330391969234820844476560106953575384954553958888992020430902443797363909265345781153873043051108487089028119116394360195870788269255230239196761296514932360687082474945669552235713316700976417048965500518599975241154182599099624458294519654815755212397274200828090590627803545069613693031028962610802962013876404629065135253463092758318988645863496904904229592749730818171729011742877501876192470359503827092630587760474023165203852393976025502409421488616857701635739884791858074332277291724843538023384590367417373244621492353371976583417328408488686550833321926542730197847796880059916703962749143417537660669143058609538412530097293290832210222116820448028044273324383946133124117418828672618602665331041928345993018972315614134308308982432137220902710557981005754546767408108018423917055346804929905582656073681745380370796061731085791196174454555244578244423537985937188608845762580829241019908592213163107435202718899586153909128023885481134775477538743853336801886561894557981818341745620647604649015269869317172014935063483218528653347425917947249223077758733787093184360768712430551982370398569859777243051068108552274891687613978697303189255053106741986024330550185722180275720849870217717372502722641435691622685433929314813932890654972017986835938686632761291908967341011959574286578923592942470924593562534946218512747646648622857152341912707296402440833486712512118473118362661399411975157788055276281313723233185231461328840938345243999276632958598309897759130172016428256007949740351133539492811025072891540047366884420512895711955245331127780978793595481836373245945502632144057405284979663225457087076949233515213756403462633357922938129930675813168452153057087084284761735109333887032864696735746671825361967449874676982089827057817298758102901643098535892615013125528424743534914471945150030125622122014257959887842565031627585440499742757789748250133797667641228233305203897484361078463433382888580371946767529890562219949491375645255723253475562178568474027302984760829891252214980391312273665804011782305741233091149175462399795967778079586191561724585954692892887338314882932624675925498515433174473857619669358497081443774535636118127888046655295646962159526220201506032354992618819550417455020763163164715834300231817399055220318987191101850031263998696765780255765668397651809483259754435575537751736942990898729850897788499224345794441315549773638928773158948749740449766090517951836212712290246168810407697246804417929784018667069750772477484175463090127271647027178588794841237925898303100380309812639493246542957323861954644936060187439785020307933041199750488601712371297371672779036996394858517055329441924122018807804628040276553894389350610666035506788450564133081938457058494722645373605604986304542455824365170077239756935290183638211056687935773230760030541727179719852724672879757003863152950813036271206880610769646151358103290192748700610519599761532771667950378359609238714237847821052309915111740475308024242451560872944696892008999029714048804270427362675615290278099873467273965150375860702905113661914391422673428173470592821766640284793946150686716694661468478386840995473482432510026305197503783046567187629907016123901064015816297778077161389468869360568767387425893221888613203934875442429206404358292886317400310984359595141709007545442641840553108828221305641402984613684949854582536022353404296989670551438123025023289518165307992729386031571161849004236901733028816662503885950322172763782706700178683335632696110739798886489674037831745342372870313065485599301023750692539741708263963847883737961114820990124434537752598392731428637591168512245139631396687958202965100254073325385852755557396467349569167929366834399822600748744548385219829707794102588498209268969527279754016838093024618981663416236354648147307916126438287719627609562515387653371703696973547797676105520396256883664442225859335532328301870462439009693840716620614242106685868494478716119697989134802056237814028437656784272572633212621991364107531535277012736901209531620569093003187654830685774538058543970458456176344607690855129029700599117998636159213995786618703762442288407185855288354801628477277894594832286112874176391766100727216352462363931878512563224283127346023771333439514961514398377163763067649123304477499139640055411546341561850616208015199489013612685610762745048905040275929095356297506563452818206907573624167231154893221459548253688592079822109895575014768447856552590032460747463782135287858427092857155050360511370432981502480116592240617797575827291937182250749132262822003652755144855091425908894615893433358164599451620853183616280841190135247114680736455725616622501766110156332476734089724583414662477097214756152207188592591309713146010483757808622308163648242907410006106116181730303237715201087104709475609362564293722922927260976817751955609059506132324873564933907704967699476916915858399518098459385125071104183281907501124663247245517314307309882180327229870518988344438799098629499750895990349070116743560681885195763330998446239880504714137416813276073024226477905194272434744629864608665305100336713509925170281135651780919573919617979181213419278981855324660833295012803432241677208748782974047459943067600325120925989983981472346434800055742747879719403734826291460523436219283646561137232328966023111395546461175629987707864014239142031015172015369245295601424604227017027597255414106284530161892902783940373568080799129583258617434937460387787183294169156552564291768747330458761919770165816206044531830778998871652431984832784840124303252457274136197282625296866590178969528561808697352073896724853291978424448961416298544172946223109405409172777244444392519075722755547568230271401323972827192303598557983211074766983721123015220847591579951134110349554898600375268883185066231370286083712658805739545925748010838535154715856512974075286088110692712577900228188669060878138524259580624823536273279856440071260124200797724583308122374257114787691908752439220820068348928321980591279028911493967473276721632546386503636042935859463652000294876094544637584370581735183157612395396993601215476005055653527465624831933498051870168514582014682799985598307108620430730858971550206911677929623288552691366847320169166374328560930931934694959498893479335287709346933572238384075932924549459214767281789729421599032940112887990579086736955889922639477790603217035092635082292960591518259777686684979713320063127098452782177003302088314660828797719368926211016570427890442559147847340080797262500949607906669093834353138610531536549138842111777967043062303539870310547731506906483051545218548521705971943986282794979622041935464158904586549909669954498884697962731426788852624248186161478189580853987644674235032138398439785534207279360310075222514145334359111791863296855973515086366610686446282268487040537366150741005645639228088283087969196900769144051696812458899294504259206390595188201676086169480552370937517768274634776632450120172446006080169167766743280907517404792515676217959933580868586637234025319979362969315866843544118362163999241870225399918536650597842521020962943416938169806528553434020902761986200370048889537219251833386140340432786809114725345366659308441064019085218265756341323302190627871295100427196492342482267776073491460413511548922204915069945985606285270005036846000554607461430041204992088301184913526993311921504864395093021450223441300850458845835281008950972852134347162422333738671175708170947748928029457560137934068192392617516675986616062203479884645136506069673543558869126262660824259469451899623042606204216580773702510532892179913468165864506850783564581773602394394205444490431060147987343679441505827753145869392265658354001400400218416342253908103072244432947934485575778124519176000979320031373232464634572288093424030736498667860016046931346160714081273663471046495322425466656317631452910567437232957612662456254093068219542524638319762096398505967395915901505142155287674656920104075525592850236528005340884568189292911007865960206806837456470131606096616883064573872736189516063385709828756184183707991105141731306768166375639546311380056105754797180916890580169267967319548205339886513795546447603382156471873148404025434655749054276475908322942219561470009225211327260085739479348542004149405691786339346888797138951566860560325056732447404568876729489409602466398048514223910124145555687322076598848505138068165488951594047509985699498062459646020916299621526046769485373467584120204759694301670110063068893826023234223262212840115220777748800960476066243114726951030275051602564504187494194336870963485254010632261669162069232325890394623675374452875610476885362814144259481173840988329154768893889774632238642936921812576930174153484701611744504865148489924583485922249751336474072976745907746794174788955381769042405182997151541182403504777687527953857939032866948597186370511177048099855884683272681988055902257980301711741145392453143831726055947925790673297243371720225638695630584695676168506017888771256340397616734394242874242324289349637294911750043984194174778622312774988541770947021017547647955748582665398062874168046699835889168477961691121171990781757741392467490854118224023621816633799101037368595542435884770982133350277018296237874843162626042503337191535898086984372545191921642339998186398653411225539040721476409126240407986435901011121519571732355554772075582717443732752170225334765265169405063165309864706193473046228570001738084784734700465800606930888914086347820184651534235772841025801877838364347993969741947732204204087742746052100229557786285356516798302435580084909158816070844729596237851939866818941618712387659507971194683926697006985743928881583462817946527833585514447617813848568948258065309888018002043272075694476257233375938370561677191035633934191707334223608852943770142555199188392204289577313080903475027104740891060924028857576826162818633473844376304604114283834789548538253213959936215689547318462065197795478544163181146396854247252872742240489913482353967814484596067462008305425223434974779115858875922056306853068684253810603396232937902015119999498533833603180850387392320767165134134667142166846228840203062281316392701405867014428184683683278447146972119101624028090474797088899391816827720384825600729242251124814846959670481232792317840947760530347892748244931389086650665192921235304752111380783045790289023035724107496775835308972033359582761820924116255636465802788618589287452318269495458514135924314320855444814426183099263003373378869432149840519231696530734046276181563781370919855134377285706609943686817261964154704993409276722892835585403229344600223164541899835762263705696401133239644031655765908355922086475628560781277134932126950754269364924690228547461714624118650557052379570531300924371871254312586495833085621694437229871629792361979882720938183690123659399783864916033795132002546735658526169862533758739432280168621251015580548194046853374091750177180065218325199452158101009569175715373281564720627990248904023084954052661576090154101184032518066493429790697964916181279952830043273620461730816864452320662287417644263185325053596050455941495323774179383772740786644984320404754905618829134261596723808729385267371155810419772696460713771655731346272609171084433741894545052522009323575220609264831584839488341811790088122190168699388970693922179827258916539375551134595336825551827883490343152459141705470926205701548777874876959451695711152545417651309577078259974705044945136273686740698699873993647453379636136757104111102824623287540442529557784904561824334097020688964620484687663534702805057495923018311619640019554261284523099075213650318535249253186729922183773122137145262258271100229157798531442701579798041145374641924911384860336765141696146794493602059168897365167767647923393463219835795741337149104338096544504161396460637836727623905671867886980012527426046949551007877024050764397950510768032754894804816572789865581617826035784016686342815597378624517433616755759847252495421876818960220747680854528126430324398649270270337925421625819857666746807429224633268826210512592351399827614541372245249892484212889866537945049351541101864735066963930114317114298328183298726184747140122471068583236471143262991455117262367948719933842965083697244900816559890057322756999381276211916814810439079398978305533173768486985748570509415650989424692090463909340733442638852082371261014011032107395221057561563902806547806228095863834212696206265562442617389621084024853054671808567769343665188918655934795326588324788058340335721492100256269136756378868130317603644805462653493442831582358307866867194768371132722523893449396826888648117433851070397011056101182578054941147082435752303825787078059748861324059342158121770200413461388511831076613994621624534424644055435161980201722659456982077190439269128792858577460144792076742860668956022540686021613758351156383564241016994683862261544831028560908075935337012599261176693909015441583844968428165006742540018017330482553400848214748727478709113682150520985184779819025984516377397802082943697732830114850351940185962958904826321395697713550207376835398823324370216973124878760158968574909252793587498694392191210037214748780087107418661696982915451723734080460015756797030096167679840902728506492684224998580996176388780037984638652507828813730493566310714943682878911667127935200479134298643801099725321139621569119018920809743024516138341485121546076263087655634513950640293199852267513681468014356555815204104192116374263022481628931321385878486458492156400443899614363393052151464435836536688113036320626302793617085832851618414908703677359395915951070032220325213859041282422030592053868529585593105348420285817959027354069216285263349809306477016313047473170399253691923151753497518348442078575541040501537578350812255207959388902010854930293088777740954336948186317536886533502495319936320410167504953533788231720507807555642487600544191407519065733330204683339760523791141963968997326300336595180562179280569334105546000816738662752273850371369094587687337466279369028118747798637641892593984279372103651902908168287770631004402608857020412924300696958246252025843204495200738698618723186583197390723606451973427661089199678559924809716152736854869008087555295989796705739465753070150313542570991498312058364739426503865429333106669291168651822112712871956343352375498761715603795165785127117688153151748347020056938605684997445762977912923786545317854215025270883164991437474653272379562604071692647978735536341007795525652906346217969202516068175455811072633305461482468865904547369947130718308578007285783885606034586419526908222739382962696056893544163765624325541462713496591777858023519447024563534862798842298249728537057593916881065233581976604733741682060459480048478430319057745286072626847951525042334910593288354217912732711085085339669171092044206657603073422077814654658698582815772146767125035753544084094453196419701265355696417893796169035662252796898716961882462962378349881613377200053198848464885600879980384123440230325497850174568635209132668733516486022817726865100976686079758106929620698517083271725288995039622781493337369593475795431015161161573329197686004317199879512569940586588587049511558063601490403593699009419698172558283202314645513804509451174814815716620458596352618671650196261016007493170805276635954333016263656077789562689155792751466894284158074581681939041213150417976764909677971837456151768420180475266730888347278108285812272757816775405072887455275948785170501317386522610283459383246730506401644927871258500203709057974618054993263587347087911415049056141947907134771162583181390342687862222748741372277343299082038767494539131974126775520011227404471353956825651360518626329347019353611397175975459186376472056164887047609515966618373537750066950727991348688941430274488755726898327007169859769509774097225528716305389827095615823446012893342869778068370283163440684127651433660115169452840361844848933859906789783817357853748666564714883891665434104471955844303322792566255080420631907538964250949137557267759886798595830397685729350113967720811180055502356861557021135150916250358109474297750174638339419745933832893003865012191008388431419868288615738931664731262743212782663260030852055145069389576414220873937231070218040787187651014645508106034111376789359247269585483187329918181042856625252363118104857647410742732807043727770595526603707869880811661935689972664131054733109920511100338679937731601410811393126460978312642611824457014776995704732838632628250900390976862615560834501995229562023281412761627106654852708544864663412895789211399454577911915005261716575876914371871011852496531144541223001824092641957266081094158705625071574108706611367067535223665446454534260652732047501448213805003693995938917727766829386624683889755123798829671000654740504344084106685189224145753122618931454747982277810345245959907192808934446034546537420762717417026298420364465839761851975913311312399311405300069756723052153625015316185651037551634701621258041834024767421045607934994947251290334723030445292002098736009811439151843646509499264923052082386207003859377363528666302354259020724689304033139514407688374368986279778749858300415345094036612098096540797319459870744986972869246263008664161593766205370350437784781959720220387117396528883178335684320982412058626476397455499726820536505642364275762394418261572764675700722314325980080486319914108912012177583500105541458609215934578763721065323845582680216225883958457784392702376697284097344892889085071653239229800191001011816621494206896269209692063873854170313732831329901854916222983919857131187857844866842476924646497161256972468025973554068010785070849378682012970222668372668039139865420885079205625463013264822266990997625279067849659096363734111438467104011648305360144625276478118834665688703551829942200742661996063734085959880359016903109240438795272127982444141426760187822071346150182561489114017389364786303508460526773116014662087730479618981022683557892922059168600009352097302390780436803926828828205275123855157603682896478092908800894736677826246307230787158501687161576370407603427709190709108682576403981339398409319813672238062736489132300256925270028746486470753620216395385669082095474918601995141676004045366139434985159873293722644467537820625626177906290717363419794142386449285330725710961254265186190923281605045888411128578718019366594889520818174917701238741002302074102066720836772238441678070282870500257561062761463451992979211127184375218330429066680443108410210700804719730651931186358539918418634089589831706224873730713722148753083898273913494112800489180658832276142719890164478724823812619965195695453520444354810370639816169117832208126578373971594875391436292469925142813906936697970768468751696687505436995447782862058198996876430325356179374143515548950394572423569493038342092609098716541399603115315002063021023899092607670053786041382899747585291245663262389287181350521802872767678072875873911831231728813157471033590337956846413179274579004648863757604683469428813022392032793308099427027215537862331379418586818886772515739038397809015390563023456325792149676999669269125576511740090864295590294619191680315899523513817423959896506508844524761841177668098279264899345961982552107323737163665096442247048903053669638111819959243641335693082309952669232683865655087129391757779508157364298172898845844877445735644529057119792953096296719650518614992680653692043689102054706799761972543497193871950972393143120873748476736107631020279369334628379588681522563171250671081316433140322403337389918325924691658539018722535413595106087130747537611908685609855316020839058180160257484416534315934562752570538654250769490179986659436609080649478301552925294657470837191905964209542111184617712129866699215294878531980234664927879846614858996401320421379420462444930932256382433545762347440758966901894832276574203098850462903813413467419550562309822274608370327886403714790683673870640976417663260074660694560632286134136777395738949651590582903903453864875501112629013781365210702170039584107922970390086204730676880256962301296907004180435831463234374540369089666098068548013248140136000758141163188202354485741638301208323019109920089094970885375392228775263209232458651496010172287522501797087216750344938120161076433201457348638357999642077123580512480268694476849422406305520055638171242678154607307293552596464102989325241147260698472356396881426733710726532225425935825589270074934979117884207066982292642973751362234397186117126947845485567863327708579498314507774272654519913802962137769018605497649916752890864368772894662757223839326645871832389403695907945022207176739012240806384487458068162978668248806146723270792942550046545517663003014882923927522584597466233064165494057726383090860994026429353692345544565526677162572565920031026271670646696304584470070507590028658811804877295469293126556566865641140960336963586218836711781224524422783722596738997674114706449876435018443203443576295560197847224082717074919408862718662149193446094735190017677200757697592856817574338167020378507486742780302425381946297222688778777984756330356704900202105107873331735597946342750547884533872193760785610486379793891732632512204308699382584122320296222640358917883689054527702040938543091335138192800299073418490783625864474233953980692983254930469036715576405308954272649631773424047337162001918587139711671991025901357215268074367675585692956618135416895444860030445493051786171459930989347000271169990699995949017432487568558756891223181214987321385486537803246584047386597899251499258905938025987430640981080389252089933615831949127893887626808201116623672149569251613155067008773052870561102023706543495574265462641029599733035189176699670773874099925631127373901097808308892798502093006953970455066627925450686318036925638524960922796951372528839662213293617874017969867794751659138065924005367492663793617203216712026755867229201284194991319904546496993649669629750120987794370921778847967578512836604410995108335545070476075075121532860103624716565528157343053446433923899074561536337653945276022613679794442614561465801981955091502175353034049124948913442976981111715612749862377095848784652216098861300896611495570134628193712794719243816788022166818183271337571932649125660428158178396894080412629238431316565590814275748266608514304127349241031013616187575918997493122804130647972036729252979998728364133729931018629660585251651563719971063905647472654910579975045029545517339723265582599165921009527857791094419318694101948257565435819172278282759463364102297817166587166016403951316451952639925542375680366015827658082745459079351883019422294104195870021374563900564548381389357931216459111424699038103047210398921142056082866309350031522846031374415462621272243070072968365386000145534191814243211499541050520974123731785985127051509240935161256938463209766872186329346920587021646920717362208952469145085180814922283867085052419243221341648130281104893392623208400626027674484544648895685151955928473034747720277118022083930214348304934728440731241960382190461559682552912461626283101064580430880536641541170637580417838270587762083147506799155184414771958121267319604220346349478702771519970997021100879212258845954546296320646771188152857954940208249948910289257209489884280604498532604080780385980388313525471887448287820508430984900222608640486322557585906649695559243330752813710286687856355646046364909753264905638842775544440494015435128190523638573181339215776032014856169184914850955299675665840218238958435401389835531455987140961125532936075248523810938110220053473578762472781973233370791390017785982824964771303911513953855737359600088258160263926497079491083847545023082622857217977612518974125564825541893668158862069976311593887385935079616240212741254780829246866225326921098554680371538431419786189536919665961144941474578030785650062896037830198142585816387553791485525516068022974290249531696900531720511035190729371111437574815387647476314196516921399140603493700391552066152480923528360170781734559201866784977869446856402181589197783436934920588772155759637050762676238861128898344211368248209446172169409505094292346669677891221054400140849916314275791305685605265385019193356913581295273545781047584023410465450989627834464097778839272642134327056276628966455264950222556913858674871706430329230615865924525757418483237421953663660345767512738785727769407456322699272626728364389764867136839122233894942737926232478763719780445451029327728236139119425170671189902830758825687922360354187781410363193178162651304453935830047756309357286678981842544280383749669402758185789397238585650897662409534475335951150560503905378630502947153147361335932649788942751195930436886365257616658274935824361511967268474707832178042256052215244996945216881536847448628749468379770470130223439961196712780161216341628333407363670666733965300544232652564844760299274165456094972630120041535957015136301689624218905004683815333039731613689408316802619007393656165822096641176079571538501706687661371288567998815634536140441896144727563541193686799541434194097968981043828045284739556506555534536397523263075324086467126392048432108385437999122219127718955532185777736976062644858771952750712350147087795451339232003217281072444807679663073746664810739194106847595893301677503656660291165928727185040863512094612875157745178865996841270721419167864963049191790151059886145178537532419793130075446429042890809514875804182290821632375090856491322096758283235184760129999538149130533741776296453430595314425750362493843856381337557110390535276048761379368455122009607297400079634864998561434736230605470903710347588728073261303540773759521104105387391202706146151224839230997576515772642179853330810384165137762047288121918483311625279590047094690823368571885578837661576457123941923466048318830890267141572631222680562765543700736800662285934968904688619299473032363824727358579799219914996507617186274482903822868703788655930576763784711935692061276651951143065632793983074754738622077521165657813376822403435496193067567900554407399369358481777499191559592836851428160596823688638068885935592531002846761776835387068386238732807052689642907262029800677686498106829461485846630902595475856508198352165686749439013443691473431287277032488342401471220473213533387776501363467175924347046546014619486636371047647689691584348880595929580865150224819122655093263237503151376605573357160138160356632749120748267475983954476825511781693346470413222833791509056024599439759245357214857745269672412991345699357362296690671021432922101351298351922850365568066842286258900348873408935817125978611665360906371520545244274132097479006475787430348523729502444420617371040478402383198142777089112408493542644642566003318299137701916735861680782481052002048929165183981000498254157460994165583081671402453677119111071629848066033033745722352396975916419361402735603692689114556119874905907733249379981691868386494637685575193468915832366341515042296913787609884369117921865392893476104065716672526060069466568172588677924708341404624192569727177161860741123938335061292854908332052774968085947527686416597320999156554945458893546684412618425560151930989216966361677827232863447322909782652041263568836848195197143822561130907860140492932639384955752195598597532166135179182385950713194691364279507072603526177936067039504298229664004152338997108429954231148938948229659844764494456196470144540367972973066212824746845993293383382934499534896683518160185816315677118533668658427903178816190068601620815479187953811774020824350171788813855115568473622008366986337179166764494637795028011497814277704927233739773805322734454498750391305819461064367412562521570131529001146844742100111568058824964481436837607782160727058692814234021039519037251421145957111121829838833620807243979470052772022185562023435182701144929329810600921141232558539348444744373185602502907336254238110428689394348957571091813594143082250455793743641098339655452396191724335030126743162784107887644017534034901545494647079108024970640537446439417278844548558255477062475086018423562462425103925499259714882172424404340413339567259250906159668798204222988878993755154450043215064430304461167093598352146243512526988651270955326282947479409010292859668329670291461465798205223208906135398285017411558532381734290109644455993972271244193997894630709758320798310772526263289682363332308882122040116961352282218938769272707779186097791030693682834640253255504093148160929050992003261943311253978839768067578064613845568395845632090802757587483408938639293464806461509682551950550270361857482849452576376217537005951790113960174797730525137281181281430674468267645865717283596701665152513507326694876057067750776018141443713213996901725941040803820667352549261511425579952946880878972914681897186277539508194069348709378076825260513421196897036450845498820460085520876933430595730418548658793660562616957158904415237216951694602000378318227052779902191440013933519561327523190605755217057326248492119743470528733619322046746851844128494124691434014437894644306937503383604384235606369560460124716552123493542345201622502782276197317127731905887512182052997598853742784548155293555574259279180585570264131628035458655197024149161491384372614498410006510219518474164729913856023875589452948508367674163293374958633979737767851453574338234098261574806806628996460139019847450668264208923536198895389443757557926407619332485077424019254313127580983381725656432976170750921822985712506747473755776792964950737774496027755124042391163130766152400017297364747766849028465279885362441854342343447905153444557562904298637867948010836937163134895023505337680972490110733153046497979559747323007794535549111153897641105592213761716552574755842997288176479881473518740370650898767070251246080959788406826334852950307765842531148022688168265122535915700151002669747124923983657915847496585500372269122273778053140431331516965964241961741132969133601172654270146553863147375651325147471229581789079878107152507993158713082518612397556390905772334947118041279803010030627163334539839246273844859820200936551531078367065100989358596743596536557950215692928860662098927690864783133862293168348964627253489772682727987643861689154688748878772964546162351837274633631218200442260297839996799995226930924188999891981539331986273569918536962885119123980997276661992948806353974862998160475151594143463922954405201043719228107000736625796783584323043007639100948743870556697564819310508762086343416777598257299628262804946856016234601213556702556276886840697033802483675290139997665315774437376914951062585810268775577735591540486006291179906995508123750127792204556625385857866887390666034258483391619693075683869797070634509064999413491611016607246969851436922078824671444786659227106553879205392455886420666355271049764208607218956164289991703112955088367494302669227740286426619440287091817428511806088188329943393757211876124665045300077816146415957791310789478835343208377160908125694502061173934418651606103049290630976808069119266361691333249510299047039146426526129515657203737640143582740121052045775552987143078164631069258710845907680614529048471588603951914194687465820743743158103399256444145999944582027109277510272859192600719079703043113461847475584244928739110747204483695585979938622152527303955504081157597123044083170089051970783868175935110239025024035737044167264745937647138796188289566685336325231462614984711962756662253048036170041024402158938020174209548041689869519646317907922901828085563490754583841770135737352601914558568421520176833976393997916648586054427468249491250881838200984131419073770125011055050369289610059604112672319952590405753293545291838226002835060453027824227334587181808324593000000726700251296880109999642774606658959725093043622523027575897770393954199029796395960965164998812741995936521708961537019660728002415566836952134869102791993217142807379322888339609525855633267866931042652413896864849734205535774138027053677084473939211975930700383767138027845068162100970898195444322609750360593228616805712610692580449699146060141602401983900533808374277643526325689776899761053629017073440738199762852757267441239587399079349376082734288121637484055770022070865649021165067750570316542924856983184279506280550416298034341096854871008759584025316670056791547013979505058255351887621803171829351843727358125450089108683114244990245971705004457733726351617172279316630694578196640416597999640183271298403916120359948816181887504148931969357312051825031160117984837832167624180944005231151012096122845341032148472156261137087128900244143231362875865513188192481463782011545948963330234278354207530069868939542794184429286739737185398556967597547763892846048717463227200928581950751013935624145208122993143505846792064968702871835340069641777767278730657137636148998831214429462838591685723764160781232971808541227862286207618500614080231288703147813182582300088490928468669551863822390309846714719141337147535251156851837920020340104389283639017236679702368276864652015223904722086755133338306022760485351534786265807496174069169526865619779151662879349521505041625349278547769676773538036131832622569475075646412748076058645707756533455653899800270045399464117969674297009915367937499641025372525470629124346872609603572761412586002052845093508093745047581334913079090451904008767397562386649459745755883609093556573299066929517281888656713490103046364869553511715996795334553880516675170293164607391687508540841580073391843211009728985253561692907214971723670034970080180346996015705651493726737255552394583288341937379097397989691633313010760651072593875336029361050016555891326919821619537007848322782739335809301240453995387099797383383223544673065534109578975577737397268858823871912033700203790006612630237752567858796316622455029939595923136854847391192216363451630751870801554400030101780052606052937480172886754738763450214576496300545432323759358971076395121625457538025571238905419496278052400040349038653810658540428927101936075950071754672366536398959358593977763813089006241963439419620545217186543961904542676829211038957947255511953251158718847954576176878605103865826802262313743440827312892032859068740478928461282044364950032112044050074492499457252318599499914640034300730986799194722584813538403695676780592544461272193509747199309445521128847028653447692278599878974841412844810130120283140163856228982721708807114870716088368403367347094434725674783518280927959635677562132839858867573568618948799936238136209168695230951998604091584710528156190182138878615545552818235502179953355814098740002137714271308026424470787357152741115420522160335728142400080830668000854572678326910997244076651550666741408239262044804731744646779346005871048141391293302263000792077100964638409676224133485877952827674857441103588374754172276699811573985016419922835127600930433462827059950444252566002109705157480159180932430760477055538195693281274387205124725355964599689885466190446866020997842846374159989993852294444656794503331494747061828157846820248672969159070200577672252471354104213715307445344332031913472189917790117986619668185782510201442095336518307458206776209450100846688098418797111659978475276975545199417142258538133641959253239757229539847878528867863487287360403849361573632288183691819110261367579622513520794017720882447684711152866363197472716224504331163390514545075161476764247254693511134844976545187752601072798890030725184287694294884832406473148771089957511464117938218864071915897054666906652941346687165433004172238522527527695398844393637392707367151050895684043962872065391387723653692622305786109379341933548035746898239820732861231817478203789593896621816486198359310565568071727010764393549185476896991433068084348788654101602081279973488548767396991286968565182591470144797341740258630166352706307641906366526556337845111102958315584158804254021163372324723789784288525414639161250432116098611570127099866547771996376326055550118817702418471068141530996865771984557970726205871527658512390321412786492727678381998313044627207881674013621370214031115577220462811512199821090252967078858655905496582212994720513347941256928770863838334325610721652844634470114479145894553031806534268953380316716106305225610066428061510633085066259610952597089540601971267678618236045190586363153926728610471914387369811111164904054359658379558822462245085898532700374018184549665665872127341274448273115757207267118690812353910015506566559400120860927023161296014277121144633857732366150467105959882851508755165698695233471566115271509168650684215583614054180965182256723117255235248736951510800200167721207985014996142078475290467784270515495655732101718471607875007067840427816425575249382702570133368240648842726380414667138459728472609711267431973150972587685896481510002323343425829822312419913808890870361354277657646839705899673432835789435133329165508321385464475507827287140396321651103580137023303678684823092757417295962812544456248008785406614145628884911882303014854313421051903932673876184256954554665636328970019668034877209426094819738125076136649824049932252648223174350259534077430611445041526610231613243774567513174698485042589908390699139128366097763977125057009071891838822002886398675736511832535984002471138748655751917131883472752966952753185482371147072319463896815364394588815876841342420917923205061420192800987635523881272444726926930159559158213454812281668234961747413561987493660801663116562158600320093520983347030546953488161001136412292772213601270660181892674199145350573808402535532716557446980357299911015591826144024387564876384269476674095376199198370076153221215379884109971132943695809363408090850225770415594903756015898397333954616704139549313853731307882014716224441801241112955354192006790139862999430225728519869161353816357356227132682515161345320545609624896723780920226346585993721095141461054637666537117485016589520569146596768044211474736286856413341283198563960047132747785866954767617076653380973184173384581582532879617010654445097235307854005465299714600788121439820951350267215432167852511387047014843987489242626176965480319442618437613503459999492123578914898273111723203067876963397817995533609783612756821043448657705817375452658795560919089985729406111256579489555646281639805615640418633318089009100998247834176596413200366039994947321987578422249357203702423532295498299227527449479923010018015037062409533531157685968983193311384989233375811353618479794902010393469788310149477050912259092397464486425884358770812523678259044105106021048707449931503360396340841487203159378202000279078993350537266057477281720964696026568352792949131576395899724143696861297259264562473081549380430139134295368192964471909699240145254616860828898996947167757973016130653633422679274282894958337339611236552801031482088571310372597245137577633251853107711211396032736526434946148342655954953399867533430392603563800026442387570894070268266247120987939185432336300112217616840337034564173278014905533962867375549669165552567844713921690561599263579478050520300362280184007035884073079185358224302260490680850249302281667310892261894550400663738627838025962264007052225469026095870563068397403615023455843187129190562580918569341035330642119752387296035128077819049521660349593355373775995450791413523774512811759975308940233727666284240092814052455795617966539569470368448803892077658408811969042627787840997990140458938176506365828245428452920382406209479564353262975643732323230406487275386771741320526751441779538298823552131249952974717978436368269895780208593507712633873929770851163550067546847837199028283050649892063398402837595222550361060154576444995461852754022249692658266227524681653938592338477442175548893942402538089070388141271741609294923525295801992053199704848285959441390628989201059129312851893652480677347763016499232750817585891326618483925251749839110442286487671607974302797262560130987681692773611661640900471879681123298096522924531931057918657776520895724042543083735931604886322479781079273768776648149563218557250856866270005149262646196066399231261603256753590412112973068711426910358640924384290704987621012124395744414983127486012147217880112189824592652729075935242163073351918936744471064998485837957145418429893802659644791895391498641578618336235850328564433933831086047750629538265159696814351794444213443718445447494855886806998683382341191669684227048385789688219845021794116820272417807706039184814845960884248953710235969171021321565872275103934748919774867740817465693012157051088744069494909337138980729648967936468891575968750081099118957846083542732259158399802953613690735661947142401895069971359288593283775989946083730055936148235124400006739314201318517285262812258632120665265399143477666768662428228137963739036461787387614513731316357108381350633550100961777958453722874501053504964606612291041203002973588491263948800059622152440573065084568801808465780388764660529591826940117426034816529872972719943060256266857301071740922614160416289505944131148161751693486378181708833594518138881363806444944709421873144769025510838810189400327147066872629761772567414147068676592815952513977082389423389154695407259102996163199529593257647198471331269260396511189863516924752523280671597355375842167587203475144932424512515954046065572564855232885529678319546264697483489579246015304196737019467257874380936065211543069472676858141205665255882394803628171036062375229241534671928992586210362259378168484887071460461164866561467737265860490249870573421024187926036841884917922973601541992629285730112876797747296638638549152591739916154149181698252840502529944602499800810477493600976065831668475057327175920213117800806427154114020977702686678307624657432736260182317396298619238905187267964995534940521492930924388676123501339554042231625178065982431051308226163612171640143209816054583219593245572359875131561077916670537816286115022862016643706769167564300736003242289272349211266087587093113790322866176814137291714852576754978939409921890996671067276478602659675001187286056844647654592961762112670775682379240823137019904373917069573670696678443575841389273982107455553662892934952791111828854490389680820562925765326458029132070600384655803443670114257391134441314035610103757375489219173726951638893804638532736570629620100211453721231309395561750438024881847143946160443118896082868311523492326659000683176284320108690205338003230448309622243847837865877982683058733702869400655710458470037744737279252404989468928692730005844788105761271359042438190337517714316999776342243577385309434642377153047134523417991278164351959402020009053659768086534296053386134920182684951791440103063718580422849801684041175706848859083572682539317186985493257483834258683760494061963055321161941870827956305507935296218795599588332998518746016609864358078983065838512656903884601939205025281647661922941261578463023864855390051582380599814448089622858656869661140240899108459068732708072338552949928014262309742102148752981304555500195897171303121369563466339200513486209262738240582300300375363474799225974948149862959485078249243913296603828389478820064041629463500640415241696745515984664482234528771779428238367665699605844389778909793350807828226311398107674448517274942386640922195286530889765615698457714501211198095124794193939866196233812209169669340818921557940174950526433322785845578225752811389549232284946883364134278266383962243542897507731276435032823051023877884390190853439622993002569274444781212363298791635853430050008929340687308244326209841427725538121237940979075522509212244712186889524478016695328212810210145260076424875503908695446416936877985201292732245842277600143212394820564471138489475209716817439744424011622842640645516034895471860443561952207143434159598491550588404010347242953700342104682585938999370398722262036034019675798425520879491187996968549083473443627558137861087509381776257202593140107049878628019615096320078257836330981594411853847358830051030024429978251569778457409833443792789941658175493284513929136621936586728599768386419224105196433094463648109471465895536032734588584011565052006413143246805022983202937169824137649217649021998972439177531143030552858527497765051855331446493466825388812144838979350824255233719326056108479674221580896505359935184058053126054121730907265911418384547544324901740313055339868579725394001932842648034276887466759754275139826579056090286280230586177560997869502044752940088212526519016746013632070208735694837068420685078353500705787145690195059986175084753869672207171679150872202887576352772165648071019145698539748998889450268381142059317967941216745577252755845945268315822419567010531481825233631253589535297915427802054622881378371635146340108225571914002354713824574787264581870852028898370803038520406598812547602288024891773801580416308132923519694397679905314095268067820940292293149664372688955137669019428494568689018260021341600732629680963525888514137573583572864748056579763228926157262895358711905780216343043651611694177306131184487431255450172756892507429757831401764694477661529769432888656540556449868847528960148049106304537311878575894736352661496003637871312217282457034391132173978148677602781264768871751187645784970135501817005296280371372007815433309883888756250749749629608052231687557429131513391394047136660751184819736451459741167358603478278985723778484622572267145285225575185838523320876216244372086324084619147686618612708583920846931468563267835463166603002364736202907313226688088715934908591473874302313286966056987347256294944440414759518562493171077887263592036074956193163456355837922665964141513462409263348844690396174671321341732612856889155019042802409879446337768108046758377825499996875800778862073953835392508499484034879328344636974058473702173914758168615284639447487339198552182125343936589490040386675559859729845138038358755403429475296031299141752024517857194073958858351345932309870922186638323115100250719643009794278070266509679756556768251535808557101949686916261365124480179615678716750588686901443781503896171706287839188327770275352961404053689975609835317001538621942370891581337227957624060338375302647575704253286236840249093279493776239427632943980588723840400824791987910161133091918346955202590871260360113584839719952855380213145857786781220165393206083240785508041483448290686824565917072679281555811483294090349302891409785881143184601706924454123025736448441519284089663498657067423574761770608831832891868039214760659015458373484875014858039444785974248566593368580902362065565724531039562330123971003561021401583649142859083305718968731368805653391415777152217510120968603374720912766813987144870799499156105765502693931287433736578608385162296185254310880454197988559822263654052898939123913486546503982241124814104467745099698034246965052300018570534815435860060433768964335320385060536303855568678107486887078752957136759643840835133621024827039305417393226327462673701773131130816077060510506436783110247662233453536802211968943581232061467584329606850837844764176607312315676656064498887805385834920099488019451342493071239838063334622339331143350054813251293671209051812156784813038607653518144122790593822960427519247249484820943191268708575835166955307365790868717849816068293511575866157600406240350927733896063087450843326922792380607876555441139327094778259202472411640119013948035817840174478416153931389511868932714018207916864819253947415020795412515539694396583596090181009775715876269185963087230328924614361558798611197069882599449391008771360273909536102941268083201130595696931332202547978238516164383981651464897665947276316984116112646318864887084749500259502693476217726564123395245933968325077339901227541199536692105844694481145991023891163114953260388918695186599433865282639557141713628130066620581951666771796000314406922871973143781753603300064766152732842961694876066240551609690013678748110771012391167559683285890853798254173676164950378408083139405976740986787163697206247102940928615774938879754989696093873566851506505502242403212324381419917380709202309066814535351901912508076792406145242276385302376520504014675510665795853008092457678911766069191162851193763159780617211209520209754758712041468084251937055252431985900252519390190338532895653175531126995038262186281207054836099220068787195712781839736215425913022607250741518388829149113527965932007081498174211030536897388876850855744002115988010907940682010690427674323309519844738467932690929037901304930416531042904155511055171284957358228410686224892633231387178700177090346931619616138080588717286703122511808850345513427687275278309819115029665083732341924936967436499066057128375775078386495396156070993407433296273731000841328991763353293611321516792570550381615260966414487564785032532016719829766265913090190362207299205191249144076278739130300041880107524786639095297299528392241104238559414891706470783054701141889411874934039660247545188995988634311722100369335318713386743329040037230035018253397651085873168530102935580909428633730579150805409510925096220848847438715731118783196742692172966913757584171196202545131004143560796833151611714331583819818832593961912494588651915552392658324789010876884235280811964544671124388255310145639348923351156945310133032073993445812660468055284119115922050181188360989494901787992988012794052805102768258938595353949663470672071613946224111815219809786449809229455798811131981022904088759090448674821247610851664105675443064680301756062893869046574242012225121885035786076128134468967742459638804962406704708827424488379937338594999866912587982450595443941495816211005597506641725856920129090669197383226285608613156717976703136382712215200921062952939567028403658501779990075362069697158619071769722374797817214362647502602427126547785968905241649192530688360059717458315180149135793773474356879027960346970395512892407341711087773308566665122913000623776994415361962348297774006033200684949918912725087330633771737742046427793124700098707946381391985145921472146717284066164596511145032131933469839760169573843468855165730000740477665813209334085094365188672976073719794526884275827490011395479650056523858898007606534309289938159278937953663458160820484195370692975467832206151997090578158695239275881381436349754761191507628106945989341273550527357030331822760220815744982169549766810564929688861870165244553681524467074730979085776658995688302395470316238623056685701701525722209749916604688719181302885323339249407114722999101935513772391421084060504965322489060231247788080503267087269788229263654140240227070570464424949294043542176031444642807362192884617882277081903450947315844556348267175478625155226348303035435515134090203861080636023128267326078253536139979211360960205649206054221025979020840057309198617610097544588572582306572223342839846173220402958525204991879069977735609360999235328958016259831476604846879993987340808293244535517167021234174513676432925862348086518198749124557013929091817856270298914932598624260799669259303622014712539386133902764588799714235481851158448952333563317435968646696611182931882382941685641400282576445613238679765440327013243758903269032893765886521517316941901248024999492772993616198728996304946487681905394051479848813636704232433139102171494097663184303752171729332901693146898262588966027543460207198184662473270981959765148795606104481770979687090346884711570244489859572154058912569246795988221977572451729448112136686870590231675944153866677329944749584941150816026094489886935135537062546002355207544281686897460124584519295104594898132175416942275645595695846149317941044669035151321679617228191594653809145947291216796368120683065643031960323662124002803715537868995910721131058822111062003209288262842882252572960917933913441103664531334133260985969695169360973102000968040253751912205114443489270848181429653625628540617507934055803730418398118260092648936492056437728005008555406894206146756530442799372179598876209156950964956980224914423023005739532077408727879597586841667638146309233225062096955381578274556260419840410280111106883183967402835146073742143699171582429715010225792698287685542221301285556582242108300425542841800098561233507319816705186519760621774011921090964663028621194225180918657593111330675399638929177680462845186956837760063576733976825791931316011738947502009992775853954856710981702582157096988808076396258895072158865074948968645500984560905993842847634006097173474486646113987775801179926357912746144593244236114972808906475222544399196620206999632865065750092739595466130837611913340772891226611451315812243830274648961870607666694652775877144526347191999460244058934943678446359013712408490191600843896283866224950948230540908948300928636053487178294991754923434600476083150258858139944127849375749703577690753809479001557009537182171988506383965594176528760513572604615717141396462458009382967358100160381367673115008666702496093692334413742277721730525619740942365107843650377160789736909436760720399770757432234157165235217867813849562004912089918288016704736110275521922462747805048203799249975325422131574767444223067301869062950702260312793217560623875724646091957795517672376319654737352385628159776387356497139838061087722834195125772410604848677240309206709792520708592731478030171433350399936023284835905698187386091236588029655442058115834405389026747216070441559728897881787774518749007597102930611624511607448955570805349511158169174823739812746224638827942817840243042584007669996319989051871815584366848568442973244500186794029782565735993661361574650507127374117174905711262447852560109298617986664969410859867202811970001563133344658167140401958421697990244193670670979935734158897702829295291009010204925801994464700490670667270413047278318511836521449105355177805287885276742673354163126823506799907750034263593786712249706044577972800325828310578887981084340549098153315881661440208337986534279941625690103130414473797881558466680493543667243903409624695088235772808961347667453157595743804416414813554426588379112007846618923039820478578145131907132521872194482443655298469802196562109244450791497596795620707239425563766838324193760199093309822196830613601035987450572863253713721020531099387049305428755661759852349152528608648669176850823520676724403491347470190610675566468137749984759592225995935648668234480303506929832384947476800387720087885588565406313880038121210868684468312732290523771875909345852542239508138504161165272086747238682100993339222326569684336288105497949928456365040286651217303074041500765886827715571792617452935037774548868729562874139315899927173607182439195697927208053666500622055179275310160278941377323639606283316072612024740622109659300520980643825514240359651958843347216728036167089234074198637498934291460198619353321954236015652878078252475992525930004354091022809632593992124607703959379495834984259377488819280390795720206927331779922457068508924588115011050148692859329832394177572368061058436360473908231560816279749720315645922237975876694249385483541271754770155186451660882519712532496242792097181288310759238394011807309392112110249548015453729221328887978239633806814623803798904193167963496178831698690219028631210120449724631383049618024641576866511935284579768507343227518063557623667620525893265231843995923700320318597159946478134269366877361462817770049418098688533783680186184761236378857165969605734724203611196707058615306840982685892780808250162703044890056440307720061197237909143376418682133799477907208659557744726762396593930516800068897664583022510069647679032074907804692314489900022721517572527190363313779132456820966736805404206541955024169466361075801073078864525831673713402667461230128985288928902976880529478505674394275942658696917913061733335830276744705474981276786212972119759231506912324105321154669163983977173761739568088811799220960924820515214954401886438580795978761522181758589528954779601582436946039708520397274854433345422205065995639568389861786000390747129077341199758017266498152195489738613981780062306927379174794751190012940010558313212931482065523870922628729341293147202280102541503321133585524199011083856603975796168118684341318690820537637115373252065421818060175034870851494348718469087862444595243039848083794624745199471811045780354415131184142061077302765086683896998282936427726107944309601917336226490059867778122797336236110224340158276582625481326903568034820381140506331630561959265494240266604613894088772468721960664900964567400968751858867864750643311559879565666623565535266500385815963520394481258815605579456779144763069450538655765188445640809768186168454078802445295640732628623790154563950500018181123335561216207857751336627335780845491323014082604024120738600314729849861223677926488314865155277363744636355598179910100813850638770294152147836807689254837188919416715416315869315601457787288522750460627045496266227386114241359853416893502451885141777001436968620666346180601398465637890152800915680150633485643380583027336642477823155573834478601763918169051684890335527307128434977492995494178691134838500745177710181731627097482909744632859469776474758376001071409690579282915933657912245646442028596466311755787265956035790889889495136255347844983684048226582211741855386414107143835376527768979045656024516417358367158386274903952201274146580712304626130349481330328212623262566059022434773768803420044624537050398373425107845080769421648493861784705649440218437443494546053899323755164531286640685958431793105117196627366460943830655620400278683926605408811950086917484732567625899199752681183121350480122171803849115068402507250992781984552194001791255918519325705583502593474375909168990878543023680553587278529096612252609317277939751449544800527832754750782417007622052505672164830449600614629009303162472506094613180331382064325690407213356690911740032821294033584557329392424205787023620986382058850758304262766194806153559787688057842094366303409478995866417237876817344464700664681274938714504590162361936620704106790791115312501074326344645347741909550165866294251324826198063502097097007762791332875145980594363287785546698260235557101019938933448260111053454366618822836145346217596176673506132855858779459690050352708149136817793721881876631452220513865036493332923378641431370852539608600983002995642574062732132334236134955711851413729661512834621472609276034909596336898002961614277097701513691293113293707763673522287576451321588414594151111058865407837621955625776311347884604341896710983255856676947474055585578753117706852005900203863065747931081193168060134412393663480065999909289400201478283131546478398963856345953267654686426925036869678924382694588247991050736807920180783430285641726466078368076390184501053743736303201241083905406777150332657048608870858411958800506143808319433426075676447308263736172316851505505624146684836379215640219119221776070963887953071231234232450676794818253921217412312962595994977738288383804533249586213910312521555500230621752192333054388878722890389859973981545881099121966903394488899854811546800337424689326306542928530973775545578115071767871335218110367767255705063791487450730386259343672631886451609720769204317729230039054535848948691912155130523721437088216288684200297805754393964116009140300424395472137707594931009685184131452675180426388602221676358132859965263339062889270406331234128502096569466094121852397259552710866249591398672114804552444187172535634008678127103265273567401704169118975281074724506713894007683555405673243241346676424597174190198834889723409743191254811709899408669398682379445183767453342635969807223198866592785981946440232352847284164131008826688052670374510320246239762092414758213810029950253089058723500895749877055266803508583860806331499806977334930690261303728493176083674196243664077237231300742352904574357034867322036187158119168971887143608407843742313236046390526845593647778293863936289231609805838400723873829420889149497864186638798048882663219649904724098644065404110600179739925242711403344743278785232658299589477194863343313242460998002745465710770875524380987394739225924849465881442772022132274970919975424579534403871764666714390137900563569493814736707666069472813503008260337912492738690588099887265825398431729397836253142239695566052928529428492227071191837965731878607352825905914958373467959839450405247865690799023203616678404144810325248522937400271326964245157318559126709513825844572267454706142426875523320290567433351714010843936068357725643387240498193353260847216380575381997555265280654977668255154715746296977097789819069968026140513805262881134988728032792974310316797630893038420607130849756416944210560892625690736351068249633343284843520170222593781051229459479594213626972930328090156832235455395275004086111779931260681541588653087032319538086565089299733992536741421161211226745730351494882233383366729873109401740217681098024330000493386170553670856116564440782914741143794151482434674350670473848370008745825282389856373607012371305929655044795125472900654617055276919859936746688189946997406932369054682562650414629812808328864363626530028282209336500237062107075015898614489081218692388005202713438814412730277635052023445126351328398451726060122545155636714901757383502422750664380228394347458586226913698791989130415698611672786528034718816617162721419865932694917255713260094613182993388051698586826668627987264356945570860128653555230396722335314509147536999558802700368887324400135877078119039002900880617165564439266441474888882652088903296239665589290551886159626853321600441719271623020332168104266443762512406418192512592529446765119508925228568035021280587771293402695347783029635345055394384646326977907670367578541182903678389443971154633957012579561340126884942923218569179506438681782112480948377985970262686011504939549024317347330837367948221307708445728279170113277672621695700336800754281906077791876118240813622049049916556264962988926451879920642312709476969816484778423445719955772127102896237858428498362756620990746963804866900239905533848224847411385676640648797429181063440667074572622181452800786402642427675007054063604033238022457821118052803764434449179167989736172069435745536493605257246520595372489191575953036310212497456387008828886189148683431378356080562343431004981978518781109594651265643748021562614181355697189451423178414330317581131180465445200838468221531631207300273822035959636380486789819379683658381554281959623524122420622697148977632054242352654948984994948582237449195556164728490726222686974701632586617366758829484217575396101944402538006892060344752896150329715461054787549565287921276452814384239069296550541560780512234485696484431130003852525229996734731113592167485278477438153634302888374288149572920917402751809730856082387899102604289108917273810949262864195061124393733331336558453504639078019445619429861417510696465496481532456370227418992340969486385775999708849853785902224238898053847909226433898685299561337489804473002179723524968916125734075759786277480911101650257238452626600393710577946051847024716307083820602741652551338898967191565278002832035421194370429405510309521925672356741327183196000766633035351783727934196803377655760466104466925657654420211145411784591951394776916268874083552866806125940358384739602172690986158840003724308784672898510987086843418208181672463880306629975364062590648039677713584387299468451024580024407670443845312939289232616411245655350587337194461495530181005221337322295991878580977705640073251975535536415939049121862967791224685580830889912319955800148594331166854322335836233043174912154410046985340801150109080617965852862000108593490835422299297512861128561572181678445246997917659033696281409603699235563169843959029055145355465131446426394642041828850372826839041349386555139827159388595944321070377348386878868963795800957663361202653258656788208965076910362992543255712605958332208580494911038865596618239295675688646635053901673349764409667938239536972461251665211840465978166277210491416718745790333387617993130552281013240992297388788568409855039290691108167872873941503662900340873191949304439898877226325884873276005449840128704878692899663183834069939852415277777639771840910043512819239299099452830536267903195234414070453201717916796781475945222142480523606889373283267627364592395371184342496937033484301249160203510110104563123227373052094319294419125210232997696372259657346691548398492003288554029702257648333879434273734724957320558311837320526260787159717456143609749817342387660985755471558243897986504127040374363733980908134063776304356429835491599587843016308114055943011458352792001279795340998538590750599341698316387285286212455150635462656112592517551850476107209840801225252599004799101625157381884786442382173428254818565771796281335892684548236786413486082322579704467712811221237127959915050597361619270009029087633504648562066082807155069745685023820929500110638209339228043938244836474742155456412908534456366180049701834731554563887114861234016502248070454182331833157749279147820055159558161891822750450990654159422574038308084810640519317464944848638622669504489300389906678530790595391554688477406736777442323356093802547192349905387884968422497593689868532077689282581877121354435514429690505843184052728718020481057904025648942041991054069750027881007074517284677234284347385518206434982865497659399766243797844705238098584856844536173003773014662044406286314802784771622300028930304990817307722827907930996905502057285964556537808375509641397026032790529689445002721628724442767592366094845634293019788316536461060915450368566192421983830944535677245070964190322635579641432121595912600245706697561245502285939549664932784342848636051715321977782146742352829032451137053986222540962047356624702355498703039344791942530173236590906440898020761603469943839943762573442874701512891734543381018998820625691644503221449668481947107049533333295053551710197045187148009389573162885509208567897036292813044134564766508197132028954954974306229748559776564545560276515121781538735232611154730516386687057290367572608581383172303105581473607308746012473592672091249183260897818302217244508441593396966758298434976151933409464548042791476467628132702476907601425070705103037729268573521296865176650412508153045575122399572620465093502697249394845083771722558379108061227218511888318371965500646188373055721971620996895981864240768603646228664664541061674912626668520512746743009042169853639225665980897400767002821193585530018308750022797635911092571418463842768276764022934849605106727276376715887246905729894362814051615950996479772655972678640825031995521203028766506785271646332960072564485354116830343340729578070405744164410022226550802737174690977031148478989450181290802183409709036334885174703625401361851694579770150779671788989882130341876758257990214693302135000986019085757695257499258590948877933463077537250735978110723821034058406100431527339829626465467145186773916680262411747344135923693415657496638637443676827651722552269577583147698464968908964231911605756318994442776311318711847736401397697058893672203860327168233020019732614630702541566123630206969556590645667509693294421701424610690592785351788068874851893202084188009289823567920384058139234649527078801340477658569721776109294858578584931750161404378631158347720768141064891862330297113448284219455300404879417369946598830625315039964838113703866172472317308974262019305650634769805109923105764696891210246653915533726292340872764016259124557808143262979890695081241769363382288922056543617446522850312154140206120954720404476929530516594168702887629648997703002096761948070625764149386332918626927912924866199780448104306599239737341498995717600775606766973317843797287984390441175181770139681432375000345771131343418281507341262597427677054473344339502928923944839810977596602105896984472751097653694628247920457927927274945395486966074558162755300449002494366560933486389461273770589669839320421209050043745789832674531618219408426604078307037537870477906459656025687429953413274887528420398317983168135804007718499643050916314481142446828756147612975202435224126051828866618916394464455665100870567733211650855639524343603938811019227209014046824913747670459954685708962619526873857154117775045770177812487035406842162042740726943744200571495092387957099194368878494694043027922848859305014803115276170028636769227878378725485936516861638275642355717777682626721479211014845644462117591055087244097588205845154596993834090747176086017408738099435214636817842448676875774270397761645238980652017185122810424832511196272903467429508386260353014751374309030536029289526351184843607751676663710262745438913911608010686317005851834349595706113937511123223759585359721136354082400845856848865598330439353713253188401636272072761483938424836960808021107443688007612019368072193179744176196797496562819013985836769218337774877787746300493262620079824483245143554535611697625585566138926570493200748370949244434630239262620270663451647842693487983808522376942241811334701912327193405553489570102839186854356166865734051171959048594791901712069050668405622529833836155878589855758841094096625697977151686170059934730019428832664294481312966844923481057028919783317017270918261860861680699817046972343166841869312133768251580637093536461921080959616644344262342048359423797139291682753126274081641187089982650529435916999968189589814427095920360303838405291847694066500202202669795123512811615742363292105279819349469552198630057752036558161406152571129776345052005534484759679755878701797289334233056542183776688680033706422464000231909578862583369519092278743459426539663141074178660471453974895065779326720246550177443938686038478471452791835908943097025375147201622312162684309317923517216358093140279115144908261662504604644559108666820498361210451301358165119884064638890857307143329656400313593725941704789447737770447223101201317586145026324855643199400151943419429024877145857692420502536751265675137455902012453029555593018301095719214689498211019750021664860573544487317597125651670170453603769319486650173481954001394811758356628107126878631225780454840130570127521863911377145295835416172259352831698801833841191137850923795652712824051720649289872254588344391890543056056388410148900836440879100372280812079844554923922328164170448877727932169572982499007378407383388732419149403887091479513427263834578750838699156072680736404308786166329246227559537752985873130226886078492240021500521256653906156411517121807027734846650965431740384676804321467150771878350792322345587827595929462575705264762688766854884216369004119249703271478896760995541166623312615624446456986820884923149788237900907883206675939078775837663212310108648795747523253343369357938492291147849872242172760841003858006418889385103035204444749863446384444233978396520463851157340208335040100717552042815562015545113875772544631771682356988659802450359094792670573948720948360121978865612668124360508913203753398108845327583591493254698310306597454581957150230320258903949426774429277737527256139957551497403425212668509632211064195480155217998826672256744260617632797021844938727079474270328586072240131089135857151245118221502928139569973176863761130545181737891188009016874861579300478321464228938330350973204006324849141909150163848941270507891055068219041247164684461369271764998956924573201543712716173329681346425980360523058376288362175515492298349466881845353207154140549848452579097695462516290798279559474398390126072426111420344645909245099506208127147299313452483025135668605156869161163022074612864872887132952116970849597270524575736582111161154819833563857807279439314763083819742688034756892429527310673703347871715014015716311135437996380280712308661871587764355169345251016043983526327694750476039541195001678365063903477532547020317720632563811554242521709475770974982822290322012782541800177977391202635702456524645387436036761851704683855246288808926181029442721981478220459273624796065684476998701769484470128296620172660495353659165165177189758622503597482618015133626644405622270230735055568546334154547124254674159332906367735609994556005601381193005353471645585908753038063332459402033941663945503914257652789954229643656686299581953902221841339560019240280503818226076820194010283431059163648542027297985977422536469384049851666596661199763460060814561569801639089326472781965459962621333052980858217059112781172279263094656269190970196599065044422046389808139607417881046245705051723942322315208917923882273756809427398878346085961601373133060570489057755185994284253016964054713922597302575331383095386258094939080422346455537545233361897438198539090027412778421713255785967628732791402205349366454744797711376445686410125442662373562858159213295925218694364460809961843499791016914882524543230166275892876183448512728230605687328218102588162795704321299921834515699344895385856313106041437034808017616114592762051594131246431184612742964595345384307351179991350134573517513450207670478692559070238237662814516318573791833290253978003895741460506467910905303720414887173851340358792725742013402216480878485178373077927955178737636947444448601625095799380143386521302970892786915253051541616428379151404172668462495252384115343537395797729275828783721316619983481275827713598502749259399162316363026818088361078298833303172854182110972469764163674515752435449141652312411659981659997647102292405477199634696457405839978234011017324241759076919924514584345249120097626858160051405354787187374103989056795580050585092356581531667964856443731123218794024481134388246087496900426894670765493303497997170009884426167408699933949257828760399616786109885204194922859758126488056546586655042044346334074043444398631255174792499465349087809998405109979668489557507939543096781753953194011163296169053760691937778275724565119322643286685149429050731810767515393925836893554276865824191813703624088002412388695590715105777769829711901445063495261774754819896240908135549035792708632907347124774698824917026939121015278559754636374146340670071007359133917444303470351417642768702417530840539146423108623104739692641697761325259256520546808231927729118602221486379540939514503411784312095779192546434142051504010544880274576366678769099058749315981150690101971924796517832856889135814987635450428456615720353148595605774419192090252412137942889641568132004319282780492854574112204011670923330889512384370729922283677349051523464606712071127625972676842187022821332738516236455366151852707073720379102257073578799561983053226081457833296940078928560537208498017419002290697859793792265244806677430557638811980562784250495317672374896134111079859359347380194142481814986587330718655626201998709474803158268629033801799281240046436875198844578119307693149700410787100063409795923989923895938055345835659729352592338942590172065754597959294730624958456122092751000371052720654316075206219977475210506448453469732033106102221408617046141418061066517516444947001547935388843453015989032030381398045456861639955667872776899154223041030635777654350225052152629950363263801095056889694049479173155087920484179785939376605514450890276233935657729315892611433581305583591132672625800999427496988065076781644794796172585179976771947652383394922993058137376945705834598610237117388642454973930807933245747993818402984148060737300321829684305633995137161772656854072479861892729268174774874791061892318369590568772700648234409798149195351648911125558689868574384554039981728540811896811881617650855042904055605945841381669055582905958491365078340968387000977207222269864715344404232034091379086966992406182791100741500829428431866750674644314539654568813023144145077563070040044593717724977636877122679361678402543205560354266741158569087528643012105566553002983937404875655544945169326184582879435275551196735292333629983287880380067106490571067583835911033489574777788583306157027931416082542682120508168453204092020395558648888718633657495965354698197250073743027265091958832567312666904208837048775141049101261239686348600604157365363777320759875798949807027078608231300094741755555341598611425544380897831596896795360176735384115522981067311853851086684653492831770297960011349713154537248294091322292922122553269953107927247348214132135706873427886097676562316315386401752288364901216400998258710200590021927082114848206191913701246612989631669011910296246933167261315655515434764307491434382950809240666854813487575021142006977927218781927223829207685485866555364837949115587467825204422914474752620087834263139799136229278599992229173901511818597170616442628785248553474663659211450646823676541129502047513087433235047574944974396799766458567121337194356051538261623898644476014008371226462281663202938282815231054753351306409352615250594605291755049659191472935173757841810358146116681772205076803689651699822280388731684682559911530745981948012026956361442203686710779612923763020730818999743106207515067739075254842553906968379286890472312565143958193767855989444873668789212863171684858213532568605829220608070179973400841470189821450016398160116376605479463183861335870046805809559757971419012083831646803802052934096585743333251626462156321827948692192957973513121011888287627106809371876811710235875150202532703653006639960102013860086200950036026948764764539270242836334586491796832769886848623315887170587911300969151863454647136905254990247913796822031043504802445482343339144609466986852002867271639891761868066205062855113002619968008385065038635664566965823447308389430590220640028109141270495667253323480292801592484019405418416675120138600323759103915506238630146901418193604811765121660544949289692926561076183076761674157467445611222780061036160298663862209857393457503056678066414901707588200536101357374658612422663313406749439048592015515137077630970328412831262903572514291039164640150742518054153782131546556320925763831182768523841730001583369812867012342598957627488192247252129845180406842082106128519861694835700983327607037121198710355452349767010780860080906972578814635277983974049949838923912105628839808269978572031948695403532678993274529226622387373700734794924445057850708545688808779363786902136554541906661519405020603215083177452496599433936286680722755490332395501936610845203896302726713938343944487376023650861294090756113825413952684345136253140418319318484249282206518331888877075474743322576904141114832104023281971993942263738086894597131131291043348534776257691514966109502807373779848381721523726986113435670508378323427179522790071979307975131101292766969989927554061716959911065887481857493958064026884811074855545197830236857368998120653142772565386108283241459814765104425100597906445118034071120490612727988724221295876987874945391861120278200355467764400204778887926863726546034825443928459214136271005187842894229835768941372219394398110170062232843605130122567373558532481565961101916447679009619429203952779103864189435371855615146042603255857434911978357748720062686948366333296813170620306265960963818900708561756381436209153690283257729153031732689298714296202666933332960539695538727642612656343736883847358376627713123708889728591470898731069055087653001158968633937038090868249587614487016396742622747481076975773731982320542934440772356449938283943566559402919645176074353195347155367731525494862325410568192329745651954695565479054410357797580406183535681909019379466381851781607939812199459494051445972938350040452472309867143595030386402745878262289995274396972746685984832051139809194002415100589176955683236688697692728545399302522531362884626021625632418331088961322236718854007510116291583954650761199008233782815458203666995636976748511675193490699164698745778226650169650811562540220599836896624299808044267429063930440758260214588209371903382008732345312727550419570109070704775101547112610026781477496422503599195007116311124526795240013066498666004170736100151257166434557584479101740619102179147977178742106321418635442353490225148185178598501968291651531805854847474258199946930746701166225022306653212504561478762842861686438026631577991709389764930236319804149158065091954496532654767265098243835322702957452809013678787681003086264171881818406833417201485711557786774592613553038361169090978764255893332288433771549919224067789450126097832113603600324765751038728347988599055386044223405851334006106469570845305568263006341660340048730952345328164917099324596656896673920296278967391072282443537933462463939686598147501459120095963777860635206765052682077006881420135357484403402041331973414079656722615384362563631595192735774583874859956639918948488523977055685339037536847183701950025690622423635960368445015744421339310242025178823780792655240399684531014276125185073083453751256224946714621055363034458568399078441595198606590617213395332679807211481449053356597836300821341330327560060266279198802775618506142899577162507836947923219340207002553796388788342400999477700385090654819381355711475489968062913266202352600442718737925550854270838060570611647016631169765766441221697273511016893137759125403543703471287465556797022984957506518174916244527747449742540481591946336149861034843375649337401752071964993008997678948010621348387361220223054065644629725182389741974127006425212099435200549902974567204738019799026249736003543460734437652538453962397293489885404368226949781264174949837706859175462053798356472698270192273221648478733581857445516559255036912692259681349213525305346539750260229613897669470074465609722342323683591710411397771012325210869903962901198568277487856413032813781124233274252573925772372850400132710740224550788738803046336111914640224140766935757192411535732989587727785734668475100483848563266961187437068007604797784019338302949147344436135712112186866759565391910902361712519899855447736340739633721676066649123530941690678935762080364507823984778674502586078641840221490223577117852833487973081854899309090108869605530234754930397705292610985792073442246067790263478699743111881190979059649418219523951786751282497405636929259154693484700579105069082574946261355925417107538172508887647497225307479654102667645245266490988456616297758800573048768655194431775961060254070843474018283664122983366627524532294995781531237047289656141874416927091089053741989061754248897268676496171226271801201698574219154626989884945683596371971981116879488953600567138987980209806672431829820745497514809697941734883792559288709397051112889155897658892932195829629687867085530788004941983066779099989906419311698159341813429592785475242567904691304644432030672604029345144329681343637269559493073317803357855251625794478097168787973977166199379310785577853361474046768420250184135465161157034881371618691563832648744183524231375638141057316120910457542615692812888935722593685013136373728172523331346737548702966256411918958447180655105017050619760823196169873298454699140813085021708175330356706414067666764101080484815537291122788635547230049508050909018481975760300582479705574559283240320758040733257713078653394025563296104028329568414529252790784276454731062466136528178510975210897668784888260585964861699491096270931756299466310479605108371175186956066703187095049497981521946490882690040451279119588450583889010059309901128641156101870518658714141040593867016296270894539525479143718960174260210281245691867781298618763282649139100917949656943509007354965433955897968633520522082191410711898239876122598335808300026014462362769410589711255674561119608219019712687419642426550117033751179752420777155517868338949315132816585448303606405085743396821081315405300728775307004385774045199178003493310255550267260678558374391344634691773198314508794301624399588001844676201781597040855461427185321711214977578336414892983167376809306814765645993096418893155461657755002807488264599688139297607589193457425218504828605830790639299495464162156553193477795371568116036529538802018161523176634400796610079207444930826503270596434101247647173104494315981619994281731291145997565701877291801524050640792559300001465323275641333722534973827706013166024239763398786273687365846527544945928366063484057449982607448698387867366260701114932151364558285984962380255959118398809682995320014807205401967441420010530085236192193825536636657610966443162634483600423183432607675689212278390340352212843766150625361412426650175615759971799041077793601271939874255866024382649799557307022942915324288958014542721529562245903442394267887934811300618098198080510811206796348538972325532054246189391745725002480943704634503312440649534883008283973335640829973464711001251283401749952887990926335656862119084491063573231400650108159647129025098863393102420653093832297469507643257983274446249555849680738571256780526768816746393155952288776569198738175806014338687689938178235708410496636142249009892047833476608866560178615541396808027598810898329372887242315534475722610331750990360293256668586183497302033856384108711852625892933303111416123462558713647507001054654517471556873909410127372883847195437462709416645981773881571256135528056566521063314030810584938846788568625337097051603177583897675134050002484549901711447446804979600835198678935921928145165440465453806990507323351041329865580576427378416624050481809962821205754643738011150334021907280278342597401836553306287542929593472281579929198821788433628581761406948442156389921048400036796115773306810826416309877128565736714598833631736719101212560419541824718356893547693358557152129709695747627057318724775207871926581105517424338932089057104453886405778137700368398664573902517974444606129264247067230666954548798927066453035223671955629737271024031272700858257748120968684723310737709705110851789287934752005625967725958259779674477313290749668549577459851818195766498519467724691999938479106310748995213892525543622128374000964986518599997152732840998790375619572061307524951068049767548900908794085343997472546942132896271826985469868179945203020459934264245610947968666054680479552847526116751280144750462401506945371965339465265455192207215489758814522280949800961874487903349009980268970680771606034263623789802371305338680252402568111748355203176296634440090945059092991055705451550570062002530507103723489846568001761185815198790445372597726245342476197461518315597362230197971211917755422178344864130322458626771363031843814015744787920042425362176928537642699137315168743129523506410350720488289256631635507771543702140985166063190521435986908693104790785472600493694807124373961383044085838116805354211787203589845941651998257098004268932197687496637422212504690092518500378173777294001870578719569026837112359603964076513251544964273443587361631826922397335738892611497120317207939412284059451188212936786365827181939031961081793405029127338244211430400956095003996753106219655943291677559362792744790037987601251106068563621639187096392852563559184710243828663958281448223514803959441717449105730607249588518976352920270130239973517804656521631339946003282165769818829414697585200717627332251228733356938275169361870366982194581236827845288419634203499851147149929098782315865189132036570278330419123901226521168714696274298144541116268327466936056767932995579669808778394120354657153994406197986530228138629564448486668974286053152229809362442809250618119809970190817113839754274410039375722577089478373516933438273567192614925313847164813955322656381885464170542095193148501535278374891811817675952965392745533279584949931700107731286591186392288220362196940004644725841553655479708047507823166512859639729072821563279134810774309896202913537387645226587331313420091683979633940331113996642183941779415106163212945534109625754786541244301980481590326894644487119309977428224343407632951522480481705200438077889866323325735780523626904570951673947793869395408348491358140689255355974074181954300398628263240081929481935390328630913104061795702448070540531300211551106753111911439599718639364130200098157379777917114841177532464017193932043710201824047138155090193473136547551731622083664902219774272905694440295904444307569815381839636926017831585429721950246658123365647976638826613166398470264676277738103679316679092196358939725601314748663113678613601963351740746991386021415037309822515051657656750927058755511722085604058582362809252575920853181227312702560859783218625185598710283640544827966659744312359956802976275750310261439695185748347468135738828436752167303263912880369714916514592381552195950805607235190709654926974406110557074634566160719046334360853637850595513574779857360008508386075623266072704328065801150786339642699733096298423833775567755853688970978703142314830785354027016862990623131667102496139855581631467045382926443071831795774220911529588983866480237521211685165024922062611992943384877365560934994088369336498005655490877175957169054354368744792059656200211618848051189466634847101822900604826608158230042156913879462990864746394532943849118750477421645918767865038197070354844674876881709228296204378898554207315095904663356968861045152915819247678356771432900793999736708995445658619103338304694005488936129566665014544865920335231214065065876577823026231617419987818207942638677101367734245325047184442980610479095712860319053836565415280239665001976765786672280408936295458297434618151737608190823537026883069915686415950961202302290408538116353096533430820166027804551196770063216388386040375832745570915848220636047373904856267023280232547934385201380717733934517182891083818472132586059400349211625394819278677679592677552041505605082413878724000186694895612603193532646190076505336691493141465678647098882028182531279320143072326390790784761260721786196993390739472870130718386342996390054294208299198427001808166556846222252527999959337013481409863723218760354243409304628944538980991782601098654736098653136706297689659696907467436916221991646969277571760370172192990135263873373959265833848005065169838178206667428345217325771232780864058146597290963454323099321000345990059455870767056812124080576723871563550593116309137285166392548395315568813571666466442045298288245398469168781674381403112320866628494550495650382978721386174835757195836380680696494884173647482269757576850067119875308257913960836039406781659815454589223607432483902940803593022184481594446373460301868562761544704678590261666071895201075604706308330677631319684523543027098782191946173836121948736984793831225149251196137277399205888933642759688083253074827677765233721552438434059422051590796104532193519063556907453953171482447187919362048162997679527836084144774770030290807940878319348594323810962819667731931463482270609304458188851013109439131673850938961648166689309695862910162024053007396692378998398230633270336992248563773721167244395751892140043370404192928477442859021904853947825178134788710564984087639500591291342185554532527418590948358376270486101541799448536924264195833722506446050091560719057405391261815909480400383397856986878589412380050530507356121707883573854981858998213203716423391881125970925500981505738572877138653120316176962979388461653933673176377598766604216706943736784218379521750370798205705699797741812317589685846991963706728097748844440464814247031641223588624211201969640630969930039920263581853050965295006542322309398046032733492820598586361098200926197960589047315762614425093704657925620065701438604652537875226464884403231886058741831134341804301339206595626006801618665714490782192665055414893929978060252310699377154977613479101820655703466858269649407957611437038833582290664936800117095448468531834814422568359371927453533050637906103672349422133311244423498803491497901492310005221628974584377307422851870793139526832870653446191649069842835429495438668814234795066609175752889006144018123977303509325247551579940766055950240186502602221057362768319438938799812014407121435181666970353334753103975186160177175303975572330684493900598053185670374819653071059878601552429822849672676572850800854210726851688814576608389782689487548644170290530086447662995795874703941356029260069680384802266573575062267379866625537895765869965343203472532476590463182688315406826387785902464799613069126313164140752351527975301989455033600957893906277742901271503465427556742870896840875149221676305038735640953485124942945153437682840786854309038322531749696278984354995943865505277951158424818274021597400259617578661551689097655569585126894876781733951792092853016367441305723123838338258413602644344678004418329707648120813132301002270480828049047878409406262276711667698499967869574229272694165570277261615991525067280013810824070871625747885964303448935051966669220483322253348081270256950887968458006279436997193850099479160608984074779485975403978136488137968754043561753191605792464205859497245116498236137416939034109786747361800224074720417689297125171503400445524160069884916096513806289323676446955472972558280224180399413732163303933263104879985384212056153667762793316737066170254896111657685577678564376475453162079643996298678181770727548493409563300561546997855691336384460492080694544257512560241377681506241087157342035348591270584444934435313711507955384953136375259232765121731353681552798097504508479391302309323803336262652571713091060775497490154256045418096475148220922615096427668596315108430019658408628923106575933919442319872586927455381259106182855465133175696312627069934646208939350335178603686064456302786273837608092659239161840141952310757135073879323525829796922909914881757940639910839889010869212685881759542510667767006175325905608506911646144465552726854784084479892954277725212353388952482150926477933474319169776479330296088818255604835256372509900861086746782905794167674059809371987660211962607624212824032023927506359434733270677841498364730309886740354058557138237944895403759185585074305413889155743523904502293024983917376741933713646527782818799224777253452810089929082126509516085921017194443048553384392747929195363278852602949947154921802243667878861276607713661719145714143458570741394278376325316104912889448557365150419598828975445555007271826931640043987238098390930730016045297262093767899746845754437913128400803008899162064584889020439986183814349159573389145523334602204664854590385514636531911058929393271520850121300245177132171852088256708629050235128357123056466666339247972732086009814950275488294746030197229909370281446706946757952597338772961316804406637244055791110753493579490532701348906034933805825357322664532541765444118329179548918125695576335711327796881575385519893242533450388681969256960209337127998891940623423583000796471658919569706723509595524668424817134167639508310697219271697591220216352488960038646689949834582881298331020241949186180462774666268953011299368817367487414264248047085081002146655653537608759289239375261638684043014683575852283383782975030874480059760517348931899662306797128980499052661295521704531711138310043436194684638281702363217159933359437788396598624826176966237194556417322405316777454868735148651356349726327321282302125281085170790796178901545005007448725624188904254386236911097521967242967476299012117901416088750802517253759301743008689604328388087350522048256271838717818360912551328728439081753030926686275554911564508224163432433648524508730826533220969848321598529900744642130032135722220444202457977099012115095193361259139180667852961157649668513120243333264023804064639059615811072187847747160159940878766709904054582936112408272657097086808860954681006796922062688407140925536821844208482989437869045281752873833391847715462375739263041248085905557447993949131990413510657124133343801928979967840698025065067598376666690810713373074402119262862431021010844811543922089140528837123752805258671000405539231824232887408154081556983699562387256092773717793239216649739796121332156922213290175144866351000647324799741267302712332814466949186345767386391949071520825185927767968508871830215113072116953206506466610015805548001729506425752721371299606399096959497850535773978580181019177185031080827888587190102981717516028110845318128571038685098284700982318013603533917391317337823602224362772651169555206675650920040181446734443821206398194575965437841939855422829191848842608868784252519669037418519023127809904835414290421621358285023443607138434320286731264701752076413276644937650615703621372146282858562126350823091750661815220385178396191594816687635157476814727343316485326676141574334665017397211610362634368138056602128288175729315906712960170909422656961058021449541845247503576254700598033399043787015041519928713672532451379827218265621694533226454179022332483883569467856804842437134157999112515519312411249262177502689169369516131237687968060980723385918756141925853971728645089214955001925622318672086653778591731014664980544628999442278432340620392700084454735185757453959282786020706988529267664571292597357918977506897842089335217557946570216637304798263212733452597700157484497245473199794308662815664269047960449426849110987276536706171813946267353226808739154154786406637052411818752894241287279104473409272171550147229300317306522116854774765202298064002438109463728387840416152409611922281707745574096782181386132215137538314043376856353773459701758452525941796013909482057033395156590295709656427200357138895958901458224713044243575202504891610594741452723253701991884843836921005305623119816901834791976277402723140376120579707788118153257012459621812520239036488569871813152517880103103672179336136874706265899246499718920323732638126615787938907780425038147042428935635139448604384433655099622050688704796801734318452578851717197206039042908119027846634954143464337286240097286571650436554299840444774403587732697241625269943214539537064254927840233992483820580308369723109280907671956357258050292054321163257312347219283881041727672583193290951680065904326086840455410846051521021164485990107436902765642947189418190823317226146276418588595861090946765051194535007200755446016231270737026343913712682368786464469690143115629511731644269194639015216274111493573821898252622299766703926851570800471901551229278317758088831252936844743705827310150940359878070848530035847751085674214437584861208543059794638799103303995481757404027909706690778775206588044107230904412633323415637068870243073862270832633142658656822841937537112514907040175234108874755146424142024479914381232386649892766076272514654870222983215818448732508484799237801613595232951656428781853715725877945158424974442252263127208558788190060325051244914510095625442264035710064153183954587857186643647275610975966431047790099748894838293018645108454646626797728062288826758440781628617326821361105415722060198766327672380045010839371537330971227917698049965089949562509593190367721273950400078286659287221840867721223255804749336982087848674182374013714499577897025970525383284720439049308681914636219061198657238521618714256283922736243790735737492542209261655892892604706505231635137755415007162138551687541047087280533829323218016762210422569581935536790749826102056996803121658892957876991067992639145084608379086450184102761534130145886822003016898490345171799910896295297314163791176406311569220764870723761500319690230055713281654714815159813035448719736800747202613023575278803768118238926694091032045789553279293747777502362622082532482320664600809879901149216710311884549158301850828220241198368213670082575232220804891549186376766987594191918104712538297463570960652111459129675068664379622433186744129126001716421980826209808525516833378014467635823362320847377706016827018226195847001583920857637538758376177880746790985171456471825946997761803209719978021046176470527059544245170772890351508741835377448790440004055463094681528328614724609171498663560233773501243060533566598596797907930709674967023359682803078373181463622744872173288092904469172390619921524172114993326505702719574577823205110255509599911684857162242764515691272971850191629125417217629552571064537058622096151224314321514817123159404450264078257068787375569240339599024937891172068972684453214300349660778400296312971826371953293115051588576093675139047534377950495897382448171918575880846422701979845273993394883757205845287983000480628577931983280499624188443809765512447501204039707918387045743947537254380179014583131089678541588143793924125933903153395238295538351208335260146842580457800275429389201558572761426466868532286316233577439651615973021838586942262878127651144531291501035146097805777402295290194371147646984578577658246114838081533710400225864271336746169661635591627263846801748312422871885854494860126596357090750967492185832358736096344592757452324460698369563183674035135525242884946021552014549045068746015224354571864649474044270150730392757327332217904179550198853236849735445629414100415987669389033168202532176363326346771745931985371714094796326887133759093542192697922893221299367891619226344562623982771302490755750148199735237230107217057072922043854372130250329160300600521750179471265059445491734522121907456766536020078592353730594028113059952399113355171767196197451325867258028848867213440101267749114975487132663449128490044855603574675703546211934876232327992396934141191072747037112043249063372149368881219849509674579242345179004932901334158430682347508685695092005922334295088906837575994577583631450751969530178561026472291963291151602248506060269516833957410977390003846749566393110024040548076630191545241395852479587584834735274158967572966333529930006135553664393712618309248826677610151567119078046924038628432246785957666085268900791536541000509054330871578144147942609314775890040592756277121381708114460682013984847686650429876232172344423129467361579275283998481087353467539021155407798827375355064267974059173995923642251955630210782617179249136924249090656561027754576102785339848741312936146669242896861733059691410626977776695734676281663380791240615535443677588745209248017844106885140844050554350356555599953728059342700895348071806753617380476613492977045331564627194807349386765935212296824830227786744324014587468905562956807031369987808298307613669039469872188119481937670839815738980802093717449917739104626316226873972030078151694723737719345311007900714087083132204318944680208363222180241108928433870355905167719801005061611825613852980394072059388553484264079693053946952166521051200158106821382850127805501635215675168049335595380128290048988800127562225940805064356758552388531575596990687476719689494834228915671442478443997744379809647714819858338469430477727640609420645295053974217751370770856937607364445734674084618308187150335975836629309639358751847694238214276732934406907964471577676792458863178057171983299934414698183956385529669827177860449636330016011537873394967866107362772008245742606711866615321220262925584519861044225343942005656855947448867963617098676542590519404436503662549126031020642270946549118663267943666332875717080433956010434485551112040440687288335578800093599042017611390730708290558813864494494974586917612032735196309687814624309902455843143671698679193989250041292266014796229280344979597264455739771581360421615936442156632895236188087075722766452393208554972512933456764505380275711890590506232646203450874428604965386730091092828777664848254416929020275605223269949055614995355081058616987214037453847900840749105706920655876152161521623597886012362286715032783235421385576528369899423681845767370046645943936762383652836468837532202945240518781466720873951046015571843730421252698077024950112199416013609877517522367869019558342761905244078285221972463643653717339198015567417302710579617981621449388854925530153567540345649015115981285815347415890910435064543878189199447829238145725757259135747057125510394748139400276736180584963987999151542061476475006167462677790353762231687565107534311792935838097115665927399514000020465832475192460661176307034250628493152839045016454977869517113832609602454971392283201764442918637757154971096237789649189579100631858482299874409735442994305118802986543461247215683496660616122256664902194682648535292817185032725639124205020738831272191401808984839979372853514059531880413628493300645144644805035649130466659972054835108810878367701630931111345000568986948211033980236371612586773173986673033271440118031997109320887756569246779809615518611205487690131637074048617702273498553398664632815092330077864308886356464888798729869264900101296131098035188951430633861500497037525824325108952784306434668936884115116015399432686137902914400144310124638164466045334060652078277055349480631992944267423914767372418780264246251486528224291930308028671629818578023019647177570459540811793896830836479035736056811138251675287137445682786363997272661953419123070162303744109377852217005697144450945234320848914219631001866290789286756273235900573758561599942989685670125463180719775102751238518138296375531351385079611157334051231740251791133656758719246804615803878926474614745963014095472408008124036343536607797281967759970275722555993965455377121958081941260334771025482064561335991870574243063888138439204269939558388774952295132194917076024106922728724108691071568494287291357198932451572198295210294374019058805996496595299753398503213889198089579406222923639785531714518126493705090446126307138146832924791283389272717770264428903638476503193800582541365419614506896321807332962178498397968246652815062589355794002830657673178064433383455727629207897390180983338004258154898624588829940004563220212491737786319245887201323946529314294270638911995835760904148906839395711929223743464129627782570056821053428442509692895911216297839780023116335055659397767070704069351769536850762801017681900177036054187495242032768005638626828490450786655651746979833760425056192483455606625657800089456846050364869121013635528219058410870393461186614006153040252127298236324239200593050535028371734115785546941603862738787678673011599002933541585263766007772928944087366552773501979638464549390847149831914470343725558146821534999012496268868506835565329553736408911169342485341471428523669015981122256644970445129630132410959847481318646534359422848870679407640620429880327455039129963301087076109077802309910663150902895504894409088822665344766191709727327920932845265896595822881314412243625865681453062560555427700999288533128587448026643404735987891852354468863440056874534949239995886423219847562838899243354528128201844004385447990265577815804048091022740096914927290235297282108036196218066738837136850284202563469806333488380446734591825356396880459693561815414859680588506103601194266722436955074646879580067898680497834114544667931871844625791839502146066519798227614828823657215955002760038580591260292891419616905953169290954335486865103809129190980514780364198734835316879571092219412769799307912025078360079042362181324194445982236539572140660173997398012492650557374559322031007042418542311609798977866138121548269521401096907790858463582685386097092629519297200726652847917188158191123350152893197009422039552167547014953761679347513723608275336286813542699931310603956628821646749039638689250085960409196055373191762156284822630062676721576860140367843440521846688033685551029525854150883948807216890114643311468874893848372869985642884210700662336265001558323610712031529450172480877217955223435927978027139388876343721202791394287349461929823237149497900632899821862580831228373743817582866683253445557107889607407188180673052404616119024524807492986946767118142484298097646614926047654500846772617415065651810868394473750223677963774594825248283723299980990894802103469111038470928913146465270369283386172849511133786832902426203089266557289968750686909417807249786049156782502058982682158185390318492834447385589638391377622172649623249255906746186131499831734301851999619167065092324095302239103369111572125530036086786849759521856557522622145135642767142528892744740787285845896554960922047717496866945354089389306676556699373059491484084824394414397362222913931905882558161710310572238283386636433198771815757601040334720820342565007932255072239031855318861363216355371003932645839670226539489503226556550282852738234552094289439564743785537249989473658447530319756225531144632363480937079769746857479532360941975275324635600203463389776157140447605866511463581584336505826941628940504017122106455518991121560884150739379017509846209447765838002909647322677553207338477418809836510821993883721570087613797153667750620334093050592720029023417223214701159814104808047035200144302877619045603680444345227834346405948743858101579630188357017842836408632375828653518483211618659745054992661020015521327891446948552578064021238243559161778434279261543122649999273188991506734136721341940246188412995149452625687414327023298761309577734199132528563225043684366727724328311790210148370274867830983910211288333740487629265781289554879218898891235126002496143246535254871803856043682478970099485393798675299963718190711216525285859104506318881763605691265815064494234514678476407528306765376027975063557479296327244558132154974707103035658035649316613815312372966955645936979648769141547014020987006580791536267689842050433683663012860912137058065310666335551467432314329501176667427838809541623723867963741754458969230599375442519126110375972638535912830549379177766122591239692230055782473581813589787700341949252976004535044110313706434440894246972500483359573010305724609138408307728825441124572238332130937687392684380928506794842639499283474579332590589030593489083813081012041537692196069451044551222300922172928557336387164639058593045579297604696454421166895312808812754241496145891108064899340939546569125110342272510349275691140340272217900816187021985024831449795441144065997127255185527191245489763944541770591412805015230212336247006066504841359516481467439778771677816720897749564887796865403750807095270330425998619396934279678552310521387389154746845309083067282030405408575381382598152516332480513021919027546959618244951705011559372564290407936002483771280409881528412301045396982036003923480129123915119499553628739433331671806250931108401114915193785616177810298771782586743712823446447998068723920955611186033303046977877822097653003635681036049135860997180766943731200442086851308355310407255789519647047697686517244833907096142688326282647954348463113145779615115013214834677741342902737370565227482923356870975222389369877390559373721697740658543269295005472884635268478496114896775155366203812265502376607861017425710881032018738973769307795385728244621550909964639050463384259962052344906852607480521964828831346131071505032838668893082315287072093126507462611641935182919502393292029157504753113866836373175269241884025633355711211467236505641903056069188012590578043124417987751519026537452163786381574289102527850944013844303927546947508858913147226088665029862829261256852132411759144041285743468503811979538326980231256954143830397513738259384505686702139397408341873772162033278574335337146150986026534559769995347951796179652671198479619853552489493976944426865477640667317955389833337951642223407663474566813643820264162329259290961964649575020323661590228413728704416588014834035167206285748282043250531401815339601254866695331841297851526706219280287109882390188088373189125037469485074180799331721834673825776887214562533247647107997958962901597024575902441636625379934627774254957791368289328700347110301085919242001867349864303574953766378256268272374091440069098262147332514535477409460765451476330278255848446867212094209402585424788846011524238989139830739527094664542190746421520605777718120882012901344764359275565451054319094758998876170558068276088585056847245002921925366987317142075529349510169254472194261539789704834539810805992922206686548024059282103780569392558497615038508184292085603443247647059952216491398229367960486257821086582262910739378827905132778511822133409280083187503156737715733270066463995325845062289480793645479316581509056302018918297898191553169157664243724176832958497522320391416686200898235250315543795709407354902862494550488709522024392312953620990437292993455049476728297623273046425295923431068789966588409035361598981533887111219816496763601069550952714851531185174400466982354980087915042991387757721152310544175360793701488767410914889801405454666783353039495056538151390830562271331680100919012627427839466501001949113913153751053349414033299181759748383036126024268186104473041448438578627590244275018948749738015384685939000195494943384361385553237891927331678501004372993368756074078482377853061722477771809338526317038335408683582105220457209263231013904790534770383439886046496409920285610383757971693614654928903988022129166400210494043439035325222358567023962333064824956659028431035240673899095273521060977995784362493562404135841848989523037872662079347810959683886196867252523275480566195669981074828012531886558713868416208852086323202207519936944774905788144446022260482789604722845157628961361089579148079692013513622164878256494859068057731303540309397816645399253041815768360349250599101368936554836674432949632593976174610753874149092256495083566071164725456725698328264117015913377651389983472602906291336798364539188997863459241192177594318844703293352509367154490918171657426677602291598711083126151443669234258931820182126526415427327993260926540008768167441708812862251257217074877005917977837689193197507540326340181934710511628780113607400090385794206377931519812282667983884942985685803123861407347190889013054623562610902559561212725576281681676776443566681924102890900274897195577803574341900105739571025119296759844073567059494754588704434803426845601687510758788511535249741123963048716344142832619850818382935770510086531046764313820434352100412535909512129678648274645875121169601810822079860739120705565001486316698571931187099346119227877896658152704085105960501838297089733028914274711021539485807820301297966730753995125943386764291193272558043641572306186870985219270743316842248365032047435760571077742749462881095698628238081316225545365377169874946412413590130717634501917344680979759149348371388982625105766608499215006040484798596364296496348482255587190063337425954130042377969313566041231667415331404146297417447334057317008666893734676966694358037221412964843051175453461549331739607664446128851408062029512301615793812773472644269496783977986052475196591396793424200946196052558396816469551742641302937777233031356707564374947361035568229550403890480048883876646639314078689778591687386267576454786580531631732086778778438492199943193952402304300567164104837336222506222349344725895880333946396123956312805253903104842433691241243854483108260379972434036232024463930152258564149250656909511971277674928079449367793865327377218609574576492942708311714658538810717750227896856983643352430488790139988525316729338178770164291069522549502091371837471763326247263464578416022348564889587252833460815268830431246683866821491740417803286717867381909931461115116253840555016671189309506147133063085120998222151239034577980190304511685036198283107700712292712371939839852214989249731185556728367332519648496015507221291758780875773188546538552184362503904341768571632540708969538952860996001845962098174054135843744005711798465500714943177596812293669568815418801573598453594433803770742561867005215012753841780475919662333186476024490883078983799911019610447084280601925825358938884358648428071432060795079664137318158716185180778991603443612372493296423478672770095304585878222949665043597003996353780909817471381024633359444779681695978944124230065878845255164990683875128320892005821565982191723965235689073756123961763088713764682401440972911131053276619683446488832815148955195376723875297858702908153591875288095457348306779615492154231349060387983423153512083382182789510140590158334735644697122299299818703044278498402474988525193165754303607394687842673459010425660187355132463999867718686427753429999601383615043956365017553021174210410391238373512044808205662058138371750576050296963301248294809775886921132345065139362236737158744862983760055208696096420030695382320944257839033881593837391892971935222991632494709216591424243968594302512665980754555164739097473901675559019895315520917207476926630632349638541625458768889806814145606362080251255011874709260696956766032250247750604959776529301868167904132319327181877282986602390487287041272211841806615697849805088238632939252890431885542137282371670585969690285692384387477595475684744865413552976195154763128665555848277529002737208940367826826831921368333890432869859968991267096646203975657970893352542743885080542817615033323335602462349379937687204511642752360692816133835932179325332630963325531930671624633832355079082113863075579581503381119200049602440114309368053927165339323192844133381674637810950161731921685233537857780454486498786163264605014613934057844152838941386513829525678829357084147925164196319843400945049598573489253822989655322832122489359880498999898184186938822572731466077449538309968385914089409904439213579043533843823259752081309744446078347480407426886407681196435642562651343293016024501404273875124641199089970923507599719909267166335233145298258904685062380277660095049268237916918543324609884892332746256463596798025723713997744410574701597216547761804082868459665586414853814657622433124572385450391224540459780109052972359172955569087620030831147677632160516783391368394979013776225854922553027594974722676334938075115686094657893322878061345712986920884908130917337455758322885840831667428806753303385239338487491475122029865951932515120288198172968754798369463523684741906689758162757305165255366431501163510966356095593906509849740329872713365106343722794298355297465793909803547136765663727522716069458244797042572612292802611276552034028693391319781120662384530441911454743168560418853841454323464757159579029630793501644169355048677456799725816418995060398311168354362174781923874752756317700237213544342965880065180663687434027553808168517008671743305412133966820338981995980437445442192122073544208250558797132585828712602569708595643126086734605418370739612831986757314192951935676035414740845160655164330160107655550059842239846674527191858979444265570013486760187006204453897118767430061323071632812720529615193736077668712042913373716170377310808125160600743128069641192757241236845609776034499798157895622184826253876674783679700623111784425086064250753855642729934168671732331553477277552788447035735051703520332327762408010360798010769594722008968466606099204325915282921344374111114501766891791642664883827926310606903297022723680715065143813460434774519852954070301442439593544905756975248929287001261135717565667030078237681921122073920755012827003871386000793278933530915568755986284326705663235038507007570211979970995534381417812512652691602158013935658069451537975555116871442061763043988942340064292559808212711559427302822401899656756471293967863241223972710297272524106352829507045246288771221022967316405564761548003005472450093147869602328684608171779601341588015658996379838116451755743877388389734909562397225915796282827618346771640899328222294550311778921741344980544644821015054607518260048601555998002992620499583134174100601298981968997438437730342506812246236113606243020088673257901557898179480295795961689606491179705201741296850370522676889668294053110147101489246565919999679917024168293020086384933318855640717082978578614403409346575369482752754988857177770500505623141158693028966810668771855375101308024932397713450975474417451479680094080079109853642254777873430333966943154309650629383854075888313147789030365090419826038986915799200757066901164535283085106388339249308349486130138752183742523103663175349048076806495951317994686786334774071258560681830539330756570211929817650011384261632615026458216232655543717819653852979864552798331854602404819363985345230477627053555461217500388688590552372382118222184231875823977661276479017569162468092662256343000097844026084562992908871973886154282684493452126541251854711525940077659916085646890677698892117362345223694427770908391653535870783874416507517113736112843868750186401462832553596287465901559879820262078518554280816618639332038349090406350806877005709026435962422109365854399230842326351844608533163214775976042396293768751068298110710903575204908879835940044267444747728235573123901119358302181779896920195966368025701678329208943730217446905135822210294210094400248556090791619127862363027939851597010282075610970772899226091519660746697437392581304555502736795519421468668495231418730414680470333155986397449541992406925567159643758253767222818076693183291949506067568452727431466698248603846331934709603677393216793853668667850678960496409495949486334874797403657025621359421173036567878931211498408495389015915211070794892921649475015843464667112464618056942192868239340151035830892575971085576146818150037951382661716867243545171724395435532125064765993138741165378801020885774609992936086517295471855158599865117778213779838849912281698677365360714159253637733898797785284148606818313727783119521913249176077510339978089732550087366770201149877965764176197935020826088471465994424781834073333656275648298784393020986378643663253723991298773380876077407949300661610253207517013038467787620609236542009422526688412335606183209643509611081247906283270243466698307570663091304859500138315210658148062789286785720481365602740703285688709673073674859878295943238186317771771674596912570678693731297120574956086651887487580297850142416197268684569432609127158498423656822194417832257496090151346345182164835215242115386768984847188427969204698367558853598932758249926442012319404579140434220207086172971217948682680723302402714006737398872554142045414705584670960516663360465050163641029140021267892839620617522811318175553794713001959766639361334977633464432139597736691445900814278692300325576585983079122645653340220909795577902046678738304372256933704916161801880674178069223443548892416249346931765703750718605316154007233090018024797197195449078935564932817325449927414694794950750717211340323936831140572848252952000772702296992371315246342210633672489373738090950352604008523077244877516127198739186316643556876218102298199904755667674744345708483454292109760311058789120258144643405992399070667090740811084751581217957163444965745959225251683627818639091912668264029371857450905567945855041454244079222168232052726449330973649874307626614421461782450046506222940180386205962372941221033449115655469591307020115832096655424835211873030310155226674203526205616929430799882142166178270393321174853991543112501780123083692435734589229821599701967746939420018621835278715005731090607504627126007543545565771107700656544593080763159301100674348028834623018808804957156584449050825624652516520770859905079957393667219235448276787348307843096943777963510977373164972836532720236345102951847089446637348723861702286112391270885016533095909151304247254914562833288858889532937080014428442934758353825197364276666344942172639512015013678996016506291050262950083500891879488656381356484928041313708536173466951431076296576689822850170924701934446492845874302102372231275553649916806519644026907124787908511770371948131932517967892484981497798854023191278512235744884807000988284768790642695971766737292918448733287667439637932295483061305494754736000125975905350721557746599317522638009203246746572586988906069408215374941064800974062280865179310535822266774083140606613514188195717888932131635185814750844436959355446044936486873403571427398423219903727666581131100680495825230383074777893896165998752737298292381099463131807430234773969489153385984290946133713137409282069668894714746413170110245028508962197079608577595716621863252228010827745708930284385357395787443854949596679033362130185591126684631979732266498368741117564534945946663444932265739599824449606383236438349018576930284397795017517112492416615076640392919368680298877387922473950202665328131692212408941893957340574489120924383789334474388919189761967155113665865408965677196950793607175405010393864572026876985906232258090263381683910370203348481728002316086370923472254789985214425706660574077445172487845612782046127636426050187836965248830441606843408957233549044100457622674109686495803420104229256971768898480889429305830384058715677504002397710360717095662105302967282764090736766916941109360422397641520586818958860812502103420300000421729765729931911968556403407921370688615991341623086758337802639344171125135295962269209451041258828895010125914634822682614849984135164667633703964946285579956827945724812393717470089287962951574164938487277607832195873232415827761279687506056552397974807328419774965069456631442563079147908017118369430183975216851680515861047484372868792374854333813380258032687594513403780477038067247226643684627958167208436168665194598357006291938353852847446411575661513886578468444466500172088708234086341074164898282043275159799309868829470672464847023912841327447808067279428158809983753365334937328013250184259418203203244762379176984883837786474380147072493397471691782216492276589170205009498020775319289832460887401264179168629907904694774674829173776872715763048652384009086036685597569887120591034377847155544152254747762248450232269303861797154844033020489996053723820074354669452949988892025039694272014437657438168429403097441324708990470691220751581146384257419290029028989667181034964502143071787252764373511930408018457042925654169264369395474975298093981795377291425811987487976095942896446368645748577042007433583648445549641375177780426859287534831424954652746825999619702865971286248546980519625920668056779972627263855478260464676218373301553862691537417653031539619472083821659301692414854296809410754743593407639609852177531566791831463834061938515751268243439007758961005921514509204420426126595526151106895805049466047728905986261224344271747735205166689659999279403549716420857677113748742036776579674157932946881981394649844991246186830593684702254562737440133525293781024587618617367164885982682177735951825752418217301276870763618164451366087226953442564494717097161775906736467851391077570577844409406719946036248834064569939960805126517537428325434612883496815154049618249715969022393248291052795433688823563379191441919740378001498355856220266864386152733109432920156584527123201347091749634101133116801231611426874721357369377686993011702984898719233417949388858596906186309939494109223397925260387104313366034067973682987837604560443712795853224893004855241136092172267381508393693049978610906082900888829018696070703127114725219986286510177777851253370249294444544870203173001229749216429375823243905171314858024436609457229705368437847601383383084022555658871662890293296237988631092335701829645142121462258031155750222887573741361907679412946495581464082820694663413576652875824471629763605054507692086755356217019770440362149901841244321543497207466139079264724452274753201314680310029455619871860761740341192702626135681127071248008148387632880718594948173202415252275952974112279905403488976367288013187175783778644299161857508177015157998485152797624084766282658381342158827283907145395254576933422171901587954739642696903350299385672753056311863925521418301549367247796511532584683397535373482865986737418889140417106657064819900163957248404536108930561253394535981222292962241490936097089538309555776368578068157708094686078902055265239221839064525440653607501612586239612351001081978014302232330617624737012489087253103340105486640310728240817699196692030678030457440808429374434661143429918706210199507400268802893168767098017472303439837595028782507687095026241337044204191750780121704868984686649641882981731336585269276796207199123509783337891680089281267761924624139924135361321436525655935344996303924290367845887261847999552617089432771533072565892850593169373412489668259366450743747974586675444759485335374759758727955849323706555390227864656263447085080080662641154481300277606721388893962648405350866544443772015000298865425757068364964394320585555070681458324497487280676372356913622365482094180976124959090329418427035314991643752518151774810159860454507833897880276356422996761746294467280459555571962095279454718573527209545436792555975948789082527010895016263133708364394112153944701676094443298964378081546571581900978572863444020186303709052852892680757298813178424569485812349524049256865273837452512066712546070245755209206566737212429511024613150837271282935298031252544779129135713474671267922579449746698979421447004511444322537675313596803544684124657443093039499142984180590920062289564981721451770732507233242073749690259423921686122351129179266050531520245290432319448911171610224817712583407198917000505173813861234902206321180195297652142601923682831594402363231714130038614840170874326201672875461820900884821285531364187165121386270935880554455280528927425276887826022306515888243372056436367826296071310774596614613084746328169366438848926242420490680194973901724221868647025897164160544458681510849584806176275039958776831853991071057986853978810977109458912172837602643233298920450540702127483735292122633488762727735363071770655207621503665506740372460483782708564787484373862266527770807567495892476651931250741170866023178808926635600489065279578510902260693373604948302556744718068395501199974624392880891914536038285994999835313840216223831069900850057912500667873490269402916177329176106737812440151669554747755270678825728124812864736539924821987397073759672382139894477662689494693018573528839407083785701004144141916482802621955407188457234031212300445265617454189242643982557835743395169505348845827692645044164656255351018576177141712897623255163115517829671359825327462552029440774456949065602273150203157314929074194264619030178490664724346461844651167342457901630968246134971810068103528110836556506223733971582994331319567122189400292992364534267923529533374341303967648965340281083947794250697914715491029199643656726037936523800500971035356315933046026854948453032325710646389617929642038686648814894542879776781136119835023984296462617747688988179079340851023985730195605161260414604813911978189682482072905841228111135736542190719940633491338969764564786107845615796406763792631262084267114651853787943003690488775535144076766584310316218257904955551494774024602293004488110170102552491972875704079918323635041151203757973790851297083947497988830448747659097111557847750627239516802252127893991081183144764266967779581859008077998628928398543615596252923697331521670832341101396579452783819220487166525520029747133783290302619038742839188198215405312995011896356825261283643451681246630083034317498569731619012192963335599382921942113386787952088424672840336769454205323315467546072220618823149210116727049763607287856671493140901439318941896587908035212817072400592623941133785977349595234631257020326203433155677862278781187113377916553234675884140591734675941161056290798965890392572135953421819645437653083064087462541309649694695635816483325387397369216582909774684350212704344653190973439189536972076709085496758826506465771483160015333947839378306746482426876343557960486178387617110380056377210469043303228292734217493812524545733331081254116085113977488473638154943004934709693303502167711314532507304135789498079117492910364553839245609207529890095522749619175043783786546401158602717337172090167215726888030034247636000616057049851627514712351448720917101562567825228509737744196071853198031193781136159568633228780743054205469179428929126277741149437574416359164310788936112405685616860153999043320576748043825398417601111294328350888919054309240891502253162564539714986053662380870602187756475223036927261422792821322991803632468832156519770702137246769526201054075301586236948404806764016339650559114881622290259322298894611871391285848882107000793807750774484603807383997270188257529437664468402135714758129890131321394709771060750993811264859067073469135229383380580990763091998916911547123684214125360901523010428015119384020033885509647010628785874995138017075607863283650923421490610173602018268122668318733203271982625849323180310639621550556244959820198901051013290188122955271460870248014787911869466624187943198496335310693579695397894486494492803082070952797542038842849222107105584765629279598795358162836945038155045213512919426943008543705477250121095552177945552338733068076272261135588365096567912781985465049971634794291138873616253027628468117214179859560579159921464336395421776275927657967171555327485814990014169617400731141262594887231534477226290280033933732143927236751098081168954076654360799052347116279016355196687983703422216259559889812146864761953855999298859869647872558614599615804454800124087889600945197964506503959489526400216997439294136151985476673058681120583494075309523280194013140919749700745955279767168904150716687706586102951076188178986326209057243596321300927410557253587370068874700871706605144031776781271649437204665161599929604111105310769836191036058546125870821856398542852907338481283795422501023807101771044271885948046066952006029434220819591699122473335305242247053533889813819538503716705414930082622629595011346648882518023343176889018924976107339002079108707082698753255949860243090020540846612630656633508238731960031820836423553135550012928019628031625251207572011660268545463397705218610479041342750354529733772717640723893364793861797752273233677750267038614219499916335869261228528867118048842276604334452060351150610431544773624422559045352543755265163109495707461531887712239986471259857840743886181683818461026830839966420152942326391455639098892671434526559409650435465409647793207520125683242254658006493201106029385445792759025283314729638127546104304600646182763005467558335301177615931596336982438723431069303237197464245836107798460649515675634955648117960297347416437202651694720373162342334742815615335843147268256360786268290040090755837795969819379138743829239083955197169620780751835392093571086755629571452100972864111434456039665083202926400304692973557567564865894641652093344216787277255836538365129771135964692753591442710949274671356060518480313462853506149220213632364289206617360199342164219902337237429856555130382130218177586877536794298374661547226614887445304786281553729546654532868317930823985038875204024614672364688909234127522654653666271468844108775684013910817534810985549644921671449961918963933857869280641199249250555153838034090702644397486605246246668594683915811215571983819755400484579250663174178209097663276018656835129591591103535574195524938755273531759706872910587438527135648950451290687784799065705281281937051695255788630911905481035665974262110805841903687147196395064868542668985093978443786164993839336667723631656777006487355833190426869214392351415468747979875523902716245973373419118445613618233515452685446853854660241495477641334148206491187659162382224432327803001902937987638923246955933337740029759653909891632673731846628160060477502144925811191379425247068618884568655814521414007666559568398348112215956253160417701648805483973347364001131862325690096440231749023426577336949155466144730610107159416917395181666726240487676910567265706805642431560933521827487448928643885664065827442325603840746605956779275703811203454037361276149762150094922471866585825793433400354339824230280620268622507492619222021709004338998675615428022282120773283777350351677561005356533393142776299789034751847005726904806555562184065513512862267522134424832040973585171437482613897920836790337004472920904690093266226519868257406650570119863589823127567507100591519533381995894851520526129150117528146830968653072098717829540794790720942613354498914141484914674955986544976161627194196485891499689662089737178775623201918519142276422735478046414487874825940043040402433472447671720823887971916170400337434355266180438552090737723057814512769629631165596288223233431215819491480245960765453176050314342736492453311657399819753646830306868309936837163362816407134505557653451364094324687144984351327777985908580231777460480749123562314686266890048250861535097798381146234630591883869333741800993349454586833367339969991581853904773175298680157524234488255823734011855716452455284113330459964716929352887975198809404602957918982525012382526764207924102528002133833289611148096819220928125517985247305449106120704990078102408642124583627439318221631365279978572800729750056986318052220834188353365786594199120819254850228255877157240800592796609828647283592049730158603756150566937928574465326201913629461358540168460815462283780251309423948881050137057230646563842174965471025227312323752428522273282003038491361997782712341818599504961560498073057312502854024838739711686642137189200198236589229100727259849100483173227993165722284016520038738681238902552200330762330152021929585357806666336812229029361083910810207845437276003159336549497073631307126253707119227037158309022345116408248295890436292444018888048737187597813708016248261622711063091862139942688689281275146339932791030613805412176329876563252160764846537723360943059146903750928401957104765643694250875657775981123041431529575449252595074187635530853919520581600095449994877456217215566127972459214152172597570970110938327745838854628326760762909816139628999247839693815437669769645802901094787078605519003945926372588410381421000908671748496791089287625530992971417896261060371333181967244097937087940451293856858287037971104423476728502421867003741983748132388854801296415084526973271002802529425094722185116745764857602920428722577708041033746788631562543128083761359797237036933438891431959064497407703532226198823687270551677557477781012155319147803286490472236310574427287618996082545547354471781358877008309713692544984127439043679629667155263760842035781065644498630964651731050031632588908344765654414024152501398948963587646474065848610551419267399697171926263174161436199714437206954918041207962135365002597882052374121575884962119317000656999078940030079615285814532969050477981658823145880901382273260953520172908439293179826645641029141711044194121535991438667384736270392563428506765711458420096743928064093957955291435119022839807068022577126387879127899703414212875914905638421000064807457959646006894127758797915890268757327717621034272413232176796371011054352799351096754066455719181310066412142136823944769476441479531534104601423220587915404811331277824497322063133569624850014094809510618506583544953478513634054682110782722746394304636307447854406121011328608936861288575705929907502883927390905329090934906876007545578361763226399435381877476453960527651910264435613815377073292588895699755343681783726859977635906331799645496722058084991071381220438705347329745133632587959248741060822814309022319495510354758843587635866612615299821030076827184883480718262625820951606394643673703822627692877609842629825644788292125848988939107587072850724484398775519202305056306305578674120690120973825458660870690534895540646938482291329319533540763524701281106710442901084482301208464239019100210066242889490991606078668891777936621673893191640430217751289614271784598503492223305404474218405334087982939183949854776801345554214833711605398988239939677802838010451411711124920506033618097161463178968157042347287341569641650655496714026920463444477355605929728179976270818249682495559231077847554830054496521117651204386566586094055609505342921263617010964650884792225007700568116160613123910093401152153109942508370606444376954368027762001826729155023974306903614352454802602533913496613122567184755615382672583110461968284543975762377816317374658768482587697318457407089519805322565192562622569058571674582954068555082010181878684495158702387740690726806384422106980810001228396432755849250352601054827545201442163769885819209183493874320289759824156074184746048756167638238683124557717186827151130816834983745573957724064331760434715062118663288252771004479542912187353079914936121080293553264831607613123850959975369964039982855720246215886456205685192873214307081297086366031522736840228284394584605161334830270370477942721070563612148172822709931772763454393121675653564122028997462278155173792655089017216033087228074485098639529263278593820778419786109374998400135948443181682232506583784372014235308654305118391499883751635454862682911432357044644837414491348822131363094944600088973415844393337073610410843387155643150745823446974440791926356542900852515746408690138430974269184706752034473060097501459858080200711789090691993409562201035967465373897552613103077886448322137713502521223008127792690706052533529895861433100133259640539974336470758732958698055980797134466175258078520475184296809808885771577029844754845561746129847455230987061699110563725503806232684238551022492762112581614552139607690934150137077041803454728566082249940788575079482472116578186136723611844890992023411361413258980054510846364059986238505388020651256248771951070014644760651346724531709294499745698719756727478952902768455406654099907195272911958768523500593474301894890429497828121377961962683128133787424433359894229282046367738008734758249798086386990724627220616186471584123906604282012798579801136688263027990128930060320341023114916603775562786858170737572707426094061845111726740823812519700968960782031143860687846041840501355745205204300354230993810863119189702721499032155122408366800202597259431364713425767180847969045730421850036012594989841283948295794171753921107657558397276821296527526028028552410874793040720326499206727678923212319660499214642822136821406546822909955878667166249796181005197990992953842146945486785411183583122887289174019608622491543596884496500435413674612591325611324365059781420147878798555623838538051427069303566595565030344164435291894822393995072487238660308509051914321545411394177135912523110594214520384261748795044652040543382339690742608406882879874447173486054545419277774325940834295804701913695368815398694343444266332960161056216967620879850181380873937590509853634390420367458173765965260874171772314948053950707445073226636236083636779599423049046423142247717057359403892309902683631067523166051890071881094660010208923246153975289498181356747982941000335120079740943244435193310417638058059160726953583768871742319769968075563118945732690568706533459437987940394074712563583902200016258602867026742446600875780414855132266691980700514527974926507949425334928121920331508452641222451214008858554387006294231644690250893512154083692653940902464299449651902949023459786100484603623730679262054834521708087951348738917578701689946629135275237506293470850325627632570583374036244132805213112650171296027353162689664027867748371745818375147553172577667469791516974285966229064143143034896324762334928190097891379255297281203356909063081871129134026776965222984353987471916690130001960708412578714442133494286979034214408973203263345629255086121205873721107339366026925018039692611617436139408881545186456929580183217011289586463362109631143286867053587304194346295685053014590331072688037459131449930757712214559117056644190055917344400361519321205535953965091911943411798915556183024685351534710010362024568095317587231823689921514883656397032273093403908108812457033927177358094158822982939493311743690700664269663106293470062587444783281991459951347039362249191497075603242341510912624916917378243904994114893007850520089412286188300089399073208309663190961890915858560378005889331257424841912974649642641610499606426125354033371184601664222595604541514320474396584396997843651109277953995732966083509571801569279061664390397138606759902315392805519925801341432095535586712587799422049651316584710018218285677353380029272329461322380317493781457987740642890084353127081099961105881729016063253669544534031593425450252992920807715413596688938533757290269442076918279685432735972048285861703848661608090063056490914462266658004606318795668264738065366725719261626722514120071016548655102052196076575871867412704890921039323347117278075214222505615894196607133177204096638624077851876897852546870551515524925903232660707227468284080879009691091049135657877869391400296501720078301567006715634933844802635423203288358172960002942763287339168405840375785189505298724971005860342351100358613350172268476901528262397645134259964760764614124113578862350174043394414339572611149433213573070625840776977917879500275747664673986995259997741818315192486906816536018366396542200014548460431032955302668465892672212798561984803767843535213447555767033092602213744579614630030936008602573081482160097925034380167853868878429382437292063133148769495929795576270265554380510618555357197693266121810856269586450046916842106256889871781214227645367538505358020042214852533101509313465614476215935454660090517772862521934261570457788272378554459873744099309714972224720082025067957295980058794738879646974774577640794946103743230842309071381027971351914336274472019250390218787696239077908122566324760691235546750944975194967449481290002830363583228098469452779486693296860101680632240025883697768755656064569807358717918036364827514603634620350414145908092784367387206942088731735833011319068675933389571430768620115628097867541262773911560434843331613903534914358110478597079265287655196791406822926077494942197002526468543319740892696020650004515626586273017056823161249771126012002482866119592796021275503528128374393138377232263839100134141141584466064169438856955572960135461854660417658394366842633084879476785653689328268959148007483366617976684951767410078822486017066657935921709220254391969430157773549689937297314250465615077325555000398838897107919202890015009235374639522948493740671217336469798893886336596442152744588624732459779651143961165398891456855414194651812310396966282788462965979122423488646475449074163157158972278845137743800345067630253348111472205351648882797687573802013883329144951089116162884163994477648292210890327020554593600868024190842208747599902727639544505338063411948784528521048230275726136479768713523834981067896073341250299145655878506662484047726488008468019819623746090888805491060665576123608499466056368135723436404724756684563503217909947386699808701387921767500033024701498569038698372695830038803027257259134741140228670591669436971738511247574025389237182365798721890082320736212528655947257515386815378664322720597092328946463909197875268289330399976451939429163105101653386981597893407023382056986369175099463100104230461872844241382159288968210045875776500981295655435490410708166032382470468017702441827391564941568253028204272617022321823858091645371341467276645279052133190701010298972769249125633975004169487234666936038229243412034865356082153107279498399970220966997803749580080456533514262786718384483369663223049042519394137785335220551236743755817994148122879881744696511074481635928332344745530437574812147449417219919648898130524682357279034959257191747389045012865493410890863481457095957923493292685948915229194748519404528283785994749484091569937184325112203465409948408676148368970190398364581643998369698563881938904440323311044568201991113997299532591164100751683028810535919469672366178120094674730570631445487406773100623369826520525564733109897526438911784471537118791606960957939925869743404839634661280386205043913124330921838975593094671300792515042377684266978578146025980296784848130677425647739248356431065329791155816028423536041794529726094145371484377966290377179272411075701384602925212260645141367826653013529718291714419364069732019647404393313270769442198945150130587171615158410489861027080876622120470757214237145884338681757958281117937804839803238888892135527319877748192545247401448892705108103709415423350393757034640810519695343863108918546304490412993130997481050585993906762535063231921639988294457788170367299316663623614509440188921556815499274050389344175366731386284025466328686209905741473561114359508222421514785924213474225961475462510930871058958142273234326803131778178985995660377180217934374522648151846753104765789590977181900591365709236492167007822927202083208706861728427015498549472387611140038336511525205162752394983100921406740977141641043134687628398868453579397700184701886882351629013502349288775639140606779253675213595341601187816047642788435593179394612093163887848521550173805096190170028411454088006196835318254683872891079096175577807997895008182571074026260424403077893446058658386565212763724142312351587072901265640079011545096647150423824688309246522541232949718555717401145512490866099489097867678379318335396068782690582506586227202183522504049602429302248409581631040125802052646884198906194063447594870169346679071315821171085902736336644881268135816826411559793798395566984067760468536607835476877527798197619487259678523594692968899067832048933621376441031729157557221752773492872249186722870527893502035103152455657057812410292413784125720542135057087167597241216757334725876843833863199867157761751116404039700452293005377598505112203290548225503990073142263514919917710534603032230018836811754546409096499050350166394063806350664430385111251777710569898030441973569661314484085956265892019149710977094643631641963733386813787236383516771053899030891483218595526515944993618940608835252958652722087310148541696195915619543446472563319930544380730279870186524729091235224848144750159368427096683342936472703610073417657099564177597495890370816263040532341589971502233555038431081067654100574333931708936367601682853698806147164881939779549186893866666798966889395626386477816357090502200797869923584475506926942271368303439409255890816960128606536448378274131554216129480040484319709010984342612778505902473936243634537013477773939140060290947833268600153817567658300958326366936143463746757152882893182964449187677187228906110434527627118986187194902316963582811626920988984080522077656330867075901247886092059094262116449261441760565447155885877173963138714347324228678895302015702933723876510470966477707833745399565431947626001687732414087694812863508955025271105854134469679682777141023822419812081701351569603519998161191763492205217050391376891331781728550255122850189361939585209793071752711636363852866941596597174096987815151920778097477428736023263577494304953086277327361199833209462705525238525652376040436992479949288269736773695669102849726072695667721813893244779435164519512779513419975014863724502235291547432230863998685850138305255852167155638332883407712623114858146329677756362100474252109003139406781426984159084618626109932775255154268034730669492904389606422579617683410695249828532992001900967251300905192648429840412278562169033717719963424208946852922663108451959255380373411597322821054367120634621293508499958463960868711657639194072383261935540596507363189685019949960415362543238192067297293015639108934832589723555828719957251649951998802085751931138869921947319074515634642614137457102412672629254710243475397778746948680918937854814916577147937141615270535360676099740025041326151391221630179634127879767226312335411274584715282103100756404270700185083015846611170048885358864659534362534250687277440692480023368143229209650722257604250691277898467244572713088827226704385295801008251964685901527938672457035326974126879239657044801373553383985300218644014549929032018575062248607504541445796374167783863625490982708209901214037490713618793706200011208792881286364946708205291778602549441584551992534709248649739050048916077251005069400238230133877092279794650979413011075992659569133978796721726315857431737949405408307613145570093868393216584426805244767698599349939409352817002943877416609195589391042469332783326090189743860002726748563354621227167623421065636260375167651687917199803930780605405878941711845775029600670736705188782353815373354209880189500569110625955293818238767188957718039006308185338663175388162697318103327697820519336232602698212499559359862967730004085831925799513646949999584023959359776804919865954509682874515302783228924994732913630908273528230736221407005497397204660957685234608973364661747460650408632816096400768597005821895147854680736080634793507876798859476618773168044125264943773081636799202265138287299137074038103971825247337384625708237899393318938075397269518936991122806941990572198253668493640035004331418654542700128436563765878644347991812179357003745550853487009845365525035882485744835975409973489073479058363980481374096538254696994456639663236277316169512491598398328859058698924805061613733099185340490709284313075478876185071742710275818292295959210773041615647425665176346796538017674142923218574985388870463024681380699011463528552704953553983878900023924482968043403028033002470383332837370651158298313972195282754790637369296638098550109836592058253008625760774187906306129858881989466186413994307264265340077570236533442394127737468548106151689271331287244435594298545432554359274782560642421166985865415951360251413727801826203265467336372551550789220547315861545108750637949451108341617012142344818257745333621241552658020182981452817567148368995026115174062311680681541696662742870928918785293423640096485285265273156967904205794223005373248061999645353515862982336531418062776714340081925948967038399589136105075241097020621094833242798966530799796067173033618145180405107617711116438049686834818412749748876140490592902723180264448357176311865368784019133878398761938045995957307243573274868243767176783665368964795785698797875014747471156476665281857330503079585495835923541326042158213382438855043140990652986467783322451207343753381058460021187867511270450699879333095706987002125716774840229024570500558792243783914857187080854245227336885546313251461222027934757669452622290396625849346888057873935428362886013044952358437364560715537618791396174428674448297139505797090135706547765566548452543228301504194004704017004333210271238017365038922111745096932740288933560766926333635172128889151530243768277352690469960666925487812192442214440820548381052888894013725032517559761028464590822372473347184902549540318549328377283145880844127157454016283646822280805223783616341874543003480566495546427940438831604329019007706188912184516462837292854616125228041287443721932930584392980448835607012712112887764870856236628153188617425871625064543016029553516253491603070908965846198732904870777863805358400578320489168881742521617740031995704622242695906452544187813289784712964260952740954765773516352426869111721882421745732456402915649489417052894584530153022129983343211731352418941538753856120469651125183612836262835105977150146127751366453591275873214721186236404727605902412543250866177469346928857717796358524062346483521225332396887669262418170119230641922898686770672571005551821238285955156545876449119822796818053728754333788707660517612167616792566595894541986952523111740389495708170007012092625269060081940611233832777848023458916576848191680193021875682369010201968914525890993376089388317698194575839318940142507327234145032863702306066752572189451046140242212962948507744714736712691063244506417074421020794457937829236647061600064860470304815218927238721615205002937558956224793053822282412945635032574817353227347630859784278821731911331892572119555846774765925020993898593293622174494105131340254901656705298800573805900016371964005523366418576206941710073273798352943324600750308426319062018812028636044015736834905962532332818311848113975966152662243668101645167727392441921692457408229189675410673112616688862456762355366750939101352968261940062232983342277989823465749810679538934893648631799697258443235882087763398278545559371547698443643965990486165527715251966264857530437695549150218457385974780745739801069139647936854548909187658929785200984854791662077326806575001803118113475523365003992549920081905204288868380435622583071680618776107052609037994961601864351567894450266467266395142439208113536443271208278851772982652972249890187781965844044268681575739847271168587797638922475552287969356968289795707530973293657978854139840578606695406636136385446979637137595883218712293439112812146375606802954109161394526783124502973005729483377904461797418347498164727856909342967248292668957373710593690564060434954225320572095253017954040583153861435258233081256620933835743674583617609696415949782469632534458006780590111412382981734358272521205010171648492510520459801063204908223684837595510582188847127294483553099775354113600437986127827247910964081257286732694579012393092357593880990788688059967058964364668315494091506673579523894154422286709666269509966094537690866965207187006427375224945996326273395492267050204234582936356670123956231498502888022299346862472713182819685751162333491552401288666854220482829732077355730134419253783026286884054535274402698440264417344504806133632817894149078629954826632054851950975622971059739597750401255069114346478739714854309133294086572743701229623327136024982889636049697675232135060176371347058348929143293934501526004525925863233838382078387679192756535626403995974133445758374885736254425299136369924256359306310618339559956980438304138333524586063284550790044453720476939143856752774827877065688428679535151597906162517293355035472437368446833671859181497212897931906070348038209964624100100798441795526440625304171606483253277300614044043314200053251826380815668844361148214384777778053482178765904736048680089683924927243736094837385107105351352852724123563382907827680734834593768022775909670565860654622959680126759318079900843514193701696143701625592938001621188874727523080410956027332400639862064184916548692932811366643669955413454070703822920235393063784156900126174637053115005613473022213286611919341869035750948557671865706914072131399460868715765207952103801168817856909604447982200049755591324841733377868100447652211610857884688254111866625494696079125384245393510796266053906114282053945025968514990683197114506109403536664763674454675654261469934878293877563939265173610040960225182726040079656545293560801033595885370680065207721620903741224279299451539777366706682171250508765821544750222451657559665565462479541966182826320538093129441473969855449318784592933791404805410235038671564079550458886802955531704359105726451576982075592518502098610350710262615323837634557042533116695258289802728580367504890341054964642629000670388424920953101426348659251600406013689823407003171059763849510456835210993546746078783985355800840564704375389504740846377416326197546720496898273031667851456134062931606115530880466469043974796761679058344052777454736127295512066680218005941926088639451648214691111838307495200310373226710643527730725218136834787859671217679525027749158924370897823408695312532260837323843083662215694272580522992621778048467477943810697815545475042074926359628859927789686721486913311248699485902846054878468765818554258576045697857809669839438834734688671871794157725180597565705678697343107335643067711988869401164551496521651558929428970292793180752870900951615608312276078203898559454879935986009528166846255679572480175524176192410699250326182531009728015563285116899424804143415933427779315295734104298611621925562834744264469939689442286727046886977079660807889426909384532088950136973249054880536431295405073206772964495491651612898872509199062612900036431401976669424784766075689126495272946765711399925858879306030211939933781616554807307659673066387222941655906567519365885934698892925062463357965134842000209948823458344093068646897094429509707708556638632834217739361347448892588203528959247609853111231664977835348090782252259375018684446723646100646808472315908672230203362219151335983403773411840578655531720571258307148204772508255932898317512419636342085552660782334082201007656671057371896409115813466433876865727215711220479858013571806223544177603540869118178841604533335314359299262364179246887444906566533705186237788024078281943211020787540044787369305679799402307580569197488295489251084201654815544487051689960044602496854457298918768910175145851891103492426569146031133833288344912925761705912690383966803396026696826849730634888866640986371814687963786421886227304396316349954876283316954352810510917188388530270130649524717889048469900320136209235047276300070191829458311659267577987093859381672556364563864451032258867624188104843109135942809259699621502975262777813922617791751854321855527056187789087064172057610635356194836504376955593849953165811600596048737564487276481348049746204786028556343096573441043752080254132145619629457837293568546025779889068030273685185702436813354615105233995256593549456647889921615542435471519206585805898304373667155096058264221358516329802240041583739425419720396141204254522404217337315394678376200969189666401169408798064646866518682111430100383241515897757674464186822626466485049607855902090542980597511869380572867428653399656268931673494740374914679141677429213046491759268408319445952194164732636873424945622690680284212671223882074625156255010015154778744200555863333031804158837452257302444004153677677200972634905189728532744397978744673914047543076788157309719026046380358321388244464048552970100327381159448708577887124388240280975250588208238289895752506815336983194423615394083656116457670974784356562070813506910082535058759518351925103009393813196337047580344995991134808041073985761390042986183013520098120299349102266602743688233982356379716857754392510268436866203109045316137140156388067423552892101042857129521417357966144225536711041939191520846359529826294496351222649834304285969607975072463477714835872002404649759816793507310891309574179747253983925239911426483867085853371804577301916622505912325753640610996732523212076691757517629818978494841012970224491398904616997387419671375240337167108476720460932538477329490788508973741219149710639285527251268647067555663287111099970979779305552463274919957139422980691454571483419456744966443583449818424695778102397055190087118474565056862743915931154851871388997531203389611575971961844589748358467707403816496278319827368731319855888586590350554909785145191360395178977241836907196117268776162941981515462391804097638293951030180044297790492956954421823424201629564986410563398695257641258017225054696718805871962713240721792482488943221348934859129321230819174502198394421730819982707389884964936367914627435812450673032955912142958212192465448769365027241046450700176710499977926964823535777643541393045465446237935595928005166417379600673276432455258448000109859595449669279549286286908978303595157456740242208420451720948909293868388513736837018574258182718577219014326305688899769407995570988691200891242195943884619469702850548574269134975480093270213181353252925686054250992214239310621568555657060697062544310665858076796363004957135630934624513037510055969583472501831009166197088358226762605402087276441750292695404490511369034405997497000833644952227362568506789715498981129544447381886392918745718068054768245614130295947354752487813757107033675644118593678930136849586234485418139962080562606744299686049542841460184928338723820090893573105523041566130969093352965700495041443528122427527299001081846755172576457936179356076529508716356396542189741012712257094545770855179776112816233691074502693895860113162680987386659585769756452716106673095789044513385099748435045963346733674588627070989346443700999035137783429771192267847863334432750606363551994592934826319569287213652055631499909688673106999972126953434312045082664481609220605533667689071480088856826765674875808906917856664227072689868107456718760896180513232476940585709680414588799587004052369581499464018629650773458457001127740311646036279336733173178014666583861767992733645662181427418346123294483371919028044534174343485869032850722759866566244325174299498872921691533593184106197935547933129076332272176664804892634827953810295077760250588793696815187448690375208873001078436245640193500915706224822763773520369474610038961615720591809439588424930357763850075630270097147741233299788236986881674254290303002008814084355309133368040553210363220423129738663876775488641222191373791898172794302628019107510051891518572279864691324407282842667829826193550364606607905842841804849536913016214970426952370113249871212931799221565196488197751453865493561117602698466968833201466373244900907976947505246569579012833011126002443348400941792778778941302712310530027138480843444918759156514030719849037765322184257013032840279180565577105077522588292151147789778809829885392231057847458217496232944923149647348530849013769771231080916563599224288917436974264738358783751234567477674365238635199051024037200860212005118605412174333540075973555819420379825623349506961094686934060469723677855509394855269928331321722654056358320622716223791380586080259705809069965730636935463520239795145784214360610331080637116705208309294133074353771271367722312356453222925147760691182577544518744970461851360358578320361231536928244939999480667154942012863031978427278121649733410573331380995410736791231774185088294689750082991000871962749427139740970480706370009125687049141724174992658609316887902967362163626085351039298087462299348609895345802260184483934471639049808319050387990879720712666520035756847291374948683914252146757566623714945320452909380742474430537455597172664889694766545317400689646347974413709384542599467558629263903714095813835675324867733621627446704264740078973502197699672669332746276353026407087490714285442458770030688536669733066728078633712419358521828866425011383369581397309760107491592656939751767361839760043494950919120619414453626058928528211373903109177619802471181346121870124018783337828832833273366674618252497691982013134747594010888524667873723488335209271623918560682521184903385845419782667146850260762703048740072355960051300298900493358096070074680455741018132855346247573278511470343067431752378513850105916161259983926638796585524960361340684487687073270197225110388808309481490579236567598254760272821617514322601744409028302175413202636472134924544822070810190131521270046553502475689713057903898254969331384469992780049520588236962576391876552488174983579842992241144492363994198491184425942516124733426776406380225559179268585360077597991465799308303312339454830727881090796329397112583165213660339532193295566464491759108925590477547045957901226514784668518644947508229047628079444526607180177396049819556698718959143990609323069711987010854071643022351160881706498358118519567674123450389481964501002154314830302338223519133638259029096839230439076869802759240835519685654103975573154808886481068379508505253445039806332266124663390695230415489331756168429004649934791363565160856413530545652869053294586963641506722020069976037268571143971273377649534434737568312516345541025995650782364589812662152932264665639698071879703331997623005606953939326156929623815946661017062644177320819127178646168372597178587068848655107381709361778411467274200458631392717343101774238206485853652501078193585978968032739787769073276236748664178440993562734238428164551565709577124843650015453168785057875496921823277042406526127788749859085286493187132490099841889298352865116395737247755614666014556965806690012602816783763920623559066198431849109207342489311337730899304075172865326078603739210212194109080947479347498142427426658629819627213578084445640433844997697030385036776902717961786630841388877737814301521988440962518158222525536225051637279444562568581621262591194574863597598405778259942778419268517250935173314494690916462807861132341668511541967667665679909350200806146384875913868968035332669349492848336777104066430526444462074819280554645448002485152978941003993672028608062652422077907050724693452271879467978980034965508070333075370443594395534510497937108871908438572831198335063795893450591008776016596286646882103688967689988241061793739360062356249087828967218910378212868551851152354687953826696727803908406237744616246517665909742104027803914867526942942426086246062799772940094200662875742132629117126147627930041115567986298310310336132635994405488934450770670359651479524070155922896782613213876079631023234329544110520292046856754464773729980779835710325626511910742903102328682779834851885426235654983278238664364449232383838396868684566914864729587810906018591126544138482281750828011291544077518916228769863313894575295112692674399598923639536804708416681446872621600086385674296142635486221837456207932088856502358215577541252542767485056237443941503901474459943656092655881505859651253327421273682233998695932569060272416750431478894254730741171784097158352839401839132562856922693467760798119594493391762588761153045779494629713323881110782839311549674040768721298810030505780403062464432343782960244435237257718597997195092338122662405951600171626233459280707366510498257617113017503536125747870862749419888876211742241508895682818861896619526323512130923622324762972357252884824902127844899150280985497956273706137637349260951164740430115388011801909850902929517296583357990656054443453370107865399147488511624490315912725699039053702285745103831283133060222479918570144017330324028820991628666056383438183998308112882097291415162717886238950004887080090075985357296098527782449975325389976331762002258475782528377170590902917424764406084978008771319570912797750518631384005299454751537055283542505907015518446316741092425870755997638765131648448441855266575461534016248368548374019643566171219041045531000908326924353473635788621577947236751227751438553632117420448935565702647903239260358311317868531548665499940625142998675907694392158436521661416169748202685580745497082725427627104250819421770121791033864713268467993649651708381700241398300653744160524101832351571421608372604791024554320355506743729654890218924994140782540985703919931984619519715165175278135829226914763961288744157206230089188435064919921339102361176368319358312630846701432233625409381285097395254691788238141297092593411457962278800555134286156141031867786694552308535103619687457782735166086250709689046628633702911976892767812423760794605022180519190605770489535840409144098961103415598249720555436585937465056388744047556664177479731814160065423504413714207557381534554452327594679485946933472124085224391987015970249132605839287076054442242755635723590826842884106742457760078012270270358661783430102645573987668807322481988449958590064132940605529820762367732845574859272366149546361871526845307851007257612885233913582484448880619900849055276302494036234594744934867934133567236680467824166810332156933204223778048411800551293596206322107821749321890598500097610942791325217529792391737921861363214409422148637897163047651352459731329608023761533032900066752281556373347678665681589855770276705605147122377166969780848653018398261277482035255066206197343221891370012045319468481319471386809773652616997916679906738982882268096795357481195090607570217911697984153445358770963805146018818696007508836512192331288277218580734765405189247794350282622921833275643224852267903042430448290615243264351494688455081774339013855039800262765583420661341474995633100635888293683458027832509521840519149028799441794283413844736732273057120572159170010705476609120292596810648095314800266034861119546722526384401336942643925074425017168213548175763473839506361780522716593699050407302964917395840240436381716753784131592832555451613538463240608045406247365535308940660282763628675161890515859473015941073344969611710224528038619373419883533919559960604084837144932752354229204840679040701718679377584118611636446480867052309101013797762827562032812034946609955220274769324357601115456854714893631930840504578479017001115921897372693475192865367154497254820737108463404666338004302479219529256959968534039255802759959116051801905126016553566670183448776328401409248478526252109489498712459950523355490980459738446125079762878649465490053519561812036036743515403520708775368355763351538334413625480159302836171131280961782925804290557773892403676496917121114246532241131622133638679410226410751810983270810835065591628564790563742257359911666820642859995551805462280916716004774139315674683418144036240687018844361947179804288640127636759152550836221433547726017201153183693435335022427761481395412413338716188323464271974055427848595343163119730164737002852458639208339040235372700665336112670906914579093740677075133768130409125392667158666075980931314627922148572341148703097655359458436187693823666865063744656790005816675227110027231679676614252233814784675735288089589440084289222932896039095298131751655328816299468871018494074635331658511619578074970028382160729155017097966064453153218618686145439860018165901584737006675165991935506233617652613103438725653210656946085023555709492565967151310735921479968243829014820612915776422643943141109574118347684780766718587271109817511641114908394995873373000560711933604684506971353296520529501151446370189572011901324709345448396521577625298773882315048122015778132105993538979374750926861176049245338801168439451927256416634785112337434014320981341134686865111088878186870699913885199818190300473256227615429563065462436013740893256858986859982768844339757083447867891987975263385910664947644890699746679639967368184707671552902642918296901555234866158103025545015939948070954059419001458738246937448806541077365587631410022600890299752593738705436852733880548505832690928264300829373794383530013159678756404258240460276877479148104427570494594276097736421125287766161053368572358355803726212834544438396825733892534727720606399672668023974576170796587429431329109787956250687721929310279093890884195791151479048384309425144582364271035388293613009360057995212317424559542900230141403895197425318042725030290666199453547695035887835414859225031912485565042454852759445497080654099934901785163379195163175708556658611153622900064721779349622748054168086559445776821703301612014126975847576718680532365081733435086481717388289632953633938366065066788700367367306343072307504702146135850056073614834011530320629470072247753677015377070372178640175158776684576152587936952053193935593027579891861726039716177394199132547034225840413001431475690431472992179235624191410005864085444245875765122590958056447050142586347731946988229472262593324113661317822683286577863283098024526006969348268585187295409576210226517867379366783032277345548263976550819648121221731497461228303462957497548625150034953224956273081969316714526768896733383588704533555504685142238154723225835611393341348508603797153578399179365885659580109431345594041043287231791756632395986955600767082730506664866166676471232508060146469497604519073871868377186120543283609450901928803045085055143589906540599124772425235969130347573096641132892035827363290239241961367259670565607051979977535746144921754642131310458232240603574955492154976581908091740212264480151816666893715055373601587247079646944388223862812748799971470180573694228212064289199341535191718835666259341687650047882840944983904732929431112966968049141294977702819559075133643156473416389233744987114941820204020316853661099894972655145692423504444935905598623983757351976922175387558917587276830695122405365261781263831137961563522423954163858919254309944199059494333732189588922393956701109338508470467740762346030034669706748234686731043649598160641704435002083298398214418531153380384622951845456983442004282124002594172440132769208270182676322043211078477932538455089587036858470626588241004976305569886342363394094816651091436243573050308742190392288807219227062820036173227136606955154522739960062617946652655699061346484200377411578264120496706526451246717079179109358306026407647392701383597315988150965032558616969232162963158361302748390622956862810453184410349414299649828844676595796897844960803980633169887143903854580953868507717583013342099817094414848361366609913176770801134945456735568275603867674998137114026415678841077798541525837925456828495691697092292322256386286898367945537265072710648417925627684661204629634909669075029276679019355585886528302199059098125552292393014537076231989323790264238382568019685445278216446628291133960950995207881557734725380614163260734972005912351757288903476409774633729194265294246172926830387727292605680916005543270453203026460983988377375300410138446401638456376496185500987619336862285206689905914818061088836239329164580325251901694041998545894022262899772974048369972264555104994192219261387291513471671861000029529777669480147644594804029555336194621726669305584793256387479485095664644618988937335074716537213255906056072130021436590666619255682980585687922264434926134581495997746332738028352821783257830828421374841158106741052421576774391525017665583839737009864196293634604439823839421441406655262205490290661324536344170993379052523191920062150598983046620379619222532614290446435764111970896191400756174391994608031383559372065659876132521398908001877827691895748159688532128784852233946538128034085438874109231522506308919743232533496356426368182695232101015145692001859498658074941993206973062112768089484468136050357194623695700581513544794763376064819509596127071827643784639864477118254504943497419839803454458640344728068637007392819671136461451312016083337091893685691148479219501430211819812230858075964448889568324520798409415387243808313918262071179978680117475312908267164375131611597059729121849501260537620430026227921002921273188636330521364534106172615524892910576037984380914879943715697655551270321286917035530080023372880700671248342302460310564052790452659035627490342437627054909703562885301915192155929762841313035635589478338409768026328264360205616677472159069326604206953737284747201341213204420669935058567416834573253672680380027564103650878495920121090099609796583218104729803546186605691059356458931605352244033959984557887611224292797089416064581390285978200098328689581294956309505897400190441131338211523380735842854766784493651459992692241057219233831254692133676602021913557399028606974152313952139378364549840820700247679384299784928563302128604310606765473345107980066178926249770556034061827319011167872547591826885395990880173276337004256567354494539129650467621316991632685897749677460479216267287850248837273961529748426194475500005881861413782967862022547916600061251114156550175814859169391246697724230148558502663426875138086297756194377679660048832880309700348630787254842710145402840580935893042792437313855232620695946081121417132421158195591019754035372062107861571845377395881809236087913481976894478568454982194582926011316357468515159909222280491484404935971470918732322039181617293637365074553060212388170780863180368571695770943268305141578205319069482182341187905267861569902408977379614642340748003191377046901659320270925973365300292793145422117165074079817004343303867058892027022696677771510705049741607532335768915442275314437379922235980526156155370943239777677804445137352153892439570862528767982214700247763124338661538925469644901323643209414096450327131748975188031492587222703399338507847128509172427741812012171485684437764529103905285234836774746824904712928160871832354189238536465780948984173575916784860504114706438837442765859706675822402989286857219035362986066854085324814545415712955097365665388040925464653827587787929359676995820536069714781734686372660684385300389967633360144675890418658131591069698608853132033223132465359929585089675137529557622570607220008871848884331760803582068107321867786954749389317919693756356200360808794827974819401040756256687909619387355927754543407300096115434296087682155719642510618971979747985393295907462434145449897289048013080438532146277430563055344427620068442943178283113688979063506591705740049356058664694024242111001881641159985511954149913057482121094677372996984971059331144947382812026132031916935531159856335373887041810487953388476285127693211321443375097896709964188613119670660557954556394259584475350198943758697872136005962455012981937856923873305505729053906370999319462031241549615714751333381172880821092129773293474784105362878950255507165523717308787941235528534345873760161615942387904224764208619458994930861461209399171315523256904940207645359790710645162196918942556648581929579741415049686080763013366174172637561817277954628455797685484800518126668476179447646297851135347590454851930352828806811635296733470959926779698526082702636835749456602391840788882172649959724086980790264291443899289006344123956162999447862374187120544308046659511655081440518551198382574284139703134637860707112106011897246867678003758773084953169258333564064904870711642584720406736859131110420972671139241431437338727780879973458569206807629319232520973538878833929321469635322908289594813390343054927699508527791313311762926203060030339892847316706942014616700460214294958570828299224336897520148770962734665686727482898037056763405425948861531995684589841932299738487209709101840810118981723940671279371570015211899482687741538548710726560767641112105955051197466055339051643601747434169639310682326562220418484687211494050262947587803041784990505252963254700426813398938495166245897774938758306238306375624492526323209753299777250913723655274670125289318380698759756870749659426618911206487896631999038330439413280504831959445697852943411686929169757173254382058505399555896679040861736789321200808901632864452998913222162028737044533688742826084899628922815512500219784126880254319756230368892320198210857571822447871112876202096036962864670547395269116479716528242414274389391640670519900339889393528267505696001891827416597029977833346525274751584448668892306789201212851259752876003148298420386097300270352556595184102805890145714625137570005479190749701102990167493108142906902991634202614656913379823649167039374949066795595535028539892813278520313903959313162747917601843446563390309219657654841120053087815521664313110077137096819464630502408009239856534231186269232374264139532304219249646141690770654110858378817943664023748255983988111660881738083186110353842625185163172263131422619059420674298300486501212495723428190581757624503757095918487156489506945847309782620381461211291853338846208666662385327821895576960129115564953086158356776704759433226127846007381500819119210983455642394504787898108442560671907996903200247268768309173389567943745897636388481158551657494755465559095205907912653167236237721990021685614472080644427965611380166308445931232232247312757727979688741612675421120948868068733546025308363023672153234824305805689258616988628513292188397106696404686154428745391560448213543248726177706664441130610524517769499231150814554833019743935034834008819418501256944764942440607226786232362920901782480740248492902495759471854954284429286144574977977142127802258712912215195661116167646829462312891882932805984618817818689734928853289451668804785461606871031637404553727701127507504525092275521004064491064144268732900655931747673791752734376348968215891693552593966350853894052172758997502079292399953360439351474726266898262047909949103463724490234593896387876754267980251421471015057356191097347373663275937724811559808323822277456774059925806342092720168069790679649172554878269908823639344262342650350057711449033228801066833229336721909047392948702236915486557499946656743122903616732641808976693905814127205357268418255534484623074631495869870537076254234272892474505209684270179891066829308806825710888631205882704311346803551029398279857168783329816040166771767049035917836594913849074390524399187622443429919371524115518094595486306157384624594539739444156825295453429868701931011998013513128676578732635549652272379465666820902880572439914958350975901781380350052634529456831929615887312010252239296964697915390487129560805218043889640647777390914876030905290906954190651149217414386520771046156647207682255368794382213791477686117385383075469569814370339088773826919880938168030439531780375081171805732672871537592484613597302890862898527945529589028486470476364869089337448881530743755257159363796942827590921444397795533506523069919359990415394026655274569463229340935094901159453749617950689409641643619901010423346655715952065740808174582470365462492098294464815767358413156776411584839731948377673897506242842286908685725521915866740230643750176986780010214604072020655268405147989811104432371946898917426190176345456086533064941504853475287603352537350125810007563661928769403591656388102343419595565448365373309739525471892088147760019421642641609409997674199514958938930738533481550468192483744056927178461046110455779202214736585754936760569424846186302462134914583398091915628268094365846656679988878567467792637768809937554178232295801003829063799807193796413086235130770029166281841085895896416484853532144859752183099561295539767226192594031437723031687647846431294818646546141425904396137092223938538293685458397723985027656156499158597217295605593981845978316926197312787998540652622165762985368539335927932252000130062732076053035358856900909165988728980344495580294533840412083833105110138712498581869009550234487696543540366015286364302658815873578880791867872517760538621239128920364872978396640662194608739716862811179268359220203024704172510062120431409165885878942295974793209291094972324313983964782084390610195608345635715610173332989314638290758678361157105526929741090826709490981842164358657519134947219731297960673811376945492168879894254020161660716274566470093176392380561382240940165211606885897242779952584416512943739809009000974912160277486348915372496566982018937396164450067751178621764547657016909021874014405137612379257585946859468039132882207246704890722227079084024202173542616588438947868045527564035772960559630550382293494541003339245307295118614929153020355107184926968310278816272405104358907321338072346328621931116176011260377614748844579166255118604288344176473254820826726126438490821754695112773679069554792801076537866199312418849173224223318418212461260549866924479231175686213642591309673226636238353333329952707860247076140744679974548205504135692453797112383917733500473889866593064039234489316337557254850260693126644071899197712554118932865322100342273674186737030386542422797172879053642373152788140128837094414973095634844665076004123338563650311918011368966376378570895736809563372048981686484558273065403279587346223497337544589460561798624485355522595205194896807511238669758590256748815726796014596479740726111845325547080404483950082285974798291130034465750756294214755636581273208309911502546972606586802864225427377819637532297567179915955378343944325303749325394472776958197584960857934383187173377177082526902034496702680816309074500576383242763813685676720675960867857750771805861454128078531349577022168155757066423720181707295905441191642391088975771958565970220027428024995056121245582215870755176389454438577497658675877437458636310934886703746001058867265809532092202362424683838587326026972961362832245021227508245646186383310385321056494255915626880002969144344625045866269604433225209374059945386635895003775340178492984999548786711858095970370051769348839992564326614030220413625094754817200516031766070873801004249838925094779705548161497882349029081959633416170004750012130918987551865295404508477493647613511001191513112986107816761865808980816595818907816328882513581048966118061068463460424400911081800776291515822108032442931129089382068515449029144248220887772509292054211258986858728143002861476209333103891858153357604414327501803819971053250467060973247407924626220353416482855683178640853767343453355140464945767901402662932319109734396043580657133814546559252343018077650528637058795166543362220257419639139248425644256289335746771606202162043037999625264909926961709875444522711088363860443901635070772013659790233658847885374544196394549504512015808782753092512237323747830119697041558582336157795051973582879745533382140883402010895742644257963569285947267444070343785750478112842344120936465085597304860745955720077505381484616620859013674322117969664909043321744882809831497548174410360982582023041593967338755671255007815460412250251106492807120965482592630255054431235327248533844321360148306255229270470971122493942992751504756518226001689444464922037215159018696712774133324252985274384014787841611098898387403906380298109576356357352133221670117474359417617574270185255750583867451617407339171375793460790724529648356865253485489333797042111197596538243363920741213090183072230805709673661170467091630108166895449815732797497143938733310012381362105717050917051640410495189894723820662144804909135890064968870863386220609338086258144471961527960042042918911280009810403671792988803728259132608510862677333921250480831992892011713353748844604662710622296233116366232999732352505986713334364937976399598232560081954239091228250488336034646871660882997962713961526337306607892833175769146466458120091640823952517174503373191239943719379524440463346561685054055579786837006851921615509497682252488432999590712586185769928378151892228814455574875370159878044104418994767779817912869993600978686115447778642928972540234662429194557174320490680261159645839276440036890932465310296945929731732452050631066120611484017460658384001801306080771159052680697799978339132960588766943276069608416591874301220686899765385645410486922654432438148749799990328224470490571535669165827789005259139360771659010861430861045846627873656030047824446048761243355847908811600030841351893052723704132566323151624801518955866637031095511030357745175030591724475915370788727320647933114117214820368719782511420865043487909393241328211873041640917899076521517224866811068197319044647627237683113338442382525958386994839373828342867140172266441459533700371782393521861103189168924000351496992675925421780271181586668041919625261362935380889082986433093931942641242665266164899300501179441033408842309485747366154659106303652659516742523239057954302412109970858931311470991317352188189841389873616876573683903407696519926011518198717695305148211909790464272241128896060768446454777885850561316915656641702140130588983393625200836526888635736561250050631632099885915349370443029665538059194682391712732436181610791027647997299434842290930679484663387202318917225542906611643871429630161440782681203708243834546717166837705832392203051036614246391326006962733277483471838444697511833331838484738402338310662711314910754257702227159292903726949308046074444194789629654560908019990187102949565139274307338998078370413758317275099198920807338252525934683321581869653054879410100374218601432074456316614993758612176560247987817245941880723825886082511214573927411960539411851612708107975778827773572644580845520064452712021728452887152690455698831530809626317133286713189205399513148659906173515472801353387090430026788238941412290615998838449181314412410119028930751409123733810052155958481171592319956961246377154861766558908336430391368964268545365948007995256576751372954590879833498503061212523512593241485749507252357442264278528044840787700833158390736719981983444299905281219859791122058392147412469116762939090435766978235174561865072007489076035442862315835957802005802839347857294617882998027299546029957607693224067480773167272325641662687254767605666029082886153297986980279389428696627238633720732539230137159952036449610822308953219768600818713141038512715236192404659679862719875751709350266605644187019858929390141875617197705769079456836641379968488604298049651045533231358566722788036861009494174178891360004777343895041501164607774236196128823022101366970149179293589359284363239531648814841697409400823906129796771708118735184060825984226213065716921545395225653620915940504154915005320906508113170398948361022844955100247861200360978513714093144946965350840136322230999180176843650452240442218568576953859348129136458390506148534063235807392227818053363819741382355562777168648806388270711410694295617039640308724364625501752218827531754684080968995490694693667288192229844893215493572850368595680305550184736192673122324900705036709470689220520994294317383123665946099684802033858427788506351397238608666964145526922101530436970975476227665283840913684825208428238864642854868310375171811183987790031612105773718055987935828799134014025240940674253255399894842840746474881935069701335543002711088226311989801447597967652877631665406909801370697897969384574266006304315414036171587305557054453081234850579105782881745529992218018799364676065988156052855412595913498935580345256587745126904272431004566911997300873418484163251981820316143979315744460042255350469908337541900801112492035129591951121362700397720822669659715875401955080651054446307080000754000458860104505514877886209949097966473354036852041255029470081389678062163959225993521581398684368422273611998802896352635105923944121282025051834702749065074737168152995619078306800039103458454718187300711012295267210167321620821206421179900202780326879857606117515805616422331511202934482076923762725389561407055181392077851971309475085562660070483508451897931951403581959463051081872799342127495076909760229604374055959932868658406991017492336085112663763606586432224856182581170734385354075648333874634914717492757337958627629873769644960783067236211537243502190538086372305928339698805809108249828465316844189939674706818319738250685691192751363743014991395920970332510043421850565347869677058626118825230925059501784706790603624823362808353428584956523468008912712906252729278636218031104870517980095588629037745784139571903055585397189374563499901658399653506701233778914229414395563586324377807068663003772847181527926594276562840807292807720767134054818131233973417655326079694189205068258600876142317682787061520129807842797746586900837197698536175614924772791680373091676836824316614411769165898839711189558040951698980879412793335581379829768376542198200074369444988253645875553420882186606620725761616608082155928649959459471388911355998026307387350196474232235219610139254076907446658951295766725642615699098979014803683794058641052195411487040818397585419625486104819843981904414185737860403720739720743650416485417535211189188412720449271175254339632108736090102589155860906900564067748445399627824722520713758978805968690636024169028326437809395844471354976515529758886053118991046883673405745451315345166014694021810803907591126822958249500310651853851437876881264266328934900126151461527696690026920975405240490660444960226695063112312840250655018272969331907966379349865481927665608825799155959774422308529258290490604687286989919079972899667217787520165915655056046921304383019925941605924571944658215481828606842296124095574243492034174881437424290752747290610409191495334823312566815923845663612114635594756379453979405079970028376390157629491424066825545388826478765460661587114230280099251299183220692606253579999701272593314887525935974887615240626076369065572789437220834575895776687688820831854967350466864959972826298479089108239106535254541610743634277517603236277734531797620712062406425356159585117050200827963903892759851925420054310076328303461392051099523798447386915404562460855688197583472766269410649349709695493511254588201967206216620871450791354922712555089270867193084699789318155691802596090457854568744557631341242695419743575767674746281990590827522664314716452429968660970023325191874636384251795630507995362815923544904026844532167116238577310068248367271832382509085194425784020871145307243858361955701243181884963206476282666952552991030731485396374509553762973789697690319586606644423004748918466229801895401330194231600139205330001060055928965627109495581994973951692004191665560858126493377662279729766406817738035801490274403431613861596379825170828030187457640309188180258058291867978506898713976715127893137017003889128528817204327451655733823623340279841831905859329248063566249640027318324405878912025523721269106416702101989171342321931646619687675149391140076668763298285260339270867098528225101563357333945387997229272402533358919527843276793575287453298019122418930702304399466855376209806112865137730321490435095271000675266393930306864742568588001320116659166377763650455073591457706696688358798771836817543277969641157191392899925280494152858229396617955185133121303163764783539451853424763745465178643940882820245782264054610318210442451199626790674754542138560330799335147499171315176161393463834625304700914338391317973628727125278484313496200722477537421285632239884099432854546865686548843461095613034348985182118716849049050298589181362950645093218379438160037644701072590639761785346226167181269802409908215501450056517780449373842181269470775438175202309603314080402217360192126638756772861326683358303315884627272830554079751709910230190422196769792198471741244029755647132402653532094337494667842700184746509513054480708319741202998314473542097582060318515899933801801240361368640843583687371719455679132317926540203632355727799750988856799233742257956768028289173979707014579275636245864989771788770362453111300283782500833596875941840018177061834795649748516031685216094666843052936654919917064190055157012113626106920586595121682836190021579571243379570294686604830214461185079772225358858877878655307736881766323437598669903798775846641535743730987666716840888564654036443871919842746067690816105115053991629959563836287751268591209347830816874266987363207303686230804451345058897064763043031938151030164397275705604575653577720857547748892447520246353999484939149098270258002268361255075279572976942437292013676936320185770608121521317677692556664292863388756804385296563464168280590132258940855675434435675724268876232069125763911438051668476056638739370241549895218300912104888839059407411718067797559209924766100680537618438855813089977712037893588946107387065790121504552111998573954907902312437921172025278140453952083149440910039662304873917746764281705816972403807392759275337700335972983300909077349056243736691755284356124827190101935987715285597609199752205601554885865887006563242493879092404257314845056236258063695451695775965188924844527834290694623557191594304135118490948496799901085696692964086593005114460588124065393575777883290191839722669618678742252778606316587020223357972561207335606420470233388314802863309658358958257243203333217046369098693504213157096774679040842970722029907099191995888936421163464374096152214548073074821261559054762610843322781459394317039311399979087952566055008178046221477850382298874284683499649362904424932540482870232296281923481659881663072343789794195419988365908787856014016851262245155988075143537414253068694654308713393516551351030912216252681352081094640584135565053116144762495113893145868037413989221470339716687141933890847131380507195773854871106421001992585126555697560033265696680606782498087902962311577211634111475868978146808715654128212834032988496628289200232518336506365848801728721356979394150092090485498622045777008442507538279183153051932614532576740187897913650099537482872428968559598492788824641472295070580178906580044392723347764391300226509799402667246337932798547613184684748921252712131407352154852056000451474889283385352226604590752854139790572220015353217169187127392811198864923773867410551053578590174152717045722030857936239986931599528079784751023822916970615818853595123705211047186694954680502313184630988134278353530743836525019971603847697529558129829102525180470796208259167604187497512578708550870946802593134332136355078549168514061655651609018653264589449847627625283664825476164506541565376469803167225125156893956395782041189177263736956207302929207503036783354238565876311400082959041392277896730156925982406180985748967020041378236036322637571714115339333990976746573901007084971608482065083979563984050107638830459840205383874526896539593187385759065402198300466311921969032079445150050316026087919661722503708542166591261387203252751216467497294139263041297780711054202256843225518696355914369944402821459038303205691126760531420106300718889742549155643144936420034510518236316378397365075129041595425181138435659355673313845924026154958655209537227052172970752780789310902528849366222728248780634031662884413884976136176396511934111938146999112404776367170964476224920043907074451457465461410129971690862682406878703346433513838582267110943547382483654513458088000118469429869249469351740296387909080068002368903202115092798338050374476901487561864565342405799501275210511414951124619600362453351236401383995676816053591054114642505251643502343872398637488773574444761300668947192911046913086899824392244397080368679986007848721366212971700748310884296413137342995546586606026376665751468659553042716988287563356902163159242878225538504641027137130663295571048453966041286401365864136882425578485744564323137815804201779697190569320919451138398163735254217822645451517681015506451871926005011689961183761700254084499659913139391189599930546061405942975876735053052381609468722856905882408477108177690473805569040602805010994632116244285141134978875278050699590742549151624302684618511446617110045711714331372019840318783534012290184975597287434762208316407033438338862738829909910812565080976533714030136367481933995786340869173353595871791471635276654962885979114717395988625877813172873329228960974669890814086264351091583702015224829472465652537463410114414040742760448649825160392006895801665291314959628818487934610565335591525927489407666299905239496765906681047363134017424187403357534263438213337704967485475523733004357562294396445610733522125096470446967586718237514379193505717147755303211203472780167537452065408407738213069964450481739353879493694390616111507274140063216907106433866626915883543966186848635144493263664776939336177090213886673273602303736717792539643749735848106534167602933193902660564850699296210450322792955005212498707850868574603273088601121663382716807550639893407999957799527133353686088632810381788524855730956758326662527665118709250319759905114708420743089458857473447263837189470794600462367542340465866199907507250085899082924800411852686181979479433797085093380367161232040004439251072793127796706280758859422552529019143776206082015473121970657567177860017496263024732285588483169028678924309506755730643389851262947304196417074890133278452188438007582353593349094231051021759289347408732025849276042708439963456310304525464976880947847988433056322161356356989289767221764786053728246670050029199511747227049040308020469760430403630991796451897511727024032654681962760035868847727635866605846495789528253378041797024534504886338796596918118280007379399833184843353507525417191608249757411843375102244737303800403903277025853158483870156253686104299148038503125630841950403782387584728750134286720548790374308653289777294418633025962170706244769682503271808231437949707978903442213013428611247777559519582762922018064786596397592058438854571196957034807002055061707792895939339777173384954342446614702881892520461856523727935152377063000249105215034084849046970018327168865621725522856976562365209920932599106681368040912027039991980030396690650313625514452135433279569128110742348061160566464575380159216286453325803194343704406591524863172492687815146342159461071943259896583206802984077942000344686117008623925428310108904622841024242442244788378733659657072137118090490005094771793705325586773587780804402468010182509830084236136991042956696187578309507169030188867348295847623181654013532912209805748538214866302412786470109002109222869988737959484889318870634385905837174211624938997048181445059874892777631322143092752510759985613105750098536797480943536410045604047827953661897335996547280131821565857509225134366968286608068134843205365211357949590373773428146069895589360389504174590997555306347328900417837807549524659813664558969984103950050455823869626009853663614192424114445824780707444737135157558242561625885188441933735789879155049425674948343990504507871363294030038613244228623706757275800108803176733058295980329403454442845216407669050340695942000079719582691487940613031562688350186139149267342895030488293660889839990459685322107640333023804907604595658522516915756472945025880208167030594189933236834136829456782309408495090647308576830048814161886983896296534568129852040492657650126805312292727003297546043987877699429031466473756899044020395683681964044231278863184421428847114086960038919816824893599157533716920819225181618358993753953551481948736187796171992623630281498291128880848104768736994805653900238706224115781432405802759344633721403220322322555463280279196607437801850707433653424093607540357711217253549044385652602595687603542465885005591422612323582695667323884446911618333077707889764345780930453766577458426197758047637320171433572325924231371200745478674740144702737650402669781621499263367737255368809629833797878129393232353289085111629269345399020687427807646889165298321782342164244374782556198871772546818840689200948386265881394339107409720259825904040172917984747796156407268320687444971516999095385808501012165894148695393357418565057629353654687861121705119900098479985784166348064102160998367435505819346369065884543730517254887766787024403312410058508976218280456668968403923459804301573135183091436498338341514111018738558668969630858282037237580449290286066650431704919737823189770107035270585778484449299646639186149457752553006008153457526906468194603724714252404771212543249935914913801090022313411616595211163458323729141439886059668790368932010873852537365401499839539088208332195448120253155579822986184041649443378213932542333665111687925300955633440501987843398948128456960979144992458482085698553572123198237815938828666357264735252359701389641151936047041232236569428336938726952346313572852327278185126284812777989201753570476888492988201499465532456261548086900834309182809113149922177669035501818532555486950228175814082191830005518342906764609378804203857127444326846987705067945183933798951778325750304673070439797745801949021611615711875496433655977227928247576696910778837306659983476874180329199084315455064119028123520251343099100463514876736744107084320280579414069748439806875396087361052769392663343205176275488119660478012074432057787478587492219876535534621009841513766720772629933070285854860209284914038731857840882396638602922382473977489473209373582258073602992736995039537926035269264119286755900814830677665186083887361447235090262478182791613113191523877357879998596612320429328217769382472468852163294992293085743907203187419738679091910885521811669168921453734665692675268039211182168778964768937390570335198065669019905181796142127503969502074200398417364111379318744013028387436668688557027140801641541939412008971423454354241521292921781289913217617736130852604744067904244834557795846023722349315502805229587989454180124727788929540120765984735536057531879799366138735672688484753059049788959242772764137811659574477033995374340470419956793243915187756615988245687099291447223845204982358061713333171121036823922246121664319677362430302810463627149840798495854736076549889699558074541717664971542370429891161762102972756074225263055478047880421636099561429856755159850693276063449623813074598628613640647516946419758031984134677918200013811777615599028488096781460497023404858949604593065957181902543641082010313814689769534284210751719779378245715181580145069955209973267484818640347671243240047400052791476674852942174308289404302004580901007618882466806398655555752746231204355835822304813908793550309938853399556987157241100469108191503194641762589264174204666820851287173652123952260127107736082082717966056034128690564671286774334673487327383058285851920920076279485133718586439686059807228284604062234855751337432433039890185154439883471902240396018716107112614184730514496579359878062231406401167454921707996866731471387527542181282045779384792240851841396401752192545748292286863986872858720764376987596477049286549912990195055144976260843362172344734889857491617181355935194490891909601849891891822398409817118690836147173602317301812332244192362120144893785504502137875674837571802426748946693201886820050541946513177432106707367882610276756600952976580300147535526086705187325808054847474978547800586597499946134829827562394364167886081055536679398560345694007019993157848178792199473825838022060080532409394495768109739304061859079251332200767732230197127642434303099603445102947735937338194070629985423906669639655289283004598067648295270607353342164063151650235568067445440493653361981325962006906339954337817051051249077660552636149542406958504745927618057319763971852496615370116940414307338898117298258339016738466728518987012034148590349157055237718527742418590889446534300743534053800208071402706941822118220953771950227642953734203611547973120418646726793577276123028811390024952369853590550397240217601168192952477973093283955199072542996709870019218552086110167431761686218062116329914351590652255428923540480771711848504518816355972006190564089653371892748811946202895124874501314181715809874552648834985632069465055598728455361204540636653681924614479106688388613908068984824467744996424668208748673487867736210555957291416615220979211543159590642171960718832279928086570019264979124779172562956398150658888599010532026445800484917080972017036833528527878601114543098421944671828070159117725259036655266420169820393154453430696126268689286918779323554543836813980597961901728898963174414519631975755339545322148934922774165925090773721053921036095971767952481218398444125936245732518544173942191816485919306468095358185829850245072620041080241861788997450353893868171672254392626768231935096923855573973777213914611670413872544182757096607365422876940578365931838839012620269831630840834620559240868502417091774495335880977585728990320757415720290549991587387636861172328600303026430173220019357798523518969133753275718706418674191338517589327654531454340300437367914255117645178968214596245933486481969575864504837197868235887229979699112760977017164058466841302235902105013601977068363998127342973477005069585320069983029551422214960128115724497828064145986597503306531917093691107398108774869911826019724644421006651460773553266229351263756094957297415077337820307487166136870443129715104345526103505648199993460595159733169013092521600521162847401683294242150261553086097002242841489090883317447901844795066014631118923036530449895372018740522476794295783934623275750674318263698434633012159008212279059852476742698026712094492844442027403664018240986195112355838052133709786274877647115130374940482954016779277998281690735687137974508902134958874821301901848862170141126603702107980531006699716872697402687574608954004559051929933453773896358095244838843084598199624962158601058871561542559703740255511718601807786989074568221954985211986860001146651317076614362417713042622598540583603048217972737855004743354689925280020057527825996823558373501413111699744496547700745007605063179418899083470155471220223815048636399301823995493282252325697078736508438355068347075361950853957206598798795141317305756218673101723021683709907585448527572456432687455832828785441530148515235183021816654020258199138983809218338895312809284189039300004266569830581111994493606975595804739299863748731464489191090822984559446229275242623280897267587060808334266985969667372921716219440373791433774349020752382181155671976936115406525576112041855573027177026661981876806383903526687712458018059535026115554506751761368614142672817836897157266504092975586619982177346128837999000981938603090588672793928744848814032428838866069620132097773530556541809578618781316967851550120250923017822150284937773487854370487329334412354508665447168302818286281519898581646233882036369460104903856521036254602397309750676757437733862954960368693785314590598647491360559018266031038609847362590656139855850193509228758300559301826323627703368538351082509012265478942581818336299534584650436006647500069103835699885100951143112469610972060284761500594654307943827180246231676729901719510488377855977940018265464691054292259996242406313207984511966915516497281820005293432133511375757452184722305455016591195728696994228338905450760035236106662639634095431025019502779469714810043242550469802988552095843829173056928552793076931502636790012402363168963096430006796295352273968685129289621170790500063099052574007136090275636015653969628608718599953030239762050131869063051333786862937352062157905760097519488727637452799971846878672617186239563904589924057594340957947610268370939311366112095631431049565737182564441915336369742399056972860508142119826539609868208673241718622212551567162919832999298804021609753229939745418951816467308911515055058670002044309502105914864068033847400027253762196163753737809481329665688693949886028392737688045049326208338763559331302315241726050697589294144151454234568495954802005564276898150829023428674737699357807035135985982811603070019853440631312963244350213940602773860405199338626325697181294794216432634436138470055912207531827632310751546337022577924976049767908381646741494666637568136843603842707430522652723312230750322530760046250950764150349485875552994898449614809901219489374347753311107142950230300633345146017771082285651502009825469532426128139388969983799493763877078340478978943498055303486505639297500425471200727798020413763170475705183382529133244914695353412969391894809870817200697203851853250830226655838068370294655900283216577291906633353919145775264415487247448199276902403432214423358395736611412136057675985079043641573448850042671082665406915242401183260501996098325295851841552255618569944875921175012378025119930838184565371124324216987572433429157648175289232350960652344355451693407756910656291363984913734029045928987041308735479490806801998795990983928223353591401350620289323980728427199512452159944992811167498050852681153905667314519570949764755214686072736595019833395455898152707075821112310568183189995660277655014568018686708403141351152985321609353946979715398712824620934152062846246158693081876496160374807652643927740086650991047574635374029617873462091411578550443883110130842166884944502281177433228229473263443605721913945455034787104716042234776441342097094038071702050192823245357318112381359679424657642249442787439212657973134268845148045327324230768244015582469229663541318264226998460267918959768625379875119043264063260097662245911105470950478599095373234113190508436138057519642470625206691857921682089140675186295012098085191190308963183411704939158915262433295560074878152832348932011616507434217184652633848523398929682287025389879016690024915393608746844081044615225076195059124931463573308233187469719109838082779496887318094765366399720951161619122808250618746741942087602553034928263598003038789100889376659808083648351454909305356103351845859464914928608876070156981379004268900818092941758583041562400495324063460317496034852999676475007549435544684621431393783477272194539773310278912358345394491895809885960321586841720719238475582263984172105552349947237341812464489951349835497841401537818812280726088026458847617901248649443038691704129261739830856282761276587013853669791175123464131819396025982789126337255020833553202017743538025131067058660760763653982925330871395725738253625645853747398630815429293862636317211436505624674152703852935312829082843817070426164569914446825468739688626852998407946273659559119964930962616031582225915275914079132090337341637885373623042577639638564884242316376299599853549623118074941787671639606567382529541417198583741505258879468165649915449989345261924933803764299388476428482570351447637747275699209271910105423497413465073581362738732206271006520551731819046538735904885267457021938020331104695951406553826129804197061823191715068161674048812736892673435372422110112756824395502141920084009178403652827227480442330574596413148249836761775894730090583758268442188498738182568911191265623097444121982139484661119685972140365518890570037769172728553603407075569196099621203977560186270706130393088727283923062785372519344527893915235096824852654862944902595047713559492987966236502931951807285594250995939930590302693550060976983284615077497646522679272781051014792601191322123751486217818651964571203431091616879748215297729082892755034228600634532321117637779580622557000260659221431519140392954233935175878440708704157472090504935956110977820878713398591965734516500724493423268781923766198808116139611255781839277131646545438096855182892667456532885897646394418769424720185801192112571338359391512313838704500746549712660766132796498370298503155237240645442087690238415268802822089267421714627413212944292810417667079443806971013788514743168109693554087225394804947893101936049442645890183881575255315229383149519241449612626436169476369038605372181217034048888474196015783241771957484945409715312747968198751566485195741887044184588780480856864814531146110291097341219189013868261896917159741188893940013245666223091069167829641183073798386340070070343825227296603029508104105527715310972914966967065638243633462332196188901564310237761296007544353801805233130971662454482959353065205310606688892836944414117384401944936631175879660067680627566104153988010732020846013524171776362372440893319174901505651032536204438220909013137899355786035560202606720352695726079476137378902334403631726926327258248651474965985863135414650937286623190257599479072304067917248286994964467631694303275549990703026125774816994843404638115154601796567117685681084871845812191940491399956692567784901285833105096745597022927882880164093457904340906220330001786842994784695913645090598580440975835289581717478435479815632895603379218574924849056396792527767409826992977327730736823889668355399972638693246424459143296450197595023642366767213498136991320449085257639421148719425108772694402598344696844358488666392287167292241153126920708673480729248222342864692081880676998270225238322888396221024499017900265521854828549960287754147944023057011449456028729630876167345585203776184190675762420813983384631753319187374504486309645751744025557594145327920779411683296696372389066695797942644838613429437409174488316407135468638638808305789187717893087786164594898570247608378314283592222350509225479905881540736636193048525193003196414352374183267323850786624379700972509041133309960504139050105131559779015168209148841495382825427267971803590872501076860453827502316016689510704171235060801074347034097257054197179823076458814503818529159062920700517147762545931380357252548031258184528804142942867793047312783858927419159392590381319390506594348100714916610908792171944979885337229460326508413659772839865181700830231555484598056160965996079512958216566390613550560002522797399835757390582540680709566456368810887942864322642650611351045334545726733025128167721541217299072407425877071886497658636700778490391946468645885369282856432966632672058800821469914765257672943308685878833060878655056255472382165034999797779125360147401702405473405223426079586790103408157179319352246042539412526639683145643823271290706906300625699959212419415843872583006398407420743532346299222277932252564124166958922815603010752358814743571186029535401494720479999412334956964573080387497070141677581814292048082421414671797703974797647740920457406875744002821552059621516187372237129274053502042753422929540749151208569862767824816545291365017383630522360522686525396418535967237324064413447335879025702663051233632550097218222412922791938107334875077499028668857644272352524085433729593731591742002325765808943441999818132147730973584139422399704362934386264932445634703066448802958734580926225010560934195528933934650259136553582496857669908518100747240971028913791833426213586925488392326380244813695910055422189601468405798809654819274548391659368041481734287593299036055537008853075513871105716936431717392951025025778193343310482685380939539955255574191985925310702618116801061200787391172948051394219610592641973175418428321542637104981386339393537397602429092047006206933980139986079352873696997227720898809272835414519328905148388441212476993173919506812574042540857346619232070339458022915102283272794598580753981349934813148170567175285244273635239195181280893756706150219473067826649675595534249025453110568739229675262028753899080698293943749598403493850328797899790299338011103576844269811506197735872674320333437239345573520443334446201839553050540743383918119949430492019606050193055396201505276602053402656018489329952539208809736819361386209433158897447167172668034776066143567101628895356209493592795335262541093994872950424736560250236994452975904476019342938762460803706865400494434502642325730564274823956499607833170816924846438478184775058199213809299579755797110586234317364757158250482518327308524452998121206000183323501642907880068273535329474890614346006209047886027854537843447099191125700992931827636574888490497144578123401676451586082074352823986537865429961447390876861751194057639747106204975385426723728719400906638126482646618010995513610513980964344998498123927957308070083636639302356135363908857149174242285204924524600061544867640301151144755782484149693016119852487272987144550558512748422600152470491677077419912380292109048778633265412711755875094029083529084904642276263404650228730007443544271580144047706435255535354721532559710132009773289399401990978430141468558419449129180222475312899383905677648101181453729341047036737820631127294249764896089892094515704848918989471485891928770860979967947958640229286614741439131889894623056934702529669291114164501999402693043866562078018040119704749937003220817480094731349001858232768479150379098569952447929613353893728287006061747461426863236274103651572165885789443326257476703110475374187305859024154558368333403238682644046112019488949344011753889697791583163884476842435164612814011422079527728915179864634323855173867100745628526231417143125354311270794186928273506767604719458632719557814948122731159500761019824031588988422866162354547785843576615597869660465100374190599312932619296781339270305569136311048416779155465604296688367994605278220384283606005739740663868120164969352921422456931981444234469020639131627273893685869581818889529222150831071262706866966497708457713974143125531427322287568872438967487350741200918358802046975929373772563880867582963935833815360999758909350638842070299236459374628579913484667371124776424536862435460963759334236908802997541587198483189701128035191021615013900002834193532180820394572308981886928565765367818041799331208691783329920508097085270951844773657312228925228435815864996182578999610765739879217626287654485365551727047363144052199244694313433989231804983811032409998959670663705854010191606281086069381322776019189971998043596644091508028697516932707934708689209545873207902742379505833167274978834539224166700655771784127823047826730815175153494380901001920332703869254785117628600665377878860697744045088483595051686762294349390661989109483861748542807129694971439318849821797832113088826084011294684874699861358650069340738602690340231969843786364572399610695660320824671007861507084609102242825323953262481300806975556758159242346687519603531737036949155138894903569553635256262822043617426511777239518346729087347470246769329257300108252751215453629670851835055347764008752955965030467494812470240486857806005979856121465743516221053720517606232653404363584932476609456828800833123453400135679954279159129763288796619585898139897651889175831528289333193460620550525867459814233359338159261224956714510574971487903937365345432857193467501504962942384158727664448706997325778231780284855571556714552584884413424231085115913993264992370167904298940545792211436730643669648423932454898581663429450694025034365211132862800742112603779153067376902958970141306758618506104645948490809355913976698653259168016570743803023650901553645324801630854933926390349756125565632944734607719107824652380236599508536146844775868112880062331982739261342667758407031976836608342183748307097644782783969683239354721570456530572086591918365902477590128729047168587064169492759514592127240600007613846408746000969514097640747621517530499417478001910340663620806471948501717522141333050637044736473980259038593888731428267375574906188226728441512692724802952088525750686306774227669692958058710917934983314062197500927594862347873527097088192168682322617628049002597601025794238903409848073837892619038870565515546079656895111323031101182669050029148521881573164441624520674799847025620347522572115557286098352698063826959232000621540200287588070516238049741028435222974937531418737972270296099516989662559483852898639341729379598844279026231675614660319245681204526123248366423033584816436090644645007969946299761459160458176244088616920396642061208108997176044314508772188119092013387134672713777620240777695087332087246003669364543501112549440182115121894748394629490829946024348475197722433032670946094688265995313722702575963426653778934401738155548311455567167984603897965686895705366936231559648465971706761291869793120520455954603343894990015166148285942538311651931113660898806144984335051686169361839603615189910745133904524106649508557511769547523971573053516049568944345221005760682883729320167264024951451828581946772309692432811882675036436095124714052167438789558275401414715246042504885229825143428789308223917385483063827004780835058561864229946402785647202252990966555191637230538816055598450763400818113145911664962811107981101451762913801362743537458836781084106150956347323760675514484824139994367060167694672171424876508222919018249644601923163115102086604883164265228602439591373643519222161743298802203314690273678260830882540530429493837559760339794466242542147352069498922805720062207248940045068707864384178792481339336367509607375805000287425252819548451831595319518807372036875375460081991430814595363264492950036629776218664846573363265143744269681504267567701797211833201286068325631232431509672270708976243924269246897394512384633196859627001186509631176231831502047911300608079231398986144094430421554989628236393315084238197987208860228614180557619653572047770522348795542259401935802682168098433768793249656886895241545196006969356826983144688760148614590569990406991668903437022786607591982129490937748116984773690525124702995826300429895737251205376660650125558703167818728673812994649739397991745638991259555167564281159703829663181324613405563806408354046917223675669411189273973189806887865045506196721463502450749750129233282577131729583556771833476860497736913660485700820877788694897324799455894947331218278000651428814037785573116640089030319786833091127444910022916310476069647888833929763509241346110740593276947206875472290828774122147204235335346428540838272412435573898768303561886263448275006309327008485355769873007833797864993050776904497600669370375732619434813260145081503313022222273652665474335608329435177577290892874892435957115223010371368869971398106574969248875042084584238467738880067057612934732389784735666229540059968230701323914723192320407232985358749977013169277009795244707912399505425303902135563393886933671797343730123537729775568679760180417086738860583748245589650761513086841834762672224111282856529003357535469094885578993191192281357103944913522128029070686531696201936966915620313720155827392871546234060637838805095370349710788779621702148116965157692544358463207132687923873077356852615808031810462748794943226347873042422937597739975263847334065905877756264739172270096373473896005983816265883629637313004964763343408384767777712320198038196384014083420869916543088785077438620855151559747800972008845325760237232468036246379130790565316382746283325766990920372729517947504387218746011764765992007711987651072358688937818811262179939167319728677469778500473054471863606822459053305483366347973140671930155487240669852423553042671091268744662168965766282854463422623662630740513042211706131771371095761536530853558467133032513698648073246543613721113765899862275713900864194006630379136555199137874783049305900016246767987466455504680561515213892801986141319367953415862837917649560500991698228505397658558264093945622908296701299150823187172877706876311533225844985024807876811556702885559091188064666628616154107650874557752973579523963199737557184053202173211528863239018760467309878341701123673435164804760314450612188339589905194584529746691231389486947201824977888533749297822909142065460165808962725253806324838892034570780204117656846474537825108955495205430453282381273832533295437768865757129345546174667448724010374333387690929555695223673146562765062886641598650974767800391808496981610791255323739458978241937413304756709246928327799475514911256406924712010529810283101592199208042168331128898908609313573539004580901265203043683743712918448787827753875748811017717069846971345733462062682417663248113640627626620763558081174433186419624920495969743862263860572239845734950099701011256320573872310490203520722536507394641071446895296579655075806405638572272423540935939861058646002379941424378052700571181672998482271234372039560264726768937975101375169994649945139966335287454915615454331732539254071588195594688942059233924480655070310235825701193231647349230351050455826228113983914853509135473789625290674784749451819597554617134314986182521806281071794109464947955200186462801901664793747676847345758213890884597290412945048757731053857556125580249655472130387814846651245629475729645927105068282391110914000467577637430614916823309162652022221128416096343301084687164474795799256632852591882504537624744672477707668274348619908038998209457225679734984354679931474523276636027344815904718034693923239601997165610500631129996955986786992649948433979754917765317001296937644556696302617848195405006191962326714146423005916325480064272655972380800292445105591579169339349637071392484763284913408258828491220824275520286001130897311078946499023061645136224484137835593280620507390236841223823293621766253700330340080080956414229777960912047556785216889160949526881933248766740499876934115743754926162356965538552795504733987759746161994722308925843099233020338217515911172227017949765943200484851266940546710890232137086835723233792640945051079282249426975253822380232671331669897102976560462157280719705837956059932106244489947807387414079102871787099887375205410710302895910206365782282365325898585696762348480204700004976623063975743746491333884403610823553236293318562266814686169673655785156563567540646951597748071864746690814872384573683169853711914127322809112792538776916409587612415426938719053050208219793383240362640559081671790484987178262353031138389669750537165263104509850110466877079483997804848711865448548556054050072208667476806245895007983170891583989231690565340777144559501627326826581509605825058892554724339039222340565661882509649091575423041860657114879189833846764291895578962599725201652616424338949298942160958029673418078393753779159441566173096008002690199420557228117724632415730640888650129789512360267465370931857682144405479525782904211299441726603280191832722179205052537200167455014010577605383073911766029660584889762130774052242571779704349324495212124564919502007111177134859482070791532633620172398928086389615733646139014847102695822241998070822133903595182572733540944923067129568394819293752749011587575768883121271810351642709714807455349883731944482416721770373466802948567671795965599292041785692969876616697929131696916322690732551975153979562472497221906233854730667438129554071874587249391638035830724406944962690054957332769924754408269968168756365706913729301357326749478591510264836876598435925689592237703279628403483691181639195539582025314054192699884149852926822315350764548548624339783410125301054714131300014817951549036373246190543104307792435378410581230568196487226709970408425988950426011571256000643045050772521243056431148788959623236406512622132393981930178511596141844413192631779181555828880414405418146814741435687073294514273751819462232619279185452627936357832342041897600233772901648538405969459123735805308806902067127011188650017019465951676944780549449366276166545753319000853095530288798114654110389067460457425723084715641351788466051645686334173452246710188566353321810197564571385590887745120950351912159233562001277544468663709328365815766994958957266918041610895731476374145170543323194211741250184033409964896872777303302788071895006287577026825063086881682798963320270114413144650867524028761660392030127002319394642354326189318974438084737703827301459374369269322494352431778081200898784147230220171787393044515361075085451181234228082453697265706197019559881913013385285054803989557170870463324112863244212282248475409032213935441525920401351460997648754074429700427024940669506938915322014304528720160251448908463593312107080263054855407084835568573293425947036774360385341422605424513928704219805187650462157820235802203741891466146916262981390400078444326873489861540917024571190768712254928457525328951881360795257611036681390066908244996966480487404671674577886271908017292652568208979641057004138469164669044765645576065463003952100074744576039275564097348145595528920031225375669952766881635418326565374379230537937961218014278643259216681230495808873577530668664748903207033600552765564661455413259224243181403423405414492317684494896638013132262060722811296977057733950586120517606009883566981348205155748562140133078759489053312564161299870129112090961873100901047610232316375802602994682046062367236832307705557848000388442504104396422522251796376397407128484846753889428842550600012920044143138091330860371146095520017775407323072170890028209395533003762152695099734877718870326056461535645590180490446926587516037985709524803756360525347084704153831860586215888498472803282746117242475294317650318712494017556109216907366184710908878685650343943064405349830626780359789884571923093251989050266605327277315359930680505601311156758907357816506595520208930935482108206465265141439581291114011875771590392008358307598530411823635912587710041033170914175208540722350815557317351457192439613709641445118249198283963451317431201461698365650535973376781023927933298056336668817673831998380616393701570939778624507764079534711828377600016036707577129907297360659715751366981768671385451900669883521953455865509728697393229543265448955973828435924631020724056293313323478327838096651956216306617209149226263727204007816934799688890396087232443462395872483245347521134950022365372308310214034145616844631610862374720526891703218767328024087092519336516511368331480343336889219323072059147724035546129773646248003260685255452943479396282952549501052360311932831904985401188322336625898025803066365368132767188029813656299409091908983600308485061034419043838276649508417093636517743232984852994007994272704729698250064662803775613243269421630841450961574158084674783778459221722420580693832276682614490816933928933397869580016900769490124549139388429872334938029909655156827836215313223246822176909291289048079773886031579173697032064527546400300617079733503481896455615422498715510049729953259546537766591328054994336299361873609378690121702439560114613306326393737991853909428853528414067709373405097000840515077989051979823097045168159518389110758595750773839476896008907813478765044054307861629261279103028069943565120960766266667841220271031528197824149641383346497395979869180871966581728653450619698169923163318125161100619701248656105244879748671107706564107281364474899363349473804978670706990852871543527174990613506085372930087536761280874040940616633084828299468649927723976481498875538510120838212062142096132411095797857967509698012270364392963948149350842992548103674917380106642133851836362971752087904960393634911709183327393030653623922837381889714509647067557285029669847616526432844292227660267280722161414607386447802339198720654851270271351706067731687023414713323871659902724347279015073436600692543591729079713976246084065456132249046407452567439130843192263066937003947081098143278225856605985873042802753474948962212545328002676252973167667889393446739188049899188230062886459441655424548360840676561485294592452406360178912785016660017995103984837736766891129294713551106902861848083822452125514413452607621991057128515432394425324002161539095277527380047671617578168203235575910964503670338147439394521851776898119226189911418300411983549866689294390867665194831528318512288973026035529779925289579857712516783783515446127630947770017966137774407461028866462182660519725428657159959388177238578117483460225549914776596711983458422280133019697307650356553350270786731649912253757078557744756923428443877557056309725135264204743033771717967969034281772487535082838904436512177109263341355344455393580352795469708582411251924589721939937520243811504734622873252422452365979731467671452615969698049969764624359631805750023202961381155861814384828329517043794234118291108723269741861814099952454423740929677381604126616448265914918250603150119532130970390927565013895884566640525365060757533130270417851447346739466589949983325776254334626765354596246265271368045426774719980359652927698632365225008573632081371117590450718854288761393409527226425486516806369897365022631962181178164492929747736257008895983997724823568108302459352463061272137465604116455283848894772117737388120444416655770401922210760938524382277210059120929167901425621287233730552141312081069982408854603803794444424054541564945607736181941283329048172939781341372452786844330258838674529689535634431194684879319685765469570493888152608868127894516074318244485351881149054009884871830645996866820716415272679619548507768860587144632383931417225285545876589449624250742940888980096984007587812122236833146714456099555331133066032231893648555624946266259698078337470448735850589117121572361278147377824654131809648525674513206652561142611030850692443078808196749177332628504756979432549740953484115286405996184188300359951530693294574319962573827876530993792574332929808720092200015058574515576510742952497504067176766005499333385219081477720064831182406432554750794047288276637751778729445687008713617781486025623435004129789754524352347537885312630647480513108205719881939862658729326839096595382318034575908152590897828117696780660631186198498260755442507138334594330708946947524926433174367999387078835803404715266732491876777413534339909772291705192573183939655285675292132644286713171300161278613163859577750891332485952418412829483856780753521386648494877879987618124706296392600303700150081886650962219781219493436655086745967135491548053987258538449530104927150051898517727928832177604933944960369914886373261035853293724075876185652834626304838793324173081189620439957585807549054369573444196559371909265391677973008485857700449814189741848440356260499489237668915868346831601673285086829314379300217046609574891858364175138336247954716090283955503125194542059346885034760939040454224039970165620386218114498911892150714918534791587392184330407215300677246991980518574214163532100488428574818768515056311854811078921161671258413681870591107590768220845873704758775317120749921545235402085704838886558891232025523889109318598699275475913441959281228784360949828297661066249841253241290420822516308053218020908042842704199283818172890446442342942005247294192009505369684984571142921918950189743010179311182567518260046493531920559066439928743598229482435183289570802527318980590557194411144689208139428560989178681795592116357660764474347164808729763441717953581302784691720201717340848312903555320078027727069298511854860476017971733608870913966503574913750506207069774994042444651438707396597115851332291220195943320031351614612291137171090943882209772477978688451774344972189458235198380162151328729775652871734313859099902543111391356094470244729355474298176737075248741848164227874921398911940617504326850056085133976189667272062592321291505843219003387717520914809013180633455786313112367296067091983011493111141242416693835481086335425022467664070149653779137852861533886486084252302366005218502755407063709332187985136792360690774841503519676148356412553021079328236873966738591032028392847539408624790241907139798076869804604713620472337813408198358833060463406719757803896587175676080341070857287401548151886383447970503146729703932483098568073958136689010135808521125479554223161251737003583342818304987468943816072695458783486488745048389678930630102648526790959879989127259629924020181817944282612204557548995635954972983276940404275518077153683048308241068837196149766429105320940337491396811312666740370226540008955334084670067182018216351097779849123513664931247493738621808548339295415197507132750082638714719878461372066320949954757686221070061347723069243309689019111187766126045855663439270895030012305830878148598333500100003292849607993169803736399223284744833953755009350111804417098841463929107168015348584901624877611193669717649639668905767304067750755536816061942315026141858786758585507336563987370995879068359435487985315974714749504372560898316174431098684861861828416848914939291578782051585060516333844483625984700157342499835730165026261815124342590676456675728614936967282533462316486410612435315315772939118617492717890329093701499927102694380071083877912248724384543827021542013163606127318318156426512781998358201093888676735670366546120787217134126233645546728433760831392470905160387236626180231245713672765821419929804966581348974879976003991363112268934877560483569457121965876091315682525974255171349867537948889370613758516768453354161012944818133862002300509667431559728837973212627239707738562410794352478419089012372339128310152190021807474937928798221333293542719110454434473144087910791286621188793090004609438689499702020715559396333785199050283435401787986425067385940916305589112805035631516972818235645703371987871863978899580236255487899910555713057648482383030465762308602117874542361938612675381084887489326204942481183440165561719668088153159944547564268800525964741423038762008477065744787833396829454202771243446813786132834797602482893844112395241646867668984468196479351322029575595040312880194661744983950245180843851844265005101726756249749711764282580773629750923346364017103118460224276925959782037287054857198711248680646725903851632276363382442813920282376290084570763373282550925477216417673500889692296576971847190844456824262853842845773482690539986406451667389410432025286000390703841361359925838604767675889575863938926631149195113535909260874254145020421250386690369570198891623909147348592111824329328084059370713784094787660509966525455342077039239941091485264630336083596815413469834286932568383218155872503646269389926353046181357400137995890414915102821800812730973762614501404016064040503578479742952090200215935733110391089188886376632726438486843018885414782277343824006040550409366107926155136645582117175366430240607979658708244606863186910165901759021420917960709885725902675008040356252785088945750769476284172860043722347064417151878470489457457807555487089693093181998270394868623977620321437839245111161017835585923868219883257778033038973507968119705841370393164324604768569723733532780165983629919513289635199482757574690619577345910994651523166510427983931995937958297123093603167453726604550541531064320749039638383992225717701584374520915707437815572212409660534878679295984898491498266796533184663053660016520814295800191099928008215715345844503076456970309754160476337584863646806074446978696088536233147325596136047119861757579790349073658179425548020051398523773506858718760940361231077505428094657127215286695451504673880000272198374647387751565359838406333309157051112352992150206996294806700334014093253258050692035151597575316730281304495607223861983085519625107894662725435769616480291909811735626657159589933637877723490076309408298281162163181022036427156652615787723443727412822297157441285182149756867991992398828620275519854573788868642868365933337752318063314341290070415350323210226442699166379884837869430488953685717291346649307124953522654004485097105356805161039326140976826174217358199026609201531453100309825909772387899000387332094901693885556947727358950691516982365790123581833351815048727248315710966755797023549038210575401004238007013084177942178363602873210368288629311247580591161254800339230641921151519722321127339095442030376924077996121864703238030411679710972089246535553491799360376253331957123461292275964908308132399841197432074568208808656176602812178739588626101201472039172211190645364813759502501334343759159539588165327649302280672990646495319735014365161659317463549232863704998434494937013107913555514363204137347748426416098944369811884513623756720409205400438343946539009448110059986845036275806078404858892552719780736772426838120066907410352063403400369598207785385715493506971161370728521404501631148045375775531628906934702441992155812848744197203365016803512402092255561307049055770664775451365661201036891479259812394662517377796734825331914165893897568017779845427789728066270864411801321747506816611888177348671038886636771460530003887264442534616887312843888590353588806342680032215113809429920904031926812594296602683493923533585809579413576080709850486694312537233992202098496872136562034646750113916232377648488755247790826092697820276118842067918768466740081419474185671482054175354114147379196826164741792192115707487083425869597788912208166004713859884682544880561337274815191048284867730947957582337768656587085639306867377903212406121489757398625868126027333188376329609786978831825285297603937364480049476362899084888220667450245628777491929242542648210880593842996239478454901028394398593789385323254451623583952892655574419482849053072610299887698316964166868783290648953663535503741388681010582235762343279391117291950851456135283003156460442286309803933126144016615993418145483843375106695824453592763675347376312397473187971548689867150722560088437475299316916973258226253782736239490530352469939823737269065040445669211990955165766674619115982108036888528872035727164490031178248880301793833573175781507836534845759253617624432652751038388933956513921989056798202318915399501264877387418533060220701216440220342396959729293779689068375499875680510911737198582776344935619412395716606892580111352515702656023183991731747554017677030054656816555228742972801224029955552342916640821120982679530476364959210193516906705415132642634374668889916090165093449720800056665422452583799269815118627271269473034175433697691846575755168984184811855218366952786302822723927741256544849500566973835723675712852299856647242533541664695848769798776451212291196943943922980371257970302086747288718660764871807663647302236788287090848823675738948101802452862012355179937189258585786173922522872517209493282832426192949007635535257796039607243222664842158115778035359802859178643011357188291504264612869245978695333957148100474801043297798767037445467968290690262233641225511000980049324345455984886646385298059961312112842916846238801301347926016989124098812506738839866108651815962288118154141449051025836090454067484211623758516035183728884250152103118112909601529561964850851940631788774202094608346568485843280243042800756538528085732534433181762208144536400331610396408191144163978202102972727694290010845638645991593412780864839396810803850665155230876602545976400515390612275583098334072047663780704874889874253408029934646980155625492847997561373005709341132758247470356940985490809817542902782001371937692484452670010978111783885133662319149870868011414505814486699758764992076355666685702181240440619924622298829705826289429925004022448377106930863565501047229224082942303801644491208998584846708304553144660912760141439337949568818204184564303829431006221426126403404459236276832876868343124062037347076239985331778132194226057255128312888270786635327319020079737312574826960879384987936990903496553021688372686316665623221142624539240380077877632535060595558339160949807239304707888163694561319013734514749745459061439844004093530899926472436667309969426035649365242955692615051196773900023088736164826787487306981574344764009786750093154953986453279748272382219885969871561535839924065496541406403233172306125650309622437135376876364094384660637144475469139855431366946615927356008013887570877050363762200570401278298962429924483729659290094696923187872891693170424723270445912367947063514930643460995113793465972970146379614860061232359086924715428809730681432040899486554173577119962482487455122268680652546164160599797926704269543719015626841611309302834457340427927232420863425278768161216774235444074760204547300416022407997071824122639768832527168393754025662908859511490447528799052877009862881189183231365188676033490163634511635382681529102290792621030091516846390661882518125760262624786343881084836177321982941695330579239629207916511224780115774069871632439822400026098692485480471187534303988602095386958921732818315424666782541181144665223711989275228756347502942160905322873739087294218118662080198514006620426248722393232661582350963084672563326926697900916658838738939235858638723085253746636550425814970815022435786256630224324926318408681740315501667043074410317350522038472069562451373990884551330246499033102555951201755290412622400131248423100447312560945686359486515828074910620180488795260943865304371043171522964821234725406999525483709169817148350874726055790891207718412273073751175551868623974399794276293150581688477049540585064015553371750193941819756070930961472735932103732139999750173411709210495355425276270046772584474104778805778251178846339753295556355001432707954549950085452515372217808958789705290908037432958885921206431652593915054414154548136996256582621104178346638019026813727690814342107149944325647568821355527141112226567367080547545613337680785684943303077649147737203412745434328354319906644999591129781202626362587144856553818950939856496675493116530940405933593906448207578869039503344221885326389608675009155425348228554279387665031728175051832146753910979231451430305799920276579814937920050686494440162852169945859327313913943919358737047872481623585657491328380783289801496336251569029126485754206058566667109258182493558852811776471205213556208948127876516738165674115613095399542560936382931462600749133704224684955310952058036460453666932374109912954509076192332404485181183370793439893858248821214019456268514974911884947055200848885039432269704716281571241453013552486516213162704597679566070908456690820030206720584086326011629459776454531530479958243382861498786085625552967565258147591473907275944272431430696717448465922485184876525550322296596544909645413779571940466413192407317283415530482562655595990441141540429452316197820303937809487918732943336572125905177785648565259145729259254489596590015476614791204314169037604010601174122366934434097440934104609686693312976766868918172242468967508974015373598361908160092565249543926020794828192889856856739034961612735408371256747443453087418911362487334538504048401662569298232812659107080741193308542716743968785503773818629639026776776348754416471900353812571621964821244158379970982294170665286090778617748101125795767011907229269011323613111027293336040780294358251991168390168501879792822286086243516171692694907698146669920021663611418261276722204433475403348424048190476480489551683118866172398229988451347563340295880087241566531758810347331309400724228095465022639757646609843628561048378528194643795950616358269801771648058505414408891920004841903272010406487236680820624229742350704747671143064626074833228938517249520904811068338006696997140642075142176926858114768375704058364340917602313389422688548331603229134946946977470022746423389429505797780470299640461474679672792793067297771628898227383966885876161211106619987945377635404296641771758144976318067261145742376134099336010325207328082940107972339879184666061996337916342038240717246572935282756930941836415878754577209333857151849271122683179356077343943963936421154709548790648768969463461837732055744108663816860819425110276404832319951275593198903108792736109079498515598029931552434513400505543152524162164828000646041592473459903544004936580819498314997338352809995215392566196867068791785580144110114367860424177272313567165153769430629047519632165934554531180123897270624684296293482107911870012845593151763453980230338729003763101918196735222136609770869185134121839724582758465879454199669599383570913140563176534914169122792117835241909429427745858482468707508069799452867756509726646393517261932486357792151970614039181380000832358020647410376136732146601522897452165912558729798498002916919714820470045547837864166618064279992459918694583180423282894661603000333671220872089943410370895645775462717844220389494479455580250501730503903008350974206596652003366894977199982539268280794630433180577551255842979418436407773214085257044794809481615883742296257771082786781719632204596693428914708287558753497169477346912297788673857048418120027541309229674154429028832908800654710805540464064912852295400367656501357694149201226922995492550372986119233285026272819622860082604922316381924306537693454903389953601647311203969430772554166540228186015753169069738207274733247634081692842882555999721100339178263704661021523923688092685757547626578042435138152068664329745872200671086742353914698585666020656526766536023933572832765335058509614405311740219466455477241555740699258566601587235514705428465498769849181550466773021988745284917341219991075987389002891012156180410033545479082941189098783372136453651348402085351566775757573814125160651497661937788085337482315185365527007620392011343528035244028955671299681690319382657721849916724908656920581455992037005082340230796171798092097982382539055212031671826221764250315973198480111691816889628889002667450980212987959307032910717139875815045111812158974258535431378068087865704412550262726860331986585632630753562018966692322694360175673219612144771246186915353132679425277123431818869985740785278254669808637021653878630388677158122693519143156123375757129695062811410688731013613793320702181414635624366017661402451082728596650222561587531983791814807168961937758714387192914514520351318464111011463734167738588947630254073426757549657255574909014428477704445412406895252341318784228961524896364675105350447038187859623936758264669067956103380373678709995881541130737393935878620504659339745530977456544433841751955617676878849212672656633878189413349540100311480443693395513056218175103154427934014497744421185039244976050247662705203618642108009991769989088187903121160424517797560459056420405287081388744848834562147903003677043166894164836159048110552789802981793066301028326073591909065590373759068407124138346943609753071721155837557659470354898021524567340921814796022003589152423530805200661475634661095474866449851734726564374579799494387594270534039825973962755140805513473900235173946207847166211262571554784448645419434278817228489482460438167554300037576008253138209069818178734203242437010067205635685706462811037929343906825748058801936249216251558810709547654019098425991627677608473305527464413451251903130350320706584341322772370848361294504724582220022157865161882867925932074409631407011607995119756384781999765344220722095715081407869305077988588502746078210969256288334456518394359756659473481849440365189317358851128767557826543593702684098040203326423918038695082431398866553453032396592428100463085517820799044518112852650179495228293464311976524833771056741185145634424996922972151452564742564031329641850804396170275905547255347360860978692192215271706324841644054426555179783021851183946793075936143163936296400994341336358612070517429696747667062300029760857714575693447565785748417158086198393048349395945292505805817452213066403406284194941995081056523510719804058621855798798744261010609783266750435557814133258019708033022113356161276480259006407808952229563833484111832907722987862409928760320093618684036905690481267566389609424471889652444367455399365779009216560852765700381122417283930287026109487426649021219994532896121758937749100839632447033411897329744633661338305235292610796729538917571523208973523924024821171744604753128737621579365710124275728090929905619785487632938595605176668704675435015072621385233438180570509180950438082770357006319908885824597907366994757899582614992316327010914971579628719107115326284847257405405357229342746330761997381688182020198811407812630877770559939607327385347375465695261815748126917011194016235180632264415448599079450651478185356817419086396125955791998945972827108656699436402634085995035415596171159279803330783301357946326745009023642900073474156034070691800034821327753533523383503533877734149928499164923899148243057059994356356274829050966357176101766756893191806353228989373383796996963779052729638151256617599371340603255033403752325091741623641399611356622683892712738471171365441448755308773209782462841561926265824129260271339676265299978168541856287232064285726735910172299007132164342095186107204626520722511450112494898840730700214042159168299753739406731457237812430932321516551699619235836135091788084231311419815909177408971687025605661315065793061105282817435080342579190967072644692870723488582766611769723163773586974351992463576715351267444907939890059618649333428891451622308802652343839397560670358107568337774923443688474138008881566873813015843902558635046541810069302486929085574878102638007907401528234158138411953645179921473305808885256638113089903883723254232143375369699932832083070918364347608201114215979426112419816522164859336127358598185418175436298935040568274171866483175988054318555272420059130466261687123883041876846276150732987521351074438863455078740748187384855667443082238314163155144074684921294890909185332057090396616912000687158815607686368779451029602904259169722815724572733455351289435354628933065552332308431061419162520393016970787331941602524130048996113956937633887001538526874174898885872446891923609932995962578694091185021528507082503528615507030672378735526442203341407237345707629914535684991337917021408065481871776305486453749802141971895109655699220124394259087205462933730723915426364495092071017740327918003685825429333484340041816366252131412714500871363745183259032178882818580748202071952065959116718635321354098732363685344010644705459048014048140899448748861721943753464665066440387913979618798537260711282604838013176940813379367149039596377998797564795817858823765910148951886685368537766770169343027708681471249653958926150868188165698865522184881666849996098175342492230206431587144243762699789431732402776884489467163839282446628481676283151342355590296027186209820173120140453152668376149116172032340580195810841139259920202373870343530801819151199831623162695457809516533782698501394817844784928513492070618715048239311532299274979360391269012430173565395386864750042211939033579099728604849701568612563290914956119909953219521711937438134451152312037487580299154242914696199982522290836848191072873144915097839517549346215984159756544667081757350762748967710953942143039685434377519428186645650590064165679899491802987185653104188332314923191704363857242925281843503583992256760957755673006869431295457712578208615319665023470171061641724756025913398650788431528293365706952867125164702885774104143596207674085582087206628045481591250444160229440964572848710885858118787400721311661717754513120707380866250392484252684075210860998264186752513591290174292856959309186302985180141572059970722940361612751945921472940762710091355936196464529930423113277999014485034156585230975362290340893777316305928980392278301821712578331416064448494568192793533162802249758254437546055109040996665920818618694996056120711132477820783827415941502067589940379924890409191629937681425994733619815243951369597297568187164168766261485251747025813959453289421632670939044193309503933153694467312059614064516954329295888377615250979315300757306094562016243851446857855903402403539908211458385067684321466711348073428049442268998426090738045334693496188969127027770753272272809646874716615428333213559562788983873402349719105180621237598578107038441078688035543027913977413525033880252142212462082444704396708496378019770169161099961628456504315543162814983403939358732334073048529978307426647164279848935535463200564632018336830614903587852325109681564885011990983648165705254490357958254084250746422677039965702614403847394948146814642178063840694407573876065658558373293344918763255860642856218815707678613471319228167696660492734746706923050387029934334794925934907377412389026689496025463020386023436265929670961857900202489932131332187401183805487314808589417418568237623397077829291913878592078603772320208310830196042213712076657897463685070136528596480275779068931322649042557712488752763688373679410398633747415078815638016226981796991567092837826412428218788423765877075429165974989902824511381931514837237137485541437515813913664276614751867314403743720464533590748598119348453842378275495879397066009912681153339588347850487775273182001561207855396092042622649220350833318559304792394262635675394522493225138587583376149648628583354606316725252238605771329533073657123810296498895649124965730599105199421580072017159696657578286739594295478921088594557211841567635464703904910786571007645862840768573406465844135301179931052131070264907225456280089394782318046343489160755690789703066679290885069938034087788999260748250052653498988753598220487892197574031146102607895768771425402044631924744907452149760338467585813674969858647884108680067501011545410657786947588085663446488505684364747151621876511325243118161975207668090605918102962981010376138472752489410688890850176224648736029556155800228093690652603982893008170696535389896501928938358374062499942947726518237941542257113379894613577430388527345233612211130487443528905896778298352874315601505481730049033202211790434974855438312701109891257458495451168794705279785514360105212541720059214752035599593417112516559395730748336778148756996391083695633201301888731102984113534063629300605396493968970268498603617783033762168289827731492783649879767125363785063460068942355667849947558083808313573056886818903358978759898930157097527330493563976390837626651021328402521053595886357540239982009708736179353322756528923093954803307250477495101235615396062335149643878500279702787692659033668549330545236786305395236132263436294431041820425891704000437095517395070211356282564178984707174283480607725932286549832131204382375712033824584484540664187515677875507996674767223833653409258039611001752534379788393748669003498239781999356333434980560855902141888247274107749392823471134468704137585167993760501933700135997764392640297691417116647823920974268695514243299028976772015908763504047965106404954504428291369453360193929165076968891123530180979318906077323151638478889025621277455330939422533197570783733585801732381414006404371962899959193584322111221665372677937740286155684305123772204293278346780623027074141255699557491481761712192744512486156508946876651606608269698650241646834737442534880177576643838711836892044134403528220581152169223425489489437973606246335860647092702616733514339482097636072218778692097481345008132505726825534186557154698797540832196877242847581480894372486179793174293542833338208315275395810223186287561567219349484800903177376599611615407760971348775347755853420560428801723719845677421224983629738791327353175189962510167904697647181903570958999026485248607544027624175723984778675257179541364937336457095194401966969309539073246420102696946832215784395185056849332981132068991281599172654972348476506278913880425224904709057341267154742134826778254842555024082549075862546995585231159967660241716192676954684168234207616341377770477137805735225662803445555964485042795745265558975187055861084632540387406362782076861862703805424523336617833950357538265654295658673735284970063354367192357529256764596121204266593092408047808440740382717713958641760208369650681318602367924599105443443947736012087143863726678845656972244585524865713595403316951316813670229036605405900099504555629279191671489205556270006068156983445484354666937402848193297683721305293353991754703458021507743020737897203933673039548129135171029431631428135468657791700658750779959287477862694331046314656359106481295886316663825730930266334527385643459607412224045137128366742827115303413311053340194763414671052965784980612818498019803608546755085819506841163852804772343147252640733746914958690800923995187846251415229597875899949746886094913597087318316898912549241118038049283847822925136261793768434522034682953962431308499338480524020298162299250550855090630220277987591339725043748762303026907477132777315973381032941700958272620305233413981218166563581227321968735664498822864905840233672795254057362931698675557721963549515418075069085185998245591901575506094915987590908331590725817466813743054939596867643015718267660117485917290406053633663861969111341403283771844680507092677878518890507944763882024895193701359841686845794715047384461492209291180347109602141728906420208153098700971700720092551119533001364905225313595112843638187675315798544643728979654385050245919615903660097989320198218286207838227305011580013892523496668168200242681633831181179433669590654208510788410267126564015334450902382990673729713956031954541407806504876222827267594885807567158658022330316719798231224381460576872789915303778735265785575496177595238511652677613162862388336571317989972256209443556592776594040338266824119002654237866051910253729329132830080112333326430851932229331983286139641390276518370176787370947519260937753757877876469660549280517840724014181871210182461671316343991934310560335645035938445754680652924527836983930397674609819143621116735884346352381209392120003552670904572369358965174229771758462718096128898124380202795129098483393511765047710028761892280050211985258788208475175503941520464772441097632990489360861491835361160554604208413262032375047819446357045731858243505212874116204969951891009316002033825688781617832368115558543723910006185309445105695307316079259127353657234331088906163433181919639130421708881462811391363153033102430798031915891046601911606196478543295034810804475321128853965383977532308087668567787924044519944937843952153047934857361236274390660165028597888123413153934725398007888082253958864114698836713315551934021703994191796474169054292316777033633989640310453699548622529236392730726261865324179364283674121712133785875095334782319649261665492321919639122541080930256652069526378633788506538024638535051921550572982487194861509216359321176718347663321184038926394283138862360204399135404440358728513746905291460068912498510226460657350316519748791392807619733467478438677307415735789099745796186147088603646055663304527156256600046710320786355370180427664668333536570071631673210360173820467816354278683275411903884372985201083784830356541315315424655248567719134167562580877422909286236249351093018261988282933954513594735949424043225214376582685757898074809029476258278649661540299341129047447001055015180342674153104817913995549192919591947251573488917013483489808649780652547347722821930132526694027619406963706136963351123533271231056041460688343701695175184114559633412213082947002307171452873092027778754022180976332918146673329974837705946013663546778856482264470757182998039502437732570519143287926373472191631254183232626661829494470577042038283111925400886711216060776487013347555022237839927408357671940549004610530051049285573215936260782556448682194847428768413658866024594796691761874907085846381527849982309607737367092491211908209664789439638038593538675965126879491420565282907716703710975981434198633112011972027582260524325940354727987951567720480775296133043298154830030065207421336849955457707042507891828715672009580298850900578800469611053247220222724885054995564402806087349750550247569231541208649984672038891519146732949113471963764674111942425032298297031390607370387602560138938511939342964862684441738067052276953308823010362840981402801315262159711372238558790323373435954549556617613587092835162817445819249773681533388852250393539916763954040283098923925926398466449305226880276958515359670160054068852579210489526092053261886956479493539365747559699680956954779472548530069492757298924944704760349083019803141182246434869057552397883578923573332671477526776223466615873506017023539339010997131559720421330314719094036235746693834557204413669458876643816209102396858419457134633082642528736252219937439867503685631091722914118030172264184936341542162634873203261596886214085041701849837823980977275236546836462388131076833094444580408393115797805132076681479176072918506992583994435640081880352531860694682747824307876309669740920402010941679925832384440703687400607681355635125213404669145156916462492387680225466765587310566231282504910001789262358180318657398126816307728297096894544461741822684053948992224882970754985284597613555582126268155030061200020215280938902540677280703415802630453335699390915266969576497126266731162597132074113722118734331051964625711379062235552571120757274392299222991948733261008931790914010898675164034970667498497639470484627030477082208383338475423072703985131774831207661966455167443341659217098450882037180248023911819084549812358191664453840882408070743957690899365576239552206572195102058605818335964770688192255109163831439005421742266746742097947875556409900089071756483679368967738397383936670380398063766963914585217307616076262937021957499347936703414677585399343347158070460899705143995358967351113603793585641909652611230714102963121924109762771555255491697229360476024320949128402107738691932791198511522726299608830233520162804910279893047506420754663608876186860609045133556030367555479573210549028957199888353040446322358687724971341404297710837283413171830310980905924151303790567777657857584707996153613902048186784895527058852968706948571310242676605381802071754805108055104941507628010363837436351551593581817119780989984725441028095278540089288224098321138631865763837124825712300287832112465502114452053676324315577387698516293215637065443113707238972254269008577101885574186109979957642095063874293836601151098922868724051086977430271285587886383580049474396647004969696894251311969317221866261333238550185624964550712412566618631799554268481051793875250170831782094767758197417608677115232596631369379768325853674886408940809420392753939525657915196295817444298280779644724085786544398978874911626115023745983884997000697973084816339996348493325121680226664906663689512029461292606156034290140579356427461085870035391575156563215930848730485349004095837787165770492174500879149870600435087756714405522567878742291193676127828700133488829770835190777896570031383670881013069742862809006409902951740170991088872601055351963007037352082954742281050940424383501776345069192502112784350799048945741549215815465134115107659497857690739682021988934933575378969679144928674708967242719522400501016684298415429487443597449449814718158268571777244031518137457972188693597674133749223763521355732321036430176576360506134130843199911195247633135821415792486707937009735459999776619754087781482721829940794730201459305317036494568087405071846782172279506351980076644935991591404614229148292297335346093312038947813624854044023005233486834594743785259199901214670546531592235286591931367844483917549771626933566493446640005235534043354171713055332016008588228266929182943466109751807648621766947925384995216180135253806817431604919534126440245687979437739440573781608143567642766561190312529388640946079921765415760071086587817199023007785817156392215489583519313829694077235744469055257801469763012264220884366224305951965421631407362486142425317854049902849064559321096087265840407608442227094723381866651305856119715607359956583877011815997919654591464325298337002792514760087598409350021201585927667259573589134567725668794615695525504146438687876817791639633687656279545637221222273897467560425461099749954819581258390492548853047988561017029001766200333836125948363080065535865927937038040999357304144078456227447600943957993944721249992331113160282404796784498723149107775459568975844642552768653957314226648630106747133662120580939797253314639192797174014390382922099488685683086438996092887355509147806732961612657869033566732201392423766498089049397561543269104787421517194679860863761838394844541000085072694710900593455057351447957042741944823530175144999084954162130486423288522389474606016067397325155450276009813721789686537871874606483384206668949390080872652598277287101382638097373408263076904565464703180154337019634473528932543638259850552881676152043225425250839378508769064031387417751615948425528511175082568654179947730307768117566546704022553634978475335422149173064249264871834312042038186333010526774411252780794717478889160804673857755249335067924683952585189540861957467907667403475360716439369015212010682349549819227933673229378472866779265545333753726946514032660562092247653758541902298917390860585613759465639509144173166635341342078975053829017243427695176772696998588371805661820849720188374661476704320078190559076727248729264345489990100407446036133151714788739911988618546823235548785096917172618581544416236759024870072854065224840955234801912857564173897186298077674779921586805106671345638167972087715840780449478527246906251104145561860015066496936979404395751079127029283124577291020425667836835827944747553924356974960489731984162729658268337899386083540372737389011511779678720800640149632440141316145472303619353381210805591140152653426127654687462334075796220020695930277764594861785725930207546227056846505790106906272237415013191850784063476340505328886572955535804924938610230212943807409403089880613807420959704227350335143571232306755179369300351843602255800804694913972236373714842388504873106487437919202244430821061980826326564041186950854750490376536048707903077038952047653174898179354881459532639122517497152413024521057551564046038709165139870625265074366862141734422477396333340169187529256330846703607694159810637158214069089336713682355138879037095605844784025473562392139983811577809923920327183797921359944870185271247102097576685194150875577960334069641102576048314670462744534173957492018897439173576634884195190863280527908152743290183533235117689472326028003025993318972934727005991513356535117567022796857312907540933233644858920138961492791659139361589798174539106499078799435383131608092309164155273748315124432826007664770490520885145320377200091153127892724463330731228154039910998046898214786823887276481495543747626643654623301948940866188725479200235040272143378670805554359872152039681692703117950467873210165810380899159923713493577342845768407248627184489861763195760976002475551484980931362845644954742793525965797437630564600804814266514082192902285141661481020045932762687741418393766394646521202973834629245537291036770287792951559139409104286103422715395003818851112203520816242450986815342153067608079557529135036927365306640535764297927070812974678744336409654351384238284663151028346272705316767670676127363512864428208851322399235828422028728797992441035470866442836705233768470656433875177172906072578665472198180907599042295508888825772872599289832849706027989135817865126610797615119649958063623441760033571971153693779788339774214751134354404314053272054263891561404618310662769610969913876435083813054287743145380378252487473909616327900032181053333616751885252209886195638429294275528342541770624267136077593402571944465487470629979587537154083597883552914217084922505262826803206692854354677990409696978234022153608111635469038401072010145705708338288390700001474495986499594374494360102585018824533687396186457610239398928732374697342143810850286949979989983442143474975334122806744652855851553108257420908865643672648959648339219999723169708696620193033717929250126288727956495027014059782995919866757933420801017924659491420264178565267130723728005716891563963104756347600009432210726419711740637128041785239893909316246913914467179415363489189332841906038139785259018252768490290478060731047834970963118729669254701201518966483148110858971561248878310586403677553727722995248734518123242919449594279766765791429487479186951908626732355741011606633490659159720597776759194766942040042821520788671909192275235172935061092589410740930841874460499715930620946642243889943795941455479811456187689154472277507901178566228021030343776496461629927739002706055986267782944498615611516805125270379322465595501890079527528831019751331872362934647098327109114155235086014385758840586281282699538899756125817556719658175817434808401696834737564622891646518008905512944922083920314391754442556860563164916660415750766467552033344314584461388004004067913499157101211210842225548940192246417325973112069033604539107605959554997808863195462746957473447136869402320863331479340043565724087278358722475658847418581053196225465182636914258542252129548949736673714500250630331407481544074593350417618775293753880456369184278692286775081186936404253664461858554753702453114591925778837022081365937526877302501162281849495320361556471648454550138434244221804974877531669395279250531178251499116752070252577513151161399216940271344903214866261824247620928970373343222648718386059995004643339455277181775265653525734127255717212044955127225517976128460715278580372951549557644521347659515764626894198482240390368350647351168687333123335382498840887276213521880205867473925215165976791820206546218765485007459998437360150897056149433507409871027970417800220924075371443771848738217509189237734040082767140569813930215750047787675103008060811801391099157612956289195557505746108194958823101507568362109465012226324783717388571172330592697212289439554499623072445039052839296636203700235234699937769547540737055476642989028117291585049447570623755154559701598488863341528777076149463266966788737643096295708079323849139892612243365502124145210029439558342613276994537860836806858973947529090297137029642727551743944735708396533125719751670128855095058110182453604817838448117701561611691478260296938083811557779107266116147548593333486963153872630976644913673524185317668656548495454801010864517874700756580142362393699106152993075603289795907820252671606331880686329111826741429901206590621420026950120321933642584877043669437971666156043229173162040935788930601448953459562172127805023046451015213418688228119589836788993125330158410015905922692566074002401949362338034337460911026638820327065970565934786501655173905984015854685237470972870463910766609503480971325569044258893387605717880307464119191147320468316248325240387941893431892968588624491709457612366424228115679745483657944187184988415895499204735354766269902175474628364828375694517790775756146002391019407174889636595016173875087776835781185225945007690903567052925545189964130774762252970566297571898969079563596298900598750963599790710626507185176871413147471686809001924491876853548363047815518110497642580430709048816570402757723601929725169875094488965800466039499148117355105762515919323297413689883958555392725335690245348946287118984922388650483543673124347278001720503099952572549107441477854964214564512992523021810877631962518557845595905515647656842215345389804730010046445971917381958751950860425106903575189507685707659901491533583464407259351387995892495635814967021649372737182192909039111622846101068938266418676600053876428895085414040031778816070227852119437641538485502632427024997314069160663167158250405782757133053592714441341385349792214820757388044763025238398301844015918901039208720537529121730825917460062770377517209854824643825205021617975143814031953505287602361523399106396547576869387901176760097338998125310664694448063821618698316705996594084323415114996243494079181505876133789547014139863611366056011835092832330540433959873318612015264396838021000216743430877722228102418625928358611540745186695938913048002451033623977350072593580912438441998868072648862309098381348082582280105099618744893769811513565870945633202463331016966318786599938862698260918968481983883873661782757164456663107891604848987570917682039819146254484535339157674003332989680549201770125169845364468901558558200920597446819616789862118539521656548008965504538681882115028773428546923103092030253539515885716747572039317691798723196060865997291267154999768900683441748418158752924343380387558056251603303007878894533453875348579646770290000126204307736605692197256732894943785551806962643931718676853535902410424234734586493805255095290913066192327323037559269068452774885313013416289841829051348084542923252399546329002414289281104539789905094077138739336425287170336754113218899682673562824052351995163289922361808021248346147426641388392946766342170013022762726506761760787636595410763999938996126795171006059665278080226751458320834960266419577776808767640927507362493081625213050952419344345237614436116759962452631487019714253292258899877312002622965718395638796425640176579766407872849978324244355493144474906871628410060448172292262441500020503264472321785517593667643270724161069115340308822197347107904771973382443146668048459654372907620784899995463569425813094174774733554599501097844516409174239181369382964295255202904914487598364784992932283208685954297041578186600969703094445569975165970516873464543724645628368043636181184588209795211019013928928282291911703750642890556508760481950573645182056635980590513515168777764500457414834262749589135471921394718200921911621969916632485378423399857545034899173352418565102208998124474907889752707626818018253400256540215907806861973642917316263311972375125382181619978307942295257064048157479450293732445555819817443448403396402384019288439398335001901400568540263910442121402248471285243627912695571462513260161648932011462506445362823065446104388373643823226038535998382550483323985137578909731843331589942688240143117787760433539902130297051420158225633327397220740316932036596748900756197595101065769676858651614624861875694936303537660817477794717066779146805561666726645952412448017943295523760288878551773086041735982443398253020002400047910209997214230844468079859108597987174509718600931952733312582568984783513655799112117339797164706128045508504256140102091204253761209936677096869582661525805361438463798116238634953394166972494679027274832971516627057610738274870529375840265716777230219456718264287825500073578381958729168693935957200975262091667175683685612618551036965907370618798100734807895921859078348331184885173715967025650907493323919184632589610940776112167246257578453715043404550053629618709992562126496089614005575824374785297466990529414349918748449830149666056258765245316391370921998123252547589860348694135914031815026497786103680106495291999443093547088061851543528031368224003708776435617308663703764668785899189581980040492503618593512613736256627823197276946772278008548019315377708932413653806701738328682523316563374445806921179628901565887608394058362221872439351727218576571264196224905450357037521441300757495965774106693874545305831001803041311095762940806080924253735431098602223572585553578125045969429261201133538394450468570124586914333022589621217101483303049274366061792885465654487527666494375555264385832378150248484735079327504804146952681132285969421354277111482664823261764425703866604992092880325005868446184563032119801020799202196063134339930814645708865123227622457758561800786353915678497265794952569477467672864988047949183195772677983530613779654941276638740635107239130205057631595408844498334836568645876186188243589555241338368324335329267412280653705501675036627596619094320909043722095949342177994815658948991550021024794686271817221472521840671019224094153458103716125348905494685171257116916574713256496154394757793841614583095207957718036091771335489173396620202714977283970994246879143391513399158294672821992392722706361463729329987636210446507065494962635873241712416173888477899956856376770808273447568503040672272111947965961972045309482606376624165268126410812933783690878219493397695904820660755532715939805375125188918119563443871591066404658943979426297687092444583826596951121819868484633000601940819156036002343540341272061708362270548836044448140631236957867193961907636010946876239157933618479979442226052382977934990280231622113333854693498963476000737585356500342427675389575049846842285895298669312684631627106780157299674375842974707940948400560752127967779653517530934845461527871757470974452919048588528044677650624623244206343223958329524535921239103616488711405556224174881588269415278820927815196990516912531210877090331268883012804093749371214455556815683805177732326094558478045021044639716875556947575493844270882295592173446122765191534042003465267283680024498632336079894644162948348876387395170096693790473857630396435927800752875029073134991586102900587092038486853658603012484540968857860022000402897800575646919816869087614346765438728465880659458153142739736761863978610238344430756960160007007259473132048031260145142010120967975464737729915217901493761109990762926083983036497500903674791609430797496998956334101605110169779164298873932361426456376952568453189736565824000501705991021567768995324420537739059341907165639169890959929549238692531119545650796865253411852147079562389614530709907928580296329420866040478935817177275104229594568093820517247221135421532386220775529596927845207941379104948739018666951554303002619844241615613365298657222616943392650800958203238724013863833693187142404996228119462544459141055013227728991934373125598091414409508722733676424584393239229227613741506645790070643536576718966154079612295483359465779313860360699079041969551026697867521700272963903831060284224827519238405396488122489188948377146282279207501727752323810829849346054818035887789573729820399345668627111201717864342233849408347911210225387036941164017851315897921058997591186055091101136309240644800427864615803665452779406832784594853261828338091957085732916338547297698893398522737660981566211609140174480557977894467502738916329415226826156517760838236434659051249282432769673831416445835562066099789039344087865705484196579993147053580750475491564190060575899349043187577957981657769097742863021036139095618454171894672496149436235406131116034795093009071709373615991284441270724857402092415840695491345348019937083051137162378245316918758298857278223443951427649603931893759091661648931140509743048186194675588709596417667938924063362740145753221136494820070917657641766356714100772851488553579617179790510396141173528129019665427483581012293139657663660581311331395977605678254281103067525771035848438819061923858893553890727904419162489348463739798096168931119242303411618938718888198698398740056400378410577729046408620294585664205708324241714657548603073159089246613722475312544745095951975673793898903913335613962432707312564785791740837792730925730479644971935610363189208897458857042141343382726170522018892782690102845593729773824254198677375855739440608357084378538827663108716816903332445750938441941891337421173639003172676221599899761232246460092452346746285281549409368044673565948275545775796663174211541001053990385192560996223778729761068173135050450889732063793457014064341421378059527031965296866090314598573492517751475949196445679899897688150001248030992068575151656291798198664152825533061073050381958109720610886652579791790150794595620030881308168100427068856308625845776260585841607874219300426865116770964690978098162965705518622484706621926502725381960464475403697462290551751457906022168647147686637156570671148293934017763171563834969507228009592733851364357818037114627162598331672933646375325147867382570755678252909632887107019768473541521911469552555055613735911427074394919473726696292683614571603691083661527742099938957149231334327580565503613581723354934131287856510975379771931352222257099022778948940882362646141337102027746943560429882114524070368059341448695432267339667182008127664309072807483648310938343553468283890280611134612685255412622538938913174523170149534445740161789859417960908704993057360321898886409039440414082491778511849018078294686491054943991576437119895510989807978830322873971341543387329535037560350235325839895642904457414452735146576070035122678972172753408579257701321625236988280035010126341680694601383298401010810271182045332639836279068914949160563119191017780197608685165537232534272550000595610941055210338895908071196658362526345472848409658085236965461450070973596064817170196297885697336251279649881969327979233876279036300811980143617644296414117722064766374249760162310599321391652204179153460062946013865435465632865648783269626863396992984387518920020766360675317124821564946715487100913858766389787100218600115962543181734036338371908516959682494975154489668354650874070340662015905021423939301761472854822262600096800387232316466876257605659866809064772151060213100804546431766114026442060088487062376374514760828262835930493639974133506888950149318309976297442056405825515575388766809089457107979751496137843737337600739555641530611181614035057579356563486975559674748061294735779891009205846945745853826555847379926338433281745683865663230423533159272496255537890261093822856937586782130644527228554433909236117456417425095927649105063426065613085393519535761747361830582369719453267068931060268918386606455843026683029077944478159361483459117880530460461889218393565131056595868310183902134181898215355937113626635950799943911250579979433271451151782484564382522934306427834111048770927495148601561848169581398272212058525705999010451361903405763670315977509848681873784905944179504559790964560042532472368757593720191708773554289041671535537375681799484119603788350498905836384168755430565977444451937061479323788138873376198976272572797522263016726651820444055035459630406321898281717867587907896184958380735373999333706985801090458933099570191747277627564993332642906903192578149458056995361743955970739155051042673269528902000560275991965532737069295188166613135253762503042741278710261954897436772847674651808389024288170659933945938528112289998320574213381657583725841305552113746370696941190532859650106683836108254286388616029064206650233334140197454037341265241596490747387467940742595319747242345681938801128515466686077170846272052767418340741090352966938870838548697451941719389702963042473783005145423424302602414493843236347194819646464376070726322238758599566496710147814456069192480566207040458183912106479766747376659949990355755927968597169105855912429681045178145793727323381270212501783160053908712286903159265464430283011567383652799205858083880118280837478181628137907419615054846335479728777923849827007933426264225066736585351966640787189082938562434796941509717582445166925435704192446445800304297181972481415807940857343317980545872823055748405148430489171205242781652320029473576234534860013844105016365157697713395559381000991304114922965055163416192829200838936223796733739786950388678545515214298438092911465960794121593057618749648767293023245891853443773627941690028599256090678063861619717431943839491910914745395019956470704154692037022343645681178326847806202921996092173206277499270631196293404067522961510196197080444078405035459298639647295210777511156642932753805412523787152883903709986948667647698375020316436128693047816453029928109460697094803414402589074636347395597370388427956642670137444847757042392688593863133710980624721823400211682751608682354199623359446888809342351051488568058043308329377918463847695134800272511603343439431063004639563323114020998974097864812952516317278486735558251301165408499116997980077665158805951821767136251958318263511957232905183899865253206285981272947787260215199612164968350455610045631651889144050129615789277979305163912541835702915915137235045166728596546522612604871129528488680183626244338364484315893131951038470288909910609400234001872258367639446711110456401962732665779058764338157266193968249305309003875367295114608829124802564595516266135166596572714503432054188443529102128840719613905348640027884421153037769556482321803931986444369200607390467281751002357587525235724129458483751371145634790596564983562656563303735243985556186610800692563634959454859211837028294889664224471742084671274567728736023264091421630038399022400743845571746988341280581297112581053666692107131147447704535189888890855451171512957716845873072497981894575167409295433483755994037713537983997957681482838452867129222596669633525346772234291714183644632928370347874775060277168478223950865782116366319223450912101032493526511028522038566021971299938621379182289024698044179825278226245582507284687438903302486353040068097102617898184511758568633720492563298508177088653882194190823007387116536288140661506917760319574264910275497498720253386733953955150827546060479590030619014798347308631969310713571898101087766826960356725747804859645933502072599374118064448460127447178503624946934520543165423885457788963570004537208716040646470720360878509416212911788054966664910948377284489192518463542535796934030718734512426944035085686666776285919306983562873429982594049396340503983707276291295900180001369106565595397130822674174436072443805652891423432764085943421664854985318142410439568734476799695682889390010960628987273429170663397083016376767258048413536605058981692639424591430102377867053186864637508287161533198006517006155517730659535811008863497232848109024593319868613196065641983147921956654567071966864084747254615803710504281774686862619537006691382767010515629950010963647721789460227657601344650160793853859772158110157108181658315086150256304755885674744374730136934668818922840552395862803113591639929021485347918767485829675478719982227806382469788756455469337324786319007958501665724009723389081417866332125323613029744880981450043589069612110985699736624616439873976992635192529520575294146829901530225100754106945518995718461014618073363548752419278636541474535663046444133745885531691003638620075592142425872908232400175370698882485495569555807446551386489455607376349170340909977810972774493020633095910420316578710632105974321691726782159222628240398912045265994006346822369525458965763164459021489907011366897744499999573466682143903877811964160249150263486765511651563430472811492994002669421740957815245971061130850516786978665215891755077179583483851609014547560333756835632817448032429064992736311166149497893932187170676900744442153951470471153001497992003116067608747383340131504271318639745335155765042796575213547049489636668189795227475021377686432476177693083475490580509152831384366643356601964748778471995912830233111464809739009332785951928463847537734321259591801020420139547932313400778383124467967634112562945637424943305816865166419975721020595650480198275563214873664103840509719560398880650916124405151459790552767483875396883264483363227708507113019824649862489759723609681102756515869074734767961401275255352887820039028671632272215787021991379012667983867299270400190816155303960427432435560066003411354354726157462717946643407511590744862931497644155464070605698633255547571232397945076790548650407857624423501172974245892743586510636062183556570623140877885175115305691574577857135214543687600433444344485944562900950461177496697570570744247399106676364375522637875881595986812059373420074062984832011670565504188937140328816156269882688461513876635332099719797791558748456713821655255622326746962390067900342383421702796498937030804453252330172147480626274944333676245348168632180459004602341501681615660720385287447256175672831253266368283632502134000692355017334540275641596987310646768827982145097180330972012153724137881312662996427782663669358994219671608980974602684455761606219364060951374060023543543105758103864907818300400801806499969202289092499880476043290645214521090696414569058435253997194424350692562438792863582801281704311789318040985241024384386156826736546831000126576513999017311369824002533791280123126148228554261967818249609811671727150559237170084509822180761247858523824936895459954503503182841471686092951056644281920593383209488519423290113720419219313908719997238983137560153677987058518982716167201139673196334515966366235718641583621158458675088153790245496973712992685820398511720861788198805053496573020362449128637374266017244005178848103883165518683890023893256768151757313469245422837780636951563086895892562845700268056817137211408055810503009753336932999104146448028819564368805146755726236061224343139591233863668190599556392352313516370048335217270300229804210474693559241602296011833435143237009903722444274399355055317117616715438076009639734596231585328698644219302930801300968643643954385138034472249089925901579379440411537450335662878256740677516166665509848765871100140707122726793260153291351362423648532005792013196072835575392060356106459782523087378806490381523288996918918328169619078310672296191594724361414784541276520036236921669757477100441031193328875958717019306752518789443953173767284471148366025478056050521980570931395054015060453471767204098345091351058674053455838453185400337586143293195391867738481149202567355330534734630597658483080896618520896204470403489772030893562448037600020659211833647786392656523026260487619427808203336932633330835750705602866496818101610345823654514996165998278036547636979165898929560385256197923832579519454419080820132865562548109486927232409123803836133854402200178432733081450691212543545313241489677597696067441887227289055708059673332172276144107053640986548147510226149633405653316716475481022149155439176068002324116769114194211471886166717325216584053329996855006863543889156636909191506036511486575581527991090029682043718633484847893527024572890701284646342313653363765763350072674590384431322634621918163713137169807724833197978085250227353041557715326762934515406229743726623875063942597929122721311988600948293521401285941861678605951890220107878027161653611274097949923390403947152845428455131781101423305183068641517920893910893594469967201654292799628454531340845985555764221380374456894782104076083743302689856565378541491202092313351096275614690891623585313853248852160831801496015698827484953353574692815432943429717434983575094395747629247557483743532081153373831901156276199841636384018828169952611311188203749316861314162460111610076139254849372263170367793305082033426419737469992366824225623263140764825247031396618027876224410525673543511455019861053417718595819072061415553022549452369653752194851702977406546266567756451919806570356914432181311762825009606958060792158012340197400880408584486794651262273684164191904329368955295484088435811706580064335626295841386688008328829222842507039511573216085298913252569018552843275926090095387559752108773224654331985708126015367045337927112951786997722959815351130870041778043345544977409144145498425469067372732946385657530341410926698836797073112147054893564952090793703147671987273449372761806603580947818617849425878407077156907915668188038293470980473537447483062977550001489551703369597321402638400243485267020754051773092951555083622580466290836015816946052730302896823132777276723477686343778682014947138656493393236403644025528891022546964549842970214783226690084417521042083131813461664765791337543468219926943047493748536004336921082143709755775236406923699133788740903540028896390231188673332101550299351693480555248439818410820320679479284641816707357848651892464432101987999829354174432244953393822159400915315710213273751629046122947762104018138634251009702325462356492669525148876447087667281746774431532367574143605252268448869065539479988932119554800586072593737957838669960979156914340952982523546430545727510268548411098808086129212762161622715044776219474977866369955228674162642620551170445742047090201688609375683174268063069687790689320113261568642353378113971054565776957830624717128148913646684459649503593983202970145605012940544488990552318940782463837395405732763013106644324650844667742311313325973430385264876873601633805393485647053248779174736642855856415898184662178919391603749430828669984165192801853793605187293039014682845496678455744433792532067128625816059011039457518540763119708363841127854891263903183989846632701252842247847818840897155325875610357901004301808214485072255482917260903384506561003804965211759305356458563387326653465726796356305508911329285739393598805592677051109038280096602571496848132208495531732295050246255599533861814561019421632768971585607324362011576061691752521408164051589876342428050900451259895276923137753618253609920366560783447154382683085916549893042974005348335662075367286705452577991817043519070764664521853111858300229161771913616111802436803954540643543742269342366155026896118461048489709619388406854750378742666993469626689762575298802591401148244806457625632259840524209440396516711641578768707260186974712041388220102203138940840654657427850604568724949055818203795771323818444662256729773446082338204187272232358383253630969732610061582765559955810852605063962314883092677661717178899811485037447962245983024336101216156566084151152694021705501436026559785175727370358678776662150112920449624771923435373535966452882816412186677134223129747109853405130339841851184891128727444463050452472595299376307003149819311934021805683884413800823048647452519224069871629216131575790302942119415943499486017743065555041542006318702111201747398469736884196459826290427069467460738258456537011653428836645458974782192455501635299063265338479450289862148858212803645237113117747781534840555877786015187068854437385627444784341151160276001821271272846811477828761622109750502209983074286380164198623886348895915439301872840969880161504487058561689742526332109185918170436082817249328257908208572647584611143008903988113858388782377568247640659143085291814394387206287125280758961528192146298993025206252272427179573987203523895734966027286906183076615331388485632353391199909840078044122713875355447007531519241924655498002531728585209062285696161994439853129436809060019673812641517486889508073798663275861390909780842403310919323879285180103772570258907144912883441247849671611720753663980564404921394103977235244880849216179764284035537394872749135837583068885099929667935467923204571138302550282995722302162266018432589019768780619867892527860311084663655699850313564619958591935974379487643516284676978536027453677900898898369405761672996174701605401586886557720332133018172988983592486559328502051854519320845400193277986943135808100638982874230032557657590824353966083509651608242402643800484547041576069872128183805202490034378147201075150479189898809892798946780383938995319952009593743552666484723213429763920367410789997643137726279567448899075772644367900252302044516850458261546269074484762303705180607637831845635336970058993177641722853363608744445403954570865166949366709062879451342731020533692507114975396001172634567855887020937325378670886513920144514521862178434818566561864815233866362258525197642162969539672464412770051426407945646249859808796229292332921815045217338914466562332712961893076065403951186354352047307183616765269603194654498761881082363440126606653472839737595945479065598017528311606425059054699867488157075574624702196943208699508835287882388161999243562273787561384773429782037955591804465191884768007705047449445379352857229619076329432520043763546131758081635310301823869937620256941760832320661746947015496109252982790512595794489863484365576343220670167673275902503825397027586907228831822784554205640902326163725278445727732550782840679307945746986691869494083890036134530476359995506204494157892633617928935519227302933630843755139235046193997408104440423370936056177624072516632967487846080309921649396468795159564085073782876337713175621242815761582293196367842489851506614538176115643605739435431301744384485501220584167111976731083718436719044826594445946212917501183797607238541681215901902461969343505263049619387322508418965956905705264211495830528539985312626009265397349817522345750725967841426228977122989664300473209890316612441509641907741333947003240266763605532932024201563046765712697628592177544416688434106249563343957301987725546061553765875017753091540701606400844901836424854774081783808959436181607930335124817561295850216488733221008568223100753964675719818316681904854872290304206906682472829408619875215323584103804459239524159360522465382706923926535501563179263200591376083745778942284011198156861867333369727843856373414946982015441324985232225562432380239582222436943583428607139701795169940024317984130880519642260879699622327494464909143412775257649052396139012691794282701484700306689436431858996231157887236568871771733926870731189437236422862605548399109262804242305212766806753277071703839982377478880221013779207118217961081512913009956160869334944667209520163566623814334337522927133223410484350234806861065320628044296206045270429742133585090917417925455395273982221872138416338896965901790265563898526104796584751204021003764829319060077535815655925457556353762503670328472761868938926857687779791216809237755857177192484739319155609134328576515321263886929278603086700484760271018318876138114081693068556443582614266058317670119171427221679575812564756992060478416334572090894173626582880346408461553811089598929912502631475641505377104776438504243137357390775074334686053007808673465319301084547237273575892914887897604171456500233254545684545849818069104205118970750611684400650226951974153990933805304089929907246328706970053398909689799429475379534994660419559411313013184095146263972643253353690889744898152898749329308234513298924659617076632195927142268616334332328422273350253232390507396187066651498959256301290109854008840729857756536399219590762832353663396621704319941644921833426619540209733327203246458772656765433666364749117938944212565847638259642923517346700315936239526453870083616072348011187067491843467400087580046674437006869135696926478338124635101248069429318955588308002911167265446142605840768949936650619771848988739874255808177804357906235472305927415826113888111686295157404180561383663722334573296854241588711541527058909561623000055555812486160234368114412069410968566448975349970342838028324179517326819775785296205236212904928803348260340461901157941669427246132349244909341463575886899025976447847080900938284407332735409765861159957605152547511621278766737668042721685903996254560521965047172227733848308571782370390462646312256020537801371160656346502302460248214682848482272970765048669657928963161597366598931634667633398897533817573870103123103903311415294363275895383986654497049365728848183503415292669538089586138033791251320608958299400344210272504354947687364086766398889444089875356846527844508756690687004080418276470433636756317966024336935751465019853812216498475525761005125972202442405592101242710628443927675762703715346121319459213551500089663893838875193913509796550268256094978371955093002938087616197106783886178619529666510202845429453537458219915777462273791586458730826420301021605818198751244989001097726516165602410970859290479632424927691854440490180078844749886517729618257317676800395814279084227826895274106955794066446964082827813244816972348020697537968505669912168158295127055048113452180329730206291500765266304575063741534320802721876568448111355721025432464344269947492470672847089843759598389709747030741051184154753417545259716302084326661776304588198111062610367790963128227358594006785040241286849750657129028024681079742884033462665144494549868295276508966772545983701929586741180209488553954392401082199732274898250912138109962366216024951958414555656429673894991164838898376164077271735790540528297876672355732677854318302127031581939382819993199855993170149077865775459410513120254568706363799631954078260079837164792760807837524998720513221996596148649070905559129711298580563288142069464016532964174009061352119647289483582188791498797385430962800433541076363545699926405093173084831487132001252640401068441162983566986320283769076672617829532746568918773009179663035894661457720187227222739163106404458114306832916164205853823048468907750284943187268058515829924958843527046159854161526470190615923699792760289790680668896045547620444877053935080099740334365840242376690642050447979795513498623440036423111337811869362533681776899735314165356395401899521045949797583305708333096417452967621807601369336872846054831528077580422814128832432550313860732418415489808933696021532983344531922602108672493776097064751169753105706749211143830793204766984641725071586575609848992657897266116482588718518790914078060214918204725476637500076711992096605794968836200563123589392041676164902123420147798365028305550420180674473863141373411847114724972863135717986397795474680819065953614965572407393626208715085666405576693507129921263957924244152187210761550599005375559460350029163716260183618011420543687057387759205453342842839637898070635917903525726366930597421666178541417997845751404362372881218426030827398301334626374729590632379151720440084343706390534077507059418778163261947617057241839229116759148918966743436045205302001548449887609446585460191026257115685903977888792834354367273640965072522969220787874850648588196693872588337275087272912577329575910864374811225195728910186590399531733388494867595681578226530903010575033153587214418490842297350414828147668052216235009390309694895329088797720306977025479854196138295854135444399863697627113705660524900790401148358418879732075399741500472437023971223459770182856372130775136642298352092092394371476048883063720583158685092933673749566651382144869275430454476335472989990396073635236030725986523415864657795984092327717946041652056099837758002960177987634566697372566521506806080154373111307224163355366071704878294118153034364957265355409443293985521130772071979954476288199025123355860109630959414554036946907033513665579492426099506552190404446457232584365897990777797494262957634215764263856841339097776303563572989580886480356346886751757072173434186761572651182769111734295808284601860671125265715635295837529059137377938526985989652235092481792937277175992605351367916208479127749751856432616737466177212836740996686557314170855737352966416970543857019747597967132508781855032319475510566401630237399034638707988150042650578259996703759978196650069076842041465656240798662049916298755609782737159058812015407013073313938370136765902198195917320329483012608797325667364089059523730043769577638819467541466066936978030045976005577348377311865394032612396070987872668754874096336286822223956356069492422031529898147454833388100646892579370785360406258102970087506617232394789510907849029892821281077263135169955342452690336183455304356037090866993740240378978209863711632689075677500804726650711925622020291879341703890599357081345494769518508820030274462773051952656311189067898997743490194246993560518788819159227072924165395455324935884376447719709002913561810616779066896014362036333469294139127523621359816828446520769337743739192338873689463329262425991732444021713380407074652115495300384209992320223874216988676793839021095437758295824828518993074144145418871929174259285489928409761774427304880318021758219336637933185956201388739918620736998793912690500569508969117232564379755044599418177244806423321844952978661236186111357878146827564179896521452250229374113687162846803322249388491709369791897947502424646754444458567823847043791517874979035161721048220318065470860993860753948872792322604020117783039155561148412680629742902757617392762359275440922405601128585889433746695849087647559998185487220499298865459044303679658622742420349636533339748604445905259614425546109778544355930391698275456760257096934197444801391724031515727474767841538229222044450979649141310890550323433150448237496575166191538763358377994008275301432648302726842342639697906145677170456838615203201029745315490725167782149093471927475591971844833992627729788945347097736003877195383975967930064441762653156364034437522076891792882879205160162482918808164838299574963832423224217416984325213771308037791921322425978237463986058898489898409142036050631502659961698947126214570071590548686490711550938628398636656578461237455578487270348579020543980868745926390175965767141721473390276848466062375798565998338175603994945252688628128291716051544356819551909250113870197529613368102999909712515946558702998467169917856593134903330474540260591592530530951000176587172359151754862926223446565051976151137705730554279620589289820581744187114345838520027185097415142692340936821934514118679361451547898261012738305576504346227037491824321343058138062338429095915112562935257210210644443922099985857167637116149842949920520285966998342682717683552286710211455077522875215070041230006019516114839892492849228399976539806639892046045495379284129191615119025879245843423885531967488546911377339422151744957012735274849784534170548551404980231183713132032897892908941502705829897907406801235743923389223057735796408638088963594572973164861486450866506581964693920168377223604594718373931894982471150881278012449445249177158049356669883918111087774759243382221778256419863704099077433027656514016184964741009352941348499113327506277858978621942229160749258075731268843417357481212305417900209980318933730192439576038348501867995283450029309680498374548480383314688911462698926945909935692063849367093433792042432569124317997555930284183709587704676875417053283714339375372169595089204151120172347428668797014240274611553462707267050335692596866177917308847383269187295497829710340087353960017263888879268354568857711888030845292092309642670392501882707038571543591126639751041553387049489089666274010580918743463481059401792588482232979463426176684813523324380831435321049133283765916836261650289021148828962515478985121059372210323104862334366739465145832054016074686738917368829587453792582091791362855310539980940984213924637910681846705438274805067364091652550050023662687440334146226242532326272503085946248412549504037616607233931907328125935992472225129493899431336457102185322300664219112443114405172054699808354406403703901176183209023328628246799024115968438062055460898279404359649073210918258065054546082190261564795217508247284992640686430727574022610833812145585133235834973416622996194627675813825624256857311859691622954687652449472480463447835366454592683380516876006183975063029873373804457222428886923351111868654171247685854107095447869612803413060141538367313408245122509069390930078992044678189788143504477150476500969301370216448874142174737996640987651272805069274215837973052581033681752943364817273990139400003254007945647148776959954133815198090780128004213689680490416135579695614268820139139908397008679928391512788096295149256320252228160130005160987111410656007454604449981074245730422715297993777674390297290527389079097900654361906526446235060354681618863015091365921470622209436844794272043997845358653736372594556554885434472377170302326273119176317983975006390126395733304347780517813341284949124085255045799195500994248290836245963872426860687258611592172984270096583445872462561511959267012163149125123165529410584198711594135989696401809177989941970458201106872110374289022830591673232639334078997405108320701107274229339467954108869991300726688305773307397232729633416747374765516071265383574142429464453569316204690839888772262816811165252406159567386144131461818119608042983859496866836416490532453667013565909467755675976835347958353555604278772165888328357231894746164004230236521694496461537488650510568664372562755719552347704182930757289305168524118801279875961955201815640110779158270778703310007884135468431972372317440890604652985596832403810499115449204353426617299058657641797466751006217712032494160157177072017250457060580954566424991680002616111159201591712333162521032016907787889716759544555095378442521514780949793039801299917058270489608746202490035753664950419527380826993591708099894977557991471969584417180701796315105100150526193622758849304027354229295790258019163481087491578282610280782648460697131910305013576369847889225971104100373355745264454192367665446920701212581971774095271842966431923842376822845324744929768555915886433459760850585272214350345882656889191344087000735127951517957930920417448326957471139269254975916333610100889269994155331021792022268249747539885599666829449225713654348425323182536576497893876221835135489250033425824809700852888227578138152993472742205458113770760708698510685110891413163735412419129439232747305627524044751990754441739629804406464710175922276864068413689390459267416066297725175012455123883291903687549701695128982250328133780677133077412605520850661406691122919648780029197795806201077894032280903389027370132233337685258713473418153383920493644437943879830622176413727303268068636684211821422113175024010962543304914644489082262768147595082511942984677392439004054361342381790419857364837012036234520088057160668624228709849928396191985294412681097867211670642308764746006098076592779684880270900448541304827036884645890664742600630804490452805494681091163347201916571774186748811016353137677179486171842961437148953135270283706742743434017509306584184230853876491122834052571812921444937122438378652120789039745787772237009839120969217863292506608447087223134289336972329596641841376270975440287114066290824862306434189347262944219298531515049560870928365230185578513883547744126570596306283934156266079235860667753534988172852775168782348337750623358218600342322372626628882068739890768246498065965209566887375748521902812864780088442052698653656903974201000656208421510928944200667572445818529642254710574387743962844889916253102368848566836151473244192349835464310677014030900331388918843841674014846465126570994230399440536239242387738907856991757243993430434000604000110972771499828029958400497954624660129680510602926957873860667948461001321643773200706487888860221212124220444943881924014273916088317320481924478655343186482128545419327565639624011689759924422553077256252603477442386618455005097165716150340141612033809040262598778286499216374059026132938653814378956404142618928975882229868732605836411599822366650312739963187678383975415950531271067805858596250216274377606116660085516231741227474369649371271239371347747648717501648893752190328740814026540157195794061707651020503909403518785274842163930567303167045478030502244982157138068944125218555380784806164732521111164685618225976552965002259938976768785018449621502684801358267253083614508386164177219086603820976984766308165274300594171108422232777783663240196041030899654588161418871778850460388443547364594507299139028795596186661201555383785894061682216190931832747070588163569358835305280827743965227663600265493103115648244161951976052790937900018688699346873536525564309311860190303508286668944604063360992852044309869091314786845965823099220195587271202864016634265164188183405135215250421868695979244464295517190105706121683328689352894159639185962121392462220701575104862336671889499482002983463724781672104253530930256756259411107444083044152357642431015696429847426041858269944394401649606279545402455062502358406471241146153563424063861979163031847042656587812835837184330260497533787340923623892966223570611649650927701879157010110796431313555938254233407327504212196785201238082435428988192120152980797123455423619072100400174237736966356447397924486336275897626159003259634679335785509265992150146943634998384261951233770798011884748492655488417156302168084248970943983235576586475382903381727304440823755755546590507503396462421857945811202211509142728916568802191229149832977822720382919551645949067154598123873729019612854632875622800255688083433706703700070870644946714944641879508301474261852764767092165057090175555116485923974108879994134530563052599603910821546407932837023850839264980183399954584730533287067279954153042091597497443047350778192710990943294064447757722692091646497958239485749705994191716735704782464984826360158099105472758008288754445817533412741869531295211394506661131503434647140083341621370284891683157589280269487510728373619158923054099009045545322270617849691954450012502286097378598556694056304917146733406331148877593719751907314000271770822830298456860916685242930387875490763501648520266241756530725822290933428733255677022512021660213795825439930855615032312370097415625486404273614855532202199564867920344590749213148529982945105311962529875534248473914782500794229672171858710958261852760162731752312500194418938465837796764980400109324598538283534213879153050378405824197648700144266824438271040444185993376361714018667676543954204051503740885435360934408216817781554804929413100503079354925680705043535274686172271019242911710143762436184542328916450917866124497428602544568238702793858326135374597358955009175389296184629100394930320261071257487555721885908116069073541149857248026380800294453562405433761160546596587880420466923443374345772864583298110025327131868259060280777604886014640721227884913803564549459663651585439144511524212541235102971373900185130339451361036972335296829739392402618725457103549786255813023021137862460286654152346995170047092262445655872890554185846397530561960364279183381315695713399346536607398635473054780683421474492167947720284368863326904488224783971374964548240800565909770987417431709686756761806402375041447739457979196307277878745076891537505491724127643635059549495319560407231621276822907431660039523267693252227225454620809635290260366227055878783947504324959772470169551557484641058929750172975540563834030492353810661605522728941741878685673036362893473776526216875395168522454993924765790903943093591806987851291717870121714285296922726018744025813929775947006479766914703944871187060051740689547773934828676443772859274417025000356592857145381327410507771218849370777968316035373025727584940526961925287111624733555932574715863375692812720221610999914457133616625330897977342053432272606802877702904446187357332561257096529969744382748945931465071362153183661999477803875785518119475765411676805307197665424934192413156059520234425381374558774406092740188673736977005300737788704887340697582051894352062359660958539130296252368049435724100061775651324349756403909075424210881144625659967699019844274019556601543292500433173975741787934221231930474924398845851233043776317644793400912187816642863976388844252562326159659057547182802960801727786378909895907484140134534094180051303004779058878455576435491631150033577870866387586990947247882883405471624629867655677573666261670642108851629362556581417047172992198702978548560123152443525892915817491661649911808698762736716803237982384701042929230270027474914678444801085624398870646795519196940112805419657005160198454783729008234035850976736064758889497042119446531645153417081082109391816009690348972916129375373242512402999583188659591351395936765752369124590485771381568186945957432249654085809122100226766860697169175579237299285249443451171357467154685514915665835004542176791700786637683409655305377204694888860067197746873157889307824806724939334889434408374082239117378981112891285198237093626666469533877698474588932533504735900300341069543311879297503398587652638212716901670703962331962411544997336032215687153771798962447907314295332777523165654248964343166829846271445398195529955206898966554720268122094020714551302329262374374858248769677884377521506092299837239595462591950183049722536475737526160353146297027494223160978579336171260780573003226917766716818275876541339029896146966522609236062024130986527123516697746737899741009134066183486805920355192167141558627096494936265104230625033676698777026341795063384681919246989619493631242128752623098312373959811893859038787287839479869203754283433961417568255715336830898706796722446443698930225642788406875576314575482833366035718079015112304098036689005243299771179320704127329347601764572642002557717473235732441096087684417428068646325852021218937277469729303290563644399254842594292412970885211665767648842999947154454054878714041151122748814169382554433054425101446707694762701988006040985628770076219885031441241599777539690176279141687605447280922922000382910073519070415867618688583023657958007830638753237546667943329063990602015861569064023658206963874741265798492838812368038084501710193720779766276294819825282921816372645237993943721316033390364741225544753206939250928840636181609387069258782525464974148758245970996819194232677703922651971924062396448920038171285468291774282395566899989888674657987288772119254628070687164807352769821636455486816411554290304089149986303031593113518011288671312902309920015036834077157469999894538585966313253924770796410464364631509927041915204992617483610816269018689943777644050113612638088037033720670564371027347076945365208302658977728642317576274782786073033738722291004265000419818541276183689596124754898931649930320961789001910743720261579364317478049010768235262894851585520899641194475743126053005168680964178464229528136606308131898849988156503789452119911758314762132815999294264510481518198010233271875691560529090545632286560391994788889224644492638692146677724596146679190103722179965816999542737343014682389068475502524457510410741003146133944175970312713658911454212800223669441948276706945968705663577994511955114232898945038500951621930536630412016170341032985172034890085472355187500251055569702519482971511671999261239765633722815454615722195693344599915203563479450767933032288954289043442701136512920550703317477395806274963253371675476171478028765982196666646851542641307555148979095321871176719956886741188567330185887902099914505244747813262219532382253880359156891069663616536534140790467080656708737850109871145481714504838317034119829300046488603896223411774288495665614947067926048273735693332349316332402396243385566155122486212898161971787614262335630405536446569687154913907465937337517748116664097378492292790171285357704335612706857051711768325697048851216956235648672093154648022543547848752261764465596759180006404787652429083602039204166633692798243513816256036934148021950843557373044087954086317282049081732490183992057427273202237608484750548230914883262491139138399627921515334732236816290317359408028017307797803199433910459951599409244191517676736912117202134457969551635973748669845170834288748929720368032404124990327956812586250949426919355256670265277420594064704703271829198280603452604024518882307751968785767952919804544142934922133695291711448299172276228917961374598415649446583199797904852673962996185305060328292656227894029660327264633273795607928083828154235195217121331217511010488233100980401681454479506120504082102196262245519253676318376175311811710853483160983721602906978201843694648984854138895239007816653309903769658183858921801567828015077101444307889003118763702735510174811795229062330879186523973904778016482045711822632920848420377889921531813411376047467152319912797924196845226428320736396736933377094910873551376615678516359272063188662173412020145826338228575791104787381861192834087412061665714402338538969075266764335035313057810274915959814212895954403890582027324966697511956456552894889271965855192778191409791448804437980072338198571784087522989525618633535549277074168249136053443125026059726917762584393048502903567006156259513518913476106530074147529681320295763151638608783289813906250510904324595838658127846465663130536356874650235142367808092078202756953085405518594688847649087959115338026391815743637166387457189097784329428538850487526008911777708860090888069572725779685066586350865041837029893025229003886003903351466549006602903024810821371228416925421652028204059854957365438610770194517989577140044108529901767331589579646236524893214477761230902225425631536287510678511116405256542059680401995545541621608946578592951132096150424762700775487023291470740875647223207852533188394581430224757179839717583544030149316281575664174064948766669860979624966143649131246312198266396356715241687101840245044024944484499635468891912080910741358643769522319547678914646746705959865821886820238026780124618728053639770602632057935701673270265938345544956927779534835759776332561585805782765113918291170671135776091513769205987866602975834886851533825164457122580254052257020141776583639765240001298863343669895374563456046381187987020504824657395645471347513578165870803780587212976750655036626604149055457749334424071103426439162975846916341633041638615910705508949322959420992035377321212899975852991359722764315320102835391667380101459172065683279348535953301664903583824159561666526928751727206503792589642132434277469617266771570805521624723730343241557339095469362005832297824308789035003969158910015054709508335999355030643988042673057535663731262774739887934628416513551892325075533369566056640191282961189498743602687228158536325588910600757528761291162427405525083931531807783246529520880268262710570448132006623891036971640882870978260402822305542294940380290918869853072832041404558684842423298016518954578635232923612892994228600296661369152226971213894409476236134158468245005207104588063253011514384447523166464260237352973570264599701694191025255834434401897748730024497440641816859426533300425693853995699294519071487614022496110778931218486757120882916028020698799129174598172460364165018435547581858590297543583424232187598238636476136263198302996897781056297990944240090409262649124469571437633662675446202188193637300167049620787153169192223523213239953255809068456207729468314727709491455454229522032425577200196941671620331002828066625416121112053130898591950048603546159668877008541316551442479223459392609126530833255198241047946698829813063044283479590789431880387737339066156074174140540266971682939356440628422557133301348860401767495854648977017152893322705887840447117004837329244811973682154806113603575093476317102779305241969264738806129628522285160746282492003891624219541474804150918634956388133272935489251438848247104694159386910239849038601982246894752185627119684877190400063525831111096527255121181412948193230212075469074676097784461902119613163849542282301807344186969464950689318441494257837838008166676211426737325342773921452393523920127298265175465882926915745252600267368313326668612146491878149969081925304748126023355422866548161135873487098374949166521652270897824412949936105513132593194849501494333599050275110971038590140996453737040538842818554251387785252162214520950343513571830988118608509136719638658190697485361030539418049967469073748248385291027007032331600057565537385050080161730541542181487676886368156916361049308296792313675247444646030532252403899652443760642253425527536840727796820290072001677935235117689301150135300238431308214377635705305979379898381513902698937937134276870562318659587836836895461162962689354238575898347827270395106586081446364746371132280929459335515282434174588323061732270252646637055147135270306151477044796891547448436094966782424594492210451292317603919930236766010901576677211564468734505574938185679444004220641006616131455616517446490294062979107918898010575504087731947333852693918321582587627039600199955956974324135363617463206928950535676815461922100191039216647037340219198119767813570239451522186633734565773384237473770190543596972411956694817748368618311131394346041949878207875100544196222158387314165604204626456150241545619986507420574647787991442949519971363621952899856214153081305726981541318335060368810300061267088276037907879413950028166099333017112240986796784956785770508336198704518080254901338230024471543840814517379993332335230489895135486074351251803014519463322139068400507841765853994805995505435485862000159099897566437089176612969395241866275913838249821758774404704327777509927389473674704519159908205258141426148552045223874348761940942053497588231270927041573811979688764480091688208997499137568777607182186502634528817389008629770772202571878489329703358099122494648714171365568127707001328628108535383541763590588488632595086105560447739787059730849176820721517665165965018698051210847056069899101338547872234503854414570797870217304823334026622380433268492484157750135709515471149212903481062398837090621555151642586530130182703010351896482744289750467674552929069874209038830759937838123820936747498146691163676428735254364642455463778994119022278915875878922954335105511871612687143143190318401171743386118810257057126047805624009224644496666938819597160432048842637668786992979438639772270089244680352298576934971784610017919968969732914083148423239222155349144606523076289965144007015827191019523633159445544541275819872382609220836643601134567658011458091142025434838446668093364743819975000989337002716644905697501800913911841576694426675110879373669997978232118916390639663706971006935845849419906906837674948529859679056097705399850483347930206253509454502819560873262531972931920231087027684831865199035633651338305202443979029002416044094418805199640205091325448218609981043812449498122597961140879865000801906381482192652842576584829722708744382286728372068099934363767867049278484668041211808169303904461600674435493460690519197996132536700000856075545344584850473232479134689411488092009971167685779856919594796079015289833271273604625252388807737725472535263701463177871009285539701939910812061965071150340026347208616894872600623115812728388044413856129124701889622211217658441232601174850366497409475260567538986636720380992894935119300363585899005643843033003688439013971595402046171139778583015110688216522371614947159966745674457476787794581588104917183435034390436531909390165486796459704170449872042872447240138408295144123452903317340777637570726642669487294650470177356696860853215061967588825400820468235013391509802799688863959481569965373831385412369393396703724250323229605537655260501533953827895645789861358204951691537607600925306682080079204269823567465665886332039402701654453619136518050715766175148214266641989338464812237973549416946018625713528609512760419902482138945444220934877913623505963842214174044188579321509532171917453617035570139712864341907077817028744043565814867626134156236466480390312712194238921140534565846241891737253958576445834990480249825139456905113054492065932534876926860535631201049315200675259003031274484183404736826368408809810204474100272120292699483644544156965271126959582510549425958913199857486505849093862859247449368802488576802510088440364588544164643466638089323288859249615154578672383406929074336180656406789294132449196790960919684551829047206169196846419528601126903704988894840478228292079098705403765035199771242717248168769925139320708630777036529093194720074373725665846377391962092472394166081559376886324994204062618349275400311735081922397161191843795462627052922974288053886183289009202044190582162083457089283742978793993718763781639269187324434103742867062441811573368426473874959682413702081497195393374163703048089685510026428835776230542283926895403629181308437780240736162191567681046644736179712131087914763358232642820698428194538485899632665369087691551363714795937243504853634133664991288966971622048098995958700632831552154857452445289773340386256205087961945201032762398341706736831982270368546756278617979217850614111952536685717562448787375874003322749800827623180776215952926327053447456532155141385704607418237297735265014690414175209981593469261290063443662935851810712393812409037185420323014847164074778228226225964540799978480572854877753315024405350804991595003405420554657556911479242744306354296004378466770304441310089243168445083614827447800640537641057844239719172063865955894758610270868742377768749029249163007452813888817921520121197057665247332964223781475499293464294095136221251513811281398816059790996694543243896563078210192645722208036821136902793184943961263418306270302541375093259297795965018538574849477187502690420351940338210483033528246407243240138802482575296803029067318471468776535563216400047831935663159582954146522773923121523872516250983755426428673954016404206466875921351167217863513179422654180251041338788489794463102509126310523332833579498429633264491880524466978733135992773746768151238152417041496916651008950940069657575393102038084580956514389483683068185869100926831855681474172386753105426840127217546552088023883041074174170029131664056335949800989429152939272833877658589022514417212808631517199908890264226877284983168501417467032288478791139375308877067161315340225711162302662726929471425302980518370874046466242298646761692586777725138428867884304730822282287438410059301771170046488622431828068870257001897191139227731040725918039179835662067886742986256677142591774139620679796337422819597512469609089463630894065319602208384052233392738755042884518342074934347644947659565062020199334353027556230296988559913395724277443142549883297011869178049453549210234895740204334486516805024046570422100303345663900733492676626955021043399832366884196355531225296070513680962023940875206658357953219490143262971060266806831685669958418150668879576190095398337394275746054747193782907353161207133572079267628287386115107287230370836496880307901877203596761167677311373636712419933896086914439254883976958907679196860168535364991047029143397365413833221493396639090945969272136692892465761557797978047786549905283748582577038336980652100362615878311666326359978959530091714967382387779404232590524647062853183292555358678970817699439427773657311896841528941463979788554971596875999025953257922059764848315544533816504167213025892721792521439638986953582175540407830286536547653848771658093137012835478963389885674256194553554857856182623993135168126461848575693666539956700686107510408489383239060196473173472901502374458981910053687451160232927231142455024429340293950780201175395970858909292098994695386471239712212381152058006692491498498793441621475653029559532894891623584129826512571656605946299674363674241430265258809160149071475923210096960090012252499740988106451771587662997452352091725727578597912979416305606798736009843954548487469921498710696546250022077079767695558539448512998229045325278027333953867477991740212834881919658283442090141043177351649379269979411711060755234254303177215831553481766293086390434297883044470483150554008514479768455249871053625557560504278768320041539241115293175949837226234717533848190744886292341526336100646026981816188249525751966277600937705123145136164896010469821201547650733119180805181878720109607181207506009332794673618562595837213897093150985109159402245463779763648578283375468410850188468021952796930589730886663970510457777714592534518711037583378805473906330943971778962669272233545971364236477569489460902114454123688756441538919516529955153014136517335366611809235157925443790456514091573620536762230240816501481471626622773990285478435586515179533569556259651870283530937026135120340613038725676016828664778587787254441064706682765686115985195181604397212323718252682846561003420984493945854103004302397128825226920530582893187299830602010389960447744592156532173520472408107527286399325474982311850698982657271016717104763314662974477824585234226301642609789843523407625251248538617851977271492339802403736157234356834528910225847756445841467685316332243216522617521138643072146910248002180355110527933232753480799522531541012354220969198039100387788222329653834269513309223868570619478498364622887094687300262637662937039383302138065564542817466654799247623035351681992286187065044905118165872402999674154526179020024387028190353578330674979241378268732133578445211320419999857450643527776357383152935493174964265569271593194608895081248598937144992723667067359625136149570300479887623528282995908559129273320337432334843534654908860506440771271829438376833253496344016155852527460262389128716115888282313261897701026175002147825769519182370461115136488247071478441232374107300781037390282573405263807409398520058394640665119166737375669665038223063058709119389603690545325553635951597445822040758591517480780338366248348984046223982752328112734704068140016963729454111849409745856112612919255701146425845311983419734567342976283440273852276479278294298871069165350715791672473912312665180676429739935421327717185503437208683586749182151147437457074640380898951535946111297798503178159304345864087164404905837372612088825861630079281363700412226761517865886707587119702083190091633355604878243251969357266703473435539135883809053640334879814412070497991607437329430020676545664014359303966711151487059774053074365988944758875207445685034065986651389802722083485593888824753120408610422018775813203450335897765820833038305180656551527847848183093761048511093041634455625557727800210813487491288594282245050360801705165735581254171515248864988812761907578357090680425302310337105647737145552742714911797580998577623892866625321623637295712650209093947328217538603579856450115659894478725322561092950031520614319315389729579192268175199509907054575451166738156654340539515760491792976145194331255540040220955036815898541446639183436280825090565406257072125513132227539277186148868155345593310920235978123799120918384251999191115644587193295169328070782059915433685536602331713482669499184489587352611781825150651694436325346382466526924967548749033605958543396119274971108897516127769074700299976402313490220199432625999256686745829950515994938938429531171802405659641475718303552396007281339329466175118288979404632436627712943598236680090931833542753312340912701032166601359585903606859795318306815035049890206595353330338434642817971362352145204718022451956893481193727449896034775142057498940491721662625131069998043863756282829626229187882251521514939609591510985109680517399439557117049302211873923482766049150345361584402292694082251439770277219253776398013211634047295996645325693400144439833224176381918294884300400292993036890052121726225405910997618555787164230172336007926665237388727359875325253802955249597405008257848901518811491970598071251904240587315744655553110598978580554857729024681267431469850312976559717146768940786748569707218637107707814681626226005682852844566926616554179523299728410032034103421913677793729515972038375565685654508670420700361085872902099397754485793181895952793404991624866599757749148706856014250243015593756634847922699647454934670464595844874283680911430636666482743156776345804571855421541591651730664357863590569354247014499872810435240015675517398213368477319895296859532138801774192396188861682764606086665162249970026925605106362928006911775350745591647362933821979283455066232988531970843869684247731232666671381022694791787853909891581750375649823222054274631559684180208598322244232021139540260800805664158053177649175553957692723854361442826136835673462778035561123840807786244847232434491120134260097484029705893168478347267345501592108460206384484773293995829867817715243017991675431565401904442620728201511576298780101116800616571217852406377455249060407670907792120932720080309601991389314944992842981449664007493746754522760239065019536261553641152619173587776063661532784960247126764195559261266302624108692140834255566331691454879593068549868049477663066198995857887925653744289008768254731720263959715007302712826480486936085596872630822738943798890198138724604907759935082281240255822202392358919405634125507567339244030072470645554735733063132701541518057114414710044271024710644274243460783203155801293066637125014431257009685544893005546819900496507877054723050509842230278263317926724748454688629763164749202033961536410433595328011029725304427928514211700873314351103485668598086042614367181575925257575510104407945071167581222779984525122738536379449299944000102228825339342250950139312960288214847290310469136633776722790320619071488675513955172837533077451758445260725848996665290676286259566188154888246398925976642247493154655999887821483780343798754065353516703236459790788933430396407359516428068669275938151494060675348282714895819132562158487604608573762813004854037304780150957025081049958162822364992512924410654251971892034011811268987773043682941665505120506231387699969069446149522174215986223172223925543566925035230602058963371012817597455616490984454666700689513489633413424011852346610523555119388411409678965678003422381970152454054494999748279305634465859901074210185102185531954613268136425802115659659972234681242927988324602147461467852117495830181413866321306721162538764938257941922001475575104950787550899005382555923674169490939948136509132375686642060235754487014171085236407197282038965518633185747172446078346155105446441723208243527038995442752131854302365085235055476729868492022774353322044056604112752381563085456217066827691481911840541032252759845401093352281542041069032185707810038192201122284761488226694034266715479582957734744210842640356381477603352644174761428646683454648804993974841546812492452237693248925413592993429346987505845897803677579509827998492650965132589199580838468323639616041514450993189385410988301366797919935952238080854816882667215541265139026180135830631592353425234917585003376155845520910648399872020270517799129745691543248885420653840903121826725792180255773097218391525737549191539681188858696330434627023170554007462530731815309285983911370071624802932083551286122749649828427443818402562780785449136131235076403363086708400613930229438771849165356694074639980797389173473042166616397436785443966822382098599061869540598208574065335878181113527881261092845207374577175968653064086384901918846427534243828023126428828271821501668487899388414231189430272266868779329966684201597823634085667306514823375478326132429496357804579641227203599166578155229650266246111348554352031804313428600436046886499220917922835735691659381712002048535320862444514285951310994110347197163628252347649340573934848314251032635285811944416633213001716588362536891782337172596415618774336414973641535498438560787485058951806847380288757636795388749409406882601630966806762241806881685548042008788940804429315814481023674891180779224000448121293793860455535141691859057565421773833069830876194937286736482301558084861810623107735409882087350383445847098991072069796303564512382476418139556257186147762536203864080619306456963891181103787673117606863468487869401345002706834939761152229471849204083175288503118511199999280331436640386564189540856332883698377375669238829294538938523923870208911292111677635875948629764827037185486656748298769884920617837288229211299864087574490589574354374157066033651882064520081243240557461434080079875620674367170995832616850334272774569265194751939315483866980064667403522679440637437369586914307224851083891735280290991323279166759133584908956775488326638255584976395017549230872074934440199500008260507706998501493948971589482283938297312854935156015001783388121345161445106899406644203416233527423019784561907405110763130442222792575113975692746023472614154622985131182845673228471784313474657090501364011498153199554154140340476253990474330877148761668842452515410398644048675215525804542317976838105159920117363603774211185761851665983570595725127064545864632463918787254775064603639464069500595832418112186482767892557126795786005332869200316869504628575860139566068794676843765567977989597023972839953366818521953863647857705364452947806153547518782850379355731004266925037323405548223363543040479988421532633339216228742814810157938185307513586132111461950986280569507905918994772035290865602383051751582731972885511361210932534081685131958066610195466287387094220489850635546485240726606271442684813978784948871023258061205850125434183078125689397424701853756275489752477549396743046161430171568504006773736746035095596134721335422991378433326830221954493595283503508645274996404434012473601172825021086517585543922247536941926389237852890333291867067260381901385648747018674514902808684257126243429902183257283981803777314248518731949671543461288618491101265923816341208197316428689911626302074281696535347084586136053809502787154344240958144197030920425239300553191851809775874854582670640237854417671385876654938302385896771373913650877431300849107730859126656323780338322146263786409534143237291561843922839492314264632836823582506334271497260249952630120668099934921224414750012842819781223992412502801439358683776262423831028962486454394021685066526450864912766097691970780160101296846827045760870892276303752890321603878405372188058669827500856353452275819051691303330601699685903440237279675915784515142797485181616243565889693283559674280584528520865283156910819156382229889890129253633618673984855976885389154838408291502510736890675234705966591113387290388324515202691731725051298657948911929004687953285252691969408258218820369923274109243213595766961982283298654721512006404934736939613895747965478061488518403049026895628520939633018629130177519938041572114094519054894574206481995958079446495708932512542991077050240156863358801894889593158286534540469514760656949103782472395652376979402612226518296611110912638050731496101872879323703952708551767245718982328935989504776221040891406743245217896669879240987406768239185326344164077292245409304086889536204950175369382220066802211690582890534833687153899646758079183348704355346571738729507433342893573071818704642308765493389770208610871151176294006802684659573594748980963825708444554165037007764617411654387949808227734277155861721485646170437869904971621912112494888964406882465607211046190633616805051104863797043074689797956848879166164206103965627346536467556035384009261037247636033859839904062517086616235334680694749110253621750667887117744519288374339085583305536532952492257489923312154717845102928669630914653624138107677266031837386816906068066710355372956743039074773088875777485593367883691797911306953824133113196367277915471696974939734754264765427338367224823615673019648449535744350949712659510537457243765129850236526322868346196019963642217006616822655303029285435217128470572453979285138385814236550824147535718618055261232232328946353380767357881038599342617324157468011229301986275161552813873460674111460219920245633655063485989448421046387676441074046996536281878993004158019738341240570240314574003178900494673503230732388833953669442380111019980761337312796891953226781986845386509676286209696185661579688655997649602841604487634780582413593656831063352770739259502184952087171913270626728449950097992167407738353640267381201252298903611502933321073585633535192385051003414957369232768128685221993301367672869190065384747617514692061762026995658703535401199668372770320167796292556714628890753783615970444900765420674742802564720095554809400080966392668074086251227238138165025682944867549793991728571308068164856665145221928678740915005179514592081381515027238038827551503934737286362908712216888038332288166918993889965281690767604163348425344501601065234273981715281507909498557572198488432332261699752138200193003661040128279556408825330781364188268565729414915292210937184584225598919536060294646094277152603703060910021453959629582934720240281240865155753339153264662760268801612502867032847721676530289596088218889681014937403749839984960678572877262739995198829260725302922002187972357589658410530550296360641218360470104507574146113619561014983424759180970614410382855588076785511629937713413063357010841392287149402924795599624410551422099998527036483908985977814523842987429956764343554793126155784515215533560187698542369650055822614604960597694472082116004214323992353821668703957487163602489557742086283054606618779168169389097938372675028740576959324705833460430591967333826176559151432042910559731309709282861628331748427561578257925722268240072381147763518547967539297888102604268550464844752158567811872045219278742185692865314023831842676708851775474568163329395212153458200132335194974019226912233132496838510880721692096085254410750773944329200398254963695231876296248875811956460171540362558019445142342042245054186744792867963611346911438928266788164488253734922795140698347531417939187049558031869634613112576779197181877365441183513896475751433168559490300652612715441516957774998190510767780263577437615166640988276042829433132717754325730791412045892360360864892210716178480039267887189152365378843613039005348354807508608289594028131664209908386352786903927109362231848285370146042803458484495891095132521313056331556401089869801859276918394847489859043647700883106385489019320913346614356384278928266481069348116343112129631368217897213144780216910181898599883188564536430360195449235635757193523116643129749595335700963892383859613275670120906817873464083981630275146843755616000586161299326912791862191839878545222858717490269495658791711542900292813121417168760404751334485983684868656327172967306234049055579723562246927796230176032390069135857926986024215890269853618953422732394099716173674122139724539757734731058403835277245395849518613318279163314337555614029797345758983413062389457025552140080080955376511008615745682091361529453394730224305389901862275688651248502701758399635648451604757890250715579321135608650446830007163681517703547499524644572458803132744602729132017393774459344240291111793370592358205311422915518032669164318885529293684966553086052541579506906015574896894585778452429465031840376587660075918485243193555007398545941496646720879752058962570372252838616032648473440066199695214621310187477419525144528215055862722728064285369023359454298584609029611311449275187438568481706537747195214579067016943218934451517902818280476170621669566780612610014878248937963397253363761826647836100386039026346819387381092914062755552305787893462632403904069246302453795925765133538028567327916479199461294200008210438845850595590349043844384159171323093523602262822245089274395770284319587044977904513441879494728685214666429622012279511008315213758480453886184292244292911623771113996592805161758513436111469224969829996214965187629157391313757168873919131212287302439525499943128116253385559689382085497158432872083817774985708271536596194477703065405847837662685550200957408067689788113058051302084266570240224855951376374580171739883245322881708335516843324748389647635458640045732264545844972784958934400846424404095467915530875876282842601652597448824459332450663841798665814748407323955132742502094998888575727402184362918475920533070978866706126553016504036555449401338356155016801013248937458729514307054154629600339961381317844534228252640477548881721412115785334057807072334102194105448908643627277651604800194451185849541445718017724597434626775214519526710922031924028747339726158078313762996084043938786395005186603271029294221693740608692452485061678135939636753326857655399537862303123537781603111265402339312758051989302687025987435514495302341647072799615288576546768186575305276355018255893872358266881536879033400886250647118773432126661208303060787514552142177909938184915240562673488062545949717277809250869704580765080139050255148654545014773053956936758578027417343119140137362395621038620973351669874086575868470967037448932443522569389701239438268776134830897842032108990465348526944306176607331003905112170267967178086577925400224557875734980562545129574628055683887640195048605963443474227851714269567318832568967788883023425007617103712928211741352915607582904726387493686559980795848000119363937095279054594756854896492558070938184775686624029609992547728162314017900208014514915510171430482182533630408358076627938580626792704900373807545441963896710924421009402624419049481694687493870584384410186274837843284932783727544004599396218457117463564695959499868911944218768868578247218132952450618379640982879829560988568816414334640166738606745913430758478928688694181607167103636908907971516618296800675703368131401866381197807447017042743605717082402565538993998086262018105575097053860802248450151362495326310882128196738764409512727256379164118527159824105707630652861806969662500584516993577281732878073725659379231118549230376535438732366865171235304469799107376080824898150145254026259964018670795998931379495231083585247609349859572914019976404747366103973208452616756561002985800813035528018325756751589168743024699269569100844826684335530899580914974629994062363793651866976017916312513466241813774177350196471548105863969911024840999250908403544313559160597197535051528822032919961054196590581288909567831042712747900549783136709826965418216177198028631861284559924295459619827016945237631806188099545270654967343053807931476134644871018859797958785217547061012221350917376893838762404969337412489188266532548767626741655651619179591886624219320666546750037866163095101392824679780201419915393298797382061497142399950150171699349225146727325022469061275798774572505465542418435754541093794023509428959954819505241501675076121824375666565090838309030572668675620561938080039040157663232993015318867044665985441445158269426568026098568792605045841706935994190498342124676169526682654903529399350698018129845427807475779173888242251417145412271121660419808355043846264807277265789267657835679224798405365233731142002497632009619866722438626877958566988064158355936006596249211109946663787275446957288596221749634703030153159177566547888945923920380718353479109311602773300097558339871265812398307211751520509178253110470162403499979891212564882561490739031658659191686776513260416057901059329446070091857105749573554231308230008885193286515318308858927280113044191187205651960335817174493192420239784123691611824096093456582915785421224228590604179427646081538086097291657696818218077919432175342688143727291459764573212741639880968028309392516390965317366638209547571240741516159489815260830954512370101358178397531485648616848454471679533745854308296700286891850421834990595020463860596919792448009169689220815889110127035996401541114222401938289313320342062747248769402060499906541082507829105957540622055522036805834403021571586243037488271892064654643857300801497891626253601234035764497373513042334957175020860513602805106104326951235781040693087027230677272911583945637190186846369204313937471222447016618026115282561936648623252370611456297281576420467474418448841648055988506105720245341317536251590599864558277242661199923065544030760175148750729797150768940976297442629909529847453515770737274606876761702256639703073903599338820364741364967330612077854653659832246495046108214170105883681941147237099705074987859995088580619234191335743922133376029539637479474379687560338603926021563070471924615626506078164043375698319601174193149158271777390320191117147717886529796549253524168007348170435024652680461149343062856151328902687299274121082369127688776051986289894350553384757730097167853665730173331395822006953903093845607150247310158801782589380920714654387237284706941830807381982549333575522220117311459657870789185894990132805768513887719282319160444245052788837526719128786724260819322663374891469947845478974589227112132671576865982203204391553639983414902146595017713469268208435350635036560906218667040714060706788165956969420655311362520887172518768740283330467925093342564625287721524696655785576316244658119239635597507761730023111603307059688990773040273150185435956723290863868205187850943261379005010282156774390164852420730688824567388808219074667913681440090901754178024623190803710148052173103957307260534543806978897941260171782617495514868700954431670079303982513435922042360985851807155618835513571115864699317219312069689127967850364011995555313228390974956587997520940507128905790201175588532400870451364731331459884591187140208862680675815676375742749328028680459268851867220178308195645513202911334530351380140797374758655230168115628826796831927565155964480519969778924258053392183514974216660018731974918876128321536452155490269587875813033907425949613518622695118734294323708279943809652273025465991662594644290216234594242992974542053539758888828690243344940592372184476603732619299271820593007375490923140251195672025327049332004892389053123120034498834409547817842309426613715572548184314836446232729412985410632837727929193248465108339750971495467665530704309251492493684684523838152820443956089428114828046182855656986151181049353845125057301634922989388355472185402414619585712600013402222387079991137003280078608456708992550560239822550172568687575145252855027015704527928378918563174786791029064441754269331981958483762790141994603967476716873993340342093313842126465604587035730352178178492017131234614140709982561871902732118505073678984729277281099616261007836776153924804597033129702425893197029419235474448501732437596364484484772604486281436447108911722309648949743894623939570455652829433568129469355591446500362459879328645004845588227539982076470083156864565745886566530737311258898866642713138071287037587765772174040960195685442745834979478775667615555033467114340946597230376433138751855941510547975851345361858445039025884973017988975558983591188636442433996446337648041066033589829066585459151472774152891194525548194072046041015388432191379361153318649433617877529553944589447628906841239448086127301035215076982786462495538197703453761441911399157697448068880750301030019769324496387746422030703276533377551803225266039695203686778640807894897828644996054596137955668948182003970996809231312397386014012288982455232270613837764150693610948977304730563754548034696779225436897944952922214180604000491596850507304181723832675348783490848199006990847248901482856795884211692818009278046380157611400235279206493504601442222241623026170953759671989428460683899351424696289539579056780694321688732109215503684203522652832700647173376543209519473019961085931437322514198771345633033777629393058595652834022791658520766985940251907779856294398327367486104215639353768340802242153460572467070539566115091062478260197936772951209532715676207930153120576052337844417891754408501668944724182437784207140309944956864365364780184903332766921544398095478932160371834178071622516768305099594561410521562459919770452042517202364150132783699665619952908383941703063087685688846753746869885234035657699481976390091668434789376251388518677643872080039602437467207207164476420605789357395366811384958244214035926061653955249158233791216054043576214313663614994548090787231921560195619799625474420555361901105248613189621362302618857458999494216386161904459637238501238655660819314188689519939684256068537990592846098474046896112933501831804558032678690492405133742973247015929486665105628408624685495650656132632352093122408348067257928846664995864450151218355451198559844789337108639045408911978839960120016310130411472685466528706512124763203715179380420162308014869887777569281106450069126902692489271735921877161746746859818385630933734851258504457445535347648759769206110227464162337055719288080975050142926018609681174517946561641400478272873625670722320311144299464489967385293936156386570932380599280409735456425409531005488210387918009374530300943716028844049488334200594094105267199304250689364893706300809610614022933325296671376096902754277520416414860125908407834730640480437487723257054139920235672629908491658360575124606885303977542534863434062330955777567315669553996814891592990060146254956313461221616573425459004080902773566189959726413968794746479091513097734921397041090923293254101415027478748416481005298090586136949494601294009491531737029570474876789588474952115602753880700451508012791493666164497222430850034734251494943504326533050423113055392138893107577831239001515821170911331555836072694699930014926078489790162989217113152926314923087822471961684334667741338334075223246458121126827265914606768317457220964676958824081504902369056589719224139963394343848532181557302415095936958036410162273941434851785871302286270912359065475528903781473206439869770015910973202939024293772003467340524982289906863661922095703978810499220750327303232516936104384309383573854169982245198140418059864682295917244239529937291317448483949255828010373162470793477300686944744805432119560599427047038609582174575463008457326726616664927668021215366601384783930133299328427166704343840518107051898357467765970729838072170700560155182109775837750588598155170010168970029673482601976732562341253537906491925484000680087735732837924935320827608853779314513752007829332529272160521956194077190880853538712551862509222191083120500327654102775433351145072664011280608814200541342721570502533967745499627709025218874196823606612463349159267871690971588573573393282921188169864664736985757288919553520360630305068872993326286943128549408310801546843884730788301653359255569771618022417440281512042134864925065148107566382877032782488652678673436049427650276385539129767498217325009197840071760379552106773098119923611525263931897196570124457515493929557410355346812587884999963519547321696981682846124120079073409294841736690592448748944928082264194735681850068269619975152358444926955880782722222504550583142193529610674805004378292739004213431011380783885648589310580628207997277437070643931731505972546027489888666597665194034543133875813721605895787016695666894734212682583342840479756693222082924504537334275584335795674221933343539179050547747681939731365645149651170474205306147535734600704647910510613593905356246904337085249792054905469332989918673146350256989362177596832608294602614835926657051252715769505203480939224939904821297759631341992495414146520804787248340259620729067819396173833877149506370072047461832222955264032167310663330059953978062014613567117439789665206109269416586689826058515617672975953671839050509742928635179570548895885476683502702644612953264741046555056409106959828120138704371081054766533169615956157710935830187724447534661833162228703674582191677698965261875508246420471952939353243246296745861399199272195530210206014658638267510000564975214833994369192324035283590800457371095017461305787004463559740913097807278921326499371792928731824281625420781770719140005203309753346996782588598892433833220600332850905430869484324079253993935682889428696523275148273454812418979476717934864040608558151230024802730766017608189654521048275849220917336493967866705873185742704915113275523306752783223892837345588641115271689968164478982492589702378372574598118270904187450031802924716445131322324790388787385096263871644010101171427508378620900704065485140858932255796816627515635086148968844043887622908880790129743007418406418748240176010526003148086757788854153223806259322846709192105706469949827788401758201012714352446146038487516854221417150718768776311671252653797595673182624465102096140183322979269254995114922712075498824921964109512861278971461963470965473627780889657232981321749411240488228612931405228196521549659666774444742389614379908800202323289990591899257910072861583692929711746340968993608887746274205788308184768729469014713671822991052129114284163950535969615653013434068577726827428140459240074252720928909758509315757802433535879434107489922223145311258392698637687422615962427394315297892604838320378203788396238232791698723934888919763733365133761725608699389693294838312250999513666791641673026040571175225666973814658632996671711919230710856855246716498716912453563679486382832436164987731085572679926975196285922780006276645408953397101291398951399197041929804730229461103149683896464564315807214757878551759331924130747081608159574173883293401754598407437229866193170406254770229992146464082145360402547070631409006046410195568461824381122373750173178037681288785155138081368182097306241750851599309281321089227884637022002056193451666153798828143283885966395629600423492226678911149116264486290202343678381379511212539799981220731725258802961854796650824980472836500052599756680286310757542469694424698826933231571635508893898611466847297314634507133503989569178274129498713883210956876333959141565247950640794943378144531658136991009962907553437496489964913334980894759144810801696002699991791809548745443223898265178068393962321263323695784043980060311270287732205972399058686954883567790341413146397261178637312309429199641642629814116144828576692652660878514870568692798167118699480367346700777940946367357063898981639310732860148357215358245620054703846959772966121477410348477199999053143517644414925524307974104556362401601339234566895935218190409983800376049558735253127134425458175469103510867959151452819177378145540952437821611884784948934660166710456092625404532804492887157764920010813806147126335993871218405128366393731638588506139927226641596650111233290260099533343585046647637768824691167338362096852476651361389431095138955703629821181303010991186247823235315985491092805107276281639120312073785133697898621727224068163055703310735925430821334305192244418101517907470296801674239363606469183702647050682372157260984851221509647690823281383747606823681276027872282225621475452234697065721212271326205732054727855748903830818905253535931433340124115820027528902555740926998053186085447264428010998879257450554393055777522387342759660161032297387807802329382495906334079876941656515457976234982532955639198766938243339879672388794300763829208690896131916549049496665807564672033293136610791196625827843920334754782684113869762804078526075264567735659092696124810617201524352463347833493356948163943791392772970183318445520374029522223135425503780208574247454807054762812698185784724701265181118843553148002177709095912176587573451049756808091597768675698767994890109690620456637164293798341462984271276019892012326955420538153123867799074139438367665034187118836817771338927043328977278950506540983119534802286557467033345905178681508193224693136816901277852190291878836849755930383591105838973440866602753775632693659469585520364044644161471957149316371874658929727119369336273821565526754230679896461096109960500112741464989225070570114999812962927259520859202024944951083452508025716763361622311483915024080472040319747403278662343417306971398414738034126156022547513000549245417914875804804503705568211406496690738094886573151201674866137649460991928139262439099154198435443781235677951875053958666860627827894600331825375460517004314878089435935886013653900482513635772439037691610398498502312432590907219559089176346017713244931439021454196365700918017046204631457709141903719858881707348235519846539443382864544309342760200550289148905796624189848624919942124406735043971011394828049142311742893192277760631595981338740029315359821851253473629708723300786451652827156480721629481487405669111151077753778136129291051203293986928752401053686653122775688771230205683275154227101535994026772421743563247381318833035254707966553604745754299843057423105725901464367675621274519422832963476815363277579025835388601795994672828956968296862960490776472877466041697304742060917519069933870089497349006609274659146920183786523329688959890143324890564332590676053358945957714921768866991941304019082326326130044047998947923308545896718061360147018442838512463167384892799829622771579371266463070820892079094102063994527918230691642420226890329588715960154409219781298550485025964446323357134009165855150957577172948996606659553050687599279311888763464485087667114511224650721904038998193665228405470032695818412730152585930369545657939176241834903344981995257137085225534087255298474457593352528101102921644766768213776098290315179655054447367965385199421434866405897447093180008238853531454361437632749109977875519476397531234220042402300475878403031912049312155333676344906357920874157094575143342042544866584886175220687513672820225212381605106737258448335250904293250459377577551493705625144984792944500951795673850395467176819829274437113422561518385447661814584962151751090530373099557044196156217005700279430772507023349288231281675084304114769943572053693610813341739125606897067660388291342264448444501175929391636849183873637780418172486767397648844819896155766573886850928606961957769506766514424760300822712063008809241807084641613407987229850240881610648279028880162235425909766648445776131166003890436157122793428504460528546237581980820721880870208622727529746705434523717256887167354552008479275921850358649647676146008008053716770746333314024735588068233514698267309912055097903865955849515499392070633602510298255860602240000869056164693079933735251636655766764008112365834857684848898075071663176242216556399577195650930611078143629758324138530420221769527424543494390679485701201497735960117240198350336204420112166756297736550574410365249212382209803151429109563682333036477331066215048720293640554438937126221430502906326029470879168481832657544939840862619960733513974604870978394913007072486672167622875825875347196273636427601072373937134243344144261298414171650611344881497216282193147097260875106680524968528323842982410309579607741535910054610000581658493133692140323184216427959045053089194146229895354674372180461625601861067804272730040236499429468232887520415573782389022493941671143898063799283478653459540388603821875332722428240054829749488495654528256933135928384604466325735168311367287424472303294357902724076940097211394623920105641896224431154032927309320037404768023596777183961470384034736235961725468260920897160607421745648120164611664638757293614979374942762729662515943065665962086649103224475849357565508738712060849444494798316479038061885541840782379928708470992497646773863885456836863954820921065091110792629715781810899707449709682566115423132253348561018029793047935432449348821578685431223026044888943857317234202678601222105607426389460787063516709382343939031231937337222530672390209787253120345271392203394962077890434729515034083668724427968714202011873983985819646549486723569799572499715663051487806341808498857714361048888825310260332835272662550940498305358815866746261673305186727869100598921703366775832568440591745121740374571235101335275106728151159795587786430936716470020402791772450450086593999732595259111639362550598772544617203602327680676830340677306107495177777690144891839484072014633492297549488469172454970693666580610554218570811562367259109203299096179719342343189466222920384405821049585020612092833141033099229418131884635565269650906896449795296050360509789848828766321731976501243157199335435924134369510941919302937892158614087345073775626790517463111662016233023766032697182665710673845556351560796112491003633601554013876270889127404086409065622860297329099925849910704962566488730276071512177035789974204345375206994447665971996092629558103224179720307246053725227397230156533464627810186603857617365650234646220989953948488388502742017258522453285666229491912663629368262266229370832814391307156486621750469807071826859401063499810349523015131965865783930561832310505407569046680134333341819149500542374976189426896179281532819885241590266136381481459394669207431356969366967448160090766025684510165976974211389558350591263871811167531800120583384315211666496600846420657885687040351597750468304982029736987940962607390609644404020488244344087099727114764883171559983541293602579387889778478941423216287593138826897903157332481195786947735835932653544298949568255502069384697723079401205353594859723733771730880006084050004490691863258866471172122030093762614267705173107046883050449571233156864940428027216182670968468958776996623227946887920417922679725211973633726040172430482001973147431719817837225925595197580215499502642403210163516997058058072557605947180019672936250533128341882662943000933286298774037043488611579344916351423912447991172942091450643014230933645019516760083861824328476956334811486063698375507295386063250064049575982101572134083194422870908086711625032121660890795937719215665045100240270909160387852711508934745014722744488650459721571629904670726345401792083807562670324816162551352753512185578085967582476046773683562182933159654423819573660455805544114587219132826579605552842105263406154997562347730367972055180805001673150821973632580345291024298031118194865705963221720831140522785031585145953314535658844540020078217250648894253824910803943314779701003620711619490925544680480945219511739188411486384147883125755786719230713698000755390777725678579916015998785538447477471527467915408127300496357694237506825378671680615283758507845672240186329773953496421976391509777501000738565220223464733093342789805449123245027813626098307743649927493198054421949217824561222529443047066691050238481781311005204025552656253862261424739915389775770183676399892177181238897283018818063324581040943021895609138912607098701688262658245756139489613254556431951881350873892002231094863821343284079808984891830134675321281700771093657521329479296821104844208978100910865317106406715212068746521525606743050814950762083268914503429033279249240609217006292569232222334558463619264933566533850412433508053927031824134310620272332026034494346706951867280426565182708804017796660725080676631259746774913931332643880835776183653061752216411064919531285603059289360670246456210804971856909981860779572700162310587373986476403530840024015014618879402236985246912250740404544565905939596554527299467141475121001164913713019864618306207341069723733970889822688034432972373743907849387238261257630721105290622585665888145042871933448521612779929124536720668285833612765186812359546763844759809408855955747315464852049554118241030456411276943164760490494245442829417825975961285426462892158355405751248190826497361296520603922561970486622046511885843331061122432015771934489790474113427988025077644673589324613437746662291840344969627312631683253035785112487198099567546820615726342458164283739504853073487708131785477084869477608991021169365829938409931395722573758750847675129127634771285269923356031028546708097166216225766964739302133613905258860383903863540357403371961012789179806292632200868316831440003194894820992855597149916787956693890112016925707234159978560468291570611960050938170912896854529658562057501350922401955786903966515437264782926780399048393997267484316743646331535942271794657276789278667239882009735255629787235014839468356438093419920548568354764357717194694009490911166171467318781476312139180260639396210699340439280408190189941391643915354727370116026405812674764106724462812505782890260833277290608175483011662937174558708740499985178069301802371510260442272546841808895302205329218413779573302074559076796176763428129956581163321426895659705685978070402035340107704475511339160366342622615719396587150337443940884106110571283676086232978214164098456445966259814879001515394172619254802579797031075970105733593260742750318692798620966541669205725708688808459370851620131882471108065424243546572620960596957289865304281671744330846389565278344529336297520217796614482490449464313443555932768283925917845413628748553938369031542171104864348725081827223958311258793216458215373204698319833493533350861090799622691214435575899827802923301334117020772398997634036223177234029314874833783041575536968970155884439159318597845797895274830376584253685940256540609879798910733923830333759096705704661890391409207093781714616107258919173693347364426302418168441996844256169224532111492891959861295116399956947147587714756520513186819112919772207941119480455250836576719301563865873926104462642918344129052332527637151801620052958239017901455352613521487852895792578645510476076965667711767738772856471954440525864250814228561626477040059451184592312595517479238116234713148139364036671442228910817596510758691294780367181611765097375704701090736045473664531239955868771808734406758948025883896765588237696341054351989847856868847833361478528218389198662578835463495712044903884563141299440229681277525944600196328469205389573207055563155656759142807672023260495775659583819997091351725990094477780037864737070243967801756183060594244914863171765546482177069453591331075233442742063538286677777497705158383132931897526354733323011487714145072897716676965229320112460824038583813861357501118832024861954404949095613352450378432818296923266641774106131550016460212541557892869993667497920225596788592141051215460333656281969249229238678922808721411321086964586800106928924045021669064335734454807178444549297484286993259421322273943848817729968504557295471482426430302139228080807565143493088606856487915225736613647824708588932344892001439288176909825900581327223830256224032234646663739849981614589933534822648339195394668489046136205185810691557645146079788221464324643491330671087139796505818545056832994835165968205571723928650448737165902518792406865490870206708889476246039265469462732997125817983913245466152770510294461799719123167590590704322352407283811939720648230709955740932323113193902557287813910029299354130772177190997908839575706690579232798746790388809031406253581734006932587829278385396677993791908538256692315289494899571120917366318581903574988684326327169051309192099620061187745147817006687351109090200730040832987201485485424115609318888205917835703442176750754183282675065269327253655000937262150784949210565042522436048933045008277725777650980426497045971492127193702660236795377889687723416715825036325766774692047481641655834393981405901808468906805181114437300296808722178831109291518697408819360060911555963867924022987788010302871811170031773093373823567198583091370379950748966226385404281548257149550517421857625918535832015109717448148039053429025189862035288105588786129421008602685614957070260725774563296420860331995325947157119118363961830887887705682078466874910093868024699169332354827575694827087531713396827885392843173318338018224636210044425762425550424926319676311494528222757752703642870671764551301489572610660957510689366741388665082538744564136923361354483353834972639343392214959006481739562275133228485794450272362685730262945293345651512798057156004623492748270998218695193771302501505279609255753753176807515246319613703001511245883220987309202261085675502136640651516770087172571056558021480900743107339870102765375677351781455136186899106873746160484601111466664654377561725970521722254111197123415112826326865779359910270040373556655149115549443109063595486802289144561838368714179446465780153655362560717635156251645295433774857546551339002421023246813595883529448096464360409540785147736884629400963737804752809810626824051889926911524829432736361736973754385054640994253857009503509265402378636809727000705907883081477666427947603415558803274330515146066007331690674181713109814580328673918854870213365873706452845600691611831381744744339063967053997216191154650572505081597621293203106480911516061530794721256676977715490780974069483875893249154392433829405644912860655311744843268964851319430418478788009331547379349965303850235246760502848419168087722650987821585477341434591723847406041287302994219360914685630762444983106579828766733309344982622681589400307450433652033480294076823458479927477226291989196501950311128649818360557881674687325616559140520202917462136967970050444596126102318983099046608547609269172857897515456437834389853096379206398026896409834782532494693262802423398858424557312050107969277510390757878558249186489604578922648770000324339939178599047120805323452978840533380010575156198492692658736086913145728038187792652837897141953633408064650336783459212425574489262630734095247050883695989256977433938519379710896744975605823349038062403618575387052456248630777363945546569432283045465937546203401910453884126059195297918312969515471839047184153150932270876035854958872088231465364976648335789935770582457934097951891961296626572265927203537837222917397719896558587418851576228437891258016597774910114806035933240749757765063432528728217944130812945242673574279694094532161103542844991947127933472936280474435405415261287705211236332460381298256093239758145720651051309781768972592571153389884927968207806592260013338601433693495865674315056668634395663399336839131883576249754973926734089526034159924338200530701015339300533109648397538276173870635135362535413257835328246963915711429702633207849398336190242213622801245706565331161318053300966957552240394007942400788970885862750649778087636014045843585873819051066389638563850935975162362897141746916479109276947670939322742703978688442435354859817805713003644968424274330129450542646561367008649620112617001946192162021225959777566832633152074648292056519548874159160396382301274451066510424849690203646688653845147049011868108840851427920573087761056877371058565117946211188419307454823704974259245701509574745348903672348759187257616913896460723807387136685511014669487066258375304694583412180729684443294699057816183756235408880367845081662985558454291288034921476057800854905433412123068485165993939387882681379321825419627743794572349998578584011067655849290513703588915851180316224293364057823088539838475943990170418527123869839521459954285081651386379191432550124555855578223802070338908504848817217432253567809069871511023975086452856075576182581248731294265484744011926923527835652607436178162759777688868447101154329156345230068574410358410089924073658720821051448855329670178253573201420041777865842389621386648070800441136072292549470099520557617627896788469294850343036871543841763500678282852031709679432545824604654620277853144617497014091632665492060431821489308317996658592175000273633295356175930037660401249548191289541042613669053983276914549702388895994315463697701912296597859553738307582916005890362556450376311485165474510123510615485684018896968171754195751927258175582765865254508589249375285976839557176049945497138203368232620810557626333207528411282725080118085743906885173748092111333823532076733886600544430673835242221023369903921238490285856850368713084083600235832992815493121148021367054179947432887969873093863962039085793347399240924599147046038043923010053846608228734041023425960199478714820729719950159747778566970153301930287852027211161076494744363839619324035293527300989977229348469089442232971364715069491754641118768873328169969908956079540089105902746362137733706625522311394476648722174959219956790384847689918676711235889191354218491472570879915760129302787194164343127975820150769210130759054897059506306099516816053614390473987351861461665425379374537372771728313871397694295297893964354891214058515854911201415379950748687621641135657175969464824641532249772588822554337380713986001519973012947059935493734572271248620065871615555871103421853227310330500111910522177428089278437621060620766084931798340217375394608943054656265420519501865227281568323494084991492216418945885387644422569819273183886108173077373051225074828222997801579713068956335272476330149187788588234470956690836598619448528774419051057144259748725737921738086130538655609269757275707191898606927050399548002595762337627883593767594772187783589341804375387441682499735053961586068164011364180617892661362344491010991608961722048807119569853515224154351529103772039753554299562850253554946302831487185112691905218657874629851844805225835728740849928581691110519900699295447863276896297007868361329071789122254060682393275340709622339919350734231249901379429258347147604958756070540514545771788777803465976932147508436147781933706443640308362922340547237402127170644287819295992141160194871539819099827786788061400941356682770530618886550297792191169057750568361327111383488708945124144248472954040680342921821295796879280419039262693102453381115015422128860651426832777286457146737811498181514895245314662789836407283548595930026327554192625298072001815878792922363765011658912381270575821854267962790989506507319984847294098335712833383337624848756318623190746105839495265846539854472577407606251670503960770933137675114425475219450856439966072048085467133645060838043612035346325273539878928445566237540943555315099729417477684178313875954986514092035882688820057323738833892772475968548041235653525270230768504800137400443111195397626256196258897358373799071216291705028016632871399333799518509133571625570716954122536319524236288097828390178690056833615483880726094730371070723073669219153180368898552876986475156717212196830340766835677826588748510338341943024505145733415493954116442807450621651787315273601127783996268507083816285753703723955459202009762106816035789555279930490973726599754306608186459357946646528380664106724840051024416216706998477834797315848510926626555996927204560233475813834774465085997556368302290118871766760635530248540208682901047708826929001177895525011083995637370599383035399460568555582919330522652898881649199690393158562955012764295271046264680105967308288765775565638448084963509001331806992644575024980566019038755131162346838708651314311497585628475270032066425105374084712525228824687385519189994987554582769975496228499683108350407879945629027324017675101022828140000392146872120385007486732442765961996365581999593319488429988704720749085890990925528035359996160419664437848653780348038472636622085224654087050028618865417323790091315070231833104221444013118062637167735860519226334715406891209045980860800542268562286853782557585371888472699794033785980182085546845640475048648544166938940554020687856163188452362018168546209527520317061813894276930314321522616725441063747955983298163218197663248311635893696244648979267053938788727150014338808606828305242388580976805831176768028884134910803116489737441654311368201800102856655510784263083615607834665348027729941407199611578602357668316614006411935393626922098345149732488471712234477233711358427039424406556804408425199639633771483401871176107708927791034536849588265200658202883883396448481573401849056342332277192598124482248041913487072987414538781887654558296475249787702603039728153029197811774995998704827214016266792360102048277228645115123073977217627456462644939277705492123511620580679995770961556053075228450118594128094288800330194183556081325601067947093311882053094862056133599430235019920037983139940555938473868014240011820874448675568089674617997743557318047057679214010971075730230052261469905142337765213781288491626362459308518272092296389501617621348663342847940535237360992547215745142704156669933830693326434808671702498030715060438556148223413517399691961883852493500259753582525059401836680328374861153553039486670328758387673440372752402820131514691866446312517265845885850719684966328269635060331575427792406954625137366609063426784747413942749126873038535625819850675278756658224131840182375303203425927703964626815227166062456020897406485170228286206915085748448323605617359393672615572929332873227247030435799537264756229386900526441933944003310814119669783061422197912475583206598245151776856836612812969605821932830187740725061611174102354629174738141232080716650676639988897351063192420277951423815862438220639029604404836739713922282283874314535985160207409736437701257547323798808181537528906859413911812965022506514930233363589486391921328884749599037441089906021984599972962267380272768351256136304146558802972648635435082534756337388586426965202602543874438572327048496618624404871891077625776500669540264398806699195836623099315928180405606556244775052235312216326442201967131857133630030262875715371101165059118323461203285528851816331122605198851251752967307376810241496872423243194337624640514896805017704077565417252560786754037790686576586548993638246028311774273826039892829155222405527038240376471939232976678394271040079779528918400898123145736003893151718930120964657901965008701174388269903383459226464850768167891664013010966953813380458846939578690132864968572012026988675149257734767078040534696953373780183160285390686577337433360151426712160457674638884177242820738277891218114538902360483733864448933807610490533606337086382649957151919176315276429899950713999761461188230699354768531906414325597928543615709898959765946136038355643428805443385237016768750976253938524322739866026256007699082575905264191482142729335662978485239306441538574438721764050337528812447514145845605307723335655199139446608909902065688297568279040170984110790565271662523494087564807880772474707142876725578837238827575795212249711052417161377188628528057564138980863769324601651608991362393262277978040248236235063352764124382221990812386600949519384024722321285234131641980197156147658166003751399655015942378079270499405044968591184563549831482700287529511712704415095270071050895074952722166118995048686591050026156956692658388843256257911900097850101837825771771731698720681333751170247841766482363099624753361952559964858460256659556654215598660732046268864919283441816528099649714936130274678060511051481443240307862223031354332097495448748247993745260034242454351916534332538495753643906649711100743150015409193470516750442792944199164484308651433656445015899908815210595931162031583379507705559294987692271635071001307733351785783803350594856247860599442415503055329975218584416264547274321511730158428066285640853581448552610541184109849035627281661651412640404656210658242311840756408129638849157605913432176557992876480706724372466180209957671401033665365916782229903169884139224038933543276636842519596491251566770109146219859627634772424738900799373522032277624123706715256436740648835484249573210966636191720453358387076457259557117564515637962374755853545763332139928508642448965610803704660799627365833729647925492047397335282282849253851379231930882949733354606878561327425842007519462211109881207215566360290718451281165224457357878277144317376595380318944442677500086618958656710963360757268464292321225199722981924885092253454524574461303342926771629212751674242767894478670679277303394158619172294656065081931523924057490979028956229434271652832524701108712773858362019825436727083891063475433254314759673646788983520459510138887517993252035992632995484837256674670555370707622062331202300479050971556718884871449201667004680878310026671405589985632884880939302377264732688299233165590072336288639832334732922500193010755455884557669109677168669850509977097213788981365886124308416231042304979117037930157885442926424897915052181602254507554652637304479618261641256917247422627401474850979245433531079633055518543629831581028144871778786228853384078509229908730367148158837503416283395914493872819928726545041282669565088626659339354287663874544409825718732186977349454403346006881149148947258168909803891226845714173488018538098609422616037938513488765282453661449977415724568824263637297563687332463208291560272269566135563587094521299318145036452415389429427724476238794718314997922430739888405828534577450282029545506747798631187282308275679510999562783477292626765638398597433820630332160899565084523357950444240457448278302466223260644506157201552964088769083821157523256639365125505776735887975137272587336796494823745607495013536849152601813842097216085945354893081668572369292275996342495937179791815732570575292899818412862420831339482019680041818286344022028710027956896645926663483385490663524362777912959945848380356583761840995142719849700238153557059709302055245063267393955893437489241001807690960929734041745481695872736720770309386857916802967575080455314490801203646523979814718944746943569529603561241293123135410274239638053610391812208466156969085815856857522692861032115639742978405042839524196293146876987698301780465397523517617880204985469569928107164361892757506140638849029029436748651358600014049458194390071650650793210769681034605686011568451131892322045667311778321215450925769836957788893155813197370228698004545858898872291033340501996589141075505632881478907102140475010522946170386067328462119411499381021754265171371164385657755993162246572852652739059429291654303902834917245343206898689763388783453838866504361897866239385601894008422840906057514670045410858928841988414295253955806685998611584342159537413056758521206558937111987802589304548807517517990511445385580851944615037047679024552908658776719000216890652937900307536282509257078725851432321160394950795842990969123119272774947806222819499650509303552286974880286868648363728553849885702234861219010645612675691660421342849364181505705238624045941820241928789957654222184185999475962490154573605491998597799753905758116133404794648101037792710894465960476837549817610803853041947609541193510450880350535905504378965267578190788475268214930011924459792730732998076041217429439676308876361252803833958844754495645262929504125446049546652015276789028801547677140494117861677070902168230565728186819605454303904521718760425703775449963420516759843273695474911414896216424451468160109177392039525879075250287660636540105228086270585757408737605309435741072451858074262141207866023383107862387110909532502487216318241558891760948241873592153896995267414687336319189561496236756465044553945478040659892974441028754642013581620691115880145181983296633442877410155055286097572260721477049388881844635068901947389080923612111566574814385324408265899267863449469904877496965404439591748030553172161611810299996940131192170484035713734035108636541963801238321146877358935075153346250461026993625824707873945252381731898298511884031878433098973642055566584217500403683856859211968271782016309462714638365909289166764396258744110343352979486953409900041614565280234108792057212716287908875464053645957479124782514688751777986324884500969376712776269374153371571525109456053538717480616969180040141532464118579112259560447245772097600689384497788129217361315505312645330735986766375055250170318786553546634914841788252990711053479307631559292487767026248505810917324544991015175746966183930365674340969014693939214854628197449121866564236784704999895868530462911597365886504150739948709749633298997373860762823219234979578267483863867161254503592218116415412745974594110221517353292123425064283720083354984896376449221249429221837048471343746078079085699299567432968953872654171148890680187598433331204738373402282040658640811415356068944692241954035607438596309491974340596882805548851605249061450459266372211527965006987573168420922735061493154553554281549076368024319339013131191969878293280772648236775106636509614018708575318556915186506105160568811776758778637300517532987996574121131809900084354441923079361915434883929488241708876594399048134048643373443983802005650291930930632868716710284209004771706230604634446725226773599226412923946557535460016916115029029870835382455752409545417825608791348192957104835566670844522223492719176715112034855475373926543404968142277221637392019246109242100315529658705884718333090427662004576537350010234303785430000554818132458414097498732907226568906851585081387008677274943606971066185299001399426577209886409047537624702236962207151884693451435182804383096675888922340989738559516315648783643845696204585076111048321970756309047033979144565615909799657019478620702304327390525270505923462646012676214725165902620983351834340050078383513092943565649972418685786249206676218180741101361724194268531597309102199511301942086749198062958463697278321152990006725893714400485037113945488541067503366309798381605629616922558504375127139582757880612096612556982909832789585994810850574236014198213375350260886649712803986532382375071660352787204051963667714028156703552376740737708311145021385296819019212927174351262971374615639559850578665214378493607915228193676548966197441974233380589565272375027957885926606164928471321294823916544976000434404902488693862108875018283118808049749408717196279293674354763760045528978184393010818005608732655904731417766102189422082866714268378251350737543427149376815435079747659774517786578277154075260832576799029290371034578720730692433886647179694227558239420166819780494949708939238067019264185964367836119049590187658245299206753860498616080986638892819458998558843064559522626624609929817924866796022783427458788955764333678025616002797845720232449220146869146876503904794372141556899830459329758205831312189052972241144547759079133117384539369998165166152834280220094020698374837810952535794722259952431922655234075062285350521299084962312321056906341920055924301367284592398624083439559875221351285197077061408697319250867427567193873549279869247144885952039122808073694913917606680717966988009064882730001131118411970393370653618904325968383980978176987842661829325955361787148707760261399547952251614784672359468472606944133903917465955795596768662941303894419124233008897854443493808135657325902641461903064220543462646325827666831374180274969824852877381028697603380269690250868517955381818023950703630272024237432648768964105560655358063030347898713242248201421999417059039412598321507102058654108988462044339136140915388764078773149451820524202637232265040767668136999647301200123308234894348516455183033760819446624573888028037931694403173662916635689271772368660586512696522378161891852505542479099027728602767819725719813556972375095053604651109653515630153976856951487862704038992442773268692707325865804608977191660150874181182223902553107535153990971554102243998030469726101489666265154399320853792646316942650862808638672761260297215808042103988073453272862978419453104178812177332647368788260531583240970291695453710197208398592173858989673102183305643030372989052577048683697127418834589970465355847881543138119475099571895237640469315750709075163893332400160680092613526581278223924727058287387766925870176796738099097327568432167585487385198734040300740417798479576364835926899195539282024619327247880275316996036951081073043912846642382236825237430223974585365146942889630141888752081313425685191557623189457422425903102575570575058018682361271985227152667410293976324053492211166919208027158091373044380521358278396892790089700727577301498717956064197556046644293927324580828255103073012178141445599817608737080480760324414474828812806404817100332438466368983465388958682701752826196692588626344763140038223278350626886870104754828109837568556402994481258462553423125286223667232132113344071298466121288557435056308486435169581729253660001513554252356608349954662448205143197773277323841133518225443300361880044081463418629393679520700184535986740743725802897076787815507473749087730982771929427606921810007682968145199708524219778819374527502106925508463830056167737720943000912104075044338134893454057858138934605825033831055906711933349117635120116977671972882469662375751581332711297394525037259634433828191765957161038709333717825600893975339552215190224156206575097934050295094271873730717570963135209748387497471252158498067686378078453406256233843454341722713599347950636101007904853232559095825313067472411752022695770916959180711682321901146382298253706214712690966622761023369716701791926930091912644643386536814418016100942945902121484628989661085877865487197732757921457896977134686858950607863658644328838811487354014387941826599069869148157273086535738475624628034313584732655477243578309296985369407619414093369425461677890523534631955144454823093954380638610307089520020165731880862991775306144032916879282903940843031247120388321407035688009325715931133824516992569813614330696471940070265663383768687460003730468490018270290122425669878205627684586468009201374060246954543327468119437811370428026045334541615953852864000521718526615836662695484796907653472052979733727680963278571529072843772748992058254251029384705864556663376661791004674204274301023611570698910962798961374513028431526481546860203404317547420802007441023976633915746675020328361373849649917817017280069599461408186630097865413577307482927013491190059472586884673114235630121898773982647479573637440499253078644045509241463848761068560845813999059980967678062082306778667644353249030411399109902645246466870876057290367049526607093424538905459784486030707417519065549962372210727124552835502395101445561711913047545513575872946178652837691396910667069735497799453685679441230445244699045296176945727564947243334269466199793518283431744818964687052066814895681836160320478066735983428039723119875517714436364086548116425040346109761959189645477781926506295434271056503300021848971067563302671571655705054169087415348034443491917197021075898683707108915029291358846146072528142491670346927993750103292093300493961176375868693480961489839826272871530530837096179916152350579904602654843109771822590548284371663358313446071142520676211343191952386701872241172299515251735398036537503820502268158299091884100868288910011510327180296540398286523271479797601988733099029391475925475438145230457995915057826158083817041041295980628348578148325751035646177330224270094499571638999612570056478762724734315184473983025153598217917917495964343605050319360012581285620209409462006491946869557561191813036488499951796613317135735161000826021893827737515340315852114211878875891667649940450843472837534112955693245247551860191297237868486748261998625299579114616329754192983334719503561656708808051211199489541352212507202283390100240770105000515303600621046033191341194121377290262560616404791379536597441153317774070472019578146631560632783066408732249573378487799857388282060864890192567900376120623242743490254797939978828699143919697766213852182334721008596982238020774084739660009323714501155352080990474391027836812446475053916214793670665256574811008656313694026015168348596180621893570851308348347967384155768326242289384850819621386623558330013051285734467307639732915766354059231118001891814675039453964519198603763796832257401673010588465026390788800896291414953859935121338412283339647414624121617614607905888961902897259800283862471890067044370439080790632643601165582576531330668742626772616552290906921488772533174432529699937605722964572146880047193629112784847016969306875770146531798795742459998234757100859724886203652718421211684952321062308252677018964809814878001369904083543755441972101525725715380785801634185252403846982771920456976137630168669368772730234802569674517486952756549587293644915774806749391779033693564342195092850069512711471729809152047627473355633598469307866849444970816048054863929471433666538903283378667093905179436393722569001066752125220002887262713751040395941929693816309535604510232942977443956299529335070821329648762858462655951265937064542270074937782330642649232621221709175633422997882927586521471882443411238987312909217524971508946161030942635467781367783099634056321248510955592140639536508008893277174275514644484880227143624652436572854172314679190866783404229719096243231134121829860246732544873061662116294275419453443142374475908631085046392320323443372826115354656189131437991751725233846455489349103362652419986271382893464963866450012020125506118580189176758878648621888206955288326453863778967753471251176058844514914446254898997822134575191532521702006761898538588011156448474790795130297775771518068445697201223216820135291996573384949652234889439818900347918928832062872444804942445523168214242805283626410147348072503386018702682706905625779587266711146538691512807142138316606176645311522548878422192684621007014570706013312864531110144701168908544831668991318504935923872617387268443236763810048364368361757476875149793983727126873252805159547005282900470078705480375229408862440819193521023893870281367524916739850884426723590119831512506659863425152821325246743228056130122841734748343539600170465812081552916711927882496081409830199314848541109757517886753771978819167295579195607346140438109482070288953318691945659894518966960135803572545946494449617580828147428018367663280524541588683134322636406677033215934900307375974753602291365126568992681030886870569151274811916648360079705621621909696557713861556172049653842934424218142168943006750657222113591488184324764691824195427811995438773321780849160448389275554769233482572286735528496119905327533376726553468144582331484345213093687015061593910871289170206415877958829619118846887049415301827229173212478253734070113878198979800564033277441849725378881668932086721184883221481717000455439523069210779846418294593749649881774831171287798124460510662161957026199284192806809944890263439685499678315328889970888127601351759922002332201761855914677937753175114705419548787506781308669545638198285559842468760149140875998299324774061872482111663557097416672408451329298929464514723620683445021505730578748876439883419332443577916342244035754642343978208747842730218694439212569575361337657662290656421679223178170239612215778008899779936236340727819476246243866049510953520341476131273892241312510126208979831403191186857205530492542499824502421709769944579304042761171474434946489444180111769586999471668636925211127561674745448293139140641521947160557404941636226040507660299271557655703988772083947277204278696432770659951200315576802511341869190422919614020583493127546190616608731272242475862657969076141236261857784661902356829029788823675156887330571461286086363530844484937530662531731407879659511733935569547058742095804016869394287700081126669348984907158921525230813593306256899806094545910661313282209053719196517531029189867665575752701915295582840054824948195860766983025947237893888557787312741094544186203382482957988209723521138151413505684817036646732805644559655083815359368081515039357073364117412440701667225976788841656176317672686103208697029030996182420285528281824393678071151622700528583984569132948872334387147426406951166601780762578332202760117297806892899212829400407626011979628661413932753371876361470923154597154647371638744606893134216205551432852976487391033090264078313966337079014572535939280867461081232781941803290297309400810734750542647397267284568950705180548548492630593121699515386677260507924751592816548633457253155073549217538684316137992556667644131279961156906406201451705628897906699332901633229327965873360288728355818934793361589200246851540238913997972101463754209550408958382326937113967418257891234820097914738924222080759259547589921863734777952889032262499779719101033665411864838434318452195446173289923587542789894034356364886869774316544479238133470527826696350904557937260259059232616675648430257696330327740393389297713724933148549685792147425480734824937001601456822651171374291532069013914674010437219402804856666428286873871809725628585462502310260562606291571220006393382848988750688464407345366236228768364302818283868302353113169474061035014620350658391753973146838270818585889993873521419301532828330720472847188116718708077164278068499831809292617185332852018143596452601299708793151137058230074262706379859829453647854997475138007180517415784735657324513456586013438163454938312671186139302017590360406479745012660674478888924700077173375834762422755936309271158420776612138860326940762452904559523135960432009362054716235986169847345259969241402281152792665438079065595891985055707443650217553103546343979416923798191877010930829175299955580382939899473107882729989644574396101455252289909698462557093316268122662601775187333769286245864262323000066449569852181186816037878004880132018125728897458180161882011637291716362770838218062792074632363870946545375481598835013869154796524635837491147029225376460556568872103806810766841972915232567546221236768348639918640550819192931130828997369488659393561204998116466064207919252568181896875296148146077462079960110406789197093407079325266076126476824252561094193132528455090677422338124889241351019590497135179767567975900477104871163467098206288272614899494973439776769588784959079231290973152946778341992192686549037757665628716400401995043037038933223396766158664980723288359309755232734195454755424304349935293306353032707676754381974631990016537312070757598418983496002621185425571227595738497759146411893594910102394769787264048833207162624198798787313480806282404596058238824766566186488505090855389124932139521018599622318678880737747385087169498656844550358273430678083600274470478741107504291243737060045844088954653913467909846287392745694767861216259804141046883301594276526191663956029782024700052632192791782969053224388463648848491588613161326665315014372836943663912254262990673072157826150576078071576200688700074773110599449105238993436401531808080713685208555904687238296008898586842623783389046395002190760235114626898272077681876769987302194489179386409008715683453679684101295511489310031297417424696442916389288419322560598212477925078650009474698466656075726817077812382915465120173622021059736640987654679208493242384537797675955567859431828861892054228548458580586931734338251275349763837554800638933038773034565999584637457680262858938738699443661928905028072504965693930100403272649593173001888906078703853514380772374428818306496365973431516170014424338630235313863059658508572460611673530267391409050140440261999798581087089770568502047679817508803144969070836866730506467380870691222149363640434817804085585007063091809280648620052209419447820248110731048076231929117354973123134746717015181167596048773524190482004894345558263346856307165378280231336251998492003297718522504173544968588242880644424345860124163710541716144887776209534313817918810921602335361592731622046905736259559963094208127591277343863550500266099717078892259051164367090079926975841679593194639492457743887034230197713556635733913312960498824301926015475128625138006425983063780190532785306523581320660879345237489066787198083555944648377789309458466216199369329515913218615420037779780273489892216845244886165420882547345946882265267539306529561461000580617743835615285846823925485354219095817557869590500074415497090769694042684027602746153841832441012149560874899505430930269110155618164011163513026399269864630658398739370812506256961945060588472068112780979992259138175391744305963606919027906093969900162475366146383499796176562877639936417399004562461647419397516049147887564347936378956624005368881458538616171110470088535991254974093848421570534299579872616172620955714756587477912672717273625903992170019496593018354902586148008347605935584195442743655185216259141206399645150675117985775227719889625634093783013927713283927471454961766323194198881487715143497513488011316149021185768155927285650627274182985305489792979550576844065753577388257433663464311656354070450680695127500578936274836689203056038343553634292060045244593044717233123256138360765999959782330322981491755901457412049987729726718451632380757036273758092044372492969484549083809971119000291669417448522342592049041390298979202189131366573486989375973780660553563670821457484974938894105218046737563991053260669420218386122254043074555170519024516843198005260394676305714864304351378499509080507719743950209523200434686099688876166238620794269367265830449145877067555701137776292079879772620834434674194830379947818907968420349861828452735055844310195937320790567951530240418766123172646280634277491332879034099960006206898131478671717686710343055873660506733598354500103140305270687549414636217649573432648389039707205627815215576930589727928945296854557061528496279836806801604852418199870235952918303617065613564099377710310938191920924587709109663533298041235024070453258483061053905849699973358162810418055683357783730416614273996832276427248280257255616078593008383019124002777462079454583050173427089206009459328249235422463609541643802323745275847049748495434231985433294177392329226769776243127557287207958635063258525691368035267376660136125990025166485740792178576530883603388293724946671169023854952694140469076440716814594506061708786048693384952465066114625102703089906478688202214949513780483803859415689638464876459767091092403426831383812404084329186334028488206409702855435730781947365182202691701868534109612428172966473691292065570555025979860388308287620621530445394554150763665360743973447944340839904346443239367247863653428070240779007198526864969355732237971246710596886165601797258567915914706183218173756353421491116132186374229875356431500884601956872473451808667614867175275520830322155711828375260166555896937653168795420132246682723559836375797906365678259447472899982899302858136254164868472312694987415955757172136743892800180438976570946008470119505724090619666674963118370496544528607877035147538279865245489409908899769602406145468099433481914313015328453333345796545138935936909743634491835867458323704434268064455414301564376049927673202769969938211482975323123610492207097379459006582475976258679150544036171429129774383571829067026524314294182490965715491942296399791244313537116964071844628836829060911406333872999924627921286090825630541892412398349032217506207334741525208606040926926732962692435861437371546300044381738639962739392841156436820669457854656710576961368215136042414922663699586987216584370566432676170093676267428411221920843591130054767607099444833288698567217203914933099386854542168510999847959760420035732410915208669988849765125305647876631246636131519269244936405582864269366378084638288474491909807742149809919782463875813478041036679792593196549028075770169002927410244586438147193694652074608330956779096924532655615951356430757746431035407549620773356659228670749860944630543759579830065395715257156045884827024181008147606391166778281173593467947784223048389059046335985840584526167280855155895677384530459212163695249554574873683726004007867556205572931838327776212581484585150925118171160435585187790334006286919454844376123980760461243586784368459505557593072918465613121159041999502388781581073531819773568067477004198243728313555881246118902738936931708790644273501532804913749230015707528743048116720227186240820414654756371284104667088528880253558045968547449492844952184287777954957093727302599593366661563955015632944143370029653456555358711506136708417186662549154664263147932370447907123347497816320037991699659669865384855114268467653711602058804011979973750396375243039021248170729783342304102810539184308418664931510265528272480370773072262587559668348884489065798070137934499488597787495149363489832370004199818289630604661154190003404532363534790140609845929413592318429442406569878715286793040502493430884909824581519312856152542572941468960601379399022512373125680910867715088552068451521842059707981545037291855973319326763190888324502886046732152152894947714476268822791500232744445523178927785370675348130960236522011973375128180552716562228363182574977809419161595397257855216436002083720709150260987920903960531152220899541475523600192501957129465825560722053144634353795476955504835599338503940921274776539666187053323134961112714886185659576664123396219731937268206456532115413699960402478088831332131616234311519321429830880081957606248499819668564425935136815554739912712343714509978150692939877047911289242322159569918819271381774805425458930988936376332723177858663551468674528008571671340906647831207285482957264723026890093018626785042704505964805709790251439601823154458620802937175277191505970324527524050630908141512354482294481608996034489513077013970734987096616873689094778552180008655900673563390159853031065242603697531389051499690646228085883422539913102609601952523033400959300532283080789664046184928252580346895196423435877416216375023852527217204830447666904156315460208588939701520334320025315499275945973536747901009309470358940514273558502060402411902296393413119306399427183092747821920063618008826322649573058836971021797399912749538245269036725699221718209315152079111886109474876539057888837020805103865933144089073012710249590559549505606511327871772608790827326756491326090424668569804053889521043142124500779106088241314237772748003725193018296088197211005591892494193317092660825632799145277646814310076231944276042627522998154879205748556450384076413110232770929131176640961099060318902531431055769032028142555475843638213829220599392541982462489114455084541274031213036605101861128750511506154744399068940997402766214080650552592135260106451632663082729412047278081305225070449286783367809591236151398117011640537781860556119979802484599387801864793573058140156698079106177058330420350540513078517966517652817114735109720109761891527488002010936275511262433806610770896144064464028314220414485307887949307420276414861580374826981681189759532617779402787962053818532892912782159152971088717699984132289241014775344573222570099433992669183815983272409546483899865513436191680666862895532469720848190640260934670631075721267281648154800897657883310830080377986186092847099842724540995841458970010648383485725722247581665937292073809867957840472276676074919796532368719842704781215495911397610323268545129628720554702620457156674353223181622411436936303893203538962678667485448557861432040937668762630869210173390594830170056080313060023945834277247741530093392059609983916374270845128464416025432621689141812113318783487494338543326646179396011229915379148340340672066481947748176239923158192239619014110030825522286162865898963852258639202233285295398343831683061297513349781062861189197788631568028420764417125934564185862495930234827272321845731015888640372813726028825166124378876550485104240616866234640431846133386628377480811705694326626272183651854496051803291578017379194150370818411039190920853815214446907067608233481479078250028362244802948755471081654020169230844482172931092339746527289598902424574999312931082686834220708845638083454183351836254979354049541921575964696359094485498544601996607511326994094350624618034112067423137540570754084327609771318971375148069914671957460470807601000239076062714544141254176131850531678295538319638654787981560563854944570135294916971719060682590667755815292884019738064091937536758778387190295054276908006742358613050123487593097442731274544628631272062437666743761531351983181749087665940494542339002583131637894365443842046746100628343660140791088709486699820539966434266440701408331717571953101079220025053307773294193786172591594013860921212894473394859519201276478788457052947639203943098192848906352892487992149039710173217170889845917720446300440452070677810955914241224161400124888783164146148522077274689873716678104460512502346475741868252713999661255564137874562432831819300145747640570200564775592144367430732228754333478403704165098688204968259340499823981588753938220709951241927839919233954569643432403317944826239134363707105611927965781580179984578499762910516927400093636761974113146127829482752028452719876195751822420649476356148332717142555392239023542130073933170331171819893817592070587182574627586105731918831687428100923487731749231775700060541084747639587747638376037913447007050247583811497280522893430998637062430757253286185377643207647590266251104593242249458253411968858124970964355752677964925668820495705158429347949012668924234089568872564526589106282642273962553768917695038588068559984147398800310504730586018834782562618055738765790678628225228948884325822542638507660123265953295862609219871801459254269322034090623121047293359382371585892094250102097905890345396091485288075190845296170885618260301132663892015218843470031859922237510890796759786049742821140575219514933024086094383308623955211824631596132810559862042103873625202828984758373704816209035661064369714637253282035086838221077783354785095954944157231283582789695499597645406988200674794373316858753697124184235454439647401245658054153809766913962445133738508579796961334037622487796751928892874547036580760215570245993008968680677269396295361199878031662565113602212762025873984113894811787226131164738631204501303006302128664113267059898747850928368856157395140292128203608073957354787931735578685866343401024460289388882665207478575729618302476835252785488464658118005363242332242881198455625618278407151454498207322180819415551391448770492472273428882722176159759540313921461495857346624764145228773788148829811715593603544794417917648406743501650229900403141769909594514674767155603379294471325690667297775939489009310227034785450498409426650825084543447138827560608142707820816259857815055256242761930438852562531715869618007416528334122767328839401681642932808502053911656020014625037833856961807699609288755034577410981163312900430975308157065187154522283606668095081095610902807198683254419222478066161490087305218104447988274497251769214586389558373243915734818392806074648837236570297515618377894783351285201534838338289592161842963505906505490064525369385534610974662267326146287870125397706452907463826474911357354726953541335633956733107159247209837499323987449196627340802042516469567235199842839408413946555012115348319554710222306999271947352035922936658166573082369932473634629883637586571197461990817816258436872893077302936073554981594352870384929475024106541466614095689676895975116153076369305416162214568620547127775175674650663439090575010319465237903606401472861077126763055495881631915748493480448488944532699194562909321139507881421060987427169869894184693970123853918718931393078665089453571531504050895962005526685545494889639750118232000802657661216591865578149530999745571793495693133907524027721908368402649096588938089731405499618434742849824475498800995044819135089876282818551458818480309312430096441322184861770811266112796521510528038606327762270984938912587204896754454493442977873279057579372827644421869056636283877279770794934836698740014215536159946421193673628309079988062805206081119922096986017176745135746241109532268725192686597226885052625708379384745941009904157425991260592226911231263612172672144185091726868568154888033489580790468799259488537027335061507355332114391097915613973647215137292709130929577448602697492169072603120160868198261518227214194069470719534411028880910396748657551100532138027814326019957128447105529773708563019130647293481651815700613209689368463370685936458956877009787222068165336655937898062442956979589410257141932460334575770370450207184586646135519245944518202537281367665542940304330761086128233800518143841272725229413135398603044024955523924063240456194320163603038440993704444070589112205103178394535834140636915305747790374421545677740601522023939423439764105853729934681927542796075688360116640888645052246776927517738442943520782895171232871723258392927142162142956286426968163370429905919442118026602383575205568302470533992165564684421695364180028541937276254671722261866825391123831531612883582064770714142403260649016045868236976082318945341950043785715552483784618283501501012976050349643624668746296793780103390951454228575083443423671574501209881277671038561880659884227751628362922971630470888374732207930188303355349507111443397232963619068665542592380243970358412953111643143200073781346922865735317726627774009099350003260736542410035738700104690775668193871996740166952033025358070585918497049983768409791826088997883648638480343810786964420016555136567097695382975764319388680456616281235962074697444608375078461115997389763206734014708535183536395862763705154373260530964397232049539763322891281437461934292547770223847133686183874283052230674139844269139106580863915407856936964259554809985901372932134484894867333195019905985658233750784170241262169870482953907658117135562484645501980161978055831659741197006628438829814417677394944387470815623267816549238473395990328385259575916423761937943538200204454254129542368711698234400648431384372905321232979248623986868714606011816926623516591327732471278903867548998840532741017128608559952848379990629187713801866337775595003401121514834357519084764462724293441384264486838497572997630669464991679523355395737695694370644063410502642031923141818511917525501567225874285957569589164433406055920130446987043120958524959718273763066916896778245157643501005415180036264056270850155759159500973718002320213216099009116914881207081448778923083576889398877549616142007012314416429645041006325536248360666209372527548589148259231290999425297695951305717100651101951754441455067509238861098176370416844932323990036695603436200461739267245967507810789815163885591305614112081839270808630528634416780330490521600602537115168068837108335156947469078597706615704515307218680733566323143730745247401420156902738170977971452136641406855608920369668404168141933980279540251947778318290777431971941416691924815895044031521312082710740859608216094026389956558409637622199925245675242971159026555040254653106455065381371169759687515993508360688288400652106572760793480596966362741720846979719387613032876155625898817165954702999355190778852795677428652443009947537660332041413521985404703949941378516510995272907900559291970412858263202248901144883426271833190883349895722475284685439839254635779005668913123577323869922239757009005192276397898511111470067105430298982749759512603077854322070229511210176974361034355992687886464153001176218192708906799042505648805232580482250511541846914584253309168701328192816476799531340159353489404535095550221916271365371617170434620816308619636855184809106032878327353459364074603192094704452179017873583574008676351799197133040826675118634784533364675980764884781198717463804962009166436498135349159190938317736119712827805158532364807470933761584295527730843480115141175295714998697328699849406532070630032809832731519730502674404703372914533271999320554413444342557018283432843312201693861194746379474118248561895832933533321681625877777344545422187230337297023071129987710112404435421086337628794782627731235872054427468124051349033387727879546192902095085463384869057516468764336925585264126019599923187933967320793789127843932525448218850245595205961099862448141166377984313216256823061423081792211143952156953379445779707272118741228898858924638007916927155379920679077576803258883009359932474803694743780446305130150609547564356179333641662611034614174198347948288282208767362251705722207124677483346829536498240628495737123390184469081609651315772219755927135323583913575627422859837630345966486211143344124509600608376123246707104108684689777959941144818698688128170823274676697314881763839730414618864601505704654151383892014283655190710994098059036106604366730268221039251942522079674156760312454537507027692957000099771291704761569122944299555724819711924910153419606336310326703301387943369410559636427025464965672097578597824987983041272893394854725140536806801620865764700444478582260110310826488135603314086763551611169041857877335438813623623081204799142043677497574177689932931458886707644788371873665752152161158774820215033019572050533456348512519100466423391935147435029146752263006790680402603637273834245097954002959328664929134148988551261580212786769989895231833475425776318029098641635523269365601680578844886959893850117680816229748790463091023670230026487588813779629719086499084585594446839394468560473450582571455113107987197847481233919866825850613588729570489295699255667397437523565156528243635971740695104880294472765470580687167346419143468826602222678706468643963837506636611511816244588410614785070547422558218458218320931726953946362175192546333671413919293597865181401892059178631408923450184459213295328047118539447644099329098725959533979547495527455466009085591025043719617725390738152790793281983823102261601306694010525760130530012480150154403603582827809360747614904370107595653621290796520888295592464015761081610214527959676111867860963969449539351927392678037270617792474327112035970027765130218406151129598478431310628774708834218007834658483631676292579597688617981260219265607574625458499297984493239216476003584123721032164594767092425711674494118191486402148074240660014500879880666103888408377529632903979374652097868906008480856187034413994360655385332826780040516957032162749768090299539441506250483753062295339861334996637223052310999705522760504671795202701949984408297928880821965249071861593229278064735829429608398863730037918801364677573249010297878970050655654742346059549685015426712708002243516886849497317010042398784812716884245762732895690614543119586533750514527588375470261205403157821356351922954949384521384138565502118472200516804826809621656762393709102135663732714632565986609773431502676131499998132885625484944096331912294138537797060886555603459216754203333928663467641987834785082023465564946503256388459728882064935539792670006707197372606938974077703375210147044055647437021081436127446667670717879483622523306966514265154069523069603971318173493827991491001441262045379526880546114973808442218979741985860383840473532301841990075548083518890059844486230777691734728556715807851943891649266399525784496845607418736105102347285655862626703935859557795634619408283116877605905608526963087592285045972571348651532124947436554903503209081047657721992881256716270654889909377622963142881507333045822747634868316065652568231876217426495766066408444494091374934839522997929279635890263978097245519252977342912039493390978066534380114274840193888030353162521999081392083522860930730266758591554394486572278203314578031612747224330856646294087548962543997738476311532160862297980007148916023737352459702271750722871226580550542792194810570780457544987414781153417697599670297057935784443191500713180773484679793005965001452349256015534404263082355582246671715212878228422519277710078553894832276648714969299484712180521164200677766496095543220574927277219813262608824236370519435656826500296428421574205596973010300307691609573497479710513511492032810763528384628750295436296824745694859197131772683463522703042844637918003219406541246505177471421335946595083493180671974293750551413356672232118529393337209607209156727311084852574938944900948656877220393145424684314831880398728982336304275112550920907336538771518405155942574914786491928365472087168188947990528514073351235202612545044164387997957137646323324424712459754889678432415818647577556986131209721595705100199755721360018760249322547313477116515788713061585321801866219709009534541567570448136486261290514628943205429286813725895948227127685814643294043924441707866116510838576434699318761245314331247729048256524529552948814198792133631595815677875998156795353758703536986143323537412183640817381928579821569270780546249842363037970205383023741314026429154028892345964483884620419184732369772533287142278315994162506905265973775819510333612433469130411728865298813122122257051674257658534100831314139208851531561509801371953926610342849122495864681761823838479988401664478209356477143213948393505281946790094731387600014188330415793882417984366689352496328672457768953657615785446673682118672063292638246228855685999080269358481564194901260336994257045442430177208179336571175006554016043925290115108498616470528843816482915209864883442918204184939505597988917585638557481133400275871511565993731240940897637409940219324362353324335733052669991989730136642134193600469874201183126456294507515766222604726421934924444629264458299305635526303612026526396157594579264548435823787784443187391463519308586710284067982733224779506194268309026974036675788701270734577748502162474959632576352453929821397286355456456317545880894120654479472308176848851558475481978670562248249803975056587531550319586836667478884297882120609791180125455398664370513218992348633806600672770949158803379186424093528435818195224922625799137071505636393357758667083864026139906371831277403577746210034047493834547067289830250417279238051382567144252370866509890930191235750424385287578004846679669672518549744901091523087526458685608356784884838259171700523132173146101838274502706955452628277861218888898408796938605257460214515641719389022887350725711756156258836124835304458497517776331170040981914348120212281119691278696129628266032041260169513405950518880195609855716052689351907510163073842804405599847208735737530796860151663055761518849608888279789811093026561034837183307540898919376971600118260822168209939044139495260723723934633130833247864427120959325249353803206021069041653521409059154610615997381634883048921470199183245643220001970467737187838594484692954752311024912519533878826192288103835680693172318992523154373377524401093669319290108220163087859091258259180998037358828707501139172499890937959306520976894906534714697001484997071881069949505663534092144290364761233411918687209122015253310931007355670901809596044838960821349612807728780293347889647209254768838388156676427661784305191694150423456120611893074621785985816139207698051076359008839827205358245493809768594482779054502969071879165556250378565467173535413701594210961106083501585618034038986504316287101651232324010181676472483564747427106508621998948776659945272774894866078050852589224429508691589038067644127526335556099754970605898119376041048609023080680712188758145207347130312111674438781764392929494053140709239108826202749622670514893860724984154512568135732695403161029125098375661155052605817171041912298535399397815643300697211147024089232155052247063307013855812827132027259707265107499614123438042643239338259030809630501270678716851181162413057618750718834480691142940076882966563034205402397181030243891774489845385965325708234759293907219652823393706234386286284409440839024234095392864959728830998300747178363037655180883856515782965400993556136191105469354642694949652053371691738220195274235848422415786033769674898862644847524251801989561199229015617595555333561586160602493964147442862420880211554797853532854693433460546795765295031566334761403577626238274113270230858677622988480885996077980838591704749807203246186415579614848205090452950753005860543303480126998587060240870384799367783488509557403069075959922586277055073684442272279146383271521817331219048852269648838265136096099437286330562999408789291664776817755185138982498541070743240628397333441759798908397322763555793883015014611951546239749870402664671385222127626666978404603959875848233605212460216093562779697992963273706513423450265431083312703251456451809794362739367777613713742871794803115047869773753400578941110029072744643510220263038769747599981794775240972949270363094121661283937315839944419924356678682948137601548870010064465542756845654118393215849746770774189733721851833825723604933267758709421942765299448037011773552922790330490230630187054759079942041308413573488876667285453302673837525795104606301621802892513050942715796713599310036276200390189018121996741167653165345220683476596509127366306695115005950415019049240281063261114771480709945012238353522140819455937337303291519189294006239394017335370578425018504776219666581926787119909962618343247515173930124896673699701787769392772283227861198103495660102350061049655075599833544481195436565877793347035582408266432579445597508882397465365539972562548137373470180825276336331898924907529582394289774013809968690199225107472381865931494246773731306153857927119764585855483837684569973773007811485905641448779092744180781182872932240612639470272245214111662966387160703071218804489633939160096088187086207278605617603925839928231233560873156206350843859977546657026445139565662060750411193753853745686347008046870337833173489648457826175311159978155070566213601158570375605377588275257923142908868177795310079304622748216989785373676979514142029037531926747967045609790168347308010361283140835223376744728401863608412025997604346548824948445003774538334836474810511139506848623335247852695580196113129517393490974622312382330823688447261425452647137741934811255861642903885315149696605840011772486991216627406959526298343975911080335902507165645648662496657565147018192775790998538234838870796300156648103249623851151470844484285845058780961532272658399530684920728853882474731961482850392917744700538279017551533943591629871199407163021225102883840235365256173909562463790492522637556569607444863798952430379435870105777650214594826446422443543639549732928142569385690176087861003920283378878737490603830989672526830528418551593004212751238528476296531821119675861920881352799501188701656300192436629429412855509563275437094636963883444201367614142963658919360714675937854132184806680648187061330686392950809831971578389188898520505731029819147088069638450480355587339762805513070771795237692501098122336286027071609282389048650713369953322079131515660968932666730633156005884964553010021828057790790743901309101159296512292372324573250580466429162240143390930213912024931778609684969083225717946193771028450544651469419782921992513590648564572795949903451971507707454338592687139438231739576682633582674702199800448341501741981497166887306855998898176473048401897392112596702508744501042953948083029069149280157114725737867068028259406364538828679835267456294618726453894967529439343457565855682931151685767183741295965844708749171290588514219266604984901155407625623644269962272139167861135858784224446533659105877029280910925665037863377596417427811342239821235645189604203918646377835072285649863412194452822833723276264554902798835163163497615993178390357460758832349811853211444680080958550937097025019599497202843091093808930287654215040130243387367619035122940425719122684844204491628550359135361522520799464194981797445678651723836011265923866689666184526918262714162998678344072968061212859183752772878043483346333382326450324048238901144476464303639080430093600304668772614633028361973937888345037269284450202995663343488396508559642512788902138644009256773083555939976163201367816719357820777632492138688821613020048977972525565556349970568701101606978461610419027150521416231843688582199295285332006997116655882632418689635073434324244554059034152009860618481546496468660561078211432694322330182940471727801271572382216205247061860775346944579128257381657503334024464341501134810124448434167449600232883004841337126768904378170404196413159827890975491992244272465002446730766947602934967435010555389246762617548106985256320381345526828161562427739716618232208163325843445670116076910576323007397482111923416436511308183305975891918429842670117251998367008984581075477905517993952110857645028362480856638451459238889736389064799716981468805996369783971536807447431545378570768723158335958617048268484431823642863951298435611889879419470204411980064921456064758564655703086958135676667220318655931070288586729723229038408980462182126378063485284908302843601324260212863654439471358653970418285995869545495993340202010159603384955020131861931536772140568928789700473927037320966407025473895184547691326077939911017681447206179803147261326084531808959710379622418347795640796379260776794255650748381136200963313798927923958415570435707543343575580547379135680845761961615901929443266000324346202138256965848105073023671744038054046696847146089217650706810843715424077870043654847740915342380219962399816546834263122833562891813806536188737943379412037402830402695228079924954531756120485619703115210562874463141449170811629488036291446166070653511301797809537111298457875131709254130996303262852703704550625285731136604186598508101754551061017510519072998962701338062190385373218845450682968555638685719932550694328612380943229534097423465781297013887919071923208867478948128102378377093855167230097944723655244954602676183647413153765731628868505809623200059479934333852083546379436553634800563221616431721883869049459074429868934081119591994148772704026743836079949931461450977163290839775377540671538677297357747001590366639374184878308654225842797385994602699076238262944222346809969913994663976973804656304620934002388610892572782495264371434432226729904316049971852815647132595309603954882802977026094068159814725957742243683802509712962838078043419997387873266398056158531284356771928434188483807400380300681625192489231155049258285210237905643358284459926899117095416133770657695975345745087209672361418257042597188872238636582017068381023512112194833638796459387874745400124454477226945191937678855063534442135072820389430737343404270396323909704050504017181032279785830073655533521082379974498254057512847771207848422960255388802374402916489187825005218238696183061567923359589395722794651187057291182113532709645396795998707399224421766303362897610419377643076811147848616427528705038926978205840709354518496670764550787836915923858480575299716860933495058121497590823758331415407065208482462173942222174573133845889287734664770288579533898441745291565595442211847094019969366107597035317094540601836762740779806257112970296323492334843716239367789467638081910168134535982736749168920815433557217441347303410742763945943272716776425714170779692659259407759820436846345313032730581365113885549389804262335612959465388091076124248540045036274095881659232939431366986679980746740485838392422721786096913419727581683835285465452271067129509340655606951513272880015542265633401579775599127952852566611774764366216263963119276436401435354846057485416943268829299171006200128418639252460835964899918980245086586442691458679794026545672390384633597995256376819377041542491799534933141591155635070797806203970420095184687078057573525796132164841019073128959765471865183833929563543897488285114682894170690480769176325473176309279409889996160062773207630436477633882432327896607971609616206071364677295180867928174485025469417428665709526020310878306089744713480850678583461253309414173130575386159330264586390745781007918687518098540406617495956300545497880025009224863165906878047129020993061879457078305076743383446739682660132527165899979964463513790346112646258664830750471702681654241333857624268953877891642116203571964521156629827338418823378785281962866673805189320333004221859103664170785738201094810186970811676455849107262961828076396424133401201236687471006607074420193852835773179389296523074354145815981470166691142560684588394375719959985363657974660677696803168892096934521469551036068305717423695212012995551119400440577617945036479399593268793397405694963577890576970112330892016203920563400892657579286344690178791509003025774711252907085750315851781805086649232845442514246379138078417448089317626595932919180929944433316955870268944220291413196373834678635694723195624665138254891009349220399604597215290314410046638423476774395982163762180267304914391435622344552723685233520455421305967543108754084416977156173029757834615180705806418655502558797120105453495018462537218222568292158080868776866806581659100001737447387247869049770589958476402861245432631455704449429271566390409582248895458678398976553233191497938473984653820866364413385843779594697829206485791982843143452747299093534274948752773376974777545520154376853480859886788737348250605093394859848483201478693869672322388787188947995109827006185471104285993995142227420238664433050528064434012634669583352980676438125238168282754289805459846598596067303890361012650560242269963420895098403032373707849746121391271966273332229722806520953726476235021606000547332037317084527418763561789865117539716195585775915813597250616335214948461029232659900643251277196230741438278856008657247983094097154279843030997448484967862733421925124752764047548616838286544228834577350746345948722107702651848687352074238636865064180397448545738236510474573288961491026271847674831142908318542772566882489065367203287978714097577562871995841865159785236658121755206996481878131401122612654241271907821389478322791681693528055443851636817614946680198761784407538791357580665472401726305731387115660950526288788564640041876607881871828393506060153501185257608612780422377758793235104938420901590785122557871885595962678778394609902295478086532586522328520501332854688293558564534597904534454604648660871764181844998660081240829234123002820236537958179339939805922121805766792358741360461486826135181490876417683998699297457193341279046839438628905265646873456051921483293667235458940652440555754378801559296667158586400310576881240828603830419872896916553270482896923663875010643713709811279945048158341168892877545215210434622912080048163444592669762898421941396939405992819717832146819752507902291935857542655532811409826236541848784181289931873055214172974947074665455043252534373109373925236734231152815827801337238017744134682562168476297604919672521955669503125396090937198345061805657753519453407158362373486755067392568182938534919507998245722642959568177582149289861220327627160237145891340823997142021765591168307131787331061252075129191495851418348124220288387935185128119734682941028236700619977499309942299717371320895452511413606682050707151680308492865466794834977354214857853130032286511070095412206024507559323398766055128072412864387579409909862272261393963489645384800389471021135459475901449059396112250910400323047243831000653510605777880762201990226275935584149391269228643091743789239271786140533820958238015937768038329766536050371110148004801939664722831389833009997744827147990471504630303322746284793063670156293615902959099051763959721814742010043024689571415255582409021071840124178526952557333725371589202355276234306863556616761846885559779982279022417798204620268684140607357826012688299801840966896371489633484192828689788629169210721975910288915735615617002259006660116616282777957160526798218143084490557821504287297818328503266271904900990049358819557870550441958100349086015228805750447574920616141082966711128225879760027477875568346916998623613257705005075684584880614676256727339734844172086523423061707019056503455554095541956382408709296373610198562434993193683564239895991324968190380354170784171596714421141543916398190530195087653050930827693705713905747662778687762446837647724842418593788859591184106629586226309482513848768002605264782904274449055038654001689172009003810526683387720002120115131076253092888420007142890458958577982733075833325098281858266128414366978668659582933233576661197233344913735189810155415863758831007422535202155251968360571229780846561411162205808454915425696057920071511588808953987805529495342315246637938096431366924437157065892338478340536920743363292618847382580813489970850607605747777954003028907982045877339612260218185754228476557219871377527178804846389364102454673530624764886778298858046064454590438374752164150227870314851829670469702939511701107643041237793715521185675161745174108841427423210301868556069061729205653124676053444595789580126251112676176545982031711211173094218325464935950510824373828636313577633212354039815447513764890325178341870313718860618325861257926739215696856238337940252499025669518428728330708355537497257388606268828928066181289802209726993414854514000580783587114100894128777372022657852230581823670869984102006474138917948955820483906306094608451236937408792911005156193919972798890063059769479530368175956608363354048359777361886688307749598748091621771054570337251517805193199300938244145551472836652937392325770015617589654013948788287970659603960269481846745888039280551629369243349778459314018327765182370374852290801576994312074067985806071494278103959977930491894838373536213340921888319196261736021292774912290417774000581753712761946112713794407837380593957461014880119777858162047963978997461700412238028243786380675765460440157662966907695039638753214244486466124050937522218702607909237546446684773558039005878594405668178435204339867057278581142454399586495473248408135894092752867893194448200068555942029789373393170391605967746917765816349047689713733873596828584885469704598329083559061947811115936476742032138511938823583454013447121701311107926774845613259872851013516675801904283132220508857188618193576885139124287526088977612001742567216494931915503888161170236505229280478608508864098299748395861726857288337060521861556645655468314813359771646783063616036295501490392796732476223984567659145536212158986053355797445176638538460144009108743474928428361015850875461209536603173189288528023458293014141347355410597101381066898011773159625901807845583608099080485769091706361041901098858693788486889155087760655955282362104435383879623657435413588109781332839267870368074618054732786928469256673952530002989167879145138281105972855782810365556259835830780710382116859788356497092116733791635806351404651002145798584269910089292547035394685143657751629037601100239828508153396683335531807037874053380508872765187669771829433019445322792558831344722413154039590704868110725307403942127481876231743486143902209682279137062388939431472396500293281692447713260417635343836228179972032158432657569736625330815392516503821540655037632330506505714271631066548023961610714439839193722651870766311334608734429470942633234552435665141729979052467220344808525664409012779243835545138073395729730754572889246892104611204112476659690772614380329068972640024648871912122455239607204934557584742838676917885517620465366496581358397768620129447356808889295228013334163400644224887291442124675683504187183884887431314459776204741264252112693139994484887374356356257592006430546451191590584969789237303791423446328486730539323801863275492980710778887298009156783189520122565636510846063639460965539126721222673635743324720403441366095184933899966469306854186898459446826704441633295925127676011292665420489749860543199989911260441561633968511836073526767725095989143713430385253448388345786859818861038089532229639987867144817160210878573108607501961226543897360390199932458278647949958155615790831513219018580874369735969233796219923791393945504744914521784270782662711342724237695190785709175706332302605226757904095363831868625109491976595187098720218988360391427559901802167271483070910990774897703001363239165926924932940500120544913602333621553446993860163811086006736229191991100715576944685302187873558945305450851669916545280982520779122263831000269992685957278257005335906780287205729687427039019182089770576231017407582140387061101757917628991823822419012484003069248551051670649129989920284144472880264462801799533181098691806272614761031006828446367723878752032175088000652763808687821958092944689827267915239248413582081093023870329034596216429899964469561820365399848400001555520598063350231151379765207976957887221237560604597091058113937217371272716373184703555423293790699042366227075226414442418461919708979947464685882704849107450418119163863939742075510267708278217192504087544897780170735133808692682042655480825188982710484878268352369720897574116661754318943140525226835802513116864983560865984378858623859344719196050039744970747779510571939809019218569421045412682069016190316150163605315687832239042347001520315512784682973514997690842392857629085886227587223683614300463374634436951267949051553989034745619904383113068434110305647548167791839403497410521600950111176207196835654772638297441232030530895255774600082022214905437810028689830969756937731743796183512788292598649190443150644886026343089632431896345931104149295998731350476833491847211533629047633624247880855292776687869968021542161875515077285719997633519623231169202875061354637667674388251902043624357733777321893390123203835020962725321297360980729118587138483643028966535414338849905916685905761233892446357653754540604924643494283463542134338806296248509354946519490128789980373045564770393477109343549874397566432873965984749615408502371064092608133152500624587896637640057073874202763039455838158024611255286092909747881776493006966739934548385902435825875640943696015944385830974948130924723438496560749624622613422117199442169952680177571250707450659107592244022678451588416447656575233131465243141648051779932371635232275361446418597431679032242858038662292302734052307962253497710147550970505759228691465928382514249419221304427861111530789141435575541732517257883423167104747590824810061655585156742917326909163252717069447278431451791902888767565901532635680236027339277882507263715375966250864922903095536562654340093709145889763809827023776649546482237791175603225394056594768990448323865646486328206994758449996777873580564192232287047712286587307306086972131157669959169025700532587680289226782585661742903389411309883722612583831205012146926601045673945660441613426992875723224382694614975690440529292491743431990581067738318302654346690165040943125373266524674584316392173703450143203158609714332871553078164087976397118472521315468682861891667783894375218983917047273242456172700672959615350328196709587587593202804127346648286264107036799383059279317928437752758323390688134695522833783875686399794934791235519513936230919322208344649473474503884157831172421640139145336518213209604841999027626252349302431176909700218549100483238000141494473803274722821823517643698133851287946297492888272923070122968073818830853306967676207457908232502561064489920982647949401500357031842145094354775077140042133385133683219846289629412371513986970889604908832295718858097382873905172663236777631704112590155360242283740844945901040183500368731373280038677204551540501324404434505394103832380510009621832591735651195959330045602711395380769553616875489391913883846663982995920413134474641583953725572036639311049189048638872420644018105912828392494634875228643701633736657082703000549431905157123442051208438275892251158773676150065600690998980678516738925701557746961197982158084769912050999520722821611181478947856562228352949714626245758831757885878357692053938677773619806972974289183011294569014026475824055779386388662105780270306045090169886830891444115337034198283661460659290103216164369691831455170860867830832441005184621802510783027275269137997079145289077244734913052590280572359055976787738451256231569878205940670105724449509640681113918962587842575874242555512941886109695335896098332004279194712092894996634174149759722044306627925056022289221095919417220715926558501527167221646652466879703677864019506602803227980336726454062050194378548003919422274599882632720737425056549842387872666690225492660870749793319213837117126585177086512665313662570131287469374571397140391188685442855946375244069169522857106379224960204270764736263346163911741127482748051553052553492085655390639568251365939878639403496535988195331453172953611702098231924381402767470306803211672210923528651599152648273769667263873960431598102757684586581691272622653064951623554078607848083144361003414256228458895821869118556155899031588321388209291681989093639910716880656129443765620093435472046501541747396167969257015620232431728977269166091336666048411998290698993727978175514920667201289026099006934811996738028008714720108070180176040961109599939143814915824654335074908071448587318059258965995983078160682144997112044272062039272450665414972085312846153035373282030480599324283954994571438145655726827908198616698471647327349590133857844574954252303804898257582327890956919286434446098027561513816151683015619262857637943921887651063422592608453004592694877010789133279403335025143165269670710142786188971335077197679273013193323657891146562354073503706403505166657090415584670564103993167431323392990556855597954787615479515535807379570595005396362633144589888533435387237406649176424600499354500168492637628609188499900380937619238085673330135129040279506088211500804038799855649625536646976038232505147138469693765804224030713703360006322855050809301524934123013463877601208807670635198631110271688654148039478166671287065443601559228164594710113100779338098832046721785145563021033254719468096801611879116184082568594107945023508762942034956589988281456552244902866956057642779974859272752215867008716496030663361561152853930085743027255269683308430920605334062748053594336775609693360965009912518144474766352729800968674016659925877158536404657143600022668768839203033259992691456590159675180615736856594819420083365209633829242253164362632631674761524057075424417255208042738802148347742727917034593824645851933672485389578159612391934477050230588838902514881820702369650868727284723249010495309934716748760374442265511425867704850063870750460066547899637252550882350755954918942309167415875881472059516677554736836419969457314314265309461786893834584368672327032381661668966539167060294935461894274820628620193575011620127830752746839877684692565940778178577372499927036523601325839434571530531396723288697942216105073971788818324100316960043935745235574127143983493721130180605318718297316046831152359959868341137444053584731425101430480897015386186295335901677289752680596537716496436938610830983364655759939345569549916991409666732471355505288085962287313144058987222488344178347598286976826652514881850074219487185813961512800809250824926568866913432972808917515921924168464596884912198592167011566666662302737277985931521389095485439341993907738378459285008859337587835626640642361363991770106558592607732990933159962261572614705094146719389187828083529177002936465950845675044586506802264823829458067580470134043923398537614714536196566674171721347606234136127016956932369252706721149165289803908267332757221193430540061574910965933237373516455812377369458336190556655772202255222964037393516276655825304767493603888346804581282009044351007177056457733787808934481243028693094987592303442342029230729910045677406789709239387855550729982959688315244028225287600068274225823683793829164340656875693668879510161787320024599571946071509832000181000246434181146837062507841089535782061099615292093467528668405751432106475350438790363927131571043820406970529656983865702968645224041459066248673965444094158676216052563209589589595612108470010575202550443473884593848254015381319570449299168590812649859551989840242337761225968883945791245909081035133441960981361449334057942310835457817275417325496871519481725678603860588449105910219773324763383529378629765591122028638330756525152645444050716931611027022499345763971821431063472702146202248659916939586224121384627002331439787075641846895370050580022261597774249100473384439446042663649871580938897521640291684161282491239122119012188048577443750398908539025114065953535145186152969806265667841547915889113046981661706511142073261845167147811505817431166744053508172388112319956592570351930357666266195726832796376335240707815873506508630179035384620172547198024331375267580225448827397649280606412070379943672198520719952375449858357998847490572806507095526316558343239155838723193606141495271604478837564551854976512633260524038316342714833568264465275645583378372415713568607059281574257582562853888972455123703817023094999160264524282853297997050068509683196981994714107916228178024480496426599088491492369764963585975089257456999663777209973265584422156424879338979154894788686602808500067547089929077715881404408227625774366702794837636379211842819141181207722778507626164034352551230396155084540311512269922200131578896625236668790966253851908404038766034213613233292034704602558634857522823292245876314826124457301495219447495090255745929848118110315229421785321199508922748132409308977014949107597442753149382888367614355940692572445652653488995330895328867896522229947102605091012463220086222139637600720521594713787257537632861750239162854623816937766954732396728698165501339807660679810857905624416850756607833075236592215091236286510176018594649341663229390814207301500084403605128408658677565000722543480469180573127147890074462842588300314813627742671167306037076350581116813334965585658983892646363038282009226328708048144227808946559088925100722766935951391505805783960841309484472864233075037796897467325962568849918276159944052313901176522551048456250087385189561911288953428824142626052452136495341860360167834601467957738535083745041636753013045189443272012175372461619064364788575805350855910683506494032051149145267067231464274339158498968093134513140322576313733991896458203636320373416502051416611927119847721080044148269676606197566188516022221612525470856009525256565242957137613790297113791905896577820337811224346891725851394606440350967066723840172233023620898654402527363272258435124319233659035993445295938183835317713266482296465580842665959768777653667425665439673923703154805034976067178811292711132923763051599437209953291692560353944557020405773316220201081903497889949798170962475157085282615599074761463214755304800654719332714392784812093942496460156856460009769709724671637388651282955878046727998909730521871933475102033058196253558687134445975836738006822940615382266810718917596216750616322365192451964661995579618488852852633261782719577965400943072562429388049958055946607900951842953668903345684344423152354188817067163306687500056424384085694844834996661583256578621031333684081547107493969261165971200403746605245006300673786160040828736272669225015174506168567048339454767289325151315941179196200115853111105761997835305946070262321010058229436096190379013692671311031748508441606869528462136068627568343034357702552148751238447388588883348794237650489367130706532076772850078348705195834793421549681311770845313203625540694266749414696735766195748416532367160486753484169599995097778971256674769366931916131438062654658323915798233827122657866210112909716055292993164013887040152621221325824967270277549996325616371968705019175440235352686824141557523653683790910847747882759429205807959576582089421963087734314903862696055062928739570193367667165214475283525804653912103914313649877849537546353621072367549526450426897923116076799889910927357739638975921201704227676643852314211938369285084068567502986212415543272772117828392996161338118441928018948322207053948293425834998283276153967342804746430350863788509532506986786966545273266030684454100413560755787921402700636451439628307923972049900172171262426206407783977282755952800591546058017216988181320584449044366546255600134303018285050686366639723256424044259959757317787038931466463140967021782770944049172720505359042791263946511433305454631306103095456551186790965713265131170181244226066875645190669116010634715954177899576500131266256237534655576739371590618028571767660332135376526896653501045379537521629052434990472423574678103086914719135855817437624172517000619065988342770776784359920506278566088368947286445028638567229362039449069733486824693432893249907529163739140769079131880604681414337160795132579449693068423964767059111531038868723389558291010512874808018130751155343213969335566326633506487028806562859192063665656570760265119151643938802328830243602952496307735848001421623673370423743216022538459938730834417078455085227076019582349606707273902090022527097201360404727382318601973540185820066710767800174888251902571056458366785092031532703150598593259543260150227232638382476764936007117844349981111224923765206788743673631189134675528808083311523417179058406465315933983252676666219309683255129345982778047454814118901009103406491022856434255652005929820467959401757328596478239157993892387328036832108766540030856924137897123451642494772653978377611582638268497270485047530176064466683952654116685550319896908668061729215715067302112188099189168162096190030552927667901075687511868690314775484142251980897605232051342289026660562574326246697766112403116916928493417981560979509256171810445240941482641902485620428699667313619429690267161842472001151744393024884305029281185112880963631989797703947885337182608304918177924016091840300306559748746090379398094452701853679329916269682089694686191838445283965559956695738389539924897152765800368894888253119328351601624057207483831454549036374117344615682087415859032062498317092836006607544181767233744529341482309800900736584695779323284447108494695241536509900500070185728321049384839699151161114467314706209988543437502799162108851383283742398406516497121633273883955391911178242985391897846599427738512549569586547192845477867237615023662961930755593584696128031449015315883060267177143232532006588397435127640329514649416314703277988086410721136346275512545344941599798966470317394346777550953309866809398984463717250810529819985954126085898458145325783815387724008689764824627370524077746367258264412452082569792580449355201507903207029351379989404804024111038131313621374055250258101489602567897595846988558461908877026920349350033694662555281229362632022013222829429932474051430080760722707215767341377193354313783920088319708845103026808586594051149196492983131842766118323750878381345657594493083385169755144985277214667094881173628586260808703127198223795062559309193904581870958698266257249012791490781781990683565694491127393820890381804923739961329147724206221324391794690312362426005437424014536356264108166212956555002630360002367728416931679383683889298079317606703108703353152174328617717224881944689340105598750757785912532499884423538767711450402196222755291291381147689228065519345259936372734674464203348494143289090773001645743650310857964376514384601190531121395557093994381653943499361604896968541576773281037449887247812752962609848585488288472501415784944955949283578174087825279381275796875758322523233646737932940658885209397541430696610179378295525734633057493813095226536885536908034327496837495267881116925186491983273658670109328053760233441190881612984948034898191517707448083083017461331329880519157088632962634992680748874451770759000100738835005953835924973255560365116623034473376409725552893060364566469370744731167086429416313398273095922854500165513585839821168145969734983213771500627998265866761259183718962735807507003754985787378167060245920879006366042963572498250973616434327272252629690033027338813272149296136907977105712514825663802040645140538769906388880337658732567838490454220693016335798718339122696189598313747977064387410877314618421567573927139628919679630305491182006073693056872333679022572227977239117361313513727921447404489487121992857686561849824256215206544573128810392766589411151454770499012287273486588963343450274415425909816398492338889456902496664912271363328858430423224003687999384141538886125143847465545984242804781729863056495791196388032843694051863862859309431939122091750869315669594991920262937145671356715276104244588239633366695917552957500241994029698113367572546760429872456032699189358991755450770258730509906538160730481803994960933220940706044911462823700016161063954927534056533885005436093727768394593335331612192349720689742394011597008989922269251508133333414207574165876857291603616083288112065099237834582766357604505306888505649814989431651309244608466563260494342779382385431187910630270963330311435010610978595636280417599724344611967837303079231044152505239185294215300598735814696032228073165724393106600849285937775811065698173299566177029628506252485762299058081511257005275901855371126194773904694644668476343560171130979160610943587450789800857659142491905223711907751961657433822366430596141146967860983035321684366726571849998618812596973190333441210402577334036024479220778506338563794523873619443443607766584421713195175248134726816891254891187405415173388150849647164889452214025460950554504965817760309020074587143143420605086571212019528242476967737611204603274775822383235214399848209801098425530126707830864570257968985171600538458850002433252104633868046939684967841556277911917245926253529321108757087247623684492943266129235939061413557341368589871634891494793570502911396065897603915543794673397316928223061178141742313172590235532098995374099875002750858722620848808967666048712645163424480627289297405331544030278247258449067178348337222151439500644401409188197671758819149495941278693775827234054870182066151104119443060754663214749492712830368954419975898346497730016465593569308678841821401865311170697102898006202932305801690125509486869167696822703414419527424080689907786654289363869054142965416110965898721713127017141911723511013836666134733320448502225832580123685597363824503733115075519015518117408324007666746643436162045286571589452360584762721179571059496467576329433089508889286473455666969441261200297937079606528756586971367430730853341113880760046795312321020687598821493828474431487661957933925768317675508944604531345696065529254676839875405131247648368002495486816062535739938122908207337004622195876938644282591226994761476967697815821865891781683898621112233799514666805457375622469235860088850286177592135248977822744044146584310285452696849667027534514422227840311680900069117692210555577573062825789294327735872544659235252646949062763272398696295001447202077652646444517169890799407609345950695599236420020702946478134392430430485036935833125884745701291777952092744426499370703130999136828872773462555833607118835174112522861239444221741176750331207256238299837027013368943327039412507274969457494073069559102194241288681630894037671824615718150556610887365956678349323329318749629554797259957606744629109038412377082239623221978476213453814424863959954278821544309955156256601564093240807390164784452084630578270765421004259756392218828961545728220008022989363006454131572823643747990213717912852194225813374912880628873663008034886364587185572112086460087682155786732271915003775908124802525231066377040393981913133802072041998596936142326347145443997808017265357310545100487446411945014556885715307665384319203135895930695289953048404372909146452749518372417908610534642405709551317169633746714837246471499521349343591156887996928067481941143338140531848044393253885298925872257423079214545332685486562080412019202620993733748541806959807121823839260867111396315255093906870437055688289172798905809899899386723776981951526858053573500213494585236442917698914397837916695166591333331673557736441829483765900907665536757399534629190037814254415312869017140287274295775641034241447514422031858527866171941815205545940340241317172322170906904102208172183548068889590821119235330109218323071009706541848990801140788855116301183401912594046006015451384827807345951319720220561153264930652089117838782871697096748566816726517015863764082686081447300814598328996143352903394783862833511113028231126765793123701638182686743154099832760213299903007689768570698254780868357212131813643625763771356801542054964706379320405938384189114076211863406836595362608655849020243773195370720721991152828754508980147055594488678287495305754000918519801512334591320355330102536339873697052149602727396891594669463204542973261231342126783551826619262810337237712982975689360139235179977961975353571275931949582790304399923904805443165977773262235111515496843789926782127298323828042362563978339743888902417889107530539187222041476792485009697106030654459136224126652146785610570902030240501947758301974947266606634528109077145878098807579758902125430481473128564172080125442691060860714636357411471743543557115500574387236364259941197794428646599267086301565957418192626109441377368393953234909273592166238193697801501599065248686591891545243615120757254869654518510474497166180660135787097807806359615375610103491448252054409634603878717543227224437876348841505077162539528560993364106716242076881743740421706045527367763164668083295288101408532359327591368729542635572705123364682729287023926034710286593598029000157416435855944809430485935196782904947292508682373654281865414750181592081329840818440497768181096892714164775232554703938578888304305589657467297906537995296535497498144713392461094414575505574689142071864203575713535032466656033571789471308134464489470580940753395343205654942743909528860996448588412852207151686119372814999300461497569993358028617184808533068030370315713157823903075598238038942491375897927470388163344002668489954874226748875522663714384262947677566340846871960145964667473790723571548920432780053735240936829537324079348047243164961119189856233757990667316827315083224916814971839263314285442670194944269083737435234051935150792875140153635850043371209140245925224412620328387329228379408837523872145748788424523690811424977331951997325679631236337355770751973560149764286933980573986066945455355707572977243058233860155590714491823901066588208997922635290278830736768323900654308199836982632456939911062217742210914297581594304457416840882061886258339565159426238460138735640546958284416913064703106910743813057960785800113795446897841490655910308850975657119959755781656573733965533052653567500867398008207572772988519090666333424796130158111948373362482943039135216538703148256357744568732217992784499119477628480368223512444167225134504732600739780629284406380220224250233208352560756350668736232127007915175243592230085513525163761024592326921582814770006616205757149111777049035531711392600488801865280052601595009114867960808291969354195895084209013273232130401474996688403146395439170615107347326251177726312693966479156376244549737106956655172177830120357132440177535690861111087497812102759278005789634630812984445258314661290771826224765994842977772385151598348302702365230784516760729193322344068454599666267649755997288577321553870646917621759219352979659471368563525117640785917394931443621750650599965744019090811529073106206661333596525198474416001306670072137139657805813028232086110791359895174183923247160528698828665513976002822853179518485454582866208048603277267296201541071356666612218209708764290633035743202336959745526098833883671551846773869469600306132708255419013634539243930496400206528624350568436202842028876045032727807440109574203715122161793375147959719855109705028506257617674006865561793330014608696129024562246490128541390591005641174327940014971433450007822920219819702574663401281693833508922384416917399858097583478180359662711648669044379787040958689832858914943070096966584302720384355569318578160561592601607417501394961167712268454922040855504675490144674777841103792133462035315758066678162957594955938594811270102226518340062699474090672203039749426930030549431562368627903881470664215337042357191426775538780382846799306907170256817133725716534730374668833483787229623944461072895000638388087270038758757442453992083466864192479964605153001416969886886065882013373045656838227389848827348026805183725283066745372168051684058075372089004882017169294186034575609859306352774702576665785474976482363703813060109066557671569311531408451980621276714987610016799156417750072632696988707788289107546246098413017297689160453320832324004803031506029213374984486013633760745726995727734597442377185706694557735460553582621668146655164536079154821337790362610915164932327998948407498895884174232272421859834287007221274738582239636605576796225860843406666163690825491692989757470540607078147932277185461348135561609028166089079309717135483098678476085321224066977011975469200155815563415519286615884666673888275133079908438322980159240893097352027546053441553247779466473072136513496748536466083921468345162485338192247115407615523520248865311194179508148737143100755362099507970894795596217563137025639754148766834900525811825879155361663940198796812983281763131923404529468798354638515394096372227714008714929959504250347769525424038924600390299018845569654062115862619269064872024354145972207906793074097592176510135875706839148278186217046814271013899930075024238219122571102359069651564462114220787216280099729580897835095150574571844426335093366267783272663596103947467533101235064998912118217169915572739258368531768813500181141696182531399551173194135041655289622193916640313375872489893612699387677330060895613432641159231939296200685076985797681066582703468790734487309056742623749663114478102301925722583021112987444370359507988706001108258178462477136753429929089380477968433422531768404835164404784823508320987639945000766791630197581749379380240760263580360557875494486404590316942719575232465537794521557032476686442445580127974014378010705099680259473824119615779297105594292247044415153282718445764344324185410786356585936885241078358024029972187457575786836365631089408825042659429287069591531301453255478428963256213566821645480844212834220693974802983020471205488334485118715400862937148843118482869762446534918232070176174553415044483409460006527766445296342992713566266569190184461321853657046764916321276829817030088120783065837422102231407947610917773357627302159823425572067173240135119685606447724738301565702327042029853808266148236073825453327412237962056528615539990183345066358168155288982445085970566421308115514491508023526686725208405372196701321337841897264069257500701350929338403915451938329460847292159191147886939029770484603721025264308367843688922108134177163169635194240290037787159246209643858362087893574314089501678214857484224225655067532811686613213357638873918597019035363722850426869334965544558716861400291095681778348781268851678432073028209155360473788141213487482655894196450356475241122700730714975726637241295630234947406227098109371710733600020705555484894177944488813861707461733501546094095040078818366791200737189619265764026582281644988500287992853101482011836916715633322771814890162736618466364491338950419291769612632448737622505805076041418331447349152296954757655584988523030468162227478517810370855246299015297808164013003845558440586254445954282494849480483932674873063259966352596867472283265428641791951228417803124206058024199704821299651533537862323345730911739833800053068412188167460671814893214811144901936937339305012409789289465358880945383095241910059509328273604673236098258345830467172382061114175825930130447021813297606971130680012127762080733425027471612854324276625867932109582901120196912852033899493743840855949580437614412550501574045186360018953963918575642142655017230196559847537601751169731781695191208246642777537875832979067179636079168518438070193892634487631062607473817831340885719571407413464324751288582388927863748580993599631629304893330410282372319772568346453693311034767783974689861371379879472325306777612016647403717773675433492941302565933896298972741774662038777049095541647264945318242797775828295895505266771557587701117838518733563033190699645423668985860560047683519215214583360542352450714969779129338521333209848794041046622681386471004873304661004235984677604344857265306632788228033714679131927118102595964004074561353851846357648975718227047157847305946678118981900241090336905061916318760870024907935095446155442123265571911049002013053378488966160845912033971986961342684115336687855369539143326155636510270476479350104857744459981721746350695618301981631187607182399389084752998054198258676085112468519301538312925399301495457073097308129293346495805202127904076409030178805493541579611297704905690177686914082438442910985273299301418243766274682530073868239370807737271071647491625589497618255639055247624116242233034487260070285575875448951363794806804990583386512688122224724409481691375603177557636180153407385086456252700282417744756701279699663918422252146714239745674603272003130073851217938334105909871718235147709449279241517160485923448341781618896407854375498804947773993384419832600331187565684413365756227398086012545322824233093933681594473425189662140707968259850032854963513677624657549157649528453267984504102467412004846403608971452573809436353704324241828632817151698873566135237547955694016588595597219452461231124008229789616233462600911974923728241903388847464078382266082199648344140305764300431116612722405081245151812284328283604526051869918199229644743433796347536728703801140342496496533829144257658510346210429108741901801666336058894500168565127103628560242945713310544851078889421187923943142470739838881792526903949388317194290418347330017429013738770664178884548966940338855290693088265897527907241806939183869006562550144786963053343446474116975987779070426709094853271626542436262233115757109451378310829767318737712279602368748150659537264692465888999482047254160564623096127818551343849374857017372107712997922759464308319314795443157261613090214464925050179193709860960748986377443074829314538393786076576494361589366069158778055796058786530065226417620059392023101905101604857146349356319799749689731215625630132307232839656205414635954996263653635502747747882802630261402715639074219020325616412521958950456424534703390360593337982547460126100025441587986572990124937417936553534408314841946652074557551246728705030751966264632829108070841139637683012638695332296429310982451026950694734135476345870482355095949588173324973363526053581211154711826017140283040159996066831527631034183556525905457108481963540063353022168818997231493979622737154223942372655099801510254684051305474075259205218050830674700882443718503657246633107304236217463383083504256397929765285741548952740326877962573734849722593004956484668579282133403724516972181608995210536869996602048039380700883359273082330162189749354887264222720270742071166991665257453219374399380251824162177888139890659565107849619884487922746787073831061249898138320481448616085086477689709068334644051467504710814913895620350648188603438467654765047983090555137869747957033774288655101286064416482396629228374612423349094213979656534720239596328529392139706225488251418881765680511970037276076811858888660391414643574165613338979677411404094638926779400808434176249461266377481426461393081699725392799546554936530207439999714821259027072489246539557352549087753695898832013758939780762773700701480854387607441489752280301093074989124385589930563922757562668860940655314778552173569271047045318613506269818875391651984503176801929828212344273357007015985240800381948868571220717736849557902237816591651687808754307822263345042555749802023267658395508922610103007895530506031474602947231323577186123395787431348525715257473787926355907057924414692921741285462816083828567380856249440594154767749759292425738128312609722732375517881364927938728544711725448766776916506197764068153825026836054062260850365326622681111345681719833421342309756997365436262817431856440995497064787581332139336716262745521397574700457652333283129290515979238072829849345614242392092114883482940225276697762228044385506478198984829860722721461040921319646024378777661606839024322445587687919475483681242031413184317189632365524587982816703398288966107935854305742318096421426150206532608668326129614442277057580601694938834557864964561294860692222395401628611001457805025777832348913412408686830290053912254205939303035778905174853038633590991798428239161758348087670128965782021221386837100808035713637115574458297345624934202746612989854359372168535947792729726324013007044755638635960599174341695107839405025806878207379919076442756075729687825950018812326159431236200549447419059861383478330969550489278119085846085694487996069334481535944075171663053850672596606808390095703830011897549223682052902159927243760998195851492345706566084730689689175067037898836836667908712904510029118339985467207966722910687018176303108421080102991549934482968297347789674947689832078969112571396533226688360096708424276546143418972261281850772141775464079852368361930773612901578073968777080897269693240705724852356455536271722241586193778660971944320749014718195585735762286319857594885416932020576150353586196382452897081929730471333288819714985769447173055745432229789290176451712880962973083248352688964750015807970445872136237734121286477475101594592699610447107778348662565221183831758602559942554507768646697087259560849097715781258661320683634500432000952170019179624146288570527686531564690287985072568186845722574566186599223581959455485952051160603067867748489262750985099834145977786231803741812248566990964919940156375433567743939930836537217151756713970154753516278159385890990532593245035344073593459784738382702435901699430022096259415959426920493864566968485605726813565337365658131333034437407841198645028452998326401704595763601279973994974606369834697726157572904635435575822297669599692660538730810967192492343262756838998337669127845545649369284797767736312247160231012525082596977040378414357780858213237419069770942748807223311008148477074742864657614292681992800481493017850205073821042176826753495302688338866717346215719831097561207797698087303090952396013344758376643454807261748253535813852415954139658390313733967617341632456145067472315731022152308213045436030645104231747101542342231376090863506448313467644423319424665893164169591434143896006434352056776647057565825394271302116429662988282794348335580028171640949535326582173247694112610332438060549836055348970358889732542816448178920994982502493672109306188516375852654885513019314375591446065620694637597469055668989176779599776285452088100909224488843793013296757353910057614241868132383617656404820897149053535494895661687223525685734724406224683015369237303956372652046898304574881231937250354302493150325692604300583699393995645281444741348820070325432241576965069302550291445918068744694133263408291593970374250200416647589471769245436672602990826158852312525465405245727562174396791952164504552854530407092444759144268062655784816949541796287500279429294361478196355198773589672536108832805855987484208697722213953567864079169078180878112452623810674848036153800774948043881730588512309100945658583018001394463271766448719425763265963078769954340668286118468468318744368655085045174164635369912265781406965305656216592207578230174638738916772918171329830011080140674580180187986010458072166825646703582071212190371977537942356066113015228407396464321620939668787117506444546570819114219402990242706893536525432783036854098215212858055699588306926101082587900282704201704166776701443619770027475315399860220000361154990883553140290785229325509402105271666245902960892260219444939516930184590794483076870806885908017638126557577121090643652399627971454274449857050100760093030516151945499800392011141430607172644040498924954095653640848896105624250044411000986109276184183718516430058689714841321787108639750137702813989972484839135105288833320755266607570868514667745964811464646563933937286301433248989418516535614236727322207087212422570113803447472485105363046614338011012056777569984429476230439858917797966868935721517378563706521146775685007264748269537972797587352022586684407403967441122656201265011330036704889776125508285793198090518257877351592743176671056234103619360056067690090038126985562167608281973921353796513612058195814170872178492203820095225865245406977724800919179934257904869265157795840707011562043036213670904368627444527856878236259736354977327990845612117593978896521787531117358404433709569161978592699681341756892373809323105196442135616332050793870546734610606630342162530856675126071299231283176293804467386043922394271474721414516609318579139442314393468193446893147918741603942556701417348529835290665003680784763104301691844957432265831525137351358535626270313364623501768878237403821001593703605658149347149775396979036638287741839566074727495078615911366834180150912445505624708352040665060822369859638828663211284573871426385191359550991306661722933244779495318774310740137895212729722824813471072786543489231240871984594808767582671247034437822001906062636362172419103656607985122280008726579463234877811156263632087167138270371614545372263898497655896487846456251391209741438098850340020969659928540837518931566019483190514054934934581484970755038011500278200614843161120249173007144096877151394357386344847085272640960541245426621525721692050940660887445676283397069942857606735147854462958381468598049449531810699865071804394987634676354578096376026799465518874723444549921362773155359323030574656026008991479197697200715668888840213172771566636079755420434287011356067756638020851224168447635753867709276777143277608019969435150648680548599695919073541355835892717089789105036583494573250518080063432555676643684562170457052661408370797835575689044989659698424518349344902649223147866056957116033356428459643323758820068296355901553027471789821735565552281065091895819093528932336503960692586675930286897895166052409917724648793651607502581909883726609674046997508697148826156242398722770675155648338068823929250154942029455599575965482411740119888677852129879046046073630887119484503287599317573934621562348739744771496867794305039042238753051763165131131072738135997347022656631983122667701652300577374974724537014076935952659683902414230715366606667216249944114464791910700786995541327872624805720449598645132875339674437436380910757923716948429129725813720286859711428601661803670600259645928149037944743143123585810210780392588362404681693188232650800496595756726685790714285008512948847616159288768752921364417238573446861966875019493578632762773265076117175068257967114841369901299124196587513410966824153141240772875273952599391214133315736355173237862242273996124692473643276543282578634047755900728028410522656341101588966730081574541349898254286288458438306759879461744524255090167867345818665164691052178311771791372207529837695093344006304589897660309495326135037719853412000152308354063516614611138693967926558699555635798960163064663835277211561911526044075731931030180329646752594078247898277056180083722504937556452522482202282982784227187608712570202654885585180009457349445865267173186614923095023389135560490189644203702892932851518354850794861735047758712584394806203590379221042128660825894806575032373521813131100778425536368457298530530892696020955832342086880831498947626898807377996523428914667889642670170884759963789944708404689470188428130007861690399474206841741590884685067697410742136845830473073347753096302408299486159290236774226008057261644254917478079681413356826707899697498491877421776216364283414912771869441642959608030491355700938918219177580428381452071507554049256263940228869242738625494273736918571952802735993382098232005996458285617616391048702189372916315408247327039548800108767836957355037688573866804998745805625989349417340765551282985292200249888279108414943142287485347700100667735733010744441154552117299327925850162221606934459073322588877091775842755083208214919668022996951211268221150129872246281242697275176871965920558790051053018473068095263721183429039138838364162624201752118119402370588165284968213031311736864848335405494735096801688307885322196012504371639415113537595671575937573054136608438089438893994851921635776846793761216394742602984619092757028031569218687007166116541432526357535621885709555762763650571249434699894865486253849816613079255335410848603816691573417553918966867331752212134356669682070689307639597069298652922611294510263727232371811566648249531417981058708766089706351881732345862835090314670582927365924373946489038915027016722700589560092434577238902613247495002302204939243590352816714858852028216441838337381655857404771792111110542173738927899121979952353310250278179788359489625333694498101808261533770336805509234584360871828131173020208563075022682546756976491463193270837631204675090457311678717095396443408959138527898500614405484023273600331165728891771057320455066022732227000498543549310489990617847567490549822501083236884960025141298503829367170808410958394931531900938408051350397957045948456239286918035227690185749006725293177965147479877868453265010900998670177066530161271462930163111028669052970872209155221519828749380260585770811616384892791468368841640996287461293585074772067672051429111802864747308872976313624000580187674879456000327599294281094461788084524285035656342594318412037940799490374026445285855720393935208074544928585641885985391145886686709469097592375708776085904637081635332217611012070765673542670810455660152274956669976232776597478960162922819199077838478860845694948006499080205315732512575387855723409427801634619005787026628769131834321561576919597949506094703886120322176088483134131501587290910788691851923828389028440778240693085373210311843415289885930648703122506664499079540735627024076399407485139279204439824883702989568401996819705443570166612191611044116937150748140750879389050287327650717411964265496953847162946189128471532112666572882454973582767228775085576042991984160380550514371248034420846393388417824471561906454656417483028579470848285321121014382489886706011567164689371047862160300926690612538265052655520698078560222941559958796524941659481227508090267612627626165476146816805661261188965792837887754981638530874350514290597339160293871655823164184029964085872223347469273647116749404776909480758654745932614487980584783635568308500653372122787928708323758865000882454146060442334944091521999135106994645493482229389453640920847863244716631511999327918761379740884085418275813680591178442016867601065603511001532500403595594502497624888596878884550666687322724372048182665668400850932842454609773741373662802217647638755055747698765746012027032274721523391115949473679453216136813154124892764472595382060216059517266590164826156980845972485134636575299801577796158934030976481230098306248355325389806056442532785001922642403597004817984771853958121932040042188502689236418438195412945398522399410985423306920269278544774947514933460043191723187574482517317504650477003386013387743814655707594151816469769268782989089278581150373054583517946299232520225462206711882518622386963100886672746053901602824028692049969878804075217612183677433004243247177679509752919693345527636401210860546759646508475948484080326631265359688711807203315390703808126486185585357031122228135934259175226680268053192093423001377854706588594180397282001546671041501004843360605639469038983763747768589207090718881389245543769125261231270882951093446240717329139951480536623277850340603657436734905026055156428164591203108609080394780628434298465081266311338844106386110699191872365590378654281940476794970474227408381494875361382794931653164506519129763160694552133742995533238978213557292578033454710973115415444499430602727880241204237144256215165687121471287996314153108288913563296206646218733883139708790229727953935318621699020698191290919297601548109606796313399293385799957900217654050396587507180483439135716101301959399349253270500212651152393127347921910236933985131552206956177530264954345228550844309226427564492544770421126002527579840909328388081736602499237908753397488607392882649515124894386489934712970201322595952642581374937226214427524873459805627612129968689811351119613391506133886650452232297026862201490676378008703090134860285003494126121946305581629233072117235106700949585286962150044077062354671943135717223360989630891499402025243147059356217488113219001292980875876271023517051894878987562369311334416656140798362533033389112182505774433720185713216190826384491859549188064125123483300378860318860563428358965179258304278072979864024073343704828444196377699978440958562129413941839418532954419807260202153523047083499212175039396092616279954858214550952987532697599792380081375068888698212101912526934731458255363023501124502975431929046014995023301350024499094680123124900708920293577437183039003183792341320101294883141699645139848272063078855181240820634673138223308551734559028983114727260906731092951937407834654791145783622529979550751167926779096944821607304228420600811835509471882355079276549199345839511522899879987003438689783918786637203763191069597752146856982591204472551210275492488223270100078762633988308885686962682119995789273501799390610640048722839365426253243145304217244688054192218406653874315012463715985453058802224607588112979613751093511502020170145338118566826734176354660431763756694416899737110966905123747459102982710683183863871931621505608307477715909674690867022320892093276127059015837267258057458852354551729589566347077169493761473867334279932156177331016474081117217240654421073502652839791535190296076192749101725052195276799111212591682495750348503362558742462823318434342868181338903751239756497676990583236421953517441689190953600740682553208569803347955405465708180582714115738558410443055356296890341189851496749594492524781687371276705566979658615398988085995764066012312879157767864099302579899212983020908262600717999377119053340036198276930935660617968823695060144750403252305165338569277071722451643150284575897830455863906531392375170275153968582369067102401850586647060114655251393003631553247684658391182123820977626281257399757653149519295901442010417891277304930882051149044744845100466594743172587493826279534185854747446529850249455384686871127143602328092170848789387354786125949769842705818929972189926380089973209534299930969127083507939537283796682373124098534842674123887160308944468179496332430171889990758337700634485735658987724194831501903588714743998092071116016466856233752516734079369962700352146686612433013312206448733841825391451363316914924604461209116855353620632403805489025492573101851481915451991561026614383177423656477223184011633935690973054709197396590613680417320505636753329743098567915532123535197796514488966546757678090948057211882063232190594076595290921002406285092190173036162352008272785286896178023200208606224166176453794856243366264184747052073614833507766836175251054196184677127987461204508192408041335210018138627191576839659773208578500907909532483447482265857063674088980936825172978758674896141286902881847766027057296817727690583103916940204206312005069671634255689229835228458879022181736909715999058389376759890762172479348671538409505441242993519561409021628585224049534172662769987027758050516761763962254976749159452602995204475939538635466400728749190786878840879740778855461437360067258384763023103795974900583440875379789213078016031132619707436350842008637459702774147146680177744734546608154923617325643921148564483622591469508316634850409431463918919841184367811243694155225152094426790843429183985821390906713295172620694308456267925714398276054968956636115188607303988961231211184203381687610459625738343540443521710145834747263520015169670272502517418321784453117589709767880337001781939541428659568864323318234480757249280763486862124922987623403946663232651703787076476513419867318013931880001173126862222265421503553681413817070661372553252331718360718576140390260630799160929431819826684298133309420146881605386141597510124834699405236358897335326174516760824536281009504070092444868878383411780558698264527600434668339724692136439712527817241490609830248929659468416892253774849378683535487692349029384991357826428510664750197050893331508499363884793608521587127934973551565801450367482994160178404110965746977195354671678061046029287020728721397894436203458438409239950447316762720920786165117836970342354439688804275748464381359708194573558733520096129190134907594583366683019646718380796381303916347768284750856912990136979799757752832812774987766907235902942156866583539512526668324215788019941333235167631246734961635362650435582432287750849463766087893647655254066819450060462607452931300954409473396227140701220350810122000262180946116632435300926501273301847335620293707834193959971891239657376735708636794960845402277625309557211026705005293934967484254266852875062569855689544701352677589835048067138610765806632300099382673456836899079858460442412270289756360926998904779070307330296361731214055643583382905064550211064203744272407697214038330185504967972759469083785670350028193439264709757574118386808328421730210337658501179009342158158938872291433622657335105519880994993740817485030096960514139864238960953091091440077017575689355586940256471916454988222909201185041344645771807822471300940152024610810500533660573598775847892606622072667238385323123935216419928401190431969785259810186846229886650388036058021173337750905191236539139389474094453476853146077013597340279114002851679472236856410395844107316198197846116648809423506518600445120202456816738724451208178837234923120999448110696383422884444105627099124820594236123555345862588494333803464067918921439205021474731178693457364334212891618555431990089001094708151701842601751221430770206417191430739417779741990414015343672229564790139892709285794375091319319693603217809712347313386818959877350025257094763999235561863812696194983775631741423784100159364581985917737623978254127709776154391676442873820183028455706530030802745339411861445383569290111792297824341917318028292613308936669984419032239200499990592922286612147384842856732826098827679630514786261165718176575931713572069132675587995320929532128139950597755603847898969132844398474637571854177784719843888916967392756539946850897326039853125852572455751635351258285928455297379154191989978561756334290095440289023396971737578467516203085366725490361453723991101072706018940705812408018384497949647473695032190961634798010920937316827256456759952682987389942220382214664087650583652121761583191598034165838875304445107491022924119270080568978263212003860216695457948179537217978665154540318740063106209066529660959643085855668115946283819218188571041807289365382882098774231863035404631020652582374889618614988370519188433113186097821549520026067021308435768248150108035607419668953553038082424455855628933923284051267747290950505161865774203815592152551312319026758425390975158878325291156610828972862889854589002396430936611997203801367090962631323711017933366709555897274543040440206603172628853832421488311353605575204060056479766036428173443082072241916243399520893667587709816277685127376820486008112970551121741253509069244984505101731322465539519606392827109161844846690876991882516177817469375612102217828038213555467127646104856236870103499475906596600825541049508990381352678829297884391961922006209913366285435630428725021029526662489775411735006726565175399359728564606631207159686716047702224355377267556611156008090265878654757922649429246971505804016564203516350221169964441418731326457192819782331588945351790451370117120056365520683011087062585996913491088622082206609722382117569321438436180733125775692484855101849612656619896142556066093886167441063415692128589477286127418984090906103427168942049800406438480910109818766113546229200266328947403463846096145732502027974053036233943841182867811769599512983601419058880252233360070106258511199727606468707596627739183854704330579645535557919628782619212046898867865674314421022754105433630056584809211492101508252636332208775021958834162617998058429482281425060878559788186768412725485937586152152050327121732750531004700163802161548950840825755382574612923851571768630841589805553762617214968137277388196906035023510179452283364296693227345819216185503427380506510959864634499481013260644999490845242933659319520332596197255264264326814033922848246522173989351279802777198710384930719922281663478376062128686980164339832578524398377238785700921681441611810344095164230766823533218619626367746468808502188125125469825576059062848476181690099555259513480731406324099995165525547470236749920150893613785848462934607621772561172473050113138873775498819188769782215186986948956889254447403234683059493786583655292956880306293285277081090366126766081209868234217143883270532226152732685968958810412820134068369965548013321650800511393851237723496395461692228755298027510598767510281808638058221413176537559104436388083193995773521848833657371762420068564602133424712679626638335791436978177130327705230890886371609956167602998720188227748001539223435742410226549119094211925670926896729298162723015106563326687850020708654095464921385002484973476938060069013912049902473472784667526729290432580140825765903968673222646083778232251717192689781297708026460382617902337984374723850625362953012362786081434130042004334054535593524460568843071530833535403321932232444305517750104829646410248602450732617411522850061619175767345036070190343964140006757877666384650508460985791169478417313440796473268891757557859285673078567025425710467517214435007407101788307873892362528985981622085213137047558516152362104430863354562118039577685239989403278878007452688911064154540662634424848756177180083707099612470147343819026167239147645702688978143203682522785565584228079448637721170491326973302136116332520350504885879977279649415640353429212462012442630159953650065621097327948898784785929451009902559642200887068568504542288029622967819353709002598576649092750322158061018052229284374723135050778655445457678829604433605293060516781232306932158714625766669659094796394536636787794472352580543684628045880982120023984624355238611001871657823021111804484475038931204249291803044931342669450193716298573951269756474173066189619675756707531619541490249136887833894917387635620219544333698901200165250438312981818344172770582034528998711508309045798220750222294099207599331702534170305223969241833475642474695279685743957513691377991073083901355990772900250159594577665966892252516297803911275453590785384193430735025644471267118499795376232399390614150873620184704903865353690083694844051563873619033606663939242491325261110962418309906421051961929662028286074604819566187629773753687807768556770759983690697934143949921441760333920891228833119399549689375772819538014975456337539123413951156592463140258056650607384965867226673185784350265807151443891146291501688506822211295755377488314961613053093291773207107196657902534463481085938169768204254073398401829547045248220515604952056076091473636868568213747210247286398219455254120755592602427062623557299608443057658167958861465425381373605146757950844605352133514233081281122346979018210879369590728257707513781358681602962380560424986622959522218527889884900725459779248850802029510715378835553767479797449702350764888586090154573195105560311247512091372139135465754137458228410803928005243128747102875601821490467302638332135149962549985900306734010671101123561712363138367425326912093967440283786433991697099397041840557233400549978222418133703385726373603060094014236392555680218577643899432204867240126909303553836221047777046414327612778543631737077611091387809914490029321870315695454109642461253394568040026073818094252233446461137589014444563842456067788878997014591547086336533946012553624488707785442480580669683674610504964028051031555491135420922432056296371329662032995741364952051400973848194538162609998714648378868133841758063438939259912478194500126954867164375238735444791894048142316017681121998849156136244742851571463696764820219635986755892819606177970888282877037073940924429959736525080338956519120887456856102438656163313992569117974252548166672404430325513820926625773545685399226966519857098492839296947907668187588218302842250362521210722707388154228145421419629759297613577618872898524528384785690925454856170950743443467083747488088261565912384442557820741121476119419348784163312071149427121017722167694530790455444525279928217438124093923466269581004082517942665017182076975406383235862600926655480103581196494996819826387140245085894614974687851728657020791782304570919288739171639684335032525802499434101581557968734148014243898678509142990505957028466816049938588802037803428413487159722439206234039810663997508580279610185039871633801856272969539815422054069093874581885624650400843723831369233788213300302605883308065681759617816099244079156515783560170641815489468836233918634446570953935201126821081416513783102017209430161530954473116544638668917107431977821898811557927289761922755050068343649273927833578324661727732468737105792314271538413869176800617014902150730800398649810961021584239687264370892773133420553390913747646799350003038017439647415245506852730218415009759078841786869926459626931032866760612549091359786701394271431562328412080888511619662067603661641964770787222183500001013868286825220613715958195446673871274893882843244590402851650353868108507698849441341848401390668120578268247528464847228968264768414573609469739440000215188356818982351159230817913868371077736101992629803476342602437229310503062457654765419368400491813234092296079465604447091394902103019226223557280577559268237448496091099920096067835427126952854565723050390991158367819622522656103577242317543652543652433630869056010211730352952056110218598970305180545214837431951460760103503395820918577835446771048078781925938861424891543387090663527852047006763969944069551818251845079619524941783078073351958291948532578863539135411737770854776474979981222394550945713131435460109916911011007440540386008294105046931475948450388478942569154040467839096612876374130289247302881674794810010588717617205354306361333949781677991641873974490099296366299265759901952466442042977498995583849179809099956400950748097321224817456775632160634917655646274651427077993365030795806620440597428053248368761323301240045849579665931192957781208810839758181922308482516012049665047949106321351887194239950875298625463693415652759828699051011125897336273307960616681022457744059490013351007989875816026227462891984485004134632922579137920973341417220484025353681627867192124248957238369681977235178991604011928702089473506374099897326418833544848266449013434535070398377120266007101668277569274515477383125876200688880369046529973364182968052001464156445677749641142059542797892181336222599284824831625471555164663770984076966783565560959415678776986841767212841190258669468487831586774454397629313366455884640364335776586305710332271393391259354278569007453914336131016196104343060853977214031233127093320148462568813353098086919155325745374975151052185212446432440699375922094552047608758364759076133334972693625996147941857135473846147944715365997072392478199988269054607923522014438922543038510356989800376057362109788076195164156907042739050303376918906307882938801653975679523236075612016438349786450492588602983049204652821411638291916378465798915340731840652140288704213522782879091259374470006634345568165044736451376380724232232286999048314418585880527015712657887394540866880282730542477809532243305824091022586724278732992530451873873135157723016956469215805030416591922605857591584209565881552213112931327574376320905170611036738425517433866956839046527838133130282698653641567412089467199748507307838993415913082655987369660239282299729135073160131767558751095992549595525921759161400812003234560647675544418726659724682969938264455827448964933073448570205216394476467691514004844109758666634537903522586585634288360363589828159340861073268110252819966957350364954327677565006524189484711126831738402782867602992768991356479535972475471933402452125728274488527879439156338151786831797302849500554360552996100620171993538688015724436897301501540216652571310350150054784220614170989403830106522599310976947431292287059514552349412331177442124832387636035325931748627732425619823772041200520850272279936740036013455476432252676218182451090229682731183992302318812437546111762346640106898651897617681605399020633796907239089491720323979772015930874849276988219182328575505354060554382321627234311481857163713452570891679702032781926141948670786459592762128263084767967145197465249930597711748199315599349036068722990026840010536371908835597665255871750149319012987563225106453054731154240455616513813869336847999375891667346948744700415242712426940554326170560617906551137422242123775441699098374653270053906809330592079033106355353892555383422124408624406019588040890776755841192318846576924040023916672726115901042481692364007079406578970277164806601650003996303274826375605213559632564060266827181626294892921805873782912724206897911517849615008589369367235356226380476750176042046948134681591485635275061969362637917562738817369077458988526071839189282755744269114443717070302735622169697211813422940205639534449372619867416596443715471807719490840095551920307307085577668526418838049834690722579106238127736487785648590805667507716339687368037203605704130604664750722995045644737190167054627193986193336412337561992064881101488179618765134826019173290171222050436743125334803573991738184034283969668799424743155376799896941023556476507371981135360888866861168155821634270637281507831654405598895903504889775499824410963099996113912533928375861223857843887073247826733121993701083779632717374798432200337845574954445097242956387522230964834200545870831461509879904937478175341085757892906068396417331515750017246241063960590132307917874400667660299277279342225714540594931562220629805264529818860646130940106806989133030093782548622047483630048335444819148579580839720942462730823708749485145894152752960425742421239018155157704575947065225108942646242482493722998619432061164394646015264828124031492442635137198884662109131805568102501353587166348293183061730915948028681529427925348376017022780459319102123902013839843883474788701201243597490601338951495722819937636289076612597641368783547650042883921727270995066643224846845255068175002747264057469193500799606824500285191483213921759730930814287798768801091983774135928032911501888805815513889475560897824125802364992228565976473694462280811239642471457527611066982956712467495000827927045770886569990938819161311018191104241828793933570292082145113355954972536419371541322008410998660730663796687726850430272242228275286630484503819198972273799260414093899620238222756680163926612636614220204477806821097599741683900652067553460806645411564803298672045969019215846668362045037808204189442531257567398654633581213481026563938403881289647666414907836164172454484634321511457954922823265504794676758279907175079206515678096751889560156332619872207151780653981094272360078202983276942125110842648970353905691806735130604006143412914722908145193128157784613214797357930284364672659216280668928307958022182231281201583295113478348297742309094027620904929178405803179548624294535671095147276844265065883215794158322134492381107349392408678253329280313794581663272201989472377164935736103516172230659105716545876802528046198928526660355256417132035768311809719379571270756676434320484874307302302866634584088835444276193373695381779918260080498517311892800956528164427103647117095790501042604494467924780865682609607563518609480492606531635705970127412636868520110536590796817879518399443814930944691033097878252651101074335421104855732633195445509613412962670817129826098383976701122110887708486321525962039266576913974401953729233309997573476946926483983877279016813477396629578657693437652930310689560369076991389854692182831737522183803315447563588658003445339390158238289185170789522973714657666906441534103318555246718239264588017956392194643676904534622564819046005502144738629069441828720686804277564520011678946958477050051364747249279689251418092724101206672942645987346577365186364786083342456719317361825904637647949237893819531538447434344586777316211362512616482752148374975404408048419481067271603471041203237657844040851802833832582136754348085966829846740207916159649851298851793212006400965688622091822746303431688771617354635843328760890470872434057841824817499557044030463316358061180051399669087735506715901182104465538118483432517184745984294419156251353268998130422450870603803196901578559228351160309015069976063223804418677355464168370089206892139222181839612808411062233269197764897622614176657896564914095732124563788139492457487127644346619033579094653309657117634817538184177017464334913781236287423059485134996370945787656713142189766186016593819116473796139505235538627425263188212680200727337208727309664610067179209358155975467629864781829192448250431352394316988388564357332104092295138707902897956472200586704771662387937003934997145147133907614098959806846231436963412628946926198395352470351408917762831426365649323898817677653888849813140168111472967793794177372675737048244743279997380132749192440984142658600252479446512676707597013207430191588865469544006171054963522665594617889970294908528175180665237604994342717774052594090748967056348498765879552068729314546885130987173983763588315514367475840435477524994707216597744761435495051690388083900540426151113039735196090924541575507100093286134409784632901051064007457438351779271169548481267103010809864155738962369812302150367879802535540578120102008604794309610226516602276113284199936313067577981940700880710795506831575593284753520295934622085118393542241153286978124797108647333362627003854382865006990529745611597055757391958761593035200642256755949531558793041308622696082236541770339683696434246610671501868366324084407545008181374170899653316721023294663247833329383437726714313715784505091519007028940776446155303185994313074016124124233747453134556329124006367538253946634784899091195534997908038960789518459176870515450359091151793050652702818469137416442412248321046944897972532228023111830465803878577316086578024583230255741211800448157250893069964181287837431952587006910313557509716515931717752398856776171309360601982057868196431623281501726998958560920802122883710398587054527048290379838965166845630782122371487062961183546037522257212147856539140510756013524580433908752627598242486972920409191495868642368323516581923701925156546260182876420936865713686017471838498587947644408802430855418979633894415033162965586605866371705827764933848879185907371673108156704335403041310846544540734732373299932510909157336735147865224817618903869993627749045733588887042839949189964684795057569793282321061451175709381652473003314670635218808766896934539459792108331473166530022140816398967821354937377249945415024657205973215924092695644818949569756475377644734645295429127712245118370653281129552495976949050735227013601969614876432529499860177944145539825747357896417561210290821538921572074513445679576003878766266772364805907847267293579052171176880277652601537037049329630521867828506290211539517342710031808619047376130707670917319903378435741697631374762614545109772162825621652558350697238694175065418385169456899338174810426081928626614445635767987854641576320451431610988339669948929275539717196285096954296302284699272472070708040200975176452286533631471900612668583072714437695400607010587192717343195847381053396280619159933429231713148623116518659301209560289109854357432982773722341433067198467361756672626052623466103779525492559082340743388755960452255142368918495323972636965061702800502765888688452721152007242585614278222634531071863012602364869647474421121167082214050714830198179983921382960306131159222958666308784144416320515166637350786489039905308746993881919047870091565301825411625600530714229924787524054908655983863996476266077555703043896805071230677447068485767761011600154310381478339250995162861217386290575175497235235184651161030508917627369001298537805788876186547166499988945587067330272656076183374309557283829724859843127021041972315419836864538985722644947288516781275580559189553640535242314751311614520993729904057976001476092307550138705090284649860630370542139984298155921791649892745301322453106901214249804933310302702814515821243744912168792379821747695846703194752368787036728837755277692105903102729179219929945724498385135702740562445694553732403833635407980673759602538749165702592568429379399830218375047049211011434873788624937697943845333496566161212916412192219860550078053609893747716165096202222476082995239503456719271000176595040577041773180874340415862437680624529926900914994008750168750037552179268823589527389304144353185608730887890958838419532539058006896898360361348239124555840776557810203968469050586093475885883848000188005025118164867281833367269778526059757616454871894826587591990160564603325298308774625977609567939728886435093988563145212562520544328735017991207370930177591337386459910467397622732791374101594462273562119064179123466874549139525615028433624415025430303070886081973201816402996002448986178629423541557780278161311006319582898675376562674453800156013205143800135730551722081171205165963781309664419103671701031119777749446019313351078720485810355913707208100820574628591167141738636739708731292495931418072435008106015114150775412252519781211277577756850618342948943206042226312181980722727360148814479392949236774383886867743625123643279688347526487374827023192684451885732695494980634132090589484241001196162161744698487579641707579045734248014518564891921688582262400797152580426001218759715442418705798613792005921794856382402946360688422772496798602622268991965470920235947228064309061752291233675786806520646812633718323602690085886039229271883930866132531282344062363075032639245400798679357150595630619562574241728008024787467010446573626754412138618763038226203140093308778522703457441426434944721191601463368467433426889565752069848143420928109015952810046370548596083754577331065495157888927520969328835713522867492779811938573953073752502174406678445474480893644940622374316545631200272060341304341808037285444602608603884518382643632498935019213285561211822624938719386430932615813437649181074643320853308498115234189005258629058704449481867895706244263156703880253685772219118511330488054626512661435485021448668962981659334660259820349138987827016832533392527016535726107858069540315058486974917651862453373635869545063330619990820247978674276824959350547561795752993856331209547203913827241012914098545744510822570765523044167810620218663484952363645505931948137422511405959388747313212585238526110928730133655367174515272814449161355167610671960678008694549322288358419648765819592533648606788701278440565066700017284058072132636441638957174447307873429674240695992786399390695990179207860607981779420023555815302040902901963498272239444735868806170722056403087635367305759428776809792207109001529118893124059262861528191875401869495678603911874848445400172240840636956163512980564790029376752705751572824157619312119996555179226907366939407608088075719689983070309728344420125157276990370713253723944594462789567163920803940352116643029203263962195932059042029191482432591600377692807244443082062124791998780759905054657470717284213464493927184207869443860824605146649474958821324178351125062751868640863172266365642009046274997622903191703035727540431580039836381328049785438068048948682868513823831558977983282730627264184583003941432263207080253517360559774297062638663476611530211874842771534506166752923280822446648111442445692722302012195570700263812189766984592163995597683769710027706931309952788947449143238490612366727709372914461551552482231195155630877362042910412483652794742432694560810740854437892138708605733353784483160530384515679624565141955395552169409098180504269325535125922919244631102749688144871307961100356111589803661228979453390771034254145793921283784318690568931927349063529837978476558287852967511277042399839621172410658979198653541703076880631974508585856328229872249215676297366461911416865963363680269082933853326532695037726022015471259368052753452546704334565146410659219849085434360911682127406383235085008198165192208502914735042685861012223197688857174356455487384682307621089044300357503735196716320656855279018127352056658088663381163442570746579694011116606213155826339149280499222100346874255697056361972575885777159822615629303681452763032804791758484383879521088224416657727285648491232912725904493435850294982019308069747059617818675805961147631231766329730482757264866031140525442569289340297128765840992454061638306812698936498954705999769029300689961631183307496571527338431057197929665694090931627465958723731167364288817443709698741099224292437024002779281606242128527129020331343399621917862677303265207865924916212423125026747733049528202245001853440410623163213089384137312171153670127932992182766581318397246964615968366923355725518297567714787463207916093959109244396272311491901380429805617265141529560689376666987698568909361581681498176706571387685431119844870889212850819841915721330796071907531719441145789041648174648228721706192890835656025394306878614005707150519246136911036409515686179973286923975812262089004635105480995271172527043390002956787949204883035806546420657727769056853189255943782401370247190017267032993749196912893232505745204478692077172427038217663061920741335084863257724520644900100953866763080359859467030012550167137350834669575359106972669530142060228317345254545312701235919597664390346092411148442547850935188997430108984166790460602889453663628424877189225961183718901817850052575244283802411789738342026315747330995988406219612247107243270358758010946397834689727969807913387922373986599766528836968559378019768568475789786835079234508530236141140749602593907830219196767856354619631766127682054905845745270306748987232477227012948198723176120389917121210187315639601395363644020195486396284560775127214812453326539994020380392558396023841527186212251288122940809089727337909717359209068173319915954687775305288010484478195788782970868186951857890554869256686218892866477460562178222980889617755710236521053364127948264382594163257708943276375801386646987491824718611580276199932631915404378286153651389550938169509084623945581973977422909435876989176966114152336565574380410840684929690477454013854765202999907763262606493264026992404120207845352050275886771025374340638615139692675276644342796139882139534474581978507291812133701924904891678667415753352060351986633504723360300501724676361121718650375589987645066035987682489354579386111448909130764194623511156370267536715871586416673575580483460555234446829547702516844051792358481356662360602120615502974162531474817762322505497684457470347537352061925029984026623369041492901432750156328021419768792099018817583224287734385084110590119755754984836393981291491346628969857367682778232446805400281200648195298953949499050008897398588240354719477071738985990004530311408251493910585309119736978543551483792971923746015138602961534562095168424777711016603089788355944297096804913531276163356667049868081585185047746604346163249864560136350504167175495108034458555108221651723054407822456127161996131337816742347401163149392281783409453443244201753681885816465635486743570459639118647987599446324367852290293704976763043517223826616712831996367914016652688482314937036061816150439150995099204984017037782802515426882418780419075314669340146708953303185918341868384555592209042096056983222099022355242990353886117262150943093112846206602623433500199235194604515099355201921857150124774219728674918635740698075948524926281705941238866347572484824129802260317569138428557818686272994731323957599785638695538553156189728052494206843609269322363864757173175605028603804014538307042656840554921909116087187323716721615578851090709592639194443559911232221196732793210477874439163796928825226129893300048151192486019697793729912809141655448487683183829921619711580223675153657219704011272085860064648515653695523141048375718326206477105058175095472108180915763992558484477961883065706371816789299946992915568416347214415015768403015122286599740922571992110496148949845550138814830465911258232482887580955452095445545829844469966438600842592797658772572958502118045912027296287090958344210754481764814950199240386106287642064529977818710604687222949249852075247790899677890276204472193547284563829101117222650415708285537320795171200179915664483849434854757259970779984738291457591581382406621012700292816905526623306372371281920344302362180286929947324318063087895253028689611302440268255046329251347306180318289144294472269541938371510080185768290235998371998491284076859684648827065817353974713087430186636803455787746831840098173373991147550275978299207424174863681247732832684516707428756487922485070531184367814526076710470702944673217288792172916343566248305042037038483767194755489549912202598736467500817987186025471768928486205359384430748923792109408594669700743525407649518359905989736940203692287324247998026453629430700169794653971837876647231941149553373275639673057533255477259941829388470821692332284280128217384133033276270506319396726038114650988965039753279158901355399835108710025501406486605136903567671660232601319062647428779062630801389530690170342202839789158872013744875237276613832309515289140024865769666818537315373106569854581179311637330434449906918601210167125481122369835929489728065919548664098887690452793378512862065287605130266844110995885029454151856402212435881588905143898694056285784297986682508052827918939431732506574165649413274858974790351766806499078183780303273527810437183369530440811276472967260650258489937022352732773312169073805066009159474251382988567795241941402634434120901380506601468350828274338500369662283160859717243479902434130886502296395616691638421954349723521989036642854071773244903286770325586341250127138548280499419504865461136052109535159060908413788025926492744860053073457589656980784356532340809306745666126736417401146551903845259787744025633702411838609444465365302865946707901023878594942627308088467461220915234181863045704265728370161315517436809938020865832079667157502753514770002689430934590695354725231108831936985683145267978052570002176654104037295158460196329181558547690629015541745790969612069556022720887009940143218510355442171876784847522788244669229469405466814535547658110640787414024434453167841754323284550922409883127757926260613052631742461644801786209432037802953009993128483983866906497228479623584604023169310110958242505913345921000716205240580598652524877075381504863143245664430578882622369837528969696713706459652028052620249137207848013702597549938885549065988689677669075663000788367614733092002165899178933517600600561909769105456388472386765503138976898173841492609714446520245817465963880776225856298327936244025408241476334668144025218679909218484806663668919156779190468182124386104386238318904133688811200996634036935589418436481958274863959150132629928125641670627618576218128808366175550669641473034851795995801281930535297970515224178976831372334248469423614235271299254305498294924884198830798841881598183959890425816816538783190543322338542801827884280121812426604804402346023251128712123158373281966018093509282742483546236631140627236240150704880963949202529246347707651557677434285249386996232908025525394620963712128003692383213632861255897529880612434015120719060550231711242723848869157364961892902364573635854250097443398663467511827052451190242672547074764248767724540900775472437614172473397747468031280436526171972675175230019088581007307149727635409904567677981890572325451141136233046006103893105925217776386843286477278302488977136405497977028960524995941567982031687069533020538149922436286291630736098752116921553167982570401717029478848313861409774469560650473050689858635413945724067911645257650936019291417211053677217977818705055624914907532350286315376367836813885535755664309233824998440216058302116361602742093206819472605968478946550881333150430190178563773518144135603150914968341629909234025122317216164475674998374634511076316647895409142061752292995057092934126309097876318781674452849369360524389877453678001285284019431416551190062047972881141562758277110114729962450093297533058064974755796637462540310718405711250202476402489848749866675248072719352007589408153685013195493802528885955107956126432510164694251700969155672529362093433476107084275888678302983274169513013339244275386546578806430352285006603864659976183129016345921501074670874115122128938986461427695630249279971870791669663288066432871226454731404042178243164743988187807258206640156645004875776802955656838145646584120515135998697779269120576711249102167290513812464229520029711201335810913901026362984946957404430887180921140798511421356575991283015226934514907815446569628546153108947043241616215831635385879937507171563649671719501323424980205906158573107429636633271594995853978452853097009252445166141207134952372447912004104341643964832037598211879576813454870194878747671024331191999083534798185146614001130680359295544465772979647525869288934972998591843671753525074287890362839284051718742261624357402298394451735100883669598266713960049073665172432315401036107357033407986935498249330148811240797634657121417344028818612143293792730402378390456384785233608617973230163734289892999220887637718466277625619583701236297406278179037337628777149639078978360324942715887803167836107890746279102860482154939505212046628740600059549325871478664196246587514813207850466663673340060340699278200195565566179023971422423485167172156557291314131353960189075115411494465004749037983033426819577602329460698420659265944867118804919496084709728031185388627512377061991557464737590889833505772038955805690153901524638565027194728724690380929893975616979197904003253841872043473617551774392619252906211920570630478842998609177699210962718098711882808554550603116625160381540036100005643343783741855373535971550809519297787026799160686702511558690739286817570375320351161029027449848661271543162364549573358012640636632336083172057176832649182553232300674520215685365578477817101395071483153545625423971215419076062589001777976770203486470863765871511885991761057637581291515168996632862465387573407107036476473515534043985082163520760479508981778831126142703725091717375658450309597255169692434419700061230733203951761717762278081510343260133923372970321739306428431003481783241543460216090613109573676568339548708790889163040649494807188921404022839786604086544634907477381475541284238826028326296329958147642903372533359441746316884524033900396008437221241838032220043427530735054642089803091311196978876442679391204199362110422322366460110123209501176128218511655671859878913938561297530025309293859551439654398118380145023320398106136164471960448203489126940995744080077454391926054456671609690914358844402536792479168481181016676115998627239661421811026171720685120294779149626676556192139411048417858217764543331899883921357155364858124357014853072618988962016064092259362195499098472270653134863795816773512332526875186766995064228792118934606604087536535117192245308188976706864753423145268697646643490381672650935000633541916468545626163144411199525922714031142822458278274565642118066777103259424930303057997404170520436709042374682815765523969663584168464205663824088849639523896280549939446540865418736027569263672163634741179875842328766278978195422574897239727612356231236145989140929068381037641700263007279363974193705069258903754771649980613970540677489146128620274309313784700803417392007456990151054336302476726632989635028707995430348069795897838180747881720897803171991682313460994489176918371820478307127002510815821992794308611005517304656064207018801683752380833925801942590486295151135062869256854759141156176558644633669588556002043570543808898039843992561065757519763450696881139840532282907992182815868731910542845405453157110036316533225920150242214370284890004238442159369951400414908783782801995339956046277886472018092058088492146196518609679744507897983932126982586318219581610751718349170980697119706135444332277607015630946481918262827069878869175365582150095174290762844042010553556156908271687764653195952533450183454566109652933937167064591850828503937347537909934576691004871459520053744460102983548111707152629743496261031424776547187431832152041628760048520054139288375415660312143340675093094590269329876124499612153684976049303023408312053951664757683988123155493109723102742602995445327400430513125553341960320100979122855041303294852728694960143215734466733883620473648457009515699895216702860431647409209907475338954779933122327661788525417411535802030772026225234630221917282943131285515421225443908250788861040668084904963129935242934744659355684835349260198783971864034960581891782410461604134134817461032859129945371395756138486636750623177078445674088251057854769051869489055068790892979600250132114101623682082583303885074107066343676856120213094165813062680623945017513498302537059981281580273999393198303927269391064669642934841235986607016285273749775909082034222103916018586143870317045967591170670008100698725937880619090075959046388072949235055092284337853554107817855562768058648888848898203282506076785848620113602748098604460880402022735190769349118348653677575790539375149390501481844511012813526437673277422578767012633448888584468657816351918381494757885933264813347327203558663186760816645914452635992736288713553761944110380153598427212353230775635502046283547359669392466762107861657592899650258147589652074619297920502566983086145599049884062615950031047785288755182409966134234437655448144406633683692070994585467711289811299915604978863495939133628860243544303585687213714011562464358412807908641387200129671037893390560358385568551928836473732891780640549870984929154339109169226486564411430279920673158901470743340781899302042192478835463838442949310887686796393819004762437407542391478943265041167779069208304908547625458787746618914803658618262523753594193527468010210390811269674282489201824646286779944087271280311794891516848933738938852006244205061982897015205832781804634418241811001174847048755247567649760828432093756987449419526377615806438793435332621225726980133930146925206180071966883969893480256580812106120069592858972985590281187292001298819462868788993305821376298726849817030436704094589540307732822777652164073926466159625393441651657826262838192923420865996798774042917523655294144821100807658147522244163179044782680361644894179323660291841889694827358450840368871417927422820603178415803986321932150044944213835561441455969363788860590014727959785964825909204074385121193133470226594364467483778558704132669137443316050589722686010516196254435358949351689252783544653861651006818308754869095384103549094538133861023390598950883547637852210849334429084956777232033418423485999469069886510378513809990027896892936749462895268489592278372321746686694308744692650404510258685505032036402028691053533956413418645970907871189025089237711410259453383034257155070624091199906581541182216874853723229191855353958516732750427327710236285782096194862179297636857040012426524496349951063748549247206730455201808686236152254492213385113912887814747650046819362779119944215556225393624389710914932345106605276738235272034016481402134128134760052706630638646206779515517242608172532680934009328194874109845024146063659847695936513916635463495997297508116205910750619085580215062613280337695048811304483675987884867065918204078183656924133596461583797775602978207719618824440456898614137868701864758301596527115883272746459762925340694733699482384753498407360597026898924905793405365588371245410217431903336906174437513523964927912604835745071878601598731374535969650276942969315585260139267067612194032286774918883526501185561346023195813575091388471270003071343706967105997579652262594130083106866576173557764638161838059626285692440616340975963161864979894697333287320802909417277924726193635998942631983978038689864840926724815348386601770973773020867771590065360185408254923196349053262776172203377445683791293864618594261191112452751781235063953836195348751735542932086210221048603809493106389154252716265898257062643346079659325615660284388725327777435985805112976582960312232297640595905683996617665271149800715193519199413369546113562097149315471611939443471461836209688500485341542965559385798523011654525634904439307927859771904790884850793697950261325259391228703261194948298478356521106205945582687814485412075263494593915253099212804246059527329403841105322123163851394983419853437147545229478184163223025700116277434726713289501413247373135742497191298748930387150356239629645744745125135694539410663062300310408736495515739257637664563999266192424079838624519733739327555865915060814263296746609512285954130902302762914298705063118405379707414043093194813852389058895560309084581126403794952472689789826232830645995140661481875071176338617230376256424949151920872068239829714826279045680055471203120518989303951049195614696403987392130826575559552687575536613537252364776198085661489674394126654474205233785302388502607847994199496842422109873193581355068558202698384129083846650260403533110350228522013108835429402167744945115127344464832666007689850921624665372170785772907091666987377706134384115521240163835016911209976928239914870431679946493034746369156249728602400156082508327673857113278004152665717381319558190332075848982487967836411202776701805279290441842411653816800082957651261560875655141277383588684620095545923338171156463118749642139512329503904396426205449186297081802026040494572485338340392506091823438575027816411911105186978244039697675834195757852697577849856169849200120688224200299353346466902002780740882724489907532160158715614188712945647368699988355745893642007116671419512755146407737873218661143510150682313378646303872735949663128513053469352158374820310095751815906057823673493696717173344887264045984826352876052130467143967727796097779954926055614893305615256549464423822479737557726268837436792416874632456145214093775455286028351597977867144994851450517329356497169618385508269148574404017498840592358725649987133630072589295851491520814103649030409163879091782228003549234739209160096199199930604436159931610835646047853359079794492301691945264434486675656526755241186482952590552897430037629131376728222167092001424803979113359979700766521693387106618163327277983308098636153465298176229042866094741716363933584704590826723234836087833510388685491693227664419024536316383007897001380199576606667812865893188180987099429618367838170995202865110409534135482798435781621166242920434860344846845854938736387699150059763922636384250355196543731555305910133274460482505921286807790119530949488882701770374311752146207709053570587495101943349637002385373792823597543011254616780920302134779402694418098881772663676322857274516669397469682091456752881824814244312165926880064318749146226126130053417356961689864877623947247130499349299016917456828846661470009467919611291425973130592198592263844571891273268377807410525116738225564390766775324242603772699683980951890498123170420770674837474446224054889589782532022709956304535911630234145420116359720160627385604578918765150530172257743235428179974801656923968403810810635101680453395983615369358632340596559624558438152515961487207997210338158980619362131873631241930808540380044036700463998608617231608458664274024344668079653340739900314976315487099033044727540908514159776127200300340400306932704126669661705199633906039080232301736594436775218843106564688149872983397322065526574186921065421893155999356498496336118186768716539511146349928771147387365667135722616678738248989615530828152217273711776823237377502728020930452604025441935794553218863882837887597560964421589113252050224374572983204226715140135785090718187450513064601337097143098240843507380026152803911981374194560794782533117956463389832421944282282775144096646064933653518182520266176579577796119489049933720309901668405017385481577238746759727901520612473927275937071580098069921494720650828659370228567757951776787006112464833824893420541390846655323475932515920199736533025300988644594014458419691565285557476900938701720612431439028751104041246359216973225716951711139490966350248006785282433093065270648391145322991218603041960202382934775250219315795444639484265133121653404075147633567367305005813327785695080772056503246475927856653786255452571974282127624579711642141449415632332735754866171336892306866164591480806816314950531901897987524290888872780914232128730435424461096332032099240646557277433889675624782754237486232464851839946726182710842415015958762971716785038037603824269981207263280889334859736388945767949110134973996724950067829929290674130608669672843731820024776425417098368114374968242645166833453458004311041071423259762027033216531244347333699789666409597643303053763571028034615060859778041952650722342228528089354360958133278364093215999041436089338015319726951768865613715710694367428532055543276100157185961508184551641520974997284128336208144505782392492968916582797696180384072900287919107561339203627334104227270163928201441183738115729632205060876970698528575115078201928419272530241035383995689060036200925926291209589455119679549955641793030337518734212776019745610140951450537711800175905436389453337650709279202351209201633101372479406608271847371225676051991575267618960122541960905119728439699971237696735555517182278864200233708114722526026755659325538615957929303217981915801831807165531405005451394957984499132925616967717869971974496473298747934861260598548784829864963643620448293251808040031223071776706026539279100968345034146905752851047978252321017282063346616025497654748584751161550644484245226714001832193926387378518556448968539427177826110063031362941888965829434119706271608594094296532843135955428858814171640763266578004750220302819006660379373402125192447044386995200240436121075496174222428593417474990768189665039345233303310414469707346309250212329303538765270557529142656189047526334376573960231738404578093342899061730308978419777346353924921980313815801668555463324555085174921637789575603292394953003799234615754352829692932489473953530894507525396665347634484764443137107533066658537872262452763321537512698013602898808480998618020307303042657690758962900338154887815179230813661098176494625069964231773186081675632899582833812397192464569438208872330932133517767603999345937284767399192794509609975572586969706128685619332717980200034175156759854613191882293059993782647744789057240175130543446254204975928525019840190511464601692023836600199663442036426740775076127222543612599573047307527922554755499905306140483565115076881128098566291966832417854624135206660889255969390388454510923294334148806275203544299964677531210142619973027465463493510757257045925545706009245011035730229098006687934520664226323751381842976881595861417515382525999583376854256326088745602651127175230193351255015425764274417710961210017734312158419437115769027443233946465995933659297575261230401597512752386924706578910315556751136868576009613031619661708622110243747713099248735368894217567112121281650332092488518389949106210811749072700628332572997350287669319548787005175763966361871709482879348035078337366369823127074707147754066133536325880578722987348418303311827456681126886702057625141254122082635037456569237746693646217088087535365303596354122925655103159618916049249236922459091273770861370371744477699132589134285489471279149063617632730003402953427119360148242077470500932686486454709589723642975254104748749176465535391720436800004276615471785263297471563449546179042903525633262847315800549201072547809077240046158260933074225969100818737255583711012316885983337561742749189440582613335820320182914181143767691224918189633585412279996146578169281849773922598090944022030751811780969574403175255164486352727394309058795953564995152503221521979316860206521383808623259334928875454265680861296025697445499226713870522767323680952558048901822811498952888899196188683842588758191937847889967295832659156368822149682199583868170435935877924495688404298527990353998811014983493592196798584031171367620170644858787583064156557696090631082350493841224456314311350056003358423608874982941174041877712225742178302986240671438373128581538913217045114261450174002975923458800800183583159468963825722110414789347771789662831589954300473985437344174012060357361279325664583154666279275778207812681934496711050736713459438090341217482266432845583733985158539688842209836354500985679337801866003564202265971055358325612139595778641284837652351783928054854294814210953426580756995468432946072089578115446249834578416591416076256997473523075904964627386699294331625401549271407279038287905729996734135535692604699057848388204877073362828078596796810985548688222000767746826174915705997300617528877651667927563640358628292633787496277770754350339070660354374854025574084990545902624629251341025125840000752930281492050757804504911246949655982801042168901314195183085199146120220447270199527166455388218395795410178127282508380339903756921454487286339296168250397956467149944145494640340370070113727041723749331549050671375634387297934740987425662260231527622860055909660246628364614440100232341095160703972402011555542369041176999386446978136787264333879141550676001802098540412564421610625470042683928800158098470890474007679003826959107904178631146161340391913383974073816910336927600805527137643280006010534641053274826923636671128657537625689474678402171543393578329106518796379392222410918708496402121864444667807208039451169451678615099690350452671083172777953973742380927177214869886859121205847713826184168715992773998067429556678005829577378203488282343033939151150288839922261398406612848072615304064832158724344607436012841152490598764859200475971351030391446466009787498832040785751450148600740033712793798913635069013068578943327014101017964996448528062049708027473751587410052327540488475283336628779330453674954364275784851324420845126946787419479076674236977955316497059219687190188183018078517625698459697682405342827471114650687255250940862516310077474765339829564209376931092537708016226401753653151634362360442849232248589592299851483661811103757598937995131595239183978165272788926114926984427963693712364955402709060084253990389453414957549255323538301572412130979762955421155289704415465634730518837058401181021089528098088430837983895939166084990399746660995961272863163150650022238047177208464842234399236833832960966139979109231603363822292311270830133699831455376361240493591825947241533902755947115438801037078707409893264381873605016588814770744011677263253208389678180443742099227302930300054358061094338761094319599086117863511111227002508775310957786574237454213971534502910092207118194150669737468084899528314630524730012128894217722854510154505974266866982733636179589976736831141595684887813528436165385139219676163749770291679252655772118520517213906661781887422472695853587712041653025100573837965677502467269283510058344944413143088651489301301876744384121877651338058083437470835901866595426284184619491689660298374416062746736235783156430481893375099981672917589488672359945119512656697731149367292995016882475966682184789073116415391019660160333083168622436014310598240795064859959058094986425786988497805109785444991865895820856953284886521026703795799468507653535159571124478389973518503306603048605679856419027999342245635142495532429750107258525970275076766108211663409335798152608669638031321332086464579905943845125633789176782663291839814162904837116544566545477476200271476693596456170652867661402448771274555142090615439069732631737842037833025357232246926264073782039462584172353764581952393162678830302766233089770644325944694251849451940931259128743424817674337198001219300862922626907816136226916449372124689905448314138425755285583150567936566200847423439611589561554099844121178820763555416527479147435418484829616915668873602238830453169894275532840030595842577519295811125906758955024870784550387412518818774975463367486262698985113367996944799181294040679628155933287359617067962140145688601471495519524442801016406717540798110856119489506568808027826806774773192456233709351288374324292264650027725725987426798283809840520907919662844721140526421575751652216104003488004425602700893473393937091126258663418832710719073003087919831697995034668688759913376269767752350703159367542694681308319399522195798153044340454559898123950572494495613610195805466667883026716744731515896947858955017848712679039104914778829672384447880405027495902231853911833433168045724716241981087427167314169966489541895459478128410206803300551954811008645076173318357841798162516463875684592686128623645134400653719063283485007613521869927465493293994775376787176889452099498374205435832807721161201226876459376345720939263021487208156724334780322845299964060199012289095624216944098839698177992278236118469837926039898745984556286246605121091331016581177923649179163666850729888988523830608737614805572100999453032953665890428019524176894888187557204851545738065634093057055970211460730006953186761282277539466685328131930741931902982607204909083681831079928093404975408331898296493158307582733938267789693574652568144032081556348200620040717111912774417000385183545123397695280103015746405543046926741910140922472852137092870685754576655934706531566825016383862667334998109724608155105585853910619660412728782482530676717661076801532120418312788730758640204155157798026628747343561537473163451976486018766685972462820504530512705388024429114005667794692320672391176698980558578867231571532875282979703777872486074428354231343675020649864669106641856258823657779067171932543370436460095803164449637857404577556678492751067746837096712646674394587749971709543347255590751719884138333144152106142252895179386025192959834728390843143501676204209565023156312350914955115366626484833534906670804049349414449030501647026310147139262361090133376633355405218034372227197106561328422077502924237120398857119713619403704001120485810350752610579268212313549502481930561478473364971670805991737079308848889859172653106383354039435077822783793403069680757584232893340339044996143312604435949003375272770120711311135107322961531874843209373138181631627462937023080175580846414688871917890485451653893302060119288253659878514986660128211822188360289406047190624130663224027430496050293277312557857854328149761545109017383685220050008855541942310381045746509771840075283541112023396818033735908008249945437525809055118405986114836490017733943493549197440865720900496468903162686732713159373899993970569737334283816914077798603815847241774327349477040118383578911921250914722121046850424659423587847135363328639178749644368558312305056561516495869656935416450185493716436848604575310030429766394410248301327635562777961797661032059196148160216147477201071870051626658472865755084873392898645093833954014161054200659047275916027307354290940094904964130346034639273987832123561338873126071897155288322639619059124288912555314421681716896557324315503916909916781414202087404864004822438183293965843758465208483062724121450653100933739829586110528467675578945945924166025392659898645073608431805585863889675625697142827315216600564051558319662388566657114604098462059140671483515999250261749432019690667318853387534126868530929588247824014849298855584000794137229667604842813931405882826616601938742411981216138909706666067042956364256918084810693149703287381092969422722255449712851988080876382294170250546998837724174386229677600230870692463116816702806707914719630452219903782038682799553926192352299809179344567299915944055240519190887217216678943293671052231615189510935971865537957385880380523900282634582265605148824552693446946369315224427370014600819856884467723238442853407306288934058735458492263949654333748686834858255743820405062344109407821822778532843020048215459887564482980960594753679599713190599974276099542833695982938792406837786847227475079880430348254294559468974187255400328562000865260166761759973865976846201819795470915930034084228946200068409066190577124714605519529534115208314560447991092144182148772558099209867053556558139707257471161555481457339313937722328714991460725613241127442361324413638095948505779027773043181982543970381317002085541904457558294383141802263330365880334808858838609817634034392913448405861256046193174261465137454384907535694367553719206936352743601352311654466252506280298410388539777176177818489723994663034607342651941895757025477567732180942180985609862227634502451616008536017579688006294069743176173968145811902536699358418061757716676246458402512410501713158455274156705761641249260230771995310053215515462849777779143504833023026122704171632414034373982749132767944592054180761599396588897450152099792294414155257800869230922680686297300223312991366836002094654525038958455273410265840551362734034880548861223833039542925148671377559882808992846244787383587186710984183686775839474253498851513329881814075665923064560249111015198367492245528458223903244128351286949011239048663880101657986334418690574833048036013513747577496748614635734703361331575066040712136198028801423462848149914994139184054140211395635854846449263748965244665567626333689396378594901313256877919185347879559140767539279630752061337985512003353582361841860937321681828095458327536254876633873766385324171016605964440503990526149745839550737744810156240263115312187882494698480472029846735032381724644531883135756393158203036417519824582127891212085146818301972399828781125749766163510437363011407980821899341584105344006935658979883630734392790248366388756785212590893454473717608668760490915661050676183154723768223821556971808601925614236285188188062671703368378541885441832599257306785752027234897206569770213889606903167736237985661120125826569845720239231552014679592467636101042866931620195611669499301442874362609294546516683145354470407062282641460062631351281498259227103257397483763412261516666835740494759913508105015424281177080723137328853110759038163864150975832109159893182966924043211821383625291577383409109433920495051675718836618194665677825652345430731441086274474914624238880117482718625587125948135717488914169373136403434130761102021585844993369638623599427769365344002552241413793841432044640583265416577570040488885069544288589378914191161893481680898257604398660587238750048643636176094511516756670846577365381549210891141638824011960202297090750229340315452045477254542802254095400921238081301450635819183260157585048452039470371765015062093257197944832251964190681389599810025985474627196044720799555422472440246161695755251598291427329885123144361500420252619414534927103580239396137718019122730311026838663817885475417280033124495373881425116415970177666508391694349956016348578241064774372906040403435987792372827334319757418312269760130288795903072534084751896004377621278819231721637587152105980217836387887607301015497597902610495472763902271735720073322992366747458479289610721136653435322636443475795448486916713909858631773462775613736905756554983252485333475117949405580251837535824181689985620869465526707296172151089965778255910140329049874713255504357371689156051566236978432957578901678107275456790926875058757481028556457942426940758943239077478951780236285354533007256849527343408829066239288820518583007080261803458658240875546214289016569857108301145204256003159442031081967418619054313886399197911818272087331632627840335930089516493278206754568707285518951654665801206512651522946641205760029090581623075315740399090584746082296275192700856051802062556121280660050898956858472085095118633355568724747443224591575133397671793490282533831306907617052309034871107425044591061186481773412136935054405815536666197775540699422417612731148803701832290975236609690376688299346158819647980989998449410108748958813097721042092006968306262445635945494357462238081723414373350253235428148920096150277157791209226362347635685507906032606375379196480669040919829146178934783289432018738940349509290583667573981616443255667075013352268270337505575460849633925430740425294620854143962186885656763711650001768755210120794966597028190051337548517576385428898084687633571782104019172333102708861489121458046969455026380138718652460700776831308554951845100170217122650959991812161991539107893094057269691832232429581917590178052120901761423683238135382116410167739038363813289843241136050314391482080063476343396164562188630276117187492869475374549863146551690542284889455451013292935648352420490241814986837581983211356386026713513962265131713465071125028789137824402726728710880754505014473449510341087672685730681973636224007814375744947045310402313535188621245024441767263380944844985304743686577334664265048826464020073308819868331217490866299962542944393879248903048653533464194960165418787309344071961007231186220661356985379837055518261187799286183303109475636327842290628269772543921821168637621739262297183600968886358661274919592980254371470367752899748211696740992125761431832689410064942944713348566166519659965201117668541170354954340170594173813002410146137822708565057993707909747991752866502078498345571417763713416510096315463891336117407314886250098623100210932390946740447646467984945840714464504223543483569881767157617581892501576280851179957715674248992720482861807448325987456331731278887006837331487641048844926678825169657873931574266775013489054655565300199930900491532554498537265025082222227311807189287539702780322476325107883695819580590679230172043853082545554916434836924947342180651457243972689711334098640569045640525639658622178807870908533015175495526438381300397260304249995441321451312334956799946617487003202027009725534654144553672555396017951777235549636266762664618224652523431759988389427370048807280239907760680896154627035457626524298291873176563868641160417968124838799800449891237715302104998006854455019483648493175753542430683934151040294630290680647907811604633470656976046517588484399233268283667072527843056286889347283533188268797890912000734308270454092369095908079862464703615812631097058376624323073940591620673243889638899405751991851824144244445234190672109768480911489507179539738606282313709997855995378952054181369638365931333137645880047949283058591686857182112000682875633707498342246355930308334107031257435967969894758006002113905482706320937407281943471838490512546808431859680516909803815052525534428210731951427253297595065763852703854020153804575050711218555223263387192898595876135357515531738853498771392167638850541838466575968836556515998360618794354666099776821990868439197169109229569472945890348015604266041874965657810969987687446931608897345571233317773860825230216554037754814888453369592173920410404274763514076903233975659438756688890381932619591996020216788612976623344467849077279943127883142187658382064571740437691013821530296361628438602247269819606196284187012308570794983638194915768428044002145589441716101459776244447814362507504179541260148650886994698739054203778450281828185979000519489221399684703265951581005174067897810818995697564096817319589447745473279879918174594220111968208229263635501821444591914836781394985564200140441621115767638472809128735888520167390400424929750281532949131770162380817131419996147060361735966808709805052705410362852100549879387313160159736960970539869059728768147355854814704284103143805882884707134854310513618211063759002764117755245349303491570362832853670110514538694070186715077159073317943023639633648886466609749209941082210029840732677246353080344098073302510277917902038544744447173837286604923632893711363003834081280300180315049683689952279490811193367285771325524233112069914561789658468449420545981439822393713143949675527808909001585621041972400248779588703406501653200707312218649978598340075726718750833518690918750705705174825093172570483088623049044526660946859799101639927057265393615032215579812370488178910256279048224051200064801420113908377381485143275140308507108963655640233494530886291581640693460165074138781443266809760364120979889839151006795575983850152718510647842057746454363105408530076073557970410106063452391684215167570548933392717570751945013542913030839134841357048160433240457005277181805168963137527600853957003536758368499042365696009023146816265991379932212641980959514486989012654976899070084029670679287963704645506305554859528041713471916679187924892796260090287657446358325235059711863505993951058873256326416955550158750561794347447592518042092849396451921137184093204736776854672083214734907353021169591376748935750334294932390248359606037048406749402329363268404806094943695535625178296713208407742117423384980434622553435239914816964336649005686342358109596688646526823322117711431920942872171537774872011075419819807884361935743060880600631853052990996021651722938201145900500438101489461687950980319927209958118043860639763862009890562191948321944825896639339516287050790477983493253645606718782906914142556139464833304127692847404086278508317121707241668822465057651852860982046171531506991736696996648021827361986386366831610658787731947057602168767932528230218958050280820818809987744874841708128423525735050689345234443913238400278702907908950072796813391581590792079062138847989133811146483048507953024482345457257199398561285053337488924094825872330493880673722133825531288906707645318055161798807444489694491109955554813516936574967891678964483457397279462223062776249341065240208108179206132567200885877104124917767411509477753019048389753559692685780052130732752078323000755538993331694883142788695323095639641623502995718800607874452328016602011901290716144439121443892544311095134301548197170445961730638221493828736907796207478389078400143516050090625882314716072425718022671118572494380663112607991720368232613738810861365288124651276400361830209062872947878360851867471787007259740870565503170272673795589428174074102830047962131180184213127592396582887939190207778275131779878082128716433401801100839141872572365421803217428615522022653224696547410623629191159879044043499668757832761300605281171697458525531308938296908911702666122386486559024410414141861941253194351605964789124384879804761449384551535960997493435774476043375065376957345482142064055383454939824081308498489348244430699117207116719684365256500500208451429571683494239311181906867076489102736504110088468700486133935369764745840138953430033758917169651148084737157838923461866400109521708264337340307812104221108369277345991020446048970462173157235575177505534237668733907235355870489729100927110901530860030245689796595509876805229402445694377177779602221072780695051900165821715029228596385544539061087679451535679469277721851739353330430203927288200804856603999431026985972731569011117383599543418075000712116091815211492840553627580938614150928997359688299430788822519562995104429509469258111311207842467057053910134522084587477189880997436985106429344876849842539929558628611207112848971602421083320076608090370773138811135723137180735734138055225591603157337915377043110607866493441504366168128469976274549391719572690898822485565583376910589560323000583527491756405349623804207267878498009661430096584597509238982119508114011423768363337576282253076536913989016471817119310078857807392300924098588059288080464445490810520982973369507688384816741189432976800585906684512689361288080179304092845357324646259149013993790551909944895970031253898029588939374586054363085283371406377133153423928599092789114674274988447665405728755794912348649595914775226813553349929054600709743127776724193435163590542860998837378245654548632096218366960359275559781704653914835322105805973248689630409437396280496046059612904306441765444196744402694393288041605265879894617963020631757766373440961708863094506634584529697834368474195577931991051736675155581558339343292456918578741290155871366356929907367653510079814179785461262018364282417530377900422380974264982403240722752839869149297658762096271915670701823085812487309511488494419688301264563784626614668890331726213480555941802939011840828917919565311482321424710824667547380656724368460755876223877682630762710888761041952242390102746261844412549697868651561577615731032698950220510296182763734035245476734994263943677904258076953320814745854213295354114913664723143248401092494913073676300380145995402487902315226194395739046911722336470985952418583117596470880882566745585649873421742376979960073217371601479805649804586191111131169083884970369983702361576597575017818991360908573701681521026021152223998860084564557227953424380340455417750755112929785672009356239989369418671436708268783875293126095620024251653209798961628442023027532989799423274252331004719528211383703392841331647404880082402444130072257629076255211908697971576250106384956802448858427916821345931627336518705418664329607381901003165218563019479638754214773224331231996713810905302427178221389922678752714259819242678091806510707810481313812979738605912956718887233083203136672322767063061256517425525689255712891347579045321477861639203255475911701385117406155356471643289411889720831720315879924446801714924088407144659060705904727007311467037835581417085743043420100841898818231626681686949037800426244806971504543899952252598895190999043099383051815720882225826320696483214458836973369979586757273124565854405579795776538874536882703207946257571754082484983205664391229298039698218539733326548491962064230994416289504422482110726014379530374765425912887020303828604217805602352197902649077777827033200705077727971063724375352098440642208614768030309795741602096551591900551076918031394253614092038959707910667499562608022248619201942773622923738893663976588735151812198684169379504042457139746086396094030065918276195639111095076934055405510234860224937415994845525526210346258511069190013673906891262176430497834463460168520508168798680958849707626538600939991702192052101619743060261555559752228229939042372664998514680021979045002686741234623633094864942393967951331700203577410539857205235282088639399034872072670875078615436898055428376668127691932988534387015265451816337167285860676600240843202148683314076142060109526117257438894007215641509711685630740941496936720631143808781064695181879907074017954883639009210921595218692429801911006821815713878200555879203586986189464357440205790437260529895538096934444177496168486323471536438436552634201686654761947693269910242309823202699474019184354923557837418725505789337799204173933733815974258503802338884922764820464145969630415729020876763826929682165940655331313305904180636279889183321790130069776253896616282167360508711918342346840143931774526822622291460398349682235968332613622248346502420562748739428785343515571553665365400012914239690616624770775050693194001170079604747837260969266639857102768768037945548660598440404094367953484540060074937865543044276164900451210730605564356503096735755973683898368065969386423509012446243920123486028577668119633768688871886890723458189170848065365567451915127803525974284825261823658420956142115556403003679795562827747931206103807868753003027679288686956213310801833327247052175644284306267634055999675056096284655065693315417193801175617741866386072553951642483850112314409650681911922588154508795170249667579087029430479163453050996531931534606153625746464399058964775712155040376368480854773360763466115644248528547796427444607349577609255393201797277987235021303671039766539939190699255011093251773562722540040006598706107671617091871627461513153920143437887704666368487140161455544988664876335314270851669468486971345800395870796368067058763686232324516279839319580067109122699938063192501370270245598369796468939037235532172014071918263748506156487258599593637699972880057157291319079674200848477728630482665036065071108844056019343411660530833306669362897274564046063960001050470627308612966454242400077000661533233353816169676594484500382269619520972863195397201682877774479153414641859728914809498395148563893111667890005436113860172231484789766356023739928730814177150564557901593746290011504668919932571284985880606238545046140992244258228794745765384528172628395938954389014731534462456791159706356337577815135921773500001843964019658783343117457907021703268407072284273038691190368472775112549389432941493202909176447438853030625630110626653191628944483606107878266048321344330232195349122206991114124727764687759752344228026717747332481319078035562479661014849591385392912632474815209825781449820814451354965528556594244250856523937435376947242426386468439548608555894257550364232406147263988381971598949617919691048415357201516578434823850088561653797087735044389496909073805421448679481049001431705564167252419392484753043822711767065294420088567156899877846506090336708828367690697265430002984292238674384174183115795163527661099290224633680160823230795538442366151655005928362956286478992470911099414966887199295783138381485386687313122296000654804086342217367634874842901835814247375529615343433526419797418424740619816109036557604502240076313327055899070845545151414927839344132009565979038489146986386909194011101576613655862710672979134122586025673650868508649353596226191620746960326652056595684841594727754771485068833497803636577670161883941696857250762870738693023289120270738306382116502099951266910842534597436168958451614793952156121383687512418045138066413422891665913602160029560917667713918130384459561854192256525548812222441251170773886781360689811179847572380632911546406899827901698493365859321884292411210475160020042424584656221075354586567691448686959864852158468872545738905393572543541726767282169070158652040810841817484138858920043486462442939447411194988740866193738200545977763702497834312458828175254328151374719985126374067497497544491427139428083960388427850162825317677880716314358490276927056951330668945715889029323904223794313977170283622349551339539460237550226789656836638421954820516320280727015420611431295683728745316794510552903051057999080903535649386706497899722940879151948560258623665599228915438384600294824829972336772680287906843047447521589288352906461162049917444561167465266568491538542836134703183811559492454349094197068029021838019810181577690028603115679361516076034991672428388907645012539519224263724146650894678428040814610581722152085010288822913726696404225738175374556701873521464483095549773218973240962122811573781877681620834919593927404101865272347535812127611722513809138561437412426409576865453734228473827635046728321825646769790853000138273616968139075913561875737905948867012746681028850858598394465333028940566566098788995511020369169040154128228884941794587548029574224452575257633720191447179510684390494644969801944211701225775570074284977008654879165096410491030309018756580933615555423228782687111339793102368516892389405509947431532768016115116053929405695339527873134604668575490718561539391106805757116807198724307309081710447374040533129484109284494864968364460435552653217020353250399813625380358047493303624489292239570541711001290046985714201365313410810631742635630136513369510264161534310598410964067774545967804112895681660274531434878270231011535698341589964468291591417072346877860420242915532413427790859161881367569785554673320846385342522397744428434371733643249976247044127380460156877660249430391707395999734880915558519084178884538404736537607472047821022102842868333108397301256794612623029320423432624478922071291447773041269457199543602158226414566779809330416664739085562659672355766418964890502675929463668077680233565000206888650154096147305221686866080866848093958534957590068694231425797184011997727578903858631200176476265302081559026296486407163705192770165092880182648848045124990768283944721065967904841734554797980533732209119649327382189158733523109930837287416753674193140792397433175149698914214746433056239705460645260655555547139321529219149501077583341197295314917333555723513509430411229551422333424135955430390947592780814953320311538571888235864929207185036047073485898589646733388246307412044571481592092938245970258762087743024494225063638521178915178799793428318714146516387658055796442253562803888388818480739947404029490066627344091475958230915955766673495774609147153553343390317497457585368674519803077391479232956342276017353147550280403507398076681948225365222779023543971025346186384973991089202817431746885398604535088275470679332970446014773201017065854624192925676515303484811473334666076508896558257461331763269592850104718087539735936486983264400273634765822784058101417215763767166487662576461789516621110799382179301384905800465900527940261238242022034638843900186728289982515754555988663565485710776162995044204441057277928682050492131837500763813459450318291254805968719649774263445285050856971883733410548143742505057641027949663414365747479077393425729225951220469752588768905626585797416901118327129789824219586475724297825763528448587761320743987585802226492106253212426832617801038315436848206797976421397311796763898601664832625496814674541099358332189229639297630182607312111381293847234174741364881483380481612497287933474146521410874293958527816057040698195331146245625058536354044853534207376892359141550489353292697365240096913944080405957737022345496179552071106359059440564450253935928057961711513213998428969335255508122105025815128777317808643205635150851673942546487733056229788018214191079307878024429518635017749477777665179109054354580341867416876517177689217242123082296494823386678315694147301026972722873226689046597648588765891850582415524666885264283899446305709380752466471342375118591670924370093682221889529070952529115766472778525501635854439705974538662108435052431916118305586376886721437072219613273631537222588203312563221876248457659813454772921725825627358515956397896115100892272868886986389144795206749810385992332156754073252152370382901618732999558126973202662314884650320615858242796993538712582396319229986736778819154725403747099036283977044715555589548163773209090401036866560041806917969450420890934055617501173912252770359949893690602365761985984266481840967835291303431876750151172671845500505103544800135086062401623876866813110002582533249370751689855574642621072075774888833284192433702776751368912570520493504423660167905380147298067824450313087317445905054143923158240556329892695266323394602191781555031176415263523995982397301167167037641706092624651713134714459839466852752709508741881984166800060791778322053974869004143552276559961311256576211313646306960894708059859470668642096634112612124306735274511736032350989617347328906330709417990529065234584384445972501003696601236763653340670898218306065210307686728862791532327746998314357848535743859384040356158508725036776069176351205451293614159458654559310740351436254126356391386986259395995300121568980290992235454106796019894291168073350187660497573940062394103336775966544304979463412547957572895393671368071587060721809414196978643530486633465254733120639255581806523894342747920589595911874489463958944191160771290198810370716480205327868982156505843477200256248814497567687479991745542085480299083364926061177407478370458900587778473761199495203053143546956848685921065488071676513495961859514033883205495427048518205134281655284082006458556850866944238595601636675267672795750066248781551988178875347669790935504629789735418431153373779210232188587112928641758367496655371093874574987435266265837516088102632681835486216290457851396483604239542156202799253530285700187766598765916533028211127696188519832206970416929970081238600624577948276857876663863032512280816044670307195558882809537078235172194709677553354391232424034614850426669082390673922009686107155010396598313780357313040832515061573659845233593465919271064098233386663280521371044686941793828843812194235702984201554665123589841491153288575367240577804412239142291895104279352371586312467529929161063026430958904255771594026481077184309518514989812887275112373200376503074851078646753446337373392643175914840516554311245301954221302896445131481910148345776179180414105569748746980145075159323786512171570157989164258528723505027543023793634845055289058055044832016938364456124133049971290963553074508372270572652431902603162927079542413326711153492040574626995338898831793990258420990404917266221154618481265389470301556155064131656517056732235930340673941648866987534989530906693062625402104062270588425183843165316000220449991648978558599650566687280528450571882617648655795841870481709424105217776326873645580997548139167145060505538374573224173189843983173836776100660927177143542920507449272920112083851325602280538864614797362903508469550645560622553964175844312477541652801956232658097491413360273959539580194813047818170875601508451693160404247002488638571455513505770489834271555116074571425435928901382783612260314280814116479004885806336624169899584160287501493074149517796447753053634111767448489750221338068620445417069779388275932384272070216767805761471543263170060775019971317903737570718926123939474579495233219707684734710802495401996188084837560174021371402402389345560620740732667278535754399799874922663454090195979704157368378656925023786046427317375647702063403455613815162831138031714449599545140011255751484094845175227780452536412760691767374858913882821423471332822338279548584463224470415053797553844398286661722478625750789156227383324724137418647171954481229336327554814222972156469510893730844223885528769165346773994794836645621480720706256430561147370520360127597221770824823491964010787621364411593630627425350316677515851984276311027922852382643064330537988520059613850634915210447305461160842700410143929963346865368831937219258937647751038445537355859720573878407630297343614476120354686118095142750926582191862247500422602219193531057612592336672809065672085546561838278103678513879980421894026507893149822626254703047154784537393708003058633891021003743676980737361052354343739046927816769411108128022469122352417643779805787580006876815945859645816357788705043831535450746845779179439209230866920965860398346016612818233824967879775828494447631872946488491019835255378647449767980375313636607654998517062557282025681707731840720865498834844108451247029712052473544774839034071452762070163135551762331681048636644331874264108075603155168494609688787856667912724404701852230766208408018002424316519222561346262889510254584808507324772817915739055829760702086438001640757709544746759311559427932457852881723910990721544232619021984071756894066047989789495702496161909000052905927500925959403445278268525325248316809341204476224969033667784534587189789583665381304066775888911641261686684605587144811306026444250952944453554659339853245327361663582412866558040891791368917295837547118111818821011985660400723139541348985700909176864035428956510871565607731942960002805739045219597628941811059826357699996635827967645406891979033206699153851156719118333173390572794711851342710765134610713623907453157886352762134764549014742564053446611415052457225868022809453488004437859084345040074756172592631123847744202000953387823186541298006512557510545921496451382127589610824343747821726269740537541094545424952809814104441403847118663032084912193125075770109335108795246278003097700242869548529725098348320474476370007500182176105590799004009228701355733678043993364182399247400362756806789558893918116204022205764774711470327262824165226991473208222563002148973491756486952735297371444677413650930346086653749454357989626248632440573360367011413884139183253937273311758304088828546271014809068589478687108911570617310455109619984893411328470669400711642696263521728414648912868044137710944674041157829662298440422346213839214438047018254846693097496251247564459587496277739818684201436396918495322272357262805772069302974802151528822365752316204245963904805160344391610065471827700842375707727219049067705455822881797451029978910891963995076798544278656613601929595319806108334711518811123337690650929286102935907512981550264001668816733753100161260908233207448515644896788289055438624835643846915071213521628040996621247569008755306177669985897682125428811577205948945147957488817097308308556865242534578500043545071225958203207650710232028497083429247450562472330338135219317878850169321767793064034415545223401329882585675794462997572846484431303491556457411425900781506821361887539830150902736924521927864231854922172537100245959195172939764427707487857032494859484840171352476040732005331389965398092800553398831986490921350191202261069074029223991730076639353960035925332076149644953456365859843011678088122633633002073181436498494545859147365379681417654092093746111867989144517472677189877729427728685958796279792578231820639657367121607903615417917815807318601983648777310230848256583701553028847246133112963577624919546690536446319259589034294957550667940746763037340380047998575266383074473246712722605781754215583915749428379022431574833782209752619744240781317907606239279519503649716506172190209074290426733067691701537380255765513667958966253500426076871696992296098773047164314193284243840544714586462487316859262876410226639796545936914604532998839319047836222103782483862826585046426645600290726052763519581824457718307585440267087849898723378133338978636573373954827509382243296288981732142471567708910507359471873706306980634167668766268998132672074815040463042090443459807901604977600156445944789897317688455706730227011989747083908111350857041406467703983364010890463447791364958253142297570822823418368183462981672888055879379685659357110367765738383699634261298791067402476384919393612414734449542759852971375743921556946864632230823223942353704315070535334494050792401602184633590395712866535357794583027645533010524682033636491508379758290860792857666653244419941994731559013519347694723230485520347213475509148069072152889467144837593820871066899438690577291118768000935503737771374545611154835324082205202720244890774250619526768051892497902673130796908690444006636448837641470265258690341997178630684148439449358516318812645359993101851060817887960362815323746897190378349973565098055273159744808937562056582157737047107797443554910438296211169044786498042807849601440066661751764058367403437220352439031743191531262134329647238642856245751627831327334758121227655263090777549248048212930725745600862114069776147696180114684312459935345746852861243943556020036274219891663530038762747507410992521742697677672605995406990152943160224399807447926066674989225358877395207639761713360711449484948992848924573034850447862916254616504375680907560992014868330556053728768051148410666104936271490091541137486492890740742779165562170183813655245120838982693095015368192137880806408565843527609763440049698004065008186083052055218069613655097806904309577546541833939150867850838260630811700332102396030297451012695963270425564200931800000380109703645025818798352357955653051842736657598776084100482095454837713402248722403819595411142417175700950557705115314563758014805877584093649591872262470484861819529754943875105961258374781910463721229082422760403691117227620229159877693192817969277966202157842756923191747591111697155148176305194245782577359944527752232917131698934083471187388615626286734323758227113560143520827600960432484839681120943220176414822378813624855373749109042962446907702737728220024333621757904746428750040096276314444477616037519860933571930328237799561449520750389349160611884452084139050524899308514351824505832504118003967276271844553100476065414864373891480029547901368688454948010273413805120785637578826327238478395717744531977159531968649166247282527936081425711190539606452636105929782930064996662263906248871823964205130747471563134703591186849708306843827000399625501958325746228656130176814920777593334976871866900335029610227097354697474649310072237230523971921639132425553716250898682518057410519480110519870368552131176340705597288064379437739498957133568797844200344750947043653413960082131926925050113475440005439894523125863186193857576040871784415692247088921820126206964876472944489958077525728807221245187074653221820469617763340625434331311857040039483659525077496500993239079349863612152821681568509527580585261745375893156340704064336705790471191935716473102294536979837152573005287636033560193538599922738941175467833540241644732758243285807902601514131347733759432579041203575537496004666846704622329138785217373085431189812287097338434248833448302223343887482645460047630070270937807784246862196327801434870406026014261528377175619882634128023680710031646237677184834880016203299322678645461238553131234229207057538828406288957814671178815178125086103885138534837593662748691531178522120472410929853286558843362856642649040639697799571483855367433185377914054891208698405427481972680583947814698038399589025185326975336130010510920730013271615751256715037321055896420198645230267920863119646964601315837481772647718523191545835566221294255592861760177151548147288622903133441046952367151867426590891649845491776639627427379532635607067704379776599667274892887404716928767654150597315261305558213186692236693971893430870195298086677782924085557131116263851270876773472783788351203196226875673086294286705438216891208051166294715452178607996745226841812553785808086760789468612058065967320507885442771429269629953696175528621133675150787939488674290859350378472339165933406578146296964342423671560688370746199946937552649778353249042864715476632982140850526375893402713202342463925780394761713133339358388870016029466806877134576911881296125951783549504187584056358588051665607559656297083451192926733888681312080391297511778782966987894720286150967818494338712811184238793637667679268213527141196963002725160918563007180036457674616251966385029663141960037621039835209038173418104584716452613284897927147181810004887670076644018821893983267002113624041643960803052120608806221878035964794760419389158590598779708557922758664521262134969626191784681942453323844437423202662440546200509226352470900998529013229838440427220693468656887448929308088393545386835388983288819966706277872130079659094665501355129003413757081578529455200671414900618653897953657827722403971780112537369859070977327380593028755024616980226799982122264438022888217444638886321459668639038635105597295376260086602773414214371059291631779430996523364394997715586969528711158120279843057511807918851713652854474324187997924188739005653625659237585374883640493740951606775543196295532506417295990532461427443450749982534169091305318718101810884897867259710666204563578895965581171374902409265645297405565772021940961845619621457249293909095377052682490686958673421694172886146931548020796488866278570825606636761698675388373138063648651348278515724575198626105837579852806733138649501518833591812541198526877940748865235858244557874775868004811768182395505297370371236307810274443992416832249217487202541479534416261539229993839845297443185683988975664080586113152110695026279389038214013937222995295803652397306380465244571128897494142430846266725367179119208439821641638991877153882068035852914926859347244751040807089457348126250088182373913421754537726891534281919735365975390323225602330452864433861729712553168655964479816890014502999076719222379234614356708096694763675616963403358211069631621971518044569663872756310132446871939208617468504844271963931668177875035394652260751175828464476083296527027186017608521092503360776734644268924666462134440280553717417512823626978072976031220248135397359764141206438328476508818668041031763678584908533202977482880518872049361416165687431864842743498838473256668208341035147232661493637292719291254335764677930467974198034510879662646251916409739609563103160010611777915164681886779705540932610486185874057258080116699866583013622591463634002009379450835072808774136855858392379376873827051357258803044323068894273130667348060217916602875140802508600650241328759067595380711657731943791997492426013973598743894028790731129286910137930707648492387835064338399927370786871362153056582632531122027971882331169143250541640218000245083665985536596869479264667290807220971631647626050826523291763294858235724094473730762591197494435866746181796275491102034154313738005098937015272424260440471009510579806683585763795455861214015632276579347160769730154095604725525910596654896767835420522976504380337904333101175536464422073282165563407404805042978626840825534959235604480785342260071923319782804626284475926514267097757321394844012275729543968608475106100292848326872206640896912254081958057890127440944145975716904766038065262615114077972039586271183166230356847890718411092269548906353765360298921210137160145276631863642715090921799777016016918684431058994031224777935049929750129231710593337111225858910318203283762598740997348124893752985294929394897937396866160074320170634213596357887873471670456166212373906501962874321673216284695701046657684209681893913776105445174817898985224108981184788223920817541722555849261397895128812989083253432711998075050703765853888948164785726207541429595389352088751165031021033956219365403439795558990077178138431774334444457845609364164503537960514689451340687405872998197086558744172572109504294041886555860738199286199695909568473679878644734008828349613291413595152958331342249476700130838394867562281883392390569187173469240010854888580670908372121457638034653632955163098273991603604709862703148575100014762051522576504774177948429945874089964724310801805192388902502789318990407312648412644321461313589883557445003179058365201504133361225888080135085231501572583649486789245920174705517999286846486635804006573830644947860203621646150322241337111178391896908683763442839421561554426830917747453979336572052532945399950838239713050622721273127097131976077031038437207794449098318964357829475947838012606848515465207033696298651420188021948555497316455304240636994189537963937203561513587018204375530598909264843809863208288909081500305650636466354938378438140605064566449765974106727232713523881918299453134173847738083516127642684040951642127365103994657081039528154841791020293507538363302702344338729893529345882361140677348885081979188118171474273975636875396420531380221224837819255129468889771874963238329828846740388705431088190661763091266304120397306508224591300679870618013024290059966952530031051292228233681245576417838369002293631833220875565867317457746751713578153866985461223120424132970070992374362416745562326631666548505596927873128855552856927273783755843180785498781022370618600636036752599004176153781900529787301354871922698228644733824000823031710683350697486909628036063785610555069041779047459354268617958265104667148950026297176576459334680213209903949079715841765276691680758772695827324286168745698228576974242474597809628887298493681604932362446608339530625257107496419046208885353896110726815394312617180732773883022115942506925896817932703686076891000110046660528023142721247261137131176799945645175803706018933265363210214200969585725375481060476338919418162309388907100286578861352382974260687274125721200841288901951669192827373821043383943379222629205157140903630364030490808888165643467508961658550655014389590080379761092137642056637960544923187532563792241389908245219023395555254035548484039635769083912153635120610033656319077111275861192548620745054963669991553937375620666896773506686004579083697862468640622128002939046695972998083468110301976494480301534550946259060656024387821651919841062979126895787210232583982177950100669429986919427920649982313285479671735844545999424184464864583718937851650133653753053315792033982128794048875912386416530433926454950269410567879830676713294176122805164228118837084792192181804839332452363981497093045074254281725586660768652225113457905544245686978904555516751173073216501725632650059340974607507094311524188127688649551167004482004613864395724966299121237399834803263251295398315500311833650351886102169004708019202733457892776362638663202988893180116202166295604609821435622454612003357589512927363232370717643896914365351889002487494239916527165939989214025953411942335275064333235550991962918720522246361805702665925324165400134514059592550360753371163601848949493246001077047396412142274436273341257449480296920992967261414629221819469350760885787400740002648542175993260979632751164942109775596879939841562576094857592990536903292211885340190727678026582736007758133164827562244436912962839247775343261920387538809040435318900350101504287106390876607009693103798606868823969581679065311387535126166406537943292867358966597062909562704241348992195524221345768790052585981335151061750174208061238667133638448923246016462727888317802586320714064742246685373233587243879598022078850511969443095159504784966348288202221260140828471645107461744977143417596866382324786764206932500630598172867153600557685947012789776705773151742381115396966186159924844495209481024810148677283979350778883311732226672416500077193907365185833670049765791836448147867858428027428744950841970500957788335532483070204412364905376158593131275722040619196392696412591359822959415607320686628541007728693209028499458542481960136950879812160262529475388421684724372298292499121735998225633528431572459939347834842386428940614032329541535406881502623427951643385424737335443213416595158710304833382171189777137264470853349556980798912791437905082044872062968970584400002082731569625632190131114469639417306965202579479887344393730585791457477430032606476817361150241845017945385102600911567395417889092650047157377157604075662972123071223629334449705433027676894531614455543569217009234549212748662835507475073346363570964268769774590403341037064637253669366659875036563376697922904786072866033503231282370636749825757207038734396220963776882568661548939307600357352580434396973171554964108883423694084763114387648828984951796303688787829381980394604501557003170180265411436021408017908712232664239890518535188986819457088121218672505457445821583306411741310205212488902102632693373724055354234580383490790793658379218956427427154758842688437656652766153564969608445536687271968419442003750773684806809064405926445813511390431289210693193165976191996402507808819487101641213167244605031606984841159266512245927587096822363888164031994991150454338834078579271090159133335609451805712756986937412866781764224735700858095993978036082227354731384067196059525950073974188438304076330083597042153123890986939712649134654825364557436241987365454199750335378130328271330440754667263576935582222074335146582790065450557779030831219240815132421895342311920361685087044176738786673018085981451523457671854836802263478596295560410708179887417383702470193198053389482707716526532403515127346877704330968854417732994890219926717772669924587443501321292203278623694498474823322564062587465443425029283297649836929907925416713015845680271033754053680592635857833671203073140104966047929351991095774260865242709986326208309602741561054105375602441676913651333366527975684252791448654099287920515726988392838989277206397758886317825900177401721208615648435443256772131725486937581394429399963821459165990506746024787034832338298724344650466966946481627291347528883809119160610627481646771382705544764088182053887510464431318838787211658964331808521174259034268260658189745430972977422203172145115684010457654102218356462558390474827639312796492111837507082391417899153067710179107054422482515709288075427922420842334149517118395053103456683140966243020126467315861192008236013556005577789010146232327470228316425915453764758337061730730446953505449525967564663687653955790549333391496473594019173132671502660241698729953094092480147810028653307374262490770047028450531223089575612857820605999258585496855554501066906376731105493673353253019769657946740636688115815069560446645504507352105673546295918161330033332781783913213558477622070786804597548337999004448529348616517529122404858329252557885896357526680553558047045655394812084312201913225770760330163216180336181554785027157964196642027080366048249954299046993846979471973317436076203064738957725252752359682537408504200713348370544823237036398778661228456859833322571998598076607901363316218741198114613031657471372583211716217550645932160755263604428711814811172170101114347088330366861936673279680861662746261065318387219923892627752496678666045421082599431797630952555651877437189328113831693770123693288657179905482398241081192777130495173900871037377966419189087458105494170336022848684070628730014070042830151423476515675007933427025795274678701880735107844250349152799654866354861301245298015540396696313265093221462356140942168492242875660065786747027870681003318661929468062532345854104397770233111463782763424045167544322264061476800608471878616669023485212848748502421866115040376613753514898673255675825210063438066359190630816905854660519652965165015269336037348748069207020523116557662962752513785546816879692432199534431388416003135931018071129348303330635147973673848051188803414742920245038100882662059624266270702242326669486796753975778352921574159092962369276614359455471527176016101166875857654744649496741182149523337887630965289741619571266481771025063924118878458461554032295066874164899375212066213984587342575795403480963102113997929626833681214537486557593174222210756443429075638488831078354381449509084297278974124636556473203686851797513039378445140114204385653004977223759781131873489482277701731954703339663721162770266081132667891124705614434079922174249921317507000317135139663830623031392156526005004056016593825952922099682356518476869746865059109221497657625487323617830690854316246416869203333956579030495461907645126219407785103427074505185098927236889674435987614126293953927383003784364129297639327227110242929053439107287485161549928226988240918238845181489482046313392978759833361335243728054208108960856777440524090542387742052536432447870764719016281638304657373856753465030675583459847486759555950032189887498491793508609655297323177099186118407159162341518772679582473805983695328634402399413416923770759954672596618207079223576067287964521573467769597052350770322031099468951062530263170682932156797812087081498003807591695552024744886262004262659288664218375352604986481230262660144362969173733855068983088016251696138873404780951404492439311512361428853148103504430926218441422427839791541099722470517431428457242106430379182910157481394796308782768140100058857217980266075250698659904212021341869221687693955940777805520039231172375685987798998243708525742840994726445657451516806657295838308861639480884661008577280724186952987432021161786302595824507324068701465352928208753976118632460906367066446748663700901236291558265146898582156845385072382980172643687528088868218135817300897723878008775912171625093977031580084738141359888299743530535767681971942606060608812176232417137822397477118983338233883328387551428458206298342892595063321143707759917251650663275204186098260444340536565670945011017533132111780131639422445741368128613136869484451638796841253326367069068678482827368720629615359842159987203661212547581378893853178128088204646006614212091187400377880303506785477535099524262947157091023054903310361935291615851182088204154523828582528165146303342663649154841249985324513343315108449799675851314285598473720049636586049416956055242404608574354859683588173941277487854313914754280795430408658189368250675501438135593100767002086856035047941081035204950410082555867514316948393897875676457253264443175986589803521780134928970857123044252699625969795634974057950644813020606831994616619807064676213261443373939800646482558388980899506216747257699143391702674441529952539548701971882059298003435043980611208911502458465805692821196877930347621764223345639053274746943132669273724417593389194519092556612343052442762094615767773753293998379857766893677396867711021097071602003269525136627279523642424303447775509552966594877714671995493229113790880332729144227573505709632304486775899835718025049736305040629327296010739616780490805937616926815470459986183756248243946988738096856748679430406517059256340558795881931775452108078759398030972120690215502675195057217246755224726859103319075354962652703096945914396137318835585141363137765201064991732558089596558538959951445096455986448054058176119968662797464474664881955683223146810333714250109328154320979237898640081573612397077506786440234697711785965565514719878421150578115338689907797417716431773472437009590634060386815620609961265256447279024707435934941655593003812728135410959048910961292439784491401266286626072080694359571258469414402377843727849618110870411774260379411116270002591324836659526602327220442807426119042198335466337612269722786228414928865065875684346930744458193158882092514325534610162456535624743613813725730834366179999495046155690557999461248173572901530915185027605172591826416167963790093950189804031291293804812286954592469636560880031769300106890723377939108397300667967480136621134416480843929384371822798609454719717267549147423916683779176529063763697073866181784310948395558417499428395016969724148351021251333255232917981175505342868866751133066938436303929313784504559462161013109392407706243144518024678385335670162852162269753761745745590843003919502001650524420432417798073355500224556890363333421107644874933013856998383055479536331902481466900316737841742863263970294408808553146068962698956209173543272571119120291135524207054124314503957950371234758790083362139727305043705098889536302892454062139478878734338629057331750944848161220701037914017970725776721713998523382349309538129819587081142495217666691596809023266447564674254462243775819339618988012126744151214061557175803397201086071305238930595946655220201509850783394269533881536656127792076632588130531296747308028180680812906444191840635298399890205211845234090764159943543704166152081925808362323475984413184089687700166092502274308074956314405249124525427285471352047906668033777910714139047555551455789330535233498938621111833754704210027344619985606222930722463443673236746816408129548395461737307911430326795828252455343257263382356448385282827791253606807231530290999859557513637499499949027353088911807694045981714112270333969329567874528107459044007189188527651370662904102800940131758816396067166871260753754488024746571090687495630153383957300085439830012613168024226337523890960687267842055194761758393362240780632347878530476263609499062937469565084807023935449446587411277536673955894073584713979753201394065585893358462183035546113736247950571987525708942853609204750735757923130054448355867604850020964705065878077212619745039775389156587400906070429734702057460356669392992217149728485574476929937530260619759548220639313573863759927171793963557341184552495193878984890352712995392211588103907000662754384002205763616815698014214785943516883630484232782204700098127006806552762202748746371552431990745217957809726596929474716753473875264393937287525952295444644974554032123203744268084088871288011123853389944442058118851363580078769985105179416091748703743580110451812829543192478108408830048458287774699770397903621008724388920671347426986861141972690456791759378695076961278142716183283523217246517766848718367921066540584711750201378334006121395472039598013120732778458892069659034646268294529115032436037063108557152759766683326142519840088287040979134990549391365091788066875791602669065473913721705030143193301236902691338056057105929390340420382921310059509988570449777319509717704852296135490800778103273859598922776564535396255851766006130850625276464005073956838932436194096184593977862760850082636525883503872579462815772046965628366204625245562138683440186265019148297165024534713865274559255568415257360491575467889992152709540836352048149060945199778099116298135930923632122487638938365910047320427869708430464620454797266557360161372731878756453601237633327169246799755348522863967833680957297629489833748735890548110705174265518114970779887168501155410143223863750018378733299422545843105796274787814990960596169010826690333089327916872241434964720257222540324493259916995200958329991029926063777374943951865937781159561875559942931413511042580703567951364342539198582698962469024945566320713900711438772229229021154759979239557458907205067540726635066573941776649478218294493438447789535943374735358921072085267330488395277507156330695729781871137177517089316082104103567987034447912093129376570395536378712272246957396954505362050589774083305030214423982523337735494047359615945447110900684177392220585009340694045473897143107375455381044796438828249200815132870434020935936807826222582479290333334108111577801121523546693585150378222599275079175418627363226713207570739682309162410855841494692813331708281235702990212747271862663157771805910790701779664258468297954556833919672417963357517766771804030553337838012554905895869088029611800113580807317098134403227619989151584160144853000719179414712148340105874166635558011387409657061304692094060488918997825361767550984479178899455426157492665807833260378162192458176400180059752392713219609125512453765396381782828390301772428900551349899232990988535966605058104235430045572701329606880566631184589202366469665885394070153684573463046646968711745395761736844330224882463882453936405728910492508488405179373448266222291768032185849910072080748066645849375356336963686462036696472591907989017132496693909075030561261880884112796207459008344298860435347212843354359014282702625784006185883363553654864381925681430478624328416815875103578364801383195185090791198954210565636819594642176747682973266208741821912906162272038020029085528328246246651160387273517960702993945580176989547754002654607126896909820214215078766342547033079154287663763260536167558979848225230905816197350004144073118903549456680828401122457531024164710434247539114248920175073553375526106946649138566743418346180440941200879317110328572897687803255159950746405689101286893364532097469375001429445695162023133266126189033199206012307552081198938093930222212239185173969288871012054987420467179096819934777255234109140003167804045284200724430968334449721722706423326790599342654993097329791587054118993040774680262919820817322685206703905502656709738156639145840175551896783047470103362751275975105934961000992874441622563345881091764422277349525682677156250456391789454145076640343876380393936222879566201969038116956224103186553826650958901265257060361867279458566748633572999046222385170428382797091595821887101317955899102324799555175082797175353968348016743919589368067789462389556199417769540796195281634547127978428263581651027434809347524371521034719346657591954618078575513274045168324892572534070964251646277801787748329751221275842059376173247239245209450693520344494907744268431155855612338234190952578684284537769069379022722586083861120283687244088082890751995797532094253648515833767546004228544996353732669800899206755895558690470357153131018339845482816782266897948296470021470542126955764742345938808231615994250820774986090894418411806643319835287212915937608890792688584401101431656033765277241788402862665912722132475329266814826650726730647815688091230876306040133344261290661290988308819753951123088654016742956163139283385967714144355904067453829784180051528129967734337517771550447368693210711452979630877596251823725056931324649509053765448668536545965942261993337940346521310061120100807178187398534829672056853666748867941341387614332802530901534181373611433116632421009850685614151753577479080885935704402293686328510741487971535810719197745220568294908886095589272233586841035214448455106671749749295581445642464415834810416390314879721108523422988591900041046932478869572797246162348360464114930379002514577806680700016510182128178986200921589311591966121458687965918279730900779582437428615072196558926939643448793541266490660754093788409676544094087131511690881387753701219442675471024479837964039726903987319774857627316009679012498257309207377727697360905582889691000100971566984353767282331952249991566153220242767357968724034221037278776278128186314575993597252526999599990017920598159529363445431387882679896500612586357370496163680569843656983627000643379376683083660430489987559788238069281918658040223806130314910947945428845086486713948233097142988810514055168704270788353127854012182455367084253460262673321090101191657852826282168089096348883380172256982774395826091387245695012794688252143659509338871703589010878068612399270946646372654333747975483674701562974224307508784678796780478748796081058536066583244522223955456501861013809412440382189494799564858248218328677205850701162694730738857959448558122773056542156212317640533196898747659120972844144078664274370920604202854832899149165846208203903330244646233649283654072545781698983876758669801994441227448916950261265126916084301603724838364355692357469177458499971528463169724368869191010219653710355917625880925672878172285842519658643069856828845383613070901970371797136069017993884227026360246469967034710592237553884479658690009519971362350606932173541208269844457949066837124807075014824410509983658649812774687795535122390881053620828821664591625681674263293796126309024884869498398296168555562068894309890687340863114915924960587032152652177502321485099511113447336200422528741040259932279171568741777839687890253532997460071505965735340265369131156416187943315600785670121776797160287483380142549144197793646389896338337330704526216003768713341371418807747701894311929585988590255646783352780221450639892767080992514476352283947298642411348257283576957167877945856461470555549479768434993325537043189954235030145718748146023583999668852580964838796138203963232591882898247735363602503628841309062106741360316067007581612148170655368827283918245552207321246501049188240480290670927688168572644330069225407601113513128610101121400330229936638069149785206353098842013669200280859573800088702611949133591520258554744558234825626533123070191844174259830972284325231918739348282071386268666099763988193559301815188147680454456872673490767236251492005449123060674358512526780338303660826078559356854249020303412940583245696203744699245732769523687298754750085413508283554395465770034935350572281199305325417478299990757312437260243960311627672016845624038086176799120182255432971185063311739321750706236043317085646576994610698024196116465615428904739248793428506854259284093947053637775505010840705375180151824076211384184572148686385043425488773692762677716048588075072791711207711442990401349437225128743340309874742915772257959788490609744812913341744736465285904045881077894221035645413673059308846521343901814008976608856770886583125465020050358152942751448266175332922179491294163423746133727260646737865677183857766776018606064289629010350348432173267278443170461216128862697345700716185922798996117651678866029114231332925983904028753958230642693367020421311282622736641985364482300664936414377405928120127461224162078574285815131950404770935557194205291702227468846655520562047325146063762511026795877194712070925332880241169295649565180090532026837386258292495148593745354608250440799427072081172508573280832078262730608746426148786197166703707136674890269625029077916709331210467181549279814074895069174192693772971943713524262849171746054579073822240942281844447779418586488275286588828828234112498036804644902856236720979809696055400109981433007937115721384198062929357872437686553780970093511641222518280285678783659707102242676407596960818315166239420420416910509137795347814342155772873691150308307706529648936096779093199375265185445978858753592088602905951041932467133827701899308446688202586517310510263702923708772007614977193061327989730146522659862123246622812097756644457867240123786791831939781005565353304971948803675868585717747847779784757154347427668073810137852032168617961107072864955759714656165418488505929376260167355567025785689797580183736336927971218255251808016827389506076381698268295547129059929879073717215627486021452308257998637005447574216120631511979656918755379407487680238881210457566472679721740922210739026648680159155548022857451515541347859870031930257721349850481600026689409371763916359660716804052577178095573172565986929222167898127139884396071363185819802978677838594914547927478190045221859476155040772421005878158205351439734720558533371563073146832365264226707004893024050360053027921714565129023337383435908009818679850912005474836655676458257120936261825806928016113886772295447774039624609936106045077049611187152029234660595221372499499444034287716706199470990451850868569411984460716774137683757572798199467918142903193347656975048212227242074356511707907399367928424713095370585588235386289760424689496640592068503522653546094980526182784865420539508348893215112905368442869438046673409708335897650879638955402784689670937316856032093356628988733136383589160915822142078106608865653195169884406578576761947419668605375988633612674013181031761757932388475050366524946420191887652373688412826846719033663751408157465818171679762448755655856447182013988070823866557442562744518268894929971296056626499673119137444131448289681680830683059954719000802446592286382205574570531493224244035210114282580470161356797221343017267225058438094423560086693574550513407135428572777746314998433365647563751311002105273192795084067409588102992275572303075216093733027954863944084240942771669061308688658711924101710644686248439973214641318207188619491348936646645483681004514177135372590343517085441577210653571253286821569715520300095359487150221796895318162197974823628784206791134532102499372377985467240037305662580210906018969535322830629859329557148959660231860770181433456215138226707508646915561358008445520599906142085188680469114061855944761616777786918623205141481893433988232089779914374821021039995480072826142709063799039749302459490073940993574156138967016482577909515061465883752157836183222788968605648949280266600379194193243965842176659632257766793066187138986591993121057487592652274741536723125796384598163022252228943642041686935842879861708994323847123445038093829412334431708138267429169041200323569854490454727932330886180561028404938748240001967060702911601650074961613371839970970690622394825292762137299686214065774396992353510057764099045330104514108386417888819657599157617117949594137063513184041251632138369410666415987502954414042050229642294584809851036854647391744445347654242620634443090435608884432493916729307325162156952034610283775926194120485957480945989650783147684522322592396683845072077563074310998402746032827114531305562804644339652651956709266825755442470874787502799940725843388924611037595540969397060725094945836180764681575005745855373044840388500877443828940389493816519423693589772162400064791395529965087779073485901719167453889757948655939249771234030772363254819615000857035851716813083735858425743739605038679047832920823963317981914259894686840323072068079249651036343674995821313481727832329088366869475202755482284710351759413277441094732069829430891155579460781815322165750388136521158606121194831623744818088957475852689424447537805663658376099342389977712055076418660905040960851811062236752995740528695586929633156657320312754839080560272016276661277766417174660079705734297700799291240916034010648153524439909450177986225103798352305123706528155377344293217221326327910972860292940852193192754630300938960170073581848348380402201889898856669140480128798858115200615872767291614860857077002306629831590552184576268172476606247197137616781928461454308359109737197291860626948179425497049995610329390326950846887250927180380101296296121391878113064143794672559550553926022893485584805588440393642953782451272057742761563681274933888262310650951364319579212878268653592841300911505842842126517765487214756973791661600372685129270119405896583304670823890458277739732884036766085842132492474609704612746426388292287567783609533294199253675051430270507730693538386646276194372290419237480219664416956093989637227618377371816458306826266644927493955164608546637856774228448522701410507389204014819795842482903977354173415624799752999797799189506535933247199047605055989818598767426510778569860225382246938990044164886132320612407820028578712014935356661286219332179823737346658730199063376628540929106271526790275083272070304439958026155827659415387225472899290654745421365858132127375439658404184451626462353075955058208795751620587220818701759421074290206631227869598144299479171031347660119540813988800645215958305750975546308668140034638486200088017720763550981038300159303949681454621352799464109845239881185800331289671452482876478961748150944017166271179665631901629333294738072209315297591175893912135978305584865242728115397383399051836538611508000422625075308242587658894775686427910459029869766689949008890774541361710368327602825970206788120258871591720879942183891739357325505583698633904820615426555279124052724758376441247167566895828713808701010271979415111787129999620925004427400547649767292436954163087862901444756053945968702946633289852236244217886956326442717081814877802258777487999126111454636472858919990202523866316422051320191839182728446239463090751654251571074168549748135746023771634577355132281367832955022788695009216942835975716449688116274943243331736652494066788885751827344748717475713749272772705826063747167332619938056075860247685041279754434236560288642949028739435631062579411234302254109244192041851787381669742630258938147591210783289877275846870305552701355368579075677334344242437146497796224849979349241661298915416257362350700575328794652513416416420621644721331573100835791816954339618557591011122613330947505041444116917583127601287319526542221629509676703976208501046487205736813012118521512117098214744788561790561268468100582311818316210318623532651289797853555822880224895212301560999625086239415849202752658478454387809820950432499430808013357422797762734887625405786003511182510630626050846831736118071540147658654249358153882135586262963512323690354568613337445280729185433305613825449576790947703414654687578136944409276485769681994983637240916492805689558490686856184796758602060204378453072948725327414829577433017820401641343645230129187886578676380254385296853677898455684308473251259798517426617916713503411972110117624209966348574804238630612202487972154577808933847323869128440341429511805463947016158927374381042442002810031744767551148588186914508656333068135196980605027806423565924195555118579971532933044227880584340011723274902832468959849534475482194028032523763205572677509332275368567582615758873492369479419547566917008239210900309800549079683899797938925915750898367835489355422453795887935548709684782009571356091711954847706703964789389382218501585379159149843801735300943626630244873583073227726401556883469919096180391476598128581810942854160861914411746872588906096616219868147793694493098057827643349688894568744962177121735451568471967703954636779875292992837873741792274548680036365675305222230026964488384417448987188851856032378212075679573138959414006310788461397447787855078157143508300425094157857809232645486060169622221533391880906426675976238097003014608176931215746622175023496675885002442710213790709630572138061083281035842783413666834662444344405797734832597170214464628146699236836041513738271681927912999916301639211057258963035163405983978408296237153598199602817008159288337546241811457807578097961472105011832034434090704299942123671368919982428061905716336911178927935434241114770077204867041752527195167062173438531274615595119041911524215783925977344118233992963106724756576346191545945193418714681115113033317990582494379389091791182437471305689224865594455188385947053686597602572954793676492115956902183820227280673605617038142528784219986639382847559241037151708665096749926647734257809013228404769062234836313282976688917212151944114022977779684730094498059879991250401079934046465627718947146294416678819390463859354823848265838172455623307948357896735589072100442388363166758438567235160342702642915881843443500865743717615291002948413417962945060277233681605998715739299512787818804566808318076731136926863214563925993242048287405630814579192374312631838267169017424697139720654288776847967520399604384406515458779422952208853601941039607280459921412760883222941416129217508351180628828741943284284912691358015993612454693778244587277531350156666249976906219577842551963118060374615837529849146189611554725771714127227491078754130062094204387815728626829246902343453619548831697586513297012320814205026310058908165665725627811528537907578009512156696136056080001647654724154693123455677834652845699951817072278585975680967153458546848920534590921796295980543407735759234133610918312900486257886462103777064039302027721343494898413220602162385664289088087462866817367942850019422623308222243258347454781800293095046918420139886786428526920586699203448540736174823696037640963558929143223406316553089879531195856503232320698301394015419326422907940148920649604409446009534342994079905915519999056515545665372445023968161093490177748479004860953533079444674810799243101789424559560521663720267325424460837917729965557035819894991068667033720137371553274718016264831804642484165626595361733738078861580725161590543914582026221029423619052084415541019823442156426256305489978000115600622632026539354667033285470882366336454161857542329463351110435124978210094126813050165592705851462076442658636444850119357918263260544208316184352449799074155888941005892576577117809427343834211227154536469123432409922724516033707321743543068454844334975820770617482185507726657937440411362678498854809623645401805584578051813299107474916724578313729657697082977958221875158214960769335774344596501249786553452341365003256529205236932440310449114232067648319010064291491526911587940211087291057645351401024477267069749707790818953871003359493498379282115159416066834546909260934933415082879029853204877727655464244565605946907726251739072776989858195501794646297437730296407680972752961364359473899691863948172814724148266998607142916525908766069733566169306585641611721731424382305620415224141256546228099185376314531025422624810286174735839414588528470842487686195384656051018862574544065487606737699025160885833341751895771072548259203473311500928684784573842729405870743142546242394635850711161115009972887914550631388394913263672850666820691002271707044274192742012131558054565071914386619503979719946507734737854720307162331164121221806011334932598219601254822382822164400094147982996392042588212475995498347063639543961399928793784898703289365772861256461074080005930833614185488231113396764150904533729274196298804807522886106436848859290911812792478726230909067150559814296704249276809064901014363039748501414525659396742213971271321707777604055002829730904497100777616372440826565228641426377008091987193371101368348899808881365760271622942095725054635744871446462786889856600079864905854893548848279607085140156979850261694324740803009815744673595808981767922243870791330461118217908531000207007363602255594230499718636337644521543390325514514984142124935164740729354185258060980840411969611697458160953715380060207459061426019551144828540389622120671435305475522707741700599242490333034310245393391753324893341292248441629293004732920244943555561284213660852285874097408480459173791351589359358575572776152213627251576687083092850555845917047063407832430887634393978407348185260397670328134976812474850041922169935407531827222377420154870790324935862149328280963925854882568333449702124628740627668404261960524851742503665154937484520083989301910743283470407848435390270122193916239603335140115164390129644409644215741388150551348955116901419955723896359102619201422823043785012854549247661246235117537996949964457933472550437498658374900657337407371706227283195051288369798413899297324425273113221091558040130078794267177942583375839558167480131186130862155113795660887390502794981450176618786537237690477890811052783162720702260593854390063341498825648063132890067215485510553040224314410306646585261872369049916656612366256452743955553635255193532698847129877845234765815739753453511177164424103489863928949021014516722617435997442466400109653090644257754213543434619669165987148787069615190676031676006893655825327127371538939733116515616296554061288718127498877573602939809242237776867486344670727976754528225575961967333466850057907955819547363499688245825478781438899305606502654378179626242754381227997566909152700681129502486125409720632304075035860757636812376488905376926424398684890749293263565613812865658319662949977521313951682388620687499110347935905209273138085156765978458303797427510535115780125195879489014729081366519915244122572190986452087883193528965360597368285896832747175782689628311242286051168374306545049826305391478129827366579933765901223323700765470099597285418861343905628735312876015216845957351531688988098200659953194207817761385426430842760719079587029691308576467985478273289711356711236634091895913266886654373741719758668189141231577835338237226384950396304729166473926329820687124319789332027292210351619872821600359946933044916070027361270913812041521675801747154468968206743826575866159583237325967620158483638356144107192764416427963184672507723834675600950537803353237474074981064677542082346179042983973514593489577840026031472619936857445964538741929398746611484904411501314477784523044922139225021264100574723197730061735521151603897688306716248855571522011359640848692083153974610466032323583718821022406265157786584550265232872783343488182520354721214593945522340308573882030407526878989812295477625693588593218268876830256513945987195836902466989248494547239366929344141248743936655151629946009637506748497085326457582307891431815422147479225250712591791856413044035648888806737589391176332684113931544993865940590697827651313214336339713558086669609738396758604446916849000062735466948064238037261611962670504825823191723405311613871844670651899959209544375501101528168720276859307971545296173430597091102756071513409083459817000100454795068136169041240867022260694050007496289367915388965760114740009748284082157204002366512719948129580041528921518853721011305933789590580444680553938478550139737023072337301077782434407091124163679774035312677398563962899407192931633235338263110764447992781688729862875290074508534365422215175333666206729825912232551120675590195330021326794858697078188211420524389390048536221295503225998682744285233491544640288035571018855307113380030639133188422914029423052696543559786954060270430713189341047071693826872695962849438557633258521134829544233813115373371549585452570376261835728775354048667532686472223227967519075376577369674558560160428878733281665538754263568800850888477342986622954416097352761045142983105228615032144812882853588942752377845839359693730205266095721401942364214846325543687993533876194310507609437827364900514907423078138529896129907776732222242214319063013360568064315781558760478660356206325725570767291127719932788277184117573055515668304860637098833309109459396530828363611644977278041488851589229382554427621869748189053973496869305623087632448365629895577807465282671885812676498987129346724452971141921940718160067007448745211803964127680058083080816145402468277271828036807349905995881792757497164937998773515439826791967568358010466463985357366069748086894188636796300245315375225304169775755688983173968305221944245507081616810908888709329909691095567105710370262817854272559727721107851230144079807856022295017500611480423417905460277123527864792232152952789135591813901024198064242255351298980060500452571028502111084812657061004971451543578476898549380508863192607858013855615147977002817760205744141972355487136768452411855602836685037824072416420604698705760928338076244165909411024475220752180061306863962334258400885866853821903482660360047214188827555452244629305612274665540169289559428432892347763913596100207105842602753058719553149681489368190481059507708640900156660818322271759203576496470194970770704921610486720299547643919992352776489118792560092510044309642773074757924890599648820530650000566987825598979968253166618476341004153249900568518471732463469540585924846728714913571678193004354284133800058017763258148393342199354057786831241274344101069119853148565880211264165997616265332290020760664016258904109567439944013604203861763066311455916543764384378914224752037709169392956274492911447311820638200226082054799106208041023359044808530220515490166093848610890126115682566537522968924558846636769708500029196457627751063015944288910141570165603878159915943866327706466376804061118097731653390085809529563243543810202329350579005024167435232861242774066623221895708055308381503153045434175173405590932570703058471361580394685276948321076035132276381719986139731430577283401917424295303436014377748326037515434424547491404039781441327578996961600044055483719890583460184955820237931141872498022501040050189553574195814534093631714775334544224263067401280597968736979479936864768921135318517148031803277599707188448419490285900109364160272777200213532463672553979740766849149619384687024829626327180332981221603240881655226754563994390682371014755362775167387887842393662286980546726386033572397596772925219992027084774363327558027183378779404692340816502694303961083555559416056048174117456331202714948576890900395653937382397158156984008166652044011267719458642400201231631080240713695964977851455780282740874937917389742712936742893307828563266629259246671520324788927063185568331043753796849531379513832307736644455876606099342007533766666764132819384842677163064793641592306055806460964290412979222770140029618498878730311715553107623512417251688214986858237605350403019880300467624086957843012612233833347557308679927615788170045774057980976472349724296246198884791093180923724857618873082495614120665031256583366685554444855963771399333348233035393718030288781676613283339435375971224298887372322989225743207047264969992663394117104308587996073676348742409743619302806751041674114968370756304224170589604115570462201481924134591466706420616961846081305299738398977353555034235019620297117333681459140652530093993065938307714025381510307120015182531962043901728657075110586976153649745197189444371279335299085152444710948547353676533202726835676848078286239274614121550977103100747951333789156301120652745056061111455048037697442033936129432451236619285858311592864162892865108961632922480297660569689885510260080077457434940829941759174286536488100244135738513924325144823521809267684719107586999459624898836667986944694078091096901376817648496540251345988332373114703597556802164993477397477223329553887867406406920953775107552466619583084429395714721971624078026558744131432886428192262829304379139964404511068669799869946240409952179290910098505229791882585916952557915339635743205056429433766231875869361733709517079083484492827381141136827724484797199151009721980657124664091115783669743338197589994072686177732640161502422274504749913651361371030949974243284987212464151934172129109219192428544245838296368080328011035553878223836232270316844702254803824605349717538076067541622745633778828466585663994188952140183306735854392475375156198138923855360120831363085431960825996573559001528222215896116082529882417591393837801280766621344386487886723403097927966624818252665934130074709471774701475357825177448743657407178085549102909800463750074515888334196040378267434836392650147195537537955887972563884730760336948025164291091996922259875026159831192990370038218790434609639363824019197194133970998865198048352232066813734575405222682342639573264583369512609429418729712270054361460020790281440171974642153475375023685123153989004341368757644061067336005411781680038476979298428852121474577391275345145338632059672452368875577751361939760474083997965252240818002834163274881337731141820419964268261849501223798831550839041433292171109676285012272415231176585735347373924849588574963280215390044590046558096111261642308939360391396899660125516777110029961968132967682422310494235855956283413991169188382917291425726258009614684241474587774822993286985603747824815071510147162326000459075914229063804832795002447709364719133173910168371744790748217801862214406280780524801435516596179584007842383114223972672898445255908035152706894292077405628362180802307956872861777736025906898872326900328614759313940234873704183061827735668474147648356082920224683237179850554453544215954368685737624175601009219121148295013147854107760672047714537677703028554653326133701569932219345759583032560418635603002300760269793800588046627757404764458963281796793048520517787677464223359905489242082387687703302170281052728902276516987970160291436035173687455043947711768427583495765921455406342232663802252555312344872083494662786402606619490842547853916062379055186126063939411364577046827783101891970964381172361138255340281035370358847544288750075622101321788934543337384293959610310884347611210072319323470424398579928739488871609237152975563987175022375488696265888515097627429357230762419025825557178401286109324782003025732733915984578686670219061882367135143570591213330823954529432980807135691211610190287013452591225492625204315864943881074625422336099501459028708584239451621400815779290269124376036386753126998261768998009290227643653034533471346434814827785743459401782729229785595963065435729852910529615583342368924050402758078769465164611585897922230351067896905280520161420119704715750923668853280653689651288868793021313135372137760509207491114754992091493228125479164380974696945829987439420250661536841903392943309136605702501732997882011389791137283772063947427665556498318653238147191249567324464768066700789647306553364461206397179679214072219579827933384086150876242919436867393796604986226646384451077663222104718891511475300630977638750277856752903332547454082591358691302341762614652126546379151532322070976649405849624104273313864739591880580665873866795328827290705662999875212979418886487548732543198120082101073070394236547346399046760841705333775620893271414311647002480581329688562622804970209981647457861693987056296315816038173318228204083292315100678484693471477325694861407389252145072037845803981234674574957801972712716692473750780754666671811737047667668936077614678073673813964551459302432948326272288070418207832073490270415900759258261601686068288545328473081189433635651324964593081264333092790570742912271394282431728412171053430515007744560620297343595267389097018491483723402171286349893457739078688806579993426265293756279357776830101856770480061264101985744667303298808401424295196806690624035722345376181683752705552256332505624007955832612135199088817253481943394045783113899269043860230356052515478655754408354460520337446265904210643831290878784785316269352124691481142891808033464163850761408961228574573876491776008565203408158901565571264452601942453478775564413336930094916209671795537796488398066594700265354449028935918816077329074270470001518367474290865119738896148855291663974344490725741763479293801186045209019476126055636862677086668622968010783711628726023595544269930385054936232373234097119171786302601345068669151439303236897185640968087525038451380558631159746788734782189448064338729654386409047719599288568922521323519692473924885456250164446214003580278714433192956454753603406710972232475673782415234297163562124732792590303297646254058852369379718652301529701385566591172416566247136305277575806254167823178042023219651623525598119914872112699022096719109560817480069656313430476638550566457824107733055007512147955410444301374512057621094631820509549365897668542497708965333176774802762775633001805578651981753195498083952745205962932993703681709518843993134988736182604648875966622919693488671313494460205888879464246272694744800645935470625863864923380041235682023621843999432848697743152353328900567498039289808337376018562604697908508054491253401653869075568003215254289179970258134486713483998226084390111211833365096036333446662337721431845962093564609355092812709056026573376874761135060849201130229159105347982049949574681031705551490993745688142884657283355154167993862445455902434801252734226582249898343472265187911484241509331302627950512187712481783816099254311354698669786776527145076547679525330551517461920898250978137391948771032177956157025731484331648890976442160865959150295927468109706409463193686305084745220737710678008966216640255084996738601434987359043833277102453060343825277669756732481558388797921274322922831830481034668078965711180441827408780354824270685312147446948526154835139196248378342526466115434998994996888645282011324196920327265079769498365307818117227621563263494312179502209459155865708621828089392103836088422227729045273927598878534939509220056368758420607353278363690553910315775396962843783621642161955578830310126159056089927278068915230200273350665370703109596570041355011773662497858471226049476289082506847272043390261648645650102343228991747212514046052849456895459717924434431447669310900978757477773467947803371090999211258881187301252897172787232255825252094887865518860387694494298292954957034735406515946545126566328071045860922347871248820744454732016194210369493121976244239653091182403257064916009057454025878555658104269645433253312610159120787954714528593438605843810090874102694151045348344917515006900018198945938806662768096504817656181043656299324857074438092030022306095957877626595131608316187972296263380071698049993786242928989662730151348221445627092357324442677092353157475969717205936192465824327146813803405543464315269149313261912290709477599006508348820526038215275604010009786764583235709829621811787547362481387360377598457939374722065657084237789590688115864841084174493453559808750139130530037589076732545570040261593674377826432070850638274490195522883595657187087719533522971782052720853072668034933725789414686547950194909033545648446886193995493229856129814317359924537302136466116787254068066717824956752002251433920374779543539105400394830543420734427864375189761363488945734960022744866247005228069493772816063756072982603954503645078766062407282519367179492549169428256017569859675802624257627756988913312099543347201256994593707376141715711036346373358168101026904831294552541068504731001987447688837824763040311085741621536520966963286585414798654205147984492990290054658885824573686527833256147719406226015761837846201642069930641755207171400685644782298821848685781646689696901321245775348635659624752085589711467067676001401940217156065550853857019193654617737256700798326390228749831395750039129511264011720330602824989402109540401879652662947276437132664169423977816875552357869140079477007571045565982344371948976933942273430278791617398076199740292920539034975772760893736015744922175547115273659456362836062176567192180214525815169984960724450228742142172104522368884923052136889005721864676623964491775862492613344925789325113069870494684275372518832524332227637630168341278801097218876711858985028042363271463433321542600886044421416639116709878001703732589253125875027439146992097435797850928712845680903045304014770711365947067942296583913515452449998081947347129308651325203830566098361251121954712559127233637322630920292179925801731028080508215498727427685968496069207806156158835745564956376383652732834729074141497515011163918883523174950790968433638898602317875724574980698350616080666248151720497082981850951926990611662831145385701309427215340648981340461351834986975347378926763055927348407225455081894722625128737225326933199730093855237800467300978878134290277106933731110787649135960318093480927451631672364644009526208046872747846053622354598060469888259522291392246695733784415525845213959462302433229330638949106495715198292444075153886905662608118712793062986992477669381719790298948056414642989175844999890229709312589845905563835632675471889814828253995707624880113885224227943422387918810240918231721357771189966177062903244284851971312904242480459905304574646648385609610279440934646617987196879089563349059103535703715183137229318076750479137121845131509301405589673827364547010347768660747247203278669887778774937246105915075802444168875095419394021571618294979756681678995112525808743160214127842517547256774027339046804439359939913898474537960058194164791985424780492796350981687075968604506094792251551200956030820730303115871456213940036526158891906172633010386529803896317998541429426001305020172928661577668203238806395738682659957530127075042104903088098519987409952513002300714937602939442347658474519450401095554171435197419010925900374432864423405906193627794193319451695223009896192167993225491426521261908452045025933580220434343467782097880899184323732085847832589850312007105596305810394999157716828557899945397324498638808062743081612022667638744460893599791810136613395784123873578293732459440270511951007143610152451037354901289432084586835640120456058538238753299255710000720180219548288495264453123299154158041860131205998719124571411520222283968950445251004973787894631272879170958828677601408799802226601185255711826142640145726318512830610278332887046014959357795481161646421224074474717823280362198735583875148758515662735291297367185445927911060384527706287463416358891476177169384265431030821048205116380509579784543362574375848871012973594373080230420790265393955968804172600624929933999924128664567606269790254527089387599784468914503899309170580483952781855108901871425929227380068329903666448398095904072887470855485269463742384952789133782089553966870523013034601316072553352136223046820679889285662900821485494123434552138642562083716794959166541884617657871934795552417945423575336199812585402746563608182668361499193851351048111865372389954562305561814701164862524730802223575956138755624633301885256732437218182860537181965532296775326096178927675379157412097885581483500989219606111187472769101379197104160294277726241887607494977975375674450887218979091825299842547613164750809556883195832688719518804125723546839514635924189064082768700752775353454639971435766298332297612534908520110394128551403872724817060107132512552339280821066431394133719346009707883504737786983423774297541399590481108518009337969834398741159879384661567354351591892133351627571748757908614088666308220771508344758391856299714372185911274839559006524025719691650457501122472466778138682799022970078521424189237275412440713025492604947556743569248672840764674675657359775865514500871360096665759824355266043889092967623577432538609001319785574971622766574653433179401633916013558885640571308742441418336409919135623303695160723396886891888726439712345258961513651205154521666378104285316608810440501088685974362495860137141633884650455485874115810963820120913609275112286615168453039500571584702961943405265025133824772556428679877673777243058756305863718544326637874525922628557586907920126208097087434769182753002465854656129325920344765353449711673489540623277660313044563216966374064562255621276451105794653883739772659123073067250658620785806965171834865909777996316052406129593603513702579863561811285560093355978481348265772754919845246447098019434654828483428624683559014560491665095378206215951719349824053373330702154712616847493111247686719592715281671819665632484685440896972875197022303616335895224393813622301271901551793192722494334938368114506328491095554313966269890031199778793734067397481410700105354763650647259096096163486226786651041471698007440092525304154655752270209052139408247851848495856143920013362778631775140155554129577664236734689847598721554370364729255152981995884201992721583487665210156326169673272861946031588820110101031935277302007540565302079216677273681060780744841493640650421532091180432333725341340556361597014040975618383072246055658328238425459684556306608989912527352777992951241623175718338177106238036334658320739173355083869653913223322026762946096279825045358644082680700981770781981848220535322887753610732231661653937633444563978389385255706763197766192639703607652214257137223303184130921486939953453181380848520067094362752567362691145325662190263878423830857678109416931293165564189387252639668286232970840468853099900716144054975107646319448909093014361991819377241005704614537065208739397100507439372762922757341721342410057223199820555473091253458424623708272694781969938636632416438281761370479491499668380859090759988566390403036261620459971218903920084220611984140007256555950421490870063562013907143142695237729317879512477638074157498688527815780494331232284790564498911644858523610323258238957731901988611876015875891189237673985481671766770703072289668294451695751840928645664267359217619947364593490634139514079077126435589574657203234860573052470832101795331588448207096442381856076120339367385425520580390579117573576171865848163182809199134915525931761061233207326502075994036596609169238974600222432340950891047412070894042436085206238792501678133133471759180715900375716052889723278973384957562385445040119950750705759993681955028743676485978719569265476197641577963087052208253041002773466324350583830535485652334610859907831789971021100076265294109807312637987921161942378120312393189266971925387927789543024907033509458937862464918950249504326586407644900460773859764833932716659910800386096996840572201370291709897425689172514139884402033084906317420012292986027757635683496784677296943151000959240051770569101283914062550622776262690657056968219102826392682941545626889195051356334054970745468441171422119509149567646644740264086977356545512596921906972767217362990130395466019079002715672376541543935414335503327730038973212456191225662404180437075181788285190144415199213168729061266430991172807402383676581516412555338897476278029550747230130149763707431534329174619547403582976031046124427990117516745795879496997180333266697027702899296060700799591063139907212844618580620680941278559443617842806426748731721742460770696491171491322336603187032182721615932922588014711215638032469238017235774443998880966323122729350657992890590631750249787664425347781907814510855467172376557110662111314987462221480665437345428783682201998099114922456846669657209258628276459826847499788474212701049530747227186724338070227166584513731767398603073743646489920490860159859332959958177988327232665378891829522447197024866800140926815217744248745273146926130676763969803718904977863717319643391736348695452120775431007245183669477032564698908492542444270044150856370446380149578685916988138289786235908315594006951514895872471194212123970281141063511366123775877902586920679078324974348155127556300535716704198625322524385498728936300588820349878974596568725137577383628273218598743312035289805879256568995755333967770885691860958843309910033027866868165067806328358137096201946077820326007262788779142204197756660004330233815208818942876454011058702092927550483972086280975030597451024933027978427047114313058933714048462682161757135901576724683596343847966252412731135410162802356420432524777183334133932211660879462601322915374337659013696621688042735668932421343236503044278837503762911491651126145941351089963648845092051742479495150720412772686859539006351379782318677919430385300101558660753163934213043895059066498811218075040422686202037640332128415093771140626650693479964491507842860148149300356011043773919191864736116997505815614374292328485502565121934835313255242938667474267125798556697996175040914145490080479764295540286414944332148020165233491708893790519692153001997257434405664963595112103259796589500864318180186539567357214078403222319941559071686952358172267760336305860996137992158106388600675496002317432590904734130412256474434060935455178057905891343938903814521795052391461412579938498072825418784903419033171496198381835761125325022030654440289627246324993385585810440026974736229462990467258104151740802916887995847936881154983819012267039687737776773104678211893043567073977175870640142834455446814660541101427603545368074858313926686206275658542000344222611716427573810303592563904433185838549470545810304119406295757015395110880332080275103401609711649055442738023433460189697928154082840480854047091218082781147105586006801225362174402734767424883716448565719728278321372801551647396739795134109063998695480178866431610833507737374496566931573498798875645938092234392119229146264251294835892980572705667839662036672061929803116507973699355285617415936133642365995191710535822607840474041707273833307899575194155061402694075939818505483069564855148686414332699690902395748349509429046423255015263514439229021827108865034645574803582038522346943608417231367738937612020499060363763048428726164442202388226797612797944187513498657278340882448041771585226593367383729025835210402075113871949735566119387070907020604057142049892148091930144134260967636700551746997244812388357221401385627521359837631813300732571144998602878531645516134973757402715687397369329503626603394141047087458630412712349450880842534830319715682348222783227432218143932743083355434334556269011602229688862779695659936953484609920549972166457990045863464096640313813981536247852005014516441338283253308282522285115522373090686509807073602359936946917201668341723783249853590099742587215620181744320575334095359037895302618484123451223271030507695234967250247781420697245339828496878138073891873354521962125178830227902805405610683684097510107096462304958447048234107130889839732144693263793309292010875117330414639134159694540401492041959464977472767307838147742401767811645766081212033301705855109773365951963275555676285865603256911678377055339628717004314982927886875188005971738353678973312983702028388540085655945172724029059319643658905377406991583845703391645802025629225184107447216513773427284610182095496626331809752946120719727232129085339811340068757736674337398378226773682956611030757744423477333943145395826150114404893982323404151415136052869846629006822859670709730389222500807425673301291142602562546708330197952042580078287726067022424833634961809567050173633937448134316353955824347414383181072595989753633962901798436817307358747079806547735102956857396356130930305477935622517377098467033523315580027414404128257674274090131264344275451338497719909852748133426023661353768049507381449334488081919790863087314902748681665260111341027253288969074818049472653808151039907637253521347327179339002517356728738618626538345256892714356546579305189383448795499154040069572419627288765040644096778265630302406942253475927921207542667004575791417515289901617672396131174474298088368404990704876620936468816089125925194709374350092056980441825109700807400088431261473498705514708213068215392113682254674134028532386925329950065045415318951235583913480350716255680541199903608813213699581383097201398619544684799325704528148440806513148099730724312561217586353114470959490614150723531188538125509657270234699362764358260982560804533668234378215624738307341348018137471744333983793303128722690952229688934594696944296098342152759742947201124226036535338866378407555327473865018446139809626090976903696667270737739271137449652426940399640217623497427154443094795838667595127435072385617249802717714477274743200264699070506620335660055972540598788119309873603011142462093469558423584666200911321959401249903168162535189084018920187174075160729673526201392923972308634398193231522917182278676329760254310361541995180822244602526891131272865854454084155940015206424919219605559764035055095225919743800207634867411251080338323719922921760734393957065677653119617097549176248063900051325769431808415529419477551898062235910169650107093868187579303071967971423874988319939381822254617964628345970861632722422934642656828588359815982034307509564093539018940109320582458559936506647941765751801954594666297412209998052171261575396472131099886273846854091682279857709049892668516846156411699267231034838642225445363419662759779892617932807571642656385173518707155946081963653159135051956510390609919170581432888372418265531303759196705564415878195316238285001899458934879439461933510321560510205695218435889977112706029188370011466114064497911030187257630750129241042505291880780195438890408322816069292319058759867230698482171267918718664369655942492035641503380720321286898713905538551230558502621424591700301278432668751422498692105213402427761062768277740541381097366837303019998361753033419925367441895696784137088787621582873594356215081432839641625349541402382745370958960712639162942408896814993629200653501269685055426423373198527018864914371943958851043787265878185204771811189983455085135664365246725665174650566140518752423704796741488723350866967377544429935545119413269295538309437254171304565993834761052681890054470711858843337004655544654261977054024520038238198675430243006414956991246206953102314139447365996108638408473608197959501090503638769794316917177412147994423604785928349570417992752053104402734915133615539984134966689046052083082091588193359003792299033288400568586307284699086078269882524491416012870008161155349572196171948169218299805014682305569371498176659287561124561875916137666951675465439140481198163871704681116583932418698602780517983924756478535649523108221637379492714540572241414496078411128987627463970908758956905237981997939984637559037305713063412591783115513011050323376155769471244875537204829827885921432371442143395923693680956136557263412107610974008715671886316948480330908684246956174467010913492823142177732662189266610861911359260644744669409727122667292544621549624913219027777590850117699676608760845588094539313800993807231318815339380498243524572826412308070439514015579513773532212773745814196055789488221574152731841428377950894433312526152713407040041721716347414632075567848375128726368376557104460836341311660448175132528066318749585035414335300601526054852181950910280906724203818084819873312573042614480830804950065907170263680440416940442769929551183692437589560334355291479570111336278341597335148305688873765718871724219021149244880129773636971175701828502322670634359140376829160944234130395731304752001189572277105934613967787258661752915812207681048527032188932539185507157283288903571055517896053119258161347393762757258736936056966907149847007135721840865171662034348067220688194981466901792677145586867905552555489517284523956240962068642218341363767817064681141155673107918704844826524073189805473219304356809856766657184679418048919490811546994819269522301905701425561846368181872666505778759300260829985659582618625180771618137234470429200516064339864927066438317393463721034520388793687561227161758400206408700928701686155433625616332276448250249399394463534297835678899225085327883947761035775621919930230303104168022262811764841342549688440696359334792077579430398789982524640801436084499545700091891425395136783313581594884413393593570148187188184546429317987408452067044364361213871433991594555890412876577048289733267364034372326608859955708566529189805890512763567911733231428401149939633004264566735367589608423461846558316687106204103859575442595474276670429427512269585746793362980852417656988322960275388236301736527693150702253640114503623601821422872254266449832026179418579743705550310186957125194228105387800680428230645213553779583063044977484586090782176201763939167976964013382382117368016277335041712609091480518495600205619292101695342321506346469326352862891607661935820390325855588082233338629843602482994984689380659326615834140636537126786012097656973625165207023018239835905875393167449329887508662139484335039877409709831670949205434055764515958492041643044397792666791609373218268805546557233223527967546737334993182329480041372862222797029570297075002120880447825014248056267325879523928511157353133017796329628421590442136605707287038228643138532552811568933700488565915418074195677430720203397847091884515021835887216340920889180569546591935951664925627203739178781159940272801868872233826787868351020941898634215789717165062507766754638252222810138447794926642028835519071810682833089986868979774983012316212944044573934061494306889785177045445319715163246713767961119179741797772972232275851326523406664082362050405983423966951540277517181895632994346778485166482237956641340508621571135064098595289763910648010827519917920204484235496085662707078458360633936890465681095466786902583364307995521484274550268638317029157613989811543586105642299086648454854355562480885795462578145366252814867029147880622356943576053877077410374898117290639139831705254611329905363051438040987073041362274212511393888307565726912362603048503095679867072536844603094946775013368271498067986728955256937336990350778419281500242084786945305338575751750413014050463764009557315816724178210211577255374247098008490789617783330150770102010473094814411544051319582830353362475583853998386106527304451039001461726306357328865596849894409405027281638669371489691773412398081020442546625914359924682882729669545311988430689941746221983806130229010700323045367986490242923750862844900237718487687353998751901851690030056273070584176112078440387880103011603279104297134863725461608203482094368038990164651555035175321257095533644447049824563712636707131608448490299549128838529567056735452198934149368809759357134477080354960714760832202949453606553640943965209882502070546929407596700731537781565949986388211830724432904168605637728909412279548419349363469864358114536388295196463889686343026194855440930779532489785287290791477404474577573027761392244375129034740742656096495152990746194689763283821179188643010637988364853928593188794147792381626551233723036108103873368106201187256174388594318681094778894104350128274449328749122287590350855693998044231542482318478709809439180066038550468314742026020221066397286488598095738676801626737805894993849045823667836384867930685909605393241198718663470464449068931178696517464352703561565544662929001760266067735804735498001952189411645806338334872616759225943091977831294307397595983234715061005850807665558457453341525038218734464022563041931564404549238356169266854641545447787423988538972966388424029019266225256495011393584519823169928672937798588900365343764152445852124062684441064068238305903677647445495071136216551779550819320085021697291692882681819582916998286711838478991228232984231522543054593880537888288440721473902259859949899927566516087788812152334157556879808999839319263771434492449397451980494426986059452186381902536824461716620669790952330232368940768106750028228106481027924657910975510440164737767269225810500247058667896458065392361275015454092265644860092095301178621518187713764649208931362104425598603004374994659175666894239603637827674827768317038744392465676485537443546107075525124903796310356209246714445846124032550697216775246033361049921654021281805439454852310996269571280600457266600667972138019858600229487982999526102282579970899464660828728655437057323203523973271060467605034521430997629680879220898273052758343356646562320065901976857929826001493977481487997409874097479609752063817433541706911564494698237902345527118882213462919540920550730578481889251289882657762812900216927984612609476607348893729999299004310391406600900924831608533023103755096511567037444453863127168531106846877920997322949775265250520581222287930311904002761770933858082819125417717397032370898920892929845360180154558118010662523372634925078795465461737833529056905199722380345101526736687862211926176669209944788223068334248055710390922183436190606652500269857568843674436053594073990395501987770333553750512276537396186084842458188644499329825768736955018172956597940320159293043794711093998343551456341757029124502609530300809745998100967914875645906422225232745822252818337465630569688716892484228151421638684889041168012156056820008145497143803149133585184529063751361892379188735506079870626203076504169963046068386069574243192806406949884997446738443388763453815557536689152499794801127674496936305197322881950520515172007903873372192796803874364667940514703387453764761774700515907389730400908774115501164909410838594217585588630507277926407549816238345684932837641929778136060240570973359598713551394286984947869028585560652442903088248613626695365366842820174312247544931865108937995137704879473698771419174209286755693547573246347015889322555919913906429590592631739911048349857879011008029780585215342063730982594319697343113955515162085542516551551351411088090501439397932270711826934267984824890368200538222209199571002480198858396761191974938818422357928522138938824270385329687240701970532805321100470775803118662131991599014266952359807567581641346351487037763852863291172572846981459539570250224378512559455301250506683743230615700173373994116103803727900016619178344481086804619966537433194992096820688725314797667744649599680312632248461067986379965745394934729843628521299879188971452602800247979640345778647243829654309999984124686757112683466083470505333776374752416895228561321236155032430283880271287741100610021232214296148875551340893699566393308206821804128575071791620001306913892753131193715391403974708949890550673049299206097425179766778707112716580623453710144927068879184419348875441735579102885587857214758271342350758509585163591872732658743312072663329625575254139112930305941440073638819316266513356126143573672062727540382286467247462338026738343579537647643899113491051553203671535290692232468698394801882918473053406102891644656663038172712919533399134686969010891694927149557385043595747919639967421223664252003097473322593806618554263998341632330794652427572564260890494583526947135717794710228556125303415535561199789272299037251435610072205800779669546709986930434430798717055128890715352915477161917921580576897268523847959584624311100611400026367046315075290188533732432968696496657105765529599688260489715969545183030492450859477836038308174513903050907566739236517697350143660666805493224525948269317731351425943795547486740757930042519123915802840755488843109121685934421416998347001548081333733077303386640301878487473104605474680197745285750083238460417199883784940492218696069822177632435251803560344283066278197293614804906011271029203165410937362569981118126061343097375804741787685684083252067087837356063575720816236083199736683083384755119269935508955667547142423818307077190020200991555011139574153787299988616490840929971057056384801738399419214635593469448936170607187899971708848591212490948596173329344316097214164543830373726224075711207201143789723410322365688566219738738073219393935177562540518020191196305944385323374363481355607970247366968537009895132233174624392936097320061411668067716325802143212886205331150986516134520318632924538168085142216677805936055656055984247207261674311861381724208290696743023207068749029529296236408812172840044029543174236015537933162702596304960027401736236135249330792818448881222423850227337799010336292825432210862800308954649461467593398939204819305452972688694258288077461259913658456832376766329561251995201622748503679446476693370239642188957492327649089795167653620836916474687003972356377414230332826743678095158192238503967634812537921728299818601864853559257388415021921459549731873879053774268125253973909789005243773935990422425539406645142587711282478155209559458444809696923092235530640055529353280677067956564453781156728260824306936531729968480677454233781055077485232192212111371146395678492281154764261842095021864313613659176428587572467666861991536253374726782763364164763301877663123690028973390154159044792576332490531918320640904490969929567607847485327299311694842157089625990115846176762237048515544919222421080581314028393521523641688371332985476170238745853347193098809517785690789748588905927022265809478558767065100665330802349408244341245052435599441726883904757297978620692035710246017450321249557135439948183903597630583309554127603623378403403706186620219116101777565799784769835387052457483747827892959180234918497228544681110557738233157281548681776709025870714593474088123618761060429269355877379188526076724615851213714988695286980066922451691015070090149645907028227818114844628893665984520908183011986252407143214309295660445555563694769527325671119499733567498863238085624563873482735756188158445823408409028923009091589059539775566302435035656988900762330787395827499875077230261643180477137862123053994386957291975259633546255191152266286917803087672551300285418617537967959442075454746068823358774219221478219220154098300756962251909045295158672705968985695295178911242377224532177724752214151829669568758192687488829334296462943217477063878014056109343426158142108503489665101748165222005959512115262632321355041877752855877923393492319936998157927501286005297438231961260978747390555547803755958158465044012037865390986551408016525260962825653789551166423837185974429391953912877294160368474123451921208697045573433799104661556678262619290030196637897156626661169867676481003595704381693656790603653450130978422631767138708648913154850566269135276902407830837159267483908216423765848713083214427872959211374677794714764134306771981761710422471270266380847852042534629224119373288360529491031289246505600778771292771219821278127311776136140554220874274722534242333700407811578724111698716924460009118062366200904009332945675665764096095644615838386353068426349928058067030991881627992461361365730615851806857362196673349577409153186121406837378167795229337874461259541797496449050451922657518092982525325526680285003522200461965960570188250044915912912245072352170551818532442911801854977878953561366900566360101629352096904327363937377947340329288509503294480241367609098241362145919868157340288989059333680607018568128914726491248073402743186238777876739386444373707441708503503989479610083933105585384060289431265867458295425853266059914719787462821793450573006669006425694547272378268946719079636293241810711255727077858921606805545578926467780409929283645598332837144925416357649060554099383344587505749842823872995624283833714928482050113431600870847068115519673436365714602769909646789390510930359730746131078539945642660319765966303796464844689307352020411721207706357303976022506318969229438869970826613526562182496660116960161839490807659884138942936728936447292327162010389930574181591908381335223740364009165789631715282925076422521118876299205443895893953196543017678184613798682032185638122774924866565299128851224200253793930204705141996757047553595399894116774770168316969074559234781106002230502197446777918302341532740633264714482866833457182795231262174971327146069183944576484432356605034281028941688920840464215081111611987590332430500763456278576865644009736227577612972107752957171597109991617318246889129875442721757739459758487679897275084798471305256838036086821603467461882484589605875438913987614418118503387798704148570732916358268073476963280769277690504037686972768309522200763476252175989589876696263656512489095853957555181504153818737429289287735748173120560439010914817554259392032868616417340949904308615705568114381462656748487082297893510196890545025301782667918861654042896484132965609943367448975856848576405729993656068404865983772531572783548209751220950833292398259254357869471843637286557364776785475125569036379278762956745840104322926530656239251353319785662766201125026188160695385584203254583641448914894417322735626950619197054407194507452899320116343781249430426321064319560537314265065644416323910017554024715010430742712071120653269427842751858770642514947913866128333107771712175900919186704885162470260672376016428933258328302605531267385873755529233496189946336836218855562055705548532134403944090163384888826442115610200125037640809329545794283506325740916565393714502564146771919792013976052159075556375166052446205503122399376893021915021187773327549213065637701885029037457410509770706501157411080286593658199918786269045167949775371216897136014302554622294688172834727404561213502828080166023811599410664500517931029800021792009540044179723668134169620575404307130920345459366351059457632130124590686432561014347513232808679136383922578329362042899002247702915474302542059276932226355517155652484777153652902510067829099768158408988832362873817082870681561144124481223649920337635314503770798055922316940780573327048787396303193285316908928354230943799466523378304410424674250946377022693882616108413674152612248852255380458741680798003721848824526088163016000712582823868003594256505390408879467632879325779083015864763961955859484554970881415647522907851507724857834761500848560640277262992655300193294914749364235841355243388198571902778130339179911571343936205249194356216458409125947485662948873386139275224163694021382037857119058107039118070419256683892189956676521804272795394397155629320952376139425187252640605625560436251493992828768075192896704293910205789408821416168659846915169726968607125769296401101017822868880558817647241832156196367064639104622004378393441755382239957060808935570855275679613931111435106646951279056147191025952190416287579440678676565233991208336872570918506614225875219747976386766107280565375582840176485496218483996853189928034693554982818097084051452069038317546532510782498868006899938465817686324923207339631938685734890813870610666836408123602989326490045998504546545310005104322608642288404569833960639023968166549530455662525990110974303285605980054209347585979542027790165526957873815501888118253276710183600870381961384491590784797598421078392418502659514946537474544602924250151413863341578948637351177998729545045671815297304833635224118282907581622391371949873432234374729917406836501470105006912688810184426746969462985349085440165248667461559745244882957186442381694094151779800846362509180372102849017115295260218428667203054455710934847957755833334975198909002849379659705914088781780712588214532505571139363727137729208251993242909869054489297941652799357017625165930961341207508086195976468688237363374798274893815506623786458230119619784533131157824701574239310163719742896559337025872315124890078686147056699330846727518496482959555017722748592071685673822928550164851148221957075650964876046150187824573830333613395939423103583898897960006531836539644484090444845095634472992523916350010460787924518332913404070764232100200956922248279455009007910385688400244620811018016967195665516389828074063106009608190007499253639586456027736090790389793959408665689880037017484733461258498052292376254780301175829387209763983865304707714009809009078594993711805752452720966324762541382128552590594169272334352743621166167942501243922415650454680834220254197832426676236225330520185252277905637002607198463763269794859287332015323505364445660365198895938260707054261844958542676958600426246867356243523548870608483621219595475135716258648260303007180890836928714343049319937061937478303630917894119963408777204249586478707319867846077182101398026863275937609682419456100031988226763045593456924076459125080692493379600575795227229886561192733927219036589168689510761587917504856211246095928626185641066936778895591674225396723780404042599919834341371541614499735368551419902837514623344475600722649000581309796924026007626705872015725831667519727730797212956165278908787097256496206887908646145443692019645361762894456594531531515407521608289931830697984177728789018855429660138204733099945071252361330155048526452308153232796616191296382037404363271023743356368143568778097187351073824265503063388645410802570600410198638096252365872334597029928588082576236839356278870163488795497803459472817117299467966805651309945514324981878942962375344515523448521873280494213847120972747914887936562077910845245843812837344860088762159000628457351215486610788287204178567544179182471716810212072556953507477623690327640241354615776687511609069165230284528746197995318219633666427644662620252153951545416661499493932142902569898942266674010172360281996843091342968810101419059139825125596965794927852771406310111314693709163084187115512358475789802657944329376352927159368061934359044040631544736516895328477390716847540818117218132274458773924197477575612129681474456896439491539378685990994443962908843198577709553562577454212560926105707489659817216942418354721278815682038469062091784349879666304612429067935900658976631722612347821220176216633348663086136206914858553033847637981444182622858090214786539367737778927521618658636045594127081847332343457964041519700294145811916143573586446271624233111699800794566169551728637882341370145257727567886575239837856164829767023212104227133442510063042819875735412757315451471295040901754436771516770979734223345821346259073905627393383556263921336942936640663491671975008769972532764127313587704183569879526034982618448377949671226225102217288288055711847774947421659136571901857132232033735793949109998106504169078609651382179107388697358887103773491645816053155743214513894950079561951575153536947319926316808508205147959915178555825495284013260081539344575805054346854767329295335089249515991934017756168268609282436094952813206100116987008559696430231009417238948988456776527359748317665495695575516762531021400013579388327623893428941756150700284722223719922688175952990668478301370551005965745471126037457499347795756106062494587791860726154498683922828894010818554957288709730498031414014233566978853929038007309478028469085425323373038511592092416508682930495178586534058153161732728681023563168297329649744857518705974864845650034615846391515973355270935183313591138457795210752523807347094236527506855271208264862023517713995585184985582855857251350552768986802009057626743288381271799869651468346266552618084139831857807273430721148119048699496629106817911320680633776469010021824006444513343511953270849244952025966252800505855650272957960769847920498188453385930017901604740406028902848046948974592617600357671611429916710941834039121239838673652392106928814589690559040938457619634704142261079647506060488786485414612025237770637376570020802305342363043544026412686914485777508956334303242254611689048649923966619658920742938792400233633761723531666884096511274004423398701161841473509134619455320931341449164296567896638666059667777265630232096553292950076397675331227648005156405796114619319207241967817825060079513330894825409595364709417167090262452300149891245313770369448815870447739103696530350007253822544791310622195691579244899617054579087797394933783742467912859249387293512886584180804471013817636760555663676164593832668245041923093917172734378652863325939057490525494324931988768059014660563970367924007336453669996775932133401526669369633930952014012094005461972917769584379903685450780510094379748087049197926455672139610244347189473076031245499291102845356024865985384322587958661886011766208103499522748895319100949008337932612171354073595214835100496315771714027267049854358257654784843690128826592041265720710318572083260672122364167668501147107904309644364883290660860369141099429385251760624457096882992351547477234698894231695725062389051863228869580768486184056687806122605124810792413554154018403543908274236759304840637588729262309328686825215722436538742619403126671891513949919842829502120900931152697093697861369665887900279651226177875369598579484295564684057126003460565462232487426457486939409020987331715047712340848716816406086106438195613437792939597045070331018954044572318318951024551607463332254270661358512653588184510168405778862860451188399709485075011441203649489595729426943627131973853789124587862790361994585823007745630793310605508628879337511901465326796142469835520972976708044580338997799417893044466995522446317162278006898211931728586704699181345412634758739135747718152958847861725016876804292809727221797804088155062312148903902994639311310723539816686755136006702883761974692894239309589201769215845236190907348432314406891333599157359814193213569944128785010932280488192465582160296834305900981498192435247023147551790368059705087576763625165848989997781092178037768958473386418629429727127515589171062807888046374638987212151689671565822230625744821775398322666739537421998205462866311494880269556422630901531116072154925541920544020488606810584147551456632447565747164330308095633031858606989793528600962578291917527577123891510687744130279217466769778310704538041719827392809687719533136641206195117253697756436180717624229975488256874054352406328085430857162418402741940283805049816844981856514111978999445397673811416185141523781941806762811652920242751060793010857791920424640616195309768345111147930623462544303946928911475713322140790628919301191035190751749335358899958745324127285952657276482031036180775901302381491816918036572600320643915299217662234947059703188022342512092380405286750005810649042377505285010020848503660905404242368820707972898824451512072347554704600398285450532155356130713382679497050629254551070066380343672878335819628269588416382845917035157326610641969117433399508468229287892620742051819940629702119430897111484421023205210842994866722018783234367025610327507737518450344426156378428599493668293460829743076831467350687909540707253863884459038570852445253291219432888658771147254267151501532647362907148296877917374986675631934436679917903357887299557519715451013677267886767420312723776323589260835942657344897821384224914175130295498644380711046234604871006645921502670405459219800642266559085315118522687610985107116839034891224351022056380286387127439304828466910677862889038558176112218597146541546667825259456713717676061034714130512895856111206833111850386523861686131982485260096962709302798968176803034588197124024487724656361612759805413438941156804149084690854155953090444264265335878149076479947736887253796614554498570991793837712711372844794342103366740298859344758698627569060729071446694180532889831447689208708531464709847928704772209840466119080275647281656973761019768474089703763498415024641555255055475450419418028239342723093482714995279140290865805823539378058761526305229376292771384313172045192382118859359884821454045149964154589516481206850461903638702578624474317691617847315558821060154101978607854471880288354303627927392590570981120949441718357970965441679705428977928932577306820150240727869017916061712223399948351858102496859242835829714979694621088045122821643609870620820263924373986332668377762138417681409106408779700140903950567677631816977689315927049483589859154108355407079781512429558010423292482337808614895559477634728393688807534902656306554237254824088624157594932371382358007921252151605379724634462040531488548247472687558889976077376632535997891561259009753834689315503946631254952423610737462256073969014989852730478239763386625214989927047703089597627671702634783544518644630355939203186442134765069758391039937715585195331257511686104908066084112233205403555756650111107086405256666374566312033116907510751715439636874455048078370404367923691590913022354514679728443759407938553504292944036815704071791569214643013447775854362046288423291335220483283666896385850266715453319980664465040048485672418129135058965960898485164151365953730354947415607075259334823731882070366752635192061302547328719572048663743708357727013761190567939800910502504450557744344838154218072352737226151808306744843731079419906144161178565400306056450765597645841419501618395735619725464744958476805778381352727460950527960877162470203835028065766304860578967685776680100015097090696742243621448415823613469635741834806105582331473566746390614754165971434953639116501691619914188592665429595129614701720607753539903466821254870406598947053396111653843742234549979189098519384287013686662055264213588663514855719115338690471488408154649177133870219283736307767361478160327095336118948246486543596174726078625115266648844453698527522719113779049240238743797470601490110282503565739927356147303545374833459523053584164756991289056402885560444072982503134047033574039789774473413762973516645348957413979332357762384363289645115498984824114071079957470926314243929997414787367313548646000764733296657504516601893441246441639581245770151879618566992179090911189889506859799688014983809845942194221111871357390769763828231831244268484995683266847503382921723595263521487815235743564764745015471857522990420771015290983172764070612080541501962792131662643182137652927484823212124143752615122722762042260026647852019978359082912647243827645902541509409583796856841798638597681283293390295857809111100793255031988426764103391720697323739594858584321183718076122592826169255401395484856541436779236130545484453825805131418464041941568499713445753109392591651460617816317515495934297041622183528445122332710555757863032287413346710874315525934465121792337502184350762613712109349007393776063239582509773773043713772835594609913777206342535068863313512290978829927230205106186153394325896739889488574585668707317072308835043850652933890770795685105274714188866478661542566556422218354779217296019709425976408332381151834783586942221218520101101342307813855281102168964301431765241887204253557410932187425410621865102002213228843871816116537628210859953767274569194860190390088457345450191992275498223664968723868286871030515092572021464071779378711952396961693427389862203754685803331183847754568889385054559798786325681673205459468538798595764251176393660780336969800263066233990296313965357716813569663763991699324583777894082790243024656643720481236819104065045445781141206116095653528069727203413386495880341589368789038257926824311499994597499892071966504907323053967982933986921821151477329300431929407265332338664849780497977466871604853553320617749130822779359174823516336498697163479167772687295049535152761642172302742884230094421348914686333086279670981570190573862984074644030636439507407427149362924164715658304118633493398647134605844895422237291050556442810899570998229134649964462485320093973471519866294182351065070568506825933622517026017858929841917316069478319105018058082300702858569654223083553188109117395560602871622449307005788369604226778863763387011497855325732491100692998219231484741390841408357867590840460271132232943304285400947599978012155832181258128659983961392841507977123629029668295672641354767025668118061081454648343887271311615718373583123399613344507431266083731513239490732539191688510924705843500797165510557701511464809668451062094344385433805153799443303942878989637149787495625477526407844734108535416535542346441452118171193660835969100482355692945159033296030075906566424168367855238778008675073138509317009648090248355367665376878461073364825684152699732583858492503169541831579827996555625301172197773440554949437654761068099029036377003479024888905140545845139408883531122285819428716028749561695312096141672249018765931265171567051161458269234546193579407026483070377049352950836668759042192314378502814154765429776071228998996729869003513399583303560694181091395480552660696035383742162356392522663221434281458712469487674543088691226188805553621072644815863964805186682656470297562587885246051566935621929973392892748187679611031918908675681233834658764748415740358001282787356642766978977061831922594412962705766725614422634897382918568080933821080247881722114258802865309004046723543677534803028553112223435832332219639977243262775272561321466068052241759218876735614757618224970101023941414075436599781305435973479538143482709644703875231125287772131997936761525708940781046433885340110270840545790388607398071816400692232807603348097800974323774598598196620383327185732321797387979739124065722648362646176109540464771509897327652000781751479649374266880076063537660804297858236675038188024652039898168335900723191186976287452092879758125954743314613753267484983398417083373463629212496119053945261556116438396828709855255340942793244437659822418912284789926149194597995855450899045269094863994238997341305867385839309722818436820706573763806729789901197974281401619640491808991289249180360253044837843905921409200669821106939941659992168637626908322731541051469099245174600424522696154440327249090891246148779108596184154200723374740461937893838283900671310954126099154942482748236417074853437062158291536624051423334085482785506664816953419407708854822184662678099843529320842535466350545797814119131690717701698214528105677891800085167043522415435738708603683089748136433820782022753709103523805162697862908380352550386088689558068163382777748180494637861323012415098735693080553499491188608621775595507207266888627413073332795834115598240442777915897987844026233834304183996536575323195914416996478307692813266697716044292598147271147185105884633910152823054598876833779153084896911859585667110519945094431999743412789693155199530567438328472655044338875417425505256268872883850428653604756537108529550011619836224460451706955045229541959873759187010683598992329405370241976385958962315281464336714823090408009297856786820121723948730761518774284096862229665892781176305931962782279976777225395262236593092574435945477995572669132746801462742832331479822601462419333026124112121364460546199158099090318563371484486266401048452261785121518800799172252046374870483872023588411962447266240778115077534740034502319682715376956930758436393232350365226183241849584808095518899104983450626863554768367186113989361862395356687731394697676978754709347901187907526563064629688635556413791876231647330500790280221037493342739874745896583895325976380519856416546291128658655448658958441418583830032257135234130023556655068623040164305288832987725210478645394024980211457361110045690628641329412372635478559499810022584501520793004366728100580752289282688543796597884310453246775735225690522154436861266533154053097767579473150907455170490885003654792027813429569720475042455928067795600223076540334257639538390137200208595952321374298954707647044337891201361684596799053343293229982534092176247234452353645302316207004853920694849287716410323750130552764677985643236390435305669211209430730696216027013687302998212404941887902836761467541402470966821895960700649855120998709684058096853406195633160683752321241214613024704208638197321374964150916601975347126678548529295417614749090281149862447898919300015369340168154251485935004869972866434902127163379797084571841774288100109967430956634085796408908343054854500845963248673985890050920588478032375975316804746515683077330540105789288064634098122855412538671695624457157301681721988410857467942379458851822576443861884195322696230807876569705770777244318355098171658905128138174012078428756307757265747308517744143226588047699562366047439820979755410221488610131959211649702686062369966167347384876356721029949317364952810602584626934797030653814783046477136837542366766031924751290531925161779030867223261121759239098459909306829561505246263412134642271812356794244014794781883550059019680170566496145312984399993887273911858215599635240927140723220711945309525690959048084561997649066184212247002797864978794854720682909905193645419578956863287255965591987109882317866503836117065499570877382679013374595788366042821531472004452852112752539640763213259073870874823699986914259550368725688260184527425113176219053429941028445162307235266425880863028599512246298055437936837110117233471020340186906438731377179796138802580789591683457853167077150253153293510249568475291849808174192557130764413433048276548275278477339008000861311121175418411698947039331726862369425343454688322703855939823367141779056081070767580074946746108278921251209117790866016426841288280370481288843061411422672672450414725446833790283526666546451545617220253982488488257507401996284416333965286572976565425837059027447362636182411064064299246669703537980968672636428324788404822364682591681601653694962355631236167795996490823018670787747005992505908361505842675136293806581138809371420154669639554310861549727531246945081011662893321620389409467204468160728915429821759237191326480575371983780623045050643662368731559192414615135206235043459555852123553348744599598028357309109830365960569001487485629048664002224924896393621629421344812587257038894944813263042829358429046372655166253118453170624624352661680541846083626197817867188095863322950546892854128124174916059463610515254891855440559231610653287505908489841134008581045018511042562353573163738355173037100189823572030725739943029879885021564214962713817275609379312575381446612077619703960437142182584771656281824328201464898780418911780295989044844359249778333781894833972440971954915373469741174799681632700967093667717522273896738160111068466772507960068260260366908859468494277929423485462277133173807976925648087912170415691304040578491272540262043370817103093275222489919344630345007523465363189779781735159704483651125907006824875989122168563083357400191875618695965679749776735778615730213635581320831374671503885273444702947731079463184201938557647563867738850006944431656854432435931180848307403156652759672599222793919180252031588459011496021767957700853770230526793274620163362096484047045458115685753889016063608757526783082440136711861717671058739862115962664030866145784138308623039408159180161657420354060993880786342347974824776399532568597543820071436766314344241359946826888743816497446130787573545441018708154201425852782792739977906530825452874963688911180892437911322109033364583608388928695385807620255660195066293154542154857275170848871146319922548439458851954228819055802221218709044955428296437578855729395052366554950177802037479041355890455940537380140352427622745921714761088031409153830487770797422451563874733449336806619304251748202729880443427417306573569320683443210232714036595387560167611305564623895497265769109650744641159912753730757449585989532870320793741893732663956411983864651563093596182809287841388203139671599101115407982536914549288641021746475102676548473584506975213555014804273880810098141376150757852995862195576301631702447210657518634705782579743759335042716828495249115831199035321196592253829954808410711817046415235160735902686328763556254530278987366456307500806758304824570344807401433850556109537567986722571638174511979959542940375220951412581311732201416105308671218524706605880874700542629680020350321682368403030602389162228301983378109096900740111995303695101248570297378282235575511984458286125358784226813025715634874158837046028264904661251801031057513380599170442944117978913387074838850361894431452715298322610619866006581983529151356844120383430401670150783040156358462278455494894575522619163918324542746420386274425081400858841198768844714703235502835977474490806261779447834143532104103035284581207976821479171186644902866630296807316831853387678752656253122839071472440993044059358594773426904698044264592023022783352144234635909063389052135439603294484298547671557335958933497072002770012391916427819517159569196105251688259899480158758699245271001602484134850958962556236137619083459604773319471532909031756656169254478738997398730623652889404232451425449065727957065177963297540091056141774790606599214179301912085734044850041804757309487842009280256871360368189574429115028976102264623254130198274205684022892807406381517240254955743766613398501719608691720940708781327172681928861597539640581824843057095751731919377465931008602250781559807417766733630541162030761899624424039012732833673367196138570199048819607098037861955414480240250312427318850371642459037287715813409181482813670685088118075229537141582641026729306708133927873684032211045385629295083657863107251152359762702033856437781834004643226825217305027742456984612487651189380831813579019056827850169858576422974267958219870998088872227597648725848019754491164666246198333853804913972226944870309893338925545966040832576553707098227325057232906641687529466527033967274401536937072756801940611237516822791543416655824353875101941773404720267313781457448013049862104907110892621067890668918523394962298955685988386822266922239122718755865262580762766565224253021550766329175955813120619659971134959247527878630221966850124329186379656925322540294081008434590966567703221011513169086190202370366904055263180115579067675470212164592988221740415674077930981522145027352567970134433775558328922637073332802348560385686878007512462501885730382171216251939497700781852803238871114194595589556414069832203644956219431640763510474081300116213477232963341989865847980128742114943101190486092864827598830750951555955907190781234864831128736318684753943064200956765344184330714523084017132124694895012360213755688530143529482765733788727623744101270583699818910813422643229247883039242321603889944897276910215604044458039817409342696475729131325498780053103109143069037003299052170279020382938696123357621512733959011890438949983995246970670564680113304144560438285460874447398012815466114067908637462766471832710145966839287052810493553874474039095956895294251233967798592327788424529140976483323327178107698336809567405998679889368698961876011118054589075896412797610368330118609093122854872236812829232912850604901143760836157768499267923084324502488687375028362624459438364619830848797986063906405903631394552110330174163531241617694080115292188590640116025024866788824257423020513511079816416604306709693389626922640095658227730050486156121025354967295290882541417864871022253337454548793943752776244381255983577786079940317185304153702850344160389524141692215668611357198392366695718227582650358394011480408391846308118514008777841855162395635393723143225318577790920359891685293704035211101745558926384693590325944383719159961740365837854906919987189599176628686460986278505655207257229926891171019072151737854618253792045291268143547046883594458835076208939241038204167745071709744733841412870798247866621663419759229475558197143091638739880455204475035328681078050623881540910874428896974754621720923412630474210951269178736772112069399279333383388637050115766114740654534567222735504777752444394265526731225360660822682632188839056016340138775350737690954885331362972349821976735389699043142122819717347319890696645957946359162236546709521098674509247762044369894522186945055842535216146817152287754707463969306575497853501096783217215093980648535808294642981117539315070114788157483822075103319912654143660531826158302611285819530924002067926242656805956240298297186781646299185373728171775018148180605509549759772775101212471309374782125974818135865138779242449558024110554931188947372713801544173638346677607190302847489732438876862740889864012696460962670121889976412834932136417483900475606738657979451310911627355078937660094877448826034753938197840172695983263716605590447755796384933032014649355725067171936196061006173393326758541115625161429181017126928111796967843817087989582690164307641242119243941563644637472889694935688241342668714486799938901117881343666933715646332518173176399538092933316851629149319171362811491757519281839220974424704277250171032988230977738080062019127321359918204221076717150577088592873930900611549529601453037248723441447517342134219404098421756753702580309434434567291057605179457370030518887969221694984109727030986264409692473711026933290129756789851477638211722939669776184687301282315191678660553751232894979341796740437640134683373763562502082493728992909417327629732341049052911641094127832182477538667824785240025752207784701417753917035126094245138418075762375528515363921696741484371851737796946084763493850427733918810727174421996039172940936236581746259240673656998445330902870642446170677429610358741515449297049233893970622279424891412683929816526155900552630921275878808942633934567533536632730463390276732263184926400656865247955874468980211743570279560997583063857282358493817766040264408193744404483678912982635682195996021264626670493801002978686727624731368638258964353286331797673480658338922421584336129668136795280094546098414701458647165627697220237135440973883843827480544519742915299494463735262610958402018661479564017779283846683480973954303801251995424157620964622511001277124804914370573329945582565757828806707809317314995473196932896553220251521340777112898143279410955419063491986498385049347276878970842773833209745755529735764310012510096901099398783232712136712319358244748979473152468632624926181055640435037717026639181006321709058632239319513944520553956269144499113885631002822318925563863726628253646718291716952231341548975360501919302413691140773040910615926533536023301582796729792707629499829377483062682743742893764740581464567305168746070055861175398825080037079107624199997810437718480571048229845283240266435033574933249789607864517786956796800899422361031632332277600899753942849773205852613299102170776855522786132612241118849361933707478040826745870707555095250409107953410801858522183109561173908461645817023884567404237120626110935919999389197606188035568899079605660833106941754317259408831784445430720283717315028846663530344282030351908762533686378166202786571636856370318089310220428565717715985767340679088970221401002468435240434437638252330374935950006912563344558683114318608163126981812529682183551831302639010417998772843134481525165503995191064240926667862815276740162465997745597861208804442234653399752647441003998147984402244584543127821351834816952274634981905023441797001348689724453519120005694386326848335910099594180375619947262725596471367367622229111511444933172855341996568013442764239405721869487740107095530576961152952848157710959391503976866288589106405096882709287082975739163948080681271726470754541196768448090656558871846778627438175441483314161062925319435956856337056237053869621956485927967100907164809292261907172877700576875671292176638539251107992698896010703042468662458547310688672120873325557190695560057046389378106863270469512773881641654075001254470442210120108122549307114122227820180113402085337414690353897068895834196346725628743862998120233586344105867713194948409751783127645744915529181924688471600790567404389315788181511534179466451962868772128698996650341198387869546447202577834497246684315648555990859542283803636871583825557047554616255339624433365014403420346676069718239069236616002936108315946593141242962936058079674689684342668796847944843572508706120431000853132211588275738902207831909806705831198199117433971546571958267191317141844697785864782185425030290970589509389122254039447867473639890274648891771404131072127337349186300031468523212417948352319976627693956210727732490798414286337889967970549107578431853536553001616643737496051020017630853472610290079640893496607198239626880530907001360383930251286229344771171203552826937459220543498759149244381822639305135060219211921500676557780475679967559115006475190359490250130613101838859867937791545705462695644449997918985531450761293039993599832685882447071071425268276058307927718873980100959422009404021723360289704190281746921134996848094360295395402911555677007968863396058555687063137196796723612754347226056089716498324933933284090461452113759489874665339324539847513210539705191837053163305695885861158695382081566847064555493943538392746108815302290013738802174750098913899376855804624790585368691687733922547400729559560066598031253500282227601124915755956176799035249962266016358640776003303810156895749302513695833078974815232066109528686877952928835758195155956110437355566443565006335770854729152292646134629252275232593257489416330109677641897982328532254750050648166061631915131320448377025097069559640305921008299210890535600191432214739993914621961528768078208575540551171149800120598666731927634923869481758685265429509855977562418322497828838240179683185354513765879807747657554924183703644643433295267482175769250438254012788862701704198060828023168248877950289122137476757196530061426687328508020543659145479583494389778534467701136822232781977596796255076014050738114055814696733203856631266686661061871683069201167996562222236290315270737840371737487963507302054662886004704023052243141398194654473065963699165963743071049107341722734954553059801974670429801315709850825329809980188433682104856163569966996258970210688517038999011553249932321218078960761403352063161380686649855981321766640870179932200957811320468426434554539646892535045555618934793574453658389442601410804137866536973741600006771897224641315985809048945364452226897862409583350494532429763993288621800545367641625127353668934969462048967611706712741875708645331870086011993141154454861437885071856552782985558777666728071279896890371481683248217007104361111544402358615650795720949744505616754569230893953008637818158322792976045867661655911464064192035804328440441294032425297264418184990976718319930007697525364574201957293330547964971141783715323736313910708331546599729410539268799370056266604044095562648449858943490276276873666861288831028446490742297948458813875372782543148226528129502536123766855711534051097403237814568058476723233591029710149449169561879960576856505020234719569985251503442422707791701832986658293783457593236912702540896563927706101222872430006829010827520175984494867942326376127157392788979133767842522582833474411478022025146152735187745382522988219024935513437826472500531158765192935417043525229426756991854848503732034864720545260139213829778689233710167483158986171611212641203071496857313143127002493711379426093073981523530951182333471249939363446934229447277872017195999506899715278553045174327282975079901082822636174341806391751916316192103328474046069627157556343889229217084258478803268839737113486933193740490742611850142674508584091035542122935602914277264387971783847703756686872860873682111408666785336446112700779036372060435003338134424222394266495270351244883096837575814752629326037609706826317265710162344773532832328151013166310770490692432469671330382779178769564457019226838118761132632154740220778717779550324906790905667630870679207850096159021347716899266446923006860553893204770153840321710344222163439218226997349168452527735926808535897216326994677921826813430945557681380216586275709175279229007527777979419970829739384660720594916755339709663601804215368634025992547874300036280471832125692125654501955641623241385451596301247667500713213092083762786656431017289462735967191668702960453820262096765644022702517249296677086767971594568750218029103218925697911582231987765009346028662423973852123526198067198497670201375811837787051352715005712647137398965058203316459197207557491230157546877836919209694257999966681314131692942487854598179330337869823870135065809692263443448788409959915789810978121940219811640362360543266838358983390697217869979546164419696248753473600754767799129748986532058652775404592737383297620347354287286049475991922468707698092513703320237529297976021460022589316092903970038945669092734702290719629613614039942246130429155501392103907682908025280400009382693731311624115901135440089222366431907579375316461043282170604871501190707323440575134943500528927924038400187045996722662421238802430435255567773492995321896504759965400382166337241842067954016725359059038125775872804450875591707338663158046806569967838937274231646361149498084112746995356997086106410805766869982334249212014232238706424584905194095381863803529761905244341120045534578415206780512662687251060002348780012848899210709801779094883614741525993913369356095172281027232889889668545802054554147829190260716200523091841486305659018004928163829385352125693278937721023958374137705743653080424269392108997486918937520933094665701211957385170578722332549049839513251101776467813844149306712913975859401340057906061090435165372299896983222169837320761526485334431783814909034052120128445313305073995421701494888481913097067890691164029475828601053037352097552338088779144450504105707765518719762423126685626793449991743907982800114333673348117471614783494695030366162213702095875125845580542474811749258013972569660154475400988741225105913146308626281581320311322313316415566504113536934292023447191821863644217143731845748532268637542117974752501081091955564038339329970948929393624355083448709015699384282692732544523297420508170616056792877456978675701365252734448795624034550563398963159261392285453786969138171476437949442489663460040721791729429792146965419606453557810860284108273508231062306878854399958205599512230298073543895567975207999289535783287943675010942917940900621172676202807782037567190510840919820704761321868739965038630162149204022136070546757837348066300434813889173285374543184789716073542440817433858566162629606838445396799661562650965474435032952108593656228737234611221430776771307582175168738804418841640555946396676013737028997936609437277777936343525901182516286406246451309648754517285916313842922554671825554344549412971769215490929350723644020512339855981501159855756157747469013660411034190177816209430227285508364641096668411684270313771340823174466803529890518991761362716796671683592121635963190596889707420438668916203328119692718371540678858356375652936368903211501819948799248958959591414775037037593266129006018542453429307546270835523960052317383116837453760745649074357960205029822105140392194425794811511685526614612540350043035530493711478445292859728284770718374003955974667986201651814769261254745854751308251893061723344157357825082829083926100176897660202287246711347627179654892878027203959942939837202838721211025130027824957248018861847902598051651894463558292077005724226017872020209379750844189876054781709574887194599022638141249775479532763367056816211908003798921310690314089981592764294561837113761963852252870893362960666690557815384251593515678358812873001955361889200583656401671332282785293302631366135423308475735597970513829624655232562404590145865223307455866863458712845079202461581173077612854555459118203338970412728186833820171527474598898503128673477234138002151704983789689114656989353375602789554499420564276065510241101719322788366681662268829419403725275246965423495481676724031268581196381729341236484019144957578100485855644529470644553824806788234701038849762310772165289405544407082607507028011793028684316021322967232375880664703997486646607445153367324857009668209447246792813578555242023220071380064878550633583010902769276094470020663008415214290498588410591828403753314025174768829555379399496170802215913366022907945067160965677585053285703711791232807831256546472388110213160662924388098663610964541808066221092057780685733286826267125784773499476153552498912848036243596815627927995526943666636825149689936306553730539590612117062148669039874415834727723562338170165630845009158137902300606923157248287852947277641112082888523812211118302466503427351821375445832347699136866506275061158291835641619947368406268635531418039584200555015823958363759277548731748804631787211285218205876278341185197964488203203170972309850440557929359383385284104497288689191503044421835327897091290110313589799821846885315817333652791455851255899437388015516089514847929019654604545457129494817685632617623210145402618261805087606144087025893244804301258583391801732440368086212366454570776655184637669378630309936504605650841517575424331670767659560176625978690389107189119438323648892819393486444650615189993329153589826935850170866903728963424850358416249236999411201434509216743334105710865745260304079427720638081096647417961311928608984314753877397331355775964251836392015568387370150180761824501814895045000118992996801577235428827492643430927775536458938824089250057783186371739021517534233385528486355843461759405549089475764252070601184566097682510123939368580766151381115013777190065138085873071065576035665600977104305304843260596642586134345884246829331711053703043869901229793562483061114967102534535679960955462627772307972900438853787307223205007292915626951584993937225062274979928965910015257832807898336420223435043164718093924039745675555093073863886574789132432914176313200998159157859098546101613727641409027644124238640648796116525678254505151944350874808949818136082595685129427734852083625973431842867917999253546437177933109647239908734115098051158126755949930252009746774612399479618352823386448209213893717433601888226083275255235060975748262484362584451919818565212730027650758210496933970475693128255436553460503300525828519618982519676567980306586458022095779425001344713499579640433365807082565408548331674115215465436748241483125985606664290388818652639943273104971118286513250757764455540315517260278279070882384703249147701558773472696579524844890055773702482403356712884027777968806622025432222026304816920364301472027644612532582041849228781023290108315389639025638268061724003934368173462982757536172756581717156076628948807965402089292372557644335436240002229207936300052204382163421034238296969278642068156369463866739464492324704506616218825131850419611499818492044349038968941977031637423422398459577015865924351056634424808597640865929436624154503113464582063258381875644538091321264323898457466917960739175026427857981472557470406033837120582368522339165603852667263553719176195527974056679502138528821105777260961224685957005467165300563732397541976893968461492270460699838910093662090217941751024646314470798991369880000587305570078692883369372201370628490333019629747821379194409891198265567951153006127215833302573557671529747520883631318079782914583240732284274004111987015346834413940649539195228257286484752140741538056894135058574838252140785495371450124533022193007302454657185409720563810816089711756081107320484878897669447615030208924587233555458684638318724149083571554658044531756981648830834952348728712229949391237622173397037030918459804414008671800675568796858183127244994419206865931634788605234372501706956219671688153286658630042504901439766177272225713324082805468618461518987114228051600160342740643224904434623073861017194114095881661131017543607543029868029808679705737577085634912239938984385531963745500148441575818606064984024743768056937085306908515930384754490803958418440845781432845517887987600682367933412144555479209418768003848774336331460931292891614928490512713471361506810210577089546515456093490096531628369316514481493395596229546639257788368701905044589479310173374958824848284065184282640772633636410896932602074521788529194170072202429054619927007592244425275804560525828070443019206060234703742938502851856225381253936236516032105756627810790183255671276163516290762497945025756635151178337236501669261081943389826917917428393245438884891707493250566548219370265216832928624761489725805449669438140772090822686695661956508208733573136227092449217187837270935811979826666276103975003936845202289696364053857118871102841522302401530724032447704267106655665616392643460464396122306605755368147512229325230425474487015301169658456904310350550215184390522594290776320213730802743738268631408326429123826171030851468009047099349292429081127337759486809225352546799037930442662384900414099060100303537184632208863710804086579187058499213206440599741383739755994398978508143007110534445659089208294964214145126364193699623756195656602956015126399143585563295018699232228251927870092458337947563202473656212863722348262369652594775579336557456749394184578093507557858639171524394455521210093760041879036604629120357316535566273018606791414066180630442831565123163074092888742259102301101766686947519653022181919149747554777181050208487929492113718001409189585604589391362599270591739016402295820698039447728124647688620532811857788929415849365127794406758451604026543892665323590584459032181506574039908211541412735314507258379299432813734871974507570277967560208228735152998861868029397518439001757721231801649409490729634561047223414866535538456832692836060212618489077744212561177365436615563349294581093255183711649162139775769651961825424431808797067734445440140360459683637878296920218498737919196204093940177628618262060017436150400512477277171031235533627742098272332162263328423432978197601125904022176947630487666465438718369309191485092274311690547913140222566046657660589860049736600733599768028891317290852907203847608189996270325913255413354585079291789178820414321331320581322909334680689216954607899112381840591827541888076887403953423374103889876196301764445668721872716382769646563621806932772822671867754146885448873439801721367750421510291072581751186260005255111996339271248547017699617152388658382645259094247623689519806776527687041738955261589060322321995127247574983846678899094599924293627470371639887906044050362061708561669957734867772284845006052649588568974292330340665085058286998348722957014283285324839594975345162661038455197070999847688009134700982956770706738080213997683017637061043964506992719424785052063144598324360133938970881229304627825792406944515871586478406297063680609826991412991530010641979224789471560962828903276693509058663696748247310585392450907663434028414907905417088716805187955598830659222589552035852030256592320611174050121824585968803800628156151497730263824754856770686924086456410295056871099251184925297887868953455841177434615440778580821517749406121160107838513510712763755270875946139516735222965597130936999538232467548201921449845533732557599128558004641563072793381299434381975770595865549161932650116967731368314309045259013252049870772443349413131310304262570859166093230217591045641429664535235036657431539794497672186834280055920067962197559078455778666466054374824868759881948503497905114153564468801065883575481567514746647697303354690726629650709557477333063255255306349383123049969064545454559993693063310392182349531671544854011892300960847346974247714392792867132703983805704538930977458976821123604127185823562389441752422338035621344131525194075593892974677331297449035323855409303735068620448071809301872516995844956303669486398407006214765994947156985990149120646300553019064576653588094491690211115950305957840730433012901399370598017035002651904466858527681060666361840295265194431873098693604232753001555640261863105060716286348503032002189329684335628724447038606497959969987220591443551709480754517617056117658099028683083765473296464297974881492725631835779830618426884606288493862241452691599020024612149857815632664605549985724906750254874067975971808762391201545631610485946784927235657477655053070339218197653062819333272337042314556860279938432764386155322903713180103383287847965843096102593032110420037073881973663223948047203316693778297923975378741701080141619058427441948566621503977485779762959166573681742647907071022308783547105985435510650063537002215070731311903753954725171240814127778141870900984429729079545674344007197208681396130945041708390799730817689300567065899323370220309287564416848547520467738870222684654551023151217305656764143017005550779918934041957097934934163641670741106326800004346111562411855962181097542521369396460614720500068786418793260339406944015200077922789322150093304102506171263704204678160617511707194411869068611507704179835420867806058131672045817238572750228610547266038561550498865319703315780908599418714849825944691317776167627935565608576766393148319249072829211030030672607134319360479050037493748009535813521635759137350401363472518376173942914540170825072740860532841434629117669746282443120989464596865582918936202713170313216267103472632843341381774403193171337151792840945721683619845601081211925807360754104199948406892008899920249990304393378041283689518241562281288188746324272505116230175067043983866906101084192261951696994580278116602939043035219846527944460983067145823640414907664285943551609940457620984198006614364792209920064146179193090113682866443182079621438401991526529222421289316046681046683777719925708163441086273302464602383189836636459464913346629888611791132296386342195610895182238145121094605338109562157161510639442009130652708483443320491276911097126978369257114005256998425587725921248360080369247501705012517771492649352970186310330449800260134505315117573928762163681623794551139421160837617272286622933029321236084798406469168266568057896350908053828337830420167332208401597043956516242831977067224936757445429615348972162854981119713460697803646670924806158254675713231875348146236102021861399249840023169072009084628848777952158438441664712749289264902161517508478772909136291726074729082349897603906865541984504652725409978515298216982242955921900606301441918381832291635716096559228242464940571356644240029475294837941441598480008692057293481701760538853876780225406420463355927278791946330311967071750342256429651819902682292512868865859696234089954719735036665819705543012525427698832655284308966466967631161036403083529798432255298280316635139379904297090880125003199120746220193725677451079919639708686661855598695151853070099874851651253585653841417796841947135791832513024960596672514607727855443215086596772805312402249203006874740632480409494575841981319448027752438656517295070785036669084374012068741961297887714546847297952909293456312629511498409033694202584283921086625066676089772726029050827693970212377423029641668743286480253435748707632960157734025404712625272761693041704300632818338361207749266052072381286914278536471453930841613526174300126861327222670099021118661675571488503626811674281740731886504286883684346442545542680033350833448667071216258792551407684202487540746381356992174075660352868197107791106987037116684263959483653394429449764204822482569415235611114245966135125880989463449207847889285889925446839490137339506140522277124101854418540569435645661290672679393184057954406297347946493442972415672966123974626171805631918057791701052203361691838866300030037622227167466340416669568941778814249366969206645985160979940445111547621081613108065048400715318080205978863263529515075599772105499471235300669730281274797253592453543880934964027474257316892156927142729158787061175503239858163069065696775729816558650520254207960500344681754893427777982163860445862958852253719723373850740772386986456181071126761843792146837985673083160812233869653764736279336097341643896137969257198421126966634207872272678100363575729034850177605226976370235342297616971451960247793232126290423297850160858759623686325200144908703921951226871211932500140055853906613940240758798372744376730382263993735682614226266911340795399411070427472254999832968126916609848547146971392600125255219553368217153309360831352245199764712308200573937502163768027646097130932831013310125034607120772271732519064481788537281707436634640029139012421697884586051143772411753519339488182338167122921226681648538146971631715748897759959733175387697342803909047310170135070558666820336837872310219317614893502697358001788812410229271617779457083926965324270755803511339159037688449348109953008867341649701606805786971544371996657959878172696962888339464247441364727852218197049817604312289571782784926950243253879203947878891036206165692469510811252251029073270443021217994917965286272762090101155745829067844748629579904124243784164886776415954182353871925186301127241980078314915247518344802544167515924374451324839620156485037886151210331067463497679782467285209065913723693944769050292227683228913708863127182493302760297803366495480593749639878646121265513614257717442293643190736993155698314580053784668611272213351869012601818221873447488331454782979440100228205511233560688610021900089135686702222671842585789915308586081313257387927657730334080940105032599443006550785234268699062856891743204674692368852746301986015497155994998427930531429751893102470610007892704838069563335044255672395841787812098590189692598029992879887556962429663186667963805154838938977938913546224335262054227711055183106370419602318892564907271851239060458681710546241264097309109110974312963596900179901481275422914393866780982916051683070037155102489783107581445061443777911958283250049531118555054887207931662935496763708965190506203409581488717255564449797965870874773895165899614393260684268021253570666518882598238266940060007394012207753145321696351238513281421232409892783887071254713787932434787072408808554289461486879593199108643153441770075923298343663202358211648796509009060384469745301798683279121703827322325384546278359581940545888697943862157185681987392092379881668294194896100002245692644630970975681690305238139625109778978154209583879593653665087697768283795005503943559151248084416335226351921629407184318916987412885109050584837997328111635825180894369688508892950951563202956885648901569786469042161276210368235665641144517635705646608620670797410341989006334882772109873190725035854022840283302325509850008945443498045887545553699015646153032393797160980506664427974531571465072265114944590167151379352740955098965801064434723644616356017874323782645980649638213282188522950118626189724642667937409942083824166869772776389941063107054358990800983656503860540554084775567474757294969699167677123379100075480450398177065010755909446821905349937589706189460860954481618282039459283320126633096159178508024359325831661101679269238249812022395415256561122556125348986126396396764723789782366208009096420967452151607124561961257857568707073883196734414094333151806106900517920245396161102324855408400612814959115886443207802844907826693882363961367522375446475252754451961833441726443020441980985372184772333542420584169972294241926874045934820351144371811453355821146406891198638335697451076028007936513548238943180835337670172497136548870228891670982621455644652355782243592821184902042443331882808063604985916371785029536563370649519329493315964311911441224136980546563550826580848413762637356374635490849176386944975457972803917671203606523593536689190049891734498144686919404777790608299724004050030360531651182539910620037847270241429692482571055049451378849081694741107970706835823026197424033190573975049268392307356062077969010872042556159825546526549021708772078760113620605671693648766664686491748428230999312564210747811700298546217037879232901327644443470237522224360686181898269419344966381631072670447345034466282629368933140684062067219461356895204249693820278090582543455542540613672467538050655815253921913423576636489417311250735725573066284697173846361646799490907579874549240452286392171863450963011504219575746709853845405476150276868798652399276885833358378041974772716186865811600068075604771579726418046401736507880929794404637388727476606409829103766172958651732370865310360392350109761862349013040010794159431393043645585761876908486772426173256292428962855648846568792199188982431892363294547609909264026924643893519511092724668566549569027815532214932104432184386847132910948885977802839826436484347569610415870991920188240148766084884688181184522985308895185763412396238167506471107241440984226088797972299808460898429222580389073300736393701948566832560312950099502337606930089309108425172146903019719980580598325358829227197994274717898907517795234343218368934498138060697983189105351427340501168296753500405778373543370257387138589360560807683403533049638937121331730059697502876205106998160762607207050801526935929638926181789572484743257732920043936327283425270472967858078571954112268916210546452065812224716015047869434324637852216009230007115980881176197407989908220775956989519355693902451100759751469927809051593542330565336393370788746006243973806609929926521199861702194679597669900655435977045613814502937352281358655369994236679012739232106920816011905235885899119448880609382774325127122744140303710117894387556375327112284130600828280165850188049694786652038716628772906171954663323219158073101828312137497658466103042779654560273281657391962318339896090687932646168091756008809609706396314026964417438648295144964074356466723659368995772099648808821144631093828287227341716083535167530837469740955350087572746744305813239603103628749202863852367440522517012342942528369476181750436142659746810108322360045594861378033716800844884395275280393472149820043762929241495535302224135899755887135784346141472552567155985875119629625507760785041124098003065572612634368547035641836724689269623358252802155833406314964374838231403856574604827909443076751577091743389846837416529065667020573205835405769937039225949818766959165421236402267998221928545029408563818036906679992624338334684032341104314983908236538782058020697854422137328837164152861277769448486002075036830140412758199518018254903234025357761446496418665387893072501384802058528658395240302602084698432533384353864451761875223857343507875600186580427664801405962932096870304359395272306276465754207104584777560068329251155135657357183503182490307047335296070944019362300778343880493949748977630698881829904921400751422034432123872306202673154640216309942399550148561942311252403060542126295757216636253446364573570490148651920572612301959418644690623299052648553066426895877870975030725004305082613563676783112196326264443704031531184220170945207534267432646657000607622860406910357534479680533629309449646892681390410723890938133025553712956150832528635678762885899485842131013167439284724133813671323040803859430238566297355588697460544834964964851059320638826249406229425901646426297298567909870422637018917110347606518772184856801629774913384864625574025590683036922357834641391706702335286552810994542514131790910997972663264645715011960510971284611574158089020927240701392045217439619232229777372265027462785681699154328511678460881875016974547274222180587576520171263233735466610891710475821927156683581757153186171268083163117385474612363296566615971690517713321249756665463516224535087588599696628355407161851330355173858708757047786372690021623629718896135059884014339420861172906906795830458567445972896885864932138641177700267227084996228621061936241029969962952335334214738793208240727533047035721669051914591053529870077329467251666477164462379552298795613014710725312438266664314225836392358468494821055721124475642733749617382924166783993181834243124305847527385093356599221619707476376961821924673203594024365935288605598533581913229448242899450089198892235033145136583490774404333526760759277376444151714306844213392352524527948873028852694334795541727128751819143600906215217502026156194447175079675425259684743753046326656700680752761062110833157571505523140326215389861885021930315600572183820876470561644287920504186406268929026809592962408178345102390458481539572842549326569701900036263601306766381624485093183487428856727147666859783223248045084497293064288478455838948024045524409541976412936498605918614660582759365711017592596645146940525789748592396715746984290428458466614534653482993253802843108802606208989631714746352895831731255874634694922827780270330395379745263828438039793150519975134125855145391366231456177844349849549240070951861863838330998709185648088885996597830526885417124944232924893109775116235839930675976399614229797249186086757426163560561083952617874152097675560669417000327868778506648841551850889485479606872734396639578990871159655393122580703030921732318949500452521306456149689456342358968485546904296968300653996005753052031765927204913392691485344711467527744276061078305149361103122838395569122012746075585072080768683701859291768713510382435648411364940563105522671676537640291276118857677470341977236489052959252513492341202889184996422580546183544601009406094527327479585542916031539228801670654192177328989832533564894503578713377001612789587525701479090030588696191302891229706369234386672354879958597915113159140272682300280972735025182775545615742003438681521909143226309608183095816800463221614590763795503632170285723458742871594365660314074042979385525609921918292203853469696997487792751637999463589042435236123094312780329148325846421426366894021547389375084971501557808626485253485095811181605744395989169359925038008733386766828571689801689701211625021274197129237925804710603477795626009731146262222065888463833310545360012157073579078233275792714678191495987960950133832019019840937588243791470267133478530949892474005164567086995079152481683572418286057445622562996953537151835709871595677019281232920923369069376718450056912627333611600823161735316460739381876135579186218555076196558973288748097327889113917788235515549741781018820080109736904404404866416736148817902252313919384792628439553778958441623676295940009341281667474923716091494277707598826835526538782431439794561197448437959443238136505102257366451934216225004293056396037988241442999360649422860799146002596511787993000954113252250577611327330119485081038981915067243292740207006950351725183266091082232490951009842510204471467129379560138248608070197830360525983327818994011628907583124588050938435582603744706469022600740483713944943106944416956420321725935467084978794571675489413194879048644634214577132748425823657045015867783615665989192048016472608166419650169024780282213864989060838306053568440253932483648971586625325170722640690231947432855778032244419925533345138902652676339408795732996595377619124954477056297051982047289773073431235276599854044655440129420002581882464918315482412356838245392739969455186920966353646240469973649669749458197623072181276979447691729271568212694809643587498000339190897449684364829813878487090269562448114363264016134515430476843164778300611980101497887719547914206727629314867311995644088515850670074350588589316814437972813207993952058126789893781578903030308732723217734584234314842167634363637009013130559228973507616059993235825150204951667806765219987213097200828118107701570164420868673351460140525709348281318140315153801335736008309371741402689382634336582993465171334516900630643685374315535928400337638990938152238246199679315918657054257067586536113922498898071423852800894138506822492401027828482818872724137888909932576687358854871697903911209140347988906311191824992989738358278243990766175856717212517060658153273036608667944635626862339588752333631955706448034720864986832798726892275675946402253899319689646464433708482908994881589451529500562778301203404988359060339053551964043047632862712961429952307987833795871909841496141024425311503421574771413790802257821165985944878459471087948020639882194909105981680468235847183247013156293623743055199397447947786689787803365955754438161993901177715211848776217572664269595023594012159469731945199279783513857382944239871972055885613235912407838587665541236014940378986902826049824626325046230927452647801515191279906757771149640076494559759955693530687769376644139494013451505368444883811386892105359975543308686593438792956003314819389758623503090657716951419246541919225581966098965652298405890271717830486203326318586274544110332509526419175497270568462927979864388885384758447329563905321890653791795701624809452197781680427858122990359324212735144467791524053417028560869194702194995201686684848515388374039590425459755861609609293112183251957932108950963846086641036122964823853271213572312104849527636773381985130602636812015075101891372855278910387541705217664580285124258934307939283968872779885581215141794078133780486352305137024243189734950907670700242757565717667049270574291768208572586771817771947671339040940462421649019747787622669420695370000566065154973769853212526317620182508635709493952325261000565173139422971550433753742607278445535326572946279758004464625804023658269600932175707255959920306077916184303002280573269962816832517129054740305788509266446953110974424728715501569255516476516500345732706011469531427829610622543689548638833253242727405834515003955214484847305257308645647298484144011763700443535376879114611118944460399611662720201178273922240135826868195637937726458849475690959506549669091523487330103437078566239318177984962074040702042892588345020254486242336814908590147157006450417236093338393433570381327322253472011834892788159152011544949807388383284428623709201222719722164447723959388583353660872082168365726340120202420974924406183706291611904266732556206867616604322604455491384500183349017349244597967466034788963751099834288585185327599970419978438070915308090679498699494206961535343183744121483538453549877800054010315802850815609521395020620369949893051889808615830176015805411549875748760185338611018924316134006997293349031220051645014296444863527884305033032428136658144191348067748744017136934182030622952967731139328743279957457523181678457435711703427516880343174464789915929211777823774005698545494303001787025379406485438308365337160647010703906518613028606094490028431642267141752552665265731066000528177172016722727131848783521809616942277020426226105320774149889860925377850254155069326980641009894572457818943131010270520872179145297667153110273574578286882655398875938730872483787407541395004098357652919305541094884500102638889303163846376789174050720806157850017465224254190637404950953025072335783618249715864798086604458441430306830178466660028330247155772110041655321720217661033705403064206256302980181539173417572433087741864321974412425482907623348317257578696383856886457441032084793188000021369019303453919272455933928042080913887610247981142423670339847086768838619401771242895070249581479300326486971852548888630591209623104240555902404718404834263873207507522563901112917260470658478307537677266414216997371765872440850783525604092691253408274743321248650867572862429539273153553619442712811004679932245697883511607591066657203458654846509548214146217015510014271750210097834152005964337973502674568225182428371494316329544100913132332413335979627974465764615916452925013869843555916309900579548057922407766474622134132267563011567015636020053775195763759122079315707893754524845770951910538069979967741412028676958454914996074392745330603567583989432288777579734133182547489891803286707560451842339179456861409238759450188064169557509766068963845410861747022465278550438707030018341595779404268754649069183418881896223332324021782014723341200422266947613376482850464507138908370095554393715711371187221853686706779492935624131529391746714992346330479270466302546240876206501591573054198414621698766869910575360561869293744155227088866141001464672423827982675720380256716911115982829109553810658985871784845649646629829876236413933169693852482552938542660650023821451513086862675005022889583270136679845308954308897424289901540239246189462854187595715088330485923091468871418622504300844611902498345575560624784861398525466761303166855499770134488286933588638545878410359047266362639732717990933178151449296358445977130602868104801577294625887018100402281657567569926294285064039139100615860625395336431968857468240406046773659925237091620259061173651063002064545902696708527011993691927480620660653473877406443239326309095290629221768435032936206279994838373643955209479683547679460464951142560076544249795997872747271370541019936391637306149709911915705841732891697548278446778391685230336272548911553152799203358627576981397507763148672060308868792637686041082423603304136270379390264465436231995503746548055215699710054954607383859964770353434266923657831586131143793297718693254517585568077368822531451488275318184532774753458837208016180204896880288233385098104545133848813311929483866623045777501615662886208876978351131303532220079749281657680561749619981282136651328598304922084777511551322655969111846764405388204389752959961758469875744712937293029089751570155538236409133275219532463414641127778044273210979548832979523508191118040997943480849065217686640163251897307639351076195069219586838716630507619267543125686142233319432557916430731115971334196324230064024048966203458225084865685763121441041984666934714781853887294566739108167990683561115912714381497904163463801558571980304839295898167050884267360361568506845279591980055064523434674607431089141685420598174530108638605757583428653837482901640576263889072192967993996632425608443814452185373434808585731750323995591462297517473628728102589100529304002905991432254574543374418964040395728902252808264157893908420119384160766726427502333279634729271756359427337298941614547215929825092157347697648619109430480322024269861301539715292138434128807810315533021075129889067094269542222028086502550040213155688459632300461697491439931627263444099313122479382844501351413286152281892815920424762887408151548243977081813158073396107705017045917997945001046030015305363839296794632881613796463210678204878253612754333233259816831734707977156263660136959304741705598393814463260904943029993379636454658916246922585301683808635184553913160151933417498105252797874513886781328650153501400275791733407268443434515079260863704370068031674992296968689542619838623967631792622846774450954503202604854641085239526251734170383951096408738458929964735142541960235176465875675822446144431530765007252230658512286581478495509968565241846884039596111662308749919335375777583675201968011162779349318974883644319404210190470004425499263399276813471969194545763634061377929697228574350913562726545295815198325361947360011744951906775379032312456837401230717924879228576991332751737377416216106385946044289241291017373809833222451471848952182263275146237797114762228167773730479135711499604744659484585346160825582705857068788461868698442592646261682341736514157322761320137421438589381919724221840944126919259027659667102354903730157189740585989168749990866689629031436188942790560981229225675529019709151332928289247546825549923817316065705076491250997814379610591978047849449059354980932122659223936667381536222755149137815457387021886129155301568672556129580341393738806281461347356699640479494535199911689955095854733314456204286721423124716634239083081238741599403843237300492521914382566966678454811847080343760554058481476234625131168549064742051388751590134974706388668367962124935188665896856721678528085950924318999843580289931936173001357743434254980344575370267540793730801023604320406850360481969576200015308435636402968476552067647982615531995237944656137356546489409014412784655947200831595201533210551075095994685647657683988259265828004329473895801678925348214164675418002901258296840260185355069754883456114129407551623068731289777629948411224535649441294954210846333210202340576473460159877089005041917057430400430938717608544205478005142794281052849600162971356974571416028349115113828218025567105517983572986820359232925517976584258741140783033362508351760926227638655995000767845778364242421249130121281243580598861571747165354376196080729952900937050715916364491233918372893173196481506048356835741486073152201040108723253728784491838562460333822353379864641111778719063880790863910655271989964215852669155352533408257515672834096102713488186587237262673142386811061847699031251148444658775376295599163123658182710447808614844871244917671662250095351712419916908619632445094741288623587125570921687208974776199267828281736607954643059719014005827447528175950212703954475371447373711858840164650408220136546290591902601582316665648177346026381025181319471384833276894505693050698402436622761365331318115524569029621356336120202305089363447916911084346301077534523731609276240124251979429433439429621432014074848992108452295885295959483912252746841395911357743670861306611010936040206997970265731414918057867302986569376697575436561369217187289724308103656769594520616189764310671834775129554225639512358972448463686805076196348948098105809065695237645142036067450809295271718378639970516779735839963987548363010516885120198733863644596930335128508696838721206867436918214343148731962903965631231672271997545660389684027742388747186416827527698159867203770766601597709304757815144127474333065206466989229760548254213130841762120423661411198060185411949027042300890193009027029766525166217714484318975134043748066483038379528464881409048792770615312002561936761287716115177974673435440126761485306986140220683785776213916139614171775499189460935217972949262782588647506650048473144626809133123333513017442766206057984529491016525583612820054950936098568668224030180809500584972420255309833408242067824312830680139785618006022780547694740871819707235704981438843211744226875341493369038047483324772067097282418960616108383451221094038207096527127836684002231427986980660115230812404654368098574094616229738987678344224754946742763998759877532489024942690285656687889094036427604231245375225455860224758034068055785710461849426710845282922721597222526564382563380833956419137558587045422274527707227638844664721961927533147959311842684226277562090335816818116709389644107236991453039420165016733157734339145271672044574034077937682667332737106768391525402415537813059878982891164110428116939955741707923079151088855645389289842057808371315616819008080325517024457089822259515806416760273018791538622504642413888942685987815522587501217175473435451857792820017101455193540529286739996331054898260576989023112424380567681538596101639940824187343808547055305649724070388424482501689849449241682502764935396570215098609138691311650932703600230566747116201319800961189938067674870921927347440017280824762524977013121204329861705261705569972023282646570997957808859888294431935233806135888194879503837200350232776274204668016395380861958340196725049051140883533973038046369435421095405693437665119384407711547171152645605315012087818112968525873064679718883373097359781367840453670590449153222482685423988312467430340353253881336917257889984644808136393523230678080892611896455032886513637276367725036369913087589675859164375249922772377524312501295391631068330556557372215987105726500890608820591741178336800173131121685901783855138555037211542246559449569011445051079991071027842866716475521638948303232227016693183212596845742736209201827863021754133582920934846923162817444268844252016781276625661099667098251746162030194276455982623957981709099955991398292610502249470047328203324485278611878322320151592083646674213075306858715116540283105916989163446737218339095336787152106153206458907728998440554096203342551579347384105666481718434175741823231519960187089574081086461799390311987302500300147482815059375992073326302820799146978830770042607270404425442996495481524200777885986068062184908648578112121076912393193469664832802252320973867131592142189536830285212575622449886092952169262548390210051482073602747821271598822484768611283102827222376711664368178207619621215840365237070407745211054590904807137672154597985302344682922886900685134839776729244322298129402753293228362394169048518889916824095277378116784563794600975773746045274687026068254754442123958155275770564904679733981713863294883363703174290589762209360333634519650211865423618197337628299509973188459117149242466527232835086706870723613320127042235464967078615596025599046350259121105306568300991057204004045345100718301399810614506729163999562324267352844733458865697952382149783197930171159013140422474789229394305453563685544517300902851621704322852215215597270115465877902052058184080397456348891201864097856706389956989386449020723370323315645725833951758516268538252157468705808397760332093485988109990142207146606057239999194352880670379193277666342505538639393649178334766612732034796973003106046625277107979319719758103999907385969643769377911258773833997281066491709078012384939986444049782745752280622139957106549568710933532813864257211095109226881453002603771180665261020017001769646206245394762967904015120332270176157023487240644662201010027249506615168722824066022498415120070926699435397705388322396532418556153957287282922429372532934144561621984818984068799469890053708217198243026065984837275562503754556802542040092396173571519922340095292597088034063256292547635333390369004523175667448605221908888712053824657437702175087154868839445670806081030924105291429140353909697843264338256304975287312642864721169212073049421758454559731415874070966460699208238515301676545243098611592012215263359815489028871300610830191298868687408147070746951700177799545672858805402304231650361908061881263820169059299980357179436152733700671537767872766034744722613106976568537210078272790269681552806253441749376581776100421716993436649306950985497206157107079484280489257240619431197138668628559550804831147979333522466409478392582377115267767756927041407622006541743252874772869072975007131825565061557864445506995442659061572367565316571451494306250046237730855025920990941280753456450396251693018531929395203693560741434822235920972645884215692507294361039222419449401006073953194569017392484025097948776797778701131156842904413659391168580642178837377244167685826079820310597965293087250284196242346572211589969086041536623864444493388136776714118031193001606998333895461396727394115671147181913335391589819765596645741219539182478103834424010576320867367039320085488434734372936784545435959100339481171337530557838794525543831614733319457425605619428051111428784821586367212553075502376085096413676207865074289953316225426643678992370531069723672453651346464822848431752877770687951199772404988730995357343608770216920312052670654362124228403952833169987892459025688033013117154374497574831955214306837163252658475080977541014234459272464349231661475172600266738223830816075062811192313702642779917834882120010001380558300508896909779830107751845134154635931400902411128359139877856122959418564470499918621928353124357606872735578238048106854736390405783870247081590227136516808820430125043367107157941782362749066828736784968800233526235572280396687247077681694159554079749622606970444881769087446709356806119782348436719543417130636096595595046255654547171929559408297619191431238319395037123097546436339326746304257944622725111065677005129398306737103945476608545134373515221843789283625346132711602037320655074660786601288923394189548780863225262614396816292381765490007503574184579446327610026547964937734737303728950847818943094921479540676717493534105943341420020391404748295826558191668005449669608762320681485431096345188935186478450159812783608235308061632290483370339164763816255935058404525559614717295047051561319116667932428721956985895543309111821449367265301855152517862491121828742674242768859995500707009814330293226633856795197297360604276261948891362949646801751402222803841029397891349371098465891087836018814008787451179445494612008030177241335280317010768775382284906894465938236301658223156199316709512035299738610677709662667602807692269953966213829832147857366834044511663623184299998477085089177543877452303281182099326449249623274190056672042936281113203835080829635306201271761929919074011820489420576373692314194395214977916404116156248281528139911997584852592406164607665033890364870374581788471448488776283667838344055780837500875469508572045363903920076005267195079528052773043462198616147756084559694460160730337645811928769757394851425378060503467078773155470960727440291179509278509039621778209759926838612285456030939371819042831526132292855931063443740997504759037308057721175790730512771548176730751428090454678306882881029238547780976221208399038051149321968590980039476112907477846862918745290205456225370960660979285192271728349108495999249937643856793202932290104675998902346596832013200713249606492687755363226746737254571312816144523202039967061168346523887582504011922300551872135677731196276373252675854188039328058178245077930576983675459659873573971119284986173125028545533297842864798046839070602280719681210532604921080442826692107168016084065071582193457593834428795775847662436320722827632522750986539932196085857011181995761274819798127536480540811179543408535801073358798687316192543411486736132442127471154583851160382745304722363872796688434331001117503713020863562131452249764530313896532205181754110384252185845870640417071622362020110737135170849854504084316555719576951937877139048632901770355216500738182759936647518984564481626135637218109036873375170507350000145157362498976408075826453626298946185799138165489542676029478412401268484301753101715907006068197238140989171064260213617370901430635589102095226110062418792667133955767965449730646682974342293103698869040838082138338144105517487063592922513148757953923899943281054305426998069579216863607822422306663138557597125372590560264910822698594155020643868611938050215599445036817927670280968532776487663452757673351986228544854564517043585864666922802163906590383393770979043361545307873464164137126538548595069832690345361101632616912437391286341055200957785759942115994509023310935985985809888283368711288925101249852291338262870010764314141744873963821873776320113931866022368645114961506420393035866646511765169086164539979356466391925998280745487714650067648263784278323614765840422983663988444334637564499490811694728530854499291587203117624055928364240378855042723327367164601937338029720436239201329192018908403315574354648521947487237867285208684220684229566125281725580328678057200767183608478484272083280692886431725080493996969757262718545073905591287170840087587009521537749763958607700240133493597621714902946763328326371184403796926616383777745007555217443704525511160108293359657359870729312995279064709629982179156788424134331894870685944846296927037294131803110160097450499115050489649613652306010721209891205877413682494645991501447411071792729508832139327938114548186930863869997909299269879849920857679236431137687687739462130207446498228743387621682795957636796055299505860488645987679936227281571061326045699838843824830484311458883967119370776596662062422198502483379903356911646689278292328292730985917598811738189528358140650587352822119912778440420309998220744637751324667686874067417527956571338173853705864653145092938067947093974587906626708946563222903278669575046498180810823946159192112422366983016209634655907212576894651784594157708336557711537603963382770014997878769971031223860510492063504605277644953976954983745875828812700125451569737498229894026504397173696696028657667303464619811035085631417570597635108621798658796044372371067319818970247141287755611282456619626984591237000927763353068061994548273919599224371507689632824712905983457651215775582468575498576045899452626051734268424890286731270473007673824316449553064177873833054776037357613112444344629030936666813328998303702289663676288250547683935688357064308233813217383099873730873352440901649632224086723536841369980161755958741049223574681221789193312671276367215766306410972120788612011295528960752228770097147268115995259612498504614204713808413574519554791338510544870051729541356478489524291236244217605599136790553728947237521482730227356094012888155786477787990809490143511555216553717276946918619116875371409278252814241052847241066017095914708272787143585532165136800131819016798301298022621629558347308015103096373760325309087980628491668531356479788119081261581421321633078250109446403408911728863662216274484098909611128976789718191546561097834548601504295384094650611505741384698898980989003260171675866403367381442802758013434649731798074069631036738146840857290679893507781202673385811652286512933874337070668200887668036342749543228331903385485423187100020121620066390677785266874618601544828187807745762554483302739551097797110417889333956907148582153666096552147756965475120168586159152087751065458569381293263649645112446376394055292694376647036367846484039936554299509983793793560548816027857005084449096556707766695120358040999396868262886390703186234301625640508677881499053028540076822396603010689407340097957890145020347271116459034444714082778230260857040406501686153791395529499753079290234741947622978146568302702200297588037382754290120610341653964420389981001028868905275407268030911734381268932152510079218887949593279799311825387051603253890577365699541724136268371081145484346626523702977915054437296671447596211017543543777449267803373764931623473182366457366843734924024342246805161182072613878612806132300489240579684775026911239667187068521174345631682728605799553488574309126429780622004435924150857237331175331490528102795531989009871880772289232354810034682253641808775239293730470773272925716118600382316603240340688207093151493308918490780341219153776735354814934958954627989175570178102248488648970754942860212210462854215646209889772203544242832327786322256161503162460752288953356932600157127619536933252733007575149238103620261318065264107931576921492288275030102791451362698206347937987952998134827808210963656033845700915650402258827912354921466955145035395667283484790625511462465832843496283123831125631697945444226050708347003108882985534118575773474445791281406163606683834659178376460665082171650030559387889813567982688016308395323623129733383117059794448756145660461549019440766140125029415719619648684963574997961088164407393186370422026347142388743930122376740302232834477741073957385751697080548528858301583040461178348341092788769726564618377506315071875998931362190311467157527584618968944915163369121660170540780805402385759360511325926044254234929657871376956069086107231576032208070741310350405246373640316107587893706938389697206782560236687242853427826429653448895678038691118510723171200518162289683087469842234492727362132417267737017837509778989147393062593079036387893514043402884956025133806072989445862773734200440793104189283840549906048049490374967070301368448285232975902040614437843195105140731954243633203271819182210243724691270211382291989366020088310352676712181593536958338586458216675931222914597253776331928591282659855250325860729334809158005458668982966946387913348422859728066843419222918050112737031933760110649911905915436203094839467225421762566954023739156641665352720501786555502133396092840035989116097657121285152716403648539100214348476505597224733710295470822652917722202549730894112295931009681391415701564771249130593782042925279823499337109732235899588117136737083064059717069885579630753517371513340759031556970699545218723617528171127932024623063345961584909074678138009886375460066134259490606052459423685264831473055161956508006266407304038206627484033063207772022685471821900668095000377116250776804226960866272655031583195112940006295610602130126053485820325590718763255720194250352198943932348469455366882585233262854079691910322297429851066560456553517437499835993634032298772213232442103488010175561398266297732056812863457591997630821645938381339772448166180811153087094812941278481375061340359462238744722695986148971558752805925635040561571544220366394878439696384721662793410914408738134507308649069606230302132086000685101238711098279205042194961005347807144339651817596492364277138177822047510576697597211272003726887836045929384644250213277861362181336223573598382518689669456096043518311329209551353320709248788510547456321552807786777920743368717011316207925594512980639705309545186362211461497304338842607155250645930437072984823536702186156781861454659145042701030125572268127754180761576507459642508326600016148786721880061567282519945402455494285270448728082196902402125803525516461665685964402296289367924902534315701466058207396199526637915143935464373863588781549875758135042197726677231034307064836350706559744878217873402166261984871796563472120813258952742372388202850433407570494715772923072615952849730768194168564159701260695478832750649999616621429472139324774898612175618299135339887544604839851167336192852736692704933421957048195553486604617444966623949725253405203525246729054870001827924530840951319575526810887915269248732471056327134493556446233937494365213028157739715513536615875130440717277260466635116362986549332667456639859545750371273796567017450574980713261066828550563719304926762066602188850826084354117895024934638062069401185169174188063098930726315742448230786113633050674649918369110374099063760349976066697941639639659306257691789257845564521899305222757546408965589646160370925229327790167811337352181240449199222566721441263345861877957603750368224863964513650320912864908588865008500293114639193769987586512005352678492116431737893606840700914315510463761812627311149442391307605795456328727619760182672126688366055828414294032577303192168806681571262374968751105356464053507484363062381527571407132472908800433482886796236616272405562924272872320899090205334031488854935008570299559982629098502154964463399304668337182468443438226468173013999573460156129343249803119885874015164155463164038065289402838409997712149786771659058501497439872796267432132497133937177581626221515965439514345021054338360047062735916361997767489686738760580016246515818586666676559129731916440385368402286291903249375361841875426587516332633197556175270472610667651224029205609307428405209248680701266814173016462062041258888149588041225635290071364662471759548287559525345352359205583739111166129643265625538553935527769843052952819113767189426857002015512955088214872586915810498111247991185585741404476564257594183288674060741772434832257949062250001325605889841106857795179302627515832884639074124874750190942699330290276202371267524991202832535011026227536869392239526506275190816008794195610726952839236303296806097677162497676071697052897495375796851208478187860237212369689289197616556441369042211663281718208431463514266478123245295337707131112039521965002010927492602859515003619220708785037938534546834140745674181432847377097274752381459425625168285872834196617507961777219137570558299046753704755298513251349876849483901678054276771763379789313616951495211498214599601702251495950215173868430725207505498321068901047455663954753847620700129070851198794737727491351716892527483760128414225529528255614133256848811843213731830887954677085868278009708581395205688023050551197776302741803506349424888752373057210352620700607723345011007894256789705168662123620527890273171556629793100596324260317245263473853540094782355112550809524594382049532819521707947524494506392816542197525997494188494031536580173990360556771739936169876687492764810031790539369807425251308279538271588982696088277118407391574685011624187115773822475225644401309785790610109171481736618515068029142119635521437880625902162103078341080413524926542580358045554543652588292247836624571009786649974069234201159418054124893036288998535231394385363023349264675096694561613575586627086828755328241040781964844678258731500598526099101929758164917317598111745461224764666224464829762733049450188633998962549600810881653437237370755419103107762455229728452124521296592437995602163464484562483569218557163501852564578617840682025672264757456326310406454661927881575620886172241908204788709616459541065251696797015202081734468432601597642207196393237043320383082318966839940179559492866380513517503034207654501938437603159685916103355033340158875657897365049375573619480740095282229481370730172305013472413034338908551632616461200180733570030566913394170858517522626375718374601780905933333576433684660019997709208184566429416364193883103529406352967903523425166322578976072630675710581163648326144057102980083876607552295819102880320634583889388346254953407010328716269720352943009963070029231304467626705555685038374914153090656217615477314127949025616162588310642347495841292125495209932416714447872713621764285515469546730288783097541802966520023786033877990951588945698320778577701389456490194505075502954727322663764088464890432363567369881498103377074128547237365095039730075012186205726534870700929501986759099033571667167500135859639470205860287874127457744456509881605925698489628593538010179273611343721548994016363780041034438505072598554500780262908971652071889732920779650335618234475395342544694015838761695148824625749357512834721259316434383906237749155193914154886808866876493284626931067890866746682845673540662349358785817834133502337640476231067701353805080184366007320840237786976577721986019127547262002283014745197504806602876157733585163564090547980285746320718019951679093240801261970447770846963139370162153911618018296037129112883802675843513329993542456784583925327053411428948524185346591948034130187670448161346720038990238868118432021113515214054886123353141181817842918866000612471010965435505016633639903766244814346185568803149884540358582128364986050423317525155910214508905229357214144556595930909985992079897049919353296532047832263935742089439009546775467131311594422543231649258627774218236006029466544734254599974839316473869649660095853900069737553355607944092892396779263915213213949134275789678806874122784708479533957245079212657440554745493332423495736459461090010699197487639518731905031915837679938956902440143527122037508175182320129093128934949756854654903290307180423140139668443241213764747118899508338224284640408322589775171309785327895654129455923954827375294646405178115494143748317251165005407109276261246121168936449362648351442044142614454883409140811215797246795289362492503512732914710465712355761296338534308413270287599845518330476180064472407291095404245581577822147216615333066761550404328775633960471055114546422314926772055380492893884914898514654145524830860606476226751361958113370505128439372411598451720225198329013528383734004140604298216812887200320092368600465014056062381776923111199368546635382744021862383387330503710068371234275503511194080398905326035616362192314687480822431688974008580113005011269728970281914540780003397817189571899797452520024828548532048634011340150086031842746062856564897332658276226349107075369993680620314960485169512031224034903744347817198338652155334102639493309765554985537071028676469627292573809080410123553378769873554719123320308965234028778557562671203615465409277841303310902770286892179009370058808118760342953407417290123873146216432641374654550246342736483877431792170908006264424840171708776713384081866113176013381757168159048169688635634437291042730312966465429614898538276887910245313399706416058391365741117001320450545070018888321215329203459445443089671663884211831507244233772404602274192569199657914396739552042404272829025816640624206723854533779029467295833139700110170640570708094513159154762864277205970277991694254081421789892089148509591738371546711257668249565393886730371639254123093748527843362623699381958738550040249087944166212827684406895336964294012344018600360753756333190850200796287237789843738798050954794307574753346404081138804361359857917294507270840876796950933393186425619474724046308834864491045204842662760048752028730223774454486595633525889818433033995329217680201650386087003010811557570671056722129224896318601027958521600600621419747877932599104519311924608333543201739153249645111887727692699398655390247234697553896159756211190860730034277266415783373213518327110417221604382604369914521671956379128932834264834793038287581763983513338100586753032199861455636939895834263382145894413982554905936519818078200475819448579375360870593045722534811542844441825646745000736967453711699018005639127737828808216629249282890899978485036353083795729095129828730790554581463067268475747802892156951979802719699133199532911935567496574050473538836550210469346993374581655246850480613768300161671089695871792394351892278718570720444453872708734655538368441954452920434731704497269913288177708810267337892487060469360917253986012503196481031212608277226883377995593988931748736648503026198971587768125824408395643264912186174924575151713520871735469989289577444525610702659792923823301535168966055976298229045937392755557471233414066978637226820869597642250878808479591039289354888103958630634210830359141156404477383100349166549415146011589604614129988535521729224697514382887847897060562789936480756111708351877684240002848022342710310899608650993777213167600223069754357558048855722469843701265833693377112851735069483451444109926956287111427404301583554053873610898395500373167454332053669826246361320966116259152376714585986826578546729099960444365459940827284390263815124149560950139401209673236980454822575372646343932091835949876660552328520118401698411180148155423912542689950606553155529637643929828787867150312263328788081950195399132482499401283918862045711574241348751901759140517380742871103670597907060862186063066957606091931912032502666092320547738492309511428247404124682959282198181438350344210692843284975714775378434152734894893277785166006970810597772415276024958191407146836186095247099568898726531584348226089724978820752703292351907721004466559931711059683124843211130884481879133481545970601732515967524301262407018052334821275040540160247725702031935215333018634306126052905521517192497097930467562589941784798858774490658466495029869432530344926778223941228547792868478235907258284824627161788727251527980246524686708794735421724120135775865604449760406843837374986528043516227593983886289929274581170724383770418285492181124433970307186604708647412573093247400365654135313609461395203381476755402215100385667483065113622460768274915449676628450085267167954018270372844772601990552533914177287008634723080964745264841298402662201519158357363621605904898061667015271349075402488996769827856920966679785146577615858321699590552664945758866443399236843539487071638881485495403580431957601729482828120923399327117334984955964474824216537219984138923428842580708339793140556644511008561024252562025130826633264012702385910195839676095611797028075329343552847915868094399222367377614411659891552207674678129514441542878785263422202053978358844031311459555697988547242791090357604237431268647417054419594633818469232883222552455323232574890865376138080171727571185662193323813328583937879792675602667559079705050372539148013359346727893215179765578292362963764438938216245930879971551308610555905039189173705092124775264421954791596677813505788482330886335634093562865562390163561024691283844000471165235510922046912152130109976657998940944656456587071199032049175202530586815286703135309958401073040200429488247423325838696299278024050778389624679436610104906685003405716030222864877595295720678394307095199509058781594487168338005771961139717174377713069821813824052629558925047940098207675792405632266122424853370523159533984927600124912030893430063152418103209681911339575818676093180761250687034187467434844745510777348284198441172733636513852545933452529385455516897562174781587986371542374711869275353481842156120254766314370042003750368143656956919914569366643620563698476309084750743763444025340280185284029790825208354465404346961708239522223798329933165667284306707466073011018365603820184336722675203330081912998689572797632573795820812932630388165823683558404529248211201149247305258279798531037765687038420757087708626521611750336190341141299736129838189623077857436141558692451953400211172425319818177088747890370895125386218741843474855795003498308817642862738800318176819701436700464891248685941519595152316212031795342106597894163716774337724961343703518409831588299976001658738084659093174407635033186009047881146816139496378183496372699178505179912912807990344327327159711192338701405429592114538758471161756292406796214991685883294205875674481606981728210559266538030850337783344092957870264539057073122265182520612984438853981228964409261064721745990160802848583314160325249438129924199089073362120815007015740347389517072617478020528562493335940671522486410394535342124405715695200248571863739499583293055759539153136164486744236676826430979313230063263482192508054012508642063413596797139244550534027079104021024409350852698329137653657509137194910475114130093341077170531266315316680066021148886397975322328486403244086477260312899394955683675370589635586366089826394771921192305653266908890427437506752339805532243933794135411471088287557568113512853000968505326847580273459256559996715110490932142843561728021930360777846917027944937581837664502027553546626624815366200018524677944913921659414797476081669135366123538855698515257784679050521994788705655123091380628035640670219643633251485935809005681965936127159992252994074062393521359890878581646184850119048573047180139329328376775463606426748114938265577149218886680074754739986117320911816471830609859153750642864470430736593734485316820269752400094497119578886594303379624149305880155824311479560544261453014574206350725652739781696268225716133168742499498638753333126800807635726336834838263855897745269112811360820501562709784811213177264640166328945986128246629268633800717103712635711739505424248979364798632918245841165378532069275705849086200027855777602861421010353240542222934410930105714541578999805708708860992115988807891735819574422262316498744530108085365927986017671927884871614810326234007042522793202330643929495724106969555003748164747382067829203973373489825698213519702303734787755811122019946657030106163136013834223651835505497957029965602311020240671308959608738803456413322466274844721499086537233960993624599141749209052158415802607177579149770417063569881977244983826642127129003821856839248141944455174504505683991093733683054480613585625250139506323215232173877928310293600598518194340706207868050414659988907573425283709639792947476080605573634182318903065510014960229828873495958775513923860691975927535372335949571927333477558405576489907975553163306191204596564272972288842684461747406789599588185758238773531542830888797445760243790401621296061901572253207572687869809276839627799841516872631437461060432779208663286909640682780728724720367094352306729786033656286536648459940075233940768727954519543290396800388929994951968242825769326822656931695314099986266505151694502775586455927489365500992691789476456310441654761958219131760853441657008145842817393924991873017670495706877419206436740156838484234847475883236493666335188639556697005930853990599051764049575990681093933039483845324111160816580039641724300482571560241266703502416385387883212806779294154692064788445606846111746282917259626734050229778069416045205493850120662353762851502528692098443197145303999256264456067963341837564256017447787896455786423471186857454894150111255713118184502401855654731386737166866177408141805117880408636967468308169507960735008743278643920252771819400922219198978842523703693454393391889516125566967032061381922626212040203981377612577431445951087637968240020855810306062437490730363710058090514035633237956450252691475107962909389793902545382631425406148560064621067505153011626646802799067464049307414396949393380637579420480107405950956899548824890413096295727024169274117536423533613161354616341050610725063992037698673841172403100353603325127403895990074985724200778311274461972428374508529643039828866417968664201955735599531121663820459019195637470533638218879298524696297593055805740457804155595944633534209673263719222235579324373569341644709386072543160726142104146651932663899502475070671962975407065001927545460193045924884734518942890337072492301740514541829872447364782665729487266964742927049001103492267606696520760606117105303170226639574828187628044808196741385764536053599717286709583107531180177368530284648519096925048589216185084417218304049813786596330486734551069005411820929297129062371472109311248712691474640320578060572086556867379317549221318648248874193722184659283467654008146551424352477500755640872189054995309554137052536698026360963797435522107429941436418619532949457004198123624312986252653287341238281461522485265873932202037421338650569057181285450509528287814870573757094914040720214275218695123082120902483648457917987293048330834816088908938399398192401960344831909929894670187160583173585904068146248367740826789999995270652574698320198891871448706764926967971642241336879029778458289942054565126196456301776329215494803669266084012303202664093638419436393893380474681470859052738220409412076057596483432629766871829981340179151868633362030881426599308294759798686040669631393491610135947489040429606533090012753771951411086143049122389355831701665979859923037525572779115140034107358623877382296177562245601868252285674924375208873036812246565633645677974638646231843908643824893578528189386121782766631383943719802747971226963136628425304648632157567283716504721608824778195475822511187365585483990108414802312119368156574575408393389217579068869023799619466369806033444290070325536602342992792984016828349387849304883854268996205924467980329073652802842422500472826810550964577145052000572405436484253701041949421204952768169523016840012133846413942131621687310788810823346785115337140954836931169139179586326338403699425563035506648089487171262012724099989355154439423144657130485862441491591103406886726363774721381796523641707039335620257451580096083387413767996152235525111613656839316201044180991698850210963733495804583570990222396358319107533478827032999219450335776226269438833164207325564548691979068661750074568569396726501394669888356547821617183745023650921662948743773404752808364392557991797143912343376546746698888381561896394702084707100781886457247581407395045628075214888371053575900250948408011400204884555448740350080014129617964222485484864669669915711601570470955788880490628253019460663813352501552137724609005858674464397265427539441171549358032446689801394511478030229290521855025459578672336724791628941137029337506495997351317713700756287670230785184666085963051465789133244677705041320798529609539184354402905597589525730849862832516004472323483535005421604605708856654389676295071932968738904388388785151951041831023265171553630309299439252658636273872849322743510063499477354455654580605755476714208901418647640962399218332576600557972119838646321365193295835226930082151260392856962038709961813301729829601357245283541681065863023117363924463447079935035957877534344621447383962734679674506876280592744676507954107751867123507983441480296525182917613210281974523288741783340587182059453410826009354540933898507078314733806977501078396648046092532006751755143282980523028399370306069400312172151240917637292040537523218817081015863233341344950580318184798457056048819960183209433359013796329766767077103191420976563904431213826906104266909944408651738447234680037236310752488656716311206309433049653716442393829993008739246530806599741382349566577629258380898779968382647500792259131830086329407593476605895712419205691546453736238622020360967326204568768460820608799332076480871180716096574962771435182176757520099849627109993253900908067672229678605129445833499341265438569538394167890120534041016109138207100079041208671472607694428243022007994098487121771039926454959652874242444994646421208360321271758185162590810354025601799721914086432411371152409451284820017515057117793173375480900358253010973466987133739994214356284723318111567280742723424645550739260273624966707979685506948317889659171793886280764931081620431036262814569417066647984345549220835009607246569850700007275582987180011608448627528561814244930077651431248822148930735101779561387831340556391614360415525398194534182077901952959888637551235372259131098230920950712588205932849345048715626663829868222659439159616607716527601375002197985151400560516107064806344266951048224195818021538616072607159455524998420038739293865571391052690021277762853901188864040457055129805949292820778541730261430656892636563219586684001835227996435638081444836780382677400160486094511678482940552460789950392455904620604232181513944099301702525014769558892846472562316194825155831535859640679795361678643653058835741638949741550745520194575672881177720687673502194641042482684058595918883735619036820216654698793425533277008460418993132896636327773510339203910791125029264047780290581326720665630101691456945730363670400593027828114297741653986857952426569752936503043753391555117656227498954041948635822005447154235868364494569265210801958808198655303202843913866944216380405769548377001316669478480497020789584507304991678118885830150008062127581183126004069557807867627615998883314200175256639746514262250483080752438617058346324056047905691918885984533822372476753310948041044988130284553637891345740029523579465500776295716753170627120160876211386216317787389483470259104578561570452236716086535577173696526632839677315122764940382833771912024790159749267368005380300746161604114872158860555839393863498619643814199850718851471863080675472426965599976461041919688478039428012808020713747057114372578809643834191023299253892368753610029289460028850795435062796932372685024962735881161980191700014213467212521730574306014395098164353751333335869052395775913260773768381969486473945757707051759149927067212921523387601546947045501696125847700980568691449004954486231508343720969708093365320340977834494568524405812965022841255640662503411981013502620483582885941152017792644633244026656013735871460365045204139592883551388499463388720213608880337631947877909318059525305898656296726721634924934275042886333723301375086723956340450765643881346158126078780003416817617998217795980566250071630696027082938489282449735643076547309759146878329935064185162530395451782227691553136767810533248578587145879140150638638720680505749499863794087144052339090790872719177686277905722219846132799091516316007739474746445667805205874171956985373758808070414849018437488459678018137384340782036406237693939709903237182534073934717091675790563136225736810159336616986522069586119829417473075616729681414795796930776684125257200429951125430729794044186919784305379340895947465061772211869171167387122833299956639503552131825508262808972137373920599354749634759196212676374321820240486278483138811108363256808954031599671308413349437918797106693530360249727727583985399216759504885202024141381298722690870928830954680199222181730549061581544438581212991472652965189780729194459395964155717480705480147950442941795844617434498480308158114605712080187249150323828887317617151408101963833605288963517956900904272743355377899428717237445094285201976938626422438041495536603789448554843835955806720013659829991838584190297220697347400693316990924144490552022161287393749463596857699370777956353804262661772425643492254535249541556064308802789518406057331282126049154270797313990362454630431506857818621920079144759190037232064464105179099961778983960362727551509456988058231789720753544697419686054740705921371204149672790215554384301604311552707953960073048561215739794571842097153415490900227677096318797094187580398886341931406889126431494596754542524939041136129898685631351238339561996771082825884393529187632232219328744345692344479095558701468969556601541106066891984988931908883630899802343311045387839450400339841832124256262042228202987342634211664148489601386264628091745285197384351166895177446227537742340934498664257305328605358834311670768834141879476061959624587121345282140767040081529475561744882187661054625439222345242453533908866508295561328262674817397051499210567250189754367749278688741414472364093873939947006843945227420378607542601083782377854685277664813278777876231607333678957865395502445733145697563770753714880296140682009196883203797192142067368664804685041682560999726211098463263701083053845823151597236291362152790088737820338021190817620404607755019744678880970999188162222281479753889802891905159746558692980320666990291087766817699213882684487436987550073925684105332986788363712354462113863839828831225975356507747757683151282146865258241614861653980720198838076544490294241062129983394260425048226217100404942952770680913810376316991386165768561528267701309635845827278515605083175936707891666549472346411773476698699210678991311656570995626617727992086271765709535571629669979857484474698009153701920012897732325458761588135812701595162866505434160598920102162853038299774697940728661415447123437627811852767657369074814697361647780793080128921220105605474002211399567952052102929355523094939456588335646890335030981507654202094961581929045623433559437788657022510497973421951961366300557616283137477512302255847991130966073943813039632689294111399097505805127909671646831652390856250080660485672559276257837165884143718409411894913946575424633916288318305452962155194199606889852988718834545438362950112249149048130940339388064299924765207397238505129062469034450785061022979871632381811231046571154711953313483236820471821329547587295786899662123620461239625241228760877437038527655514414628884835295569339869957686328218520018723958573749980670093127357311965006597052322601652398393933212131568122160897500468818380856200552126907762068337866221008597311510239402952104853585099339226535518741760502857411259475302992448081948804812602436998747580004112574346710839026104970721863007851740188086671082287714997739010263593164940422918468362779189316675645133297681486897613091708943836454092755338012091109221777692893317135684038570169360066395733538813967231222966357644825089015681004952714030831645686682005427543082314973144472516220526002109554959353968134737952532316196393398121925400636396773876303073662284191736859312341180847717150871573825332007649953339299612179589899242173951387959586836180681139825099585205713583263803994090189911933184188659268248062172706100297875232554855532558591376474644947260501757304981012906745150911817873365785346231723269668551726929327309275047753444349110286002495406136716781429583668867291226103110195368994070863502069749179377469126068158989836526894987590744790959695374268482600930579508710929651055393925390330941341649656387045904065179127532743841958969761357179566964035565647715740919503247665246168780794298430273019320432796578687796351018624596995258689417624283833881463427220469429805821332140873613392452656181358149078482153088587898407374750859469616495538838754250171146039147124348220393221425100685956150359907027723132052364821737230697948226281491143758499308968750441948841688627510270398434414051818042810776487784792488809390364319350479778372049112458823739480918939154824536619328451273329486194541420162342840946892142343601634784328609987929276364424757208577758684727383658993557324458956917521511086227556946551953894177189129457093267568946919325809342922817549210787808192676940137994074104034993302127036536650418500780657178254519262772446166584808318402015584724099670579151151163750970363247062898392324737013392801008192928111321282165228036149965934372772708403872996188130355356997875743674198757242353174244573777156700827754640684524517762927787629108433879349716314091254656448420136912146530205187214208059440372541822027266496144339160655593773767415945684620159098289453802308818092900558103224511952799779075443355515113978699571187877228372407963570987457411901669240221252701987160056820270880125770778265272914300828309594465831975794688814861849723272803086288252565581608852335863579805404383093569478501640867882056554868856322485056817748986713357633189045397232417522226520849974188965105729725119208586523841997301542268693768836014777720949241704902221459762968950624042617485596753499055286785549818018960277311474990408294752826569127367308621587363124872515115528528156547957981381980537769096460738707795262850853196950542476911571834844886986272875678337785116530674779244045727703509546319950516877335023927325519645298187890120381313255733956643002704893840713495118716923199292365073424217856514334059241787888202332459949067365826350241614577661819760241854431350696033258911966946500129925071306433347686183339856119254594923811824134685932301591034484337952124079629275500262266785044713216991544693723905414151551165977639415558578422102788730193953005477979403366569581340065708534013530279903418048216752827328213786270288549019796607345794367745925655191612046200979427044960058512938349317033448184518414988482495746319724220277144545810816250215920176954623161310592013282290623957307412389048251043080620017378127336721964500526491391421980639130520362895773660397399129520463827357371055201047182444872913864767051492432278132603019324633494251202296044276045394792726577681186712528877650091761595683935005474957416788573107407000220758951087390081872480089889348612214126683386413547379407358510800314806107673621625641500617722503411531887113568584737088523960346806076281401086731409474724713703547751417134272867646901285115186730929449514199944033783762148299076372496115549309297054021842736511444201493287158965314841197028153350651263925363938413780315148466670647248334149631725026026069728092656275473246711077377872575060272484304900586853756802653354712671685880355328289472778447294442989710836819537017787207186265951866881283682182640228121097320201339060782976346979692631310804369781841029863294112420761132743758542270518040241019200158260060878794549288128966807477460154172372275862791928254081738971977238971280647420244692026242627504838808881188470339419273072887049311284439416648694254650289792113300140951559672908878088499604550698073992077539293301156189150794318538877517557268923070735433106474263047855860608580009324277198568391799853350335130260181875541045846000666403775444797979822827868873589895869621697543690622873925048036818213381458509738209861300582609346307815062050072130884605634253378939291972177218539449599924880309661176222281723257719634159129624547867153505199073120706273143390178943543400392898718981548028150552738709209863433504458959204850605853298576873430776444646536453764452235765068478090413761816115074554775705097687243333329948091104578826962530429436700007038929474497101973405468605930132969753039329738851431645000487305690000687869434734243118755356006814275680810472233862259449657113589551887631565511891159777074443704845756911242382364284991793963235472539052422168464050295834505724985313379380802180996422054844724514324550464730119767372058830969141431818654369932494570767289716766324367840866647615712335776041419286243093375318806253269940725434772913588010262082884461028907631270783489600026398519419925296199579674697000624674876544258757094106304181119812293239860138479125475443168543247358588063695350131840202922700193921356923153141591769508329346763696979170196524674318903690093479358397237031066104612377680581289036850354663002481772748337243235760236691938197115176700273620283245975419726073822743334086326106697889272449506157119942632095397883497711626970824216601201492152083480135511986669345455231872283542352433068672565186229041019757354620826383841791817989455103909706508066058117248006882562209261012385395283038407546029110309773579315051283716611419669615982436961441160353773593937554155579086532655861846220919867804738580529286074596685640956081803276795687761347243285139161080193265291353743507945050891211866958147605083616753922078240280315363861652342642199871876272551083170935632473878674259087369690403168904104235142365400844347444826046971950616264351376197284412792692026047706431507623132139233117603588172208742713104086620134798362382238762216425238680628718159619687215064847501397421027361997079060392480223302667117668284683524619361228826622379557481910973394267648753812510369710381004212469307872108037699599129897854509230038455712022706956061609799785372319660368501116504505109190292770658143034107166575666093258760050395930018651899220848741535965882067567767820816842999532875331976143336988910687169922342903170087877372943264975550518674580771005153237040569776600729914971404156364325981979418183190179781618417746081294155658388018860840861517702605947726050698029188014084908168527966571266433569635051301851236987418419719556685552581067735001535644344032136349968433446209822557882239133493051711681615691685568959593828187908409168544238619237441205829066310800068934847184631250525978945855162974958995005382750224337977961433874372332150742185667392544090775502239864787110302623751792880020144788183220347418233486488418966748568388129241263320829488188964558816158106547054426295557679807704856073848782397357704122803445867813086553476561785898518581662553137545724369876717162376719063988875487216650369160093457642154578201018757895326229884498062339691765755426665213436205957897299992439631063470926944563281076937426478977226475709990596043090048108860195538351153147603591841757214996158835801092382376681020176035132417593797425076632362368015432656956535871791461846977499139120081381994287405050877057967408458510429051524121677179025853581217016117752325021739854517631725174654884103527875656347406742718912659624597744624224619639528602899030165727879588212183460282914407403578027760718674272145081271239962438894004430198266228556816466524730730561027715542186611789061268563432781200355963950936601779506483401123041993130957282392622851295888432861619859000038575625366746196851333651277231943009569582831642177512284190971879621048594261633445634087713111920730123088542943418219453364995417462432159636054371186536729226843618656841033375579217063918566320930614432086502385016752091076940504885414918078871993859984582523606913256455340254577188940583872677873920417512992105779940490208675688849528733023911162841141624490473221614329719705290499717410477729899475684767274217884076190351039824435138415250162809554204729614301738314257179584879898883794463727144597023827359615920387300986749781980683664667119403602982267801078000393089312809565420762987235274636709441831550272155766555457641064438457119624771993559060739532372603536982828712902297695523979842772182995628794873971324563240838877891176849300349230773516835463214188274500358370744428631909939396050077243021318313841727192750622019870856697611979229282133718517531227869283472653983818069144481906658628351498800827256370576066009171753195044925238694928292072782760193163354035074741043553378944574749529133807060877764073247161554567834844024491730899575026540975812443121838556277699048444025156003938227265567674773473208735423977262862248050222148711320280176536559482781271345247089395759764903390433598126007953278788220597937584239354765414535241130911039558299160237569386942428567646314503443586455839675960533154853927695230714622598673485256334880900549006187904992987602580457446932278013411655516749808909019363616997379881046592120810693830692491447120361676575136927629716897696743835355801597978372002601000742235111682691607314431958956992360642108491801042857385704994988581113793567551182435808296239539057634559300344657837237931211182367260492269988478914394513481020279394719966330709695975311879590242746002544500582472238225791310294688740508567907447908054447504783781376738856710572151595509437852114414367169278570170221914003591265827904932226146875055298720281872437960122239021525297149476906321476334754666893470547564515729326507274604422218845761696339397871000804715092923433140223022727894598363420482313195674159690027833590191571021536735639831588813855914009184864900812051659829887253960125973978592325772740095269155403110514542586258996020903316672302542408134183984256194745110120652740458606815366930026318222553526873452025230310248497714881761543588292319650689915288868242079092812678315872032237052521325187383725572872327360302408216046025514735254837038491806774846915030201307046623507135302199536577961470261763223045445508138041931972060039346131093871164207525272728647045692106504492610316190201552538179113299923407936734331275282406439746362454333694342003474914876198187482283871445471629852342485423041278909031116875070215502759764064448285856573735043639464756527851950408706893878224870324507302103276357330482731575563449156261822752666714260871855910776030878771915451034255600579643486393742177737625615902609516852151420314734037742657358755421796297078822865664222144679768510191551127251559751466028818136848766594314463355816993616871254406694370717057698526756053916793949333157000345475283734542163237519582328620517138470978136021701264719641033800834252734339343829076300480382279308169114505984490748393265182586113226272702596792886342621197750083327605910319075293871099682422285179144482144442878833613355031432309829875493736660785573401941635214241870741759515021247690417436492593747861981058771238442279345013717788268218410121514106165707300559817649035481405147575195716876761465792485605527982880166817480473374779455765863137328598163981818389509373392080744577356861668602136388642716143881125751774084608986141461106610355603820661909638272585111902929801524666936283756127406741590284910842482263852781294045656505038053027722779741583113217090788031315177530063232623606418662162630347605550492551653051038763639117596368283099747773646165886860799411046404994656907160273813150747889240347700183997647713017108033486318369253700126597748995078392711245360137140587116438178769479897148476903462221676541129398388139820131014771614684369746211687942028668404463527093055663171083519605670766959862475552669550784194318880965099825988112210487264858705681884405403765780897101875702878193183985448290770972175893664681368932592366274871426699117546244606356804954900750188964648644107768114202169104890720294162115969319729212861629907094827573080364670029854434075867790840293657211803396846323732511534883179580158749178708582802317851512482344781021604884799015866336975155817972579348606224451608536385336228315314211682393858655619651430506775909368142139232253734478499027077868066438260576337813114007688665181127835092156922932546160622511068360248473793636280822968632715283255308496345804165952949579028451413244144965327195949074291346863404558661969405016268968351834125766163623174626580028406211552311229391244447707935262673906373297564809801392514805905422724829891191174153539868888954191092187380022527719566346807916957626500828211509266325980810559309000379960707181882956928693360933118468978653381875442752222615697712787287618511234998843744386819708202508515971528203452272655093137989389611459864572307671077321952725609228142780811440505603029879509413263148100420071723677835327133714754983748782327936193784055567375566072301869714323792413896757200296084100806526265761929902918318945708133429647262371225871946483145489805435185307115153196555615934127074396626856080861225821866205965474203018269795874561904642663127637601800539055428786171472961875164843048040191940101863120315724045901820998652818204212948846242480426600627720674872160246731144983597154094434152121840994954983211008847592827036667562900926014809431301959149911029793520465451320021712391778086181417665510086112648803587496234210949975391557082560509519164608634940488330850663228446557366729504141780186251675035210566348247057120599434674540472217603078132774195064301106629315831395983516374444314192972526186628938655634756453694677040026850768839028187843420835671270033273569696508252009235154095532188556512479976319238087383630783094750043292171516516170617663061950936035449707748628677802068179144793088101424237289323376163421784355071617443487019358798127671385326853530384346501864028513235557607467209358439772691816193086496942384941791440744504154004757822846331185762615199896951395824995882851783148421699542114882946361885009524617303787675047733864348203670395090903155918749265860579685523607867947087770804058147335657146946220513082851592209958683576276820173454770925290603116593566443079902768234591953067476046495286339545025865003606765060640408502350164741750107801493143282627165781234259855500366328192624781944991052143026112262054830886973444203844012585322987377760463404165348581577902548743762893541503113134308711404395000648889043828563802347279089723689559751404677030409555432815396532456564613617860788504466163813410196661016062139397999735777973197683429004925100626372520954613811601705039936854397162987656976161592482498223378473214804281799864354117111875385688186468943941465539600308476086747248282113807282944503448574421376817831139300913694350703471774145785575718057435850668014036788146970178075662320250067604112806672391192184657386630630468678126326888222335447557470499375209603010456854077665524918845904055812354433271259218870578469505405208325236153344127448451657473412188058592728312521272687308293589360426842718443055391816937683004779985077051236570821363600700103966278366867945313232669314831675674380922424801690174469398528197941134656139536610396927547245312004314570323143475357669960520855901948058390258195108505541271534431451949558175947636674280414618207980701770832973524625951034294248105908602099886834727097623130105971322355132326769639518264160324903172610980013086902357975514150067856434421488665659535920750408104803973305429861707688461875637392824560380349887073777318641314029914471402551269545981211085110783503351961594221523617207078936092285077654361115543968321654110018072290575120879721521444177686469211937128764731459237465289360216832566770834502292801135295802104354015007044672088424688311516398051778668638307663500572140227209205502090283147563398083416170445251524087812408324409944928061737133304223901556860202646069288180961709522998179437670367770668821076076268283310565265772237518511714013235727532971608970218275023126166044769093668723455370394256105292758768544722828017223936103296911663867388314147904082233196046275770465481026410115349990561745406092554244890633786026867263931993137669748371999564176593737968781364114185116849311426839785705526153977158762645634015048391583539151116774858158722497656536673012849395151821727113503685298210461329113328157708729669554384816710405383416600884894711580072086614907749393775952188354403317712738250848244491697875722983044964431510987586948830011835509295269739543788745130151479647909637353209869809130106319626229878910376674494731034365905025514250349484767076220535722155438271124562218943301029378300766871626488159481933556090942629051097639516627889025292076229253699091542578326054856876579816406727417478035774948405274162940756250627117039138537079589475242858687589028110718189084838711831648680900640741165662514294588879535352420888266668612442099750476072073539910516126614939291589159175174870659013921221019144539619238189290214358708709470843287331733843632813841025213193408935281355589054830436551081643918582792269063460426434325963897038623141389966127499493603982152046000609210022834987331992348516778172337737064908280868709177325161712136100822814319869985564665329431719627837583244563116070865747100523547398683584799915337692085825348870419496977470223803737079060986595719272436697984327457057903508635585902255388912165466220187604804038630691886809126708944003604355632631100193843203044597727342903681329076128398407520761143139633401089218024097272819224990738700517241023393519774281460082461767480332171849119396376507406319998740998674445877998151001378703092459745069344035752754806559068240349316161582917381375564396102242974754498651951424820897412247010318449668739659644918566632502757143100524285934320189830275575462203365414847703898345825720419997976215991792920331138670793007455145283576370074776811193525937004131213588983101543154736947398951261743619766290237765509961904021339070108834471054262242451577206218781771902310191337289505834448411449750123199785505421503132777316550062712895275581685418451399979083823457706512832289261438285451763059762516985548812304698912017402909037762682439725600436572058944810291383305603242622811124000410097430018450154401188369439636120872911257895827487317293894623885558520879787599835618913701354511736702574202459231963587087741375846950639554889890425165845158359348506683460627690961753329133796307853885824242477768344815472390395473711999384635895870379669279631872103805315260577624885349951167140154567316870816896890232384559860898892200326278805641969721074978506954426778042193931758523107812245356070113097138823473870906062326306316446141605163427347405367785058994111404572215603893235469833785254920206638908639502448509161503038967238822541163237126608690841846447487892584542325367612208601037858484647218231961577790618303761026285572399006688453817947551063330810239193657399459370322778768753946821237018829271420348735217502205611640018320708499205133276460016023054837367214043985277927534974204991068190405574040493369084435555414759435300462861449927391441807321934147603698711562889078686671395657191238104348881457998812667289740271148504977240338935020811094211447313850400006096343116843761754859731695566955588756380034424223042095426953142560248000104045549531343968755670921569392447457882546064592591278699378513928352906857203337342082586942932396011673189465130114324567243050887055071550483822904217986804607562832070017643442024393404588834738662381383023905725181655220876038269992308858948961647692729502694403590657762726598365489022033922241754889659155851481659888140719715035762179448260301384042049985544224793026339949180566058424296635047800504230625206934581803136251952607846570241964296173175962428299095369374172341300365168591923223039210214652080267551232565287903860845517727587175433282238102235877172988985983211079786250696002118823422362244574379074060978982464262399206921824591840278693329609269896505026306264964617821398851716593065029299584971916026170149867690780284542521575932690751626841933202023201816847487262149431436109497491295121038871267575436211261933534098708742750125889285138419088844073358079272629546826206502902965269613693248058768761607600831694834629150996389183432779631478351252123800372933805467618491228240520227359286982870740973329044413781692436227921037005528027670450554141612555004685427399748043823218565955220081051216174699959490631515568405096904911308110414924421596316749604572833460235373557704716011381076612145612581906927668385046988305999585030126012469165816667204674975604421154488714945064741303733509676418939312912109580353927474319977526625684575618140711130651609427162426558456484694118244216809279159534417914538265380412247280809148638178017325943418379791853393867505124815718100516784975900975108421021522981025425057879143085857103350153663677564024763067770258312765710556030991742405761069060496583469684562344584429630693848285257212266575015484649744590359897166405764616908764008491662376512834008142090635973105808786914059598332994562455778705630784625048685093529730103146605522082869949808910561478022120764593135550264196394804068817718761050374486996691470485679634268223312448246639612661554200401282729075230727462508963920784454495643581452428507157608178041350150079804173444279539493738734794600113103658971346913453450450448687299505171012601521115831589177287499958922019209261994594564521193182088498978319901350802134253985256512402825917840220205953145302154571143130161227862882120635227877678171392302220806807033338785125045644284006831426690601285127896371195046562532499272972671880844184705289335362509863411551398649454695461988796036646211103148539743519924613796290689389044388622925049097768742258749817933090856658591604988262139351723771075214063535364449898693873528606403468817731178616668326863440197703228916916332106119722999185422061264805986237159001747624892954763311132883384135747569272596199111547921169916973167205455707578311117026408811303194163577483936394858332974681440520102729601493889938800639718722248651860182927406988065837312903481861031597409460470184089112239148431235892122044961679635849162531432118541893546551192385686054923016813452584190494277130109356335894611425423515942814854065257712097577533386130090066161103771709872251078324308651211230906970384928510296591794721134837030470411360474705112123626232740600676158568050145452329889833607909084419591611521803299867827180133678691236813756542940345521640361776067970385174345325296163740568069122637318913415726006044946528772256006930089731058009308520132306745982221192070064798561716287681522170771086197539898247377476192352656265450605009483268765962197301900543212162116349891107794887940466317569579121509155452236838974404917832705306748577908604532494445932465128341463184994934393336163191082623616192539267591467986535887663767150613611806133826099701439722727596635387447183711649048834093807220108529982884078442270275094682973406682241867547966434712350324128588798930002209639793756638121221568201010253852791261121970890942041517888634655087126748901933127319944159398211630420612891677432801893957101855747615605473922561217946629281511592287684860468519226163710093962948171221877805596724519503409689182255063814553785583379805216813847411461628258488742779667420042653528699781014241812309810821928321288801855030297633009220042093302806954087875460336180884119858604971198566903037924812345332530823449368838253078390143992932773376552353243564833053929490205902631296980869441897110257296075779391215229577134430055352820538699030871670635040784424021298511928424596380342713863653150127498593223893340409864291396627372269552410790441928949926251297149052179182509299897294159748369169866152742331529641731882498468724993287440348065346166936440506384783241518271932099297457823611245490023592336689606457622974136888765186196969747616275498534857546617335722482389175952274609377108437635183944427305274383957917382550214935112598675985781978214677790738922692341646598257481073027392277155756715310058957922366930309731939989525416500493120829424494482530766532348586297784434355467524437896643515330192800505115191146086273840973618659103198310142323766345267984269520728560719412389422220386420998061163152317875863495270528558396520577316842149246757745517038348100945599056785948736378913142685632785650195766599085681111447441003372608517110264988081977390983013106145050495057314792601952421950284772981669957693101981117810356030491165853703814605903512814859042518644353555756354399793593186227324573072087529697765215521494225804632024890146178380369754124850981693919376265422425947926688653231875220082968853898710925039725497069696783578997963242950290062473139413096423757390790097434881549850440056503380610185106735025844687605646333556315170021723614298588474380600761542570731649111841578322934409824609094694310995774591303520698022730650275011289541240509756641141170543691903534783832435775349783376567319643323761857128803354960609098040031648110445803730522467284400383095572108888218742007891530316857421554595360269265780381833119280153419057856674916674367609990381767341238875504670369324545429188484902312802683175826156672685072839660771901490382734255290124216456814323606294973768318134771923439282310051935802187143352001531911404677905729717007988474195749995899128022141718138255497816910026031843548310559265551491430355590522964718079829778082759453322041869794214306388938881512612603074459060045402739358442752233390503319579304797117549925020268297601849575593395020053399184291952378402040349124682491842995562111934143821740221491445769505854845668185549104695567363032359897468965269380468937055045056661140100813006885775157526528013143962474662901673024907407603843337554122743914455744952926897508625427269964433482998103413106197568113116818517064111100006941087400186372432836327064358637763731888981404379501996833871527555336359795394861692220299323040766392526475912245402151833002972181111659593477367841796970488341978783172682282341039431134319402245823346521268483694792752770695391747303464953809898633447128133953299867422183612642850489051952874607984908994483195603731359424879836067711010955651224346828181784648981876607555847576805714818143120794514432472859638626293477862152294278666502336300898532736506150246692816856641258932952921195001428526812630120623901410900337397506109046948698271455576763687309967767874263468726632381617932936781752230757527269370785339630454706703635938399882953369263097190596511735286761834866101584570668900361063153645361638543872740829682533429251544314911662943872518051171673381895379552552801369072517372541420953246745468990389981090117729551027822659187551444631601702718741509983457284174479466387041587170377615086145062223362792487345398385460037403511349141294695217896412786453194242184630128430586360879635622346911885017659268082680140538239529928233768883812736113639325215328945293806351801328563677560622551839967942704208067475803179329363839013353410596463612562244107517568288219654360006018279225892536438301087346420211228672144048410564601316621803864637301502750803398258903999908123225550348001512554451264722429039519581574014356493551801588543147417711288424226872223466810391615472700070778110643007862875647322174588381508061689216203970324162314362673271202144598147000707445307665292816064168132416101840581791886518463801651838510320495789894357083464298799735552224673091400631708595309166867546311883751704318319372865387765649220227332562604782453601169382516705378467699352266424352702619922568512750266684229891787107267800003393137440632482629072960325884404084010285250905046217436653758731556013729267335175310613442449291766096656543766427921755327698808998856371045591078058704780445443681460333387976368364504562466203145582909270268139598906715711816037562055499804910300977340517932631314695175453682623429504773870312062210824083764584754241596552333113259493122888412414643005431011448508287576624856093224125936921182940231250114621040782032434736216460274133401629204122570962585506516431787282589719131219881483794652248896570798768219428504087395604821000031978431511556202796034808717634897841940840550929283854424300852889509775218145483922647294414697456068132119989304920025303032799012640696011495679666841832951522463225244967582123176075385509723360754370269028570861451818032403618843988351256248318679693912275665256022665754872262211066032168886339247373526713359095788550776918644382120672184926220540234870827812794359387350289147628781530011253640781295559925032535525592844537089340329954968270009557536649977917421786327375782704499710235721638383343585221587358526769093644365691394753101188968448181805541907024243464887628485481697794469616439025673193893933495424192853898337287526496025921048473326245643517839449685623045041315200110278835392513291581153603960210195846342928675179734203652772036235190942164298242971403846638300227001825478871463675223637256641899029862526081033978381271168795805627046317397632528003240688590200226079474223724933028803681409782702115192612540931884674421642010600509431072814911252476649064465068258107240683895441574108223686098516191161228796580436885788981193700590496516031014372783051149936844728789081557214655401291988347623546856639753414463124829107671114079126066822898111417166673530624508965940098578543898577180578695111017258911812007071614437426375116062805015494816648494397190104033116504169097071922613585292939888473022594273360869556974262126419192113624545393067337726093552204763096796625039905595952706542158073230573184214997423451987936009088618983461940107889441782840550814251185451517603917766480459401995039922299923123526102985574447748649396209977703013357241126598404528988552277465773414680555925602899211505263297802377435586670464605059065183989703002677281422945313352432221828128616243749542082805456083947892456778642756859453109692994337650461576066524907406760991066164591816901656693791793161374476971919918190739857981077682584646002126689579944669522867497995931379627431335309737828860147113391744876163567049386004557450520685730865622806890307914496447852617481271071651951247488681866913379726203720956250972166494129516497923325359236352796826129298961034244145453659569576096444648983579176593247724863525907014073988845450510344788883566423534350401125387765234556954751132419815004088140655857728903574282299059114745064015875060165198319145910435955236073748475816011087257221347912795010369223556506378882127782283122520720715007974690909413945828215225425278243064487337200939196859032659772111879504377061309824123394512851516798281585079194467682049156482198560232882893719393917042072394491000457444708792781616223002398007165891321580148332387161065003317375283384585721212726622507420223232492392839107226914296042761001665532910060005841112234186864219704793042587957877088353641864632401576931097315177112848012586197872013356687312889249616758919085034150437021102770542439047416401938337855390501470796976020095923801677672499453143783038554097460578941203965048233992156492300107247599027872327348990216132012244007234406114063636246417893395204115796097072020212881591107107022336997684197473597487921811024474246571607877769106369165812810373946521697854997124314684807733722779143386356723200253165420003593070223869557686253262352555631654004653912298294575141997296438807941478008545475879344062671788728535439638805340765365712135715812220885747324904109833127793819974853302592183359610955035626649531929895161329285701097520087101271462166430743613063081929224523259118932687653726225666073022660781020789956793530730939600165720133349994766331191102393004714444137390956605351191810125876936840209929543671675808075832425285730803260852546021400698340927129504512522950229562533836402184771427227604072958454312772737793300158578705793958250753321041711132268779215278801383984126287256740508562394900113771793342224240160071052138502860990100891477369359706638892860538617691523873737792195597131738526856906972183460586871529335050085359228808136000295446794591168325040107960363250703557050643517179779442689927069582953175151155888645188779773036234025125216542920248563816467585584399532806660075790643560599342952607966303082971292818549746412683649296177728470189856443382335141538648153158069123358326463844041116401860557261261809883839293170797348956729893181422289785928770762506095388693789583488001814579330329427131548873214535661918971278912839482387256452916481198842901559766495661601355408690227146185287412923999414737594116229651691429271725191830583245429844427068196088738246545989762717553674392301073081643353113657143907562716567181483065751088832936771667685238080512054954519589795649891654683308440964515624488897448552117183421760681796251404432088797679906991437944604726488220494093853066671077096041147615454178169590531199510058947150885781563708315341263600239786946139088655181215271264881075358609182669414266429790547574579962642378047397209047170513712145109980301026622900823422879591238235879886237581323853365390638895790691957768984515289624376756816656064429599472760762936648826240509255236761687851401473567216297689844752637345472865447610450448886914348549072136811140662116885362194525912480699127582808404261898798162812591775452836785751495821325032793160645864273150509671152043988525490421468075055767220616715749949806856658581236295778931132743982592307197653352000527057346555405937243578470697478542126887689000153122704078149674483621735617589575560360715429357001348747272764752451970035818799670339072851502571103231987853802220619843813738201777969929123495412896260303353637239937515672415103515329949813885122188317493759895079703003076039101406545777910211819082124987868243820556734028110774335642851370404735106067686166052077957640676491125551805394745281582260690243801856298400550804052623790912279480513911923130318487585533171281469464667309552720832630895569180434631071387678120905682126671482690209984107737247387339626513707253007158841817688887738113547311172832602312988169103520713371580560077418150029410339334122127665497485896696334358823244288443294359758458680408130771333729367881776755884179349318899565793175575593322983243082648048095318145755517933801111304248729459664397518119420830140181668784082440319571646905778796751092789045367147181439411291231507866216720272974229454225387934560220690114041111966427017650496951994148413708027976171635045732755609430952029319713762375259491990344246884635453516673733733632902378981285005088811359791576260157212944770580890901935335500918647141060159995535614276653680345155054863498350046586818703724417182654259678511467938616792505324566152823741860334225657208655147022643106612507101198054648959623062076701319245755079440210026237526542846069966305245889131208353968892657174117745978190951202522303376037121081519035096822485261251605923402896440698145789371484148540446256367530647998998825435995900772260333189494476506712369695874397519984183279846506883489268189193813211378170877354861612928094291723810945568933583458864667746911634680822425973587952973847425208364413589939540881583531544666202195670072550723906053909647764711872457498339581263799076563003331625143954076125488959831577882937453396827476220078597704323155572900576763150571025911589904366571441383232733478530637022117829575218428559819497560145475710009685916669823259606846052103116239192169425447581851975751333352511737606731510209840008912913836649866194925038649666757928891032081877567481606356045529283561131517896781925163016710976755751616584927340806276410186787250245149995356954332149554773663652695880729137138824694812329767925438358009179753056201343023741636310226169432273333224941281842170429687450337972762714423259778695657456719926360702623929755286159676646832120295744729602393304922540641537404310063699725978631365204852392589221195862075488588693607463650577067058339096012014939169461759105598599017899095593463416890649078883595264149338970839318753761405338725929222184089309168807368664763702886823068136201623082604011535006251315648252684058063147146892731920248520103563709229170755655200820759937751502920104329518369011238601211844300306124417838090530411905075613154396179270270194257977249773436705831173915264038760824468907297720919838148979955221348300650831261643375225162266914197218179022923076933522901269340320949550732652085262268214295792605404275489461216316843591415660395360276333398425642382577028179716258276983189488129859534048341153266301200288302216788490110313258837553163791676696500515902211441298701946928482796539577395449786498815339310554177276287005648094913462574446412307052393786822750600006557789502064912765235050906280773506002638190614900793311693880482238656546935174383923058180396123097753988371403441602121919927204376989169820204423954560489001080216623574471742714157273911643864140719910677688783051933836344339471857750940361027376147957374585801254990259670098858988868191421409525802492103659604115388001251189903046190661670035197121320959573305506618632727935958777577855225835293055265339165140617327831456181181859823665602328098844645214651767988797868064155405085861034730652873997642821315551222540818961864859487710357468973179238800746979121702255406002843507005341407185977706156721804261080662316248817186071025445737565039214610869320050745744253057652599165827083992385740456862245692548276604674154260922212439997861165550654161171767080085710164500324696578759181157762398423711166385119186390062351199439843072434954689956351232503119152063871901865591472673971345546828600492750867289668517344174806418317638749420308646393555584097260868913017441887895111258830041125761905642842737793926983905172141629075917888017257499609658577951186646822274668969553221253422371403967007302513110416339204926524049070216329130403149269639688386374096629788482557458561560403378599561684738322931642992959644847540826259935701510234141378838168193253358573694910237139049696915744697507102942503743769109390749864811626568676751309787578421607640216306913129722150573117121326463609844137730684505838807460861522039822044261976986424281087354936600387148403468661102415562225935187879022881276399657885352801134318355721967809130429992500178887208045566037363799332687640051676587992494411167317431995162113353287796054208733300019034901851714959457280928541986510076986031969890960307588157643823254808831954520843218004781261473869257046999260005884422008174977249046202388363238430011537458947677712194910298366461502980544570903171920532072413654512532733390216273741862439419004705222767174985797308446058766920291988428692737057346948256554118809296145336588674624876236641609206261368897136170389490917582407200331544339306506148320863006533528184704269094426639890474013922702718220350550972043226524696015997370800566878231701716133887179566481259532168784414154523571650121642003369689127936514658373256958477506864509656909410854042345029599673516749881703883283688047852391628476549448729373929725918170014746341652513134310402208391073356538349077581523007355602014994802529210643689831641653153624804440444469302929639201322487961310353001406257625021426788422856988442745720522922571397189900669271294147604332146472520286452749507599258405786103451446561320605626342955634920148040755343630885953793236895744852008493427196230343657097155441201588675734424559363390829295964451570934111301017360089376582732559768655229710971142305133884536121951740469540369607549052224113889921808357219880018082735274187966460280650442629882941250244137127583413715666269934841468732166095283243561150457793523401140611150116235130488049332938768753887146313239405311083175971777984706023520792505393498709067776028978919347145569702054752894877368388014800488397635292204112346789234933453891776650683578936604413386749075327297166526556727937381253834688654575999721706979578661570384222692427118271295512569540682493235676962781235205353238699988621414545211240264930861976254874298077533513441610638653791989043446885333174099231519243043519960396957886412880610737041208337909320089962527539344673957376099308558928838831918936554491620304742677082653123243164535266856969572525678228008184777950892776427868150372928721392770074509087855494060447569337272652316263529832411869398478469281003801738116820563968707226618734064276844827193120173602838688629272402006772899126745973972969872864517363407270934665011555890636127098133092801424825381454280124528958723823154497155408556468363145502079043750907618081129150662458415748914774453592861006977324741167553341882389112789457685887016810373034090270451900385514737327582705483084672185889342220309936024906560345584803877855734827310225558117549859722549720170165214060256162717340710188240222933160390898337336636723712141797527296295733902634852690512682088761464130679689603513527754452974811496557769959056940184147268585326151776336352508195755750568407309301693841329231007769231000275012589749027928419376335093703053627018012380376145452836736427823685339488852629021892380452897516943204090948326207691965872521704497791740761650674936273034493728342912676477443405598568337395237934387837410275209233383379763963087304313377289181680344349933808757013453647587473125759573775220260055608943978974134994960026677717474687859445607291435779215597802827209555097451835411684751298786730848288911580811817717133403588659219947143847522742230420499262213633738647825122380737807317554384871979166685511526094452948428923103339895638965653252547359646016436227692883885088107812736610810955012172803907361162541611147730246538923961191866037261527867583688930880585068266092551052439338666955286136216848591632689171494670727899789334738982066232584692036947394044119858896026488419689464159757262387635879321574675356042799707791034315596336893527434551046465797413210759257188665770180472766255852986194754988557708111555256811231097992826750481548123524665638874383857140839733852282916819263959937800915467092564533891945768610759808949212729267691780169041089669666303106362277488163753224971781071592363046260183076049496057199282973155697076378443018603963091828791863530838669234742739417041369544230191232453490254013305376997187049675773374872592605170850392522496589765990933726145372044907188750172583767714494969558751850696805870598682096950720562415931556594619822132274040206757969849956955533831352117324631442174009193739721975996675101452130022143476181095444824224466788610805350162654872004830979391021949525563264313270315124924793417757402267530746501675685276931887171353765686815938809068437349082136575357374697460438841762953820108149704744110969663899849301783824149516925214901127266481776117914866788048314985497998151173367119152875635697728671125185660180254971719694301684186203546359509770475339913342964606156399964753279447936446345972642061228299506724485515550079675432367649218759928436602633078027770782784822583255073136932887120989311816165557168166146854234878920504593070380943583825622346737317169145457857929011091544945647198781397579081435807440508097485063636866524789543195188446771276540483301363344375299307146262506687239306865425006040365715069009975029573081065690298362697151518472389079448106601230487647234374104825498399544910968314549893196702622071170718824331832065594567838418443917076493613104083211461711449843064045869687411928300483463750505444400622817430943924156694273844582536626682179369989590573119260925437987225901612561746517157308637437989569649939506235181220815813752420602736839058969031476719229600299265710195263643910903475424237755373919726507505445580049672685891138440346768982164692243645880569106927578532008372762334121099883106065164193055490461411884120818570557027945228741960535018288735943085534339506185544954282943289067765643535195984064272109716082067785570469690440992436772449160365634609263766513030800758391504322195048997484962436607777312720750654821799016736504566247104592559452971657735061559141628474571023403528017386917647801998246543495733806979874556574774053970853262430480145125890170339040600758872092103141612082629237502369784523118117432773491835791198141746731885100716948620816480087187727718051993002142207276174180772007546010885346664446397258398371185229375562714648326073059883123848683303816773078317058234389207532709428960986626930034783896191392918362003025828277521707145856804058900691960415021151690788588332210802222359575594548838607408821885335681053449426604860350508772983964948809696983304841126869559648801422296136484695960838831280327189506368011384562945539975401643618565529022553558504711730888538226686396541987859628301363651978612627268789245586510548427221047530970890956564342528798835604728063448565530363505639516947459074688798448710805430487582404419383399317429349677719726413786012516722658200751329157127036204033260975945297077938528751998390475454049047983202283378033227830128431012694953718915925245232430134345517899210714011216221831978780442704795173084938335899209547131306307710676838808346438703475593121026460297788264552168350154317433145526822342484448264667000647550792244689483460915964974023901365728117802112013354984259268680659971235265475003241306631322517454541362360468411407347273750647920480185672140964344657816411166577701627344337213957236301999482374928409096066067140476223038007132486333208549269001201444882729785711420739332284200000657543969850714520765121070510855752195739187814951288502582465343664703876912405670372818760291719296872251599720856882978903571772281848424347770789815193359170174798936462527006510317477873269197638001423202164351067315667137191103409234831404882994382095849370884779710476490575402477351323055621759514220048519725623662597570444835969228393051106230497284543270723013228402304315289665040255442835574419280834579610803366153487602305425007473747305172605830362978505856097807542348552185492927426074865165703269881642023295831528317420558975329883407697728868376838714833364239277803044498209087738805010656506422911092873676880988046093556143399203574302682243362545274806092030205478286525216440002133103360089004077100287680850878568626242659886678695181898153848204739720432370407959326935904352066431835449152017271802408086787568465225811341915017183154274461615639422737618308998830949971733720400631716201651617642281052348272674697561531085295283317922158961242561262953374723962300507186513930363667704654806417178850266980522054669756684953837804629169799200680034084864873536864729566744643454057035991796643204339582242342188289698784031178378098914992128807537746315225343370507691508572108789816930780751945166216831059738885215382524072669316247311058478132898889983691316988321543428322366317409005036251444252803005374858304784595125899842110444862525143795306814191274385741220494519862366365842321787144343610281767395248996984278210020312947323201854057346495570671438732843797069358822118365007871022821682839140089347803712421548612057436425146243589820172231441886529935419860409367365817224021625006476456910636710597470943138720263911026638537740993153422667081761236892121176525284374497859009034786185891770889564727000151417562558475037890915196250896948795375958206431724007006546711211617183220810485289925235614185974975287234272118125079559116885542097033802697786474850265212163860102627547922109900849671570486071346161864062955683065018531145779883760511286895911657773622718720275905644747759357952394803834326119976345261501775146810059050102334117997609690973704055780033123975284425112339043601690202478347866702882531566978050849985148624972096226251193227047316983374694526859357831194747550551415010325535258842363863310608600686857427304115677150547220626820440953789772174821978077311930879734972120570629547360808672078944424080200069950336852741568187410283838043085970440776717231850831878448273002481102754925982046456036271415658583821358090231457516636631301170286835658245171684659720139984025679996463542911013382607038302558786821765996338499909563922641811682239595992521031734965851752946779302601654244217769509775160083183237401235525246427454952925164571342343938917461517199555528653644595793830937371564932124748965977247227531830734972340297696620598107583661376101457755178755970537624872955734262624610141375899058780828631951837486870745088330209442209733467706897364432579308065323272296800840590673620589726325223070896544534849575790454300292769803455357948440648532974376353133854395227397360325827764637243204690397259900211513003310447411556331076284379838312632589342888693695775378890210373141581515141894020908625854683462773640504969965680808319954080165505795483876616846998386383786492011878532135316968739443117773797885310634805163356319201401162666788897587425304558206596985233904015895532206304979011046839204118273508295545314726114585962380751097271738000578846843298510113640253025053770832915489243263122248520814559042066473441750260031823663723320212420581897109294621216465661184743742727775424749290067506298306075533814673369515630504315871884861342403092356885224179077365771038796298810261031691224200979425711403724377647517531915005409819009126738817890000182019166716816836588451388507585949813104381998051131211993240810409708093884238559069757374766565150830196023499649899986681041133057994244837393830168222374096895937105516313753163268162483423280491056440757328166917064699332784604146934402674871824390836605177934036191643052605180034265992828450875329738799271154253265808511959950135439228484005364069149204307235550093966105671769893741708646565377565996123135799705814928301359320451810961141219068093889032721196588495524671962319327814998312882960749057499449165436159719656250748830318915758124910103872388972840597476799440665178963272061710657844767932777039325080632037446077626979395151687149340328977270575277321964175513975551209074831086140678408973617239666939541196479047605302595248530054122442791114400899380403702078011186721508043372923697051794285607881695916706849247665641050356187472970057368496430891474706665701454442331605418329601955767447520281683142816528148285734421604859170022134099408346212913930786668974347513582106542244900993773618360563356681002922591919187242916595818498860427859482671134985091847604220607977032596603767221174011743246266377997067995362884467307536703087127898433608494409931640590251562930843628791661959656005178495924198011101425646780911802487838404263096872518036655416735347651847961770180823893597550307047190905942128821242554737955065039329991759819307735282176784771490231315096804737133474720878426518906239516624854257565110173058620579455398557519364665112536122704758887586884818567617057643250909228201133939217570197171235914922867556412089300776412639138572711678586742058544816272342932108058303597221551134846205202550511920467828195023606023200928507593186166451803631161059086976085631458903405529951202328757692565853703762941298363035622682224411880659960307200057225884230149723665135885325507700665174368327865605873675269165631228736847731526876169254393846736530559572111840606367932061267833333003453089996211734086744083379556968108556499771332054588895764598549627551102679628821154955989736101213535350007366142393661454088956232226483303165947543802419079222752257676731075818859345372052225739162175796287915031788537648176272100481562061642746494920113808808761565397682084649331753434046208054449504507600372468280787196251214900864022423457685011907035079381888388737942001656737044084095614878499573464071730621318127946658713770916525857768941886967925442382722716378452680824624633947557360480183246806124244368984653153244926529146896860178191878085019550641788802327171769634396984317283491833510467246001868876259130761039583314471185152100821882351904104093953539176042755978064972789146626327120901033579319577428539899728451815690023343317229536311335106281815393718344765013165135368129852789714842818521793806225353210310248238151916433532466017793544525432704493440459399731912330770205633262252620926725808762311805042751689378579057022767975901570785337589292299621329637054751022181773945691376608106533269329968526480961324978859038045588357748122383820668596561064057166876680594112348451128335353069989667710045139859885313694989286753633331037207242683117748370248351276026678853406054328564959341721214151374462890977688590117630952054187629433480842988695352060334459385223359908494715100817284498174364576036884001396943985987368807731413997412237688345492723478873399869046860437225805858776602462495284433263540419459826377354375217508439998122518221283539846268724989879362113560664617453419545447683138519705273513562856953525379951526893760378855717878957885971594246866661707414407965639033065116562528807943549397315579131277167838812573059273934818062115948487972006798414633209672035781422128284769570686412039318132923176825485941695073052031794723724852783183844585174725448988174438195016124280643944056785333185913001261195802704492105750078421679642514464690923654538946232749349453342783473062603083151238450939497741237841194916029944159941540163614193163516555733033209736657070872937941054015769275975465225975784976106254973578080409099492418997626356582469636312879422481776339457623717285159948492531740904680611386817342028365552317944076493124804778055323216838786980575768601147144926962152541056925341639719770803361471570535211887525185867396847069086147949194547597121077946702726667698312908613051449445275528639522558913884292005600653627884289857352215592838624063109216508566477447471105350116114809977871752482982036654594646956920995007633212925311530692506489181271422687784168532819360254269709012748182814783244708785254252259201753421868281513611392639329221693633345837089070853428383877392806038644724931067480799354606401884942205651143288512772574230878724748483285962562560316603390413483450185532712076388884473805320312509159386455010362025857939406336518133019434838912824594236397991283287788676822313846612664864790200861568286125375427140147817562888893230441981534642670106799582816865921916809114012532364335457924612805648660897804811108494890893238731452933853166842177108226530041402734577273239536537338750175027701045034918175811496008763815733919995411244863317482362464090655296949628179711843864945191063936832664916418017713659914272630474586370372105335273118228480938426697515607219679790381495011146178221804290404993009750120310626320207752672417114437444983621075514743352562968178396490388013335420245105433959428954277421330986374882764296636864192234696721054064619378180276819100721615187757394899580283900505275481964203067484473759080229544684206999317636966808737376541846736439787327844977281031110917415499875896350763442727711471814639540473246204605861764071354613760674586790222038289519321216483021355598731146803563430922099783714115393251079914194471755927476372305095368921184355614066637313724868005040136288790713086449779826130474937181944235887316900986980387187777660706999175288355702978158378122156601151695740791249721981609681420859647837854727089387235157036748886761390100880667555863950050214098475671009176299616130957712135656452731107102945013301208078150651970885167130354562028379427604625277691294830017102360593960003937572538044909085035235025628105994140395167902044807848824084682014475421872221133281206423770886872213216544459740759233094251107609161279613260259900676579284562135592792042288560345387018370232253137565844016641154132400971570022880083122152704146830510660331170395204528973630680636171575584583814170454186666034996788725795270444315379404355309774321849273517184696656255036092413540221456905632149783456685576588085437246984897910531769443964773890937022271039914842264895191871999101352607695234209274168239105150773018584876467686906741112697664901119810647365517405759827511956334236741921426968249054684535494889321599507669664117715349355840929781643109437442363516449871148243258269439746140699351796098073619181820898826500618286021047917279682748502429848575249657194162143651361336624953419769285992712241607193023493403721535454177836577544151803274990344428121845742041948669826896485264838913595995611704621085199520736906466843427769140553351839217253201690619205869083029735364585430131647599947557779947530064555386883012938329552200692043785494033947212779695177429782845642997197185261886653487299678104302795713004212612877140546962469865984318050544127364104148405833447276269560128262414296054770520093123254135888294923623859950658679849504840547704858748089718799164537138602660117861437637515839905239885454905421632649453924754612465733578593798519071451325375261792603093764266605948887396816597283366749430664593046914217629693136280488838778986301602855612642432698942828546677112955128897070735579197799527418239743198250975769762077610584506098373330323326937587173507136206311460117607252847899217622925388305300940879610085866284185281779488347886818307987279148564278935446117447784316921552159247423331915067395940893768176680395933109002262355648223913481138459609607428348128243636257837768150101885400607664701310711304987224569107926730244124289540408847136170725396976227286851431724315425332162394146112708530996039354966596760304676623348758199244035899569350284826619649360542174298644527174306884623845883602863226099174993640266444812232498356963124178250149851519061050760255403744538091275308460441806724859971241665331354710350225552949597932683710842108213420440827407690321614057652271075892480915688606317702507124726520035198613486299946455583059923809134133690526620450010127639564031210867080114079736455319347726868725913446526712751409133745673679508710674138578818778414357376286062408758174469072205213040540341974889581970195113663994773461025597886528324567235657032302828203803539356114201988683974406431860017730057891358020204931109433591206368317391174539227913543536852203384553542037299881461225277762101031423123012171821061564240774555271370719477652866988094717319076894037582638917383899461332971746382291891866807905701512289385143595209005744947476712468244895862751795613181660460061036790285512522829572816884295221611272812790171677561084315573508699208506604751231915256249553798642176586135287866164197971520136797188154713447539912164373212381269206863244741866671898096343783918790816741154875133863121202782070838188990536106718068752042734949236471471532168576099081632599587570703729882476895580656816500526843123009013920308483210878755318262283105797070770149271038066056956391950899236780886513551788255519912869530955084006485040715731466609156038135146973924082911949321801129604045756709392128040397703293394700815473798473739034564806292558923896445247780029982073245609782503303599419216971798596192906690320502341870590104118201006316201405053267182869899755167794776039988552584666322284481968003190453404177494139536088345466181700091889207031372844332401024072898678229979192700114916372177462989931758387090728519953781466360710220372319107722401551751611132912306230342268170050567176760518614188894882202842085868705550986387477074571016990445220982924004119294913012116967975877870842679985331538176579002463778784833201439865008507830488029262759968155629218574474315047101190200026003067512708181943267690993619564275439264275098530180579256060924761747315143424348830255470617582789186336295923081685362312892768436923257533036951167211649421848595926996561185706283893920061711949006418973485454666679378333130255912975834593194899041245894584783943901596784898963385694910353591396104607225464314014787468714570822365977819637499995421181339491218984831968328004122778256046333621091870237829453513658638070370230656335399499950099582754814727373609642989716939809970983819495316142347291255770021102701950984765495157966149147714755050140044245333304006970557603231973656600716110622719958420046050109303936046966238664118984955303501337718737867115439355618961384129551890380200498709017509917448746927296322916691192998703682997012401908104128386605217481132638434803179585665903287659703128035887878566279785147943514186433042947108051185837979230551398044287863103406295514257096278674009578725297077794052507310675872192641919153780571234376974999762094614599391010345377993704954472770212255189328912197766258776557423287589195319510052613834985020584533104059819324320038136960798233957101024894457917711870951591308654952433822494146556148526785055981781670905109661101141227926516147445452579753856740479951908342240556060597902118056858145032395075721555858999286464613019889077435766104138408106927990826864996970583795602733015382180318937839288611598563743694528619370367832840797576599635683486681652282901134399798737459996155619179357163195940550416734305053465890374759777059040560160162807884994653918641670195376062417057065188352595084949934991973478086425666335330188940987188183190760915729348930498468014519403211460732350786641076914049169490235642373716015008854183440509619139164125328214176010424771147807407333515868753036238902904259050150832424587036234349277191138503599813912797503377272851194249970466567298747052975124179845736388066423133013661900565092520202964778722878823280328644492688776096474383510775969146943661624679179051533702376162078573143890422884231821990421278454255873850867273417844826511624968058574740213805163280341615317704066526224065947877938833040565265588310926491979558258538683528878930132829289784171882161726441206743076367070256067240031623375008644242980773086494522737114870411165914003393502911706002207372675215496055271592255348869098882817322188061451381353252858598022134383064734846504561717985451758495373581898582402865176870259918623858772520635729719004783843892169915518801653190315029086365538487574804497056630387665982597576630654445071426465363930429498828521008626233771542535538458354647996458997568286026193556847096272772587019989536480347732812317050696806726330375790709960547596483415016039974200199028049905794892284850584099794286937059883953948776619870065158205720431749034426004495703523367119986833447996411177763500867023990838682086782965948132852417861462543138209386685200061416806525187996092580440287927773855547537657325414371056160736834951493104410666729727173930721470649287501314146252788693007079962397604240331202088718448155431851781596146455889474212014668605756719971009251782227805413861333689898359527630960624399526535713444762075694663318551810607951673597731121622035327872848096091016918808231490188338105086336648118740345982488891988916150124945256319897295878279458619705561709132252908549881601510309425136565312287302257791547358117083881678817191221475825978390022855459713731988959457852702003407946145453676109379920195932091399467941184165099946618763429164028430390497383401988593509805151120494121044438393898297435884172588112206766338898864911289535710796086960771946154541442679861421051427266399240464304014336036508713456311518365569078838508339740408580315059066381271556712446445003077346188002076186109817942600528877358562079381245601345668563093233457295238632036563986422571694033464592025278034973986643350276941978459338625656149900195364824376278420418267490001382099184156883623727932454613705859050283405965231319670404064178001854033756610377252483009429107379308115584893907672639359956511817951734034416167625257334715791094873020861802105246950464429657727963534900865590209701900734834693187671170249520962952177793614965044592901737587832441326898078521711342365907247994455372747977149012330272027365605346253280478611211871163680690239828157890634337261552478738004437910336954119277542914941666160821109843418032858143366814909593138223841137803633446094537284883632191826790774924957430139958869113706379865479708044445730990769402976822991117612840353276167304689406548911329189097508704105038343333521159794586180523126428910824734467340929466170855676579865330658202074728294745280628586256313325065056578903813723583762376982943731984300967180990779228859874859275983509872760272141772730281906417876272019622812132352895504547073876304995746979048983774318574786270226037086001636482849169853040113895092623943178798540934153527163882899502167904891421613224432031757406519134987364508929936276303636541902102579681445468685030847258191205064234555070819722339380830021300469129789275179658750504688959349002086194818549852316056186710811793777118178871713478212326724827900775418092438889761796479194111913230790386022778930422440916603917399846551649477760582696332266899973039102929321185250665640951563705482141049765144763311551873561927858692441737781002317822382243360217470760673066793813581809332401789670843624301391745276398213786842033812847642606427137203452423428011980267267426237711909831873135935419837773391166381802301629889443704187890802177993190373190661923729674927291269707592272514148668105340301418372384957813115544725858471231986629125642629815230017487509455055054627562949398609754630610960563677091116053135099085939132651394925448992433747294883192358122420843671920984040222707111865284271419550230506481833177558554677199080060114422392437327599501409352409815366822960230702941324066543073085087046736090053938906927316710453017224100028937808295954544045387461385823714143067263141450050069205264995707532925023505800023909698974028191270192426639425214513646747553290047952507654823670416681864070535097606423698153552767191664976793242826950211236935252453747927039917194232426453012946691905211611784414298314916854006439979403013135969765874942793572049185859811644258941389053534968125067082855521221700746016890160948743428267355065561052809833131475331272865569825204455181875206575842479328162037133646869534345720578197177654297598644163776571970173816238154901135732314245722311597086983160163322586929524678266968503470681950613218957345139434296854809207204706421206535754437396351991050666150403223275353251900316592854866992748072817745520461700641107883077729446867330747410439158309134806189403774009420739120370766561721590614074217525968872597112362298151203163213305794715584174800458198800248309141446023878834692887718069718216651296407047814274832884809895309338822568232553414636229468176389424462074054148850713185569935599892288690677681350027074323999420839175729250698129406080879406418141733619917900850980339636064660222959173731799957289729285219951420710366187566143037320353162226802733234181527157700131540452594891265953999865814536357189836875630352137522709365432996737796084305577782473450381716836611617272344353704644975252392039688137755116765945507443690990706824963495712676907436801505827081925221780158892601845519797295826598723880415766141648463804439729696487497230874733719712148411814643315030527015202373824744972441460448995831868917963443902134870631490022055787970312219278125061856341361978534874292195181488729597884492381390429361382614306137300375283152409942547760063271600490410607890094136885239780919900714636419696860697624176629353658109049569914650636788222661186883643328054594717660483798608547114694742630781861474846768488979718003879824160327196826978326647483592255415377766245992467015626421671539767014574325319045548406018798374289444683124026227039818902444588068256493970285379705148439583079126998955494655144768575393349573088641732300558790117831576824395511049338057300505541094350038635572741612969643506257537207300734641494798440298484329278764182602186045578003023889510281543477840625150477884114816805623116836324134160970328506205195797957683290469775668935694064460094265192627127077631988118112641139134107472202463993066962501183872306381479279450743123716172144562613456149579093676785919016688422028725197257814288545772139780134106456607743670495685042721381288812972451980335707811425810727973188373269620781555253429960713692984132870967579125414267048580221916295769944197673665509929647943325127403327038398872302563799790494830500773465473742430352775699142871634724950998520044526647171386539516178770449854237631845612893235748763415833533837654088321033283139549637585346014252190778189826766602000515414127503189317386475384583346449736925042135355715292769157978622728053414817146267794459044250816493462486187828056925793028297877844241817107172542109748157522110231433970908875900704133888898020134145803837336354541246909011989055163521595074062986350941875423385363062501772989135115768658567732257330934554073750129259462237390747897005794704283816596275331666873017659403183232507596320298709810836403889442696615496294821387699996844863198660105957813794114987117942001921031786111110450468582429639887804327114229450315033244013378691556841437238528642926470715332174098793892402443881694160139265871692440346011951277257722138146670712222663089924542820740257632776609631278152026158112093614581107717063383019956050690082963151970526595141740975741951284330051266825817598977069873906565572213993556657036338901243218549238464694280201651386950418989396410035157380790217459128516927404328740646420167290380226324805398540642846499685207988743303296389178725149958929461012947487529233327438188977387330083579437428383067168060794314801754234954576849141025339408332831813706238172172836673011634224490431368210856082591961264466398373174123684048488716601982772187439889683385201718737627085465312842516005477463620896469141459185706736813970366843375404543973444501007453449388280914642280231461205333818506969974206974346067710238014425311059466997256672098100048969541734647785584405822401338221007252832132770309972395235800517850395107066857396231356771912402051931730638382351186716212330191236187284073834852503091892272445943694462606806921074853526737524674033102646762540709823828204103029383237946594406854510673474343371174070790443784093018982802341607555219269086244040499651656042822350393855231287386717294681006905979329281589547605598393617526969545538351605147008581070578169204159451468946216850309574045562217953979727705511242798099743822279831220531329756553334155370478952641507313810530224418637115699795607185459614153202650450074671764728914970868292850780368878122169464627397587595807991998562457393691445826735026874194548238281598464222355457503449741210776489456454317174666211827463813637479532523809051537396323282514990911891948160099550600754161318605301912179084857876065534725815993706578674340979761624752871405997991956438752943359603587428390460028968814062050639644342182355531602263396707454377496750463635230191466127159878467435759427602025309792497058048432834761479969460730567383659216449615150286880943109466456170291254284721616826839018739658619129670845336390928170989148837844285189719256150369549293037701071509203366933910091336506903271379733979229868431201532483924387569801025340255849472374697759015469707984959419166072858687493442538066851873570489532181603710040478682541136653525619740307868373744506901687352787271727856353313691221411884984000846987342581009027455498477301448625177097644001912203768210352367865582481884561471700170433697541015019023934122895398026807319527949321708183446483636816735879665125878400156511541040739615528320776210718449926469249071378740934652008787154840419322443586599416701100650794851308507780605418095406548575577470372302460357394844414373162152290190442833285473385181197481086102658935056202184850902393754324908620672892058842758695502653346742876353578444508588389485518889018166357222702287842441168503032933444459758871065497980521266957243518544158397329265402726086236786517173191177900590221383455266477009455654663377325948924014609709894386800948829602703279203082630251550834666777761219115142854266355509314813371973822350326883059975093527445737752813409734403459932028332531073220404880392687347587661224425413718977626523347721242625620974192081074833839346915583983222349778909724428251165732610577715301597564944159865981875350103965038795385194221101584041632849859638833813971383750115529851953944318140112077173219924582151971057287443741325908366475512006170674885496856494134158979303058116774276390265897901615221947443846974300496287585719797456201298733779544881456725741770630392966477919822263423551299329467157223520702280237303193313845342639899777929273748686671111429477383888227067838791679220796360306749600660017085375240991329987091191492544483289709084952467189166650917594742886445758643403914849786971781836945603746998642102441677288439801535913764128432275684288089640174183858506845942167130270863103438002589530361444285619648633964894599394358445265324509616400849030414876643147914438445981047393555153756409982502634671845453485422696659855121708681087211125898959712646974223132182052030185092130179088213684580407050628584749494460431515601783007369341640323657404494795687734954712567032470686819832640826434720973662446578825145824138187802874602168826996987186027021556162083677655905981170990793183395209455487170937244705229792364615618570566734817578522346408045191773215705352199701267480059925957355941895675013273515148312543985711147681537830940006817130125460996861822389714500332590869745392851717844687020102323335878212092706702461680018544780868955492739401410748096577353537019790023293596283279776708838294097284811741849269958675488116214816412434024196367572043131791793416420755937450475490891014286648268517274404692246104081880865812318096200560293401360965398462513214825345370582339867138865515793490724297192982299509554456893551430842214491571788573231278208209869726150460757844120550144093100346724161197958173700045894996432782919504772012353769093140222254101601852059570831497584701267581725294883548241975304111977859254183447259544934900147762095894967415678636352366507714632458591555668817352150988755207803761083653972508317260176538610416358397834456073428901208373145392101586352802250232497639716436594189120779552936160364373455982745759827663406175853658615964032171056865219762169392625114466179758897743749715145041220892934412300792521582665893192286216032601491465049544509287141551160569212339540701827914784673833081273301682394465897672818985204689883465336461123235717410998184956515635455928623502452800295450154991257816699862916267996118856584657948472119516065433401036256312182252531888729170504429397691205597635408127458114085252450846216473255843541692577384909109315856646463424307949757885075845047015065351217411982624714738239795315218453471838291358610862048086059828557546926469222514373112793171633666586505730528667248530225531489885675826551795205830398932828319521293907658663778075688674157027719438097721547288607354185660213009075810605900722396874185523245845209668637559132261530873908395046900018294786602796936821544796483853848676418594672296676646947008517587189818395641720659436028301548702742190559254418105595818121343413670960084238148329279562131032156415927005341220499601327269227897031821597126383385575149376193627721774901969159985269395842409964284953540128483429426554611076448134074757095159341983563571183996979967524950695797584557829664289850284259575372332958985378614680698839321547839533173063051898135160995204190316902897519797031629144296034414729309634121846970687260016063921927013271292453773767265567982227902841837256333444504383754478637682407613290838146298982851974754432804916787437751139689818160322271560318332294544419554160830086065660466171489212844825414642283087889378001226864511808284025402692639490211869771132853327334449522624716728413433274665766103157489717301485290410468730558776847168750045745473152784420860683334055885982909990794886609132825148117460600819701716931763519074657509537555142632207753897975079579925902694331327048195549316726298553658563342228093726557882432936887580533541666108645431677539200050922357818805063238336385397941749210753449658054320360681505924078883304332841635060624056376946656106425148399780176211826467760475256293058315026715105272893199396022853249537802656446920861695109291753699711831001082486176816822361299762975085338816741728933006531419513760543038768969864553446533194818242491675822608079401926081476314370716050258533272204618276815972467375198383287333847100304260706117069621274730858949509542417315746389774783162429749344485903782937951477625730738449927792498644012611822573174919730249111436771679609413619886009493628977876120414352607448599385948541660876561510504295185612453237618335446699185847331780960210708203498831365557871384304844812976356813454846626780250847243381820175766973247668724304294594445973700886051691802875471179177642131023878801540517392609785135794010958444859460150196313041995774362646130128929790091504283527675790594563815230091640398952833514190023794839734446252411634922593413996921251657129448700795443272934275690179897365508243122188981471327186153498101940584439658413412732662502844434862783635189963934010303693854559180763267582348521291793695727492990137876348651434570436952083760683606749052077443329380068889640077059684574427602102337883269661982797394694326553544506612394967332762791275305103215880359460960733184950879900977369442424436069418613390064757453694401838276538601738373205485244818593394687329944724422231786884234861751188974820109482643972365639915445643997918153506099707472247904416569329315189294613001272860498021825363531178819254528397365089141632525260718164560547612376749041843859168479946211377050346826209357588994312230740947011879211057685793358460413426510611174369002374437621155771765314955638406126348348830959939325281596212127676117656545162880115034810240815674254052038670618788974640761398643908097246610831730757636476811315109751545141953210475824345134333250571665800940245279385582014319302874889900910651957273730518158104854427349879585133773742416446878304322839273597508024024139588346788641290491176096508224977958712818194769370850207487552781514337272679010114625722559997183440992748635382779282523016813384727300767107054154710482184674435910382910195438589508449694544963127924333794694702342109241729389385561992243378402887129252507286406447584272121711780826823348327742304625531876151085834579138509697770691418925801631334065391496831045557389058442232880396525249326003296730306427676883810139068458146633495037496767746749105423776026502401947782784351374037466937960964478354479685781211281872293131019907481819301778566013379281522288418687776495308744802942756278421982356961717615871462628048850158202245019805270281421613714020393583347234558843376972519229952363478541494674734620371403874577719482970869083940928563582525802441074859945443046062962354641311517699494970337452486835273009284621819394401655349069510459595133001720326178990611442536309524768566246219117817097721777521695830404504307474023923701318709563683940197709002649190398876277908041059907378597822056997334739252709630834431194493352792511821025823721881930494955472299195622725101883483069852961514718256421396445814041573119509257886820578704114885914957418279115246408761871151497439036300403769207563635521266037240124520577048991118799113864561547207816668082028548935907710162451531664150920123084144262499229057649682845732427449169034266914705074528694059537890256264187268162134038008125875106137409672880989306056249056770329776229117159536031682985959481091529109377353095513877163769901185255789714028934139027961292894322738203105114190700162549367228614783768522401920231532278844551881879429544616813839896206312870559652315098212753664379463033696693934007430788261593801352975039061561283844199189500221519514121956986402752410544547980157556924142886117561002497344880915414530787350711758163663445537865893193430033748500579646174930350436748062220177740475494260726529036866170120301368054192489955751391023180938041749681179471923879149754079529954834533206822202767348690448846626216730918418104267958027559784454075246307816826686409572764209587607202715941471878449488262556824804446545394929228322954550440530583170664060340410796404044353916594605305418958074582752863339337924510752278591204224038289384537629463718744625781894730824700058261813481824695678300559796600177166236149393859373768180794373738614047998398895755888043998140528156377791355861844874652366099822953322147829108336458149338309165351891775742743591977934470498980069756380745665405197803973250225302474252694597073542866891218454113098480095185827226029495773466789587833668524345815835546516974346160673704947867129939128733941450456484719159954081757890610787964889085860127954632103434810034051166796322905004607919173267568069373104494828012934647636064639204253221768071406747238092262197109164666185126248079518252231956735893385292657817504899505771621756411653276731807637796637586340318262830463289578390416529054247329830803464642497349687942650127964098102488601860343440030562360946450444554912314518774201691198072326475386799557577590874968692686274485819238285445745345382384753866138838351224842410106972227609413397779195682597907572216510791501579294390356578335716485349194880558263245686734570260265557218777334739957588514440457608103554204030706780071075400285319664876824516418875533047107684671233990311298243542182800725940169185994193177075541703616744863102634424977839382309745477596042692710816599041568678699924000467695634276516153931256477847273465043895058391019305379742384979341470179389042065896437216735377248910637797174301535640831194124548085902517865920524000331693534950538427028691387081750161060740843906895069457759657619267449437388867046920408165725098174944483278395539927843290910908848801196970088410136189548703800315257703289703002792740808394862328324139421339631710938679194694335342675974256739573856401356086777608152687238452279722931237300312317709500261174706673332414168544200448269235774210192878871641881165091031382843686557692306780271055402746225617711436246136232084218864909551689593511490022662285586659656630967250332148148718973650007034543713091489548043616203475836156009954506379561015363140137148159338574166055535435545605845981919899702361397597653960911093667909911710141421864619435301957180317243381016008642977634395874745781899838713097559112556034693152421925205972373585024455661687645472231494398129979231894371080575810301866859323696004384977681966325158358262229265759657961507711482875110898115694038750214430901345062865905358079028229900192287242958123442190697736530815032016678394227960855035723136713646824907450026034119185514570856840949348940415729233945565854697287565615147008402843169596758386160023175472469650568758601960701433857556228419734112425906939914193651890637317549500766162782919692198361199108576136674353404890040552382855782115295861712921471182043181326123954501213487031632596224054799326529650157286116062247970461798384983752352196155334489202332703156753397127559233949582843916705993587085024311214249540679914303876656343801193134441744374337698725813899347125714821532293444280693186001111647536271912896721976528263731832851661622157992023144462048281401641485026499311003626892958379654863249394209368993414908791094788653626091595732122751733070982354401647602467878630863650312571460012955366635574042476744415720945389657553778613224836191426340262064690456044189876739808894020701296451446722761630495424062928408319520761974399272064440925275210964164843263087712015113732126121184175850559597404048761310334128704446320976489630895515157966383670947727785964913957039460587347689772365952427354218597218059499237711756169021098172842172561057554330711167464587296462808662039875494172783530615892996167057350404587666578459982001523470978181162441649244522806101998585487167249769499777898789328044342545791242546530489737692155465389324096815179274561741006247520717609025155734498688910398215619673127470131087496205587558590966846569545288947216388290174747689065820825182805036437868514710267187824970615417593713067209935716791002067323524200507759362028228486894873378178271684817605179569700002589447403357194304815668034881559828963174105716907625135012410630757770672170092048215077552048309729582460384864148595054692248234573544066778228194784162801918854254603372226073376896028803232289440457019026518796053245190255992776346514614220621286254607597312641482584736749485541585750780434417613549596953961090319318960441358268597778289992449507555346563368424793996208150445790429279942742261996980290061349948638280637629442712243830109392581738115835420357672313523836847463848038381083859901826119648435924546304688343581419082801819868357901821803636515732341966041280743430871092782363538372371895071079136274541664984818419881318838426019718307551745125829603872873407106431994498088796098166703921764007819448980114507251425668652233871061378735579495867460664432735565675441827643294922757455607702839666288165591474025500674913745444465929335065878983018889002434277309173252962963794999486792737971692638640162492454764740793399253774828195251899275923832185237544843828727013638514550491577761289760135280036532865403544790365328460574569162519620857545902542560739933221504493287000322187941639897255779623306255218484212666922832441757843077994784189007812340578630720489589249267495580209458497333713585779129038767302542725437727756529528535847290489456322762023858925719076290586253164847358747889749164281944917304748167267765614059621293561621052825689861223904058130137655970262720309613991621422332456796644027102804889336880562343497650194453033590762880261382350668386569386862513901158225963458300352992398262514627853528954254931465432433337742401626336741170344625073225219168451025652298785464774973053375166258746600477202489164716359520031685527844281920690600433294400756232982704445329452281144109323436025821435826227795760446481235520849099531564941603256595541391065864151508416817829095165115106270574842492425335503926658988014785069267751003455466297185929391244088371590567438441794950876923698811792679406931749489411504007240398627531742721489931240437151970099481878353356353184897469071326069139795498577284754731767477058382783168478859056200141312904531204989368503533872567703531016981018787378479610041769722830807369932199913276978027502439049193469694848325829504518719629084674179499167785831418972544626398376678617311916745676817057257073927977036787625134967392565566022504003289393611717274255540252880483720563870252324617870115761880441483435796904858156454220966917370149192517678566809760241563578162167808500362200416462593212916490446899053889542593197415942534690238581457122686708408198843589007470518983156334534083577927629092995773140119847881826697053668523493328720434512313474773754567182843851623519931996514264812848276702192650981666353702173221146210650046342869955796864271010475650649268265499280376385797121526055377751863320454464345434515733814036174356131989253352823194644361101422366000922805364813311057994731183510662774070797305575728484634672043775835853409917815204621232700814541150748500461069771429171515560319733758607632367850358500890131005027407559403148466360614241666583465442544094891438517153109127512190781055278620119033512239493073114723081143283262251037644049079895802048514261539286859190655368505657760427513517635268626155597863242594795522613589175491326342976550096531282491715415892763788312473604418908995871491785204091016263374809886117774388472217179183749071351527595009357309411170266815983301204103384101742703685888480180164508238542643689037405395921888467979167766961119915242195735123080796606180650177018403340400469380070616477794817803916152015436810495680629098817584627684177624685588969885778336463881117528938290547492804510394416267437676153699364889242134091011494402178106743047735206948098887943468061433953899051073184299190910441519978794647263772597445305885559572757472411624000056862303498180763278805961103598559801793538952799309741742992851385966316963738299130364907726764006003737821877870271328411466709948584758654135090250703956746904202152495392935361456736373229570026558222366890769431948384681068938210816615862889820037969898002475172945205167741348360099724958314175046880964654707034089299171134761862346961026375328586020655358386649457909291285160110359097968448166274093972442913773148275428212257429088735438926025740385537447327947528355237229183630772262246677806276714183800020847071801906323515755369676386570549290322009539086992951477215583127142658062216084433914169032409682853105585718366785194119379413963316347680341910742865116477533301426995267484732934403390958964012999099741434395581822869969504622108629081841772283601170886944963272213050661385704301139291200211747361153650197855074663460009449996951337386142817165122318008714221000125530888464173293291378950966175294310274407362580934035626165424635320110783241497311210850707455583938010641685892002030101948601978553055024635292685980473863185264639051409090756699165958814841694687603893762159357875995440933629288882234722968202693095337434643014320410152508524363311526095772035676711853403628758097769640978898168136218610699877592729581053392394763164891462768246319199691854282219769592651346708418460366366505375249946383748482272565390228116932709962157019570396522171906905450374634351798668466885586276472758991820060036195474030818816599759300037646142529957418266074412980096472608085680444915522886323374324414983974864746604605631147205638016658266853858173141601198905857966196448604199898968108691037288524172243839191894566650260626484049991017863671167401376855031685951904794101460286252309996915246886369061697785196025330839057155299710683195535725972587372852154330771919342334738110514233230270232820518823576073464032590890394538056537487303926913820309055345877353458273714174060617304309910018856986961191336979229988305788928859753115986513482397311059479150325786045600442141886326472750233704821374675683054224824073122255929987019060164747259676500748919226576085424320068446855290223545907341096995066803285452780013171452375806852495892477295995749154456728041437653236470896164277705364099206305440822350725399239800667700503654808174062730927188000234117118396098836556124433886254341196399000696631453507718573636253513039132592953254257285412766237026454629686794105002529039351802141579454590922318321075548709878383507287657041803866431949667650333494426294871489262923241920589242553721317177541810736299183051446105568704697129405855602162724944247104521084929322285194742954100509629903387179105126693972925958521756246040900389697728962429509483165426597452706886988124138495936658249698256489971233056780314027955342030170284753913981744672597132133059518128354974035301574054609448423788015621971466732559983267540503880934649485663123454710910636994381662600607041920162545918052994523443903741184179905093602776817274717549188760196242492298662913059415979876005154755056723625943885364545975532427843769738285312571074574065476026548499781724378179275740276133094401875033771880968285829472618563385021307786718115191765273673334633392348676355661670710499353246808466347071451685832994763823794463752032124929007256409746426601507806999122549813962199995253845349327943121078919304264031258243825068437847970033614364271180256554844539895062731746166723386487092185905930971555613693283429965082911958201855122723563981847466204930564754432956705804922026117803224855145162539101933102574257672947367385070082320233910145109538908558402125529997127075392959662562218611596701419475120931684404915045640195133474931944896034431971000591595617955209637154801737881349397737476231892919292472700558968991356651540239755381874721520935244212425582596556600474797007788816183792246015603013798611080002963819854280863416434498654812599049070497654526572393072306051467592194873282470439037658168684854168617869237112916533768018390167616726649865430988149205229298152891837129367256356772047091153480508737894426436146193776725564782437566839031242230779550634946741789526197393906025625605203852258525842660115694284622128466348190198357543254263509375432158832833977224901888135419207902132215307108685096154246094254312760170900308396013216223097890286012228679683334464561727802856787955809550971809834191594532322910718568855862206391879466259243063463766488188524325649306181928208290652533742356632707913948502215068817447517538246087884898572564356501025973975760870438408496430378067069689261498740982065650773453091145782928883175713320317474121114940289719481908602514325753314744460383002550962708328902455424927890698003240949056980593458991026071794021892168911159225807681624777938426505849178901998404057707579410364800655193457273900304367238844801952791925335701388713957690219492079766058115562452825409012439555225137391292087404655902828515497497024375159617934080040792707323538886124970791256152154588656044852571023766870794224261069215737251695170823453794277439546882357200436406235058838959520331573586837694496370147764317411143032496079234805633084821175256392579176808620802587150520868427305955683109932177493781817459725820585062224068625252838418019004667314391727637746447259922804793132036029424718429310107998789242989909446800047294139852060209507784899175260004948573954901310561431549404001800197360222749854838834795319192601296425845841461168528408924024843811912360390312095067724585333588110309040047425956290400212931902843934266750503280297705431978107904298915896599653065431843958935881675573249613515398077517820253816524341108460004920182903445619787799967931553649534357820318607184931228807444364341186264611286411488074334536837683358928237860718045611200860403374774042000744647504913160762839276518083338566602022872537730961609635011935150895498932436589540613960831500337837689007983140474441686124694276894228610310002721857524680730702345435210021825661422809697892823628566392804825392740880960799721839859105700433254232801890984557583537666545400877899408534054731250443864823613518638617954957542963999172572351993425928206994221344665751386581586450202253867639339221528529157546937581695462751210491883502827191561827372729260472142256418972220897838120686958872318978594337966354758141768961009559256701318508918169120858455702185315714921280764443973851490338087983722469174964831356348351758832175592301001401587952421137636486208951249437465930082563765343983640625378694326511391222480260382184637131861191152978066464575069338568108109940396458629191468383455637394964831296219115626596893664758324715326185659725547470144273594060448495891834249295334017891035357144997643721615391018768822650575805286398665007493694971848445530027220348760408229228378463830801849025194490885857441412303112779344196371269702793067724176085579509669801521302992163274222333791060142974607529470589907232586875721658797284779577026012733494597811485507084284337653008225470467300164095043460366800434084126831200035259398318107860181532844559451448841520668597255976678626806606958042651612244584823608007060114799141520030453040999824434328661725372939121038553428580580016373663235833609623859759590900552846304823182935417431921757968453666489828288818970421877741596797165258454963492717214369464880705805086479450894883890894837289864204227773297554717317779703096805264490358007600384907541932768987884487792129681582519392641283314339449546774763279114661516237383950999759159530306735820525545290734971923155048321038378357803875320185543700724028041794697422071542213445944473486779576708607977572103249214516341764627464684729975722644947107494594706063726492282829143455695561993532251550458555546638222607295050448888113468338107483739731937321014097336159513268979532820479355362264629745084688417855850530687392466714636158065003072166762421765503669788601815470609240552030025627186286092095344267495832194987935019809641326532533871187886632598041020080189042455684755212125970171805965996405412895093448321797801102934071665754686530125513428996592457660287077967467351348309382316628174638157880958312575389474100359059681182087000670511479440870357509090653342448238747019198902864551559705705728257320974853736648632144557556926114535623725144238936540619562490166663597477880563019573902495976755361349826507097212460478690631741636953606347864838850599674963195486983943359871360982938261059261543906000074553075766340669126160810457049362880028081019722645383167200234107619096414031856239276348794865177353922625297635637706496068314579534473963353461688421889972835447355380417653580207084843729449264092819083061819811827129483601940645300186754147566397136718092573178920970169729862327067611363860761519375923676560721225696743128893868377742161507855165770827479254211366972253301067014994306234063300450910444244177477110029031099656767751863190872225519054475124926581137474104258051717294932224630704470614038841468550958304014290421419829411224187736191437933373223278388392917022757189210913145592029537637000539254081756497515709293762284549486392696586827150342454910193506665961409275555628672706225152094351605177311815522466512031459244318255545627868119259547868712137223525633289979501166523353162645441771411617973784323985322444090083606158626020713350188926671134969759811557148528184768578447576728122537049965280856828418438210978959449930343875618962164927786744840860500359228457734517231236471905579040326146313417638106905608551424424960152059193485674413223536885421169953917895449307451103878776480162920729455935856046119340985191021383753340052691435646384417740852016534378249639392074059825800010088104397157430005871290734190482633203567870523434594296540761204141171629354541996113042980967560445474875280073908814670796912053036347561159778577183571647847037313434948477359470650688904324780427009411858203964261542427690731226709921429013806822873945413263596827762832068463688255310723863855047599477236434909485515322979382891448501109296943661497780048505329977448470768967336539569155354931640080480229212686700120252611705854177345175388451321175046106671333898219770896337609802668727178799931432109586152930396794028860981828653383136243111922139274622890887070023955467973533324621268098094659922436146903253903080546755855764639190543978964938076770098455515356713502030239459448794837235944008956656772519327546896149480467341639584626377045636683765229030624252229583728509608394073239400231531573619882353407986152474095950234323257011705618228925383429925458539104337640650247930362837609637359462865512525239737356628345408651601581240144212451409563427577177311528462339245148078445061941835964021670875405813065853056105168306751137413845424622411298652997673488408397485263386132150337969483987020766266527346333309021834712528244848211171350153428271346340301804349949776657395008790434236231761121107188707516188210037472246015966010590183044189105137725039749145300036855658146007423918172341734823460916723019554127438046300651014177099831336439986235690531348500834881114275419017504289930726379048179774177148377531554929944053267477720703440941014317587317237064123792699549479314312025681442969983348375713130233802299257057183529759721428003623377678869123198811693960325643055414067716044250653521366842486337790840749820948047854472104903674964472283959904697862072250012239561007728011738494538733088554932093670684230588148537507092310997333816824051538558912886367335248935949237953663934338862024695992570181496981772280395784809664776193700291774263771014438338803504590605205340315738071793221703550493818749287918563166864681005922959797892676823286112241147602678715015333046348415445480377710226128267986561531520668673043856356660871634822454764023573413940133156896355174850374123295735816553559693808066821950422135817655864322792330674181012244852738607009461518826455306178308841451689660625502341240307377271723845107115587945302060946404706775813626188333821570654461071289923728375856531220362051348625040835997331255454179902466325549310433046299679892491940901167353868348051220758380143509833397762758901508645464796022073424381306714878619800334644660917223471709042689150760988759534802856545857219937149181226561040186355700529435816247306917507472236613918324356800069153465400368868283041996937462735374072902184153013530448286645872182439312901452827109187152949234283624272712385138951840755488178674251511650385731613110108601723300350728157222290744382622918829039647190590894696810636919811286478601431130574859272412798466156198829932784948238990382494685666563579088917419699101560452904036498903832542184516061992274238375879151600677671512602338044139272308767359291501394327335689737369927650605726014044518936732669162593739411608335941084094554790095928166809197621964932404814605773171140480944635684466537786479549417155775037410203453182885572739945922499469341367004640005534644082368031445745914624387257465166645024709363895590606000758718951665533342120237839647012631136840356860280212705400486691343580269205150152582632453854677324335643237655811445771212927451579818925338897519802216505926916158321347861770981198479267547887522406614382965290205036073889198316582811222930894568263135297168791694769989917891668410349378699391050604370190191143263835638119411202114113275140892003989950562401932050201231422429550054343214778653990929418581664340764655743812138022426715175399066501518904048074424351734032155169321324536573814366238680621945252709529105031784736565233442966397810166440417473109044516340277452641909572187632169514983992965587007725629160059406846253144318089405373309441194390472601528267904247496860924788743697471172891932610106776584011152520072333062102805847167353861988239509952072843205799085158405116125063774146311667707142545730231456753926877698138739301215786967306448170386731823165670059141525270701469952755615240627842784248251297880777739013449294286715804703598101434049921119777639712199191486364613250827822473741925506081750632250349804358132241292388212192318686367845218832993099025396585523718128394934157628442198491692120545681720242472215406367030734512957442552545748034077385300323617037347919683428296579166771208588927572027367023498481776987590197456008824778371483923820997063144095110547409206775120608598834985861993621646841834112802965506229971273203908173995782084985835744301005125612473457106683467156952140844342700341686018102822980586149676224598451580190010336944549403990608606925424109165536743496810012140864585540220620640832537304166237689111553503208571245443321540992495166205674073529963210760688683670559972586834933965186704053077089269331243212156085717239195085469515345716675730578335731382286521828651425180453092000269215947999735661330711361418203338395264998385981211771286984996405106109875960006948816997207052556598660568866311067833265875879174071086040499913681687444964875161992695890618400865529013403377263670061390159940367732544813896083689322586619762593384071429004402097301658546652586389950019447689361372523755173962133528113400231385143464605693055901595422623771612619579164749480613631790686999393888750012193091782889955532685637547489234138284450246858999307895179345995857352597878459629112315043013339855248333379585402101689088179549691794038526280649201580424545009197122357352640403347472894769809549009018160448213330131241338040508554733666785292690457425048026622606748611130535970767938643350389509864861889754834054385440217845761377751484854373862876626173840688415292684996903439280511536274781615443215542459215410412599467530142262346495728361021976431416254761779188399780722922008610876131824145705704081222653586366031270482598268745985756655767007609267279944844513474470696260043339379747743548008165728513012048661251894870833608291095410643483910959970196847539593164163753505210992615990161352176705056236791818622219006163297008775517992571067409159850477361205902520445889013434876892049545676844973066221822528944938077798223794087930694772937483340643301019743773732516082727610880395857119336392992827852035672752776971526212386764838549200413790073783438374580337516738546324602449149989860818993222495561771505242062537100841237808903589772821705898359574005936075281713773077997607820063924702471028079051886256333075460800245459900809604658933536470424740583500858228254998987860487331483262225014519287629840570192092770983485280740324700988648735213044993757152108264987323502126516121297092045295738970936659562362072562565091177079163810265181935012024855483774565605206298451713600204157785175914543707304504593654909677674311046736559727176779938518068444425077551770326416978610853331218200811683120877143594477053141516137484996296979933182289510561222066642729930467433290887004312358675581517000660838261399592482437339763851626536289526680351087055832293971749281584618427687955992300749342800952605777576445210209563571797960870942688634049354827911530553995136805764072105445989717460655390459703676373470698625966871881464627126823085240296455218371849153496421270898570503295629940519639976258793097878753673655443250535361230445345330700747678305899023364968843980683115166699038179187944804780397486062978328870351621850362295662359619704202755496739448563640964938155773310024801911617611235327735120438033028909521610297289896894336523614103869609236098195432833574955389909018191464442039602537312752863835865244650966131047322975114704608257370653507743441706491949379203223446964918150261995069110420699008872674289903704295847463666437878685625053553495216027934215595132649269120735169195865173338041507469222030331853022280930393385173693176574537780275580073676603222359084679595492025123744692977832326154314057901372220356162625292672032933291907109043904008488545884154421222940401832318487949148493630244214276729665149007869441391904997849730688829860050465312169808658008691403407257110537336652649768560560193124342310362791791146216716717344664554318492371423643494052819597399151329489102888830554259709250381614277052481289029781524436901217173074906401320431746788547899373476828012784267877749977669389731547753643444979220095575389780557043372990412325758546152204884202044526702205556100018053739946373195036174210371353766200247171875454301619824302411824492476926308716429337403863995988125829599632256076262485321842500098746279765632203089552054015580170671850095229449493233631809526741516063694444448380868227192427561770943503062382383862068429269795352940339206226296966364235316573764553918967604497675375208342153772285942965616865957433125919185738506288166338491208240548333712905542564575673278143838729418491874342332196856342814271367192393964658459504310147882412956473244886396812627140445821200875362670259305870230749573395465119176183957566279082066400540582038912452768652797524601318974669374521568946256312591737447194287750100224207141018629868826808608578327527191194964945382235047878193129947094348917814913695982487027389641274524449663990386015433464925793585789810618226402000089860670121240793981670483215633343739937401930186699940359626538167083365579716472730552360393552836962412788874991872467712930234946543167804496065177578182179251179016614647733916354272175811343971466923482958020162768107813710354561668554205128946751560169880758113133304472457316204591728764241628059687443598496789078612863082009446786318459218719501375112880983061980555755999252719158289944783345371036853788831600746377121207672537389984441492337408113417413419684419533923570270534593199779253625948299317530329521478299996548583943901020366907113201074043124502040480460493545445829096924059261474162064553455664942610212624748654237213391638653819881592081075249943055979623839817331171567660960588914707144695740677660016108458771671807035409222406638532258032358377470374328661698374230965646335214046613713792847322302848741099623279585448541380793387986485732806206233403332592329662044898652669971214011961833934149752125446165600576270339563060638979212524523891299278978394612536637655025529866696099611144200866713205501204257687560482176079242416300543570995584020396468386557753802760283502819573732762377205687431847658472483010838745595559666516568953935420644230849675388726942927893281847157659563058493003539529886178794348022307047092784959728555058399715206180154722712408674951857615267627692675106305083173119184771807446867071922839458864947791866354558641720822834562948511302267118399101719689692067406896622886074685921137407575974063987328453755672474556041253572367211896556843515111084410040275842688323265270635410706211852243882556242577364171330539606305923308271939652423381690811773415207003935208420793813442576617699968989928184069968708332086877402060934493994940540668719394179410998808537651119812588313049655101982046431183954888463626527273051912492650524706846135098609304486863192594083374779907840270314619817086222591408935327714893425342468965194374209162715710962981213844669760759882924898041693734721534901212508055172844002524110221295799515782187915349656703172720510639006013618149734269455075091622319844746048503083878688635403230300666139799425266417436781931139175253216705791770422092213794585519174423671506186626348383893335911225925665433672566184646884692127872450801710821008734447326413107651396132176842274422090140374450220729859748955104243018339532192170398097437317792760176470087759490831960978765556290515925788521043468166230524920909388033063021152955505802406149323842845288351338337145855294617438483531742797023851760925027405422420261878958703544988730631760501986244299123381711934357446888643047521373749296043916499417159433782654538347554785235523912556344092429989009173001729655129396311798441477423379581156581636622293054808992323311866002719156091516537952590859191507696871927695769380180202141681620511192383603977230778452957503614591375854520197466216883315699583736302001594414022338000070372598338930374077400069406411977210269379491931552046424975570925348641392142344721896192245282037791344677242895188767551782961500359295589923042204646405994462776956254973916976566899951081945860012938066693350823319152787568600870035138899014112880282907201644639444502537207711681465749071613171180622111552152673311657043572748093646609368196834003910957274580637112564242058489392851210062133101964635871650849003416562481602640487586200893614439658764323489254261754667101640057770133026247624850696882291890308516555228843403007631817265240170738279269240650208710367346502218554663041960368398029584438037241822241396824983240874313450551971739670882046997368889666644642584329259238618047536394561829908601157121772547092493546571597149826022567437198878059277615583384164817235661753867657758371171911141117545639574794045151299053604371524655450405104887659402218694724443216788905149568187981923134311599307044552354305562346870875388050266170090368290661195976456848444993929250585187692300963449471738058784318123838921525435479740463621490663672456712608869957950718122866776559040497865175018302181264794425304168971828768590351054257760082002814456013415742853089043354736639590430649229683608062898079040988783838157292285606857902727825910545937854615582759651788732168660510588245474279498185629246114804557406509920811338686524433604007896895219272138260380959196293966092430487320477064079281031220160571831102604242582537733417621323535266594357197549627660970154424997076027371481488860390666768734334288901504258600218630713801398913040165174099446157530236710685258705045613767026046392227832546266666697224789854021991094724491924234876794222962209188484576963804483337391531081064227727074882047083192718432995615592636747338363876363588540708160658356989521260561226227020828406850929443714620217508610944752025389054473012965825241188198594095184531708250194314743061232697316241243411881484691909499667001453589580039975498428352221346818030234076972509570097448993075501975822406328069671738326743858586742466867220844629619122997915444297633592757997579899200906689463121626134953923266737044841084513874387091031108258848969499502512039823693525372870477262815984284998443644327575689083380684428943184030527607298406718752424166594000790189852904378108000601791049527137631956886206920171250552002277941848094740127677711824797868890137531580839022877453157544386585381831150343847585996279823494436925409077746876654001290187239248874445883984424485608869727408316414622737305126406768503636684727460759702687229921550187098869008712503922741649714103181564567693478240614533782353793198324558509726518108549782808824812306428117824435779153902253413746721234901012827710240720968327660449036263246438053024565806539900211882519243028888771887520697442178303980988286564555469699422403889487594425952278331690170779194405818391393081124017736682541506147379131115683018139588894721045723076887498080465458897342857840914386514343917707402552359859676033962011202904171606858726114727085118385824914632864111684307793348536982546714475076620425770084349363678708792647353352141956341190688424520027921423256898225106611778791424347557484668665445518270881905944335501776659157862934241406663089596798900785409033966353261666552133935334994191369818403687132341284000056462814940683386525494423656418727590492933043667393363291024170850519782995570733155825803287892660472383290631136842214916269414094961108385461509730476517065681248285159702912099352115296242924695634346110817800562992884241665022736141454111199740766442318525269922488913072950951723448359699088100618254588804041549007111458838865989661223720660581239638192680173002335570259877699729999249941779281068656220663387629018735876626993646447885007378640785564018365243537074363108321588041887760520436775801662174011353455679324077533307852107339154838452171603504626778958848662938475901625322679893076596939989387111697662956416821655277231340015591121920388334719614153903236989178246211983874162184534096045184923930466188106028887009098816710332263010982957707685042441982620103760742330569461431500337105088330534858182461472487532207605509798506073738565600486253370597374643466713390210651016570867070418463337930363200339560324430126618960789096244064902826847398110625727831088352899272779738394622151693879226755894087445853443121049461028913632136035625659133937849255568874534925951095812673555809428397126666792891474375417832965483528037408774219730045418654520602137074191519635728641714097345231655622860010595121164951293819427472108058819918670009534638289744761216677408573600363119346952544325366063149459090849282842603364388850392945153794298051890825383634776370340708139382692216110272499776928803546856489322107300126660279025351663300737832448622531816999826952818928489638651983271271319316352801220515273961744720830267228227648535160122962475244605183911268314182286990060847011056614630485132404414735841882823823594140790047846508941003240758646029191295556567367780559052764084571888528598139168902644315562974219773310894700742331703708150846381673192598709688488869749071624437332224194403137091681832021769333794969080921427499095033049295882271105942238514238127848282603967263871543529713048726414548247313014179130223194705532931688942740286008061425819048140435979754011415702682210411168474575885621419513825989838526308381736269858328644558003531653561783270631665543519503978511862304710743336110078914901962118473513594989335134619358495427756719978233355229365920985788468261033418244611369346354716107589820017595034323066159590624611937471623239859459641216479192845608174961412478769292947405389007008309509660486122558302589904318700071836979412675919930925660913803956764468949489068628148950473044381490193787935672016180914956411010016448903971910292893174868296480101326862845177708288495652445242259710459334120886943549908983120503782526470127291005750170479965046591210051748339063796891861255638319327310676612026684968582708392636348476779130633058355381521959456179373301032296391260427998468499038298536950809253763309384913964821717661546611066364017823861198434924339576191107383883701197610533857253274202370739451249621494365669168061543006235674168234219302982558263015255960188222500459281327224105565929569421731741114443165969045563950258114132550757101058294279807563336178777196357490242810914665240872414376051766388733925848624275302790850199452913236499743386965651656852266443916747453038001448126566725208897010417952096997593722838330930815347228835456256916661398073364805393158109034187403680016623534856253683854990924136047521729174191307205269545549452896736995031701910639660088757041449153691966541831725363805080137493503983353436614491935685236554050975808590873496462464170533112989812013949236571513236954100845555991280713014287943591234559947840519016624737477005632388651829863364011230266694229701646072181288006648412323885817144745656410450248455780805150157785188949757561513533839337094342902414794256139843679156445840365279450192915230528886591087282957426387680820435020257210237158759025342083766187860600171882285345603297226759350408932069153805549426052960254383029278557886525920632843503991945989198847373963628837470030202302687695996447946160426393288223369906232502737053913380627700259611922770557443772387386199127410257741206012912270617562644646012195808757301007088390193702814069202810228728868855321280049233248689556395069603143549728431062201373836377466685417807986377541791356984428403838698119059938982527753376640218823784290398861540901077288768463210322949058776180289557102666886823918556862914302887270307743683521036741378779185047448305197058536241835949887344615827805889880497045917039149517692662634123587447458457722723842071904988580918674595675286066755662726660255001533982699011203488182141147285566711977053267479040146587599175574075556486888623449215426419206497401679686431850113400166444051243591339966266354646339838276381562938514811495053691660226289986769949824166208673138136358927890488222051227103488818372833279331401868814773887264668180822726556919109615856039452636323792320991003855587125223165068958942082154411725170031832171882464980256527601013930802993227559246160835124567428260411985532857067134918798879241257449866230372445542734053684088239770491219225485547541250716862388555933865432373545777352116665660742284104414411119961983801553734431472598789888385017510467873344113654534171733359771341920526367786834387728796079211476644103571168502106272288239844000337388059845929014817538193794481941052486598674971302792939649341242994039242928705330784763229437810646901435447303451268459078468747546246528061735862858205313643280801027270932547720427170569072662064500236700354905735766471182033678017360108172413050223339271452419392233701857571791757459529806062216719607150337476385777010254387224767704463989815235442670109011741493283837813635669794893255686887194400118274715553204945204411990582267276923155622063239576526285729392007666828032206171866015583092798522503274976584884119534464526686242979408504775428109274557525407050266994203794799791676992701792770563915240240624893902336818453340197508475367426386604925472707639850763185800162815325749572203146931896504220158439481909259028001705043856915888494068739783105090414083200756466216496707264729606031387692456870651582700499151924385515402092831418803445462975403723261072057681146656257862391005600166540941359134311548957532038955002255817248403114828927094240721630237372536525221817616221499359300105681911883032046559891116778646883591324860084902740028959843901691641639405744634349386246382466724182392256894105716511506380155668224913851108889503889417674399000966813952736270407388110427250524253863602890955385964902659771171425736479227924832291088986426501181656199402926865857996612983181573468759333584625499363300813280024236896304275950636179855050331761890151774520713440575332748724106540906899900810863420162276869233831896252999857641447174276445068540137805150690771418779805938707067088366089373589177710464908034270870000093233913995429144907264318853919582743282818511066658910453048817695684777264236529237327262311077399494226513754569772851426183883518539716304120308727845658986134488108790840723241596546278273290694858970931579912070623554714814630830948661205726825446168998474821832461061565260873983600231154255472987128162527168602343001425038683947414228064118289268680257887380682440196957264314501362277442481786956612347595676173192334521506743535609373806883585685585407328110493972278687587096774751416934509381305520663063520528687512484390574329501404038409767010065859474448750112710443840548798242786504719925049719683388325354901455610489168659740782928737984151252592122542465716175799558139222928711538256854553343701291838255404478891278078634377185650901394563804893245937368023014312687985228301529514481311716630700935874615249258781281020851929701144599420458996913132685976970657684300114250267952320796380481250986313842540149095521708926669481652139188364155347882669622537542542146211577869907935104696236141486273351550594673874485414679472191958597933808659316147475801955360332246608050605058606083009665640724709591440113375846703793175532711921749414301801378131964003438400174876039476695970311930214218029696478198372337734743753917975445632952467840502577263860993589182546030101067056041998440376137256772660386415708074429128696824141431268168210505916694522746998833128801128577973716640751510149516309960102729311222202789505419227817582385091639520652638392733498181077195859461149034418300111705814312246342169494045900724383207802204187553639862559422911077652927731885710301650799628171708597697145507453276231992784839509344032979034990020277439194361429561543698982815512920098024335274835329866953605774896774344155434627598270583413010236298131114577286353518504803657152239828882519421981029309614541300444282115674536642727010053635052080345876102250887763405213133571109015924577795933122123792385254010423234416672192679456970854779094974927801390965330378733340515238981610818468810419878651950853950598524444456595567653779769783602363748630865578610818237124618642381566142778894347309235318862428903695099865408266953203273310468934196492626534058775689833034331692837525158751510617953308850584675305607504957068508140009766076483689005734154520427257497214740350677656320501379733268902283493017809589383159073200893580768454358369950826765227091881737620852856736032245167599052133258982774848047807863235042584606361167569028605373148931348041732779541425083294879663722840736539692876363087910588682058560749615359892025413748454864767205939289494961791794958316564034796021128492751255894522234387094507100977879956091277342252291664538771611683993792939368969274561176340504944207880384758749404512545972000149231756781264829994323041046635569674202102693590151119481127807092605783868252999363144815494368000759378176951415439357161325367455846791291832986356259892839622086837125597695123595685043005928848257473225264424146949908227910245497549098766586350713627844635389830954174995581491621307604421508707415893547456044610811698019621991246380013090702361188821108314849634558610764662833090757747282212830696409927144113000084906459988593470924191609850618946930101402985909111820922211310148570364109357975202431957802075599364173617640890030012429659562490620578947495252242353471897590192762758165190656566431161995733225418149033296607465228242734967923475224994342788632198927609352690087143121503623322702108577865251789236559405634097022079006706647397816444188410426951981009506748435675537051583627566294930903113585627600696297305262575188405959372278298859614406816551565729584839312360420459476147264055606858585940496500983763339982814268294708391302347318573906977098880483616159423233846497693130519698955139105318720431522583597006993774213720393759440705160181684941975885974218781850917316308516590671530402914965850747110119796634838304401617926498019393083310509592019103225865982415262533909125598675737716498012456406122091560757678604985558072339457963968092782333719735366692194161696298005562470317611707871926772272524206531986890404047435964073896905675775952457462061257638807545940152349863536690634989205314494172642343349674846282812996336225639797190915361883762667920377467561216520882453933825335120711925735789682410012734609236516295655966407994972353678494705475118252892522224480144505111534535762646783694317376159997615238815061136798666854893176624277794656021705305217522480958053048797633211959169589622603665723826653877628004454127651709691971792995132152306229665441239970832851392720399996106764552250131230811664905292510003755790774341845378996116969513533450258101069556032225227143988425446591720925555647857576951179173979549665236460717573638388860403484603412909706237012692588588875217356584550062704635097189942482056140845322589590345433921884103018398875771531244957249548606526277435947951717683340694926192165737250136765028491686022606359689540715307018703188529216975330152004950037588151603315057340097436936170537753649539958330985362294947044608270577859532645858970201508069147748767531193436298669202217942945574874478620589820781007288676785462240118802876872067583098958923385715296995881879602533888553975522452693192056690254555659925240050326439907794211713915625610603773439916022822437599718515745913070139117359019827477568716783399115577656601015457982445920922147822033024498825664208312045790018353896081619094119954747857110270171293357947015495710623069999265178765548908169079220487626027829726927136645941767513031473886191484415493755829579977446441874806155159757591974316763915553303831228397923845580978435415183970892445648435779860811107995046109318903013749696111412426087833249262127067880933411684200692010700649604910392210108125699873726904422863683167453965525815056547692642376310698405441595346211612042845623616325576210607540839651264566212677968751005186610461545679821007346017791970469917400381264334487805832585533651055687276598619011548452309264498517287199537848371192901044609391859356540487906063898676670153416623047645340593719410997603028729395923477131950942801741401287173627809763823418445220130397671929198089916282746912753830127531490637019053907771095780461635182449092801727601064870941618095512097203154652498804857584543597251328080925141875907451864958769373842350886319003058690629091383112844503496203560364917477006033913075059699779573450871703195918667703673288458460706576316289259146271233745918108153880172382864321549509635328912027541958232383907915834568618906014165720083938996465254089977241841480923336896668580071412771148222666880635156691123050124435394323760797078907140691382799733172395067767440991926130838231664778440357359801376159065573377252570750916894539235823377730243330157590360980394264900373134381486118985151499642173821416067911660468956866967550271889386388241333145944308944789390457999723656697613185011481033115381886849900054522601654318505698564641086051322931861675044158245994923731233577774208815562333049288808095845351462880262906762359258324570493850213021739965151960948242093853566110762464201520069850119678794609324635090386535965958603501561741434756444472954039542402575011644916421321206658065694826098832336667619950202913346787051671270545812478320190930152429447334273089355092108554769589764977464662299511211476148524743868051405871326947836580635679610709280323195397607422538176230003070124290766149881951908749267237399116811726444993045556730107520716263490481408532488103003347159927607482731646348955945486269561165782311390642794361696006890673425366739634586696359879739742820730355803261923470835337684965854983887469565868198358190439519543709378827178400545664748252409797790547382541661204076112800833067581047366214269547636051572925195663131026847058372044040500022539722704021721884504048681791430784820265992966250687815227319481565639498619680324821518671805637927405929187851994015734532378715771580070978233392577821223278486837613209399862110014090233164784262196272456402639320648696612322696372327839976277196067387605015509641991144412836190138720956694837360236832416383608827023208667120032083885063598719313152570860417002095949726671728022910139840496059688114239902557963761922068641140923732262494242141784328305430381953727496845184950758051411869678421148056260293859337557365332183715169804497859522270699290850145146556511172590403786753383548662058830864324126360718230504793259782851922907352612565145794347106317823258383538442466945681142919025141961142917212988285330290395200247390911175971014625528916041589141798117080884909728425171330579577183343689210977902184402149400692936145029264686293434954756086017648320659017818062548549654437173366908605842917550331126790179896395662379611144737230459669678508127800259848765776062448223983260165950775691637585111161274924400830519587608905142961709613614545735942556821088414592346586839870705553169563098169292945109546403922939073264442443904900951854301744793679488681392621035898775069003522867286048497822527733199522922992766042667830530755329315143089181783791478775282450801242603925536563807151154430609224923421110525614171898521984273107631002927461371519080510411231484048648785669744437447504299232180963304564888057387109997946277651893071236487159515180125739355473911231840595744155804484463894930423244400395672858265418339250586397959734040264951551990925656951826500257710238165473827175102461432833279628765303514859051748230322841097011865695096086762111565736773796675167342351081330355990112477600910174481026681389541271852603485222466521295158094489921465921726069963209090154655689900757336557327363316682148871163081594765481439635279561238271335566203476719174355109674835255102250030248676240373515520369918171436922009191006228641126513550248182888568040092936109437276034288086243896042422383649208949380353680924815359786701323379609038661021167853330990353766708024480861700391942280448983794732054928146957199229212263364239957618188896519408843953239888298824667333546840233093041272499244104209750467881778974626625625184658485924830978742584240026659797754394114561838613084294445536933954888204811501025499909972225823904322231192256775255013448180319818322214431940190241969187488300766505482597089392810686934343347821488621111328745847580384402897852254881367893087263385290679177880571740453494620314923228538193824683548492073789856884214327278131323022538640235436697333160450465169115552936772329039700085157799396409934127230234079810033487040208299774154081495312969533536150263457369146174705536523489825243149631329375515659068288620685465883220665398746763757677184811681438094877304132828050867213047392884096941322243302807713660171915039056727637609022163615543779039486836411804248591868730646143595034622604047425868232153313589394575102682021485525689574400654152782870741682504195657180522598964782692598743865580626038658715149354813059772228824644760097039271028223956028399199344193313540060905736024854058876071335366253649941939685391705486540368771585642458032788979982543449381592558930989305618569485878646515001363929517155589856802789520165815977993366705143001863072828383498632792402270232068864641563687468709099936669005658973621926714778317673191125615827757440438732608505181267842430156108748423144447676421215736974227692818587209712067043135894163625975535259252611894820885439652006880952521380307321035328973108009010443872950330937591045437803787966509276121485235264235861389641550026067939788894996140366190951244014386202915403002521411846179003442056981577047334353617308652905763149894204988676091716492780061261377489439126861893852454911448956591773401590838448985602283377217480710790559783692153501613256949636701561029606564768582660996425315043704996107853909613386651965065905694474715780398482615521028382702169515153874787404409475310262463827557626796861978382444874306730695788118670082873600523619765994684881615879769200635720242197313041093970510448241683685036118944551684032527476763222526703627280185131256016612918861058758963325932416785008501585987542864039645865866941651085172850251138805585707397877335578953162157229027325864243422159252705473057495990979959433028258348376103849072815993552749194393953288309059253746211128741400163382475789841612483164147472931948450457114440389528912159475021011263611630069035301401839626824859025128341934901147300801058856276110168421320029342464373181169237332052342846134186465172474941132360251652107285619327134792743207254005460954197849843872324275513199255907915306912421092401764889487107027139225435896725961584921844634469848855170331231237519872046198566418663337805002224329003054683339517645379711981557012689153929613756708956868161661064376889032661644982819436332596688366122571438398080976133002765113248934593756716883423355876868430436726778536240447944635319924025938593877776547028135292063340311492446269793159887663275675554467954909198310176913646886211518606511152070874409653875605428343566345329208091687627261994915801846269134817877457805558832551392218270014702895368316677214114514435943949021558524952059744560650964661259685617887180977432515734895393302558217354440026699954790042520270631722241381134148941248102464401448324180119544141010137518812303696610414909130197794710628733657907215265889159485464117482357124144273682708434033050406384298226234819888864916536590967540989070752490033140475403113119402835989867605518071592993117341049614276141058579966948692583667809230836056498066299062859472350562300349169267458825503343718781346468247013901612257662981059991390428831666128565517070435793316795996614438503071638027115339521579762994348964786680991933938785252599630720603589518361267731566410318641343239238494019789021359971676884989219203710670332534052337920841998711766306822194744213378811843222105071881614397704247625628165732220509968210996377810331731162592056480434760500153906600843655648410771642416495925082972417839495357361036920207236244957034890768953923912174435831039529777743764844438719374920264459256049283833536256861415046341641171055974331802011817417951209665452928425705889653800638552696891287733226244155337458698285745755660428806421139082593285372348696418434297077497210971966189864644742968217677181225567604163365357747341327770471974495935926022885383052751786618983246766234588270361205064189248202351181165553697270860549695395713861830532158444325744828478576213953292581364304298429657780759395856303666534438485803019853208389854937426304994077101893384044074775550240820672732972466391189791775140205388116624594188864417745473282453198357141268899475337115320753298076162936934082801701999630562900911302906600080980534568916351661409345080498890240367914109768373107477165219153066452229092514307127880392520408230749535576888289074302542514964321869416703316323563187006136488857617354716434467345926596764822353760384980228892621140921832254531877165176849443937070182005311300307290852069880827675142078541132271556751278041266079108813294430596921018845689401252698145519052736177439415029112902396366023884673377429069607012941756324569710152221749354268255702131366005498076350551138863168873385835571704643830115201503238548638344891038282947155398568957001172823935385467324831698399927337464970731877423804760656792397270765795756733519257498118326649954230248985764951460585554910577435374763658852402873849501227115963744255331853950133339186708102877237827414430367890557159219046624201817636025942112466022600037566686586007409471236610431106161945288148078121179116878031083134608424776802890454036230961753710418176187865410516220977894874318334398363782084397638876898369860550444207957665268364157439498890996924886749767294378659521176775204718961497691322306983383221155536151620818316268504594743603034596423718142419823069603547822257279346569619861616333673362615580205867029118662969197286965543244552526448315878425335081689320076189175552536776082225799542217439720057154076888550982269295799036892375043725839061471639727820443853381222189097318922189392434722461339908315163690766269195442612288125248024006803692701767628389390457884392913712830996519387556237232867533937208467846319232905661978472861072161508974984965297952494815843101420131221782523576680900030610672407878798412609797083110221799103061862111724505290780871995501060489576193605800536939484518116972969789481900103962234840537368391974139991115524786408518966959451671440719452288710783628185263492102605392987601825857400315460898533669951814123344151130036382556212486981181712245586770150322966825971522174646665659643160022172645635219428628494442665469552871648913322149406237284478794408246389294577671451037761576984155522264690005541405183221627146478084294567145029362645060480963668795058916981230552986371320428549962896867500144960807000607812462118574372085052925426110652902713373969648408395927165019442772910883259286152479395417319010118488976431197331212446954209496402390570162944869991688957678894968229294954780304037693767529923665549151062016520006668241156387994234686472447880661870766602152395552842150525530768339544634673578722107055783332308023829603877668932200678025804840927738310020388781589344992392927307334430298295348322747973823380457696636094349486578410615382889861427492056104704269329519585404205718888653097767589298424342565470136926141888528237001743488334588453649270554855137854344718198799736038453120375676074339223955925545581703079718919248562736257229495253803115279904678595076640069548409201296894965587435665197748340643386059962067140540502258652534294366281847688784845943847201841654943600935289024978624634275900497633085637212237447767224356971632236418101630204636111085896076805164575425193029494235957036257307765515857409994308609295076930935498448644730087007136020825224209741621506495972261191379245344515316527405409825915252064490698427453839994153222981810194896016740390674682888893799790872769801427562459345255053418660857895128622682045454548995675381531033650530333190551259858078130789399052895802256012168839867038217886527311178108086424269788946617344627595232084567389640327406978642848732969409795425959042674264447337797932988637254538392417043489722447819089960183077064603462580955216758929191419651313691311657068464804723223038283220347701121545299415757170197220722363242926034772285624383115486094839256761147772289094178423250273616165243899295106847350191526800764041773816478175565356425927503299812011925549155666201631760318176508645198934650198684354889248255394099525386732516133643718597612653134386704111520722175875416978155579297267274572945905018614289374456051559375526091044091743746655892157707677805933028877578129960011166627854064681363985156249050189013557101024293776510631324294891059575055357545461193461918771292299233307517758761845072144234435656280841395127219236479140085482578685421293434939839848934705474113440112953804153398728909376225282953458322903313894535771664474506703766804384118633781013186641959768787895809879305393346551760003298310312303006393478900685934652759619767226817225477339144125844783751026121209867914427390998838065053547775705055296704529421271757986831793758553691459060622332008853052360663781710563379314870245097751126481288487287188483704054814747317003201447678076550136037196575968512659696655870741615352271268247165997607775259465217567450085841000045557533230676388487432418092090512635311559851010990060740628191891310536894403503159669634330537640960436466385827802123671441265354081606123774395586543944066767677792990039675586571580233755514812158677574491786370973283833416559755304023788328134213920519057681017825672875444755016136109019184369081220084136494422081869431898264441985895379072889060040666250612492433102015037597610143640328349633721104623222167191408720700216254141095708114242670438986282637483772586604354509037579235973653964994423721251111190264488438461438571866650314835517744299715067732547290652046333348824934280359053536851947961820175052569299056165711714790555572513866372302371971438140445597143063531805071906941214726393071623926806491267792218234334060782637097228900566756395051396223040433941326557278380083805503382404373333563330783395252650195743356016240331949192447442402746449954624861895492975270348797653965680642397873099838350300596816780546359224770921925129550928878769383661923411344628143460457511464094057009592191484186892917075636326651198453138616837916909359719530118803841699473140375733163488666846270510319353911016095977891550200759412347040520006928031759886369062763349792965695382617431804120189345456453858947992823024775463227730804773620260034655450295611694394924249452854523539629552102700633497705559235719271476364690947698315929877810041559926724279037736245247339856832311058088942821256418233800661740356071945121397003338428455156379695367650337156542655009054326865527076129851022669271311011316496524046743810580094904857373624738849172521206262679162355601792517835226748184919312123886409006158135550506118646291874572889092483274934435183638312479926407782683926572135860679133476879095882299711139245761332025635852370766443024463978134223113238272120231427912659304836353480375649145951572643531515992586990384131650914950425562598876775919299901801494524933217001060883287452129008287824466596806874076557854045738010456973159498605758826713855241285531878034842703777268060043063634329420479497064441376115980908198353271953141946632447789753389350771519933159983842348981273911026427890204630968921891299981822331319443302323971009530573621084944943148698969759689431298600261094404636438478962349969326786257542181569382057194356831813050964762427266298760077537245843435131146602779832332974095880693977580271294993461580079241943049517756564626516186337018275512785013748708544755660840192425284372353720866027826802304223346079616008516673678073782894816404365815025713296439242711235445657222524672844857795627430351196754613384425079033554348313642613497873377362856796643343500445571504816688653567998723666040735866637849908904385337871482155413772086446542992295296319628273897725263002369793619336176776688178968216979394046991206487511541545739722878681565120078401450981162118725222089539414557316530696202471457916369835756575232088404306982264260573908649582067667315274716149742702929049723850269317190722274365071113593579580058309863863614007638939640173256082116547859281866391385175446509770851433670105155068126580310971167532767413457060943509417978666049939569792565171842670550644624653799849461289180241559767969990614050357574850032842350776388038412241241384160638926318781777322687248423041780827124139516239956468229026726504010942047997037147443042437381392422130072894414099677413811041004586048849757453392838970464147028629534649362745029462422350503701583530821221585944872017746598127504480728138488213645319970520982356442329017724556475206999393952350674381905675862058347246180269737289696017145188678853045381152071333065890833097738949524179313607249455540623943832929994339076598879606426257903260337415660819591019410807558724536266550942272222547114144042422982517076454578954298801776404717120634333242110947495330724674109684110688347433288352966713116843413350915485672698134135031512961357921009196889426002151710132365394343665300789041119958360079866238158162711811590784681285681449067482163997824769167633503128711728225341378820619874508301257584812361271329087939956824507813725296883717294545946686401272469092066939186454927842728754382035967296001943952416245607370201415592274283863409164088490894938928597029768677085963889039160379803424282625099538756930621565582674070054570583545220842521261797075966203882582826606670251183946302118278873123258946141181079759521293268676379211447238885671163213681653518338660853673412604593781794640842670315523770825547282572798007468584822413666152459780696389984889324684850896279534812214067139416219214434165045993129387727432757393683741262294310415652364562122366078731359895554101598929862150422103413138766138214649365835806878246988039878158858992435860817471384516513628739069054615656558607244200153097044638635238912829718992867062311384222399142086753964288774003754210587483026912707615203565359007175749959777471015593884818897268049697819528234006633362749539198479299404571469588010720714262845237652245209336917319273221111245809168374875810273562740051180876611731150222719492509973467995488967394087962692369920232038679512779024581074182179445701486881705900208601946934731147212042504308233156431239542944084671751822579008735959082227080302292277170574856036094719221211647137536047032091137729846947268600356464265507651022728908218436028764170448083906033704625261606816462075825462405241389417687714397171168954035273954382416085842597189501984544572773093740950448847042792493367088064649367213364801324422769735234658294735274985168056216431793338498111707651155859158249188081543687594154409866887573392020497627542651465793977321488254384257525110143806992545419362096748773482409915362185567072935713713529090133777113586513002005765618688808430767349693114675835126055557631182345604581525994197506636718130164414938859729243993212368408659896169242563922853213599905374692614856054838910546322608906027247565827424499347633934268615165069439572682295651150014121544331136127531844878589328028174904969299926916580242648110561642349638483714441051907657757319761507103747153016895654017247347283147813346521005989142623436870993811337653365268198274272756473417129680614634724210768399627666808432274070003415647102266774139011492188342968973313148685651444327403345579168293834370385115254884816109739204998048719563310199844271472492108552307084110907993409802118568889294043010333769769623737157966003103720232199529195895308165405731512769911316504294703071531427914178667357847980419161104071174705490737588121971725180378953125297038646027238544916993976564887827126113629404858662588135996469711992905967986986416464535654822888215073638265543448039810862789760727735008971058947343246124945386241364604293900374367801450616574832407852952965774081205375055877601128752664936186692236307965394117796524120508427614866594468307408498558359442977047044854435781026455545418260276667127677569906206877479426972184889848693987302304230477531637678380626934686450403086340274750349563618803035591130202376531411852082777135789239930530845050653854323273154674613187570049659346146862204298054138519725019792605765597238963127426926037701194680722357327089149375335117152905168805241689946427881783769229916608853880363238246611556337110380575793957605239208109289198784362798436653797642320577700030891197677078535887052486404237108353038485547562245879539721831836001218125753905461785234377305587394304575012526682449197977808962526203304485450353395030831853291319541172748786011667105879917036958433696218459138009617561889693598673451572930201315945644126916096408630776955941769357464282591832711496519872670465429889887739432164125421647555984130290880520750712149249116466635345147429220947923175747890155428153652934387819549004585037266554036193901495058796377749266258756649851616572041932758694668940918390790064883570608266653197780323270746649660303719929632337328618174070775202050548062347857738680776857447996907474591155975491494667995422861302782547106741995869447568647390118082048608436052855266773073710654434900581455851905736159035897822844052491524435691554691280544528202852519972403222676737925018856796253866523395306562529189798439791107435693148458101698007509980067095820627149892237955430540388173326770105315744566228929492524475940107742658305400293499930767268772874353056561522522518289537586127861570097205805708811872328807561868236458209023870769290191419571323114606995109974672450740667280974797779364333218021835181243181482016821093444246786904409286320204344213563857937565049475024872479079612461352541665129636887835978911827473939610406654866793193391579926437489185759366161223804518642550356669506343438315332781394319232503210511928774968494020434759153411989129529899436735904368294694818814426263359680553719680648582786827154421485531335817967879916614551779949056138799207080780983469886729402506413681228081849908653316971808786852539985568893624500728298894317774855202292575157960638939068568792581494132210207571843093437435429131785763076918025918958736336645376295663577988370269006030465909963762711769167046831729521330016354850783403972742302415878728873586822649523516679332076085782536101984762564621690822537919698945682538110058095791943030799617645910107636130931916381554668033173839733667589796739066811919059981400998670888517187283473741391534049883883197012572706214848317477213857570043099996982044253494964572292815481401562944618872122507460951762817890987635163693668021791583886086314821931522024463836281614734489944909881851895397494701002667481988909625104568066879805535252536953311992842813959081811110592202254594629304141739126657026286761545125882657388464332709321131144619977445917905650765982337605986836753645242433249689079780112902992004952426015430158345503036124388725964075592531054093997277822065992015518411812995788107240121438485530357384233051275749887434450164127274577039977803708804048288779192591843381562685630188261969360603924829928695666087894905786418529405909622820299031673094820046591120935494469385521391980975318967301534983680658613333060990294776514147363790252703329055858949048059818944075850664646150746628706009894812292626878623985379240100367949774161930663737427402432762005248965886898869234413884080467314476697491764896771386125660361650561697935974121407450441425429469543057877336642447894856197625136363290005474201783161711855922451987297222795628941688360013248904072933989861431520430365919845915499182209992855349887509983024475431864370729062036062143255957590504740926150986474531510000579247067759190490245743610418259876335097266825071559953654684463942772691230262924334951165328864927851465084255292535392550054594429605105449629852399552502556593954509155728231549435402391175015332981399155339105641153919547185777152734235329405427432071693887965169936631395915317415040531729579985306199691573730427711855931519474888246647292225382286812610954863253886282934591559654557724631970043009984964812593815495103104769230932825967243660678617286338480389735904778759515157572227915072411171505986094759996803634159259624507085680614616685236951167614836783128876655837890806331074228184355857180004194967912945642565939888780901881905959525067989761006684732999840906930095703668117524887191362843423274395778616310692155847689385019084525838284342430979583867317754215346761646696333687954674753113671617617003045492424677646196921903476300829570653274978593208571305426255634136544339046834882784510279912509812500815973931923369482176918312775151425362786022140487597913098294053695630266307323642644974778255797093813022445672194849675936453811614826524389693960326202931691122699604927521503035575463334731916451205410648116189125478701949027497176888842268482585674476947971459745062501204782899093013845762272129796960593854146995091062857867714427527535302719704253338060798611474620310481238068417103168631589605984621035759950584837824680907446560957848246197407723922014578383028396657238182150857398427465342678576224669417498658045930904727675759135280388875051094399261627385711461202975415213352493002892991068145886765563869376122919482748165201655126409257342928772518072539867173538509704098039483754519299106271215286301101508116217302510920211029035371738714003962554799582524163098909367704462578449210204069898447964879151672048097462509600441505834675132469169459435696182924542199868635920894955218538986925968416066902140932350724626681137381494543390830376912197932556246044042105261177987368025757455824834778762588654108977651421872361538808134925398598093281856414085449167864612202281070070590728121195787936643472917425962461835466036692877154022556013440643205725194881202177474914927698215054094218743801174698961277814249224252263843021735997393687909040461176464638160697238599396908405068525479949410798107435020195008313396973362214085913653233311250297871980802798550825260534405905992242670474486982596617674174485988113151793318555465117955111384487436196402791056968008270566548570496060719591326678156972356850087613768715654939518094745163215222282775689313076395975263344672829903204988955564319558080120599902977614746332851558572566083458415744730461347999809515991732248854513282881186308106184534741093918174759150821450868127931076474807530918810477583091208628664351540835720633572126818031008554350643909816825230843542431141234496316606653979796159562433150483227749072433009838090627877243783379167185974788552308607516139435993653492483072038835390158884148359444442312630042416779833968385825896888925915770999395461370232414651811313809186630155346972341194525670167914676531057449394228381189215806654380292205467095836047998181699127202515789362174689097849967046844637908405275325678889440731861357464117910187510395386430235492097862123618831299455125784476370455443780681734463244709638319839468787914037698579183550336895820869218294136288844933705140842986548781737744546851939949939290130854063709873093976691790156927262438982731643608810878956436553290889630538604749814749633880564930918688937820907218671830637284581134263309185964919443875959597111417632246269877422206838036890635074498657898180266081488274024660226933118562385389287683683001727139528076371362463457695582466282874179218311510515435143522463998684426687850766227523806947439220539051683546115421487408864916821879139147546598503599762651053333087701176949613755319638248061539606019047457821477815149512577063214310036342745421670126840969841575116971293533711870505640731836242720027704982237239098203064822773039997093662212422196846649625179993672205875967916223531134594180994148388441388045841043998455949244329728301759975291257992762165592910087857325815598845009221069970476826751017026773990193090470249479322411406632176435357511245315292720547833693565289447889992017163024855148573185506497566983480430155138591766061398709481852812452584912411928115162984643824490426730200100145676029362630364467006120346692493873887232959988542574209672370948848429251874650884376727606086926665819550267794855059420966286656968336556221762703828841804423445677520548853705322288279755630278150133830547572641356367968260825495716351887678870159768471186006344412434481806022690499854072005022959106013360435245172063838593889294941988601605995427839427138595232940761200239053134041782422195649907977633305674712517960435453258891660553627222073782912170933925476806973570913528624135507028307309627089699963864440322363358667395314017581444146879441743998333270941539343313241513746498595186018578795039250154118006737418758970066073114904690839741536043708042457906835349992504063788728698299980380285557571068198726234457813577640111559399942034425721078602934245082688784868697889639977064225758898311149250530480832897358295202841585989521219124878841905280497871653596518646781529313377758060849374789460735464208447168762137856663279230574192036932023570004396196348785668890433705694916645124940500076878276077400876963965272512862308837338023265230409836877723149071087062717911242271980411027500204471262945262840248396863942827809718621813935278672250266459513462667756354006448242032994074048499804757581942579518647910392298689027040687201958119301941362685351280561520524180765935373166592010975823653849928578833017624849527333566432597382889184109248734626547421125795450427309160530220085804361031055079688561104081801390492048289258412421202236342136765571066541625151422743792445682989627325016238125036622408442886061822330128344744598205421388285883546690225886465635449309971700181058673517162460529578198191806124175157165135497508250812070191500679542968993538165425680855215848419348799949780546239298973185888766345523823353358306995123721933249757598616894391457796448797459191672741954926361987544893564174586205317975552852712039876993701313332648138648130138014701168147323244807211265527295576501817812238497433971090596889032065982404045974659429876131244940586018929233298647342632833166046262571968020134016753708313407675650886315322919249869083036401931305050563350890650364788247251446645613887457815672835717571138001196734548905605564044771740303210443410678007565917639040812821154216555445126731166594743599746015981879774055858174435811123837253374582800973012187549394540371076966877007921810437723800923546110078421001083817156019889801507588864698322760671988579062162827058388838818791191524781102132105267114673074280780797423875879908370909390220532009889745795521371258100280840517322106267172545263012074510965035762549347837624050020276795207063067700663439095114991190726549988340512837394547512607824651908938705656687748039995915888451028166083267808097199052830190544538234158786155055012974939313342257380248805392066340730610142162455497019602305589345103308719291355408014069403284256000752902028938814970769384106376299523610470947008817452193535239838730449123957565873738758304367881773799031480283168168731134429442861702349926456567617758880215713196715512887239293788242536551874623661221742792503119400432711447066216463277663324951204906647533725466946926385111096990033260272363735056008543339016768856378752717494211876101664912335780167099918591124245016049696965241208361779216585927915376238132443976980892646553247914046697892986513852592842610068487769968044391212316989346764701390199669427056974264047382107009486929485634951901890440054722491721566221687426902735676438129902555003984986990355097603754255447231231717766335509743067878362969711158252987478396400490750719198147448239018920512862143682136995017905217751427087187481590308336189356179056342207109005009551328120068951589514852846617691833183425508206127589594252567117036079745737890021488952351760408294141505457337794916649461475065263804677699320034195841656840300118281384438454925532788868658321711229283739645122830987219097870496742875906596311361579731976806890417738846871188432532727180867195117928102267938568279981282790061376688090681109072904361042862969859674250365413965224465584464639857020056766713000834363891327707631369134950057713794844769537327617047791669390357802735329912964773974979454560279222538705277233841812314418851009787476222443572197956753953695418528282979632986183086038084118919082383396804607008569428414124712233229549812279850972617070076943546282837328859075725558855581810728555605684417125103903555759643678668311684530536547817754198708249628404335407408533939251477906371195058714468715294874991494455898145838383253307722505980771587499031399298520671023646358723065902850870478090795075599970310618991257896665998475858809772342750680642013601720090616130570979507453389425817441130102636314625770704866131377099771877718237177284209607654620135347036099108733323648222564375745636536862431294895829564482584834028962526185862480035290770707695870791109395985941736367143887988254990190163706983033680613975260737183175575838327881599772216558974490305914740469356797949263443653666424018368081888343420993542687911262393297098203440825102256256741781854921177417459436463767860119067198599942769264295856429436099763985778549380064229160067024890151707012173638864207350868502459680261368559004024350341204350868057391144617592428540301878387641255082007550113899491827007483244414119004533605596665848316231267191048512456023330880524403977922130058934969106652698960999198510809454503547336463612685874180284256124757068871307564541500237639848353216637193685414987626588894870973099287827960135710901422314204945912885279699232598132358552815260348515730910055965572345363344229574163257615713916427818884093357685474194819576662058968164677446246572646989819450752129937458493326465135433674545581186406142755684093435193639819712799816238802219302467314111564286495246329055050635563739737124700023706028334896993517498590797694523831645610243348651898972309357996999692691850948471578797182974706896800978845435673060631593949701214936444834106330081890927542107122447555977477009322958197778445775647874107460270974574385287160911345938112249913680942016389661841772623924278101986105628871156997810596215773534828352093242119488025753708670044341630127129112797690748203374119968665593274178825202846475207237034907028999486363642982059911058734905019184943578276893350418264290846699030907101557373638541707245211996841710858837600110504917952071542773983928073959164854316955057864587419215980360622803985246370155680328198646781893998765842748684082639357103934915600847509159001987050495783930441789295775918485495989364750682146304062700412593004077946895275797333521790802449718253106147862272137069180957361220056992339168797762307683171732892911294720004299855360813678641442724483569110652021454617261636441482923115917776239467810091114643360833434863234566641032071536476860497437057665568189142111042277707908730877171088590691101322116095624312536617395162218621532528374482283047757587053289292747516143225301544314395739550247764493237387021660095949132866533365562172502751714956120940807094369398761586771458111499672127855050790935977614494648902208867188475980760904934646870973772244685418781464481532721842115611715945242663545218589577373098260882207828551660732616420744376108571469985435230154035039454701397731994026284199974618448540591114210892086655459386195521675137055203656927970543781746174554005502099246615987128829408501091392700177275208933273960678957245103231550435819444073817308611902069771578713971084865488939433116640630479356966962590196286055266323889439909615431613230002034925864667518811810698540339931795791181356144940962209153956207893988606593441783959373060725963924906778454138369496277336870300954001000411730149174994394061335849543834414995207491343776522431085863985865037057192578378092946221082015972446895541172392787208540431139091100790905934183997168486599758633886211955641868525517887136842436835954048874225202174170515942024182747362578463566092127043745929209075000640773086350674357955603275135730972505244231036481757230587243026470421098461752047722992409555494333382289934798114392314246676994375412133540704907344836509110635792107151986909784499762320426087905066257884839044821605084443348456629947824080406495028988725033469111336236662957192942716395523482977918613564875361738375706951578110406384389086349201506011194221104576036231029929120201552337999852952052475041603699208725680198862050880040466554513116325744081574719165845716645305126331255782555713384307644151348238560426971790146471320283310785221509305125610650371280264480819291046305771176434272621059457329087855754133356181379625290677855223767313994697402039550872903897525420233143582648345174504144085800774631353668498246259511012523284669999991674970777666789866183042043526316924503955681080784308913544547807791461868965791564833705522149284313580579075594176748004579103515593584750876453710878078223022506828925788506469794796816709316863880114015144875490438877053388266871077789416138486553095460301478098160617660680754665940750824846566467284854019051419232416316908032545987971971981622602790793069379542808132228862258360999983009729663183477820173137741377453680630249768476397984117780768855148498393018390765711895156720510845017679011016875600786675522243852493531476222293372343762259416024932561973452680713199602068371219052848601442676149449694690785240318330869905312592005191464917719444006618695025695063699751151106170631076646358772026444056789430295385985655132633010425761168604635676993649282307050901893037905803414154413174511216663249073898874256317863022231934356010342089775809604962662777749303365226634549557601503213565893033098907623740632243492453256130766594049804098106391851740541458426645001878940723973531562755166257150467464466110604553147528242964301850579665027346800715580096320935253243728508816620243945654576545068976636247357503663304960018816072877754594531869493307651932600648621698457901527533732256584189404678240174190317909489352243833181940940028122246423304432161465499947750588417474171962631408294479655039172314284431248176666077103845413554483643820719170808497743812668713649975001092461907370506657235142184610956724636037815352354192932868264352813900374264560347665006919902165750484998535450857953422562019181596437026741994231596692626961357204898724590244480177229998608810106652168612888843691504149032676073997648987577847405370750632267995521269491747331704942618282921809666428757690881604400658536746797501266409244532913824269330842390023922259702301882297557479384413584163755450230653870547380638935676763414167500305497511329086443286951059299405957486338431606638840186640628274648496647631376054437376208808403410101272929620899363342690235745838015640371583478248765799471110008451247315007399612082056215352244855052521736870609993792984872309611318500000103926728602057729321426769668442555073346809586339442149661628608300455034572868296271133209533222859761263777947194101580193128109991950967126337264331539934630784554194050310322325000591887985989146860361593185442373609191436639100074354269183184837048430067330413052474405298229824007750730283468708488025946978704198083621781532131052449694550587520072429434785393831395709234012266486746502392848603881469353234930237685329505959046422282005903811325262232745125656620326887160627436716233320872935670550780056695490912349494923405772134851341703144956479365045414046556413876081972025865891136123548593822240856868299825594605202529332515963626519553657392584001958413439804952298649569584547121882675668294781260188208327894890197830027640459138789283343540084173619604496747275291734152767847500203695003208225785177347740132570661500471693390265459726807567405344854790554122602577146270904749382469514705918392773763007835562546377742968623576564146124361086478286668246087910563962355046153622451576539042043377355780137795593652068676397757180825717661451731853161533153830220667739895836471041727786268824786779611871041895130559593713632154387484893881411525296290069770840541579934096356457549290512923126039891719489457729231766620342067101199773972488835499450013875708440014754941193583721265721775831803952807457728844102298322761130868116317135966184244251575736020065086775784503343923831400463798321820910523209654415779162172510029001058948951491265689395010683195413328328311970197975490167366244591426043200664026313430306920719956962623995870384368720441424037213986322213678322532153669710753045831900338757944170041356577826507107270600740481382371132127021901235744687778945400110291746738532866016007587164964850998775677348654522856013099381976823959962210265514515510503835294132523089143053919358996836024990516069087775897672890695552508408869743100398044433552616860349229630284853640881187886434267540350748803801774545214574759925934303924073157119039452270204292924558089746070051747056535018446526387382673582260594146208235069804587094475638079139522767562864404433900499874728514916281880072654404369403178177729622401837484324577215267454871557488194343943025003471205907148567421106101655153834823882056628482014232103598478555336400379045878728036567164297935530325461535448980752212245700660698172135095054373046895438087414607716260650551850763559800679465028583156071609383164303409544303988946619156118285902150286046198824982619421181516563404424404244685315266709243337178044934757986111187215948275949008396483651718591338333621447773943950661225174683327946878979657565320570819945606562885791674306227507230452622390905177148492105013464275262972563983397571298202520058370433731156993071707795307992495783916723323053143716770808581603542259552857203996276076410644507849253445182863336925130504421986697752368355669783404902660403765451385453945313645328958112606923600284022683716661258654687064943695308285057899071751620397075784290992209049743319056305530571965548788469565848094806421642690333764713023135171125046329938664763074936449182931173212398720551556358528978256026938602832680306798763879770828618773076718148264474822055456659903953505889275673021215027998994245630318958784567832713542518866199723361081219432647567483788130833075439639264918677894699865330120481847574485462195515563815975214852865011619975610478552103480225575018398294043561649623224656435135022910011202258433729361689772701935914393651065213279206374060633208654292865319019651610493211450994480630552060296159099343818188820623585648263123557485863256335342511780171172334882588235304344651986711968563502249822876454545210363806512325449782736056316629603343223753533915534070408174204555297319083057081653158908336255062155598111081646766729840060709306323301051651049140672415514702497604195180954135457818208694963790547024815979904007012135089640310331952736227938515674021266744058307960007163678351597935858895750332929995465232328293897707617647038352723022061755193451050668177326236579000863671084411491021591329655097059270431441148165591743774263151971393009104122201039988136589260253400441564495951668544752763297770611045474227999428905603939728915603241139885976626169409469156243511537127244663135031878438798496669305135414158185463258600886004643947216693532641233182956311072399056042884609717307039058928148511472840201351702838310840325994469502124262916477087186112007202900498723428914185816421595766024489340891036224567653508473217562555314261251795014312828330036506139832585415663231083588384671213149624610618067806079168777196236546621921186374433025116596140328955167449221613215503750147396168799682807547916876326686174036469482729346332362859402235317111963526811203108163884492101462954112365070128511740706075128012030427532225479011713931300424543003509566135360013811017351709753774963846552663284271615898595234928663209959744576895831580367618879647152117104335186588093752325389508118112658328418110729960384811150148433289798889735029633070111984549115672170420918067496256441451643611969796207463308167795372414987745161013379994272406617837114752474753324408973778483601553280068594001390696393614890182086777854202746530290036574986255805398007199250977103635126781268674436959339183397577527517927688233127834066093577324066301344669093952250227703458755652677854481460545933391490459194167468045046917201878382972795031988961748405218683065095695606227691265525852464562692245769533734090750910846702332619765237833222299130207857077109050356752368179866140519673414167532302838218390439688548564712143981826676215369791669454858511937128636988097498092644623367059475637718919648308734225647921367955241987032493798068033457661387287498271414223168699535832991242500132147672766073741248151737712741442441575610717607475322931441809517096027413054527482131867674578998703034667012261258822801652444236604572125607171106456304300674049757251633976208615897338567117174919039327210267417189593015755974711019664385759506084360694531251897096395668368330098422139051632688498720177000696628253573045057897382517348855727499099177135074238438945254098796199117171209118146460592434210015066521653273229436932098347430635948733303514252930713210671193142511150624233108522906543654200207113751479428442225247496619346278477379956029668193598399380694572372094167630513545262727937718715458743163636920702454199388577297644406238842517869097455186420205669510381629126999204373098472303810402838002312905487068261295808097508260854792596975935842040774726631055347333915714719470827122129814170752335061787810482339853508197398650678797554424841119214628222378108852550914609671424299248592168598430974140707664943875254232065587315560148546401417433427264462772575369639264036508677705273750924627787922297117371655516096751409513346341182388511743254495869798418534434369847424603477792544328650757579548023032417619509574863122904835583177096090377514464741640706119373107083516527870824045889311778866443017037191565173081176927287296078280265637638659820814750829992953041730003990482124681939315570242286809479483908589715311104080737327243334823324302119267854046563167380800109486527759870763963578301330847760512991057808481778598148685716519273647481760049214457434927051537617409188260723995974397715383994252869765855266540917954473986680141082515595127431091012638562886745049374448117277147294189576797407911222805334451829480733429877257672803336943477651680875522062563478640100958315297731217139458722498515280766426442544638576837711666726503836911986453501613304451909492800923270983801054962707211236006291996272483279778928910156021667814021532048760467721459392466015401548614067173866975614268277713655282950551137942719914559836047622505218836461110555894300735312077610260197922835987547147226982025482681007550727011707261595877340110299106811316503611262460461480131985046119014554054582053633734487384592701101307744280272750333397173677132093849779273989391150265742866286714114718966338047930242798308646899784134735091507066823662581213462691729549815297094996596424900791663355180075935986264832183371161053059494978720933896779157339328824873586955555936695916965547458432967941113222711770716422891162911322975477782475986931074905069354557334337213098404756466674888215477779466739331192232887035755709838217651984042350369587973468961696641974619721888512674902588181054475358776121518669045451965719303180325150935116442874342800803183049636967108034582728675159375216555370987120905768754827154259049317732927167443594428543333947098538304516272304574901653763666871542494072875878087781579651578243003815945305317937500358908471858647074326667358289799994338425722684383435997225209148866880513609450129285234222690959233605288045662702836972306463945936440874935286983057692523061755546737452413580914328001785496095921403239509125239454468311914278542797069777126828879390328785656871863986727841172932039750094941934730940570550220187634219058386009528071183090028367626096575106038700623018113529352246733797939573434117252324082809381618794525914423369084513893699367736068689307089972241941161927809108348882221234738910556824837389160798218453836692771592359372436336909247777417253735467703289557702425928236550107052007745227300824670607344133488837806165285078281949357705470761460878968506220365727861168838787318096101857885842377649459809638343473417226991239284111357062511749802015801599269850584597671818530551895567153660755139385954478105282443490510642325140053510696465393972428141557766305896486775234365542859989352807379384234236447294541976443514181951378167153127138478325710053882281644882453125913261091737503729063885060222231836911492973971900395832047445948673430549041047011128029222495095024561923024422973223266619003142166928603491144010233008195180327103470209032099339993479662584013329769592494798074672134538755773441539414989773989957447063105812256805741410166002028000264445151497472926038694993266941612366046333947285437041448438023841474082491785264517677728271337641780230741970760122381650574061684777116022406089075474104437679015294913494968273595224743029080637269121921219798571146269748961863973885410110195860844233952912051871597527449620926662042363368796574312870021932962097818988637538029112132876163547382416462795438437298530145820224034133206430866689099121357714105484864334308735871588278153496161763612412273692015523927231189216601228333671166552767604521580676858036438101255597255136646970424372528139526805762789752283512776495010862153759060622833822474357340939350153608748317222189415027188423426826361665040825852846843393815690001055268277803742054520418643967473748377932655613643490474665032301446975219715884968591572027087304532614090792339439045488997760380364507319209883112210602761187191740149736722445735941456058880660381201483808643911802091768216806327836360342458904989707935879941814319172741548945725761341614686825702250966207660722049442257319612967950108432597401500859286304950200546093396089001559884570609710154292685021968726177544703521450061690790740775494282415870295241140549561909136898365027344952164218064005140393885871460453375896089183339281738573535729805828102848265129171410379282883466495037409644553647846565061428210038469038680133409810447082888650302460537216475983113785242018823944507919777305443733944742022429895709027307411759234203192294182916191333301964036591243813822140217293094225886817295157428680506135356730754417123592263309375579520795371618265208723606491601054078851943586970639372628132546476998044522970318362623306551316226083498064414510122532807925031697161710819088590291335738394865697796144812703728316352610036758816619016476406097810140578414265384666654137952689165484429593229072510710918926968959337852415729506905119175860616773825457299172570940640618970320884878656306494769248255148163196415926551906134282957732717798453352705681063021225927433530415135381932272602724969819064686847366206145596578284026917119796542217754886731553479485820679992189987856860508803320300139169691923229486907553034344987249303431583226475617815024369565392977008948724276864394667916672854539694990503324232919347618626015516707379132276150462947105630932793524352583762694808675384765016945987009224801408654346829350358663662290969839802732194979036222288271132434161263416566622468594954178059915291016754328809181448798373038529731685780920227224222840751429605449165047315981491204560817404738261172818840365035039399761705987971356264869845166120399210406113217802987447001613597457360260584325293033366873766844455754124354087459701294114887010306419266723985090968270809513152489001593628561373163195970762416763742305483724354469959865395126348800628529493479743683810842713837750642462037827212068033349042690068837831392284151725897447043889244610640950842406958679653141528824378173700146930507339089394444831978504728278877080745225621078263701915697064121309234420004402704120945890853529007485360022414725033643908168476203386270869810848248951401230302628210289729525881661755895309511994793610073723427016259775557013569868605224638781986801433599105442616341913724797779393585991591553342641938151836510967879653945529125368489820010948631921094605935557590722018913581414297032647294545289296677876673477278116995744530668277501051351603026265116529785166920228063349665390426484442222695644456370521745337292394324953269110206964241323801219887984928037910042371679939921083833038823318400355226674409707980668590167375247891035486714432612361700524454569896675160263130534536224466404346248177545024384398958030989333253152482971053647767819297492749288592887859966685704852501285728049939599514637489906481305698714626478906853357869736513010541891371557188087819264093580620855893375457886719722170511932841151239484140573445988742499903842513208366774109010861353854137489255112428006329777777374287978725983523901639842628403462820979458201399654763639442950377229614068404062922783633066396783983758378727895019737629505859274240126533624732561526298256562778811136716753910910120368109563153245367682587372149694833594111607640247853595227291297288268085816172404928479309877417051420445079870126686316912685635147251978972329698642809864437086225172715697731230456558363373423764794270900230500193046718073734775775556256114876752039762244496613327928886780856386752727174261134267950756191906125025731738694988103807881946548249124390584030875700325202866125969055829174463013124932019320883240439078055465075700191088966005704803251888597022728798605334736282624939954712695145327830486696524559911572686882306116882358532382939385776247034890545613757678903029359589116659545573517663210750723672653173014424335597454593804995394057774135320540841159239877591857411711677758731004506695668684946243084741607952809798974726600351736853741356155353238686022152155930714795046085744073545956312640296041359164333844367460631631189490738821187837338412020891008597172252839940570897065276559034974879116394579593298823291484844213877858093232855350606981615892735590636674798353508443259410011601386447567942525565053144980590881907760160813041015343221805700154849884038144380233840436295773887259557652887472795420307643792819664201935794376264843863320211267185653230682196303723414003768756214244645231131247161871648241634564465135646260301328971825754443117371955352485976479213759382435826363029310212275071953820785820139655869757154774997538701090423247286243332916440473354691037435089015604728554147888461157797087986764694292298077711575142980181886646577178560589898669036556964925329261026619063208250344757331426347339542008261493636741349437675908592269173361091314682193677253745658011239600712540313715168979923299310881537650346524083525015504826177009677188696509824233455036493028032015680778828418875092307938509198773913198429000937341917384758786924229485745317124743342882899788560181886306337966995145154314301413822154776178059069524757322261291447565261978339562051779657058310156720024306630540670690648118546166079995372181858401919967160925612097431335881101703338463736151081730509185153266231587088853725108078894263859280143866056412751719341010666907989668815102025376502120003244707855125124486323039615599262626802278925328553518753316510850164860241828413260776862825712521514363499338081069382057038223284145466813395475370898063866393861517042527842160126910769735254125411483826713406050031835184350907516904736440663209990921214204953745592535888776511753093906263579785637571316954770398798627361537786336507444808132766097446871823579283499448360051279384454585766578800347469394266191657452530634646594919243501067925476864432034224254085210542137463687844405637205296686371387904462593795927228217570478302029107418380006042155459215958533734472413660255393803901444741244188162855778151422111975770350056964161548455766687991783905330126454419247724512296114668343759289599160228908910298693304042327896400268688945594694920780318512521467059085373816450241368503881478626136426027910205356145969227431500886657380214552419912722783995437631207132259287980551709881835942364476484364255195807475940179955955515983405477897981689524189893074362598304091218821623495858941531823980148005728444665683320473466852816960532906058151733563174399471705641572328194111050240368787573993443625256369613528205402162616889864800619648291331350858594991742992506224164001253353914528486197597956313656659585254300538343280999367391256272960824484532169752393034152915796609367642568542691315638170426804412984357991290668332603102344422196151062283006521727241588403304278674997312984673858473896002940688530780157088277704319262597860177332036499210422659571730816498768889341974104754512578272583085354496387369831503259612052239627808212016650009131952887493046281455390223685532065150742879611770884076164164256125957066710429927724647978684616706121834226941976709406782040432068677826877718497355000161537723964151822623351983481540745815497705325748625201210499967992483532930197353074111871741182683590457434630320752183934549572873944225535240549549065577659481402246537958636208424706602716420121716055375784870885868473852009416622880888135498389525710226922783444993503750913012818307876933340740034042894641472871557456099149770742764869718607566161122865874675312894215364031335435795246736353704946225019621516417382390266873567970639104588870916790593166767571401644838502749024298152212871738585757379814354959399334391819392237050616045173347703257996766706388289060629443803552274713025930057996646844130046911686450000238780037131077367535864260231225558600312663234480143559301077689126505826179748768931487657923257809238491287139270635310528848580905012080916700730527584712361670335348510953807548124939229560590720641666130775147826466984956619087156865700865565588528829917699463273862155864737956583148693015776286883793987617860763087544785856479284323625935202881114977315863968133698325314362999288602564087426510365704294190822963676730556844304495723100615800439203584398897790639976343044075484314852020688110004479384320817293632890070952323486571578852448212240632398189876019204691374851964295409691658474258634373527415825284408588663419270395055168718436161683831511756842366907986649819490251535404572768182492059422271626293625212779240598166074324743169807471516810759223105036965045044094529518237337110941711668545144602195474340054535631439501703414009057027567969640244535507606675268842357644222963024706510469288672813763993800150891399874139289606701155428173371675684270397522911868239170289617812156210208658570224920584859806096251638748282513971261065408078423059934627451405234853322359520340193385639854934343843992033607728670060514181190970089642252881905351508307617601143441026809933229745159382634239153032164591196367135108861375941715763857018306735832732320386344121046028051634246708696950493550270203053794884643484071688106857348641806984706603790597023546702229877727445432209592493581848150707921778757233243836593094164766121731969297453055651457862862693082114494047703565792881074593600082154861726713725474578136780536690488419602070356751408209365437669012933382376490126296067502012675902739258908086272407324048395598570041155161725166699349698348650174120456830646463779739243687712410498991638365336650300459424003192084253470079560647496930338010558444284541293454740730166192796555376500358373866001296623784927699104703066302477905347411770202327334419090154832316626310232985211839405952766000933475095353352065725178209721598989141165854522087208817943064143183093624587738984323335263384454637294709357620412175466605069193272078360524669433735502184959813103625451412650125932707425939786156939727000486970647489218628122304724413614298792035577151053844304681712059678439860525454049792968697211500399514943466312287746954601930579829692094668106399787601562397490094154149814052778169683818734441376666111455281723255113050060913408672874794682744540935507273984366276284477675812426439355462043521404467811325992690947413858421598182451410150325435983195179925196029153477823067384115233252987955857525658436314533638486424130932498682516991358867820550037000039233888014656330048885866295157483672131208141627572373869391788647601233088959397195349467287502721630093464593279412778124646185061096588048046215679149977583610496442046245022314529915139962417001061754333955923934568874595931417547030115604842901464459074317861280524086341134482195791389341250804443542092995898571489374515549179440329604200035366461498193234815310523512722162567771192702530583784946515713645011032194398193259770188775275192448762602257632635451762049637811913430293558855510770212404835258503873785754169760441916057267281474987569155174618599824858780056329343908427864765729678006207740688913527968681696793625446797265020959807836398915530206919920025378211849174433714407444279373943544322593221513833593080005756458631104605970809820280122833621809548778115977064588062630819150130521751196424239445896124033775267500253593610261401399088285302672705493875543993530509999028052872306946892954448973259293978953282178371970484782959284345010362217592533414676274892622699948927962657241739810215733559229828659248351822666430269725434611775455426942332998547224806643146128534053974875500662929619392917254957691974800148566496477680170841690008469769341267926468803379373669639412590130525725757629993178134151209100867066458910184158603111575523930234782832031750862353346342742860537313037019118070209297375811291811268678438723603251301280858256257134334062504194699345841360895880739538568602972524176213516802022576144410485658609614658672902084529982056956048678542247939993161791881805667095545701059354126314072774014771836155119446969170617082204239751322736822293497699459189732144175158625770201843540660820384815778917183741491386198539038824043813491655125070616679097278629596808801775557820190040033329328718642386119623458505891195812060492861675911780047358253591048636261806796073742657171625841815615651865461749880559945772369198494892297597570436279068763004423797130793599470610319716592796755065391075120468909809462458697488211955176794952192798832947756729695476761113094996815297477276524309899158717826986394964659945279146523480833333286158834989877748686740515330749986205900400522892870818050230847770568604244115152895370190811104671816345966224296594828553101662412184937800893556017566112590412642592591116743046831216284742571092782726343386031177390784238846993286221695105779081417924072961460037149221912667836977052904440850436804539376428302182057641053793560684023951320974053110302098783330073265311867969324392394859042558083772996839704476088954904804453544129527603710445740317964942723116274496734545991482454731538475169917585333331135723351383146219949344253355689433187000873573441829161493003035938601038888409282927760511688682801219464713379040292809286962625343213169579573746987494971681849219400988592774080765816008788449411230772308390427253370707791888818283718093568561249528775198737295605129860921900102149305603297010405818151018339769831409891293208260196154270532879082532147509960941774380248640194746053572961089379205968531533463867324589373425597281326394767575863926666574487086178015714850951250508579180935159432497021418556021674362413770619361591237642004187764452437716649239603250703583856180496011723900954431186566394882036531115713655193817351268907613762627882197627745157190092096742726338823549969576162490322330096717846620919773784427012333499171107673651536751552705199593008353293854681579430956827276977444652144490477549552339364575624068445792752118374568373421200536912036347822539719884696153141705732068747571177563684224146588585903571552050133548825804383515250423961687057075402369093047126525250554844658633130872531374983237279568419616005813821422341802118643955506735595219485020321152408918011762500469084577496832361764285964127655052151728464082525398267517547857438534618812705944783464832958611925612110218756307039269343551570193632028315692123275092150698541291727477572428891319191443970164224941826940377376542759927860406678667501873037312917456372971066438408410613659106601389506447169045548751332745404141997061927181880377140336215150513451909344120722255259125443114241392002654608160693622638094066322550355628576718869824050624776708585817427496157956129529337123592870233037895116862236258701268767032874603647797114305768935689385153306936463324717559199285873440916674102856381213941972936819979686899523797821112336888186770485755245169827015337043026536482803483285613004806271688103207127397091414669673552134556092734498226620402129588908558033809673620926983338452125300281336743748815107276783528036462671915628450523949729185793122576956706400689882699594596547915479005397922789658610488660953085549469701774725512055826506695423033365983840078009373722787430647303493725431682505414812925551570947407642528790899802932260228818397000012369384998486044463967264918375384882335323454357352682767301957617610875293141028475943570846949558579868910397519826806889765979038571331629936378767167678083079607863416705320972493168998773615755728342725196449687797090514172901951757497717688157054483984360967184850354397506757314898487247098902459969980253000692116370508037326019798549733148796364039946462229345335393986561111460017803634761741042772470430779319882459249555368096072829475074414595554005438577251661982411023146874397052322047118634771587380328578476063027575373323948828742739507677571295465393577560105341909430582508099054592924513430587021518234981465015542332961060537964490056701168885474365710098551015171079859508516991657214146063018547094583141345415787039143662698355475898294212441584235440617154714011964786397792170996979777477773085277813691434483094064947549114396078360457183653265544119474133208045854990240809324291296503307612189750769112377209152494383481820741111383894003415743089968199869623067347753213125552060113623482880816942406660198419738313313262128402965056714494307276510502263880578632884982867027426604249958698620698010178791753770879568771927766685732368426204630493944537521531478713835105761379648190116423700597273923324661526535220895766100732784467554883718608221221601755057727652286837292070476463924775240533345958716957421410231405813725922111977372568901570868974702888595467173757485066387260840262750589816482003004085522851177349793415541875413509917463585363783443176325297371108342374380048734039718446928783554611207172397901265412644851643539618837343561067724148694141552520655359375370706892721785224109991030510656806104373427369270205478126515706466226513647251627163325153181405880907464785584402718093638583078239031020985319265607307667955743247702697166712642494983384563403999944269771888440880466387068330176980591984684868150446326826817804303509825762560530256122663398849392782758037136507872969752560042197293885489328324684787346801117015465326302813717090033316696941357807299616790649757194565906924471750108203245488806894371177866332569695264474141915922733093235142273606849217607788991416109942145626111460428486571953424654435364150210815659459208800186394026385998248075631411597173968837629841818735517737570080984833868161040161982394241778175475492863003878350421688901543483169445391807919314201913638924606152188038457056889131759223157810676099070026797019903068216315533975991567082849508094717083581930602078825032648542413233345872549681570684422521270543312067211701169915946033857623438289710134877029007507255120308671046230203530039601820842687604133255864078422009829782350485954738888885147383171363702421092921894408609232792888520445715551851030399963457730033888980947900790432480006853929651313816321637767180569364734553211733279428853662409175254153802030351614029182963657918900778765231814882131469325214671745258023568201924318440405899905864801529625527665543055862817648876975639790953728939170250535297125107975104359321316297759813345074954100148060099903821942386106852458307311437429542041012336386328582201325111925139001092659360318559882667869183985722539035936420651188124084588464133623808205463006303804666841646669839937688535430700499572177922602229986808041282528884414931923667902510929361178328693170719222676405463549085609193898614976625185855879358693932746608019319602376104944301565955470184529003941522313714320679980375912043167766738517477371351791653550008619116662642973266618013299170210814397463460825742962483863632043500089675777926395550904916177023186911428572569884915503220024143276615450742096102465072468586849978478758883432836839022652318697292943279933052690843665080243802679495973431397623560680677687362662988967653565299405598922560506454819627731715928821665444835314464710326103706674836870043485584495409279262749260766537604790549162139826452248148849471502183267806699196583227401046387708355103045292612294860099535953182877635169958054959054358228138159227207590772113518427614146413803137445747577143063835473373833409220669901156914858390654985939577653303842446575811327456354248089421143588982999416056778450510836095041510100956790785759569541643609143143172722668367695614536737281419333334933244685046554603308323492725095751036155184322860041572065074994996232030563366253494142926659251090857956065911120569682698702622790420556359106060608341403842715888559516904415514786354769099214607454533504423397047020428271442261320927444564347715904065666819139263287894717360521486434904412767743124981490720021677987963717565950289911837759645992797967240010662429857451700786639787912944275238793709889700802012917426793710694573267340162164518820395002281175846383985841240872233881609704748449362858282576295035081562213062314603537199363766897154358820485074696181356912474758238063031782918841541635557933470634372799455469193934090467839459225743608013886376473373394082158121640299726363523157026490546969119871857195792603703785615717947082074459381880519785186150593140908986275596784749683656411356875196901647842252992547445761649632544520990734628055449753217993926142501731162947993494775167388701973045956546029767516093077197083748368851326057448326186342363053839047487913945466378843594996815082324654959585988231593322475021244462331223356599465904877228419602968634427889402549169902043639302046555402480829671075932643519831087890464967980123669755383403292178530824976703182031537398996392688755959923518622284296987752756585857033794415444792586826196547075869703891792214290224859148589233574797742264031897270888830045622265022230527142416318035096232484709607837236933043392221514167141794395514485906711081627651341258533200384570110827498211376869775369320407410797006026959506821853803793057355251871432567447946582028231416849150304332087418807965498383757360810483950055525811742775152414193521816296290234818405817698915472724827322059807358405347326333384566109224392971724709733808983451709501077881984655379901813460728215443051892411329118338042056930183670804212268937850019292486585608990047441173741587380028624347370603977120739908449507903174484971018449961172335151227639219868173127118474844190732036959025065967172947710543920526966038576811516633665373807424511016765716127105095264285251997308545988998358228568668952429258443898840880545543457366996486888133240448761219398307934775536064071820150560269073610478008865749941382963346342465870614330679085916720393050686677714898119638838226710519629151783581008654899777914507315097262988828846237059940732979112616864168465260706462316930068603589363306269843887034453742281976135578450012962588729922209930016215368511428224962772804767412373640333601582742297232413600784281048748939078602149979604092747939098226081373524371212237759014060721033501121962738935744238485833849908514351905164890238390023630698475787687411703339499257119480637747138011065577255962805286350214857446252034168674378832322651768069238580018594592206536835795442170212791816246092189050678106542920909213724299224774891966103817136483544684653731783151130620411694593015172634437844220243303264278655903984735024256567560902064944058096950307247246387973957193479450856099069370486852866248726638041120331094755773129632123680271591117575358609732909198048835190413572868588840380225547845358377121664883169581773359263387350714980684997701118235777319736768095343312444483315233149206756214328622421774984042563630687925661436300613432342944205640941876443894198628090615455774128920165248971516704846657333650567433486369901761217906648910405759749476649840419528545769706291115178453176958619034609507056087734078538757821990248071399901030712915077108722975914011973344274271812304087080387608068684627140519793557981441892454251683456842468854439233739182607580112756426465548062287950748441705577519869860245068081598527679094280347738997469351910427938862638018979160984717498308174919077177110521333655152880760501875572630287515949164207227782007556132095311214184067756188998978656933291848075796573292373679463788250945003593107618077378935661832873382628108289289997938260630130507681022899991219468035724281364221301654176962099869390276384867078835317793676399494417398289337101134288807475948662685425022463618670454712517345712375131664847669536526657009868139890859604981997987726462871455570570489169775205487642596742295471097433743222362439724307743476214686485609588351756980239406394652956995952641781121470529986341644006830583682238040263981021152765330840360277622709691188101978858222751009317589185119327325080993156164156995091486276215063873667059867736477791026081731335038656949088559207238625943411071086116952200079585822826640210327158441321789484868515172156407905052221792616044150085058980955050553654520602641263055153443348129587045019999118748360689138077744910739879800158684576707225896892014422322935765539678387030213738604214351078948225096859733071692363407900316245454993548549661507616896915531152958714786482732714069096144166540962296108832883274417080575447769907862046449729734337614624815376507431819179104229948625867894020069074840709884178529359834422928689498413293012768584729535713148035828207154028113034889620588100344579937046925499667566574896599152968159213460716481977998931380971779652373453499683936859392534556815953635635898548523942659375836954398184761428881977320626433594301042898066822923767214613662844311085359231058628376599057357573079511797364243412397261907518741648030890196477533179975961419791752610701294691088314378014883562542915377381901923827480836933063230094649309117526316485301055463965721546260533437990890440681965549369080193785457395059911838758825152399625132659517621422530863080931471564138068270926552265049540760752681294538064847478633037208703983359446825889946502580394073499974162988690596883637886484229598374526041399408567486455838510084397481132987715555162072174461892983510515905719639404023370676347784669621298336124764239718963743530082691195640502606582670100835843817698975905765950455800902712658260029257834004257316269690361436921585340886373855820932478743974960136523706436991992989739104443711863472138117757277931815276166292875760877137665759960901905651133088294996084101973247415268424841923505522512635620210592972178011537898758108697153621445425156901715658804227567293597020588965268503025828541848232208866311345062784703602476220159711743845981828696987725649279528911639470588851744430348751314050166425574130160817740163030679335148244861891055291634930090813248905817254527675046629063193653986710857385558033640556438857960942042046089919689289586857392692466963048765929430206096610250728591646389634431484761019525258085700063549877750225309089431127889985825472491175461126955116171832397378910296548777399869061608552884562795656275264715734076545257519930177963309505300800527175602326041801444155716104069455890570159721003083874024874730546806419533417811117601082897369746375833182756841855923329171747486620734357051189467282654171585267386658133247253891954233735912525761523830338357156711141553825560877176485843127968710643984274386574094900855494042846701997622486511442918263141915870353265396023468535835317729121543137787794438818827442505668392787280245181817703559100387107638548261127297093212882688149512878279370238398822241243300572145363228159904203738401108059635780780799572930485597261230191965555268043705392642249970245787992427519453941590768113175910535957422933547886938667741634364158431178268828685475555296692627253918119327602078060694632119982872029461311299529621331126398558776231140117723684882408218227624785520709852067399046370698167588808100561496746616659741487862863194745826374832311255949378026541864645647615391808621859612424196742788829561556065696530700096435828201819850452978528902859885161298042074743523415937538718570448924036479280715227034445948697607708281373270156646854731074947099367279167459090031515421833831725653562580089140252270644768480485941737196229910506642713138603199254214522370056823173430071053395485852847794730755092146665355981917823539841957086914327444530280682115644731306695036397737839299373106203869707428106973125567664769558759524906178413493100264980957124864694101951721364208364188589740186067296343236273366108051806468549439770821412253769520023894763806312539546367793988993925903256765879996030390310217893140089594646604886469334806675713813631968828143494116169240544405479041387664868725963267875599297333896995764352148442130614587096307859384524696071305928181549382317608431025775472010455441978212466734873603996689397467994531435172615359644840785363940262995708979009502010603932772032186968437284623894249413744158465044848492676428751119498804973440523159741938212971280908351845831014764257607748589763932608235995657998070758005144305872799673164853907155067173998120969277534582811510783571505205789938995242514697811009992734435124204882843850802781968808355497501697797906027331888192653715724954978558909470644057737901036033447116562323057047016434450964449237718811919302163531017896012174899450562727562125254010348506023050524106331809913537933380086715452981990646448900127281956347251001783962534194915183800516427740312339574539025122211628506269842309760140897166522478061508146483447724654091988707131921549451651457125274749370467038542557544145768721400436395159233439746807889103995227903900873401620275715901912977906078668465973151829022796555023629832349776568874776118201062440540810561941140102269188087435039118309042346745515911071520733801939408269896767201488338706583451210460435154112717802384516448130366671133858976217277371453982045471343442784241337011778649098347065689529650136188757120208881133764377770805568418594561547552341848899183020193988656406858726058440068785994740558836818314361026911080628000071042814535561750272485744748002879002430971073595481556446617694083596316556017637834612386623001139575128814798770520261255845086349556836298040833327294094149947156038578851479212152485068985952099259796832863792147947877438618159999843725833452741626115157848734062360393559121354355561264865901186650068786853680882527205322120682536157713688469674968040109204353918848127107956939677164949123256424137443107080390854674545621020104134684134754673476055961859225121009605417187990601510385773829557967677211083759200321977048387582880251572849944978816224433570435496736901936578840915135818079479105392794799532556270898682662663384393155703577991776267125621836308852993333495785369023511916850658514224149901003313985534312707709927576549538976205509072097866599527270693942386377119572842339520070053102711204544907993554649123155926226025861022485852775258339891164645172567835565981973815348021143925206984730608623304220986639712551651362949431321913405993035180478712299702713727276658672653360211587133992313198390386133068408272641790357962898381820694496312751584896231883384079619575712154650185672339061426366459826690958230644318125927457198255886306794656639105683894075294696820786524770225481115332125595037004108083602040090492418147803691918340796383860742869205377084229473788127867133659189210998024642050231592876003611098242568937946899809895587015081663862410378950936631235229275811944912358292796215558456561626871074554818172344374799849129563002177766241209309966967289097288331681717131791614158582935666840819115460745573180856984567449645227258266859474417203600534008486053894740762811556277496341846882811464082703198763288564076888287745439755079399492923106691096518213082708222041410265175262517491847752763921674182365641271126331593048159549043160148071752191606686012939942684141666271855585341542439922500443163985845608508202379334643015624107036283491187301934586327264832572359662111247448543409448536711424038951228440873982358466660902172150207768436911944189658065142068097759915044581021223006651890715510063866917850850565012146007467671081189863629233708052983476449724863165444554158005741412511227654346880740555501776830851898366508996639753430492807555553579027178662927858087946932251395027458901045505824991840743325602986055148757933554031486801409947138550731316600956996861921438977572074917920811842596145587046540984470818408204320883281180758176182021418378796431508468415453658171713389203837188244413963843292363672581214533723528211869165657472327242868158533690665640060484694266567274137020363840140717525276184759262913299659256610824413139430565425929451070313584331090810068289464224565446406967428423507352019983877388030540637574310121612083017843079543152489691387789019474373485630076225613904995461886382153439760082345190210407713885384530744148264984592588714508986502811499798682113329857331114047807331451802748535529418961211075185244173806274344074155574922858339295336739428540879489243082796056697176167207792384341998405372505786196686956557899229614557110702726797619430338762293845176284741302533742759528766194257324844015420889119725062971246026122711189583555667461370370403079581070520219154339088481626277144242528149189094279497518155352098734030564442682916314474507997778918807064252988581867502303054823620263659266065745435860677983967708709671911577675212929719846005886038168865886531386819569926991568479977352215266899987973421727438561244004644044406906424693145405474400157494214160127714981159100982593227975434500536310166532687694102918878764311869080761462372394614343529239691402197168910559514288378720523727712810185153789605773841404125167568398815025188281227965988074234899288637549272737964349910470175660714265021503580025132525070841665308639061765122557935126554939605607837671524112556500179295911805347287973980872839657855762282461187919271482082572425331020538259527310606160926495758521552336152559514697955635784729927435507086009248334567856929634442554711145288467481033882190719382436678030551227643904364327672056924726074597171563046925761472438224420629062467148514049470102423964186034801978789926382482672871024033238610276503844119457742352534030940690038667042354698300096761439917453777676614201780831542511086921261679648665709579958468312057671677767264150842042023588719972087008816387198986102096622489333997076298504227971345838364955458230698969571571833270447235501947125467168176427652739764564094857292364239048116697375425488520961248398366277458263730044691051608793385389512516341330360874228800207568782773137417078854096910268376011569853723634990182056877206149572425675397560892277408791923395482518041394173984890376550625749942264431536623014301639200122108143924193177991518605360708612420897455376018966395839775352899757358192728826661208237997791569568362127075827537625342287121622727874116360252861507368139656343457346322024627024357151498774026723167920727360798597524042792623263676908004673800060175209362053627747974219629553294786609974010329649214681357452406224980229887659530745699494882400062560084113634138322844635329271714762936565623004936036861936026791103938043258875243112839675373909889547342418587149402690515119037805497348612481013550981291456946214071097995772754361090982906603534666926556352084663720448513862989017682468518599379065261840499454130373906451519520795154512204222196409646846885533980190829541200596214829678907436074345704907030599946803451083350899128457272141995310810046177027565622276493406265532670228807134664881522331694371095367586550239536851537917552836330113850575470877033935043448481399321767024260475328492592105208174105641867336086241855841095024886116768943257220566380595756263402970204475928916456705706503982826818380483017613582494916340004573354808078000583417690491551329958927977588958055731274784872942371954303943429801008281273047951078718903684963909698999495357901819497581179867761145797291329948447663938672214160152703929703752407585411133203190132750231209335829207578804581347599320463790810327813420143928661094886407568622525225327679173296228150899237436439564136981066320553827670999516046259040536917707465393366135096259509692655662377273574095783436601489352786564417762034697489751135608734078211206189067401689545666613741469237049136474115598259804661877681140409201544033366632460904847181766341219692879608519650068136832977096936111985855784091862073771112442663429507998736987760715575810868545713778675398052905900697773669762840578614729056375560431647600188450889907056153986614934481172565909614499027030437794767884868207172564373044313149602807408579544187657561559311545096713218625857657474979367108729813740960686605569434026865596695437488925659684824138182571662419653149540959809876765108591333580590097795541105709518609840059122671242731066991505476546935810029360055267169532299168770771452738185831692811696977097653599344534212479794409445571260384183821303086372103416463763284452918980517443299595157739032818471483510329592322006432227161972962944173916353042722746688866456620646721307724243195851710852724847948062303632528662063363716206168942431624647009146463593905937249385011920995089188290119638627276671731725889067316509631303152374436394987304080891177180114944786690911594592902821025094138027082188938155826924112860142475498789263144965324052285174088749129215659474109788978244444258345848343205670545513074395752966825274178458366837090971390319695067890145558854323839298828291559048976394102941263396486448008288846825047047672469680202278980274876481431033507432819037387443515462061611974146092799874147968113039816737827947422815165094242593784994615437042622833870483318782364043153774981355756804895453666949767236097351934812644666688845092691323779794866762689517956298487547583892099060396080237084651193885653725563111441091593938674079632472054631140346871626166544955642358396289539309661563979763546519522968762570747159067220358882579005200057135727772761193644116266958884557455098084645661067423980614052134227206073610059486864816940190342286296237620635001891391660567993656367815976763430178515852923071665792058274973408643101448184339083147996529521236511661584682454696929103014536694495891231412775080357411437000222117263085402310525044030167807714963582913635808009518144258145590900992273704415435053578731621616244863680918787500618980971722620546937964828002788005469858230198351757453782753277575618606918573705957809659484914121560628801475873761489895131385315804335957168266601468490378886164701230813762731055933511543811324933740762250419740975283228722458977927823670291086336557318138116904795574407621504916898849528390628914419537562070812698075157833672532532559829969387768170166842106349851341336994202459126623621196373710320856220434940301048019785089531621539137551715292352398584137766992473861709986148895918688565431150726731972486716815209796063043429482372597521641713975206279053291119387096066381899185806526960086232565754237086234714343566038528871469490014642029587167000441560601739980744111228952315749147010032500804245703424587366901942813342319527717309854841972704708445117882476818790336794642256512715378180530198030103600016658993113659356345467538194425860517184494303888630398961884653890331708813426777540497525511789685559003975682353434240310263024671797856881650521610119852481512799494467721465406749775332738667242122605424031082436528442692906794659685321510987410822932460725350602187371049754108498673456004785692741094831849540379695968731882005929335679096505694057254141513355872986912964293403793850120756615552586557621963108239633966334080268758522311214419068585327096609437582438297436061617661089190753197080007922051851963649484044397341409829779801562354179882095198621047704081522762402788444945116367518544062217279802037051084512401487452944438790756732003766727724875325458223799232969661464244489972436130277265359901893292439715242786897381600493164760739910063089635986747187720458285542952632236399226106669570703193128244832474763135649134828356700807312149536494794184473418425019442222076427138102461499758389803949065790300959855103617851665304058326126377191862684954554492197268786257495928456281885836473649448462321477844245724100938092310099283423406878968545352371487401887021067261118783736451046161856219766520215824225880006822779699687253569423570956200157733815245896718743900639346644366551805184855421773452085950021078235671704509807582536892430223436504049731720294838693888825252348116366741953632572950329070647024579660921905091753416714472467563176945672970010759325663857492271888887650411773592119382719743494378738063990946513788910595370516993244339850478838031343481930510289477534735763192867953397731982197577120686813676103481357210192641978883704832813390567611363362413932902857097392623119923127169057010303501989822385699881036621473751497984548125392172004205200023532804942660042955155495592009783862294772676123052485855005869251158561391225724745089823795661739792391135619819501906680642453654899932530325469441661210396312794587263955428863980597210646130169008998226453184247996801814622379504699423903378129866900149110727184374697788911415248924659687084918924198947735692355483038453144126331561171362182685499366842204325815891164555349546675820571251086478343515262964886188492931661230993437728796606549083934650137210548949000975131391246153793578785661312827631969619235465863484522830206391906187952717370675235638676629454290840785080372282863551167605025078848807465211257665652195130517266677307092249012896734195483897229688860780790900364275569161552900156505414118660237501155831074002023451266085685168472817287242521928831357470729165687646359315028691998427392067201331126927661525398771656259342066183917298622930365587622183867521538430280703603753404596698910405840698367287133821959560662090097581194025544737809511577982879084975043793292929048480176216991657940016983538028398506061187600662881895224890325203812753322750647266408752943786292751528384186433029132344825225409063255075076836390795045981685588304829548374224118070625851069878453306444442987878554327178855970322593007829932542283934318270932110645481976562373894963069772366921295936781310396008563575863402215448199018383137620978735886345409900910144800117116737995915959614175423700488791885308053617808417884252297482316054223747043632614402102663589409079570623931528594855831887434842966226587960233059390281010023674112218823909483845362205497237081752719148707925512230298815901886530095621345421942153831697510931253840656465972115992652165770024257026793842785733079492448990806333224358870567544090821078960987688013376862706227038090713797883283958805460551894977095695955378454781801383139034681483597356091607952999785208707833121175626236080707209112463534986131921885090060089122719019009703031791992134631306611868403944025330919548796738724581412441153835811995402630336430917643795861718699253537457218750973960143741437019461252301413389473748812368675428019991930671413193818607804922707966910599597446074751043256591950256052771590955652183144541673288398852885964478491624700914201502445522670997562629489016444818292706951891347249982452164040885732121211675755895607567168567903779320976461172511186937501574239200485567685775696220245032794789073179244505557003432772108076112390711770560508980454778512037878271416630487492959417119098587643341551706354508839032811253686463194850990935674682670237892542707270564086183153984573799622690263427030547417778390547102315783466617292832268491134651390862555375793982520185440037655073723979006729276105849640203507375815667773189779107230639808052273725653477459505927905869879088230417354138176969522594246040526308478684517803104186080355351780896419929036616521595893327003845583408439353584601678502522038768821580754687556385726880950538775696944397173529470186343994235642877791764754030093914754089499714266820238778472208686888106218037827608963194354900598719695118134524624355070395210624870332332567873579976434106336422787675318233042616267787005201314432749485828671046049947721609977300216827019363998225661983999698639707326653869321406514048871594475285255799811026485842599811422490750312850916565683444396156151355402956253496213395827184742278326789562999617715207315277568703540627299634266999308288471976985178877888112113781939456628345127558428073735369697974283513339800348623964693672427038619518927946943319697670876623201076583856774205198105026051095122941791429623364751483678046257492801499280958983899842973109310340264668370466225648783706532072804841587393527612915263837235958583900031992802583733222997379151968649776353895222450883802948195967024981066307655066354213400124620272645518106267983372465813830723383778066785717118446447756905641855076095913299496296626464498013863340529327781907871992163472265546813448992664473090341645746171175421587151905816562762165694428353478132933364279823090550589335141087262163924090436838454068926985211697097794958414939398207285935779734608821355834332067442198927933507935325973831133859794042776178964596768921465718503708334692203578803590759045892921637260586614032756033518965452292449367678859214165722770413462057049626215097319756360716666295988047586426393734172822209223099048296970918123754949567568691856907577283354356458529457037100766398517745622064516426086762641662249648436942069162509672022797257933423995825029181504714132186921148661646941788160550712382271210619590792990507801239896157723524408722602049953229260488857518594095170094104042848571548919730647635406133927045757677322991543475895819568965675162060988649819530904591176010113427802381410909369734955213876757902112909750038387447864710023407133962260376837855311311237739842118268426266982252268449598813336826552896414397726655751408657699719722529594716276874993162334062197517604649796264871837338193086300405799648122880138625596152247665381318939384112920221003993453195374102462816527370793560824167767690016093041364703914256470635937011991699593185180624084559566877959272896471248136744246661309091593535033280292299266978787373919249351370939588177489780603694309836287881335236472726482026213200565096943402521737641962925477105779329637839560331492485001197062546429304121274594497386281835545044831638759157009898021055368630517034385476617331728877357344935560003700557294540646605856008777874337629475634950693016558085807872799946624781751166953664969563077845676325490632888675521354879271344204898994944077486677988668514871208457065829592358793834420850479190951119481212784481161259948091581421378454239723875413030362467793867344879310765065214235950489512170355131364829754960037182493634987665145335917103003386040830618257213429185285144639115689484828862655225585143124041420268176528298425598159753903910407133989245600915677325194689418981125917793760110723766480743641451457437509323103358626527418758727874545899364032671663024055968030272778232756194914982510177011046946560729831521396879133497283522850270365316250411446187580123534412376156098188989728722436170438934835611193451841390847313063370731696959598780751419959589570021084447555666186368463239754161722867356666174295801918690427610563017486193115062520298568360813479452092362558452049765629147654124741921491607608872721339364895087727685032529468301087570704872667937464794917334981052830197579142376945574683860062766646399395686814709759851081407104626455350531756546004262938806027306894981865206298140057822354820786657060235067453928656503764908930138509574972956401897582896428420556542351905921531215965222132926581024003183515577157900983547564435810477417600881299124468223672744330987772692980549787675109325704126776198242677766456967566568410872764213536016622058903295660570219583823487835249040206424122439316021636971801956595491804115120981195389135242583498595683902012778276187768883190588474824722406146298082361818010955373905098592439384884140425580762488313209010727101101115705758133981808944072689441038538403169217381006845601085546111730008538217661856539769497573028825526537916870652140964302001814585022115314218409126047817427739667640294219878669248275006213122843886340111112111893340250615654358090991587117974602529827388521397914906110739695329834428657369492916451322442871494663454058469485975586239888530776145544703083502935109054064793362395043630377928105984514071503659920174706429765839204826766333853098815884145248523929498963938458005822797373341517233830970206117804541048845677797948435452077383032331583947484704293662135523537504162794083127660035959076594639266534828277827726911739243511379924708995925033509344666469430150587613536963688390433552619431307003495279370064527834378779123805870207926609536760461470169542055241588303120314465288743604555662156377387449493017750877719640918501349610327979641012793142831708478020890109706549332406351502117999644404714459738051817481528620813924557750525562746453994122636103321109919362095326474087235628545758402598318980573844699298292361369071301999482573887835983334280219787150792700120565734857340661126274402455025472522998883143724342109781332030963040028390993322695133079342424793810439913216865796538809904440082412858450142147115456753250210312742812068719477255199176479510525177752446986679305011272345921171148423692551031316508993336068483630120409791606046744973080134951241530346752329459417082423428681987701232415006364338396663074222569789423377803592050274281749874211324947972650853793017264910155180119971371764503218810839704998217868839048273888295737470731910690663174857523168921462056433982994156130401849833396209194067922639492227994802591442363524057092882895882647617432856810177984319506762125116798078835203439287256720613811718433427526951850141273843605966321279959635682344366691035808310558942143013841815924604937715963202098644017167577283593371922304867565576511247868518716330829387126038350725181764369935448002776130862077879433161899771989747399686227595284196126052420195114118232701642943910126814412290929912966609887773393450409947318076472852821681291027111739639381596163962228148575943313360510813314586634068564893076174381271116167841143406601949161608864951248917765318424873345300730303601956828142480474162059853977171801912317769762553106076466661767063472238547642708792834632465802133692218960402264332224824104763890278324799230192785930050678967745620152854824484757729641755358401449001120636846992931151519472156082313870793742453609953569092412220640212245514068416258397170217390678465036766240061947808575174045509794626404787805324601147495854381758035723860404278263686222766543870410826071521379026447853744478117499424933307117767027424158287262687057261386975125038463720064013997477920565395919226225431363596021925201499126153495374196423495543564555098810081876105619955829671715891608487162920978958394090954178254826285799082921157666413949980774917444171891044223175731655891759877773122712728875760858538181619149418531831382795244451397671833714586694595134667009066615119009485392004661836205187625550562495115371847860277602722602673548544191405671134428793569892975384523209499045013507323883139428874262626032762070900731819823044040787730359175854309490241360020169842379301116411130614722649233220832952431267912060576386141389145501777380145904228456695719704873635692007472686924581011583637137151084536059010746515783695073853893489052653460353411547227172229577165192046371215993286256692001575206535423812073636219437744644266837832646011969132068234064193058161775319049327690013948262717684436064538319058171575330463754868867704511577891431889400841245369189885255572381414233590593702519978848301641892100537895397855399301749136264517287205202559358646529439491999266912371218196330398979324753907333311766346410479477660466627235488428706201008254089903549868200522378045852427053215070027048548273574627775601730554906843910018437406517207296967012033229011663653275384210243992541239019099714835783165500637753522835951410457430396167900525730373147959759188823871368994708254504419512672511461929830298238034507330015936797661148439060354211120181530871999569345157030852751889916896946214897201871568873484335373317795271288078205942382389023699924058594931927172657699705205731058358019881212648113150812702909974761669400942284102992384687372596331382566263747859105992814182504830422681968705785360938931437442187915891223622398461512324375041165205699612638534875070600334687161825135156247853108919602925317591639748089052528876207914862492400627168404219921531928578101497527759888667868259207327966936024487137058244958573742223792021076645101920409009494717656050044873595321133471036897640451028539518990367859231362485292478374119574503491079496409594953203183064073681174101541120529824082499758528295065871500065714292982523315493689762148753025099548730511329386160163863720550440383263045330983520879618624488334027607734078045828954197372400528744085282746956540477307991195460859764778227601151480082968423960751751761991128952618885256211198991731254472940907971085031643621034808235791881656578902471796630079031551132383162776677291555278162345039698963887325519133800866811663175028060307467915247654984132589254147337978957675302481290658814584170447683732616002526856328374564103895106624273525829180661051317342439988892947440917345507560211102714099345125006328194766051983167413758254265115886860478467409249464457221179784521062797288473621501657390898840462280414643477142754965347312320285472936170361775648251288099491012830208530092590310683218515718290197821000137512139478007001644817520168826701135501207827786732495639218660504125429524109630929527282079187702965988161096784480431870396518849663348899961605577668773808038824599218397914501069891917204642708223946829953761581845484522834665616040524799199721131280528086120154090691357161301007883238355476827370634953003445716115402450101436860828137179987323321565193000766740859999833117652759667112367938436396189685529271234566155259606386120550544306996611314454232217552451915631155764319132719486768066929571609499619014396199768341953565446651751712577641787819579757284786357941195172169237270759990062383640894106582259316439686481928076857827640384363591203221160086395533232206813495528449672150562120176383309038198494489453593287528820788832226720786286122156029798611976681130852644386793540974310612997149841991955539253916008681598409667346829037710189587736517605843163336435291749310027472675873124342559142618738989770704213929945561680713574297927727406564782429217695817994535879697005255696196367567340367790609877231561829939710324439040257398762359730605015085044856462857503829413052526945381720395244726879209957959726905013964152000237328219177362012182589660107692908493882774769306555988977649404375363975794291342033246925104654536218315350111493773196654068418640280977048434400881549161268191931774327518400468102452780057474438321702876724188976939942300142784215895659437250585778256921914604720269829796754098691222270513731358081382444455663820305681621729690407827140962981881430927955227451256421429292704253967573262547517608592319361351342508162318937559217495277741376967518497273902528449604243618789371241726836596275909150715633517181996968020263734178916923681595570852397964314507637182095393610155392584167629043503346413439098097577475139845233515871169580155475221324023601544339377375426254490406402831648703181405777483883703858461115218930264863510948781671506604046861200499981157389053521931561556098043912895888032204575655643248170633778837943207833739393039248683823677662649908772823217291985656380455403380738480472018774465021895976134385115090824664763003523269724833506789372157052948010640021362680359034133466784588976281452198895336703295695424980577508095037487913054196277219292899547346949773165174129022575571861310183873353615921561199700134819607456166441235422663324730691888386540732442461904190514639944354945744801721397487615852792167915704828077301479545410984733699936906794169311515575982835209423366024445739175421309401148029295588844166821414118401749037887117767547787661903176212916486758576928422185505668463995048839407844384284730618297323993140095970080561364211150723088628881493707411787941603616739426595122625679849508267601558843774064391254283431725774885112853425464969238928102983236430858396605013602034491758985658305631746388677703903765537432726649422264282676240465560384428382595865027449714174472893885434944570924863589235865837122803014328654317120158352604576834453812942680944562978708047610073758445277799826338188997301004871778969666901573115032870566223393307355699511119676848902371308335641356339559275410814304405046197217457849807973851117111904212941143204498689891686277280688819875429676582069447872429881294484073104713074163118737306967108458525758523374280428234272018231287154378108410541695418659034034717170467045623891495382895287201613522660344927050537454067293114506426987296906887090676627115684566255394552674152759987537202550245995904074042698577846382173380079636556297652044399233251756979484743305301296833681184959936653520942717351775676546017222308664765892153651154710946301399346172364806387890580324431975605902054231687542936477449978965003460313958742543883744689741534447625854063369247911141687147618334855862439434506533683760012272740924760011397998628045965948405921914331250013190344630850757955246807238145356595209148364967727457658044083054390486491562412897948016964123329294007569953202650915422589055080893176577633236083398778448122209869132202421309672087335634516865947656471817630864052275713969535109890810269008307065185780927767329595780838500169612112424708041886104300110008974133997200764037690777583557367567170084395046689564702756107358065258630137859496481703304068890622955024222078665534017054866878674361517256888012141923267166517540794740441083681495393967951116304677148417564033152017603641856430015316317253036890375378499127927631393572675790290332484367503221477022155621384938693150574968414207961036108433990572046796037426898782912464242790018687427561223682145852497847314176212441300402650104446782813080618450718932137806885136012999924181096778981079635686163390213268948814079336953370914660007728598927919820646465353715482068407661377900411942464663309706470596261474440728002536894398646368283355362576866387119695781530372808783813502011536478956789770114519341212513857962411684283254613412027184420402381038403879284859921308165081180681311578705751487683081688028756424848489976400991140263714114451136245629609778166511172849010242829712399403195516961845238854126751672737935431418549189670761522376642343894233394624552280560883946886372159582426264286596840823687847881406675156515029254731496130600675523575368863225214514610739724692566203056912919235580475663927700449687160846539007846747356076177841539070547934266615385929990502422841860263387232514065047787011345500765830948915609801589574294210119454399014567501016217370765353654868977251167729429379377560475659442859568998438898727643534673024388956144103468369116227825507272576134639500885233706065999292487461543338010209472563830543619478517440206537170653130859653901757015724049877315915546557488760303639135816253880725827164038142304419801043400394326512200019193102546384830088205554020060365651550919725551513174055284694102812244990115439750718765618055565824243113140731769601311246872466915636507041525241307782487517170115304471146631887852278570640143428979855867827655240325780046889137468238677532528619399636281671566644663620899995116792279002878280870735217656787511756886160273304066884341086628495358992857459595877265549974824203588338214756813307148239849630404489497261620034432758615910879488822123186918890946400917266155407191378081231799904494989373078148174764974608119340032177284109389137614610680000784230044815618945811149533392670698227889218047128877241178613061239568659759787945491888768977017309208062980710482743866300632182202552963383285608668768202154259759538060757989154801209686235760341142668496866883017260920991078698690690369344762765972647335710208382312656546870220758289737382025565243375071048177915860355778895859680522324153479277316974138856195417118840515925826468411250827426008963017629526528609920762220982384361221135182255263004351890258120541979767537365254375658981524848509305780891805886224389598257356973086660835459684448754673954903530879965630998241010640632128447806582920156663312515897203158463597281508190565944367120664835857799367887193511830513210623342594808542125383261477998442369025088915755211443445852684909911184930643335436788260186509612704162453371514734997998068210812675166714426972841649316631238561412367731453721505586944487246213136116624594555762627832103276974639698851231209680900924189060273781652028411629095104554455289291074690481872989631940528514380973561645936873625276772511158906531488517025580540349558645505933912557129989255460902975792433312095850952665416071270163824998810174503743753135226838909937089017585754530296988014217862587614547085749527230939619852979545594619930797039001423625628413156953894332674979545703686917509949597347911072081903258333225768013257415161338987099797030038330658900580136936178461528890019805626479031598614809754798401557963040098190017687956900626180228250726682381126556149212168337478580817992376663908149281517052206139155709703576009442992779536114367986499880752348473607218049097965755456270742358749682800103523537568742901484341971862142630607504616181224552607561375207072971520902068880320785133024289165940185008508447175234658258951130436229755943693350665958095807223198568527393273665433374347266087481304342320710491205224455684106097291287482035742732040313530387116074330331425005349407492737837188771044785513647340549674266251089991373994358612135027383517173787337660379366939918624720631700659807684766058828897120903070808523454379685644739894052217576847326160795852696469223871341132086491136974778098138267306162503607860120507947337787702405483284797344880421672310971893904986526639729013080725396444113299726298392328744156826469280816453781867931465263223892269535687322074341291540894489910444775484349387608412414695369314846355108880982052806236052033716913915890831923006505259991377486279533481473487105140724300943747808325177530913313159283840417629478065210632997405963658741139783712200724033751558139746256458012677520781294265334449453575389959566515455341930481309853847901596830891259554734990535118249879731519423912569432540986084856704877865075136048803841764665644755019553787154223707308187267691840825476667846351221647757387750886235092891054291538877748863677607450059259458590622565041076649227904277145125860458263579143332913872385438500890670234519781169474058293124628665310793083904001829510384470576143348737371286889420691919209809192181403181343969261148651543890439159448121882063869157506183119059722689739752844646036034765949821520211691791622850790311600001945159410618293675837219360850174540154090612695126996311856646828509565142059217562984822934717779618740405370363322235572543169664239888729137631006827082979378267180368076430020338031849974411489880416382880734917712361056872027658362133203668640897128109021081333518179421873592372410932054060766840023242764444453492369167963796852528571788673706087703377917144073944324735774243110866653909682122194582476306690835041054586761927089260786544005031049095856241777882883454411487705376707222084059203978720523145090093879251683260894672593144546095969861007665581901995006684360747037071887172400142466740985172338695800307048909856415167666556855111025782451214064157269190998475291473142114607954682781409991554261698619167872747286397970232024770585392108609455944867635047462648188176890864865681728185007594957729843599877491617828627952667147476937132275981598779422042173276315458622797359799910966035602034235824299388908241944722586473087320458325522356961525710769051477189709877509732662829882653592991627333424290303386078177632631670999892740352834002413602008028732488731639214334166264004304267653146938677957399502017123287416069710515433151512685763780985187364719182042782576165297893858377748707819029595700871662807816671957238178364250757001992947815067409403880249699433718747181433960884331286204195437347067239047836739975660298701544893468831520677752946633880237881962613950211723546252843001022292894731994169122931935491781987537946347044603125135275938441832873599762327152820876460111495245888552791095897993892379848615214097479784772485379258114208724699764048807933570564599878747815089321747661220875682350312392861510216917976653520303156003560480233831879067012658002943930306329649028112683721140675345679434799754985803897028818053756098712393537636011417942481441965027059950211026100293907089303682512216723454867109493105020273106167530680395084510159262083582784618782716175959359669427850442621022997354661305043080540398690289523253220939680737892731916340757807994063852234813811336583815066920394685202865256531794814123225340115307984712410722335548679756413546320938346885963309388176488011872396764753754243421819930918271601569869098076600157035205193929528383211141952865722210863125787379158880082731171520929784866145461384509560208083244185771137304796662625193609124278942405763327073907893806683662533495651418552366717052752941282563705344971347129126651769686330557956119047425514969597990497070048933892445855503289972330603633297110145610473711911222043212271747918417322369851673924993025504149124477763083992308692779872741919583412597628162481410775832467294540765401223116427526662604034751215130850728457821405218175160859957245492554267482258333838237510376096086741799250277900113923523069420847195065438948791681103753257225135159869612226576544313982303163346473793834645609824970271738542226482758539481654752521610480519214083265358495309700253830673400933268945053319641666969241696227991332415259048941476188417623863320834749363723578393435216298223163204169728807715601238371011588823952569758860319060393599399291554111361061691125617845367044835543878429037332149226917770535631867824597380789531816709244925068715384147577961485136729195873705518337953996958059942770684707830427473779843767042048535348850462359611100155804740458777213224726234376752416775177735637631099778468748331315882826511493336045843914919347015796633093546159300749153910202100972852181656299715932938839494324690737229984783406448103651115027394473920700241181578565791199826348097077465915015149051980584501929847612556415786781188423998297048593775781780119857208284127808793745441886803750806777151915986522928639275555062346157662310412019682264438578152940569028822694901363855737086914477983572397740017221012458590987226168546445831372613879928690154868930988683984087815278700894686260342800763851692363637621550250788819800255454039830574248138406082537406339898027757233522453222348739076033954815488341877762399340109911062075647631978547967528211268021270507173066041846029974316352881624658206793869740092404073389154287238059135052743016863689836061781454915665722769667280564803944064244060362195369487353744972179440528139278701710914449982970754435989525934530178064804885472086914281570413479244009608540716854291200357842629507163220865098284314513014418008931447104418199480528599698732115156384616380003077149078914858721282585724354416229160516156147200165171518182409946092204952862782531746715961927596494750527673551341374830132500228328888625346031995850081147508626338662123393825214837985237932967924765513467573298595636515034011058528878886561606467004672464774526827039665738470136613703687113866906665556276323895577994145312184014903199968370479717148443759500708899207662814165296203225425649041453694330666151058540356654134872840493368952476429033445963928824609014973342118143665303988191341516751863875394390632578382262331180919861052687960273837678712654809017452906619203023510270445397128897339166692779555868782716132900280571534210200217416147567859702402641357537752043294752579635827029766852678042550183366189301106784585394620769782915093776800745354576112318328101389773154579765081148156618741375319259119215731508616940433319511117053724792469979935340994217577534943181507331126954868141884024699487986603197994341355718878979884051532912219162165232941864073110231280990185625195799405341683832669373720411921419938457661058549059373395539506202175211706104089289207863799223243187806390760518520407185708028632511604585405708901104626751931547496849826585842569544860510171749241414616525359735775571810648494949297996022806122651145785436367954301967440200089366537654933588671539132750531333218745504465376592255214636897476313447534334243701289040954874378641872160286857686912677298131678448812504412200022754257125793752553253830644043029097191625118026495816220157167271417350659133998461318739486885320131216728072671343004573777583496280131945443771031717108552523480747499164631302977470707011984886660841761937502760345090645818868875703741894040693328808704186702534760045176541891970725596614706571436017409171728208958451584993802452353529376856937685794335341613535937074127902267910250211156137262329467537015137023236127749344607910072440431961604483885956664999130503370956665838205339127613529183224971627199174231790508428898362889763225267879460853855724838929706634493345849781886788222808818260889835683354889834113925657283684925873973222816738937487368901406908407607095823058307193130893692321941730688428437241022490490046850261563896890046800899753001777935831491765910991276755324027267787976218533784927141402041555921846714487928976321660157693664011847864792310076843410507616732798357705322324405651466016705559579938509101796839955646900071099798914474607089431173001278766792178147065859816048150131723115295348288092001862465081858581300398592047161020533230484770040172404756335883905239123049509490550616402433265273177952230058118042262810532978704814185883529545254304537998328376475493150331061239044408693378372966380156597814840863695022852861648003132888821685194781217949682921586569883988279736990116883987639971946111163881616428155601137584575875781211426679021317274712183520984368013044651978977868452148548279414574967098620126224434205933093479778685236803426436326634959637268981888254564354873063347081210420920489672806761232253739122948387709469554611816478134544614128239367981389996064666028878646963087289107647187972380845825970178854517272567294251937369404334806009037064932429809092426925332943077896775831876507064820717440164949071677772152820401281601525289375889618658548274803571515110005293541137911179317288931485339050678259841659606514571316105541311692089238514271578324421434915726250563937897919817161224506714221340255259711518374882650895384678840499092678836064124306309584589084901781384781379125067728533212829440649422552621384476597423771292652007616791339945857157796213395497933894786854210353946606079427859364962177067866440170601017724977035889735502822858910376054868353766798256558092074595911190560868586680252972543142896951165354754694770139777872062660471617294597233688921613012446176903374389928960800972637346754081337840128307180951146022150762060268482467518132487608233887206212163074744792498132075658853030619085509165195506431785437254066057575140183581073192862546190361742843281452095762180637921345188956757125847645042667786666424363248722541563636151392793265179468909589414498729078376827753809499006246860912927751376369169192394445073089053926672909281704215283612551302136591520951380697189149572988937555076400135946127293708341011495064914704555749792086012417949039213620045395387094683248203907559249126041654873989746831152184793789507183226846699431242246683277976838172968753318112488238373899840007055585319720977365218607446206560988600667173408777195160993260671110529012372825611844841392964109638780848890817580088629913142756469640361312582801458903404086661022767952003609377152985606849790203240310923643950869791022242887184906857095796478481069350374642602777264949885697731953081973864471842587976644013229111549766380379128097480005437451387819777127084665951491950660192158948866812630435492569560342673978661929265514085590019612876838482748469671889512127370791249229223539293695499928503484677099784368801210652699523603838277329630449205766988512807000629092706773583182734205013264455422938263063754595859638919592185105781986773730028017254053220399337171551614796983858562832709725935607775536014762905045551078388022446870836179039430580488067303938041536928889477652632489554853932754083464632949612337358185770272494145423243826561484681641239758074923040911338387733059247914450417448131829042240145583351088108091712101701699885272518253342443653288430325108394298664916757032006361639639622452560361785332425229386242547347919452681752082292791437286778957207743424875067096701791055434408831722509564373271338256834376273320470661165812463129435421523567104698746865596398945005654820499294872949416353008250069918056955996325002623994796635723016846122057715227539014108144536143330362567471976020007031435880776429229991101065422770979136656186906261263443228270271445853213801761736571155509313025061647207972389889754988888640962961333275081415077326098453793343703198691098240013917168046992058475614517146291448324644541457535309135785099526687333972990790169480077226224665725972482306221854776460176292436947130464812857363245742697291430045339062180921912411898584937882060056727986794182158136983066641828429183049166867555791219698344347523527884404574948959977660828471741743325581314111079707337723134170210992408751503214396834495932741198424635197495279944126942967633912281116697781859830250647508452976602028781032174381230906689207187191197241470716318934364020104681835241315404275250701756670976310175537987169203136853293921187738546117583358340497508760473196679708343681263065567547693369399314733217810423990951661115034360294334955850786413632146782829987303238707184857203632404572556156158504745179181091730391106645031607219163184172323106323298913401451680832306495869354215300001017873991913333543881404278637238214599990818985029301682406340359076350798038436350762958675492298876029820877218264762717295809108046848471788587188315918377866511446651847768275719753010838673427535572708846390523044139369201162905098943842140331584141382335519684938304613424340447696381115373413050056361081529048838086706702145229027634788303899055287775945679035528426394531463390219763149646059203210325332784408038431599215037211190679262521600139535819092702823517350036756499702590884775497916507734471385358333172838919583300208762015308779329459783849777799830319050598247849176293738038967408365337125785571357176807726441350612742902195832107609619567832920126789160027140710727794970967276702841843140180989157785508914102035329282215811213795285749404109890345667308151271287327911472818462958454901433757755129263225135598279680314334534811649569344594005352751499956226728129092193654263348131197494039123692851076512567012993112524420214033912074555173343985121234417850201775949596573628239905506539637604606716406187331395896418907673503630986202618193875342233233580485579957998802755368368110243514771661077211362313217271251961747750584774829756912012278647860542490395947258711393572555249620005114021910987626174361399821649812522175266073041631985763091289683904249819242205933089959712929167805416703904293719916300323643150448531488844752603823871853775268198403940864884271932556181559712653995657174453573901398761950806935198360056363543733031221111260577559351762343176446849624377779742922786643290343497264285697272261253043978826855865471471092113231914012369096838883692647393749543197092736341670256182678471912323438318044860990941600565609120638442366458723461098852611238619994261831633460491681527699697314735172419023348971014145361449159060855034179604631757120975022632987594216783013922883606240975733156894683308689084963094501832427031663620228328685799185141297740791212088630698794961442633729924635192874839321574368663544894591947489317873168143600410821395757594762952070697229340324148640234939239321652839631150834884112845746738273813377675026044328797422948042261957100256439004588635997524373204889916631976413849917778236312496133530181844483366796501894661308247672515477867780689025319332179651228372248521340068690600951207353760218020563598179703819718533231670168672093367734609512221654481824810251188608947344604320717827318835096601106235126959648419349491740504954959606283628897403493322895538992352659644805286644423462386308212230115648603899706103745468659588267115369356951625928778821126878950991935105197487289979007949648350995714641614144965506879034768010507805329323823304466856587481193062470982219111850111067121115011791441905235631025078920370094423877026687964992593587424846748421849560204397504947218744486255054773837814739579697271095462644439262348372066083568858050957381972939204115783572719634999878988443623333200086937828739156515687499632590550242096132341886490953744798145248304143214786437713104192529240771679863213791673822221252374472725867507729333098771767570923311890879574097936074637587196733275225654249378725599387983599935571475509847108471348461538703450729542929719025850049495485151096321040018209946499722674626622634290698082010560852868572017605001871139014057273679340879151628104097852060918120155195998748042538160686869479828567851750494077472032593497570542523840730282134908101449257451831380376068244677338718115899194667764105286933145370147237238350381370623103176608269781048864023807100641117627455076139270075436495657751121427699567600334902772250306458349658749354722106189923180052611991440833884812516850982116941422461014114228311472935432919098193421502881080732627942090771509568829288030012791253487929589802069265954143475834734034283271355249028357986494669679858233083535784250684870904222796564523746929739106324384539073048277231777788187849011767456366290954103882777842378430477869509691378014611682385209672404003729221897110875196715273677058311369471146142461095419118389519322690196022224464560800344777760940062875276347057153619703039745149615746350049275092952849250416955218829638346807830265632678858923278579968824889405282462225211422205319141206156031872584451547052447928400342728912597694538475233598910450168497429785106416077428375492938993791216295476679367674502034819103646291935126165647874267616495234354727909749684886383580218414136670643294146445383343311138357820037598614493012616653053764151730205043627588413588626868000244706211961988710366833184939461465429207464715683108670497982662343007323436600474835963214851954370780888622363588776063421944715770296451372982988533114059016372472930204394634931697608642330010246180914744204502047082693324570725653235707713033847248031184534828515156542306574175272320812084414093384904075148403956021265524109625709157837602426489981256342740466936873081595415407588330839722396952581579543496767260535166775347240782403975185719035911174374234709758664254078555044137310067899281124251919394442222677567626150308165466327544156382746821244633361229198459166740499226889323069766658414746370993985093794343543193034974684752387737051082728483304837151327112757601688138840886819492189173542643910485026307355088149068042285631048182670970809132484148306321819321721954880881303636329581785144740070800080774728118253752756578474146307981482122607657680926363987114642267601717027993735562470655518530996719511149506822765474854946563980709715683782612927707546655051797201232497870423822863795080583601774189490267490179212365365815590312222821586442700387165404227558192192129644164498280678689858818248168103541016823754386843473030751754730158145276989812789958895956423959587106771638516420928556599401016532550624029439968476077076850661525715275278927674249188376180928120379120681813205073584378404065596700313922898770483690423255171294551481066751737440682651551639615210101950405428586399593040234617467152203016364178320445219041456578808436828226378576875572230309780620017319438015429994380877573939880280502494904097007509015903335755321575343047993476002181470059127312798192700129730204192208946576311626227002584219371522503025215573574407502722577129358051600106553568633231923841835739242678961460403023038501776671893603401182053397841282297290626984315189381089812854185714453152514366474226570367443069835694376851683893236684270524145181984082828771951165412516936828359315353101986133690755913228114901395273087287481656160739538975035172750128761745394374453391569798584318374820154943787740415659877625444098228881922038070179217537905903777798312766046938113364148180467248803778177115905938102120033597264461782239515779110331358660160126619066864882814389996436626775428338766472279625313321289846963475379702735377419223368490640774184260185669442187017285891252905196179745973730658238889603356200417058468554311880986009933030748563478166606441071635956169747725104678609675659311414046327434219250051599815461048431196574305405133373003859644696498858060288211239009189930058703273397937941390792938548045925033066772990268313563873904255994068682720928960089548275736020567792761021658277918509040514100319969609443623439866983249279229574194317802961283046928399571593409413380980609420758408806939847097679638423393329245778528926268895304789378771195611655762562589659160480539083340617546785385490733325884686043451591695435099494596027460358617377802262069926249993144509556130802298122844205595233479448233572584001500835673449571438057379055288135507982007411589224317880540235831029066082614480393074105222781506706641643071873736241449216982949212625515509393595140686153882394792594472983789252738399774451519600498388487293193980330754647052613003530713040101942044203766472006409813797592115020298524394812501295450536669992459214220699358552956332733064710167905403104537195954372023173819505634639501608824103624667944644118561528571483845300276838813449529840732606722447254252377346621839914258896518962609944854968880685923833260572028803678640682571866658356697097320791636803575175514882294927287365862169701230987503604720773550041722949911413059216833906429472908617738731678102684824890879580453295138802911405543245443173739778608344667408535638147070698156099536653995610432239777867461889011318030592831728523822872659723465723420702487426414246719018691127988334344907263144162929151568595992569120477416969449674797285526902288891461779048368015966808086521816948752573557991663032219133535582058881378151659834329623321309651697980539389585395662817392357139603663923061161204962161745755843755753403408076200308878520072010401072837574953866492612662290697590113291225955874696097217723711622767179810947634725603031521037363321180681627885608998751825276765978229649695465274853330333595152508179525692346193625827846715585328822741612258097429894030898876092824237624886519014279169219254921405099488300616605897246804084701516640857469183142131627374660558161110728399447769933646484992504687965971583511833197977818888206441930698780990419645231140689142126376805283658944389243944276110031780438844256545099104575991142651738984310850533666318763243929766685472447564413456582070864802635000697954543890342889246353933477011273529813759259499941581662247086440508431635138351626160863800078867398172875288751798460575783902157470021474604605276671961174531661823245280981949328765366475616801339425166947361702047650953270534094054335791930985816937622559090242961630560294865479498515170092517785486242535764668883736795601229762735533116451058199513805011340127315688409014718956759034202077701189702402371159647049804549397070865279830524853751800559257306726377353776764465767266203830458220835776061430067670770775058291023785408862244053585976424959457123199243170800346443340590636939765103667521298381554142665459005729643997221685148987244482384493039046041487169279161211052072857808577710828326914438307697613830324985069124389231235432272343732565177545095667142295337738156197979136203853610974889502666666506784987994259662031885550877889510054411393534128514285450177116956159385070495693645505548095990642180943936105879795748713024217708335624920828455547521343703077059155236917328203003090238305197761474251148341184596360618194476400759995484863925705921831663467333907786612588877988691025197828500976327942591467792476056047193610659913338248700863305443372212562177407360682617218885029445599039079739854295072885498978194784214369528799657187362436884602043975441846804555939504519713281324403751951485170733519836490905051251224736729681342654736616793131894005868041523461320622649557206472263035848122488686400302380624472469963282699127293516939838028063546546694213057291591800082296865676329500027880701882072059256656160495641676895158509542759366091904394316524431345285976152260040803674646040251588819002840308093252494626416243590525890858440738166561587492458064411167028183784601684359323016286832987383791999037732008095332620199700236805395898568461286600262338260400333439937871651976475818251253720607484525346726375297428260594743898194544031319993469677095533722068629931836221120073313129656487804701174505163374369967148139093663054926620311898298099663101864298985386783745984377721079020621888499883946466725155207396322160684585366167825537080968419705524836186576255025710372445402397119781996555411976175173288823707860911236021175211659458201697475774987121206267926883033843716176900092348188541588395610629150082144232483564881142189822016537552684213222123271383668935720094277039337925983000003645406774116029907129558509683807758391104263354515025465629056058853063078493510557693989973450582686209556757831213783939509284044988144900545394092304751224334686026759638170583898425756619829727143384724378035222077154455462709520686156672837473954424693059478901401170161062690328488437824473075467657807244953973571892414011146339313541659288130166544144521611867017224927613809131544411527935096824384633655935777439819657662773729420268791454494085580628702937365438022905232923692780083698382342447013433797188734396628323638727244433594189626365863288530786833555071215902452949717504900761460411715654398526944744144204465575942828137341240489546276440324744114017291670639467759432759958271221636508113248483670312059185497951278165458369549509839823505012820904766888220023137430272825807837971068753879062410780976341392539338298698643041322892129154857812981753622264531671987361149348000570529575760834723694897225338449608589476109182131579580325673584489904198928412981089435381571572595835965350131573816681721691710984795487458689686124833693303696864235025824926540888868925878510828390183504999282161301596808654282444319727134197281683848599714729284433438326375747712811262257774804904311266790530661325895126442232404804944428848265852299945916455380391641878415354328505822411122977656062051309389079865129243781524590526592396898797234441625094057570676976687266593304880846236352840935410213633826836754511250621950683330181582284682403203492732238900800856264839346116833230084532968083416203953631727375397725629335430671582750311139638232985531741386827178780104599558199112928309317960562409381160316207802840081615475810533923901967455773765674700957789170759723195840303641949950709538781027416172037068520347866955209542442475505915976991715372991816508577806287271347321170706687066565706352122366967639925109304510959629707237760352280422231217501169926032543234797664376916243511838790133396760675540469188498049180669661001965992199682345228023010013820208568157567165080396915637046619512695524473503440473512503391539406933029857851472884127098761263025961090596852096075329140056405459536753792851060452251426353467872888164975584067759097399026098807881736870853332609673133643380392057674794151614238137915442888857028421610563509594824712782709858531713780679748578504119006850596827819960185309641651040027318828733611618940612328220548358040686577535101843605610991491885992861046174564421574800183925877068030542649274291123914589157826730413958914576048335851959702306336087460744992589035258305954610784889563981538293313016539125336903826383057676235461226505254009369808769110041580662137287006701196072779972901354570649640938420548954674251823884786068116945993206112102064512340665675586268597621422402688128577171458039663813621224008662224915212524476420084780691166729105149318587137922826902754343395687367643454373418193255928578024316443592859651461407225339840970550961679380316226134524410322738991234767331252879348075092699465506981059811244421132084279922756466243444792918401266836440958547614866674846835067671347119097119805887526571685299136637928733370940988453006874906867763281725049983942889803433444837696148099315568141862713088008797037779512212496275221243524259901553188681116175064769043691777409329798686990671095975983163013096819897173616707515179139958057672332443331974268232988927099643775278202621081651303701108278521524493321084688500489352600773312170566240450151378896692067991943793614170254431488906450180961219054366014897105833979097841153253765015332095431951802582508533481287733160543412017394226665736048575411944455627828985175208364027944052901341316122834520840054283946550814473757599966645123863723296994610122799873087761863416901213657010100283030772593774993480082341448368960688242472756239638898192345291199242486889372499711909711773130334915775118804432144571845486926824497687443780922453759409971210468124267978617287361531907098676208632540812140815971491588194152151756865377798102718762469896900042079070570137575918824027019323865205881054830691116237903669804248479016813768187490809211711631346358604161258468158673013377717466974389980167260966873819589054004550416826376986299364321889636336165568609503947349851561096999313377562546166520719661239794789874582666006187931880598837287729485697001005765402758990197119672735113249817238080524214022489458804474652932886714429247782872506435996322700746697920680907879743188401956278491398329592960346226895854726992926920389359734025084287677207590073828755985602499588689322913965638633394182364584620853079780505706500711847825444192868991575822283858064943114549086566643293990115437141447362698908344391701037240023365357880338742947224734842091431251859047859413661963482694131047566284750178448258784643321611038515611323538932285043212477406466435056525465818766545618766218276503051761384356531224607089066485287678966785929728823610718871698022755304460477130108840666405636378919555438932072478255436798062263706304685863225026008955402653362756960403501995739203893458296806575875349607905138521210165158085471492978471018865992477765241143942791814670800069823712895984720861347690690053785069958008731211052507854659536136858530592410006463695731573348998889296672259657964435608628652102605472677836148057968364017708428713547721061264709827670023245495742220582656139902238368850465618164194443451027017516982603852296531884880783211621821336192926747893320393719005257321628941591323762814525420512365901588327464851323691562029050925407574207234527960215395952395003998576206563970168217223513879254709770268449852873424997873176450426151958168945426809781472852156224091561555918190533116722638613210302710461895741136745852912324230951407057652418062475699280474458147334755604620064588257798510497980385229915034151251714789841566735788915331308370092814461829244527879759796236179873211947380233137144439121021421761166946332938956627972596080238341116301740658799179923990239634034946245150387960171586611505217351657492073654335583543103868401741405980866821441036747303661785468294334739332962095294018457290121087168874697151227213491297198232050894391465577684952535497785724363825906747223952587570205975140246021899746379939646013450040445655582601308780167711629023359685182571941617747009156014887241415614678684347908716533103139366719164128699742668112756444833320650768733756976416701413306140961398443508232337064006601242641277865884869865714790536413300179741693574308122484339053539888026533228754954571830644595130671811490199969234095891988122525529066449394437724864702850288076512755305249718531164695586232439813653377484328314170496421089252354681972138462634647777481161886957538760249212123118636120109737298482010529261896507038072495900425372538206069312269489694379538709720305729679089507111017002418142368310207056168299038595643225529928362959549354135854491003913460345867271780168004040463663824173422093941086349393915292121859707429450993494274513005320757513745812543472581032324955564892251091353694180314715116928819366461837813220506197830731857822678056802587899748253945642164787968345860142467662129356181214862884224770853542199499365992743153376147608160440688825615249486391460678076038330308735009541237250742536023887949622408140309546821690557320933093241038595315403569999753678542336182940650563666559158338216413909400921278164977176454218440077102479222033823885401906042583351632482055930421262557117569493533216003678123778544636475840763472128396345222910806168309023866207870040569727231020046691463902800948607734124791846905441579868189229707538434802540807354651044283169614944989518805403852185479239903361848263511328346497146616638636763298114114442036044289009831739259058748923413397724683682106537998184854365801742582932314475777533210288568407310262674537762000958211815042533952796999668826856065569196747604059199452129659341014807437837355100314790147195277314483419641792656243443513279656709493158200617630704154017496389122747392867791992542555416001585026331561009541422551175269838552165810557955065586390946422295847392886603562816673074965605262288815430804247641923360846498583365077169802121535006527114908642234578424451491020196880288149368271350015982586966154714495177836233867000426923805736069805061058027921195384985192044613832147033694387790191754942957370039918027953862397258398966156224453901072694556050612013939523114861304836813049590835557403288641359307297982660007564457889993603664653063954972531410135880881997664251184277404347457068725133911288312762187310569815703723404376320630050531454879464436625545923748719114464393811456406557410948538004520895062031176381162232386526134189175701551825096425702946760126778006286313954420042905868784074564762092583979084388909877904419559873220924654449034912341593882394466766151094864552346058169761082322527003859381001734256309902002662414448157686503497385398137692317249776931417235246623131725731889255244282308233780296602561013040802381307869064328991100086678162327060731880310167854165067191357001456746032717566829474544753807994268121653073122400632217500073308033363360432309781178302877701582446093818131844303117809111124946698604487638102307693331133488709340416592880611675554881744833973216545808888161626328134803413065993855672879640045375171991531304694367830838717959018332131829914869480637854466246615580600624753199863287389131567379386515296812817795380566923315585876658306049190383100557773601443049912858589238210274162535052858773734766731050252150155514791174727575271931082107724143211590673875064897587060052777687006999730861842162490301197575830841822880475614045816828522688192976194434879269694179405867272167870437420953146854223844979313587252841212902289319168412221472864291328399478303845529458642256394172761519772805842900035690413062540627577247865453756442647031826004818353876395288973482595791987324353184479080977187008434106404627359647425096763383810448686928654050490554321288131008748102686140257786146167696625916651239633473605821141311251790257624029833755469248388907650290117505873887375994969947028163963662214910534718455487295839476860450018221405640643839725766403752170016331625662533391096876024140693128070581789330491351728571535406701245263379662205813080663860628914821973127930367550508683704910824162944375149233549708147861760459352412866475536750611523362752264045312053808149517317709575328503848702855370508892159007824323255989876632325116002080938427712799156720482626584316453332273100491893220878454622441558089946419267789387739720237027429537093174375407484850233840328572506785385336554860581005708390866511599269088368909362184866376556751068460091642493488517615845424454202411469418781218711482056517744710841570832601533268029416682775421387058597883394453835858925530000997844248274752129839634784894477215071768107505073218371169837365884780936727634959397521850930480742589455978456871190961116491639064829396899833989457937074444634668864561546001399728773472284867200906540186241754978817960436994544256691089305724646885752129368617393247392977600680740258511487496009279628356537787392807377918174881699487298069696762389301363974538524122009150585487395896986368869052509596219037095506503232818296617624771076187010718189408086676007891254417599517368411513778744023560558448153644653911098925981239632535280758831353108827648312308232468459272986982042200788901132321989925048473415500456272453067021504374136378867704863007467107139605359134340011901758007648456182532704628237889709072416870326912124133920341195024877592142394631015002026444055293121135031345080083891750965626745006910160083304871634401036542176983034845983369137462114444054786202742700395462958625953027465378697483669082045844082819706530705343923183243978577850850523615586673051704197261896291255936256154364197788932082929146502630891200774389413793602664169565912590575654383293709198281705973561067654662316497966595153097487808893888150423598563891326897931453671946840792446184505263088516549370158315581380222003338478312300905551552891626845452050493792148033160770570773886473815877625663832873880607776421196470204991908477880650221899759801992946086936343002791674512594856074985696939232530348665530504794431680060975853839088028421864624615219594537781273534020832994598533358494218213607565426104316282559318401091612021269537950831799907892641812779192220998706614872533022443456609081328145495521175850647140880017107473366419445142128234506069666898534164301496656455928140138461008939600596745440476289457825202724232675646294282445001537973585876500844700176446688701355522666599392064765398898163471507769008214723612199486211104496506610766846254507124779957924953964071238221131150841844048020746412531895811190925255663150850209482106874673777889031847469948881955566490141671808525631732101269692763693782769751313754050960316018521646764043193679811794478049886441124025934060929963912596618222050957619147491854001605070474346731135325281170672418752239578544775565726022120547296886525965555111462109297545127997334750072355905162667129441733697535432980258314792359691906025762777702241155047976758891344522636057398409551207492116743205825096932904136831463785568423931287953056512777061441194766263512445099716287754033566495235946060303112941466247089285845564527809581436595059049676822063277573381453596831740148439304863142757330754851624315490458282066229717694775096655787668471433054034628488034052844146768875247396049127854698130604728599366799156741716397678002446032637052799251504136679609655310424389493861719088224955898091407577577459864623459008214638922684424755369863148780257276989843360310478309462204128478840694255856694937235187682763833339868266836217761090251682610045576469078670397172493934777725719845030238114792136897813297483778964963229410773219346708749694111484146996891539660484046726257591391615892993556506370024319040738730321109504429336779870316977071155543618708567568735005341850549133516360127737739307003221766068882280255265979165384912609582470435041617043144114248797566834676554277723437413892364267799277844774571654913400442517532066034998012952642535692024348165524445081988813815595558930467432936160159289200974564166803515379833606391350946534175764143873842163485617463298181522812818842552514186366818308602098432629990977484014344905517140759213197781385565814117367596930012493158701334361023522288146247456504462687069008060110544225545512366553214823559480247883496507511919661902799866445987066474790001129236585108064828335877031315943499447615188132118958471250887747957803217407865757069578373774780609853764484975732772854511369943227736379250100740633007844040560701861266280878600022933727545593095741670510416482470514680029665150747221978180084358230062388586869437579524195611337035249044169141384200258432067258676577327874839196053281799965786833029277366709952302117745421620922557904263659620227709739919991547301276402592013174963400449157159939738429451327292684054325063354313128589071237722247192743095448507570172831822497449382105473447248632948323367026558122444127191371318290418452312148919278987370295319626597571445732588777363420497227494067884577950083371771928207090174101910974301199697343944993146983417811439547121255994638386849874077019052234045552083017828991173784475670255767135534788314691750838881872356434048825062310584333246578792076680576965822691951258333730939366904230012438573190670571584408380138621903573195999682655090822183941662907284798381882088513740411418853350527637432057789596149894971892584912187565307098288816423061557138793488430432334378237249489344627654138114940424130110952826825298961148324351978906662018031015572547905164238241717627225931075659079556374103015368628794388833975017292463996589241981551940336002355059799965715087341250683550556540625597144892508360218050375495233142956310307877551530852252225328604857348223270576087459568752418561276555237631515533771409624351398154450711830985094185531345691402328344580206107654031515259113269715540523938674058623028235269416016978155678848114027414961319635494667007883515509201093540876050358230490592269149774185299585391642738714750630314819985955682586900718820679002385559277661233214574814249193016999491699825879661231904911164043055605062341318395847699837813874353821413065752039502939470377727638989837769525540995474454294370859327142372239826898241372544832634492868391055584346379893721233950386060194573089653353607373263368791752226191203590982364958615061922426475881532254986747280343745432052599101707546739838813770230205647073956195796364839926907719847847124061725635735100152652686306531194545725889082850593257171883556787250829376287982742419487472030774578816954779013758948280883998656936177545645168383524880052630790502148562249532692815022893708298181913784315779049236670469655337164311034156144807278238975955158433140560683234293571178902145897815960454710582993664701729947152537886768420163772872295228072699447108465090909931496429700207604547178476691522244172466150095848881668185170637505483758247107884295111255788268462820174485481420080681163106137105324596059881657611466607443836042297882194084603865540991443767372230942417242315700284678933753940353702533401865071296400397165370646621861496460686640258960477862448979967067012823137754513052050863269913781849142787964663530604260233161030084114407561693984396731666893633696660367448563431117458599429790395298784198610565133373544244895829510236858313115425084308935958935671980044247249845466641568888205673913957160211376767522424312125372448682762364263196922867080143863369641038435811742690232566100185771120962481958226619666200735948039467094775689628730933941915856008898545269240640238367302687649412118575920912409653320887121947177809945771404753521044459539893319009359702876675032581912210672810675130774985189339811575127667427392661228043631503827062823643736620004008569315737474966340411703512234203961075328962655614156108057118460626183217976678858931604105441469416704703004343881416603648033073399749797820209320624600972445875326822396063327007971655191539854600494392051738257520647891398370646207516754980396881935508086648278066283161515539141544649905763020465049557708590142729237889680014408569725334145101279039560789558860351429849636003530873567185482429907997792006220693865027188909196691793942915862153851786417149112593163431475679151135568899483418892594590141827992038354824834236334257390913141528387774488847174985282278296698518114394424473261535267204519631398888790702887329507259122146901737744333916906117193080446077050362472510912286053362140923060652861061176937292924335096290735753282124084107942204253705571074478004246194856993712529439426098611019773094958870072260462495975635512750327310759041506159043012197211614850622673181897498269019269633696289381786344855312362683500002744872588994893943432733891611731226080050863793169118699803991707174336153109182168357936205862436421153651862547013549483300593596694421332005660658159055279580525263975161550263920343131804038190590931483127521902127980609200651187080089854680974804431727814803712040011945504612962424157251197950715493902675680391157493579706989190826008749865663067711307463435445003433719717762127193057314221815291841824702095717923658878978576593332457869297705750600789906582342788115310418533928297007851999925523695392622532004289517321196208454911320422829975384855469186769121855155428443336263349511475934424143104931695421940150382477137461790245141559048098181110151982962445388928917146319482041067512923219741941203015884800285058830739493675788604756031888826414752222868745709998169449034063187668716965674764355098521406066108552365121887895052051509295316420333865795640189978829516521652991975754979459801415851240733286347488501051951754523158242714387145549777313741565040866736775268443303856756615600281512023798237022648334696428315468389804060549907045698756432399992440463193103609534711059827929187844284487987355196515881994881170081303487664303206331002112589842640796869816086226039234338618883048091726101448820174194652304561835823033685811320654554628057600976888716540225800440457283242268114410326423874061475214764641034424487864037544584068482883394080588289121055407973779778949762896996547743627777786244022724607322962215085029486331748714581063975135598998468889305756044964721144896788569803178676528758159853088412845510904953813494585670196666673613120862591150279717794979204362172309247027346437102498311960527243513090676782119848775750188016111306340910524152203619433185899819496973801694585981752626489458440309054307504674782685961215404490359844362592532851730428712593446044068090367250100239427363227995137977964636954378158490495957286744481262025588780598286468609207412879308628756963054269405801273968948250768732382781224175934040507348693578268308706315307244365807081397866399950873491449691342821889797177064634357204990956407031305856209299606695956625737413615678872233753739029072936938627634780405982980589120190044011820869302732902242682248032911582523795063235911154956812692862979645229224291914770292239673417770402590989827824271085419337512458255928610246885917463994631950916339143720083330890685827790935989079455679873657416214357607242582326745235110778369935465149065036553226409308116347874669682515737107640097758806754131376326090775106855991415005942078668793424577050157062232423957122786600487716155233874350542326962422108439688910154667348068165760489918100817927627891571858028640062007946426286087157285713949399495682809316256897356520959298799382040445552410669245457050935567208140842080508239155880385334457895902231158671671779876240826032887534954307985297709769915840466968907400491086639557573352814125973169047970207289492154493767199292702483480795633124168357698155861475970855084720953080312404185385653693610578007007334715092549198714276856251987857183611849796048366821680907582946470157728043326199516986797612200172392786430319644803228516358532065910141322009111931850021781843678041194802614597032265255914339003553707379140560959630574610732637262493004885446569943052065290986468472563179715920856585673539990229627056572609202803566638758691863030295921400515632139455150327434929265039475037465598045521436416292205587270325432646523372010888359057142505765729158462969587719539040771764981472148715872425943909112507198881195529312024070024372469427275654848807055983170266913394898397209636739744360801613839798781352687826337917981411022286098138790928262429996865916978795492544054515982465406961656026084603265906407065799502167533151818910739404559659706187199617884277052305592756987380908645579796323736447906518395760784715103002448115246979401421572893901925184845032773332618359214404856395342913702363177112868334853297174945592548046789982671104730962712438630078141191523936179836455321331322758134897868747840984730436895752191399061527231077125307133372568759521227322378306744452485832517997876623251181302281625179519222759292970272030745599896866747325175902967854898694597722438698108712158694071705360484698098117650622175801990679504114647471044960900241699403254221941550700253044715763569037903404424196878957415632284977137294473806031127206591701200772359982633102066175917145004202991178170933812130997782223532923515455083452204335091365844384780926026142570869570636380070336256849601953714457501631908768456988543033310520836464732442080808723536811277660498263577455835026722557173953509235602929809679521558500074856185475054002224034378276397363718480563217344946119810215128635304986897808799425895526248068419589586590281952790863668768267762296201874466828769748251594063750077986437533445231827741832855268419427295162119477674544758291999938352962869598453560264737618232033616536177639775026497236425155671834691397756333917493243447428806238323147323207096972883071321953778989469020888961139091430163430878894017644070060466996754184056156887469489361367363539876273835566700688089383360737898492907700569859604750122799441348508042388376861632249059399982958218414633724921662712312559264949354686479527994774727860906636031055355557397773914910360217542455089084677142934367811098627988800953212229038510860298118638006785783016023088833139014331202957499748959637933472519285326470173189416804916370661076863157621837061400693083656041535490017774515148202948159398693621293071454335115795075374062478397864591770398561399477221723946287040697599536231488246671764563540071998939325521313117513228017045368425906126284627525329650610772149434903446016671600792555905653034334960827627956525613222620941012152779378730073501698328213284357771760519437109957282203891391558751696999727855276263860058220673227344435975925215478646986055011076597770417095456479654603556428641077728112144856926136150645928152427621164145737408388941721608024255395555917302203032332343563857120004202773871658678709924816512070168410445200081761785117880816887729631345668374271399899982214582042957628127660544333822804439886012507301966094747028831443307620543561939148178097248933186806392190896108050500126426531913044680508115430150906219093018013456989938720261569398385309167864156818322404472877405786362487416181481757586234980324385769283975298116824514350307287348665993665127751077325872766245559966127973056996164566806236335233133504808306980218333874688122952273410960382495833121829558714083529457076549039089716953703946810775851910265715446166750921345472436502629090675845237683730176991726553672547090745310983720802716569481576282904738153981873907297491967487525725486844971246531766345047452882497995154193009367562655530693707674113220035021878063934665916013099883608975792304371059374194342380960547140378574172371104807065866631444944881540823629964382480755006693544366172890077333211325654061197776998934907267645905839581856536659030650206716675695293386144424832240644320942174482025257912893059096126103631338084673306170685328415104699696270034210820994907404520332605651197108841719540895948581070366390016364147215291828891492676303507818032451251278219789128710416527971662362058557507208637839080814581649448147919681503035112958119099889861804541893401164616921617349095859990987861015468771063512605226732153922662316632159390992891903585952764302849768781472821655799318622942906308783033964433851207202650212443605033104222745132996476713926384247122669791734055366610196603055283031443877512278848601203139505889237522266293375618627404135589143200916985789573183622293083287305976636405164925033464916513136572790124236723351182520201113632664339116380840797512395972148047555301938310002077769840404009068593573952731186916038468837516278696412056756694131836964966026808840360875432680016518849014628714470164108590393103825531184965605109502016202382570846445773853764436566860115908759731462922289831904184658187346105802139309249114096390205336677402513289762764323342714022059158574180071910121399739113311886950655384001253840481544496521103964377715147851176111487184579392434227402353946793851851130951352016053559494747313161980370000042316238819888135862967841285079013173654290843813696135016876370404740687751127808711467885630406961889490607706770016213232552767733188736881561652049605861132181307684246812903793296736937333886121371681654706414143885571015015699868318678654982852201864643603454454345246464284756947761464353670179906326127406311240310721750070325029846930615134736679198571191718223618977526914727009544181208646146619320255334456930934220050944155748591803347023259195836334919575408843564992233042331822892122769908428736932946108997698080470261114317982426807991617299901148864463119198501995839580800199771361491780650598932057530942179274542391358874934675294623950396454504676297402053889541307909555183272933450303289814094172214743356365173817479323350701890237535309628738212936408385842851532967811187031081829670472164173139590147346065469927808026358973917879386902856974536178540163708858941995529433530358025930094907086507367107386919158738158656607699463486886283190617336936456936447985796311108807432748025835535021275056653368266910378425427713865551006500514654247689079630479032520330743543911912109158114942993374422129708442628123340864266127018613017099453060792009271329441768176449814803664707276557761663479469311735607026814275161895525672165360993159351715096644888181450141356233822627124388209666372546394777409692467545481932515110466891076935230474350183391272620854212546929658079873910378485188046744257167590583246995052193401992899354735954285678462845618163544423195662156359298293252441023742939468460696667996232079101606031668746316519626682234146780694499504974199783481650414076736574131994358288721765889980075681802132596445272856622923618515830405931206951044361064423896711393272994858511504617979363150348647078209791927647748275448036060530728302998932655115695411629609319387164795936424112860453523569232325217951961982241145363745133426100573835299520836024948702215646074114259215871648271523132860218827597828908969078528580454745697665765768552198652294726670151690316392270779565045399785200466730426316501073150348168253700706585104517817518841823341843797022290469160108539545089381917434143654502820860951802480416199916625368478068348575565719319608567342643961406232769644556689135562965235689696091353621751701250830242123767474536467784745175842926514034340997160919143869842883309688472424091273004238215431435308981571630878268965111274284136576515963035272203730553247552598714018390173729140205192592330574082196733285121960536466429426562028944373835404971454400939923544955710326836816489035797103088344261205273560861938403633560300305808596508417113021173489199564673766985410512728364855865870800968396648542842080980820763584417717613825914703150093555157802720004411621574542465239139872664728640402116968430409268044407108543179347687174635014442188840175145461311481053960193648109705348696768500910632069844553647895293921612557609312596060475016289172636181848973233313201540843685574966756036060663428925531914574428487403846163908873204996648616411259102875263083855538082192971402251351833411566953690170268957324734123338075955960391415020680825328152529185594942300899223422422397730144586323414933346390624549088552526174464443341155093131487493786430358691789926055918198565106394630843776862123117944561187257197416357721616856068330109148612975113773140615989738043026876457127296179759795417176014580380322707129640223391310766900091824041577623446176816276816649323730474190266068820410567991252832573905504838510710290437168825864062501049011873746900223091809551656051237470692766173272693884987014689561206455916941094650802548314847160469719023744479687858620653750984145844847519981811527363089978090914388890498304419321268698892228112377675520071256824364718161181831144203171670061410238567826537315344254472502328221767107778779925922377904810731569259768167758921683816186175087424106745467375006993824971181942780690627590506684651288495148533914949283122449426069346781681730726944073749347478618064265320360326674611839057566373593376835581501695652390122817678087102953139733627575777976444279567852201212100910187749984700353778984124786845415467013096352979682658425839560261624716031890376050941151319925183287175907902216196779509069775241439126786332029009678442739192832172487173078110860229823959679608372540920816874001132798749216307033357197221056816000270102497050691750223960479682511754954233573910891023189920973314952248463194205646995417999361654060797334617900761458998966292526802977076787466202132229146162686363037320189001510327438821128725910998364647910247474259522506731284701816580704355965706614065541694109592545461828957262730737072254697948166231462019456852931838149380656885405584279623069984569694917936968231564544938845920305357820979079670709772573333336140207032865401943536182531352860207038453305290830195589711082972623240974107621251528541489157832631488915179522825238936042822018114600170924175189773568761921779393322666474997079536598041578499673917347083674140232338647275993253048080621456481891407271767709182356840762210481384577629160376011057814415623329365355268163200310649544319155109074382598937346879629901144362851948474795788989179175767200113147815802759910671344545181055701019634053350009644776414834616700933386539027950771138145157370291573857851561722320539284793412647286743212333918119637712842771495053555881019767261880144768705802608284584182523628628352730881038983643327384214103160156935088166828851879823282469060181158531555765530434248608593352134227120520703510691500193794621114393215433849522302016976326261126576093439809922696617600001016398464666782009968814796303031886704119378742745734800304761256069889307393798227546166642345852516022832417673738950218768094490117716845500019274320784107181012378146728585142215003121754766673091117802216075336592881213352092957850601053455144138100820930097938422222435463782869209697398713662526730420946327306556501456311104781100919173031812981416055686245013270338034337045692356648701855420320284827630224580805834241102558945262671506517764667298657708994644659560980208130042456066266574731103793202301305453914737294378214073569497597394953560238080192368914864076825857419464316945770544023714042665917690107291545572963980324864870535430632377397852105697437781750950630621267386680462912205438248903371928142926095196316998909153188899599534999758324624889566730598587245467773529785978100364952536247507718479203101210004952337519767290415989925710475099016090090304509247286966958882880446951203146320914530061330160244206883307313827338377061060421719816972161188241876448479501979192432751625317455443573888377866869399490876180509955544580914864992449767745569894055787058979210474437171888098808642399995754683266292281592871436060932827736100831000934642205437801853760381495395084673003169293772543107087319762009967851311646118132012878590776126675850008163977814612139059880901267696952498895722235142780533070117379034093496415831362987528371348740963813894665336899128092376954498184173308441113024971855373002932063137520400459109015350254875078198578428389153815918110964176295495128732596291812629189671205373053421314140431557927300450439521473648420464218387395196703802730919709640263166980315572461029267252061056150063716690372090198287704458694681464136863524793914172105393637744509358612456122493872320522104239147665289406910526953656984648029907317899922261185586282062038481566550261259746222129379964826555230145228688621498301704387834915290502442692228080948888767139926787853772908200400941923865684497775095801152272234211493956729132972048904584219705130629219447760377161554193390951309942616892388569040237329568875877869528537152332837863882074433268746713456235281924600702155639814427577557859264432014370726575680118945272251258276417268087373481489972941062437066542789737967187827500871070142909270506078839167895301629579734510747356529342853931778311903751070553329972899826071283347963494004628433642914356496692753858430535757563005755174933151975561010465213551055978873687935965712129764416922944986672308597949016770287205491082285305873453564593925207376361637111534236519934110153887610221986804139500472339539229832176304116488732865911667583931813450014680545477435848969055592798291893149874214723459076892968260964024665482385693600565380618000445485410484167521380996117714748162855621433489206286894548381099003997931102757336041603286985927858822377724863012547414402883473544916433709567430437001992252763780006803326185643628539343771754413126734411641777284526004611714216258414691012551282590335526164540554581343617831592397223279847342945133155141764572672892944881598434079233387223286121252963599884348509346224699685644922297540665141319789731339643242045831025155581129880118234725883820810643077455561641132228720682135407755044442472069416890865765548351871138629705773967881703432603344075136437101269455617941098369156182505582211184141205866131165286603142876483000215752749346582832941391107734145811180206612454290356972352794865374446788865718150529657031123963748503917798039616599302955848238985885849726157525433466059683381430040178610615135688224885548933636874566168646315091121869469696118023332540450244156359014126198577582083194699556913413337963275789110603034003127116229225095995042689914747413382740773610798994696798583731830205629870174181664390845565568375637266658782143161417960155359801544935630211744648305617625722617826089315499397447242766249212594997444487449957662797084088715860380986702947157995131488494056116375166556277599176037987261514986490569699079230403889180727488628684646287058136997002926933647287283362853168347506944066932160870609004003842652886436367866295754546922903314590290663305201317073196540893576943970235351554511925625296227112058870751246375245825727278280932915366463904438236163838640934908953532633086035189359386031249563339754167369267812935082976415663844363546127144332841796201600762961911471580363846731625703222442919827142516110489641809635917201816041229681360517163363733097013387926326151965073420677256188109641709488152864112910160710356281950812704157189309089986427838053290185816545480995286784256143481352524942078204003298272529444584153169689974053525461716742214021853573719189229704524759471284502247185952862291734941199173412439508176657970375109311460897495986868073955038371254874800798449377600009543292862565711266692750188920109855001473707628341638825401516835328807395307872375348677215372730983625159485680128876936796749238240005036387804063602533490060839509746498645376700724691243570688109569342420322338687744503049545811486443803239393242435242670403705039940906293816793243050843554613286619178543543344334921276039986222349283191007890707820750720119861361897033783236345167600380189743439701800104605262119625397359872883045060477504759475243049882584012396112850358050950021117353118448424764018892437098468395104918627072804298044705933143627008904981073446029979634936565530220554111058665805976797923102292562586020877988940603290376178987674111898992486304990594671316976192543597673402476697409747792671289946352726796715705677086324655762524106078275047760212959107479404429045128710923836539020073421280425315612356611614013514432006192474379191932379266724488006064203056216993209749169208196828773369580013229445688311499706918268587028112966359669829110258318559065381262548006340019238426943723231217579535527839937626163706063476178777000130985798345804937605849746108933849826640314906373122930671872914425935406013265347242309751527229740226285237190471844293669251155006305806250511838316328457501352248563152382107613633877995888624280666787254874210209745427909771976090203445706605543257131084207851668473043468945117981254806441311352411446516242309325811748728864898264806976910589015684855340400891631286906038355211203276045527438353375852112632434345435038984641934529602652543037726918142803160359548026341399186821728670122702913538818773537836419990547389887236717344949248722582177565126015521664303793159371491386160934085088997519684372698843664280410100930287559963589728514636440324568340904282798159936918945505102275520143890200310843700876051651812360058180737782062488961787371349767485070490885108284202648426875199691885548199431050817325820741744542181798438296250205897758338219200558836503685504753562573908813328452096618477325817750476710087259958862625935090397620411713067927849337029782199783744056356910757052731264818021646762346591246400703875129663877106285209931494998006446785439006122682921295475973604650966431714637575814034004033366949968838454120416265110987724887236221665395854594404818383423603977525069285910583053764058284972960797543572881539616745697434417236462583050740513947409815931374266023391629902590607501928689927372688869372040826780832277839890062832841192814734241945936830116910554002496459256243744058977069390183403286906458248029724641770417403690256589137641746871819102071145129825856064891125408804335813758893904527138093297816718436805273769737544429593991505866826652405789452314389035253502876592612022692531499107784421117478232339367964651894203887347916566986498373588807150192884041550222449634029545407222801537032917203620165067853116715006168605763351941587521199236756284909411035525382043223032410609797347561266932507420331599786671189864542795267353102346870082928803440775543681964451912695861459697468800456657269845025937153734181270464573576408414523745733248826777831874846212364127218987239478756500176494300021614109717555327412581883407423846037629467168881595179093061101280127365819010598402322829058360059863463781658535248292780610694142547469347825134088311328907422602248505317688882773494063101681348652239749797757097365216669781581471506934582308374618760419403347661733546426498846378224239351858031117170458863422022418471193821876634988585881599765447203925500872568086112534286981327025960640567863690631891277467299173203638919935508779881966566616463970662872656286619925491577263304960017089822780509827740436813461357628972540231883665712294603766963353828267404637461456183357432117186502166525444086783707298777099621904605189406705837481423515430072801748073457804349557935340580191180058222842131282658836508507042832248191891228540446885616956300131030041910320378922043299161487157859432942119246545171759038754002158394421584889496373899884945877024197325754111441758125080868289015783686760588824588186343503264862552353775392805459691003830549061668108148659956441422292682652081788390273411263651757074034352704457911119605216411851317055486685566039090019048630037593672854300363201956406632143841413490430540641738737244632883909329580662392369753070032768940550523735334506168453112381874827671440335463418688043892707979918365673343476808160760936976016556838836777260836379775892055253184378820884573255475484678624865493080442632463031403145253139638593274677593182094115144630133997909186576065250509388479008816443918787884546473731126171200661757773288462406791144972490294766623688983599657750223413899217626681874780300892293531404171273274407487614826194615192406231493250486827431797019906587143736785857049818501017662691434956690946818824376180530008600312074560564564064178132296207230163779418873871052206465158938902387784028998952239011945138486335728805964969214714958178736880138524602199674209256287351984125794495198475797153021321581801893814533500365824925265215596963680622323586098072046186805161358600693012397429192863796750501473316115652987984745424817511089271314460788454088845543746379202503205261600254286964471980991066122859310787555400465945690598838955064523012731281871461953803212155683574132235900523187022813635153754321606748090650213567267323288034494443586581426060307039035495053217093201907510106966912620162207787484613974766185500920692547699010987973163010419736054966699249093528025044231120892661093466162293323583687275586629862787378514032902526913694295060170243357358876384233926472863672344439058798241718684093519916245759158759474117598280744882722310203870976866293537659113148892448302900129800525234415088979923868123362917695652224133838964262230262674323622167788511865795123313311133328971110819636231440280073712483993560998591665844821922541631576788850986555626068576464773841569469547349389746082994275939197123825212877733685642621091729945641119632520905990901078250625475610369609327478332451133547182137598652523204478989458772192201148293793090134864389685616185436114732003791691128806888493102062680457276974587852045880325784012757717076410572607642725212523879305445430379550235164826333303881119107794101901942452948663585931928488537421509391677903946309225520042394941283632383935244888273300707010813587927699887209414473242689649924138565989470724058855379396776497914366297786737311024095496420003042641549569102702501508855257350507687317291220944597402238754211511910355863818081037952032214235772534519818459730909493725776201363502306941457309156661531661735325127197101686417128032297095155152957920345220334516663578017633936295990300552734375198900962394855189229815822920587742637677241316084114511446814358211891432916476708682261683540452329966172727559218878037154961431301211232530182192863826617876130727447175540729115048729812181226462700803451944077096669223298178792509084513054414627793389649842564217949161019221901421719345015336582471553835439210057747349261798484750573086992014766477089117055508406600646542966046865538005873258347125135038056219238581287842350335373118031226872285582483576415978894030529392259820737679258306243245356320186931640684671211453681165454090741178680354423270216337020352411362687809167463050414551921246348029927675926440026061438766791699371029166037363087115051977781614228077400756873006628054941690505420843682476887671274025672438719697394207319161225567563566118435557738813762092759839910070749863705251220510900733730362225440597610265157223777383936372794178648373107584816150932829325802789825368136931035612174584193896363249722515588562085985123847944802988981922438428554050208330987327403882421047925820002145936219640650730051181271660596431959138452182457140063578872119089327593989755124129174936521289625630874402851169446034647492376459179042800328199276213967410920680705254979684146376577748762347427010278746566137640096737154068614548230219526373016296288403227037175720973349904563361768246733524548416244060529328097745714260050466028605572985810270898894890205675006379559322693795901224808279527567430981024266893415812581376277435305713430882847048122538063615653266916326375337729715203048919567114316539959271886860512865048457924740136802267562669105761015485173413034845761826041745875621604079723509554568695713501047436019731235355054989730932383014857780660466240726641556671746377322206354508347687860175370891876976189844906969714921613344992375521572458901324422135054410619867978396651714181719181347115963372428518990666014877630891053532604734413888889618150655432892125299098568022697463984097460072815848819846696780071660639374078872948241104651470485951757411009343110083580400303822880810776451268669724859333855065440625242529954674899334575594554654104686318449505416018796259543284680376316464994278103771726483609211797708013005161227321595058935178918201267253718082324967143906868810586404356924843021304236959309576505496141901705668614377021867356190543571193094594386537570495917762036205203725321990693596951060289846128996207976482949197105063314965611237755288042941722071402902720519854849873081307446571420468095090396087439133049485870142651026577607611879907350561811513468451691466222366596068824295261817815679261819501059356146587566981849615801603261931488799437015571499120047472698595718174161734242071773644513863025352790241545177512082203699316359727235919287386123081120050199039643712611353825302216894444840915940764216683935074529055437920335022630208781279915227579377428041512990719497809007018578449461213154917554183998294986836923483503194116734735243564102739131282036723098502202499359502685639684504973720142623794864809109292260218790701609524300622482982099086444329798970199295711380158462211991416271602234976589183490484184174943673616846397364200937228545508282031986939630289767856903471970227179672448870670011398149714912601168819737585059243781063644002720372007260952100750792273345908208421734232897050524169805025147146732670084957237941627176008096874137931258869204804512642079999399921765224259111450407455917838591958148296011242418030476716636694166051564149167206265468467429185022949214379492792420533998333711028266558124930696124411970474510043520339081072460210547125787754377801305281835518185357101609931400018303749819693863678402415770013541638645716473200109298303788509983258436683765009095601507733706694093552667737131464144321883900703014027245866393086126217461977799035412944619704202818644111492914788651547352773548949053681160165831175612630670122313699582639553138284275283878745981906172155543484173120059247064209506456678607574382076296408262167899324360898719074124483393389086070861758319228141717686973801636287152702925509626021628092341282043249400901028908789107455180319637907433526048881173288194455625071525596779021836031808743734923469403570479169478915685728318380109894968018538948427708577866255785746385239791190153055751410513034408487933079549204750696716765162241705589399670833587112581634430797208725515589888207149088474911277342122612928095571738958692665379634947734459317566265530169263100123902739876706142496519376254748211839659721967327302092254356362920762954015463845584680724151922730865272044763270764585397295701376516500101382015271929618429893521774353700699060871831664071610073940247459852288263933336911826158601002855785739092052924182368159996247574522144570396566933891800163713734650180082989647373971094666017086323934843573701682302609782931187400623492462969467724772180754777786060137626160375957140250901918430822400164203664048583908424419830464154740655184055553440049864657736120396330838194131026064134869385506425549009115602303003228022141941396455842847219158903416681476724305660025392619067586077664774456407366736955836503585264473606529664212662360645906044194741658512729323074067560026341303764522907490402391701957978762771788631731719677296818741601494289454945578785971806287821126944495691095057589753689273861428082106911525578994450873250628999192986359824889691709867376961258710872621754454922191509357681428473668843932504268149394270441161162423672242056130248397117939413505697020508484671299040156664500331408761026158102853989634344153816187377999548503699137136346125711261676587563628820907008518536637219153061522929499459773538072467633764419419798945892909456054233781449288441892530367238847991919847693871355168272869174958076454900839692806252049236660314687367717543258927824551356279246958052198139215225454790366903726642963212716313393084576505610027741632026647448493439072135283511481100074741426117821334448194584671889628296330253839304926679682716114429562142414191346490100715134626214762505481620201901019552409051305074613988562372963218682246747619574199568114069714711034671896319673717930729090061134144974078184097695552640776722141725709388244221092474517629042942806214947603767649712759840891413249411593282759288813118639735281004525960182681719715089788679434640890508467583347358202062556926758172718349314788775043035244086991702360500324685970261046325635719718417449650307922326992809557734898195532445422912296576378754939976860588652488165531015199189253498906745496969740265324306804959828439899546134302013831752373955760595800392506798664207143147513533684331069478066245805750258289522778107638967457822716865335733159244530947515270285106143900341155869059345762604771037666007821242899732964176791628259769489918380950833762159102332591207915610128770396957979418619555939416750781755855642609692154802124221869913588814883677262720189722072828214114964568447514579291332507765973943461994814989662999780210900519678115922701602602890902931841236064480868740042444745235915745855044684153434969979300782197026062900837250185806417887340007946260594743940541893763391789403158243152653528981750596669018103973425792068801583279077477666380739485147926490271704045844365199132722095376134333444887632034721663118956107070334746790663857781408920428453043143192582203217838292239907642259758028315287757494456457009927701116275473811185566969824958952119591279600638025654204430019169217178295067746628226491407117802875745753492659113672316012940792754171245450049187699638144662502006438798270046519430730040812418634336846789908085146030538489259524417966874277953930905370358636340525954440717504286091242477224035526470804060568967505901139587793822464046426410356127978348000172052173681339019171448156148883842503768869005138463473877158362150782149669576795336849505540572631794680902329260221644951837811270978967860379010786182684420623518934928530508850867409564491738680174701065106965602558184781713934110402269764975180382585777941933479305782996899821052761569732662630489765708885605910125392301165961328364293018364782186299113901402146065593438593927866659538365349839901159646772133784598749201287738935038511687336278938680741452713381252314370486200824864804183047411079804379710373078964068268033790172924773743373548133477120476270944022764666560767536552140735219247680101445314784905757845587544396377751223896763604812257846769153822342041772972984467151371204179876233665853658972445876152261828997537018261319663511959294213893203730071266468625653566609004582050130733618351753637626780955493002403765609040958937570323798358753400663829993753507479384968007247613245184994327283145295480540082029887207942904829379628958716315518030563631893071971918525004877413375509494586006505158006809356472546927510261208729542411153156224861699499286144451825938245459615054038257931744842853370312453473466691509296953513245286440756401300082706273991107756698138309039587539329667744273357475640228777487303257843430371132313429048479242852047647984155057897763391555742282367281094217571794859184018862680493421417451261310683660922725328395439812091038689177170909992384042051483993431722470575638173821753449945512903439683125428116984244630481844787152049473883773290407997479363161738442329587012516734479570330595291936132133577849922816667795618454846054410114208784975619657269345137911922712748817859227475566530833462551365774339365826276724894000190026589382002089822790330373513985224827703054515186244664045916636825900022310286030675134066067005904781114551834107216010820061799772539815355239896466388848356110408156500473557352299041127190843255092978103854952697197885834790137243018975218867100911424010910458893396575063991118629007572206851168021504234228325770344562323234829041344552663036228430605875133791430972428682609224093375064629683887478531766735708413842071170700785762470311857818245580804107606047929314413391383660557172970753346144711637197468154105229513503983592301439286972739803655879445025622546979726261865102337824278566440073767286443239553378210468412263126051670726372510714427109663610043808369271117224861134525941272479686056722667234744576349312105054711753747195408946765439177190414652252074550990828942751792611409154173630400066229000659669109357539425088666410133497913807826344883971851642846143887969843850818141909297672518562621361193836476573538610235447631723194943267735087056032883001313171052157665044881513565305172585400372241638128507353826042881888341054757894340471466188281313114405353923075532494634573678651353247851879609266899714025449603445852458318065321517759802533885841397481822597720466549776522465905184925132030199189190207078497977113804371847003893798051347460606561439212296253547218495630833016187590084213744431958168481712226730546448382618540877334452372180898128605838619423610484698994257266628229587280305092627109878345331243552020085712386044973666951927115627242292713862283152517813977743403826440334727336401108348427426976584698295172539912532712583529951529255618127647239447760353177850645847722495682919182353899070088061444641266653762065262276777131749314809476368637903184649453204658906018082798763206866613139849450188117403928549228816988690344157406660202475215829873665175311970590604388760414885177326264625195514521203020280533014142512993205469490346482441391419151927342252161045960456171428180731747601255345220558122609718416246617279430970343852105072755604378770748243308036795218816912206082794510890035971257301776983749484534925408965520528915827635222560056149129594914269210660760803795640716465583673793877332617254955437559771720399473679959346488385673721758231435088976279343205703696836729595922819991139492745230000866165453261651975017899223329926515575855152986699121359203289408101138552782565413297283465188436830541517179638512013548294287596470367924735600711470191006908320529297513573777903752029911540695465125199179078253366067562062591690233090724627413503307777105856778824100310001367134715942817454220658031113611900424832499370472821440460622486585840715649006068203387516740482445247684154748083993254664917015369027175890194191554665832571878246493256994820907978669040378139244754931753285947907180910885842573853943977982160368621850980860854620886641635503182654633482106574089857260351860911361808562974065929814525952166076282473181394000182579966844433933817175579106449355631102932431453190741486467871081274616266636112256730286817330466631457107588380369339473369467771291189349633456908394190879953441407603870250951124690992518415049830485183182026707326680354171512534847399997535806618166795836552705478811283485499343216563175475816609878006727604116317822763215076706159248653332154826490126383608926435146813164379145619453937356543516485425576588904149462720261073098009730755326416869695309500593353059891565743696461537708353450280729559529605064454631125616871933911262712001759568357829030814118642929410002986010379316165211579720868185984222096372585206477202619917257036525955438389482757843280527466440843320693723635079706225224419510057581298698867980963669154091935766480144015845420330511165531138867013923942318089697650781755876734211096893850285404535962734638562147512714103064843542341547294575292481465287151156194395585783164657519768213064742819671368278151605721651368617987048702188290439538083530225258940850902935489737040479309758581083716473521018683327737537002294157126083117169239950008030652477266129088134021391800565318578861885871587076952823922665540236723118855823090900272590690501948656904115706132295611510414769755812788674238523872025501039484051026877484729540561937619881400785659651382856249152896231846733875560136861422429254953125921820630460362975292197291839326752064579521020824627176015955986791628104433698769510419650223148597325756275846148296456768944311707873891477305695292258232403221691556640764232042707797949756673352321412814524488816347192957078177937633949060013592395332832328607265704316819237229024548436984229443993321875915802431425853616230857374087760910286186453092859346989280872695564745173673780482148251296450099750391221736010071809290830706405410128113631220237914141104384512289112327982996794786145204400473022645467988270942755813773956851085817023302904494542697370449244464953200584361376499347884257814376434679697513280403228865852188276499512216732234870927548280640577994987768265186196550645919020246971948591447830450073944659050638420618254886959843041660175539946558410862890512971208573428088886129716855786190763333191665531590156300658004562493384026141087585385957812559548265317984325578961794926664856799195562492900308917957700289713996633495187261212957536032582045097458680695380361774389835929098488014683955887266544908507647035806057324633374102947714213293865580645966510866569975765443235750348518848766253334100908803835602962641560014188737288525263278032712482458597091634686171791502620635892876611701741818285739518416668938695693793869478804966970020844567284566973906329180341850339509650710338029175260755935729807677643442731580872108232972604688818580038864381888014522968241445778261083731708795013544003950408508234793718231385974082659035708769237093477508159732685615796777396429445408553972832228625169969964127472424071086112261390405891771475987660716738676881759934974976238073557041967989777099262682480590820179861062069262334541693469266582793278351822482468936141796377377689394295118388327535036127583167921437446028215403356864746504036035456392803169682763957995805231872187378002648015888367551859602002479747696104947209496329838931015765606854146119250282270993899724513167000420064634808920571738328127548603732225738516176279892666525060487742550728947062986172541361553417051159314183986692025933551808966665396263017098107541260474825819651351534813423215107970116181706201489700269527848927113628062868242484446797777149942383032050540181673033805239264493330129390699372670732866482408305031043577124407817552055831031877355120158940802784057250394369965835893409571932585593144292738768653504707027798561466326733360464144132449752592131890940446324286894757046808830764621465590407453662299335997886963446011959639949961506934610471476064773301921121071421402618517206670893370301215716067921367884026712049980640383380379831331601968053856857632863600355238922266650425961555434660143024835783103915139199837907039374087335444002486291696024365414269827688159433226731911931744180399354443490735824159036595976400948385442993535408797541313085492238384206825914247863968438372744086690461763962313054199156466151979201449582366787421967457381056713240318384005313831562766488659944400426595947539345193949609826284404683981243687511360261600991955829829379765827884993925486724029984981028353037967034366372697275861734616933777154510475925680702189374084408556771259385879888874681042437512369485083040769818245477898348437367406622664095807689421182441422879054077959853251670763683429127716976423496883949138376190057800462192830206696453949123938330896551458951141767255903319867781151840653764008939013828836367693662592005375813851945684974009267201498456170318047266212001671700154455635004785907153539922415267622803686792693561581611617582387539090766373743860133705527718635837542469410505114731634935158504422842917914928890125617474832482966206129395082538068018063135203568012760114067636706663278551150261352040656160971834327044851480955907419721936681553454735210057853166524097769367243980160899649703151130753598567046755909122507088731579271442633049504940632461371875774484907856910426066400201661969029433418646177930044686777274360798743643348200507754011285786164326446979067632420038058237268577339903550559997789974294147572316446395393138102418386066109425833595454808537345513417228342749225333887661058718259412133783428069668505800059387549904742506894357746305891940337036627211833768362398357952812128340434209214197641397406868632193905501889781547831048504984686631507196301771232482261684918072701598447902629654865379053885040006366903079586939194472006738201380881953145384453190048849725193937640127907270660488215891080815845984896427346469171966756814081325152415903345724780795116270665221174919267575040417255415662850204769920080421496626581594693884572476769317289487497196654523071568095092593540005267143166550611481772768210582104699255060423935758436342441247369927410355814327274856905856795120692422942801023713329253568815788299426840672741548776769122043577595557355922305603517863295962407194549777493399288102982685612040168665099580363485800733348945895768048912167964445725554874645067418201723574526043436272161135056227105726654199239237598290285599669276362807826870442889073946269232293431842912716009268668740334447887736803296777992792684470169321959329738572923944407532640179101222040482601657838818383451464205387807712460019881076319981490437398984078137994182026521877561847106728984218806071600118405153122438060064865453247894542911585828773088889633043255545747048301251919989064485177467166050293313659069556843232605484250331850859795110922976903363605008583976513592427248505831321772803652287206057777104821461791903814095186593655815442629982294982833065095515546084925579487974907809406534489116847154689301739977961036673082583661344801970036618067680708576568574141405143045763677170075334957780135387163639231239536854492892591472803680151627860683512549048781760045236382744794637213875962600942533461128657680719849021419465364738695619888799986701942055255328691963169068420808798475004882759190612483929770386636146317959479278246047287758312206513057007867561725608430117602736553613340411493527376957216923649396402838692419893710022701321001821512766547671002691256030625605442628699455318534762011169344178053542688590828653561353654862145768965067809469601383139442344100879463163793027663863365339384824094546341867829872121668892465656292380895378698388707250270471975796027584350468002145816541661665737890893634021859816446281813647467169512515741476199366699600036121434886479047757698143017927351325254610994627967761649387547967267071751050740325810724943306271135483109132778206161737286751226564356736202823614110090470081756993257606672423243724241654950417908415219525907961555773179972355157123095337735959168561458780177813515469896650816943710196316356873958309665811571915794229934495203048727299999953689370996636566531323652941039215603409874144399089062421112260897824395507647832100255209277367824154920894499246199617755627137841256659481832864931368642309635019525178025620702274215458557513108771539323527560356222226292803394524838441559008611058864190262879351302523787946883124232292112335016111207930368680775315809130989247878233609149577744555982043200609754871958568566427815317329284363676420380267135403337876026807487859714249302704981815998085340906504588830845695730155782469311368023527987914455956688588016400123465817586426068024297569790129534289836645690821904288181503900239287642311660525884442780883410341137814297444050945785225296111892669497650943714624315032650471500412995956970541873083114136316058177573541912493944699200184433314859063396778651557512089552228137176690893140174043005240450832939538941865690763947759951235078543970967382804411309559368684522153823317862922238398764981699722713888452035847032214048098846646811031074170590957955960003240632996760645057245795666361890905936742861417485973050028276728467230786812178773173591120121086438457979506728208848210171830562614826530122143253254925892806455557478761295061818317412108485576630727263884693063143375764117058339691466065367476830196456347414993644469440441166752245638572590281204214477442187737555194181854009632140895357043415349663522909503572411560623965237295648018791834823129676716175847558014743237040974949305401465213021447324316256122779689349522608007818476678088045129147662375343698229155610775330119257387096760485655764908510074744763109184799273543545398318432921866837273795259295793935364052147022602852989815540332923380852235198762703033815913574704529366959484517093077246083942306566166767071184430692740191150280078372624526335886840660108528042725490719271841073799815861634972423889907415471711688587100737175647285598132279333903095213625048624431404898735550865574721710618011338104874476806810974926637805418543588373022128564404435545908498023646402238404175019971451410741421856326618597666269691165358908677833657610656402917996945960819154991826752158406114501924620392041977610071538801863270267872517756279427157965906876151021951950213437252644787589442533267610997596969319269994480583910383889278412577776710938853865290472483320418736110092636121051273927691088360648804393597688327298861199560919397977765203949987565941320841097024080261195639072257818268910921700537834473761241153399332916760703501252227529588488912216612545894596633477679145357787502139098005634880362214226053241705297853835991684853826848482769440477842319931358010880315023220217308873086782700780261444176955483003531449340308500608716182519411339278328226230762674079043896339496092185678677540216426508448652331784797436016233934762906844253875643103508769335680693921441368761146730934963665731276729661388974167448831002346074780659348016397761901219677635025718737042378401529990778584521902628619812669123028554495464782845783197795970548883624100806729568908137427078608718794364027217874900666321981184149269399478372490790867598937332719966298145310772971944912711868878080945159757556214484450578631300861014710094901909874185279705808306826791278101289506453165418894411494497439977004781281288177222805080007684628146525590689934755309149213199121674028770084161660860122928406496477717741500729595816174865810865524150723394052467365671362840009071645554512933238836687772881822333893413032550669842006038382144911682536818226236248464011444149067151492748894432077210915677196178785542716540957469389112763217992685027226015808261424730431114985411043473742084039694789196739818884612816733559339943331966127984015996069655876531254809728937453519472257534394136181012736096481862467178857865623366730639484873532046606498258243145464330968313695142992889370514140591922233698412405646308414051104830063068213891035142456080907277679009724991374541937757026868507392932861131370904720449464636229339526670920743923986367023258447200574297082096411511985941434916636354353938987799022317976445181059340870314156432314872329038777662417725312315985128702372602126653888960278891819129725672523902434048579335310923403273026784184938445092793510585269681218301392143588162024023761846403093988018079242336576946662367032922372436500304472291383011205622681055721174872951427589059200554011858686048146563836469762772399233342890627037359105413237187654083638290347890789550898382378341132926573815687662110776806565025290778902005976414122547403550626820213157662031366947191648227735812789677330179591410133823651329404294002325106505746226464120945742879391785338595375381070093955478004662595168183436280345474856902856849917883515529546817298033280359488868571849503482002034950477830334714100399577752367718333666437060270360254840557400660220366029509978126363846021040685666886029694864849573581783256507719046246958224636791883006266473088343427929706410262639955046402926412236936842799289874320049362633140674774909885329052433973858056842312250582638616991489561694483240740994414786767915132273775368337336292547008656284390485575532947385910485471597786117043769314833962152031692825757108075644459606060780533254580205007091817138725462475874116769290813138940694869864377479079983265569241743045920392719536665184720559477224363298440009400682896941147997398360643646291393426425431645455032347232254041331308796988803740286654243412395164876419229659827592689923358154116037784072333733964877915529184747640737993337135369577645390228680626855265918548959350049043624760049150398741069813539479276878046769892095231974630587492850829680207526159770777850601796941469162626661466052873340280963454928909175137364165073342572461011702488801650004214711187754302248183643614259037941408643497138585001097942516044455390595495647175042184859801638032570652774134843838404091304856332893189038938025660433691775737677771967538190109605488322155753399019376495484102901250652963079999608119204612314061127573913840312058701342273753479476267334678452667224781536248139027877766151503994055544435888985711956450387102450645641599684034096750813681195374380424792937062190855995658421548769540109504483507103484236702641436889942357736116244229934176869991204249321390533797969524837244263542128729246953250550840846809378287846058524358754288411964431664317052657754511979810506054977118467620085565982674719468782765519651231051687532036529795416857617494568838993851694896485807850133607769349253768999559694350946655998448029053270143641396034442983682774269298289759844480438415559468133713893548965097986119055739402733958421558453209353133059522924091785440683189247482027711194869258119634657891796596956789312951841262929915372875798068197029668431387412745464876473209909707945303487423505261007140586051109165119452349193048320913562798567320609673442555990983818700415320627986226938104910442403138420049759755479691431411816643949155089391154869933961682864355437523554757477684801677251494413086074052912174695725495641941581302074623956148650774865345528921070112695774612183047199059821854210541849977009949384925376693825105518312596209218382354725938950481386730166973996539861972433047806220591504517218645609005808329066772970001361787207383411020803329725137286001560653419798110996339888569577044395384698622911202002104764310105067041670637728297306840656319105653612892194030082594126482544756771268634980421911635224030645913813777362443633478254635006034610618805787879133032665009740952210606812295503669422429832588258500455943917468201161157441172696125371922207391141011297976937090669716974850120064970199948249962102229430909855730262381786722818287644661118271934028884228537672367082049131640048331461617074814457353171687058088541643052446616863131801555972580936027493981862343170172776146987091358347692672551793059068888729648800488373299573819803038915633265175544557376997217026911397852030019999479785771871316425833557088592292783349015857345894820600484492554768498375981497866102224675965877414652098781497219172492752734461971307721761907914245274649086760846076034940600682254220911384087397222849615018681794087677964586045711329183633370105730366333418613972152786236985991106331423321582592262221858160604120797165726590063967728824296690005837807314194811088333325275645177214201793681861216889017393990559161465661122396325215043400015017167910790934214590858697913473952091418201697936041100684439813379762090603167480394198005831285022470783628080858166424259537022475438006093946637831363656890176154396629819861925052399272945017470184252248831088347893521183444698230608091750270434015130466492516355817660342412553245883084624451560993071487707235302139392941261313212905283678278053266040132630719529324625155055940015261381196717289578941633267793888116474774225881099356434287355737601634663120101393371682262796933081271573699373507427544013821820512683971962170952566193513168945514534279246931835992973719523638648772051046712535242814805894025451463987222225789820128846185838137481572537464285650315423974545953799354952403997446591162238751601295183068356560077058192836164036118072623413790981124170030840488856635468075027352029504764317730904766943160225381451626199819501113160712015395419633073253374155695559983519516776975590581968563900638991133092224646148043287792851212460762563245486106003218630914503107353288880621150614229770107336495368138895829037419975807876923986253333970118999544192187212293844325501148296696315287981260541909665861832405804243831416085178086139225092153173941257846236928550995870112779812190060406044413452513063854779966222105390589792381643435347916712483126377809048932739754243223904095443785367120281753857405636343428634023349059544105126070984468952289254431895922701471513603992699897251895253696844966548886946360167168018202828187896453452771680969835157826978909902824176371012029730875445526271064042487070776432308785995767272212760333778892603380107926061229482346238122544434987339672674825862771468313421006265372699715145040980529853350850407986234468073213881286075250908529840735220465731004454911092074038794647524818080915135874119813844399916107193095528798146933414141153073312029595893268310510525921202956872764049216202459636638913292696320240045903909226425140617273667492707827776208183140022906401671096736728906073303167330350501980161486421363376095792486473286987231238517346639866088623228540291730098116633062016003576688934906591614391340091479898988727898162352701787242522532625045831744530327306226693049255816386158015607413954192949719825518820105268504755224693010643112179415375393930444598895722267848823944826479782211903820932996066092077184502894065188688317257328425357640644557118978067157270597765214094045143282721416991606957079628030867121738823590284403095317646760582375227137451598125054713838275298142353354028088504815092020910483288643418868266619227445395725600140518102850214762385730281236954680405934585603055723946764602009409643086148894567595781440013863661884597189447881610389521606525088447648938231129750419564453377047381497228886551472276197454812581315781807751046609556182301966899784336751816972492217927155701055874616519767872436624413128936148162616961385359856915253052846682788031440912470748813508204710854353612366114631290034937194559861761394620125501405354198029025593757042545153499926946742321869389450232384811028515453854059262188855000239092216341846338109924618642045863681883023101620893529909507106666832977447771723762824792539170793840900030027847002458135630770277007599409085797879605948250790136143443492761500544465479563456009692517942298988479344529274139893828343160733465015867918765359454813187935482954244722290140159336291085348646748031889039930381659533747863653439960105591295446143001353105217820947889269497311632401454314533417823708628053425170142851594955371742598324583104419801162371612427872454302918998710274281515084102981279940782253851502021820611818958335928555982023187350622574479965712470266162256357388653516239061165444094314387046649525526533068955443841690993809098948871291256331724070783171490384982478741278420980894643326625590806335719285772800852609446454079863540707253271069524890343578730780590340813119877018009589304362726181707164658972594145619584087305997761527202303462419681527202449337673478034561055220645306669756484218726911277668357324877719897041494791429060415716015053919565613687229507251128133292189115039148085855970041462330903388884465274719272850540997830047128786409281578197209889114395882626560827793204006854632001811452461456089605092507119555058352186617996917643819185516882573212537415491095342213676007470053952591278950456247815425789602546822811541103293439484843343530002284515079895910313367451913498326177530737932888257117201688199400246865676293478406806593992875143466545321668583266904247531419223492199282705277323619135335381055671912372896143029639152786027886049115878158511260345492828659986040852387424684482471192810478413799591341401974125289571609987915285180929108452775050695128337911020298734968443962825943859775338046354172465414839010097141109059101237294077343550793368376006833490506774102877141171700702906783101564053273720792838018042211988757468153276881857535719179643914300986439475369243852623744824248445306233035192348018509612284582115456038816168334184928703654315218636261059878830505046812227391171234293515587032016075316285998717952548401806680819082754196574815890762190656070068930885864070225162892441488400069388157824345792458202237727240866816004768557402207308165358435691705603565908773827842181519739370323261837880679148083141354474520660667363464670046468589014110015098681313140395646714771700390873584373093326483920644014093191978643561359899747183854779426405723345067469214917105950360999006914553760862111116934753096122264565535352682054150071880490618774741856538521136044958442572443139762719518378482717028374589880644416217866748812611139243040955296782573968838974412103913003657995850517306830370528191982667180536387885271640630490331814150645087011518789808854042361603921454777788293631428433847884434234405364940781745447905636734442006509062156107930872414523405518344139254613706182103990165797510048370917648612558843574258158342111966335263077898062520803087552383023252213619985786386599503806406499721050698515375335338205936529677780368747084905478074781770331640582967724488711553961337695248601302214095178102108620330840255352765129212115374099465648851506032678411530267302245805040957928251682401982746024782871341611616135109460684649909174141221996569204811156237522055768783755292563154801911787475976622439826947669361252170766220295296012509045968076776165830750463865204103767788771890454282918754396070085018280261086361649545165717174122449069798242803231015510352105512663239933945459874247332081365340415448571333416028994537379019879609860332102119961061916042472950656928040309895382222755466148884658603117471490669219509462700587466277207174548162758052549323201786758762720754818917560356887006687268962395895733361631818021159992625702321869193553505243127436850288043546883211068395220044665996168852511136787151856616249777661297605476738208415456134104516487069252487329687556117331498025886870241427080596839961850430630865027020611227349064123418654468938662225995433912659049554208679885220571361595168665725503560550775230297114236338159801437093456905652156705633466211356880452072014907536283168878802360149254553016315392603412136703954967744324671155743741176979631938668789204210737357114205959647731971286787506678299836962443563286798151993125038169610753049760068182230022473261182672949445723858650985734973774544552050838175235193076889547176130802237314257588345311212974823880162310226310730439950252140866810670962476879772989367925908507870115813256781233786223529706498784353963697400844016393482037040135388054839732800048302575892246861590079705837356426568788488190817368879206422255857477366362133440065479679393467715892895778341032015611881170868968355346179164126317377268748869117113122405421565172639017244135129166356376562385811575792523298327182940956238005190718206887923982866208345674522465819050922394021288738246087537035521857952395767357438119891626575773907215954386172731900687054726636657944033954550551781005892788980953572698102509429408509605341717378232170042049620592146426621743424664944697005980957196208459335955494715465856821708492137378807926340084421532708999649078110281333728390013466589114974684234873436756285284676913803318718568875840376588858931933331255216411260832061468211906931271204591110365165897748283058685180081185888022309155340514314661808640167614909747221878021969463918327425472070484086722493062834048620018153957789444123652309782503857981321615751833527837500890298253897561592624431154173511507801474993520034115855342545338587601631645230746251331949829954414877518848335898901207156480937457868050640307228742307021400160711022164879947343568629059528807814673715982846704282677810631655500741168039847353831737972658953292859367835923891152398359006914154606972549986346804776740116933615367525715073454477097946862426539793571511802729487684932513716303800362413016914421597181181904213403485501928227721775282041179910787582804893210639287186305700859996374582991604997615314385859491438835724018835575394531743487736706694483605634181665046739458481783577705852880623105263745535361384436938075434411297905185608827719268951446653703267426053866670954729034685097254561503953952213378468424931516626414218895085588605618956959721797566286155997369146507506296428807515641141004873740826550788321047908778060560972689109302588873783598795212949935671949384519844946507289719668859902797324367360691701958011618306228657869987325689742171027135947994145519915652919486598585726779142405158240102072706444267913471057365599273098706997606930846396705479799341309708023912233161335759212997213294833353867641934211696162900601292278956238294731175792064733652242566924563981688362158182205502999904300681728904333934124055168350393040559607533076410172484585749821477236673415673139167228499405274828488647341821939185356613948930754690727953085402903648255666001669066266262491283437734931462053601767194149996916220785180467103906088677910059540942194520764685204165368456165677729055952811897103482119498295029017786901885844180744220936424305385292738392188214999564060189125644241045167194593372377018771212581553177986472739028699503339414868656199867169227359015077631432868232019565746895168003679080560650378762781628016857466489642884481459917231364446605417330990937887432012165220095952535552203031554885606059479768550325287254938084302330523408859784074655769656878919339528270192872986876918810676683296561883174823753469463007127777904175720846976238352695363879219755015831463851458925305840074425019804339971751395212291636125310853081326449298862396936009189271625600938927069185149318040482773002735681083225090711608711563748180345770261035336599921630214743224681414896294554184792982823210969498928919229170453907302003473673234808360513634404506322590463091106080648720359328005887426566447209855575729561020685763884164059524727827999958872622973502809034427635988257966371297297236740709599312268082056592036464018393158385090215999954786503771705990425096488529235718525540302554490152237717407606478963609010117553485224189372662253331293585308398954891148824125171944597837807605538218187771283107841949946756965057354043391905899239629151959673703215868802781904572437552334309702543629367995380618662439683414800910966359622805140476831375616444925897371551316806447330793312978592743080807660937430185227662086896995255536266271676069199040098668737226298469731733742297393254416767206616936229275735664362541166758045996681980335327173502661042519160413871663139033010362658153637316616477888798179195120439354971227553487004028474062652726727590873892458534886313014844892643060050969871528370353259665309812803941729937315643159312147388177778073718079766106916217778564646158250333496068879370884837824430166446226650774966799780578162974265790020660962439682193214648412969345531336268128795183367815323890888671708511417184145835391849848521768112667193326596195221521581453173117185698557573583005121039503949518752079413707612159988897109460237414923998779611211553424607411184731394274642496810870646048166218425013088894218966992045475312367317926380942261288974433126335757065966699193022526727778151588228435327490615400827089614073175092020382289614413423477148551452960189681869127994450462442828701194575368733991460356954675121334294911113237908271324554256938083864214191717139708016722307991120135187353648098506598901489081533296433544265851895625344274244274549117393217509730362583264150694919392218877056223288418508701853837780026699171073630122770079175789123710986648318462857211622541580285773953172634431425798345066879700889651916576276593514377601577429034019206726912342092883556061842962920681992574866573425899222323056868627488274451938590089772654654949770962075736082067264941517431200250783708670807168794522355625243401967569565329289495019969007157565706356135252371238696716378343946490261392032727840791112559152817466898858941946877905391676506597577012343683583529181275129967298377910094351704400691902963542793894128302708581092679259056552144717030337961334466426123078971527667885487653792842265384717491597205930458099678439361199963967843068185985379574299727743475265697469026987471049261171362771900852298097956108246886337206175904296294912511668904998017378579461721554625582643013206512789125458353534299961068997832443341504084847257873143497560925400898070989555821807403961881567835068935923463572391067174473572611934832755317667148581867291905339648415034046286854700320692775336137378212154780207746449407740175213325682486998488421887407986063569817953308742631585046629342002388267183999969675017364293452958776649216782977647606308505822576604538454404469738148718040096202441028137808227556763032320592055200677605808746798126335845847814286015469829293552551776555550314111056321026769152679454290572182773783812865726491270222231478702353162200690169708946285085058896129853129008060831313305073264076744303603959559163875183271203534012606086571506547114614413359516252353034616889795679432333096982696259026680514531722886839086887250836853444304267459135646122382474944688932393033513207723354303455419428259558934457492174618158093631849455249944172468696583478606173920524253767740905178845572774751035843672789280566291425971026513459556162258632273341500093529114201651842753878619774956733578033163488675255414391789361872925943042102576669730862572467871390910912983232229824348498705317193991335872644018505259631236915320675553270825890015922199720826560692060436485198543223000037309127540574764152861808408095589581561360407748508560666881102986664391452650731139361431234185721662268808514622552291834463796423421149480426638074347136665558525586699347979846739973629134420171547561718918836497794661417309706498479514361401550916955674769763707433568539368010303132205832925888915604437884687826917411731725655218739732695696600506256098872791502341426883819696181053219758181427903189660648577971126156210360286134007571472282693432746388047119126181282039810410764792139689689005374754345593950914401177065812697130038746940908599111729129826151743586306662333288091212590996957825533878996822702257465721117323398184148956714358119702489689316913481758696674059937110886419305959953140347831164036504624850620955792043040150485529670750093684178200090535538756836495922835540032609344900138115783786681878197671501522351676437069060677782405163819736405856026273785568727840111369914363326979231414899299585399589954280044689351716077400273145359884145453416466578431526541102895742827925823179760283227932094379168269444343356308531522629111059411069887189882871809218146758705854958444907087709909365509498392524303281629768402469399523956476961216181082450460314266750020105354382702043391540247516468435805248644710368426805201418585515128082704922680796774122971265261366919651207118625722881604864205242676465444478915852956504092195730925470458544196770535364574003423800435958341330853200297764111344375719867918273746276223838578490089544179039120490834950270104178510301612999056660168246322954424805033110892173509409688461172264529723478609164806078149148460873521897826780838310185037409561316395960999193435844341539812347550303483873681007678769597797981128605648949949012142737485104188613834241410910759086081060050492352105294929003493482004189040649721942777805010528400520637153759656804913604172685242087928398837338136099512054877821285519320141705316260660400927374828255814105494862835061616982949871306403410596496820101197550020565689215087910678897412024827578244221670124929755967630305324944893537318963179869644702349351020821086320978630167991817461841530434588991718060183246368032943898019907017414913120252609537127498854274973754164713771481203904178440327440337665464464184207176616440316871898494975451455633539039203600100215634793292808194278570475519725044474138714855794436332223617114019617093378274662663653509292853854507777021423870677973712324778575457384696550435105233554203750151692096863743925454043641157122399145400610338266071480795345094638964052434792448938901646917106202693288557769660470616336534919748896056755670524589864829144706505241901209236135759341326190615674772226085557918427983829635297139607426161899926059847274120113207937633829795134560509284699952399345643347838688499949658760093085011832393751493226386412954974752138268508921554558096695302002327106623160418678101307204144770940124929929252139090333245452791599984408349428344946194765857336626117114034340694966951499639242890015124536092422991951592349666179864607312184709049512905214877287585464939420052294503331970954526936016290202645378598453839172362405289322470692752031797190438881718998552551943733955019077040770158280792465479670815327356788447842642422331315894705999469341588085882788030567860598359557211662540473811636112542823468138196268103714120729161306535757712694520620068281622513108036296105555244642862408409778344154804994575294299116929097800736804025950884753875644370423879213969252143269009428403338717772198947427746387645478393083523085683219534000109676680598091174669326246025552738203073015486240252116966940597437704286514748720329296588727251692522375010375775835685349878053287678506710194645032699300011628147366746375332808432898964943055873834562229937707950459767043108879953160541853754450517285916935919833772149573701858602858519276007888767805830807693349106253315016266936285898097319373012776324630442048692221841469662376719013145048155904430785050884786172594980401557214768843511487758317633605945825633627831298196702640271426037000354955531656340699376660071610155039186940250196992413854287147353344326326950931057264030554651497507949429020649537168587880620551133439151882951906527364467877880005092830019662294093834262931553655682348859877569697251301360537298928031753149799344354810216132732838057948787321367566594812420017824374575499213397753907261562491684696450503639051220427666859895809212402055889636692125402652906967096840846741925658207654533649433331211349083103253632927930657199967071013704931824908386660292141716286978374639242496250668282258415649758458129003085174505374995548155923276741835570498611877180429886889237218405595169738478610388585366538349228279929114664219828496970408511013063760887001257588281897371872302133338516013853927201358207960510025728523927461094410072343300167888690807720654517496868677529752461075027092866980268033055222452146871280282927875713444610525011560477603789443893226349337797477601180115927121733419583467256855130048002094242597293452151281614425338817849714914664606310065748448438689302156202927739543615204000292843864311394042814058339411037167092576619013123154983939827414405949785849429338699177215202495067380382570709336079194981135873865191724988682055300961923884584807895864407154165893150183835365719553261198895938279642978610420572973485680751478914047782168690498242702694530097169405183324364898298116046982101303209692226856195850531112705577167787498930166465494782063432975844818791720105118925853709940108655555893396601577390133416760017637141711027809514399606530448938816901540242628123622383297352755886821152814655498590965546543046336662459383820703691394703666605927682813198299456176767184853367872685169954856969213135478095590691694450628577096126407828469623209812315854938600097161195582455924833481289741812058277969614958337206354513281461737588921093702870664653909916691471911211555617821105965319929977813525643766397467343912822486004725259618156269454609991917187850623153749398354083619860703809308973160474100560760713814011069603019436617973974149616526660358403591965931532772855924321043914276873333698806860715481095314317439648948191442614384895883158865605496621982171866484217611965709333977997922294999922577551428690190774631950185236979331776507676446771386484864456459587999769169428681556221076142577769404700801753262528076853236218215170292398569129577144772262897718303151535741353136568039769477909484841807161201191160904471769510402506784456808515166774523600028235379639825718326861522523965686489211985623369263102710733627093325694443131080747964119744154414145466335107713476196547441451702894305617074329984252943551276730051786160221086419768943315459208646950001134617308520704653750693577966063800128709457903007376026964401434780257359241534753903805256154654557777043013336581836806742864643251821458987141026885995541071156977674033893805379536775017890607915355700287906664204639953034226942979182951664263361145400496926755024888755718256538606122635051234055562352327118422994789012264242133474496877958281589742928932261206646468434443610658527249322413762652270588001404467728331029072594056590063294988861170767449771442898064985802454802340942355591713686530025937361660870613134541186938845593917825590729599426064986416531798579954419726674622133305500941707776456678055723511660134139164444606362689253341366563741537034766334258302455702532699850428404861859028231925823934706251785920096332922857924047676097440382348044545425497836530230111247685042160367534737046699286892898465515253382818644647611242361687277492603553985210220110414958504062659877418050641131784732445790432409946916713004394676964368557754109372452950115046228065362764698601274005814570530989721000995374155151262251304463312455384380356255280642723884355911959915208901670303551467694167022306310905679567166610115650216923816132195901886608567349994482265432571418904015399397995575296389538740594806943034851556641301965236545555723687254788471314930922424174518111031386567539300693426368890364643641465655051983496767513252905064564988724885172136921560168299325335186103493303574150067737487005321846959518428299506487160845361829159406138561627775225023461209906306453390374118435389942206019526358404013579158472800360552627881420178771338250645657962454305880583034048925613495582633692842909098024362296213329955489409903735578854498897340600773556522204144448017022119171441458395363181726768855307840004459225015175327241647105130136091909389724436869253774590069427646944667790115793855223600535663514446254520719895205638252103279870541187936460226152338714161973591366495405223178745555957674849414379074852595965879859205008507789567205068693297958335317206763721209645233164304091283123077586054777881704677604027182198126419518373169105160493147104420102538698513655441884311906382931300189823391126968814133695987972092100291692856418482350889722607655044388166453372065884883617182518027338674721435506354618209001431915833344610689685731198935497930805361403095231772537028526166797389893595544491882641847135578803973917647593524756348930927102484270041013728567428075914541875100973054691978362746774634690084235768804195931230889430340822232956536105450180816216709653133426614365731061861177600060601990944917075196953535302857810933861490602620057470058493960584295631021318458299722228263865254528116917632866035742794445127249122967131251251272921596014822298264141397116345660076912776706715661309916761966855619951906255571175558861138341053360550142152824909932569204555635293599200241503111119675116349276774328744723636313589767073859012946261206143333658810170526754019743774633475427840626071539818710186326447885357652576339712338374143122196329365703450094381881514300774527598352627538421617489136120672878307731178659365343121868442385191853783352906029993714034760449302962532389774921932096063761966131466499697075032755916317538361590847793978317649627645846127718854937229212232310688536919748739815561204948973692428629476574843812834850012139278598004904054398649530877451747716380863260863648965644481117692436180756853916495530830711598585978575466302040149403478910840092460077599686167917340887319317896387219324976766218445043411244164937767090697713914639359970226779234144248415817838629037420409312782760378234119554028203216366195315115181026709705887408497863562916233837716512924367855815231995382304946130637343439458692762316810961623765428453789050544990587138136176345191125536053555568111455070365309015860587412975792647895109776930890753123743289958393101609679833407665892251367400439076675036536509912005324244806921599353697767493502084088150162230191046307441352690292990962637601563543841071809389587548398500846443905656214385799231196733158070715456720615094723540903143224632494482931444391514726602368346788742963180872170065049971789777410712532464822287414563538876802656243957945444452390984657432612571017045031312155351876711497095171780614934530771541843408333521852867134861678736362304649139209011831368456164088059276773206050218429894441586891596274452443012350288186342857099077123279523184841652757414425159230365919296081131962249573522413980301302990164609333464625082236783210037003980900796256860022986352255638539437972504240705861494676398082420169351957078313239606785411717363437565880790949750710695706098605597319890083091158325039042644519320401077371071458014206889737063892975983277300466811314570366405652799570413651850104751936810116323002538189454287155182225274922006529902505067210775787142518886080516770526261842946583694004569927540357745392839046863830619519854374519577530404496993471976899779990728376114138126038420078553062239845172040734014353309994533550257315993523420164596928346152233080577116640735107193284891928818034383482956747297163486784031297268874362519310860867225955001247275674002087680036392554022584255151313464194900014412707160683199685637011926918110912549003788766203728506082317655857132077724344834462540662706331791459369690135231258766414023780093468956301256308229147414202182189011080108234897480946157809882775939902863984608553726164002679568869132467774664702086775542956797368515472138422548263292264982668657172532595677366899513484168289902087392972466169651143163829281244148574709174758959191864099513181723375972264735889015253751037234451196971843414586958503146788814117369366463280213464006965325595692727966731528333938670178364175706487753129443967554030228616111959601474950142907670110538926958045154680163541337383968916685691463907745686449392828062433713073770571242518947346432234259611799399774483929447692363761585229339383156064535150407753532198424461403906059389292476215059366567116658649547688415028721914451095218247247216381743247386982983461290292763926563124435009439603213492492338408958561682775435355763901710433818210327508328190652031426624374288795045760847935448623937615007349550048292300124808198258194849534129771524741222880108221750382084263165565165882511375810784565398363186561452544625309429357731713391716707906111035994986958011202458444216999550714902657172678870148005489470181727676991029942531004364386990612241419031751178679835934008107217291468202327781206311874461077248694860229748956454221671643368929853016105936032874694091183123408396589634726316512216939729852317830561663993578228001507027061933306747672722829609058962584797005644367722246598804845508205393841833778115650631637965907988121846089886233385315380766684946326640014426068270448532637463187823873087080932833714425836900113879031799925317224472568923465859184046453870422104977435897698348018855341244997921638314459111459955581117284012606250864590032607916605340517998623730947978725406552668150493066724824842070101710126286299438662504285769503224253690457036465099278804569187318616253101258765106857515367106615174062227370759222918231997157657896558225963904340483959951960363641396913428596896404818736877223702294718689604622355134602429835888578450232223581349838105632984645614473397810569871773570991134343679924201545846524867612305706819206999032330976921780851155455541079207202488095917163361942778466520784730840678712602596342823334678264558564237409398238934772674550643651582791299818683190028496669187051799800282245164587817016411674959135610043181583903551454501210557451175240713188078079197742294432659508294085204888479250749718553747557957493803285056182658593453958042524027814814003021164718245221393237839983350882873495887460986266834862686480653398635462509721694085201746766049027532591980336380063832245346255306039159418444921349065250696804455558385193696406369792511422827518479479708981013267837193679113006181085033792361622950788618908725108166782803213443320356305738599376240047043862353576307167190067528257705486044324371284934961964119168017273575707979675516965228829928779718868043016817452678000725716392284551818168022532941222835203602005008701695379386201552820942208330201595272476644383239805977374586814705708986482205673451030257309353449218464480961681065712200874506356831955799045477145475183333812658469674882019395654653254533888721960333891135001408030421149640773240552494674432395698403064083332631446969873939296049769876361227428519091307099724803254254254717221902023500264344713629466320496245062064964663799541042096587881924450170627848781483171481844852513829421877014351176236991267466993854835303581094209759356656073186801639369538462322992396829579064796602488004989337109239113327122660892295930121640322762404974920281264258068789607782564707797663090749177611473038033701625559676024669288865120127882130708350482516005226408591214865120341186129985873886779100323150041801696119865133704301564275709794659112830874385344532026979241448712992682421152555059092916985304079776999549428353304124225789287040146298249619567138518921921689645972799937359995521458589446393375240685489486367116290039536043375227701502697100067833766844635479879942155506897153049640386486213740609051275569747993616636853573730678657393222678815057121654333368752121300950713620243412761865010404418676592003288831629595884447162592088798102643990593468416167155596061232605150061671602644701620772491025988736922086383009190079816330361349645166800048490091951156967095726115547878043369306914678965186466332847990901843133069286246252872164996226208313059415648227472231795224568135583180376765991414132127387291555689301316931406668327310819810030744041931663529991661264434967141561538431658987030766084264617211330318507527461625542279526544143586827345993659501144354089183885593225444623342694336076160083372024027957451719997965121343312608007441982664188656290766787350218210557569212865874073180281433931659748870511966651427674776991817830656221046799741834606229752883263022174196735108883409410231659920305735625726045152419289807463548474747429358198741834581691500937131471137906166653906716542832340637703994316094436469387103247765529482957366476290122133917074755819968945131704214573471887378334703718730682616032954729505672316089862360679557957492941853742976792262775044669642437420844785153131652880855525356160848901153654642249576803025342837172291206946626538026187273351321384506017945020749195280209758441320893102547572955545300365396149920733510200811038437128096634353111002166971946124242088621681510155955463075860100474171557641634844210106492879494995044439910676228192434736284357183639473593742738215917908751231260627264602205410990840055635312456478073094282461215326942100888952646890051121626292835420893420716517477374173760408103474093557024026510689392672839741845068159076832733946930742324284564218181273983718914106376670538936267939694134072482698108594684842828801113498254254191794507864952324254111360006015874332434508918807347120775558832524553209608504790316580415949358334896188415445799340321161000736937332211045036541903514413829183036263163152159192099928217375151983418907803785756100040709726155802896741101814332759425221872683385510179582704885083485226552209373421719853349757554507533464007305528426149396591935853230720616358568033807117075506418309365859249313123675712349591406233353738905988641974293604952037043432087304344345227331160179934489380264998551539722672140158028189817344656024678892195490599777410460215799957611062032111145564697854635259930331965566413795307486711969729155806278102498555928896188281778775439247289377203640277473507229814268334652296213583697521563880299442476705713260115212914470091353874099930871071502825735405080366675063931516724284892091771385911139808276923875707363939300231398977992644102485981830773970301246566982705645832008808313967511782715919138430356248404082970586105823660906178159234806902247681321555763756984668969073439637504490973901076070590719959395047751219395428643415057842095597191840502634770666581034876191468184194083200707902944205184617753716764471380070980310165211899499251490471484675679042189577345475089434216536118640447351094156400964131416347970220760009710685941352305761926291472202874359092163087522560820373228272560152668886181263952992917897143813780435126756899803736977369520194223427328878102720876546812240281116201643118759034776131997142296771660776947128241402053586409257299487100470240259598906372986801331100074843401357028104348575780466164096617425516184704785280080310384907058867729102449025720508436039744113503211096831522349761151232073606476039293475384188226090226075466265361788406631522654163037112700887074789915372299566288076146170360929189069672924892687406406565555312866580858743132238834301176548926352519499215745415008460427756438015803020690494964132546506550083930201593187009743481925167013379560885616043390131255191236993555349147379411816795712860648453248856434897870268428292459230441648413270221677062329935136702906154325288815732509938216305187965845488110452152048925511568842783370462007762590150238363319233975739268166451587903251825130362090314190379934514133402179263713479096552961086569156535237642326011215291186505971755083247825550249508043977173120108360335544787544270634457217635639443971451537152699802722666160649303359624699814618282774631051209327541215534349518684483914258509993730634787560967870126146908858280653772712301344845109936861012992731869809767791522046033616345714851227282471819172124625052401178907727503830222227156146167205391584952162881820779913414103291193716301893811465246984334276961318697567495320328077182492198117243604914849279742256157228758610876010535702723735125725272057321512295800230383401429651812898736884892426163332668674976711721676715310869445788922147771419558426153025346243134282310435570734481007791497866102529933692278663862743074736337289971446777946765751525126716958332212393509999644551380220622765990702213271950159593166223539930414413455271294963120383337911878365091335092344889876640579742639855677539943413264673108542686129625364798408707297080281810159111888650911720486535364641800357888591311025088482319573503549866234905884478950586456334340793859515082285339232781677928368271531629289351861160070734962568600689022759814271875602329881650366866143223945049766351324854608877646705887029535083320684436258932019659071338677520302597603376849451979850878042267870975199141799650918203342084554597106544297576454648360544332047404301602154127589591664695815833793729922021035444833863692508079451842652188334273244783115530521076814217955640543568756449083300011828262966502529490112912182037100307740492411147499514936788503074337970120077083387049010111568897497506921565136012157948727393866382982696188382554498959795468664019018137601737161989070857496483545363048116162108938699558938006470518787757774605770039717849848487995930159686275602085875800543844824330731314444439764585162635318349050268637940500890699633127923043085725726030664607490945160233400907078473945416214933691641573180753739905694258648946610234627622194116432741426224101169476661129902518237220916960924727734416211687668049783189071353287779769171124827983690899791764927021263103800298486393053491061249097253440514636214853065615418657949936097831797045485969982565756523420004101420410159720855967808314563148937721352456193108804531481281766885122452047506062725799618244428141972158767005133294116016016874835051685697813855516277800828100698129736687123690009330610608407819229668445016049095729643036228359904960577112250286071185597296541386180066928757533785095715980486771564606086461935046837472110389911379382222699767301868571487784588212218444688206093780521280642975231920136175002240679883220456884758874163625837493072905039776122608469906860567591899026790664300299521384540109799602454943574412933015121613753602904169518445069803946411651977988523689251209040731562983502141747133035769215674223709834572630755066186694052836816187104524643029551355897814523960030408766271209617864519333802314137039775696141059029157894394347710362295150601294749523033032721866543359801287503367346786034386763234304036166271586829189889356591099493662298771872389932639114265649754423264911457438687076562811014661698818162452224661382598025592406962021567204566142573468292479106547907140294485555448708843753069637912128036915889560470786416704025817154427782653791216887038865370787815226188497461180343413472239099213224232428410198800935585318650015364814368041257173370980510089964795808777748563887779777493845740331563194111729906772365192804157822302163022334099768361074160357656582006269379993120344758730265122218773984717376396422163492275706981796988463708125081046160078839347996997177543876383528849065292149848665296922625551618876446617046180719365176998289006067584353301361585335858696641141286225305740796378172782486042467508412151435967451478899065597071870731706452469812359987040288370676659881486809226433677121462407627479217557536651453754222160440363667835556234469002828759355522894318085599739850426986749839377962327354649984929918146148200645258551808168348351304769292546181479264982403649895885654610334162338539987315003807491241149047096471486822230244134480475483516216771131486975895204223469615640354876519939678064632890002481984948417724679288658753546769550907141516717463999851366900282337862400025063552681930742956401055777388755386171173039852888797700670782141007909467431760902852696050027431464800091062594508520459206651259602823358247749126570271072304841233408800583969168918970640707005363569568775311555219126650457742786832223896494465088562380583586455168998792868317932065382339627642007904190590837134648291751169939697447747638465758373121277174942688202338610923662137101846924830857065532205571640941614065152717320817989200991846001010837158704691381973271788329115833356387733227227721573963179305370035575514220429695180022432533637120641059605924265602178759472474385337469740567714860035281907987788457179103018724259750141350482228654489568819268923172204157344131265467506147334993228034037956802551625896430539811801210224105376224429968051065687090386782057668707929322403844305030144215110420538864945268214963856431335473386905513082385777229782875775430616662622451305208741109297353882839021664605522278320232674351232629254817334861823922272463167150923897380619939061704611518899835681085497951829839083169092542408872003119465829333830845725044817325852598165362934279577438183933062804330902507720505475790709537010619125849386843780102540243033946685658774717456708743233771668714224442929559492677237984925746717691423770843176186168166752953230261100973219054052041756925748009988956971088587423137191092685781730915312944991451692860352836378953846779142305518116020016700879734796104759706617470031882608148982108084866035184735951422111549053702515227735156576763888300512690571559901245176091754950245988317170463563121840971542534551846299141585411320545080590567311680681812444435104383915605928040793575613500590091637753576142325066429912147621817076897698752471730835576226570426010023722141086308871391700382518816759568553329729834423250358387526744220953214492538124834683213021221221910401064438224130564970363379126411661891336866019583067087364186850118905027763002096152989407990697185196002197218869645566186636005010231154796657821178304090261710247492221091444144390865069672115389981128530447720491563021600327343295202742925502945337586869102425688123272377285679708778004217808371654345133079470210718824923625514043122061471738922859911703638374535312980808658500270018515736912592695587553957987556424444075094144394059967283234306852535621568720931623656082798183933444003166121711547390561523400337356813300961795216818659910068521007096152786617110234179308229574467788456193686651715554491152095503709939960094160109840602761129622913954623216897234744245537445827552903949967354111803756399243870260149320520867762586481538493904771973197077461984573048034752761008805572081116433359321876499287274022513421899145688783166978932682886618053884341583264404478952431787660522602945160241686880716118010744719543024847642000137312235073624600208929019991310781293596377474370067394006171999178514659864962974730595096294516626756062193350408168846700534150134439677421775284820213434053845731097942141638097127901175292687529318084652652516038155719070097492622478684774336781966267492833705500939579975292886960936232551031001774606718058093434832085491181876539971159719366374426680262546269204450407406614950099911268708731442389975116227902248838825328685330531267484104594307234792385754482490811294455787546627740700962383489701032439773753242548346247500952765050690790358469321962143105442372750343975104238639299785070739461147939795703239344104081581748259024039934104922677247913789777454229174459373678867767910073289780738783264786752702785663589631301716106908785812573576884776455150138608481362185975715904449600954118575017789467506132894082487163887514791490491271854837545224123783699612446558646285346658445180645357520774971482399387649764856677593056201896463207993507696075614689393728337293065812976382215005395307087540034228613594541193621097612585607790563757836727793450530469579826237626956543701383902043836158430125307351939473753504280915433340115837652242228643393959502882993168631327822646144747258634295147956332208693520154215250356327801713673063720624123955544879713016698393549356126962792309678663077111501696899751540750479068082139436910455917327370809101475610117798837896365625867265522916797430464459637744376806632679350055247284167862708094608804544269226474194153962509929194306963792923213757733612063257698988903749783255766044548670295199515767527863323624777034026715222008990733403909170105913639307069265260142667965591054893303616808770757837218605561641628870753417626922283901386737923527569264452128655819724506200385960241674392324914587063322521087999953499631049270153428366927005261924929291943233206494268604439684413017080005494782301689309814929436207101167423573982753782148874393949736390743480422330264968289797387489270062918150185669749701095632325423730252514857568923702374862649525704753203067361280243846421827991474920141921024778717035160107125583156275182810126771537961250366507507709108943761899399589035959432379546820604097971999216349901894094345574269832883556613958407103277728890188616182461522501864147413722091538303100267807143584417322534100457560999510006124308113743555743602992714287521863794768394853698917140668300953044831524455624697074924378957415448678933409963212133896093902011325770149221287693201254401103177798577922277169945617254889049639124134952468764766097771559888435066001890884625840166985235768726357598278913913458561806361688053614028774141145457135785870855435144931956796165766686891531558758034440012523444560195991450228372114367762280641028602919244777972656322349754406672426366512334838302731334262003315885814225106769849800274308467779383857538956313203010646154888817803423421607389181075560612086590085494921150775611804835643743448229091459963858219991275996834525273131324616076310373107020508756017055470032597098463368357886571825612057299284013534854185743688788484496933008140713213780090467596353905930195638852039613469478397579637615994415800293779790887076227531299899138531237321248309500391446842426783644169909007580539004296806395471853330812028572826164757720882673567963841765444168513487329180304330797201298441901773180728328095334381828071809619568039543904182454870316887773659215110384098745593203627553114587934907429644557490433990391440967729142472781035039600450083544061542611014570605957641212772542123336069519037960899288969975721857703921865204675193750032925524934747279284944390394713853062972913642732362282038607296125902822306198797383134399285627299078705460130550726215650765471325207006766853830636157543173869521959001536550795504593866987288684895167138769723181229268390165841293977895760343932173256593396183425414325329413014743531402703472046763639700120891247127263561133445474757783497372341466499571573316700313371401702013946507648308115681988982498967996839626250460562116604889240853478110252920567104932041433644429459219393785338451711449808345332775794126530617835698392292707855097010163455864823430804191668670866538822392022111403888041296790551017088189908719267952944798086607041168729116377853921102204238462124077789985108516769354085245119310480711712642456210179116441750713358742539476989823573368356096899336340772244002141625912656082508021759112090637713590906864988432112505704510413125218057340563499446456288489459005945373788068489938140646357537164368637072418723283740095164355966886874905261711555473104137573140353928546069477029164838635035248063985107013167448240826125741877688794243884714726944647157738148705504361536110776942848966779561522832873164865155772344986491966945452231684328807406090461172463350774357834297573952742552185471131140569711430095071908348797910812504280758495303173677106364082140484611744766653367816457105614211992085784279183041362728301432443439686029177758574124734380104628125123765655892009153120282948371351392069003023129757800732048111601331829822174316248661066121762167326445637752796800726905317518127557190865637115387991379440593625181906695431651959928282098560609889136428697854392514182551560139981861105154994531864442593853378669093167817024344738902644240050010935867241412302734093953646970467955664584664772908686629222856799814783042398837754929264585623942891837308231233263628128532355358194943867259444674730522325246484781390071878989476938977268821052559397265136053195864222362689992500601250851306579264696626345680979865192181865976515803709690956315914116911431603565087658816407507820334030877721021711971066883554908042393440647436051996949069976956371582317929831841927345355255722102136499371565549883558782041468313663994270687148604981174748433797501837230695042354142403290902476323024883417724347638165429244332476569641832886217800033389227052038623672716319118599904140586924548205478365575207233894738276481106180829765623421287328697136163114611452777422409024426586510439207787112614611699831321148827151615643653449989368482883578990128078717603988743490771187056249126903524432137423872336297573160640286037912550297078625145302008590555536937629945850628200378844410658244002227741141114815354738022288287020312630520916642975822315877702584819150286312414164069979450414668464814691812170056814255258347427777021719484458028772981094345366512609282114902072809192747322964463446708973953713261651495338587248929659865553326294854338143394741977059119849999837992637696217021809749179473257065638042954022466245840087280543137414027582657463876869678422517266562544087383127105863434312564965845374670857685082840685701288828786027565683304821827642809941939168639458183224623699228467169542636174963209441763641572349787762955281345362075180214582915933338352405974882978835456250524608220569954995368809758256810619917260343971514342614716118364306057293206223398788962230897074258061322445346926526728335718209909082195556674038052239364452406800079034707956709136695221881412505442900099599755872606096091753353365345307549949100227187215988216857689397590480713450627018367347661839342941515193042345731445130072499289827699334756967497342984843612306668855527311435520586764369577291182782016804026727642620197186353742912037895019804253975790536923116220117446931940244397277549406475217476357058885188535997406439346546938910414235027995666180941840144283195129203413740166403103816107919286126590627973786367928983059369132488804504037982150734093301101647272909592543873966622834855636873515977677889815552851638024085711263657155092495783256004263230801564652847212642109924002807089659193304990007626698623931156585680234729377649188334775584187597288410837834904018322450473176141444256853005002439905824908704086072915431678967787092278637850613613192241225993674575905899050514194428181557120220518846266148929883915260899865620048411420262958566606626252511634325696844108065622736781557125166056297145958500991144425151205110419826804904981400398880766381253522722762735914754294671218689547549053760496739227785816943337978999416980583038229606560638993744305347669433484103851097107922098667782435493990677572736585566106854432913518624738200382764409295515561084471730143113109102549060373383472416650368566480433866454748266953156809996686915831815523641913396098932243946540811996595044980956048896531897200674442233658776158054958257905963185524889538338975552720558113666156463993306333579943630953033223632004912142091972546064677811380748308605583132343404719357271660870107315065615245462422091106272318283100504526660788526176112268322042236772313514152505237126123026774474952325646200480406976505495376014753271905858005358626035098016547457451646780629957160275579307816549062181918028145218854431693037761818475017632409057566684595475385862589846448749628654907091192355437944551126161752014269648971640692073822108331252127486637968261693778426705020133501971122556644692396293244801967118294295797733334201534244130698135484501805936791985487397794352789721238130851386120579532390604106195103299467329185372561823101177486156677141612908015337696052932379078542197138759473099615613012048558507663399502683402209363778119490595732832553679767754810845153113130598251093973846074831638736502840916401094785613688764315360992101236137320151264416738546455003737754250951551129584901961877325603637245668169261636218688379982471477810783913487168650651097708865950690591548274897443317894896254906288285450917310310838050501998302959588146944193300737248854606609081353603705564507529381965084746522864057887075372372839284809166331668448330113155672043115622775542927794438770529092638715491237414548029955425145979367783005799343035183120184459418879517622256169200493901615707185245069251707047213823673769391458477662797352001307824182748883438648400484965461746886380832977870590839618701228051184657973021102391377958261343411798461248895179858037833727721990687009350756497175467824660557487689291107663692824432508752250307737029534130075482197088422868630340384409758800991592285545411088937131675983771762281493881081449274010403565089873706971657903406369605855036737043752152022849644893795291145283900912253437137487672256184380613181245569131103354356911053523597777996171882549733155223827226194470066722614618776612095763077283657861848987789408909785272068804900302935565054378160064272186880069375940607072836796919621934191750448742315494262111462765487432429709169148161889910829382961781131667555933113529121884899708055839822126482976066593985210376479179098533133298415894854721163953512246693590955137934131395221187333983909493787810179670485024892269176640277641224953765558955787782729810321324622702311612074151818168792954301090974442420162951638382097766908808256591644635914441852069358519539624939288265285603370759851013180957350213221758415788640036725048371642312934126865755638016392240455552154125293532747764363877378997772288008744764048733440546820803977444873016593527789335838538023419056397576356301932878856203363625806531537564337958001155319523927504084444174042753495546056332030169441263942903048977791703039052881294158229762970618081962886938872559206307840449936492680432277558654146239538166581782611940626317560457257611297411460112163072887257564972360148393006267880948818457476979460484640851384007331836720890549597308052657592119049475336123906978565820891764544945598230110908958185621372346269340693606989066859407271221619608376751021960716702771052482634902663651774437082387018852830343008023297141892956995487343469699467995928659776651662780226472326096389972371536393795479403590968831689310791415434256254512201311460267175860887128675213563575667750356675739086257178780183942139700680176546973861351248094056705765209207565899571380430146296248326495648178059277825712990354564492542031943017924524654000379616260376303996521121343661479195289619358681624285814529756786438415193820944576252113393063004767661877417986120584500022081944620357763911204777616116398743214899630625156713038242019305229422819100890505184903681730419975575875917533976662099687311756882624870714076407090276596563920704085068891428970946108686778393943204897376415538865978601054255213085366555130789044075641363693789883862656340637952202662700870046281156767427654982177713280213272746030354994523472577800924720827147758217629612315623497381773643334261250184397942704434903056631568096398013149000257115049684374369833798312141833712248672643885557744902864064481553594420798770779212593123732321032314207066959992609160338242366103419789540130879628131154200620679247862972941730983674456313247427897017988841966698109419578679288570816478086914551617067468851854090692735272956505939673581461992212803341937255316420139147599836122622735049693877166471975511455050084686655717409808103481069195630567296847778606716541418409023390511294998195830420449621858131209948144724070105326502676527894987925574500602289683275237763744418219275300451210147943912539404890919264845418176249066867537101062358885649484850010895780019268530019267802454681417440958609728794752576281492939008905089429572577021967980830337619571894304954034757068201378418849791484124767937560429549541467757569493888978928021780938849413665517589592860118514681029440203326695006964234287105100701864603426882273948033801888779984511278820647492086007772501662622388390292089371520400409280689020648433786719271812167705498609747505089662702343030138612483819419724862747256383034526975082775271115008105388543501817500268515732719166041704517561336003221148679987124558346273815702637320415852796649321889149979157996701987880933718792853136310563875193321955092231121869745015450844596794220062219782599016224127251687557120165987031893231947388865068433092934016243210852445711408375601992129759823400080423635627972663218120794241711096532478746957401727331622457773390911250056858865958618021694491780455476152242888848089725933798514696892486638798989524579164490639245122186604417085439872645919402464159506040671213790778726349923340257440370326404919567996402373591868146630326711973343802641964420275875242631362893534943192904113638595550741470755091474639981502922654010065140833413367998112983935522220869180714959026574232372968958234320393840270437553415124719625058780620275943625504597791675381950962679217429552263339687262349380636925010377804365751021631323010408074938876371917291293620178197717916588305448040994060059436857024832186032062083843743948300754417244400420866495559069249102748008373905725486516199691529438388477047388927188172352654041656221470247872003961064273856819289097638148202252005097079380496730244038482403636583510756655701371951870544928773078355344382258744159725468106753905822301009472964721710949568307789876051863914831261610991674886583119920715257800422919555624486246575398097612013948720054891668876323808870444010339948976536916624989689791440061086796406311964799373037950614872696927057989679126783106780001439528264760953272285617871406275680704137883434064537553928056945591256855690138081446866509340783957539906679762606188808073398389844633666486034133423996250910557507295703552460086759642261625642783065907242617604627419278864820321047933990872794913380917369990530044250428123293871779088484261317669407556333779671010609272219216693048030776818153936461454806822494229500782847016605976473343503097824643084701929461960501414130506416082569020431675808148948685340036221940962018273377475227736891862107009382101641359847270273073654261429259467807328767569444879420399544942489471477045950745388877687738227939283246210822809559664751363477086942355652019099856289799554393410318229140721431032646570044561205301183885902631819402408628047108992719607106712938395165854590175823167212346349984135859966264612214571733855157542278996552777548611821372393893330761799898221030067643013090944832603759204262794798002846764840870556463649211268490650800779896669498549228011938415886270320754503645809002424551580469658944802266969690192118726706614013685431903919987102342532200667272710110266937226111373507877767659688733710828842877192315885901700828482931864013237606516017350592496073431107601153362178312000621730011214220820193136239559164445414043736308384881538959836362745451239910643353356093117765273874183350761805150977033018809443960710038032848362003742596983885669237717865031588442025312439057292493765740673338851510935894587119225163411157527344260566274940406069393978341548612291778685783042250334193710853017820359475235946837379274913169951208124186357452620192066693340715145808631374276882771763787869718828072662889825982112261916367618877485978835762054585765810262952497162352886190516577667055628322336247596811847353352067416021568868595672189211935485798202776869864627822156523624258642359164240078039175245609387861892322929110044436977174940317100014886571712112839866266369083517883951751524514084879443320274959631856860797847077630584543981365212999210617165943117336415529096062859463391272834185974896334576899226525885148315902210693028043456231316103457226785507075941510616442260058185327300849702878074478603915717299352901924658026434546413295648539626621643394783463578937346898080456297523150178201184157090194235861261755612601930531039908907986397358799245147831688801468463359317624931066864195748899999543823528784787422792850513754137300133944222407704619828740682589980936940113235878395883303000290465106169485115111043285963746110833641979340678548487559053626487089141444121608271585241516533964496676634879289535466112580730044540785314197695304655328425581374533834624077617619116693874157449808360496983040599967377406200359082491057676269343091863950439126317580522635654945788515813650490294166085614126930033707899646494165333613660918845461658641497448112926285314583377755198989400661518372446573707154671074483593879500888640139698294321929997859117479018002431662452663832805034345738335017088946646778799445085035434465313666077424201604042994838428227199379477895381782150747711354343505711390837811388731666315942907876812807722866206571323080912078253761371650319074762895134212153062698015938111840373318682960671824662116866210066095318624745107891863947812356000943045832809321541815141540740241705540367228243268625235922441471091658627413785613023071791118467823479132790398258767106449276864605343747812734981068197798863472779921858174954572689939835283556800923530211525396494593065602701577227800726361965209019518698583081480481707250773048359968385392380956352132238228405551433845847119372328673352404199920520566971770427316246397947660725553682242085991085149567822933609454802443862198146733815316011883817962879229596517491558237885802497554575685977031494136686788371461709242425129679369893252752967109163488565474212322607427946591897020540030521296214111206150584373283239608020096697872236198664125887063215907795076695396915879988099462002631210589900492897082876106114312787007051647827289599146690058691036776205948214730938423721127883636049818405076553056461506361766023158059755459960844249687336038303962050791092263975624497531972403042234479315460588477051292290737001963457972590412590183107463259826574925512239769417414276604065846155631405776527843415905433395232353551986219236888484604797907378028791293150379154227252859666342999033464356230988155333791327758114710885235907049960148149468755736540066490631233050823349124332404510149387812404918078191406688360036155654493776785370158071914839088445467275115106585209747447018863663945821875330371366321851729362877869557979350141767013639181938419302772961141073544108524400953186689362346805790520868390137061131615114758969771084948408605986683278920567756294078786266191542959564438524920982110741242429051467599021994832903364028740977176733894603862907681040657355425104301005206157281380271640165737045567307676724908961346661369771320961263513460052609653595383557243213097964396821175546764710226510318070947454871825595402108952515798550788755966767937584589837140682427463019935040234610283671548541005619609125037185422646492522576928616474644361923816873945545136120669548609028062352056457996507227938378458780892357071589082770967109518051593313248214285575561396702006827337038553110513030893548742994880364940145094570650887239578334771196638304199453083518624802939309477901449844028572931483533069354390790387459836294525954125412610696636759244435412407233508950770020787459307270611505239870355871051059128053893488563721701053539629085503814406995020022981187510476822796774641231652865705134337231659080676096068412758362303483771121962699241987966139630311427866518028521812139039615770150311735323825313876769206900552782920370150829240165851610739521933612177580726921979512879251149632271583278836177492152823567660412473943474418793157954305877297814915786936274129862388789127024120580265047313736369775073121500784972612571601624831847441286701377642009995703022624691998776545651716372742769382580669161700246929166558415906489194744658690018219030103558234562661045410618119792052254966662880596399085419363696935658001991109787578122325368455391920613475833675771503569974552279809324324091478307696399752795212821681308927164348707481083799111530663262478254524045384831181816689727635238737333118156140153702129918089921220571617969608724949012489691339287373835109832703350008893805038289271545013336809664591602747494696503306748374099135409655863466912420472169504360815024346229064711065614379826583034783310698739497915556338662533233099806108357082079286920779738935423703159997764657110313145733621011655793706634679792630453998040150865654226649568732107154393420016334706333372156222864792372894618603981850674226681556337299727169826397570238411335773709472223775234065333029118494158132261832580553711115804972380126746508172331583341353148918240030550532234213220423948127071749414283696479901945156738826965697648925657153906944529474273562497687554898661239197714208055461321832178329584440530086807520270299939011649834912298739546630209746607829965910962154207802699754588532000817475100530397577485036264591322879849721410973157468516330546466411361039973107849673448163931469553596369839585795921559708971231941198229572848995073077775598949656946627573023093920261978389983125228481158489330264700639651494094135839921058546628821521174749186451935780990811950312379376500993419124807815647243826664787359263012906708212803265165715783643051433792082987657491228312439388233234856122296724247423379545295107608608675742698170744666202254261742730746112795694279165763229044717316750188015363982086671211043016977025257461847074932055776622296673732220250841601118617463493414357717233866198514054196469368390130333369519120531188267739583856702110502772508312763403138349463127924840961521472450296063858388536572965802758892238122865242084219626889714110924849055957285316942928402126136401757197980099695918673377882518808127215760444487196771408917002379138667567485114582689061237276389821025212816720957047207987204038763388872458029635052852577066357337509941794947920437405428788770606881854620302392559112007883237604104320214582178242531964849753756110836293023742074240825863113757705142345216593924123739944058958029596401763830923696517230126140322087827230865369299758610226921800708483274485448792546567226733309766939505838982435031321159122415616936790300253199953904141904400572751561027754958928577543039374877705064335065360439341663811458294736411844987880307044573812544219581677159421009273701891817752168728561835026803315458079011289362735047407347147027589019034574155742282338754233974433190713322353403281328746550493864616032079691212328345935252574692012459973302689200981280565881805880808981190216858384250066822134787089134792917249862254921620911339700037807739592329838799746970219938126597179749926514749015250404500122735117384261802433981454880368836816656074632380862538568994565464754657139798369163309360912207356155282713932586667208941471466929119641413424013569800441393896498427790935790425017186414058506761606048103397291425017495563962594258273887904727836466950812997566820925846486364588727454184839239306315194777850727234923971687117237870991400390207079102436366164970814737880227902138277788299972613740095058541301804185914260644090523966472269836977614845617680217940927863705743512153320244667053545740362393189290462048504932581374799983664425489019760954622760778009470342875712106679600896023253141967945247426148077750721932536694823140902719042315486773620546661081294765016294036239358297391946965383359941602937430617079349150598222172700292936808771105607455757027968354791277853197809627882984958358319799565377113987336076056742082256222114048156198821527580925680393487908735803282477363463334757775391473459138334855104900387150397167475564753538468312344692685530250025031910829929818104552440688126677170425232673012406204009548500545681217376430579781881847441188932511489457238837407691114662884763339388546056883218581419144137382372861182914044603808573722221978715915813663124800368715338535640113531979975423266659299103298720069062793492043107083083204135454007824461512642396696486958495353697155986266629301453835134691391918118808690698682924550586266457355906033941474874262845544845472948059715907415815535347421507282147393470882151899412705521376891875189418924698333217557866002063386706587351542528366764006901543660695951000840593702506276632577588681970395664287316290618876153325226165694676318364248947801303813252509724522646580135758531287297315123061177823235965317687352591545074677909424891007691126871851763137726274459750583638210687952174999285711212948177612978923347938352727498377809728881340249265102896017976791011955791131357244357868291464321616227916490882135605130464452016855958002471557377608278611184234974343595776247261336975844621015065227673522461431112219617696717176542542993530624739510496733469937927648331537623246424163586547147496768500364081229177267310005496552546177836771905913894607275245066973907565056014507402032702718840183047163409856657460399757500963017480968638551764850013233590458482312847831155335776634542224700380334192759034276355793402690194492014945939588094817885654882926398746775984167372123990522167123705823769227569523379617560736312228071833269626877466758876846026563215477619470271507383999299543245499394208931611234416239017420461094023070302321685239295363156562819754099811503042180030524466014434930803888660552371179209511301282317526566951349301424998748262221494791913056942759827845341802809067456693037074031796934952372197629582099908443132547990994348473016026575415078125303025995337354053556236053339767735194774502317967389624828740978667456087377083703638788700769630702785295029496398263736645772603848658656569582658385886980709807831362465600117366174256176655950203904472112022002038070241205026120622183543699820392049916637263366861965860509955275073080809989873765667370057234240292039300510751969192583475083496674495597394004768223337167781647763862893987922208941045064887320206459530302965781358867239717976418568580414013606298039374961382946666347546300501322950814220242814499657173879894425933804752178222277131069093856566514437904564764170238022316495108577315425909622398796510284490143239158309100915608974333862021716073396379122778198132373015492084655941134088757806967642293180308432950839297519077759796044089192866176262017207534033331901838566032854189110493493181001349368133490372956273835220910785358269406198848371038832736057373660874910882295554339624024286888990025340017759602027961089730234041793713541566296850707636660973597818181324538945739709046565427013550134458212783994052099678699633731015293588794049961348688192044266183603197528522353630140818162206507714474071493384730201388577041230062887329309987442818444138367253260806806463582818774327376612090425648490179221306481603485281610628218604628361863671648525610773787954409778142504550042768702599894179746449717673524443788462890780928592071181591740816587906998425539124748323416297311557071414524285577889520138894655359254487711322707169031804325213549671939334668641131797981423991913792960169681843000789970721678014039491760212748876465768474963009422323220181698000405577015622745827905224600162059949508533833249655637359612089496150690424854168082389324134837297211322904660295264072739132335410011282423123540706280783086735076536217865424227996152169191575196261977873657565472824701585621569236110355233985919094773712984319213395312909760899993873231059179848147175142654180389927082218973816088385427316334127188075157737578084389723507858565158729644003109976898483328676426421197034647107717311518536886237371191110678158713315346352145678819354121275570750876025494126869965749763946380280769607159279495855105575715836495921574913266545194549610837102604850361477245221971061871313442211135740901867677764994587619759340555518693013818609660223911433961159844522197083009172618076684912553325036155473688422601704765318356983792699506228023584599675322070685701234013214204611776746737937796783846422204276040850056511796711412242032202277457925276052863366264692097146224422545619904458746765911575798880834585335826375189397443128195231162653520414555669133182364115537910134039853130257213414086187748319289113406783184536188051441280787031535057815160111782015328535910738199599571648168156580881160240466628509927679186042030595472664321700783390116418366486268120703273514615759897231749904610794444558363704866884005980768108272193872051145897412565859387339182346010569852771937551941859602877249764068616474812342240126015190876169303989043003432800150025597196420215656922688334381186930562903861560255546068544108217494285405954518048924432689065956608271300130046914439427710180566662054632049690740442198985651244018998072158428189334157975838601328929231506312793528219805697401834554872221894138809525239508190582479231910539406422711367253266239300980956736288236025843737425710603572393298669251648395193865148373118358751252032269381859304601294548530710707716460347476044687302601030818071896808274603817906084089272266318571936187567383166139061173143686854718088493418344423631319025858274066030428140192573154246627308886291856219025666270190085036004198304201700933558646251772994774707201374588394210117911282938294073497046284264535573191495496353294472575107354935817893691074116645374633421567725510303588648368757014626063285468252909313003136069637084336133949800940368655226900045937922310289088923343652940492255564002480876758897440247544661892150922388198992635370424388116628211405129274373577862882192342873981453746720102338869200796657656306821996308125151443254620622466908577299205015038909231960632813958157543016163320645517137486642258843977521791483674100951968654529549706136534991159386539751049924577070920445665458073117784046872702803479903075510893818212700819626905919623304973347094794709303624741665962834764462851831084492422085319387656092541463309767183655234765182570943269850019709650509644665941687151841775227335316854709637928865761673328274832105187799502198420797019216872444835389047665127909325506783165116020509390601938662211350419461995567947917150093548224903458665299022196258928019780467162691545276572439332192887966222523887944975129103911562772627069961956907761451732837854134709666256240410050931682630300495741896982107705915287152731046689384992426496073221574996478120410988449082574637765903344340155786074163742128773659860425358056602145153036232214258815282737220334963342751032343390625639077259303632225675756617962336066584236382296943290456728381220984778989515811664809055963713025013001819944758584321324161611231386580207618070477577205217372004757107842963318689976502388064446353252820704636594849690789373278630783822333459605628541279280058576775486033446352290633695541060252743299073484269495790605045909826379756032401781905459967920982386071985910282099537611956253201025394731595881310730151231671021354967275487852650957124202610499144110762537104866540507173007295620020188253915422401738420587471406237315880003090604487751558690914786945604000721355369438057529088511627436364753397985073942826546074007081775716809241662763666803126037729936146160291634894982035159202441503826304565233405781086286140605459474072629636183819380908169132633788292870158225185384792383405235769474753796937778301580462886078642905085617125138590679182786332185640663292696309320631185441943088966732030373184862987542685970999970834831052774442380734140535417683031306176356868552465907564134048430937029561063396104722711528149007193830544726076886670498417179536520502768300462175802495982170368314527371253336053421334274475593159591885467867232405335839220184028294538261487517676232972770345656589060465205004278133903920897597112877126598726278321613252508632197769199418128463986527622412170684730631913537018834634525899404009409693387664780249676950260819266504945331018637299713379662767806160184369243649147016072299323153562131054756891897354752462605694922452054398592723601678705566353029586224881020856919924147500832377301603537023072925030937106237171810209360546943364983325367584906902557682669588396727254592540779781589489218010418132397297132132499847286067503684943596240977003999485803600812172568967985812112463442886327118248991111355617047655008190922313717687260992846285120027401117816359838466203266410509331003991947392931078017095794928571383368693809015650517303333581105396305161058346726645185046575442705882051880432065618640225906169755549009216988125861307282056626122851431608797380855078575819190995385157893036923211624905707469373177927561100114736680502367292218946560638687897771572806975505966759680169844516022808400688665420957626538717887303592255841744066178726616099063401601319858610516546185012846675646459677933678046146081766469887764644075132936767338009845624276403919511367479297146022917528055842294554681933724473664776198156105203038696641376932143041960811355874044126378201472508582072846306336771259129036425295639034580375512887735371189683094939852483671525091256753859290844279156319300195873010739844989654774931133488987548218028099899606183850280840233373993761992673730891690028430583469603373506032551430288627154055624339746846605938232459736599609572622259523564286613176990597639996961670087345251205981215961229861436855802050585278372060751748076336554366785262273789073507081659762060751322564358790410103292278892578629948476377696652097093073755625074631689892160471014437254818307884062565665121667901999576776426944549222794693333376724162041355415709050840644806645336336400865469988164430971947945271974948060961389335476383530463416312993122984322436574852353966841430520698493328540697926841274528177011800105369203573310019360917594519990921991325111419953714726341873657216268524324396650183968924721337372090964986086914915740195229076738862614538256189029451079616194433680808240233517010521761705666793618654408522454722009325000242924101810862782407100932724642340838338315255836212720638831764918377901289665572196151808014945534273082498134404980456911134038608152465057443715307223060011888945538865073100759805859333851783018623722680559746897969720995055552065065876338515047435731866855710661518649255156924152703686008188417179524038463000996372337390534556198517106440365003593048857300675297823743589380726265759796955876348173282041626046628027867692735147397366193444529950283175064840701721761804076133210408425060837203723443202176118292171524857312100113893481191559294361453902465431425903413038287185051649231690998956272298071927015010084504676539864159201970790807844212518809173125662245237227269362477934512398634901940701606692998518756982797098305399617854503953299342374077110031157092803119000513302097043540010427390131239158818304535125226023821857771724076714237636620785082500497828984273447978966009830013109305458517209152282460108247144144579429263007516197433731541718404942555044291624377066651854941324201153679406592643752784103817489092949433614163191894109106159690932683588890544065265966337470151834266235494166593445418289890672247300271831898694445933464618214398567141110817799810222967839830333944082422412010124890917622698957897829209296869339522342772971061031563306079093941966595765417098958000250901327582365155372718047103477062253301798780091829643779344767981595686605901455839198436271254091365060527858463978626412900253160132486229255598761737770891307365648415447625498434870060540881217711270901712802845180483053810349525171424543897829338238643065520272663056613603214139612521077388826849983701358892315384680138956579102238972938671521781862868835456143596139343210383784351964521125146966443049628272723794811643440212786990160095367948049443045365897155152511047257410597084881886079009899375216566945269256085491686600532469637229997179171546311243487478796087347269542919310690502960300833440562734376730167718667044003401244385959878305305715894949422812488432469968600167987025779638780532872744708185007408287205582336795391498058469759317026496319830476703056384447795911541584969357235502362141493074763858264550346214232481395186504210822526675371152887367153119868895542352295794212416790931080621710781773784272914920907608072083894252933856870093658812381343579344135479168308122684070867491134289314003735547017463102686172582376875431456954375926107950610956486087288015595420866646606651462082386858463461206044945884915398807812101265722603537040654213375542265109277040739927474321799480814416739601128756812449640752024998867646897126087824696661805313595037740195210716115758305511152491209826642273472819792217955870280290342127896993939432442901653982050378326156963827171372268693457178636319994914379867609534013732174929023474842236012013305552296647722445212959656424173678922351212192696111946779878987249291090440535538727732271277935973648261942427537187249743648762856276693492508703842616355812827012788765600828420374576494462289256853848106108256619212471655327332972856657955242463011816645381570056601308592426245441562167118808112045272090452362987114075238998163987858297150637504954335359546480374050554285597162098012428779346634807637354024112273782572305946110137165390298181528549470859918292159697205934525251993382707246349214444485687108470686285986810664768406053598125006181254531004677384289451932288753739233498281371159084143226672809622597983154035395775683708023054021538152652402223428567087859804668644825312971067961802589899884733180647689494910813991796926397090016812433002589883216733183209039235526653582503255522668767214562915160202204368397450329801353162518599424192924863519260660917423039959734925862369702365969082928136539980422866005588123249873677936730355497275160993395786815476730518439908401901743265868734992746164067052390327738930179468310432453029020664799720583463919926639507700757752085798752066122338273781167348670012643096809058623733134568029463166967516184597678647234863098803326650529562975405213447646310995462055787649186772346272535968284488173570180900526934509519432313946315638628916411010414630509040283196820155055820701601275799618534232688938470372257582030476549185438074859712581138577390126388284414056473642867845153832456316198717956577261214797300597243868956617138216464991114182319502850047731242745521513054539237217445454507645822148364839554095293058174418906754025029792717184546597552217514132687148818950168046674930945814569864126929421404970313169425647028545422719089637443026639924831619002584422951124044951163375677959846502902240234411982947535298107366946618114470969619603037167469180018252253934106677631662342800215316427751159966647286698734340341495931585425583018018608116121662372628975590454427641445497575176886715070543291893967165441953731977112182025357969048348999890007968392869204976221246029138029997005408825921085081504868009918573372086904812809026775169394648676126241575465691944480729913144496454096399563378017554228690051416840434681281087518626138421409640652928691417990355054354543590563036878132060938195011221046222110447163526627994760079493304018001753453229947308700416589384801644613426909820110328565076241890448301498836070419894203899388231110618975219254754111883200328305223128292812733824782794316245197319118363224543157184771718536826074785575467671016137393627706530657713194281553882894987303451151435893409496118359932170398574522850748114690880888630460441014056606051873895724727692502060699231103754656212542492788783791842606180909107539914889881461534835927107439058228489930742598920683446857792733966598223211629560220978901376250122052803880737785583647177404827042021765189551197846997377170494510049024399221491000494848419475933854051625733797723695374509633110215025980525792231600010684668038241500709495101190496676599573569720127052284458420201619158717050023934669584608993874804306312274842599060559254627679947765901828896138410690080040826874832050544092949474166250125446323027842042098307105925913318436753522326095172538701402087153501971301904902830354821119384003880081255750682214615934094973920259841848485412364919107708788045613198773451330599574325898346027438242860471485158612610886955378974231905292507371970016639464641274156226417163795576965445961904480771459575694371411372913103825476904979037574361086205483271280943693050101725805339526959456901541018661641815809366323148249612596651878494533227379902901718050075055323470468166392132331554267322877446794622816539150284206053126340677872692083119662123808550233365031118216234738715746891681884645134141799602842178101259133496407697311580338480820647621093510824806358695212796490247152064245389603440645371357388125585903799710549613511496396160596993415889022757826569806332188616830824376884658506273812874213938310846739459121905010894869177080749226751740234949752795315805963866330034653793028789657811919109503599830057087642919604069872390702661187306259668881100113181534736593956674103089222468568882233671216420881008912047532029839665722629141151948976945177564206184986124803165050767649680715392650322692548227816169929161209889949344080532577986271244056652383888269665750691532650849726752589474636595858958464446599973648779797889031936310641567698744334255908676452103230005666979061072522409485582369052310680315224667664816102514633987053972058159432249874279692745126883026833817869349406364078053658378505523934686174730617363825605626134325643677536238037657973413559489287667291593041475673815346745708311819132366214387912288078846643761779958936029688213794885751182036137938963487885741285845487643344712768025926144490278378575900598644717674096778415529320912585513150448886483773194821301482062669524080027804303900165138117113315480329343541154380685783865851372879026146433854003991744582149664013685539287500885709956692256933104755376130429363016013905582489958671999601941317919521452428943537335645784844282083545967866150277332594176681517703080239971567046560002903866409353114460740879749725003379795225872795037489663559953190185089655073453779652145332845977381021738638991361641771205794571584759319608098074187705454259785234154087946792758525027764207511007416719292315296374496725808118206403030619609897350045961597437100178676716228814034159310148228349328228291983550325415489706765770170807861659090095922319365409207278673391889916364699221541300244238557250033256346865386144715755924604893994002911391346260082943847632199704824434503456793649406605358606698149453567962092055890220504203022404989589931938802804318025291814102328298921529738693699882279151805027158407642344065350891808989034439394865240172896980913802266259032820994557498529207700240861500786301929394003452193565699599018165270291209727742018803740540305460055210990602713487929939550386879582695384201479893369806278288555346964425681890888835607188484181430697132662147252866799447539610144675625382108514572383305067887337625572668414580865103620800238610428820874794332339168863948504547272816010443027044873692991001844531156298173278901304908000704104444004536239075178157847275232033395232205534944537206132275679841107990126872020976408925224720595323554114126678129394418193457813885214585766382021443053857161617540697813511403575337402066745135612669207978609838011150124728355417121437469786010231438459449479544598356635383447942111877456713389170205463133214579065691348796959744592962285374510665460240651171633229700345747859776214853957613777620513716865113307373442531480971460220874112386450411316477794109422504922386815036038038662149574994418708817730158274906718339682683436286378836943691562307535131439860243841598738925291379528291189880506574160530691051769744972736023932075415453115719506338086182814968688425128605963601926059459309480430148114543058160658571616831719804325270389704375034626114568667306972598614410651752348581607416790392476907426970557143900753942801459069754186867719766458339360246078805241531954482372554958935190858292946755658072928875164544366373455528275404266353809018285739812120889185446157416390828126151201647424570495280419447706045017845658941940400795627995588050975665222909146425684401563122518051865504068981156870029143419092011967458843302151013157618037001268683679873947964520610360738323103253953259317809768343783118983726842724121515311355703506476861436923388317845104245432911882163329116611288761656850762383684667514769755553027866245363471614657954909717979272250850832909368964023161181078318948996169460738895294399024585721153989957851590482807900835090747338129882445471102056345397939819594753675175506500681010686440926241594117059159177539798245433076887896188755244281248435716145417232165766112724395597593778264720057222680257706017324608967167265905578133536844502827083643146504326805784246735576906880190936898755126936043292419404574238425189140484713559815062345063093720256947137549375269668254498514294180216725123525325743430320302531687685779845544444695284505757284816288911826697400878836200919033619741113370237756387878898891315926901056890415944825919116254139197018074634405888628099508633201853359366228805591037908392890159422577858078409706289207592840714192160092200396907469728897586727328940405175812204676177416947509093756267257161351201764326440595713948658162586119828438436346497930348888658819947920222095554459683693171156910379168353043896080332981079258197706949670141780402709633642300226215247118014066633167742444968109405102323838027718270502403629349858849392027716408039960495844327063530832087772903120300674255698113626659115039571695215822383692114160412176472690211918174776461034442194882968587306592957747756503118287966514397219470331459738250910555127227076457129340130994777875008102297402219833207181729556093040878905609652603213167524857401872576560720310154103226428970371043059717154496845184300454460538016148538834694902729269272572348809916971581905627738342434620197174832250049044062490611252989546779518647544268732001783375288879744806231566725469507815794137504555702988286101674566868982910097897455758402226361760692441559726770443321153142054936035120700082518021119930523006647781717254520499985079915937663105060764327815490833957841824497621048660374529891726772771456339461053200472259780021166314875056539470408971588166047600790810427513302734302042186648470208733314832983973592006628619980193427218869314169233108768512196717650290873939897433253096910381183705049089704311566775244008757051518627761685510296029797053651699535633512716043368554552614891185295921387772380396876040983567602744306094703320547892038466128597394416098877248516687922142309759694954465859081668731333416411249179797912313819826713529113521793141294880514812652275888637071019373233574894867168593908697339538743445691975399070725368989509836784842639766000338234037868494852366584714921023847949994722345002396702508848555732049928216194378164103328521914347464272175643176331865868319828450848124952543438326099990463524581496115352368767774323135581995679326729835760646291921009782402821696975344027879722041626904268613297385904403187718610824766959747705801748391782664020802856527986253847932556877076587555226456810288022341644448589425068881289860830928422520510781699892462225875608113340269097003987785842543571747332409977187125087330009111712617173302981938532677328031222455477956690294889753252848559812641483991755119438442027161701572147900922669510428019537264046692316618345572461083212952818133357166279152702474349257450322132083397651340428955257752819968518504162138361992237738092049636334991098560020338148668312213320061547916411579724283982873071445446789934926164725368774805585792191257292306656778176728860137036813763725635455780597473738593838207994106336712235763919522544290464537805504309345021328703506604065039035629102202784070276881414978450773909408252724641577872739469521489643975119287924658364728622985124417612074578301238952599934664689939317934294135821337323829832716359477650824367974327987703409821287733235907780625169100536919220409173212842260917815866661814266123822021949011704125215462429360599885078999452409996521479214425268316157317093845463253443812307141933805625851992137689006493672673207473744348060261068273562198947041484174328101770659416470171473279308070135607423572056576859122726401963778513604076037411010639154632317769603109868921600760504389962800402011599269515322341610069486413095741728098394741495448312074692346592946030257543698408737856885447255521162191015735629302846480431475515535918795449970052261678316395435455140824678191185284713205392672511535192246408910070471826131071603994679842002096019011300985146785637728723920190827722557309059826202036507862692854822333908055826206896427573749537548442862192576728334303971306311680770510048540644605836251315937314544154037668221064367669087754393579382995849147199378237534493113197940569357858714679775718221177992137079093026100722635572663780772104014765543491126793637477918104417751715079832669807554671074819205519773342249377471624024367648116115771853131408845298880612264831049583351029484809886448791591931530376679945901934712982796172914134106209375493730101025009294859524667167670551922508799494756680259156620610899612179822651450741407596257498119394165495658616215787958784932195357995909464846407428544674943225381621109583667181521042051629677212271602791171089945420908746857397291977224742090869408132276030191196043718592834856186305218961879980922679819237712930798473463510827480328497546918172399465421189375641567332538713222504059795286817759418216599574904628471801992120225369581931291039960377828379996282311891429351563443621624050176327068883176746445765547801260282740032984031563346497203023144051300641304994943629769221992193011640163252573682503250198722364020245435969547387972634630957940845417804986704000599169207874268909746436152555155816439523875501409325324056770250623261966894006709871651857680600517762248776185560714526406432526342374396899917967824369784211933599999948085476810269500948360560869004736530589544843813261038226282010964387122741903795309751785509177008598538372083598933465747474049620575432895429429812372556928347438007545028933840009273050624924728487227731030509174470908818750137900831261528158516266662476203231607838189562086981599543301088109611371828340324165655064370828637335554200638063713715979916176333141667237777341846323330112421324012017707264669557372986970381690405828311286379450028144059437213520554276494944766197994212799188458174209733791358092001698301326858347789536360564729778100418322844184012419559780101599897172639790909035748497756510023577212844613760200359434499187738859394997805719191181519544533187054478339115665641283780182656034970799522868611806387980034620744624885427553102988988213805198844404204336664157405494244455941189594437600330240525118319857477151723551911413697368445686795836294292214913386200909767529748080066887250169954387930908755686312654597080106468864071882378297596095933190299951521432333468637167908865656211504619368765009104485293339696651196377938980227884508902813549412742245282660424701103928004345073726275110431560478514272809835442647658491407682615892229583595070776335236305899781604226800898370129405616136044717510206296524846316628748742975009350050616734207539970685830529837939393757997199056062890302093956833344651014330761033914919780237036404625993866384517647266585469490037913243025941599528828917050951081652634379298456307731222217492590397097254606610755209451420892348041465549433749660673206898580536589714120478337437228829747942249983692888731819498828714819262031536763009724439487895398664424506878324416437579626849919754292609032852393267242323465673119507080319106856779246562096879911775727281150028169352266013028103559345789864362954049342695250709330893677063617473646296099009053637290405222613180300046781102349134454806384867050370108739269638905407210626563200699371538744800720848560703030728367467154918075105177622026271382177763519381757718763117032695946529257453015448010546486177188650062166000635187816710988904812299605240614850651675479289713336737830516796217752740321971052891515629396996402030321775040671923054439116891610536936268277451933735308120017493632481345378063425767345486645857116750802867973382005012851361557460149091240240438912072089085583769586176428110590484064356868743536251917137861209835690663161477443963522609131598806818780485052281180519577841624468333223127280888566928407440006880807927968951786041558060945214390542443018561362002816520671447306349562672797101316839432233002082009936668294824192566129750705375475832951932892887120508337832002258764280901345653618454522085825388426121156647164517446381574486335480282213333608878550758783359015826059608168169316451831551697024676443433402168910523656915515491817315210887702997829120574033502226544491771076875911368629480645172136649539611134051780161754864250638341543145270172123546482108574647055049921274028024377166110202319405398783181108167288603273307972203645498237500270439581410785180882352140158190833763107118877808401042360461370971820750895713243691050025900213193357773489163393890816051824998995374535256933691928020774826178796572536800799144805205617461928862494167764056794591042219963250597365056037642814194304465233343139182838698383972863925260859608361719633513275171719078638764746516530878927156414210262761056900799003486484357208183446339074769607715586567145397670832706899779362659402338932395641208003040650100992770453989484577028505946357790058356614873498054582993346825872635561445510702745630610020207669442976310446266030750690100133567342981200493387326939342719889467649991748112856090981470695335391768120073557091060269432054131263825232137691021984454579798822418031793358695091736026680617176518782088053313936975276302636059427034253904313575973361211360388452214333282119829486026065150209465322531258145283770622966969944118600876717801585443635591802595382115714686142831908703156775819137163363251374843219871277097791337462670337730738489037924465629488667642094484153710064151702262509761320885875890946658117821770301607581646215785237588127796535535970930221298653085159702841722986039796805642538569200860360197928998587641868931036844066329841542443030152700186811141899461452098825744035882301174933807283482948463534877953216284677578555895651022375223401836458011212444438710668841609268310223934363811263749491941800190607136345867625121865183078268110350057256550899488897605285213981404208050851983174306354001294040338749093172597419618011409219048710361658907008695747564403129074605450852320592668092748287619309751118804242166377993610317150900061813573255963497046845742277616403882156502179853911984911544060826316335462461766195350453455714062758763707526184880527698806565115479894416742550621145893809275498221290134504234290553066981847156372406033680909891488576581650447340676792241840140409193165721066982923469110510236187895939523662369884584172965340994070893841429749900937057602277847381615761239409251015110037293035457866585357325575073339525492597310038079481691875727614970875702489587593252244038916486705534737532896105983415172884546181745117284398712521867704056485397772820133746364939413247546242994355529025732688583807528165634706597392567127412762865642269185325516367581801285696938662955392153119555196360363520720088613633013173741377452918427295922941935846352279895687228995216729265901771621934881294099130933035040470586561522487157815441725212241919998832495921746927343757002435225506390924409025775094603717485337234365056778852285951291192775935417164111243838846202410161905449364565086099682768605344935416507398091766666515123537083978771909753345087657781080044730503239438994322674333603262583504293319765626106691994997256887746729352459411479808501753494597719931783848635444486805543552983075998593843020087935957497323774467901578784084699933643499824431791837725332161641157322841788979157391880897885961850569650353828659704270657440173102489322836226837607640406246640498520615903761699774142842663224977864223992213739798678183230114106780519356641102715545996726976580019170514764851321305344012425064664454683818572440086565449061885064493995215835600907083136630907540601942221671545747524353543135514037075639983239344299804377550917140959158399290237208268436221680841279381533864560439167289735999872757644528393322906618872017992658134494851106296254400378103969122199278153491325447889225844442963064839423880417367513705689054188057453058619850645906966462516345602342378951344063735168782553166981949851106831101058347498147064664570645307313508426598948989746440396448323411909262380300614208366235843670434799921451683477293639832692351057538090500811116082157789438560816297604267086781901777668728446607219846956351808465423227048823531680916409459470591790723984656628892916744409912400366799866694544328538273252646943751091758202454420651333024436013404702869081011510155112381144024770968099263043298086524358318804929090557362794603119711102646806204036786057141416188964950120987347657331801414996899070040502525180721714210194554932602983041498063824395588205852368496181711124925312584064961624842843282943203444770631250130005657256405429287729340613749804814729789974872660546873740130719172576956256794259808273198148363928647818054084000020792876475665580815966923791529281000196360394219904037623960515297694829155859549453652707786932864520884078342796553258390348923804173272373099522565334605025228361070396641394797852557487325467039631219157843796691238311981831162605371882347638394679154912473940225153975525964963347707878434335959719610505770447480344553657577474975758721668658720420901444718985526580429013759058878394688519674124212100682137546150812745435824766647601103753537483626613690157134611928894853412435407809772814190455099073694379365173240628343517064814514789122856940522894075243146636812460254499264359031421531728419672926705436357622895788753702500155741842823205431273848045051238709433260629146862089156515946978326935256595187881368204957285228628015752571927977703620954030525751284195766410711169973644272304562436274497511148091939225654240214391324020047537849608699379018811814024854052341391030744019855314863274765148832377847423268676443614632595399698831228087094724868947643831562039161705910170946300015340179687901214255544325213427077783549551371087533792903319517974911231117375863605763571856303533471636865574442447077242773128084343961439914495068832449950912109169480940102849661015635484454959604125790931428678394353209739516554974979134702473011694354069683058312870143969212176906840889739116837643654296129162738937155946649572750574665785366083375991630425551817835741464684699301722693280432634204013978649651209827432554610108621921404598121040134569723842652064056978704533263818173746575080778940936858657119122272887648006644666517326928012420973526116719016731855091189065035693278545344322839151585341656170354128987820855615344682709332392305854621050311133023678067646485103055476632683725540413231086482252787417612749400554238117792229623735636533644858684134417612800646506716868657898068069427920253678898833322421039780586701391180790588078715809211610801550355883726501982471309750367716351317272127006243914681287130535471539385484067847943576155672435181767092697126328285338017314117876989186005127017640309129163275383058362855245747456812645023767396976714517438983126648081136904851617641304250786768830851930168848940823905228384276353318038969349794502949636997051558489742893481229528400565378964186885541332708923532042613872424173059955257328995054244767419327363014970581171768210492137513883085021374849604615319436213214012699444009620973466200568003107752519814524363074327562043783438068760726936962260500237747946629907486256129738776693577322313436660505495889082840222761466512592514011100340631494114519429034789595676914774560563875588149304600839283507070437271766107332104802136768148197047993347882183415920080052446953931385078032635471984043111656535618670132438194100345892807890853696941005479909156812813368573310947212458513578208715594555224980010750878686468337492181923350009958437823417516553449258972091518964025042788232026319738770676280056063717133144505611334746003512486447515984524562016143708266808688688457855498157713230937123562254698946540534015662400791212931527631659932789063798069502717956073882379053016838404361868992859176612172174110526951003432590453254737654541094359778910380125915412056678138318451661929839448664913224931862155097231700686079118840737461935496775376618335030053210373790178257768397374134821943248631976884733184168302928041824854901969568595323331387257017010862844027241202255336955905893508919983516198222826114043456690350109215561065458104544753474147460466077982942867496317707771977591555155788808997966584314650076610205808544369402958895767710700606379292154020050030055202760136064855637994751777660423760958041983238480970785071843582036441026826500733881416545199482893472988355722636020072707039930917535002801816006341589910489386171288428728208108066225315960687063722409739295283973830252132799721008501557558750070171777264187087948739238812121554811598183003214667065288582513727146441114831366222748204024851942764176269151824559196826481381128171669580404875289065008296916735774179283366747119255036924595374562380071865348807795354436966531334305166211778382260801061092337572482759820397353850499539910086104290237149884218967628460884790786452412293235037958688053881574050789221505421001201935294419386474334142341550511057475095362159711835867720226274723720512263471931165505268938314181959545310000731010716719003548428181589242851782463560569864868768705358325295888589199645497306211893377431771545382188412681919671818199198616538132973806031344995838326383058453116123782435268729543893077102765731922070681000114687673413993443486802539741919845748140679584348518007740863110418205749888053947334012018581432668401268651601256338195474573989046243343662810202890831178849164052197561941874814544017338023789538574572866615669636300638346809430484109114769301948859098025022663796275243153730124322794676986161606582515900026713504156131938224819236198285584350846869155037046557840205948099103482587579987626554108434304712100665676489642091533230394102052399093990944018299717194340656481804249866082962872090887660648533933933204404656816443924829588594289849619929816193996977307055932909257393421217726661598178335108318240417934263126884344156420752970973157921678735924476626804928139757104996613439970885863352402049744437989800848464486281759621397693447463081965531581878740282995038517144871992824753630170202346369134698777393615850133370225530014957877516213998434772952327255983187429298621904184651198344340504164787853253439610185077454686441946113865080022325411449064466719575236160644755263152284249381271511643890605569400263241395273399659338984606890118185880147994162154052529726243823028930583009907556367156175888166538119580229911588748356021012686072902629744460273128300784956336660798474463641661757168711538889232428215873404372911680792215115119985257541480281024690219225723456421347562533489459180521753915074836460760860189997949359566308318664470353366563088268384727071365128585678507677581579227309107252680357151303325652967445348554127353237127747222695305051589433721033199817759418855791920802546741237842226554124939927071049279336563158182303382214411389068595650697196909633249041139575251839542755136961804201591106286726019841209407358464425842688042883293551184284131934733131888107295767888586694268391783025309177202513671768893311818600013382626795148988822889448241017920804083620679431674608824650859865101642502084353464088208824915511789637001750911716496570626300507522234062680127634942019552291044330978165244492361832502996573459085394636701774739720103753708562118858300912585111330114252189406952308457060868080430048536643624347434765434498396076268131256957421845552024352157064189358917137081355337335624729741894949675470662600175134595613379914367395902617424654583470602428149187816053967718776202220185660618453079881794978543346411627965018494924432778481130592026530596671312221128645931114138958945063861340267675098768101540982676344627105049550384388504732486815625496415223584721103749663028987528594042495191259810661526950293630820712960631170632851788608579344357226672965710477610125378634703003292722464292658211094147043014082230275858048134261894057067943227221706634553816600314966110293682926175762063308177396652885628560101590879554646114137007016263152015797322492338978031772504610843563072782894530806337758974692519426991354139348500017146777245843168284083144884735068736385055322109280046658080398332684817144415866751202315128022468730230178196796250918905860106628870093144077798196776161832597443555363486705618167376621742603971819183589605943078782887107239817170150890187567187964692218630917602848784062133957227672664828027601259090898488091730455983422984943592705851796220299006070155282519319598001844779749300894880156114233275650508140937061847396934315760794392019120379187784567663884406522890840115382079878902401427419459550699518736253496046647510966855613675798051774224907595671035747194575007441715708484862594416248003774432388553922846394400263403638576217973058207061282286552417376356114065379349735894324810745858307234608029800648377226311093421275550774311550798689373827533592882058404821870758089445449392682543209658876324140850767985121190109723953561968962984892276430980715107565522348527877007207646419237742832160309923656273662204212163186312431247845028956401837941596418668056440284441372379388305448526389224748541670149107534718853236616987424530022229262279445121436525153545063133681785802939483568433101737837781708082199966827380963347736985296309507152810913737018848104868812050352494974648863812869938763841304936237068175648154377901657156108871930457649260889593277484132761594402306604657779741284020739417153585593284989447134660150070322452242115573246520447341197783493423837994726342570442100476400019370443727265956012558023025650304775131184089989122832118706388931280380846459862877965735091934179385564220577706196118835789886909571058303157506535657111416145656744682455915099649575428645352492593288775055021366395651970846739368435270755775172706370069957934291867254575063890970345131454493793030191190004273951934362054947131322064334272956518030803336700226363874115102986246162170612071934999983777872938724193822401654925899481817636890080280485597739844656864099144786673722181679021921182210316216852109238160701309197613144505416737060005769794771618341171529207187063166579233869899532792382923876162474877198440733362094329897061519784658108783196621875097423425820505676071340377431404561114138041314071219801920845459595689104883659298240369442311317082908576657191349916615433783779158052347223419220761303607073350494416343096439593761828079350883760150759430706126497197376751081338022160643105286767099731345627321674633928052853973639173136704379783532134316448078701865506934196047137154918279190925664071415722524492663676271107333335936331272714987629020460093950688119643149639291915233924532099182602984965902146214557686669409371217356990254642154876726623462657817764864893518280607031428149444729072894367235233957854560668799295669854411148529158546345576972692222165696690157109908187841540707663930324141966268818320797164033118131825284043567731145491466644194326625977620820421723832332239072777893414423284320756828881055178192062251127896237365286796595430249723038336202288545519072261404015837930320951351062581738082195370798392509875292034360115178365013097785537046914364240837188923510767977975571251753637070348096076495467711480901161096018832657457812225474742122139694020661578858747114900591583103007395535013299994077957165332455321703277415951518834344487697385830271399565838903401465231018714771308347091625910534479625201713929602742612046268239003210510639851463828205177228234120249947908245467326769324468596715985290454803138301609366102486427956085389868885410201804490922332272513267027449598730249794893912348743049281704393224944368177673998613903052990200806538550603757187933040272142887205646289998856081511037180734380530147879117991233195637996505890198837341097726046466495994880387874772683422723322856728230923204267371232154453179152086130072431006172574296148303376383989075017893950638603562343045743524119582058205193622229236034073312376153141606032742021433767612253572991127769619910271080732525882247943491788003604080472717978242675994536389070116005498182917934675162122597866895141974580860943205674597456972942632117195815237274055382846254488551150019580239694458485696966767498772023026461446586182289044768216857799441616567102239027137919724397960917495507355642717957572855803314082243556676658937046093196504169222589389442133658921571143741643213741624219359248050998731912444425705552203397590232209926618698578571778519256630389306799572002130985766313289561313260675437258702858176669969764455571578622145618983566641574377709656100013341054968914243343409579534851789220810418919452147312550859668471060421612614167002832311548023618042640261067762137657723405317333516241361825471667611084653840768081608866747820900376661301539915100354708061189010949326990178198748574809146553718449289648140292656863619235173887436432974276105820818510799868655275549252573449464623908910043986361641403574672839691848409179307569436785859234574829362710510063912926646925096840262656702724639587321487141793452334295907476750929345774129180440211734711967090270662097503039198224661496682602188135147607236656946843711311631892434619852563792459642821781125574056752976678577621709470921242265378675728714025675735083403532572088629543263844698978279605242762181067099724994806705560367097605907218262915201553802863333234379333667045866336674082411466034161344214635703360964139798345654241789679659616106236167736027436844174519308716023204638324079421683872614203515911004905775470725623332204765475744631424110069660824345687048930094207972379268051747528519655639604583603902820873347191023182113575410632282559091691922347654086746521201946570352411803551465260280880779208859104614667001010606218127206492310131111242333576280580337925321235924492070822694621350648717641068345799896816139501437283851839756808094886715432700908844883539985765901652873203073866315152159573988588040165708810409062212660030173663049917991673650972604983480671590306152706117899239632021282497939513267633632792620494807613174017653294212747014588568802064902197729751296719984686566697962177285550900612633095750896966804201212842228085742781334530050780896730639982368146283989414233838708002427116374580358081023140539876218956464121010588471146529817602466134472732363121492613672172283565930764230919251495509173284934857638566040730389589217506317676668248867082310170163542661672666166189878364201606648786849281519112960225303625984330975520343037212667173005168093466350483146152562908928135524159613111768281046606513499266620969632039684927044619384795793419631960760161990627610825812888765648668106462233393265274052364731424894721282723425819808591949744275859910426125086380710464257188071357672946506576832168715315421226246581594412482678563120519338862151123024273380704802904034421145834475001130791890568280998441217622803891284713338038333353528787597974993036605275368733842250304127794024623834794591178019634928786360376037289796212789275649265685512982832138320868551964941048052966190034951659691524607945695622015150721542799789803730730666729351033251888990255474322596466080533029352330957584101579391139931532325692327490019331110096940848788130743136391981635523941181935381106750462609656529424835821561014975423158586948461485966701344106998990823837573041254011733871937083357847118328900877499375450761243463468007455182391841208729314502714578914675771896927052419994276275617759870099546685057781322675236158320577054275469320842962773342295296730506775111695808009625270094894909295398032328571552852563832657719380155501431423151753759229009769006734301413065508630617488950573483643097214536877858826997323802593604963602476640304827651817230681034738058168211655437201884539503737499255459436494931356487126692928726153133948989147056701757781173373182089470136171783643686651375929989975046162781986805326919724253458771401958037006074344499352703025096193938646563532806734826148455192402836429862643505566047872974947758882636563380253616982396639975164238115653656705955777619238426378540988017639888996069681703121298239222118012835661434167110917176065542900524759372566249416924224507424813918219433415269887384866304816714990159539315135738725865975319541854080074630824669455091242855184551029433734620890161761800508289999626795778884098625644955911710036325645511749318565337103862858236428067888285168432331720088873879375384290709429623842898007853427537263573412864017018972384385785118231862607440344541612352672499404633977924429395824005510663560411784716558214509757810405139200605734372498739256067620510679519855284836225169440087888555437078690997345574206446567700892381332772383818352455511049917130332366475550783595813341797389506958073711128417363892577486254786115142400561128466711765183515671659653896212066895613993855501015406171820166795395422134645822475000835020585724638146196789012902391900352191629001281644112554688779026975969722578925951205208912742810373286129728722550789061607049467637051348197336506382109343005432703154274372955488234921811286701036901704791009168793357867008513605938930581503811250711730861311266389503071098166907975287975112806480663134681730322014628485119784903072181115373371050138538281770208820552485373998645408578396049002387232497539485990261521925970307201325304497729060358948301840528625012141082689403238206853894655767472488052478059787146786947590351902569669055471470688364086909455412933924347264285055104875513027593006729071056193677011839370951800963783343965104778739853989113938343404127791887148110982297615393536757583197198316551844300310703749353702812980647183530218038911080465087394557203651633786516430715193941265175338607968968742893113330855161656751273802621473119282569919268908710285892255387369712798978638409265732232625532802485093462125854150160985271018429903361233495715515951699804627532937037831343690053913051752146329995237816393794640630131128042499781506602746390385723272605091686165383933363636938016893040719687347624758377095513349252044009192908649272790663266999044360378381583954932600061999879031301433164147097859484857668922083283840953839121271933918571537474210580967239631541290001680315890143890420949481502136980226841677290054187853241611523457374255121692797084288321069579027454411870871385700516578322674708979758973378702170174732748437253951065318706767662973451256682604352789387395325332910627074364104552942200262945691778590740786362645140497030689438756436836408498115903667997249411482340506346979925582639788647584695617128938113914039367411147317856793654211186433583128786855750390758243022075424937699892879355394983864457387025855276373304234458323403029903791813850055543133339084502761688783434351544904796953849838654344276956381334225808733379915726369525849685739351072393368109600465089252891550105137931734592721524797604969255581593774756696979622426529653380386014532319626412567713339267116674662896832753976275405881862674430395753707367505459275064437538479956667497526640476050697043892208345728237216290345419735355826848428816924256759605411386999837812775428438594733406061891119238310467120986322309660094029975541490633301892861262009329181178183941656503935486840463650299711504766052202461458638982466236808199666707724270225582659947246168324759386790302241887706497227824466250331684172000568027767961045639698625256001846388380494355418023415053058551333229621022194823441421382565265137193284496432828599567240732529178482409691350862551590166590238864751900187762410903816019348392934093172758379035078115995964684784921196274441557737473422399762727585083149950793251982417042023606247778403511512418701126383121173696056290164602544403437468001528223469963014978617538237488859266410355791050992596547205810619856551567339242723245093874354415448565559296487705443022788813911569269061746377725145269107391442266900276709447980436583896823187059843283284213402059162026077342017879128643186615691711825156158520974764655385179716593492548269828686503447166541390986120587119904069700595165753528227127515793097507550258140360901076993258354658867770928329616257604732538418035847077346770549334611760253889392633157207404409461146101660473889685558657884256252997693793223951075654974695484991227724732999256603847401464002812346144478693905505728391495452018741274653455826047632293326916342462173308307639192707905671013854570216047576454478688223518734092776657555275513533838049456514464326966156675197277999210086202751666846964093508116558092787124982169261002777613532408582511065784071869588603917729080218129201788900952714843381949856245675317580356745182185044928950763244741432568448859521312603312668572851783079538589688465971277316358557625173308982604878530930642717636438311729646489861890235973365753974835126279932342986931243523858423091270380057403864022199634856520647416136306052422042671372874680231642914156630213932078616291336590781569781208375581982080577673772733751630969675338866931013587591598711436176119065905834596668237360715348744929443178689561836237453208910494854655288960948109400413002565531314830811453183789495899902999863708434052202527725449741535427603323265588774004009699764666098495117915601714261675268707147305504541338940086043955291059410258349764755277033096934508009504627775325937327829719442487899282438633933394273490099317641673978901906753018379266140048080838014514595232363732487755028739945415823144490566451254362522203763671340544341646139533566517058897090429374524590964762804055493353075597873402457340735857052768540305727728901709544060637493097206684865243401229499274671661386308607844718620062162621172250544137089039118254518200949311982243196837967020493835511907768585058293004161263499636838867030050111368695101154057048717780079510964914424999190056970149373780224681595163039942983610726526464320319638201248902083791379407414103978782647636979237504851133418490944599260344639724577779051834409315955360001161632326216218700026363332685210359413365179312546596284140146643600118687281453623141898027058105104149946324068017075451710947733474610727674328925911292258344514696663940300074246525356999769949012692469138303206585373975023944518338773875585784961028355968199176806518081800416999213426849341788944227119006035492609986547643829133522675597696082694892874135923446099876298010046111521426267869894563490593417085111709853502483555316628556213510305999262971836174156606942507297988819167558279607242435188255128224468513384755415163746140025143646950312018282221665676495278627951409039007314004734844878802376847597420715483802617600051411935837653585701353782287438228953098503630438850692417894409201625168398640499892975750671219202184446360465213810869237287018520363029677756937108762142818192306525917153907545169783463317283232033164334346468040267347123820096960107298588735526043979655257327728079272165444946010857321797078627962478343612292289832990734488607119777897380574778871160976314711700601706248694178337301597778244379161939782681689444915549301153677900522951993050055316365334827122548141955523231182511686603857506555748223486943559499865957772718160090463095285663436208512033097888114582126306351361264621308593637124098673113035385126379912667972633035867848068247064337308527807260085406679487358219334879830946076953062020666446655782673621220111270511149112434667432063332603411789197742259403624849686709181389474581041080023489270975963504133607847417255906450415098817412295337365687697091087138050454382941686948813181389185404372962011647534550822671509604178043135417748870965537279268786413737819940822310783273748576231013024775211213264651292264214626229637181658232500193305430729206215678223667410538307476798497869369903172031404556536361501875066059658632709562349308348182557979738738732756512247838204031483118096396199459467878645357436344402324155310027858819439019332231715100544984175691041784673000528575262896901391608576181433534656600627775778825633414010396658227546663540137191914631949573027568983382022666386872956559418167592918988094605436492171251186473036183492327519433057361329900431975605382221326019524832104263426974162854522389816973797129264668155108234802897472176446329627023411090097755590247065389366593791954480455175235885597322724174950612956926512624351077061457936659711879231942320211180753142943302532249474906032837699534517371748198332528637752681068483704219985198512693192289759869435204621086439761633690272789208737869554064664436766804506526248056666217617271528111678657979297082549135969510155978994191500604403652450034987274910760328612171582762819213257952467350532576736006445504270135820111636901594358318641700716838385918817327337889671532481908937379128625637369344854649912414242461671503704277475641491401123060561100549468500969746452456452119092609939551755774002429875157065554947834666643281279107824103104105585916650523381938408208459231833925635216594242429063897792149037796752989798710095567976167514564318235168483773192731799099005873448110258813204660339066124651850733450393700341890926463460177834970228240891014137933073525169478458489683647836998871609614998839480051738281193894838946963003093347648807713165453152774802988242411411224876519592746346199226015038237197098842961778631698859612384120128405826538253467547399480537875034382702819768984291799896414055721381712904571894381841935885797518533767082559897887492624042852759606485194507371593892369441206142106060763155126120300376691755514705189623276297387442844048142901916812105829638795038157993692783944342355437066792390781477228634967252287000686302877002750728313857485925047649321504189432217502956626718880028058686133864685857120019472507419569522122032611789531099865690890157606986722261662786048891878372094763109664921588172744152540364673263540421665183602411681743991395810712955198156245907417792164081566990581752639788365972915370353371512799983914363778593865794287441398748267850512977137566251320138420646515478777374071312821902325459935237873488856419413236776758657484128070705247095256059456394284373013435836748237997689786681053141017208999972550537524216889892095724931793270744810571842847775958867589061458579520368358601759489613997743846837954328112935886078390770877985673896064898466539211427360766205611210466011339108589141525680631829136444630692451665544238662399542691967584599979133095977105457583907578930568526431083294585263656319520976682238035309218114020327213811659141208037819446317743182208738610472409575541269040673480578532742146441666368813681821105732871967576185151524309628269191676396673344268482627550958833130158460937427760277390007799941329225030892540391499631004736339999428767130247492795704894459875328102970263547535033170505337967043666124896081680867840056045494107229384760913157741610624073979981772667178708417239701874022476282705192382551713327911225505477734347700673068604600450320878633170444499130243827507322511956512076066130438192043531536579714634765083970188150800598257359820472611460770735627019275945996599144233978208224430474408685972859824107917482381670570402925924669442112924942785179192435284562287722801925197160926208244938898618658578128748276329644046875688968331722265045940316765365312884148570409252634464951558116178944330121404130143092454460838045102032625374447113488271853294664659558583118119316241817988948763845836004774851289277400412191317869223496440076525132873378297175492419347941577069275227808756145958948152950024358528715318961588372412636193981237884366007426355532544503260354542635047705384418255286786118127321310400830817080749620315091584621356359625509637910410084581084434677401921050595424226568477762156880485755968404160047267848130221924603270098730212528588385758054967737726776062953912376085423849110986005762432552047269341526279805626144395848741695620116249402862005527218473439668852997863378330941438141115793073912091015540562924406758338671049508988163471146139336889481047705062475490993665532123755268210436443042835848839546749262504063950049824878296859888025736331237413429145252843679353646286425591895877861431147402951573581128530839818470180146949762467220271022543863111603249417729876926574192535895626948893037197397474070251377188425582444383230325509011032919511625397416278134301194829288498856113896496462064156998209087549601730669428428486730377160366604999562989066006015462600169909365976514622474109532247568481462451233341519734219637191411669167374669265669790008510368161831850726556910134054932385977187485913993584088380750706384369788973681181685254698934670828347436403375863040737693286017345699134742018049862764486715521633765509379307948313728485786064078113189409501761914465562349232787334981268508270195958816260870962609072369765021547362250085156326772376220998795231820528158290784469825292112752016042991385720023387405766198936497264918677043274128393295006707039329584674645264156465430176389419178201417213998112736405370101833062148756877418345905820554640261566835308639443751951387517315753432016367976649838624508161235105906444502857408387578112788686178296368278402403596336790356336024483131473727281659543161477409344603754852182072562383871197011138115164091290881693332061984939166115243119691719806778358727812255526862236290155566936792791973159335123404650065201081563092837511792294653373984132619005964765119593726737308186188396230431622272454249858599802360445975988856713789424175864722593235293994261131087257549480548607742631073038227084363798855534619282301350094095579153302600580496044768768006353302756828314713513325489294748899082282937716839055386465755506949147289023900555827780701232010452440956135610662302853862078731985403778831790615498644039672288636312896521112173277023200981698414136153275978728720544243254497239619060344760118479629464866655180625944485358322637086599927356771416617321575871221725278298204316646576104069693761293252080251751718331305152608883868795245745683703857258855793478588790270484609175915237291892028817130036661744775666192839529904335836744763131953212261199380323259386748912977995491350129124851967016731458130989455035802628208345222397745174987544521714719330663169606599955936435777950472977238775968278827749823091881023409352909244988339963985487126417311175828194122018603777645714680538608170960521820092543924190599727100317776326190003941191814736477931800777927857642322572389802525373647627904130708035193315835414476616970060306988823998554243390394330103391952516749468265860298301548577461600808296003433357359867027684535782438174237007147005652735685818136491390266932132848461736201910558572676218785068943724509584514711070368276719594231603405038300801252991583911618393129765807370469780335092242981554838994453652118056123058523488190419188835690464266544565741158406773794554603707812691976672189167467853146187230154869881985064828532600595852241408571465160064848720991210414406773682957493048367494192856681756355790884511878282135005841119610864476753783656881188692708960566593637367132646632626770722962200858077804135857223710111104289320294082824135496803556574773320031238058056404152654481764798364522072798616914644872390003894403301771726090265666561130589162260320918723529827332044168001057262963053578210139368582122396010659659455760902836348273094268008008250018116065198367015502127457598665597345862107740610795413027219311144613631217956171455602456048890441468020529262968509173079813350069571016273361704306062666592257258270197149955542248670790307092745655436650797855104555664488700517644501952288450992086977355291447674286334460116345960306634495113760310774789382742086965085813651457458198783937725435203893438308399521342947076925004045532541070912957059883659196485609769582743116325113040650161693101694058752739440261969904332954175694688975764432305664408984725074617414628844690819267330449557828841684315687287500319201204515480135582758226506784924680614859529412432956095041331208078806601309861100454912455190953300181849926734672635013654916315289042968314364264668925576715342975907040955443929433910631517918280750209585723166448274073655484290607326480526430170394594837737793763217550130458658878944222745446935790217160438776021482993991088582601059468208860383415891754479277786690171525521995694556431830279479105727152924883706633076215189206975665240209362668303842284052753582444801597143038586374506212303802036933154067020400521613911295506623700280482521382480565259972306066703940030078329674693933400020706139120590409164806370287704045843039193031802041716272322568813401912272654285661477731166541374816702378042437738972939182041780854767103214518656769744197304194161393141803717586820061331702191491809277175256903069729165299343445992315170371487251685914852346079630835469655951756379569801041816376447214350425572899664775860359799636967752474163095413463194190936776736916854690495838377322866277839125112978046588940658920783558220699992260333285354364107353527106211218080625069554596371556830626897033560469716054001746745894752929374646199911564228302720750718278989618585355643256908946443028740059408810259585186938665532195355007167250062925925397996939351421745659723803146571335012391879261632104394142165738098690998416493706487537157410273921212757914616378429411745428749744772476032363174500165189281518591575153046247717287571629302794826361665493186540569584588435922870992977220822055902442941577672578484190934837534150192307696033123982417006464251351730680942003373463301263590185480747006114784333787914295008467379349412280880559485154646291897107903282219771742436323639424424342417975006973067242566978164614768344350199373440713196497634489192153751052095560849123716869159710961896170972278853308479049442328094918000102713725495870627918569349247662105071846600879768930763419984061051216420099801991910260902150703093458115053971856370090913369224074363822874595562021904808540757078711571855643319411128443821092567005064266256349014399465687902147552755490659611808838063602751547954446964501145194416671468653732177210082444592525971278019101857187991300410490146712054202225134350425389040789419402942130465142186831145870812643087606495129569094103968662428871838526130384198438919636933518212221946091576912333921672371329859906750658084810676396203890345152640714606406136493713298191583452609292694402153076709559931793200973837507029783803298386369924894221052024256749155549566988825545581857066048283769853948546442152476959755660677182002782746327832071048820119757953150203626720839479792668334448195081430194414701349164215853355439929421874828536307805408175081705395506160276916609218674394074239734237779000128611882210671419569986907672580269393936663233594024587285563844737164405472068613449031015152423199068412429844196127982259274544414133352082068355985093937341238644382952415008063078810763131311944429140505912882803943639381849111673039735043480052186448984090230273846223826042672784191373272025389216000243013520165349004748357980527887966260998306178559583528862884621317831580495162325249735058754124711448774846168546275178688946331950290686316185952456912706355458482248599321756806687329534759469012585586185889851784296802805441159347168111200228309761390795295136169146726838952837009729601180772846305166515677243686336643232388547949533112037283717150148186001481179795198880677498487891304219296855930030623812741175003026316057422558944879681625550214620566547816949138144454899428655852524702374354326502199025935853058260596249820587707124291215114812510387861512118157749220711749844891679396929410705236504213950453826610085586019168111117664406936259730701487664569324294266186110036651896257478155032133318242490971781686270253656042852857343333000324221346571873425392252594027479808144507384136688991839963653755603330538506129188131457096202654630733108659622010274978011434240151966541307449302452392401917584699366824136854038154856412569317327478926042381666387185022844173674407643455659453439984143169514501071815872335730268760137679248934981511323680059502844110517909475346704702904063944772550885148075877421286615753881638898314692475515010462730289203051170589848022991646400753584657039757362632176443576568850848272056196490805047861075166011402096653926425112343195330225733273375180832312599737144383398057242650020519735636070976943823518856128920497900000050986721665416178256959474581515648662520632675450477365495572376199909738178836693697098152212868003501251515550854226481746699361610441919320725365327656686988325155322906318836283344958981432697932972884508616806455764271621620096060471274235018565477617655029066562300498716944476219588867272853622102561239839855832097267026106540938005816200240567917791028095554259072857592053558980866834659198511576754231835755853065400690173571442981006768986002129600112188241538211621130989646919697013122210068649675400268964739799815726909245047887571012172197920352845044391852512282275706783450767445842538455112789492864424967743148559666615242680801068725597544949228163801085227967166905245818205787111335967084495890815368269493447172265715842728129390326406577057977111178710288158362142077733209373481901874082649303299563545497902517066397513702587268769318744350301491283817971218693455645986130622051354991935886286999662409021769252679793607361921394275879873671727597077888080527440344246220629235077338199892284945510868780085616906218107551342271578702515787592315196277548001217270151327689788910521346753581864857656546684634056171665909549523954740737271444899285955219324235080028977890296187502334727833957160571380464086310920881995673486529692585986352802285611433241745068632681048198707295466870708096473551461160413604485760819974219470251596958310167620983212789813381434286982639802523812857955846425822449779056931953781599526431837668355868777604244461389701301066461460035739849798589878680261801964643578023216195970654426791904794368209011361037246088759883012780838458629060955434830111349877088173845765511867077986034557880278369237624589103720115113266087490858706328873343326450377954728408695606586773134988652693884954605880079197357536273164686090094033187721805375837131102534830243694697203078456426100359323969710419935926564197000549823027919043346521669500438854340122819749562924694869117588474438991902806661285625355320583150243799026172747542956529295257048082243666764403028699050020301795795132318147981818078140240175733269605928698817320371467038378573053356063909410527224559757634896406922633706647362307027939133806020073460379954936542098519341050372700973306886290981131901387603255609011983273109558387837955764348278099379718957535491158637781887608266830005560387891417531710622711507277276991972526049554911852322292929582513970767785510276805750658428480181315044538886840574079221081615837756183045050875235860070503444013959177977825897082913297560202675568755692981552534818626225458256581989216832387720213509862451727446428473400676535655718409946489914381243344062792240212080455672206614346095637869997127989254545161978083363981898119424699182350401321638395224273185964311681693340284701256330591948009015204830268139164840305899627512679715339733984942722544222579154148460913232754624211399239767333771288004471701301555038401613567529995219578967510447945971075881934705846350773069902907270819760093678193419438110996297397694787702853884377733524841687696642764086481501949275794065744901205855370842972197383752199931020436629691434084155268927236532548855803988264029067209810652034439089368742776025920999958774443615255851921167122639191094367731568125836422285081786158000877682616645138763826801566134476129741211916583414339615490691031562179163435100499504440116564304415361878464288698932212293487664874128854834141380744129709864928047776348074065752021259019280383266420918095488481886751184064470646364431913427963551772149447233671329958561362384029843235490863568844209723725440004345030964987672354517175350594118016106551268906838295973618156170561297520242817531043204686570190069807098601401598016585365189882970880192427725560004331428698559521360578622429248460107743043758567944334854994266800550302257825867394476220254251165210794692584284195185051822852226350446019056019041997343586677728090161824198157399009796754918860423252415183825888493835317393154059808336838399144314795945437888196347234681535942450384367729722874676288601220384602226640684645933844862568232857514094173607248669572732713476263817190769826112195660721811691311795247995505698601168072478992217820084767792450716740982437383529764318243451654940221802263359644570617601070210409195968516196445971481276034073045953889227089072213971674022561894823196384818408347744790106408137005110619468946477159041055224869452885077072094743634848991920648287269330582132433703575040660753198437740857969319837124284526304900964845541382922411605671750853232910597724494074084579248240339810994241418520635360383031244750642471656958057087442919378190891697652751787282952473727134244269342609094042674961512121466871753019201522127813498459709481699595627488161270705460083319648541551492984357483001250637932049870192004824725696077018163470989011404818665808408491815374421100163834881446443099858050459148252406456953176028020913955186025447630929758041938147771010678835853414228736655304847591496160416628908019348480411879334416590099664388758245662856425016716069203937324913883055513296394793603936946065889880419748547393822917446555592383292551744332379788287692407156705603477835105754285789184996443143493461008785832158417683221656486424742120534007413751352987801814955878187683792491448989124770556947368847100071070133726541774276672905216550515495963802664208925809550540228606472779932901333356375775861087140689549639358012751323636756566024867326065302286621465465291968009845305184303556755466131888013311157870106577291741509312656593084418211472836188837994558361928812943089000448916967556992368010768599150440343800924487123415827498253532819929919736639897320669659893929325393421481551797387309055802430628551584811172618830368250895583459085689321490354592397166736369715019091105277448718159753461106356732236704466246835602581484035087746408436033879256045398965303368164414097036010633823605730232093010721262012022895624005751329477599763150089513708912373908380884721168263852638590550707048836475741840396063312477368596488665354853658902348908544871674749699544806369875854846533488710391742513602796512479668948803055216487442451498239483547909455666327820068479934170202484224207292341679584768455233215347979314823118366603669311997407860472180630405227083722193585276309392889873815255646714941536465498053141787270699622694851478841550739944072839445604395460831986370940025053063347029814098550400608842782781030677802475220095423551564195708790051847355977789304718884105561662697236708584998873100900172129358545361522014382887096137497421746782769563368106902696194642911657365936981951601563958416904853029753139375771176887605429599027975453579398800053921782084677450714325998263787306915526583658859530367436124027550247132111313304900312459139727436628835579412742020494298106143568108112042738283597955231511567765446064531415364403744324731686282864844776619272890827730758683093313744169091334534497798706917775897910516268639497794566213488741331459707279833822115944021302110046711907220805959249562839254472309780836511285590665852474256980699958357678580015646138948357377899726338641360448406775441845213145270113764567138925706004632994140925008863664242711852802122926817485670818038671275521801215218366847345967500712952462377902037689406716707382648351686824029610036085909262719294495532509887925768592213956719627802885363259195069294988542768348675320680764828065806765861388313799704312112919614765498896907389164116569630778461176900160965539782214451933396293501107785655287358647163272484705661343976179919971517132073548279713738896535307411364390278161768506150511117877610152333155569722170860899350880588766070663612347278341345985574152532560898434223802076357542072010696710487637166411330611068753381851816907349432759866149153818524938915850094724796600320938732846932293018055243284087682351642904329243395603113415639422829470592670505690086475427888117947217698868341957034452162971853799919628936020165620465826217493411052363952753601190712892524160633193576445286837982479901149954879348024315680461995522278144859997950949910003757890517533080940489144375019490690200295512859988552125384825145480511554195911305860843697664980119496102346962513388547610740877355544450879135134940824243901493951368721269436856935599386003723368817199460648341964154400260723031057613568945227540719869695599160962680101311361097346572490622690447760756678047857246490446891529437818435713542383378989925950122574580321526773997739057547489471164258830781303391220164527266367410332799293025355740446026255194488178071191075870618693172807925246258259750401811999562595823764318318190425997488492315168975756799135402161365148558919925335838218306761365280447552225334660926209829208567542553351637222477311340351046863534061281689733077977262735647536190295823640897294220405102683084690119069751209582763310387349794457609264057005398919762804115198113512981382935280149337303620633917967657615660222924624233843667860423525594573901251909691126704618517603296926958543607035911014007708744432561466023110944622382086815201115756589697406759823447340974887848018148566685760469613461575122964233787344063210719693655194420412955149150293827637766512312533234795194871050393918851237171403269275475900687724899381786010483665865925402434811491709793514570284865355283154617324290075830587747014104670116865853109925853909124455563492034933480675653011674253927859452037183226432827638619105633942902871353848869469682856821203443611861869350799530379263397250445995112795225252432899227599742837753966928749266293882641317017166314030468126069228949183196549277730794801308465077245938506127997499996409305641867597554034703172987364501343034561574915376451153650833647962754999395927179157672997723746406936575263429762306169526323028464738669771519692772892542403358133081034564956099152758644130195794789956756404036533040959083628126469731342824587896858147942398089200984884899371772536371587254811001040999676484543351210028880360659101863429824022738545954883125668220352061929723907871630780268570201644580547575538092552164598181453477815996882150359790666929468108527564119879551919883402652949598367505603296149595823118511180563673157288726536540373610740652350606402380639548577804970376218856363594045238422892378788696365485254611150800294047715524183945323606930056921988062636922889417357981559015352641793830878199631717715739540071946186833447646202035612665623582884930441235595798979469145062062321559373288817363677805502637523282188357646676948312527526850472530652333415609288809230822828895133575792929322826032953480705372757343410871009984448115720068546794595012148795733994538397349255037648910055113211603622333921723871825378553263846410613519780234482286685680626202485519399752926521843692317616440727452991594638028309964570639130601264134461703903622931315125510475293317327365762066490094571797997310459646971268487538821890556772778796947628022889797765215978222537230048765357295433678030458315776092961025776614701760974993559803777532404194309323266890995600986401079097782124703360162273712036646000383122672092185623482466358626167102642577935524350029487390963788214760781816563351868266584380666188207377687309705612397191668391408605332862865928794766788841489722259386458990956084219968177604809842299917678028800146949156505711850371293702361516150035031498801366908640488451492780702729124829670081046198963599519539382479590961470443723028315895999027720197226267177214528329270668649322069856168264258106782116770024037521146667896154934751263509946707065608858103961287010972235937080289955070611852668624565296418524992254960417250871086540117363424649939090302994867384840345963105716635165467298628058044883721370687332904496045631628062028259592512571460543646084334547390267068127474346199303944090544684355095506285895404027982808590385402457691032457266738740974650996086625223974255102298082926136230224326403659486095330627745606208583143021006758754991872301062182090795594269468930143584068482590320986203184526335356888338630277618103611693388034232130893638487735086215394865117739640912461495556743832290146097058723487656432106940305196963634152763466912366927697509553310823054384332810651682101767479584326033585689506173690766222799555031225379464287213816440259426304381880710290358601677837318429195539924559254671431046816025759097977540523771180521167439046100559679815814980437754234480679850873293018259095984571387324417333508486475633462421968317403847902275835782093027973068098249060291148450183670783240130798634052820943649618876141673576452816269823822112232888172043536051125307399649835975206121639037459979020904307235701763123693490202978780955159356324793359310738950219120547401717776683624136359971646844015645603353063729777749056646401912751481005981496544953014125158520083690891256598606400310676893356747099620220440551286295714085154606499417666974051042456948447291775807876549632199663088139484507141373684313562400183951094606274488632450729284495732120739303546230263563593535676588806760097847913043925178955349616365591921914253449953415517179519307633051884431457847632946245051114975876415070059884683605070889557318013338223017464582256053629965661505775994102057999756571158548016318295404746888302672061753054651536393149377435495557507033396434666267438579641415615776164978195342939722402282609700672820213438937255458885914690122019097554389325011005784603751419545592558959179604199197175308248078319046498245043221717803404235745864654996205383364205455252316633327518705933394588856545284667681894621384876877159553468471578849108102785436041918660309791412950086329718811796973733025837787033811330513469684567293292961301713593478064562988190259760432781394754139686377594282998140596747615001219453968760076692665003189771709054773097757221774699046889928644644710168262127954365622277520697404420805824355559465153025447741155823726569194395729386357768876263880093998478366552905602391058205992077658958211210067632376948062752948790393475167663851261275163105861407094581035744770610954464651257988211535655707663473231892567083549040604085465337726067027732147961449101101159408214608260440593435106326102161441273169522378758365208574561711827014455091346169484683962699893523879276655211770240626023996823273540886874866126733611393860396007528247408799312026480332141208161556086577562741315662434495015299620302029796812862178482831246465144031720566258140796632679824647928913078486335520751591345990207563847225050903630608300039896856065905178415240290375272000266178447917393578494102805120235431057437264331051465581773411813979398010919882058909689756325749643940558495333538132816584900983164792985599723207366493281345954025995087105361728380890424628095094990812283870528504505712377760142971143909208378396499451413223103504062144168300023843998224112804499765275552827523937528630518861952689562567294399604663616129252291595579455534587118227468930359398596803283809854338228556186672496348803120430134345095742018641826898005507383924896982470796450319272093071435663840085945863151760331746100266011272200635568850800839718399474091378148884672338352278733229986504917318182128135866517759411711315512304010047429732612428321825690535436101622105053431214941340933028913188954369128204399411719393789089330746296935212134156989285403961375256178727933859455200142334594304971196054981156578574133948524655835331392695407895419353258634585680021538105519219244595149057067776889299157861922980692326928069655221726210340173172453615554518767058803540910383136402098032602117347107179925745590576198383039116170659081361867745645561199644680226676419380699620973254572196373611148602856236217162897268363353969640393519182494052231773231486475785073689384130870501879377829039023155250648878408080154492211687976247165248098791113269149188586014813605510668022476111985363850222805924244769384107843093501491241429874539383842914787197587735950520312924689073753190083189605143661444332910062008236716162099207948661225052237407323441722058021666661912942599130934050629973367536523722090271573959330683322729857699210783928531132063770188087417887684322538751445069548670782684503524740030230512273978373658048541033350636852410690150143095735256056314953028127793959675537015269017013596286592780954632253156076012325388901944737014306142685435615191218922384492436330150080864111844576767648070320634633257412657615999550770171224440968891786547732450671126877059768583707187790169316732121667818075245503056923891881467826109376115255632412144093156121103323482366711280433780526563613174624978245673686812296351802324530933218914985602309898230307371229803344547290020639010663841165996202498318776708702261801604294650663885894227648882871111960782734866491931290672617244919930203711221599917840557755872184098030498382362021778568867561656799763812582391447928772692226754574183185322124791265441158918077128053892776909218864893836178447930088984323594601283876078243861106776690497516177748871712949529906566535294850780115113840558039773845734789714814133635116815142704360926620666572032245934722315133100153746840398337915346377088263332407155953089849322146775137837173085044215311289011126879853919773081439038723384170070335920471735071803109081741107909087442223073649312463336666485447900860308202392685679565704751163392729794780116005056868253018413203730510423039130907249087038207761700577123612971614369051404433843763678817817811411868143812446344960265869953797010776819689172539977736543547992131104247050466624572437375954345920016398704992657117625571909076670012154915018550160459269690398033911754299494211783537160263814155876610505179668634311092828372810728098914714026991049218718936252529905836104625398083996467716600120529959016405997408156125035966323656080264930124910609607732416210713931005419769542492503447156712358975846638205920721552879876143795224837687679682321411018567447592481065380878037560916711914362062459205127424753398922739578652757791884981611946940092925902677852129174580485898682601843024633346713773504602169241633389159897241922015406784072142901425954851351606037167306203071040524229246356796076419024536376338132881535794942097165007800720578846948614804995225705131098406547207352081916811318920252185058781717899148315826570185303986960323410294958598619031049579751600457340782436709435668464261232948515650806617155578233897374455396463673661771864877711687041121101904043080358651163551616707172926903240501057426567517144225632031832856235044145385191817360934233779169758920727682382370660250593392411432451641730700990294217406605827567617184368499601964037319559301195318830034273642033433431710801903173496405261643490631613900997453656425091263679449363177849887359029320057002327953121927443951996463819566071959888834445845981808361222461072083006117618578503413295495394384859474204533833970604424632991301401089550369515255783470701428099301811797376801162708688044133862290142378700174776755522560610309615368371499355099132279755823697734222623207246809257431520377497039515584848952459184429535598782616931235444834936272999483522773636080363586026895663337677487425841198193961666653387234497640389546634131877145178877570310170447532870329574298471434067928621134220007788540741137406259613632001137792241636112353363547991626313883321322021491637231230064051521093601758373323023115365508340807559543524549378012037894087415109168230116232586174689787535049047891872925962285350254823390094973761149442661849786735756159219279537253494237229323322070694447715967638252863770325102693893570165440893952390879282560657756389291572539045706471203422909353990900916520126819358688503856690721794067601524048449642579691027708157531059269049335211544431696913739901770084904856409058699438558040822385119341884855648798547598105408971506124256973845527781148740979149368389601798048163659577757784149540142996301824295373993698281106017463103271335369464831798926476449369147831910881006712793957150888463974841461202769017399832876928709147832591603649945811057572557212111639483871015031173528497318657007366932569312207863922159308236705210465510881061403420780978918131320615443206055098128804345965793380308822814507767402992493615400886735420088955081085264144614070180834860362762859236859851843821171762916381994547669690392210657092910929090039631350639939256991273685409753400317910171037704097559331131572329509195319392894875695404644808360141264671664188168800861813985633299403294439168479118513181260036508546434142313477094405395954192061625387163996142600329070723667192659501541445409237101493689048166507607431278028016299818033819952956120577930645481043739250229401406206365403963056241137118520947250290096536638852097089572739112197922642145429027397152102378191058705353050953652351414456270700936735443458030747591279586955951358223003854490382005682032287644014314349658606926578452316110538406099087671916127969084862480114921207932550732796277798001207650153606180583794218232044587780844815236010143643984421648895424411111141452054829807462735275585640267207472159918614516197088294308437507075282551306897685869511485885163443458463555044724581253732714339643296753163853699700944445323827417554730914613320026785081883646827536722877031684160861110098378773621165816606155686252714879743834455455056055125666311874054943222931413501834318529545034111806749939110762500728907337475773829406615268547146842806243036225595961682668427636635679116780481377941987589508961515376930605717545305920114966048653296878795867450121731406883126154341425147153774324090062568046781013862703397462646626894576759063358881742479733372423882622594627874538051346288868598828168632878791761085804094578817478840600727512111436267060873903104907358342172650164649438851869166210810227763494865566178580783274849483653156041170663408111119848304822272634139743296733253606073368975505028325008833466742309177768942690951075207075445849538766805895635082226985218420265803366058864979122799376340218203983259192223247316874610410850013076437426956523729005633537043875785944439334083558631977852830542321976567110323346071056812378515044517816413665077166369689577202655464802841566126365831949801482089486141947164400213789790310591352754744966505002377607581014382385939795599146766935758356708042236214115182552934473541186540479370602784584508691058538167562047554253188907680195942826998377004589451397501841954865418636590119320419967387757304621921172141816131339692080410281170840665076995646686487289996769050795064363735178017811193331092050431765559585937232607774819398234225538781525350118532131052935861055589527503015695568251956689862695287979166730013630285673791778768989666130556618721850059134729284992493894353111106097267769071615237777501951391725602350755608712951905388857049641322000251453995161828795327139112088731638982725373514004280663817949369030509476314406772535218897849953805576444118523979059184765959688644643575448395672907156926364464655864952485482960055089494528225214633344573453584699969841076395959808992066875632668484216733092569264709688106865410576550133614110442862098999375379057007268728709909852099845821235631606382937899656247463882091566374106771545902333631584385382739721623143134816669463727128286410760358171709243875445832146649892610749444472056225980140003811499029843363554630595478201747147220940469125975188717762465442813732693149607398832807121661130354013554349048983360315877744120695506910635811111285986714654373342259029063072941544433946301370101510148885745677599527986409441782106779763162154443594904697846133269185720266288204902322121927874174514093930951170952990352573340576481376112617151235263416642686033515803712849897415334626874079123842047177111532513623413634055525559211242065826478396582693615842199238121704807233443423287302991432627328715061707961536132840391020062524523158988084903914655466967761112583935148869588697299910835108119261501972294851633360205814340793103950875651844330240942097819690630785680403800490856815728552122025575068886029882493879522080220337521780156237662302476541590110057780129450729621281296769099900560603989830061833590032918263641248917327778531749580221253165763305189384951266704714162778703697361040926391360386121782206102705325072391635529919489424688579018516547152894219412273406998226425399819435376241074414553066105632089658106617362013512938707387408866914171419869967264054134893822458483835355446983466837701390100823296179365318749051439539439442104999469006903648438862900473106047524847559584281380094749702950317451738650292841426031056791274285500151281242501162372826160444641946304209254265584475728465229298488737735793596060840531171430613492791446150847252563151456852471146140404730343595361129629201775365483087119541177990948169480871670964458195346381705448127523884544658578017254267743913137163275419329788473835884988474226208238151199367150444175953160225385202129687537844956071405827367455337915511578360492691295215254100014439279544011608071625159245182450873264396818160626840173956635796119558290922563561537389770289561252825025373712199991866455765140142837608150963917518276170167561988896256095800747676021921602775611798256306752999406827780108852238165247882967194343092920782984556521040663964197084953747405526593235760209244598509086570233221745309759581579369591643436712555411591485300700311781099485132974501300243789755296570880048945208606697785325456776705352368733362717715715137435989772926390317229054338170526265967449933077288223154867974680965865309432133255151212115650658256534595060304073097950534908447651019193459729862350178166316216267062683048001329835530809095376439330255394881399519178470420037485778583005855255079231062460899095123269337609544096966391878464668897468454668517745199018927218875829271359045907644311141412569056185265457066219695008365878227966522582743919880548761740545456679479483375295506836495235346443580775570308608722611780592260264589866212647297341323960814033486169457525277165137016902791260253479652065099929526480312220937299297739889530903289310753357193255023587865544333513565795908863240903032986053425091882166232427213332897893370932455759063093867469674215710361636779137187001868430739619671419545441202951205529754308051847450609589322241092681594584414003328584623957076517249872244793099776296519397610590115222006028032987171499136774676909292085760608968861023782038669695482470083977014140172734031036849832977598273826114051779687603800866415350232855981527555983006407136207475153868603364683146825902946871025863688199061269669798487390951385096264626612978966620234659133948695117121928515486080301531936570677797799938490589404732651014686295175783116826970488537739195488015166376531480881597134085470682089804348950723653885043103616723296554687387706351602520290303951888017537949654805177120427325198482445038953527704017287142807693825791179285151813955099151385655589448099583750641369273089499657392965328990378665366675412401532084741772405375216156232253874959254378088135514089330053929784742894769573735920430317582265994248038608520306204470816779963271368721397788993419633795466365565282493623938120172823914426012592373157962471795189132816190424447623388773941334398628410180072738791538454767012331727561663557766769550491554997021464382856128750639174412891759501327105219952441733555380641791959012738934379919328172268608929871139263430382442179233063758845683302578085522504817112933647647326004188775122105881521371810339991730434857763199130280305272287824061479844835051583496048825721358428740464994212441285890832759067886412410296993039648514684356419922798909985082289900367827346063706765149183806792782458901921589451212195223273801808569684032424101924673418571965678497670714872261444854526182455907433497564808313646004447858324979853248646052047962360108679897065073459442013078479296210320775635489526713863787838524523694827814384109285306119861430211992447325366738036584373246173093931821312913238349835980075020253589140540918627475353846394791002026843322749021764782236895869934218113357692693699698145492072305177741855073048319588512095359319489115123763647549609397884243543920365030234070543325052560077522069579887355114627955815447842388282222020693390596476605209771680961142356728802955468374154502847258087488013203872120984215226122649799826092576944216343589322643934600680530587421294002782066089741467908993690663325541980646534038827391601238885103620872050058030165904001101631464407266710123812435389599926588981251220046373296184692091094371385452830564896628930420288719471465293009153111977831046261717503850826666659941403721088821876209212313841742970185167039372095870511199006564749573627917975644925528856501858220989204649436083814570256440996844813552981101181143687982091801577241676280728059556240851282931801673941249535528455718017300016624449432972139974776920881857626855280121523873096294378383482237815659726821761722900604410547078631656752651455922673232398599811844401112848942111595706092998109588605861475943225176650522705656054480216767188215919576671008867365957058802540524130270087970521839134261723118499417396070736118829100574466927760851540757665081192761443096026867659587656250054323778536411301531487934286939391399505787158638930361032629993894700380508032835577865740843011341699694081868471883765279576515110895254572141140935983578439662646083957520597352811231006147779215466081534947675810891550276340230209090473398346637908623439402788267924392414589371706278267342272887001154459319023823570554025649509589739631035860576899581213883775315580358742055825263292507785978508689393103348756065362312089102895377652041219304525896936794028618234813877623196572125333194629712763570080565124101187671712125576527028621101777284569887212982085166464162820908519191279688272220882999009961038010179617363778309215173449185994926981828958946047869369239710426024551280600123757508220378902160581173151030170295395863662151595477558509601847387339218641799774880570526611065526986471641405172079604142019849288541476098081529633575855166268152359475833197536117571873585909215222798233402361234562197860200890765406987935481318509884049666850815565654259374954677935825500780615243866273580695217805571987616539852634592554152570476857260276050817972071450111289258940568097868397710652313213032522038561793993718830234943321600227208928120122308533302052186104479070086719206494635412377623074686953655982333315058587146633494516000751204629219699028616082457444263467471300627402298215604564607845993196487240352738187689780783810875908008726523706516659310328850285679225038768603406196619486415429692581441315459197092230074961216725308858035901637935618811545225651458368156739689137420671841341771232369758523657726179499590659728463610588112232601684615155983712096937755504764934322682104929277230859958316408932117580091369872867288940480640117187561033303429191410996497727749002874699749900498978357248015346269951543808667627576396619951709111550370034700367996300611211686142173215517028331770323895281739774868695544124309001840440949475154505742053988130808885706012050081220289904552422738260600162905210340743644775515006809183145708482940005227843863745595466890618829204558417764618377304404772177156429875320843250551952775824571165472334023562030354109431469859648848430410473613199374892870191446552007798474382765135900204826193250101092420908059662517752855344594775252050400824756671018988612165349503881995475595101441311109706937854513452216855943352569222978075521919337070011978325420451527647983844930553901901481578105464285402484720706191992641896517692403412451108857122821494653577058545430148624890541427189617019162731367797921740209830472825548117400444858582297296372803380162465144250096968991012570290428546408220149057760351483783002503228339593836108253455462028073592118672954611593148317282084958187555910895269161322861126527213324769230926125806388364848998009860573555412413334401959811918570209205342714669517742671526591614052884157280666106673829257726938008611905726867287979493387091443405736898535151259618640380659617979744848004159087693062744175409372180431056423332963134339604858788470963854262473177869712457918271312428805867118423808898467097749853431209245300530666603170788487473889928951675354950820918167894946319245432381599289183459011874360149728618564302097890651801983457938813329560334194554106064276757092686616919956286790723162587245292506821765939569895553704578341014905710967839502882064680249060344696671806103084732406961438440109468405151855380149247996409694533495138285492655429461265767751060647098846358004790063079708255810656830499038409387555337435676666639968022895192334329482120193026255278282239701942320469893804955926459304293821882188897208718485232605075470480841008210221951745202101666661358857356372097076564945444926758590031746007928348241712467950624677405721193664922335862654620976478801071046308654809919657430415820464734017144091542791491847936774566002169563566724270337857624174212562148409994609666427673096062667060859015590289076108163217299731632658494035435423818755827930027872875878440001357970412520073591055454923990742608222216800025918809929492802135008510039954433570760917048116997082758906476092105131076676607855421687459573051956729737248632588251576304673615271076448150269379939573013717610319262332512314201417929341026398904001103006435767237419222095491949608646956679454519689261021339796753548194202184509824841057618860333443908792632910268866139503379358404138178182817584596857229074338359941174979593815147374852965689158376455018053608746426626810321765148094043163986416908420545385588671847040462992011216081397427937787266469534005073431640225109124678402152730657219661408625719677026964662052746019309100066999545016643828837926054397738076517844508451005973716825456980080842409265604048422402373725934727212219833518138388133940678071751653185475682035740815291059296976047591184949636005128474122669777087874477387394009144260696258689994316941802831012198090276741563368746375863070213398056854165672829390049897611857945692583670339853864299521992692914845060256995550674985868404784869698451726862090106589613723379628589633044096182024040163072955823608605193320202196574575741425174908829128319374442305158224799422526545255708863351820035608922075034497954888728852194494977904322557756209718998300739728724803826185955851484885107052005179826677844266284538919934489539938328823603530099603407212017795012485840420158668262613950631711981886237652235057429180289641303367042120540129306251126855031913620617193116719881804954980354842936561560330439142265820116880774979713652978516358763571476260543304764186042910987842932825490211343399706222881218212977292026758399124883743747503832571207266148967401963944896185746038238355409497831361345559698296706724141208599676383420238964932468291758706050471995113928850087724856873051093653650710409279970993581383264954768675038206182923083090537823533101359170737836978707165406318234549043498781761663651153835161938611425050448396128389669505601356660640379167130554747824211066673667836258151094293486344104470264474324030942714175314381684900042701090299692432823488760667440287495470002586954424762015167263332359854327916577534333743270443688306305798282028690805027925539764345246422032429525919737176027749242864149115167817099921477544366153489053566447006592946600458506003421135214887492856940416460189197053559793138208953162866472898282474367923467553815477495984586850232760391341117291095121869276433985630472460791919738856000208730571715790595392808687751665697098046649301797484958376666165900199305136638142463061796597297243195793667148245398995537122724006468064471887471743742331643237865494388457992806610014206333629894105210377064184650955704886447295802851370692805173653173632726306147955694432007896065768717525309462341410823452206862536562709458335763541332961795826981499292826950018504152838703749411145803651153810805082216627025888355246488934301644131823618553509942763492416831083339846829314094338110967261115053526953407544110328773958155417151764162151418996283610747105704002000132797953297400230704108823631175213868388037231197458334408137300346266157911976806330303432604255662036861081637109014096122536863007058493775767093667005867963977542422530286489591957873421794275348610202171503386586646424138638082233587421551987906175483904638820927793235017179648350697468843243160032811782621687267892596268997242166742675425268007265773173903243533721686944944573622051067365319733982191322142581292318607339710826021717157069349392914117232306777395065603456624406827174304461742529256339150246447238197848742504054711631840808006655017701620613027343544651482041462173791962819750535864806570923632574395743343597276426356311886150232653205044772077274999301879926711452251439695791855462788067241870046952252909804949746881811260873156348833103829958288404928111709479344845993266453215636237151513587654625601586231948065487202491600159430593009062824005582648480364055123194672954599179292825847058435998478245815191563537944148009178932004784673689130334937411812322711818489276787275996529002491532144272427763317662795730642553116578690139728163079251191569665170242024673543392451964143718382619097267862015246089070073719179912350303949283084369058970757686787615876482697775796389110149310924437562043775260775319112947606320238666935528386715195539498691861245285818658496902559174708486317464722911983729778523652469759851257726297811338024344669070926144425975904370852025755086806655657480640794445327356590662417889211526297177449042530553435330879448252213286471957109878447894827216778766981224278114434053299079293960248465426249095970890605983777045331788685669399657333160644303167645122159374426885553940139008618607718643635652086659451866207792135654378408937795810800060869467984925689077411055063831202295756720730268212921531525243001349740352536998891119876868343829101659493286552435129593806545282086204103631487844301948540791174620513324268978602851929805209711595362395494504095493588954777851203477766609165418133685275337624544480526424010550899357674686386038661044616343026752346363583315772857418915406654667639260068818881740207267632479087472399806043395070846893657479905889638490011768120094344040934822897028735354747010537493998967485968144163690298566705940490202360395309707451156275986625519826577936064400277961491906590090296452379077803762328793873438765919621661686552891153231600604464486707363777294484853702396089470220953184798993006615841229248496257129539514110556284256732181602089716435191722298156498700253286344436164636483286175075918408975656497544217722646055348167942871635072755006815597587743699880277200738848302963303978330463993791995810228609140239668280136589179098625678197376515884757872376600052779777396562034606240133906883455082157930222335581564342511886334846842153357212291422600204985877377207054125956986037644496836458155493441179850150442593308743557927616994176493016118856850200244247516021854644129418869207745128698269351304929300498327704124910127868354384693586498577992359321927140032922432150939827398414817718654917860329496818643002399718346343379462535604651493708004136476793755300719418101892511480805673021693509961345017118224687458027971380203435628005211269835373547892544320845471534178494326187597589745731125962735211966913372711025270973281102143530792233203876208658575112252833201274296105534659238424805454704510188376397328966090060185865405672175333559780861391566496124693309895749493105445758257494933303089171101645694814363817014536454067142970150554085452828059610453751942749073532850758834626962990690097300331707542115852969590685097445548158832725662256268942831234461946716155887378325204647251223632185853604543265271186322252182290800712637548336451521458903856468916203090791410383841429553391054246383751085136378035218999308409591111666369291127273382423470693121395901433501250104130338625934132541791585042975866084768331755855601200174782601945462862392315468917679845549983724765845260578359855224843796446297010959536775298417085719592361527084674741571374676465963448707552202353416081556976627793009551312881432453738653113052003953173937030018026200304345993316244524304800271548740103290754569411821330652132802219781977764798069125406616854851622975157566737764554892028202792433473116167757954576794005124936913957619214436947780838159253977925118366649775232692211970916176718880965136152291419878879683876722621679819133004975067196299517878863610024855684206017750522411644589995103430697335290648779470757536213170447465063821726043404978916290452261091596173294689780114986598605357054444303260892978087710263968113007018058864825441351021927653213379886655040923104947551892003795216118539716834020258351710551548020150041407566925541080800231756016858732638740064252002251708208416240094507501859800590773527187963571058169023536438527075558661383317540932478752848222531404434017754725215244629172439770448882176897421576181623289347013260821743932923412632898987130943345649101536334839683320466410339897748512648621837205060966184882847421896579934792255007584264968067460683805280172132883718290563346871655062228914863845968981296362556806673201305074817256546899851108454999659985935329957505817038359568577720397535069087771061206452657529467338118064822722546775465266829575163239535689692758988193371037827092685339704483946176454422041072340109124472334208042817036649869690018000064664284096052208479144220866790605143447722018713527202106541247731898230470731485810439770477710790598217323189942964267096287441375329916873806599736132082798809593647063016215984188812339785568940332949076434078946619455609963041618190987909713768608715845433641278076491354439237423196107928515313026292569324383236351913149296824295193391122210592215867864891916235180850927805555689892099530759303664033848429567660219746747500310270773112602548352820632732831440136874842411900314742480399777129606628991338958491474742069072027970981327669801178293435848277235868982386972926508393106435650194856608653397057387477937163004044411739589454463637183783036924092152841420146366552398222288825807249432251968784307067138230343618645044453605375822613407354066355308057958177401003250338066870936554536593323332013892982715514490058552280731090907527680300558573514442042149734551523459250467533534837959960855488616416528513174908372757759298633886674947410289921839752102156492347985712210332038460112963574924758126569308843729831235388519007243852231506620486504755584677675700917745118563287678231645199589553565843947292022639581198949618730217295106789399746613513904491174789473982180123288977606707229493707442054422140524641342693022176223577834428959083920387342533541347134045797057478696849941427489586502196186382956347874430091098964034270918688833759115948313923450725677856850354350216685463750208001131813551994370446435338231397765723975253895629849154729929976518039528818839817720193953678284444438851870240471361972633304886236042954187642111447023035069413362432734340879556884728017058586022915888459753380852538248899182604322339623931007273143151547542405103435071658604374245768587703120096922239240725426006423443396823266389316033114641737247659513209069108884968008916471692565701871250494385471195905561818952884759647712556963880224160972692333800132910034844021049613626569068834205752640824565203150947212941768391037023311483423257565165149353374359909671401030274727186848919250169553002798574636839667573571686770628407447013673211998004983890237596979482551632952472237140769617953259077608704940165870978124514546013257652483889736998793481659145673530494447742276793421015087086144325253233001452409465388352365737501319024652053600078437494197423690464104217034713764634945375501118202983848864754971926135936486560948576704593572162286414849292369997606809795757486638940312800610707108535251495085869279554238681421534448230514864500637650533876325689157546915627613328183006457527570389877650021659988558327186028161914038762314271973523237610089769671864050438722680333604095867808076477916418967175775832620680917714175773663074625873062558081510594699133592866648753003629384163374143520644921299389032484882384689151816488623355440110497084134177388832721541176046195887882732512270049418826427017622844390461158346489399352121451933915181741388040986708312141561265272537324696195393247436824862097464092158532303519024081442643933705718023061936450496889116822883208366465679690555586364519652180345391694350405643253435748063239024650013698803335227584273398051152451624848326719305619818112770931983893862924516926834846397244945851584958535180591674727599396569038332629211262261034590561779550637835966100394370391910749041059700972915481678491758483054114230237884891127678281801356170809689572854571060340936876772883290763235657393622858698073535037506773321419049894005619001933797944098441721800859113985084455675311254413735750848167916531746078174889616069461422256260789032574659325990530624241393202882708862259206943231527530541698886443497191269511478893078858518828072154777108624413640916535857905429127290940521375846016464728887788354743722137316434932259585965729847405437373161176695972983388890906875433589018044980442498295979708831355535320337248811138483844654738184925027424222048113498605386815023692458507410517032326149952314572451238927387241592370355277425537261140379704771941307086376739398530034568717141320114483566067382401080853674027026060780352203745743171183793124068905244887399635563867121892516591590091959334930605204944886763403053904013096819371365496839399610947866290236754326336894233885375571568013800582144441090187589559573248515296638565998278784952267497652970009123210807044948309430704403524539506206381321871863949865859897248972933953683128135269368024573653163351472729566599747559666229184407207199822563280765467526727162208952941172420815286167976950110651397146545808266360638562016995987310778890097942842412832198772240854997758205674431680953925023867607485792814807679356420459247599849918296551291165862627133716813692799003457781240186486967590411261433190268044000214139440539855059218181930537539856839066035704943775234553562285949647859361226549791859848378247010750870180924293962086805169378441528627089904812728251008804287051693390472129974798693046862997385470438681936166753214437537575081690261938615029414393694909689473699611572062809597341009750563435574176875023155345957186003371469452816040120539032761597259115087504205714929506092667564120776479594212686808739232922177531340778819747236518811350440805990115763292839897866731304648547904609127794188525289899244229888681575598044515298995013708741702112391910812230451882991670270891157807716977974926358939484445279643084642011737484987168934810116716806506315786794348444618493719720948771371410590484663739981989231961913304764117316587385214410510489898601280994768762474699382896739391073445563415863920537793113010708900605839330676863908883670558916127127002237264612067032548796702349124683033712232484011949905633191466174028616490396573230756676672729331003938273806718105214540485119197772688628084520438526874696374260684098162036906288376396209529062342119620203973523144460304363259973568818863036455614235985779709196243757464272632520703324179559390140609422448861704108635182726116566099436719948217754931066817308945089346190933596819163664628591661760073217757710920567977695751140562728532696584102344188877831462838855052249044220577552227591740127798531528605762470350223308735569846506192147245789778559919622980203930427420088408825034442615791173848466807696930569311571647897054310215566657021277755321203147006975825901037933437416362662097193561142357093400305390444163672204057919074837484612677489511335629188164040259465386580576939298128099415549465721017751140480833282805921567891053288522736337892650036511069434759172258121877267273886892872152178766813477116285745357305535480616285110518447861891215688284764855097527914050284579582965912500177189683732361972224951521725474974764054326423321665972553775136755332519703529889162149686675368244060168488392773864059924177914978812053963939156278250853138181104826685758401407221621697332542095876426926507473155161688560160957714393330668112715963714143766822365375737611023014643863122192750245709386713003256301386245001309679530770277299182706769976070762033403983944135874475795337388475469411988798903477343951523970567485015074241971760750687894396488587170341119051327879106848144399796518977136831435129947034738803695344511511922103439190486344179594918693507062709511075488323269321111718677280424305555127695891973776533024406986094697265327609699752155763544887092147874873999403153039058159171165118700495974411621787148966881866298774261394576247178786342638017598022562034940817544864526702491130613504488256783922263431114652436386339313518910065640046852267203211566458717066050735606031692080158638336400889628137682304738839942244973230260930056361296944687359581735566103001815566163184700313114692145263251464451971485619797203848017261009209289800955141184380957380533520933268965689274025834532274551178827557256457000831704928751157031525077241673839240436999371038813156022700057343085667188423105857561674005232954198176680176474883120170583736426340292649532514740568997483943460156820213287377825850212952152741822333470768839765178668297484111907129020386779101266273625733126461736122558211987729748558309638095372894474801489905098941232331659430252108435692276262871231175763558189782903960869479377270836695044188614018161170815085011544490622158151156447565061369615546454828474900972791576804836123481860012222697244414448461278762468139704367369897875642374043355330733061254516810185954702142524966656113191220125652501172648367905987212797973614969415948809511107759788800546043133466152004735018272405147617124179087705384171708043915309660625584524720783565623151836586550275169222514137021278872980383622295490968551386099709495518934232800170264525193012103659608133526550132522603190430028488609534676826506853915553993877274641326075842374068605451776192657768773123153673446195561689746433927192970735223459082711049155458936267133735563066199809726048891441744751576363697910342848772601980470547868566567610172662853385061628192167846854898496053348514862120328398506216728765849850046237290278067514373024068091462797602368705728303753181497234260561689130093970520858699283729895698940087310408734326085843026433108302085475126221625583526401792240861846999562094432176257538042845270749922453924325957730672768496538086616799723265443567995554907238052806275952640682579904109443101172808115900873201787791319301937917864406637486870518176163108072542533080279294441415956919214043294905024665910197343912044666072413227739431961750032257883528671592052804606063646237485407205603504874611620783468019762536515838823722217007304836216404918632127228885973838264643118754002691579563117736006238315569549525217695743085696696958736514599617688684825269821598592777321731793569437039755672704336008019022702079063150214275095735599673867666807564420382940958580983355986237473446960644971882553871659000449239820268562634882033197144540278779643678725474406586239747564857239103574468824063359155098575630977196582067902181526431442965120316660309016564746763293803247252457305089943956743777971749780547509277849594142827310171625297687791320988407531122087754793268051327331803421265999982719879917687875355777488919481274410180606857699362567127205960296097036121004754823010690400169907779474160182600717113611002566818904458762952056924629566528336378805500342336370644981331533553788091284955663077170197031334774973783574725062025664739269860775027925175746197779822053448722522607286395701089348821609346387384854764509864938119771305572393832816217202870398549458301554717570509722861935538171969838174988225331965424605583373825646343397264564506798451082077430607400684153020769129758064615323642014122953769538018353510194330905913475026255732777064050674505573843142795660226436472545249782045413977991150737734431236513719723312233855702833440661220517671905221296649512790431540264932539977234053872739067222701331926838846733146835714651855618603245166615779051484861884602412683450314707643893802605684329132404201168455174031689115604582136509575692244180357599562411607691778700094151431991757941640553476683830378495159935643032740494507028090300192151220709692418175785321055456273160294980754412047523151810347599866323710021945864088057619790688997009387364891395757632605341551888886188139940146917209191021874769668803793588815215336954998083915783644390149983943616854315636217252378406304499357628959184020596658910800117953553936749280780334277364962228106191257463931491319982729522008891037273003670547390492267120840082333209418994987371828537814478312810593585925969181675888689760447710973955299469171588043611767588015848085694878557181099554187364918589757038723660073849245747732821104639734003309512576578361295897264036371552417840904424706441689465318088680674799284239143114988751020314481870494662441743471435536682398104200312068399909981999108355218470374382316532678702230363415027962445575627490057895333605015035055313298068724409385257437926832183167127501621316049134046765939545194064301939802640100609895776828431482993984707643801127611185390919353984781291680698312799438712405362053494370012086803628675581859667065979067605512278030883043702738005243330656624143169942508707761868488829138803293652369364564570412709933751169553693005244365272582812564923952292896344054120035704952612241338041564171610908396934148223958673612144732537751585515787127018935511201832893392862490965512239317088600694265836833703084061362548010149679719666898500121064527985032123792661429163047877635204028849588063746076893187204631947319019049532260941275882751518941406367373093387393637044249858273877900344127586868792886451228033679206848948933216648948363705668866569470873271165484406297130890803606319678210297287477570300649029002596549271101282591239243556024262972999442181607566343849663746717043612868902844369201930914260964330944353282891735205677270499767192189382686787292446168642781841264634014722632777162302486683121407088713885302435417563503825066676351246788704539520166859461866633904415583420770201366391879917508491878794638646924112925978642586201836552626378798439746056767237165715365464333707716892676225654659310479694917978266718054067506503178675919780135252594945942180642554144432767114567555762349257116663159444267231589198757762745669107332448553834257605600011108605183705772638602981917360406595629444936856562050956797269595061161065278887017734714257668040751708761683896364234062044606981489870977623254087819483678376169154616544917919242406653899268649816195521576639936280522303593470174247743962459904070362460158956164532062140490606220421601476071113905024599707117930380184286388372645658042265097166127853515563674015055631506121367069886688381208723844409776739135766916065510704413801242946259827033431048801420323284265299701304953285910009052259865197390985671212807090190385746367182913174849823211786218238007042454183644376519777280489336961657448950067058510189527941002772874421211869484443093422820260797338248457486383786577790728817899128657915907337515228104388416040991450273521742266570183793953935134412269096574021839537953954239815090280924567468142458520349845997591310017649588790816273167781533802257123560354056249166678638941446967245550928874038648725184133841653385022421479689812562529113972568291945440050556082913076174322086685820865139042570387514854417859859798842727551630481758982957919894076583813915902589994789115074650561823936665751670600290808779314585694429800244023926558596975679396580690892048086839497368581152420806284109105856878221256263047326126677978237512101851941336978098489660933531059494025982982507983925455459227314669892488093301072269142378353640536444444080864265727362551402253049376946108943421478994641370108370900962571750671115458488252611860572910607048203847353687609902895644871311207294922767681835784820210018699329033937187931554258972216041992115345807339353701404264253932514410990068231062556654453945564915045445743399247742348062613962034546019962022228423447463508569405345943431703484141262581899659470160995791790549867639157396823458762476502314139110430642569309163025293093295872376558934940098933557792742538576106405553822592348488881198537157587425561596527017402293536507693708882425915101526885025540039739049578942994489331936182492783523125573424544418053396702433231984150343096953383646134692706446601112168302376069050490473064011809378107917229673000121567575653862482548208599923313472791657172137792570767957796465453104177460699552224798341463150422723982701802702609173898250341188562173567594981552758326375950098100948928937709956809965317034111371083661472066961696605970510368670534456606838215956848790159417818538353460184950804549489305024048393059728522144102816507816631474801618071970852804442768850715372202714634652616412372079101017487902420274236932924928775223903526709364284160389805565444145431483110052551616231776690104281641750146504181664309313196285558044500455441811051438161609402414490719732311781006352696304078402849319886846664676320465497658047256631388933652476764191242056445301541313238522388595569154562061349032958068608458658632492665787798014801385561764616376273500972218060824585704826645309749852170089698092038049246015186281049752372676472648429171328455524627629149265957359817308820554705860909877655876233669014697327841543996595751010334678111759355668554651835471347347905787661941098127750700153669867668163655618797324349162529260206533845719651499603778169207284223265140318155482697362965949227369919445567637903876015847466307306928823632068570579930030221578453099185959689547442691392969523594773813741092009151009093306791189962373347793565690503917066030240880018367758036295362508753037866092572257607093872981072694508621080270148978829094891086481484133282930334625612635988119371732992712336401865219534442544763699792281103992556805759493522295083729078209424201162702825481309839581530259260381771423781753476221268550658441306611160650505846582174012761533341470788769596650533336561499860126546914255453815364523951366256888115416199974051262688795880521016075626586518177004473787937465701212231322220402493776897882551716308805477842373462333144943512391050363344789012978267182048280724273219947948012077502144514876069257613985784614813735880594343368475666659214428726275258765877891446232626586135519128905435425685031831844772423932539499939711794577638075591006679517645561264193661492178497090997963352285457336032259826244948133232864111840002602623614396793093555518919276552272046746833175210069385955301799334022042497940073243343614633216077508423031074513265756361082561623709042850099229688643959262713004708068940124296091640604222832772274967659528136707164555984413437179649875088747831118397814070046578064867042496713641766105630414278770438638549143324660115674584708305229324260978199681572403008147596759813622223250752103133773172847974020669519902451187366338344593070980873156960798807275522235396158093495107201590554542278157920537778228843599073796224293892578128697824878093206686336567196362628101946389240193235989402167256016307479132926760613290976361291408176231587003013577186128849153639821531832683972909683168730061307288343731983669691476993335796431740946289353232151293580130882359666765301886575953791297030271493014125311370627986857138874727203131324236464084491163692765152186260306181163247215982205560676276702508481921497590640652719680632277034953661596877427329956628469629318139211026262019738138190586764434422716339521567286837689424804626049746696916622222834739754533597475595800245201033933212614090821202735050724946735777418278427754288040432637842124102013228273357737986298187944800368728130370921224574849952393530769867142861397981189709003901230265951570609401109525806454827597508305337638705067450032438009817506575575889112708669654792549883849162028261452649658259648051964155920574850945748410026840586301689360237639542070961380761270761429458850063840113890049442922719500190618698351386856680367682525734134482735752338421024306316105399587875020688744487838446509668964258783288267983676722112775985539358712028885428297471326214649717820115198115212438033185752774662367010397193250276041491140593273481070007223522755427076055509231143731585990559756623257441387792324481054458291739368990992802912446440364199572918626437592596424364322058362276678157591027797385856104566356008020504024315049335290063879005908165656194771861283439889490711240283158323264480127364345023176072713899885310332146987531761908006140015930943090459069954038029025757607106201923030275106112204352369069531306849923697268449335879486136744440835895772139335493292162496640293841535944536569616736414679094047654719931517173894017644587744432547136025031209106915875167781596045379678974336835311930196550591374465836222179264487107359639704567902464636036721022312535588587339644900558800621968403297977080855490777213973532158118395718284164216752098351075676900064024405863834678047862046389962698548522455262143871236075289901963196570435466662469605362603588957314226901616055583667720175635922819886342833246804288707439902235826940760941080295538532575332213081071072412159379688080092471077127379937853129435426375270138714955592814985953219914932302380816547751022766710326299272090418766050459528413184083403410486918983176749373276938124936568993134958890543056938585590653582705754860995505161352171753024908342414952744483596718141003308334841456811352965905876032707978705086071207771152038554849761063304468630432528532245544455776276823291583559441389810201440125517045977562746921102716342604035979488292153143584503346411983152693542283776724403539575392521318883807940932196170764069510681107509766046104803310425988334802959477628901897238160498073513194427808890177369429462880203892218223514735712977487800462309757163788429447180930993880789479552871279087757343432142307579624462671481748515897235060170160624280173723181595476238378838414778823015946593723326206160780299459351275763927649617603845351444350016538806545416998525954014950159765674745008155807456011997581997015591668926516077707926258371423466085354062512201149847748584163154173794955162375005189380776508392515245161604658721970175910559339817562997686692704630786046688940020885707535184348294057819299585764275651024648623989683194350783975760767639647914307684290589139241892335007889640185134250737510685330375914325402559289131222521972844556283980993459342414546033233751194020444657626567212732187053981896985284594294094094090973077259966238691683755236826437403691911684479552858854309658517738858327034400071776039672441360360190865128988306656857328158181345790944771196734125734894168558857381096079741080756023617058926277793939278432548785489090993484702221970736906823792879953071954606626678742452107977076352439432626253103732939975370668670539165882892746615272392532057017672754514434357092317424550509563822946482006145317362492534531325403760333737235608708511861749278862283385612905945324852021632497757823869693925503756169612260150794563155568423157764827020081794427424972526543495206034272668435577291667394668461345855262872190031941548432663784083778808696573458628612850646617104965808849217172244144763250764010849517013618828613808904079210675202749063922447622779630316903691002602048872406317319101619556040162772083885728399010649632788875197603864549071284916314923090739448345476061068678049981921357438838943742392608043174306750203898098810007299975099585242461311458370804795352719459482354338388636872401861061314077511121855654810758923550773513400165394507655257710411134984952600156750383074132461847606018968045181201582554282778229344909091942486360110513663413411455035890469543327661340223075518439910544424592968295706653914790070310182686546555863457483423062086845926216467570869424073875648849332454000137495698240563411267763048143023075886137686868941195183831894561573289104103567474333198941221259956693716211887173357296610120102885548503275416053143741593087337537872345937278982781961184480176085275359691401233831033696672199990781355379740713323482638439171995874237798721097722618606076836417352699690622613426504861899449828416675760120032971129046446113887298907692678867066663928748031280578816514082739820706680283310404973129871434805624474157308137745966973898853312548794115151752944236370223517439669412353631721256819715852918771585143851401450454014449029338628341318463669675903923579540242443568888278312452042787177156225522182138698841759014474315283722784700873828172112198711947707527914253329667780583125541182073211301184491647114316301965996383963201586681917652011759255907142875335018615677302199319589603381165977124743717203426429994437032031026627664043632818687194750570503539435912273179869054519942104174139905299644260430674208479464436979064792108028238570664452276238866217736100388259239017073457496330619093564147560700981180237890529557090177439309763970604625469791695020164023414702792069871773814530146634643409543052504737709692362801913217647890223754122775519354039344492638353212424685236354640195151805555999448775071828171876497793994140288138290891393556443655998348146719928880448180499129116170523708846379612844035994564955530160459808613973247188621031035483631676402745428254721983146369309851821540073091233917139787576893167532653997570544866534965848160976928904449138346107282828880252936774126267970488429644493092834854482448369226308688673332793459167974272004826125921790717239976271296057298404121049826961017916735339876609856816980240042451570769193219751643417745438290162354680002014444854557807789467193150344351236637357073561753676273649601072569478941444520365471516742191575952176267686041478723770817012847918270143541109083948807587760787424886986944758232478200783525782842078300467129155637681695872318681672494452287587456323885652246280045115595380256020225921728533418315097289570107270053450758383891131879635282288505854631507817704474385679130407515818365963121662923296702918420188215278289355384283706198756971939474986110081766870219662316884186434571207355600249974038631513636501322858579007732686995301422916941141590291765848881992222689476843744415030769077614115275167237232279498104504727883360460166113195970288991802274150576850793579258664538936376117603190193897600715280294047362653195353273681579148488928206868192724707713512697387557964857381105121431092043068893665433886019428704866811217281859391575644626376734351506903282446844094117656818333817607941279158367913391954495996051014284204713705435361049580180627534602721385543331473693607410139218457685860464822473821274337055654423396583919736524737195654344231860496702491805347198334848152981275381056596971661047077207926992688671184374522565761174242555633612798863824553914320234133316303446881033397516248100389712263065928854124928631236555744579437177698366294153469466145618523226596454402948410203038079530536644850460499517603122896079263597121496286848027773550462419151768478606795142382915020598849386907218001628771355862560432801455283985314404571169804091361290239450464486565225434045877888892043615150414973095254286273244112331662148860256896491071863523496802622263914622433034603671417590966672064902695147362660076913917560536995565745821386113022993259138976292999126841909117890462260575361098389221971015093639646700143048860650324399157024636261967894847916638398920411243888181642470321448292818806251867507589531027837809546585408910910011261883930488511953682304292707871662351528139142602011230878010665030035959984631964858466039048375336741963006518685561014678174572862352484372689038966616471962408793391518318539211512573868731193430242306380234791754444196744159514537785220880566558489681059131218733816546825833553719419167444948286156540530549010088941172970325344224868371145978230914460118573746866987236146135061302874931620147463134435029969718591187606447701515618699120356256165422573575916951446049023583385251346862070749007145807060205085797179669940517416537953582896442779468218799106955400487722182883357096045582528090987902645023560773624870025132338216282447499913338021528304400116874020582419399788401999847527246373482100217960133408095726478885986525013523526087475026683107097184793002954035548065452515851711406948760393247923076757005880614809998025063830650427343212471576197327777165497716138412754478782943476525624229136639581948283583523020921445968685643053607439231881777139654559078614105297681283504619644073020467610753306404657481891342935513695200738464175698121144172572093061130771255667754852420566510263786341141872742924978313305451865857260784322258386419056086440056709940616543389177153059961594167414096314527982768128044907060827971497924848507338607243187680792874489969910322611746621685859078448818960764106209989886126101679955958281612246098264397250795697671192793374819432399593818800273352424042551223360538866561497576465731683315417743147185455107248744008336547757633640796610586453912737464493113538186992368596679142948733621542244688245022364611410507617818851509760608091536742583580972967456148655063959888645081191087694640572550569868097850139927191845285482714443106698269916662905168784839911163902524371603722423212495746073428120671723391643028338888200916761554316806207795595577525829487721962523580857780166193094258969265848975944023382928400331604843291136223064587077211638325495198559893376509524864390990542745728280632059010935917652315100649120023932753173838596590289553688856135768416653002422248449445167241175485095327014370134308846200025909158015941527803158730218063381186604671702779750189051737889951726124060967838784449117520166996719039941943391217899021585791819409646829832784249363627055871337773615728489285749297427171217891991338245965541401687542899137663211239249748488551384346398008336447084879185250073463891329144143022078839452251975466586334027927947287031680648679297922472228076902150267418747636920753230338090075176939237677229103139776758348600892872497350561722855047467210436722128340412330089320404336095336920061681366394195237321495011154869925467626981912602948432381942383269852192877070111783331053828473981637643168594695364378981907089975963403355593898755613506175583992405808759958637503442907604531125014993516254325654245664391711941425265819135814735860230157998793560978729722351558375135517124323997245499426548679869189100788043032816832726606970750412563060030578594774540961780927678232124159317972595731317424886617547347596443148356990540181308518327986536671198994489604058295101583747803383501953480189206800191144389041655717085859392374145685003915905988049126757031045115917124978043299931185159439213950807403866298487565306712237585955133128091653896558709254998246562974751978206282603378678024081241509225962546691895091963881243122054639725986334935714278404669252072252540840755488386638986937732026326003086098642081984807868181846696683847132570765296502943475986010943983367148997083001626567586595446434352906010890885722104934822443226623599125533055907285394352653010438990981600305641530412276161473719464819138646321037067160944514041134338050376574787730475710202829897146053297696725944828452214014146497181353601797550746205327184531780100780009913705264345875907801563186788769199511326190705486897626507266706670279324313449844653515295963066378508760696753435242602735009846325319025819736210346268660271516105705909598772296472379018144243024899632471374791619109343954529944465788775656569780553954230367926650093488104380337722795289794278026571919050321034124802442594525466899874529187940841502162411406657644985839911584571785699559383930230823877147789550925566293117257658706212754003158168683600680572569952321841738586960467494264578643273670563471680558749906099333723866792604218502655497714888213636537596996637754936331779276079685012708037108664802259113686067234809002602761348038880339868053976128166782698556268283470453622693702512904673179417698307414508118520094731886536783301949023311932695200427771115465966529895145980821159826780650310388949187099842370897420325809594560302799869288002348136679733890921527981516437251766308919451814747032232039791100497132304373825961903084976064414518781865145707665845849557648398705995543946692098271556528308623256428905688673608004289406642968913048506882277523547378478320407679739516504023001625043090744919901069913168472648674625710846995897044754139943162263833218601975883055394515372348588932225700834124576151079809250825947288152706064299532790759699207726939564602263697755047618411116328975894374796437556662996585055111994893863083252626142723648327278934137907566825279974509981019883329916703996720079817147365688472496366107081248744625747362186246733148671767276410013254383919261402872307154049440824149258508095337751623064193015764179816913639999660479937558758467151465055502204734628667116948444253969360853917183308167437748300894728437190076869382798120476941479267769889148101394600338723310894045848734253715303840352289512029600893272153699521257639707570048626689253315334833827101167860924223597374617830445992956908492020693300548666005270937226869554517473960344392095407074000338612684413162863774526492550334463072619946734663811458504868315526642421065125710669530852682720953952108218290221740103646670174664912734816950270481405981724198525650696175167577573539367476818576119231027958330179060155363364713585259845749537253162438154054820206444194267019176178931277003264959311750898120483066412221070104892046086262735362585638099024768807871898264299620340837063463013620471530085897331883845931648402466340959293300866925406719197221824883680130196182107728661558516896432866868182182015540318884565773818065659482989210997158501331521354551521551579026996411764818513454915328412526729881581585232349387378284022156054177246347977382248096380843614560719969620868745971981061712469310734030091947396047227829068466351899151301661892017872074613221792762954963479462186383488667422777815560626598534224782922452401306000130322364021862138885320321474085085385806640299918349432285246974245767600200895447983543588647882800344623734432761004477173109423822748746387933769398064744443157723536571765350131572779540274401404286706267684823043511173359653898013912947349078216638016289200596365228910859795218436748287052305153460091670028332248021471460819109151754318415036142344003216040371710490219388206746509107590324093881186220232621185941158444410081660228454226090378217787490260708944752471795412904713366505079111827754762545028275826478548193692125626025273896628497041565267859587782062294828352632268716757996586050599924003195185421550916248760132701502774828442762318970600014802301732572483340300199402639023436447006370678948548159012329012693228639958130837035787750145378976093766827580656099259198742804903315871089856386418107206735835469204730641993011124008882259002869175268928494349258366473872941336315834394992138187051336262822300733810214933056251283397637863809614128439175124157788170549624336294683682507983313186680143456554888666506442575714114278498697019622597261332968945155666175182403455056019739482656196714982410643318770983009229130021808732814545421178981594276396251953955632919523148900238042547009290391449481399229042532245872592608254054725064947497493499655776692625778561630661965023271523719784823717249164203405927591672241397237557526137740370667633668782491213384016989232131798018206467286927431981680393499358967270091373602741717530716890617069223665422632819715779991177601379288141949069204195294640977665273619976890876426319489013142293169518071233953172331018451037643895442575388122777227110606961435308442411578140581268941688454201254042604158316136946070885319077325580553962110659366269628767362578508500998268477630460642822269108335877203084984299652296655833829284622703749240824677800616991934967789985568492408478523966408319091636418460591016896919726012333266207967653590732995637022617836035355599787210713313413510847438456987147122052751223630535484958091977911275039671566377488040256273643930182404753806210374653155194964209838811475157432515058529168295286281450769213949728634610246747278010845985402112969239702921017496568800552857830410887124865485491810559689773354813075068900479498607552336454809511622028757971364968749402914575746304903997980999987507401470716392792331486928069755094076969236602800687605184917656652503980853225644888478787603667172453399626368707755801445928266806061892280141313496574150269175531032683027334642576288771453216627814454975758748575082455776815194457101359347333659605749031289502515609227617319876261786585471534901511841461102903075345685986636615366724599184434910791232705956195934986394929039081304590273302276057147885747878075333799744950270744975740336907376654618670317604871884643895444420434483842498435677833683308816424857265627686393379857014453825909071564454733360864689773328304595603918936377258166947932267533628619255279320654002185611737836120892868667996740003225162932891655882329538378145525264442155097684622409157243677812345692670273627851667924953054788751919287547868625102891088709275174512071476669618584853378023946824110450889471299070389055803698931014362234096538255627212479899917971252002585531508517528231678812540569928224694533350203186081358353903673695613572089507703966266757458242126122203784472167239132732623871563424917645916943439527409460631651355692846519935635865206102093548340117668271343353475490732035434237305354757737783636470944124572557352042819791465066785331503446896251058310350913064511830527934967278531150750193103062619411659211432098562833066645714007428036757784340786080587114543537762801822965671032236474301089004397337118909899617177160307354907612335472995324943134704452534099981374925195843891843789714237569860445878382337752420336891605507245850981356772346214745377906538125360487800117759201341697669521486708406633389462446510249421297419525891486298071831285385704117177034703334926675923988860644963552334144976230842609904258020050514001831512026006618778029253224984412701022956250206188341108605807263283521510778103445903878607132170890064552160375987495565356015771861842381569151751528202199759514329160176011709899449590364862250457974461681013749926053862261095722956560556966945659088048197251664402149435721231981850864591314645013991893984884345963406659789020533518813351054248838034058710303287546768443436350495682878749625701720498965651943361426356052067831754690017037848739938721835014029545529613308714861659036685865739982588745954988577791052298207166397595555622535294924130281537562049005407338544639231889508625337509345720251780796315359479753769372616095199439135065469537694158946148539092484729466953967823444284667209256366174078231603358500150675098390839435199692330464011103054320672593234568634831639918554235844306726158486776201950629375539587961194843915186409063280813282017284602215285101844780652661512606471112932361425686429373395875643450300260156197670140198271863624265164420624191088591842888662167619544600238905434452980095870271279528499356801005063620073412108400800287049604520477478329658161953693323849697436366705533250359692721128883205303781844016425164900385237178441841033013166747919411114559369130790041273998970139671710324063059217346911141241349131260642132080810253197167166107041431508285131571997862023570700675614661094604286952920151476019238742543087833348798692410156014658139104507651440390553133169714393814207072327951365592736708666449887067664334511114281933948585115964774716867984705018862166797659838428112389880155256836915061424241633876160783069028252563832580299442926413132244995847098348631900810927275828615692644722931521567352967150550570159555746817292998539440598193107346366016845903016542990727083561399759777568759905463848141219626664464581738383970658816605045597084113867012915069406206097741341257858807673129858590917024451284308557630587798463038132997224418847955819044452720523859839622662821963096939029321025348204652545655981459065598468762101269329888474281239777488183359899433787407280066725247502517215843380442734656933355544205065790175102313240090545803298492632716519708168010031557398808355193923208935443008528765067967278302360180795059542556810946158122408332074500066423569225518280789208588759424685290638251779720584930747022890795717580841207031662558030710136489325368532676294933228124305066468580142599042999326113561623722520624019454772369260472221742797290384183748426925384634210268889629306223228365012887862669950835827110830209554755781029301329532333638583811042551975224675577857826899637941843068431886934504624436238010664302205378105490554076124257359347097508445864455336756373338810882713016272952610493402344718689545676807996735094730719547903261156272260453662129245298620189406883380994610734394342778509793596436033986258553390834802310099512753681228995744040731088385014798575052140434483586611291976061516477743921571504526216954275367595333290341426351045166444083626761464420518512760088878366610556767129356151902494697583008602957908642846806240203038114912782911674729706094452431714923299536578720908751561216577526401214499526889860940445898047621422372239858040376774666265556921286818535673887977489902852439111412434742247783608685660993576116709577562520662125344456882299480291440130860193597838465737216445057758216665033851607238015132563121693208670470660308130321066980618685435052659146666506072096912739459046149453557977941258145927994452288234257274378642337487627573850308594716636041881820563121027978405324584750553539660650817613730366459119894730800188366364134258882766881775148032195069094772743860207295157088286410115172343527704719889812179830727786541773134255071243706260416766553155639615307637257829806489631655817891855144652016411545804134129928134734912435645161084004525559617273440828155101777517129830179545095509648870859709652223272891937413323805399404663976180711780033790140564160345234988248491389452398726072773285204499857333763398385245648555330924309222393967075425335274008498444233003598298518190851067108584174873375603013850880823094947737554981546452762493211037704718367817629078466966398793040837166590829821891460165620484286391779084991728965948199254881664844342482295910983453090810026614008026625353999203341513192271040169594587116441968625967368678819074575053887273032457542501221044449532235396515360835008104372862860678339112186644055900814835069554967109353056049895557149622281546416137965619160679484431474159725085526077890356288113644116326098497424358032460200195643931299528794361257948103645669741201481904757472456114863410015458903459773763610607492818740432849123211923291090212586171128142997642701864058984724849847423849886925157397940395640065302828102344452524716857396191525118582759234838624824180281499064333481466498773172205303293083376080955821049975427085887153764279337135050571358920994557441370405562286053965924218195014301684796073050249085578809291419838092269401523695923463982011411186780681157237065008326043289506624190905000900402623116379485607924649866773046858471126929474230585995484460989837615504277601071273169043771457693596952296925779656095959143089533322117395147291338572331386417551968901858515718636791551616503771185197078845746662738185686878486519841023104267849888737893845911108988988100849814195899495264852449048621074776612421844011715399735755433374018738173214746305214495218572413209381178577281088755300810099927996430383265510508583424677057509047558921424453474303117181781721636672562662557748397687451504740837246955238619560450424541384041824932737040123746095250956575349294856500600116396693089877948861328512557191807350026499874211251658553926806849348789008083572816754229542186996914119605627880651810903175387310394764448706433403786564211954668205015864706246981317976292519069195515279840040704527849234541799510416400073546036456678854811211769757504579969516599422975254281263712471401444962593221600340689451253062704060998305418325831173560246405674565542680918298387629356815013385288704846050431187302944154317623150963460923837257397494920241598873126300801185544383193300726390300192801906839668580687838521351248698498853612743442959719925318661807686256134554875817894979057877111289504662589266101079978770050728181190118930859388654549510678776222594107134296671076122271925392006107166023376300073171291907131719520142881300938718833122260373513730580592668169142469433711662357168427754145688700125146234771992712258438442838706068139305227560281725804642390523491390979875921222698675123282349458087858758403620257247218857608552835311330354906559299794912147133929355391912919872253275552800716575006459004940641726983451588817303305473534352583307632437834381665201057354794744868946376066179534054900209438358435842249926579195673130248671329624863618066998814115544887903248542859303508089519973950929188048792023298347333098735918604758294673186218171314564588548986504920862953520264772575931137135345881792093776185132703305553129213291756557896792136235574082266909904147856079154161942319201657757903111807101743958313760004623551300974697875645230374552468847578257821052115737219530983026057574515059299908274759580615432027119907371898034360210024391435946135230261734781817360501583202223909576141095815037126703395443320125036294747886883719953980707757992665603409466224964896831807373599524462182526589563131859426314475562617640525917691338863488943207646139702425889513408581517715187642901811737592182720508609664633409953697734934997203240268065569691841320118753072810228732649207995642400292346434720811218374582124159814491195953326320401771858916688003189717525456244162179195165852689624117288588085073277565454557905828990413354505522155642317087124620470452511092669985914001355535971406315837566739514922970718661701976192534959908830064816766768182905302869504705056967657257209619442848553011622918880738808774601231619576918123440981890597933556220204832990788378083436641725297500694100802733080778815608576254256177888685550600175258354793466852338596881924866656642073203265636786838514288641502697807912986745385302731695545377577225926415324237527782456849244072046503049783050813196592427448555238490221793469029898733826786797679182203431734876486583593259729840230155147901846817512710483137461719464040742751553939656401431867737478615641090295184763969129809110025478056407538871984668209307566309641056341296304823549480632186137869120700749172740267820927139089394956937534490872910553812033473706002447327114440810426771764175405028205466465973621879305374874669276032583298081561576831526562585950043798780516924835297578471777763609051156454524748286352775887453663576529809326943047849569392607244583400445972030571375056121891955936925862274437623680107377460431806328717341328936301532436658459953220566451540316718894950250022746275404031454038209744459910118573822785525863603971873445402569396404116042245664941886737237871539753848350042373890431371274636395601239252949026064405379958980655150448171579460430133589926227274052324886667614497227356771993606683063820099278395536646664013994264015783838590055024713495472366769203875794199009840653503212478416236368455119287554680968074066461811292712350012602297928329724577095487528671679237139595053622833530564157157785875947660496929054115518952235383768583110230433490527569664951419118498786244226015772114690866963830117144127549003319697340718049046466888428702230588808537047750249913612160394457938159810572048902810174853668556099793355050232366051077756198171349528298079264826494935413238163371909734393405214512068438675469061800474543334898235983305780437895021127201489742074721431501279606552851892536177352732890242682121711634516476627449433728959479205527798079873957504080376951059949480109465646884581098956720162343468890544722231567229930750916406254803710564872338486978686681608188198233236256441391772032945022591163898448206496344712528660556939594078663683604656633683237221256160562184858716422763973717837404523550459127054387829093776283319356274646369762888434248462901195602348725613475404219924632047576744353233613539328380209013501830164349125916622281712275896917072738462720668604283127853305607966293689314414025789615130396581094442649431398799359734495612677864354900675446780218718920165474896721950201069154175079920085079155822896111203883631504559680524935197187319977231921604792648351660974073293793462797261929495356256907039103707551480031258264713918944301842757877763324419912438354633653295886827743228683537848192965333820093017537264879238777565465746905979651675284224555686394983374541533938183116509684069011617378118311491420295838039619315803281734606255274338490890609028115225749827115069318528107517776233316662948714185662424525980190697558587009019081566174638663992197648592485013929790832037907242874282192908257631830134552787987681702566547713174753894745472255769879212636117872297469924162860532212361419568645883527201597926777550019086388538158901074085755820728037180954090715033240145884279448451409788778434056624826064698203227078027094249242804550836323084408802170124387692759958499976172570298602713574628012216822369494003470944665322166508064472848851248979691994537002235073255289607362530050344682153904910599837511882029933634577086107222285242370687779567081161696073541882630030315802546261747526052509676124336426833369802548096169932579758030837385576391234668836061160844194493304869180734064537053234283854168705738307201044806010224308007084957191987049117948668664055036662493252619671913894815078556916392957870396481779441434028024522419381281912633808287753619968486380128655428689608224065702612345332430793347209078841128530185458126097219759708923509020624651626882561326410209038954854542496712595020906591558495361080190136229084335574520384721143161485169753771041484459688122200731453365854612551857158732366585781037927320681786146000191137390173309286314114371123206303591732481669152501397576529826460523992736391478472720419487741837030707188851411736541408680015453957334588475921418931567590169094830971231039049860513931028890205988695951672708316207189748377563272988623055029681758614043193373162823705364961925171371148639260325627649469403126251126769977846788032950900047256106441792999209745030010813341514360816506922851535835881125463501544177779356062034685278968932176479437808922046118971798097956626023824000821498262103600226222206740439600422093587713076535438096223286325450491544516633814720470089648542713987189312023236996904569172107577410881939422660985255057907201221676351128642153465256029936422939619755057404294744542820723966486380950782989774500630005398835097701602184702170754336662293116442042352684146867964190290863480033102422030472830009240605885769769891931102706419993130786914315858837923431438556098630957321392561530090729894092632507928221439713773763186722634431947676516285489998166651625377214953168896734040987664267303116551978152063905790973941786747263592818457707356001014433895919281572108749320905207158108632478137645344111793521237087021692585135844005751837526679949580893645564762413081193385118232984595412393276464958546905606497836296415760816241052001867208624019155275783657845863517551411850166378037675931988657079657699258002358669002933207770430878095721657621499877874917390700095113874971236310587223519989214101659855315768703333352546587217231351958430797909602654096838958604561912988539707689985220400917286094476033714223264186921248290846226793254529907933370676467767253373016606966195114686810831474990653768596344522022789582757490353766521798055277103441503442764432830718921218480769555258043168648576364665269812233294726438800697716319977499193906360695813078145842423722898447746952811412095579182502826787042277180077820353482568999179024623228973876451411674538974863114682296202675020038374633554277942618913709616827728416069946957909518838967110485198268234969426185934660925096819478731940699892727848819394473977898635947301945104277524607281211742772971200572739281684034308039489159468175570960559459439498695500815237061431719423477022613585707605955831909311916497348533536906414656992487749338783666878540388402543851885962469250370828494980447634172435082948346144586142630344233103462284712086503866924136097383952019814491035834438175384870213707016910245703933690922905247370619617904515308293175480966554445224158305308895945854346963063137534542154408281290755408405700159868870798509780083316631624742524917394435440241911104448003486489565705351371026139289278403226714492903571652595894995378482048941095636856216791391257909034546288311902877298801867696000347577745816432976724333610915875785222527793155994253559454937730703136774759687425374774610398464116270369182282949095009563154362896345310670536937326688055634284451524601604096460749650773689087701633938666540953151448951225907213152949179558861188354916186657533852783428292563101688016067556435760453950284860674604869272045516474622004622436955159548514710295402396656788575018188131327055680009305030202537363379525684814081217151368172215898230545185643879455816549876590282709010405172782759349052936376459547502202614113605914171787446618215100847695648880422354462040938557063498268857043067583274582727951639024662314725271581339319928496922228219068022922166915293417175481221618740291282917190325442830064546111496818506273561053732556256514640819730523229787705103737492160976935467928352120464793733943105422751525328273232045220491045839264665146501042089054343054823766795491762719317129589388427895679821768041793332162323630657006864827900872781077350747128174300682982537463935840658526026665899790266091743587375385092650458345784941687109962568249790266310243423936975299653467313975434965397659968567153351965432073391049368925207465930895535867035281682594875081979751887422934635962694798898461541457521464822527955788332079793820944483066672084018882334725939087931166236870505719479731929511377730420863932234144922056344174861161152975961013160484510742538335742089580024380263354695262662272524255485421787799300864680332097723974432432698264946504152281309420230348558750954008364716274432190402202096447552473606098302115101465963336322364015099578457243245581822998433421954255402154836493354017262409931050552621639475893672102859927705961726003019974840882184291230354373446735049945956341196949152962462382129579915516582865907168904853263943233932584785287828829861647900798109548048609521340279436880764258936155357087983007283056972522393636516977417073671028714873055309118850920830625143715442500572036867723638481801172688507544168658267076031979899635506997808867931977108079729594918031482782364352924252493426542557676385907563567679563673839627151519486031477039086309123283322982183706901268616672824507911433411039646628569898319063956744285632455822158028005087698186586769220937193900247892534309855311958345944217002190176352064354243253520235488311420194348234447611316701803163067836783133763883927447751098938995445185225208693306018274888481636336642619590758108787308517580307542654081856901333336372680109106926006032412955127315215305955418988325077520762755777599250641016525219407480606744934801304690523902785164036971392605598276992014417343271762403508657920291656423855407188378653186098322799784393791076636334996802376988985326419665143649056298191160595645673792360992337919347540298236754581432534217159921606168857811430148651850202189966010284870249742489780516115261234650093208449816530070560507766654042491185586420355594518603334886474873052692297655064115722639170456918271197834737637224261428393447005876813345904549818023861637214397971451515264021057829334100730935410402961686844907185654441433761330003630911113480560024528983319459411212816782079686204361263338530963999041959690473405278779805045591612483797164376984874187308608773609517205440229253154071298195497571359969823938018834888069029193869854479236732517703135023889574047870838444861428837279742451180360480021369866838885539505496495538970713633703432737640934244748066016155722074567798101068716054313581333936211155056559729167781215535187030327521930353629905062680189625219271902119520316812990288905633652214614709425655123657014112441881575075332676605140862701006733223118939816215182850989170606024023025441841545453982051098229735847591479486652793308608137317149491666660250211407521272409568021859960152795134596380671492385628511106383591983457960442498573240454883770557923716625192797125068492713428778697485350500773761818934372068714268771279668267640434161281776439235096591571882966717966057877871819798491583089615941602782811160885007207311632475456968012018354135470818277002075232465927531316908994415362571829423032443980164901297318525393434367623055585815583699596503519510494208271398445422558567806633791595072403861994785327902760755518100687922516340098156641679537465574497106807285831439225816475336820326201531664741317738950517600406756639884226059603374530505587916081540884469582452850769853302657287571937478314373976751557529176959755036926976300499445518466934651730499827329202371536054053190366092404506589822635570793279142864775335013974568164952350904410973668476874661933108200274472152947731151922674321195900239886691189175313005174724504005843091224986096520689699301622817214659278449764714197004712937481965543626945503209416706252061391839200952638946202215232499704126415100268198890569500146252469368361519991570250422473035433435399119573564150380645791123523691005263448762518372337108739150632550417707945027728452118355152308379333543083954924058678163178804070349385480217250120011612388866578099233297611965404584198183543994442179718861794225726935056458024267221086803110938771357995781523432648375117273571360380444861474078163374679663639187739753279147472437749721214981915482307862597349114164887892049525314645052938586010022217726426844164136001287577650455907319303300100538851816357322867533792491192415848563635545819175547745779851255232703326145748487098134707858877187430342423639632326589175113435560131514274266966421172613360990787167743904727933725121276397983003995595787866282624232335816569986194833941068999370529511688734735146399355081778225675795908935499551430729707445015788265652648170879120618419028277732236198458601510771868757520393147947074156351533075561068849111635923233686953444014272812540550318748679157777190084948601780845366114659830531060912346268506349715482591396939176014415509545279597098117707231605661361137070875585571664121748084242932128248136287055439414847007231062087600966170700902731748737277086970760124611432133936882208313795015212754634168169089561110501335392074142921995706374376728344229477144647799704874804164579485213103712725860458445369010786936268794400431165048512884643420126086067147889808390410868117481108091618357229033075433341638407612845383077759884585919077476996207467684059031616328964735338861354933541768434231341227822131618171893658298410186896148751250294660479412517128286945251045501751122688359530818569191139271034354967789738380640536009486863913340872147940840421209361691098623438740787761390427508754196780225272508798369521901059286408570477555745215351109275219400829977677719537391097594259717410185009499603397233505766809507136048719220888995026283962558970814740270561820879792812325848900909089509346128029561123453220726959437952226904961510101469831636372470379449205741585633657004383451671774171756288185001607861746212096993201830681482571212104760314136763327020252643705886909246219520113264337473532209708879031237164695739040140800160710462999919056357815085940918401650637811478948962623403699905399688758367745624715153892941319838510118957136579172034249834007437419599001182139994736921317084137424106829225651773345854981254898513666109015195181401583132485981897020949080357593690058936710356344032284827100002889423838938786821502452751869926038804495239746334274167518037059553287867471057278065361757419780055937151621184984895494635731277265818310921964880284781191550535468982691774133520035450139163779012315633373520104866098074931550810379786447335248846328816401140747477771694666776401962191747066892575742478889253032795843359563439153595202482138560387031853493824928438634862583345949826708453486517721824678085960100285442117416935865855983147539202974789582533039514115577372013858366596374151123000683506850119712065181989766393124255123887706909759744689676910301337297356915494766813490399103981598696583510129137514468321260980688890862071763130092123581622953512214620167961963217276769031194613251721022911071309102479723971167934694798778113196159868507692196685520819901184212104996164676842189763852869373139123225911705454655544343199119129362188707233630141217968193305953654993563653289038293217010832646884212799707031489821791205822195859886209123707005139578944266849992925273578040540499550208695908835845846079811123128826657185166400843527777189028485076828253076788895315909324333555573284506870155471713692575065350683903023894646962982495275044261856255712514760570457240883815396975165422801568760724182626878200679721449656112413664572115371612225718958695240826391744741787931776009451303309270336579224193196269520632205981808307150933420803427163423799544345995816415750722361345062339302898726675265577136756071895609145791741646442220239204362851803349506944875746274315960974835071910338199230198489578603542576994780756359955818602658559947567433028598311310401714565824624905521500427730318532437554532743336553646880286616860386402786887190869381183892522665203570974524342818919440022171772347592977009760278688350745709942967962354608897725816851255093033019956682132573386838137833189407821565158582573648047232011839634405806702038500561235076645361033782205815930637917066831742775058386699187388855082590621799287661905579471976178152392880663253025619675769293259383836112553372104941514592709668292795104149295873233596942879537040750915337885745244129176145515455676748036254958763352273919528939742688409648011625985905661515553259759041311139590101815944278364923025695624286989674363358339380068171523382168977145099191684946931032542815636847748877717257196888232472781661993769119874855812887505629450906015373453186773132061992638794353012531517322484112380772175729135778569773839179759628535279682987884406893664970660029989617584597897183150252184126527796482631660210299094023079568362812435953310135658100122640689106875740598721411986981896474577465977925876902565935820730629557048660069737341285068354005467138663186345265837237635094195855118130131579053079611567854093959777603722752671331227241184265721105480671202353537330063119484812619657591392137060311077244581200741174091235176007131606815236797901456437097534379555032276931858351688474738460653482111957031676829155902128104953444883059007952227011622990908532260423692604061643937976017732270469444674365772652799897928193455236374065608604123949415851431318368921385350338413516149951512353946979694791043167864472981408971267042000028784776802517229804577880494571389366119917842752961311285956768334104112431294798020538922821246680994164830963604613284198631327722173033796422693964293505031893463280041806341129051050513578698766893019965252035040081462273379893879618575804500026151424885024243189442147866445591907029424156439194705395102088324495369273017631434662733468738484739455121469824814358028687733732628925842620357809527785549611379612394048885170748399617061563891582612357297328462598442244125878229903760756124901641641271648146978868466230771223247072243240290274073352233291641340047907544032097422392360603690056637560772533013595103972710459075960927110426924500172045832516653868220203389756393127903888929761363244878944182470090145644776203470952992554306311240287913737011424723065382835538019584607081710156034513043680405967291243588434234679452724388679497510916196682083085718856587700828465221319134367042545593205184706050983159330501913933846838908774300154839437476680239478327825240003979376302413509299438780366305281909368394102259232669153486643751668175704060024170673058230274788220790643789783441132510075261093711037822751174789310774380944381523767392173000878543600029846558374785298620698888196540933643403494613452583488292603950446015514045477447413307237107717001948164591279923802962273752024577616766051922878629774660872933141453838877943918682719596543892540354483163381703695647957962171530160374330909787003963518638100553848164334376673720526044676433760295052941160066033721771812248205295663460231514863242216961937759328264249559782382204855297874416190862970533107704327023402358169144585823000631993569679089694522862556687082609650761072068028642372745210507115614612932325483925552490195833709941735916226194184310692097914206797780780240759068572676907294963914333052004959298442847969602353015449747160963156240910234305835424112275796261646633689944930488922328356171692201555719036987336809855990271828604081144624844466342011327788144967478143409402208079459319790525764713585832778403959483042226308784568072324524212103480780439565758957223472226335245226463120952559644103483072929312710365836551411025369991556148250108869886941951800521812449316783809704777525583504628216984014108076729925569230605162145900887318284960627276991737836578682759986485429868384756481900717834751336725403141748519452702967170032859133775086542002855100843028468020883250352464403835004385729286256395413359320783744288240514941097648195151659333135047778820768734189929836862186826024945392793442042802494654257509104910987964854414560675647487392984231056306225537930968402422991029208224173929106660812049326619765639977747579640601918293637369690279787012864754108082762776008502650872486942291776163954048096669275004451306934088166957040465965696366313767180397210292311347953203339631899615386208984657473405918405750862241995076087280172518640211179914995932447494173632171493122314757540199331200563387797671420836929183504592131351320244308888524706609890736296676331869351779503342226117069700901807262892511400080065501362157167411257418197200704413856101828686770345928769076080792110323407863291235679989411360770499102105232566626464731351090434793346530716584646464108778139139841981237168556984894694782289051247295812878029698266022221954519027996037392117682530463635823250970135278082400462526212176298092306574831247763228280947148685806513210799504264213708054912770051835495858266882857787309577721336361650833445080425687340750042592426360533060419170442935089140630144544788207162168404792119360610357962462006919340078050425414178196071472936908999875433967063583396975484573630492170661287941879839998504032797848281085051649897186482608464263220041784469264592482309852041445354961614374338091916467339918145505219878476696650743657546720588968762681323254669690689471242645353857985964934875220929504230259380488259316257122314092142681120275039193695919695645517174730482577067240556233116241322870496481174278171302790204031787906395268746061567746072756498905416520708468516834348127166308607564284028161827324622157844766342642257240473853488370949247708207867048739306946463878469686366647197124949371022624429898256922281155528258805846828425926955567996508524262337922209037801786596467532803534023930589840423716368561351284409233959349098309915182249410574630251251318952008238925751177574301100927666123776332530893665974113538958327017808510537493679275328202593641354415310525610206321975603368435195964322545897277440800147071167999451722172589425270332607165391042298352251957470840622653475235578829899915236528905343963295002408435412233061177300224390195115889267270523293966109483014158146668572777816946144994375351027738141369421158381808655147661517033452274691777239747978622924800139349457202111470127185738949963526778038004931067483842820231966297808742052454600970072029095836023621826081057742701679318103504144352935305061529332782698846708539014566773745859670593393144711015715101409881212893656935890551742560556832804877228026903851992045598314051546124522343588861115189831883545771150399820265117899899418810258870383183504363344859731112068854443574639379325790850812648842138927345362198243767538435843060608454905871858572149161424772881639453965540611114901944833736294656558463562186981078688322625301010365051451786804036332704977629455851708117389501543383083637643618168019307105355025427197376848738488354451600936295584500840818581230536648739091224660069260307874100269809395335875266784800765284602632006757297991503199940031271377348346673541762143100074952025712217808239846568741213299381256399068544137315491209479970838582817845164975411181184548975244714311772704850653558121220436971948172003675919743926408530320711980430787015818956224853138631636170096137649383355045974910653229665741160705324949919409084193179967943601189897544600391425057321146917684320912969746248820436160535549298096388167746937964945806183950379259502876967066614863670133267698532293353106906201042815629472688657358635265873600810450849895417673497500617566604108096048074100921217504562791290221753866023058453227204989270404204797061037219125681848887418107805409180921518603729262364311452480546571619309135297401097326054755381630261970885430768062779838499587308742642043923820342585459924567721539888644247760470608410274841869367182154414805332073053767463947027619446272430489979781744130822108817410487128105978423360283482849285095136202858281455462662045731701930096085149242187714300815720648393445037037409245293788885564166758557560908663799370370414664401924994674458091652921959754766408408960684912882971718826930944930991551971009487463556197187798411561956232071082006311181925198818339339928926266669667770164208403035396289779134981165763622926554495358847296830220656126453956158946872283268078797416656944137021922517473951905693481808702393174820775474346733302379116119921775126446106432506008859119493071825230580986144415194828309191230787621517631277434826199897343130483586139217069801644169505522169216041504239589563006985340947235693699297730971344771825748115750699685931590573873195443649761635982304950836988819522450108926088646645038817313745843173030220522944928579380920711903678060755161804023723728765507422804304470436950702368009293334948999667976844311792669843936281059787008350523329598851227032726720571968273556317348590064961709894377323217672527349277007126875666069095154872963925229971888980785858784336259967632842543611570267371208451416416984834947809186230995484049376831457515050430835680958414553224752359755479464615465096994834851403575643631875519847529020871646093036614901677351371608267670737713456033311165221639562036534817560371425266270745271118141682429511695559353452684032557138314974001549150898978677897378062146852472016671561042993834219528674485573741875232390863333357397429550229238001891109526930434902787549978757973984091936079417606457912525125966641288721099591487778121903172227382203483430155931998363464510213721685192830602765194539921279510885794317764494209000165068096439499759212812446787703226626948617029877923420415566425135102259983965829705214868755551073756068620912020592550756898557603251074396908778312183953521375103701966007415646952847364528298103355873740604353750025751470199625421692570348856193641498292889037422224756192209874370770466242210482139304144262948985592912605815864070127333467441252641004867533123399859899773808555637446151160809170629438021461891178821574562092455415156802768264147954129444621515893705627910281447306239704119186010418535926711315004180841688655115887803733495154261158297047610678096066942956223596884106009152024486710393278171119657559724337295043260665948955692981993553523017294403603467496442511360591009733430972953093763790794199547118569938806697519690135551493816316820767232879814794826860909123953089108028752282815614136610137649265195825197462329061168391655327821776769919553385400018491215927492498303521417656141262733502133564041058478605172290300402941930900281601389402234042935458504263815405659299141047661763254182085400876335524124242239726841415516901774195512092015532192531401278063434412096978193311485163603766761798605202182884474558893285889862165639435724496011659485462999428805752936879890581724743905004606327320654308200456314059605686558915851771023616270633600034264100695777434001896204987374584955368446732374750773076676159052756345263618082664774862537479363209054573111025532764077693570262290286753915907041243534706532069001766039810165691437763857886450028783887297126380608833132928321433618170924509865421890136784733803704160566113680075736700713053281901685639480150185424195678296634892904882166184031149016472717157762300697633491651358227710811809390726744724182948792165319300199840380511168610512419940792534939381430264635443182669890889161116973064762391476633493209577349143016364962149928327113170100582872370558915766020323909320768390370919006586225375827036489249286979081656729053739116559252174737217501260392453476784506597735790208090731061868068132516744563179418121923196649985859550575425944742178235349124513743537866869649005026476144268876395142948630579124468618461008620549795352464602203429106416056722819991803487110614309797150959225964987205225179487116711333461405771083054334485489080831473759325800490125644931302707290277916334722533928838365737278775267940535626091662827990469929031768218498254764821272205431482997356737290965603818698252311784852910956040001790929741745627509768084561565892844753825875880717759205088982955301868883532084456673403953495900505726002006200275704089999941850512661557105929106069874860193118393541211665300402731798481234218918388178808285656759086182215936019119852062087954443966878530888203859250990566780984137676126697984502486066563294571408427700509128122681649151710485716441113698676521722649629478365711311139076419994802708293729271998889912452922424110178348759713388525679898233216026540291696359215881407984727420079714089165588829507789368586224507546451504784314642248051047559410288837290449070128388657553201407993860386999330945104374460382857715210824295694213510424010276207755974732592733514935474664868431032787126654265263683886824982048171901220953580852824355709892040831008830413300287277346728254549762976571336956625315755000931918561271027061976717228125554452911682303257310257561200028742202847395537598225669139585714183685397151836909032305402754417108880890613705801596165847096283141516233646669613119049045628240710505994709988366561008147774947741676972391756352545406892077188019610468170910666358253875431406972756134717606609490647081796331246411503242032320013875620158624862929331635333861057204680387683610060108536662466606254116306869511353763379302492368478152763044336698888909420794686465266633066082798372211720164873676965710306655907694049102941225294589105972353190768273057936618726073085252059684265361980598679675840689335643329333964870705655761102881677231049515729138203106305467256286398417898423615390838214910838912823886186684474178834365902214691606977660221072862040234974931014794071336628989911696176870036444974694609630072415580151685424341324390935483109862090458736295690852147198446103251258801563545647341397659048643034495478988770216838826062934251741933768688950442747099170937904296892085566040798416466295054200324683937499542926271019150024342657960410853587965799201103210079209304593734921744112750774040450145700199926326996022852243154996038280424608476901284293460065636312300555149660797633071779041414772302394480383863008684973031894323628664785043541922037274695638577954840140227660995446711961249801814283076180208009834745285682952584553406650498094789221695544927983287316754120256586585474129823659894912537662651056471730216930607036872937783697045921590296201044680622151984794049794706658626628813754517377961639753621290456803964290706601774387062853503609153584620706239592281665171318170413954875735728638018137402594023186821070020701300631792303687218361978097165272624423055775658202865428655412038485343970566518505426484513829718610970760578079900043009664453078693525840626811824742607315171240262551570016961010752395818053119895223452893487073237261251387815807962543488520594723657361498913941600187809382512670119217882470248261322377225626782037587877835166570628835019734882637516887239530658487129910050921365585438404728517437403330163619457915469720543249382797218141712225227785178997226652341083065338415157771240689095548849082370596373621245173382781155311901908792858188280550450202620747472748552329112602040870225689595921993225913045197247705263725479755745640328015114666259257157865092927676140149892387536774723860161195550359971317105247771775220641484247590742667771603867912398012349833140714739925327256853572331266468769122135084694964583456986454707307552068226557971587861699131964026872844679087281693853962224836242130121468503064559828631143248709865572342695050408131031120858640622134615627780357349146470363698990133127889961857068068112269427712107834810868209975211828600685890956746756336970340576374147350686488101666047465514121041774579176278777324724971394081167872321520185048242194774266813219150056689770607313153752136839644648974834875134555803271642446702855691477779570165496055494990549716019128472504105626027491968652397619334333239794906321223705718512053940804672969801510046896595599562874973187298167913839261782516774644179071032055859586287797266629866828735783669741003418679496839483421543359782218102988727620386703914474132254945871361728339274854493827577500825364796398122450356802714079689704510616689534964066914194469784525954577765085860324641439505395433308180610126875182051628021754848352857281163912954904472789997418515188630451526435351999668528452162790859380724248613686162857771544452017280814481214778138474920583944773707398097702351210345391384356106368091854791828291877450260217894715060597621662880167447270122159338815774065207353500937556244895609742783587135268794113997335172363521243027259661051341847023946573718111732881641263278479916507132525584266147142904212708004411719366155501456351986383520005236035824533374472950517280924754862874221008623875671180163771484427984212239144639496578716794943395071427443749995876903292369613620662365136141418973237892104096219225218901723519601297086070406799897837553943487207600334680147896915080343513062019382102626187098972723869421720038762836256121250099005318343536561820669756056896252230500582237661858033327922434636969355709972471398643800661620188205836741372500905548970442565400025441841596012659104702753328008825979878074829046318723768292287527390908907746667735387049994754491881105126962433280610153833215204028673642757392660323207427666412289739213144046914321366601538503943643518599284511529668442398403537308059333803598657894908144198017540764116036850500326078579557839532485131999847712738186422265278601757755117453749768833661512304398351272109578460722769321025367019969962351230700752545241080936934005519193407873775373542715580922520816271159447545150685489846367063270586026031446413518534311070916837612125671163619181000813011078918335946600153575340138361584635986582869800698012483024770353314776929310686352531258470749389391501113882605546842569138104105757243878504737895946628997745616106151448134560889700763045952420916296359016835164816369135462133698425234640451245610460984055758251642631654387099564850674005453618770058374954265821241540564583861325718442458371450413781500240434240979447950317227886523276976654694674655923104238568627215469731299666668251697581131116183860741542774623846369909346980454347384634494363960353805917882922046062530319484587963307388807063891601970206704967230412631906515182836035876594692629595825217397428233078183285077131129358250463253034073930671855139858556776661178694763431083545693397794545835098063844346185887206052032956144106631582279135436356565467419632506161953455334198815431024708755110373168705901531397476321373458628511020199880486616888788402082219036241750536946546037386432856018948583083727844958057060416529666175253471236086622046972074223470644627137658628728446123356677224769638693239470825199307776217542201387571860333609506087437521586948044016065289409642049280092206891045854783157721623957601954152404582854774509868143496093420534869135580761876685493810010623982178143197322358279414182151586042136972263258359643097705339577417638819924931850675046786808018880305544259338164998702313214755385733023653074303639812689336440395939573992858435012953970633440511553830579558420700611601183066362495555407805748803119612672204666052528257644933595149036706670114997885192458123527943873765931454360726773953356330452176771594087177507179960466245330226943563442906819512498565182291181412247641382588190533990905242927881245589828035895249449491813724790279981046119535201390935716199668776036904182738612122125204029181776877446575919791008877461573107983226603002226573007154394931954826304601186890571486878525893189625821899581605006159839712276709286947243832536560617085362398205619659302773830538828709882737007151055678372989104268941654528265769425849064687584425433568847162050619903646292080209722591561258561165311962405413535487235942358157912015292775955482313597196649265055052321087652314992228635241148576837188630013435075963171579004428607902283490347529617931697096251643029925344015813957854097186440069970540006764153087327304234415850962764986916579606627623751145260143677750095621953713924295241922710619745541991652358311723315871446698402252599404247683473134214987548839043727220749056587845787917687891220011648863589366141683887714230343629721024048781136894306938132768619871999460917877891515930796977814134532101783411669415323338180273659544178397348974810107665577427393946886429115661278906408869214770506272767580348131479255493433112603127744289216752451075118802443575482089555792664318283465651396104188405249132576768546670188330451027060481624720549567905532154330020052237350960142889548733975532363773244176463326989569758556466941563598242044531453911292330265681008129887274040517245211268489459468876529493308885587262814588260778875832610325636381137332329035967550210077841026222505124102203179875318803614031710517598463879197769564219032055907371124216888251553738775769894419019272741635822536308766944005872147403054400746178382687520504853763005085467175630197069131180018164650226056339100357435730085609828813751259238417564189267165032003506744855702218144777179617770332726613632977673536640268982509431981390853110200179018534453523594287389060162070769883542119487425902326334535676993684674832066652855068685751826727342304242335406544297014107976357571682253482333151583184125769329491507771224628192123245881371804737662557102826946954146724978522378030937560063608834119489638083547463396271882313684045499955286358801423591499451620923233267014120758512599742646901424208151618603699805785220865309408211225115548079889576708223382850895065170607110725013931651732840468105633472295029144048505980168613694943539095539278850913525797047086977005210656328338789396411296670686667364397859517174207830726185725239848807911493244543126020149721631629987499697663567310971338637671952170926989073265040322110034834939440552809313269026259743404998188547752494675179459175948825657388507152196389327266954756571297445095600459666718835875941447500780833673325639438393550461183716343762244505038063430992110626735810003547979623098917620866438636351101376969643572688449584264817005037307125769806608985232951918401884747285869147403220081705860743950984354290920966047570895903951912902572165829643254568756492609709133249111806773533275160867721877849785490843137896346957440100448730730277515740670604261297935700810637847141982662295137507702820764463868418473794930046886512018282544463757124530000669075614133418953418290867012184732016977416721262310877329256154973004399152585696421845586519042416586307889352178154940811589253560882077987822211351896659150052099510037066966050164667555594065243301008100321444284954742822610474985318108792724146805827808695274630234546856827157190993373068857103320388917681085400622361403609645134703238542457901449346947412403372781012815758662499614617059451315641428477715788533785645397796712560707111814393420096792800567221183603254300173520915459278939894027684341481999595297107256896516935798539860449310216261571565984679560948656186394402704763861223010148409582331832875074892048973535965291796646396918457004761281108128846782495847255980187795861312540437740778414733332178288366183027681293035731848695185426215640447110421347879813665212880884905853389594926760710669089750838259719620425838321249333791428167730634376627831912200109918788666670589066545144960370902499772880940314707200521873808559922314557527477657201129797792947170342558173561477916409479908141077449378341384545847880730340034000608411661798583641788206601327649435298892456992865274140197914830549537220075270280705103445521770105692520426699936362471010374249815744582981382339073479380175711845532908354238922733119845006360069663421285357705861800916640853741311948888796362990085519794401006522910055839186904952421562894930500780241125519136669251614169437775099202092346040780422301441966933116606587528101983283035378760888334637828479412766686137336988327597377628099492239240684069554686109648689131717743995437457680977835909269083461116743047287113620191981255903411465446144990505310708140290977475849018609401272068719960748343024935433771323018693478970098571642657874731498729772761873213586668859075121332337192450137889492382908393590088527725434389397499499679640129172896039082107878193757204216335606898337529702941142145168885256686931921005369044377832393803596898826140648408283634307173482600355793062476004264059654125486093678835286311879017892645124657964509518579923120740785411466828640848029644755765306291152116919818080049503644271919645315564577770894119050593458719414788909319244868520223302039450296965967639286421584945345723075603624336911517560491340330555676187200065168696348553215703516827140672438384890999516825569750242318137104176234884771164733515585915623629725090467868914925662680671560445681004826496793155693329486906172004917233810310789077052353074825862061358118873901331928761828542944854087402925020331109234625260835760234136666982137743453213174352269617518180404643872406725838299105917999565824289502953099733306954058708083412730430201426000850114322520927671201415266895643199621025419219412003234098659003688017735920532499224886462239834918249983241495397697991425064792160100478699055059542371203300687731319885999238734871482187176993596544888154061401788918239976942754868778659257432244468006581487660954045055318856009640592585341217561390052005696870386202751080053470247516024497952616683291650787482494366000810889419095186879328938732846607423820046673677893517413696227241894237466735793630005985935319003402057329625267321861460188304654126254763774697229431244855388622679249609697291659919078050142043122509148783769670765257601685418160585857780587685363205769863035407534822284110851703124591386447243842230729768092684168478468526774322629732770604438708850621636859881117129986770584874097305009642015912612370839691982023269812318292398996870786624810224254272805054568118258470447302055092601710381666410939359694928940248816683310152208887598152105431797244709019470203105670897554246242861243046399308062611510252257522949849447503263197758562636605146723891218410942477893055695308802048062468852336643698839689801727760218374544235024344871924322381386307663063922941423307845928317015138321571841466127327868732981677037757379264952307946908907144096579876106668077741336585769108654029347863963542408556112805823948964142294296683906777222031779652354437515675252540918726594909237088067841422518848460675340955759152171949650143230891221321520514351410495340354366251347926038041245051012290281291404428646697396268241583854116560644488505924996499217092017827847001662050329323410634660629729186642606014301590725006885586425437749919424733137145954405437914036460339847436009800837805773443696321848161959975830205835590967232778853140091916804105922854033184625283227855444854192453931610016171537741436602668979078664794146977309577035149067596947938421152035292772411948515171670880871935974930062575177371211701871380843242977319460967761703791568686798699144631466418814496620196276259980591465890215899068683629639010226714754858665173427564084522713805785514684052069614961729693100779279871908532001939287814192678842445401157139742132973925140739574143282170666306687709422885146190726815176257411510026467796021477847355574431265240106058423874692096446366419518635791298219596719695931051720109274814922559555716818594636692058527451813665909086753682866914779900296707370574231828445183111680688493576454899395856461878912209299157817600179833889509724244917264968880763686678384272157588984444385819954288045743430038710812976084935103101837885791519001973855192991467163875875959394581521303867954786772176138682959042395325533881826924009314654554647214802944382211943971010220063636600985059652086928106786346447977593211505155333458260316671433031905296950645429735826692601729791619742681249071292819972728137525552211514750203169955026204912864007248997066116541919225450829464666275589673831108480321464453993731087911186912522343972531543683150206829097273842172567823224237800581727125754348746125820815566337713895896851346699324275994441114138708331882751124714829357622843557681990836869268145139143792382852482023919556036233873629656177923974622465289413323720234576486068403033398948557549850125409564789741975826848977281134035764199658304622071372288295762068968564458669080838380199843794909844280722198733376338644475688744381314131395493395570122679133992987174389379377515427677323527126598441057382977484690661452782819961911183026003793462674361278482116334929247236267310452381220730545768679508378059591692390550472562167810879317709344680215121248034086870790687027595953464855831319422211704187069264013279686406851304934193694473639125075474029551899153265377573603737375640980310142028873256848719101533799326928967646655087394990587293861466315744526009495845916829240340630497279471131001822002869759972496975728997286461562837490281552965349897462166553445606747036818368021695866091125933590709349406591807758978251404726037240851739678521410438489254445776287225433889772836128927681533101907542180370427020511760097752913806547339199571399543835442831365653404767121128004499291081628650365951628952184540362315016393891501440982255095540018369455546810731294842619973664891612740017374429248954083924722866324177651156514262750681831213609511848999718682951067958945902851359760263132353596901961927659565218933885965725376101486732116450415756713909822657340804271990689997992988446027860539639192822049638543366936340235162633008670463405337227812759308743112103459459940538619453918945513946556175092753957825411341516461738310831914940371244268894175028554019143421201861322707520360004951379841150282690521082893127404095668089655286594129415494595876317753688393099578802884054731611634366856158817731379903333697431319465136210818924497480820161450640399649186479238771138839610749878867626214384487252372656295323014094385723387291110884189282096058942060063461231870708896631312554052758638427686309659049827292111872569650707935861251096995353489075641000432356366663982912182008517275412721377647932628797274113357809211956257778098600052926739617522998674219171384177319302821408946471453690390597954399847480743000832799464163325167545665615750252959697795043747060215046981005384486279533768667705613927760449102025816221634295161257219885377201804166815839903982589901663356746546524150800488203854473372843219043624165867118789100808300936672859476243342758070466738592963703588543648876778011372810562711080176695939245354044284368699851946730034327746468637820160892329391950975926797074587084185083166078740511333168113352029068461100354634953869273794891876529326560117948998317196925008724669611870194672197587604707197042339430425944791704351061127706638000483055438653190065625457238780458541924057059833510592700174947802031195835162263197703992598196216998514080106101950648836982413252923275655480734790097677404999601351709849290468201648227861024199235518352367849475587894940576650991989311021891457907265223995008661422033726606569530026553626857386352723465386105738406620983549362157788651690443716946580007659251354811548185969350965746910531581979219971230968426030930950085797111497221427445046792763664828143853490225307095526578159722918743548900541574710160638921202991060626121762337895001809398442836599732234360343958861236517800422845371347259823632856472016185040562484857507497423628546191244303097675481210033345698231031077955156425914705726693476862956542666926156209115618675175877603133454028346806661907971977154561541691054640393595881088903470994909380285367356994291898239904934541513329011552844943178502110556968038814486841821667179029643778007948163992270209377283017129677359751845157581894194860086079558096743230158125418011421717094913978886339779097624366102939640906605068061565641878089859322084518754692760539251429934261676317370329593505959387187766068338459260483722118649752125698174562279769444463496442724022342933570148985659257848048105788309817837437753568220006459359543752533938512635648254632467088672889855969728719097555820997757194040810804575020203853307995843168073865798478337527894117940443606091067879900716710571796638520352118473468141777475677399332298368700246034619298290655487436934099842000493284883842774629934074087281017235916266227383643148090851015526663164066592622453867829078165743061868532112190665011439376787382578872893893108076699465736647364109065003569352545478957281748992461672096435826333016521709269621766760923853287863956721361300445923809028013184254155677075528222183571965334485444782007186401946815804755348354429653103033849304357086004930496154531982549409751846520781630215298412008059103250017327657960598800812930184991618678625328864911588138950027874365131985232936591277922467224494568642065733973564695841636498205823601901292588498955184292373771160335469882775897193830922348480264928699672648700741596577790043340424556490063621941570802665922186807451153044921970070299020878014006627217298921060174238906290444441356463600055474292628612754419961275088993377645247356409146253300820127835606795255604217808887526753271816640552333147972869873555968407269395070359541145200500978795133132324012623859183898529096297351231656467349193619866920904687308583149175695514972363680088468425259079580724956783882509040190934180864874710745652886737793929861554056374492101833582304210971241904607416809588473653034029030697987484425129016991333259413075581100054832972739837087909119783993456332292369889181535603382923284346420345392050356866205455698334752770692295704037616910418780620782336453877661997463783396751805819922662346997185890568735640941911503404125197721868407825015432786215589034015333692427763339383591183045672999227245323503073635948208731491206241052074008313019630656001271407534948589358771806602368002937557019819224847877486228341214191433909979662730257534595850376063906893740662315759324566857593036947676122897578729669006350737270144974785124195565023443913541035390233692179882253212416479486364870336287173778099688022553204024426528988756349622860598336827917178463244843871493212601795863761351674337523068060361102058917841679876418851727657537692657891459310641553588255688590076516115849565502180279231152387357186344663350469812845987113026581199143604298743455251670580538199525230136647495030410749690573910702700891532750452632237614965682342762635039068688021002942005196947256616612215827959742564344528091147099269172301012978301576972615979013423637609038654776087873393726355461072577473960015973821284331061856141434170996080255886433629952937086778368579391322183053487281961487455147601169307606457001152271886902100196512542648069641769111502870291701223215795683188367846324846114894236872650171869710583507239250401894442812196619436142744745557690462182186610250428507208906248020103535823916278984541378394515228130625749722709536011695172339998725999255221312488865872887093493107342765687656639633368740973956318653018736853648706605529390605291437827026320813449625216522924932967012439976538724980460813115852308763420574846777816747444309066865458630499459809769290019410111288456714217633960940596651814338262322808857251560446179713593966329450261651674516522481836397519022430962802698671024817877023600491382040240777038566266428071684905060436157960529627953550508581647105161985537902993233485141255664787666548315731762179955927078623635674477167837265946782953920157503644443762509574075040625393788189789056912837393650663956227464949907055982961367858320988216260979460080115071809412992915900732274319371622794643226113687783469812827782239469586939869203010602058069859338029500555701910023856396614979672239419035151049233080253507114991732442342639424733161283996983786291309544944328895169144050578941095002735435555813914997221420171661707209992703511600582430385975041259499942953994273222814401099423549034555793724330479295666432127084023208908236177108425027835277908990856669997878634518791404847146146695951889629852042011357690100531896946566854266615326995390619195040680347246306462907472047327296165379748061862449390073710310951740950259924975824567855093898784867503954439562521196360563119923642688547771533029535229890538390429992370561597868435243883528169326232074812052678730884880733254470117620840926381712795372229102604724330926773804174187625412813144535026668448155680825613587794288563319563459208462198865974296345424094042470999934443215912743972444449687286288448416132954775880073273444003974138949144703851040092920987764916232931716064501254944664381155072865948044895959831373621069950602742594904560518380121747746631684181443413379774047645083051794445405859547426869872719856045974379048506322254125271419344123021464839689193985554001296741280169862733400497544185450508627033473989841584222005109345972574918107055745094115502031349611921367202383427394342885465961597731826133598539748516043142956189172810796741772643473244610632241209924877736332151791107020803459808850532488161732193338275731687049122980428799134560538560338573501232882084627386243968245653675832129305825915262284042806701722910510645109295069968162532456329745617669898564857488937969143537157679161194014940191406756755976495328736257565254831786687126291400268361307702246259989054805036466552492445155936364163691185693464007144214362930842618071117681655136321494019852430388553307619857999689475664217668034480695858716087877895945448900685538903093452001017478398248343034257160529889100910138687800930533280235426478045702050265861910337275388241227691315994965439034695146378884543415572850151313942879478968302095660916416869379166501710161042121388021739224248505179854251815347153296168717521474293253500864412121859231977055360713999915409998678431547551334545939346451897435920849976452170780597661608604553988404953733423792941657803182191652378301228889327272250557265959792314470843578557918549114971376898700632816133828550888059247073214324223739118306344317373015841964365422919324771235446842803126135273404954710989131850229484731977749689864092452414080694501179357444506678824729939637455050435625406410407359336412519981120606911687851565469920194196070416229630246277463141930184198407095060027541770359570180223024673349246741796470194283811410525432050511013499243984062569394680342457433425024460759825747018945868607357471295245695524346320276754232871292712460611916506877946377138748669214793623200541984464540010513590543873488174259846393085528504999350262079726959685865752833330590809416005784258217041304128344913869736402605701115501653013683750988969844926689124787748146069439402085262366723091737964173608556417721253912107369677397067773426010926961791162933484374845008224842293107145628618811277175393678480275725132873790009893625732756859608065065333214376965393178702275244905698026046720771933130734587874401915372751854533047270337351817783162730297804708607958131162547320853336857770806608746928780659570068397503434371776914990672340330834526370295567456768908746754201403572147834802159276323557106018096518818346923359805337089441313065743185448516007005058700781357391681731759338050603277291934904660362976914138653300922501840241349763586829632295707380275691166232857029228389541948824351681099996417991501208905644180440062408261215493376046265035338128191960795294779236837869364758178972818996681533256895141446139743102923559248294568634461421600779937351619662830107268000782251544347591447275741261085746773405992109880135012769828322424451621685392588504335491222578425959120945518024179082674489263183207849229668931043291252721804509106137489394943170764658600100629921727793966493607214814444186865132672520505177983668047469938670454490812787384554656302590700652675791023609876564791090601160841319292809311434103071872783945399373321110830138390451401760881186400640397307605048398311940182849240041209151092757530627822859506446643919749438587998088787066792061400713922556307759129066107371815323531153966045119240017679212561480020541910559633424611113341668414462550215499306260979359733115875403748746848108963611893461718805163918105709685733278370677325500242293249476512214049230117576723200973110653315178043361515185876216473056408279448859494304204934154749517193247408316218404894960896095380557673107045171961197740565281732717850201965437378177885685123931932657153919383351684791009106642254924912255759653699942716321194463090174846794979524418361726428383042108444265468581445299074754182145249939535052595525420670558456671101600994369814892427710775141042189749791476048753236364002270947999255628534336639846508544444325926783250378104090983334852089861913309664455287180898857608437741674785279998949197180187650346058576293964803163205945330375068013901534727381236479595230437016765528578965947089292340931337539479008592523397901790172253711039290998481805651508736215642117155608544851419567779949894222979328475665850338289765562161506234313483291812749572102988917678509761041589828635393790120981206961442523639191165161666815009233014187781813808611911318259780263180951434275418638235446650592829291721956493899712773608362548881236157290341502656347572046095563494762375523194092012414683635843433975070199884516191007338199134780166119278591237752453655723609969905832700370245311388568435393583880888586752978984912856191228323391915689567506448051570315848231960162932500730313794952549680196622540426477885938684471987775223542626266229645514636531609834170317237808284015769656640653411724279999785470390903566682623521613322918032810494763478679376759412870944724753753060725016781445543986621584182281355822976316743819594875497823098161971892745616903475440693400257164970445797247254774130924110991724579681546672315706932849243697955718823065078871833153875093470465661011126438903211700800185824042739140026036774284315470209756005589086511071439513111268168052531548656252151120197983481917146726596382384484395755462130450811486940394728887732043125679648322011785688737582470847481402012790204803906516312758504175055021759549908751835736860827609573014609132122355971005447813734995369136375234973147454659948689873945670873843207326535894136587302782053626355826204041463143960634132263780391393824099701608734336904883276960459801686688597117946047453909401794372865584246731307610152349209959275413836307823098473206391425083047286383838422142050791774169727937639840337002362107988118957568501285787822609183289362241891879197523965173197272939208128315645023661792294816758435606503409184895872421500434999525471178594458647221166488158105485783653906410036286907125869903708349611662072777564766476220096723717020175703805268357507246192054948961765014981520659883807066718048893812588022338206552548550543687620719216887354651143528548156688980470628518437200134239989324136136184821850174470805350819803290962106045319997670749246422357766302909483606787786673052594099592710398723738525945441871388490078968779035035062902967446022837694266219026200916774297419543663167084661098952322790559553502086208992234846144789358869719721774227408908601787800824786816549313074524397514847610148858527290229041947152767542645734684765756873356888438680462040322863526341751624766965092559791394072877165834589095963812649885695567265733054888931899551974923502372720058816501370920733812128017837071234773343176694811705856462129137081308966419160104795252358767176966543359021994603461084422793083128469967068762170979727343947101653103570627910104790892784211374400086714056335314553439448163544725179078357653624249715856781276486314654380020147538128473367507575583667544734714101975761746549402918490319616046803559516544829060305868480464229399702140253575065069372278004196345110494262491617676560704032389064861068945595547280166596045165415583240663568576642128467664339368693496630216895025234819953066537680921505586718161129799898861650986989206317839498562017595360309682530747401274159255102376031562395911373104984375603718647405227073132752125143294967311118798630506028792666551354683949155614708507111826269335917987265059621343284140461312200020649230776826758598652521413742940937223191687803526918614242379696846481282476398214215072976761004832465583018113866384890967112393215732201682768614726793348839600925918893222108551040687933330198554518902860830959448885551232637193191785827208568780839466166645340817944356007875172905361536098974878929218985558475886477941087046227284345830942087468840392488757673553440982056268787879379303404005889368045471825753204755093127890226667194830785528883874860940495747182498677893240232114258524750621168886452964498579158812523482478046200315598379308530444143533480961640377481161299767980958864936385182333608919901745059753993036947371241992110251453541006385976094718298631247570707053019458780041353616145314975696592244733980958491875145938166245369470989357791951483013751272155147100061896987951017637024941352320377881675981700240667931669669098688365990668396885646667970110448863196414061169100961106798984690220109679949630536086468919494705934153100726375234673973374132814408922393893411219056016134840772866927924469961263931226698557111692024720225889495886616664792031969814875064898352524316783944854267643402914291996960956531209118252927716226091042875551122557806538238181487909540511425911149722123883925212346038954501920029193956502455539953002491546466803339950035675047065370900933565287091959136126351234499718953888446744200495623131195890953181326056236309057164512725209909196602890913110900874240323844613589421035236520638577656294286042097405464985649144908633129658774994211574033547074429074538324202781413426100550665965682250601943336378025300967363142293408317597253646316907812076888466463890852474171871718016967533241475930717857374053254797415414094327192827761441397872529586742532755082411819476744880851188367550753381335996654187805467842870291856449207152145875164110737257765530026128579103058271956824695226399744956515127220638166392766174049697009583115051923201728938380074858664774661731138672384136013618257673979837328318716896410623848510648786353644048785652768075412013990859610317002536302917163094179844285212889706657717810037133470991349607077741048061714607551172479673757351114912876530498639248105050275780474668117317428014154897460840803038396758632852700480767649527154036771686524397461356065721713839129800915975321031480838341497110240146879789202518496065695722922800530951561471237710457743974113884567525141601186946390660916842475274881295969527105876083379615191905969392977662060755458325901507971969677813286517892709362046676935770992304928076764927036158379439560992047382533704255073441839800048464349314552110582456776570396121597636654092885140642617250227388306839558529937380772599501852355536875346467458433494701327804474123541631304762311625559861515177443345008232706316558330862106504803305761632018764046844020996013921517569633801229119708379870061710764928087108100095375664505513453609430531600998923993984280253382551219095495538586566596929518909559559390498542366835651918340651702135528593757976043755793580615650825688106224861084344416424756326787834626421876069195950869726682982948016101862537836575792452308031869578620027610162101813195872725922877348473887371692307880548966383968084189934211706709540270205604722435172425056599833050935492423421604194104356427289988024121224011101343555326001146495695204898287236256468405158631549129695138412071582614892646810409771538782582180924676279050933067831130714081341036728627948931332090601585811943629789794488811505020124259645231399403171475860118969452804886482389084957594425488231977165065077714789089858150017976271682643010322061987393222378710905659883007061434829553601952437083753754189750254178832470618902042597013119513559824452269235898246067553432757933716375096597659477826728187093359369847033926193248960772735335251448255130032801216042305380863800147052640934069848880292229469799161207455499667101271576827683434916357127130559530300256402941459626533449520621267733137656630141420396257894946534657722634987723489818733871207869376699095173066635563819917436803937365236160705994969626560979307025169672977165202936611579040993638111368130020705819849498143321302716547987301030859654335442691282166061351564200453607268049828333412280487827050548182339618432488628793687123094519574217302919987888553340991739044461681206915589851122735897752364150742521122711643671059705768356471493858575118830505501108478986476469302266663980986714393902879552214485484381881633872147027490251164114544980249230574418762856409109236644082237980292676679022360355239631847487354924441899532428977763796766066364348115620440899844594626578090357197307972876940422646374268767653799947846087304220252405706311162230597100411426549388147406990806511785060953271936537337592413399327062745665766073461126478374984287189101188502003628845945976728198014368324111219876543226031301564875656637287044073410514588576960068980502525214027070016861328949453197237447485359116125550080254449078004086891340205133581319093708717493724820527194119009085175203188413243867311850114294790237121195612898784821652442970439515718978952281104267120224082901938118927002952781502856535530790997268077806559491336781605281265127792523419298205362952929611974604043704426565958489866693245794807324573792842604171113051792778074781087986981282232727540792053277535378455795309041704174044284711553242313216211141741466566882646872009430446714506065181410034953225396477129769106940226822179591250629892002594781499971512824078969925091390612293767009916204078716409808512666412087374888958979394248893918825146754445711660063599439844441934384222735914205673461102986755599884369236594083034976156938022096826479885804886343885715972497218016730477647346042818779215300596357259668012651784080532250558019293130689811611585090725391612039671510844155111291457584740224906157612916878287424192016033196420129076362815684131645231842453523611913746858632250514283982722998176019469120925683040006598219213646561601919425893723272332877674838678384642791256560431366247238242828629626506545331979346169651657564086500187428313429875438176312648531947073710028494585150228429031979183866650160951633293387747272199140200164908526862364204687838398044290517547613932516992743641838545213604749778958282796563175110017821880551948032345228087463116756948697504881376224230552654449231849313732950426315130839311012981947328879324223957452401449232130704777858950857325914895126637988176818166823787023803504246619559321628313282875659350280854662986025794246817885300915710938705052837473805472141664793239594577318911616312661254641826132867916131515434972632649756246560763810193401698157849400366092731452618985004188179608634973705980161475193152255661942005418331189530376198230374543283835366775618296581576755750454991805983410460117317872644890361863685552684858215303096381082862954037321353704719037827135703544039743023056914349273716035344993071848343800459779915058910449088020098282393661675679934229946803475940611209164217212397182848816298526091398681986941939052970118619326599728492843138665318011687267468319331340369050864179263732341417284970524778155043861946290829876854413922887262514173996286124997193046301953064739795562028042517401903253372866542387182127941294661079947523062374902136589367491077438266705453634416704936446148275218505483033118589361313114516435727323944651382401460288627119056252813297428881166066241431125180075468533844283218021813339618005429217360173846132690651549639576082302243605697856472449202255115373525790303293266689931777998254987610685351751738258876640076701844814847197685015035221075011457212351042911534461981695532126250016153185911328561718843645527560325430044799481214484510240201199782976337765954298802942330986200456967613961855847612019174259147279743074876818474752632386985088326739836246416600013744695856028038665814642375431163353513870328801963441601883625878592670301205262823456908834974879252472495796364587655131046527891075215870819172697271751701487743332869395028468495662254739813667932522671611346785079781096442970388329280900805197582127279740365703162789718413986756790190023437155571117880329788500024922728999874373231238021513713328108348555213831124908377550740976610350055849926791757878559978417440489450171386149552373946725163891896561705470089461763110102921648680173396366531850612274169545801721108474469399786968583416287878063412963895318090171670653504051006906665368063280522717110062251844890087164823718323776077020984751075677814626555461277101071714965746431495567708136842837475922716914812119320731738696473436472957934401167395033329083756360736276031067673854372332207140555048068112529851588959911263442762332532330692871208371884043452972081597392623329883107074252361412332688209644536651106103360261056585180608565509750768779872882490516606606802589153059936979360349734604359010674106928755639644832687271475047753682128701681924008234014521327282070885388443828320533009339395975411674568429659211293334488998843470178020957357138735008152062605304025663423310121031326252410052445692014635483853426185351397665932437854452061137623057689712257676955564819197728027552154862285355797286613755352399615995167690877692886537345149480829993634635264414435055097078683587285822625410141113428483927573042556944721200779667282817894929269596995634340538946680461937694350359296721353839310050583330379667286270814991135096979870414641504403279712778685811704330642046353141247862351083210101317312600573079350829991528275815472979487277385804121985036586918583995659374503798023082272989159531141283709443411768642836984954875433011639556145955103951190578884249741393224204060906812706015281634674134614442713964361623602408506571913898793990095608560132641336217207490832846838249291005044646756789916261617113606120620290997484208313739368733381615485836447508470994584782957289686805226942079137579766302526935788848109553733283289445137573969647312991241306962460282686203041818812881668660677387208687052355908321086254830673164635477520729693750841906901032481392781198771550153566085770172421233950647668493332845777937740117808879062213732623294981185651171653610749948519734645548479340087311744056227478785940104681251987248287500490672487406903541624234673921197261977522270539966466506753909736273126587947595923687144531615126776049148609238063220746491818343755960109298066939406024351451452811489028686151709803641414041835726468438573020811814773370194651783179959596832373917985048575576562728295909268886169313158473012175930800542244741420481065421570699562887429376824190995523757833522778582879448159887473862463018998390898110413649462888897577898163362491049632867671804132110504213061826659818384807020555262764818093747053267256326261278453658310036061276135278503578572725559204086816904672577903496081021787414510479593595719733480885935142602294996282505478684295517560787863925527268190369120041911130728803302774722534542577949378644107302287776139960754122470855566197414651825346593002431625788380441055925790392465866691325142188895241390852331762501253395956438996720333771987179174476179314297037980226446123240825739306642943015375394329231454052698247115168733055511141607019767741218152944304068378211707796825352403819918299955084225751873602511500391353398445273712641651440550691350330710703442015818225253193547495932730110778729944910608485717574888325158634469288573832870138845009694435569246259139693155187883798072010143153367199658836737612203309196252757270223259968183074897507983798063842611620176301697304438186315985013182017366838050227826830837666996126376331004832255916827764073915245888763905475970025947906381800599263432090804823171621419715563241487112172053446176177000096229031779922120396045246082854845154510495563131804935994433270976064520246382223393084113374549506574283975727961504903081688528894272015808770616832689575657351737711808429045385009204697699528811366380725906566802114381065435854860377119716894937608717434487197781642618476591834688463906414003429224578170079124204340088077109587389718032084951190905081431637968153175816024732714576796065407572115072524640364561214652016197786635200627751120950155826196877653096706460446399625427727641052691611576639844123680148420700029195028119874509519996247533180373998630592180844305613346487159962155906123457933456789738755859305348258714177248515543806587737170752540418859986534485203273023437529098558989535021510248472351977228035947135295390215192682677809311350131590252915618633737355380768266285422565337375602327960464301562754099069752318317765900174103164720902421755974116499924602326625461612683030203454917144091516315022025389784073470004110956833970701614440666462980458098900512089225727592931427571787400070155937944060905819772189090308887672899994570708864114273692151594819661358845865600172334568697748143692126551629893972041022110873303232619597093311453805392109380368992265924761125122944749822981391914617010585511125156382431103709240739989926091954668682769501313824578754635550976569531678761987646667567367899745235202030911752093998503685929727933524673987928006736445232749411762343010200788697522354491226189432251194248347244612542702242580818370441322827867996898236020376278858488391856716027367510008629525633361039243985569478345751501389582436898464583794817241412595847621208011217371691372347844931709192646839134012528392528740177758394404760947576462702065819524594044374585825949126059414453087149301468712921430074096110525575037313219178248748754216066635400228256772433427639538147914928683613016001856384403121995405450627185057475068456532521482953272196431310861347686622000668131333644639660713859299595371607517154958222760389843073576675354683172896967507128129639094318871141562140168998923177302621183279400788849797586541680289457291911957574604837796632199362249429602363930891784157320762519353226760830592066406057611836073753620583879908887250030033005599369036463223394250823101038802050164334358567676291023780756127165824202486529498971375471625710425425738902650626095863150237031150033639812300408394594902096367325091214676164668748858241337572266840799425744860628047285382331469334037379497901288101551236026531360839624672009596922511753387295618913242244792798986093437701537634362477813046828963541460005150216973718020487209877619057778885654010859078371842940783013689784392375581948561553964365066208177141215125733311036334072290539680873913436816398607479673618664969512000103976824170528204962951808624983699939999884744820242972970562094794796504849903519862758419722331234740650175138653297855891807272904276088354430860441620315789858274233362728720651211176445573828966927849671218379004294253646473831854381036443071428691357580446447501529535622501003160112057841829398223272136576423558872941802835831849642264482073543950892697248433605398538023628714188955755956261418493551804634619614878211530817873742800328146637823958242647641564906394105106249084152192518774535073572552141357196862972195388340522338968083224011030453563015379048119204399416146333272316377137687009594240530962257244403312378157017442570933724354622306989462944189316270909698447069488880281481386546088781976353939888270384665750019409469190556670003256411054973606427980034180204051231448877588524230765890239482430311022831699546175277261028804518893809979132167487101867210200875530742175761748555623480817713177536738428438952080316916289215950095525590708013726871581174348296049024194676986690243229345508481012153894898751435365922204861874486332266987924817584507426186386656606931149680521941772387927842002467498963243246055332566447181485704816845823534712554808910534021356673464651466524988098868222425239787474091720664180634647079067248886178752621882176819746579093385218479457231755978251029297105734170068469452344201486061907652305169844447154802002916441584647373910119355449475986826710579976537805686356109974590071730907314079494602825631277011538229927030869124792126237538767418395284128939593591207171886038705908879464456780544373480924765361067691936734121144766221528975785616008778485631783440351521958330769892701127533187782700059849609114725888449815574877533652705261452562102366984915646591935489074489899984616765475921897328484682253637659326999978516584887636717273815502082938933569741546343662768539986750060592085598774939065214539953613334313525484019725980533527619636877103215005428372602744836765961925979044165987317530584633542359146850944376764877903712427305980397299554069425044569853059040591900746077617987621696427604376489427476711446616588905071394986721117587020055187998832318867812215851746954806852434054881290611485180096080116003765610237117473124285871143599781405451629921790740223204919522557307794329917895773508017150581320732569100186869982526241951095796039046672648614178944654371797681753459222954161291621646804782856547037033141553297252115917205087261402836516820741932525043817543727496566659686808753917174429565876213112993436349246436531235132414451769498341770534227733950750237361648706208364091244861103319508045054173866850249594719971881138546089135825701549893452001409983046605189059926211467635659822883521254035565499341338838823014005619336082101057645286239591375119993044276350329105436903399640245730040833400935463331541175536995542816086488058568503369756784449685141591474327016549073266352828004865629853162270013188160223151307901068421641326225646403067781529651078269488082025964830941539692235508084784713000607795047177420858287652517548134311514148470038513801406231963980077917391330668675317544673983658528952110313174949540090194207045956831015135296494023563786683484425035895872529173627852146922728492576884305261460762502282236497150174770239575778010488175211981239938007573241632873629014933802537970395322413046191468242151669052613609081449450594623841194794227321572575091822714808063329050708697290680872891504414387308087736215390386080400656755779991573626965923495894626390949232159241412953738240756431330732814475091415803110568805191088133909598122883941622539637702902083617074555553897556487374244635378480987820971252948331401866967730984355884209273772230542786519385328435583834776491230803470672714252589772892710782528492714507395278015064652350218837619392542613058344351455679872815604265884416565517354832701600779598132235819029839559563179112555318793961488661057468654932684763881337100801014234512809665634572161252517310923113058441350448155611791889834323476591435746538365325921203985193272693903944314760939812637747314021046165493162414732673465123857905771137679434132216956730417540092126143839542481474347221384498401676764856374679520082898329536335930321856309184841016726580821967834770653842090601042907415032514433442651604761354861046599576601959028548493644833248381631144395042906851657443671337340309251636740296188540089324134417148195262484029539911991482532994084851707391831814336803146125906061626106322790930892367554556671370122733088483205192985505330328464373804441711957556980973336229879558087526979292126892134312346069109942638203810957697046421678577154423059685328394803991235028465211816061972554732999662600837585333683628558906274481500073286309892361371121528612159239753572874638203998653723271935739199787674791127249243642283787435082665359575635337307327631657089032937959013420387258845836807847326251600560866522181663602074672032844842371174115026512135206418775818833456556480046879312800049195040321628386626957469300298310479308494033319683905663605442259830813258718271436024827739061427388605133603502969959067210049689387587229219584903742068878220099292931708992622880744200199475730585613846560522570904395919648915884319954529592496353179339879331971973231675403106257732272128294729712673336994910632895734129637165554278035556694937749447767392402596469356438866269175964230687934687815631226554866292422422452962043283441522039698974703418396714035293433875676969479464874410667398819017840505117466407812724097118319292956124298931063117836394051294253808953709067783671131942623236948024484647059622600615294338492791426176069234675917652244594984007690004534947243727017428287626038055092299503355334154694073262771282884417937028386410117746236377790826814337274257265749762278329719634214175130986245746025198441700146004327991892201859409075108536015641119248664305606160588633739044583713272893892288486388557208184415355329772655908263823225346644929042169271074042060248155583025264112245012283383919031226553611715396212760518412250629466336305997728696206447325501740470104520576624002569694847180137724096849652684070126910618341188929984162232720764657206954955409869624090078925749636635088488754656805549984314174320764903776088988489010018074707677047274698856185369559277391507081721481695152112532494269875627252898666639236762104044992937118135176294492988208697260942876092983599629461618199615843209628638449596760739708034655255850374845787725697967105063991445960182843790633294586752181068134696217374694484386003074269352074817167882254715465100747801831758725447953981300887415899062851990457497110939486264410583858756701272799592749273727244793548683690675666588804066503033440309711816795565798795070104425607678160585461468120916857620314763292171304719154353754862346208493078957116642827942462314648629236848476712609664979906768839325482524158083392981493950325024863926404388620305932641237947457429587964499263806886520313825319031801021443349439512312775110712835515769180672194120259000310018568954354777431025815710996227526019748575175314445541691592642849763313540203805355379936128922840785309031520943352948611400728460816276733377083545886599548304080596820780471838231740176326742644716700140578022652445209288728489022108485208094824194412002898040908654029116966169408991914143379025664397155877933059532436614751953364303751659208631277221039562676570532998568440629451134929693981677234565573128448271044941645961326881821466956368952338025434917665978556673624765149475394567832997632911722571849307048742220087638531007464110503445426957773156600228167079897782420943894088035122598513418077219161540512919653243073554568624920697749101221649175831272787256757711430920284617564891866582826618693169350777395995811968245645196314872412407657068712531843016329005695063722071420213064935318058774097585271062659255673247162014894468131914715861201087749738696158322098304955933518903408327490560267728845205900761500978215950204644688732146578414657393943160442615215859213796164543266072877282978957225964095334507137086212601818401442423957091560160587580619400634585776602330906829483445349709960726057707330915425578550332867746142710410002241656811578911552410267948826920119542113434626140475191075076827245854842740945143786994295013920692300940879012101135628490424735039591530825963185779449898532478276633895545222008429510357021427923503236645633548593656878749547417317995425209798639943352185024233452441392278519734665319318231630496189984023275694728087354108227121296928684165687751131595150235140209994311190473275994745037534263338556281507696132375158835455036860344294803849590435947247053368072156855071095077600542644868234432358295109130510410923202949599362658999013401918919067862889733341721708198153299468850761638038278258295078932319193790528064545472573146623163182088147593911199109151056439068534709991900506625967367909885671379384184089605058838544909083253539170542707047660145273585542935651966505461670877883549443243733171025007445639308629942739949567530167936132630700518671332135441513204922142309768668050278323711219093872910500755952462353940477684208955141893567428096088372233511888838164338019307626686869534231691025193833395594359819988585159195105120592860832806916744388749189634210276667339280963626426809239258072335739903827866206324973750191599179021430419387235306295900913364708110861361903825443281387579841006034258204507091381394452732020478820471137079906584163925645493868614131895527381778026277986791831909738907634031269970850561472165593474040824919948843938134168309524186377543127791208019685974267277993044031226812726782355116486597882629955631386419081296202508994210743132102096166967415008519036760378198035169113667745777024419559125639062387358432303026876443821644275455251161830226408038431995457975880564577904118834800046475874734629669113881951712633224162295066059647943967662380560685048865182688171399833116173861181913143337978308055922359435296180039695834873256075742218344625391602561218945995966286161775644065484082858380840120305883366190576982860767778815861003130514013428569834653221595307749085189167093104358487563592407777736645053089350733012304036641179202124483978214021607719734066754076936986771722809674933419750598133631104821730762729221344642584469690448677585040426903013187731136121845907469784975274716680665066902392756118622608217532098210844034745631202358533925189318981712630863864692750352496309724141310036560960793579226807337999634898780598009516011135165049850504931449772515002451760470633826272407282724830849801677655900163446606563367737084178264684199678724087220302893412202455076622091849219934439936575195333726479527803082068948090254125319226816689274712725013566780008176542830892795275402074441547849416370622052302601380420075634295142488583278521350522951035708940524429328429047337429846736129996916280191079881794393098807470103626287547012166353189791713876743234888596988002363162256521025654315034362625020631721508521386784722885970240967290431137925702642285996171588256972226145423471802292424271236775931932113533574809888946788410797705594731017950869729751379971697000154559172773635545671814904303424677855689999598503977770267171107946048483350092831978083191490940374446223736430100510336926538482018447419024621290693889528356301378568679114384266949308315719394573223484356108915792518491546506598095674714427774060282869819954492255020079496806442167179054838665745453185366974427369205331363084846645454266993523722384852346774022595198545948984374643630829599653163360425758599665830409390973866114268651510570888667655756499639462987248931569080090519336917656622231387866697846526595484859263752058584501126984630513449440094861147371144491309053857274831946307373669665737995246394370918989218013268610021186255434505605197268819771418446226322359860923067439962606290105315269119174918922140432418951356987638630761249339997542385824614671919622566869648557002201131432332696930350409731654592543150055938427626532991664145973681405369048345607341796923079863267131442702956345354613609344822830337028597688646029876357851791831301553135269335470426413340741474469602820141478874699060124873643367141518216231697544221441276034405960182438654814666379124942104889371346648954193414227653453295843227946831253838666824812434055197122993627144507786353765744302569521719565119457121073333468325899253973200708431145715801652400038832655546868112026912178750321247666905897315914932681048358379045741430732306921801545855013222653994500726901965071042564975011920457917686563925448918002572266829355242607701181232796353624122571240606602426113361229760289222616074610972521242830298151169774650480074777786252181672845462670578777710478576015493383470418695706306780458181809500303310724954314793354930377250816908342520348638153048729913004244130077239978091047373016933340354138803653151118985253278971494681858720907996089698872304462446835644248348742887359067056483515475106879098914284398139567235323009569537386744538293375642830666233556199468168565975444303095929248001384146301265621578864891124605537086185814558596328949019675223770983597094059852904871061977927035495807917100494638393365028944119364515088367107283514010669905109813626143661944395534623116394411144956533092295000056298794958982015038380090142816130235159174704533439419159840533435414212571014706803523777488590949602307261689021083237904162421385541259812859253441288451514179758728040528105954055238318994139558221155160426360564885883130594324408519755550329386060117624069526610633744680093325499527680064748984135955691215421610114574826330013158414510564631139756033146362073324186741449197276683924018638859197755077900712798997733741075558478704970113180455581384498766403603062763593569146826122816458044681900707674193434040553736052202829440947283795098166220770946467230077152396895480930141280696944584781857523761158224387965442944624332057234694014289355627134423701198789763481820244871757407094167700164486659944279792053038020737092875548629797859273873324336663547407933871808763326389790500199722795401765598446891343172287125226994975463776295655018023967225592351406137024514253588923346228832661569558028130357143726181688672792047758665700295650807181285949749271608729033153916728104946874927749649487635971350620680148851247306406701566646207244602148099265412849910720944815677966040748299878905797957258866174455168097595332112139905322703062659697710654288508166140080587749192102174861957767310913721663724816066433022876061824771482036658740988419301270017875490021636902168546966770012485858258002942891109547990789885167201902125652261613851343603146203775983089089287803918702220400262108356981624318173668072459521784823928878745715623459212685119782572858103783906524665998398189752861244466790910592581132240328473281957754469595254215013248337761742797254713644038789683742757951669430433456007336777375601928863344127261150510465355573945190367120280622032234376728485444514328624174827287377733430366084596584312131696076374812154124670990883865267070980421444159902216993342586083379146951496557655820203321358118410498581431625576818639822503242690296797526068927453207686537810821960713102199485750668115379815616910212892396215831118916937944545979818020461403568336578745938763650635845347207465098708586995093842953404428533477754024838793056593656366394039475455405108055453581308305510873207274479192146872427552591550317729679060999742148901245865500223174619035626001898879588372952721094666468687526310880187999087257751632569704923948971009543332549559533800165992181864318270924977161179592001395621030123527539970353546410850703208598335032085890760060896784707050735189332391334858825790933771053520745251416481767606462274286256192752540949903323995250787229646956842094315816452406193131596735798584040819768860695224797444792186195732994534229319295299543517714345105671675396066091186739629463059034531544039606402964648202093823527771937065251882095835525046170607688915257816601401311373600300610265919106313107185722717300566547805587325385735901690929862461059937906455071560830947936757127086580436727017395209278283396741924532027047721775730733093186376212894468512329582250231278311959015641037200387514394473388188329701469205318769942907376251793451125772032908743927440519073847679034312367650302580141254717884517587663009775377709041210213368277757080822946815807603034865425457615723290983253632594788507270762584819814054084344178017674816591277910692530664705515494423164596311502013748814633197050090216501741368878889198213176567876815542006538944844458525931064847751526577941954082607676153899522057871415789763442953749499103730485485960836597772619742701525287992935556459247244595131659352168268715452708551812694689274715745828049702455195578411676605079238945280992821392402793784274570424367448846490525888684994047222351472884273733763528701506343235264901715000343213028072268744424677654631279880263121234739626497151741227514520131504647652717580711238142454653585760575134126363470836573499590125395046757630473768622449484207069876025216297850008351937322461107437094824147968010979385959742567585052582830034105597356872804903314567024490531910057203169240817049077383739297199963719050214675440256658635393185192083637387483876640530099549188445489104631676750797706455557731301104346512650048254335122735050573285344402608939977616488095638342540595823925052111159727880473349162562868280933350937832406667919644333789191162080626773741650394842279210488840744478500085503889565984646165445291132185621452679670750350501687715931265584187072423581474765727132266733649818541641995611656389034233835106101928770519686664439764039215646954738722841616162240386302519000676020113923882455548781537446013091636703139330254375519419029595334868793987651789781221598061425379466984078643318178490661050474705947658505008800223944758091774736629405188655575878832159045084863714288244294107108570776778817644585885149754071326412885247032170239582901578419375985461226648222907649036593501397011295489217590888449482552091955832435549926634287240749726426562900387355172330993635463392141832395874944790382618779960586741318991453530278204806459772662274932768604408453738632219987282184394880394280879922823584339477768328099810701394844030046449248237961789915145392214940010074671076668147691704468938689145677107354418012590199432601810770009857341421446843198491790266348598243842557422734382170419156867000797270496265828157911530473537896458412690005977556298188750004061777585494143666328420401859318840996777606680111620699771279882218022138512979527279400289633623695878449362337186604222455090322002716210359007102394739357326827979584690640898877409667185894611412900280606634247801115085210653127362015620025799654469887850104338617807060178939529765109231150046509588949274817215559889963531969195503023090411993800474898633928474985298844849047784810138630713364417567236618612154256865567806964136648828508276258645261728949976823525802532111889737555445614029596909890742204547857351452976173589724963139854536311362382058497212035495364115285729662986538103324454948625987610364577012916390041428198549881524227900782375446689453977497461669504046263650623850706218755752028830460524515297614296581090199372042060398201508779980729640118024603478691597707740030699342336788929020184491050564458009719932926715788291609316875679007181156305585704704622568415321076354686607415244920057535724220612835794033787913028832110171199451461073615626247126363660728634839714992257162430281555195142078276282608581851533340749411332966101441750349428677905452267811858703968213639795257738339569043310131106893576217032545427233689588356503934355320272445037774646048471339070409579347310886972207365982664583676366036518203279666719322455354343808336182192686939219225434522071165277098509298420760396580147463886932093185663541575218749017645163750868207118884092800753592803609015882925951667505573404602678266390078077436896856166853189702805037945264168542540490423575669427857821949387108855000877139683994375834991472967109687489277364173009687212659978830953417278136465627006369915754010875161026992666640485640648701042171429673450114275162443799109840554787623304880447841827141001402167274800297762751261528315765485516189416623457094997056376545707501301884437000864915254476768578420547697300353362894143126273672193893701870909934555290049956327808557476020090967097062897270430825158164662621748568006812652170652986685535985570720771346454459558368427810989218131520260416631032205079063180203243368603853342821153254426867363890640777439676956069010869012450098014858402284932513830404010047727204441414421993881213184514234367178696293571686397120780013198839884175001573065699926785309087322224559534410684292868187333601622596094526673633801708761068169477940926889923489042215101658923913017823332538268668136980171514012793912679944968337566809338935895612467639170816935865539822117610106023809238364256716644796322203553480994063217801791064192006828678273842606581062717759474645777898730570978216429422944227824160869880094949459972699751905679443966456877448914002838690802602243957586187682964130161556571913179720752897104536406335110914282314897937458899942674036025592769599941246989776897609207570133774209205394729727252836096444156063120419018488093223093979573756267794526191514776982824618597730632682836025956659975981680529931253152012963416060404697055062892287182975755184303655397647079024628740252264764760441993357238411412742099472348991709149191707550421605952984379687101401108368491953619545986933156144994288707251825305177459623459909007508093671677440433000930676657208159976354668505133307019595247894979828905021536799237098357212699150212412787435235269870244587669529384555382254153944956883010405809398779922467733547981168780051193876942400193952966789224100518389545376343758634577469776747748916345568205217951405741265943587641992421259802365807254541790031845703527912460713954469518308741563526151231441699380243039067193819887804775798513547878551243970302516774858227415903094227113637067695656305441609350805677088646345860492960725760238797484404061536921035125788467150612194884580711972770254544186294761585027496133727899727196042175776329376216105909638445680174263191294508476112370872220658889673333426385707056392002804336786947005053397734990946193682524937079759569927705246673414766334777600410224549496244354581988573141016977019814371314105238083733304572054375324921976220732926027587317326182651135790051464909786276286705589106320061467001753188581464075879688454842241532230751939630057639042059669958672793091661131920795406907063964455550133285726372221643270340152805868515185473763828976301232836516387231996384991754212312355158913993854852876506338378586018766799908374009657197361091578968539979423126636869280833868390413502893918721740243484390724163148518325358201871410201907094949704326253131851695192538583794172301505386727312163368764450762147271297540626362231297223553065667223149481100143921208042962494443622431189193097355352050946919711673240512981265059769836302528025264937525780844718535323612746165006170845058497304702119564996120945546459307507831506949259647890657032179131241253019115038562017788003188265278865828845208159140909722559399483531837206973637274938830543324553595276403679990644781072491507212309615970394071123018996459266169069693827509351439768413095656759364038155774263488994091367662231755874352549840843833758790579856106969459710236330689034577887108755143198401610038279707453655266898224973714006309599843993718414054934658296697583054329905341405075672010815496082356213964214189464556455316055787556577315682768078623169023475374623796022025387762400078739010747387114196479327980562136141095002152468018244131266053574238941537934071112744657065836427751974129752077158268449482866424604960711038903177513069916552326436412483717444055691957051397547344380220063809686839047643296462073484417635247562538274698036899320975727514627900899741661824811415010729573892098955672201005810536128223404672177449960314434149778804202171053519943871840804333972416187542621016820139320135263905959096498684642796232838621545250304488970556089819907566131434651570827520036057502854769466450229188072973015499264926024053998328005502127827211479329436777775094949392714175899769428925892580784321985710735702113099067253425934299662545732477934954817951682511048108249863860789977937811967973550435515560432116103434781160422437359143836331622946966959797787475133286553747631425732856076303606450370582334210772010884535925342416837376342262628794919112029329177016677020210901004997335538974149998548778289065287136260849908723224803084352204803783690987905119679500333535708417548756325627065752474179475730691354277722614788079830275865918414176838034419960597224999480833934400622102819342797895017454081236548570099796690581086214046265431990141739876981206756806596277228789216040641177123391879752267923124901756703226498995351667768307048805834920316690693037717120058110170890108029278653377744762247035050009751543418903376077582184527110006957275690649836671266256408962674331683865531424464426348000625050972060115111739012204403944926025009488415317560795697711281644187011325574306446257200658266897656995758667385873980675250090189926705084618648979962320804955051885294449623357642460849222200703851037765924747789891833333682792242743034478196932151891721815115709419389950776375575439223549729696883094822980243689353183779209274355962682591553523731949177646048407290647285101881105999750693941952743080369193740506914223105994787353727716111412442975906066832326524512190570565788599446957837915322145112368085574067341218424068918450917541319321009278091033863485654693309019132549161777011166391286558604513721015047725522881696135126947249966711563158118430983844049174311595781111328621860185612680307217478890760289325849187850272155721721583939792187543182182099593780021491910251887961781764921151990508345267443260914340793773219061959255202368445078032446772858586945293867849506989023325141666397297565632771346548323178860901732955097959607239448230597677355897265248592000974508722582077827037831455443004861997911758657695573781777953545207929710243090834950743475593722963611513019970326240454924357031771680038735127099598200153356571317034539453939600956897861667441315452345926634918623742158050533488608455848410138340226491659679574406761038962002482320355658364121013031045211645427791652821359049656874940268020867646586137963619548608702253052600453890687919401203228897475092706586818251536226683550784657063755923878131784528475510226590795862200956550620208013047913320869803621466047834759315527733403340108564040587948824772245481158825195643943098706207054562176860818674822148510372341918695644200414069412544941021554781600502239066391111818111709480774676611415931001565796085486252081512993529938004159294970295413542840726189750953455408184519101647801917960115229041394354972190791445250997810180551334516737629908729298406138202398132637438939130418448888397890823464500583415488060210598762868681417527966272737964838258688186827457864341964305103916184942927678482627552710020055811018418586257042280700162957418640533406165932999833144673570265947639208137456603382724922608971563016435421514212188845174104671867746024634603000818083626220744839465138202765019227968312231963112558955277743290926703889897242473532556740396352833461278337709132827771384905360264275400248388046051500887580328450657185055847022702817683597306948208981775098886807925899067239568535562143142047561682582514166795326113981735112086126163605097239591420104261725628631467681397578748287087583580992097306268753674229466944127176155164845147395138654329058715109748511667989002962653534491041477398029534094967518434940195658034989298436251655978415386190306877743016186177021048558158517396941509198254382234177758692252364568159971042685577692780890118628683300031751813218437886532590838949602450052827942968441203171866559560164350283026159731926007786894870302061234837585401357028965569141625846282696589729782287058936195966530213856980921839499908025967025744371789340706652075482695990305914557886995599229917546990107708593019062784630722884630407859540378016931991475394121435601158469061273962646232146581755719194661685855302654432140498489242686202672132210740342543006791479182091245540409073684124952078726948954685910459097831533387469168474810726013158890820693718073949374307345347440661398180576881025244997096803871504999418216006461975780224134242608689850068323717158935051335752807475020681061342526145525910725871758477871910779641680734047746944411479600682826014292721839026873156860456894457109585431806020386228298037424766590518855197878670148694924650368488780681727805630690908534605296180863265690490606133377149289699238916098355275604643167393945886367355165304026061117969185315365433089632643113571472289388039906774677830279762080449754223245639893181806190203696987189843651100409611611524928881160449250545727677163482827031318209688917112533723690965350716411317016893283885688972187980937813925226727823257335777937276688721169812150809208954145204941453161948592619356474203783275646234421384183696497885125530967709562596084366654787737217203081487894661962122018995382224569890550424237816279250635757785095406833772961329318500547405391646440812104372751545290927706452895806207497883480063911718244784885305363809868952576893579686550155255647823256729194987736135036206404473747653353712382092282935374843677746728215728443752603014384467703127433432704220326548805222084258990611737153764446560824182871483037479566576613823651111200148965655932797283284674292122690886204106833554071180688464541024005839911721803243582303952760171689072782999520173852289201163780097895952213676142206328123520210763355665675641422367553852942447315829471499779133673496513538340455962200642295763205142353049912839015686830493076740697021988173075091886316406610382954154710294181777962437933785688025833368406028144977822321248494846097997630198227384545766986674523455891205791806041598413742327166878939994368374314050611337759913484551610259156653982363252005360957657522845599677105079469563826324359751566089013821905286758384507858111729803357494065282992961853459435667213068717331544862276854348206275870517961520551910672490379258750770440728295247318206915221778272144702443124611318675133375385583636561742263079724388034469591633678835685732327907550621834321402281000532745008822197194260010015184527078332299180065648534376409838178259052712495226629788865257806401983197340362572108591221334302200451391443813082724621361613697465837912508099459900155081486675334789770943405038301290332812724037233639136048146779825296981146638291039892646265287551155807150277403283547177069199814600398887558345880751678099557927105989855835966593041200116318673896124390960760126483495731004905858508718695829268486896731177266820826115154552054592178843413786103913029144218614955451108972743096431770602581191730084220912758953902706345242924399728715823797547507926012436044488445763183165626788321112874020143238385137232940588230281311874125119481545837739478724747015794840936980060847337543465653827496952437749272766063233184513025773793155716569446368942558413343497277118740838240927072066731265833578453140188976495651335670597027146344801480330560096332961303049132511020438395579783778824311229713528284274738221766106997021637612543194976735245506653890999953141163698749339216696113886041067599867487333545776203017841632860279926816999088753478564322227900567124466633025919583160780674534924380548981259853496147515306040343279692230753999969873840479048985974183345831975482013742794082866008762531556880852668841742883815925562492799632614145795064246811867707483701507833667346095764499090020048503488513305217476216186026244221546801042256046419920199987570611867503091664175400819999853086082421736334351081673914118723330151740000292464005283875620374278930018218999876218024164325951677106654392169886021061562153351443924814750553853983203352366165404491653760296577982572314558859942816704201849397982175408264117981216784643731970072275283322928455894835120688732103664324145051358223468474331511011154705084844092715219846566248403400254031684944308486665073064752786837137296402537657737149062829510890193279072190804572287801067561854871909384735323186559841250013916054364433978073844129034035866262124693131194659186834637138496337218860869868636969083676158105913723216179307137676708897312286657713910372780807466174466082682439724485287908330378053734776939917530709238483762270655782840642187379880079081680227437284561776113164379098307719988699019341319263851662373562594891096047873566486983617871157497644472185112835160919068900739886029994460310555061690889998403534404034540175258560790150945888749633767052232743830069011971713433092312262439583413164033599058348886404006097310469165183298058907584847283495378143004530072912922778808045121167785963781959870060340378147468003635910607721399937628182006376251703120937216781748195359787791491924104651048385383510851483041641847689722501513215436530787229414602993576634058001029228238801773839059598060355572341005065222579989313068298026217015844321885075566750951277408999265286925236707809229160904246173451697112886483230313521783358901899348854689417937915186056747626899568294336529081294043237300201589586987768318593945833516401475414478975983358496809330399958173719327704829089641889422356193888366921488406826832820264117548253504134305685671894823772369857370512754843349303113209370456428189721645175107544983196128354014254037879235253417257682577000039380822049649145985237118498888714027774603169284999291614162077855327520475098605097491422874889353260581293758916784995071605868401631116892573287521805664332428998730036977850247375130239447670640935386553860517079165261489319800279473232544634048073866903068264714061308317954340772705495358104283598390790224028936817960912310353275660083852101614534507714444184039902972072567186340451620692261620329435212019581965978020451623006109612100700081815959206297669408927769501424703413613142265916648650263777189432581979493966912972822565010046054425972808099518022558832522367250428076737474692116154977165603871244844437866260320772019300579442297716060115882467983866904405120654481216706322003031749445011782797178280027213782619121203075620126189983292249908004250795015594274386480189900051766831028566492735897746000374805269728586025413354320137157170573940726643173976219029799787746613605801314532551057269825616956785113392860104050835853469754160814152306357847893867402306347166188594443971015634256580289351079408248461855583346802161777077229192635377360984996046880061187289544769452092819443957145902021598727781236429529820938736276052303817458958852047981701481230572652249919857323631546729208348903358605296749577772728506700098048217190750322585223899853548556244517647298954325849786376622330021657061278074779438709388195525217801353690084473886549976985643198027464485298297333009142548167845438637248304031421847643221954579351630143217206355079620496406965667986079720868593499853079313580582158836998136836350581655984812752523944084484888829718747127561676664433721106088115799637763036945964116281654901705421773117608710099236984843232826700515553219623554030459939984911301536850780449594463822620239060283612700294201545961879268863434199520597553526927181728001799160349059529822831061593323527436070537890776535156242813073542519239309955582611297571439642509541224799831804418364271775988446466669497282619878029962402871815748383646494476055816266288775849736426451379885279154510473499406623685935186124569437948458364671047807518645631382574212656020535178787140832819745313335370633084364230743310566970435805437540885006757193102866707970292762750361569147084616611013937162296136131931417861495675884786717082398638311161537829002856432189444879968504667879106877826589037912403000943474500618904392445714635417744783066206048808884204682280916410581599444170754487501246549682882975415322487317553142185461757883238018768510179219632352268138346446734763001411945163898746726443093845517923129650404429188284082595451874376282547085593506460014881402350593418637239372954370301114333256925492261305244964609313850402606866565354486110808007538635285696311363836472892113105465192216761904377763601103502999297387981569673060130043367534233906250577101515421273438294117250918367741896180710446615540982820502768239381370318815810275958046326189494084756155623612479015413342411070537966867395579186362209170866616182140605370193489875228505968734963645262894672643305957535035979997026821031814874799130598128550237368256403965800670329789555143821031370465949574862226346597163569285375505528041572442139930627382823680334884324016447992838864043580096844697203371841072768551472343779555293424473279812585741178465114253194033971203090358777974877834386162647523191434478475383920912311596214636480491916377616477692395997128169282927727158968993570742568465459026042711092014187016089552745248412193440818952000925892564324395628599791624230161512403370533977578280516566138390352568677403658089955611577910461897836761379311059624170556758501324810390235429236488683223794701068006141430050688121224007789873136606651655057181622686757145768092587436794148123750007697228676797127868695494486775049986981470382146470518930477566802389074122484471430540097339419129490384746082119954171745253237910593530079631785061694563134991280465794287111376047585315705016474938350855667885112063436676562304600774968129892439874694688381869571150677250392874975159809726691536671453626027114584843253917723993573750609729525246120229929938032560968980716144057375508917089031968338143343196920617544021457366309277360444137763392643352344977912496876740674087843015164188437005434492084606347116551228528146124293901861657059815025627961209221097698069563850111888811771039903363377408990640235545950175294679936044203938989311796965936644631733269730301770180885735278909501841118231795919931003280761811019474148926147604574940236619182421833206321244995305442504068325446400265812503952706512171048018712309929830740829061604490566287659964300438676925503624793981459104444725854090385438904808830824973960763266099897409334277840480146224008352432636868534384914579990679375214767666090772325129778312843964052787810572205762030259492618233379650888225953365459377376909592654612356387715559684352186113572387229588533027623957476657969630001775758296492060527048304240319118349788728888857391888211121163485645017974031695026562229884188647959874957158812631381080495471001332365914743052615113342268490555108992362566892645771267656102402691658796959898063803450267926586151871125730289734580860600237185875623172002734108412725973310003659729158372904716463591827815190008115944100202526867881247992239262167146812057630427316372205147187878556616548544774140559178426997924034934247568481373409327218465583436683133012522918847887600255649938738325190328976442532497275284781759214802057664771254338418215341305065510898807772468388864287587347940871599857831636032945337974615922006963616434838075766888330507952750389948850307577735199713334350989847097116373409043732118560121721966180405528233058358656801920741705931892245587744586026710772158176050848546344930400561402041084761615406037976647524840805764090809175158781559934849535027638602597562561509604180226259463199749067352527746737054734851360586809232403875960594486319922221035268307602075495537923559466860256410374966847102204753548454875251422344163924628413944209317466111051538035534035494256422570634140422312099675206413382849283869531732259549542733843852539625365509261248596033438250005281066978670858777044475743060351426507244081017809845494062967592210907519603888368259105219915075861653599590079082368815633869614042672964909892433826277173078786590846021223737287572337275521296815540170793965591852048013020209658459574198993165106293363844768588937345993824722807098531790586717480979824022926604987351823682079822785584872519026810714464443436131725058325912518662716522451939683985171226271462668949415426318841855849763295491389883330441506822897971587730330268613212720480960476974200905342879675564652354544193414582565497123370486544684379275428009426281180325915396911702646391705504563778850549616334792653761741579898950978112362367690835552122869542257065169765132954991276990934224222360959294751548265650808329755144173224652778141265341654076755424508952294257413796408686155204124251287642328674489425950936325321954987967477986637784652824065598950731856663234881137280330739263772791064421143072121254009488869470663332491678184074246122089902600232392722995256329958213640612020696849027837672916104178845603545981159354123345040425955734766641421759416422113397563227204197034100209066507872340065192141267139981202450219036145372004989650125880501630555258974369001552186257691888605124137630314217085369425844618189526901376317764489626735145518081175087759324308544918256919527311259342628978662939404729696261125121980825331466013966575738187493924918747791078585170579996265829497727574564237312946751991359512603229383935113314106092977098811845061609913163531564344710458018065314535014909674403163742116578915579229105811199997456877487722075945919671089486983723887165113994878898304381555166662980891929327866648704576421425950791049548245209186371673203674506625513688088516273579464132178111286171622895820169415364300869182955665561936314781099627767456017434260357406514454336063834785455120373097851529680739621636715024603365004828279964169918394380086011894191074272468655118672371729934026759139669413499535974072674435616282136301126955664974818575006716473819192830127063626339267178742486944491096531021639286505996967352774885048737565842711014796954316477352174895627205320813694043114659599084077724873350194366019251079682626810068846156238053310072231443095935362934328951912196033328841668704242582429294622366803783376902759545028005472742469215270427625309048921639305400501785194698311025062763971470123599048495529692421615147772776404124555369513327251999949431500249869570626664337063476857344596270612773211532590978599241877727234011572644031900685308430239558947732835839825270749814223957783600223208524178711028290271768507439447667257221947519671552230352942519043005425453843309860202550282250631099332231635183293587034729496817978956337129178312942106952297133900453676025669521998590524058898605374213865180983292553730304107434691516067805878532213176755183483461149334282193909983604704728173274059747579418645667490777038137020402973430792669277356309262666207394464327048288749094078425534393487787486607754308465385928565385183665312131844565720396226976165094605904045899716028135024475113381469318936226342557570474594243354446602643562088637355066843697410866555208335843171678208835554471393079150258878194974179186882697909827498446055573471566648774222373732776408245970507960425958705095740942663491747547661918102573231692858068341440145064727766319447967118111191166913874862358161561547653981242151253522785759468995634013135608659836944708339859101228854490070392191089186025770343757456752840556439267376403515290602316484815886846815026674921845902270758250434743096475525445176134883344582111088819040572941595476003526390972882640675409522827863166671352305534942488744624556711693356683115930228015797485605886364808523331419986951403362435428333891490918335107784072511585371368737208873527014063517368256489253031454668974501697166396606015792713133457696251184629908283304162124416461532235671063379311832749177689503272191476342747013303015963075982619318480964636996995261782005980391688065064843522686864201913614312249760826449766022809546660134499161565800960584337491646647770133543994712997688300020927249023418595091317235478181143350305066735057094878394565534261766952346006109531215860546617689939997640437316942385904864622174181211256200080624054269898938918509482328224680509467088012863263401742362363839887708371093042364333741963939626230082472610304316967097330761197781569779053825552182598017457374886332528101181289054536108370460901572488397905130125342367135400191441806027264659400225813372822145181991445464991219225340297216436533485046381629809796646544363099417314516299789971944401252921320561794522781553746322413261545816566811165159044476921953765843155096046698543387884636550837207710828933191668541447358616733708894030447342862560414938779929112375889454564929585565089484019338540522203784894814197510933112039575291291124274652310337151377156042544538879373764164081305133986071809123037863975872053804972098715718895836558654640276124753014536791300544985801776958355653623930357049056039262592221499777472566921243377818146397663271238583246818044368095615171247762728047978804163494131643351611568189933858010615914378049016279163565248471103595386501143045253073795636381352548827316780422622335756896893092013655313252374825781237622563930654837753002933525101696226213123487782858472923436355947100088796148303639302155647977851135026866023785971852245056271963499642565038657683740785230996526174756814882757823799883144017396217367858706372146770963251865354442027786673137019503570832940302225676718098118577038042092267837893527917674457537844133756233894105930997862839674215558021404431638190335998570707733516738865209214875718563587818010513274117851119713240038182557802731565382208918606551633443291307609524246489202634306996757631580405682495476262022740507083455402536461216033772703045156650875100831867802655185051279045698809566188473628737919018216184347978039841362137257974877391367233672168068920986657532649717379132503920023006000553441786272086402023904819489407536355100217293303444061323487611433239178531903282757814231622093711878656068402513362168111726780468357070889775853364857842644147135208599270199017482402447119661851153812382629093340404976352389921626883329742215958383985904307385682136312199034437660519670086871495149729143688802117182599576162647486607197514084360441091829974305153362800508646712120779564773359863446859301626843055640267831577999218641946221221404801153033279794033916392154042166619018690813930030187648582832974511411755259705256293699868748444791073233928507666853595684429616195301636074200106261142528067745143630999125620919121490421539657399779975577131423512424974946661563380318479264252772641306570196118424487203008822723708029560854104988424092763192699342188552417197263365496775047472462642153070330389894846881258036314942398241306824828184266328674577503219314055742261357973787323735941437349362392196879478435264241079076044278879612765490283525346105338932554005157206645456169013627667830010873783822431367230957807713723022869584715541499911103216181585845862758462492020562105789892716152859711210791038015557882475361727460776803737406077857663571778368267045194665920398690378198946447563287542480717914545304096486029290808236013029199134865426166361404364635605647102936077650219980103565460037933547311354712005286198882542412626815663213498019320234605581139262699162581192391176506999972589345376578339845149768230802435168296299457223227383874132311553835291574486833671126744833706594668777616194742797010788809387217361612393206578758503283574481068120216625305734349222175932466716810308618382458640687442966559188601525254410717533473433724193485902887389324587272797272045314281167823490640590194429156583110729874198229828643826301483955900983011398470733875710292242093594086362202087866451233444914906443410921713566580488594809783639325371401208947764007707891932292484940367853723119978308317695308570161658971539781080602576939896549408017860281309458169893807228822847923928093782283043686850784173045294239684625897726482120813187535297664977490759870775876653180709880576598301939335062202709681446451439919022118975508755923273491956822586440065053970772285685810967160736324559504244079555119210107761831064732193442527087387223740710640188082169151447032548882370132658236975632290546442410402784436516140871660055031213411049113634574154021236612264951753070775702541193298188062231728257339235758779950412616415930072681651124004184368301555044240967497553831901780366973425010198672642492858008802833096052851207037948266120733990685362087051934605867880151604096462388717980703312100191565963631200333080878423845828267455166995848847501313881829487259786750431811646931274219936520655668321199401162366912944890343197657509043127458887979429765488333920028975045731879133929424856643674469519633540990735316029302163204948480061023915474306149202830473519460349662854351452568321559454519514553873158079153101814652207222797457726114376420216930032931463720063941215923312485369621367334954435637888177228442925724677274441499924871537811417626057683168003944055298356773034093946579046607297916538377292419615947367141576883474958428152550890738735514474010853580860529101462379059373858976352087792929889792874980860336679709613330177239709873564762452809097183746002206016712043498383277978728268955121825804792593493130612692773002097661250586237906998657719347242745424342101569430352402401991065375106384506196474642154864264514696057577270011841511777704299905182588084659876094835532159114818843556788904439354570691724759962742966962612145697299992077778788004947936911027364280606799034414216909059595594258407855465990082181315687188383042737705615798247768187995666248887420000450062106314429326046007303517234021177663596055021265822235174785883052826972967910646983636616089849205702457106578236195614147363347595523176643823102258406910424980744606585071713736352610003166861826057021875607995974323377625863911487936679167173163813527219417588518349502166514047810965799842906820398784551221043424278065944969900631305564953337204751712427602242422298463240023091664458836872247280510799844545107199526105798316977771906850982983575249832044801858058756376374391843780844546949108958021894223424091300076886001907981174260392737927629086048914236563767896906702958128777304777675272343950010265511671968960203170914461127308048660580688855449771888176039059035245743749836822168932679432890394836018312654599097039098019669189990967225866033437810224160177535761736114876133080586240985228808545074284657730615506797958299818548992604289464266531231818517238620278717099856342311634155008527964390098548276784123148902707535010389952126332272499862426069484657157706008019005718122541756040697307363628412327969281309671469547630520781986048257528519439904704542654575456196230518708315685354337854016874201990692383037117425757446750778091132348141788240356748513134620262781267302310677171430373626964413453419005109548189680833906807151920004068155875043216311712374109004741668875288856815355507883078793484546319034650339084650982519916490007579153169992954084920736628053229371657473253499699686363365223643385696163996437746926481788598534832273969597839477765332430227970241624452584551199569242345398620427717941046035635077879671544888081742143462736346223642087053388010927237583234233456627814438896534655398842533362741796036974303795291203861130002274960406011669211407014703349804235512776207221486653071357423428474027161753464935036965251889307459485361460319226640576074496416473859349596428489519630426959715533401769703656278621661610554551476489476796716102843452441049601883783223401405644228468737295927029618414741182584678810934308423727930777360695102802640197221511775138402717370696484569675047426416996763063177677877813019335831539702123979739931443050970605489661519191234411140253566882983246846589525328085283578744511000083296980939680788068704496611958582096390081276481194930431268137570314779003765068412666444911854251502929969821476406923918779773379359032448454659622865100078193724358350215203942573654312721110593014779182956210578264963648736986813051995107743677148218640728139712115198018643608803823310310505136830752896035111150283332896733950777090553679096647368714346024330459703498385532669773735730307398214039441296904666448639989156710670518642125871106280407923895723218861344586155693233292303545979571798239822595087745570293222420027878753242678410356799747147710910510081154621094414739928319186650712384282042519007107855800791532560764262371257402824797047089447189746426947686200311827412996080440005072948765281045046990138314345875815964879211977247336323788800772882256555589799514946344174224159383131574279133197055509175546147144896869440808098708478989424899086876742869061845697742793620741234238297881120317953058768310546939095411348201925743665113378879844165829454332159970467010757166064073902624104290609734623927661397379277200139291438134620593355453795658417911059879148315396535446224270412920207934043993027484494773327562163290493418507990243891737085346301249644222634402459795675600584038159938803085231425928094897200045403977358696848715487857651898655871401485352228475143855253566219419500136143487047853076891189564074222085153154585348252109978080225390887298590920412554055353480343218884790751670510515820009035862535973648626117216669234100481316953232463246731523822396747207732466585959331013736433186839745739448558151047304473389450756188385697941296783457265828052125201152887259006029115475695208432047851600283148760365559765796206814713492685990083274411595798022425076338188810605763053468631052490897467199548250575611846704823429375154666890551250783749562551517240828290654169469223394016961620640514388335212330954463083432561889533657494316973968976320683030678984702244241836455528745487599849824503106515105526563826090702277495616524338413007509547427786196835502505318587952973695610078665169563321799149349833637988371345621879894029112698231432156072201627788642825500887622711192318699676110864176590845422395928128803924471790117905462348378399771524635968266112172306116235060955982337336444133098969439567815946957916699177344172240685162177660495604914419519882464101601531457195599620875251697697205692291344442299272379907438987792475000492429048822635442273698078452671392449581333330707907163425221024976542498589849166259810312648041574041658171781918366519629509544384042725730795079879781986040842031642524924386937719321260730637011395442971354483239208343518716711145244974078416458726681237459686099433448693780508215036713216232489477093863860473158258069841101573135084596710953474185279441017384557424167067145836547059059982880482878434218758207677080302912990879492656658130377651789489688804929081040937860922852809415087988211222934152132853381827005425593596188895992981216412238375304511422900631557379532690289209464053082164688716932206442524678871249343756883577395367614188744244737174641849248341742258874518261456945840882072501750036957841161549241671194487931044722483096524339034676731323203147761431737079613893402889324124977684459173593575120112590287139341140027021527611108616741577073140273960435075446597006418164828998581779847963146862620411324497381890974061068074523860345569368523195835401069168408059563367853160817860148492710957136238637502361626142255619822652405059325561609812293045989121212329434618594053097273313461404977241126934690880212176600985557385732764419379027063452944845599215787481268578419572758333668043435891408904877591871028569514170500368433297973594139482212738685491639506367007355548574620850089295846943027768472189832356145945726434530470793062450698552580847455442744258215459997449514308762499966490984490537488586849728211476774812858376857683930337983030726595680667053394074697287408027482733014589027968784192134319835449991969807269700251708669800290824323401770521933923152837003692620500439939536197993960701162623264592440635496820092930653282809112875085281161382712892867819424919183975397136877128865438821597366663491001787780084805531719690161855930320404122023098037350262647206613802248733460028860153749692140814184133607219185957648443839894851579723184063897976713354723630931075080345160486951483334286077057189262788245645367728404735216362667508862406519602268052114142937327957060905367591525549588817134832287589158412875370710028630499431558606194381538317048026860593320386651282719010214700570619807766348838930807336883306451473804838374133657664431208217671819226586073688833667956703907286623066074642034756219979390147509630932629088654131639255675749235282947171885323989345628968916939309188955045477897197404833936985829315815167056764424830712812959128655083405483221234825773332303868073030662196798659989073438574496194543137224868982407637577639829550871424614884022962507038534702531969632431286025233635047240033304576985106713778136383606529697542501612421796013235822767179374059133976247658832770397834530715532189244688150994340597641091656066952681612714327277483182968871948721441284534147831679926785499970324153288234954613680242926334212865291667222907636038995975262214507533003432868039036768725518048893797044261607685774325885705109909936988864600711334225301077183184859638409501432076784241858930117874344398590921420350649442937314334555628393378081134205493121287420329889312710803999132799900144556166506246448599437858220029721642402329564006531561352951675425889396974369712587426479261957552936110954040877055895010105116639331268785964482650787909564754038055265698718065334642828022273176115268829488607535002190410731999404619944863407336903999127114318588784532480408405214211482077882937492495983308866909737479242273426435669150057333561370120105090820942538166044325384702615612279248412367707313799250689368042975711795817038322381122921030998768284756481630651632921809191086414278062979999096426224441783970587594014531650757535217376039504535307928712602573183621598349152185882687690488637373503548413733841939539321961247181849364882983666466855259793974657204247843501568153055686160661038442911036639981402277768777305861029305093187338195655453347454520441563568428000949606985638985701226281582545519066768793066217890633759176132760205823845459688490516891312895001824014995596619530929657178889552055556772889109223509956260899354514682081929399861852130733564205107526276443098089841787589666944912299931606232332743595868389158720819626175752774897029493701415816109976698741860212033485333823037676983460540558082595360094618881014141600293191350600440577432196287454803336812986022295468398822166910859687909951499903121665434597258214697027067520689091390572599924059309387601066055783430811338455514373548925120887906179998101138638239697427550655920572935578086571739443030054177992583464643126013317039118738467239245883796218694545008745507331420811352312058855060111836950697631163126529952715746944004564340218123229145380533060119745408203692251323067141217159808601500090355457808889922876123384014950720947144994330376940142209000184672533660131475510168986714184941691894164050688952339623502803942887109192487634647229829181685122747174103112200504583918800111159731177428548736003068397876980802857541527792837315016582088144678325073217216516666070483763979840535271212705450405239135284732786853559767100971187483226009301465359211180482773587075983664252461718323866439867397547275474879877540087722987452212290378570710729271374700970277039828566639430129191083595456800968869769738628512660724994939559386531171244642113149038597733122959388327212312093588861668534698068917974063928165243892613598116981533978527893936808452456430632178594069446858242860483485546047399859205229675638456466571919304156706639300384364783385302498612484635688879081386094288669932294877327984562658381573766197643970342199195885559073091146023682361863610123803871346292772029197053997479433233248747144065732729900163694253367387790227250317249372120497531893486891549725480499739489009538331839055533427648965895305151226590552351317256325865776686176823072365999817015481371468738243994325843816944843896805494904909080898277226247186077883421436141715215233584507875464577807035352662621184763350553933231965066309905391362864550802735447676071102343837084344796434501309099167608028039590119816309733957267737494154769481860400641945869579654493408612984942711855983504911894205308677524240833883832735173227514059349735947306252198038965358029339184627312478429058752763818998760409301850783265208217390802441213147735908712244339169584392961201147442237203755948039554324028357833103601176675400978134798717458172093129678086014783864376369903122094158349056173511991518472896756574831881134305079963227418774779774584780649515583652635865351353762410144129009921205630987474791241511752933479112124924924523420289660215318838033448204630920096542833993588553749433145353875243879039053185715733922470982405521038096765912284050792217936547084234601088249668376959779522588649730106925925616044816143088902157611326137194119475348845574379367903203332347180565318365782960840279087432983902813427220634046579730177259908096160752626040138767355338044968308348345356783181141015232400476708041465030891308543281821615846146619291623526493736026381871639098211676157748747129138292121514704608883250636101264381315392307452051683758833414365820607276768702536793823458043520002189457459205143696011040138260702580092450340259611618783302408417567376315589451324114321869597333705809247277219629387063926479683066773727271240239062561721564703324228446659927016398800390761565991495952478971014106089636287922329105269075902197351029759779491168840631004645584735706946984241431414954052215163358045844134779467213016207477606499294682203313968353326091468626670924368153783134932173751032180693024054888618697302180052988528809508900802360787058525675835724830254421857950418842163192122930910209321446663498056108073895900807961522851084624979778700143472434912831320551899895198223573909174801274708701628887122801802157830704628471070608848181266233554937829876693043756979791420785405621075823314593544030044723001051919759149524271979748323189425592326062987225269552242653631204394220916194359609414054888237395475497306769224055761816061753349097116780504054520403499844592150658889422861499851505279580479955647891928855311913994403896654733304771401392437091977152904196669482467099293623041770002126950481239909676834537072408482865894438374860815184293623720901617106784511949055706068029086324702323032785238991385689996015273920891873715456062382313325335289058407492645798332889166760635242111476529629294926537705096679562829646566179230651152279402529455749390401014296788290942683120174864902786191642690839462895965882664480180315942743846834399251028149099824325233085386414884627181046580563025411098963236775461925942420567827521690994123302545591345096400521626512496001538882046200242524930914699790345269952073032957737714611970129939183922861109794959313130111637788849004832845149569134472999270108455845430750610628446906577875186222480634774617493567805444752552920595774322922495170692436079427471953291019987201008968750620234012459711461764897449814129349200994303215399704852354860977629861143247655431119681134723466735858541942839272510820838256150542167477613728740991057604767100583161041795517155937920663582715002232747818532486535293151919672721125603083528546098091050259027518867607099839241783576529691683883954960734095996441682944483937682763370712702800427590021543495500443216659552682926926949796941628861965130116119649100922789805748620170847717135110880266524987348050249470739435503683731833821467420452471865007072912429362195648232104001219064976529059808328215061926732308614371482285513045029352463908899441958478351952413388455026095374863196516046874514731584793188679056752983300161891405717675605693205868548383571479651368073684454579916181361238996760043022154511986400078350570332326976369603707164388302780296596539247575112355084384622424548866756774301651954563877036613176622419001610216173802906607828316924073790406161339512698240234134475207828830408145091749909883432308542346438970112701468616171116609317950961031421969655767867474384689771505520889348274271663643117753147046265977979447172878833250748955233826373380062201437386617529458367248667200373796380653936321178795459328964281419931824174415058957912926145226078969500753229850575548024457013508950578063544601020275167936777579468995861877507854114963823830311684248579707423610013520972536850493233082590204680695444178025891205187160772179906418626320787447667822488712783583674178022923754790404270996408607512906061766326248180765360533961059096751242090440178629779436539787916830813937149103829744394196689427451974467577713322230113463100103047027195924965362620717504427905086590993724328960621338694555053565200359988170383466845056584245730835154709289106812380822738425907798953825666544705377126936741348776082893935743776630341916202033017998886665893471216667554992153875399412558003172864529457466031177916001783949053367574156203017214977854197429492956923938208392080672337550776638434741079017222058038012255611515940507444014054959057548740372494118108012340421928800004608402144428118316632577807321544198918347423383963562944416005697639227059499856774522955574506835669054424227954647415078042557093826580037389757327414435844910296625497786931882355911408091713209479478086705105205255339961622250952038681628152535072290906070734430183706650390550116544775651179077069115500543122582203128439826554555250138209226683300695598110812316709625952018911530958840157383008186304420917459273993725033143158384906229333223099653104780675511007045561242765497675309704182369834110118881093908636582346148930684481387808853927555370276475981101560439525148430994061830021610399910537431983627261391576470901184868335484327132470423362012318190469577712236509099320849549338589055416673030144526521504600347213628328181797472749886918482818955327723117731480681124539674963775582207681327261101794876245572841517241739493898007497317617683431973703066128429821633334100937967944384151373862375370710314756135083312115469551632669973441816103219410453776061970103059889391789500317018568573132902819230486570134258946447288500436383713304581833121273766457645972482276978459891033668489450765538678938334589189229675659598856067565548306861037967234529265848886375647772132121966069984930923800981609029734223238753112368842750931382300223439715143206191095355171857264032609855826635182722765608181416433163364956432055609799258399494218105227680131083932406907970243073527449404476101520020763551408003116425078673191602646583733337553865090627016958442496865614414367630415879483797358499240872941503715024359334798369332819765630653694547203775828984292922485719743632818879759301908583332750645195551749164806021911689447875595811054362911323213764609477658923779391208608418823262777010825075599696123112155950904343637875852304225445374539846629531640536707959895295925640456576895166810487301653926159916604584344641074914225083993433095338636736640792825875079037647048513311743151001557329144655574987770643164339778393123064955496018208268045175654759392758147343844510312481454812022401888978408355214623227612880043315035220248527490005235773027382471355208702280782597288117234577348693094506433589655700610044634038607677536768643322124252199625655562872366763253490539024769633658178275558277478634314699442316233731706966143846152157884439758452293235922948705720243713271801800985018186052791869978652516202980554309139474338910528188056318380178574672747006105585349703930953486121172147792432113033445977038324186271876415082959943006051545439741613042466079496666472776435949907884118446825990229274475211620669933520430042032600138626198115995405243423054668377458787401791355274091942381601360867918959955734133544510340109664074474999231142191935731467205759437059173296264758571998556754044759343900684009264631661731774836471529099976073877374372749413370536440499092236178801648703264760728866652802255279270757858124792113652877328035360205895471967336584874751517349355685105946255973953069803545208843840911350659711980290307965862860626656438267456268704202604229833108871951776885856397221305365818143552097775622378658910747998251037194633899152894696032418513428065086214058755452257089940337616028449226946638916938633013921187485115592019910045908530418616257566568103430923365958045806436316071384136421129818455594196843574394264394337164064224241735900245631792650828648823341478657401824081766768137222469869936078699669508190670480769995700115663818083319226562767949638096585011860456091008823696704000884869876099851185639326156179726347720856760152715887290827193112440571668975680265718834302010518445110681292617236804260901632653858593197492487745878264124530598427397117334953788123769027409633584976807809823095563183434307708088682460485430778006266445694705787894463860368406611289471967135052449537526721286100265494490029458629969371424791447896587832571881067072274436936870614014848268646397407515047717255789090473072986196781434585961633516584046472301242568057757038164823289520464466028299568185050384974016643041693689874380309766061391324686620889294238332847653136557856160077726499761311574030608989917348964883737373367251245366421437033456300167598554097660941064621697919649911469955127152393780725290997374888050447580854713722119386253135251362907182554027196641750617059248341910540297438012731661067403807826812635110458503346640768380258467749706243364735576747391889112825011140654991496780682916913890948577082728312388255455550499453805879500687915152245296567035262388611019207446007220636382752624408260496950217421551060164733721691876261477963041204299953293503100975009930965465914728066113014649948375317098073846802334185015740070015228243761745690925490469074899201640429766892367098587909487762195002010992089341872854687699140550949293077400130141188518342416122145991009493675995559519858489347728677693386892650043688112037581266607170836810879320074425717167903229056438149365787144958385347775650514799000370646776822132376779012217300240513433923016021076621724776926523459692260268068152265804374622540767974564323963711616054121852306098265282139047015340246129921023548714363570282173710064495950968285237733456911365657344941401638565258275293219629735624553141469801998346288528855692692435611160285365102158607140048723583998389844776094704271637745277936358758892304490675416182524715183128596439756253872609406199180837169617269089348237450490814303599318818646523409173290996436255818394144736976644462629534496159789959877264993560925028977109795621837539863435842399603485282400543361451070396803860846762331221384518361189339524700003536089302395802756269295269619234950710732651107027260418102496325493647532687827141543509875066313598750133996084906750075381454921763842804198321663651867492615995169407346065996849612320565845197082556515086649254387306766641819674536903458959040110921288325351644299402756916317751250040144484325523947385353596056577813552226285702309989079288741748642906596120121120193116633275119220519739192375045517344102159379713907954193937759314693595497172517608386867288833228292888898669349677226704071471338745817605993273986136334873712232298134626675499104814937543561870293254090512737309650098312997210305085058987289305796394404132087065251199486590714044995135213493280134649716160507336512069100780635535194425169271668343135258763527852202579426217680307126411977326613157081791261512420623392479829228751415059567791271676043651707798666980936188427044621719651708198253079992527484202783675569514815568878006727049963941381628570998274452919294231921264370870272253562107073061325712932159228029841392558286072700571839182486443708775352649176112956811215331959661108394265456347346697700431982017580842158269003197300513728244561510782184662751388649582993393216659305356082639441203751798990286656041284188031282411521126521791711085150307610933298823216271205609229800914481552357767803851812978258391588363272752816286556598859215552098113916355524732049960437989975212137590869909559481755809370315510344969371033318476796246786989267002127097607902707368344573022271340527553106138502395480217716995753916178775738456136334843113803491159292198168875746010215776413111067199448146746183792892804187722469837297195703501050995378023046970993282121999482886523048462972688969158002615473531441105750878012796122007683441299634766480501310062241784634829802291711423664222374494527367047347888274204335405376479798969007677588042932697070458167168288757972180585783470111178781147613597383652580894727586751601829965426114234155009092420000345467357936446196975481773544677165294116133593891606421492169688344471340833881906753277653009474500100974174295656465246874590173394088686823213483279365017897959332387565747924463363121714511591181244317770726525233887021703706195833623472987773727927186587210546943398999523811666176337348331112062470974180605381409602735030114050081223312592111087171580623911015835888212137046742907716938572682058657996902003728426552944601832395993887003075340743009000423858384447160353036767219768039363946996381739200956018215711715470808568797528038351231568274984116049561854385139341391255778909864400136841454453735407577807340803599433988704233765737185831720391709496187272880284762541048490575941012544486065337969191064682666793751467809889603788184623351033765265160647641146434415916494269057320077250555943946619166800782341697660021149752420922038364989613387406606388683872644396787106164581868557747053446368559845330126246450113269738934880723287806811888995492329958081974595467608241880078523390831416876858728343403567099572265345954942371543428344918240699074243114957096132022600008448440269215417254171880478448432123148558113705353980379962486450817514203619712353531661001128154173374309331313509442616402184716388357770481604029017631177341846382620330658777518542111381119059653467314923013550356815706480322119284978863706479877859804740552427253121404556039379123241175389900197473801014547138387042559109033662753736440986142090279236677315639614087217011336369388278476605697265578921991681139302722210515235252762316525415638406903903215744974706382935687406516524385421447808041341143446056389603984745426061981338151998227378881289037712544007972009414774955187756940778482105837580633899607784328524697236342362328903419355781308238320164847926878481776807671770399118799860154451190403822306023586208345833596360228746839089652897164770217405920100550509764985740311254071991451757861429772476039192593504304166991913368641421468150254952106302403805502824069971698079950946982815795624277136972213173874547163970435301942548527482040010351369723652823103115925764326189119169759133012241402846028259359280566876785566692745496155770675819563791465299919872513407773595018515475016803690629469288957597899762226104451866470364495337004312546984777699223424272492686957441871304655762855041790205932324296363015173465583968218099600214919933117842581105596767668590713225804869286982739819993243965812548573755159161504108554825456049529375014941113555708852287087551842653186431760917496160740868945615712261912931443174333771221295113513271506054407914542051432521173188148273321926691861297614073095748414219984288858346006592075365467825495968959563680005755333402398555924076379813029632237804455557595560117691943894493101924420931231825362821888838772497032367094626656664920801357659002591933193070083470129813672042313448601904076201333963604363206661583874545515981934708080518233011454154268881272717799638553204317974266219331711372291870842261761972978294313315892467035287418783348938441000175891441046665117480375259038102445266609179288552588005821900955135325429523659567489385299775603192078473581081117470565579731857183550190885191440096475948796759260701687245914747328335787939260622485506449049770874940626501403975153143905528951021755094015148098394553782127771368655877619135784017266278710698530843209728773767406407069896559720021456423300997288548241493553733014761036860939451576716390222793021935422280719677308300011841596693731821374310522255197972707229545665868930152720076242538250324187069938787168412560687226541180763893818123420115269463097944858585037453264881552106495132860117230666202854732221511795377986910091898974614169973232633303848980960341922789687762982194660616134356290888003321365016608085092737163023840841637385712295702220134738055680616440792052746600023747969452214077986029532536440537116127933143717876508676047438040952719655150184815247754825824408572485195915661163852541745625440778238243433160926947431054099093365230406664539728215430042675977215135288937041966805073180026345526929411984621556476742015332158841231572415344468405692270145208150091158679654844928291788825775016971041782137663135979071492826655330666360529372768396326535258460344411642213105050603347974035521226141931576684408860093364098029581201466907754638218585153117218777794389048680040034019238394244223731348568244245848544262159540983925039199932080699882369663263896188489670025745698806755378874889551406369705944262666675378993232345131006634318581294891138143317710936874107928321857952611190667960546723824210201925205266301113259606822202688093600910417319582210282636760529482388927354005740652531314540150432574231330353726561338319211690203659686873156353181238023522891810151038788227060419329970462356115608662693124752230448157449660017225207725928188868679308082699567842881097497267184938636859782428188731230255707746696083633971857507004889078733281913361502567852701587120022098366379965395398581791703639916375778649328476147378880224115254995331683474318743631281155180407149766876794013115623650604146046392038919510792448451578118470043973318799275413965451561544342906139519285100748513516279766497066686042303590726057173109017059493390655059674931334877386172598955224408309152845446736690050508769177407884416182906485166222089370674362869150953685924505001459583227159917556633520164768221791641944870079956876715112271641616905424441715298105633421256130325237875865624938525167322261581171121292340918671533489621257161826663330225485035470345779856346475117713022247690743594816158998467129114826935560150068639171151865157705008633781378858528286521727492182987155154026710083392889896388895548077950211157933476122316628113616352870749986044731468253583534461616702764092581491731281614637982530131216738471241094752601326431148378261062274296287749705861440179869298972161224441533240463036898629602772091197105783717955608942964140515820299275680358624378635765225567380718750017938055904077970398076373946488636690091344927900751158777030153058204528161693665684473617567952868962032442389376984940390128898467451278624043185154875462814872660476773659061090195865569352871673913724844168661390908770600171432821767294347143197563057018283196166225291619865159371673327589741099231897824950324027792063734097495276252862457433114862690990925233667863618555100946864347506072387597419632293361833674923450667314402359253732962384090334067665286803100325304348402831959920817387292470596686394134063326295071855657271142039835181277470804559752991743177443758228725006299561292484197098716161820095695860333392113958054021034252590271335905949625855400545028243656254311170752322565517124050382811458128582420213801928212459319799070822093257206822277229324213086029684303941326220411761791618751399026012955304703537710477364820141964588549850221547268891918892709712819434331930471756242550987711030642660428954550801653623736427857280616124325835119560143314742555735058099609089391322235301382445498493642461556387913373645168743644608807918797027882591418616286829465908716053594288699867035308823744756424370290595435805684995555790676010041070927857793688338783456523729444166844390208691919084543128316283527048669279190720699744296762532462689219437560846067281019124407146070792261441425201222426268849610969097978342971557689209276209016535862890592400523561626468554946390461225332869838851319588851438347198590447277691732200736340526681555389152532237993289198610285090691078475432632905511422520998692499606530614737089669801284422254957140445818179305465037328779917653448549418934198092493277440099571275627917512454571347079374686171319376985640048177715431056061228096734576610667426763893918987402804130855439987403650779622452708069738024450009602211961139077311336918793694008971754452881863042057165936427555393768665388478632033841231568681123790596819839472998482672576043060682340685806863523950353992657788328599240348553048145650223798146974100872411475999943628023839164286442929902891273715710724972909202107559373989394562057328876008282801236413956934267376767288260807821117406725846411213575224486533427617625502460791334764173660226980542840060818107993799747796856430946130641235339574051584851337118570248697704971150857687403310269674645493645241547162943129316971057015022060567746669443371680659896609852359183629957131769872870278925477531225021601680509546494331482039825730255849013437861600770284231705144687372680802196303799154393622633808568406306090746689597550055193922686095465535512337470903488589142464566037200473775677330910781007609845890075146760076622683045360443419303046387838807369669926037425430064346959806916102483147570174266593870676680803978513028696656661613111396231084691314770041021642646220573569938626424863918307520596685678348885126371920376497183906046649560665152701824270239711101783221856807602925076495741560679748986491144318917201962321644327571002503728272684480034717240228523356809662407174510875812510407268599654450847732699074024419414463520144234838460627599510568034004019324473088610952893483944720314017083242591955349284290979116775114478952873362614145482061028918237904399023523193796812051376565840586437542297767686715104675406073928486975403758998141959941731076910855917423052713335131454778141098412669320731671831503450596707559429310193929705976488859749987114571226914368196156235032052949619263894425563620175829928152241631313489115091413686259783429610166177238173329851896680037374803883376787899128226021002360186905236253419943399330111933275986840144075660865437347954729204035498946737365707248566400714116228182478970118603667207218530889071220915585284481329561265495500130334318097263253915279121303431725276299092815240527478750877416982535729923792779017511562932916139370626514725132339156776342895056855420920944781212618392029141776637451084213981592888376098802834944273146664143205174886197219593078331663185933043725639153942997083625566341775885532202781106658239745800605609661725395605401509286517917064185861695554589870292013393610886726258280886786816516156921936120760073687872876502765330185371238862296611983437256047124222343650731241160304229550129082672094325833341092367533039938598882754466480368452818834821851799725620353993597308908565776585989037098803405247877909131952849417114483624944314056452921121628607426503420702235318099441644707921109683052683743730356859265420607826338672009189794543393445344675739154181000716756762547523737292395763912024152005738318159443151823806492623739421949413701583175317028482802340088177747302821738558332167596330920507826070401876678753274356266746484539793337934088679988557161824069425057344477833966771409100902231130861674198937526911890042644547640005895143384054750434385129637719832441957937203347530470518483870677278539799054001882914864744295311900257380641450105705197380369807034579336259065863141032068289784812824270291980994482146753911271842483042104414781164687848501386608241604690336962573204287616587137234726759382371061542003990852291198224047441259141799368509838277487894050900913780776764771258380064704554532304871176678660791016875837538387826288308257954323999732157570216524758149564979013399541947099866384668190182244583129895705201277433757299229089493648444787586293274685293669479756201747761698611071339857174503113896087492618505767650085237366922702975741882573148978879909753140423514373330487977538871386132826350473757407990717132787465093542773594042699379933173713279819601626207733399346009514713120348313244624094375456081577025535109945225979383246053084058969020689935607587651118850791866163916492013302183437201931274755159557362325925337087837352474229656549650466650200561057170909232824339123074039737413082067978538414745938647351443919045082111537181270434562419833442425300670436714495299565006662135162922934030533703785734494194088135412590659790392213042635306387510530799561067987310166924023225807098803732525662094346620869644689914210727046311027985720820655912893583041719566449535960341506703776603793264552698514009483107234996444940613867033608577570366046125442181962042604319543063254754830254328379568559156317445813395070612094103982399284972371482465887249471813307619791393095215653248426850049288324715993349505066386395024608964540196710559930583198450851717960759689930433367558527215274298914377260318988130795671548012765145804040854399844464920127351236230047879278121600083890187246169280384428902073886276746475744367761742313489019303799401602298505539329922841237582592314825947451261832536392485508636187128105343068392144106733826305151447349623126418179528929644252692301358088016145845377604609677220332639199979520698026927763440652942904208643402382175698716622999104561199013505630567357149149375258587827084357487200946161635137246862224002556546801760204059172205561195367432634999962561195640876240422338959585058621651215175675500118112994994688964837150483534036480911624460896497454583620978383872719704358883792604599276896362931928496499486702196390421311205279166987309687381489003847774994230151919497548467738584308558554788858505858059659204841077985938562253401472032686147969811733073430795915662591699488468644053646228029878927347745676781703094088939596574459266103899008237125780203203898951559457425012412123780999023887831941747723512446941550562155810478775783092206654712406282157218037354292391427097806637155950043440982382061393419571427406215994907221946183425318408570301471483513272206122899737885415413491252469792308304261266446405761421304338457025027123583228523906134935459278402152442468287188751557234088825417496872487582585327155891498374173127960939773603671182822887747337051803063367529345561480400241662927235164573958009982779733116665938078770083643086396702007383596355066864800461628329658038666154202173664444043113699833553777790921549994807456168696504860999110083778752559318515114185171422119313389218860619468340937392927273049503492963415159618818259355167464252957534376797281609290539986877892890525244915625741128846994031327783317061591983635774612769705180304002899981883396673960128046982831588462171653527497427330211383427779114298988113673102382505846789986800984587262676708711919903859485793204969529230475317035491854200497724839466514725317976254309903356241681220653752451877852915738328582457694498116396855799178811131066477938889833117598727715532447125922112563422473647939440740876448560284786409188758494360706438647161648645151174886959724948590626711150415547058226746334602062781301847589310315884049859819038711678120289123516817039852303729927945584641383869394310289984280250587807060485715807438615689385445178172440554261469579110695443244183163134526647198272666155703357856237807926264819865330681626047189351893984432112568590304103860986631952777119364152194709991198982546526619959891829591686012990094253525325374114438467522717771184185783415269067443651978669691961491184097406655340442006666998426438708617665461503374978671246273412416693400063423127585477725439098627327338523960457230660537634347651554047016467824133891644211773217117832850731360643559255263950851243134675402627231240277042249346702239246808606079465893798938303740474157837537191133800873030956311776157578873249080178395671735882802567619226293648137986708042604282731667421500213702259216747687727738463527801019484801037009935860175710268740153404479562757864773958797200276114819178877472592970379821164853257711098513029266325468467996675147993237572054541040365173610310212090089106614962146324115918194503490678334019225283257195495696467294529885342052805677707353192439743422782353702931474187026706690594204502444259062206437860532677363554896908300446003305219421006069031865933340020512851532679073157999034522575474809844005819235945804607433371679257016944929879612571698144108892387350635933736887672317703345555896996799039229274155619838618199983854608020961275380771115542830132504387225272017160311914505922054061466214797262405734482737967964916551204046930753410459563187760953313977090502781213078271605278907021838745143190333071831595971562244830128968214458909279795484719141037318547939514844254255878362436434536615855296400282533055221725329965644353919558024970512921642615294487625345861525226392442542213513543065455630423410350612005241501990988293646664390982530432353713515176529063193810201795192892799269112994422453919577800959313740868846549877811177077477893202067062822303941897231232488389691163280829320337931714039178856036847819023783901008449008742205951352315100808432650951072499623318837370554043233985242809188023947000903040248722562547374405365603898223087567796498939637356700730861244190746443686076615528888382773745734540098739847428795893941718994377861155742315540181825674668196727215859568676577149385442354777326815751210592913853672311827151395255461443589917519589185269009081698116034506265984570793287875947750589804095992765413710213347826584819350392836496634337911903457408475380900462716000522361593153713630643243346642770426731828363004614027904475586689836517670879035142151743101907033531209580591907179355458964711130220390674907456719736122655099699936065277493723139352458159057285774306942318223874370484453930510612065848131826974153431403737828578720928453200701566994236404139350374776889289403792257340641559034977961067757197881776372427534493692346739006183045484389923974406659635352350670143591892249272920706560954199948112224194185822078451728180512866411343658593721955292035832289316268134232608073116308816000820823392737669774829326352795733158937037117023695579294464220610537031953945734576877718770869583581472359857006727546162914037707471523153253519677500298620613615153682061082743332729928105823581283001800672051781861910200149479159296682208018316196153196723657505764243443797167212207465925551593136036230670390042930792045482796195775759121935115381840609752852214196534527796885959056353477118980592953202191072227371275397007974669955016899215774226145467740058248187895926421083018047681268763182586627432757511634969589597540434150876731140826281690791718329412808669505741918370970796325726888354177413173047604969694355410561842901206475799468544651881570910901127767822370633759217347590603347262598524437547830717349194229818924575896703134619830336633981383914681258354372898254397731971085450340757330408843315687078843118509253412313764561001800661885435754656157205441367048575736035597095482308826726170712255563081399909162667837716452050570568561818506093790707717467467787963074031906955088594617839865681908733065186084925646428208505685467017775809668031063438820787545894728932316529437806885622973396846797967593456410403184176101276336164220139966328253050257892303769199128477700470573968227077738028702003070529698663884112945396940790454319530004479869337999754783555286834745812838143006327771277688063099410265752308912499537827159348068089176379574577238016820901562401122912734625024582589848779359374332256104476728200320159812041728966316956311712097160844928331243949646684206626731231113691306364825051101064798074373719180953796301909234665047099750134078276831282296019942054794925506404394711272720944733149350901792772900627377684220942465760325473149663365495223588367317646259835810571141634081533312870454284608395347651402141866936330963245643910199564927840935419549892940114585054936033888748290797997881070192467879831495969913834663701902100682910722759271596392492098072739499130019720618406486897465882005493961014323056325488444405469577971745622901940243554689317143079741063411794312847842547606192801717081670316750298738163451697306027166154179491512902597037786428603946683211625405596291344829249430495711995841273016013240353698764773145068392156112665399102700083320757231577423950195451216333668074974871335980315450542936701839139556476471371055770272716987315844731612744179847891501203617271197077441425621634544449186339538248634865244880509215599833746988819017423324065986639051880909526688644225387246487577618366094790691059525890050263197213685622890205347408137427078224991551296014469054087979926971968450854744618358283997532596760583861678106073401235576275172516601701793761454167276631006008395758652794332231861297129840545493044882295812567632136365081808499922162187941690219188068290135090883432822522366020655387999281852878494152937091833345749995725973039180265043269340983253196728780782409198116341697913639118888691603665912338169376069156066206174895843551753797147619311989473525756114326135292694252812711935599326560108187348603496437747922067306522640620636306351460152579209426011829870167910610959536195419614232564103192181612501876507454624596617420191671172657343803208083108343282304180838404535517000307067379277358360820796911931813565919904598903245868581098314137080069060396395361098181482360651781933622717022971805402661763766981463539735506528699710828998890350743490566962767283103361639258787020821558449826993390274594533429558883296905109320752800332264469411297832322597265854408210279858762596704690292786261790093003663278482083568065577470263040388695971792776586132503606295184122667182582216690448640151028084926060873054538513674211855486256354243430406521058714897409366383135289213307371327044136315737861317953640394125698185895082698068043705990876810671895242280385293037333162640341613300617456155537695901908668628910396208496207170880750508255652312782658472921307782480739961832599774971047643262376583303143910277109335779449273713430616751507976152752155472178330269765508592049144497157154385619869056152322106934000426918344671817874195280227810560767378150446998293799176919609212699258645126061961600945806522673130361324022516821495588050258077402610102900039808785295112287758841307119948664934666291829937731906120549657890725001049173040308253292054560630899179872748503741179808956902783332103556952710424066464316543856986254135196435038118849072470893543339467831483132913929719249889646962782810731510582909538603842728211871024168297925094569760930727710140579650859828861064660278161968345890079254204370192204626161795205841707416920723174673168992837551814061792357331663837805012214835392811254060265933544966947661606381420706684715381265282346769513687210979475380598687231814720184963233336743492763911925220060002458278715853961858034995017224217090567969676928769522494346120894247000442364995965142852317960462896139449741981969108648694014983770202999901877813177794349642885830626569522022242494614909116000911583551196658705348131584430764744030562190362402800198534398217594646526076953768630234934298598628739981175761739178942814884232938343260404810100389246022248775458224465554059975375442698380387591100559922479892225290959010210215632041736744149799675290515143985575853224151805221224022119181494476823963249517855842076354061518274781054500032515683201821778182794796159320346896204636411011018817275823300452762311300081719838072396000013048164745074203454722190427515283678499739205409452762030651498871213050988704332406254539287685201941152655858319430492274744196601278218077627499940661705966454354125082346147189188485486973458548019818450187677245813240078848363822060527537681507984180822530875508526332338566341042938327936690793881309986055163216099987735553221934417259238938731258104321432716052916930263401823376441430060488553728877954424897383777131125573162271576311255791475553946460054964885546929577558929916113477644654732512399482134419670718889933074549733665921094716030828880008991623408832278901024517263345247108559254007027543160289541343379217114224688765642015849868654197753592456320232711629338787362707599760448460661520744789239018117306046073381252059032640892429960776047436194816088629529984044484291155113108430680782727892923330058633493997948130090968878999251072344893875033759196753386801297535966980404017379404343509321474616767172862823399317756191902898710648430347227791292360572017261509509585568259453145828147394809548489146618571529030882500252333430294143622776777807125736555606475454587299662079832909350705410396924774356716664940219708474279784325893183467961916659477611769681233471397783457749222533780718980209268062591875921161706227771683742539864405914367374321082192355858018672714737820559599675165550456367726502423092839621630733895808083022637502665464163221041166150114526040089396831699646115852382524957836112925319681381741263532402944836176994767087195530048459228501616650320387768914116731915980183315839311112780376128315138667569098558438915956345230081005115755076757844871868059002978906693492174773034444002236459349626963214013569508167742796147101641386069548616801971666550714314277928045297951767327708653313407900734806837978654300293565361679892855697112599365332408970871533450408993584538306368264984545390794744032224271261476971514364135504910226752251558046915606954274639543804492210571114094320443724514603219037194404453872741538985136403655301947474536508215908063084454551300308670352173810861220408660513575184245001439858694600796263741657190919420374496384262973036558046704570655834802594944732449584068064292297886699910267833418357697337503371088082599371934062295756329103730399576752503505393378862131583627606744156634530413869241900288738494189323514888532539404398601215349726050693755486580762986617063466614649674400627615786390358929851561528544692324456162109685288423569232334742256700034687776320718376438017540396287730530026646151426515418458199498688197999896002094731776963506128546746312644666326979690982489722159399494225368574240318155714809278260190059153294178492421809249345130528928945082045246876751700782141859956202268257322559796628108274194548031874341648525400182644353346647738996405628146828406748007419952171179808788301679628386678963134538027158057892652494089172271209207845867756695989864892584607603978366941159578077975458796472264076873713815701414230429100975917173740577615679931263182924665824909264409772028768528962461283595905572572607220471172523313996844451623701883305043810213073686539153472101041003280662139855133669246430049037237674444037146386465576864045011897556923001483178100619859682814632421285644184545330031663212075580066858681542380698304685103874354992366503317408238253184866115723636502770173494497522855114132166340727383442198388360333821505796590788819784139149420206977618462892675600057849089510516470343353549752171830016888364671669151492197493770573544271562497786372879642705543015479113124078521362556301806013333933590029384709976229680719030216902819483413301919745193291842514667663437867266949229390186825616362385686165210946890715517836976158886179992944206545377943169450172867203988020016549868493753372919382809723516564351809170415370610825789323255788915304750556338362193046066992651215650167601371116840062025694543124353782403222428025720295851649768709917569335043719874770114620922478725213755473215336105085722715993815573761391304628000251206982618395107416014956498331052428173910799336917011991534656810606473510492055230711056456573157870833386057658123786596554117358582292854268965198916808990436194810756801158652592881051422298598317629564027963626714384438150970621654183796791453005563594080781782887384665554528765014332628750299496562920518465080659254226980752604711198368056645241506351908181199991864216186022379406787970700122728325514594472355199678416778499476778846982091887193074939551564632277930707265781520116173105133551450802191628680022592956679479003107731465754849221388993143843901838478403796129355801492062092304717761404691907745461612148550447146357013289969117494080726956979905213172834820120410896229878260988056086975389738444888970110230069125338771686652073889174617058180961385560185603537347413696590973148732838335812729346402328452876173117981640348592598727462909778731349799877064061808081878261783083214528790830395580522015833063104233547167190139190367060280109089317501275201548942988653166194676401091390721813406392550556828523224277794910967561093041395268823729659793253634437805855329489985430859351993436715959855135726805376401243438929196799533946676943846726233818176204218482607671475667188542965176971760582413449566876754541656691570849547641362565991977522476586839120586895295261704188335039304712771540713725337483449599741980292998207295671234213860477961645049481310721834902880272536299217600514599357003956448695965309459874105171801914856702285260582249512539711881697552258498107806849276595663263883040577498425501674391051287695954399455070675074770701090181002776690885460068432099094926170621888024965273829875689824049018757277849143692212719350914958520807033326623192869855853443161312703276160282365143324752240269431806505305399488343806903369911215113531769780289680461689623104047288433582530188632544994123583550710691516567068507304301051280354698370746192039443587510883472402769630172966278190350927796062821220863071049006653886976573704189766058087008193199222660008919754956926016168931039661825774251557751787794811271805445678808818904658488842511271624185005750385059822901563808331214702923365501745907318869160750573527620701782995788061130277263625150928247904411144601003015720280077144706779374249813201410952274050103375724292010760682489037243972666976255735606307003461367487076539811763846622213721114004739689509629471400804462261386949476073023967027284855788240103589386229610259552451347039035357422314901917384580427422451011572942466515082507544416929731101833616103674329628635164754467504532664756548313634173767401295099766247861443967370743752173925519198282467136896019033911915568631664384871826120340822277106277866077525121044052710945682547955882130526999868324871867286117516126680529515339528813083301087823286033010804895437983440020963014337425454207965618953427102125134239277157850702578194937674115962373398790211838527039418762791025811600643140859488785976752382725057431780767474692584569845542156745866803123099150658533820169108411160790670480734520260011453181608274283498901293183476218596840744576242177203157354093195711176442347045539029434283748426703017918912383793509972463794307045869507341003135026857475848634900621864909086306863811552001156309926026764836543748053283610145002639049963050159577463707581884702690647185715428194551823187544066550890190981771863667621318788938785058455350970205616926456860325320629393942174341663741708782141881324297539918358151316042743580148648006387344936750130038295042897325291433378570932810928643700421022465230305150949086985937370773721152398293614193335209884980100799852248122097605434218271925170211049049479891732946998165120630039863838917009836811552034009218913264875424742702367920878779618054623356632178938582258236688881306517628926209011075160410445969605416559531049489432714551864784057671570441541745463989492600260614135119408445240831510116075791516175421020624697401376876745832756692055296278029420540888382472822379695601058473062659840888620793184261630257996960707486682044129195311802687097638384253149546357453122322357441359221868755611180251272930507737274607374676216353322296736260727256033372731826032343053719174622153359284429305693977177408281582220156867802737576977247902452939194557837898441542497877153411750700909826744431073299577674332324743997275560565828098666447598939166773260497570186858389923593976719718683438804319747045940649901851571553535622062757659059196418711802638993838521859713526819526974030717863998821664097942981285072946992297005303731912749250156675370051901783476817699459148685491472173698052711721586126356911779691874321655192034807074155975343689797762777107894816296421636853637507344554589411154133385303627125129428138104578069043875975170241603627207914756839455382470718507450212385252908021140214942998596224692367192931489211496674817837151252609400557389285232094507109959341395385236122353672726899571484390184482972239432006890685986635208508087421563791260737291638584041611534925658206191773607278437206518951534043760055467816227460432777297554865815043695634897923721015096977857847107609648781680230932497321786804461554709502275569754772442664721181838336607456793026020180335280822727289331406849144083159995725251202138943941109995158139538511097447197515542869830744549214403156357682285697881506236671972122652275145786422904256019577210062169207766080927485494065942525068168663458201802458141256345098490712413515998276669144268786981248248525618982561035913650085688706904323492945923535825846606691838974548316282107386485836575996376094184834375816812702749123534565957015505534153947748493753867820167200261994554104635714283950294223679999056939862256576100322612680263197548142272585611737225215302381699497819057603847183834154563080731876333675552527262732555954917816582719208819564717134820135093239445858804919781945772569557274993116545794608562141100684389951271131792100061280535674462356427851539290057818097304159503382694267102819354668707783573372453972385280216735541405832254612949238062046200955520691589929653325358375369495993056326521156089856021974036706880925372381228878391821557358018755620995774218325379958960845358085015389241727803638760296693774414385571508302084261373953063885402643941439344801452626178569600473308992596307205306582457794826358360217792654907600045536728789421310995812578314443394064059057958159692636466860256885585309427643125819882499228029073832984770551395013480967755888021372326235364041079945501294392521639035814157710454591739517311985114342217312938563317082730548615113711714081097496172435875331402516009954490505549994821080467097052143965255771431917175918330309467021575829401882543700061898946262266458802366373989129185840133061245945417068959523216759150525137535924630801382772513164400982355291803295224632499272812155301041240767168362736109122861846380838112052057379443632329637090401435622422635896984563047912659475005730558799382855961201065850494688853881754992995795621453498015317545055789324390542631125023949614789652139154188764803581834945209774134431918130884439734292134973113691344911862131366903121338499152176456595447586779040685349315022584605151189381174262691680043652971969233015737957003625299761413257794807759962173314676009611356967399263503045406664108969307101889099364561978712195481139469495616259536936629202953557213609928736972089835762127059315288417084663844725520995466999494144074652018490990311927557726715462785190245847581953614131954698955045878257510874362700695297922169471330392985061448605028001261596139169045650329771304683377880459323752778028243251746753132595510662943173769384840568302010823984551965650610891635508053123455578905743390373693660487718887910724222764932758826844926903541615364192535621727477981832736601222014467902286929222623968323010651598310528193023736839699540002228877298481452043696943244931038895428749248253397138541200545035096346562211013301865658371032046628580093832255694383701160854574899894411938819829641512132094977142209059141903836101175340635736078019764705505643426031984974630439730558135658625928786644664462619205589824238884126067340493033369311607253963716116244730317688792367753117784704441565278456648978719224880744904141559408702195144913551679767641392087969537951247503484991468404341701693303635959299170396463086190839375618826348611411352823518627507371440069969564495109445231918845347643196364713883361343260525169465011549620290296661334904594142882284869912859403964829064730152207960010157878577848155754086622932713491353553966270681367293282968844612224430644296661795690166665034837094135043548591009125926860108441937985649788126786293514561752584469751547344362825329517715251092195681078822233359822030788471303815486741127977258591301539721210941699389780341159916943016986391070245151653628112373112737772851611374715840869085538775878011525089188326022960834631679567027717867087589138543090213390073288051684835506244557709007451164072321631584169468473638387031538156321646366272211701767628241903865314827984541466665242329717208163482972150135192608849846536417116313994810873440429693947544698581286053738951713038438898170022106419950944295295153870265286831034401630866811020151936549641003484157822792215772789544406176452785336555759883414178384021403053838275265854086483864160328733169770741479279395663540824576880799350425704050429325718099716101104450056104470488713773270489030338960123589404817081139763252734574555310908570323562845111079083952246984571714956869447935848483053350928348104378468013856630136909351641490140433652477211172318947181759255443840084221329610925927680379191512062428237815187679380982327153118920783752175123600048655175264420864138485418707598945853985476984976091807515715052278592830434525416376334261311347137927116586677338429851485861606276282766740264118453123488866733294219448436022801891185320355288018700226500285487816411987733438022059889555855779782369344376791623030482002610004017884988420751755109786609005151933461003713490436467443107122086630368846640394259869175926499442624806100900416799989405963039451829877292079588577554715655834455830317168137414019405543225871162919043888780023532926593440087361453664263899397506125476252434185128307477315025243532736840760974025282401356432644696550627793029604641014624986747853856131455308623438554810198785134361767001617752856632353352902310969779540525469158269052579779436065050173286562903211018095010968676729265425887742362900920011009292701632047997017824538322331138616082833222178981650591490116351169787967024629198346479086360595548437099421016348130352792868731506749719233357952954702655223338550363727877202368781203244800661696716528693680114147474108894810197949949269735888091093838969864036648282171506076081374173375891532188841463653128481475923662624740444868945405331319094632187990985486023042605693325866906795548465451355471665305726308240415551330933386488273835312327019505161895008268871437990304051802354430317879264281400300671158995575845963588182378842606673694435766357095001160591727506900046268346316449352477430190093133670623714082541951882200864331238079515533202075072023016834174790088007532151943792062323030418959601680686894455539829912596382214529135496279871335620630312316346874287512864018440545391744147845187562550673063920097845384068744882126279261812943276555067566789871103839120851541391325024433480909924233595884590070219412085847688744780808710622611417542288378731230981165301209500601224366985256036102516466817669117034830574928859090046644212704320933068971630482559993619453923946803310805371852139000419602963348964510805825949304990068281952085956979735731846311050336108901627989393821625905651817161547290975115800693769013167939543275624436158255434866434289687412249830756313850767734452217618998423240392183867529453739524716156724930651225737577893799188320134530815188705750950016252368265361064725557183822331051245036963850961344497433088121278904124143891151310490038367935638581842724718174285614570815298770818424070795098953346959381047562576988368700538996640835546802988957791427717968614976634914644469319525874552454743407256545996127117527566159079110679453399272250283187216518394072723884272325463337383580324183788133686559256966070383927043357253833237277907520235085134549416501697389499581115698409623855158231616890726788732268249151601780256016598994152987469657720621771271582218050602745065855339831108004640337559533406506764163843614100049011850880814993052134650513837682347573990444323509605180551141815211497970588759616502823634232762831205858344814278932739155631421583849819500123292784819480918259394360220344160825935980340169775864787928040115060184155636191241369890552926426536560326567644252255118539916173323214135924509311943186166068480672084915608563425507547748158450938672996711118184318278844153802383515679089680603628105802696358277763205411009199644051281265432607227396055924109684616138022845471936314781863981365865250402305392306567319141343695254777088093825238007767125996738818544692984340222818249172027232102201193790150944345400360909071537458192604832093315195226840308691192113793350055407499094040201120922619206563885227684554205199078172517465352200724618173974537662525976859461904402310852661684226836411483444215883512625601504379858215610160626237842394234824784997523387185222722675518716669480603248650738429433136627103337277033241327115249089699923008380393760018661082106976186930974084475092630081032027893970249003534053321456122346045162849341255847261777350640887722404935856492542394553251804319346660295652850633490737824342903525420192415580064326992686570279693471413611648654942506168193200475348595162960325856146812662490542906036633824911316835956436686502638087892059184025256265532225628599904780529202086371437991173422968364181560468762438226497272327938529250592036149562233405018604423334130656999990954845697900512431756329890414321801392020999890964223636652980130052784672239029338732907670324915831603008129512753832147977993522994042713403957210338424874206004423187765910914702231554857710747007652135045487119132802049264031305209230923435984440152241897181529416639844264977981383178663995894387501111541818631647806045031072784820926616097191746158615865286210174582138881637189048351939789563642745727168631843027681290437876140382224571755333243176034842504850206213269992037652818125833579329748666094007479272916535694939611979807092955298320643960893322286697543047987826685485520427314946374316650583074525518903346757286113411458477911283087140111204176829088080310641450386939549315166879696950701394900852529847297816638204138748499366124973790428235705015537282051207066505894112001783945359121528464753032757928849412973177119539491817016983616573057357408937290788850841013486120550982562460875886693193596280168767262751396771668513675048084092558582869600394095632835009018945058490620235186627437570342084646841263395917532947980883061974350897944556552439529527747009283146225075670663086501939684857259389329787783842333048739974525136409981289072004006034520480610463654966075490090830784929263597994500620151005991084842379276154043167963811066216018734897417870276307504031482043270642383971727642373682579851856710643800481657272089835466061370745818695597735081484770540586053056536128577792835589187047640748217547999803112457031858934261235109300159929388301527555148657879793963188683565104412594392563092084319824318433320686810793894857010285753319877875193682569579778784035108991744915604455856827451070716406603631772144033150310954971835539921045982562557645426899562893072919318247566496668595446196360604268054298629695509763387736849270538920842301835623682255038042278649621360108799688111442562583886792228917159886234667080024412248903468044412424664103886156473838363504567127123173338825702370424190358441495485180310059937397420736954731697550251457956018535674164763517368712493842759690514954348484877544958451175957872353378023858498008284660968791937777315216696222048942022813955015281560853330784205956943906864346108008747907077033638802910049301863361003790642323206500515120841584110675837350791631683597934046413828328181674096225516796129328837138269211048479982232517904941894029638327351763481151023210346804809535551789510261999071401948007775581257122556202984968517367244381489273475521540226290116900232531986759347415508990032390678308302369418454156809098361062833978148583116041460940712555721510980121259169437368778013058735699903572977331178553654166479538111980707283827214988552267298828580569914328267678454493407498795878504925930518568569065720233368557583636284335157322676176572386948849242023657231944736549017823123349942357006068448621780963273932654301010762787176775780238146762445682885799291029616659548240331931726917523556319463499098482212981403860231526857014371522726242214062493965143596939089904544853111177184042956552319302144808548186112687819992930069875371866961662758230876253792297003348833024793106923571717815040731212061911363383439713769131620573457901055984244635218086840270477527856406502825745539226212775582579101269578496303427154090417328472086905219413213509190707433520377737494317687869184603478214218955289395922810516315928700458405821095399329778563291886203813275652539265572712370004673111249232858442910486602820113522842974986528769303385859063394270679051176286128611023925768850025092728135594103639782328455815280620509504163662028221344756996802351925444453935556381582638278133146977626044967113342591653185914205996611335975167070815229070457586104671710506629697541356625950685748987420460949049757869011699423959068591672764768389961989616612636650606089930168924502454936403937734380737407830654659022696020533671186986842848301483806014787362247588324329250014532776624824485890787094363303982237068676346776381399805752574454827441826308790163783343255242796212800173646221932845257210541531545175037192992639199582424461401343975035569802977371115038259087018627763411527492185775758135873106025235060037190616986718511201143186814067063131355674728649873523514568313043871624629320284087948970244518832572930889812642880969165173167614988312083257778872655676763142140164078681480234370235662695213144123994629879079105114425028513982435074616917283163128069518377658240649445236227063669065657113071097594107097607833569301236892232342193237275849939642438825004194557112651042983901517837546319559168464188541507144884699567514010778412820406572382446015943384488709666671410704014332918709683055632302563696119935185238950235526457013809314020480867559765136422256348298566803513125560029044376737995068875973735482984342864330793199402857524389356208036201397033534963491860316068504942107986387645093066933421361443000124497889220453997165236994474827983295062697773819187607337110654441338359726549712715487394987330655273276369344927942576046602166325053791479319007901585009457015730683898854502677969167453619073213365741209182253195823872965058768145398811680449228013711676950567642353810747905198583001590050283296567826891142638245328668076672067931645722856334171164990640730208703089196903063610875723340462803134875543674039289108048579678626257494897421477365926620738266737777372653663378937625577043335307790165503342526836681369552068782326851002133359390511347203530333006301458968400769185856255435751648404313662570909376534935616097743319722411923455991329992664235730653073113785845634748187567880961696179087640891262250743026877343489023567548541545381328698348450549652833009742330306156394243382607300387016331321462009472052369518273811447648240545239757414933285287220799376216985872899224050957532086358502641359935854574242656398417744667459303199983117261477063875940033568841507825297789240430007306326641711916321844639841845375931532215669287653680964626315746946880911682913321060699642737188776194183021680363897293662493732091898964463327843554407772303745634435935978755208602264040576924086134490266032520007899972455150047779759207351812609390100872735713962372449052195104386010356533922325452346428564796299616035020719991143555437170891555861567141883023475016817744596336576090694105608190448225422723093839012129955062971288065234951301292621155602967344819680224821625448721995248242945197490228858589207947285379227357824713415011506212370383161371391434208110579190289397335644202598757395329936495048181164947494630704950014768915998934424639273021510308709037451311592104925725920626640824553244357201547846365311883612890548530816931605672023970989206473277745276008240689716099985462654230635391435316256233924916654959781812267503505828608156067328414524081226037843957363087391384962089627752233496394000236315428177488535873511956671493622222254426811768414928060302497088075848674825013871241547597451720252842329352397463996047297652942831443212495033051368790191955131419135235322184878564801917852437792785683470119315240309046119944474174581361750310322949225154985755823464009113729403399106823796830799584186860352085146748594504561945644116341208943861336352377455919501717883393911008981648215896578120970685547513938716802030005347267685231340546576851653321983896344882970647276250270856296734461952355267550092021347325427453549989622570690963188867555808186354092564870747619356230352471193453860550578216837911711172787636755278532567083010102764742569761109096963303819732773639741607445451184131442388306648114095951305522543003494098135696031207525543106163156060537410641203622138962849766325304097706899716904557678609136325890668436758425475270855993702613907286927294737844014767425823188079307018292425088563525330338052161561883746914169760028343224198751107233497768690718846393809369055538503473678948739413038269411461582892316444937976330060605175856657303104533065537764373317364551309318186960128178465929930372097085000430254852924597780827923402561439080883057579130126935702094918975510134592651095331727252134100905404257400326509941993889568745363674946291999392004477787367627225992571666684679635612915588722385694520731718639046311881007750854621181246884672059860984146496847958784733561132380113943150288695920735407973882248456931582370061603060848137365601746347134975865425875502058235019893415216209665821495891931904815134753023285444362288176786108069689787721930802090535543403371141798499839555713603542667269074712413079602273174705862591350349442208141533713502662282431443240776464799204936287777212172717584260961404959051500863437767400386886132661637295376859005078131758725499921324955660079734697681178096155871293621385572134667363740998144775441747394192879012258720888745050708506101300893546822356672801819840508133743433046556218167708073551475811700626490068833313245432448016694402640417998911264807403158485570126317652439338693214939316278365957698675134029745425620386879824161929879244468370541691143591024282919224674125016150231141922740649207117147702707347245306956146191424903043723669879780749190452676959833562092624363491143667293022156676888188964843726956616108594940647283089030825170061552864527992352477522869316847289847948832823025229552523095776224856666086162693653953149420075371572984495997385730869384599765234381053654562694286887416224619622689474465052490705253665390532178940249368821875182519166749220518259438881914138891322246226930244534498033038199947818399097676687272505839508296113769978439706209149935695074007327123607507209735808803211389190941194848561180027795473046441596293493020043091211509088246216235856838730788629990891695860802015656720347342594505567574809341374874389664255938784436073644393534522127101298159543502663156147101227644045677063676976185303768202436341018565353609913588882945874621639337986980832864669375942119599234343627957796429026268522657317094052618363061029654385533433699386139597483471139996005082509361070170888212205587666174285996839261420878848841509715419690390374084488753108569027706642862764275838968861343999656221335296835573331103689693052753165629307352474305956924842552252430943627373220352984040761187250958446495044340962054135870591707988754060161309837465433697762374386065769047674183540109723118374706158705981092188163234533611480943574197214585955624416723196817421269751145844159481852679242034185313782532063987819156797626269893337432959602071268449989495598848391988435059098592455340172755849942077386647077741014432152352663665634826454552354485543811989908194849219202590203713382428353797194463375347344776072741145117930426311138056972942064611783054628034042882057106285756030779864842150927496442614241702463383294037141247408599952571379699125140430926389861525573552967759647734254691868880004517113052607591203484484837087201784878585731441889249738055217008563443162555762852122111338822303597245484524422442044625157228945860138103019775255773932135481473127772596637531687099192168199962177379650582682711020572229831172946907256940747086641434680309378718288792272209857526064314576635092291009979042339557361405274613038870603707272899021089188594105353868387886059794735650330672653498866912416338911776849743456037922965711767214124362459372141675275575291178934516960464929306207360229207993872299424041323625435245447116035312966666194505378095752921356136643058885622094534100267688874062132477898647546545380387980179335615545152178891922674381666293785233562046663969152274994885708491982218796880701554598100906657635234943263272923641788606166166446806105034504515365178247390223796539494525488459598975962658609514142789951842028336225111582873990148257690745364802194717166064423664552706767868176108494124208449422253810312096782459955019659125195542532838907398163460085660360669159022439650993655118769639050494786405578205866057134900438079015532381463829965609327233336623004522191734845801475233293356263518358369410524548178998998832039110809013968814316730053226045026311345820600550231606459197727743281225200178052562940192677071312195156488228775940070979967973070528546819650049301591103239802110219955900228017560582453551122392952911321122838791920351263487927846082326163887240244075178105324429060154068983967326784285572944157324763140489578555292165531991674545650087069318516775847896421217703904715655392511411025542887914995700793712857220035846716975965751068542046698125539584690116509870819918483178750371855693177115198926836416672609977173901100868832061061889749270242427903487280361500196110960378641625415666662586451036619806867620350155828669202684582743779974382654891907901375874648242068380110911869052418041654219717270752604014079323971220111871482520018099563124294548505586056994983058457436339882475321861586705274910758650866913136218052810705011868518687406594339440313755894896583384244380546629451382773092786780886489722551718265218615686768578084711595273916945471704246622501807494269271348418489867267713752055139304922024185486476311315458415803532868941925848881033356037408148409280902854797280799136649666206878165721519521026719467479721809201533361559688368912790637088914821969190182359275836435201715784956160099816780076814931170258483175617240670908402021197294572633764185734096588942372487856902603129183236123411097615745978127240606860417681901255852557994284686196516015989748742398939716458676265318198695003491783609952002788939465054307588283178865836444327406194762450832407328838465755714379556088219907934888435340127219735075856372999783865324162490962002136519630445151205359845189786496595215992203463570906859409564981421992631512267632195715799337587298991530892555386756733369965142060462753618089498818337008139080806739847676979904355810074361907857963783564730655834064286745452000479354918195682969719074836538907328952125060030271858926728835519533698749831014423193002242202586780250925516334624081814962581405113840068769392874601775693922092990068830730930177384983859191728044761227662814945146844526537618395938800889714391770341557871259093490943691843644609594849770598162469095282831357720632137298546565723793357947865082128435726999675206937065556764592681503793192609069483358247907401051773121043902769319975444602690556384357288715203417595965271017104302078177570725822429022086100827599576301661777550904112621606564075010706940259592312994986510991346758025274508739775224496873749971198657095695068060680242933137018947002057166235766642295864247368730673048790041825648975196763494537814531476145433941490535216342126134865623646543321459191086659181576772343956596689487469221438758131250111942868960016194335480431548029350869571680869954990938142624653962525266646514468471454931150839474015053265112142125102843720644975469975928504170666692947102182430366813517645749599076992717308496655424789167182394662606181543610738411512527149001630814960164643006650021864368792453717047195928001409442286895346896743562531341367662578269312987737825752733981312822745165573754046289566866551689073575512550051379158093254188719542757939438518290955279756758534916708792597676444126861120853540585998867745811145097517869089104807915470550443001954337058582109595998181597607134956115002864499117898439210354544637486473133834849125970134797978437365561895438571064961542114590835025838655747606189171140085248893493233264594611800303897660166378858811298366971736312149414600079633595139271171589875213832169308670616523255783652077026757968209316612016502825602592387654950405620656817957141279826633731632297477736489882127146411222176448085835180150342941306512922998225761043739133805119345930381712706751464340508219167190827542600868683156840491906098452648396724003507277056815870548912666602687053771018888757082901269900561159559506918571887603667343436408179267001809402419129557915559403925340770156742149552065773077159720123001929143281279788828117389663108077672375949402841850374886033075279075530506473974178951798136097118734463144758508487429507596459604420154653309481128032081608008383470334519831252760989772893664592756987513553300765607049448997874959679377920955533384305011829491493706293126765044349127936703363885008539373176906338824287092606879381490137541162626616722056129770419272951514066802554379636573614436874924386806088078003524289721495554975481060334260518904119730376824135270205676046513259458343382582013499590042596708325801602784776556109981831873197897526273549089153779061571719659141255243325074430539749006433854531727320619557194065221168701306247991139103620866712190839805051529187421272727223440340564911870738282811463953584620366545391719460924644321238504271570398954970759247242395669939224625310039805568363657634489077258036621881861474078508530196191295797196189628785462220435993910966342712331536839244703772232631532224683873185492699113826853371710117404736508472389309304911474602135023998286989859364454256377071768852389946634687491590972079049970146104953401551298375452338901330357269364886988847784981765212288552246373736927029723020855266074240533686740391620967521851321322861441458483920367401033301736608190303596803020526614473886420151582496060737422565194189790395176462455390814086205612004298058590829827684490625375338540343983840127969375504560723108978519315314614531384374493823504743803565693806774412010476352218039563542330229383879466310289453494243661187947385764052474124941232874328233387544694484907407715791594143556946107977918095887766701495912717467417562080561031941729793388848582538386655215778599709682858678863173665103430422092414168225714806077318432553578043748671301126296932742405925445635120624659694565455049072713204359978759968851726099456417809954351358665578641353596296903402279834081934115623328110341146349906586168003512142700993716124129189883141074473666043107499700731242416668179077817464810889467164318016592941781750074988394280027253632581370179174917330041074839498716142728860048586701435881425679312873003586191316570825769992673803234438749849076251392569756338201413736738872829341977631498703551051528491406456410981088520683207872838180237898128025506866551749584550377835214498381540355388675085661971054627394950146549458515839365273468461981657230741259199745992163937899906929647714020307575227701685691935336891787361375352835024222070006591277184300211166955540597141104486663760117720105519010546174897795961109265063913486053789556835163136300256926569285519019362212143481269577741419588832854997827961993303002259950935915644253519905278118190294080406102242177382424616540807514873738817906394956074416927919034014319095890493247636819451468452308580468270549574702189329092074081012144354102436295363152347447564695498731223095252546287116034939372282490745867449523292196230270154897366273242683401841222581715000702286746795126904466411096227870416097303541721646081471177572396151133155474222415815327220919335507944769150409551610352838789615565967063107103290239140235579199427280249009141303451075080467711593641900665517434863642389365846725766644336974799490275899417377255252333398643697864176297093053867471991184781301561848487475685503215467564529611944500078389546961024447743390773698215745385916030542110659474581456765650373041488340565349957897106888060764923339597003403236815650293989879893723854755157967822148684177114167087170372685034010185043311155770860886009612632614189056139130854708944860118519457045920397689787758973777524886000613724485853836141229775946848570637349419240437144171416182010714381581712600076029430563764289217246658171598558471162116932375966023530456438234800799156084189500293035901239489224705118989274370332790083943162704733430297177902958247507305284283639571193006703321936660041699288107080458963155816088711560621696708699022835283226891833522892613596689030272328452263626845230363605682357534100994877321429450318143374524976747803351273425450475078975494440139342633666498810470001276512878135257600662716786500968084891843719190284452371178130927046350810770258372898494962053945682969699223513595558041930380276146624821874784217532198296538545474610670096450196336089401109240255486007768556683522823471231099780227687167333474110070836383000796996672710537009386629552720358564930455597693796500183750781555163217378683221716129399177705899173674691174275015679021110962470376735284580418390946690684360648111147900789346990771043725402072876236555742247455500014697592361462098908098044648946421224791526856820542022110835150267276889081683235170772425264496195984989871194388734677997788401586395562159298022500179717321015825507354678802439541183140907319648473524810314497383417105850333770574093676805809067693210327923506396099292955855736990541339307536590106908558302421618206833507676340044083590494590677279806583545288326230092181501446018142908875262824944215056272839429356600468987343462353784149703747507854380590179482032751269616918177116198234003221463114072333345102174932045226500316360211105581467043126657644807825851450646457392942941875052190308890155122358002239372985833463383759378831667996157842469774626863975296562281242620557630740564464208635045925506643950224295904605255177683396364132955143775086422483342296208792809728290566854248276574408354104795940940666378587001671772131000988221453623831810879847520136427900498875298018442046077926522163194478442965968925184041196684397532840752825257712726722138850187432283056886951188849024070391998277924785767340557361661364844643141815456758826198656083530064699672746468120315295903185003696312317322229958657109603730206330515344350495158601398670599354979647747706665361484277464787223804163855495719121338500181289998086072987271516496767070358741980291735710603696426050759656179379763151595110238389527006509796566831350122759940588878273334895459523605847783987601225781621146116341272786112405785012968323568102825218578538483908568039404693842703443419310101672703744136029810609098488426136364068810611393108363553933492036680160031377420052308632281120301729991952231303968619277843855326225161190282852963750408545278304504225064352123247344637109789422642712861705376030518262834732346936340086233666162654295314904648632943155415873324952735234085027949797044373377493414238330202565096010019814130929600211502366686176758309964273765464518918905247014733263048990986573056037811317214886633269424418364442424908743819364507208358781707497345635775733366705533909399507111404558927024585087796769620586058588718333017893231258523284613206890130019795336873426205221472807726141125208012059209124153666671145804640008505572355045032424606984415436119787972517450669645822380245668153915706869628489405589644473056678108651724673901680614560875884870252515225583942740874798357171856727082885507298840653638663367529582792416467092304952897617130234748051222177263103743003582124078325116805005020263551016803650247174731867679617405660209919508606310622199100169444547035526773376484710071881943230873923623928180230991554980630487623461256129989304126317369607374809891782091850649774667822356189189172361235872043195655499663219580639111446660031333417105709280311856969049010045171543493684403882153276033499795893856374589146773921661296244375000913546868597195337341335907735481546175087272658959031484641348857701025926757742007068319564101016750509869800797893127143944502102508645221806385271699863751402296653818038423870259973722025891139584136258066158554164281314713908296787835163970809466260767005443846304985633843170408120133000329649140366754415829846599050400067639574444710474335905747351635003772334674233186085434757147136186333761445656708208758947893626204103692454671667496510243023446702675044218150516147143899065392417974853157215838281881296910840507933268064104649584909962393781685773074168050758358483241431457108982441272595227039961273597023413286649270419813071685167705760542752311196438006242002100269096356841548885495512150858011462894813809678563156908976087900557586358769741490549755217221849987575655494668459933663729683984105714977969912136177235751915318305220773732766946832595022596100554112847601321732509089203046491592417414617735128673678244333443234732677473482484012453001326219580697723857021418225924179591007008087515305225785758037304996698917458546775519464628815341011473234592000478152773120555341293686147196283303916823434854074922015957311715507243387320344928845330754330402592673799073518147821276030128418362609902950458654062250010962384187538851805052560828604959321751799008032151019687882877105859938302693806693948597303871074322928708558919310293927488092200084720275221988807534214201353675135788060769884580458710233412808456232902508310114548552094177507315821394717986813112695858202344146011798160043431511597757474699763860379772291767410850682086680767436063308919115160605747564116364534829011750845394125551559746534179577078378917408658150862276223508826446617479875233461288570831002221577403811794329211115694926581582950495669326488508152193665823283804755385151660978948286392586312484707538925910346294838179403360244332997841084548827044667203548504712919583038926228811818000587205674646631720055381684716485631057460721137417600773602135569576739868868341550087686332502540743979556533841752635786694331060137310168815188357522621458297864282847968964083663682869669209421459732865215073874681103911046917654193468407276249688095409758555264551247176443776566410827246419992496381876121094758771923829922758882465837140449949318561900279883606785926646942352863362641073569708505047432474121313519208329114734793342927159740614636374106161169979791082571055014688995135876751792064952842479075107656512422830774251718605817873380882283172417556251391620687514426500242584051825266381023315537061370516245988087668326157614182517697397444298141451709706417184480175855495287502931929617936023490368044281251796126229339318138555164305285462040850232383742191312528065040393990275002922155045475247866261747110408612363569882948594872664752585278487503678830548208067100673448709549300209645640571950992771270462999519248991791162526552944917612564495167308976063432404083918176367817266875338054881927926920716980941564117126411009601984679221966319955029598829124437039029941441560581985863964759694345533683102187671619194471801005592275210782955925443706045204749362748145269774934205306809745733141408239008580617675856098675441966754949390212029757632628803164506184819521092622112966647308883702079843695258308941385282938855166726346067390547568765437977239713065127896957862320772891069715953047380064190159750737340564065583638104251312187547900197589013280153226185925370845057742437683248269098481048844853205299295226421036005713723035249818713993986469010288213832634358086324298901288760872025717529487900373473730618813155899526202212203031354170878897190311942372250133133805478894673597562549124250392045288669534310066484138659413994161334040336620363296744321060062190402970499611535651407116837419612415416432459085074273526801442815301203792624271263265970828931768863913507884159233919845176274776011943172455898064257043187323391787818698932279897736787626149432225642297670347501728992276276211725948978639787418597291861777160860023559556750763519038219906538379068035078341571073433165447572705412163403457786035819104677555234794685394452623044669841315825006908026399590334137944031594350603151760039507217626132500351196131780949747483128134441578936110153799595058299809265183754558085101813044110596446433958679798547213262883050374114152144211633069148837219122452624960647431111566509349343507606717983616099113541221891422293670792669279624194958547014246141560674671975796855058434564784834937389597440481797557316267004922723614670689345678871166951966867880047924819085366876723492102114543665059267938151787405716180111607926090676798667535694567699046749185489460724656856872851447172447804216581969691327649378132866884547824827984706989232550746394669690241595973139182951727580589480560934605485627421198416673847128491548631861022423359497922893989334982806043911195064102838488729674927392940536923736990976983474790716997160650061147552362808546399456064003170155282337070421170234171890010063729040860916810099205815523666365220837397610817850202495592937440823336375414165330137499859578142534457403343469014311221131003925152192787241860252311664755273800669570298380977737407621428464895741734475333277494538431693839284072537804481816517645070104884782434693026955036129028453577902760866427297307357428799770899744816286170206518781445740625319746634190811149207045006539475802285327218168413358298451293596913361206227437439822554579762828352796759498480471495021524636376387293066885673510788707793180058049195501018949007742095430487611611776242142055423411317894297657259936100578528737962385611341824914447097844139000240267111414785507188071629076900763320319657810883601692356822411289020167976454692492356237665636140734993252071831689032371916669227986356232696687096494923084475588876463449901534843198399410922352326594283161184170245225494515163661247956150992516331442524399910065394584737668854767670539919737305877358324514966641104239192377228815707729455537623495934033325229273516862396481402373759415575787241307666620595882174574944926356749840075310854626222372313877331226941344616231253969617557583638459295817518962450140570555554761361525487572664906224241022189960486561113323740289540826462837451204170989501575757631947309595324100069637503497980639092604029038553679881472546053776632457810290996477566441839991947998433432895016979425733921064861895097550174928163124792317383195023100346942314493405258485417608716602384688835180957737974724694799707799418062810625774065403253353816504054491294259928012941879720604542840139053379770675502120477759660070299833245006405264804143238054664859881427584579110059170914143940176651200012010369261973039029361045382672257791245394725420407368421744793927213239490147899305330878845915132457249103709259670181310973558442545106524467715910687218989240866328203055344444428043596147921969928347169368693811938405786435080290008789261185129550648791363190659748878410767269395819915158916383913580186248467762655361268481455607575118833312153173934768509307209463275026747267644528132637755411622631216112796120938371341590748524298165078572351860936404114121776587617001203349280791686791762480457625762373316184084964924542164549286313383938717674137382625710626987324091703945580057427759848238840928072093769794808598657961496990274165249563194816677878492862338801441391817540033182446603802791553312370409344373199390093015268607735856959486778834055646603296649757902136117170203411138827130763863003575722147221715943827164719093329505969604087975686471523807855250908063469471024765857030377839904758948657819695666981965661494146028771053694686189318398821613409297946245045927361662158097459238235544293677641737931916225150476583052870310823534904061024438472236650236821769714043127938756392480676617286657419216475968079225629094762316068529873748393172027206709715368919483310503959198200737708780683911599522821658578726226931742862897856332563645357188560146457274898553184709543070646899797264773696568677804552054918201447695435062397042688797291812888814721116272438796981025990582316076356693927906030414524002357127796203744943410368907594500940737399019705682802462885765814164968531767602978672575907503351913600393588164787576645801949679878576272075215845063525576337727328191909040225043472424043677520926199581388647460856747128649514909933512698502618802201550659107363230881986517946818457960542502773235869154783292755703807169513076313303787389209742160994966302469008672238799523542564897719331394736478097841188730700135276126788038133434636462211910965818765622419226006584517643813323194303826071637022189926010567287558216889237833184031049181158162479845773385696482883465057324526957648361374477797961631123934985389782262511199008735758081999858105658306715792874346694475947396030015554385943237765951471144112754818564916718294154832468872664361292268171531347186273919718925227866290000659906815034036184420449052998217994080729591841545837427324678385306712031344422490938482647714102454845654461529969045549987116546940512927627689713390656349420429239144966120026145431910210082601739060993844911525669151414543386008017036418720184402983536628777259847529068323692468524830226551498909365411758760392059084743151073978179964224719323226440003466309727517505676030348417568440652577805961454565964477346020932201582452813265327049460860423081647993361275556363000358656467427418129922326718265788766933212860925709189031836512784156782789401459792691849802867954431506062013759894933251862997160940447689217029140595381885648007680289717759968471627721441343266850949447154020666447438115053292004979326115447822371189285648597160148888665400331600853435055970447000497079534036217988694795177990061946412798853298998452889725676560011498120321015584122376756574947561176414163663119172594853769836015709470407860564358075221843549639780760196322588459873243094253047351055883752497647125591384367415162332268617029409045019828228758273318312584537157166305190426029784284922837473602904195438154597529376664839754867878669031750608339751954510690012275718480502953046788553291760025754868974999499488015069417414854111206438021968174430566477096570736472935159915189388399941910462725323296468775131171315254239423381369336491637429096888927795593851657209553667911296572998905391277819140920190511571108124305918114090765044963194048006535182409434422627482513675165301723923789603563339892908853240938930292426398594678329365225426872181946939973530174615220553714055224007499052084271040461551392215715396165143331321916724340677824303339977851704472617325985075590490423881768471484206598783630287553813048539978653541989431944395833934181128513967470085088925048056762777029475932614057133692993055361403351684835965330932538443409014986856442527142670149526912840533436335885966002154285777806780097045109570786375675134405723781249100333217243725524261219517983023180361678083019860977147461598309944725233952081928250997983803714807196959207867734564209444410336259169871087879223180954804638845698980859282276873397870686466588624250107497440055482055936452450173876658882404639921429292754310389471054774985596723704677550158650996362536618918931870811372512986752899906103097267827967641126149174404357008307715939246443007165384232833619060533300934753198582540753120693688723650614248632029707235956623398302481034469059876988546408632257209637005106338303984862990912096268463855833198639511357314503607589104966905995689682730183634068895280047929725981373344168424022409849120986787021259102678594314274291305652178257061572473551153885327377416411173886717509738264850266458796110815438874751810761963706395788382502212263389855582982684173406281468450383312294655635813423894670437374147754476510729431041372512280121490832094945698970109372566939066731702259436469479566730414717890541788480836389047433862444914995178947977685757846079663899372050479320833744075800236766121051567114609616254603282113615024104790684837154728486655724844155015980099319986372740232236433203236596478764266361477069851557126377263879874388928154547027232463310680772872619609339728208083454561250607490899004957250094101833933229699533492103139626871441384153032181182302814582795379220508589171125697729198327360346204356535722909622730498977150680740005648397898472010327579358376639869450232369244509723139023226487078210061056231543502510585367350303663836423339256481106486164239783481567596351991410814562999631245818097799943149373967371121759279131023178258126990074695426222373584315843786665860647459228786479720479289714404156046637347765672292473554729666099162595061504922452777248076383479543153256435783035661113328137145419377367430920048014822595625508866368700064618818904788880896994439193586063840177004258268446482345876521575882876331209629712399548964160512674694105900643150488818560845793040612004023679218075635546291435704799640811564357302418462010486911998551174872404046244923913505581250794149751532263875813918812480859470949813814155332877676536598197779117305354376575412424900509363387825300317347627224042082406265680579324706204005542369145720856934170001980588696319299411628581927360116653880630220052511745996918603017987085890906290587394766511110299516012683225014637595990256461502680024878100208122844284104502913852834233470900094282699037125251398588205324954942180814689721571602899501368431069956218324732809003114239644153738848526370948157586859778960883366021948855105789693621326004537702275392340279253255651035311949658752693628345468056878323349111132364998218230604519690773713923346950461973697191877377158799263539310249211328496084499951812591233984913535246680720091174239813886615244719033567639045876782563822769023789935697552192283152392600250680844306742106368210552309728860370692518030689179787540177756326480521379188187610808261408330649239308853734551891186239393599118785502705407160932334642221728314520765648968509834832392133670004413882340109812008836600328895870560361249951444904159062327188720105731489853688536008226487337888084727101083209314434656639983249343006165816104278071668493611011249820876681701822356736202720567894923353486293211849766907547456397803040632461843373186215885964472059126053071485297519572074633673019845631529770591517002134375493325939699229646429200196270128360761751675416001282117245255456142078443626072917536746671899449478607980358464159341704387257326856051393671257575974775174470192153957673104441696304377127316829415761568441881226111917295690294690999684653797270441044561599002548127817984228069993349862561307609912987215925107387097960481176064948367373944978093960659273862418121804784834863409524916021655209849364031157501156464022693846052453379355865675447412510046712928061396185598417041597195446001591273912405530046185231590736301504299293963446712277305802502801726240297912430102920702485699160203215776677304185125944708941081682327794081218125073480692554130058865783256972709402444597187145381429695828534067658991385513823494419655346552333321389709959234623901779564188232554176449759049512573408992506734505380530999230927760442247705603093369221594314507627775005887727796130452059095535482360512221733826195377616231779744086283025645954994036554585968617042890730575115866532424468715843933668637794010945912336497408509149834907692115116854644817880685728140961972296789622016419683454458945479438030855307232962548327064415904203657096434244973214038627757626496543889987369229627868902649259960108352349401949953170280829618097617384115597880377220654565416177323965369072486616657342687402468276672026803831858509305620836920696326393933385669314705006212623882187964946270075003088650980437677712817155190425301667285008510888967093440371985613493622399173327118840502509803797337044393443010597340003989145624497709988124365457458997592984098398085594950151584701111270546615129694623532850050191557989829786073699909804795849944136310540262456334037094869719420531777858742903939226430674374844542020927818588931852267925156959579550329796560294877713631399319992128274672014274346134306386828358441262507792115003819910249085748458482937825336405769230945831464125831163058003809489588106629448720681154463442376328287797113101387774870468387381636394137694991751744428689979391728857228900103089080182118837694070076033600985976797774956897056895044629419153092340411563316703769064559761861370351646366122986961200557077886185355854864578564579928061584492735433178763423433460575975367495210126367264248922828774532018438660773805475565916529351456339733665655380670041600858279807937437878183775481994876974118053510002693332038545339901806075083643008696723806245898484448182065823649653771051278881313658362268708582851316242643479814768684137983579619085727323678107014670811844691930082526226565671374868490848659972996613764489608361989148272879615006330722640263926375173050348329419773705494510036244399106020836194232186970312357126273391018094343662975194836817765455369382109436504888820881840349994067029436829403430691297565732633902157309381394886848607713191954193220359588058224103251769461823854736662236834673085791777125501844815406084291603751508377825929755250153554463213075564569761096213651817428926452493502812167190675246532838039834176666878296321926093459650160604027049196289384252497454441845111157763522378579960317001715528763197230033471613396874199183958330127556811584410848128347964243521263635057059127666208600029223801043564599966221830955103951091911506338307945315612686883009642382304669694584410489680714620043351320430916877368069102212289908929600512529285966869031344484246872717448090160462026814651488134782001934231219754657932311466118529392296732217437960403471412382688795881967689973499997798736682463757851144077494545736200339028270796325377107177977244959304172680881561794467922086815900901218491191189205011993034498956411118334563265546906300163830606333741813414623538385113011764097071448330365884250346683571580325178366066180341394348417214378810025393842232381569441305477139894786865508046683533843601723609165192942751589205292309068669102311923990954585817602392593465684906428450169420805380356098180047849606558905327465739660960334999718398773202531780328586803647818410262449687018977342893504641538416326659875310392955050800917668460847194423904235282818147657447806888873486994476560355135413735099765817150622624280261398990538025192014312216179247682399782991012906696055819649896989667957085057241074102305188408711050375701195713867410712007572656831790268834140805039780317058175271307004140688148214850735305367977133377453275480842441695350613573550069992885389008020794283713350782116462108627655329091884110171562334153934983129131590528347958585828861959870483512015563448446507131477248816262727159151764209117055122121967431623400308018278763078689822085648685343176849475356023579114474846951145203715719576719779535823805435575066428255958161341780663670916544558176902435968734241090229698703881195097110076643034506812854045696161789398774261911285033735729173800345046051654812940533682427565028748426179555739232445977281433626020612344938991411301033086260989300744912856050449162447141542383327430194373493212449140512461364944924736129501556784388774899650323939384345788334167434499615850730441905112027449343789562674097140823502385462760412718609332675390021594634261696600483429983686919491894889803151623613830972535751073108482779077755544167942353745870148421410829247826225475575551278720525069243115295988939576484137113366867067580341019326127314934278587534855111451172274392746244151107899288838117753934064693383588279560968405138560159762750444372885901813943221934918315076114285618814987303643378439459485394209002162181033827651881111690028082834786468446741237982915585881449603459013489696425678541056230356937811957422542506139190536160714980893153859291371957662825841417065694987189089051195587854565698624953143122590646471648467032491162533534869464659103987477633490876760580213951649968257079465107691334659326299668614455712074212864776458481217250438554152035833460868155689984109420810610880341942098527737315821880538948941150445270487365887475219637221000551662046153932761097501305150213214741797333859730992314082457952092148327802632540765471071064056274513322486988813977244287393523675858570721338671514291926233275886262064228984877991857576980139960769910482872029381053039457492412055368514490180749699646131484024366109657203897541164582271285023953380018519616799288912059859963487699350291702342616847782205053636136175181428887775071879649505367707606908054573177773966423687434249038103908015490874899888428083357071918207022745185516925846909442241072482883249269664532600208976074432147145679491284677699644613807582643562950739541868682968690037581816666119207654903928451339297193551281130543217798223214079520217546406172716822054480637543500567897915775305479000752356657978276210157180835878295250445689367339996250607158028748157723025047355636567095377958807666731048459595063091637500383791051631989228600173214252426919108244699357727350103982272135689863184926257344462707724930171252819923013522239004239157954387779673527367336133069476822782898940636823067376105206077352559116113703442955373632786200334759216478908403814977975557950640246637144402755892046558380020482649508888678346182337836246570439054940427248567433329723577875658337373782030106163731595581989939156472947655578098272854981199445368849962502529415857254746017969184964915705351655906622301222148976979574535140517553338409953666415532789645786623402302825833177625315182254976181906027507015613210779899307728776397888945648666749745646285798988499635248721630638052047352459534210306115118368861157731269504289249116588393641550099851765395150370273855706020673468444434703059838725513755514095821807671837072973748342330774699448263168253743386493118617807987767962680268005982533342658749597328951746844630096627224516225491587360035932527742754514907304920718617427463871081011653302156308444942820536474373673069788173599807361680400483845563279804097038404741363231997649703856345812067362474386819659100649299422467710314277284801228415580192231851565640533231758558163376151430587698297858288986570097202830005459521401852797632506867478908037875025928541658120212155147457078247284173266919078865280493614700048978389938596177315457216721146741330010275197273960278292423094905464233138404864059940974749230152695665964741252582299374129445263350058335809827247074356710843267320018399797929893221300560462023094154854264829636169455036707152574053387332577376896877916609544352417138822096583024175328164927522760095025594433044038616014776130887794967030733664544190875480187821075254202631776297571098735917956594785123914113995105767317435400003219357207539663840557522948808762102141515051750740986056975531915250737932835832932831639155042672455897212710255755410755418469343146821180335805270245821981005312748219215333392003230096109056318382683629121923555729665081371120892601688309645580339990263564132914078840848202710632415420216733190714008045784064072947740446272636560627478187459825555985675420346215405845282202542505396058791454274992649932884456280121165917462639833739673161994845363328433939431663844242326596236152088028901174552360013411249280545262553445696951110312605109386793163741695736665316059652579299603151323525676275144328884343153748693645560540318198874440377484271053791577074672159723843995819723202668624214803195665879304626657378222009237676321100345114551239151671609753678115050600742003247214503604566436703100065771044997857646817999944783783739907181149463762926790407299620763845176699137945260244555516768079954226217394330012969871898584369276980064660261186456444801534654637335875444685632951512256157104359714428951306375566835939276913719620073091369430332783665464229447730694604959030615031358354133430399960824070479934386436579812144557999687709994435037783852097705394742908651560927171588698164117145750565743559432570531528161797760403045929866136413168648142407316179526637459850596202510068531680107570301305804354835685693376586892316951184109022041548229949601256798670107336975573653947345593738772632542164097454915850424152537362602265056113142612821133346126622165989190643853693913273777489493650721453864748295217938896752566409561704086539505609167206438725345884081100628034119838197325184754256797767333727847664728255102343110683961037714686273447265533436076668257902615636583626524101347561845708153855980038415179312095490748285758608584202743931086623483363050963484597069161288731096814417357768960166436295522503822639096538112404266670619524221447553474254825526989496445091385379226402241947634799561917567634320830611043812779576318863365732511455191467473281959860156270827512466958289647405943214016703921823607931343867692928305767145934619790698196571373250863110970947149194499384355231687500805288198682383982273532827136362830519994264128288691790995418032326198858847180304979340499306734332895209119416435969457015501602722066408265550318370834498727697897053257060585041971720515001302387602552896144449880706187917007329392601953050969999431085922379743243789012509333680373634352423396538705844393952950105344145155024788572629109382568354508902110358744724420990650221964625321404528433476409858546555654311629139495383123457691289890176978261435281566843407233074315810046705327061667310726945195327285715578584011237656346203504545741949695383463992352274359120248001815980654054139621367514900870869590915391910424908813160739441374354386661182911388330624223324497988415072497270742111363510132183812961584656340535373198415075773815845591354209947279595542012242551178618612411601406482510711043946770227170242111586495044757346813187953467807074773946566304523163520298274867002942585794393661907877926467644166196457635586655775970254596701868228750990954998092980347102518505608770400019831931159444544735407643489318269023960273771757535214805669055032613488757478095075833765278415582596854984568500079409949522594502155251038956387721354846336862929237235939242643720055793624097730388404455786073018176022406855726916873311553874568188823313834628263192750211088459577467547093932119847397701844052062308339826644281415041365905282240497757941757663990826332667697809192818520274865171734454317872022099412496194073831403814123490484554291635417416922334027450827864540937413825420970879532215727846754724758971022897613743414482046056865998277817693204753398556551280109155870876306768986084088552731365451503675296398028291050415008121449190691904482445890525592348461148833919968224177412634729078894658956449343559814104257765929294999141746126575430399899119487050691877781397295066358901989363382016080734989539832729827936830134390715302836835927522811214677381621215413495264121183671261541363039198137709844231598041383557847409078818605709513429410449047756957360257639484284128325311564917705566483341817349386849369086485892382288368493620711996421653347839909102921442160119103099402259618490824411158598706877171481092598716832933332014384042188742751950750685745882732205681726088677273431045707499880686399602241019133770074018702740909409953227118133003441144655519236332597008530424206589843244280644142910610293207340066785448089604707377691668595769858156365801971801353883138417034322500365655356282642672942096159139560202468729954919044210919349461769607199958436473612750812078945818063952404825708609866090892634138792414651335569298790974345381442150206739966897120291955515764616982818996855581954433303363600371695563404837633171764509074068791018930905900556313672313071587377165391432846332114430040793126367025420836444888752659872204986903968060378045771809492785764294938689235296715293650531002818956060076446268382473464371207134262918458653521680683814758166896878840302866953199846564612285604598804094993420711396991446892344559210532890894466383909779193343897253141353071727682510686495072401285871712026780163647757546591918608932726406373271459785832950270476915733650245331885373465901323558071460294702123413138101250570917075471967370194547998523119665354922529428906855755347496643922805061011792194233178943053262890980904637879758584207429332799047983988178783849481385352414986379708425749052403287374977318800717239742214310385144491038791481078712044398168997462947212481837474012809886627615278874469010457201958352233817583133166615769234909160452415760026598199258277592218786117193703818662086974940066397511588618688931813678874648013621656828324647849844002997343895755408163086177134070821593651829027827192795894356630028142228923642840574525606053698765257879068352521375667755789631264559240109706660937036585553631851216468214239430676034586033517022061308856874401266070744997181523594467421346955057168548511857020701141717196594063284786550381631831932861007002865006989129337039168186310877028177382221546776862619749136339652157260117973525631600039418241028380007254998577212886488312294678290367592640609725417144942169184760384536040738934083509276243163957172266049996101363679031625788371591948430038949252951702329735307838031318133587574001221364129972275477169562341261743349274308250083969120580029474210674399403514537578010037545825440619500372375488224876194539275317503311342656933828087522201006002222662891551026961488455124889706398707437655996529401138414063312890480663597597269176373842093395175014157904563559049408435206601697495358148558683987625928939713595117534563520840062068115378080127653869577865753372500038233698518562784366778145042318402430842494967337728488241673511982017269675170746947158256779803784616044688694180744859126204408623176966406035627640230721073355331513400046006881505074299595643430094720101706133293631852876042406078605650013332505981316753030866594865294018787517403247656428512882998521354547994042331988614312383365800644027850565881016771028492658413607831794496474389477889139538344445843708155674293639597627068676980152774367730928288372845120517908487330879314626141190565159995317299456947063097462795530953508078014182579406982233898263932808378652909455004205863526284609560805342672906290731079704588584183622053721222495751840657591579872877743013983536427167442241027776310536945395724066278714995446495579189610824884616480218380207703105479300037999767411014270965185054814129285986948761434614635993038454808801226250633426057278487107103370015658213474570538159216245190466528180342933157106050370220080811836093932735597461622338673870756135800363289770461422561714122276195659646483775756600090112648535709991697334791148753655702671551175819840432086751818964018280539373468141329949041888346716014260764257505980756496320753602448461177706737973252025028373528546290344252288297033555961447004987761721882889704484858297805106916747631670235926533105334134044928104046517217271337727488747011496219802996225077601888453220385303850265934217290220660043446241965898956675921309813854392987400280039069813715408054752012505709364639305653234342249508245581751395674532845353461981139709446163205562666866499903203865006442553916935996011646621838087806887845262236942631792130769851447139605928179683640576509972124074987416876412080066551018812707018781118575855271345402421142379433360479680833896618987242000013389489866592865510176023526753748879695127478859561495499630272729016418705672985592926931962548684365593469751189736900907148655810005918312175509379243477041570724199741196723358925519396669181803512289432267119405176483471881212997503996530013901323872003503804557312951867150506678039904849377582345258887306717777039833430453469925289774742927831632646735759227687139648400287892734890548388642043998397564317716099059391915492431825149641603565588646089163167069091566608189309513220402950028280429966186932047916036157046001689317963616770271844261660827003746316267790885167567785390528903558604713090168074925118200880099900915679347009922447916688967582709656743201842116099101019608388960151950145031039163578298532327857079827957296960793566694636474755192828113093020910629460421224044403290311127115742007997614843527112630671226185519206237350474072917670780763399447849383516217380151267176968428091320273337135916366142014374279174381904395479972719112819413455759987480186461443356799485464822998988250349209554615451092381901353016880186305497630933232016766733156642310637464561205295915196670549313001860758947641771794763463827375154916184138418681452575258100369360521603816867343056038272297730167063404379987534905593738935186337860113926796589598794715930975166275204078399489179861094345227624484657431874645247240988687992250798544687300255226287193344839241632950044987021052160688903765089759499007383411023504595407706066796274685779773912515974381529391898373285551432498567120454429437597749779696415187977926517954323349983352333549375836922108236436620038498454159974737654541373538859467767425277065343271696235742894598672844206400240360319825707784980154981803653081356274025016825450058707927210838387340946067721329641168825780146829312142187133084317026933699346789725955326383618852610610461064833019852554734445965782917207840071436452385127980559797513651642892268240910116129353053283928747786135779575166535840837163387664341067161454984691687843747676062562326577368126116563810453062792284567822475144574266067427304038525275121546481678299905442846808399203152089307413935233818155343717693526554254707491156485366742498190961079652355892298312085423460480417444050721585737653970886027664930785783119164074848822223105439635559408425346756570930307102345098131969022426235959181596960093844269169880654735544899693238924802405172261894979594026352028793621437360998624226502083916376003041993286112071636436688150599177254479133161788488040619928258661029370922244833833946614733521836424687093042794771989388797424345962055254639142825229026823520512895125908219501299376739114773674608001579677629116793246449929708420803714039562891799240793454001364186999786137938663838957282435821271021621080206154137067265992441040098845099344389285350601651792379138096027567216764941739916888616036830329358460740440256656529314553634882996790899348776122357987978164679192188065636176842838410142113781063984835637576268060875292236666415609483722559047997050025914124100581783666373113389047703960086211607828527318585506292241222663067320991244648753733376729370311522229126164377706884231608546947123217864024226102113319444268333910560787649351232999562877651660221435803799406215003812249508128180854732577878065138313270419422813361545100812560658305634304949509221073263845523767758669669565645368513257929166206590189784019960395100045744958115802297492341740400763736434286064942268650761681003172771780163971694399228297727316225878258896977740469206633904690322832043689887624043421370998392574235799525416580932073710256937557102994723344460618661382005610301351178455259557390011345062573568863481873631629876824415319824191968451671438364799415683973181637930525118462197205278994029964738458271554801603289629067125235859536385785381942303621130900322501078138909133701161387254728167222032324665731166247431981180074228546156851948015430235286135012248361405310986090429568946442906482848704287817526955748983066205445050735726195346718755164990815457619965104521346374273885418210942185308401717411763011255475720115982729042702447884921214715418585418611224722092209706889080124482058393008504662697184362760794250090690037953520834443098204248775212930744824572563865237555413888470408179915775951370621491693251180429148552643972501629267693058774487327233887466309297675690603671832134671842760497889126614916536802840709060022092409750458218642407189542772684572346556820429665172706063541364493037572895230544359019954120622226865576958082217559866912824276760346612631241693141373963071085027682987206575858885803168988515034923002342637711459200475056101554023069556857694664042211864928379239444621478555276208477713870696681038634497431023708545244854191539747764547965397833558911065228164019951237278401311734114778271599573447390131968906513762967446362880673572933972340000536046761068964159122839310265890075679138761346676288991327901611349020889097210840989042313949200242031966035654934701053335285268031880269420322183276210500707625042505022179581899433973655847845988184271056054418695867377546976174290499938298511595232460435504842610020123289698632001572096351813345370958081739814338587067768822141320527210455301980131914891866993757049634757066869165065435869970856439368888343628789565880195983902017728457025507237017431932461891616837594425914198778171770186756434686191872888237010783093017990349696656803274567164845385303665899431346747509394851283964211342624856662120737723867360948177192900714113267667474790593190946856806414766374373683754073109620457831014256848922859701263277553719778948731773555322498026317034720093932271094334140517801734257818143570038730382964830168113818555279234462333925238247515910279524631603073671054505975678710499906653176802691414407744696068478571522629399309109126250706893957409316142099365603662869766236085683226063595930041459259425591074128768063798332060572251576007657424205919745350023775919936882213435175153919694134329334859723132779727022887557713945774056677896299087139279247341355454251285901030012363759976716853977928601019069408990507779975562644542015308541757226908399124618436557189712542581855408235551416798699518879201722049727349356993407123255093407010035781391880752740145216791202465989196784485566162119509723550268547778620899938578685684972229361475505961698711181011814681397361140029619765322726778068873193598339445551595203351818791600174234766098303693873757736854876156160268827303933351385974327145110014872844258166291653154789146189598127647268495918109116699798102986798144852294547859359397318810027716615269896178088732296219927714986126986027221113003483303307926655598988511867194875797148768249153646553173046866966925342866033039307977708960908780014139607564184137054914757027709130394420798377349003777585849157088776767070278648176698611982321647833680303868540592742201800288102538930736542311918819819263490015603675528475486130565177775828818030718499524409356347434051970131259013157655552764500660345356998844393206667789436888491168576421455287640904615486155140115301061261265778224204200706610859443131573286618624106846820969391110021734020994539162745288511132182878180193778455863430703219154982610833088457131101994535728657221477605873724145701923617429277447558260837559900987415506940803709773493590633325796617010512076056058552726627961293552310838829553790666845825125660567414980852494499452892624381586082341421831247874257703617618595429253393681041437942383182703864669564519694633526335572457024190434911008006635169024601945635395588678250242176016787266006071688280021183749105260812916768446751986856681746947061186825736709085272197603601030324506996564483625920487204066999794467744304458182044293142186862178325776858843278837684127531272977470323928910004927893274581549395233163910114217342900127897578157070776387577248188506636078960255085144772087667424812420850283123458763548143785302910279186666610933901982331873533412151058964425194524309630946544231157854022253308688500563071135835149480526254143727409829390914788140317090142500267591041601633913478565232915092622838008004272541134924905095396562733531014655116740764261797436959809610018627101559148255692096382181248512918366494825055848778481629554217088110108668661573332144420797944116649160484827125262582156350721239210012763107228792115110932877109880045262127110881829502103583823608388327047124261665140551608447888534638083464486054442631862207279027710034102376305623847049533662742848655069314803893557157283980140231349100112778789581954661402779277995284770089938823782305089115742485035610055978953879040249811222458468679880653588462016528193820827579162701809480168793444784778728774356648915397200024226209998188074187621122316062344993982614750370293163468856492162361339396143995301400015355768013926392761469862864702287043182757916837161134031753097719859673489151248455841304078776345600090977731499296749171311454560435320369861994001096618424194047392785155654961030092012082150272235773990167717811790239663894482051935376489500303315990844585078838839466504998672168410603117889471607846472225783163909173881370974122428235624089462498982073684467222399554259471309997276085815798233574942367199585873113643513787284561317100335255830368721313035683138816929180640514294073906825197304129561961855040260733142525809559880652363426587561016668978735674692237848709158782412476928452975300483901090292579327800926954971023627692441492542526404416992440194346434896212749663472386602585807180548312889242796620926243008485748860420413005507701018397726397565278156976402665868269626764333372195178729326183259159337343365840549189664139600879755007682779807566856499673111781374546059740777885509365074554709877430727536241932773972810380427299110650093838919148011264165376361126794802348465745817320254242130360248308151735640094159553475000779004601455725890162400814081318779126961606426467380165948905947248443669060658261152402179883697969633942742209056538359498255639023706916696738911980079653354094526153703467297388774156294941196138803484379846421367813385858200007257132167203571744155446504113107082442610146352135723618156009658699176569613843788526570885386638151992875811533929410968523820306506465715382465961270128026035923214085565319597837213593722630245972977505242989663895805337607549318861498436061122982795013246218969834971225479029942057108690680311868947195364519788580501684923210699105831727810710984696621175132399319089961153344917785677520211833667161610710536589987568038849016885046560869490481301260344718769919270079703859591291388908385638739241659569354087304663554329653076163742264931957110835420514615723190295310055587548292008829147592064542661648109440899257816673649185320414419096196024710788734970820185796816697667153827411202587523204546864823512611011987025345587765005634979764242712568795059420396672710845393351123346311668443344597228462895591431922904144158658350520905603603949962729896135322375091341807101992449486184705891305157995020367692948112489011835286102839857687697629022053862325264701066968955873034664999813748083377570006267201202520764521174889932516179098723358853320592312005167402361541856222909970140181566716353143392665832527802796633126654524353322964689537523859843167184976761647405571546238555523985301161879681659498815291590748022617727314028774214568298613502824866114163495546539625032046765918372913791997929033797146996599720528153968889244049338412393320793585021898987551351492479174023284494529793351753527623382725386977959684397020738447285224469677175031484254968823116984991856501149289365159051914232822333104539681581974829320955758059706999696810272918757072402754169486283811880100435349257578221631160851886382687648890040306515263242038426006611962044773884874040484701464790270846710440863511644653000993549059933627145678212702556970519714075842530355689463092853095305889463589132663020465951595198111216909244144833595187763515059814088911756971071118428370505581678116405880789834349384146893334985166959340180718662037793947103545460336926668981414966129919708645942565775671414564264082662604839382991034518092599491104420830499343584374581005792391252053198143293248920223885784625149736724741938514444087284167195613227794200336521417070448707928378715269789246426548394322352429646970769145880824608925444499340091650598786397687451960571413753004451075317189577748536600820145522013720461465142461520669218686628407374469201667656889497855169064405480272820658179917647676374199982626555349132273884379622359670920298366773841631810844771150106199794062962349096860472455022615613719475032174461335344603382199301782402273330352772831962529062596218749234514814738191629601816158114271909111795841517084078290207749109955573497570676616878445845866429008584413780711206068446189634307024863586688649498723172435026221499895313163901547364475025100623160158390686603566170347933901691342955031957905263914449103910900181425437133775627799640637369680135266572859974156520682191256286847651820862356922817189040937264498027398220904153435371490211400953327105470331339371640140492838783621784116969285448929988300243142596088413964402753571287909116799100907948105180377901373732003243060351895268049687073676654415708001196795878719712378422256859320145537615687254075118090311907365502044193797134531543883191260630182270539839057526572356714988807486789313478641050537594967333850209038389107199124824153938079449418067376678296332740096636748991735627908680856547856689636589484646100049800295046116595380907848493199520477546348752427594412212151354827540643741236831793997847306468680579942336735928918337163637493989447006067063482310897075908875227508281969919234109897054132689344588588253649994769430263347548719024617736251395208864360040353468191274897866400581856297552423031313880639099472691857596124809755033049150135188765071409792342446003350275594435511832773670488313420584618908413848308528114000358601320794217155683903909764343753476045994952762918547835633460574088579417008013546723022011586604895965705798202793976087235798510208846992673211263526903860339891286192616534775555438308919498284729096791051129390801393312442367974253185642992269963728933863227414830926959491028587987916399331334892473078606845388889531277344246437559887616797810133663238541043875367635679432244725905377130948187555487845337883621016142558552159333202392975048059695680407335989043607198058781052722203055392434376012051038819495225751597495629650262737134346966952677882612657986575495381341172296590582549309381999806832599541272244732319479356361724905913833385568980568695313244433872414672540974143418899311560627223407685592631732500839657996067868552216270663268752785866533134614391345999861504745531108089616714598742609941546870652920201559900840254184758051550531918662019641477151733057657113970258761667745584302300041375898205426586238075265912749860267744315735567184801435693175376068017030465739215808910391453901279694987114685353442298414519567917605557626490141943537553675674020987715896717142088898026409494473915971353142088927329542899986413914892978414179174632287047563423423904633406730456318757151989031182380582183702771882053423772836535209406758920888177165948381067529323990171625742772264131316120901219039116813434714076823114130669856353117495044372391032744455779698256011386353998205194819095901896947374093729680699132953679715903532772376262113365844074837998407901007981660791680190839778992394479949550062327031950977696140823402816491129161545235228515126265646822842615107227961434716228178487541663813912148220527876221583674902036791778815517754895763288694023266184205383724589000491143747413577582900247338479373059776001782361256773931372585130290984988469547910797649662054212627255327290265968647899678738466152258959698258009899524777601506062345389723361088111940542232127761816077514968586237639812073040778736156309094945135639091584033969117910636587240470473196997997644572390458405578139318136475982032594201028602618572741030755388539811648580031844560408737369199592778352714822803140607518659857345776679268409740969617899495480447207918456539389766059563361288684871657162805694754494397679438793892095473689428118279906501487908583896212427988992853335734071786086504129719959919338650931557655459146870438030664314582336663401546238717347954526887302878200095494337218565919304099637418468513747661709265683099724883056965576401170350727683518985069427555588703700439389336822188913674111858884971490118330915963561365249762831502337204585442647007326994665629554904043304230452209732066681833868668559378111857440180285530445011241856305114647096155761573526805749366466668771570945423972728793656410477923389579368066931758959726899069300114975053386258621603086548750139353518116147416921064818180747983405580348522892343862427717393452262817187342196255345601519387518394672020767370727732279145223058199984668321510245230033550875343682588621678720354854112720391465019441211505718411152379803172427648702195351860881858810826199516480834303165322249664754811170920548342217134741094893964367266529791995945311974319915048125275653320242089897159103976245648727623318606105633967838829645853180694842968964099219357998270513658704102577958881532617786109015442336499544788942415843110968141256077613884692058472672641591358684956033225784688331542418066173549612832433816472690293935902145998452026589888413018978740609882360713744763941656563091306176687805836244086494201453834096767200027890244781417670626639033351100090126678928357649332191000578519988815001210515985592221234284085630719230387774489956794051130977753511152052071688254584351969570707668690696184780186697710586963808722962021284411002109614119056520242048461371404161643828703225600975198275676140639803687078990365680784752864993610952089153392369203499254000898451552019770930583752537211653358745210420312384455932089763096792008804072394713550116748753571130417455121608418719735092441676438591719308699450597454035749610397512517552537685974403311039180428072164296221158770130457664263263227829694257204335844550885665984142002554570478522123780814984797696262242890062726540594478705975388931112989919734612892546445245221386925491591354506417630267507907103121205965811991651256107012126530457536741057509425604225807828048828216599591586671737966209670462515682986030532323125978982134683513558388830591272852425168924509985179580323467323257032284846921430039563323256584235489955864474025637990631662197478317142501345099352242819403513954166282733845130849207917157103753623389064494715622654401478394162530900146010801411999159401246616379534299304720954719207768629788445409304848027306439100600478245434724145954756048837551129876293527704733820420662024371518508825434582759579908964256304455567776579249135249464026676608016230649076317432657910048884246414576491234323663949573147728692413494252712378138355660457125012302284337785590346524585498408726878551499675776300497247229569886125344831678653661706576954912712007983684100972732754480652699257484645957437071209043457917476488263848157830615106567453637745812229208950346745569819005300048618165084471206429056016280570620119399755268275924979403120873776201334746584701348769157016599148733401553774440664573466716967002490147303736655626109291101342837658434243676665154545541327469921966492765869592160508443664093710700538913620921803613661554845068431123541849887075762760511566741872800969575412193209791670991916541395304958957966947627213809316221408562186360849920516264386779439230794213243525183660905348929710516574950950298894923074079559799665364793031523545232903470889070409851154148851811308748579174174076549104750779594794677862794856292901674181066241358198672557486767275389440859258865406816027847890547561820742206995385915755780981911937606651152099639702327065941871373237765424415420015085922223597440741177759784036838445475997279810270298751358321406030756171813552086201660819151934920931037541591415092129861169821516567077143856907298951193679108843570307367667248109289958673318882807033909625164689678037635856760155325003401067653606517008559574133087810939576411695433356226588809051144344096497007315613642151115788934392500999464327358999446480886983065267886399185173611680466717426478658506321627865302359581166764346009475995538169817160427303110639563521046405016061260692800412101895264972371221362639121539233749386163985910071152765885992342678194042424144786737611195749571795298752628720365179186608154128474970403622715478615019492004389299233105579168745894764683417226979208080351337924978652432892880136875283960978533917304583226427642544817196962754830226318979075714951186424946175497641755807896727128458474639943255827537327672057510797741039158987677403970069872561325394461942045324397791201664245189892727179999299126958509459523671316607305189969127869638189913914925052533518649945558398731921359762575197562818565321468959612066073277497550861759303899275695741750094578031421813764725380697798861738361007453109063130699151761018691765819677701961317414131552351215691197290612964746629335528805404209089150266406403401908612858398622135754112275682832766864352574568318508441780802054658772399050032000218173650930282611800632967050580934818276531006881510469720448784872998626347126349964695128721522469864965595566057656200766018872605049169444952228074971756916106168333282110610296043591071885375213006282182231542508509340517461067092799575730503308431683812326626451759772131373377270694920078799520329342750625741836264007458767433336376401716042601128867698450935678497631220381599641583572170311184885447615492386296846312258662662826925439412704156434213954804734684714256961737295274500188360468615915299291944463312994516322741944469786048589998808523626495401042751479623958246434808229571973635273832116781357099477650970700875316491097614057357840099378972254211759661752967455904873493264745479330238084281527340498650502183738262614889454751637204482103774132601606600035515305565773605836793702939735307832655423316313632904418754687104240654894127385876756827218909375001509024825703796935435947023036379928476896704114508035999235094655729074118036824960509649931923648095281542656493017537561455131971950015354087541202727947058111910596471305860035723470284909267096387783306731301560366638506706132867144155132305467773579400827701215292918355669755744822834168531576492541069160433860424323834279558375031272615641983441246581433407336441064662852138861638988892690411864091097417794952765704875997439111847211968288398418535546785977405088937246083092045813635665430010996565151627101832675911115266785340244166060802703860643120580338742501671821145906824999952141469746199324619237345520821043980680905678182479322855640618161839728229555648983428119443003330017013171828680195215481353082379758342294083768094935464505292793243459425448667240894870149469697037617390662331374613896127270946269075722629712266756423308934180067500243741503996658412547357082343229200180784751233788399563547755643151383954848291019507363429854634711770502995727780630966866747117430252503416028750225399284573624274033412017309667093361060755931971898323274204871246856041320391127166351645847057718018463726296041785608370486501171955141408010914110364199705359920422790196568719353787425522624640277225823468722914441277902684548228419192043979045826719609164421223941610315556095669696459959882318467867424043656850796162517230308236889409071040393853689244026881449384491621751004995095931200922718840006523994506540328217630089725802216372738856899545429497936848364751693139776204237502707570679490013771657014040395914522578837354971878063710513846336180195083973906252176689216852632968477843971588202670058139825953595726176046627294418734547454669746869081666283996246262764585133737635604690831266991234426908901662063578805374821722694590444643677465929507159820213357314966983809271869060003384425677286760155347617823038007008965669311540563518349431200178287748522711090075444454718736424708581925222703702996740355230937255884074517625824694986838544198929522802979073612781387053546426176571082888088847234621803338947741106195063885115587705712514436328255800684743283164873742871124795537998071862339778771443656030432658821371505814223899717140223272966444554194592813220503580257508652543793027280832055644752468536564902672107382167155813775291534905668826491637036765429195663262582356301481930032531129229867626018570790669259512791944588515435354405689219901689157227834222884641667928039946903736501422010211896189884315442264033381904292750348602555772421380732465975265615158847962247529716114125034293783009307337528858701390181848597790671751801547947388665783604110892585830032134114247448860787805868242708346741094475323341221256907507080080694834019552856829824941694273370645538853958713254294444878275470428774096806221620072617766952436039075144544996236461986130993365107406567356422869266834641771059497634145855388707214357491075777680126035873654928168457261972245299734965858526485063441220577807995093437745192896411462562895031995572310458312102054355908421259554664109929798474272954964380991394715768135488595566080457324363418856687703800407932705617346608072363239522552731628964783654362764756551717077566242985001116297651467933281533269106447823939655782916036281736180737981495876319398457397346405457132581035747102972568371733384079021934368337468440778157139582681672727427597393684461397462250930817236545281453454721885649754261326440780221541714105960569261657212530540752027065682385029651955942817194932616148094085577270385753592934796155957798092239434149393459357308931880254485915422624038573162529578396146768338598934896771188376433594702407499671366728262146909097347416365467650507801754939852188697536804719881438614399970703888396534527461296368242319643042793415006110910600419913937268490001567412031950009842929212603969349360972503992651823716187636542410824875814085460205257132718815943172268190791020741301755017441767783983179150586101238768749746045867949579733660241826085185068768832857193863172584376674738808008678130357967511211920547421578127108021280931382330019899611342714360578588396159090459468904569204460747515951100033745786703694732500455028692649634986929576674359303271472589330368424773295662249932234546248226053860712965563017470647841969997664062139963202880347186493753631081904508331529649033185659692079870664240018616902745716519161238949702096451241458203746131668072419505045963725973121647335028074147564947833940498014297004436647761836080583045746797122573135524048114729564535789251054373111950793226376524473901065420313707240091969859184259421551326196631621184170293912165117701438140710562781351759082846409316028823145127468663992319475326606089348932526650842986958958911223233888570619893532113869111223829882906248563168680989356182973081453503554232330926073378456784614873544700143088362004922169248905687597791665988726750171193942854752576427960184408092411922485085244515074808665541896099119581792901543593940139826070084597095533740950289218820768460505729183778280366922397125369902091782995555124786458712012224654436731777144845847019594386772811667859852585677159098289244612229559968344983560432569027443934106133108720108687197519008565137984026825030164002030779875104896046135120030487732083132002077328253996334843172802738372277156671298352132560699542448410147482870784551693347408790709082497957079978587652470636225931279986015407439474597391224824207367845874189430911948999241353918351571456410882039336508027130756539853387151348666227447368689395290363241659183112461060060171636105930749539806235515419998948748517959166393179707888863598271359521192957027496619435964703939062958604518059284148781818568019972683238765584794565243558385236562360860730359320472690424408967890674851128072468240287059384963228252820989244557451815066301827744470821925443755589017251021207657617612165881847853058614007820116692644486028152464679281608086544451533967892968956145797324101207735616305093345795275766628351155312088084821199419155342959958965400015805435987967729181346854753479055672366657905975817383995879949201119035573200944832514985388697498229064456777256728063754470709380652709625927471821722287822031659861802542405085003938014972497991719606886833716839024347748141151855724566951453372273080167677231528009996041079700523591024030301144647852213307702630430427433726759085403290186034667877592988937663521653115009015493492451869141328241650230715545356305106475244761616513806977069934129243725134053628478191660338576516460333611945217587875942838819957834558359996082537094078163290374203123582309555858562326670379075077052435299884081025261058735283149225171455173220856525301177756970801946757017459426486706519804824862068888521533829738642756740721101843422004656231786943971997101594775695849529885199050320691186531181923978488837819673888835838136780416942457953685705145158513623774378134093878341207391970973705447288439774784369792049480081738462097293949496014098457824056320211113683712361178542821063454209385153867430724413569474747513435151607234114761536193841655131654747324586187917892941349129737978970518090926875142124681987468470575171087973919039422508523104120131908529831681276052002549266268294204664601682629319775377874847156552686374460161146314196160920597888779162421033944799905255744154277166327607551106544023993000775328700198949842488659201325052661326368537641413104657334125207451846861044691500385240164814701139085488147606447240239626879217559876632242492064186311025011297574929477692399341833621922915594989645249718075440004724949764069059902463597151711619440316070613469651404807910733195207999082317548923540655909674209311010950024313995647160348386956610089605179011398202876083542987086124924875035269852421367628672992590331319869879560717424303390090940131598863389550580312177871051744750536027658233825676065503969238106455925012513673258267262470763187586750104113505348251385650140718209296479173679811961425231930310811075890199067406445156387542499583619964654947403618301571069616634741566158491140656092059897655662575960804444505279801542481962795028084350357284624830800317756211021892621344555159806499877126483679664719392805441147994288391299157416001176803713387921402117720709381801171004333020989352974732076355047379906133691297178872416793423646167674328821484671479356895585915306669099944659517718610388621907473614877141879723801068564058154161950345905183962415947765004139275221649385259315367399879893860860244780974954278878327152950763425001485969086241207322589589407190587457356989676102259156712070630555747321539297999023616043177644158507619709896024756205079263569398662710418894580949457513130630371491738127282883509595427186197172310391600393549023941224793661047698213207505558147167082388331133326574894998816858418034409343390040920404656991677338026665297768718210912919236912097233221055119188232729352252310656781631624294918386372445548192494674064916883588884032964924045349180038795564806125055838834005314864333965331206533948748725913359960359710145172522053002151825309596947005363082460691613957644448101449232435501962514355746578180442734320812860958969459279723454614330541849702136521659298207747189784321337832695321288744068328500111842034674254283712874780875207829482243169787256758172003146510407680314704988994541639844856018452323950241436971655838030590425703929811152419562721793078148335231392766138732108889602255231019997503066296115613081409512796582760389284419502069500373467271598879366180961470619959781900227599287325922072972405072247807575820723791392541321062145897963906072731418128566527757809599114051121300079505765298732511206530461819488016227258931691476676667184911271667143457258471004224234734764558475245264039722037189438443890612007845406569797168825549738891260779106063635440422317489605220498010939718427674724303766823081758160164571256577295547995302169894294025116439822203778352816855224071616091840523314484701711709714974013444477385521955190185358437667417323165689145259964568894196659166279086300317453914291000486389172095190884789672957733894380064441502621714629335394870698295807274612738979443582990071213309167583057303337242697391117977915575789406982258186446384931639065633858805270464569519988902894758895564943809219414102457673105467323881093669743441777057338599096731718436428786855662961873306509898673321369590741782654839215118948045697756092940044235138018365674702875363205194996746684595120435563500320481201202115340948388349848126677516217305566810572513789381068349257921965197751499927442371518981284757457040563232029175459451230158735891082098154093069448896741018321745608717562725252289044964935985597507397588025695382218547268656316347638305761112098588143728718244135346541434206941241469230999438223189366858074524387371481057760869160978113468900785614536631796073979740546399345370244391816364821591162616745033664736384629170153292241900258115054146039165347847568649510851153368638052606017823153577803045523470857802793279880454028686185750968221457005811491322779363846912323067467351959520171958091369113043293468550639061859614349932658040751172501297746091912845988503241967127729750403014661643014845495653782832865936365857591934424059472673042319758792080279022309943696480413351889942133331965736178890347604024273082176100302359455229453915363596117389403101791032091776175826205760620723685911822019319531987522289903410325811930766920164125873476388582114131471416631625474836014929738402952404216976613856248879588076655395388468420196965020105579487670035867462171139443465662300497274426289288885135158312490176334161633256943740165705509433744867561526719708999588784907166138147226895986480161038573660049206485793238818441776814600364364568411246069131610936367821726355748570660273056742559130584163633919962769063074658896535081835405186663153018108206119717379079405525363607222753451450365354775424734806359841898292350244311438070668900826072814262374517452525325418114362406772599010688586321957822827655291178498094852626809636659384994340357396639730415439245281509402390323039965852343568342285082794916590215344409185156510415334729985251930926146334497266184093581418008594423906907341725604579637181609655528179324472320834927213572709292977208384153836671632115124267047577079435852020368537815106773943029150498796743799500073755637596052231974949958833450144132032029228909807650168974261759237275928088904335278533067287025975015715032771141847926079069356951085344928412451397775832742035270725216634052840289444789560156092050286204873286214707234344198715217256241739333967683847158392112599077414931669536394470539020322096718929341787684541316912180176136608780588095708882025244615978460269739680411342967774442558498699142144519872190467783896257042906182648400635498495260960874146799131917975257358701037551030134662224782414771493740750603282013701546033170469084050912223509498291725321260084159520284217163446933964184413392030204350723963728901212221572351450252396840902693162851606475657426145830115146621767135504272053734729801288153199092041850083364854356050985490578236687435910633868524785683287752973852147074492602651588804223507664055210357556795240441504811536532456983445751620982720849975450244075396280878353497716605399523925434458737781268665728677114464766556783688707729870635112405808229453128198488998007412179771674634986420255262930802659843926206635760717427077748511201483712514302758713751725632832450957704146031499118725325341713178639193614274811195241004855219544640903161776987679237523263345390165185792351711210494851298018477681817714115044788821805406978754013188090305108165751208199278191569600356048690186661346060081016683077686543121896986111188308185433368248639589008352850230603060106081063562193183890469725205357833666713142156879006641753423247088547767172774170070308472224385320934955801645269233242580720849211282174452857386587253893571799086833839303500455354654556732197248374187000275711814249550457668077580159741357106280405892146116768253109010836589042233559660791050892306372419440301242014061968628548273210667323949306371035176090989037626945970040061359255779538450773849320607212665594607718093272593184567335082628280090765185224234697605614483175449069268372133299391378894777598688310356499142149652678133382898207807563893657570578589694107970702882975487489898991129993231082551799857802673033579829976533331593623012251307497705954425240614880476915774595993696829325022626983457592931646503189918821359121933967505134117323787545257774741302410071025199032005743290026006825530003119081512483338161862887239059223104716168476495064241117579079653245233134703779067996294352626903789028442449468182199973035384020637647796213416201896698515331748763882658312715762702034193235531804580872182959378920864080277362293358893770320972232266416033335909666922681536956408412710200102492275372377859890786525571415401444407481618985528948353421812935047546524558998884690047016707268754256214142763707671997736419708656743866156244805653165043690459483766804026550461819505778307171009830662475174199387371747034623086127731232325569600693224310982724834643650152390417470748307433448222510615282598999125135024725503625028124494233722484407964518305535241058746614722726622873626360967218404882719708213260615233539102874234873743766045684949126587877984813863171301395059671739513425421108600956500274946238125501333123120412311988933593101810649405950574006718726379084428731201351319850527446616223245621701024371774428587732853881576246414149887253819205541357847638170122526518965098671336394976986616519955022168924151568320863857452752733952043746798382821473295310835405795329587647125486808812428665868154994148742612099551775789845962613958153174153168145885772918337071488035774773895597694497067604265692520453020470472273215000527396354092886601005350343984406892454907814528428298043764793440287627427924857010842043146364567324986276668494168073443931241285755773886245364469522552499259003255352286427540012395302084578477191633899509306679865650808982233950947871189258056674108783636291850330285982123640420672577652788636646427702240612591714259796638174466969230898828052904401423711053978143934472725767607319718756010266479603956964472206075091214096783810014073125618764101401527216465678706284419750565567058317372814728087091252720720855450269892076356021982084680783097653649006588028655746278496361262360392785521801632709580635783597468981249393466078257116373351123597957491827339103747183260979392600201796261174779379862809579214691619504121099863172634032793013505219384000565850458917852993861290539682249332639204950999698979677703247734990551036912888344994857233062194649607996399368439274884918300878758074326403898651051158009518785994070007453792656745880758889803028142466268543136153137268175566887096541351957056759219826558693981789107790779354216701684106253482166725484450795985862045328562260989390589564356528035233624710421496199503052475457760075250531620862808774388688094763666496105330582785507245816095113438030864740426782815662186329744049748644582189102940141044493616784528212484826080828797326781471346015919986088474890018712428066726854897496270084092935318587809707112470169902288802275445495593923323601708758813089606182572181116631970582756655561066788974379371415869082476252685617682347558023634393416201366581048154657509446890302043566914414569966041724204398801307872450544627159638213299172999220652951915921893742851227841615334305429386582305379756684052509777329441495026640913631387427310308061966221941704411962682346147410381971600112903289143932927118402938224158972242903558682476156388910765558015587082785613826884304892127671660891909158860111568019501350325795435229475301128622057584811977467582754925584241571676404135428373715513268587556483712646658013160111543733691828317461652888156578458877403557554664977073545672732707513509801828401799643605287347969675596693050806969820580118073038603865359371478358594705584341793549080024093376128002025309746342427340253633077738952174745404600677008193857525573328713726607934869447713148789807655068771394130397346632120354531504822916407481277782685040373306699410660303890913216989902261071653461683966320920191281131934753306201629057156366676873343131301681986253044962671670314949726299294432546286467181042789312771620149863882758224049117398320923748827079286685073338289674310977434665686535525719728878016075387154195825222815759922487406864398244588113504924136789461999577904351021875019892408262308278267663332003020029267364446597722443281902889487364331968294397686936290516002247007320826561488338219005931192850111224637536456599633507322241058453639103118862462998771671196348721645927057373380735563502351328983453589336260760951979518062046217556778820198923804578680498079466785652884038044049570853613566582903036680734172323637590146679393598558024358334199911944856169521861186938444119765491626185139485690116794064930782406987213554009595559957238197996546791545042059256475324612767461121442123345698504627191656789902822044256500008745015196330334834380842047861635628927281577519362035491877723709751842899975837903947622635470988246126577078979883535494213346765338880677479891677288769209858888756400829176285450002175803076484329022118603445152898609970287511875787418272535537242951781294692784595745591942411130915283710530022786262012359671887681272835613716226981732895995694136331395954497204792328159239203079061218962968859580665403775331464303001642880281266913119991623521836645047131973897934537735082741486028495738563354386790440352594029040027022479430914148597761272496263550098256476873916376067134563276133233674605072842511077437958717017324788075751601573463994494898779573121409872234196909859527915084220649749853216592000033603452278555354293177361114016320476954159234110842399849647748355748825234899412893273926780143113789047819713545439768708159515553010624686160161556062193514201699342071984444038962503747025452489513373292816726824524518496695512091302077418565329337853562132683689911598099709892678175341022111471797934962978234535918490169827935323642850782531227493291245119622539782961137372149628076235797633960350281574996187848095680953610836687061443725243189018603961052312531633187419006996682771651341026495586441152626617946194562678581216273886013080053632144404683522681844723100351865379662226217439127341228566157588413792647454659817421453410499498603428961594851816843808357561916159715728013670020460450617421288959561293099845005885443483274322190007134497733087187398867409281763306252815915557406190603510735349603628400751631130605078354984981271522067960479411540876156067904338963290124073164401689132432907570193193533899383486107103249572496969495006726475970845432608838607050642283538692138085530217848519397823071514951844230168521930113816608563241498680720312682871811928039227597728192967937611827853801701836978014493005252706429312070413876194215988821302272841891070384372349109312401876813092884286310885190597600435715119719844761585629117562449553127881982943910089933226138333874629320076463704269997361918450735999142282968868574886026427528928354006728218998291042222989707740248550371141322709536051036087744370548158348915665895859247143043552700214963475078255248044146055576296247093810494063417838452602914047209651097136820333505051870886250221791930030732970590995871054592626613156724573383873388056210163427941087729038183720969771624935588552385634062874360062378330561177899089456831495079715785999016578094057858443764437635312062072058759085181455325948921093634770316653997711889062513047358674775996551827169226431977245896018348283175638404232005891602610052447495663056938885627127039108765306524772942387215057417584666966551463182608847727584517111721681922884675146554660830731131940469805340255412444884014101428353130006854918631181840028615351105737151593640574615384655649936197655882958790421553559432919803141742838771541172269852957509606268271417559233485590171249736838083688917960472999101153504243764536426800736326377102341229579005675828060088599552680896647283625314291665217060979469690122731053675762655037988953885413786596725768409514374134196800777406986815870041981254934516016969649661921138595295459752715730398105140245720064432389307815354674855365217861163704980233617256164691295726784854523028709505559896846865560257168901248036739221176905717342261756599952048657670879705850190281178554044662088127499416276444980109558375246679314617528272177310229968726721515316682619755565561624648778330007962184699480258309337143323651553946963529296361688373841307325848427518703347814829501861396131005999468494113804406390993223654099638402899267694464654073382884239053092473851061533730281363089031017483620885410949610456451762826965630079397277159330804482601062717148988307272219222031512281754244977110121333929558467916925561831641221284810306476298949125087112477545148920408449773811654953359631693133111402271681660330493061466237492971552284437445859174795189652657515455835460518606032535008503414277342327176385280261560629003347082475719230386086437417520585094638011518266104174375051337867563688780629841327163709496416467623925977508984656570930516658712691993946838770863517872715773521471017267923636783112707709718414961872389843372573285848624416567781675426654435822712971046320247337615762349790362504807828074021077460596837768635604977040058196764570083583453577062095014226689243289530112016621625572036206766093514542699416171303502444523666007922617216626118887684972519949025251018112043499825231144742704740331114218242003670854687495519497534466233687108999564529908129395319275516706325969786954984969878617884785761313361454590934150978040964352366366601731503307778344092489320766073023864272453500021434651020453648429052887511837335358092001374652709313966046935348925602008203437813400365613954389768758835449834701069723659975334887633768582363432252327409496780671340087271646796393945815347488749857489657472139998043600493414124677371530228354781938758199858699251698865510873591300369598768986885630720064542451412746796624287405388605310058275791391465525432199735980048814930622800970342618025386859691443171323330753376199993217286426880339083596210726161255314755011108936683975630074314544033772680656677507870226243083865000886026766398501494470749266883367947835566096803083099091913139426945667391639759192576490203242111814049998426636479742442582535641678396921725356388233663977970403703081297202235948115595528055154653051892059147754570344845587700025460627170112464383693756073900323312727290300013305117830958199647301178457933191844303597179581773842147830710978651890789730582736545370803783697354787123700431651986061986700059029143302045840049041974988063170622262881855230097654097786412295438781792292151154380632051900466303912213254307696758846801671330540694063684367132919215230577611815841709876055331443926331300377303164602313978704174115474733591590510610072554395740938758943166146628858446045773858253383680594396925689609073709597378886237860844893676339818227440328421660280242192742659391857829827696655836619305880383539530126007671495843871868834402767987684031510975158705259496574329509027028338982036069266131645703753190662626782833570848107440175185200856171837011245884456495631667991141681837204464279886063559449580714415186803832412726362951317136177492272807746440885845678160798859626261969972066182826959390885791792253632967038515971138571546239950610917960183231925783554152992031751294712999558492925378236669530744439721282604686713542832537255632573610469298962096607931090651841135653573116358402454596320531355997528755955226505723862945615693565435349858095488129852479174927664159773267993079966918298410219892915341956563250500897438351562080111396612973052098768903394589145856099787841022058811225580622738094964799887981498553916353266702713294623519355213395207802541711036247091272378047890166875228865762352554627731692131247200871938639563114114242195443543569360084472869739858624212399456896686607944376268898225841479029389048178315041686690471678002398145202569755627364242874027200000970227646526210386344125018605875163303365832956724182332726329634751968816050982151658272006375010219010839132449805763937377518183390155768345463340092923368518851952725679434681810508808318551886117404122383585826700336852742304288235982155267778497122675849063094585071527353031400280868132117232433283484437018935415521872504620903081836050957836619020505662551271764329322947235981644883075937178765915124876530111882486385015627726601071309530713092425177492636639807101650781692280072819264506300521668893152995928530515477281347434178178512222732539102408794015390438099224777501751138899734100592413699778147988629540126216094345115739279449113000784153516383238645156423659554712695566347480321076380220626971980424928201729329296424254930718246690039544829614843360945207618267825302311320620327693126612637102371694645572386447153638087831331029700949097358049750096587956634732673053809570901714857072387742579157014559152550111435017944438352244363168639323144595105365748476623650121669687160472705106013559246695986620904138085871793183314100946212412574364296793540411251324381314266692603250584431101940802220843507130005294414509540643731973707755030972987538699030871724452141866205621514917022236595346787048878726747383711311865214469766141813156495352380597305300385971769303831457451682846178207480482328196497449094042264873747422902207966328991137344886201415592077428620502967033923136732800125160833838625671055492769135361421667732029631417314374284262286895125084853395505043079310421917740605112187363841367016123702202418286264286582650374566547392081481674120015302027669625700852662855529116303331152866608961480229403355206652145114206266410488481338766022699829933835851727334378720988817966627215513636218654781185753378934567994799327582093472488646868301799227053966842847562390088425546920141770618810713689470709698665417407680087147384247012280661381506050648008737514794632405857960785815257815462041764704335673831795786194930993947473287877279897796908108578632033442137983574224937831270974358662812201661441440997622606839806808278217326989268945376070998230891723126607418182819580644567998513336112830888030900371600314182387768899682752487837750037764303255742150224863242874195551419287133046390438815462240132681789389465133493033597551348659137509357214745975279280694413057611915567705599517142649387635031795213949795907734491740093293664408245460094202102925537481054511713791073246677947785353224240264422569030127642609184466456929735196910724604535148607320957606554622077709201056084014582832871113832282003551441148427582416142301881952480399540020360198870568959972358758676949007464156329604403066829214110006784292967524350219563840767022729671043622870101853862492964576753715741343264676182341273903884041966434614610255363155666080480185876982299777609558730378606391437053391942496293456085489822328293345900772410691799428838287303912782014490309292474293234286725587076122544437925074122151160827687865954101685573035408787576123383964643476536383010319813013909124868248494272350779693229200207599362885078702924775601838176096191495813206315645337479288237304208595686817642740917040043394892161236203488144023075463985877605323103237087823307044999972824401571397509215076490197549964963714189677719647146277340050761589964965356017397842915451272235525209066920857939886188164607305521738753320320107450231995635682336657566613276259550099688716225651132253568756672284242637219936112570422834595331446036400443401034741449703149886062272014941467621457392343558315766857341511643562019074203167634501004006525351691525805064980424721611430663652779893993041660903017350596688593653745049110695070694469241822345880382311899834113921098081550742753590030293292397727426475481683715362533951527187481210510488336011074324245882024297157306847343645243662387704410566310585023006642671078355061800701572403098056363486319491924328191134614420284741336196243552928218481474739930267244926089449902497951261716991172885511049606556308623872284225973961244477240486547512077288136371903600160430341546999953011175772746380499167444226245686323739872511445410530474163553190506169621604420786203084805720894303891557234347056149910990432529562983220880812690153584711595505374002447274546038092874344033260753266301516608454449757527027523376248521237273713186804986671467452222295566098810978948056587441152224441461491190615222172025684484029033233821479710089675171763063694797460945972131225943499266426375959299343094327504325446488345834020943310613266850486780160653927577146850094949028097941642391217669353675549879934734730003347437447093663085768166221284924253270658908472021527831935126624487962914308081958684108436990727527759426173158260787993221352916845130564415882082341905742223431317579745360528540130742272680421795623339896200016819291490956434599048234258139923510110046824754703988662967162510648127870683831377144336247647427600640880910049163816223245114744667454886089091202850268000501494136396987222282465602052203403317796788591207527227224548547502821932367566491725853233664399306470540132952248145446827836492354663121450454486642538158569764964953695544659304629999100429566169841674520107431001221780008571477248700008239351122629550556880539709342845495734766627222292338268237540541218640576816758778052859632936636967120223919823433993761437777605139972560366738065324399869590634616905258595744885830400455100921199526197023325765538484427324396190203750665329610917124923828702960078811874398870058977900969345761644075470898557207421715932297704807830685121609608199877527387973095417737640470260676810707222309588290945786900914846922282842189436181770868618834354611089283955038480425692032593720769675373059146474468549458815690656601481690006906275403043769383767285604265629482511511112358575424252619720848282193255705479051745030467520919677117450917262724172189960669049924685404825224178316208645259307909256336397982936600291039107970881341672245356282947356630663282495320513805273091418738651029317888412825465223400354251823033338791552757256468484140057405160026446669414489629353403742660820744514281270110884896327312006703121722340304028695745696197296400708365265538592031780843856252965575912349793431869244871421497090960745344653262650374857777356441177850837631467532317732200869016052234171926587961578065700510242903415715353590899015864647898947269511331303791409960394174084554757106228155530870795932437844150348594065712536611502072052797305702116252265838917417972268081244791142004438591499515605659646426986859178967593220545059944818464286993838931236661681765600653518071964471217146361566384760755462349502490428529879916746620526661999641926706943432856163816193204462853011858021336564117762595121377724939477313928582794501991649656188016112022500701663980021003596666949120137253536270318088952991093890823424263242120557967529286064046423480920204699559804836319079856712796645570477306211814375883147517645160719319638104627289466200395733704599247602128714497544288123015215966019319352813340106469493493310037010406827763559015178467832553514896231006947342287468350062826653912015757234942400575420234874082678240688514882922709128181940155439628695646251427449928212446705116595328700835613126356332713724190324143657216389806758608929686924819027636193524491243023027201208930595517717899228737627638537160516421926922359910765310940213841902972763263941272897691378800609563078826844183907269996872499296136684236071216316367365549259430758155581876469516326991111459611402100177332688335739036280298734335107672920128815773911389026280591918533960520444662018627913452015628291461063242877430651771696313191454434726612047520976879333216557625242548919299542270048808556927289439371751136227120661462809232212662636241592429756075134493426520538200219484179387797996442516167045807829931895859165348738561444836144656386203781267713780514495054627539504374548366492834356125876362493318098502176842039199084463148611371546292516025253166892967286121614466648595938371410867040316169880708751962755342522239615400500911262761913754108653553648633726770684857410715479943959555900679701344733864144553614625349175764007269730709386141462415595260893584159626106913069476179156480197888967849714658879483785878801826009775153532099268491233186091798958172603295546614811795465510156424794092744281799884034213576646540964926407532106391130641410632845598843718124594795779044910611124477748844496918914943176725669708354158854447608967373042765333042013710956542108085259969341860307679864754552029467183301897573805460398239232235745621254751985111021006768962393066631864023030433836822616877302730269637597754651582643770935553898786934700325470434029694480989435171334473358703813211242201895964315832026246599691970028829220243949286723927475853732696102590551133129095748711168123423361026950494446663892343721616613066086226875652327095154109684279005085501244904446635057054056465183122775167484367780696521996428255499442706718943830845843941398788735260758451400647536903675784667500519682626957513475151377883976511763560875407442052082414440369880920960926114771907880934133160969382708337430943876168584082356777560470674907046498956997633935542818011377451205623330974262191673085920861503686264025984144542825568769505706185371347590341908036294192651632770807827660330227231319449837195684796650624085247943489385878916482629020205835563161079369482543450299107868914031501100088766000515272360888705553705540757764157445578760406433273293441920934966742492390586694876016138453564563556363564106745102862476182478638342647900118729676526138525447349611628669730940890444268812790948109726262231425297490264341136815186068817352851203203158013724154317535083770483035969172200310842253328546265192945221636325044677713502218400086675710001518404006517415594347677157391862942949997248994704097335209507945430777023744861066591286422984891862384660794072733592176922309320644723127478187234547368867199485839528572431164519335358370174917022543245418054179984959130228775331248322554661721775656108828431017206550925741264248584925355631584716727274955222262673430462050704516057560029837390543449338500111872181623853821497416223375721226936580178907938960854572660951448486501173778267254857434516095899476650437373259514788832429200706970650697510229575566410353204643987200862670011012359416007656295075369604246377249698525028357424535968511474855163060534526004898261251100891406284931682341635866584332517916160697575072366132588289105229016531372139607930230161573479891908467725332223071606099290029582990002400133645455336285766350838929730592310234679047200042372537953356886115250927065355605896844073930653157440011919290254600662799850404184669806491141796799218490871777588195799103560056677199163847302744833627655891684666964546396080431907686012570947610435516274633345722993419125773517611799285731681872341264290778130041459138305806359865854546299859018604008226930827824047680249617138277577376606408631242895408730958212261647027432951117991629918718666983527621578328138089316455742400556810891648158964922274590681989392550666118974468868401256270276664553608349196589586797938562948312217717468196377980030158130740656903739689811480778540634528382083990742278132512968702388249023846946591281547041982787473034429779886162648100329021546550165704957356395258911703228776381862914028062131246472660609125379340445336659775661688149081400793986104127982015729672729366283458690381088981630111576976201691912807987213400209681457820444472205576171785283230635742975537009922420365331574934962898936670003244185981059526996721556870366245673506639019679171516776343310396333433792339356058912678094883733246033447495268549930737377952593077274820376977209949528950051197551554553715099598991003788486743217495195677197733657951117361597054515795075549074133620769305270368906532400965296864801431534895125495941435014928601756545987208897042795895238209410507577709493009782103265618706992426881749430811105484405998283112011230583759044843177302065498745430885692602272888484788153829456488735368985479579892795106153439708468673973966331076394440484300888866444954007209247656049892293520846813373001865895815139463726292260892903397766212345063681643417135567412726701137224055538797206767181523383263751883449938101256243806407313207445328259252303546755446133671629437270036393546742411516222810857622223575175776826280369159196625841205666337224881799367246893389092974630670337217504021896868530651527310570531601782162598893966242191562479173126643012072355967281015112308968787060662521733061837333907882575323415248261106975942683802659726149174304498454542851834645384837320943050902311570823761477961272764684539877007723290745690357337797822299566661872566907130926761440787400942035610282749763466712504229073133771161278147097920967838325772914279249962575893710814785392757906558563480978510751248381358096106750334811981279899516555711046807626788714901372438773332030765009161802553026002023015966672223998951682638298160287231896667956069919219375436364753510342444995515723289375061419789130851510868649764902835364906771401650377646366700403380358540363059214998254220559178248151279937834450805491113540791347451078442761323297992966028396592324504034303989179735271629556420131332027480443200014026826618202790927071091743396400545142882762427690848891860045380206743700259613034870969984716083852322967901331277306601505158213294392677994419643654987727722491498973423080964728929700057339912193286028333244275678522374543904216675766164852624068985392926409642036780341493255634554454909271631258667626066153418349062662457334064255661383578604129823849233511404590394292958644957222508157695736508420322004496051255461284819129202613942696196230084894699817827404919523629391095230803526480966355963353911139533201522299689854931730750839010972685754612063188476570545111847744583312622913389430665772661803391795704125068524545858144260342214246601393413844335598049587107589261678067398089582759426521428673425973539160808005959980696880395916945744054475161916731817116864034119458982474789935810693143385213783230123440571891092352661714676973183423169941569471706224940477581305532263433288075492990285643723216245593103906510471428499098356555164533333545142294899274159848721551985567051500363066202895340184566437804489741622354459674156872643922931755552797179560323074187867459112870787979413019374682358730394642557563749077301779380557019203850938524553224484913145890270240010402583904339902296354200758232438726111920883300621149458151382569349438753410309039139724694493557828862090041555404798881337270553311798970019585711837644234647947062951394124463745747358228010483267957593782037613913287063009917317760260713307120475733538720787989723997960074863095319555948105165169533574473370717115081255555107346426142878589710648996858195914755284978588333919319360412287353825478094905101699013944788975897086345635738427618160547387410843092497264311887470308789843058442833458383677715810568781601007874973084016968311748193146715349101359039439455178684517636641646829993025232202363480754787361513825522223915568806795756595177924177636563846630721544774486494169694051623504403907084953932049846467610695365531549984427353037396112991087922523025010800853733327584986573386021351945239522713867180400367985468513908496008819499256075355579845993480486968224432565754433760276264705279847387498517498022771433970014150203626521082676071539446881556410727257567891751782274971997460466862749464664693483948205281117049693846094532377503413840786091346368722284990647349248740509210336835695512011127481770293851994231136066711515491937335843862951547422217949528105837975356025031766303876817835241187779832082149640262108315979760603130370639574742715381026574942129259021696125526126056165423139067296593055533037067147435000979422454923234819973977412437524829958655188915459365935028238829321133546856193580892808231376961701639992258995106302041827730010881934472089896258425873637442271776757919759742894617424000687172130841199046028714722374695083294133620180679733263064283849243313147512236910684208005889817349586394684898657106670107739567737180010015022442466623650204298209644942018748433553148974430168339594816444663147496416332031096789619694612021715184343995186164710284551261604708207834843664862914830573894760573935102029324937835275570904191776906431679759517361016698618476373753663475023373059586450989437214944869360024065918891401381687292284379973719970125688081526235912070165135371892893325029528541468450237214359999975090683207920997762126120551339202084154674754911177863411334668222296089874451279539132807728517019007717300058985705708570973281247652565024128321865381614717613890112102135286722664859192164136405544028004420019074840339937526634964196080749257866233958104053633289799361725355263999177268665316385874672974097236152999221841880661402415556499359123255322056314708137806913943374993324263898197574303876478192186274150090587299312170722855422187070905945262326304715737989929887885472259742792902330155046717622402774131452250456285825269981048041811896728080428390222496396149197492363496778548438742154396023969611340006419847038425701436678325413128283343350989192153795041580401054776154035246942704120269794355865543364619938826809605474863517012501680689445386267681333647688155255061054001968473239051406296041967538128856382041073134528611171965437043513768696425668993319311548318414624667206538043754874647366464807872123640223554654638286607780471706706043220021380901246211380305999238965260693428395932264544343968096226096984882594300265484135972979431215746369905706125232540638092256637649620826035033598768980431842838187567200031421753954415402422104207442985782334643376712418847573363088709993740015645900435598399974751419878890308302442943469787943601726596615274859172986734059790299405089394579659882018766346010830818151566075309037966595159092137664071844196186600361741030067002108276639422561281317105869975631996656107759408871401335865714736651012507528659487254859758536219661658106818724714141997061688633209228321993828410512878357747593431649282937594071971430251950869229116942362363478566037232788560746192222283708260612667128588214674675368422013883676442981988712545978703233098673654040149080942728705521432171914638047083029684427332985982003512025912053663519305273568577756298137045906279247484239624180890992623004168781046100065166545776234037593612745198880056499806085483514167106548786272824879586957687660053815830697993473104438297320593230784735430646932259336781990134992226457563075625587106982943586560070374472783240377122326196129703139845560715048831606706442388626856872306615147995909855005555690650930530710667886813713666530053948100774690635060850722210999449937328482621337587451319258055590524994962636641791982531291496227509023996000483752808740488671676467852093633845958417671939835570446073721586151087168281261928998404811972851789058958376297705228801325250499009234019056469485488972188249807792993895149102828513341429694282540067011097951731014282960426458733083577696446762409658159568231945873671285554052865465486265302738695455464553858274908864129975710265776289867434648572079847762793983189476934982977286213147481356873410876226069198499767710956525362530042966002178318337964313959657137920734547666412195598930007349340588434867109355123193895306452399839481137929164181878116581476176292474781904243784771755553604148180460885941584891579364496813503620964980388300962747960651796686080844530265457413680664715686786586046939553134294561169008448094731278325074700544666354086041014161588606479571906222287739102329294367828759291095515290862229110195006603248964853774956585970074359012452147798413991535214535045642750458961113692106674215139567749179381937443945745783747054349911698465231469289565303804038014391616525042847293170534320237497527562043442362346481029662230317918514780219706200415824834637586243931979083349960750053016568449988298062867503916244396505764510299894242296292023636075071624495202593018873503884352951169251251143420586742120819982640832427099055710019507776561722422842482931340668166281910205141904451888320979949398243293393734275611764523651989773613237366581491653369769914514450453967006584575090691443290587603681889992921543520137984069408550465887381882077762124296802568761538218036686647664169870903999222945446706307739236188083156294391655983942290884549436253552347199673762134962925710902932121678604623574054189699519245350456999324953581966203400098423423022297808194679267803707152919071900245689209568973366489450359746050549942478735064194155583038290167403177021320110368886510514208289765313135458690572337144730971981360729857565628319199607436312546501749238904941555765155439495592238225558178068067799760737574221943334721408915123131761700517850557760951631333523367385784500358305727738346720132481413605125469130696584742526994792008824370178095074688821530831901498559746969442802260580988343346109094539135590765533533357497519381684456992294865025898676905872550869224783153378802073969156507446760733245577128909678667406841135296426811121190733773289925614620049423304344916614940750310093266005579632675536140262414996627158625590905203454699832386665599088451927765576079523787222212394604657171337825833268377585232821558596308955537259491013398736083476647714702179932620673737857179418438286559424281413298441297478173308316833546943982161389654542879899103485454697600587285194896625264609601198406255137039470407419135842489688039927093876034708133314378534984928628755464780801263361384605493978334955979139489923905216650298074528947524189493361806168815759726873752292944199437060476451601098472840738132401216188256040595834109586316988229162895487281174848982681234485257500273582070987770705065553231705454581530033047037455134284624752529889643969985305081150859250221048544885874520928250291133146787792127007143464675569563100950246995964077173713504801803122223191200797203918665097872374853869872261405385235403511640144226638456797246926292600880773023815762705605140792647182239477159431337337755188727261386725989768801239428503793907094237862833598571788108329358896615467591032879335403291856067845605439381805528639158522803222552741851656939758430800971768002934430525600901632692629713880232063014862303458066253457829252270897715276419441107766335833079135665372244388415382579823607793409494903874424986831298265675957759106439376005256965442054345344096430629511347476663525862725698280068920927580370896589374363574284764802875686576264832071451081067146328609150822285204155482676395088359428598693365522599570958444096549702087585658424053576239768629780691110720397386936255058192469977257744052762084780775499023641254085591220132973980809483413357270265748187524655508083304133606026104717554215270648043360094219440897538040374678172546447797671724043761451565303961450688660384971797378135027131366291838430210323884908216045579743676680148487764204000793650096868252905459492071839515408258811458655138523794687657902868600418699527823767226307659038658171117966980117457627846106875625829069938594120765442202393408905620472529924642013903441812213954852228109202970946692892569195607395444286085360077605258484310004758948674727738035107745583599695350540168196417411841258714023587640387292418556278333952478996946902921931453012459396466698587629940929508382279915262586883363515981137110376646531835273380157303863914121774811470552168645603138753915342083240610561936792553231586606860625529486539316071730823079897902984634142739700416114177926619132619407948344848107797941446651083031422110886275520393343649712712768468593828962315074372526171425867196847627729527995129165839286009972863277132280041342508511861098690123535041541613822603375339775966337655486392575498978747115400011437991101824014093964290998909023191126755557025071889005245999583895599282345829753233820744185435875787141536751575766238502901041966995287090686851929931076751866718099851589294323868591187883334689640608106028598722988103538651928521359347355109642450191287178708972547365269422301268174803380866278467354349068940960751372416829573189228739146949699365937751696266101074251278084771694814514397198659156326272432162008981218222708549559576679294444277208260571053691547346836148475862458244263912082809321941502059115005956004247663446522056779842939658123155597501640518716925947362510920305297509393847967768467675708625985765761267670576617603703873894213924816495284108812355725000054922041122374265889818260283965827947652833625366173700946830344242275590539623779050050798630844064772667577459768987303982356602293551183093766145925520268625934470144945120051788531786759348166779027960173512185070249616452259366362354334072737061356635253542962371081769591408570191659420094530074742857909385856110014173423621352037934498146549832951721046920167177389764735555923835558453547268319203706706177647547783800162723952074808552256339020067529095462867538097085777845167514774874348691100734905459644904466583157512196006619335610525575471969232872286601581729244073905643899049773626200673194263716769717888420240153317849032343383250534808014417677710941588097137182466712353880441305690857034160621576721852531174284013922986775922526004167762281119305818980855014087599414477563892167564048673148850214172481819426508338422683137642495690700968963374905852236652617745148197310691657556836040049947865340612012981692890190634475443170036892775964602825449678164927901445397547822211398602544701691360880988006192136271498444564394874355172228861100301484503957016884865040353239165623226374195568605611403449607264300181633531680957881985243392369900875525250645697991904453412614737336441281682080082070273375120125672288277396363198609794648324644074707138919923530917616908088441641378829609390933183209158834042075940213807806383803418954530976403360583455165763510960093767715234308238707499655038158856556583249988889748489960339172728855538663787643132111156719884481569969306474203942483234452188077679677970494437081334164921606662027557730443018667382750846282805535088641615920663795934841933050652012140465667910903200331623011661984966846472142404876681024405658866023127723060273272861460169680672914232830882754779442639664135094208811178590260049131833555792683602266283625853015198280678982031846074011248950674043740414408771819694745860870370905006140994932940418938699779972427621521802798708411208642280384683495800118535890340173643583176340562370028425997371801924440261226477325635669654164996864056049400671301290929134267956145810721093209261696881897179964577514829655435460792360613520766963768239065977729444336038869390667426625591017215822360920737296763240723952353572848781583502078686646926929684642054270106498080487171289711779297114736363028928079898609352402742848692565701168563361340549807707421199110845628161951547148101358529798085522137609373691740725882184130809321536970798273503290973938178788319450328801365974543903201343157393208881430826710904937763848881597865525327122305397555298949454351667181645675680435620661409643789394957606122197778962515740591374788888328455197897036026366206651885454754386607732441930525033688056059241042796089754904085355582878582199588662351300070211325025313938223495012913137099917048803312918521595730283359708886096754518928657754779050455729605118928260491138910340366344645728510461596941669250130798727319315005905761767736492629173267926393536121292940319381000477986770605240957873443626732251111183438321592869302171777780575128114925538469281154512574884856615862952620542847761106458282474627537562119528538404321886408915593108173362503051090049461911609457981384291301425471048297395377009457437432215958783731736256258204488633661352430050456447727954863228864285952962493059175220762458570133890316130992573073777456028272327139466373188720393307169082195674988093022258802437267870333699535694182347429275694156757883365922794228919525228259649880603283555643906259806089011614896417442887661340428836392589882590577339723263536626405271127315628544752166877778269409894891468280037809393382628478210827906853309196997238940867336210013162997026884256522516264795297431402394978478928204826458853890994608566830004785611684565336318559727865567123802029571352626220223384947023039110852004547725270523114270103223424071937401192268571421487497673206715018518193564014522370508097767949689334702504201115011731899492569289470815945183427152047362681057370304737336398795391427831361302696406546953373268570401041161542211528161904665362840941604920037754149992501895320049266291703569517484877335085115639906654208647745328965398276682278002955526981980475747150169729210744672847680196924145180892778756213061623570137579936141304157460947890373188474906916235928487750577437814608946693297666664088860504421674362358159456172168011041615952111226108862517218227631094919484061765970460342455584457576124904455061701001734882986499834618606893924779533659527215880618858572065365981667041537674952834407103962800744638219364264603146071751635333109840479461420011043371552181931278855137206336896903266945637593745533630809736265235617867624549453536534869243802940335397019667121626851239632196755081098850244659235829832642410636994181005535827673107475073716103933201372842335837655558508025753551808243894278678706266335605849665881715907631325398228617843883973249420564384206025188563802920407383139379075875728917526580247405140399923655023349994381209051857884093050857075455385710927476622167136358210461563007831141537762831185148869455984716613271827950222216290823170722108823208328122505208529121745339256419640765307667530693153050149179072113899332396634431459966658233492888893157102276168431648079682890060010017962724931393361399439760964651576323593237945166853520564539883524810926939373928841526533051985067403502428947453358071462498088905449859468987092323297400183915432623325460456647203985473712899273115669054615252332922296567756116371474082453274329497665582854922567957293276742106686565812461830955672287177289910091105316818998630475536114965742624970910236873203403479676776935576068058445693564455156112382226536135185890039244834551036962141234795192248364137564521737750862012179372725894042537713207639754604060419977481048588979997469717986860887219751768013942628743971077206576190891910558555207201566247929428883877925803056494409745600002432180091807160707571105742840217878575370293914257494242768089079390083295895599737860875948634118210912022619905708968956710064304977295048596536434133506550185283534309506801069197226519308900748887363493978164005587542680478239969309912824719226441373990228305948158695017309811256761126426458935197714669300573685869947962944348943706539104366586969855915062528747336109599239586301569909997732636121354169205203539802952651244236296080309931458326072896426389799307965325927728832057511073637313606811956952656554210673347993982498149039105774148862682004808132145407827516372229921257255499257552830198794673993115701061083723424733930841677318293034461604791162809493190931218208011516807201606888346079032264688912198227563325138105462323311003512557361921955005958377147316037491530892493558297431899298770782141153939330189511925032129837706295796491729106010123141281378674570620210102857853319509763050247352390193494784424568612743867986643467764950599780717067919232070461583077392421104205857058228756423834601915704700496181659391406047635666473713200279123121401360300456688400508704522440784832865098799973648374610289226294950270524801963253434773335501551109918134622909609082132343160890613223859910880750673207177072447822371722996131142022223806203180228108273660798672620014051180064473147589725564049917486561051580637235418807125561955423328011899493215704137108299347737466695043747592661057781462259183779778694594409727119781271823126364343782694736297102769793489486411965431836960363827821112013686651065663363024058749974303220235330263696681828538900783559232021752052086464364789232905382754564525594763726799952342246890258498768454533621214796287643716348884999672549900175352401244975612136496574733631313278713307860225172993849558877540992127513023766396775939003617218481054450534500447215551196127942885399865710250847603878544348532476633355389604723616491675778457055147441094574733025478924094608457883340934863698149297561371895724039881693391359908418784259581409307848393896886559020467243834636672124436412798106284858421700193629485208068758013576286095588625451086758954931703434851140386078996063398833414504964834728050356667844994361528214583416605905102041762943384243299756019362029855918375871353559361746657523662793361029343191114816655825548210607592850765179252983358586860706031876612448422284768729964125552622669471821218784003549989145101543897595090447269930904876939418611984976770164036924249487259645935339276353609635145537661022210567956725384082222105731491653568767328574389909020918605523234816248032085581104059226288820358232992452392361151466683639954070024955605211486379255533047542259109441724626842539921277064083267764636947814637405888438759555440275432602544060665850000253740452540838798002992601066435267090688183354386245644859926300584801321093206071297402818651342420153768713068257226809890469802867530288212638115340009413566269689947203749554120476229724156772743012176211851957947673059108603689337008091996658067108244865981708784864397952415717219317893129601100922557117782866565201314972183963462168395774563297715732186074467038696305939780837011895756342836260515436968661974509266837913264255740301558010669110302925969486285885436117278002196602525300705139789762427771785435201223729900891649318358665196742330862952888512907668004231525768648965659233750071153120306920410064867141686048345371743419379985100137984822254269448415358351934386837578017228676277461390781982318921106269669442924093205140271593129153618013192293277404348426237504554550059908855863195532534825330125260352894003144607636609976249122795810214153493913903824439428704878424361146714552292963488127447518140166853705018387406033948394908204132669482916004655992436080303497285362947161478133486384588647686210566245484103035641786134644479006243164039439047332775906404194018357899700369288647257470204202525890155768982201260084718877495094115395594721968511382019606884918312729382629824606132005818668060518341810384256766068398304540149318700119299448903632977935771647291267405800137081672324884692868318382429050051724951824632095711717065659449403986364018878301736469977471911521496161031697193868499106252312890497823599712330080155130272089080758881214752281456602376760152559490657167989397034651441030898196769463432973034560059675998463323414921371474183600050854607810148378991709680193252955578546389456410283809747398716398886501667276396939295741726712681318643113852635992167265280527113348228435799403115099649741205246539218483915751098429739501531374309878908023084941999376866263292093629587654984022557789913720243102587000888197209838717980549782952349521669386613608894083768013314164764720737614139775691907884645204072432770049011779890127007516538270529239564584068852836716822998980251659150752120346793344955957309664441049818112251323086007811887838451923212938079539924466921011141990838294629449836606948997241051098563488603258557318608169434316294925686650530192188515504448702972019984873209869958359024610294948478143902302946140324482920727450237260030839186121674818910867664357166158089284236857428818106951283301993062364732052730100972761217287429296059785321747192959344781689586977224427354237661482070302601369750924658732247876124431892665698290298610795178466122257119968558690556520488566162300600384053485526375261603519553851678709216593221784661565204516967964798896860502760102283974084302945801977026692507360583494420735059718532571166751545093811838869912505519016671284313969954661544638099328693882414996123326425078740555694289640817210230744809325730292179760302064806767758785173286145460178773881968166569307569015872408311377104742649973527090027554480227329864326995409825268639567026106956068175263019517895945305995642744821849110315234638930186054502628799792154964439371812345589678423746536854883817271854419531677433968189061157367773461280240006185435318135629775221156809716252804425444810852403039126511498794594788712362499847430765738563021988552452532999058397012135746408110611161510503915344045201793817964585956270327463699420322960152080891461564124509228522942761255635136556614276100508208989294898284798755923105840335804730627736655523869183920104515588519143282256219361863189065364198552550302021156542282378583519269708094663898546437879948151220650867768704166414188819293780365190644226177190596889816224333365717041855591302691444678674906024146303064781572443848274246378702824097474298696217931106945314421946577634138227034280056939491886851944197667578615326012343360313912461356680835177334997096206449087220409635113192194125145696070154276665554544362489312539665429229982969226742485401146278435350711970683406718069407604617646617535281971152013716328292976473937569839885918059414468530504414537979103656100869698009263318904996478236078817599492419213933141364463733630929475384641633346233355498678286805228769831233533283935477604004457670750680571816293115555931890883077453792743748959357156870440408068057307764589095064937408930017610492088278758292290558641224770665036928441890608517218649423757539939010208865046801390531852321747638032406841116915590361813847629060647502981800895971672301930897320148814979045456953527934752721061134718774754462647508272409634426991692502218331651496684809430008498889837486645056443462360943900094480506691876157056593695044695122116489963252109944214737201097683604056098955912298089521936454902761309439392186429611297471787198513345351200416820484361184973975429515897569144373794262194386838928504236886705165727352467044681772499083871310676330953320948655551924016832747408832538869949041422952125572429798633004709559495504183363211609171434167055719553181860015071264129678910190668411225529790419204049817695291674454411451940491574146469056843293627456877619389049815286409966725241767872231517587655120871273951975499833352165749970512786869622049125078700131909268966244198003616708263316632590135295449057049545223062224644476994582681325624956626414399383884405846139257522894529904795991517429417008946699283624076839703901968348059339225285693683590086954632244601873268002698376950371235926797338973080006919313060138520051260423810894788164320439005200042443722425174122069342947468597280302446252350755723518328040823319941182483232484923872925183654077279376364823093067274824395985168902098388973084413468026878947509768919499577428448600369357405721182852277709520007871334011373585812424939246888649859992881036690802250937386113185905460443621953473183840196449147370493716738623452637655895773995518284523608807089595458796987136397284476752892448640679565890750987026247043250509989097785634183114854403360620752292004521013428052745015208377831038176814515306838954580958596312159650799677671191158188643122615902650462499023980110864896772451839876019901744130928300279976543985793749391286272670026694982789848811500183635503797871335500700784116503285545492846079828961754605346105672950033642151212315377767192485918534937959202696056723932252214037375459708984986225679905818333644489803400923648178166497355817226583634917006137577441015785335298557194481949726746942158012432005365288010133891781336600271509164143785052287603873460717053488325872879081332092899301375991693213647365932303176236272231328058721174002310640190310099760892357149282163215219911673135318310769410355196706280562742776191182126185287318991202971052960064240592603980892293963710763671689026367110502462621171249792224696224388305804392739091110009318929376812877915547519780505362376113275785285481740380309983799791029174600254087436808846466090087034143888632289423850819796790418773052820977122474207695820417166189076997532236936752208345909899500136137592174193038337462426405035546661239858493551450302403399813355544139206548206501711803264660419242209611814729404297569253899018166530868384520068248406167024514167459504438598122605294249789305992150522559070907320192951969365205957120276932855958780257816477073233943044115994619947714353830510404983772943659810659660602634267417006645663998177625738294181491603727413328304220861326072091562408768225524369122438163793219929854186816321428632620101860184577687063162309317834982944262929817912985946975598932462940537806703308773082558676908846080399224515112635478511442874154089901555811852889689133888739682647576250319071007940443902591696093473874700813843003347968066647511320709037966008341833964791972144586582583731285800163805087742252911317257145310247737643406915285147036018171222798763681837088674318127902509008385297850694851574598526453582033112967783696000349123112210234190458825572097476634614439510311401967017574322029329244574428949369481435625369723250316558146920215794009770939086212277814741917096711386594635735759448658429650453098776667424899481125157629809095907396147350151785551819825414042302820323739038482912849165928231775428863343299371087624140802514518651388253473866750506104337952914009644349787501906670499524651613620346519175076585530575846085426132090856634191569389637102189981966805997081156150277473366268929087095836807549548854146172111518941614584652276906855336167387503707882252075957293438352383630560755813095321985741210234991979576153527324255917467271697741146017686632771360753231455503716270226019788988801333281660498942230377828906438937890534771988750820668362228635594057090736283908932413020503339295957956410556583153985860355801592082877622229186659815957459420435333080696650649024164912607406210817971905849612774323413497821509390861674665915982711570023753174344285385180637546655691709205136477548438695399576810047110572924429707492113237622875599728019946365574044575108285469073018377082257688492713868961230608943960500650038615945493752637587858406599986221820480426888887408463049065695508476899820367455479521038471712531563012167219812558767733322094369129163372430279441039534218656904739954956842125063263867766989656310432042969136909617855181394513108121018612021264903289730439326582648479405673428297247797304437282202257531012604729102334878072636574786805463609296883534943975482052173385538545176670376677565526252754509604425048548129824022963638442365769845295409712115030289308716425475334247968702079565282905194186101508645170368334546540175277850758900803015366989319977217007456787151485729690016015581077108931965777060907379039356149598322942398672575513520221203321564067092258635747691313863069388665370732643187420431148965433784890733914037470287257831740589595411663156662727927864876425028392919637734797890518453730971356520869057559496143578063946476328957431870722377510518535567700483304795620116265414390851896199260601800565379074428454866472520334332135974033877284575642834103201584151587310760081857005063106321331707584878418043747918219335098129191444961715262433520336115582699733833443787938053963240832968596902461805707196544715383841428810777835727006057533288499433694819037719475955565115260176984003433692574976421875044250103665986338509949531128498787957025811993561420485925677730852950159701912090354197265458549275941273983599810613955131482832503009438351013037998039547161509367203255785177512751874845951672559216421793593988323723874182847592653746113730226367321937166163905994373567736828349587850143415861268498251301843511378293379532645273487382537059380721151457143604645757662518956132294814026702103808049214624917888709815365274642543976580914191300627825305710631402341649491903278294692842410165292661477526424815042759857863392118741750493183574455339578629097132817083077788819008877190611724480595192367055957871526840987841835076331737562543808946365962519094998803016989412519983703164196232133541963960360236939672907892351019743650863641004161436179630383748761269431888726700241829385066914224378341353507237536306780089276707696853490531320243946694226476353112314584545502752964843890013478946947285946284072599280128263903328500093597382534575218287914931853016311143907032309612425114546006855158037061652648183041531781354421077067929810109727732413569818613810554502052975940216991516791452604937037983687992884181025345391088014518494656837158458061721532067982228993980985520696294329826172179799575153432552208394791313614215754829514546259215493733952962025866593393379388567632660791055452917186536705209217074299520935982092722923683636612106776576521535485999323750100476968469901455663387786690613157594749247773616174703211807104444780335743399737401792855392316262061066803540269651572008154004169849254121770177353265636536706258292781894109272914517684208452956126575762107585778427529008196281782954214626290954655533457125796006002464137146516891246055392735914065800742293489319847690133271669940518618268666706619697780820872185755534734480589026237388883806849494194735533548467060200169034800091964245946014953165442052773831812989387675076941423321112546727664646473842805871299703164780924658852176853473678695750344391822235869037814159920449952287455993686861635562969839003112732831984757113051400372115957601372828419496434765672074962544534301786506435368011327249373275916875632757643324744400105488312154996632895962865562363417158147794259397352803637707245759868912966916688145037617039433665973201101504612732657686022463422704494799430889209484388694435474586868848304501569404742073668881637462638021088240983514174460599459515234395283063724563967704827501877906870450670476853243129548718998764979763800012201167829279132654184813080012664216165686173344895312343121226521362509029888343035775762981682703841243771097606087340312050494114044837164229882604020549876673531611486553876099274518392562688794924998189614739496848683604962294915283330047260438819195102115053254087497246404827920948469267789152857771242916122562567014872351262330533728078567893521310648312868505601557731036899450568055275454137583964573370605058932895185939586541489161620080902649354888712329614213583489273457686468610905963095638027949541242680646200229061149281316577109333403895078870954211764434655554898978483833756883214655335460753694708548508036572120209189878538169922871460328668752663342067029300338681972824025225130178556538194195815094707055022741770304905078002286107180711861086912411177182187120473651436495297707969571062625091087441183770535914755268312357518076968944518737054270885706564650779699825250792051481871780099963118735946299768994568153450420063098231935156109457061175641316223288541541662445349929805574843021684489239193065528257425912758103813259915294605782888460830290062004221809413197619499853309407094449712168011065881692372367708724605723751974486940408445902870512123953707386350423317162311798484805310893059867541555499126076631453156898108720352082350745415345617899594104076996362826993633682505110170234024152695888248675961406461950782070447540303317566618439634560297509436409700101957499749746891319913975515427533666354268752833522351982331886513560080097717807968853030424373166817056395084815112088751937966836067254887246227306927563636936267003615670914188244703384140178819875438156217459273826985549177037432859230295769188037357320996175139771384247429299483486654226126384410846867008027338210082641670715522341221462333056391685230631923690562397756446296732717658972483039633526784187286552737830980966720857113999134898787241369033011853600644602978383621692189687739701626151936436198759713185474280778184328744920124829473773235588303745252844754939647442043958716209782192144968407433070699056726122170537206352779453667588419013287860282000406605445040673463576390095885696877765129386900249865238687088312634463054579712218919233972206253662827326401881524467934490634238490740417158840985075786822799778564651367285250672966299215211912253464795291991246701827931347929753310908482046032098433219251393577288463758472485626860431296799325515304802696672244336044077532387923441395943912233349812529454140851210665859964268714169800610781248683058597035084936486605104720226718771990494611909311123893615177188656265635183948569818300081133421845193510652810611791526751377985360871618930362659509774193872047321051945327845445237036716351206435308853614657978709732389298745041648403606204464446426258197633516473290649689443906508869106019498003095265694276496664518032895134012993489010516998555200735662090278950663819458184906612237273786170251343107480873270410072288470881037493116685856753185485211766097278873372365022583509364791411723718611100517624971609530073600982578443809989581424664236664075932225906798681122810260333388645766920166662241190597028700388548547252851443172937797503061926595785715420569469749883814295600190499338517407168503120866181530093030003023481621705290041534820872425362354205036916786058253824221743123511491859982191677042406655816497089844823103208624156962226482222664861817311172267307743461696319559830964388979997509081911929826562539809696132711398397142284291882007933248115224770330071155970176493943542827485764530264272774955807688304185029766109580595995372127708780348603335617280697734512438022460068498215222357573606492009164164276733514297407465683915467399157173313150923050284279943964644922095589896917623137375962060671194312323522806119010200028401872824494194805382741077134131319566117901452703663091475248267320224126314590360524231540744553538648695465623603663727394838763995270518057619946729848624038856298776967999589024968282414576608721120982939484796483209742528426276008054466675027353783303486839990715657334357272985062666452203997309346604050309807228878485943822708473388416267759659423268457635536566882794844022998598170052801897432510885809436788957544476879197211517576597331931098242895522509381706718966022294002788951506808335811541021425585853251352831476687878081255773297918851431797231464254681828646652756161006130757406678436083712164370536919184251775131452045706153278114506784973048046387091941359611800483844379795370428702199603070113312860379437961402145997398840123613672840201850626683487711642423423830642588467335457774890687443654630806287474372726637005826032474255621033949498365546892191259540543483962818653008510533613322479639614123419436299016071338274341956430587494298231749175525785763454183415376726038677495275253359364015228734371202056760294303599970590175647034929428440411913534662431828290073422030466239775735113838413210319550900715184982506041635241587801427932046623780437149569397661085399147871595887308808939294292649908680317164459045126842311816234571246849369995925572427131330079690711653792162722741169231950966010176027184565850585387030687892967552847245116352158610861823439607489075169430684859659601051377019904465333402390574588701033469343587474248794823542172145243787161219414284447548705719872149800338310029286644180249506038096338514106752735499481584797014405423123822747089784172330591747066657495788062238120899698828037676059536458401728714171687201992093205301725296054361915375310310069000902448490001120537024298856313139628490134520394259384571318727997426575382310211220135175841935046191804966424142879573078970807038541908417804280884020342240356222769284675017096378364344255186037238057344872730628205800021736707576443089615198163708348436552052581175951094918634810544562794416737862129683515956182187097111049897985843117878766511738634726299692524176717571000016847487005143051369962961070140738530756625037792569811239761147571938527389191775263418901502571205278992134139317243944283801897270475085792404080487892561884008533905282360981817845874689686164857359137816403013716909802334102162111480763523580868126546595760785132932375415293365179692396542529890623859401996529919454264186947866241068495147393673033815066171176734114441683158293819655049792834154487480651519332372897317582491550299656514489714074950970943272551100796381274312939346791770272437615474053447549274224827504627952999625817470147180800245648631601478639415990960447381926092759369652131618381006820143887510289665507431447152099846402379270066489489347864574856420429069605285022212909797886629935355820391270543807974858850701307103631220408692423667169189657657906783068507606194453007017552434227782601764572269254180493661427707808890095779664775423210642614317822164446538596480781816932864740924271621341706046955274260135004432195346230128779273403368729691504874925727122188570315956819591334147608689554421012486980340055118427818390195935849054483946588177007997853299583967039679174797155997985755825859961372868711007053153434154445164180117577604623674264702814204842491525815978231963404480539313921303176713227824287007604790232765798009212535074111857162894197489094391605863154501184135025782492117729624382498426085689739916790250899182885440249408720773869144170972846016701574131914315180470925307384059680769621052498950933358084144622576899364443527368744169530860737474577479824001477904858856364605345972137559840411116076717908368410189714295026476950047105926849480867145091749861662227903577300067224146407998587986276655226578235931428707619742272158694354735894287000641426819658315274554289162717991303306924661190794603055175445592682381858208690508513015552352386121613894567736252334577979313596832695011752332043118873617562239666113991074269925847782539427944117667844277227631687491954771675744054497280250452487953166108572271683458841973935199863874161120020311470300969087361396065711483990740040942450253645921108528592976459901721078060953476579478408352575204551556506751848935156594911151288113105417379574962898663816084282395175331296366845409507321280178133786181558417476345279186904714400042066587661083418586757676681789614415734719597460596695961416789114029491907704759090079302898657331133047637369845443118757291284612586561678705726525066997630872942160488218084805962173691990944865823405463555412079383775286707645696022029917032584032389062685188717090079599132119980094478766773583917012672489852148477409483652216018529640927282211889812151815680241308160435658971901481551588561830454761945981065597320582370391160327674177192342145546270160670252494849450398851680401420038884391046651261697862380083885051625356350581529261717141841238692187416378674101016518691198952089900198058096484181381604495205122503099397639153874258769943241540758881536021366655327182064614857225661098396538039171770107048868689983715170009600707046899811040372752000597134762771027984794107782143498810979973109097647055766119649005136543360423300232536476533805130650823498640388622233701931526134186292635364769940453356486742876454418562844250761439357043245868131677420774647569404169425566497778051698182848398235635237161540253596974398568037859872177262034628255068557758215374612563307003801096675502572986774769329773972029243614555611871797548043891305413062819089433527425543093866752939218562071927598237763786771579617980208109749368821341044513652675389680424177256891536146484654132246426013206763022673278022086879047748844935969663716748413152136587121771197679734997038544461903930783272631074070371497448362100805878664591363981058300995718300690410801915278953287074541532004636680719039323199699352810125528110137083201294031424771293572753191012584689816773715871120360893798166643384330894329927603353791556589739016792339855105962094321644883721588000505072168342411555379731396158011437431983997418838132343866215258861840915814651937574965055513139104426563070581533406954705851473213076694505156167079433790509426746973940202437631167682123551229741613522241618316763739993393743361186084120804060848473163225324462829689633875306742576787792547849667625548293298977749130777956067234332049605271595746258287433523136229993176185950170779375515895118379048410764513718511421405416392544713022834620163437163378677217757907644792646898422423505981264827684519825621451118156809859103735497865692709414408523313985802562614738623245035365492043646630509289568635798253209188037354010997842143961500954549139641413700624887724631831840755256835949255546193847504081947210100772266319598695735234478629237341018103944840604198228095869210982251035357097856232396493861606501611880538185927432637673920773031229270480731801751262884768564662790085384936130009352124987877453099041859936196141089364285772055900706805305849205027035147807219475660726548524554290087906303063698498477425449020119708983422260825794484991613040004280252793416200254077848046287702920197850431242409862475593703033549549543224032371328981704761552430302123999349610642135429178378776678794191499009043342836477646403249278576171009542709320047187428767789502257305475512241493163741837780063812832603730534819159824470713783880492975003175395587805833219458152147831551087755288055348856385745247357910969323000504085206358227140135725430479364449180780982622290113533207659864011473577321210502507387755128382796308505437889323212807765151753234643161434256776182160386872325053567258781346346080669494783362067835634295791537451833300344676007557533756088293861198900435451212707050620276632502324466041093696480635553997178655191383272932301500191980773809760465111863569060062304406427156826341006615141815784518872727173834518843324643844904624442284850022216670703819723315080316685560635827814056011710679609118880961722524657320317308076504869168331992400630321864733357773658557949096893752808579158412808613123226153852041086582364494000585486462634101479640528747693967138828457271496663492463435848233368749050702537343571474842758155555171285117171216269660319674314360501868615484688144722195257780381890082990245597656594427581860035453042200513266432042635525143522915074722114025749662503293567508027053943051492745116162896828960069901858397445712956004778809467189359831711949342645400386694863315267204947267837028657532407772723321247737287325704829322310605371486194745345364705121239421494169619455251266359751380872177888225958987671382626528659127682275932871833000830594925881723965488110641796962481893961374766210250191771025620284484472689188384287548737612391315785115877606790383292024689054560061379003101861357700755442366723120092344820346578443999378924599676710937625501684809097472416184464361632535366315053609206944200376551052493680866195934191865872958345006092863295890067127837630643129520187969298825764248119719104022182525215702885716545374412252543194814490588050334060101347201171514312925351966064415752740894970521527701261872194295213966022881899190649201161046548676553987832238965031405559793404020172370915466689776646222063210399900544753435029270096706996302244414601971515677792692565853815520286541065145372425751057156647108385644094101568168436103417909582581264115815834812413979504673496721133305753738772825306909263124937318957970022558040481193642100368821966590859936206511084568601753395903121549923422648544408080879871391766667619876958072837132352615386442616149313476680032589885577008234493268672607946553245420918314453296545678017800760765123463014199928475715141384191080180082650535482002084013661268502927495061431636783996804049726318152164985974741855539048498414926492375075153760952891084499402541183432404927936246985799577143038203108982936863856703575107991991030026146770285279508210375867542102251134599588384106220303472336532572253314452375607673650345836850418790623753497391899148891360048723414121245450704924267096038090963482004242759913752696661252426915777885818748647791852464040796294952969490365426301856291229702151759192168721289121993092126231031116132373468851000812937760345164554958238056111250542687178828223353116296115539681057971649023146474784360871198935950318743375323001609099228879967115566616915574339383388929732355693717521968363578864197588749836801792246183781263811252449853080179271271157609049489979338840487995875037773305159493759509987099179680618591958232624462786823832880557839523958059889513481890448581750886467640485915389145530744382187211249580034604269137981177509201493685027927332614517937177068859168013259367056691191823625137442120339542701929416717248574108229363769139463236638037990055252209743822546805904002673533322057974376503339477994716343713307709436136851103252553938823884251696528854689695430314655884582453868493485286035879636952789245043761152035750552642002237351382893502916378341875421229897296461076068363622589223346520837342926936759726984761982397590572599052725331204941517488180369492578534279887148685446857505839095109990703160031429685466894689995295544971140926963747526594586499305857807870905262831237502104065275756329862862854585197014954550456003970803733121680989615962287225388272304981250200380879067582736646284663025434886147335113325676199083459139688143270982526855428608593204719566569270780254729703716965736406936030464729368116606691418423023436375968559343507682244626572979527660590213681108421536201377525521380238129838963253176723034505260820742099742649907316573165907539436748099784926931088540949352174731338824350625349481146903813232149216556583517916685481564273076958752179152863967015257083152228345015368964240664102888265045311336765995537948443328587471203222693914991804453092848351932840044981696617090341363913435182779146652825062660336234033154277015995716191072080211455255973327824827321957413533104689929455567800900151374280075063370360292453464343360536529666968217795058352161125247738324345681452337960547793691697544580720631323947532971631355785430964084835698485261025300187625178212912754611497497904473074086901396405650350997487319406539096390837563338187101804055779079047178175900235386672627689730669628408655213585125899679801519751630819002504615190049068167452631042504661357334379008795608453109551159559040430801095586778314057574281217504964488976949710615710413870838497310234004340060407019052166035091527864609320051461919084968078390299831495100618572580245713200544008595736426829079936767174692976214003382136355560830532631671907131581390581791182918858084277109207617993043932464127079949134048433236087524592672900556304904753492240852336486543577188235482414008287520392239151094240904151044108328726947705634422941284979121285933120026757222940470230345345060258244586400815011904767143653301453804990475530394707925206684001006160970309744176647924607579036691222117007090305097835711333584112795857909529988483721294088644938043850461030315828923535500269338828653344775201134004755795410087086913110199809970694789323052248756921685979641352421085351078644651564037736967006484500697605936998653036203517324385461635889852228032981934913309951736160123600843921558325121031631358341096727337137615035106451254673671935669979931904893735168376923304647510938035306498654156440993162171846270426149830422576538404657694899920570760736052041950029885047951423934666656528197776497006297784513238861461395609570915957302041040075272244750026987693930558442636315986850423760514248017874587005086944534097122827387295809343447300515633213816285569029510221861017375415430298264939213857398804489107353642479576456711955554425722020376452967433055746043822372995779805521839884720103441714013954100581601453396738733184912154348069612029381849303692232890078082964315942165289207598606225372222908294300994986090383749420920610241222693305488207974408772757922177917514988612924345637225749481465887628151957921684381879854059474300413046467802200837881431076284877427508942637280387454870329971136154752631305744462964331174406812825835698275664223572695557283031315653325193189200651157467596550719488334212857557834612990071977442736540998851705697023833667852911838807309644043517180084800925412921723531769908961051253493455206022666000258596472504780498311964725215878691129704818666767827790325801475912042663297661353367958388068661551510210758384557595786529401736331119686602912416783067850853758133691922565081586031531994071085817469945281946235213653921338723579139409912615736811885577600365959677984595295624817064321665938345778568074424707857314223009177348163978804207395218836132466705627558711606563557553902564684426325995183986851806175769628686548823591312519666233768520511181185858622025182550783732439370281530970752313820226927950181480064071226600378617790681221933148188818580647040175181979574343323695676032358393178033217594778511806248259601870222590138119312788944550583291616471463163238772778822547200335054634211394090405685777069332157675922625170499106328304090817956865540559886184304150314183199678035629361417737885591123308407999501732992233649779367348342596519920114859529006132582929364127638985483177726957756629294614039129051318834499468427860179375266750651948644340879921524191935772239386100330709971692100835594655573968058325222332260123307705602031680641541601504307041579353499058259971905714996141106739889266940022233131052478658368793229688107176729418094712176473325578844932882791187173749631660671801372713047655329058935496539606474177115847419181428240584666633877265193520258524092442457772314666400094668496372808125751272166433214826831758468518449605333598359259184694029468852661555622622183230210700877679194473905848611389091165704321840936425234587652031150184427487694182952294933065303535895135437329099142850210140343965665113960238831562725712899864384046398823160078930773843469726025326424220294585564004297489903074999805976455591427191288590207474405960918583109447112766589754634481478210495589075270862537617372293438170470898271358636353165762963629732868196614620574570767328234504923966563404765903846209879486951267348553398266352505538848088881332752910567550704893029637610199461539592757213053694870891838377365306739915130686854920452265833426570792727185866583422129738534833323593515450928409283984355455907350488183627185972573772374256298073754120176022606017189692494123745810783575776913493317107889414271838748396827548115325577340863366900144857198882405716189153509419928192287220463561692096363524330128231767648674701764337518865207477621164646307382033323131680503642725254249251533987620730797896303646364827682013715609441665059957427240758197910222071911033975447476361589790294889639771654744165111450106536369148320942652880052642874386963932647513151822773320229362745615776840199272613211837084659296359371390140222518597144717356839035855510788124679929714601808138078252549318333334824038448265687585529011339248485005588815510013912409913239391399875842826363221154891709381625632210506380638714577120652287152321474973593023516404559484413044104782136036769649736657544985748771366073515606727442844608801365681412874202825199323507742349114400492921215935041541101740787739694919581199031579411269472361766100675786576482448149803889153512666609128455483409488324742865537493133650228219075932308943419619326774140388181258819357624899673630142948496420800218205712449746974659106408241474224159658792703824681189515095242734035241638061423857620113531899999888341856694332871058739280724821901826182503445270677364831983469650711878674108884260582037636891183506173092291944304176522889890755028904398551233262815508827443279727003772023838336079890572437045616954469136975592700047095831589022567743037887570186590604328241526927996545378101554374263473674716347996185297787374891424254807908667515294054255563961560070052984943198644569917349998572979851451686000257286803762220096551589080066750243274937548755298773495838650271275154819054352397277516054994606403453552315010280688499104895938204534082247102408405923910690419900316598670657600934186517560450565292938166536869791595012346649265778857352528219492053151049130581760235330773824217943968446386519145372914265993195938667436202399739667819769611492459814730838869112032481316600207320067746510125317327915014909704291830401360917620832942193170455518149304731976876486852838217986746672354237749049026557982663212949324912159089268723850149832711677824603970620293536561066193305410325278848277248698389262880854529403119290819455458846608095948095533067427968245799621591710416151225876908612821763678080742209279457366543821754660529490639565389238005669541272635947988423096592923970818572914863547611133148474566610564318380448507390231817684727999314839263453672140098701512790364930018508824105323896843749514269979441990034554168667515367680420179117869886345478082874114731794744672467298802692793721574886436832809740851311955325431322942716342371533603780165355362649723963117773345313242528535180885718334706249433162904165411514385817215094958968004935460886607062008856043941826479207057495165481104899559982601714352113827607994128784005198807508191229912442067773805754719667759209775507624158875605283892810938212690576082093886860045294460183001084754652105895244514292865495530562401325708706418327582951914750907318561688362927385662473135802421800844860906943473954696546048133451474474203041626762707069727112558055275014198493180494410885751123528783713882570859023695112349226594565210836569894288002968424027630105085676483537970625805947725202933568593059738570784977277940176570658967209382842122387635548986117745393797600545045633737452029240048469661662965873185262584795516022501042430878239435664972037300350488839141110245004747775981822794947011836179963370481998698155632261238171317024870423647310260298267170324801689094503968085871958636249505446414636573521189551900652789844829391288751945574019070629259997857032012966554663093749435471758109179667953379012945165066640465249191375386120621435272163322711670623523700780114770671345586145656668385098625943167289575458132640304778093062436522305268099175345204004401916336194993504291315720314510599474844435513699739779988207104379263101638020382912876196239114933499348977506391262689996017596398248424022738892762432748744423828331595203236567508690603348993688278025886340695165177994738259222723065124952928089347823838765578292733450011457706822537839431774285668270260238031797780052209686434753744622295605838117248950585963917790664152883174569213733610908534365675907757093220242137063133530957560865801739374627211132195170267007895202273793539156421434852232812288999710682547031735471172881168272178938006785026580947413438769148008089956111946436399944525998185200740276578092612272151900340609597919790265994185735961568816207031684983335723548808551156538773958375726948405136173549330392502187812726919447086531845062455914436164046406255411982107752264484121809923781045354573731718063330738620986769640740762921456158570154264170607480028855929266617222410643630018277019411387568609589993417131918852427760051156598056602998878326839615667029659502297360937269846809254644495429073528958822849885640782772533680367336250256065459506297733262585029502100817923653604394373535111615427518338778377377947515107305808414709914225936922793208330129963480491494672265043142293426895122072501438095954637173657069706502143921499086464221583858444416803698521272691799595597577602724279774160119938600382002723100218844779665617764021241441668501842126641577400579820394857881994413740290979471020973789867278863746487083315797436038871228385996138066687708040316959471170552480930247270417755107010598767623544740292648946120829000163015685095445363956438697093512534122702085361730410689205420969237543730435892795591151490776056313454191657399039368478052155033038541739960637509624431324173106369846235533963071021765696316694554684600383037563328144981331894610939805364920899641142377843895933694879046242011599173235296291929994963828411098533369811367431078977485581166854201599766318567206449738533159831435865695486634514694625665671919564419746728941491059244386472767183249048512416404031088808343281437511411337921056121382455738837619197934707367316054270299085675298457258236362207777114111489699155415074253286129872096065557669998285949932161599219714243091396852783109860940620114998322267950809370528533190439135558956999750002202916767200154007683547613801973837152981963075851775701905891840130787020984846198122673327967664101269999398448517006586352186211441214277418322188052067390976344254195297486372031907875626228082546970955937405805833441571018080179321820566576026693804208841313125477376119221751941978773090123201232809637887884508193688836142319747672908705263319659318993866952367915989329877550907626700550783114486780575061478468896851860181788305852871474046555630587225087454122561622890704698006585223402225195271270023735034126211200743086874254108985636758027841275123361347125072798159228377561808760658473602459800627756807584245486744185013794593620158853137758676812672759931676862720729571536583530866684041201758095457571634342273740361938071045242204929108685756399774348538109231376965751877563705316836062839569693855589516158424587370743181938905611895410291513904644754189915454574572148475005714272325289441370082464857280600229918832257389400744131619006931253231686424808809533537062186870294717728848002972318408318679781508228567458209301897763786980602716711343809171191776244771721925946767264204530263533479503476147367376656696770656147767275221901851488192503373804448789819820933331794563657239026436889067409867681660019887780807143336588163301432612346302088369040690434475965484250752128110486132526766190092127469723476158441643614713086358620896177347703845012098925895898036487947431840672045550798806755051571891454752748531083345519880732145798142923511835493453384020305580552335410793952121362941424719635455718464094950239111543594655539846802340825806491760740238368713707297259364767082499029909846075161944976335807260407074276385543037678031095629097810508187912435576041227508125506723608371258986600470798396435929112728742377558117662270266479325140592736533264235305425782700601744545625058953519858079371800307039792619899381798388571896001677723630412328261965008914540770979208149843555952799017775874692281289910520246959881813571334593324395815584084620043754751161422820118699312691838332072783401352851096762124927685976551407803113463453707594366850746812196215050117844889581748261232522937249031930080955224683150467859476013037531807113103116246597678302397930618937479059995734488642298820567210856608929713320404759271469298550738077902173544230702933451363926410554271470952820649993911819193744095399502430394455893458716195976821914019335962288989599713652609746655453991775378825716134065965452747586873874014580133936400118019496658427447350546932619955185603834181938946856507844424719235314898190214157175965370013954872366855859717182710168817927571197264207129761929223800079053150774666461216085579190355509653108889854947228730511563996323906464924041418474469922782029545118079984367839267248227510732949659270440510276052634251560761147889673425110433496399884732547576085929244961969558608439295527865065841874550213899698479437362674436522397170062860204029984215937261042344167264063335986786103169156405397253138800140348941061571800359700373478797196506138871876813067251695100550451950499215089182771015464268562927229075521509733167678080477828480496746054155742724854241697255231697007827933538001785904425371599573408841075837449079471292775129918408767406622239492940760801132855348662522124839671185408802874059423896479387710000883287269190243773924932859490801236897304323101223170703224837910713074780528425570695163131517662390597564127242637875184411292076039919520754049879268852468379747892439347435381571003566642855567048344475776033418406818408080701200758358336408143572128897078194456771963501905963869793269846998683274967713359595003747607025109076389135947219358149714466858427577845241492483226657871864910790137349268406295461089501254377943412688730388756195307360687753420144626399643920747499812716839396556498280162641864311145860970704493623909030456242130781093658070244421848006519018841033031968035527224894827602725456680312283310970067875399453572542879022247003610260544145794496428197438810018433393774669515668581438029592915646041014826322572509104926399698067849600895537193142383373504890289757895888440889539622651803627749350822405854708281707218097349139083203601499167604850127719013226488300736067461479432781729875415592154165119342236069312488884282584031116897316666173880354325587083259376938936259200036715087017561620000250716561618428031244822236411992222740689012980326540550199581986564366921153008336973727270553384646258728999099666452809100018207967804393363502125615382810135136405813150068935811196527265840788003520421931748005824024145520170991777747597307440636782142824256385318010360801040027046820520848953693610135161297245226055237135733394730513397305384446916015420532569378564774935386260210061920599890340842864711687668110459693938466881454999326694282639754514458872562653605149242090546185482011456203210889920865676662142955250178852147145996021182996291219767556950395919264325425518634812957514857981415111341058220325824590857413814057389326797793307693379315188589588873336148552038053185975190729246652821865375471717927828709558394874848785943168831414567271496678868183152786245973855809123202956840637535455824944990702364111470346949876600815988011927450427447901812038488257972791833848156361813468462286894861564053085730189389790947364542727869006615663988980715685061225534563008001482880520955029782775412767333183855611495727066248493197567636235424808394825276434386710071440195165277570713724958780144662636890032194881704749774017644774454582264114078374059116138017074747332141535305774345847548592222298812921577664180884918640621780114511565743389085271776466311037048994541399987305401190140075071945831133512119404969506668563290629554685018537649154537224781111518554355105061916460839428279549849998995256724696276805738513049571955587003339614818743209977505430709813176998339926369402057112430932432320864688059504109059029670233686249936785306055946122402906664597105851170759667464804508885716099802041737747944441276484945925514055956579205705065065876596658131661721641290821836115800604760971187513567520060153913777984647930644318437577721485035897516583987799689503376867025725421480173697956395728922583155209609751308074350851592292595030503719588295544307401170281493176303394747081418895215038024789903587961649822776629546656203929639649888128776909068084744399486807270925480121487782111036166063774299632307894484177976454319334108923737714109824498693500481448336290812044870082288122565102131226638675586085082449543821780589132369090526574660667685237269689462806120505212418985739360443690430117751706916562665590791698506883019257513841506595312776127532129725458776804756853814430016667759366941192708081978893960989499967755421442830457450403185153776163176989950612710963331860152275261860087982962512653876178733317807529393695516732524362210637259568792995662653076590824085441765370783661712222609177849591218632649768189612921731809167328743295420086562523049211984453263890615876594005429259839780983589737353644138314234127473004082028609681920283782423189208520502679894961048769972869600851415032117769776807233431563274696836432407573806830955214439024900996966396560669415727400799105676280924121812339551425569764311381088210934850926413155628372597031846463228021193044005605036492062627452675956487111400981922321568885066676795909509047043568849392732758546834963892899105911685198032611441126596802380655596027157857995994680780472844168933963799741811300687577219023209965020900377203638089938333052010529548436005867936451884152985223127967232242845006730050019798971330254071043933280690667867701094782062632701715936625436339186094836751614378917633232166185975284551387888730561616338842397105880163561625096466619013673083079541950637982141301738395593597702188320495397178461151316416401130765979661207946728347858128816393791794238413176712790469461165566455998036472215590162266380414591081736350105420169425396010859044321524555542282838907314828549869924885239567516049003799975693274844443041493733504534539121655604486456086326523890578672528359479737540452557501410886419418489823693943203665743271865036412889236251518151908759932667413570671340280347029462633984490149357037334230838576803196108986223399650069912049252714887626035454551491896418215229042833764213273708286737008263759827871354867386761627570467680662093491404146240696280769017773142580584271464185410668294685568339302777542691246372640025250524195412217494782532292398536378860790357508868810912246159906587106611484715644039023838202297200247556273076050393087767427532307310868362836365614829349698793096360743661754004084844658785458604154111803216014213599104110510211780150419765398206768383241997940385840289630853134570196515043911443342483018138040533235885078830301429369020618975348160654929400446300924214329896060695624396064318052274901665865590471005158364801204710361422761881209600435728005366389980824877116550848287507402905871352630163868667709038238083721991718036571262600152581546907445549963855831521027954936502145946962113317353907290018666317865529842173162706144651528987680624980024230472222748973823493563346408362747061902020029948392299154738893768542687452761028969933087726426306364415487835631476498077491459340563056339164537255232376301158427541693412462424098234172967411639781744032133534505265985372537204672307440883691570525162362016942754559180752112424900134729576150067694887898837793864486934366672485882527854962753546787185906677282261684882683313817481866124698161847460711233479589619194031440440425296744017794096714401567785262465063929716094057768559596805998667238540952955023831701654676310542391182692243145639026085906287540445792567450365291931522613737190536831617106709234590983995939610931126986578798775208742728783028066417233439385428983225451912939582062460200952448323785386230886969669364060217919104462520585711969776325878746702745653398985142713120106084847642857871182058077338453843698016091245795124694064511685741168562120170482919884336066321221462733289721950812042898817166655851942211059322299277934557091594402580379317921835499051375811285852213845991153242010939279137623311312956528058762770069327841454337610799348924139951898417522208325126240345875811552972338026039193763259224212650051191474073114785596960084542534389398450980704894224544981937300924184617651775233035973552083811023758072247535146975304160025974630755011466421466365283414080145374739736706063298061821219283250833173077754486030202667607335146768405652106481974306862173636785477281198781669342437285234311584481079807011051773685944763584524662339822529032714507389411038213003850348499799995073674311276512791453646457578184577602474422718939678706492196514871360770054824575130315362066767061409626813295638882894214975499322518525343376187976421610415098010276993410913317451832573046708577394695130456782880097081448062894633462857883261458472021271910192401967493619998870307222117925900302994067997222746785552012382034703828994743835328717758402285927656614612301460497490141212575834449079023712917303970511050188176000431807754613194288271293169166580604414099259077847824113832703407318474215554558392757567141923925056559972017720500221388228883061858761721628387564690739450968154432333743829309974794303511006018989688304393956240420662550074375476318469900217885813210646213293838000058948417845765606015211794913804660176192628831589480152411720252944154697352771923469817727915924861142025167210411937041737890837695492844831568737320810495289267378934105727114449101393557027131580725235005011046068586609695679067617356312444302495864603763574743212233319190975647879141364778067696476641410314956283523898900502888465555736684342165228170498727424438354013143405681367472374964199793958086527725986615792188448172827015945292310918191905121240406413035025435271097983476198955569748505155800724885118139786248690597222612511149882282486145537861201702929654835442015607043375997757051276253841425191240704997709856545888347337476688453173877362431147926108191012863624815576343785456660943802118536588043494792661963634550337710757204748802551093330337817485442112278103327025356699355747893641308562621132596063762455335754322798798762401001100525144567608728099653030746054101295717352304175836389418097879163829199237899798738006012265910453728179116187061465848303735389004126105827755619508356926942925166366165383424811666076410555870981447168369544978644719520409317271269374230362600092246346653604973162340637576873296990921483148887714123216167604362989077866956108873928781068657064597953107442000966550857214773128834399113291822240617868786299988200207332952135312629531728027897792331708047337739101214228263332244586977796799053048279425316719627545065603604695609149883756341644682474006446457005190860753458390085018375091097567799077250014048621832216261220804787041965453555589594960832427696254301714434382855206864822448133202961679960216456095291323089773017166072849056891778679217298197168369777754664816933016201256392926385651291147649421351275586270741523487562597486435509712622438834687319629898794056301027319118100520526406471267373690591458370519374353151367238228657976725983442687405474433553035918114006384980310751946840669866578852766359097861793543744981984532382713173378407907575956476305708054970375453956443742222924285105493840702861929654663438414126498192178281146297369640611462369611728443752456778328343182410519545311759425372231208962562868183897771414381233925958557420411768051783362252885759617502560788360063649499486602268097594315699366702863286454940428371055406877114230140760461483825927072645773052752014485928949155321767956877057124585377361815502728463152414607348312215770176081680640114834565692459370676145241474733580284939656757177457815123267962975036238867735909994512077477964560455497319898416569918732417984474908950927574059702269559888133447215926761268046254529322039967700043746301697669369582755660293363886940835439991688894777095581149922980681680322005535459804171476466251072176687814666113436390013258456652724200438421246158783062237197406795085864095917815343956713950597776004601848825411307874469940352666207319606467515505115825275213373886748574374697103543935582159417205581686144248782995228343076896600602204444913593237378325080868932776626540235803411860780020913780865784293511568126678935979699406566375563107946462325167953493799154977106138337487232629639006680392548477769107795466953011030123487861606385049771718694965695994055884392158697614397644152685319400149816636222954803484438844366638684640218138466759976714305317392383585038292135351931582295618172406256133004198939348281156016150144861161326001530389553168140240629767457885091216073684068593225852870721228220551442524305598995794410110290138633896658804073815540294661077938543386729681846451385300648068528941606177426502207059503008526203241669031180748902829989744687579372842216461320512999471183448740588529959694204667764383051779414068045850236692517499492373174402627284794466466302634129126595319697238876650440167104677621268610811537368190048243886436676022615336256664181758866227751591960015459713971463846700809624201191648203124977180764440143769597189913619797543105275493418404725093178904757251185537184828504785747933668451333419362252880289093486560937645213152505977790530893717579106848920719136304556728307550686234744641947129600761327327991111322259974490856522156074015355928095126747346080791523840012098386970614652001238752683409776468180404712970236063665708296382230189372375963402418639651276303877826313123757144080150080797916613747146874602152766288686609912987116425163004229953306462146119388762599294685488316105965564877721028374760264017707485933494615564427754190497091383415342578264520945464834833347660311840934345750922508345636869800343749043805752328982937036686825042096702726327853319301310057714553915992645968097974883380357473236312767813617869428496513852883689582904031839315776254047769912763235724627576794198499098091518550317459161943517697846657786708430589486635508270069342743217565089221300855010943699652707174841968568037755215730203980854177530541305496047783624274406049836812351463108351083442792065415439787707843671931613165584622302425958745959739388212342361094436643711166685037939247804761690880179410313942905180902570850064207593695988276795331247940619654334708198520928460463125198361918779036497084171911615286823249590942002012421216427527352734895366891328808662511028352313510748003605784832895758316414060579167435509119271755012445295428130368950776940542506120657598372216808632555331790265153917265822029486300490616303080262354125699968893722992514958400323753545990455539939940069035416142185406997402396556099946763357247435751779097489404833237438804085663104272048270381976211253927467092337892031285019419614893303074548524527408154106478788230816221105710810160172818671125603645312988868970003961594086649191687322518145480504327574335688556650289727993310037641604548780387484008892555646769768955835869211838014836245489526105434735302855620988085105477223752543457342503254215343212171285018604309187817252182107359119429077551571149884636809858495719816668401935919877996092807260192513772977442307571283238283339304997904351277272506238051744552331732689536791116833285829084649622408619568612846507523553482253209700571655216780928054657860931682484346388982244612594802928104026267374259842447950843036334559722217164542654505972620164603141736413611826142410055291943491055452025265436892482249707495831249120443481622598772453746334997260998819174462540483699160615519429302552503026854960476858928228424863157535344087401343931586638472891492603069262361787750130579905216912366062650431013827962171658686590458018038297052707029615519631856870175579994005695548071818360552779917454316908614750771879735933536743548372964422262476296902952730851483174640540099035161548947677494581286718768644116546014641409677192648625201866233340099180669281645811374777656936506742595764369245971261168939957033330140620043021990032458992710573985009410608973130508207680403545361011223907405127001453472664689288535490117787990357098925842544311542882869098756466997539549659847262898627006186812711923743395366176146484290737600639624444240846434359760192262676973576786424287706214837967104607677866725764763538519698632666569191598640532690129733307925954455625294757445364325797763290988002721711744555353878651621886238438919679808208872744972645811061069609022746946469479756294854498963660215084515093857638464961560901260615998339270021751698392280799668839768919139186056811979222627922763447835113183301176692647587548916959782158986460540397942401298597832772932000268154736020188517416319710940823939569114923395101326464385243519593367856108297648306616785564978813507982807769364142993212746591483031066167117672994901968613550393863009521595201997111850017541434835261477874179723251803142485005982164012960521062697146252595034859922993073445787307157848044085826828700714787128932356810854353164550779564906249878360693794516758116431848544995874784802907306844361461276371640786484793319150074325395599673878173339072687063706159630994769991795356933988888072563140457837128119218974434250618578432300482063499275409683639704658306884374983473082917539870461365779248791621666570091704560912492067565101505562539224933703912555324819376208357824506369332505530803821410093902226071775771280687017145516377767096839265921717843677956715767949286872711438101761454900233400849159199688900792884921687408071072596572848290518441869636629223900368600809772413303388727734878674463783851390133650736507421523997403010626128639602993081076687691541995473396330715095756714327542500642410777961211960056909327080837597752893871233061679693736356343668127861365451422328270289849046679208093155205242249357246332609326299668985998210975079769209557371481482025602893777494391295464006482110441871664581148819713477457862619745717401505758714508172070190123209964763243804917131198577217240466096701744568531579373238847080572034319762806173561012881051067998976121247520655697178147717803137004608893207422023932428149063903306365238117276316349855297752291875236635190638985542195858752690790181930690946765226106702740356320310512330355450846214016190379674223575215658665344413626492971268302331899581660907869909915961445686778744996815911058691655501124007541927063094173093663836217575125774382728359952431862927832510356102030047199404498931854545944156992730734624155567691204437652072837931988053577780025084809255628517163689655620541725683407306299411777928627816475956205808751825855791196844916345844619822175993478037469135063036020324047343556657976748620287320277763892313831045071855023374830204142314235236910728029665881005935943175082042029531163216033075516799155401258257036563742949075565954602472135368095590047775686236819398491826512438559877084547511938793035928303737876567242147045499411757349723948317926921686785018582867619881603042879958941116423931102543577233613916420659641664731754098036876844043882998766135479604498352121980977382763424669379498031183423339261425555320744102975672480891326665790848514198328987916556430775620612180862598898946743128545091527427604496654057447157032130100792784565820945823040811098942946341696014041054042355019726496028471633173313396623870532780325250040479728672448601940504355939565076904387822209749356764259513287102790137712391492044673807655151664079769580789846744115208467672047918797140275449436459962607765893874989888530378364090975785823235542880898170565082716819430234934954292600679459695080178422315272963191802524299085921600256449710009766310237442619956091157562888199829210266727340145751956629714834868761741130582480090380038791667740428334132858999370687474295134461086385838922142307603594424614504133647605890543466069515779511482465789997219731053228181738775255730809425543612864238762355312993223700980248050858229088521286913396796769499463663845983314554756016949857517861794794085462261282487996558692049097326924580055726476175875801738554242965880231167167496865965466567929747350542047260166288099281139147343438654294909103099080902562213430608425278816470407281966523846482075656532736622287935673362078573490762703308869897069753128489601625903021897303039516015843906036051859380425431340854426733714104358051026426790361146683682151150144817116685959323355466774642182227511064655603484467727966875780179770820830343988237829004499103596814914209151755765464102248474815599906608805440964081912601220855978406352065134857581718989093767568783588472943617071568250102914699145859450083238521925316634131514467297708525743987371885391828835431623202796835638903654245804680694345210965503981039082971452170994529733044915960946163313441676499302520544390747502756301267229145417684141301813201931065839518873927946615944580880470491466452022380310139533792226228937844609300189108892804859786799280061079054518964229957592955689811529023618548316853666652276902228272871974006567242142429149205932910552866217476415080821769679426168841156670389372931902775053459267355067203229508926256258962363055592251092396873922487200794093747274712989576205537325574122281611401950019736339703190529833747311640670518625538490130515323376058434331028270219248292282700358569644668068026534275530010183907213595965432798135531242464340736801132082741883767847164883699375254208520110771538727918206762555402658311000290202537326189695727974358425336782029287879163922727038371310152927925484264609496751242845463520835822778807676350034733409851744971895441620897558785152466773968389519994239027521548673042261504163947981877633065878613610863699842738927153014995744261698075366332582539308520592652714921321514074750996966668337854378133571989816940140509459471690825269011627600033248256567056229136834570238483606974399575396479515967252025953534138698905502305114855138290262225414014470202546341672034586082107753480860346132777311837434892826315034965294408631821866824199426856602960389074639963324608875738299517107614056365175903702854084712093695526736905239088492817113262868077999033853871203214801697532158895307970407124984710529443929973055323624436876892434578670128500491951232962408745195811672692184923483527518489595259393027392309547211122710922103476656204122640226349004772910182780507893388930617528087444413482159835422155610376282082698338406982065373998582112260870520716983779174531763563803823636408649521183456989129471722790486525724970054262801659915277146652808876235224531045717862783921820201005261021190127585569294954996271599534619844308093802027080587776249808703895982517258562834159790062062047368107857392049144175496292863411366056179384528318891250733775146010006548438545955767833769589981745688367718814500798049681476918412272407716500281712259033849637214730681738962311701480341857199569514987743234981385460078691231959361447111274991434282232016155915675943573313549168832291016443445277507111355676649908014871230091666231957135793262215347812868294862437904669257778442162922152554847523894871968295439719623367681604945883365385972546600564968604604765032089231026486779853741784689841068429695472632729658886407615777086347092541672650850507976831519647594031435040101384583242749575507319736269139643795456716817554986988300269152459905490420501710602489220645146444651304949915502242920005420149065953421753281056758080345635637648918487955753020927393743499690717377563552137244163012906458287153195122405270624737847718407851365842065192174925308725029133438875622458900567429647191514385551089910699488474686162733012086565640819313295820373646554855211774858550974274017442878298467304767636872793806994320549683681218109273053339711281448852101166296637558408687356325664343144042025938801691874374932243387358987130399218656149595934352956809327809311984632350598301662155140532872304404209483765203478293187967148998246815980376063781342404088401426804578334165242614500833640868968730447711193571649582956749636273937305967282300474436661761020788945982669506020018607749420087940229298752277252433929593866222204949645130304187780363375312279311059158867720739315021199269871228599580805181649399344566056912930388576336591707917079433034438503830312940749323680144908438608197135373917996217883465794605153977921172347221452999424628444968470162963205677596271782476655966243940462775387480212861765897707454665183061943073923368900849483143393596518397064712573398542569769291361267659446100394221692756204340012527958567744380077747299320232011176668924095597699440102147714014748251758324968843265054436084013204179295445316790084648438049694283599277301690535311663835464016972254911698583710476307820608249870434305246409228500289632389841990049690374965643416336555859809413207547967389346466638381946456656194622216581157630104960597778820736379967948858276864601418304438762474064699157050815169375822505753857706008893047863089484141240782056214478030304742752414207996941084389682747940986980692480163717311558075700549567827488230400094059267192174445153099673978962069271737906243605969705592773686472137035226257663191533934463184663549023258029959763617807869020687595154127861002078200645063200440842401396721020503104342768350097785333339472352292707493047480459883970739976152593841965588011822589348350846792317284829936651295892550997251127380036159193800178435522823070935732797807316530221492068743532470551659490094274273857009384150573579489484505180187358398216065184549963935765818340316212371720632215430840366224310662052658619353672714279325491145116638666076607300066590057317756448107179415470455862807830950474559386381949674790579599079897575542513022321656767960375338039802526788655407062631306295593830987478242873032952898776931578207128042481538274234833766770273405530653457669814324807199781966840075688304571562625110093848835849594976709010147047710487339612491622245253421313129667736223080119162861292900087134082058649712436066037785769730200301947121088435460805539785064083341521078206431068168263103260484784661576928714358301038333223702616870409328918681202746738869726251927169354682393605934053054577544532592414581989027287408902242466332696242985940272446896268512379204297345596802504852746815116960172574510526614560886367346991669891780092540735217482504888130290912214646029265701940203019134753812530745582383866608049455340077684132368682915101810928422061185870157606399857362550281381588910910893615176087171105385808212584904666628887467670410463106139507444120383225103130798903421519483397071362058181899523109829483277769964534499543757842779505540927738769883730119252515863843502930609593345269701434480989649396415483731468741029386517222045100545600240446962802494622100297235354632273882237954114679715155291151384721731636720576562014597753794032040971386719437325147230765831362600665884375731273137972275167737693171008405927111412474007313521516934582517228712166532744809126791498241159347570378143395137105284307788965153996564246110518877584084306792444205651625735670568497536845006201698989467814604577512677257294262898444303944202503946685952335338897264754535461123132727413544704655252771188130187380700938863882461865883445110145634050416423610634527758926427842840914495119622934367449357048754576602774436078791263105466343652529945086061539584384340849552703948848334389350977424790445332225973763942296770589937292236082894238310506605830157075497601849921963015105887624671160427834093722631032193528309930327383996855332676258616699531371798861964176921909345602720288124290688844975296660830650829949341493776007143065122204651107107624706745691006933428947235531860292371003812710407832071736617375137744100709200643703191587860325114802364790548066203048676910481347797641949640131806369391046462017180977951036303849790094151696725152028309218184011105796120419997298301580888134968055057178646548491787461239493390976677255637072658200798762473486410933211048557108889696584086037415472028135683465753867558372076358330435085730683220829602938800447292342627503491128564281421227165306974063549078529743169579490031405522416513017827881497239642442190648568105965782621226245462475448466381669711258137057746668219832242812572232107565947847704983886506294286424504619241175274677911268406426523973990818295046519968321843925980024442541423355534017902680274911646841683153956434377681598329151975761052717261529153320530637468767095975018303735224339370426176824885659769587520896858595521086970228365108746769742045426801750448499527484247359653569039288647040269626547378886519935362760649328076684872048513523347909259275270368702456125147482611151912559230314821799961785906367616152511957749315665879918256071409513832597249014202600683112390278294752745448905027162475180007789446825622933802673362823848346246431513381622178776363449543688851774675198152908186436177544114869286133326046238194367710835668263356189992204046237760130739402331918854895612192724313559919947550121653041343163476182632736102761798870692328203716849849364304779778802421009800253198212010059016918639229938811614426797516660446610629082351724580995047857009863926604600435610035868351197093617375977719941847325513203931631670024259860427608791603180237512580578966276821746036436781698644081507679203081331568988072288976583780686270712839354301903807892111985521128523650861439994733428869676689994229037870475179010508840028078150341574073024686240453507445011167480061243935915201038822037291062255334710545643259111135546759886571080258370136101528807475184113180926376942815879936945178280160126661691326406689939485202911246141606596595043516306259424001251368522591041972109240994614306076394872079498578165915162404434466631058280209649215058646922106488347329881388600573635700595026606613272205363502487704607201294906540278930096568964034671818892280728819421584608486004724233051927782305436021433141277355531436727221242910286581182963212440031288497886400214404413962556380695475850423427534007183499468208448815816131837777721220413428626995344958444969152394331507381991129195416544658046457330234569074982115953757743053112055526734202192376149977928924149253275091729180400831702250078001303174124322332458524767162988100816377125569035366780821913053712201488107886216529571545369211204491494148536252048941757944563077432225218897069780772971697785132829181370507402889695229577777422287605871134683144702287181750763670375159430200734559137327187237935104902384660302819594866064567466752376065053577515726980510197683400574965841424198803049282989948290171841354228407190040250188353348068315406977797554160023448191162553426138323218984515098804058447079882941429791394350499811887121266155730369914737127171617240702593516222192036187400484674907324422826334133919649195640269144533913721714866642707164001216066614740036404897196345598708542285839372858193611406641705024786319031120575194519220963801323163497980802914301981025172056685966717207896881436948086578776982825168901345978746562394451416863802500454193090565284794308013365646755563135078167262685056974656563098447687942936143497921953896937882520573256669873309958611800078390307411627273985454584496514334320989949159229944263408137607071035172175572148513031488967765650421213108727779987602651302418206782027322200896533405775525184798446228629297296669171767584708852728001821899366765330386545305582674690978050619015987589693173681525555527765042907428924151976425766289814499308570994667197423834817701401993599362768179448843437577197450029945533093102192195237543673156820771681569584516622110114515795478467456676788145338253497325776890231697698484375512953030282308241205265592162952301922929438638659298498876918761815889140914969640943791295340627876363169101668983239532239205687787972088732451810079686062440018488822098872311243767219015360212749920220264517553021880031219865185168537914135949306492806455670170563629435085304346826812282169278988441077877616983984405336584384147243465805851827784552990623763605038981117983832309736582218307175418882395944917345849170098226477360534551770452711457211992195232762058500729826912575803542441298178227407121830761662213903511967797986743602182520610513898466865595517674894051838279255811631439574543595098460706962153408277088940286982647013535952092175825788274575703469449195326623249831856402315361746781630460393185743222862393667636637821946689697465741922556549747525968809318993743774403982578108467154940947094901878108675094649117184477605654812034718221986270989568287976440002073662476358639409101024671497461911530274744003488551146997796492030616798686101817614661488387126950417985642097342034809830504938966659941313493709670716803005384601828207800269045874404842149575670394433374086770179264872949893130061150832833310141280203540838447875762767819675453568967859188212733388642941717965848810605049711978516945216081788439517884430448328219246268933589623767120162990448959250719326202280423917496088435785200333756280449031443931207956803028892827246366644758313840259687214071782193480964008877390000201847534939369849923513987936060756485415680434316140868546259895487244177168742162587192442038107496819940616642860450726580628437532780418960161405341431514038552248358641542219314405751220741345426871292523775670302252755212594389887774821827530847106683714266445219061401826373580454104662974119998998267287602209068224071733878293363521126278402467259646726540286716780740362301732515521161755884663527298001817036536007321328932906469724363772793019970220139922822859462963052214847798434169802939486732006491918183804800255511346083963558184301592873070138411429389256316220743121355721338127945008771099783250775306895940263434989782779848027888561601354365086827843700719948928156248646215215776356257218978707558492533944053753606403338345237107280771521929147164299858071883194351836179940748429147376914242354632787109341050776184892373577360121618504314201091656280940824047674505719555154595648723133114141949146341061933891723289175417168741070233157434800401976546324155487232617488535082771614934066298114402020088293320336524418442541660974545519598085715049649301060289415786476922229464328082868168002265002982985531037675380556852841392660718117141140955619455464006786633995087184109785973130808221944868484552037806104391029306040625329346949721662901020385378823955601008032497874416305437251629927795126540304372050428549703727896823706197755084606510566140352335714769661207158636002609881257572732945283974131891787894284201538320529666265796793791653708140790983543625886036171700726796324511334348971870435699483484218570852283278230075639917225634163850152080089791313444814193293528641633242086888314758778623765818759595243261225124734081222027975274976870171304644818382231789522987368379022999755577911996306011621492065090044782515572743832636108270912152357392799217576123045005298320862237187060935247848591759988685464096734053996477384279168275417360891182529671467555754917334761592834597456337567195224911508284118961365643584589854303083911936989932122375007272042965365542472302880898532800805989121930006183719859758291218135545685493719951368048344497647741966110593410272867126701154968596129521414661003947382704435064386114469359483291707636778197549865989910615397135281507841537395010167194930191577820754045803853491746025403035510791170017751170973614841715756426651997250976188755297572282059808670910285007689295651806104491301144756695634608283005170443577092159825421392303921650393058783337806325765622920611844079936771624777085310582400082922724029373004960870784375621343849115063476916731889490471430457589095746331372916031667570207506502232068027569647173719101545421896828328998806576023431899505904449746063389492861109712201925226102186402578800534243852277290568421565071721462214516771462213590853964139778232165094866501903490141647827562661468983178390343410402862361072837769007073306166754559019991989245359006294939864248779179463547562553909930707429496656867080157344127537973692197774283295206231166148831926472919712023723977374335774001823371806509661098650171606883130423773232689399871810820018954444352995680259202515971072499107412021940586979717268902270718982721976045779483265395615514590918283867857377982099850517524509046745407288347225211480328666888449185551855085006271966316797269419745811852986874971566832996768455841339980672031347024799904661439396782497169326700510277128288457023249639713208076153575616495635567560126363416472339051739889463747327882381734432288988189245873991224631508185177515549513576046547339005947351432617359670108992899601877344189173698848146282723655658430301133613542120495106273249650336893446190382226853204758439568219307219197157575329724841991575727708687448545658865526862752293117141312408434671434983947882936874745441828087427661736621234937518725535788515029410791186490393788095785154026645995004764162419704910889139853977973096609499727836569354751046523900381221199967097138054404426830432696343642718956155280266005166020300841118816824114295026091013358544250120019644048817589426832704154495248453774370518913695195289484456388013198945112175824670253450521060004627577745793211655656079367569630234386061945535374566970184473531444293421862739007909166007527561308540331082434965995208023725598457653544951127689576362625294727112889768672644425827016346537522271041542210108664514536544339877029101628222137447304320087140950737054266370833977526921128891890626968965859244307350552864270110905568847339557526613674898050000204957072201484354841629857548218541912353942190807899977470382401756216063515728041028584599081451519248848115102334495620484866427101284051771079035779245484310591586646557618117833862657954269847581780448774608464861372294783881344462072028706507941501247248531649706813452239867501931924197190635694505485863781364145249255605854239624826017893050571186173726466763335199016011057756317102052786985369053769640795493351466508294467231300861147646927829580846169695629504151347042874385487347033905642064204866580613897546879847195519854832586222999139537356613014439951700485684632941901895079709836900494340101068349938502779254464348944317323442033673972075928753967340103145045678481013217636432999183917185467891167323564730572551401954114024498484275908795079184310957173329074920500555136048885526917249542372827830982803004870552876412231497215360106646276065695050247792438250044045633356136407400838097911211601338860562294974949308520591975590235680936127102001539465601359978416810453692803050709505408966026793109298253440833760898609367961019868020680824475941199315252971483851291749131478602343934897663357001759504750719837096091463979639068279935345841557411693211785069603866729612724629144191601759621194432488804828364667040716534308169007356875484019866520141989226062504108938099187644027041769154190525899255262354102165444606783088085881220920084945737936496442187356958776953136522873404985441372167507042109177214170767754086084304884198227325216455439696523354954934099350947863807792146935545472718614608219959381153832212335360439547434220193288755475285955509449722011682154110885363470943035840770660271233405292690711202778840349268296744898142762600068235815264169990419790949123322728917046087414472216377696594423353599209701432603393970219067002681810425465169035955736038079083471486800616270839005703443244230161096124919585055721051053526260828571436079026193631076568528589797938946017194482734006056758142319853695080522172584194139250305277602916295967561236333667094824027011619256187062072020736854859600897808323532762418200942495077860458764148615951078449735127971362454948624865578204202470533404792440731885368242977993382383972225811908754460984218288331974619970788970913577162438294197874442867482580072580228007122948049770937913532483626793859444198997533672468568127188640244775180975198096358078486736088128357041507001587271127358284514021462445524073676696278002684262791827196041349840240339886831581638070042383758827250507202013202586357194295189364454268042293243926283662724957056726882493304854045111825334524083317198037572892715109341305595067363935423757859436242740088628405888642636485360026997728901804884028937885708349066421619867593696032324100007989111463245120384855997720510902736526891604670816555969061762808263340927774087880201787158379301599936296064748478156098342758934770764456794839059000030361592282899480691939633402578868772469070082998961939587866763820258711279178597308376599206597403833951731572533539276364147107071687381687513618998790680282266464133671679600350729223188264803866512719286290941340479000068018568202300600910247686332541183276260155599282254555234600444204618087488252853512748507971947707080851567440058369085691908752287233368522014732376659472795923419620240546777822331459051838005052186749714714676379513708017453401041392281658205917017796492973509454110744790672467201429268215209151959543491783708159431720288026534442334008460829510540979282324314609713743060733591650555849480766838208648329516325159521298243982561992056839578577336871526373919278902342362915321395600387888922091834764384548609508748412681210643364548251255238564241297186226352801362514513938534207446644377537323668778517961344036229136545315880495887715810383399479771618451900382154334572021975345465701695561398929243525768677807999176506679216215738717280763598491344545859208781626987296244372523777913796914304070669476338319502664751913536807714430999559796277740280266754251637101330369943558117575876375452097567333824354088545560030592498888141668391492744492921699466020801807366912274063053423942914798480836278236042281613418900862721052259117745613231647465249238580290724921252323356933709318628812250225517709029990004505576487153209305824297023568897830681195859235483865367363423443464948169522594208623072176691482535601993892699056068597774223459318371951247540615582652797217899200702691109616991612083303846497393903074963262908015760609022311964980472344104842744696852129580500992112963406188329492972104992774990989166567761750914718550540450847747134875203916150645512542237156502273580984662314654107254328210790143031663460523947709357527047693000141888331881596744882323826034767576515429985612181692311629712884841127510200421018171958213553975936643526275319417058927132574239725216311560534169527528987531416571079832454924118723594247410417320147230172149104875252797063537340674808994826481200836848624332427791991885193127651038665958748909851090920892608934006198382285199765312860798441026262165985756422698435281524490302798014684833638164788397336542113982354188713652356431656790418782495020558634651219471621712958612715903070233442819452412252204263688894984071238979823644275379711684175517771217290113183027507098681408438419884741163487028441626781919425027105215496481404799509989398566225069865933742156887945997646436812323045249125053180920896801673325663786995337472686102495687970773313800937259116552866525150709890135988640516281006765957194032137306892483473864071308894733454996857331520395057576745235163809331561728268982367784647631062525886971305860772355860618572031740991467726629224475773192992169429811890564718568399589324445412462534963250705940012070389886257110751449283035459234109318210985881661186694659530660720899911869421258483520661571751585083257052953115599110183685940150464969602913102303503753428495479871124263755797449035375900085191416956233291105871678740086662784446285017908107096443839086581659295136554936521239419616778854362506264424632716205761111103685029701731647538495214059281521190112672164895039158898685180196901119168300130623778205530084611905979227609799849620233389780304484873991868387024236000195693284315037715227044772029071477928151066427086218443282590451966079533749990791328684871720985932245023375045915350247066922334894311114166269297566538810984606405778845047991563892512086437560477765389341729565064248326425631999865490991507129201773798857752752518948596042159923021137239078278155906465385038027867306344260225578460776421777008726083405545288649320773605242101495151184590074660427202801136736967299299614651762232213469114153170545686494443904935600835887695453382199365027642742964865312229362443244017054802114529116286238076697035762361942907958327124562020828349090378982054235342807691750041303725024994241655643464913881370219952898775442499341834036377254944069587954500649137407892459507735207580192252540596941657697054711035263408746308223317508848722183112128064455251098713093326520294310966440243383949601030168532308820079874616661720712795523145479455733226794900416604613515833546921161042735517668808871937996712522270099460706032790325478681403458195519188552706555667507081497060252877212180394247659868414894160896888158236456031103003419693359257868886564828613769579098569014443950916590283309058755046972513066255486237402635618370586552848849412960359070916561133186124877677184825786587030590302643915075180305115144027980327822894425900028644357388823750844713355578414960577399480212269733949277489971548125002296271786369525622887656577992097048691341921594645630286972024127840127570877678891070340098572976381481067100611179760639790148569178210863692465843333757185104265573393717954070524197449724947662245984580814848239235951623398565372174681317683298624948362338131572644847315320528607550787543323545506967868578725878262049780196561645580081042197893372355153979085341433848029068067237938653994011338537143420409806797384833275223647615044199329949724385879895456870307701461883116594026034673150877687107616043007729184408671183798515671929278990214199315189478354776735634810920806248759341720220589721618813147504097391748067629252597156504148118652978110908649099993195850020018924119563784417266453915557254695282419895946370869723089854155052324547944996685095340389713826984250806699624378674907894242207285077741371251968440867924021404216500657296497183381301746988520285238945596986430915278933286777845397749594246759535735031733378562128880069245685765031039601751275811468694782608744361642751440612420182913713816650890628182594640840230710671652806452616345721691652557976848888986419173512236696141953528518576872383301713119661564871060383713181555078584627017482555603212091057439233309591768079420006398395727899578317905372111995590905922088332309555699551839052056473689734070759476384421685074912183338023266367045862575955751498458749026426895319394692365945955119744511984462156170595305270069118232958732187568109351388245441045177900620783853466849421069292654248407489031717143066642654007836503649908878244747740695988427287829998623123511059422604661871579416653964835878295014136206877546602442026588156158298320688001853086179313691133241780286490930980342531993819370718838769562397316317845169017319906366903105465289774177505479390797133655632532165950220098895608085552580578878317526330521159161518894390472565057720716737998796755153759536232471961365536830331427685760279193248198262922485733928095780757915320253688016756684690026991526045436334095602962518565477794123862667489362039970086980881205697140608091464979122949741119947885455624122376744891777429034335175248471181694594437698628248224587920296738968226341283793693568804839012235884057076741193680586693703640501000931787335922127757446176998779683276519837435241099888190232624116479476584379693126427011588257486546944662008177019084962520836297712864311791369759847334684626025398315640651477726418878543738233428937730381143089037360176190198330063120605591885829300680889030089026939410557094079276306982765915730718922849240659030902148483743905511106726766029751241245053165424932826355746501757537369525166467869425820104525318644863843204485848247923853090308944814438567899969064483181748854064107005893166704536587995526465726417844174233125322751959997895500372894940678772778025949399468184931472554275167127944291506944794712697337663124574352942191194410914471464405679799865269728265224604541111296964424550516427684525835518354415056636792421573945625149899683134010148897778076640289915026661421471364902836555000582909703603352907740192745816988548515804212246937612136857809619112036503180878246117336614245279545695223265984173578214731602828141636926535778216177069119440201234668660606637198713282166918424517185567461036847241423712370942302302967851854994688924260376247493432595238039431615067983018740071272397399534877907096486147104458843886002131815681647658939620604534561724583641955090732239988128498341718738929629049076997920376685456868062511141130824162858578522351058405954604977237574766258443626828774828672863173629106332458642075846580776571957141540558868296479560110772767069683497627539694487166545846488893533428697724369451859139727708300373490276901387582321655907069057570592550869684243886153028106142535344055784139431993980693669012057786220140196763174302214232156277684889448394432123328090360440747195052164102102274696041416450778759928549183551322423451541351289996394940113210544072664792692033910535209721521936124209853949041790773138554799950381845720225893459133327835834739128431743046109474506004128337024839192499351196937904328580756681550391547922181814071549561106933708196449710784407294314138419055822506399404992901863627795708730662190852736978850440843921824403482301789449073695948854770512713367320308207342694146243106327974201769166401033471647841549005116796936802370666831562604384322866917446531611170915062676720653076698326073024699615049862766702954687534684912852730893795189306388708955070786702031005622881923145226585438377139788736177057357998501660758358594765201358434659328995317778434699088560109719625658307532499014271233083248862740286138572273631214016995198397276511464754989353383588014650355237009725430368793937311067946774898843937371585235997029603381331617920562514489643031580734497788120798615850806001509448976850698509033528730052867764208186873068574083140131090805262640363662257591738013261802143881449262920801785285906335625020278039802327172639158927696453375664454889846367336022893083900571208998081081676366046333219229845770140776828168483944487838809192090626199517310756928986725538707583054587518790629759500284594255653952957549153869844691435775860125365361753966527684193159637974584229975241049248141991522604986214231934220970339156446991488292298939946007841311353284931751904757608583237172630457021756551784646801321780430273898196324097155130364087476652446577704162632339932307432694746347512042286941459559569405723129359050699042517602597103151694841365143396292239830370607904852149323388482619901860946323788553762837048153056199210822711735961774247598693825086255393605708076135202078476307821039399407521112567527914159524676343888284299822530203302083639686817322412223632417023559269662407522977970064860121742005688749859129207994975733682796123945911147616846548440928371492288290334160614172643962172506634466997004388336165685680531419902466677362037447339935917607272041807556259303771356869191197837261701669789997639378664090458595253786281890304664069088823127043613603854943047914650390832796159394013131914928830715453800827264207393446042237795366648808986983336302576950626705757219324572940867741925014924312330422249429698579455803803915432263829529573262827967040071701171662276359343576618763558797715811410425401529666795017020713500961423185236893205857968892218346880379749146912920609710048521369574845062958424365085542912165490251412971476083692713280031021781129083765842413750476311016769514776714541316312520592809185232712386554985264418426832031039927064633572319776632011200277006246572893749067495873294299000665611487141986431518747266155742032615980651288139421971976064154756812163729033078745729619403034650872805835408826773443825017575306320416991121991803822436308231795142721666588659029932674043275060940084023665521374855591453418109318089912463177297240287873311662656953306490814388711467399094044746588692666352549041165436142388871101562618991853772499569906012632308265835836137310611781561200622185306662020056784518834777888843325398019317367657531788832776350699841611292601065289154303604576033478214832274624548429676921479317143795967215430488849546476508534670730292070258422674676090432221992176340240729852833045480643652782413546224098289984528773115933286505611554554467315715190706293054592686310723591531532981613457000427653555555902831428250547585009658564762807984482488018821603230395959824898256936093432092057118470260950413512634296267075375755549769855757893362838119966513569573294748603330233398390654867729169948019992964302607231484963004394387033985928089266984198408780994760019984030285117623209550284629417718525189585502866022946965700424041595927942200476711913322892053723653731976297897134063149176982561633624628975850688841672263011973498578419648456811001969459181238534514715737465489207360996324228243759754978596078551244242296649219040063216403957480545068464247392231982883723646734336902061392166570071050208323244989838749510674388419511265076951177045410705224223980008073009561287622548326736014066671952884329777907166513904999188565749269889422485432129444221568415400100574626267630157326983069640054530846879402124686403097711044023992928670487963829856870267755098769247978590117030700822434834672736326152047226715097749517378724168724312888917890633184728463506569770425146368226338717524829720072576135721257265911586488393645302864759216908253093374762454650743861711323290607773555152777232767874277383866997001053138096218238258975117203474366245921430375718364928127550128792324849138584425133026255040295501494444588403962462222408492095275109437458145564175681737053806083436443988113327634638497918946051747695931807827090254276186175254270124669222366018236567008157307363164493942886731386213279785901320928568893308753935306502703836011667042899817832109489263172070866570170202327138199715223042947864821358825895519103608027354781082691483958893167699253797245819137835413528230020504788246213183675840596240823084513109437196801857524382211692605806603582254065675138746028861725921099094786533529233512281724377197024967118265124641436827723486215839533924827339939996097612420946793147357801339812524275408197326284799453851310836662544667484149955326480957932692044610344433911078268331835457935517859178957397043021733114952725413624060997188874647827027338369172334870614099166026069687850499332134018759380596234185524434889595421831521523360553796321714442721508028178280875267603635874013701251097304464714231826768602991129717333620691065422962166244601562903685547507030491880513559519918830659871640560858687714038255249785169750222112662251170687873794708788234266632877334331840129724928249562209278283628108404864026830282482568657999726481846999529025267293341719531853861620760357107025883817833418774129557764301575149982976132196195407764973078736070655268153401460343701182573886355112212059410355622797049448001541870663947314982479442725275942088388740943185343940647349529260069583200300831134187599661477838978934575850082531700538089342741861281797649644562929409376736965531023076961441573948685886830552827801605050237184223624841775179503445780409800753876819672664670032319624592452470976867574730908606281356827791396855238089186225541859542884724720829512095739159900171894192395875710021491401966271179064508443061376238896044025639431628227442337032530139386278293733739223992581778661595702969846113075089692881343496022802474265156284306504919993173549627623570401792236702025943111833593270924246101132374562271678296106853188470399688219576055696894188597231532115952791386116064157798354572349348203684303611237196735297099850551128294300920161473022654680501767765553918264254472971227050374300139356768791548171987587010964695285489397734519208640345655549000643239820108091243843426962884019263103755695493955898260501940609160724423007376676770166441425121214722662683630084478822567685235327572547246734945346054260682054772794543486113370288849457878266397927805868136679217918710009076132709469554509580402490146881698874174856893170970067625903428060477845862153699992741796513833263351752192220235158275720105331870635166769596750765545447677302122944668037935094069495825023996955027322009214695829946148164237309047477516938338442362046132171729848484406824748635747044520182808777907894971090774510501871419785543056185819657969422618929937775572678602132133589853246490022960834717229487843794688603241598377715745009412636312031777451737555997283975644510005715893084499717318007725307543350280397006732048173642041021369847894043927769451317485146376693679132911182357643292269308563008341869051768146183380281595189663952730054563669726499306050294578926971408473649863849544613863871329293073168362081567969325362956312549571231122679595128029038315348690442487445453254503779056354535073831359883846010118819583626629136086316616091086617475431343778489596941029687994525815621310013111937893490282590019692489979795625156109649452689754024884912575050807026447697751937291833051021109510749643254792549430474587058148715952390445725482010431427122009676133055667559330248187608416831228439931972821188402390465111737699458133017079947899478333032940882337637109927241524975343540087641750504981330215180251950665064079459435635702358827365618114418378659562216821113860126451423217416869007915603308242304415589948406189874205338736783360796631240016317037726634326335814053181475196043105277315892409997154136637921788316024680821777956948942165605615576375782988559199509351641695332784550903809464244933219710737595698985717659102363412467487802561436812026190977126861372175819954923586171371142085833184433592644101222638829906062117563506170507111881316476554283846555938113354545467068687511005971752501427564894607913149331524925945427129789879697093945969665878465470664248109407386130440956846795108576005557318378687155377985558438085021729732467392189282972925265149074941522042642968118139095931455452390768316884307415571873561095441271402651774348901763289232189028148776989415145264720194453831817389337862202910220012073528782832276690937414476951209071064539941139550279087585917243263287029676134204273710654574750700335052352145245983706384812931725726569412576307745221074193812054325771486040203652017281431109593169089615777219289015882705568393994544956626588644182837986621972288346673760891979252378187452076267433569322781262990216474640114198788643547481037858455759255360473025010083836881301636416316875179443505644959013619073442506822928985980068476699477393443349862717201471834832434381439582808008615070762889493085384928264685754452965134432674999883156866506410920311215719259594413247404190514022719484084650130707258756965563088563833237229578043577315660133913307558207850880781793321029412870362982864050125748371659797635548240035838586762792256801273227436219087453194064223727482353011921890318396028988507913497464455238024382732204705337027851304983786000335825619656754580044459909467485055563807888697206291889792915678283393799458137468252738630566616144108387123027442284533572616508835073153101231833033982485223820484764738652985895585321681575951407669811313343395050511369898049766809777342391370873666814746527308048127614360345649790431550946308265141774125581463519462270658220842772663898796077747216977476605056179174244479803273583508159799202126343346433862098355957889484166731996973351115981770558524718994992193214666953366709178669819264230535503430780822943406228460599334079384466157196039481374503187008485295330472612550400999418031627563677409840939930667961700913209521562565566720865974982682211381242299689742088125302610120800564708341429343431204460232163225892146695138943985802163345136079678931047973587111963070293167872117561769280211654923410569139672458007624928775170813713168226939813394244429149759768016823029179428819325082030632291570857692141290150079067460997329563127189254371848163567755284860719605040958021153281945898347398118316922029488526863589412443217052242698437765703831555985121115079691117196440490823359868224589707568342042041714589884000682327450377024090586096201976165510423086940396898182104195301542402847373639475985364463807963768590584784114483041318778282648713477886814817500755139408122454062451055839622156480413638930698037232535408367416476432758560911374305344133667991889340426857439574627019249727322244318627686326156546209758841125084796050185706200936690441629729934314556342621964918143796187611185652450432312921242871070003048295025908882932907292061268877575111005416074901611566714028318779492382458023409592067250249391642083287170184009310419919008124859201454275115851443512632786261796568779184032189115622853921502198414316469391881842112244969457385432297937415108334757713069133774036165880730943287197266585985683635330933425007694631675135336442012868428050805661199950067417805882419327746150992199153813506754035439465941373695196769160359606042626172704959558695642743703095060497311011091811828190158336784380070626355693020610266385795085179068075172511637119785292413401791375082118000347606370191515119656207732300064798409165970597873714334996402490796580087043565370054054930673606737508834644746763120322565126695609917368407009597951611712201628291008472178131778352255292074737630806589319612946436914307400052578677965255622367641235993940744556880198040734469134549494320912390428824554082484850617995928722122230941200677929681219280150073316238740920575179924390889279043778741052119514828605816440689449702624334893278536848133202739448747940560436492557208097838987630685488583237022011973444190637188187158060714673680267903448851325951053741281600344964201857887148126707399638735170644736326584674939032184812612778641634339425682047678866244612285180308568896400526243462801375906294233184364395565371270463308379240991418552980187678486133411199789749969512184109359176721595839579485120565534537433382018899575777243852226417542863409669063333586344983522659838350178057266056790698454600493306788135875403513665422066964414697663954605774899342307928521314742919205519600952319206704539114882040142532700381523261964664370596358427186212858369850552993428538337441028704346024369745310544495844628913775103117539101390612597340696592443886019529022205803227785570014116564460903549337317802868996417836787994405487264201104889997506677908580365902130760500373115157213664328841471581619698021451590160595318615106406741649939069587410951055132028762773213248130132740579627127040467749585973447699417181607942354079886950742314211860163030977731910847939404402472088523564890249919635506312483590837231838176199028016469329723395554171425491385423462595986796400691292326365111090170450390878379926685366983755927030692682010879491482309656841404738366434331341899346926171654495957005886928516392620940120400743172251240065230751137083392599402604107193597613636123787644978834979961867589382365130096807522403015812567527021180656743980856870914254108833310209784692771350391503251382504988678806659181730986959576292353664495124941802547217973421744512993519673628776700684760390862113841689587680166635239138473598196555885015243993908669705925560762986252918111804183132903079336589286073521307030096231852114228952548822436170945595344799795484185168533033615254262078528292605319504924965391318313801486661073387049835778700152428095030201290836609456876774666018326592232053680602355702800533108532465032773023161807459705594854224858019705914837080306518133593882741723866997539581156554400468042502876714777150170738479958043161192592359512632441002791778612647280439923559732003767515138870992806710051873386082094971497667311443234488434835499508449538142829728481493650964635607409645520115393484281347534669828870177637805528515023839026452607586576869814169787933517907637216217048417045872235634559172345590697235360693470361753855908540845436558226543865179516144067215138551639247305928452251465636082627322089978943792532517448402685119076756283965285047302427122353260114355577370738544312197908801873308263476914124843012380175848970791830516390835408781052778063354436384799346688614228636470423162855052347404176099720272143337372951840718040522712107655068057670007950777944274219512901437246838804416414073915289846379296209554729966156885543270824661335515307776997479189094765821833398519410400089271513984852684187791451820926395327640472453152039340431689384502549123617525731772074480714357386311581933165922744929204765664752851696410286542185242086471832021097189217074544769353624122513642728160561764537936061474396986452579412206879711835558031157242696394587683630729275408936954547777830049672042798374599814577886432051461471233171697662746769431687701160877653612551153432767931298842759516196186535856029319037588579227173919862681375870808529818005569301817131603318384303730265416628825738059972345159593545675290054565741184320322203678062867014387266985885974154693571462437105072231970928338551865442220744990012138075634021668725763662526881355266123021587620023507408908651281831989507744403327612718625734557875544261436111748338469209094913523138616859725503893784644482099739078720520093936250788938427027587783933318546229920482551814905102465349547747862089127182913287022671907305333532444937625679489214661869401516223829591976105764140669929820351796843923952860795374415089820958627160432677984379453076152188853034156237132852496925326101223777438380386334445546865134282088745280392633514812625072918980594875361717926156282287902495381492300257334317675883571531946413773765895194883159153232662071623518685097421062535567752336290959583221683612369192569977780399702821214980355051364039637332078114320570031254065501369687443034490203135841104054347804345478887905261378043304894935330756039875953591247034354633449119723605421654448901147238227602069641660152668958411228749287985359137615954581684909800637061117534955931538213088280332194223690266770396073614069752045467075437439915315926738326036916970652016730337625884481687822987122891196941519983805364424235976631183646456484743783350526447447035296601788164702107715709816559730915892188592760425902541580940696926114306004916492965500296081996440542916775595225778365588832344015729856773122372734578768939014586788290860333823562109768291434627331673238945804141854151813567096036594415278440183397000663204783578566430132664101758567618908088243822674862658628726514778095562103084323727760604943467673173096811073324730298167980494657923976790924744740586757837384192722366272866869605127487998931681998080418832261685145869042868221045534537461218003759075471025596011190685962526267193180899809344673898931383747048280285858893460110895175058446657967480520542665445320816659083626556228873865868376257977127013863615250701073770999868372063771407185836639411976395147336486079976667078559798405678542460034664578466662633198167896306593043920629158670018569914686476698326328073630994821459065967916831481506237172160336632593926655444202126268491846180316876286852250585065378507576868882649861217323247417998211088179289242845049336186251574609189245099183871527981125213021151380999285852642667963836497923811308414212813668755644273131909720131873619180071430643435090299229758233346484001472610452903640171830514539628417211271925333377715453225732731743555291232700800998816088012287156995851832483555889048805841769357826893588233355411028792638117608057710745749665871728873670853129341678008643359977964884521027642263644077338729523539837277520909973050138316592874111000304097158046587830180054905670188915564819256232914141655090199531603386106106551051727748608617890162469779100857414600761686454344891875862862291447766907309168241158456368562328367890821884676481399112411066100123498762366657391506534832787517695901569602260812435444372815084797591670671346999289800163389481143943398973972180293971672993489903737914652849908021162660579531134785582318845061158704347727734489797311316784053699510638326703574114559105476496717205907277993656442239394060300492078958641045683436854167669179195807815407135070082698315817644047187890075449094929185841580014813509199557466613127271564340645759521246518150538026664801478807398082645045756280953840780302889183417254456569938809145899519795024582865100289644108613608653002350951364065760734127883752873775638681692329266103294788302361412855065787274751179691056209638940632011076967427229831564581533364042889200618409807153483320452005888300364161343549506955220102326749530130557903088369039172371532573204717575630331378392991208172362315260826606753989062205167423563016206142368986436364397725696287304027072479329398585458546514936807516327579874701767301607401282492316029860136200520033087055423071065463602131102018321463047399661112038212302388530147479636185398385716346813001757445939423964323340008550820384681127069257899923198651195764402209370703859812884344222954270737525821836189122658386483074635780308349106649412958169416151040506857198927559822133648642044131215869614405935099908806955052944450311364320707295696114017929892410595373388568957551974853622117848985534744451042628481036552092956892621060328106652473203318901061956911348906748600585328658088197114465665499509388937778524655090588762390043006969862148233639910821388913282619132428783414365005865209853663291021506725796713084769350394578134550853439865952883718090395344717636667266400089500573401738578933414289834788425414351732526768850429499026631453747191199312889456553085784372771533198054538725009676939613672317496478648748213510453622627705853333645088835366307024231691278542410237982584477274551173023505180599806653322916929302453988649882499311662975767640982122448317556923028531022828537570521471819061642622041197465935040596798033039289064662822407832117638538215806143351686900305431765761306354752743317751361148775601939740532946850805189579377953540993750423100984371975300171432454437177144522442992931950989072603724078662018945679498018166630788072650837486744640513848575362727650282771982442469052112763838008827912374058886098277489521779653380425867610542520338468545654360578233264172866802044787050875282997524975022817056449604030274055073836014222539266113698867588637385476334472397520598287767574151478001125264158097533642576734529384615438885681726230949540194687515727792973976802933089676277059550662096283070393510997381229025047117660765718350324551297305384611878824526918797240315544851804199227419264570567641140901093182929322740599769514055164925275874807113874013783268295614788615855611481130658037627158006122964218903444997584864997361655103339818324766145121002534368913478298645359606253709398545578934208701532439435864566224826550910966284666378680150818504278454234389315351131978782881365650162260292621715846523271484763022581057870671554298062558236583143883961760506130020881642634799958365932524228995479052836681990663256631682635594570971026713705027123050710602353233241394267199757594789270110334923548953761981645320272877817723247664174538976826720094447343945720314134230102647663655494551825446660384840172893943740934990925368648089855849370327783128439555138340249368557720418802601836406846674153677254902680111246943031018461957618738009474811920597492730700182793430211815577687366948937455985438155564597619718651361716364047431010539774937573186103568360262030881378770893489049949604649446814205937626973391696457890449051148076083771473315221138203659252087575843721806408459673175277311112524916758525461757765894683040923800122261479919067212367798719970193703615287941055411152162704986185193199011531694795180275719260580947630473535004848745067612324438807234131970492576713411457782745334905900432146308081734066085883871602241499071747663923857386580093526869231146006546740303692801966570856327000441747182956689263043823227604924080837306719505347571598729995299882889316249009952652508160856853728198285440340657285217365971776701795865017610482473021948058092252627870337912719582099293320363655479995520433606083096338990633967163833814666252857318888751439787462504848981678018668121155316173033850481373630372283904683725177403572198133656301318614383554005017039250235259091570638705218497810838225258912813609551690603514330935747295684914850054471276988022671324660574632122744606211414497750953104342906189992014380014641278466148101990242853654576905416514642498542123786521909442754268593016382647280161628110179226547218544563865382114127613032127385908323000455426275210756644033032824085331475865499583261963871830341654364608748032463099267690877125219151428571035494996203474603013034609679391324171038096213612995659770788807574936050815233765841241799966499451079299485303076326650259595983467285220258332676220920848502754806884709836846262646729364054023885471457550961994486170021600206374297784011754206789942968342752672123826978069576021721812070515887886033953253436134127537892377391135184296424870146724979679638774673545090034949969362717684637335878630824420898859118929491111127421285464760198889663834183649465412260851667736328762729278495401171549554807211344257829206435433568390190853035915846547501866340386247618512409302636283525744707360018121959828194468497375325938853934592956442895741061024085957750298556082430880315032224713485615900964228806357422918336736248444525729226087591122938825568098840735548212931680840652150060064835930015339766517663573402093332582081435284922298441795451919455557887550265508251842274090559871281813354287929380743531430196220079279276464293610611246820472172925348385548605872170587788099749413728636379285601878358290028285318101495310301133428510292921327964292411145319691633862448773773793951336913289488530510119768368118476447232791395164206437837592998309358835253843575319993434204709874630613551983638717444209150313679552645957202973733223779040671090385768462868697810913328751194410176685343645458610065202397726066394693214020404221290714267787337407452896577214651733456354267688140000656576793913832335664083987341798446984565976935034380054299665997777549201497135421386777422833764899042802541069548830380501938671960196717643239342448789872244295941281162291138093549982019271478279930553211000032506321425836500329024800003749799535482874645333372308591042753964000760138253398619157945750575608766134732031869387697247706699788685024560027861815958390856557969126666973008708027977685268967738249734552744388405325580622390925338566454624216236644074834763797263293262059237366482620550787237870850304418159540720908284354504115411641412640603702228795539514129858392931586915259650187156071288381981412596190083142006042205344334435374531356691268870093842192378037230715166334721866238979416119395089683166475088277634592221000386745081359425478468605349690795347815223756339996075988274673417542804483627382364975910497695299325157123324338232063572571948085370475790790082147378640502713494559626014332297147447315560091213395575879714730827311949641895450816597386170964159196013249013873780257706970770719378874384628550416415858557802234829719205758839056548623575184701925217977332192760825833194105334191069962713702724599936652525252454819250653107587203061550355691783603279100364333814592122270880175746331061538719060455981415599170790462126747084198604375716668203245646998411018297696847415175090568107708441104565978438060393906667852161485686176468337841228146260256345155182894986229624865885195102129384384729270072623403720224626943148425639029913697729959369516715023764698450920729155066503516984927518644564076207218292590330921150403352714015750084306462901870060934472882186611604858861794278518598257351258051419180698499577589026647702062800881711509092682333237045828229860038816127744166023477946561104674558210178963239137531181048810831039853087304902379941019974476210467851303094463486521667621067052416982749832424648936675411799170467461671459581388622233496332877689062051201682041290895974636961430396001317280147646211299499328610318508561454823773625436389074089112464677740408716679670202349661116608016437367094623575602901267959770982866323760899336636098277305460585228331988291092681401474427879975693789718808272624210638226866229202603678289429482939561619612695815785493303460964550460311551698811215515244288532897890551814739518858914468190556964522794169447468868593409326083460454253497305843073150458091840107474520944147256898324905203790959385293558318884471847560004783302496086295206555807153356336190451858417436702479732242731079402417742685287497295080920950322175585917042643496508881981133921505950669129225469232996889063019456048161401067267351456404846697820386549759674956935998000861412663706006384942590300743893222558299850671540077933993215436323876807130915290473346190508195709122419388376084193922942412202313600247935171666191465591672800436399372057142398058951740897031600664995650283748174191534805484453745805141406530100369637445653036865590981504448408343268120294986458288602544724083339195316056942177308507036163000417192173398873334182764241934564808545551445705232491765310568488666496410632317557550436453650346955299809298949333782091803573311973465320391578242120150447550300973205540392010900587629036943916026259301302677199809685605096175850540220714634847001822667534912492147887422798096026967896191602650821069074324354904751600573041272009952400693468077219900194111821933532726009092682910865546217282235916671141390280683724648202860204545937405825927670469304716797330015207807434345910315183451449680151181968329842699102124440949984881218636557710929356458461123465933248888605538675930545448287308170509923700425449571675499471533366534346268603351868373053528806822500713471654169854726563454972934878454652976834479794183579772518747922377404802176226613265970382080683583672999411650939241432497123590602435230252941441551763377393951052110218567111632071037716473638682047423522632032869883731676502059705094568912240219205720833139029715210532214397949607789342689469750569724352027269136056426352214624897590360647343112297480207527298522619498749253231828485848167731496183824031175975864515154153926772305348997967737306762013419626220405069311020406302704128122088177469839080200374687590544244819623551599719294088904788717359153145514317309658697304635063123607476923617468042254150488969023345132005479627780560994652810478472334699774388098461653137651470695100828225448912393704114380210646762752050423437907970866558227531886685420048571793543084920573578957174718754822792773957038305906211178561355691197742122644770709416455963502592897799929010822600316778014649055046867366353877413998672821882154693945260607661965021102636934870713460458845053745828653305274404530799668818904727025188773318730363926877802585727774503400415243910447125685072515006698733565109940521741729299569686932015694126352202375041698010931459551978785326198536330749152118363811663691080624308824776681808750166738479205791818187453498623504780085840525797328460493890870370134238942188330825805200748620801619540539572067001432749181175978201420771622081300924854604657016931012672864619785018013617591634491428173558315515166753670204423957236335270694608337065268341694144687771237775501365857505131513009263100011681130628912054691194301095516943372346073036567427290800347226313108485806306526586358282007785997746560579994594813776970310907969048862621627776749984607277282165332457881605789161902433989190016661628813235108963274293482261973553804018729379821234224312636534375593474540260911190486440084972864180165124424440302389717854297035596639530171423401133808129047110969458205134515051146588307362443685101736852893156103976546943375270926004380374248147041807697804548498065865377089413459773340734886268275211659008758285040872274187919161575135284711521618710515630872819818153917820672885505557971807876179010061129228956275340396111020331149690116841520968789983541667121355402960219089866975693562616561232105794389618228516440839434242273572964155320990962154636865392161946198441764780787206316984448221962200979510546256454826966967433945142424863070537468016173284988186918336454638463962654403610141766194898101936878498459992416353727924994044044575562390777115297350168295047908263800104795391601089777333666294602111805777058147127156315491129618827529122684568414308802716719130738881926659027636496506839042970991402000417781295977622006305381765172983213610444941790536247214753192847496244580183399900483372431355640645161497889937574346435819425786632913487031300683167755619985494463886079873884235485835828599655826037178068971568424376297673371794745090093933658849987837708901250663398150852445300592179449854309662756949094457159657365951884552666370468980932997309740403472097211195501224323536583736729388808810230089896734061813526751665998112817590484012025391412386094370662923895368824329557915167025192013685767505545039986863464622574909844471278691510468269592489541983715594296579311319359339446111539222461145380107100534023519082701638609961931948378118319606463295126703063571729045152695966217481207736078090064970636841197896642180624291666801315312179926285467224411594325178950218418160411884360868559196507107440849471511789803493625609709846220368966637189295685603487693816013320891170456606309162866573691179101357012148033524224080870878212430478026805607209791228332942567200893623456913374257550275694531971402864227763060280058752534770530499517140538561701912714110570978411597872224775832864972427398567358349739518215746184937622177779102688146387158282047746903914237118661929280688338961581002486009805990640987981076519984780022203386317952355882277907806148180017691940414043825449804198491878618781228196539203292394555734358133726789056798598132972099650915108342691204126566949256627834691547837783945313603298076805847756745456809317893667033245090224142358615261870412422788135022947460167364186314429748384372939709991951755762855605859210149830956228762998299142417676209436338999202963217894595230418732335551557554084066360867826142008984402219341884305035719292846135179571374199556459617781641961760917657880886217882239986958974414858198450582732850223650654512807005321137389435502644815662151688333495860820238750584414196221051950096105186106977694409375291635292626956996284994617951698210483712873504409048048589619894328046977081017926781169517271617794424375324060619398761909580458530103025070091314370975076461646387248455354993395094818045651646484856222784962395400343897717625577758022631846308401639409397152861595229016772106715968066802048984884124019417379576811177554113118545822639608124717185834233950113195103535133315390055190267726923575231552194522322303376628064432894307181425148453577042856538350671711811503105652158877896500027605506433974797727875527253971212413129499441238160009611445186346238296226776182709484744388625666918362779711428653355258390779390947003194280902934794234923176009364470787160544349733314856191827574280368453842507847806638101941417663366949131237151195104572480818815939053134251531598661971891190566875687203416537835034794370122078772379784419014569466989018938354050362604922392471174454300864338857312928418092404497995157405143062650451803823956705171467701758532321901946012525014634322358070669072798623445314313893460612551166412280134345155845497475332242899035080509150240302561025611677770768966873340385796946694439824944992509393553994934320212776260828514301895386900180355420563496648050482252850493772294847693443837131396604944338897694141507612644107216380398855459835494710457438213651323138721520766422479467360585203692514244467793833647582918123992999708621764419726340566864279394102990764328024487724709092757348075184149922519555365044407312664928257108224210285087982454630148817508578765006005521238177366852136611174468487230303714874658658178404114379656013400542970955903435451342591452841676173522038491150573519635106866239255564817692565846649336344608164821122831187026265073169184540330289103439125621077855782743932877967716880749448836565282510785128281379674875532076514626652948935692985303888316064181552503145835977102700650587312454382582267224811126310030902592900800345546240004865574058484397487023113154224121940587380403625709181958889364372117762350307058978241371180704915341028355211656923120565233787260530884544227105610521793507985418229639007064857030487510146476194192357960780324935427829310027151257851455095738747814412252941675927541910362136393177241467131862981608577313525370201758971391275446431095032222017320673586188007014898498085484091011345414851891146317770655312726816752024960703950857673747011451936843053228337589602071521121201571989833359145680902700282429446545347138666687839415744486345924210945266852385460517105502655006116324989403995537665602449904502976869929515757975507353415009744285439935512324509605982608721351864936636398852421628549540422334275650163403894686826585762693153565985707410610038165654136860611804218600409174638510352442516268203522839394758630636662174465041789452334660405533365002520311141766262090993695466062080747437166309213566308473620142916648762246912047459789665877657259065297464071413971389919015700271673892760749926012144422460302728283105664312937577112301979288030968224887764272153346995964624950315052829738076044341879569974536097998619200603954466163178600208045253228297498843879629410591823238425349085263556659288046832135145054365491584800109570735605049194018597399602880639332768317642899774818732864305292974849858173853272049835715317412933739135033918784100248640944736607832933048479225137466986244077095020615872917136351518987886349540562169411108330096886283610392282893001190009273889873671931774496413648310658125238884766551316563028769588266895266354324690513969500540298822630881944629766904729228784013976445355106599517916061438909013043161320477930608642037334081406220902094591238032311294615950013940284211684698462521367344034672413754999153318264575956269659897029896480722975992629947740179892430646653759008571588988115113907194745338477077518130921722296726698016271391565732073407799471936242942284339422761979639922653755381749674524705842730652526974283196344103365033016843577243762710258196595101686281444568151922971055384180704130940712722042630055222573300275276270109658932374419590227625910974456702632799310378000480878992620944613100650286232119605014965297137571818994517034529065587157947670071964575374104514633496927088891059266552643038997549065096720860399263324949537684447540642245626202600565908746424380059293605915057529334889163451393403247183843173762075851315416984610615945104717271290814740352658874448423072206740810516069833213695624572216403325339968071813268757027539337054443152024883181521245102564510231265992400923323889745477778551811047711809581261064852978867275287488267054620069479387790322824668819664077626307443724606605928473718400717200790085455816630775995405290570663283040068182955440504324609206981523299486845977684295543414286890467877727052601247519242474519695872168535406855891997370397069813490385372893818982297892418281647904737933526178920880862501030062613400532722139352769726217901597545458289786910029299147914716015717443745308529210547575367772849497384687845352421528068514515567496799692438261193790043317764724524882377227580396849595175310528989140101454082522208464254129761274642432850141697878559702546357633014455300140560881985399681582516062214150089487556846261074742781761845799882101246261659752388609730560073501213147323729385710525423876318788935512015381852725552583567469891379811308706060269957987551647088909396184333450832812191827378675789752632849592204764157171251683900581681554649643110810565526891807495309208890399695446261199372334247761536545691513488254523323424420333338411352575011904140787763894702514883462325604202081530683926559116355293371502316337716494225384404751590226550256185099211955919106165596016847778817665782170715821103790326460771951035961782115873943867255903890104787116066132306473541394425790282725220036286276895172523884622827409798357640225125032899929490240334926321262264674836952736884712184693764790856287670680949807008351781447266282197713417119944938429904131191972688868513094929004813135076203221988869279532795196645561200979299479636699317480731156526241010749405388649246990531564996394814301736944013774423047445120537582437198636128517525300175971025975246585012309691521901765358119779389494747517784105801188388676473199176705321512158917261490325389461354915866666375535152176740609351882215846410467896346505075676225591532993779077723028423290138977476774436211361466852870823197478771255928405934281408036969761629957362907725484363778039589469916761389343140351229048973597747542622578238334732825762796405807453430883244280293087873438091475425674975474751797671970601371891292627680107004907876063750762649148518072559398869220227189560794254191167544055621843923559443419784847323687772897504375764674246246902247181054070058540923177477614147663056378832155350957679696807825595090249008666656489801483115362766671845068248229481545738324123905807490357981110986278115329288652314402548811853960256889976029866201132326281703882052331519229332456156062367088050083580505282623658375623104215110269050694706833028460181860627673656733274083053863941960055634123207249977005641466423218863368407602721461605926909062874671425365099730899798883680789290817301938529986454578224553466436698880727165893815309665822721175024826915310205099772422048843634950710104386131050813488442355116562429738371123030133588824289317267029380881017907045874538721199787677452584809465860317582318371137244971414184314502685312997172612570036416779129210706044754931972124271952822393460140830166965624397233280879863918893768862846831732266679119904080592171334452951030335078427618771513410918496707228931000938686016478713999997145921178582816627837017433625082600287635244503524747058795271970701964492529336191452013471336653855949392695250424037954833312836877637817551739289080481001896429685349235452473894442260418712108718484855349470233748968635824746804397788290930343654245344592677825507776359282203320620868033793194968102543837667546024475578019411094239534294365304314263008420714915792331188100197317604061006998632654522167622924263487427664494509894552743217452949774116860977459910589140789907041938923039015146258377350903684599439200358802771198133900045018686282232733128408464274364757550449744777713052196286061925433130351997349249683766163403517958706579646753973661827466321073957813406721314457602431926165190741017216223354232689937775884043486310809209532183912655373747280903264796596615215381813837420262763513130614856359418906838005228289490254527600496479721950400482001263775382160082690518591903529619910242515091823480270580321368152338930762014539562835162602764004875011973422267463965607636847297885883239741996711223540067637801000905798605535253766225871882629284673515493626534157472274082416650120651077558164490081569961886971318523590991864255619284265699051480163116039345304376467425986241920854014871173765862077625096510597366753091764285586531522515700536798331808701304743193700991429168137620724139595051224215595592878447920287359290998300379179842973629858371915322075529474799260791002215364731858543710054131037229781358050010855700179134742701600783683679666620104601449616202431432551766888916405685591369440293560769648406721028009780860659280604381570751908765797666041790349263810826470483416872153360099443047957191576415235768952427647122890226629337838091287123099024160690604601665062366370906467078721111734768708062898002493078017631097435911498556191001937161863708592683373158457431815457485772720693452765026969207525790720434476272665622734980405269891415312874216888226071042891023610568499661835803502490648805540061606118118262765472392598343679323236589435749863285151629024138166451269293408546879494974222911336936585975217150834006080725966775594694382597693556770745776945336679291226930966404902455446832436397600026951713462488169362082391321149220143088598778735864107932978654022114226147304574228518396950048441440962669227077935361476399261510572043049067354510962108839264534118236115951170555358703351126904487650623727945203957762982520568888505253236708432280116943524168180176838029479849901546633530021681766175241588653411173419679222388936437600419579111514919574063894975154108605018255039554237654166363780769446787308549684932406195802002702404399206626468232658168990975153189098328899129831515831500658087463483454931210152488484714998980009758197289896302883625370690810971208264019077621869012707276159893313324702492475559728268238605316073303906333079595872223004169732279566174224355757817719926573407527537579003592211708115805065441657463745699718402840932509694185796208335592855132770582893355446467131065880923916205414461505655095921534031736082537519747653559904167422476497675710873359227956597797865683993320648890546363374400534707316939538984280875346809422652688268098865913987821867343858509531625212328631953391125891434352726839609676624034866962250634437855206994582316545180046446100506465395235392204540185819905651071960748900644146462076199184890597200686257543011227260573820705352334578730580033200686615964921338846059698555793129126075638378092665506700538473670788939293419290333296416568720253086078021159549523224316626817944280324923750472538975194368220638761562556279461983590193863646501484445894668015751448294907076214224867049597680183538724932515527241347192825423483315397292817207586310689479534335682075018021136012107026362821477294518846855527089381296696626598320621856928991206414694189530386985566114057958892828836673495576515563934504540523561271494439073442143901303755138059234648250104763595197738484538957587586202829368544026768669720161529181624477244487577106073238922151817386372814776081925767671734870386857297355760174613194423163448244743422420728727632696025446881771111402728252548936384212611980272570759803621987902374806018445569881261820412573049013298237036525827858757143060122283884869857919858862370046508115730398544448933357658663841234315034304738198316486607075706088740915751413304017808389637704236607932250938309332038355631688363893111519659911118356489209454704554791837554553867586205823037313164039444004223823162396537690146869587385014131007796787235320630758969992698051351358587268660295703540014329501383324845345708794446073931032736137523594491231235796922370037252788568588858663599262676642306104391738064675553480348823583841554344869964157448219783983237239163237162018222645726298958714142940966322577362873153655365650876857179292708015626985985367916574702556759738090871484306435367454432785766066101914453832407695106821866382967839725454288180415739146687400040060512751334654359283447496529166439500010945897195459598689213671532324430375437751783870508765638765985199831743227009190830821418727183049003352419735308682388206962102577335463055678339907504153634468415704703190094707195535365693828667228655455490197815994837926040858427293830726640720735820033783666698300810711648386852480143022938731494798859490058484803534853955251816477485109178441106930123329801486882630205652313608514314685190622136249196603632507719767016362535563499017752313212015400808131244528009280287837009890807550535903553433212192963639571913050862441994596298547852777785618392037156022705062408852334587885913503672351087185803789238556597274395696455534495371217415440868351073628564647694427260642848040411549091609417604070840403620735056655080458706037105210285800331532035295061105014862044770836267997966942663307088628155074216057227159517185840168047859816690188942006287404092184652748219051151016055104236617376380515458595297120810981525477932090334176578597432673737239963521994713147115760813020921034274670888568291303038943772858015897795417835053968000194087381481062917151287431076985895610473966097945531213059200203433344178049440305779844402509379269325341541983277419615550370706159555832132487873944924834506823288438586164234108020214144936259346418876036769980289412955391770479129207883771879112559233992843846990024390434426752867372246692263433045207299293935366568491137850322359320815286985172826482579787448625272235219781628948053749038292215289512334287278341816240046928796717285458625197010759651650941669028632579201957583492262443318218439776193574025081596690508344205952681708278008479596708703179323559457974243926608094469992920577304299565082979811137785424504295741674111009801670681252316595567356161094426385595049890961728596311401154958082055676504814233513330907507480215072912334238499036203985553779883656551276685142159641963773873252279587839019072656287331420429651510823799105233542288212020097071904586164715994882288300485633489479945286516053824816239219148386614651571041781061543491322114745908381516555880892874013881851162132244119331153401873760653761365706469030540151816137254205122472244157969810495069148113187076916611164993422390782975651970157634954165622825073315944011069182192284687250426475964323911951941345366461092024536162457310179557951880320436526570569115757780877325231545203274330579309877473541691510516443058388940671778191707368919076894275933622726933323042642201380896174227152792468370844224325178486356010702988264134659261734211346991713295209012105430778203797943895956662032722780461307030503218024471604334052985725620921706353776712831479513647077666373459215337672338741558500998629566166178692719614251194884040972836815731907023877549805546580017351007755145998060046438216423307828415224833099196696131209092417249291589759788388978844922759905454947252948849857841075435740813663495714093322776663959586946696711614365817338917552049716914395921463453120202005378241135316163118433783024305787676362361914332536417288342435802646911501108441444448924920949684645264110351654515813870509937601573598500359289855836973938625146507784570388070398229881605179670043685546388133118001826666187596826960140013038811239623456297018987966398439694922923255376888598311978282372028235297262711506886837909424763970271669526275803175592600090808535572032852424083462487986287332450667633493599492998981850081770124219664355255429272193073244423852054514614069269081253244056669409417582761243118872252533616456088075227662976606163139762705160132502699575161675750263247358681758255045800517178512986760801234542524893857432662500970189082467898494390703439548518981990623853184738300939271373185241190248083132172143717612788490020619102233671918420841112215218805247200854398212920497145241475045817995910641384454318107890385559750387926096873996733893098819887742310815594962416608480630259270340120029449539915019424455627316791893864972579544719047698762414107743564473705880458893359709865643197706253273998126844821762826532694271922125031312654972580612802550884711909892058956871339624489244553144270617784935975489430716294376542825782037055476453493413669221917663398090667616061695191933236932564940819689386644348192509570177361315732217689337328481271785507924657001496466576551479409503931801447565994304188014281607144331399471892526221483625166144080340649744676135058040666950972534930332276981860385418221812873375480022943655852658418285978716078528205458294019618309654934453605087654876728405443839045986767686914915716937095462852460524792822601986074363323875994575402512395309445527875655013470621830506312913077075413158615153677266314396643672325342497570731206629270907928390255327477095605784957334604252993381272633107157067426712283650747553950643557745687453032170012917386363137860112745031133842956045778386367006829200737154164533801998349064059631487192285537623500811524445120913415700417803994220991987625231147557470129496442312076528185691411926133333930435404386313490863886260968102195677717970877957091941793511792281944809268925651818026069082342547807657169478622915582824186347532874802851075685273045345697322493502140413733127569570397330538229672087503306467588518059357863304487379472460769036092948227085317296583467587201672345094053455360282875710567478556681868545337382738128364913135441442926316119203736756015868309342738924506903284145355223814491017925226522195894890282581529378500249655169336511996802542060763558864135591942927763387625935795807631565384410157761522769407206881904124678349744550622417472547097389650157572347603132118705924992756419964188361916772538939807295197088011266510662582619046793327107406539040461360142591172311634528251124688802331728463123462471688243563904330582030612549354822089962716898603305263851969588237231442556303454652436071877161295701967371475815447519069319170944543318197716516438024723579804773817723787375498500266496459303639423118689129696305782802333624075444067997868821421401902110774008953755795138827305550470136372794953567130553799788326444900802008889305628896012013582952597899993291181390994384469442386717660859175449835018776262838857216716839317248012408489667870541029584806102484287054466303792362092944465987068198372022412875062980658611068263029234716693192305491686451779055779038438188287744626553187852743204629258125466339745594292317305093584011142827117125818754184315152991233906622574006941021173693684086089513582816575567802376094499491119695648942513234716332711444540789185044347579706525856446930588174039326527989376989968468670424833032377224388201096411125004032124751740785180307991176761785670973338251770960286251673276557395569417557021561477485127811894584214224883631014896103266190142315512887184776944591637559087115580953889112563916700010798381636804970612355698193237798316329870791923028579970226055902683136600170768577542554326539223674881638543803545859044035027389486651828426746431820206046044535035349393862929128167129122740156560645980940416771486162444169803995463256258860585385224176841479290276550859899885410674849818578235678678041428033954053683030343869904595170685226305020418143188374208824964141212876756067541237548393858149020224482470627727466948166730517130574917666493306481556234394307391833198310248465494909112090461733830081626877336237617830868231463597133209292360875934913488521376772332593401828845573285242070319861834243935132284833252271591059435686782377702541494323642039194991874206019917074523051873503712435676821935598799991007357671556290044374785157850906845337506946472023104205088178962522248995341320988940705767994184449334574788841911444263385519238069527447185069444939074519795729099986575415163101104568535189643378948864773417297941446548777433867923315691123179389663099777495011453422194554733393528685910690252852319797384397185695158246633537268613165563172449219782908114972895907317549647140020002227559340464319056088847347384413761779509418967997172916473655015354477846962742396110742345818324175337057759931318768993909902899450229987665168504584310091049953563283896544272396829824364671463539374278651755326643368321219260314236815614676498942255717544507288985634452878481182869799594052393616708555291393923565018346801757033644522926529197157306230848835399589910850331692791777260321083110397053899107530837348321893709569774973755337534622505700626808778691655381850874251144724961697791195308042592368970328555973799669988393296232829915493748532509846177012775398767142696533232123808118772817197847112485499501277007115011272575287827874004567590006752440601761196480961733782210324447123164437816124574230317711122559728056913430231803182741439226976765699645694295605647029066527220251207166739056725241732356743711348342198030517012469930493070240535455055736099845887203247066813656846886150667637922780523990894524408689514291710963531670654106047054978870832077197464678687410215913550031356065713873551357901853152648521855103444236782337253679102142926492504132415697795087825568696452979512146767415986955801699212377735277616450475357024916101651039303930723174647664684801466330620482517882766822687091160250782961561590809444304508686986227281082681815807224528729307184318330340334090318741872995291960806799756989152725938776745213056046654659007975916446907322130010389148967558014388994608467787734181135631009585243027216923960117301634925290859837627715009334640187250280938679320657012029787879530239152312726991829970487035709179189445648058946916797113688897622411199597851375257161589008000867355238498950149261129760389375391279160246208817287253638356224355209544630350012543354330090982109265633814216828864197976951296327012548265285163721924660490346032201301160460299252820989877851922828541004467116706418731850849613832394144049022869028365606628121746755219200619363150383874188022893172135856773275974810600955579165385058466717014353589093334186736495856278872708497521663287744747637093494991785305250693016609947339620265050512262113037041724450164203048693701354264827183158936592099551949414228034719967016431683717306913122656318240723062242820761026196388448626669886745001285874738751118819594523156230828985190202687121249147517397964945553774283065385367699960105751347213069542878661974856326181910292407433098625588730299921901544692522696620842641087601522267755422760218204166827076031043334042158852198031070883600361426502283201996163762530806160589155427826263430297706902400329531864792123941404929542244859556607565896044274963453028660900971782898320043401271031654680946987636480721124911868688474541132822758532107955586800561917383825533196089725266991461968826838195727033839831316473404567569736689991683076491103516424612375193491719789852979699107927056509534701285067397968282010015790262243792247099567591648901979016429549274920261424318678094778147155626703160775281239227199157374440799610848590090470357016554895867215921647476351858786063085166438820554083066963861310342790650248779269956413315010462742720425455202125664640539641908770905196896478476412843536209429246336834070290052349323996105080360747651269442860337529257465194567844786915419703026681010142644918406663647822298195291997438100287279648448928469148055192318091685686697622176176689985391191640008829454154883475056703491379128803360478615853430422134861014034287513705656562600327213520184656843809434787328488380029342559032974440407514477209775408749384721437338441897397661653344808028803449619445047825962801388252363487378470656485834196349998422946122973702045703551913489891511607820692515343660923051512079922810391622667092939139601081874214670446698202507633300078238843407092772687788154879194333151276732437829535628770607844633730542701629283901495610302536811164095829381932033445085966817050255367786275423008612815778368636322172873536868570677451087549464075377338883440562474398512671472479227142190950970527172083682660119913457118209460798248580965108011601386567731497705321209872970633510890070169417328374173337979216985466447183785687883101203721958751717741853830312744101308235798931777210964546612119588978638041614800823933263164474224598398400008345666080000577281376532149122207915469079612462783113680275703963820278386468061371003117927532570853471160538068464317255452898290475677088038438649491875244185596754158540198342408167026255513256245835323686123205678114428460422509856273524422884453145355290508274569338271034869765982622846830616521539037903094738423367831366534882556931349941285357564579059711737900910844437602792999613344562944689227828418382476268719746228689697102778557461977307788624052840689688685665113104115013377663877932027152976712651386380579863265098750313401713759384051316979070465830159029318455282786869631175383890853544468785284004581516815200134590913788328880955901290040975859448580334334587125579012295350329891763797759940138138356188796951613109252270899899455260130243140381331570204245390781321815653161741134187660753407357258822810618848737576833133850230723825007773211836443667219322683938601918499866429710098729549165590540625027195249371746712231543261775233648594755518378369674034217673033844814571891836877932350054330006323482254858390295736215680573626561915350887525779649626267799448853839326886518648156489494179559977300732399220665202836009108459276298944561002351033194695912538107427466026527703989819074636655166132873519613644625815323506715705011004193653369922598718564047060297896378027363569206775897697338122204907139665101512667788293371256448968862788481559868152538733258751680717422177925416989057454485511896762579302141407266932472657715991616882300582963948595562238944046354122643505166240220304185135594877379621705897832579303784600805418766974431145554474065837301932754802387066667067154808396131294697791104851830416867650498275334578963289210038590063956814777821203156703706432625550305240847132330002417779425688272515897658090240421279714038966496305624782246039988193641192027068928506198959996315589571830136253834831487614393834559398858076459557405030369604272468560122605764857483704472704370853058724883142161573949024622268410915876383053135524492044833548047802997439770984069304672473216426982279334768327478704327793549071182792040832708355522799464595042418592867643540454738698860952308166784282868718386119961180582243767530209655546221712560328922027228228300134423190535751301339296420250085214571492560601431064849556758777441735780200511819216089641617907328454983118487052002281177081279245075724785677054801999505330735949403238014333405685637453925265283439164477659827804978818070458104202974958041983591996558493734073420130046950178579254794859640523684956227003425803286223853694528289782345677579504237504374548921839142454025181716695886167736542319044192871839949414317683332310886382373243356835804274658988185385869692080038311415440346032680093019654934992474097298872126738008330525091291013489699696983895752974583482113592264422540780355327304425645279817019905132657553914892349725995268096173324256066256798522490885735164983804894338970638652152319154138288195609433704444897715414498690853535643296412507542917513198847293401596892392361562475563205074235266511734490674232719307037429509045271846050594473291420708444180487431435121849536022201808247882313111594593694759427955355601965560914303438549069572250032761318521869163030569232313041877871449242278946594098665681358544544572877179692050307272318335403518002861565120958210865898985717891219858439038223442699798238654909650843098838339621294290030527457701703445564198970712396552678631448800008756334701126888892293092633527858036902739703015721343965832307210836505198440019596797431654890830605853604992841134754862943294198093492973050196064889514068869329796627592703088173242247526306380573834018452726301268425764502980654937281012660671310887142991722076014904449681460130548869624727668883406067499259666156001298095927483572295215408575691434418243589196143879161704930797188078825698800449852880783707232890051871248085724341436754829554542039381441232795573551960213678748760640357298582789353264970916881165220202210058040886110943877916769978619550809347391079781235384099130027663894895862549384131383419821839957543040366668956192301858549450086856075884652695830201825660794405916972361317496099322617929818220783483284803415802626059525197038064934303254489050847651503827633392702524895166717392326979285879808700661822408178359563838644732741805994988582673316906357831285765298478682293083418291896581898693701493360154067682943851131390171289029991584498175094467216012687902675990949535974597214485978024365176494938578112804718901576026104976779682124472506636077202694624137997393635402335341451119883896050571593527608629131227334106263496782179002444807897509962687753398503741693571366460255125617181959307994838454533475827626339416628424423106096936078688407128518000882440922838022893160199420324157729197242827258354501200115566698662286942357580438470278237428072877448537264899303971317103218506973154055032478251449339753980264619137508487096723690455265931561570916698941200689599930166996916141269853956921469884786793574437536504150619441025542877484156112990218678968099440931308795157628634981864909205700562738427591904607335855693368368082302481324527741264021141086780042710621996570623462169807507220164436042720433813942574746041115586938230618474570690942930938365894927398392231841288576762362487818225954036475389530806099768561853485304830277156450902350177890738126254399862173360154103215243660284385540931602864440219103581752336935019817654117949337046518743692989221947876336925686029124643917425208498319226456699047769407586864589343095889095628053372362869097113087072178959629328422442363286804933611082322831422661293980767784663543631360247422231857518879679181145464598565349366522998555988278782907663397156334875004413129218300823139395876702317594407588080886486942597913408362626253454261311395737327719433755679815371982971413296504131129739509316745305899525892802805008000959405105943814040929177812427190384264060047375633512590496185074387865995319900185679946203406102434142446439499941000416761228565985226827126408627263101425696128359356639354725702448805987736360686577126073079342419611165823546820718090274107255288937574094270333822345061156770682353737780247118437175812913276448297694658853110842726370949392913766097660552864012854772807525679185316920586487463121373019106978032346015077761470159616008947402483855792734643448122477913885061509302483740246502384609373296240063147772305210684921999774461536753441057987954082890905416054558074163083776218211020293303166266372213269085423215959124067151251633236833738875684810665279484687324261383340467479195073017855598651433751542896799820710145601794320831526685562338456909459759709868723176510485054942837895421311232954204843134027530224516226389009886763708010047063215014317869183640727719855560641911344747379481529301609027861181428236570238206488246559266869769491322284149394399215745666396147313194516649135326648137329705120722636945568565637541093905273777805494458772606134656297541342728768981984683024948957432313889548802312735893806389104348400474900328611923483393659097323931798587198261817348955456177094225214831351107366641917579212893997325380168250773036791016524111144308161690601881585992431477480668833507921863923590043882405925931503123443053625839271844865756712569296554867921296377655317532290240849412736436175412146023336176901343442815494728764481220485007366336187723638873267511910164099994651863600008520436794149368540854975738555426818763650967169915690289379650888768099272813172813365539734344792594563027536837780568806249727684397140307126290298973427858760050603268025714401710006097859542354795594316869112787515915266808266845989232095092959543741256637645437533653353863875087710870287914540646502129870696494892894785498913533373684246925497559026475747066871335610066222584262636884399688110022948590841705750677608681995961221361225648700244922514173477924682386945144972790114509785104761715211956695373776406598963002900270155495981013722783072589625514532365752436194279180460931899460140255168585306704512244077376307316388488186427532709015959560950141846165355921536894148525322155044159930024055194441450488465783607020770554527303571228159831177517302158078027223901000726356915815923785596725496909206557902470461085095210548471747642711305372283575444598803723553351904728045996704074818231416849621294858125325475627825079397410845276338248125317838219464976795680808054785221603401741332314197428529518682367352168326241022006597833500498898492488301499638121429680689792698564735082496597160757359651305513985760904903684251400515083235982967226225691071809123851108121029542848630892040816122102510929288419987031482069649601556504504175757874159122099435290376706311878626719622490223624635102471486571698048985960184589454429269304706441829374515890120749906252144041728822535270413119071814125551866109397666634654973717338700964681948165455255099510866182258852081221082402672977701103705431447337785243906589508211605054756873921481700884712686762802360397641315537757155904497715414147841067668180256427310731360375325572209351322034615122008083900625199666521718664879045731335698402781090668365329607009016750592490508302065808779781994611566434837561330676452398802764486946647569288722658655014729777488397359450416085684646332119028328659354140020815476560566835089179876149141540100548423703481159031088123869938205997864437965835478960097130891905259090989800920806287742897043671096240933288192606682371704017566857583287255186218424816376874303022167343158187127241177750319111599491357718678208166388403624484036707671195798840172880602740151614764572070750485321154386110211145630490216125234058683736577433584101002293262390880525242129194621647744192301826026174202317403819545842844146015928157135011437969117790104928211689054154759378136052621205457870696404380201545223501041787608589413149623351448322695341506307110712904205636146040210653262590799004870260627459267279228412424631286347066824975398072724577217657155852041095647426665222429209352609417915644336809225201610147646169629410232410593401924193962604452284231390183254082732554114848139139976083624208693057034309175689509540343973366410843957658847931000798801609352563407646887384429091736569838920567287784178754197561343079156724419481509968169067234925995663499891285211263924492847511768643307850541713349230530717031192169629705434556477784870777757901906952506079756512051258338653489486406919348803947571260281298635828947569385934888299536554566762469331780256643378160184825753305656725035832009395172028056313647230945726023672830821701571864892843341769340859427087781514103809787470322565907068912928911195192200562525509104804206026727044232574017798421224162054757334860505262535037642110211223636599996999716213205621872768408735052169996902213070391688235751634185808550171510315400461939137691650249640962572246088573876741901647516931084680242674694008668249325577605176139841698392449113676532590353349053772721836631757434266137701478452882377572977640294945470050070504116127031340315006430361303889396258696760796445600294837228583775035913540807329377533323429215185343871479014299684935421503002671103958981364176686891666023143530669867372515627593307237124441181446806540000175707198498507486701555558700606897986826167712146544264615350822812128075884484259816436518046471681418669781937400507246188081939494660904133528501267236009398974644448825028181744205912417629952578888680536111323422894750062826339343274801251298702785593414983619554073797909139930372778416234702049202789632130454827858172684389283687421379503444522074659077541318189514036580847137555646772873652207204244691289944791387771733105236741630036072960122325235306287791080292336510444746572029802842684238733688275028020583256523373275132122814516905893044942074848914384979292091281396149317342461918200216463217307855344531348093653776983104668642236797795557903116135128327320983534822438384454767454448407865817872254152841531788884709994107443111533790379356420233054289804686677589315595275508821560351570421654832751256456256338743199586502140798961176789397959372686470580218379853827951724211717562362745468209056558802976853185600518432576956650373573018976779211931295822328180393657051170317602802378189389447787855515225979203036433350285102739613094901461003384437616193814276680680609756140785583081746525421424396638715243257739250138013527673493355839071593861569354941439983274701058154797631618763887508456760395565330502043077195675709158628297849063578989976108413823078154755121985309642876824653432942280590044901899465842623185403883596522967945035173623588022115207100472550401790401703006501618493248951878696346812373323776266030804212482205882611607299986074905474460895807000824311511971763159172525644082932973649473039505381189843519265593430139160330852126197222689666824770408270955408192680599355286724658500441108633028314574023608185832379480276508559809758788353901532200380511565383885860374278723216260372777922262540615001365869653738370487655134076182391959189728081539028889065102728589483855172938858643897049127764028544338169411188878184803849370149061844261012331973621461777229634217076415530315651655168917241096462028750729635870953661493015981666246035035238390524491868866184102804622516298846254720489064207321346236394033420245000876125785423649277569230767758192177540975872885416366953814648003648334105912969654221610404770477196179684813622896700495365053548132376541068171495031780492055602541861188140149351604105174445994408056220219425430334649420593625564808072006403133881866344164489926698117759961513703779972048991309003637963770194093577378038225500527210632681066232032247191950871073851224895925225486576339919501103510779174832715452836688608253180633335696385358216516222530947658260408883286563099472701172803976888203275297999978802979455294813708303116629712611508286923008627597365148067208409639284858903934491854319945893815254672728082283903459819207770702353809686673843610265144704598261869018855474464832767301496464014550332756835251735202257603070671225203730426698500620108935456216708856782245687134079336455427070096760691732853671867705611610660213044983154021767841298991621230038125394076667168742055327430523271748135289140442642666819309500147037113731765195623155267541256242704363934215114561416577259706083701639518086613575216411203667536344933684284277387266227924213640151760693543439314592937693626992137045994664303258737533551599796801236521843479266613023333969819837523442779019879166204686370885331888065357154423459295814246669277633538980121564958102435571792371654772737242416120527733241509585769046190870109113471796915662096728127892538747302086727448949409564793649424625434323193470131707090245969591507248944103783351710071262529596709347976845083103455669127929526241725632546918323050089151748996356505241583669766819315605289509387945631173375211433328154881439818509427512013017374704692334538296690353992546364548699004605056653412052810656569248452317159984967549614318425230222271953396601129330441799165168619535343812106524766823043897103480938898201174788764487794596792365448298243592655761674543530800382404167138924706486026741463476345819633041634397274597202735473242649009577244034119634936144975792613367218194498293708733109441424763906747619717655666889533720289573872245847972884751483485536128147732004590844230524056086725375858646956163455015000760351240034767132454175490712087632029825666397291165584963622876187293663981360014601773155046386552293983024183490838324309282426922369383029093149461671537092826895132236921300577844527795596533388552103153098278540990252768473116380306200581583971921682079330956543382840418839059910167186584365195105012904929659326121940583933768756293332170649319705703319862473592030534002917939823200889630223748989020910382614134077034517837941829522531369926057903571097377457050846268844879423021641692389360087939811603121911764138690703525471538660597254647068204391734734237860566487199317603663450367060092134240552528275689953145666431414179165325280365100640075046727327748792826341223765347716971286591460873713316624506921088489825197687307463103615757561103996370851965104734997067350448327069147526521002390989507162726399139830057240902844743885681421670889408724573055386534191742263989169802669762102590695724051713475841296608921045400306676186263261429116143243815088193324700445162289117727601037059694490490155727756987213927688259064232239899747837803745068391768520167971176310428205223213760093219012893495068543488652618931295766942047947251076395819693041321781819112847545825665299049554682065087855786099517135529485704085582376094582282150849095101861533874436346963784129849083713592874750121109231457900477098369185298381018399052121880000980476536349340968611946468872663327533861653774741421832345898254419065765841557568695039290600339423874287244949506771912700936489847770875494385375765962624482387543272001536100160551828143282600690865248280227971891169251479602705146640476869428348032278136113572660295539101764935465918502671472916195432771458437194524566877709380409355607860773895750130525661009762614250735791268362336827643037402463056436474436910515065542844654129054620162037489740581556008963224935524261077783647018831109537253417806252595265787693461311134302461282306732550400919277692371346558903804305496060381281220440992993974694739658545439093024929819662515608621967327878874416870913025455530016704970023608211683481895950213396787134295829760777576098689170613694428004760149133215429264709092516676379609193708561934302952676880964082131413454586619216940314566593051415630161204088885561937697259316944922235126614298988381618847422153181522775379590246401289705576021840946319496644350218486385947833892423256403384818839669349351894575575169315199368522604359837618645302952578058799144781160955772268905925034268843511114693801440960946145762287742945384169637194235169408987142846920315984052214685051410081451934795412249224610287465284422199741946903511340511413042984825863915026821927125568152135480181237277174915145304820518140000144403272938145431345994377649075876534026514569132749553322161483591862739621023352407428134604616152612833469464201698007201821939499088887267642503844409285275978331375878672670250833261393062816473391034852780676736975605981392043127069155834404784300417634673022666845011733161968905862485687623234586386868292797586698745705131611998224513617826284041267401371204611474249765863725231050526502168536100061590269768201798432491792193381459519665870290933237825204427155069901955604618567815117344883472750598084256738238927660562384223402358633104965506584746445982953037505953802176922322750344179163198600817833185355888178511302161444420268081148528129931221698668381815904370468165935134817541556004181237467166057321498240862504916677984766515401970507241571693852582535199216447286445137175501732501964874074798427689774324905135231769837890346399989552339108198783566394604862484064199061570009000267850370198255372892273402245721632231446908409197216074829862045404788652942427440276348106067286726345421127845057561631789023062286741580102049903665666163868850335142706879632073357712085381256996422285771778152798519963682659033569955892476798497919973255921138621559799958580145306420825389544417665671412736730401814879952799818472226163533411930585250832700878747527331434478135378690851097492208135845546390521987578426286699083372347033813015193924925506024378483787889667153840373826318097723700465764065398236883475714150618498943995324843422740260776134465608495190055859754406373955569924880629543785418771215953424996830929748606722026764487650095797669450237521840070672989241146012976800085925491252989016478971003631143200157044581476032168843014590033348595210328265572333178924157054777298989649084883760433540430178446295697703382120123002270824748059653258305231047337194418613337860607491644708543731099998726044278457127771393460505290627001798086328151251090720051870822663874325221229788203344516335041640591005013860308081360496199946702739145502791773799222927564045523884107730597069904768802187413237646960192023658359242842403191343969521210909793289394532207318278841560001739417171527989892789001847991619976372619617529875200320718805675184020830206010094068250852920590499866015087607154733073565655067969205409124681059334971960123199920023346532893129180610347749457321704551805801438688429112101636238451658545480263705687875808079178476034348565666107678542941439978196827195694455568836782910666039423819991236497706895782100377923037674596289243704725475325436908889102231227201820316919278049644668427883061919262298237663947908523327003707704215296582917218686729060263807636791694399974011618658032172293780523542391688000579068905420560505080370967079510114970023662815473734496348926100580951660238353633086454413029282651291379414835712187873138052356306818550768379866561714560545376372181511712863760419125582933896641360098317719968449283230853055909548325111719451116204262798235766851518979816392673877392371548327626966968619332001993873973334445359814440850502592480239690519016513756007374878909984050481009594399901466943141810701725893626368330870140283372081153316160873965222985039422415606510941775560281011918294361983383434679623750495193085752555474630583274916794480685838949110381672492848978086264163430595591170594981106346973547177105211482220172997469791480774115991696204907549427358424309963319600816995914767588221071650071822511199567557178692345667386657116383668089566033249468513259445732714172639676150282119591693154283240607123337572776989329558276771706507671112673597742920861764508320551385664275139241412216388219970611265460860076288988953206000423694837748684561844214353410673382056139328673789881485014742490581839343000560876040289005249174617706575830636462322764314456560204259454032099201242459518497520523584190929035896159791158343133056146474184626622921206719389004940450518408551968810448103073977371340487053473458359518863973783756693770350233761453605386045137757799214200805268111801947505668372123588967800189176379275662930244676822645387206127340105960384265224996781496611680323893100296716313776907492381773157251120762215344000427379473916506134055617524045684041436436974576842093205549907194078303411088495248305850234318420015750537462501214215239102764967830491087396567882845209213651885765272907163122791528375920967061300601267452521000499945453412981635258988892853446643000976525049125202188943886819912603694022731349335506699385658266139052288972438647552470957155756361954177383456098863660251409816048463228999031540700039966286881631649523195035688963408356860084666939123852844325254892991288769169136516877293793840451102708288519880426255692002462833733069292969111651342092569741908069199308196353592535418855346175483490021311752442949946639247937799594118228386904060024961089596979063700931686641046550868607506516102231771555245358367350565857954615378431083126292018500368901719563967476196787420963391561860138509893684209321691826907437932001738302042553891284237851016936803320514914794290460588781287170449998655180459279985662367160304612781582857107672689141243042750119378691080187231928099768491012020804702341626485550986523868454766345331540469053574330669532877569193426654695023077074607022491788692715945718838697744697131703907945785057969682435754242193008155600563242205836759781325633717530880766928518548528165792559141617353919917888745571985370858710327930022026610086237195987509084707046220914684449060220266011024493474698747468758959442166203877867600601783231346251372062928159530472890205692143704248205646280738507059926658177316237396206311782909528484910178858955515791983777862529830681909824198183588444888221200501460562798045737000143604146117236210107827227717632411616195145423072569471689466350753373950703254782757035463850273762121837608511766637691571318322369610550569006998565705363303728240532440813234840607965010663382165463637920878951042486246076750379790993732277431557819605192918057846891150398070022568854112070834957966149211993517933486892881324077157537490196029647384923699402930713063462911773987489114140991536039874482721463017436867901228226307203181180965413332861560192895597522580278898311033164762106669634168874033121060318051654186824567007590023772376685106071650882967662631223953511887109191270963443295724875685201930916403763205837539938784979764183166978617933141902140579687901272334870607811698932295990663847548402157432029293062465290138374381293013359729855115967257620687621431294415368923255800500550569350920398462931049001065157400077311632505646643416737193690821328435299355959325083893977696156677043099767134127152439174057795970600122708407955338341400089644500597242198397216219540197782355032490569244153396432084865918025197597301026006181703687830280426213464204337128336545798015188659762564889835630078642518662374273305887091839041947675605933200990765947383223059751651454055950064122523468783217641570925102237408490499038217767972955992367272661523738508438527689291859502028708164493703514157029896296695470795448135085850817844755551676772573952801563013053541873329105221881983948439710300840046519876278864336998479505244002122523580125520956456062504896832446266499492534381858981135123531442808055852949528298862368838296986480646883880933449490879398625178300916045536427346992336661835804399112936958587200868158226782585575632058529729326762937870357185512440897645053032828118822391089799799567929488954764785521072061115124986627164035625203381383016169209982595869921274754129723540024166934352317039528276156946340704131622114964240703927481722874448220417064293003231678644056223109188377384224186340627506119274424691286837612104124340174132205896218546302853535043458032302776455634165934958361275600907663561972578890329846674830013412164739347952953748226407341735563847789133361816431607756474916147076316979686825857554256491231250933379150386744362637173587908339984008397812686486178504350298514870723519471694249918965964730046748304323110541149114620960530484453474442079655308168455892571919548310151102140248714192670396101823257257838244827418907349852373712961754450774363235478920595031305669003140421024183050632484725796354599032561617766653065477536872858980307722386135901326455130773840484426101174941939264398226761134879672811009797151268485952165336340408334278442359629895448167231032961975685867254174431059465403952920590115531452513816745321410340941955069728300180029049601875428666689571005082770589323873752556273417703797396708117612608540017878098279826650515306487768038373053540376818627641808000320446056512354871992527830524654642457362238446640958162519505799216963587738128488039974024514487523334999946036072503050772733322357412760551048090050750689854177728476448712608246271444165340331007088202298915427490726898419629593122493153375431779347063085143437673745204600416980256120173130380859419863551284491622631032772446132250701849481418737664382285079724450882669233251155935529678811336074448642464316194249756571530559311015015442418648296357542585233419159270362506797225640606636322556339756106671323775456595256633778423709417702834694020741695673188038424669996761900581960743229441451273940612879790346122640016856348370760006602427786687893585865360253016411502369094776810342815390512922451447596593752277517114002889244044012286069959316463169463850132069938823312864120941223708072231266496523843174663964673918476989159765833432940634575575301007402833312183098553725277437778540511449239502108870323165552516596937799467815161338588894552540464915895425177457939216740139215626825255834007766800954113612082887750160843717392542726419530373836600714794862908750298476393238433520132286098946750516061978740994718674132213565172472396863109207486251860843326893740534459124650996494148507327852053472549025354322476877075849215267811226899675439242310786600103945231686458865346172358421431711069063607035795957242683728242251151881507489483706058776942702445126181635608797492360126764643401079309556946721427179847183263729067433082474468157658082725204929753547420817555063814392303036322849205054402304119108749687971104469932108847893424490750461334178489652216229126444552011190635502746821171571501449801463803977676974851696077573607456721808741172148152868234074397984976611914878800198006721476565036614658940667741506103842035258467353309220184404707599915912534303367385236902486895944456184798234979564575181740993240408681587973500156432226065573689648556154067289143802333854679964967184443513683369670695938795854202103398855010514932676326725912979492465836215521160189632670921145088269745741694564214678148001598634183098873856790511891038750426354078781051919918796876153002617054983677180790939957926122491632625422946812836008287564089922714451433845870454232826982921090058877979968625117791429499415920224551651294167293539755619409185828905318793353121294495508966982620946262478233549430992042732678622335840744067192960619909217547227326595558150994839918118244962791131565948975245768889709808590775055950210763789655265492107071747502055112908037220899350933991398647746875668460769649206348743104249757964070401904046516011536076870252614023793351864977141709567354058840806466614554239787452160213571166188393129544840776055206500111707066568176770723025025157200264025054329669713492841656117517927579385334160482970747527751336646314768641540978625550866480665594218812467700961173568213744057434518941390267301525818041457530074901536004804197999393181345552436105616752247257350394050470948013726453002635117771278317195941618245996418849908881227361163127415692920905031838613542269748730380120183673938951742069925878665700516944669943035888315395073606988863097636948497415207064328199348432335187732594457308847939742671838947859328549685215113931091700753898062886008908038508487447098791951420073322008735264943354147937153592982473255809099525412843899044987604285812697786530326741407777128856022930344835997264958262076415111689664594843487991335825311155750838610069322163863831795274991791729930773359051835432081219824999466143723957487462814222844992305931221072808977401650440117508568022731857893154858895962413383508105250967820878246500462514832404237624383084982109171246814360926337264712748813666234865218799496156806078492371086948217459452000613794968570867627290573140587482830928460064813512367068214557158007312647547417490111958299623557829400793430665910117422740150221189602587232250114334148070844022328633655398593503331424066530343160680301163994782089028254152150107774226594076666248853508061633560646252713454694407960800499535012725846160480246704407857973917884940330239792645951070045768855101346265303914737655629734941238818429478448694189213551822545809192854950195225300737442436309393668285775412620978554739997067435919151741794908096703481835745930247677038717756791787230794979685118503404617425399125473842704931513099407806143168681357901653119529094987959587542932898200868530424614734494295717635107346551762967948288101874539866486498363197862011363671945485868773297451097183373816405634170554969654347995421813319245806286027055849745342175723051837720859187588312439748394800848187652117906749727765574495576082626990147332550056317151450789974260777675954160267991470673306418572745758247093862359017283736631562693320909685792276770156940756929530406420919725997368948110469657830067319206909005873189851300155479277850840536348485108515599796512249013589990804896503256773074363681992796803885623101511752173109727945028985114314584612505562274218968441075334723962534948391781991762939642078737409035349574231029789579024119142936912455540106538501466639882032788490979516816627157291047497570605798142121779160621321761578245415442883234273197303117447076644600135055559514683313903223679786904915801543074633282034075718049544986073888097162048809806792725486796113181576484964752561681977887752842494816748244888425786745390344580905543417857026221539027211844985668129650059395731969188149668305794070158106218943033050316441009806971493765348791532908681153574319477070137793208431279566280833354541611844231079115293100524016778167054457911277094319188609509594654803448219476129362972570371969256814361828500875820544945220873797375964418306400615153450877390024900785721120459794877021899553216581002337703135147295209890136371799832193610034989461742942321393649724295177014907407122564881257294882680226670787043393624981479450596953876544273508099035244289709281172193076686953883951168741639442210450236568362676366138777520313659930349251409764896269759136765023629437930994427182128834472332089053020668280125035169612178630039513724287533064271509914114716954585765852337532161348383053490185737618744993026483990300561455318518843168303349095033949386088782396550499939915545714075676353061766453916203391291225783364690095330388572589241301572931616994634942762162742444929112845622301143267680871684227119243333077955567002747414723480448410023303640704072406676634547604525683956006641341424694049386162136305903888541225078057182066594356134882638373073730635952261191657091705507693389770505832693531520644491430062476744915317801332069920328035098844750821130192877820225381514488571594868341120563679612827290061106360816457771068722102916000404538231438401091508143777327806006764800337932031436005928444730565358945725270789609983546711664559900710254338993143470029143830910279079182571466550850444284190572305980567460209857929348297239405476273419477836981730616778155288257886185767312129367610024118396676883021310371846086616463875950998465302721408164257592237202266111369701479991485551945045570736435507402052526609360732341221351486061761183595280398944359735959558561021147632834489297055205657786593835625512735382495765935980876826360541886211040187256663728542012481464662764946728893623018493322865762727825289692278566968373549152818972370516309938971649299987072622973128546632154447306727548752033705250545661132405482516224555242450456011307502714399185581719718637392712730309404690723481151680535654618079986102527039960213306715172895940875172081312846811028305841122886166883001703781161864501821270716845172503036263765558030840754351763314415052757767121709768921167471548750949535150262631325035714575151460596855714074984289351202412025040211375299706015917760932342106705316769469671017105492492790591028952328517689635970834056610378319778326504160451779231179448264248728705959064820016732547526923810897622174069232692934646688667178031403431586919258919682366958248952326598246626448488053163154156695492240571043219759981241572034896686753395929088823533955269646589435411022467625736849441075916045505394713918442755116862837888160963832811579911696139247075301092276509967103020638916734186949516577434955230631894710201896647511127174562148863001980448046230301394758759432256929356678851588623801338129070639586893885469827561621895668445628845691342282584630753505282745567843795084467588191606926911265868863317555795089979230403379110033164086650562548962980239052762102923870079172185200001105020090349703242684740504682269772939611161080003979773592786141396397929473297968982478442430015031057814408560940940656813946140655169245736418752158931087264778120945202796414066733066965048967918335101335959575496691126949670747397399936766476513581731277751256437879026358502313287541367694085497213694761970895671690403808089750432319952560568720111583278532407618846118430800705634577873648216590022725897084002902018399682317825310940650206841440221735634669417974819988590251151621523173541722520668666510986172685500231803144681327889353622238340621161743455119420071363465362108181945627228270714126081495586764748804478347396566951277841842918500657461514798382743381856214854372969229757272705607147455766129060948005791918825068225199621758404395312680246500258158788270466530900815535434166613605706206688275996904455306712890651400286529350629672659717034045077150672850582618558832581820595302776344435461440063479163913179252138475215866120185307808444638073538533421880241643985764590140275878706746208401339036516057871883229654297990534206846826991106195900561080568061889499456351988841817755506854226689889342382193053987770872060896891735763018997840158131782002940276991600543151054881869836084424825772436157373272639620058314094646435232695766382347479449949932863445275827007437368073343401843108778671840903797820887179671113402061422501270059652937553441246098757868820965616740662875709636385550605288420223834385255125221348659765830292702114518997147421222751075611769194553713117523866422204199069019128474762913348907430583540349217421463507270309686049674716271230586670482622897215507693481617170472155087821088615085090011388582300810968961281071110088695261143976979865813070429141097612939194161445934527235328177782791459322091378204301316005240453425562507558732258841882639425666199304052481945055665307309222642036682528546220314209710059539030406478868851295780420318683779063503244912407271567275164400561689729842803235301221356631270645460618516642968422165507855204074010864352568403895087548618199392565379219481078657043156981455848614840184465002234587430389849161338878040718711843193248762597982206425295168186692988120412648047320487304782845877995682774342271826064893578317119150512503260770788356985078517773293933276310317160823954389640630172006166658788130402602173514339911085128672997933959549305278786059869367704466522078963937368109574555915664552987222116907559231388947288383709086907918960184684158428827522830588695653365955575039490674306905724439383921203978603519496548164812814760529997234369059911485574935231667459468159404781811382096488503042174319012317189826735512965948294462394167887358477172121996822897488622975309147811599451999746960476564979430472884266374734624994183780422533993688918759289804686599805695352158995947492367118598443798144833378133915587983693702344644604028118244878313302638553984504153812780641620317321278794703967867611222841847789086050205472155655101268813466121260802761406979023824747688368345022138223578249366642944139255485011426251549731136601570464457316047770629965787369184759611248059432540430261981055339679852823029743798244606908179789038776214025578393116092978758075666222190027387449965612481687589409638025738843156747982754890328892467280635953110177961828883973353377923113832756128317675940604074230177166800552314265851680130344212228488134138300188706161910025492931157242605907089697776763241602116428393543380575410209058403335024899082345765362413301556952159552380606230283151863593247501911905456528049091496487452623462488742428220406572494030105237093066031214382532516933729902353370210820269183574543084483456805341228602512765525950262259851041333048922036888581687817970290928653951059109577393764529403893916027480209270181105255538575077434199665930250695638049463550168037534548815975520405133618358843122203946404930799792906256715227745116244687394530191879847227884519821291792383306122091684640022401053171742677848889722870036495870304395403219493096263102305446998040871991081028478565511721018335121558526104775057161641402671070746151167643402107601062771400955207960361728485484937483843976467974666518315548777639965080416345066136565493898080078095289219881967257804825083803638129879453861860004942203897977540472565472196013662683017338559743606037914719826112273623231864035617820885406427541352552839596932899368497210294712918286903619162460438093936190181131496958235557503304624984569286440958694654244270207025963912297283974159069923528949728984173152142340899378166042603386632661361975648350629310900195250513603558145075911967663798666232724853984569327024594346654423051718059905136952216093383628412130768495953553871902669730798481217105925603310334840821919365546601294791582857098090173597873661288626360300383856065790801234857898253517341392870596703913959190413960564027301490731461916317364209684071175423268188327245523374121788510308955104858483291385694152732261287754784720724567310056254612258467142278733724057788084039333423950456748906370110473374865287777405368225222546087281043485873503673223550724783827798882977702169436889594507010166588060924600597946767868850262286646714783672229083448429568341536928695790371286231386114817474018988226333762104788889223594363530605568369289638893546284832160870871894931963946323408330043250277478811044848963483785549036323273377226078666189263155709251668562649523767249038727087060624089239581372381183277958337761933534077097742968884248091754466553267580678825342291120526354819325783465546723828563383491371640250538663683381005657346165209005303284823792569210278227084040141709025398707808411932143444500775162870539485213116445029510802024319355551760636833622405824999831394926385755670595162087439044873954367783030652321662849867388061959969002274569527912092109690198054604698916556752888729062233827485768328994468975332005763197136281865777805819711204681025588241053288690078979580296429180671747624212255865290885842641208864129468397021087591433592692748655434979756286894348208599269126311027128709849432947599534382699184248165582287251789102877243579300730736983432221413497242536989273692493624907560269462399972979622085524006828596162339123932645231196783916954720905232365683326249860453514971429215746698109889405086227936146969704159823054267701566897198034089328479048179692017939811385958478241488001690430504548791173523385658926601443510795225636223278667447204930438633328829567226198053411304566868524225408956080944113444448965463316897034259643214766458939081240180999394330688140433389047676736337925087425879429012910123613943515590243877640974395238840649691748316188358504747820037316516726382159348186595834617473968408212041308746784442136187748338070827342648057426574189852025345192748798841032275677638450690717483640062615421373594740611489487576340166660242853056474972088504189038119205372140833061183190928097246246220713679648294033948907267882752798377681820701272489760428941867407572664801269098504313344217189908159189627829952751963910672379952907171774603981386384076364515767039662316057273117167616989291153820419779183490461501577803489096135352465959219423106464906480894260733918931579184384842455035084107851901143143674761564158583196696686346370266884069324719807348552742147707990876139684481803251842362150353373402784465995417800248772675231729932045879040801380599954004200214208016502424174319098832061748670272442363971542397825838201796581291551575464768826849809753423414472903681972927229202549693422305576225795840062610435401834608066718369764507310970317142007123289376830171014623076098742960486752844457010267655910254742871769988136424886805585368326039725022615492600318852365832203063672785634165529661007001341112682510137585773792366100025299795364695887740058025262740280821657105280242788148071579591166530858248671022543424287810765995900730850411568816337709316262932017515405957225779966993139678829491085499421425217056732692654512637556966234912830312877094839888958623375563785612905099926797133248821801261696275509443710714414359518961106458222160591516059989413358461829042617640169437897184336670723576638162698628142452603920408521458241454225481043970755013657958158168604045352534553930172377520013211415894333235525736916372114018216566114335901188170400590260493233883418842100700728750703544040860307974523916366933686379543572763347497817425245766967457729791940759046888484788944481186696283906295386748647525376471284939579033435768684679842124648874404882790446148653829214516088206367251596559181678707929707167066995755630142656426016288495667122064511117171119890193044980338966881708018937550882646161704893891704406563607236910744485602791933674827536510751975859058725204470122109420183360382877309494047730833729340003853602576281438737211742816477087005112666723082651649980896452659330937103277940685136108176166523444105308231211831466489511187770957236892415199281502734121199372278633278518088360111710551116878413438543186595398337570940915949137526554089305065623393519764156839115709184849986700967115894606334604332650825587727902877415918516643909896243010538807656981111233703262002529357343411279686541945754221292776762452054536732345127662709316220692030104681202263325938872347253444422362880981557459382530177620281297599844731748733272364213945107317263131740245746895140592513335648150717090087707946541715205393425068686025075688669205360509958347520510524436592228978785998221073370267742479684414409048165217987539314370332433720880442058823077730890924714608963137102391836244849991940041434060668647744858804772739461926054391747817248795435661978844624007966597895374228487568093820994402047698562800201891986503571531046819729053491555704750956777628394256621620492353956150300226557052195948744207055011082994783110794971087982898044537056744471627666381686246877658669154899317832982731018292948441196495472019564498326130332653215155071998057654619070239219060102394749836727808473231255299032875262239230336366011509723541601469586917505046777280357752921443217671919544235856324746851378898657786062743401908969389597535258671201254445013661893961597376312657605943952509262769037497648406446425884218725389790970610487013783805758276325874918068634638888899841683001377391340039861059189773446672289902196696755918473704740876818099357295850252038281427341031577432819207060530721473770974526782692249913490710799726599741690143207309236398065863419531159141837761974847979994859279524960178207672549564350592876457751372079373021666282041132731974935544532175463373824184646234978270084321220468940863690273937175275647629961387880728006073760788831865169531721108268437532727698626456524378234980752203348980510104811416981853084606165762125859497982540847468787459842879526170014976545340836953350134840098892253878258586286692784663163824276263817132623738327986284793315573877702652405254243030416695247986692493661199800707093650703877002593988827821039236162339473052133415508889076581957624311605866053552374347071482684092929432429694291748291090583794633306304608060690631138364621265403434301611713244260024596882992613269511134153621005838315247776140551140853308407468864143908288106298646261359110789863344299563539508269685308772512506635046750447233864136395210340625505677050482170265576976110111757057101542108625118208131545551935810065808837031767467709726367223727869892985870085342444507003143830749638596861831462989168082571532872206084052394525783087671172929857426435058956561693797059379082271407197713535048124684955014414807750578807894518293859026810375422827855671848679591940954910428958346857802055565981654172721928365285802213345658109182197802745972787908335723018953123228300617739414455103039786871470932467031038307873869141008096715632828414211652148414297994876959635974378765781980092201756582429844938026294252022191722193423133632366153144768978112316206394468387052407281606366475800892350573230286684472519326955669945276844016216982664181003669439750500347162542453457860920194010157117600240297880341124038605298985454753236816671708947287978468887802717610387112484361605715161571503165061923816633150615284692719476755589071534500652687214268495325064608689176925954314619662658721789018138885568986114352421577986263014225211005173599861446341513147904558592689875866113941306715526053566307565645348002695936885196157555978928781689347135467204871716296948623512321885727077014147251905220654130411881366876447133872939782219028307033624699413774192855740742118499686751333436676564299480137647554832432711685376006098137172410753640859095487442647392443653392129253561869030290952259505011944120931634676040946516589826541386601251156013601447382104083435793916159583908802820589829024667099165030316766272051611444182368299588305141380732016167827689852601844211790141381572842201546255455861825104578673583671193547015850780361637276673068769456045131261185371301217743561613887260791940987852734262897190914407823371981843586055093458921212874143558019861339234777871997737921726630844108624177878267276424677871351290515744045780883946068125159818027095532697914394103997999967331923379221363683424040362061658261296425471718536696459567427863108882084344051999164313728875476480309710673549359541144050103563862752512538275845622025558226193589478439610368916814810251634420839830270035336942474439009180609973017677425345294292420346499898162163929208272918067393186544203705963486922983887130022971238355713816146013304461427645236579548761201631357892501460307259613940568170967603351564679702666934739445805911052333805792138619463861266983316467085765852667740903016521919565901286259065841893602698130735181442170747267344763375883039567484363328605816404199616513675731923642615603428113300091088371164817834649175937792682184852290240062635277797389044797917795250335638129419275528213629648391782252172322826496962863288637482995732983349069777335927506262805040635542258476408293411533295982738565846776416983397945956345178893748693888978042406981094105848837310354495759758538155299371181129804997799187267787073772796016640774964533499049276682378085042307293502153242497880063956228828627260044352540832027668427148144605144984735432172749642421833761533559050601317136550831219860060673827406418863668390842967195167428172267671378613966918754291086271531577587013502596289967262064362717263725639599959109192688154265304111686424977493802828426173860324005416994512605139491736601774663391384773953068145836767024853888135235419539335547876968948327710039099200557629853028948331600745873579956141960133390887715760153761766142969129426167538213995707612040865454838708370186130577524716198389176487487759702203270276183605610901243449595477324995163159484991803590978626337358448159386844577571773347459282257345143226317137298372240684244458015483550870327016734496375033598897801723408647274969142128446230964421796700772303609729095379684381534478238135979200602611420339114533115879084357160682529429440027086643370971276855531545727948472565896780871843319558117309567670336715092882400570968057433293288647161932222763859068852291982628829954314351838576049977392790815294768002025908547718798567552740213639746546895006749849540755653860624482295622821098071099237417491386422400597009633328299533229946596446367354572664364610856084511290305835067146688731785700261702096633985036228565479634502347747908956645809356274827418246504569404786000225301625719629534166414518380209266009762024148106200449916895742147002004740658373929540528531637743957961262810506156565604188944296346900189526957675541821547581449495078553775211760787528794312537424883542211134665643707524295554927472992879426265370665750487372565276605552623765190057963582220954637691456156205081359374780235278081884261568615319134200741214443563183147732071540740244658802181262991096113000368323631467414919195144178271274607906940966776285501446762011577030977235598011323668049815871896686290715206115833521797421780258412290619935684712758387297876204913143463543480939706948612252488811466269344374017611082628338670615417075613144099586915847668837236309268775481576362516322143471707630354500604323224857691232042401752714475077714837334221568122556075111120213121208703854918734918602470667628685840123517912137276238622660468621138935882343927087811932997662501205273089557327030182454299848401023869571453438020490787180895374705502864337491451081570305670053734556510032964713480875475113821625826070813380713941678163269923877515939943068008578898157496202701012037184559768605549276309002973700573805452564259180740553358878454333269159961235770931487033608874430277645532157190761759725640589332583217950037371340459820234684853711966123132156547893426374543275140556818618945875864804474147605533993316655384037182998573390718218189546298619842069763103502234439885746119079003004045350677227646131425923934972846406934530862654741419716636139910497589056184820571404582693143760526300092357542699282514784607284393826910883278957160806920417577464671990159599981357529236814798287208618012104242631004098979601223904028294369761447929237426578691507779465078218415681102584186569101314942879200197969519210061578778923750206514901822288265889709747009008182747252138541515842418954481861241673872418773882156303811148674402882823630603556130982923480598779610988332744420759816105265593219966942864127928334494662596446601324433948675874439349445784486085379290112511123752453785461151097189626599171679055344534756327097703821349308032048498852367664399648550059552910846070635708450009480208957005884812277690715635245189050289436603321385389181921716433124599764919345726392148241584638633885777360008730052404058763900137885585492243765226828671572761636413539495636496036904302064590740131398112673208535691945926791834379236364707505715046181706480296755176675560530202264213313692483854998335977197872484236924545606881307245364155192925363727845850576384763070627458311100332784744978344405204157390390653468413909577249752924491422268258832317567291618792348221925757659624982801570239125221027751821512729162762745189790692933008771698659653570748185020540605339971587382153784053225326222111235306827386252295091270679706616969651190047227756599529978350374265434061875631094806231532247607889182244012437025529741581568555287179250378255592822597727665671435965820103850885650951558973965958112086217674956163336442439119207206018281109144391425311490085147711829214386788847396835680485252254891314462458832219601858318237713654536380114894108930793916296833081891640391143420798632397100363231250903725552987328518749921864315558588062467810375453917794885095284096006384857929870781659583676184036760799893843830701154902223969810002551028548945102599970352624257246321995048809017407550273610057001213100591369680835712842923169936306100293365583236151833065442811630888919153774979371664437785010328521224486224865027432216931656214943071986199415592480712343173106862437565295362134443695111536581695201476292381964580829929529536589169630807944376747645089696678555165993232550128522050388609761496327365544551806001628676221880212457453768625714753668646714756010905407460552881230364244491293867496746046514729764452969081722265979568272144322932457234823140696734110561790456566856257317302989275464850192382483637928050340972323628586141830520892977447503983248314903099296203641765352849161600079232792501223737809132820801909858939915506239559469931817385569145291483549953540757099230654978544032523819610581346280672774124370299269510532589422961100629201191738430032909811248855910707680499495699943136062764505283464933907150479002832654974451280570223226869892082691988753517373341908594112638259836472111348103061072607794325984540230726146672396220184638231620665559049972854117350095542132802710634855593755462215392753201782714145217398871588235452733986274614527881520219287355941711636342787383814449227969419270454176487523569497452019809297561472280848222854125791060738142336846765452773710019592392373565134031954243918512322329104468472926220211642541738139799665670341801004767488197659298051178044326349940259349239549867840443683608381855824891734342634770911209601502978566245155197384938313039107759305317946592854040165541565438980642658748842505638998723839714100071513478095906102233068018224006780474551221536075574424275449665140980731067397991445746992687697563399982798681361319383971290113408398271071357480194163706644045297528862163792875123471142663623054497015830839006705140845417185853705371509427787205058043230537037144283038464625865064564698615780437295411672731150797307993287712680754537501949213775289573240073363104758802938762402079998475741922300194691989796614287739643394059330651804288098787719853549524805567929949769228619286142545258284589586349903541944277237574564355031402641486590669409662141076590468814956786920122207442936991044069455688259757391799115799877685606483424820596078739312797746452418981108874672978430676087831620440171840684047451989522089592134069953024792588124359558956789085313716582953278786708145082754302504273291142238790899254922523332738017393736177474835490589090910498453511821470398485013124001109398371161945370024229713500995739050693774049743336465675751280690933175011479885232189034977908965362804362726050578100416977061173259728121903818427938092447660265067789736768449548033960636919954026323255259465726497989047967889849640693425041202764111319726778289266973801624781547330311569465796414079297774207464173873854158588970672502944599048144025465444175791448394601327667194287581051386520542093869513143424068210858485245025111184515260989932198868918940935949377935198739162884062085013406838065473142738970616653589174777389482873256511510826862715727521411128350811298364037740278129012990013271478007433380438725655040708552985369181662737134024811158142860877986048674890821524462908023569823165760946199435570204076717327344141025139848269020412228159754534982579508313148357814789590560813135957284087632599408185664193265751075579532613859206850348666925988204213628466815017259586556663872569567277788735879485399211629514343767345545025245674560779829921995428363096170356629013096324561024789744668939726523286431508581470123431593093355290746688753957217295869801126368120705577712892139469741261806754329061289331911161887095693971849897632278699696320173736069376603729866992338616403661705893241778343456860052369443487823945671381773842428891814155012893853708925086405594783206304659740968727732283362037928541330115417544208515839203618503406781303528608071958503761171832147583228336064077206605429233231638968713207304600143620996686381247330393679949164774584871055014886048606937536607452657974912052790283147390020684056918831426240465003737601438158885358135752488115007163039904054708197448359564064257514830176110584423277740625658581162091626208406116402910965944451642453684711780921267959112485469730952094797491968534981405142749928587307597772604774762634731585490605174843874959564833943929466806229229437906009267741259111269653779145161037701600685293112855915393853022964652363159254049883194231364312276637777145725473893337708079206599089152627766025059984886617281751207307237830561411390146560392248126260436835410089293921033531355414766458084130364519438471158074494009470577889769642269128874222112309253321767713282775953772807186568501580417134502011077428029344039088091656762584290542003186330912360763592736283647244573505603469698648969934024012052201334855746484197072862002751746037626847657424643831092859753319938491130242717959987046404136330818295443656283406747776711824668368600922146663868148042884249766511818537670368936967509175861587478521600747747924624783264517060570835111623139808918661185268369978865723927676785137621457676985816545484804518810252326390301693720047806606014115816464057676971639860381325776149525811837208314670964816987167437413331036658961012668125623643150195005643497073395671506759279816477741644041470308399727339319335616190662628071136909442182369055169473319471570881605934282824293373217127278557162188993763310967585400255076588410977443080923409648584029814339897392355321431858657310087560689029599362732569747055690018590230630294971383310461472389567328194261852963886587847615135684524853812959787390617456712597502996268073584698944676474309765506755300601662106077309562468416287337237532103145821925800630106341043057965338425319690831135035466549176650218242395808726373211159697509924587291170622286860833984640388588644576566741906249879284561058199626162448159989593760178295832010562261972971041980631334542871212733915427218316607095305013775495833771218423484430088305218467825143872936580598290438603014917703794757231225160656545230314395711013622263254459445190788872089173426297637959627798593071559866891131264345413256730827921279696547251766246558078554238855730534370052784237251453734690843784817910715071447611600768941259657149438161684684177653539777073015298318276184926359062362459094973748251121050429927085348402502957251870027038612631556512778289643754384659856671282834418001716238962438757256177235752005382363322887379241185240102666255806974776811750943269005603352548917949397507589820256752476343447680008857756354685367874688991841574098074755986631766058306833119936474347703393944230815037533984938026073563053993496187970441878026881199416890984641925129708319108521175797569010113626805240341438985046941470905653410482488880384720930503428824546224564935237647063796100584617652019973241482513182595966221786881069591406659544619297614390867846956500278287676526867723071638276370449401361325591621427461144719935202501420013803623367846011477900847733021838806678821568169375633878806748819679210956702021662391943614607486069960209799832130286938631440375317243834415870112619820330507465246605643841837971470952181071867715440334674076469407294577365051400135281791620592548473810781096573037248683025102983765173590227881988391836748669564755399580240102384165963296456790285678148472045047071573755061400594280859607865412640065501332462885533116869159233657733656877119681136293447249076997808702547102205702419799291477588987504167519464215902831994108952169975418153295435301009589558440829711139487557109061655440418522141310680157109048912218242010553422304048173012847857894074929191934204451378619375475163315539993974606580759229300600228313927689665021937212287429920042486645693110490766544549351723404673152892636751742450263744505718195599559034037490536561438026527003499108175950366236338202338879109441024811195391955900568280781671970075317734633566097199820299808683301117315904888344290401075764567287382764037368831859958504458747875440342528987362921228172212870970740497958643811234282930812069349153239201836779448143194829132317686951180619847287256997997180836452162422938818289980275018921368467436856073103914246022201395066586163718054599946340096132480056184154321769189663060004455262476631842592861599341526122594138985624773621839411347602946730360433255600167474792749794397080368985025983932182434215348635609517315346290120314413259944741513847935889310963705110144363938758039230283523590801651144822119304426759906868220038712146158096962609447931061436015614493834508949570772013516256235996717336044371387968538272283002976809425119340474976465469200940599192567599751714323504484984666667596215701203509820193493413686426047275118286771385129831208130858528095088518721164597603239370421489867228004739809450280361027683973721441971578705020407132357899617027198394607207907904384751080634889043628201681147045850313001858764756536095779920635645035024348306618458882739169497639384519807137176223041592120411968496980754059842835660737692070305385888950205338367792592930754355865296588757740981105425687579201618596250055976234142884741567369405617218291082991333789532393392667754027198866839022727542375673910990825043576055001404599047818873270981273148978933737812568405242004227152800694178840560884767725373831559141793556530970432489526188189076231003675728408295511921697424973827770979337168278245893748461004721475177343723503748491667018759224706986942670802383566255537682498828468828976686048620969416661985633597523467599262609676144427753670202593908120811852652434771920494794790774717359779187193318248815919063707818373584992676980194401886663720683841468202334050895845828551223385403133056593577974802446153663772211049162306816470966167874010822330450801963432439223554157140940117516533688359281008093017426880708531790592706879055853585770361273731591580658099855320724991968974317344826514485498578147135548813021189667303519616374541538181913593872640200656155015254032249844101016326437115218080851877330229978953814042300974660718226556357659821196514202697214515718077924704066304356898006177273543644145963518700354790435313301079952623779413735264373603675834191742023670579946300019897621295888271103880833390926198179021560363590320718353462840516185123891435550360446192160778272605701855386027306779846955663830045167082794969380511500043879842335623999696378680470563156557187871732501943303754031845679859958954188278982238370627339001713328434445512136419912093141489053839524710097259325386118624255671703402931078699018562886018469036318672192762272000175106529487042204253021014812714381584151609521597727357467490920009202053892495404531543093576725696509366770561341106615155632010320623364682440889930077564034108676504260964960803602676540468474007603922257959494364006567216168120305688994352934534749289986492026495084608581367926255370256057885294326716813504859268179655575765500850768110543377546504431673465392455341567411670993564356914182879698808137044048232643496618836002033584025236954047854482580839667261013088196540581540097583662915587234531317316643096902378733722622714283793233923645544609335623844418662692431000707810171087215350133474342034931798138101030613088165753609684350084728705380871402440879270978387877359944942473178552346283741974954323244169022629507510437242437377215775902822084752690352216073592037201582901997794501457660039393738468167490066957082528575492316161090828950921271546772101845724845249778390681536785165950498709086548861455605402165879119806227352949075478672499187166028844799250550681506477789819567792395884629156175184047368274641529220826213089731311748611883115534707097696725973713322365062263337374396431180108055882604475298083629650419478500289204807744934523361762905426418284898359684851699292639787771913572857086686023349940539150158866616428896055323291374048749255860672564451133016802979077239467949829453383974785178615512758999350253221162701582723812490287248004633657650557898438089542617151860991093642207445304074741117906308157317595670623178069007612662258393564693345170517230241864091769417419838836299243657637646342437740195349042968262458118126687730783058985001034740551350736804545466017405159860816708149603149990884744164769437656256052553642697962046377122135938795481330047810674996041449105485868069853273622634107525950070385682125376688014924491520875674332690715305533923917324297075439040911291644430410655632537614310038505632445544108837766359923212388666561774213941101680094625449037664869880397215160190261105174256234545118984533069475772030323176456932926504299276172506987260003018266572875719682366584127760762450016476294019729860820672068766625710235847367161520891978859514781838243441376022630360729644436376383212587035889454729567764609907012007389496678287206363208484044077981640475304388830501496610209827856283619265757568633995941203863999598995249714217811897671635871607832582807277080704095042133716343437497318037234249313254318657362562000383744883253171997095404483050953086433642515465134221476171932695022135801608126177991230533773045443369341196277539711137248494875958118409889597492553847150192182273982245873929838172845481274146124273759752802313806678482388193302656549067946420002684151713518969364665677507725605542612801374392621326340967388730290024643785018246465141189398609732008802993798841385642412173944410651425014701528496194476236496236246070944055584389332836507460452527805696465045354359263651629571699788174184121080990528317748612375282563002639796355880270512219974687537830845717485484536215325791749454031682567380527585583031939687484185998756609935616414840904100365458983111481918193423274000467558882235630824973165898426404415774628093145817671999183172558694917192709086030792139783543530059682863518958018049328663594146643284036599320725019800535732866154083086281904650693610444824485150425420486616926720385813129825392605181068273571352394917466332261666416473420217524738028667167768743412013523216072017567260941157254086230828059410598355413944629911771832223266952460520123695928506251945933036530613160301719406116820546108125885011800617617428873216744319073050072378405416727703523638792577279920824493726503723820221615984283494474736351529505444260835931831790720061541991066536836290700525551711799993978258076546804842438770202088919364571899330846554062963455222605527211241992217146782706276183105507100311899639938901490375148865895337692493424061687213482200954096492977015298393594039654498209883027400240781286098842242004948879093325070318305828239858155842549199880867505209774926554774549438585356380565100701119427125195531462699032346384974162295640148444768408890090188144598725376070136801222288175816684174239316628775976658761377424646314906525366157806870098615384196102381300894573127484517074354443738119797862783278108878724271625675144565519130888231858364164947515485425023122711221234843554900015932699285959199964559321579195829256826523627895768669802136456765838841513432404871509458932480003403570204397754052959952058355127536814499327431793343861020241636043219446690005058703961803215974315007319365905976470756836718995614907763091120954237975351283667084320469708943476111896595354385630846130139696675542210439839192918743796519780306340556322478146449093950499816128309726994153156144468637486957559600063935401893277523003293692799273985424103212370383944418256617589477689455806698857367756692590646364709273212230828397908996117849262400710132769509976551066953534648490770567306192930131058764148228895505874004361895358745863159138340558245762741762982124435085667747788546283218806977129190149040495959123790668859120068338757784447178567182200628310648970441242849217769898190690021233401926955205592760509419471997922451795889542317497689513616169550637637867994923251496327000343529731977208966434925962282582819108012743777589080552228980998663658220297232544386854368719876032977728513212431115353023171613229749354233150828988309242198578785149133717295815986156524269935490740502572583628005275134426249054792938747081473072941007614098269400809585033367893372007777084022352766659141276233871213642414912680692901181173480046590890115189556134386019790294626994115717323991726538012001367556066370891189199861782416388342386819382131827598902815865785151365265091262615040148043950429235304396238317286599445227147584811428647205427161986784556523704868241718213336870682276249462297645632303111815469203092793374484566814188091833719080666380539252922703897961895923333092463482068078377628629230499191442501024207297892940495576326815177489876112453965891949052469884406846984225227235058228831461650605820136170390043820459776146734115863348730335185579715397239879347680047982205179499859402192334897810553840752957946924107388845958367827357628300023394988521740991965424140430895814440468922486434609845176122025621642325671761429136013276457446762780652330794137598831922831824262084977751933586149510348357163882387652169042095692516792573360174924915826371165709542932444700785836039862725624691800413785543275653731016650817445127091351257532861401826923908792132282432117266331617418175929034042048078692555497891019180775305368264804240157232643128712725255483076500594025948447116604820408088580143816986999545587937833130893555020354978702453005615374823973370983013441780475714899988031877896526512185352459816180852766796883431121583492549335732697765519030037419278385327109827005876069091444680906014626086636781976540003492156834233544224460744623834783866180452160889919378347000847343765967214645534975834973721050767240730910028637732956575640534616064234420145816947839802896506659935594248131338174622851635723735817154496528083343230149195834648462210165685741490225258065786352560588711046055779631886197251765268843110576174183157361591596016655679526313096566694556209513415522887815847001502251594031972540256012438684184925392802590736429755258091372537390227569912227167906454410646445821779349441189177463574595294148008656700483129697875682213593592188136389759173334556070525796187894968608261914092418305774427082711557066240286927408900519666392476227965270450038515093166525484477924117044367994057146199800976615033218821477350973359241036962511909269399903768281434952255731803291313203467195036747098219419254796245386344342663178526979276457485276061337187253983078457627776757362040907146162533927600331414993225113935723892384943480691231474725268405742829058322786846281200939625529782282663059276991804524051609444337316640184747049427891295702428285488515241794586509008141765414417327147963236044514688204683252605164657923297961050701546646440864678526127154536304243192009648374727046690453447034915530292738318621665036929803392207876284608605503692887998040364052767289736191541160052356859648901009490029886150886278071219292242436651788184585871911329425617664573835017601855790735007788702143747299225471169278378037719072753007498662612635581537495431458648134155536246432743596921414770009963386730971386636633444471029905711453428099647726445255905215685266766131538361094687402349849049908928369244877200492546349911945260829683330208832581176918659303413781772935589180680334792350942391693477286034454777524781924566840902852006310473610834622522760873899994490810362073199219205285095283397178367592424434934429193018276543641942594654484405703708234237486723903267311680248699382619058453564068085777995775801224076938246869439527937816573389025368796826112166427691732095305336973910639865916796776152322756322167387329049939424500407127083947521435315043174854207519353465200819157076606374360499633609744262538957570099291363841631757876799420932824596696306480600336665544103401741096882857345547095603626190507698719561246816727997901951343135982307526606778385893898267872916580879940603414785110235321585827306872551586004176823521312652920607608448764391042514974766311097997812003457046351923459472345075243771100690416049619522302900880001181221422411333240699277896621510107643935569258062868242840894333795143571989345336786655536220966349217922511794330847776220443179616487930290424521355414269586044490110500507011593609512584779543148083676501423130282272433183175942889724002283138327885830238991713152218373923366135794004231946928552809090599000005400207929808616347406425657454355020664274294069938797738266439349833656127435219755132795577959122916492397938163930614636804470134061655548540717923148792045464461684640946337533961390720400794551211026162887769772514836843804583299959163391118424617739699348051727379716920502697736951038179120921519295663861044358841744525996193183182888390855076161458582743990361065554837380895606924749604861596416910505901245054720459322032542678599897786738541262465817494134392272117652044169711258223236481980071450406870231224232330074433299516269433356285479209865009934784277242325976314991521163909374516118271012743665375614134173222872758652308862458029444139242375044794498103126449404457510541855598156963988438122124138514979981300304611720795270619388370211628693996124998391302408254576614420886689277432459506560184985828082542396592752166710276783541922594742558417787162937937295574354923000118580833369591677392808027935276641084341469667588698904475066310384259109067481916458080583576399499980516728490503740909082076887857679116155105887600402099325947508008499221809220048111948396988342058066148917136089552128036833435625330807595064730362353027133041961347709354234293582204193658200683363849143722762028796221051998191694849270302018573211104349136930180172710089900468006131995100306727854226191607599650108748522430020895948897257184528779747850145312705891649568465183966493600052825049630634200473529055222508562839535039053768943247484305568228765844425519465283272967823002355544843638610964941381724663311812033209358685441669855401460826817262383330599381689723096713130734678001540022455347673843692365752069568480961799683822026897086507303528003906353648369061524903778458594230833124497864545348272822638792359217949839927355195146040106936214795411171172649532602912167575953096777378342144239501243363657855309089227490190208578349691392255368756007148341862012774651501071863800644883095125853865585883963594966338057085858999173671590431658650297985934823323377078477952767020076320229116710792044134050297580959799083930295961473239341432836790719917383090201778848269362361395017007411515618609517163451314527323800760726946925953142828227624753437195606542420744338352606723496939621297454627903549528577504329759762837664450178591606439293753818067089375445188987584019963661692441447983969429831107377604412713241136541399112484380024043391852628829127588177537164752603284609126063077518741103400039674304597485210243890375446382307606265268845506902139182604745842482626707045046168435940743023570318200347960262523008619544795232273036605557814205871343496080929232241105535382068949825337760835784091632054887510513380477581463108005999867924185549632901048161540011683300503456163456863063810275205415310186406325032884194101716389978590668260098461284816992576896041592169795607292173551385411764075046185023214785692722529716803482786730164121245581879874928384608006558803694497260040675261607849650683949534732536842153709826528046785979119740476788048280320583352838599843110883945447914319080168438879978556471622655925213434748743020485412151140242617341861257501223255480518837760551683888410544936165347460750933428522605816491709157024694841337525822061511752814227677797218784944659402139452813284640615747785111334139070029518826078564565072085219173559875207768077696687188893305307921029452805296577747176836085823043570833636501096647041395699441688950532767394816790654876086659254253227513754460292505000284789798794655870569034218487456780113445097189454293028885625311085855034900313514748328925629150416986970867617065243834486476010850518769563111359390668289557249773402518386475135309297282151059793641938849468892144109841637269628874348605922978201616697122816675721733967026290823881523816164114958802083224644196380663941069454708830951510439193823351898799499222860519360437192027449522350368777419027365811020160563380716858565738038454920737466408162430513354910848610165459523461929091368296566260806464935196785246394376814028032865164002685067777399818266118466811581403137614978056950647144045227001028093386056213742797645108998070971853220955843708657628717024894430015540098640528270768250818511690548831016625338122051170141820970960907510467282522254676092655019018801755281136349462428728663042303092568937580342319983948124638740327721840899179102314596773119200629525324058476809220516686371264501321520661326192471437725212845055583541901092685993104186980739052457335650688430707836064919250951968000813375848983665739016557862691397488406773796796026076071759664944704297919591638710258772809846174192187606137245645057246966743124245405510521615935769158331431970444253162888742536929584360685163926056109921932263311720800252585041662258720408307099639000145498384994550617352708561826682562174155118022483954699860971689192852677813505452635764903308663512349470789822996260630206142424774517500933450215761259014905028759299850176608949009447105078587726614443923546204437882253545499932093298845036811960995117721904698315155145534546004627457572541708687607832598453122828898581552081273531854977248507230470727212269511582114965269178960028150996728304905862073269110252443677120024531724233061456868453560492746654742050461296704896930511395370439790527809047820337066830988138804549186055872031034963473023471035904019148487976422011971356909630431748443429861171674572517925586839733390814262532038433498711055551908049640446439689118587890098573236927641483981011144405806139796884551594893669650247285171908112816105169005360938535051481254400220615143089328481840214556642730132575098257127459205513739608635570907073861877261806103758100434606329892136836025189469846856016116444519762091741580086351216136221202356790824021118545618258296987980316047591508470277251132249016595255194558912754493661108335285248851357492572959503984639071794144672755031129751181238134161949755205549181456747442603245199659646359663846085038378597693470606849753925968099103446827614278740648566781621650174034594912748079971991201265255883835486929228003425432617016346355334343913274779825199227905085723535497436359829910743582133564923171122365657576981495549171092109916004275881072255236271460879009661251241520882171915101480900826570224376509198788355045701783058874638278948097901936385583832101731937994512165720500645387884006478574955123163189359235989735768582632556133495423425510161863638098986132161628604957328110438803457447035134626830164659789195990300905273789301814621063921027601531701859580599766945328477197448622465760172452981813399166889514485945686084714845086606198293403279295304347222547257366926862437945062022387580641351632871777365148099483411215042415065394397424989478182886481615915549980331157941291486869884561421657420008661393528509311257380169800589297343936370098824271809347077693703347862252605821583010469179103968596089563630806225589829890276904769087411206617480484514871546713155815365499655617491853694584315574449759443392275043776428766423756747115182527396541312703025423882876629516127803842050948994524493648897604591871284311189067268670463192911503587321998181035837202048035750424271649807031779710791049340410450924139338480313799015128546162626138716326018868495349283501261530099149419305822776152964788368908139525469440666916267512152970023926014839325410773240855561821795958472024982596797974335069767301117667080712704301758242826660964012891117350078650459698082974373398816617536547157441131103551848474063995386798681013477128858969004738820598265280340872118612233467584679237317957275193659435028371254356673238275825723957997001855722074358832852260463168138591334480369758357157592637575627585795903018371262630602144232403650327117580708137379565856736883473275718674098546297978261011575901730947807579451671947170272950744231809428464210900583658525944176348937779920899868052484466635812580731887072594453632345232537066551073851022172995659198482086859451939735410054828998772921607931291606387256030930036571710694973179102262162724042753827704415685833212435699476267043108783266091054069814714937968677453125242909218687618654250976034430679031692455746156695984152995904159432890142889124680116929926364148733398179035611598404706334033536704503359787160633036064931838014668840534753294370673496551812030386602946251902250986063298633542981580854306444795237531192059116083901038743272101654284167472769134492661133096823880972844873966970611932293345300262297327103218532435063884823071109965995771557397301564823719859605603322918048487335838539668191713124235406719724871192805419918029199145730540194165351375438856279533225181218436227412936002547564507398276242568318300741550061291273055254156907948471625654213166454045492947676180166023278404409412282376573926948931452507395268522713499163027895931320241853149976985948180952429492311452210826219720361574210414201943334852729515487531041650242136260910190872651640853474562538204276325280969983846021721487443899097109129494728574702019841738673022984493866973170354717420393225350400247029559754912025237965926686139185545718591643305402324970863237413366357509551661874647082638034268218857248322577435227102133169760950385416353824992723884503411718352210048517331158258625798016586731369667555844145032120408739495338252006471248170153957359276415430408406441790994773324648974558197596806529850212249921076525258326888222007160737337670087976571946015989454099097083192240283602132013708894324696501073364994728897737467324808568354289408980794576553834630194717441506028871074673160845467787728885616083641035449593048856396387330581315087919145906038947281482615666729904010816430057726442137694663398572219123909266793406014777319031275229514060291425002622701069007244008289741151560668452326901421100998660639083957678435909567952211165843640484351431420614620746041780503888325803501015078180967982885532066038327477374411176033057453184946713667049829309657092760685786282137294948726876803205372831227609756987784953480300556155800541419607462573545387824536280862221927126494690421198759909769861873189811340144859902533869731642755532746453152083789591788627139906393600108368439926164426193098700608613921456915846719978299277771120470958345679670616782428392898844436109089832516840850710633573348580628540042631477628792296210911109551960600013625631961859428866764764138434531767905853025567822037322312431111726314683134764621578300612334191837010996544033788223845729107667611579388053462385092815790649598380736511741488908854518440212001362665940324903019094555829903817338865094581923286126227802989563671453739558507950732803433778921214212187969552388265566035132438133023085936036379030243008263361486125525701378001598132341518627587402065166217977351387374590997437823824251568779103579605429580354372848237661307542863711118615059601473801644418885568895953536513635980247341004492130694065296249689027514404693015776514021206963818371265053916101383144648528753894071278223636109257881683265025740066942039570609237872646712627798227166405817255210240969129000017790125475579178173388983552676560838803924078128639189220880304917383481866594039743603947682345770630381124136195486091611360634982460179344001149791236896873053122903948994221378353768335226874780664026150881999300155036033162696034161855960464486761263914238920836817080770984111366536271559608160136808016740792008577544512161342329591534146902413686418952100949636073849577233010973232369232561862970053935567210384118491057529804340174584784631211693480902224315538004214005653568029598725674910703559206253193028467558714653779044092957027698175768717750412850819957803554912671627031572984650620020420160791363793135671108963416563922084547679383018616596660142468574057173428964297736306272190487391393435469787529910289204496359052876144606490739919658078755587062161223625145481998006592592419188444795689336915664374102418992140753389839847326972365038614875152513394141413533118715150948862866751646180234088245415304456445865264851905211532276851694521279326752211143849618235869772023530386706212247784871709417010227283610731234965784207049126450275346788666527285349262411206001972943897546438589064106006333275043798698344742632375530514676167736829233001009795844250288414771170432091841581689123206726695766036798424313954786374584250717876352807298833326364901729658825272400429304756900571865774188774313628836843359156302001540761527610796328856297921844335181039171708796212546388681106135805001192559307399202542833200904031969273916829357885706648720763774437013614871174638562597822899631915347018762358319633164112469955093720776483844851170075237525048671733269373182637880966960057460997757191961885042809203425604665018901287082811384486379093335921072982029782159371075999775504962829532413321809898162891804624568515232221013965155764233651245599385937901551687118226571983643627297438668265666373738714674141764692198905479183490992398059779107500740517088497754449225851486896462254878183186452620239504141252549001450795415403974493563996963755093965981649138521186121753709833033577402229774758186577881444802376059573529708499360549973500615199367243043437661027618534522353001693692499446939073354966038803534515050854612696069949003389401699241621848138238442722665865567467012627672064323390387291667806949172687017970959160463197675142938968583683900721952876685440640869723042050274857992964420960215285850186247413166537510064251567213178899215245322923564536613950943417093753884700720647689078770720385903811520269764804969854892281118859412522953333919463264407045540114160301993725942610778006076604716901582760968075079947517170490703036114619777399850459223031093318947604256716351353380224922590467658142239336124111778352128639221300572558043646147435529007440132397778818985865525851037850380777603910663120156595015395092917380066074141193442343900593709425961123854438250366951547021887463103147043940230476508801350081901643660073495018559240089635614967610449512998086416766035557322679078207821693206822628902108464745966323191448633266498733673628289303829528960958287023128484111205978669819901785173266597947575548692158191032476213718008542801698185972787645754134033052551677612843528758138282371081928393850942319578953586177751008700210134834505751792591887021064554804953875404077327503005708649599463320829216548566026911998264666064158789120258280182752553719502960375847293968179353170719449023318391396813772918018074397491342784678572129029359776489797636322474582161102744486295952011858061587279095658308862970113144650187824475633349969944039910510153346084828389884596887235206633348562297993073669818311967190051458807785619055906655347579672710001078182102374195027308333719666406915231404817192393051956376231613962155353775417728909906313096077607177128340517563855118373412119559693815220233099809065758096555771533128841103246244879622746672797408798235442652433697530003459158449812937922910079805522700670863908147071943720909740772289878995724778499101797824561627937926682048845164507300111187230292619811379663316899301573771653159829029701236455593025190398715458741489812773103428727418077040848848287225893626217340339824340538362401948085423030465210510608424385398333242157210264250586052547179300003324078686835326109280563243223162889193707799890376444578395101305290786701759923122838054074818433061965548639973998989425827531168180681932687678223834098306251889787862159723858244811053928093430056790561538950705752946400313029363379990945683749855068757445093616928777402193605019983156830833845901318726747922425273176196861488348850350894740012181000367219955467558466256403919725053021882353661658754297600401182112513961539673575128194431520897710559484004324110014934565181269699011658063929105459498242250823818120851524344879472225305998225994214052942288208218912131596356430818837070220561040122176555307382042962423696279536579857861317731337728741869561287561266577040260671222171752013471747229023075113140786855969485453490613946617987218191563079038684055440515819573663624010775849071986738679844994100113124764189281251073408240091050381956040934192405338245259201701043077706359781244563957455995957327265260134234781111160271993547236454562485092066188949760674480013318344604220448179211588429234849837504360300795029885293544826473300697395499738976692892530381275467701022936310938997010818924040610059724726719243684082792043584843604692534058334229996204366659347335897091314736835436870258954307731920768165431317357164048612905211608565781166507509987619713977425021607245737485158285393205511144044854459008685262514849358817707511977842702260014128994988107302892830964880905358347612599365243137163756604894144369645459424068635154806849428995503434063864367139712676699440026213896897952364048392796252998544356259966957829916965473969561055602209479214511050209572569899057963726799503790701975592631670495590945260882129506231195632467309179453878044685671304882467809895540848727351521396065093040433865669938944064740401118927987871227990921911472228584350877004636970924180887354117740031938215835122169468259351690872978401725712251234720879673512650355667880454754276958158121421957924810621565014498812167661365489156748145347224662098469316813802157478330083855763373462726855962861796632053753636037759269657042961557641057823324771681956560134110283404816098869746131449705900628170107793092281021618748925852273281541301453221929433473177885318238971741769316480375629524386098473562623967878217524589431140414130840582600386551378350697032589750976932428484894781618158354868033378263398512489663769567895812775294589760466072734516073394125255957170008444683286300839300853208267669184295423451351403247213775431378315255208059618484413721867457963917756654273056920078649095444464019563083345092045339627662587561443624424417737413685427873209860403985340738103809200742884281341134623719150995294279733677834618282096643577065412434380365250322953927787373157544477823211770601626015776278617297116877198049793237028125538016988816094656219452327064784290577388648461844857507055836518973590810890141751321313453024145058399634099581597056830802134651884049875148705323668136904814342514667900805850127196060299277345770927947538271777994778137608976532604703074958642649741945448718012246034359832835819174027027570635340168908014202068473605926734945493486985834919724542144245910431155916606774711381715888439011191427392489474843158926772520245245681857587870450450924080505454754255276567223580771334408204999691224855325038044244280613240896196799608056783417586593870384535184481365390991610239881845457610550131976622240105835001400070635317549526346110332245461430192453349574956320543901452115847760199969413495300031835798194606584097269279705916625453834740291159629905503493751644390371969106692845270572927569833345298113262244825920030427073480775555706188846179560571312088411706959045457795955605449268840165829917986431724555005073222810036148517218654391447805050394084967166953781970789446775921656909566801351495770023883505232884694383778989262817855898778803754775140950000806781792531178952633376412037620063526805014828528077604421162090461783599671580358287895029145983651846286429352014583062235807196964072515981376393487203802722792311993751532725431516556501795168881416741843526933781031088150799000290350355729052876305489886850727945567658266461920914976954028043874388087870964360965562648262366961197418497887601426666835639875320616113400548848542188805310001270176530703092096553824709289030985108350144839869402753676003267461103077762998388084320694282131669080258629472538437552230600716040143258576617773677023835007887172440463042346789824108462820466718599002316258122664632902927111363584220226898400009106982850504489783685116671770290384832194629217525748732304370397854707302981639447845626715491904296946818671050571217750011469393784792671910976679964359637854936072196077155876456793364020515472555901542981520401194182219790256052204540716328547739363381424458885478064099971338622023099613866350080363079032024320685180838549805716113722709187040847070472156702843642191188705897117275819656506289396271798761631455464825354305217228185977866703251914851190081076498682213282696631785272922251983179044412240602684779854796369519309903613849267706291749483569196772171998665357726421553998184736655867235296737240681861063982356736614266933580035482904881095253022168917939371423991567031050983428352437744785575781611326136978319484232151682153535107480091445638438435044627394869603932471472991159294120787240681458491064466442694407127307523138512791611871750810849083237435840960577439327414672669869889208397399225265969848222242357168275103038330038960069315843844665361108573403420928726722132442751451761962184756601159228529603716654098714222239413973598106618006175882106335716914985243181275593014076345989078465527035072161761168138577093710907092588012234065314346453416674749370563530462408540121083214749940385742459911045380096492522629499724021144720129040193116866991499831776844605112214429235744446794821967223309667522113636526365958130405403928180641099540141198409030912495328592990503269919192274119358781842541943659005122832581784356434829976463105794887345037670511876511526192381852235153779807921483296950250682327349853225274875730628122746314251402080116235289500940072256519823011892260682998443359063384055117242684981903040892633234984392396448347366670719290904021837143586378007226039548941622507822848401845575675971361662601998042803791009734247405193492631772719610821921666093332922778645213289776760869424058531298563032644156877861900831934816300983296199247604715680532844604980209941830372669347081354555559330381981069522941212074921641514730074617741532528273815192665230612622917929269558571291431903386782071895019761132706279245246247365099431849600945554504829728494863848627564125347235563065640502761450848559616561123266598229323185680326383970680831247669440966756681183078087899621054757184727884963465513754002695219040366712352974146558862181261277990554618423962995684965224342498633326894621273008667170415397029236046680332681243718661385102539099728842002200622436593901652106079144220411766101820059813174226699807929481167003994423788437541658979097281809547340677379565148072029133100756077080977300712562585060265859178614038038941909782377479313254886999324401093961320269219401344467310392647893834481974262328735990277085954405461582147812278576233733745117925278323608744455100900147559410598474314319519407344861734010208277757082350691660564020255595787324656268576494531938673551696734091850669278875523349112531978634421146534588537702765166780653297823934264319354828114312488723875921535050018212111575052094568496323799382043681174987854653980930086896266477744453926467248557528885885565958360109499146942250199484324489423515218573637341142800655149691362649073006433325206138651653622975607379721811699372747585657879282744121119352431798603889148803582334257844656977620193397119020556924381821120410698265502001486740107944459977598351209380190360666525971229227759650672848987202458238913812718774622911007875595115138506862573218357365778968307139061785225727796112935586851649813170060839963501735415359164121317225630164561344785554815198958451730840627676469163608812999821892584421572524490184396412175877211243518326660364638180677595736422968562013023223869344731110869235629878530265713260757835433944369357152676273989324521394683130583220561642072752972093940060517400114735476921734305828272608106552312690615127542725971055852987577762397917061428911795078559098817280483231577235709592129745271228074878347754303451446591677683118360229962791888095771802011760181252337819818857261901702628818000862701280079516703257847112569809146406837245900900500456454797780250891006587855564945737189329384203197746452698320581549782898577057260074661319441608231340481417303315721633835555007526162036775382610452079550141842510411363904602078544165279479785895551817990457285300536005852965371058778808925453543336820132166031444262763715474830771028254327908364811240767925290936185882933467735139119874596671284037737026052419274402617298090187867720104775213345515612721747193748959897687743896016939394641384314992079996757037845914203040612440383319210053845266004442901230811944816962159748095589486705674532048145680820673146924300393394779398020952339355987262739424588438247706656273703156991377512761763097597795296886297499720086719368136791960280468054076450273786103645005077251744957852412983175623086496954468364909904994411743858879569415369482529215809811993994860523856168230244298499038573432387542393238736034608477838627457094902673357022376690283628720779726355388333531623723893434335957946237970392513353797269176524445161821600054720737565743599999060397836076462510985244073548844134066496242400542659002772550156932568696615716486158469607271495082535103266029130901073012679980101090841789983725441504847454079147883448477007508908241739871167159115224006092599940976453360100982658325726104625040949656248552903139365273295014888551511311284498028207635255050438864696207998706745139000804610619747817695151046317443186812099828885076649196230136500889228603325736991697384168618503263446595133109665022593225545309664051388439010570489843844566735924106044260413022818813133531005506806486532716687741673644221924092546114796709051521167350856508731731437662938472325977569287600957776735728822356440491164981949041964518604251305386596370014783339752190195679997254492501546049768262324504267015056369575651778391866737764854479515156227683655095455701826252545686153690512932547337709580984793616369089058080293601897613756716693728235343940614819511937929263230779088325192915001143363396441218514893079971590507830432305637578324936985530192757952818578861280796181199624116813581195497443011019184706515070781075996905332104513314105350446432792984782733567973401348545858075741352466042988627007369794050456732311905615087092889191662292667297200870100882820317619088041770839186772326185157236541585058786321117713322164643608490616056186332500640021770074192861489700473678680712272332910074945466561250391175154644845428523876373135948248864408052947166886114510864713312327857122863002074520492896188965403830519181862123982721108649325006997054902878482936628180841946584918465339423074878903232487236120287738772453958263687880784587892451113571484440802594755912127870875085245335818362420730402378228432837283188333858529000765846356491787974763747794303720555383670150125883457942497985120787608906948650782981326906847576778532826879538164795227540205761589959768019965514020976295107916115191345479306208649812546008730651011372351863667946394183790671131425760745100552204779770521300334396577642729628613406206625989702074049852042062625542344285907034853977858515255172900469569166966517178295470110779806263591442123662836921380154937633509459578698101841845173882731764654928945174611928818452263229866437979265670165894898658753872746401455611298307681064506597957939269624799556893034536429178527074666068286421829443415073470673627856028841177971477076066050018435301855546330252574622760852775087145272380638804551211921976896688313674070673247032651184662850850664054232217353207876793955866592241493215942759047479479567888473405545491297430162223113988216673746394336931388477366609745191028564312297140141706382319816291838051704380146164136143686430683350822816908902389082606655581367476821424521453686352114533641879413762005749547319209218880036063410809338358771792140690179227200663997599995396179460295014113955340931059917300919836534811873113504760550923558222634848861531143566428597384041645324809858043312748213467979498595109771771309997013916982306358166848394278455072334561742653802478293760982199564815817044852840981239303825547868933288497285559611554592768636585334741380297279127854081349788827982220973298876987838286346001087410913429415191966444851239897661534652682353270653802228429121076125982355520694751983410795325222436267210598356574304959554579277055607467902396010311854842590211443056766300763361216133749554462613463570624264047337477927404103955866173232764528093861911515916029896842546874117539348336982311236310747915372014200732279349105425167830717664178997541646950956487264481588624981055341187575688298620634355496290501556273108099210527289580771760687756768464562959546011758456144810455723649699522470232823273024918667227156547861600181751416900845206046195839608493864852497083075328723103836663932673884836378528225315688084838815032228562612894579777195198594102831569138288615139543909520966736025575474714477441943727126654863050690453705082153140200208792212262584306272096086081431019332324587130778610952899707147250318101134876557820617053565273387150701917524635706942222284083697282968156138843021156121640038852745781096023808543836265691450834357556102305805859152966674139832534410298481843989073365010550763008672889701669720795116432282789387057793527050464917330105065267862794538465683596600285750392012235197743059467724575332528939974555642836427583699716262433515135503479433760181913218322099582037945403147040512003482386408573439805277563642290639092036313328252919025026619160726772189378175076426176800289732822248876671482731560966149090077522767220799895293509928215022948980484910959713873173852707190890102590692943325762710795347571118725179396108166738555710450336913882094073881024387035930776162749346823623152183049668523368357752093975129449554230533147330396994216720839051396386444831279015231316164028388064624261643738906637708822000003675574235150587490264936192070432539532000296008557989468675186759624619071932806700788867286777664759118530989837522306735159665160605574736786759000996401606632037340611639759224923952724385224235248800468636995215699198820806640791175197581024289824775049158103947766473816031155028793702325684337561854849136687854064270269463427917491608400003534642588940860593117231367524138700109570280572617192544573279885021410768708002197092954763171994414360212702669568275998468010298968133874679280284610254468310886852410924042893461226392484248027805696759534821185944200495066274140317553781222235426417791162158136829894378954858694293958706672181733005031001845790104990645736041172996534188333440672236609176237456698601011008253754561538074907005244760031901070721479937141416551579627512385361095731258631472888059627504632720798844208109233127736285912934363054128378190768777868774766136607290334383194757310739836735541755754055854737411147435887345205483187825210720688683451014461790398720919293125728401111938360993574145718267990557547488277055283013446071687810320472049683480705793592355398793578702976653393700628338504279735030761825707010558382965506130080124147922330254187153052681428619311159521955351720804877388921099515792484591143020430231585262119681028897685324349686726623418149598226714634074118242445117351599281601104279825438440627428595266238140266281946381070284352989142169478105010509475127782034023307069525265297314994810014272217968241809384180108745894851013617283513547256196433140934837692411922038601751781081733994703600055823909216590403227763594674611914550118327144907800467707688229738533837919115651482911458595455036328891347218691355476537472747067581232774208626697814454655248763282881636156140660208529340378916970332945856705897448106721064341589585952314834238339798090045406570977552861059727302059881565388305584158301307110601612267518133345575250335447914282306319180018566298339024513238137227918200459896612384789702765343080875295715264880968464750275602419266364135077626579312979998721966274258358373492035432893728356160900045308799189623386761642206124560983332866071897642570624321141310721694300304600831868365357545089504815015209120685572169776233833103766435347204508982933307454766424745476813305203214610513239467588760627306805677239093632586566918554928875775441296374493084267567257847316161831418095569252827827277143671360975357824943332068014596938148898612889976496220722246757403324650739212137770302461616781427004142039574811363786543050264517397612982346194366464395039955179373712461577501200347450473359266682039337498603514356979172685375873675073697642426698128474937070734909230283387120350342189753874915095233438497074808910145487203309362262514653222008185989104033614574980021886404905284413756789062723133930947139456986297185821806864228830367779547816560815830335666138521453685430776262926323115638936732978823442338363193096409450522945313422058665287260147092010370710258257251175538886039082918973950982722762447757159052152051012153425027335814358157034475080916215127981762205318297060985037731343367322322050809048286967395928671558720711405432136662266652522331248904452885893633775395805564641444509031890201647597513168691751031981998459538656878777970752140208999056334538662082905319742131381912630277083627986436707264273592079069463283289396960646240168717069965560145012314625906291147001923483633866663792805703619552439192883233025037201447656505631742783175441480377641630803064132066439847938683749355124798227325392391599857675767004251920744509202055378575001485824340279578262602764521210434931632088346339536850399179158873866549549770827523402748610095994984051794719241748667622142008823860027929076927454107819005505455014706252898451694560860727622956761540464037692664370750506769533412590735454512022050028981880897908352614515433204726960420159975702547367056261059006935792460052879813092279492095081620269032536565837447813025297383897516994781207083790352164194726293687593707641408598158672151981191578059536288164841042711070704376108111687969093839393035228259163076553452885380982685804174873283403914853983979821889568894800426931947567700542796833550570574404086907583086199644900905645744418398323522196887573066794058382116158444181444749717382968487229175332940459638577005399485273351419992365411918402480166682690144863313991724932272511950356925650946581629585150317064460911614157331227281196965965099101597195536732778855115239908110816853939486615325994844118149765280218159875000453468148185983478797289910428179894813160233037906436510980665872147563249598187938719344552199014858040223138142082468293225039240311994333705424728489286867923766229608191605946484825493667493361091614854598066529629936620890391484686907191308210769211933745991111743171388056328673089014158014822503209335455324431414407448927369678579640881226163271623715082198596360869832160098124532359340166086204630512518569060792442322774223221333801300653489125614677921627637882274097848498813207232391896416979072435260217751527461769939785367085544728733625876722721905424499257107461669467034550474119845751086870583103144304946743172906615624616473227265860490601335096120816035941569213485181889543933861203761904595402023762938777828005489292909059423950840876294692461568010605192478395130361131665935306736649410707232484119991772244956547937288039512871463170862981627595282397015474685435790080772023866007747282147690232713664564476601700857387531332487086903735782352102942542133391633084031543912756567870030390073190391779978539506427546948185855296017373351048633633720197125410995349441360164866069877406747101495991451585644785029910542141350776588453401996495307485429979529726225857823972512726767241687012038614986549134189736313468851648460358478159844071359651052195880491479495313814196849412065211488975985619234394069722027371487058396851234215180152995098896221473488207062620868215190819579417312976843415299284859282558522759221822174338853138659633795110050458567091286483809782092406270714181925153456930001036400220077338012973672126483132380259909785117719286034173430203376426772014938814212386134785073748347057126570088298004440098471403286485143450491608989335484514753437672236466727739924902062961245918966672996107093160130564527065207247663979691357221651627332597262238519731818281915387484911539313775122055369369149359820218165435220535131883479733455169836526011903344530436832446709462734209909284891009728815981220475749696961946869278125442826341048810131387013343312634733624772997686905503193681581002932361032723764711605564955818797188544325278113622809746464317368450174645724111376830702425846164187117422744472038971116351338030624513073195784411660100367033800516274653888712225849906073075026975902511768688900480970334591337509459656543637842554044833011464836205584534307543420172025429078095714186176392232148723769935677949102147660494173950534172036371794205963143600309376160437963391772365102252076943929218992430687909945579727466882708621935674557259441742501135272748961717242582170419424527635111691460291353123428640794519371972962568197669960032110433668639293632335063497117432982616513982514828480331439940305098271913595632652516271580132078639495719878330444953446167905429696380836719664740777132908134736369139760189283103668802030108290405823610024905038913382027116625104486268099579106609390073879735328362455623583800482989150879031754350128468187682100665854612390581735235620960291601230442520801699542761870822514548526574449944208785443107121846490364491299943613960645355029124075162200921580226177261265376233621909046695392976230963770748216016412487922138580328793717871309372849003688054931822465262905942587349420559208397998322492272271799666437242272837707567579371038615312509090617169037593468925473654032497040490644423025531293288008995311519777946579924537118882300358363258633666419326568085873303814352462524151234425006882291952722579023375399579978284097974518535876041422115595375288724059520593286538346328563390449118715313467062888043700573769667428929851474926264331944383964783531766406693875848165454673887409793236958444224515582174232541971494373366975667368357515302243282319813286348395017165213521519019134678728169218191951532646203987047821658444701765484449311828689670014033468386373046840404574985942886578442062594765221622229171306051739120396673493954711673363745632078120811101427855715126807900651672830586601788142171423676085100684800834618998757769725157755306724462048309693325668579225597809026649574107409635851081627924524107745533970330476055510577933894264110111445665214927979603825670421417905205439468576783102384635146748639018418981811643470812571843860149622430256303725845088326191160383207412616126298603831231143267339437697930865900472652631239476674683734488146262403868694792446873692976668073970470067129715897797018790129660589078785970721818453671989935898524057279495394355140080339617465846601330621320711499304513930291212058843539303721591486941513887696692320619767204330801575517813569875757079029797595427764647916916807211480643800496484334933946175245311701392365531728847541561048074531099255068648661092023246725213472105401629805466654461549793933974654894161842119756766302310055889687820617231815768727144531855834063303604340380087819420362364390718823498076630931474548922056367367129821696657910923748396430339787048136453912484978574071131132688703755757489750550033449148522819606536714672089659582900235908374827552536265238706379085572026358075925325401752361627152521663072006683849314444000857056815754231854149236800563407973015904689544164360741266509175669788484471443813866566319765534987542326345835729658258077692193806427903067236720621325274033263835508980532388462028504500738568951922049691156548235578668066305147444511293168632032497208890323751016955512956927821524603324342608219536671032986005483706898597070961761167186975044209163397998860275318004495976718018126225803917612090456160286282994190986730761170453561154655912167228808450218988082681719712887661891042990494558257082260239122990071450734640566662285106999805288603390011918321831296940021904067187649048846826465764104169106106141360451294813410236288210116530709454070191686981088594717325088716465276820057509052377908572508311779682568234597469899670803187640747367156206702198573133828891876701854298360368582950408018237344477835577391850298710625854169021105024558496967184106048027399823411600428155456885347990634399141874629459188245426746403386928332273003242003126023087329430008637376325504997233280999973285215620559907033076418193219254044067856122834630660832154776134566107125890569329548530943397606343444863878834761202672536141626466561281077816446707857161774811100367470039810988473668638531794184951186885229295467594231459014600345043427517270117691841504919557816346926782548715091944688793585160212528048129231473632694576989305144979911499059159066499826606616960457945988154439532880596613145407892579014029218820384539715173986148436479872059506710927999671242769460568481805703629839163557059129498107751062292351994841377180390921261426242915955767368532183981425798679299074922438175075896414828607534807951181837881564854148676391808609872589533807817133086833070097360600014444155001998525776083615284275703520858862493199765257418135479015218746215121142601600195543417960804149904604311913228146353403003610168844696168827429051813651693936153177552475740660986176631096017664978644337075774557111286945196048932342147407729837219318496361342250805244822286503842014435479560304327299837930506715600090480475535293587237351222997133873144336906355622704320057574277929993682849624465368637305212173314105749495777860104336918532935941799776670780827533906092948802004708868029847559971823463274450428594847370230193814909129954612803582639498003837312957531748872919516327730743288603273681696327178133606082250197076347642078267626377990254046197607754210743277475919352700270117556990996909644680765488777543072605590835360735605647581505462173002708148166174138713453624091399484577060517934280426334586686256858930262095660418985089651836802234309063312154071778129323622169476326518936055085030762891776382953797572959834433468108003219142897949685464877397298642871010821048529660829390986615954704414259317145019295284925959514456755429291692359921364275039712556354404165533482781812431473237960974383716533065934580521506291510209048336627197670115290224762140381411529481200178203942532810297294792832810861044795341150680451131448705990121486536411347107249904945244200145094955446991794544587372941828605265482463033288812319622518609141634796307697014775198749165577716167452393562962101338951133559712462089710034340162835155007351504066247209908561629411673498515618700205818628774877798069167216907101264063246758063059647449618525597182698625294377568038245170275355037879229882512272298283960298821382854214058168199874870143814481059098899070009928876759966564624068579172368792991073203642583423219283260886294808006657447264108011222304503787520152094780710498860439788255132097474485012567638535821275550878520783014468312095883311229068295021157934484873506600378178785442439654489516775700730296971029599777780204189524290207789587750222190350036720819319703698877228760639931430460096152857217884447400644974667461514343136292293792436520372360828522212030389571720570025251453743634150514467297997546901047313950531786138137817892988074300053172705266789984400273369350225210253465707144393946758866433781530198995295206680701296545930625198099610498914831599091964208329805184825879448242425678306946515222232149022412606467513505317796997884533412300841355956790887268433952649279187153554202341809942957473951872149273607512150711974362142508870795045413898333123582381305279311199710603350078396879588806349555795508785061094456499310685660772493797571060686419733473668896511003407523169592548041856484789281574924238358686140084185094598080254209140842842046535739360741129538434475569566627026344926359551501843381861038642860379080469740516607425972350296661066170869390181406239906842427094831676257336738393577958245673271515019884218666097221939908897972745381100286393708726260077320346188436941165365850694893473546946271990965618531364710187581328594413323554956270035330175110503922257746380125111524874802957040831330910693796393375557661485594540703696543724062062496659395793213200921277653448148932092657262714845260732508846022376089442508031771938708989918304866047967049668250208515988418324086340515452164490007289921294870464216101313940746059719251073579683707034314161025035485299676318923537463711236608823860322780918104882980892251039761865178132499645512438134092333968389764810669256048615805991103810020610206819886445703611547736473440358366307052207967787106518695690216845239790756727689795466148192245086389170753214613930514692734865366003955773652574107684694689520086667018011577437672276148458895143400290029687550945334685882687789067558149851113248829496124325530458776293134195555520841479411559681512724116774424298629599438485092632011252802195857741178551077143756919367977064095833668503944448889276903070102395145916279195894474332408896744573682982825747088912916944205664549305783087881961235687051152295838577077842440214426761871478644730588138716688539227971346826220409088570192954454346368638454496546450529523057675323934846249103890484519844228983613311334172928494514384465845365187904384319498216044633395544622541897342991451670667833230521442169652287943925345863739529860988677212465275863138773441646986706775835293937907368852248181276904090610397591649670660920795497321203561944809173136658530257898506096453462705555522136919191295209608756459650326208878474665499387440529652992461932634519130611166513758264907285498265847357532799667531436279154563897972476493035414701436026275301420283662927601968056689163505195791850800098019374539771497111960424994192361152416715739753243735527943737775094368036652155343573347043409821839611534976264298583933050857762893606289881617152475908078814268757325703713475998392030897394691092881529734382289612058589023307261939753415805391687662044636704640914855753994273721620742901925617597120046905243271035829901759312967739958499887597480670503370847462833422953621982582497745778001738005810202314189842936698802282231288862554557194417839522301350613355544001884511057430206973061411732932057711995294632318768089619752403546527937464713398881503559245942553974581467259857660092203940803037478106789185715334261889060901188863190607247578168551124356754696657670499348269798417048614616213332537968241883198785801129418116345398094037628261109385979003182764084001961450461384356017100433395056065727357785493454710657132477922287655725516103969537573643400668070790800688618209301041819194995720410238553934175188342224539951534384174613445455162543028147592197051231906522927350379425920080362331832650930110717974147997102915143352295271183907608582718749638554756096429406372134573492582225021327073319447226883809304842445434175121978528263428963239989654128960016724252625512396929512117944867059641427458207321979109454758649992937998584373076456537437925531787247956554574801976258234897311182672309150464645719168465577725077101371474524765433816761780419345255504032530017299978349197689231175512627564493668923992317195000424782277732792567086826962783971107392520267657753681060306337297921532052993826416870860006426294218396880948946311247838911953103434295159418834241097756387565674699868438531439439692367513335237155022639003673517678954817225511511881251230145601267667677458989272050633933610844312483131591016908132626543996097105640630261384370177124410683874821881088215431807667632535102368196100667570213017709128287995180115373079231592589312821874282303909555340567560955952946835806424080993004844642902930881331329011485729131992755247698210621486535845185464326561932517519348296148133410368786471963500270958333894425725972763210096528568133883502141686209348225496084479464963752171395866564582313304734995073384234048631412802898938892095347693862113134181210377820542842525496869298006970357434018879638899209403113863150557067498504555445267723506182913102612838018872141414158833633304356959264882056096912404718691360680134784009978795393715887090348286540422732051414099447044554019224483423024370181126532647887282967200019123180622793015810492385971183115270250575892700708010355617953724905517302155239756087640415532030730483971998148508943245340048696871436101890472496409348093294489600693681328175214725804367594059491061671462176916890288218406803095995794995643545935177276121138055878463006723625423365361098851745558797601019727137221471829457452926774818752592774301740307084180638592143899964873983960822571310430133006624410214925853229962951000033178977407753027440441863100339435275233647320867762098633013194086672800758789516379559726563612022866292898427030799538484898840949121366790259622139706617523774609576709997285866150966876445424203620914353334728073512294022180996270161708940032105388240344459049883740699841376651050713721248667147108781869572963191183916579503326670567750682645308627005018094110834213160878290359796008423751227333718999199206541616948221284198566445770421527028708863549965495622165885580896346331333104561718618101939986619773068034366999193570770199817919296749765244980662515614184934679815972287332251360983060833015781307723022321109218448738020698657447963586100143337698453458068381688772766181921101031706075254624411660658007906036047535982924622976267965411002969138288588465555591455836882329442109262669581342716188794187472104425599297255891646598383432503251754677814915148675708685687026581547356034268551347799732222073763576413980979432196647134551736840269302294590553959176528303756918720127394782926629547435187459648600537438112109209249881053908240643529394473617068156724069773828954336506355414319139140257608282568099613622893690303689408333822125218518444724009956524063809944845650212529465198480669456791519202896399441360871994966537922761547363473699467971027699692893590166131420874537207548396150013746514295082460752673340260770254924771445052198557089198781403975667178729695065016671800816730151168553195477205904157709888438068181171139391667389372783729334080973194249193832428923675946290036315245869577808368162980169226709261821041766367934179371934410664031262568965861848353512252470955177865832203502843162156328777013224756635412670814122229372324399099344972649224220537992873444798838954284480741195914873226879245959123232338630781811239936979602629940410911221547808617215502618090999111019061822524927567478424064039540703752905419306329653192193425525539113431931974875161199075597225841869607505685772701953076670875275280198548555153665086129024208030438148588755862559961318126248779811425528996296761209977122755406801281857233729851276091555719917276068080145866580414682751950052264502143150227025008949465538873921377290498074907100387984970126225422371019655923029055064392885865504894057793041443647711032051588334314345553555278361569237813165952968936661338606828542067072147198751266973520223396165535057207124062996649018771026269314311128030510119266367562461079945161724918195483235182408441344746206087845011956626655630473917703587902297352597057167750273111719606315442515792617130552948994601597532953295444869948525944653359708988558709785457228372177574544434014515574671969384769049789109402571419513470276404933222839241910232081910877462854669971040361012719030644770124347702951173693117763379362013822295841181125368447870284602944694648190776935129314644382286267570076594362336491712652909861654159584322510524990997605777564830449864125626156240403467089884488701243822377637613303864996254378287197121355840054674207672086412658048693486336373592898165940070954692304503834359775264149571454219100895470834438714464857132811150099453199198600034094501641814524508207809470117413138485461006159127307933371770781627862434944004765128865897261443016316276020766973096339152269503150032441916696560399188014088964162795983120508969867651820920759236917232579710759025519140833296729806576280710853170661108556999635420536341556738877587479602076035894760534992289598570332874816670410224163184067218384666814942204794597211977712466893952473195656210928223769617332671817310987670144857456999714242347279511862161254618379200455749255515326412796951172166636057413572182519333344099280838049773977425076108092295625085442483373373914609571494041332261018313704141539351330691069593764052657561549199631903430273947086534747103561027233960026169250074284145087337584582047306422406739129758050920329795097291672898303252010714923794841284455655537870267073224937208686635928515188284437894304100618647241123400650630333987580266574779296391423376333578645145483769500945839270711848351755768388727141365898971238520399173213183060011561293371158000338437489216949279572607905941958938831034581914447626340193172157812958288414881578346699422955102826439069548941551479662312017341835017742186796290854184250698513203869919777955325518418898858820168765101365252954932619982347743239099168720416992311293423567887110033546600218069769399417229375443691193119493120820166728099417097912595057791115631407505792836764826641204036772612417321892221932088744179349791629246675560431604034741165870288711356904089085152102516751366292473310310358003783568028079339802327991174580951547877807693373650755534445554080428414095981694716658408658626509544016936126796136203986631671529591176468181385524840849846648411522666543133211997803033691117342447584344340557665629837687314375447848018381472263804898102843823700937334551769201279540718499297717013305949013956910384101305464537749407442854373194876497159605927622196312233165253986075218369393113527617519641690602856888776606126040403107674189341929757207211090913030729736432012454294724579939663810237530052734050256426578555186230696613750965152080519924282078663410357785918535781468811874158615944594491890119486207224804925745779329074380174987501237600076663421944193194237779526808666018717001496575152320296256175858971000992061285796991789236230454846401243738322272010445932343817329918330338240304270578332859148503182887294351039464636962671824827696717054886535183264948923149459945723944959550320625896347306978276160087021012531588204605844262507993582525651036880686231817613779867268168628338577991027558401804235023650773725681181956366870856162383187808664984942620401802234837035887481021986978496375240323936262956874089920897593798824701556137015837306895937200716936452054543346873850289691119726935305077191366401118199425771140623375766513959250261122052802502470004582982982324112032993167740951519574106869726587022798337540069946738405846307057975505900514359814215960344013157417260990856692662234353689939822106603156325147943661467669622314679742489693246170057589321924157709724573897048087819638148052218774387511370067830182307154315365451987176226298913256731294093311643890644523483958997132351810010744803768696228410320408672904201110242171102194060041808864337185367138273647495573224260253404240178303238780530430165980726580953811604233978082020289083670296831608348131559453937565034267545398882619013822072819026571413969883130574884419903037576454203856964238750062896846397337380177440736319846299938416152144287245172495234668139603265291702281469647157550419982628365214908415192181516797159860387505946691260243729175915288691779972218268683748490313902822547669168743128527886847994137052855334537790792025692533931123107234066642434224150537500722288106721623779713551874767205636179079286121443428711288302585629612900054914720475950122138701533106387227249596203280235246500093362677416075569322445130210475385938140077652960731615426638965082291371526704304331492051218048615972037166013225463169459875799030045816364054775429831627357201343281840096317197025304151603395461023501230109635200707113740024426310812657186528637258510347625691798535788196550497881276112001645229302232275947531041349875545095473141798971551815394488083031913114318168007262553348603331516178170552894408269518371972130624259635339678681631587906653263162826982391068517624883131784342271044076572504083250186380865017306276812326898255947292043071480829242120768470105354626834086238042820470555190230228151671967021352829167497988535859941707735191045957346754735986245100786229950296941818708623633288375575191015412738664558155592924113455176860598019383519306839201771183459523616361443225044192700588236886952252453856130000300604425470523148920391238807307493911163540887951615660539514424168445367689144970393174487712850716972124705091806415486362951618058151412126203107962848358291921546650350640319653622938743858735596496924651998561295203074451315572424286582017549459338618320562341726228016907778531299790600845809012092056958846563489556941795561704487428158428822086006424091372969992066334685840619978864393230524823335525363877021399621990319457050852127770701255089194097464521957968917421035701191725560665717239529933669638088211700159535904828150417339972445207270093696529558367855688346721652249513404209137725641371068538829332351028842159117577446633509796647440299348210565884723795005704464630997043382152156717905353386317668691753953659433592033626817719898808895304625885327927682175360995058579507909979537487187759806663921380182657772598326524210817061291558183842579561200249990928750142052179290866812792787594155810652998597725227913684759713563663765646523112997938012749467953597707412508182226389178237445871666967851069227157400825788637340006959777999948019325091162238460602682783038410333552701870279819619567378319127265371804691639660428944733637676161885172983314158450975019033557245111032460023456437544404128319838908542133164229788082027739019057039586937620389906521580125989573129013271239014195996300480800144528320265708499772590970267918587877569182245529471953877444606628014024761799278163004580808745069895798796543752490621377643571946166921935409462718659227926916230478558794238537090794621462390703055870730329402160306631617145022292420747430591001545473591421647620109973535250566864757260586056552569833784160358574951825773242901487144671990250684153161728441847061935614560146395271665129045249655785164662350831465844457961312629824682646127763330257517553659254473901627377767673093787581481560191921764518153118128361370592173342824038507402634195025198732820175497291969625316245802767901295852832271497537795288788293019374859637082403931832156776985576958130440020174226896187363299503345281170708288483638716245989804388745594617719110386218546229748331962182227899498632888184598806477894512601575604099356972064196948217069930919870585694921736549138217094596295239427651420785976702575969139158458820231247444006549170742208328976768387767534524505998906943097772222245710206966342305459337405999985816196344262192113896819286384356680651528234756566551856674255652871047659879739537850119508143620114578715702227575015826680774654881453953495404272336916836654790537128979218105385548556584787276702221201042127591681195703956901436150195831929448304770919366056272051758323718002697522855814652707197681302664689979929181272480104374179460733098279631922072238734230913385649690933451797380619002069876537384149757108927851230305558962654667869774906842738825455994479531926852622262835000762777507961473263068167570734180120702577932456959447565431633528298649021183027402327065096160727599351809653809014988559084341698210058304297208156547108205037420487168349590700950706831371680466819493747748186922665307983926938019611776864126130468327004758164162392414278816630340209073515608948708561589492926173205202151133621079703403194520922803902953547125824371738640501504470595644891209619597855520882876840732159414049997147840404724056697654088779411437884935491715495123302774376409668353322850146294113961726469246534432053790223932029559923859666768001382614668184995741514035583188584877169597870632176849985768896965238503856316629309892222715148049600970977506447311635585729894429055611882804327868985617814600485249937170796517744422462406698612715652044739928835626275410904197416670130040626064409302802704594062430027490336839846118941817754720846827071703146294277645332695361041382973423127564777629484764671958709421652739087512974587710556113472636227472199506908828655786541164240840284202513591672436305450504310836317895512253530690529043040817697134938547184584478946280350136981583551201157172045894600020714042048883480180199011732700940056814814742388589694118364957019919244513175279987917553830076790090210316756550732010606325415758390750527377646531433465908792441748496166406962679810678327299246595770989803157580805194595054982519129891605884272741125796129124832492022657007134677207297985337744164859549011313493216077861619125523976361498433693512988311164154663677759850476029840425238939521691602872182680413000661569773889940692162829981985433242426344100935496556394175553266979704099805410008520724177491286990639310446655443673100166985370552062284909255802538539800015452729420038188734113185763695672701076602709794183147616808103377674364964676867403203467981846542698615367829332166906567356174193919311008612793028194736460203450615741890482832398252761674846995923626500351705069131780099992936001048822713917862018150381297168091945713726511676667751452691135486936479686653933506454619737159516340008977844788583123879559942995785164274891983312713494299278494416264597391870328210196413933684944488460233511861622330147562988436717936859590261543598637837728797761218606382271234003816177481059361236545941941975544725925708152362378790809225250124050098786240095469434226277136365105274670091134716036613215678958113222158274494469869337234119306407120914456714380692836146272165179687531136348828379670347065721929005936966125504835543211589735924773451724317763161657092770230450049883627176005564774943037427113751394257026420860239728133207902389386490926590488510651728480623758728256771707975965283328331453741825333544012230222819785646274379010204127650478727917462255784074874461799528007219440242785963847938360215209994715670483886117931911881015355524229459276955613340919576387628004467217625900726396818153498335043063576268364568515771062705199240752162987471552212223487039324562376608114127241916071022318362640352253019453771994466718064857864417504184051140280072871544828871718220424001857245858819749999264057228351893447333579285470205619612930833369064291040397218277185560247876855294740724531039509263409609903747282887256319066078548512500124787441984900341050802353445386219603197849451570242746025131569856041295840032477598421196199096829156426894799364544454402515802012905222845090401088547027646590578598213981940870655808866480588895107513758808058583717619257043303646631827812333805194468459810034611946071912538358569394987532491680748434063078816252404456539197369471311884946605685079445073042119534432604741401446155289696603488491151004104368000051079487427047043964569454913336129133726917705661748903263094967301908270337287570967295911638999131624875107464717483447533930245367688712760513698336690492988245852318491753108569737695266917388782765447751870025799830175459179889281389852866033225549117426111521424475823279026913017331738241550348326534988132957633982341983866685611905542659558552456254628958376572852140416912667195777554051447352024389050016387976373064446155387937177186910057289938789586025616734720361434991557025882685684816977145739705845230588228419612756350839403283289642297001646068879146009565135540902891140209578029101476677460664634372880177136752866365520603026252583248792113474134706552874541471825605413463943046461351025503363865491559099575112051369139456085229772506650373029677237437312612066280482544621552063643156007349992081085677779867570842501176985085372039388768016799148852500735962838913280785281470688743072424607408920537124191325473468400638921450008640030787111976730637713365459205234054370605717565058913444932809149978342413797516605315120307810772712427616318799555715884296853664795542751409849968500520291437457558281337340635833403772314428738950883603205390812297379945793787024518598226903573438091752651253472217342834789217256128994869544867080396857354507681490261101371629537862636735383324948504417145850175682366269689697287822079585715789302824994183673331793167773337855460655812720241066312825573011798922879099860395341135169092545670462294292543255989826564422829076560954980979831581235331348017881132783000474627981425126239064323630143418338800509776891593510345278459541388109959527097952329013193687296600899473486461628205974882002381779695421602631007111067395777656462818642768268834186194053525210386256039790933185896794702430897331722863490345477497868502988513328303707328937530808046599522430549464376352405318834292187453717154536845745226681117771952876343248094692220652861329592102606022325067297641531315848975843161221458387974859874142690809950871536680943714497641564265226125033144147162501212366355285068328574825364184529241915398522152330387169320142804425673342095471642766183217393542250311706291701127152218397120421592236313360767171239553263892427066097662351931507939625416113681381286375645125315801654506022336019762915501376366820140506132366688407763241595326173123171186042067482737196906627646238650345580654368181087661189042330543384427832512118961721543867845079040331379375621252182752366024198280850759858067141874002526378967913678737748407469369672206917881636784462570287815362935264547093914300495124405813362012587031853964731104698193161661125347880402998721753565809527229294787976586462114399304667401185636900778210152327515362156595964185826562863768067503131088497216261205200389152957393853243259361119499813414038446797427566083447427520774299661037507162229595876995043724964141075232574869957447203874398998705712819662163470686548536230755846278776364923672347783899577938239661939388908110935837827165262333573328834874248064680977253015071848670569464725496943134093731478915385156355977215387803398836820512312145033173006097227428087764498928745862555826777773967358345714455428222963832414398470812407931856552908115503047062680370562783171192577903725208318226744079501118677613374999058867271139231359713268487049406724897994026271717989179248938790502236522486622314750141408399894569456323405323689492735193453226475027384059137074118179322094818265725310069237724580556719606863935563615681304393534618089100386995464776697326672788396154839597364475218390069577127411524356240704649269235131080561402754040831122398968265881652262099080900729093075823767658279569869520872859783902240555265967489906355272172397435471286567397513440855128772604487288960493605253752779469293393403567788361478719100782025891989001640660310075047214985500355750943345008654734410720131068311893218712149864381747612931487334018375291051945112616241355786364255772745971286280881597469777365957888265174795225681755148731727202382385490985596081240480279920090150446992086575316208155948165632274159823090517228090259167002042795156568554375036841513248262748444782881742463496327921540249757693152764538441277585600183869946507221866569523950707447110653410441434168645694767029996106936224353544710152266183084502857686132284507085310625370972803083517585256831161905278810087990682386262206578958420738140436945865251357177808455742620522802224119092041017255501348823950414294871025375813286927671460359253633646418683645366593141553634225132518475629142854308259590611711032614764200455689424932717679379085841013459118231485839984114527378604505560596612851726567613754547482822544165982898237766801389505709502890379885429211759824804377945274887192092202754105735822409969935777839331995066025725728130994793083071942463253378280231537587566240737612682472046876722036652256910336550391705808024827819489295120318797130830825932426686406332602999674646101208219302713642046622932802408428492156846419700005669402828793069518246542809517842416128552040881688243048197545909983426144259218861789856518794694352535267265330913032926683404216054333963752409319365929783049787606715671549679074277524739127802823120558676782102273692642831201626261653882323475671622331568152229611173512466848943998650154409606154732841090570429135834601960693415362470452197536307673493120449962139611530071354790399999294726022956087686484529220884507864409988946968440261835445853657227020080627600412381587819831459686259938431344114659394368319635173642487568413057814637779720055686812974720156562178461821200882192529949279922444920785677037414763164826309358632141149766944897597970715606003752260723580132507236659574928001117491557165286858209295182722204962185316850873387837212167386140415892750437881818155557741696892669994644976500842336275172091139649534772331134951446196015511093589964530905586320805087807522947025186375360623008008274803402125349075754850764696276214042679664420893161020666978118021587511763383824779303474201893913786339212506316275229401282735789985347184479717924878870753180078184845498334604928259822496364396137716867760965978030579039144508233268428147885962467175605325602815810493600915909965689189726359887995569048336722481225676471797785697133269359605438765953174223728040105238376630414397106464991378852784837517344102772326693275518892690244446643942841766314454420269428164047772553731807935369286989531500233924064913575562890582719074587952248653820019874976950310459107411581819388574884961848120150633122845696981304487792515828046026944516678711283099674788281767278077925387487226884639819729965318368413305950075050004184991122471516455470512501138268609637304736203790286219740839716290456996084021643395249894121725124927955514345981143056620875877509957726671777247285468389563329408317400374106050861749336934301039147988430160650916099319732625317137487834431934140449777680166523788576457116171895399478208395457704219071970727959917102861103009447431318033364907023059596618123870311555904024628731105240661056859261940916927793329866320281367637331865203810087121055395662881801717961353151759365806251153627077103072919430329930320709653777639862521292842292921935670580415370557321660420558460393472553718719877334022181395833388579829346408850147596831129502060843659620486479801419334405836494917618930534851100712929200449968013734878721440434931037847612413206394976293216488575120741510209556193164138926756827341511275899542269142415557317386686353794424809319188971330647442538056300880481769940119307268964770614229496085625744540243591929803817744807751240971202493821423941967583525577325133403748822717594639696728691922643341501589439249336638796552279935191008760187010447362933423034381532544834569422038875537543826574809481219505647101288119631105003286511158735077616138606584070965501689585693698559645071972387720195920450248617263351887815501763478454242494275331290387581329477063824817251727968979657846321435427864680312563288186381655541631202672419892586220347611840987805499271072314697250428522519380428072124869378419749963067977591757612779181422218597832279515887301759617518031294984400743714800601916078467951336760806339459792244495133611059514516217771561143014170902989977505097584967975920381551267896454635992789665805013483261050922697521877657507974123450392817064163937090246578862656759241477367259142430049059888846345670471892464969170694552352381575405727783844220058068259916665669333010151160764633416493190250302108475757234175964299747339697343315074730623671624911236061775092560214758495866258602740274590583031605689566177340949592683514235874111585972330525000925812302803623239164703855209468426609590179931321666826280164992373949929276672000899168514627505662569454218770868253780745979260415474077852289756280262403656698210152319379598633763709596944164314694663826826362970259591566040879877904080484341156909826728366384816263677544279676142031055798513567915439753992054124561099231937773663894661716269140438000908530333277248425260211781563536064516882660388963501582855039741076427500366697021361527676100168287790882770189806364069200165288181677420924216482259143468000928276152870352150494845319861670915758482323648645636347449050982695046023112800415876787641233722884148959307898858033207006604756834907774559482960097673219932918932421521665713650767496120447184858269004174929212401760128938710253559800200796808218546799080649327171838125691881541944551249563256772461096365338309650731146976470222706254827426114772705536771757790610873698806934544296216566642933085183294693989912366188064810742682778526376000395856513997663869766887455346573796694375691888547908382786933463239215649913264292719590857388915853694686440261687383944642825327042376102911624943884027493976169705546111237692818791296385759471778125680747376853838247477429504032720338591697541166198816908093258429733860973718512779136770291761413820998498278580769696366426516100685607354402097834901082579978556427106228818151501306185271647465851971830478234390565776059247469329002307837784813366727940613899330229050714549819856971431462597967971176359213961765794656506830778259941997013986847211891675442720134765245242405193841905028855141651034391467112355764047456538079456878757950637311091675084828585643130767069283253052892138572012450432911821985990713079098817771499126971845315624482260827059776254850990077550078694657330252230925535326528356951062273189029335364517831307009025840605194445118925542657576575869636707985156170810035172934309950072503453535684473106669185214856827204049636907835754932860341111931233277645786851257499332351363780377981152122901498767871793361900971267465828589888699324805137869677213772750218074395171342613336413469870937627449583217104709858233367887181251238253083673732379128401170830357791634859203776898244925472438291566746971301071159784930317252694594935168590242885796684045977663708267770427161860031073650061005502776792813792035241267031931720862413712920469502856019375213584142721487727603099388468364090626362835534006361770967561524643302519681033067093133582938603068301623710216056265208311718764008775787435516015403591300492292243807939123832244096810842910635149767302258599489445406241985974879009116898475518091585304901538706906671843129240806293449365761017750053162300706057782863107978270075209833322126626651702353489181432207102922744552411885438053822115358662204688936754838043120968331741973396992255043962367542939337970569271977037397943596297971229776664619224031370790984370745773368453879815689533261764566382869175255179891716555622766301322225345199859164512347640169053394687942990563499891368151637036108219316092926646996402047802664722927620522939761064462888688872523468636499273022677550298843165182176458533870355496348468044604089509302578692776561076705892064518785121924304318266048701866343024746003918385934382294070251090538992478886304369495020908546606061005031274873333549759386148720488997655274756696398184916960460527592888319623449961712853057316191084168538841139955101523017038383675489652547214241677085370357415222710498292659740976402159373128678569742037909836559369247501771359956377730409482959946937439993640934126076141042329007700733762411093270374645361781138975100112366454369236932032295494738814071092386277481638484239307747827262493973936171453852983200342987501158104755496293756577664036710857588287215344735552031989925507600133325908506492867171583488856650428371335170390305007110367346931646546783237081891102447654622041618244978416751818677574513851229117599462697345253322087642194112382234997522879445131510939253227134798213661061735351042646510870156424131217674539451580998528528602366383396758000302270339866581427210757256037311388851842472534362574843449159848563881892524404986161269809302032045006766938893965174488881429238015622888942325236016570818296686368378474388609800229350869146916937769310966963546253262406533902031737716829250992754305503725833316584643273624418677391687768145803927798080500805591442162290658377020571673056740541275958923052660395574513228831561898430128387314876990048120566507704631133521355271311542659989960623506587275203713044891059081430898595037812029485550443642235950509633589718042085190824455442637287038879970498571817870642691052513390030010267513113212014851741522631056650359558479951739404830151962238086449848007992471014825578900351808910173014497693019494407440637878721026590853638973795477804972234679822784049791764054723456930203449744280642040206225815200267363456986988431698618625988760125066966092057649822666190924117830455728227419207231236448227685740227017022455793402068077131101344222011999610056362763274239627349993846093417362231395789816353118789001486378929495651108330124830484838838558366442332892702370087691370552305749655332412186432434994844163423927768383407535081946104431507626237278350458937463303920219934745032149624399434066037195999527723700676437709269543762719468572576849256244556222823605389911985369964435705043465765494736908952847573091289172882638489996210461681013972513047885831468619180514042589773312168256603126991430566620707593297984982275691868107857782295314114476909668670580096426064548708384727569490201722409820240627734513352182315606280597071270202206998739262548049776638886432440857964315316857053029254922184651221176797492912466848797629003881605699061913019285463422287912252934441065150878788149308992801298538095689286311025273778807041645859666498830227310144296575066984895082299475165194885072595292647570163526220783581889684453666907143433822257973980951159761746133564740991433511676961412978025398025638176145897596622119712416915635084047066100747674820049776248246119047949470506734796360340639223153753963165072248933931316209076313678718171215008467968803893943256009496336715022766347427528754525884757959000647670884554280192892215363066229385539482377604009388747514483306450007013312752374432721604523109377355023464013366990683141245475971534493179218667654418882254398640981517838875479183625531099036646674674935490574023391862777811753701317135370836103167107378025155465680647710683641087800468785559127710524553212120190100660166843073207099963273115731577026282566047096596550632442320495145514739416898736330092969781865318946027627355596334021094315871189935634252987236904973321565521276615778658818729455087966660966897403799732559771921189785052026970192691528138242399232569264982463836012902660999181578835225335351170885277002345851017066494818883592576737522767175328259377567927435974856990045551894779501394551203287333574679015573611077891746478049174122065659111652484042429774605678137952465212254073385044973302872850232395527046475471284884289802336910027087394004711916368407052445976644834688923154962675106894843062074138001558947543149390105658683479423458891841965563636326120778678812501964291478301492374146994879093302383575738001170558043853616698646549840327239745218406051609360241037360268476406667089817078843946676427448601431484823055719098458831198988123344315744166450553369278735730449542191812077245864337220007661803107208637862005120100077063593989753391277327624971584372600045926545741359400250919842382448380645395216843481689784970374692044207501246948012366561078051118184777296349478834670639862361579639977869070113476252322389424250064295392753976469231832746448766257927488286053051441401615688808667797772463948930008013082289255172900518573472410770245556117651904322850370381776031746555210249756892026122514441263188554035711970049445843208626104187381793817431283024545933297478027915463282537677312679855807685504108027009101498025642378897999452877456129622612956509460901520406713004921351002455640808438250142446027794918703273852127371180851135840444230903031143178111365727782742386836233816974461624826004254466376929626157603118556051437903380107077696069759298705129301115364093079558759091966178183071340304062737747339291947158437278111605346496261609777575217591081351117278276284988923595526600142531126035725580078476788689134953794570150761404528155561494349104305510215922721401836609760039133678015674118944184940288783007813972571847868172488437988670986184656182664880817032180497075031050324640093091502546128524870266627479961811630920447020044378564517811468808490673204225932689245514262948306206847812346492470930898365683903359983615830991741858861134630607429525487356338948387085301116914193766270527249707651762029780593871691052636785242765121700254489060276690235128558325803216842360380421774931731901007783946486862774758538929764918007233987967225947161060849276204769195173866479905979793888969916097497181858657534241091939121883577648108262732388384358624674011222206080271106222945668974817905853071705608148999441752963336616095738413588025888683994789020609823003722574626932879702531077796278281814964008613725996243090085286350126767483741474028425012778677624020860129655234419187040954180074356604414141692034624809365660877923419580103955852542259946631294246799578752886388067756447967061794672157901685668197846813696554337564999848446010333699112739442408644664413949561244768412401994306546574559442542385057682364811775303678161107960242789548903806959376629034507419403867330205818490629019184629470477931803915779668439757025731589561465314882954499725290606741765318626630484902863277289258479954261131516888729141873432847384373779572092474605066497351427947871106200069135158186407397361915416950883500247855478897333313919247047624417261006527192162224613756751031582883955748343341606961285857021590486073860290131284377139910495242940639802094190653775257090948068552391065201690158502284301028052764054162797558256099266196586250189318556377340765101163703310780987054569443318632311718375646691224141056844144806649010977406085794112020915742861964392223936231404552235941595333135434809322172045195236263333079424947460530738371661145605891921441526068553221277850532316243702103702299368048872166537768818063769930206346960550631397267120586507386453322668843019569516354348840100124921653705321608101180727380836757045761087767399284158731830279414040805038582147100727696702681363150928838459926870835856300260225791340445241087721708151458262323997523601085576960512273391157704623983719752385597250837494554598845696103275681018690269021969448678501468954874414651877703145165808983403904101023376361683278735115136270013990103105482153138125771525648289291509951546013980563352928969764365450247736633812731827312838757646211139981630588252262290164759402681890369666177398346784286473774922910570510308385288685015951016226704425106064863306992086262905824641169972699729188276552885452550347771913195900991091182930597847626904312374957566484100919539091218129908708593589259233820609339968313985998231895702911407844502303488377487653327751017175096564878406683676996861163146715819693974140570899686609185155825297773540045301480211698424299520691668015572650391626826824251793836246025113724926642578675382404151145051778156004289682083871556449751264156403070077061984917868456201081241155117390118454129517421758306132307691922168727150476325112754306488852691652953490029124407084046675433244180884700027458703228983925386274637551939051060312628617787915062555839257671883834489074761748304990581844266617288619830804417744881103547047723598502026990005455442062546062584527429330991976670447306120490906943026026254073008418010905745239937109553127003256295065162393640786275987190195821649903546242998742619258503697954169958312125777538516388792186382761138358960841671009731670975155589082126400482923832706153104777590138138723623016882044192182909272014641533787888147060735462644811939770286832274984682010135880019399573087739213047695361901914711123690745727746415292030041858993298191934574800476805986786428557711273184541728275821675743877613280706415793881676193393157290090159621919866837647206462236587896531024125732534656543202097685285668367372651087776717252819637758494706745737125412599119212004071836182784947647944443327642002995886265119544632196135689727249158820179161211194517579549361131496032340314073948290606907538745904948114356626056568785080842726991215322120164014464134260648661661331001842526744172841047514673871236125742111053926869748994992238106644342222170980413936954245842371520182302744881659463525722087035985492409597096519331362769824566965949963781588249709467962821804418873510398053264202571896697267941922760208891741933697202436778778619634409142560099631313846617716164323639422366138677401448123396605544798893639734415041721917911862804343846744332038526055028683125454729681497092874221311047234022064768178076179557724293668081939614066320696193543906272385089256208031800731608237163324678765138427528801505118389072787853930752657856092782370675344856364119212777346659565316115765974512791257143214359203374319839150733683540588408958089474792430454256063012403549214002068431795939812527900676030246348378659186995985120453333046926751089753617596844862355639438757561872985352740051043751889674149423607211068565897687622064909039373405803973745220561656990575092743503685858034549244728284987353390922127747910676692369109136890153819814049132735277881699803661867409172098023322155968496864016489432832204922621386151818732403781561197545611015936098344450534030115017063220424443242078660575303896219932534720224978174462492952177985112022119401199906689710061108422369072268849142908003094937864821688634247250452438048367513356432166702504321697625422191179580045976536581923770148397148182258724192400062308456950344442402877785937261348791855756068151871188637699151520833272682451656164388563300332742698154875188341633048112716602018304217008169180895271604300642420082453036314387478898511752959580793579277056301162134682720739754502182720219898448721960188766298644078177717655692603158430121231629441907973528387032954678210249682495272730699669454153869549937885103498927044746719764828488987178377056367619479685231393538861670497565976971691981318070293610838471377990050293149873953902897357225958311176368046934664875696254520258143389687227621899376309888911987484448143179933997824362773290886066174254916035318142923265798425705928062657723152490694726031213709258010750054823493317457903297226911272111216729349837536320867783683294267806075777488443031882258717018862234847148776949790402617892951243015869315246458765914886980894008770789452635921444974502027007326418622543895906073636094955841022150434080535068149221388633193497097537735098702796548542574657615021490400477332375574795273113788791502479314255249001885810193327555447631561467379015444112023617772508490909284718966968484415578034101201632175468999323098476748376253653875728014506731307498167043041174865574217180983865181770164515933536783482132804412461251136318451218746490953156061683086874322621011138435768184472135306718576428191848722418489019993627282251692015223683061828792467657027865458953219046590530767406910874914671196986885833750302338945094336117465924699128123003302293001785851566277698880000875303858780573503381634035465796638802972343213833931685201354637374260743759547699235942393280328922255156517001285882512048221513461521674616467223830356125638422665766988976275184543209393896422944924896731236273023340001530973898356245840750906950573949439352364118017965543319257418215959997284863399247473994935512110872934057923919049047465319061441977155512456972450130845932556132289222426314120229545224411056358896778362930074919768658199728961180438186807182344002739850574992379283196215098257520346498705818952847429398125336965171356245077921566322673560779714683295446413391480996891404096066459365177464241008532880324601218279873719262466240765525292828414096828690632547600523165056587030279256930210472967192514378075400493717909121229861879638054007019853562669927766658720126340781967088088113995834312116886868999471938733713647146110801810792686178418341223459773759215308835047765776155701377110799994840791999186277420231148852074199968773772240274042338050344543476194299616153234250982973869854047449660881928558729616820850223227483449667841666551779928756747601488588533482721439949768134952222456758130846611821486745844124138346405982841649745451478634379180469243809467227200204095944388219843989981131001886810380233604247444738444598794927723087408578595636644247589818830114007475383028890949960180193770244496773800324187295609799514975484893314244587673962071851008880211604684590556689822952033625678640841621739675483784064456288922230588021252606888516652758075263245498029801031256726418051283725687158845185210311729007923545478880754731334151636954770140429631487579212627942540177864553882905682600259229921220788716111454706066915489510017443121059987021598907184365755463691304583283893801031835616810554140631729639847323981958095301931376657899678141725057785000400728242496062216519712865386651162449246702556392063936594524092618447266096494194912895902412277848438065474825156092074745146932592304856194386667087522159311378957398591986519939485297000112215517387910873682022379286753060295079343384128668093381357917977727932089545393595768083121737324764449744641725520610037082460901405140318440384207667465096520378420530206166227042184163882497156070511372294416049422334580819242804891348712187941627509863995479881284143556841815607181489689473604293405244551405108020158779055916596181771249505758630255431661071188820573663570609686981853372075121252498844510921087045345742986267745970580738692671218574989530361780932111292021685099289633136166717340199063900179572609595295840875514806118618179512372305162389978854143660878326860002160609720097793271070941440012061701487525185819537225634132601513359292655992213353304729140718421363509199426340423492958651444074612997896038989150340832358134872063415147189207315915434066289602278896410621176478497740821931214835648435922414425080976940447604920522550971741564266976766645650897654425002740553687202363131334359063058386928736968391328641218068321957180951204631944902621235801801157340843925957863433182029079550378322187309717115718520731937796147250568116362754818327189322947694042001172474249451211809050840914777223652721745502391173277094256465736235520709063806717543668371378639854407325015063047549675402674720298022661497036315173918702194524677804699861933039525644717560946711332092568765168665893363164758744155742073897073890921972922548851077677800558958106355281944357061632353704232595347772481486752266140504425591215428056235311379906918146737205971137628898737094551859502078385704083301576303746984061804455439362769430459828925198098887035639309249767028397332051095213537324037562674618663399525483641055310057918276451694970461422698879037131174187836639713467386848548840631044295367122787523243964846280089576384399333981358286957458653126773498319927255812618874516411084580072943334741620472217951351340981562050476671719695569044531935143499886183881238089578608997136570318887040737333728563887935922541638395382726980989249492048738815642929542896921186689830944980536284535658316675320747552295150428722349326656200680444015750448109946409029456170512593408619949545473607440761317664250903433553652173287231347547844978301171181657628134338263487315210596765032962342963277007351054808102854415393304344668811258899877128959800594909348879013323130556950254320119364983699977141863644658890265099792035048542999140927063795318423154355724638233801027480720643629294337442386775520517986775516327879470445897970321089779529477655286848594754377492535087262313175600557269976741984559905353595138093738364961236686750564973431922624309819030986320271659962712607808624837333940747378809125598811457223694127873659031296995850653089940310502116663708383570740091847713515610595132588836477669846304674202382158451960104148973221498143726053748813000792093766914188278096337330673859633543269208022426493734198107433722538042697924293634722452115648915148926875802255543617903786032406484668024168492649476171856293521867001826555681258230466134025013726208494333529988174547905611559705564191993896252663247099664090987380237961955870289013633778526880925757324607995039269211121233157220413184068913378429360496796021767344977073287694423850485405836504965200764946400671653900083984728694008116902578744076202184967886372123095167270299636740887593421914864518442120858169919516624112424486129906708145269238932607864831982904393395877565419329374828684319599398494546646624814380847145269078742487160452699826256844732774577051045158575933827841434718620570370380756491513777487433264736284735074127909882213579258913089177539579792846899166609619156852091553519291478323021565108899685234647693102547861135205925656322330697192221614481704958530063664856028142366230969585637557155097738538207467236138067369883072711399904711618213701318300505720565773799267945680244474545723395746768987905333046925233474613506096434572005650702954068320171361678804931861021027807511321732698985678794663802508254708486275859058764153680341868526982454910695566412619591103635635576524444054725619194936604210551691382967184660642630290357383448903222197174528665993309074882273840847921314427594035641310087357442092232457780167750004692891580457442110695382152237510027658796899577677482807059981791565126739814914105075618265888624665805424626541059248027072827156676832245102414536943047572918723699269947524954543811357849636515683862808437638838255096140511909414467845963457526959653588878377307525642766760893866506871241392114192971626966218956984998687809729830477968318254881264207536590402294550508214518473454067094795081761120520688388825467551168439159834279873142452967265124283993252412001872858183839942390897616913302741344898043557773141035922326823403009927735703676306156588628740628262754341307818267873969477670257363889873177854473122303718619366424583350629343412641701223746665917335978427320315036203735386113858017631605595555397697800124206160997214927072168124876506521940384368143689123881787293347493495942890056056696660362385357415738269694914927050826162805134538168469856881661723957610093624431489522233654340783569989651683681258310687319596433563333052550335097138583246488451753264288128396789394692607662512547147163491706538085646763537350408908834106524107787510645996258144680486010074723891949252579524072596113924340601012074648934423055211719473635827475034130338369765640304161413981982599386464529104768685394139453512261293697609459967523445941035911156151390780310079594432142333379594524864139422079691696697895690792139217354447686038780348291347025439671487445359298986685245741491716328258718930060048139563246008612114517683377335367205351735896310313113401114735165805504477765180792180461776999599211478730211800866862904519519414379317851894332188838544878348943377280728829960524340706893994298515477690640785260441693200144538204672597238592598629810366659653656506499916149380542082258408241307708260431193884531485190696637785189256839778168931896973230462546214388915665065291122903978009289681310580219464527149294343096309744319927241517136373087300618958664963589214104596305794578852882127020968950755130416029041886430746122729291024817797175517713797070071201926177646199446469967713358133915927920126383311460069436051950903932605099806101293427125898154415488874898007711240906101672666388242798749330574727641234779208251296348656892468625299095728985810810054056660477566407113225763190038832871612923963916355127457769373394928835769986250628952366023212948888691408523764094853746247822351023793279640238548638240270970646283544185766437762511941545841105298774530913445741394378163794465239734908074455593488217716379816357348044832701193955607403749885182891679426777621177859378123508898704028860684004567704802132552665107580663444629250833566859258712186776345270208619148727150451743045632101732828753506958430627979278720131740569229391251563220206533408286310011752581752501335069115410432989569666180767451892138856661953805623630922701783514308452736274163227930432640692706212667956272982907936369901905005655535000236398689897044989624441779492494183532859721499425276284453148922586980356592975845092681942369435282488822702011047519518604665539334138822030657499074183729500886097556688915839777830989147339612648037897686116466491010854136702239977773221638328609279219223006865477576354599705785405422288864541645090863114415331915153897415313641656786121503395065284065151209094507544255961306754767563390372988766808824857610519369096340432832665949683061234821951093142735271819478563680869759324508390471796367637904087144992662853218535703475986451674033506855941278556393173627510219135901995477592756013357779256960057756402706441449622245295038292233987256020883198163736452915900880912132250567732840541482781636975773264600266109260658327347289677936587375280381634516286271265633985836237563856441008154476081388568952260692922860269615931213827573763327615915372601688738474805183058046619320140633734105355635893176931718854835322771527626956279198558645483235277067891705908708957582155986820351064815413416526985699496899697522443833424356749522889186001739674186403405280919099530568800098577927517128318361814159019561012735067082865107667560491441942689049879835259507361493773914027796850112572409011635998199440058082833225166014569154834855485459034169175767984520808822982711703277498266956101317509150225319259039221933107375525801192328683720225347053302187936522305854950561760803196910705316991669316866070080254870613884871039577072308063557203097982342293429308338906908338667131287918044216926659782086968444154269325458187226652581477879608952394193283374277073667426079068645434363534598810683553531352268532279544968262717886541493709465493496453575553773355475124688298310872565791450893288952015943837216608085062529824936043011261940467851340962027973981949781586284541318858840224801100525887216516896107247080819688511943290826849174829324045056037325672997063504730725418124323643570738105126772151362166567205683131711171738435198457436923214353231842799166440892635685245290451070187184760503236583176131260549360679475846238157531334372579787997193109074250359999933749917636025702910940641056166505129268780246358890277794472206711366463265268470930829102127174796100259609872766867190928158381804537247270616596586008544141655186313606767326125550445594826298511132051143945848987368863983103302818405742694217717438118367624293803674143797631681125584891384603263775468707300865606170892405694027510977657186047781592338105774866666607166105728346157162056844803534344590632102197824774787279293366947662617168216912671223792644330984028026783065169526315072658235222918100087578502649535891967360306912318373275219263299387349431540702490792067488795336326547649195172208563487177927392680142162992452276942102709464449910850078367380475349226653142533542926889330425956773901483193609579308060007475213424898988793439563337609862121187061915106058256439565851871353497907384710234990457649562975402090631255527833669471478984976827567954582719252158823333186999688871980543855693282047490691721764772204673530949576252866603009602289739745673986685807249238647412152152810428630389915812252173764761082969384950141864764123721674917078123114227612788226384269413991889227276003853450533564513910645365285570424488092819407738491062851702027504106255532133947945919253634997956299204112495828814205440667264110773980675850605470058240925596841888625475682000796167068093715105169672207920946792752893215164891262118725307694214225735048677160564681090354267983323462933393786943157714753669065000766143559841705739363661871541728981389990308135110689212796692906643965888103113020020166417424093845239423253679831222572511859728526256115735114873889148031093836602976629824239781656310028745601812643173573006600959124920456001154515040816113636326480611610201627013910011958470648616428572956169213949692388701124310824779120039573664883664113801490385475194842200496693418350703169714640726879459636122572252176139229783377997982669211903931160564807100041954170769943384729830479798468263844320891078423900981642748794248203227104874335243743210842262922658805972019935874054373311193692786671494630735676940191836038932325901169114040952540510838031403345012129391691149416263808077578482752654815878755593777855328601797617347481277824780022233843119128003158709203296866408956945950237006739484181109993842090968056637477634927297013045218633058393689417753706013192923418052589156103007742930485391316593968674817078529938742990058594881129786843779746268221890788606609580025900365973928067726659367959257436947112011006392069853048290187310074410513725638043906410985857608036352207760221300001699952889410630000915997014653524590864614819402837189119352265555563827398889310940837460756071472654285765278499769584316898048686459243759529731313292748062625149303506710238406949143543923287110002898284120649659293939205019120734894496996262321098592597732400501106845025656601911345269381625334758925196417133351688555987236317337306599976389852035460842206241794830684686900505500157129752888110193873636121959201067359961408685041598197800041434421536531046203712246904814321316388609981469557761645567777694131235256739528071623246155209849150209743470183205435233175935221968715219485718196400433366241578992551304268417433750205276760208926218515530783030586400954539005456800350158694694226764307793144199115456274344427241766772446542938236934449914264905642292263101765893553674982583614902444209267495182332334065950024229839203368057413257943359729905090671992839583527219775423171919955346414496247891666670847816644454975755223641082437379065854152854473700956413441112547239368921299074056749613097708113428096542876802766109443210186563965705412963208733405069111021500584978891082781161147163960989189537725844697141670730115093420035610544715922985902266425900124257696012211046138756680159658064562943462903717681410454674823198425761569213656552090604137831244744319913893009508510850639274610618295964506503782933680468022866185890654008501958622143230319934461922734494589569577381172284373721161946249290765549097882559978191117582730185488203984642321965566482214895471300600651015236041059366753143277503807689894634622717361332620869876755379506206457469341857522993237498681935819878274923987875581933086204393262039765939765208661699092879209873007848378712718112611574213024308199658742785229082427359085026351696841534657762757976063700978790078394585891270128199033908075814515098151060085736694158479481820132681635417505799105820410830605936288166664355300716104197392569335030834018427167464858107428106002122696659358124487424872840605423502855563520104678862583315504352062433913585724673482967168415619216835664346078823335362373853788824064281677144730255731758830520758718871209366553913669755932241326590480827903661769376265194328395617282592924751849981226633326397558650448936040715468185603153712524056772832837556094232748586439029414336069127270959519648017482875477136686493025931193404286796803255269455267408280732314668942668628489998677508818392681980365367526112065343427651456185997273913283096689091725535496481821029635281580912598132408522833027506611786022360483150866032466766440899061196460561506945890534387884573470107157563409449139826980832308395723284201717862624090007543279937533455279453727467047469201195048190750563068561922990073884159779374250286376997017083432549546876660399781075300976322772994006907616047256285693422430875739754792514002289527745574242720488996373353486145608845180369499604058224750953816600887410513666496681089514630195786614382537111851071140020996627864103533876314645245997808743290695857045768483615944049887274687674082815521119776098959797931920099826170348515075529599625308055478529280151653919590588193651975466458809167875953324461856378945197116607548103817059529869434530946552617187139012886715508135396892790377264556005837073695649407534308524549019127657706934102921159074385484187879517663232854246306119400332576553057576661678823565323131903893636131223082985907284893550501536901366312494180495163137218322880484188008731340859538543997160485924689205028892199861352821608964434921138465791451464994161175228312415306847370494443573986234233627723842297943483179889353240275731977753863548306582273766595923351623591749384868004122172319700099769384648709956469202353092145767139706831302097593607208704709986520305448419276307384391201136266919964551936862749541656221059910011517134308853845341339436386172768481158608627665162827914112340329486376490570008430256892652551757611648513072216669052815548272185838516121186208087333663793994540421262054341433099037614235622143854252557357489524029368758344270132724202064386798312589683512094313970705218760674569107250341042293992582356462620273828264944764426528577782695810056375175993989741916108622168427688078457758022721659057715232749564158845893747487344257242663968795746005909139368867979355512713856922202986265619168431166311156114722107182241696125926147135628547804291298379166230016133452964466461420150142580777557098634577387691320258319930603942174115485836570086125232170177666932013076665420909471071274635211207082127286035193609596756063704540617421518406991828904969781417916291466557327003970951918765883927065474359107701339748905826194649472572896734908317195381293275892323288504189773538306565993394004678381957523023974767426449412941574763518447002631690726569609141891062194095505743472533147353284258296831772280752467551944369490855786788888225815404537290590284025818389219090069675587652251834557068959544273980277803900511367831652962965934805471470912603463802920209707654060506889099677827894106966092377488631007617645369092175902372720803997290848060084477551814737378724703166326434550603769799843585244467981563653309500761214825682286288945373201185669136730818814979360357045461310297560045978318674542284389507740604986499056926721580951085221425568464610835930058173903099037977156340815827553643786275439113233039200257890516491026406148091261017083668269749823337136504299322003602352544376163869301311010494903819490752638289511834542627081663677173617882740479107523189224567241736825758764514859475481975818667687628277331947508344455600074094899283502511554702305465720326973679067276290338530970900990497281265312852902337294522049095258077340999896744824393296090521361070869802995745375254772658264925152416429974144010643023079870981425857545562442139838315188082488509373265224794599018052258363898945044066333702971085949356750048190470398687339019551392361869229905169426972024126103343980692024429265730148108972381626747794855267694150206299500366505402565366815832101919825704920860120221960246899311783534050403852114434256476938870302318906050727732241041798685860656471844724988940957442067078100179426787238278069735223566972852870684034277151666863135549902722862022174579397061841689942491013319801073419478999565552102934819361403191599954431975602792323848735492315915834988049059562855189807736891318326438041199126521002858176736255585101600386863210033733103514231367445298155393508247421338970313233309557054864199257707313045642176256138892305115701293981034797363895872600442713251535202261790745700547182428479281189966794584960416293590170042065185700946647069184689671762102152094639970535037504563370279080703546128270816854893776556579054976903731355871767070717093649958951986445326827198850214683409983732620649793716351432953062581146487363986666302922588577242552465408902092742572091500474043947532440858723964908963114032721630820811208323629279362167174947204311160319230762779049347702224530689727401277889919379554861390434699410276704985063259331039191248398739499636521907700929170443227873565721412640032142087864888531577532532565117858401577605683847249882785015793918721006547559328076471779496245671035643190992692526536792272796948161704399073252503791076808330211807561182006712097252761242921915093648022235211643133218644365834517460042759805061125197711146735253712546460381773556555220011901739856308032288486176721412844431401128823135926228379682830607893739881256072153435360437304466926378687997165069954740711480299595052580799417329888056692526327099111306698497118639662433831020550610959181624855088521241194742428880782359210540725132726105285321658474587725807728486232832355036250250132509026295078775882596427652974528383403112725603376389597468201936943186815500100182896308976450988691414720889432485099201520342156144612547158601831533985379381976213744635845033521670562243307623307869063567638730156592596798325130634188667586371094556428676099364785904891913711099392527588361538935397858893441989057064937716943185084188048626529065639857316811966983188956816171569481775766814173090289682185213377011891817784707028354810997525603456349049407776707325353493588159446297758399794029828570818645258526180494542023213688020101016686115222077673498357717616967985266003383272354666042769226426275595937149609446394214762528018565931759030010575394368748794165043269274017191005511023644230173474847932633118361504397530752707452844912721172646004610357775524257588837185996121826205875916172928136881609243704963092982643168089491996282084102994569200404429683786331056356234690710084559926415028264981409516707430233928100213235696395990319576211659445979218250810015212119930183562728656050593046142679165161419934812088830839105306656256777805969305138126910882849482351964590428834664335227555600309192254506406104692056463103827904305422228013021140546093819599422235203888042357776704842432481625693083352265065963386775352721954598071893159363646807202422363156596518666365171271794639917217980919616987878447344447557952293204377045672755665309784915464120434703756715168177886850238732987845445667463019366474158112933967920048150188273891774774473056701021777222561390622319087519900787873718826649876332327899295287386544578028406210695274646717476302479316288060873125579007063934015391546285451696846386623835463410753690681352597701963022548501272299734125326695882825076279494963549805411547363649944821237593037979866461246992112502925107199155354895047195281465549133392332394531783869902056708804590239981979995379318827841091466661067140632586951420728736976101395174718199303641764016448520387550096567066066614513849400490348471755801825284846424024513520552874421650240292620953397495289536874983472453956528348589169629516538201098239384045584982678941485816481919456360390867996844272674383805308599279920475361794568408184636247103974649361038873157069247021165011096759582424470399005753706604078537962457675317823822241601835761106885740672120630985107452963598624553846691694601910060820669332917111500261590167012031956198386019519932010050554037709402584801472004820524818446511355147170604626216976850089148090792337665456418174305143771675676189579842775244521435925701195024218987645297609467188175462773709329444444614765736998749330367840490132876628670054530768092344394329894098025505416509460648643310703114906628801366320787203924544406490232713282261256897867280683317121873954764772159113677289150707546841250634157208197908778923504267491993971157897700609551923132638209145920286129482310122866608111273587753607864231082122624156306236164648623886447044819364453301045950321760854440175572342524800360060390736911404573417698279084826860563432352063837412042427681343683469610733755697611926036160017731067081228830925003479361447531486647265700215592873694115410945182822258543621475767717434917575886866159636636342066930287547938588286811541936153175783936198499499612390716315907907725312209724197336053574837359374224206186435217730477501069227868885905867605238652796143254426897642335070323607982357057874370357488699430939941578576948665508050344471415893608486108857264200499620732699452369797548292778931342824761912378528277454879986821675432819295858422778050562829557489749076008712499883183199458734917124857578142129778138852089523507433483984819893221078680670923019793214828424556936861784925652355720254886254300144611786720443688620223152594666176426410621856661431860185934891895854712460886049568635108611848231056057588676484046900910917003054599949636105475695033850382594323539660945833772229506801021670977855406387371861883581682151626417630980274045338752391630315818927998935272008098977782309008062275781369192699084799759349053858928838539758157568462016092878216511844940771530445217824516774118585631332971883875115787955853623864286877956594444940673477338067436046171443173306676971990562298016821801774451178246047881797732442974570435188737409390852400560771953893824128846367038522126880012369203029218010545064945704265843567012634731663577621290177204134137545329357678879186446440146870634244822426923038072833208259843380986476859128149844283036774952954826793447224872166865601268993201646907123114550578089145578906610377761540236995270584350445467647372594521240807133498297634274383495735108166227120313546584294990294881154213226860402258720624968375405494696522300920356937897323455818454620971817295126965448787735255907766530782554501113373280162604247383387483831552919997953222371385224312237076931572899175650461680798990974751596114245461935791329815651075299254435861451895992117906876756934112493124798164483861616624179053033258424409931121168029382900858523137510127687067539121805238798611969294395469102350677737051046594266379394833300528954618995749762672520539754878230901504792569051761546917372927238867335554528551318601586116362814698777222091485691266868490170388072437530609701418189213803640059454912681402426539680240352088906512211610618844118550755248549096340222719293716138693668208397932795004573312467419788740136085181648352413262776258495926476030595070350510601968435188024249117159588679092602406303109828024653488041583096593399069051853673944818861804120738602755434223008912777668730495430218563571195709123253551800013604711577460968920311138711410702762195152173312740000555163728310657483455640961387493319625144332258847840268175796523765778958996686999389543353015641476634907924232902815722235953546544806852783163516712763221527222093818603707993116509376902342035215531264168266957685435225025356887499067075721951273701655623764232150697108659253462562061614848439751977629829224549685686815870304061331576475945905866259450767290645967610178193703957853498564940428917172294778319350007251463093848112077939493801690661294815804674290206552333278898831600209695278232061628085622790688759973942641415448435918779587945546554028729928000937202190085685639674969435664004156854664381062933853945461378713391947979866114469382102030158174455162184290530124270786327224986373165598349153733947486607011663623106637425306700949025385241993553564855203407881136235148476681198872288970716257852843740521921351275070176996407615184760276440851680542620863859749702718799230532243147058957592330152963866362809171566500778518072035909328238498655338838772168566563467597513953761148091651917759695684276819311093946158878242519454733314018481907295033790260542102684357653543499067449471989466526481925652092034528970324427793121083157834833236989270031675049906313823894243316152880643681499153726411376393464129668935400924719311105401341540937618963644335377479988833446895185032816423354640355731154942303535688983129090072210914381230121950961133553151734062200974093087779357746892310573951781482256740440954384819186412572331764282375251909271210830440229597130601632565124709495517121386089809418654173159774273212165181853722401236679520776594561355743401952485033163288045291338169396382518285977439258791847693153708544400016808538631314186103370480527110938264933461987385992020715873302426442560266867877969603687556880663480042096407989379056669737467474516597505823037300485756112420344329842568280950775802620013444827510116883371854704394649418152827995974599197326093243054926205339210023717595322136507719593948016188522960189043894047437000407957134769202226705799078322881878299127780037571357559065169491477072548520030231252454239754181805281255266357131077964297624842715558186622187438580528370083511323305181096438265179876368761457303420705749374840228588782903559789507899187172712768857956031343863215594687178496773860222559735210968927877251512764365411283723599968362470364192715144080264324375225159229686287383132598221055870103133943658107738344835334228587593482433385099780791983514963048481536240130646894598172386050267953108192548950456535496625884350557963346694719207736076542444094753009358830261987901487244071728741613823618172358191957407230253494331076957254985213785053675983266361914194944631652919406643718123821718962918507816820986604210584383349396114141031671854234609184974460348658400258158020036991578701839150709625071255426644576122723575835116728150673308906595977296252058524017881430397130852260680457424338144273152707313203490590669724462741160037927153319407573024382691696766564630447775323568278999640032853659387453039992428738687936898874997096643142613201052732139711430574259439613938148099521060085443399704380284763598565307368736072079994298774877621052767571880355651211771381746562907899951053364776211347866891070909119442028045202382342880170116931489281520600031781337632438127086049230884679201839904636059370781744622709599568251164954716161640193375945776341564460626667539316398171944518388289694148191731767568504175917765454680747222862744584707663569912084005566459753671101038183364055293504085181877541029320618857000241284624247647002064836163903178005813415258927055663662821634732108133884874338317672688918574943200258793785061630253339783206058645754998928717301542306027166030635986768155874285762891518836438584747202127277119029717797477411557333191645173744674177926113283937325704713171958938549525257439448191450485766030635636099532460834317963992896119588557099703085308126056955716295775608625634191095377266323285874850360660132957762401173431090129853311608763697918981008263414767173217861539473035296170962074063431019514805294398798305558508287855367349710244074874476290553949639190443382140047599540553076044420990179453898466554987775563001996902867421646999882389732372273133887539829704114090839652946924699249659315307654511463994256733973861162292831329084885181217337792094205729866624814179646906488324946638737750638334271414480502035420085751136937421390406939046533832625770483603876360597467908030652503188750657125716031323815540529653494004437423671844961164681401109155117846319570783362247940563597532482490499377723091734497097086094936414490787558801832011948016796084469223480210460726993985368872596837152633896012377458987863304923142141143063419418980450634824039202152121332344216334022061513836938756813280705078900884840884063340449475762898647772145582551790676164164229904824178298025502912265087356318589367087425937131206143379459099041901250464790094092974855221138676911564768468512721848910998971198609536435097284753911807947232226722124486362700304065039203057407002760747359872857432521088338244093809794567426270338902482927364338180324051712395319411010401689028028823172423930102143148755605480658545624678723107559196186077187279246600902534724939143733009330671395621117306290630964069713164744655332018126546624553104225182920343672508187162187571849029378605818197364489956664841120765490903283712953345636064799318834621361539059477973733924559682627778180798550531147824215931719089999464656142416630169352650786063722062493280947434895939275688542619528078113107068462820061781551659392603787125682922111024208507274271712286249493508601103888070555527632685969871405715373976300774361563125216837687020241473652922991651252126763720294635914760620898050989350318244924489839562097042734027542754218111854600099733079406761756698762401806484814433733690270988225887335485968724158266012805816999303792538122174849805459896629114163428241380530031605133053919679026282590395378776056543205163207480260032088385663258931772828015357398335283441821397298327184071014569082897701990680649808295992778621697248861566218516344669884519593604103097831616960601464420566757605556796614889870814180643838153287999167529385438783010040097399096022186727327686804125018669376070021460488780018725419852068327522567070922786867641951022849055148349409493887099768571745260658152336360522637834521357537785664643310921752052788114512080923914007196023899986718787584437277032895771751685052097356715710212505883639271168428353273542899616395452816713481507239906681380510868897342304266271753784870999052340335440467731181471152182331399179562680377002475794989411003591668836262835305301997681486026355927556486340759541392895589851512538295877537284599029434509641513718960088231390199183793277421412696412829312619548308365253969556016002434347863741205612680734339762413365247658264043231607195784592401230306327087607760061000422940594807591749928661426892757000207045576323481337269909165698771165030965540670608420851335025276771828921001130770966078068487657699176017470352521478193927742227720423937657264535382587825101096047523180638568066952646248496688453269402598192040517000725789123468256672230718124906562992509653036489196243886114136152731929849945285878099125319486793784682276858913089484961437401861614293528721103951261384276333349190585878950002659997453863877851892531438500216826606896436123441254617145486496243642571380709064740722923728904473085272596230649856017734131067986520450188159615055449639027353053863855436984449862489210236280031253619650284396598510875984047539067856231856864091697963175842674323034932317431579200672748743471318171357868843556889486816970798512288163897157315386852211835974783991293950671230314558167598005457056934617333084627937091211441359440389177627459001583967055718693888844784235268934062810751686457714693000779880163584129747202564932042936095131976300160044229271240054033284763174297610108814009129790436489975439088584860162050149635150464958303539991157002503597689452182869802773133069244065328807497544957162953857356544180879212420289590991154202258894443240587862167549958151368207318900789439338614851656014294891772187691944772442168415482120213820454527541521832014325785737711698741313925199041479807164908543225285922972026448736638930050899060440368421796565691191388103882228222818811651002936300875834021064001213851887624893494627269722569429740747191280353229640132218964759540570935899783367773131418960683068615404810837944554293029668820997622079592566873540170478443407209149945881502553946287796394837210414139561995660376318647074262345140928825333371345456458465886150133121074565002285274129630579857537495092792341143935571251927109127128246085259017471820421545855370599656276973898235868309363406654053237225247007216704424997828249930711203400220507596262706324155461948742637223948159041080722192353446518222338934672177531930116802851544182564539853375237643977504314244245549268019202957534286065912051741267385157813107481097823931550779380136003038292740722098202996447113722686335969692742609032342588567481646520704938039210606721599046029895276517674429061739606236623338048251317315045839473688338545122777940473808806235966707671584980687270686189285908421508832333920810795181368303406123025080056390322364889517965400309656215348902714445766386131449044435119891879592987855003215885029174337617778467499114486761463141349303791020926865787647256855472498993015271736894101355814051988138117860589537135445339618132010456986923893832809991184269763065108646461816927267709294592677105014128963395977916294673089081165797980516612522600823535850788886747808224468093556510128432290158165802254297652126855838821208226383360204687327341311970666170615675864860823698884946611899319678408147494134771074732761517011892786469920860971046682977312893875082966122864509265916512316699360117672869974113381087580150859461725173724788148735182438394747077925486650144133252260310898048197446881111053715881379656188852945209855692218824766778832929359548920850905734053179064155322230074189269426335469648391275697908247344368519637095180211943767228206156148664468227743144800088405927373172105046203276840542153690548089950279585868056683051862404404759375139430702196124640209030143782380799420153491353398413546631996273606584905198802072962274178451067015560156680209110088344465307065765618969105354841450468704053433389938764576869740748707249132146781911355079270167238163270818807735453169897010158267256137429873380955848378323324236234221932928051253288536273312612702539814912736733147290762770380481368038986768923216673561708798636815370829252833812074097350391090651294075453096649461493474790546576500226033115086895945886896153571103101004689950704782436887115350604308970365940963913954110255195596646368848539640217978045051761124277063243839587730301326056527041303387252820297953751777462874689179956449576989756035980002543631287437336074504480193544426138183989272911510287508561735405533013944950462826536388680248275349427634637958967266517997754481679883444107580718804864234218915676299206148198218330929562617529823108491836788585813847790067301841784679490315641753028192979657489150478176977410482577738074913972713307553444022319283290752683796407449129285728439195263266599600291445863613217331016071624753549511618718866232395392409650609279346968293094891464300120263069143668553201330840509125925519062698349248032566958443823633891393315352096715371275311869094772053296680212787106196436799397779234684148814580117114338559509177382725607362365819668504185246897427603044175906723183898821321740947856606774972808104772036355244283933063207622888055770494500456662653799349730350666737784446726132370901459200841353167931984894323496265153314720284744405614532926690524103530362244261597484823223237196886859055290440844709003649956549839693478251151866747050977641759264243014837127707028691197088541175678235078886971160097626560727425851203169537408174411314874696938493988994723259958492206621583434869218824670679784280942682772040226360287472460990319715946018018055019075340973315748941870788922652974212291671831547204052293254947005232135597817902616924152233837867591363720774092162245559846144288644238828345506399602804309997282303994133971749857475871965884773795030204362400032355051092600905384597499982690864032272530073695856605497036940287657814688532093569529902989580991707164548900435758771147456132600833870677037482617772715731531977770767506112562896201077548625537090527256645267371407036951321096968973917439922245227444554759117329061421810343242298812173605747007763675047069913267311510817270070281640124587816233104763078068861911924712348969603766955958945201847284587670572243434290909454964409902758728870460743284330174445262598351399865182770947957619494551619643080967566136377210540209209499077746801477508155994921514096409287354073180888522816122560958318286170132715779669153010606834224293523336190067733103200795468253185804044034971615765881316970515510570318104051181576554071414007425001202745908606961455141112800363857103796390661075325503765536736644253654941453008367072552408879472643341528561349836804606156256420775240389025747698893381092866752526693116139785347361522864728351378568641754016306709353201392760982463971006748324819502021469940127333170560507754012830252968146061101487356386644095886037951343206438750447334344880461386160299361826402553238418124405762434761000651357314620866697778057377713445036000966408988991140118692889370887373843954970241084495122191530983332192966077389758285797381848968700492495720431176245673093806492426578503863865550633783699972651472788082499746540676337629359596370093818111353953807163880360054920373933320567875170446943767173352162438982530964286699883247349097631935367685576816686734168402636743145363653145306390086514992570504405030745735558104115432636187018604788759219289799078563044543118954219080592587038877592017943581810329106823269420104715802169468483234433308077592492577722636089567819813897800129651118879269083775282974364033648995356589059870977027189721661819403892446078076240965547214436053025530839801496246234762466903802919276102437682158163478052235344064554544011691576049047680510601586731964783286545071567945402156436491561058478294991984062783665392138518248713312768329286794248160100287644245228165032142628730147742255429372132146400175029797390213356607801458014418316198694070907405105677752322550809723969661332740499845482594929811091584643054898814330218026168347410607102790958796045891864149379526794728990377929897948980039641661351891359175432071788161270615398620474483492024319733892575568465212988410192700655911644040788999496723174407670211539668408138346546655948713252128152188102097524321773776417553863812524616871010778679703176324760672172989593114411477863274174396917171747595494590108173628699747941907530501639018641224824244751301790513561510403171308912593767140861763800906631616915932154725969505290177835365565642190041406948459552878427891506287997809168072000430882859560119497754557748296244703586213477858230395425903284745829758429684036302592493354390306657543332399144653444675285870015293139814958416652840977389459884886045579803596974184836611008940305487751482359267600184351257226286283574595186630339851676644496977720435566198315491881699845435355237893296504888537096995254671842260516337422760001338374750103160102419645516082437586217536694034165661524503045312298526439348406653768185225334714525123218315521957957770114618424805622611559939864300767337507253473191722009936956166117574292941485550015806027817270313991664520949884036434591844672225751221179981207912485029473062713979341937939555924222305079704450778699606661334152341646899043275156737681880175920047508710237229511368612580943272811307195408377915215091074790547277480275758858503912297296620370821277938363712289910988459038120522626021633180185037245476463368198203440864118316377725443766379749943011873781402659243668464940960579683080230148453252606849197296210224593421091597751725440648186857751815017746566860243351960036095372444094861782958138162185618047376036859361670443137195693678915217485593978817137945559284288693240099818337002521782993003930737717899224433678195378663129956386151415113926334804811854269816951570390200934521269445599714886511858789038929419305991697915521113082749942703011362950051328958279156717650690822348035575394692845331183567287102125988524834471875931057970974501206449455230981210878226347322156351246799444272868131172810871619480964053268876792411638892269436734579230947622383531802272275575324637619363295608799372880859754110575616567176299401931639927662962030752507387387419129803860277684361959289750276180704518232829537937827095483964793812135061160444868415671176398139764258280692380282948734179886144007323295143064715804836261537260460193542985497364093919464846393231648763730106754401743949364110470880389502516255787036706533253620604375196884748695982467540784596238490906661739793753865212898181791437617290990111514162473891562666703835322898146555195588376585199971430889522755888692474691261754193193775127343082499338087804013716780847700130796757041167890089863639841571079635040277735671932815759025004436459166360097399520715331410279875179998990934965611572165629501753043136378241439451899669828669127222210529790219500698357112086888003968979223445378284302029008883519290076085479984792032639140912671155250765537132471450333633744528836545362077420582489783389878554964801359549014866770685307552109881046922338205102778402097391822031555544292621616493662234535410909385799740030727432499638696083250676466754977636505574962320449771527188125262417481021051196415433946497402487371949258197783901194212084397524580327267588225296539490770566924248347497169557910124205274646516953929684153536728325175341270626871788179316766930705184706432247814414445157254437970350622173875030930155874557009435359732636211303031617792892953057899042633175347263806603470893578522952810495246826952646165311504129199374384627041726841451939177437645701210350971825752106558658397731345929240409758407530303372669670274709339166159620114999976284303099387497849033221104165918193132931299698548415653493550794116415704643586765077483435688445893332212011844869695574628454191706263950829133031364176366006385805481886288076030555813975770384211938948968662769037411595907162677954313779654677836316429472262652662718912784389705380599907822911565538291808324000942799377554921918636851941178000165097082798277555224253504782929176274835760870430760964466278464598446344702433588879302209549775001873592643758148690184322761333208433520963741386205257074484365929418782556094361448755290549643827611597231309984017326030432477059498235581582605703369515557064768797024258954771052271500746143265699886762264666541944259204434537177086004125430957411771828587703177608099697992987258998026109573960526912532112012014987221809507699545059635158032460544210259123442909979063639606693552454214550800324631571660329130959442692753702476794559740010108999790238241714726955396195650450765591414388908041286639991876557444625299431673433772149831435860516782301172017889235030056595597043658546912862378354610195898610389725839600263450415232142989430996915485581774070783303855502717131762723169114430813166090633144642550527208835774071155350330513673078156068651054726970629829421607354211976365379157943823269941810297504142183169813057465180976207893211762909629336077014847858597014963605661252465364839748692462614094773631319522550978574645268967497993771875351376956602865546166306545181704039312226813271828483469409190439356963112293415966753891326854322046896508837345487130728324915895969952060514331578422636494593593411202626409538444863632894809107838002414458799584587122691429457329731771852857915399753212521249167581654337908236955853929802677393019371153530785131136616094087473015849323474979220045435574106269265524913352260717931114150994359095266474095422650307967320074657426565523878052805333387044853672793885658664674281644675352449046649145872562471179437017491678871576059696540500070416215857421919956061139704360970869639821963848133965032993853425977761897223717403738532063925392487111849316946308815907141599828253702057396835294246980631930455527514304603751289795283817821801178559073235356550783462003417710502269555792530878944065134480381503839907540951131693603855810945548078191596756806389995303529504988598822405796327434717129602311348360165589528152953425636216633395714921207882623445941692647850748183291443330820573292422717855000798095172311870537310120054655307088159551648521993167912000592218929768256160208527959368153661641919432834342591692518072133244146413192541002909680418222516069876402616413944805791403917851951388904163078636752533303568390221424314843530959416289166945083518132893544782608566804277106561246112452993716243234046065106259824721773302399415798749189574438920876966130622266875680567018629508350495820697347392889275158459489106590804462740337824932758741722179359704047489786238908260366185880979689110212937720609941414984125125828861545530890327142492030550497105020005934446610981312795786090003083843881643881291906992049955796139444597787630964208013751448031340552499239489733467154158826471854321380477059571057344778868291040240673044464634615672416006224571622995040233093789304830992927082829279905997102804179377263913546664595358044201536110377540686605668772524178515217887408442969083542527166434983422729867720489495010197548931153322404241761818962920463624610850920258117142783500998743579217191621677152231199769440701921575706034476148611714170381530440614997416898067001442827285699779446207135077154367514995023148026742997522585111846828305273830478258423075232651736639670945375182313750712496296749427794845099936247201458607996302422809322523863839545665785720057401316232916616263864987957280160595026457561495357178307930809189334855633045606424831813415572407204996983511513749990452564611932947981030539996090743873040777163052613415403758278536434039605208822798524411650246385471966893427444888319939201774118980820604386999255815742045267168930373344971077612763994979904278197734546132410871731268314747890284082571332344895991758902225644114530230531308690949223095068972896717130103106616297276753264646153940469085563655249703028491148992217466292021260593830188232412954408895353559324576706029055545186911339359437396447259791642115636457002558684251077650274720276518022618376076358924560927469380198487993244064045358888228366895111002281064249730859956068491574482607149004910136110120664532587795569671583849790207215366800093153187067193795235057538411160826322187106740602946728577581870483263831765025504036506065263046215530323675707271121144879500192918629528463821743257395275869679853350349677938997223084616628335946835356116421687806031803101936561344669643532382659253928259966807532996956728080039381819125075920064687390871885169835650271543843155571482577544507623293051123164703369282433648981643236029904767947957777021864177560381443455993746406447546465547452649418569769069906159009098940840906034917455019450040637914639562684254510782342813172129293650069641473656988074118029752861565352378681554442275396714823143595688028938392483201183250304705619259282073036323683954776253697732835853627926672041870355160866811078042181578583462004851623845069881293646650618906895941595069886047932323515268922619217096255104887499524474846348135706179712540383876367317408334088335876115810326754039917462216889544872025714064419101289176344177361740491374327798483887996957348937848465258124043001994532987085125176288558970089847130047971138218038709767286332621363729531672296905403580899555817646376668852559301073359247064231394961362444930276040302522377009327730287369002244055955958770063994350155496106249122093867081338581829661060351940406019661971125065339813617293884553612249852215719144023646425499570029940876222553216343940350908978541580755786702463028398411385393160883334163250617063187288494194470901604469233022350655363263287678035653381658447129399883479862267229398038030938738500107829329077844375734498571765988676689154509073288866606029750310560506197247462132777274219081552651346047356614703650936187651715066549345788759363709289337940681030069794456848742501669536856613591417752163891375594490854017143141773753848152615607141517895583273673696872222659247646785114893538727519751711737635916039691033443511354586353035406767897373321157484950892274759794892136329723543354349770568958295667074211719208928249140611438080448550752659882329498283539058434769698572163589180852998444268855847270410017081396206757127437071980698310183727448920509004706449064718097522188334899308585345832347683763097869262844493616462819016816434760048955522624728781348705987308336081573512675316042126585059173098025817399957050649126686159475374598071227184493430285698762234623039095700288409668740729441188537346207378997290666907443751964714526835280785481309083368013191285457088249475617820592506492657221124300931081414810700386803318544545772363553745471908682343950165053606568883184610068241837551994907769867563475617419401885524217533485839304238276211701690572075046450319604701529953977350941557076047853944846233867116236381989357446777445183386911917065419128613934225386195242929561703260237462781219796218949097088277115139608063453395621039617566291408781502922852194649308154778346317003253821635630354755471510550560508461636128057911247229247491079997899742066952130289767416707617130580478119721468782020548872075901683337707887801775249116206789412298076040410003208142323659120295207370459927477194323480926622107164321413917144498955822335687411984177495731387020133528931622590884013076003332714735515636194833244212227267105998201253672251363221815274482722233422529450060851190621938906754084231098968303977178833915646573952394443445756461480800306543133833301171388031479514129005166499358241177301258814097787154125573531115136926344881058438211878307014758733327027461387601455303963796788975404371955259419645698232774691788453708522520148063455434519632518158511865700693829739623689473990246882254460052189963174469272409816246186651461498651955886503001210001565489853690202501903495135062258085901616880140664887975440122042003792555375446588866677368952116016829436214027616609125163029486367887140269704842755889268831991818120037108639152734497480202309813544203492571489147754175536232039631497232808378328583880752804406668860185117325527757269684334392651400827807576753866366049845497271414150719792472315670529333480045372310562165636668517434347667798208200673433938207645521994513991292700017010252162049499519493446813758845928133592696481565877805076967196996790149197521901995901327791823478390516174916196890255956460189258111698639145957879208375400611586459248829702704654589329879881673513034719607870370088075702335865860113382162631828326073353089954587668606808111341185487378129964204711637448563858529470748189484702862190163468301130265904566484462056198068885140003845726576581265283649168232759233584087874476643305381372209303473093087555241946032170572144201618701049897266077160671532267709657848500976748051425224336288202252636945424430424089585640850989833512445645929414374774815510019315392672949978445970003908374260651321674235094628880000921606791571537203503627492736745676902379362422790803961145945204094637650427528659550137633864423080985157111676909415633172787544835745886849162250890539118074030828258396418323236009428449842048973006720416973236571414193807266082663786012517429602389500327899608150453011036299057676007725345870369156690688921067329163973943658446939225542407593831690178830758516439729773832197467358356288951679522019797896181564161295937402986194209498297788808679331364944805434571999184175692427656620454838884143139592677340304016276168780794017184199606084718391422276276659504401309272288225482154341395414832156792299058821027646963853279853017309812383322595151029510340989623446603325312506229617217154987589625231549503031110957671220912880430389435363351259981822052460346036347336301225011165055225680958101598319295937918456368256474596730058891138317223942749956042442446779520779460844986104857867684995704881716617109329589067377566817066377620744183163583436358885967815387534323253184955843992110960905513292248232641816048547112709627506573390783535379532026979948859746926821688115565746598985241866278581706215734314824472707192178622829693016471772033414929380635835424140559594196678484455415328888358595409166191551889510543373343709047659390750862336391826722939727486278140747948978567722048754527893613588824752324376511219860222025055719417107414207170543270103383980827198415500237757879757564267951260642922207911411658936781116649356268414312890548017397847100919384268129980447350326034886974033066258068212255015571018021566276469779299642289886480136513069655934915805446500595993327042937719035548356826580706322092112597786346209422176504903913502064565223656214286754840219529592910855336186275573760643400075148996228331953926841567458851307739760595573628333401150178540949747324631413817299073726345829244820154038304839391963170119940031520337310608634071426315467970555596324479150986846265963615772491724825420858764202200431929803018629222287438517704054411322189492751547016389870207939258220792911119086383914925630096520000178849725047789851826748323017205975839780938991988359458898152087587789405495411916264395910586732116665169724008171141059241937285470308873405120027280852449346049891186198579362250816876715838909684755045117845714803358895307879457262542877098041713165570067531168246675648670792952284986037460238910627268017988157902834290487963349138906688445037388572351738410645704759245114829710872235503746341685108456740644492118839984662831123661334658226735947585255697448235058738756371476078660202310886744637670355375656962863894900831491839460527145392537821975076071879979039430353503121829411439329281108954630993948354493266257862240214596703331695977642090666028148845413672706859218918521766437725882090080340848282783713705638370118472591127516889511707891622563469197881300474989918469332436729997894348409423323212024508134829458592235659233341019834850993381669935387456135189481457775646962987706276727403354669156042208020317792626799683113325923028931817447741854462362509232312511953825675912733304000631402031678981060470465211549821140491545457315392571913754029678625409912192923480582355134679218110602195044790353594442549392906775130866096862165449288868925534470978020210637208960033405296122820362820376046985846474574410667305918798210432173986304821577190945139700250903429329850009085574635508109723037780705385432179959758170561923095788144727438231301294668888202786922724175125197469774832058039418681747137040020966079676437177035433802765333847246369148516374065751161203834808116502848584243264715101383070900396940288504946884623653903982808985781144801994256638568517465738230186332909873441466129927104016729274555636590460770400996235531026132037916103917707020084184967970811881041064988749005943510714480367012018461749522350243446338736016218500010607371946507826858934290021579401638602616738599967236708702246887423862900906709279304132640739630794120258717107812596447625602954397085576118151367606935469758697860197954249848126781251562356738405931543153462759203346340310207070337948644175696065736137659447253688264819312386965620893735400833409057053465852350766030303644333286390803840501864129998867132410604778097905825767997857858954837413148608614386952892592167262080029321406523958956767170154402904415076686584472570318615453728695554377968919058821538985957621501103376121659877995899322749829077297183974071136334710043523206346584813035789306165729425847712339903417344220835150193718804833635441833775708419031923734805662514179605678181161874750238341973980000037223103285511737263615053612181707297764539088969137781345745835352112402713730842591779153237474373149770522620869855533551616684992757307681348602990925529476552003867810627006397773699573655770630764062989428762344849697286501956605333957729428667946813040601885852654704247611582106228291870934480741957706602089611047039601383636469017809585277118936989933532645178529694942244058308495574175688529737431940615924766794463723933445525998696907626084593219732756874166099562335054381836923343279142458917635602528056569125963059568011990102783599181236884816834120659450500829004440439441921138279779967457120183220410650817141738382765687165365030272292819672035574247572853154024697954629169670283072116917333688603135347256148397154863111209128396571683468668610760860599514409666587717637008557316116031698150184317519989811608447735326789482200827097409269792808426599843210868286190480022511040751943037681914014893241785116309258530502462002568045687366580215562870467396627042169609712534899853164302481737969351337967257431845231298669051176584852261223941797888357993514759317969097328402305984494871334107508631350005210577117195028465919604606053092005592983175455679780015619291045638836897089304303251483278950874442376925303904603482176131043690966684054598376575929038654086896577826408965044692182003988771142886386777645083862020904186286751377591549190359604321690293238465248063649637254859459350443022064558902147453605133689837044440772399871997733111361433993641599426653978595513538332462626120164557079126808137471316151170790298499448776852904875882105484745136280237160699309369586860002675605037843434257658171598576167222244121081757198846239848882031671035526388467486260626356361269047712204214595823328450722564799756999393859350030145429390391602057233902579692351351035070824566718762599271755828339278075427501811318853478345930285722521180141961299087279350688812996421500049202804393231970290823040612270489517971319750387978581529628174011898708056923221729348276205477376372196203707809477383408211122250412673024163385825118811706365844503370178139751193695878141360559144269153087080083925339122204124519591553297941487073184019219468137102617856610065726780433006027091810200715145596065660153041279977231206186224908447504548669901126307361505635321841797894315483354353107373086380927956574305380737903823164625294552114657241383778158711729064820713286732892052848473191790889566775008469480721132141001447914186431882032348333449499873203009359102266602213830230271445738733724283879809902395239323286106918779001823715839795217211938077687977948401817509226395445118089491374499922118827850337602239584168724654047645577109099878480318731556077980533673415151435507597372317986671234809268086365170121690840191933638031246278734435396632781769725417706848759154293267135270669550308685111701561312273224719329487016668619880713968778490698009747928619630251503072749140831972424410097064031382673156458598414072926291323847496045070625923730178228524936326232227296525186067632782105246554093297440505808972497652825947338583283730630590216408444904703540574193094739016513330772455079948554533051548399626695174314799099082036393253278180644409203755495115226478786987511371672091096721121354106330439768274986374780979005536553949606551022693710219494447651368153154415901675245360931189196784331224127443139517127545618873383790281269126012281542692446052306398893144252603463854628174811812911916600375993877237522695204120368466425332601236857840097138119575596254260276568931593438872834063106086386670240292873805605113223088019001901932299728603197650578387826060705903152725951943849033246735580256426469949313813919001827771830539494151196422917089956249708285394955246559139692204162743729719493284719139471754023684721210658501256129998938323754492554484938810101379915076250221148512931742530166513713385468061367601340183910928339026041224377286903628331737556215092726638074864336838885056226111216455016798883385871098450744865482207288872202570322785543369555923534381806529124956030875909813866486570980679073478151212136858609486415628342494623775136768535282538610135879437218618565523081461688071104157556472072828375891769483354645502006836753281778470346926886827088164491176568038121065285815235582652443531058942390890661525409228590580271282905533433715172500799707124827275431040213550819939220977974835294588838963733089324546811245707386313140556771412309029579567312915971159267283567385947622445554873634153751059890763384772624804537496080194368296670510961539826248934565631799644324836092636710971213742174778388552034407187604862583427630665576527221644392935759310449182862524373385171671907678623303662438042592848154879737390282802366472179679430050730776638236144143696711636182367279868980963444061329493028393532057139497742862533364246687244303756687103637131749484713730324160795078446533418426835168218106101603397683185099281069742762318685897116331447645512680993146223077376192264911472768209676221698558797838224791171060155454219829076342097431021844920188417321727288839936688695296237187207976454452219603064008941574818351693589519678883763687339123969727407188376328687983921504246154447065091256995355742199444035461205017042173971693023025381712233530251219901036637005715426128640240499357515545311161949643767201806748352836343372008490510598941552075770507881730033490558281458601239241889029106268033296804267777073127168598972938613507861520859981840623164284602875489920365075495139281771211077698968909251744780974450793988073068317783150944087842458126341037655723592843776642506656695914750833456248325979270747698698397046402745393953716431038528344690894134373123924433396555458360303690823387358382448536314537579015365167807190169187870164616838254012990186569728030787890148433037148861457686255491927608179395580739884412367619678358329192699292615905833475187090261858990732882420737607636399112084194265283211537866961173726563476964682241055405060469590513151187735562890619392061868752698349557851555285623172275116068812113628226524899731253649737997335500329187646608670422217641911574169990746680816549255503968132191974014069405626949366137362376379772625059681097892255970154814117855871812755467584512868726250501773373230422427039625854688575041014313335766659024604440011315613774585749912116289905823365870165096673073137739205546212237631691063354007853673601423048450501196984679449565132011485112248167123970667019134730919818321930168962307500072134219335554275208801750998882012452295840149698668713035594555535891041552439059236082015533523601568265553170965179331774810531396517442351894744777588722310564251622793253510007702908074647837613505746953126014181514808039684886200385045886621645451708064861247898714879234186328777809512117411590338274946786571256100239982033631471009237885713032719369002683870017624594010642517404314969264441399756197364604289482095523317448776410012209719505360094832466910446644676000200584986180977024977880460459643861969513853161468633213530239680405951382089082738684640764727862447720619485013260286763798378068554817618520915768923934613331536987717542445140568084554968973234331364383790357075333027661380455223781448594394183480366560375432812806382460339543858612052891984624172558229518976068807151954077807143472648287679762455774176892693811616509821478665654422994449746832124536320066299304853828541208635383836149124084477894543880951653568781135016885721823531718605141825029687030401967671279909589457570585301481159982822145333444041329545592609030344939029235410923771702644103953618785792850486862655534716603327946485321209636497916935107943265307123956118146382420201321843012480529128021138687780868175000641720908835876674280176567830910568381533353988820236438000154582126471975327529396505759088961352372853438154810279792006665994750754149021414774291189972300897430315868001088241804666190668248926647217445770283477591829516563935009105462645582199389076812255887732687312404103207855669324340502297268189526053370908399407394965940796270454561030733177994686343816226868809208555215156869691668190499817156268132332457723544431726520761838058033376902940255065972571578695101133040571352928963044659681965438942757363103981094578791438151335174675485945289552883085314689039227730224825617212849312585740970062872351415893548919768226152538340929114914767345914846158380378994668001824432550121067899305723638500550128070931749692991608124119082067884243644941085482242873212270067883419382747815953960430596820708101157721724646735743042652354750165669555625316201645191825580563923119314535111359602312436051213319954183465709240884923115937323224060046918552398033585722720365618867786792325827952346400170607292792836170956192775507927310785658383374634865103133089316200213073617872504966577553377289732772146631908950487723052375591184586074691398383762235863492960977008991997686651730229734962290975633830304729983479936467983031707180478930164997146823246249977226959618391678838663304316612398518208523067519307655856519810723670259876755530156687816737843215287244674985367348719311980433000038637890591076123487585593079385333422449986620361556293610306674281396461140463150943433498773960115209352320580929327858943137998495909022110326202741503650334650689589851210386062050473658057818183392793298329623290873458352052642123773392557175634112327147076532576242889341364098732149744035807793782245472857113580093787066500169745740029894869309493669520919584638720741946986281073805553303841086193327845283559936579628869929410349530827453014041311235848818591718902195247160862103353735843438871607511446654558327124700222865392276453295430192743835431523996993355490194791705343280862392394519904680689021604028838186556765122402857943895919608244450007879850192404408300695502648083993941165811152466995909352221417047619540286857122330128877942854233215587536870893929002271916233155077683360287584107258311810285098866034414594091004220584114337530548205726258706770723407080502712246449229380155810256547984697997873743163233917037062892744172435230462149920108943003406534794116888802572626921393432750653062405756230424276061093297499550972623692498070193290177871627502767316127531291495220543168614645554123147211628433587067778251582359092321637870589635930714677811021930940506740433805358695477973285877558323639709166999153774859395324869459099948346257272425589306101545732799129980780328925150843920575895553862102053301772467429889970919092504415726095108290688618609977877499381569822170198063252431196337477914957501656605266508076179220849671757355627238335290541714462496676613426754847000825780461737477899376502174917352869819336556036972866366291155716714918441954552629996570212297341706327579632784170541921778847855822471370000431787626732032930398852414854999586576030447159855764640192690556896379981423877224257129038892856155842655668955955758434461387914165295053830281751205019604433469944012722635586837540719692694629019986979885278816224009337970198790128577284375715429921987696361432256417601927095597791264166806201337252461956945783405000681164903485557167930280113835134997030124025843262729554507650365167847840886107662675243417879812202869682017979701013903290747615481984792397081421865693966435584751063443353605256475478413313194443248257029503699941871277534656689738155655875344290819099477605550384624158617374311073785803602946216201852851616933162118122940906743278505459311993808660532388689225170495104028617329365664480708121849087929496097671880529047691869348247999573876677734836936991509078263446450730746888538680823926826215494476882963657126237816968997170748144446870045195456477646399929195720154830773515608931849384330881219519494757797449955823312989760774983546868665666478828453045201538542465549420306929256527742865129396315951130105705631067543723729167151296377256197311571923592278190516488877106886043718465001398353092454126983970320219546781937836162034572651697593806683238851670186190443973990177906700945750307486523509107141858736576321672245414828739080963354049715180274338240523872805643223904406198014732061667188930069452304324138328301541792063951943953681560367577303233132832601563882781003461741425227664505251389183530982466345810030102440037528482012126237566448163983787601014605605040716605856060560216397391384507374494865593509448289712248885178307199558603680029823562804512697496221821433740485098625444155180814711534010777854030542447599027944696523761534500326974751155657938129059806793395761511848517688278204537743555916005793221781622963276340000589004815317235398942305115354141078658254230496577403427315791955029428557589564913646541789841158850567234845105792341607272381922593629178726841154844164695216869924171008377914020912577529968762924848302438494053431116069177340782818559222841000468556972634392479251458444639968257299204508515538928705037644684705644878484455958508348362971466166757382081720340523408753094509597667295949496650735275184145167157264228805972058385864649529611297994005670761467123736188372249730256905468248534220267275173901303655284156244565143962513348974948576291183538359444201620903572004521821580612460851088335136978615381878433062134998920580913574388191667323643799653735043465848758995002797115304326297684100203620196056140999428090042693429423965358717581180084552016918026879175074867344785163100311871197431508033305929737019123666463011777821954043714744305605835287812097668177862522393407588789735051584315205284571668974644491506882203576549230564715491408282079322910044271590903880576887521187502764236888126689492418792133428165181505220127320890782095828164793884299346666277008015606923121205463459030972777688423092956298900733359165693792528372984287711681330458957451069416712836624795674333536383142020383414570302406616465762677090563109212691291231196606817468043219015615166543998191631240973030860457174530978938314618823696207458836281964590236968246943662828083172821756172213829275472727824620940027591224193164499659670417487775007211211231622205799445766675724680993335439677208748990609514542995367228731488870499550093155471618953564905513064182392667814423961970845986639057464517750999756019835760387068900320267592458587951634253506775024458660082340944036107514774185391433809789501051233186936386040024294486027638562603823806736923023081952119847670259418374712039394501144925366006234306917542554472408972923818336321040966189086776918773433713484337367127573636724537506563755084154141157141514996039296835515555752500426362244955692219646430412619037900273226678759821505280568792679028496929426685413777323150406287095358998324561861613191848007362246276156379105187314975356374439597983851300909765250810580407596079734991569833407983039537297734788869212119725869680797874248026641783750138403109706019662566142134672951417688253099114313377941540781918973168833918814493768011695373146994516815391919335516032515880045019314202567277236754901422507128932030152009455968442144696597197157332494223804080646941283618806741013931039032206006428254142123806558349815003392012879137392935419721029067431675843115160102294983966026345680177026687288374000702748964011468999954837665543691888179608766914829093723351264546895174411387078766168551442834505643381110744411943762867914137213220976084148694214891990117716173755738079656889624542215362247146433268162471133471794210689108854134565042174099782938387532534333136045697795014252893910103067517757528868875259404925167446402525500854573886000684611793411034924533167937914415264729434249161320956434683690025924407322275487765333360881124307225917503625787996051447531091955644582691225209196348139842708713611065139908369104054067896095476005119544318551415066434136746328850377393350356732483402270638409540565474565676764612682391783597583998424246590465953685857943651746266699175126686562270467321763072664632981741573134919170356319846415905394098272749582778998541478263467603475140763883061738274877216487074240913430538973915631277581817428467517348961467189318622966763706821085935919707109802011862928818283311274683622615353977646697586515666383370060514857024835861537627748185894391003546698673814776747180373980651721817537613728602495430820438655973322082119974384679981962431996507276778246508235243379277628059434705362355695497203352576163628400896674503246998084764749959707581811063291931267869232294736092197700245183053158647723856610325969869096150683669479016826975014858369466346945223601834475528788570641238553137551142149964770157988288148384611133453727090316312828572411350376343623026536989578474463704455149907339793652798569254629655185363035077793063115656293864660911726829610737531657246441480797873379760028535542228470603833514357050218920071409416265019582205076219320523872654100968650719662830238765473174649062572608240088520227203179483047630309548765882896489949195278844321109025210287946950872675527210451494999472587855842786691497819898769139110533073705060083190359256594159539415121014582327933867387166105863673526414535783658356159583477325202583499276314401430050458875573264334217020002788361000141802453167483233060624364007305805562549437179428298974855821364375479071146552748278206615894374393637572072794741011123318055477304244985852239879718807017498661642115813047504059028298181533523947362051011985578744443406163491997228052700105534218556208281133321617394369448468685414685614860275202992830755143126706005134914216992914431235657698497558784173993036641626729706779592519915092388114147199668026692341912550656963469741710933049901697577985003794424314889176083209359167099641031050933655328624445213090686741103534446523658012342111925008214381238129258928895149180003422546149462615966150945608098608193586002350707115471637920325504167752526218891853345994290529676609681554194844220650261256102227745110330303818177582933562199502162177875204442166789087919359235625637563583687164627160273210834733210522847195161247320378891220143395147070951471402125319357102682068411368475930006792964320179394225587153589466853949828340363718431769843211115660714447764555851541239896713104096802528250304099780010441705391637474467374639206508660513625054760864586646755441632079210512583717379293182737249830232799331289059823958680687464937040577958622956133641159344352222839275532442988555596916427984234567370562171299262269109443233697074136276496920530622440372343946678227016341706754938804555212733934366594718134789138712606230305349530009949310987954797823716541557510232363299956413994389378028701592217644778801784293077259657846885418095598102684249059271987607968165346157331901113011220003993201379759829246432801536423101229730767238631999070199743763641182874347702061276809722442475255283428690474117705793884854683163902329080616506060724600593008371787043310692305033328297220158047527738697469041013087066109439715733044329987412941202371454729756942582819955314507105112457189806449072503112460519924780159237270972050786694018569376204811657613908685187317348234676656011893614411828649218288730461855072676820630347347767941813974762418834115020203517176489697384085501559699780228717907728560965701236984302082254026243748450569610722744068805058228581069385845301840555922856709151200164177761171219574069684041701805047462771895781411433572098247431790386754030055954497193472137601116199889748345236722660241408897598542723063240204921268399437610851159525176448599589792588050915962131917501205256894369215375701934894936519763256645631470500341426162808934838950854193805573646614578779312239911259793569370859443468837909433444539397162856179240251377573782776280462891476050194876411033111097147927067923507529294806082080842740414144778999955384622087780322097039379635198034348437128933491343601587813950617625005550369667755715226721794365498614251661894563341675922102298449473355841534798468023803726373710876685430880929218821224271749306304801361809155185316706299256941003117282988087310939868674399990723098140712656298727450446055204070662004234578792676647939323235950759838892428744369924140033657132496472823760620605436860809121011653667745311412979175165830113828735930471541988130932627138337120459974290247684843424857908135919129866167178357407599444286571501220182094590258799004004057064523082081751574014799628039341610269749239328021974920580101637842973326851963723040498211753232472514490700335403225089256668162947592628432303382389664555763880888167662269336014317444855874158866588384143298233030859705775049713122236500784381996665259002416524168583708099152916860756123712714379183044181454912805020702743723051565999769912419814949611401226810424824692323276511598014536637715192505092729388798268085531714954163641892970989816594341463032004443820393383304838780231725610900581574686944848386629846691885680734765802030943702145871786479038311961098057932802719459726079962940194293312145186894177134964377877680851894917719472468668426011044501282740944256052025118581809306479726833113610998407138825427825668364679168311966777065732726843615472217872439646547020856665998390812196184852072908396477078645663465513411638861263755536060854273128246837747897936053479070138319503375395269471909936359314685302475763766975306961986430017212272382523063913260258777228064906754720409449650003173564383461361934692064174672487550276517390819836217324574342681189718491767938956524014338220960919409709167445398253286504087127747080275204737186783961551879224129233807536428415973018520792882393169091546591017653752251955648811795174801640249634141413620379847394347307385808949059443893972325520272512761621071769939384414250445850801800431772396423848460548007213657486636463746494350542100826024610296775517986620955704215266387954940740910545764963036752537771207982648395346951689469915288199344171355244318129950556789079622797821049863889758941205239784758412529019781576984226158011304026889248191903073141704440707809895391149394069344465481259210141113784993673228735444515257757718545172884009232633249988374667115762011180149372911793831600128239953032275673775068384057473521902424948650105851649918278204873149060061744502344501841247223206643643525354966083164850582363966342934898555959013941263308166083274907739311086183412794693504300625160007637605496512809798747147087021120605476903570279880306256043170805757020352738220324714581960847614055638818373131392295905536570117966206583673341465409463607402411083864482139095966975157183908660261044223746417967954765768344489488089710484322934811019944819705204027514322645429219368260745500256549933215511271075063614302316675772272309562790108707718327430111633058806947447025006343247733031002004339083891469329666786669173049306010182349632915026231332035684065125812018068564368265732941131921737679980975339110035281795612485472318718992621691178472472186048015663174367459243462675432474379051397764563283531878488598297894026125362312964110698964095815913361057544064744397839539933266842062268292896245997087869141136854950013070779373895554945521160009999186680708137107758005544980751488403045079091166013745049501527365645175987768131777282348345068509915974760982242353599349181138327191349297848863890288182972588777827431277058533197016436214894669032295190833431850762780677335295459412210500364560145753337120201009337901865922384964626002924352691262286181030997190546233500790227113143958830649458134539868591695641500827274312830874375793585819963737668568369148624733794656151250427777277159810512140002215391518616732993956282196811837662749923245568151117192630716348072123045981332659332549948112825432405300322042310923038035621870561756455490550725951069743406409688948218582038456842173059783139917403515343159389985700121512190682293795912614962691880393369616776716366667099852718265776447848406681545118667440113343301007043747641886431974649623823466331160770036184881939529282902510144235576106328672095670650864434684443293654984687552108261786243683714186563129878678393572266612457961904483757744874136295765044678333900344595337529271212399893931879528430533683317781185096533110885205257382875505740832726446083089232034058506504335999937134851126323722530492836379079974359059368335071091202509309933182190756298234650176184844994677583005766607492226157130925641842577927477753092863512622288568040126999000492015509586301526370634611263962516699022718432651924577246382922108291077714013766984260470476643383185338011370471561365109034452622825643591935036826480599798730483040187613686522465668849293995404196768483963002686324316916136264510905568118596571101204155918736060592127936259226945390331534647282169614367960382626743428375746252084490989946644698935602910758704009634900660215663752506462956885395612193154423989822505042797478537978112193036786117083397775570582261827818713669527442633868961857879804687418619214426829031646311185466472538903048116345662743972607804814216411480836450110361671987734245196648790321843883167569294312571603157248129691833517289071565885497838450041799548663531996392352265029681469299764408084642779904039007146215284285307317570428073542871329451299818961674606803091752594160800014138762492586316809951652147531807396861064545930793822193392890363270287193788527086783733983917137976769709165947023740649805738405437596835676916249796665244773126368892249855636920753485400991408580602481748631998390735402299370202432713416261635049046975521110853487310348681680947381853246248057544751022533036018141350414408483367971584896381788105217593719268125492114770160017703680025667632554682340344005271202168932566897582101034936845916162264328399917259208924960124986175901318331956797520245037288674563718920594809586562869428111819794320101165436015396467788150223113381854166704841493089305830106746419049976917330060902223552430150564243411849802840808955198045586927038069502433807000758098293602331450226681335413602258052079799425633302595051474964109455730313141597954625715416656315157762995821996708165120487383935741956301071629841213560577739077955119913642827202993193327021741335810033320638237492515753691142650334724233808880427280449577809976647688755610071801519928805114708182349313499120628573145207829146689466536680286861785614215827359912677952814031696092754524788315840396415925698589901558892146780118274231076172201380604915613589026428133387678005473621677177527501173620149596830810917682527689558646519149452414221213962509076683812098694536101283310966836608437401320790869656669120959729517246008602272543630942322256656661632916046377076953319187439259005308895928285238467933271425709191875481014192244732814963569621800953884824306806591812935106302889970479620733965326852406061334541548693300445116506900815327618369409655224253699688420321080387828114781325884060829862981515307954241893751831603257378641624840585290094553547982047615547091464858396203077519588207739616701558931552057848717402034393490723487461672588513077357773715842109705899636193459076520125592224227748975102546694637577220881658166087580485925351883730378750502858705707007812758755965513491692526084553632797642020329053048347612224207932713641174825705160540301187062974645880156565040660682396610293753361442383588973475822439448988444638469482540900755232957514564131722433978048318840506383347565819008769817364774883158818636414810556748285000389058825179404285568443478476534526513973645335068730526282098701660686327307987252280128643408039908808334978445165170253025732978563366373772811112769283883052613957474423389509731868540924493909438894126563462732575900227270587135206192914252447137637477719491017902416717692975467708236980945165013431952658063713833829802508203142753780432247482468402960585764721393803632047545538579193480008388803374778335196353841879241960619819124780619446027278790586882575665284640386059486164685163818274186796666351118712681537712749124625613238398791901183721822211409669951601927155920938685823410169232690035896679135164073737838033701508207623290067601571205535956719797205748393750869879827305961227319376575582954514395547567694766556713298766839602888207910043743068113547788103005529947154397191779251870284352483866330702788652591681502722185865348833175464863170196702012339042002573889849164568562685524885111734178273167911704829181164518763436889724966188796591137263533162113661468366498110386180118441101021180919246489636681130763567666160182878062122365188121030335932522818668373839741083035698940176512663131626173713614362818855884846307104240729125089163423731142515060699121449381280246094819641528002488330601778840293358240536008506704381133724070711270758038241742491091931370107527783048890284477916575770303948524234767143281476268191303754583507148827667784734235810143790536264843841510679565798205948254286787966254388292780145549207869975920578819582983600793627755949510902789775493244623760333726638883312955810433604370608090242952116047085739464083887485423342854064985086236620164438000661781238935968908597146463198895402173420262031477802301394932372826613478591556901729884646016521827498463596663223041312620586835182440108194229619639528482137686626997696879765691118240912284327330798782104804634610667606973855182920065866446401855639835506007264870093034372689372322596498656228093315394636022958627978047626491900328150023535112124172605039921759063790677518524182843311492679005178705726794504644359017528832388802622792174864559478467503182815631361722676474847258866652055146173032424040003957400268597100841628809276715275343220141142345824691510920838168602686003302010995406602283604841457750409595245157736616321326137424625612624235817130064105000177920933966489655393676676634879073504707149673341581410171485612177610313899046229220030386917879438542836130750164926296437465954589041377614548545704663286519070129280126439587996969373958468211956775437310927393967646276003279977931218738824152913982818544724026467539139110607174364633776081757936430719657099640463287653300872922415776160928750972039619298535735212132723273032527822870305298506169378080529160328992388926638492360513188948923324471162608834273314889816234444443280842813308924010017100838800787181899425636341522625118752704596153420473404827237041703967327767054080480308097072776437882965295612140586561522357140307520147235427457915278487496045339177055628468802903490594669065865443433994338674192841128271825415442790223510977346823317566686655065237175517077588959037595690974285209776506442763385718721272410230557166131519920105683181014921072536472438153584574865325889704585852998468625449130695189318393489575704840103486860008039871481400139727399494916931949539612773018821705783090722716332485174751600355075197587813388722285265370879506853741407480477706773735732325555138457355436322903329798783634262176428532879872291457719305507152828872353156728233564484916267318422614629498582384171677570387113288995295929627464237519619713843694369156443519517251251705821410599481742597586174448514634089441542283825018482267361073097615531495565794046901557741874209929243852718496978452416101095651977667467339687460609785360973983312378830153981690287295756130185712963708985027034451411888692836936585293850098535314582067859525486418211119241799094900090033632016232497499149834177669049832469486659812742664895672432784525976146479135657101908914626549250516466981985782560264763920945252813415052937217332264997558282211872052105358744328297378412309430255024069764177029406427565458585501723069270733715102934736653267024518310253281369020735014821762508624043477404853354569560152630444643986809829215288016198951517310088812136246735821347028878727425385529939449249874601342100893690099919315291822055429099565423862896000144867293442561078673444128805738315704610236455141871006815121444301693127304828013583610160827023010770783058409930727775969907987827593613454622584185111604834328866897069928320401655198465407407487010384778932829709183742407439570390824506297375328366020883663644944492680758715486167748186772520541480641762766408864164055622030023524994705914731057344328286195337441467701329305439105513702557939480814460879626044425276406953583588270247343918417983726672386083343050403837729595014972134646639140750980232306148656421034150918220763444542571070468040522075405758027998760073058658242914081150976231162833196528030883182344982414455975385689039527481487865283377312725912955783980792189336788134607441241368120661396332646758909270158396159247411374941951712973106277162416710773796656112160101658431073181517339174048851517147781228865389927430406768318538962564285346458756961325607974683818756629084311765560211081505313277422956386471746736224327764438947407182109402515737624827368909317123172520175623690916594480540131074791840709301965236527285383563707308741554039688726351455763211685562813760751153988696759564424482342374924515084837191367517530775916332233263815839063101784031695566872689636944057500529268173068976209135672876647966293499574679250689543066108633222476899288879649525111486097033754536503441575736075707521333231784954206144321313319770997360235596453613431122996633466498123505686316727377215479955358233085706937449737250817026011934497489109094808993828828737914762222100431334398615517189066389683099450681249845913681564226280571019522126357333461354377788811874255173509157112965837392520865265138192623140268932215865593444368631711828665568231349285791128178448712923334514447553721549283543611960829384168099736612494761648347270116198293622149404343439927715526462885425977126079078063886656409541842631403047024321173356307143097475650900838459790576548032934124503565832658494537268994471567751018952157716672772295533621355762767728017395601392799108193288297886838237065292724809814328707625576003080159801432785508558841459459284102851585039560994531972985345763500145125694484970973903042889936445511660236252921972194964817073575595914277355762725598973488430102345219411297117874302860795273725196776984931496300317068520100442750705042031448756032764867950412948564284315824221461553150854570012242404315845782985727372072749406297787070044351041830110278150659345864937671916317471238793000950567980377124506199283636893963917163351262812868314280970086713069138280933685854489402955344637708592964537659307227331280880201832933428530833170029776768726965721944727821533864026259366020747555419652871683717452568304634241584970903947135733692226847069889650196553794534536314733949465234058008434216193521640066490958157378646525048280367233112351729543332464520036432000959552087752109280961567337214080530944310545099359492591539107780345884262586965065575814413214274419788761495760035037918744173020019255676387923672269242025860092555651714735794473547386903138850355876794300912149619005753805940239947338809393651102704241042929710461870636441786073978661363141495647600434450080154610105625647315213779376558638481017729982628441528741828554103018402300008688153622960235897916867274158827786415140232633559856252494047481437114437051622567953687403903649839833132534584305358847294036728609007094701370272730066397010595663243613362928341991450656858764343244245153141567300205863590262912475504820898686295977566284128488525942899242122445859710107391084559133747675527670283554045467654993427004729030982797062060315339319229869982922538695346348869139927107758336687468695105977710059001643510579474048915606638467035110291785174030852005806057433629788837080028613949957256918169172592943556039016632149494108304000350864619296856563692553321349349263875386373774298273663785801697433773750857656063863004380804865007824306382738656671236840490343194098586400218387171176159619560660901239646360305708531388902354748617401221168201364273825914893907237695739981462340485565664896500511388568116173077439199131874094684458146174704712873661165733448864820569641336327475758091000671199481118664663223805516870884467338743794877302900207044493492122116916655748701585157388887612265081715503113546645734153573425268488824586649458510168912303979327383534412767317288792227385731850526107098027643043122535299076471087669684133146708749116822643877755557531974816291625272072175865996843195562465602382015371098159160779659276021818306628193138342266481964253736639692012817439329952775821542413917302204858447838020834650344391444584817695817365011981846825086388044392234465521228864705698964121575929702698074516916059373625968232399422399450808207089609078688301511860645635300901321313458242905811806612783512448694707503809244844305123910040228584872081381534869621407945395045966997721754503035193074361451491797537845526143538928590552346419853913715109639841357606926674691443455789039604148141620254189662410817044749715543171266038649199186621430579551827526537479784137707639477941806856747615581380157788168702230190418343179374175648493958803005163640073149299202554303673606625617807627738609753633960349475228647557601077701027622624563090066842381643079194983422058096453124914964778276314307041331929586128137992176065611247341623331744708901790382413524932744182179908731882190812503225130044751523752356497231812226559087541891420692967506497978125428201909068454529219308003490596608317120276843800366093864261070618243550902884848308782947296281422956951577753794100596389041424695389993382384746839539973960466190555081320394526057793556119092871447838862111420416785620495079849868777687588956551866101893977864931496171790560619917320268872276870874865286495044938955693365593538569904411880442297547128485525174629802593334643590244806674509421940757017946940421376512938007590403680974771684150359354813189572157747786349000796761075214342191934391517758194217420705505566366685413717575439501931336345708647857844770191613707664312089833223812329713578556992018717673395813088295168570672593669279825284727236004899881230558828346691619909195697481979274737145785359345727877930061686120507605043661858226763432071681906010401080227152768513389932397473852707558323829905694837383805618870953674358754766842153086794539867915514038176381331828754133969062074858108059608617035960549533395456365204092919297826972192102607489026063402034183332219462657474297163832645126944695898184992692303526803416171366090594042589380254899388244629099108692156047776545305023870796755750865913913977242048011343067505920492535951066037396178356979576706173238143436079316387463926442950961552381384818816497493761944616927511354920263404319582216892988898561080350778818835078315999728514812259751371882870069219429489875943565495527787774164178650379002776517562331210823906924816921394618814464346044747284003091127252736030663966868709104011350393703002930390148018386045432852334417532939475291840928636965713887621486964124462165536866917747172626426687189597263163557521615536045590461670280405594410126314218116780320619339237722379445774906793846639868852829445381274711907160246938185031927447588037189740948386892927013087118700150312359216497307766029082603754403068521420683316659813312777353262959482394364711692703993803864148107898819962322190222936378342338945292354491357782213701162410958873635052001865393648792355915150228510909675322426374133711626322549111290378380249183758630953463559992889168558766284986762626733574890908852052126041281260150073004956439532435999943929165457433840411137722860458856967659723787525672194604927206571749363349295379469237610787516597585572424564119746859393094862356122386512223544422472437785338641087786893622037230967942885106993821031741371002600346265599649351842020620192068539982954981909440355928477520344169419152545032736302186872554479524692397998792695721443006757636043053574073860596197844627791902602574074214240610276481427243493648346184323695851329705361756728427271071448477308230470823412129053835134014289904359072027121352450931225763101819040574594100477559975920071538477509299935997700008216969664190965604157186130968618146328096622312375349003850016298244887397810772897217395088043866084408815761394669810996671338822134006389162845256959913395006504152502947410172857043242390279649268273131078723783315005213012436667227285068595194630714483576646959632678449987301570788172965830295921971141191727457372403436425470648130601036152237830094511716499147372425889216947959199757324440366570103002460918958911031684385898067630403076825550684465998256998460238765212413671984236998801212305679500719518159250011177323030651546078346799404173203635807119899828555426857932260437029067851278486563621238196291644336770373261332090449627723112572308280649808961628000860566083446410785984277200811386867774732323787224628413871633470633586627225731262580275656461064333975309372530227047466737724587236350655778296877127534872700521766833965430714135027435517219419344994865086190628771497475571505494906779047951855611056559793436484267214560833609093547037336164366301397456633538299755668370820110117257996508357769575240405351293189103441875985228457685976357493777181330336110685382909314602465681133671721617641055156841416388228313662393051118743278315057958908642247899749610338259348582601603499803507140071888657090677123207964847909650024641448366967311592396334067321928767559255360082866470771816838014451542278991364813001437993092984472077851854982052053711777032824542072527590319683247798898921757495827700950908856943980375999451552989067091016297065903521732627010609544645946295255698851853998301021939246309876625514982048138882695910704474736015866187313973818247444094585774138228283650672530945436827436460417506100902862419278799045488407856413095068780845704982791098575206069191732180417202967508896291947047913120015727490837427856502149528099820557286937366323731023183390097108262747244291635480046038306879301834190642898022307806622135893946220503633656406183955573706112322193939950854693026681388118418854044399512296553801479752582493554361644251948377673521961915004698413559736681448859325432232220633042855706970940011431983764457080339662369530645069860565796954038417680102693863339776872496488105749996438902436828390924144328294347114363274625698868295961744865806502385381429205184203863595543870215751889695770785527679793328533241064839927540197965656707752466165598247442794300066347932691872719252734748144698448993271397743747052223589401890183019018421481111481303217009887638206069599833429324915693045371241983460292508602504760105312290896265818294436653381029093875806528657150414112766417606554649140600501241839987929534324840150861330039095315853570210047742532840494321273012369351868010547620784339227531155243479012276876660286550799555437963096877883070903127390829082615244168121964539207550813606761571415875124236992174430762228297911803098790448935947971530623713739724338782464970993155463178398932162845853091367211883078550453134451530492007966913625006777547204455738745457356253060791208330519524303737271990867942207516959430598143628103077509077198224517732022184823063025211493065728273668717284681284913811290109444904219881160683399923583102065639768823212812167386455812009522904909444103686968108142402026344873462369896488471716906232235775373627345284511180161281846519263481473906126175493111373128793022893098396985896626193651062846930096142254349733626031762006107256399436979164434693338792368270197847591168252326092106472002616105864417403976861570152934740797610731577521893502022223493866438410527329838537454981922310560347090460831281881791880530642115511060512138687841843255733559753779846936978525140406382636045032252465471033337136515883747958354652597328249563284758271163149661898452821843746117755047214834008682544382722115306087580116879115480800909302041820088121955785453042258086989595544646644091311041782820740183114170963090731029985271541999145770767143849007876700678788766953223786109765663766840932057264559479298786284206338715050731873742208484633645711223134624833182046563741384922368105555388016666018163679468595493257885090954113500457349084444088031847857401427685193190979535237753450684722048343583189341866226016370048273917337815747817181442425300110496706147700360452626400700788521371667185966613169181272135114722389952983281209946883292740213666116784140969914996029178144431216579755034614636510383160519246407636814319502752405050304952325617363366359869248171298597166197267487586520369623042759477244726692293507094521828420438613499554329861037250865065932797880110482501372218970615563949319577747180219193595216849365819433398537791091271815331908668346569202555843319711649652641241633062936681338012745994426570816319002067986178344505700895570192476290760450940468821711019051429588319117057079024313681005237498074357037383914191783092541780200310518762193408573408475310692809317286103401715080862615795961006931586415499710733361798249209721330547934893810924269422912742601331557465872590223233327233503181861397160443202894711523336955833314715029574182262735029590618338833502968175490926774983827017420630936098810519123755739812838144767289426531267254717261496034584227315580229931096295354201350171380239037619883786971682803125848040607159233344040060274878831116451266374078217490684552309169272380726918159961633519289715822846126606022297983110501806345316497671982114456977164535445585013439093673543743181222987839938463843982276136110559542223572146592074039763157965624593544899155438968817952929571692973110799853604144853378672214151858884580840721925266588671499821828983929023142176369662116199104708130078739987669362507728274004661875732700327415511771640473881667709240164284129223139182883067419016688480320903879530983507372987838624970297699423774206195829129557350468018333027262882793513606688011443505132761686315271223482667528875953236035887313712646669659175273471896179980573739272137727466732799241098047974404643217346398762716111124392902665705877315774830431117364520045223713641303862170475525005724585008083401716772547187947399960861349535591731410886607615345896716845496143524119496711689345133778297521072068885585888462575400188140720033909189625355547829487318258735367322414635552415784233288503124560259760310067208577738075730243454589005612453508041292820980318723015964721750027644700149848842431277796968725888275972357626682505751254372950335422531999720984852200477053580658667713828829933795410738806257387312949156881341749001807661997535909133500451990336652029424530704077583837876684144469232408637989338726100233129849936172196673310916398011948248252164701240609392839874526528593162334176346747719503362082606064208750574355204585774791241015358676154175583729488813392814096846240376790948051095178105978755248904045332220057008778971459525021626622882587848038147066814824528235722011600657069847821948951636811896576531762533519052278484751871854641549045787453595573816368528297005011624008267515150515671936145989864931101441093327298366189210402651007399840455649422503995108191109799980194923513352850790951920608522761129884317527536917389049987976635799215447842899002777841623243038414117451653027372681727047041096614985338587275720215702868898290462652419549198721376791492196749790400680632431185281322997448508047037686862323696947614039986438327279544238154765309245969756269675965396802920366624075346842120004758811867749855728860812707001980034889529635633613906281857939983083186784844691042323528282283192880999658347214088366385970874758755750790034811132384900443634198038595469109498325012803917343765358550328249474939837761173536475194073991536667442958373253682794659894303698628082636600034130466377520405410187769808095047264382867216554608414648135604480146591388217795868276993765111578047015408263454596194081894202207014315339152558650460549199017646744254002924764432048623292096678579632807486887511488952703479702674705424054328757002819740689150803316998186386145578389561330542675424419020974750253282434771915011741143948618070191635551846731511573115907737618781617104275907122925063773021345188521819115238024531480615810082219758237269664211672555648171225682720075838881777849704454219167358509220589478662955204851995400030237664424336457228694736479953343980123893490134812666285761113259869192508173177644139925752983303338896864970672587756952997987044133165348764644362838364230692157215176990879551392060992338596159672724935579543785953418593978653375166518774251439610287827860423839506515194012873004073870189117814641303079239065191666978558907616596753121440583033165140887886739453642595909679948346468524925843589899085862439429353087174715410660766098841130869326348616515151774087190631535537878758938163670267761204611250832655162939317813849285583747279182668504641989486852332177547524512821918476172774567163114534783168452812587247041705365155878908052614940173067577367054038438524993495421983815242553561900042542530829580413427018519697694117034996278544055805582532712241411359930429007956531373293811673101843239800345055762607012683476875183890843044009011737016885874371413755595390737071040924981824168229171536120136984735873539138302182852172204202110207248534552765618520982127242131219580598877931648282949979061289838110862696142060144585486101401198039320154388073377949144038073276781943048200275913770270661624405759764898321871772693357187138627220127097338315831010375425793483551789350748591381051341980997631604320743663934798144844227305216767783308876194296798190704742465836603466351761356774788276804544447727072666062409874689753535671628188917171923871871313869048144217680292238412189480045089708147579912077808988260197019384745971252273810369072202453378283940201794646312027309333985622150993643368059131714019952986811159801822432115466038547841785695835570088868339005230550243432351332185933409026045638758466962202941506775012916574369930532954527649562298842554988064287629185362243598343951052769766168812958925354847383625324465093765568246238865487201312352874634422167768585674451768603042224524639525206718120026525084205049692683948787444891081202047272018397645525069070050772479004701619855503644973392514428020161774672737826088720366250642090720083938809700671353306948322023777815266195148493676356428846657865352728028054361731837348386058088383776003266643247611372173402128486290796659175912956828535071354301604396408014094268280521778797048549912202873015355805314954948391608556456318304871659780478888744729832748516099774348640433238392882335377646201595856056424651911762931681467061841939343691083224399540881448176342928042882176845884979625617481221879666360631909739064793042960020378753786704088789750544646083010724063381479643516232529490734972302657352040215719462000446529656089410459934411008186813150093116647429718879219447668684537130562240743908511800194938755912129888035761352415423319874257692359819312529022456389317390965601791088918522726712878512499050948846594132349301017519731953317862424811850808676916776625237682738801121369118436739282627505521088347325516507884956290415992296622691238677295071379101089544596818574060706925906811256103053824563314826044442134405168658912483801349502284674741705266574939171123467247366306204728324188090956262147554295441142370598031688647493629740362485855749510748745437611973167843921107911075279622222724816792885132680334905173136396213553619351208749212731473896870838275636385492358083756343367073364115376202564995144109214702651594810650241383260493167559555521353155138947313203948527301576036250899903859447064066808516113220029809008050639524794659252798635773684704043781869546238431454051952230522073455063694257243911422357930857117985639593882243770974096469847280772488896889142219390636099427302356466196159741692045087124892083328078704289043313676261829226698024849276950097763962120426383285881858808560602906797201349849494307853746387126914130160787094686006208592153085704438164037809577405467196548132619728864379668575710424539971204336807454140203601417814547166474529344158429918125690484429185789982648135312726250750502520626733163774296604238367338257541429695148110367201061229708297916462545360505751913999294106858315791404127763970948236778543390773908171303634428973609253112315691992774582738382826532113287259930654963404276044047513964499806415918382291293384352348873958976428031327518407640416164977172960215371563116937371580645464204845174219211162671455575812236731613615422613515353305606327880141990746971399238180884690005481938109845177398026872377641029932864114763186947321191412137350855266966988038024220766591622075595069214386592146245238923067030654832310556810419460931881925260537160507329763339691612893082088322894543700158598197084755787183866687761284692508579781070064432343286282431095432422707371930210813337064058088929886414119290067684742684456924666345388471076509721711951098262110028393255838517649821509813002219472823490208609913124556654363886783667280818100825586433099811199490975512378259304169967811636325755672114617851740105320157315041339815363040384718112140044227452152289521405693436959824542854095371181331516670337902945093303747499626051793101727302906702299378566362277311555479868101746763391734290742833048645392785691539275755924596080870549457393981095790430382028094781978865148209217154648953651135779027886214710808910709870232863455988071226305782231163337295803536638994577521122751335000892970481186957577420659467754182519300951195260271554280931723596316992594172390879701880657340138083910500694523746602584542182351773500129268459292879480138993186176038103007307743049384961632670945043916140837059118860026436247060380914279732292629605033179459279023246389775785501865386153481759831813059827936886075935933222984034559490427110881678061258943320617894148176095206661804044664953255917162858662317110985187235064406752928344141296975783820680641659193358855169832068955338735553780566940747902024386861920768490951325190560530559805609740737731407938248409413967848465254437224651350195087689119664726655364470133250546593336441965291433346750506297993167542099998168098759960881185343419039924791646771081479894105113185064378292051803072840857680907083790367778480049936898593235972410503212115095440630432268975414566223551461181855696836851753749208048939838025783496104762166184800343032998793242007859226300412325990070393866328363362615377616566734555968696251879760522736726352550095396240915399534503483207904861805264637662843964388369085074007597498047717910341588105991243583763805904839499286122245593077841676594873531630920982552408122936385562151427537528053943102876233462698010929186763461474654683210457432854075424720828122644423014284227746597365869713575858867067548737304346618212816606664908149804529185038817454520777358831797001110054691927083656552714823370986456793926091575292757431847415067172885863592602170523856845512289743469830378697046192851789563860033893823742304221046306746940712431793935863004443985209625983983947234173141908433301032451029707323196685082790665300452489165372367983660392348558255789772805079610508345820450883215860263933459875106734810722087992500921811143984871399827662658495049499762263967450166305621777043751430162171762458954796310715939994236027827036872956945774098441672766736220936738369139448393077507470401287903183184840996231863395418110430004670939562689826287918825581448385609611160957531314542268964997137289601968235364817483890984771725947411128759676540008821131600158835617516761990564738879127860332145891113218314327378356318764218818677926681080045686268450158117647014356759877724044903065833112318528923710075028137131213867032701342621752885552609155399148526864155555532243873462909633256689882132919608153971583255598161317137803279143442266672961134241151024911313919641878211687570634847921495691041928251102187054455630706272508127310798672605755711301904948904590591213979522190932690629621851611057619477032897576287004117135312864510555732060564318414253516948089344163505111893850863108799434194155355882469456117354001014107338936063074891516045432023483990846503336439641522610970603553062068812760663918014290318817479872686153803767104944610140441120782780141929412005484219558169996705434443661242864423045959274906790974145487387207936694377553933940411312517315532413430190398716667280513040996596545020786518330830657703840456630161846129070217843449583637329708125827264464898989417487784377530179900986076087286292719058277691666955291758852290737565515352453709836614807057493650436145696724169180718386820231938223741305194802088293038284272279859789400000074992986388997801295648658523198688268606444487998807836443062132167776345375219884423054530614447880794612789386215063909758809143669798215002091834547369122368917729225368992635447396766759013244909042508093597368428625971343863625832473770639963616963805188772864343587505663782951107888425526844807548617215190143400722590788701355498456541965034454912793530180436969310796402726596849370295226681145313039652209093130800130022774929413806605416203812754316836467352631391869264863966544476720535826281537110924147851167142854256009797254752900134703245199607491239187558838849574168438952132285911246820567436840588959837671612465680007286748858541062842186715296448021212951423690795814902303452577552450599747100619237137579420561853562832851285993498583470483015290791538290281649498102034893226308043673285424453942037739533696220903130448317508122395804350850626057775942888338025797409740431439530149567632495760797340973202417580196186834749084955271340364079749113189704506278493464113082449614582502811934773864878291470514171313368722566246614508755997445158056227739768002815705981637508457917443638459436626732353987571170535280671932877354600959984905912592644853745882060546474759219443279138294868031749065740672517278312926144388504487846980935807932429718989265799973419893875908835335450740857929500258362784070296932935079778035082947758262070867286329066531794378639792509318606386360207543864622879944724297967730131767858230583265182046624041549429621773563821181345828208332678836540747473159100231599426779342911401767517364152593089085927715667939997043723450058376782697264587890727703768415323304936854575297660579568217628594382827666462146575560629543357678051591408683295542396248083870644795282014691313621240804888977080005276849387575818356591149004996809542705062880658880211265855020640116007972317496714914153797001024362860803542263319987081611527825583229194168391719961561301149546331054411543071525881597682159676420895701692053827630648625302069858965034705144307851196250382834546303651100288392472341561241167040882116687006830780835065058164219959113634834697778030254004561853557370856802031859096287751664535631943488718768472104370392799443616778550901183749033281800159276949769168090280040054521763182499834902038523682334010811074545408385561051716246635568945508871398912641779688141030917984478334161214640200333965699149747467066021796040152862684923160533298885124577195758666570321545051346498654556131727596662431371924502088876855647074100585482380478726848838491895647695354406674758479515563942336094709966592358129899538408776111744160700386219605861371434557450246631430117116713080262017759985709049128320245345106010778644408345340082482143757098352417958048759122196063222593606845497006892840383284772859576954526921446955784966002221937230779671937949343895228240217786104353462385970232216203587151609184502298003919859419850682357153223307288833584008919446124616573695790339736865148647116917865475083130444661420619952204150342566662124805885286213847483911641129118010409863704321675484106039148680098359642937305882425915135629358090561137227774169359630116928185096898110444428065093477529200156657235966871635356298243234432266548866316367194192748464584137682314502344661304218862871773909280625939690255632419367408215924129083329117082702803502190108427377022112614598193478631693276825824541350057666548449360785985888553805903395628483902773939346833268694183975763199222825800464434828294591549294898922281993565905526222797288870932858502202041189909712430055227006370248471181093913304890224906841398349890224596879249759604995314338575898151296356546921167252052582040760032510294140901565102578401070337979486236383455906571174203524729001098616470295884313356108806395330520123074363514530439739152112972605768014212945260074710262701481342699774406405060708864943453165196952754102822374916403285967295616626276761719551469587475165233552534723240354206779508235311596748139257142287794675770463246965407830933155400755161453860301175451380118408873174155428600012941514978186886347089958760701105397186486380058064142599001137758081173620780492252602773815887927407452255377039006859608718279616608408852736977645206439242881369144139562945458679633907210911385443861187185170304978606854106533884924527434244166425359702276589804072845912336155382619124272403434806319717553629348012822087550403792531559717956046965417054185171247532978545430941014572665564858816089753831788086660098151635884831566861988695462697334831089661240825305009482008375085487659583116762659534601962283866420894267503092191009981555634915559927189937230391629515825371371123647256379855744184106439897732029351620724516525214323107640864502272302444545574230220400752555430372546266584577070569973216494334673741662979561148458775099423133121342789467908672527215040827550372406672651616267593659927389027747383299071290808774969116930658743108635949333231324086672894950660468849997795125262288136847378923789665740147608310221402972584060849010949266616992581199081455221667418905809466487419065508486271667418603734203924693511935773137313367365015420167042045716688315748312073965856523756428871602851906551754909268037495911197331198038557047070978261769048486400939817366959377660795840720676227113191603168237516298422573584386450608232085509790162409109753078301270263033219260506524362430235153103739404562653692314555789235685287612189937031253370557386477132741939904847159804541676426775666581288756583658305957405320595814794126890862284586092028945913076000494699231440185549529530260693209885173155361548608570563822978627348941484972847980029519221203791486438199756066711042127143239931299776021832999444386896094866520463133266000843408607397542237266390320100057999222212889792035987343477513382283964693485792439193630456406125360937679443724602268785895609194994827939152923173685680534833018332387821681792444909376791179313065220496047338857784736772090840325302755096483038485496084578767395024317000002486238573176748804313991876889073912827259115972260285564280879802480584981870827713795431215476290511185054650070261209036722117271126740022036696734230264572030431779466916249571942148733664705930953540107238964094107749625270354114943155628967015589535911619138233569280284939937494644066836108106782995939241446195302502961223015379613283668625206364653721009957208887643340250621108733596187531122011597210519125309299311284397498624277348218124215028897368391848645673882402192095134840279169458320120361997650898574785418094535750531381305954391346483147658270540096838447832510038375921299740640034188747820201914937040055519304744275226800202199691957546486692609455735334930482401188519039968136578338181939583233832678431194634501764328335255964356439651720264371624183840094365719215346260616862413655636506234202405753451932241614642008544771734351852401181271895761024395634771881686401012752921902659338976239403515433488547594040463621185932557136467374551940673019022324156496606086027272814134839265874263840409234704731229359952982560691092862849211045297656911949840411328473661546961682559259308456643146831651022090964209786896468567138053193502769464130523019290776560729813591379444225867212971112919639524576378631416743532514891525674038287270640939445262290758891520541934930003485691589771029714528130470779503386014254020179383050950719013401560454592101755950890458363005471335150010669651451316312610952739570955925336755203102658096947007086411373215368198307146436400945823452902144850900288456148685711415271265324211813586153521555424752503142899996028961355348665251093641359179087472605258448416422118632612546869511950487667662339877233691132875963315067961781529731102248118632241956947645308750040338480249689156282214880748678440892892892086561271972149435945016643101234463687860341538522708095108717821809427524707289759824335060366683575996108906750883662308536560387826695031499391920399641663718730654414535628623574310204315267018755531466423892145597315525004334362999329655271455010157592102121324021470978841400403631338255257533422237063684628738746086378188891259988654435350045964003486925311922539442715290627352344945352676882065530848485382174608797476202968550859895695647732782593365569202502456701284222298963489072746628590261410545378683709563388093688649914869898321731532885862533913362917701281070508909581727900356450938476975238526430860215901877358683143758482982610769078512006124814589769289552339889563861036041605516371877017317269268199763011031419107931212203658262348159036156150039634388290670755356623541103556404761927195099697598653154553497927059600347543282865915581778182400983904457100428402162455503301934884506968320554508080519618973609916748299647616004005066861780708284703789170284361629314066189537506080710677107866083030649192456583454923864424800486490473737358949794795209750474250475152999689418035408002344375948811170758929680789992311802882050314695828536804206561703286066438918945145036160429141358289441375909940576546249396199984511135111969872914666525246867548185500964567736904780486506867160113396548573807449555863435742672733699015906847091760811387038861647976899101229457241012745011472047919619962041490833789460078293616796111822511476387896263884058124825867916249373482090463889984537077866736053189969130611457254864867393338230109259342686670873984772691959930830899439614428326657753647451290746963957510476751024219246231295356462027675542997283314786571521255466390543544914064138456535090830998313695061374739524620967148837167126989161305844578857095563001875231771876149291230755258427883004039629648899326790332408148250551221114516124669452676758899598493651826388353385569159172929671625509584100044377198069688869678586726167527119976864803901729969930192648604913602535523775163706042122627525309683658391390602020588883965326729049779201744660547464528817104436213376766257973570528956107264289808309864593213981352125516058110302684580435832585388342057458233760185134868137011694982083021804567065190903597149374650867900777978312183401239846004139845873221772649193418110760285436779879686920964512556874424865165135840622769064795030426169485441065543181700147486746419662455687240448687065005779101306620773396377735237213510657950382288323547489974587071788710488710263927780443053244530135146157678557891535320726740634629787823423411779543620877487501633332967678678106806285468749318705235743097505596359873133120608185785414586113885085877267057479176712724274959350820386060014447837714248529848420107543916776847806672931281146806952820991152706659617389291338691583448435260382745030425412624831521106227723682527348797805802543384108853547837802245078196859427115755600677620182062368086012051619047673576877389189391087371958423904829014728109101433932590538290531575694949004103255143280633965676513442293871499229828274532446158523880420735570936325475076064987493488397474008332177588887696355043707619582044979823004023336498531355436970571058347760227130377227740125054069528639899260217878403661472626871111384846745059709861419900329109992301251503881489839571291573887893008519005377309583524066487523605166772689650564259898060502303040311002294509791931809984151212069830027935293347632388045932520121607172958180380452413580462935702213560139760366959764898650039278956157557605600060474881959089966243585787970756876333390432782861415882748363344332604577245621243233806267787350725298954762894861893479435593069530562741643296836167603851073821644144517975878046322868477389633052695598780887509472204382221183480034278390807354376299219076757020413834271133735582854332310875292652006638373721608475922225952467101475687334510038267247312824274830780638734159471216189554271651117688553135639712704478649173596704308104894140943343303812156778035801053654509217141998391071735358461811375099610186557016209672119825719432652144080065833240553488461309217278137617067425996805924659480056523364780533201484253571643402102955550317606059540750603246743564175709715646903692605386269970672122131050128506598082816768061297722077033357378423267542780018770977427926430596475622649503474267144625632417627468714100952482637208758677750581201059538086115403979133580455767391566354093852382481051677342296379625758485162096061581410106421719607442237277530353515609802433943797540879614600376849823741137496428105387420739781816399168193094176262845407294281481551408545453317748441095221405306189879578024351373651018889864664312775723402717431264552339581843648223364656992736519660995809695601357010367977782455626906312730296409711784115474281750832708935355907091322967094891797066437875038824864457704369973943193003918195231106034415064598336452812193319365691409711924066009318220693451856512166689886011289841541453655291775574675047490426570228654708418439829859293147946866998453314515949394849266915483528163949290212990784996603212067498191270757904426380517356817598571020315985857459699654417750238292135448897956684002331732610103771392778055824518968946021504422476852119265324312730127514113808050981965133704286626016307734850585700749155440272855624284119540421642731360265940572891657855254392367706744061562587130587319496922479120845921507026831206304945241856894050577297487673378302971862888906351453174039505326864244506179766051096556356439712985079353302081920205395413787893301791239121273965652116995352629215176249178374466691752823625057899055585971687174337895732644925781781626722106522141427986039060615631370375881907049740471512951495261628934052841073214882188646542037595054410845410922645154736397380276555211822305576645838720188451488157584257410216461130951529860099165766742096144669021883791228623756608037853338315743748569430676220757155348042584804482085977255013441549386446072132775893434137145067921361745395428886084031100362357591278845858557186098082636109207974495249045881990586860399725452366341069254360423556312849344431888852918964675677224920800457818795684650722247103723924983359042827844402088678819879805515122287160426081813079506326490547009651649455534072738678122535966363760646172738097289964576371381618253060128837741858470227086300275424970332827960397337055511726199574992606276644066176725566343712591202309183081884553534815388618674868850246752100310839357647391880599084978385506920300961830008930408412006085273592333276991125697648014734540530135316526635853520063464139872853210722833652330916996398143397792692453734562526682636220612552799966146346169107594652665414584230345272250758159978141816822823141421364132646221642350717130128905249570328480240407164152844094794283292373258994802662117173362359917853058623889295149885461893281430911201032108184732335697447909975994024131930468282015418811521185876935560719121970268177695879290840903354130259579172837069513491422895384359395466255504828412483009777493247543071828490076276433046902493736270603849549615806492269082063416568691995935938461099435862322319955122452865334929686305771058608234827299515302712179671320469253916531538716393564023197382870511722827618303618923757721951310713897609147947128204579677960061653676208222655425248887347608041417373904674177333334328944935203276484432437187170290428082644154253221192655944563761551232503393792237131845245864904696205673037688254772510695054950281054448723803141986897214043574495146531145792882496671592893891516356205071788903362133923429661199888587248808573428538639573605761621823228591297474545006641334982610537506960741188390199595188469425531384354612327307499645141520744843141833189339511540918560970261311894948060650260848213782562229611449234214677811879756903427250757907879838571929477696015115750537880074562748592515653425142037673697933264215140025120308388645175023750817464579678248430585941340302771728740196118730608665146716070988162985748765625003404350208510524393543367086283731781157430185306892537085514467239325158713172013683390640526608232185822396221375662324720570252799855313849094382690325008021098948999156816652727256885383654560931260393909287274535551842566092600528771357880943654112474311088875688418153599436647663418849049191158475980308808170268016007863507012955478392568465270249198870135489055395564105992518664615350110284832004142002533030936287691617309867735629136924172532097269059025028517946729416667797135826912316926750186725623676306614274013588032456830123081326573431165897580284060806048710769285102395897481558529430639486256229946320485114768731148142832574499831968770367451344856137700493218464707065845211122612370465027239053113567346924174214095566422295025970872204878845371789386003047377596485701644700385301497123842411174947781285531712733288893418235104042262883882620589021191739754174600300204058020956718086082588793933370971373589755391244238924920454435336358914801936815491358135201166556609173255106902875134901539572272481837125572363010743009632092008280072531527826796700760605773565642944048527325409225028188296337644441145777561216779035543051175507596027602923950242340232647312014539444420608301801455377173087193386087465470514653293493957099445429475380708263322540475011994859711943477237332085169555712418634939547316343102467120923287849808256053580720195447855592587839808789568372335867585071537195734272233215404918835512204897892207874930664046636473753317354019362020798971558458793592350425780479860513468218588496294439801386057214759640968252046624512428068956973768256872275089141107638625415699652236600767294730866221460675603104439267856410846718405470443652839858017157623797955512726413122433859482675680677374429985131440786309713255511199851418963309833719366792782029198487069180280017963024866096188290251794124482251930662523085804217575326637603188358210063845658914483517083404745147236634673305750310513948077213865855178883350626961257318057066913790851089324944948368008528747047712270776486113217460218825100526459676674246022964349543406205811877733209401486315213146137350549690661319926742354847947175370773829695624779782376126875023328373904663323895662604240019095179417242051180798381779587247030212260260480383819831618070322752928077520346041194855020657886056602580629044546962797581085449495609962574981553163691227071207192722231484979976648749020471162214074221236320146365428212532838330532738740953057552128808240772631250907946929687543325750619805700857608623961339527598409704102029664017726654325853034592664874259039622182046666758943855778549771648612884967315454856118498628426430855139561791839854045481379282038451168144419214673294359544653599759242401580406565378397424475390582634214805089653752446742273882801904334622059930721063979998582889711831163819618252421499430869130560813794198628723400902202769582258244327911174274960048931297372857012798258951556388259317331628761194432864869223936207965650312535950468901754156810254344422502444006024801431465386936980015820316677641479238905008388724637313723356164943706694411832985641152604187809891331868115175022466763132347771822459236189816148163888874884126792599671715821560734741154385025093671021487724671649160050895563017039366410348560879193927824583627972201830908202907758297091818883998402511235889231062787093189612822734109578103931139674771906095959625269325154276976396713127386889866220524249049655980861080296496688894031057916377325659885433107108946615519420188197634671493126693047573199912494739723803586126383756071123761109825287425629811032291617477637354477321903666777644278045764157890300433655655140656972844640268483819688109168575246199675685150711329238617776423359635247461829413063132432594734860982394966012169558703282209679910367942424792448578299806317408412468207249231019919300603379470209330155673024419445916111015762753179131024515497055592226832130120816721611775389965559062939808698837357847569674756889517124497742583488490703175339927614829135809114757473877360591183528030760087722483440810661434684078963824293180119434901314145755389692139278402798683347818518102207235155247455530650869791718559568855007971697335589577023935364997087653485952104269828450984501407151326575333272253004192170711721776273510696912354345712838765117637150615481775610311835953253681442378428429703316092916510651557549788298467043038002853139909795077848048535685725751460459687635528643524542959433546875664391622367122426726659852451631037326296953150931107531625470629149464833038657559976073946848156487068550069229385851675360625010947584121359470292890866606175094938226579931259845637846245998845586990710056429289260597765908635319950853598051393572446820366848731698218123380209420285946992634224632783138028029483285406350177657695141138056628054214015081327858718342801727013991901808369689117901855954111399541933375513953045611978576995639858410460995607457553455627941297219675578325461042991722542999588505530540987738342495939810095989648622051038746998952524852305198438002625654440679329875471001283329981982068175182186172724181065937131799251777875262994307814976427343147506393806569238271287991291974279054985455054845854841560839182295809029267994976193015019362592043111309880065827278401024158684407861738851825496595256062714372019506701542317150890225187138479024638108273189668400575482850061455269311491208944006338774120353678212721126782881573746713963432540598015628223050616888403028636606213857269014452397913683180579898494096800031299147777000136320476052718303675638190459593167192995362321525930928389566217599681284463445668099685894640881849579046103139512293396612613467647844962526012533984024213132745366272458418933954826848202299061849112785861358660562659358022424862480879598293316862919220180438528716049463111043410135634119068367175193129568752441682079532814907786949295275110860758909851268277677371393429497602154856902514437971653080073139220185969935447588938518659562985967555413733473600461506506552237920976259376228676083856782179860870245588014404486825809440389629047462523171876200208582552670252832680542075166307511703630395700935384975738889264782631127963765087466893641551462779682979625682182417974395768941450523409705414110137718253992136280108009751118664498389350481675493997903658209173747750948126744602293597290890670314505873180671243823169258590314533707599955332438800840619917671180695369285469471577028343867269072525496702630562852555089547015988396794547996380943563068719838440940107366342277366094397524319913450143467134760242807032008878132330439968170942275210056223440855259458755490950879639893910495854687987982842781411026992070790719769030049074864368921474842738777650017322608959642820730839452844362979266485257571222724502406695977694917082235487248474569429640537079647383938898038123190476939819830639392392342667659752652979086969182462949658491589374311142033976297217865954528203463487117520595204943612791160769299884938006737259948361988505864951408344386213915918339147892189174189773844251215742724003630975904758243842287699242647397596585437130701419409815669706116404462124072607872782288900407693472405676165095813867756204262738602696478860191700784927055138464354493524260560813991583042835020260355179923405672948992997259149503859284074986311987653335492701728160318813073908997762831002669171176256433264751573178388465606600242542051481760241157105759834417193053536497323583358722698048864910277571922478007744496484090538645721591553157209800841687958416943489218654919721304542298834048848594882569945408451899516483737839586153327050983165260064082272125807397053099811166367438320578590335287357281706960455141343079339964758817053920816910900366046664052047238414541039895490043110142904051297703705048059733484744797777334174885264400763454406222655336896754911618494931551656799510736926160421758649210603821088901950725783846311751721246275569063109129649338027723519519415380250085629800639088166606773750026954314817143389946176399933449290218452797433484990594610129606194040179472026692064489335832978963610160821641090399009717745433576674428292414047495917980340955142234713399413466843111734885368155265288009861901133787298684321137043293694277968520545634467754221843057957654091670397933898250885046104062345747271391569135988484754211861388791807879496427714710254891549447585555133392359580426703138242461983102171231979973014759473650271609964251417604864516291832467991666149905729858391136152064373658331870098535765134949547796308399783016057750429740629634578246408252218754412851291224540637423853763029311431205789007329785657640889300850413242998445905735194505988513822857211405062767971755021377080078376844151474747084096247049209203110734226075514569070264159115480604138960660133653966613183739175491907380264057308210057414047464360467445523235107875860446509787040609047569878110150169220836373542054545957509893647071731878285689260251235207881556196289601007411042953618937527003535284233506150132021314981275945145999190666431074377773498033166935477726236125051804081063457561242581989290061268322278710266003248961356273864185822840943800371313503461453029117004072985360649811869947243821901328587156962896269387408517633201549236636206878125909910879709695812732604783203719652532150042172694760094089518091981202026053721730571160042191836930435239832256810035338026452818013968926333774550953285636058714108977871322082270680891593117015061811801969704036204907314122061565413351016372288409706673958287501450117014921992730666642084870259487186565003176903079843375729661695524608277629228227514037518297996494320113437618586791550177212717743856720111502405282244337125027530976466299830890215083928099565880550293133950212987450341761175672261009292046180349183258456153305796062217648603586421935347019091087153184953145273228088041526899256249080571249233247626753118394515175330070616642949862374574442432365806353727490834616203960403770169170860327591744121960177201958031929547512225565545943830735140989740069057341683512161597624492546513334177667570062042684428112198507391308179893469182535685178639394925752052697441771661025952158538863303018054389057184223107206586391844008134572371779848683993708245295922466483099795090333733466486023069613817207200255551127771839835503243154626340337204009471293976851678698142093211973895106212799981080843684099739456599334420314813449160740648499255600640025568035457398019670329569811511263218707798555371102890389451217568464019670229662599646997821704035909400061874437997639452630642510945512286882980198432665878591391655501310413899017528245638016143328908719100854396184187797524182719988863180450925727504264616093397088789470933760512501873862729667520315801775311326407794563602843971885618185158924564659656094923679479800584526390449110133955971749139157044342447890884795748865094268410973986037600360351236802911098416075298182116474054130114578132097904335905231367195728945333501416746958112893005012862222773229712790268413978843276309569315901351080194112543695803326297688972304596999484973242896431166421483456307643245644229773365432021321132569010536861974640410999675743150123260042589301354405430474001269295364520438262552987392184972125264608708169304514665733857325059532146967624347586512346674993239577764616854380310319809628840882946317177208837912773966252636750633694558365108969440829088458091905683925514921701516827428739572900112510394976672671505492380440758528181789748775372486242415794212412064651361325579030929299968815567750451322851080120080989189120617194874868929127410090104471954485735537465619335089374379665034898580245621375294711244504306836226668690057506777411159597683182843415490787940663063217408075291208843640538302532873175174981620528399607688585665503436421540991528415488060217765657475084752291287253578453923163602364207934082947417659740783526794058126822824337177499310946119609477194520340595428136534309951173255356551867119820022907904572577599402662409756900467908466650513997614499631691248908925555336538568926970404389648818608801336719245504849682391399990909916517523794042046194788903264436167422308028411292341901256696349596744477484545511813486485084899369199317735594288824539808432832125854890783662577214127342241633178599680284976356862437289831217315901146051306586387021364859204956556004566196246494447745378031439717030204766840949381543192164801191286944456021891494652553791493225731706503291891187316995812544854439158127891730032438605337924370417005600018288760525317158338474706283166641089991999332739715067833249193631403146358998392987512058186002138909925570471462361333085527517637372848965772410808567838222396567252099795927681565816529500614191902185950239602744967600249374016680110840165097687958831169549930474653448252780574284085421069455957235597922093927402519976100213561682466615739553338064457991202724477168585524112682146507225866027784523242077075618241252908661664465880239360789424977271707056559693437815457352004714116617493710664071935821976365994371228564811315596401538958118825235613967322027746181822975461995245978503935096527670689590918237628561558965899043392913187815729581320189728462112208846613653223416268509661860004997454217664497365840477731734851771053140947134377160354105312489290413289289925007387855669499380951255734541699169093248890441295144713054914013901750690918317596811769421349895610969794958664219916403874662173408589357240776938754865709954033827252151306136826839301432676082986280179700458889940035539588160330499082647008254271667960029458248482685676953518810442101596778073413923238652815691283628689638014120247038388945048929921812482203338399893182227907431936532385643345623833623775116053374565424169397817882449739634796416013313878914919108779761128995210388028132745717498365370885367513346263439273890550358258273234052985442798183572400284179824040157601562526527606176857596442553298572402756323230385060111748243832192205124987268106988456320955373234328641213465745718576655836794146601772066933365593523116359083487489659347133401672092927083715558550386311004167380261052357314189529189234885033200769077592718404956708332768038927457825138263263845592197599934130558910211391005240772554832047269174379811722691944618527817298444249731132562879697466584830575363424976621460433081646034267047434771077437291167680984125823956671141989168816605285753828267714650437024058747475703724598070099249602162708494346547045991481817597258550764980666894994760602536801705758470052240592189752213979414242461412429992660611776389870756439584679458344991048761702158982138880826774121938846810326077408613362859568437125874180952094918979066735842453723515153269418807894230602553643190185899646588122898157639867604501535664291314100719896118532973772025602005582192132913572896936482865804318903980554148403197097963738885011974719769698418410572316572740982819842878456889924400955760246730237019582116066245074125232546280532490967874401138568789758331088002674641505152491132401767137589975274092544235135890330982982841341045478168823495066197542905871530711019482233436084343240718701302612384447658528982327222711533420127200496834758091496575124043563625697810878519955310399646811298368125179249720704596416282856014767979337904797895698536155539272819264939871052904421769817499850479459072797692144032376372370025427226796384577707513553557325635874046260392317509920192649626987442692340691043559500108535692971287719752286550446806391144597216099495182855735728134701159003106139627263573965795514535957366041740775779186568372316127647890008900224866651724785098405610744532504799734908877312590725487079968746816842819477361164094183375025502925850394817606827478530801862958668619542883810500595903501449578063359181684483807892056925051120711865637719332694897058582048472380416469076551576775025349141177496826112018772632125182011865811244922373496987390541960352980354145023225733893118854812768684484598044443159857550490806741662597045157875416817215389072436433792060413374986496787254348657378737957776837665064705053618676834909611657148750042677528798469602252406475189812927208708584762193783623416986887874976114868896236442761841254499619068922696536085799654339830923470460791121999572449592749773605861395332975273583016529268402000793432911913334318182415785477737539598209755767079433434847771182862614755303046261908274308144030658415303988761128871757288911880278501309927291355156277455156019607662400912903923076876229941391424330915050090937009496195266591308731070456515393713502298571521119342573691774402969781705934124575740444252446301273526317444165540258388996918563159229920907085145657815417138047556449840987052815974303400639283609408188271655439151882937767726121117962164579058068825287187977476150490236302441866339407073698069994149176484654249120574983836645302467963898962917570663547253187517988325921847267616188759786025057508920508237860654822700193573144320292932775872888934112573345720600555308768755421017561309872158701043160112674777792612604357998147094261132172613119351655433407342856746902335059405918102141553449834213165232730741619732988378145615724630882289180829582899982299627250483576760732812172779220897999299597602433056836132663097021615183923155296755057439803137069279464319127921080121565668032666373519890107577136646216052628299228188774080281631416403754076827210567684101142772471794228553648568693195411576025688009086500552216942175704708302527633243141751912243233337460311929937644713957453753592812657038810779157102499222132520853730658738509598248033336352816655251761576020990724574613176006594555086977002050364879774021581407688748017245900569359178106262482030031787553846533206456396018034572934618306753780177676061459087801062843107111234496459620850423431617348373139779316422671628272243361970304769109560768585947003061539896294144039011450838765567576308639353300896873538374701623139851943152862981036991938281841039987048747063550205144046102637913893116351004645017831221140230086410036672927592285838252039680878452188726286543474793291156321087848921149202417940873570195765202350143863354555065490962384437780066033956263857311850271225406564003799461931712061092123632022234196701680683320267727428662309905455078438838721703134688499763219101940414968336366195789306822678138734149752641628222980740659913341278736847326136603612298372079648221994099609840887415768597244039354052061658249333648078816989454140449667498661380865213085149729325650092764101729147421822201155037339684200650099270907115359937678986095026123707590523174558182146654349725665208878295226838585948307265320934322185008287112190153040918856066640649506924812019230751870307110276475267026103141320109506890225496333390825318195008794620693952431624547995737887034245253648683746992841247799285970439721993278122487647167519172330139252631855580035843040706519035582792562380577673546110753162435837292487913416177637474135232748158115849478453966369568222819521907042732905442533396128442389017095873649090400588411591073890689234611470602017140971325690476939403821541128548023948482217927110357793105581901379572061612847113470016649636955825874320027459373184065282193876738593057853141405304700746054898437029462226757577324547598146047700817324298681821536627904522337076580595534111798537845780934190368799411003201909772055452876494807363598986736871268292227876799010489294017307274300030393036526662258524369377403492928839704955203200770877659431642165856593430093550913127459312704586574612715522161034130067423348449192042947134699766681172751754730752174133218857217966894820747359320191087700647092255845411275889459935407019542744035997528858033635177346925239754297888923611953904211948204339068060803160120254421661179971480702053695425658876268060216911936077903737821975950858282789948846462492140817596159012119240817561135293633609894515645460272575851185888918933808774403171936610169831398012437674467741200539775400169290092547114750710205302974806618023992835482435194334574237560025692057616735966029756657166951158074034740344114796403200593563788483887899336215615122682953766262527763711897693893066197869391933015376471410834750531655420406160400932310687326712401997005323027456487464173852830214422214108580072315522916203557162607816910931325291736677296382859465822471915718474946013276699925279523182027503005743094977216583259001499061221733929865897671790379085619157661288282219034576027494500718823413384962941908940841938783939080152276676456232362890975515427266710071202615929426377716950379367699868634066751994543028727745992692663129901668582885016798978470686021719823617592556003634588691124884583519121366139014477580999463977703701291036927356733278447611975633509796987311401485623686767269209550471467068700225877368816462746974891272605301575583652581265470838704810214471161776734731612687647436356935804636195549694283837257794433610675941942746096092180136291897013205346368808557161260277420547994695560559061419555648063680929457846106125110190585693076819817795320734672313102261939869102390574889787646196246197641189687889339414166402314264064825969243674106904081905401156940794718697348682010440014833346303572938432393196287486848853259757904398812577161327138249978550852122309456415515691209611348691164348994920438597666364969421016021492262680746606000345897398553396384046599666882358028750792544702026119214128221483458665802718398651238223908952435633191410176184558622289694804425458870012451246588823345502254946304768819850336897122340948126828013654982380782613938778132013061292566670428101226065721656093639896060829874091909907579434640424124235871455358222042858011996617366796767800347459790277365699067212638227638545213501034918082688266877733719477111738356078967101947256024583129740996218217886403106204482922137966721353577400004005143801151222417883847630107540219778048519128826211634025337385664559716332738518218881325111445793437760207257067539591304181759754845077592479571181056747488340583392444097977657547114137965006189856663678785895522563681237064315579931988161878107651444848462622230221459279987196333900118836800221182755015012415596711194853779108418070763316173719005782838979846225352314000092393082204727893976027079002880205957056312069035233754979884138586495214997365897725530618778469479838173195251683142650692038854533165216458109316056436730743766517176609955181475178396107884741402482182763304139655962011920412563452262060694602438694870030035237305451664727851835420670488173454948165107644066147536309218450332812875679906973917131528706582270921019135266340351211896141842975002851599611844168023620812589696638176132858449021188748503189899467591169818865415980180548526158030509551675914440960335284068639109079207906777376508776706468570425506317150154081711523800462220242350011160919943745355345527376211925964500267757187277118283469347822760705017289301938830987326998767773694866029579189781753207588791894721986423124014777307114663160545778470638570806909515193344026720640963451866316617377227217258679078411312233676412264849945105699507104560317188403746273770159188332266258652526885976830830271394037259080776118999884711067382023638528331480306188111623842850327383843619981555377953189366707624633714517283401473098966605479625144365887989030037788944235320537716062448773323032002604197688788617103093915238001386893322748820881352429317411241068139175172417778484506961178275302423255669256475325807542711827521461545293131314761706197504334423325991480381832608865742092416318700183672287095958681821053482899610940369190352283486887462168419419169821094902189235015325980875932310225350395375025079714259101979663961773503560820927312814435180491035049072278770641723867950241567848566603051784323638809340311062971288226867746529779042084147436478179558254806971950324137591803805254191859176939906691147061923617764439585714353545997819886214982147425548272130315189763821897965370744445388832298857998756185010592141559091289052822721697351642333919426798837029139993454894015181245306052331471670201586348256793833788897924472069530700066877076631793339382149353826076929220828567661730581340203921096292947967918059240786021162269190495326350707116816118030369793585038378328411677922523918478231661269563308789515697020086952917891025720486189081751508517420983254355732276078538855283848149471236935125613789236517854555491389405633076763623916685242713836086267534658200733392121141563829268435323924473788431308946514285791261361343900724734353485084250374874963543060110408747039501805704492291642808075662192370434172123972229208333688160180817477500001207923542045532379034262629889747614821942993971511189450030564660847938793772258723564372731707796087833887549828665492459288786801067864591458091294722447901739026096677922359728987251689914420151685651359012900876511316175487942726348255472220268853517572609840356781666378565505568880527816627647416203996953504545883828959954169415525759950163755311145591582165064037212416316222249664763883204216103674088038648924784219132034265123999016804419966292050975388616097543151705602263599238631579082893636028850205079016440053842072169278329159294621008797132780310169741124306511441489504681489510947653685579259633939742999846633874886124898322242663797129855356479008946193291767196375641405289392214601508691455757851601958968637036784052311786326182467692931922551407069894536737340790988674805325183551756967055279539929745877730318329126695680424930355250528928097588017910034445332375279207891964959522716942412930366282953810647540112845739198917339651263450620267262916689830094778723720859700773598913284041726136403838196360471407219226051271796999866527884844324673946588848572509168516637042406836914808281980761947385449867530886081645234414396256745579879299078008581026738224638109761660168762256654522982263993088051100070053906441558480326221589535249671049429659288549438350366806782811054413139484572029372253765129252588694766245612579767536826801750533126058848840220675529335710117278204600698153073017461534408549582415133764618071540602633467464422373491111124861082918544431276429128468625765867946209713716440155995188256697009753201347923738768293662071873003900742346965626451341277064956203399020624385122385576034580675014012180891141342677566670064839731322367573081876693119671016499913930123360507004518095955437464770374210937472601887403906813017700984311610995752563554457813138694305630579423671140181791186609482199543353510568658991483653059344593956817825551776524107170484666971859925415425029400765689801748211828724288755794494744275973061756314949539696405863503579960490097211896962276364306074778494710104180008677180930824172698298683798951764365202950668573616853701252547563191699882901110807521924123746801839956037981629505267145643377569260162829153028126466866081056620804913644715655192553345406977954368561188619509607465691794721335233374163440999231844669250709978194881497779616465749294991224152652136987032663130489109457532674002678989287363790317716243723100467794890592032269028111051164636475171629799598217839488812981857791867135594573862222159430885634576615671985322446078066345978992462820208402186548861088332168884871427006673453906183411918252928204710552782148327535409444458798810561134558664519912293740143789384627933336091583702275425145548474195329231070767595095471645362515892914516657605843131529170716350349092266570595649297569971096647118472439677717968328300474924633086366809028325529327178415238006686359352883473333878234347560615059664119696122535533943347827313706608127354559560541497099426196712961348979465970652874037704758595446155521974689863456132435861696862156699241877662450869338727899086542412038941623502294602062809751846537625295946770441811923957228771567609539470978651800454869975749415011003348442480928285678059196403381850842848779305287175666883442922057326221374464407368520885332024004362043090878685111757664703740670377380929596829951467648111833133813657461065975091470490447209060337571663924671427870276178224012322611346569814661815109116401020858106847301510553120264853200013381773320945913785861286358077578335945662703413470122690060804422176264782886034516034902034051799150557058220689269727655602605876609316326700078715528008040081489573623915634586978253781522868464547141044165384892666812441792007266579182950594359216108892951791649187642233522392981588673057203747676057556457444793609752247770324816063438196068907367940503505108023877781539978127462712740587504549389830365675588049772563440741918830848091817607600601485072785532839751644300657568195580437416354174126859576348146945970562106483680960405921978119599800528718079814567298210105695969105366580640520374207716857329071852928291833188789901074382700484518349918611590765940018569812772796654281452623454364361104296397258164942014272827706474244870422166629481519080698476245980013729405813205671523568168364748553336495768470006150675417341724043382593387328261847203259459621847551803969375406870369273299726664595412340741432032063702957149256557479624390468887130990700159552231322127306922618182135213896783806139990545396037982453304891399829379203753084919340454392080686986551584947948657805216323856289766823450654660169924236189087614758578529129489966987169561044841104719938856458537142086148431315667882217175523683067997512282340046167587061005453357519342047640173238617780671682903386738370875198401825938120050004728941612780837605507100524718599457979553394540409049726071235242701667151957426324957004808208364349948981364963842833756433554541858881702274932358950427423393845887226023467120023525330799772640822673348498278299284590386532650784133266631506579131521534407469677379393314985824392887606968375490309352753161862538419255040202841485977373903954597143371016336772535495598585058190071789450579105308473276696118636206063570022016648866942997910643593608218004372952334910576229985535323479299843657501666132020217700603820215583580828744370442219810054634282721595416681084082196963880519969257732960698022458467153617179215547085188303163599407642827848522134624269801877683077509801895342583014583334441207405138172645124975080994043809868640866119772150967657773179495528570751852389864690829522090291972260002348386699811913664027818043971906733144478726037400587348652703633865587500494957815597025956408037737411730828312727137688959380840819945574932211563437359205387492077097983011650874224409842556952939493449395505814160450356599557702223005725872434301431232608320405499212466954503728566312335361575545725232854980269900631248741203592304735999182918316727985660873971792319893006450787372033422072031974818449382177705321673179345145663217152120953287602976797334732205937572599515269539651963768782763144861951148161350474340234013252083190376033495636775622490431371071357486183587558417655350424872524978079814591833243426097440550252689221947200449617964011995165225600879020893245715246606882950694359753631370375090202936388894796738766263210591860163959227436105324239515271591830463053002337827671146414728579492287921457406124283656485636983458498261589480750000237357100744917309077816606102494282524794092480874685575677118499843765876440668410426846469467487851801317090852917454647637197066214839777438183612084625747419943412059398323800664433596637155717814311841051051379543448657695776842746957223274656884503306641948599765476218341540774026307491589297694195275805302490995295745682764141681480661022825226408528866407117533232860594239462576681192226222441654563884004761743315305376195130560951025426023335511363509312078329568890068673147198562600028285324441853709183822445766770496525972088778038196542855657292647439968684293978284269828995367294003697466223427356499823423279739051358195054025684152336233786676841799281220706272945183061537148767584353212378984295716951858715051907895985018568402622900181991640319948031617142263588041520351818409040489265658554858696959428735369244212895915098635726427942112344104169990314188342730241363234987304803227066712315849942981231834699640483363122796378177354352201286262735685890568735686872240792120867545831187332786139713204994179923455237485342587420248428841838989550108338691531218403940507705610762546705450408893503468805362547145602366702435815313361761032794102115974486711882629481801209463994225250673994749088707998389900047645778360233351983241662732999665303319603719614083405072461074787281416344938693943828997072446436769619809349778799913304344508138688931102969304203936844167714081710993645431662260510040338326591237052522810656258710386605038340370617221706125675023137234986263052684340164390187328670743114891513937217245740609723758931976182480589935510832301568275960249222527280989862438312126939434894465363597931939116932851549644095542902883831823191590053399249910335648740567059255707060417915269472011932465573181218437773475105570948778004588674970088511181563044524497293204388812082952750964337876508540769922036571583178589686214688647675050415670187247357631388905925046034532505004537081599085820606684698631603323975085582330765745607817837535170101104187517897365705046732353795083593042144947435318175484592513591977731827334698155400400400658153784562058854857060878668361214531388506331827953287939588644828369826698307053478354434484162509248443504939114980951090627059993256555607371890321844523155810106008796116775134529340249862579858319117970721354544826148984973203796596062122603711867497061367012294328618428483099732470050581310388894873391214030738757705666652661200035160118139094220059456376589708569772412935612371000684398847306225334503102567175633468306871030227824426446565782880938934562938656201146252047749249553148795175557731156889763926476548280810788676519319361246375659619883068168280112532531817567648943704149901519134340177673862099383003416864653995786372530098755066050163198184828083442407648991324869782226842959952453573035975807554523130468863328372171603748408793878650718823691331346176966229471967064138898042560351899882836949859566152439881561078229419488313656789597885940449361962910055078891980444024580095011451819175225925967960794883104150153955056119331065893328452816645454775958874582421221025099799388669182663068604852544739473149280573619232252062731158067389805584856419544702156915362193416336294074288811626892225542230884593166798965639884167764896785649281720477787409093866493006723046323844636641919270569933343024465863839048198757553091554809194619156299216199871687767379753347228451483238287443688993719803947137616037470305702329446675684792261764108250203828445561955573266227359066450157238996709612947565777225508041053223590717713623008306776362776770003347142876042630945576238164267554806970446750287006561655527134515580735957130500743199456152894967722501436249792391644495525957055047273241336635635578320118570272799806110010924955198266497521504924528551375326547888143827414676114645557903498930774860801247670685410703232024320386450977490345233489543386513348814631815250699199002486491575404166508691167183098389490568884126514041162507900343309777647197817411836466589723099657320843063337745535692978659733183820325743780212540093947008517776908660487005229524715405481158292443230141277460695507705804179929307168540978283720425047725698347079024612015718579045036579891552204635091552487556806942251752795551299306292141479624856138899237047175496222755247337058603266577289889358203075449823477901427347542498790663849449618760542681694232413523951734588783390306452999560382170141403077967336181171103612362730215097055622832434917590522958877045038355897204735151885283529039840261762809392437132432569552148328557533730581276383910523476540478983969938006122282480439058249169948283728365285901380064667362575428577446530160265473220472005799647262374671835309870889232151186352543843862618043602397417160947634661862001144396859887094795770975237285630397515872285082373578734492724513457794609331799846893498603018048637006159424491071340141170729971335008567116397813243615243521544215940470648194041313422571781103827705138872169899180538587920912072494273270958021791531929516948867879720588998787573697317100782036131632362686305580185714352213789784147999823303501862265767293342073011951598474184811240181052631383454906192357925412531595295971903322813112722420144798824079215118601740812092313535114618002716757592454508793945134304597679547617797327705728970897059796219224498352585335401672796094403150108713145567406937554092855482576272090022525592693687331255124749411338549499640330159356011394655573491922283754623325048854395529220526820367697143921073853465986961189796602544635003216951373661242222557844492839381777581644175183541421696554530414230168501405691550308160693491248889229712302772112312220092466456393435809245096246879108038444047660891266474400499226928375902372730183334804891639804324151428639916012584496067444226241377992688349095980727388877022777652831862718218250663219693143464661064981288131390076412314925911700818075116263114285110996749589481630720449107450110461109429603125401178811254566567929486228344567141471169331979605435516362868573328491665716621686258090194959106327220867734166202059546273656954522816875017180923006821105734518655778840437794634891349925364951317137570895568247892756643701884026582019055546459136049897843784236998025039799511812031377691163265534053954512656412312267251649605943956603662998658397857609181362525651735250007049063189982816768882409300911664585882267335461833970040160732704365239259687957306076150337968072871614187980574413239727948080445178202360345554572790120210829269682135627342896135387563509448498077318042701164065610841869400022322688805902716743301176353852946855697370961897926412653040801958154445905443624667551297010091285284038271613768035143674135750334189878535595093092273375062804185544001790112059414794266474245264776249641268748609713596888214345276377030164390454074768126235269230796547719780406733437625548086891804797037378350319596259059777939492650343603724733413427521532321057718796000223403089136514679945912691078269911246434208959287010114274341421510288546004302462823292546164941955641131407564765712725032458259712974671840348772138953188090356987928641634793388489558476800651334267555954524112170507921027205785036644819401481621910853050052247323561204080616764856661162050927284304372834040802117862768018248131990504593500876899255393998941756068289783209018139028636350418653573697632436292606865567129942060292477406683013826843826485042379638069261010958529160008208396241784796801787238906729410211605386792755890721589387286429427145105972639337826846249385353684570697786512199499328772402416553569062771041262684288932282553328906792897288069804227579310619669958032820471751627747173324083340915969098360386346876297248629786126563660496976049472598838191160214607809078507801464670533048322780028711602033357152498304216367152774855533064867954562592615826197113870315135488941977942691279130643917667021435847614214672623354392945048102937291874397955342550130747529877864927742777994911720226989612191518714303033455600336409299642979113619652487618836457065751374426900985432080889389960080358117125226730212491710626293721450919529401296691944770906789468951297237191647946729829999111153842290236911893502320603969011246263290508726258410378123486950719872389883773600259033560905441137739539054802313108275601296148355651461217840608339611461035295485775647254432368386525366514847914985945636366574737301116860411805973813283802425975368885337059727757369743667986466411129816845735343540775845073442914430585319822376729903558109462046857429584793512778572634712075809282457858753229949283413085391642665473198082246152002675937396177990919276331338947764135279772890823378847251114169524273087601733075392257022200835971480850994201176519483451748642057295711191640412400141187379411281533087066638245426904506395390753634256909730991945279617085417440606192146724855370281404065138016760963830391362753202622025286293859767746620065422004688023017595641859952320733869465973921899352901693733818666670779363508367699769687378773110021176342061598677976602059295896583362529594527930629748117327945875917438853279918537574352851414744730749726213223182619332564955960641168697166442753783970632487670543511294793070078967405049424668779391168275098205470275313849636438359991904533355748677206570752385673623860105943357809457734137633818294864310844241810126616554391123890629090722998646847978333987898681267901465542629321714614879676813896308531721064411333540251657239732643814921626650681507998222907962612895991964084837363688959046430421417978826688933658676626438606167177706721572455161296709345907088367016282566018242617139361703787766560896249695012941623976754053976601923706884562369078192251413316971628622977543157291357832146711729736666603581885325021359327167658513420178724378963239557609429132494518586247484878972690674012654887222032623542689233477244246778698950124166105810392214018565897571970627530953159749801765114109603176292748467657347062803002678792996231369208630550062380962083137134185708697749328865686277137983546346679728449325243519436801972344466066459934445996247374181331500925226833749154732411168481576884778301194163588345797918852551193917797033920440511872237931818546490454421175442161008014411718343743093650906917438302372232048272652216287553096786939255028623756887506128637057005854713219036335173306028392266294928606386028750787388254055430666080249353347879012624520720287988636331627763593450256417185547514031849721588588249294334539216394868216818361396282375210731064997911405214416062641367755855632215539881034672039754085970448690574820830323098365789922935225085383976646283573095137920972530724839631741892019056874696429028035492245467952019098483171207354924856530980566767894404331317250720860598114670589802890889260234836390940209006258101147207358175469559723747028765098983064738606298244950284171587539879663625829877362011482012345077190651542899329924323534655475781321461287993044482882398745435311616902004060313039767765258903506480644099689902567926186515130818258082311402259996778571109451664268705922800251093818953133075401893317957013826909774644915083794517420128688567123790748337848135180081501429385008343417490353642044403862411149254814951581083461005072219184250684802775757759087120091103559150905746843410709214616889272577557022838181329755091782475034841606812115370932529620325809968946009113513261105741091041727706395802247287867981949230092934621499219354697531408578446810315564717292061013889567077271822337848190997460435846227091525153714234467334779126890669534485613005352865302937663205210415161635985817737716308829972155240244035676456478475932997932977508584496542321863824660857552546993647130850563317185737027208673873689097720861078230744351530742891472343623824696204254239088889271508263138724551190291075949182776242569832934624314135917030710567068865005697015905980639596211691582687278094805741464812106110914670390211402766471462577715690350425243093834521281435273303429878125998095810919236925378022179932440822112053585644771663053783318138671489386182469130454217195497786723472277744334263788743483227293999633737648722742824199043300256569351210766274278670354755343498977776461641855741623168509890901367136856758372700806368989853299824222230358931818072621554726897823355258441585058586439238365341213918309710130211991317763106171147394408108150992578045956163409914928423158367585282020826271610285100845385532738190673012399962682710718374332752877034910432200323918940179780323408831278184799037110817177502715809765588689086037127498606880930712970414916334229410935957427967332079416023451684258593898462799398704114444931096549626475176847119701979826444248314138242111726833353179439360839783315948398828856717892023257959362870015248944306190011874711591802643238555156999521804246058537579155575308409579286608430252142874549649508247805676071746499610204244347660889688002434515152208472919760078076996313342772477010740644532512446073780894604046498296014906347167458569673365290662203970289065046971543251270164476920764012499711980986690468048573446580996747240062050818051287678646420711676580417458091368233976636464618688549556410128720926175786089536371135140134269435860822921681726644513204810400314779973900752594216277216426532642892382333455289438970789134205500605910057530167096411746538344801237505868603642642876800222952511356199928430494269674653638629629089845485945970269032454851379942574764885838179367651328371177074458929969670201872452862293554104787114893633771946753906441889379633303645710893703387859729297070787361861405382972681883516412648250965552419990179186688791901054483945981647130798415411172634378306995422961381621992139663699392107877106702845257576390884362147963520892422731662486630869784465643288140030132491836318136321896778795848423503895063583627689200846906739290602761545516509965392401582703991927270558079781905887215476508257918390241274706117038962742590155942352536245125539230569163663501036944325296434045602110217725471858665133447603734029385150638307000926177092522309888614669312074264466028444756579567168396036765906429081672853174722285618913804110679597526958986888280360925577113097696159514968053281436582400108939622507218268573430864382330081262340181922465862576030040503591429235428076527347968341130253051866837614960454075262601631336499181590648624812931998361210350398343355345180945011141306811233294203612389886411537007416910722606785334640519729942540014322537155435705663272518614723175521742134402983428139238288433013380272287693390082927127853623356323944179076117190146134406513222203477899892929919019695436818127759371023972702190648299293239792387106167806450618457967247835976274560595110581829239348159234641000700210350421025755579857101786286349759598966589819236391718543647760605886676449396047134319038848821702617874883336463612838591051864935691737519504920206589316733543104929319848136868163607734319079028358657774055997793071069264245722419426350942056303818436804990971058012386198090821656638654804121492959271763081667947333916644034625329076452766826472219443808491604663227711362942003805993565297743538940176285162419791387226003697687317802845669139755576395728423203378475563250178792109787873748603341384307300368656180269787996453813915759502513403260908684638181568073590836079475208472545269357763541845513419196665143300116667190809654226902702677852558869937503703786500879862476167004787846610604737649584935340686588201873246799231672206775633839982619304767072069860763494691794535023174888367103122867717757849472874899680815840105845093606294763530062203694607070518028349014401496857881403480917445243625582088046513782110260936123097564425725179484004943173561129048460755697987086002756083298895080045324365377563696085351937837259247915811546678251962710377411361800918295018893808916559063910448348548854016569091218163193523457922459899023350593914755485014372828353815694368343937277536827157505714147476919175963521123792270722210466319023437109837036195432668475153410514477465051294661100810505666820513709917240271856227225429531261477759321141627083065887870409947237254965390571111350542839360807001739699482565020823763256175402995323942409142329139423357181790767298982999979366083685588497525225983578556942438207395424901474707263603532220728247264693678112991255740709859739680759540698374944417252291818929742675539680192955748214804512163924322817497221148167654032650517366505090736640666182620054896646240448633142480816835950402877151112288166663139011774353492570979998048570375372231626975927487161597532208321310078044894394352594339345908984295037440454661544133107800497400135113913513100284098594575066459174522573626079643167853022077871396680747760670829547497591800162015686847547453974308549922224393164259389406096751412645160187277748639440817210763042101971311731875505966483571154496097272777309671816158121513935542476742277470175733042597293488370116116722612661493341040105640465695020815167716127261970533632385888270300935241795640243729266865346311417570004312108519917761578353428934189389459420738714419600723402417746125467964090849598517312492096449510910441109410568901494803869947401573393261767809630462371171600584965390219784380954168710780644175997079360668285735628145854279408254717613579403819197825371402348916304667824820794694017265749389239445146626119942588229119642395524505793133320617879880838379566078794055501943607702058140535014070271225148404671509533827301000345828633854400441711671176381000607671002370521610671433552290669818171204204988355496395366478082393598436112644296660547721255158401603862227121148288442356152774943186619964696905142496953823730442629121922052397364839938682695741795342504846822604236324709607849741496363212038193474490593604389344111060914133881191596414335556506729010447805563502447077443193661560870068283807808503132749206683057810407288271573247963956610992447788364632253588985171232409793292538354116051130036490447196138269810847889159114614633593108516008638370613994566394005362469123988622694949219857909242042896323445060951063436475638083360397055477303003608180997579123164331731928841171101360393466078179863472140897589960026004794488958438766803732890459005751927301810912749839926517200093270470556796400244707830044469537671116651828173880547459093697168814973979169124563182010361829354447901869077171038243644441424134596783325075197455047712660862121315005942054161031394551612295431477945464464325758574350844492565092892056702984697955209229518209628996055262592832494393676717268028984755108191630816985728915415831508729776934578343795571628588758149835134530139095864671311582366434811061783666858491371095477200082397417604221679236192129812507394306584986657242566308995498380826745102773634611657874727472062868586382722874652028070977006008455989427223977286377516191198761959884240643574448956053360513645112460724409597172618464673186423224606486336018280572004926529713547989003476963660430681163773763566117974475232414354920327285558561587203518081827411912159268249583956527123894510100312516867419362137624455064556321344535100199716518970889136037059481040294144685700571202069039324245931305096691865591982240185680465918984035290711444412664316296736885391251860096652287503325250282423562491536307329498355945492773457368149064276856312585806039453190390640126236442131553822411186636866606568334387898496347407184334806868089740034448094808088993130179240839626610917922269575527841825163005329018289668116450447242007800921916627527807712536471260159250728917728778202395688768276833951083515001264448971775923275485265699217042490342816827140554183459261300568872917581317921813182130692192092995252642701368283250063352448275000313486235803764786840533593836723970084096553440053198406958156066357434943215914673259956240219594022557530647815438414286583165164324903015236804545815440722671214323141736433493442006976123787381170484403520855006225496781978453474203780570529576379213052488640460820858005405818010623274402462278566762106335599166202086975786011380224731355031167628856159483135672471447567401494973420102533523592681041423802164924302098781273498368842118382069859410157903394952818641669486353728467327219201894832483572028800034001611628930065962441480268612461081249272992164834701317822852807921520032450489881036394628780378250025761252313938529963918817986146757623019385286068567065378895489302992604241970004690232792198841921351867412968752166071576673286307934646044268266371429991404053748603041851998689501132638558261066880853277872770183996672120701258548441234850911363585530579774295542064082883243096828869422678148732772760042263993510553310885505702845896846951991993179014675050899054076471823805972296285372405786343069747728354292384424952367378223275424441371402742312088671701483692227159051318096404408795107505414878578306200539465643291962328833229341379415083828866171388743319305148375501974020187952204720399484329289257930387539247417635244152694128964334409438074179474977592658452170907077247944221552476664351968407691933391909201516395481049159961277436823248114849516540032659911712199179155584985683681127081833329902710921188314445252923552336517936120748008314422057376294321421630987989117575631033537027321211065039138658872306336750979895590140248449238307817103183690466674937941483363206252787629729311408185103549195501851766457657697679695581780108860196949915427954623451738536354184654100303602175795592514493662302903341429143895466967977367479613893849874901625193511189144026882715172773212265332560962367785860917900844528909244400737080544911241674032501398644861572102646508614768586702369443401895398094440971996548782275289431660478707940944552002915928595643984079713787614839288692985988045694421232419083874985879399899965402629015171593194982770651002784107175380452575743735087558342381956023824895444674407424829822450458297709768192902010905321714400402045602887086781104859948811344928219359333774017483782756856110822286896201703100738820888168081826408022347738428840067588612618789448107598043084535214653163478930085855623986237656654657059996226883492828325291897879833709228620616070776902920110608443435702043207729354305903569572515051422880912277523855192130151634657425367348676148435893786580729212552080724106766722530741317273909283420031711704068167273644129133067394362768638614391133101852510781581547274227310339609851082152053100230934134290578628032295174334728386506597275549002688505574662914351426311228898768737697414305527003542138517095495593649513819898542946497944549320303694349262572755854908837880332202630990573235941042549524112340254869086582843293321091515443517670493142482488681014424046080538955373895758992488685755469887292202348517688861700566696780945840777021773698701986168445584618300641765399712536239423705167619143932959581211759985281784943641163138152000327140946785665968929575757919770787666684483034995026975004896962926303991691907432504895789412399639868935047193885169281856432809355852115715465467343939550628499587894107224785242137855385041036117402298999630018924849253422898524045167016557295927154610967873681509664685951277020014447256096675145839333410241402096561448540606569428622818608362204142077434425355254410595856601741766618591162838502717386926808737636703475243718990383195768367175707186813187638172531332319771702066825276327052854600822442733837995205263117043657888919698678386383220750537230775083891703285903702351168102711840756847216505884456786652466015606989775130511862065860307330295270930505945983534074649664441436521805730982540341102005854315264821166080146486939586068639536100676930714131975734908543253793777921478547507592340850138726766556066291941929666621383116765927302916593252946245185737629342273944842531661225016280943407973175437724116051452139726444374277106598164821899983090695424977109905823421477181677008660285011986234596418357146210865923033148264859333264057952351472371917400137493023026765596514041952101001419659031131327281586611124706254940546569764527066198835817801856178245517301784630360628049680016347999580988694421377030138911639094654163958975422995223380612669486101129549037017650074119291506239039546391191331252455998088407668528870508914333404180695341256286004464710312140662208934994162270765322631415491425255896622026583644087324873129851607977941174750951006241092042759129789742642108341253505399499381990968701488222191159683710423716423171212928052933150624400422157470140563952542615919712087675360170517983386992168851150114393906660763727371926689574579982417121241901051666673592170913853291278206756311580418387873374147362098312634294362412157961532353982419611671186961965340601877486212865433211720528952522866335264409849777716248007125223750068974167105981889885771169462062303648558698820126979729242218927458734769530106210602720970298724606626511119594350231598264265058642499701706961199603313826456835297422665402313230284398048787860721885953213798951316843092801790171574062781200136951170414263212324679700520544695707916021904609500543952895239453583711099017594464343803478722283646302636831835878176535240726628196046930275752553237155252824672663630496171577768706887191428552485660043780046070170373705630843624448932808618786362663734951947713808976055752483866369169902068184558699141472982722482974853151929518831840672721200802482888839040647884962591851006265270372315044208218091397165941851517342457988309865429599797412666858365334563696138748945505380859879873189805114576502409661099798648888332341548579027781936162938370095650640453007844650846565367168269887253980296127510928472290889378499015363610117748141818502917658927781681803802499713078817211745962702442432444373974016897294528072370569529474863437406159732002877485593591625067176217595830940134777008465764322894964449712936884028202947913555404281428240296143490358039442942456496166366428581985442389451873596236088811446440224111112563781591606418446100291168036010543486157430355293466793120602525182001385903863426294665007360538320683464391305804592901710601438783507299009156072083590215586057295187144308790796583281951857868958404728350071028608217165551432264274761689096018749191442012900837936101083022385919806415835698573471444489488140203558789344904783511395826183007676177024130871064209559224037865513110129879258974134101080291689361620793842709570968215443995188084711547898174695364515505050368976092797389943164642267528800612303430002561534895764625179366579803148103643331717749301401240169145022601370928000343330743567183219362804038837559430934769827306040872372290411110684299460855548837058732333107051624079799700527344327836084770652536026692101743601925248146647757965988662917024450219603775045150756519659838280615343003613487399968093711106843729825096797308915102540042457817675556921847082252879961379285416045807627829842478830087012139109712927564149940434643960669883523911104542381301967022384712521844396753673481201961379569996553620308393557969752548370724105946335719715485853948013853053178627575037350860725937289164326416849266237965183113495312761190813016670387520764520135788077900759023932939794089659881251405098366317082552516334097882069081915137721287193460809021965310942058036274915595202512428212265088086087094550966783398401013786795675821070920317483057289601116435487497643397647849358705696794662378486977267575080269177946896992734682540000111356292030795082030546120333949155647469248693713198292211045627919665565336418012204804019764628837684960091092738562291702522861617056262469937891792444911488283828299358576082075833530689682290107981474879122901328181433424944759100311303198928573527276913269968620021748755732474097405468232717059172449107614156477276547684639553857379318098389226645596384399521806934632229798490311305978318676494290420373600513431837565862146961670602188104845595257995458857527932160480305091828709183756186908224310813577698217252442163050491672369855525259825185172675617313213310947732741138101541707155126035353754092188466429487767262768961812271072651409364697008433654979785346473804504835163731207473854588716625738238074437661629991577885055038334651529075479145322224954471312682037051213520468386340656511882372059582907700769152472256516608009391545956460162329582731966131341855471172780225634637856803291868529529094732212195195473770471074008868517372043588908390376495849001090341375474743326662811418423131751364635891799459923123689479027693897007969124978588234629614386840016155039010368770822417841424699712749237049719476902349165366268484502790342359605718388698571304348821197911540285191392232428186147043089602549720636153554454802290047719270759207595755980829990715624687208169744083106666843960062570660987420208628041663532503150071845099961688613936844501985893500854914064448060690785147840874550105995772560712447188745437849612933370133584096120890589670090591980763617822459195197187292046359138990901509539421519941448060118609638309644469588277391963672565834102989731295172655363303255760518386089109826824978327609935531836543098965446135025330905863361234178842063502506592869544101060493913907475096788240345445265218562536912100847672107514302769823056785461155226305731372663936681519486211351377766206782595186741756274713956381234436403131380829130876374177409555158837632230236795730515986689132187413570804637751154581676113814307829841977291663296291270951224181437623817642098254216511637391059484665755901779048981170929193361335502799932692995635999516982995338044205578512354668439886107542848504835912731082797739623234069505199086282360285302764215561035567420511004709916609672834303042563526866135744606093306250018781683070002789520707648877764501825181443654183258504711837199510073996897336758696356117822274708956631793157242173301747705245074787436732084258883230492498906990302882686471425452496143463014029120813466277689669719491253561430444337221030275313269644146950765177281368410800710154207178425629981944213164012624286607079629259533776822742975370584511233087920207011786759892528956041452216371143736660818801577594884843111158581350688718782883300360813441808079996790757696005989333824686268883496321608539191825613871853130451200302678152763865650275959665005762371712410861655005131887488370571061313265394259654435133840906574327151795477168308442066237060319688088175863105702366737792937128169322958851194903002140714669893307825683213035177044893985565029716931420028786867312317812456411780353156420409831027587064818976538639335556126013512433535111520840882084733470196821921218423196103782517391232477384477153464913949268294632347715472356290824903104535110076632573774755590202788925783069103651635534343144666882382441213035073164879402441393447170903818463934861004367484535064057377581497879225862423484867680328772234702269492108843366718585615549423328189942799806552004940917190593060806060378778965379152973727945115405884397237841097972972483902749062537583561560924632972767323350538245742851795542595966124447536128474144919698531922710466270036089630763032270026329403601667606391595010290872266499257164510391409538302165397633692067213225678311815952717809198597275660147785931766556129915737637282829782968532713994658833717207597977032890570855520222339394147295419698216254288211568984748819277664481004569904289083438953640860206124404472096954993865065592484511032993103928924847718495169524149769228343994801128014841779731111393275511197112807178406532054874163943689870494059625574217407480846306564815995603260970525681401401937901357869220230879014792310593851727047744671711665374993219664009356512861830964880842717645554558984984270249271000162727497862385474557162529615241322714424055391522918387640418080861929895714401811908511721686549539050287812703569723073775250054140763751952989457061364545752700483417902069350883309605655492542211483740539115829341473715622214920077503617557145017953456555067674227522665192332102124422419876728587126774518600501733274238116686297791658574096926634033919790064451627121646209672816198139883102263467536273107123863789784341040415976900622423290991130597937012629903695014444418040194777686992666518990338191903439585475949821060577376629830795225726126429720700198325319417368129602887381147868141891840933810390014105189277516551023601879972621550593828640585484593261324922444419266964953854270217127044084498527247855675886976324033562819494967773299716940136409626219733904914506393424557055587120529652429433855249264699787926058616818028656314763807979830262394854686902391318406489599682566524280570949324471595752046300733828278174887212051579351445977088888308683133557052616809590419581093616286189867450233811506590553297869901577537399142164096761410440727644932738094025894360298933579231927859689651564186192815604039749129506736456243452708485746090187084117147341943062428270311655995146943610626472371681755642807350853925216393610359140901002142860753244034889547857158095985015272626376433709634570167110824107146909284072787969662445920879493182908523617763277381291072923152865173785892404710993079761536373988283813414552967522657976319903650390824955494787001033815471427783405455791762424388368390276078038637544794586519550922401095028719790635417058580034849222415821769849087374690197861475843486358728935314850414486605796987388893729781660433798426164147756783355096350304399739158134366466355418908228434621101486078454720142358733462672398190485420951458954984514004061596294413383277300971440290758268829820709918319875210363094584740372664349382297831270511268095901869771238182798850460953945498378716041396283484282205972242048175339526484961062882376260873615758754708338819864409714953265894183154778678960870843349864238285908824186321141604616379202776198172958369122352443966600848286698914570525818999819089040721053713972240011089952634450233622524262372665614890078040892083914355538439596226784549209905501124612881949673130714772826060321273956821995679369678284468728291755296311450046639071248891677683063334167536860831203617477405356303154520371113390204534907227257621808029401217531403546543578997193192740162758819161146701733621074148104181391512175651855088454240249724962538457248378037976392691676148794816490657619982268045352892619110436765940333559641116967682348740526204648424592966743591442387433537751713701574026902354831054332117793713026123241616600979239835107723278266279401251283201998842560926903488540067886659368669400914292541522803724798407877950022060535883390592877404544923172650740997229985510849921801814269234897152553769923185688829305300410679701533640536290188008434622340236443846019874843295639455270275148703202484163318614397670091069526922419176531640349386512671555437843864426234257074933358855690197097757835122713766318542742823781808600332819273927371907987750355623112363400014213499626995025878905508880884038504435725004595255227207240402348735387218029239089104834812937735976314523146091781591750567277414166310120937859444017409053965892156999117040603840368356510338774603284094775774170713398986059598164687855246902799060367549442701939185093952235899540640500430087851650388046911184989457637104094212415541367517797137932321952530861414494440669985195205407328300705493102480569309582189231576893964294960450179110648983627867299465314116925564572028089706566232552683822109227152746945568961561999492914456521169765312656108675843033004797128627599201475962106993063632950390135072368493315488435185814728834361836113789983303062511656021122096806192131524874920144753064811048904449274787491157627168124845109110654935724000974931827370696156824530374442937946228724733320898494152200240573386393001528705107145972956960599145345182214973031453766388766029003111382191791985554258516666337447645568969482673827206183176567036968891321215833222776295577599934717923889793996390870306971659435210627038870187446498706431353788178546185903229231971181960421502954243160202084476781159901718430493218814087100066706196101041507618913740054032297151301568384685618379169028263599727332943058990577396954613484633723455668124822524145906394087747060852885075315813135845281174487286282710799277690412377559558352787363660212979808333389002677617530844606715248540139153031548269562573885997098944627066537657924234314835941523711169178834597688972981194727109474715396057357387963113092488439559013155328734727270340798571476191892463996329565711808039236891610472743226814689095938151053866515978860735292998589029190094969315391624524229173034768488767511867114210059351900669517362678499268061464227152490893886677477917579681929613981861591622908502154816497275999273848686008132821987042612604050611904088038600297690622133250832651757693281640834560356209646297404823006128273954874270637626656944723684990201818157947081561269690636858182048120045311618769258861299235865494144697084238259722200484036556466524477044870938329356206996913637525528905086686819643769780527430923179317913226449082601295837437170039869517665981104086245304589576107610621200333874640708927406644374018039606873541110542159277259095641156200960769674359351742854557786484202151885038026835806804324435236097091630867126790084733202292606864857962396008213664211360170290861758956563494927101451495901548330604081987986455228579286429891326021016687979025241833355405553483089838917975414847897105546688736931299646610865571741666311642876616483469808908132202903567327986084805630676200357823591505030394613958415152047113486966264425985573779626737317652687392989419014949507593801181990040274861760396945874710642182098947175798205949243419477766022729337079335972710392957012747532131429915829221974472110774819853995933341967770860800297891800772486605369131698533115074357026297880490365327929989944159420391416069718611886239602448923389555895767720002300163065493493186034128153707508575608465977111146933911602426625975042866722229958361246574074221637781714544778455457982950132995236577152328819807124495125130604261287608517976381143170314355330883698017909710886430965309503091200447936239493057894871002691570619177695835428275750038558470713242565183357226167988176442233688906011908943102329766127782271676511785770901124362121183119408366267935735023707026276717917265676107385726236097764621910571235221636643757683306071518450636891490673049020818318956756181920236061771355000538013963708776259806029062004058128911850051530431870378408580417251230594853713188537457261337921547416572841367898661284713519282493965209167592343553223936962802498128886793544883198574164166817892834509972093709500935064096118938623940708063945793778887039233921789823115745778937291142005914264362263324562648717990447397010734552497919251628336505642781055967923546367647924912907646160123259054809583289292617781219314536803852035507036916320959158638775723265986139909014817838147600201428965567247678530801716495674056662421918775651192194552462933081634049201785225842289346608336212757534393277428779611207953711695224380847028507761142185793304942894753532056005743159851569398467400918310159432636558422051658747652223090041816933178345964946820826617732770269896167118039059697412417591487569954948884859509549822330434715387113410393913923215807638345185170163763506148840314737725063791842351670092525545568502367133902648250739376724615039581729966970083131344803535334008575439853232506016949528617662120984542675094275201589778393416712991478019687496840762574968350397467998022106857532801092541351965239161607731724652257981327040580742116748711682091055418387103280357537713434775186380932328996947403019100245778875841383013004962200661489456029151319876800115087062568936362834174983898830767275198983876436628523520647786481170629019591488822112751154834125296658953539479074367356106228974528279723142755822994562813671549373108387707105848282692926006850270764247296058610630921809914914839442938131179200868972671686384491371948142838288923740719523770535600747623652386561178564159467979616607877948987615571182880242707062587588709839622948519965564331102475747311669447440846637164072886878066760028258551538838851404227515086231521826453546783513388655822055889473976398421471420310713249948095489720514112411757206957059966759677433670249395296011640260583759653128042797704637535716396416648288020547861936842483477818885343313660618540340641359331710943812111289914223763465537229998179304199728600990179285927205922210698479108791859121520487803203880321896805493507653637621101852559139555601714740904180121524397749892143976225934686509488661834135405790684442246505820350133027060642557418885156728550996844157860883596124466628100064554751897542073791489450734810696093571465829211075912670531558943668293285316021015019668949071231618742683728696404643513915566142908781801864186985704816926598987103924278217659521959364931844082485124989740659300395097823598448400380881187794191990884289201329832453322803817528861288080504135116015159697501093960536983681745651694074773408780580248216500086578394385947674085109938085010722386725298044067750202594123962953559389304831404165516003843703280790636821330865912482806081679074981479728592167063399144588032767247078030761772542337148587470700196088523467543917614819817394679055435141066338084401178031543524579642265795820696808799461475098023525406752389853366886093440064270018301119577331569401686780971670822771412321355873397801752253293066112305941377347448994719149190676899369664131987224246363777191796734630474197837312100874993364570346248085449210459673236953977536643617960234889258526037418443905279216943337133933879858730962497118554013349070675207280529430924660698612058317535749737607399072232528764834098553627859035306883505730456333739079936653246619034418808655367564076951301552007044490484358748613158811653476267616447944446060501494610551326709607363374246303871405963675805409191763421862730630680486535924949200205584444033882592428119785739299652445906751773209948732041377857308480391823382121886785556986155867180525260482485859890219445446645703690511289067161501969960792069714997420648972756426810732682483554195950800830206262709839807148344393150046153554413085713091597416289871106167460487097469131288015902466140425397577186226305218713613694852204264565927202936992038348065255880733627371489405556761124913774445613822056807868553152851589466550273944861427130010036336775712039204168401042841702049557914263467698408872427533603753270405666221046890599163511596375923332365501785554888438663958589342643456350028264547156891381149823511398636389073918699715008644499937812170929935078197375109757861776600845583036405711549456525676309898624879899315732552885646027698638196731201514734694520848968761312231120479136632148196929306084203365530771426066565745246335974237286057544251796433708107537955358455639469870775639450204158628278665437873445827601085133692679716753421989614911441724679827765269735880858397877272873018988758001037177328980210702540767415891505161730898360455900993340382368684851005764252906432690889800494912431873467440828517147271308480031648948517640120981257905123382876086500966348648916843616094335012628293038442745525496547665036257938981061398054332682440549247773274796508285438204875775870421333139991321357361991377998814938499924905343831630393199833956435031173002659069701359141775597843166600509404037463826708790586017634922529572615153819428825681815953683890444941311750204449492909079645157946981644702902589082251635859207525782885298807124522402345820195788674016300943677210439142763822280866480463925216634576589913258288697147166513430324011845952048371076918302287217734949325467467635241053923508789707709543958691556691129222071336269831122211499354817836764594731635679016601221954984783546516666913650821650201386836569050175969097003624860926458837818682551961228091583369843059156544924315859109513200504239772930129947003477068359468810824760934430641474789906720381559446121012537987290689199328553253066378468095309650699513689843931835038604468256774418287121142690034712562491990856586607255161107853965054199627931744781681403067367351255901412748280558507493670368832263380736310661028091715450449972043670842227120686895607415348294486757731221192742770023634570610492284076141613537436695313822956142960640130336176043034199024484573322198749502025107591186120511698147737088084226432555332520446140850691455191092492957530356131152147980026199821715830555097325607337019995114784623358394748729856905739390651312865784213551332090037788694297609342923347361591982518740502587636563986093526295149736670362914778659338110010360221618907552288636424687725103900055197045652350055319947806606139418164759067360904550002886499317748789145776826673306992954662138956870744213606940309550989058615049925034254963551281464001498611185704291555314576381623599118769502401342412680469608239899373733230556875258314546176844593218852614288222087246634921072167868332232642776458812345259961595169446984914386257944031332547442744318464526334885486944644930387234528679601094779888507744844947602372568427731559694155528001776498023434326105086181258104996815313329646752037495274086197780592826742342536683374576464843992725717683654236374402657100340702863318960170270737037021236253199510458136395294725229494274925452858259404051874497061867518083725498459505405426677246112186298840840330185439395353797108593005027812199906603191986603665768837979806123669050956962386039958462035038095568551720302737676381895424990421385488342534868093235320300112840527561915325317297365849397144087077907230681555396044147087758929042841276943886276034075383664372954520244811068517526100775763888694337493225966484588738447519553163512769035192483646001688942060019097381791708490927966522868652807545794704520842559315805712326313775085191520551033908888070670855487862795186459622474798514421043912049111481753447311926238589480899967165395335898364223539776412076291384982629426015591287795453136136453318124402945830998299062268418837876901933510893352455776805883695748499476777949130413673437537706792677091371382635385219723647170383690222808274006338248505013516084716267226016000326848924156377229223332023770136902302383792276178414521627095497360112318891485699399044540328983725169727591912373256695945813703109925503033455605513462167240301255572924849297790239663516083305687237514032037954798715055188784909516048255569044966367554553045966552806156553818375637924475334955020866079677988100331732860878259674613152057911424023071717240170229299235742817919363482605001451423545975436067981803022883539324160572781016752214246349958351018861293983209606139203767238260851884671339937889406062862415548449072254206884052161278078311068422386601569573065436434743619205736687118749826356995482410107079633809111628151938235303371733196153499986766925301165557545469009099355864626996597901985944687957593410315524353127294620577251906752019644276307688133605424887034473886660343460465085734074026860069965678621500926478179251585720452112068108038715216776406502247655280044480997352971887900006319687974263704837587269132342886548343577887575465100346599664488060860915214710950757428383751711307614177402557256126690356276544749144171469108010419850485072361643303122404817597449679604798729301517768199890068597856354362323156095169036406224687436898729716465500302875501963138187394727478302322680878241625157278321273000540683943575243844970596729258767224488943120713701691062164170806262979753082598206113621273626900844056802195164441797903775892551582936378660894277492308615374393492614914709749609792577872245773749438903831531228806491180319031475055937554859194872536817931451337808153850780777265188756233345999460883663812111451014915484284011864010809991390683054471377748917519913291714513031144300933867329283210045970197342915854381347098391588980413491443796405051082750897183767966351363272671307046313127183436155759062472080147449749148068687317668759739584096604035164732134784689609607104792649990072328472877065757896968826577780646434298473532383359666278605864502037440204153000523765196546089475721256148305940767763679771809416641202292234547587098313032738673788537610631259280869357714627443403630793103207037613818247112444997375034746716384558897206025916764893378608958417256948027757535255825988837919023231889697194071634660627162045713130509461477488118448008335301645496172151179764115038302484800104776549344942378196097459321521545887117987218043713753920001221681668575251431672166736495324368684511677089480194396657679417396151965714276509281881720980221513832722378630122729129535595089428709560048725913076226784709485399510478002947023712198697390393057351274040873180390621238048088427745692378969768431955327568031067845217076840998097179268300440194605050994186737346545770377755072796925139065842233946425017623662019211922903893960060081205019861303694088423101128691023060839751340315408729144730049033242567165752850737403171363553342199172982600191705921273933261606566557728523274591471093517430042110310639234586324451773404895439048989890146405153336728118940356315735211175633242120160172531079416174492251704341419958590314182040878527948183412740762241661078571937590136077717371394464399702651208700392124583225939937778208665343244055027505587125223469366922854502242221510367012928504868019205577568630172940806426245613584202314763418014251783227863840000206918044458092527750298766232770026254817104130762742505581450128918476903302446026812972356674662410285584955551283608760641317900115835081827319625868647805346127479835503758457784605929561812881218650040689476973575884175133424933990813806597020590614867838362939835705611109217204325522951365959490265047636131467718377059926714675361957364840928571445473318643827720416883289652125257933564868152248991482522842384155840956152599404326757884372555329554473012473176629737557945712860353965202298213756545195268009202976007607381991693388008174726258969860328983400580763153967158673698356976809892262412642891866648523433607760545007156342693127027511189673398976902235191730771019986943614767128920403727363988111646594986510890928176298487312097183264584029044155886898826665847023343728758857556876259181536478699899747495241580515023314688820635300272403391919896496631622383103111723674038886593869370845357222100276121922978306473576508119658775008921033881119646500683691723791109246029592249259819783971069509244629526331029879099061475282298855011411599433061146451832432468709794462511117521561900426129248871941103772981190712920943211862818270119103216527774899037438014431011152478510974272538546618600657219720114813116373106888884856191345959023006408913080199382161851679796526736896745406275772176058618725956202444051140321072232094205601263901135729590518100681384871632922546912565220004754551117978745096502250617761312474902165588968301129029248675781703652350033699734753550876063653857610717231235222596822929355864463815383396733871425745335334320100334822579517588548350321421861073562763716128985384036778857182286038355315137991374522015288966789414851664548210749963344919139676918072135534224120305253088895113364510875044002136633898545469041682131790450460797115216954891225743957279282305537517649461019712107782877542686673998994364517454300953383239593981674118038763663200617359459085493388654201508980477047152554865849119788933747028688264364555194159096521154190937859969106435396223565926235717232146270792703876070903719134882748706229411723410868210046720952350599105265757151576860694401269113500071651650548951248483375490157141306944212391967375917496055364008279672993714711397256142444928882501429340005488894187727911831327890252396791841975994029896888032754541124014833055952745781474645635397631527405832204282120808814205909358675723930353684363904349113991730273601329376175032266863029050125690437727875569429869501659084755625395882015256478666305537588927712650469651386666228320820435898724451042597714051088712329427493140381704841530292108537790364562342918905866946553239732142104849182131985135608793011481177478949605952756723241106660976243282434581554169551703855248556940415188785207148815659013375587828813309436242568119715436136261254913818182765199736010734153833753409987352257551893107728951529052918271108895756692483492770793961777668406015049397117892669734809109207150996190101939698871297274789603422977228190339838264720228340657373149511107413328327969295363813520027328920932907814182961270323918259877943774254162080547360435326810238446219868011785225413070930463736400773973911164368005497959013239215413672102650679788526678623061485941104092635083113848140098589135977217402811266903462161945594554504046481278670946922608704348911954899932263243834954787577210493578347000292732406985728627701448705789325501059200911681841392948205139388693581687354737964390933340305113923779728721722462314714625943205797852081806707692165742620433373645035136676567314170667664140028447421386907786543255639452132319470183538808964898410847907779944787769786313780612034173069699375937403033312764144111588413444085825097667706567002130641598088497268849656330780510229432397195944883039549649518178658906273042578322294297762454843063826262030123389481671268773892236805979961490262086976960372152368599006078343778307422984303937195101391287423049832637190141435941116656763522598233669967841090803698023958777270092914179255425837161970497871448105183388587920042044172549119534224020445155140752051662968338188581669388332927645285345315695241121896551378405157754535301705886620451862305914941548062793421978696470838676899049390488535202399089917479689840184805433404446881625077931610743893824770561479834614536819631613063518557605614488788111785125990542696990942082469106508145802701345206269788402050924476585449480476592568167546491735845636557587149434238566878167566755723164449565180149342007490903463246881535696565330011794485257293753316356768306819590678406391739341442892804912136289842162784612858895122605329196943981505397547681839469747287222203071309703181822108800686332442861123077948888055862692483924928324562115650731381014400116549769732510465596603694049985227535342485381831456552934402422594581537462932311806829509025567986026402181745251592299148465627224045196408494856753574505766341119968352190428191303736959848511449156664289017491268279275416179958551013056326215334837938815441060902902045859594972308788566274287604115382367351027246965712492789705163728869621437323002483302032309461031231362829750727933240579366527156487443275576549911524682760960273239809775179684547171545512655167085236912505811092248102573326827661531470354651145191333441219630179646271218661557098311703027377895078292843918063109861064824589799186517186143400293349666211906315782095160595385844842189711403059808081282573644638348113277147565126433800762500978777881512236760598950142860607211049367597973223790380843645877473986737057357555204427223676342243263700112480468038614798882264795775400423159948026692635946815567723686040853774506207761201503751664697417165665284387160286587787240756934411055933589702899057204995860513204083144469364940759972493294535603850126538837920372196499812810273452223006508408714222876194757479809991521484244151858467494403603302059905121024839478951122386727525062231442752944583564162175405030302251383444988806403517804267074850706029703749544683599872823616332826571046755065486852165351286821540408061812710102381023109604241928787404347255229498238407874208742840001262526755836823980392354508542248350435256925185924501279163028248875559836142844304484910489991624646275819481199117752005468613227631483258862814760895734634349529694555093428138405162953268770257596558955170522366823369287252064577208830623982622943375033505165083609638364384177794947117038803765614860252476232460604768963057655588430815696484974996457407298491007456015065858436188371873948519076406910232309814921333064239393930902520467343442156740105480653517933943531654686132758204113213300751787421088261730941289977887448565140555535079052427013228808178421840301978207787143244084215335548847770691535785699372457078722429419191581034526254404093139433904068458959737428292532391649353602276601017255288876181456331260115667926440876392947920281047315719652188595550430666452138786402399776167377734129301518233009070905139014518880362973491630526329725425276772870217464598702471834055649534491710731387914860641530546484497699613884531748951816336427029231978735794812918645515563320794933444222338305694754721630826818595243529291382282721772794327405548536654647367077307993865266749187415115850356437233814469711824915819878803796911490091696460491579200940994737770426426148826845192132773441064094978372815441212464583051057024102130300425668476870285369744138666007075398304949984148431954467139563800412272667555512746076319502272368185663794549765329178654351360440014508631259733207431906799234574052014656505813271493196605719530720958897272501836138508696354943032414172927897818304477601514740459827223449147069169522477472949278834467727660633277554813731803960508892892191226141547309694437844556382923326489642748015066915053951892073033201199040942738874139817284039166025112574262341996274167694121633795005674719670764698134283894249711279511307015115329688128723896179098700021414190563945594533950544170127121713382353201544908317194941241623672592259209627802038458914654806638782671316698017523111882504422920886191572589037175039549036342963380387644433282714958542305237548310158401943827521863336869380205229697019488212678666010425583297676347397141131858914609882162712043459649843857749125102119014955196967514302125442681074703728111808999448385544997486633228929958509213202450658328319215519965860263864274291100623928345284256148152873050058132466854868345915028913660846107097586438073010282804066041158234998753157501376334046873043023955520197525155814377595626263057989862352620578154572039562749887624970124645792378662868500641829595806676248015892891733893780026302800524014232487015425405973929172688587830096970953567365599050230312698153505003516451252948034290549952271593974791156360862153538858783154611666393628694468568354072951406496527889434585049148686065120285583017196861401650110734849444429138286521586419585863988914462676098046266303344603967654901278988358348537672196282554085316989256676629462020907820890343876986166414396515051589621195123224974903192934204006084395136033470238699026439169168622283263528610866833044441049443796167009443397814547528091692619249996762922875578660876517102203600262620812388155623495129220336193965248003881301086456526230145882078129532688892796011535031409921846920244300116236132431533368095718194390323783006039553096194195504042508364349925749536639862770800912159193618992858035458896620740300176350491976393491883564621932263512219252122712671844311738046844278658515045775932705266181158050819874208258038474239941160600054959985018660678058155482187217826771948337085153946137701783417867907977791640629878571285474852484066717563832204760740907323017342571982761587233863504727448200738364412987053755145680453315381401249273787882733759438661884997035674745104435245273196752607086826475620115357518688715938759824487114419802773436593339168896916815983279157639862810583094214148198972029936802856444541100427067844578683875493660518701431888722592012481693359356995172166748502458775077748735226877782708335480063732402889067691342331770876502623513078876717728660690830790652830741694306364980508624410862627211900548620653267905031074349111631577752844109151624258170330262763715400924338130218567851118342157491755927234827458714618028422606546241391143618703271354133532146832308953996678212700293036355508946133689913067115063281186833774400309349808799752684775992788662074428985628755598301791079901464397417610701147462308056931293847043006717594269857700104773874475698858357224343510557862147729128723132866749234789439477379802886518274758084716850044048419997596277181315255953422843127283021571529124475989404865567201623840672723689651853689211449172367217562773244611746831204706702886726595700020792695235470335230538455088521116869352541205528115633450703217379125770324349595681116387828103883805205907678357207500578675540580818894667221683804330650957999907093006066023388875515827146410335438714658457528839970244943211993200480350805149101753374973596949542501800788781440189850086437111646559826069774035370581621303264452644706348562964610400227577509619594459348806917363331002071029050073937609643230493307422556970128864551115570317912173462923172608964920311934703968687878150026305845842552094119508786089619106524380445812728851003837887701143999698374776195698686962508891973543390664774605817531222664492655968637866390328025474433516333908104158615923425190130486511384597139206644285370577301219059832516574197123437168373424693883282568864807236363016762726816626694953629971573493483685342062772296257766038123249238425941519574795925434490672444854726612636129426128264169051644152051635707420449262983245019064089238175950611866948968336933852859637373926937991028510909802993599670169394152228188088001234688067705452236600814585534309062319970252074401616521808973667617474438647463103757760100802620834776000154818977536281649621779479465138053937873762768365139305900817843458173761023863084844927109167840679867633227003074849459706831462317173432848629767020289275091783066557775395545849094227122890973967385234011262933204372298485076308687507997787718553224285067134655629941477264745279638919360458123998401126303975444083321950736337916779194720013090977063682451954469370689304743029683397302704252524860477995198465846817567555039502150507921182319079549078497481871296613012565546112355909933447531333368343225539225156436419910560271061202291041457632466553872980473263405029331051937055625563238863943644625977897196477131272637038107294422396757261040144180185219610275202114890504402295391136204463776193021152454794848496933461019338886313161499480205969684889007328735313510657292822335224542138775178409303504678858828788605542506338615449981393337010057598522119625569199668888808125945761361569631783926173630728771346220722835990750985356279746351988339184502121493547996839315841775657978932566302541231753013238716878461856878547875069998204247185382754046360679866659649397757572827972506887205820096788113442696643099820313822185350051712642126365769959738395212048990252486203101340726822629826999274377076677204912041018456530032341781717484224808669241388647215623210235204064204912262887932532247992570016667373790207215616936206104035701502440485073106699234526602467405156630370711182429121789725767520904271760277238987165764548988619130678464675556978395553394748922434579440490632990857339592994421253386537414988662067749505763979391967883797560285407992676395339281083690135325102576751676044818603993070059349884828415455127715530308991815571297624977633060713283738239985070945165106759233891709662420790258080589939716074343776790628629848722700425803318618166820986084465340215608575469099438021790525928112330623351276742423534770751996994637232808787424113959301751304751253820148250741250549401556336825221484011255130783921841193929838007182813275137920732897164298534769681006994756022883186545045061598787933991372300307381583894614542310595836614168914757674336849608178139703360743936319951168968184516058478370626207096041020265644777216746493599029866377490052410381629204547554818758749958608669381148858683893605765333878000576681261513082827765033008172755086850523316128269407532087403044283838933348219772198189950575922586812053066402915410605194895639470985286778816886452235290798139923015250522580256471300378782543013694591160692683962330102772617257744853233216816808250975881703730419415303149360106267197691291633939244476811265272489188764540015581568161471463637278151211467539053945292017408628523606353446294628842797760188274815592790913272494517364815094111897790680864282285282159905746608506021357615560697282883357141415669454568199855227656550575976865821512249746632115496829712874887084973578601142929811652536545955109579060097627014493905518848132663143399844073342416619989412060281550669193386978273851291558819972616197577883126076230106690275134536183596486423630960618843522760643228103946675518032769093710625204881883720868251175100661386887872751487514981805358069641763338154534032028845755732961508820888439094514103764156036924798910968925926306137285644313699308863214928399512844586267021958334063433482486071311782324428016862130165930368541830337448196103035413413316867149770103288903851217454301764083949861023337491353600016924136711228553829187049476459951922725699490685145061113929667141983569577629506743172472244823867298498201583451387356951463164457151463379260095330422218556757830520953908768054612433564446074887168108699943471943006458615994560592894760169464236367599281917873344743473525290456916066964624342779335966991436036975041938170625118387065698759030503568617542482173005019630233304547327740260312920012095339819871081649228433160674929125135971648496782606204661195287860979063876201789313455770940506879666383134375845578302984511867455262340200068446464455529782235309084144136378343870918152939248139133937555257884169043443061696959379968970156938657974941531550539280347121591331489410162253463099743480297798311604382216871226236185182471864921156090616991495191566545428009462280193250388526309951177956191048802910939965371504025080527085396466306408727742385948330284770135486334472537698820942151287934961527320223223523478091945553855423551165460763056291401308987365052939442011586419873330925659396716297537964105546173845084812975376955063631381001809474927274932434680742917662790031591969294295782060631838397406535427922398813733068669472047088378005036848167158038591287830901753086007039776784362970035969748649550134732416171899173256187123868657982630307898870944837323795416170417808247172233237822795433779070023071489560453246483467171927122106104348446710330009800184998204828891172780744232760489306206779844843665953839219261232591981595867467299549071986739624080185220701004569661903182967405088332748633198152490509005750098794068625468914981580761965809211944110301996845516316533935707371923230196109190961769955812005543220553479097518661504075221784376220771471289417973560932669835787779429130744979324729546911444779158248821020673122862555830077472320910730955495023922880316180180272135903543160507109140501786533567369264979865649095705228932164217222089983082330859234345687983921783430136107918078034457951896743202619524762967950175957422292286843109913814928278707060940019043799465428112050882599417487422195965683769049647272440395857128488885874656746348904433661715584166945801826809522622296386081055408435964414833252758979365758848865914255106143096127123273386526335849693139783264241372038858196839052403353321691250285360874805063426707684442320918487309963245450510093840892278728086425551401476320907198780469679604504715071133580163207967104232743114182848298200280605427197880903355816643147491874233210733000495275937627048476352947100743237111303522667839870515171134700809762466454131977999547075738756746319589375349998168521771209082757888443872425940503708149908506672116906329956601445831080754086202786148003745009441172391051139738998771472357621290468655967614427868085914652754140106492176025307648741160826102184957990984013630413092166054729200881242027639693967890138923995574754237007627847507570568768688081140635497328279984721024005040628172497807604780900620382582892951761707068395541715206193800842389792375218676172668790655582124672717157903008659958722321408410061045540853246819975374830692383776231674965802726724703326911688594152799259021111866312660506425465856186907012431026883602406523106061304874218501454235182629336548868030366135118510597322607480246182890335826690767716893489635818241300955417469933453539106227666284718663492367141089882041299179460444040103932667128304806426923980002806081857560782624031946881490421410561360971259330597878827883164725773261410824093405492330844543866888268013391304171436561998042781245309863861426970034450511169976967946492733342000812109531592885976166943460178643614474323685520633453176998737693344215821361021440434450782654267291138952440552926998211368127944034122567379913421131060958405613859455842102901415215766185302945872674069874024488942941711193123931417610275681277204845640392287808514165824606066414452937802810412491358013733811522861869317741268938886624681997272344204520284020525247891220024845321038925928656228889854830499221690693657151648949300493509754917593550552088369401615848030143703295635049282258889944622046193903548301748521656310195917883628881113083974067893810537970008301751333513067402722036740235352274467615875546187716042495236985088033879989928377692789785636072570085262539115269441049415675974701165158480866677661689854480488705926956604861417886939014997443472815858098399147540742120913287756424224766334631044299845089309985948843228987953571519646473987384379325477863301436678667375541952853262789958839005880372788382771692992447673116068452524666241222869146634497944128039333947481860755625123065365953250024565706268254843978825668038846680350209744840017007423999644202171280247487391604575967261571363607504387492655657480693421255055579787236164101913930472955381604663485733122626856694451052463911097240131799386343810450839091906380274379232799878592765420582858538693017148689819200272834735199851413701875888640769764651549812072878054400911211255906263228158530710026454544556695762512566879306152041166003573547764933581479006520955797739063428674979324693111686602719350804894197097202693543748244399236770292019052233495788302190267020098865511232830156726782807668403167091446400617089008285933449826769473498338598755828393719166441899300720945707891483443612685442556638159463615696279568590731070116573051770698957093464461043995393800659007771234603590783839777146737967420186728197179602356410250478438219970456452853975554371348883464815461821530560848776739923870118204261904557780870664481577081615386840466509672780572108015118351624579381105650623917277338181298051223453414429179979906112380256108559532614882004532914637239113850567751707161770089924671230138084429793647425606673644798722524739460230579546285063435894728312669226358177075465240093543587887234330047084320854059784411725570112811919995943124775070500203882033366581040953370864970314508876654122485096720332188642481287667482230312154142078461675714105466751162881133745569637515303898933004583912038973972165565025016533989983750175024461543849926313517050014544224020312737500578057225922625396471800136649052657002234732254116795823873313542769477589846452224205058594818750825743042700137433571661207364716617033765940722197129941237925005631868940399585492237138065325010100065875654295269820770016092504395313528940041153219267332918174495783939719502439829772512922884255443417468338295418782424771007990227905863302213442651155380199404644031325308789625972218465125007893837626045856931407896856859044012990410216203444958009627477674416143702292016307372687395458251360862264417106194786645669753378743251436080104491299628310538069127445514216527773898907730179616111766636008568913585601689310175834995168189884236954138928843697723968794703814079047236344817971724853408608430481430647794673796762007600863136044810065806829044048173627265612192280207977755224937209786059791005649289948410000451391856776651342859472378542632793558155142625338593070359146544055516187187727920258533620843815095179121177091672916986199413497180953720722161528057553052346828976735228402371288408575079810890413573966666070346074070298834357217304940576689318399150379754534726776610069985376111603802485561792106291350330073633407495809082028107749754183665633652393801499390560253247128739835117100737173794014978701859145396241105700516397930460456249084345513917300057633244257631961483139472716046874550591497065978746225766515030350905903068351162439340280825130667534529580553850168184302073301355047171948085065412717922548633244168530784770697737002402585259198462097884136456480073679552586340805982397362505606838834049355224420065706326921639413755570712679348328619816112246753898581437951315499814862449229884603137386997199347786560097959674416993340081584484305089575050911262851280256321704794280921397902683886355397489214902154066241642530384272960140700281472823611610144296554948695372299805611654622028324841594566504467895706893918300344715724937109650416009340131498487112314150004575680378812008492928868239559919405809396593789841914794735088932959761492019123007183035082864382241961425850183810255785280337625199992288366391078152271800895584757596775009050092371682702276454149110483075874687782738232413330399518365005971360336948801759332777957058315213382656831028895832452995112892276966839487494809453152121406087994456670419026439191558654515273592846059877679995533240450615099353562348294654884097662996663816295077197248981747203218196680187254247927240300625031754757488412030389752514359327075695253414871644382762220298038148140447054442165968879637957730391339399768891879324120502956769572031132211926618843032499971969520583056013929716847311546194316802502977230298116738279636525797446517949117263555648199134473812963081738898570177202433119690075440760240316312681513678854808425612954806560482920363075797968575385310642332729091872582767526124584002472752790152746277348431220269157154807550637079716255540876627559092617658931734350368717922377850724302812713497657382516961966688878058498328335654370275509700644553259308943044920780752533831713604052274211857278950368560613660194290479913862302902269395199351414741052663441637083778125795428415992427082134979258539812323873034906852969275254508020251494595340225088112241408593057136554520585106186551894756485677627936664427764500313365424998468024576761875246793197941923598538524894776265149454863966273776857931601044619492462780077090683245034160272808413140770003224884018384354075607263987549828658222880187740245900306249790930383815298042477894209676698246226397949271153867819828782920841714504666521422850869291352281114600047480120576052371754199514855024189827815802902164075819066239380330370026045841987314524958459906477610821540856676117285411560097959985170464635533339269072286353840029143705450133122847878842477729866842216606367191128134134980842149632587163628002302290844891052588619262407066003680100992111959755643204073701524224484180683916126230707429094401594320603021266487488165879060732066584014825634652950261178453833939899280519162168933301569724781602339396965082444892454272051099256108947844102438514259028169291813380196678739905988232073249811571165134564144441423838403817162338280884875590227002336652072253654306099183829864811688955947784218409899322600912354202743067067431092902088681441815722665478952429589119524900810107964267605693265729844085603854872284354486447878027997017239878620774203611425590517684629347482307790079255015017960855102505104946727749323879896941037576356544262848965984760419214235380952932811291849802981432897752878322525435143805413880378994230869531539009663392754459426798086855686465458211064031593808828117477856902925937282130556155002452482259855484452860260917971610975669951482010022110540760453465452279844149154716224837826915487733504035524786011494383984468975800761743221769069100964277256948043805507220141111116865943690388175936298997746597216032565690221651198728234288413432545530517899626458682122394510772812751406729608863216178838429023795797572000302280676222404307741255385601373632360221002252229839577511545890673262599761056247847882602619849444762761413839251886973607444791240867504003401278752227874072898975152171642942660425703514498642204079436834648512767012154663594517453136989409832297335058853185854055166211655047523096344857356014030319591195120302309410639614584866041722246792990749195549224181257212242799877240396116883964175377834937153737297394126620562047297629582994300142588928860783300803036148311296270492433680315543759363729674373425756840363647232059922761221998276163661538709986032928916653239878390855537913695449290818231132010252460704842790653800792715201918726556844885711437567051279153594356927522276431048052513859721607328244150557051846044952972524744770570034191277957089142343850511131174247393641913851372308337340486291812979297031954671561841557935348787083341272441410398570670062859998940408418857509995701159451544536065859149505189312560580810007984530556940099709570207894368083509088503847433908283914272091716501470561944570855666941999201605597269492875210087001208256469146088966165652355787776027216429202623175524803721167376911748062571513727402764561269894582443735706703293755014156264780569380744084835488297738904039546853357009394125470053155911752874183645343149089638055543247391640751182063418921698051018830999691068924476418181589517871065258551520852041477376265877392706510420691855170204253635940311008942292837934705183916176447776727131353409640740852429764997038139825024901836411109029541016791810155548307724693937327657640524548657655599473404195104453936736840774757839868310379885252415728443975488631186490008242264197051156454731139243353218962164270595271401223271745535029289313828945445565919616830433001590886204958719138137090147146192826915334575619076199514207517095088244477090174842483634671849371631717884990080324041813810411375147036740895340386542231349227494282987479090299132056652095376599683168021687444389236849631170521004737590115546598910744190476902239634395060936788608881707208730988931314902547723425830982571385168989127351527942652345535724623446742017745246437853053468631122109176137008297682748753512443811657620093126087033766967522075613625892543772737047623539680069282664999484763849218557453713911030040597068852284382018494132397094251847210011295481399800632448198128959416531721300514227539618534187617621030473177805591297613494274630410521492109319142775900596345911560339288518969263286990902666786454998414315998324773166937730595416897126150359355942871448911293820321655315157984011234967872308367426384152529574005229960752161127933890116129875733098355552775707741657061664098487850911353753682349084540936603240279978434484456882320571881970909999127037308081916378475996448666922146384585871361432332872667048424736370596856618328932581750900351226638464497051269368819851551273338944061523071155333910177284174172829304778952923047566743740556518330211454884106632110201379153402124461808808574413016718878348849738257658012315861755427591961955512325750146777659482141038693842567113673726836597386333037056148299723298847670346301331062971563269827736352705391915456350321694462927009884552596673983785312225002790566065851075960579514762309368438464162865553330596067466032710696834753436131599772848387112534917346788591158658888252273612140593105839248957739161104310362212542204008936642651446362738275121915872034823900687731668578663938896780520885158181925292988795477514094009424407999128060246747352014212771920327777638010224150992637802932853344703064053277212222484143349106644883780439382237071748855429164676080861139418664731619417637025330664939102430399638487647293408190366398236428347120012765420582593880990460918720263957786982788544517055808598918679525201063556260542136803716798221112697963464070148713911607093958623892234828851166016527208764547902449398591524150590886470994651361280626136153100127082972797199358625479421381855038723423842162839112826644960711215347417073379799509683207896897301927639823077234695019195299280051166394213342276006216576346797502452986898260500807540343015057394237969702730903041466615372323155976807038438804599275833334708251759913675120306278364481057919197328111513695910937330071778588145082355662694165378359986424713910213865600236243515706605681911187748171246620447841193189336042894703958436708896306674627962825855345125287542405383227437892989996821398070633881009806947066458384061306099598295037089389954387154400296440874551784333355133233045565674009104241937395378007455381205734302701509826265687235447786460289947305228840216533131770097144740407558320049928267862521094096345071594639857336555980116057682391245170879881745535018240029391195203430795811623164665672989693534159561143761664256618181899272676672252872503653797838647473168575489196962537959318118297182782429806130967906092344722855610816207973100314557767928653299973513997384798872343491767765905431209421523903670698214439041665350757847844756189656073928343188049049795269130784360977754328447454638272010475176024459532343411881502728684823906700554420615865996169623641766837411033285907446305834224549809616215727839468172968958960264854963491571291909394981600413627163634097785094957181720593526806595163870096125688038949183500783242894200151011724314904535591207702564810894795969753990814223770953568222662967833763102825321959165010201733056441668836482973753041226018666359144713222391136087571803948083761181718632501467792944283223410631301488991922190715595021488384233494232852267106957045402008035971999843529497481237524882140851997069949138360216896192427173687386583245562765761051653995260563334291213151639442547109482403177078153833342061995885374983486386240750046762468430540781156972152069863985696582534027942519020055812347694893144044393896044654236092021623345834020940843455740513422652492560761018393956547571128870621020355871754013295209147510366182340726045945500218457377543366088876346082993657922993202201453097953094761020179104609291063654879251534645274949910003444371263582884428561397444778878991808087912925043468997363197480050058452950954305597619535156002115311937508761134145870139224866598864072820044663668882992912677034057455809582205583440449688807678411959364819125095644571840756764275058755994832524019178125183618586477077805228369244649558532382969205955779465119937254416047917861172928186070240155067386125894717538475808807023328863040167321343663452707906190754775205459425495429152291846064537043562360864606649761015755000491784596305168130497865880687178859279146072457817490054108476951442760555734742940166936464218089207837054918957888128285341540448825849534875519590747300119741848980822650569379948391531169619079983150567687248291107604636151760090758019276810497827963999180117551180169425860103242522358198271880580248796889575567271377216559728097065759628104412357083884304082836540709275952571015804974843959252862177069951707618996363033412338543677787583681652560991869482542274798313570163329891044517155115285910384163407871638873421171384105080899387520245493797471123408519303406809473649786826163143555008657387551124964715532823258988029532082225804358488442421503190713938187382642757802956502671825526852921417725248615820803192009751060343629905066362973627882108526713243711252060531271142523911131234276098725949159518264840139657195202448128503491774851488850334765004106844775502494007136964427821468434242712020902148136613369983826227524882785816831425651528736453077241234788225933670561071381719767844957805365079371538850557286937300787227251724711585121975156561064574056313979784864934019677469995876996905010716791527831897344131311069155029377592992135361197046982026031760093369098840954765266990557497424852676394294168557462582960625205340027316104974226210681271949679801971128368339865953839236093205055103816144159700435911870138164305357639229904145197816506144146499824838317096786381159096415697668709485533725629484784090388448031573397136222141263614571813512488031675257788706340326587765320964613063909022504218636987133209936288707689983707370955152531763196142008509602524968272125698017881879058714331467459069856936527299320020839206261317430291911195324067654216605399294711725421116133172638582395744253030846779421009370690404232363355745936848442626764922607425644695474112465192903412901914006198865759407131609540983596039644399114211581354243879309622437487263187919667874214815063457594348596413699978815543265465958725908512733424974061268031219982042587974286926223631280261379298442658784624612582694121215320683740530468457481111934898608479485083131473206450125249257548740035756867928533038668820748849224893707730354387524903026213070196995977340670539965596324748844960353190420008644019720869554082283936919093222134630454001189890348675174244590047757784327111019010597590056109278297451894747842279794518139076516893754570865378835147001726583097469960537352985107725618729175135749136157556874451698100545695828455662988548028471206889174856417380957372376780556539249420711718301955716618887147055622941657892704121979141889470455144189306027717005464030058183084379546544420448701277736690842281375969395454911016037166307377673733021439447211149578698996596184527609596611402677925100500339691227564767743784850332450945497633516857424816555325033418624493447014691156991568961265404284664266783802144163627710993140943162248855961653113638143592876192656490886250676331154397866038438361956692422766031478531285911786398751937196732458265679382047992765425474438248644071892707559777975194291774942079295809238097762754319944130902880551030169386497862383197226515714409890000027219263911870360512233385901873499861673528588699043741808282406004887648711201477851632696753724685006002644105534349296280869592118471746347374360272697751390768033548015600400084970404814373524892617915305628180668655764354636821945596120243431237685984948227890940255613288166317951261633666055389274267694252324503347839543852633572336052545725901235775436703336761487730717140271250278718660776706767221523752978269522726116645459572087222166324698488552338965370222620305285807183467300791525349254333166531767296219569953417556266402225662322491571075231473778197318412846266302945051201951131114673059513954285099375968840983670631699794549416378285700498347268286180785019982662919324652492152882086984145014112906729797233586936874420131980330666893027637366945310425589191873081054397577262327963998241965564164736485623317929268322836380402422227378772908323968450238688783408956774748321165774107956975305018459506827713048431829072508561970083107027166683081954289764185918126442919444755282039580416130186475028249334076371607315460494204019764744349709749472938674269475400857089570806732138561399412821522424570660381459042776687275362215800599793550455485061098086665121085144306750229429986835413437988843449046747511420217618213033925511770747507233678368113899656102708920695144191157513368300165895257521169314777410370811819429610275742631743702725181380357234509871438246560259649225458664919750977857564186445689064897592949424603310370572329967081668051815403978571403485371413464392739074918012263211457444299760189933587180999686252784067346028166723341063390879132831618386304812067394163530710409918065089964085422745996935110808389304741266324540046441903225881538588022430185082061519268677654877576280264981559305056099783379058193603348642291562367533579845643304167044977485685721578790599637890872276093265078295810698984077498079622668104358087852613457375298296086868607687303676947110302720410767608080703149168303630417564404439031570731680473514703341404335363760535233490457432969938880981631641240296486448307120628023054062700506307725175266108411583591911272760241586218339991460276117809240181798862626379755971418767400090420767621186362477547529060939805196645067863714108196866286738796008919936069206842508654906074352055171792168332471468229676611277850905640696683311148695234773401003617520148961830573046007573862486717303620828324511245907503762835819251766836543294799410677844850445090552937941797214331190738922259105262004805603153304698931125697701387075321775821000509739260158238420555788201521158479920316919501632180569931893660998982917599893391912882755686083322928558748025838470031874401675890712179017948248771693559247325781670384770937456340079042302285304984493539688707783553987857117389714717002008703569856477042972363901705122707686383593321923645253603574870233678718120180578478172688737265827143502346919420536920929560802879206376186258304650513039669963495449145724287034491042112277250592161306215276427370326689587241385229571736648740316424839018174688462451230569854842139799731067807241144038122102592828572697656044643421204301817654099548376768593096563507441971731694791078721459088469096901905665476826710565241906660738385420159037803009326870932838329362135410014334882533857336950544658999826175997592548135969074464560295846739064798625712439636552240340559278443249172648949146578436447634572042669051943506884373889376140216950837316600546464645130539788579426070621058588392293068659770409730359998487117696309287318971839149974894217808018272538008863913075740815963475652798143564452007902502821784000016992752926064971883973918782658387045565427778446968517678695734445921042829067572909496996422652580544296132100033829311145066108648463262828578175010337151207012144486930708400504756366946413063732046012905406711054361905158667297396766022593618036999766665233617681785554936073956471841141587607083354495736210105314654022974390553856287231276463928000277753838161630981039362272110766832901762199204023186678172966663087069818650788666970738874384020228479424844120725227745047236228195695114482657185027155626958308819070580395654696447670230490527920851802283712297567738925170591500256793203523968558735209421555367249272474053922021503693877672172285924836253337814729971823471936898305750011508134378472935740561161623606021063221297083230867959524538223501612100620529485099428541234249428201297656262020384746101955170548309081025085085731191015399119606660694599212343620467976011982049071326709200659354091236278236731031414700199810405101910894453419853909741104280821382392871524372908100366492166329788330205539715929465508278659108261452593803198493380149465235342274982824062585257563003509477416502503725002624776546659210218281926003741221381447084666303482594798242876039337385977131573826768801939268965297245985705395110542942589534736680327727609848037042248553949711754941511815943680358551042949533044441301871759527172125937216560819760017005694034924691387186362261178475630428235096602559686162518315133293388683648182878185163565047997368743048626426925087146530299097508093321414430304555073959632413168289520883566228136973113823076877425956126676259411337915987345563447265747480433167870789293294285348099695742133166043165546812827452788793187710469731660317346282515173784034011994019407599523537621089638563633810490385656227909621865655461352834722933423815945727476967943104927443804757302661368170151517007325085429291909955708071525589280864705707224369925048010792839431186867191509120078024362663617063954239460878337350051675478727649604147365039522339431885174215618957440337386615324719814295006337374164439463268827107593028964672293758456641415234946591447070141456219340713302374931982689174806614451142404210759598203801072932563853431743545924549673670675027453059725014234515884520668247325732532837831095268579111285440720317946582642662642858361652250461564247071906882242040700672526449439838286853436008405589634012033704015890809378426130379741682715333030805580050754415805779271621386364360030320478558475465518805208000552938484866431917116249270242358035501477727483419718499321438817609976045637395025201590691109153445608893528950800891077141763374877099467700933784524171427869074848442954116418373188265879539895334517561018985035978138050035945278817729342195985127931662766456972684435166710974914537697669623976031527650224105647760426533066285525543921986121038143370085491240451626466341828150766047229666940660216698993014962343403829590397452042028971406428771759202458336020371967860239655927823460983276612381898776331025796563905221431831360459142775225921835480178203629778182667727669637239963135430515928487875945896466440862603149413972295187867651602383214494355467280242813043967352624350362744518945278851320274964550612289508162387334331946427774624842613213877387754285774659687513522739949674416128991999978773418620880897996487231541477768379687065028482978720652470350693558507271405883775100571730881056597248680021839424918964428537039904132916947668862193499145573593799471386393098500269517191021343004789620390993902689573428377920841979868911129292196141874190187231066793818205601656426762367022270978834818325031047693091486277133034162359787620777067965594543546927546223875344152663365447813345685749660455915354673069387658661335632420750562103048391456497486252657289016149089771207988265020210795551618810348299539772845196281690528852609027229915003514412848248909037879050597540760672951704466879186731061593349229694185392218302456833510122665730089725195186587098554284606741464792889302987847709470611815633249360803603254167722273235267780414485113695210999154738432140293199441144289832996972552206628364095422214564261731360311471665272666586369798326437421260989888460337939601078093638004573007572835799671619511063464938602417475583607054874650516318487628136546260051885452404445889772064994723341908666772452595520455135428800083046789508743873734944304047578858020753589055929810772530260394305960117957299900673835616890627667777655278082306315256327089545096802740382420048211181526609150081420491944015730291787165695119317473518572650002433012354766167704557565672211219366597291190171382088252751856944044760186838993397322740252962363425658748241961405155032190107260725740123422053747222108178901052720565769477617182054197965840908348661722247149672457256980572059883567388261390149736795773176926927795867562884907763816627919430793576221070815576573058565856304280743717254175518948017228791407036385650117827705873920825203585788585108677511284913564973021972068775997271487298205287561497138083491671281273716544946367438940401285197380767681829181531832840797673275022364450410869619138536008688998339826994192306319364674254842215623564096958963731269059972529672756436192026389285836218508970583169866134619660712978975600896419508004282369335400964201294513530302798774762453146039138851368770338438960844778750595651292275600493327772674044972259960074414942146333367220772261626336336947792120770606631145515769087623107243210916446554856994002887525463555998478953065989613190156728853162204240758386895437684152701698255587883298893283812372240978493005718653964798629201136421621261185374318593974128363931604348393359734452131348714529390939245179200154580988990120683393603667145978379295723572846577858518810853750651935617739544588790720029640104304995344208715511321174850433435162233938952872447010743377243701596679105477908426617406660004576232453748457851325463613416900200520463095241454773705420488492585241138623751426456478775809608947113154383459183520259784621933365939385912427313807679848645473824214605469620598687787913368337802179445500236299824133955819576578528970776389201907273727234852211394850668461343345595796341755886079936779685710874686311376351810872905145652664872031745250237862020053474998313479839942936456822720047458135232628477423668013849325438502256272955393820126428642198643793536133520988344108749544344502250305496055538126262236089595460856661239240321383629662767613527427251591498987501637511873681077044195227911622595189836110586882371393819491540716279259063826157374920177361606496360588902381280897511915899730241760779432275021195027385342955082877474733403642141935610562759566575668702499198557041148240930735185922875384836028041894633262507246461682932397731768595941942374004521986626050682934879548144492744112350070513029956057708140684572014892629552074479356330946807026001866942723798814578123455786016214273613951744295746503541559315579477138994166548271157654267906358072589981710462153870986182844982554177243178793255070652936294218509688675688302767413783707341496898394242514303571755574830826554061115948654137391151889200194742620814548544429609843147445054790224942265432386523989395642344497421174733587161353425151183938533347459266362589421459126626485306308867735952485797004396837789875158083063595863681398154350040599588945967108792284622467542366398387571831832696847248877911736510087474431251773460046545701160119144938194374065500705400824563235551348879190522912207741608113284305497429662850042953264148293073962549723219661157247107728965586198456138074739501124236411819853176967696799349276450570945271952231910457785317551119577083808785753636502330506774099497510468954433801905797256459748338781663928658852173893111474461974450213525018310872626251086050050579253484524168241799053990280674920972278546821315937001074926057770555298530146483380858208955094073649432397476997598850204752666767739027362791865480538629264968068449948232444779315587422088384644217808405466417854192167027037952707701478712067372383620247980331336324258265598300806190557874036169142417615695868185540313209047443172816883208211560531339826377922394125952281486888882668318684353950278536159771676821109514604521501785090020871464529113255626130580847460183157765235221140012198339511395809098873568887166133628810311048594829145438391415380331289350094355528261888920021629777293790162139997003494482185733889771000399189258844254848840094870876854312993216458623735341694531609286241166673944358570663967304441120460701159364636209218566260535083992905104736562024878156296871104332599085902130324229587426508897057757256548344453929889555273782188721430858830492338786751199960955012792983134019036271295244204064593394724978205433399236697716935979664366005526138273444825299858436806765805702290003090158006300508689910487813053664156166528153912253536566732901290173601295920468489082809022925687144450756810525850524619506961766905182962223619725886369912664991308994429308728386672008835121395448155809215421839500426756258067262868791484625183381756385678589181476433600801210381128320645144650837139381389116082817686214337459646945470860942059850326130402447247514037177507144487734867369228794100046395506241458378782968488460780894642653919019124403177481626842380629256018041516516061135921760113829445739869915491451167247362833053414952444436516012142282369688298715171225727437895605046726072492650408788469811272552409079851111818168726601920799843285557970272722273155562840901822542329411899352719208702924613806210093815812740044271152071293491548488413896472542539509946023972754382685447522290516100508358034347922970887601333830688580609516098535096131943013667243121472468495110724951580929269002747435665356331711024837372003577468984383251383691652038860368905820780967412745799226704601026210544292923247697945564878829752189122646389311726070771608385253014792266710157672454882251087052419006267949311123023319596053398055526726234455030569866319192336798129802146799204858794660313997527537272787252180715343926076830621908842717448875942179339222424743383690521644168492933059599701891704142994307679594079355141570610151170919490764064561397029740126852081879342530828716870702732924578273604846159599387460520016597132260837132464515265044570991879804368368848939456704331464350729129670211907044909921477820031983043835853130574878650897369103632787433626215149074151055848083866672078235424455315859549893599156724679948370415612837289199625985049721471398161267184773009555821911861963932878957251512729527127290333997740603053953429551435447111372997106900378226221628075678854926557378718739050236164176950035441556227683517172525361838727376484274247889454868623679524387556075187878070022205626882969415741920561029631460127753632922301531482299260848609016290121490655754236629934807180062860795331941400798548534265388855506483558422055876630214810170095436495967068427005752319342906777185871865538727438425592493726076697539697549573649826423152442739808205411187861613049217319161857138717592810872984138962168136909332428773827573618786134205223910475361153233150586058558322444781124703145761414150428795056894759184644434888997175117749079756186127696291014440973637844576781922002771050666596418637782537753260364891132723885257643108035850334270887267687066110411502495974920087358379707555459495729992533047459040931687298297427135183154143944553139915092841001132433895052788881747823266387069757463833389252691727642588161420516461038241776038331851149927771679243667501359846676260962198661885827897719360972574718698410870784616778410636219659006742674361981600641016088470637496544574176913844910812939242548785582478510232827570395040273679594504524334135973018329897493466434838697053496851296489202153175331317235292319736607992156705731701111418649923900476439364601695317731675457134074409450351435714728581275112203555581030818263791383927314212621086392542372273421027504493515116481896014420140467472094754757545854274561812505006215342382204237587271480013502140224768203178241463386044378362300227195317733034641582814836167492777522427096279044515062404509678276293844501983389809208128964343359702226128764455959508905312924048064167604026350960041954931240510583348008947496333854048315712927904430403769124639472011081492835324344068712483553651295299847785783952340517359689355874240387314269606093856154162143056955431581351271590922922094242524585382854963026889895607086107004340744511222688576947124901680186084073617487001269162497918749714818284997168401499143507219087550330901870471027835412253724853524660454734883336079846176618091671525496188252630251631785443086558452926427318135272156181480956945510433234599131189338762177449145620569862629346739076009571261710467403621588562807059919909673994259006174462967378884738136700714458196911068370687587222346677707090877592076486275396793586947889460072466390791026573701924141785048422451321645636185783815895458471121674263005894699898765871685311564514274671222504395811119706938815150935398210062193048742410825478095715656462632865261457814620266551676338315388178662663360865566007652061751302356182017642727770800932938002927232107743239471785543259194281249119848318277804095345937378683136672751272444539289529900102059312562087325585705710223099731206838055737722338294958692559269218601944530502831995167884684058936154937751257594105403512400614729461976200438870457270433564960332514276770895549466772676087590746222829283051139452983129665661339144847479037123739944880033831475603179851064718451514838366726717182726404210160890324988826325666379311596655409935709702251104658589030539597290399297751517867248319741381828076818050391418045880061203341670564701595829788311453586008832616311335831541079961424410925543983350741069520066537433900013074399788237921418294314738044275973795343990339584352087492472224692855132808142448650319198294351985857923789129330049513053739165903650331979958684578987592384911205273966110688307110886034303702640212529707583105806960207347552767224716570581339936237165851590879151008658219666946128476341607390248417364519699763314922286764933880677762544155829281342014487123554030629590472190503081996538595335454416554711439542638337416342734247602829815035151902654905093900223212553375457702279824181888183579481625647330386688196342858389561883636319675852795788202469459115886717287005794929866074936215444982411398347932895644167181881931045933715916036655327539938697725677314352386327508851591172758601886343932118185981622185700516436164097773811439387207764154918074309576761956330642949597510201477227659055556022322963975394570782351233446323526841568945159007783028950949387718464904847404719949354721196761239119416256737389919855888476356123816706481335424444577889238705372574030430218428903182249432588272923660393314417246886689663784707491682753555925606428502270883753643034612113512408140983769714976487800728705378523806690266681000127162043857030735440076390360425028272173599523920305868516332008092856804275905501000968543031584602061591419425853047440289335936089929655699913447376194061768687578010247197228973254013049556539520975005413175750492320183209542042932013941519170465312056962913042535440969181513589019396668703317567124833789166908924507276858548852549465053122819432833335243666282420351738731150214503398259673952159349586748267905186991062151130734819300088662629676091641060490136977096000593084719837828181727537192134669993181333370523798807891247837554634299127835588769233761284868684828100399737257011964205852962586461589105029324487253919076229180391712987167227203604246853422870336220842206368942489928135596544823797692492296103010363744174703457471059196290424807667188771523743102657165766032237379848707588136898427697450184388747331241194661499107650419524782169148068366618220789491802859881002073489876655312154826066807632504409098020774912994363880755901944313342649189599272044562694944733472312424129429148220465927827865476884732279871734874478423992389299677447493282380773321930834815565970034956986118037856668754393781646919489768149361793969558543581074274980189278906051025776946421376888211215894682721769179265320409703426822939264265706710714712525482833940854106706270766642983011278131550595605976368392292627690886415424761797756385313117758841852557356451815174726200793747814020914648963676265180177728600085280323392341686763700887524917746475007641759558344701614526024273827134068550784926777106949156256354683430103518176572565569623961139730795650275335157840004443009764108544097202484382537494209194659767498297975704108612611428788011920102291344083210354387034137031231680306450929340986349860111240675349133414966165135902516148523632728560545266817550437466494801879871685640383534597603812223464833308565505654825725281938321742182405549179870684802154458468181862521645237745722588190731244351503568758714315916428679198705869060313891054568696072098304386454900723432709359220142955441481994471981600650317980076692507817256815104295004754634427081015342352190997810486244982054441375610338033827109774438128593454392959933487874809335922558633774979457547348971683864719015198058478111548300844985781942883145435512987254964517710440777628726307630130449634203771409329245962035141960152168763342087238388176877869878659252249876728765653455299546516199844518628029821853770334501556982942776017019449987579358875960955030668348164435483909034129923736765380696380636111508976876250028174616238729530643320346793071530936316727592042698583966799010483490790592012296911266572710421049823781444299952780798041787160348403796338500477794394804274821469561923840137647673622179010718829881751615172358777589151661677053005090712222759883500343139590331018228021543801010325172850008598052179961576005114169298698437388142531947111667993299334057064469098134406503267424512683458590204072316336718319502870051161620965599238788616807957048101131303007074967101078971495982168255253249281624716474169720757332069281805328552514361372671428378599864521625764953402189839138012662009876367577868839111486639718131682278153850240810724184022149092951328682477465012731998467879791432249357196715574657456113195561757152793758252320439721663898139318070116220122065384061666591477904811133233604022348304903637856089980933443317671157462957593739423847406993778806634026565009858429833966557401227489477616861642636905853103882511152740682012162802625787962970375138839744132076048833176536915896521320966462458652049201174130830517390909382115621975697760220604489813186072551704061638572584067037488713922406192593456323333970262335507015335333083438927412401189296802649399784895662142499824521996565367516670667694638661411091433537371362457816480413662092222686397254391711030781734816104593301083809474327771888315011427774101619801458121205433782590484009618413169333366969515818127139448844946804132699804605157369675413608336380078712147161514171993345747422854137176892211916873178046554686336893315336290899962875024554437232457403380218896894256240596518545834183539579963233200506822858128364540686806028589762653303346673059963203331503065864215227362848922960290319874960485183383968207244654724029879216606821379456397262619326638983830319084676098125064395499878856608884834321181325725171491601317303304593823467499245149561020380142566901986975401101340578216940714767237877051682303209223532581033819196839076541099717261840494268185462565012323501447818513660863308401152464202851372958508534424384196019391564323156321234940640184532338819195736702216820807561356219896585030340075991983507765167768116050777582329381761236726718014009557760781553320956352542453461130986933307589393979706245481375051314292558038878112661949630854462026509408486161467217804127119342659779699009685796187152825952111139695645904555896345813251954717228214820545722453746937972745300345348599658241356570417286226921049609199837658397724004389823438576665466988440233434251257284507630262176608472101599735771143935274579900976639297608143424121814596522338685815153805951513296325470836846835194089685568978765198186361970586464673731077408753534699007501875022210799415561085361150286581498340266080583059692173867665253727399695918657180836416488819943509466482596332221856789486077493648429183502862771779440799747428073901650986255910597541055385466150124957735744517636689076891109582192666188069600812660536496410038667477332726209130942794339797171980191470698924587529081263455070097952216203568929738607596782804200938092246858200755866200251387433120846673673147343698281043265394786268430453183876458535655846106071189679887991244511049574503726497130008832484378471540332097892312942128286044688795284734413859752190732897769555020904453995881263094608574844465430617577050882227094604067694366005010424786663499408708052694454333229830414810599847637410771909701459301219822835775324528200920663346779785528689447868097076365246537978926403502386090427017417818835889684437779657738396354544103058369116193794023469323579724458756426670956356178962920370555258693370994920848205546829894943199873893023863722022845297730374559703856733749211342836378852733178156756562482707973483829974901195633999396517770501401986385205180941719139284367575993664145324575969819428629025189442183963746508129815648519875590881970703601871994288575974327299091198234864208849491010213526705536559536517262404676121814977528998932779672758017390294447578835862467087384309894107290897022072686771877107318073777403607483329496001499047745594591973752494040407441103150213419903368677762562488581901292183780851977267902268557285537173033997301203697857227565062352888489811851414423653074635915782872609641388629796150129820025642607111173080726041833743868658537955991595097373994379631971307587388565899599519763178888019055000830433157443188858378350921192445178751367176812866075362311344778131329417871481000239356721044482267360963963480431558985692185084664522957625471546526368518042572641602215123684273672898258146662847706888034747537798006923412530405709051695681500177368155297661806806269475605455817979028394005805081587704846350915501003944962608106325497151878684522364153217860575537778383833744078870599560720148321124981878740993417521977651414723796727965785294330828231383030509818639327579064538492535849091648677739151265529405646630685080306956010277250946126354570859764700297223983220946786809431698399082296220882633364946241903147749748821870432401297205599528852355617319148235699957681621695002582884611615266740229651950625195175250897961575913841948040177849906004758936332795884562179322496518809185524835570535838552237333399399810523425011772548617340772083541909853960043218116710672323757406091949489777255916788410929609038642303478342939509291868468206342566435951778333539916301978967471510780283206102743696707001083594796077532261719874597285835782922647093571088267915501684737585892261086441139673810514437656060925479823760140856748928527415579835077147554133687299100160766068803985980378871749351674669915652241595686190789783971900324494264419646081077222323973229649648605006842793953317621953600099547219219292531617032562841741166251712541361243452977268799099263793751262151954386914056672887393675618016490045933696844822487394311121178574549768249535685650084433371904665805554290098992174489343346075450308488481296463608874284844061453006572370525592778609158130761539141808611346026834953927715722106201707571275628946874728842105341530368764490038660080073325481484298712371360640780072074179972443743248002713193989965020611727923096805441334850168049771132738876853265913753209034180552143526655514085486753420963201844157034855173758729745717412061388283714502392280906636096080837127666933355625748697655289675691507886573715449258373394642540152687794328309343166771130282463671851986542485142676438347375389424754773113395099230202102357139392005689960322866647802420648364408895361023800503971821984094937237595772670610739546769392801105141485442798365152166816590751957460210870094356459190626029444988538472340164788949210480766050850921083091805004698298623682912720920762094621300080360659831309769654354202414778340238620584705209053846778238247691976817163790224723838307678397542665433416412439199368884842842890362130852561710091449711300826548412946616215710114722850293255012181320980177985506910544833836727920015137581594649321564876924511337926686762459235919635054450288918935899184992145772794557554024757040130886423660342771263319326521478553428837837855363678283372361705951760933281713490432704635561144999196945348612925230104425869096179141079463009707788836799778942662349476507334656538385665548816486331263965824254784062129201336747230626421037840209151422743794300812341125181172519097839602669914424563654200482127699142164141699987522479518483457381452529942945811600548444463958067042479261430069552528548440442437454004464450398266241949722300080737901876921499242684112496471923895711801855897035503538767989927588361852114545432305622318471567423936602944617636074392911147620510860100070438461151198422770098925269718615005660193453993837371875989856776490580993011398071444017762767103938498771762961553754802700489036501380614589294838520954492941477946292579394115398021817600181224065499060892254327915891573220587047618435377756361060949408559196116686471759165063305585155190228957527917307089335497526544231974980148207656604113300350388681944628066729152718895429777292398025668381553381224251264152696384729969925069700940743869829882162931407302817870591525406941149371231931694237450719081287399489591966092462166243228715270055857118769461957293290257085455609289575692727824361454216644121360776688160039894461312506851993580727062633313630865817187282689164636217087894618792901062850156733817617982279690061860230628086993000925252103728488111158598540785469066465714794832237295205274787811968219605718498444096235100817150108151221395383613203996699840918391539776618092988003684341698022322695767596016169082315727234731841436398003546504785649256340748855321333691655200866783719191444791445716653378209677199144427004756374169734769057576115734629946675065840845132237871722625366513505553111191695814730894962649058467404283692392774383582874687096658518504842229762985236058758817753147376509472716859028290958163803644038355135653212815770081992424722757312643662537760617507891349915927943124688451563006146555326304356453724071618486830839397888278533091269320546651158102963941625472882827874139299344686051250208324904710813874386888728476579706911764311520339305935932367438653849376140232536718394615691002241627898911903850961531254487423923392047077742787051081521407539020191689963375760610809138738863377912863501747780173310504496199160370199091687039939940059929619848238265226182237325204477178122754150388104778660675345896573733531029645209540352045106344618181318452196583365703678051865628618997725785050531590631849049995444774902755393586845141113178089153215380612493206022887252935787351366599568246308295780382615043456210202148773952385808065913111350535283971042391595947880105362926912540286634601307665312740379882043751319590202713061245268706727168139180403013560262709741006733741393760106618780521154307324215800842181909168334534761588346351877403199532861662040443685757527027874347249592277027015545524445356503834958486151884930129204237104907923675931608565619365008565165008683508923189135723392003877324742818431864358510283415641646700830731083601498822259873495045636548386607342040414178114340463667146818499109000693860004338839921701415239197153489926249188301883879949055595621144034284638062775602604257734390801432969944973659020504917257871585135546559255674841918183969964303964962098398115876006685281176695647626695156643178023241098547282700075546004532708976152257787795764210230378988820457939070526689678148018429957760582532565876027222435175759098291281635052299084096027510386883819979161202195864589367276323774763526798952445939010770856714269329522988787121122318518501561492125308894262128277046905338428125558902895495482731078936909922406029051775447787192571491366416554984087336868136614687503961552195589043481366865400658984855928808274291192235777086619055359269136629005971823283180331448001680821047739235292214201105975327382052338200078213557646087762668332847060814647023725519534589915164520472664532457002019137843784667304155090483460956894765657416527378815809430120423495165987270916901583883470463526898429528875094900346704444524910829870527489791668245065421499524275197301393229769658313126425546966977649727057595490448645450620433761870610084423862360445014916821325246762006322588927229036688098926588616978943001163623448085942268670378690332632904910249959910869254349989665304952887775827356430043862758364552298383486996912912768911953118489214996006130965797913342274832520467991235476161532875076680759419173758898218032790651667438039548137854810732445301274851672718718033822300273339573966784974972331062963181677780308696219732247101223266713978178298665879215733345452909793936337888610109076839485513474538046893419830599120852564140461378022662917516653750471906119617003091427522458768326086107213659784501279301213884159117880485008078708807241458027244243340622056789537009105224216638956418600576858450137703690043861802941084815242845568444672555881115171467202644174728914188036887364901437849746407651971506178883768883848959182373364042661731461598165340765731038988388198633041078905589140347505860276330782580201104190555958846744220800469822313282307200930727482647430881149459908721016087902451673991357345808900785466660535855508210809197949714916937914197072310485542068790265509798157901579916943521088785810301463636450144297786644051095213039126444894907992719268328826509511220785376799632224710902257124411731323109825032463619340339116228911790548225321833633786495022585114219585954853115534464870952603833472819358992352109361216797584210860342758134071886153906877497918686664359009993590327537326150044877428782344671411335737663124327317854056773961920716126057654449320859830083237891208943184852976492878699262734495639217843200212175574590351397000735909602135387328697521065878419179036464666245053644132421207206592545537350076692347032396754297733107393450152760568049262473195959069133839842256559889245590773746640823847798075537910150878353863466316984813850287073701351929709962384635651111128374315929275201679738435876316441706298548944272462007464691359222078096139380151897930691490565781366627909802802048027491997278447238543197299350068929570320891904001564335175154940650160145003842064065998170507466086465594481926819899579990480766515412084839550397883280650881301379770411502810469087818095590388011992303460534794154931649547965871715871319000541088334422116964509394786581296266027590979967745197335243922709524003966519723931676695820523327794913862116983221149308876497399612902200161387161504307147868301945646033448148622257662316550543600722221410518350169652497169243810675104166292110874970119881470776064064924509317453662523843334011018381267589642891312752728641677733133756718999316913922838847822184514313599583252443160097647199894459892336446595853000432670347118716947828397670458642954690599042688754085659021283947373064823872895111457601098197526395290519467118603735906214399086375423139361106429749063556473859623925719023170264847173111862986572284953478171268195576180958383367562152782672447363915555145997246182001732924529470368474588636141529777604636135864437051016318341458982812166766497679108278454990418016032743176365053050167895691776812622373911554665408603877672895293631722893979705288799023866350076563417620261758739020855798344134472927359786821513565014579199837781936553032086761074880347584251823541954665507836353017318279404792168980187891227578762562095247993697404614812781386563749029430020520099724985852698556987290542600575448930475557433901665489702231314152559561224639975550588173818005604639308443741171467361464002120669654249490575920687623092715937146784126816477023347421158653679540565652183057993130685897259158232146911555486015241596700257429759286734199380634469799141172642261897058470894121890742699762865226140004818438291707325958456765163592038779277603479407808074879267062310206767275768499303067663617232956024078144537532638474767339643665397693659479732230604794472651823304003473377464882047798957899169536957904718346370253332372113615939684654148165544335626118640075766339129306194911465096763887753057650877504679876718357482450661642607017496221635970477207879892573687233118123797281164110336860139412329959645461800402749191419956741058973130855708784609155033407406150862496020572921751493685912362796403363682242513769317474671419463325636014322480413599964339517431513889493144081780663005240132443322911741065550461283733233563904655438621787302930819837701571115647928931891262173874582840439954572973402940248486590092014199249130695776466418830554886552871724797755251335045270729880103299507636044662715262645154792331896002113639505632258484651078847756031912445606386060595820139773831991442638776213823421353981065968015489892542304615098069423372926840731233163783474756989131699598541492469375877631388796342328366829710712635225881727243455904125691783794437997029557399195690019384990144919038104549116520467456344530684829546637970949847735436728147245648557996353892652860534223567838780075383197514480401807868462243080215392951414535447164310408054398877773430654928141510094921918558292807678107333620639792303161333369776106794400731917195161049177355400926914010678469574212163170590687447660927598567725901803044124304920600182333452235694496930427420775556731474526693693443287289925725325924458782152062325651190220069648060068656882779273194506331515362670971808776193257461084343525321296550309935306460365985689139676471654750695548852328737913317165147522662385351266717913091256910870410889489230905677523276426179785280141370640088080416195843841444493996305096713709736141663760484738356486016880703749839563692212275825770867794655498710019476074340610553387924761532660795648362494250796718628434256116806267869297285835857668134206772276539618122488899672831675219174618097987262737823645718777627885459335924777069443872925436917218189747660118664849915566563464776257798512549296395951326999902122268247587743337856999839006748411880780920200987617148736702729086783263929712241376479640550646145932455674408259949837321369841240367176588470474187113146077140926169912133883933559378119190978112257983782980486386431537656582904405236085179205310566642265328445213684044559852152228409401842118095548470933789697141081802213144042465058897711028214070914659965999184512650697468557032836855666661247043367680971766488348113813779330378567225625964125822453822862950709397288606485727773223153531132903594335090272647056933769770501188267200216740247271781263190058597552855231974377368042023068299930371446730105404195488124092707703145986051498822174679731943634609390455973366881792058920632892880951263802758930874607695022505563528714785472811715447379715745428743092751211446599736551231592153872147886066800223377573748351127046352134328016959138124151544677099937180384424487248311091340250401171826552308298535087726828447773136615810559365448751532678113161664325618327233326160904503472948929764647198437180400798036830948937495401358444790861667057038405249964100873705843614386015002332615031501630151137780092460831449015601718318123573774546123749999971740623622730211290003172808847958504763129817761461229406183346914592629446798544164652624038437191412529624887997807758930138148390132010515619626524349943360576135005052216423655232112154362012487587014904239865851806851399599616759475057214419657429105014391922701126058197070753950906299671885130055405779898280707893948622210822847995725398319574825293855175731794157894710191653962356822385972447094780112204632300892581112214292192031734942491315461627538534863057109950592421817372034848384640784589832343417333358076799628605713065186384091725971523678844415755022363090744615717492629521744879511852526206634007657808819566022071731572454692873842273037874446110225078334581624378367189276133637321160653165917624674168336092642088365540475012921340769283500464029553803981418231945523675927611800615493528193077925015243219455236486973832809714393215428793106660759400148899409162431941303798099444308811011693398761207046769090945360016133509572271494822449969055877824933705790188730093964705088119593722355143196934363268084762111653696795554931047623029206642719782217609064054250151584632430487217291978061032057782457962450729160258685229390089595811217497262222812049378553015974481130772969352353435234501257659280599673021902638798119655437284295366481680140956348933648676151876300365510440836338831249389516593368276034688279551472352939723056202464011517015971822286724358066561541491796284219939185959238642347993231359805047039222020846828604795902638252334366895724699341164498281313202801876001466732851383788625473461501290969570119427881574157254786364769506867268975001197803299149209171342052493898020942104312360213129567324177242915240547508431301334754195989593065336085367327766859429560052719890545262006847592593001999510741296916988574736543782942421848113970005424638244824543986789399156270345975499393990763304649762080174673590197782834511765855776896537213046848280345539987067956023115343078478643789866343833442387515149956727618942313039967097529983092467905687687593742862081120547836823608878578471563025842579865457252269771904855523390044643859743743444824855898443501669272483867451279054755432353348694386515961920674475383113867661646769718934647364022465521637324680928318703156554110591000645031820251094985713643361702826231616719681710073871359811622784055105656302768395766759720609090440045240950994397095620525074152005313482198960709220758550751802481798213897655131742349680778046583285018099666632851792020536739532851590404712014763185702419120446916509604875848580017522197294652176721191934581699037333735932321683548888882408676272352994094508454472140986083609720017583860420572836769092124835047629269323468510334355993696654016807883122677249541436061535203537860604133425323145451081456378854046996953529210862702968477901448061270100187775807362585967860403721693698701238364709691474610333423194673828423291776570834542323944737230355717507985156004685012104321328236860413626141104245724220462423648430739897467320997623127558030261018825726982692926895115620618333400724954063236315886577819227131095714099662451562585104955130987824511554117148339932632293631592522818571073155189317003368370954463399936266498250656465911456734154583689485656628396470137640573873704003779858069758390597693630415796749815228903237131565972193049878782136310950383573085485725053728045246457209252795727605666194094461360008134297972407382275685025486892994086977557195823396980266734041175942731928609630815240836654977812481031467009340948827545314334143085100704534084505693134623663746869096824850155213345477230487712348687089942040767719586762492257889371724797743938458593295597307796463996199128111272593365994161476588095084246513347897254396609891104207804784010042594260147585465035659567349123388166855400577171250955649986144983171476788301346807137959150119842452413656623907455321937287035603591541917424569110459635872520500787207326433604330488148038229278966155739586481261872384206959129890241021280335360901792686781318763316529848746652886149302592492093157961185477225321438233059809673706293221299474915298242295770678086291736114548230899136072585844166946606220513490168820081918754762472245723544588054275263687530361356504471840122373092700818594801537476904047002251030417300394671389616941163523766131873464773742810324999425120327315721343794327063985469867849446631400457415068422802094845044518846666853066951308268243345982797475832066017699912753549037089322058322259642231740524231702276608176869095543271078999880174622179283118177058635759323381669796742911962006089795114052391035744463268084464234096216564530271284057254932018474481727356899594064837464262954708518012075536582067640704932406444001143725516457971729769722810890057332379622632422079851810317252025854380118300735152139962359952028025837096990003123548108756796808177650111435916755888139656912179343185189395351385825213716401011351258931201751692355632552439872166750046269793165505268144347134527783842291105427070406596343273756991122307058237237683063252497195360526051826146896068282043733789164760464571032364886765691185354793742139457611742029468504757036848290007756631989023146814004875898215554653163772440532589376193704081698370675963769952160331041123312417300148770400538542352521504333132713877771899744476475753144830721969733275475035959002422935620275640865127373638298009484628132030103762426887626084813942020809540454678192149509482882551867009340587647062169434297761075701485014570282800393267887390228691067424902247978699251135491906089643230659492561169128363069816886900647631666733583521159714729474990335951643354193741160575427712338710212793150623053395816219999143815635325259318334123068854406621564267260950954989811215382319356247119529398282031730391087011759145850239994290666250807392026240366289802510699197813595170386950989642146846664929073443545590489728299729359326829285075293403024758552513784078027452785166027099421977896076327720569149084669727079587196522216935308812595723379844045322286262691652489502075325479526345542462711299867184253795263267695018966754818292290488975594282912468262787078964714185718392717492075304110134575189427419096635092003900205667967646548647644774381113154299650140437803899358479743271060078716720373571110576314200234690504420013884723698234355674242286079820899997603751050890453846489486906142566187429953853467453114703082105673501951328677165714280177020044074515695905716679218712413471840539356321350408715761520802967493714805648475909205707601063635051848634047259564733853819312853301538080540610471680120977076959539986333586595641247886664911343752994678628911716255152466948137218668501882877169208273435584999126038992905092417305730416678293879997399952939837796253230445025706218680230482811544909226734164511244579561112180300460843451560924821532241890033414233648014364829677436572771372933997752642308253258183487547400346620118355613808275176768029252892558976057788101600315591694112490179373811348286211446739280317233429591087987248502532325734374167001256684993946112030062007247783907364619109861473398510810799183041102643035980080155932050464547814264105125262573495486311609537635597173803840648194470235530966343213975394112521052198966918362795504247527673562635495216522377377543318531574109479086087205272614726157907510147539088563780820143576960325705739717223118955765472331060239126673975621548515760204440206347425915799810169790171619541269847440123679044147056447526841270175708232771572015284525094737412279567023994387862707803518148291310453472137582327543579571893178097403445829663976623866525877400252638282960561578755770502602578748305256307509944603746634259294317896513846887932322315001610077960027609748486704736292697358044086619264228283180964479309088180960471011589400939883435468181427771988578497836231573401546499686856805054446033351950906637370068161220297490081530446568618830010548270738978560547186981984056095362607753861880684417764215827655108332501948746721580771602445469410854896181291373758211901420075996697919458101808161176428008249420768889096535952101352341033547582275229458566547985004318871021850232022371172985554486753304433310306869068339039953549727268680359779561765308077395023915668002009013231951443619849889408667067781012489775921944953650192496674117453815933082869621772938062298947852412774255103888078236184070658174791642359503062975892481542572135097965230926451631773280276551951822174468160196543006499555921666942776186438599896574204372149612908442511778673427518273546629112587395798582734855125356162967149689564776175008900606562975718513975826521153165102773167293142157619625758699438205766559085302294135530918030293612573868013028869562143743850612420141476156267133397168526477940182265766133714987981102841101455121903169475853796335100114962698937142623375585661018737764819603321804297243282952805198302023260891248159712883715306949465894704746097251034118391672748501305432624111819718688464553816441247730058569807209035325508099780766397921462548271524416112798779769708620585272498106126302889214210166557602991300434090911489740251586034479332062425897524676350595744366822271837355671991578434745801310585756455374006029278730226345228196747039765693741673973045809340804568059275945887513794783687586625615049423363222228170459542459814197017483917204689857938996203863770504052201721179527811143649884675930230516088911135068118053663287234393635517867077936929680982245175428422269920698580180908926412797227007241864328779556584765423324143438201649123777994320342173892081053678088220724352682734526606212578339915025954682668471545422777104931183999982836332603039678457585316147216268147430404462524707649834259857218992945720042895569381998603240450289648811791203854599243682677906276323717203490570816220747151675121310962114856506140184352919142292056165369525657772302119120952825041034755317329208246916637411037305418821771647691120215183828360479818241447403547337659417577685625348222666004952361793026013414545360252393072878521516474573537803568158980636703795430553281600705139215097660845621625174244296338395935575458844282611207855168483064258936453981706938470951710310405193621569018591689931051723126210386194304765060684506427065936625010605888249299967308390953550107880090765824864971783307087978794226576760361945537750353870260260025239021359732156735754832331401323279479768887398638573764636212669973562657478779317413701562357663524706181961462439326670388960917421251766571056821954910221973964575551354397506899071424422606221168757118823116322454956555041893822313752664923114539357887351410169647057116259989509479823817397858683072420347721305010551773809071737321998381627962506902496930698615525186349268392156109640110578818996571029520502572102085566189336023852772008082573322744061241757293502069040361424805139636355340901935104731372004759088067189463411066672108769513076304376309377490977401795460440242505375824342016948896048046528728771300720518145094430642702175908074234773664631564353863602863693005014636580238353444067689498301340317905144790814632177978348339998858219196909544300891605207910545334374260665165568618731523449482836687671364584852006665840894950824394529232426536292034905817917440130055691642199261811661394195505727368228675108879857693658120777192410270259614990178582478530547802057352057920437603730217399592775019908650388541525613537001276868101146723333300779389481838860434854089371405342727792168152810353263537187186137031520973413555627727360057486277223708582176660525478668352509542315291266087068477043766153532855140758577170354144687727705324436665016533646262399061871555467911324857747968695085234561631053666655297606686875888212673913031241306362692356764996273148745592080675085098517620896595812874441037321227227077133457447986900007253931470229004221315783115895966962402560776974929777031402288742474257122638618692131258663204744528450034839542584449174334926547252681393440515766793896006856652743406124178778004810109626707652828470569661101722646417642950102891659432522295688688325970579593520996558905159333135729929591264406938652708127509501471692310043794034711459642232096920913133823871005946154476045607220125452891006814168633525334843650457821619447849727049248088011496411397250809947659069790717871265156388096647312442555249122449487173390951783369554535056747270378797178006487977568725647382522135277209428053783839785127050178778551668643948107118057205932546994296905605944903675205554439965685010414046348833649789651619587596425594669738601911376081327759160488978953939513395660727663635387837866654844434327436102598419828684868972711262856425158600120181295154373224924840482315750604943295654177458268518332972775567748774457751531952714905350660283475887491671010078110911702221205502138342896803700919319892791158945356024956660636464862432621296716987089300547453626351562510831367610781896785718988134354660261625731367415041494407698314981559565885015687381347910693896940604561928064905572103734117378363192118394659197237224824345632970852271481111824375165152810555825862924661375017031078172016079302090749451628003734711584457106370132515397788944230066090015960518529476539072941289809059291724868898545209424670714117081403280986038680849676377401944936543840709887615530609272356167049295670362698347188613656344520289581415580781265020814915901575108338897639849977356256484167359791878176576527728043151883052309721117925842278030429580848109736465241094939689704643117461747445809838700349670630448314982463395364027515043747662832979617734628757729776739555209346084775378648700596978643146166021749271385642469485550634971732523415685676634058298280655293371010786667701350661589434277930759188328847064693957418571743608346172921852002617637183289690092994611725630567769193351370914042450049525294565547857486062958453843025183843963469211440000733880885397342084360157714017510612251214680422966452686371896275065527302278449456323599109150508923055818220068671142639640692409544469425355307985592106312329606061338951401454574035331055206240435240457305440328748120842787141435351371366110049874219095687410070158510114622186390045883527109612961328598348283766207486063366321022761540411582976727162661360329927057563336448779931857857500613393192854047511154380313031870314481769824255983559577907496272358998040764500926014970443261560507552209258424962842502467095725485871174090022428796134460264183546921726086936672837269521999842641903404226412619594190398471554799330173202015172341568503336263598679115199103222712805590665545514574459898271070400501225656620290911515030445943195896998814714007882333645680312214965282965883362424934668648612197561818775331467807408564987824534361889448258991053914734849550506471908647522394154870627990299953301377351710238707961385860086221456416880073150572394648508111776062703488054394811372393828513429491213502004125746432149343101163857055772396872210674919685135213289937340129625195022889738460690075809226009163798880687147447540935311145638695349761800012323998214810050390156411162649485405275816757690790903129448584474328412816778355768105446792102621395774151201004520141729360212624336772524134999001576413449090464540705770813052147409489666128753847053845410057935445870572096830909439610239690373608104165693908395377641203595298269588906486825188259197049992734684615520707711088210193882332584237474255720758572121494182286860330335928657058573671224467420493819096761205056705922909499149595752681676541495609642873059994820594279667437381787683111518716479017595904390356696068910376826652644132762902251772717936215394832570345065164639856052684302944670826096741676547807565930308909922781341783682337498007149170435185500099506830027730267991885096731618688946858148250072927941068465821158303404952272025012855728418535682474187678720852877001650476787626677879467048544609514624354251247935182321380961063428710057134224428581898518294884517711741428873828755233623638341552287794085581194237553590036089732436512690072696695152532044711077783931383534176606393422897558597432790514920780861394188705368231734020527077415970596344560600581322561394789099991131310538801607063188938443999696116099145681091673808490222668028901975830229689892429792232335758072099150598346896219098870300796624087758268628910236464834786422152492658698336651786137530936352358559848044077680801510788920402637439471117408290375921683157571539510933216181771351753394864812337940260495097565663095210039608406362293571646726545131930792888798287450055984946999269783227471616012483309782748554984951832145679307109583254526857787467600838098436523279258937291814893683376856706528975691578002288419387589936284620397601726479292737556322172793304693724969437975834689624167725787159636536486188964578394350962791908574606290507462390173172102555943706486938779373325817861069996626236575952982026555168456518114695126620256720136173351625737609135993003254276051903041564381459619705141804331955519028534070935880009326827357148221756983600585834261619389888079973698017703470069717415580294353357457738234491936325824863522744123686688770986302887318464603943044820427372909896658671643778629869569466485776069322506864139483123009635601255245926806504261149212144683704067782355305494221708956932966558397870352008514555848193000287346666305878604141158682892759994652581781668242636750166499609202593288990636378070938053485431564979983963138724274101809787645663266535947682578609530826029831663817178357473334733689793881424033116800926534727268646411943517569296160952993605661390612963641255896178459218967801624220573771876214275851137377670726739817480244891165342664335127398316543586117836157962157504306748670363688528158095892825813017890429509485492194173577674495337079472059268224062365495366375696995170940216382821084292943796819820248865696864905525618991373092411522818145900823486756822548520272254891925646534460434008723401781721968296001806119393032550923578515135778525962527030605307364664217485333934124565153542692268323803399592724568353674035007766894279955207771747698697685947889137616047275502858130728517422738411770139562720847067698517750539715489070179593738202365916501972635959053203389197504930810325899757781987156592900238678502020781330509927170802782575734521486650008414510853969695331671754954840323023096808878084464545989456024173877531996150038739768993524212113714719385317708669617069761530585915614918399654045964023930921931815599674069777221118639411542040300955524044001866273322610329022628343760572483146065816821897688030528579965404903431161661977148942585312679507512148578135059229932741519896386130583478790699894484436784656590949851214612231189181420347467783922591195605673769946445724230128673966477735788211660377467981948624384398305170882166770707907770671020996688684171197145332019252864608208479689388828349893660938797558145513325237641946565807323630226183318901881706981108537594436653859908811989300884881167716077118311666568846976339803917795955915318546745404084558630223031891927872231075461684848182982715343960045327321730331570429960093733664926716889240495732759390413226469074368849499069299287707569975847314009274033275826598673516531261695550035243803500148746553306284252898079641490459831014790636196287863579102933783079488277364005488857929264397069596985700786767432622778667219651612166817347198488403072610555361722545759790821273182977562633590812978850712009444798078133931239979823169926876090980804327492749014353226110182845365666784724704477627163819065305209570364105392124610411650655547394690407781291416806743093166937219320574194633108900226564680927091976312671767476363070857985916732889400174927078116292502711968874319819768381872438326648822484651013228126023120618422187466275926060001852679894787917918801210850704130938086179345178662352328665365632450016802150205372692871307252377542635633455357780243401410058892977040571814891054491733644746961413007735970831468610687058585013125013275517423573024058532979096239078483539154191468231360881930235874606204685229174306463352665569747758394096428510466653068300279918557704207050304009598459656243691238694126094126205946120351763663031030989007081900226357059319803309281999137817531352541585938055563900834533768082103182353461684631299797782930542861328709442704182640700061794664174280154908493293218672502982229705009092508397926508050332063015740437397791345952218642072309946417668745119630282478706040626575888723212555132148372517433727230251915652077394591955510565688603117392843384392302066656918117277759105847593117794246034774735284714528657983624508536484193038965264118317112901736133140641810166215068467573491907808401191310026767366755921831258355243041411925497241425675497697192823803557722497191404337549171280245494964021554106954417480829882419403648084097806229235929796522177099108918206390406223516082064949741169691544877032476443266271263322623545796501881710381072566762256849198452118861376100163151159452065069761156934557737063111700344287142031508684341235207195094910323141106081117453245942732733626481391549768089508892143456133407704831659959556583614820063852629224826467486229175210727907309008838222986871438551598554338772067170853797758360528631188679811528330077429652392096814222367529851369225646844745119553176485508842297702285430332807770712485441634249213527816962006952677943946004721050369114790583486784601520520096019282392655056004473709509359131813772120322784211830173995408274709605521837962958641939641402643666324927590538594708520212808363759370766143762382855346668047870710227363745460563735927032289513642980782109041277133982686114791059688593161187900603776812134693267874208245521536145762953205059855304340805353206173425450742457700133627808992719813282735969198219732405358541063103991405134210454653554900562484902634685566300625051200247753833623444685643277523824612272399568103113401830789274354196664722225363148656685152270083964522987676725472819949241130680846561842506342982188041539966915665692538901973979724124660178188563988542494832537871839400504978826391937143576458529428599059270749686377421094726421791053902561547833434699428455731957316526120762748429891735175753161329955140853160327935093206529416339104348521117384329126746134221318063909723705484607016785283551039871014105902404105462791300572860787873165904974465433840754541819719875646385725658532765206572457349144682574896558928980380987865146735075199345907262088855990470855075044191339660857994196673431656599218616126732780682554612450458830321646394293349373664638921618773092291417779587091927740125860714639371211957016720510053104432255348403785302080242812519532795115121844837448326741868131662780874647219711573995513744516646403198170264027761721578772678597089278188708318825554492040624073127162681180227064623054387271377351344240631207380885257862851811792392954428141953261103868306757173776813597270276254644333131810266913689135080127133917160439186388148268614268220221679740814455361362736173008998513619118983720706531710539714784735754546125598997193159410816698574080662568680075922873556391341933568289870217370986290791622183024257244245941410151142108056424754823778756310300404669530548707318468622399808623836659815172370860582507239074773457058862018416489566598690051405263306990831880478876081868716701432450665090781661147207313789517028832102905665707244627172539306128398203842536247915209965627899612059616486627896312175696725291296184081244499265861502951102776293557728509473217055816616882074273888228684567006029817732211819026286802099348071194653448809272765213518479886268001915980080556356659398593249237839401725489599689227618553509980758649568863368605509959967442004905101191731644946440609361950990704232331842633482786616642716453702096475159988729511695394329114309151527996658707705041855071915606937693038520261671690861354806039169297063889256227066323216667077421562000744835155587919899598288150109620024355604129959405389664027086532201631388706965712158106727120795624115845652815691280535146866114010123912971911042250775841696787478141605334842422375000347712440451566391344012796294641170273523624011248799751195340368223119872463498481764464956052142142143597434174708429551285732515326391923164833327089664303355748707337248260913705033021243575562584500053562708021294706724831449077185022636943426860547849888620023775860207189209546373943943753745479806634017001762907519370095486122681378668151621058962451795549976550160093033455165202437643297343583271089402447878908834526350530191004482275492260078715774230250420104570363337510267759699568424522272224062737106815811331440879104724504685958429725786538563507406494979464287355328794641066263051205116690034588536727939684760850835981438269266627726632949007717558053504799585708910533490973954682157034284322727490713558139690648566642616417816704853320125202296138638481722594730121592683138737146529443199020310568017113522978512196682688925545249712610896105019601679083928073251488729536025311107341349829523618000484145070073390937721862360036028044654807580800497699536389645899448553583766246220695183175926122093335301267755824937336007228705871018629204401793879846877237936899459264062381466713228814926289281560403829454705685874585320640526519278174472458990188962717600046961264115562026141987461524285806527161408714379016189403886374388963607727725705223290385540479486637387336968738557444236265394664220938609420029082086185365575564985701973422633106709642855802138839605080642146170334553454184895499756842142177560133895601835983126941751529332676287857591291781754963578736690838820298028093689188650564097292746639874135272554516730288104349259514232619098958912729136570752145019645750807714709529553617475920411317324431284595765278730774468377761169157373951264878608291846673637135923636318789435686895016817099246228069046586315325794861625876999486409465513793931534934895356088136491713638674492932457462674465212851379864044462087776165836520811791695003776135134835058077432426975931727727152423887009210154405718068897415583530634615473589411251424812893484430579730590950619200340643774884823717680916331789367416320947559633165840074159452158384628178428039887297817032813445354053051694305578306923795592981388767973675813808316506320697969836323171357172189297356839181771030537960758300818171899939030695414437355521582150919864800488258725919279850566094870552761817567973693297652553208580439828483984754136952496344207844218987135048300220348713457551897659077491245372860116585479271164419763384758972139606349475023941699574399375924995075652354702039847727830478707190747273314283303027591234206402128299462408351516972872081908688698758524582132795645512982027849056415984455628024764356972090153823409907624468889862856924297904843196279512323602650843938860014042568215856628183727517074161385411127856785222552740280873244716805502437030203175126427319012100673854321765184146610779811420677561434940215139249127297771184935228965194680359694477454289002805113141824415390227947859557783380497990874399999352826053486026944016171275559850945628568286684169873077936810160348347722557889957592106330850734079697307605248480910818943305525047512305255852808732841654926050759388953193976022153952947916424412235233348488587996009552076437893897079067833400248845937754299412046206986818668873800098447659112601880313267563814843378384964147027814941945659613906011513680552018416197408831628973121899640602571508854201453589503165263687664446493862799667199325524781819074178013991594460305119293748549614273540086645957606039068014375850440741134905125385335332962795060502089860596767242739330103960304342358622241005363100932790649514875376592671326282043685908240495071632737079957421141137261208967736778806475689369984998042938875898748275440116473502289174355367589670602854740672086167686966780840360251505113594479518049446188162744359360797358198037419705598689996689485360771866433563712228786724845879506981393216155879588574447133850531372857721634987669421566461453790018348795142679535080941644508190343559208620995988955376733183482472333690841685117268504593879243404010160610981780602254834791514217882442660892113157489440941082037176922029376893151861883633226200897026529675561763951271891287301344273818367369021623815402681670876471935023754245503938678110253125968210528513128278454483489142347805600208929030371715371497040374380145680663320345229146472895135635905110283504883051498128076383744385720421152088169495906165996947958141127270788205590894291482305640048969614536460793426304607838099202487682638954809533930113882454611601539257310283773296323160356045231867750732192524018513459487409591249381400333479311893951419224395156502826439083109654041817662117323915965886234194921985213357273635639800699537432697793563256324227252488962301862618523463581521668262014450309221548729827948487721548157452679289602144568673288003311011479725298723456956889107113792238545334994755921515905940200370139746565667689388386826018472886995889386907749509699805523199178209736998509860218193645574357295608647458094671691585928873214137779796035599569409297209413795395002050815608662363952904016513136026752687124543749818714419405566674818951020920499936187064110448986564855489752262247064754202968200615870197544870856265074420518484958892340590724600215593229645394794114934463985277663675371822995738456379040158161641971389862986830713543935208588120912558500090594429095006329524567895479253725332395434190431437724060525333431031736133917412304504482683477196100902892939298717482054375499968857043182103433485108440614584295569406128457490102354317967373510927183435852536565831368823462826116371658462829767766168220729805586364954293020599793426520872905970552714509738586350720020719963876151500768202013045351892761309058710781897521983567898367022425591401981888163835324068430315744486216560298918130816098204914441493010456799017296815066625898370708631810650082907298514361713844950501808150215470783896612296681203371405491385756407880530486367168036883575256133209046341934983048927493684759940498342631326575164384106660699690388125246220707653758174382919428108113049674868035226781962969491699410926433216059552597058784287727161331508086612688702816360038957968048040624568629399925627729053088008773945724277813847395282115685329277956795953687201862260425646832737710550453963350127908790427960932634998273505585273871360094252726357641573747127021367873431049187895086377272472855353206852029978060334057618397503725811544448515518331110765959125264141952148790954064575266792304949568544660514477508156711380078090215455042864448109234768874290660529101391037051760328659267597777747238738737312731216639718739177906692862353094899624546103707652197936613958292513923773155742010474995092914680744473590400463385297156964649390035753847599705274313364031824555279378988378765647389961289800704738498775641836092728570612959417204514207195391221671215890849915578582252197692299397185120842354496938912180797714128599447690598616835128785670931266256486410864811184335898906438705712216086575746692852631729765278428342263458346957074072451876849994091343643208555487545836771854699194452676608200562689233991383896595122882903814369990747046360033525997013095164152891459699575505448165203342505487127468688419385763146454119841998329487338095865549728239293557649658964010732178780692052583483986172459297884792083934696268936614291245600534208871589841478412445363800305697890281792934923248476858640597624747498116647543820755991812851943890857823924139462660428672010994843828611671306446810783597215889976571180934412986564688599828662184453341297058262395560158303639835883979456621779768113636820121195623606008590891214520376262787689828583042262473993007102107616328528270692438698164800716050085940438950817128246926708906088509467954272488468526913679315325963063598270610894624311672574482649848807986059950145103096433513262031435347688499435866156892722993413505054968809427004943589351867153894386807309721380344604324707190739918399482722169768947622872376180884241600716887282238256833063793315485280101453159501993150882286749212277652682671949799235150543418612826508625816679855461490048522157936071341754944627092675257186277836087756594345729901987555276723566998127886360980176815197880800472832031718451152111139183842610592014008882992894844379804562822955911144981226912821221393028841857748052750311066836186220642764216535764832759277972478815077306396164202502174361126553684425774393729171910826090859069654564637171919679557108868651306136113747083218011604269641166034003527731995055566654039693435549877058418676215223528024392599793307333464371831695661004737542437796968032276022980178302214560536102592898553429215778820598254315172063587239831458013968105774235379794930741670989319699299338164911671359812892316594027235458016520009040007416877701469074066479666821228432187090560530981919768792892432176233665884376193435780274726861673454403633789881290936410564396076794858675410996686000250936306832659433217870688165764458656372158543290671002755472601297089648894879191754044823859742527154333591510629929331801706780918854323576889523857103631263764670216318811885072124770311853776020671839479068601836496547913562421615414213536325395165569169385156522154185678010871550229448051992948777265884947250676447414509073268765328354718778902414068191780337376923484203561193281196574193933328903817954998884998510808838410531182398334569599013711188397580950967940682044920202757815229591521845639198535440359942535228340503924694686005738379861416877770956677509941059798267040158051245996538853819296666256157887667838384579608454001967227610693457643128071475182347217229729076853089063650367994664407627395820973297263090501846517998180325928879896934147337562303650824315802038018894210570078335347562984676081028411047485890437190512524811088649360218820453043423617561041920896541282807442388858196187478039185909262180012522555961283282048386811330721047770524402634145871059201262608703968488968539359359196998721669854367272700296881355502924041835704122921850581998508561051605133850850735322403501221127661856305482533160846729466858719360587144294894951254034114557942799965045864895119840359075708667873392606860668639089071345765344772069631835462087640779001741293811716893628839077009662812982114015046007524415393753566161409744954362837274193532349998165905783142868358114970156924752527332863425925634097791316414280185595145768655682507470272760471439911641646053985327900927341346825410414260565356584701889790729043133077469327299913209331871886604703639244260675836295042046786662534247086414279273950704346805725323881970289226316900522274357812692973531045139171926261221364856371633188714030696865901461657185245504308527548949094443489872877507900191670654176376681616648617560241312605476793031996655676228716622322306190031718629709752379790942300125121384786560150596115154710648272454919723199522862997110448262571647992386831048964490391748764909127510492548625520260568176840391610634414246662954198093378449776300733176640893846922915580503266762036148340358167207770767884392042604956406526766429731168755270764202145306032116395612262038501386634280279198996103999484209202657667554503482171814549111066385042826713004269661111020198493730574665106271378181536281909986270524451247540317921619280656656488066082584761265542605971819282599101663435039603378370754339961548279979832223623352941518889764981917925929378929791012825588265208044152299474264427466844446723298365647951963433674663869594277339474870905340452871001816959320849055932215856150793039024210111868868731966714882480226949148090686559654293657154160638093853029669542300316139262599747411747377067484769737149184302940515379302823628199335050598600805389810346978310559509523926254706103731778666815458679457331474655286728271592356745620166970568167260422276991252578527542924626920529961279881799479196426935752483210688947242079399439378368131232587552773640499277026802872471898530169369387977838906513576461149625891482460659722355654887808475968695718568071149247400533169347972524718474930990555533877774362782648539435944529860596404783183598728362376286380934860461685800050917259213179830759366581587268914791564862975911411612793585545473957087784977415394320823572563463655175749657759511412426080584336162651371683839385091588355811371863533771614170736386954334322613463939807823346235544362978748204672506339918150350938440771054063337313579433473010767534369954793712035759820361121226788063468412412405336812444391000916288820234960762280442294821569227661424680754898229907253268066054519915502067540804421303244160508901554242976851604069437029914071927324196057111307390375505214213440388416621565465826671320808816626567388818254692541544269609165708558406526026205124024754759294417082136383413386693068940033818670441421027403211259208182856634261853189842938802982994434257043364986798276253153452725115876899628690440364860825742034684448389214491923949432289917467644025297648714773289325968142547578130404460819430230140875391762104009038436822244013424548184443486442581281912730220234437562067536053655256301088525152958901473345733305003640883383954787031261893263964553446218749181960024350091387302257629551679022316275921400883584099148015653529759414269072245998532882604064398137580178515036219652275498822399879451794258664905273255165707429744634993022945920123406332828829116659708186328513919742945553287728539967159418074494189565960807794314520291306324544841556242261195548904949474907626143739571613274945473454879979114522296348417440331628296313826263223197503497469371738605893893208906584324951287557696279320476127938103824621383742207355040850505316293568762278239416875615878969159302436952987719351761140876070228860399636020566051257424347012336954354529354236338172040923643622495205412330768570533714825747574943503995329208222530183017962385795371218441232860948499423358962069306357038487164864389818373862043442021205070825874057977410932152604589912441969536973288976166546505621373950932625359701031193581571333554425133720443651941489115035568427009520419943575712733046087291984463198463067756236216432186462738505571173679796565893643056248310554145871387896162263575611117501907070573176678436472327851384966847180546661694905534597543682843899047923115840934427264304565427137957710246763594620339999402671769366453380904326077619731205732933463439464070334744572317585144645602622534633367507772791031147450247133975399572238827743831053043139329162366989840550151447792019641733596454163201755857726743462431786914191226659073658872044203129222111642561869970178948152640010305007116526496024359358719543492227710179035160515668514142894131119261705625936770197312836476080512029932135447171592137022439117688636067674406949491335302863706878732432948054294748390672938694254210665593791191559903777191310940031491593552730352402294426147762436239636374481045985864942304633429272579846065197348667446165370622879837326095443393057257172205742853181873527076322264805100193257707449151534346285033716549075762290790432761538174569975133449977409933767270185304361984203805592299186022213248022887316815725265527521231752448718737286920406469846519923979346286815340108840581382948529085507601298108343593484741400914631962249330092483426503056006955998540757381190085041005444143728406431320908988561242341055308877046983262335312275259031938837007919898685443508045763270273386058977181993008619465917961826022278894614028631030588100476684178338531161560064523282932404319862657839288292214174722796304262427408619709725490007530206707684366798543953161595544883837400506501768118903056016880333573926673928917718520721067702060917144026740577493096653852075892480150027251675485722038606990785762958080000462592284904759315422139285865408713392622009054716029400266837552552148909286014310709650717921357368247233022052272369598121648789875070075260087083810989577160539703073440394047947929995039025361849574679778358481836936346343890585496393013538368342794200646023170560732310067857987184835311176347206195297889218748075530871094517979934239947402614356612525039377391007201433758681043052294051105862948406969854530049334760667233749109336956158485722844039329342990427160144969322115240800447817397239433644065437928576127071426164982498159014117350552156937504892165085061962846412958946434196415840992137343024063377343156681185715773168548452615053059550781084273211453622414055808593327934755825571450449677549503997847357402682807427966215527805544801205562830801202235026241093767373989591568070763221608857304101407434439709869711330540251006734909954532751677089820185802111664798769510613486172030969136113396565465313181277885623299762690460837587858352308814753727775694219954478963067473075685439306390928005760047800081277743492755645063603135904427270629127151888737178397631002145166876714514150220642423315062117991500265921345688899527092870875460848351994192433385540736967401217794945497197352057289584598028381359190505192145974602732591950920214469489382585214889875392377567587501833414680234791642476882416026436710217989576301536177064240491100430986322103145812254207595938916306516108404016220031675338486321917410119347437294330202026842972296542494141659127784256734067937722039120705837185558240776092489199609861807759228673398175118174352875332913505534535992827513052636856126685834225480437990366171125985622744791691069414766144580922445589846839314627843906238846167418817209651775450678747081171781820954703933299476463362795225536156613303442915249974274506841156136618838529927280970441635953882502759905176096575914703685682822446720640779310402313045466464209513336431828431525068118252984727153508581863597862897276595733811323019258322220675166476014491688364382325339718138795349391795454022972650828291159505605307062163594383543512584311828100937412817962894383325520366483176480906944423259064528194153111786387373021882980499837343301140440627429724900112497800770834194258272055151787249763242742821848781217515629373364374622521247569712506439045411136986847301674045862288175529066321228414139331369162079990446853705986783958833364640053908561329119261545508460400620288017276253706116393818021738938257474831811241359030379818195973369078852385189782186479892280065371900287962475861672624551893132262251482144100378568590479538126889216565765308805916915681100965560007405017315516767531234665957607872785632994692632867502237166669099967495333622438992513308498427254370177477042327922672924475657834194788959552642991574128667919130138750705319769057562738434512760753427913966952422412521429909233191375379541097909656749758484223514219065808108200401234494837365184856497720225198538807224009161103332304557134412527699771444565183157752391121021526373058210868589718812665706342213481517218967350832838784905544207129181915410393781726199749654677655033223078851782336927576821658885568519459764810719708405593863731557238298048682887175665272143589258498828137153224178384506037311910071502429912467979589599912634482913381615071671740896219204294712664608262831019587715343049766056585919076242468221307336493329841589151548051734155714831363075645178845842321529904037983192740376377911311201900553800341136275426479339323914852707423295186470391975069439295152715561090152506350159147183891131587936755516768362395836113921198557101274266319080597517217676181020380851395399516747030301097697573733032122955464600629907502620404172203195715977514512208726376970405549984099527448875462196605810787131977679701326794294110361237013093122498908639219386750386754667467932980798191274022098805882004212116956915294922547121261342761533861530694531148620019597826836544490411220492723848419811317243603256605541537793368943800983855945593899268667711897004988980671999810241277987871764190223783321708449142708715728575222113074937794947943625747664482250867646673021924650612989343997530310667831704264453311037484673455607988416273896522702502942690548868216609737741691878229605551711122891377764943299777929698959163318392056760084895518717611842825006713091663730764231241483756602403485125105544059392131821969274007812121587532526585554414642297165341296905292454244072798807359740328205390432844521902262315157281571130108530993100313767703519396767493945158251177889070288084761525942659353385751851555619747484417466865898859567796833583327715185391656228328011910605108994191035114343572411084445668466352838045151544368376728509419900843384785308621144862271733107113678670992738919517944917963120226086022520849665662929176199293985886281159709276949622544722110593508506631761312797341059490677020056504952256871427747510035582349104895730857072252641424884600514598605987087196027655955219201592480344848381739930908524807852227728462104534554762054736070036824151748099668040129419583817046423686864796321599561961183612787516392452104812195456391879383687335159785777783637122106530428052883392059645719141524249078473809542420490689095312005647471274992570371849478955930421958258861570304921396897238910416743338810961953578478659020826522527425871992457983986002544921940365234478369645956601762960375587001963272753507704802946383459394245941188531283090981728055869391148598245570350140826860145218429449457039205088996946864428746415883435203200443357421140664209702727144943638162727455082643275777959106819313918234167139920664832015281599026865995289291445046821568762523816528588606802532628557604972905761949901155465456407968563782760418294624827600040805377322675709035310167300381115556128684844622203856220423243429484692111790657858909959587955274181942058965872745522988135254186458623229047864207926288855191139599308351234991924820304652053871205722627548275879144071790272044136511190169289925857004178202132890847173365019447961291463006979590867308739345906320908185640229242135327994850313164669173928594667042365088453554562969138236840794269245579430331206662014937843516564463582148025626377344141195494878014780976356843242126014631355717407204686843473371765513522683476613954881581053687334626026450226760273109322431493088872906294645219562536345839512946468369866262332138765070409924848090743493007390379595274458757112349770474232606898547973508955694825993621266238783396321034259222378246990967063170412175607982384221757844339426195634723146775170180671861850854725389361304712460909840971233091113719948337521783077070258563918917629828330641282816645804195443539821170908773011494900493465286163891733604128390667607460334208392394037260955184047153045388820078284942558151938996413776442823577162064769605567320758195065602540582015967515829080351720364516743442264711316907864752214643456671225175148073121601423326377880046539262283249907296308893216532099007310919761096728989850183888539014685052854556074736649683687675976236596910195904886704818803764589581164063523713690025283569760842966236682979657141709939999256546356223968650676111060442549938026881388775758457743985368018053862516845561152489896507114810158095794188663631016999025961640495299139284074845558709843556621001739851602403534641821388747243477512992799293526719103900124900757346898435669069218430809984499350097077534594355053215793263638934002362152193767347739561229709866828589299386617554096622228505968276313687350505914373763040074132912649839347511088942556451634090239809105321651947445134928965510872256721566850525092214221859907677524039604122267973024248904856002225988338321974637649134430058083500705609009670648378628666512143271575495158902157034997425246494299743077181094027495474683899794324411278015439406410487957882779436249940185746953334232967061423062554428852554626909021803874362221594251795204566939440028286987751377857416701412845234450683701454166911337383849886909352937170671737159803072936861655046520204605734174833214975354715588726563051675054955822417460871156497645511471423947405619886128079056230182097504609648824586425310907141710132997464487007807046564809291215692487013447883462291052545464880104528165452630458992333170990460461686194326523668773568413577699778779586195044174148364488628268021742572874137440400842723258517727817010737625598266725936836010651518204320874471403953236612526940966076675866674119976781302358245469881441780890310020853941471691415577546217674142254792762393984523975275024352052783267387341010225933236007048545037603278814633358497058862333770074058163897458982447048423058045536391768603883134142859115813699528013296699283887010963528548130001814932403127875917810093001987508224235700949898449842595038932072601139900435578688545301684835433714943232348376246028253958973741090502259995003412745621586388711893858125737338507199358480487678058058367776300682178546394228475638799098569632872861114177787838619374410874562822237065266330276738188474024790811118162053655260671693621561602827708575587136492776492474228163740098132165609495338627202550688466446394153878261052580364881077215751603685325074061918934346418632242429455871620291629276367184137237932439185809163242240411964289905394387588997278478529197879755782936983236885391059657954081945630355883811660911361704758528952702557007164361788632841320270719253543597017927319762524925720600636601221609465242274996909036486464449475436214439258248674922808578497165870925924604406180203917239873731083456004529167182049939785720324600736842179794840714284711087330067536154851333904677405242205695813826824234580257903050246264381548214417109463542456138580096172815165422609842601267795845740211902398827311079369719097813911848633628551148587609340882674479465143945182656304936178304071506178542533200325318788287950784241352174350602972724753474681740308036289219376879421901315927929633351658785237729471250347670328955444437577294699353584239688675973274742153130339509333250368256724637547724419426375829723966442142753456260220393016366215025079205600303253349502630460857664093317567244196886683050668713373229891319897940667210707175464342670719152984383034376340347827630321717276663701598199839184679163144653960054714068955321245703430247859535631222362072377742877740761652767158980267830047958512619990059434509500352891509739132864701911449837585547922314885889462363117365706668641551708505583501749238479020241739549674779244474664780985081795859854269404364009710774334863680564552615995744961636423198124285396511111909845116808741999490660180755120553234275246316037719692841714003038916400613535044033079634206017135274279625231885661795828298994686782836312562542909926483865401297560774810443405408227453611039158639714223478968632712953607531464393520539312330782334665800422359700725775864907557378917603373061641375826712137192606216863619515535526574462147964883468902001959388265578098641739194510248352937839868908568349134404431218677376065490518709895534357261114859484201630832890542702167924053187095640491311651797325533842861912991991559537054113243399821847116749899193560678699680726796367686998363135587622453439380893467630924645080611817961485431432939033156504813680177948273271423432582610708734223276836691104736596214852949816724965301323622879767134005784356531696311859071061382502454102907115368298270207523089871341559391029413541273975202856523295533472135011668074929004878571889595082205187978441540540575995993380239628202346413329663782892506799603755613474369655029672693268250092678151665929268687008246455954483978324354635151086135860487788724266642471746395477519117639119049209602372163076595654990472267689647233089201873362954590557540042406079668657951849527677712597800234106629813758184824898166509934914609266536059411386066032738347937800993003485475227182365116719607823513773687900990235964689486588246597247974189893574526572576277826838101528032170915282837422693954525322650231332853337187902578531849382610106676444658843559758098384195164602245608919850520112785445446514124854605783835093684880066682281284879771526561508468929409702625203883411071791992301568815999121516736297414527009709087734659684220268236671056551746227526107919253392401377796745857216583501507313685131902609401784158362408541091302426085761616646238568067019126322131191475281909702165176294033066060380231216849236066848728980310454056777542599493873841204213151607888902139946040278312575797242369111131082417098628558018761187983184851217523050889301427282144860724526860802447286081112800204201354451812474549711503165069535409222949469367175045304306721181430871654842408174184356253167683685151573605236515500742431733223036451085286227914262217092998164986969622471907149125224864977286805039847342013641158173710922533636576224770673241590357969779204994727428700303903501334676800991843820056336708512217435074893180986572674847829080770704425645504962996679256704573605864099068785998583638514389508220926219250240611145530230342971697227091938756422705175532154535349570094969827929340690237568399749938213479522741038095692566863527423384460989705107824804898035313691246466894411083136380303752397430453371334745996176526155355171452102415999573435457307280573450590525949319913529992532191499114454104457416515240989686774095648303594261646117521820116611421554710688421397784484028813527019395281292648703372257658839624924587514342318689039967448489541409210773357032137053932995799983618448753690748012063013350780899605627719278327914814169185776480834607980495439935679814698577158042938589862927437828097263949068878060710890998175430370678745155820758622154605923870769251643409647853053456587015890545445038096862865806614804292419328231202651641224456179836784114083927515897655580925338547682456594431106109776008867154558648961786363765712328235923406473816834764045833280221540638364889866344830327287147898113552404248857899028376417718623088974453715766200862275853249514318968812754914949650555635158041504648807652139437575650318292673984136184373707357801567142185125392372987097791772396297993743384176069954750864789476492403289247113764494962156940996576428772315048862653477475819926463863540889074708820104223715641242628907506829857004167315892168101333030375690529568090495449996542178716049271177597383230302165440934461895105259441091213857491620475519949795747835684799002188906922214779565540445130200026289744280269198106663644852138995718411677891874413688209801309916743518722292499576633008240202792997150168489172015016231016476960652710452576414257114510593179996814429560855166076406949995115015254379643634144642361887544938413156601644186648088507904197499705724112597574145349352018779688739699816090195017530036282089499821224554012406965042340278845058416189769475463513087293494922884551540203607903054770242424271811761079043494576907512492695824108154039573767172733904896192281345456513276727799365660519546014461639029396995352901728104856259933894815955688053104532740148269736775143058383286920016855692645845145387428056595692498378707795383875741321976806043357224888460655439430575895488729213357541787342323700269796605001737062896912662702728075130504091058621916251225928367683389658845501229648324574261200727848409834124679965039627206929789578880981382872086119586450383774275278829259850653190014024679192729285153443741604148628810067520668362629356348600637064748853092089899865307345091441937978715180463685828287550662758820415176673540005509606192174912588246918647799401341638215232554304904709495380136890821548281005642234270478280989841743687502249718047090285106052802904076411906526841794627910843327486996803808421221544318232439865500021067193636333245105022025468908886727128333580737574053666267110481811008039508762459747775996075501940280464170318597604489640447977695536749222010510692978588877203353188662090515336852037953451481496120636364559008380356091576859336518558884689532704684294464082914221770457286755657863027145918692525271542676339865824778664674827012097771655677662912676210765900153581155262619453948748598879041789604789925793716434134077202172164171890713541907249568419085409679517764344921440166331044199483587073298931113636453026317293885049712975915525559382737928414300041899183568012195992025180147354151858872581466558718640925668126960262185117678917094163055871465779555646447669677895400171741605085160503662049282732028991977773435077948738785815267208663282225252956193475724449433319645158371815848055855060629528766205885807369103433252184075140234265950019764923060647953059696166312641219746087924262432148114730941979830855108544705756861951276903341712474380761335699659425462793126794233928579979651488516738283366597531919079288204004963279640602851558850957424593940746242971387710226451269651546550038160833824739516535604524559603449546733174494442296358252793319017223858753602784360103942740733074080933850326400646223719224659397433386783108149362268511673693719119493144269708296658907629110326685639865465696268613630368305823736639396528134987396670697472261389908630808482199466863387196592932213503729137549086214053936062991317808837575486049586111465561215326655505953343811643586736666136701091665148180769336714936280311776161091753346517363111332132945916284941667341845109209332408906780972893911947694767381637041093142970807166901790167236473210901139760657787542286277244014028455650726095088615524739728000006773609807621398084286550770120056923794911171945955935423806668355231670452931095901023047798805899986220888812233102604153669929993935925988799500456230725607879143253127717674699076327680291920570994144582720798884453068428109172094485213478675573709659468173754511832799895718558615103592003138439592048807697898104863795146631458839524615035557335461808947302170437936541084042070430508551252639796025480213738077717336020857224997902870705602997773475993046771308881186605311633162574170840374613216366149994443102476652503708487574864568005353348630219849747604862572911096109809812155144057334385314228343828084373326494425799791299667577286299702586790210713271682763147998615665189299571381117031111450435921630214436993832720728692417205609074010939146466006056026957922400972630711994149032792973332240887388909484535446047187292883715358466018949952693283203705464566559060274849561647251281586182002304925610251459446230172659921434859307117332170959090189153805632105691661833658668302456866232681595596584172119764605143440217230472472164733017929065202705609313251405377478642747325272084338557710996870610248443080397696339419690168884817254178038400900247241284082617248034488089646645868236163885003633472299878068392985837897454393810680120484806295991323078731007377956125767079373994523641264711009311623720780566127327635602606702086846306596993765103553191591531040193085286151103086166444403123984269359992118397550744506438299435482691938549671308400166327471630994151027359535883355654134274514881418318523197390956822189231881030830166974344720283585445479022622558242482640200204967043115404772850099919782281661583325010651829633916560434151444176556677184148957225601192350715644576977975038028296715317654407205232944889323670917599865378021413992929762337664204688185996717435768443198686013100171520629458909208663917706918676238835421193655992958777785641342897176214298527635895797669397457978108365010534165612977583463875570827708990960478074319623622118792507594647825651386197970490981016502693610112330394000658979255422487957941528203960016123307385084630307222602013531766100577052741728893925396299491627483873614201918214970379184972543001369404501856969636580596459224361685540906398800097484507635983195369673303875534954451129194871707761262511293319774188784152660868046716578727297746256196151176473325047663664335369662016960689382419332051123923767877270451912199546971412271366460552833256585799423906908338282006151364832095179947232666147308341559895716752206785579440458156884998081032369231196948853378818182051292830487202790820258801004557289246511954099713808915633368493392332275433609726917722013170919296677881678626963352304390233733006996666447246730558649134703517090017601973589555686547673529572024786470059839922236355541661488405834093921383984617998475010183993274787012369278118786771524533438731984939035623727215461165643967038442121275229708892444782773152295414930909901206654006117050408131838094647462107032869723268911419420342894427200386219792075029044660093766220186308714285770155676437603569167259068701998982458529502214333807449573201465271901324579522967924705160455469452087631898419904977594015790251488577911172225702294199600785296125550422029015539335866321255574872422463136583218797950326793776201780939332776606447753777572757550790876442682868868605102638362012237745555382231095245284876310504623393451756207507580267007972821078912185549536651232356248245826689364545963415135262541592673771743780158065541193999613150873418654375267444410177134155175789348106372930056375603875049464847817959459900830702353103700401549624991511376278597736604703222040816451241491682290481739918208698874657584666301893330761854873604710658391437251287721379178284103577758359148071673916141154785133751967973166216436326712310510650392816630614892816258100959212109555762164271961164166131095704863376722110963200546567838850243537560988743419430443907004349041578081585799191257644358000004677472579326973019166452172112745035404999671722804826616462348669781521822854333682527930945742512187255274573505259381106378771753964932991499928662523379530563917053444284802478116542246405615362553648397296015078522212937355857385231494983667889675845273038214764086069850095164520643979269058483938664072113160925355702644723393869728469543337183501578154974363129195792298739598536358208202003630570951299843296788802015393171623087282533077140171197361805814026854166939225003359361101109103462168030380604081981991420719943285223291248692576359358545574022806371557523365353695113608836777363538643552815927311110688825688143915015765864878840861720970760319302896027277576048563012193391258059413722900553409577688789697713069442113501977394019657644733621685545525666516110033038926545418266716977809165869758983161330570999501303278341125442939852233785011206573867377809390538329220132795468441138423025047813372882059635638634654728872531053541828211312402874442396303641524458949654232916821314103477246811772456046411328523608677462273162685408646914329643789189980205587229286887554893476832621660828707597774393637049513558545576096141811925355935089549113166857198813434092877607788846179895313318821578196753475075637126242126869340862862295937058679695946254941371812599555030138904559977930452867233440610678095864991089230269142470685275247744536781954578466621453594371491844176573688311759286829208924072842177416482203876908208520900955271793309949521517606996490042903635103358875532803469819206301119112072990671822325827217852252116532572822188476657301121211632632355806713497215465135446910736619674479577280376218767815667004125978731316880722516416547815129882397302899839831185196274884637464250554674327839222269589357453582038284270248683983138336775910301816864974287724933639845256667790166613507178263215369317217091858633382436841437416304330430423294636533964418602494008437150563712188438582094516568166883648080139046788667914961098176996762227179919363028925401296607983862109335789055719756080312137126933330687505460688103753428841817277074666342074037156867081152739525408553397473699980724124753114470696391064623330376741111963584865676356545693488304051230384245079742713280974352821989971312508101241641549378307080030862437319312702078323782441140835531635396301143043658443900433091816751404224311540851540062170189658703380251760836837772808362856790389296154312039387000423996899051643415915008022510035964020155203552104782290872365739013711398083441860122158409033118889399578262569221215637514233640452679628555037839775993113829205701848940736645942566002432598960128647611621873150622655214179027585071706587136588574148310305585952088932919765079903956566478136225594819827045015282695137997851735007188761506123610882049369595908269743556158539724410283966261271386977984851688266550682702109874093620546422055919434692752702560038530472165387551964787580575486889613182365225390501575600305702260408974597645139336475692822236933152252021329912753603232140931195804542161751948725126025686876880754758394558455116858054477698726128197317213179187032341512723540750001780436549385584372598042133440041387880515912595233643447899837716854430548805384177224715438856374269521009088488293027567578721119801124356082992092907296122274274611927348597380900122035172735773462890151930691129590163990021760984197995829186745760537504501564243292247284468307632538882133808970992758782151134812461761286425066233432579442602041178839331210038692376470994772452207212196420001016758715312433602990527018248244908628212027223114450185747002232304643889462392320054452889234278610841369899689249237463569000377949510792246716246826397721594211192044638491899973931684304648345909253271955360665315852199009153977034218583495110710727949787152464559949404845250304128191118516040244791393699869985745885887483583550757440449053838411901347472225598056443978667716654055555350890323247062544202052591267045815326561790745176430389644530104866863265702155603200501548502141859624246995736804289864442420887759710724477360144184161652748063668403235958621429606379363698916094968794697910206576340631360442827251925436062346613825322533746680488245663284000082554166326829498929745587636303413162828725282936261614921300163930588834395125773469020181607902035068622439610621230929331239240558343105983695304912792819941520866350980694441923862031280271595587527595712931667427207492826010443525579444622222537206613192414037617525300168606492676923362370716424788188740645470519488733337324768600092321902529829012707626368955389640297560974883123925700621325838666474234148765109135541322847806232593583325375227531396106202936891895592883768624719586452041740147621978234185364114781835827259833525323464418576360586288705839596268192672786923858852668257469730369315872583796750684258945725442463641731619407354007522984102745469527978472512912223352604542384999929180146208219541544399030766476537827236703534268288346952815752704102534864216498423446139864149542724634160844459346160915856773848417709334020345520154628070013153433507122890635399368350643157055520803793979089388162501553475785337368978400864823136800267999786555075531267216114858555755889028309436636136433158940416218620711653022256556616132552492761154949225634623664715717282068151214686023307414213916138036888325785186737214640834919020479658707555323534649099380499531698446265050695318366569434356058299761356415698113317427113592785361112511434507021138151721896820848470906847575640332912119953153739808960833659014201965110995925308026739830117246528462978685483410128052819345694333149625688466756022882952009263363448878262919477201181126713826800205647147859514243847932950405318200153096909150262896644561136516232402133420074999344409150940678220835836138723900518910919350639156857159287983734396780538598606591370640504883736891991645671406692783850713421778840021297211038245383547352019854779606665057632093859068760546727495089832375228578757155268204664285498758132378149118100690477938509879748524080083717590280701914524594112019092723050891597699389835327940393494382752286338348669265009517858464016971381383030546199041978463414977789772894638914656275724109992080410448363111610700019970364974820242187165963358455005044968743433121654017315956466401849879018174203392159697507479300121216043537354477411266670408572465627988099931923140490614705830523668654577253554732696655309064755792640049439388141298408860167835678008530195509686480697992105954865176784911141724904910220115473813104428243438794068818798616114704093937920312123653498941925392129141682027688905732565461579982755393517633787253091367805113125323447065958171216328259543993131384760414580036073326848306436797958595114595608613179117302138363771048069689741848580745987867882310064072579380299814777325592251781664844876948734276029365219118204218806941603809791335691086032507670708216783295069478723880576446959551816443110173248816883667161409531172666986072440960015551213579999581528690284565761180400198514317443609754792555755989048298270802763466872359781354934802305872352603710899708520121258663260997582645403590069518911399425922545072267465761916161810088759582632508457093250119915097370374454594366489780255513049685926222761719981694727467881990509664832604330414506442032778723487578678845422678209972538659654958055724666483559473327166476645010059224048000400571568199268720327572074649150245870587914568267801618474988059051252719299849100095542006525483254637982559071661030934964650628608318081186371751745780843994586406766170852086472691637312948640180339233055354195709680708892869487509616148163236320404266466566129770361963529141744499315256736187897776792150529051452436066324215105109532028535897933133815095235694353195550911285439186428025417472353647818801288806368457152629904010664111273460392888122496063953603886756073987884066616237032569567842090792743069360203635315203584886426747960437904340948605744329719809357322195412961129512170083970968424852371565383312088936906103795639887663731824580304016711806936246286224452403841994738802547039654972079466017882197069780252574392152088002653149269397571127936593484544690932613505652179726660967742508416876246255502402453222090588669913498365646404790025866101147909637676629849313472930194334151487755292264324723112004993248375548251669305237122886354179843633618251540636241712134363327939137164430470825510354494584718926496613403889903720542975200404192889398480012979570539968408881077690504291589660793210835741602882131277668182159961665014020616381004434056618663928819697645470376269943199875200287079358673684717991279423523229485892683040772975972039219125553272488014228188125429862435761179022614828796021654108464610959215360307587540490269649813238913696862368405129352169905553737836751497640911785113288206998965089502255644187479198732549838613826293401683015906750705810885686461352160760031992601490147141734958259597294472304970176327488724438971900038437684683083700853669963865620619399204406121471548791992475919654765545529129004590145074446480204296770406172528425805703640281225701228569578084688290523080691567812077182088457618741696325313911252363925566471955759919531584063735932337974366038871056384781624141555951628233845113799197945662999968992370168847752484983398733187053340697970332705322483790935287031021321535751090215647030561042148410221389817861900919516606315553036413908340000020434942092685831458089824340849788125763624425424043601332456239447569327331959677294038461424074755237037135303576365336396814353342084212487127449729105448228897577439771546372065694258791165330549988873471115767619565164482228862918827757848192029225435718585171254329984809076041696713031220130378203770750581873064972755021774209320261500118020646067969290594511279309271620615295362031920403594473635224110305660206911382590123145044836973931383531945162446154240380237782680448542900603462084321119293269529496596564707457276477169796945353207342741876035493084729903877145938918069081300642580213571720055295169480397780233301583081253335975284482551173162170997208361618568005254090510369312720835501349204002546771524939692978045099011942699117434157511913340537598542131376327463254338084916109989988509957230405818003878252443502162634129539037288116936434497783330839403238000283348950834777797033993322275758335576620537197279759580226336125317060726853601866160197912715023190010158284948010180800013986328873343488733380075431944878294708727628407900409143508867674060238368212809001292653267223504683008337997346714558413483131729545509540860268132948025371628747058369227260805702982178225346099652449210122527704452398821518044965882938807792531488009688572206309729327065713970113489359792304290287347456831211641524369586167374588752033955362194288518991447121361952032987401289246842657295404277634296888545379364168216061389258570973399090834027378479173942707770737838239408490570682941996399978323436132973772070811657530601884952768192805453817191559143001582626682263202970863239349265875568969595250182375634317758639255953197719760566015291189408215293770287124857573905039132532917526845709903979449660127522006000864323788215499329288996121753682415485452084228789857005300966100718808553736342796343060697171705027951075322982779673110737391061452124292183951012890944551287242406121653134200260183606800630575418279913837905319898765951292775684526762535902981828051953104425110216085122491707859822159789724738743687554666247794015413275889003156741168096953325148583980554469831672490709422844387577927380061521783450316199053593243316510917809487382520045334805452249242826437801157671011232969235922109724493348326201193579343338302535288984080145024958290556709122473706048507087837744600661788850392226185701617645720415699807382496763309164085606101882782589122137077956130907299680354174329636322873833902709552232608796862517803463943306420917042554413843234219165499552082201750361186867432697124341261338410539036886987728563253292359254621968105991696420071762746223509870729712059781834434366171389455972161878941720516005405257979226216140587903590209913973980704870196506178131315124752869363995956412296994473452872289011765585753690415627530441402626821401482741555412631392270986410533735585094519702123829865282246251731833897037021834866277676718775610174848874640388643603847521244684162546864342674117226468582536254461135416703966313632462384643931895737111805050728398626934066588777826202814974080094021512665519677815572239461057601102778810991782458523523136078314280465017790521816549758637245658219754356903387763450353926547005643924642589527868407272385687271474182056778049166755394879344612594572292656748155449378827211985514927652078487545968966086757205880486919354468585711898208867170749239732172117966838374777128624169492258053290983239452351095273408229140283749422864887176645047945367022863767715779751025224615341127701848405376054673856769852820452701494720259648441294189963049029961387475527619677743896472899076835550171241306360396103640758549350016859739077988025692548629156146325810552097253546366083806391257383203623903508541945713532705015765629425238533797290304931599217437988564910231062238690744143537640127821929060076305282027350590112552062817941440369929837918192500614460419275008697222958429425292684958687833567324015722749747463573188017704426669445030801077448560701914241787226303415789221557350384787822913739655068890515311729071089104562795286428455090164986046510528852836899897818594481293661625381207994025733401219260521081839675429358692398001210104398176108911533099192668619894644106537211536578379241083781300102117926295987348407064402442229513281818155099970792206804341029726896023411728463665923852598951287303899921441296617139509936435271002337513019719044506700309945633167465837265103492432709240218003520483134459367816834271164606827358806853897942184433787563362816730210186771616270950586136060836081064182569390470474697364569337126807502372560392563539515794773438853926037649798149948550915253125222972577020840307024420814357132485926184931743682847807989498959004202431749157865232823630276450173297128692753390615075771937100609485754729704990450142593837297493197834810693367425893279582717330611565380101815911692230055816202945631439034577446477152910614738362708131895432669803115260779064432908234597784704497424676766717563600092576721894067790455455314212729016533955740758883880197713417361824673336111657783505490678659489674299226316121132913880391948105564755114202071721222993680877217034772540569278832415466869420452445147019284344033501429829247313812457323808903561012252489315033134713928273689725177870599788442408229194064719995455729933851531227564557004160748125275152957081245073917413620332972576048616650659243160573735263720067803083058963370276920115870472859183952765399943965123921078258072364893169648841901008381683515813748225007612295813906273820382401449863480663835741600843186901774472601480039907754592067000002973971603631071856679896656161217032053702331636808079527195828421995133188908945514720925305831935722276133805019599797061874575956747694518457295843821573181987055793812550058172595997279247777219982559307624628064070135160882469586670224912016045192020672932341583622752786123121980435423257718203249358937966267349329562169922394999941224718875645658800040264983655918106191061800437406725127848862256474658210540039168277889514931255125598913251798776429768105425129968566990770891975536085960424453125061302624240817038955830614002624865662318436118603522218380705100798120962358322926368841896333606791492651753041316691890356753623497329879867387362014653161690932948986119553344453276734253988918960496135652606480200552230841430086149330660562600286244246283403905460069799897416587830019699114622117629596617765645203646608970179044753966508889043120229693365447799134981068479241730253028797580939361500156207237559934055668355174440287565825284595338817247124213936408890913665001407366632992682683951260488786147885262598245448939249773985016848804488470244551783345232358730068556642627171157937717261744780327343552241078471449341403816393816971928588828662357550947347908209361255784588306273615734665847642673599841652063676088611081781627407250169436575776223969986932864619366223750151351957835981512333240102528525135824150338730450737884349130373220159329256256898111457873587296197842475111267044566842644068919867985138591039597811160913879684949299389020090740387072554528975211414740568569879375579763229857698677393365780925564938026084880637184743716988373919667244216967602563955285700533895056027645090910008911518297519449892168303834487661348522977661367188215484339413682561698567151331384938135528432380303335380685611477228481411061746527129801779613667929077712126468727448617698277075314263209819007711034563080707254996790702482150828045651234316564895560829575750479649324967482310540352997146923795472749185800628969504637426426013206929198748863396967354059066107595088056029806919862533563140411979882317219251141215019760508792559985345086824822397032436784432605164822482063597754399340482881698207524849818505921540499639513079246877621919244612310540582912887816874345907979453553479716245979268825398042681772725183611692293487539755838109680089640164999590573903739508115813301055292368694291192020940170842490271701518387161184276447458544077109385112960622448095150024299369750292853129398516947704760998586853522207123776576877465453295660048240495734373508607324169770435215512544394597636735968148985947928569694408275054053025752891429384156312196324710498420049511773501291816636482455256128235447588765976222290392025520884412487979261492589578867493562815320327299885256144926370092182360079464391974656489514579766820551515828674623967884883940153509990935673097907294831782581152834971112707661034567907950955818404232507979658365922669212498108774592980356953157271729219991113034622121653033167650183691357355987374322566752486270793559183541637522949564009399091152253848287372633872915652183204984178075114417553933452532698080091347085218815376682201994932048494444829086622439185507228203945670244595788175273391743771329563870053660981763723942393500211948728382691790457793900956962421927556878039863615459860542377142041903413928866074401226992199718103290132943661469390501756957228795378124722421446660105318854996983734999292686712018358766228520457480257746187606168406051676890662793255628119174503020747160935918298299610492982715442825206969410998917299971739853087414800325584213980808145076822695451340145901930697631947305834104516387879665498618937075625634239153374574214295608180401090339861128541074626397448458713615765796498854043446851801276604131840978874870200990554338842499435963551745501204928838707609525046079908032811642459724654123525102677634893311146957959171254733840693616289534685871868827794327540639351539907405719895547518603488578261520526141811061359847611941175739878240166437640517140223365985982628331412764809621615311698506809409889475579282849557985151317675525544840824338641575071764210347438770984264172143449447703640992550637891139282411245937050376554927196694560794610435058403163433105585041768643001976898739927225975930813999315126813652540857473795322161985335721912841206863142058710975980314547368284047200546784769288927891723564890098702302607428433014167309237133611001737230330464862451696117163759587087884726433089083315478166003476995123558540806364322692571794628558443429493287136239052035595904810630304822058439230746490390561227966893757273917642064129950566874180719438346263068788327315688202740439734696878147205930418880077887583425951193563756620367534226660588521903415465339520936293015636990853696415160720011145225477522487632219140361674324753608379054215039054750397184656522971386472913390100162695603868433786653207592678980780143706945638139854208920131864383491541608300872547150865918311455541097848893387069768754989947031049223313772972273224570098868389122746183135319446853667025307800645801073868301134987191314868255716382324229444821130050390967816362165167693174544413916687557312997422532049057521706667789246801509177783584893807503915447198079918465788092819837996224779917974410921686748820564472780877363044285034781773087001880953799123828991006906200072033528703924294120229988745169466479855657195481903751093075146068671738156976914990371544155142891822637688425345120873191179665828543384201430446564561762573680261242767327375689371173167933042882040896258018811495330848132705016891684783865471929884688919766079934166294826970909169466170354729418435763826124805571817332444345309243400840454524965780742986591235478847344474697701356947773436508045645233975940091310651105625762638570858793382707656956514782183627490707062980746689619788975792934072887521898834148112696040751622436844847345839743796381970937769127614550975502526251676494163594909407762281461483306919742740512497218515766817951036257724863286379379419704398861355212886037814868213647307618753809871819215433268075763269907572956479377080013121647445008137976722521059973565198446462444439996068741307233353405147688638191223140213638513492407951725749680225510269668554774406198096300212275017439842623564541070065373045233227232092805115844484760487764988282376629314120400601871987062276973206272282466121015389230361683910654258651187709564741617193008639596397618549261538578045563198313218706787559805682984781088349357727868944107657010430264697463516505145706432673155763250630295536250629021465704243204629685264047493433475145824703521313491490921353581020951573306688927635183700857889900453679443205989340043029966139392491871471657111266210175450772364020546465674552967883583560361930252156708690054701805638097749073398185450094807869814441157315522700838875597282267737541468288068772401232554477888091976192643432742831487496161871549487018129817149295794094594582853004658908021376947915552745198981842414388465671858501699678164717834318956438075095972142292266691993762099232986889430533648040749441196511995903742508659425058673253287163085916210510446083731808989589412823803842618502040780624492762450945494421871592296420742826318678076752915243391033522056689019273852193586723129590316345395283830700470979983945090967420517141070815123176459319355524279069767359602603999446872021409872689003582445485252413325046314194487886088148507350903523539101602912881556945798481259122952008063862955776650991551981978633438191514192430408964742448777762317205386334304578075522878893734817078964977669431547621660323967111313494727622403366791186734633208468902624202291902998724179747880483113801335806078972573455658459721850483500478783237095933282312319921384218758610435764938555698119685658750963838964196405240331328595932746933984262328425125754227796454521272904443635651143813981911799972623381624774338996031466642272264404185677046528555647888680711445742292577526314874717519666537788982023786401396384984158349608273395328883942346279873991868149741968270825265323557203631242488909845923277572266172253585878228474610010600080450957802888584717483266945428246511775395852772863858100686450555714547950523614532100960991336347419271538238043626634765889089469959766029637881959689950401115210296805081125313919834988743075125750909498734617227961062379769438585172989915202881890508243897761535868774252790782656367543648804534695495529470202751222452636696699679751806443546891116774225437993265749596861287656520352169639882691469326039185681722744944273896962463962607622092683417279450779396143349808470718779236392616223041307446289082769898207198583576827976693635967250964831087827038078569462235925285359198477919482673898631767721944506757024875941917080079770750349648665743123420404560846058595123351578721474455622495733360325287818977267721035093187645811823240339418065533625275081862936763925985434812367840241222760914024468486105252025361770196555738688559808993344219279113447249704654290201416245615658953935152122300581420195212819905856563865021799796192994329079992596497244671867426547338958863893445726310099282389955124468242433572714206505183828594862654429134515350803483617176357773489166751315728877442503917788777975473675687974090803429721140247140214719364488595544834545673397106168158259693230719938032584511961576378267723599330717585846316529968783873126947238347714561332781811468440041805516874642271410770555026891101322194312919892641271698252096527805123675562345032757851536551927151010466818408318833861999489793954465567549685338280004077900583578508512387578835527853639068514084644529287135237615754191233785471182464242762827854728164255478236172703526076208468508111083348595443191491653816905572117909823369015581267898485980692558089689818758954209459387757971518939141329288065851877138821900428624649687730990692116233060453153523778226696154978919872750091102293606219347967793168325182642643188361258092292436387648235872952999066812128529244056675752963798437730161111697537613293728184256403019586670814165228892611803970011111488024797856553684751095146900459212681934436099843358961485295008945072879435658565678180589480594454903646373310915831758653826453650851681743037290483592897413880814660133716279136959856351807234054104127874962479797915839792042987603805471920846341470322843019272979462111819114391612963534175908485321166727310986783419600919565642761215874756957842287999342118125376126423244471947712458044771405586947990796209773985468066340669949114426096437377292488531790906568013471843732450956909490546453778229446346384904048711742815970291994954157032274051354460718389077131752364364871139258894740286451507763472689305903397438394462432919186558626401483081313875340857919357700201957806942230062070602210285195392155996283594171803371287823144694975306793098130824407395607140886063587703335413929827507583562681982248168850393737610991790112852969122043603707445849500226695388748617520314208239288574691209292676644780182846544172892478007090807779586362030216277185458643648108441108233271899939838507312460944408259123443714101804142569678823578958359027259035457720114942997765219295326983850798966474040127065095032358985734143381933942021960540497965143358327919898586124996509989437103850821450202560319704754274366683952346761893265909218759609416037322503305801394598894914279083643733716368959458770274618481116325937193410552928426827991422693580585503943708916768623640908986915833938664758400368704816222053922978609618891692811077299829099974738594821817343800490907893019991061213723023453624324742728025979612617086624679537727746398824519122711615071476886712698595110777020061534928259013121439586984311600792932398927287661762543027961700450199106003260433413319312873475183708445568829425595515320021429726345117094192874744378086905980840218279807038123011426148150047587630925025317464834500998171595354267676939222568527168947378216148969846198441964330408460059575007643980935656937062708450636347552572715051495231892782502062983322880399642011248562293172265095243017517810701199325529930025828533104294929110661607848542372388133002030845499733387047146406442029175672845195197858539350041013612619763457304710625257674817129521704212270240011827764936320481651417808143109979332198577861038541251545317693606048075687396984521386886033112797916295115268743997719780936564948551289780991208241229621747103496705309402227553881748681661850061404967329669306048436803243530414154297307781975454564491702067236528720494602800553230783172786947832337357564848243616754828420358907963744471579327552536707004120052978621555399817234917800532963159981601249281044617121338166319838719153005147012685945068872176634751635738495148281569934637147034403354700836785788972518882488815534325769612465808144738841276739181686383899025612375900888295555314102324329559090480219843850588795126156884439404905129324789984590350390500880996895916298930959640371411650821564119300662713537022834380182966356636734486893131019774641839235594486239858228665341885912136778028201166422678579631593157306035431595191222759875796995154235738993127444107541666157424181038475800686154680147382901110058137404371337013852561383175575562079827751745358711875368473925778690079399891791308781720790834160554538195599514387309868795633467652494452201178621850471851527175673537987019217792671357565301710601219608305914758571032045054790471056094547277144730259294990846399107573186486177855677548657835452085322132868932600123161596857319749480874814426048225286328719464272984360577504720834979716439261630400138412379238530399399149029324657865975871753061290353120109670410729811619898777048246740191337553738112883425200768380323542793840161073508148687337248164203323359604908334430646212918530925249307177111057852410707265532190532562849207080719793477400098012432367009812229408945496234495243335369130712912277724212504679116101143460464460377574190385407558815067065244595747763853213547313790909313505191599659122192253958894047533731630497317321976614794104781683817293164443047524240522169096901504966148017339291416111687158141983799346049461443875733559424234787495072305269782722481110121592700518858968345993040735277163546375563772923850333165657728374356559389755967728949504437193219516759251639827810560634414491436481793265139413590682254898412475493427696311071488129114942154044966695692157146228042122441300345648281779892189038838966389406623835578003122215262755363009511384991699505264345839405328054229450381008052205331664234710849542733436837223936430320751129304707370936445116020384613298692219784260999188963735852285066611845231975896380522710472401120200713905897671725722674710066238268153040944259707511842723212625072882252303082813488858643162296368075282181982652006985660396249759312627648774988728369693557688832889917374860940173709586827685019694522823113676769493525888417933158229586090589925961611093872629577365689015832302416812500856409272865942539521634339963134276109568962674128171426496739105795847683365171580025757569503700570972600308842616276525252286709562546665451839013514979264309822243808739425722628623017799498858232987548008728984058921939926959593668741372473035335541678598713686778227964196186144149829776811466051747026614484331309857796174661424138834612823628868769429499504453496861730571985294063051493875304376866855533871446355737144694945898894326126189651528900102399007082290020762540920271163481424527752635829461608121465910750755569628332746824782852574496714809385155490600549441558364224381309617415541009703586685555831342661664762138172275917932281654242269353108135295289416648532650618487108841228255303923383680839174499044541530851701206231901230191502014428774724953550422397088537780489133445834692298495139291874493676629380019826105909220320229861782949070774810227864848272391142809536136725488718417038080677160731977923863554297827111493956821750354416231282152598169475598647027607230663183982819633026890131243143234648992489069563221130397638959521570217685622516775174590352571786578757069381422994679490147580856276652958794646047408788153768432829569519178478792506756247654760140432193129356264037334239468314284947607767322446093370627533046628313915585683274857097559380921175439455895155981868527066636959463811128054799261926894149282863683571100160433735154762366060203344850595964543437489950443258654575417616348536332207478684161553638766860130287751147725912539743750101538595368035078243052377531774267190545604171813868749452096491259015716065060218882815183969392086172662530482547987709419616358107809406978572641963279350545255624104892908023815731683527599726597526328524649025199323368554187981141938611618235624763525532876859847987059053560139795897640169645902249654151986862752459228471762933421096821711761471966249483709814364817673161814012051716250830189658596635904393109195237661119285353227842901767616003295309247819703228440918623848982912871128162265508787701826293520619533114801846774355115980384056544710740146068560715624598576431319467636087822540179201100259618531278327508585838238580369706025451555277715857337152659224070442798827480186963609716029864534428369047943633246273663029468927295228926063617967905932442708779638847687749629496217569034996778608565327659669204162350451022340345353848247218473602840916153715157824830943085662359177253714242366141298712703921637699669633562074039175654989628156580697482373745804614416426729268616841247382335272637840221829833941302928027109906063536630749088298654541810017009683260214457551881994054960113947877533092062077225434235284707621426093467104106221949429937009867512233876891493630315869845015734646072947105170641746989722548776075291183635694507628054999741684268296890588641661442855347744264495330422787613598797434968350765042087320750278500706359950576240465392122428813500658422634219118007414105575443395657621592105762496310522394535181376903938998954941771780252134333917641860826045698236545989976418628180851555820927666207302928195542415685869484313387024989812546064139094313125650068846822604021244451310951161044739539625968764924015504834793403617616232787962541654245334622747506199394853067222466130099623561732451347971663453595659341776016040459250996562472545741830398194893094683819175856202249207715097700724450096888006030230767473171734481218497991470057473665396883305381996743397238467881058225891812880460331687566106308370756321453329036500119127757374074608108887719121681999606725291380085813501755752469056040435522937362722006694765343435419371195271850683735834670205593029523409702557594746437196826268957518661621628511037420419698834513132931878393836859294889947337605065967365375371988953137136002018680627337094534135196715252957715974413798279534351797205943710321892809883174089557233347799164889186101724939000715683600877655859882594501714841446011301647699261891764783090105587199088077905400415466540425352101476194081604123771355594849789294409713831195779318563246660358810869930505059669284093045648422187220837484244898652833081790891333347094009396995975048219524243023182600952810947555470015259271242562674554052867069638445978558769627078215670335824682104889063135599614178099358401006298188047042072423307387162516427795459517148616572642192142327785360811675984432672179873386364855460004661677665456884432645880823121094102201787646431669063712685658760836749563261105807436572399640464504493837325025183900892450970081344993539310422578104949385047847624861314105200992123950219218301242201449057467816173195140039454246935435616687486553521094115855493606593742783363360515675027398708529673190497480920412745628460934030212088427399620597678671372378063138120862399540952951392894603722648572677168808890675062668233704932445272720773711062510448369441217169025286980520526245949036544713954335541900640673842942914782097418977028026353068077584703299642070946703609404885936013130315381500969055252297495232604353174969617466702073828711477972590248391055797699750883411789727744990933051043835953544807573627508230241119822376638528691915316658793525807754206844923146394074186899030490303920255064252922947965571773903232216339336596854788184198731131727380380136866099033053100364933700202339911808236502012462071958887470147982785909894738838300441928722148829106460519672718037803312775480087818710970361500620592744629937981093054489872789078527891569907036832660001716228186432882975319692500192597384626057851714209030382604771646849142867484843825615768296296314840147773362851210304818173454172806726500601377017474116406829664680357840344151002819123908102250766533457630197318687869682420986245882303194645310426063178851264842134687486345625403618000873646076876742249502001821812110518893282583465917054233600708998387624986299528991679549792856738917667088982734044583863039467865351846545708477957975931907940979787783835641311689003297623901792988832781660917397309181149146590032338918812865064769613727371470959807268170035850502690493294172917026484600816238851906020492779219018978257388662190625669295300067719289294134656464607793305288560111680357182746607807051634305439581495817555479678810675351772257546666168768216521903828802091033377236330918019253560502491656158170349163746677436375569210113167650219387004985569152762379461049052723853514590158450136782158053935468737604776150620048888408128280212286853209187372417547521891960502331683510062931072819168792084190256246299304843233999208005314895080519852430603463906689742903086747418495079188027498105071412634788298066605232698976214573321353358303623325158204902379802188407131234256437316980777151679242406332713832115344531841207725362635957579056249963068162362713030063022660610347087447336711128535056878940015349835098233492190029256956245378100559237198620639274766846266601838282721024148377172437284783836251143065503546212819664078542242581989850402583571025820696094608314247668804042610493628548216934912988683558761935550048573420815613916691263840390152499115719291743843327322935007167111281285949108209870449765310137648555043310576859566156315934447425573901252907064221814080248996390841552638249429590796631296891677695457451223873434973597631446453047136944146653353775216707063446772099659690631898751703019966374795369749683809830432230348680565012673516362756505148206620368998751919394641171668018500277387373279532427444237130711722549200655521791406917307908373150257153928561685012185997179544363812969833066160235356865702696778258513355660723381330682073936571318377600225254825842722285735794024524489055873977815082587302497992532257185314211839951876746186563341416085351043221273435005948094342795013182326493425979858851231585736535641285890973281836499943238504022902658069840356778998161280297058723812630415134594043465747516233568238056830599381993509805623317311517140504776783770069486615176398751857647489537299483838977300078789981720385912298240191958023759729385040752600738681939033351426561377853276381580520319637730011068365686372062002019612204296717838326610329907818083484293597334747394177316088001676767097850714568618379021876852719951784120719311201328954250233046301867467772529040725006490205258632422705515998752924465769058629903455552663565661881062849681573445363336853990660156265004367598569574940757091233928633237661840715631447646622167364730426683810232604438175525660950564076819590604852665437153772090613937521703652080444060809924654386115999156522828098871013141539496581919075178888001179361566192817840879382858918772145731111780266141934613491511527580220587424782916153128557666677669838636601410706002660278206295280382916831180165201345958125225110193566324646526892430394707307383613954794389077031818800702323243373287693926455681983241937780937149156091752404239498869950315947478411979983502579761069117087151224814416439509225959728375542581562490343922431907476652215235550290955938190011144638234866342275688102405579904273691464098615941135746389816599280414067721588660260009011342235902330904105742104799963260552514236335314900477646204984412153666311293025776584866991230116351374439853564665747925975326990261589066815934475988675227541477651136304561981534946313494438456373759507534745737108479032771432313240881805829405089481864875202683100748381592492071509397664505897561734815146723148352732944350932036417049599456682147151182934790617189218881136303267739697558188615062439616664012315238662119479082958664214950078658467015855083907601070953347889485366756434654382507537010870551102253817153890282679358221172929433556962006257950605807042218516351403446081572833280646865461754115450051899734715948536463386941695366034150719496429892433587791323318456032310746248927895261022492847644188730116180589189465750609494092519927932364320578833331198275663915395767856963452273220641732602573136106590302909208117793750632045023774521104030728045384412911923287787331218450393387494900296357020205065640226999243153599737262116710378735921954283911139579107420368637159044514275184567998984035485199723232503776529166514843904385716841226042618110311755975227170900498506972571630647143916195438200667963550455869386974316201246978379579122852963980274678180561227084185929915947513806575476673138771445700563538834548583210405213434242979509920416228544383707780813731214225926067413946606500214993548825711763234835622208762860970975028814329303366937503682566514992623328122030997311859867503832386768039423467312160681932142781528995329957248921527072487118312382709826451035601708505703661954019389235677677958824720088843281781557804398304681653205356514029940626145042702950781018272689713058841257206455389296602267889278088958519164111356207467689115128369400862436753998677872678306289089437993897919018917063842084421412798249601719258535116966850951756857337139906893910458352874179673745644088876074454136468441675381315122009896382118414358278641771301514261101329051245580353248968223749473496194710783336249477020566080554482349775391949679993833005619883580513692200214569724209401847533505380265622772905194039123694466637299163332775765839893256276206991252358250092526367634360947027922226073664941762121781526276454057447528199583183230463833046145199713715915254805356216699293025429769488867727733550737921344451522906022156277606118180644885001739116599382099066973434425469174143816466978388158412428820630522202298088284816654422343505944959180714549962866858008846440949418748420900570430732731721354527999085931086185456596608671858508070415528592354578672836659966028454450929738595520517553830946107908424705795198628055222035081198932425845210156729731963669781745828599380788247236725055144217093111746402666590833755935845832600665194786484932894554720166109600216277285910406270153776067553351381787357804502175571866344839502109036107364897823320209346149383624004377075891681691603331304121832523372960939195137050618608118161790655534961493564062745091070375132579210172517230634584349306878919493978809469842107801709151310813753355517318208384935191405222795855371154469141091805656799129539270222018035052412680333352727235529658439874368470594157285452538509614185723852868166536428090101811436727476987584295174078212122997121967030220960447389936399140030054285276851526614673732380948913025184091384563596333868256069564280988315550111393703110623037942867307249190951501253231079196968338832100756140817966233009425413208071136725609180167509713653757676950856907005227280822686990751067676038304538202912663056791423225208182259434409777620754697255815171293083970124035084233555964176423342126765671941275562145692205863637132215529794120221740598614318173223271109047397666998738504080296553673649046485382456521879401591618038463437870385574697048360311500586756627700797504916545970168990999529305897584150082780734117804688412701506811855597476849078919343684878865619423505566846972704528934404622993637180056254521087283884842792851167516142530687073325699524861110659403094504326618345660468990519054366050487684768421974049981070282304770759478272523212471628805740017559227051128184696561059159706699644444786259264446873598990165536154650745137467581910315541797912213877158588195238152444922660663535687346081014087871587969621398689197808882047120286487569123843712016182538480254357717622819080718049701312749582619683059740947620253452700486857893101749832135769496181245748109615476377870540245253971108705435083769119574817623558500911465297869060361885876675808722814942021448002199291924468762932151281609863793174068464418232002064971825099342779816985196906461587790098390393028275337028182383299179687093966008924878957248051679537959806277398378972484732579331370697817051867727524509260672629144764026623372498075611571785493941311592690413177907836311266513123055158141358739793666103569450224877763325054010172117900700043723132010179516054399011177563368511306562875713138154863660250948811625701839723861808437057082711091238883742141569800280694264995725780580942399697900328324567196120699738657967642755596737781530375279393851680857917692485981599434775995165154922953207199008750903270644515501027274038613102169165876988487786615232649730249844644744256228417579092298920396061752757636121735380274424384056442140197548272325494174666243438950666213304946008766618860502265725431070925780301841720959536001903041793268910738695149114123144556832668025416942615991198491458246060844718746202236748333667303294915029273210977584890543402016327131812477191531533364297235070724415395833123073088982735037063908670842386640275321757289622031291575797845649064870074522539718794105558233085752083608039851113830517861718482798064823995225775525373234135609594508682870195460941943251165074441571691304713069905007951331143096314092800288309390766436669720274808982683703353596525383654894628010933887807835675880102501709410580420776081279730953502346727806066658380518151089571788821524965248197418022461052746151430550322481861684622113031512557797325940339935633216298682399690594198098440561187826558665115982040991677217663658148375221297814046612793181713959107763382596088933203553654988215945760705469449071835314945006530587041038327577802718489762389772227352683116032922245269328563096677440939430777367142038492828966291469382116082205179109992524754850030951626397402401603953282044972814961831660022324350068645184116967127988222465890018017586384597743548193567399122249872684655431442320729779002698100564038153453909477685751922903325712299824978553199813026845865305097519838438872868999472491531960932609092499318187572347851834453381230721791710724705552606795802368926060277868679659659644117056260017483807253770646884703911206415689813416015873655731536624826956377276587001463436837915740665979897969926430764454287765877418391734975417114697168449147204386303550926569175269312222520431645268124552620401717167722136970800950917058923913870092681887963541020747517483378112208830559357307703890719564462800064433432028227790356374228395763198358843824146105395027338504463819572786404861778417393182486637029278082342598622479911485700656875397941121456793951318951967799079157294473392890658721328084171285872965835942730640347697590216031033414954692708948096471904602698215826611395821778006059604441367286394618040643779651306579465826200698609952994248189668251759933261822030787152002440821991447334452372443732587182512684303960150718218584108501616342558333242212809478305765188642656663196647606643172554601740882673751825114524405275784795323029472979194091429809314702826129155292114867470144788848768486218872389184458655360826557810393861231038374511277735109660011067957570229470811263712589512272910355598292449290255234021938836250967558910977056445280984945803560116280720107533673030420531574979220988469949219389307272732021349574154650667953127747961252360426708767356773908291427053114441286211256279648795891117419010901566474713171617481573813084201147129108460921595790196017732075549320343390245286893150370136058678487746299474120466876194746762654342570247651641924193902129037803749106509487218527514066640680383313888133543525845658499535655407031535681431404160335114809998877242826702455517159352496443968816731897522905749567441924826128172731556094603376988127813997380731973312346844773192825611980928367497752606454998766623266115128364145983934187187473664959380557705032748819063517139806376709646385410070783737913914954017090722412464102350756147384103948845219381566959233079819851018452816460762127589607899534771846476724933038055848423756858177421458711483471674340219467627562868557748687501344850962446875033499916661756460341863803702261383419708628874036224692259706268855165508797001711847898555603173123405486962854538535829284134315536980653906142837666585355789582267452049383378260146162872750345855661302934204244199658469905374314947464706164330110452832907190396413284387582390333668859129428297871579964705514250596963712485999510806732526030278075447645222731400244646241667145210879247944538153732392259683512595899924109087662784796525744293576483149566659579135801696328630864145726656298757153070888732287775785284364138400781601929654564764517680773889543113063017128308247658250342922415252304402049446637642192719532351480479030473770275144348774203380412039537661481656835623393952336773070166170290537117269069419592538753517743319263693690020149386033063281583390104668483431921206425902074940811338311051998949095715048278025178265914930980350873483478416849423781189077407910580239497673987397398806009550442238981601233841786487781811201917430275480778419772756084543702904199428508482915827229713313956916192589867420742780461884604109543521590014808902592066539329753932285804251896677006685860590991549780982753345310604338084278625900997852584838229472883816722409324623558717076340659123472021009310005775406885412931261652364629586413047562263071863835094366448517916366330967891027800469285879889003326633992717688829054077490599133124969731229631379998861476605309632717335749444598389579531607279998992875135639264909687204319111602333053118295384573657418140898711680118195469475280291741048101409644310811303864357005570957968212193238594534342110470443247826224426944184349234241768829570488404926859728410427294709551071068394346179362429469209622051922815686791173897851931275851437416158497855652966138789858251213371737085654927755106303855443527518008003891120176421321580494223237446976412237172309086521542748483575574412004266258553964043057625523535445877492535448374872259965890563785120616273903361707927876084371755687362123808459254740191693485140876423208520074080625915834612026015660459727042682290240830485909456092646199188435352533295156129745096200489021163055466346650942902774482827477771933994608954920351460652880798078943129544398543789048921619178203579091244704791257694210824437763558540993476774591221766847665701908749059765082717393611038045924859903971339601348360782729384575813155116454792932870960372634107648571904301293034384465493865006886623257010518845638352053597685988758805974995673793778846990425392248786126904528820425893730328371842084356064538060339894304670332831050074539403613314706316173405162179278625103036964966275184912445271540921496527087716387462398599823807321534298291905939519559625984646212190115749659126079300173982528148740553828246328469764524418322560746246948067095715636000878085720272526929787362710813309590447999838808855485509751852040076969504299422425223341600272878189680555547995468796571169913106928321481737835696484334869164332111782386079067817895411913443472531569598299725799970843590271251780888490879206216295274994218538200224155373560924082770443466115733746379438371850977268681347403136023363713173792949322802305322870462060867154217364853272054359212510338986281488024368840989772187226970381493496755794386753685166816776253008918229327354945769040542669607244136624521316181094650161431937193988807116987022640251753311392274898010844106446092094096526811683179276979044386188032964043433520610906604776158231393908190299684620216670245335967587322321663415831227701748609271422920131442794315904082631863797150912057970838040503297010650898039981576049299067912989844678264837305474473244804170464758345630039117748023007579774208935768736587981068523934969907816650006406106924645135370938600523887863657979176335236329350959478112269893671589168504433824731224501785131194390573456725001143018382948077327004946440239864595805955979263888110754013409210870023297634223442176294415739016875852424390042138551481980656419782184669364918375372716016766617013692723463261465490696901117710847639299709658372351188295693214144157347754965008636676357805252773316056196534751843324077869240553501434177543389942013609714237982179809103153149667600260925934528386597695719238443214040430590591643164117210055861729998293501197943095217382383413942786743937177305835954767633845046895949584045812880090540987662386058954761985435215822640554042132956293362910340173945631217704536536487586296693840582929910684501169460094434274466314476479723276064796465550727513101615618241434924611941836162214258635367465110511094436462282720112714353912659166675909654765086248163715465754262594761590512463292779690226205981279733140589844807260838197016176965040053853475908247030951433912104177937757692447599855706850538758646024498185603478029137884349018501853943737093501436551151885276511340815520994041106732493883065311945508835816853290627088760469622517698809561809007526074879097292074421571474019025329108775479269969805298845247415141273863288297035406848182758529186155380169415518527854587165057358665560426570708837894708051800496429036016440497804546090268046746393917640334166166671047360086280666703153596716522564205721251946026107367750572734927186184746284859980911914730582316785649711506367697156608522606275073483218405108947933124164584687785001794227452992971255273635925002264674978090582270146245645030870032283272180149041395767863733596864697448980191767771664986917903846683204585074446845234025523161660166707503160522683558907201829244221474268993629918719372687786002077314760728441210211683284380158764211956917307933479487519812218745172900700037070599249183106411729664608063057918360135605869341989409525766829946854118242026446007113801582338418239584422170304587090589319278390284425843794250049876950248773132661484213030910449238329240226108289234780180699064775616864845482177895726398570126574064459503811099826179121658977113090460629526361344668338353225904414111177513697026421543598777125045316022465207619430596253889639749011174744433970028173634044782390231687570471375056216199452200345432776572675056841181309286480537177352260222067229290418612198819887762749453523623079073805644347932939410197369689021444323644859691993235031599076870778036915454440253546960202534004186366842737220635657358268687410866687423480435930623358753782722189586984872851988895436140671044702262222843332619057742699066603480707595596921784938661032990715739107800206683812603559730634382329381866202374214147648949027751331031103447812238688705377617695952691451722764379269341647007193173774779346085666173626713178235247791433078896567061212504636003862153658635999556840218655203870551321835274532254197490035009202493518761166888184108703355032015613751383830259653474620145204100068077770926455315808058568079500497942816499664382118445062356700401970433271884207815931182339784962557529148586598687286824402762714755149318553556133648749802084432420214461547407397288463162666824190319847407100758180303430842755158201055622678989185839552029586227567420029787683643592020537995420911358251870829698349791342351917172616496514045112139248770859044773637953928989665332120381012040399341508409556076269253307403241391117740902171204593091057780686122528735772080984088947949591509031338833226675431603911342105583208394672048909689011620944135436250440643691343812074970272657014524936649848476533082403362934223179632172626730129969926904958880895655838968417187707058419788881426155954178713991930052917475121520913502933871429935025282288666098435283613439162728862977355971425932038407564539897874839943975949201721840075949327629190452625015867250882351022155711697328630630282788337911023593295807098493421837119769850219825125480050658346357539492076498705984373155727546718685789516151502851229334851475266247836452224370352096608032909399700940230916376238457478700039918825506215391581309990511741097370117354870741705978144756528583996589488794277417741345429075044133708152031855741840856009647934573847535658752338529979517166245599424743722274222819404221959520622704096522586088227117171239084301132117166200145452755899879266411706773639719047397622399540737967651486560881968510896760970569215482510900328227957584561323801251625595725969635339842153572825907317664001745554953916797525531880299690133293530956456647854879708554590355982816488825048654749072205121121285371496171682723632068559921318671249837573791540219652092147169232932568189191769353565442129483166185586428605307496068054408460135530951862672659762993134234813925278611099186753440616098695684670134507706494334105697114620373565555873781897287776801382252085226708642229213896592038186780276941017685485889978367437610027311796186332162747058368700825284797626934199729770597672773332541776167242461533338935580190129033493328391620615858514147125789640405887684930707288025659715584678004617959117327499589268821697397175552544291082895826896685264871317298065477631226429858320975203805928032659446299109991786878657053120816659795366093762148268986012480870569511770719407501030531318258469492645862512178142992076180343401381134112164398021590895353076099532815547846527201162886348996596069675193904855574619715777113367420488021418734641499094180407962901409563729802620903426605001733317134848502075784260619947184502098327488885021585638061361240656285578935040277915303752331228618939779919308158388064205335886502266096902935076874881610569359084870165484429347775843484981540673775646367866038095919263163004925231193093517283044491878810018486874107362688829942265087336913976021275700053243676349973816811016502316702569655195885880943014791896906302565598155782738683138661345551614920958722274553510910712394015984267664133351743399065743883518508457530201853833188487406666536398917178286415924973044375393558846510364073809592486204618297051827591261304234100103352052608552361845233223039549725618143576594202429666023498841602967443573879806060543539399624603138230804363093026506137254259525871576598394175721236191414173529366188396976968107435920798684981685734256538083333699115830200592481809817987418376165394144386530043788112308571724800839995002478944923912109759638705444209548405840333725970721112295606121089933622189916884263787005493987798161954970150860709523346932090157902641182719847583023784518527284998157163546076721399915413226569841059792344667075184094130604584302592428863068899014844961052282807226491805451223043660104376351238796063045170619808870325212395232594224419391585059722992784237858989278600425076179649527454783430702409853483511224518025735300923992512496684276187954144231992742977529193551170452463809916402304025349799660423402166150775169539087865257362596050711791193182613314205431967664904837884160873382287211925181938114282007797402211976104721438154357280491181057552730971684426696656259333524496511107884146291932347408270883845673665751815155202207271264189281898918489931527419585060372793691335205692704635169782967811877173919859251560346807546107269028763072311862089278793903536395681138573824770584243405862746840247737006773948949046250276086157385039878243377059603317170389082750034804357203658900662042165130115332141945651828185547696084012546602022239990501754937248472528128031058016574379302774750625223420475184155525274139295257447216697981260569234636782016416154074343705779437029238333507242263095375276269711252588744292928448304506651233750854210432578604495769227487646917421472214266387904848401068745263902720319665820871439498952829017800348769484893671406375805049238969567952128675125602030554296556785295056197633896497252566665681499830133999287230210286917499160892425571362627699321548501560829761608645345420005049724812600260612047034317155789319854428169732889841607025749293105207251335396599228417713220818928325572575451165015019139214015007378976950647639562231925123145563728823056951115334354850222670659469619182898597079401291335643809954081799748877656403182020801422563813305677338838114936409672997070996014702744076537819187053035306203326860108479697617285199989330939426412011550527345587670009773199317012362302221848856127149364417336440913068056859504890459513255666930023910652131471754639327286275708605274316646808947707132186930406436619747527383501542536762352234680931161443800614569759535213978250431145800137368568391840765404376755914335536676830055887981804429195746226570471411152478291860604446251539071854251040652200525542750288230414226817204489870900699294372365471149313644703736905000345268517795581533347487191886753319802799436202554080950344591523340028311781809630095162241306508046856735236122402493955165468396402165286202197433877742061058410849510419124645895974537058543338236915871960089334040667702048394355778889653118532281145611928740629441067352471146363732427171017454581000251785659144210931883383478674633315707898124132083241881179770136940558235569145467747185587502476400890530597979841933066420977718227788383495181526779798080219071660135100666150606235505675229139532967846446414128711119864080424135731308945122931037870207977026077333972489206969724882431458683002896084748969432859422025152464855399706038382713626590552014775102547573265069695410339719140544021134507225215756682294525910815999818121857397048387345125973754205257903246623173679885067110242935448614697632362758491627033436509199716059323295383701688521269800922400996602167499863092577662566531110227309846538233966122739562856213224282526577299037810523205165297210062098868756027718912981105068916912089044226176410011948018495574281306375448833364116410424939409634920837827785565611022159514012177848769392062304052447203683311285389389812265578568366681489296051864215876716033737422785689047954404396013695601268494192648759258556920317062314785973710571906695660597129705689766860614569542598386253660092845624776557330747572026142746890359933792821686982760039319314023520856919981347684405671453099245955092092979334008619919003826541021512760655637091820753884648364085641538488880030150983580523520017275003819985881915645338767656811777632641372904984658354597680187430465242873876590081865945799879418711621702676990109066077392324774774765552673613201019217131746712263705320352343779781190412684381007972807248013864179093571850598890696933818483348487981742247089557110957781271202120842819190484222843896462466396765922089284053338979366703622395209013547484792656550394227095737997005144590970056782956645057516851903124631158466387581096946534511603529676542925700093523818915416912386321016541617420254301551314229376637271573406613968005768607863383728651916715864489126974179122819627263640094385684284495513997724000470437394092938792303539562262139481736922050871614859704286384678258802715951229705881643525839235188625834129875497901779982150692276656346903962841154706004868567629403805405740101938557141429623714297717296560168812365594857056080429370163663060995892634599381797689929622587354984362877732982119531000138459822163616865205231807687520819278267869520821860522090826688405307518953522229510316712872402936679127969493697043324593344691042553388656033435826806044458121099854745133674458039476755197107058852682660952150309288041103475543158621498293778867749844782410437635697922911303981549476711591602163033909434071129610436793235268570768609042985492536105928786632870357361377085610134003448558748678873995372362685764675400720614772051640863075013458921320980961376667796755178217383732610632038647011853513615303439646183269299316482202266901980637547003805429055350179882797762945247572954247084899506825632079119018129409046961234939902780517293412454840469872518960842480681733950226919970495915401653131684704440699106723730165788981283053660231548230042871917274810303570380968676119227087415531638738818856450219257987049170155945854939995442234850356188054302273633061710947036647561241831064735392793067040144056003507408781513933994781915860217348041418637495063674838559007651179409443840591362580726747182532310682632486017734473814047445372980839202732596288377897865005148031383075100590626523895900526610176412475895787714902128606426574227414333546481074106884261819876687341379078967078677315813424766988971341410116950651897279709298605704327847107601053968268432933980270986188702045292114028111686458591448674364684783991458329597184894927803630301319073678509440298199494215035438330886271978722221951405484158615187727121227564138524666944282942768373739748577686302502571661355330753921988848892540120306210130279562503408491726462970974611040301220490035030833566005028391122468620871724274267814914594310562078726891137925363723371273204767407474392883057720510084912342754225512392139847638789625029506847231874970376198423954783033239333762240282029706124790579559061868521097021755479753180376806745144844928849150107891221797154271732685394460318932517428557966740622266837897607684444713071845264042886071411797923818772460023226839140755705822666247589418962897848110018982741383040198352417943223005408910923660932921098695257695824814404278199340700035671025668729779869790866346644535192405648440715443777976494756762762737713157490786686054799233356626717099667587075348878374748732805904747633342164483396519172271652237546093451405599584001834638786417102203908789572237619321605204089426087583759995363670894425449337378224704481480082736821230730986255102403276264901367942752005343622094412543569721666841237508060564765993285470973725555625853011950394634932486149143517312786458280705159307625263089090221553725112058703723152519777473422338127679371319881570708785104578459721922586656122541567610410762354012948988460683759994389062376617327727488753090008538986172044167582687230153864361035548957536137307210880358754237859917106892917190646234688459761647382739743210416980459664636052445736658984957130769174670840237603181554545972203566603604962447147725325032760162381188582137045070922749889931131109999091182494663368204439555965995377816812064638237909533416639031543158623523817205184615224928811027453974001048949391443298661130579282471749631452881645739530061050415849902353906913777496147136265324042930397636891198686455569076282377358173911527482054080903179750774253333820889220015799753588670790003019941497310305470554277139496667935382145661286265331870028569016349391755192869026808378545921107292568970914624053881285717626896545906784162708783691110068988963301173022481813668066591141066398265956533867421637891492263146841512506316358892579502841228357501639281674670824942327846229409505871368105591846028273586159322428331045556980792589249728803792688822542377087849900094325224020050716419350543323238465976865056041384000238177938427053051957896755251697274248677080983364030434940602568407786145104975736919288790460254893468326463075404567579460734191461219898474363326065317811445450701436637873917060897832415274642578535613773661022094656787859218613271872938128579571252018195182048263800095666068654230466612467769961405278188004859197483726111493708441097418413910414250529954688367155441645587138283904869913509666834394169465945081786462907519514465807830790096714866699189538347930506620556710606856003104018725702723514167440337803794247660992473574607462843929658461548472754365502348669758372030430429653619643793451223882026432965796222263196515012485115860446351476305350096263982572993073671273435399116879378438540138015080002729467026854799550802565344421875242053796552335709970686238583512490809359165123733958017918003111997078895604270424944003805204761226237712739337904526824934158750072337317565375710568363485964913972503806582614849224851887557432279779349571882275863351520040231005897933704588248931897043706530748103203153127708925052721782629685493809805016351881975881189823602098278261153328006633199622468269927505984572341000965831143490726493151504198629019746216465420479327391706418480025082361918038836485705368242569266562724902740336110520396284734650434386387521792887787052230324516007955816754519245475877678106764343884367677131911067437240143401232956062689327959009563550815893471197912712242237173531167604101235718709353776888209745320619497886140392882182022393695001394798669007672737542513523397616925549908373221002721279983276250478612765612253274209749525180411826434956078707409464880005850391852221826903300624927533236459833664409657467444933772000894256652827067839554858958350036648497641671786094718049961088399898559309018659868601196856025430038948409480840030375857408588937038524148248928685244878096314373888748455691963133792736297984038644885033542704936238277269025895167204974129243253171578105155875351678735667563427856732358347892096113756131657143020624082702789679337002218127646518980276724715455412189108898881238968327234618150830025869931394207928097457536493445237334700185286771136629386861788946682473591210246230128717596807969721892716234589220633588925441134483843108971401057740573246928920291697917015463168259794893325135730869648926416581317489883835045999717033038987620057949610945297969188602376344528839667539779491630226250401713179960387315959221690745581559069181551871854026658475731136141246566457338808796753759823639139395238829795061998225321018835693652033190992520328914316019813788744033932377345447966957048152769737585295665176395788231092876641987535989068591845272882555032478088443942240798261590592809158922712356413302053988387871190992944737268791573714623600674495724263821340778502844145019466634311426379445506109598138844675297957391741957386816360606644573117908651043322635997984255479968573745342567633066741342219821996810116231328279428481586834015078062313842286207266491054125032034769896785777193009517336640474348057278447512565037196161723384579409064209835052904160055342850561400756660413998461034967723931526450656689877070664060749534007790441255774522374090253377181088224305564224735845776752079200512643376364958683348173353910716496660094447407653078297023434928453447747941743379106641206923043584209687277640611498320728645665884931633718871027701813822223510873601656926118457920359234740764798685197251990562189736633513146971186038280877155295350266543876534721109751855509417326277057668547142552090710345113279654130176760407287911439461019471555362693322225595398615202344032064767629912046831869125240728554880916021562379944709877286724552152778036272626415166555764144437037577808396824503439530038453908865732730284183820027065999770231206435475874802415062560681942096651606872113368001411628894452288052332723007264580041987519563455761101878549641895316036554570535441638920657204687309752351110552769966553842474048836410069598596846824040722791721972440187436347292116161932186264141989556898866705935148281127853570346075209786541379227694704797785772723251728265280327393564371448279485139420797501420003355770903326057810341201653026209123471673738535991432667394005038878885209482358638607685940617248133263683492705662983109616286283175992725854501737735986607312660933921181062838061664434215910718372572363443592285496968313196256049124165699597710412539740736992573639500810791409259527683324764155813190811252444197362183152781197417094937580469885924877560169438478476864668326851400370485896611591661594431993045341555522958185442831898599337358016554433602509582031077379128942555046610825090488499527098670465389361360352181370785541613739090512341783934509516953277056469674681323480687342464383303555379374523156568078144218288086931957028848493954956337685184913503540082198645855238715920794282798197556410136909355337049437812905177783516249078233796703441109837869718236273647417182817141893456541321985456092069630450534438960479534364423083536132995633648389836672227217359487582530715605905607873492073433370247008456734017983647337361106939329759914893000822431267704678418286671565226503731405480596097292447291402687290249132727373949005310403300180084483430782710491500867349438812534733838022438757488254715373035563529462495520354406059586277176748395120539026558631502602827421736232007878089926713053589917445926640414893710213791590059117807930249597165466556513521595861323981505531858397660721243364971427082419801267217617286511146176580500648891159599914619195154729386497435275703610942771599484544586052676868331568800735478767017915505878489137554272058782821601123324806368853285433575179595691235186760658500461681883259343005621708948995280895077636742034945920786934572412214040417299511553275516985183651067519290736349372807397266797845587632055600194887696135456770064720121596162999313600580725856807963067152711033327141854671264966589176713888275146134790476167661106024744267487202346255265629131716748467601819855175776610222938205252207905963882028255913324482207822266563503197516176689992015989531032102382686671701085519257580650917102380114623353811888652220553947592567153504664764437263840382880199770286504939322395928720793297489023588564936141339618452894310614985670017457538943407862304864147405084017478117606126014288571186121494375129142894490058172338916298234413262431233456102109330742869466512499823852788956749489290889810135867735957962143620156889028106443190217875134876530431412003805065850961139305955290615178242461741156280504870804485727540459909006863360547471512370896570471537688155515750158367880849352808241820359844065622065015393288935183192548661040823143083459246392955854132926123091784049814514352816897787017460341605168639644171637713572319005043221399657626173424099000326663114200472145974848742266274686626460986012518231970486600459934046871519188032192144848619564628773868337140052247660730938541281666016150112996741229572248203898211515420391229425312734155574754782310036911502619958796801671796693310868828348483299574288249087757288089807953339166941618593737786160425935043981314530123383719458911664054741424522957477952963015767455498605088440525775827693236645457752847823463816083034821593738783053332792320870615152077634703449659925667819687427335946283701408703616166406814563573665545117982285462150296909342585310879690900793271584777469615041274568341131292436380658127085439506984734867809823611949660085506069119924849970058790900196470179537385941661423063024608805908529151996297968427640301289639066752196791876309353625812857215233352368483728804660155543273700866844743027878081576627701954829750692366931059539792356927537937116006781105152018061942956326905886407911472610339390875252768724399340251019937798755445954681406595547747603794106404114065419201746093550371381516262833186282225713119085704542677996556662045558721464444921310465652387857066668039687263223875547982059420280922168889988049869738044900102533556607770530148654521678750461120093788756292701493306801305025768747497894584876930782284335277681931251578753609739285432894706837113531436364281328887235147253400870210409225211648537509664292310783400652423515768136489910809945186445850363612336982088130506949110384741814250297021655431478155078083153492682116504380933049597261100001027327140641489276068985415279061360427221492371366739897126459576745716121306921856215684162895872562063571722094752504842105515565606944706562332074116264623427027989775209909466491878641668721470917735570817101718390865760425775243870000318598278256216247138026239186439800632578850520303971299912024054431128273561847685073299933518237815588028779409092994157770694386969484636437401423938992198317493721327784586417169870754844599114726583474317738611566895296935086053383762710290162853992214064679104502062040018420440553685154007798020261060856662845874613181475213289721766071934555268344152630159363707896568480434354084260852939090511865684198803994199905306823666615494256688035243958596139688443315657295292879072234506619819382097360217426732282369924840417392243833236601125923053051147995465229096046644303475398416829650765325120455082782789255778610696127072694512984751405198269651209739442926792959957746297595578490234800763236977287514380150101646383153565712536752789927119034183459221882895690995527896782311363385402786363763280524351953358324112432704117574712545956573541262391253953146880194873484021953636829913235660822599654971383146972702023840434897776014614998593777316812369413953933310075174919601358353786004990605250431947268653677643467332237910292609770025927871273993799680876834491289677639416862102366596763765422729701326292902637503194471773450140332760164296384844172830822391447181806642828149283390450141731220750701515582082551832768213885546695505483866764120435503347543754906628565188227403771537892784970107510384228344192470499016532539453557112649307378605544974744039734473549196842449725571792988126090231678096081432692125765891126458354593617697770176398130649658321915692678139363011849860512638202737825617107817615813486383497134345798556826312667879933259736475961987344448888168092932013616874622124174825505694823030467912397266066705993554620062373627417283616534307387013094063728255911019998847702160313404352320958212065505435849577224829492299648195323968324831866115524985449996305590748790951740051224429552391348207905921602943167187741013947772758629164392024296493730033713576852795555088272184992754567198048157426768615735171359671733049270167261385164307512142288374628420886947224076382150927441791645580790285416540186231688137280910492208852124815187251834426356367030339526964725605215052794387093621395973892756504002292139610240712767503781804634745351681754386553736737641884782059392697779790370163829227971009939608923823262273648357834361841179219442900031595285100302302989268894544706241107145021089374818142148052542666195800200287626296983150495277148160898375153475999726014878590981984338035160865850535847348498709290886818441029245119326192889164712485461042303114053375952633447456517025955361728462229596220940889881623534111869540099133730887217295295937298997447279374876151059430570390356618531689035839385302032642632704479248170843538037240239048704004925728554322375836890161468394936622810138278265401842178208432766957212760050000258974112054278603000688989593887204176853886961374264029166410394488813175461092403403502677388916243453636784157228476899958586826868897348978096221604768883264965240510390797725449079774001385955137594842209130676051211322347990606719843426416960981268144227970537434407819777178092832855030324263875643600219844733500326783071134422774444442312573088458792566058145528131979802595676093480665623535342779393850136460185202759475632951992842413207576045761776012706812816951178755522346421750706503444249393570974636195264982305297552377949919631027749190548952665477929845737892359541273216755513939065576801317026211660813569509419320119289844086134213605174519997550982738193817973438626116182313835803059782725636399837762058946801233774434325736251662425905444320124963974792065983084049640320971990717815910790289204868668666045626033858016466490281191853172852127819385055843456078732311541005837095105661583626246415912691626898443935514672667768137341541420256854221980554393630870840316937371330338506466215844401090617953865813524557967375246456061209035477891360372460874706863195877424467835949195677297202022681827322561751949083796368489299468643596127914975804492218182902137687960821780551191368889711329596807917858114350263419484862076210547151253630199025829601560123784402783696729929120323563406888529602052330038393761849581158347673094699845320427699700802581207432005304045790471406001945672859513416585024419160679704252288455658596100457099287702106467060364905340246992311583934433764968034059947776992609108828980583292754865069789124821056365394980308446181661844582928298240619901295567659007143957971809844948244762057442352354091614474575481206731833831611968082261208810539473887742356455010900863748741406943256940511213318575968255248607408616210882662959567383681400166877266732034194520787014574180086229096311484592234625204643281088112672268985830065919020414041465274246066074717052799832592891666082431270354434235026234706330520871074655576033519710496837994480250704129399912808590632275851756837894460284414867444954743571060113612794143893501689299383715595829962992372407821942418126767184113110949120410554062590406153369372469675096247920555384148307726847754399473927561655371093240731851633142192602604808215016169510101874199066932116843515039425955972582618428931960834767007675965576331552998359686959294455124915218443039749457168906823137384401998140885579200975752746178169742850003534056975981864205721892862295613375501806770595960696996256605089015313044917514305898536611718715400085652687899289566217240686737431527502151904992104734661710588878475923328334972584158684486239693164696306442706273419672464007479151940485166027443760621387066801037133484343972026157024115736439681013474983057523752744634120345725209993974527025585756797366066910399054054538699239751088623127063809221952977597516605277970891250705020292119412430639362919520781176116065586586140291318748521446426378102445366048098369594307537650298285486061668984648831649185783637048170147199770215117348744438142120861354502082825931162529063668123500372630579819880326932977543372082053195705221264306592181618233023433690791518259862412516314168494599374200322350270804844772877143832873150246959894913367446852947343787685966850653777813784806906280708801868760939645721582057095706464018514581986175611439786244314314249161814499636395531607323725073297806264162039786259789101634771861044231102153771681503086453626740375099062405743753381911582458542486361051748390899328650249911355663243639824562166252103257743538290462151972723326467235213180198152847950795323364434788960073652016642435145258830433437647810534806608319461809163127042423048187151291618849013558769621209521843557507967392732374052876169832857658557004615539767351069769001099254307234164129217975463761851345289342294297270109170867824481919308982381088312422411783323897947124842748207921562291090258890690421272551285938999641633420771659320250701351872825777191069855896037844551679684284338838978342923645248735710504186505034628565362499654757187359274851656173123047081826298694450668658220505346531974095413486232604102124220906666126965276689892194686314130184662025526478124356248141876112560815431032943671041556502499809891338759728521051924098535883858736517671517949167020018245243572347096181997840885540988734640078531095044653061813899773041602809367657549490383952153471399030150588641952610632625155588341371536617452310288452056461592015938197185208521042820622034738711026456145070352689428344990504295476146599812036582959976945424589236695984797068105386413444449667298949808290100586488288271588489930379395721731786134760882583533387717322784707654015736403564421514502661954966137114145976499352463414768926974978186905841542413493993464181788315094222560322556285354796974146078077918192976538370228704640704759536922423931341215235164581313722188391448755683238802631372428350001974693661660466039313011892748224698748070737059927776702947133431353573228148828792132824649184340049319373474542391666561496954460662383423312857487744012645293294453011926882667300787970996383822871532200852441718963825303548840838763268064934055920524486606801819949371253421801312919450209390130359028308397239400093914017512514143939611779727078513049797844869561786674491688465022396354207992893244992122887705339149169326026125209354294743596007113266552547014862368785019187218550867738108839979794701428006577194985277115323317285437536551386656923378986969705284707140748497313617795957909957012382129129157363635227091099800484364135160972402606602816514982422292501941652680694546084387215445773992441608616023680992155007127302985430125953928486897010159626268895698132031828072208598734886060758955958521159424706712438084632979809542859145194119601424588565867041407486156951038824049746684234405099756185018115188495365279900161370263763248705556339513222172414436254507699234515677440183738685019026917358024847565042697470536454346449677919466186403715351930885624961393373243527717966239084225987448388961429634305994217205133327963217283712124978971738367928780066233969328346152254254650911321221231384540590061720867001615927703356833289767626826435336361963335191242091989960258948463780436368938085242769048010217940190164714861618569326687518855078365529274709397469876079549456484466901478726243651941230857429593983652313624623968802889360578929982096377710624775254515563125560925770808272939640132429788828584063039551398512660415067333575260433519821258972843039634267660813350827263977212838479698421371130185123383441169913276332145757421035718793190300623897106272256727963336657938861356047909409721442314899762284160285545333333627849282132989765597968558790052131469413823779896542146258905595966403301567028752030646653668815768919731453545588442988890760736308057389766551068650383181517724795310871700747854435490788301886783759324236337494096128754117237484981691149709774552721087874847695690840963125049163762284238807694839303512286933095631542022963143707659412601731724129825698566818883631969721517111567170561133967113678896363270822643612914684902522200783249957507392531585687572390099552830564878507575856509819702727216931947267117413478032360804583850163322210404050137522410271472070967194631569545584436859743125772779303754536203285423468764129900542976928576543667731289682513166301932907010328900822501540407788608255916005438560858884712453964302006006891285540697894753456729838786543492249707497072183409152203385453922679887920086175661120608602571143509461292765554356037651763514416909393775406231410649330896599841601504343489389068775726345446421726832373559777752128852795169472010538013164801864941395506505597948814971246186049825000728211462346471409717027751033601221950546252981312891767838236758066268659146708512395161225336962254049825402499029698379039807480771058096893415670488968673264423483577242325118349403097722649053110795076162417692569289362593292347649332140868050098211913300280070960934718560313790886073309680982373356230409845239088758743807355863455314947304729521172923171051723576415881388531569160166778640837123803573551770206440504529071396752719729717074000759737915878436789039555423666482266249196458194131669192588636786719841541131278344922324322076149712165317609291012740239160148588572280766638796544579824817727433502662448246272782406769124885398927857591970878144136974164854730941214468214021827849973998102449699114391046393791217479066542355826315757527914246168479371538110793225678966958605886182538252592911701136995927869800440324673035809151633271959533642318451970772289121103207777851157091121066775559426230415618166498233808278326248751556715326453985498513309523946924323356937064035520510373510783498828039965778635102552666127124471058858737521362287692324523654875603427790418758273056910067523190486545190756673937814477232842184214712815023653000770089600997100887347216610618177922282006036387559771770577144360124805797360612169181176978081478567594476707207147314894823618234096683982829116520252691023380944203808247096578430078731102775691869383448682831710528059733190370971628139677519500648250685113910973250163495235134940439604733585763223421782368909232161727471981824307570368166547053465744193632684292230571779569681375487297882191261772951876668995059111318462561975503752974850683842117095391861235176509246088617955184845041254339862759324882896408224381633189321103898399132759983999709669518019304202304392134345377686802202293566960291262993482835381436667180275368212526795045491432792940771232143552940306876659753893305928564934530004022405987738346219827622529029198199884761364131443171835320985426880950690108312788855090227431106593582189664535334992127460897244860454459882926137975379336145540820135353218713713327583718990296475513952545420475856872956767412468508785790264834692923271154553903965613132712626631842372055312554045861115773159479887479064409024580116013657689558723779119056094764307585628513130866867843749721105540790238656263319947517997668523238597493890481764959529681947463314451030397790572060267403665220957685537926382278218405385288759971368025490450384886472600284472428763705975931937581047125937803698189027148284598823662497153198526892380740445619595281605624361605728596906285182898833122760389591808010783005330559393437896114394719162151297246042846281802736751139847304182054184674725589850022031951007870082051736030696658653647514887141050121905503697327723751640377287516070566956510317502212005174912543773527708975978897010392187663161338294107989431690389812228214722121045810365317449195360648454902849374378566179848514039789398436420364706187729718657436953622938196742954778278600333322859126951734371840734070395128712252158511748371558950296997566194248670297868146841990117503117345465629067025066035673151714313336138937367134564389842324127823518528163094263778081126389393750530774233759735852247825276234889437878157587429288059723811074784272100558016861820489767425483557974632463138696521597780041176596502386844611386382734253844548700266962409175774436434104675796021525302899657633211568685182251047739811155875791103024069698724256379497677941963764822315876051300080450977555693842399621660576583960896770554129506305406308556401415413390783175363697621619516286635578621403194497720322986154291900910668082105716643290379075605318695813888275371462773259392217250029460586095747618006969724330183702842763384653586655963878371819188921991928420994851104142928162074705539236172056618700473416558631354603569346210265743581289110280920742368748311956780489966209130756647159375082415662632279330109760783836676440222379037967938271848986667532120354036516308982321666350263028064385509289914176354858519417072386538360495005316242582819265109911083571859636526319215698025850085843422633309677003480830262202433681453473570391868537510187688414526402656751509270097101496765787247721674401373236061788650149093756717890473227000666353156903888440191085813796344407058491726404767046291791996045047669036688451264029606078642444616935210397881826898332896115557001559304225090917866462914144349440950805846907982081493953158296052947508650720858861488335152749733895592857526471324509879565852116575932849574116976893133277948425858966988998505535879369272035106569064156766488317403042164723864980827967450636639838140781056459692087099245039889293407061711746342248526436123962986311438875607811036939146187348564175288044344168989899794160627234837148587141181916732286091913326694603417683164740880522017460149086212805807570874510934443581125908284364291346916230382572482706900429210699222710822070997859857827695195502169669292269789719528799339723905135076739385811748919442334373615281683461926696363205257070351915393374897173796998910666988886638142541025140130712395586043540663872246607399782501996546236163244329533308228415770130151395694555023580479025367083801988588711913926775724091373084904614833693393086754441996144294247638277013412123177947369013866910352949123435743895474416376823247511964940977939543322456566850722902109084448082316998949849132015986219932837255634704178900443204179889941448297831923340656081122306234847833094175254914306509561847635342746461259680741565280479743584095250727504963890829497808531580468192131819967076630625484093044794048458229984602342645267964363575065327710009264326262990431898151453136658206270108722902825522512328335682189491410115575353044947692103851130074827461977420554060157560637997772333418533411601221702792779541117547101574685653989605400894317789342096597100825949311379875218604502879679153607191485204766228973524224366108908573869842602669115125364787955121730186800728800490265980112559247405301743674866939675616335572225402059120096681968548462730580870837078522052484115792561216051593486504699323601479481563958640294801659071650786342776408981314221034387699003313500868995761707217803053019468028770404034954455314026560653509469466682885722048299835544778966464596167830369389890248510808544146789934118272843919425887493923146303221390901933914448721686049330270245586546662663092125888118135453924718745463988595643046871583527415848950326112409592950384238950668926023330569327190999652934634032640650384302933750844169453700414453140433602203342749024937149030487440783344921896452796082302860285591078014113777748986237135931357008607770166912126451612331082781196527659321236839243525773170555397669978044810277799006416058066055842793711006636514616285811096123750702518786710889029949235629813610735838554942706186195894178460502191983200880854676957296925713761741342612329061292016442534610483223459274647391191267186885214673654194872692275379726188275296457752711254129102364587974087580378445901772393841687683889762273769712198199415840871442279315725087863149974583472378012417848510330317593470205268794804508914977072789146334002162303257727169565481522295085762999865806412783292899709019800748136687291297896444210514122799221334592885368001941018114198801224206092715178730876750191785292467664692978957811518788389837606377919677470049618064669606405329264262762527205909245547422079578417685897615836062611489069874403344110900557417721194382246369243977004035426791648820600816851714125571709792589023248385125328461722838487914301033249509408479548068511206011440924441643252911111213385805338125624916676924114667166771544310386709352757136482112781703694380500221795641399195269828127420581074974133763403268120372027557809118535754703292385358118198284640141166491622077940798290448234551565540733918178848938353974485040817790321358158681253311033032884155519463843275522231186283922933223235769796320824986729588141377576701611988065511278210994810168922619119595168677568734071948089554972268141137720093426057121777443041487411868394899940250779801599664057800498579225776834947958045159549018559523058829411326691379042494296829049692500344816773402056063904828730877175420333221653290847358186944958977639879349680264200548125151963503183954301855483262997912440999536116171751216109775793813657422601334226240300354634526650200922742847686715967012095791509709916506005660151894589467565551045595160268835939066066394777523366409149416272942458239868931894449112698827587285659132692719056838204247268166870107523080648463984553944394885091049026866380923548762768306342410677247267191323893662695791491586344589187174186391790695903813507346737192808707914505499387767210009315513589240035909862889583502155483031458036597212981873739347190498898523238582261561489191125474997389369833534105512673334113208010943288901750633315352734368371448760312970435664024954187521134750181172252613792955550890732641789008794581091968158867001880091476007084785948894806859743839340966253050344307512719272235357410169194492085900095565695706266058022617245909815081282152813202131779133883076382529719114127529090087493888187526007277447388197482757327199845464930965061345183477354114238769234727158226977266172652108260144327353860485458842265532006472280234975738965667501144329934027044330918479942196875864260752977748754643185827828338250308182080974562578268452359475861341629696178358826777476896665664717941393997184677471884941053077430298182378950700568072891656740270348372076029436100148572212202873114378345526582287744083537860766799301616477635931177906417354354597038822976921081958665068082918974686088784119347206749876402914083117688604329891839527562957172915023370140771804589964450361002423968073854157570049434022895883298390324890829458849622856762034301666029846097425884013643115054828397548390746695002492494568995185822402908127598831631003270314244291669585229581069532308704582157292036231145593875501079199138803263492318201429043078082486545010445512400158100180828689386074997050682607478857882740921265140320925276943694966961208437631776999052399542574991732172358280631574512731262950442674117183017497204347022371785006824072036995890608408327863226333018842715425826168961230562472242313070159663178965989661757399667248840362792037752076911853367592956534908372585896343990365760733448594172308626428837534204280169767120158759752995043835269218367137787443268182557125971018425785346450534162459376137908998566062837576086529839303758210897677687631255525912552091752318696162325014614282586236568200466521046782633921436422118913723349396304618076854958485795864042560304880362368116043392839006653357283762992854632942487261395883745366024548188036960051948345212623954231360625460333877858135126731057859516191005795772045375447029877039650026262792211234532485115690864880242056654748244823070960582764337427771463025570058998239830268364123264501030076813529231382024332431084023732002995371133580435419782036265310061631157843611698994602722467090700447740881802598714827761388364931035318601021942842582126890252743606212222720167821847396063054381865909044328973161229821187112049410561976235845981534383225488339922290168664238137213029178308327224232595786610366507529718605876239477895313980930249337483370541776811975929685183695422770765686010952559291417097440254620482685313575547706857236130670290542312041684939857150685702374253993528374140180741163161174147093220000924903090506728539819325216601136448194896991291650279852769250658882399286451865119989465728070944031456483656513420923805579488673840329507464920988421204429539570182753939287025618435382772772967896675221243900578707267473846058321441687331800839659973343569121161463443680451334203101027229205742807502844949693251950845214736854429683516833963996721049198543262073538797383726144376105153464880193816803130987576605866343411794503524061714134733031962635513025061890349541173850755241711968094516809518929734366681808680167413339640794651847476765481158091962508619294614135622697378989537954662959222054726744988887177965936974033936785853510242972011332105389314964792339029681880506078991052586809681969350781325239898979750443529184509278553827958553262209444257494161391673648888586236163226122701027812798307810566617026811899199778233016508896425100583398325925159767451918284645610573489606958415139195443928773682824109010279222487052431679344468792930915783015186954159724586566608695278076470149501227484256408794168630158071208656964101936012442738132993436874315792433978112473131960690396841369593852298000466359860647025992612052737551792606235328050417780109136999366837138808476615242156170982562394759111896939373616633657981873801529010637160569121805176917457939396281559217105250049619169040089800703148906577543227630428443229905361806764644347935234797942575627218628067407147910517150203835714167017860769123031596479026799444046540508993163100964108887013825195970701997817919395619742311148535593795588442501985543005283098726460893519605095033604804382352202226940893567992591439121273823545953824510125550675921665017159657976436039933729980464790410428622768511406689032604475168219560107236262592745853452179387286069667389348506592141182790727161078581155466957749660254825435531292389087324872358595574831462735280504532385887847604174459785289061091465052357188697457656125543867172280794620823302257536204044234067553161300642341834319967470129105420873582481430019107790992651905485107567792326063711820366948800378359888425879055445841956792552482562348313747838769448513008673424237941560818924561862022893878332263974927936221966680618640243572175221103165708912494977165615785661246600741044985685641303650822165339500429465901807739912275985241458358002255205176972016635159227667476543786129741802399368283446559790988031321735827411702999812910119890038737850080925280416102886399302397274160350373427400223856217195958805861639368946648604014170052424654177890120550227849375579330896042714974627101140521152491198688078452513455494529136197746612015217442329067049191932016167861359630158853940998018744285492501611524954438667877361462349945410282116284107458089622351394899109543256385561986341012160731069926089412898064065212157842695435991138538166243515710881931024668752606688245594478156630854455429209049337977654289123273663357877403876911990021425788886522014664298826304987522565469091927081937552902308225701004024523426626605628815586288240002948376248765216395739997978344994077947392003458269506566559890694920885661153149665174178769516163802086381946936185745875199544880562123292372357097477005113844782786637518320629966439948834531695100169960051429163776633600942900136700338967133204756935378729284564415697089300745171573817060054043546120625664134268519245907824930150621406765155731545677136157974594828315713167328401791227169560975869046477365717659371709378765138326525724166371100925261381646202651520720900439063570403830592056067271184437610504343736723692090777433790373577862429492808082832572680700274769645647017183442851772360446440536526774000966481597854270156018544362374610643736242659196729838236434872988224239261273677810389824130312216984375845445377491152280568332461940261130881362841675365580205935036723114483945101886206457648689552774240845922033511482834035457140004856456634794063818017778536644113676954217705345512854818260601156675342456425903078463041350291770518281748093338868067370049797526721341764685476792187655503893406740827169641506759933148580546360896768964924595545760895427160741199984678629515799881529457851468556291450085221602155511868618731403564409461638390472023468536221033098783492854247903564414848052961217053956056213129547698201276233256642731268259470838824512095474231994123361314212051174615132142995590611933489155151613293584013672677542379537066210286481768812825455555719889134078049135599441408891863863492874205378524889327253102971455253495347290542212757750135458468418333514051743433702639105882642398075816868405960079366236062146444321811669448290506368141493768402122876642748076441369873538226928151390371661967369082671037374228092456377387712960942779059309568301433294601754394472299040380603894113583202432695611732961940632553907086145333868416478224635942425992734785361944752787278377397576792800207390348773284285520515489144913583861593934460527518204815887930298672193840465992136764332528829044167304126832408859069937189886588080339107075898571523169080270061178757425746781387812863073873474750856612778314896621969386806236853906881677505142137011811555290472787090549692695801633034741230500638015360005270326279360404172959622478692395100617248710791509561383519662817386525846325938187773306861968270730686990199667832791858586814756928464596318025976898758955170208550526554762369716174997109382279355760963685047929381737754111274008440296794434522681579986175304132177590892547678097781408237403556653560820913116975107239092874705224512409274851588912963498017369009511983935238543368584646496945513298167840653237504262906646609853871634084796445996281314546034206533527934043831399645556136654918294479165618387661705481595146870828347147076701589205398934463279205422956206464353627349139245326292088447342712057029780065286061099544634318057692850895165342952140779581910995975978222625087201377230977655182587447364383397330657127394024902082804622914926738791584315847467469863748419857516082218224698595972077425510023092903651392959924799403632974817218213567083687263056513235618671311836858169553844457910117277923470161938193204518971630821133479845994315553477755535406180925478993668246098978458989783503846991451989653729004607604633322300956786947391116728418035612617664207608874545525594249167334005369616327038195137943980940354888662391247513983060060385358001367417074721134617325636582629099899600357215353988044209141139775531048108369444819522939110858222251667691684867786647265834724337139548824173743878459599196758033674500705333758764517757334172202203079764062423047272846059376548132133579251641539855875424307121054028180235910951525505223432347731676163038408925672187850951527340353404625302366637794359986936070865907544693929444219229499988783387282450772809135847379876503812326993058042465866742175312329039755351401768299519115925932229156157501780690222642840526154557938357045224882561890914776605316954051148780931695896611626075465953089307031647962556787662145896173572459769640164374987127931997853657848365393801322102396218106803576989636614453281120383728110931977028188289782660517383728375617564667751524584948795327054349300093734083164812140880901339104061304845836427940767745568541074847171594627425566583017149922859665792847731876562542539462009235841234856742012755087562573225714461805134938948771591575055040900374176207691923242123413365899402549831830535989934620510128768259253211670216614655750062500982005316472448178986144386905436921792119477496359252269032604199498310574441814456448894503910673966962355766218340679493793330670589522317779616768360662074074333565957093081558210722007232083755241769267001080507275827406219692738562953860677281862543009013054595105207374213444843059177676550197216123519428918955378265620390416144743439111367262673452494326251538946543040844658503029882041921701035753976381291221499939906843048496487365601340292051845563591743695956527020518632890436236626202727475595456617036876426817833934241419156368869677519346170498352823246411781704700646146502067787676368544990556679431900914087683847109085213789300381790388304658304707441986033909761963528653961253641861881186102534679220447492055087025553594424103494805374513862211910176404808382143095875026441447702055454821099753739152911295315909113102480348975494748351773488068389461157303214397887453868392542272086160425343832603692575650178657929249218765883512271553300481304874622988726229179313086172360392125719284223891260626309236277442304026721126666187009674665562662854049797396859826676335826280590002295280841337421563077816341025689237371485615887623868376476037120208380982791604293186683680591148284196069856710277442652579028512431064465371651604685572969001102341293179242709690699662583998602757675506841750482471440477638488335194479832571338251209092264822183519032148640919456874599261757570196846045956776518670739340686964899888641035921294710157859419133448931941354963510530829128289319900367936740473996049153448774436108500290614593007892204033793876701166297594444899605371891528656539727114512960890431094105634078637005919777398427233103140251444942298948194819924616114292212050046932258572146624107702519638258646375105363072508156203765939842086424796145084577712883257535760371521357242909095063224120125678667748609713214868120627650746029586115565939217337741503621080759883729640276831602730525141564238013184243210462887748976837568435390799147243899825396989941377215367977711952128221235427264260352315703067751319612473613127117429772035067417173662663909719536321049273728835789850690345348991185198598522316147994437449406783305309947668432133044869032101898028279912575401403851148552024856675168042242050389509369356021591281573570381994371147917527375295259418321403381778358509346738676406065532241085158224701129716061316464152244339344204775164038811042608282765907856206659653532176276785166036607544252445349805984226718255961311653351126022763106075514333230775400388710483299587118582576528266269225588225066601028545440347364421306966326836183341242536573932116086094989457909118492735582394724042180107799124670880568527646905048273103780003961279308390504171473592763588048176591262587010376842025898098283781798624184437689878357242478590432183099241160852977414877937617426723997549908164389861884524543246774631280457642302109321848100659203771904211996067308274464335312423058059678300459615456830988357130532066836210819486385165136277584218234717990445679064145306980625586547163890031603267259476643395182085126255761829923731407477725626027222387690106770813777450321428655461970765242862766706314105668960327044972553323924668871884452549288891833435919141532193175040660592152209098046412606756376282460649564438866811546219953565191337888218005188979278721714171642637445252852644294110543468015317981771128238767137632122042518672564203250642884421110854158668514219982380644033574324159396828652664902370620267456459339432625584756393424049497322334043783130561027919009671074893824226989988153863159204142621454811399689243624530610096507413220777015462524571881657736042553536035505300023667250861609422622707499674840559625763104084112425376131898745577113746135184865057087536067352121681625295986933915462977139489798376152192964390035727481458777316571992842290497947048362441519165394422802968220915041826471775963517242343654095568721272290700852176275199955078158275435559284395604542314870981420946833445161130928238872933181636299298530557944220891522890283713700362250802876894614333196114612769078279402212802207360581610580458209782637026526009591625435359757917762117646968014988105553247742899841697452800117074074424425876936641122511284702606272017144335289273234846320876863139574772755563118857631747872105915315932490256203003650463753458716785411164844145736236282253998853543007341913508200330667714902908818230448631672875300775776776441186601157872799472390416732202241193285566601792821543977242224827302883086974244224820397523217231225787563124863172561240065997097720681446572520979634342149470461553839649731310259994110024307451637432652334085616680305771837188381181509522343042572120936507551373621949788369579774397894965507157805079751169295899118403086444473600439075276270861244376000440635281389227811723911302985625445258603717513823789751859090050166522395536615339424615773756762672923763504663205537660248778950404340769501454593008827179824148089920865341240018162607845143448383726762243906451582804384365967293061880233767505698572628050596601625563415880356423969888842881607793811193895527513754164749433373129728211210968784197486325016569332146148156835035758155008174080339833484914902578472248048019009441200091194220908053693114336738176494407549374195411378042029609721097170493546607946285884425511680108567887407113570772639377359479739700467273715950181029064496335892933059231945844839919415366817177269657306954629284137041175647426702639004882883725772068790695827403371211499039391473230268423430599162718150647867715792704404473662512614447389890407685838274352142871741856077227453262909093057476306036336938010316682348862692595884657670007038010025417107631343072592329944744081846604964961193488433028595467273616173012028611032252464231555338563336013908554053010759061290354764083959870863485851199578814481970529484058172576649989357909264335768380338816695677007016195828885705222530630442352899475576853508091168270968483579642264534332393058410778947793181360526093681381793756782700425209804918564862797558490684706821490197771461427607791479657030763206682812273040862869205349237382825178704315617881798085106720064037054897465211617142925184521033232774253219722949045266034852499270186539303290068166542040747605405634438837938387298288580048944198658164272837363816830046376199140850652038622042669524116421526912808080120524625902784462503993289562962779768571986117139119048057098053826474734280164947783922403117922029211083634622888650375405955080280371450611152695544539463310986888739204560611151256971260122521439979239867043570571246833350722376450196619174110975468654349985217310155196005201931724190685369237073803399007866973418985841892428837047663127034813010332032569981873215538213684446567335394804433793534824899510439648427130769874757164420601867055662712679784723956822438653827545449381568859488559894293538523502374480983785749789899049044068655810216312466990002154112492492549905130125312195749557416609963947049269182288084188319523654236112587119089435714181675728802694702102756345043204060179638997213182466057401128192675416075698688614084694974104026533777008421817564804528838174429160568519104894383038357161052246821721198364172715210421503348123101295469488970356167891577395316100266311477695473754417074344891168090332429631301808803532207267016331044842799866570907309509240945646408878062134788611035990393693731250697301695814578356942160979003987073379276039524645076124432246886156730645130961083275297698143932220858635294096013558903445119894829329293737943715330942370259553441657686707851318674118200432437028288165491724949352869033143789394212112750138533188353504563754225664862879206247553604398611735031736160045687202205314041665328101365229649512129577103731064080051576798754975235143884676872915504181037458101020715170924979589310021737189131589898627636463143794330210930408909195553578046377345841492231847472255716542656382156965740616387665056310844465563352924310125713871653021236736718140849951294949862864659973896912242888368483659617308127707430432608435629934811402474335008745063410722845544211563330855167995648668629347548360990841379052136498924642211406752232736110689659069569843237108445363501195567019932949520515322977575524776644278356780890278791616817441504097544751842417450443152712764325567235464036625695491969154872234940742573395775316399196178284589362978486512574514649305050293843695391815336290594850222851362773629966873276090460247442277329329542824164695808803338136537812813625475793880319468877741064972083704692793304808192505596660089115087097041913328829417341669559054716147039426503169977813044560331730838397556271445512949031636789837976218204443762356927165195369330275990108074252333155276055488594515092205758378899529700372005639095826375359077318960149310927153272933196539011815117391928332478837765935192278520446470373234002492894733082904455752130163809833533087502749428089997494446086817498917121817766795750563598084364442368248356188976824295780810368308111141343597460599439274935032798057645434146187856640340141855671609727052770443920887316936409522032510649870073435958020500258748327316826076727112604804278366860683201693470299741446742065970378477989616210241610725371473122162499455525998358294688257264059590970026611359125650752514806697570068301263259958574681799338106997596559723263298985008169440413481505836100592295628618484754580544487691142660493564289461232350313428758145146679313549943808701701774355754140348327686927019097287998864873564926827612227692911659953541464460857951141417030252145805395277657986528754461632904399618955716239436954782597900700947795896201262828442656531864701173061840046530720340887207568183453778569058775543340617422285259134011232954076102239231387864452406387909579344247145133546228683828053686286525755336452557744456541341299034893063498120493602769186627266348531348101750968909954094282240355554487906694402537878255987421832844559791216728274590181480367246903911526737572915870776691796142287896985960720484657750705563660282726856904369548183983607143134338399244321989141985238346498255173737621620628655207946626173658174532271439644904019407449549452292564797886735862059097097003401485019692827416101878518377716432844687578704422951764007237375630822572983282971748325632072092351881800277381615821381716578402428558158806775904316215801820360459263004842302964472899553965230832833690399523985448022002249916819602487967748462054960907863951865586132859644186435895072973891402102918570935030343124854801014331506324961589450927640372791448650460884073766882181163828231110849692374035509820891054062517944356136634273746420682077877737121906188983476396811184493100003414869662681293806844279917396692792675165338496218673498584372609409949509827219947960406616207724582156569729663311354898974585396149619159049172636519915348945882055490294707494744689296222141123788236322208098998994695975009506954051054062625955588724665063827353491718051181132458611134705488893049760802501558190738234408921008408797314322171762725521066672998341997905614189082612513379382062974475523141912365507574596470126303544504933621169271606028583483076030939118504869851929064268707387936184746339864090319368503018243237086745211122695746937737022154993224180267102127655910137472296548068806177440718701832550213663493708317098111697464055911011800893984041317140496071345957917638450393102780457826895020263551816993299020798557911112524246547662444140365671045764017101986431643697166376170568788669182126083183903904086601336797270839090597640437346520154679412170846764655094571786226007257559959313591168983309481089635747095731139802115701674326798490209722614059333786385903100976367090315228578532898089074252601632089344656516779058746920553378467733268818729174650442610389536742891278810217204257748420993203057168693739605917260326915844428012685735234760972152635932439451305126061229875364782305471664567998585818838130348295063442917789487045362707594886375971993370039444445451065556103239099211577363305993264522543863028561170422288620839217931746260428141770297542250370854002068247242224585900650482111510474958823735330388700421137149264245737717981671020717650053776774709891300764034899325313572728055345305581877006664906968158693392579639668577367876403919626762196304290845676341260427420534675244702123525679288596012440780294460169458817025831725490730516775746877693314194961057811803675851060808073197995582498680560343531738909833024763328420274421435267965993420495374242594104739820487881553218336750858671833167237854257737536260946366818322271463938349628686373515957038544183128938118330485123604746678170976713200552566874326240859092460599332137774429247981816296987280923029043153413694204947419346459088452137097004234504153082962411570743901760599519776518618495100476904368898597681599425969568892463345704850793413978102109304046085305598736384137344939853399871242823574036271810446760516959048657922704090473048422661498780046175108532262640737087382718923134053944718836552496045931096675709872912064272879257378543199524667147418262996506199644224955941633291842148845558445884769627921632985550166313312135399015514792302883146869259086188579317662736740618780967527151898589299136052999801394059441265091456768526495743943976174534453397202394362131690233740672295964482940114633107664554695938644513760140836579112702903419922297016516615198692970877182809933617772528760547782413398616099906919027792943924026334138702285651094326727668803026234193664461571275202176911176168198215863521544855701248366200717989590170053950695926786674281259798353887729963296089933087365859997050154688812377605631468468812603889915592584318009548862538531631019208844623330636046986443250011289950457574162022771065416979335371607062641533839763402720653543905335961525497777337757811809716863591779162925528520087602263649665372821905904436706756901428626489356085008118282833262242818921879891159992973758877732846125419813822351880777863095531755273293298047052459938123435678038341044632956906633514939190263106102615974083631894589929425783001909926046654852192904388806543241078320676939705334700344870183149320724708881515385526040633261685477545452277329097654379801672857334610099426278832487759523321517543507074040134143657366981162824480531729611117717630719369993705809002379982181016387444002576498664917868020922846226911622388068054691690993318793990411807592477610464991393240293830404961848293106414188939438419789442495393869958691803219204821215792497331318794796511140216985757228863957210457368061554091870340190217593897328009166725500168564578702536819190041234342254958184515011563506684138115032528916521727650600348427595591276825686165859563711998071199308702358726696791529306721003560748908542496380744659504370943950103530838042898676857455246126617649075209001055250494579668189795032142687701532898841636369955203515177021039855198941080944654328655824203618344324628135580230777790619896674990665689786186364279578144318631979398101447314784711687386029694923298802388293395966514497285383749721057447596175409441823534774219589042760699755052140175424403959089403729065274796130654157205324427119186715894272495718007900128480415596793796839865667109056006889501910301374312527160518793437204631802390137700857782404719740226155224609718686390741537313034710695608023962899753260279502668755003219209473749718777377063762250470753327876715174447309309373893342959212062444248546990395345137947306050785945047653372306828627882389567046834701643392732284663574432594671098162996481097875920109142345989401182145785931837907148666065901780830639144261594032125588086978487025880594561889353606109063563329463179596067269106440560492460846787916519781881052032134457947797074860732353896875063466858559168497518871370458717280510049429221218185625420848155377738556236064656123402374269441362881466305258918753556327762179584103255817972386466421530057704201996801512031041508302915379313601231954073059342062217261536512615009444503728228115421944279738384454435547495477633469531382354617007412330208379719123124223428344233833903878528883559200731553670655036203013441114028862174162523115844912758456850652206600170678833375050285186189425644089922255017544213223039570254461095234264011142448934009647138971138619481588831338024482669308035949416406173607075388546997894773805901772285186722721625223308525579401140183512430385194963039557537571857083089213632479677958141656462604829615727946548858191075134086117093784381808978698487117140031185372152301184784127407427149695655438626423683945690873011447343029019406346254476692269625700154607087668995282717834120619655804931152815895104979544199194938419346318377972526345416638396225396002691723892914009491927848515629507134507139553487040185532457887368378233579396819166180893937834034697807792411609861118707731276157064382234051716683322452081463721772538099094797344295964713285232528933058142426502008596890492308810912617745372835465935589271595471170369850486416723275825539461167839002110469272853870846295809910767335094148599400414636912919991841137571872666060599603973993121802597688633412562694918979646636652069919411009982719103359739803606958676223875258874596244626712846420384727359092417731249290756822706469304362521108386247874981307583967252802613199804994737819595006235326969977589072728479662589315093044042324156307988227403608775763492962773874166903490534348251507451733365567449615763590004278938634956958398580940310351948786852074773764229939341923096670759848549359374157364532585431866489155421910424131701423989669647020417267228795938275230276102885518025628876591230625488957080228877170470973641269274096433618621801181955395091864730231545668672228988115655144010430438069577772108856284788435244225774900281901166338462030210153478498686971835413930949247856191760061598587052204454151344401961507920197573219740282112666521898620159603721172388602807173347910752337768592654375481004650014702970256089655802339497852382839193689268869427903087908668581414727427080598913389553432202839533320017874298727220537108759512674174686334824144364454751658515484215192362123173509751190936930278799758610759036587801519816523375323780498287698865902212869078031850962124511294560255791935974734865181390103418007413584470602371976021052678889185315943482402819378347674454853838982255045878752195386709191358945363968982082502082375333873415546000984119125950300809153032260500455855121987972916476331767520324745353722625410753012943318468246823702324346532424196933177072017060279081813509269830539246545552365687588106372843449952640555705816796508526731399272099753419348647670928091787832908998143589376073075528706469192395379155270744238099312020210532960718811108383399679609011935135719732311990702046087251611459056184882958567928193960865597601503840936093137123921050923900607542750062101728311698005539365365269043325390973142521654668007933741365454899897590569282140551751650618610487843462359136464722247019468317128573849063687772053837408972668577904371124435995892038699748398211701139556231051035115802707104753606019742079109212841671001612844336729457368267185091790620303651024031140419412948731642430666489231661326578087373035494331689464885646804366709161229515601760221530035063665076254547247861003594032788873321895738568971903991266142299622157578136721081830738947235908614837327349414746494540708637494611187524925679746818170121975832529348622884192409037706429162504889595787255811144557673837853749995419680799997565816663945339824119356551771208786413265894831536799695776548511436974943722032071574883489018759447756654331860899367035994906744026669726403666414366535930730847528956859577291780916049702510736124640371837806725240779644102957349641540703182038109763897445983554773567102410516187209876921604307805092914641350649699645975130103367523516303773209964764320054115052581991499822198612873160470738377843642511726030624098612178217461827716239261662987628642114099017920764200216461396238396698338946096529739447955497244862953764618978914967579667332499331024899043988954784183097330608154586649703856197324881544419425825345495313980936126179139298663669893385965275346398579594727157457835095157164843610002112702852174337792917272923730458749920285093427518781288959138641507344810734561036765721024634700955499660107518059196254741518848577822818377481759990309794951323546996763446578573804229942319646726806730516486780694033572368272477959243135038334470620514171780754565677993185787464153008779016461905148384818026815074455233441031904254740465003748188785359678028727778670049988405795952542868761357279997525978933593013866553224476502862342798358439413132648958256014418460491013651042117405396185146402351848320630091772828079379049800496076880165356475377021038738055869394698688323049192607339217264710416480839270438545586045562274230912065763915417271539068276405339486786628718301663382696743986928813674338304537251439467811405703182245166777219056171382256427806422558759474103764327599656049171841370513308259431963862106576944972639832754098524441929442815268050729657406552037453278330277972080502916122405393591091507606938638646156439644034502508476953568011109689339990619627615837251762037662432869326091189444694931627684300709983429532960575010979251610498863683593867476176738576720804472080363639986374086392496427278402675654831959243824532863326138690258496594819445368758147444933260959179464161354590237195121675504396690416666136598317973038136350606390880753097077899611808438889129517222031740419469112891156970192732516667055780434973034471104345325671380680624308886640079342485500339183786545393718919040636590201563413231117697597548461654300978235875795531814373692280229540964398108584940589876583112317716928382398030424122562558936478325204704647709733023561978234856671461915571201723489586650585965695626271458696533466271107631371030181986637943074332276637738193608809468787091085844753833006865453881710840839626133379679242950015133126273708655141325626974837427594016809378362343372595664977544158643730239450275508872849552048633960342164757290028580182785233186836709202349766564173633777084898469419730097563811377871831096836709807378671759855486215613304598440153080982967349959543633630943487788646682918050859020052336718178792440556708648250930063770063248451714659557916242315404991914455301556464424290332433424481724864410988336372572712705177359894986921434166445645122605216726928647987761924030328344451097996777769119329562730260516547991853337349161920399706574926931969277127429736226349558949167927884921011172431821504698470566335712144585924291594267038088680799046312681290681990847335040102644817165073874876163997430256654865272955088061083594282133604601131521269219458294460457414774133937305535073796433154565866699924470791203314521945463724945040467172967842450255815207756978123577807832016744319460349027606985528313127932822404378220563548633285301918241030872488671818572909245567996160038464749499833457392561014878302139162411339658911741737385043593333809713245565786901330184777021551836544215744481580663533735223555853630037229431297847970644506200024199730891743131331259951299601005503034497411402475536088988027432258794080334542012463771961940189116835549658612410582608081708222395637911778961043227358524090087327231238889699366852803917077823729717588083622706700799163525850506572621191402047101334536476647262531329971646331781624511442218828289292030896655829956575484984044715079893506880770790444930585373606186542944041662029954136948591871497276277521780804309277934926766673679524427307004785071228515517258191774427201953690152078108641181263054092714340988407157873244787739704437704631750252397095961472127851297005065402981319303571467073847296652885510447749417566150520405601336197053590292016319355708952814769833214332275301435617504629436753612257959999483201753909238224821457429266063423524986199144027109913914512623516524719471212108606725502697878536072209609535291360072699216133648873974369251082073186237063597672823863518731644295067699137845581253534122619837309023592876054936796857459876828315683365401786110632304972775426085526189101388306805566497630277834679478406186693253240002200405157352244738024524591036349998282297510950589263337651026262318484843301529795609214128862211992713200826334292848709716459183838438372487719996823918074356541740362876328269068864898817923324887040807896741744848601769596797935655999534850217112540299712758202447872745458974203172603357041920900550284887272483337537856156478774583085455359644109047667358152730365263189906379633311058980754566393417170208625451129523435998157866937076700389896228496908795375349036481539644151234256542980864580754004278298766100947321607778487863319078323591951551687251875161003030478723573244768499020186876176577479640346277407182219631559698152533266132601271169182024093734269205813912452576045068166020247591836506439784671943335548622882437216171747049279846497173076158769452323539478556359466222942237857825747893486253598722651318646392622358875640738410639029286174460921349504799172884337713759604462208716650546943605506933677348470136396017440484404414724524752937368460226016303342402961896688790358496277714226894732158623562527875666120604729479890970880714688819131581666612718515062624373923020336868573137473828692009125707983968005611624885870113478128077823274970123103422002079849925409896164520040169797031604364433447335996368373897797781407956060358076349990691299954999314233210631669709043741361135358158988588248100483663150111397697712277712476015297009700996961542836133941453182320143852772166060007075082756228618853828195297971318246546100906387044854464842959366995666744712518154199579450411622802242928575507467767238012123917445033768872461882388775042383540538603331518294167328755225031129626714860082920699140590195333603159832367621985442819416679150679879708417609296916169915070555565059270372519407867427694286161138473127794163845140134023661697366194604283357083095680739159072214849974125223424363154595115300970054718848376389433862154197104251649932861069893140538744743013662508652234372959012701560622837314844398414732662395140108664408750321250341104587433443503698799785243335941284385970596292203752136693992294537160697694478489272679364490070320201924661712588591781932064962602445457508132707082121968571366667632766308648525191115400576673869264854473828419329284457634151435088645633911746848388384267530478277473863625091210237664987310512710632794474090613185590726101529534647683400359204037463057147149825873872278515476692336131547822116081147815529845630307884885181065714819365802448795689929182749549487658668700758073444121000296955488970413356356639483746683046003049046102149337053299042653722250799743014181246724773289589892764626617558544197776673543390440889446311528899237557341397337385986386305088082730382670980969233836528304429331839390437782661768335597747466715606474129723402347907063402204337307043893200690909705700934796950279253701949116841623850823146910281072215411613697397621924659669748797345082246495359918473574920024624321529845781365487064286431422375100576112818867403727323852849084373305527363358682695248839419045101818550900607876804578264817897087211293440152686062521256851787979001625634904274330469003920109954375549091224475766431850785801342830033717040428409546836716938012855114405497320412597215535778455405728772348310917105079715217371158458977484044123332194259436710883871270035761377552276199510819016665760795718125843838544167879564323921617962015267325461909717094507553276695716026146723369793839577059581337357570300069213925694084826239655875493465408505909247072771431209185627606170766457703304628725848338117363098337099924750444395161073256692403254722101259177408364938648452704178798170395769423371415620716664130711364373427360389528122546372861420669030423750581631923418626819143761649791667375932363245785210089015967185274666017037417181528181117422437030569238084074499112563126382695216724083840766359761610180619387224726450668942299424306125717068673136718529021919870616617950313049937501390374084780229876373883421362548407358481344815821534313762127905329360677799589207589674055730303559072362419761615005314742940975195132163338359367209030198021983614764062772752459359786583607372854181676121984291485784514343121039475083069030620148445007147297551745487630041383533748531590630451148213561412781313485521187704460487493498616897228116678065721087036574827139282197962867975476010205693736486557996694694678943787648174307394609180050720289450402116326745164156293706633760650970553245515391072155681121763181519645390504871111632762973213100611069175506306343810356887015670471073453331545421560882969806944362169533025461636782042447965957688610471120083408367324172475464590134609108492462839159921269141271763574043019638213696670851037033010199285816556927625284580184284663468822132491714451939112634647886966486988237744343408178394510097446591933733999136475958414569777389721502319758903737532979792218345336309424461245171798508708054883845571155459485081234243651720944590379171364748136382206927283976001146968954459311716770241245132676433410535141632089476354540419773774949589721861058509842979335115127401468344204961433928190332260888959754346782702638291574261520582193265885249865030541124183785474902751568263884803606213959314791854424134638674071583595334243531241112460841289464413453819495717854439591233052612805706374589074196960459441587862337425951830572652106215188981891591248853045321838965626500754722166545608326218181289965636591445823885392907564300969443428083585016485538768318367102840642095512519384628954086267636686136154174708420582038049876970954394107565471591926427361773162579115038276581886647641814552532428739892475380095732982477378526549626099385746522932544838657096783938422472441177760347142911547263854402406665559956684638419323557933827957150609339842203385151088193698032727074793335198536296688660656965628717906943971894321017633147018995616888775440477728902265302552154367355213199246050325814862781372138765561908899836291954281983627925891989550352966314396129695305694390243755871391307890669990264111215402956985896943860689749895068280505316751374985280598124828605974002000857632686098723628276757292098680828766478014211114876140935101405592298806964307190406085713914204113289377949630093165665959377244198756153098673443132210548948561152456931401201946217026373048661912347160541814373858177404595357984626108544389644679726065087452602400715605189030016465160827420618750256945247845091909931355000469965363083137526739265647536690536687792686383767253813933163774469848463957472170701809048974577521323543204266952827231095819267944375231972687240720158395183157171931298900158942378140521169280674755198297982621549592505935886678022022377173722157891738973499842308639989821362227517861170385364369010009626896309308294371004372745981785492336717972307624305658472980517938001889843611949594865499797852929877933185391352988347374112780334014938238369299699676567943621771798175791143857120533339337528780841941893520653314375268847259053652455738635912557996229086077033234776108366218805283630642181735731191117793308011398812561985081054002752811131090479285762728355242886022917701017216395275573406804695724106423376649842026438255400731866621550150499196428198788187258198412939918514664942945054412604980118828535423220216808773789386540359352432406067907937832021598250264460833258809418653566902945391817918495149126099841745760733630610737723686896329171250937369250511824537090626451320971665588781382521266177410535711363040926471788545222716046058985361555360881973883183657898190075501638077142502407051030727492514765645587685866191796854788598098140499644094078673037313458717149442329835867582963204187816166709130543756322303742211926837641296735155025000335341059983591292921996969170497937386532149340366663698898764003060536894481100517554420210521511967502983687808139276728921348336373761669155270672265575169492312874113778551955463311009756579501848633708282563102057180684297392381737622114520157332612835597828395233023131653472905543043897517520262147126552813749295721214571237349275467038868861506701529632196849160619107646036900887687131764598464278727355288604797501559832838831677294293360161872112132074312426528125389451923057314470315396888687100561744416779848360002785901810238997211073773694430604799452247449421789417251367513301423414531680852811829685913214716721449935322573442603995686603798486120681453730013495579341433851045255629571045809814500407546904911200070289933120057088905654525433456273037910141633137157810483867923363058969464122594494667719592561512367782153677437055835354850524098099440116917987109560775465275358162815364254633821215253855579983466333920035188203014732968965152165623247225495944677589515308639940529134962445213989857709756307764980061410670478789367681105061956416560054889698780532545925798789942539902190291509837879680791140286924784810917412141626712596518130907522051771765289686008843901133815651518657479499770559336301411543165319900721510317029098354593476252502623869940693357784523441240028464176084219830945345554648353640111434746713429492479151611603725735719314136028751556382310888649387994517696554210100286680924413756614698632182826257042301379299960504638046174536003907967493565252915731575005402295306083600023580530753858702399084966776957280706934182528527709499799898665918053300089091300845176992522373540195171485913977352844661459700764325503758712153851726045270310657706238705217829235780490507106746800000888129687167432404429831072690226258677294195049453530653601604101587774584787741609946537585975309346349963877271557269764841284910663382200361391998262633146256959963005685377628595099626990749768499031633400236467020710774836029817068695819812681485297597428885572718018732085785683384157893131608640347435535440595694520170049618532812404312624417918117927500288715883755425458347178880348997890714303057652532207663010668296120397270381354055979115763901739186860820132912363739421461921267611115580147694627021370487885786458823841501894908088062564525793149945680792717352653430180006895665439069031184845455177245600758431825178646873734043813996758327060501454561390542263411255630495661759050071940659770487105507584937135241815644219438744605487955510310210135998506374243019192932490858453393068672684642611244042216786437083758075590705459046138442394685560353208494481999682562061387395835865417530456135006526494878010259292655741048163975278951081090161772814443521406711948695411369301397935241966206192541020783036091562306240448796520839008625150445282777511578745740489381758562020062367687831212927598823696592444942966456717073056625928796026611558684592626556738381909646289710303008567669349078266362164559568469485445827974547963910136369622746580239377899144262736112531967017177604494799519410399149882648777635450361559141778393116105952221589432607407825187341382998574217414925174324452437723675726691651718302725614543550320897408612233129989306100990457598138389153855024184975491983173814697961501447129214124858674164342190451055598119956846695120788797081485799569809896985112519551417499264882435149530054938993880039431612755987112419450148044145409703262360451849534588194240851588163485517614434593625993911026265888413085275538580867592597151439734387110167333222604069162040165851399628235555326550113197936642483826146841713916781412591882381614693554587696198018406655432830088256409990718026380204793320905159190765146353202835810883543474168984385661462347709090196459809842373816024445560874521179589460113898289719130415848446268668792201543689984104473460301155617051818957804273728264457278895727350653928785853856259338844520335526028885920680815572211225735889458506668855925219729169740886743802114205601476194981227368255111752833210210140631653376856528687577022532921592120235607764707735206228353449329307466873321406574475859480130964786127980127103008530459074022045242160173605573789279865712517936473471488844809838070085106091655300255182577589480815371302933734276955938509032166713227135602188226025462004411867387597077929113965667420968053126639468104567112711851354448253719839204988667668308501659084514926435035349629275381402246881376769481961551441196832550074862945000638756990430094515114821722809690824955954344836148502019431678660995222886003272312719548155558442971966102149056360623278179787038262254184825398962203330493327955424391012768882921176053680238585692456457554188545526400267635979308668415037770197938220476721713692609763318311834571679466250910699915343135740235644441277980741351020550592936654757480917438838091361719800390124626055569554495081570006606456238026908672648356673104276204530939403730023966769584224254060089828879888598541382381208874387677485529773179883633929430143181689820104350264542660795907122608213224218638935895567752161209155430238026309509539996123584337194542667745018650361279237855317441433861719060426033234052355534907074415392608108082533472735213403350173118219327433088658986454709051964950084656701443774359276897740609909998926640554192434869012850674768316007398252294652505241987202311899563403791135702779040570410351721601914902828454238844899928645653334077626349773398326494745085173576930314606862547776141652666365690870061987748138056899054235289276351740944629574019016395022696402193021576287123970617303593227181621080395774092946382135627436811855651785453277879547863224631489197635081418713354029615366755347497683969104077183062542906220128600216819339622196498005190193982846365295798274739325032049951369342095575147791276490895144025852061361813940336737289353092259167493616731365735848834009539217273458038786669376377832044780925844508772478542298590070286048080383580735756404142302374018838749377733262084327763932471342388370697707745822422902088018586457169172975332361244535921493609983393768283737893746835640173512422459007610315490390861043741317707949073671454337174668639595411819969901708801160826020982264597309674953138579825319319504289937923485172388982463822421359872498917474820093382071098776108423223997699180953031011988145501771361975227094622741835860911671998841940228019394195255896737826702373928140915190338514420720458277989978320852676795150767671613617149068676433328265392979299635275302362389057060838675846395927554561862679725969851571293293365118784752150863821516471474582332802208641792432767023093543932451459992272855715432534010955909298986460674312329618737963496607537773441648776482172249577973569364598333774003704148919460761637110745346352889014427534118434757338587515140363957879470676774211228649097719386925767691863660771036056769355001400577668445288197865091533593405670904884900355183835753892501180022744591933158654659342909009800983410556968347566034559349645578968023620093739232892267526620732946395586510418512920921042450802065760504856878715063026064785134301901241593916991816372433625649661531820115287872499121110951451715718750216433005909166400889638342287844283188152432663464810650894886191554864372273612160652735197641531588808371399422399914274052907064038005625168840284592312955365878343389487506701945290615116171730254307340202127632522512307504576779196588992488841918172704374726345003223804928235900085021523170570686628151843264710349874956620324763747842431619320299085976787655526878504640031639322641231918277971964207041287046739540235027394635494217025676932133708054637915427434567317265147844971498744278532321766051639621110125404325202734912019659113413817114829552767778681078643879354507115953154083133600119266729617254971055072874970493297834089278092749340912356750737188252938705127845354842508895098422719550792152150004578144661864830109551714823691313406067810020663514590350948252780235109598433574975700013992962223703819695408461044551084826806168023546701791820966668222231976393402067087853218918156695003241029884016010737321853230858914047171108732086597720037463632982936506297763019578783186113670903022961803992831940214561925272840924828052124877617746636599982219017310105376480538243591243658520546375209810303870330395070229539263411559959323768758710786027505638089804441056290025174028993712447988336917510957869568689246611097865646081854423646916148677407365565205606739011199475363139672053885716533054026330504960521709228093090804860006843076364974161154147394742754468417803032605222118334689110925389004356458709075009417607993973410834403334739181448121264905461496109773062794709407023361695598046254302440574155739702578135881551324775349931236907594131012321057316545680126975769814386083844245911154380396505747504578682530857138010276963254010369379452874891065292975237525911890464798095630956123197329293453427128094476827551280520634899537641609877475058670590706208715505269655326277082803327626031450851305116810269691338445054139863061630846008179859415286508230576505613511736703844642147471962030126964014777093261375567220026479994768724279863683599407866617999489213678692731180996172504626505615648392442406183164138393574470044177501360553296152516401738397938130166209985457972734750159469573672822037629931730766740737880723374175806234845851200498739083034185191735405565305781580689446799307893997322960880458124823723493171829627332768842357247517231121716377744305997740778009945223410917692813579792446316284802263057809197541901648844537222320922864109314523060833110355452920144847159948278252860076439158309541949999375689001574400031795118954472181400517291438386077692483123575363715671014535753261153999632163783123829375638711020272530056114736567766480641607583998797146120122521044601741300270392871826681984248388677247837260877609442465883019847026657765666167845562771066108766298475232535595096489014284699673458209626998999049114988166943461452807459392190049104756098472528255642095189653779507295541638591998826448586559209386417337979431833059090177152250897749344870714541158383507735405430644374236483577815089796744681946141093232885128482285441978353259573849106803679222390564201677202894300363916775591292735507771556745342013733991548260885247734183882163176106155668896464573512585105436014098884013899729133179313428229276812780722387094962942438681025908801661139046906075807585460934598383996063824367037617952160441766450915272955937993697352159156821857186066939346074095703438367189828746480698856796769174005089533801793477993992921315427641186620411285099007515227207482674013050000088817134138635805071022912453454744522179233282508330947937326412041216902078232315123552109659614588828520852696444874085659239056559409500888229961383695449486537865037751167808153303650923271148705835246592725649122357700734367583608701799943456876276781201276228625999902716411878873531510717634981877689716382436210959528136783530518343862482723756322671056659815131020625831637780751837778141719708915346235463961869374102114763811382415866259659273877375023552339772661013959237574237070340192124452111775759720960207437394378535810552110234553664499885174299467598116826035343713783228497883575948025786475227001685276785272262395476858948676540415205934183357857986663737891009449165045854790111892401409591174821755365189827760025363182869758547785333581732006145836475181373610362426419621904851703931833633227642842427952440899662354553777684004310179689180141233229982717208715352936627672718990834151224207294641612920365701793868322295949702888091958252156194425332865795599660746010232452746306826023942279024036519151241422798019929117221221001286319244555927616454663149297661996682946918558735048911408943300080570111063667095032036551255331303039975895300701216728716351620727161337672098845159404611601588458666382848224212390159832698619214351129414320439852574463495766829021450930440700921681194492133266341014145223131060412698746134426465615499741125561741620892562075013494022248689525241194785551346847783188911045106157754438092779384776733179556690673981335362213405282789234067947871302465951062738980254808516177939150761483288908311258849701171231180627508500500866027547923916465971838664752661329129088524204175097618039364497366091556619503438718947429922618039217002129229300931440542227243581368727204042583539403028733119071221757529207322500386140521953323208700667218695237082585643576730127666744782565746509322551194015577870253403356761301454653830359968630781293360435635002470751476784662445897815219663801519247402413947981067166518047452205263954045395867911122243705689132827414830717093275214870715952744062976517440487369558600280293742005966965052330863612077986292155021429229362993045795677539959765960900756575793486210015171978029221560327962314452519300175645578819436047419562891684240601215890026002151014401186742344930773662789230387237655799753191341042496156079058092941696188577671410375919083610056706760318762787558048526824747091153380144707143388952717862437385758918072571454380193024918637707261176298444919877201459418892528489512624057154337945070404456993189044913608794833814182557052881897700470414520285726036214179284550976355920292741120465858133012196596651938325469297075082088138898149242407129195030912205333253627581895674079055555388224234667737618364092958527920617537736257101209124679320789420861492938493666638270256790384505910788278394465651564743380972533217070438787647930722279835781919910506318701744060265918671043715169948973261033191272510784541857510521715090123840717259906191202956165559520557989640849407780798854958842498740977314657776952246571649938212796975779865861575424767038741083342303156156338911053887874582097343126972574486694580147821087994266053445645463541859881997732846720743390799394658890103024444483795975427441557112548113055311558094727714587384735741692800254798929628818850566013830795602248500355892116429697387023017564827033181276552650698581564123029608169407704892572781606325983438470649255260937002312472347441670346882354918619815510424365367534594488776146563158366668963777430944252139911668703318017531597341365411061643393857734580266767513474983948397769964941476855314236543117454321946646463949906526553595121101623275319904191051206332492067789724995992100914476624746747456058129568732442574155636092510198140336661029515935547485842021413551267590215867956689554450505903723253481911828015142223861443551638929962635802021860491205819615030084597638419685263881000048297592560980126183415962631146560955109527217138886673888101309236728463056543135700503327283467652479589576210869552235997921804661773585941306926087582830650227420306881796820272322322557982848124548849117884767305492589463126914637080105676662359119852219916410533109372890123880117273827661292361853937715065468434777114825826935838963468903588987333810200955605486002551158007467473749328458504694073189028750663758753128014057448320900327581320613786828053557841703146566926607730745204574167890466453436303671760381133273499629107133153788610620671332443502817682504892018492519965391396225381719280918627372505645787718278095204809328154428207477676439172828549761353694938542880988820305161086812904244647145325324006228919460500018788324236051142785486621491932285636788024298957267686109724994567331629009087295782645431833932328236287544034230680887190555882005375797370143356725497365243037337524543711739870417328668027499189865848763743560236353320255864679089886936297263954950006051295417238451483576142484680505565432011599440010692377898789187398992161397360413099224135588405309765044936482541328075944176621795115428440262558242802561981985919933668018632300435428641867976321712044294859038719654440510287642875223051689609073414507983260423642062742292324248508055422207040796949682232273807788683549570757761273199591018433130702192510535955874991238220555106714838237420520583801991401551143307998531167008213362252847990613340547026972168710465142793774342765525736284855864803161818574647348714764216951608557861699496530759806750767964419433312662474742093732645512578205411104033584096797211445082084582936463524836507082917840027557711524941229771097484587904247509757235012740479110419098150666146865318787090516893909659196044980854080278367350935662717638197376055102992807780753219462516955516037011510803049058830064699630287120677098457329798400208799167242784458343148150691748403601704137646624604041136475090059424371479214509804121154166957980567921243540987698117187189944980610740153089182091333642838066406246521238864367750639452406108871139598548059964057932221742351767553071656980578294973235750574198252249562115253928455957349499051260745583478239832758792099846657358645497683306652302697648945931927585045149628080396084389316970781232683686951288984735495322297853481165468077955980439224670887977132109287293453068265569610013256906623614515011825868713396980877520616534042871958176500381618580973575511360764921644856523387043747671008851468305449636808743021956840428690180277210499910725071460748730528753722350758096346821876899801162709190874168545651541995653137476803461540590566599852120849463652304284397383501738128524248096248117430258942817166680051550312589678444393433431954031280764499591267639812881593340675903908195212008055625015180160998418902169847874846078618568936821743090488168759748669419024286030266347662610091112992580962357730357358821526520329559910186995915152295559584205110803279316811790765363249655968068818725325816596249567602706191837557884740160680936828314042726722064896752559481536203307446895237842616168037418668984519966281984601423753591179350803886977878325115423372350302544794347288457648218821817705081554687940456019268643760947828241202902725451503073607572491916626952096408323380397040546561883303064856732773203378171871498581616815108687652683941639013976893307564437092021491501709426793690507328212492819100415068829882681274669517296341162267560452136010547350406062786340154449415383159466131796972512563592171992284126714088451204183583331709193018033574527920671475010328698182386699003807007513230055156558084570545390199752888878616339139133334434124680860285993008656841694274875892476743998608157903752179441301423919381916431917505393038755134509773941757737239804718646645338773916606456281830587430704148257277973598394928740282068322370219875917152532152321519442832038691967691847728358224012422565077091085888283467315573836860441425059081804203145221277842249030425053644449922629746713299962204369269623386855316329645861348278085712568611978130766848114915022516949961277969408929873791238492705225891419491712456510834345879315052567077908839979033207138095284175490909010152677002790488301119886800105389008812215275476040134009635992590714326395775023916681148311892654381523030666775462231944611037204070494956011613156619935698615567635426883363606474559609438427728025501918872773616547635670783621436022464503235888176488119253314523347786065363508731605141708620048515682314455639309353643677212024643781980546069455292885089805132530028475828675398492417000889183401699339473449307734760944380643897097931605385405965681659341135424629487405092143507663315528351350526859827678100809649396404042369291009612038095186941912851705304007954542967023492188124246770628307558682156047869786462205386482631729165146783367813745842803306122036884770411127295500124094868170087077875524759827069437164429042973838552930418425149185148389146338733270652615054340156699264128148517848863285524563250393450832388105211678763634226997435893713374732018385650156914331816698717514764653526543894129266521817065772016793365076711814031696232734967187609945506560193723936688594026369518222126392098185181399184215352924791865598052728647339954146813214387137530363379717416996457392896527930511214155604180998710607856861392715744466296808700289361464126786916343872787477665858034604201993807831772592294643900459329036379300476974662527517870964533638506141999637413228077314588377953710379293441056597507830644416704675331337834636497001728961770891953483962128024657801873640378621304436436901847298971088294517533500726946009047926066179771857434128345730347457965648108088006299831808585992256029458425246454959735803618443439202321172751812071501963269685155274179482463744921091325353961304583532384595671173170338549025530838470571644427571090928661027776347657355397011214218550502689927911131970208337154557076186474217113328794798145331320262821068361518853786263185387982348854819805023752573146703905771710490834944583379968085316394003970382763956078058753832993706537514991360082607999603908845932531659819708315864470568688921105451902210805011797191741472217059614788191841362118699188165709663470110175672232163298916168291510550354978503270503205922726452761104961642567170097462780088201046662996849601218601177230939887858081029075802537597751601803853923433397196753473760913454888902055625442743271338136416130865912153385542526663788234575686090467927692822887691223500060793776316732551834090828659813024380199956211988556971580775075403956683013782009791698461273154986194307033232489682371277651819341326667695331573210218231815490013539430593457942351999478755243148403930774670870081014514790166226640740170088103604441020411914883905321992759607943111638161269811858531914917206899121956273232584355269943692609654826491439434075157189431021824678249205173966270988975778549251973316159115288127242901538623006723598299843084062065050981250792508641715595135604031970491663798353094963858057539310947771428558819839416892907949583579081663960581428643843585763118043528745297797490677944578730573996934230243678781728842677581894795664200746669602352225335701100629346187937572978043232365409902825650862349918387392998314146213429622245854067649968783329199242644035254468226949453700207768548213203350001312688492839883056280311744456239747834340926236815197176861002972417851696581669568439256511736071826056729251189240014829598126959961452246040924427413952554037613188301396574563651314705090841418192725840322422393656076327674135184047990326217516313877469684447346941822003242273969026743712518672943009095190258796537300360348317478157172982244606872591674849587036008461226629942872361818079167114390579662829040773022619447213234034163746233543829351788428402822304364075180812873574187893822855554777797835613590629865817432299735942680862632970884123192040828362607817114495245686898274155563961230857061714211452058967282169209066382762947974347256219864485040129974837173077351019715670711939957126028551218446989342541382953728620836806711452793755208611597091233515902005038188186819694527154269660855707969818701993109863129316513857110427905027285664028106421029894810101289317148979497401901029890265446812780082694959092718942541100795599422229957382354888839746180317593548266131318470562391746169431402282607290283296600861002188987755852343008645234051135194010850664978546064830501915875804991515589843521428998781332829835017546417071078132479288324199693212656806006813231513375937560481166510353348124454149265654805277016673572082624184827129768827391410315051504970431660462316636028065101985938817219487908092982788260545936346314322782168407669580768053206625535128127009299461260708933307858392430150450275735564259627849481902157236583163681464992408722037245117078711019584807532769794079933591629675351445402792170544864958430755776323796564107142896221624016091103114132822266241151779708606462645254313584302638149477827001371115526005286327272132270913017243263868699656662200782028979845956502113674900902617854311375899298038612381455110527352534841988813138893084412022320588773518324577907435702986269960295465710010248663606069272650449194183851105389029680301682177821737322129226188855743094349537713172029797581807806718591801563342691632474834008938853318215400264318656068409214931583966448535767478871957251753487090956462685617080799132656317976415331572465562109102088338962935043383050805082234624340461278475827990016417744425923256553943501183813888148794152769823966299961201494817843888664375724932765052794623054954753989634404096623503707089201765332217287300357500564740509315353548462821731922438832701637938789750156777845812339219108423856571655058667598309019244224616235890271083243744430595930705132906865048246687293422462837377302078047650301461128327584416733941167667832908239612837380177990613601605923762698010294425998106968563624057163078459984883371249046292864397415411750949932554717346137627398269648569095426935850931751054657441866448186582915777789848938214420197139280689353890812351251731992058096102007538041950907152323104452029355131050473291410111977185563304882130985544645638693529188546563934606612869032626391223380460141816287615439086882036093257345956422258947531006872249351561027415019515758075148881259698994211535284096795369115094422824284739789422193433517544622807473137884105708613916407382369440101499377862926348546108005108992884399629374755670470639735124700556080430504565825250340283510015641002340085986736775816306212621866677051175525399156973438753449668109719223276801913603730130848491885893166704734771983839280571536686998236981920723106964856168255257474866385215078989227317733613022463991231094703531129621293225088588747582348330284831959124967702487671675838636766379722159252475714666770670406222616895599057159758809587662636619065954914148342858452717104951572305565960169868167315789310618778423796226813141819285339218859709279478842154547965779501594755926454994007145374305724481579032063005816712417733643167871823488979061674773246881477695400199173500104462637500706194320215023935815051608599823666523100177249522018836066214001318004804534040849470586344039507558542868217076083109905599911965034157727489862445753918397781863118002462730653930703194917404914194637583864745582723377760121986591039099832725046497749835409133050643676987893537449575587114207006192853418017572453862913505024687680709876792146828403633125109343240007928626516731122196505013695305777226955484184520954607495938287078435502194016677443536011377088620889661790148517404923360398829211405007858963501261352926406420189993130063689688453964169577658915476620108477437289808522344117950326923973979849443105822595615843417930911998577321766085376957366355627578284614851577812557552162158121797751656820735797198280654648727751942547883172860834198793465536846991471384286097915214292160802902492584321650798181813137911672203369377095046830301549854742963348025980386454845406874535140753606353659127305125508290808064320410771180778354621222560430045026439975376226799635521288144799932842592229315624040621643233570903774956412598171090615108958933668994263284759861002337952277115368874762700449186046313561588938530629180028554228963400682634788591241358300206165540270083710017310151292801701640632049503689368655768102793627952018105075497136211914527254990556720633783581911235065987958477822130708483731576519650415420407414205715889849550107073882344248345428592074370757562155992164778863737430155716018254717464791034203880652129165910300047740200949961106861195137207566715334673854998887504252154684266615307750976184774126117366927385811845414358275604662698127487843509697249926634978668283971128523941518932294367676636511449789526270152026654948763637976630239609610158089656186701284940058704679143730226511072835851638887052108067455242307993705659405812741486652899720215229227652863978237943083062468212428874442928825328342445855297226430893340939666197559776945283068513123952081394166044702258033817408062782781156749091466366036536340289522330956645067723636636162299578510833600483224953963513561159981166986549565760937181312024492828236527544304922096904113937168779729071931004820657086883780784050242123296065922932430612137744888960684172153961210557943005288595211479150345099609525520309927732224712009192576351034315829192802649124000581447639366591865913957011618809721205600028273510993560314602033425157191407731893397027822303914171777153324154353682082219077060418881980162055785039679938088005622148295195312161366782736169264624463845268889485555711816331693769105739491850357402825724592594070587936937224817477107356166025876651498215996353290387235143665040688612144847749597770957379517033907930611234760169114710878295505663084996417527365092845921601580035906907933873272208292497162061144122482450827813724798985683082983136428367883269061718306032797870283416917619484815377287066183272828560308162313041993587420406609040621206144975953083037643640354402087060660821026015875381403211539167883204785945318205676060657298583763737454808499050260373264598202526646618174699774081471885577965134984192647839784065506346569546039504891339394486835056398149703381705726678934150100929184909348253382001037565063427525656183606295653628475448246134140397169309841757240824952739626863498031321130004682462065428310814152516484285922255291318995238864693022875988461264446934902708239782780282163935859063272160989254405974237288927950489638126658598382303996103243788485513245157144639768835353283305396086679474141600031788573151461547393485783468349184545846645197556109748387947376679394807226548898786206475566017358773331515510634579427634094874612489955465637250866497171524989237431077724300242903071883566770325563699604043785825364417066059842175315454005833026690778654223053430264025950475665814973074085287179047908826254742444214550207534800278006117623018510464684598770344446044028340901217421463653283578480596551564142431883773367854273874402534687306714045889102625897253761204409446405161517045689256618768458220967463435510830574609677482051116936574729688114442012550270381369267265130968617886923917767078445600919790261719776115031932224809013749550452384092476135672697050579978665187836516631185522879481022115365587693824581999296431404980630273619789837661515566910985582771277893267568664976584585325506433407907092958389193178102031489638205323472610860565447838612510109681996273132624596154231860485598301251106335288482112543725690422417034062847757386887045813832483414893906958996457746610240565974690591440123288432696476457824079289995918792620626649052804633507141194127351980398130796339221382710592788204901346436295493646577481059961089808295748408688590679113951457871969734849171658492739910528656538290190132818925549188879234590125196081168940187331650071816679939175534932545224667213844578705216823424312428851599958961648331262877793986008565958887647182437992027840832466612783269136672885844592899489151650177782117730367043564607554626982492192166237636979899116141487054683268133260242263884600735270868025073669031994807737525539322353268293325638228560980692985138851591232390828114405852322233856831153028704054413288040166293719608932129949795811621838739018485006115790677216520185102654139071470461686142150065655470641782476646918002568563971412167371629539383222593536194753224956175632336012349204802281347462287393080538369394141113901454777718940308760250601719953361465491198813154446032216980154855271690165506153018873569629964243366882562406838074780257366556345751849894177731214352959278682458774085922340981629117762463129870252896394434406452952141875961044335805487550785997402559031343530453210804213228273838631103195263853613145339883160435539718643064427565088971473019005972426345429709247648000708741803309917375019214524653507653858104178993872695537698337950666015118126903188197783857160516991268301885166451159542147145642906441343513214064757213152095880604663667149679187629669094691436950342873588905413242997556245420871122645001452768508072813429488553756008075004821292942699799130519858763961827744652382381546451862132557669265589340620347607281182495313482655422215785181790264126997187562938332065233379469234140324937151143586384495557092885578889043773006444268082885544749845722304825987937024202881974873569286803278812875390214697806208559398909362322866820940971919679065477471050892625917772197357614672512662792793996188471172117790250597704335445746875169411606402272187387956759440260284280626946464920302067031078765012958392392430587962782943114902828799087794599620466826369480440847266118552396502074592258991543822931300061070376341384712737926540667794830437111042516279104209415790249035601914655022225630628419130654001729446947637480290595235927433780865915753365648096067821061750138377262045944540836852157928665324462367818997667042313594646476110616153798933433147462279733613287301118038469796558543949543171815887584421852349938205498033966403541578282477012018864656103217335210685932389652339294970601436581789804460519828151220714876321152800645675150830542548751720888133561548635296046337200002665091891869400897067665305525817464311763982420978851163310058493649374713460667831790188906442972261614716765407709540999823784753077290917095535654810074632676250809202548781120732941227116919754289660710033556643352277044947599525727727504431931555808730654802871236747526433493031549596390223219036584757709123309116504763732796658789576335830954838671869581227678683970139712756083908659171809286406829514021428149860514038984543400073933593539178702770609617180797823405985241595496846239277315949226067855975067203402098193640288625644961473002991992859327418495818568123739858448005369685656383449891544287588483359908061783362541099226352171117281846920741173782929416046097038319219103953962222211614183522535976387562934040550442042805081158216156541768282653901615901499349412554006679266748979142889029953774106176851895797652913644003223199863323798779274283428969293000329514462215419195195581935016374741795057395616637565266038438795301805931367486221478519437177288445526624205789337103154664800564579518101620218947575184973029160272446762535826568748114844837727186385520402940696669930689324234469555362442662709202312224833380417903098898500620703782486978456413380241790356246428457775478309729659246495673492654081578993143157251080051861291705513463000627528594832682024972458866469876160937015094523698373871686497788119354756573898964644014111311841622760048935450466307120957464017962060855220249702846705503360207559003225165693812887515714757040316072637955720811409983936893308572495728326759126789947798756146007711571754273565957596211780081651952594090362915799013868741135578273434783547012102611100282862709568127438881333338824692638935588605348306681935084211489591632067008954433513661976238736719050478370724291095345256964150221002163608363577976812480920802578580576230821059163350939109828450577888125949532159571452532477597364904408373503114409388137859101726530674838783486391269428837049242450315407291271406839837211826368711743514192433186324023726946908611327120767837113617654032133855683764872702740195172367176754222048763840783208247884659627419720423183578606814444369027676933847599811939360157877972259182947771841798882898755451296618075450677752324945307346005591607733694346428119348318489286790754100059525572890643157953319027121516001943522540083667240759696062175645438483956001114579308695014588252248311971961884674871169817496840834925720067104284357508082984189705773555763894559364807167398081909436768714466776990011927663551428819573019666856238521003031113635860675129526897965734434783149161689401545446102522372573240001446722804790296192235543246949878165655350349549454708416313535097617750793997441710213461911641458414850902803039154890122944400963346742047720170986600549251350847415674303088576809326997846354924351650972604663466185468246120576765814489430650618257773422123323879536114008651883239927614011527813671064828503321086821518259757177982213867508277642550181881134778734086109645314319329596291629354685893669263729224882635793654122990014745751521587669887116297088055460788586086314377532864316136396529071697165419334087638132309745921571525969464172780471016844564803973207513979102219043809280897331648767820396752211602203948245525755447701571562339398174617084100286496945050753891378375400000693679646556760656557521803187868875930952614342231900836848979725252066635822858638309630765115214958884651204237741791348206059500342050400933069747806710726775926185661936412512426703615920341736361627385805794193157562648193595581401943455161723698515820314426665837424528236981084544360845792572649194534611534201017946954961278995079039191893456341763650973062787198703073864984373477083320323593273759431908262397913543845389511735931803027754708266889439351835475287927043459110741805703261968668186540868174462422204015049435907080926323186054759797326623198699608851455723029151457357905627936516473893427500834543490602067157816247509518035600828822559022173043365795338860046535351771543850318267047808055782964740400054654392447477104926130691140687834325979656344988177848928014600478201152790182317263341043534404179846243411837798443840566183221994945456235929094598346766100775491889952205316812202285288284779479988422824976708406769639086447206742864366370817667601491399915496075611894002109026580062965027262285185626313428312790035205686971913655025079708976031675889242285740436628645440901331099267013441219488854841321942585892419483472135583565631966710399171435857030989172280815873780397998393520642804701751055658267018964148541085092445948466816071181975386561745839562682513490158055059271895348732606394680104364895968607855042266271541762071870652651953115982195994338070452267235650069036617316945851043948526411351389234263629053945757878481059868020581303902332703891128982775867130506183001027736910588253049143813217756206127177844731831920965323818643906232711581288984765719321252121378845824410522779422711521057279871923450524699368985905087077449748531515050500780279380129478973349327536349056256709139542657889914303471349879719072385366030670820131220697896463701184823130758194578266696171450573770930761978300843411229499769448913560491697512712716877699579028843414878752187812457142978894117891159044015533793937713156433999138546087153464165659149671481201967226488018400673863870182308024813780792353838940813664655845411254125798215399510651316727497276359302684983542445050407808846365247160108925614912091482028593973679876391832038214268505671277557925445400455574929389250434518966378624140092526225399537134053966700535359646280440508921912991435071469258489764996675451040718470291429560836012982658458463194180059967042439041550513190696197319155563967854414029931395494624879280549609711580863001728479053621798575510381259815201951139551681141527129031782727303650714016771566444982393454238792326542316480639551869883307810279489825721544106926881060041042522977392628656283049697517814086668975949331350317768770961488079759880709494123515010776290882003593555442514921444765996548160106730308866510872993162333891726442101523689974259190068084213601478711196611123164839354676706697191356965003236855661659003650756791172614637692417100181366596725642062859932160686853574004365731317807967258270013010313428848608739817533022180843875072410822843314524805395858289969722693005674894278864047610399932943877828824903330960820095219491434948334921308791916881691947053503510775806434242890228080653391394889686683602299755480401117698769855924164235106052960357095292061705463401144258543438860342662198630832413173125852175810049392264163786265460298856555120195106698685548526212525227860637019614811747817725900359052090897778681575657222944769115088306004167874476618095857850454362855374332444351883627518747762143602913898676092600585614629400882373379998235112101708626367571197665327911455002522885104279359782015204602376722843618547566853157525714757860366554315491720244830560863367871718006857669872788540836728062565738648373291428834019518996154272938875438786599963040598415788570545919086985923828467226560649824454975338801632208290954419992333571800334324408841838758760839699939262256168934694429777244710606666077067490797870817018283198352898588439320873055252084877569035018326585510131204226204982824471251792008286059312312584818228837046624231382185987487227788520871026175243138396621701202902359264615987480158683474451199221026609359743822368317423413627007605430616723047238565202255792479202283619561371240974465356418955808195272781427189554242781257740174391357935591194089554338564111975067655473875784528641296041882472785361336765379840474251701172772559469625072061332616733529781583792196271854715318035692608270385413376741226451900735100840317554198105498958107349796645402769076305703657657005918170177882528935841806909567288881600747045743672789138512635956823050885294882638397973263493492594043845643512940994913965863660512739356392825273092722289073405714253116056330115399118345157788079087059191586003720658937172723217044877867983304624984336748359145667652068368125564100910437145372124544975248352420223694302806550611446288637211045639409265371929410160156551961534848985780950459855332737877965275681805386183619718406648315482623742533694204291179498853006449498981191379230156071890042856596760149458001058557495173500925550344910774351466264878659005308495651080631769921392861141320246794233933948953159532702947931502840800111098979695121928481462965453036157610825710672011282368910243205718412612800032627058270238902507808024205159025540278490683056595333314092397049226136459023012475766680651739135037610152633523547115178796034175890301375512160458419493794328971165981111777599109101376705800704151219414910621030069109882995580796502699476730385042162875685281694415186172806266950738959630890624260982009723004802098661141709748608729770475036478812517747254220199946116281958706658142209586227274993121031100942318852984704348780919972940059010860023618314578564650079244765818517978062151097871997590099917326382375319012085010778350896456533559904219013551314769255541919795657616781449901090661004387757407386564319802757319254090498297583982878200426810011668713535817193555600255756634350257390603265356106380274801448030951004401744627179899814180680660353548523764180100561895535590036439228088267036902880285285773736883878953229566498344268165232900998511069067933571335908419179181581622553018937870413573749581330590354076794214300574426946943608351876185657964920918755115801351775643440409119644347139309511450097856212796145475230306212534045197112363538147159812565101995588922797191615112353754327819151119858653336541094047977494028556894061560002946138518254952065692622274752697150069972441726632451930118469759249945157975949483021909729367547719735611882310516960825661736252251503103443969118979228682545444487721013890139035937269738022923926927426319571715794879408865952317400854997434665504048572897701318364475251537022832951597145967848919366866826392461646455113488620382341232601626235319281124062270697867260156595869663043676948007023713880834882201594944848706992484703502794130788498374326022543368700240313396464845688989675928400900567011403110396980149310003981292866183950298765711430942259425731726684875445246873636748692925284759852472559657688623015574004688828777944290111454030931275740735043840989416784831391878655484531533302090488735212440566396752595368967200312916390452127019191473509444092745154101555040926312529065746851524869361383334741566107912625356645449683484623845128055332935812875324723273662746189910665128382505198342746867304489577816968533220667219868152833778413210641119181869071120599557075547383432163263416607958383175980076203994937886362800155473302532319664751084598637831300176207554547757845071156106891069954423854311068771542931878419891782210635608855833328495258172612671075387943051164910888583482526240835730163083705813249990332045512923329559460025713716424026588248876093871058633677840529492200062358977438233864954817798377671258095237215510290391627693435248829196452694576969659074335425286849456855438164107201610764393739019737840963715484829551413448849244771585941110454967511733934136871828132838516902505561159259669811051934646960754397989623906317035955576071778236879379210660334568690002410994664910799644004708879949125302906189254178556347497475075301729600312857359034001216733733529551872040493329627285775234549246173476827214824039288538379322231208995870058695006926466097507157000330241564253933961935420349758693469951113931537904125740084843708705705473849071074953921019908643138642196682600942254524610030326932789402040925230331161289931063476499894894300130439320453153024116097203440413957979274815570735470426948165724126694054195907434053050240585946408148556863155998642456287085392407247250358320204378028960107119071022950081076640504838882626098380615874495702524023525692070343224590105312988178853954072245959283124704052016645839346185101005172663723217371971518488558452403862797345135603652752332686549444873840683732700644924843338395759493623086805652995031110578626288128855785999924047380849541102248360479079608247554397120925868125753874429575267429840707623085285316195835993237476953602476420466802780184375113226646107169177636601159437946326493018289910616935906387875812787402389212549145001428428090789817070250950765707481006993353026059572322577784537742513926758367010557386646474396850253240450221249798793722282357473929184583596222665895478272403404288988503039625640792150274739285973010465383918158741557461573182892023275390116860674411572747242125852455991555426717388802843198061742216151642323431692609441737415336103239836823736802620210542285328925605338240117670586128556361259849392985876347110633518817332642475047865553809071013132843837522468240272805698162084597558829173214930302794213959911262577045021578368361421683545050263658932769335702849134109197538074172118839691878192060738656579231357152092530122739972635131756194444552674344618460666120345399913307978613753238132178143513440906490934204585594173776440759958397997430131662646184627826573249724103482334187616994029105201175847033107603770515013015618189724998499755644560077287530146375596131727102531605713440287475606219014602890349651297089922513002992839462823218731695660799734389228515426975008725958335798326769984972968539271662288247708421429443398852183746285637050302566515092074956008011767095115108420797898381686241460141270242818198341577930129815205775326915885387752733635649187532511512324926328031546804931398545922331646143343604895660366104665722203707241676488323384292123349676341773487869820431368861803346540826849812658667794564074647170120603506911870317338826869625056605953404985583787210392921215512685564654575445200082916869430584979275748134334702298203731858352785351421203233696266116071471115926674872257029843664038906527263992410633316672080736375231341150083685518114309320725419279716160703763487787682838064057704278889666458789112980083322373650486940192770336407724999603189863261831212513709572606337622514131648614522286012275622793726378752164151558060313856305202291902422658871074433514446099657860042250008500555906272596533237193965684712281127109936149840831549298214649400315360729419933319376904965850423962039944190564544423047434883404037524294562714906638075846696531310006940263035296344198314638956134731047198056491441575215666777637837859133294598051290275390274851782486699494716598992898690722532408131278523639628240154763631448492398184910673276118681631835874373327184404343513116881878992813755493664347210559851977273883948991883356272684525354142819371110176948038120638629439229274908604181126512266883922446098387885932023809718912639906370969151341065492015223302673321373484820200445756790139727571207976738923279416399365328755153647260462802869826113361336111044005687661285082021379275061172296447658822892870226109386121323151011959159862541518678509449676599547169060758620129046843730328331046246117907343966728094747739139097078538031705404224880748875322757999376171176544752027589984329616746048151035217466012513400641224746583851804592279329360090416190464096736378608448494215946253852335271122352418901361702583162365149318011993106169740018460517459393807753425392539864159621469968981773743133567117632714367871384643014895875074072222545255801681328194590743087223765938945350601720069559765529816051962265360277967698083025425661027113302297780869317792997544897133089203172923682127272724487173777677595491166255538373726819013466305076658435370840745062818296087330363216674786320883289233338587558070025931481758528311490924215294232510542348731491803685945471454938765646610343749957127913849630100157258058861475771881300452963213731955630178539873796751303358866770084271283287871912183082820048748834114387672999474227197165036858274515477950083183156350347892894937560540849737258882497881317562849117420836590600978514790853843254615108946967195197320312608309675479963875096488573281322020832811884392147678054863338519866339813337537409695349359305174415356555474947078635900835645571026871063312628224988626823345734797122069587652805438710583208720798199732511869100172591003481590654897241868258194614349337630581531378452676258461650414666364446190842927292371017171140239280905498414264593257783434720849357933835298839156443774471779286535974820471324865387720197136056295385011774259550968550272470043712733778932025401297349263225992520554213472721350400303327302405342037272629464829886649675696662586423728449025812670654250575317491948958197231704498751319169683212686300557186167821176830106252941177840974529838850431841557725555112766456569377682056677273043591689715689551495191450635545936278042699167061486313726564243291747745843468809456443272410591525881221076190203602832318455183881156989188103731609375530468559819694523615118186753671947822024920157833424581471524757585379105849201283552053850911363561763834749609959451463034943681671992619388485306625474223475311118542863151712572343204324311513474252618782424273164060937035585306935972130618223887214287067649190729840275569704678537625912390365571076537819799472766037663485460705858305000429091082709956781396369113342928847184812210357563276665348730179164886794968367419725525555973347807289883746231477297293375610549515592241530235315715728454149226471006769905581260491908827766503016437334699429122444658185218666785476718659804592157746398863003378921244340623116923033000040640163382992103252155345897793582105460021643342682145205574691379598141162428032651737387051737600202930841579049453439109428095065653847428352900869176450041920764952182356483054136304634726107361713557171684025692613634683405466291700704642694827550399473436394073489345388211583857115432547830048287350416989945010258482419148979603088426487036612779532929037648393502308509493686867391681731739201477421529886177203158333725479452307991189879260394382603852220939218917481034428691098498592886677262961640531342700678241262453886976762777479462292138763869447860374364491174721817260944322728950584123264755635796012000289320804585337992563515644929510630776719270337610519727391130405170164734354713114655489978340370730335073274405684570245150141330287636628318851177935090090423656794968057680982248127364886828863737508209166141417888348372961148011916259704712407816628049541156721907051102135882529205880814934495120083620401984071455755874580305844300925270223706635831885540658640510273832110487562496971114935359195950987848552747556959891349408744457792176346617145469015196587507893714867057163618928795782815771128636342089602535327481480707120509454324173367071127768951427611517182353373055744642959707100650281765845227509966678645613763689391027174864014596938724944231048578709549899145104612583348604279358262252793030287546452849617319615426780045424319827625248821012716102447060354721628976748251378891385314835737547306569996894973907403900262694090081241120501398544817012922558438109050540285797256598714214453393430733424681984191887542121845296938104098580912226378879898619455730744693704470225775671396790401585820671826004917305757112497650105786630015187725683284400919953687077859074439860391720981308126381472149190757371674865488816420086198515378996940683105876618096522506973263764932623161862637368059879128577257836268734307516554846720555104910094871243855704588619763592585165561199445848142934114104430468357494072216283713017852765625545046038674646030651300513362549080559614770474883969056445352999398879120218171971606289710154994022609650494537781829909613737779345366843926496217701936463607957341624836571741651283351984592010207338681523925803428517863928345897289189469799518367737519704798290885370027065639326455899963142133735739881642849563813894546752826187490640319198632930661568853008739189620535369577109704207456904386218113654750409056491390875213118506523842715262834709129630454983345483064090573483874423218079532329653539093558758738436645147307906574233584647977208956316226666507631466455233278202967824027881345622870671548633371638703021831421153497774042159066919589568705808967794566241690064174327758105933711951403169203023175755263707956686940279817859806058484537604778894172684848398201317960205605178421525866825614707420418458456089640876494766854298608610364896764263494672305854658664838525628104787922197905275703722398929471303269861244165620678640111447979590007240031062287591582437046657526524317173453867593188468104307855155115122007749342364064129477487117707323421591978008794195757479174240561192006138072174102246433300290706602889313994220725298154089871005158123608926984152749327280101458614151107047596194141211801373125821527031356160866685624282016288815785482143320195911857459279373719627274038614842476268674114680634739371747367949505909698074601635788048217718492041796700203537020493801566894020237965598581447388764444409056017102558418900870582220326694153701918294097373532624039703942992259154615385332012131089540552283467585897747506096606153338981155512086861995772077682806629689980396315179084891505240287326759023454283698015253558987244556980037581994112310501328496189339768583876846053988503338860485028033543658151194810396293532074474233851087233167216681696424700763787370806173959723955324265514793481096100648854616193347077588638058954309575567278540945857668058750932585249880436823647315075943435589028323426850829348456591767918951470401187554777199413909926557986038655957033190556762430326753628957292475929633681696184003998189221489319967039893823538357997211511997024585809260636945349371159258338328535740931987687466552899488548501968793145896615493188431647984954072944714613652251837378485030655897942764235619651823846610355284722809989406477470886451504153625625918833765823766219003362789512680947883122573207008861310793370336413065840839819388004430717259397295229289290037163732876773560398860195309643991522187736910480242095532769109865383343438196502166767156413629019717954562926644454270621957159511503037328426376401419785258644463393859972249178589651369784568996375685320474269314788237876522250133150179571819785356581572028596113672521104033777340435438977115752283871796943486793506316644051577071790011122718522620826721799186978388590626749530334514790166927105434369409912558458371739138830923114164793320782301670050196557508634393416620384527529529778814889673307971941518357246122232910578259623092829752195477587369563248555082551387905169488411458288568277060049131004808867819757877401416080500223345804849465951987585247185225094773049884332137989704642436707296137342829882745567397024407298922507439385136339887596155883966591148892062796207782965917357939195256976714519795146244459388836512460445633623968558452343987761487053977438250900851521294115043971887261713316000464603680665253053683575547833328947651690935864899333008343976430064447032945665735271563601521417083217092786142130632916477362251157204593297062730724615500261450436115059613794283232089774505762489314639118367416115234333568163105385506828076377499604346643111683152753278338097783339190369192473514840464538242617804570655212735919528183463022808012934316648572077477510062127609800795254091697640122657906532338815028442515270493256569893936714613457269260321301251526678585585035104849827227981738367222216382078694780087106346516592063655747717178166543636836178496494230877299873290927248211632885808041648957838645168794884713915253874306582944891476939785413800309891870436946023496878619367300690890326065131393867937269784750916166438751883355325093497216460779302767874055962318196578370017541249943215604807769183536725479274801340714140797407490456882701558329611662937720337567107376443441054586169232085078519662962843935781655323725937748623306399465589015518912399086936679823328593991665102289404879197857348619833088729229356335392793579645006107065973942120408407161839148208630289571774289547666329263781327474693136916373634070745159327295434264057019060185083263578867879946509754099423688586360481093458801791159491996429671551669284329921297216680593232734063687632917280400126970854951738787658336394947430928285166827700808284780060203391963986506622001712619070816756246131286647143930070141160843096124652794687642470049014646104185809943232018139575991315563102681516056055425112826702297362926078718573717791880137372293236848069602007715882995397949287766643643825338081098407349511420083395741023939837931305030904727194656722272860282395323286775562130431439240683668487861436256709238930620490052206303719139517187925655883782519197775268415092463516954127613174732575121108774344481904609954266157484700932907108670881249421477877257008179546293027796443244652518125704567146016695051222156855907467623965608956126204663730682617996892143250594874522850366679015852714252597245541127975355633800425924351741855970640994545269806040474490888492297840475045606802091502255742103316122723525239309604296204831083550325544928880575090864676139023134188092762639650518167765282600562918141382431937477480650030315571924068381248719258198389928557838455416465753484272320117030146336719229207459637412706870213407521048160057660409378580287472870063082707956516201276599440864247225275313431178917270133002410106680904951025942429913530747688555837058646197994495740565958198831444038652651628875234519054214543166831180921014703587680026354274175163041260114245027113553563509831290858915490275782311225552840238659566847098265341845345430670495850196518392928205282780197886891830954893784284455589883801493602288491118162254217475332308262695766319567163120153285987301394531202167754910441644589487329452822307243167148354749423136143557630813403114715000096512925757193773465237336241254850060128896522395103225797333567180744421800710351917944794481034746621212082956054920013725530368804708781945838940601222059198172936011842191770065375932926566435610783738773944325713181058746125449693205365053397635400857286276532417953661952332522477691545942780224706225159228514483789538986806477175761370046200527319905164121007364541149575430614124660022181562443009298076080398959376011786138946203789521670874324065885314102486105260971709947088160596411048156040816170217375137054466294376534876117239348244306498802977446993544534753411278147343821869232011052568261656363237910876429742977815483431647350913109878655261539354578474360727899119638794954459511188141336108663168333210231915663812864218820008752509115981666995693710874608780564148116186106891612539863716971860759138683658875111796230456260752185175473309284272909004682542512561875181828330000840934778413932393804878984470458101677182881918597596760138872722940270928227811709023003231171308405665187636430101954547407123746208866828234034929151448083999754626331292744988784534550433432567026069513305332317434639087013593813257993641902360349975066973136767557064625354853697947389277203564324107037812029412758904472111210151653443733747032644647283402358109567864144710283363488894854222460497108093143484045491966764688585183843627101146191845531402880379719167616807407188895364566183013425736927701355457950525646777254349795272794306913347711478852267626822885751279812653637448292067282161364350430050550233510936799070112428964950617605071061045940538336846331380890186186419634219139646460341113622776770788057109001487012282076562002530860569280286766976973956317182919652378518939990804828403644377530136133385022409927457540426108269131949058617960453845587703200628923240665856286618980827708667308311699905863787509765189390479499383354934634021109999083027018359381131514986884265649615752077363907827180949030433892165867067331420927420081943189989877494116147595887028651848874718119372021777285935486854477590009697372587241018674280767109403017128853788244944744909879446385976913392128229780454979642043356670174893510433162847471319351060027863036181021779330091008634326643569318279179036133074119629464328484238557518925553044412629868328615933265146203635874119541517885003784579922597992761701437688130598262415151257932406057571224466037645087761134980537027518449929568413534997894250664523589609516963658599712461098850483538961240359989952357260333987377667855968814960282612031818107382715740646168850351586127790763370447413273920745912255654276049464517445608401756882777523881009088538403757286015417410061689306080632709905947936161050495112977256812605673442005193561630114236165639332409898206290362081305411806236862767163623280993716854285056941362676110584666842770262007047955403334059783703251351797380437788005702682400695749843790429009266992107071134485025545122506487299194170484372709064199762681530762475859079683709191792770195447546545527539784688689522165085794101971208609334960613238803539913280075227041351867919005292095345243358356859594158005581394533705145157905681047523192371603436135551840486587793485814499498382435410903156367278239710204497544466631004841474813305402704233683679917256504009585993989120764888610345860022563297225259808199011010191498357358576072363002108717626393399185372864573128389981058893791294284012542517045793802000086410990321706351634130018543719848944777610946100354276846411133876695401355410658573650842846088295138997626823377270841028748474679720686161175781992982057426265946631760987902561592764573618125620015909327356661695749420299440768306733355304471148759167509095511958560869262205506583788845106225708784875788195101924228957843172792391193412922303258466876106624576820033544532771771365246353945172133340279593687074554082359987443094807868606522990795346442411820527774477620398861763278780587841949083584736717076368435169706914796023650691323950310759793456983923650210467260459936280809353868229746630493376426538118932750997144698339527023375661273101983874713099564007414844857416445763387105932464624059012416526047236037966185591192813508584702733291120601059019999551690785299533243976563282689571323239837164824606467519283974104801490519897248336498730611931352309360627836958396304014596270536167811777777920535363875177176160103000834508708035908622292341347121870594074344737282163993294730423341694877517440964294895735271579457010379014625260482641836313224599779148071369246270421199594586990616724390286830243295986823715293192830959015702597154280964602196119871059497127792656377889706598599299978787363326843332798742719540172303767177556778320541838612465931038704612477684029121798452890275517846212056552189035502505672097248596589327079848231497102720536883450527442208789075481166595261511926205529692387281775537930478079738831071894338747707763608434909847350895034873464227482327515744088712633254835542059933413899161768906498178161135760061475100120432439721924501383854976931745657518034764542780242753544860679795459300850349145039778596451879751209272373810108661673352602181913571933638086642344487832096653571158414290038509966120564210264069092750315028449973196556917063440980566358146110698596682920061653346647315575192607415652418462662294260668735911985482661202337194560622459028740546756284853455840731124308362491384718265115652294522761341903338855310379105568524090464461725786420746472676190045987173083711743932492973315372731075991462080997778735978769699259681967888380090929429308669591770824937959776436125925042125036161561743995762057415792229440699667937277273139981222146620293263827785933099583531182935362954445960232404435964916746673036194550442303342055899801018877863983775725111451207532476706708354283110626021668104713679599501565302355034387651723747407221330716516581858466814339233879982921674852190340810509794875559882459218657456800786108824246403888591071838814217549705314745450509783626367894085409579535360015288184801632273733837332282064506270934613173916434689974157479328456399594464201649172106712781377040414011550411880150490217618621400381085703680620352061525584934229569415817157445795468336305215350499048732619909194624699435416317971246847560834149358378693041436911229812208316964616960089270674380392538254635169614651417644523236481006668664596702523571753875670287775135572367677077521358627959035361024609424328631596692708275392777631541701576334896084192579463808067988122364559862645304289144782417597536551879377426738029006685541462586685277271745023427038898676661312662829568496676859803905023824056811771820555630884132439103133237111969507617366456790579053054975944836704412327654394298943910800897368541227772820233591406572374811602223912629634565484776300040704144565191429850747936944081828966049354183357784198871352577953335797162095768673212895064171835839587495879579833097386431990629603421405408935824354682075475571542432494840392760729921251792877670111055682558157417091988359712384417879621429248587181216118634169523646641823132439203742132032448559078901852209426989496547883355807849300377954929325019263883772961327427473267503992589489716614722101459828853224474906597162690899829435443263130582154800413603426727591345946128987520427979912642701079354997919507908305819568819496663619090740843997650527114862824385883535791259931372671402550035100231169396625136062722166152666922271917526507236596363460394869645016813988789766595219128954672451373593517075773103091697662230334682036165375487933752061929385603832759220228470087335089700120131531226191401254002307463639159223405687285458398443608015651276258365082680072389485003378922087760080083667610407005590531334262577628686249205031246245824379470721223239168719510040488358823898314430044235270865488326881681830384382521041689881203910669914548924199108081228473422249869316563361519632622062324214700776937309481837159773356478526550969959386389700093748449675189195684540124022483100191543425773305318787295748812029842632095538469922416534609744161419472690152701219769250339748126447798124160466580557167681079511103316324685556927721191364937513447438084283561256970846052181270261408771459707493032413303548741961125054437534899220227435754473984937904765711020073546759187094965275762081247330335072486613443825899231238188746620171008261430133696796862113328414030486755378247879105255713953258434881198172035825922171537899362143659998101403938969442871607976521567836513169582383160620083531945202202329415826308219544125249071861069121428797688548736437938924409808456735850207290097995404485729553997249280797900772502716242118286446197927898726841346789463085473154524663842821735176929136941206475301279517985294464404550249975140678700920872529896575027922362759078215511325433116043707457768322567523546649387058559929609674980779373759474325155327989584884858180849858873568999661684275201218172228916278225811815283543841255558565607887450206681804879026513770708085366042460859147548940726697063243066703820524392952296017280450914889604014689953360987724748229531573155093847155774057416689856584822118832174400637173662269508493650137793129813349909298182355136122482822144259748924093951901618451176181297020192589629772215170491882091809073232788651304215541041579273806282652733841542994242312478536341810160538541117124922862429209926457143313154960772588589774433941983531314796901877272606983920228805999174910496394823934011754165498116760484019825969283738014357353010002179566386685838390869440314338951788429518907494797152720488452979383074978756505142034628153457811532608527475929682458875219566326501789058803746651634804155562275743818055298650033447702589180563640281151073710733923078923416469509840241888119109434464466753990641039708277559680378017334974209903113301466352706499047499669525828189149544389994918960245352918392605502811433990118642996649941382158864695656065553190178576592061961232945386354855250929152633449390478819879782283682896875436026673659434420659978633690982192270487736607828597689599546275442559091329461353350131246726441902706957737580078162481539957533603637738549389562511074444300238786324801569114765032069963673486352856026672399509924352688936703913673734990272988531232823082035141255609991407735555929046864037258359485068875381236438915303533653799608224701504498038655403039433994887625609164947384455602450299210611643796531595835556413263066618757841225057366104174073143693716449476732094646308669749031292041445725496141913271559651058423441635234809306943739279620417871831188490947434544361877275118378707834730606718014599263055959400018157095112422163224840885575360533241462495639883581136429193434758190968357639306931868208359026281427634597423625020532552274616875995794724006791882465538063746441421121150279090658087200379445371833721740768530084602478948238350898065754682345768953956410049294221634885028319695333563666734688800415139016659341774891072149633032766061028337184037963152765884170372517351240248920338372209805400896639457305053761563745106065620463699551242080608017547145123690117568538858764762644259744289743313672793004559781150413879585597354371972308929650115257939805318268153385593013065668738519637186997369033872331090396973724144133678212199746260151788332167234949483552906799599045965009384703065144229571181049719477637818311556143171892968277908544777360352939665617118273354229391173491784394498987956728887274889954824653834432541492836246195368835030028165585313473943526876856936227282561994412295750486942182181626438897271231469489107748378730958488489261754225840626139486391021856085270249999815294218212041042213133975523870674583955813981792143475704068962628182428438886065321723313696226160580210525926707298729525700879433755865871301875345821798417344412108578006300198875101731145200930284057926522069046883967469655472786515359559574779970234477108194612812172210003642371362545787848787505756441776050818357749372233369419318123172593877653323864470835437608186591860688186308751347967412800763084946197409584698103173353151497784375100178143857535100252607104792686987761186874604913873145241166359697057854274768286683634133329222865389132874430340120764619554592155209253129450750551954773191532266508850118158481724603110779023599688945652921798817613828863413348268544310990808426575490047718748495852232244649833239516004155957547806906937357276784470389581877916076547137846204734399923591533731929611523287164822226553138672734338190234045064761189327259854569696245369978814968453960693689742507796085856957277419504192360939073406407894118140055116976694248642989466345836238624993692278376616161375885591553169273395040993074699888022670862867512309501322968272375871930003959488804750917112787072577133612015112254544894359140405818432763574995370774448423065276954352193584853558386110676444427733690352668820001120727443677423356685172703125035444685425398173054946671944106655321863357668256556898716355730632072368730066089953480601834649113532183523470686343011661593899809409020835761547495706369791391278338483750493004345539445922535742341286969753663695271361138350536979053720596984684627823027465858718493688937852721780694006970522381170048721949887827669971898011249646083911176544294766575915932451700887202442392193115704125721169586632817122152336578504100379854497423055275118422383377884177511246644386751969801539550356038099237257822952304053708702072308987020564461862438418805888986753165476349934582795395424774538184993183979009217876811598047489550580092429232966752726019942666532572819966991423183862829506784540689395200181194527574352792505222511278204829093016254265686375596240162421966798972846867761194541341317450175867140941735065634495928095169579979567913575331468869051943028635884556452529125496332866213418951446501919359559017402440964962487053434243308846784246185223316340803748635841370528719288043190384329030657009028460630544577017434248817489520366531640535268060519724262534566906952743241136826433919651397493260051337104070203038739777421209665051886975071121246581048612699803148482044148189905833733883845359608212410254817274962876164556539631671747211078076354709138437261159795875936315417025394467101214855744354601578079526460266248911113950685950371723078338875725949070273228371589763859690706576926865031559402207458128794876938846520713177402836386791276384916366097115552407200315684819344695126983189807108875706469599307681818256540721008932824013087225135015610524312073460423036340132762160155474123296156485266671394352788313579210838261736450641556911941166459592927482256002999699020636849530695302230523736649547413739705575597258351806632972875320857538347549630638579913492448532723158229098387068302207898399329044110913715803592958906440388988315248821131549744834202693466442815694332735195295942141872139578108062820390377777863508532136543102789363488025104940769087195579467153000085355708283986136418588014760019803971599200531978785903049870035746259996136362717976816713331330500981271877010971163075523974326270531931829176361293474288197302044749196002116188135571742925982244924009851691113472557540568699178572231183423378429891071446579103970146372555080454574109949521169365812443405595506672392979412382135806805459888905084469170751543410572661681316041213183123208160345402521022316068394336221167056706884831975996397248128441297540666284142830805981103554470019767256001193328497479299604591029951492691792354755951721756662751346744485727380116000200068146338089303405068007117607278011529798156216792750561092919564551100178006493659574293730203744037678838357847119652874645927556075658885820746920413674498572286572288828754832753994573664265837826307721255751513237112461495708501681097132072655727192656097913195766379033697284815142615115794358173519362991961581575031046908765033545919203358178914627713486001076515593477963993829360467511666861810213186296345695105624726815087916573348575582676202673283906090527269856330290360033341480768520284475945140345649524472519953454856093704283301440639999765473341061590602243452148808645238408345616427455756556311330645675108423287379826020734693966687606399889524521594371430106568777360442266004004410159368597441320637603592739624615926173321158299017555670737771373105064090901090022320402400561375112442807269174278523325131689077603665230762350057386373708141934265521713624782879074347605650990791300742653568469388602451580594036130169069660236970051533228325828179997211735880034862836817733894835729311101865404850148310345192012866954195389403375529898937165321209444091686298394559304019043121184238496720230862518348725889619345619140286919034109702305858365939582410378889130714596168056807106998868933368852650850770325745484993611388628681318456101842924018114550135700979429336784379066827113230743742255027727508574746945301384199131944047976190927277821296509280648163776328728978407948715550195738237150088849567586174605751951856011740772161416791075233968528932056892181594925513897071423153437405066771934720351966725870982166465009946659233248269436035329402740706581591561892441167873401854379083518494440445381560507635876392749486150485705746139815502870298221541789449371495312114889339693548430041555739475489533184614333646201968574349243352415107131179956063967937178697374321766789941512266235905174434831885833446719346676176145078474278189866282435609470780175363837237542320391593697182953924522908906526308141677153786071481686050900753782030038671242037469685700727923458526650296414598550371429432604948477325783932663263705291146702109895047255853784993880672720852490554060606022474198301881716090722889686981698515742610180609135551842937969698610117409304048301035524717088120224361540461293160271699497908158266917263598248897559591389108862565659757525512438148776737513790981501328829912436745129301994980696785382867811035273204527417170090779778903697621172608237110265616970458935989990180962945069128722887014839869689304551990653418090134695953433424764791551112379557286224160857745828414454521744391657079608962848833942996419934246992167913442465942704424730972277246139924654691578888232690724944835266645220664227264780456120553567959397249726041521891407051211814840499017710893415544326902010527775412797566568459236434383625528288444348990955829973995887496931696491998161412020850127974991153604385103076116848021513845891087417285983762675267787297691936587536159654161228545397085469937508744232396343101078603735133792740778909305519124244608921633061722872524167541561328983798975485774711170291465670461793903285945702287087128141872220206314052095765486875396838115410330198156458540605456801718713310399727557361110170476063635323529369557330058748653273155558848993087760481405008785375202742157651347362271187875309919356968043149480858857375262107674514538620134686387236740737064372283052456864971185636082309452188405204446326696069040356362922665736116787510826381086141200213536121693633305145458069840176039482905950590045001651399023966191321590263746309672711022739006970279889297703083498804240396031699629184838068452354873962621839782295918642885989399569740405207682191642144657243002937068476813964519931859709050144748444975455164081837129234315509469616636223116065043681463702657948073956167060353260639433005984915519253714360042919057993226996480919069063830189121871816285760976013779702757440877436995193465222621866926205559893866787636977955337962281788159283187045034115467464381441569461279719315340724080942570553343074402480816799542625991505549471292172833523919595997440078522368466510701073757375427396116461011959877339553302978144311420776724806496133082598267518656940573950145623546699660869654291261836863890816073380164576604343172008615660278342805489704667990765552035871999650144427481065604696045226462872531396226754499977790577516124459263744365158122399492827429163592963043358145544397790873962157225939422177689435996039502555390627746548215190892450678449896697540308152673831792636723611950663577138078443120169638019920606952226180883968621952621865744731275927481100285463990488787018676299833333047542416943486137063248976755894520455061301076011487976560823320779582944414140556724799311335106980578936060716667175631207359731293155472911693357502216996238557519545873367553225232361057377239656088434540012952884745254053528340564092756349691916523115311624522251156031627371187227487066407002927971397067413449056976547379156648038861557684574266428467016838065139320769185695217050006136526801223624913733569414912729135827795846179146217890364311090564931975906069195541176070969280155078350290315830510231324822395029513145318256345718030064377580201457091383121871295295481121024826516141291546272891018261874324512308788431291800067432369108010997395878908414572371116969647459809458825484300272762155364622179065639190393949334210818528129063533027434726420271982634734404285229805251239032671804820759444220079073497827811268833909508679902872705104943952010526871941645331583722950134786772996668932123994104072247281819346090072030468583998082019103665406528479303963759622671427594583736764198013408016492423254808091707854943577283377073931240889124949655356945627752888997398513125268975663118845304308246640334980258396083417786495811074004071813744081168855249061720522498015164169703502820737182115512907838653627608308571611738946359843766834727941935042709983256693159977521398259354948310951159525900762897321967005862461743473900660041529057207173294044204211952027493485916990983286969959839055869620945114099939739218488787386141236808225912841916864885184507494423896086609445048703978987256788127711290814573992522549166868584184676429449659344849747193384224717165394353514425231616055933579852711113966232966562293811533151590058258555934043365449519645281020778724337647995495452759237685328150126725212195185142946564901511117261689036434418109510794564777220059237173535547063160558246849236078775295325114020955998540760393242431574903077158775316836005288698109181380804933925882717697061559134433462335010186456874499362044655689339349309406178531692911420573840100953404506439728955718140693327616718968535343162986282615644870276745862461851299586161138086826138025402143783410785914338871379415855378702463965913470842106827853007789731208790449684676537569619710884437609498709859725396224305864489280094041451009551044286952071885198283648887123419351666293011275852958714955369841108832953177607213881119811845082376009807233409669273218426243655150320191262844932342571302916553929912458261987956768021336421004053419114097926867818578248273098011391238817334500759806375878328219504761947821052308706314436408861852838453236852495049627023794838777319198386702261889872917617026679745911884938721534540507733883401232889517427570100156542475527087503270160250997209613452901457322580192486225202928008478424150572324659459467759049105974845993344638418222126167924237040072593777382519379760986476075205976977551492637484054110828074198043945399602692753616579239719147770335501439458333510259292588281484471542213162995587969271428117925626816766306756766306681861423141369262252066757266996121462318331202828225490045106396082038927671783525739663965604244569182024895989314182456673725522788837178155824828110819085401409181644160978375027120424547843171807834068585077377179456552038491149532038452485279013798775620365296838176392735999816403589144679600970508080576675659292094997999148855130698116933055833088054038928273895249346713986810836460256361622922918417706706823629423755866521486545886344829277420170649118435297212534014707018468472563664506733619230776041259926697257744317284530257286550159527724273122252051476310912907788557514325913144631716060431120495722817841047055843417404562325961007000524303964801100165538944760516155404539122359021147302921393393502571904575081141396322024644658753440728616506143495961710710287066841492835846211900115815028093158927417748305479099711627298597032438936473285970444966031156760897382939851867984374255628324443515150430938098202808038098226982470925360339707151606055587556819388738331312077519796986423205285880454576471260377329346647704011407742339516096657891489266421502356794711756925122116697882803884678924150708090826996432928901322525715895076122177400395744340960540033078955474278751552004334747512940815189145374192284900281809963991758680111361012293800127930611156658423859650290980752046141978502979529318711642753262727404430540740827755136296218769563489014737892550277065273471882431357758411078703926768559872260963462013635592542223965260615689791939086465778501048095003141046181235501003306901029512278530493843832316902793745980573088590606207067262919385231426956575860463435890548548086492089007934876473002343369053215742349710220800657522661196092622901426232966548636867721089005058275260058691546368129744286551490571345255902006775580443559259057792422108153165055488194629546475746029541900494125166036075447558081943679907196834981004796374853111105936802433445730005608741330474251915772749517585536326318334937875239586100519404418476617740047904930036559117841295355981159958821838418210724076800963359763710223482024574562692585249644874569092689159331846924947736523013808248067319181632255765757570276905735014102546303900557492010202699839547618859381442003573359344926205359740597003093907398052764752538735012177994068248336518263035146743113467266292823014260328310266018819836473591420436663970148883400505934518934206277419469681909646978067716276872133746268874006765911861278093160898257451361075402011111071059470883705503791529359603664024895473947378505825846393710779113946227983092475782671089400789162113004682608949346090283427318080303046561303931414089920758493254884020804868416762837827809256949495232265092452900246080509982785413698242303189843009686939963488003796969084822424771390247157831037094372822939251269691850604714308468792446809110806081874148375766530809575612670880935334383194823114566442056842692047351111455196813462668497267602375702941086868336480868424327251256823217701368085977437940469723181684576254161023284295281110467406608857337901479998962329475681512766298801782396927364128002410486205750315791510399767841521537978834039277949628989689838817786864908402844428578473291168370964437779453031786734411329459222717959841033941779954897996795564042577734598365888424898701609484561501020726825220099038022857186912134698877276517842337239889624378196005870650593576188820240285156667686245700658611472486603417833418239041225563405154151989624167297753779044013311068883561673396906164369899883750308812258726902158394488308771033711572427849542859798420183404544328894192441253838401951047457344164152542001021794255829431945793719574589338301014566030316228554396637148128929193109621434815730312930725209192242692513941114401613302790770816491972398942684749337873497805140988624533320653440986094430851997243325616286454479469698552449291932735760238830120255759064015791484963662875089218385504825161196501874269112699490873851677073436180995470071981511996420023520269677532651008410131633731855005597679395987067112256691827805387202646501557226644823171447769954211614127604183822676318399023727758411080503230573575186502358311679843493062279394965058774582336886326813398792369426754226393047071113226639098055100733139676192451175156864954317725983198851696779862270057342039482828072165838065591099841398831322858618362179376620208374372224950705207756239314731400791339827899742641740175574846277216802331062463528725000836459830011923290106588420134925706049614621129415777597452631870647481122838971929405766765641075565445605290698719408248839115111336326550134255461486156088664542465200909723691084673419025257339338098080303541918571722746539952662832723592334742132637522279293457338802292948489338175562201506024883698404125325838076919777507227124213173209355306324059657604755397855805237182782571337000772412834010663084380575216146385401011488684458907592972428872832197841093127839048337966389226499204409091574428991722851831150101399122956976393477639233451851473118422150992934330614552044069424137629414406960908096120939179975061777190349148156093638799872559199695729688740690894599458020981209974398708819058455479485285450587848349194101049363880936465352153167632511339196612503465067696912495148158321916746445130133165599747534939476526082712333117161782747269831290254345056269084058953179627224379354443807143910251912320809422819640244004638520848133860936232588820330183803092461834105889871048457883951260228426711263243638517799080282186634641424174534346763600426751521063123893468905010572364268461630944335356249438424225618328905774260321498306817229893483232473735544711224867201402216043795000660304544021070207095051991423872564430675178629591781480224983727354686838906013848284127133480029125251249531647631797763859040221107530428742181451270161211748120684729901617628515983033369841492415268428972535026240701891732417139886968395872330091923148170183754952674865477143966723226302086851576775260972784009564105503403380135824875784084700884414127423600072311919884245492535310156493312438500658114633693590171289973478857286826526423833555524464833088309411169361705464881121357208976216498929373192034068630722691714924916851143935361506976600086684437744345030883604991290211818766583008975580333274219385879551789902991889309349605558651142007898949020803853069099263031249643871258761943167536204342790139797156725175811161162971566531512599865736945386011727729485087410621246082654114948601619150095804614878836654271685435281921931058536578837983798448735814768983849275314735021991691006144656586636475194483469427878741930965699347029443451872351856714352719797492600944275692074512084835226580483165737481304814602113916409371320533029061559485433912394481971829983481866303364228378674295705108465085352928177905325965402442619440433181844010244647295263650725922389628263940506211747821182969548914897638030936612549242285989064295210601716284418518504655294831246729941625755751724904404535254763895007213092324110835518023067462416677134613097059669547048074488083702777346943984911942001301368099529874761648848814172158079579480078562778139537844670054440605509388027274866378901625356616758992487416825317501963893631542970445865163202200799733294933702457663775434943113632060311510303237634788703893696133861931471524682592164871374788965197646547687140344985236224919642482631549993113291577845951648953732587583076019082063444256982957950039076340147001429815809161091983243163871606118441699290799921833224844121595808237569599811046499170750365174547154016645170329737906365659029157043226381498035624741036286873224579201791574010873965703586672366896180570276839079528342175257190942186003252273009799574521318746618607898439610765800405312782791292689898902710565095338584977024644789022349252554947495336915203690266652948752163540181601312133463497156412551518379295330830097646235436544519414189139891081434303208522135739783189484499982848750005087718695059662934233235487936188721750715249441363067419072541588718262728932040239837857677354267712479968386492067860749133573560583257237475119224379140068048815436044098774912414616267680035127415304652121535539794516392924065927492646256690877853876762157822533010964064844046495443692892031897427909634401390670931746151670812133288619581783047576193304521788704359067891032505437023687600865564171607122998200651251924075547296336933071965497762514488228019440251738788412002702310987215358427683368557649352370161301449480050067979945650447271096365000714869343468221619059417695152578742552049505522014202710236609148711190162092417022309272364591491799330950093492307353860540409348422252469934867103518150874169198568500409927213277123668118587866688659213916589550932505204178325713590818275472097414847169789613965454684337568559675169769107057021164582404166968740955048649150814806723116970515706662550871552401153109380965904905219510768148868750001203487616782819500841075525675942151557235709417671840801337250117482585395732685641952756773211170144635710086875282833654668186552719566539435980653747805028563629810178366381588113600873246199986359484525983018521776584391104656671317510780511627879918063493367578393858085557342979005220853673477310854131899404322208487113287572713688324314577000882472934950871291964788008449312392337037547349889447629253225490824880455766602424308411160261449252384003017436706928458321580864525699616204932185375656234199604329791140219849298281294337999705682166480845513635845745771388818991602812704951504212612602598850133517174071123324918364202463948952892900842859287385466132257499970604664568201911516612022737245511365846066785971720084114008130977858307589404121936073083042048065813446589088258233540270068437592408560539580438583597856993580152568204229080700765562834142694247059558708177404574186936646296359092561674565052319536899715466457043666096942464743883160041931482827259026662998154894661548856130185448826294640810785053929458267591907439384449831612672812449700216323522192970887316851058898980995572388420405954305912851965648405952086875624079245732900378046220551835606108854156517137555302433404900061266564866485938489179871309481477631195904370329620921144529091894965025476740360782505865619098176120100808149120955499168574271043294252007062110679224499197489527443627498557419222571649421975899491325026029485361403340387776743493928989850446416904554354476788900763215146156667081932769584059722512645647002400913707825615227405877268234533178897448295747118164261606516721412051762211928666240635966184378126719088845066315610724500607550066336409937734720279558993785247761465619894719954953860773617837684449314082817855272725110668136637457268050048912516968523532450183312667853750240763176933772898607552795743053025016653663291001898566664677281248004223012874114993339191901716081802525900787926335463265119393163134772727680260361381296573167588392879108395500183104885061832919270717019030494818461261447434488573682672266837173900217949128444880210247553546893168790552432309943044088989071972635804185885992882165893772112918259568658770335199733047152119663307307292897655957340759642947741606182876487479084655983280793781758893188288594356027354043946615289914874513569784068602548498354402646352477201774791739382840446941289777843009042785283655440698389495703520454296437437311341687112008642055174174494851755678686426650097079504217088860396710128949061338882593567748137694800091302071386909285834580161892235928358723210839008868679261493314750632362022776110249594260532024511650798253032372770692322023334992750477050337197167541945212139822455983451907623855492962493779811421012946809503043956302178780035482282610075795730418533226595922544669697366857271925111964167156519965621341181845616444180138651608330250765786986544188934579573175764801346411462805763783308577837071190935209050805189196699592509188477898629020286629868280284874960740502622290649126857931329534891560397243412313681083203339999894960022265706832798317082556073440406822515946312278542132446220541726144166164019777529640639809399961642046551538959296216173821493274451251875946976255896407874410957169676725668914104206738340521392623110404914792246468259488276475514738101702999244999263272988024282615938953764070829975836947262217634596313928675632888235952050003917550484359759605134615671777634177936194982483248348973855388569913458312351372444960684096479564045307570002728553503247021689781500802322292692518557268731387552057465887836382612858496887035582993069918939463049099717340612274239673213867626493731000812590636020010111728444522938322185355489432065316700028433897262887965603336063367221298441553207117276827894706194769252427658435047426377897832969662683508327482530734866329401043698988448088027535492597745954913979192572000177641700424786730764093783725974926691148433998044135835643926491077234950472670224071938497667484317533233825475407836659655004765084854949750206163086793829851281694430578018205155279478800576457961567354937623451216331265894780388305271665408942926231165281581659962827115948949290593691585175043585342231733391188354559743140389419181308942542332242500564793195053178750467487950502971828327080304096178804664183144764706765923428393642977038335212564853834328363775572376557264783018231967808177508507736044896810914372656037975819273774839802439652385166486325396715659872070651796912207555451179642949864830585726614445070539104091068694956561753148044551832657771843077930503054477726401000533307664400559745510332690197540270107724791362173999371446729449697045357664824797019875897245709611232837110085392129401937846925099371412682099316882263086219135823913738282967056814869895306314113372314427749932577877605825667614138557280822682443554071619155325123234452766545446128844203648845409015398482063914242660341177024522108830310764323301653608659895381659189726281218156731366445626804083158253444310761292658189424424253433337951430608707586461988783011153169306571472724647869933576427680479414518969929809382360996276001982189527972200747929851133369533316709146998179039633627082478184604578221605760042515730795715908245626189651692711752042851295779452736533371475969787184946263579547297555252391825981604867061614555004902312838238816084824054784380439627167484240182011650279676887885338725500476392100926307180751030877971907215366519103165274515584539099383699408541839927117746582207945313174663327016789077154548780991695204555882367464811173200093954701333266168555784620753836420271326466392983138864704330488270968420428797254317995036134278226431718022942037012620936314649689383776373983794854160497824361626884980341593143906371221654949722422178171314487186744688215466164702324934022715716975043071741792514571057889290892057269494727399462857592900311661340107657741162598993273656094989583953750565574932815506072647199967370169068476135372376762525226711499716886540645586174586136175176662031140774136569514205181517279720284919673227042067678079502308433406339762128440423885302473135252148502110918418272570605398236621458580715577543132814850348319824461595987138182166518882090708183010977272521772112610103138030319380260001331922407530340651241719916859043731076337333228346479949437773809227380503840033621577168024656048454846377435885361727776733138570858871264148440821290858909938590429036327295297489810551418256263010787534964549153939626494680136839067051908935388057793512442372735793435329471953481961294864129833225347276355769273130979389946723297343129135180715788481845647312918188571316849543550285927702185762635746227174500194894318187350766909234366515444078833767875171542435036792474434410673108663955564652959531368639120763668982689503939446162605142038115694201073297092486462739487699253196346552278756034631311059628462411503657581581861975702304550200470353891288107279639529573597667490688760213187461872661426647492734773122010707001639382704884021970439137806918463734851796762275394329492308766804192645954406590491185301754169538624091430298969483640117224692656082711466691734741858793367095645502198715002792428277400221719416933877909557886550709184260587371272097301181744733930336185263903543076922994482529707479182946355764185458214016692489391132170003803211251799340658229071877565810882696487993647895439774864853963147730582575884841572962767170115717200260186607905710974923483713308789864836724183093319421935622383363013304331397512802182974388877641357683119335351359113415326721597238268824198731404846763578211316113018292666934850789972415448894576138043023504274169327719652461463131919270890709092992525811695030773827334812721976821049319630489030869573148310891773910338456929076184466551130750734391903079955702681541548954759375380781468837197220175802847641253513013888866617491878943572622342170705628932489752908789520745335354702622887593257300574375760756513318201974880346035643560144609131443462068952770971933671332425111738484091666621860059466116931793304894915816070858243710529804105619189584957067807055887792849472918511997394705641346422250640585988137948459166025717649876218868868588224247538663804590509915231954106090770470412477174382285333343460312361681353335137807539336166199845633589754695836099954426492217278545193481738329364996112971639489341286845361090899403426966741194905941125398397027974701582713555075148684978802577728381908024654813417421290418213909529778832495065853782499761407360842160963515672690506291566999572428037483519708454121829649740245970731085197840349121357929631117006756824808839306610609952326302434114639709648805809565103308804403799790381649195867603434349550017084348282843048622320906745638258674052230269094784788137873807227931111777417584381665938871689840374468863771517294094954629421270388207029122365465571103969893367972825001170730603222059195985673383822050894842539501650645416252385571857954962967987546105774063471101183807214868831018889898501060752181500235830251565157418375874949036306485635156783098742366130339486103408369636362919026259725889001866973598570398637778985306373590007851909491986319608372478738972899486086329181575573666671142029802600541000599026152180901093827046632433492528348574489118957484178669902227108372114352511457449403358297686800538029240798429912984594021725064558466925439130413320457933303194979976351548254508304659023298737355180932484009364055218882525190641747491632815196467965879355600880689452135752931449074168179534298408005373865229663550072811981444735078470644969201063200602117999824031357206837433471927686342086249752846976326450229167076760079703197397371083649588705951969355006519515403583358768578772374839959510444272660421403114631563399440752619708463871439577257127944128586672022010213945603226937969346469816399907046055373425021656886199849022923512309360668479760244169695350282829937662318197875113787197310183025432525256282808181891768906913907525542772262528514651947224205946471520670083291507613544062198727026406467385679914923697017067490120158977905170457880569274371506487203657364393973638803741497503567251456256570345525546486365576687145142793533725509259667182176918699127867993464133660547809852834281056852758686591754418791052319345100703447427196528726316432503788905103843253985792044466892971815346309146729410423481976095917909790732385427147172920766473767867222375448931697335372671033704329612079582898341627330237685190475962800212985037144132428879657233920082977341275401801750864665296017904851644641527794983388211835682666715819288694265747536008460866772183339232018320001670237039224817791175511722152664460542391893534200665851891982001361926149200264484854665390711505901394594221907404790806327919887742753655157078983106699818327599372299818320193529960569563199476747046394324302106924533575715069495090130378687610937247376096567991370178894982572609670069070872290177592648786197706748107207442190677103715918350239292258587591744828642387710803760951364875910341679038551355116074094491563934052243860901056908394566486841032188550862850567865444747524098625200977666323448031689924758811806732135373178231663511994776362371382240542035537348657901128127152363782387970697093371769770860361972955943232796140721059888589975789608157835643302837024039481145531231303344865610369111191999183613537082910153954478048086658819919099490231711280960588683820439431950578149533463868705544709409569574730610215509203010799106988914408453875965418680612992517240088295869670133886037842613299836514511520513476874378360349864026020427539230604439451297564044825846995071427609802295207415241959570839983828678452762517754022007342924701009309666991653436658609420696425694240028574802799253715585309907779450602275280947469033601899616849572360747306322417579019301046400744993852511530639654470209842517360717203518430799712682697023120035077947047212767623821474159483964817910409100399343390574419499764690611848865340312974704251510832378680821312628196984745935935738833377332980170887594805427230451870146498912026744199049409617727931138416189779942092685369332390800355945426454700050101873277987059565568629635015558059141750021128305332607630563822781230246630561259856318529128215936613905986454489018074541160360944929475391438621106573472608378240973694510912044983341231327189385387713176008798266365946877011905194819013669665760723557725909205958081612498773886129338931700039311694386973046722226927236681058353435650385013868981199042564979734073740098802346876910986042744337574536190710265585439842806043126088587987576152703706955894949467810288434127013366769587864427491259066744120158847680797948735660296881297710629906817062551947834394218782106219509732271504481282897318901355788066275992641928983813200675365632168623822845349349163643792009997245090904244574175021805528320054065471885291727935012597771246017080475165508818165240207464514920994014262248540189882708049455266072596155327430899880298352453202358840070882410501023333717145606991865817260592809155723080979340167295543279437671281709643969761977113629902333469833395668564533280948166321686651591456181827562953075016545414242734959801752099832086984265266725788250792346256368913650492653027341565978262214105192860668436864830090110616700514443003044145266295166340237680818185102720047672113227199920614935851536238296881082458395874498306013798591923464988521636009965261106279440046581568378399144138021165909856333766622393684918951933704421213469926338648121969503343654814985859901835875156402477995331230757247569932080143668088289840406017848244965214052194406818953734483840823567365816987865374931869169531803142384825795631836846344017887931346542819384146731212627420068001203693280228999869063409045607880796394004613091697729673167533171602158149275174018199962247681574402997787642953271039422656090997443340643625425859330454535707307674865545064129247552148866045204658420177288770172268613509471713829677219181933216954720783747369524569447672306342585795162369290315407716009811418176721859582683313569376888705513853949547119197715493388653059746216252186821878726926937041548588986306133374154870094111424365856416198850049613389140387061213950918742848220399597896293703801119519606205754336383571210221523852351225755214743655439108686197769536718228404667988098403952187336251466934142124379641075230218366612073066722338981142302098045546674618081199805090242455155396433106766362588458760729341806503169280081282443341710168561633712234200919020111740385833198462198436185382178487709020817004794941090078246782211529648544203467710264515622903503558299704261106303601162412434041135395487434083324456145533845619818350987363720223327512787844575719041265668058470373423731109063789006250092486911130857537545966771738103356507882123470640013004782822268501058456125243323023227275146693750511586443909026894256521649814862605395383294017627255005792802249243623247864679422243422984297227008231487136793269613868297996159900981341133014524975567354077372605924038547392019921990903569760591374428340448633654875626365475624298339880470544571785857817884110512305403101620381374494258599195594159847936141042449262119976769555743642153611516183148142111596939048203036858760358686314751573925983466450430229417980500344373987437307912878451267956386302845379130305933012279340458257789559522725839242467731657128238159979975551265810519932606643434176959158771188504957737727937822171571373027464895797331935093551263738736826782669458108898409500377914338438688402033516327885710147275471344900365439455176965129660979048453653541517211129452579375888375110158985033888306579865321331248810639514334269489968049509324585018994689347628631465096402904298764572630791715252022226214986704902642709130219845706783908100211870779544254115973926304777902689603668318765389396141753022612957229694492549881745183819000734409498887252141587148345205309389852577200583534697148637049404759382188598433507419327378726407739412886118872089437434288226987862370064645831039361018803295549047702339607033123399944197736310841822008094736326999443718284940083110867477903795777463201993460784815150031928832284051425946841114432847709572100514392811013263345581944778308112415929009409095849474786785627727795271239359953538885296926137584894165437669780879148205648743481787399888692220667843393943020271376954450565347830274364212325323222972013177344273155865131896596958434730488896407997961336691756685854711948431446285938084972775843785376667346602588477502914687806882738840805989506643828431546708836987842509049197117469794304311182834969399353639813908364411338601488287940123765857949969831506887992027700027052093769260757917336206783927470791660976077050277433552686004913358813312295651682384939487864801725246121074894830081338266746471487041759804777084275687384203239782828647612844314878752849894069070460731679970254976963039780080942584652209517955004492800677716353623454736694299334284822758424606719448131885056441581161305103568586825404119481715573018084441565229751848185244128702287374670606135952665651525058913881863274259965108894496025299772850024680651019485322300906580634218466759957586865967028518461420417507816017319627850470321136673384459921611716633134067468392074146682274996599241486446329509598546682504639643957418360818070977806772680128261608839635552829107969790085932793892846087956818397634481289184003472662887746962524974138874232742612153822264609623699100423063355214933890748463745039570926896833455447430951248363991240097824252225085535072636090612185281012592480472941825876726303180550470260844922898197973416117831515054047122463170649891889222020983863088194154801678954200383448445838129202004741571159945375375959285587436310470732434224168334905542802421048589438593466378365593974551354764804445080515126992780957245143146329861502822492519215320029631129981742005015637843178618489303714339243696886931696353808332960116347777297651274297007537265903615659931288093332598640824395461042391012801447546603903169019625535648060870459330804751625111049113703577170211372365624878780962502259269067078439887231958958505617084968680259473191866348163022443256364913491172868866181052583876803981934025286034485168436652881816187808512524633499184382847465776342090930282903549200528642466201139523663031615207176295799287512191578996081295925667455123826538947524976953085299988910436975331554614258787464571295487481775265364537533157128972025189150963754045351614266620006350423160226478563234819473506219923643985547597482133612131282722821350516580278702668578954935543106167669386787650277658746872225126452368962077274684186469719611290115022410407139758349097553983477626636900902647272330440982785396696035313574599953969531057200356289939579429741646374193944132189219110696234416489810882248611491217037067210603497481048115993897198304982660876911443285604864385337908290217412404460935241164446683354322523239790735769368675480717564290376404626701619401920365050821151966027589217298281266002742250739749528576073690503167314858630180519210132355625551754714033077615001516105095189700291457709773559821410053221339740131460071608989205777324018790232424871640473964118142008601789969049056217063415505698413874733591439497268311340182533279679228080761382676929041035379310482185110977708308223863161636975684534898042996824869323782351284688835104421010064149165014316284986432481878482133841174324510664709299966661149964732868686217894732018689388757441237854525949438049230911422045003186112247358842461964107790715369977166528597041546683640380452932683981910589213937750821673348232564377477519352601004545203196136649610216698184861311556623328771891092194133615095156599897869133368022821473566671000158944149647710227709289683386380456603124651651025475028120582472864619852958052013436356423401187280565315852515184957345345185524515698424831531286221350644665101955951647819260235777332820168077008587723511647235180058285167440613520803633087564953995152025601610075442352918149818122161933059126949979034452895900057274948791398976031616883884531612351315692563136675284885365504594717856755922777411547382172976507895848339430036974080944937500473017195983887646552181235919028783135476947109156616409634598921936127796112696403823466628631706698757321980813576717212633518531596331528628757868479370231278953395253660165109738084132999800428025053157851116015835537994358807221375657614475197587243667577666801773078014583752638808590917856019909082011619602724850783357824837505990912141599498453246359434064482424725011722775221066162494285507255734331068499795681385301810164962687218639149710651872455427631199090044148227833288399160328301597534823090407791843605884225823216326359199976480325068365661494609081244862708807183811906688954552997663852468449922795648628797376909674807176322840893582168434864698694708137313401057187423496384581145526774555659485456121387002160338812038093806724226973805758561464256307292899346490653516512414469143392407747155787749841084507782729803330528393151171198638254998941415819847484230397814850445190258658723576342186311243565265668922360905353101531745550258769003843339761023862799804748526578518466191852595771297194674216576699040076177779009313101658178711799474269730142942713891965882926063602180453949987377857033328570368634011820480871067982211170873756055321261114803909293796686505875441618237606912507146789356058570960067938939573868549711819082161342818569529962303925987874780580085351155424150452130774287155223185250497429713844362074797940176349132604397462906020977325379302448287114658009399831524373096998642918442083876423903626044196555727544382739390350526854909115300598589888993978955341930020446630465715863945200562527515092358968521103417712628713886250608243409231196963870352029995049462112985137658150660685513968607591514558314057533687516616272921306784143955485969066265635397415986201942331440358691427756060536957137810577894077338225527667310420872017289541286142150134186810972419361425123001422622092170027110625201983601324670323136480774109565148062429454383794090068482112029063187140703860934563465591073132580559320501086153674183052497489068670222452049428421560943244728507692305738840965840366796540126484402590094412903539712064192570678818837529790515964780764875494251859030506489928507467219839787989051865511543545937360651487984116604675798025020636418785391948788399520067551063642423695589672372541129493866897595210602615684603485155049214979521130116738763664404787681669733220001205160347139287884891244365705573058788526148174922746830841050459949261708544460468977454797060094885084823204310869971521666179635454914901397003951107427643007855783254185780706341606132825367415353806787543394313455258632479364314837212301915032886288735151610210669500293440189914434610552244941879997443269587271582280413559394643767327603463433738699543805838432536308689437117085515053615693209285289927057632614748581502109802872711908932240582376962256353653992398750415868034560301622022641869106950947179533977825711788377317709849411586508449556036227867902027620146949601964043777348679399720396475791958740302830155117348251782132191565325985091675962503678177031333443027314474407147681047433534532515982813052539567429171029448312689855000600059473862262755786377358061218172601537374220427692467121842152977197586535587448359150956387615884261260521030516607232884849571997375754137534299638284434488787852080685628032498703120588469902205924474074455243063138076014409403155881469091237877650388694090850400404181253275945407665116192177799729777423927957916733283386727768512599682945903040030871995045513783978887728014311540829924947741499674019145012040961741841757278165173153414437311852641487890973631288565235160068323505014522928436656385994427280089660761277858276778904262149734440973897891804141628968159616049404569402025120213691460078353870979359223441820013553363375459902428382251116641902051899880666153780477656006832440928790526791390786808582973055494595811460792735757965384222851263324380742065121825799148099171364180260213382682744583236588562578429493323744016470632490281360244511033686379981724822647835636472217062761088909126291023263226072854968881007951373661799462209378219897720146356528790078145709678686615998545883858973783942602930991847803459608511442501130310526242541473818687477516245288466527537286094541956594089140631760613898632696442182454383885814709600798574841461693688301731547587355295366441558468031111407736852672147672852216265846167367680502184287277609453169394575045151179004609960870492103802963105194103601693676697962549331161848126640726084185382890599794157504199258191798637807940726395255128055999079794407383238502066080484925725396655080045074283619408436313462850757980368618726439580755713179554833828131919161584267484389835400848077060686583743205453005124125185539535977419438489040021688247810848408691087973661842685610286232174717405659531471303944505063037998383579932058831806981356753202447234141821558942067093358890772416230020156298103768118971785043762731872410257199401028524033384216970803276598709956254494447311577839089415859443668486239117393392946137862208520737971988472474729327923691849813127691185584325799712212674837031740117155145765035553250489988380184342209695966897693320535276865736378404015264541644372830236927340566179975681882784812035165997591780285266798425116168332428960127708974396532173785654378740689854711597324857348841219119662766789172284052053366340846415673551943572133476047516068348381823411165435873975974635507269914201018203669951604170833004595712900149474930114777646471049799741230303581664403009405771731269949833730476143121408100084178992591644677737076732841546282545423434653113843482908795792204055736001455382313466983567288409833865100751514382402181123069721743387615926152000514010651138564456841170284208569536507567409730052001675638839333862189318913458840418095359404687612278925482414136122183044974533412358703616741476821582801560190624393860244709889323397281370081134565209483666390869905528492638677353008877139100846035096248256182993100852132008046101572846684942493095202550983624804719189391902040075548062552611675686720765724134572526558852744454418749095883599235210442790355570376579042446158593399223419181001809708547050641706690640207620464746645425872984110924657040788218260343749508714735839407665798679310629901884268884099804496003137698753885797334412771427698408514781446524999689975026959734850910578446976628500733061194432697128287493298331173367268322245425271486534732399159409891575063357500652382265515930086193104545317741623807845680956379880614291671689087057764733147023716354587730581572585524158777401638862559192698073044801504886392962450355117540439164167532637742829390334304996193317518703292747199866798700744295905750889900385203386744737920189890605671821089771110392527389384781835072748119821760673368324724380096928143642716190779251831234414436898770179787282171419216289035848816379375794114075110353299498735764525147950239590490378070136199077535579934810965471651754265078177789458605309278779862044474092790751827438615227763842247718415698990725150723797018187568597108191259487965639265762799402870248597336443097304494224610440123242307253555316013421650715937864189761526790120378377230496601455912100844462227006488664284211790298774216082932407912485313425522596364244874770812051676481812676711847455771524464539102340348296321429699487680971492901059329771031602082578966588679744493716059341668306315514092739009479288392783520572130081204912649311619283779983700137702654157886751027383572951082722251474288490604145296757110226160579120887408309730676650074302510384612741269404396111610063914422024613270254543496376711271908851488262354393302571147354475859027173618683923934619153714485772845441100715440408738121820101733172765859183019811817189470531600330241349568785645561163915431901466856875382152235870910465699357698306625556168919341967125836885324787311216196381005764060996091185247354222190804090513387903029392774271597739648784079238519572660954025274487619838941314111508345490466818599476863210123635188296686183866423976383149746419043784410245091037861804846956855440821796634838170491579175754052093033213575488031849194693786691553756052304922532061257138599017321630160046515773321868571116238573527310661841450903541802410584874081892839890092038669907158376322686870359407436444144491508466292363226763159639830680862151713754964203055425527596725762468672526242225930864325113099031435333802021852459932566861930565882311582918030030890876689334412444231042680998558236796387017293256515623197625051934552628991426226026172578961757045415873046889053621721859935240604980229688390390694018480862806319314675754211852123826052474623263497355214039509558053788051806173116086264720981821546301532611374248978266779151250358103911579791582179443450087491820482357498536046860102545871636000123421668879093308641486571605127316625138246067487807266656814263922888938314206437934422544212751488141520328733378409767110428533263887214458757136825452632174544636701959808387506724703152491322023291211243861312344285649847698615979609860037346104206684983116385292226251701605696138506771297380873934009115325481856493665988863276630944898320556111735996521352379914855075911595584781273011289714856145888443956152577274907179441352325839629695101412673013890563646684107085842714314988403892541459795864870847758381923826447232208103502102553042046678404746227801401493077643267284530670405791448418306206307265309740449832760014697678097018613208904774360366492039291864344613275903381601050469102888683931082514570126692920694871180522468556652767393622841593800348114497252212518638099676424873443447083132362454004659736351877368696847248124284003162972185181129928331469186170106615395478495220784244988008009556182175623348741362409300191693140519154773034520292056947683013867632819583639750217183236701553561576274409382369192683586324505701691438692352259763357828235326437391914215188648244564858725269005123080104379948015148728417429961388721819684348347824652185980642408812259067679236337607787165083631284984869191110150377876136420028720717627377394700003708825509751885419517877527705284377663255187424311639617903858257745305352140331064706206240830570831716375061362097385275267559924157646622173459029565393450539391933903538637093345565494183675639444159632499900470313799691594203412113466180810668171216583061424393422142435316331124970097279065701222128965488871730302344375682354485660583095261755598945582582821499608847199410337755454217181823234865132449008389442340348280966404405222047009533502969127203400643447506225767117357255658557861421983363154329308334346294937862705614797338933672439659771904612552050311685038858939757235477795284125618214420306165207801698234027118973756447592759238095787137199339118997134915662906894787261750170554905345532472621633010459913077473264053222278992901044251762283617848708706437716412967095452248608238520816127129046725989686637278306157886832738740393824329790392369830969267178753798078358913266235067356823713556475601456650483425796737525454638553842854917560903836382646408174681254118480292333978473556881064970059965778776507076426308346821700202842419523676714966194053330714349821291193048104082962260427007175495401941717668185844504906496677959991708607202154901958925237692131247567382775485407637815677117588809881909139606525975107191564144261933955231828711195548930600759282643009334984403036916578055194067660533850515583619935823452172451529066183429641976504280679059241582656677867113803061590691686998424325120657030790270410839011016151343324179904319130216443132275194787544830153832127576763503269888644218889483414153882742932437369854298115667756421257095639544521536310626980015961787656979553342086944474225780994037035082707070211526718212518157083631069457553112735166607076307003882519750829932822729083250334892173222355866577291461762320189089795271184474196969715508742950649330804250756252538128440501445442934761352389204964062509042541414931829530070824687213090440003622175156594335671586799169166262858576250586833101968970969734603963681137290818471689477057087324329018113244206665937708347416137153030702678502993727108751425961703785394753673125103198819813734700893667881115315811034833455047381085474643689332318636235989647318134298080913197781903368136623715401593529098996395175716361606154168869366361853729016181360589442424814192866945221787984141211064201030754281529188648572523013766088667891873081723321185559427714024073419702105907917591868389565365332552979231624101046729488317708440097694904154257798697255637588616221486554786252532968818372440532205999126887054356436621678698940317658645424099651919621520245282616770237318381134450516466381649553059551829255888457060621433360957662877837721284316632835980598183107079915534407971336539923963887834249770501380806939604314909959920398265706628861378888150278319458629904840338088761215463747610505964791125882140300833488437988530449433923861901109362510598355259554900093701135482166432487584231099652268179649773338568846072299829189746870802485587369475623172063999238766036245078344637909306425749224272627318284811109405343697849212385131355699780379498912720662145157482780390753346861313637351317210873051268467689102307725891180019262108986600762180850303355531030787364162093812764792353419446885289359862080571875695221212329593262791137856463646434100615308095681489083683766224497391076774431243552263796213109281358765061040962414701144951772009817423447941650674415540544778246526678863837531350054925387995348681012391424909163548606669877633424509110355194714246819174862261001636686781429577691779534502439390309360819000735820059195427213418945394179515469773734843141571840043888613272616192037529346312643776231193869931367956634664148724137323197314342092588171394503065352747623241753087615793151845491179993251840744624211200477842125150492873069009472732582941493527160351348254937819785758463134342625463239495274338709749704713782354802317464601611247610786391089312952470451961922735654047649568987840738247663966462814920359097186059605561929239927684975971789693368820481613027684167161206970135489855078352081078279930341250947813861948976929632112799219221746408953569731470626672589065934852486715571839094410701687619177194390992705144702035829561871974855777688776976319770124356952887432879925276738364798026002738281477916780665110862170234263839462779286457362359913149535807125321854947511769084711064849989765286630963267963326273577635271808877775674437347234291039674280398933222474567599031593503975472587651246064868093779956332056420552593665477593072282452837660893901488016953144956588615265473563673875515760103728998597724326021271141975123062776728717934581934925347122125446394958840431217916351254076308722694543249058996743766094075007944198551305196508667968806490255057371936839746781691785985872376415728544110705332534664423822492696964205547824848395094315661340590815481451700787741871436337079938133767352383701925127071958724211239587204950490276967968750833918490555538440023463211809140590401433512217103013486985335313973884165072304592429563757372706104560378115750725138751250150659671987953678223969890732333646209784926317327137218132904351804848746953276316063253977458414371875023223225282814620412696831932917993744773191381876822858198153652463196483038827982068080306774655498802582295393031718076911245234319553312834872328320774717774935215071590835612296630236339872602167361692986792876060321278685127195642326720437721448378722444559734359546371460084355722292844400385911035969295566003682630681090592517162068670203211537060900722852237947788706128782375478740651729741110903825716470793208956699919367679063251407272349556641598195716689195754929770637274046944202112521367133347456130888439623082754946474573930080484798331095025885635748464677810404471014411114129925354696417826287142617478225877413579518340865877384405559989647497674255254013460794298730095119467420034732306772485611627099701573264272945587985831935244390337971195143935372773909025561223090648173343364904785999628656378651849963665083677495324983062501177491808005867935079244888381927791706630774651416619155687426061468480400617947633082243091697134304988689435031558789633680986891391929576434443277173651879075781253187496055702105033760886340625216850688910680788804053894058479861364487955465421671230324661117118500310018472500792830485405426804534071436739472881386605733476159473488766587686781973739961301163586909304373449994633364832884132743659311603292480111443952652389445625961512098432690687322587447032815890895610016887806109699232961096086154716583853970421271606921521359311103880928375797827937307354534729368706028105852690362739971869765981594000198091785212447866149431326648037432562075804732696064062912686897470195304719900802042863190155619098266087712177001731264356826960084925655878501731011799989277148376764107583169963754730647679301716389075122141236930393817420000362453345786273158669227193082783777463097125691142351594638866578745469509996868292026505105887973330040535645037907749255293495239714412250933930637924960261744540752471520509426283896569038562999752238742196117392399669444020420974142413186879400352351046894783191807347692481035941522651937312299787683340240948063557188627820222152051803062225984508703647315218043211967019436335204438791415010758148892987454655094944725649710498470603806104790624675852017232434165929580546684314146944111926830497710898664612332723023339763786516367146770430124881344371478039097248963016665712982893218749797467033536081669040691926546214617120766281545354398712746245444419449170256086489163389855706871553484655906689782884244894741375778043354692394735258462040134385253907142228801284775267300082900997866715978452370402737823865051355176627867187853961980934810010430005740930577664663432218746063019196808963682362166933257796968142185734768233690406471323744433597065661019222606452911226260920042953517202014224319952129430590418653998697023492025032445840820071142919310069822735034753937925870746512692156198580792426610997284466565487767293319347496942296951294412222335205889262403011031318789366956354353647262976432427087893349525684028960420332505270710401160699866827274996058231091664349291250386195673829300286038033768049721503953924870195509499263036029023282259496386238067607735407860315104572940254917720877471482029394483995061969351854838336588376385286325023328369808884561160289447262476495292479905499867500786080860633802627204038892023490743208838094034975148698045979062010941386329903304868861458135591909289956089652177926138419249080469276905807295165558108633328890843783723927135701471634284909129329730294303782776405421115933984208707821705875202801884068507989199930060328864572862545319906142726536483231322092593830434851925158629559012617967101646100009512233451843561150178145721434207314462841244041679536209244567974105474354746164387301584533221427404334086626449448496471928825168015362795870938006259445005937781178329149116514987751387523900743730816855976440975588883600611722555252734980261177461243170002899711741331724672917514799190766815614739372025979187453428837118415087909209319474712484194096949566287981855307424897405312320187386445159816096049741082525690700744999113669700516622520790583130933458418240338156783574249885601136414536056187400514142897231800192340579595960135201205094591960383893140356616121631898410556066721054605912260053622525918809955549044178331907856325680645307929544915389564513191507241537398761476403697323508187214709851345025379162450498715272075715815834434097839555070575222401930495378320154205795017889962036280833826660986372720815990942369317945379278530547403712134604688542943378454451826017246903950766478862976163904697395049877655917078782015583352465112384909729472545480849265065238474609307939807631748826341986143688167977373698205220806387829810640873051001406792651893619335293391547675396763136833334488500516019171622248414580470375729136789994484538523638367794423404876240587229956548801836122641425781370046422494206101754040281480415921571658305453981378118012039971998393436980938607340682498236918012973301065958642085629479339585714011210111323357250686486187169094414242598104260994491270294795671551212683394626154666654577441194862759262333969071446640036297714532399663064854944648042369945086208915168987822401362452372183323432425441195993903719988030560884430166637880519214295175481986026197620650637821157986313220647622432299833800530888150242101579654054571030599775811196257201744097969540393602096483018580083807723013462520532255707771992349470771082642413727286471141618185152911052835642652547771026411534846007199811198338548674321926894578253360515271359533292389093773974849546202642356149030074520643786238745812729681286502031042079274642649023660824161982974089555268834104623785889780775709387541142095231129543230482027759604999560550239492429466855658718776583253575217486238205170097994138512303292045598163336118901734950790460603561283580599340477416837920246468609503241009535836816213658982955083027220524285510828239450708138769276002688860045855465170927029809049224200695183782723778984260168753577876889971617789179665567079485068109548833606225343203045853133775582038742816148947075317186250731984373989920220188872537073879285539079109413734376053391376935707345423358227492134142262003046128388367532675003674877512181431224081948220773196300581992230769995390405073811280821771530033774815750523337193740677765099992412056275087023121899152783836790849245589668997798730806850965993552354051163295954608453830840556288531268754300440542172677337142395541836622948830459649708544966118366431084547423985727873641327226672990471189595378713097158783962563670964799740504585865646414820469071873269666550424605412284432762463691606747057396323928937955027040815060612837519982402610551583898252494924301215803644242565665742798241912786032070919609944448385203922960770007418259972461907455100846492710638615900396668271948273013588198243390758083425438202392864182092741848358555655494438670620557909068033329954300724892700273215978149069024083717168828217159614787997788008943468049090313327529584101064431824411842534666545988488118653568392236683609157761614038602890063770117146670583165941858500642340999983000153069899510115372202489620934785034956111711945874228373221871191443302618935144315325739355940811875920238243296088876777658527884974834542494073776558957703081832699520589103412696069491346961999872627280391231623034652284913778054018534856558204279924940660513152532115327815397023854478292369600213380718418578301451912847905392078415349341434641025768452900924525918762362017655052856036340374660241834990014217761928751656446526051151932348941099827651203713045521261044615072792366798191106398513897540136051232011473729895110512432615623707265902651495220275395315259448901060893333608120230884755455439100589906177200049253336715498123596894682725175080464673012323376858790998821859788796070754042353060664686165921455818530206435550144497986769110128051782653009294824451794934910529969079313338060082402235016308421038585992605048512647558456386659209295970780953837032280685589495215676240057661278933681101813158013094658786600858090803630707765219511511033488116461140660496189777405907482339972400471762387854789296658176120294590272912805070730500582629618691465924478520817834346302143514088725267539758510875426381477243029463712870816364961914862570574883257164644957569977762458898634272496578380954723479268504663814006989497691604600668318953215919303805742120816029802433568785657565621417186898466403934872248170939941973025604596971682492845140170924624685288094593551718052024881817500791554649350164341478148600041052973618693716707692725080051180084430121941096971658692712955599341806020468838637093319938849184495994993004679762944565376967902246282021048408492287963231617007454751622665433372976325971179518970251415367745999480459366240709206374551500565198300496061351604002538045984910913799285542441314840636457434281351805523403005221026324181953316506780279762453916202226142781471772470532005508793302868586413932380228874268546979526602866436967085575949514096046909307623103878431381957323580268329338044350961912848744851517669465433370570680789508130194174797282727917370570845369229524023933715735275880453387503584940368193645600943468351177421267038613886642555436847059617312721191539979183064073343849398834905136700884600920997412082211133393149787735248933650742284526072666395913693560535156407498730270338940670798474141711768755274592231254355716161085215076081070174324058154871998553617724525898524994459117119610833466800567706955100439339417080165879049443287883044531719517908327997668263775114707280404277114589258991642225747915434119841951674626325570443772212293516752161718631310824009243982339977256006133144070597376217383139457253024104681457278408584821985303662744039417077759477015902138251408840381386145367043151631405270587999476257911659681162143555216677677669715727591939045700740690991401420109760014599752460135512888353352575954234398948271363540588092300263339680758797505502182622430680287141191221951465550276100542067708748102294159850562170462460531509990107041184345344074893521735471973802550856746496007133611252567304551805945441279829446055805794560644208712256508769988066063480224912292351324658591587471680991727236974546265594058484445260414284808418892937709922201425638015073390124171436573920315255658729778274506706611757126791029992660487455602882247445556998569333169628054989354962061527423809813237961672011854899353735298138693920227497120327220630850087386255569825293331071570581647095999276753416872315873416594299554579921763337809461845750475311039061032770681522800349711945241998122264964722211376542690347249077790851513673961455414425074741125742661049835387759895826441801387674409083739358503794187982199152338955423812745579571947456537910480014079758295293611080136257274758480674485983088208684458941336863139040015160319848606193084624975969348296407307441428575833425285949191681508380692268997286045427428254520109672837928808234744352669229268974722316946926692703110750543589444381548694371107488392020890183852086038896241942524522757397112336215445039510722269538970905064378338603601095271390922338435073744524424497282827665746948708055354721696323716943270055781201126457497149722947270746923196631384105340241535491294004107557259354224678959503491118323167498647220810726200399009394192510917340915835775775369448602656274697669018404643995877661320652760018271032115031376699670923557179436967880221482219339839547000254991085334741093703133723726172329020676790205848838977951271573673923744064016028779406684004433457981567237966369313599379135710561747340640656326926580919290378541833768342878859164086376967884310398117100617128653979779266984785448767767588687890029179474547524631123086900510480885828415745502802388340699589167713906207771275747142668516181991862245444997887531741711090819088521287608592854767180484560190454395158058069163690549309723476705285641507043544785138692152390012295829696557266382169647320440460453093789924461787665997587760928913520544973338846066048003328462850468806877820830960799841412405698512763457196591358138117849013579887773432311563535817438588430006275488487368234693084451370839688898458580517621123344113421127542805217985762880320416748726214781794288989044461557071263046607525122692302131010038818001028570470625976094508278499215456442882569056575476118414150777550551885327621277917041530995638350718394873547999164596897855637995186171828660720012949256939837630460978293408715506989569520882558756835746173398469755380143405345521429322776579211360168269357877131972375197240238292988648416886287092570747080732466423429079206998397852500180756856671534695788381320542869368002815336801728371738816321244678295280571867023064936938623734598030738585531137594750090467064313035748877589636662289642084309802275753348424179097954672216387179228900735482820298726230546746833718225406688873394208766801857993900085160190836230083922617827521584205645184910084424197870319481338868049361730755384922690841258318624483983355604486858934829904475253769139108491799820535598528531818616218484567032807163338677240471123516383092056557250263761760944002306173486422608340386454820372296512406219762012076440147358555223732601787996052564869635247016897024154591011536992048128082745156035807547318672904237367842206142589202304440153541207209305623792729902506937264786342694064841907234757116008425524722136696816011208968791328085519939437570231914704126637506161466259698827979992000115527380923295616239873701602694898973990130974379002078923142094302532694307563110712840175815153124118253035229250029027524821248738925580123063096119615137483356564497490682861348617962853654099544998217927398217986243119758087752867559698867485275707880639766115533555138249129902477291717702090671394936389195982485893292468116382801636661685675547816390654105205065613797865156664539397312290011717642473108243996230290319791869540057701859041493604028206036712878328564745777459028303170441213056626397247246379013977165764951399456862415553316703983768686939823703992473197542137191412945838777660731564696245046183740043883921132089329422392513531266992374434635176629913012384582037884960207336910083548323962490386846622949011995091987455169644067980664436586466827746096270806179793749009289831881083765880163705603450305171732987361046968222894543354744147413215208830576309151492961254472067816156029591053556287701496042053052298972923799858304217476726084444262394029582084705878195209065649791431137754221912463893197539270351680800689222481583852510763903587988721720764520693616354672001701640998839085304896939777472711118628715008391970848108452553038301316168828315270599587402196752436453900540498898865910328357160170017497738885353829330940407168975994827021458832901823892050889892561506495861646107692281620854981433407102543654924525450057783420375346095788701497629612446827950482105147905821087965315748483633646218846754757147775439262150643052937896583994783740932459328714073500207730408368119009039321507805967742124738088367231652733991310862459906445229569416757213525832717068790011210440262537473177614430474031346142962996187717106337267353259299783138256180497600630143922671150865618164708690772972420205802861681068398749196239024564271563488626353643190560809849460399219113672221005890724018208228952690632379118113894606805276048465380315604397189674482107770845336538533601255480692265530690331205360238574868448864451177567230491462451623313387606605698951117132848904807615270950125557145111128902457323702698515305165507470187883836310982140191974178751887793271369883155601375860703805817365877730505714000972709471481646499593571817013019331644499224625447473836593390693940579640657104256871797026716473195593048294146644997033932406503511313891785473788518287509717092897570285324448220979220439775996397134824395307501034979489522829900262501905023335997502329689299260963364302715411646370929796092875182303695502713062606294894679521693740767401355134938363593268736517446238381287568545641711886518168202160663007760668592754694789549737046811272050846188588753178308486350976425293190766826668706731605699309327135926002247676525783903950721380886425135615618717929821541508752506760698159267337395740212331206217491268444448814910389800508984582412913060712031145034982563251859369908642846926947980174632145425756681635081927420800780715263883676910719965757267138241027751601471835615590579728610516300699108080949338718285040623458887284385244781596593034968170602129860398074212925586195997266749498477965897260282542705207541515435830782778670403126833719508409687894756964458841058084464935860427492969572404223013798868170736876861778249411401294715929978306188761158747452639759286294921049527003787933414837891279406361023021890340069801554839491558736206563664318015938237402955023638646710024360925413563323881132042530230985086134922565725965158871741176085375180153519862813088022902632082507679287443472349640471313544404564125967281689814163104799552205309081802197131582740436085828054362994413679405298140063350445026094767177633288714344154127687238816378975441939451537300286457002798179483624472140737398078801624380583811584802209401233872319872676933238755536532101513228458157476402576082913437687896066192425128111845284866654072822546070056118511736547109471557824938664019200657531509954411947038088846775849942631054937838803452612527621364620279983289727873421115153190372162844210773516526909113695594673136860846402171403102544463179262079346328251569542014713204053019315543316864295911742006727994880530398632194172856139008616592832985083084235969896188136283425098632286326826450351124497355569190681112278274660323939512188123151512386671752300871424662461450673029280594912309978483857240924752543500848728140847886720204669153723997577673988710685811647612483933109658973504539422871020825280802509877284900946520457689075980572325577569724980688008925693487334132351367390298161419362444778716233738998977639833200607756870470718443451193656171124255122883378830697253395078164169225860304099184597655125406200896845315943536255564460937905112854215477344081486484661831876657870498775489234587991603689453490672194360615383244884895765254698710799820075581048567685887254099143885658091222352050945407372139965368560720144231613158030473863206753311473882811559872169260428045061374430810469859026596891308573231311681310250405159183995509783347118605249702905872916508052013906748777910381888962533528672673172468008874674146580683947904783337037902537648146401801618903924992809240101375900757340190409560892622927003719142686559970130972082561422245282575169813867388887983419099050878234380514208972745593857130846113124337564387828590256086632199348237284939349572415712024482804538428275624444427374719845270116338425573052611026412785999035966990047330963137071650134955526840206982851876247191591124245297584886292351337123678384734133726921298829905092641178757778191415341894186190245636785948641171850786158025290300338077729811966879148635056411614817456033524877219729925429516654843004063392851088127750082344145588518849706243826511030891531320909197046174133625144838661873384657187222768105739444653628760996132965558358602465155782157516368634230254870590287537370114314877718618308083688144055155628002784555639335497273443272012423426054230247374645094940908429370569505724797907746642628721520626592475007851277316198826066988563213026525863858266228592840200587071526605371242254485347327860209078291681458560633627325111434809496426913686560181927740423716277549112010299533802526935212324123773525187567618925171123287965738009367167754770063261071492600290096987902170691967453186135113867581700661935620159167561362666956306502992375963399493698642539589272480182230076447085894747701753683271111301809465798561310435880163142185755839700526139820999124000839123612650080947048535245980879945800239508952190849730713403044815588299423266772329605366428916888675761154754018135798322820196918120114528148965576121936205847744584366675110346161796058930110698654376931690762497193554593211376005334351327428310385452245935661033611270124431664096292691763185142471858505150234143256316171989058479792930513539165941572280275853579873726377802821626013683077241503289920773205658264172407798502102944461912779290515476380485224512554342136822547629196715701339398461187045833763121020427597394790173317446471406208245452687993759287448400128471518690352300068919894614366863869085934696123657884731518462837983452955893928116338170994084611159235642005445102165909675765798628513229074964181479640797445952357005934398650806790942824208885346031131920782348959333643320304494878587094707620069609675541420626411085217912970137594906887808826576437580261609161740077327059316899616663003131977874987092417616899590300548134004349611417398388440831929874647471563297774463919014807459341568852123809140670441563124617426686339403721880716442838019135520817881139363693858493899409992252664237844013447023105533548655524923330101810147357895077812593082299913423021777060971678794357140469406939184281509838879824817838575410491076255246665846447344819760811879009860404525361377434395007872172137493987681584673864208589340989041355743890629513572697624311914704852344334952341960492410444046425006930958473322574392191567592863667736052999513971047268280475979332506902680197554781065925971748948878215419265831129844149296070126132739796940082367931194855847864490612732456929848956036352209009981430032322046754723592961089961310867965709504530314985313399183152723437458509521667449456360333785588703635550459942402846926074066581640301739609865042520616817162637088032763908237946854894020617235191313574609687081611357581075601613772123093822598571097850195974425059949439726941382455662213789722887979608950640915515790124792578913117092475756938807546032365508001378505024431132661737201048663158196318636630945297082496087936835324594200187956451989023649436423736474725168323189248042598273082674243529059016504635322518496506342616467414785877084232196863039135240254836093058777206139544120331535139226053188289475238693335734524706211079543321074348484698969365551611685855892553365852329690319385316251756834370878171653178202987232676455025513341432027313088733483911230060749247968136524710321964071208476547298842852834963758325842380572872410871014158296388307390580823852316397600899917366038928166876567248957975023010975818919932747546390968338398230510503192881577425416473909037269458868864266950712351878690930960359583681348490632955254024378673171825834151067664668532010720653639056725856361927141340082735708549742252231237808132667470611116225235045761449627722654084440991909083522785154411297170616838595278521902070529526318519590801301750462835807986935108650739951014321122012968069236051535318866931635549682051966535846499882050396783184589672308405734306398560853373152268429735808609290192901038165244042453675119691574085295160952358458211877915559438589791571305447649490583349852528971902154969017979460135143110530556861520329513232797449836965134814832920035600043715125594577143311578066589902735727663233648440890419143994515646610633713366326573526276740986933634869600946196165707062527373570582216531750190338493184146886451582343662674543213006830160289856081513689524600078743176321192705379900857515436684026749445251736458455778236282910947210441736911599663672512214981950038909092579302081341156873652901544454666761960177069935787563123558991222023292884103286283267922683471956656434733650280089689025223049289143575560302571856285720662048931419424622796882536280629778458055817363640812558722182977581536983244170784459829150803760582342360188201229250955355133853410025498605600045568283867336054318098151840243418572793291351010163127622724003576152370313220416831438218668892400863802536269382939199297199549493588214085760341236008950821610934320788446205261053967763292907070784002656218193324810826392491496304058793630419605435937886892690829252875914751378477781185063293653160728270972301367492987751583746052208651485974164145905181337919349017062865395987885688835259278179988934112225757997857680696747479485279418392626112491387114298075644306337295137198249771321776114295966430988396194516282657057945484233080866718842468428657058505665939277786582831307690495798362855779361824245739552331401359769358234290144593599223988453488538139568980357743456234044565261399307554857375927164642704944896247846763362078084229113073576826513410525207125477173562381463834822315951015011578528684116726731729150571860112458560318504555725066481680481653417867846773601036486003623777790692636808349027987630180239891628910942658156031655648710149304997539523562909028680283689432176631669902287324611722270052228361014973651410400815044021903066709804028929101159953155444849757484590800673683798574948180531333145905773391551755896119985612398151241874201980090854094954251875175688810830169210356899739059334029034210048989232468144467207680454540364037173874416271448467571827882455493012096683222454463308476437300167579096604450108514621641826280258687436929484186478388679213080426606907877037203476956291091511395287590954852478624114922132498578134324600250951099280658683399686721781145301910401982082568648466199672849471532856444407400548532035527463250819257599531793960103542078233292329660474745800199629126303360763016506313298354013232695245537694158092892442270066672164663752715149796870310892748025887875461625447439326327340759734096210595639129433571050102992574800871447046838047552262682530647128111302386302673434789345712441527558968950934446679337547867006892232720907365442859108510591847013402664597742028988276887044375938767139217288102520458048957833190401727453083700424847286452199646346080050652199681230950887634265669700115534479401856920843660829424450357902395681741657219176235056970908631529962123613282541531163744473529126655880188491659286428285405822371391879751110666252634860564780836530555189255573676065558935620567456141456860376062477949390850422394592493635506467406634567516264132279456830409156713399350324941140563489848051036994168157217094470988612881450180758409875604071412597706921434806065959667434812054460345837067270691123507057099047421733733346380462048165922608482626163427167544814273501681220182750212041695194823870281695742424433501212187393297100548775091232061469211413042307129841192377532152052458133302226844090669473420715811233071277840612296736861032379755766350255433595050167603257072990018106695576589787753507017130384296848346920583058152594989173340427030073643106060936516913416529851530467355847793188368772826078480604664450794407256500321784024168718491552267149316773972978762130683468527001553243887963988569984783575105066633261213834206039701017567980998505308578530053535976637620625009240181761428327724687905196822240169113145278791077754902825465212027682140688893508717693003657822410929247890178533232401500310880391498616818131559845118578617454678408377420632032956159470816067554442880856072228945926571617174233210590239358125262387042403070869878001761006624678321877321696031887168148943195327778135567642170940801389841861042716164832515853918801541825141784010238639027493007987797443729989488543077869141507873728644240166644295154916327981142193933988499470929242368737975032845258538385101326341699981276026765565340419476515115849526939634072941525784168345303321506217491603643572548308433727262957223000152673646200354269669506409837908532082181094925484015160288313525162296475513862364544683457296997646766661757835047919785627810179353553175414328847224263559532695664688410979216607785032929178117948085602598198129359069650067275941745213572596806601225066567951843166340992009979271962542559808425346951743492727480046648427493610619508517809777411050881229212505081172236655184273134971381716500715133900710293117930250286506614452261592117686128952820332624055706645674881380974809425703106042838272674007923836686388257036940600797911694629038895253976809281030365066276035197894165752752196431957527380581959132095012365421942851737721945142338070791591537161360113743643619778297540257094830937910009185593109128364182012848124133985833301814728252348700079619626392206831222243957197596306930912545131777852704408790582147494850698339693557735762713858475033416260382696296162556559196967465198057195893585460342903887911601601851393636014320401469312717679509192114000696856425852127808941236565682550153093714098069576732820709862116560146773748186043116466227256328274548469989742951545641908788779260233586898327836831570031812296420569567190698431041297918371296745839171676475687464952616594519192230412504347130747027105002519823526727521394078069404511117779527854239996174190972061224196515702393191215424944962699404821449614675186732665239713760412821465454568135852013913749373930023958257407255714700638898026845375057588294915280432571599501707749550027893879832159541740750691757413623804327487219128190183213909601885685083428908259247950579167888261734252323559955789864436377791951644573548808557134158338914225736215240039690679624763231834892108568271471065443538978670718574253180957106982463407648991688423406210534775101467727648861679262161713987359517553841613645974728924449837342159296735103006053358620046313785559303942424456213004198641026235302706312059370654909661751876806275208953384256846374586736574093411410658810425011437350663336985403498130465646503367955311891803221451130861527338934014447294563914353682741263054169407346759442032043300449940857557130509467592175038962350030477648177493996874680629861025751836710956788749550027544026053029116746195036196873904442858102029010678950126348204202915139179630812877893331493668911461561281317611694833714150007424255581314445080425249446529215315390003461063517562379235605621892671425100272520115303215290729391092516712868410493834116784444793778298561747889206761905175813487437917994307650129353645465260369701446859237932359877545894124616670023596531097856651846557299437177454306842931197431070663394794894540736749330728309558956098602727892679101206498919722680996648745852370767565056098661739240205940857217044153120863889187067307597041778089236024558876070190091313472199865392006766450100406212816351056373094748504081571023558701827580148456219741294792180629077675593208138574535812433750228703559032839036397756787728497216607403867577744259803710825322087258817768455591548785733461817544523965040430649172071114783640364039614096380511851492716164834724839617551066886080645096793674214451870528490365941763410996333191787698599122800798502957857853306379849189950953252647679936662050852291743734254928466678517714383743971458238276971908353945609101840556140249339874876494837540352840535110413721592837280156436779229509555173997573907934181275663460076286267569166151828257883392357276086233840130609711632793587682025002102698430572746522229873704632998130326694840240051607791593018779272305180004697844190949961810197687608567612432656578998403301075895541419639660462946303911342182348861207526330256044107550961164674741040913394268109351089312684472400767514227173837154206964039635855329759301028315271306468476443126683346693609694632578145966586957527507694476029265629140557708384397766069576562397398085013376954680212491075456234428770196095610429141005414028370060589335534116647681290799777963497935583080819075030888061396226385279861334223323447324935377346995293816666191749403275742818728996078723205046898815100879148417618234498609626975508934581109197305221062686126910307198560789573902851674549933651995124976621669752776590500597107752550440963149212518843294165489671239883517573714386082372034019569137751438202537202221056876260420456257427627809362483590036946533960930735502087365498135381422023460939001342983425524738319081543724819883799982201551373289282918381227721031884236276619469958723462029314756456114370018170705681259534249299142539987412600499856407892105388821031025758147254861755343922635646042220664394459530737585749261984529473167023312519706228801153312218032301634169322331594279291731778642407448480595135494764610797712962941521176389236442566070993123143731664783433925435576743533412432486813504072351204780412037117860619678677281638775967898752356151381535706918735216274074632404584444536064703407943861554003823008751799248350331396673299906623807844727266226333238610677904492371778435739743339047003676582824432751016174136804280677282979194499137270781333121282342705091349333387392915008848661521846624170158873540493093095657234207878652374466552738938077084082161705483488355581729391087658669522653732940342027956990174798965251432060674158878902531284408275668347591888400003114245787643359937030737497361019837637091379293155008955143699549682051218159107950432222031836839483565222192743047429269970452616959838847702966226143692136940384412132362881298623153645580306669408479727511832476364622148224941392312321808289063969857021618137920368137405844436834936476188525101064367396627721490518381770527262853153059493620563209507343258126511481956195052601025446981225933059695888938012556715475125400975503478280853311401718965597231218141096153908746597884961713106607249269940214570174513365750815783503611617461073235412766792786582184890031492165242850402174195424764146734034392213288617911168761414344499674779014848546179611235627427844839710232451734742553894951236828472945746546997873134378203499728147986732341964543704378029932314772138940276098750650556282995518389791797392388683481801643456746329075077162724952597641974597552238607198274918501503253487419249070998322777509956316017606842840427376326364075045937997049473376913426217763959853842072478530980816328829311135495495612304824845927156638086162952537706487098384556222473202285909606390299823690405390963677057817762479395855956103626585767871616512183889449695590259212776300609642260011877119147475069157056094006311417700080509362032397639357779164465376977988354529023458214317715034231637585639383154191522518142505076991551724435601421528003781436631340615972837176127685782612903438981392966205605739592182564729309763315367058571983105103313351908664710430017054726528416625566574955430803422697479232467107732418764849414625274943553778802153251570375207948736405844668255036811487131496986214527249778517065752158395702787728763999379820964737194176908808653096215302947932440131183333205568747371709349478642879232912240143697540394845227878182881398230829776683687980453887615326749352742787753113256869836682720788496666429404267886283916359884001427809673370500839380441009506413074299243389039561866553114638907560920263520618613317838017679088913954453172328033090111294150330497058303217400540663837801458066882588496731542862586232160909611733894989307367475989582592672123143455211479125789248598544364344363026925434696461585426432861186088183502497240715819552769616289843236773881072896823584390281854728842550075104844917720894605286350018376262865868227843907769099596537807580606519791896988593509941343283526291331357317339609336485823490381200773701374273804354574455677021321243985085935903124110980658156399963985311477474389658796067837446981077347213972070651170855724130477806089260995087768590250570059715585465203528516729206636322902861395646066441369893221225939982565393291386255301251323882788881126263766845291681326622523850441855317746835591389101115475685207047423630053735321909803077663919574792233042425324688799374448720419726659186398048571381130666316654511392029752062245646288661957633546517269050783337478647025331262433020287000653060412036871246422852886938507145579497078504000811848963310038978329317231784092620045775158875798814461426522876772425096341649295765845251467775746772841339449147690016592243799303000615614997685856612794690437525284944469519664534867785462480727414320769149657560412335851915768737635945617910425186185364110038490686377037844027249406602420504764776231220288181991044045745671136600556324423735609728255147079722951752867199890357475591343146727669100006079124058659998998042156297479145118057848407774078215943754544166008015616317880452090007008590944970821762738181373024605638520200333007882535844176937211764867074013662645087354923266770066036873877280501602621893238122105796709201673375500147266401956267586634407752373034186624148898432357208177562173620251509289409508752132289869065803283857317736150644226558068339806656068111065676052570688579123865569762819960083866919892581715503760717805007492347574037952186608388632198304294323991998708616736662695997141638603099612950089583688427861727327016791160392567174058764504238689311929294184125044328077976009850421753817607555000002753028830960041659243755700083149058952317200475064450684949561865394632638937230739547135054351396841803109907367124677024933647130318957433609273862650042058705624968311321712192529205495199456682677988654504622372637708005859891337657887781583263380470320143503973613747718551591061065247711334872704915238536714716047435275514231555664876844585878958562856475318025297706490812189940432529368322186093617764856312499786835145143032578926608378111985488233921216373725106237479818412749860696969555466102493147057247183331355017735532131405315211663502931944727721687464658083319088802101503391770629474434742543559373728133290292456636107898124976018460875202414703403806716586445837082891231339655666231312867940713715232275192770435666193711661151274027181864122392582581913563860536960710932504120855316910075849472867863809637908123833504970857685544029486663660813517707855927978048835170378830052633564556381102268031594921055055199003257125000157089625140343592099496423077849743107172420065712804790783441163449799363822907735928103917949640171025932088461605033178502097748501359439357251339643434847887579329136716135583634093286078479886499802988687202913918824360278820001422471921997677825227390283334898253142556611367914851879718062546367521505504336294054838192082832608295482494544193651394205138277494775767422332088808976362636820316840136571561596025486538590524158756936644100885766767245856729413907703268717156576730013423488714038490683825086820761088697309045141607144507698337952998189289126038393137495755094587370862953572898698418337543827833175272793610619395289630412717221297099592864335296561166719289274912155738770468821951407592372183007180870426122242192519525688478816859630900303857482165808188191883839585158539686537078993283262602823621317534548826245995187825183578700499929030375171562415585001199118552218151713358163648106564925849273811515622400095696874039667237004767893405493687995586712164221472412991594396802688378295041988403626415672870972435435513621187998289298705976858789669910797962716364394942608476161704825247236384552749772560682711776237001954678485252091217529293737030502978475583257142838394525506460184441948414346227002399984432695050633427591414915842430698887205154052913377670458014802549903484104896429605971507293773542283705046320199455055420401322513023412370000414346350427010297996366149850118564632091915144216701042667099821211290984754237411212479188609049176403684391678959431956345966459667113890729205320167354118360396079326079300808567686018364962855743535539419402302168954233214696343162085428348417913828383379716789753750147262081634725042543545460735504341796714294777606220918564009759480763273550104648474162940066755813409373105851845908847861408209531468784859842150238747462448620059539674743629523874824347865761795890928431113722342120305755008555630933069760367569268925572632557481154778949104791872029862677374320099157808253970068898587445518065205681562602512356403551875959496929160313493985778161530470084883685439485784645591132447470718827028947438221217088746503166027842448438746732620303020283463158305388621628765004070031829303984928712880714875631169092345176924014581924455589818011316812470907239553813576098707320347336183133256624263867238581516532017202459522490546283741412436143940513523856340896938850719506172132425751960007775228469760953901122899332286764692097139168409320675343712281781822521791813562292575077098217579343733587879157556693885208503374616992777829543258090942797525842863926224754522318805507198018385045079565886809366172574315524346248565140575407310299925223873255602209323532533701692045771906223330026473953231521680349007659191323301627433203438448975768395337332830949661964335818450675285718138468444055079013537216309906442337688830580859132703130224189990291584209611709999274772709472022780868478588369029187779631554497603541358010144408417872660205070121728738109386764346119660098668227195821563757546242136310999816740674051112774550328354584179055262238980450521541498579673645726886863663821024423208018663450202653531979704774963201029365783371724812930737678170074250867258126384483021694366776611496470419867936615830009158054415377332999805724562897985648002726686486669583307149429508395643666734297761471405688536585912631942383533140416595254841114733117508014765375395027939745912755245904729412489420291802188780928890136489591167423237097977751858313429747352077987982601268612922155196449759754049894743586492325383467551436612180822852082532918579614831749170707343924234004243116379898528291239015962999620480825621071857474138119642437258771852316578427946986996759256926282704535934977980383681809609408530198687220724177671116811438518303942390015460013249637001514808648572103919064354801334278131415268386281956208733155104054043719619687302613485244475165751606868999039448854690336204845031546841483858264457298590465128655123724601425244476555750969442606735360689117852834744760530824152221760235026157138154624728165245560683503725890063503180036601463379138809448257265453080507743327497642457658509373899735037270168373646673220639891136858976931088624423880732274318437339212913739410429853618861759346512992412013476967637718324074987719275513313352406226731183530092938046292598782476323589301256239463540097436137212568088756756566601947654399889496450532487096587809476969122913075087745543135424383996282715176414113311948335042187306773605826267369610831864532584844781609054600097802288210769516552586387390780294470601933364505330243268518258012253312136906005368796832376657557170420687539363311245431288248197464626447571021785356103587964599319334913670835625339206566292101855804514997905188831252090784929282129387182208198113481522926797286841700876332866666675153746968889034196536562635657342500632140418181609352152811592770312003000575554907131093374519387334684831530761349530920816917260620811623785815396141615035650267824427440435255384665101968916027255179906652739986301561067820252452072238954549687313185532593198285356642452514064418028007366420335187962337897106796697162334715397877634161503829260983341433554289752399282050107269840521491770924294643406874119647681113663063473669326931559733860480992541737913648574165547349948020233588841953734089956306535120608712498514729695984949056693042088325675288456731518420485995563434004750954605958150743254702094977132283213911140437710344222630588034537346524339075249591288728199976508775037456357393568432675315064208661547399798306002420524025580662944838741526724984733644745978538610145304135261739409070996422511214205197570680782588469391846232890569631728022386819450688932462770195394394956525045260780159441964167399808855651227515369501284135994005640151273027921200396979121851589135506345735356461499519246639748107335617553314861159086001164691139922104807903328477634024731484006051809336019105968087297523413329091402854829786101966108687604773504562710799574162091404135589974862650192474663772388280348625272451703211603211287986149132474622826173774096478922275657354767032529766951981398908999090267940650228478378744180564195749155317877819903742818148297212564094640765194019850037638019907240180908486276553978937662474261135589369584096013245952613008927615916030467704908600800070633305292914478529492807395431689180860214995185321884590097541759560199953026168372331040292882190921432752976636059390111974808337455223833591906498787428347546596699937207513802256824121102692650966937914278156388533071303138351955542863980201888236852312953244243983445659815451467975461527000853107160583871598197765955375389984851113702491137300028732713359400542121634301689394370410149233405496803938518365631212571256926736670381727288289434152338964454923846940470660512927842710677884982394695208191944947315115142848689608341541058421429110060764949785526828150177594486802179434727331566153200003026785712050102851628170876027766718218688709602536537570957654049703390410202085323837517736992358839013534957650787971160255693240074837184221091590619304580277168455089545975257864177557026475533566114370738228017060314645513183263772193458868334003819548753336134725437296815254792105871052137274284975064932351560673213061395643606784031754497526547654926498925342592998079063837633344765611781112855634377306629154914674869450147137489901473803039637833147739930775820278551405552417293338991751646151531925195763652495985913302920609245441440473399436168022446087650648788991881069282479102059574829055904264800804205790137676747735277022397566426305845438585515571159323536104169383329768294774482072579133949507969859930330572063333885472143088706131294956997972902508874279731010248117746687084548247964591689911281165105404944264016979626203320806709803667797592279236233791614631005954788347843186357141006137900231702996699351701258066083777920951626334208973843733983142391375791085517320618440114815070082224346861039202899219018591982578139514737017790086379193716169939622736122125558471581559863573688786200395253334692018929674718098825921376534242343847688052643416184012461605166630737406590026974440505462056923855663227992713081594401588113249293455527245864897831185230268488757872910279411595411339959132744223541499047735268764927544331959900895654686354722968175335330295221665070596781240497765934275896767328751387451662324092329997916369230195242532670978993549221264651702121203942312280536211126933392875609073091866123605622532708864474274799837704176809310195828560725683843324975197056132430952864365173395978731518395134851467499855028287946207701558952840766463052148584521574853342841308938619729817602530814504372012263627157995720388860284045323590446972109419301658676707157394675510382320960596234119381515441151970064963307421828009627633285717792272807273822444318939395210043319315315675442839531562825845713650505831861810175371332310337489255432260697150053180029868201687757994739762049877545122697221109741323488262405732219738601498222554729008856900874611006595847406257573242868529568981214231387445134568221366634466439897828853903251886734340969847096214090053835732084892071287871199996969377131678359465573065994555513236615846060557272661358366104176451668296217781234971866633082890758297499059107516635285832596611487887140648868210744514191752269733063969228135510497639566724050569097251083367738439849926472466052731177823009893781261596736209264739933881693402060629855532804090596331403608871043152044041879020914180353916833955432202230216603727269610006664554393655575621072341869356220177545408561038052642779843083297145082280978864843415769574230614293218989841223572550279855752152554340629468664327724004296019232615665664827552030633256391128793630185510636092641609471356779678893160227913986799366736524616003062925446864212707407714989030875147857303347643817649182491478479558589902599084695891043500993627511068811050653156831764832482962066039957019475225569388071149427370413726744226295463351461297232331449939241944927565316999276010741158428456458614388862023146722286870114178878654385744941410678322673579554103175636987508808824425389887762648899447171058978211903149334121611618580031380884823654989511593332931664405258479250595286764865693847046716912779611742503176199942205606660744513082706953563799052677892308107577636038928182554970649035378868305159369845839624772719876209301117066102180016555530854504149907397720305441034013852007605578967813916644921781086449468806609248356111563915835505847976738692103352036256452119079073463361705956746179051818311157875523530798091901028415834433185880151292492545956543802618721357331014750600294542245246572500274120417119210887405415074791746469087160376656388871574093270078872705815929954214719999204734712380376286327491646600982747647319002693519138634632248317561864189842345681964432335314740352692077499351018285586481923958111160760517216587262152932842705817767501473307123371551110573755414593649005665286839013650210339018247004841589026717274244196676725347550726373183670001185686434065320964986993781280456243411540062568773129654268017312193381500298586682965848373772899334951247335937947466542617983880463608038636673383043959393139752143183819147660486998478864101306627619054047250937372891721621423413699118905920041504015682465830565771612769042522818975435948147140590701642435025698544746462447265033148539495680135203596328281237667284829433129487364799473523384931287742986378332098382503964646368984797930114192870561605067363559074115092024449729378282226461820888328830846564951734939794099296266517444751157686362296958175815861181122288476575434846248303012072358535947132043184937777659582353089697701624024506391828389253823305487449347337104895932966077682877853833947614227622862967475570250857370790004545747503990330432447911744788358344208498847466973728405025306217027319069493169421291486780763583973900650368835013310802668611057507255547892096863005901267273839359342421226216699139972639947172666660814396044207548142689346134455151968564281024734679194375728706119892098109389694409091967441345735118218618780680594974195304413181660650666870183634370618478153785813063044067925417693075144261505956074800183733919256015734794046247589538693310171970576411921629967123985208518400023202318719751240158310458722217502479196894400551082701597530934158253940820816334239770337393008388355255860522879040452386008037889241268647709163551989415175304589002270996495033202546720139397816852772172459100269396717729107453106566329697480616699577327041931137228942975775912084535569156879872691627766185072404519427750961429373088808750589680133285983930952189345219876415258172933847631206198846261186149285772868631324916759627590781078058163470798690541288228276124091550377402400775960105964564164656085156220576049976420703359581154990784040244893449190487657707902550956931615166235273074914336033749634284637677871367296056876821244791431220733052768226268633544718303486291043448368731520176732773389963591190976114293474905624682435027185638534568227899523358103047575029131565802894521065399418557190934713707214027518347984359910166133574041582519466237654801960046912396615983003759178631482684996943080121295133712865066622023647520234591506152947645216077208217934319363526369206356586751332968726155210624967151923762791726151453189831701182702059334208953871801819415950799870940427329728569057242311004537221850913146639414078316422563077786064631456804207407272619530241870149055781446673695008513113570202468409789484858560767407647953747896601573122047006563490887425748437954130368857572592085716868671852410856538228898917208849507448157571936602666957631017121469504863744087753344561413373672004518178996027359398851258967671276914276833512129504753853525607202031121596459644726812761083479430503096014139459176641563633819981860607210842982200061166661379736604090921463644154067339402389368003146595558178201720783012304159007824705970776696884236193364779978596639751377102069786740001545161407146272619699406367013098303077352413315715393497463287502306837680819761275645376574257154790478318271177839283678989006505500633389349669474212879511679760922597783003688807979553475901322851611428833064512416001187240317981170073181991258309006914584631961890394119914630645163653303062995683046482576749498777993645823795171597093447321296475846280610214533195358623096090476520619531505053500377178140636489998012849831443559590370332371315179368376696235144943011914925706348355927667818098069700771729545720590542412833544726724765158935593511092746054941120107878248764577484170417139936781737987250862538690970013984208377503140140550310229703013376840740084415244979563815005452882358958817717506443604647132407326566830794184579753838535833646142894632265052871604785334260369926516271018621964629601092897797182301040438947672999553274376279264330902939290587621525227121454430397379604945712277269516230574458258645135511750038234892962582031064214595014954514975040460928772459205341694341248367035415450859115087228546960025331547520179549889056808553586711571020643919095489609112331076366622892534998310105097425404130132726158691918661330403552426902497261408313498599261346415058750243682261867188472654130866866196039108433119571851247378511131212475698700663606016564538121858701859626000538536470895955793559153957806247214592146780111352719341695275739426254074332499643468980598547387552497302838256469020058424448153866334170645005665690867933347354626899607604323316832459177124136793353062464284415288641383009748763756356018830846985804567056437158447745273069837096462131133558009809971875390541368916217686029931461440019265772260998342449845838527237956635319321954016263842878233684593183883758754263640629819620797349607673396160122385868542419884092868796817879155719791050531994298134827536565200169481983391432088451980168988345234719241332901442565419545289083798444510099222573021656697977246817134856136476578999199124260021960458200898592554891091245888544235045663518016555833012714114531320795163011006793287906757021987561010455784938945728399247112111320629904451972671474232996367199538530470386251635739035263052673491539375174744474689105086409401945702648876887371008019472338648779838340560750697829301054784406357232689256807280828666892559402668184402558886609096193174378184507180067708397076907686112691126970212557975028027547079048340599016937839194172093919197835166779123330612519340586610879176012910573419165153023718583392921057674460758469552757318812743517085512204015629849699111004752249986022430333658035260210165382294188116010607551366622055869003511666654038992137262146774157702985328078048540083250543347927756757187212741551857838683329176555873819423370238051321329235358789356624108260318412395720797469443152470883726826124629299427901274885606147562510611397091085239210994425789696277910033947503612824850296659287239368907822549128481525747433071232763951700449623480986702265737021334798208764965119331495921541878421539930139581125044172374646957197915925262863879702351308527553056250488980786985547172474767372140689635508204363712433844932095983359256210404220842504257378576149125340271942683899102816058931987024070284333083995292831378916436888550174700319658339966287579599121505349433928036689440921474499823780169300891136481378583076052491380991663022338977935395471165815513774242943866117303808674368740171399590665604452433315066588958521863645027216312621566772506541291443809479337759581913527243195595812561958817619392823113812732718470772549096519740692318593052407680288582940017188594763714398416184676452831423831290356684179342257679818089541916724356052663721238844039671304038820856121018246494019196480955647133806884609263920427871535610138086846592183081696512762258166838610516287682785786297291335316931067313522249785740122315183102067013003072177972682706364679162728909590132607700122310315404341758689016114728890045920421978473234200901014053868824180646369046159899929028146234045793114456310904288716564443927693636779904973307319507520726076109624562636805932295352769519188713217246091014701164467545727274997763521249703011824883488783758876703526610951465400649668196649445320363870198646103459614591176396624386734988770576002906339670209025140838884571746289258809199130948303967357990410855422414240193994849393804059418007767007984482272317917668061891980386084877732141605226289928985239081305791113014199894965581716319948252811142463535709163451342061345816295035848031613434728600399757505292568587032810020722874526020615056014238291400936581128329761426455195851523783186411461294382626229030078762135693712663631402643213261651463087196773660980041496995898274275535979877600023943714806489607544735629996754428948218246999639843721718375217067435687295719652207078378377556958104188763343707095473630554311800328711712713735340498404131786126287168970431457480333257582053130654733364876630419080947537219545570745985704273353446237537424769466314282372805117690807922625022711915251086431070519766014763003958398047129414930911053303164176791043187658417668594940327948453103644372995349023133119979170338427794895417151979064194203337719969159037715293386046280856068590728614403841027404347455559120624463435539623039527366312261462810405886398475186530254003334954789641172898291508437775771347491406498063906576787789125657673141341718147742594894512897135739023019836473899341214902740175150221388007458219469143337762981772592902854156020996736174623811412040109643750498309338939765684710952336237480371120049598303616460444997403491877275160880136736217976472233714435686658502116172127086091548654410790100400515908511608981977789174293382296191189754001173272295107107036781231952282307803914235513049312508377657120574185867639899655696618636551542067150720322919791530932167100625950142810086440293487279388953609776747712876527139098226529225253243380989339142997275277388476963806408584660899206498929289988298788570165521096206324728875064784852912038166846129133407452842478856626784716638413331801356073672120201351607567075652508462228308908672833088191421753943375600945874376295360414039563562640639191722281365396056308982219496713285394244317794567304308899051331986802158624253787524672658949955059205506884314729661749498637325687552377997164852878744334671070798597493131963050463839346378935286523546570977103915981626916781287083652601854801213349728301627302549808510090533775987795343944837491383634959195971745274480437997994823550886014906063157112638960329052461388185645460849152207484185017382703964243021234873971518410448993193898464325185130918065781518851175376454989282243712708218221540393496940679466638010761114939878536112515184822065080469152866473520017296541785787605430019488957048970907879280642045298211930685429519672537188692812286771326199413444031761151461823181569688332261400162963990905384548130620623218345850860442586327407640603752257124891649989674871487501413542080884296240461894939702770068263503473294450221951215950611135095390673064359599275845260574739069728919743890130676244231200401804304782129034809612382098885758038141733962215926370963699997365385036382258700607354984748104593550349782491552811937571938298519296903951351223430675880483610423880575487516885000851523297361291779592184482399502515018506774561144582514318326678176074546234706659653915059675628361037844841102470879416188330211688099642083307250074516035245529796996736592258520903478089222658242914504978189529716867132357965195311143350926561325915028982517348667900626528460825460193385820959240835423431661088976924976512449095793330658286569875552166677407358615919926290376903338912506792119662155761901537483512584157427589477432609284087165136453034158868915365695721843034555422489813448318088795928576203067088135290403366296676210511658184799423995867179549621123170384816532049180130777081138294283421838090051553278906428211604448322630368510222911003791280189910294416168129917342220761618685982654711503235558697820548769179866309337918406978786433678533796860016581856973542038018263551618877020382481507828564634777793788799498300589693976761068931250202218048145309650069058124733365476979500072143275399202350834288436186938993864798616396357386714087327171569011617187589385491867034588004423734411804051826794678824619243290777887785191994004323805228542563587893090868985339787568889601156875392831839506475148916592633690552587710858880219280974870604269998104111460797806108705889973609465456029181187660049225397522076422102581551728174082980810504543852174780101292684444153602673204292380192591840090198891057458382753613891233865659604303363227437736739833666493116060914841350956874472286820997385984888265893893875264578940692843962844822179836220543369585099225795126587788462075212641855309563592214936979235140079373505480154602140594418169921036058682896670972711529506601694534337699789235316947913991823856679630072979434245870979294097968891860079336610015079074942632224070980935787764219471432900268722074772811568789596599569953045498733984035605738667371788788746417121243281745930286506009910931028273008618617991634044517710306521270737327058416452015381332568561424198451893958286723092152164674825022347128317311283655464783371410364972340491592875087161411930208323898693729975828300397765656561767435149590201905557108974480227325938351020281978995031673286012114494001056831148057143988689802330534200193290632202282133018331127177293504078610619197520994827139281797957170538319036525967139539432968414473378652343180983394421368194565478591307731462701439275408186659556231062595964324081342084881814786428010529037955025435583655773690454768489789675235520538700701787559043755229219521858912872126504581607111672854724691282233571468471733452312570019151168562398032980865983722578588442007546737943103880103869027179389328390028048050177474347839569488912378446363135262069701559594393635518395486499270205326654777969577795258913488087017473120771234016836190341989497413800414196304856717132167842359411834160282557063823995823953647108399490644727146914914097437787636350087242472719915834653719872403947271383723898420809422574380119976721256741732596040572384003562584344544992979949704486623474192390042776926824046416177113341107462964964739727829549874236625293949525811928743415390728412421519295467311609534172157233780523871805122455919821658487450402150682098492471675648071443953594011190390368025068944020532489651247561069399507745827962755393178461375859770247875840266910268484219454844568256313265773730642480057674483540970103610310728177579659736801516799522765642384872386174398383870616871343515330769815794267513937159665168453911999877142210522914171880954873565278245281935218522516243799180672928222720727391749439480022006159098327272462133897505891748309228291065118869893421880873805023523738514526802659855560991535213431755623315334543144600090433938719751064039903376894607185969406619323773716577362166131588907900346396488530806377917856839315350532135898757530893289945566275747443994836513888916121769115971161891426049735868753070681264272524169509578573555430304806743748643583749948750184433760539220172504925821139208388140636347624812930384986177020044387853632064254298732389822775543558454204738073227919883852262918784312728761610775412888202079772210915716949380143774573190455071819704053470005188383909812096565471408577383693347952159670181959994394962210133290921737462092539930147189715478570890084746395578036088379130685764806526036174594822516294024898901408769309276579488681861546487271680141911497805949393988616478146044842293038223555584663054169869877746485956684266128180564778318430695874191766128831946128641661742517105458466744000442663464397187222201619015222920435213964347844812586574750425879551875867900472412660778886389868962447112345800208821550754360044759900304432118219925644597431624769990916945844593987911884214696524672018877485073984629180318498048286601491700886248498133389454826785572216515970233011022095117490350554906886652066794955799270147527791740006091817453189890927499958672109348772849276879872719747033782388590136655601431277256126922452338432280739039694549943270480584779963033456981982910306089359913866526132881463014449118570497598253138567226162034096124649025931820127508456741102285960147435926192350360836647561656584967090136974290994729172911491149347102139083602926626611541115814636874364565915703521655292092688890570459709188117205449220736457898610078826721564975231328802088731327565376900320675204475079931076170124361342827190618360776698273573072916197004003978145892349490012923450943679058077198751546639510090379527078837110479238492865356827282019446294657297841455817086127871308320861981066865113440978743602922989667859984604517293332807304096056461754221291982871248509918131191332928068612266646229539035396084067140347616047709060986887221059773651546927334852938991007274521701248912765794464108979116226877699225754914298303776758478188802435445465637641167215007670783499865494615684218063090689927657784775099576652966231964837362389033137336601898353400544942524603742015110207131006815999471206810410882713430339173906850194232093624327522622299541533309495115594394870308368226296851866046604680662765646803620211632655719394512116012652328701004336508720555161562187724724460212318003275421608507247342002553457442047904653361246706487953209829693407729791739461363280779347556995670042964015397992059438032329787120597483175047310924364875130303860892481321579965871260664728072026508214209898854277750879548762639463018756794615560000017643975546457264345750318642855047634672486319345745920308280098999867023194594014345137273819870468685646442880842981210842208750691885054917685430670075749766081801981569321966246875480360710870450523908342376039157562112553851656274615439800014401607857169378959766778078279352812619139300388848713160190418596759084721148677479265991334449383831001947517245098375288608617035309387900276897923550953523905809613217102867685685376358782557711151743499465912744151402895976334567024435602673525827367865904298024499932562382837590941863794633280810480879309053758956162130188036236972721441787484629110331555746163561789856549394054100896463564545906417274749132670736633242256510480766467852580458219990385875307938254639772537705991240158453237769669546175680672344401368775325176284650903111722222960019488751573846329932863202192053507719253944942885569815152717447754543801636419902717714758429843458117974020749687172377435194479280718015548453427428643304941173499481330238732844963846616156170093305821025406185824023040431024550616256443969666550103080482121503591479154135476090150766151693033212918134340628821923012130994026902173873099121636926611913006279204155629326193317208948119331760580563102326517421621531084158870135147497329827847304994258785456351629021759033978312405912370089303585628375872350590855000452313610607570415564319250625254294044740585150328690325889136775672427569511517562125483405669269629002629581849641931596938749363725133477332450636564075194879182504188959710322747195065814317186382447754300189681603352195099479334187118236046514991921895216666666737972665580607898898913774812833457660769808066286000987097317509914981816761262455080647776157487344321555791397281640545889030653956104249206268490445474231062161746134920255487015526336510161658445252089383848751232407696912513348196108350221936229518239339219180614383021121935649164805921818723825452706517655538653482077250674097037862441489745585504008741702623176865264275486474155162621236402390825815173924191411705404225034419355249915881112838074953330587616489192589328054129551341222830008464435531373286739080290549392028694364018166684717450914450444724378809784198925752099968064629758689354403542504062713214207000021682204543393371958846342113334025317979119435412729036356764568631337360183945971663981048223536440276845041988585769431956822135913560013570245473004117620027236670197588262764008401962623678604638909773694463958821314241217865342592599022639561216880098115248806708526347748057851442451524029481070876133805010929125932360684810035219907812489573449411571746319085345135651879814435832358884200127415268745762435351072677174406932509727337725224726430400077224823484729331649578669488331755233659858699667430522267075676395256294490315900234120850092056585819179994237397651494422671118900372447869144039440438182316470821539704892818820130206851341944926385041801660709848045915436634251632727277734829746369815787481384713203747705045426730905669178740170514255790926529492358746428401882417951734157702167960966531434534287657514300392110558158466532305906340744633529333948609235907137198563675055954602128625800585209640262565023453493931910373096000639593556212814811153962509721333263121054243368636051678418695839852465466183776686330648168067194325255819807860415790452612335347921756355674686216089254251333110100744726039611337861890473250583145860023817398392797743410848829638821768796478748588567372211560125174984519441559716757137645651196914551025360415110404716089139117785540216788045107221131757273968478350878627129903420818562785024533809486488982085618401079665962044547722317531812466320925089009327266545877908441125436480235893978756877387672658240701894192231951568626612946818881689881770306574920197923283763151934329561634178298496655664288588825270334334810883503419189055517779984603769188900274037254167120604596972432815773991869580382530433008583111384250526343751924713249673989501631027148313338448692381873631570325790621533983941933684655569254425959577308942111670218043792135259954846039338099109058859431217857797186706697818184729422180341277553606564741006740692524089862150517894473476319832975187216806927645397225080295006639355389545164299740234605609937472247672445793900072735683425601194198390647018796804382142761838985452971891669337135959500765718163683691347652108555207686164282022023727518700532648063152881796348815130239620732979288330207494104865198795279826599873017056499648970975244682459917353736735511947663390530260495031557212718621033524565105562515975080127271437530010041340269088203476402036898862929812891434186605638172849766664865264596346475197432177247155754627153112236626581819258562644561137860125880651675351201461294008667004156977226871884960811652105394968514288659675043702052958395294578931409032034047046444363677955417787179145267322079658833220894515741849475030452749898043082542861936383273084229476958967546764102279981598796738169424034264295854871460090952465379050716049924493185737912869785888389694084781809327419886304545275515480947797903923248149030217125660971326985920896791023923388575188211018626890720521276513389848822406703395476975144027989919640285804469417233038994569175875078857517919000330860346910294847925889298516069530783751928117111310625548563200381175637215009840621180786749037270710098397057984069383244621071882032466330845966356177930858742154667350421380501042122785165745977392810895288575858778664319031387143551238045542146314347434061303730073799440602155218078892918007647795666793626006941460007050026981354445722952780249632838761423392662226814345492489406977305180255629663470756305127155535060604551769365940160808323507081317685596179530843475439138016887668752553546493109252279425648481645747403198677393116744150896880973303663395581919899067747103671730202025990702549116703345103360702124277204880830172853131182742506555344308163336150294866532892695385699861111709690871266023136696091422099324841917919461762826083969971808324298397129385771547539180476515553037318957871632307203295169957773202051625659382747549187108558741602831012610713768692733014850784762945253028980694005864916612047587388785518447093126510098116654448511192055007507618429418910272580496781600302548308313202795006060973692656410693005548758154294430078842132962346077415314276340316596492813967306267571612952560138664578006094189289573176454565267602067242143018326582691246991628113616635802472310490420487802757108479200207475154436380590694055642221010659088905212338183428937241055211784797125834882439870227319539078657189257564257160664186073560464265552876920975105078043010211995271955671148782514038749300230675987130502366288337840671966019708110689457065654297585147406703898786523531771981796151194727810061531978571366450834711202253210625509707383157827540899837794938676046443992258989454610353733013109888583675728680901672241465571628982545198135034238903175582742410723176278851389879581436149767757896563738031302974406982698225414951970670089743289951927850111105695631275907351821320668070201015350872468527456663656132020147405975972098820826376880156080500063868322006905541626563780703069841016326705435038981675625138030228777157669697043003108986512630522560742436491690031388698227568926993065980768460872063919826273148288272353687726557427246741386465070337215999230423192984538995311150129712991131817356737979675550377500271138274842510423740919352230344917165715894149857652136688107401136543067275131265790864949943658359190598547683427983817102139603875576811408259208749310068254242479079123014751336505498681058432047129782332909291826472537549910176533319720094978761979685607150726382181497275356817787187377524557896602282312652593290317902983008994632912794785748916269763301184041455337550206487730696839349698466034006154078679209600002333424415376343223302401996082441483621886884921007540311544129624702345807201556292397689164609502587400147963577810667716232041001456149210142375709935459112367947025030545207608979418340824207870989775514074072384730263237575822587112656452414143404325757520235983906977907070538164968829200677088166211294193668861816790851231171762788123674431183606668899360505738223956765724747730686591689218359617115528381065515770947081924576260524089775529899063033717883447686709135861713085337715070671207817026033029861237599662564616598487614537310718544248232458155388426188121717519765010642473303468644991401207666001911954634328891629541052790448626035694475538284493859030745645019856545584551082640189146909904637135492892688470770245513612678820705684662356635871637777985945559461608347024084998222698680633599576377852226189013075258875553255663785252084340767491770634990664305228249268985118827502158119658302957820601743925101391800159567010019893662916864389560983369129753725216373043365946095029931532498199687646215358524548699706025173838486100897103333116039529291622157096508007375159425551795671983530935927434046151940384220764319583544053361675836290716387132004653067327677407361282291239255140427081329176895677555833697269907033504030457902722053585070396062882839770773349379819016433953359987987705033541580268055614524115970356581428264473102835622174643254277756659521024679884372511417433179876836126212836226657663931185406635316554789763502603089792040994104423606015871092159211953936486522673968399883600068513850207464329181215595291370439932936971704808884524072993958220060066853327894653325084759633324242343673393682196651017175717336778907281201091107098712399650932220129821403588156986614713138126945413887582552591465577232177502607054737698548937625356883754703944244236218860386797252956986349229054894326082391122864173544236112950156954016589685463869024764026779291788712221683361127912822538619032447746312488778092102810639038371154803392908866865992419164116792002482866873955331746827691960536417294613560191452083343052698938522874273848400922152836403742421519344214182517845695084764966503166157228282181569742127624842370715109435554166288944747837033637330434234258626145590706316250694779560345430749484410527199097358775114411298505637643249669268695438600771524969954074069436903735320881271277091693649921598532434568355435667696272163707485044286365532162242808001172041281033868636391287002348781972471971212567298450329059214581716866480424469757822366863287995235002816389946046090104220903343619075305936347169069315004407690571972775535163054979239617653582663620754963834630863720936564254943137499411770026923288357111689952874489474239510200830208374944392655916981823483866545511894769343351937503493892174785605778508046546786541000304511081362099940221257380947263837384653882413382620215011842354649347917319624563194891716497848843862972463108989438887275064729672625885641440348049153005478020672185905927936207863145716502252331325161143739364213518188181366260950048613040271422736126978896210662478441434020070081709104294190741190089435916539273538643571038972309233895328068562388441926941045167781452241836621163856765745739934330228916960013603500407838404979388086822554621600080943079169320471548969282798777087057152045341940596869915460250165962350741278434054352076331023852835433661742546680874807846050799786003875030243646689857920148988246912716538796671332573750636238463507773342612183383515385449666361841682363128701059529485681540782881641816878426329127978790204918838027738619879649712753520310102513078129081911807006904898163980952385798272478645588116981471817025882091730835224019638358499351245751319091192545636855162425459192698486062578489251873343980419110866586499968242625520197992533875190872146718939709010304770031491671410468704030266269423032604671949288148655830195783401381824582041728449891013361654682925699361409501716215740497030377695786057108888691918443049056552168226768739748769223568981971184030857147679076392318844718204598839392755343110381127690834584116254609192734670452817265841346390807553413738444817852633227489819304659645344795200568373497955047681546325644519790140915730643458369993623675185756889494049408059149143748104379315233126014480904021264768988961793467185893940277840737777388959512882834457916215648607264782553306655144037542706513485495926991334942492058161246803576269321129884884116272226928930582286677973083600304041390939822365923893479174913841400045560152851047486225316224325515370500416571930866109202244201178994250267533395352438911630127749093776355717281074830507117014995023230838199221771487585078390901337771683421742556844091799971202715307923162829534529110195343428675976281105280650174315196666413056611250616907249218159265286108722273398981960087233895483699558968407359293339523569775905876292981603315672183860909439366083027876889878671306379987095367994838519887780059104249162878668063955388699201379396834636814787704743862849010930026030639586048881933742256755484405901343043681677825667297579980099041493721385331568517397959262497751156365905861136357405985909623274848715285193230328559125058468768890315780888211575468074807148195227283686284225884468999548532098056773300064703385132054242232229471900684214607459641380189915738991259107252338685431702791362263480039108974397419476748305877635861930615175899857368213457584901614059988886746325605396965331111657607470908933234520555649329074833804137919149681160086064582050141926260760548103463432844895227374672725404978868759294939172536192554207741279372798539311632904180507975515444282924396511821374631881952031205371297173558815982780974168653125353649224448826398538916203434150062984896687033380377096491948768594115101535864750510029500043904914326579464818665843806721144138610888978781094559356174947727798138035233671624857751662400450302487366861394110437889364041794836741280762898884131581790425343700079323143172960492697255136459262973107242674937480394357440976337434780389217958748686438862741066678792096252447006530292935692836188614811438325996329819004552444017112859561936182221266292255354532234803059203745564693976686014941079195827899601170032804775500993146053480711261090753865147481788696052010643086526888178734360537449595910985276475489732748120648081941741270849602571431403436246615913718107282436304323200264462759390315598417815551792385319729290365089683410083039141140166301307128230505695532625461053752433659289476840511471735645369804923953034704489378972438072460299019329596726715696488151703904634561941609630007922873005331576682568844725506053321022261941659768180990426380072686922116025008713282721991599058690976838223701012760314017108861277589746510712753710686220664145611966930128917774011612430723054611966708156797213506639243621624073322063280359137948318223029769145795457795052453753630798747053615755354127914591858061231403731497794649700114496246892533699099933873096089290995034299869430370665046399618807696198287351290851959168321438293016121557157780444894435880059585954833598328244792057644938331334355011075932088654432858804658430884491979057241794083791869316780432084516849854937630229499675602774555153505322415623369374892257062318061303586879282401235355389696934524724609024956986445081473376868948064152003320369649007318524046745943391957521183723897674919231899396633622610648062427210537978305530459893657718086836138819594422094159308395490366653234676619062984675208631007148348452870783964280077120907709789698378162593905176051862351835659461800680811596257618649515678413146362276069994610833071174383203955415753547597896412828143010712517931114181753964581457190304983974934133033864251578210514795995691364024059878649329915897566342012817987789088495947878902933852712930935640771029991951924098267753472810106922003099687185021407766345295164233176971742612721692496809818701926093335488055818958930014647443705686557055766425266680700883443141165168794892480000869133103077093392705010985829573297576682425463903469774625231996784948165350915657733771415661213995337711653301041067447692129609684069354632181775502373968686959603327733304719582232818573191651741571431624119190415742693112318682907447924645900574528365528454245254077698399964628135105739650748078155776831184618594686274861365806632708519810941436093372722561961841721025247862227258783637819207887725846878682347571234604365943133827757121725123011072383418458658311644705791791212978270830715476379509940878463271208226232567196126204509695578993506493546344859497457237985747664124899623832399092097537062596533282816288046721855037736633794328767857829769297083185385952025002210863821015180540368980376652414074959102712833035794639841499414570632036873677774351881678320862761091090977362300187218317895152038549600013675907837578033770163233784635062714412484117714352194325370316128870876950001989455451012760289025560107243499595392098231499728119260706045216410598611857550702098534494364373813683453869005147789471783432997770710661949757332912917164629023082254848961761787758210627313438377257490742799729461659988846772781495468237773539540780996379800593017419293217125241363829983633214087750148694757309181553293010008147026514217799880878023344179488053282974113589438400047182851072862424920016685277128784434758716301072567528371338547941863818346434465313471118582068506889970212184944386333060129218090450437316976673173046185206367422171840749701514941572217394416167269890126095805931873557190922881078168317855447878910253845659093425641884949017893238148260903169536126521728325227444237066355825430486896201254764443635987787767937255679555340377303515345243499556728149640222949551362903146771011377030858185199290043215058808333695919534557723992669302284997597012887510633346605193816791232624580914910994609569131177287185176476547193452540974799189180591764373417045824124391710842138862171518498047515365094778407782561230665791739617540767983031687091668308022096192411033977837997123766526817948122541345206099556946887069550755346795491465852541570354744102080287054656876021702929265809536775659875092303085082330277029982329484992209378032336058271852949446176656013559678743506775742235492506885251219141330015040994098175756983055518873471136181140202970000822415906699893601433122166331362146231642068726325293249814347354817058676010242984416864367673888421811997342251172864626340542940456138806996070386915566189950109094741297307083492455099111824102785199891216986206946560036144138602568944686775336710709945823549574659594333817075140974979110741122641936557010924158162609350684268564435342266278385069301464623133860725295723204432518156015306631261587932321098264946115753743429375820809502164926426437704057590377158669184616489113958568391643387721634364912911533146759836478992778305087895454274803691235447807833149193263190380170758021751229010918621931734483166603502735050987122693883352191503677137652003820807433465106524976615400851421903371050692169661054218410659910144204772117828521427360853368322289785864763470579267873341414145062055557819314918658846632001095084667238229760329062809025599147124304453925324086954666819894314475215406480131221543198134189285905060591696456884020826380883829394652960833871622225348327481924923335298142467278627756753807586230200803192520992843981443821118915908748485951571743757747543284875127009639911662703119136113325189315320801818394073001473002153261136956132526968076584208775042303338680652797646453320001699038942063998013888369547940347345178700455259713738172345665942612190932947208061833819111214954714698691959802244149738181104478029046979193480619059075930660200012736714787020023443998590291464345969730387558289958446876662312588472111837981290047263071884506884398113129408753802975745174571570671696267166283947379863126737067894763010796503777642288916055265683688863205241269195403611182340550702959600262929459793657120173147802582474730087371318851861345103238375251682577110932845501917073726540866297611224603768949721858287181238347548043237677234201233431978468660300272106916498834941952957734409830912538247204862536678013809878165837986908724045799839283201033121507496881849505140974081874604032794775565696851836164678826211970362326691752810838499484396379396744370754835557521130767320300939675903472352444849420427319646433712016598634026683702282077226086018139440632929629456944503650364675731897675909487676848390089678555699552386089648333267146530935541924480648861883320960609309939875899561149078592380569053450195492521573690158009511500869401854713351351673878855281772016990574093058394909529291915465951496991347931229932978238669136203174736563308081743938005374064020422451251994618606355337305936706609145753798042323619935661736712029662092499682854380037513334999329499172758309179062203060331597846196105966367304907605926075219893342492015666706930642850345770453392715929828835693045991736074294158944110198485639158519457848742124499654470514742757336806486628170636823768646854280502684450666968344222779553951783309082300642673663318679832518577367297004377433636571806332169552434234621264897010986819808926085712812781339301952954495120929318335964773085132482296632137002442263391026615197557192815212145472993693102485689308921486298700323531746611804036779225884729380618998623218450993283510274540103520797994637844988484884692772524906545798064105151702753745374911809011155571828830753775755665859331149837569469139360629865022660181984932656151811665201344943365055264326178716652167254798471863975648812987073692656199014178977985108079586197422960011244147438427707381340443353688925425922146750447344601425421104340481090240896872973388713536992796385473446913965113515310803645667906544615603465227812675044299350245117342883864096434433245108685212261255403954845351020437135445806064345561928731551305560152033481624541349824005000750563296471193742369824772077727412389513980487774956389938738602874191392442287008420914485102801735503676566975939718673539077010603655464390214271232032042753563497251033990456190322027129804037519286601451733816185608948248512185833192072052682725275082310542777984171143431906212307532033090529448568836470930180314254362133851357794625735853136803528492120144699308738326820028547978057883175240590811047067936622500542595631990641430939696409876338876774477970028027615466304528894572817716459894168400369397006729322330416772458911122882683719820441765164036791495072132859801783185614769274025546201924867270321747777659611798359499334298287490261853159173907476341630859182579739451540216588545384629688628248861190633718813510176820771524740420152975439860403572115956073591108109714701468573784703618194647826845186065055994668134084875055551154902822160826523570258759028480559468379434912937153034204356720716321085974221818377604559350314860739186117476387569851409377451919535118525574313779165798743506018398703840691635377314905253120410340550788924772383099735188821667606407763974701141790600359813427664703529717598587034258032745523340223135493531411891917735598328626235304031161789023349069004270389898315539240083742118615930781927758428147076896625400620782280676968191852798246764790393189806413019428854649532659204731321869734529098742074760212479586559903171785698937430436143345322351924596885612063552745619003873563454908738191596212395087286842954526805556703019190364844809611169537345943948243145061716678203905330142879896455879056077053831141412447438882488264095218357566555771160401946342297162745136547834989210612205294174505727182996946294502222014905456661270927965913700396262125027588449766728432730702947244703544023343072164625883725542780170756255037768702035680280360061673471298750157458633375270937660015478067645397886665833362937884569114990548442354559579321609028640197577996187242231309786820527339768984570722505366907693410581606726567090018937091306315044710753223955944958044952928960942753896991102084938221165263879571823819464771713959991527459437619788049488662903938400925976599852754884603862906573711625014068969611988075008717835101019795036523343666025153365944156679998375924794262173897112731062835114013494581648383277888089739035494344578596002905282806292478100026041118882086001564493830497353430765853448192805206419827483527494199195241667461979514062189191982718625373242357655049088919369218117222584516841364922009441617400220561542144117474897929776574440509102938182228041499681417900557686780240201410360541652797862993077337834790284989126450550846450319521510719205188163456531223407407862373629249134948695416007697274037095460455455915601996940906013865845543987449791115305349656673393083548519569871159498087112127704391577001486040357233526910886216463091190443546622427164149148838459636982056508158714270785873499713091761236011930896995185011282306196873288755271395814298230137748930459170068598600206304072668243800071198855428080825808844831049807491450894550779883304219351254470886739828099459064862434499473295467016258884771401732868163950232455352799297122676746398430830264111497456850997733758423807688698858101368703645758199585036328114270675166420513625487173159239726374708972548255613310895585010843017637882540557788274909321441570534030641508630797028528609239509859114046470507589315452860400681903983333989307792849796640117297174538503997382178599680573276556721071881927126959270314822068598663493993667089876392193802717995472176829241896522718561674964318819394152251961856391155385551108048211604390434045292142716014836849528979622325653066861121965559228260810528642674301677863261097806603662938164143730974434343174649000413121497801509325369450248592668006677855807251668250643149783422577702337593807281679054791970128748447377901951926534198886573182306523856911338727584401383627533432143506399095134349433165889128077108209758706191572258304830644459005330425343740535618517920845160598807858701084666223505731187685639077732185104598723044948790270180021788866508627082643669697953597431334986845418938160153798396186541955007196196465570777413778358178685666402236694932140089764329636911450344902999547982085096130767924846625705761357829852442830553386164472552458839324895885600033704354619017716200829361327398991837846747411749068290825264010326102922926808960467546961556736843564882162200296103477722501263321692571539774035926861777404978372964734528671328782523569550438173536480255324187031728866235097470221238184898918695865189274310998624412864992113502493559910467721564760677490039458974766293840055404741510831442040335150340337869150138454248979136277221985160597952606073212038475749658466887372063050103649760685642067217449339651357020695484806906288545945214466143275374584848897399692230093883478370087722796015200701995162736362626273489252087872058848415630662231828423118464667921126421832853582771371989447817282769997844429055960708707168626980626747848331778310068184234547552763864150528293214093009178843907505276668253269401208023163082178011503936063514764736716504752728855129103182766574846696434058650925867092219005177116421313320834625100729774175789554026238478822475983028235529497888893559802897031117612570618198008527974063301449277947854217483605326663674868047298383705222132696684785803864646396901280861765989903966366276908779954127699833179317219172508981839980395978659204973288395069968895034320418597689668053679456448696678521921633633608589432782654955180261511449723468742225011244385947362320924271252484732272026885972867300277111391792723544744995004387162116084493411562880654484627480742697780799119902211214459535458797682752432308884593165894224128635876650285602874338264742228539750686701588557885653130067421479067136503901023547364057241632448678101491991119677186284667144782256063432755513746742595177666985491257605928987239534675868104008513885704959032670366445184643339414004035478377721781866969813485590942114436064131165780105821359849600950612252252707829119921522604166239460594043526927004458101003082871225406516753102900393961238337721802138267669945364058455610915441620516617647547631153132494219348121189589356240423236475757846929542000887129132728682534029572155453622259148583780934193185518169598906691196993385414662019280617149697019071230696094261208295105702378601840339290832308533885572633788115652140047116955501550002249273364595712744866008573484728400026332263303212566917361368111270578694367599914673906400714694298434362952396450347581902399721274708074116108121247762943482124078544292221194831066412862009777837118044340129913704231995482467944173740039820662864544706404504194742224125785405828889311882951045796974941604234633396008047613219306619656362850628637033321947582570567014318071050238615964966730272637830283063365523533545162108830684007766521674818623263750268817078422155999571348966652214575050032898606489382932315993709470209320490539772042791712602813927844016792776090788508820147958782365622463902309629110355107311813265261732514776925048538669747290898071059157502761893786245664353912082371926523377715501352284198088829927156468305951719713863415280650352927000491756700872034488568287110190700349253769461815440446394446474780910073391602074568427824233194868295015890621750637216052941494147978927798414910772822028692684617711870823490016544379477569719566041824151526339209837518705670360411483227405019513691699197239905654712039226442515129380734281199671001859697990762216830049049238197900015131427856827412676646818765346235327921069916720705487775356275282822547127623138931987384745989893536624657866215194086282350044240463218978301249794171087201158769980173533440488467802531922169919658677406117186082908335740183390514081756019082374589555359505971019648341442347292878227730464205847855406078199948095682260708071436513178512498102421068756025774641952693454314947803657038655472783678132050334041657705595334043264553124890524108583395447557008251990096369013826971647598711379342729037334678312811681500656232137740791142203980665870533132451050024469240706056749468940235623620392091316541041121781908254674845005340949669248376092608292763692343073031558867041124340944581825321680344960244317759887415574571057939983678110293885349580276475335197590463988315008463786074944106060250782517724128879061647903238327721065596762059495902283775865503147074079529750320220083287236798565792205201635457215660295102716150724150323495635078422882340495779781099001839241582887209372784016191194663442334102673800112676136686899898897076230362690865876299672265483489703276189848112188840742208216313871961308578935332635870072657234882020311456987813346091088122227345634646387483341961895292301620357601811979490980662675966208951461077160549724558240956187971478081199601081564710869885314051699532798740191923432074286497119868003894138742386127828641621456500016933704067949989181550205183671450742596707821120943144582998141224870918555254151221800686765434340639509260131791996683867344688764501788299921194681543996688162995754913360028375634605927896532330020738992360081938187270261079296464353719404332449055918779943495444890404269986809340829123885104432722101707548528649551679404729996120678214557165356990305581694473330710974390776635804880933940300593077843063992271992931094127287198682153356975970581095475545811037226072502728407326951603934174964356049526298443871189602780469488709618358528561308389910722163124772868367152836373890392276945403860733892811520480031539789127862186483193158522764916525120922149179347250429493935186946470212674440466888252484442037931746158231442861950939910160968322132302502084530252355099052931342168586115340059781620409484577721540717716765216708656572666244292358724324025699788729657114247257041027520148880366844228992389474395951742732069149153569027384835456213309538126833372105503770191849804851986256611545435283892565671332577368661573013375385317950347774965570414392782064596214746868348736812143811525645504830489344360200439826386990068706357605795089906333430124179748680331361408371593637425216380006387286288848244677368518369388292601576318760482532144291890313116260559357295969414620039588099520518242577433831043495022479672972822947791384695811235904374534334207917424197942865614215415196386584614286578340562986098239716600779277994704447941028741037623167981358148086202162636901312610824942092734842653839577007496486436191473639181511402270844198835541217612078839395633012065052094747192074804439423246215052846495236631795276209304917925483235944707484825712074587607689236137130012170603148732482153104833557278744194629622570860845021517841014274739010204833949433004557837567632083297285689506876243776440308753472760982799071856050960082747032134274447639281810587092623583120776395035766411747661174996131850746692198128915865868035681063021954204185408274292643266166992706114739936948119654210697033810153011330009012525644715578162584715412682838335052107453514690840319229101987583709843083266884951438563904193532347075516650167206323218926277252868364418342023856167892564597790491508742738131257614272195213605656783791796038912111276062585393011862291946511408774700576823607166718370832535918216339707795011642995745546567572705129469950651896355436707606164405141918622294565743249855665922650087617775559065187781170324356239021997622127642600624407202541492019615955576661889075181196289624694302231058791218849964470536299737814461851271315375149259894906529526772959759802526368608677751975574706693813988413631424493346217152103342747070517119301182356208438519963074524493801650485591188635447264183397844063249438473640877103469639677586440227543734021859686777067282545373700450285350883829663713991217558734018249595220817256789670691424153557711808921925797390613508594033981920365243497986434243494412411922536776898931197779341255441221954521350897611178677514643817401168349665903474252368162748467547811796309370586334189921218777644003754157804973757962660674940852469651891086800807862826125497722602986986371745472475444455109104010868612574964175898829752392799105946075242296329638926886168589282128684671148853203513237079909979392791636704877831388320913642516520001549041059667574418945542816432019288637712643969461407582553435852160950464914672902347452682156205022753419443135249229805895082887102013277759613245523799676579836265138937929263902565355719438584402082013937220039875957534651348173897466138399799733937653660437188319101029092907340137244235482458748833590838724014344464050392197573157529109752417494987761053663725833782531259059268214601214300090386923651712510197414345380376118012111955088329579467749205047756652674104851238888303855868275215448758160049455193068431998018199259708815318152517783919888025057238240389898951354880984264741164503856953420924085765517700621755011016310310344138693099200903175687461124898669657160795671779788825952217675262430643028741866087196859486937236086750497161313363593848493721049559340480379331312079387840159069352999473109821749005141533761585727469760479584746179430154504662972801856964457927762784634576295607033974933098694834304220580535945266259979783628459061875456010711189605425760787730315182981662388303449559218364933483378883415247054084333173179991217449129868483182695416420707824127956737821057170368577877229441927140522722437916911386708153389344949840400866837366868685417722917248847568950208453069284708521672122360785132621414569257791144686006262381761126460300871493460159317618148910687808626429180865369922698001692733418863769838748369129527616512049463010727440334486944468956196480793488325221964152670647930577838141487193141018835968232328362452729254235834317609909543805426891574473220861522616821910572122586590488043361331950869589706368485331482048749213378577272642434167345323028710691790401549803216913161692391359147847980186083567031432502666233734637000325940617259363352707440815129263667295057436842802834471467351635169974837942615412338300294854928058164297927349706850804441565402578083138696033976993187165557031295889005932277619133329701396619701187910651379984054621088609135707892419969060627193609939166703799054856264551880006573515343998780649220565819885563362270360724244271430160892382814121208623465562045891355405613837152251733400224580534989103407139571939718623838403184645443344834012407074337503113289860630263504308576825388245641096408060752612236253870633362911298168758930673623179386677746016984582056254562433190108179624665648056394273848184560065816664459573077549281821568113633545347847699300649766245293047858754382623287676898321812379500012007385201806765794154109218903240961357743036806850391280349653804417226121600144425834248674141767708191783780221292311419653292649063645937751514440045771490301902849378014092733381600777959886560154484835101206280619657278662438907129343052683171738536947965717968032491439344381511924394679736555064693582707432021870280454388573939335673983321741493267146272905034073603415181435659954217284526747767824801103410192627082411923792367540308602873161847619023064600763808997536099861157576601535728370942589951719997441030899327491303457743052284536802394946114755534706998249250802301248704557599490662668741592627602062308822770640805138480797006298214795125500941441809525025379019773184726323019346237231064170496895638506013559407508905017045450020386465640690719720893969552453971956516375372270091116502234063557830681444164003888332979772190866734905021652254453798393168122576045362718308608995107287137473311825669719227228065731332732383598706267955112100462759892966304518758123468753151029623038762837583955426942783416465471683128583661362961746123115364527483047038852865993268802464835714571692357496530206745597299923269412038589216197630214878663128441327531862112401133383872952357157874150757231325407538446588591730374326127281936573141811429750404846529636250718142429525316257070564153854752626410020080920020763459281547763618239924751268634625254875505263924890995674947998732994609705054400850628698564668090537147168335539647474458889493492931496264476489559471151208509874606743946605426673580709482544355822305815159075193161310580957954849310268460261543662048622694847671727306619470240680027524376963231632921884422769270424110914909248770215999821333664682466931916339397216003592629727421826395856106348329306456722642393728404030109843261997248451167401920497769495136466536957300780066432058332464745242316081062710944055668682501906385544375875594197473079676506562251426214994354619430861219745110655003401249065782515816344514415568135296879680672091608074929792681317983792390248450542277885307317770710350432303254688203157207521777566073251475604706162248838350615474640945606019374762565324475277859289099085594711593335577451896696874169710141280406882785392118698858598203421200071798712914326927098343610316502394444273833646634405117457168342083141919369414890370096200424838877453840513813850622314607661481237778705699054882236371383798536626319963379359284091847837990234802205959587464228575633128300405259001501326165928001002339842522016773634288296947651449706718135541683976843650064187678911719678143659675531109818057612083899551445892618445377358036114875223126736861872339589263152283581749528675964625692113431410498543270707261738162859130960026637730145699054790465886782064395788374341873374973525518845871239960635969507214075099256439894822526868214401195622807071017653559787367187334197068893405404575001044823523708603754427638558520818082087652709316732711923255904637843324345836811491381470064058046674228423241385194723561096142449505901403527207316953834598339105865803264020751020419940051788285993700274865458548757688032568372231713131947539673776582231104510951085593723281353243130759313045383890254240941774520423189445876567068308250692494388958691685756101313744863995448128626768852784382609171931980927269638176593963978319115543064884141137527186412880708795836369563101535542161037750251957201916751883682145917451947406553509018684082778430792618737151980688019877807480923642346900584573964880296396770734124042861985155182501831608770817296113384555726153137163887115004066461153093333624882972141437777880365325867417770210316363414737375600453432572712685046022116174584394354795639430669319915347136611352611757374768743570547857995943443015315173422846682919909756065638884802667208113689299540793930618369263274026363047664626431264705908872215802431689668743966904001777211845100459008651497092823046225181149424456719748984625568639354130551673117844606931421343153221471637771790707504758932780165797620674836521169135486433729557754467874475207120778090974543375347604353556933722471755580060173606254580002238774626213521995920475332997990217222978185103918452058615698375632897720612323676098643856415441535384393184225169636368095731041894587972920960877514150051288741743540039375209712571602136639007527617172590792151053268556174894456836493890966014580494341260464654927285270768772687588064206960420196228622093511270950595298482746036362065360303014314966296683966376797512014631382467357233204384563379827266958923144363753131319671486652933163734937870989564144324386476093670124658722178509497825668802737152322216319886882713049952756134188384816609783251793548842634418738416486946187423189608880091791402035286316745027001282548048652281532121469107749632514662252289820559679167283795571324464001363671014128963967615849976820270572648420853860187884882906604244564484362511007640531602803812409978788056684279334670915531014313024702909704547793416779246213335029417251595268994888141343385016778498664206493974336390689527224195778827491617191635816073555408248263382567444780565176742594855665794547063975756835566126617405244463586094063348026259838231350020662842183762349754878050899528676976810419360311188258203832853063920044762690847229710657402181988079823318632138100010619113590425325508511284810161810212731293794962183179136995890628120574075696321155937546667210158419068070735746045252403477878100381591901606697234722664890017437105619990777861372938191016008836808988278752165629846403970079258220695232800197963989753195283923570835978116869674754217848390374384697662711631709340079590153258404993440086172940863518052542357794517178649542081086116448823590666178688190751245459602173877444299262929749906063633966277589048445183139962920591565560064002475591048042476741810564577792742601506153698999885419689504337837195385680388675061407450949048553516391990838828932136775971375109895246511143237875367852640768430343643912678831039749148657660350330017915226136038150559972852240314876658751242834038174475933851214311174138051646938857878567873627407999181236756111902874530227581000928377115276991820564745505171210804638736970740562447235689459096318754481541156149773492786681879090938960796223790529493881440035041849927992158333575605587121365710042160309704626242793660954611061377212423015534261034771238238614175361039279317791180649881943204258072282160211588572068750315407066433605358802872584320778706593348894088337980940483744606066437871767052036865041711129959313050359252827538295885869651493981908046491000179580842071812815640179200368625318289285617896087823391284401913354138404213479864517894836367258003802873582485255520005327105955761658258650951109038647076787463715076841668057714145927395533610285134776286870012225543754006590978224834244783875966756715907353938034859610508010183730310441630277472922190815280806678315103032638710422681438908957667587132512877099782015538925208694867864270090035143568746552022434915025158986159469521890075234961149360356073851958114631426998789868227545331334670232990101456586199151526922258297736808007110079229006321266407125594976032849068037006291379652149059834929458871793348553522797395422593455488968081461653754382008304253485748674853640299184399187087636265806026485638974945565698861430837287608313509820063864516610493746552415671196588133727413057160388609364313100434971369915133048676840388114953088215611845376927633314869879664251835923471003853112448513033101577848393663693554731194448935942080579296851413005125225960442798633971614577105504361091084801235911955347919486496625097977404679811153070824840484329325542194062449682727635423670148099885109820693619188529782818906339113789298542991121639301269575742034764485750038637793023834194893893539544998047234441015049529026016799439783805806433258362657453124183386196977681463978665229554381076540613497538065628370860987728710554303399702718674414924648803226246725830714176557372719961094063864622673409103578631005290924121607042309603874407873513432669929413155822520206282050165818865832365982251711693647534195195004761170291256768300398947898791584101813089442689331366498987158549705527453669253300503224801938865088433060882129906854314952989170510154540924219105007089147274005200433317645109013940414958764555813948266475543090908137693417703234207266506547338334003511754258390866182307339624913105298031367134229773830337838475943972459458717568397834683568399310215190505301640814536465399021482688140824724575966974641171775997711094210352607231531615527615517213861086594622752124347432158275423166030151525805719568911902796874986384716667042591540166351324630150414572539827521870456775320148080554279426660334648298492733337419620261545176174682896434259849859756844211036110912687334842344044553058039702893812447389884133013888094915007427377266541163621162274476329352545631979281826003744070996589437605943540035152547723421573165031137118029037452920246157472741784264487517998696536983561398805054658322218789582924087776933263103758032679561825278624495487625769252512147377248093853995781625081337718673243918963916700480720252190470585943352050518050143920592971244967798717139297673304281625004227902927855180363913644329819793781365415561955115125454940439444256705315826340164650176537247358393518130869397023976394879692832582386476231502055533373012242836954775024399311611953488952053689755239992808693320699680803055742381983379807981212846286565027439148932450575347486919510511682710669928628862713450413955591743614391426168572198532591500276855952929993892147407757733602682225858609259821707639681873416267493655776780326275242926240625703516243474534195420544059074815662699618870808432058031493494875790673070009181463862504144585460126982972013036135366118891299845695362662435814449428467746722327301540678011839747959127012494107071941883494564465759608209263745500652646151602859490530844861514875270499395733258681144519191518889530127702960060877505361322696190086319363435746781133983910230204268168186016764574331085746170109318155614929010297396590232926549474114457533589133344953661798520920473377744081362062466576306038657370299972371331304586092512020933538852365344502023478140389251100861798737498351125976995688528573279367467702735708487405080541473061323992274620739466674515292919367032226181235234523743038659707605306919113532028676019815249546897329670260541897951470822785447427059471184658256699520967524042099079947765565962652887698831429229923127351476280421956527060209885600830395763628046298527137758971264057755187105517203993603970842824731807861014322855606581185042238798263593237378721301983878637504318311150552313999817576120869698695761451677001932029993701352608231582567634547741860780334890449311972259080573728074880402402861682007796892566700276446848044490328674461742862359604059364123436803536779838915022426440083797067530399935629624523095052731573848002547113435509428905907944642553389926478251605752996556132292511607327484794496360506541073221367275067281337963748951406602225389802085534737486812405744570985775593841938816517220861976024795319780872783452712786252448985001488804859827982594479231681191152657705804014306856698722249514257215610194497265748217026435903498510055607056345548926415898287013954812201081752380733879065269460624860588979769637908017917063164510870254559730607885517830463075028482308515130538102270874127653430094212752461179101299873866289390764965215698258460201294247372760828580319230559897241514674761004561365992310761780085977940846827910390850194511013144306062988005004538483507004637503412279676718879183788662323922766707629386765106658287705319909112152872870371465016107498647536559680208851484346602699965447900614715851326311879476375622988795099069866363091811557937459245230487508227582591410854560974436778552232254459215794499910327622058966457257361920171374437458693808014006593542320262197518478089926490530299367253562652818703751405360039289729856782747178983308078282638568935369828193935924183178425925504686212219190195154124487074343557462219541685043759343847614442268222501163365824898429607429789984890519800962503090342281107256282176858984601704272687032196605636376398291799015488573459725017569996450948364220099804613436171899531136293704370018012943616467584200655071019580709691504921063692966162993128560933503453932540352685795326871571012375709767715711273419120726715689883300750055650297648915983224951752466732294665493874810441420127793750070129839592018905798132402152959376313242836131082973389199547146089076456806460460849679903289228641270912726194578951321561969184993716896784066549745313571731486311277211541341207238836348181136247715760164249197002828749658949612645476646066516434837960876272606804951773005219943571267885757845281204457878100573953611240182436328457511014471735651864483592816952708108641659491679802558359988589417099017683959865383234325728546619358351943962605183849092597997574765102774832498391268789098838167232325755461510111937086873877876740911999964480812879371075845169209150977708791149363036029256194118947937258394055944855820150697618284245398992228310232392977658842282499867664628750877578678381955932869018771770382565515310726869203533842595761287726859927647695879643350560087021053619902836420658816114717577417315474666669034142501267458769777110063302685211019625485824710946744530534627716570003618549582862929147431803138063447120381452256964505670971536530338046216784913314584443503847049752155084371886461074514912410849715914575411767549367870747025826418781250171587212554103569294870414213766036750895555137180838336191062084035470465045178029780020361966298321088719422669302738608275279719053264851832820225001146417439268286967659598630512086586029968241885911633879924637606970475042575751142054591392475124197057945683295361689293036710305713278951103695063118678196726396982119073288489377039084769084930091427315782963782188000583634167823139309782247415965506019221259841798054079586744658642156176635091581822372539251792368610258509499096221722212708219033222975655284545189700601215992858724256773719254144180832958205296775206409918495284084643649324262340211394862052368883340089337125520289379627014823555161252094774668480832090679540903965026410499481151462080779557196212544216974766579966539838657727664672735631248694226235403836300418360013125873492616702450817459508008158001756560972200133152473654926301721889448609362353359315654460638117799011587387758291008914218496358659973486178832621559572519103516542135212848225222163897984928309700136645990827972675822239047316059856205374258398144341826218213164223375979892924244845188320233198848878648458779527853949137648834600748285863172194744462797780230490473442543265981067964047638459849549331336677176250894949990928137590044810496846799203933515433571413972886746676628818121874888558390119722092333281040668067995418105104055424633566641136655247197936057087377612055379393751873100049668178663117998840278520936122317482623350017310402761748512112625075526264199849554517587489807720532511047835094309011379041088303964569151812276716673502984753938391210533719339476177082728735615671624897884591461366624206578054332148689369569019280209399499821648695784931873803456715393543121503625080881117501569879666354124508501242016571128571570286567491168065499660919514497161602026587702749676863829320721862779725542315126425807476520528431837437256443520055385261735031581119646126085322062677999452443333779054000461124470941695239693922569991709047859573757012830508833164201665550616715769395517705783294275922526875388028849174355518542598091392317308178941354898141558484937882671735514890083863245452851634595973094387545544299617198952787944552804741929133738462856860637447309665249327904704394738717643379971655518103128748791758904957393826115234340381651299892248074956223404227503029161785074776066280123770864533602251126605295307818098102388039618823675853124627905482134265474817116116973653613509993934532985011662813060041869888047633214429949939365933071353940435382437041898003849065293883874952126583886072591491215166010002240091972280268348335419744157177303338208230246187932095020787702585217763081192969417305180100194812420596828519870424137978542142742812823802746587516355474244231014909846370500139516127187130990423108801267431268817124838577012962388742769625902186021998945763696162174219441161277690972426151653995819427977915015361822831142208563145185066660412717017670918272481733362370807365217118600641203263955546609287077263267269347805366488602671438926683930244632524713363562517716499349764992806822178853073319511479854311449156400822683852375254525505273727298276364505212129464002137305365071974662664481440727473703228092427981338113659940223422683495311767756292857840164001091697234263208087668052138322213777092711773386225475726293828879738149477364665529057645381392218581593751579158594357621988489708421059630873284624082168285501343839410903219664836460914370925784353417340395862208580602968532170097858939290887256295283917408093846857963372258557494726266652168648984162891125070383202601200257749857477200336238396932302180833955324573188700019890465267630717925806686120730060773910337716769484043459653506191157354344480602310476535086970167708755489938451415932246240701334876288413092982339672468661274039271622754476637921498950161384413459999652779069177422129320740447886531299765406357819470199404346566826179820642260301866398916334990748572195174976454031530887008004606062306076900877065185773556117944510022138442668626145047904581502267231028320129091172842107842415817377080718933186331928684316932537847706787313752868911890216761636182826441531178155728715203399784153029296968915545178006554479590122917454724566574599883134101943384751992262582310725478449573754622158101823044067497587713850881169138813835215149311720795758695027159538560470488600863697791570049799969024696075351452539874552107079035953622229969114872758644019016234616948395967528912305717621300323802600020219752989805556419302715340925466593155597353083757093576711196417459941455457601632086149843942736754273831642264052795968157859413655428064929275992774429635578701710168174292289920354779911226680395696787017289230079923471104493773695051091591538656898804108645433472832836404259444122129063087921481956348122434607659375969318286173820161621087077287490711988423715116271460444835656201311060782994688237334604793028819841592627683222699944276716008353171269892899909418055264342859794633326455911385932840258247184959370787270378225541388330375195826872641970153857800063544966645019129300771365921608537603003396826555746037446997143362574539170738097510901268881186625129715767649879798366528563738335847619277634001802529396161711376037316498989998265015479097501972273797090563937198601466079494896476948956472469865437323720779050021782090359195662049702643667770654671307213741107412616270439759930386894187186630384594197569120025484179960444250752496485250190511221396278054991051650892439741060340415589754631984344001888604006343199303580055824696338255844451193767214423887264272608374872861155514998458403908081694106308942276783345257391547100418454742147064573200235661532960468909829685598638460037949948344518609334721959260670202478105055648234516692232090499159944991903927820216958803264843303197047242110388503888251125146873345253469284726038208384430211638260106564148602811259579695856655412796037960718432094179625356854496406876358577372879297476394856896610449983683773472101136851272591191978156076964793794011732561948138767790499510466909869596945611738969419616849931986463938310630293991171821757535292798335491510855067855581690437446447475325490886893771790212146366646570233050815451753501585704057591357666541631727061569082190757273670760197257829377680374064758888270337208342252480535190515574174605960565240839757396548412167375942658202904163113578150280101296369426003005215942717215049589413173934132996321481585348101501245278192446487490644045452193340121113924268701429257789303695358531623475108959599229835064948793295428682245751096372516146246458782590494780137830212067006805097195106721904099334739149377022300742380367652035460744567490879290001858517863394528308682762663891333394799196734637593945931376083954005265770121808060986052745127199607624062254031560016121718309611653355809634275393487424474343629503990856407188249034972330045341446149592376319611837086522555171320274086952114440196334135082004803900330378498480706449134972072301470643214740881916100067177705034470702884745978670065586175301306045948583713671361090807751830359179835178149920917324958275502390221675161227195933609953198299431582678388451057145198458548074517413977417787738346309554946626442677841613545913652168248242291813197762454821669410014277736796738161494314691947946625792278350315568872737803114443343797358371286137408156736269183031838574333539856552644125950454609409199824606396169399067899344272751799357212849136256166828925244752731134203155854997633520521169522223855352943962420903203181547288462487712806503397441271990021742119990078907633334610305389007704854849449270370398621183595125065848901830636169514016696790541405041413862906362659483819425161848312143560998541923398211525527137895168442732027929581845702643332991811158425004316565982334279636462900435247935514722782919692444188618790368705510920978064802575445693721004810879126811349066509586481856822275152824229349287006668354130848260194079702784410796503680738080143200079032278930872146693222708551662150741865546585081894459422895633051639750232352444110343424453305626569877929996395812741032592531023661705759753259079732309598134158600930770170677600983856020291819323827181440499022876292971312414293530918306944747900869659492520434339712198106776798738002912597086838441687346371014981945081020831037664486620589891075552147992765041057506794159707553507446065272408751719771029839244991266564295432032408982459874996947494269457047028933595290289384866255109352715054553880065776956887215574481604921744885563110118126010997055940661036386847182085910484661606904155590792283441069997621308443859664231726722328834514854568750156039067971600463050123762908197989483278702163019775955406587362320139135770354767437803934395648855441197131692423541605386880141661320937722738358587964263685669384066136215206677339699893283650700363266345809784209561840555761793775812426097992803347952260245408696736413031246605480403041327123822529973220159393360624177366102075504963910962643417657091876084825240315754166467458129347444983784374975801381720025462971283068547357652335982912130473356143789639253556030226316573930286789987538705415746493218828072867813382993715495173055198313464293410005027597870925255627615876093380362906378291864532694029898115161967702269955263779508047572996399160403455328430352970461044416963127751315991229106362878907262379047533188440441934219544090340397900822541735889383801696822428718566081009587800417714770689817087604800201293706554498903489086307117390203922091142044078188821488390733645813808286882174533131965561716935450551753835458122233818709288611840148211382868539052615080727008028713375544880304587822402142661602187563186139001007483396929062028987411350362810568304198428504782989520146014012779508610230132726482072284324094365224758719129298401341004174586720428025159209663744050569684119522577467492001297788648473947234703441669135197820109822701802213063709791891148430777591001790723602268945951602447599577171459156166399688449335805858824226944715097533522029103284559966940316066239905675779432728261916955543370060175883596074338767658264683788269860135199308245153925392137413883613132910566732283712052852289594206779334883358240849213021030050563702953337174591382611623369474064646808152865024759147350595763016793951725910918768675979920999413349510796481835771910660323368626740202850022512544163825608317229710729322915053023003834195224013052850092571427447791248970411987827798983792174110032607201114522972665490069779953996430292819260091288233764701979194420957478710316158636925388927880789611616342910463616439592283894605154405568460797579242608931360313144057707457323748757205897224540354826168453837531437790338716285365324561791568620550457866599037467145896191659100802600065425056139577203456764974052806921551766733441416542049173420446458541992405054689432098271549378972795515204702630273112322245995013498080610488958687101016027913437683099938982789339608215250751356114188914217770771165096506791779925238426631512583227474043816657354142054364384151152142595353878923854793570598125309166768792907494642902025993009816909668750187209534018543205491885239669444740050128628776733491136926330414218118101859232998878807047734897468628884580214576534651547218262604583127524128809353967627599563717834500455244306158111260004351632072980735720398279987309796048263297491171398024184556321307159689605548534945515472516831341679055763707112175973889691416484965785289124991724665540458179294262257387228866430082644750994775707422758416405565495659353236463707156293302434898122099239857385334595051089865968288579978896355740980835267889986546372991689309048311568940433391912498931169876276143271540615969105354089297197924611375019168479097966837683521135678489596129326742862475375441918581858821506336550927973707451467831198655918915485461105292765876439601002638693543411095131540900619156301051487702813073728095175851129218285587754202905679232992283167960927730165397240239066504111561994844708410237054726835389804833467799476043011858718147588390999605114057858931145753160442984152177766496874930073026044984481002269806624520752781591532611805004357414325568970644391292650163464514126877969205385850754469234333558472283740183211580462455130717909674726271906522425894019493374954942141565177994220365409786333720258567466266238984935242033914713128381417700833049461968215747602651823470108813942834071062825561231089984574299124217467078742324937883193548308694720103452853043737074202418469691524549326656547493973950484775564434605725576363937403410749578394848782927789954177101083473106916939512352669325436633300530628157571076706639092849044510690691600496467693246996469584580925339222227777885592028285645624815218151713336393501524856695622976530533042109123187687280772467928122136284717994003214990733450944854957490690407122944134422639237388467369887591907352543081883183348402113920892322763046717823408572530373164907329043119829493691026844411244540050378410685589151014492277979182964038812686285098924268956425636328986304645256696345775617645547511593103870596436062872912290130453227138922172589131378451968891842577643610004240596997918457310738773056798614463410819566728612304880400700899211858408349902068512135184491014681355140739752163861046159299029802693801840375213058092915340978682800764762278582910451432063311859309008884009811102824631575282966914146007866702439602152599222193636775315768813197943388560087569878329833455469611051019395565195965289299130263078685127767113090188353626002544791854201186589333173106597780041240925314914389369465762914003693384934970309031994066492839803171032505772727540950333267369927824192339099614032037570646004233783418588946153482370196475114011403179671732267700335903233741362275272744824576993629056288243531710386202525742787971728038131090698063505303380550114590329711633569775117140189248465403557362229763121159732099220399207523574599360656331941101513486069761879058631911557485131572311294909099921847484474819977855951496396064806392377347121648013303709484694580686509882904231121494424750933445475950230251309548282020170485703800137747818258426957116296875961523489711921974801484628964404554920549377963571503273973776859121220693086210533412822982353888976643123729006540429650363730575356788899465219865787529279784152261854178020593395498528557123015631657404047591552890992752992920129722906493326562990080330116189075879202171113617584551019173524779366651425552652030376157148978484773102450615248783476582504451071192304815112433620844722553612540904454585768805781204618651995469879925283907427785718124975083224205873085899047647467470521755243255597811987696334054900280752026173388693620717707423185169383923306285510220368224019971883103447520193699392279815303656408651831533272410798080424103142837073430336076687596340889610621993447599235372775650361560969827453878831636308641806675606262273219858523329140490738881979315952206033984492604448254611332936847714507016243981682645951460528463840512472028996224906241394255882035460085817445585202211349588035703073942501319464688328126709827631120229425584066129452308598806367317220246351338947126892270986896140635202524287367032172640699016542840790222716994250619075307445326703226393413434929470331028459037326386291582720301007562627861888284459876690387440029381569096388895119015631274231902333622360185184239634484609828404264407817121721586705204376674103195661197822099254499085210581856749683625243773194096305748649466172251745776082062006475866628677348727731052815608344975629094783032119568738101884236978086825288748156808887571132159669212482447083168173552569275080163915782899367241437365156001059735002371237294899601219073327058228834686619108785495874468360155126926108401428393620801970197260064803516852766495858585675485024869110906803936260387513067700280854549838175661879055276394434874567725049391233830078562491313711990605924228682737558067347396651115239390850665295085671111232476561191264586312115819217211599810537648530451451753004198724022550010947247652944079100055949071175361213568222767035418993719205997385720685381956753973577102060603171343296146081101072536747703938991562837602334663619326943843423714863500372902275361023708614421065611647283408546401394929363774793418207249467042694421703199748085211537058678844515561724458171852450927093425523623178124742331700042555668080772437382377296952408735360153605431253762849051222356125560890966603569966662777263523400377826298921447072758778929011043987426100091328215257221037436913241873198552775016178966852785553791906238873515645377181932016739630227582649006120384947571971079646913333095656482353470345861528842207621918487536550455029075276133732252888978647162147443741285967875903919755739239247130916496614900707143216530690865061198265398607332259555471610538236351201949624921959099602373395469568038739456683973633567513509213627931518828387644693826894443224835626111438121169515579270323942776517980881174863148681320120201926502102929832506093499954395411367397859944702122866357850126926912006469696850909507111914895074968030190796715854480257505641470986494446485902091650380651314064616576156727244805385558865867052775459620614778256448393459117981390589980212622143879298575794870035288135081621738752965764429687123542336333799678568183156965159814163483413141591384734254506446527876260238152599978050028858441177279406302161761192947336765820877517564509556236981178065410199907410259027474928805013168955768809978837559923209698264524890407811896528863035051407112725449649017812255909651479545644901857201749308755756558991492976936636242081488644288019442930915177209169201629843148386053399547664381208264392772225464365829764979952982273528629048114047978852307654931093600555097681261829728706060541649236221964427689942973444999991253705208352909957841869748995608900924508498038106812988052655267795929767732859307953585894747313164747346844243423437516270796309424297584277178578188090998980523052086550240478121864302911801503344478860163920053657348882144158620789961093227015089713633339084921586348160223273627536163806637067273168183894522497150332211598715728886195346827815252964385957727562106796392830263241649952379649819239944666682812731242540091694009280703549812809820531609795711580704552824241141701311184356672859556981174819768079205020707860600368558125106272144585223087387198786014336360551357688471961470093996240273823255747619056693761148647394631743742594481157940713304068538131802778497044189795545818238436448892128721128854589598571417014757123722122485909098433456571307424934363360179955332613940299846829144887344109291265368048892215617968460885762336480984881538043812296578670153953058736549261777438008564482093739423114147705226324533403700433866726780120000305420284816472309135427225982314903497634813187186088811654550114288561278324758722283795884378799861021359768754894240698589990079080548775847463896796228086237750141498758716716773968804932267085450478457751496114378018118964422151062671710997716837702768215810930095582915800206353548831168717863048179445298555912878897692690307809136506085428514788998935442733063860701392518768791318219106042552027870182333899712134308158340157452460600354357480282866052483385495092922358276949681257585481330314272674182458462025944729368327800587703209129874501490583572968773239695572507930565946694792118936183631620608203756432473844112307271296495731970946599206364856245747340429096943078970979217610972342572503963924443912309881166937250791996326785356353854706939347895253363712575044801917106861993442015039608707129360567410260253690071933592994720827537438794444930440299043092982352542848603384587950612966518990912720927714736220661937708504724124631910867658723435136111787615623195592519170058960370010332356267989808014140090091425587806641360368399867615655790199266063762549123077800388344622165181198268025940001070510703336762923275349507306219140163483345821545660057644190687867149649512466252764989638277469991888857115876638980687994766555091886068910852673694198717882250102798539958720474450330799195136060036255297270251591788537719077976083838739383158122833568990374225587651299116905743052121637877316660981591190418961407217321572524057201257670310534328286558257514512472181586363995534510189313120773648130611313958452007815996054569504278667072908020817249051369730824934397911925148920848896655184471797540947165495731381202982405880769890054591815766362597939412777282933882820200509438249159263058733941068281047384661945338470116435817439808948152020700527463688521544332338201537313388895056863219835488334579264560781918971105974711824088068376494774695938168946659051912934300101752194662031967062781649293825268278222678038921704171286483415546724919987285593130809517123326215215590387976643941971256752543932552266139477660935101703374375807950759722439753104455361775599824970522317130456747449000624342317037640122134571497053497032285923476333316531241973832568590943815778522937666281563700331485400789310666420206403614719467300334205378733444090675543977460805693278444753915371842705137143111251312906740340968938826041632385196770315868990814482005236682521331182884133735027982968752863866076176489907462430625105613036809357640872779762462817188812909417028378128547387411688558622102181734834750762865610108991587942971939529107876480815522536772648133735479309222856128888491826491185115688012449622863143984119214287054276669764272107750684114506600326304457554515053055867741627185054528376122408646502318666205586787573495562877655599198140656109208733165848089292175753617771199996775957509756590978084038216371317048480361729680021466461267143598880629489293544887028401971590677284331002813999160585852440121586854392147420263378021650868369106397414035323644349312903659338017701056743199301198473475933443614387736549937146330680735868783786214983221733072382691168206256065727633511362387441151145229322880673836546116304496322737196959166516000052262557259032074243628208119280256203079861526356412867999543729173875285413822985399320157980049086635198056917512650957010662537247327508739352542068660065763755205660533834506624283021214057612035673634953053326348396682764923656160645545308313673154134461684403784839778080351606618764402963691215535549082372342370232895470106949291591095953367795004192150677474128334307086298366826331611128191076605145939808947589484188138008952739776827277511951427886533138913309257090637453331686209141161595178283796126360878038815589628936743871491072370135481188826319829685539135843592582758507932624891916196186490060766090540449199819799767930598443071481488954212749010148976500472251007409840537750821984328725406493036826102830721922148044763865861345546768545110645959798294201985701331866547648913690308098829569459859451134934115702390285587931014947962474236162438484029742293015039037619255372513240359663435076484891637086447074799271079171269985034157626384737863129882689334158030605322636196654952206080161744743985467151649235332599708630535602006970838367311783582974610033170112033465784948604363641669441794727431522004642205867368027237455493646029480911239275990019413582711945584705336971496033199179011073789605727229276834776049676934798121637939116091207257985569244791747620602161194259039707096823553897354045745364480002033976607040523758730963145708569331045502051117738090521933500219636307734272829922142070565861947977581714028882908303366957639746279457879314222420190609309556767407161215447835414663662001998746873588937617721156033909576713445434022396637695272259315246095733075294536838527951177602495632589455581240681604179855660390436057365186153268369505147600110118141250718015465017965113463888917220016019139474597064792269985906265030569442551250063650222500087141271297972955758297651573790291063995306257271002346900933214109507858425591317290179775311992759821437420131194388293317759638082885849072103840976850999990423489485296394788626013807582822356462370898003341096491117074498670238087992067646316747274328120450373460415791489982226402073946620391410947461010396728346712011866081377199234027078847759734809259364154201718425760598068441881887814103301950690051651425941392710811145660323664235113643775700135771393605962030421250484977985573759451937017156232225957195224149701251944819813093263975638090366932711088443566391363024884439092422533089778755602011610078075441916801917989874881658559534469255376973100384367956979043562056266692235358767011154904742961167076258573634525343544806504787167016711476223297424530260361269862322585330707918035519221597239547648741288428845542444908418457679094443844666619194278995631604819596299873675389034964343793265914448622398628403708739794130810447178170872339565495354344410600460534290558347858902450136174131833134653188502218936171073384639317807869811490470006816081559513516985230875489261929864131201882437078438524591582396455912224539100211943465608620460649773721292618610088249102391927595897884642043433489047636733615691477737958917882862869923121885499141689010687715936739880269549270140358023422203183434137536361884394315505416444394546972963182789792897739004382537608510827547706167994026238560974496225255756532608423824435874565585220442612786606074770116033228078062694370048945836272714506337970199572408918662299328533014286360025880340919054051726654952887024773884487480391019929540020288976079220592148505107826568389605689938180224967187048335247991498995783679827874599194455679704766237809400681137029313528562355307903373809648314867746230352818385594236351923297359816496985758297510784131269800626601436730136807936361980803156183133813543456326743766631592422598605430178250978412836027254557833656164012701920594575449503774245880492059055270138926567419109843234088917657881103474255873863937092751041174480251880626802925772190243886792856356292909940452826282841552291037115850435767150856483706779669929853772000366047259322817623798669315331179758869146137917533487258077310369544681605836616211748095782529746262657920400177563057042242856673183656769844425090112684168014758125035432405853376397587443387366083746162630621958874316408664901126290174012335384586819455388052895369993586631607177721287422860061665706402335990275409349774932014341320828765243344427844431382065362548741603826100633792732678586916085258185226546271265646814355744128227229188641358801187983752588258273145203907203280110132152096860868186810951498342512955190591610097075338151529708340297332461706572518039600070780630457826813057206640715624262315940285259927391058990100997243441550402498048398894713457281913807814531034136028794938816463107825331706515812020623357515424899792437423042504404711945123863385488960688947568825574996387877598846829249993907642046859327331393030274310978772385995952511837442259154171074209235096292699595635452729181503386457385937286969132597090024277353621367626339222058954851198421359211067523596194126667835646941957033784653390239772352396111684705217419987395322490786901921379212851636566695032732471385025605939722299921867107708380170141430504559082850510039671296681199279070420114860344230889099380967909708695648194937741870726479017837923785093131872778490753098522498878773386976471554863121387124884513533694367696304556904029498883618226942660552273078740294580891049992533134434727344748812924151016661420099948766471563519735297773684073011251155309461742727732106682609249145689622886156277964811735293133627141259436039810788123098730678012861299900431648653649272999098972019397218074041275186840738238692553421788491209369746540379257621817559176586425251803137562630786295227397567352648005781406398513356503872560911572138975516773824729663191046507898254417377672232762285584342104443810472767089898427420916398472423347164877723548574005238387500202858965217259350097590156568505604110543767129366556028948077016073750606319671844203380056136116871480118060249068070023003504378993606107997969139093899779920254999300677997441300174265422925404838886303234379710907459303807930042106829933181368991022657663186788170551263794574343610541778319377322369078059137308998980419175408499759945829207070513896906964767610977154181078062269708867233833765284515207166602824896670399901144619497863231952656701801731654157786691531845150790076940305392850193777858657964123865446430369257395663622271183459165657868397904114736184442357743332331454391318335418926572235233467716005133592127639026844082024510183179121166010015313573886225392284857839482711829557703231987048113645794504901224516186580830025004926550780563148088380355229056691378370497319927755950556956989883116098867334573276419026555254545226601918595898998519763529558172457267990700009561483969992844102049889173686473982049158156135866773703916432008012286736742265431799037221586855723075481948553799486131850778065944975295529800722900972918295666348832200115560810581013850086290169033358434564011878554391766796385835621546907156446111438238340889971664803732700771823003767962780682684025552620744613022875569565424673450470917051816172031137777943267485020616960509482037121407568030183840214770747143821452598462690429073830210695851780096130759958109718304557107504832372947884004771190178770730491820779877705472819299466375048745751537024435317535579411117733225360834238112351459891493972569591381690124682206051278774419737435578524514226353143856454675494878516191397131039520100623849928980645583763687459431824508201993062987432980603708382184994234980975430535548813102264246716126740186292826409795132508733456815781183667250035992270510183493067411772184254486178035642876977949167501194882919141567971478736384043543909344508553520867070526135736819315679349599273284151496276131415170790988049128172046075165177631861353313117622616176545083462385856760069308942454101064859579488734163637504066463830115532315174732367270774285064822654700739298164721139139208658390716809651072166230500402257619689862300112335734796259152615984694373908416734721025559090556796601811662557297365976354128497141937919471601840396203181510910203827190387394540827698389141159134331392916920984063425649699769928596535131844294275614174363692444010383009141583090654800832691517179445235803200253212157853911793923620268741010769552227621745269581902850443848702432233447719385469811388739981728201855158628113783786178761777390627865731045958253582386887203000193351345481367678049474776347507309014901580286186412921381256388214520014377949679218529078603525485640547728364658296614213851710238478779828125979039514883614375200474934076301320373961549419852171703999675417845415947494052086641738268425293852379781868592080134159685840430978453722014241958972472655356139722396320847036183142676190664543774591416833041600123746828272203344006584884215130059947388756496034491324970243445876689363977931063915882001242893452874606519401844872792827796163151003134659115597123199176795120025108573425882259696372375898297144519952581068090983517444983055950697852951358962824794741890309354320745355593652465749908889658036002856601707645812152086340448265908101231216506141901384824554826932721405891345820418119809953792012690738821302978336140401013008476173360573925915426163258096773146691678209426498300564848453269759491609272924976962212861125978224929886919275062955422451009832112711018178177870923233775703113213059276491390758300299224242097677156906925119083600744133070671113379555796459281401281126806752664792655656220974508500843281810350241908447518116732817387978176060505831205658714942586767254759971595588554479644706651898084251109177953465100545878899778122767612722919881719167210095670895209101299703263769133005059986561672184372299686222349545120537713537556751188424899236147588513021866244676448461538450963573058355251985726655614036488096428177085307854674849535003244586396523012244073322718681519349163551475199172800597296187136623173044411852484111531160887845727655878353426094542570778536045802423096889450449501280229548251489723611290782149295301299082460005749884779700840941930327826567050913703257850073102212601568047386313029202841259064051405121871769057909010633166798543758582618040882414476392742602486810787697320020209102852089236467706727325758587623155071783142568187923714933869028276479809546962958858760307154603501330928476025897582624195727042766833387097130875934932764453526450186625617058165292787094378993460758522006064513622204252375334048569795228333668649149461527519516591444262412848283425398722698380188262382754459801573210552874286112110075473504602798280612806910310769640141229877344124604566127881357021354276473760924456610606757837357864670547018501699094287025748980843245959298332607856349866290797690517621853066938918774925816984375352989980378835643746779470590511903239438380264400457545632909134333072850032077460538964658597048377442774858268507579683977706722956352143593808587341467523935825375647925016723295536350396932245175094317368895281597418858775397012208956271060715839235668418569912515722830999533492298860175903048206686156726445500997509399567194047037780091836621930718242225134286516581287986388711147594843359141187444448723844974963531002925145413565015260361899484145399088712772913231029156015028142236954205074329021679838032079307345390166485067421257180892331788762065387001981617748669564279121697521811592796333513258229572098013663424188396241816017975969749058421070495492054686065455322530236177796715684425459644435754506072996419043524967923378255178968374948874382548327378550411478772254356788638738117693021252702399028402883528194176792675073699495091693287205382137751894478352711048206745681734816641252571878940246664311555381682715317911336772555992565904120327426522856273390788626395906694968304621644458522399530231334895297468744679442291947564095986842693773569567675257639598891260631339488236351645271034458791028325632850368592629922180188041361545724649515227185867070233650981732670646111209720279674407951309906550826906748477305585313693109973571164477109196448214225755915247467049972933137070899978625419588841824772849367031482019020041306101544427878261212828743808814653453643163521957198013151513497903797135863904281875887772363612838511049669979042203320905246364221772071563817946331561831294551777752040204758943183380568523162487923510957727556298782710555903522007773032685273785596710268662003627585313224688626426333295014034254526948045312966919871285839279083711902120266047113264856513061140243699482223984287663868019253877292232931533046283160319160854521398717543202619997588490840722671043354288235303847715692818194105354293192162798749265420191208832578409951581030566780459540103377241952042661522943956251515849851186780086846435822433487395436778626972601865045937040113143849943056061668743725823112495451334966325435820303923985713610100698736973574100424720064414899852752653016342320895651088815967649138321415543052253517053420584077102711401879186322104616879243781384346952842173939209959598831067292213311894459339185257681605105692906837211294365547240411040035462699157506475829072901068371595453076682579850635304456444634910766315140422626651880148131167204143814853075999619855771910551111964264165202193796173055803148237742459551788060569662923424475756753246471615720365237395170442766824761523866491029252102860939018111812405974519320541058321824504280149134487573134368410940411163966312205890558956729070423695354808839876164619734196403849548751043732704378210387111719558096913058418206851740449352705195994416210225708548772647436323818275482940451137959294593516201382430604140264546678417690142954911738633379920743609947732929458793096248301997279321690303352899499308570330046589360640245840464799520397482901557283701663415273729734910476466814916160097324125973394225743640534766889130426664596500188528137530863260674883843191757766898335510561551977722945986677277926646613394610278484725691508901059030372684106692180440654913992183960185967418074163346122811053050753357283663311470313777609450739225329325645482451303831917717099774490359489117780229677872861621808662844286463264749175498437743893372190791172225907288441800300616490580922639837300088739579560126990633096626723098136972279021195380765279856166221171667453897139103656421917013373689417245566945967793558773912511005685800821500500941480176852353061755439890767381823418539588202660832124724635079509235281827784838900667071098033186886588377815844021219180957631244391542057231267594256568979029150712667818978252875889231539005413853400188245499923384316888523423696468319153578527775320808508007822444934305247983142033582237108789761161855597493240154723493131378329613315603690949414634002199022440911367438507080170145436531417576748940628451036329235116191515171714652016796177036227691441699748775686216796197754626171718755634198423255237993509618259547368214283329222035146500080269933798311168979148844622880737027603838160873553344043127518407999893955236031717653566817246155746563204880574974035032645837119554041621509760434974536042743450393816651754500502316817983633699997960513732429473363230966218801822965075041172498953966778304968460947167295864110128961392813027626343542227882725006075294703038224520678813064112270639857398373528653354863098442049120805985495304012344589332616616014023015643361682131967172937826656355689648202826838306578199584758945366376006924814670530408303543362215167086764135854045447782490344645132999461249686947907396022264341505646217023871713967964056202008700331544541527590270261662763842766779552204125821794270820182291500876111901610800844109139109600685309278025194161913949771639704348270758128448527184161641816687088318953698808563820355524150642818692663239209563039541248034960819789939323909556943602980984594315154070829866912039460619064330175561224707408641387331723911532910577298626128482814124561216050814235355058054055590196407593564804196779387233302016305501091274912024569717661644957751396811363014947738033519047844594897193827394329501093141753796592008920760560837645066013664351485027862133822917121086344323549415577661027623923982977931676212484871790602853135601264381760082409577148298019264777332456480064002581857366737909442804039802754735837440894447970635025150828063419796067502581147434676311543873062548213748326183382612715180516099018312662088879008928935845927793328198940813674400655649187243156528098349873671254393679775971735480041246020362149700174230987929664839606402754646057603867348770328889082566108388636766207650806751425192604099401238497619114550965284752919637783431453431998653707113481603291292130492216650691562259708373480946364415354729822148618826502516628027679819550238981730811074899921826985926930110869893280922708983348859005974148757473323091391552533454549459368029379599764360505548194431803395368583777193559793437838488241413598198217659994815884115692119928639927948893794688684430259712237242182583048828237433469127960187572434318198818907893883653155810297799991980872335115522194588220426421273073910399854558944166531024849643393911953008379897030778434146776981832644448409224762737603719087123969844331753838920093459623047321101756301219496161082192288782092764446157287362631736483154810947408101938406408706383079071291138998448763131042643310105521274325293466132161956743206560022077884352031330251328844917841393038152803210518364171636953352651101255905733747263997050271823079400407945855169567724699564840663292422299000785602905652051588483236956731949419942324001562160127174135606167528009946556090489857850151557212962466972302493179238704925480915085312914806837680818564424460884985847907020775095655741926041356296188478403601909688901836873481191980860744671007150835559608319176776796178620591654027031726110989351370890174055931861522355190894633113845204208273970155276997732502701215977148211587718624871669657298937954592638097056306981321827149352570798464990042921235470355959723909774569214585385938099107683903128617844350351733630516938968498521865006898416337554714793620285516867055541877075186163766075704797025173070279743066405775022906944089662730066088143017148095477066813109013959506205651580517989092898463221029869386375425741367927763839729531121098318056851879358110920352986380533081606850220596133855012909255562449452588434166408474387260646021551025574067501145505249670335368357523725365457605445668037468676995460350336590820552752448406799591195147738154812453987766720520729349058840336199911686435049165863475625882956633158054644764919768368226074238410854715095835924488095813004805127927283708383146958079046507335492322434867871437100782616706654054005580971498729626821511206004696572453289000940569855883865399467541214854703404117456030639334325786411454882170109219101215894697053492510481016478317972558620841943237450820721506317449739663306960723551152273462100864200512604726656152846263249760562111561458240650830137150257811511192489071003774642966763137834223589606138884260160616573178733782244337598095707373217764600904053674264524143345671273434338899491958144372340406048821585871159719420604243777584928790303688851370313137078430868207526486174956654763289398106953239247083544912538858773186212867577760824955859859487238843287991694791031099107796278331741145907148469558044432906751285327912997592332005397190565992869677814295092435354564896376066511306745191798617519249431572158250041934502881528828390167857239931458161515009136196833783496533014844855345601770310893796262681172221607411021422348026096498311492693466628611907295399924643462221432586386587552302343600072825526277874409762702184105658879861285995929867451870031237206308633018479039060623501277995493645350255754522238655629352337687544199931401125659217570303986322805381898644501894274502478836603750949979973850899608144709510987131239562487051623296323321992915837645996885456076605001356198876003374754667551580120647073566539451932848121983040732952530824678361708406961956592507224873351541272546801421137892845067571985455234663037476056058333781814317164743813723212554363581234274106985958015916494330282924373395511597773187887363538104313182337762101503572122348471913754995195585209641345152796128224745505343068600697800140683951836330975244337364040939510749077361456739797267883078717639099209768053928358211383260424392204295233853336206021259257146180801656424942634380717511010514802516088769911879821782934701432259184385122623500493373604546924753820492427088334976964305957522703733947001362379417304091432259523021412642958127766031588617637744628888082710963128983717485902173863211046482766635427726065985875311373696001334131648857099521088923366412053280860878460460426532051972565061549505046241527989844382528443276670801884578062615816607399155880200951445865991085913970796577087906505468060679187869932787114281800958696869852162211263296709030500206285152788050989391734003859425677519501746343615482261686578841905012243617924160170852783540231499810813001080170637909199190751771482571105596692315911129286195750128054376524937514829889454075508585357820630317682377918608777322578164235498061105477610236970706611399602626105973876001300845038018391763940593208760928673591244930022607472306817054436487361757989243547796248538825224371667229585484223374311409361099512315244752104251733263313792784941363200136164213005752433001102567410724375796231525150548772568383594783014535349950610611417642408693233750661188489046903384620412755188368930325402880790809982218424069878748892940602647528381115852906579060567816847673810463609151748148744795042126155426032395448664553041056242501948883357603832050274998040451855729055927843965923843056974106015365893878053602879779972603238672234198159705832307806996799090508656201335890646579643361555791895401416893461812786562893672099498062560071399041388483649865505532417103911025526094730847921653345621088844238574431122055065656350096496737013840136552787759812545725671947042073128067076425977918666799025652313127816503045158650602576095828628190466137306831170458588248344938639882112373481794115580933971778824939894655738236801647378586128462910635505215574558197219301455145943532168877241439442258069517292143076225523076530254230086711477146732862715485317518197018081585527976939425094595919801131394407761885493080770196600622670809074378808699057027020196916192876134503022917334687768369925866822537585981603481937112122475738201892077470009710969642732519245246621629954406741565143397367077233235716223940630087626872522786957926692545562775049191226246038308448110543223339616391567749910816709817286659081798319831505237451890262877409567673594844732440701412133729265671804380301668575172624504001042930605650868290105722590749482828152355831981196749167113903046929625207104636074454285517460166671820241650569292782629355050020982356271448397377909146236612617812057418885328859831120827466896194930661195635922404462468619733500926412012532600761176288501148412174273786409265441337239940959232479302569471271394182219405996636791087350923836548670952198324264660133746016500201848115730447633415386674698044243512973977219089654880126557853271738983361477217573417828458773491321319760721978975609781080873846512671502149704036730059055263927906571990589412229620100231345569622645743734066048503356311292240792126457049368748766408717023121452719941481863178346321024863497250198009132480282999708993664301900345250590710482496762770265769829843967568083547313994909039740480200897636099554643683522137383756660418725434193622427206710634736492184958258789073398159505721510008384242080873050688153482749113162597930083814542423081260376592944378672815433073616964241551418029809289066434325731885296745401936130892655335931861466847562724784489578136702138406895438132481864151167542051083813706582675597998932678456319496949139844044989456663197433131153303393764450965554909958574623687104144618935574095819514370718973451849432465554234503940542370221496398993131951920792476063497874962445396736086496685499733234126186687957595689300015514443472710928334202789721621112044710316223696726971563116508082367329297444414558988051391909871798214065690458671359162184877999359129061230955739886144944724916968923881678642012891675985925910578909686091894690151412699886988596473174568907989317311860104514506350913251456679930486786244075068584410743884067950368990088653652845560277054599018258527790068890525482131115946930124345988945965287832402082200170251483968877811146668527572484138534384432241108075184144517809538113540517738691652523766345592347236447713908138170756078285506842439587968136157364749054154973114766673837732565313043039427214372539463651239413657230578225865458426080737867867184941535635729098154556398354305753682409299210053470120976730061509080098766008814953006543514068537594003984971854555413987270548228483917455715248424796694535619107731922858946528803817060086992555937407818480576329825656768309919581487322571372915598356098191380411080836293454706683708492843355203002647996092950176238251649113760999470313358800948689084496074208781638775500859064714512449947604641576838738434801577566095160504862232484152670632506835260453266460844254517705524441444939948061454036023777608954380455266827792295661271833246141576160928666451473412607822615671945201047160125544247349981594718218033420404952786952876568489336621142968699320847911223397734229069847044847618892730758120648119885760577865948305389497589265107344247364667631294336161134655666297858515158318398524367030026037690478728338675710974411819128015434995313889061466782799250817416701098724573394824035015771619780997050607419304871192425656236837864159547560409479738093293275798456147694654356418705490045598817438232924026769905789695437823268589373186468654588038733690583718685879121991775214087520550236820740269961060573840098949265062233822934235313696784391912242686927493770085239268611679293663791729898182923952541214886084520427875475944656902060116908667431514682615321218830246812753920881126847885188167599831896628551759982601662466261761476139016337072959688253292433948498750966451854705685201345071527154157369917035894591309644668368386407556938362663321320380457713546420629352315229033609609175313236060549104913973216420312517752722967360014459575829759271181324196529878641235749272007570877781799310093124932999741709987534582528485225422709124304404379527109852772705643715180361170567666905262068535207716422721709445450771524486781300279637171591544540566064879521521488664002383868551046021847416134148152479477110816772408486441168154577898555711798622158293893993423696444878302662454660088187259199055056487747294275026727726054336936352641292857691531505049676371235363161366275845142989118201419724216544318934484664589959170532604292762685361873501212195473594191116628866111819169637535398844843053582600063935930636978600724279651746514698966890858645876467339537032332129703437837996620613603750074815711994687344373933163620601002769895834338638346201501854013679768612040956811396250850419617287274166948984985685845003027838659297507779878198172655062030718466662753201221205833370249473720899128131251845769173109924911179799467716167694991323998155067398740711092329121800611476549766330454755914389274982456781827826096175228509630699317892325242104877051958921626806211245186147817102313348958770757248698133918489154397025407289402782102537711822085908022996385260089352072465869251713885779150394848907015873339864378795852019345281341601953088821211296422161809482043905187561025192774986366445618297358116459463977747857692704802391585066786231237041863190678953677169550566667991143480276251313561504290601806610730884508963220955445055351398172271358951413555765731581259908309631950948063034023483524869338936093010817717175367429839372089309328963799324028149555079400196865853394096572182906417372855137806721650592385721703511814618402788126872771516999915504299293463536875231854694477811532714936508449416069224035539744298628371911983871096711739302060662719018497244603213303193610433085487450363938412726774229558068383891305543659092556539703881629502982901150666411094374350834087568426915455910485940413166361389582337211430229880629223371075089690677344742186818818035791578185078580074823283288303014816801851933162105832613019877544788855299914307319796403066169125441009955055816913834559435539717039490745999852129144784632446653216621502352396439334347486205423361834059989330205181620297443211231069826851609770162877419752558391589394124314213776499215515844756437577673570596149768219610960052644929389960383547486017361740651116804746272821163949565309424568068567695134328274325248924728245494458046123301321130477471451954728943084187941638545885311246726639097523387129757128822452158475026250285535882228144432853546259455103340981991773656705678874192107388475113571675229660970884409644775336584780280665516580785435982861757346182784671979028356422446688572316081844016351491585276085150300154041226352251216989844620136060486263846535962889813328080270813362787658660068327692724907886627650262672285451695536453670489795930940655931560058956245551435468629070604873947250283624405423292692008261767261348308836454751690355695311446019030777361975819198251209799102822987430840846102823636731464343887093086583487438627933498179874145059473880430023031062963061882819633146436095420174552018190041541723254823439805604828164300617909542170057032904622519500451612471593096579147271475365288124180629372605675636909103440312929909965279523403769745719613996975587019383123799481623169910321768512035130417758795582751879122419803475074066495924241558817429912334137972314488287676728711716204230011596943235843423622430056219477150448920176614114559819174133746444031834905426194667479816134854348644868128660964115192102734658403282760972374650521436172284534641156467187217674258427800287681416298807342034821291873523516115963884927221317112114901663856403953681940662476577401858451288672721727411548457815343133504044033748397164116017398738735286548671076972431413535629143280318482605995676721335176881509942886729542577812358036942949455950770392506173249828831873062329275154962842404290621803742401817380301560194832053661664109300121654977229714206166515815054605410842821355864727070065226222678826257760998905559311505619210208352221115542524230472617556944376591344136832755804187862920585230140187007355401401227417470096043733242527346062110535409348518185858478852678563231041706578701013270622770732266782018335275754011980848433251651264618409097518659643201165034245595598713590267693942754113398904503621847349940334954097424813727319805681024237421396156826753931218171578448290533776546922385812105028171745300595527108302030818056702467457919539090868704770506722909934578659544695873473804438715829780993790148009636483672789564252884250775191919055858420906793193382246476300262793331009227764720929907584776471663629844142547577751021596113266633941455247437092256375953012626984480376923541244211480260659986408594461571215438679566572005718910812288621000990271851096910401605168611447441863122930458680803120918255623910501096114678700384485064352526580587539368718217592829280798268551893499143279363415213109481082603129907990410096126017717471082069664137118909019030335196395261247462228696796251217032995106804476654369838374877615432029284948839734267718647167088576824773241304013653493496720466955446672992770750419301970808090460777355687822838741377112827729341816876081820562165921050887796911531915298852019928153004555298619269695793854949136930058012287607629236847554864141058682834552666191688601521098440090622157780031833561130592046655305308725570458284486743897429377724702206924317540555180637711021582396505515510130371071588969343856475671485226591241443806292232171144444966389015390364197651808344840906307077955381319597017621152207510908128654249918884058820892295838437011431802424402618960131843250060149791134673055750227901664865054070875892158748916817835173027303343372838820579007486448517535116769628606891667102893174759979990056918200381318270421369591508204777519131362684550490406564314079703185791144306254297606255728380782319194636074677348043243782963363221354928548232242283408341872476158522343695431907781821348462995644601202934067417306954180091547973016123153841141518747069214024461896590826907124014065216829459901310857109438823960930086545775561969115003262399173548923309852619720449064984369444873011308254585165097890111726807102823744528634664366019368542869307101289627789561036708964125598498843642467852509401297136004822504564464750802605925077331081508406177314146421020802788053159160884930075980368295190425943618860353419931020055453946848459233287218363368353387988547622102296925783590237129913165986179465698446743959368742761591598591030088909815812955465794368621275744730383996634464271301384125043575515743491993603353750925887610526561693068159144154415694571320127789351965319646162821935248059833532227332349029483014759845573011825237367504629465744718274570048184562110065795881437583451256304215283716745676221482634845238701468920813692532748726758947351333701791882087218074144900709218164775560234598557301747661006855456022115619072366751899716828830774602776581577572537349024503392127838661628971973811643427965983701273139337247938653287881363158671062673754186092028103154434105245350719248706432290694937788344197575415899198749406777996492471476805602561663348360337464410195238323617844961545210066406550169926577942669987808607930384833802158591702926108287592400169962895096706391880797220833780634921559905725331537856105058890279436768703660720637488512214172791367599587675458502102024824142067677327401248818521161301847254625706162390185409822139599701313248198068901305254326794608164348900659300533844559652390896825180081541356512562293816773814930493176525372712796167823338115626797390233705148968240441367975955780458301748478143897411406115605012173656889256589231809345108059234406846022603370347280892379337698513403244685815046640297393690172516008738509708110978320938025097963192979457102989733090226859767025026289230436201441008389771573120818858633512220170947257825813108240617629981612039709319408746194218039833193837684391104705599273788745081614750592750411621351700375775345751990939934442028688425366300873707997603854934645114483459875840310899535873414282275577516987037107987399155438461903666165187822966999051568879903202331594680030781482081986988712956655811567503774555839792061944964948041826139705377511630814666418992591509263892660482777525092839838706055536856608196747578667366592977495442090783523108459457138705133313269793795886802956481274917847867878596718027092232447867027001896932695204623463948168700273654521069232789244225157093113562386114572200015683627856411887833394523382903851558371373115605323243425242818109998945060058266036690517543200027042768551446172588841929319939623896488228943586637392315336124511580096432505245244495911427684225095482646519289871210634172458656539942222832950898876513293067601205798266657112074863453505131932267478985595210422790242636526447540076592513099480698198739255947906936233933140265139851839916610503019095715136391172634558883423174481422507250873784735291043568718917134894883049570329707633210276932405432559277742528055440370728450022550900299936193731775823803766727801509481559902868491216290377712693010370062381026617648725864773352593143029823485337593751429136282381780129398992474302157103424495025414032099115534877736656299075732023826714066610282886427056266678439922002374128756169584605422804666826062888052696676806618371173302332901925628588702476936998385656129973225555842259892098273060126399433770465957462030947033757208101347255291080173929383857403585011318923921997278053723801758036714340672972779811341198037710825318670762690611533415976213807128655384529116558665589932081193084586826020178701014739981531612009132266960708684415832015523453611675816960097541889669891291278691557836376738719776337418705905706975904463584598176260742999383472519477445069590450497567738098139837976888474292187217253519920013382199126938700720481597740580214624527858478963590505472547238258852801584326901013450543385175057026822706829258746881249114575676523106849019490997924105170271265125580067813458797291539948393939851143493570578411363838196407961656887245396708825020238403731531657671453592859897998164932770021904400857994111810021596559504684301999980985739395532150963179281322454189514046919524933561606633722821692449778188822372623587370091338810732952856038859541885049962481526546690970338083234112047206658251550156473169496970371029162455325137082879547160583504129802111999741727439963779670191644798132183685569329711786506512784442764381717066952949576318780481569199058257935670736550635214356418473562724762522583641715349320463038870096436641084575032833527548076722012998554240089608822893864943594143462578594544099603754880796003234469276882098087408440745898582068197619816728763661756757529939122831004144633602188018049984782571117158270620218645483034435271115510232420181502805234138287187976844219835646168364030245040595155479609532088287912747536804911188674638243210147803792983591030338071791030166912479518429026474650580077368411367049933009470105837472543599691905483244325135523544126899533522939027899598764668287458757439522875186117128290894882848584425230428161294877921692824164280168725505136210591996033535710313558222510596038613918209842635099961364740178756387434518982701403744948140770467567694211687405190330332843796525364940949513206443008243123486791687050566771612740177360538567200515385086713058529836252151658719079997590052035094489839070782210718377169930946135158958201358337447726623090965044375802093212389109548942562229475106841197418703316228377470828687767005458494592448199424528852998595126741073666018887546488161176155296116936876536321748881360746922205150375291858086797587468917261529609537753090228554850144600965981871751715488838050543649225418962547306250368279427884872041102420276735791004952609369066147578261850480149448101223300022031272168999612310960978776138005536982492174338298348137196448320274435408345731337950635435008997157418039716871533451058512343927713357877392957348281109819409258107712774592681954221437365283517643157070466300296397866370421139076478048263678797185679744381713933835619755423123444933402145446810596668778978315846588160026044251660592822909558096962177849552300294322570780726003794336331799614883051780203278518593137584615468363629166264612958445880355212970031127763564539567917243637715125738947475527776132500630771547667152783221571340192189973546371880691174375097234189409683420821934712861796279172831791285672829039523233138869437564302410097130668871620391250576538641824609187817811414502496905581912340887886653606962370427516762053101117164231362783398460836245766097869179467675664681401452395233197735472789580097645422535154437924658552713836123922361439608677761678552398101169868608534839032412161857522879883347608362702072824916289508171925651397137608283017212041763053257985359104612269962326237743131620354029690240464932102792759570249569609110105041327879436422943829591872257992634162386735721001806768834637161740783604617880398585278614400789542479931214317955349433381920820833958086186103262714059634402273862961267893488199411485130296533710611928073337216184832034270032370930994465488669060522662238100460725554857039109322181727785889407420064374107502990825717645414054714348104930006827996365658994265349781501970275804573207032137797601994076063749855990574811436341577921815549154349549790225996684497201053863096981624758445957609411790998384723978577286575976666815738319733663698659110276303558301647289402051670730161566742640901613582717241258031940920965934576603401225895739377790187325408371174117679928255801185026268405686208975893722578705428434991010107830331728796239633445334206265422685248485475902894413797136861983939995533431166949479069982502652460909124274628962245428473017544753222172893686015225573136911478268728407547472764334922330339471370052080020978100953947118181726798960666533753191251100441429777605126754104492523711372684229289443965091391964672374413985119386479864629611491616482111173133618485879918871935371116223347569912519922006527808316228476423440346474441077510379773453673149950499996700769274861604984963682352011903776223698887931857538961597663128106462502197465701366949465561559875396293318567793002265271640754741034052013994856085941461345683619130840734931043709778873377356676708587546823037304570731822329572964273909341103190015040130673805134623752561739923090651293663171200780957211556337670292406516270525340024777304997692544070255224053078263853713730769084594031270142314620978409390712921599784816646223719830331808173021970415379229363796321409250730896573945634098969833169044883143710161431136830848738066354482992051241334527975050629316172375838691992097144120208675247605243004447428021921466344367331428439492524883492948189390658715290749743187047011145081085295342907253893764362533578507688865887684186857270933933587771880549809378729670134366601827933951706802405917196428056039206246799946899139075909387169701579850418188415824613857693188943268243609690399568322144537758869878285199681677073154999860540804745476252354401448019178996997888816557560694125533137382352562545945146047725172076387377037191568316951181279242730020005455031198906621932171639392500128644229522252837647905211410415496148855413943317481038292284408661433135099146464177353003042158459366816191817193828165836129879156103904441324943670824356826757919555418923211371249065101039277339728968490803921732854513134006052162914897755713645513587052333919153061941612278625445020997893092155167840002540232024351417326515169697312879124570448582038742509450846573948363124976655763797500365870474211557493029242025233577222817275285031972789085251921023476420001168340440548449570114753245538452664840372028287569314248717975299646265665243762901783450497578746209581280932488720974557987811683217985986397497361832010429953823412025617684634219475351743416130169779417387262454321510407186786940542226749960392452015595206825071157693835831495172835417259413310305392697467598106761332500037913578122881949703847321133177507702415243245053909618544852123872015852189446875161142866641473676734629637441634194901446973695751205687306092169297246836517783221084512502125654824581001243427735295547078449007623851049284999349410274304208341657746250153307098050951302738627816960509274917560103030467415360982363956333638261612876776039775596633103586547574801434170841937882529800778552294160399977039641778727891383348366816635820559472275034147400479094326112848298297313844863698952905037993779637914400533111231677622438486472438135666588613358829793290764179876851797356289578484191944141241350399432905285402915925344681748472937114965398844281267691463756361551387414156665511137752953848342705587826963531780823057290893012566563191193512988532439947626899454790362070817572402040573157091724867526773984353239042832056077686207819595832736454662160028709962388233346704924578430480193790086194182246719911457593274429966447835962108996896162697935728229591058944621072612277956174333544401960624700543581282235005165001046668540942907037202526152702720594104227488341108163719564229105284290438123008798351485112735351966046303048638807561174241953001749468958171771786025300290593493086005768103729719987867101383695522208664862877253756913404241874204263502782088915044542313028633139754758875875789490553944502737002854097507615096667865295770415717923705223309942189501166981233215474332071574623466880388760890005371605046470069003104112897443545756509401433278907549914997701632763143347378933423231424520872532615631340495195058555913923921075209277587936083931631250627266726389308631158048016712923704064150564340638598407943453551557549156978569376487025399585321024789369523080093560572927005190944987546233505636408070941358735370964617543134423074430311849793642739876184036142303717733654298016194664240094065778642575310198807908591581910665600796645950578282872882174395109458121357774820590199224266726384694122545028399030390398777338824271839178475119894189338147519925812170877239829348253361588149837174752266032932376531583851709097808835510358780863817419803756142367464113684232083861250941951328263835364638215717410605871794732802063355190927557372197413866884624406479787912708563656089751027741018944050707968572703735074970829540793189903696420120041242000220175887611134715223901581580846146945215350507621691467331799128634886433016529647534414934383747757034228651696085297139879442285471252574048188208684115710889019706919394317540014549973501067935450663252647916438370910082187506841350664670791433875374067423927070319091930876022134797256388208614637135579188853818196911369685309291326137388583660675081997026915908875841286576446072791417011089315665366418346851715799877806558851185682960568236357722970543760266006423638720013551188408054527191603301881205027928568397569041876314710479958589339916357365154521001105117675411554749057827786543856155309164349274340987341017055667672193483635563461995275722533283826868065673571909276391540750014474937792542062492234326979559830790898037493140818798133646351112032802438028805678526563413499910864489839887263660379135203690108618521639882694335961218065998334426305049182452332471987966349040080430740203685550488360723063585050199006191682856480842104641000592060976726289456715133923269210754954904390505745789710625603615965711557369659508617088348921693263400189927238125886184624399878408086078216472475799957455999071481421964135276629673797116980161323668963767757290707101551167110237670896064646201647067677024777444958712820832338050984827460738374869085053649567537594441603613499047932186919555414287544948142262440697254550416866994883801233152735870922721348224159550823715408263355334848038628812431707199869971372788007263835961997990939213783693619445935005608373817275083929196737809529873375623798644492730226698003570374032317582424759988616805364354264755109753077047994690601049742306965346951049132544730898729081519009141362149282990310182711072561883168687811173937582700669190974753824565514911712882811329714694517948819490096145145546163174581927980456510707092269166639208363629807678315628416289880451083487338035029187954134056583114882431808000279847138371537903619584378991425628505174207733861067979002991049303167059522881802170659799772586007735663632697719042714170030511026672848260154029067084660708233107408487540072079134994649751217157864383561848462900514996641919124195213562448871564777940477757428134796686699905810859208071282303343584632847756157627905582966902013907295948669821944890921853747896095519404494786549306148844083480595236652329307000862579926903531125854845824421576085540743252957184600902463567231328441777005487336856122354907462205764588963688960617553657257867575632041345367072904552351725476094179403873287970783701752483795177878709102163987917875290529946488966894798135594722309784524325487172324807807230781354700248524507963755678992419775655215572411803922254631497633986308138331539814832331965100983482975382644494060050647066172304264945780439090711925139631109666275986897481684074955571320067953616020683781988801504150429366998182074215909444040344872407955195145345230091984781757402934558101076913174526526919920161217137258512513306515532095552753031141289139017983298388380640071747277988751471886321238910972194337451400436832823774206023846660588722480820193210825043053860866714331735329606751949269118221851826011063385823505436284159672957861412858431827987585582249831697637400111176973870246272686160131252404897663295881959490649276867769760919673958650159159491267453664566866059125599791966069375750032179214975983847509203834011436759124829709228182395567618877812536007556294504605418389338127887194069513809075708684022384034095547195203002986880409713782323103802371820309230984047825762067928288918027745394706263447551464421933806098940324137174905117986150221845618063877039330567244732832602888231984639788313169016125221979846929736765105492300877853955851150357191908780024090942430614535334437684015976477632901255288956069916836358901479235519535410423847561367940965096878830967194764333792427745684798708994552949749645521693574430912265618778545000975782005444922011780785144439434918456947299175675515574882854968744495921283909016567057176483195638915538443302830609273688610926733006484215623117144500825281390694654339009810887062753231150228446472546176242613045654898215394654824644422107544260288911471362827445951100357041779957623981521625870118299401828078695010839391994222160422209139983234506476519312511205582173215149953798431514262461080608715638244013845679370508388002998657511649647103853889574676472888568400909928148907094566107314435524952919698899791327806451309810790534800549206111783845972221160441018774658617435810322692401757053084408030705248656025219123678695186497044420287767643952522248141870081780418519367419604773931514205714307696888519442118993038612126062978521560811221101007967257142932159476487099273371034862343611917043653836497052492877666630730552526202054477772078595511465779289753610160404734092451110539499234501062986133929020980703669447461776287649351009142843215717558599382034685038265380768320695340240492304515203945351747501894465192174629128007708018944594568648885279557526845261326318513197463504008049657950530054976541692202476748671856144123591545011987887828367326010126839441763239491874387746724322401866695141118395354431838093907658144533610579665542886410701096624860761172496987040132707002446347227892133580868371010277222146781002227158436926526807771580468201160211821673210207540447826289994630921595347712623693654950694423886461806400871392244534165711561278239024964897806644665799118601160406028582938383211975059642088538342360141690512752988169395513939487510866053107124221289356132938032338284968604218885470260156133502095716418120151065093820664365380072947136875211898616989601590618542992450646100498688468382520652810439841071078127631180740211322987411001219178561270164610166842230712657505966953016144692045346147766335020783847236693187467026436357403340288797204275183154410374754278391889566751333449582076016738170391098110565778260092793468178657714023737647292270080062811396536498490670437052279556728827533468859635240331731754895295932868507888090559160341835306516067548287656245592770996685956280188281413489395435503170429740523192181662222801756172731200319916307280700082353731389375429770028077835645199267068897443143418649209628564399217085150934515247497565210386949821058090572193205251968744250750495323494309204329177620286455302756303569512886561980948807000420273571884555505147808444655043517622046676325933759002176739891740591534334132992711429257909480066732361688959419738531716387520862754091182899635218548072183674615653544657907107805389137567918754061691782805230064579313071479807515831649315964968051526405906364625566324276559791152399006654281973761996167857444374757533767338926407917107909833498294074139019612848864132791044105474399493537538627483586531817271016940441117776832669555654074874728067449787657357937668153083776266805679695907780816581498327738322419095516335779670710329762610109699146751001248576969819959822714016105978252538658638656117909778653822908592834242871408118627467224338323697967025635910463763095479459955807620572964695739624934739853784683761927318044234471077189769413068956933683260071274556515303429855729204163100400925410660999599910849771841339624440586773179832254446215253039536906638571735896559639603417335212340906369938341928704544548015516832839422916081444422305515571954073195338498238990703440279987284814583532105202344314427381027979903688802399412491587114892710879477326674302748637775084727227028843028219445413275438177582990833891473203910688680732608646973475483883728752051397191016450405043284595324780602251183509128605173718699576243776466281934914869341592500017860486838390870188000237753417602353647606449310787811795396260404688852389159591188700400861263137950922530751092421974375017230617521046638048322752096278392239836780322468091913812314377526786420193209539737368050792829427227659123987889294087900293171461539405824511219137079941330275069000726652837369970343567749309288334508735110754649746737980487479343057485622526037098701257901589535077348558029647421264752663204966888173100331292520807484241946808246871554330470468447335870305412555437154212675776366332532259649698531335932597470891313554708727329103534459029196475103806549287566746720824503185560094551950621531852687336231452503758886359076635118456458622151061199047646165599354805102351570732014876372457530036376425643864104206151430807061525050413900696188834286673041097898098230277773291810828927578409878725915887998764578891072571505163532672021583780317803293580101581302785750262783544083488813281947506900265682804830507137870853619863657297170951111641519513493647526207852391353773733980047933236114059913739246885253760733522772498232209086664748002425803096810004701698895975623293195692721967837102906545906986366810648398873951943419961138809383531807141807093897725452917770165046913402982009471762365709240233103843790780233404299426678643034520248423931658881010200415502559147739754828142111208659231769976552401171225191512012814004127726596350953168096292367304963280340194156594396816405473035195467165234816451107294786914257518674975048430851909554443405849511135072646997443232450403315445359252469341378209329512438641616089065947696051505368021890354244418671616267012806959031707675532456399282035287554608905215512985756107149883528869558021123638353784219467430444977181230246044465688913220735625721104205240788967606140302123079487084498746236661964729819596967176553744656258680136094934565876278304690209005860806651470971473331379843462049713399776743346540828000619913722578933006606173406939500155831444915683778991979119678390256032311337436988663072106744384765354559537711922358898857981272662447337755461149231945770934029860415248025063453747806029982636792704377054449662321447178911732381127962780703525248113019834271021355286255940640701373808868426891921503979061763283151643618226442278111476831238476064116315702687681105596004454403410774380195373672237625827674697815325152361497697468753995800169341213354924722050459281645529945627677124219611852893607896024499575955651052124865314360303191075239488489375630463669731518711526577935202787961973258154196502812010769557306560538302859291878322178389540623328920366173660897956522268322526641473704366051351934702044222129264409863253243941971588468701293952141736072117497970851776100636760987099466805577775616791988715858444456876758242010285713648061983557257130629909357453687986586862355770406841143479311034980355915183383534469106318858152841382593329709795004202995465708582235044336240604834214969049766787456850519264298352097015281933016645674850479797688713726460393520690697884303788960339381267856289494438328722194224878604557437650108124726308805425817451795051774686785559708266960071494212630321601929795565637297169419207245495204838201107695683984064833687560436902430203422408039259980849817098172177389114397896048441334545501326606039418631298192388339000757390245785131466797328392153433825193608455025605154526119232841948799278944393004470417653144655773635711924131965998813425039006600429136869223210021686980087612240738760404081129683469134871894115061404000833604817679367572993855476451009604355147842816576832158773350026672160626639672220508793706060217719807150554901450697199986931033400502271495462333914289438350087622776716158823850826822629010713666379056533188816273410693028942397540422048194963784571479898041360421239686569685536113917745264460269948287271924597392621311190587509399689040326856045716790842972467141873349627784914125348427276526601587635213310639385621777982068918092582193185414774051671898615160292571063714397807483160649285217182849095315403673144613083910545990126335582036601702864717795613269313822200257406250432817979012393772994559513678128529600591149367805586084988014661587981925626974178989205554623483497071499074062226422285027491508674050840116530208215989119548390581239449086061181480534511777427589912831743479510772279949840303922735856155347697958319940097818595533397582468486115901438274795121609662299689965139228037002555694509372933046182752611354886196403853727205611434272700609562980618566393062071347723694754527015760331360696144219073972680870798429841962282663066675850521995367292772865234659512428617253845136175514543929939222376806599502229730457853383207803952604213550610293093700965082111507858645435571827260964061853592482638528853091163867284915063884167812903477605882196869833659065759563390805105367725055730683847101430520509673268682169073202233651885630571920928246466392442756519198664566812315936639372403477577015657617032317662592334180831577243044486089120047234931107095148658396625155302301041671316620793193618205543676601656281536714705726524483104473648688452364759130919218711687324773731162771369802573013722238571149981079408182170612348114719265389158659739359231678079442896165344311292106548103093820437864618257775538836472809026773999948277594243501114567713142369300075300714174715492903763873524735457604671496127012123495984260971814748926117003726008482336452400914702433893705956688899034838214103558717092446816308574687396513784724339247529768886398321026978068378664776871651641482960501246026804550902767153295820548372589571553077268953765040528996619085093152315796823318300338801872566043110761841384344370418482458361443935280055069390798923426438899539638040676368283023681531269609257420531810832400168592179560128337070998217999804770608831757657996029447710914897604598564476964767021468029557625525928028287221235232911373147078944540443501523509710993040872488853307285101326469737192954774967351716635873619917142203180269717171909438654631911037316389764014008214496481377736124798455104141948680169184443699815050597941306052597424962824279845967880702167718528215532848120979536785699809479057632722626508381935325121877583927146546521626962661942556727376828998763783375720231742629932392093362745158832247099292377354212422384455333137374656111187707674669091803754817478133658817050797638153156874798518773990507170269028805083088606073473288020830252740538671093963503332058595400335361506256584135303504488754267821708042946923911271605232200497063513428719358410870311488758997646627126021823035055886378653221684221316060394238687372283979941347425895068787185226898941470479052614051899781488301037485841184594809578289006663149215627226250496011157342423111050001184748863216666054789409736710664804240460569660060669824315228383853033152397323172241572464422888335702518953095101527322928325963212563625073955322792648659697707115920485801094153500048778526223061140629803867055691277337366175627080652619496561401274506765389763312358981755769305480587546256214684423508817474639260540470856095523202501874616359679282261259276356002498502294417388683571585805316680810316108671689049613364754916902018751121104096212081549425471589052010610599987429480155912297960385844282697471320449548586807857358969052799150241112604056231883369121038976340285634701819358097630311304586381320161098468255561335879179648472627923882698403374875321406053009976927662627555877466418323102170509996997752572324473386481845611921891493963569597560344544154014557122101532150722356913763366498485681831304268317735349375212914279008484135333229434432343236886380198578830939193801495601964925825733365975222850626566124262632137701337262479043341790384153616143659854422820325915370101062024892103100632177069430478722666354296091942335265584690308125231049218431788218425224893314275683436109498078194174358980043447047268191592406301036923537899997129856445710622727908651128492702064485224936394692772521791960442959449377502221645964654753554816971952065428758663790710908940674763864187932177331348218355718253551700206642146355504535620348562868207356206550499439690660356384560298191485915854820644235229662680183375567390316776194826875333739557695657423133200247583573681979526537425524293772122148967724903475456869219944128151642369912745394152539404407704618385707271639381480721846617251999121292908978459675317107360981353402589583401420506538248143389116833468640860368766762664807028617949842559787217970817180652054852130922882963833031938932495007231174255260640609782435373794154580551698127976787520191202970905515533100863374969713222874605741378779419667781637604046881387596994681316660762927057758958106489512290280772930825375989272014137691726456372618377060035019251734332945523422663249134551494720964919165879212199967739469020420477054543590952816471892769875465456434424093266566065521391187800456301638416125928436809947087504756850469794957584650009877026384277162764432321458209731426824534973968750016341472520415351918914045457046988211582424375568739168266766806917511881773488162855424222375150744711360647748398687381683130908130389542859981748800968713181010824096479160172330678680644918207427864842224540697019585257747537302195149628334320191708244118976803953124768167258737027122269824042685905532622962132430056808069711430489244130773044197639848496643390940653588842101073542609236110656530392175969926577270691372120038748864839997519140361360428121498114790496030561448535077657008439006214278283635872981998399380883585121725461403782762563629797254355300039260395628276317186174630937730998283361349691771362096812007496398908464243338625970582380333719327372645990425049008700723700038556306318292066192574523103792565370036293043641450585453422797521180651851305271031111071770780120146822867195250332874417850510382393556944600232932633676570387955830436634806550117140687161683298671063170559693207112114704923495495815381021432978971253957722729591914912161031320207245872017685854279385667882478552333845255263714071076650454104462707066613563178163640342795990341183994631109984149994054276110526952801288136554904777716272250787388534469435405282798381232827800668915369347863567594545282654513193039638216781736358768858816565220968151674935773837987439256754404196921170830391371688658683832557916723040658980016876550688658339200745534513673157633799324159059570460481068857464577934545417563424142821694500132307775016893881779046184803477651079276040621720374423196970089943871153619961902863068475392983188750096003330669337464394299035435433016993022984706917519110687911944739695663277353574200638781704781042416678696544071653128934330766754646961356607203306120035343962977995239756401908114967634258924897251657003269519292770653312319226335746320983972230716511800510808009723456461976661791457985240770285845511204143192366891420851640245889287721470667742662425967183287702592346408808515197424659683427073771771989856337507812837237930457778584327304685791093783867372734136764402194099186623598073404418186480815570511580899592940177698727584834065839904906156856405776685820844099192892467473997417144071208967707573927840756831114646530825302772011638305968249394769529872363430821418774443535382465698562534464482844577153104511566443159649302393471566630592306710295250218102074084140677846960647193305109767003313206994869007605386116468193530077188240142915994321041479966871022312986522256151252838661596657801453793296369899527430070202827498454191050404286779422690037836359578416666420891080428034234188979247528058204323442382445229484330945505111044052436320734774229524411208640153667214955163870640867124822262242680576179520432543138648529505510937738444972247173631574340103388197084869912515913850466833016085901141352836504190446631515406910756148753746057217980833963378050256226782904468855956503701361422712405667802112054165177075420897226827663302979547017131200186305576887682579660847073424170523263212992752289668171777510129296624610227699889694319685187063439346425925625117815161300909141052696923201019385445896245393712489505556844996993272853789107053948171349677317455311233294473473597264846828179748308530536938322851185540328460762488174812497471873652006420255456243831996206448398066695958044547717412809125716215318106881990258937605176814261124602629463322673544911243182319265035992414432503419555359859257117875754467216649372079383852441736507398239071878709049779363086869221499766552161259151695546007710304710782701189601608629190668834420492034491994532459102389849551705482706799528035632241854601836803798730664657347121887865395405606119939485485523370346237653985805918945209424503472227641786758758804254633916663539382196868754148412488250907096748029798076435843905694950165372794638844271172288726481180973990836456462872447527565180627735039606432739864427350949298662591218796935720655685300270314349519035027868249007434266303979630641182531311507203562380850887607616582773590202097118835912840147786278230098591611044701716299427059995704485194864656074566599584355030078962597591326572790225984295518542514211366161689148647925947977479783116974690972734535140881747348804041729604426052753305160972870048655692715707299918027375955450494620890755047664673070493401706052012023394997799209158806158548137104509651211340082482404370760718465077127150900761748577304409601383066685253744758662203222616824749150299748805284442629136592173214285248980332864521607270950378413444793244489690939442921625168733452065514250729389234028379194085243471036411950469081163514187499315476435722765540701952545882671460159431373670206311448378954711535976228806793736737178484436209955038430176974742139233604767664333458494071077062930006410051690771596390793850861371601946472991635687821314325694112056236854278878570473095135252028306308229432947507316541401029444033412434922840528215654023102060245013617536305181839294151228642581673658338704044182761365723508807696983339329159559017393082203600571170440626788769095778706003553001785947420613622754224609496018628383317877642796249905244369595816454609635967777853858944195451629766672724864346577163083440980712826272637106556559052969973268985254639492323202896024066493396717266358974634659163119479953183315273007339020291467381622332130579050307107033094501001150656885351172413891362572150386763163312067056008645958303491493404673316684293717487974520231305701746459268274897169433362457705490954764917529015198497193021571042591634324052742725214795315966530506327365092702315443360333051780410186994475042323127236270756223405812177030632896208570864921676958676658761943950686261618289021242593768355387174761588733905422830805115952851932360811516409107878377389651290423343540142633712377663606920038491858600578897301092747135272639247319137292415560494349095434674057496995921423062110932399973506962473214389714278437860734465665692708589392492459429999110495775214265169137621251111897847155088740217234695920639785175540018645312048620856585368257683136335826876261625797281371593315251466794561084462313536566630582890740465490537258388738091386773912532349515151207481059046490662793769282944503860235529484596348618366195066255098040076998117623030947686947572372182085035106534922014304113087553129381236285477351274254503631385399282409965389254190371081924576398173460246683158135130576256059862933487189855195494244681823047005420159145781844557744522961766378367703551341457121980915828154295754408654352543354258425269476253691477856321519220836498656618606771698015780838191297011569745118833626455791427284258596139462609660133173006486811609746147118283409127938446086240097157710806877192821305593813289913997193326497476412701219363341270534764776922421946173762250627465228347977278828859611613958811651973937627079063850971024671484462765687328255255758474927588902084814267993027838179254309655300521125836146212859134644829824522778436362660574337621797111702531320039578768505079052635110004859089790641891312518466655577662049094168781405473549387994455550374844690713620990512921705186844793725070103592003720482189066918378631002786968387089422598909743052234671920866642584523324047902145210739779717058259204885499435834047392514695638869092282133508215151331546084698849134201650194831524024065252383247586643653988536545566001020003751961331832111743777677199977620783074327984458817698846072886937457634940891187386621933695833751833802062000255377052666551305160930973820267992944911299561005012176786778311999438682034695939537226669742577489262772825034263611952686538913028098375947518975085630478293060378947868671447866798690015831401570069974276291479604884142511473369134190764584085785401582159805481994489544935606846317568237017224197573002418046353678706772141257291016816820723909049389573324306731912930137244823327460688880871495919744122294213507482047352116634924624473528179081516751376285270839225877738666432323669750952854904307643303061362327608058619992411891300826700375154274396395096000890327515419588604475518355260106390876997795067500076150759541172526244726276991011984674851650807608095215936607311718615273854632465936118784323704572902629696597229665753634387077012747450233389604227444816371195283856740870372155618524787900806943510216714144933323587747888769738171802934596632376480306635224358461646739671958346477694237524019425071305013569392685196515371112077225775174593017485699390047803635840127381682113444424560919883817006756537686849126877495369971566467409462829811472621850676845543030117656262310943306902201864557739464008011180338205344653665151440921106239446953499960349810494629042184892396778996946865272215500511820276413974685687244902997967501716060988356267379608785459349998045834573327677219779103791797072760978424476799236559427114039698233774144584164597997589591680206291517774107267113412051033441054901786575012937918950056906021921599670904817894461391638033429981101916376010956947571112637869461237066319215407668582163494364486436692796047507694239821858907079067942623710556882617914427720845796869578479812286104363261970976891097221458360471831551229476381728856550933623691872207970341387355669661855349346964656907607270313145262040856618022454955420524410413249298249813305217502328554298258832879183917012374963017342211855280176165449997153339526186774984921839341034928880498880813658001214889519904047310662380620027590589245404326747322636144894664823136224001810034738710498808060777489877261839809277025654179026603912206536226644586416837355367019763022903633684402433639697578963051029486486926835472861905037870408425823132558025200961568574767822773192698307740047154615291101088447082832552505092931247036225880017004858480842689715351980019982988285015262668875226530109002256622406784114777210524765393235948901001934776537982272007662054902238108577697958975351204232386591928178163882049747028322804152309157377858123904857921324763057550971977920408962987201723391858250651798607907250181982294722499037953381899973020704786085061253171904323601618709780212105672924816259486777273520863704269045862014171123498893178474083461161935193867643859294130137532223262993611045701255702922866877454301557010261114189297518038587548792154230526741246645223243566831184611473248328437601978058638269846689123876245661046397641753353041986151779080552479620575976672589302992449540501555592460001469587550922367979333030921443117933686925969596602326061343927586588556828098512544479905715139915556495213325571824606549397642633109972234465765146125097725824650680085856603571195788046772568996543251196828665019042515832882287372133579502328711161364277497096358628937364948099353437151434089276182036284486432716957065696097496985146581044771137244777889000049912631168082615614071350814440017306605954224297666677135420825686710432763800161320810472104068376618978192895725944494741235251451127607947314737628978200938642229453442061166188723572787481163831581262201870671295166213928744158306127729546617730350151490712763038811944602443547471200301829025075420796864588862052639621910699374541139180147152871115627957491817798863965899318477103361303078188487789611895281543707368081479738142951421236264528464900110186646037012440665420767560293422371320857003775494164473830806085475366690307695993161524906500158427421299338329091032722308893288745831201005512940576603631309123801155783573102698203623736296565033521643815413789916377123970797943433671340213768288217628569916631525845028093409252063263462336631184624359722796733842916311806070928987580777306705424215056636240687066208345543514102388232336336681847366588773865623320554239234157684245178408634378743590802095150685569790091204836821958189521131670523227469049823943647311591463060065083387292318798344194428337027143601107632297852089443493555469117382769444923975205823688200689447244657291695282730748154240566467884769567184747529001961561073988686751665814086227444107875780746822781937389825920622931485203732040233798460004247906493883582396431472990072558622918654418734147694079794857340974783910612575390834167444059110605589099691945857095973773181849756951972486500088431325740983990946158045605039141443906252060183025816713657992066198249982564794150869866924102455175737303203344715892623093688140779723251272404328165327672612614106728267890177169550477421752829507014664558264823197034339548432479169591152336305388775409195002208306171065990750509611399379077399515897743371370200393495778670638286622496281327213246675137053642342572144618969277429998996632247789938511875916434488384452299284824819027336948532383110651182193305218645943324678761888449699129433808278268527596367280169993841022354292227344445579965076679247465803740703172624971725920280515331445280775763645098603128440042042313902858098304217385532075138763583994072165395104486348221618574742592037148636076584784054814043043790387764262005950331022942742193691076706731092019342032218345044976785483522810304666053436555542402570244269815482964005600489788674390146271946661139610535000134787702704334704542451266368185192226877732414229105882246894744695274428556967687421523211810130046701598980783504865983795321889822985473114733003725733745061141066888806494018450716338363108119911772085877619649345813814685528995140077085664173230111113066628382249030891416021446342517496917415285304851028457836491162509341159254188968255778041517622653237940791963837766093511463045872546096823681476066270778159708618395349882579577025132675740823296040724721114452403764430374774776242419307214077341291603279914805426550073843616663752318835596059014797296418542506427610204037656865706768859256769999504530687018958756681861298862474306119845793942065196845299079912878459973005905966001256245188105049481883089272886877472684716380953672587320116233308413671736626109783238653028255047216079249392863346696430429545084032692084995456529561540984988548989209685783786913919229939670043923727492425830712012218570065004943345894258693537619212337766478570982883617884930471970185404499988504643884904664626103885907350050827260267687098847230829293634365974660128415293253357593510832690726880415045730000100246819419786123290948066799950670800492229711044756176302120789896491780757478130962565333539682524029667090665803444400485373960573658572940221588687124904151980355274406747516938089624353792477894664966830874002492164594846066407050763768645676574697755691023777839990387127197080831015556824321875482151134932233513875649323823098908169732063997358718693566009308862711405638355818126471144530867432709291387241547969959471446351294246715053145162281067299029070738840724255347750141219422995969990598820371650682658054346719950845387337515553337037139991099860438683247486186806769711874049816241379031423263670345208337041811871635116094276535581748164159071639243252041611156163507241203027239236021886430028452574619476270090348820478025799724132997309774226594166206774395654711016327965365966887448523704427465420992293832752996647616093597170315056243066809773248958907815379050160490918310619947198285116289677315173195807061383075792539179167441086087785373977409411341517765804804503062683446904513381117386377323987207277132882138169182818688697098918720411446390565811726114774681647359277092757003059959858569040724553416509976274467024500013516717427544302535432463315874345207718591328217364539866904715977830994501832099041985932336367517744200885676017235554550802178863083356283696023255706348719356718185345387161817658794311886317989762513686787762833699320001643268296696049278423389180499485732178655653048192873340398892692185000108136681497633442431252414848141026969174943876603953668954952244753621214522419892212754757228287591987005377840398187706981217566916209494802109747305585151729722093493968076563842845717835311085501746302754490138968330073794871148744597084500093782371625812570192772793527742175011698953069839348142473040759468783387189651610460593712593442142879007084780769178123474209680215875932208907861033999669916213110749694506649981676387040121624318706737720433851535984151033492749268309479242323695190913474001618751210078381216845905021860936750399936141713729463739082222310309579100618269660905435395057140700054765331990193236124833793543684730339081495174681998690922135049641873823924895581628986906005152905690497494364278552816862434058165676634357948804566912056967175388662527685495513201192607409897066196880828068932902577875153188074138132160730061711830226358171091365199095159233547264877477311846115480518120317232754025826080425733528551922571097220766614039883465807623507228979921136726681542100139798586087154877842072515018707136183558313695861807465714187952947751547152984376342820812923915369979402543216163213516033308178275842629104848303072225542992722677683612759093152581912861163265408414541592537968740703778207333524905294338070592329295818126334383119698808597194253809709122505178000177289067115584599769829853329404958457640417807049575389788521526380686639923629209238389548710881028689639700877486442266398313873433179785760654749038284390791603424493869714487889585987700064453030790764650262779516891837559263105818781566662454166692282745925128823469137437065428518563471753850412674765166944544239810828810793346975797193840251907158160418069681875332801886418071673747983552424605148052516666840256822236807265349931367471541429308264316772907013113666490104651244609426740957058262366663324639072863890583282474433927588513059711887210684014622414969367141219479012924312928281273037829489739707336956647349792140669371803452172746563452873557901813329187133385296785271795138746355404260799214410357351020619345183539840935736549945682616996430521780085201251281919819105835865944865079767382410634585384317230695162079828900049071481889999830108921583532529444949597933631035679293063188211361710010702888598219037588797032934025882656604591949109601731297908796930095154108939707917242323363417053754252825087571282152036789319092121871985601440308950554055937587764746894777106795779718233988467743644960851002382769491349325067793413729402608683491398164940562205070305705250780146190993253382509502668805854968293631180692078009640082949735289491340510978735892595996466132689945449574292819702544575039718260496898832930267182011877101151489851810748040621900878904452080610976211664310137287849670177104071258211384375123481303790886252576550272578349738957674440147252414645050486519555699373840904361240887047567881484708958734846184436672309968579851497125304798162977759087634636805865023010324772560665689937360480309131122049178784672381903106436497351640762441796557672456267115019254409503702057275746156091064703507340763041722029800811097533675540392751372106727921398735360075458572757063412755912913183259918754930298866879324114094145162169442897805006808320149865989960752929674665490677810269757629137770702155450277426363396080691591295303133039777791632596437617422759282473301035427253013431502278225620625973857773652104045663221856951855812606958304717844920354977608439074850429331704672942329102491660975122915134671260284932864615389042109906641249825050444452893489969322784600181793100383242575346906741380310225282756136049696574572578294902054768022220035792049788004229980400738288439262560775357656303812919201253174625398974689008419468255068338748998327070631080861385235863621783965424352627240309476834357736413178460872462076775937007480591496639218774187516120548432537289677259114075360140888485441938423428566972470705158729796746253557794904110806973782412274395558128668025640601623314798382175356311539897691298008234024164671299662078846358534333155348848971289254056678661119764337126349025545323342400708137879474732521473226903479373058293517007128414326849179029286663306729506170034459347226866031773667806530739872001585898873454729767855451543742480425251844618452919934454623242264105482531285377371189509386631198105048077630790809166648821685411886195116830420416123302957496670101092454842350540403317413175194135543110299111433601250051277169199278605507332952525261942121750863325373461370448267858982410474979496383671928898434445704911553853049111210689961129125138956176841152886369662901061852044280293569106569478708484983693273331309429723366484554730565016781947525821506026517168949112750296672924809008656634231230204899358142860821202936067749595076044467345258047692081710371149347090538690907473566582831095189497644942713451351518304985835298044998315686918441543361083544624786309390220328348130289184789742412287189569472331935857784391329186375273821906907790672359665706294378885666297075769745612782274980526137428876200830572624113853382485172795400243319452470993576325584938999068992334786440380582456120169622636203024629611120488791467218913561700222454999785916300729624251072144744042828510965342349321584227733437178884752600959126258173002288843270588663980440210068332347378442163029812603473588587001100561462385536851611761077043468002245343649013845101046652998710689895952423636775825461015064437958709198675323093444097758375018173142102838583213069266386657210053186969544405079643071924720557056841156845093830935888106569439609857752980782976074881519891246953079717440848182456206229578572124866152583781388865671216007480128448072944644687158315135504480395597682050990282159066429655455356107491165693453933285630525468900542087019081140114089097728239080442411187500825932421739528582503290187455374054140519074913299465435877317357547256952250481872667988907804558979129267367795411752856710981212771577058895339051359801085491166369413287959504642172404143748771044511442471992499200754884899007206103804775667432319115643109571021667314816550295990065172539314960110311811342378403177314503621872307749803005987054170951376305284128374574228034685175785113118604612429436059916296245882143243268662100666783300287245512136509007889779361220331904273589842934413197571487276959812988850992213605610596065004150542771187523995320196825158437825451955342715270320463191179791415648371075157088168781722124515841401951353794326109948932527322904501803586279326653313337706941125484810702025812521838001713389733591624498628217749216155531549083057527006573957676121667313120537564798541779551134942507190463003897785503477141157835236118675398738102382876572783385429623305915420590407012170327722345182827528709005877895341681136909778016593629639440715785982042282983128052663361987813853254591424496126265403989833867294255178775493155883644792706185164938839994229714797899413550087694935577983000753148503162900686114366152966881081088554228922558272449656228202651522097280654303446038376967946047734162470844871195345461914807006178611806384422851112257473486700162122652707751760352878737099600909986743937577508715231350343902672036005375403000033305851981622186814301090833890645255829097184337807636614970027681654321290987531836982477141972045605692741650222569715731876363687974881510478448557738481449207835789189125280945127136636310593971607494359730897017728281364045453367132277424507735615874349813095077556982037672709303743847145392296712447128332180183767221153411839833915386796453236686981772514965476004837448659950590417967676680735749613275686499318196922402423110941334826567572509977871140812755568978458806925109093524736293455366285940166809494858817709318276434798685245184604627248880517589627743286291255455916945423924076333760457404175644079053786874416471900413939109836978891990463427928703716133260966858614849489481673866952689327881577283547025334295560842479240486617360806376420535211899023292278842829845264267353276687014368356124357967140262560859041406501944208726159218671459050299016094735220847508634322017113821729807393877372839385797974299259047943105358838980419501844134332952223625350660342238855240189237551066707192458854452012192289709866426899243923595820896673415030928008598429680027772382347482272824533383738053703734562629282291856463186388602287446772181063887526289219915897391685465362899898496768974274961963592120663486034305023783637103942079581878545558505478133044984651764535036124637724725344846939234108387082488886915603186164616000144310876993024626393084745897257827078662439525517502023186799536899092672698913013359286306939211841371937580868655713339864571906727413821044859542592207773867384033362131346786099163562447859506666251259760222546763330239356760587030356509725513366085336407046608819154274805038313861191556900738792260983246363783240187019562412184841564122297332253178853814162163450980510338708711449634435726501260271152717306159585434418605264982444569252627168058938824704208971225161689824092690513330029081158857458078067139387102606645190515631976384385028346728332705030069074073431735143253482353879932257785593933089094036045653593134096834504217427373636701943424848523669667081370306980902229703982288724927832048842940047250759047021865394330927716457410568146829625204900465611093370507351025043229932904496389631245642045962298833859553579931964230172595763707897034169516538809256139372418075095251464026135353271291468377186594114845892887462681261484871822312411572456300068403349003636521771924873572526076415892157929534256857132340655761939589821314126668318620388155506054948305703606689435331555623770504468607134699616766452709461197083129713149287942059466239524567100589894403287938119788913999093040602734681464721259132243390349636406758190723721170254984563550574001562736069565423160281799081824707847689117425257150930079791542160630958045222930710371746146914395659915647745969324059398139594217155689070132321334051950405228867239604988254562642592240255205421093157529168906690301466561937940151116095873661343086167789428841068900447652313202669450809530169666094710869870828675510238191811163223394857733663025489155073305180163389486173297704854607300152295823102338273308571946573850321590409804042262905709548280327800127491296570693807872203109871289741271597981651048326923228113613555945814029223774644372631167452991953320784839131723182826791037196356467190705471946874059627416134685389726597086257388965964107044225003675727721128291601058291897523611984209390901901380337233421463573352537465015936442622192966568095036048740675159185435788262686900630363664207987050104607076969346682621607948479234217325765448783174702971806418243215974993215811269598917840218546834733532681965859573375961291130111938237871262697008019328397085664956147196856842618560264867617263942752800435865734305789751087624658768289782218823391655304816605698262358802335334360644927121258862108258344137249552658998009314855403245147409569179121421164548903844414296496078345159858512100316503842597751890990460732695181210861817353891672213361610478728527907489446706006680656775566277901483216700439814180174365392481043312927445208800297830778088155894985789508252846344751497830371018393587368508474787930874540872617880952477496062226730096964160338467966148244863298990938755857344873357399737150934761024832102320789017333015546960589746146273773215064907960667118721221435887657529638828954734850786850871051382467388576714245186535343753407713586588489760037661366895971745068402739878931692511416665174391031725767423970761597878674669937179041955376212921060793590858084940074317538166921180009225901497690591540191894972379164840768154730857121893699177592274435488863946566546701454104378980101157614745022291273924464966152581692826903119619672194684594913015523376644139173957433466140839524396872431669135163845517967610577341729668581108762233864512689592312447462610914787640471638359982251735768102849539996044256224577381776188032699094679728886009057726701999698917759605521233057756309069096377773365139585286424970045571556236447493431233242277627245482538044013017820622003968563973733590546074516270309610903087843169477335273013215300860006653005180750174451364763985399345304674296551443038348591430916433386668719741602927461718692536329448369778213610975746127950814478942333892210946175625487214807868238596069336248167742755181432413497098961316409354363536457881430465195442868778577558276790540731213849629333263751551484108345283619777132250480608616307224592668333549203679800623305183070421828890413137645083144770944265426419765701706145654004663338157522437092968422812020314261299456480381562733252825953263747373813362879943472988217317213304955325579913004410142503326770654969250548513625747961124648118847461246495142911359995581686670300304895908102693794763939253305251296616055418686562564577217453241378667475971983321602896242836914193486258158097698147668378392410056044379800671719416923409591854732139971176164017085724817193404927390955266797142386374963614979089901405638989517200040157514070596518486248062968181763300850380570036950553152932113354813606102126476414766186812925467531298720632477724540696846448420309829704867108484344166774893973001969871451181614489175076427644283118126740010541188171368786493012674562693689252056937969502599626467375259684754347392598783907607835348580039125920015273995850683474476196689213513215911709141484803834465021300571912843135731250432271908077251142022707009166865977175006605745256710811264095759524433107603085323221053340772432364279850559987567001492731022456367293954263700165551010696524406957557428062497206380681425145282391528034318130098116938345936773752800044381719909009497415505826437106679140273397919176219034528786425617471219554530834848719480246254990356109705056358991722206541490687668268775418700498745286305506123810985411888825022094948414469296559533231925456338697830122268134207466055349652337954728792333972190344551800184287212676689519100867694767339712529698463870077474826691067821189695618279349934654181416458056827116435634907357927240788920536372149105725857367116521431042793532855336957833360774067677588722002436926216656225487183112748228855118748330386433884889336734383164732098961318387979706600934444965265497589998854493129107875829395997762523861335521557950730672960560727893943146855505613553451330855735941298310512137961321103924433415431151115152695888870855161204065763038492654543039502548433296081552744817811553098459042442263351393487616216432428825542194099330657404026909351990813020644163560040929234366710504593639542936750243450393333036514686999916813442707421943718312251910386728964484704204355956652760068444584816581728578104889677136125166502884573588327211497895734922389338447231793156493964884958197131318777470200563401605132526148526972375757473958963846321311522876695158180383481309752272458690710671401758676911038557959600949349092259884745639777130643468648991378543596788477826121149709429945878228633771088321229944042640205161073476491796522384292699137091732375213869613091421414270227341633945696862249488702051810630780219362189720489718232679993209951275371919648892334847429068408876131929348701327105688989564229453585185633723133061355327354197398898374052638663447364433623620440594892386511884000680461355739546435457260592649217418503616443709342822020441069163625174714533716755470875747682662406383169669909060835678834359164307249872513628529905581423934099885307359148414700089486233578431783695315798686084510219492788550662189417678763690481081932199741657664890757070293385690452779632447928833714906652022405794870197753093395269381022854732139041898006845049570054625971387989127870964989641844376853061844421249126430283881323544404527589079757615820985897940650365602903654374820591751314002819877185908152462554007730687961259855054440512920448019124225221851918366694138611509611380705367092835328397439372879083714919988158012661215285005457152656905599364897260351111488535638423225590560251078878326880607925471326267869474207752341375588644660380186064303238750446008080215601417316170836214871650640939601727334315576038672359527889622293584123152696433602643484111831071907030279481776543805382710823288100496309810879628988538829846640269825453264065213027249695073656825203947114413042956428408023384395318494975374381776951190872361106531467693275526697170889537413966676978524081680980908052289740856804180775635973748697515778307631589082821476076181069011467503375275855502432504911249594354044850768225605937822285195142056274133293202174229891684028768978257363138467335138746483367895885809093078148670794698396145527803190560354015607635083445597115078470686094579506366180444039697981855947242788486240568212161031568566895082187731872784954401934107835032162098560677036607862602959598051260042540911934937830822874544837491012949624224846135602160763347181604854078659292067708734195205285558188569095124919088154881140475822259123365388997589138073752120807067104467799176741605172222631608433753623325241929315007424811037528597829409198778048380999940043391259208714015525566068976676147721380858200723164235357943103153685703800911704696988040730804875246958177302883149152053286866808358281274659218449531568683517951619441835593543223615710574858400360660090467561098332670554139279407881921887910099638161066926130920618792753830387087868857625759313611039136043653638423915749778016267119957293050064876352639005005170469291690645720306346343457340176977039913745343820634180761466030263908429718622042731284650023022155320409510292861635094255212039344086496134210563676383527818662676830228716213115150557646121058072618095624419329174562622479446483016924622299816727427892199408532523775175772866370002651851565866037528161464213772182958431704398468933636141932297318932064560482701532305914485588458371318429465708904854954293157614545270643035727374768058762860222336936368455015233630724527476142953652176552600376874617913012290345702374113764094625331964728566573903822961350180516493177972585373059282674210067094537464832262320249641357440605598306838575718692796233053471678192823335857573557698649272343019882681728521067574639606803551553063253471032521633948479615482489680888162368527895976258186852847290985805129872337205912715675585861579736713914067031558107654223573711527224155536896055085158149945450642984471277277319839915955928728643029135450547137769529084802610042306705661014644092917114563581934184250193125182040574786785699363510285882273574114225139371457129571332836962997470021799777616373229059322817063916555294766940875056507300639569245011894785180105612715756684376759458205386718261950283042362164922897324333810050833898873151166519106743627926546410517180885047056171087074207882177886249813513470385353600283222303873822618609304441789072145251137350102790146579906090862832070106953045902784254550086115879123642810637971994710261319674551190911463007988521710384943391524122083372184069644382873621900166114012912681768593364261616851455810802500423132487938992537056029918764866373473986783784669023415333044203295459941860742231400296872787938265171831682269183967751952017186610898821092059068029657316874432980176696979724179868838179421435147131713153431871923103548960400196195527348989340252942155309943641882057537162304606566926052790644522824700529223501984799784344499772133492738557779333361532132914189414856188239491138997525763751742528621451408477210657833962828386659828155133890608432882554806385625104010719537000236890722471930995424612316369637601061609784550490851676677651043601578575487694956312267680123179934490676794397071478999812889339276915302409341859956076603624070762464566255899327049954091324468940300682450236378360400388780203708626075289707663070221419947686060914111005263336567243124126866144371058698009538752931651832174783692798847322176856520115134273029050124749629864107382309108312047030486651974563455867356731787052074722853906256117379591824997957212149815787101388868728435618020050294229669585356223861353810340089991112799672322434709609994206422445188465938431824609879761670731024545507554640051461126850980518513123842899811083063552858796514849993489518544087539578092810671566996519647592335401062327520332917588948153756276552221040524745867185792144053828470240646319142448542059664314368247920311358989806518722128238448802247478226102338147208783910810369023470761497376688941656284418291988535887241389503145040219548375032495159741094622748284060697504493055862939693651228701057157705013691266292774916829923047533078400194015586174503553458488350638647652152166073691345313856647099891629772215222371471736700592347873649689730070016806136929785266226112388992050266329904876896751217550179209577552337216747694853283027536096110278161066248789214856724817123982570053280492110344909759661510447164956252631888557773564638313259493255601209029851299348246140947338076809181506254604830193756676176767624321806070252714260760578367204647955837001808340735130323149792796178137585622069931598616824550432764404414983319508205440392884094729494709972386443886083703122319833270871332240326376547920872923854926953773038025953949320111064336535801691761951993674407553966335336014122934949504446790271831347970201605960313260414616184845428227686006028896526574553997611616130399288608791936503491535735528398652436924659378434957967083727039920823767543289170661312704164328634339011298887654808194541853084561140613093276719093031355700359026247085170279755348859731873300756267158895655981279920472772154421267891906198007874062239875398256409697778317257357783005651248225569301588439173773043354880773888552433772365564362697933892005473734573167211725370029636000058562897111266210650276764377114900881666911410923887266084719992162941681525967830224215266251642525447862915046709152476393133825736189695791635770522689449937271555980885513057123229702571554550493229403345838993265840940034910427455671226137469333952596445165039179163460155238430678724943901520839979051883982245516848151730632534032250990593093001288861588080936237814621456151983271081581141964648174247108643862670742432552401175685721792878931431517268899327235078518726168843854668513202962412240335597699753450147190484558694843485570027365601742399392701062818593121353331177003392424243510991150611690839939946374637167088792220570555826182973357550005992045371260856187507656936741301515991052542984369140218242181651046776103525477310798699189007369353673143188222532481933674356223419287562797035698417923815739891386763650745445671788715782886492955104651743307644759755854693746175086623195602546116027194833101362240634199759812174952054283482838797410845450348543459199451679848423234446836682271041967683467717481745652915285883380118769222885622183275040376035062277701475935911693565414119591594357712728357686989208641310670493242407697890841659652715562147588796228392282928402845334230764422646091547081120374456339116813801085194912292028820140592484772835543587712164891418201149604048566115096635659994494863299561848293256500208911837848045891139068404592988293676108863145246913956463971046557723327691087195796575986790937008846762030671117860448542152211929337702274485198256553490227283292742057602419909545667242578063056151796157684553216247701841424994206006142367517235674767187801833263049820556396925011785267175760941622956758583838052009872605700168497131779376339431055490814035635759660339596675609515238473142344693738573849010041976507833569864308193145873124839615565442802818098382184478376015744341442384470778600130821110519659315336887394268385922328574572149248810081887551283708363202568425360215266179890840019319446533829081418200969661108921865764791082315371870483122578905747932807924873606125343795218615275451611317295453572578673753277953420961932702020813368410525389058168782764631885632199080354991963310027774702778269750215499325058944882023405137764674566852498527162350455293053901746264953016359348938313399299487368023724663769315109669784270541704591125251100742658436767830284483097812874337828574275589037077227192776791320338926443291921895395485232162112686231455344716877214633031856307140833809269178452331055912259883770593486304848723755263812649921276104497914027213578098139520599236306893855544889415796770589521071631602680078793084234480299043567004798325073046403167343184262939446672709821372467090792637808966838426619446220226821989757779185308545607111212427366721572983910730610689545656617978594942415602801506681899169726544121812153461433837806637327701613123609086246918379756631082161426457067347070872127373132893099898862282713430599802982588803257178020687448888315872875787774978901016552566402877554385260717506206800453037653265270488667237345444553517415595043056913027191434660176346284585905489027800233862064006448966052854667517846782878350373181782983996775886063482865388983379199686718980942260283606386335366420305060136159823705637617207246958152672290822235744188278856417711660972233526829119324172262644066072542472904474612887135394962050441196175685606918190787824165126645221478863720853029883405032296819554390690397012915180394245869153148826522821692281872790642366780099944193229759847691471640426673743726503150509455899470513711512307135103268872253901609765235171444285428743714268904665477017395535386685909882702536694764035860664850744342720324314223346214416401316800863598716572666723040039052501106254050174059914269566009811811015830405033233492237878058562977864000611279302737388342240222515943206071531376118893712380252665855695726677501296034606030636904245142016405302635560796419246544761103161725918562595822277762974432173993957277125921295404462153993739345205052744672489031202429694684630110061658032102629965257777607203533807001597547463419975335169808450244854396505003753377110536844278303886228237999780824333609909013740331354051736628079131734363885259061315828060820158824496542879645798812850566967617847292526780105416053128933658457956230934160133193649900692978968820345983502574818456445510913699897024849793732346830737684661489221677391284208609881666281807877270828869565893064809165307520730057413002788287208516625221058243619061212231715897892282651762563901229157158204276879102089083603571172092132728254438110274706911161642406194986539324714578472097044433307987377563370916818801526081812017210679263044875037856920088596763530928254866537227764774335056006015618663086098708546305787343852295518021894397624288666303506527425310742906757523951381091473810349419398391370260987689981787839476341198542919523876254040353064410388883914724686638922757598551526886125003009768177329095714836848811889924287043280772754914732980582847479092451269277474712434345153785876279732098188373979093409417936488465042017151784359093264805786217880068916497800039332312921206673317140435396891246991312693892819464793445395180744244440307837570063785833977608059881556502246867482340816192037540706772187060135029887989525422191658191335349326720906274630288680312349815382660031417198352719881689477735804193907484434679482493560873170528061819473841528079987160122844739535816204363814456487786244443438258965250747349544454575372535928040470697105763145274845434703623733742194618401468325377341330379505057722978745107711103207577432713215692718783995852936589119512932243575779469678735869231693898267383156152364183004525003397028888970088343387378355707691618779193151565196732308731277581751357219891761850765150113671465998128455314936554607536706527504375668064560226080362040321078039876299152754227975538342665406685133258097031835671531337401700893801253598439740642774093509366230495624376092400096210101808756365500814365877451719016668927532139086919259860799316153494242576463578641767717087164256006818429153554651474274512383466187226348520181227682537608300812490955083547296550092721603237876986708082062435443188870450596355379437792728827354302624405549148375907789812010756082512617502598598837618195472504540248516355008428995123844128476411559431707022939242010702908576136644778866966966899405245773672834080347162110592355168115772337988176653137024402096526012056962606889991150531796063117005797525028313996393104798002518466865284073184189775352502245228887739288486409808665451227820726618897406477972267850912489048085699624206293905651269227726965119690711092359236581700996629830366380988556573496449788043230108068795603915118726490564848350063474896354105949501310180925246013649271607456223044787455832882802675888945090722073357320207537584687517153163780814299705217965087285842364580641872100509898075078946543676614463442710305727083031179582547088560361041314270038894990437974196849890021025371874933283856016992968723095023151702732046463103112023105435152294976887556095002014871344726287426510380254525577310068346120622556899194480042348597430802012810713023293001511146677680855964687720832699564533893606935713090104379859375227304452747413422497743101552139918944980626752553517779341299075743243671954729522499411342943752557966601190966493674453389069024090055178884042131851252981684196271676610268006435917269905586600070064986357741227585373222667028974966822320628042936562706809897240505046187975250344013032574317110603552122841706537649479863289580839632072964224396044557949091975373272791359437042258210806960901153644122769841900233270689533111176280451661436110189808934369031777216123152604143973076977832509211201765112567193085901399365010146355259307996470025856615134377734629070501215211967930511472071908595034259354897468574346743030763948998647250348357290966929786146535685671573074480553744693094221718071090731288754130870236773538044411382722863009241853805678800432759038013193380675386043686886184279120593786739971138314443460319310212540529575156989626719630905660263472330416769421562104368710077178308715242003197276321895275474889300796687419466184549877613261666967277636146233247203421258322565465758407424648345960083503931424066836684512328482223387982155225166270283438612365245631468942062877825270026488830972525666627226123012205976877884356116659555663630532881575799813570299888013016545992341563225530041916096496312526100145444794115700081176267948068926034913389762541021890395462880503054098425407781509283040405937165889591505346452977524457528236935684149029123772350594764613704875171740754787091972573281835829995091627470119947967692099288162318368690428877326142918023905183975217388284642150960302448131701041535945466001266212602115850168831725001133339604661504093387937082729824548839488547660315536093879063564732900232278770338841588811020297502056842368239499621199568595514389023406131371562974015027796223410585989042387187360100290494051832818934432000465782237429482722199227561321814800498522847264553887826640945763122134080253286921197195330444949507131094527387004968575280276110058179261539714263669061922814521890524820678447904226047123675028546869477681004815507148333147004255416096408244156845600360191230899869702179067224739826473073894768678081952295134584759265441420648021316403680807020975183240594450077034188863155865799537855921974660001771161546777018948555857292226024107643642596137327232524053773376415807937799468812293009848565521137443463541252430546752954231954141202147117913876536000169455576520321486424318438971803641704990260348229088856917492535814864939019259744029371710502616073768524621424107817209029868980389311041922546242401945906884990571767863752867345701049046240443069792149590338190632859816020130440976773891201540887458513338249819695082532610678918012892125466621475491159276131029727879544768935351599738984376596051307584139557969412625369082596674759721297378022197917746617253952695507433214372269050640998502220655628348701733819219049629815706527218124237389230764136936416359378696460016975092357382022778456603746602545579813091962653965053545678162024033818163702498676730700864601390805490610626667071156795440105541061528429273130580932689581045446142953879763383125824476312877598074573726075285620254516915584977646375386539737332386061823282007542431313291350248935559621737914447673857825104502133904550387630622923591799436006447510364352042744677064123223899107864177555903671662239468012014788061946646620884647456518813332008286810717646602499043449326913667676929933406135408760742760586296264072266410541553003910371583956745143037806803132126675108076305476309932017543341229527250324997675297402419467656390682203689527642582292544607524168711648671345830094581956561687628856334980697321937290212612328969539581734461971689374003607679129008894335157387631921170019770624609142644367709402048409776950568141012274402527275697742970087054214101343147746606001145936095483479996856053824263677372448279641651612636375963451849635749492428532044244273322449096597190120862898649219999699142886172000478639005954182905493565731617577130406916323818738774581199079150015788745764287452643254837108529945708408823056424494162043852641433558529983502717455950517446367625244476507153865371810765239822712816356328650000852825930604751838086804131981128152350247264338163196165091175958218378175106223487720099460419936495197544850401379366521372252178925908408245377675626239645213363267811669031395417953799202467452201163794478254191368703446861514694976751505725570849449334130032123898259916274960190177165478086907501519538465350524603288770201428936533688298204882445885517393741980105815568207517831916372910607139165065412137340837693828450127977381544370077548844283021001927389410131359937689124605602292833221986145458693552074481057958490930574950190780402118648530231411839447335148636756665936907356348602020302887574227070304111797101448348416765012507492761341306502416567428778216338378375311449342372908865145921556748402821015828682782265435535436456170657492322290349738181736757108410428049258110473376512084739976172716770734531660250493749746658971052913187709310438281919795175807655597332851349426709695206589596642721723534174390927275990043920673583726106616757398572188950358111053030920097268128564207636360424808714982938005649279053674143708603587634793283914108582169657465040047412503115075888977055516498505373402559486477674186013073161203718787361710632192319027843943264838185731273357473742721154040078574580469939103583657716988910995615362674274725337330883570943713535168811266716737085380431510219223951160370245704812233291739004704481625088526608286054249331636814359724349675364843229602205387091546316697333435160393114250633909402088623301023014765884814279596626790985214335225033109092365180162538448280621569287885551875054559722401071873144935680927597136830339189268004273111299306400147154511702419461494426297057826967658623733560577466783934272208233622714312601891635449393180509444806779683237643935904970121863243935071909788572802605634872382042496363727360786369470046395256197412144163610895152765152565223317115932545567260221993230095021488155479706740617647823106066065044164795749207539605356322124398778915348678351599385757445823812925116930044721746048519396730587199820761784442493073003627037385413791610748736332406109424576515636580287637541870164680355983728387565949644938290415589414982772060026018944112887870005313600634660953783069510181275648560743608945431415567363175661181116730731116859366373929238215163802751279256450083071475114522959610976512130603924742439705397771888903992820215101189643550394795467564322682744671035262892967687203151007950500174554628215144860555331752560239960042076665518994805719813167734607973822998722329220017040931341349110436192105798108790567875244191258580500845168327174269604417972624772114635553435217961418413034981119096015662636986604135421164140397930458673069630914421744374239625858627933962319637003825115667644603856350202052970468446345970064485199313140573066195434339229862263135730867685061009604821273272859731787507790953331004568561226195075148341765082198935659137104413661927066218245876030049692879982555404511288102572572327862579519058069990910205490182372360391015375260253032065984156163658963658269073638981739816524460983632084840977500155960193195148418078702689695490476042327799853504500285858005222497900841302991930142205701267405618711247239834877669559816788453124542106853294523194525026121748035290156390878095311932365130960887605625716015242973820104206682102888926759542419328685206384636697214814492163252981657960977676676620445028750869014098432760192097067439768010187691932118959843476657540207478088010091901029343226603279919830632393960051247975091002495926724228084332285207510566431340872791830978972473754723351835999281645541671222601119572834715402477320586425113907212494872694699447191602376796395866125459298977788869166170158651173859029176726733176003171298773282763290737429190497456533078215580328150710581338782432624486966350624338067741514271803024856709694409787223060184491780316115546158553134742783830331009218855606622379662317451583704441423182314502332151358000482458213421983072726072867196893018689462306838872917565301084770549435854291689698733489285216518581723808220204072475066611355112723043402497165333988020828431966204203610309367863198844676183311914636265357929942737436858541053672139086800558408875178669302668977759168005122014421465635816017336230498406605725977788436064053128974147044165650167974047677086796033805197738244782908833669852998933971156554515962780494705032893633901673815225272656245049291916601092598433396009046088453848570338043480073821524694925366446537348999955989516364530409427185728121522608848944561115127205431238129092208250363485953629216184727792025619001252053535218792361644710646842646589458410685528917755108058123496134855864773188288547971659870766476606256961335304397439868115562944569286881307266944779309352941451232614064990464258509653259584060292180002664760897514741298292904425220640999591781676245783822849620575735364176187065515211548428099696493616392082256388621207003178096978320345306508463375558344194386135407401113817043983419058903469933373860279455509653801100965781985820992973861775833203603286785225887427779486770961488947648432307612552944864516913976463347729448121746535868321262316058282140279746397082039567921536636869249883678692047119617472600230335548164553519890436539847714750713236550390722907245635199260470382036782224216467385068915084838668305064192094915993469446224180939795042860422470840175504072467191102492440446685959919061820279003290835441463394739824951793863117477573691702848318974142069787707392495365949308394190686548218977808887758649448482826029293819756466073692105234086537514463959526965769884540865468908957745335101091914765081143522608168267737186164385436370137641558842323172259067272887348441460130320625709279357496882601200070180611803509230481125026994634600456595695766014332005243842251974728275210083773819560318064691555260614972578245765398731595814204096754171595390934836882976062130154443319606227812419922372655290452031424097956838690240654203977544703172098703988184421547850622785450283630280543373642264735792989945393726037962035463133158926602391895197850822339632937369696989589141411712775727194402015379879859586429194523021886097295233073818259687406498965561982741556426510279258359454480938845510340934615653101685441582059339400886389726842492684208613731690552656830197507092556143039230125231377658424462162144536408927977986208341907624361965263093444071697832083073867455393008735376040362147436439247156666605243156383508048847822327222592561891743822922942063110260389591379335988654275461532857716964922305732068016897135112954464747423932284690236702505612930044471407567670222051156962118831506884087665707406549425590348271839403733148886638494007784251572166761504335841488705813193250283077829184631804704877814737246249214653653131012364087669305301743242636983535824932503057209507884087166142928892885463081920384841483909054477117097201632144629191619051550382510418622674039888759816962420008873604024107890623907410906910482786083719680904833126518900899793515856876095841800837371971131041656033160175788803516090968391854456193834875135832940827875604900526434991514944812357307352638672253976238669478430926326887394734059235028505084024639160335447441584748225241876751746008946753037163735931753932767365194651795996466776426711562096277778610528838683475658388099751039155445040634725244259543424368911562214979290781112404310691529809702121026430056751843717981635137626771888704994437318874823141947539375027991928379718990970350073038814654848763957616910603843339136036836671176673534120879685733507533432510434838657484115171078866934312497335408153531683218413248852660667582188763424471410763657709514685224847690577339246021484153470585967957319314878546928867366824041755376794050164202491237821759643237473964895474211907540253114765629785507687748721110933081011096273794981822728296446957947640349475407492286440120289014942602585920684214992719448153582461665432170482507182031300191645714095230684048434207693044353131142243796828659639855993045782808183552246532279235481205973885962826575697123257472053695168399794916717374432929849417811537256935366581597413734887737318074597425265635316403458611104272706341575466342074845085358327108062874019016758371141244739589986614590226028990170612327755099065813216216629796874502064576791197609809406027666463092777769570855927233903479023004848934419680471558541184189496219876876114782517652331783680261032166525653223572424161778022834091396590979447798182051396005333760615840709698283686778706272335898202471240392928396059905754195297063815078834486325925009584109328094427595868678383802469671506182775614379258105900797964339074086795764726205965750551213559154367890482948319447235663895200006774506015484651316057830466113310268653124331899268607747156596699708067449458123681403682971222479715432734072141004720106868020194896375445800031576991961348616698076907152571058629304589190857586563179377027004462561964333295070894045114691185387128276952570087368203933057212226030458234028846086870861021369886514930959179316881790156702653605002060953292455081356296441670321842207709078044926829753679156804270068749446378203049429975245421567738207986707948444329925403221754373197526485235916945158479827581566160066024902048379691254903320325250355998352045601199357151153581892779324023788039350522879687282929010326582212840743860836231623448617119209771933044516959189220448751427060815697511361438561127121507570807652373122631530123174136587859835045174415804362690241696160475437378948826779931319683593480290306839821313864031223132097727234143063036213612377662618738759992744685292215354112476835638216564421216258244424249559850981077753786621419906638966571119535528677036157280331463403790561662725613606911695406079521094174709934154289853762284883512733314890806909216956059184644476973445192835226548534661672129976069422064811514219318220556653542282942758529247947224748055411968651679530909794089112008389621956642842994871487501553585875662417656353060747000110437755373422704266890383911203733300677596951410814375591784379062665706644650879957517758046281268858876821203973700713557144438330570895363476357932806132435471642381964392478824869105772278165864500797310059235484434882919930134449812520515330355882750097347258621243053129429211188312057387278619948513285272146812850459786494428002780939331299613450354195993147479566738022997143372256077317020645084565257484209396763801724351463862931626086064562644531967633781414601963076074485550308239260603609068195138804354482432430801510154191224178131088023045441167210274550244307333478096234943617121006668253215630446653974158304638363764916554983182492838427850359054785336584610774149398740715069522593267612423824796039542230609870059395456158806329889005612287812713807609927795896822369913538212025412207951698777335150060342916823216295591593020768956621665664332671372439974016793418929132129815309111719843181350797902078620387747356637341659107281995940464600149518589112940072613571579327430191648793386013176474373865394474788857876894627226611744871097305916280765953906323622318681513296233266945661094150186723340766840543341245452853107292687826608840666470205040500947007403615587783068082678510252988250561052597681276198935181816377870787991420001784207416539114231623708034293319260837677405926071821932697435684486366006243261414964086604658301249426411866146521963779023260993900362590802677352828063538372740542281844396900149566399061060200266658144701695498345975071858064828659425126411383700565013447347716887576340312068136379278791312296175901439939082675829736615083146722803881535928062158644733585724720386991642279071489814964779607813598250941536226641522843293626532606063377488957796633929013620720705236295863519860260173429027789847534827555338227597926197155245469419551453126280316521301251087187304227085169291260014527702208669737070147281623250180496171475073159326053829978832187220782446298983553686666799775288613956790329138267116303463959115382121007878053615678382224644402102155256399950796443401651656606632000954810088528389853512193296574511229631633190263201029896063747480682017147217813392647047327860541917669630661412534723479823031363692498715130056270440491912701695307177174921464837897775039114007926388655401459996540540208624226464357670435794796842109484321142548084350661002740137621965847189047480265336063866955528962096246069867124949074241799584230503986415019443741448035626222182125615807261959739920800633850656950959828283659419947007496344097167115650522400446263338224731242202290493020862192906973735967563551034440629542538843938215207059368270314682911526223969727183711864088241592925136367531326761901640145876608644312880409932748263697199379424005718609200713066788834781092297767704226000371232864213914596853533640963869830183274550717567469066699014383237935572148586095929709020891389487090907651314167188727951678081912732037419729741218652150985870537485911043454908830784659602157432488188152138809836556119070858893455421303053679055932789693891326704753504891671353279580166017660501105887435031503555256370900377431588260757231112370261378489833716558285521492585905614705351914418099336663978639814656064509595394671954940760715047890979947594500359210368163968185653304294652627817182724995028556459719002016592530087000733651591612987758648003889096052554517698594724829777473709523321632613576172537808285648840014444924304663318932412688760136584913907640429274434795759299849767819842451090142977581047914559172817629167744612093911253851068734925783051247428239202066332259670613162178766417158691356621152401397622449886211681682987878986342023706954958725468518100091138302021630071328444389113856732678776358294054757789412146877553197841420173465308710042670321390268626087211805839761521891204337173939083559484537685592769406755655017358286229551659341017294746118287968566449658928275896434687177149395937028858311822705642677070406933129830170512731716446611160871885987191854141497991946650525785148433763537961936329284858349260790018539407173451139478251543970963018879323930724653096066643298114035086587122525137083776255981737710780579885668867041556368570170741139677201674853620252057435273251743225128655611133852048584666337944726582523879210272937179071782996881160923601312996097055506835487316307168682856839325551056969185594844149249387789346185785526461109806765865536781242039694216756770354902154804507992012074481426087945249928381213300981904234993270343234368225683435896699376360392094698909301663773873949964282965575361908906930651031273639296851999697233378565481699448818226700190882511770105703454501278173030351032555802602929533464043823779998399107914402302520807980545735624653834338485957747022254512695818689643375647947005171408885935801175939165322761703730873600915600977138266402031968412029571578975478898721370032542054564598978098193532170868353327207826286668253904353624923844596852365257059876372383546352325130530425590130340495627743550510309253090328260223862855536849007405070182386114744981331862706887071792082147731410051719534467669262691917392317777564132026501712303408140869481325097375429504381880245268939483154622473647048424893728787538008717861443876435069999269577700398827790574090130642759402170327797399728639614780157646594270785954342274179627569721853062399184146959395108664242525285796312526044088242125371711867800071861392115064889047095464262292579202506584072328928465324442814076777626181647984033159378156314657979962799783743585038369670435783263964859239054906214204317351819111261723680748248657331138631013283369882776500028184730930102931140958956774566601626035632791609838264496026991717274455127181658089537462709721891977779716273660908982074636668610237800461609335020080236638820548132071264801903156153107813253054893508099130186676742632965442352684474580363328864149487180519919195793149624123092849066879861535976329941184705144302070323237307343050340672583395331431087650361379548954193735046934384244567898986212233161920012045498190978469547523895256589570170621192173481720219144499716481382452921801132456894379257663443878806401786231645608335154243459401034339021040420464661653683465109114037677619282266410464466753128093130724870088516412692600288558176264755101323216988174113730993280685567866574745209017804492848251179246741784920418219220099462622837268346337909534544235403208463811723664406638893755260926755470137743896146191563114019507950235734077913150367488179655978558790597581572434153151269078140229917225385996388070646326624282209784923615184423676077519402335614178239515404298442996350652132032923206355969347977042677430669712414525983303875583597126434559764184487956221660401503670916184269351988542129732195133626786494761504934736316464957382238697142898693706865597957023299993679387286298210876064286856476411327395416689822589175716529399843587176243151780342216707828314466777011077832212151342830959646020172683290104300166925094685068893379389739203616445164333501765684788152285103433170683370473766663602045703166357395921697714899968332120477025732778497586704631699502238272902891176820191541693337666659047526059546187987920599865018341658960065569914200934470416833704226392824889874643870407471522932414698762708608811994838453438538481298179940478423619137826768120915318984118882966148286123218140296095967196246144948106442164809617796725620602772947000993540754230918056178134761314713649396686474419068030552538806828206253249735950256870741566842808819564107831393932412186389036115582995479346352678082869185596398069029990172687755190103703307413308056299693198359570113881040475806031562944896105311233516960148007795731949489468257855706021895516002955015097785449065426945718102417362249086301728894369142185538640598382681971894704848724758516939337386056654136278536862231261305781398829425369506982870332489873705118690667187384377911080704593885263468032419545832917670724594629544145364464963014457237575275870313175009383201226043179868084443587219935738417705921948974829773799542530218468157308619811471007566143363104586903228069650293745668478173072306954533282182445388108574306890683356844819694717315710112133238882721344975411133931002710558034594871583838862318311565654711869850869896886441116225173867075232665806504119733849046142082885239463290623162547971296944318227506509873769701455883847726787853129445611530856341128291622826114483572435862664860130750204401275815709050671129278959623191342386357963581346460821983769135483445225054207059764226887248057981645784768160380212964807054639092144922856147517927204549521386438908294077497236973167137874474702322991023994638706865450182072786100762303974152452868396912116147866828453468203052360965380453442598894026661282587192922226633459491040205769691150501845964057310274662365805837248276071048318443950452153241187938253808017640020380738645079777210929442635672050108802794944379907006632229650777826706006436838615554763282032419441494368111923629270520126951147652879799608006448124338102657037058710663584793675169591342558061278638744088438246868129431757660116472419659337319662178984472525581824856046231448448701026361018475521741019106022428026931829927995456655669573521416628564861673354976523887692077037029787688807438506312539423364314814793506383232566585520208701583255374992512578786671878884070224520721013960462165973563205486660365045488042033570459590099088687275046539799786442999866179037047645654624813156231276739013670002828056553724480831038832540948146540182407541900367305005582905261767126152523840315164375515642870428580609444943574628362296755415937383596232380796174322111928756348958355700055646766609846921720753362390903796334970543533618696148613606821886612691972298877401930960058864670703956022168819319847113019778148497301732059078257207827348342190329528723290549931108792615976142863839869370502318670393582907363249500290864901934386396039226851393331215212762034676862562626913512869802098249669302175238621472810225810261950346989946349535034360107550144870594199250808861820916363893990279980203892312234178171986729309008785012214839955880388845176486910146453450514104808157869406837651914965871101597681149733148349349195107771550226243936157006583025724698995662053777986850253265758479548446255342706513768150676898570426239285441857711509273275035509325404759681152934545587259244415552085684346766805984520308223913858763394456428334565298592971406374723057296308146503514025412847198540994188375595718856381163748610935896187906425830034391359161448834375364076986348935956880124191510225407554522267192647695105325217475834470197400845807150470350242402655755824007529379876231018508265808646944811895143003377510134209339366527449141345291733508734241327587369554603711693346058560269944375919773772408858927191389287356319345157190395337305735787582141736598415355886918666634187703692508962455573709860775292309979855448998443200337241979814920308694513411722846681918102322247368802840956123653632928291498131085665259394750824198182181753127580978052343771463066688864685846370030463857553576411900570812980191048303087792459626498374983501069256567047244492446965583251076207641700160391392725393729680621659038803073796699110570041232263517702193731401099509811770254188479283050623803848035898718360996443210835626608199330609999024642058310617552844749175589783145953968256238234104977468067721538194303746305416991232119060363492032439104325062285815270992540612777736058091713752841275711482135794796396754534053594960967158073807214400287912072670322817010103617779362334686241747046713164215703142061714873691947093427426670582553285344921163711426518270293693184166140648501651617843021640861012372949979197420656967841231399030185608621996158847174149629566175831615878536349353419873003981603412782125903602372503928425479867303756369540716756781301405305393450787597687973269740916161902220596075855725435048198832447952323532731386589135938847761205089099567537553496743495043839802235977664242260389279065032003412304977870502205532987901779199215623462163729377345720921250925960564788797568294208004365295570851864957391090755664552367592210498921048960887974915551940283696857097601033688393571292292624367996622437497588278124941223316598060870094921309077885895609371958736582565747541158654109550534398367438180922902672713052772679216164172215738216765983488818089497368833502953955099992243608432137131594999206706753257073694546238328221457226838621083773782853710979825141886513383480599802926124939227182990426421208601334244919366274323482996344395368720333950396367578164500152613673403900004379354248642144675441212585883482945239456407409559804501612241611733449397808157460452359669596678756711548683419557635466441474410671507157702740370713252817025041355002182421629292332067464702069802309617419983421603704123462434578533114630955633325630163642817230473033259287806364453293216124105451919897213403930486833897996016987627170918089024236176712251648592254028928525319709352069033715277111041556211678819696836799718845185551940535369482683646881269939969763375362498259145836764209602059670659470753458865908859243971365380692801753201937547841939540886222046322965355062299869528556110739709463295484126091250771738329879440093621488936945747308832498707768066316235712944808619723516106142931532639894163370409616840522212240978785830509630840614830111622904826737922864117727307587242484298014505790677960217389509405579021380158540459197067061233252775855041268173850532509886243964466655835401455288608559635938621253012841387515244147001595753127506104244856562818187930895660011152851756305408458335935389721855786418755477264743904039900961277928977578515388914755474250339997989563011535013445376001200354384411804920352115533572452174550257819002535662810670390380778666138361847972556783817184165248786070610071643056077793913456156965361557976016584469161927164654904400926687449262498679619301408863388264606933444132855702963727428288872812676754250488888978894582560128926918496003381964999372038297226491083680785535344983984211046912829982464749064435984472458639515996247940892248859371421247502085626411464908562709022031503290448188659262899950494351208944858233746859008858902780979183008969468179068771014729481381656209239955344368001367670860139117191542900225844567208067253988316629752742801749537169794214175312436445798233438522714180477608562287968489801566500077075620260142233557836518042910746422401153311658181176154495861894988367190451725075214207887256923207741734473086993933186975789311110880657990391894376143574058438967539775077753776955861565940070759372733918628039007143623985953964294752448860151990909235924455812589463300766651226058317575100516778663990714690288550422559232765843588948371085058693477616933452865009732328073115015765190102490002139598287941823657358465520661491489662742106064044799554009029963394714339333759733161134943804132848082149617274040252992727958212550198770818598638060071806141594029299348619125119040201761848009312964513230227955647684535040967728390421273345148220009517122693808434190522475911543527024834231084568736529060808181711933044964847231382160699372277761259018364402617729809232156029689844351431984788992701849103922952528869077286178073768706514654159417413104145616616391485738100297265193146344507541881398834266314697030417120497750506175016088441798405689005994918868612261087728530108996566139900309126778319411848191960225446993138110040906644057296336388141106392404358481189362654439162477534431367388432546121494140756746188718357430186395535306557195935054831680846470557597965846225634240912705343077259754639408069080044317851998503365371266296311438189325667128675204619086827372372685756693680642735323063211886905750580407892243710747687330992341550156145479082352524643017913553649067250763891436360517159837951392325571190313836185705339844336795321043352227598964722600399962341864903073391130508358081579120557233853271828382737920419499939181538435349315531016841928204224810997071296181614216015496499906743557618190273885239845629392613645904256387987416069625695827083050139062603272995688961594674680392752885642311571378721700387882737343899905682326290510592280150161084774862211818517598766003073835120757813723523583728798307278987995679451255908647917614731922846120082590526987321525816287562359486058139644185093549964467490514493746890896400358164745117483711356155318570247269586344047077979309102760933235233733917607842025314700557860119921769789719582036283704271582933153722309898508145039819419675481518951905560825778719936300324386273844234577979386998959467079136607601655180066937571301599263889945410748960265530331629531121144661643781278933842147001795415703117399923273100276668694178187568387922394329407774563617647516664074926999143001717550240599893951958119985649165855433479450344672777419851489935721585419067045601705704400734970502373680991127466607584178814446931063145836201792348501758927814988040012910234885079160646641884473725399699635482922571310620804459529573134531339508936986143153911845764605659957289773351414754596196760933194190212698563349130696501218161177112250835235916164956283269125795653800170924053370244078019459747140825153359232971648575214079244878068809057270941678407149361383651935186299458208283157522324325910134484041953031854277275979284904512010869857377540774960282835643889526643667178147426608771147661190654555968136751058128365120399156562588015045232416500546243966513972736206358630993989103907245168637099106514489172577143799871555871795248497493432975154155535182670395537563907099808246722563974807621907609197201714025033873301956403488070602376327700740470063383123678335933029361543500547267601097717277882136301346282219741333757548898798660154529896329277136991599822304817847667958964668440248907730856675614047801122530452630930020512963830123545706486312934635791644630055933141377428214440743439163487596185684193341922628135639306445311585230204517784264292330015288190520891766343969604213817795062990936359466558073901143578195525130341664163953851584197198909534403754308828245939065829758837966484566064099479023395175611734448581639078020145484946428115516776721336186617300511963160457822638194696543945852207729392960209652624810570568962732397151752974696595496078228990390981473974154897377367540032744968167641158283424683750813771257819704523516915590117217971385016879528104458283494228488812609916998021397789907057460532340638421419928117435208321351561175650804481640640459794971063993685876296374970322872233245125916308453277793527973804915662792048613863600921469385747360482409559451289234512379887675789041771348299081388915392255624242181775359890022821957795678333160177722931430608215904633910888705413280785064288884935521128500204138188436063287819357762985781777619802914772081925140374348113059759904970226971867560129328579058149441379491564374790859905217950129878878258235698750422879603892776516691020237208754825162094134458451740426039477810284151655956163686121148353390731625716709924545779019129075839505518393548910363436934645810788841101869267775549160536564042771694008714975234368888073389190590973515577389215563061699676007396000568740727372976243836731895128708015951960964165794443909904063395509533592960706154755072482457407916860873017335457908696675420761752100928980129744988766043982686202589086171612129398569835632161697864802554121707604546533112701741015380393986007328211953787650455585608233619280222160497714526362273077281964683447577056950810024280538858314995036515025780945121091852375173312709727370412520668822044832500316221472130188911014777074508599781156451082172052663674542751875358578179603103817606229927173687498377480186477514239098260439637952865992894129114366081469838542841763317804284037196560491482297075615114837018700753912807151488411489097761747566520153807883734810506909565265338609025264502951823537994525681861913851909957558397947537279666534596589881963744207618616827921175160469156050822560796088011233672530078679012834637539440646337608632206736861626235118051925713520269473304017603264938239787145968471704587184198464202684200228813168739596435358416015499919686728147344662133929786590578304222897901428798520829007348298179554813939122136276351014957350818610309643871158425024745842581741499496230984884713265735170119597114637764198188623535252868771822359078727643480500756140420863052558761899531932901322734487561933054465391378422683279404503184699297355836933919027169151558755450664231463145112258194850628113739385978182602757614499837907072595528007953488765894809423384936808227055276856422473244271059629117200457269903536602864421673232009850471150845657296536145824008813735516166545334056092083407416856929105728499226017771514327079941098328976133339556487009587160052181745682411083182397387689828777006251652006779319745762674686545901063623597149228243456185164371099662354388485928295778833839878999048849528514269542832619456921236246887976223512644590701853209715729573047704191635375696080299497830874727810265789468664609811089792595856244494780908879500449188247653199455950752984710984832582565628412901343006938837376471118814273392139191724975521947021777673661984451998039478210968664766450366552172988831308815636695560946050133664768472151624659740914581513063751425652952166853575733452931102467854750995161242475179257866499926595038938020853870559162677140366774670707773582633802870925131035449771540670043283510791684841209893840042234459955739803029379329241718206297909186469813994637993506773808768838476504543361488791553242974598720032243921099529115391289113121528974762308027477396421401112812680261748374850539065723742724293394599711632603693353163852426803101128210712283011654093138346852647199981894226365470804954173363576758061775768371202281970260732172250290283578339441039458480466334456012861223456900525066516066630934288520988455550604128930404378078386552316774579489989005067948235399545442830545506044293393540112951877278770370804496216693574948100271961231244044420986382472921377028943106994490292655159287723857775803733385408919810861912604952716939307215923803909443790432349318701869557018895605862987986335864301130756026381524461751092055986252427869945412499976378194239431155802894453775386955517634712630454911374657657600133379117111656317493458365334268087775633682126675472014577137452414900623476503831520224690046470111485573919636817161282896811642132121340320137390863655908861571948545871452316063334566395293463021471093754923980320147382525962243256126715792190669440740989951711145302150087540781922331843885824499852702236013446007812216195335659242095722963249966780223594175014611068249765273336241730453195714130836220993166569183451663790238469061105036139568744745694812379041900232957941382740057041526368802844658816249024326389010516913890564373757101821542747705000130363250725952261217140827257941759896598751501893945602795267068425563580605334547990290808486781207968406082192613920444482601129178857389851376084078079001654827674400218260861448886872232984081361220221802979317477264554954720214071393974305289627814675186736213012628198486343780263831017450349534721818739975458646287427949977326734720824632379001065913498968408927054278581808006639786925273932511095833494715529447634707917715297707073112086823456824262066037159683622771116424258089690965564976999334346666158251100455387538877912808990514288496339069112755779042094433293945775349277768672563915000773664424883947518850723206980952480538647727164206553254415766527277123017684138053529744133045671492376831309665203233086809231008461643013228971655274510312458105537601811132644684146467747835860377632700238396938831921412637228726608136331805777001775968781104245563183276229485910218646282465780746548146823369326632148286467237149993678217912089063700661830804605381623889622739999087678622743662817047104132342176419380087960307134782859703419854883158010036852057159532434615088491720261630204079662997819903444799190696326880965823883591939326079804457938906797595220442094221067482202691129497583872370439750426695873899082874833903957783605961234183374808033034156381072638231904297430490823514171872912877615594325549839497231379212467536913441471383337499770792862095271556119626201795712157904569775955961436393125008972417790959646276812364631768975393606423690800879750766915439559473603876978110938489458299097828211219175702047214029212995468773643777462449503335568049500206836683599917829204062506852974808617141828658194089810766883178010605269318616571799532304007887245785467787872262431071536234482092633071583363214540003541509855044418015395731086137397411442423681542053681338856731428950225148009516507175165026881734359029624326501116739445233458784499108094425221386636340917022834128971626405234236747680675463123052982563221537290635978103671979376084028064715811281845202156612738376931789260023186648949113444637700364180329806478863701312575513332070814161752399122156906727525051672049918820824732846175526833235268449287320319573689806239947659126159237115847069394644677103522416658464363806006705171484416656158976819969636710114736246176959604822653308636318514390841730737823043332874093492305376883766740875067279141517049490002216968972527935505557500375212035048646483740582458335182933941463426389818240139737390420236298738424066622855839436305524743734807320928072261288688578560367979139228161285540833739340227357730357153941639002232545256863368996442789354601104554173857854129441885917491507468137631458897997455155206630046177075648233744741109977145887169500921005794385386741129867281828637162984162728321023921998863805205445701000669822573060890753405977087380614457568871872337873217989956117223407135258378751730845257953855051364089363005306427556238620255877717271522821414324741528944111193327797045788130639366419372002385541335036004489653577906360552165658889399987068520531707653935196622299499267370246616574526704773405179763962109842155648940964731094502252053026897785332459173186614769378618939896485289468678401688514724922280162854613815812348316017106031939700859336685327832103870158376910564558140307060121872847766814183847842935910033420984934541793118340841185295600922447311587800949502445506602297580413455329103418198365208895177646173362701457185572530177200428600326799977630731312238309237110486567645367091478468806595798309496546772754699397555033278151773589447056138241445685001321438300109480743209786891980745578329427998727723613130999119005304868845615106889195535666546140586961115297315976227114236132446406196604396918100006524304014604147695568388074917271533254925339681295672691520066797506377401111127112348045976135908825279177687059173343733990077526000239252698106927098052293206118620317886582391455606513207621820188988920547191777903549609789555964115114355615639530839803161512871674387204559222068508672498799766574093840730213911950398563021879029885300500813916936238963643879023680590212679713370854541960458398434249487086488009689415826213553635868828256303880450254454748915383662236441832824810689289302004938732779316716433652909314698336913418901312958986161765221678128348026618728440602360228517749424175691754676494725276441589197530297921954647755537121950434454885539322715570526698629545162211413302618513798913863266431520761482459218933050699251819208423783136553603432066852968414876521520025649104493285330762792310356933433677453881744672865643017398480682303024167354196296446830971814690135324007887021264350537622152051694526401650310989209003602847834858650844699505230082653876173127880187580893145279468985500670905540932835823735471205303533596771546590333868649341129673266839085259957487821884363420056531960482080920723207110786439817361658515122548617485006245461730906613867236162642361969925555747065190375642959971242856268263498664280363832098305317093902934820585715257326442314911443752033446198995119518122469186730474875225863203737484844778114666750636193549193063331793456988342153805175548937420668076420703024917295000423450757813714079694739104289541711114382464816146705080078367687216654136766772226199169236744479035522799008266690630933870736398729710057687976904501470135030347231121303817719491251607093006479814057980713435226538538560897293194312108433988443176708966588322459938540794844429083235985609963084247421046852512678697353912243884354114262283147618326612469314579789044484166083761407100288440010733628393013814786216143892765949312350454792266326728643401397130318228386868378316296873292378150763361279823690982891918658306201781057668489044570464443559708286016273899280638612609126257777290690073578832424077793602949905611312346505270642669568353252404761875539787382706080517728257367187199197983932621425054868189823788560723365074051286854319910169152454560497575629066574426951618416565625119394551802941220260235502930667326764218552552030862930502012746407963189569036526047310170608877940071576176151503456759667910726544982686720902014006219858743024615284070460390829428319200700678189176146763177980918595731899908473912806154596271483143219580673923609043982893503990724695865501620024596707627591704986660257677374771829484208493596883174033316990636018003718484782851660540683024348963817692300715860396539933370488473302983828972599376117974000687896922091912892705958659512797563379197771139831132916472286113418665381215258427128861304467654911231062605365865564743893967305045666968204508061170865482105982501022262750504235227489966400204467579968096432115129894323705174866760948236891431141022185109806118293835824119413767031953099272770153959828639042809555703240637541045253851812952247292060196864871324766421002033206685320239359377795981401675483429510532657217119933025824840974837878688221252872852712716663870574494471263706439125137585085414542307349932309850312654031813219286841116491621469872932086272637156690079897893436958256527436836295238191705403152226891084818373424687263807197697817443758553263573047060245893238766654704877800390930264399482343247117987060791391204801943799165603805541233029264953987795857110077393098793644814772529019631656603482583858624354936951043879077915517574661211682367514634501437063797834895295841137739106925163273207607467850896173285004386763591477824445185044711471514333702294052481027685047741535562064400564464287003405455680373007822181893930881360511040802513990661543199068131034552456241982520356194187295928858331097983371591868415953714630802266781548883749480794432404114919754240174114036578049543680709078864554393518639734099713011080997660864073931214023867101057495944169119715004177536641498607755840434899352778777060951183618623775892170827081150686689045038734046822475177814622088143074769117515161687296907423303636863917565502715569319975116549532482468012969943133595175881059246491815951907695886173380493138922926189137431469188637479043509861045783529352257790827642753079709843078757620812794392984391576302481715347590187487926152397342983339447354438061446975321838957123538754601046109392915613439836951689853992906760795353081214769131048053002406237229763166392487428205809511417465259635988996065893432955229666585736727706900532954776559158923664487064964899421393877102456445880182363856367258469760591284454681678066116863573981664668474256180103337502606019694022318419515318699393605205738299962717872242705766942075818306361257760502758262259868914847637848714985469732914863796582604814569870977647020328966545752598859933040039128644735546587489528100691924104901539316937937192498320050639061592308878390878912567666565310283371564471871831340553616695489662816992013746828853217871507731501156052726989619782372777912421187213868012097565760414084027570363586791250192264302150697106646628263736295013189295687600442804401103922604623830901155630766118700861368128314240045126699002974470449210093955913814055526822209634571688332825328914327998061420737928686181597270247419708610079174890104201288877460679352149685085464394310485375182415005393580838271846608099751220890237912228015914147142294239088188790538252210370591142614755326409519695279532584097198785877102341561568446760586041780971707267904577719150144650441404303359458130162551538543429107228700958646221918457368015292678182284246495819442569194442322648240599946485949086219105830070491940163109750431379869179302744167355617589684833628698288929959177680129099143465308794763181351059305815093893721667471211667767638807144796322433053601821495593439705698592101262201725782160533994496269154274246964468733198785344936699039912604870691981058339013549308195999374947868184426917745559987807168617884310140228360900718418448737275460764434519402238748240611130692011092796125908802555018080533159750068960790714319292133285394870039398349741576313139295702278194288513492747248678620305005036389479595864189751017576589182056726429932658401154115732230004987298354993173713031413228422614491341371551550964412028075446620887783897943536368511543887334241742407840312800934985696243010960367405868380718343284118125089265788649703466065356392335601741259890583407677962952243035142843378490677231683637035900697691123028283431502173582757878960623228089991836732532627192542970835429561900479797743216844185476293417162396007017098208934101462233972827283741253240211642097620904733914436653929793278826586151664432597293339412637951431839014288346897545114988667844912632607316396277737588373541950143211217303969102893833356011781785677990187356451539013656638214051484127754127611733526492878995907882019934219454028877741650568451659680768256572693840486461559925575438679177263259383315772204893857622022453561293460081087014604039413129579727168399554667203961277556828657711530559069155420995568550453472220076153916751523036353689084025838226000014052625143013756405453122650665930052076956060330783573715353703954943870827549789020334900237618971537288083061018844500347959838398132688370917045613872336185532168375127176491397129066231315802700337404099025503869283787458708666907684815399388442889462166340893917532288145056109853715813133755507440580700087318403625823534225633462049256250815233837617790566974838107914599917959466104870886557982129239510600264101907830270491712076310180392774845376396586767367835240674223128095462528596477466633956030978597049065426250404996989404643243236343949383058654702925053833207185015560791861724641511260777474322890450932159441212085286643622679748725765086237504916204554698214690513885058939650898678490948394801295739733062785741111175140639070233019742115263027853878290263189789769301685793230325755466130665824135556248241311259531074632000186346969167597682864487887996245265190821676707388688887607369381496447714910046242142816201608679905712680602699187639760650770991135715195787941931795644206519464992203224421109297940230125102320126346268063742164923168634754363476537844139351655346655134763636943362854162741959847492941321373851809790667617028986899526881148410115712927727009965443272179705715578179139890898522381837557364661984769951575656566291860553617525452930023913407309626054670084425101451071301916584258258418974731229953975994258338007420147643779566558317789068554733674570018842492514860432710906180556464792371851758259249952922914900654728256161392788183354103112660286180623590073630422461275705038208450031635765098107944971557045111137598157360250588194586338334832842132020369062877451246741258179163884760634962511052181533351410429803311948136328702183036767720823054794731307435859978337294887759700505211303954000751799405862611159526675891460701552533304467722538794778209142136683634512809357384382965566145858583667589012835374050399239915678053104354885992663366233229702893652527277392031097876900075767544045661132844424431723201303823370652887754032546964559802834559194144411316049224098027723611403616045868969092745959059738993825993555456800165813737015059691689211579567114077817772860812907857830234197506359768824458235889153462755833979152681542956817538225651685198733327212197009739709367286513232599454427390977936452254773856686338971983577041592602794805930011545062771305302404745748469841971841217798585138781271002631967949553666503935462802567186711794274269277402962488238302026183822936588572249425201862668175157580114733692576119880582870305125247510950330469114957298923897301794751399201438556231444470963924335356451383702069115515937090505035721392954354619968093338665267937368146983647014032125581348875737857165824321092977316918105682585580599961804129607062901923488267188906589811034228610860828096718611841550490355374065037286017733062646645387940371120287009811348837064889913880680356818294999617708970886003033830012524873789461127835256665695397296299739770202803475171632897501973259847122160461529777685698251537699589607820750855487546285736578712210478107940669137622414213633972563321059955384755666469954847928835600337697438300008687604008242936816208053249923224127642297157095711907475204937760600580700595918223153616369931771825235754925236523639661597119156712702409477068298632619023696345453227883361407126143537924474245574426172981524977800711128439289100550472286013764020813462596582594363733232510816591912684989601883172790833392130461148528126283508396705172472054672829168063605699124192089186765590217329499443519047170726984915579397328081110272528318906078570966027818578214275538470618588399257296799097957439016403870945985803543532738137563991542700737401211400971058163532825798818179269138770984439850803257318122899149956042683138155800297140826399010747016794757014940007668152465865162430385767437293302010479755561846989137051758159309222876043994514274288279557360815964813649690814047064912155605654198015466372126396077743180349556107203481636833148336882642586819186460041468013246580105842718921987999297235576247620830666268384641309083207529442445713516299218574963682222222642997380658272133245558494980377412324843712433982926157772609150986321538508446714428974941695835504928729391651960141165659282594083448983697517182803749384347426191828017207253341205130338578764521294249627050554732947439898466532934413230002950889788484769151258173058029288938340354053635961414192437224561661827634367615937105749550293274746607571945656380475542152242333787913832989242962349607864251187057549326411902560137558915359510004515697711351650200879613037574324517266084605918982669169184642208398375329282681953038634441933051231676175819371598312461663784896545012334814024947505436419515991658896054966120643353632012237022846649834982799369770365665232229640262707377195290801815380405152909681250111318203272865906269523200874578324968909175937407591325142676298730365587783797017650249655133811447156167899705689738485184460964258199933328988216267516158157183351944139418243119773804407930852004116176295143861684578318338481632359381145436787871616086409815879019104926647338753751960368736262007064419504647353937766297460076665699968329854164498274783339098456302563085709164484061651389475348611382676695095399749626173275459524478260664733989832342562809791637765208956134379241735811092422043157000412787209997770869360100855634879969329097789779153673816896155174638308943564167215861093656127547093770532538564281700835240916482222051024705441935961554511727797737891220050734212111678500675271863666727859645299381259324260577504777650777453073213212893545234510322010400259934639374498592980851555636031509050526971583222937601683508417970386092453073985836666518182714989546018816675445169180417617351209868782212902100285262657097751139578035178231049068849188170759925417350428891271017146117403286462927912067187447340676298050317767566388536277272791308596556197518470309385215332032252028765514859640908832685408718939874532361829240557219458260809652790387854765662193986596922003736686367449351069133187127389175927813014732065176686791260496422266279342216699920151996938151277038545571555383912651188244191028375844207591319231220738347487309094688782065056427214018020528209133999414009635361286576826154585378144662437743066209266784255494116809898309967493953637176818343075078418673125643564445125073886687929869522836949725807753289154420695592294620771099645263334891129966117258130941541687230274184679643099192500476735733562317122197450063468253366033204779301733864706173138626909324863892668535653784837947192272143267198171383366077906732067633518185297293271985793198870545188581129569443184124845994045497162386913179408229663331157924573428828832867490232734420483496079714469114893023014895378390818888370650244439131112815291414146249550278304855740114208208020103134920531872693111644292498085273047100667808767988467887652991187728460513231001193884911985783985591630355846245615080395050742150658519325808318896381397703565097843504638611304325308546315700292060475457189803239318032071628776091288759581305152813443419420285548339360439437455028213452026089029285656388154097821465823616203117163891032259213374238985497858882596790991283176167625286172340593886536682452766002091792591868337533696385590909642731472647395625245852236071208580144345470142938896448619143679468791625260789511479697510833379963219720579301811071658366174584444423483707631498914696534904756905014823366329826391684170415997083968899605896421862367757746025845574263434667548704256901957551176360256037112512543177881127507418265462108418945870577974901300229792676688883324366907694844777681242667883082449681515119436047064282957483566283639082993503806726490157602520652914575916158324764997685299005142872575635736663896340545753268349967804101610722535024093495305394268777580628000341113406021248137335630536432464952240225646932314074896714584614127402396782662960298471132817539508988417996635028698039824458301340066813637294894234563571156809662659005030717202491923094715700521061763064900480777475327047236669369118642331756613373310360082244900525300507487594007199002658474901900442428061531150587354329517904001350548124115896629705094810702152940083966071706671941799022484339788006232829086367407982036514364709936852264113774672562427228370023586209651061597886343077049334459824213670185590390506164934529189791534481078553875735824935374371290300173034783974950903120506531851508596614256359981671000666404126224793418397710287260481516658470605831534524140091811783518910087270661040344740643919894462570076188826943896749129672908402102673012565497573538140393543865620259923523848749308963663154974443027388925417972210666291779215235616542198839109821433894333582685122721656647173749054724623438593745393657524534949548289788676613903030603514420201840907219563485104396791276104331842039985171431177959745107067529634955025186757317711963124282269240190848993047335378017545258664564180425397352529888186903050950597326986240657419373131625057200064079102188596409454142568562546606699343160714841079517049535975744682536213105544990246447469629110054684000336678012385086130895987701626147435764879016952713101067839238532713811818636404930187173116898292575749420151205011527261104435851813690048454451451388192629888279468790329483130874139064020076957956515278206686866599862938177639851127749048931913894849485135932090020985307149860204386600325656333858981474779002258096320996588513023657915014884231520976501639737149339411087238146116233933872978275549351272970405051294766528916237228703210618055371460945022668912396244185931805422723207878573493729932613966060855619427187984403591949443367903240804693251465440516963889330712430905691350795886925941121398612231612322354180166498778024858863324680602684518699663811151440928165193371942175247312125986294826393179541376219328839968346666327915596574742427571035913460319233216771242608503601364750601759374480160297088369247526378199075018677010628508577722962299211128381926038464616357075380222376229111836439806375982941677020041648164241515128717975596175926579953397821829264583501059957241687380576128706940148378937625372688088379865766849237540718272774986350204090340452707069167772549497091018607414716261436638713743871559318544260274131594887397298535229999134399908155571071706386890399109871913239863993677130198203402795550912561184227905522988113480035419206735716021718025881729292157834692194745599640034176717140189100497742476987214823752270696744466165120769943235530952750433470739734544535635829545291962690963124354295244059144522244622434774499509318328792272401537131954749822213383080212659389171664780769760456719459311071631033155465081363118898523152808974144693377561832550153930251732311848193668319244356763043039124152659276069942691163606504595562175534570915027315525105706733646024355633453505599521440208164781157337053733876205532122850008827110495680588467330351631986294587468703959202167919938018154342503889667514098780502074095560044452364695713810906518507303535006258745448903238508880675349450096107518720430161381515630193046283464092668282742721832579311602486484967385892933687574284392998721823514241858933611681092153587488447282819146446065472659680757586450910896096300204922853917447302297158825118793445552072014451799285312104916906874150134219664898328434553329940883933741399383920519700289007062070895244401449812486797782353115894362819626541901449733233896220087611394044173469334566272399653449388848703115575291846775776430934960717789408987986169599412287810443056114236405824763433531203971843258799813898996217324685011681374835814530899457300567201301130794533627365582365688455768109572107982310257555849517626256973263457292609111452228907864352999010230348133611732656536151596279383132116584497451060897902876634862172173909836116176625200316657925644090284828053572718000063883311532877029691899740224212099043839474050148325615622322866356131371939347100784759067219635553558904850493678519618711668565288129793185636731507508558968838908988501550283903369228638806358353862384621336716533188159256140097178088766956520419510427434755217888228053728345446798494381620548256011665899335854445853877676996223407730576375895934067394061418311220945583586850029145510072360572044052014459728669683490898959106724340917751150840654407250342409162725727401431398413017775880934510864739302844809487669341130141068141095563800377146296762798928039054458484650580172700464279329952895159553833729184465499153050963439996187811536826468057949292205586102903441725353803916695100304003619127144072126167146042548214397221170331162712572328659661208347553659555086676758452463558216379265330864663435494296687323612199871397117627080534027836631795153171051411546865287290614318840533840291931014694226910751474408447833379226143266725827477443408748564091400965012893304538935723132798930942359608969132186446711847197680727488832741145734227241423540992244062932145483134106032449913790105586418129489844548184915879166503369213004769441948114345526719333898985492775684473928924079703458422818206566925931130798535957845668069243258294333358237217023047813453723438228511910759411775057122243742207214006893165773110075760415280277512979952813092025750983268146784117279847090956079567785590777444309249008137792640404792684907109170900462788323809019393422667280099215204292151907857390976460209995213249721044414581441639325391063008787281139615761296036823862483754869168131801655160123679646156231486484600395125047415175214078098194752764698717777822431146515898430468719964235779582340548945758317899868739986728958884233002905299450126470347581241571301005797015391820141497921313705618759819476065999247767593402452057660519416356704525614536401061454175893107379463260528846907377284437056596333036820393890032684854503267417739091904842162275197475086877912904503132365633931060942163516362500942252810532236181172109770034596031870075074738082346618759446963166016460758474130336972958463532529488551631890104391682889649915886162128663075315937064624225437102185053027296244684445091323795627003970222006341962200467909015600598446780235413619545390907528813863986390407655022598468421656536396826932843423480976807537073297763368678120783589450331272507084971091316890000750345141650105562268790103236565979923357282011786140946963771245567901814432211608626798663352820466086635163058158109314224324579751234309338154973000883089977621177464467354804983113036750194279719504926546145639380689246483594275778303679321568275545673553907298982806559869007692613885790789469490295778547777603216415341336606869478879968304819266783858465162520217531462154196241737815637142762183341330789822442531762634541990455226958815112703922012626787848686775593632847107513278130904260520582992741487966450136820774650238545848572811566476370331943178904705353423225703533319627369893481432709464709331317999157111234930783005023459094583033601773969501097968772238827828599414611439684791371550554398085687380130404721157076268894626343189485007572887527181388189169213096534177368186178736935442666646398555194284336484157634275378811579209323421101807384940137213338943296214566562231246206296049166971570031917159424614311914210334041846610091734467039666051802518290501222976825248659617585840051356090093395618225128237949537920028909850919063928099786085457891263097593921394868151402085166049922374969514894430644532070450262578945792660151932879683577712562057222335698997233324804678153867125521581704423289023728298157760647414116073224458079645924121574602809981125132007343334981289082252250893405625413481249830981785840611588471474457037383870078984576068058657131534227409952400563894850473922476467703266832985473511542930284524550241893535331181502487372004426060403417781420679490367485267652554505203532051016730199721184019518478593607519842793160550286014618350403631501149720607626267188428321914617719081533832720078795662184395775093630022248936724960579436153604618687243411850283596461459717238696835595572846209278139413088382507435740402686855324463677433611402931035790299741323179503584473840846080194208878143636750585314546520655782635666944093799005658667248862436635728047619687494376752388593130485030346280246113138859973395570362247103851310877379037980142902858231392921394713920474438866528359558995663063373245102464842722086605482966410663144454239431375525781170339060628459325313119170930239359676799111197591843809289897266748517827201489734940637419257358581347105269659565159007701103044686325398902114111389491820805470515978127563995425466250874801091468013489021352026487366134315424202616547421259823615961368500421948269290245250910196665764194847060324115988949808491019169131281871981215601889582756604061326043438740311424569918320436364679555551041245470572473772659631431817472161960313911624119264749578354996574318969251685667441971089770300240003009242617760215489927950827565250180069335889527282236553693384264146066755462654804230018581576925157100144538609162336546359318646637816405775802912539000512553579403288591325802965897461447694596497292732924099772117996831149163967396044409338577248314654894659238488500005279205504333291153538012001090858378509408508707196731318306496787915629536711426449596841702811061573528364981615032924443688826163356438239872911832693049432979922045595730913908977345089156903731446489098044884136183196790330843659111311678033659419836564552174984214941054994702550254207618527440539516541400269296175899289271803772176302328961713383432796827332252592436912632739622928570686624930505773401482978807811660721862046632997409073230786189258306817655125296113144556596801464413363588842186748981442004279703415691132056334488722796394927685180839872182763016777121504358066126947110601880956694945975112274361384574543773615440156641674501171730793893172190750409096885242092384746748086760729927573671549246181611577594830756653338085354698689286870058010540179312207195839076281145840793303670868269478071624820535969075679446618228140743021990938269419989314119583875526886328276444607535546682712657017609934319807100065000853503164928248797953929806286219324867460383930588034204778978032705993228125618369949589066352383652580445222092176502374042496234742058067307334945798849546622343474007535965328444429708726687749935400720342874919252584383403886054219692754494828611257431381900030314548107216616726201831055749121904048874458404302083768267131497507109786968334007060932791990900001056516747848007245808764860821645308821652402292106356111846876914155251106493116758336241125584219427564169351121131551323109762813799672072975653522885939017671867878173098245681093464510585677152668065787770247728502228970720037188041357407152159739281971380210499634396575507440062967949572946501862966367073236573006288538851164590590908276802895288746651500754686122541047915689345604627536383074285579990335877895540897419271244927371716128647478593946065188832453103489889629273173435714405596721390546610875519275473333881716655113083472951940796514284877362816479201206199902369229692539682365444563177470558121210271480261213593238273311026593934712889054881012251927610262395029804167889465157406500340062061831448649306465599832791697197763934587651423616095944582869943875295912734505950355623848814476134470496281134598389121552498703212697184142299265717552383680575424570196193464078957956849417748267962997723190048151971563447106778551287186443492746628595383475763372076571266855891319569108902539522289338986104693613127881972976560038220171073461181335631387595236595722509019596981065400207135823389803241896868823881760828610841868307187086152465371713254360789076994110158169342230285873483029262804175271513628849072709588378470300756185884468001659446409463874263595951052098314438560625909999666441334872867240095383400840864316026276665833831632026439654550405229886715406788829580549890929497732843072776808140070434006268743039192598008637704984583348891967584145228996688852140819340115448362573387043313971189194269875605042392418746661025116806158104706415023630367031125037344807801503977704674946047245766313799756882904999130545097260520883510357657564438117844817488884650756609675844926550584830304270708686770133766702489113816828691514969276809466806291064358607674594424175727182401528038732344640737741511600967623033729476224108793271745634191227413902037775329723301756704010725692536549600470981147505098135669769548367488218422199089605830930649437047804398646304081517471467635785866651302051461235579770343078800565836788580890060754584329989827223756170197256799470063122330064013593488627959445646312341954139447171413290285284980928288455645183949763158518445559837459029065147729846935129309751947895798832309296354586797288459996517064610221111465149291457531394814093247733854026323133108511374054894645368538438607603133520065044544289474632765333773958168294144751000746893436499522755139845696167787761813276233264577414359191319403707497181962289235511857510181944638321138760606673572467564835571997093282341560385746032501681779039497678736573147597457480299298824367238089821731464958303840217519916211143698594709982572402708519082124817762950303975545312299978852437211603139097694766185374101228129354896883267629408368261792019165556540231010100484318116425079944622994474034910740772612097009764031813676953342693797249227062523585590174558604088456460208977669154546825391894293379784979459792436441408321769212319814179659241710962316868032912934030670300886851692728012617940166752023657384626416960968113952943069918486064907030270679077202609647594271110076555264592386757302591656338169966775373611716502492544393077983976993316319795336933569636227904446394561514273385036650584609297259656989509729954644117743688652431577285955972176768702005962599269280328963555175626577874219088957987259893431299585287737365159978408226782192978080796524168112183136621923879491019211820769531288835089530595353408562194103259811744785993530811146607296348587758993517055010083201226720689173583060813828255429186858351608201880329418949900039975440829366788891803392364575036588317639521832873009643869661203620234126043857224039309591999493129334062839755122965341200014272019795571836122838854016640982321618641958460411051080533381157451333666937277818340674133933699001284421815109971045191841387619525055967645478034068236649656832526479140599017220820626799572137782928687484634091464151147121086556016487697915377553602568897335722700787870120352533552580572855798076845292892925587256304949334382564977100762096737191031179616341004979383058037794231530933709169605892524922009332508176246390125972361024843442511767133778879463265575809527248039929241141754488449878578493480611179631921333126523000151889340780891598588079389067593900554728209601332760456558393841419355662276879870491518644197393582139842845799106063987364377687941527328174934629507110033169771942360988203569006738066752493937421968901149982184725852539142284560307371056726296685542185711975809074241487886103195196792045493738401637494882599162616683289382113287970457293928241865291383057717343612415737728225115676860843953010564092398797691345324832068175876662835785654304895314539488907463323683077538790317429935336998080286179713843417253520920240786007690703267214719053077557308302392336237474672037745822475427295162255723487792835067853229427266096361425865230414026008557346393231283255583445065555856704733330392111426443242163699236247843732256370374913345372998526324424736054061132563072208907458853185322156429357977434491748175724342835837501968167371626010893619752031581740789964327619792863993848530626335967236151816242375997946560561636814713710799416495468879368037519101493359387292204383744572995517231654696447639737809431342818839223218579324328497232028506472539823961519174709840930282048604311623989287316940025127424118487398088573329299351707724910012385928874414357198596911509947030858851078059400761642715000743046980928900880550068336707689045557320868855084670131106880164093368533917623005835748204000928228741045037983075056073823741540749553794853504030469153827164147103461547414947326958635760526608509717003660523974407044500240185559725180037590127885317126879665741173956104795724143652183919948009864780033272758293338432934772608272410833036513406916756015383224549227393574082473104609076207849072239025768483172324733595375852478443819423880666729615530797647303743650931286461900581634820934559097693646139299919555121465948752829579752234637490201223822558329915611925606087291231889369443819464097637571128753431518479763172799795879590097466542416641268765338483219554632703015563737533502257236886382244025234771402544008821143601581401956021195085989307333999446807590443588295728517335333240359864551448523198542610383195765638874125359577897194884719978494311523064799152876500780769171040355653258891270952749752823481941985043570967776802868810215671327509461593052376379601320064896563441316820704543158648842437961572573416597050792306921818906369590527358885456567443831320128967743054813310708283848675487080659741713604009856743751164490129913102884135993806010015137934126559546524642531922947983523762859145957631977754048530806113833631070648547462884547729485363618165652528552322105431016775381205322266094082507959100870483027202121502464012684614092258012082615226834248194628487341759856179459878609152382980140854812267827126879284190585597290706937604688925544530350963746795515680090656229479893255472934239246809096525845232715424725639235686841590305665198215895238762777750881951776924497199785323486673975785332297219677357910938761584998305670289084881998211400385309388743908087838342153225271497922844779343621602504421551513299750787744484994318352716132777077352640229095357957205754310565865374033795876473627457965590546733042947933396421992023700021237201078329292752952222791424837667993167370473014634753507307786716825387353601610000510608102746911377822636097459911152308445180112950199021365008287710752144019730506290829299657142352623060177395708961679574244972880395976724983648951824239441958012730196289366820905529882225797269707485593682881253149208459940928049578362600216216167442032452328826460428467177525975274517133893574081403242758420206946812782506062552254688235141876837650451333048720513212629445181869016201032033680716092921271641827719969203607435083508762709982414723300060779977680230996879737906725117258701037036416733476550889993385333562754833680607864104116688640844294914442757179653615714699603416984773469635055902520108764106536268843504257845026905298946214749521988864873645863889411070997890830622330188135572162054194773501342698221639279739185575512170861810292320654582796074470338865601267614978192351749045865674311994232619263472322202336712932872161341638131151436930395547867413849377136577392281061473593365844538415369028713798198303143771402265258302310734422440484388383009173587602117116821686761428581605740002492785081784799874107218515254283060689418360548627912497142652067890255793595457522780810121791302569293491289307124451813095676978231673606619147060543202303930837793728938260304900205605031366601190407995980924973272732237894085249639877561022666130598685484192744345701525028484394287279035927442186221458427830612384903485818343652086823886879240014637376254460098141375626080098682114217939002843869934247753815561120932127426557668692221703842419221241284890866166470418342750919842746469923574106386736914571490274215093421001434764589019516425167879723779653659093992841450925376656975105506071059106646043910147404993315467242897316322552318441712191031785031527500686417461143020624534294165312489224316944161985055526519795392519536303011995524345229587532451362188995983913099696739611307134181540767344189112852588725774163953458875228871491877769684256830082046488762615505125307506946774824966597976089412786079308668565611209146460265608686734540927324533492444839355180631834016339431550969587761902767432677044390323132686792968861102046993746374766439762253319909867789171211626162387590039273639570605425698343244897408235034152676222840806425479397210760203865811398179932764744622811424954657729459777517503933555135527961447167962290687103745227535537557413593892694556421641376694088918547478295096561815445290613121941141681135558694466007300332093307438253838808775199192409872088532152835001916242081154708701147200540756031503855894508076151642919228926871627299669943981038359644380613536891644032359711998544540935260347582603517607948655649179503089797437653465394543954122080779274351112128170865814690027728108092102628831858145581479556570698906006833356152574697657316133660287071451851072694580906985089133161152402306630126992049771468529658296934851765574290078888947023165796567249075750786044607171052614993847276311664100500127552566150734789491569941755496754618002407228115724393282681861023418575524421726945083072543668996630132522201255612610495434446664918289066304753866628120581962909565977646819086621140904846042553099175213944886584037154416242686186629558992318925162344660143253533529213152017337225490526491318725168267076578017770458797399830231256117006169018213152318439041357155260436885297443535931407971732556845834921923656601716444302558096456837393617816924685260520939086210965189953229820732004596392695269951335375245134278031339232203043226430474279722011104985408586375617176720459726184098790880304146236213361733277676901891213407526392327337264567088883031963259463894544699748171991669440298179483839932528909807592540037301519833030767776571507268539362281334470096721421157055293245698992757602188437730787196953349857421953257508377995208302551254042198204935351865204598933643456100595793269384070768861294035172733512256686099666143276831392643812581605184029166167752007327201355762596707555178877074264850517831966237076965584903462489781707689532484507393643565758082309671676849523531419942718103089674996380855956597652812177713406201410049681484800383220224191666953941908061434233143031463694022665407366813926495960222226078027807491210071326747555952585917671859754826444976143646211876722713147947200370703088944267841724267976650060084072175328301538348510625124959496445850300719982863303380728396334551156117117574113923457294771731896751893051430739030312835276779940094141150938047994879048112875745540953777804276951797617722382025231070219353722115852348196510827964587694021281618647403979473153303871337438494275212105420149496694627615314786252957548366648901291387458458895672981678676262466311613465115331168030627173278142775145376450473852796096572078854281855107287780571526749786441578144201653671340348982867996051058450656614031100768970373399842720597254267478585125160088954917992645683099701934564430944842193984976267838538188360259078912275885964177981904790623509101140504345919897774005658904973296406030381989497869634624130820744919667009098254195294951260513407375473996475427844641687621104999361170622459214757468603563421602744562913478516831222511436113955465684139960503492676175595785982810445963726954231032481498081894271588350272531059374465039443123086891020971408189441541035908430108293561265831760966801569847409842297938234295091613295058332114333603468742766268820794072889536239876811530531685356589791819199081715999292024647993308957856066299227163177303283351288075735698420830890466990813475257626803337646355830372729371986723701891899837811299324484995106700221601997881812628275098045210097621857149827153326285804541065494779520290412375537022218070253394764355057041856660643264552053232641396198627265730259472180814501319120359767652573966062937732180505255423936801470425277688797796933677962470013261468602940094191971992666415425302777810472411465168993890281886253111610496005003417168967657847421347846290350209863469467356653104608785485620184494838955895764879076475871911486419341266202300594150113620657714303477088428033507201896309722902094797640466827262620562426118435057584161907622698681437884849251222033726460858149264949771102258685812056629805249636837211999966341281283871998224508293962527622283634394155197067310632519502358386316930784803666137320532917323918911105679308601419260417237369637827770028560364011330050995187466943015189795337401641167494738837733620754393622664459883622647872774763591078856773852157012143945098646465053524948724035299014099544390455723869472542739978869642854162693627846473081045334679397100763630216861993417173534167041333245313286921483934400171248599044549765894936671489098659604444077129765349779730622561080197958579873505390714922706764625098496123963661561559882920607772742543902188933479698772693782050843256495145995599161016117643528083466027685664765156132645916808449457567361656402296781270810561486779423527576073942012009163407548051423870958693731923298887567970559512451003897480419787844185030379832235139920564547692776134249607824139247459762230908677420338605108797160067228147785721447811714115155845989588975778541926891067302182271432363792352843900862479177655032861909586384934850118892398049501639563344314112305763662668775677645072343180000343482146992916454179781437452245958102838846458484803117342216976611263106550530789760450831072292783733126184044227639338698157790525092488661426160563399175117531208502698931405574062673193780866865559705569355499225509445280458134804838181408756501432751253484866744411687320919882072379521583203228804682715458027076717866233679650178953605332132090876464713526939210141991862870789703660440237901354293507650066271747753937598981623748216445432338254336991766268869625516131785506257726496155903611794193694756908986359956176080979266978619523915119251253263147104280507672495694011744733853133719907411219184256736026400988776153625749931174581329845557361496358759524083094513410673742351985755181085434646203451848951819947863163882298265307028118739127264160832971039335287504876662497340901297831241785493868834188953170180540389506612058611294077835712957364697354378402197415879341284915535818622747002741104033307819692654425421919907554739131514433172789776236067336497938432243695138020210196909380813648775847336253418252734860072961314427774866303227747611146501091643508457724535876506317646004188927613199927682908519816893223060306610864360655344309508242931979916241712764896972687472793276250380115317404854797549853596402986813324915571701026807758293573876396784492446509919408350680446182325430587709070057273433315853592294731054518992314842512260533493625564394068063470617005898039972105245381553450490113048343949442565613257203335768627407148762085227167614191238459307436958254183200908707728984984630527030493673946815013329785170095169157273266121635820066365946858080686386041038551562913113516105343610973970696902706175551668987380543828822029012757765268414466764768104792759382614056716867912493890029250121949638600034339630617231761670820035907731350354435256029091352655545005575823061581225677598191504385165835966534210549651342313845894346297155683079744670175188629414840373969899694260782582459217293329582955539062285686796472345966184622539676308396779733593458743835291869948885677904377822359021470235695600450607082425354947255256765624119837423056987225498741056854417828409354632998525416552692829339782768663201773192500415632282271619699683995960170973268146205715428661105600233516925340151125302191228142358739776764345369907974875436690446239771995792781431303999180096726016528717505930487655307774438374052623264637303269368652112361352815212968113379594445991497175906930511772202923620001835774289389276370235328710920937818341294580366835667074944492873625634625187182945685344483593631682278102992078967069944579655093195373680318283011144799168176022186454009290034823517640720300021834742034421684966925981705686603726131123122569502079691358714939769335471759182229766337372758041779706222964825448141286758066030364825457352752236073034916802266722800540029840853994334729753725736425235326811027508798821711207250430429557627818111656608445111364011442476092832444578423321282588435621270585549439371095720080247816197009226528682389983444883817820289304623929728858884218219308790085142007136893284188569448095148734313460278882031123271745551921850122954100138438151069305777322113287432343185540391606095182073203063877089050154143562680656769884863896639155476352911256923048534657711485697054557178160845023800081041840658545120968579714433664723820413049012618690733733464102627698263664914542871037242608867368495062777573631852336392283573372470656491227699900752350166866741185185762974033489305363873552174063129145067415803503118118280748342769726286243315783954887048954576815116865197018488210908307175377579501866954148081170543303677498407778707058330616134097816019999779392778731495180721054127679229352123079444354617959049403394791697643671550164389401098646815489363764482367602620907525535288037622572451223155407079150333230508508618184605506514874976267938872803357034108227257223589357402616698328663457517291663563686598974806654899307797713322907506072264245257394057894905455752151475046579697984331543640271907233816370502546512673804642642774791146623714151954324837754710827977655469548054785648673774026087444304101610304055821081548590556979301704812206536622110663114360155575675816063371960047421569495670414014196684564210786908894223678548675149716544715656251718614385493561110391804151867309031398736298403042227311964177350820095965782547054041602678384046669806712579514558827791010526509595641100094135762439775920644770406591036694440228253325988525745093938407225490569777358174261563756521213948636318783428779473168654590094596890452374747064551339725928381754070241937803446542949773125446874856387267313519053322815172618991715709425672303397606287484073223638131428926991513132418073460962455188099804194351457610963260748670703482815714091180566065072960876174472621149029495267977518202450847151240896113396501620373699056461291554802416780726736184420574001443570413999202075627362158209161238710203700004070342412655557759182342197623348484759440523608414674491508942730223679142102545529930122715378531953312355732175797995104651185973640054733041161375100092541820486357971807923903972730312194736877870575158700589389570720974928615236843963084626831327243608526103043859955095581646633751152495684943645359363572936787531775273155219608375250793912494300910148023235732108715696609035153078294649559158905624725853112085024990187765022670958526107661219667816882307130802498822974279604958669058224247144793668545834547491892311160510113825319586417956342222798065921530885823709462562606167204745264090320056038161674659149912137255445084218634825824786006593244477737479752446817877696158579516318157566314693508210180880835625511279507796290652598339149645126685205648351533824436624222357370126952285894659644861866458709053594962030444723197105048543257778549615949211614783527821657146329797407325586865203118550026165942136601652035959829763980409246737466043637263689115494930634820503955377947332404515718713075236704484450844712940083723281811356127760155552212158323915438313013041784999315030287768441720284403892296017741410279030784078520606484951717276090759676114504638111566093324072211120680375306118244215135502366292867493055819891873646212938660160425709768950090475081226058443690824673017452009499291153485804025013771195061074140046509495293990714368693974352612085818013019038012866938744585927423752122313192799566696693159642495778946293816049578915391539623428151550947367903244623409833037709803090336451534472505117779984430849649762950857943003685835222667509350702530163650272125090790737295567197315362184617885121031627566054596687980667719137213233528358271929020379414286501084419149215374850461272918913106842793927022572399139088767634136551271119174912714186414402127894150008243012919640609198615978566085591278912375814325977034671142404171039152254791110600026884797189664740783890718555571400221152337084841115268682750810238668618240158521546380964750208302161980925328992085251045232113477853322188480065039730634619641486784360899496263041913264029913668347567562974818599226036463798839671700913669331132030701926796612574472132502298366032520133172725152281622924074433926523569688622134145904165953902031059082375100132336408437533630449235710248651220731564256146752837280509016944865708293025089775533984439549726532894323401087568232713950028630865048965339423306961806319920084048111913767132999485781340614821701490558093489759698303506034168383188120632131874095574627971578359200470147677051036049135851225642335393001220633208934355178927378357730081958582811289358383395178052530173306978121034022353435306951843642937470407347762025883748055529428994758836033489531682008772980757320924334921343186929862552931125721298936990738283754572080373828328597510988575187177364597587703758571521962212651711327896878813986550840639972398411456863230081928014373324862119264187735022564628605254903201173277931833275951389049138791813166143586424042097564295261719925060572267993143886191555158544468979764134512439167315487019401301286778071233469394814460236826637633098883297772105670077389232072355016928911637758288275580536346864583925722920976461258914112403275684529173232376631525151002771764669741988352860346265693340367749972166849483333226528732712368833311969924400373555105057130836415090068383568779324405700310313554494814505699416891535717884090305037209447862087806964493419701966100335321889051588149373335379040958185044337907375857617068255906197480080527209518826045729433544037763251680999324252013192087184353687228683820527435848965139266645813275262677389060695483100758595822336265053913978552469206982639683250359569013578744418418243616856047255573013568149305772670300975542587172074329953126868029850043770488920546792614909579234652282462654722486513394565513714437102320986822284469826137480433009712379827168149144020052833946306526377921556818665790283076402927271846123993738553330762002173775699224793318680619765074072492085799961499846292917949128803916473256462271164272248583146148930273111028810283337699070398668557569529639535141112196334840360786768063538072958827303725070825821535080997272377011341716382950759498847761943138056381751478876677432683345821263452868216106115084468680877863215884490077227178442612957281106200016882940642894039929044551566525878299231870030475893223076687084280997866032592821609577218398082403529156154925449687252462683322392095477959623072522533716848232066862920988438898184729282813912530518207100779120999996064336537320063159438846768024270566679032560578452886534189973119717730407051753244700857477790610761394283037402264814386285038360123720631944825012271854405040546792545122353428874867516529423399039400429093959873470196997113529194968937030167730473484689721088474630824360891697729660451744385207881273659477361820383141684665833803781075917757767205918729168271831202628480348010687798432012897071431007322542529873218235554244732574984504269231784573734234250179110958862746238954040058123886235860357591223551102304610730887025316538820834790643907912339060564697690133238105559396624547662775706830118037791714382895470592599868579741682874365916277087097718212846281131375992482471991520385816068134223537924770924053179661368355870711495803575890374165253596288342246266068141576548216911770500594369313443112607613886431687375988136945637084777527589846365228691668680993963698775501851093082483627124015394737549633567426942604520309955264494322858912183313534089519949473616117620386049348780219261738032946086226840331414727883387787115412479992401063209835245699117495485769970293030362187077994038126328757741568832573973434707482981687154550703979315638865990640672312065639946982754253394372827604894945437587122841871976781446810857862758084797644779857251437351450950202588383193929245250833694940661752292871660725693621042606162691279354895856250206122493549913005590047929413375437140961104562601134963870000917908879094585310065207358398378607056146817653762004417177600864442208735039969164605923654101285620605176586781519531239413841231324655401791608629484226275461673173014582486824647727829488391226617861482748536825836938318168049701830187547275737068883555346825803873391277043569785473538402716013663569885385182395994780195022351161370669833631528116217987300010823587437831362783861586282050683458462261156664541323187343241971536109519914672162503277730934473927569448120886959270420753798501546327635531054958727185437622012336537239380274075669754582739961723278875866959064283258447106875467498631017191137982400061112421190220079516579693711405441670871114241953127656276639018278405487261454442887779167048822661707065112295876920844846279382122221876364384246163723504499965262686417215805445324588050786994267415144174556138185085518597457549341873274295135824105308773597591934267821117080681712450954834431522040260419337240532789581678974491348372697535045141155641564869125085543004253814661317346884564311406075491518021724974581343255693927017835427609153035229015017523321204356615355710326229196553570025202462664159895427837268440629988749492529719993331764552260151925519398698260526958247516478113575131602910573298623375770552664359763155528135593488122472932817017354061469162017283417414643552850984328335909200376535614129308086192385015618813920920883130801519541461054980635500416909126890260083238688768167931087945668633262045107657733639782655114730976056372506992472018970293917140963852850844421805296809152439913039375429134270060423991847143034324165995263920135624275140664615080275940804126259711095217657618009307848386905006714351666489974711659750051780532170078260662318837920752299171461455643707726625489125705770254123333631163202112504342458959358069419049264255927796650249346708114908361676220951298942899143278072924813194297424324565303334358633848105176326349792100960014930675318251058292103995449286148088159150307546260077054948592813891682496755070980068843923292839249587492597517702320901549022897250385777388170534681001361233109815093670896294714352827751335385815933439933162544964414531768324633158873007452289308224710589189089350305402027768409340311015232950903784291833581383818875891184617610686733153140862594799092966500480925932710067793254937747581648651908349665315669913644714439496578633314217729612501684071171251285817720849114911339646614376179852549962529014189364007358316020884211915794112602423533740768187713348139078643277029939133449212524196676935189937588350230356773963317788395860769881110618457947440790409259144022162138740194947000673403431964664801453005460412501904783134958932728462869457146480834465257848846176708890128741103286311880311005772985771340892146432537714651850253321461933635558182320484216971604573568695336597996264019883868404888165659856368977116058654156657392138468769495730485630950945084283446327293364896470598371549490047692844256939883675059842178627931267885845096392914053661244350630288244358708269018222546951821222435205897743824243446836582026484861350082083163446795906845681445841887871565433257575548502760600118240761041159034771904086948047420853634536416499511898039612190028037880788192930668181577241860355374516406574570508273211130495211306089665875886970268288706673577354662111374018290022783931603699542417417386641541532530675986745297569690003508214338811960111833726064287881119336941964232392591505334412818287166467350073664323731884489014027298307000551255795019463627289023759835219742658496868747212803439538070282400525350045262400938852166818661677584706155608332397990641447735846656649865559838586062608303743527091090900325333866964589481065622490795546263311894358934857283843981532309344567630862321297254068290719708453176034160255371089395506542737537180657787612269624378081944995349302171225155077741697217375869296672715942826534376883287297532257423168425953185320237771459295864111810079026582617886836433029665459293938939596646781181865271395259813192092132715813301498393853748116561297062355970124759170000697040203853733560591272025670334472956477930424162335131207103418686781831020129971697624125017109042158664330845661981540612696086383436831487826100498025435150558960984710365917768989906795064284664469445224925469622540481993216988693224425493951207552922330518183777646212893515464928370356699165599109383441699940615153608274171004545348297354646210662661133363693144669578150387553708955545774397469512611591907082536789668649762332009172250767484324093892974567294528226730445999918784342551689736986326035790709585107723023106101942906902331069558475875968930338187256560574054209942062784089948876539316228589073430930507857885186522339473864640446469400998706243076070961712535471907536219491384735661603700915793502708100095052002268845251723336449345368011685024207327719080514367749507207425847155660281720367520208101107102560293363947905862024280447558418773464122283270839066159672484201637144992047353299621937676815731989941410058444582997379838565921956751998459238551351136798291158717771519193584831003911132517724818254302289056421636943314699695892531929830958949061571573218919710200502002746843521269961976011529474402504385801758468383332522629666568224810071675575839000494844411511741688607981838569504291486802987853763179652568793859435694378521759223365483162208290992596749763397437117356254560537981022222759589558192890472176562101706574232612038932152318493027287711252831458206100050459988188960974380914294030901551803795780703453911536547142313286015114921709935185879440349994621931355950009660438440953128830055263120682890597939612002556352506962204370005907981640518349416801278312152980983092968021992343481368202709075790891764682442039442615802545793280560582379824025808209313879493730656501296149986968745413233244166377995647048972011417580799160141726642215524299476868039890341299546556927186957988379317291173840546741564650552487035059293815813610319804713257852563992887581215448473466300666888571050000261022843142827963182656541346316086902351551443354145273895801468217735996560606956430378906739823911672719456225827598277301943670377047884731043504294629843238587074139940074796720600545365888854645993491337623703407988933989069583390656618520329212615234138043759245675018373084815973708704920922300015363319623425224609691530791142446405172895999122264622178295441177528081540277626368757464852938885438311456378718665662537226416212430088641779384514231155394426554257976110228411126017087497158926838956680869887543810209336425583158160319725511611158679614631121448128229698156017822271630712577710348393707124342283174820816719503546070556178562829092161317516131225553883165153016989847333004283540614392157443980266344412260022794039627884255365289899726373943810377615521963114953839284299856479634218083449709271474537794549734838685737010861820005626037350721212785871208076835352472894203310616357118305944804446575457117663515405164107854617707792506930042247772455408087876655440335154164540590516789049834938001092651935067076134689573656812252767024685632903375596722079333140348264786959991336235873411166146063489175888820147163502502417526084803230348965980638415438348965898227981688841755370913884153919324531607238167064426498830852203235577561014467259327138667516777335721656267749272170325088835910948446972230634211805327553329773464560765450454932005347914771599420174999616631076426365607690234292697505653497982318773831269218892926464753348282887517342297253018278585391040195990363015424245220506004015411790086687560908709541997714953837322225562164412156020753641601334134308108785417339269042498479928572962603391981950962265896702102508649866631434188928698077145041664947575947153559841342383550946077063665938846046784634811863044668492556098640882340359533080725858655686730506761842834200947787058480676554651802997226374665896512080433315939654850306143977303085714114961987586444131167820922745173033406554203511136192856283130072681329759981009215463785969479811901411036344747235202434565687634573375726623230033400770159271126779334710342261970031004578685113929177079768813078981685427469613951933952008397068366200998433642489787248668471742928919361566303633261916907930291346539674094580342804176935961224127543445973190328400739137352437465567039734313665408121037056231547502494496943565716935263054031321568277172776775194962438643103205152287564804802609548138378463716315041618401202001539906093057166625102480526649841903741909297791627890168317037567584712895886575843984277201059875393358478757541054341250441869649924871390203826956729201978373652717028931686468153866798251231655203715154886732339247083862660702660120051109913743564653400771589163463577953196212870585906367238852698930974579584588298194985618261117793633492439943620834291573352654317658115982385916623413385615442684000426980608357614069668875078774578313786241634301335146485619950790643067654285511127023850675362158699497932080348134441035465155119958952259000308903829445355332393522295704749524186664762404013083332961873645667458164873781686017715641492622059023807453240668519445205939369199190041954631822705604763286414966663173540719188149083854840223621816882356228561913099556509342304160708229809648445898074033435361401853622375969211304659557474054999560023380730751788655399580836816445021930313253869492128464239644631957491781272935140314718898629456874772968831856831816405891046472784548780827294111035683962653249460025059639981462304973300606255610575195184331413784806971360402376254939030096228198622131932192664207929119388331220365108430053148218871742036494768967406646499298406951651040616968040265229659918980778361909173760270109464309827731012117865131847931018438622284596400217210006709440030269294847830579285061004545056142211539105731750127001659982331680782363397259614073688535865542529609196605641516160658411078707718757939249641933696213892892863152317362955942751036094000455182489958203623964260295238941400624886797456587497021786219363670003131403449731295020828639125848010570182955735595006200041160948191081579859398303646794283083929518981365917924450479788582466535413371057476082807061838430287102453584663817191847369367317867090300281354254752572168258345492043549229466476034117881355192928729332334549785097567602141738714741304711856913028898034070475338141271923371797917804466321517984090768443824224882296447925080427900718091732505982810407788926020192894797310643249080313933690996229025927471467790063343923597241453783812804405649245906476457992100907436294355979308611447953517539644050515470216758105036345725749733512863130723384137317894277683900432145498227387503408816955312604297497907977201153023412147232517793906362189660685734622528723767835634255107619434909180123555663156373938941506896747156997264754320194710415730683637496028886363628739263738022768682866273956776575007103088837239176895697778024937328005748687200896578648731217233134805167424253996930366017139647312130925890355068651402965514051291780132590382018739792335911361743945890839800530893376154362158547953461823845861634589710445410226050476242780613626722219976350151505658169215081763687868290284423560455873885381919538623951457448160602440661121370500501128175191635448716910262145784495738708474525380167339699535569309019548222595703342975553441072328445806259209994984424373045836156323000702089414795311753950483374171532308749022731909038705846052826893125885185398207500575310723121162536445556307191109007971756713708154206743186459816462934212502389279195210172649429843294788506088793888123032059019341379131953905299277335379155129932744808713848447074686606377744689687713309653845492414001957993172092933390554504335304294251257936656568617317358378066739128866289120713291392843534254232362677447058239385126494900891188408806510236780544092706021032926342586275494199808755809180747755322658140330975720308713551097441739098151463172309955947700271040468840487207126712549947341345938846542274790123896719212046192164031384454311577298445388553776580767125834113288663161109114447350688969757701040305302631565466833451628281051751662408509898546579470611173062198458786476090197455804127468041537694088309070187416277203825747481033249840980052334358602358073231974853033890609685489451635248370686369393661490935580218587431050473649713175135791041668921908624929767778958729866899424983856168486440087407194364289873876573613196253827356011898842220448184925763273826711768896777933418734745870898197410864694010113381220302808189735690469668265872700398340278216426094186382676273809769990741832364659992769431872656108688999087868557666925581577349298323638898182792558282204781272640961526299860732207622807362876889052614260125965028539305038717613968849487247101874441080246062105234495961243504248180462341520356921886939290814425524909555779298461642836787920807976997622994556329519818152468523719984508511519597543959382315412313475734975078419416438550428136005008373903794157885843116946137355202295940775211401522449923410231120790623479653726693213878319625240378015614720572728236637247820912708100865056277694389007298116717367327590444228478107151976582096423170826204678117519944067035630706869413672684227289277787914638616543295143212389876018261549235659430887976944311211843692847883911566068685281332059287631483635217509998129503893515449341364948152086903383687912855616338524108539537716724690962900651145211346142546718145179743687198982462125272371636696702754037882035468175724574328863999816074434389004241647820564350232298710335406783676848545369687791935527847933271207551438536702551602186623885048764153831133371406056729276548185167460339600963938096103764676084275083661519590336851740228280745422638910383236148008656967791929424784743914713266582116514360545648759844384778657473757086338744810675330018214892720074651879977177800246538365145031061011407516334419516562425954965248753052175682045897797821544592872244053895436630179871408370726219713660792380697465012341529061462629872393311174429203642092268159837705322510567923878442158134971327057894674417804354917420999006360528517477596628335349670575269120182069818186993651630968668033950848155621030039724138587503147919715514279979338171536039905360523704175376456643949842894257242911040343509649621708685792988634214583102297788712150461063770613761280548360602107748282066423298670204227342758797964436791203215162678789774339080098382952658653936675623557712206324017860913421592338028336162176611824904083187313270849127655939632755056769582437888676304311395075378736524180898386200232925713094374273091107286986693524733406558975841480773021587541166262601542407125509973256786468980664874862078718769805294828452013211280981562163709846839473852551082776629924598541928255800084296941764320102882701581134290272545007923385314339260865568710137333397533190410220105635056790270118634311570769964180496341887283470422951223514412583870159904231062365592442844375748592525720776200787255268847351135397043665020719230800509021550314463743863061650515762195281676333490236325366368269959508439119897246953380501002926137967178152868483137563027305411943455588814198928456226736401805194549689976497827483398693365129000939410559220813198514736955953548881057530519281666854910157966255365054933769297501674868406670131358173080933319836160979587525572037178252881141083431374001608509058145878239207470984726479418656970354988359839893966743367191784906283343579141843092695931428869629322657192624159491678769547161689970732456331001107416021681270228800574412363324242139262279952150200320137739398625248625032469078113951338166775397724131462498907187557444747508696966842479315547919803296574851315802497827144280305312788198962388261529684744166682290121658911004393015419080808033894098187682548158751302847485449527636911392323479389685127456872502135758488017563238178168589301583201072401092065053022777787210563289431100197609344453574171721024112343361159000786164778035132832153376996665188680742365954259870247103992100240711326549312813338110155985088921169671519356685029124360689055449403488880470053378987354741476057201292226414119074423143883715678628265489270744386900227477976904518469876008409631218500055058598036043330400912313834251997437235386036687536477449079831686046723822041298825141192826859281629636405951110047923967715453175307079599476112154158244031092668683605252833978190350007199283630645384181085479323495395159962964252146533900066923996453321737636293290240188136939813836735525464087324073321384351822162137080498952704688928931143319784454441750254194570697239265013773631687564975803651542684924723989574665627623339051277082554053157086897195388496596132126809517051689467934862100119290594909173930995313113809099471402681353188225567029942546172455822594661044761848766319293212915725469725997047276089168768757297588221116122044831768373293675368722320916598232796386444712211917631511383431549249898386316593371558424521030345478328007169136978064498156405354308293653134434984537076971423540752335184993461778960705201867557247320606802755301445889232344113763452652701772569816840688765340408018974640680277216857751468001407132524887733965825157944487769806123030580770705734899922429681924850154027310389047142560757826943124032896862213294584476030510308200437996686711555267273910847680688583779409601774874846198391536192969714106116909472615947002016492419964771326680009728954536674018953842848663600267268515464627359613094180194876636160205229334044986017653946803546122825396611103573557224599947383717490177259192983103755541536049502223364304844519730796042403816579835415019331337648565954606091774289808694480157293037426293286380968624467755767905908633218833859656063750894418755482290456782908596893390921365381756100381695268343097524546160974640351486614149513020103999105603319983058209001123517425568103479856194235888477005827665398545471940189927067892799255874351957881733260671355926481792617500502635795923780939844572851535363477870790966433668441596445234752301702211104146945247506583798677194631697107648489590442982668596690988687988063839942150115489753250369654256216371674167501981790976351390075415668511689883744551553572152214201217581048242691865570638156122525386866182728833947599099834722121773578791954399938061308476658214724828370917993219595695193811694768303063647880123691793792961273343247797070081840655874593852195609043303710507849688893432963002748686414829467930338480649423444033245481231994456348699672351675385871279342281082107956999866751362439880717523553199276319933771918839496570165834326791471827746361093849747954640457202038397874861919819726933175816417698755178526345469701010682205728382287303151501558507054182981218566423034195116354269599843900543163099300599880251142121034301615575270981921764548644988509354476506168724911389705459529458654424373531451249124236734123667844304239593236226913995605672657848051230994196000130126856512671996731324420249236929321807655992046244337829879585575839131898365681975239298846037178959933339836480473815211130910561853556971682801537658092017639425809409083916494938412931861387813938255406918692661698867917735539233719218549819073195307208804231696150283568639952688769479387433252175332509856126027559405698848864298255835412981212447919618106484444348969153174542678428899808788941427522969318548022272974634352668972155239418045301970285177738729235447555700981598185642500711062450679720970315728324947292936480762384985176478303119847825406187626002101600095818162224217081123875411126202883675341960072386722476564728348371848846835559579240822596396355250019391606106934619871857664119511598954927378262648828922965505657599464668461475092662736678770682285815172081763719861159311303676390599491889029395542198578225470832912765624218098578038079150870491611989129313769595637119893531778718187475958014612889487771905923786393044483343137886803314066179588395216805198303508747792742855289312697980649883471265748843387305536234797783564095071732063511806515590284794247778999582277704252751833210002927411866336179697557727015504448552693990770222707658054052723958577512678009242260687780469861914143102755811269535611013946654378510980254367525015332072454801184400407509595404186491700557795789613441080802704523481000916133335992043614678004440021630588582813094891694525115740005248579361807610067347313129889998152535180702606613739852722271137024124886569268832330277995598012006706841091079537041154707864504153636092517633390839182691305488666111627815765357620975806425424488878121671680399813639795126362497978889121363818321202638097041596833491981291321011600283818372958123665504453950946679039197513194117760609377023961607588190182341360962882250300236688892427682639544128553019712184930754455079702559450646792449101144415844902494870749871943063882026201374607763929087314568257933202866615492307835434741128410073258651742477844090124497732134064175143334379462051114107423166649372402291140489054595548871749388767380702426672832468578844867025701952616205487890053840173457424127621652035905947138529232248034669249095289216986009529412838350274260092671178123033173584722805637923335250308711387451422544054293004203674226447838078660662119781809644458685660363234757245059744239045951830182542815172448152752801521456415503426989994563685156878886034361283521137391014534441357918513496494220486454329101777548844367975207351599141819420509035381194210819099184376563043025984719199066437527229851406703164959307587914362453687063170885973863467666555934327669558162500385570721499841327308425036107912885059665485697117106307274474788814857446451371557722714492742589512920419381411818664853261472888975856484098376513694946629726325563579423562768314239997797680126200732224981746812063467924219133048925350517436349046501943414596679546495510032008515462963587052820425652345113409325180310704116883158406043132463221421505409191036394130660706728900137628201037684147685949957665168876388285949008189698432300458272512165039880021084524635589109005973433029107622248774312253046507748600706936333510071534807551764554456855382714446115416023465655563999637791778371858692102386375575057026558542245887012402207820828176472572203879644666130499408666742043646736272488361243651827456900516269769126536861810671549180267557347498529624401991910071603910322521372516989189245492381876174763906122186352030823389351098179807581149281229067767302983887365722607421996163824925091202920153488108235094441765627708716656402779577136513558053404676151019761158493655055312888487535035470264058318065027469012203509601239932023393356249371629061774057868139828460395406635021797374662207140204374696581261980011102951267924311315377126219572138778250135472215666401729438936089792098745391294680289579224715933621759256614805353262836541918173915884788100520687454581884783981938710227274605360372939276631762767861868371804651957430499771678930917297586069744652136576195012478031322345147520523264410593611310490139189495859990203936182427194207224823881585158348859874785524687664224966872365194274939261568732123929396561109268959966322408126218777815085983237589499737979778505572711749944718177006559797103385812362927081129766065711752593880525449480098854638073888227855326026608450802440247291741482221338543681868908857674891868084771439368294967613266647936278940436130090776229318837077773313875604373986031879612513132252841160978144452137967346683767009954542671993598674899584573217155610898717265390993891853537980758615055739606307385205959001169731894893436607235679535027950272726240411552098117297259324928108596572544260721127575996521150350332282031917963223211838040275437388669815698418859521455712628573929211299579240068865325445236529382746283956847341786556187439381468475537308356723630468743235553554307668539115829178764167076496886903027958985059526818300209427161713082855980624449022416243451996007783593498525295065025100622006980823455888252937174528614881066657661382482880213810904274400585089920899744098381717324187440545792960277098434007853758222796321738374928462261891449142682033010010450547804530667649654247540218737101107684768461418424613440973015218020919934081326678761219428790163623812439838379687808931269264623312304811393920943084782116204612442380396970992816536007867141106236301297968074280972550144529647535259675339604699728305865645145421564620238240833812681285609101245492543800766684591335834120449432706953755800708512129243617289193345714642493340429325838588485627840133644665018476390747489032071047564897897659515576227758540730309186668518920277444883414364396906833520447173127489234908778075178218231532427744519343416440897763008153642148706564733768714719779488665301860294568426063232159343101511345174285778981292372661492650552964554348605593549610337382942376816730602879569956907333140413505352955424291662480190575573962648899434670016945893498550846545016203114171214387725689182822856522787080633480125546349879149415859195349771008876795016409279358953995812264407203872187648866912057135886971067620867117147078213523334930107451595728981130171004785434140847666678641343842377791140081906011292394242010836653045880995014449131536932637934170581891844675585443536023152990179551579916857417453996974828905571009125312603383792806319991660387167174213150198204972723273644471487764923113646799656476014715507900807010635616557222038019808431427253350968484350525226558910759086904711292506566238371310216153357426111868102944812163634997768216049293467331175450568975462609527331118706178816475311922429493205227120520902226880079175581706147295915644274310795169345860796665222633822162646398884982621880511835639316218029193193591379919172981641828907687944487422525605314711428366331823390303423825981014126971049310944286712445256156147146508809161485689013366891111464407385085203500996974784493698047597934776755992980708713722710406350306919136296719351120597202265350727173292817190411892017013636844147278562661376175660687176773149820321223203403476409829506975150084883069424380486098289683797565128405873766433202772738222989585926951316802158000236226536268623255115076067978352957814036349732918814455889699337135346702781623437348918212929343188697026180239790286956830332093805560805897591676903289599867184363001796731851827826341565820765823301430975139007349713310739917770127984770387058489240585916271554644931786932078128381138522832013340316021884388727429667031336049394636949377810849067009582816444721239871389792998042035936717874419038390992978830317591292149911416162035560181970472058549402152293005750341532307389891552302386832775904585094115339549507014083565691901414861269351165972734191022085545780178982864579850464046484620342721438989306883394449662124469560973899721927687864270050028996078951851024741443309453445164569076453850852596283215480605927087663983200469697024375758224871833196940480717476660630667759463829181396380943508274316084064754187599315746456988043486658917086072976129489657546067905139644837189521417441786889749728731692749064572372960204512406529903359424424881901648861025968560090306871205400464150128154271672637603118277716382877129587852798153713449077732940665085133192170445589708599489621383382411384048583524637211353078855181357418227656214292426491637859445026401756086729417113289585168346473761853012851878534308255521897163771171463918106213826534972317482323636552310321750171652173372457405620509987745722850754055920645841570779643367387847750505820410645117354072526283352244314065211359344213041226091143209444032159103439836079889901908410452052081843372565753040189448901800586082344058840834398821108924277858487673956760616550758562678323123369578685198151211031578128296641355491022577786127202382434455396936394350035172763913091772358061637803078881290673435989826536977946908452086750313911186929450863868509925122946453763521646878240185891564206021634726368356325602006542597557861418332029292387550716441786422717164571637098885733020814309491817528653811867036122793070773164632719947447600358862819974582651500123052262677341103584684589071595034909261206227572247226647156321464002865698681281565893091183258556326493055964430923761255804565112925839670139702612996386606509310324191853072423314281681910030656643999612734662462437041095962936386172910597709970257115666982199300672910571325646809036815217972707919121677398710259837545773361073277821988979727482737092642881064653691833845771183201076896911682021808722593456646449747356373612569325712808371108544243167839084990303639238091890831707471315981033235372028634453593432958197766779712890859225372537176860849578969714278116159867169628591021104374851994585508772981928022970782403135649464859517284125261753671536021780526653673025365708919432974815414820610743181607785245164926585418963632651279384036790956438826082744762263871380355685810534382269925731941729642509712909828710606358770379051756792743907399370997006128611281424706308544016572469121735405966086973642678210898011804824028876955808690028144432696549675562240214254503887324649541205870949654892572374652491564079793709063652164867204899557340904287830885876471271119844142434927094290318217399926009206376782090395244812774359609653065639811451275822304835396323747750739614253959735044396470526577266650049148814142071435219187155094386865904934976083679492820105360738164921922344958610137107480007569858520980199575815994161126812997600179109014234202543679027777650980004637254511095756319884599698250009436738214441480216201108032604409781845338654462285751212976388913038274293353273770110778031079170225519166415404261905237189398596711842256696178543650836245968954770539700061077888755958789533343898639943788790256303966659612701387738041849874186744456784370620064566475659379373462567932945401989839490410353610376500489135221620161772342703380602444800237245789294675664781997394469448818137784189810341121785501083715221944830539214894751735515951782981820028136325173346881699616204194330620447024827094533692928270044940297219626199220859378454921147214940050847185650146574269694580120656653388036136515304690978280591339712335468847968639865715273455414507274765557480854138347450296362216388928042756864510380610056031316500796770881312230095664920585106444933455411917431110540032289584786972555902791905053161422114325159905423760879780304243217407618193825374636108016228923577075179829283482835290420560792833739266885019471384128541679347580437920573541314907217298344952658718361451643636399469229245433007384323162369911028168156473960261516197028177395159428859133518384828924675638113893038490833795406957478268381944770765722377593118115360886938566644740703872973950926766882035745953579230880419470946451492123897299751370216066076212244651481268619931508354670333067741749373662995637836831330991533337805936014742368341498888095005156952168875822071759739661672971845474732840789222787001923146212405128313379421633202099509119662833611950307396484350399269131502626848066836486051843535241102588136123002829118121143637489007676067334341867571654897766012935105557717695525913948215710556323451866648054182754997006456517917927592479196109593441784632140162476122510552161541210553080596373851341375543913680404962488398422807081009160188241395268149811154798911732350923353663819170800348938626998222167686842695724638916625065624120110039249236927231089671975692131265241306105838314424567491270909180305856376495212202450662479062905207309176869684440115477783208742582130438519903075772709800919035500738372523858020072062418366696817762357471553730527674096599169603812125500727946591358401303268469267441467373200928674020369037519486614508129823436362593976377912896346998097484812287471987571729174830865422390644252440842761051561798814862094069015782037883273404744899385259209127316408039049074307188039505236505699483419511747666456683615582764457205692323328050657791343226832129256079888827224002429721915943747320319715704501281254200729472216630134087605278045852325383822980183705415756499309232669563755062776612505464868270595157868762588393143232524589225339511388049220209536757279272944183558516809097528225457595447070328106001505904336989599485830176612469846322006395414943565098460325680899173069916534179167567476019948778788101030482651683102999245452201712099419149641593633360599070593044923568906299142573467868813244663232411759925563030212537839343878433560218912409749527075468900752217720540085763836195888983640434780647503884572677842492088015786890859166852673544485704339880901260051176538607370983467643406044469113741155012579680927440904910530592672118075152696016573704582045163447600167446655325971317333000430127966844951311272400550334900593799196373563046667222420664962733633655038883122613345385122217916325350896917984943524149622864799949767176092555171545890445485430256150698368465316934509033616202260617615888727671007715894611225462007513692727624057779058866953931294907641761812547659208849899010693567272637856880055141812564294020915364960431030494107664745549012324794451372710147243020898387976976941594438335345431224066507136820815142606355747203327658874962268100293161515373157375896024231692526811853229642662883989298054369188235011493236352850045656077483087267655213723620582655998362673668392248546407387308465805831188774411194754165381154732379242804872246799314987920744183635525436364930180367854235690357532868711745271986018320196125122798931204445120277175682787515706050254805617095194185731929570465713114290395560773125444055321765035530623964678528482504669297111524315781128632095708566520474985457085767521494011620158943937080139740606846271217703447734674047611800901886784450004321194204932706535777550035940898161147881527854288288543421820658751029623034413213359816966670046785462751651387062773317936163929171491390173874616843942408612885308715867612396959439827361529429596982135035652697543230694025563897782697193605821680905528752825332557122511954775709963838495671083326641737750256577696538059518345311505987898893377078568632963045049231244840211423143147409703836129602272351399632096405405009154146785008086828493056998241800992320054831190785275354497886572579327723845206812126369832973422618198234273554480276289998193404672279989786039858401763157264946393340900501919651536210291145947525161978481809905234241060312110917147102295051070239786490555682199296904955209306924831803257351770734372058934624203918321089300556843714368811868883193254161575218549430884820823677595411724324532997967801367273107772591638480039510202679184221527955587150059598392591610553958915238995284278006999128497557525589433453882838248552008229877476025523406465836331043685988784421593049270184008408192609482503842507305799662774053501073806839887784764955019079706230578241800186022100256197285142697075237576989519413449256021042280604505272612431717884511539967247986552918894951518539774444674874139777015874047350457282335219576481147631035000611971144666036987860389364328722551942144809677894818158712582287642261087644375744756795868372592916196088660225702343442549118093394507579416344469153238498073048510069141653646727962511765071194916369176959194715653751440235011074989361823772614943984727256302104142351312488100082038020435380107531484300107511761815711463130360123694588211693951824249462792004339304974468587497973943676565882314379506384266704648668561621552866379312516619123923142146425805762553638974381911542317589997675144854973953374156636623720847341015740397500454433447590280370735381588266108462672349641472743068095539491190098347759561877048624195491839393120529894992386788846193940978757571349386794773166582712676006613708933046339010648746838382506480496580493569089186457145533855335719753603742483802310292085998507397534389959754313031117543310687129118339926376594267107767842029188022052191492237577657168319650566919923666733534890435079589359014705903339684373251095261532574100166542404065917327965636252737844801694536837968324903127069248498034080160299484891697161012751769223146732772783703036224204448532970535312279179874064656804326485836156769823954883548934470825915581896484825962259542544783773877002573877566179218758156855077029797592847024654376697335768237215083860172111801083887848262468028591275129709832185298762853690610462129910803049302470223073425271720775784546410469105080303549125385516405060304634596883281023443828338073788946191831259267426669091049108812222242877758129815144900427616986824401779454261835398459105100221119230712182505644267104331419982862286508187893395743955810076633893318555447605617430153936224509297303144439446525744363668742525965345751150654069877832339855190579149493271647770338192794145705381364323484426921565088934388542987424246649355377869355039236122326565602352335440496270544569634600399019820013135914917204182399577222738148958572337129136548398433885213592650863570929271984989844569520694999526820976223711842062497394571796347245108898753412142650473481968442970457116314075902043060425616791640430590473713505663629954797539886749953543361944444527418466915687594163898270147949615755205227833509928793372446599337845729701315554606683574403643654779749503638277167088279023195271762645469127425418252208568909999024401441451281960241876024835548227493276203038440577294035172008495371177196921944978599472493999738586190301534963398612217057228116140825980697461577029713968211567430736036302454144967190748589423412876045615087145854111616372979644668073757205350415888664162645193271940913966124817917244628136459005366719180275331160927093390818205629346264152482943095121115303290143076717673526392461252817303868302055232468270433079711175508139877333113771902036845396052630799949229047369325012337690313139368412896482225331207930675589685372305933899741688893286296254485597124612636333762335868177659794513602922672422890850010208549529740513150063348973487497427648585704946556658400364636050557883431607716220032978009588201811706122567376091546450436443393576215898375403829378683478403992076528448260582320158828953630050438713926775239298542639866535717501467414910951501631192603361089702713080967183618274202008437436305834561187806769399552317947740215081253755393923377256315297498138220099976032710176614215917578081880885840132948066896587905170579436282155832197365206728506775328817611256146319827872120358946820991450317823479698801114193451004957039958735756443985537672159985019193235759279046286271801800466187341291273689593912657103891990627542216021114250726865305383079265655036441630938644911840476716249172802509103760334552699192244761818963074207900132207297905603697122464127794141083137232987022552197008594728566417975581949143015558865993657904495980164515167721211690510061822356448462658176040281423291555472306965760170340627830250967223762379963804602501862397987018109079976157450313918525507719534523964272313988145876631881778699539904054571884907781917591442161563093561491406606828136920128504266835667708185895090719984767763203962244850025201018341503978785213356786225677480552295425670665854279237380351561789141404401576659465002289428771056103147320977538680814331968382034308905745267912883681329369244784303989295403107238479626534216373722980580735333648305641463901624512362341811602628472458242523703588023876800296412328546637549136834495682846901500822486957928947097080658611711021293856094931659212655149660451069791586875669709619332228930427132222393547438116761984275431308832490627648939126258809298680279953855337654323397283422767694771075160758113251533801648579307704545561200570792624069791407498443783319647433664048100937702303208830000866658484628237626020544034210181870953403621088768514227744419941282677880519541133392747619328701275643256952985529626405505456109228315693188161129352845251820364774912109775264146284846653207285754394490741903580641373237778852726905976649195112962026170846877785794102834187223491226566647655804052719074226446153670064091386707497225096193344197154897508469504624180813328218102874090958652994013296058725197619909864294665637634313138466599236952216953725071581931898568464942118455458856302949641414705757081536056150919331045642948096513690815949905399620025258948954021541710519861903021975368783393831126033778098385850745466309207166491888814889835417468742761675034748213706874503222951562757806079299659908097709176943186975042330635194583023281049606306579398389757138256377438131523357363854569481059075012156176727828413215518336507192865490169157162503750076549685850625451442270859536744958851977385458007382550383124114762987226399540536745850675823728815479159198557748527337120926563640013681500270944661939932035463768296087488444986632103147053385906247269061971548986251512954047917334847767768497326713023462799657371891724740614510173940420973409515808700463178271509343413162139705318469751543651105155433649602901243238909599349015522485270419098326823593461004017993074826025545106605561279005742092951621791837490142871554727046065659606778417171073579585101139332411171373766295105803057641882807952984089923974889551193990023849101111019289309282625048869184286653009674630250899158538076827028086539536557392278770173471895406164106046379099516294174957897946713788197607927423589586645394070440241950888743958759704252989046866686149756416763692905712382492037416136977047859758234327623620196902209150335261312609454418343178435077936477913737836833567661435396122657452911881374027947768520437391259021809358094933187513553332435531813961890926244460387594989492506288227653251324113032194085716077908323390021672808741976108632887397332207709334219357108367979569346444079866958000551090606982898150189866981703264480554630544981009434231437570516579181683933400717003894653097129310448157638369624815741256959738105978958212199706845004617155621598253439393289142396101767376616808890537234687676383153751615904924563639457103492735072646478501967525631292996581488244704130445831082687731908640859369702313761407927024307465107094537992425381410274201690091803409125697731527379720811124174417243030460336227831991123210706699711778050096493146413948526013499163771031049357358959963464430229587602904364729423870629772105749504496576027975812809907538869227878129764155516917901932937439206300761528556939406916251221887283759271379818119240984424094822542187654921312125140443009276758692087574868766604209674399789088756533967582093647034993664908914179180977523367682663013554286250466145424297544748596267097262282398057229587749696529961226977854218707325862663051695029214085589449476116926796178783684250198240676371378619527237058691167445390956013609606184928167932492518189346084641186460080836112144230680183271588279809641118101378865790587923770609411616238577438850985209909824216873360652221323345960627239389792546598067591293842648206158251664291578735193578128063239307830384344494441326672490179391649407117543301931770990399809957600661523215279145331255355442512716201455225928477932611521682858073301907035398190274217177661579031571909449235594826040449634466239479591988360186855675332876247301221761150247193309290595395828987693895225365511455779802993387911412898422657991357794097619518077281377918710377061359131648217476717553711689086820440151528729077063300193749771332915891513212399174692355795548316466653340712120143606148338961677145241745857636902194535602827456107715102959402361418941945441062218231877953029025827037454428420539922480541746364573247472553979256728084574386308549782114584517968573254040872803762401180585827086734420688688660162171926286137828014237375943220884267711381737865841252830903392272050496357251491857762710734463544621348732838745541511481545042783938229804375448644163973927450035774918899007373854551656949232362534231420553690124055425234948990342616225787201292588494446179345135143644586521982426088203889254589876529094091941791838581590185139062146853592567880640243262666934402513209958171039242402542108648128329178308073137542951626856902215312075880874990105378255552010930880750887846331500622979402013906727051650976535075957000946179426517403984078413009451291730108545110945448923939351675564907168677941781242020663448013907221884129660508873301453254901775889298969912116055855325045732705078833601257301483043111570180917467115272949025559661510061726880443675439454363475922040031347054144825737607621175762016992896069976159680515453215390930734768924072905012336904649428150002581623791534720292703046342186563058629790322401285495957800762145330013177912186546843167991363806311632203760747799604620660394958680088543029470345751095921597331001414228561529972052763217534982774855982175425351367112647501461834914318915351202071091426319424747676675025483773570074975213134993967869554595357531259074963404021753106840427889622440069653272596393221652055495564531845562001286397102020417449811888293632571519137572895146232912374094932189282442562628267661345680527189101857690017919920794781177712870331833280575057038335274850945855615361353797293809855032125261871435930099163174514464069513515510601254520398243732744974738361928438284926921171430101094601521146299062695170935717949553582236858648672705252921170923426445373115695338262867154022216558640315677078132647435582469417140516208761249320289700947882694185549448420164823818413325622365315418628511606374099747719220279933362971909617559049342495157548924166095916260290523942510836891474365458511565758847356509819590475860987123549230324499693149395719091967973041165141628387557739087956505994015808433998422320769248249221773433980476246670965795437497078117121889615671918580970095078677651278471167864068730661121173844241103899264204695126322415293384745195267729036165479143691943019303629124400402457320398136109891765725486047264754537854808265697330097990346483287985292249419977319744503216337345428346623695492815172754718416404784520965670844456694634314095063081637575229052542756189962995640809199669290614938783905840303129825172257909598058200139708955462793679691781798371789513472483192563324211770200534777601002846754740328859964148762577262979206827905444287661018552534155205007384020543291589321946854474328349353334963854848386436253642082201613006368214201877717020369609207576934421268467831936985183855795980335755068691577288216204559486231467321095985284145905906224786812090958467208862756169573746958305910501635308654868250314578993238207806416185855380033263329244722213923067693961401559733367026237754846828407215051811916519423008162067983029524149629838240949644486552700996157662083915960470264298085725211221290969867328996628824848409308024596341188936266987544973465584170050972483850575499838799983982875351254419947973853228445206670904697133064372343171003738660069855206878626468905240810109172706766445509727090448965947108327284783313600617401676758882719044455159939456819440844169892798968858454255245583075699457264263982783507084815431993589530921881044196934938228789274853450079059034037968518191167534226582590629711404264707679510205753471463051143313583723082017304229433509236914400679856338166595037631558032576167978137177465386604601778070988727951360833287251902288377678465162662759965595103461978801064824672863351969933296742180220669686577524236710457627497462284451053663609962948202603574914361766936475672311749131731751204984669230905145711496803563184435575832195828909619474203309471188751632932561662948925010118161776042984420766955935900313941627645814803541802197307275804388384760235526881121732467803993678127105552070013499476923313733038423795875947221149052257368351382987188272301416541403934930075368898985882069848183082537762078852425470867057032824037892249598037731358434616637669987723405171729655034645077513552662998207453662022992624750823446337393722086908055879115219526865135061070992152731355270324044801403077093364345121787624268801477649533283450186982606061727779236739401586570374060972216423607503484128751960261618517389358343513709958963315864350354966219685450849941240032986569914646828627070654884073463227433871310510869000823312308415434895632829215229426073531703514612510313562904469652700502288838796438814607231377365547707014133207767514018588325140861865280905944393768769033157462647565038549674929642057523479742135259503951087276961900922413150859852187759116365365409540608264595218984830212425604913271376349696477034055800855505235549385185231831150246534195579887226902479620143957704785302771044576750659894869188239764538737821188674657041915629852329317390493394132540766375581433785759112893115130149662233088103277203429472857132368820212715518825396634997813974679937973378838879171267493351739616779718528013892018830304492154912649926469959069432164945937424244052916522725368715400740313427354564981843053779867504945123144138273438505559606609669317603476861976731415683207907630235551937335202127798010525574180943738598756612568837379450882178788644649842063928700464372035127998266406394384510868904208173443003649562498059404675946326536720705926971092460321166971675028324379344990599293140571438063035540518414510503067627536940001983853927261884486335639729572742218837937857673571299232268241567413394394690101874007344827927836812463284203608934387475450537913696527879447943197154042015070520316684407842260327146005548383145745807449491312210789207195723983340447051960223190877749783145925464964159852861784212220037275928133507760823405316186634034223265100822588446016376135766150767437884332988457837543635467971305970506448590461736324190885416780480521111707514123157395198753101319428633732465335877284184797078718894663311747711416749890826169688911736593783703535876169642087993649926742495963538587927415185559611349533336611796725853427837258473037222200256200999559214414646393075665763626078937584923106263309081226882342344034285816812858539126176264551740428734272177964201162461298820728956193819589731613245796410322211576590248132095432302621108955033639768386312532326480425259992273738788726466462193030960820966581250637621150100561922569425642646389217155822028186830176738684914215554997913854400723242211940114452946483022688742113670947117093693758187904891571413960075170624072436682375249089950303387751957422752885127226446099911162717617597287362276180857702934710019565238534202245979239514557224736166851124627981080066729956350859244449767063977440633133104965927701973055953207356956674196943105395950150514466602485462175754434099031615322393940963099545264154408205364727531482547085271210658547562248990149569269510141414881770962246339442059880719580733038993229803364684923598225935296147014871005980134540279528336497666670038900604087658931212553883727434013044786613035559895925651150234405035690108306069502387053777206684170490837620382897139563209314110351848155369355288049139070857938582510346082195862416025734564881075509740761340091437830039593930596775239922116016787720343737134017306068289689757516602794767047507604426659505518409099355634068025164702168519138149397189139924533769185924946530659843382118639147535468375358562894746755790796505381906940272964572820831450101226770586711585339055413732794400458320685869963597869416467604799269945136579813168806961617397820477642119034318785697609938894756375184777362862546669264229308140156108289897230040111863560785588906100286756040689392518767212940324494910687229311680366590931030779412945708068467113557249954417179599316974129371583459316575059142838492203984964059572561597498451781168232881884066905061014468397436136302475578073137089462448963164581408379846722384742116230322611612270326813072945559185707600265674944316928442459642304013710488419493536982924589765670056540293558454386084170724098726030713986819473220988033660587775410297309150190170333357671473350064376622406170286337457682501235299958908801136991585270709381187051389820207607059471642283017429002225666300983042486065002095050459632969986480287967185515128971816312992085599829839318200597698033990597028397207472818947531012819653772005373081607443121765224332141359295218723996523787859251241969158491353065857503184411031611577911738639347123441392653250806874241576175673847722491418092379113375945614032244015070514642309001261262783999553511426595902572233769439476059298377369780413150871613757035339475883570147428176916433491233253543461995397694153057317217347129550914034576138894057737896299672301066476077859670492954546607778471379650184017831579443907152137091434901642254306220537839878808374967723896098099998458579150233327505102093329502439277261267627678066533705863617726807669821075046054966994381970125574849712720224944819425856237923273956531273275663697370994080890480916865011365679704374079106649649639050895155410024897722979826252098536974086126643808207284014698461779868706859961030605645188777023911122899873115772023056909720564988150859912459972723092813209066125019624340693439266659521478676648676195286547805186249253940695052447956522234886010135422052656481458895772918266222885397927266658646742369615876763671265712798962727854569101066882949520800724419071790307446698966327379933646754295699948428816122314508910155461797134905220151427990109722966941410684785032515479399068940554645302048039724737066511870838642506370215551990318957511842227508017095853236063491316340771692014763643239521886889112147564333738842585330805807158500596396598009053959370042647594598150411691110855881936951153653981363294098883591154996079274424076856641072777532534384134851732115446082193798854583536475839372459262010200663445759010547113192328939942942940461505092442137531033045287142113927181830030714905962298433129896283131062986390085523393753347166780087940612157615768567907565224294935966495570110683736668810501466038878787111457345592370125544363034047205827964002983779137347876133984263111703385382987151519638212191267485466519808301580337535469562521605492887610903266966720964524172936756557554094340672484860750311840057633766185400171975070162908338073578616073327975036590386146632827319861729741240985915176354536204857182264359759540709650146614291479410418097487631756529562779452495174427371518676230662081606783566228897307478520647158835953698171532882262333742857654946514614825062008145431583057808677312639426756114815004648562742654636452836740553314177094167644146364583741643232907486171157353210799471557000026078551191126362997697576037305112261449547756513178989784006726113362870209937949215590255896924285205257109898236057302773366041898676408918222771178247520984681231360547220171351684756181032129308221561494461322581842160943913741024058316486015552422254877503242688896412921519841899309073966861609776547774235687498901480349724037308407996154286971441506107580882517493197029517737039688470631283016945692811633596076679215014705523121494158714560555938428883299053203657024104423050395470115585534128021500485941706517144326452210989891152354510188093018559405260583750366412965240189463010164969124978997792269990223608320928633577159515349390608223315950116004586858132339195959995093653774844429714522925083244826771120709851245480854564109509706406411681619287724633504842014090371038540492311361523116591355568747917855666561022189305811187302430055578317730037408666686854907219298877988598614394586933757947396720798809635629577078032206466357100257350221118494217338546831891627920981357460058963979292539227285415756333744373074414862054409273877044545413693152705246085591279856964128346847907010922877047910347069234637301390820512281009505558662708553303265368123378615398035196456203629939319871422723093312740915324936730339368494212353375891200163298561357968171878565924417341698590728876751740254058467157087519588508640956494381332557778187898294432993072841463207279963566901138492241801374958648844319826645000317850963780414751831727482776829933348289027946284613126705863105156503813937885199068736723301977112381237412582954456058211794785422988379245591036035127957485271448539418530964602272784495480304811915826292303158717573376413258591215032346130765281471205234017974467878629515619408144378867445708809727783744792438022214278793214388130149825447589137561046115232330084264614185102405248677306959649994805936019656179129045647664751388858008382413590754911582646043252401780204784784759231646339469788709005296228346300322796697168741394998143030120651192157857240742566444329580519632027908165241760537930000029038865277010659532090562718189329217708051888348740803949688930966158365694119484756135143590299030743578588776107031326035250329684459589928562628306787309107170585426825486897097106371985862098583848090018464865622775557765458074184423371391848981189045316429212263276560954147979845089461050532213651123111745411736885810184468619682289909453961010062074184373942357099469685875804141334331190189584363368162592489308423456962671578748359715509154636912999569419414792045667242509367237731927087593038430467647364877565580425041683256207673966635421275225187144955055952877693386990965992981170407380287476118895107700865002181453380715310135960811359497790260138109473336331549139030636189902078338261483198526473816189459227158373724937132020851664164655373373713590026033968421292807037621325639858972086557197932568607199878656460916767861204449256126769298880346447998921282521156397487712545384455703737165371397632258846034293782775557550754317250988962007237587148556814889672570402134655895769726540041775041640540556260039836485784985732927899859967717789018238590090882171693828087678751728266739687760034880593582082924006281034741668296441841803010126830058572856393711833231296603597301577315001865777472878376090467816699397787134414344496341847838998153866710176357988474370925921105078591702094085614964075224231287275560030558290289306568143353893025840046087478792141867000455189235384175964130971653697191047585585807763398555097244186312649242101455450707839950197806683453439697083522039260530527937732794079739667958102844057018311634655433320606558786772424445311089981527983703700587800814144284819224916157972042035968754588534665560476197708292185634515471730773005362850770189463617665733914627087736283986198528018972588352267705954151097418564537538967739274388743177070762961588485317779271279458857527715731238961177276209175725381364950512551174579196951031788459010060376492089324329495493010241420046139174372371543961767103052662133561165072182119249410307741016741079836083671310567697300943975939717237880029370541074398774233963514765277859644654506254956164759825453798050599889682662642581529109313780386270013966664059479784801700997060531587804834012077826240090030709185456769617036707139217861850691697120781727735274535751066072000149317873551120658135623815670837995869294795706991967627359211613994644023387579870250981150785720232681604367519657492457452225627471624002692352028171693035127395343814293046404369574660253603806079861190761613348230940743092620685841559993729206925347749124815063682777240011277350233291891959048407912585948088182794145886190273267554504887494471571704441238975213573132682429217896536328584590728308798805077721254097413383254814172842157074316466131922907914458198803961843568009924396990937317986122280798971613946341670889219383805371164551853405121348063789123154993999510977596068742387726996293746913862084961435639288585448165357050900761704737333830275025606980025682293719120348808830158316056347241995656760866498332217526474801911691875172008528367220067641959543493378569015905530010801342562074007062806255705963327124709298023995705346855651675626285381125006074659530692593139387490828497290008023290806034275999499742288532592258735594681640085760944889401395310745981652590355992363517322438844871895465954946176977988249301906743721452849455728682324147611654237781863164062198534154144625819031248384098851987260242166621457574528940649975510551231793371784787434888947685846246089513357910292512543932184166649754375038446967760513256163920150153645093101180545468430093742771114458956280530961036278124725934845913846971628043427394515274560255888773568389964840206415981477126179839894667440035576353300508007250203247781189836155870218393985803296851574913001793840816891071402961295526599168746776144796624202872278498831006065403235006818474402818877098656871125909463295546459716023548949085594371761365930276663420006154321694151090536083390262859427093675084237697957309251254701999075347527123463621526312205771584723609782403998651630119793275206455182127995526727887219662042275043493675113446975781447529277455856376198360848567173945000222058970078949473742649184703316913541869323603009812993429370601425728755194920746247384374332518323627280216606649059505879436203468976129432421210918001476548193356031780882499796285050379162404648491952475211750876339720327087267168726964902205613859872147942569390530061010282068352100936892199823639888634306233275647740595098819562963591610033978229331143472242954214779326216811349634739556618220446417431882120285026357646857943232614089889729282664809836681154348810268437627388163381602760238952766829556037874487381167808470931674546268321534052740243866391183174758470032935955242355859722234381243318236700133208281109813454805167139896923666112316211596709678423317929899929640664388796355356615405868127484275747743650312922750924056819085278588145505729081709659515354728915280794804123774828718880337298106506191471156997209249602581986829294331506059124102841045442524938695259362619304542924610488038253831709857062085634870903393427211507112235287680754582118635242428928787554502623116287695507571966959092471287447571675836326112783993134632866666445681803043656731472540079699446730831207817347370628552207309433004648927732228727415101658093816686284643454513489461388869343532937055249691710583594789623300514696804299663439311126164892474347068833645753233014470853326209923414253146485441302819663461382600601518962509639528817143684475963361883344409868692291991524783220782417022182032249456220473919977053921338576172237808289196102944742597359233091415559129314270177220039690441349815324563343696019760709577597119038386645596524060023462744261173150553108434672926306493273646627901114309093779481954152121722190689110828644360692677560712283782617011415978132845387152783878313424138137099636000667947673779153748685516622987870268039315513033936806961440586391539404630009020931089195375946242849697370666702264996048151467783312045401548852036034325680479981743142670666907959846796953605098700219819695408888613734586298897804222263224307146111551961971399100645887037062852217823299310134095142458158821658474958375616128793463417019925979748184344109750135534250071840669138994413169407755542214446562328486796565212756464659060218915495178801043446170774605559022572805739997220591873861697897528805235622342533575190672021347665345051214870401437708595387398115091815281844055458464146113547456524596989701725885413934721060434389211739973176388081361023505360949706849561429118883908609318908388266813639821589448831083824255985504185979910434502541982549492430524522274644441078835226839121754329112261654569067697037458140672003610078541922161610509682911383021225018481322971010781245278591125202233857801698723823872395455338591277921487920871976094245789395492244430928820953249870563457788566849954323771187412503352811128214423888044135987136262804588076570507541042280131228421841458756239884008623849205994409578046947272264330624209548612983678471330498071141373137240869011905681296352086796057548345397704253974451411994013030926813452813658705924429551713747135099811302475221523668788638880949128973270986396628695573850702531461621505139112488984787614005166609303202715265534288096080507561407962855421416741064872715691654418218982248417852193118571221698232705627033498675783844980064482536393658222985141374595158381981447256370972526541507042583625543017552892644959587583626502999127617141569585343846776246454727757229581434438559934440507941610843152973993709548493068152215947723831860756406790037138300583560307299611891665323056446207106279296672507799365421816082212416461543831518930335290289919236914040478184221898012783847081898652735104498030307401220578677296597108382995452153912422289294268904686253334310807520767024558427699247323814489563183400365669120544390942596339776643098510623480984745229608203662346935873199411893161448547397536490014392743278474287541954960536083443476883747008732787229193936269545642596442526544601854074510753616261349882974788426347036851020530372249596973590313873272104589284405409355174733664392583597074713437164123236321629426869397442946039342168364502774633352677747404174759395401027973827753933702566982692974678652054713299117086116317590292775047060941875821517037885208290331585520152561416166783420270133536556891985134739627234387880083901554028873065917701949584249993243901560212160752303112748013267978465141579386904495888723862091906243684134485783421979927252446658742202093309445006790431684201797726023139507448976129306568379441549130584465787643747233880385616826973738619214211332248078023350047137012853161304216514410978824495991881695578225342220776972374005217899516747248222743955048893053568897290301144296842859890197965301198095383317772082789034357978835765714814267107297747490434130921788456986610505460970286934599397498030127200336551240513963760400975101923798986501636011852526195521312930434158414656584704627021479583942207936998427794989783362317651960822100258712133712704103903695975015672780172977528417040653750004115186545428567464074312189352726484005592306707442730252555861725430717650219247855060672608174705029106068470552089780604100235492408486904818238205092604697682270120779148776308447180147507672129546641589710036851220118901959374125099218409150524103344677731006256518497578566117891766414167064645147569905498122096172630977140713148476174467473300719384909973474169390866611501570784522508924941639542458554349778289407004588223566701477311698212518741076441444229263820887481086489945873261061316958294509500492845849921658100375705388083645115658837538764828945823117107771373157461100690893193469033034773453124676222172382269768114557227327638639614322239995556926958714485541306882999768056011900936465451417497586316417717678919936744378753010642402301763096655128307974379365711631250935793542551404531111424272643198801970766787740952637776110781418981719009105691169864266767312986686203425158418391785799738947330564590693055001124394617228637461945887607747729390451635994240076732092070205179126236927221494806758904687100621113150696583412480783082783189284404750534252972366522148733588258998003238570639091308108593664784586115030465591101767004290012575623737523128823341215539316457866537616429674319537108980420280667139543497601357713530368459780004918267549513093865426004315282614087892491724845597795027343412769307319535048832699246167085987274662138758798560486349285310430675512727278035866313586862789306135694095708981909849278723988289320792097731585365225600971097045602576934298661767941349443664464904975560757840147248769900652179013103408494180211904894378934348092473803200830285807865520822756944683499197943510558654863468358363665282838382279378768692240769404694520875672313575079648288424800781668132990667998207859932659723435252984122781520804502708461045628645526761309305968000675135893409309366742403617462305296183638568644671726904020930716013109566886830397660647269795078676024993398593766877466063187437633854575395675464686581598455218660955027150974701079097016536034685235045148535354517012836539855611531994796870684838040466866065040919691960337431959671890364783055342098859329368345385576684224038741711894803001472391340733406021888695318224888628363532997211330367791984882243929717504626218387089576342424153268545253943329985745963327013163441234982632676660659334347362519550177579093854714996689569605498022297664878660464119387876707825517814859844165413999655332059134172247603484073583921065469654376141324378761538118000968759593107237623096939335109507631981829848532056855668693593424982540458463694835462150437913343361066568071124577520157435258776378679885377911092585709693696662803129949084635762221933926003068901666847870771306001507175498785517228177420857847974373082172962970184488431355834068797856984678064557933235781324736026062092469100944943087919012437906120377703599426183722170052322205338770448619677364449613168899484409050604381464483472568492685995129044188356795042852757254724950698639000681177724649776854436817330719531253291920329005598529367780872605176812817824915628488899533391968712912185289811952081173375694339211402907143419274107737995783087775993903647313611912912895980924185125792941840674112483170909687307277103880333215810372328658803784066499989561838556841532768569368735153929086858990332713415210732258081445450030172804775573268957384758142931062080181914231053505816851133971853187512736558970179454296422446544532202961781886109592801333996325742734651806893031997161523339935112231031149330867196948782292911910453667547812290508119171736646761305620027902217404548824519255390937653328149056358899286305777749824750528858810806341498864450610703809459845388360964848458797711818681238385331882054680710195151627201008164097516444572828723885845409409534439714567771847075571192692350030707775350355251775169265025074501918496835107962901196724556050969637462405414023454337509866078687531483620118186363585310182910703185311258683599764799409848507778586077900558975609948489299812279765242842111793018167806532373188704692890239316745134191303991908345954690546122476114104901035091334404519243949580646203508931220627688354906803903126294060427604680955027932203871321609999590023777815517978870958119289829879434616600117828892236098029267554351266829116150338525421094662759489016219853333487079748848858980974043987804846222092944475184531203685778187452460550773890996690065682876855650788488471397137447512132687657448630758446936358424601863657696677569031815758224410644160412494933913339705279937873199283403999536201418052323743567131083306665159336793717533141082981558695931736299425417673564880721391524542310047055402531623902151083536303538985432359042616630859428652431283722107909203561512053591462531287804361496936954694331804757344805887495566336084588304730837183031083089789068169041414946017519487914315547924064397413351016428283074335129920426859919447659661493052823417011343588325109805714964736327935062085234214650143208081308089014882689828704735530470738734250859765922559790667821085113235871866265663545871463092185145743843887642963406275878256297943625957392921518734971383016544679718328943033276391578174501119102843293262488498456376279580648646923971296325452552864669852889087394623667920597019759668537938127777275451618941797313462852562688276639977555919523499972182684906903792170774454057508048781075836377775155712681397437929089900624604594144770664910405356774748643471049119985950752378234623351482254519621221733432906722115357162167329305897858447581697944296045143376642119856701072153259810668866751531351967223767463688514565824251274677837724922668807253109598503235756174613750417233501253503246913043769267514973397350279436791003760119144331452230214726992228993464370136157717824699556432140835659006464930259001969522394038597447508298257156634211866880557662499217534838284415505144866699997985029225716640027565607116131192702872465904498743677282614738473622126868873941248401266208834707450403566846176570828910894395224096494920618413108724337409581909278646906651815376042442143760575578590204311172192259383611773819680773879283208944068119006914194174539461443467920139853644247573795923133974131260597777202926048528841452918505804940593580257117587403326194590902634809534768981925172800795486948813512078810417889596203172091837933835544658972599844367322208475695390689659703520749969398511103149664314009931260753242693674233916297562289601631078379453992822856327170792295295700863496854139763594144937821363068311914670541681110397646525677559146922026389567798680374166499264004009963656622423378271207318816481709972789354745921091187057559568677981594457214024294358790726331382426134590241156668565293733415761249917703879840008971978255081928781607635013028134016340708392566959630704366146898063771122563174904322002030328858210721550247324762271326822014110255179862495289579187801712421724394973290235509171773346082180944004876737947271407139154418912765208823693751550750132117344667954652802984198996140709973942754491256139088224693417115973709697571035390919227753669923517669944772495604569068127769206521050669303949808108145893940053984193114301097840247507351256491248351623861350658657975219148411625396443348044215307560013720587777906097711306793157657778100730585444579595111045980552855958261160022878733129493169748181099747866779628390035644503369373214737665648406674168692270480008094073607312817735130759148084248074447456868298182165883397457774474353898478944239315367280288484375522900874326142803122631427942945868418207212196244136601877671330503891702640603901496155522162326531802273833295892316632661213727547358279927844196736966042843031513781650883655427159058105278937639412293318023007183078196189951523607557093319271788244054372645757331869698620825823810066220640140808039475471120083637173031706497629043253226596975374309004293246980597996426238509885605798959328509847877151972890322248425369037490183375541031453375587295648340214208572084086309525799177051606613070446628258321513848919010967045329764424089636181162503615587013816091128573928127316661900860195119363966350004296014075868299247245137060258865312414193998589340331959364763117834831661565715212415817494782763830949988157488254746915925906544334366071231348643989687900414069405370240140493804571058041689419156828157897489512602025526888471199573267610826666699688098275586977662094901273242013942756681114140713204317297368715130297671164094310159907692474074157540459300267592741801117623537625907526814273111754983457234225718871429621207061954567042330749334237985220101070459225756652084650244495926711488362503752595117110830995118579716558929938590429704026844655617093188087935317486998721871609781158880962299718661691579327315633838246644938644346092072355751732937746143008577300154575246998637527289821217175638094646909790482604251255168397061875427662747454836688376574091165141667553849797950571599731272566726170712549849762092944518177078124639585447086309465124237312867591565972631625685920743865512336632320199754946396571231329326857539435989618396006147269079585961719701856596381652775042669398182322181691698608934708221287585597493889516044324373847981668550024001628031992432938612042039473973752664831331784241833215315374905025033526475416053268392048157083933216794073889432670188928565632395920581205029763042452219858761684966247873390112336374692742869527955338119485723523692455458874609072630263159537850041110280428547969436331725232313873671027158298275508033740783681016810976921976402856778936288920294314654691012137195035022625633838485272239948703063514062913584198095164484497177719166786399165878763108038331989096975420037516348777312667870546898427573794466145916402661981674558699526136321941303089395925175049377873656945771071369435385013181543613745541156625206871386349098239192314411083702972388282874189063078802459077211128260332305407983228152642738529438956749220412017844089573037029397492048516023481004027563749898948816454363543830665015199905793170603284165692199356250497627252696847153178719838872475678420758395901012402873383140961255702258654556837257442409928087759582035417110537702541584233565738375523075188905187230643429157609787395866527839907408798925628475747569515062821164060477658927785026101560605781157806871762070493145515235198100989184719744614932464054325937352850570039404048582673866437090967187608023945810451536752812804414322890358653976689748930267042113234144771697748648904657170427696300365994740118539913096043529878589119382658433955294253405759515780637275907323038740980183306368242383756918216462716860383813270939108136344182647559808068127214017979014762435917232029278099437236165891979881008847726093989216702578159323007256610417383916351864955190166511454734032235476219132113904471987564262737253502365521000154300489571112375225249386398421582061411900175861818382316249254046753987513128465554097131794133733660967008875009284407594576794812441333057859161887678641076379556866886133857364378340775589082183955050856724850733934771312923845908340905929426419902188975075690129906799715422270740282385225188150589736794479891857602028260695142043640035405278927526926099338460954159197550559433395464354086953979622642085692242179351946135776737908544811764955845694954750737274663414608618379528502486254957129472148084208133314821992986473928077308514617705749760749210442026875268029740152367048682879541228026024640467020063181557035845679461744929531108631186355494334529186896427995331272555098254414335407010054624186746129331717267241938022507745727595764603343270266967285923523664337101789143804694841875008802838019049201009403133882405839491791767897268498804706898738363979400614574585902230277032787097736356920352387921368293084802616657510096901143534070299504969718398680091212880528322550862672671215745588310271018699834541806476185116495580238765121287250458760366039284378965426302000377484765518609712265806574603093638274734951574245341072562833886272846284078409555391217792311935845182749205670865638458174796121874798264655856205047714469409282342624548522914287937038228129258351040647760559044204766560163976270075754763586773520030778848979540743585150260698165078055942109643848900941477333103440807389431557880826063356542907217674545475791776054626788930940451655079500380992821239220861717891561659848226104008500159867973591587481981986029384977438837463355076359178314733792082199853254573152273614308247843154315411261238837123376028026042481814647042970394908171159117657562846041592060435153987263177799070330977515911848062787164408489401299685403583361146685894325583757189716595203832708179571237424285818644119353750896500591226083929835283425829353434372234161714870892667119493707135797389641012515994654264586095264425754027445305119236566902589939076306812533146148335707394562690166811065112505573817534584109894317791331399287912207755552258086568608459400821302351362507509442800051037411833716319584081302375283320991084507585782991224448833808372433475541672870949566929829692233163848137461490126028274352746999674088121917347040786660820980454222751535472472424402934872201032705377208804165751789793789054338799419979871679638712125307296729565838487803669685432732976742917623258029933105378741408338392284154097366137450608938285733496265730474344357169125333234126357911740631551530113735425181959069150657992205713392616225707077248170816248965532588849066963170413192142542322769846846999981065173468736738219294640256258211545541731260022882478511590000135274174315011273740600498976080002744682447749092078719081814354045691800422547475572843476223670417610582811246703944534609564247949869490876954530418757470754624227527991181354799195223124071856401379512798820355378786201234116107831043333015872842744731362079422822629683265485225744374139854494141027780377609634597302399176254392342994924615843728319012403527998033170593883038088133901098056111718658474274304097261744067891739758786111034205235181658969947623315770003569219508788281718920334061738347980982120026687393950193519433893062714834062443505320156661201003300900574153882040961926077963586703215172037050232712517877622434879425788656051283692378655837781144319879290778528567610840459525051650168415916890136584407062614543551152929603288975765108947502063662260148913520350589726629818804095548725919740878478005736415812950428596774280235261791021207185050791215085111374063137604074891440761165467676603247859644972729958481865656774123359771121197477685381434615570860069974146800106328836683203958792316459393082804347551513436352137764357220231612766394530779397564285010675075998906405059752166097790925515799554269316172985901274500371427988738302460903134985801287122401076786514460577180320399051020388396444621920066178652551591451440420465057899146703221974724404553705205139600397956218839968711890095628686402075536205157202698445715714267747161974567224192349606328904510655723814844567295215130235873534066405910453315010874996331165491610237380101472896693779463302189713852231643304438550713941852531087689720198592824790340442188258931268483181184181786039918931266787153715499198526248453216785104565718658707985091176361618050184247790829345093372383027760450660088258200659026131863932820630518462146779961780218796878378256390513688474949194130130581645747873961363336681314428527823337289983238986252654429317617706994143597821830624995646024762299896077151293123023142769993904759711280457828625395796694145692804984225867223453883848384806712206287096034974207681501262914692819418898316856473257099432016150142597023811423383037515079821161314584104328772980875445355326680215501782325913157047538968385090712635178779375717201938986298136140879227959049271994698628249987335135529649462603623353449558768309441225211545422999716737662059195103146341315523351097293773105187179471152565085366876221920962828202104495274669258386226628863449058272548183853806372905662126126731094940518626151270208808829423104304319871025781208559070340787221801415776961686237425655554892768300639413791933358134548820753994058405409274108249724790449899684836861825005996057272755127909567307041792165109816018634619738632572091792453113601863284116553428670493479798191227720930298601876340839326432627009567205337917738053626597881700877280311954541634594275545610842799939545309715418590504712792699226718100242190803966553055049581362060960736444009820393028378893814413868871239697042665604436798260646732460274521736187063922706117611513267652526011866334883441591523582828763852254621465701285959959875208008060619201529524465070418427657529815264847613293068268830214271581884548240374912999361681020994037508385879484781472296631312362951768160682047024966426031712010403527861946123084279034796020849843317467864702858847911659194448316877335807651803965293181291416251688951828862399904086193526268552560099659573159333070259978135563103595357149206864558784737903078298152378045965473177885573985428854667470493707658406643436752141064342732391742414308779663028603004560217728649606960648618341595241346957780190635968398516358766886259577433240424480342045728438856338847711462091049721630423157257736853445030873200902090093998573827303772986014391427050418562718375103915092973737499856905044291691729766626401983171061697645703407537044496537780972287031522797801111813341913083316646194416100915063331676833554316490611654542714063298927655048727744375760121032105746370413298405500469988036448552880908435507574660823082179231481463556169333562950475103047021049545035879902638950542678087507495536676670610914096732293361108878630115734728648913491958893043504021858651727710926427101873378235056059761013218247328597627038270866496935758740383567593329493261086006347887278000447967314864877993540702674772973792041554978867233646679166604113457812543592446794827916582600746106129866339849321218879742544517670046275633281562431265534957725291532207052957790046031045174671567207459886667251381961921599180436886824385701879761694983746465956322751156517156288280562998478181118080067038007742420081371802544448650504102326208789646353889893053837619378604682436036513909108244180262380669779457716755568044401862901306498166204414188734722143698251824116924089759661079367773636436106758762784037380661436923195757366732098487481983154199369902310990941467973907648309955177387647686011930277963410486389157454083021133985369953723094122636665831444782763595171369129764114662060773797883013169485894224449006332645403063065057513698121792917482469181815671129170994744459609614611520912271829134496504419191880239736305961160745991703441455646719284090130225550868132133003276230772105042112196654228427418310559772582448462149980809444487935798851110932196039808616629884087311186519976357175432658376868512503844929371704375822958121976879068516710250784231016116500713533383915037065366141860212875956297439708712243138525459908939998141269118284213998530479699260886030094908550921313567239281374903316865316804872087524570509613217813921694815487408826239715211573484707321296231276164834948289062574403842176959921930305293687048591183124363365230812893853933321386930428636313851217026929935165483064154443663683018279010626012600047280960782203902379623492539817703274478651321578777053610163938427048102551185424251154477703471588204235322914762301233432533883422445085873027082749714083582066271750338872495757383282354292318883714694568858854061067335119157121580107198277645721458799102179572280232726788353609498265667951555797168077260710709364934173377011634020529336574566293343231778510892880253973500320389975334092446294848470021912442561281442253345730394437370957921024484691268403513220492670896521199981909327694284832150837825839968161293845643617464038295768310778157167739444134046691148448632264794730825902073842479769790893129219296075853409080549871951977201648499503989443468948697637024888428654898627687410722671221831971896816010724779645146089684085000171198289132331553522680843072099180826276155686782104834011094845053492538314898664741809251817619984806127226897808447386960411970754010900296883373239825697378928456230509857205547195021190038215447409752442539960507541423219570535535933842075936065787140558703946831050295576297465781707805830499834431608102772277998357971414434948957334322515443462346199535592021316435354413631548844434978559769454819254667466674131215153080164950310443808624458848976102286641025495955757588908614676464831423574806497371019245542426293816434227503605329984544507519782591294624301585416152335545929716271891825193512384070636637518275678249369307974464514421783807733029276024294815758231247792215230129632772318684534151884072410054496243616832529421341158924986102226062145363823014917465464320299939447874472396378870347902917290603273269081635227864806510144032857648462344999905640846479511327004151319429829281885509958188938657448052970744452481116457706079296053662423962368078969780178173488886630991217467387411277146519860768145423870906056842970531160665691579364128242361571447670339426921291358767638100288936592379979329705836353673687505259407503363573834855586859617127347040214385415181646596364297367977861421109832474435501195822192392245787309500102247091225166920886209478745389844842501527565517891866943665238525809490406320576890594263827931551631983439336074952074102078031262627000820288896347308504134173534916454482629425814200949001931277919666658296058782327634837062417325217976951577827959645163369289140327123464527316714789342255218494853715300024246375615095138158540732073757563823544841760882400811530459847433801165141146287576233114097302614765690143426437213687704132519451649036323953636717541212778979514860091877599393171903849301234872574946055869117142079422510513953279798873679031999471329354239367408129904046212021378791625374805296580371100710250498629124922145829729646039872884355233200789792150407884657433430905958450260324111638753386994243940690830351549327833452995116569576941639339109153769282943020713638391238957494642449386577530938458726656910946075508234601344449921245467090772650200891583211106261313103830134663101046910854632151134277153642559862130250205491270642231085317530612533746174208951826612334286364190372365806109939984621018979608193976598586246554119143877958290022845497712838103995066563127631827888881921724132983597919066232125542912231941586806974930753827104339660638183196051150543418010346387013079532882550624487910680239123175639997070293372906009548127025773931431119856803935362336879541649590099910352391384921163887437750538737015610467494072436937827847721405502412418298988488804875476184930036637542257905240804546362996387429236919708822197710119671323209624927855373900434523856823146017370928950265374597683997684265264422350356818276229800235654300003449010656124466077310496078678228297839422303255389699635443752566850538104593324255335277238526067897846886240161256137810712499735405539607631211290618937029024049427940735958166281411808045489996081517238564258231351976666953141164956473954590609305535908671965544228087292849945429330511350852284097483570092039833505049159841794262735375303847980218639572880162917337740494752151191448053704403928127680452752661978995345767126739276118322711056529660275952751649560996487367923298185222810108668464822793367423168081820268083624160290434877430297276782395457004818962472762614295768328490332933594243851544668441313098855218730283164890678126161630920112886161101268618544472080490376209965158530593264321753045869135144442170384206902873205831874856529583942553687927257762616569541252809264368131746666832848266087263809303375740426970141765747047068448762705088483863007242973384061987342937425471899509351940872341423935649504747465554560721925760452276163555720544506130122102892003566394190103261357814272892902579028208012641395511699982209826134729271738564715718700720409607520373046101014862451440177124415520672594091724485838227620209466537666593999458511909044756539362956572201894987534795280472670308349785904598145452562591808212782733391034998134700735385312181996118021101669995370101938672313569832104615751959783420778403579111123701075796249954072707034020342135421979971965981703603832088393587979958308960810462376618295543549561712241827248613132987553137876977635369607826518851349220240762535070445097810355195345726212425640638704155298358952779813553394013278074753360057455824878891623292471055087139918179176250320235395464423490156347500016985766367400353352736220208856033078203809315906375964397728878287242474991138071753527651749907019218632205593572376840119065510249606862085028202152403944394450484806404687820649618778810751298174086406351139240585228231988616016537381215347544131743790626476484668179723757346160382398623364029427504395914417888919548477566631085654306450655304219656420413750010323923586860513929812931768960104264625689524140213326080322051725963742617349251721519913878602807698187125425410562345378586427061410865924573037728370898767453905564458482467561314622280758865448437118364022246890773820550515522341251427778303030427468317303683462838370533983693735421464026286818312382986502511039146709280629161779159123722366569616767441757381013881867015161138068578342219525005168888139875332275263602899696469221300564592455040662247918411875929086128431562455036632748610813621398423467044146180364607207248076804360419494350237646221828555008624940222913714271727541917924432182882037428020836461395649812684112088919358327383091798953613953444122824087729386732120722438540337611276013512070262674134566840345210028891522627565227305741755896628851811553403529802668330006763534975747309236683730115307399798101157185326882844264061521312536332494186161555506483426161549411190549143364732048532940218698256271979105235782796101274824849104186944519024682915575489816880555749232359152359629424315155455188125157458449403560950622135413014635183906670307106712804474004991966065619528206723697563607369355175191755740769777023620640126507359199837669794267855316963197255235785554603552498954852347057381930639741944792638803298944588383656027092686848275237416596517038940430959623164934920052308523708732568966955549985748773582227657868383595574305541590811663313907339048199531924407761086263326806100676606629704660444106290884519516563605154731349760774307104699051203078387409921077328930420109372056041021037308320280067397291644620097743680656698722094388098067343260519714835780843576853683526059049259233254382553772330735262225485118468416458405153301402723327740004474753469980321800553916055562050980381308005722229627026483873434921951839889780365157574765915394723470673807951672003723774912431840404493348874876694381118207714312667832052455725689513130946562725029684237728377476512031479973383475725355481083127007434311718225311303831545137713655649120501490746745936717169370185691252882698770978608658632846991594729711926363361166546964027873494894263909987278537902521193546062464073517151774771701267165735305881871720825278818082358323313445117229300724323042354022889453370434176042625119746609304325484848653351245173775566419490251650780139516019115189054844452238929207627431021945653498235974947273039994065622334744649700761247600494447507681546699104795929400517401611495532433231518782339457652688287237248487641466720081178548962507236470783758446209483821504213278599571125577924974123883143009725656281629061238011911158275637628629080165541256842667864355480581182861640771351609264264111549021983778070703968212537734137522843739035198846049237095878550260861692990006416450813616045493660136400793134010509202964725217768641460511103386650762482373083754560732937953379501048952526226453095623306075144600547908023405166934673483702138859272940380403691241111987630976796063453394081302241280862378388846813675974218252383741386651661137876702522268984022980466545069691712444927220375054253595863580342936341651216537029639948293587956749493898570058466444394682334941280851578690855685488327360316831482038863404858427207192615202549740969493214556084160071754489931462856345009699429230073602257856525135276298793813400504758411254848698047340549528306004984534711176759034422629759161792232727721084708436389505634895561753730615779366065294180547175666345359642652938959648276107410373813020253056183989108442424493383959917258187381116708742042583040177405585556024706126486375319113654400992709081942395122128760949768207740177219850185478038564004958223680147994881363671253387439967094492528691445679893114433192132193631288599958304164759111549709685398944151704428062131532134347786030589283095593861577119030630803775604575950561459547714940351511251067764877731776121611762353480385026729760264234018881670457304454516332176655288422301283315744981790996122040677482903787458550294171447879251527746503138326196532408962029144463401989770563877052068062920030859769840753740932203840473124617942744723427018910120879501695792695188247329130860291798226567889890631753553235318570086414639650522185259989869536557542664731703310801147287323552264103088026750613836485563499797123167209604011131796533795882025641148250224293452051864386604810602627199747464516583157192332220218641507017729112858164702614015749423251700380658758919367289123042273196748242870370019482954482213442277078913266088847067153855423814020893621397066771977541849018928878020512617591714457064324747738527630405664072509919284557282026672811881668293179215099387404159970795603011441632896065628406601725869081501360924978203706191230270416367756826293055346274510790107701719940743179968847371727803706008684629281564944139532711089793915157660653207361986980233716427178209317871496617283733209398494610969210400948443990984137730841080187178745659375197176348421703760957018549019225015524666366548608532548894620646624878198167479349660371232230279576371426303351708597011521825342979992471630082835961707575028382386956256166767892212564906138639155420727758488781795381919733585412641471750231739942528809065015786895690186095689801361362510064099104156543803578488985908939452041550975174735241398348539504618367726326781044052321874714117105357659758582708169538446881572649628168070636620722799432600632151126114791285704629310198639296564082062707762137941628622320411231832898611742488693777730645415130284222920597273008548930847487516965380286932054331086116049539731997911863451614092724467251757593453960043716401163768297838937255021904717956161094341772822916097585006630037273238091228576842353338310763804723771644352649287278703994900497781854229181367208101971967242055621008768873856502174762445765274669644278175920265558402757651267260448828167128134961387222321194334737421582369398881741536103922920258554908875200269738851399076007263405402370854750523408425252818612373418861567916849259384360250777276676636564889975205842563424422348050855211091333494444865297017590719596181910204848016235310461482448731174757859499039614101437221807631614650065257142276875419181172593887951496102046812838492833817484008442656407993858578065757409828271134763593545013765210364603166318073259968195164775486774269817914384786153661707529959093095814634976738486142668629423395681208008281824373025167822180249455458175883005514323363984771877351610629006009038794095282695813086033462213894725893013770136006367050002673379986419391020099485820700330205205157728974884008780104375060641251066946142340596699888468099418921987688180042791673608459683244254913567766082503862982976249343936290810305429606142551530893166497207670725756073479443339240410252129684442567238905166386600601531020808412945811291760837054891391729087753758810443049139912376041962004508375389563075061618389838510149023516463365373931922896197391280394117285359300850166128219641514156880411354036727666029940803567323471205887689532833006787149416205432412642522177149871981894512290793318790308925956739061464623347948977456834532380946594730621220973571892319208246638601603166102842415070140468761591564319562578940542297490534317939220387909348065738714753465009357694529908386145558887243512323177213030933839451031424110568324078752951385375561575108536294093104369559069424755531881266719960041994110559152616963107476634602005311231842671586495698643644549079125396321133636528156911503665052514236343275158756696093092664360065644315319614086863507028210178044701727014889308283027736033372882457209003753011665850469165193411710913029752872328223387332818266006428932736267492544957639915136911745194971489438821966027081468040673476153707899132844771459729627434544719968302394201480889528229103842335163967911909795851651517124060571322412985714040056766984836091201655698378664309655618808787582103981158301498804326741667356265847079349236692173452452243363831189733619112104066332931733313199792382721437098344089015534433353608171740679782077667111947434064681635493777913915822903420458200477751674980594468702490524661271377156119170629444968527137246319008173621747080377999707954277377759892533595143209667907396032494849205677162215110899989644256526891717744515784356853035828249357226183338399963488264014778544659798941428171105858087751210488300029830784720991313416838872335451866988131543590632071665767290050744637024402347482852276011746939966337326991601865072389787486156717070151740687716529753032216152533800935190690270171641517373174543950591793735312091876227562199061822411736959120079722579508606537462027970018568610861700768111818476200283111253721305476694251125761637847367007818659810531909279773026619973509784122715042258118324954966358530555305372417465352510170419291825343393466838609595000634712252539386554911050087292907546179854585423283271406456872687970255097293022070042269587509463672989261171437696843812912112086737660169101995343477703158628132394355180247635377412393359078929091773787528354492248593916322863828472579381931897039074387974448103918563958872217116400600524874588020552281203869982652751407316744147761898287028429540870842137944235976205647039046013323615450960793612465098656189572349294912923780760635740908729487962849501187266851085765853914276656807597188130867870499139937335333922554605803881788917079083941236472134161404734697230127205945717587940916570635568135634203783838451109798236273526129818510942474978618573818014656258230861859896858681299114464574558875867201032236490524608956583719197759958455985329667710692436988823778837503229101108416705763678437103801554865115424712193866684309316897815250821502494172173091890240726452320253654557558374005649424392036672648762525718842098280845044721902967676354453986573272791843321438644401579521611064048733218567016910014865546625214224874805506520672094671565350335249977964537898038588919693926638676848767932427278918895312112199845158915740660907893630546351440271492741537996865782602977533294908808222887054579635273167826570417259636740277302531737235835300511505157919666757118416764241736572078173264576374369013153830211894348003549667016964058826087962568112884859631257788495275057942123471080741748454986056944285804127560996996245166115636209180691394788909995240815650391071150559074678675137019687542828718758353685869394874940656139084064939035138354060156065262689823910190085920437306804717486569725285926266667537178600595278328097384002328441940788590093036225855350430537370574132288177238904788230821092372203993029530698554262525937842794959315185979102559671541727096392312133285700897492566134835118751422980246400336021463395425360295363021321406160229996827651341327214414849008405384875451710726503372071328078339791332063562643787556868511711949038560099455835766962861783422015445554401616410218853726265888080152197115424995470467279365269159120548063271373492477895522132542966126049084440974506396039969229154840936784625261259315938410731967256988185431287328533503739527121800204930499897242666311082292171589439791214367761548417740748768368886685200153251049427782259941043642144130446378746958899212534977822209011545076899086686609902417969910476787540426181845160135958066204102749497798436700453584134771468993856759716855336843087690615439534421502591763159951287680159476369743710935919827216077368845907513425694823385124762303388556017611194261190619146828902109610592611444599550816950497233109803968702086602016060151819794215295284455896815625168501438464651148451739800531427196011661563036295508907841523542762251104791920571194461749524609794995574098983719575000855407051556550581906775438299518229021830205290183546883984871046189237658343356852441454572692485922423128917509171512958855347271681102864809882982329184376540785598292399318880556804572748728168429865163218366402124534770287248580093799519043900297645096308555759643979368292735074409242561813493795979132682628076132344282517136636839367128380993885961012941868244586104716990605354364755912431327161010542809775673831483628062437059895366981478868953936210523404163247956596468908042453650716943481315499100975575546484968641524557072702882807283486749972762114596854528195817145527432107263519338146646112348452798609849578772967636545032898838424792055681551663520894829272531227418774222183554915470186516890892755016410066660264832884780588435488659948191840713331275376839243510573473783140543420457336892885171646889109875349198415138828566001703110452109860019295145999241321442722016554029597134847783020212244175303972267079908842650212303692254822477320230794189923843424018520633011955023297633779350847853086139584611076220084451279244069302290526902665027598040100072330800630080473691864458206600426598923501895875768451638821179953033219986978429092643896117994103844887798882252802078571333223365934177084589490454953228317086797577345282001482534946913060055263099788111993798217326282105899181364588256694106905631183507718549818240779103308603745230622521113424032030491932668635838273962340591401239177776615072241314139844123022925039478583995991526081552266774134762848566562236685449049645508988010195475493262246974587029758591964986204111108011682090929967352368789412810155206014330803994706513181050424208920355011868059482263416305254706877906828530022713983954517980381642161645709494461607503934882170788546994669120561223541259883955170457096145849192602696056330589951537066410841943111240621423545322395622051588656522516702482075173821615001319825337561177926850105212006995685894034569622845958981862732892813033723800410274401836376989037198224632948765316149011797451092897611216926202313413683782930647563023853436043358028593163363246459063761741895644295002196632213472062652388052507326440691014656825627109232368953171590632422824584310428941875168615908517394600502512118084431197517245042051237259780481996791592012572368560310933414335866870458611300298702637169895851812061028611902113942943232225478881254499195694119222144691419858069711573087772993366837085401278607366928460523130290659557517164570836077078655867994620878104697183411214581382297405829488747693004331908252894061020853789321638321133986654719863949827117662066599316408815763074037661528316627308210596258302762890360867283803682232328553405725388854957364505757272430503444986561953355512469993926610754141397893780502944316606937880883271024243580519917441748465729413682432375591018014748204330003674275858666889100541532484092190381024005494119958406678071817997434369217061810060777621716042892440428678800005695452664121760755437200742646448714655184154528624054389832738874579733020298811538641081857289086713965140432720548361421640796619544779669234550857905701594408661937072757167848430692648290752634377714273375968034057806515098134863984936967054242937822306679537119389979365662928252812568281772982247506913030415690393845672353489357467903757711062609174159867882402520452752833339231024952841451625615964864664407094559648934688709205401360653664662940546833162403446499240160382011976107402827475970738105600291556115213814898226769416226518639517673938920587357961856623411747191737910704852925074843259082270450465912112130986115778010624570501374362924740419102962423667960869209355818734645377371216927053435934148154048546682037211424838015188813661368623473439488299540855733277984632543255279778861508739570040778512157240568779171235067079980435261092331573271888039963606745062625720712781473021220399632822427351942242571662210777765188997692568131091021232296450727823065803422342321389538953770665958730984143975446032655228611600824442220340782653231536970414329936938596068986287113123366931340891979486915463140936060138582757115340428674920750913461804265134934592338517408327398528478580897810448495031928009657171830239327061660900278905467478139081240284521097863021131340503499038216780514230145880963906356151153570309746156859010562136519383725113029319429244076512234183148981080237017367572175237084469247427277369123598816843320928380965739002720446511504707096548689538075130286533227543178285585046688331666154164464537440679120826111596933697152383081354040583931619113569446420436506934865517559545807272369706380828110248844996499500341604165425690942642234149677731209639111070517891447483104612850694300441325037597897650579006874175079456985227088138043618347061946031162441867077842419502720904968829580820531998626106518565417281711435243067473204075417493718170783479031778617234685699292731500298112195642059746156353664262750701826591303542671720372318263930636689519305508405604890634963158482939090593736422745644205115277816912717099027595331597942281522246896862289509529765059690413150518973867126183446182218665126881785656240619247576423675699410047062169562477681252418528205415837164283986893228499063170787487746694037987247607585221521023381156669210323737535232291546645366353369809066012449336214242447819919491122557367138865914524926862855254616451681114732361724822467817332663134936758937551111896127433504490610808091238502027881728442829081795985865374851129928853262330647464990187397097606774891716752827526756397662663434667017138444805881511465774492081464451809924598338360521625972679448773742742862051812122504146816596414383832636457028462334085646607059667212175095353991477428730911562256507734302612506740766979268661121411500912426009549607573836179469674570494079777955647878808051087731610113959868891931619935610569414448163910783146814936298709277135721629382459186996925001542253660051421083735274850697215332178972355526756964378620818080344431369643730769318423088071870795881606536463191597313343128156976181441058552778970228519604437650718537192081415076122167676623948527855854468276493803898345150860653739909955610962066353256996850371624335006445426570807642363009069958732621202915644085352483119691261085474297374793677973500329323759922587359984565244431895034084510159030476283281599438418068899226812293247337535250543872577319352643015335510295947459516081768939215896857351428386923053190838996772438228166681859298131412789740345954544838345024328388330476715545638741692253526699679517436865565341177805988830079582025265477784973044662474620940892843751118675825175922160886746481009663820116996044111591056362247221769989597413993628454106472867354808278549407719243082485731810054203059983523566247753510109445163631790295657076181034482534213789476209491303546613509914387448461232289868324025652169618097521747630209264152739825112874567854681024037403939523732032425662679581180623698632134374843816772955830626941180299850149452276881026414209748924892727395634987989597862528045788219254690178889582185201955904128550176715249872579815396608822167141893219419966553302722126093437637807288004748810083437936946930284387868766465764274555576983426625403556175747155174950158626742982210214749488058171820775791870172352149935649154781710142090420584186379189231013955776990206054571766177873736940827759006685772832160326072140180577807235552539495919918610267840086935678591967934264308473807132353804699729159639008171656734201195617519283561873505220663544583812902622889094247785229913711993509214576323772893159554363011980387607978118973614745570344987088809053702572195021784502453867225247215668632674761553517106223866940080784459548622615992832105705502307892103207259205434674340271911440623795789520008445434302364391957274350095433115467050401664387616512640317009978374601259931415022729015971881781815830914889110957613717662743908590992231419342849420820057540449207243481271381908680674560945906195960500671708475906653921885178825051352361010073313697617023525590312302355016240220055231038780413460875041229380014851708397962758836552287651010231857153966260592710066067293659693406033830717771799969212961680592869656633224725024520211256391784450034057514086854214554511761124122357570365156895869615865507355155207734133716441356985728039378298991719618627310488818812711214048198773996514062925887394356717007828207820783760863324712162452929902452193998396264641058786898985069144488786435239739705345523841529567110550997731491665616216693050449964698674419094831829068336111874922301629601251939320930275192019839253137116121222638479299825002518830127431182082369006588086845834790540873606866162768718281900901925714434353792866557530780631915374916238119301202543616777397768122943340409902540968280473066410706509965727068381063564445464952926388637799696447841162665298353963964440755899256694452131328153016137090802741069505459669354312796808712841670629530999482359717576159552318355720349733892724926156517792975386440299585678030872591120977493705756201348887403496633757439524977757745012143792839665667173992853124655304222170596381087746658097245192305378586843199280505105756695906994234634487743384822186779097332114702345107028976618326420871254429737069830648704164363434817625349512337716011512659856604828973868885866125534356769773399818155249721968373974536683519112284618498427243314188435224857470765205024208570018623370707313345195182047138932185928506067833407025953424339560451394067265240924291961818367156715686681517133698212929406682030425292098219880800323516386602219390186386282228487194910853625599705909148413877381602169183320752783203245328983252396997114956782851689542922883637165231023523025452236181606183828194382988350817609015643759462558312363267535053834632211687959415449234941601871673491081709497219052645718421029454986997301932107236311208277262978814396414037755255176170877926369257215637369740169538529295195362463951467813946052524223035856458008664642704677449434642527533475292286305891809470724090633290747880044314465584710565823447632815255823807688638879850472597580076980117036513089253032557971614253805501445949877120286751177254899007950375477340812756587050016360764715170562858289211908328036128400931326808041339387768726490958146712992303538519392010097702202152851130405419534626683582048835039780266863830072368047141291673151865589147514324544513820125347149470649630950005101382940616316371759623901977204135659379646719375853225059372228831944316338197056195070655040237039508186685632235287891205908025730054277943624949189889773523077249560005440104680491289733643846856356842873636359226923817997339506564236617543437268119127184798100757811206190590793503875727204359626562273509802917252624959334338946993282734290443387456871908713272384660217178583932179202358788711633492961445335395540017476169340751809799238694007729436478601314006890979270695480519478243602249815330647462401795114155089465776612654035473506197457928716399472211874386282696872064344318099596934262435911421055106860829129531095300461340103115965405950838219233162338983160139955737760707595948145448481912805448555457656798049385544349048760017127778403495602641130172028826897967496570088580615153035741760286195522016945643701635524938134481826952228991316096097774821130109290477464288976885694406625082217903934644921027746869642036966501914561846836294281474721399484810622948430659267131807450327418699399748593277247269103074068910196062668281988275255026390209536493897780062197319236513519891865713291325551443369881049189517350602474621985299222517937217063474916020416815638717330654965292461902472900577348646738960885744824232254082805633373311098124249854085652463038606399725432461291008783929582762136731907548181711530952888789873124556908282953882394394769338102123227252115059676766713195400120286945648119418228556201476735403984842564470231462195305286834957423056194449023736802416572089416585490469890477862689030852851100007580275917631800124498220196034984026089330557822439326618097958705730939079364371063260958915021332140532507720843335253990440392844457409711206815012711199820678625962324178234626978598835408258263946749340429980965600293183394701682973796369273936314401686231342184791430361529416234626489277524632493467341129510695557553688304277609765235073900724769339093576226262475248830888544760333870039226995381063077896882137122058463034036525126202114763186052736238671778838776849325396769162766426290726100759975132351709923808900303641347210758901848185559583991227778356821811392225216126136696368583729622435517080118363521376688201293207855693489338402230044321799692449810673204669190777394066058675300166731619591180198843293451821640890337780974749137847584140185399171477187448831516085652984008909955999575805617111043529130369332497210705806265311088784537811531976225801342516205524595190836755627485171767685252253323990120852202595137002415953326049624737445691929226840737496349951191500545207231956887960394109012718803927606346237232346910185512995769418311104997621881325572799629528672915445157687638541340335578843944409372125498330619074360721827407715760524954649354611658733082394927738335667570307158224205839406265227251297058194764722421711922853307268976886876378551987675743522991663727743639501290076533517388892291013411764124114794436737879610852191219015949011775710282989095677338444785076695191453992804589444520394671533800151905216347588744965890712497929873317765297872838881532745672036323841656922750521393830853529694199202920327493631546346150132079826460241534417221392281157675202297806505984959404136318241550487864479591428486912194907930428692283369373793141716783834267631559281798971951384214588480489947497263524030097041634298107878804540010072655476699399398058373940250795663318956627818466008470856033901279681477312341124015368249335946803585027560647423200384866227659392573270558826392970347793244491371877493655468710057337195105326837493940471164897559058427174321123885998924301729046061107882439489873075124040937351410292806449702666174279082548453927250237332042163394565183153292392197870988824977784735879811960926114894978401546706614726536210487202320887224998977863346908283783343095092154487710118269593435785520054056534550934187370345938683174416114462915811950893474186435834236035931681729375161728247329528489615276967647996161322734165566450114779476225453024412845350579778320422135451865437203584043365739145541317357787769224564812889638330948580753941965389592998110849834053835096551627945114143076928388040411150174508921341156806855771417156892238273993289191264550490437634836622536835479440016813733216908098068373606483533221092412512059614575260164395770109507271137892814000991171411150688533404924376055646976802237563800498236196174805488266195662667577366087897259755297219959894908322347461470751096141737575467810656813976952891003482813671064491250974626305809311539236871273614771845315702119165664963738674933948092773824964628286437227041191877685099322566434303097627584690960298063565993038730945905538984302942324385389332145909324484137095705373886154949467871598711418737556056817676417092248955244670092407956024990596882174041078912563866144081366521714448319730098610281435388115915757678871252678328576382205710277794375314463189788022693052381206048568229476050250720670819346076185669824695507105959763150872936757450943682499976048129464508523794011979326291944775593446023900061975595653530615987892224108686228739917545279959202194992392318587335855534562026624964047281801746991051347888226243015243239342592573826442827530296685921613130956408570462350410646898010176723954912960481168462592854132082005173056296712566601348392936261544472713750804552092509002243326303967261343471222888895626124583765695491114552906744215969532238651696009510448300661738790335220535846526965606235148933846026742536319297792463254732937596642933759614499921314494643489402941959825066390742037112801884085174038907778524880279915650243660800956874819336255834345977904838341567339825986227264283561028367957998683545999445990217941333111908532931708815631992861102678658146911487833522732176484815085619592508466479616633392558727152374147113406757862058266059367591647800830453029977579340964485296826637673051342059232263438884598560572730381157200088482533549076251627468817685749838069770137460129391655414672402349955591643373029819410421059283025761801608548469097661075983582401287702280707711826777484526220001683093667993320429169581864461185843044874678002160023489457505024299145217027131542050640595719845835750077031683936764646735849917044938203071328294966649616203722444076931612335850106240840361081414096466301856023793293186246150010489965946623594321928829284505737535517148093742735329432598129054461323186384753488467428251502438889952751209420547552469868020826226828291050787795669062254413848228916751390333809689455712837152544276351283597353423767951205177351997754375085447245105948418220139958092631335358083827433407361841768536556467431248836076499269559032107068279645604165115562572109153695857702873327980974707164771112143775344674906153395197193301313006304702638357541753823128396023994150022537218704862056234083654613610798193411862667708447589113940458733381742391347073126295923678290569715104484967805574913983326825142105814361000405795802048591639268242576727343582627589063083257869934206738832525116214097966301620099935956396535051413940970803401438942133803116338360290868177020010356267968950358147589464859352730622148428542539095341731628862568448594080852626375542376522626570893047754268941665794366736363965850236976096380235494313857523387474854066314101050048340593057535033423866737722302728054715844127631531511541329911415724680086085278894583256219937214294314955653693811195957302307956854111686409825911091475656291173056654383824665304334622758782417969355178785615392571957759419901978077443588735517344304515882142861602387866912170958498361763219695186026113146734969302702656451707739213996952713104282593113194156319911410868835101454109085757231408282742241403519426608751416696443707764917993090446995095270003999255603504266804242997614815703097637461448303521215273878942281962635248865976533358551045071201159821026035115796255330974829430821177606414823951813393120723436601060527066078374432294706258214973032867810047505767777074580074590436035753553334621840767582884307427953035632068292689650912364911431747751907275229548538347804436668560233291813864835536352026225438777481584931782253447794562539942586820900205514605627584920369964819444191678772206639194869807850835129673973477645873088371837132613004274867785178644929729866052476763392707941961743697282949451411258567944945158816768526503839996567266947617796787606781364717596393136728898136822136521783995030308761017761256568952245006902177978811284243492441295726803834799507380858591023236087157304461657779249616098891089752281805876678767132093523916254369588418308748787760357377959794118815277081708394567659968462716818736988649946369968747334382782089888613232913426116824220904555604123244121590330266173585309992472532889227638540873789225147791556461401625726246195547562496024964637501559981019763613040540412567760327272537480181132044480007262555627345266401405913592072204107009454822453789557329695678900582504984143461544770783628859290904902790583771847206073169611183867142021854334041343778209092605558549533738542720293344997691728658491377942914690968640156203579928734186504013076923157547709007609510554950571664108559600847169924842755906366806427148219912944484879565762213757256516636547525107006529045068226756429143984686042524041642510845253613620148564817935166143569049150279339330757524709126606777163151170829109541465357636625089048662554962316084574568530567987993211258821269129758915419119725380908860880591036140221015729098616754943484685080709667331006769077921037555160225930107619097798584878210164172851847134481205402246828777231190179917245457038900356784066030469075029961693649927824633696173761077230294192163889552122944389349368146225471845069657205440521650701963410812038528729598298255895102570649928842488315049601822248603966880018466398053519128818750536683291724770953414541064593604106996978643646261843078467123921352517005026853913235533100507901297131521835425623936271186765867801205908536825346748096857143419680844610260762927630177773356296991743424907218255465967155743146506839853030038514450146164393531735936632195248749639217428570117675423270576445925813449625014664218445399647670120204536004009358621223081938621944230014939055461595916400306987479234401054305769809226395633791608838302413422844528200315407017541864336946784263641218722844511453234998487991518667767560915583379148050313004822350882467158649516646091690386025555046272112768790025423768255792446033081537457878695675390865734899696144992815206928581408920205209418183616671144839133151732631629175441869189580637969276150227344797966784582978932882703916918530584569665965297131968277367410442825577055156377609238162921476834909566333758749845260932454594312098597056600738233842173141785017229996882111114856888334033438378575684970743110752073995570558524561214551427200710329449129319348412289952281458411240147487684921718977853818260342542683152369566656581403153161548384039824495260555198660250583152409414974293839511648902703138037120041175881755889860025312758617543702858943535510962891221489079375103159503867822395279515010789704487083249252216573583986000009153781270968489404064397553571668814346990426770263903817225461764468604593843891612716931933585116258622493859431229137550593788010468893132389600156251300378780693819654080056596117783579691451999955869649380031255503559899763066435820179770018860869028055419069765465395116766080751447845728300584039008511541844328024567048302104939780516574553678198057998473690036220190302451043907376626135071664253225976625761374163382145391195739033612504272483225434951086777055100899008181868062405775135473133439982379238253504455092117400583953244347194247446503602689859168118090770326685404301620440061104035227798379442899369727554546218630251097710289897128436880131039983211759161525988868464409064319314957947192684348106408161879852458938547589848406801093167092502545474939524840407925251197878011929883980178113501828236522011882180024775416843147349898015948593253987447707031352778911958588095828263168588685303872163578263003128062904087741791811351803417767954017994232307022944217475130343139208365125420778262810688942857067228002914052569250011145772901723653143494586150898599606827972034449834553313925109718361880501814095769735598911377105120337932028444082353903698186964785234610950687573110047362850083084489044155284930975508729536469074460222271143735170857843981449064016066819903177444402066415349401999470664988715203566959655676779878126658842519795628178384372207802047393213313202801657950131506534115138342971813326731817025918493032632457948671843278430608377887861708970434875302602620139921760237587619922287074315236534686966263086893915790360676646700642703194164715788034657308618881268404844401362129315965807793154715242071108258758469684584087907382886458346968776536695922069628548521348473384421949540277835886680628515478366438026738790413897055965751891773619104736164145503684777462282296984832926662409548859418063552757537512892161175516718072341566817174644023073901685421626441825966136680475387202344126180932572841241834437688303798244184770506693321961886758127615121911771662488792725431254469020741392719004621711477453579785796348599197686313159523681771368222846930354384061972060761870435152791392279702581271734577818583647085429813785602198923365548745968028603379895288619367382473399040093408460306162351371364704760732423408644543440877077664594884602508234037747665518841028747558822348943171782495519060929925001028408966657481483554386103575717095558824097655970727187178207685895819715326663086106564966346185592261225775548490440175459829931406027757305302147765026416435068026892230647749756186300435489835268172500828104344042997915917697814868414563499403753087262372008558168274560147411447994666995724731717924388992867305283116218391318198371274066749044549005090989964069027577280331361141151141569667187422329093952643795386572877694338069784211283165661136029825861279709256924224292208387109537964695950009400784387542368683985766899246583214777562420170929984851072288453198300660345756441342304150260193520243403496833513377039756244372221774937460665418937277002268554000654382666239537630188802549412012163058322064842189547794922126960592861266828123420295136451503665686957853235466551976312679158379085955673474658677708065616234697172933239224227237435395736390680110326522616954512545316749226329145996634946565342410121085700479093508797561453318919185385186921234456075316496442799589180104778783518157872262648001247041983070399832700182740288988686527549715956727973687561394148909822819679777244224537506707830352015111614349646853329371947407285996044593667885612066324573775347725560827312218952218767111552488470217642362091423098577581298666726375589857022396755785531550727623868248098819739685241681715952342542263722593655107414709856289573129102715731448252431181782973580882805051479732359685002865951555439575800281460937617843985304095048974726115753910372267573740183604897302246232189607221146015532782333087237596338821249088193870870674003386646018015570419376057337222331067941454477416562052514244857020697420087893901178453718195174899318891252121532982342799410668871666724283750708335012424866749797372336845325001427722042366021694596805544472593478951829091478274580654885617997468159629555692781146507326917748195958988554442792544818734467972228119795854608323277794169126241124412365406823035973154214502805979775977576839153509479146771678617967786486635163636286343266440273369452174863225586199397929886624988179369360254485318970205308292942040753780825085871011942630957992856430639219126926754504913286731029745369210498284567380260597823538680719125177121922878331240715796489668417937693027842987074755136668344281998115980076848842972113683107882459661898102753862429334714276859788488726107028396175673686549809695177267011679612091318832841232498466126387524814472578329878438799814454854958916531406471325050263589971214406666158287124973382217841473289627773442586545990764354073793821075523918251172161953832494676386582804473936854025085501579614589538536403042219552847982296950195725511807989120593304913745710710930902007657633252429081781473068425016928685533003785775876464707404377063737442604031260303960308624651404625893604031674238923201975089398010804550495967039741688346075530126550499165396087672874742452119015942987988725622737485649933022462858560482394219863725004384521184500938301481678914380467134563563531294489073055441034998101529859967773967719215140707719651802826710598290476845119812194101927971900695206379783979023110533881386289182026839817492604886600229492797995688431078029003991631876514908994526372744871995221478046752696563704184700696790318167769685920727183427849294089598734145143177060490511867301517022955984959307888321854221444359835202334061301374636971622628187744613901782875973349182912429777655475907813426463522284212492523365529032442780202398436255767002797194949217246764907839122503680054231358001268740089726424926543929756270720823679141348227968702668062575877509879622157487340066930649925286507117687052359175926753945602014766433496234485672861123600635092660139975195356406050238121764769407333315099325468959510840666215513210729713028005932513468492286098881071598694620370083806392664724350709774208675993778743934596999360678728625553241909379317692347297600305427059236688431604818537697802130991393756435722695735161455301855526997239478728891762459444232119043874834448226871107593536889403403639068418837948062735401142360482356488359827871006817088276987804296225058817290529934394433717883271971000170394230698825986864330532612460085990571254412144677713989298498814804405484983788003577938371517907368117722614479126619373811373322982432123889419686419819362905975702447866899419074151053245551302272400195648583736462027861818684656447286821117979504684816510671519672786314617072408649528318672368195767214174011428591728234828087982870575659315068912218530660828286609296812084942136252686650059660276158420534422753081707382510182032883652602367161200709578235629195513936956730047118474297400080257315473249855528944812275494816434416722132763055121732181498322113154853857684170158042454382391460599782572601430949391984903892835530434624007788704254825805935368761377622588794743299365508302068504005755083778564819155647884119961712955811398987302561116295879244911081159545807850692101714963863123857845300160753749627940658088978707224530035817756537871257807849151456941236085708056266709421914732818686352155086109020641315885315728499325397803031142936967235668134011190389739984367135782676039053839600287042653856393912246078366126815107970331263954137916928549236121435335583623293324744413428205039460596932060808578415607844461240137933020150241139333100089889285617090287963764403883649267330750305153600697844886466533253063284390237035841260247613185832323157438002963843484755627534173405132220650179487133865293012852853516240502614306280076534010691938343842444830005883006519637784169427426311200490949031331890698109865371789637784002752460896983871145145338442258231522356700794798465236859425818149996509489958192423003753473502074510640362426615960356019285823022331686487549087845904882135666989010884790788542346839419347726877086148557054396681866296329042869742440634170809113463096394527320274800245946475846251631111931436939434733069556646632248825811223131497155966401441495703562855044585167446121437003813116937159615334891026000594971470445112539541086176208117669620712800207063938570436362754995429891593718170214628581668339702459223633045931063433808052889976287629523759726207001727154211402747832819020053978154996463500927227827089593337904032313487896679584787640765999466775992379341176586379185825307877087469317295402644433098900566134095466468032014516248579562286873088873999945838162618608772209687151338941884833408301837521187439471076692883369992438620449684378907656249271711963675467618766948279865642039323933547556880344429937520654750628169325926339109401073157255501015365792765524471140923177881720372328835142343319274662102553166813748426443873827344318480371655087511887428795976304922119527478096251108849956984698976884718686284171415645513620936699978460842912726507678659201015269459546036455628641587661283394345456729188070716800592488722893361083314259449583024992828307670057037392857814642037138835006111599723322413658387048166365303016772476024513463666997122858897745489521579699906810466084234631800863492747064120706880918157501794214325594063665818737750647998082799902022435693171505249944166962872163113807546222996025511074926896648603426351208979435070382670265347404181629783332819269979901671513445209176377902948734128581967678253727485517238328723432620574469879323086805807928714920788879407751341652592509842769487517777227291802137463952494100986736208714761498610113022598299123612472457416706151420545158610134497245216921535235912029415371027836294730705940067242053767377284962041327045570615741153872534699849477369212201169618863592492041828044136558258292780578529600422017683872908499196191111553324416540084004799241787773412818114590883550984403444022769416009220820939559012624231295141468551633762664936431590870340576057359767495909794420488969479064155576205969439981996143029613389604268150424483827216017005091257041385600469086613459775204203036888108244012849955724490117587736150722315530574809651493487487131015252487038481513734133581893634069309828315467113282221849337379518921846669114535749616238735157708180067280772549033552900554383811512240181228891945959226542154881238430453809788621320886715670240042513795370800124940281579754493516180938404626265171953138140207979192759239514887985629826915240014569334461999821153610763722671171203427344757464329720503286322256179116283718008302132596299370465459139926374123008462432228267064390232277140069206185308327419996610594695594524101658178063517253595946658065974729669601427369183750119263926689601300113555624559611470631951082925052120718301549672832771551006201736174141665402750032056953924790027790026409782119594324377848085795346602618827993656675256854941789103707365285244523032910676160664973956659120100576898185721046055206049245136121033939964737553797228202739090927781267333266387320798054590420554318988408916612463711651978932776241966068374400961397820484333625225417372552865929795666424265187178341675227336569457526898195817184784109343697397361674826439536465460302589475098664743001034522402946097484845127663021289863672512032838103695270358852655598468064475836687303035563178816473503700978406011720582932117280360357693416581753958101075393137647821445925002896452088079405135012605005183199557672658832698839668256804383279804650606949407918864888447668339519417491482911060315395115763828725173758122497841763681311553156547297725656139381274140980880571197473650717628099853178024918899758883302336977840600855388259545532378264452697021144457137475764050546833989683700668958532397265186802108599380866963712117932684468757799905819173497077431564815114879134777527667134211808976265718070941993922560559303564866425986019483978107842086812480214034362347224134609451204021369207990508610777951927213302238917042082301529657554561440250177800832096443178973064664766368421962285815272074293677105691627495728241276538666251180442445717572070237902562011587033994022788407296886978295371138045746993278685100273030570832364557003373922024170696024047846467424057005110138183392342508740652688249751315468482698217409404053965744301063911678002455130168281896704672654016014387846715263430614278211406051583650057825823406687262856686640935625119547340390968425799240519608682195172832882450259411371314412266001531599296631166035945817610578201894686092713959094003781480581647605154131446521064732817936753903458619436834352950350557325634015536830983060025011530353124145571693915174407685415582165882945655937502129085510430682994020003813707224933930812360380365654013279177193337311312608680071323869157088967641843039526223851386165064393926791191946360375890748313269453482677564643724063254454150793854056161181393061655591144731386743343671336737338313571837838006237682929068043235560841693531485795661872208258030670379049866126000843973888645854593557101513892794216572668782389599102370796241275178503671657112015749265496258106902384490234429736212685337346343391318146273694663383943980350624438821029753580585947813456131736241236041204386716969289557991275434789382886502384865189197597286394232725933096010960178749392190518712688287091511593577513013817013729782585810819239170587708813783147435907318775244393105876460763306386027489918364469450544721113053947610869190662797392234778511881719819454763521383130742131370727143554862893387060103379308074731222016536602839006258006411817215492272430848013046990998026529314041636028237575325712965651296259743287946313471967567591424077169701288792123702214006652981286426339207740043206572175860995232984707040061451525214974753817310491901999748772698962346940436608958706434842837993524213682355309687738899549368712407631053931847132213518336132838396163497368379933524007449335105887183797623518660903198127804249932451593543122661615662032823404346975329590488261732208102109665815354246070598597145022434934127371212657743377170778763135136310720170824977292599989423168278190170982504914655599549293070809809152674829613449327868290746437234334905493933287412656949439312890400713020280340590511832144978866521720589567912851000578855903157247006614267640407125534757819135467644596142951312141423025717833827558091991424212958360553222934920971018688525450640687505835247577532483410557572228554070430600865945609128354335060717014137610441845272898918033800755317154747895764816037612890645838035452034263924195747546065159043810944440481096965440388485460023414008575772794624941543445943935679647645163098669024880751410674959692172772430694198966174856360384640575876199191310188370550533988751460332571291773194445168219541962121048954486654001249245903507981480680414730331133413457376405829825840568821463996097200899632920326682559073828898949507853148129469765864621033210056293933778458552699180458632624972574105524531411847750245593759687358291158014366112784214737349939742237559541437538732194416647077502240720700494341036770723146602711556475176213332594149553770662733097318349618249332003087010222386847715364482466680496030096399183920928924992062783162637423892986409134119487052628332009219321996569611239476933117381165859913655331796541688285582984571733736188859908258045696163449296718088532129412478952114419835619028419028727402496519268394744801984188014808275071911358315123490689702181165762189489148389802690292095708149201997341278338782274812548349953416703873570308817894891837851182576722992706040144174097820095468583321077830743348190233366700909904628098422475356109884621992591853849321454401930399890060882725699307287138950695367401633336280192107411965042412765946057933515122037385908989665828960846268527027326051823996867040038957970309115523708827082191648232734288035875048440646642262427434720635717301313994565173017077933634654806658158957780942402102667800141225341702541021792697072559786953488415949999487196233250492833256376298040050681069321383335009176848745050124255342144374831501406589673857155584225288678219485143993486637262550620892909067740572105575474506946274593268187627168535286696579218344407930098394549999632109317130768528382025766829074518619621007055249556814968118659911845247683369960652844366566792063192993545766146543164939507746335541316600220387333145679856520316346097154397578050999937572597246015549797922230013139712209969112409027704494725141280375541896810405838739846546100064937838423061247071418489550147942175788764052890180242609499353530691064438541590006359621678310913419387510678767053340549394823199596900498288359547654199190696620251814540454850782661785681245900066308600365213898220906101509388667633992512672648860290597632085693611342937854915245029171906585776698688561388565988282121881328178059550643803971860073720660354114812655002314507604139565625831905934403076088620250740582394140782421960219791105572024727765496725115366064816305216695539081052863176792597172182451939003335292417134297214449967068113355082964885607036658883223540033774332995516734893831909507279381952555168018138229861454906679703841871485021608082501680403655355786313378952206121138718636119505316439935366977955733374671504826368534880032640090066459252770338154389915440132782197248087728805795584292795476446155879142157380936240542930286879658674876342518720516617983392064226528629126159437415924183319803763543336177925071027096672923388974439874681107969646934156967932536916500095821274858910191175076311722710879087198798460404767019826481954116104235653146921221401636588203185698384258595731197169280219258960431589416297832755193466408029505271974227878526835603159832886873746427564430267932487471016472614015670162643786906525387685432393665301178097372684597132706010190072031019195664812803145185659973825089433719906450917633706029258443299716066962344455919872425405219108720638939101669392205116207145344611188890755646453311917621644849940895810524655896181909940270572584919559524829024242754483741185533472533114648495231769362649064488941152800810929587971511144340153013262642400960232321827221821581753754650302813093319001993455086251570955209003941470474946531055013793843092326487261270430700267597004553619204684995681285498023562668817622172862363471410631959438580288652847671830441595307803218130673513194521100158533884385532573744073744952676865944668794720818851608605679952901601665515735004627272833662456058750409163561515564249321539941144133085407214699920217348659033839436056932041119503396008952614105584732607905401177861174008296571034227136293237010054225180347685733740113995541515760312390713135136416071510707019568570842834919275582607838768739646242864277930360799049075792052815044896340449340165060509735258450823490326265510406091440879985295865461664902132090313063262168958009062590524467005487395756800004205486736089216940728436581581436591995395753713212345784119659991230597310285017394751146317028269684637347827665600838530689973411458739546223417678947287237085455924283440012510581470815830662484081536460170850520327469931351440647433173967734517346269211419383967849321365974425877316358646571612855904151116613304244382093957591261003939824506347985411646412883007279358345717720951159774405950687776363283969638499442513918831174098704870132594703519086837870060817470354834104131521810862158590857668990133544821092286847623402311228624882492385894268978742376677849612045057019087478028312666889155299137256444688545961493768774849232310954315643611027688833964518883249826509840241123231291755681830495463696437136434736217511394317292010865106450009845384279181243271909507846311959623881913539868856596745974237100514625552392868872866009536253512819603096213403914009379966201123357927702154524916910372685891646677946664227278728099865667485980946341523760645793363348179276844999025464287650037653470899264186135776926289950897429818551672837964293038336492930526803557765952730312072515696656075067572682559040315902638552814414952544075351750069304273054850526254267595723496936493215945080341385192251672529799126512235471074713448722869430132297524324933546819976838624234355698557229517224619191462357726525504399506299839604319027732988832416661432288856560706017809942695981284197282447655386607029254271048635788086016286694816881308213738929031757609353676323255338019398024387473519926735850722060546989684680230798890351260508758955033532863515276462272036037415412025325684912155824376331639792787748882464493195184878300717676220574119367637779324588747652954493859899444809980186319087648893075255765960297257939921530735594171214477158883166477204353474762471246047522420387684014206888686767238303105718285676643658399968257522416154965139977408599887264986122728671582517004369035380472952610047125397567008683679644697306116317429372233636537062553798287619876224992231880180520768963910950900748795265402222551739781018109876297436984663789618225199767745299159176345157747249072417126023868457009231092066817831759859674069539424880005553280790246449949472851917083419008945549094941771249630104795818920435906250127358387918411642287011595652762083763148681424717269119467192096498201212917777417142343075881319163439197499337747852081919226674016456505813086593742135032984658656084123804397341291515330772587041272688907690982513640520832826856144639130416462245714754095202153423988237528177305050229466859348017938186915412741991789178772539371731004353117215734716858422710835988675194246295697847601466692507241001837890716609215415174608664680715205494469740033867962072842690218983622488476962609283035313193021420987747327760320265628435748227474569558884122023556614934238982267371627961780360870437509049809839932886004842548314906232452668662017422509281191901143992092608518373675125171627975326450042894264048867580880302634899501112437147389545874047796015163829044872268786758680413503003691288277987528678468987415204949864107598514519390546725744449975988859250114746744090674586547997312503485024465827939390054089813870221628578310994216534153469646827605199583158834022607310465346449541221088066768914695146974094457836447522949570421785369532025746106731044729604363040730079031767524871605239530983978931309710326102775026836078154604500552804815533587435801163279712154982435970228586343037581095334481091182411523844868683484912428766511087916825437423739238997540643672788892258039012047295195293717637002325389641562170180331436566201123662906517989370450465516430563174930641999992934622092351929215228842750581001283059175820136072339553015221070048855195838414685332274495779899766010508174254484376053461658419783215256052082761781038432979492256265312121576944761060617499521957633522593023782705882334663767817989804864961304737167890894019998060428301605775513926006697257628466606016369459099163270323972695302715556603454310749203577471222238814267563616337288127346100417709517696195415149271525252855030958903593006162105723956601803618741578609439356085902552707628525529419002540489717215599835199903070629227186897710177244514906351288200558194831308035674648689724650421005860418734993512153514310822089575196613703661911070135295903517034700194782975826100224475205449745614552430277631342640034463097407578698818838770670963194195663627033275184282015422653794197767556635205221346697680725178419654129294821275628962946843111825379714572979995728227923883181266532186714496029926084955628298648946037611366003510421984652688044522022756604948264072938331443705181680802630672892129197859961314743654909407495335753986052791470995516338628377996778007003217591178237721812519453671560640281611550572990148859870526323910947282392529941070242485630776686086910153587603369207220957491861850821509820326176370143806273469046419169391676120137566542027876606251761707111397312093994207825861093070517696316898116977857187445906436727653732491124417879992911154723264053981805720094292953304393275436944469051142196966264703232937414579092979340204824287559181305153051729748323024244423291387910112963316651182394537261596908541544967556529994915405694752200321335851427034368614734758505536942811054263963002949001683746471249988256509729657203342956201250436260005832628869935283473331006591062055809372130363051504657577243616418069575387566358345168307377115763775131012701776353984091425951005086211967606756473925532474464163348037571859610626025325361224963562906680825045123280331250679314959869229044965877599924163072385799942717103821664007766930610873283777154679392995473773182586211520514341038011070747642906898081270405367946777147261773472593955908036939210752257412607538430489158503482425277632263072631146419623310963403150434342658272376710438894038248989502669185322362581110971702954208528286002875059905364193586740239250769123868991903154860142195712281955961177136452626508147162797211216867366948335372319310817773588292216433162325761784487366095289863358368547469057724787385715045739443254977956036611179014876938909747949637726123758283951243068483392899645851559883776412888271475832312140887405756193618853721367835902734754578391688875394857645536495843826861748456033794470469839673181320875045381778381186907406402021157095413885888616414363001462574616958956216773078917072131202784357797656010268079745236258787891657792282386126279178890615068803280735868581795320149117805550518813813973122692930962020250266081586769950179322066409839991588503673310448644521708223480075532322410053904249708576147976780555773390861679840564781672686725868714768333830835875445570471571885298146911870360012054171729691021181583626529667066156599074405148963530777673412709368271632645202344387355459663962381492124635819315457839406116325251588187605631882002341489986388281539065898962704164595206700117690232732139219195141967970956520166810775985780751391071955512099510636675115981885055078296929821461324306489033637745989790122914427304430140645628430814147601182911412095086964871457922602210482841014479869241112442772828916346450126077438838188686058372069490922918953939048186121324262405191202605365846331051191725734330047583088952657086337300380586301006977447295218076293868920525224661336734804075870159764456550510918903222918093705517484808953678202225239488532727385656239441761749254173584559435416522143394832012946899748322998999628409105491061083966713875572309223951910090561822365543091689357751074939186223586382471407912815068686858317488281316333826135800706351451647053568836769486096061333333295620798811492433459139988074847691748151402906820884085953784504603435869808197156210486962686593808569536484533143791631375733614855120076113966322184986295535943633576966446681114532180685544959335169834593981911082541411744246764886475139967417438349450123200528470964111875443899563222837169633728638043649005626148317201223489403420309962616106054268729879436994734642416508450879498709738640017118689933357556970629144670479724693965793772500748609004192225296721670739168317671028755976367751313921314955561607289852182482305795207297244596229092134739883939885776111223806277257882015527409589339500192044546062451050545172479141751882461170900615861758993831068814811478999715791797328103495713886643211988744601284941530971253012634927152775774202958118799411564487072048267305442111162746406688942075277748022913201597985251052151753162202451601358529315743062751206897813836444384979841388981049581957098033370566761503614493038422373490225858724042845381713453661018944308872641956171282053340877020169795937357468368102401121311308409369217733733207131990829102123553059738500384303509320104382352850729900518326253937565318884739064458657635961304463260870798933422133849268062006636311912907648859284639838805084658578827490373879332238653538056376817433143098779061153511025202192168957203767677572653924986979442593076570629750576132044063641644709450040241661918969304367433210510486730318650673359041783098729977579807500251982052906233543029106175974804971501194524200575960119911671846626836204937901726650567053733465482598413118465794632223536680738149090850229338205073543978899991471402469112766984533731510733080326496825414499142315131236000555354339653510719966499900375117410956208508436948375672293712371406056614158786359667753396177813001406658362511316101978620286005990518130953460387505441184664809251089821827922601382582133392079366988843691948883470276133880440723964697984732434781132687941283735300435205142186514410284944523778803861118726750158179934594070664268592122083381747432903376072303802701913526286484118817087491723712546475586526530572788940362074945867241827767388518099300961287289758147728101296546883613608514840077419497363505748437393156892235489351162718361283226121583941344823714644032120894814743042526804442796888320656604229194514801351252555233089663648827067669911434838883075183002253635705178228437886094134643441058923584033559221691955208316482866332563520983424394852147060468211445191691848533628626651998117177442280561040278698221806692878567357678555215159126689551871510635010160158343652587823603977311714287830565550789632840069646682311386223010433869878256832989591369627060101731545313606521097515366606055306808868166011811457856907784264611274261245524787840525537292649054389021735659982900913734222850432185058593900412850061147700199645078952805321650290247001498838494891560022861595202180041207801111886406287221807014224130374228493111746653099571033434541841907931216546972031115305339748961573295979514513185118944161991147737819357824840094120448153001719642308883654622603603633322002635201972634841401319637669982726112381882323093419142771744006905301707217403732606381215566271822979336823216477325463697782951859603312809594492658085938870347308693774281839310990848599530290339804142593488347444767877546913288116073035889113923173747450386912855628285057524884042344973173669043364436295052230922591847346064439578165743051888707903513366750847640657713176983667713833616056812375430392204154004011243073071102087078871373219796984037180411384687985254302827137079395603971757047358505509394624726061111157647746171693480438595921440995527508232005621071415468404575983465959155388367347530624950265192038439942372094091593662661247815970335344506917857313054716077013427771684804215571228070791157070442480245748743416791471852537482708843564096658215891539211706122539713273610614651503165459185639165048307482325435045468102468372219182307449083519496680762967153855036791015010995686080767852112490610226604510353191538125237647546669370369291171487962725984437299250085375889063042099322416041202774039680000024796508204498853235858590464115194194650280701969146860823333721830969594892415371457400131501183466687794907847762533796276218996806587428530232336765392732972063300497976140009337036721735874986612429096962231861325389892669943918204523460694189951973046461631206340305889439143989130717646205922309211442393704558759542878889294451533498801873166397810466576838953560439253470169620826295098273748147849083730743251389802306092289893223132730198137901278782783199558055154712995175012410749904325383920534494110220566913459726977673425265680443832705694153968722841906540215200954866647320588437461437785332596693585764238556758366540832178657250982910048545196726021691483554805495186033409572430717599578199250254706945498890711766080853451946713053180402745573505627248865860314177713267450797169214436653696688836039306322825372327162640568094094865262713007654776613177944096609088227324435915422966271658441019135756558966895886858105244871849450702994284075164393464194022620250777075871559540414251613209290356462649718369078918441646537274270970748237863013630917244016857619882238939089799500130061766660350320772746928687630334711578602184568557286944407554390638087676277491287257309379089070372797735880640023700330444548294369907030064706674638229550551613784479859860004533056964854651126656448908990139380711010931993506690584141754293923248593879468094739455916491263183123022899957077389373798707921264894362745730778167959985266255254488471165442808386484905938261129049326974469384729708461219351464707828430917197077561974268456114167002970457345372498034111288782158205089363868912503512545099265252611127439577855010031376214900419694759645209536829677685508805225369679864583320948354614738998472078438783453985737144997663405857139280258328255560296488473098699553853792767064717967061224605383663387260716617811691334477874929980095257238755056892246322933379345563290425998674905536632659868445184616837640830109980228555398660372406519980940658870024634863356492854937416992617627922379836906482534227191079342483059474418282740674845978816187134748414228529966029488929128188903007391871273844494764348490842242449811529306802034382265228364120301309609212851338218973617356992130024967464751071094209741604981234892327996723091368730213406143108371132875927693066821983812447717037674392760565671652588824245199798201408935171373553604006045678139408705780860676830807799020550204300138345811066590408321039372886081927331484032458800447603488876082545696115164761804172914081022077171550623628773447566615277520137420442947824633623257804139563560499539018444553711621872571791333089515349901472821469082892762925775681036290262866639452220684960694826869567941136260259450430904201319932036791044245868015347091191652958440173120217302802722158842570223080341892293835859195327467962844347641391334930056078047830852060825855228588945041754983995636904535453932007594913167830833373121896075796157836402999027097722816588254202640749744506414753943930286811839589678592166580431502460347535710544736846189664686481159886366969169745440287966142138215923611415131004663994826480883451798727563588523565120416531645442941339368376775515661907931536523591833727049157190573222523217296255086656095555235658151588692244057353161407804106087794817987991592729882382841007318181057433712832843416440839368391408212315500306664079804328054897169695159991200284072559689622500026936439850983756805900728289342539448034504305737948280780339015617039025867771190292816000888399540428618443288783244242727668367899544901518816218631508132950040312029931033319750229378735496660021179972337915856892412932548022472226910801048353816465336470119294672343934203611319733074677477924204014473552223092674528427030715908298997621408308194540477072037733888225762516023714650034765076095925004077269589634409089858580251977819055314589009556440954147969787723719906188610288679130270887167771619309110964116037553827265106458959642446645544443774810397751077870493017405453532672351027640680421155103459600167614403364122738059394937054023074887495313046005389146840236082893093965634045564516988518481613446990202900114536493279206820132842367198657562049886005912927420959930932943010470238679310898226999504639940907299350259775184822268414122184968343175820977586610974766314955291368353614585500238768010659810417296197735884878393421601022299397708827021510832753840310044300693084850142560565425885745462829021801170533464267666311569561732670553614677284908405612575643134409352998291307261158075055959394487806800180407956752415177053443375944988042647223535836745088600460714119398966835938031324663457479943539937794341378138213655328233424277874244057315807294987357274472297742591498239485471862351807220179147991097064565817892995103014488583011610808195002294436279327224551860928995009856489659639187527292511995568550911302721371553193010244984015468848564863010163252169266442995093202861056780088876700841365837397220450837487356529849293473904373610384213709127917430332436921659619593882737081937039880074320406502857497509828864286851339618327436442930471032489329899476880178448901035346669819038968698726061621372594489211928591323598443466180346703909484251821212132654392483886438681905633695515739395631555145841573631469516787113654063872747287776350638294635767012641300925909503103431599848305430382163028176069899502357385361595800283514170792299556903429353456682238895833275616279080974459633257680441431641262761280005089137414101412252555070264113307587476692749906514434137138216581127930981235060853333194317165232337724515508817105561349614703504737184444947400161167634329527986740891623317662321258746247719356490808836510445495056983016560571701217037940529317909396318652696164131442663793023382818926065662612213309900464519706769491041162193944429185956604472611792438850960312815225107568726717344377358116489291933766925747663924525959361729234698945728059159933180951104522652049996437736050098540761465895425818192994149555052880589682299051823806895750782757160748245034225096837245524065753255280032076185800525391860163877481702054694195709338541561402443668125601733215972523542110593895433811406155219573663198552032660683144642608676576298380337539639303390117033437132145191405540856483565701148789691377678398540895903721979084763027999452121817838186352727998938191576457841830133154579666812794199630496668902048601123239515945941861817608001119636539739195988887742435181017637812688432034962554483608840437373115489244404427848346693707205191800268537024585572383090094511495793980936417475204506014090070235329085350321250849926521964786510854660532286956080456674555769918016540848642228284334310553557118170794844156210497422961166903474231166983409120673966952618484086793981877184371465926210788419882636860399513464640554186564145014493000790936821142277045355657510510540261536218026922083977206147373252189341613576213385840828208064297498405334754700850119540844838874465403541218569718470474574669592101008794874915219093454905739052905734298454335950552642835019330429827198577062524793218391970851051523459929603222614558004587976236151138887173002170328066480355419660749999493306377516930672632088485061469947003208830990208949482306190713639701280635225235920607439395088131020043440087216049305277211174941114435555823993466908292655079221415200374269418010400049148743039371162120722183192119239803062996615895469748526740397546530556371030016346673626856605833158765825413373937233294566471061508823815403732564682426296756803131272683879258822897870919495715145826945990741554984066181760512640399200213634150295519266942178204212964246174809766237322047817538522050642554610895326249681362672202140964880781570273907103538032654662853804638756971677939479982056794875945795585557311131927499419701487826453146389073367998779804647040251596833612063658525066341495331770866029761909526870162151165056198128470649431375764386825290265396251267460484531406110345308470317581384402245755916961522232304568548234780246182832787740573197579159672141924739085373727071222619491964260199525544758978346026664660906913892708121264079707316958268061471869612537250813170967107526321931146860437801990624529908936318510838054525125920641800869651723795382318529482694525328570884251919513241303813453769544887118271402784049355544197303654072375928389631737141289062144987090612545147536607136056231383791255179875657577723143543259345706206693845400671439985892000763435124128091853695249094284314520545182425533728035966996228708799177338338746532447077306488022574206966760943159049929599801098539880364364192310908018298803830147180524231177016091679687763176575771110737515744678252606175239526658571882482606938595412642643098106455394087190785601886451944276290671682529592058065429699032526820371239309698115768359966386276929461398635516248157152968186238019540134173973654475523962959958885388028936739616000564192389153182163832111955039066302172246783434967815078503673799038254885279845799820492822073810215056364691632026649828851117450266293697792081624332415203631683904963860009094946049675067436294932013946069100937839558475329827247858562981930103961490133960721996000714031642990342114134603770153628148422554567010091559076837690444624913564729794268335466059152266216747785395684526474746899463551305994926316976896442485273906690466590445151814820249512303843220559522723688401993911011886235870296659406709434159359454820637603091192363266975205792973170358729388560853597917440646159360865873257024402496482409355507914336887312524309095480025485931316453920660677556089143270418123838761485631228129775369904853398859963814356037272106423446262055774249154411258479284420666379897164385689022525476838394136330514818908292210189012495047232872162238394981488621184103482912739878500424813660929572911110444649402896398076846251339610508947073450522851939890641182694046499181321653798723777830438112397102738424265782540371562622501770278419693168179331406819490634699148752780638521450411397318104768117828329750066870632463309939535117797103533679603651753904113752332071930331661737938917372422171228779638771073210967921542189163664589632456381803981208325025558865260923853382129475997857459608781863586703472257912653885999909432460702633132866829078509498246591740351720765605626000590161244556128894856609967159814801133928170662925923308858557889695984583990645229431224476122660566084952263972794206373897591715505973416283848671067308885798905098578389364088681606730195575016527263519530958301834072137765538620263758184685604818945886232213571996125644177383221372792791684655146851530074863980156167810097698082367067981383883913557060331077988961226446770878421658510051139089540432810976113063838598806306373278304170210199576749391713510301294776331274874753745177795775640570951978817581832495860965194915768938619990691568196111316578306634268896178630230115668145484181749255153915618233238061172042804086234121705163573830842972673384749619590930465295114562455491300468091337269471858227764004864859593128762387326699861503764988952123064922694650980903000044700500897725857246435092823900605288675495624811058631749636377392652041623246969639424261630993161575610142675087122247236636100925778506853347887030016527587096202219848280566653832720741825287708249351774061274147901980937258743610690662899883309974110433577213092991198722341628912659326608112327637321138382072761628296070540688924821379801964738184558057284438544538557444701117486163199490821499040403407663926989265252679153098558591380686958759914809324419438663007957445154394332644529470086757087832839668157884032191047753710584876726391825525280619368786699242309233781707845907055244154771858987610253977803300391511050709805237147203695401590657563732900720580348959235509837247704001927616753380427496697517712128733667226837698815766848558725436937596260038241058461625143059543814796894638521900996215309009990742085327369788601726638098086208036345250263813250684396738880253988271554063315736712959677052592712765864054412136283166648351071730779008137239867439064304171495513777976650030388505057535073837809016357148270769463745930354190254807451057865030957641564867618779499334136151761960750785435341443822609051178798668414054350495779843292590440533310320033235327667624390615470421973866911637716096256088729904928330724390459716405676522717395934786140201122163272265145779221043263710745278896057126509453542105337696889778456481907063570445064899231384710136626629824890233945423032305755591254873406988869960922508296799586270084790642680856702381035857831527109315440177494273649932159244411155616611037841029887470841051509109402766283440776488679551369624228295363229503680423143596915290542662885382757222729500217992547446663126168025528608372573933402119423160173729006339457807214144627363965561329626570014782475558640833617525362840682643390053956584100868317055997254423243287824442938799751608835079281615784563942037427575134589260281072455689416824289147229447053015716440674186447030476175088845478797201532868648880472144122315017359478679837691529055761198653211945786527667178058454801639667671539088753379314079584943030300698180757673263624840977787639579859249067024641218501717832964043211357095727043522399849381400193837316984266638599326236678397339913150946403140792686909469664423169210136427540198800669358911790390948514902475065069956369711918554030415235318774311427821504288769137400344135291407069057122814511454594253246882039152477319683804893296819424828148991586698738204884955423459332438383897740653962482611291596145271310775266971194692319350980934552694941729131222033421959770098128696206767557654036053457893601807172892766483457117690205031633655029286056331521988900246942940645515888365633585121587501601569296907526344786607753359717351957130233475923768725026236666435868924891259634960814855118700459681665394339051874955887624652065139644676524417738638085463089993174056382232259828558729586406030094838999661065098510702026424584644226373681959016044474123459667478026608931059844426602876965767079383131067944645908711968434465910917506515593149249152099033925225470044640338409111315813378235759016685897311972508196396203544512743259503395973875176466619493730576900029023292043001536903800921555165283879560432843086380303311062941362521089727492230816468398420842586373655297582468703479463274931638074050587103725896613912173375055822823050794809262405339236092238329314924688926002236598316755826685681512740574608051689556048973988926048416986264939195099467425940406830453802176503273002731286955267729616501850050577529552936245251134523752904783117635025400199319604771956234202253103019159155613886431757470908131296703005050105594444343761249691227771362603946886862225978439163721059690972404079036397758228771698249066847469499812985737720986585986147086491786969769564107383119315261612459402722323199008620936441712473330817604693008629413858424136682494241396342270232016687007793699694569432195880896582319031191934343424669901074593419421148818562804985068494841053466460169755032627856933941072469171125207204095989684936720735492414728540524023818176630514168803409317671288258073709738051523411299162935827993158450720789206155589324588685178883005346285125950667082800837487949724635032157738765757481127477374169187186410866054615769588432499756444681188820460819502021233034305076017251383903232417127644733651562458116986107214653844650968008394174502052882497276202509533776379073186164245010877421672145356009193761607881150302760832162818273980009366052312636272253816950741516001595549181960996079836805549009571223931994655957604664826621446722333980110635920554393446572390703775454859257236318940100939040988718034783387295098161299646126659937886748143099669001407291316943268214314804301571428936176066986578677069178840990629784425003326896325600003568720545695109861742555110297428921815787140020913213900470295165522228768418499673690615603845493344016525050297352562700699673895235985669703042772885701760552355805874227258289826681505426842397734951839626398178915284172664668685466325100696621595345869536771131756425621721229972339008791453938289723510780400889329533674070200433837389820081683814372513358401586278285219125899933963022382309093194697678007730573881523823551306497224872978530769192380897161796739246791843026141238230442349053542273443092984281534290456607455045417823784803384780253953687378665557715160178283598417053145259875565414817136300898202655042465119851227092265350494768106040439690011723554253398119439232714659928335363525320257582489718380024254157869776918397519279854627666126898886567235924758237476664314459411499430511804361425065275595201337209981295272917520796864477302310433482264671082294768356377881900494433243233887031228624276779712453457400547045302158722409806980441382035769691912783445097062734116671728497948386475330817658937499272727666319157840707115980497601598722430375612264565220663658086848223549125945728195333537049824274765619528499042324699432945791700119879381070555570458824557756313626150891412133865609486098619400759381613521315448765619235896125334708209204703249202383542372736190111836584408992598209581106930492349342210776794324747306174866477752880082937822813151754308592370198448529493378619631746422332817941409082340515409271270344491516488511437632889656438728409726030282133451589479753941111837819049283328194968471520428206202189831639511536973286344599760635828608600236323053523227851259987838821344392639548251884853361475419803544398562015242283829175090000588085632995108423487555487625920637980167917171730737416702668937805716369028743082756323639634041114985300964666501310930218358481432940070041906157930386473825167795560262739361571664101932063526668601582434537856338595377247968762394381472831282925663153608516604611829558258337393535928165685570783507069660752747146898500613071568236172482748262342706563712835844233469506880473187601942998794506915704758141769120590580753567152011957763799463990844478818062751836802053123264604283852699469432364579421704035083779980735908780773861810782035229703277392283472246793132358412944953278944378922124586780279034851993690503320062062025211778820153446323018497338681317925412333529609251371137879609442254629280528722711285086065542127640817040171405575962463155926872970770855793644894844104477093170200347756961581797231066481228357896666658510857078682426590509074856788546484289449910673376232029475542051031840871140802683373278738796878572722360525401899308653078802046184782818002462631381509807796639544894278995329563742065402358108387870766450622107119064599049709217387930256818929366187351072962475804207059144865145298722342556652596545333507408214344099016512926383113980407474923036786490252913010720602120544830033036885489306603917714990577144773450242861043257682159071193197936764615155751557254937968685817843716287918243098318698978644083494877190810770727371600172548440466869583971888314719366856709839326024935912482415984530648164642196088039997169335807602691280643194706946005296871447191119436929684260776284616052893350325737688956036125314619216729795351376386190860389277495060318559012907309900407673325362719787643304542587348841478043371552312439911801623217896390472859330611532729995265342439268062033566055431752500065939943177044356552750442522011925091381651125339592274971401342367708994799182810735245137908923096605854458648304779035731610756906827393214760863731681635355272478911630317284823909710443818229118901527957930365051803742976536930582130133694164414167104298658339847645651538444873357630689821428402137098005412761517487371803650110879589652974008214636225175281836566205588172607057040693948261495986155766109652383635040822022109976380108087990483211235636233984004006719807064231277653296833962902593038858017850253199601049014352976139820601963875483902016869152565366605699738844963074094999541322628783976201898533836124791302420937847299702330264754733620385210876706773175176000896402105285607320292317350229253496487362606466317697683108577255565396248434453001876902372528596012786901219258769341651357074616819212837322612979436527952564946814269656208814784483458291535682485042695688250345043794900448119330723372054893019774683532999709552463779135986728166831126974925894914082957752993651903265904762341416980389747792210948285714517624811994195211135221137364975412426926873797429407441827938585722199144108066602050830776067511424223029057582688069896062820021889828444428939845081818331884291381517441228040791814583208872697328860371804030401495006859790919321776275940292681892839251598037669440926026321153800264793714916994125330167455530733014693186624051673024229242454142712312434800377015424464904665872583111377809880615650474709958170687179165914689249597427426634845747764463578334656532899146878708092489014962615538554945292426602605116885456724554554351688189201774462801729737638815871326538034157820138765094447765276894287805909602864492651560716697733279016993083965119141817921145535455288708593098416872845605321843943540213969265553893285662651336080542662344374759502408663277777931646403671541114616727610504262668923961969558996174758621657896305146797714990481581924707700581459438853351494134796625344528626132366019431315843501030111577193354421302786039566057840785222393423689682014141429105137663446426986703090035184422177612388031079764272925811355894625492163134053892979939316541253107710715486663318238951046791461784338130749721821651708429555339326468407196553281254547214654251307377434277442995785484212887698471524725866660926089694950040775240697151180083965734024078084586736188210148939576557716511296355568142397275703233420853628226474602305795258689438818686046381034930564021911713443867641555080350283404512439324683939128198592816889892552032845843641785030020462092859100834806802488544026558866813363630730379291661821756266060716541339499714860314768348973656506448515602265941374919324512135689340239030668763604339335968920404706831873081724292974239029736243210903280968647082098739702949900864844779560925022539824612940434598611314252287428454946996561445771988664578553286475093564634211599813477624438370027133646095539716642596436245887583042333225721833965054006969137770686611194613543284108688023670462233703281803796765088126917789407832305218058023009291794007489852160921607166974681936173725308286496156242833992477066464049579174054140688373927951751801504651961362969464459175544177712417067762779828897388553046662799433725839406596203606556055589732770349949059837378037765150214849856289377690647220497886669039100606831981645616310429835462593613037366524853623688337927928836457372554975378682218184261839980587041761174080199153494491803634801042850082186140215661247910715147765608886451887363551920354550637927253395308617716271983766312650921702648756472182812504565377968923542558741947838114705088487822552702055348329425807327027855847217788590500746093307822418098608088490199970773166841920518032853374371173742683256839864235334931037642675570134630191757145193928811356297191899633241393579598909098976511740480984894133565717177096551238136687796602431888262702490830419108424879443636719687723341000542910729406138786279781216139692183044356316337278563147017427557673868925142691042037404904404038179488281522055040143190981901938428571431312848421259904084986592244017304894031033771824443658883026017038093037238308562184379576522037191884724016236642102817705689963124584543541604982871936844991726431685180057849721044326732177718393405144831244553675557635242264209079293454125304953830311141516018930318981355330386810922993559274231051177677191834583948887749915099405367249583793186549652320955812842138056544023677197090059412665611790860190389711972152359295355118349352413855180151985343282004607526198528294715079343878855256080674696554732737049727429770894746912951380420279425129237536640497556945975560511580655976202806763566072014104016632015131986514835025819727136005822786181038258806791751337164980621367229518778725134215950258981345201495484537127540798969308376015367049346112326052993166220938353306010154893294883091910635962100643845322681950312325955032979871893309196437814942363053996032153776625080463050833661025838941491864536216716114855102267274810426827254272076058393580660483984316822667058841854486899806803641422820539657376123283509915852565217639050152938688954956280182041334076518517601993682886318847873875429136526273758510112387837577016572508097808366887545292100438484979051712796472771433284261430706235233394844032846008809832614684698588576289084718157150895105904225679562727099796821659582545357015801038011910862330618869413675568638242769745050353081850775475965086177304820708859736517507502560870745291534909514699663404292979212167576705361484908612859087451107577571795304058844328086079483730920170934170234771731916458811648665880170174204242880070205716883452830878098487391631754819993645945986710391408001028376942697030362819439748233823276413953696202731711045355436625395825174075573934367915822737095330401349631845941405435564358083305931459138083241853463156936195787710411728107962712047987581264816977109990638907981673088360469563175395202462071531014770924816811157127685171863560339408858476810297574238416075520255640069826023065992184949811154964963241787026245839404951896364651819689843912419072037451525883714877668697335226755040212552672529931527667830152209488787454696743251654148163654937143659283544844445365703461808877864019756908019778898439642981431177260319922202334477017347808885169530161980350943782080394029045967842469245741596094196203074374153004336765062717079055684250792828835679009874506634683867073326205888355055672834277944773043210807206436639281328842309515453124345739530561738840605828827214250381508597785243856841964091851847476577886560936647915230951615709952366468426726581128948219589623278339416542877517892414778042565513874484388942859166465217310745650573408283842390977589319272409858291612819933979416949553428519782580023687536668971342876347902844543528324996482288205982636998602084354294248020595190523171935822544304305320351478141414270181455554809577442976609284691836989776672994581244692907471001556375098316604897365295587341065905056224880192146155460300177822807149305474141556346796007369472881513075110336496158349890133610317868595675513041880244198354449543906287861348715656760602365990281856073982186263148989182607617282535749457850566920140572021470754498003689142439786524582215537391836045557903881762357297428009623319118837153336985526244838930254250174662956677736296792819313445823965965456988594953880259651679552828344685042462734597575947523472596903569352198940170241838991163745723732264032658838290331727053358444497451927305236680062660512344344912661208115720730394423697016873154028144472065609013930058299268281524691018186865924658925282396016489821735120391604582595324202136217570354929308866895605822358262815499052457152595584983686808254792155445162381633913293529247045713662754206797803366620350923186846022242460824701809384148921154847238230971263472145766938500996404295885659960329824240186883945612544474260861517299861197277144954092444476132274971630045034388864784157198698401188804908948033636355601088286849056520781356026455487114270360174605678082727065372328834810992232522568363314059064563565669392102050900007763513113508568059270541539044630285710633576488219902847288492273328843956189299746775912553857576547197213547815075235954719440892857995832913782848769865968283239214048949721364621042076652728784732389886972598257140483726003837153792644022802485398450574382346049528153823716358298611126624641797626093291276137651234004873223657468963670097250036383603899340948724491732630984659931875848774095880636515170187553667376045216140099145677477566597178083174697682001146783639572923641982316190156743560220956599606561284816498771688203147946049239893238440370861568200602812055205525005983080684986931946154186029327107967979461533331888252781839020747334027026377605550815398175711253147632040896171632306984564448052588181563221341863609626816691384844953281893289136524856429445670419005527524149105088459441184541333669132195601475846946631815035492550302110285106695551360493611961615152172681205877390695988321873056580342383559046910290612784477541866253373154030901563093263400977039001861434818972648855333009351391640524121492398427393458848814368064101890624122786567712703170202515586222311036945190901619584796680378094508222391543711863424629273010385390665885341604757664712797889777108556558070978182784773034079275872724407089343548320488929183984202189882223982935188237659517753952009656616384873617880700124534612736713578023355028685668421040127735280453608486928287875938068458729109075735755870451757036982422053028492574152431765803499194546290481617629176147132190531767200374552159745148447646061245441636077503661730352509333487725433797944935387144620416027855314359808202837268053059072875640982949568564764026055599059715310765483921310750486158574849931461636958175161022874281446851025743524552718539045366982730224388406936481795856009647307331250713969189022892420388920580906862315966969447747422450725281192348853394347053268260685403246745883584833545614045450311661146113352050293051048238439657555599199597459303687043388051520394268264165681745119117644565282317533504528855044880477899981097328757289479449611431264227790159328589153184370180227980348295625015050226069439400177405798205485360930245696942225229225482221863308503422651685364138836389752230715938688191353227941616322880994478944389551843926163215611559024667391339688055680785252916463735188851165467598262524613100061543417486653194537456893090408364168537800539310983158725993124711839548157188561975912894485146934085152358162732644456464211518908305952093562913389083552004879238389622862832416776941110239964223211018412715609174842199647581217920634427949395918559785640266175976401909265277167864055708104258894364820829209315561456842180104235640039793511014270311081215037845762736185857782937706628717761138905305001609098743181316218387953165305377045186318108468321927307450698444475896989780299234723278855772653584097435247840962924477813345401980964843091757289355996212222396262996474406280059751217352325913122257412849966509002125183041167188423997464337783254038779400667650059596085854206129784650397062569485576065316237324702456734444637414921068604151845536853185762694554659067219786199249280790093358583596453162722826233307312938604291318746832632977636848615041381045583409103674095049206140270949030277685726613518940023434725525614456173026759739227461683937198607448958249181404507929099764571482388437543265041648428114507038934762971863192532532946864398921270854967158519503196191483074290803773020884297615306378215843675702521573377963022046995166177827129560667910048760875772536374029140078770679629237851351672919687352187965961954617696970693122158142703676780370136670791018332326763062119634750832720093123316941340619448849554633147262799337725661955449363347120536725212573393057618600619836518521543511420582977917877921981185157357108316999001230352701269579299513779654404989286285409267159582987256013707574711600738898464679757049299315931253524570935112668411232040197778504301702740057668611260748576772463402003837332911206146555054149422554244256466143874718495988792075932257196263401332183636767327816645844081535096514867408336479575154535639117792610856517834327030167008753770546787688326191746361924776873639844335053214932385750857032021587907966826359891765047795087908300035815025088405503850428782133415725322522472814131819446890264396509518608606480091858742869717051727795476117845924821666502774156773778878528338235426893049398694225473752305182921421478583531558214297546502892791936623818784978474211987644124370382706502177283933102431427271006097377759629915097175379664484266441809728211381118932313391761896428542749546488715197664040670548497052579404873240103757263953079774421650132374017938409611455913564939909033839800320914158033729319947303338724413186406666641725911023868654820207933151648528457839994580409864350727987463327140094548051908791803041578807750101310470028194929698150448113978005998296228343824401887206371334792345317689770464360206245989283104369988769957092033394938246603198052238950381620497442164089519109237786300229048130878014745321311682039438338885610091720833613033149652071453469462574629673964866806087512128590907448905006448740554345862532752719275470684250527753337681654202752299876363822635589224128462506067726560162193536261265132806772107414329339453591770942688176806259256071146933201259823327187911596702493465552812341914046155687539467515505411184911513781582502747704029303220744617830641572685045258042093696380687473322908200993593521063655588623684351172980799988403568221443149100964799254743036650213004917381209198374315319489172424908155955827326211398696633981812450318797657828994594146354682124483976512663058073011053654004033793854294763025614288143854914940766001288442344524235570894130798663611439561762851793350953012444553120689608072393155679304562370195542760762385276741120626509729397418333012313773310312470647995813600523777302625962386829989551342077383716389207221531828359211613300928344027699286869589822746826239123897705343258276465339829375168352845207679407776102771859086681107607820126747479278191961378160451774652791918020840395236838151444571709914126208519125965163236505305613342646193800341150165055584066457179068687724345833537846555483655942854521487012382793694578107070910603861621494797004071802734072840597203527161788187393425572105861929749905900695206821268630977007207818025222612444506323786505129070398910906880788277245758053504815110786564156697571030002974676917521075294164637136467789218596453515872149906141513637399179972871128987536605652394824279932002803837129701460949340661702883108853705754068684942965251713576975079955905499730775535144915608912275909999346415088803166339118219186698925540198249662995644564294630339203286331107213902197069145241387248761810009048858709737665093334738203227025595710999716820243293252379807478945049499298070831920123962263773248403664358657206347710255324500066267675432874193004250112130856804907204992298031408920725370359257983997824168158182606866782534446573911606683971139082605677205899693240603070224126623503175952181757224978775514523506696786259597488366516631616639195742644304397956492371168364177165062340742161721727037598452300845561983920175685593225383903614784845938885336538646409603172689866531364765684645724882165870322762652412734567978156708605319071927226725621773702666224140268970280574285681953451946327304319081691063544029272846555270599805706205308559215566936116301569918059146896165106049564240372651435381417885845765112524907755810217906212202358820461049796338721936786018483904802154087873129619370060003649602988243996236074576245084753672298002667762009082509330835133494904929590885244392735743879311848216409591528457003812450984007798854377959529300678769379979629301362310993632059279617142505819821855492319704945020048266285404879286001969856873525425656530938749373730226273198074862057188822366906271757628015509597323206587714131958194551322493879464838916949389608694789260350512015389767938401353578327348656566151481277432389082336322395120121017522781340820299412046398639050181311162165945449573484249659904498073772093872321246612399037353813996539051603019739752501953827243482468649704130279129793356722993165516109990487731338875190289310138145572647889870824520969124154354690025870832780621547426748943411889488610967674567630496621312009598445402348729796775094572478225682784245219649252645050486380237045396244606227760137680617108854050302767408622429948732427570280987884074392234295675866470129721320024479384652793184736191691562412220633159747678591654488989138336311631795768097713720130598415613129371839691441019343943989584508181541989072493349274624406536403548631537480845196221882585972864956651352230462126096274474435724907478995090175189494336581387073123065879606970578301299838691235336477969808438604918866508336627274484541781434412616465483193432480320132733980322788926509366846960228213674001043184128447900524301512610760413511804780512386383367579016931539240690351706932908246461266473830332959696938830631882253689429587932606902087461316635420772299929687164701278394619814167195555344792207507554184418647211141122040370162670299972091145996433599973350644692359577744136632636853943440584727545110126168351544905069064659041726851621628932890975142873729758479860637865304731140640743383973737504526926237999167896125591652517068528287109473613832338915362574557680941101858404907427357101957616911535789775037035595243644638251177938101568947522909831590566599875988294881181154417635679069911007243279587282271575963670817323685837488088585620559260855809298052244369547842445021460446142932837946472937861572499600326980113163977698937265022372356478444417436157991702623493756355255667280077172398309564886136690497309558980258573219712454709340268430079169851919072807356281431664730432755132392295269766094290724378699504097515927385027551452745201324250610124972126173229388913223240627995598419877035649086716966660911108289323603138810197635240485913594392013520086956520355343206052012142083432232963323904878056468925858735360098832777972899477665651981402779619965412931506209053810361035902559207390215957512920023219483796618499726048750586100707886190561563242357303689675363604200288412756585597049955042673732968700935676011636548418452637335167118429400908157760054684454505442459782553220529832480516491638000802105561728218989879273751545820045868773481411157324854998961969387798159390605331374020508747999522593942267790394857755856351741600721430761953256655609449938689886462351304705767168960212513427736915589335020119992492393355999393601568513496153247224410193080150470999800846806589969164948358285290380599440201493248280825672750543105447180697650966249401798205790170552569946814188708767275275645706011576243962043914392855722175313901890200478218758628834112098876186428295018266528419227771330198549914559819254927412088291844789334716905868704620058930538661025693576729468868231235090677785169964602221664650184618159736605740005747249876595806881741506087880035371564811609241457355696262872365094968949151381522367730993533508754544179086557198917581879587339328390772554577657486553323667391324371833430641425475539072868800148661022452741021775469984448516425905476000581109403626684394626023718197680202992963267413833223855125424253711528857853476170022134602201252442149074126433303507602974188436683776600785717176290004825647021089677329722759033152447103433470554795669447729302581964525615549140830864983972106306409318148442635166600407241869460112826748933696311512043548186507820784335129119108774896606046956481183939200637860244350303359310411537374346598269131087982513551578531122085164818222311206072181391607118936974353204897459940110073855889848922539988508426664867135740443846146314547905510773071188699032573614863794156354548217071346905946559471469617271250155403291800568386683207540386750268429183704793515991531344061231599239634510910220503334600113072309754918287790703029419764650631579565997946764126361726782389197503989408811424315596403961067367406280462939474903185283443455138377254254108788457299528352917557794273709920230047459248039718721224598002813430029530659074542489802017418882387940154185186501155706975849402181546787507929706711458654818881880190971873065698810496597494448801146852636696331676273925458395534241527213272712120565408531683276437158183135733712090697053812016312152487547073737966624779060519416204393469860818366517804429966886284756341881919050155594522813158252528694798582377711585336830778213758226767124115512722126152104254050361382946907593554209169423538217809682463831103403507607594565679066038567925707234541242607735607128587801584228795557639233657075335450632208128910640330538122393191276424912727344815294283807933799330092478789921498974037405761914461686560102240393495060901123134544849129754028113815023280648680735113788302634887763578391282354071628040793056258949440639850256166178356004907955066469575555718474484081584314537668549006674701336105983091700458059000081631616241502598531100428640437967519146300023794519267499905041047627794885804244877348271303642588159013293115873004745608929233849017696293637139480513023265737464764965519437201091634244260194233254856881352003509926861782619819422919584978254134502826596078901384503762734271976341874443277670824112698056394474477149209385906107819538433580128073140073328119582303717445421932626716819051343434475497605116845581109536068438247940974087245982488729404726349657728527166421603258619029670094463000909583035639920328878524430916241067649932309082883190397728931149456866262107092706707360150767326451216568584504321233227494608227503260520223787286075695879435485089903423878819641200805048211598596606498083134868511318114107628165416758821128098427044293651503357284132751070228202338086032085773825108699689230048663819256185092218119590605741081447320908816708919390266565437107610402914170093450317017403363520956920297837635919316445654681462726600871961824872700447738389479480066455431613947916410926415578996237273940207851056452602026842410132810635962479534405218541382686322086377822714256257529671293511628035743893296255913289701856264892798363707723679619092963869833548516236615463201604464968378049916984412915621009224253437900237861368267402731697874145980219589055043321715028536195290887887344591004525875125760279690990351464869681982989350604780100333919754148422898157294721266413553690365831126036026183338364018938795110031825566614917409354124419550367726325892843934509803971041772682096576514761121185304167657444082660851084006181646945415783539459249117186620186764173955312048517655408945074437369156693522545402317935465662515965064857556798780311261717873939948603011828318957380988349883269913697907565204981456641865880415648109410740546835102646854823974035876938379546424703897798941166430162004394418845714924503132554799215515247620546121482350711526671641229899070915724988622665557085105013567159630849266843695426241228327380921949796488751885251798295723658270478430279156881090080441650109848552233412844387878657235746757984508732095493463641868112314357611993851106162534093682939806107440433401815563910799832550572722885626120784187593177433791572413689141757789712078719606022478774406336834481262005633682441928338334927687056370816364225435967432876441038508214538692721632114010471679315461128753678796455533948768206559865601035099420902527823927588034259724202523428833546240198194021344611193515563153636932523522240505612178451250104251687603519911066744723606882509234240215384624717707907855548325743020089769170714333326653325962324013766094135025532296585601198909742508351395968903449869256761462774506484670548581171442103025608086808042341058690858953138186539132202362788925442471065151532541050201641116445298569283940674857252842089722148902667381895999289260846647833175624559880429621485558432463304421418865763579737703021937170369329790637488249986112124869288083826367075550074455034372946712664761758428602983452369109618358531642542253525965712826288094313132471331795791558856743080097009441935713645772369077175923754388574252014126244710767302802487313558941042765635031064917610191055265828594780337323801513483379234630394890145634248009152614542056376231380997597114680190507798367893650175754007122920912329171170883098773930642313330818141593951306593732252641052048055871477089890855444831257425137621744671002482165721140826011723846792027025291548153766623138541759555101643800194862706094363706229178538744776743876999170588237125480106723538789551052216607231623759759636690675090385400191941833506358402922803705947163731527929136377778775628280400253877427215064780350773499875117076670467960413563121003366210435573345929194943632019815259429472863891987138943387907730226297285731069835980772233046478449461172849610638849197590967137630247631993252920912068113261957079788058873267517447687960174180459745781781037868792423579191618861084065687577127922400798888523911508137484143342117539865336148895938026648636725653275868669421095660252310643060157287891695091520520418993807102594679488636968953850780752402731623077712178625595712255744612216805667161350560347477675796028798451603064934363157310774013399562341617756696036567213423022812566873241951822813957793570629546892029542912689893642184367188926731100978042787361719283701018181625190575346994543765611694824972292257684235128114126128051399869635326660266985410638274200166893904478186306389524219735372766924890540795451952115721505300180428278694475164038159758761048364048101598382021523222670820232206156113698829970799152655855422041374788130373689489952304436189131108085825820572456262750655323676780482696935023732519851337812830641890332087589307183180392955833248385915048715955959131942921574332237527376813332331296222487034804084917880364128312544571991190435340667963940402128852358042762819166221179980418074079784684913484046605338871675368920297549248764842769506503600815059325472912899639990852101225619684871150867868460800348379891726108078940453733037146461160060199957752987050129488810512666727879676586198875658825874793383346557147485722491582253558822081244781134052044863685657557022299310177493790523116167815545678531623313203370837314581011753758261026204406002853295506089446682027922249804405967782070690457345855696488346359010450113384071284459506061160132974906520271464181558421208873259969209229856889340073618841616029574080003404316060001332948747177529518801581913971229927609562426406432645405159183797502230566057030317982292060237765669066053709957129565049345438770516516495704984729150229493771449731163249545580032640915501948010244444434131152562523475948970925524653583507851140159412586001691676145033736345291614787119421534389250945989505298788640993800143562136983288045774483622315563038934767050150924053998842137462791302738402556089028998815124838332506033279686130836609267245684774746856652694304800443199896562910993690485306847193157103471469208756012144927506744732345483410253776259786945735018089964797916610955069353517409833212110877225278887010605866695590712093497184751404791453230573536781517276345737291423206752610953465342598014039415596329059356926108858932169724840488940262058043097480190284736048406247919053083803500224528671244580597507477281215862971444059869717109843284567752510393888015241501984847887750271617288255251166290343375479218635790735188187002125113844758397667926324889280718074390743552233534243219056079240515438701249106315629304220558854302278377262755507861576190660229550552815660758068483526273363284670399186133145852340743612450872968653817157167407824554376347701543054353657133101188661368766639199802082158661136710702139696034394978167771849981467738845287645437391716672957458202022880780167774261712607835152846069275426356581396390129489111481653021419527010616180720263891073876445420155359024574034538921922522554657271839640079479466986249854334000210156836605016567193847341419924090170749546047662015613952234840698754119400348261856327509579545887511291995747688576395326949715559423124815126958116493987885662589251173825968665780949284479672382598987817585985426058323097220934557820489629055497299163878680764714791003334471997534610647680660072063340038985410657777913023799614390627075848970186836915207648566909730890992983491163959564857814767237452928666613095089410992840076680824042475530286372115077868940025843651861552900296108669517919909491410891577936522232128759880026418078376801346505669251717072838666764941352850803685538706321210095566246651566375892327064425208585533741438557878713111374878046044012396399699295543468963813798782821990058792455103429115772126280288838919994625883952869530225138677749413526994237143535471331236528123220147811449809118507300430710703322726236969787681612890730124316102886834760529605575822654355755242236274230254444878456362005550344241905682035208920878197930978939373876728988832474874526686535884192004039426326366503254124902738256811469241044782792769846970434598548576576121968945504004728644350246944489792400900623422604215446220461623620112702844872384778587523392948598705900055836826793903112413391554713742887716770466860211396838338759087463406290835944598289366589626764373048835030225423616124149455374478644106635269768018626152789935829425583456061311011455587433368575661686428920442145963312776947231116000103494465699340782704838278858902105399315231789301425314900329494084418373513051735749831091059913850066964383132225862633338879545697919688464497248414575999239084457652755463033224695926483515595031526902409932009572036095313220816357381309697220589276016559860882296299130695558744727433237809605574169403935290693052469762538434038619126988494708298109706652332281891637190517221564672417411756583117222223583722424477488957854016767819759253331955360788316180069674205203470290849329791089014297823912886734949241797105347456200684815220223895288011809938694211939394340592538419178519400062650445209463557674412672146257681954979660779822132507375147697274534155636316167984466267665207008469884426320844353486443186554170726385349602457182211038579248780704863655777440482190717320072582099211630758978878251053934860530277621736952447534262154225370807223092548026281473761896418043422719788560595261093444662136677264033898801862158706632054339833478335445288234731798845410662191417618815029145250928875847038360163837867575426854171122520715725001068394941440170308789083577830644426289542301324109513678690194423540508797335756452347593580126526828887794868277755602601171197859303550302890150718559679034084334915022605186677061237499468722748819343693243927961431739437780879074688050118704742566511050965547523106617399762037205238989665584214968501643023340723943288251914303307030371126748673208980359820688537295998471677012637854313521178786964523904691808039455279345773271702495396999962847498189508828358438566117700486595871873781032230318249184304895490208441911269054982360731456666556123072041041328178407810765827894995236297263323387571082045424211211830835580153397828741670417766429644372798779736872053856312738241461631028227863840425614226646395606821426162052374865351028918539642554400893840833406756942167387233882773717273527828782494049066712149885564410933703329618361716882035641644765173568814689358409529013298253337820844368932934309454506111640607942857344097175223346502383316054424113592292635848440254348171772317338873476094510524082374686720264686710509650526140519108818243096995572490884947214864900245811183874497678372149226590327339890923878801725875060420214180591057746912105367229036098189714599454828337735570435468290738462933069909613236939441320977555803911336748305647834129093030601195842490180602226517659978525752281430620596118936072235328451001027774992738142937041029274696123636006464016518163398947377571567112804892680025603768643374506165490972644410391056295989757114493140289740144577190508153385270105216322743299061107399616724096358448045186978745869033578208140168078299608915735380260715902515084594514394200766056342781901330724912708443539434795205530836684157611047784096545032537038441264160599519748417445651501033630351565956836770789290492341568810548556873805899924449308871476699519504440259353853015373168107960027828747649057418656164703994824454274548223965932657591460736143225316248278630003229580697774856640560304079390175924748894769980461270903523970551667196654235493402751675526961226762183629823308886139389280914107195355598102310111732753761800811903306051159017943427208076024026655813068824459306269295689165194715346558549711568948332013919105441732867238306378334069824597361139089266178801610908146671613638568910271779320059751735124752222910564934334024820989361146910546580276299534125465829948118435553650174483596384720739585191970350968849511195552788430537681336297457978367389637303415546292056982792328935362414767337551174427748122524195448108217788095810217166788775888241187081704090870761370580626899883776558962267046981519499334910916320826754524658279963082090186412906706295406447700061373585676003948483610899646647173968980430222259646216497471264589619126122089947360989406133799554994637677822565420334764554921337192000558415565254667330220058141143166618324913910335969418400685284065054815830035528574539972473639917268092104650194725874147381192797133364173746982927396623268134518392589768652313122234745627836646893965255527689348574083278429023011216144033781651409451084343772149001085425687083998603815910284687974872941892515916044985505427340846269105989402193906106674607003777115437732566013407678983237307546580329182297442784315841913397913681346338623047690451228217169738237501629785418969503253704356681523602908160676807866397133848996053772946204870819311577095036547768907688183732621979810631354785099859892896562789059479572403686816555778440975839813330687806080005250813922886314996829387153894880750926514179006653165172030144285534225502748920273974604279562122233642930615571963667671545376185452949337065382693103939646963652218570915055870877268270933643465352547739825648287523842191614520632441173524986823321493121747394295133670312061875465186004287238113035373800797042894526832827068187811835331698358895435128717255467128824433607815873529681218818327279997710207665121721477592367233431130618556510621885081349519727701573855407954756746807385109291915249421615752307022541353115488109078590371612358789849151919232203806233839439814383134431455816393656175883440912216614982458530881023167476450718241411423641996982294973384020574256679045204559749339248033615729011078429555982674693365722148384422142992681049231687471130547612787852595116766332854442212155589411007155219531366977332629606211703464699611116821021495091472510636896598022117591390483094061591009031116493805255068320399260196479802033305933209803144290613889365197234046873947799264163754260966336083442387331493648871908442956381329630742197772071333058882564656696128042088080263052446285019842131077910309832641285912618013730986089846488928712848874425827425579389143387071280941260080321842117292050217884892670880829190342391290346661979423297693970930400901569976435120635987669841672320673371034623100101531960122456674348319317802018055629721882865202325168192252661302220781041062847478344045881384057043998204937850782593571191537413482135964537296873512552906077801221390253269478737016064240150867153398742395093375405862595944244813163665353346844724350453715781435424120413885156828776186941982472831188463805769172868296796247627679758739050234315480288404056229219231859736329321908031497971309509265451239833434217344070522830317640758207932070560428601192358542415415456687122982499278568199398479308520692545943780536019607688546420733195310866971700094724629342495315793338480881364104731666236043968291470203780610756367773709609935726248551495532070898435471041267950441972605627247859397740582753317607105851666613879074522529175553719716298856249056490286849253921903030050711993048235384551384079394608841895170138878928152079478275972272330985329658433365971450915801273997562328840567170555127413498205512428900163589354943844805940642599194737153686646038839113132583790331310895200365453004051835419014184471807285881539018195393889355550441592532268650112823900943590889592860692628029141090792423115889424191482489867532788392384560043592709971956938202144084633311278499870114633327224491090511081231237385827070793877619115845050246021151621617049518782484609320272744789922784203068974138166662819940399569561935074496061695220525666402712373712209220806065141570356821039777254329358317651486735816246812143673996935157713964387838164517818475401912330390817084636070385039867075031902328937793110895834424693732010587680176966639947435026573812358567709779196733370814076282390910356195450367268436567962692825129481686781233576855882091030911087277852215912171150480591723151996991322393413372290958448893544944164486657528806273042790853410555246925050382950038326402452388220725666434922335967505888014293140428715833768702443758966916552701270473380805268609901450336556374583651491201903558984088355677320556944410799173793556437152403452578719725423803529052783306516643878673463643802186239886404415674973150141357970286160210661269022913808970809313046887770447891285721146434945000563237220818581728940801966184088490171620832046252750297563820288944993686764717291752300277239738066199727952594479494425500214700130289416253313626216291458862178571346418419903506887978851586225397419030536565826079919770495874147400391295738436210295624846214850612223301187088464064380203691675760606730500706660293468931734672355383237691223799923234701598839710983932520863814755134560229372857049388726967705584440746446342439292543555296782640316303991391591935103182105859110726566258208282590203623415152285695740005106851926081697524867352268383493814240946650122654525848667919119361698422576102384021379404243874535924992001693664268778430717148329797480713428583511756499117130871657986734860649826050259615545968851301099870504494679821633966475607904079209770324305381463607670875022362606094508220207944547730052150369815367738832439893147939837933696237551472969718502122996933178562171578678315571528462841559271199685411921148680568147955600289278791492847407738091549186176629432961584994721766645141218048555104758002990546634217584872376834542498697111469965309368156331763845342055652243894788171487681257743996825859731803649881057326102772586602278305130518398500425865282936071200130181158206316886051699578984059062975662634384455062898974710654740077822319692690124226919455235636897634923385326173557236319792674412215824870780040825582185525232745910424042383414872056651836124427216351757152322893454970876043221317684397549391111126505941460013477169249279739950290708859604921394352224900826979749360218337448882575986168565865680870357251488204539368273833857510787941702772607488479568306928606138014139210283967298032497062437239737782813693331695093266750678754877631368604430162414638727904445108149571615161691209821145435166763562836429111781523411851402744787656286564721522103530864136681850620062009667404268930198657798877972231687227461865159988905155140586013582586908464124888968403694841558150395546904699012678460602218848219537815349804889763335162784307889409068643567779494948402327309095939944160166107371951930300909756144472634274219005356914281885792095357988669163560161821945721846790807936056788546272659588785771828737551101182171762007866695972977183764574388456893386104954541245733930740328296074214407360135945506952723406659368812145632011920789494040472999920853842754575116207312912814129081286965920124594249801960287137371420870017139777709100498125539505200226043779064224630074145120569677408765549436418152319862604840967444135618132798083068103527091356644973711775928132252163869547234729988062755579253439129902911718907924775159623789494798833393120960047512712444523539509894610364384679194375039205899328582324892202580748883869396331673655484506934573066620597825146254553715456041829505489361059703484384126829008284211616352420315876267461307305105181290240422342232538258966807596789438563652966053668344501754721666266247477681270899306825930533225232187564909295922546233307142719428906897614568895573432534024185400894934138316662093245061595512613494102926163494196746318884557034573967479136151780265902766177940955755732137580190510074249477645720729217195552142181581313943879827625136298410007780527434665628783778918863344830319622154315484509426507636276012230245125703472932224613167646954601286068267255256870911518424113182782296416975079481961946785621951689407667522123050050555380026313124215068205271103934718798941471772926335627436385665769613784197288597627743981401029682196788311840424277491903935958183404890167834021380604356799610682607547632535616414998215817493730287326462990905068059703865877309861279711277004697515648011654135302229545306657738429039855043262079184949307106450451628346817820858223047145616368758175520765582208321029432028319191828827768483571704927606349194928749696233308170911961771455173453908346357858385568714325458764698084169504170654123247266267533537939990454538162708626364086748881683712881477830024281930307861144220283643961793023794588424460804586431894784080517431039089946928137924087772635362356121292294184477633162048076300493623009929615377497531547961609078669596879553735118731724441539296098879685661343268333357456119047479912814500870011890001285016684696967664294781542479654523919492041149788251118035171750215431197276025517165543249023538038615343995120062702191212013147326351742522793631713963620830565266368030986831989516921495978506432576448936768684443690015987709918240478553806276674732545584688901206312027456949397268240262144857357041480444392642916153027165312525397249580733069720350723715454739809999965631681777602492554939651111431841334401774955733894064719404519276532365422941987000833679966999257757663838051582181444625936040646869044836161174450962139056885950253387486481307488314452418635155763810271814110992716494400212290569265910612562970517575705435710891844482654358610435259646705759881274652314730648513838519368005266877724351001431058969070224298372001983622661056791576610196849343318485743956260065406712274822008553186261517822915631711679745777593895068462775697209994261828952613613986255761664616456004323714211886561905561732129326529572453384583974726825119334543625972525403486167553835686064785942640971665987347944905121801449118101156905736052094047565863938031590178082934220035077759440420756266876982122411775185359841472614432643758058582991705864060930806030632679205042825780011246027667106254496570589470391556823010379955267466338399671875557301900327081320185474242899180512220269561978390583636609760826187199440507277185280260554330086220173308494944750919938422928759975793525748314028973224229565949918399200430346531473515450478471437850885572176659582784356577517914383843483478835056254644840255430390989310613355714098749625318822082839345261685163291549464105017019131703980342199198719513372088770687251099534085706921879715173874007393130401349356594887771963736078642316924450389551866001139561021405310658093022865078755959586440425172085427193605296888201283783957582345646943942761753477537948030164213474515433694601210933734316014766010023583699688687207468157969243965847438462741831025118553873782635837108264889357932601060710247704369335439747456029380694559013653365317687994614612432069080550903646419486597867050015734140722916891748916767293470747561248480177793988613967370254494966838357280153263675400873624632720880417178905149005878645356723492963185067063904155591928512134943651704288721448225514226165149769362431013513469933282505661866207756124127038037473911865379022067720083893143836803952997884809913583583040552533484318603203207057106674867909699882841466890901581837695501790473124315239855523110152344866870361502106484413959008650997388894591162835597327336375768432721094086715175444531310920888747571087657185930627929566391448175535113249983225932046990313627814570964894919751727886423043998325663882050877838592558781781346025995173418870797300151047392057166158036393420949837612463225307545024100478980766239472633016057793909156896254893133547958660424359241379763386510766278012766603576532785785243914617815280125415877098177340269745272734161593740327654738995192984757329899070198099522889670489517692620947034505548341145569884760906780084585193063175185682983142215960817034860715649486884800600888652703294814557563454848638135447346695099844136057598259985969719207886011558928816792495050126381490910133067240154284133678389063859929888230271148953891755301820687311420584608972058092078071471039732770857533346640641585168102678847605146123923179410240924592508116571181074046931115453808778322749692946857268263182923484236009149523834813243649280798383106339132516169434940831720045649766225351764031795256498403930744102848769626874796515656973038105085367389069549220180419715044644599104534050786468368207211691447703728959556505931329785762514532587952924895852465910991994931820858604201016506146822891891005633575391382579790232919337996085636509760049568750374165246499106353360787670953918176058322763066239381863542798801652097711107335830822201418149801917625207255450488256610656589513254479283660930024632233115767208435352264204604684618955301743685952803517833500506935032689552325320247222957050301720052156198011506545464054808860703617672171440209041134794826831094087130936863026660105093241260273238926674375501912949531958648354575269464482830861526493138390979930164782709444520890652899279485915200786492034990796741630547801702181770743885857895142175010240409643975669625822048188454415026610451589594069202318726890824677527353999479535501835657672766335281255814571066212614255639972389053868294952087635597770467242222188963170739865928692141464748993947519441563494733915434921671327337112446569456911348540786508659115027854536891246808133677195447539605952111984813290518911146327652159460581341067434807385589265866924079227210617509818491681863484263065456895879197728633724517285609492700316934858705471895827388539384074552379261993220886378013539849776743798056935468662907656643627269429310353037973171342335584473342639404714146454272066301793960744532064420600237183590790958191483716637746016671102754487670509930965989318711999605833598008569216364415120359268425506662263563725026315547288828407238032360150852894602135196045872243238514236658051777089734668352244670615467498940047991080104073455182181764379278837802138864459962536980242133641286163338534727427857731576878711430586645236009562487038290846998979347475200552221650992841210107454363322316529415369596479792488158908592080508517528760903331208706344931193159754362410461875200411296419490218658679352010942841599171055828032612437620016029710613289276832294159356713616097319185912606802730373935526050850789176945907450666378767228880053546215404912357339540220398420175420383093545705866590974025397229157759058473984170923275570014898062114045623825400084255614425284181990530902832208111124566383856425587283772196115505334563826191772388751229830197777886473644182182340613815957983422110407163657967029039666274723270545904642960359866126255867030564082490628946721262217851032226546990138792926750504219038839483559954696682274669571773492942321627478434525224579211363533881036742970197851780837009695149916402914111538781758547026076866500039844432039346724399482203315926629353963586809649072031764105374498243266521083826929510764784356192278441796828728274062225694614130023688844202825798652033498758950054735732761087067979899506846078598843029007737443563737109788154447802180314697582992437064232771736245517448407715042476269269877827969506088158482170094449886564743412068233606467083200589055725954296626586041005984561995994350799781464157103661642802677577515648685418004666920993668820953339242804221263282830896998339240713018049043322831865396021038526392654879060992597716238300727309603764938843209772188659742065330090493266940310042934107935228988664794651132453683799605591446894348288921976286641294852161310830890566727899672195462571343415946924754865153153955862530999778029720179054727896026362940934974632810360272742737804379565435138261292865312581795259196252880678378258510224268741289271767236833633161500817859742595295916868055281884419957172523162570487099632989670810667494885835908712097141132676508560374342217333566645482197302081692811085254007852233043318064650647484740624280471359584710665569753929042509590857963778004931544288420541994862223669759840973038142712018910653851339897180656592807130986218021840055548297091940873412198493176493783524929680189744109338306192644625200250396467423931120434406888354321765170400591067115125335213029725524961338623523040996994081054417848026015241036832847073070152252152558064884598942076803311417110271938042496544248168790615296791153107795006262820910488596912919113959478331579541853614661060764240339983183928749689872996920988702320296579386628125787579203716895743646058913713923140931205045208792407765826281603046683322230254887404001952355456916792965600038140197269567357152862307366739013044148975023513350514216696664902999880268310241461530311799843127882289340165700442309717678554489780792408095436965183865844194730587733269601461332006659038004936787338916572671572081219583824374705864634822834882113447419786225676956982748930496901108579204935436572512625088226489991936417605635059210242837600137110652795115739619562823069560763914674167062847389253128108308180739584506467655337670650460127945082330948833797152594455919290699855539293384471708989162319462328174860509688841435827195222396932787718517659600921396864641042022106026785171096748162710460865032432490444953078043745655419878409483850403386483026770188495400343504152429837840649176826354338712731016325176314474762065969935709219104718764547520896907883976799208787260433514201337806251030948301735569631934049528880535904921903532663523605257421707175111863763850714084485647000408624710069249821212208055064288059411881237773797184291944730017582041876580147103602340736603969964970067004771234827315422645704357138643112774318123250335241945371113471692325748037834815049038256929450044618813174516534830094948724057457356901881209016695669544946826803530672486264352995719745330258114041775216817813070619463415343466494183524919762742016660288066413944212552982271059231461178311679187248881052092009064918158675869955764535818982178018411337270300921165236524535330060803981830753111491491146213751407682540444656330779682419993402114957538887343162641027499804017092363893725653310020362991476476628573792920033034437686683497755608757197847593485887898252540337427003519238943022889822515153809602086581743108430486823897952452536633154605087813203911240915928864132868009554362493732868454263723573988138977528087757716543928007874233022995689943157035905369066373597278378860046740419429919610426503334262611879486648639262785418618733251000482703353725176722707480048677846170174238501050173209722476802658836077478669397203809633086239822263764749560578911772629088238123520535384190714477905422843567740572748390974165397701522936722471588909780268794355464545415693693711755424287484485499586167298260271083693131028576692132482783866519970963319390457484471880984340183681585825173850451082479019313692507573307730828483381712958261357799209176348437107410835063216030342808041955148254667363622646925836504796471700620997726445805023156991463299153864668231037132355403349015638641101820553461057454091490231697054887940880530452019772572827319528685735110347173961331883268802200693096602173412872266855357278156381996412291958231921096607797203344990265010485862065117324735641583380269415710937030467338364477632820327935013490589877748556557730942975985263927238009168100537842585803422158131224858360968898152542564061905209965978491391318149860038016821216454202751229431490684479856639721630905091629316664671426315473922043308005779013412819749056909750883073146124377991542464399242592112791315874828033419272599153616644916259322879704505581506900505840981675468877701482859252312163995144909394577438489033210959510211711405946905057815195497282474817964265182533842120566618279197701737322341557411903544271762974716607257497450285701919012097333024188085989706452200893797447334283586289494645044708900406015263778952686524290029796835029347973931258712389596538875463549942098933136148372849130527848389148684339491329783516097205099823546702103762962389777738236624276296249889682389089689835844556326409029626054505949850862970766243431071869163086221570884018115579810655241252084797904403271655896450056076559960838145484644612488586590263852618795846294271751178124215230719302381874448096211143163604326908811783558533889308459834796243350375546603115252151852708438127580361781955213639517460281075007498649907984280848894528769857100559991795373604714680660322773451926199927417712529963927213573838021179288543003505829376056938170090515049497709477318253844422222350934202542666313976813204366119403104454408441731442861809343726643868200628922921247332042249554209054148345861773428480839537022259238600790703221435751389703386813956543359896654957830138872351745433029030446719063707229914676331458383179471470654535331897300624247251175759042830898131376119787787425833743683523168248682300151760882575131761822508231398355305128816588351031619792751405854072707939669468840443683477672626419804098935328485735082247297883099308990847127015610399208325314880146776134793901599546131485322659702066595560736882015430762821428300094256810394327578957486507647971672982157293453022334868228797811632802034150833421554713166520416809679097838235356934033254791182848131056036436059643230735048637066430156869444778706782226879333117058064999417082537017277854251602269397245485559566005300920333791380368699714150193024818702725381386776591163201414016496996130308571828039515693269310723587389015322358173204227509666778012840705345630205591690225303862072593073381797368076454194334254915514434008847418568534711949324500394457386779354500523618333531680458374261325408401313215655763672946731691475877839202298155170957757994481022363745268648781986043028400764736938985324650346279144046264781228133435479277805740794780009033314787504424265196712127041644557431575196458882626917698107389777951175977347269411521506413699007149108504552512377985887122296301994823999458549415723412760853282074955910629710959385964398335552595845214807437759430180218947437680682217507561487433813113401840437511957803416897037716877406066084968309043395494539539573389526205139749452296988903753452872370570882111998354576208080160956678624213333041529351546797872203036225305143103556590519931415904046105688069096118330509794173973714175628305314114212064022633939624907105468960751781737722481452645068731185900021042269699312130580699703984632784249331930003180757212404876677454120979134783127584208845860726296018018097279089864953118511492146110572720748784742658322356645899831178873224464058325655335042250954843542688629097587942005395272794304753769445069641533810236011352258355121244891016575593332593020398854949138157359760396635742974769917271707742928675972734163470900395894669477549877503014824681360903802159165367404033050374983324018305116371747108128103125676559863001791075855525244336165389080810693613083017783287110040434454332102806860647565400648592215749810075500788070602355418129711095372982604239748265426493975195042072259277036261651990405932883633817615549369587129224348792853200666475952797705551162599898606191748851628314596055109855035071497851214557204384229217999021393303284977136867046164870806332834174513176481782452210579644635800066679082612915038878039901524347056080390129297636065882571805796718722008461993313331816494346110253639728810810718194254651971926466246034475452588571818580427077444263241549084266116150427637803915755753723565013552445341567121782996697372013983503887387299403726626871823494271474531138194154429551546613919285917743130704948399143827581485099603073010228109064255764981966859791282095619752695472587125978172853258484541118036274664811117876516786237432746742483245900763345962926002669891194920620386843639403420833863364559480580020426181262458728092766755489951160760790428888782821583474922731805448469170403969665232325140247368189562320768682134841689500086263803044928598687437312294668238161947574113302490767788267208155903072340448342618267866540277786688124624054160065140455091110007138867117290818749197996364657674267432376864046391628641824580233835072364526280650066446349612952920504170477039253809888583643168796325689376806775981823261061818042189532599403508237449226791707072666518838867905829457163195414645591566044224216395072352526052881034830297266614291094255876487808155734766423435028306795063257904962515990497344919906315061284287847991739745713561176012338979595126753787995615968275433658949887502918735404724233598130605190308160894744965725798981575903156243654748510904300718789071127502594834235075889680320268446124355837238348781175419670960163363590921831685699294886957600821076263039208807216614935042489897153827357054539652078686896545672261595847940115759164909549019873950366032447850401191039796647748702809891162874392672743693622374246488222435461542230385031817216752832233187815016893099050596719143096398633839992250235079119072354018993227489578038502244909178832569296860980280073895817666463804635118953924674570520166232549585838490158672335387186981489856425480881838604291571774273343605421099575249430161958450913683051139099499425909778617905772989182261638576069834375962389394973577264728981635082747894356450674308289012118635306054502203387885116767475748877714235799586266361834745529089633523777658799802855717959362972701660070561060350071227153411725770762044652243101970656099485339002558294451827857945620421094938828931978382537270412724828900373444272265063759545796785221225062209045277760873570988090340397615252868591961888812001721605663153828823427817217884279898393118204651591081065308261193486116864907029428476751128719900209530766777670599993434292740710746141027830212280281486623985800431922889420631103413791721290939572081906034605406626037327374025331890182593187149027417227879227226045369075312458848275518000007235286870806877351442435659355579442097019492378754934191734751560742739980761934450697145621276207796170676963501755985143472947530805075109451502149695548663685659512724640457208124912807186028410082370419789494076920484035613212710764022348718249596938402903740501262831956671743287560418802018852335415194241891166720867998659551241223400906914715479530310323417235991867289974490461564780033678836877329298226428294735573030753465402807170999635444501722235685819579972967490722918748490163739314579742463344705111777021755444786571660792213439649353245327193171766234240194875741204800542961872523374317928857737310509521857877587774691133778332282622980172791022056037050936531726551250837803513394039670441529477743741339542027512198119024733585221624894803872449396903217348076871740799381308071539923827586091510452044532567507806742731328303064229004313787165663460230997526022400329324250080352894174526269695536040342333453280481330959654042736420720300242093463250396392155631155782708677239714121098831537770558955300740524843993512619138155097467156535957865717111473690568040314284917339356256896890232422710268894575417756899839773536938981094489842914165724880037259247911526292276367196909518001571315698615118651352427544091342729226245464143992727136944682732118685534992705095732757739566774362737961607810736728276495794703133976823087163377010099781027362172199156752865039873169806176377240173548797082835150523000079186713626866807695646509316945169951962772637634614607530736982393439925653750808760769488389712393213172673381329503009010386089692339059361502920333327026974410506059703971751121413723495361316940971276882297643025233787919174848808182147407251303912309152494050029673484001728640556157875261146621977820061599448258400152707761866791701016261531087903829424997196692472369124781733295363232628881902229302601150631161593891286098942094295855754134705899036943039121153324172295394754949970826795515270923537730396239636365756382551431015934523405998222174049199766258244606830983930345146349774511084291732137486298383220406241272271784718621912119304270941153882036644882376591601618098673712363242084740809631990328290898890068508646375178300222203855743635659116499516332175166279153891711642057215120019536578414454287974912855931384937147323025468848424824586798225465858384269435591735529277595082399177307155686328460904986036921767488473032177158978638948044563972415691533994434172315363701691380183047175684961516485903310983839978976546994379459236656735503408516440592298349839238482918929715591679117262809447045961672698448839704038235135438899985251880918714235043772138409707687769438977389644632169865842481537203390452137623659242457047028799883292357847767764263511971302356878942799254308272689605922197445730830647730930286854603944842676253454568587360565491121805205407201378132489719899308131546824650777479923745279448569150172650371238711790498391249726264954728809930112822573132842190068437211847834878493344956459105053147109070789830924892253003727926168599230056752352309667112931535441717556748104479692794237814472838087132441378817014516494638972424695605819181010267146962489658781052583456957546396783891814704025778489832585428835360386910985865008988445905290343614125743779268344256071957791257356797284154926264402503813215649124970372107701432484478302349625393173380306901015721495601791562527035350433979993585130103854707630120932379086546384422291315379590055592273926624279441708258185295128450701944723868305782352952458269665973125003707341842707481704629106776966297053660420100156260432701194075037961003015093671067551519386612849609353611429295332738831328958902661896997821632451029457283353447855851540486813489372770714109177964384119883228071210026105056946272616083570108894287898657387892316235159015042367095846871905979229635853105662313127766358458488889491645138146517294202630937896910216269530846914290113803946033351489118797209174667373286653391108491956399749354781291613446730584202240568393421630821752362179034337638152594279153406847869727296024431905643836303770472460721949413438157147976461564560164859548557152335299767843599833737113118293659210499408302350238852263332233919029622652927982930542698683686494183336213706725059280425901350973042288730310666106278824329933863195248451698900415132432190162836300417461049871541220425976944025676886042028717070464269804481135827046759193796292514445895040258435890528400291114470108676479928411908524927940723279758973679543596761852448852251909174969970822277127214898513971095878774572361119161929647992610382546319921053605993259972464609041987810430886462948220870031948853456892610792378413327896333793329424894384482290734645723030414389041394617599505507360650401960672493061364341927322369565883610938176821421545455428356475090506379028239310878016782173871240941925920041818638684405527861616620189300313542169628491224999783897155460623246750106617614386207980054596155049125905098858148170135739304718494238416334729393169230005951382328679905717088916454557110539196299551805336416387811541809286273444875425034575741992038081347307878377763241885821556538266753183075756830793645487266041926060971007003060488428754759791840704418763659286688906326778190534304689831226454262051051672270812960988866021446070671135375340886585120200146107149835056489532427446628479118609938372389346163113628810269653078895932697962805324729988156222124722319051223973476492787187884386546481536342614357874012427588585891876447584991921134764061328410875108392733333386048737972373512213075371031524142249095137107994145438568619249396898990876156582644445146885610375012137017087952985332968124241984521040695615081600848687284659585780485460108815147601831853877205652828012778289156199176434613102041460895472465546556254557773460844131082060212356582114619166613371609887423994372842482891335583523304381438409907696487696069749079805179796105255112782237150447538864705119221183578285153407837174355732302820090558653362446251742400965696876299384761293609553802397414010458944369145280232581549351100157034385052111961402246469379491210139464397111212068032354395286766857049873501098566299034406447265728700551598985942079506611164981467458513252532148568283227855643045281485829623924206079472321472117557012434401892334864694908936845138324293964911169815124852969582085088195640156367459466774599780382647679829531615448262891309486865103635133523760205095900769406846656592182789313819251062695046211245983646938246203530006895879148623868647822045471401723115309500583542777121083006134791272206762300935934302066906669320885812203167505087056914282279745534485714284654882432877543087558913057071938224086814124659700435787557898230603972338513267696255309849720375242662212210069482766397720237809751251069331232510511931028530348010106020232103189767874914086064698961220655380867998246091852916751156164006824804621522314910995996142970514696135141837745246582770015064359064926904472611779919131986968512365802480573114415288708457671895567418108503438654679353202332714284246203240139049353320754548063854285587584809146432608072118530962356314193375110710327067361220570439029201010119672169735026814269179754413624509056606116001705327162018359817809698336580505049310889026611874058071701361098302351658384399452817070186740212166809874104639398592643775900893739013789779516747769709394324161968869640350168570044162821644819320072788446666102669111812584080487634765250940872080332952684219915361124036028110721982425544254870479445548305067388942216079218703169302108480439682079948018479330656021501062347006714407022365734399674227490792306419537934438517530529129552403930008566779162246653871101674348353616144470563597096480034191583370523499023466776649814292761254161229059128120458751516082634194714144972174532354859592946636580342430574266734290644697465693304059000135335800881871181399635894922271642030030378066388133560860692703211215100942001558495688462129158370135707847036785111293400854602057580871028461576339671837527482901361506961138264107584772283962626986990226015514499058890584649687860916314700304780636420724289398335569801087150058306061976446677562470526895406282581843939011764205102651199831742873080799156383459863730685853451314554563275029994300430329763352648951697863652838283213617496362266884133401367163005426894729904992778356607500101189395657476943407567386166266287882792141870627098317672383928836477271174743761203268796298485687801145339070410689736689572346787895874728836530296249638838671258486736797032685594657959075316759607885302167130039477206781852157679847519470536925201240801777043764046417367961727474296277577913234731183500400029942291002634411207877657403822618165565390957961462988225432068956253572447390570245299978855837094543361762334593773682353343829128888663284267778324010396124387671735169446976741283798824647251083988202614255164061182251438713687941251799387278790026912909588982261014443188195015403867459624053805170769706989218804204562218923528336088742086666192095431613412207960639186446158095364570350589658171280809872785747545737142591324863545238543294273144119156828344061547808908270258237936757043464618325521448067852727479922930538615129978503516076206622884820886157239893825937029184150413577453064212160118102374865291529069432292494980583298861999837744001854409123026039072390801344809950811913150688077927096320127518358415214203853655755541841144622888284880984499945621020865887209447471522696571313617393353396711710698448336813676778050335517562698836730366419266752590217628012718167589795923237243387729290546358912044887307433881693044471383376627036256403805427772291421358232204265855273348806142040902909934241287613191838388937038267482038654407769699700142817290546190759559331884344072009860494911475537231277420957984034041945949111266243305890433346525857287285007212372595476685743582198054417801845499004249471572845744488442841817528854471046601358059518934544412353581575718125390509308771886833004032155682074770395389906463404875244076409834401240582485293951268211516019798730799551992660490651420247376799332373348728096860523223311568869555678037033799640347134003912511002906674347783980542784851897155665975265291719221963207571772996117851598490657196559511624317478057301160281968303018863548973013381643168568748630406991002668399063928294438360234162220917621080408197200794834827748169765961646765444510176482814285156979842024301315548944100620426013186370471544781963260411907173137469088375947958000049949036659448299367991513809440225524795383686020517178008389845591010905434800312054665238654973411510377554852673984551665564139104430302844121053216968827723849318999392845740716890712979859747183381923762627723661243892906367289334866983892435743407733844201997632533245882209529116179175346096561981744744236826978693289006128771134021326935771819012890781100718153136975952026144182153170235652008886212255096855819317026947580022637766924936705603312041254328077613401706465395157865901934503813787000987056661920976608491855905701780850705785201328825726682743389465475138833006149701550882347696297565294144071316545423024669863603840249272703716068235644310939855703202418706101414633932846530103383774663311164980244233956076888653576733237694367396561402605805363840006000118953273672964740045433013025567512201677049797296647104143129601903395757523022801911162481372310617054698392877363558733465840480320858655928555464494495283240763658353624785055288516351180335395191951412106842324314959040992267235670714435419538757544294257130905311526693567819711253708906092167871279973108749366078428941699318646383310119254991781986733103588487394356589860423544020419741987019099861300831890880777846765707530821829736945260231438095586188678233120027099998268254864878049350483653323526034437024683123710868763690801839855497968461490736569530850731370328225912815258607124280860699969476610362808161652867049157068229355092054508843700948761221624173397363337532331298743009520159073777155645692349809918040839371163973913216384638817945093847241875695263057254550866725743039669033891339024687533124098598682124298302819578465051192313441106321064570525460840947621941761512710162168450893441513844485087576210932293459867757156841323540658817562126373403770450384268092384695417821751618660124101917965264921455066817609912072112702031371170382522034482432040808231061890092723277615761295352927192441618614683028327501352954847649977846945472737103000045176891408643629758673700796438327040631713932066754163029598043694738937019234019427748900737935851376218554735367594353118886766387735828413857483919960187754429188122558114717154868101099370685529479175161321096775820589152319535665019989629487108989583540459816074207511863512448579151351099042157027389503385394284940330599198609738045263331632732777881755257011726865642994670719834788363197822390742360920060047759177478949991721448944986345742386237716772214250722281034412216555339050755491836152705398360072026221539074337130010208656198851762325213128498131975024602059033794823302269277193656780536066289979943619335360950994267778177631024374212875405710110616485039701493341067453102804444617770098419714975120295791102362862859611726400394752531444500891862451156051800975438608204497728414225261575918885978403191120477531806722505696484078393211549686832799017436784390785042747741567038405269306784114204521440968953344980731588919554373183973603135628057269346146539363813484513548785724884409709304957930012438100258150678210185890479216077688014800716807602921147306773427096563196656584816585605995296939658006617362643383230797468101346148435574088940973168478325083056410333023758935547381033872182949177230896572066712611951990240933165201898499386217489911424569980555930908477198867592020098818066544558088332933947328072107919105365013619891282653551111317717041471087326438774232056721042461171727710498363150914704049580134324821040217021390645900145211626312228182078308860566615765347516341044230406103824069595155346824628333511123309508193868868806746607115820500867475706883946522845283859649964606378304992082154736881256558039918468928620504326835161054732145893269424457278447892484318587691360681204955375601496470375020561575746819898484551222287920695840929127627266778434181011953702009119414050463981876736885322136432039535077456099634553162804744912507185771898812734513713471103985558899960091301564051334063209115229001868043736746525532745208799559596130103088297375648673139713374957410792369670790564018218450688576604647514207965754828446635345018160890523789045335993935020319083994032939574459203806348948839428560786286237789862658624081192552947786894681031460143193450695858791710764003679462125974699041196589860321991374371142086389222421843830128544003181182076998875565384020746293065000521094295356316104636953143349463000685273978797948197732039746987240406510795443287198425211120212732440124245941836783375621188178990006613353839204690948680054993476531332064858583246580512103109421797687568344549799037411755208413749544164997620787696121708722615401417015277066229560271067026270857658050510577804291829162610353490345178142370954720991168178979746485778345819091330976745866984255325810486722131052217241037365432959482944674836514021692045913368636619894165383037474759031557539093418025612890550891615438304728042181404232844035254228202241328673106742289102139397174649030609571433660409081126170716622707675142350441906725592864441954267820325049332403937185771354070309355068114090350857144968651141213288179355691425422253349423570000000740443584739818742725982909713688785261792646891714812508916080184441481223580926404669088130154960296360977805752220943667001572670610590735108120704128679475227568951284954785468566714134715439785969613345227966306480137602467999798673634433054671937796503432447916133224834117106074145661298271445611328736353134769891835141231613223067574352068581838365437730842525226357990598070939826814575344723506665068889430727010401449849512284663179087592357369513099903805841379184216831812472157507451539276035194721775387434875814699249734269862494879214072834331890774884021147149767063431113881970446420759031373729499284849228741846128342102007555419503228642046885389316182899463400495840138176288235004797670927768620246437326234403138075919040930334697698927914933776714400554466529752478896572840522915752113140949651835774619954036633436225924771283800576450356584824942902424011766684136987950933729829179639337511126559311009015647046776625334683411004990844313192991743843662713707875528379316590508309249098239831982128341275897105692904080317391661172939128939551196127457611368696809398472768849121807166187665703463146543499846818552579599704604763544477197284689857649822746006217027843827194146811801320404302326619180722539940236070543447242904817168613084159025413497307126607455288508394386238398321885887048467014791754291299360587701870442371213734604886526904987647434736213702294196923805974982429581522352232709877674803507234955759459630834623993088341487400321458851799187599438347691677815735006550424652784837002192816897174902876692142904034233446963996976158108382850110452623913886128104907850745505343052285424751414994054309497930078382169464530115551905304755272510207015340461283876863737853782808986262369548629410341022935417652483805319449742302500811344815776416196124944734595851069564771958195220766270110144826254732888169878221643312280721388384178204366410778740637990016638231738297370768048412335260766116167454368802443985172836506574103678418267575452444902463060048904805007577031747900458671875033541576363520391314789801992483563359188244297891432570097954868126052199223406150021685646580494317266208421775959247534202307446006290144005800274457934799136623022582325335755876057122729835569013730221398133503381614347136745507348189080650450077567826325718741791799163379320584359382488019644338478300056094648293068834006849576922000761876095004264380538412507334457121057618411812228767196222886156598809404409169706348061923431980599991452485373682372264641137096161026198900571391926601773003545561377942947712215605025850733859642561980275110403506482253948721027860648329484714513273649452946805442157465065502423081913129747308515800299439296742892575018698821611114048650126530624521484207719331877410791581574917398409956767254688280736427275804602647579450361356366310622760285253269400328434382053172845969234693424183444494737479015443953394611791751403581069731428716364508838041240913343386321458660624761405807765443018055009322389820120288412843479958976506515115754416585126610087596119065180382957769143085321987711662136463155392238697174948204454939109030983643213353105232613396820985580545493890622244561373585932472727938189402387786369765645406664462437439880930094032165876802474519970421800802248618398502112415994849431393688935714835967895326855270217651935657305744804488896110309891471405074048897284156033983370405918691373859947922217125213003831166776472384348577551959615346543690350182235385544969427392574378181702021049879640300972915522519114643723157343218506392663730889089188397070550015140821188112555864269760287982982586614089164599968585283504249277320758577650355501137767728131912775182141940903265624279120323087291691445725223421455463026531780160767961154228492159188314092591849079053192268987380201649229861801858354513653956385141629895709248237163013357388679029328552808952370691995403750603275918014188121938708862586088526542042142346818155202224328761574738536083525921226244080485701990108022215981274338333091122334702094861374519797213915279790811561601893799309790157540655849195507102918711294219103672935395818829326260803534401960329614460713444070495999162562088755873042537358129589261998706634749352437173270919095479425872572491541430725550274429207095817267510708746839777571370210514090979376500436807098519674410557981302699501695336647828240099419522953444794234271218810366379527336640440818771594335360227565118829298705388997777620885356970758523520423930285765933439778086133559111677645087677648781490668932447148502051481723673627260107591784089232450934574436728113344901888046184068352750439836356290287551878915130075585727678990732672276006640232948359107418871719710558766469017872821981597427646070604304476301524323699553804457262386566168060538318783042829247078576052061303705254327233121661624914230342819730517070451785936256090424121117796904230571637408377683689201487602381212150227181061641908883506644521085317344929495218370441928653739832389414612272885968622173015797038862116756933454090416657368861144493642192980497260850562314619235737088018436375284070415329080084146795957199147275112530472586674849833119135030536462926542121225737918486761533919129360453390344123379904453480640446954219777379204945471575499512032688667615568902613166823494179501207035652964825477064395524858040297941532078155994306408814851677541416412711059733684164273473234788709752156154852613390728159884224050323500536593672503842229075033228981516405797636871109382771737359008337534390978266186643502872749887788892345984407850359047890869827651322827475609234523060107098188962419893059721877145371322940096891368857995133833435271409453105790528572924774709012071846391881935698873462126692393604448820907949966092808926693984944392959853631000275697989501989047198088855656042706236167048611914884012913575502926702503546342301949972710693803559040201335220947544269426539240602661171846297169918227102971007586824995673728388298600892735230083705222381834308103559192007366536454014402940718596531245661277819840371024678797765054551092611681658071119718353854830455452337399202747652786957650743517696638814760979003406050722549085912788623988406071683646943267922452494608753223855873313394395723312839662760722883611651595707547562620782249415881975171257248430816694288079438582234123502879298994044873307278317225704480329512000065204778249651907309573647508150473145618772677237072874812735328443496380072973873879618460417785428869018880174536613289484159683597393760758476389021695114548095958657339356675101223639635088672230918768877686410477129000755204593153021109396121265816729387809538450398338320090769050155432099180709802951529350680592259063044038032023395704963830267989403135456564751040354413864717747455407219213245857529623616856300168617750079179567994567277345845589129518193093616986873913764399141046508797537681528993032088964521781360538063019351650534734147841738932364053670497479805079635535527272133997952856768292119383715148613941116547171679632990856442631159631633138119297728432193052443257176730856883713074807835982489871151716990854441215267983715052425476412567610290885256309543631792227890711572306286194969595953739586166513646536314120529385142020257717026676244639144825284106483506464886538345941404679023982523666197258846870241471657627133393367030015879681800801243607278301553217565433130226271855146131440467964808841196958956750486571238894948150134457506964724008713984043181884365465625751615667540816591691571726206342198736886284059501993011948677042100223592251156313536302839696940072740085167120241079688146054867730680553274253915727037235804592964253994975660808480518212769077822865090068798963901519013500099468473760211026192480181936903791748968950805854133441005423605715537821643503180084157172687016760693972792163033565529499965179504144851587905744957519188014420476165341991402673182114104136171555060332523309242815785127907302266778416556444140361106185423856339993414726635616486693410164898244112077307964573656774701157168964300925297670191301704568928019339685145152812637174875676978028831600873246883043237654615447147508203652021343642610340799332077222413537258708971650037233529649890913837652843530920998825134947339427272423386747700330945009330287960802861334401381929500990443035133642580702884962954172759138335364651596871142954738818615242297764502657060669995134781247531588390593279185220095227870828578760309341044570724919279142918342849623079268041919168625808127622400076094031452362134539291903100324027228558648637732818572667620169848735394416870676572535729984866919245482726460256670522978683779774312654366999742400914783663199193363399387143691654406715472849868122338874633113187391566807601928600444698040588942721031789155708348214473799505006350294125437360276101020952574901259318614598536119460342291400211892035012702529986107027603927100195020778264723577230764817718555601962238631536647194152505295959562498001500910915018835293527544097077706155107250144666606026322930331433012252375214006780465514306011144330514419823994414569812097336573776745188567611277301716147100980435070886382873799065655487513884232889995260272190219698004611173809622036833608006507330474636255106606097732478223643463757539571579994957156676322516814528764173073561187724473755513456648499798205234423969767235574927138759958767439492844561906307940081017333467579298235660668477663484454310070687554401872248542203592218619195910304363371683282212187452049585245340647669236742996148757457367644680266679932504634769652215635609640321030195257782700507440914739183247031855583021202675265320247982747775953023221601382409480036635276100992597123468745667884164801581404057008362096318491896977662959671648359014907433098887204240858236523618710491549762702237538494915860725010503394449165951346537904680689809127968619847511052317660573204993824746456481813697654065778002470163168847368249257632541803883490064491707232734940681734536351471635306060398537473506893234190215911219892333317088885417642275239867142662407616606277909752123801321872842630357381113736609010360975207184700952455475817161149902650687796928979906873525143344661658010107429101924009302362259071476403683153381294147367925497566173123393331677005147837738058382717818718741106439296808140673895681450228151638727809000246172194954025745072133685525918349299441965671537948621063339155929604266760807349581535222686941090700093596642473449954723614771499622516545504119361354034000402659646052158227683893186767930720831009218377188539927430349911085443686783857614515024755799960941692740744021714326724293947761499905976193207588226113067578858800971134819759273747181956124542707145355335715493337358589970807358823095443518175556579805257179454397341065965591812470132794467171989661911750461756886686466880293064183350903738521399873062137080580269366299011207573829286433483891242112999336927287996525186924197947441579343441572037514341521371472485433676016447545829163591274322430235282883206354185453938651789518288072074059788081792131995671808136912336482306308956764606026738475691260474415606910983985239085582077245104488171171562681592098435142610502014981238488165680314118459471211898686339433830520525729123337872204464277965120167269892683952227878416570262243711903042013692553249832105201273264252520370667347327616314648760882057771145919248190288331413561092444962364994147041213797186045298824223896470497765860728372827434966251054700703040187239637881753760609094123548045044375185704948878899241920761329957379762450435676257028971189811385343659003833084887650740878234650805154955509144244685647812203246980815036355864264238855887208923804175776847037381128321931792272598637206955668463093645401764091008140077205407825050742465233265298210844573981014260980255757408151700886970700995463084406232125600551763565212299191445720534104840223105740909486700254881300528352480304520176126225351048141594780061418109996593312141408739415759098661314346333131084949584571999946471911871843763297729306787922291979915600339216263940314740230904571696215373234958806650324277251480654009448463756394997352722021418816438937905365586383819642706737417766795153498507169464106194750773824431893832381042333987725165274162058947085463157393709735057704532359185687155661879830928110980100263645149840883352054529895620085109757423450020638194788074187500504914085849297726292087563374012119533383040358731907900561485911294966578245392489019418782572633088080620851833659353270733948578260709459403980037928363239308106243080627131588421027359589599774964077353427634639567068735087084034447428260353318554093358265697851496984665687977617013994998023667714160236796117011235133582058186788858300206767498444937149300215708892644421388513794711151842092563611681216333557297411186852467756539714050711361454187176319348087065367647950530442041229048610529916218624652520422993257306498388899328026166302727751760712498156856085345457177043232245010030694801179517623470661292861832006118199089699826590024359935963437510877377486786805394499470000036890084415723183458070082140668657009461625360004334001697971905548587942031126016166871406315241420346282681084801322384244935780702884361533979411862867180557280303304340767810823536919442215017557594612979953509393254214320053175914563525612079536053233855119214491170258921702513099613948500688230383972663762527072301555485155399360340910888228392219714132931009128950285345810110442147433893334952237323256494708713117091481471416535256631394364357175128467963542015429226276917487674469328447448793962522266263983139058637446936211940324364354500079525545745250978377895503064714411512654854181977603595930807532680136515670762507197681530256779159496631875292387407307511559978890967662059093088270081507021516389811793712097577049209016376892581618667865463003810424756739300994906248224763056425482812150450195390120580202289307489066536035868747601373788675076649635452978163282464031552009109237636013448080128350879728228581831596783158937303839323542191515427847721961182557020734339983405288990488311079149227397234944091411869786459234613189053077297077906710061468833162309437495993253694935214064900992047385837916205194922662026726557950063308042158376268877992982552831376218498347742194852666071795343229472058328514241897610219409048566487444113977725027159912224657225195130969314595288754289595737882352806128948897475277360138063813451079803042500933377652340101265647470018594906372768505190036395652343922313098414791061369078213218521564109982380867042048569079999930974338287500464888409646615912102530314525181844884675159599091381411080634170725641746856357521266577089851366208114282219023272233210045996574330481670869168509975968735320798513599659651774012812405320157689005699652906889821002182260874731160213125463212101314087761387998849678786647826033215080318617626421197571270851375944265653294844867721531321368173378714422132091274058588183812652036166748998831087069946497264654973276048188308306297852948887556121771704106386131575706630490345301172694337183709652733366733555576615514658840881058058416760400834418985557172286443869082048236383187719164313595775885198907005317436353297823332115208584502998005612000281467411048492710807543990803931522434427930240917215096080248925565493706353980208410817491376203256233657259813078253644467961388489547368689263682700166904451737220795028781713016088870620222310754550816316918831573135529481419481642651597298721685145503783890011306990963008752495956182763307365291972702684962655803041125506652641642056285311233707143736164225707529495302256371012934901587266983943234102214704642737569639432256542786240521908279434477385504263022387377109374732110511638531840647721955643951254273102053087813201865275277715008273904107311685120845417706659357923874688176701029466678660144853918418627323641545885424791219835099270124723959923110541717164866446964188363760107933081664458933713480170717689694391176279632913033285086346425275309422155899021405185067331449844875698121867919660947329265970826837502476396576495346526915400252105931739152979575630105370941084149042826823062238317713205223996261676706101388839559303968407385392378946685995654357351239914543054915041158155605759476674190642376754404845303869262221236961214542420013427945470948357070346058521864397894509103001105658451164531181935748347442968276649763307044966602382144953434007326410028674898676080337232150021013398790111319251993766870456113110709122891389008093197865984350528557785581977496272565407561229933030858716491760388481000344929867403558301397833393603675779937104240593561507147922251782039499673249135989902166965785098518888378631739138796267029762636013464558719410135085497780970076283535454859269669556851425744539982400810966873426698288230108626289541657057874321036504067444545326915107548424094362500018021508568660001815591272746522089024677698643686107158982428865629989949658013258395786192806424824963913467752811499114565270616181066041431716476912602492752596315604507868872571398886366029009087277365165660339220156179933498919526822721103451690864331909900870332253972210676365278184893506823596345768473466185991352605515054444618867682935972977493887046739059409208251942563855841734233650967149674453246154845232633362932785763125776086130460599737184600591502716643603863064182410412672824759088221489945649234550966564705734297054099952740819720230350821911222315011397057276200116700269454798072475800768022182569046451834862791633117170384563398217411816390663973247249902063900219596544737234610352618845810608326883692273186183669821691725859963504164692256875189489817362742658606091781710386115868648333080617446733583230750705039354009359991003675633948839086302895440499898235349166766115186271704611942058689666233767379070679754834128425698934652072599333322127769534731284450910421472485229792654451028039787198916525621169206626812205541671827182291094988097857965181831035511392627799992888929032470963058785288540296444432592927189920220869428529624999973366085742396751650445011905571460277466890271299122325900418168369051074673209328710306792178809626482942156593505871877495618793145667319059963259587443349465212943650363085770754680325848249309942504697803309852076612708291665632960465188591606789140432318781995494694249115865033831291933686366846556588374814719610659820465156474653795771542522305201958541335899798182525822688522224287139222765670146657825789336875267754265337393833625159946150381810789101751008949740479859836136816563670374787295071900579960531364326322950338580427744211193141797399704552199720224434998483263840381979684994141499674570654378406348437429108323046665013961504450478337063567308579863448361788812592654185218186097398182159533892940185590868003511499725742598244848514823286436728553938291758454409659392187652337776528148015251845735431144045859564099286382501831561976648402257142841590060016859931962872518294800497193426401454784102332061850429276877687091617777813981358512398155624393622650669636592848051092625837751336683719368883295140796953052596744604177776663312444501165526312495811073487965798757882328370041132215569301176906570522880964831331277473853431652194052164830268257257917807155289226254146502463722176897484068826418515845717160672574167298991505821889054672719052150197474254517679644766279832240038650085371783106227413736514954457242759134198433844876366835463859185707412417693275023143471566632103315781960993980292530179111073223949912597165471196224403607777760640178282044260721506937885582212326245545787710905088108498686658613670523484400250090230297534458064203562213990618263496247714795873533266032586913355056210040882562956680076182307252570355321492070461240972012847056154957551338956740975303092054250835406955900567427052146286892308786768767758180749884502873153733584475431117359756468294926167409552976260037256636870250369114338257943418714541823173869475884652244969340418329376771833664599625608784328509367998174740028089538450880442288207406561042035082879535611302102421000601936008347471262533590716061556854488617841127127286364184144262042351370994977008701362243615164620377748608730229348629739503985201562069946618560323937620354765005151323546548327355793360080111837630756647544874113183583007762398550192404606161169307796681808284315794358951749477962284970572947316266333960412551257199011475742358852965853508613886684553027628884599126023253071145764139387065655202909130112031556830764589717847311496426038731550478560839176955564259845207125511689107519183681162297686917687485050001011756360106411714277712574389611812224293935825521964681444822272322629333253322695683072768191999920565752002737941406820640017161714326210120717347673769677375091410907240891558178934000387890632980311726809523122634255002538996500943501192513492181523514983992687752796519324381687958165858851962765643036820433726968586563149113184523995509463128530137998838122385128600171561919821304085564716846510958015153946870726611382328385947529327017029715401053003588160258127294658689323258260859297631740905133921026009445473329230371330335215906533790307211173141099370049941554051627469581983585892431952093006460407833433606799384066579482023082244076326170374899815292597462417869056680250730676161459175902113675152533998695324864838756277234020820658114090066433161266799246953385949749639925137915887880607079103335989660330988879281962962605557625938159385094732917101704749543322840109279213798830966707266038900785728108085110101907030622256323111230540735066838416623897947507968879331717712374361409173024364040709102809751843982041670648200039989360052407962510127622687828052359756762745017684440597886951847522714565514651268614014332319338596965407686372356042107907328860765233920123865222537024459230591456554833043667853055211120604299034722435739714620533804719991260835286940606691168959218828281022836585500947501652938021086744552507458292655004716305183740733587746246401245739885638813089947814979271013846448029659329766738566334334477022781892918071352339720707501361463570351549390703512087842903692747057144348086180029538639858625136145041976658330605090993087051968863930697614590875637756080315140467496320187925788091996549134008574929414491841722257532723892441128554398585871088337498058375278269606721327910195085184459928741455585552424469864799761841188104486943288936766725355427933911098909506344163675603616628636953869113639103417889391214929989421123014600538956114882245768171197782564267884127209028321786914219967721850738938642007023204482189971264938730611595337280067748667253059153380595822476043255800605676616851791934720935138485906846035579884963542179291384863253085901822424058620043915833290270847292903224137303194891710317411693624806812255914745701967304755824206383216657981970954082180834987580611533912187039879084559808383207666512507636799092216181325179479992699881686497031596818346096682537869804830665404559118014884723239550500099550414652606984165060454648081063674795160891180977925393145505113846480639637425244642919570104335017317050516943138080734561850162823582962204197068336106462396441806198361684728179232871827491255447331557929298936474709757168693375895447711089101400532704428692885913278563503276083712859169812056474000050118648353008276597954686152904076421861179589169811796316924872673326426486743723406698273906292788099566403502313049193315430180463237972001804451654554138919127843150733646690188136781657502300466840209505993643401365570314354598609227196516969449816528092977903521142465500801530695278149639766586234510060365894599142475723932208936388339133679153585419119779937337589907398255294631654691173526422968882078886428784053738802903012382902753583425286179150565366904350875729819815538766613987787650234981803107679226968980437870404572993107986987791206995421990955325359745021219239565748436478350120785412089792304065610761249251906968045230113046580195159139453974812782109328788584197674056353560652518496343223941090905338399729815772698387979373146352022909859764242279476086549263938233756742469226026640890477372691749864064165639133981431803828779004615835892156637109541008520397400379096084352897562640086161281299276356021195734275536937396999021857592789890094198051158137898617160904435610652142787975050769856966588484116175638444321548837748398729930968223510799641194360376315998293007059616507738461964985926747285125861649729909488492571540164514995414541203669814264482464046515080160132000811492607897022218059161489822423775916176057291052445526304172401165276936874365858144144890693925289365219742731302216003061398506091866504072047511439971517624905205123873847371094487492958564216111384050830481627810832038138310833596371676610232085872279629000168631673674922827322206440045817841163865221496934504221185987375390208978290186394169245541136841362905199033156829048778018363114498366577089821754716003142028776144236193294550619031030606434014890335447454025427763068055213160854597002566282668264313357931372516710236113587943264981347955773646478305748455616112544144259511669791054807267730550137962228996531998019983034309580435331448217493465400411591384649667382166222886462639820976782998344764809210948614608518036055579483190129754731643169079868284868052103900922616493921628302020556375099970894913662098804082492490545632181594436263917501220543578173239578566599280003628543846772288691416543810213392888648371159333973216781452712858935279256898844965959101391301743313784615705018618296756414025603859416377760006123731583120099431158907048622430353918366685390719712459465655255123010104704611951005903236377090025792227088907886782509566450170436114157757668556916108157043188196470891386683061215773628000350496449206250742123003062366344176175426164034179088842757274465080880448047471644707968966454948116631074123571634799300841049149202962568491192086486796834943039329636348841738479351472840454373491228264971739783535190661418829154317380796017722194948147145711273863560501505169685370880226689388792194512394861970479620371688927487479581391615551451836109371618297640905788543705620455669573800530227781440372912661205393013265728271880651783610004641004508873834829336175789248411866775226626336772696534324182209967527636728922997511571889730216546754663483925160710093253614591646280804156756381353704895964846093828762079044331166141761892289210592791784088706389964301468472745523779261054097063611048118857198436988087079661897341709882568086205989863002816237938302679115562079270455769132322028132685634368528974250148847144266343443941161553578311296374899994463182188306217965736837663342445788366687423340295282691730205270536072096366810264697220279426269930359059654800832859875017586221667772190443207239500139622232755537582258214715693186982081568660621896070645047367218622028318197825350499471438387252982815235756981096611305040264845567384913223214851145701139970776740555219970472035457114900850661979252191903392373428558274881455829848295435489647074824409439699949116245077658104400589627167842246708744435012186198305867580677455950904460229665181766501617260975138916138592344385796682671703804382831143920065959855324344128970107890920454703921167809396118984174000645934781053956365573910001666623863243217258979289408607584090415174852448004291837770849202781923805272081478844115904441062252157393025424096909756219752244746933520120434258669580776994234322091401330282535830236623243076269940394618346708830941543787893697716628166981210476010677130429048209046217181077798040856143433498547871937251675228136117348473522537395766441721141309103329318306155566246237263848080100163379059566769035419203879885177676101378745383056094165286652908844928666406162496278069972111021728097509526245944788233327380564365999334940845719365144540189305517887601832555643002498026084265951154465121275166480152349594153669582645934484818425518642935119316373085998341584101387805330959658346948014057050886701675370249288622853825862328906672132533664287073046686740380740029496726336555332909854988899501073749457684554485726698978848829371785577637716365101925605305705151145269373487105393757003867886273911885255161034925676287033641337360369017273895447946395451389121313145307329592042340039507923980278927744695278959764236110377869093934268149806761240807215409464076351847919789074792529614168577074153836716428413991794492599462547530205299020343143310503955559600423511276357429810785409946273622054759030118032366765320949753625921210787859390474336833663282537832413333724990885021961430900690102104692771714238327721820125373210954635161734645478874156716851933248981496749387343033407815037894366763691323079411598958942559302077312788281936350742500015203139889841699180653008807734439188650586651885541604054393122812250703282268670074045485362819528465620775490652277681035217845128255028032571159383763511228905375266601520240030213570418473622080492807927731211122668382926828433918371383365900428152959457139503628432195765663038590360101652985642458602326132300070976832262699431448245843582039628859920641089477482078857825945808526394810586409556739846403128183547691160170366641320918722714095940679123609457993803918946204418547149580078931297529707456004828469292385271042717256472065078784903756467506014681151388061316219178423433207519813522667849809340923363549841339409399695257573684777797991083120780444382616675997778256220692223577552079345372544026453318654029897919497943538518556587557098965865203198235804846375845536267817729125798463164994511645327235824841896013124172591896280454642361677988716210015854398661533774271052952201283867596620820367020704742645231589885329168663475861008889878144393488010792129207024279609683326214758335969893789141379766547856521934288036764029614308279883639840004061475017813023200218847717055296719578923211254269488290146028731097913131405327677591136610820045094360267541251174957581089551989522703126400095009983972999771589465406201593229885996347594158858142279138684676264627949631216803389656920936795538060774448076459425658097965612105524976238378253188851114592869213292541978519421876038476317364954826322128454146596550570184017900345410524990415424999565763428520821210651886877657290005718877787384760396521609481024663866483406684197285018078691536545022319282001812195282632447794545800545054157385512293678660649447934400120071444542073624239530643685850125612191251445004669821609284576044120276354723472544478479458431523185524235110791022138604767701953805288022892990528453198711178501490123542732966101540325029690641748227398601622298186741061777642784094319601592404787821000549564015439912095126838140667645175085085948133749206093775553896802119209687546008803659433114749364157208000006797753317671556269871576135452006808631191864321372715860895596643532793804507261049678940277269534641563337835900901451854224240974141880041853708376742834491884552131950074610445619501372859711015332206759683287730713348886088796188440373621601855617078404647102166836735907343969237020350191354081306229698413219679119831044610698653954827889263610354234310229852353167564354814309334758984727279877353925525401931696414863077263221653927431767532795486909389825243856311243123700666738006250186530811164625458234247469744960836756506051749458907300775683325305617934111903237026023096366239092084103606020619604859436346769268914006543734357650783382338798975018152923590037790470373344030207202651151597272909104018906036142989478555417737085275473734893860935508594829965382173202286974346575886047629769716652933130352798171269773108660374999123513956244103745210485436506356408228445108011566261369676933149859179379779580693902078034987132998015606247387182181156850210228223645846593652505271286140637802392076636585525981154737396413747925860360712538254422545323563836779229750876531472679528528468424389748122309539412031267556513210633323555764350317487729280180699219929219650778131139058973364414481551745029429209288642315539640608965457289378151053966194876086732877385633467114664842925443232491217341572862978709438849253547810196641302083327036133679421022478483086331095500755219265581524724670299441337270355444624774344021069732784440446224896167238868736072368392337673143469368231212784144843603421394292981151246966497930858231648471069148282823424542759058498335672521824898003854165575533751182733314034367711424480097572138123470482497876851043650223586363273277239926455370066583337976574981154704335533126267562744041782402356450745018718859703215273705810949454781249253519725158793021195260949003127308335654173430384892914413800014732752564081583982039960273786403308554737536625944452318392140841627685193706381083463080438562859361784252427192823877957142320014412210429254745589338407372276414973264920703700804786500957485412717158228383865243273409252428948336663589271731340673335190623028933341120634767327537403114418255687989878154937508796623882112908926472189111983914597662782520685753928496875262285441832101442635169428998028214392049032957411992198454573685353590603704118537860447752195719790243335783435662502042358975480165063191223802017662168145210481331526925119894748617076093729664822709375870348738870621155989389716178089353071949424212895733860689007989479042213172003056411195017265974522253424561957734313147206011014503057731059325814035202283735093186634994034058124109070883707950439135967656732563775335044550288091104651090953439242281216298921015654332512558170220451235215027322351635418593938647851463729995903137605493134306563264427284837377767750233280783279741021480399971039753924758639841126262121924377149664875205164012014188476013711591040231925731645235842167895874803908694963902863338480891936994529058432035334339257682287228995110779961801691582443820787480302964705379070375832083060610291915697440710231511796705523371020959086214328866050970162038975405387934175472410890555008522009655784727168541121407465773194838949694892132805043714655067301845484706659046145050300476663025095075533956266583966289060589789628600657839177690572553694093956960408638057889212719419983926138460208105010179181760622634367972114711011585163712378262663250466816483483503915034258750710286348491282650804668696842908612827689801592510019964416738587477297783433824859685186424138980671814246677680510713413856847862381253230957073022290402940548675275455994115866401159809398403800521470108320551953461717970274196776585057704113505078902461381556510527782072081359387760432613175755221192939990657507269743418144299370738756753010167026117776871165659797033118388058155251290389826453042092585921954516587620853119557256741173938636953951004170746389157850031245439131521933099917345194894257117218736919631617228090706119259048419881992005199544985066808645488459049969548024025119869687433295633032627537602890900896060696869180904579585273398629349284883186090824606425675892308854142077754720059242642653707510942363406229830461376353514658230116252903042022239933402139556740933001762889083351215972785263443878715327086064182836964028343121658899341729071545317855954227048036139420981007939862013373887914710896388013864372550365253430977279383019097810575244080644395498843781831854913143378410182944683257198392887917675003061182574345615024646658185702487019167014848995471131291815889739257371647877923144337820949894044799828672934376676922176949012494095130410989127071012221181822059979165659384725272048361899789126554901218057325877228249664572129238036515740382363154784915115612073913573145825783181269622298620172685962086036771114564771740086789841079375781033288419076482746393048167816142330322616640281017283618653910975979039353394316768663297120559289827979332090178422673787975143185997322134485760145997599122074690473282816311510502249941831363369524209964581749371788422939837312276461679285835742442561520041326043544307998804352968071392240292127406389824397599181326173987130389157604538360407246030962227261014098012726934497429257647545464830949708106524631441294693204057439726453362016542414357968476082380695333344574396553670502534189170954073480983168754189667499069387177653142186012541303235525925205216683843362180765923484035208763426277066572267791293110865642015400857539812724694620143950720364047777264669217479812469751381187581044317453137384001668325087508483439187303390982288888860300618204396056425611155131814802243859503814854850613982282385070729918749760273912854049706579639985071544466737712997436000574056574396357108262381498966445250499619563232418266643240643338795019009779328550116883602109787673900063591727147599720638497213524778316297728958855069673098875022734415543309795377030494084631605131815990338950571260393444520281799888761393827510583989832950129231696114864318703283803923771264293809719819342200987292795205825054577350785041382462236970308260471542405422407342982281922592810302564009564118489942630598869635924430343945453892397451234272557038797979191393185146894394582441962232701098210799325952244135018115713509312014169745682153062300759196325452280824725197154590284378547309114637944311857135877015390780557063942907241913179597725478189271174415166839269673777404504116727562539581214663688964657133073584397577329238779601653268939138520471359022159608981435447146913299554716223076911280620765778320047364169379822381252953030322889906533405577335479452595189747283358278500504512484455139973519154114337238010832417675850045963658613430942085727695765817926031162514346170598331992529335403430928169329803082226806315027698380052097706276473034288186129417032732294258705725116415957228095069493094134906646438400955168378175244130161265614186257273541002513097747771482503384482978407969717386230215543425232332843886350466199037432299649223109360510789339307986958645194981995040360285463583307377798175275439374863947987231616023138768758314149972775799780900468480309138581632804832818991813487365465415185221827026577092844293368040978925156396176787661977216617955500484609767464759830461694553153498031999133062297229698286973420757703247312507529669933296054248489318768126215973065402531129156768304517466604428934529450690289828863563840396228814944262833311754060788823436492556786236237490393248945018987662379333036976697887512140872664009455331085446646995317923162841169772111676474777230275858875328421776829418073829361939924798089039234219811939440067645759179786263900590355599972649736284110165539955345835080062887637080143184813313574835284384150494636818653111955478831508871432828712120917202243416185867084491581925233852161075128720606947982686239751419332622060927938156361546403944868753483955852515336815260030281348012304806496619079074819947634961546289561700830557014769923895855201923783796240847108060806908240527731086187941386514241507421682975888919133193772170739933302261231769848400562583402152854009617713992221387955284667676388157704086368291568621663086487064660218807062378984909810310769273784845395460397765262802925827749476750669807886518344896107707411273301979351006198497194681286037788646615946232318602757810365200878584203876295127039481796587179399629486416678534839531439007491426499109258013009759574508845016277905530429557462798866025778278128623962882812040662611163953572547937930527801893704830349840434615509333039414580617989635888481940405611214606042562216196275081550354028590393539604287108326074788566167708729349499652447112450379458284306820428468308073429381855148695419470673478073504199824395341970221173690063733409303626753755314191154720827979008275224947387565332211297049167195974256304429827054815192728677241013919531176556400787332393664126913476236856263968760772238836470338441871704504005411436023460074510885995712696703732898161754560101073519422600279691335640255629739011186138660553925992990581950896810062341421029346432544244328458632083968992077448560234535802741651869158009035642720813486501600569708329994960743013079997613874208181876016569013407349455360005856647618926727891530131693545111035096332582720822804664824413080714315632588030810202754172758801423481997611515296951991347126713021748193861114313777991232286559059452127775097772976052522781817381281401254693288898121623255340532210066374971070705839540125238124737696516085723552664918765380443688156760717098688256593841818318813725833958725658556189461471349803037295658542367700831313798909800490552378422669519754710336590153286374538886225199112742639115874956332239069709736380247822996098742712678683040602732290897618500380875763071598380325950507804275940730441636609573447895073011508340680691437976086004232590479991695129333477688620742773783381933683790045460873596927411758750547217783807628133356079111230030794282299024393230730339600481643758989627538255936202934557435408638268399068312929726589520294212704200817799404171441620998073350913647744598561991763175499623123511926678683988929026796909268123967050326830366972659889438334408508205507374963067166895369373670546417409492369846170364928173738443622289395044543694485510020676641984237739415274492173706851892862222770284579756000849361809542715916483568538744753638515752664989270187840129711570358884923666203436899288828981535381785330859405185753985940773425555680498829060086632855084873741355547038123299050750700768554034147517603332810500787657378782463733879484088263757312046229732083436510329718753892097299677055958143759039809626472758842757555349297804781879268539055182715703814655471533084448885833004864094190961446869625591997811812827966988287518404866663342769256461997892124125050687768988869992447666906926492736131946226598967633190543320720716896604188336941445836835558699001439284772745469395814201161756665157326119585261697031877804152931971867767337745521220070133175952127324931392758433469047770171860658114580509073565308882313860496193078710040304395316232082886080810239100809231113622363973793254745821363168066312521863352575697916041175744727313715253633604749756270801255729618148947158420541115087027729603725524161780500410619589298405202247681346528816988893086442307696430770604834227878602992426885482795065412404728148225320596336858144886329204491206716528614099972616258865225303776092339653369489248409442267092456448868890858692837441028660899650420302857026995370842608646929163701717124937322293407809138295743216186109457035290604270405241380346820410968248936208559307227977696655315589087795808518507837299776085730269820749682295084062320390058028779006506473927052262975659715338451116964625811086920988685240527743032680788337503316645607577288726786470597129618343875436556610384680386121302326256497096618484189829973861680223107053811389921250809282023346550679244565886844727696562521324508337939414068828182544945969573408497502185622648066333444116707151423032505236884475243237924484839648502316366313229345808840396195324256983439455665624715943629641935319714796580055320316054004700829625166308178794666705877137331645289471041392627431185802753976639608175807259894364945290163184102141526615307402442496598859318409893986028565652544521318591749272273010493895541382945154997230174827663328687336788704759854693458105377464483135602804265238205571087174401947657510353342267357053340229680600503154172389460237338775765276026162445849216169857984605037933439777855170525727590501894539989197812320405964762644745219512343093740038527612763626154467140155273304078448571374027294568029630140528089756456938196861682803208958917269309694614629972842035816504774203307640612881656553509076769172947120600410320449995285373223699352141536102410053068266230813331846242999973276374681047138155698434538428184393669628481231441931458976961934823030380441285006621338098372973393070470150063951345230727311548183916157499733415633349887413771928969746026012406833943736032006353063837047090170663126950463127432241012861020030916090607925117933421758148373556544667323730594708606875914051130063465020452482097162866381380691079399101431235712749994419274842506902280123014692858699602334825082822519694770635787997813668422346146021492384680991325657038702318452762649170216814920401789609045269942564532232230708810349973801226191749604142592563505952802332489499252872159782553419702354038960865700264560475454739195764375838188944250950254382093748147402029117116101740438272215771544866781574543260038291935393430213685921202917879981406415505020019038647293842417346068102802049723240431334804091669250591137969503457799803277506835212574258384734377401192492031942843769197438018209168103382674175700627757189620151490167536197033216081093959533937601137273826404053404452518378645900451831336810521809352076224728011576361669031676392766948797821963180104532790756877782528890964371900541859610821691547914764122944526721271759835790624919542024565132088908584800560614196743122668344416439937294969464822173996926912562478748224987588186399232956761144263613091529267184055357926600791843694961420681039690823670339559240874322266160489419245463361270808632570203090765414048095237088890355229688660580558145019712077804879131346447606687061818157890155449479481041365482448924664103163568651670559462062749799640849079997261583910545949916000881019436161130698331380259658823103739653651603312629221349760676651640257020830122359623649867932309741346186397858489697066541674433361779618519501887956302208003559985165634433336913980816280012037607569999525344265919517440080419788315227919698665345382389928503876127186724408616457447772593835431716718724670254800700704444059920827906640970622828716793134882131805067674589729716598746382752676245953440751415847142074052634875214373535091154323251876549200700027553668345434889662585805127313420092578495819134630668260838447490339398433209471263577104633317712878395826487116351697251348772170077317576413375539360157291027105874449273288523258497803751581097819776716968125633020466554641431634806639533331347975251253943539282591940092403521758410157475821869468402841791325546161645401915957448394521291124661902721629423007250553437224295717844963438318216759666684783318539638988711377114430010943099040440435562739744775283485939662198911181398766475913547048848852654824529737766536806158624696099771721254876743836622839862919139775278781252947281085056366346654824189676022481670457862759182984558600731092087445534068378314241191926510606784263863585206839557304729992339993258348321197320956348081658510464037401381548316970587337767283226982467758414490866828964883147969216043479255499037423453046813920912689344990654088688126879004616076941079554927129649482589097760860573217844782654821938294445708780984874744258091966563702913646829595109722364274482493239521250918581920704733539314385054064368660765759309340344900086404262781829914382686307102582057639700335832528583534316563557930747214608984147263868296915370227422954207317502661619033921823492582968431240014245187671392864468149294641516912176311303365665350338011124154207674067487230858094790517868942385022424352208723045972112064979628267501152658320732323907328068218326198795258487879331861882382711578814415519396910334154073014146218687069657082611108086904032630837379583848451004405812811019957095681187326232296249764447049884493095241099557752760500819668440007648588424346458733129854204551003846432756021391924699368473342384402813563454833586446370326640225312535401733035451298744007603267290096591621373096635674835331857127722006607974568366140896866780823938003665127393776957973145042983433723840821260258920928750681643424611493692380288934922651920049510176908992240332485546818854392878175342849688738383562363851634252021172281637218827528259462982930793744026018711597634238631878105110630038959176920616519668312526937750475615097128358212224985175000730687023964002710103017035316675222264226226161890965522160959087191238047188013344147198702045983897588768627898410795577728190174538460993003109465213695938670569216145419863411155763903492770774067805711924775728738482288679666305881117596091025369645719157729340860358411260749952747788912901425666533753187948063474869653954460479652334914897671958730410679100885887469758189968429768971834302545342113466719363078116170831510013069546989661831879412741622842449006305062415950459329423150254708330436877941393449854088595087785853385301305072538813842569227797508195736865081521561047194674690111454209110343408713067588526488782118834628475895251676944485804782729881424312390744160054355387480049080229197529441351937683484283279835918113755508559290016294948019134486469064533329942793447973966664764194050376399806461217195616948289218818885996386243475606632861733868010969625355131580443216908387727730670529990631438743210647409324470310472543815510104942198820498661399031045651997066875338595788308286785861017969425788409666458197558646445639402128629228130429761862812651133763976458031528444109856595591263609903752991608160993730051324642967321778918176031006449467986964714129073021689969736511653629131820706565844998196806725010357966515588289845604534991690498228490656081970838962223843952526635603697467658004310406491890742092497860328074912542982173876254670007318555592384065404562822435983407480879260414819607533971989762748967707463343894468947723990567572766632883363422719952882135390276870899992469516703086635354619797871411590610947114552263657958285562325931400305476340279900260280060999963655730304729812571607372968712163076674364745116628164031509074905968474241889401274536366114111872410905135763869549094399840929190939894625372192423519292294631463837007682163261324720688148660081702771022278248608315682574386454761866747138174994448713964192784706357836279807047523233742848549016782948609741632856286651076973206754669798460666001036663624799880640399465270193737438584197827789608899618700013645116490273028208819257376387298262738915361997259496280849092562088973639828126949972044006160331694793659524191872876251349483838137675228500691486415386493147286882386547530037790952544195400479052630282224249831785974343885651037839477243385877302746712963704075450193614824605193033471333302906863850481920637762625143502638822157985372886208107368496551101551890919203734531641747207892017404740191537122247746801070536400298051383050075992329264207853251300169447699058612503265204549145239343225501946462933386483739530158422484275385638454032190040133873328018759083919797632124397271387248918562817696422681591096956944766853569343397864013990768399135805567368610864664246137614745177555478365146453233801173223354014923895856505220950558482407113916721067946613149280490976890845841361611038419409617055467483755384324621501711179988741712889659994120539394308162364710405764230246856627564287305566689956738517648085192216042939564766238928906350536003194591892956095588770305843920753041657208550507774658569361313263393466020378354439484598780260042066908427668461838573431162288441640500616368715150205491537550558358028565296105947092544826075390816596826047174847416162704821391047661568151226330709878226458583890691125390402232955005287700349723058976650572823494214655650623332482312763341727135119393438187249902878300629202156592868199022410108297698148600899351828459920057374110772981693203559777822111054657313521165514372895801846974131542484344353931816076873697590219037062347726126542220801120715731689841708006048234417763789709374110451406295326976745024219416642141188748411838378668883149563686818463278585938606611004235994759870833651186229755083750342777393209024430900409460464137324364364613177091822121652917561414139065285703657711668656140478820139627656146052358705785798892235999770494341781965605890890247137258698677513142977254008761896457458779931722693176338889582679853653944661474412443625761071158698049375247965984053462710661624501671367281324763040346188003490542227788349776194702086969154826312196375992449026705239436051224025463678976102305498842154151525776887802924969648882794358281806561030055824941165063003881345881228008402280131824562279803128915699538519631125109709029218324487035174085438591113029136075147224008470204687356622736927235552933838185958065372622853673278238954336074317314781843831169592513842401298992515038601283336862428660438574861129836121692208065819350890803274358425016264685607972970172317902822242775947282045317592829834140115564737002125267742425614941083509889734250901971764608526135918638815524386891837600754413361015189170525590354826821972613865309992842122912556166265231276891641661002874027162835210961819499588029802529299077974272251512381957168559740057200770732011713056799348423720356111869701980342715903458977199110655534637688824690969492901661199364935177932062805380180861583748844026399789265035038539094802675723595456356620844056446077434613943785147416575369711479303496001967416286096784273691444941599887829964797288539571288859893550060780868334359750689857963102710591577359276452465421115886842148343957609174733122587140136988040207419905420063407386357341812260156995494491564854222120788619430560524817402872146264107034273977004520105790162120778670275312529116034069423401767096850109363738023324685735638543021909055488577068879240894040790323478393121036283538556020247511465051521858440294318069318879631529263436430246928927577780954392674053317352189185692276935663537568002551456678323392080382442750511587992895531361168985707631822254307994726362198806424643155526180524678284549387884687812932316185150367376941534503826997753732114512047919274898080656803029102847874546036137709738562783319498830587552958561526174353012063454037294977351973560684198018331486903251090584906667904161718302794034876939501320578356618707697837027714771465835140592920918943593970408374897988758243204349439844863667951750720174801226847421276083265089985757567539061380643978852678178545446726381046210123020787534087505875305040493123991398682538539151074687089911784308823310702539676880730783361835710624253898191139164789220085655228813915384030673645423686024414467402839301985367547054632767301221288882968625998692037385851701604701515821673072798177108946691192939490396596918048575203871863919948702817857863913889854895895646713775039532272604891724131366180614405862178773458619609015821923731309409577041643708707033622288439550196553260474001142283140269233442323498695485008377020393561402757603004263709070481031640233095347214723229759684493556463331885949721331177791480481365167623618072705848376263738279889006784456647126578318923863235514664687218611928145293341071523054797552516781600510820795794273308825731292250460673665488822601239754226870589624485691444840483731212869105032952601063895445133678877967276064827602082037331584665504373824825718163458412167552604076496335394479792186850583528606105275546347496746271859291570284746153109377671403095888640579366505437447949188863501827096729791303546210475843221371865154547566865756525584109564561201738988775983088317213055024901437588554776646377228626059795884780573231997436780994009423466779787297900735836049099529968022548667241867853993695137814092234557235964551680936405191471085098022522360394187882489066002177781506189262794503604377457987233598356532903669939468429955334506768815244493689782063667228751789351631753994017196121424582811792772886973297268315231541267972605293276777048482450944887198641740211365086263724778449308170809087811902391215340721008002119482025284506235466699638215934465252708889740066551059274355812232187197217352154695415890094640585715379078598379147087896705498236853315531659760196209761603857236576126882443269440700601625626113326912268241999483898549014667156056845062613964276558644793054816468870978198228900782731949677716388465242667016717692088466209134203516820665658415442702428160578709903515648746713362923785259390140089545618554853694803152501645209107112475102934271337654598934056617389462135426871779091655303340570535885750738631793008630779305009667838308537225201384235797399100610336987286484243683881732811131362638044887317123430359174439318550360753954013308132593316378655383410219130592664408623855103707748504927796254885957175413190702628683949038750056405922088136243479629666297625743528728626070457483614768254594056618510435011317070983879598580039614716769808522786651621579816314406602721300987150147523058773707688135615055621053019352449574287387449029193772710050781543174395617529927342119895462329003552130626621903101121351208646243186741255819304686994354237263035006711335428450985622464571378333805425664549453193049302009823156747765265692117632403979568894050194750735840599325691126705834393997504498957919835661538119609268356093088183306300046414674861326408332132681085890937266661731150068748301151903251237057807684332287165272112179493823704901042954032937397179827421801915538157322987666829818460143652440839371679057053167394902803415704810652618613213585547817219185942975564941362058052977264552372322636092981979287589386862640137621744926379152799839031182984355556925431733826552087273512092073231690202750013816621841507492619922476333045011038197650337400261603776526541113542530437027242868971081617253294760397559220553554832425627029288649775512750254454164731734009830989826860930761854316413295466450628617847848628437683467313851512544305028769205722695876358428990066435401788407330340986704482555738613624179494107137359044034121044047827973917938976667413755862247957920190616012500323555797723242418788593944605089428943078426229052805617568702144278547599234438655103890953730074334512248273554683834346114714052554405289565551025904700271569013793265047113734780975986381624375234641036014894245376321868078961425043155632397215382851828212147535577438682789309486321834884556916702480413385850053751383676187353071055256244045165850491783505825947417068588350556302423643713639556728416425836146179532473696066864252755371320099806687476310907198646109074782520603111432327357275236410308076665495367482123503479845770030599291028658467259437974455499662978405357875918607581406643691294133969209530939992830453966716661143248872047235923586034617981194052494042415000630976690975877451602239142867543584200150746933737408525399931913999473326737858570063595758317568841070709428160823675883686723750779730562031000897461822386497991774130385581805553090078561754697710923827976450373851286187065859876272024208220254321241102005429182555824597039103125723753337000505287167777459207564980794236158135846349887225051247877069773298343186237271272854208024144772833110748204380534150773441575250527677030645458769438925242674759140556340925350836157037307270771237809437455149219411838016644445798501129606113140316696483761131519659795119660537340323647722508564766266109740438080791701606609054467979303849705022329838890432556544925279455228629119459833507375702566665798857099258357081501758871969920583452309497515775549018844822895962850185951612574019926001851615391041677317711870056804009804341708725191674377334397084078359238849504930509638986746540855813096639654444234902714253808260934546506791105332198816646088610299119149303864252260576346221329856061425361306742387966353118045223167367295214359895843987311103875580318305324263356806140537795423116303472622336392065739374816623585463859627903150764198681979499508506506159483203370766147060143400301069837153114845592316656635114321088631260819989776017124489406918112111449628901845173842986111001225039348353773621645511280725631760947307599395786525252438266657878361761744827450647957326138404645329393991114072114562124260709237536436861952807518041013423496173276064957491949472696522051085065072552523346081781720006154922599745164732051895533604570995745842442062583457939826291813197500369490779962565216714184064144662466892016830260697610732570489554425808850708340652142702685038989523607332592419770752832464650663129486235199004065424254506617244953314157327651683106916679976978438548119537604863528965130572732937687033334093837757098277763493423352005434144343842180812684724501540759287626175987054778840505023648091507225377450193713526868634166968625371304383345606375407989183768500160752127037386999581287025559729782110966249726773534101281211538544659021130033285076213492727905002736161735849413241111283696153131310993601475617300877987411148138001339665300568827808427646685813218041807227815917831770915131030928578579848427420071329883993110734449429050674522334884903962391723009178415889644481173044161692503183357358460180224692574918583126449212858837770463391447723752498487252570600423555911052246118643712409282079707929217603131017660833107523440968803804956893530520774591944026909512421515039952425006060685582011717598429600980809790703757535366125774340735508147902482052290408946523247267957404630367580306432100665866403973411092065731580283591506851309093174723494295520391461633102871629827733216415377115412949657784338405477566541663197593757167392011946860246735871292305768919139889264633399239724516548136215580700919563260409915666998613354424421033898269048732225753347646322515898349570382454017274713538382866747825135820419665939167607868876912766950990449557260053484271509957723867896290586697099397946900148666327327878768773332443175555277803188623979233278279111930983868049252353262473977305913133976792960378736763678986216977542073140674992664550764257443499126280996121675145668774390365144252149410499936451013855922919797563851130953773768492741353726118509614931011665308051462456944095029219974897774362965245150574502789740645901396401708200208716000173025745206823701180438463073189379506215577779745549662331279187029613268095058387775528791343129781648417791858632504418830382962111839839418411425671521817469391382029988328615603043922126226676083358648652349534254991968608613306478684465380416205072421886842820819613478514836203635543531453053961066847875537100231924161212690385460538142541766682595139250343672437154570799095651331419748104292638670674068237478683263764105608394383284906624353903502500321470355144483888839189065256934394542825100777366544491693541453675483914924430319880528442717354435952963611248200184535821843179063483097213831477526204021964084909924099961025282696223729868511331023591900154085760421473204499353412095809282310713906087861346439544147998621438086575296265162265783378893775627968879251617026916893270383544042589559372802981012167235781964334880065597748278650080428348025640309827327499543289255501457028729292991800429615555804725083929380168895846834930739922932492011958790590307292192558449221417388208160989883428892607571341897421533777610616231588075003043840782048172304737338454293352458103256609243812968913450101374857613196259019109595328791697766807871972460678859577781373769994141295028378138321687440878674258066194446604905079533309165469444634591584810653990722254926352134141375396821858176396185161043251566448570478085810859527773512098605970772642018700941280405049577575035654436116392957100018925647979127329579786722089739964670894993576311813065387441431339225141508933424342830475712979716867571559191556643304940055171350838986468241697580330366605485645881591922678398631316292765194013728465384619756093249693396989404908859454706996763894415425687133621064256825376423277011852655939243454862897260285312635239047675428290879432723708675899612041277064366696983019296927134852490160339806956311257604218736487964016931987994741582928605280744020462115496584776593760392115331234120262074399864373044754796906783366279728460283512982300638392515213358134185362634473788616305075172736481703918764051205137051360077561231268524234339498638546303271990097300113346083541774646824917350555394854269988662338864973129026769487633345794150832476712081772635940832312870837973608865624866903575682847341121260438692223618133909622237641790539388032441311709286602519069829239168774297205350196711555932803280026794440403623911827505630498517656665767459778736346505040564268359260914916539953248797052888100228804520084467724141532008140027282269131891111692269961454120749506412299391130833680885864890563257665242474498567529103939052146319755460759375783229622664080307899646624665935869015850209957733076674360243302400800358575706044016078983071183168135427734099134235296446935660677186507657263578893205244505235704698028392977678389024664953143106599884225855304815058368419866965070861736732804993815485669271427777540451528705820795337546869292192679712918892645534695198057828124963083104636326478651024587909259328433962414276288800203859875371984102195432292366156136414328512624607817076570171881819986627742541413535000377386672877524641542077854707027384015020195844885977474438445878722679212553698623469313888732758889643200234223686375881296652603114090998750929712580940929682079182078033658824416327500720824599094711068232223468684121678114515564743877957863353370635397618846718011246021356513668470274776549663901195105401767539626298895583089419726289035882312527218387464704890086893534818628986422235334130560259665122644727054785500223548198490660292635348985763016921413131734721951416892496279501654631127702901897112673946234005226231627467956616381409090213654378520957324032543420886107711310539734576046273844736989666412178149390841520213297489582990885518954790911795293934265926459887980062302014562081574929406480673312527191975567071271720435085217700767133488640009666129952310558010183694368510355079566337823012502944131349188026113981702287491280871912448912954208772969089767387918029789454752975328888005526116197882609974234435749770769306671204752757333775609850837483256405922556589317692412552390834675500606588936288417301541203387765945710835681916617290929009437710267630686382678866299445779352465331514728027202850653848764097998777284710108613144639415673649450017751585382085217432670613661567444204057592906135265599401248684186452430956450864819841032287858798889474462073630059169436531729487715735876469194143909250543349018518874169786014127977633905545349604092584499056246444632506738578422816701327614134976343570928121195697291382377579181051867735837556245889941788461345453408964539600221718278523506617442355006564663391384831454725095011291015712876992480082930784270969765906883301692947103032823135818046602282285799706320356347549431799238716191043926424162836573390951658114340323103431395076478921960403783466970556362317916548150165365709916776165708314347765262536526646165164568527230442807523041105525728929906125078140437509874620079246292120351882213619457555747592356893157328016060272590440815661842911179725216030394280516954918736059572286553026704149702201465622282531078530220382429181653659180735035042605267674348761037303007515540903927084033027043010009494189341741920214158651750926143601273234802445158918458488857059046493445826664913094381751432221924149461141297117231517301142704492327706685980073954851876482373814081283715668871678191615451154263513538129403619346940256414267451364048736060196742621005952419155150925804013002593238993970443349888338957217070066205282049176476753994575428554538686099983344346436418383804596684432503366162220169496645103576420144562428618531470743138334045997480321649918067043491268294364900453486293223569545917344256608627722302357707773848898676496723487272201851597054686077258830713196828396582428090709917510523481080686863037424782817748392636307759295779367650762223729158131423161550218163160772029154494483734805957545899431725983008542284617815315178115688529370263303155248112843651962673402743100160614259387936537436682883749330517034600020969225286332986860416356789369819435269543495119831242084359065076010422623280374539811150247938945114269005178870607074839733497100322451390516484777677965027021074435654592249777978139797385087889797104834802030919256447482508809719958028376209692939573890181167500439454039962405520978003454876151136529246137836015949799850539494732039303567453779261399431675257231150253463094913175049166720797395799474219645134163439918203773020366602135870163027225534777055606901834262021481206186466939916008575730886341261500542361905532665152102961748488689297860419597722715166746921755993624654070409513954663206457108811485701926241741497376839942105465179760564976945897280883690064918480952893128295716761103308380058735473823386308035050277384324362874814068851321858794103145772482737245270769768963314490893344172147147568572258435507511509256875592680787376828615944058453721770533141252093862708793127383994609723430789619758209614612026174972906288384833319492285398753160941748947123751291796877607820657236429759602164998767233724818086681799170118320091408360714870667983522697417199521895517855741308019079825910167402975552907039281972352979468863372996875786905452331170595557400359847214066562199349391895983680928525951544760986958586341224494645347157831877110387405686974250695449890528438112369886539669771093094165082450367913085245806843349872458376873557316357163256979090802124251720424623741321060923715020344372881287495182782421699952209388618530927979389789333407835600181552985341942693093005858147442925306102483020826183837762665157672765182271540341022113455961042338857667827385373068176610318061567465921394524016517493749576121307225689119324107404433019199653141810308284636588985053056583296674308983951165293945892846105761514934224850843688667311551281714997745334066371574932341202825245344064930101757255758709130662682483669402235956551678596661514563856176187600705062843436966171435315923641861699179483402650469256459977513686698803295684203752205439372238814079972802260215277881688157955203843653457093042094025700152582297987542605983593753817371447618145703707292026957662532732192944814268016591587909907575799822304043611974960853129877384517236193865716205659249586611336781384943375009309305515182075771884500664020868293744011591679767445311691093469495455183365274843312203746092090535945554440391859799497503857687734036811858900841420645692768041981734574635700733711003806568642231384875549364914154761569379192425573651826221063025168167573106228157312795990287109351170210490887123678849375204269412365032356380083695270132817165358721108250240186216952972449464016625477246941559506033327416964950345229889626581240156520267466647632320163887050502436498029446278882527672204565138866166138439492359031930172877258255869936171654424426046457484987113530392140963888247135290045975993388059403190743730819985900047681311957169409626898164377553045248188368137935467797930988949602310953394475974213415016716863907134701283370295073588892658920363583134911657645169753385744449705002979213386041831535126664484978144669382914480956862580705349342461399005879792795446936776183544378025577148352535847181411094174044171030458420843302035656777472045713719482291265057088228518638238506085211294169818381774287001481181596180684401771907228854493714251113742330322012606445267029019043442256284379000899260349833149129390577211943559471398745330959148470123017621627630857617543643605915676895199041960616138971600093290999011875603217024722520742808382165515624767125957356686666433773230134133377908036781019778941827810618176560497296373291284926724045929766771218614146767573183770211818522380327255793621726077572515293992285532292558696291834588614126466089610553140435761545456345016181727339488822382469530521637154151974957448990888014682832364482292610537182049331540422418854611728608469448137988040859591068547046626926303188796185056012080973830922992969005307041591882878785344974040640016542715295029248871195526556919383610102723983491967770470230029118669009248854512383092709056981045383704677485973208144432556156137552956866595128525431293116196980045873555536206194049200724539654882761476691735858871235810860734923946199604259327005055337024805499937502192563058451050083580668474630579051332403688470867519815244189208201338530365812919320644798536551876565797232466200228365293744556897544338491578570948364000689571213368016397000209664986809225316328544066301443073235692330587214703670502900676108286178530522074138914220762081685961749163667275557733375488995463968958924229938185819536811217852027701974605313435287986437185949332591408647027118493234299543372554466968294343692634120917185326341544957498394390912221526780311104870218675006634122448909432413226561797072544963721715589154537485829162889280650063589821345295233371495319147557556872500783757104503001675875137789109189056652159336602046790600227373798855781503282499652006621921546063448998764941149190981682082617430061192774287908352560609149643342602064885405166867757090267826542746784798019315160448627878365276641296876709259941584597219248981306796120671728361247152593628724551122711819895599512722867610949884519772711570244618296100637207333759564574114577578525617101157452059535434666255879714394959760356014734930255255802908649956305580743066014168083073299002444788787382003213543449001125225690038017595226188924900288065982618891155896502822542316049138698411450724385540924296396225235261927606789445338945575325533782038505502731859808059752291574452563095631419378054758069724637050527719638752761344900482702696229038037398355976053976467636043114101804841701098664094834259499873433650742642030297680386429990532102709916198763233557114878534780567762870925670261295805371567902585648182226764512032317312983299598067226688777195397728032918331874784237623137616202774773215753106668172628818372140379005523278534725217989694580066452148579294180994442755060446936193453425374695038162016013177406538130265945494584943434517203835269864724888782115238925709965400607932689540951255758661937240321021814107771150638519227294325432973896240468530830854738530180963993998439949729367271877797971247760309999988992107354029413619698114645200354503213335184672521906026227841246617991705825066273723266669141623269819111808061117630294865198787755334676913518066772535723846077294151470213193914035544436074039415626603942117360733587441856643372029344091481126158525448614423740520628147087201356329525506689044867641330019010883858638210448387444193903801016486882426617086255763190914264546651987446813632415738185815904706004037032317224935967460812193703704697148746900857855046060703420172511630357386149782766913332838534306645136179395006153202226012694346206514113951289354896276145081626847075788380617594695051029716169647298371174092263321204979318558460356881505639095470309080935170811993881352362542080363265241652596390642206460698450673822014146079829507293070008035982951219226269634228213462442472871383475966920330551161941200919218367400633406655506100805520173078838841779901093026783366815842211276673690131171165059234860200176872115156178375945647989019188697491137657159292366664803195605972672372510103530745285312313467245983818488121076623691071875747715350467954764573776151595495679246227773613263073326119861245434801962445980241351381169538018376097045150095361441834460452933264845697296326727880453261826035832127183651844924730847532492960178375322088890234085747657536713381141477123582721987183224223399910468033135086797360040456302958885548949541049809999450925976625670226121830354032331949440503504802168974070599127861461748667812836444096380817852517832736121362871312573333946174690966273685015130796420817858556489616332819558066749178534395684763871229661242978252549881539424638303783261249401858983616088966442453442769565723907556629869444436911709658125298993517079516826590057227473199504185520725423487607445340024705933368485389952622125607904701761199745769850009466214343461466610730891207202976046858963246345199347411945410444812531715637487054243924973538337950768481323843320269074445608955890438203333185790317418666505509641843135034408347416437039337286460148982535829845774132850275311044831093378184285198530851095323263691796821549112988301590140462694056321863784912963290548800648307264269104521897748477047014581135962801845549354254627420825097393288805461056495547208545241951791709374930671647486689741340506716309110610407292226587816770700301279074362006998618266601884709018698538246350334123508158160677037467705760339917731293288282497827013523837430476609716128587350696212368181118617181638480975480991089549387229887190787553851563709570804813646006346149376176132196513727114900087867917141466887463495040011866199884441969793078036299118361819320077371351207684525733805323500560086191949474539059559715350015157194554293541164907256121595818592604849945877701116841088776411320931446957140973077968955870415386200555835735930136725171880892795987434066872060462689339260787809173093269746781890877817103726848406103145077589334351759168155980251377934375650782417720756304036684584606112407175560779973648544521049697845437254950954998505933794515575660145575629717645606500346897894646397536145889130571000230914538620258173345709513281846399916841300624285012546958463974464260891979130843999603533555145685920399360552397841000455249782812765028720746580841939943535537058663555794259746251240059246311006425626569779852907666954320306170221425505263173207254351563869527113352088727735680319354345629309150545437194406387975906920443566843708850882915287903421016069426844446176838818637712577865419484566607542904333605974668068299043231984541277121940249907709058749241557111440573567821568142865658424490969172688738207807746492052386053764180204881906500488990356737615610693297743298104921864869394229616937126606334930934129242302340281935749813214897217301775388779052852386134703596103197355782782367490958679039382774325862644486613943894458002242453859656169623724504384161307876523297197573961234854377283094244905264565657290862736821307499793120123320398386808708295416410621314600449078559617976763718636738707495454012814268049086822651742861513666910384817909139075079447234306565793984964255490200521398267162344025461000521351392703294475306169117750465817890476352557622046671679558260954390724684853824444558764335649302548979872527977144564831424248321103366719797327680902266785532011857258316819446675002698089705113422114584671801456971463116867039722423644993759905764897496733529569873253331477776902920497852845096209749238606614109203959617593392671170565135237109583799668751335690256092602513200229651635810158929195742123197442908156184614268382064066994784191944020662958163066943663667306328983804677182333030589052664870471593293699147066104427448415264865753821472053449352000764771960460754255128650640331018624466169596291416159116286221565790293084889978186012660647675557112141049774590753895891010224577570084906561072344759676138075542253247109682454292442386638080386383586078600378608100824740191837286136097144370384459903504101078876822633154915456681604391265216295758762147889090945219197863122524731126995851236743097219149769435087749177294537030213082475291348078958564883034576345286504558871085896871003527647476509697190637004471058871555983454768671610957667068949893424221082964966712411357008952910803602285059123450508737842217011005080283222024659967783469158255075508071561620659183913835233450951423464536763758980658908306541974467142005283506247476754836108600069120932433794689103804178894026763692115045558489232038554449134333604845120003093079621358550374075686993895925105209439387189399110406154224863128921106943303947348901558476213970944466960684182304327540359114828587937585337982115651768852068591492008882955995018263323473816891235475398443093522474648180183620333307387931334946379652133374380161032084054524645990937553779634764661270180877237246387131689145845211530104716910783617614067363717125573585133581340731159349026963315352449907339604201660911984912861720094548978035152205174813550502425962113733507020016894428067990363813456994278892290111714489769585240861905573963944583709243639518964496581365164421134502720619752634200871905669185729243907231587909270761919214836856134856614906978321018794287729960831168446388463556698086588924520066070761596044674624529647552292145475705407224014636707762666250673486835084053579558177154030652247350153608469167891409938440169930812720716580116435951197715436790383865715891832693680192985624621782662107835428195268669822461237478044133434300192721107226472148431144035215628600920702233201446369110550681037247240835419307570850701805414927949399388264923878417617989238257071136508459646202704597613543799240072452937340827476242975082706863035414450065688912838753277734156381887977558274469325413544284942409076169659582444132792117307550160313651605410349227387627225227780819527531193451085351430727932643762580485570055674760816286783210709523824566842766116975423955706383733812244128950942719009067845493542746038543121477326412148283425483498563091804781439288687394652688746888766439681767237461344492262840589543563651408247453226086057065632185376164087268376992268348308149998647194117751511802403216644948461034427084089360872939804180745985255784738704391043486144633426595791804924262569614129766276930073607523691372700129246059396548779200006405441712033600479490995093912239749380729795159714408511438308833630361949709893129313371158399359329795347995210928682259844051863163191722125972898456569238837369018722789481836204129124049798869093929994145622813018403612406690751502562671278478448415247073133927041412891632118716578128501892148486275993993648555081300645596573749112146387170412751494568721577714282748466201045843669400194283880482046907700076058406930554697918394680621455452415778869616639257226075303446358634972523558432725176544528546741111158459102783452923668568838424311434800813585552160206641378234753466316479263560228081474332307422867438122764571793631877035715287813387235345588155783208195902553060513361366124457624063102093406428134565961101488673154292889825802088410051104579146425899374534376242132621844077164364075606413473467273548004759701727807374112049590877408850795844972095631783743472589538952804377019481674851101420489150404767047459319926193556099269076416312889500237667961370480417197714851770020510973318341404355697156569041785259820945601906589182651084024102109798680164491503049197846131439580351190055676668649561193733006773643131977436038707799315293505133575772885371324060624967528027386481602298308329085995521284851503409790877364039516110412555710772048127734199094930983706990437759008700126007243932439032481451287181998460699737801243200353344273710845194983964554948110709458314001233237302068442949849953514137931271095984555416796642218905817444332951926109734710478866286842642003514343287881811291438843635977608170423553433289994720372007873135363012809305980558277390447291949963851125194778297783696866893906444991132234331743911444794469839871127389362684618139124285033460988942135009733014513569164501093534441236826861470881289279793770046974114509256232537905132295804930597982133148650659822414375284121017493537484359788482756315764302375235341188191912937446299067972502271176844364995855964997648235455354173718898757577792976651877795095579642442938073119277496597275298641811183967173382968439009457961891419516181527224278403537979372968455578415264076521064309241778574970036372910386462681401606236390343128318243030637495555544737577269264969461245506856095696013022618787114509637045359131570048725502019613289740953219757998871689496103430475475456018798580232262006475609751581995300441589904225153224092379064568342833151173705680281800986836537410313433677332196162264055980310683582717861442684440710591034827606562169389436784054650723347669749283889042218611530638406253970203521486831022679113768964593848441007664902537195430624934348643352417837015494446783616249425604060724332051096040215834892402952775069968347730393875324396093106427730461574776173110088261010887143532045624519679803480318667330784599264434848513228805965583594144744433310955871380431566085173293833704103842059134372052135939598643512309233732283516019365848491992943508487113338440030937824401874627802600074148807878029316090365091831793835926108251306559621098853574420889149615657250957729903977829504786069920371664000896854727660934604085093642932941388400331402336464273863910126543567938981674132995076842045218048552132786935270200182293782732500735677089988724625120887024351628761796068723783977461361881242616683530597510764352062197500706881742343205125869987294701589996174266676866900112938438361562009555042039228426113177351683896484223867280347237580266265659714097276083365044338965301261317291869443460099690506072814336474691023042595341690469088973156346552224703167729527668368689202103373237428593088581851432814167543471831764836883387462970831636140983317397488613934158193236079251074676273437011537725990187314252561393678389612479990043502673324812591421418641903680172899221386911701388218933759043208796090935003385843010272642453326103412904610516682724952436514356617074791640962099686560120294691693921702380951807156807310837019238248057162567508161693257052967801094806446042307341698991742062895148002759970860516082571954734073189136724322975081241469305892881028508067754196928674069848200605168469670615697724443890310778538262786306264256628527033745587715467461083163239337177245301221831743211808609531288211244758399698418805026043123271754716045803780187296813695324939119502825309236138513741491798390053820594471639625994466685121735843562826799476938298561050859411010258714987908853637336871904832628515342878962937661163981438086454664886267497343534651515841000182522633842539035946172572039075027093001799322837539896255214308784316788430421698013887664976499925842020034810776888070116403744848642149221530473340920262303734587835284528699585528258892879030939590368552094215707122567609003417830898718552290686264151138626965653364940263441892569990063618183310066262545572003175190442920791924043956349039786422754880515807003735479419990461433607206507348785433584065807066997002632080513400500342735757333975383372775267998060596702377423081671745801002404465239847449258454914352273204585058539819329121544061233920796702212256252792925237483750737726368977923283620812770172791524663181907992757828124137724743025337924700340465311189723352954161396323980843630336399871692302834527180962181982798144690213553734112253370757127778611226051712282015358341973803256705391408213650202810812642738683762395570616486232400695361168141791132774310422385158908126997812758446553654870298524608574894947039257289046454507287941129756824414521089227111757639915567218484640436708617436192746001887822347266257159048591263871051088902096600729854116047398243961425531849050817202721233106036141475353380878616769495425616996992018276687100221362608107894014955173035720513742584098989111560897826185938418820766096119620481882124690822766387021877101557727700610254310279695723602770980681702579989316953845471977374048089261337832506578110914884033487139890413262417869761666571906594731440326214084515913009724613170296159650309871496467539268683044111533917604424404842860493380200472236233288662194826352843363819513275476969260880010615505528292541441408970283877082345897066369206471673590017848460857094890254928313520302817393265672278008131968798072713006870153072481656639536497944471098731794542284544507787104378638244767028322096949624232596571652616273128822392054745187280643167263047000082053561516390847920245242938895594150510604402443030142825764725275162252965795939380795596185042746560480284389500333628426356888197649011857413388156950309701106872503375936830996148161993120570159746856008828177111678046343974355727580901097474426857685860104804277482690026015239951079303047954303869319984786523459334316660137846960833032811288180333812982161176539529052041321352367536929379225275041841538390156138867375686419323408775233009911306471643782043616773900803406812741896164843368344269147885081616968414313003381017576242667798872976580140812745412018618582021550353529660223195925655853086867702224400996308652650334827400267354217144316112941487715152459459373099999198680449146640923993130380477514151500245136909524864994566023379633858716138620118620835009041005276201265689596178320000714377979698512781192293425168404907669764950476813080953364166910898408367856157421239998939648634993880190227266197076325556355438132996304322397074198119690849272006221722374705471245784242597106979103438182982845646071345422329748429984775812643563003600093806619581679115832776863823752382280798725141326503071903282548555123416442188030415692585799742640402209984609107230263337086105344611876722780745070726280087723147414607611910167110402320806351135030275489975458903596052364291640485693639562724927784009342775776402072792053255255417165431166045312925798204145652868513604645385395508401178244517922056036334095304882103140378027016021732862264869948613481958985647715070246842813795131602228696146108533406792470121318265988993063394253386529274806297455155848495668490055253873781128353391936234210747498045585581362686416921482555722618898683540483055687149147609620480906028753801492335838353986721390156420257867564332700703607054480396714260332999879355571687236916591695209714353588177958547564532445442563154073151704718110755815962108067576424510738593170163201626859688222564080933751367634787808822190245668694387460684290757369261860467075976914585302573876449000685219267332572516981906690697549893803963444919312098046600764454036541312232258898222257984351220346207520269795595265004038817862727851383989000681727854061928943106467732342278192415994988569463862637502789867404902157705084783680071406162928929916137802980730990591831864921944608404601551216802901700665145049943960561452137438501362792808424954165155334180150761168716296863841206127329459546615918061450405166815613180957223804778504284191267144186366895129454007769506807307021874395962139442264208685877511273360526280503020386987639498028288062833953362880908202527634058456353904136275480183010376525137266956252801474803561857237488593860707309158294058476240388169981921893824434444109404207944802625872622590171881700429774362567689650192173798514590857759528292726354290405449587324732384509142953257042358493423519009443962187100360449244838570057698297453767031165092232808088615342892394368560833816410107069086723130916897007976679973231472732464730519752401000866381852584283204635409008867323192727313472914779014056963949440277581446816908860482175108997359412009889101065490666770664290015530786026339044383100813109129801321370734397793636058518489399630442241057516249104393979117945493719043671366210181558950045479195078626215803094131906926913416208093595118303887588198185639361649911416409615739561193232752896831807498058469865217357650451757245745168003266080593701935766283451097340485056507245944171712998794654252204630468409459276258434737228728014907662355270961800582343917261843097688485788322848215173681435794930862660317274352869957195690902049489709387337264268677297336505135371577534322442138449423450096462066148825465680431123847336651462681546051547772320508379338360012222822930662002681115881701935485947875530482913753181000020180406479994813929126288123072607537454738428360730726852114753229958263098921136957801932507365402289050596739192882329697028314578120861661755278158596293014818772803459853907182969181652802701506826842691783065677230457172656343587484716904367386812587782416810493040299947234510766001934339566476752091386603979595637421238559994855920884596342519984251088867642096550791165670982717181873748874166483667447072714451718927326172482002011632461964943332333123275215880486543790574463003466256564844827736119041334700202975159591353909901093571703511255538355214480197392465715531957433011964364273857258043336243324307368057868278094064095070501246177397620233492804542776661434679488423011317283062995197906912157946197383873814941718018996885609654578371298971335151883627242584167534731020771746383144207104414428580336978509949170088960848662800942558007282269832244729941836963479086811053767003052403237075298417989306456015937823274332913605246166643288545401560691777052748367963397790477894567000795107857966732701094612346422092070744231477786670434710931024152822179399165354340517792881329689600001436637003291611185365298301837395270013499106096622773835472468135697926693818932767123689637479313799577868351527699612226716325446661029737079070552353141206061410976775803525416249297692787578348229640580385561754386791699445580787414478374459078356414681338864628514829118210127964417404650625045056329470809818682827122576952891618973387987977768963299701141092718848053654176663491068266287920294014695696172580818792596930910091488929597114550212963070097062398328210300235663487595783278548159003743226677804958296184278702505792084296511963390637960287805591551155637628760936286854673292266362694817630241898139457825808332840767375535088453697935055253133938722183296536951847478937419753383086230520460904051695391587970911142727103825782215846695223925892892130690663408073826444870839213824418160782847423705317266163424518683110186863510016521162072918118156529275649441457075762223805400616623219082330362788367346365895344948486386489987484506567344607754480545024402040765179873762713609611934384641741777768392014381009409900843061116135441626989502211901299054326212989909687090522442976270482741526846194227608200362726502428163080151364834176123467964701904478936557235425016238806094939302805505405078124975155507541524482103514696248909541734880620888644732234194598486433440355216219764056497643170655539934022594757515221855721492597478209910372597644539159313343516406142132257785440744769777841346768492665482740877722713029656547237534861106371317330058226302092215844133509495507403216081520695443992888682019400576464407075007904358986997080526125249370732334479623979254942511322205297874314971975707549996881727917224341248154942063724903143572313139271284531762276443892541560698308863545114262906054976562478456267108839742453759122280128789596673537869918516688278464056420561895981387190043294869262903027083778033666195358913850652858267566917418105008532380264761226959802564303331760600396293085674126257116862149835937960250585769672709641356898047101735798397417293123306354166910542527161419511734080135536709201490202522055511969772905015185448233032974650784781529028198829905393928696013523688614758726837659232563786089706270427825926249983756595116625286123027787786946588617375015469472899812792605772079259912418606580217940215711717440463410929999665524783425326971870780055807778507753455944835742833816006760362283459260637445554470872649990844491980855779758569704276436737189389003213135318022725099576353131470809258291039003123087192005146065480696173688041708568592876384962610737172504454008842279711728367208603447909562604644635989250303636169142039158882740483580797915809752040993278899964889958868354327655892138299493700766329422963246005188325575686341813090388229600117414726545585012591301685095115584777294046341990610347631415696790198671840067073776684652203084322120643671684767817322038755896704436107437246557722279346346630395664727267813378058599370248063829523543558205111808295937639415693851215333904967704216034236105824043569029694061871462432501015596256732129973607056130583501582622352125198105081647913789937278787248100935104227593862511124117337371935410005419096728853696322690284687393495343782939222340407806978795616573823600230343461120272195739722584375848115685576432190592342373198434302834324611655480240825697466998931807564846799645332886945331317581845835620191861357951420193889555828227907910052439300974555633852948397330807757463560911107925882812270054921928398642047530573332092668979169347027252644086588000497554428742572486769389123784907706098652003192103950164061051987869706361641349881143018512539525189620820044826195381181568682383785161406688685928547950152769695817916399352524719904662485243677481005902253031460199322427496314378198186593821323773257087903983988946773270796830304240011208778782493177124304710675088467034007238862867848012362657737874559906588956849477354231493654526890335358454386754605744018025960282655559330313886073219061741585328680154741279546720233786109377520522825188449902522620489445274629644220205823817348855536052904539711593079766089269013371191599953840932570468231126800058634017555458998220803353484008623314476426533525530464703016120188069538656617558086725083995814235635680518815002859988735401133694868631868198860390870952147915916721130103589456548918043831039570063214694945573284786054563148812675130221151279081536091700965592589086885026648298397785545643417632658961071199139235249287772802973314888310002015465706295927933695286507631028246897677531936157188139257944695186313672033326937365068527733528289712709273268350415684248918451881875052741125321766575444155285568041946682148493746246020854160177787012380596674142039391277864573072832505884296725934373353404035300684543159927248203312302925291802746129948846221802731527756576494060130861784163718768237047774641410455955621230406905181749058055939655364203247058280972886163724700048501580063402489097981348796770897312610355091591880089550106145229829511454145718769914318613191527144737929910899158551723212720629023040788871654784496248808654910100760538210398298386144135969816910500105550655643640142478591493603308389871828212748967139693254260186417617898353644522559845198755135263055724526824017614036054792038127181822278414696834604317837106211049255221474652411451857330356551343553746649796308123514925970499603236463419786773579083151553910378054936703901356807427363542749964651109418768203940346591042932617391886803963264388682889822893656201675007581362037235341235161925910841346283751971685262492822496195067651373431859686464165134257860436400467287586144865527255267231333583324209247706196264168039268822453578603947275603620514500546740487462529370048892060517642134474570889876499297564593178851666432848175882122881755797395963501583341464583807611945536339026156525125965373747220507654482809088299552500831799399106142254257779891283270868384503508744294448461082335443879260004733702890870019124916774988684457982115343438197731392879203190112057098648262590390773181622805022050207831869115155133653985326748265983691106869045519818535821768666268713131850494295963693882823561194693710889735928124767115572049614444236705932229863415391458555689804835573634179374244537645564720061962521848643403918775693989416415419027772894387883169754148251439225652841389592782829010800597157133880559332283489294815439045607994259419392450978358242067582307556939825178342851955285680346019248140691100359403837758370321525326447824640371210874626369850342430920674297393480268457019217318561751523324739368327626987377338993766699078235626447332674117064550168036063289847925373881195756441114784618394064885923619588137887730677027120509377697922362848451640027781885665048501276715561083831627431947175742173733684250216939512899795007793306264774376827013581152125541226354059682428012321127833757353345660168455479102338829186472609055619576387447650814754526153369821167181541820817051632954666855207641578674001014514513454908079504023023603470607647286478693195249552068242859778994593411097072053691607855539411027338292378664409224434367206489661621159881547368308779971413451621450212033120734048010084011499050737748857873209425273998780489148611928040785267090051174835216388882617128986846795731194008620009437880226237456032380008362263803125691943566839537793593135273589468879316275084455091727990701749420726971868586508472653279054599609371524547316667330589363659154167330135398976268661042772108167592117567735664585515073821189329074174257041892320306306906156933327296414484756733920643350001291036783847202814839596842716576316773531242297238992377132183167910957237199041073430404807531323418909017024711763327850349018442757331585381964985227333110762658782724716179538954206543711924927499610496654621575297430544644099881164505694360316730114336396023729357089442669049947513587188537165879790520953498311152227058200953789925257158903827460385087182161385764965435283423975529102575531566588315481662923610031458917867325181524340698010470093784641061626749969673388989876147255981911792231553067965086769289579604710139781088255768136296548330512262637987099994861548743949934853633544675347428154808242240576936953912257427421669688349979474745059072481773143059117219784375798215474819518153929187490962341732190317656320443453913866694070114575404735432960702758361088231137946955516622917684347115085315492373353271345716398995332812843228205822963918104603264388508283010230377060325860186010856032424549644193132479188769132681810944505051119250594233208276603388789384177818897772972103162919651045276761158032462263780826496011717289665983898653515539829878645141922243468823375876171835979230903027855555815773181001251661119816534449260942036405063086231622295443227450107878783172352663815310391334472998688571966692457297279246941544934446493425760539128859239273796192408674513087879617477189509318047400809528314335625961876172844463354944990402009654733373288840391996986680316262052548938684477042299660587967787114063740256705214430855307878554864427439952660004063184459753921502736315182517775527892974075566476900948761736385601717111834977132245055330299361913926036157798493956169931577379528795493729415993896985730682719980011866942239729240396093234339184169690613421164876402994403771583838570431477997480954757358752489809880684916514652383629451554196832202534011755794704394566841855541212728557984805509414708761956816007819724219191841390180828742078590032640470465372781048083176315661736690070895863951210370557733879107779117644743653801253618857366308100287552738853199672968668117242084521762060439533383451782838872521447237242110098615631607767971692322646290677210833744340223896141896309145581533308700295226771258030485031298613234670680797017247632302293847535876218106729587921348178288354261398960346982634421052044434736754658447185447013625627131704269663425610092770847777419085217231589155244055358082683441220663702917156045336419332557487694827606160116731791051646064518368261382720282384063468618340064559434330182577595204444184585936447226585260923027924467650779218670005491743151676282569810672048653803711886417293808633079225954425109913716440712635795300896212500397837650184457983056295852917390319894363178411911978558550747096640807737174052946644570430968503440028556000797012347782096167231422507663550790454881110449988707385834706418879128382701706188875407053344534689449819143846672335333118687548141672420422587793396943754342813075547677153595943438596421275117191154560789195606625315990332874793051451471114046465925149939239112160431174988149556744895210347424220140111446742858173721529246751282965699595623250013676593637617065040104112828780215146606516683726501785801540768499725951673770775834754097284309724482570439306948753915900495077700155992073463720839001582398473342171408610348171526733209732271475544971457437662392877096594129107659847610700471286005917887599680313218807923779313510292640020936231304709655342307956146136888782507789230526083609876423820109580361965357823456231947003304965066990266505380608879900465998119509819723061373805329369595481678156037405656839177618844754447255987205999006762221146708843356638064307783789428343011844680596074880706865633589796918070785682348745107448213434938623372345615629252750153984047054017109175460663869781338025891469919147297603059264410689673118781155011612946645140919414968275654089020915732050700915332059552238308812449790849863312490435321424934347844349111737540427352023806336793455377635132918548372318004511838579284216084314872202098516248351111440543904269953280276234105017072841706136076876163638838026063118413344128539652397592124125037590219854913072655974089210998409075641636549381090084451618708912066176802781415216883730931258597336787628316081159288915689844220626559869927069823555678921884037117883513429517643511417819035444374933646789084753414288395860782379986172792257088932282017173953518231834029008133888492046416666313773772967524092751158557844450813169089981189072897618039815162665579933379969839257076292451086043381872993357153990464893810854267748094662367692157963543653719513973369575014283685110642885968249253434796053028024819393388036130056064245916591327244989762102759427033568352430258786783581834898727218678051553734613894988184136881496686159555184654752990248768470728061687695374112258601342775392624076625257566849666001355730167156587184018571193510380055735851421525299334436574230273908882563461315254699388489480573397968008936155279448605213967787724002870192699060882282015816944794628960228860450884546154618265937981474003694815841463520099820280509032321039502714069712287947312717976481104052308244736489830344226815606990800023461570480903605078920043351241992202592737699965455203596695892700173789367103750527789061845666508535219217333345804059934951437698969311510342888905540271424629164699859086224191601733913974369467969194243185023039279938657379620492133191713250482567995364344890415537660044255545528258892037267225299075537747286006211045211226294211112369456278640911250265133866481914262189018042906860916256157304483101013647341821577723050915622587973257337812541343023012529598285436859909256758253080947019422412993503457962173134422188608328579558063269414468038963342676682450230405406488611597813341707785621891087829085417727955778402817354817914869089952568194317478028721426653987004567695109827902214378649008889407663641710893194293522535891636486964133115883954480698282319524845082303667156481088806698655848587802233850027610279691102075844711117306200349081986565177440508824769539547193322522028760782995699432593489133182378803455714819789602804654114445631894963449773432312750111192673667357977647398196078876380512930343375287679195335441636259747898915924240102317324771362488710438236295378903254125048144140204431285816482187034786647597745363169698611492370340040074558190705392962311397606325444127073542574443983517672981897633438626241731553085088550318347938239132534830665939540383540210447496697211304231031217710686469799817809667516384923765093124409543007582933113821777576837658988390327371344279522097399505717770051730372519134786283099896835340164871494925088987890136448815505390205399171171038225594150892309861419090343424824386744272526494306774994289809999051255772957721509776477998902542150109827371720556784371601677355068593821578308451222609873525421343297435979847342995891243808868700275646975533934238992773379974019973779664289481983592958753252812409999440637957972651896348301295094666599674979009741590252812110216434083179130809822481203293540836793524663950502687645157729503278944824278141472994170197583282741529638870070488469978469909505525106316330833146125558995793586219392566567959317892157639076712661435369803888227021564311652304022170772085610373529585360926379394819968743563999100790688898084161021080427047133682075597775733595939731391356406922825686398938371554859290308206406614465582373085931029326248311168126394034769889030091353506644896502579455862420358536785226414171364152350159059170094008951606369051262318962706108299126584878084606080477130064479765075609039292511405811277957344472712877299687866575609254171076043178091548312733104698987103005004929777346645992711370770799107881456617341476103729040073343108832387741912232419999483240116030789168927095601092786384604639480353202544310031053390110986208783213858899019416333789446485905665393108623821665628455785000869244251383423997267842004028689298626317878464601924379700045961109807676240812783355411294701986848027620895895962424325816520302466224769222095072236277125771404394173655790750326418318088262416650979221549238057242375273421378495146411550612612818458176830319013799843204518636487198022739293305099900945894300382850719503929300588509828399923122293065847185576325070570537642184870079989209486854447367185039783721277382812789422741334708309503114146460467271772535732482995671745264138750842215116679930254328420244631557805997603887374440276187355526781790410295449903648181363131056761616997961976490801156770598435176044635070777323100656473265447003257553041088256162769989464696597856278869599703730605538435650724508643228504164740539842682927794477411182729839032207107152454565026025669773663698092172431564001352995613644036787614850012114681653901396489025854264395127974084089717608556638917837119408665711356949618395364607636426394160128396902380778794565363298180706200815954631393580810884605094727501163541699575266451565677579546389642679460713566734858289668282269982877493055002952580104275153676079414327882462322282866896677880123419461539834240007069799815788617494379628047017103024725703154692233056307229961520279673356572742636556597077434496970042576421107896418607698906709801555784712722973880400218461866289123816428071512078961651360645583946252249432668788970936128567338200226159606751158950667456746897314297250951601232923968457929139510593912938030525007100279135610202878213312872818811859313748790966795852951177703010091294590724577751610685814810731814964422829533857128766778865254177799968800587353134022110635045535837819406219551532521917241302228773681152322529450269951641588006899801721436935289436302547259222454127023008798495704266211912765658108287050035382788944023187613061093891551473136271004193165350521319767682822736715767679628640627128501455319433175199593269181756019550960945527152264516268483247175133800594514246436980617067350750082245764039460127924463409273604219026529958592082141229912755380551930850660838290362771997108272466281287437870742967014609555410377112382519058603722229438327974931698715568382964162480857191691562626755564973318517853041931996669681447318706453974949549860253386629862814448441520292484006929126514232650746884917796204362554532478403873209515240111025948881708556092121490069830053861195001565268759063545068122847459219703003962012159174185003855534261957086599717604631353114677918316516942413291268172186358305638920700860153083656683955690745140471317197839538342813088944166341056545166682490587182998482212398894104153963369994162004957078421746327028489390812682382305450980079105174897485837651060159376542307218917411827302368781593718953101141898767523878940505121414797202932008632798448555420528593700116533885058811196429962088678558102556682809417477551449145300283494882906427038809481915373689916658456501407322566587773263002839074508267991830955766395749666904683667860645397552780312826710860589153422538014827093473316994706700213653908135262262285715032949817372108241379045647211760447737365674209327304480567935644959871156926979756416612376550194160892198658630989841230190935482166647713450621342428798026029443995251197795268875959796670617177720155049378678335464793564700906146424058424700296288413951226573149348155599437109197244374617919264425160260947563368335412909015681753875311323628128203644285820086212533024963744499921876922728884113557438982797713522065058350540176887174500320052987570064657040125725993579290147095065868783582478863378690175854185141012761301813511210389806095295642218691675401025234678428853727678088550036572324975290604737410213220290886392007128767522076547885606879196088866228630245892243259815845876582716177033565986572067638226942787189989477610991980733303989380599850094258409867599816364979248282266393124049501973601667438223048594412800470291079120283909437943365136497196493533099994432402391249212323264119372523910714624385167568140493155291407414379146728620288637997637894818764106975810249606890732467983926553746021103408735644662356575682551077110449723226283825802440488430700227045405714401081865455470556165033094659169285268203358505581297645150809984429514252771457303344574859951359685443497813306796256125811621237948013678008504774031586985667186769318217571149696489689936187453215650603646072160132887027339975014343075271573943011525750466780434952030464879115995389257077856775182510276681978982455984495858815923790831335897992756964874511224637602578234982663072956249728589996326739827293526239152789809161943211836134484667146129721847586508626935041754418516912477385986462169597938179235387686954984702555067950490033088785461209999353780006706708490129916787003945327605602952632444070573897814149709678779425188921797426484389793359992066354121333979154910541668746459646043313162073889869022602873244766680322605967902285336589930544104892543249274637843894505699524664621477095683722291738455851424293990991027154253837595426421003929401653069985872511012722031166953821328047754541280011947277177390763758556815879117965256797031958204827504741825592349641621981987848145907683713566692994529047545117205063266634138296988530190079888863701496475204731533095693297537289678429105822449459473956445773774261659169542786537244368524710573157818914204248186067457020162491911343559893737081897648715722794471021729580188138173808026412115448517357341248811591716187963714056431703985521608797587647427942555967240103975670059130924985297410627911034130014191338393287536919167990945354017191098111793955910770980923931846242277923801726159962627601077203231653455389642211633392659101027873540777148083341089072059765849145987442069158570125748386505579020126321824498604209825054775776118453966153922050726754433356985083455856407874693799506954611973744966535300582995516244699095586000099936395054927850712469397601658204580294399147548161323242027381248222331597811542834514380870988269910690941240036635752949349619071533370740034001837702352713560068002168243275767525775255034380803417499669558413917510173778348171414894497606453780609184428582932660456264612202352175776340172472264855665476885218398258234246543737198278667158548511701845039781595162073860903666891500620365619011725080494894159936740561932947556570372894527479876849109857454052097422196887358217912224546369347731801913076102613211805825421451021329002168014740655746225407567808486632026433646842341655446744833968331760352370156264433327411517702162346551033156308043766763639260469945447024551160495289646107599799473419067117728621608254183751274870264948186642153626445538978680587018243658702915532439979738361428774913103162819290810822065585638484286979832099218890171093653797539016132988695032327452040926924417313517374340012576134247639920375386541545524862361251337872512006484036136229718041274298143590455150105445957410188154291373374069734833872320500202096380735034354308638511139799970060668691651947192045496021544114004005532803220960216323470304430150527182813495448714112764469112382001111970949238994049440857123445190426920798364948203686800653155524855329369959381376877626514556196846862950428379340573909327881450248152687670769751333075069194053199469966742589718122217523028263464219826546164907930993133536165855660328185109541085485120975770658783075481922066503305589727901935681998451933062084600030063058485677595238413687143972391658872029348226066004142113308595984701043475419450316096415327941503308110479588276437130784009953720058933237141140005426546427949350164682075424919734986378684941758658491349746077764543907413755600066802480719257819357202750780192216059238095366150338807664280887170399504892465340632404421938630526570263983193598532092072967369619680175937885059253758596443095642897092553408328462227983619093840662535589831260663779208153579382112492930166143922001474192147095013577136385554821349645916626758377214332184590771800334937331045167833544482806317037836608053267216154489170829203304687233657311511115554840839785844933846865047995489230277708606934601587769812402536369083336406364863767270867432259840807160637937586565416500893854177463586969148939028639414888793809789315785665517394018938518512301256174399882327665079623516633747897922128104359665100284329815370785520218078964941084101668612440039486405746088866904494425906793456876531481012714841061141803329785970037806387577285174271055949967449399774478790231185454126416315415430172582693950221608680608044878724070043822089526454052284550590685321431761516044552347860266145467452293552577298008920467189560577330727639744089713759697713449312668306990512246560159602269542375568847879530898040449923722112622470396706941517565720820462300049709422899955846219102988164024529969421266616044976885323639166776982406594982091183423131372824524296334691841543077858421893494827892096017797940148844026546455753862432394851842614810905298843893755015246132016977396934452474704610244701890699687224173954294212589494765971981057045343882711732106044837349259401726003934879480924207854718555937793222154146257015310953991639961855902638768502240591220325458832049175628582616086156221554145699625200014029578248805897097601581532392462968796948672747461328144769051873357908836896782100082477216618562473584521432099886677049891780127059404050260884286067562266169675900444413323572506726630936521004205514994731339213431247576237175382868379435331421877289268181884071473408017981194123694361807359319347367366704570406151993882320300036084829796264221696962502687321328514744967541969610813615168464524516078309553777764012222980264520720374783784814813321052372350462764544812413746897370727691975967182138104993307099352973033860801978932236422123486551292796462493997482880919398921686423810926924963802489161626671849604879392327349284376018093908250182992915180935561288058390228991492735299007332951534792473563614610159737814079013360791662580451719887180027388384741876526517447481811020890984959133326791546897793608806642363855871586510473748743316543981889701835475142425156288250093873369214116457032042761096219161640794797788706358943822589294532857728582144825997056026516313365738109252367899476390229274627508795278814695894999735498260505549501306418283359673925473928027592024231475168652259596779340005905822864938783172663249969808815349018401949057721871218318247882433904286837797540538876137525913841091799308404351162054148196942695693544777690460373945964623473110362107489396820162877491379346058576057610931385130687835971258451517062496772774819463060714886531868593615738098813086954025926998045317161659228072669879671814642713640248450178786767550869046841391180071696102868343845483705180110540677238547566226250933947495283619306618794454454479852336588088721448069402942980136802750274755793210864883702734836262382702644878353707916728178020280330666066779578692046587328994432780984385945404844814821733328661049813536616191429007829239833354235002430395627353898905059695311458174723601649298683601799280665985957334438135292643169386678763589672976054051163777881092583623981601682195216221907777189996421409008257367854569093995845785133625715912273469626598941485165305115706515224563610236218842105922472575948918353831603132427083920216622063300112760723429276111681659989547289243758297476742925435588311259997967508334257380966411372559412763408568775547136018574228072897803744727111527294731518061433315961271401372846094464973336307873970219507363056518880858612867072253442544700697457747479696492918397100252243704940568780431613344613556183291784168396582068521686056104416432800015006621000529565157030104330594225058895067168966657770072889829396255456743975568778926168100714746954925891038358576353687932450227570006981284462395993885458549222784601743314946401799716101522777610069700337967801322095882220974290100025308036232792970744814348200849050866296850041101225017462434619479488861435733080355389471409119201682650592818493747712616302376666685591601318709184453210541955953997425299280574702190394834273315582014654795823727261659606873673908653003312714565076723783566175202258534982094345252399062543836463425974808471484756295799568560305182267677103041863427540651081040028854273030986749547751482643794867120356598248448813319846950927933966048924883476817106743520014724275711127062981870028089632135118926390909829967932372297963503945463261601331436940704781254964591820651208447763986853999383471878932657518344658925613792767778675389775441467614365202583212616683588010918207538189414354744426900275256371714325160187121387828056431008860460875011494062884972318040939167572843375493056757033605670436223959426484053731532020149234312250201906785345062353696539902459203825479018682340424920378564679873375679524593137885016755760696925532793571961872345922573614646247087547866851604686933052647195955401701503769051927980980131014201513112773819847450186549593706744595630780831302361816483708050922310881668685730191201779909615893349594427099028495162434012543511224644923686003323536587049945232757908096624640215113330764989009442312572448406064537514315497842446157790398313894212827547609899217893610078399875840036009310621741834102986274298646802387738497162743051589519253507459333113252632667375309298965518817462659206277545338792125617356629721645718018118470071635529650402961382826315831999416632064691992841980903137538289578516195393524725416535122894766333440937932606460976185236482136056700363537753603772308571340676418431554174663801990879264341548603451892671529787872409468528002153917605207743965859945197265228205858210993689289283666661384154782965772195741268114101586400078343644583277649867186649392904326059196302837590166198059204678469540840913292759616837290614853216176348061695771008663309442714360122729069745658558851340519790105772372905954470331267018727305706127799757648832140220700109104436638106495393047234420326192957362686979550812809745380042225523893256778239840840996421855885580874594703904357843818920553988739222960358319315014777863035795107159528845357478714829428938935320115754154900449540503140199989386034805265574603352639976606008428192835930996865799850110475039432562959560009792367791532012417012234681312515058967095554734520856757233760332438572086388012054951136792053017605953040172979934002613786572840182245032625726775537885703821963821562466777463388751662599505430769401554052476286966942521942436543555695673968111162812097692300413170016981381095168582875122118962220865851316652317957910720073891525080661368017323585771871907278816115465258764385301238037504938702478914596227132913299477175724535152302409799984640033536202707984831050717706599368486654891723318548930096346070472961286032274365932903979878114716507783781737256458022061039277656999859601698783325987056922973332913423780450885490284783247369448712688360021039033644786764409456648531767206328173534342152040936415964504306473532716141681804331436091525527601158223716011852376173024115671837862827800456610054432372377548898941761178053256588735360801242986782746728485112033756527449819403135521871992870294943123432228067311893698784930163115191936297137743756755309382226756695565312047907973830198621391862487313990332406175240786601961790543020380116352298424112123675907874667626528631355710465173916340376305322325782792335691153405871335410368933967159765316566456111992610199815712836842255737593287712840370900679248071059549906554468022171873884967279169401926447195970159476945155732186518061499684979721192534937386959851889105408707491521829298516465447653295562463270322592461749651994386188706851567893383408359241426846049382469415176422242073990023133353925478954671480313401060556025355898864624730316672510269278212854063818867157694918262020814493573767834547068264519926423746698278101322813155958423209068678929895275884225501242911671097031649377220745208672065634373934417162612203911823298860082491086057617296369720855872201230925717836520532169564162811078208254575141054858418702479903395917257917740870697610870176255133526074694954579080756560891282918254015603407278481844049562576691453015536231724840343296751638953801729933598301806090157334139530101768306260060136099925643749998228749354558665081104489268147316708539369838856709741260042012247313389233460466443531207010608574835700462395836671775403869369808138830696437318606903420595073518794127062273896260797625119673911145871417582758621709280854286462314599880051919231219909033003908125955798079181090001513058126916859842724828920191852377156318330505118803323117854464595888155789804368980222531154832426463817878270028898600192872827818344169645399019775416865478576419300417899088003975298454285970255282854796104647252456651944850405360673011400769269036608012487784644272397100969268695805571563334064064795564679471902854014584386505766966000244450237067110946226771295719217474322034688380131864825730194885346273038014025393002852534689161069238125603098477340607241461166107695275560799745886129572385365037968620014826446321653384543944669028682350709387054635286324686387745637616815937261118338395442179623496579265065363697027742524424233846115664614299905144568686007637766785951252580962907614624874307991246413027234864976869113641120452732761870910449468446423771321908550130050154861505674877040318882130091145035334025041670433594688788082602699208963266260662384712494317497575813380819692945893025653909080732809484511360764780976554681338651642197371321394324358545010876274157435262825957011837168959269002740238618926630928106097097349770112792004184411949571566423166728761506661211042518178581891299053006086809962679000751022319448843822545160459722619057793100717489519078100128434506415696048917739332696823351520283765413459321928061176202970588737482191691468137185623712470309081510171595026391991225731571519762073429552195969663362240696850845204443685371493368173398918399607676489401178134673515218987810166930700811639186012273756690804666369223850384123290548990185426926628849046176430611873588668590647404600155052620222186738530880706739848496445656686775276884726431963912870962126758922651908980715374759604700833582533927949800496681184061036703890102512700466757691641334288109828315681132485409418477629225542479883207107055688918970387161518603236162682741159663882165692494458305014263530813890885685783510236914757236052916921554302206124683461764725094076666656718148258874537029760627327680749583832672835814700614408593113540783687491486819178883264078676846236244265014521575934333985387690279134556334637566297621207621315771444330593767075163475073182372031289716380718062942457651052169084812701083877175859710850875404750081508505313980071876814293274662696809863277292422884614815082764826171114582393870826572859634042415226821426815048732015637660231538701987183951049059431072423578967212915197879156068306641377779871253847912933076862821902243237737837319424855753336136385099552868449224120929858916876634550697821632036711249071466964845782652383321436256850470686904594411310603585978286565805140476463838574913281264754347145583690292511327465487361291905234970862799037979130679040680679869936394173652047407594025278663469998312404314121161901851822443772610684866867168845157674474854044163520085372410905928599279574980949175924512229113509612819231640445522728388396178670646663407876160654418610856054236233420377919177551672857830472189691488812866098538952184451217203539811733042996183654323800165899319844617150086192011052142272888721685357752115164605164069473307547581449187138772529599497984734584824036714022446596648841367348308490139085075328394347169546546598077808308719320521908471249901245996349088184266477047513300029087231628622323441697210242150578653322245706447602938328809426390351855758735536022508918606353610136766381150759267743603353387993510055807174418631493243718373207344534001092617672976058324782996869903085108416988365184155032559040262370970402513166915636547589773049086719858228188075083546781316537119510399162869284242496342832077629618053141138925817426464772498599300535066170638548847321673678196663144491846469241683010267871977639284507812009768784320849331398128789948861740080712879200299927698045993746930706669940498215586980863664429915267634609660756641965589275613355779809963152361761168369939536484876982580910212689678450473640622154085958117386368146260828046246662954205512901780703606009022597725016834021847732970844272958224254717695919574218474432366587696072051652879729134652396764087433363770066336164881233108580695658756998614017163598988551637309588236022741679450991764581213447149322258980860798134140103984182986641339958067821549435838010946813845237183773876222196906422265608564754124960330281629456286896197035193151711793422449788123980760625386462961126685727529706397437980613435847962168604174892459336979280241242969072234539659224119366846163194199836665175270376236343483475107162209834957999797006575059811329039359044053814176688615276603705356685839868566585230953760759768536575644660718548789260491560416836180072904704159757774930150498173446669685220074003028337949180631100993821975515435168453082417037032488826119716937994318314719373549935698002484466920411545467878554940003465870814081430281216565311306531065395810175336733153115249401841907463225921160128489535773600679741674481662180191058507509934115228154677844101638341824862134835039252091300618502683779014256321595898223431403499994646222499215350085280380370148970144422567358420816966735495006283155633594944934181707500272809083404751764494049883060273488892340506346325758774439291958213789385020618229555144493519051069404624980392524902181102377657012444588882607248897811435681775700036309406779318574805539656692665385316541933534855017018641860891040963815695681206722081165667339079349464643673678049207998935850974307091906473713334349440281648277320025215412445186608390604391415139574750531850087354936050464435345311334935326010404490711213867814445054594740911921323532871360417942816220545766158770174904076380891286206608643555508864224772235835010793559103362883211341116224241429035568921860069466317315753610285012220397844500179526260034728687773833139753311538712038416932901570926039641395356905232400694707005170441944258075017866500298474213645005083126494447177330745856282738836361013921655477553048779250484674357369286233704797344281812231313402645458824091988764066142315875549778979050152236781163199992625839298552904988054527320192000285490260522033639383800450684945940367197890061934524984595187557783735544455121789376172260882278186424649786762095884731269178646171096615985755027659812686064229194775497154788037552773212929307522058403357180248873944751538123345576908152016559328688485214919057179194906356904667689033502022832748564949616377064139032525893749481760995797247731952237846778752401870807663125819306161038488266498539280195266316512085566906146682305812080035417213363492748600728630493165395362981930127586372954725328589202584863305290437693267297626047052098938550858679213012473876561005664684806618181819530813274810822205833197182844713735537044139049939921481377971092734831988654769794665458322771737774733256483699761002085271967608372239752655397394807985943374080857376175794005142342886091368926410649905364927489158745373604362312653562133194372217688882462875357378016880249330407515570141604932196337561296786981938320925936546242202577910823648402351826577013415880109240525531994272335411461367606437249714711221664611671493934896434866360372265093136424098813287454366961013788106285766213657316163272254070403921849656072088953100672441645565848587668059555127290481663290915787217601540294085971870646961679280681365600221011174279962077820298510212719761024720618024382675038599825010246377562637830937515017287465435253622153873173486779935311312425357799021336485223781106490892822101242427054436732688916206175543377795114797819036808255957712775631720333348966473694836288771513205764652179359858297802851781876257837606911222667272732868753408928902389917091716881091843344299874009204344514679491991589445182231236020374210148441318834029914679918088165726760845526295554133302087137014615069990166622040102603740002108182569062744065282646957544660103453229879343126608723961132839390523324974553049831195920387522508677415526453633522753725744387421259644698714286721920453660130805075595290077224647721189212520736936213888356442998503540640817625937469988090432136230024045625545061430870103808654065786588031919771530630016327622720161468576155718122671104956562211368986517477841161272125051296640722605190149159683163146191079936455125797598907978185715998268679819908791489569008164241842839075768499155278010745979711091790926008521153491259863856206862225419838520436650439930129165497843886306286879157065836346109251423437755826431305139111505581431116732502853883622210519543018137759913996035363104354550453130193116425423570687193137194047734635886457888926911998783324132880715289362686494202888616216856748989080901696532535684294571887467754265377917705230313462554141119877783940575215530835018915420025355393721310737448692371206065551841275708178578197166498465452054631387249829390012260936589636400143427430070784468007819047212169935974977962530229828382151375245874817786317643443688976023967408472559734720254011637824365352816978225364011387161669733335251316035428760507787505413254100173158221422574431962741794447177007922533320148870740647413105264965045624369140606557345642628665213050610857547921574220976306124748684539866252568800995383198614098631248142780216188505638723965237459917981184713373318602986462351982691789903225358354915138468620578062309589857717712886746624996607995585595182376421855322986148576601498470248292930265971321022319871322245130794490287050703522364556291129515655809903551552570819702147725963360811388989075986982814364739041827771366154980465358502017997755158225849741664142921445924932391033876145712939908606220276969974287384610467695535082294272525709120502257507356847714791686005495280326361895959432602843853610193274907915719701234353108030507531086003306920651140836135298181964273708093988976561657701801735859041428785561585212383235565334144825808655882062312993253750944005887400068333738727475421118793729358541138850751405779688748248274245932583723659897327542006059126141037061108911580603983746387235662282329417860757087349754852572290551954496369100979725980614123029075702130781425751496279029569950721997547917456035355502408585942043844900987918371971634299261908052663462807552171790054324348227898715388507712288351994361989091999944252290596556776963713212499215142356886450037678185073480893817616263334784300566642022983552932882133976133832842907133818370823529912978820561332489844436338258349670801296064234427583817608191415171552511346013463835584109886796336294209404719508113559991682320107659784104215693307274708841460542228858298444893077516406259812498976693751107892001952825485991529813678053540552542153201048656208849473082341270636797495417316479539632856883125917605610374871053202186432626105926656330046362834141846497803191414019645414966061080421685440998813340442248600658776429259020881722882371133099537660739941027398299421518820484796789662287427002318417745411472844874111502412713832140730697422804408118671541891763763464521510234387235548168608466976018011800920847458144495017617208705041662680630113012241407606367850651516605739778715029814741448907386935268236071239085448917646274326061738668164870805460153677782168118598097321321156093586754420704429919766724474323789787831723088740617567934667160566090480951440902924633753291999784797566869036794854103759406345319054264071362777189460028038093031546779157018044951979355783193935429905967402335829569671829915065801940155668479675020359495001784010773853626727539487126529565172440140465314323451046836315611897170722497624117066244118584614787824952219517327460107770715140025846397743578582795733146411985407331044978304191748574523285028451437750905372194743329506493658666246224648492540636040584533223087843023224995696100817626795565851616441776311529758905438068548019158689618868542797079680151107516987792525089644877839415475664832346301282514828033860192391131201450074909954568145807706904184077974683044000103635123519452195063451948978956123441249851551601386612067533689397970760058149929433771872516919777399425648364665828009120593673903639480476016491072883813411998862555874223770104821915417700720618871948459548104649684500949257282208995740847560584837759610415307355405895983194155206193926962975281249829220105888911541281677055588324341739784087420208635388129503702785813629441387750451856541107908532225475627346109027817216560397081403018559400312295953099164614768761998550949898546568654187342838836335175462107458750844381407999453347309841545163787370316554712970318364465170722428804589431921042165000834353369191918541292082068112460217577742040967035477152442316176325129527215699068518846236939497164179804540889781989330367655257608106221346294164561473865775165427813557776494510510067348636726827193538285719181648633721838488984848748544513760369448608578733253503033143033342617322186349337394432388945422669315496062705045828884440728781071273322208642617726132998733425419490980804537603792727965545262465039475531018339929414958228818669613740787587974783001719190917681358034975708189228544638585744879873317800470563249251601581275312124389308417676028343898826350419542161103944316391695427108267822621922560192161790880255421309739346320320208400856239172214735169863593578005924005009559082056725250672982050765857924930101739302240160053341559316442207035980290732861468072665247730464470270874360086134186335943655369343534735646206132261520704332548123329382004089515912988695889455532030579214149999346537830927974179303547896836164362652679068913187683575773456159476831114821599785438396941395806882057362552950487427291372896670244184113466999230637084529507984803301385694329787159057907342173869386209607098754419266215071775631545471253012182124457599830448482997346375357098338092336083709929712950551107473129167592646340571583747959368368888285855103815350916279664551843809843862714874239291484065505156144538227027926660694846579473364826864693701446687470045221606018907529031289060386909907726814494447628095444864181902183760415993220265199416547351076913285932151259461462973892676156336545084018271991578071021717708435778002924114207955691836336906073857399483381810774901844074825631022358319032564850597551662196271424923316598138820479005734780111733582097883783110244335599085058189275749034797904858247367784229055730481228888050719468848834365216352628237603111825235308011568100383419376144295749383461438281944648676296590866146728704381399199774463711450939898124709347475256454697817772504131522673014319196039288775882024869646806755133043142693479382458202194472585257445553559985200283439253757959797562798240197240528128172055836919263868222378891879340642389115503860022367704812839251415854853691525244987137861160239786550992313336294457940217583752133591965858150446208537414389501091108545979359111883643174930690499708273949306984193023423243685208220922257969565323186631235152279409350813161225483565821978240469372478084428707071236920267358964725877678012527477633157597196558983494588768702487725237404319852302355799388583871511057072680874756005791882421031394206451943890925856512422388378220728016521312453959701548222389421679591564835750201670076389861550667316711600682954853987643852415569877366508478510249693215543755110867294382806055149156678016530040746604183651421405331928144430764653223153537782230596985296983491934094827948981801560861439832944278001519579511138993367898121371920084814006582470509119552857356339554477941245483416215776834333325039648691613668871655891307093166280287341638524162519658644034712315478347625942219261994140070692169658342894504110462095879462635345990504586931159396827024965079704326084283415046052064885638948261604516221706762267665665960795820108798728538964454104885047727082484154013482278764809500882039259387393302471288676249076920910607602350461839360135189705677576545303388850817514778756618843604478616424627776739278801907067980340126297175276734220180649556343758001653013902555637422635004172256269003544366062440400855132922124184969501920838582191442915521091541873629193944537835267930781931296116736097318681907742682397570643884453073577080161051471808984272445672518942219143649185585708550241679396080572205107266829404986788822851629903594856415197181084543075292491506592056136161824750328264594724785522315582372101048502081385200537918490394155416352289566908704972008778016690731022505671865441790967791368663527072605181795720333360302359010396267188076599140496510589999157095006384514142746622260643310746922499831072558494350074018114818026216151875157625588631864812669389129342767145230699853441582432023821544583430133914425962738556809436146079744538352264018410522049786858855142374302442767897390762620590525431264425787613604564502101601755396435040116544525052287758669760263316608695990078745239476215747514383595296066219602896599581675710767222242123202008757807505339389201056532057282688662043303918139290238363489458574857582807908178906092710209877803318129738857204972956506849054205134921465690794406710248699891379771616625922578739992281992076001006375373974573201576019852471942444990408984060888696457616887630165441216382973550864264463865443569300237324726226557929224469158096782610372647683858224782226689926965303780667605194026948884849076186479507098595938000843484720306837948215089186035300127912359286259028826154101658936698317930129999285098814719428075097854696653704179206788091868285802579921518602030777208830084069370200932444200495327385796186327094078076378328563774647185556016911663837968889021799511589501892745805909511506480528629980898161328127046559234832293991237517690013817661090847898830164692899841122854533202140612843458417132402262536320944906645387531899887841805722687671099107716328447464495674059355150927499385136248588105318713844267484046475287402272695938160816545896412870193693528242542141526355349009329321014279501430345300492938588904076197356685655287010872113706648930704882788412443441082446099186865111202078513470783167214713873431759470748313474246411698051688848582397993920272207530044839147759423680379321842525022808117694482705031519614467262733774681712232724903626911655657273124565874535501500128822077375760582312166626601943383863506182600939075168554599251692501577331896197045272991565751061345683153982849617621323145340924069471826865912112767767715682262511800844825459459139195886870490144274315395417239815997880663253622693612179951594054718327008542022745081795925244603901830076708693725569405300736769320816539926140013248541662168192763117282210431337316853279370917891320226501904391299149619055534580656499411800709019371222055533517678656537466530986176457865334671833847592485099387881574178417818331380175918631971249469433066940836395938277409131892243911602089945170767698771958316696953445066625439001829045079592981137331764755677223250055663295264448272972869865206297847470681157966112536648082230539993337420308948144608053849611212686334876061185365727716725790830440026365955303559128592269302912904269212109803754040352904058323007970186500436010052415040892779674600470777001382990622181829384759883352943085023734261125188413192399255577436558057512179814139049872646789719590570507126404703683191281125680041150851194865087779647307224194783855101851810608595777960757417771229956789657716690459843085353683049484920444383187301343078990490029934448833102347600878680654443857158681942343186652208727734695169371083643811887031398579681433190748551071321841195037309225874613377609590319776177373684734030945241193264462037394474462585979849293200678876706195070629656848695256613009049403045742174363657052554598759901871156659067157036356471209733157971301221990325143813973946387737593967604623929660909797638605810811520934374561659555468026706916239489238908370107024760550860411844241788193222811212154557405738835795901403038903875615356509765308914938588581256604922340008454768581998907958889228435015457649735096789623539705768464082425426720056382581703332857253246274255934772258690566582681979533337445929788466103283876672781298918331143570057344805181600981580517003331944298546288393170297062827509432507739216686005610683743833355001430939732838731012093854553828382489164626150819499589948650721088488800951553526009760789067761913679687000696706473056976781093468021958264410088786215567649654498643673730615733070906812080255044322741406910807398899280634536804628235403860077843876558527823264817953634551686451748178050565195151096950348279891821726811081713459446325733531964197905512265952074479083637885643682532937348815879603388312632808395337807748816051291430562961547854773613163300106322192151429673415928018997050804643911728545846495992079007756124508189030322758897692554748155297775309589745501971051211299506987503996366137668021660225144367098384805604815147605082006894293825159707512040107415581646523298770128598890079352954829141720969796537104983515077132437623633372770181538675022578534707925493496442591215833652795933678566775415240084744773458537273246469407234770347989244589594162508764873110716551708056989914186994198062048572979400228811760371929724420028867494224976553522097553881980609614166220838759760886549492415892249766684316859941074305134998419491613771366300931792441697406049068209462773271579289503665066181516333701884508460599991931266979505528010199886361612817261185519035185607477639333384834096816716949451474745013711040608780347528352581379566705085094108429479985356254058717932780448350488621414123178189022910425617648946648998012932847930102026202926935070235158049486493132177682242243562524078176786522223780128686426281530061677489844621051886243384934497928269064481540822878349182268049395600974492951513415485198700291634650275380835055085712304578671556952303744678099285980558998501031983730065116368617780343377488401789796017660450416148999919966642043587491250746383058790435917495767068619001218436072942864823910688596861024012727611264465862277938058382655896790697502510273041613762623414863173396244967392047823945426720484945534187049112114660511499978691151891377052857593544315788981378845517857469125957341312745195219764494928918248164281467092051865801755771889757242309423378404456143004048844769999344985742316482134582912759226071278289748403005452146990232174219827515031035249740499095408560402847274999329651038745186293990693420413063595187410505366567213076257235702217587751232964058546737528396287624764722253260194195085940868876225725488674670472110834901293667759489978508848454198002994555640526281936266804413496078005370437421889161449192463471623122485839475788803699901712137106141489011755922327678366847801125855315738882009154011265402082223160613044581079205833125746923200981054505011806930576109860769431027259243992210218536236699154367941188722174395696259315562538813130176820098440497054216833589768113468511488193872412219610875584264084470594619635970234031562270816570469375859248164597394103906429450692819290621831056969096981242742200005946414604146394092517411705729454681582633683165861990987139058921698934588928024783859110676483004740381879478939041393885240728343366307323652189614240006534500852149620900589580216379296953156063494109683434532967750662589770608126740790622106066779132496414799865915655926689391962980456461303169413995197502303465173592195228637115593791672822531298132255435314053733246769553653856544750814820016513628594422852729146670996666208591030909257465283168124496790290955442822324411735498304182086321290656611221707490245545410282837818592843452995647361285732617658025777601167372821988389943091348764522048292585144222038748187579938693081534950879723222097496545490559740140228049332137100085627311365254722326633915061031891408805790677857245488273000942144116218390993834904716279145007047518650196256299447854239927120753348274664831389412551571936350351813199933328469054301049506122607553901799173513187507927394932414608923450057703415867013552111339223866584705724869684553146915566059213687904613505443044764025201365606355187611714689441561524027791432349809350574986879612422948377427501993040200677620059610470550518229421797538958169807337323897734592334356656246990213120368679203799252824338331753440245025358766640829204458598220409488570163415097646506076483631247709289837255099172626431500795734957699887187477136904823575824414315256116186225069610600578377738609515612592366118483994383447769057059789130731288292852806901464782234365699699269574075934868111544121030833322837943398031276839045883793685679794704006273983737835957932255697664236915913788145452195601317213973034970274925501625441771897589967377518914846538591846582113193543317861692276584295339907424656880914392597254310369057547118442682539193143932771362852550046038066642996789134978825095024036847163907018241681306384061150659819437323106710713807423612182097320072246522396821937064493071036520562050674774308999373237003905040877433552464687731593251458320475390328140090667035948262473698462201784195197459170650847326344478987099654816586372810812945118922220772420280012565423541761382257681282420694308167248882193987072741520520128159670621362429813862967766327712174062356853347938692638445643862920438340368476467398677226831774446698788382308995485780970822616292622307192339800699883442315610366354311080118207571527473898702612158939825541642814388120753042532905375336686883801023165202039540433486594608198204287847364603927615655347221158246710402110027407867774516780605423245167552746564405581730631361900242691971445602459845499657018984970302273002225323860156193664510687689731329001193615734583413624256210020067229408345824700008188986220230782854121840681964514578957523727183602419380364355505849164652683028875646169357687786947151875320388613820752996755905683516505030053997408887969247804247353341712215668076592845910081118214637716221916788026342968379319020663114725148011141090356573005349634553317462284698195761624094221912356340238358605438824414164821019487219545346164716857756304575758784451285647905660486181332490290305389324168362217556963028103471865818575160558786280606731386905705795058046146105884396309301051068546227412908064024069906884741829427141311881990654893936977248063903051045624678834557966465374477026898180340005560672740537659765859851128295653434136802164615221192761807718626389416637298268725550771425486153311870060042855475828912943100602485704870415965384756005151050455955895777324392728995539461334535757512543590888265522884077336569645252113493680914080851766714569349961906560914485198780983008589075416856506789562171423827321089925068594988286030943811713574495385944751934121782106289639920396299298945567064048454375404679888749309480013091099501074858176250296860190931804273433178510985223596543743477807556347172342369383261897952172525111573628240605439198118115876595951534481238219290316553551922820199918007468282539724578672607028369186413266835236439544171530359350201441834723118750654362239674982860952572596047388625473576246378116152305139180806145035579227735160050499377834455023209875756641348334202861600672159015538794970407073757483745554189801965336722532252940919336992254384997862219459299171566355517273384500058211730033626005850153473428878077766318312000375718052250871077412301863639565568390498056030219433545649292342858623208540772314179815175237370197168257678882457032976259151920007333755281613052792351847078446987234355347712190395187687310426859602965574381040441529738758297625670559117763306070218115299451741668410742355926500781308507479879819774518401019652583924235807169252100843424774096621710816489726952873856036884308448523789163677680339923660890775083727221000492143222210437929655086530839282221787752026582338217678164515397079711158942614810308644012130711555972605663465441562506625300317460267922423746362121781340517954596775531164151451295808776942673222352096483168787952690113793052583380472222298412774765712760812074189358487804269142151101049587534330684408037039937027617480780146870544577238623129382129551694063861895694484451057817664112035589005713041207106943243668044534748562761270732026023348577716578584239104421801456447452991506084654629004184330317779151824233388704893458072982024669489253911355844360750189175249451796884786439589122353090786746266765851726426863651147433050076502488134852636896743184535972362472981228694610312165163946968848786339567970669644987533956055168017921740695975747859362961012487452565471517825830882191022935372813481433537553967597451161874475388078414566982358728062387296784345903579975278567208300010357699123697887604421148701296520526327204743417154252314474392180088287096205273546656739439847116478017467777224339088129396446201865290094221842221657168913886147424815606836924259093200341965409340843369774771697526357391316338888607690669231983808864844701847578959470736039198844851043931813513487599432230447848249414639972185077653443152431961960212244866360799432758608401530141257810395279512063619543786157239618182781829689390988143447331999938065306378304546267082236331462481983939430635376154634037850054800408558294770283745696913984943310776751817215440336140235782317062510974640263595130066335676159606901563015799878554738723025626278204047419159881187659950301934584127459746261576531998499286957244454318619293922999599931436898890390124835956909006579196458996979949722820071252522520435269113478872446624134861694715059530641790247363376226508920637185752394144016029153652544396157110666650218646509719596770549869803807184211536165427242601922384193621199147380224433804084448052506114255032686411379460514454880136112078847858838278850398254014733971794737894454633194292550410149206055030073420974398085307989243796414553213001515917286987046235430659666954415815956550336142911145065091375273406466430478683605906878201364017222437473832104854624842775800502354127388319401243171138955685941146412582199618931836946607626645703394506424217523231044781352860963873923547756887230841329235753048697232161125167099936846745790395102717674725007797859435747234911916393927423865912231967490400747373808624856745098624235034735312690146726029368591011061178985314834432506840529476161966675848763184871724799279762082624969583041269320460952621125210241317820715436866214252911462458114913196868602943999536869808332005510467613476405385939330740543014207657302413837339240985204698808000418630955889915511447833220093874972103045389390568089095911378021970806864807896308866008603703500372600856714177318741907343562244502455194451484213102628094325915585704946516467059660714416777497160229077537283406142615433448028129042041289979637682841390883881114955675775222212797874657936690725581125642925209417632258499287390734109612593873399370313304915680969660175711660270076536906381658055057910446602953651463095228680272522214975645888377427765741799530439190947931965889181944668299438240346438214830840078985992652647899546310087887643115349546874487618531250617691465989768214436542195799476980745669987427996892625171674481429476380591140958314712867808962204454492458144190594364783401252214605152668529511692367962041466930111338790227972473726400174908477381814266070848777003712839436660494982394801043384748855971908911885192149479657068686018715041121464484149316365028599225566944789699837610244303036597903500418969324492211193491995961820301436374328655494471616159466521840869404305531412399100648402464973367742133440807748271933091537963313232535932428902519498728026810115584623113696475741645346902176202003443051600596953586665977289413512605507631468942201923290760113021500863366873388157340485442003738474748888010053476544729017704978794508395416390297497285695926137636590251341523100248824236483259882762378670122161318829630784613704569947526848301969471798726915261100783165177927197345962068919389141727073006539564578837885609471627980112445730852628702181171198794969777194868686575354251932573880224426032138462953748512792818139793960101236022729716257905091246342596136998350248777302590373628104922563757815755546302332854470975463669656908539934537270356318692039571223471724973786500998044660398031865176214097320419642606015595863552641637820816548315189534130057485647531995055167984850028921327160276648152437100692427828925699413683035066222179861861653825619975178695174496400347118394598650881248714009433850587792218776707019635817911475200009567540622712720967917099386960882006323100027097720778926950134967978371320609574110110169188924618623915428730154671201638633836217537683035728627571484745357058097978522907388648952944538710816262800439711318351713452241775710560368902876291579783017170491397865533341245502075212786043650109982320275773338241861918581960688091020057372237601282232002826828408113496375197939684423091004025050156830576614696206625075888824000044983223593289877446148526409203405060112882926553845023865748691695260599901907724796384929084014930714833237177750649687678598564053386206534319407004506983308867000727813626949837125153522199867441157787408206187117220963234393953172808652646692300903038411341407476248575230376350676954405234937020997901996759414616207586822877528783848678265742700770947920495676537729172097422301278937675611471276345293955709534642335060647290090669434972252104364149757946521971908110976944701358576207342489453235618878367359577974343572735331708436188139052040320726811425361603232995269641740863574380810659779611563496308631611762343509594447530279013062974257281534394719896343409227608200108238461603944064684977615504391114130963010239047962782973937080185580196814619140892600516426001548586610214396531107885681013939618393418152837363336875247913481132939737442022377473628073591630559148316917350932912749015118377611769422698617676669905490593546254755822522297335863498574969849243214825785874320589251525094833036636535024011808925755380512684775732482396235595353052076977444581018975007214301553614065643581481556836458638624683130264527658557992019668684070642492352490253054031377749850042543970525107346325726035051731869411104759943002665282389283189925325235008602523035779170605566846965937155754761690230902691761311865006747103920783028410306642937742722422695584536736529396330844702722330271272956881535821927018787610773368439566632015587276838747154529279949005385804294804135679449039947467567095681105239643929978289363227531504614836044034814348280250161925143134241352895681358810657256110475867069583580335513451068123887357576799799101736277593690206487011865900633222717222529084310206345758245662428150912704661845226423106375003619735353380374384785975128630218093143865551260220536222244929499238104214404244101875083030207854188083195948697823722794207805950242857603388215453918115859497249582598086829277964481717463044192474045227120275273100601504295350476770484050692890410237206851614476215350332171601162666095439087197095933345728490630744877964364072631439702545227862851622265572413536291898983143919516147222147118355966285696350829409872636608921680081603528227833336599341019129522088698634232031549058482771137921552071776833319109812837150682223343623786180748252784864012025108802958426370123901362969201888280971304565986607737413714037819639976598378114953738208738240604508093233789319770464696910854485172033349434164649744684424372135276714611217922201931118773189258693798068248186679420916196152372364052154163815597365575074286623758008258631238001928233282850761183214585348087405323639893751466445832925328122179596501550688479618245604079788953651382184792248759617938736757544697944454517491871854304562295546622619458869638079152602570205262001272758663753024627798552819436448204380106745899272933259574818453079100516883464839429333684381895891579670485140254313741026611127677904459279649007382657889732227378113353721745395767603473418757048242530271816039143626080492948141240452444285317329423381321080524075358762129002507053554705761885982625586116729468110038069883562504991920102842894959561558086968946107871398379818475539890139405703390197588458017933187880606879256484088727399474036010300363581269584682906398537119731369742341045617675994578830431004201113112943530224667451124238962955957284079169766147197250225945943740735884364555233948266271825964420213686858370043069452445152940570505049269216266225800401267796973849374022860783564264498913955356489639275108943568484322794963875927960869961395679337882357677702717744592667075933858358569503487452932344897206534314549933075468877106716962283061837443209264865833904392759063214269896384640620282898038526747082633049781807566271383452920048654456176973104480739604656675308460803405140070642883500874008020926994783074149906720195701248605973507525233086517812198209003775545468705547782545776823015708986667747067614043811769475525545133266363843998125031436098123870799596847917603837258224249168415867409808456444427940290208675556001518291349921936080650119810103268320476452884496035585940099435573426578662387502628243775404412620486638662452702698541932371583210026699986641930093531990594895178802759106672657498962462543706762723388202126948324608648938716017845068015985893715054215931494342652953285889201329660132993889667291932593241526746170348992730714022972575328367862455028538328900474869848663924750021497256965063591932037541520391246235775921591266703745141101287386079097211081413044565567354436589038411912697681074618486385907275011987398798681083011154806341371018419060749093452414958295501669888030642546575782439465330661927282894739980221955708591236320742315472131200856509804672439820175355867957297986631908293933666844837725367776462842512643468629604050882694298316781370748607193561488595903396749888624844686834862593366924387094623895837955416977282260197430538999598962657090186109770990733118743946923726309469443032315884423762548587286648540032654557050369658767004776190469292728439928082315219051301656249292490042962596659832044843592441935232576588701700384383973166932104583651954929354716609408006798562231451851989957670212294449245315014341418034490623687644971127721585094054180319485207162718474473354837408395012123662129412301246002033622266675486586167175518086763076467943306213020958308714172054754640182077426569445979200116353171816445563874463375775855921158321816835855880482403579064148269902876432058786901297501530392792033483967365212229030337031253508905907169871516874877657126014358214989080078022841259100695901931284126628512369907559073279847903445698343623739301367305722187580168300384304982694470575016914394166694970132187735893718580463407177035186475083390038390734055916066169204358433976318777506963364152594149655326816664049286988822608008028837219989783844303920929018858768315706479338676169242996250669249355373602860086201430318361789584809171538953637429267067829911813520943760737482706708119109416926153967121088842217947267354466497042070001013031381219559629202496799891007404905782291739039045380563386468892516734485765532685839055411884485072845745773686410565074059493899858486893882549038577935854652375777947042786724064966662555015223774819003084363382199404850072158252552567336145603323383475917814646646741029751441214993878192181298780804125589099062703929042720370797486037481749537824409503862847125038788849508905391789693277810494143310377084759170696841780919379131279631975280382218181200033527708962817207102648926663920371199080851000349418240668502211920686297923955587327723717242613219658865572242202678075981457105699700614588750028439001566672756340570001317225997898030102349714276838803991619969230027085904182704842803909645992570123812524192337749006400753155901064564564252261166403006361686142402090726656498954474014365802683582266508315395829795811571296307145962196116898932999219567174852790796003689593373937980083314498022758931394896322104342782018974633003511178292588391606415983642678082544472364838968626292100075729083630798781378316552556501703382484431485564213941277883291216332109082817426101512682487250346524199558895094425199279437208764967049844590322396646782193438540212799231368816031132655413972680897730792449318424301014519554896805520482059448491479381169923086755664525317250512212118490445889302713124372360297551850492157312157993696894639619423960648786344617451759095164742861057118002438914074323212236098464346227285844915914252371031793244516081166790552074598931345780477534443840485445327195738485022664076193731600345267320716419255838658077504370836726105260094184937763261272341120579356806882432798796571885571595243884010973169907499977422693022362555784718570821092379386467301254076687459620928883674219276905152645772116899154426582592055114158922921575165505645094744282628906296999683058265539352574098615632486601131908162050715428163144060913353325008282158796537854339456764181237703889734070251680977472179814806315504024727904149483693647276825311808989695986189663873937190831983230937205351485035266924622385879277389983409135942398281390544689447303735969035684023501094533400555544709896421937021554349525344132958941687004418469731443762398123278326220587215012103557303200398223634830219484062535684612430109314014419546875559947553426002234350069100521411500733232138764150602233521087669443692804876117675605776595484961779571030975938045939057511072970918093035556709011385403120815888785045010961898919580327186119344987329727600123832772641357597221592017013217013413673707581017836880409961067021884462703204712918730618766969266190725618815237999960427354874303745679493317367448021535981201237710643042758239518693272352756617785659276775124984277392119465258637210651362547418425886960524524603136156938927943661085287414233131796017013163994052735579207990893550915116552611769565091222129592411161668674750854019385783852133995382968810910596247021677120591027228117640380634439726661261898445662757881293806051289552178470668447627793515246326297978447495229086336050688735141263850972408566360037898695637405187500840215890049297628338198454202513983009636222063401368227673785567284737256807651115664967711402395247143878463702574193511159800988570200476961477923518666567927459441990107237514402134078208579234409218731486576640432353951509926732715682518000252578363974261344512117030117563478386636858122875399842235549434627369215198704561476706943055540366847677486936809672823536543153257458872257007766348571135402886475823681851186965159622388366552750397941257340672641042087522801267620475536008637699652666917028139899083673520702296263724387045591407492708677832950869661933586257260413948132536255563996818101774740827301176958038738327955021326779339808471352935246300675531791803225092423073581160771870557784353003460954403544557431190085795746694503123903151806059192453039874250172927679288525411284648523555606277323867595809302329941976213153235947825075222097212152982898349145967260234958146131651397338576586747360907670002219408070731028311301848393672574845293773081384310131629376887197903911021987052492972129284975395852535585925768234264014206921057813429360077398647476878026695887015869806244075907625499961938691242263400659616011975292555867772342049644488529155472716030488346125807855768117424464362135059055449797253536020231525765965768770741082810643593067018981260030019371243504086128350824757445721115699148447663025174787905921469604864912960857302914364040421157723398291352481895503215007978026360862522419496052996769501324246016083330530482194445435306737408108493366198210633474143165656043543661332792093517129843431869908674869658261704711195270381869633950710998630109773608086576863567901900577158434502548018456625100356266996744198900398327895114062804306646382064305822167181486854578360032012076244822375014528458002404764909223406088281052215911667186944108330872153408236281933018181449178776777639870123559675564213777088192639131387683323600100446312724400023495970841723768123502603218648327920502836817732319042408838115895856218625225733534957589180004007992895155973469857887504837552069907966289220507473967500837578959272128561080134699021142461735826367204311811124438305158070429213767254879773592625537846309905196802803179794703789631156220061675157260466019609940001950807927190781891681405402597605588428454113347534857486208365230677683190740004769680657404981264763710214453108206935445029970830913670276981326312228583789680975690824964727237894319001973582908596276564815499757657086698554882601489060447677098277388562290046453528785289163312637778272609069726795924655438911926122471103924844937995956263786543515748672412584861554741833708594718774514013457723598229020584500763303915460081008026572934706523293886849207896152746835518449047545906740176372178615889243046369276203038354063660571423586913567825853302409303086375132195363761855763997932304015921053540494629190605390385954532402325687895168055800060957617025719875470289088425813615614688734544650231174210689923369257271414090242139216372548213177613561090590602671185017144060720175944621085520656723969947701333099955787831354506780936026237528861880312900754160811174844332215673979400111696986047852123558589500495476989998935407418369395335198548988258229573333621455088002263204877805222615587283922309651819659302134795688639645591728499598222078320398147020606770663600518067527165535879197763064203671857834019945992965432201066573164951109931234665010554098156908975386968363962613024640250865457305128538732270535354613366158805571659480726385852110301919730893331947620990329105960946739404733555464564870136234223169596973535857831181221006272759077677948111027181473992058198438145935504439173456601075265690161945179372283598907921170094429421050050642361248542629818646446407387686394243835615824112076042906818790075019602422413830912385333384254918244921790648220860525057326209094216939482562695241311159790415842373990482768862626182944873329685523249322297911858718457366198849190909932248305097311557272717578013291841381411776902319708996756986127106158753140981289658975480541710629609138613690871130290482462451791125583797119254819691100067581267644685233142015407633144105088744790008948439271963522727207369681086914429045508022270977402781572931281221745175380076298103067306432279223912050548503098086162183429324828109758122534981553633780169767420873006468075320722681451593494921694190407448882938212683608482365372662046545600735859103883899633348414234605324161303664411993527659878981590814251513603619272979130601803429845728768831765982900692781862543704511127712994143272420314305495898374859139405386027744276497121242222271362675603875519337149553673329676975288333217476674847167190870667906850534901979699256790370124064577890053588172804618038529810321494611477633831525335728403247683403507828513070030948258645091916868926523225698743668553094460910050191469391344277354521025978367127411552798113802169790278282327082099331416432366315060540359088915947785892087769870388229379639482858230854648441650547170079515030695140368555268681550591546896703920035665772010481319520171727936077763778065217142729970570390865815101370211899577205226665037440873950708865534741288093263389567341594223998622328259572133247059278148346955228399482180559534009827974327291021429721641648097047740515245434591698181606898899552031519409266752998798092470655009083560535994740103099534054484294956073946386416411231094497592496454577808137304683994681258636285327270206251361774596964093212957961619160744471881203882033370269688273474575986098202565990250261714115133280624752632034008791367812571318900378831316196308364918437686152260472732714049771320413949116512773281577808568312379239867332168095968947735969035663343145187855348744813737050367738799692556754365465464737887764035638732428989513107320547754022182539242294938618439216721287189758895021925957140275249483326449233708679325066329772875350817143945755633791506076136785181105940256791178326615309676974420730454738276905676695452891740398023248838844043978254507484213910310937400570822289613805506266469569448006954849816398594828851499115238284899445498948739695695582869889888487967790667912110203193852171676283172604759293803570586184183300546712966958583478122283675903857915098749223696003766444962714976636118696984598347269816645868069254274098913700065177490784580906441276223936774673375572471131841469250830497508260974530437279819028694101734531420690912882721334786570665899208662777759057568543696796773360211925139358382810946753300592149636619130041070304844183294609461528463100728544439509739089236124510262100460464716480447661228478847738309884731132638425102658166609287898413435440978479455620346714815343485374429833534667504603441681132690047914304675932483819580844827824956724494055271729295587929141117789294574269343936263786790182052392882458658598294973665527453361027030327600636966696363533699766824280209925856160754225546593314279928239478039453944134819899836699100752693748154466098377210564166850273087253364064301735137939120523154669686019172350755359702084046116095195358084327861506842511070865465832719313070608867067086519103940790714852512916491355335087626384131743189374767977882316940602161236005423338114526516559237391646423328720184775685541606950721304471565955419320175191415606520742941856246050023528097620128208430039595398115532566034692991094155393029990277364252113574206313515935425202710268014072266198936400341023275298162465210419315651249469933292728453935262015287036267772636735300810980384754574419135600805241260830812960829573041202374835933128850088661993367137042819289030715414067148276623512245299798827904004808720206127639256221804253091546058398333471680075998224137791381139447615802400022722394830330041727215233449870438521517597496054537583107663768353161593321017865614080940204413209167157596838382705278298459330921333633180503350443436417490353615051070643110795863980704394274892932355979850280652667830179377621073728963383713318858244181806081823925002377210924194037456375644229715152712756888862218223167384897558291881979991253281168187590709697075769797558180914372041083993964970815200792681957418063189734513526243993124300456226748086270732572939735776190019791632032811441547813389273387870988179676849464641099556620997954486637980743542448404901436370963089154185317702582347086320090609557478511518441617256504753114270414358136700901737439017315799673229095619228562364279515134171270787383900663367532433017166549112198571711817344916267675265250698100747326386836383136535247398910103506297845362580480891945280693711321051290511311279364201266474848189451426346711057558901387360208157892669136857623613972187465603540503139768086707335726756805602295133284090444861296328459643853588105177026720730154658324738199661481292991732406005811143957255014016190759101041329576112782897008124342536187046873065178408433771706199307512037374672022328071339250950894799313416100864278085893003823481183886857691035165272335061857554996544688413801022549541302242258067414523358486534395274277855122359990282455916779668306714940275541957321480193721411160583298717269713912286345806681464003233133136662455367673176910348594184788773529798289708270247491782176667198407346216137270307068648710421904655029326460680506097298280214745743202848291812958915780372258685940479564119382126693784981002464499497564638732492100650871942864810172865203971506304809046158435632658913709889422166238534317256725212782454322614034334681280418981637617412924183781722518168713618016618038686174178543545488555475868504973779479023385924561914816125382694710333495648319789835089618394593200552987819304826185420705306311556033903783157619769950154671078178151886125407040630124551509444047570274244656938148060675742242843348332171270382167273494121348150446030174538597149111357693610659598591320030499469391601241920571808320207781659898365780925155691709068434336903713328940583101030404967370720346927971284547539154731170837756227043209162046006377682067608876625168742464975807660906500525140926605012430234332371592517002618902171431512330360096655072052761187838314537727381856515690530664612105832633185807512134631306218400014860823659002789751531085370426335373885790528940047336662242261670768233430746798130508105715202983724721611736580281894728412889195212984541102425789619038303571636426067707394722960506191359329100077293576181025058332146944372231174746098835820995921657285582849047594259002964432784670943093695081085566894205196390549119105818676384492798662655653705305563564677095215347340064587157402910484940201284468346155998386843636524999858426613137311273740341194843866805804447725008589258782295805251826507008634605759109292479041965324534172933925442654269825391769272638112392100382417629189537381000614209361635411607915641972486927002693304730281610186575197496789576978209561444692628810436084788454447175026348498381218688766151727503677667542383492195496278457728128186798778123144360859568876917838775077862248221243220428930770767096274485087323043477958359331613532322434299600273881060288842248156392635428846561890849394098110662838549375829294493498596115016311037521557820481361963442416719617325843924162116400101322367140858296856098996073399673956441176715307725933991784162126199673890555388624811556180249479057419528699288369509983582196644595905425315284259978233321807211576156788902831335608788969649811901254367588907331187807144081032054270747625693637053751651380528283241114868543733028625050426845217693116610068541992296216973054703493065024854349657372090396248498307993190527199680029103558310244585928747128263580256603418351010694479070806751301458871445459045652590907178006533753887970480492994380616375085096349064572445111559662816918855416553578969571736086474410835569649014359074725103396246903955697356945011745135990707811924453643347519594836684206660551704473189848220658122242724252697829848114171468020121945103085770969023006311543876417871030781479977232405207602036138929518460408299492458939616628480842175763333487169462555923085152789022194755971996213504195697321931796241280306120298013570732021145107423405248332298085343024251170221892419760107927298869227728234950092172022464730963015109212273811061354826693421970244358652925735807407192139400977990240121371880829341505812878682681142045713223510607865123010752813927945479210120114249859228110722341046300691403101750916455544271860398443631296486536881359805473465071724476121398861814015464368434418187927476145155749590758249436799962444637871869295030122055776840501823760317156659489592716557060308706234996025518640832711340854923621087241372316425453191507091088593873714922702197801278343766114803196688900716359009392387168585681700846092177838543949119740637785483313512873604652674071074175043252342462825585852097625261479462587396177716923670552343367310901178579395096938546364691966921447606144528283294721550729767505702088712021904995196524603666183773320793369686014773203165735117010965543930187827951577580397445483260929486322158576341783464726237953266369170836505327893143825574122870182588502308195881697290270896155176802229651988939768966595814821022622494362542734314900195107333486864943716587196454900624245623203119883191609464300470711893785546814606494200926250276439177157378527775175219752864473281777140743750189069689716066272729485361140674340945897409811010575021625731608844562633890014086123129673431290630120441542422786474355886741834135094932656618320332537551443375399776410538715393541088677180122453966249341261541736594688686627086948054027520098392675345352924222130869354883001582031043206794636523658811034964503136500228802814415528318167455291600709012928968908357117525818827455116288997717560657247066210892995302094237855132375700460984747279274238305908830889245963435707647731912201216934135702187828064814760865245076745310896682555402957757212373413486733573638023967391574176592900064516259443638028636449688939224611232512518193311850377586124060341128691452759050106320045351266014400312907721722092150813488220049609074428552015834518129988965557552766262682342387546397389436398454317964853954644117584984480510782310980297951288516106213225792279133386013092758518516912429378722751788961373803991553952976062739697426143437951840984397217106475348575025734258344798647012609177617408650271503974003171519996648487948117697989329873074502699289768639741652839624060397228451624841011647859834866578098925287889759735222648604320163194426748427077620683773154828669761024176318281968698787730359647612499259610182607039904393852398389723783343597468148238940766066507772317584668088732927857838247324802479712904625717906631563280198243655628853172398604568688074716516706886682889670305550338549188042618419761724577197336228258743852295313230547296378594744621542397158256374155124760339358193244026624079883194602236377166636674148465266205708837645568833415267358287617471267323942040713845218955958002173185959293350632144408984901908492679418325201699966338443865209525009575714289381671748295686432282704007672642220296221980016012625601450992512989447315017114022732401044347689550249903285123586293670577081592030069781955859058862679716262817416594343893634035510577773290984969468475815699758049969384987060708829063860193779532461377309963001312098250692228040025008746741370151446478264549968729728306300989649774971547395206675821446411446167843339292862136301517132556103309513060773190165934643586396051053454437488031965984448939526254297005037903712866492544569336758933739151262217767507002519269852245641786792344528816176185364838877656998040717768194242585089921346149014656485887300617558658819802197009174620584894933398023120961776083008556453589379501935843226330534031826615658590275692539725979536205714513020659296851222740815803463317124213592868518911625102088945260423898230350673942064458564933538997045348664593353026898967025057394151193575353205802976661444025530340691681952735788693994954306200452862172130018521060041119902601258141725447539441767939835348942482446657229193877326662348523488169889536335118188871716752910505606782986970923867655129567153403603995812415543868369057702163680652423286174300789373498699713377139786914500078249408595153787829659426083409846185882578224230882715119379594317789583099210781822851295356132071400860566584524853378854942153744354906045841884547167969937030640315240505515412042367902225209693316890370091996395409788378490831273294350327219491080454727641686291870009434497446699505307031263442257721054951186841333638880758971998306005045439609006896945169081875091174886153406537087527517319738877003968235890234256029972945013646391680073390956831410925713297475669957665654172312597599291675070562653398382465258928096297045603064944571848655080401161731083978196798846768504342160748064215821509790128275281777319976875968732968419682240364414019776879019122235552323889912273886015404548247389436017905726800612450980372038944751973820890293807583564919445138256066426511895622337804350098359561093667865940073259279950624743401287197621357560498300058239604999046820934867234310954212002041374988035599688228059746884497802381221797223007538397114623435822274670006787525592032054572403704128841589185546750427832630201710706311737767535314000318602547338370761422330980967847195083040696002332577861258530065410593854455930329276159752299895832293919695436798749769429057249487427233649149553809817104219083217722941551065738319124699919736289195641938439297959671842941239467426181928261970283701602902386672301164759201810858269272055722670983524116110366709986144689237405200140295322920496856860232532041926100457761805008988945789549742392656915249279488460357759171263786365886059261483709345678222104211513790693803499677069112765807149005643776708312676191913532763509114017749209835344670273226426243659784786248271333010719945637121543423284317864576599463662635100312659752605595439600301811922102668370363295366879444611823945606691007050796844001182503906730871073573323542285855537164081555004839607983237351569017052189680385460099841161875981373749442584305107739962845168352571589138727432869312904503268228482750401747952552469015265737464624407582155036740507015918498948710243670759982631315875355926241693019659983843500516292166951169540654347910243721106754158956448134120749052399678567134329615715239395586411100399604562962432071145570727904660155398238008439330365494205249321288295859499214878119975834450182936635646615491067829732523872114959597226588927794744684421835236491868635603625375881105453720817712382245847298887399960631678483746980737298152877856259411575072387691602776771696739225420456850696592596043338629919566949557304660359756162464351584263386529879259691686115625624889736197344045522887709480132711041791288061827508204924000630184587514824577208106135681728395324904183510791627695415118528014723800082496167857599451391259641819561814583653003393725947934906886348683776632743399153744019966664520938359938097356136462771531080854419060639029319179451335879451500191925105259754037790222657734138706211241453429630376164366498524722154393110771537380788269407238733995268442549202173835098281370250071797157937937410724935083131448149922028218141173309110758661881403957684151978652266906423341448394402869298472441220567928858635942917682728378315931294493628698888227427183541559254301976098708119912014681749568434615102713467044169805007424828357339229218828147372719472165170567115663457917214363639345725111825466603031387137399820427526521346245456709146161525233280339483376484444519570369203395323189913803930858134874264414958389512921777401849241309043660642004922620337035472457110445135679994808436494037535393677353160577397747441189275746414847535466589092198230222607754626780178488799579605623802190368744644987678431151600049849574706107256854561037313019260420513681197279731973404916269532143282156923581956383233467723733920359632425052986154231370508169156003911678952356493147925540305738040219447692204010049008395165538541904836422850842373838461821005518812146002729558689642393843243174473570470185951117854396990625460969357357426339928601450906503437660127444680455112703294718739978469522374672798400534486723407054589493363710040207020206556811504879432520555203745040957785522592277560932261689697138935739328217265053960864500587771560822285628275507336321153994393087285622727978333301578145060506788232622872275591387386113308688098902072180649295233663537762160178688404141310081633057933332197716616410481023696915645323717521152510518831882349476803483479477275926103737259035322264320109059829219864405710608752404851470176303772212156673598746305217874775099574616294095157373745001229930970054925489817374740365057681211766096496236495344805318049961012206214652896552466651689930191412096787785735148575284948742574873759281823896519818107145764172774893814220359140465067499562777870182324862384464904018668117862637218372724399095141842746712176694367003257099253452923016229139981566108899939385630874335653453424539140419285123742251525639526109985568086495822253491525347874364735896508251403582961027865634797869507983321210272610402287808422148053457288681148183876167700285492155159773908494242297861345750962061630268911252859422529870894493256494974623981425625013277830637001547084890475547113399333439429686274632140486705249785026676020625502111396203501867198390771050366454646499830020658452900740430562837901930146381052603587421678953133727528298203334733874777212423671651712166963552377402064418214471477010648547850734351530753333592276315659119512769178040564389517006995684379987022461403293293989857597100008932611778410821454736112731592560672493643612447461283463123848757315014921405768929398405329304093155560790375565349447135892772700966718278535324130001467054588322154539531031086590757078658341025276656719563739406579472353791504147702035950202471036745658366406223042521308378016267875574303125827064341239703969473178469325992611201847177910406495349841248138234874179904850532820924238924061331849811105926034320901246121444454622182963698583879428867903070418280028584843839836909143868057196889319455852978101496483655448973429872210467867858343792854554239793126980462674166866192019159045177572980464303519166035625581215022158039634132158397877184003656859203256344684784919045805037958811003831189010622022582513578077806288188601196206105800969775068465364474378963367584537930466402374617494949061312592572589376621874095611776590006912045211565473135449022859045409943505484527043160867040135209253409909204679782025947876379794087589602785089192593106300395197563136986508121344072662948002615447959917700156730061966883543709909858833097239031714205560067266975598484517910137503272221245742507715423155628455345716770999886619082117742520964940913474478083415875984617616829256281980598777033533938709310501360638313599157459765932468274625937228044864342363021844534619326651634360212642978984165391676427988746299697979405593747413645178730141302367245177896778065822833226368941803076201978755196701715194124408172861381958453332728278665958422421377555442777258996997247472282835978611195305034343751400837685103311166016345671643668311880561464806510108697382464195258256860975529474930414465672354419005825544369737168863519937152938569572511150840077798433809885454928534648153079987300791666311747113166984665593751984312495080454506912801952706063688487802356203130812051543825931173130487757888837832125769652942185129820422488071245159143217600036622348243265566757370787821590995280238865302887249997590892654046234185563091890847969010433647196404145328829843996325299412703688358189603662615599287369287530413902410752510640550421633414702270703677755798250402148910133330519017244002387458720010955181029774214741540215950283851170026515815050141360756433605391085597083812421229305575489856575497525392180169571394108635878493945294532037225896148958980058493773581300915697263311165601259711420446379905072104747783200355700212840499475048222302753089705160810757565289683596788835843362604577637145790007736895256605956711420105790419036822237542776960548401234436051960550124980765482134876413251214337325303639969372796089996044972797784962083465776160694250491158239668966157489206055127821670162392634621487827797106712826630627316519783202879412715379956154066669839448320442884249881290594427188905562916822422291203617516590189022723274789788015701146256644905721848061024131003129333007840540404603623628488121415365380724463259412324740826062746950847521687237320366949934826634012084645172210309777611898608284133823754111086872352395193058743184230651433606734246867223369044832915760284728444132470462759290735605834496551830468570153973887539871925705665417865527389762072351316003893566455998653299348326241975762165507837134314788359430670837794807035553347871906294641976662430972678070018566886775642650526332392022058246218688270560911071744472868328190606948205976440358042435483184656948030842107852039642374149596231464139009281868590515869425377136552446481048065801655942856894100532685649608594184125249184869984661154456060754503701451789673294633386059252769558857714479635399411948125178769627535309771407128002636534366481188742129800003578212351715848739457423075760643776973876117925452063859907725530622284532063208641729439938212716882299951703137378585963894082397353247957270165976588304433060548459288955993725322739185481056551149067237728980015658801558569618198926117052010956730468484168321292100775704517218954789149617115467538952695740946212243410455125217171976178792362306437624911103390335169288079266715473688485489475739843697310883045910414743475117373387495876672293104314334397318995762275538524420741940058979406882305096992597703443317088695472941490163292946335335932419510567128036250863371822162605971289864934405072368075972548539259993364781012179222069337899039230885929325165460080751905260467661258434550688483683830826433581194656294601906036874492926866829861041655161991273674761158267555708201038214934661716260611929179733670252905418394596120660052891194870059784619250063467811834980281840609682260604717852859910481613321148382896726868856579112422162523293157053760309058057363988980523305468617877328738385039578986018185408642312353717814411491047627119744629713836815682040533228000866399224569721175899132201205171753193990107947444047539794499307401670587523977800568898029193447124607162303030797761634649426105310917229570818034282774163538758088724994624814895584117758500803081535905634691947263236813154236192884054067586825055927605245945403389287582003633115810065055927863286848749537679706001468919074284807021111234604821023387254495603798873368212267971651925022201950083670067911809083143896766609282037264240196585508075035003026303099521850071630907537362673141371062957474528068914938600429282273457349548415874842844909783907161972699184344509986568351758615464893243581728019658114684272134739337147388103289405582599414727126602264216308892664935029105926369091824315689988915495972595446208517296387769468251714548448172357872392360253187573895443122105508601189637053569663180014619985827790776586921501623237157803149429270371203497622116528507136295408065901997748193710860214853738720103215670778849197355142740272367222660541767076937220687003017075207296368365323671234473617192722633054062063016451982403792763765705023620311103772551517089456014250643103595230050139471687121310251358934046595451522474538694749424202956468050164236305040509603207779359135818468923566412091367003373949772907129441422845682192483595808252853121157520285059484407267058092543700643433894191000298951359737650889870996336880528271306353118472701213103705358783987299309608502230747826683003289872602259629660495036692107115904480828741933102501808028619620960680701793485394627833206741723432140498058418002053411724623768125988018249101179208558756187965280576513488250339916982078029693391193286302950233079249267721086533205656789204056891290679795572635242274995972170553660166085815980835179118351622541282816184155188612651244475281928111545867544571386222537554833656670550050963817935792201840378399549595792333361681496450035130588294240909564710361277837908607078533929799259708617802272590326891714003647559436553470191522350559180220336110669110667337525304061679611140926342213173194276102935447921441102720130573905454417196259113106086759365786933791782102713772235299277922429475947771069556728982201367622776301764437003830988843477521075210192373253319545294072662717538722071209306459886923148092388876943237323332089141616767380929540296435133521984239216845691306559061196931293433153725911827322147709556363459496805894725024920862443133754367247197472417951493593471939577555014942749109676287740572365874475370649523971437342679144791081775590608651806990445826966815449930896579837215343952763595660113835763280211153400105538358551875987824943125187536356029650456094638136913001080084307709139580560593471283203617919764253857983849170666274547636167337858456384112687756733933668284055525539162028595547030901812531399157239880630978391029716665014304136184225013684541715947332757591322988787816689719577024979996847023768555897615489826871234536727088702426630544398010557716266358900855999439384542501565319914058109665413437486439625273200361806762649026074759696121053359458521421993318354916344915375962387589324055274703666867745316808882682171634479883965611042208674565425382692112910711364387482827336610431284605756209013035415894015592371259167914590781183715863316511209078687518948779546503770281612146505059248818832571433080495503319564016146819677728317207506972966550945962274096233783393520160794431625556273527890488595395044021156208078903066870755449713004897157728213114718603432194845143235177910255400893226242100908202412979835582321115577071293176210588295931356283351542327114155028163437127197560345753999301284951491876569106921282520535009181773968008966869165442137357897291421659924558965348026270657234053581967429619036372593430135395801460353287668756760089302689232935280076635473116986586592253365797321880815826370039385855129388426032323934238086797943290111591267834815444648989315695970335312244387677176762558935322277048963537671074465488729574146623566131958011780395186721145287269476422710701335447117093864997365574072843492780463138296386259329117658112930178854764641976302982620584982529961705609201788523562438812471854263451457184841396916010101276332202661971213850416818140112956698023062810052122742846776921879394624213023318467273911103078660400355026580789830446350665266049775381459826601715408936272758904878375735925147031122532293733426838483024417091904168526064248391662121297178508075085616073144196690579718225368586459942984844382428809656611239872040461341265475299236672380971431134579916904302788817883997363287057947924598533824211990857512756632974638475729262536590058869127885826701088896722727350233939446502486668617421913722008454108406127942493911816126617528450766316457908372790297046235481240295570810529381828078847185437389816315318048970668161612828731902600627441454278465187956101062490960498707920555089581195498413301823644671882619267046463088554605446408220180608153292413487781837568272885133968658636423226444647387954907700309591692250944868605954385344463256447533204295922112135512561261075814786252233536702441334297227676040265016156777605305096957863479460343198765472762197582996267071805631885036240736068374791495558760243830384066205847932270533291876028240255697091110850659884587615601358423441432424456745758896307775815154024931445745663980193911559787925037942308408747949432393225164634883612820549331720222371528900797834208561957161150935841204719723092717179758757783904222118686678758540774672531658877091565104480118654299092488094652968761837861202387324710517427817863316463704027014198781550321384435245040930564625841011821626377492959237766166705992066900409777270570958151709394114091798320777465558718748401713256573187514975794212743735925868036322551690954510492715827600484636240495604785067236904152988744636630063829039285632376314537796409619926891452774973651586154299108666055806814629089258349289745819548514837150745477208804540401694093568706306097145132152633369180999951466562713538069299643096631064246011896436607207577362975344681169709333718227795621046507428868001285819021584806759296502989631026573698169571957753855353610742228632795676522775301572812095861160605926224586211828132494747918538235129983836123821168661822959975233450292107409761058136454096833194592767332562342366827398783772328184577328700654916647840540215734982577151493389619745560686221890890481013257796823438067682706304178393342553064379690731572197208142164964232700695394740025091692945005338816018121397517126556021619932640731879210023750597235556628508726249604252104533335513041164116541308083172522591541368704368791951801314395467044465048950011498541065823626348471062518841700905763346694910864512440130464730093381382782475485892843652461945284946499857889964957421896606592820807614037440200341495205928085727447136521136671088023405537269682886554303800442367710962008698918932603353810031920255924153269011025467892239497525761129904462278761727106428632748152986268957423397323435768724212920253379743500445400126203541089173525860338095554718648531528376804924448953415802446732935673577720165442321401178679555776046999513359746576534338317562516056264447975724916176682625111228399248967140931096127651506548327789953894966073371668924382914304305229086038256162203455270154310765273953911734255791556477564655809361549257762261476549915289055640180867712554551670649903689404526706214453147329594496525928502451736019660934320938404531309877813934509798203386067078155258370483880781259973012182170394723122891826724210150429861799296874077946986893653711846864684058825647286715992117015876356905035361161955481317892877313893384750650434978031646858579425249894353102923300133707118614327984285691229701656672433413443511529254825067472754890350225760311186316506310541846028787829026167907014217640725535614067901225202527137730146132582686843054349331430940069671345063548276554902849363839277271004426060086846598800246276104148333645914678190715941027018747444866026899153727437372750289166261535087772229047586099307102875037296927836136899473531435030131429312591787668951814736427213949236655817379401006193971047361743775302622453950456422627474899689986142483188828741783037290839943025519206731071122320918025930089805739009657378178971926849628536414984348135268323483180916076016147973225315912523749429192793950964161697361535311091109518589391171213528122289708526897623030961924205755364073759151756094107166306993597594087164439703386865692358251545785735812033571857315730775241678599358113129490407093207435355561963620385158318165667490234454984951070139898919730750207115695530917446166806029380802354341339112493630412820516179090620632705250033084026781960042576949843129259348861415877877297399830029034587399350203800874157872396869162333260744837271312380805163384113122981021553280849624981784365720011203123032970064893603937955224831790251063147436797523287489388520558282232977178088350571575992415393765558028323221385928382070412014348311547609099164578663414097803634176808593084032185444184875224474191480797239223439165282201071458599537634146065568462600469273578249594532375535304398783969036905479793199566710291760038423499866975462212799992218141637330587201352391672161850234401850847781309563517842081485501489896096164530733853506111150630984330305624525912290628183083601454882013310259018548898712239874420978413927934812564784474143541060970352125068127119772923861141301408345937625824270668928362700164201970153558680993020959585141046588411725688579346887660479522080756795422884055191211731595790972675363735578442334819465706582824269706026613181661848958808901361275517960461329423168010955354629036536550696024948847398191444438174807375216272488871436400780607784545098593878181656911677822818622303511032681833167493861813628715255592669104761680447408382222996980802268554972950083244546259085805776742642304083643079400977130583223762372361132063252184470715549258288959841061108738244134866134822739424771109962455863791495089454187989708535030179706275084388294245162446429818219319832298679213785298253649695311985165906882048039670634210418265243482188633057188806001045244977919989761709008574323965201421084470192891234181109267860086865559570491211479236844530184958725335592911043200742068811173587931194239827262825087010071849737752605159197432363988907268937944689318811858183534382541521592792730659414925101057469818539748967843913413922804885471470316887092305616313669697505367053185388583675570640337530805346446985968927747937178460315637448625343620207411672759392950853373550192093971631255855119702096014170406885179811884824887635010504091026401284199006002711650625796980480549690850086223876282230039170305353616799474820992708620133971193699417894247271461066938816840828504193943676733615602689445177235733526743336413907332136571281246623458340420749863871268164093053222614843195592378173629078691809883940705824497239560227434244793101282799017217127523364906629696210954916081425050572630693018686719038912191440163159165902720327789238362504695953342616480668373326219616662013552095919946475847718975153642525693765877585958681419899526773852300525477400852040958334845780419719534138028960200696381130702312065227637769672646892126011727013693472142746214114687413932643360158853833729210295119899708817017597735874148324638751703731062880649727801558461072183306177949540304328042914226300029878392869595334746859903522266661809312093003223172576785270411180482372623018241804281214259210582966944657589144081966831819645354468656575494861414184924509452390628730105439698293134173241204558965548748129528167364192880067904060859632143843379762807461846200411233323811932682255492109115956458755031228169584444910393373512237291864123109125187235966752290958302034788672940648234702342062784299172508481211424856281237442845324097075069286211582429901022076393156781783122938907198300407339956082755755401129246662046731465272310204863241098718068698416271881825472100769163850127895180175736807267849442680206473883872182241830023215383496548217656943641963329432464888771399010279476465854496576443581438925993803727428954220157959460401437032816330110433032363758275037221068663166389969745841024135162205980254812832611595532727549632930241198341555175460240036228477046477166135758643132807288926878067218640058417242179816565477014075921837510142279288934974820118656492244540126869357690999476591083319575675438760965764643412488103098383051963624652216277991025734229302776279866074439615707654727298907486188884165711231306934178612038309455382946271746858984374220102267058474767978857922919612043383482420617461451128387785548858907565354430604514678952316233337543606427617128792697901283064840640802701585938684103450284832763498792960481695594382657685662861532353280185970387122359519437365595186804910956592780589719139410349229942924102070806916925881554041706689085149330924285653817702940649065460912727080967731008260788401815790413346488175054938599173277220617516424946501512729337374797039159410423633143508603006369399635345533919225857632246308302245080870380837927440172465980121128617726796223499030644437711838756426378732890627532507287956947327812702138965769297896115631155755292276300840242912812281889081946171754769596649138471457570621510031150794123066974554026689382305339154749763660977134249306398624378141125309134133458103161929227551581177872586845683970634676343944826794986195001521132436960555781689298141337591218970116391117987388583936510978537839704910531686902336352708981332411766774121405045835802586031109709878029188222820914284163791855179767891735942333212621974711188051304228754480907812088234621908897377004286533968787893093242555677061256750027544994348355532639282100685054238688652539102676885147926844293376628564104454235775427688569767210723585966425867109120918623181018785007791165172140500036743510531408219812159570158061699073049136321971473018783961068835620416042995994611928318813874609932589885007084420568002170340466208674138644139984484872473365873395698851355973237374089178997638783647833055406961672225701478421252095317233258084744435632820609045541812980707901299624562280131312789007936035819102985312161869190583964429628608966693419050910068480475335540250966957977699756192290286011961685113323816025822411952126212992446970501798070697887104585120587460366906098135378667736021603617482903293310358895555762674610681521406581046662142893602845130328446038622092548647432311172669971334688496586273990478927626191489859495178562344876951225521834218283323883350169409581422189571936476337483853400247140403794919287079152291913462743634443445159417756822262185680829472572537390392065060747821020987359238145274068714594743767336660985304033712456160871095036871088791553345469414790661077883456247714259596354283188714244831004112770089408635173439589728913316451250441653010852637026981146590252263710693561142432620351573601052791694266178592233282372020909637058991623133762113965363945310936926630025264061853264921854387198171450932578010988240333216355060539861800298972827891146657406232397313358558996617524806254103488711240589152713224544404051646074436009041277181596254998973121715784807539600232036677441990068216142463688593898942714700470632505646760290347368314726420046896563721284406221523411210729539938335874882266783824809619271205339137465803206410603494239454168153632269927203553324818888548084676720025317040416788734066146692867638672993591462558428898926717543586348298778701310646816729165615972839739262190463922638964169952768110125567433602507649701794999362358073306529510215944792938146119021299256530876130524778635443138407772973995144503093400816500107561265330725931596862520748928411527975831377814072931119342776015817982940949513911237769541005374798892503407990731801549686267739283692631522027111457978815057631496307426040750926341241584523409657525656486133554462190692765082908534889740304219789797065192846423704782591284500813247243468476376698415049174899762426394475907833916761692729448909398357230860761727871618318311288656354799644023270645048748329057343536082881877150943299244014258894939808304459833672632095665921069506982317754452088593636892295686338215828946022867762366863448293042723553283131835752213311030961412038928452961990964994726521873995915486932705288090054345825161646849655191797319481867984808288794449886316291611349211652247101605527500040237704404986735476649502389753825019260940366258409149032119356642045635396692893303790120654284634574384828828473165899486507555229620551542203729922011938512429808039597175916442763706817463453631129392406002339339593126068221712604596214728525076321071295618339747442706606107813179138038481271938147479104049633951016349259875855513504956560132151871704928219728477089991375633399230966108931686376149757678111020379094868551469402355803722152178978757833239827414260671394734601079967828054629308489577088335024139770274062374574796908055744790485059433353826690119132238963254105989210643372736502586912964500441501399789814536111009131007327479049630720524078116626320637227197589166668958770259947077933675977454050706225733445868134772759693690306024543815629035238765778933014400643645612052805335411773567124524418509874777135546680514334939705500421591344795480261845031472413748443034844880983624471656313587447480785840776097540328159961450324764594894875965182505306935672838722470681050015052999965389286088031789573750339366029651610559235905134797081309949187796905599223601397211859785441682633429589361617123983110175140614270238474632240094662592949277745061016141878155224243505384972304341573618342515694567679477050790497922828168794455164683130457411385748470478687287062464639780844999897864273436044214506783621061930682068175147435024133688665436870387939325921889429090731744102301427846213686739293043293531295685396165481910238477988928334197720828228763924447349798293409679526243269396136748354493100725666213718163635246912483057337796635668746916723624535360811769461033619717023230645795987159883389694966192889959015123516341445516378675719407451610272921604258262607133797204396624660002032491617756545754854013354793846589636764628463479415648486872104500937999087860645607261616336425535857488389892384042963334056958032570404622324818229147342608789758460215675754355013821383335939313311626144864165350063002520797892143857856998594133880399134650111308570818835999384758020031459882827710464874721565492525629421537535507111457243293219344722949012102182961362986656016661666691313640532265310416045665557521352771953350245528147691953292628461217715824514948390780591788005271847969520248493531120710209959688213405638707274535645218317112981661209064702320227472235760101522450179604554291620256098204293608859915825856727816779256244478720982682001591889448067044869810841191135334737463757038697244184189799010480740816853936731297555428275875236273159698601832514821376437260085430493661740979078777140842603640075659872368200770403152174709343281153831258218258703744064107587941694244339012991164615076924569143175194768265477040587059757691822889086628539632305192065192214767543652792992858681283254092336266692089853547928741936570560235372673321825436384046666227867409490071846945727735535617705397198864705779843479270376367153997902344576377167980285826589917868329398622342554284247592843725164619421102923813960394752151964538663199254655632895025926830273302801621773738025951376439408926968888552289187227715748318329609885532931801340472930843694976763728063532679819783686318255606444646426167136906302955379615156071389730047012258677308067625266073122015422034087194724448148698861577814955834976980870019566601913623855726982928680129101616548666855899229018798120083496831604559480666506021681410461994337958913199744801575750135881520627213480474175480116422332548267958308528981279085496138437990788761802773679800938788614828809780742815385090111292586896415715639037545510453247776500210911203864259457495085800803783981384630722939318339983829548731532465051972495203678929449669543531678867185566486307865061596053208950315814079671630711842171603477488702116677052083445792019027626861330653377743023824529063353086873742545557003714264091122665506236551629598825276412766286856383092851855882909541328627611149537058066915032078850161220050084668658768389850954726381203462684727872846333492947654259713380722822922176224438051978798599728792909007735335434812251094621170247649213831231851310237991030761216207353885354718762197190018416464337103040433434045985918734339284673511888990699154830176497368408995533639654820907203877893862369765714594190100566871821334326685102032471217313824439560470028131070587157553692011968044113425287075630981226179335792324082280029472344815404097244627309704320355825287395897485278848633797728716629209243476395083624118547072832891451238378017382975398498780635771574818601118542717631271985352993623343862827120411815800597096285103569587460735564255849975381402181558268998830295522056060459505500051442841283347327134775959909332473879086543914448422019388344272564955213237119259198430679388960811282432684644122684384765597311552739764491646139069418600594330858548937883078112486947806435663588455560549443316751126526703054565679079640660699643863272772304185180530382389397509577070742409126904912440525339717299058939437817465954354451343161920719401988479896044272843227869061555163816609958600429371247831169116026397152698477056978564754486671989133566652804624106785194331008412681036815207926713700479045134328554288073308129842729823822151600449077081286226311207938554106610612978608315020871903149898728360278550413906846228800565963910790102136983190987655116103732676105866628218680372727688856145940080124755700996969817506071700689791251655842731136795959100711412991980034309828742642283056281054857390037674982978877792008083245607455505330452592848574129133809915116977712402235454194131757287779881093387794232183836089204278245424660586639893050915857809969036261814546843340128880527529578608729586251667298459103278158471894609664924668348517993085367297455886338742594951623187283165623912777065010873569865765976231776754593267374290149263273477646871238512606555993745071585037145290558714022997182706782055739033690198028668382417740141821789739570714156127067627926819207799684889884090577936706738736529463306097928272853391880966602410251993451996116775157143114073145269608452356750650912935376028943284235739751917585659100797027178062637603170249052533634460179140015490168769700449477219019621107071443993090055679593077234213574870290887659035405189571202405241255465128173192237271985751427850859025957322993165643957587515624841815411003504388458009564765736408294659467634286425110055302033616733372905253974847481010698214943315422714720304326074463117060667979527496103750890538616375238136017912789819874566531189972922506665041997006771125901719322914942929514642961164311204680344422351769684010979245067445987623587021665003455125989511427511797179549297152889635618521680214038177298884179214532995577507817461659323159079395355408058568538916183384016872982489794522793661290505372957900382718183357066469691478157691707262431162389915103385256314036576026939752189831737964367273435858610151681483202724211622000611527792966564756697844224023523389790057825621476342287719691043929790632727984182568600968408023227125517116535928155450939328738629463999070156901611716836657856270006177752453841116418605205908761768284493336870566960446999290140530539120424415636110544471929466171896813384710655542186950534661121518425328271481273226401437570579597459618800265723944819467781702383581139695298748571110842654874175398878489488750732219419227479910883656114987535331899639406341438068809008679615188999408811413395692597576393320563758163863970530082714731904743875813049742038013899991514113936750943649063123695609845776065551304196926258709528387949472018313216862199501569931255574345013431658662848139303415226141454126096098823603607942788955690240514416503277394732853477684026488357438415936669592628853612266686370507363634943008285873860683505929695378067560348998934255495728831197686721081617208439519184464986227910928353831205466629547380406411649458639366350896580860652899616065617045820176527336876358859409638616127380896347709476330472897580939944584218893047943390475163016571438111154086853038454026011251347745407931563102114143590599655636758561686445248435796074743001504717546822506045560318803091321831761772061431776552226932303514644245991153315350171450682749506102856821605040933318793341159183718982514773953830120335662874092263947429130400834647632972893637868157773699633508150411596973474173772954262248604426611654279371824275827122988086926656073162436585500371719249421067243465336162096114883512750477104544768964538256348528262432810745016704865787584608850997415710368302280552670176319649176615691975288723853784211065630938088403831933186657568396203619339366829545788361073959501187881125352320954215784393559890572991542098557774690948915911475332129678511623905084611002213484979653257449851227773278328447278457269076854871277462210923186946064458985552536431252904450817179251871399837070364040398773650336099367173659277884442207694641183986823647874642207324461680135348863719634422435838462003784083869495012288573422523538466982943268546509588770905050609018321539134493362858080246318950489887685689801575454150828694672630552321541148969708601470524749847667537423179046791077831363034335123914057188741753601580217670677608327386446869111421665371881968950344856738431961175439381021914693224154193017709243458188614428449060674182438840607625656864298642916372581724410316215237350300619011758778731860546242530988437641459737894666011642109731639533749390930883276287978350631430614475876446095975350512556614670397864308372612580866709708423624915809239689538865478071183819207836933136566859146083585621047826013774135387943300507611835126442758653676167070521684400704570811255849802900312187358486955929584235202912799995432622154497904960619261741372999966881797901956131217997653732542868158801814679503731429529146334325994809546544171903072389367199923778383159815655892926595649830335721634740365660895847706584988301157462493916313328027577755471418888689968600421361744088222566654152982581533792193448257332280673095623876280757283511045591386533434619886261114949155719201056105426901732709201007833940409236455654628490913353978314174338874866615385224528379210116827823566769357780441972024555201971865369269586167620149024153186150913461358315829537768248585715974277520376901362350997329436730831848517787006196849314486136254624487762365666657035650616675234778043790404417569873199672668846827647460818864027641879187151820186813582394217855990641211240294278853990742379531789085953575357001307087627939344618739555743056784864297338140027099042167902829044647383460426807183664543083642800252800832211303970326869342569463316948120005244487596786203550048276323870796901414534296342063654948209002911585199804454146819877948852010851465352664837755301449118568821637484270821737414826826938522086830567895502387176173980028335136234232684023115699594444812851128303133442100840711258354002547614418395413499494980629598467387887335942194331599807751593817253783001820778844054158384743550474683699929434196250391030808214268888844338830580149027369954814749764250650302076952474696618707495167366969827147377029209392475626190473368027689458977846224881540064589238191414700051863363838442569452990684011939603933700984236666551141146191041147383536140929845620618111263718189182305028311494302967375036561158978084243535557262466249010020512049157152639408695171393509702769974687465829942699110876561790780466742309257882405611907186354226916940693624391857980225756058724439247614291716849603526582028752689354441845638428018898349442411266756495630657442645302585901829287625848316739128246513153775902359629150880391259738590982345165321828637052911302876401494378467819885610868416916206653677000012808618078057164890148762522187304892371571256341123154980480467806601647932838968490602072471634242365576878253295962016138927098592235735448039442240995633153941799829881696261648052782605450890030480791015094965186427895121320889244010541763607700171538529490112822647058684245421811399426477404796828780504784208752021178353436510409872578393187808725291588736497278108502780498959877408420714138635923551713548344381444421142966712136653232648630516635298737050078108119171096894923240790065652457532861977990549787127776227142187858216076906001514892982518152824663243717702316975641484955226537452975471097875778085137788988445475320059101278676048803335630749168210921538177247910824480242751194118768283343472108020511245976730175133987836294765051580928501705964923403326273008555220317989080797996086603234250991997215481440411717315012821456102984406053803949167276959342279921504800231236348090478561365991429547288836727459358801618873863858489780408024617529303841677834755767601027112233314938962560862699593226793566311575603267743517052651933906587185270871226419309773834079888060569218024666301431895423117663411471508855333171726186775521778384864866498998434668254818020159197751761522717970729531262051400628015035539650094025021616679064250341847632144616238137617769765389277897826721410265516060123887039433859856354429497130182684739080131255583356784335556470650266266823137506570755367101231034861390961631597555010639379554107168352172838171625434877447310268330062731826394275348755490787488090445109608507271237974018611541795239724871383793212337761964525946033799406687580769859500197594944518248606092241821150915213780361178760933700768866166054390091713787600995517992608130212967644874082159649592099405016073853421882838664231324421639437344473055794098340521215413914420744096755348708792074220647434125621537536396508579838149001145483051430479512650753718402642734840875796134215310171017274950091091000839278983354829291318243552570110695841437926537706889464276738204815532681255965452031615333280638858718043696145420444551963980817494390063596917452177606198018829069739735834116320626949440428753608292303583497463950620506648281320629995750072656121259555241016856298997493219268777576716682198053339761416653393882903594579895226542585186231028666185062400464955953693646724317235919959866038461107704777512600174684164892383329335510825375980141212576520257069552702639787770785794437392692652668947898848705684795028597257913421086818847124077655632747047854064150651198268913278424900362903626730239416141226519909911780829029382223968950065483233814934166691286733515152188228554516774394128066750671878308024001270819347374253026710183764379480955913149558049750777168497697758506427166474980118503488482531811291590162917908326310235662089653258632429801640191182339740807673960794384412229454030713894928202398998636015180416754539066717230242628683750439466975702518493093912188116096108422861769764348886589232846656072379138885241948100780744787844537494966779164777520679393163228456745598604251398442800188434255650178130455113169661145241686092346825215990122663010552838042221157121610355225386349679318150382664431868762260398490377166071325505389834595161001095290324748927332983545985143525741053186455853945256274936562979138645938661128996641986289548345212403571699694783975920507664195605464256818537684668813387127211154339284539005373866491676368354053066019571322630665692649868888590340489979218078699952936083512820365319012401824626841605961635350616957079750265447619260115952184658625336678602620467731891671300508148580058240880647651473468848144369424365697384669027773632512430439068965735538909272276958964064452217167002115888931457831948154453032381390174154962519847699929860933721041239613781784202652654478198111451272045193138441046930976058783321389055882317227092400410168515523076433278841210348461585713983447619576567769323063755564403604179291980172542435151848688951634424446724103338815547719586329870827886416207023410614689995489109896841026078120314296179947962477090082202668269589563850265861844784755814354788162650790823803531034110282191074964573233237706000764529848206545584993623317902212164335561269731560638112565515592620113685455563050782762671686537280157754746752372841974032136900752990331046418976289477681238082882689267143034232753664313944245249029373094275017333164498428885073640079839161436062235027536974580777125700289942527311152064070741313282062240514174786950555471156802605688201680630236383201931069232869857236737308619162989524154226347836415668218987396841850310135313316330425276109137248858380788287905057003287429882619263040612735402209480125977554498305102592997642792590524854352182357864816863971962338126201946509303021163497819581324789898256214023737756470901771965417312278066848173886832591242351299238909400010629518815136347296546332163776434008143070024348058123615569260402478062374167328261954143778249777599955688800761847269354258488520004241166865806697119200076949564155124654070311920021081731178478216505267801473829477732158666336791166172915894014667477937480909113148386525666337328387657015020122153980536225737613602981893034315010563893621974762879998377444271227240305637728379101651294269178972207544861436165018323410621950155418215627004896671741799593227617845724891547265194695097055615636818400322785111488599124664281680003688779027408425138290383581726012223231250684726308072862276516711469028794180220101026172193207898136449652361356539890745981818431799573125536755939311072014024887212013424709594972114219884699220363892634937746157893368861277610060668202519541111656243557184698017910542289819199653799300118641425341048173244272383120983407030494541483878177936704700338795802193477692178525650882856292858804165333586736185716942464829424264502664263564709745729800054219628701161030117984610959095591816612403663021640423303910265415153378462452067969486432623366976554277009174451959166093531185563251990563836785427145796486423098649168544652331452101754567119801493204239194019135338055062693584685896420543554211833875978519371096838855481727806805610411220294773119170930549752695757220487600529373072005075271896918832811207091848607191527556739432558102392509890643780621908455510060132552500964238146780185665837306904716228387130889868088948892123189844768133410147270781366443044120462652803164113512357328468478355114132297064422311179725996215399155309790348792381588404371082138410351288252902740672686119083452782828281610656695559660722327680082601565379397348123954450987022166118852485972309926173445662550405513690901446169577698978359184417910640673467616737066062412407636631287382936399212129149128858123371153965133981120217063719535349042326744884704082589449916671316309057992511077721739609145189767040457636100081148888276846391817893803460758460519068353924469861863173461236815149440274065584011855687633947642314078285050381745263764573658211070910364169107232310178579655474101117527376149597634953651936133967633452875271711006154396873927286731138056252306253509925928050818214365655448416159637395855419089088480296513012862242631435357052036447644342099373966496345354656784749763484607209901287435311929289545734019120696333873523861161533950115917715528444011970426127900721236963110451673612347543218767141454405319849088514645952111219765524880113890759637263679855394288466283737553622105289238665436003031607269844438644937506288292661245803177663980231059493300970859267550090559913459231486757527731637904511590478566985096287595768726924391287109306217411300776529859932340753557345842562966217089772643364398357013267628023906994759134080423031498261861856955469378096468523595841636155621244571617670420600789806065704924073383481540354451279986902286648100236513451556085104986206448164135128885905726312671648209175981787517479817201615436358060990967305208165573212836136560199648792795040706421254055730836796514285526180675765155472002964976704349073601739577733399648267432508959612397195978604818617976824535980848736621532378249509563935126923698311577854594392707602056336983149791563092947466301734855438166279821755298007244495064464150533955841750608697733456444986325063429844377285749741933138076648739375642210358848257054136704506942671599631191611339358607409203394463190221946656428683822454469257235130194830055807791526613064814952469494769833100735748865758727483885077075972048296117587142527287756464587809362549155750755809005537218102479531809289158863813196641848446786059226515050019906219603974264817813546693609318901880469324894226974951726701493342208604233609732470719717924930406126054844333765196261858901866140287809591339595961839511110080315218320968173990460440925693694396194953615998041402408734592910785724320535776262674085961375533408022805704128572726713099012974614783889549711113042622070668406109107678727903545394705969803041706894322119035624500784927445101066340498708060162750903954170187322229577675836819296374247871461636457518967468082711702146228343288521026677994600139483417049485087712304690015809543952394714352900278833311932550879176137242807615748648475162416963921835474743803220771741245670999377229799455103481976447176981824422300551982667420732052690467794753817548497588546916356809310114896633211307773699103306117534434492595949974971567727167353422804050199801079537363916286279658382358083809796772658331381182672787978742511643774087616438279434981921962622031097876352589532654579832108714139920325163177827555075148235446969721036192665388436703987500907401166439195633403575820826807933852956708941218784163638262677250584940908352507965743985314447755701385240473076173671889861351829165803630117486044282973816961287354960488429582168607707523522909418678442481206264343066868152177608751380431801221196220728882349497662438861124877975910886190139157951424131396854029214173671655233204673156886219092162350903339539360754249659456003127209977989980468488154645573847818305310918421278544799459819329045985888419256934157118577127186382453851925651603848793894078401727253883053905617028480212423632463479452773417309084340930134496167313403485792091489181576194430888435413438874762407398438275705676447864528708149964609223971620835376813708970847481002516555345459264936925018793443666522081187960158694162446963146254554767521095762268582438912440043132674704249629067732984512947654669017185923147154462458921196706603252319080205773233418929878767253871358919476232370386743182039271519421354401602373977410374847282069036810451201621257176535649957789568465337943772399838710782864349940044388665422573889541182419789928949309667787531113511848913217043542063951133747393048799480306919566585583896401883246570365588449339096216191137509655951353045082091888966279212053547261391693747435189638744740459159329057609986849628544667564407011018322298087321449850829503804370982172865151540823455118982545623486246148981683632737782083779690963500036799729897602387737182535668801684128692626810581676214254815638012159539333443220815069305402486611378969541245906629198389942931969869877000706300330931115006567794395323181565293329431108776344458945768764942601747838182361249635836657336488865534606209582579122898740983390033578915309065248266239877127834077686691107559027428951081081032564661248863257322935762696926810585320388380811700223105671794287353679027876332057967814672556650629074047579246061020050630643638327719891398833830042420682192618153436196175549383469415005080233472741402562668907543907475398011950230036746437740480780452780981851254436267725808563813396115377327242942561927422013489282081003904403670076747065621095105683553698152938439224385432481939059957926763054219587522011625015534490264217350473552059927432702208643337897241155916310424944168297061657828377678302069109308254891943149442418968788557099531884103517601523411005531056960723011454743938419788369934242807740773003217248126303361442345505294871156823928129707384164385993304061834973960955145199791705613328061248939160249111174017900758838880147477234024634634982542845252278609137914515731389570844464561376284180365918737066339519062017207254181467586300251988597287966142859783773809288711345118647677260069733411534532048321793680380399256262878836248112074045544752504193746417395444870668641607366164472094038330080254450407007137864374306210394039363351837590092888606302328272146757064803850713907382228380354594690848211023075298676355605885567749704483152989856369388706134761065544488730001428185275748828228042883605816962362759214561465602531226636772881170140522800195330179498231493582565307869088773219230232275773231869645516586499367147982753835094806725093857043834158249128624400615803745503692673618246194746502085285081841584584819943974607678571370993477039563152527165216112897011403433278675595805298446012306648298700166171576745140570668084374771535970013758094238560838819413160311819239207515878341640633048749340795254434897084282592550639189790520365180796919677121999424749405600565393591129042506729083257037553007912482864686579148586478041075503026059650419022354765047634147702626222547642632758698694371966895285577988480461934500545137304085994283628937178064765640904144055134401897109537816440637112218360791321145135183114415387642698523086046154424166742215516933254602223872058792022583152562916119691568037426972958561253546502773975153669803418789852118424311510971475690490299592419742734196246514131516898066219878330428687965914741467657229271031036717235527737124602961915708956049529468510608643628820247789359184944995788792005148076338159111575296135008958984410909323674363505050875817913997972895091511824783903507073712977930270581412337755817711080819183193153031937142367050037741954210602595073590694956762365833701689612257367880772573562774329059624794687535210601420905151738121230579300024546379926424081107632946985806038209470810547255978373157591473799166071803642993730254464401740676493976368663041069717105403214814619797228835083812467299554587099968403987140807576270657685007771778769577949819782678564146389024130489300743479757642315581773194045975460899216644254231768630095375748353744500928808400579547278941522564226497210514352750267355226057765247383868741466288207611390942780683924825931874737192478386471016845457166593828267208904216718302154638233962052213277755340994869050822393962583739814361623509212535780494918094057827085138766655789521098726213340388100319132641912450963693265627526152460251964349043498402256393750491557593184801104898467788544403401474261314519642170712071332609272943617061609797208419878500059417072198235730369454993779396873180558724727987862258002332031754481426025882668363898173786385835341845732799355808913274992451569125380927222388027650678957784008341941524589558775757006090851791099959125953398050625074513488378419598455340195620216283041334759143811244426174762802952919355866982415585910811531844147530677075129302162555123715166417940163944228229502974354509162914622577984880750733844077101832656017605193786828421173627936355774180572068769603077949479969860436868173597817593537627405916421318750183838653865725463584221083315417115471812637536432556218659532619936574415665933970080074023808862322667056192356250514692434696752137864848545040960539659234441990656931838505354854844824192278871170736017504185612622609067952408294038042106759157986210517329366287985153872927894590272039167250324492051287003144397157703225771259510316165849254794051854605952481358757667103973724038499749175969195495673638216481886112173636957772302023320000092501413152553420363396921900382181952905084379535048079328155665896471146403473890460147087302260625376451698843559479194145460495448213031278544977639366409946076212821102137144856088858150699025764979178976906947771364432225021148722944848632550091478022525794947740489024075886686111916969313383269193379051243837349622052308368715875439821813347572623022162297507075379572412547444706301252003332708067504461440950695991000201420424407901768170978547267956308253524102984597741140246198099289868535486178014358178989674255016844461622769840230902554873804678087362923143191285810905186426971771850755190194496111341308935936288464028567061043653981413277638715554489460541644243724194043212183951805847042539021743834629538349024143285337254184248786465256783504681459935177475642071369690257085413566859781488818970403341854394458419818283394738096771008608956962832961660792737863303963531477030290673338637798694344731000718347365766321621920257949737313562415528342720793216605884004390318595924549683738550026543963191606013688179788097046927510857890951625951860447869247176114857783675922324405704981995294589062136608752974273143484796265422314349006941262340947952626645476917614870589195284259999489213956772949049182597780480484312903435515627704115994764080568483371329212762061838287304252971071384524758221237314096601836863466484979785978786055545771351835633436449255653272926996419953237421261015989560501341445448045824618691616557193553778377229042886973432595125389918781055447091491374993998228494928075205136113297712566263639769260626456729144652758056244702474855480768394266917331393968146946414963885266533152233547892859486866764645243737835046733940269570949975982801304705932884893983414204018428590867833384857161458437458616916996155827756256937554284067682759940981963021458101775675896609312015875430328038495402824742540571726855054408931136075891074220895646654850104814866873259326113033514671686589242881547706155825124812896315892866628408200422210607772297044425118287131131722901691981315537365032054246134785365555814023124461471777640814222774671748438740705982520269043028342227888841661977693301587928791863380289482955315784047495694247666193949597316797941628533054149872820514896018094390691249605060953447537876343966150755269091524780343099805604484961975927575270276867339926367156403275295195779719118827642099417705899495501780773197171268014938581703291826359763539214712009564122740180904001505428480652821207752182775690949895164796434471178576764816907371284970583829180257050268036466038483040527655178909657287254169362459279797921875016795345518799206504025897795073843721172843964476366628384767210553201704845449859922846231733036038424446956836766880846652442294433228903027957510066345993033822789807671143958265537540299336011185199278893666863523176034377502005996064192415382115297483092252855973323150243310794352105141138618684651118135457145059779939676778152157466594320127919372095054835451771308419157348693452650955824474417261908568420823438803433004141274031730491858467174888151768254034705949964251455154851658085353032941179728916929889309824431451842255511245551288877720943080563845600958321160028413272816142986643235614913208877625326809297296206923944632999140681471137519073868211208082806891191147372384244744688173932097233801817139200297615218298778738288227702925678662970611461436297283378363690947530011601173091821804793083617129709719502051276216298781635864809956043410495036423055343801322529815108973049349910761301931535051403803908140341222084792651872996318411530196122518415106112606457118977830538153562704967464677647349289996774597555290607689621351331972612632650466492398224629543348316270717669290478906500053129395530080105603393251630599986663312787356645487333533223594550026878814791776467481637783689179195610011863252491872104477643503236960530991433040760893702771970626086813193108601594921720757046511584086800943849109700174592980806853076373179728028636523689514404991018450723493541587842779789839349006263142756244288684573230262627492421547691938292282877449862544428951287907840811376086290623933107940255555702144572679479565573546749333852911064705057205765675042304799809660208419800421792975990907251713165009731270088771435787115032014560052661607918535710920921262823579976144756760914386510376676979113708899900101598248139082984764987733338420825205880972089209174758264155621709130966055669564311947554226077523556312194426869059157684837489841849795057654979985858575606403769978348627788903294739328503207397424095354980509059290665502336531102032887998301028060188287030587730159274310132526117884608863571290393982176282922829958938509342366442878458071010427898390341796424772644290396093113574748803970134575241078385865612099438922314740925398008903191375823773212940548459265874768845514404763999355350874475765707240278987528106532040142978486325843320181320790274678048075118133713301757807520052608808131530144544462412643869663503313867969421254652771511553308479119856219333195494283139610903681606899784036803240348519082459133870571872150900250557589803575709166970634488601043616424580645882924674354928151959895602206776636355327950158035597193706420547494302084553918392770341340186221108313646688477460158328458157019191055289576918980664170760661842025624802036659022949678423094639382451395567041189219012457524339586393439934098487553246966842868790448988655664553601861967157946776565171733436016682148459606203796692255215654568239860109136544978798217981998929424088376161785834507297422243946758820552881590833721538694956975757624839793347527432696830848020276497741055845996691957160084491511918063687685988205048044677820852328155713557631403877467522678220936647452542729387447717355577975098148338605484654163496675733746235677681485541313213188281250642320667684006483541435530306439834863994202246948131363642605229576603950111257164653360472152401209164561400575100872005083972801858250174539044809825391233505234186187468812059388271338249066034983420511201750486837680108153295664211859231008545393029921536853084537726867213882252187101445916761685847413002786669962984585079663312059587590118224746075278877789201143502012884733566587908822278114455099687853225742653964990659170775610785420496490861519640439863579854819613544290563610550826381970474123644910031878531435387052649070120075822330698372429716813239445812181257696462897903223650815645033117944551764628871132551286141284581623448833712965745082449224981578271566132482511114590326074575121431636542646642906752359296777358065656276030864045977693529826903055411105289072927734164101928431503290419804743249031242071874199034108241197426016374279742791158010848139554001473009862128200153185033831568939764438835764614036786249309317614010758255490040709142276269614804315905699305122630485350490787182574551662142886056638174980766143143986012428430147927006897465400471446212343779625489365650385404276231476011455352730224801160798696876892534917462612516698538201423140758983428606962867224456045323134897037842198083230376232890761713860909936540387907690847397381293715455686279059104412595614423880571949846281749319367449937465534108973457444929974583335986898175229349167708595518414526638725659370193798500024629934407433999743065326726976572065063717446254910004528164428617264251642339453511009955673438408384122859113732798686436760594057594633043201286121408326987129068860094174079329314865765589402581969865881829977608350559946372933996290385988525536824430511959312178958831822280823486393268172095169370302659711304253301731199339581441794138315459801211148929246556949413595065526001393623099024822105470399314269818045217073506609549777672862160730374047341452874762229314314633219830745778829167831774029618498554961977998223893753367413037500233029746690293594062142596874748026688072408641385941500362927932196896853012808150125360661907869631049563092478341410849232275632073601224260325972268038991432307279366779504757664168347749717625434753545081302246085241279195878225043686087052442878378760916953808826424217604283902897747440751199862139615004546559137070727068896019109315528175511586053452207154042589677256008253169643660896895608523137037060149397854080772237167957134126139236168716614680579859813787509121050736368829431512860969911597409328518472594404171844423676991214689462321346887509744412576910275729029330470491569654768080429841136737011622330399756555739660455176882468123986205588173537293718513993496209861730308196846041897824263087914346719868441249818308353537314856038014471548283886161038562013721456173839932060245356625613826479768732314950674847364745036005427633467703909381478267745104929944141455665331662379628864393879835707337790407699596403403659054624256898232076998843576808066056947584617247885387790074726346542646129620313486630505853531786089499743786522431254951265070567206091802889332544827010850021176866137809129781416322949277194314630621488630430993607144442200320343827585684349590307196223584945683745394030802174737406722203739322072047383700006648554132848989124167602170512510309538827304632768493598503201260244085258844091689073309780507210753520277848440165447346751390040438824391621732019679392924137012006951133109913717951288141472939954600779833127124073300929052275460524155021047801059779732604746050085968345361603169193814421894364148874253949677632332147879557955600564031900726614503546708913907216225683783500944678341646544164493119004233762440178465045960745769585095351545719126293401549307784197973212392031515286414065033344432713131297906968686570647207632617481318480249194288236319579617079663362539172906485159244320944328750103738041808997647845056402795638788387831461543263802937953569612570777553477333698890465196252426981070392762046563097673348944149327397231331136394917262573838636708686543057243713258288212481958843201483978117677163415608587886573063069276060548223831766430347767667258714058898785001638684039704577197985664037865664198758032081634055131640608549779393240001098110969996644995523793713645664514483319612202954728904290369714029964847762383440619404258253689989805008886015622901389368515758950157779086286778767321414227129908406238776144123209418802559417119020062304939557937029894348156909769386066281823819699777795631619064536479939781123923359513643705783323049129177282913788505933265222821647166617369660224907860372815457300333686739523363519922963621029127069676396972567076251017032022025641907366185123541139843489138392210191113284765456286371542845435104303416594634559524295775575522994075097636577844583988987088042726330313872666547743546029652086789806266634498294036426317418352431366789913245139408717509672707263793960637234134751302136600795238524415976513521845044752208763652874254418842062472400265514860458236130645878787544430951110607012450701384520235133328651783135313483509749318463976893074098830457897731366048125463561477395356238319482941368188914097238632647608737658551083519085655282174444385464374225171133841396707126029383229693281188306937632811967479839751359493640760552874091190511362155977823906160082109275719317977190139139266792624642110249881207746628887868572395314383387474628579568731784770595454599963024043079833784527866588905024789928679396705129458310712988924536863188060604875506599180190565348424871050914362530148840609975863769330625324907007626048563945321813114491676110843606965550229615358579252829049367640278459498353637943497128447512840950073530079044370549225659755357946029857608966635003529846375795152609137302561573240901889574100417647979384415984139106991934641100351446123337350223909239382989721698586377215550574143374351640566619391575630333109296351557418350219259756521188896163587489403445485824314957578801883292230962434211919306129463760253885464517346998705088044511732842740356686037206103921972831507696551307105722267806290537946407994510533871562540357123761095689755581909219035593822545487051906119487677224883750923915880671162972338788456169370280749155465493488068778557969173204478051704136810879142673097864857112713048716908795603984115577830902543165949742751623512687491971328479452449709759023585767422519341085640664313962220840457743035810898893467494905225172115414489547794334333572711886729702759425147349849477922589717880281532227249882702465699007036663932640543222472607939831792485672781799443676854224550654421135873072158176550591446350148369961811629595616478177699588010656821692648687351965768232197187650341561511995767350917903096020869130276475260290742512035321477700478368468943235594420633954298398605832865866737261007567272387026787161678065822922218979895653620106913568089467279680065269302686800582178619358289048717394571208420046210166178390899660496092240409610538315833125655306342334099871885038387432967635708374246435401299914291585774519009788252863436250102371694737638556604527214244375305941314598507897237289785470963956103016527029933002958724136380727677721269344057631276256600259691831002340938310162342220524405292936594614089596655964439355860628261056035395762912749187034577280640080518653276219644878544162329870708522760365156869891149692119085733216266843725598532874180250996438950841896063256411536434218152048169395275059882560983585034134933612743171196867578299211840861257906221277578989803923047907938005192616459708585726919898219942849765745948130595284088832287952618457912217825432623610239249753261055599972430690984347189722145259747130250572008027778857049335856257364149981437203631390648833790841488645559807159779733374272220433937147206555221552761084654964503257131082094048762482958792021615479104924301264079236434159947867712493963025182670186358487302071490317941882757902222114794709359789872905150146472575855859779678056893602823138578861019337975780477350442755330765866081332171917781928927621079445081348317933481521080853465163824490746631735204370171773274120840062955536500948611610962375238710198880738236520334482709673328101697127961102119615131286529999331126628441628297633605064155131734152537206464803998443006856589303253570640839553887406661158073676382145521685298301454282409026824240197437571030444051487226202385127245890867258708280723716068399561258296391932848731553026926391834760441856974557092898258736491344116719928996928391044762859134969008951699334532378844827009093564251461569216243052048634366005595696416101899172963704760353199696956001587008886495953788120692636535087629255850272373950758622915209103911544644430014675446211289019333790598288578972296118206623214596463571219811262533475771892252200180966804520799121718845533991350251599190779884460434890710884086707107960942434075589080027119465106491248741432491440406526869668513616812117736269110637693310168867950437065166243311822648967509339250539812919534206485543336936660778507504735421522094251158764648117938029499423330605848016799608709092804112009398358690096399194435518767851830584614566318125819269702086375288952626003038816597734943274488980677593447991925627835215671450130215913041411527680782195014047496868877007045379026109073872575419590154851093128069434946336002046402436822808580667509118348209799177999386814571602367860179541594533278804158226481287850726451292049212947904459530728648016401819228006806981325980741420665473445541643655644021185766470100055649663896424615259548355308401962187990067567787849289445907148690261780779939572479174512658838469025673138368289235002638424016107521368794973116941777225810152949852502902674083272190208783706813439974689370462418286672182768325387788842645567709985261607027402557762241693436385534896696781901170192626450114261757563140437896252280855657280671305756068554755470968727663514181573218121082075022789652395626734769869174776920624867166696033418035890177947949440342849129109639055879203305818493466854552115405278879722224404975924930404775428792142700264882093956380508991510359278455418152537166457829702573543915353122106735962566684494830706930568579351819628938333091540547868252053275061381792582612926500704928871818865741683962261035555447013396790974085883546126708425179706458092743817899208240364374615301768869341999796393267513476069649968108815162316424367513418533528707736641959897342143638314773868527095256765549984492870531239170253833528425079902318599304686411667301934297174969354924389375391422693447598038822835120281065159553221066860782045974844541006761979706528142954963280522258934844498531795279827954339432314730507591374630567515941973568779504170539556094765462710096396287760380083536534294152551961981205706177216598179223666304607434844660135913345141492621194974826420106685347452903756676602544389883638184514760594322678212386119880368376512580175164477437409070522813822739499015174840104398773670374756359975404598167603957685268958439900607208696417502093721685221998671157815695393520107978336981720571904258961535340292368083797660944657363813943023700205913028243394798433970496588005473780385152387807645185535194754983581609889928039939154213845870694598359684768192215776548145522233829940363175348566369341012082407220714794154207266924577938445405625824533484241873334719815761450582337084134101669194972038053238067234166750556086441537817308701896425331339987271441615000220636714133839018763288781722097704808044553346492770770888622359814125039845121065280318630598774371662360465567607445097347067223991986474727462152830157243110617778368831222094709724296635527138692115950527036754266562812735740698696598013840117987756046014771771374477039720264606135848675168948970072898916510565099638296069938686577666319337847542597893551204958189034972010819293497248578050069404844109623456166496732363877706378574907541105200578047605474307145064998849445140553851219866603940971750854822953598645042611549485579587254961377592955575681718797017032887522034040681283580830052202291511828000052090758748021642641153750667184667585045375381781654750179501375702958368826175575805109868073416734264011398431915449027075194956250090362928836290098647215345929122818985075996447399276113650041577136712360159258693134322221699580544269705765277213580905103908564360813135793584242971516151614034108643968787793278724150362865129528120694651670524931058658513546233567314278248482469075219642911363671314719630972914663015721457581069890335677221910527174502744833288962305591657581891179959113216536144693909028534655714462958460594959707311259888453160464965889334963713826551585618933688345322244894659885934196319154640983230121338382146093792706386822574169304691299446378006485022729432814749825946687515708573330924184652175778812410840010768303520575628799762393847976077574222766249480415286035745323219759152563364585130137564399832720900061708115761814815879674184359949995984112588428076388032562830944560800333183569971692160731358576190135791983921519583415504007650574006987294402657500344141596115609830079428954047020735636876985493836839830375665074575681200206637224797058560030843814307846935442272673578591870234314613377837669902994905599295337475950856067962447639806749627619505408793111177016560308190835246273264915123666447584059496542496723063332296688974153694217431773307017048526532659859045043849749625483226378991375336341264410331511570516635217428328069536118155837918350428787469754907794379329241815092039517015952875852223797485072601816669157401155182459616684099138402211589539838942859509429060036551483944910344551125383052869752172281986689834337938548861276089750500174820097543987791862132620822460682560875892392884204472162800822532184489508645635182742582318387563608375381855798620162019620383663204895077903794941033195769728457596605718166101884064310863542830102440515802076230863912471634370422838866872487410401705121852808556671211990750716162516240216490819698113438169120834405964230348897032753062533915650633500103430818990655866453110201990557736172092640085230575759140049331674552912592819845570992353658429443296244873982700318571913197852203999184709816416388889058256829777499903075100830922441298832285966671058878141550406752051439295914150440400646516572288900784194505060280859712566881962675607795801193695230490682363244475587258030584814622922189337566401723031499028535873115330292158809948439864207577496656545205454850483717519737609415551295498714997423295927283295115704415762582565593338298999910674176894143891974052339733047945774941677129057211456381439805903785736060447239789535993071413148342059674934163337322300011015945239911568989231610445680465436532891188504283175969449411874894510700058171174718304931686167909810769600885109036696650689955667821894898272465295021101561728949243765407358236632960036477275314623737475443880719451191427649711854216409659299451378713282189329861006641530015681993911660212257156209012755827126847966596024303846796350007237894008628330218930971526047603510692411758023465375293199795016591590765154612132067108943325683633513008155471869201107999724454700189079038590083234566492737136382009764933245003868495812792638720027750165970867635596422507796166876708753452508957349450886306805228339967169792879293377623411918594959320651424678445309194397537795076864572732642096697891739048069172245819385856171438771450762566753364597592566846957701988880468064469590941289827456440836483864508324375175275377456914836038749186947033509288823406622126159964128174513455922297385259223432436417342191202005472501171280483704172464855383837346353127196618607931129169272076425775315077244034134930093081358250880188328947449952091030185747250928698828254693123662806507806210456495539774258849800858656618793582667121124680101927387566789401960717287666047171644638331145748020904607365604007449933945315614291084446189718039523566268552698589550452041249631084220630909195133178780266003349529980991709164904301177358684203498706548028867177205454141809040617715101792691315137945842677499182440292251250598734668232085568843055422733199610531908973390745381461014251612326861234767506252761847526829365076374448662703498244370388390433180118298414394154366220606675189576114907048571184184158628223024291458474144057553320957052396108676413923508988545965361878631833595736610168108798005396922145288694800507754863234073753893119611326894119324658457758535296541115243634787752464342643608417107825640158364473834098512934835564945179810671412924279206189191495060189013195518966824080009937881078537792643354351545963589021198564157886062159432860931163942651050217723818661473338376499018032570273246037201461783296794503755079044286212405010717712380525440505526533176898930377815521273223048404367077247555972781429000718943083111132965530576440148316274607744304666116180811025094285357554665508217811522644987733239607787629564034763086661702853702085097966020904740600582994893667222351945765671616842813444885138857482743691122923800917625985703400647933322675910118786509918205408560268737197604275567184099030419760572832722365306614660581328722137741173538275194958197705553948284559843282001544341098954840177221542759336988977370673714665098147033242936529162093468723452043574806325607395769497870269408968682635774156122565577945081812888871234839598848901088877416092046141443922178434795665666953050119757635656099936186786622642520761486835349572356342465720314062876422824124547915149045690210356942879863194211497344499134505262386622967246777292576101576784189433129938463588198115951763577377989990867281768156392060737484545243581309871208273127806688299837741030602308121130773592105270032832507701153220401371669082032991789865861021376448409204298623680255545293102403722649375254772735910509496335088267994393586628601135795193005262923315386851811284711417753953970624828378678400358735078167949589890066920730047395193236856731012551132934929693544356500653346698224723036634910677463629367904840146291214771844852689196788095040442328493099486203334493753051379047072071233901706525838960115633934016793454356453677870731452105704716712818653617218067942952738456328111706054044798502942778590579032358344044939128854977726132170162720213899131782996663248885528265472030004429638462578993408357219944577976416499884221348819784156667511623749216560611271785444013357499459725959052689592093728088692574948525100406648432559263986704412715590626278583208296224947496401144808133085390260348983999763808876106575227734745609566277455721108772394152819225689716187215899933084486301371759686162739270346249029451109145272325674636559888028030457301243075028801324822983311585630600639737837653138538376017936203436946049211430962401505255493965159891295273731869662733383237918765385952348691286550438275604711161340264599300458749371233963208513404627691203117556998649513492479789273566455556986424768893426934688098613987828012529776978815232066067870444308872272023329906103920858446234774328584310772778736688405921307054044289764833559255348402789526288836571286194354981143754639404438241376873061731708581484184246210297782728767093705123123502193168152166713758372751776093974334600430096640451304617883294218382001808854517557244301668447072742257944076431657214389478484431298279296606842733124927594774382558894258643896431110945441954595592196472481628955712106745358698577473220026057381063348250931635084697413436885451007011689373864997845414781504349046657267743357238953756282594551427471075140793810501333485025585328242518281787469434828968158774504060540716738237282691271253589936089771787908159939613391100843471423581927152498614959560139290132780015448560070073203309803941263562203729024912065864579381286755511612566463252174917068521086582929939251164373008463448165830272541252960346206687304559368424347988418659778950689834023335821099852208808275585717246936753008382763932690437815934346418352491089599208343247590008028185831508307314570121837324188667886553773105650809685439053456452803205909631300093944388770800960931408017357008995264792279055765391086407541734644964598847759792320332485368917817192111266396395794121992294975610478818579162164093518042900551713250648510470729443949933704025408497367159222839771815348342572066136092418994760560031872113667288774093503804139618273118093472791907781006748353335183194097015860515862575972508432342104410212678722777223605174572505225460479473041191771917931864667821422275796800509851585428665195658449021131012494373167929456807829318425931409755954451800524858189930500619886078773468241160756221973658869509981202590497579996942851109880002598699436799213385953701135298396034118156964226216682946721254465251265289770462754559436735511206160955827945235019646214935302937151607253706641536256263186349871913996734994234436883674842893902424662384510504678648664175900791568694556806647733527607667785529082365430589071093653999963264447530660097422255658270406403376663990024582573905477903304012752237563365379484616849777202790117278551945405875674108539423557320744261148844854078209111315835585771513895261952833877975607883672156390282150048520224407851355720854847509648215295021432704835887286947397009652644882780519925146218065134066693880356827609288366367739490209017960072163185678721993650314873356285211526564320978954874017286332321686107544787872167008819882165219200901348783139987230161208179549641488959776861517452462550664342090570796032853353466915894827970445616557653918250283046027535555433049134169433090313110940792612363712528691311222311831365414839383790267982478367873087629964214571974959606611875432526697940199723967703063841180875554858442443863620627798428356431460195935511953680893670312759516439756985350282486047158013112781438755750719221600418042778887846337204695219586712053601303110009687055169911989337548933590866472099815024300425408120034392508462607835919242193190974032375328989569130977337168157716470510859371118958879243089342057838717869569531347124738955347214327208614623785666650497097966222582331250206652188935461547313612525965994022094159657050364937777160101668300727246122528277173485787936047983680865664491236085117599270261661140182545577189700563218190344560688866389172219449997572746322757508109594678828443567561437296160039725023450317571591310726378401302555196308143592486656808670701104018589652779306270105288178529903012830588170302657841887370061498816818164389888888937595755226674747515472819768668380097731739481656727787423573094460880136325747607638265004692539514603210529647977212506324770902173003039174261784901307275340611389372318201759645368062874266512309386050417178550502792157922691309095574481882158485100747679623027691762681374961846490437161563841289737826269155279784225434965037464673966707892959453345920524069995939029610758791528780185525147655162853516752562062442605039218833348164428127698881796990921762543606319451728395217280236844200948166721210006123174531977265530843512433560090477767899788706036701210411400818559169996988353792338393414082446840236071135999230143215555538501193974299675524079876596666642774066095729820585686189703045958643162779086922930646506568366749951499207789865121114278473455932943789425648890956888707562185852443364945855444645259771654075740485724916886223326323701538234086308876451085857733635792056626033307138768053245690805231237958075941353483782005593254827170838242349486160652623245561535356072188163328308713288991255016716664063642643373690995228559150232438955323222129841091036475167029077625640488330717476420514575080786486148171408853363747753881263593913881475105686254199004749747294796661298129963101972885842300981104540256264508075085663538105123642820346507372624278304983409470416504436173292499661218563778662198238399169227908810662816586479020071310909397383260805164385813194605706310008057589493417858766025306927299667754007824282129034248800849918155257948713821418027330828342378859284027831504618490912851875283269915915280611387974816358997971525033495974561856155919149320594975854791074682887894830871797031113862100999835818725192581170620899198281416042637013537871406285027493197961815431005989548822019794197966545551091659912011813821421202384506907674829716774743035092934692496744565521376013698080506391336913423271169652961797663370476947178906743935893598066234460307232802652302998831157826079997584594805943059169091441446173402362661134637387148670628511988391248717749277022637886065490452732750751996583440311180585859508374097519488983868919630084867193755162479894173606977240651667856391424793169999690076904168666399361753145473907957729590143536161063118149775149758832382181703587253123759262349973695663701322438566914447646749828837187840798745571333094656150805360357518549297152428452939421227870738894388904941763802124624002754025641271020676231577488477984916876562615036978479986490070603587196710487472278849098252982409565905427982697050332970852709053847085341998748629947343790687900757723388735330964929594121356598128819337821390325520364650398996123395351941061257590678739717212090499687287939425935017831694319443324610721088068805068752164158388119017790065684909766863202323948832381320071028207357038985687010665630537418244064971559895484176181058667084431017209379025665007781944520362496354338993580475034236952970944443525417907143154465889111039239341498912835184996761159850182381303728149673916048942295817471343818558007504262743251227261517918460741663712703619626370109885627688924700073940706019693996480960822580214976486191195263766949004621152178310786891274043004476660489171964968286411237233242316859763190732382214916233289838628382206355226722354341463030229847096118470979868357068637377546592273429121252275431386968404390651401446470812994373687362946042707330683124538169610813288207407493712938430571979695312296949294468760430013919935549282593386963328198010230784729806968925948928970075087004501790108928023673786216022318543971645883473954732154146357787021602356066243222441445617381661687783094034402916694510179732163360320847540873182951566237084632901320519647962175815061328753208078207307065909309660226172252676754664293872689022944263218482256572441915485307893635313543330914007067530891053777569476661079843585410949560482993375633372895620177352209235764856042903342680979853739752576515992178828592759182221482030146844005917711035898307712457203614750417223218278413254126311111041979158466434932242041134957670536649327860229874503190566279416393987831825733762153683174013171409703582636811721041041617193290305815194327643688485725564571274769089524011615267863195726826625957604192026720112438230464621283859754465822338115681585769270706611741615463771791442137362742787168640362796060267314887198973321851714537694187113274465893078118057464641411462887399358489189755424952224174081532466388690734921570314453197576023527662867906193025512566811426628334127950062775335125416514809166456523935824643484462120558175147192385720640837661095204242578181929376467813159642625641717434376220644572360412588195819830794456207342086570778473281374642280826503851039313022069653382722771024259172789039548160620205498579711484438286263757561067155487586725656489349637614005306856597020444736044563242312933235636530793437231442605155823511680854458335561926809319030422044856845956923105192299415643516451454352830925094011401086524987432419241172213482148804604504657148998682725388483800286461548112180976437221303043264335663766786227328366569490931762755677580598478066765221377357519662838373096083214489426774366624085086794466297724748105833410225610446772911116618215782290161944895264113528794774274160045405960436397546055915377502062462441090127039024004535720245317754453723957571758628473999212180915819870000292341711347746849049347953620334603982847805662570495762730972086335203106527830756372391335732619537836462657348840969803284035408512347764558052557274238268986370048514329516104362910964699956726582326098942942061173636954461181527523088137963770093927142042300930436355936135970697494348817968798815416001829846983350527878253994450454824029230890649977778144914915722405374144039456796496977021395128136455523402666759670882724352637338194006461992137639801821317399525363079821416158191997067747803054077363020685724048574636178932398341897758466274744418894587250598663863805896233229499943670790402773045115441679170759507594259792687093491313736866536954500833361517762583101382036059727555263907957812165123049636978024586961170057758485078396644027917095969090793296313608802843352790564363355024921126840308426997972655016904190374121691709797019274391539667921813160185501563465795617408650712952053859135598709821471059930669421248891393519983645424927292808158958565655048975511048917505235936062330766641320613022695144764996522871476690125938078382722095237677216531191167019039164714582801216921408748803717184330229422335827671170404549785792149881971115371217212268218096505485488525631459475029352652762020029749749705884411655516875810128637191152773024901806506746958190057885681887475141397017805848723849937981993837295029602376683243924390873488644108345655330375854428456482607998343124011685887408084806796201222283402778885787013858533276491383718022342123292177840295619256977145887958062541087974290826976479364844218775745661772227498737565643273466346933438247262978024800247614280962852429613208165438470595144406598630918269152604452950948189674178255531349839689788987242968686591095567500536023186721192895511088395531304866105816537475581104986923483178361060805612691012013868155814844498861588799263551754215851277742822995654578882898218244975172258564559509559225737531839814317927836682634578186849487119877470276621839567614691200520815879494507831885413322867179255407763552073791944980060645588451399363553250439551153616281541417319474021061773813352072615552611415313896087521134191484451415178576385877262417324954245313169501605494334312437838182144581685435757532774467072927800253042239476724443732223043048802647243892400431932641735872943189116403529761909501355141071752834396739861316637751815410811012047710419972700250379159291174508037345314315542452549102950059776744523443675736168906835758306963635316139306331616990953263984562199407197869908678599011995414586265458366629246404258461920349857822289958670295348835270745875756208621794891692821819962242800538360185423185333413195078539616807936912326511252802792921092735136568820295515482627286552534220296004303433652551256177243697505063171355342783544218717069842949473811669653917534952750849007032584420761536205936079271134535848629944888173045671490163450850095861196682000063890005678208835252482850777808407316236910467169374275971612235997144951160919963983814241760178826704799933564749987105151328806904674634768911072887731388675515837593662343904218117895844365892810412599812737021572258281675843918937314222992069864115742617494233768670821729741824021763033288052892967424948965899596804357370290519232239798679125909989048926581147375409055801020217130225220878633371793921005709569547691292374212770639583992091777244070415958466992146244709027087598432672286162735799217681219431219295565148470209821146710135169991483136615439127035382874824255056260832773068901405944998477561457946106161859103509144432171401236829911428742087938385812221213614283946966735966853474671061481125557784371437878047687216490086586376026552769679309214205857440570738206311127063000670547566117215276647935648065477082854805128867741066824160375152808522985995310754050497236939433578690634813119816311475615932110384969302569364711437584669955085544730402644125677214162901709161920193070950967874752214114074999864194741040156617990536988826372176368832362516424309918433208329410734206200581811275612000660753439515028494997064583335425010117803160739242165650510911296210528374205429435879098663758914849298675104233032714676541238730751918276370616167774331972146028489681373981123525171753796309151792407758020590895786046528798153147592087263226936905366184378377288377683870197027655745474500756753454325266948720779496418049979682773215872674649770610738012124702379119448383761892865416398636143001592979784919951328757390459187735665947285537433974256114560254042573885722122312015401319052320709916260157807328235475862865817993961573034025787507021568064296995447090642781891726545978488354345588273663751823269429195482600481585844679402630180262170812868361269139448307710386437113294280505857036375451310912016691298835461884142114566665671553526394292951216753294355964853730044448074329680104968221219106628327611478610299273669736063156279652115760236422565966262980141829620634523694361636611154175620573354101072440749089224517169114576068787093075952049746805826956075857204058726202032643175029663235702061267684620915815115309537158613660480544047068925586685189088613834307421586338220791028228424577062777872196333918099611395257930220329349513413880641953566296853906238220132239357357009890230745601033773278135722749257940544739132485054347277530979745801921595784336258667292325403110136675938508429476066953037083065616368501343080196965798327688751970470632661405310522118886626692721678015215084954429407379759769148643514035685552335419052667658086305124342233021362123868911965649889359812579598179187907303609368449976449925018073670351217702376325557465830331318373760502342996931102780827032951833575573056564211429772383461778698435072343164122899786558395472444786323918743732386469428166375372449785863599653349099828708558099148892835043759589509652510732943930536968099640870458262092614659348683793289190948051534782742190505567755969216117685640060569426903084929850755292891461474995044977788167650834481232438253583668569238539606522747785411075504602096705190188105046279636875815303038056288190345669782233011155059878429346160249653485081673870210827658185243780090754294669889807136749132075086106240070709887024704553518350274773275831153172650286003400891897977279711215643653529959079934692750373125378509403040497413430428628079492920727904750992074779449529121697165310287924399563027160844336908325061977986156643184815505038146563495995576412640116732985908686036469269164129151371545454661951166786420328137969292391095489653343517537694052455086072569003430016559553047043625981812063135909744771180194247299298755776049321814588603091304431588941786441858132018043754877343769138691548472193752359956362120857858375237348294863593346645350812601046494279451294127097286773585114755834198984600702333615184729877116854279545214019234824368168949718826243944982342842507213336966179723619243917970791417557605825112012340516289918750513144597512082346834278016425725984062264362209731046402527414649837920886254324302064949108685682214565811401721452797988946636518519304216190975293137575622706985148295976804353346181328415940606224815369418284642177577558251324277803906363532491863202522721389303650923410568337481851057403044243565177877502000668134633646811387751938325498198797549568930881504920031081915129553751625906603233175949059815001461030029714244650072708780701252772169634573262289935213996088305135904903945757592756760198777926377394526032242492250894313740822331873302040625278716183394731256373747078018354358946079543602821853497274650996716568063957739096112726519655049516750396881021642254529150689314655178629447864376288964693111693971138199788844908207520213084162172944149014135788828241732891610168312146875578832154795540672886010121006903414408544163533842436945713515291257698326279563146964036866819161797780935905985753467692017091149987932036187576985867181836214678499728616490733866469538702266535635434150384449881589252034454645900421887836576165622255535133958470081541296642688335273500701182471506712824747034140560837350736956757165745309058353573088507957030660154291573687064190786950853070564585046984004125496178840697524132356059864716432870318246778759154761508994847048405618909592411807951045250336619477549481023077220439988917529272523964751498578266540685116984238520127000066020026472114220707757336402432283392566855286706002386369035376605814625421165076990414279442669716481325200908179269011071778501002686070038704329655160739181450536451163344811157247570600729099017766790912796176711197949176279764853944314237113050444534658808588186300998254155900340497091876976798554296131488402349816954990455855201479438385272146218956057553105419977171811688205201322733398868046178982725500615968404634722201977771436053817714530170193008758363788673281335561867073033864623700931179009040956766730058387949259548060227965627342511312543729899927851142354167668926207986282593886362462196619308020483224848433377542253810778077358481484014545939186480257712011427396258540123202895658966486430489321207729291350401089133408939843909802656229850841675978448192116213374561111683623089516196120391080171726012062505649477469146710527039081660169828160714622976651805180627780147108612300907519395405529449565450967457204284751919370790990331147180369814810382901331323384361642560681878988601960357845708787039687281469064501320511588739531342632883152809853708099519283736320779067599668808840855774951387013472370348695375184019185652076542126129790912462156688108830307636489561449071435388739386582824863408047908764685741640027513348755788352951323096694488328490683192995057818353918548525872173876298526029800909616748387545481116735867456136370348790950869480925299548627231249236006796704534160626648319179127833749411646030967964472090219907801729475810510586961380548575953279440211265089198637065604408809593292701096056015680444284844453593591684214913053735695771248200580037166459844624527648421561473268111774145942986059455476439867111834951569181995365346959988650529727138455557165851330921184607624583941264141994328303803008499610563467135019936707845138380232600952855949863617607547548761500886725749205434615224748372787475834730825874804583236564276617993416551766674830346550787181942634341910168126064130451780066358630994066415652729012322238851294712217538913475123329048119785935864031779443168657709892596643363676371945539679856090351670421012329183650965342285193115846141371634584649607144628128980315442314448620161468072495249988406147160668376324399646274182152994628281686921684537735840564648620740369767576750434602549763759603435569833479169004637091344885058153810504322851242590331761889280517495896086415977341981630520594206532031154717282172721213678159666226983550228092209044462712385623572642896927967239988960708540242906178678892358661884910801301468979245398039634402434934109988272741342141217641074412879269918826543007576655699565474008138182128001741331447210745040225363915804731740629343019458655802385299885703414075697104016752547467476732104799274576680546578920629493742063245622999844033588864747630248117933233386694468222156487674871027413272760713646381571444849619619855345616929037772208865162782643630399136339339245379147715537433725002499144385804545115822692190277547955409044624508261012512084252718462565340201084042912653263541595169774002514962140785234832693705645027480393839291827096762756965015831071840798811963996005017046287009649438893720369098997289359436463531453108050845176567394626618607163106176627514276463773233684106924563696055717793858531361433091741181872506344195501812207282993804748385306582148662532406264901964339086650005127172884688324813267954082698908938104417008166084584593545631130916116309266953107315165728051026796887530848567108106853443936736352634728742100080381313601962436198454474070037064158134032980120955552333358122521355563366626034424764396834078890312361457859268481297119150785905866307714192900524046686225246976137370483061772856882116983394873956348138246666596894346854642743402835437302505681102890899828486696699324862881223725974600501512335912347835546174864831468436879567679440319915790653172907381280182155668808062539086668361291977166618383645835980012197574424760771394341495635100549568779281523483150375504463344651142698772024207321821085291490693628898899229454622290247050052525296073151958570705802414888215148596061184728937657702827349025469352169362780456919508369588789744132013656213450554018297844888725943038615161222493544377522365515486178174676154549570264120219436961263226505439442673908197734354916463737672996611325286892812696235047833962334030686308755135666155588156981783263956137949290020148758761794158498289052985166491715578058692647977833230964933246280977416965151973217263323118607630129118341932183525789936620313336986746261819122627025454576042258655769900142451035592314044445573750830096313526249111211662922753560068239493565073941135427728219491277886174283822860697845711752757870786876949805550138601484278517758820040422454311315931969843086722280899537072055225110367556837086448542089398467030352115526492708651416710769239035196861321894024849860320936216930900828123353958308597289684710719123789466385263711376229946218822334712698348075693487351772638848614461198140241189004767805261633398757719047432158739529908198449192229689457808156709630353187320837336298273445705146452792479565917557889811473072990405934525946832189710572783964976597445989342910357010233917050972418853877648339343229327329062638268761763753898786666965895704684063824282786154111400402391537847141030672312331731552040442914431614338913594508077648810578754625166537053949543726247510379228962056520778489079689687610510389348078455717552626755473398926502317605124366853252294746088894596927306289350006638220405002835385118448596216466753945939401462707789461921971074640253597488753434557642957006041560015174168485468544065214589702252571456089063647007818099110862455714736977870262055816138725761541388421975486181299759800779885834661699098589611070848220166427622564860580847606419219511458093823751674157021706485439806333651922406890017950125296294670350050207344424818559219315335542903363703219180557374293398550286723283934808031083512630414761564051640546862834742860897657675791242299653769644910347250020264504046832225275579234016206008622611460583678161384770883143615750195823509473541559153626374106548633394806263067421167796356317642639848596681403871472656704749945254775728290510286034433663377942967771175697808304098892299825883178570556125648684921294332875514426153564885326758575320250525767045649608266397356158301318094967429287346606622934756698037342787932267722298927149200227237071226380257750991441586307652665779266675852913853344302364343163446346939198212146541621253294724414956746143869225335998612708185521529901255182211701855784542497463067557921977359481779545856107441194463595120060227915717828554997043133082451996049067764011790104522653948987114391248527728778730697659020309850270236128042459667218905613017513638100271393495919484814302233831473820434438523860369397134151998050576338923818815549110785366634409402447123081588513482586776201924774768974389826465432997510434086652103337121917909153186225999766628500704245137487249979644832319739508239896793382572638551272536391886009651569322120416310668738172358756999820687958191845258032315113985324821615543201762957397533653512170390248861942918889771934881479605568372652923988303397985027599474249295144734223568741375794989101310078800826339987134653263542065402822130400727035865165369178804807002094303733024593358922687290329861610393406808614796659318822704978872537985373879091881596251418877588831214823427498370270686555475572646891934008744056807617866483337771385238547740844273509997425591947341561737608778421065755363148093914784601708712447014164818738107340161408525120910876447392098379236682182137090498616003934404551443093111515760874597244567596808876565751050334735224176334491368149524874608783763626602262748236120921908910515583738139308339949417674542148553419301493664712886913230273341728455840771888707598369498884908010645369237810402467575121182010224190797771725236118021785488315923556715772827609663557301747060984312188357559180847598403599106119411166069133244879961517777444237253067934560303133330656284894285070471746072336977627069135237182422194573470975926206504637845400639600142617672826246049105287254326709650527003204646601234850169356306795736653714885747699079117317374539006010821515977649597206111577098644498352528128928720866795329771721495779579714231187873387688175199338851681180076754803281327066159559689447785900097284435513843899085361802964186291556614349110332705356292091788094891324563529028289065577044075549026855496547888767313101930785419373509032230150781087103379117447104597469808684583788137499300665642065848587341345958947702839847260547343220977750704159680929589321341095965245623652324510038018630172952121348944018639644327748354958681862763430805946656415037846092128937633390704668617537290886971886903439142607187222163600246974531327978912981007079870234156124580965657236272546276272990384594629424463423205932880985316619433277377088269914044875195157167305016920424453049118030655612461899783722468529880293826612578519481348977082952062204028681891224611578531404278109828007395983269630554030001530943363382427977220179374321624731647064850308931442272889082672336957918331802443036558022406865720354560475401113117613466907538553975533601483952811231075783372259724363444476324651189063917798090468560430766752504718421207678047567210795364429928315133776659981129540243199278033332374361435341769289586595564361286793655350274504576633559102154742128162207758560268534033140980650324457897026860448949451119473257197828703302449260542989205044395768783145461715531250678288662585751236569434340561649620315311111653726631564586160475072923203684822243081538916984959476541026348835111558116695817984126068983453757677987279491120902399493948546385856639373395267069252595467165860139123624323170931734688742843227541827018778395510921833216644507259882580395731493742261330406920436291075087477030783372427049886945043487078595630051341073131858726622577031070813191765068152339389643091708088922860817872775911042329639445691524159164336497954846847990053624867412111975520644961112099471969934758396501848059921183415686172280408038044902405102819431380454402193483662815503755463079973292470326886127846651334402991793707013798799044477180067658554191201314331156864300479676544068400170290470470989883263819456289935314558085232023072702921596518875447530199641938868290088091704034347948858626016505132151626798988584847783651009684689699460968425861218829334465546874954385420928354685519349657571834332870488022164776922129556263201489238449267883948300589190263569093426554307419251243670997290864108176332340044082981775701636030041910940397156077346258730662186939877314571472791526283396513995708577469238609821377321060434253350085272704823460840451318422943301496002033318261423013753726949234315832514672617890620670136767083671177246737004732959161006768632702939646961225487912530544116732603673039643792327693043609469101865783885524767444018347347877951850674134756509564098863471905034141939746877273584606600843494265525796390916260510981444114206983767070664857365214066860520062216308673562176691557366808916128674104417173528006808092374187013605769750814742033136573581719060554185409012088563642217653540895248303572424337617115178986638061843671816878367383391386017677067287544405058023033014138653410157072746991493688054732480305806742692953161528222065971915101209038361964401466429230959570561286862540730146471105621895767718214049430386153483060962424042020106888576801371190355646332930073316835864497765044923986690460474362143639031967810051843371889119071930785041881173931080862878942781604294315077095084461992525493480599173861423797759976258006309970417040646169801453982819018852566252199283527391498798379431287700403159393353943681879704755110524095945462466109218032527553528803374222253965822357835651698384228745778185183263555318367193250172833486669669234706023650557263726965530479716482020642654575118106963760675311137104152198633682570921578566366064194630898872480204346770976122334764943930593029146930851842826577411850203283288369306280269815869614981723218189983140042726269922897287002431539506362521897278917061371591672101234836694523293517738372991408379496178909398505896125978393891765274676869423806921800639792157254252385200117563996747118245006261476245795570040167273693341596184231515759093583593413882579405707256824932915486078822505085681712218379433138555466816059287905270714503381175565391290361952630089588852749273075399842140658274930428671135972785995909881846365423963144464640475758783059052747632531872531291358688461170661016172503100584545357833055612036357772129584681562796043147748705915989072658628929180912496353989297878947082814807152896273792607778606903629277945045818365025551271265330670269575858637083580258627917121916382485252544006597634419480341860586755150651217654207124050677756837378198793182437179382162855996497688911951927032977038284821295187219001063520311306018873357311505627294190072744934754248095064695526821712843264622927319877992043050696017301327012381218212624143437146267950695509031796162144524001023876505849579843002365474221767174224497132365581346697130884925074991802579240209883786239812506870403486587620968951911910325599166760651483919321108975571604756646855927798433526680832777488964719954632309663508650253168827091816259058419440409934567480146108387256629458226728514447319488453032041794598853107098940133422003288451984343728737146609130658236461384277103738940071657267795819136443490208325195616014820317111008786572679228793780194581365349816167493868623788319143061579879079658938662293775813596253593613321799171314639569523976401720666998796235899160314566773872000864923830754292746815286140697733752914440341881898265595298769064720787697732724597456608999243807305839210944454898170258032460736768535623982062973337632448542030347441065684368220896673967718740030090286995315755260082533172469143712343448694483567664209311786626517088234887020047913240094100208954994079964479990789398710747979722111208780251564281947251929628063912871036183028889539128837346095650879696627002826488130844533787951466941770764657842146156190543225585329205498513229249300235186928348967296048250635593553491297422231470757246012884924735033519824765625431334021641620883902991963816399909109765722760407891880608009458060140054294597505220920587880196921369544972907316388784342532908491755568390164706154552827262139679643882204392746452659665712937477976175602785894764516787074829584180126855864290616320288615651167151083767454421597382843987039632337057128525429735205552232573458513145584514101157699569901231723863252507118469087747389756872848536348245462777321055076965564174570341815106393216453006924219892034658753294697185759938523553941894020697456017316441375355767208255283655406229451315635704978103126354600194027406081483140490003437633737094390022854458978494857516499600740816541446946809540960375120269007654469916251742037779771004389268573984231326392525871962126752905530614745530175238460848803171721825928366233904796202408159902784019590316660469863188454738117690874445618813727620959261193767436440548736558245883941651178460151764336395107674853949092415953206406327387838218318941042561159590054306025264140531618132168019725909245651973476576138282259707271602217889486979712860339759607770942220171176835358917283771059268230852206590951859476672678167068162350637770780432046737863774236377251920987555207394734051729849154572109601596578040351230752710649496400217074718648910922621921179513121059987872175642183759304854196527383100717418062253527295102062925212834856392693695253971364400277762910247177435439192177801249070599316346379060995889239824959815797511938176433296496276645713459865134130002295955957252234459599776286656133454396175624277805554045808829192536253584414218738588614277310604155891633352364309719652039839552020317815708913363836726777726849629675842814821264714361555857744860669944811736257350243979266698452650603125779908696634743668143593574682567799577330624096869849135031437113493531272099782333934015982469835402816777287999127212406260692897105579502146701649311717082405300322849941727670456523487454761544271834369218830658650771997772188828727452963926665463744688135081161397801543089300960846137370326072339867792173547836948536504639636712227934807205425056650351740729863484039508196632368197495695259346140603787399618037406293675813002885429174102009388203683433954450592843755848950231999727536439181021573143436305113032842728805377229637883421748080176894834655080612538901350848458284878923617197054098734925631942000004156778983118237842736331981526552148539344605895346633191272968021002095811581706023594363389456198450462121068878039228025662160002439612036789839782293570442141634494132234995137646521817030053857229034245344411506637129040617481845300296289869187762558383991694424222687927379414133382452341727923589072399536790286844241376374748884907138776584328729466833223111583168623679127316159352152139539977685141531508035456621101294275011528394781726998829688680703810795454224200348220181165570383465570289377781426446169870343810700973961631954464745997514803807878327528523071443532230393616635156722050525732905590495769868995784756121331838670601536445822185665775633884906027881250199898285645036956732969697538146008292584236563870485018025161587134440365915030729535848039536743356992126087853238697691807496798793631029457010019347831055760926764945961600938330028814844218657146036631530002560908029830058449222975240656368771506923504993718631631455919657684501819635844889957465004582929408622598169903887472277048359392096586572854719558246893530493180841408316483370465042755391545378177188661558245204207971771846765715706921036078710063175547224012516012400508857567670988503148315672652462644433453738563240941919794964656166787068935002391475484713140264429073875372081502157632443986592593971681034545469608351848530880818458485154900877413560874599063252555412528893401575575505172233987840451328535217666329457513265071194042215310529039087297794654691387137121347602629285903586688969623537238110862902127673223236705122243821451878133776572180919357415378624110015252124620117605619501214726796749593795910961326083786364741445905914823672209620353602486417108455060813557989394349208394756925018545668343482922564849129972033247430344814063520007022299413160015931583406795970417769931145712220388698607827107614655385229109603160221946396059770286739628818738480004748447793269801221398447317796514489706515757289934119574172419396347046733596678100171519699241765439783903072560152523410463113365233647019045956300127350889015627115409406238388962528037014804235484084343465761352034340583186417483225180380630721632501960974391877968489197092632285033962910410490909830322559299381461567063109853982186774097535594971875153552006259623279962520772153752754454245574447425360626224958808488714349813583281832095748246272104658729155565092213321222414857413880916816219247088528713973556415939902125156265382868796602684321724929288117237995965162086345812475037994118287916167057238223840723779785730593108521578878529382012939248943685299463441577339584106095999502621070969787390848815059746940773002435815906111696435225946107963801958413746414024489042875185718749765019730624040565609345557752916115248106360524435883392184650832830884979982190958503632660694318831087954181793937414817265834932657949175593655571188254571812766684059078287198158252404462303454969424936516846481011214924184173213559098140588832508022979203570990753057430760877936440471280892673609282109640676512105660448314735272704286388767111425227812894907316482255560120579547785083289910751695673860610653860879060264638863530695241949056624108411959039982706201110826764881948153621227186184887125061030338066680873120993476326553781100444773128303700393535627931416544280246756821213436702787710327368860998903888235885084555755483787575437492898928617637797765936311064426260368976460932652349534380312030310256567245399986133427338030367780797693438706376782636319761033969640437272923804527887356416971982043818401104640670982364743636516323648682307988999759356494223311942607734016645941559098702198387793727037958990669621747589099629372207611350747210618328457516485644800730680019462577449199664365576622900194835695077594554430729863296261364376143290393827552889617414469346030358977209238626625219864893234136688756492098244356444885628522497065638720192001924497439474998225880663783669977579604888298668730614958059489232650328463779973681893348192207154902785873885794818181148959913990485884681895948142189258121819106262940833330378541849351975955170105722669406240890778986102851264446176433691114110957743788308437236500503067115166173125259912558110612998368462036572509055565708427166108079403404729229573170669840574009898652995665832009588538206518324094602848290655711841093326450845969859255555972975235746447041046932843190346422489566217540344501999872126129396044854637903062586495273709728464141504791223354045404529343497668498461670595842181894141709000902786157979788045109969704514922243025208204487717119561498405978238175203348883209656894844839603029368263728796150049479463857950899375220731871799682187452893138480168075431526141342764489245841476481152332237747511298784309210769418756477214139664573136975278588542714584275286093229426734796699544932063801214586548693651232417955586973147792082490663743668962142831952304550135105976613623707157748617044364552360774214597262281926585537806280104935320220061550457460586249516009288030344371611162795308483118873677748929285980121636333797397101768478066220559945481934975250749093673292531208807383874338025021367286688445658702039492790420786872308419409356595171056281885341460424331838770641267288790788384572073686561849223535183554360717646966946580332479822269142717714844706908729989493112245708818116957438653154567754651176642548812944104362374391720671901647533421502377098493973270431295636354815158405828596058649914297171494928504107737721143881009064333274805241500603648081214151755245915752712773983771106612518692744680199039684472644983952475505915188967650443981795965171759740996410952472067719957235919082657937934940548487715388372242769439305465499975970629297900871938966514853917064621759672787500184136881540483419179938340945286778943274078542760944707452237263611942023277963620692634543111084658003534256202852719601139352653777997721068477971049220336953905543630304971335093763510420882625190356618254015375916268120436084021409708943394866664640784171000539802707660069082297700678410838968293125452219764330242894210085714116496056610533459679441579838281684373118000657163832501868099827191164627830824764571171432831178496658617845867074154113906845530318660982840753368132510190916730953390142467664845925778293680869451895107315316711995720251412837056985526563300059361189913988464260083299559247237296904220968788402885801121452059414771687976685352753243178243369536266341012571118174105549380859687685748458806260239241776353835872403518122266461001161192013181488885082567889521811820587189849682195899043891415061231929080195303120134070947032941968777877233574945983037573993139068414473529848340993601987828832462490530323895053886845145030790684986703794459577754700331677222193852201354959763708845239739100879215256868759745074908068471207372106011720726492962496336733523267302935359502110833262067455389917060777571279750297974816630146971590917503843233911544795813631432341588653618260950672244642629644787304111521316742417871455449499546879252056847219168942995366401371126158677564662584645595860698030263254468248307493528580630864249620057012743282055749976597044356131411961691864648678671940756040778912400917427814130189734871380977780962420455834461851093621426520433573832584492821824282992210830387221253652790082910991045659238979510464684457870536745050384127436971365057730144517666670686296298388138497724955928923190592251080092348577272059915346584318397877534669870904911100297692383363492613645923195574587444365045622553003539201974221462525023969882355380607443678411211381798772839054917974462729925056706106366496247352274307523724903235811035859137390572971292651394630454262963302252186136018135336079212111443428675101719826734142251887531538127115795320370155747996239528875705480994212382848616283620592793508522571997537710537988983489740430308610913189961883827813386033501970364865634545448797758565470460040594256375267968997557218961783376129597623300859453690051775748724281478309670651526037255696276007144105126670143371103968767813255910516140009073561951154997924521977526901156874801470414369769135858950383294438668971934860214489093167439959038897930802877308798469516508321116306403451835147858707484578125340938392572090808086720824621716009572350167951848994399242298923844530785816794112039288053117121818748706304611735888342304056357415777274061023234315155241947561350541669164960104470330520761439332781977879077811412009569072137667741151617425732541908246294851021864409811763243231387880221541771933213918778500197726448048312497595681582726871200464797376910291866272405634761821126847764330572106727194512058420459239976449114798726622930762713525909375221191622842561285109496999985907862385498799972124662121596576755495465815513035481761045239203468892591828685615860075236052350470844112020087879097354483506452379585808109643996059972830376114457439308610238743226682569105168838905337832261672128989243421827731587078066990962136838426508953868758725047610924940011871021674742340707880024124488673186997208102791662068457078835312182888047993376670422928560437654744757240746626527759924665154190128899954098280569972750605734532481150558056631198796500802753630916149704643236170433456332771193864405800334316871865272019321393817174535103673439344780713158346708630091000596332901112862908912060346227776754363183973759865491905695331056470390754784089677233008451416501703774522628213053631450021655036544876576954022088371851859820870460505495767406024911230897897105873946060782109637692158437373729558487315046693724458096457744133343040045443051037869864076899905046912123235689860044556497655784908947302132116619126529177397039873230169454580725614237662676471786665850914375056109578473894361678420449387180569512969507896455685466608208927891331348121808624876873498416305192207213130112231302637531319356899623426019136479381370108518475645913051518555895210545881239993863657174245605507425028992372782486260155869423327522969704929995572280964890151023517664482764251759438183471057960655569579844502118429576241444213264462429008606619143681713657565016774761351996654006655898782492709029862363525298024288761385322250567513238905647454398223101528417358601809691945864320501466947844562166899585104589715837011021469590828217262906742635091745930624037686758067456759314059660809000586770208965083119373145892005179521970007037949859816120742064138275685642796664223990303501725128862380604574029097498062127044151087533657160796845126866558674796517801878183915418253712936592422795646144513769070767780487308492830843372574871128881727661690555296513392850447569272428436266555089806194326518643565377632561075531235562422366612914990966011152093675923522569010466400209644512167725437996989377470716270288755274139314275256219330104987516111903763346097700816070115690410322471994544680896194496777154719574235989526236680395642517284577327521573918376695503443038261616091797630940864047830877340631818845518450292200650656532364603609682327410864865086743749786354851553804707918812915570031711131328586830436674988789857645631073623879844392228332769793286387142126018292786439452309794655382800285348964460563830976537126572646210450023679039986566114847698309829672002827528975451696244199790899631023317365960736035670935681267195814730980820033099537777829192099575582576652554277207936208993882178927991394274507489070715026503546158535702899992325754984368932589665936845447749161608823053569810363368985484288679629555721992912790557073306113069637644166903676199990333871077575576563384769905834512418498241801614852618126309885310972367364390638412411323818815409530290420540345152271112655027594454128199446150432325112994926770448959143680620289401062008641034773992402858438593234492340851963435281376206723080906962828592379735642642705492884502483009505544501028544347515543604803068775287546847228152426035932705966588143646891384689929683868068037258410441394909808468834870380158616457203106720827418331725977349446755788990591794626245162696996709771459276280496583662964298206912496824955681146090682256891516888427025529012408850669161737554412173621547011811224989961764043059319190620253205140833636949601206516639085223360736548110766258014024049024753586923128144107488090820058315102433305657736262590775053857920064594262508246208951834235099171820792341764991782268606350111127151123962820629744119255091534863250522991553371177121042502946529320864260418238014713251728008458303021245587800101702815419162668779227571266554448343146580864436900870797977532896443287472032754535985748150230267973688185552038290568958446264182173470077916885688254311812212986110843633182166588683751440681763238562633629559342201687560361635363409587820021776064951543076699825277158876238559316317524891584717933933478298813154539166009158859362492684696635552634803223898064911724649415476088030202502749795524631555240737679181871927510584626478271852655106711470440138510132148832815181109314157275287464859080287707875733508972484598250627017712473737513382553760641080624403068398736419281864608727796361137215012059240782079842292868398002348263260262076292344891405280686269790645720980510811189335380315073183145276987187050646077259086389496332184753861974468849393412310618373271826291493757697131946368078285864296574792749158319951930832675067031241275064333595229044262053395862037325954838726217724307014964049459940934191937941703976150623345397371851318883508966750964254348567996393601458769375085813819126260260523360796081048109294190312364549977673697883921358141288441351191472858807559698327089199407500864229781264227187691711175269866672867163303958626942379334965584587034351989489827439640784459890229951114573398198250014058438198527493663184224493320952911173360484532370974096856789571799511258473871699131035585354392268411427022606939650495302852478452417108430522491143108222202027547156250028777243967081752779195623719296400970046224300838317516106291585732978276068994106087697511664801313768869329617152207083945763413517567252158607607413904086252986248931643077282776266412981978558442864608718748646161423109184325061251416388666049432368158893955220141667724268983374378692262993648041025962513580411336635075754423828789437878026603277882407120562651209944072967140595747293778800198929017515265670295525459701486476510673996959588427044584124863753039689865783270714252418361559830884275940441727171818606543574851103675413232811153357540691506252669070229102716421911799348227934894335225058550615039526111525670668869805047228328211744850203932760530128628803065350209321455919127484994605970030990065781401880589085731001324838375150575791059382257584547208722878536801850842386917882082458317451994374106161714632803288204960606097918607859742985433505406957090984966693644803326110103459116936868311561433359439799257061190083767202139528968598991607521239229223147307551311712821701865425168181781658485451555435783491119682139843574363540275981098235408664213255692994003838057913098575313660421838426806855521994366838878277369050807337668151685347744418495871379272986153662029231162100722459920497609739901600731918649118330343149975529837662383131479246553864989945722623469275355057935198442635626402179861184836464799182594372396874403555337188379034788354646063557178962226270392171327998974603536661887563989528821380869045365708516210557777774026227689667467772479903449221094804201887414587411431936904009929177063389664479991507106405169903938569903016616254077517734922052385570191194379387775407493491949975794881681339906560659690097269290452491627423169902935651278450695499813730785522464244879476626777462239882880008914379622125968371383264882443318305706145717734210338687053303819521236660233269112221900571161529306778179843759129519178930663621815396564252435506958336412523330554769423005727933140543343514066804366639317891838673275963653809769357499608446289929506768601770419444967960525040938524373463977447409692960677213059240761436206828948156221101488245047487752721367229684842126526482133768016140646348664522779161502520652167535623882626550608986975898723307685281213151567982542927731119219324637812752855998803483341299882810863066261231461264320042638821675624328431199698359259033266322217362400043304355317280781200036811375995687159082464736801325671845952294522425337624365470212804505766885295166337894242382969010494378838827878144252137141137544660289423204710456326147324163093085660594393606014828302120844374274301832364852034308319078519467064305871029830509611544724946491233302798051229075794637174667562681160627279013279935282717388341140229185446837694877244282436245157459980394967915680434371450183041748448851396612711629360121450165711989768960613788143887863748879553128165472567084474506394756719109509289810586883236035151641752736272284851659112528342561598218949762255276875749657274184894663347070600223696385397587200613536260919980150005809061341750569316628827679057005810226427235038494049762248752249764962745724076620943812349529359629747010299409702643225958747024568664980755202887730657311118976181213977522824114411830438398207501817081234061219764602500880048244392926525500607808070526682041654109018511765555358135188501241180437934319463754184456016691358708554620367949960086826121702712515742049332058813419635969930077629849160939934134988518271566334552329881776792843830066291956732323226604973912409969144627756912958378686649505184067063300817799065454122459269211113131314552425816143438258496246405551121816897245991390500441298437349461702451738519872448976434875517077385273299418048049455319324041806481328996222846145629960872107053685365274956649340068635728741063483487745485036973304111725336072335965517726460279542415472586921933148194656781134449135266195779025360203479410723607962974153047431096730955345151638199354758118043061607187884357454526516828872512759246818478751657161448625914973915206065263970626981992785710373242381571154104819717582551837391217276960214804011533155755199596581667449346918276248576266056945321596693197747690993309839099734389727996178595606736327778522858750149034987808371083664172875050195450439137888328513692378094522479324131189607184452176713339343767787998776918591035337667810200621162463588730560700282336450686288694865075830172056720075888156378050956710232336084769451002527047061841063538943689606038231293421351712956391261943797448609865494998982909854679974206694546819730431066154651963649078489177709626010353701789346126761025966624575660157487634713168097420030294476874064252132819387335876190053469844081090847332872846088893535283838560896123295691997752807290056899123515734416619238685587846481889303037238664185489465779895492653247846030766055157456357481287282036452449489926885760737516930834668152827518637202063002107116746540412500256170638965291856050637826179787919676624994790126407588111751046887207635043139920791477708114890792488756847784294103313361427228480895817334153073291713268305706177859040979693878502962242240214256315297766529750146993845243976971357219566712952390505474130425452694168768721519665349850063302656610092081452363561478214509498214281956972407203543809855281970412236974990947052557440227183241462567347146854326376818375308931078976278254003381331538464550103446840334403252634651049714149510894699310505975857933627561388851865159855879566779838384872548253534943721093777112781080724388190843399383646375876397632542468199362476267084231429919001547390831444928590977244263795229418129408355157597452760860784706196244981310280248743175154811362250567385733021593575124650343490151401855245793606883958088305481495644698317093224323351902134292204177675342628619950647037107674959308282062213311511045738863087208742116117403745156505263142873373247816134957010787504415813735300587648577306901412474186461391925569004475666196384318395337804108080088264768300727583207819438464757341116640059056081406505153402444719611637025870526034375407880399242223504621239787917929997936198780543617306292152830360394956418039494987748084088537949832628694871443933044257506758728531083412697888775990307678671878862043263642266742084919711627746024537131829228874975138810472985530978536782677721886665766923526905643041986081243942221894860459133512721244884684298232969032582263588422483487072193527797355998202496591877080182858179852470025131080798546574111968708471513948818485179207981561891764004879836279190550321752683695814988997445173597335788848434812832225954426046477452567130219271284576973407610428259669165270890539299882087004350922371892886984718259510843652110146775078990375892721487077940563294894636556990187066096312891164513860601085614845667500255985465068100870118537882981293088953098514745797678122364643534086609535518336367185058910343061590680685607264021263633089177338203174037151723742407328607762792649445422691686874457282649110373271239081657308856655072368849337620548559943905304848435898736815963224733224366327190580410441010099343738300339702709176791445917551328716507544859602639663393898034577574312212682514852051730114237368149901008137803870348002262221865872097305420752755094242822071476302755762723226262686104005990223973282359071099737334138892260764879087368882068977194422938907565287667309824073115126654931045165745276671306955539986190910714411792781458624941600101043436799863694594067759806663310412477515861627336382490022008377947529010465099077104128359788686686611414925654090120075457682445951997843915736904592824021208313553746020411238873069370181288437533072856955459385099656283764258904798284962280968366407769205423846856953971797378109704709509750705617970301951692550159590280829692669928803111357402814957905721327373366799807808550997324140421717621133021661738035698540200790265478663321550880824264800439971947460548139826321864453250627290013702986256546926578334200541171153595499098644937347707896062770358025352833310915414983876907068104441824301418394291980175720812184338776075916811860203745730548165927087688979289849054599061604516687928614490138119964588231278514400308191719885379823777749959603376056749452768796242803317163381897297976238627804093506726134918106764329667557754098792565991766816597050469162226376160637534304029844924109708782642866454557509438945693495047642550607498248190172982320104194243191430906372735306560488440000507886228997879614670691524415087354296852461716966470686123134036462167196811222990618786132638354293002289944121686348347988906321060399458279787287541370546650368498302012717750354352300205013308973047604337159983706187909395604991790260821808774074616315235758723234306451119585790197892282276178686869674892103820413442800225553935711675079156808268343136043501998952287248841583339854051371145976356162328987988913300109311604940445851673665560108624534190318342725316091426696026476539638185223660306543453844457260176331351059534511424467471097349026462973994945562618643404640253672658274971318442183995319670602160594987685076795887198200601060190907881733626263765045660927739527633984417186888889542821698853397150246315045342787332089571214547128696662425596963976381197292163729982863991342445834412850634823674686670814441682741024040696610085525614434433020254386260511838294489958377432473645495669369587908876126108286342973925957432254888234860468647256818348906361283239249345869580758740950133520151017659886479163309003281856762438122572091724205701363732967194053180960780142386873573682259613510004556441780233487224812608883737324967021345616120564564898454994486771837890875037373429429762271690347676123619571708155985340220092003254065980708502261933559288398423603788252470230399213540736170464181766649129117132815812181918699767603914367000777439263582619439057902609555070426286738315059768329912085790327322201856846369909524500196606227460379776390863584072628841277962351532470751223084280619872617265390873092317528609953622302898759062647875063504417495313141079886896876069545042306117481229733672944976232528420734754631919798282091606287475345513848309766498389588986187399203111020497765476097746622177088413970177859612793717570257590553871269185168611478039946262198830307894505414690301364660491106252366647929097713812344920558246473951230837796418245747289984710984132367510302486108581066246322055082240230712044918169484260533084719886174926407101188947690326154687017516381072393251213235234609232665610863743080218829915328576904493440010990006093508197155268264205324393995667020476584971694984483734007308076357357772532652958252753767589710250861986090777914280803428051538283129571976106714149747932295416899256221077561047430026723351860939910996414913867477499037793511637627200625547680752124744481831163534316942766918240158206792122836927487224065664902772155507902846984920387802213432553125664903935606533811284516780867977944176268325724243998866703207090771780610778297548743566886250142475668747357526074292308448468872703328043315867567746005403865827573626085651667991159109946285982280263252928009814480293021228413862075330865591115445872671730193798994236234607626992000588035395187669290401312168063254255566918414911269581242600909463178041912370013016014977525170372659466167434997228388276913118779137068932835376138167174811843227557700680140583791823917256619900033474557501520155140781533599741923197634324468950974217173327886569819093046098497315772239457562382309256288408805204804319109136403397051982573197480505122324596830846208029582016601520580302801065009352348039599617200496579561127119561393152911586123934031386246969119951536655003352555951615141573609125443595916730300314232001458660918922153932693809481028325992220885282755295204139381254330031238957068493814262433371822538151637651586356751418069878569479039467582373638923535776376016075389429825431541256714027095731273059612392048661258038087042643314825658385346815820268086529750977931593686989202215610889254142958074431326490976440946924924990154844922038993895342287743255125807873491377310486974998656925954726634614706802590313921373158354183594498973662819212169495012014424467138017829355128548500403603240949185217928317825792458684767015485533859440907192398032455448469204102322675326755416755781132888242829348607696811346835550986684964507809847040230980740090330608113873018979404214249542198536436450249365331846202422107490368055910919347093880699293076047690288789119847936008818948187644201610097190048586183742001381140094098525470439110818634081719067435742220583942573854169166941738395585812808058203513874170539065655380738302094310850299681809480583213373312075136238876180398300860786868380512684207714339573858349295719174108214378037995963871171869536325808064640043986557661461881468933144347032828715734838040758565410663200260117314773806232373929257688541560899479340818398402494145106887331279290344024407322564963244585331857242446587213895159347711955389683741109873155281690115513876314064658345351432793268552711985621596583409846847006405510466320373615951156354612489137550869697537560904302779659243380967738751476471617410840500379818245179109872534380167847096644479341551576024614104807877398002517177278801438883046306505846410768227834120737550382374648622923542408522855239594614336580293615669474577049451516937755906632078472031691401381361671504845267235504238638866654449577177992032962219031500406295116088380389960793984757473300568827273122710505188138075061485251022581147795526461820950516824554734948967459194459965114946592790445514357766426911600449106063853840870079993756451425884395247949972801477695519993376869423424997241689420056489387827076492925263747898708098908201680483533658463961587461316212231586844826151045465604549358658413192799258586031302247883328510267573366932005339708031610129139284767830725812749347165696332065128780536323128391215299010383316047699070104369196213070571411042382135270704503217346664004333270017764565531039438720405073414939765115638465955142909356710799284053180777929107498700165284764171464308730763107274926286574708335685425140107448762902948626670583294542090943494609426934666626758802733128521437904421980279204091096701920016904583866030614576834581830921088183623782390427868834444954650640267931663996700932699743052049234649516726927939060352134838202486532149051934676279856869637611993290103001655155915222334938695286642204819256686929346742643034425545112677624990724635018169713361829547854101013497764175285221214840149661285588483402096587015108424363292020524310767716444369012822248846386942860669449740857106494024693555739585178992480818159105125727173112301943378917067283433664978976319023144017782232180725774835450733845607314180586374904343767549932238699601943911893729392821242263896022773536981876833689614921290838140435376149501475065816334703080633192411192743283707887029353481071601114876360182566087713099694470641843292414131651828439470193208635685884103809061795815660902320606167401934911752726801244540699303355909480173943876834490593750322134829830610559660601389247714660206991371531448031714572573740410765033814023466044056566657063283388061191209926915775820097070094969746403735898793605958075116558649915077689204548035289827462895284345994531852528705133409705838874449005124285676407659967776084332495220740546516482205933866413777433665236910265032465939621178758529444389677449372883255019479613270510255504111980901568407341626286109483032602435010538434109970334209413615748143927825738190786805049002824979715822382936388338931269142979461087324640241665108045419660481368413587828518996106061070521476441938660875910841851559264331707234006460548871604498583933267232584267723181523039262055347272544263726234000300936257645574281585221002214917244802682155753124052056052660089095675760130862643362079900765916475200204094408879428101985257717346137300474676711991904244816014077552041535212455879366728868553359311650263255421260224626106427258211450910037797979701494566936474511358386099177601102655307705583423452682586838293829967617209515884207452825000787897968067086945990010911197159291145748910706479853262041832619485460202005229233602162610854001897871129900815548282648698626058999844609494316904769144599731774585182333322930023347887264651772121214702013347818893884907149625036837752900231690637628529656521717442659478458109853281261253557723112119560708444924070356061911539873959393005527209373540239772780020877261299096890958024474142200392606664667103168236444891542879767365128530559816652112372070441870776832206854889920045736562214294535859350515791386530847016841146885775913562918457706263928501048897344866544152277047151554282871612019979219553367900334682044235060606204411544106154845432223919220543094562086133163309346758709306064249299391218941310758106200442527560603371005733570686730638590241237926079031974400906036111319815496631660099668823591298369766614968109085479044875554742818626863479215677196198861569233546347211234147708351211374372075340967916584014049117153868097762896927732023359035288704673027263595272481494072932286430427858332091265093714009554743285436042239868351655872875564547012116081198597954100738040376978067294472675629014087526739914482941717883981149192920728429791509876419986716462934036243806672028096526806085715749271976606914362000732834603913316032312899250241099887075995320014997730410397313469295320977412803037040873432643012511365109876202748903272791425608082866548578689644471851011710665208426450096049593416623507434120782189182591998950393543021957446935100725784920173983959654906619228878599265123747439392228994387461428249888687565270225310440684076734114075502906650031176924089524695265729544471826289353366513717512802612600909374326409331709698851729037434262612371320920512826903571373161497072250682910638184930481183693068584580868401713315230180277315416327546394382792628284671504557461937912198060377435023495516507124416507918741168183152858423157723464726598094117887843570605940404159890395304113480337747319974349896961561249982325122492736233067662342724569676575018472851499830125223303538271565428631562285629374968059953584662049504485962509136486965612341751514672587826724682309718965714374386486444060026952599488835020012599676212055030283508181152044978176926157798745803738813664841478801980859062645464203081924019361615469649055224626531191196814427568544319706535610669236319184727606501024056161691835437761686673037552789887158582433518378261718022613227030195134153960129170443765539509029460652838095621972561297905075112873823229188838721044937006479929321052166048098765697246712858168543845259458193325135653331572393251814109457195244465757116228164446366524566140109907232991774809266255701921138292567077708700312955523175560132543065105431725667215068349320820087772660470194523529539075193442593848512139498844271915301096415899441586923990472406677134391175037584931213927208575603482026829930374166984980702986740934194573332242706329506596943949411750831594068229560357285530808113293600903993695745564300686476395821802820004586965318121972690199669646094594337340511032313818252394995974465042255699339112204566498823933705482047989416703906000255890178371142530625814082153847837710590256740084129247728417722832764046433157081956283953093165537095731178208461908594798683584134271746965821468272774687664238073267261844764394535525292294266973392187104799517737667489079160549056827034700636376311058281476653797258826341563187367308907072931279298962514619169531538203449348235663922775397504473200890078719423364370143980446337008109223909886635704668113143696034096134087861138035845974790984474596952961498437695893861702134841138783302623401334615242987523610268387453243208362739349772580596173938184847629837034421689235307209219425721876956552763174847784852288732122781881993551436376454862830900735458603674900537035770965786915832135427714877573486581918430598150725415130422675302813858972188953044502984376439808184146528413097967585628406840339794178913402541708158270719448749768514872871868069399970221727751352767771340606140579860857859967597127113416912753504759828793290648578921559964354964376603512708468036072156109603485403935629822759087604696872192397873728841398281509000033202767514622026151270632475593341075069766347890380609082498154521810512508129748731275270814339254612338067477308331943403814149516801305997709943463863386684676171555288326540920228855179748965441941667869719025870715846827802151521853950199671248248433446834416858160574085312027396927479283577602795411439881024115079823230433004385938420743256344139582982265471688632432918458466852207989420596968584275249233911043291544837235672754431245304418967097352992312562112195323593770329886469214317674860617965727209642518301196492114838207148116866179204012264195863741257726054154943011552219166661403154690028778520010265388178861950160969470464006572425780058241200788422447600914265347531960874891558053765603339612804944542712832486414267645206634738185763949836932113997604299676036508609757645353685476440617802520275172554599075651646265819131241594472933621294392358659680200295726451720201459824222042151143298254583498748077168912217344485057045265626787124419637933440286968509241773547982285779447756269307971670551263943003083475498433408513702343142644887711506751067228848461223767301730553167092444768316796173415972933402267661153399979460018346639019449788696339021687020191320913612336320322942840657889954356349402330473312213618148552436579342021061857132819211053109994629846252998931756750622741105656996248285425251268111845282629699407260519751815391738882034479063863485780981671552403973185015801221332741051273887459428803355755001840432574280712769077267653882954819996888712433778150753520450394905871861676960327874157347848483926558166030925240508676680610125068789504122713234943445270947997223812578756842421751078541476155495793097071675825426504922104717588056890834598021134253783007637294099600797344995013222764361528873100417196527580897790204603070326444135873470676463397313470038027681247126887898402095124365303991518842758518630420904555418594638510356460734921424636811024373704530097676355145757810497356515477897993512067899237710726928389633674513878005345760986725793236884298023178150589859588971795014737360315460785300683178235271738530207977233658370114690033296426543852689129816265573187960635164764328668755011848017462591065481511786234406627805402257595632883670017117503000793664659830567779004243720233706598827131046663281886926909828283587158748202773834899181076379817390134628448107798081481370640766189131117868124824811213627266106976641444148133657052364925157470725240221434031073667325326837337270807645972202537647669835199142526824949545024667982538835957271822618764299208396379555079498874942219424893936048094536616914058096470040174703324071395018845249500932020485416193865865652335685355521301109381443986075621692796136034611962012267161055555728431124799070012725204243692953270650552635274771576730624626825277738750885266170562527836495600037854939426379971974346997152355783938386615139713206131810351751846249962234413376424165157808151374948984534030111393564791555132883584061555137887603255914383364692594965008395121008215700174327857617315366202606475237575924567836816957503928883325963642575412456940778545773312050379869308369487481530208388836618400437969191401001760504613970938177507364402212196993860054580937824521342813658464066785317423579016807293673721860264340825678074471250911033884887658051862220134098661785244051632002980763625716572455265274006787125790544586294669275577173539943704097367416965483265383994801530197071782805096250218689693118781367043908224527980945607776955389102179436190242746291398747363552922754389858490279664186011705973074774851369696121236623131387893817579854147711277952223720366665997997590896764722915846962625698570869880560599410543784057262818472689329664638701087959070966003690830648027207801968916708556912563260350153675076276265239153772566515578017480517521428150710821661839851871514748068702123039670569004146208040862174778299839040161948344237562356206445726667264789774186010969795362522388549856595602383402973265713964023926312010224218798987200222264434744240462736056957498023667365261649506116547527973655303299285999689939221611973194810422880554429896431014742832081181246353834939336624598885767495491673786593255402735303228146614097600049382553912906663754325846051199752865028022821105533095973691874762425089604012645113492664824523319128967924486929649548686748851225478756277336969376797028909284557923323347675956333099453870458683074636424284932225051393295711313522299612651923211321141251423029561052625770072846938082221129772201738131695682895418955722947067428344789511943630235076090179107473991595373860131616413473529611765443855700276493070610232336515118458651406662100189099257524945734918881569660944111781356249548367738670195092169609189675625497015386242897853881598891120263539957526977141487908283017710417034653988080402333340060206412142507318602641745305826749214800403526849695211404307131785033134904278780964167140829387830036625926384130185699741553177820845471476951866688616442338003578057659667107703766226551853919236712504485210084824585303780464157184312424579789862649562893812879685523855224670982051675088686976104419586019691807104310963954145406579621678426771439929936613851167097263602600930845444666998006153725947570766237355228285606218219466912218260044925243538375513449859479165837471963965421211020982226674850910564888130275934818986708721571934654051068998835230374712461786323266368011576245492316081835549651039638291768691714621019024226613108785128085354971710550627970524933597659307962511623824556242725317432869056486458827981257563752923580357962447596285568479085924756179374069036389927597960432564175569451850156459424925292854393011922866364862137724792300987478786954707733072839276216288867502694689961616158627344202752113988968824602128229462498618439680642327136896439793597054469550629626977776305962474177389092377243006362737619253408814130948778352365011133882872321654551607770979943049585951086474594647179024113826637149367948820344343063793967051924357054979546257031587705844649748533553355356156243504758034880403311311526690535342918776424744224312099478945491040059698407397876385954255126518653522623404008909987033344101549924875809375286121276795331127362531096662089009429305500495050027870417441545468038581365123965107219554311371164519250947254377923883164803400685836132662584392792112714910487912424345040525604574699509948169741541421539214076754868301224460290313548469298484548863046660320002008917700758782624047610380457079617128729722911093251060110930014960201445474086797214023144420211074621738754386604141149795635630752595275281661846576517509919400819459583453208728662748816595335749646999922354419037153272276192706940320759168191845437284423825762937055637940927754075987062786915730974775120782511585423343212928978120503750020116466147840521571073870568559775933008047885878721726075817451229342312092635119164981177986529847507820787307376834161808240027827737106571787141521355808006915595875134603882647484144864334056457495870072559480041399687544695758183871967477577233167773449889959187925601325892557711426646117591401288313091898282956439001200204572778565100612423326439692951295423757130319834622807774117644433665785395274286316578079724419861297647761748463457707291428080307704704160431769099411748518115407391024686802730893814448705060268133879083185487756640569557678188941453382466189639316840661993792935429571446311758130082736432256087380279976868120568303672375462406468129916443526301647920434134904551182357230446054231670984149391982307733446144737542768719204813513848361994153587190205538186855277386954636672699913648690828962041877276096238426692201898887345345963366479565393524741726373137947704353569720226843103291244362116342612941661023342873894429683032489607593088441155847828774506394205265794931396548551116919557432958776562042424349122494486952309658231198333306569714911495645630417317704860583676294648774406718624944884071726379637973332680332934566559885914258799344156997541882806755927512659551981772615841956830589215975315042570255958978289095274619819259337701024312393314157693876661568924400642675341664520026163181083298361582114623626057705335663490761463224720857679685745637230526074079645510638610634854403106795803817905549971484750558809000569055487559751763672319677880386513664123083042552424822032879633353889842514671726678034290410969909194023537316245972955891685969428570772943780909198407165124246373037859804633655242321132701095376232750671380325842764758663921133427483903851745459160368594914905776617615583003955622133952858970158734404514162867025677899715735906782632125252691825771375305960472060721864017168830475155489741920731171449989839035962785845007524499036192300539559148455331001771798126845422274811420563593245821541774582585021982224124203854133958811556414906500733731461490267403509047190680381845450243073493739194684401569083598749643422586946429571368763520235178831369603647800670947200565515648650569059080740143194738546405496548056298110729297284335927991806322984819873653789456910279621853918498923565913143024826096329066832967049264999722302223528989653148409847998786427016974699216057482986946550381846911351051930048344838151927406200454774177600525555265083859434936001681436292253518945122758832208136927666369680964195219088590327754674654768650916805362973939692566728339839519292408397410260279676552386245558203119238332002099924136567560365659366366341709612820389860135086057505942433356393412562081019150140835093949353923732071418286175347157303326388160833451352173222394182167402654753774846399491339602524274060073701695134055956511759480218008008890569362178746714167292771805375968406468925827636959422823629375513642822781142429667636342570988428007326746098552143151283172987980984328183880829520378029308077771864618742410376530584346400373586891364033997987030866681999185507342531541358728551325432468460337460142131269377552392584246475500317417687059955063203259738452400806437161588373565941463992688115211809982178810625595699269320264732951945129281523437444394068926779354261356445138313886085436016418673808167167173795202852169626458352740024895619062988584468556589852775151863558343757236626545962205214223019550235601174931912636326654876579442613224957357744900066068186976764066871792028865285130153154645777701620846154993583460163872205392342744157800274677190840985265149589168486285630230188187715622408852351420768269346852891446286522683720059163965000451774621071749790059744708345215903632819540070283321923618795811944106635655760441752393679468779197635338375352267168050363276731350937629398477174733328875695493940783662038974336111410206155973817318136092370908369502485122705593647494774006002236747090383068931371823361622920703847699547109250342691159844696038756634495393592762049728944200742060943008078208291339839012533762540768905324831253186113570959379440100624956794374555523507119857849033124929194977249539077221662943798165847807174040745726796363665366012285790040732155017879096421343485152923540426778816773756501108233653414989822127992067471638626725846272931057409307512035920690682502375504239857569622607103439811783954396098086438437090089043754133635026026223752101837386159741542950461111704838316603812724890495799508275203965756885623718547527618360532018562414926395631652915185086483492069877665214083082186816704833091886443910949417847544597148207473399802733962354730077194119383714312748406393200495165746093712787979901973142704017908260586095514226153390499853747534344385222910860202988671091321819817181412266628809289506676550484035775914577630659556641191157689530815221907714257553751310751833381453664886789296584220022221007683298255906471463018476856937863483118248319784400863482986733428590383049844190984174998297434605678030245754873584469084604066419750268445988288908487826978298114171508091584248194028058920729608306331344124384844520746945456727913824573337738554531265851433788439749840995597299716400290235426708013731013634731302135224880480768940121979085425147727487855369317576730600489321073020408039211150887521952480283073505254661790659478693573666320030315639197817687085098592885847083171735795336751828916431365222184412686583568273059604090340770799856053509597209882653108045671577563312581732685521523583577955918658273159632526963419866185057628158587040747994725343720588647656754754845908246333542926475498612641953813513754883430235123252254773516194687079869984103266247271767679652984469655511563911085757143685749182981096739503330384135875885863589912107017821938259195808221984046155295016311024003698424095804496804663963869573987882341463048894886488058780534697261618433337435368429693456459797645294604787080559115136409892811569274635184791338877104694456642443413365457074437847413942830178712766492335173752021651622497304047143559668900271921536038993488664636563740390406089111773152447577742920153961032534602303830925906637658835011500317790625322505214864942931911729020924239635775353528547205362598054028630671526338151940647196405098043513064729009938315263458583468927101346122219540688449543918752419098330168090555614570322501387239109177737668653656702348448058069467782024862010258586187344719314292119189548428734946360621612329357112095275469650074089592591986363651901236220689526099831391649719404400970247279868383662234968065759769494242503136419902827709563929891809715739796746510052126434406336539026193170078509475759607156853661289449881457310515761269987826378065292888804516202366033270761697843406654831325352068229457180193096749271345039118846888766113533216243531173823497867949717394563670313794994403330936893301570684072366286153583932125493047365747086353532973846292172266197249820951364721221168470514017239623313182885899836568533735440029387711355735001417374258359469190543586655013156186252343548862528836501743259138110532743645540850892919161239010048586094676536483947078314795434524942902937985058565051710465860073178579997232515476973753576539504174806271446303548674093762418938446281839556773264197165225066629393500678991442438768564684417358974748507395798664180123092263741550425243452935514278638258866241155401270221497727190571014282085617125706474169352211423360259512334468829055783862027683035987783435466237401377400117618072547412972452209738341089631636128428345070068902666203803723708806665048699237796705105762153925439734831145029859585563537767071999085394056488582047857448410097698630329150198594862459608558030322498815568957408317613522939980793774780064888583120799315148119523656688974863988823751244140751124057141831531017596897484156135826580900723692182657135271253631587964353763687328207014540451183054003517757250569533510893269996983955397060797545267994828599047978449580870893445303188300082079015058851027803787106706551918558510125509396138786510482818522570208556588844179446217415934074646228099784642551932874087030512530291941962540204435624477452003734976006038329529768222774265707102302231386696144697444250388902490840512358254857225825839492672084678595424224223038279373033120369906756017958004620941448158269294470757926194499768910793547377381342349658652934180469615587994429318635152676684561362177908172104781949676960360291745756974769166539576476225367876279414453695873018223029815092445882413670646412913583220891076752346033910755342916151918202707692847669067284164433819714374003113436105331105016479122618404383690614120048363259308303727430352815723087643736630628969961247860531075550930513080645048538183554130591399205251967685702489574164608340008359879499600806801222352573510573989991815202724025003386142481926333026868060978219666810563979294642481608567521316494490446293466310049389538916940827973999433070584380377320150984232546912421856978953048034472593999204136415017910021995586792779450412677379524184853221776523369951962437010662735253511982012781009733968562099871360283799941438364155588952958226050135827136344778476046188248467048769522297931552238482260019580735386550757300162993816373585495683615818568583745884757248931589842041235992622800288839298677794181707084049519780740618476432484998155746020291481620704889186227098745439642366385494247480305284284764078454721139113333503142159799929337110822271419896136550634724217835900079417862116981116042763389820317322186938471912456866051149193404622981609337843805829068427555416476991039727946402652729651754386011645690671104503038177318023957249255131008762202291100694349404246800691727423857844217772779789491759680941217545888030409180053812556322348377439532610323023456621636050390976819709602557616035461021035591404404004556826615462632285749532816909901535304570980581274583865964800189585046333090301318223012582418958760133467916563333446011665193368665172478884082185210216646511225871477825451026248501264050505236126979391204278597089987151705837661690603031352078609290552261148854595590715090662680000790596489685227596302664685634448098425979843801340804025777910975718101944540714656160246965655139558815128977262152502924299907631914766066157263594290930760860556612338486281078260205585770153709275462033755252834231612104781812987178329493158608834631203624861351355963676057222089031779521445705099784102770057424955726578033198849482069900733241359700013944851459277332694923479192267824410565304823698248885721703631929438630910264619559722086274693733501162157031519431037260645004672593314499769893469921294975567645886033829049279089183664896820364088631240643718099488264215807716402385810667984818709884066380515364751991649254259261511365036783434842351912359168402371268103681034510530027518690699294456021883804259840023975533090186538362361163416063866316980984301504825919279955577737681672744122901340231613710371806437446985435399513709826976790756986339780230544357349095744542626122481742802989547639929273062210001552939793122755548560857418453020424195147009457712481922341443598564220625505228621332644971179152288720206953160646100931834010160604296391468069745676338141585906045477096510986607402414830312225907260923738705741817631982022702308233951420349845948509088118437346189814667404838628494744426047026287392909816478259588044114184745369350005883586722743847807562164895488931637483528000968798924761430538572261706917995823641999939465140936252396482236473672809201631660410163633051891234904942980648390728805647622661502120927557476489804775373890431176336563074889928306321587063077239241089547125440590782469992731051137924721866926919429247528473656315641337139241370625761041159377570741654206589901351201718202018686201475553753057792413907879038663681245594713368948788163177379903690312347149482381320513645073065299569021979129326277779661235340462643488793000368285815344028238205656268608810074233906058910718258196735657465158614854168920123721713273747306532923718078123683048302174050007501125799982536228352733611184108785560964785200682275120824146960147885374714436016050027572862708031577272880593301292565690760391200620662574542754745659237736654153626633545015114704293424174194307583836625920281523738966027592501199056111438132158292778631884279423177086246218412958505779389671845711653407575896964636943994673178649432649481721562302757759977176292974020577222745630026877248983021281833919009092447138621065579789371988695129486329423774910963209934150194792175088379718779570366534914632217193972206929997240709888746623319517400858407834527037079867082272486093879941587861624976596687405962452414876549208616987889137907069607756096571200585987628101239414910215777420662433195394961710090934649386872038085413073405274072549897735375799636640373364196871881735900222475940026950930027698137500939456935432738102881036355771921424519880239403096168800682556414967184217965533473948524222064128108486876080232271323047471334008960666666936282190011124780334920998835392421550542624563801492290267804954107554384568020773738113819520620066128095631817341401478531562395649535119817399336817415377370111367848147783317424335116845464231081837050667534247586371471987049932840756445721743224995487676710217897874210344169323176415643823201590553422603810893923360658433376322929667507087935200180880400538508487732155052209022900130093282762689980693622186372562539489567254728321572896266205038922771644316058076986537914935687855339708707923062947605535812091649191393734796231504316780491476638332586382741493324104875471243143004766456483893591537921120928282383041104056093223069704465230180152613836381062220901299056307627159005986135816258723321987634780155010688031250523954575855620506972046815456269450491459485231921319194414329564688854043902018786127915771165614775447823690274974716420546309011161244079712158331820525109825094040020349465739243386077612560126088426007702294473407956476754909796435171161799861942029191753985634446172594545749437491468039779492114577463503305212658026264667762750284421560599931860227289201231627767940378772673784088830774363572120445774986468559813456247012159530157869714905595187589526789172806052008344320438852760359693770939045733026170210315644355047661214044881543735818858963002058157927289149157871602519651743086274027012338439812446196940334961235805720345544676682773033919099799841296709537063831138703691509147447135118827700469932661271751937381550799893733763566504324053813574803762091145961345670986699012618944894423370291101538074892575823077978487339644861583349721611200572060460280665314638554666918953610468903539111962105469086274133239010928327306721317660577308711992885030516874036588266124459110776757944321648723798141431505149135793612477576147268257378838698252134714973512010796036601247171191531100278661551914094845773794044006729571182058930191222628710735076598944876895894713061183587004037746123773803639681657684902817957036201801748386917195586591387200821348338968522485364788727401958007001616358439234561004678290410601269571894091983361961706769595326783470099890600771924825109092159105035008773147602644637717380787237369693546205430432501993920551256188193831099233862773875344482170508402323113668711767821058045947760558177023919117949958008833933778586213307065922506012023259478782651895671097558723407631923418683785021429544974762497218060900708961959537768449186150708121184554203374910248038054819328496253675082381757683491594554897983530214623806299529286572261655431455369456579225609518926395576765856969928522288330390126875669591797662516331037762290263030797170125611106250724440929024019911783270695561681829069056852623547212238219105459727192490460732497966025601781579098433507163166306651212664431429059481185985894997140936386025920523554928521235726968481500916801379303002236730219165183174782631466424110734435217681003789545118498272138793813560055113839235410807006176653921318170878038676528432699534680489948754913886747283024640832259101101843783823063493358116491642657812329786650086284302460696745449140993014843801047684561260184916500193291970785742201692637150259989307017466406674751677881790883034807729064151247889841790460286823047973101114218518128888553776974314708065350476451915021756972645221736806200858679998939283483465943197021440469799222487147902278052889726118854744663406394553120216115807964098875252357614720062352650546505094289697741255457050461526135277604272678525230401991911484584207038683084171753612722841358913641287987474801510356906103002077455953182089358310907955269782944640026777663759329819528308360896177913746294895657387965529456907528803516933270404198385513653951155193613121634532992563740347591380351749587372374132690968708854739236761347987926855912698698891153030396132030670884526118906434491950940424149460171424086628159644913604816260984891357233957152939304560943142417381464470159797859254024312639302332399282021539235147635458444841827574475780538058355742264570135657960893739785933320086374544863468391358401183153975046257493999035510664707063212342166488960931637776891200950536773113048676927188753773352288074835625769194709480687938949148518118535671606906782944855679931032981874695846853219544774975267377206548218477149223634537780238115589396582532727092817682339574456179076669969076674849423185691846641633457131439853765844664743572258634590580019080555057071124309052364053739333015762025934057996817340333243250706370085857551745830925782964662339008306241250525093518794025268788490808670209031715950388420058223619820578961056112653541613616056489197033372797020369703302612900409690538879992321706538919347704289063292563368524308172092425230005296968466686383594432666583304940675371196708205633232809970858095965127493623639320019389047626833703789783357713352557502239632681895337407974516897387643147820951187767188841581853803063271529505378248562321341925142361133052119912447611515423217328906926539052374120028993214459281584670525251277726001229413082541146367395344624034929918477017106021620820428591181259068703622081270619129367975664315161968578140438885221142465853404753068389095499829645407106729067348386492156629633242447235295561040257533039682707334077579958596748522534132811983920945987334041190488044774610125284659488545706635789963193267510287728644338222281005877410280166248043503651340891650136188655354765356779163421676297311100132381863084249943261591929648758820736551125650323817530389284633262753828103072473931701910114662877625729709968575319228435524275446682673440671708720167546286294966843039380518990911028764206392110911163997528221011516811300217032707395054958314901145547818478230666657791818050445848209793574320346339680328573700635643238698473157671342770969210196216517428499139208435779575808759333772573650139770065978914886947981559617259159424163553557298290858209828548983886250525564553016610104227836276486522191462251182088241205882111217324994954753066406205312515795305032343560653458134617510649743671858947429228941357169173865440255066333210079330876553833217204613542194409676329248107384506948990411432500984315019672056667954353188827654891439749058351157848719573668119968267599715026179757163584019755435999212131193539021768075965676262047148699957599044293309679426156018121308456999791351644087794633023631316582838455724411280783869648414296533679185006861532065612836882790128968382842475347126530238230346783370638328004093269475776613427115156425673776391501234408439664193679509017788582810604215407628217894907885794519554886576102637835789782750242665048624309448878304287427804837013507226036556630398052422905215538796661613254794937340070716727826161136855707390072511988806227179557820801493189698025681481249719529153098148506482102984829972376585007044751447890869308623981883481190564856080588139775682898091458605401893329138479254139461202241795285054644405094892150586111180088792831092119474117670410720053681060247116258533168727121158248337573468249972314133090996761832073776130324058891211836840064356435148810229610960314894165383991270394587739935799729465420593555531024787588681706214172872461939158889116162516115899922370347178768857140933621738180666964091442861706386574924032054583578891271144558119110033345733316410868376423649750282661291786350150721663351572931761445945718928944257076118833169506426932535550269643429860532865580828117438158257455488930585553762470493572891211776969288155615665066847431012597175694209801464794887663732577390390223602123084320773319329283804203806246803768946189969261003904226300165273792314869186867153741105536770603293129810372305160113196685098818115405932144499602642949561847985047590710245987724452354145416271935384189518526230119076486599519440826634131278270368592196813215650469476066903037904970508746554622775960194332070088875666746176415350816918743546894394608380989141868065193765137549429350656421209032885397675003425676590689510608415666999543033772403284950594447372660788835733277945648680899456884710539168523904377053847124761243088079628209462460037917697100560554482941158445949160918289648133773276535430883281056888974752820987269660788268872548178935995720195104876734888443649705816226334589652155512725756505192418455224665878892386375626119308248849225082633377702467181788169738426842440299157589841885428238775566739993308599057110390080083970019599352378693375914044824997007778085606351077990703784723545614664445037642181919346465058356057031446587726301464359293413797747067050362846001566777372885416787453449277950008903449034338886944962098944117557840762363038386560211968902132234224704462705341389324255891142284932418097972067160012339166429005921196461063999094988886136003429607166970580413838607738290855525686131363285182154222584362142864354158150162929805401168686074369555461337396294153968180108388473469185526291159682068387002916528378226777987262859334669088312984782086316465020499917740923630274804413357674994964625316727133508629014919201377694481082810889499033849720916608634059822911365957990039407602527345776272136658836947312474567902130286280318994810296446867658111938631594808421660304776512009825388404172093488594701512916569503121578011165644791782261842433526551542820291991121773571715956996564708116745488475569952220301854291706491435786835794855386746152766445343365727387829379847567734232703170672168453292779259168948088629454500864272207580681438682104283235461163481151728760266462433057650781514303375567590820778382202895211738162989095305079281878077240684205032934921450435071878794550012438252467420804673365395016017234421599454689976798128042594093760922058052856299276408303540133500104368027391572069076407074515072069312904387535999453152225498258575648266667227459165518152627187451865026789746356708815099348903932976972674712452982678848320607764397935409860264421082061021412945933526258332915018601582455527680769610880198426889464932596415665756141864751802030403890690889982782833980414986286627170729912118494982998608705314562636309125701723902311247471210954156119722432567009489375200563847477510837841809248396337380293184489678022017216511598406879403723437839962644481151348300576975613497491461878461820245082074542154198857114460213645402300527099704380573259672855269747501322875554017579117677468067337088466842698893999544706730944815922478569211097036575237895289303519176415542861350664678768557780500826294204517651425392374122363042128863047570665461778101889624763667930038047279098343943038723898175712967536949225748864727088573996794316778912296856388656078173159104653696178424853338798083515277857862636014632861412823125657503456314572077532656984732778040348713589735259811214612069489108318164051169159599589635971088020500173399337569947746789456266710426264962339852981543441315539438259928660734028633022375067600516262619073519103247849476606195555699246388848718321835447916099128362884679084392155671627273473683280227752011385521708639376126378631419838534594859024197062296187770782936745798603211185493904727741305765106206855514674106651997583655298249784825162476733888427551374324214622978765751754416870907632731264447694534338395786483093304892042929965621746157289751965577757477364453231398974305646224867645300562504054343074743758163541292281012826566222740206800562662265174171271761374732477127455000282664762221133452587523095198285913830094187758646085553340540171238377342977222148817769191191196228098284914559471288719305766298242012285912262747937130259396023244459354256347353127279718311590108653126487948973160002643996573411106680368918965778967310514797605451454177766201005254711729922897581930125759505237942007705348085420921724154291060113086124106460786894585111515618417228528704198390886093242910991345068686511779183972362323109557723272555126435538489686633268424633640838505335469225956685294454615129828068777866348662268954666843943860552826105864720077863444194531953587715695803182080542376844382486076468778244296385304039135477000193197036772496686275559281796733072615321924080497589993017344681304748286733583384326025647113311948604422680860079866499041429218896811515885771912112222674803810809919298183148725404750695769058147470375948006614183388953500596433716687926828671424622762382337014139919431973204747721738353502030118889233911199259138242179052301987144943388646270441363638716369396394838165230918310646386822463119261740173118873193736516292378795050522222826343264786600310113201331070213615874390378546238322749273526548929892130534725495210472291806103036081294032968357514559389627569828355799439554037098658898206081490762673887157323794639978458639689358538549665992082103389991506040996781466646734023598524191633189438653456852389067802046966458747996083163086325982241973754299499910582105883709339023048853929915403103150437822584049715680086619672505796484155585812280240757288030927721677672084968627567451449182909086526265094161052924445444104171949994911268894946414027261933112026495388713602710546570931379965717034349426370906234224441516948520976384037337584891829487574981836348563639961171162953458910686257506714440810634829169171648683019250136922178973188964440857223787757614431575351797391559394960678166984366828298767443533784519531845559111228510865807768641694556519277748283183134693593561559866095065490327478481710684120080804117190342970714157924207583934244162714445236640982885337333015576341808474540612272813538160095298329711845884837617437235886805512655450129903869681413995371332888871225676725549482619744431500702082049824193644429458796642869722656128889435894470357522727523356142247417215830159402592094089816190589826921710625737749911775420655973595336738035894250900948340673554428181107045773048169297449374452750128828348872184522256063969739415420634939935778158433852547591978502269134496462060694355757079988986719067397973177405007224204867714943633568760957788387899662185894791762648790611754601728150223474201918225146215692926425815276968127288779115677915402049655832291394129442252874332551418907070157792654040286267263737491167338239007050414306222549238139787340346775217024232873090355387698525398101164972392494303571883386490097173836790124178109658527401375757019581193624604247650921020137649921098901845430701383631089124995080439159064782275325838795646654675073839689352233612071124262532987601775095113374450291361436667633100254052222612259173523967758061053590801517802314765066397895227328683253654063685054639496047113065609904755852005491969662107523288747906415692725424173120866386726806364500833905343521447290245471246343456708205632434617550610894982207839520555486825959519326225923697372056020325778715260787937852799679317223208596479292534909713970459482965680365970986469686996371251731414457539040854304856066342905096808637023172467940051562806106861344295845932542001347257001595394205614252118039635840858973333614195142147519271636582548168212026288228633098362515273636512968105833497397478366138780036204295410681935845223237516933226671503537085579684646224420377866354255268929157672569764355028451529162807756516922136267296946015998541068973995610038738082873063394188249693144111673765215029059892228573786306638939640676369088889103182036198911649241604070481578603574831142690635929599225697528880879801554159883158634933141307230748033449698057719509932644136264199677393845389023160174414168497336246540849396955214482401137019234260963513392100933843554341665707698528783539127168763157969133936395922119597862538725601387275805106912702372083084846446603020969034316327259122448720440238590937411926344580419380364695516674580431904748684619859206234130769759356023266634086341930148393238445378590899531039797179215639893075995031040378309372982938585643685371944632384343848659305190841672163174380270075119486423386458922217907732290193958410023339813242512667737157655694172802227168495566312489565581489944042465252303251420042817407262203543438417523214984591088329711084936201869035989572632839739756747960285475766522312644752370135263578634901525147480048404387355012815185795803766956942940918805608083961917641061769549380556035344562203656507719199017989704093830649803187018461701406397405701774670122808766445754147402565705526123132590414614485751744150095071542493999315164416676023437558054927526413018654732127782787607118342617124248254563728094612475699418078725830931695925684035631630914122936847678067538991778657228873299201645401821406792833054270594997174441919644454138142662787722894921579504696316249234100682709686859794781960972413622919172761480551434831146765317953429686618462424127950902127983172899360932565082412476330168936526119389240771457094984163669182567462801774870727198452119679576315170168606438319853074941683513838425579605921436641634440300514506518687003467934071890844820442834061962178518742475386287921380809389441201204778998030824676759559807604601701963869859590629445704557051944012260460249098330902437663401791665489214682502951852313972424149530109002678874958979142258450637540307052161174334058132124595067530392499561360897594947734434514042471928748547805153865532447935536787640589229458126574134878356729734150777522678977953797888107171695991138171611872190422851676253366714788313121325295344960576187990446462163416184871671896801108248597803271505656381194041634607410543663748952931477661846187977821734732819926745477706113743911312261751743332219643036573007647675440997011719535338285527940963259144932536205449382579748509349396804439530601408869761607898116779866385182506158847189624947731650281822145222624076360212755897492254839734770859128018761296277625542981142084507988306605733408540664424891132154692249338205948414578698343903600721332798496416533841509113633859454388467927971424317351414074067983535820051880728790559231964160627665663590436339073648521042984467790216481970228763582200992975197820641981990696978077297024686856406458861403434385511149807357794881837142295226281681280421024410963036802159276812109189648496978495703408444648146886414476894358743333635614037604592311247649448235787917759169075377399138217889193572010442739344254473453436601560574984889705480919615559680130181591144416914748695036057159151031970833574379272044461235522305692691033979888405549390982299913112712581572511249992291254634574668968471297579224212381553155295655385187246113052019308435884150547563297198618681932468814464575806245970064617773395009808992804755489519761133887219187814248517201813888439064993367069830616710156912831868328582026205042389611042008360242438506595883947241501222628872825880605924144331001636938072134760967692661112931540290490566357085088830961963810242524811051845828547473673547236919643455711181968078825903463466416454495065139691396033736639452043898460108544990369707536051254918838951272498745846318589710265646796099978524865682131007874064882505741791848126257274774626201778643962859866649048873071403881494779240876010630591070940350028708765857993122815332517215626566747472468052052366545597658879675604535269374795309486844137376091292095758729907716076623701985303859682345009740541996070157789178572504526787905263383255877877317110907410058768038512694727932716305217237290561833036579506655329184890076885587914237795646414974473504038150512911640133047260670289542052624569042649546636367066642179205568137094015486193908482039744536202786023129370735785584203130269786657112259936077928136804085913355776117405035839865931446096578923846684282245640960334257106344367572418732116351428276806027477295379975573283214777476065834348908854273290575449298492200879169788188229684930124192664026198743872818930254475546729290211671625335202849375344345374756084606166184039113879881571404096312232090183846848939314924247823523121609837489784397598690189273781148411313546952521560771175659601140807464391483563435216749800125972593341028863499257418601264500919619453060056863376500101857776444848963000063366536820642373957213967270366376178948008949372074268209726564668119100176701755199609614146094258475272443372643315929294259370027170554654886603996394688510668618066669038132914731150149498365754130701350314135920289066516373007978807141598747574826277882746034400680219098708076319671482893891532516253569516204997749243064575922928691312183946024196789472494651569010565321481576024041467085245245717131250685986382259747780818615382706778215253285761220625787870518515756423848945727644077747309153251947585948551860569994093187164799013338554571249305532654392390520290630490672458420976587504996368173768308800497555429640555166507217928039268577152787325996920082337004717361226429486457195450386844480968714128283608373042191776660387370279982142741514378425736944087870656015864653837004295607799494226657455955763677289952372462460009775876227175294694684873814254532739122328713615605331333552850463395052740790211660559408154482447855360292637893604075910422081682551727362781339952975994993648664381835392570377477242098237615987767275354340582838754122635500373706421456488390767087871451956428834371195525504038256994799680913299283263503605413151459380355463988096934815374380835636589472843057113330081210925784445505306272442109181606379133778156375881543911959000804450378961362844491563256386826277794721323515936031557113053642018093600081464407247634326137844784284326509971482814288859983824243103311994993483262534685592367713702989855961310061112169755504854610754543371319072432447014661200672358893730959849505475979651878427318325697998104497259317495769403150884041716342072383042817377673370514416910077081531998174769754444783244664059209857324432865601923866914708941076376037850571554336956909131000412143209562041623236617021265674189986437061715413628572812233666220431517834327212616435542554820908782902495435409544363979671035381753647632606268783505061319283947138861669323603152491889394917310261407773555416146299309252210095608341020232080154955362111962049268787290400873477017723813530190761690124323933783209732164985801862921112423863703589436471051790001319921751134967620730006928480429587735525075764171711347906073091398438342335993701395577271486624723449516983828429133520204104453075862662103847700881753127750631426120831987009895679896685026042514946893931181294415802361344744304863588210374716942100487494125857553383523287774263320248161610953024329757562614579440348210675799517113500652739376526876602975975658747300499814023890448656417061520426543095283376196580948850588341358661699506684968250126656550856102984900071018507712484403550627500426562763861356375230473907960577984327689838167899361258210101116364327070638006861545822003639448587388924773270601990718335895018954972412073756097606983701109410095037739059290215990347039662763093646253851140993961897990325592540143353202328079615717982034726934715918495178658544196242435368642762101955323539619651786247305367014999245792370909637649966392512181216613416618694930593448304195517470188528063071791474832284087128669077264628229765763129039505062872927925038043733545434930175523631574223590504839309401935234665221529803408314609708957934939535966766424877336288684670630990532407810834255023267332743060422092195215715891254149048666863870297230735796633072982483106690270348329647790011027291347849230649887116306915418175961089495538554298325836811718603889658678533335657824623784019326305612509113806526446931072658096939390581913961152184727728113763591605506295767131804829338061071626178143812652683829260986466573711551340124857431654702122674708621231865777741655304071646106295472865299261745317195483663527944840963451921274857945143232320877255743491560585892145545552858518551234904195362477845342318070997653971929594641433148690824191036981280536953142744656883043454146621012034901138584140111665129689709872824840763192949971450896596907549370600313966744826462781298873042383860520194265289936484214447587086548534813100486420800545706302970002927954875113252888370985014830825970481031077634455980134838704600740704777205455973542213388936001889592330887935564890825654976283524846998235212622022819837716447727921338878688742906631381992689739571411356482480606581692633525500212273593857328631602060937132332990258423825274259056594770966962415840289975776943766508642344513216778753572682497867494121685231929196248734616068835704380688294706170975871413251093180730786385381385465390089429902710392073065430545555812833777896316530399662762911256018975625775740557737794813263414632431083836066442557878735373050820532468730996934446035659773511264477398597791133708736393319293219611143318238675030441844758711985346066061737784271328437664970221182925513988146880298106712820093930252097428539395263365440018156150413461427388858406347760574271653554691994955692968455277830538153932078976952256303515932307378364703914243617166178745264490377736379461652514684554513350670915208442584433899676843305798756368181202172086402697773604170594229986978761350035973920096194824521392679178778997617370101856686287417280875572869474569843212608169142962151064463737592338630372603268404973881220603983111673048073739750944274449443887293184613202888454769194180901059180167100796332716468675803687398539555744061565370844037535389271854830652241985998470914535761939954531565446076180997438526314322055701591621761539927903268229578759899813707437618813523292128484977058016914097222774196088950681206726455233087641326984855528755764838649096376827472081354210828616515597099767797423516720884399738217638302678093444194023107609765633060832747068389448491155715961332728637677053055105062113686118799872812156251050939712303564719625721955238514078008100498865851893028380850872746576699567082455515361243790608360715999547771170682520986030601773941698973911130920402314681618843638277912966036503161210104271219138396875657606608765800979771035637553288785744691227841996352497749980105978993258556947771167449489903431227949847671129597555875443562771887118000206087500932733078145752503118375562556496278592792925071384967299006468049475284784113592849251645352149647644613361324054434523846346527827495583841734381636175107918042640727210503653950955733812911484643418535102845417686698556188786628592806708405241721641743546110862596282152772855171740724526868965726508242990157579998922978381516437111905249376958864379612009833534037929844123152922952503327324561772648008432032692599830870423605478022149412027307546280774367919101620104543632120948153659231787932503200469508322752300212006053764280009560929964967105289178014153277172890793750516906463838929658656607748534516013035556768430387425606974963430827329107677870331857454832804868272319300435695947992335684245569106779858610886185757465934741583797954655700539815242638060441870312288800345341966011927956528164777038313690856705895280407578654253960620950882482092244558685398160953216181036024131132577648471999544001487136738278628072247451556375782923518518471793993494130996579652379814015648587840730740254692492592122888160206047443556747355363357785248975793049758596257372036452640566330348890906135406943959287289990472619555813517050224626599383975676015562905463521803086451002006844765151458900038590669258407779805510846123034212338021929615121249052983393419399788477432336226343095343868519813867480056049158058598374890631323865606891894141782291636688670469159979328419039073162892096654172098064568774105401759019215457526181160515758696124367421350677534001560874760900712329863826831097306901679822285377606889095141278906011058256862341003416868366900407627326511575502050729800834538017108245922444859609196636267795662569024326105006852771755338401044055827502735889191667662262263188617082948617439180246401343895055192072890937715209211284038492283528855611294783001036448457949101910890280016892082828449174400085234303499293516568049462946532274871764426821048732467100337134899497209577086967645211921375158072300062184227069534655397334763150236321563112769879365482924593571050610577770270593400450801783983918770102799997599767096928503572545197411976219982928664265393629112989338007751931127095180426844570339196835472803554461356962280539247843320970950299279198692746676105197352495089618936742195004417166577472061192099245307419104585351399544095658401217251240545450952956979248769699330616053222486704405838512047651016613913210864133617092839291315328342203541715736306117539366546618125173199304001109954491783901080929628683186030384815849521293931784203669436922579454914246496025244508176931399210307916895872735936461630903718898270753464409679720110565938443616301260619779791456145776015308023740828807117357019936148731516223921683715404690562340292805375969097228754519796422381156460551128438190508388689895354264403526200330637163780056538893511606737825625173346037266435175581056487143875817964486935621060375971694126502308184653974952510437617081563141305434514498493520525920675849196981624891984173083072259686308310838273172600122664846857871394940180262082783038129644881373211376138350538143066588340209736580614845329803743238406635906014983634846718733608097444874812553716008078826132680083503355536031692298421528371290057334370144590540166071880033256082484647299759232562137579913315504244154375516020576724927300128882593883962704262365552101441115000702960285688130255655253299952785894291875782831561057952840198653887089269361633235032144864571641403848151083953398417802030624578027560102775675536201239681192108926458564325396792704295849198245068360350329213014500545140905524434037491728010003658801854479107881588645266871797997101670801164681952103080454514856742065021741473158092745075915356868217097361643306272059518248442713612677751171298431108366894786367280494575492253230112250486383700575588592960093844035641793816775895622175810526590605793497782876790013929116491496132043915815851014972365375967950880400736853020776400667212134991926888538103419612928701485899077782320380916559807986749218304842077728047322648088857805562987621626620248096352210912870904822121454184397530706251162028418074422776209065161003319161618072879747245799969005418261109567615503835628352090305683942984783691666161983239579668807846525793002016064075727353934882933473297023790935617464397693425296045294762253710046431804855631568030990855191961004315126700822583308961933407916071166627708260468364648297450666118319706269603078774515661575840901464487505092626510938740921924526821597163603694272193223258299915825224729787529173914058944647815325899155383742086622047126145710054061446962038566793725411306849733231900213488245759828396373990846187649513615942314942105200649524711265460138736664175853154170079835755310039731725027212743165979614271059474269314371939424042548629289065182319280777742556924106360254970900771743850143047931386812723568601364604545336235237934921902797464701460845605067243225278866005590108714899966472278118183913551487857407464756464751697769947962865272500223926463327819341170768331985496041278832696003941244396747867243228857589705582513329951908658842541417824967180621901625804436335738540859522926510203006528824646233359737720107280844220637540468755144427332417013094207797149234941947312136878469048419984383296942206640850763249945020903400150604969822507642998213333336876693367348297712156000599405344505019303548666237642672078067252209284598016546248736341413355853935563540056968189122690545001550112597933461580977393499737118911800908396934955577750914193136240881484489996691214432330546928729861238659708716807788582790822546758808115013871819061485792215672408530726613854234062661838094479922127255782538707722551075830671185491200966110083586932479628277849966827117046837393958636960868150822223015435284947867983230664664203532207181873639733470262579332323724010134649895247829797809215064448080607813286909051663651523866454405764918436779112955626789162607771524813710541618026985928283209212156700991425963980862843570982390891559066541073954335168585910029552047975797925526672203101760898577692588795100048713052846902140923878978134513792551028254414160545895823175006955498532666076225784424256742404249721960950179822841493099924497303457979401047078541000254266141032785190634624629888623611105250436367989276407654831285734846487987680122468369014119809945446295876961171756711710806220400230632934948849167892512786635523486948629834762330935305398623223570457731473554404399952839445837879517031678580520643160135323315952618542591476621661168032304139014655471984022085229532687364405784206436492286551600594426007801220202043655102663034234775791089440362042888368397448126697080884103863627029551620894008820940073504900301302252843036045385843387102078732948124337955228608624939617130875305455441173984133814531944139483025200220646073144393095721174350249675614613148465603240171858327039006762228762790768508000051330754183503889361520573056065862903940936861230087693905581878530751769195208966439386716409748325147441148819502803869460264149903773645285828661354848636212065215807524983400372188651587921473644062455468482952984603695675634359178806218342506073723109963775627867032238844801492534072840698937034307228844926579737134556785097491457514633131816092262269924241623104063122246769449877546053699620975700431368645484433399682794890235569697195756412355037374331337842817164790769083813331381725074253105822630673494904133087534079631228769997594172757140808840322874972526061417304017434582079405855872739637261046059363992310059882718219241363077965136514180650159321552067479866504241991390851947846767570175502538889068546247294677496466951236851177257936407364033724164771157976562638494932076173822893288582530190578785252951071538537481213827093746320580814147688244141447230052799118612467196836961539267486322175847497090532209764400791599582811940299675784864742211739983793159324946756602217427644855264345602126482150929345392963151355289354894306639092087994397093146667589720813346706734736971496004345229373831696116350418552671594267660373672311396865916161052405980720607590375356139970502347372005056846897337823055760054632281179454551097868821120551586883731182339371614500410425826631279423946760673717404849812368682181888446342983066263233031497901444656314330897231031574439707836665917473900053190394479999874155620279563638531952991323912746227095141480091674547851960451994272905239698652574885322102141025842185175883195981843640378756321245584854904319575825596151521437055115004535912529361909313989220912472519761994397414031722225016221425465967247033303208425521067220860832371355766940136603197930073626633036460749408939024676417458238911411435938794345708431956617706095646706263393584879809695575948467279313045433426303487114897833761076569786910491816509433151648486521481491908901933553833983422459921154123028567426012006210087736680716188804489264596694291620305598304177621061509413563328292716027164357773741175996905167101277263686738326634882519557082055622392868097498010505464068630188013766325858060511290895942146165705133602479625019588061374737625031645011648668800351097952701762090052928442124533492333960555981287919075759507478684818054361275326045270010005934493082996651218971322202786787295782010873502018169318913354126441007163191069456355666637794290708164546728002271128297932106169368017652718902650899955552192470694832060250154847848344896428675176562186431122936751629369143158969431129613891984834395997902401630757852646570320955241223651477626912370252385607088239173793906172388907949684423024802531429181592782846491468096961312253566734666607115027575390107920284825562302133821824452148159114018391227929212198641110503829383687019041946538711707527696184496370346221421826853709613602903789286847629301277075270327837769434918874129922703479278137716087952556932397653434279327280083587880630026010329312155549744932052967460635078466120751835679277170497367201778075717671167960212206274463328613333838273227935660034831290814168844811096906679274051708443258892953384189048413607190467839382073089311629705082315842372160862212348199188957228869709311208613008201532094670603029116877516354041235917068931616819030813893353322086018480311733610865142663526550983403421168474282402050213569563118935168750177639041791509331921305404801763579361603287491811264144345121247490715887395515596682061371599077009713429498551408443642950107942264408139902510304653639280552642305925656358328710434307867595541365795701389019722098393033494374985159190483470360423775219362207906063635518186058071796951636822120442186090032252888937884987166166246354734270441140062703762762160435610795111876897783539686322143137552826390476367868622131099304849300364165914342391438044374169854899643215044569257786702045914194717189284939042164412604961492742518367123317836672342991727440095807190495717807351856854871838045903180275853578835765428460173850570846311747935740354241562592332526351864307846438190744839607515994179980687611208772867624946030125019033739562848132928669556064348016598808707529962239495818537924575549894409786890476735894122231692159685421208167554016692321108721890543660886662317296153804072180807198532561208485948886838070992249294191646491377419023417401681853787045946179834823850991720821280556950297650624434124567505457220233611956331310194998908257680694114503455908404974825921191764709702076411474975041886267521901957964799019105306561933960028170027014048660203576375271662246323539579339867504478760598580794321252248504307881884485853820223095178233941368417437661420367351583371085878337892192688036755629755312069278597148113125251792669180371750628232139091925180203714308591680818126639804024078501858588112969932673828196289051986946830154274208741281104445886576741111242792397611134500017664445060255254059913608364495622453834685124268551591964140774088537697172652201928731454137012515990455410716988243295451436464407044668231619241968500082600611838026069883844884502033330231244016460400460432231810948167585763267555580247468324597591560952777819576164915466256163324898295169324197086539735387370544967693949716930448088592421553020392017762751427587382498476180909424567358771444827631417897299892347549767069241997590002396004653363546243062421920978799644811440307525940283090731358347714160190405860129627656274792991970436081382543935205255751341433800628914198588668221679833936279932884400579576011325287997266822730595950550562832566794555926343754808401198920047600101538147419536116972253883157813956515568701884706380308960141298554695278015352606114963831949403893969698250577952250987912573359969308931331437054404563187970589822544622550341552009856807086120680044846817547462065039560572672930807848966632905518018147174731422007584116317006086866722645980911808539263578929434873445100489480811402676683428149839732466277825819553064761906523256059735200772249957103869859576076749181427156234829930054011840436815446451904174348948801477967014594977641829380042268064346222259208472467126349497510914045936569784962647810186479398386952838008752602680602832824476027131867948586269853023822833519228509940279444457095003506109645574080427056200760847296894884193411706846852999386931753133451154368150303401186985417216244648037577375673902674189700258785755328067215318282410315036534387138238067022060947717981690010553800869212789888826310210948506101161644909382578804266695442157420056783815400220813282730241923409525972539813574317101735558539872016590315407127894077432183689185721853394671312354477600971567498772481905156858253846368321019229793199829015928042279214340937511818332442403067798120119211461494181603149743034454065807594140807044300872795469481174627238079696846807474216197890320898429499273806441972053608869921267945565383328935097024410639102058909966643594668826675783961003213238696327191957315901071383635191767481103312522222653474374354837213432793997468482058892292563786963943731322317083212332262627573794792463181259820281936033760807268431825250417738171311165200870418977416090267994854120768040058964139710499412767590359001036470175006310163330766623969070907281363705743746782671925100066740840090892872084551735054848390276888901193986255972949995122342488850780918385369406775791402274820453800716691539107640225308286416106731397536663568932390235896965179216864483835331003430415833771646239676955510204523930584465911122111173475659403746087312349590568593529900190365620669418292119203194977247921111158652158571786533471314040712066314266397869348999583568082429400928632553160095834328439000264856494784563087146860552296141669005969061288563828060751244474067355253542798474496444257142340086985016346053837308730228040473877386327894331049579431256781532682608893586057533870383941882606538956986636609150829663485489789661448674984512403614722162255596110304181888999075499736868880828475705994804598294484999504637758540188197505476799196329317757488198569687504878888289100858913796636181925175234516233511343276064038906442453601873199011092080698571231253778925565898569997805740460647242684180005158893632854751872211992497665092009581286538347325310501446574226152949326175792311959871499710520996339311424458646684672357256742074300822214092117668464315305174620754766966084630796413550691752476248513294274526720184304004824429754190032508318251293907497933923762085528104709942984580734503023515637108781884728902396586291831157652243425260012666461698426416687173104807750408840269522418229332967893467925928494023485896651161005936151059655408802757153601245089028146369110205376875017835287821479474505314459606716911509249765507771189793314168910800885094744398540923678537117952134523111352464599293053379329697921227537922861417855822078902152343886377834115897001549550695899174023421936497213635461414031710654680366090656122424337244173661028045908308869426153999402196580130744311172388757211825917943088910214483669322503682961212784614898501835494315726846532891309081613552887849884916527038334555562420912188015616194871915480026974515277000865510431806521104531786844880957804372777892032876618916522276366790805513200557252571052719590665021011990850077378061314486405345727289734702611319654109448548504084945709477000086601879887692221338082920906840707972722660723071801594168231372224827795665560710778626157061122425246189823058622788525947232796251143913261010924252937318952259150923574098733471677811373477323276665564758968562779609931305838862125126687284647479844873203767939079592053408493448470320024584859050088597228085267399140966424585783776590446524372323147462751892482034301019281570561579918678127908574143769022995218499160524566213571313411374851577009384057450493530896987075315266612583964086444407605367290770914773636558831765876476410553055834794797775502825489376352820814942496597083196629176609221312740643663279456270160650188101253669321393381418634115721131062055887198630116784033651764754990806192155857484977379012208089940023912700955209443035307691070538212475290621972637988459964411276608901665335293918493459311808930020399134144905070604273655861981227648489005043584040503973046911445397944641117763188440544456050416903644300799198264949698551877477664422567786261000706782006259438366563960960856875853252803284378723662257810956788708003594403834590508289677445326649162645243142141631155735395170950632015402292825090955983084025316198802276010707469169607630204618209049815827835512505559902601527726003101487434918312213408667457735973169823398099852769681404190347419296793123812148679266503414118242474210808600912594456633812375744403141207302851797516158738797587522214461812821138264158843193695411899570878388405365996778798970106286853303578197245377060394948736219508725809301852295868281683064059792051577485112022427977630136267759610034865009516191110791672757377070032408757593509414325779115453797815554717543087806147792912122915523864777987383252805426601040626305082969991060458289864941793959432678823042007767598799265627352331480409053191808400440508330408869527674478743811494852070731730059816425517385843974737052220289416363694385726229044450409534972912385582571871783600575116171741978101006867661460917358769207870179395790411187860526693013411286539701155772095102143067377840849061409756353355439738531135166406239769572696480241348999984956778332944607321975548696208408283114825768713464593785500321309241386549406627399344024049457032482697455717037900312420293368554361001280066568097676994452904795630208503312539842218951709036851468784870576419321343675382786736237474073127998735750521413553144949788637364766968889347476869260103393973843177648099687513720937485878594369508815240294719454042264623379028733708240485913660923039596566657925636573700520450520340083854136927822193964800643800227864690764945902644498340379421197252915561749882593080361591189217625106160691378685862108040220244971521784732115030993956843824592641809428087663544942211434158756246492687577896128916831857785138814401526331411299404784257402592571664717705385752854614017533264824394475000121288153610342215433555410831804172101872441739888081115124858829949913984590162805953595559387452655490853069223557642000937924167446698281339520450622249564511054322059317073145714472920938714895382004601119913248915061584999232910699554838182243410637320555662043971285575789436351890439192110792078215331315476386062768287951018149931115847216217230999507010727744413513429686393514347509294050949241331568949283023365573682455123875121989369261419815825027899831184668818529302430980928145901496290753133352712530224352499597073111616813131870153419098909143250435283226924450498661984584788737171668746319070016180895267206015463650598471101258595695737529156561553656272775140852878970227219480957623844892668422466855062000008813615051779160778649094078399980652469896835483481096346648668341065538129463112292220911039313458097643836804388585609493377462514421581961210574619121209707365169626054308609884615901909600014514470894783623063068280398433854471992308272348902765117949806733380691268374355601539650947965510207826107984472800287170368849585921793268805307883305033283682810366202785978079922630770946195244912052651404818405720817095090935338800702648575535123530830957939704230392001062433756346403790469541265342158559366987053507030156918688750639069728332321616749478103748402100033606558337941086675159406053090767380570488654681922040192606679049577835356116681935837561343316984011679001904404266380681767005373327666618245781130240742204305885732281296107675722822856451994668374542930786449416093233733387582408641187080606047127777936150417699322751371680021992636682004984587894570389370967478534658389967470735298074936452018310112152523089649444227932577845485070608874717195388390899078073494120621332056489075703847213586092143555371919418529698164333209814768603156807298966820737344169900540096629705405243398856377061916563911006399467672083839506211181947827484747270925556048729278215711427948883391392811250302901522838548214787702012179442452873776942177854009947539228069797242235235484003281999332676030298982945622528406405181876805590708272430804711721439355198904624843804227607158816224195204536176547789927358534494627040515631164962681677127076313117764654839329009670771571062670216974045251415847074246874999287746244341364760269449642333544102039203259291987021335228884813027774196617955027894486461198297071897259650536007554411712487715157255838622661427362005947455510510115043305169699391646767480468341908427626555373043780441570559264966064973230618021251406049405131861268518628455053340341389973633304655698844641797598688831234276661677015494341183949880867898081079775374968835829900019937686868213217261195847742256916790657147021398900255865748882552112978453720431082165336948911692933541696930552672931070794842418116693780023719151473839248227767015928564894760242553737384018008980230701945338230143534718808608981253704163649648514862817601259734720545250630147996250101260132514666621976669426440375804042211308778032594851183645532583810705820937275222805527979903554979719984367588290289359182683420822788017401567457156296366327789641108708105243822538554852391248296912314795939062939338117345508256993306180088848585632718268335173234961910666259257121399822687484622673175940711823147261619464379936431945956712450039716452202100080604176776594604880027656688897017937697136540736956872710112313516875716920893157061743976031389788948213592607419386160287506481705361674485366926276345902782605176997382893111361567504035969014046875300338718753079413616184901426439980219142198421918174845259581065618102648207556923091260108267993707169721722277274714092330233656019627470344017542038987437892634731011345934372854183557784619238110153218583461915827961093081664124582139548070213043739718902381694872465397176628645248204365261337095841027357147332585689976786286017942544198112811467750428253057041232854885769473572524450954501455979680786787515977193847415369170247627775455239197927259994171848363612814764972843179152250700606325049343141436329529121523738738066141354003110608396669919973072617138379970932914804893916183070992533960013452809664554269537922141594918885066132585150422253286408393257578654174447705651292621151050640538352481216134340525783514825063538926466064899179624914964258319879949308399903283353878717389743850017997319411918577577055334843893390827469638053405900540334604887904054482604810160819113728417652844911682888338735684878097945489300021335872315921929748661637575560308180235368352480111916473539604311377911717842939014592040656167907409996200075087704589888021727271452115911946908648842665994600565589177143121215981628416620866761115302111838578459808197020734372729588362278140193076984205182162854541864090425928576997423398869661106199702341953894010147005192487959097731112192223406302241313001693477561446083621630958598953418364109358200123048614809052591694036570368840819443825366512692938912504609958167339704812628492560112708645237111887191495010069423496238699699258746930518597220688195215946552211361097167357687885654083660696055841537160327921285728050525582278286985140324292659837205725100950211139387918298631392098616398008504779639485014057876419110646640533583498860410215458369812107259716246483348536893629535340544220613683720946878420174037289993325725199320841339564387772962030543826249243617233610378659782797388453636472431208423892353701084640868418167900872526023294061220483360695075053706012457602487753477144329067704670014869463699241779121596628069592160116422646498015503461142927873221433193950321440536571655039824187108991464752090102964795442372535288343949714726020131879992599814399200004256244524730474984225173139611285111217252094958363052198462227444931245485882658289037209847826286641080240698543000810002543966134262425236927152149565104146761849514518253944853452704826260738400633983315626109756423624971901488798719485699158665330569646690819913079680968589692431688667564542542522440734698769579338025358657266139299316526530689279917952290061992298545451298385963798196448868680901509826860372365686158499018995290274785824745886489332738807732244709027929852977715242076208096664990416833289547363294281673619124258827938771121868808020706500231101319442425321895863418553505412517739625437582396143174773385784649879114127749051212060508561311747269651542989868678924740988488473357221253466692263926811662790761434086440443327167520594506293589031309160155811224914228193349471252118041654873594117612603677561745242546762293497207885715181459848341116574856894800622241335170571634689345145950944796828204404381963328816730322431461630126968513330715208855898698010794647736456910071250296313562738792397304900441467848861920806431525641520103554380793770062544255780395474658570246950003429750145680145476356689839796574660006404935174935690708272109946835795638576216282853509561586595549347829949704759068958506331261800521822989352041458625754733150549904668545841083099385367735646235905494499969582018787769416112080993320721643861210951282532246337499560564637937446981386401065425271956039210026600521935918035045471477997929357084130816953940541238713148279008118197514914309445660727639961859354735702055261938126232887035552230380007769757379663736272203252015696537260307458008742635436663863723959251994335463815570200890247052397188153320190026847508570045807401905012723820193796097562951152972688892320750088257862080647249314971875923399164220932697542975414476830869000482928262488606170563939358092701725754536322923717092877915208484107790643395880704004299879473650119994638420237096879854436149254458829336301863997604395004288942061110737417861804265664517858349663785237862346590877486861363622640686746852478284910833915579766955773366579380497682429616225068132548212148721803513691643219295856819628930299779951442017854079613157825647646038219709151107375761339325403927743945615867014602818883920409767757031670427883225845105408164473993727821712182179113672997770448959700342653365908384115315869525738583943331889033741090050981567398400761085621244722260757133869519711272955025972975533966675065643512257915831973986368042272448648116418904497862884126376504322098299844827028398219973462547246817504416594746282973438304876374458889361699692055774318332144428703943010740098519026691267752201016654276523991221210192381880227920912548269897051198648953239337041338454394213113066312066771527269558473715918271783855163475704229323392160859636609783476720637215773604965386992682588307140853423320046818214026271593097443583288176751611268708252042245561762652999652337842502395139732064813998741239809098425785553627126300071127551791558496821959364079534891219623062248638888526486154559641098796310857696106540685010294774312561220378678061482310878898952929836059414282607298294693762500654130380263694946005222366919546783367867675416753343971140414869022780405550921043210762477495381218918515948585634028438377706850869754962446132967634313189422168679675534590892318415213614374983010795380054646423550825797791505514598621177358237668757735120203860794931646598183432651057240848829284521452719503463807359186987970691255479653079744866593178649605031043345347154905745963429616899279234191061689737166370735463374758779452644451980814833478205924012607333540583909821024632699843743887737452202672282236581821106108366068257641956220242056809003467308661198874089590019589252287511055381642968296573897176938123862308973228267336707062851682845562884323935718540546450962453682328799646217323249247610674307265889262501601498967810865801756576519957814901627132251092675541196875722581633777785340039840673786633863825778775175296986944713849382450791925817626633397046620795528098882813544080865666004536775424083434317981993261418982683353724884576109881516097433542073353738296851900836411543555468403447318228473416424321378861789345855276495322238226695385073903606427184210413110097331890669210002756132899704640020266186959468693437968183734877377162205243590312058439608623986058583825023168931625570000343337426845682206352785119797754853201410831746836800566001124873883913959491663541076459223034204674515952776894895492993708989209279237893389979686927748992890653466354619017965414711813119224943935972511190776847538298965084910459225708347356127214589654999842065573255086056267450526741801751155997619689786252923894220624484524324433368015848090253522033835761071985736245005041771852199487214525341057692096754024751325088159010903856708607932601109751511509996701525194903348510589186853774547429897232306485698323177802510708569519156291318147687379648190452193235149202454286101499013693699081181163286018873405198752036068924816145721851455747824619990018558095083563132026791754118594339297729854550252617508538893981956553010949040970685128474683413707487324762322770175507601173122260340805683448146252823843227023175876989490315160883797921808205918077810121764378673973885763072364700159692867534747447488336901192602214834784968436048340104644460064850990502443856211345351217950658578995192452533532490063508536016320069472210699866200083575859249900338016695422193902435659227508965299048049815048549838230698400996611706359172151940953849314975431201247810874800382515831038852851380583876916455882336300342787875786688008506679352220610852404494463498334796651097348543732675838845331525773270173879332640804627556468172495510397525087137851108446006757356954864282014742074597289031247891472066344502635736255875471142657191224655177087604766620519723422865121791829080733075345511939353987188473170125303976777231101065804737499722970938089526693167673158427599419655300437004122586257500713013724005481402983254272269483761186814178960732227097912356999468091223472309128881567733904394171714300534025151147574943240030274735017974018611989875624474394625949691005600030598185074451586425134101933866637092444275741288520197215636968953126081966312619538011083480646180280048354401885371389533785154471170764308905185222776213881915898196523580097867795064189507723171589900684145696849547847833781404695684774314886971189548784285532032379456559410952593239494526364734515508792238349503480409673366516959732889816874942627991377906724597645378379375602374191771391867097223003781916116241765486414668156472486709990333069192499614995991686900316650256624294511530945066482689731225688170687687884451946873332633996896598727546987320037617433714188259391144125919228009299452092143517980369790887156369710362576244887885571567051965345179628687725391689313724486240430572578230225454026297555086485846383358465401049109645214430145018556241205970563892170025590038207130694016707435106744456966610915753629429309137795124596049534804624482598635068349829792316778185713611804045823279438116287439684487642266255146609572107779226642903918238885013950290008745561393349270844678419292454398179489517859049796766176316647550235195731341553024035668164593324787989006711421813612874113001194039392326755865709655206539144704232763464632162403205301101365456673510284388354647992979814198316329149234246366584953756134520339669015577925878620815769823183238687087686335850374196660625248091105362240718393104885856301733289971237388174597930279107779556035182619849912339061954854083143383211514261619571964753464453888931511315947886184832268896252463186388547644611192029933488328104789621962833070598385790124765972148007099560434873863493293352940346079346763385950781605149455660736662551533897659669017212718661910254235921903958430406606947637135195992008404528063320546142949371391576585277616023380572844792206437685195485294128376943842997289594550893825136500722120385264988177745835267788896516116872162936684106814959005474562105072144233883905692650963328918773757068316509108079434323415940702795042026048010624384311901581498950129986263612133706204375020483206001947274513683942113314866248629460661828501818702045061937003799204401129413662593126379370858968440132063994555268502542454416359428933246264562692445469998124284756242579313122993641231201309996644925776584087004701661024360450060396664407966831440734339512997892046899940567782547952474618996886590723040792085715202147734900193234444601524249510670009763847488297944520403078968038954550561575636631982849807717338694775050601100165958649279034690148271399267809615184825349699358003909038375919962504175457472859219384860185555189380736692875435524943033414985641609163345430743357035824688573959337679335818768168236963196726149027992337339954826370323310656499439751849006379120742701509799185062834686689637085340718766752733536288403841845945326858208139517777877103988552977077123069813031915517678025996210357261717122176661268726423988126110215910876355587480568259418640509506034557267789352774407977746542725784897257617657465227055546775947342225641867972381081109140188911985632530942152298693575542953062354017225580768255313122149869071126972091889275754233959838049578860442984266596656976298497071895675687975981374109734126209243095338810646475135173128817844189262782362780566902739063386010583218793348694263536325447956209162414815969983448472379364029630621274617494643410185807780790028550283112472772316798245527357776663799278827152886323332193685068828594247493687041713067337904820055371153934795444110093223867097551190554115360786859323498661249227026683621346390045609374903116232892464653622462194026863448643535224653811566061919503022554281776365894597090088268092503215317709008191371263556890598039031255230893220595335517344033515709663644235013050346331800052470557718193310348922135946479309635979953592457019823532161309759235207299236550677764444142526208119945586474033124445026517267069975064423008910782777440105033984291679595019418729923879807143186819164651966608127946990404580153414591891154233882393156961511748734513452341732920180207020721661888042786837802741357931619334400463967139826162760528996398726107377598098514723873847542766249314830387367695990003593309707577016999062839264755863027395897664043318747885954972839573168234465233450440478952241226180255032472204974452453145218833433540075436482395014702303593372654943272619691913376718111289462886619563975301997416955226309677343767721216561501496732366104509375028000255616719029767128241025365557143388659064203240399854423041534468512907812538172965845488555243317143284178755442677453399297370833698458765461036469558086954226991978072444013597229752811844706069336493593156572060836089836741058571038811252318694792902007714925659540394555603821590160781422993183545383888367129572776881349667730544428081703091890149982256297843106319966558915792452069202608750352845371649890726821166862004501998005646732537952654575239949128142052707042320314044305825156962338282686323531171069004299020296275622000279545038970657280414720689064850012171694157657660237846485284452813782765124761728398842247146459053467817910247592791610279540791250687495146242987047364990395314024986284220141144210725566455182193825593016807454464360921861874224175719856089505310657381471236309558965479165006447285165465693614759205516009675337105884532931825566852412227837484159703684993164765414219540010429103307974116703490850299765743092404237509678653314973281722979119927107567658438584444085941414622880033470897297831827564485590794028825665816944115285546039748947911071125010165560606770080808324081224382190748996764993561931283828441176126727998322958369473713163400347585062629853412147844731293943074685199283436301605742707897414816877321306351297632248678974201763988820926545642671950547503247953798343825926753855662076095944935210885093132822870160687987180552439358034737109562218988575737075524693961432356985288391254449410248883900025763745789863426639711072695608226833206899932282381847134814960778900285711056995232827628674438451018023423302954628989010188631669370524316734009853929121527261658905501245241772018144258163832885062788895883552768481416242142142240363455783786950078250091123082485751206929932211752673116728001373743942291875649905537033359289382154696881898151132559712708063201607434656150355827147219668760998066383594877866655766812181875824320560163004562652415633091885689334543220668637265686614674597306066697022947115559339394625541531061000971083823555963593966712929323867503211699258365011929364137503400972379985396576620514087936285845823794377729044313455732565839875832632583591284671484854621015830115586431294760742164177618345845807992777012617171834129556740311332766690363566013084054697823164898301492199708084372990488536316892099707667527373554261240662485630031955153573327732131771765809972499586546857414169212348195332760649741079019690527003681925162698221665109769540496488570831824152836162108776920953075925340581248935456582935647911260812900339543364056096769956177527618696684577505753232400421417216650499534135194907945159903672472202127679183460696050388111288703716168027291680762863302758899843216144729122871646316499543144536735917349355561530126094638735352931303521219068118727677218587224666387099504261211805880758112948442056174850109687456681033321654234671355631770831357452276922310883967099856757948445729675414310711630878880463741073600964867956543029252444075265510878161202694260640611475188990440085612864396471913844558145868545754936442802232697147233104278478607704975808343754544123090558503873295054183586623386502703178054712103802379417567158835381383393343127561767896130835666297575041395592461010432957762208743589735828394491716760438569110418205620658840362314793739195040709695672145363156711084280737022697624765866783798997201433562915629910666241177288353157414400164083643323901248766542781910368076499480521278810587217110848139813336197030249810239201349604926854236586641828553182386449537337348471943408240617203426009449124505996895969689274085401213053347193091896467504028093901129313551346027677259931443591793000324040050250344384885043424226712612776938519161789765630895368692048590502385071732455616406107400104297786403263767739609031223352314191808481401723867807363547861349772813717813382712923388154726977241492131801136141253039888742224230819601900473684086510599404248988548529363070293563317000289147575828805934018228182799072967543275674558786210105344836949086575602679443554851167878238190565774219557422969845789648339218238498102732824116592302277498377428520886385755827493783796677395584885672642104471321305680171955324038363238512543294190183093480880744752481984708999664643422167635829921887521996765083314556761637246952842813461890282311411180791758956870060459606253136311399159806802284336632800786237881894467635413909023990354125380841009548477880214998357656253659973141950776624922110808604143965571359792825513996724688347510547176588619920680736629334717200518822546526673950997683320344736084489133358623249210144791768089860715565601622970921255019900769173545099999936151257890193766375347386884782387448479654106097842562975372078320086961800732343245335279127050052125708606784424447396433288124379311217572212322960311772663008772586014983045076542850859460360728137481510327680636779300186802290034651564669725763580480685003938769375625079468447727806138957317300868116803070436282278485092834635966710199000252482143769121024723222508374178189252295760007616469240864277053589333157015110585745041636904037826895656026555165715474083813268438210227756223397292286652444523362734979946757795380942505816258006804997497339293032638130407415473233433411344421364577304256910214619573273427587354858645884296432287116105567907981205723645500065527868444448438614829330006598214483160602969170559094055545061419548082855083191791103351074650767608488422682457142399875429197327483067706704350385345506630897697517229114851629225678806400276666177374777651541690423590833933708475946878165561175550417820788526255879637230619149837287087942528373269041225974302402002865578158748131513589723854333481620045065824299123709264012453369554447402051324221158880903056559815320555634278094507351977825232038693440302752187796189738972090607427496592382373445108440819319930061777770193704367535550215178992250120203236927287094474314358021658928793162811326323624278381309021177005611552952522832383446482983735376053590203249684762170052556241250700552980703346653908554132978493308901956461458129860968301325941920616195498467184073067924626213241790274212899370001197943916862814453424646162859700539985639695124582027740965970230891744786524234441999269315612411623265712641529010513551369927749140863816141454175725159632738225829023279444789014681810036635032618141482437213024802972479238210254416231321911786842392521023557592350860781805369034845268881045803084697744492370777409725041148833488078231859469284139378838132901953455836653154122131496857642721089027109603967177212659973036018000652269374643549747507999604836316742325886839117816992468849971274650371294192571989773770428684367864084574240908316751271098438234267639559334917987247485228777896133155545084954876499123567383529964287552537525531859491143937438834650032850206967378514278770109033735197719364443169794625763086543432108695762555325742611737498691983470968408296939581820412546918219319743266796444105110465810889775466800134444789437616263642729029210233708771106291388026780123588233445200845772307478581038262875112667459921224736353272744948112035636060036584745172169988225420395544394135138141647938202689423770940213755649877681810859345539672520488131651350209841118881650084395634130895316362769749739732826920689390139693209727550700616666657665013437164887346430111890277792806273121327315323226306954181215889505759365738727994450826744841118329799985510411954869919301989850010821239393065401206241988629873947233811610134046861594688577825597933996586766104288231972810629401009546931368068298988903699578603253304539485317643050085502830797787710669508434968722377482092780837184368057006386527981777503505355924991078687499630079864069971318339041942064299538588237145210771911904124720853433306830091049127119226461179263647572248629117557467031341772914710575240931282495998428786688533332001731189421192700329792595987744926998451705526180922813191798649327517783010984007100401762718424894739227373942457282152552702148338534071775297952169889643919286792182479729001472840493014226711112745284981264058311982418500757041788312580993758135466476354231607735225507012005760866705457231723500572688987991709464346613681486438856349675536061984641066958192450242624445211260723865591317526153915441518974228897884794888858626886635988866640890123791267263413680145819531620047767945664995629234553609637279361261182992417369246737692196111133448445938716836963752975838882326310404923780844845497912409525693090669202972979381349020192080529361985027191503706163830497737009645547098194545800763174135880035156798910021432293056087677999997328954388852197613946433119124553265474635112146723635624887402300344423075124905802795886274618415541348094886526677888395496080032063150099842861979635259230644385833298076597863743670936735481825488529184144533158255124664217406799740223203108766101529622093967869913164450972883465240254485249047992059675467503891618470454178115825711957304203313603800674443098279708196193410680575504315328484097519729346642644830857529718822126838277761188509218166141932448758124905113020645037727611814081251156322694644285621669373981610095372269643487730044870071051206843311562940969715816628889907708191116460776095045240709333183966511513332662330983479128321024095384866400081082819254362065475563956234266128109181669878868359083421829894155436818629824359951100951122971829936416411017748597201468057919559557906785201790598658122753663752326036980569190644683007584157819222440146526040540249957636324749283931159078394882783610789606185295108352974955817100375953474826452319600523749608734749091318226766634678674589703109850817737761654237904533171599639047884181840490994012802637605832757307489884367920376976476892672452302448965918412283264333792371221060843120890858982663894696967512336566805819733191172519799289437490579449186948616421651988852665597894538408653970688361784251205897517484368749479156465779736950296945386794580117183393596597000136236888423163196660153228620051376613258745054832511267461958808177010469700190359989369208697008751712453869737382096472558189586667034989069392029102517611710400259381935661282325033108812971393347690736311342315742994046656494002607484282633390993709696010912962579287494832219900483374835030001999726694757700343348408931285359525503673651985508585365280289002989294614517401106249813603309609821849391335926024703955961381239572557299734646202152782249844616794423481147022177174114151169125320668488067961027187619258233789757151581616831807193458505188839026305316572479786234624555038834874037040911664114458001629273352039548085991808771804187037905287950038198362162794002955704358499170730220486663410431424879088648463387609258327321428234409049819094861729300877328681792032471397709593184909863900675399932071513022585324240688565845186152677602330940562304130322568896812009229918429069853234622762417292299747679629776395644510897587946278996814441876489627388633007260775804315670684961461553678234646277507826208214210011029826154288000864951436653624783926178872586797209333231798279332949821474854474896028063157596133680870418841053500400302574046033792685833713274511209220563615903394793052241351212524992607160520629949451349796834527319507284740828563408639752862533457097271890798412086796681359386003092164003727347352673016818940451762900322615570228095896482962876361660435460286573180580075336860670803526466686232343585281872532174962289549639451373173638845115641367578793212982250899947950032737671531176247516081925085282333853926406116337240170404582427039834930883255051860811572720781254302639323554855767126214587907126637584852018525927020856716868579712808260619948966518315789554296136805896015703423541898075338721323174585608248630642182447369327732689135656572048694611464915870603201166968742966321422669795365547497103317627455844197439842359459493648403372360820619283155008973652700919422149226687315746591783738444745766782975539227185611396554858249132330436847963691772115421230010819232349250680994407573495206460709658040736505459400647067654026333279987836267555420766589321923097251208806935822621724974129382984413414686903705707536774454078231987339955943300624883690638457814375696520717729835161191153346999490606708061406365066580422665811792165849237409810644513261912768651653356133082444699195087111534884166311379263483912660888699636511919598885273003117637926760777515910292609320826814233524239143184367858671065227031487697785856015163084360584576036617422612644015904134558663257950810710162572348139636077601965873786948774512431387641198817417606695398428619141715872775665011979739064073740954563875431609465411914358440769268727627691717891623031387284138612670350851093953765636282327191614090948323380855902008259237055226823193495883231956035676763945724559135638087972151622594192825680244214112175901370088504086200225262674196558373543489155786989417911822208742743505743064133286478992435575312555296539557150891247947312668306579382908716430127326206508454397363669145164913993280919227191318536632412838782878571646228338267756879387226618326284213664964030961184390976042812075377409147758501088401977402556153234207908857497491375555327549297779590157325231410478160351553059384829336585161388735294710516415476258575191647253874828976506895540412869887891158911001229733398250222316554477420990398596470393719239132943217157004489570792099213763697041159068016718461464802912615617896070371443065909994782011588963356763446629029150107368979497534455007824047204403420641538199304930406077370603811183260631017659266875409151207092511094218679295245746199607971488226282942610206142201211434850144711094578416071253335359025893202453113160321626899111423843223771344966912125253397221792115691672937757377398411569077417499986849283138906357809694790130495051550520406451596133285947946411735618558543732790055152815434007614429279500779585603816524003139152072517572166608212923601661400954471316511085238019317288948815993409746340353470621625915564206305002119026597072812517852441525301567422045281467947236390446160686988546745949333511396956608702669108332839062570604695023681264383479548423784513868668053501818627014026474318180792976443709902922018045234249791675792772007636712438132937042230954994132219070094170734970487021134012353137306407778582843351987098116627254712908739192427022447074857780504825370693748260505579604958697631640730348549694412758452389076531259695809414439473197781623840362252387281459594072767813174282460401801532041249633303013945641572857518264413918075724803684250838952963039909538842609131880557735729155977568371886073936801442025323448234977442865269320832759889704741169775281219594758194523461938647105019942759564980694648764106875564607040332383707493956636195190075504695395600343186203118749981158575583989934663366949078522738772860831469977533929235492246719236684034817284987361560937203319753339875901267785946943640806270261312916984621054665184761667619761461502604281505883737320499117348265354328253225968841948258032131226871849146178828481598716490060745671657880851807939099825862634822379604456795114063247144328092349049229896085815787757530540005583449099103480586490973334886258809611546957959436977847179746710759397430404004844716960663812952577817544561923086413219660629897175705161486673553584524346707962190628388255672026667485963899699716931859025357202590405022143688621034355571193472717492320922758716105049426860313966566511904624006788354496627588458247223840123427461637816355669360552382886729237238879974275249969425418170927696455641528454157829794464373888394768803874415057789831250197639165000159934170153105360448062526398486130994254561299204016396116908307753777410570610261856723593188634854789816406340494850552056267643520135097439814535331149795888851262992672769502363703539491715677042710359925477643169712150390398657355679700259036352158634441817272943636992413860662376107793174636212144265299546743824834293650925553420222010653155208991519609947462019123043008804585696667616697854407024071117975694257194576006858494208052240106974080180580585166385812397742880143601294518188592665059233461834064825127280992957196283142491707093609120444118072810297864584632515516091345017733972487917597830915687823844587946450245122951118686482299013169000543088016199054208963789380460074408472546109638995422126326697628531619213423071779611275140462192698846083414427344403647147120346308974407037355390278216885126826975255317198282820565331379218786532580498871673679576591554559717907351024003282781069684610767960320081473915184076583481001586532295563943134861009831805304225560326040148980745172487231704373998214513657694674939081469540182157658564816107158780118778040991062188664265719984918573923860457934865701382320541760557985025962120469764780242326144273655775786980906268535885893804928584138443032030208842452596066840054187539273481233872726409933645674078621260386036317242744274730455996664143692552644724328006484880357704324871900655194736419929038430919197524921858827406171258837829294043425291718168502572894005439705100094361864995473918098774849344212104509324497191116669081149809664635148610002904013168369551186504982702460386210859293740711835666995242542425353075233932495912678687512465591129771486557704775676100015811876549218183549569661236219193543991328113966979585121889844051966915187717240893743153474985339362410158384474748826271582857096628641965588098560000459499529439636098281854095227912166791630692417874944366409489691427236626169795343529727510259089648144646951722470143246708369339136640765369444387847983127091120039651403260422803439323826859258568686127211736219181736065002168039668007057821605178825443730237073804554293435877554507051324627859692701946265615626752031580426743511840950565106729141882417179813730447070746569770005056433013716804146716667658858918681573940136121568753745394483656326592482438425875088011705633863300189808873426754363856345339590496857638449393352926916592752475764931097790681541530099654075899188755223264959926094106541608348599659168520099021258848886391893997735091933685567460921243576302631921063020445080264177069582947027214943885235170517152800585809253553685158771903348966869196305504485278998725482555529298537780989311359819274761661197680946678559642003467789208941062785306033421947601637124004626823240657819601381801150559527169158860066439479651790820530997882089172945460426843558339643447914340433270737866590038824827084830239764368809980222998601545900736967213669003480236776490803704303017765397446979927924231121441402753422939388459851947478470897339384738106452572575043776698420873726767937671881024961067484011463468395118476468506049385652650575374172946976363796840659055693154524270114962636992994067015574115846061471992322090935247379432998992052117417385572320347117509884842042078271908023088774153771601045955381936744829631987469617058272963984558722946118012041033565183216084304758206417451566291353780104194229091035079516278585782227561096534621612133320463300217810500870316657195568203257011028012768639043469617567506395604552332785865514737503398293135019581498617249390576745468458114310161445450231781298128801077412137777802677821813777012677037265665707765203201485936183760529778274686509651959072654262256056270221966277225859009985047698920433302004331282059989159401342522975974008751673666509670297281853296928391529029546874935703171759380182707521055192309708646687056063173228300936024999494414582550845833491665584818107232455702545410465760992340927524674084800369971816942887946986709273314682733652428462618833106165424754003470081175974976482533651159794843355751766175820821922804311812885716729626635199818596515953432057758627090186786748818452132698317192283430383694982690974260321426301087133836365125579627914752524906150963069531723305606215170390758706565504799269332912785664948829208458977244841844080740394873578003578332731691791493429239054040621031835168447528532978317343302964662301216693418578930829218604558297512487331837276562754650146681214522410533729935860272019809059439453539005202696633990290221154979785735193961895917876478759812380865612409067222814079490064529949357336243473029561991723701907625409924751768991348726725797741098024279142536844517952579586450425410835364856203531344320910702650879841281627540964515801198880710958212474776895075904985215344667759003754941251763028516376130021372489342855808044613378549922459545816469821548506473898785663491803713963748886341817136732524941436171517523069300415496208580703465931576330571624245770480866153039251300519405893542683512985377289575796904716440375482901797843739403161134934120647035043694536912197777248405815271980275922252577629228437558949674487004767410128566543337195443657073498079112625356541492420859829544789407438268856684040040744954266154494302181674501416067503729709619248687031708055848798194967292712492887153750822137513364026115878809551552627306908812416993866806506278772326630044868283289576399112947468962706440373874797089183733300814063276463914330934555560008777689115791895348898091631901542046578212503036438737472392272814255126805558770883540017045175107416137665684617886691334920203170987186060618704652220415223511287991427654811530780573077824909717029769505241240174892600685548002270201669458731165446907407352814799213780590625542238708326497831492036586359391705437413039700236301156305714422811538792867243763677752446496609614384636086745534085835709843651690950273067039652968921460926100788286795833867159766853385203897493995028411678520628372565988574240201154515993185575577241600003995670993127526830970666816526683571433107364115453395581611735001377658593945073266523760874978041657621763217054858408083839813840080304868924396271556076108451200709028077316052354581214625411497558222388793833953521948591639800451634313555840935886869067460687442502275200126755518170041865620307551878801535127077263415617742600543427581499855414205649706290221724671024848228596845063431192751178883922884377253759284811699960689321823073125067915652850282557287730927416701172826208043197298717585436816219721697599512581437026514390269633562036297572474808588549158400247213737774616879047465055202495860162048676595257027450579415828331328380734816230928691087254605495084254753497892093168267017609228980188821274207328947399513271003526718284563189577362586863986923678454117182134553313961402835558990993935775676025955672106053142898072211829713971007956852471401806053094592414212077564457632052403876274141549232538886418573262459831737747676872383666509893841375953833144480140659464892619310711421563348688274536874261060782872502479421000933539485230674837730774758410648590619620837892689327081208767868403155010609858262307482375593035036918061385911203799166480262461615052576864178556297152569235633292866562752932877731076742341448695806302190167335215209810336688340327081166203263289750109267788649911488741730250036518998073048967424670923917810209093517820166336086905909670325029025231429151575578668362479410809502372653028926441716097670852036759492361762927407447264433616289462475132550658208610855456166404571834294104312992704383692125330154817196370760605619845606652832347477474964635127490773054854586788770822933748133128931340466051973433298220883268572321424991583051969011177684808315990592171907972652828408697486931252722741720583997586412911817794648079478552086584785777311097117274518590499208990338171874800385232181303817318091366985584599923175191276548748226708943456818543669446148228633260620981304996876325140904508770348854761221858820610729016714987185020942478606765428245935926027088844148480223135090047807752352731668453052638338679537648850124460009809285690840689356266124073323451578592250315727221945342827137323845880778912577960002890979197920837468003018666640359322791646528762632597644026051312118455489901018289152534177738051415240727980324513578352891316906295494642240850530532386307339916737266677983313693457242648712311856538177401678588560710815616347963029588778009745474479437594587883510880646724938226499711834024148657519982557518132555344322328787750190590899096355860590498248405314270480500597201541138024181652515395106594415197626557214561435257973174789611364239464423030510290154860264109592187557722148121594611158110401613763320959475181291434650732296720463650983171601093065188068031235029798050334674884810274393210885963645782656713491932798425349652664710326110756238541633586476690815122208798466918678669197968316218955893195845714366510664541186385428071890521208728321807593588829689785626118208127757353666297465547455220492722622036756411645963984694897810971367102376313444685071235947411306522903855710582131774750043397978272679223874306608830150446254356754978199701016826053066639731468891372021883964754792361300968839834462578329122938322343838487582833948352193060211534264683773547321605740375654427306481303358136236663546610320354835131471381251236025387302767182962346334900593545582422433613843776128012365645041709191615069726350996859602007683291384962670485228523899444020982006733900068527834220867735701478165302947307810389716288176422663460234669260457357223951020348638786240176719932557642264650317161056276279689325177481972825132429807113254032326309775651543984986577415372596357032221648380412840973660556676920518356468587395859946742101821277590343530316385309836019010948114453357196679489325953096002211979171244184138594730118455331210221333892874766025217295811054254188621868206264769178250163397192664086141345965250658175374873815183748383035397461576798231673767962977821270551890855325425988612695228320800264214306179759916902693116190905577110121604608717587553258283530801655679747556049503435541229030270565670942296568202960022295196941597543071553709438374679422269494849584482419515354325238384793101558094174579978942155904203413071340163692072906186987738353034132856962826235549126986491286573282349788507585269098590894167042666392075417654449628598810173531527903328659165232607616739581953473344306052525513113373148010601921012263699943714109267092823083553090832083407601599735858232191948669598774806309037919191248037824702488225243005324379243253316608023530144479241411482782363013941942750561628201720653646288204775437384184004467562022344284816831497080273167890003745840554494765826780194396264850908000712398526769140837598904297936402156796968145797012747666656390236868406343787926325943580158657404589131716372198931960235278361038101647439826139497827747466061673695249345202362508172175101838699653150417273882208511254701143946688182762595775083528976632911019732001996349239842232973297863901992775325617483659279474499910674953973256121521295663114704790743637382331383514528138137949476448857398550888711195645880159846969331193934203100169937346849063497308947658398204006490328941754453564071851224133244015175697381465951624522895666675149749671948397196393446808165419506260414385749736052452711356181792529498241598253492052928316350319589877805769510986061811815738353532735354372414371074444859761526837102800508387468677992669145166276631014624925537240644172276129901413470689368272360246887081113316464694063996853853777042113779614368202690402494572047022069623939419838935826893061572345677445263176406656249705901134329342010948932596288039749835793799272022985321782571995934177179548576115257256343745069804637879382960364867206713233678471888937718580828643234359792942482185782760303082634349829902971481205822360613926708551478741788634249208074370412700230632375335411310123317009796455793396761557416131881034465553610905118451553900260589592016620235149807199331164942543740654924451034714357015670552241132567275685359287778324938895949022666097220921941309323603694008357344507850010865179058845668531424048485204002246842448223996852010130956297664819317315497045212929523882074573216544524990960824850148222655464596985193356611283813558089999810474585356817151446138581283625302625450594147816758039939302327786176242835661501832497048245198039958012710995378329438860743443932097624878772714299936420854876418188998369586096913062311361866957392357524530691115454593079122539585372536434759824853376426434996048868732469567865442727509326077248397689432090651511190299321700873546739087467360169887863858327966613347617445222409136659705538460044285045143792773606239739035910177570628237591710661461797328871136918829780133149934078753423045863697139705382480403769433339005236302760314956558852941757315540000713071585040192852783403582113391987486695660854561222652638812683938356073638824125422658777157778618208374398146326446975490208241408385618786462868873773455821368966230541836463816297463357992009847496584107391912170444818124488354790652387337891675858088158495680094362135975949138874075745768184038260685206252903548543705126438483472799672651875980337599265164244197647378998448568948753742149340568559668624107861756088257825989792469647075458425475399253925082220676999873253920328244633540223501335694896193150675700553309684082070487856875142497879688129743845292639582776497736528587576057743829364062848244916664574859171995517019933473139647885749867233414845094048467325541848812090774411905639353577103325731191874018985001378575826107926952158444762945255211421546598813900746884177853214044792855985090302269178583761841777334438256268616920089227251788047822235879731264420801511560873713683068301741093896110171821294034746809418538349878433376940536177632151343268162004898228641369201593453376097146268788927328690810329421205847833425838977873686382851083823042694726042449872861439160202108916989082766596021047436714545545961405819432099088636293956165806056837359509933034952895355728733714912442199363426162648636454112866304647964268044914494058431340187679063618602109936629463638290756479217448693845889870665802801349296453991502664975069178869644027689024527173296595346304214675785206699675408402743892697819439807812133143762017053593538716349530253192455409826507392634867618588779443153418209900596830759817876398263484303658771647863600178637831239097552871249579455991691267024511090529828030280368563312285754018985106920758648331291514201035331127205620677860492070505095079663139260535920480462544871195263578575239022898085518952709736105492369741221966715468934534735868150144373261632788307863732167174986868750187861153976620213282005901096029311394208782025140951384993247596067202625754870612835639351399154748766848947769670261070750902933123238899117547208709950001035361182123012819101661421279575524350040582194298715739317528830362855010548406334384509896575058370591990310977126762458825087441360019096913362818066032152610744884157541804040632140476481235844233862696139071459074306816152119455672738090827366547396492874823116469221357109683631313024937712657433806481285142454373330872341523547216890071546877586138210281894543119503760516618985076369417034926573477686246309497225999153941063618387190163999093342199147183545307604255689809137483381307617715744902839280306479066484120531818488651451977011005933273587762120084766866790717587982860120723163822202016431780956303299495352049663016088589914127905744067875266903039029102482416554637792505346338060327015451271603569339216000246272412061797106416641523099170845889299161140672894421785470287029680845059928894167377374801843572586187151900978823892316046733190785756258249100757752046357645754639105189782627675921873923299749625030575232028014029333506021052327716793936266339985543145524304389141334298301640261546121114160621328487107358477806651642145656462620781747712645548306166995051542965051676547447475490294227959012374459957638663949448579393619799254664531712020850720459750819818225526524878948228448870197069018261789220653385912704796718128011446417512037370367876980141623844203727226035106871985105587809968729481013911962590617783982124292524982742318434847804015673632994323662871173951059040258087436926771170620344249151315763019405559615156812439699479447812671134937657205286490383565348841311967625096177090048474743427170354984092626290025195276011912172076386826437071331415746603732684302429165787845075763005688290365271660179057554754297012819106911564785453178547272589410361960920311907105075434728794663171425991520362422484330670324821109343558034820128838583030962056638394181004403588783261218537424387805988181436264517449735585115752684085282872051234062260529184414597271751771880328703443629483644530315166646966256685737586628869499448543095526416424951208500386298442637804422633330323366035778160744333571867371853719424945212719444586871627545399968449672284776623004440774953280935531349894997561323952389938082323271044814780118744149115827095914783005897310211508756646281312343275231031743448857589284332309118957879816299939386022976087096361014532818659136063613093433830319218214357074506568546094801084958492108259844923219327681390606571129636390575972106367097973956426701409868507047720290676110029843027253827791869454840151499250721561177062705403664382574840851180453722294056553752773580624409240293771659674284006924950177567146348215830642695974657335546592830574685742951779686064546878219718021597492377855986105121522850096511128229407660449160625602030189342026063305753908751471905339637693292436749647862052469840437505521304582056933518389340249529002637842426297928902350439285090096560419742922335280242643796578629359675721238966888388649749024716406366430673172066487542335421813046911746245686929270083313451947184136330937306759683848360936169449502032957501825947658271307912650906457983283364055736252584881264621437356255055765957251705927132878725453068771856209641528152443055745048650015847750244395942926200152842081845242759472100206700759156672666873211523552313489888581670909094568488806348079295110802529747981271603659093118339058981246485133075919213981496247307782325211041851242343229840880727563947531474826292337054047236783053520753334021761989831784889182238405012125921536873539106891133887108901257065616361167410195341466097323029975688733524042147363450074134026010608046687856460610555928251951246488258892242026303843207506688626486905775982263749213553914397150121241605871148618996456430153597709148518836621415067867904048852145116496454751493134475765238826345736324920557491718744607677586617091000255972892503337416893606470886824234259736376310980023571214978469691999239016751679813358883554263268429974137129944269971224670287059386254335522594157900981710341003276288573396101086638245156511799468922645812498621686737311101291534681246723712180406911107998111938663655943784498872339828883169329405042040224567273983549675997931881480205656440921359845658428891993215349041702244172367555624068013715962265761290040001936798705651797238485936550126404467607906722567769765713548501190515853764252366916955053905232368628065636047738070713319875990756982621671253243042804652550891401043786621929801236941942201297603679499671119630675374794640351852184400877628765365086353988417837410943070951965213345864234841088093398746132579086406339401799200362997998905755541720313988976303861924210217892850612469934056821058336894568773551624073623263829050030128849485949144818518828965674384346059060095212546558880197338029358560525284586721302355877106164652425182643430176856840918666373877591917378163146712159026906063486053611223559958976981612845503492025656701389724317275227325057325996349166884151341938661844824349186162374406074787734354472060549068735800556613428551059485555230856276856365904161519271000536227362176644505512503492161731986317807395347634165017032105188495730312674477712255151635818434236541718977085582305421998778727461317609874945798695730905790731375354064688227043247767583411749616124086610842938924020787267714419205115826175004955864170689857669231276935065739331377614312317062062558347353405983189434800373530281781421632501474357970190236167794629433503036564865275104664596534524737200500645725120078513914764962411077550353548702422457687112647751401286010193592322598586443860306936267272488947233293189631872498584181708126218579353227228460925337218520402671619517292626827074615383612972123195940430546858270637608737548777846659081822229568900163871084909964278571999023382913284771734121580291284720830630856838737552332688538030017639433366021389451361059719796728555371800384446573533868918720087213118330133611483314015284625579538807202016603371779682824004077934442221513782193830343205541061901019043960531487573902113116081618683824990341236208285963717125542794968593233208227114026089140096515051796942671228087773017005355382504678839598531308637314033517948342151744358477917745461852313988443042880307985364870805011723618140772195708451154471950897567641445861439553219631105811469700742750710487395780489222626432231640839317496512855610625416384174363659591974564947451170678973227317014477921371761169966713818469248020451699729913481096227331292620256615309407122834259457796766180974649764752530718812512830672117202132747841538629760115956468048715942081116118958864391546977059624957195950713700991813189212815137027511977194381756866128339457827877617185611440241444508126237820308413822406286953467784324877553924069537593312217800112794495095399610494843541968149847784376540347520489791951524136601107392110825236599124854620550728956521241742209262101517585017422361563483491186073909854477369725218991734567837361660122263911135734480422444550436407268075737613617621716466591087182693245661541253731486785628853168082785589575798393684517744329172905299394896101750782343699552672607761649638339946942046962251069254819289141700178104339622151189045397363650714016526602311340953389671956758075840481941306014158802952942993184115659540421403870600900211515676689143914341806368651735565858331816541730460336117693111613889903523662939179860398232859096819607653042545776547194732143189174625078315662072303474486571362833507266368303651126886786746425392461452497701429286815103745664497877418618666048120525439883092576090582930059181499027462887190856598546804077220418162682257867672224598463598925031941134339105358460718138384872294189199805822194904600192377655787407108582903204966955445217359515123812911145367824565509604128148919891829578345444588590845078404098104123194608259813984025737013807652814397279658388741919607053999660526060362806513540749757787200923818567325901152292463052112555251756816778670961387783100966408104165947803372499987712279399048218604400858536249302588582146026437091672943255654528588846818987510229148730075468138868916894885758019770107063119364513337991447251367957034269948023423934814667594844347855456854852798229109206976363956898571201517807091092919708891744461234210604013131797621831905552218904548492749345646475879632255375229452871028788635224131215225067059674442535439277021134022509107291053677777809109462210847265833959737479890920045632736158781668468491131463003522569989754632639101982229916577034248494080756265268940532200232583377937969740941446540127415554492449027133366938895154532133844803376593681782618646674252038012032579427689071505676864049819388205027190194737825898169690875621958077191113251412719851216903697516747435853497795567915686924930909961561389902937405875932988789386565746864515364726462072777860527700948725004937498174957067229804471106627532507306311708403502444384463072854071940248476299564448993850713227153524426623640814390317670616709890756914004039031956624755199685437843584480593388495631177953875852803214121532278650123201728483635383958149884882891138197091926116840745472606534112182428531280677529428688240098853072118824713876327401943297257764498843244747310173284897744030889130970698089206520976914702185334733860162789433812881353847676252700196961772524948820697921332053557023991696654803772350453660269756964374741800795338625830894259263371413499454092416843525437652236501619092537911726087260943696543913505968396051385236302607156463807311929621535822772932529364259974316521556774299560979611160984761840926679932718992793829872923593519392976436177038862140572990331655051100210019562446118705098859658792120140581317578161184116208410133883892504142698197744583839135704794249069023193887362041811574207115169642582403897739264586652818846765943170260382543114332830558069846305707498452656874033357082266068297542263421257623501610258677113369795363922157477272623295650362945363255770499994261475991670056348873377291810896104805777928538964607597365327339480836299755114616798955358537218915775750490014252095334922219298703352690198646764560795051314175695331516147112142909490951785715359067931920461691750509958129363117859966215692651688255973617484840852398807769320604286289509248860472514128451602420808444146154347221453595190145573868417785400043694629275596232023155734586561584424581919720085395919103883334180345287263732425807497668701765763134930314044675639621464945115572339531812008849553072544522668414746288072977644919688685197521451927245354757219245747490756970561157057299740562609094316569587314227030975532271554259183924661808294614487243313115225396779424977423333743472718941538916715065876491454914306200728034429062230424478882628455581755372207873802940954819596742036291997548660845427045123896675205044159949169980624322438756751259710684405225300988106885061811836143436977571882722439388461825634958352586054492141253806625759380619651489758252847413208334016479387404514034621426503106874165089335211626466943566886464544729184650392784228118796140162589969941406021850873600159638872386907660631673857558127602252582535028311633055681548858589058059160336407037774270883928555912596836095683548666137816877067580121570026954014003072453521943716920500064727483552816247882658149495837103119407135483386306797168120926072158704686881049620940349582048917060750520825575006493915928868481733876891383013882625973263560656564664701337197524194489076724565663593926616078311253311982500288239482286047063048464149052516701473864614901092643497696911002871080743926354402986841286900547401746472076663647563735382831290069262795936810898867487620233030102264385315306716746553073366480959849207245003931486700329960935549879568846362763658400824719350263734658899089879705711120246316829540583893357380078925390158354666648865011991218480643192080794256272107743114471839383034540067769104815754560774008751151870979756493684783062819112812575482109663725634212442752174992101561821532483461506485405003827942003350945534387372849857976004838617804993996244385575489953623508879921757434550628971667757138562966161622813561648628266121377953970287624719906128311526504251111355592735782052702804452651202578726689044188566889441344928270654834273740392754648970862368071057832864038551768798302137254231158835896187145516896673763269039257971217424022334335705978449083964145341236676199902088519560561974935273316178157037558941918715375574403661085763989206010376529613160082116250088350254289551047274006472144725252392424314934529174086922767037657402292149604053599482050462677413282917499013552003023214006718865770177457879434009683599349834376724191324644138911195643384082838972105744422377548585474244271014578029755557006697546350883319197495566043141245868577144069501852797785843136251055025628620677612082935127469172057154603629709276545450442706906761820195343487193093100551444870710829417136451376410218661419416895598728119629085196537005267551962799806885201931591346827727471967619272135127919829874001809876464892605961467129408845925186216438061401980709165270614693674922295943734354889887474921780423048184781233049950026910645830119711372843587507291063020138806326369516416445854122558200306331600160366665531401517198280472678514214802172510746216680031824962283751395372079994422386443182954974516306311406326596210021762043040084380603744321981739608672374646637603439762110282396058184603788929679347452986796314974608364092274057575802203889314884061652545017633082745760995368617158121312790690280008914532956662328814107276638255190756147718720111365219185460235631979472296777988545232138574673943050596198286983391290119905944332694268448013686727818760804747254960094569573234647230667188701427901561184115017643802288974978604041416968872535015331621926938653133321812309082192616063602576714503138493818424553074498409601398045049567072096031203601295284104719779768151776211076060949329579579969002390200312715663180390797904339490171653946173835236909548927057953532323965403491413314696146898828866617761249721527489522519311736877877250302042847978358452375327955051235257033849585105027851050272888551204240552069259619137576592520068381649743988869368588239773358692579997925871248607440225540056467902004457243180627294458541478793184425699251296935531226569615803039796184470189731945358577175214973047195587460179900323491247052693535975840734250443193009640831899294910582725022184726457597286050796738798127049700685209312329398769468442437059844512096357222453993771381251259730242244872901741103130444289792026192624286864656894779345026399298457646381651004828723848487646092316700567876047527767705640090256024711439333703318575788233142890865646652688968575528949962184112265613754355681070753537846159833128973504125601312084200403958122842282066216186811829730355882932373414233960515271958376788818179316300014633123411070519873696847141606826364445451568863249042268433350196659637306011688968014108293159062165027976923081508048603202309274759153985932277179446767618024957132519610273930882585394291715136991140223803321742961501563618630585063926823419816733159780460261640885216318874389697897675093643040041980816908284026806565617216886425396389117936734209982786318479668639479234668076417229750567134480865221024181837370367642366950047138206528945194353922426612074912593694094293326060080926897485364238986095158777114067616108559497672373795829458107699956833359396108501490132225821009014902754270885556387137772950678346246153098219934572998185635820387275791373777561944272699007885083660746244061842503100564863592525048406338404672179890601366231545269030603690608587725306070908866159164103096337705827412243855899369559736029703896795182249613478311096054543208018441233836480928898219975732708602256119724498800809859566443619455565693112351948220830269337283259509041987779838828555985564650460308028571463485652817266146171680552781458537702800484288344123130701685732871516475613572732751995389139625736652181019474134159259172419566665536227642502154696214570375373618551304549666752199705813467216595933941104910643474619397753738200470706505493512884314153598786717127909766174653192724373929535080102393050346954677473649830250537666136021969209204024341456276381781136173894919006739410212929240517428698910161119493590679625938362035816742277735042981179462848419805483941748042655024029010714650375439221635109318473572194519011860514495383539251672147292981837091696931465778986763541460370674582509833783253041800315471422972798842240943640428304447961196987102184325812735280971296469325432358138308910011046095906485149360387950005591943187095288719033110274100287307078180439200695067340518280781597244905903280073481441212655513360361410681083805364390205379298857536279780674696601933207421339589583994098596665117564167228515300272595957207037692438514688760971033329230285395450104678467393279436043154305852059410905185240772713946360235932647173085189267795069435470133707925533122664510248087755223797261000960729322688108475225828971736621782508102517138656782432486626170777968281598241947077591824593367842637332195580569958664932566082302599683808549744984176308438300348817571239947872205870125283439019772065895806754947075078309772501990661353555654472007177448710560857751117568712483884820316790237294596945763136972045772623335372873578671829282381465487975142103952036294759080882069451082321290967831161097219608932652581678451380287409559242192433875861440092917528986615593795310974783768717620547505331337913774669751674938229999956444039823734690124797259662939613641367747391375082160589365101347103564633919913831365537171672949035981780397181559134177889352067305690713434202563621683381195349759333379712783635781129347882859010003095844932973842465006836691843986852473749671213800039737233890907346127224881566372722644671136203490370848859952041234118558058248142916525005774087691694510627576871060387102939222798219772604596155742755839990463215148308842400634395543468417070104923316002829258972068205032265922249439030061187870564137286918801586875948305485436053971970122299825208173512170598177223287186907502288892740634461684840205315327905254105272352906071139983711009047702753012045932035404731915704686993580006960109557266914347136051680839724224776789394626881439172390139332528421861449741963018149573422853293207423864821807223565982008031714942517135262791379388142569135154328236240006932904623547288848402996869422044549510525440065109824862151604810596742855036732548737380953040675483242235666799342464043102723930298796758815798426154772192090309006903786571870183842338856519656430192486923255798255147831933470046675842742170076846733508063734322597963426525196885021725991937787127258586487427061637516168943344513007315813688850433678985862326703728852696993310421112888669241889463876123472678173204670890439562745247138695575613597410453872189972515875488135243701532590336821721432355515613416584196924209211633668300019119260878914950994569993595694038165359725802477012306670288869892030475779798204292075140927651081572553931210471057522416883012437580783364575299257010448879663378994569706085991835916992361664016520359992672669066044880352095708375902508422882197371788387658164943993463525998100072724728174678537153148619648956551412229098173006546183356454437314722186232073712807710319881332116828442655668541501546429454285817531330828489512725659653496939338698191523358780683003385182025723730273024820377817788881138021368601029980242936249956073180613186130430510142803587927639282039788920201266395145229257555008339586380259635959887989236839787666826796715799821341131109510137497244539254403337245993996731163071467894389830857964716058597919450553446370504088428782432327208150801987124163690555091706173438017405613901198071047519890086558790989824752772270966087310943274162024325111883817411890835809965590021347957869489659767102682645918245525682688525799325417071329406214375097067565156692843236270311592682164742450451103107571857585087234129534337927734954220958926584292927956612136400712079680090167839003020916853297938443063633587465064318198223950757815028943781137029497105822692689918529183788048714754688910184350543286889887615040547228054380797621682659478959984880472303919571553815593956547366819287297992446316857635306524994053078695502065410750244739712834222734883343738907121516539529457941762327710480658466798512333739150951361322267473682852749597667836032875527781634827821095099519739226711092105530190788681440870358242910607594345804039711364418945557609242458376728151730140494210509480318162309441072407887333566035457685575255907341344936700420609118564015535373829174808776646097989763167207088956845602572717415940008663695815269053366034015748261050487469190288751089718159613953408083271352942710506366316840616336646402368580856853108214869853474904388020060303560683440809098803459536180512128016823812635868627019677327778041336903437948805435480089028978452891049563505744331990989662759448480033783423082018264701092730784509053972994962002785888457063337050325185325571297043652942197692847997017836491694857089281966568535879825380549984383251060782098075144916390480308542648648420115349851242328356104614720316757327529587523883154115684638311618402324299378221567734629723713129469732519753438807997370242584728273880930687373146968022253038557235994316265901114185247072537561595981642520179623231029062708238513109173015266760532604624542277065754588954636990565299205990206519958824742051465323281484899090776887423265307092901022249462562107407481040058595057734517410767341953584134932301165973611375430304328400364563786015442211216770418250369386070706523637264134482970972716939688681656042136849710099313622287462428948645691439155456413406532121278979474767045215900841733356169247960575206374243694348414593673840081967920333958382310770206978775503995422421387040678754504980223158311133298227169278385659645310565751857873899844508767211600831520802165123624324639717228915635467043787229081075921908711102760696013338083446255434786141213169531447355399457508007785377393321909448140917591297344806809147251461193802935735138132468226233359335098880404251998098531109925416295020971067600650042685769016756320951642218810846319470662959764355689408317369854255563189410365097333037936473560247332071378521397779707053508688225209798700077281992544460951352664679414091495254622352930639672140106162409506065710905918282726103085759376546153744007352504669705744548315991008091566819294457026279509423057529022432044982973501828029651670685497605704140672070417661265057391150559280459025894874105719877051056685968438922085143033055398234429008135483383958302551817114347007157643410196955321612870448348501871850130966104784018094678528378570303929839309690864299659583260754296217595991162316045036322927720505135996566417382606856628460975908371043791672437336667077394060876678925812986581840870083525972879826899417499474324402827749469841462490841383329331942834080369148486832187744622966066979710878828663925190483996698986355860409655707227480411431980669676320409627556837799984986076723070664709638260065934008603934935069792125994236700470448491007615580672181358635619049906669280415848863498231504111320721004445781463599223277752428886096474414611183954123531350976799645105239768940728359337876297324566895985987679163969188192893210313565103191145747507270707028497914382171911558533702089675872654658723298487780399414079487099522734158956234021552636791567660528424962749550420661883362896538090149278029499324750693838701712337452650480531978817495010847380809996373889053825048980210121072996949890065794979425998014289408830064475335215993019783046810290001078225032717046351154678131704460475036437728879627520608194225836982719798870347828832614477579125910019083414482155513518639448036576374031357943737924226026997363153066560017565856518569074366208292945827709501811236209528970219351260636882711970870134612581951498223938897482953661417172103924520118543664014882913321672941485261610116760765600875597151109309958483375944938787172500480305445044834762911469943804853582286170990039126001492074183353393895858798991705405401638288561125743792457955050497341798054599169130971331440367402943264420516012088176895559147858269172896012196361661313821616535606635179332139633582324208666990881305555982881503907320017271981036268352672765777167461154923292595626681898736339784785324220890989854259071114684104879971933138196167293251278269334426587517728867796968655672969240999412275926261989177542996217083319280579775070334247010699113494712032917107134587914130005089385019291958354341755677765772528224621284364700454534313531505844679121139905023235405454775487342610316004431475386543027359732672307056988069883477979755958863907067770644396634121653335041062739888305886181705468008821974518586483501101912367232117846470162236378452959559595345979294601549277810770805448573574867849217812765871150787024405862066411268198769683526109177260781681888373933519748097252624869507542545278600336723952459917064509885687915276425986129998870686748113831793640511445899167015730763443039613719020340552717140245233434900486628855890770130715826540461971395533770658628906405124598218353103326056359654409528441314246957847599892688632650764863083412912350710300497587023388862595613509742900284289263102199326849139057712760153318746244824439364389170610938187661154449305543203021648223720223939172119033673549543512720873077545061809746940288973760052034635393756364378475721370323643771291531035213057701849629693255463273389261570555572318216901009155354399292011826006825783472419716196478685427150464532399649342719402831298761397269762893839221650654923168340529157334493077889190337255765028218949265109385462044353105595559474295868523845456765170111843559934326577368761002538721650838769560679096292080833614745271180289464106122772915598678272215618006253926497551864047228162013846736796256267858146876053288280696417750776370897006655508068878978188354462415369339046466750370465397170893074253734808988154015801218459798962077420693495317948442146302535126213985995791945918264851032045132143046488107549515246522493319522529740325931708533333971153343605932505122641768723133158182869997089822510283807694616563384418343792453898434426021126151560099545538207440721793227641619238246925189980003041965974542738086827669417495228933927695637594970552003761102212863179325440252515175516772604057753659302706795504979321617916910699739679809518655931092665548847233198480262474628649177571174290898436135798940206683379977861651231945996318255157498865110043889701126664950272028507766454447671179311648345478290757856107059394109935380103630589471591655406233822275073247167151581065277886846298863984959455945162504402000085045359293179762450421459994195107231877670436014519559287719784326958473508532871135146857198452599805344084708594012927138547992167428227570156023263765083752654778968398228902425019716025399806225111056521171302620302538056498101473620730321313775913213326365520724705884276851109178564263176920335372318550289141176658006435186923629596849350076694808549865294531365901262797057839802594961323035135274375701439693203540894930265151281428548637844686896716265536535359763626814353265182172558451437742124675358810685972037847317241725682390896001364830815693736445403954740101253134972403385278094043577911701523239195764565257635701996044759798692729073594191328731710046290888393096695052552921201802338084375107458084076200316581061222322479639750519416948316406174546447848080934038930237796916606400644747315537487096451892005678368482536538889898816951740920781303293775421170068751410285717137153517546827816431565809427996429820557402818791302665806084253432526263751364007770935397060027294564540166779644968981187907293786298187029107566376357661011799860631210551940594547805726247885317258602531879693014000813342916797327946754862058986825383192125590998740877868340780188774988933214349221633894362115671045794949368481474445552338245334929838820837874947602046677423454013356131204244505860336107868175492574606449469758874614287391255705697731331734988382889828470395146687622736433790838659927357799568197670275390307597150487903225756980887667889670378793085675658795609100680289587147297464817101869480429508711013822574962560571619626150156626384669391218536682424020656564402850082184695749415926078493418522690767271054181248575534582099982533114383866155570549457379215301308279434939320504679480756948248761010518936230837149834449089803707099386278522296697013825390418619768477897037827137678080990316315089583140184194999959036573808642139751495571725168404230783433253852939887838626090297179961448850884367550586079980264296898305137039599529449699543805091689355198741166347074224474735599095594183442840818555734388232780152041336951425237449648056247764628415135017334445054844934206621718576579867595046618795459524433946958221202101519218114258186879934187376921509497775368211411991990968839388304595145384569800972375596070539700212014697059922227351065101182759427451250216968889726303297199570918286310943768859389810303831732322922240720959707880936014072684177286699252804947378769427347153874151235101547843818188230257109034778153644312155604667282047613256098056324051091198760130863043265717827827196815754845858862510590459406420849924537010320136653166334513952788044980222937985150440726264811070775832368660532459306742114048401101429318355546226230712699280902456207015126433912349891339899034294029479652677426926813104339534515419248282340797686979283656547520210045166742469355370105752913858753288131014992788422801049456309020271687287402705771424634723654440562340276937181021331969687392581532482090925227384072406632435398851765448669142551696456995413479779130222002772167415829726146327333906498441310615062240709462832573925068833655076565847248758394543749741876145147388683857506294617893978895530153862380480322676305960860402490740638280965093165078926579681593416289622545333069682638515207785022160384887037071542904392049852758760759407040796531318790064471847410451121176577010769522637370028780257940532135416201482967841991948227689148049012108919905332061967096161106197437130787246622242025422725619222053310311219221231265977399797062081677468284220680288133959181260172434276597206492349278551969034226567776967385822539638804464796527058009790530976885879917658394710399559104504405506166293297201932726764768028755263170824121437078240427411522013146888588498212237857253406246910633725789260513545941541169034420053302798644286721326010212246580722995270484460771131362683600214463565028217078677609225114884836853869733988055947820623524965467658268819846862122459022961963838034368276520965853144614683039522830108832033593368759812647747040837594510146873320767278476468743586786426591235211520441873108872872641067523280509404443374315969131674904399622137737274204279473552635357472336013542025074316773608523622531204948853360802855385030783202621358558950737653516374833365925689173278321836838325291893795603862604337207102791529863500388620381016420181534840136295778024731948682717470474171228300776733607385358585313340886549458572145976311049984368124718237391497252081786380517731008300143672925681297599944283240619276478617281961814865441628468464713873154728625484900502032246120574971773007857925141051363369712483156915059417522118490530247215774474436983064545834185483958346264116360065836440224904747767478543086310968502661929744087750120099750626565192759521127364093035707529935744989818150377092700353091555261955996710644281420639150347117517172616665624444811205303959215611975313287251142529149688381618973809287329026203643990392704894030771741398892895435616211035143038468548328164296879893290292544432305919583693535224414046951846733381151346505164992860051384821590554246240700463016981741241032158718019612797174904075555611130906587312555534955696805440198472599268516546498507811827183073350941750702641525149766923826115805857832751201208907437370328546822061627593167005606757245007334090442114218438426681365885105555520321937787841330122325780518556758224578606553072075751384840960298312135829697802167941340814863552360223674169306555257835550979038439246821398851446116399343165881138292246189793768693555092470817720019545018153772214719296225912262563226808662364238410972011545512263991675146831512705951416996437335129234613719266660164262402556695790994411602905042895583119064511356384362731478474518920667030301148411379815316469287679838875495675182356558944531958615885933170601090384769992035446686263350687281670888125925711851230379693184846685866006132671254012993661867789359265949421468020601687692212357530946605042489334137360697130384938301889884196307068733295969428497702950845951645980371387922851633707862949382622881352715631806100725925726102938940290515027067787357757931090552437664093505628957795999868878466754433706062362694860998488490972921192514615100381406326301558501805784787982369153788480940171279019304935561513140618039894661711915660529710002731590293405801403609899842130841125530284001107872135642348550388721191948383650826038885641555995193420363350578171580692652351257830365552598509513910621441306202466784630974528614674041758239247278053323503744408106731695882415705694555053526820861791302741822928919085825924559116517098564180712149617379648437861255366516832275214648200770711751032315936502675341869830198833576609084603907254031034117875298213287559579202805295684702373363599199273900908438107691714817786177297767560636847275783073760319021326526972947158633319647880686517115859487001356294274335160571137226392759305667507112775182575838530154929214522005104156250117434705984577376430868087242499237912363530787336383584531434747061184924158211487269319375165853380214927899997737296239607615988256786765403532353713850148233767883653148999246437883933305612993170259460602236666769787082578608334247146556372253408777263222428932528949428063276219190822856401225894745788944345989151930111278712761651528680621475246005371064758831269226164961955799064818196768477567801090856160067025576636741940458986830434176427879093568023659434248344268875791859594953771918240084639396966676425663304932827980495609295018547707215047530965259370733742551478105330016939407247278732880385688561651780076185315339044753973771507336894200200675371206091838587688699881939407503791602815666867324393308800304931678418116405758573643282104540132231225872780239949663755299546112021994106035381567355198603821830609271003342210918993745387537429244045796844526328550219242850438465095438592012340881828939066754628315171552683941760985456454583199477490013027003940343581002736795635726356770325771009790600786570593057175845699668292787478609594507663854089585576673017913819507512827525732777805240139885880338458740080122328177316745684130158619309963726286367638933213839144235093874297948922327876445739682389820342857622980217362294889673754570008595406941441521014963759631759055739351547052987555339480303269233704521764032536429641442671408137913304639940606342046183987325560986481732595844543074590261061842189252782643206895606244040618433477461091439761713567931683035380640236463353473221077353757476497909829086992512858796236774242961875977364871189053110540916258314746380856188174784334490474868430367912862896378701502842836983893394790092979770197906157009827172092051910413872715769779115972946680665205449174781915406251880739736834175993356535079808989554236727407221496406425182999797027682312806213208848248343765801203720770511838231853101727058235840510660275357252320199082032919289732014140643094931352670117791542273536468110818859458883025567973583197699895337717559539734482202605265843634161311386104416172162201396606314192586165785591967578841607266139920901680239298559411150002660728820853074854626090468457432281040337329910957882914892889042660598957852252841576934075784541316959870683363858008637422183850021735723564509653405888438713903574322229682004046739287650931631296279515737000498962900665747662418948228888038976518036639020709921353095983490826751917411020541442943396894863197212539903353845067334007236097317991880083221003485297185349959532720939180726348137478157942139583490650164281685209087619705956454000960713058342609797852881954046988383094860310008219738241079458133399578544096097223283659460243449142717787197361166632057211956630799891905369714029650655682303887083359390419163304532476387968323696217366765218414634187801591496615190372059920459071245016988960119183156681388957333266657309718877224279396335781584715862550232385230583676039601989213993688075280111654859359843517224268479535323660343451561395372279465253838203147998156856188232535636024979701418388440158130172955844111258743698031575792787511901751349869658917974939734409707912285591771975304025038264733433184530813741805713561499157810852293926393555028707080036294620402977626811312704827558888062602746019212306572127849126625068604541147260034472458071540859725218881595000127079602595268467626074202735729466590464917524077464779020302033397003740251227712464833283479250258749310473517442645405441518635591271970386667931211477756314131221324680758648131391185954002618463749621513963389130698731263931225392330961954396226015878653070109878745028097004825494857067394650346294425506815511527420033409985194715349438356754789962076607296151548246168833603731490871706690960321420448236024083728615064470958727793234242487233575122755330001440490650677368715546972675180098655639099693737379820211625395159806952555635159305200882112318966490324630470524262271512448565320093265742636025098061262981708422159740453971013555593456216165783529551480611519046291579937995957881405969443269113674488708580021082061251292726317203833135633654505226839874598603058094009617042800923289220176162473004878923265267008441110812578151603389846983479541207928147377281512372924745326663563710473202741401646831085413906375767209327542746649926958382945886307752271221703915451791467032933308425605865587416204651689107157153342088745756065513171291147351585116121718871741199883153855169424251948152377440056966293389750859733067884978673238656145275357341955044828663773850729060379941278499798726036968509893053786232013197401563742480572208390460597988732886209640014925425121355035408429512102156280614862640347287511918227732009489141121406919625797203147442898813869763748845056262028898206326376363254031496434607484898959573120669989420203090868627020345827363747741789630584313006907328784639565809214507173631027558440437324630409693511651850072796933854755857032555401118287322571703654719574667824129336602316130375815012081483847131327526352100245174164052840517199730388254849856172836142332999138776718758959255502537168512304851228103143705686190411902654203318422513905669250958935546574185227008796293360365473454353130930402178123077384752912416165217316516092176965612336654576474559822411984729611018687865904980806162555747146524529841076802330177463520578601237058669350554571924904915861346278131780361096565886790867398298016108732431904688334304093018366008801391515550670049628565107610786143857500648346034950230757813254569103898005995695517010862811822525148131448124086363941875827516220885201689629056050245420178489741600490817588540058964889748413358262682023570689664912426735329345589435835225697244816764095065494386242245567566780105126593431928007365586658458466803727001829869297307163813445836679451379477328163077667111893328809495094260750338549343452028016696071555557378952218529550952091951173469331541664116389107109297953759772210014995393704431254178266643247734621370178267002688475870808829871090515343646507870010620808456139864612617030232778109101390116758469545833938720289804361707177146173916655618223329343441651334322946681408422069956198534151528760264420723867498757978673714112719986563018432680799524106652069175035495318629680784611578966668933197587039197755081434643607140894529459764644081158343959570498294378130723286589044262415725962222685739855812293733363467900466369701833657324651803850142894790815428828844966212642686852398856351785077504491339274215961557475456359540403274402931004236059215697924657303532206797388409703934807841865868959850985066795880838936183115089708452181428208179584812454338991108679230120701801739815345902092353767829203747845545826757754526848742388216646274686648429669981179621371895900171825448067851898763765255037830516669993796829288943909165800064717392962559159558900533677885040481471074313707004227166357647870273057584025325075552107499865935384692720129882705549640773863965828481092426773785195462908745677183022803353801826036596851196557240830783666536859765804621038117216028160253844284169389213288781043847075165877500264050384114096375219067982512292516363514842086989107472234082017861806344013382473672174872425565313673985582695426203078456963405466124460881941832150831192703878972447056439033866866220216856747350378201539922104690862066651762351229055768112152227404843481575022901254716158625587811626378705046119292520610307291836102746696978972678088488201794977676997824327232104411939829288512994091728442976201259463255974268473427194537123003543012338289233422057886211979288319902207909040407153732528964946011258471279270476961312508686825191766453634198492639853779872800730394367685401454801416952357515002301558275732550784641187067576572174354008948356649210363514946690445585874611472737073408442930575446428532967427590528556215581381583974983051635897221539385894028512751749517351245112261208351164933810492450056737325082689827863779219516442351402845069949443174222211417300831488173231393285328389883064674910741311154148939472398526029686161165515924356259739154340796439305267861712214284744851945611669797448516156925297142800506173671265979745714298384689460383793535478133438674322255433911980131929767320382429944062425977587153746869382315884630239979871165071074395953348576110021133666571330393133811013406317326879229732040104069610339690918749475681522209321377963393982673905553908212164641461782062170499169045332877624682378902569738580775372509895762142793762214221673521951029797384577515108853029367939320519779514887888822889465913484408321835454514913438233865451094769791713143907358129045011452060828096486021389841633280560166120006975599736041204314955662290644317132208527893725869809942459080506002722419079033409124484968522633749075970061029738596393973840646163980881724671993134758172648075044145957638209670310729733953152543036975256033511061279450749763211248663206165885726194459471071466209353917019407474401592516033114062769090814671869332168825511322318856962613778910301641268471629343958827947899166918411470730131349795434781377265722040136803936993774794793542713930409484133570008397430816662637154765270988792129323797802084370605269330355974962669471834712441067824218907196445018021866864670273853028565726121710603176181045073742695933992799979024186065457855779986883084877282113159006276322347792965612832790645616088440870330182336852156725870047341782959066872536780179564710485884709412986475981982023769219124222907943832795445902978469197845725365782137691318786138144614392300397553198865268500675401940110525088058759557808276213182026436051727958568103566021070457355986129395745978913391159734991937868395548497489631421484695129066578819707450172596429649267605143029602621365756755445900234252198589981511006584038577640649253685072631019676263440551469164694027326269798337035247092872978891402353172792310748743445243845369419676727053021278621125283242962937063071553593619195574342078067407252398318686868248049266943761661650259991070612909666893685174865306358462700660939221542105546345905249230427633301291558073389516111785281438323258680531717570499713470268584982531931892259335158680539537237656753223034929990235408754061746159276076623933677280601267786833862317889939753906424286133973152234956461680199338946820741351662695271796784175804897495658330102504132418152985343812289248998961195397218632702701151020158416901686458918006706291389793716099948305619281721293521705298208419251105861170485210031272652529155992104204370932392607932287334335769474841296915655801619740181871754878522224185955450650457337194821621084090751857795938801121816640827902277683300610819835098716097558340830519419368573313632245042762042674470605959711034229147522008116864935737346123408425198980845602542017283626383688558369766958077578880378182659715449588984218950282337643466637432970434141963770224540381634450224013587099162530713436391509905984607589843922511044037621021576795797074862496914921376093688290893609371501127832452022999971928958201264315590028080499488738527324522983508396327610535274308036941612182066514371389121280823914385389302395931735522108777210682239410713029212513270548130689346668684460319859799211236771377978919816534215482907793025453224161612727651353691306075512939222004858787185011099329292538762423221185809808233325012443456619160388081153256042912728022209167366763704922889366928351019953838515019746111272971548678165669185516929105058452614672487740482270376914976497274656963211350314789661054137198108502838378868355291640861464919143732494881766371301849724401948642499080713614690531153525841682411985076240228053305107865260600760509383608066114802911680091144892763589216105811679826818583199646019482450918410186686152566090064872042442972083971580047544687026408651702418853118623610907399832924439895818403688807474687710439242927080604194642990951643620184198566607780970707343630252107869719732689229186403591718679666308783566855335997503631443016759629843834767441728551086702549890582295291111920356237444533713886464702747284970618109486756640788015411193795731470859758320114063814177355170534975035366935713826358490410838750266577630201821147224715161835498889049566980253866987609981636276603786687106427912946818176770777574411967704520714931843223630985668319119515537255328259261046086633115987961416442538238311867328426552765046542524654732548128512246339363729688297177050682578146404944866572847568501851106772630652282267318361852837320938825030770708823043147127847366069711110668551689634124444432168777649027556294099780148466738886680579286210964297981580293454679470900435425094187676258558185340028329804548748953030174211435957460607148026099418738179666686054248383862788104215934693705043138265619780954887532940463809279665733188773536684928436394155397609179279923714366753913490222143853006776847844159923753345400348084398782378632794823721324171155549262189789297469940384362589771695517311855433438643320187078789988457037703327490645534024564860199580192892083330699997476612552586073307177655121424325861278667914834199309912228296187000347399689505950673905179653559730771616235259954953280860830561874663587074035989282309220985290228573274673525535681470086902205786123655466244858044607416022359930043562452971923050267653555093252606613992470922848132969487462220492409456133631654236786393637123841968383704684707030984913703665348356080113536598097797483960229585541566656833412889736296298937697611253334251468849677139272693219286172731018373331779895209601835833376712686104149213404600107229126686320993570334386617935788813439848825549583622499456158991709965611131590682940460003877955879717071719680231976232671947729184552721087534308389318051156321980081116271479521818002380912230204344228402595725640497710232271235987258379551281051248036170084426700996035227126157130521108260478521315166659571391759396157490214679557980121409473383602948444799405364758970347999069724267047950616299725509151299460554436725434133967988756736683153146973110443751429091949092127642946395866012668499154877533382483453400078510454352126250808981124567794250048994392960278509138249564283822524099449850829150003587675581647183187021490766549380749204062561292125395508180329897943287577982604722993642399968288234744556961706258297338120781608303289648933253211523622183113461964298090727152936002586265266140820923796683802625579955125423103113724528723810842211817221368464032426061420213742307180816107934819569832620314297294584464906109382877314802815027357130702074345059613955507521198186464547916497600824218386717728952778038877829634170875198323682818577202652480851162183797172812313864036339221734547534062859369340190334328318482159516690092541211777880917719639576191012625176474473757383030396260271477552767046129021214738685529351271628891752538842491295855051249228476781586862588099893779571212022264671460574669920624087102549256807825340298544254857155180974708926934602134134224014938150315216399842501027296125459048582859401646664108166800569542553756208188852374040541150300960487728679955946501365611662419762237439603285360289576273762827074377158241867058911285972546975666089228375366344917247083578938766999931857054279367415959590107669268357038940478861939743576592371994469441193704418898096931044158536764104394358306974549941379315047104140991874382800693052764234338141375152344716674331150449411325647991197200511520523710690534987715632217639263446308420735321318150596862742197702910459537533296740790817261927768204944623473221668053692749145978153964723788959959742847933506338599278209092969518005407091713450798956903519100621296870447402191005121615062144295092546409105530252212311772415427515322492526661857949748639371372090178690217398400677495040317499822218815565550776484134430504668267739108463012536602343734248433955080889277299313029574780390072056218469497118455058729044113524864957124445909925361190675362534909610126313977946546254844623872447360187249498932018535744317612026056245613187354038698425717820818047471086617532300837273614981737084156160646740516696837845794491357381311396661469821544728421259729820644319927783707232594027946773602333493234447826164843464471193995166016605656473661860582757230030683732870274779883388191695416197995803554905157581262170852260554594576405352717404767501546441016759128768511666657756451223909849844693043206267866834703735757573554368418619575016068097660515536391463861609733987836577999504796834651375293325547311122144433520682040929244500493762332370734793443804728840686185942150602941646447592422667447409213594115594383504834820905892917476358158027385804462403336961127160570852491419509856604118714789231000805750280748102106267095546748764589173068286056620093676489114791139631029816355612434803836356209814568718918444658558742148100198664206858059933562871903114214245861834112354260552015702384521175043417822466452503853855314943042675277340654279944559252600306205882490710941405418448568030981485675441082166710517648788262324670730880705992259858707591770305647887157190617064547681903311141856064058587931931890040983578608649288978443860479537552960604468497586604709172476264064025197624177094105466263406064319640847996371659687555322957643648299595455410491837458742241480818326953035486542435863152209690520032310255706328334603816021262806313859525042689577852979978211478043202626095741959089708169642798168761190140300403123872964997311083619664953458615692520084062302983792886428620770890016328989754272754277909242124315218539545474010714411644511342149536628453189450565298474348587793163591939117899232764840089135580171475185061610187926696297778301012296689999628511438915332537444294418292630511382270931990811759007073092369862264014573575114673400362965245723221117624890806286320196366452239865765520938133894906285823987429200808911885117921329942626728614031928526297969466230697300951679272487058643650751497006113655951120579635415125905889559013042220736770353241727934482665474810592885248564329394369083429792632243103074118325551692411370781082032371222890512327973975816468406894381205999179552256183114267566523563467157195675018084527624806300601108704202646706770508612109019141845549672440871544293445977524225980770944216928392867581890768343775943015891180724577944021972933849569305098671331623716517283113955621783910214914611512213094203216340612302844388212322246601491615050789285455979946003011797524550386003514505584067195128119533824397544710080133427440806546062022578789278904751578960673391847860332117708197655611373313348302493006711486191829316359157796879863364261767129516802569129384049237942625825109626952979500508646597425088121047783096503673487982177966691976023684943444997757755379215720676151591377933665484593163644251784547413601050443130411025422607776611630206709468249805006039906972109693741198876519383525502940059532906420942726984635596244092887419911762608588675455101287582832936912884952159171155476252908093397546102017302058322356135129862256822254446155526139519323282972951263954026200010924357910810362978781073669839372634453980158385447721205330016808571481488618968566956741271189355076759719981513528501795798966444723701970743395784611477117753535177843287735179662412724784025516786321920607111590954116313874528848469509877923654560081237234252036413960321179636313932025951333438089455770170989611127404425585154654077110343799033895010466689394016196739767193841364382325712805970383548963778799963033395942562849080325188872568790871497999231661270077295573090235993698183694677717627242639887761645067727380646668453445324105531276026461188831919256253827039388671572594712871510689351779040248313038879106926993853170195798464567413102575863929952570327480430406040087367883729466725233754462667249178183339325966375605968995833592531229184422728188998826047346350234121094542432232004745178315509383499386843787509865952812255137426548136713922464557820179187281774787229912304432826781380682336220563736449331750950039094474739695616517520889703063868259834149307568750668127752837797196829630372612948325302276261796457863520680532899847140379771533405732193099620665512599477112421585005018162653934512184697176302697631344351505567897125584257191313603725701562050156206958216236684652542077921507430387402819971801426665160864180755991804940219228642282829802637702805213472728843202730602155323325992744512711708087989931062035581450480084421964835739081521836594189899988177714921966622174858652844863395917174605204802677924798947744373748417414496932478358297977076555566725946510628736641096378050651574637105707686120278795568313563948663349100190212733057890576171932204317438650981662396768038863934306062904967344789007064118741127096051438744803450781258530913992942045563248648588361206486951625647374043616096275012084078977423914230188765339293110188801577620371902977845392384850194387576714852033231582795055567214180883825998722584978720208376250966993082235856061976784963329157452883540378893163834296674265358977654967152184998639434645502348959490878612968998925577969047794383810189908435599842519353358935408221135299505498415858057929687308821363318916762820940529695251526775304570013439664367742768779084925536246415612017442967258042628274717226470596930436234346696836617689654305854342174188793789520677439421302635552544098168986017339458091198082675128103728129137461895798991412333971954899984380878381984999835399191991576858874371747239077013914350622858010658973351324789883019375961525153194352614226306384136632092089422244654525463658526959488397250492543519163716434840498878815710308284471621736693048280049492043613256733865317187994944749169633339056903950645097995809250292520150259811247204759787555222291147126844830267438132774565597286241083165687264958417196129925391804444954349523887873935873694531680909487425949029689001120230157859827596280077480531129121820114043649056681385341572120411495022598771614254032745629687376897398766058335735245218651878005714004154018708860215075994676922557115111865849517049798376596112730667823734340302937046635581923040323806140778309520039950135171495173277552716306895859583535603079631152763391269003859138487398654645532343484578018199043825381141904724133348923616444805234975404575837748427282494949616035819782617366101621102163885227085283334913146183071081376659639059634511187382586004237769813766943200512519678368659140699921344909601238661285277846545648110786119917610856013401879199764417405449233012757690026770069862028980649166584295551048428674181280030893711975213891498349815430113645334622120983302033950268167766895869341461968900701958539828064513204196755409256180095740696528723143822464851897934409339734486444537543578983532980723202740010259287622584246711498705015964157467167628562047448518431298870708285939408311277631502740712273517800770333260486859822408945023821545865212318998552669967255068103921935375074863015839750520623318091298166668656663362713144573922213210855688161932437775348392691348775399095643415344111695054555665415706110947284859154943921680941582058455967466931183560603361377943908653428887606598106514709584906587870425107022314027840076189509022846803640255683620879869142913147098609988376333996360689318545342992368874700802279924849477326152397935664753436359338695098494787483580402375773424268985431954624501715634946855542581626898693042903415181145602546903163552186094558292213574801931344707916122270345355840568470995283901335063576585177714333185727624920819578958339350875059698936946524011695018737022633815381343858928951025797585689236651253372033179629103119741411805880755598879133739527423806540979526939992609953361260348885523357325244782227258737621263836110496051105034091857270195312684513432753184657663556161274244756821192891020087740709304887353704796449615464998340783061968447223601943497950789067423294040035750325021541609463464227426328080259651407821742940919350277416977019912194646454554437941222469077237938464433858059956936987030695567342586818217277371879869968001131018061129844002531696989344063921596700109365713929203530865584884389840578895871534078607056325814452587476637016294374826438991663603459232114447763192895178676812452052358029704247712091357198633835861515424235788407905714404188665775902497428887445821918375599404594566646568904225448161293945652487402424507732855728324599066160224515197698652934130263075399210653553768549678554193587457191919133930100308299963784519967326004272499145302441094620406868021405579741234621604137620779173415657191898434532164582853612435353852176887674558702370327895258246972167129997756138794006981350740019036096660218636570454434776272648425585586685415567399309723487430661814728149899171150686884232631338671013735522477775928205348639670813420304770776243338600519898866654290952863948481180725874282921539452494217185051648288213508814903060055020156631657738342616993821398495256421035570762190224877190725164324892357289271076159657678783935003284693837703903702831225465904748793063701291357056109003349408295011060869990288708590915551349573854435527354305153654847641461458654425984702102747330288370085741042255499395961539952198533592480071881974413627465682403979965250339564003294989174687236934134115016011003230321772616286134835933629730677286115918071364359219642413175601198121627082529085353662715930418451662964635428548566345513258063783997782496140372950075608250487090083899378927465594893877790754123981564017676195357700425858806360419021908779480010293905031356334503700627351723198741832936592071478636726166268204235802564047214216540790047357464771475352170455498504123378258804600455545191819629910022365698876711250524843171451398168797336772523985868235140961857017958210790092283062512228184904800804568086620863085393442385012209358364953658187920566705087171133053336750673375005651631430748224984781637829313773053062672236345027175312589448866669036252009751117702159037724070933843315755775484742458470296917682477414632259092896313316732253461042964752717641414155324231626961125877354701468193156263740474656609618000686715142300794710778276871365425940083535407554697154858711916780569601657846807547049549128883780539417156095175224182618806477420209682346002061241270206627543710184311796357007125798152489345311170090639930905056618132550560173708207956666901262322775566341521588698827935590809697785283465005749538680843118092630322886040827418957778048706926693434980310128906090880732198981261564644771244167335138303781214843255697346088547024414940426026903228908503794102610076095284155166499161728053294664903465282769930704102358845140429153267436217330096513716357076698720002208964319020568047394093051255568004564223489830036821330343298585248338098609808488543285558065104716348359093901305282304636547500716405288213710085494812526762704473779547406306518988420837344711349682872941963451421941266738435182772944313496850643341820573543540792009979798927353924844824882597607072068986118751965729039623216679844973718877960524506680226286946321167405844766822199389946705449793906719633809400531261870366494919963189259179738677982353410411318480160953763800576311634454536099481351528741817786606190495400040449572740821396806398955070971639692297644560761069772681054973505827259016479287810465829846587721907792738016312672897620771532504932612336785697956132561413881975848863184457429143553954572130929015736567970991910737686124114318884677552640333550383284650528861629620045880800400988181130056995913439724830250499106338925968901369403403554598129884208285905208941683896163486967908025034453765299450367977778667161515626380263399953096585905088928028336469424058690811056102433420559208594802314756070460576498998428768173318228654762440518699180043654065152321020734920573531144213405344504606292950572529114887731638998732814760594239344176442057772893682855680601829031960654475978707781936861167581392199847302784853922535872606290950159260890113212895310746729159527719045200223965529555799248354584866502510234915548183549875672312161961176615801023280527671066769458033080473006330094629857083017421720746038717682049689638214765823644448415524882438063121149245057100469090227289503851048529894494193766155307487188763012887140510957504571090132324799741956288178351541869483335616972241531491656648695454307108590963280359801913071928053860985923738758344288964015024858211186611649734091595263887387641731835917170102315662632401144281429018404028962025373939195865483061680895030458384988506529268808732958071850585926201324460252044824723701655062000528882607143125297960710841765346503021799848124938628795328530736589635748052021972271383482719894826716560866382336246767558752370363955886555536797254473109284721746868520877887373970510031957473498971956841021766924531217493939242276507075406570823771158934558320104250996348163945775500773591144629876117914404948006516300527590096770576651969911551735409599969771878251448602454401538862447069381472041792171603979392990705873413342442297053640388600780634988702818139974021509859348947910858026650604287559972998094710439005928726232303291489752758220781426625557973563155472450451847320602148300823075401072520962112770529857944635945809464371874198134457114639790860361562947573875299785569676565620284119819954731313071654128282525010686176403927654468980991662379916381145514741717550663609152422094080870798758630866199786142941598279146545089662757079097436113361107746432219207368868981239408960462016872200853902730545812217049477798324032870137182993526961676958014407516831560650757437254686996579572989355916797356158903070640702224152661026696750723690795276223918719781875296573355412110477370433116459074796528457133831935074444184425066550595789737442301530235720291576496565638503786939334656694527264469789072166489560380561556799209164009083918612298516975451316975647692560882092034111112511630525586565823445102763708973089868072767586040202725589381552206012830558193249415944255773610199594699800377195349360963000605909892224895612805441656306375661172768026504295832451747871261270474898011519639770630227169063268454777614589006491079265763317038011987991456339633357408569240764757042529725578215095560900381956179924986546524393039943315995883585091862483126914389761858896933397813251941624752222889879544132111688640110375015192745637059904803785085512838227797993551457913645187557786307800230267508895808863998384797725290600453726442169295074014416344729301315147594383857987116529350339637253131392943732983017945013256284311195568067900199072193344550697610888311691068013022930702720954839878678196831839229584411260738989452953247825985528862530345817238297465425400762117049704753063207261252330586183641879746197423066279082749495999182777522626186504383379927178095090292233530790723375460666915879185890489819152934051480571688903473460831423289505850670993482926598199495082464037402890329995146627294873754502978148279687200355432146822274680625423552270812203150829109277857447373135968415454943663091656900528275197433092086539219117198002464286348413503981663651851249716214607980814185908642397429187749109756225454066062278336891645993800706401782483467309835472542272336352519352122896274768831337795013035545832224861287974056698842605512731050735875221015489503461444706269088695357842755851563724215320330060532060833168044177709171896485600697164861647352362064951685949303624281698907870515149346544739110740200551276323069777903269091516300894267601302308211233149490776662638009740429035257621274743712759860321341501610651229325643160996668937398657699977184034801898920059127836093244510312263649776173637650493543490438554507901598900961154572825599393339812461449981657939627440200002765341841872018443023139295299980566051364004306362572354228445495447048643950080912029533825831443154057887719939287801998787700084049408964859987732874628224139461564688731663115124469559888913178643441354514226613934058632279394798264478453311039869825597922772430165205784296739967607326256078620718505143144188188835065064638312619362208699983460804560948055111907103936419462530199362891098766715161490201307091511414520291449884493062426645818563020172217583021332015115582365713870435342071742821602795297579368959227405107530721228431879681547486152467936324690920269515865109641498986371827453211604566905528980990814578699471810713711227359098932655996812618788168804049611437086012120156405044334534683874547663101523697742786603549493237389698308224790661344127604142447765606456582586986918404792365917378609644024936413770729242269660317873074565299678616867046362550126429020799298310734395557870522320212054492943877991122138136453433320030968139712040487124417078418224299795637106280178285775030437361395785357231155701940682247124595207860222629292120736700716783135791461642736785042722493091066692677682940179299071099308790663199399830674179488652846925181786961131362205045787563899465884523848340473151423246961487583355035251739795214486884840476067726235624427414093170140952523472542724964135203862046748026396379607111316897979161354182976097812340040522757101122834643166660421672771097545938664592399517883759973544559347706958918355450436366289816343709766093195818302808095842271616135912753792633987255816152471795786962692105066027979060743009240568429148049069963570705060814074362758500777458850896851839396353173910440313140907033635565881953438504282366165787234522993605621835013547590479430231791484438800702279702011300761555796915321358148325158195816456602580294379577346425669677867689872726614795756476797840381925226844033766285733174832295342918291380915690092223613441619257586509764001860725214549837764079162732000402880296451713483910928446146216804059410733806268882292754889500729257940216771485090075209760805089625842676292189825767223932523132535301097235611355430622914027291206896810108629135140533307831968513642332294636660851295421585847389310650466176232888350643824469865481739590050828716301170337234061504920021742852342963477502261679937650627166129659777059455934506997970110628060932631112876248454236186939948786527592037927173824876551672132289993183412116705577717799562253173970046678587967021151255188184092225666384452000637778986844061153676686042959330875707063463343664515080307168831740504494428052972979786612707032764838156621586452521088088328940546816873246791974808459306488158817140550009456034884977730375388535349585842316073930645671313878331309133730860714095630116328320152509354818155342820582077275719866131546523160386054777298732760240288622341170623194644164464816034644434238286989007657956525229489305657032282613510573432444394184977272427944578836645247781728671213174033170538218094125499021514269590639051277216789443199088688319989316665157491898127130083775366433498403114207644753776009842052392085640486672981078508366610154574245804125640269897400639241555452451466553866471989193967571623634927900629827461396171959796535020444473641019426976680547729808502989983025769476847474067609707735813943779811704983247279320591307579165529184053690715509481748304207545012199360389781358290341079395247265053305962948836263495819086129672750966465834704208044112482225408323025641538696986832427217379721154683633133573931822960054260042843343830460028118395462645341072698885410468203417586838985565925548390353488602511170889373751834120609609968890263829607625901241964287048822754123105390303523819903187983475504778911606595258359325074996751037670030289186221649881037993819169499838544940554317799487511627614204747035526438776029023244291033931521369696435388913973494807674000625743699965108787124778941750841312137991097239723357069310215502889631340349318947870482496422593153101534256442170074035389437295184110552156270106677575201559384663334075229754439286540168280123827603472898044987048971964419227638898802048696863938798856315701095215429892035490716554175527794399239332253397094129865663390682580288935914446764500503489609130505210289842977028852498373959086970256598128890610518323329535290937384663251606716884415482325458185434828828362188033743557423534445418594107723741799753438975291866649900911102319659416727742307178764365974498262278631810955531045246197018303016121683432415472476340586715181423883473508586818266587138854212707679895510766327582296862043201595116043650118527751217915687151875005595899572365161553019099368425556542132267999977082003945439344878967899053058812338136206907174938746548839449362626928263362099506351894926505257462611365579668716849882953067516437592808590863885436850479669104406638967601496505149709976947528407551050099507377552279066374536560067379196762171658121406129496363889396895171642036566839850658309997398116094020935524609564891290902541090111203426039647896544481840511559153056948019407272551382134199026433632715353628440064098726463043456295267141749004295642620757647257122586721314500173726241323025484694228284044468242327463047183955550535092339582151958744255660392715102936798118099159724050269578680281626419163726213653120678577784142247112432294423565044018043960265143681595340168966300248772331123938447979627143399572795383572080341019024178459791406858334124195409156335052353524592260065257068485535000919398583261047855968837778974114014027503933618829594160914469012455989330898898410754124400347998909301127387896237111336477979467786485506876450156198831668345510119152948217676876932824201505233335495155661049380250942876090861313512220792258921273613811611971444857874186627981217392756924783597977244213076480819578537424442154400923089002470254519856216341186967526882255996994494544491210798904165401503565742494919445798193856224948391523835880641232518089806359102792582020599390359545840526414685610950545831056570502205824336797074069942377006592500540692268101774969713617868337296319438626715052380797487258911223378633077673813507148392578958887629383155587785399009133337465086112426420992937098698236297402825830219063780690983145877480940128131500704598427548820813263877164703560336029194397856482345943704754591093027915195716763751927301911069990954548105014093977545280802372256482721261321080929462231397294067753241164681178172996364992915971874902493315836517381791696583360940022482686484655199903193832187700607582713204648520918787751659503470971261535885935975024973217046462880066388746567772701586109991058063315537619944752079375009581548732017935699363201677646427572409547457615275111090521236461829695413664618180138107692409673829237851310499494571554539247486843260127916784380220150401067559675028756252106935399441168725808235227732759359058727477243850513488833850093382864049320075860990100202990172754352037735676951480512368778378415366624161320730667292194708962687902005009749342277721772251888998510795063398279330466858409402889477702404021969475361628294482540854252163998401715564925697309077902280643324411220584297090138802421103158736950704789925781318952516781794376572015772619292025197615502817630376575562765570235404400599969379602907681614734870419624540195363735668146869869391016322235461270664344480808765093030401934976309851494659337820375792274357329113902353208583098241233817585383081050415575839765077198436983541057783239975478625302490246415660394925253499059919783275903505580529867194685151620950132243129929104382955278335683559354377898387068236714986451871652329656347608960708143505727988291814056022316591736308219728802730833457544670440612339757232082603917468869939555592438543587722181787056627900819444637271543979228656090690719988457792344406604178984552601973306120002105613095755910919466247748104475819479887130142275829381375495522297332894186714402785779362696253806350994671382826629253896665773049456259838635571756639744196946056917741847780174900185460705291538918749586281572792822759569283117947441524241333979924298534147639782903002237906953055372628048295323577028265473529563668748555982509080758611064023786621842751394142195089991159644197022727758143654774087919031240685158805083408337406729894846742020990906996162690448800749840027720371958780345137136983232711526782514017150934692128252429711393772888379892313311156255294737993022109532079579064617492451026099379574239172932697984464882467045207118532821111483013499074631499560590037115957857045406428873465676769280325179009529396777959048872889640152216398037743837551821760538118974621936581240667548327751912738594691600762835430889912079455492760240334338385159080195245426966608079043722099578160881534647009863995726373496509476140450886073149277609088919326446222062597936184982296626456250850504059003920608833534419257039174890722370336312208324781763875030213168247592105050749975067379640880525945528416116477728820805580638734784637812555474476147758411701851534323999421051685084455355458677498594727313669099416489860094208959499400835230882558467559378132175445786795509533674266419900111692902918433641332873222455693805759852800478276154641897012586330374898952345328682657249046765447155414500738407496536589057960130327278120654383134131148592596969466660361885666998902177020009390985442932860101761996353997733696794031715640376569046490877712581723722670605621224592022816736618770013752324434904878728587912595745066916421892692556698695225845310658717252799470431664197737431886917745932608553818422623898805971578797056759323088845151160575453744213279848816799015479669818211547079943721442833798664742437501218627061607527428258859101175718384674495701602100420520803707271203428619406455129558242755808618563256264584976727568639257390371925846321261323364990386287872535185257757273730076398735097990855081874811955297348689170523895647122271457851706657449338455644917060479327467817264327045728838609947744501852124172581590111303626091095969979756675832593800148483251451165052356666399353279406198559068024002633536797357779602817139282970810455997106923649182313926367060894214425329056405060410645693302182200591112562480187159403229017892503575139579349135470328348475724150028056044017702562157915884656247804145426469863767815748867026686150418763830599085075687593596613168648286354150794861141102317831235028162081853973638785893571690419076761354808721645763021264909328939092244711075553006041840881188441456668351241034926528170669238102217973667879403895861832971598465845884765186660290119871453512702967955634825327482426397585105147337271187096331000053762252824854270019811438306332015781008108946318306562545395269500501782266179650783950945530250213417332879524350789748788453138264998175556114475674091801742313564367220468470516729990404901126156682401260514864556638496186983748985484862111513589141094259682989986438231221702014379980441914047539579563072491984202265343572299875639325387705117829993715685820852983535318408995981685746893694082352228297690468919070382198393157292452081731903000896558279599782526940454005004713055616734505376663184569743563308294912782527561013928041695881263416328519921505834894670070426471932174148688640192750794628397985672512687276594342568928272501977163556352340556078993415840558854519583674015252837682732893516995690493467836631900904064897582226247946666375659404199810441932365004409212375904139963199305889062893612008246555419241517308817556723337161442335096833138685176203751980475339390641915113931437215318558943366179731314173992171473017395956904712186791022450550222201483559758816803434597012676597281754341277456809452799412340266004238891750390272477002378841388354748938910466872174330482944146594913766093849112530144315971591003882146477517328123039378139875113461676491858820963218420721243691042324545610427879072894850964274440278751687461207839701547234875598728309990685799531666821778192027841665369304078312731773188797749533457799239047590479954617106911944116718556898433024502226008171200473091563331263351762294996533236595074158265044846693090227661208845540858101518271506015938523034886143618536947844721761196394246244896071619846043314009341384359579767229716841920521108057457796020222158120270481030449283162340515832611945937888194684570240099940338345985912446887246063652948283110379989611827702474846179266575749117769958822964021905561927877492616453127358528991888472345122318881603116435248027543717229481664771815762154988772655452319769397915027857407314559288425168081280846009203282199774934076519220701029654535227318123728838884170790601758224487005576847042703162155587263541642797881801962566374584263493563925322358168034261514616548995672590992928636698730376569816098648240826864236666645621509829346953278885301335852672812634476151558554837583909966984477916583891297621061931606451593664068382751062986869095211617122669779210563175613226274777711534784966562988944102610251601091545087961441223331914245599811553836947786546631392823277825283791788523099816003312458063218351447328187655631354276958836727183973067261182985080808580088295141354550734964314404965710702801201711451566071129537932754037672935414589997952375716279453934792916316910729969776962316973794053147914120529206808965048421238749820353213888909684516625776798191732912895396188232984232274762460722895112267286373042869320868844885954788536938302653484046335946788907781578682703789948496623903370542419408246533207053035738466312206632853714395457288897695597288046668800928087322274056091876514670455027870697591405376009115573881093649080140493637809939743220973739443768990877799779954081366780643529859485845762255950348831900759972784268507959503409923943549244002817299994415653495044138001830280017825476420278835255009145227930536867107242702150257559411655296077710841727336821014740671560395218627483362965485511314725368590149595733157910706135474720340699461724505845683551483970761464588938210695239294141724542003021599425411604540225791278880471219199122878208240915169084367699309285988785769453998141798347057479650041078714683332380379463846071608659475486873130478809069273479636636137237218639042144135958801550176329246708057054893565901514200495452691803775656848527484923492620811627425128061386852479122544540780627044557671994118823080379311289924395590463715898358239609891461871374058974030073109367244385844604028676409681420592343825800400061340125419331563045166501942834330129175598542614479527364684798490282078180872337624511499694680252734394966964683803389197272119272877223104386378882691546876022806258571265480570800002592676027816164518946002556092904993060520053430605885346610721187872569367407489337216975222652697678101219825816449011849732870912909492613381612597224532872028577399352381846336042105262151373137171587855975957636756900013368637407103679266150925242189642749178259114332958225148127326486819626416942614219526535622344987941079372335458720513694518501412124133337743374178709695682962226982371415718519064826463318857947168349884598457960740847850454195360324444892237757054276542051521421702437585565406685187846634562466772837766708717748659191239233791079523613097997465198723827601068055941240311476686701124445783537255594249881440721187699449660018084761943806365798805113884943159026523884945919008257491390635458203577124150829246806910900832470433785612486035278464422466560519485567529812653578387068091013744095623915699377980537354665341753264035348939306419803393007041823267486398707235154427402048031708544842501314006995041976320838625410851435842220711178868192692373642079891579277317433789210461833412306588254122975097528260914919732467283413112228133660771467850596628635833864480169529948845457615260908821713666609089254167488781056412431822801745266858477765355839746401802785663927353140622270424233035873909849403387038067770926848910398515443858543130388988292865123918375968972178237488458165210035138388525808444689747991674064649830346548377750101279563799085972991050800021158191577316453283205635035798153902652734485009231271884169808414859281884499481351793553921675626798329379350520495521155324047664781114246621202090390390599916274913669262847016541407219177277793618558806771335556069019196036808539709041755982275518746606457250233880551077400689898154695884119323769743616725949108599019639460593769893828162040727569311492644764143766112143629020559603044082128876827211527747263685660987606511334025686381167568490750004511038232817631845795140141052914096171342288772250452699890373204471560200685716525169466206305739419904060456891306789935656882668492236206810248868531957066174804634730001497209371823275327368901477940342457437552837390126608208875117369647530967620525061860211962553365889477155234796785731890472665856686303927963812025998219219823726787782268426803221447216040582911950844746787541485920545427452820657393859310720956118852791273790793462754401248286476564432379566913103389601099733667466440738983120537043463816771699964856119333104332860605275601188222110906076467060357559082012108303308325746547069700943161264210635608998829765775943444724139688540289321990644497792749858804950702235956594922782654042760253003542579952897721754162065005220507229581100259680513070274902037144280955412733030379562353019946266947016627918085975936626193000839638264083919737012433462737347712458432439216578991301766507386778507357079907608315275024163789796514266814562763146233270180965167351242580595432173434086825450476380036374974055989871234063811905634856099549959766815199010855699632210199365703830474324132124264123314888484777025000004553939858631498762313001734902059622577892110046527852221755619644674328767233015930697354367514392158670231328052177497164726022102867563841477475906604542371978869349160045585099728174256365762560531632668673766678953424505701913362941649549324947768611780375787783660779505056260494388610469128098998930074577000939092217299338275103513130643065237944193718073053816334535557360084170382310429585417801992585421802321965889477628267194111288038123455040664884020106215423671558728620000204463473003961575232492653328195298278552466072050271955046047582534252859227695990214361806915895166715389332512933792089478532416098628815911554991547729438762278365917664715845335117869003317580697077639578429463489729787055523143962981916162270262098196542905943889622353944652721102861193106701224813054288151761456295059062763716429845532712134820648216402915401404262855987487014483535258160836484624141171210789847504809316174692309168248040171493800100151995067980497716139485915250672879600683117012858761260846442000946932984635771222919991277378444520814966662210667354433659474622717083412287629808184040732070785299914408882681368923878380011392336844342233939166832817188665190963547233687807064172527941986605054878050403661506680786009118405995679004384889092323229754839223213356234377010860320855538808945267581566775823984168851300319927047305498944986029631735625179123460224975461118895276649988884140380965947224181481704398713050712667984199621773016539453080938270384033291361385731503607575634659170184804470900776023436962747662676522584227619102779533038501234524223770369872731528629109778192300017135289482188340469335132277191311139658425466628301096632884954692134791344108498762979706138404923579446657374844567425407254439010008560017366307908218861505643098120731217543282278832593538211171203378642014714271057110267707113894326149014962052617781595362725665390811327790279698784837976666525273959970909729687159038212804271539186048465032248611290847648805229679496425350506422723740408375627531928714688572160502321714261425952403326919873214309347398336767400200903194622011792299769390756469278117777957345287631002242309457771452101781774961852998810855172099210000336873339894527366434837542726446947134028741965793028609184924759442211328888218568941323268649325740237987802619592931236657273764480028227505955503513557850924707576069047459254007797012562490894808834142380640065448259992479034226870187153820320782512712945737188131076352409286808518702770944875858412735900579278350997265483480478757423839578331162026134363316405586567168935953383080732002517535288536899842012011369608888663268728552836997562858667383998231268083371083114985391877848327457085327173662858944063373921228540009415375299971124649735430981282033124827250047243259955247703135150604613795874415289791678540998000290098360134882770363755290821101914211122026739511507956841790633510590609795846970842873770081875931794313943588533331328995173403321982168153903896414279997725354479492738456677429251934321184451291740442336133634356138473235800911659388935825514940734891979458666357764297644421722272413987265450523706648815882429604947698195299622918208695815393492654996137180192772978213447077936997269759990777963300329541529493110742362017417772655823497077837479501079043147904172664689571504819549899488328599478961247239594068879096039699715788930353854561338174393957516547917655922915935789399431781081629224605543677476527074129206580378687907781488550873579621994736055571147960221686764490686392581369746576995548863919010724194496095912484828250903988829409628098514394428649074010510273201634425276484934075218276685365627627957907406263208421202946968343783783860831310541718031531237376208101358866388348819993999361354885297901061818673924633774815514166514895952769869477874808316314894401678784596479732666328165542159519587286689347475281272921525078863042478345382853885602116863848077276418045547307938674092674696196167654797578894286634679139340200937015971378676105969428561535201745995032876894134255007803370116823556134085586990583423261764712314610970534200532398770641586023656756616846290658427117818971992651496992755101851725132941265191978847727466169183050626972278671250913191063023315184680132231890885662086799661564720507358594757888205375202844876020851954049145781682128702609259648309880874038605436680427523478272835878098899754476341805139163291567239626707289328605947958518707729549073751502842559267659088175616674232986561400979951134016435121707236223671219186117297761493220876974197717909553158688848212488866086091071477561233558343533818538165535151194317549800124242111575680108416525960678714969201214398300076012624880586912308466936183385139253164038130411413135587359247722339026694990061018376006444065233839929585543080343219651024331233674419735650648143355447918114023254417588622938280360852179201761812892081143403968419848224798364551455414410513230209334532457782288619639857261115820956458601515263454170251978134520329784061186874292555875600480438041694873648060550647719470168276246447166064693064087072568958454119423980464637515981198150161856769255288796581736931918439977301905334573820001568719213614842514128130198652554908707020886113548532926633535105383370768490411850601252364593186599470850145821976195235131688111996555971180261860622203097114714853665148805897908810467286197299404494480557131515618315596304646738767886365148236477429343492088403359466480264002200862640801768335159415192893225300877554511588119198651611430078891408233358190382774326655066981722785834270851627903915839734166414172102987357153746686884615107770568565679063943768315960095478016742204194244471818562613081008200021192030286506435881200851710820937019229061650276838073982464232324690009101299828833731207094341778028132937326124848774575705610053143206908057320081975584551141955123011664298663468923065804066319561680993485044059570905883268913495251035944535006945663073379186635300356097695931566099230991019696382410894777639595198702789457140358925413183611588643719525308401568565013669042583022277802789327427127284389600031910006117771359031928665742759603422476404882790819706975416172289508947321983214991986177996603658274969278586175387631183430073907458774525038167227647236266040901736368626595440979560666535492834124520813237927421596306213457457172923697668413569327379231255716372014181102529529291723072517694729239252015432603331499814447079665567603440517650897992344634678042807077587191948455368498435264224608154610070492897230609134538135547062515469940747846730490029436737767347404098931845941125521108788665711655791738629686212681595808798595953917525261054246348797489986229654544105998690146829238497311163788781529926001173148014978705776771411547469520574948287817469566030625228473171407367922919927386698637859470265108839435968523597233755845647218122663485556872651342002731609517482076089594030997923866487737870089247626877288238575211465181270376399474276058077424824781772192348109000237994059050795217390977039391117751753773493637142214803293673637427135895548909746023055912971050072327699084779995966773530475992383998723505745640913191564907584869037093027616450150694609957622044737413800206883775815928295378338685342519091640433860967980224670818226960095157664811678762283360404012747255752170193446803652860703008892907622060500775729468124888789752328940423042011313695456558160419076757292478009333720117198528998598942814698241129070598047431169043845317925533291760839486673799177743159107279415889902990715929329206535779133520232098326126744905601356400773318810410227696798699637181090771688566468599946672834878002636202735016452453379097919304754624305300055904293542576707434843027394648800492606751543909264323865076243772509961549424742621164989341857268062349860658582647330173091622289348233114639784667709077467771443824526164124347209507851475121173211389462037158871998150580210799210475161509478357073263219791340958768874062231763386966475408371192989460129920914033972163561609314402070212037120327892806781162157222032933567651530986751638963244393225352046476132030723821323920872111025672890721343751639416801696998067263448948983243683998557716181219948344328377823523784343492522650931984520398905068633815865910567065011807756905521848687000920416824429401445985624508189396608628520374926023019639737702616543707880510522719544268458198045233073268281986948031485170819947317181038593643841053021886285843421664580683654414607949887554459236324924008513752259457068991424839960286638197169823357925394335978165465874910954091821912768907087724766950518564686947520482809940782415855398797544676277868034642942154060447263860844839267224011010781775238501998899849447752958107109656520611249488245969126468291655353174578328610677900252687711955482367802432519822766427446445496183469124118922202693943170126827387811275685689084589618902060462179274083805060433712953045231176356036546092402219785358561403416268113470312465810489230930582808453944831228827784994072028713326011822677522398188241676154992440791048251083188883777812181217224310450818242080034654616427492125579842283614086076478899727325623511838668139095928995772059703380796623717780791277277426913799250245209280922300018438110077944076544567819379543290409223951535981843388716318608454593787966347278580439236216023239669914277874170474289401650293947586297818339691937002628471527218385281767646045148778842223190720136223167110548777796904482029728756135167420831725218940815088626205110143710079809701452786497125781724712249006127845692126908403059280330518709373094297524256221277418787265693948679059585226692486963723093796213566924879777713581149165283230171206075174816388780803878526288878989692244419264347623815085760459369449370878196822180879235932965477736071233546208504650073829121733981420979317033346579081508313889134661991329950866091278930085476621075511745432735217841276154443259198441879791239727998928219924402894044683520302144384323837532020863537968509980197981418856422851248393254897596836189999914777771429614159624031340075412270263155483845162583905269829582647062612601000816550431968300885859177259192968842909214575833433038365633710095740863045922938745175415229568779340275503002040129318403395866277770654811732466164984030966068273550395939816944154848789007107776741660693460202813756007368135319346526251482019863712904349476391687912669295842015280577585495901870849010658046593142394193045240925125883405016914762784367063375812713524131513258171032060110747501142813412739882990111981590802210531024040110592618549098720682474823463460272863813869740901155406254809138085424755444982964235433651144550509344858435914976852729650729483042842321047380808500914081430808124525930227830648821518369924343562487239005435796101813114580349092509733248025228529910470648001683798014027686858961157173372912830527123026673735972641217969666192899205292188424678021293137471686754307794444754740284350713523852598769098707314435389559119053601679961987866407243442432877607919818831078511589046185632480095867851173446337781677767456058160971876192792950010694432676481155915645898579285285494918912396035744244214859243464211631178383974812352509056961756961485973649616860324102639551665798341012850161272890088412200380993892650506258051493512412195983644613590299601776564193557314472936208042616596341071306048264333172697679154836878609701962715684127624936054088209455694817450744634334463729025998710129104969961814108190823730195638374918987054628997715461180967082028334730754795822436999234593581921992699642100266381104829401727413794683436255124707472183709967695736752290020932975446276060922828379116600464919180592453999322158147368908288314652843783160361706341911707028139525971524708783755374203675502071466488686160691955317568697618957806234328260727468350288199742186357408268136684247991175701094633454929764231499136065805827305284103620648672159456207410261614541215446009218138519649776369598221050078720960257077848308487335191543285916548667166385261285410999252631418544255698437950361623665178725657428138661923161905796337938465891684468861799976305013137259699207135926702264374798772570926638880572635727437517433258388675423148111212301933560955414447566624164598060618798915571808624923470638884042464421827536279825306573980815291014564340804332229054489987925745519986953349707287334508148312350674581448343097782221208162765083378208271379588564194388866976679170908972811367007650361336340532782634271607855995234116129814615354662057294643292373439462078804960210650596572701050205336812569195025613461269746729758495698320628464324553836641651676324074240759912572245300845729943430530444972355008323135602650017370463252951640400310012262663648838752299325621539238214886517158855197297258636199842736290993351776667870769027009775970353692730328707816885093127044351662871287111396996970594489164068604117978831759566703929571613950631610600789693889657631184144916578058707752720571930039125227196778556292223654179994583889458043739911225619145347730869940202633386289507185530066863088196958081628312321544246324879603726190552611245053387874079018597258918544129263792279871101847723800496889394111862433547533856512005942389134922965331244188051171444804470993406929565260769239809468776722280887486281671553323681222659697023594892812273918250983765046891692482743477147124162161420426745608828423461082295659071745004247272920090071779495926987163005616057329923634208273678274548620045519980153292969585718603980580903932475491170347733317227220851889487677096847032333521711889045862035462609872990117496401403175683322927374374891596584195147262203706248672225660484077574260602690086334149324856069700545642669476482125593868944261631945369902726865977939605633201979430969565287027818454510394365314159539436333441557461298471202316697830096191759354658481101693509427386272445999249403084152002501330898525534468472981995347338931035889526078574093659601722303767448912482815820064783887677142622210464255197452427925652676310862622807502493837454520266730541377565659423282044219400378275523412422707791685077981854446478314998581390645265822329095622251270776308874036470912303278768071920102927369688097212593705403562927361701260034595205157448866176887161078999014416854925209100263531407438862730270298682018355518231049806430941746205854763096532414805755650633803467705563950799471035901379478524033030367339166166983882435634594512971651531718385972492766090921395011159159378031814963047883996950222596022551747256451536562809422506109960662497385355888089610006296331201715375423957844500379328797457490588816550806063637739410797798827704596063245615875528965012624701625315885322419374931153976698983347324191298454157448482015409394361287319467326173649907319510204181098241806155420634770914533904350306253892130598655408013510904790985828202591444067124935911951478991805449494604383120524740475923778058819882616701045736117548523136786866997002166958088406090722578415929237493409301103215825952795414102492165961765411930438445242940719324721087112931866146553386930412030142349364681016923496028428325808278440256413364716789970773445460520313548806624129253473955067518789091489427447973536311278661483156022849937524071993016689087379112064994550341264583738550610228193126408588897370129672647858744641655768617735869001909392818330242591634988345511819645208730904464241828622340501556318531730738536339573844680167739979067268208279222072508494233721924836536895098164013384327089252553833288426686475504973496356273245197943940654436768086106618602264685280843065858282187220070611291870752814934192878479138565726897553591878202486553690374274389438168857242597348259887571278088032909502533137287156297665926012580855500559777275098883414645703534500985844800476417004128651448447913177912280980721365702785631240018101974222013310271035845383607019893255540498446046273729740741755127880658315395039572591125229035067398992649699980180084913751253254998228489463264028435492552848333416144127626741628780294198260483546532814437583721870298967204283492769641634233892543191591908132883152414308514385472196199639332223720306732318092756972037381962561486179802112448364611829790264471436203205880472009327900200950901435162339484886712185899572674100944621616367791287735628590309626825680941339244781796653472435108164731349334641365858280883767677165542605773351197911005930898112274801681551249477664414855207397973781831706239577735255952769084024116922122647352407615525685897209987278573702446548386702852692288332562432835776353369225653236019927663441865443660731227812872818857653107690563346199114132197765237653010276755856522697938175011876683093797870423972001167109898683090345862150185059052021848340888544909078070716780193785934511390908494524695180549938193617230049063553001387949455815707341479458867062752967627632141918362907591131424628414525282891392657900892208158507204359663290136319117328582757026153253824025122254984445559364993395217013986914763981094186899455348118931942043318101355653237758731574671043063647321612657201977240235336130900644290513329780781709207076390154722326370969644758841631641768145890823247478192128937327956586554471746677876268057657308140854107842765940673068444727370957983431349945359418358536498444326281612471908839526497937709523603940129861930438290118337080931136009897321234492567326447961664732849552377663855183534812546802065813671749882712219689091438791436390485697867995208554624471763069029608299911662239623887831535386657665050868854579719740553157226438149000904710952367788975755492357633899477696823944491622127859844485207036193266686650206178064950135133375439681050345227107544780657805902711917765917901086841222788421741353578441746314285853400929686659698556668949198250769773347860751709716859205226662604307485516022062104194495200773678351192589141279862183934292473743520346825612437720434160710069521662188093275430499280128854128681044783409916260676175628788182927948852642482389875323765684532262610722603408354393175785225473490713875061486109013705864199515312600046843035336837109181455574452368056235318348118435021913511289703984330880948690313325830304285624101269469725059156097107422654590100172321463719730398907945223991315431731478789289976389704141085173008678701446053137608537677920138426312551974268772417860324107377778675636677917761648360133462688255736955390629461063924669134944418600779692387094168906698820725819878224765421143831758312444140312471409646934022742991693634479073552941578156601298741185232629319413630381056962396915039441008199042107670224281987258090321550730189934928144055290918166018575652511013361183640346445772350846465686167312250518173340098434314500115976377378804155241059858596548955648169283113028812668119934505996711423246669060417836247099466671854864272236368164439650015130884627658122633448917208443367045681996820087931289981322522108250544662056731761320550936547622547001945212846364996199110277485033497565130861990974991479671758104895544080647675810391833390078258747890777472633347618822587569715237569278253979339679092214065854141178859111588890176890783966841719094643056101588015513583113760709803108524520247118654789271794892085472418646678883993162193607808567804174052208722794857862830223589922922626719486151471121965249864574609820929146052237341513657689795350354575176514282027156913008319183193776337684460624767492248192063348951892401574012515071582793641362780561276006905620977221475428723652005144307144326911422230774533518565343390378772959824014148746125171216645761180224446013802980116141592393274024729555431052248673836766367518171526594414809199130966169632917830462139462801377765077277190905979143305070464854992178397107167037118554864074505361848311156298411164397229852533508170145519378143678929540676924202182673292691257693641001420720872052764562782869045050078501942590528148577936687879523169696892283908999035880400341212921081045616175099796237120407444585622143389596452754012934681614888147449193164995152491108396839801210362879851308830937655509878155421958826899153916565674608365615644595813183570587173334901833316197450625263686524751520762857163504781704843462774681149947305944825008092175496063345241619562304519265303331152378774323980759300067902159579979716458807435015023254480478263949332105424887773195819996438038704716427363606986759082623927674103540517281081414069183858594022729143323008842672307548260879814975080417866150049012080848515069546633548204402661618053387903852719174687581381952824668475734566507408178721841998589790691984354798264870107321067351380855749227487781032527199165456044361243013226864378386268791233992339233976052392927750226120471544384455778685271090987444283865766254547101247399290806091470747355045151500361472234392683652343147702225027004592819917758799707425789776275818118977548684818871746861497336494737230149402178412561612437901623678976692130116305902981336458593708092459170360932935446135863647654421639510382894688719124640944152600129885733817518252748739732567893894865892168076582573881596224661827370901709243617398634805595356238305010900234497757608599061651639360471196459081271307163722542961659335473309567084208337778613919097163256837912021044200346389022434907067636701259278392666954608997887843216927224000159877214384505792462382792103606864097796071125744483824628821993361529495121643935062285144993878927055705691104634849260907313742570898049408321596554667780874755894418129614886166165118767530634824172226659170035989677055871993422468533620816588057638891503263471333336717582350469486357981557117050431144119563601310555680785532345101656528786566083708395539748344222293009336941910943009226212800644380153923247230592578184352011006198820728502757296055968818872284831955903024201199503144583199644785636651391417400951269865969525829276403842734966064412932042915643147483468613993703885459222403911046880657585839896483998779318656354977101892979503830503170973908036912324704961319963375121594938646644693642564919428218986531745340625976614755952872520181069155042401188830084346438121499441890345173507713499440790307849779391754045235436248030146489580214932901475100797803314785417225562996198772781841277897188303688988398393728693256298326061246181813102710685441377989773186928809290832327967738520624491531752195750172109233429940563906839293093886035724790905291525375142627652673600241406441564650174566547057037286083785106219177913896159985494282964388775149787728187937411789511081299210081736934644013299771535507849964220247570395663112464890986670629100877116924890767738167363559498262120362453867580445592516571074160938043639805509229044080652995636382392470394491123812817638519078454698873475793620383458344256830108675295418429989565959948844687421227513388270201804749339339338507130962076788428283912994663190920029020926256467818813835364508282492403216492109672545057897118185192412528443069909863492944447274878441815830218254953315639951445903784281646646684179708815683586006186150217406196249850929017049411950399247671244623515128303175234616098774703545445183740985641312890448168151899260044023253581662877076911720648945603726496912272700654701602403824491386522591756424110108108047660803070826370958800482030237611883616022908029908897117089651637441844539166154016278223617650031035690856322539747221825832194575974667818769322071837472114723805562343149354444252001573554692488360554081695586238327794009326366562737311306688470423148163692415365549709338743034359426438726468639093252469375153794094061263277263400729374178971138774325382681627269470594610411602429654925486472681700416493154022373938364175064752035167818194514210785919560093225547307534885033499123981938865194274009190693772582946823101395910068617367261769138719878274832946631558778601578874679493355860548148475015525351657593847472795776273849835351940539803873573537432771133235803147393389381265724276881387987213280224727265005303758879142589809563628042308008876469963146815348583071394136744087185883782966681404225936114112375970696245164201557907362083875049012507930076993414089074227883123280617684225049702287767497156361984641699604220897518409345954496653253931671871857815665441372458830935392110401795827877489447382145818066128863076391670788898272972593190863524336198720661094467667003274923906836892663718410149945891309624544704670586064675290044817180978427670366951858099067538690404709179406342528696919189274010366422646723057934016169487760391618917512736213040153235812044185975608343470606895991566371336913482233365103127228303122698405404810071668145436219599836064279984792377452391859495951305722351050312722712296777007737906395148074676076082916933234198029815829425381806966065638829514781538690437143223823350676017593495785280516073867669945120974264498497850636671910469462734473179205591428877780213171225314340006484745129372751942432963424784138380383153096503026693800937497248920056805893857678807267995172807810240479940141311307474287690767811836874478866504974453561873444434514156688194324023518162819018947560326907716047526882270957978396305833249133654515777600245355293392761955635666499697371016768555258979530865355696864398469197410392877193328782234536717296495016971076198488931473273402329786168105331909018305317746199388494926320161230222982792920840407416881914059966389459351055083441079970953926064314844437291355882496921791235472298888478764320732718450697070508510434404482286918972668606522309656442559251388637276606927143366129090187664738020731063398830137573102539438192699068728459899213198555592613581846796771820677833476109730614674368080278770902099664256735651673848106564041999507863450147672731931685803275099032844037600029013311995931949803590465292190652551012539659866165445352418287179364160383350546871782360293382885700037041819574956644427305456750368193766803007822619418905281860472515946405564870430630675857643847062282313439895664118655377977770804358417606198153169022461656269841637602332257706388628650533293398889091206473266223656094306708063171149423412596126975740034341429019305876981031600043461246886713940307345386707204210740918527921722038140352882737193247963227240851745469642090638795501651446450800395333378430731075686570078812365321342519003107595067997056184314153239860653914797617954598545890902567537893814588347094009708633534654884611678943783795447364634257053297106707008595598696591327895064903298587951428820227744709444480876155578161761880936095075994723962086933730166566048692266522307047570101583105011910683833969337566458197143441400709269998084018983028154421232135896931902767961611116785989230466404483696967299500398495526835011993048884710057800918254136258098376252489357202213408747677228941720559538554362154719759865319238301583751165398386094917623306568349507216386243224618331711947874427228265439737983260701185381942589842572563581532066012465192890866307148220979664340696885727481594748624319982442675987756707135215339095341577820600944974331844969012837780025009971343706349673177839135245473733716508780779191098753945244038799160700838089098119471176055278509880648055566263732226062047602860168605195060806789814907795860924746069208477747183589920106932025683771170881228406827128236597528236643006481347658293926733980928803957779553263310889411488907708405704123132661495951064253887023644469962905300478291231954914354823992119046988757980203846943630610013722059864866730325872143473150702152078886402699054223315135210777058593936817112272359435644513618857994611812730559825580699335797937362538547993644315872801399125007527336411862094109947140031980284048771079543731485062570691903110112105265171666605804738653631182318804251376268649271961073583361152507500332109349214639268863321019176464674271549700505152163489816159492479091740462007919785644612612140709102654963300134927299894927803206467306329624586242036205757699138840368370975524185930752488407599126063908636710454807834770164416132785288764118499747824112576567037224252020763727207193916047670903988624604408700129000925325713545808393536931314549564983589069066386968218485715142892407274480148504877958618934547830752616249371325904713834273274628676039347840309589063862815059027791644129421929430382373728570727623746745964188870836797898865539676963846305308523012016225331285814887233592311864643772713145705571151559279909632706892006639655842152375973226487371540518683124581015320085516845820120548650371517264239958073199010574375170282071428154321752247344384653799991337076335624683204099703276672257086643441737417954633120309205834031304150656708439998205755570213987774739592223146704498887937033681608389715163625020756309262338244454620308025196196382902662593277116561940815092632032744194867062966593162013563189909174871564386275742295131098294959598831466111986926327404666227040472008655034146897553329827531171874138649251572251910329743028924921534347128144304686442386480225000651627259388031995366319461124883548321378398563237796382159224298362428848926763864062665083560680309423259408389306207273702449261327872781489616223058959944136888651933114978203235595836256043873362933431027978840707870904238930027025442476845393080249259810265270922734238411155714567929607118808504515610241510011309734538530567882917816124067242862519742821540582716587644479809642411251028532371476829145702844749195743645362036323094790614765606103429962527736066989796241191923839789420969110990603775960561295723654839734070561907986192140363329087812542989991419695099406809752684943807037390502344223125212228644537965253685583277314876335532749831802133522144269600093366858567261966711587340184148102620266792378791838842474448470023253747620908109219393455644055960289505653663275997761990668753107279278133851014467751659380172112926117598274901015405625971343800856462752770507556355019061226857300954275055573827144633106078447848307127961266256982136636062921156437280471678287817542739446567276716283609247024671629290060666493153130526284779417900429541890694009334144577574112555533696633056856330375669659453587308021841449830899040965756117687037385091145922421459365813669397955231317905245708082235844867312042542456262141009342722168020761547360114577625736691042189043836736571482849002199075905663128415648885204789818259374786125646072758351644876710233704162082306375175738788203606344090444495675460867841246810162396204563062484945744773686192929872664406426970046362918265251288664072045124884990455831971360474134794348060973285386862636612132815697481077656995872308887046470387713708643138287140953630164547312893706286717254606821349717191160389907160925198980611973048803909731424283303213995977060908727601588788792872535747478690617746505663880990450993548076001450002005111734805298245895216162528528158991367316390316748174584671203868717495079751600258974017266424312068615682451072818684065452285200120770607430237215023918970505298593566359152603959093859620380253773663175465268730363559729784349285481693453326366257538693828957600920155344922294951281343249418257275323702545108263546042220512678760962733939747142169335953879769831780170251028090521784336863508488350420686818408203511452685270810549721876999320905217619704487975642574227597739919047441131134201510854970663470694191539924997045673501400697591845859110384004591111719738802879650374312095880898444065736979883708656033378346427194068106093876636502403614273205362789594461662450127943269568361845283929601603965472882411050786186106576358060851409427448748209980128403121437438326144051456052260436789774427810839146946134461516765477476587122856108775888884497834638736332061980987995080048508298346255039744814834537523185796626670747454421194644623748071587900997375208351307120632581518107708890030140901003639354469563869414060224593232768759518933624641452679661672695805842230202697717532219586321971079412771965206139672869166542928562856605753785960226699214761880607667930173798635979615992905167667457945373140724812054104049286015956920074365023536652038356305064513072913473450762073017741262162070163802258879316359012471577742798110209177362284066783043426685891272344910299502112575563223422353401036620722996775276752343576293090566619242981157163202694843285644507274532504151393950330991678359612206825985011441446724935456856511228898091968136089733365979808208353722950181603127633839391805819933742631071135054028035589260646058757379461553681727687045482209357182153655056717697772445166344888870114878073059194386412539101226374189367505910511390306481480351422436546392548085144875343641443469967143939572853679249907929818442863225856849271530558432439619538941008654970169693396828777751455260725819201158401083404726574673642004701548242212762248750700785147446217961520819378176419197965818722742191243748980065233494771043875375431263463233337146451735423335185762147867859456496295293043486765309697680124895322484019554910137735793502694223535103925259052031613513827331806547015498925017719211807780302733643133990351738881596442964278589254009629354445159525659672572503860148957918708932180947104408030733890706766187345171915250934146922362969069989880366232736684014292079436938307044630624247943467053084641959317937441507139839148478830026530372681821060543149929613226555818070378148939095957383871780497393619590325614253609617960270794397955224363779299906981304256971818919345124616778074357746914346634489751624048596289087145135605411659149040237452510009553737583680512911941502083553021091331419144629652656339472648988945778058423879691193779106466509628349677754730325005033653444609324055192581829651330335552154223128805433011491264781781865528544570373675077120468675689282716722016965066955055162695555604660277123021656697957360279008930229572028009180169523618941597564152176340060455016480660685270834426729080223340251103062885453256626670755429986096867530478732050880575497373227098279383245956997589201773726033610087920676389241063932396620508941572614728115872759739387562971621807927654222510546630966196468865402361229355521205515882150037511312405573254494536410455259040792257304160754345466156163644126432529333596256549185572861024323593389768828712101300885801642063376913418622443592802375643867086343126008960514365263814802573806546283518943021705798294059014367812773588794873910054543388474255759333265635320341820260565144997798086072620998411784854764059586753085815846655144632062469385448545627316272320308165224537868535623607872087202878852093648238278628576604371695831465390686010439078898090994860517250362001925583394662751874612428415705902610744137557819438617249845257007749647355556360701008134196473670200832587743312539146791953525409712736771106109518433966133435949582056390618905369190766375605984933505937406092733596552004089753122459919395798199810757976691364760286288585477111735349008110883607736571860178294086228680727579993963955267594738480056559260303104911067507328670093482974472957540608496851266532908656008183273828280725867003498106800356119214753055807184410630003723971043603865968675851239598850970616091766084017129675322555139651354173857594737238582728445187615898728603811936972939206392760221916522472866959023327028104680831548574399944227888220611742064440276557951903211600182017244670524747543593820730144640114454372399277486304869673204366468769578592514363656069920877568627743751191499068383008061107330498728558742329265036411561236096640192805372011842370573578118832608226532526323658002083666876357686152717230753530057924847575630704589728453085089327968732420510646803415724807569153838808984900185057340967602116777348151141145645275661156743156609350345911720682070208004217160500041454767354920434431610629435395683923417047362008734743542674881206039701696495667281379974559797060959927705115637742475471936155842650386928842541540552536671040339546253994637839418134636611282334201074437697113289445966279146146117655564784650964579268880954121352031346675240641575189774453043408885051027678306585696029482361297489318433229528223066228432710155194815054355561756102820966930720898577208456285246818625217443804973551052737254538992755945625641829666458260889057530965982013142375582800406922203992695437231996057825148417340040583921262297972599192265314240370897112049336187254165113859727511449701417441345677282709130625010517616922880391636655021853428682427906339179028123858940357465034213999317808510373969734522527081376718868285957657825807691522436218654554762581115467489352951521522020208186055923340003818924091387170501770401552021026240874495342991022532615007163897962431190100732808252313668621358158314073215131605796044738645259196740967900067873579509068640180175810981751024179188942947135703162184522858366150994826194137167433546874216394523829879999870893033544439051035909042839710011615435890475753803468881216879056869865785851436132799490639839960787308946351866725193068809858650646256790059855450663005842078190343476322234813551843465604393736219879834468211426334089676766157552552732182133197024485768549119639867642866861805425913104750583336954395757813077701735737772612142662169711978061529028307086998205364146466053356955737354531012918012886365634233702187436011385434357705200083843118781155805508102360439794985910986657888260327575062276197169403709818418816080048614575399940371067994389972112265608458897194117072697640354325463478074082317792462596841957740220185332888360309866733102482882837876748977917819624401761182722984459237813993730716562790138016294866745276446244584920383218185231395899557226532774835288536385960997905708794405731797285318449465648039052921620556987508361710630004202833633396302062779080344514848721779125693423383993936947521721337667539999379560104352384324227546677550158021984602740454859624172570834703013633615017056629987898885592048114733625102729796927167556031728170483214124124676206801128710415546586427467643405720909569605853026220315948966902338885548379263774861809734443813298473883552364864500578546025294025845573740052416395736492345483642275168892202487849443058476398556707593501753079609709993047173350383185557122963546185546858932897605007922755408393783516117304489723563471756220083481082021092189482117815168734686801524878470887204553945782926703657716756634341562566696202826220227715116524364006715637422573602803446431387203013834484629824346149873551526948183557138416474241517138934095057168379262427771180954651855930011611208261501398754045914095563031553966724616270626918299617728173984088454641517929553619192544994680736559966884673455674657544154396921367467280389902366567460302499228494373604268262251251322865443476972325888297061085114083400823226709233913045405947067128002050617464168529196624857093158499014666537879718693231381324775013968511975411031600092679024906316254526561524023050174001689043298731074074982308506094008851132477391847217367910827456073193296334453785096509416041571378274513342147154775149067087260036713407776002356792747603931485400205115303939140949441971047035978603293183138770482207554427076542707062853251070960959702261017000920417028268598651329215359226889403466785558842452073957884814115159780917259889416535016093858455313258281631554493039684918364348605316407603467911609331587117725129842801709583040347277286164926519523519580682976613040889058832234373792488205434779956548804794200778386738830070861704019038863788843915464537012294838132531655890377973307677355536979325249208301290468271653239174338128500335742857660816824908896765680795520631790404568780094178888216343087707695763344529478497908212527442149811766403054748775578212557115188488469955237851255896835422182752038731576345893308577546561669597247721430938008753664731368025478112650693348345692996195548473152861991682753711791681312741948552022306258624522908567173869394583880546897471008255627481685708620829658367992721022144704685060221212940849543245757952334362029590940180704798103459968741626868441099314405836766274916348529304465013380186734717320200004283900011198445120998108144825063638096624888366842123978769509127325478001122662363670394621909362887085992533087667557943607784496095672976554530797009207479562878408090359285920254924547262163863617051935321514448978794026107679878422081388755625836510627731787654998720281321203122321700977310564651569018891125864181314861831599800273576724978207011216079125061040814322255137167304443542895090928977627929112381363765957504936314578108336725236917441374566513926115699528375447977490358404926141975094321429025784256311773799664568220148371312079824234450133081713665183240439816820882509251250348910590116539136602103018801512664954500536544584631331036430035249321599246710574896525210938269925333783049298293495758565083770428940398856720688148492905291370176469892997597816939252401260439337511221665735822997142624965349421983859673894518769971751250588454799335764715733114775548547891315709254653882380089401453224985903515138598970754615913607923458559881006126968116634877156989815666024872902443319531540183412659121507565423314734593689750936997659761375366492273301305558187882829564224230984860796283294473262260255850559622309826782781558842078434124752407802896359399002816168016903176668783462216512595903449713799237191875222078666671885719719341477823324804980737910362456626386992436840990346724393496581556356723277686927935061505488588532628434326093920562642039278174555348828847183449140254224400015323625838702403188402139583904376327531650007602903227671335128700371302804757183891235626358386601740891755693427482717931698476266412789219131256380319716520315471101067207497606966030652531202773216897820407637275307125420094038802677116341878113847611796368438458150105586834413140048796004343286765268177945536239905592463880011118097799015196889642990542074535875926892230273801471542765814529837530451969095445356784412440330463906308248909828290776443069242377284265380498755113788329330384355082412011463581565670365043762141007829082082676774346542858713706167906398952587339308085766649840744272783627129543563441257108107701936061429415185390013711106215511312057797669554276831138980309655276299129782960577940827434486102018259223772094012479439919094541307797177378124006386954777867260557920359371340802168610735467160476830873341924012554527603444693609945344714193230831328816725149230841948133863072370843389197027743587216416950612876450140619454481635861431112624466315769341629472708237202239747121736650689703497719732682287538378432449232484787495178530158993839381205571976243623272243009325763497635706707356306310649944317039718497036284402377114772508309062490851541437062898687559657830411851500103152907736683081428140650059324769051015045140716602843737113982167699198128886973722773756791583354278814563553636534658044547684714650257882361644805676873091934278222429633204655364898603377686383626820151405050610990665960052888974268489576165222017177745957233191055121739497786658158315225846627952471637157787140170264652175658837582305767860474574133838224172266565460995351018864222586667179599396572825456909361458507477358376343032498494478865751368285260089323212970588722127727882301604220408724410845325731535698101117285866754490746946894830180360229688775866844078548854666503988068308670895063527947295704464942570141799230177048753501642927334447783817446036790621697354560394574713330666519532685570219070909052003323336302458120318189093128606314532190355373241392241620063785189189063787115898017802371596610368561927126699146258868579884329651010793057784998128457673501935917532669861724085136077345555709032241749216561880533218655448327055026250264677797196862051745506738051779454621578717099263186849138322897586759387283313855312689242661738276006675689600733210706982591885558426479090018581455181418468386845181484037526518339613201928661225775812015866791369665726148591349321128667791912916924125037145013563477153598182381417214198110525307890065182076314170015225096365584525241817310542042085201645595204272458993242967593439496985089689083296797896517526827680879862732906139705705516391434054093007021042027425493443108593331197647590103041414293091675332827914852118918406582390131192098585623900441468801769993463083845038611439499731750866424273987756574743685388548814700453406927585318182146440572770756363069628898070093224129638535961340510260471530825617220899597947660125024839113212078979062605584266926708939181626533346097463625993324896811402537391964607373002837193067009928469388196161704574519676827259922472586000702058190284865180534797147685591423188459236654706983858934830638074905824799044506589607356805911342489903525233687974167263863523099740127324229081206162562301982945343609688195278504944921658842979125726242702460037842618795036180068575559738157090300139241309118107200026870315719394048399901892675946755763971781022486582287380758564479897622073696777144627499685819634190137535736438586305577582349688504093743446014260446194058560949825817385466557552746662668035856787190812674885577269682325232718017199765494358622515088736352638738042117185138403447031029194149945394542431244626053354710991952298080032971391908369661862813262141407302435906315184617491081711209844945874955703537835694599993664741218658800412604929838257619038278611708613313666477683221044805482696335574086894250936292249365714044231083919804422315568965150310904834922610319372713223227028056065644456546645496862022539039533272858203376084326080183395503258294406210750020736581643000427816197176338382926456647060128437425278242957439308182391639965536780492399742361964200113616901156477451069910228192434797505031998008597390277401201979898682780844372292758535067780592120642271021829444157947938718918491873977344288877509629204667956745709827458648082696909704461601091125923472223140751446666490419277440617338447781083366774619535128765227001414499089757169794127963726902751180414260503923891781990414163195078378985369408380719410758698529337972036315170284920523997406667393035088029484411100010448406181195292748335378144427314324417161272435842399216120815877103196519081605177205572946304939573545864730055492639050321518260564119093917892637956447329827030076932864311676813804755732310449460210513091276376264738326870510287034213047060019518632206209105391224272683822280979650379754832501194203231157127664141925284274446504434333095039827215918672105885819245394810338291682050098263505842519894771764556024314367773086166044970587536472846059498927142732155618491870462658740838892465494448588678109833450308220927060435831478907603071087925082852790519635554947813309998242545564623625598610000313916831798501455287499997759315521137502304166401953339308546064868445559965386939118039671085641986064461801980779977016241401629903655100775804875664884277479849677102886432812486961701652521393633200558678866660470146997825625686359240902889783947304812008570586821635946617569112888609416629926522963797244863314810437773053453261238856131985489679874504059021322570269013117233909215948255785346694038449643939504816895998184654622688242334265260914678991996214391215039488770731399886141220413849971702243445818596474147989681696712516594856598079031822470236800554602648974758367113029276087718488651831825799267489772178639857315876669612035446763471939318216633460914142012175781050437233845145219776642996846388317040430280567467150085942592840568268361013356926186479173698440076817635785245028117481847617644565527476594983401323216459341852036655114598181384091794633056421110217151108019244307974420084053576728167757924963558469577714293587319892830355378677544991601253479983108340398487671431905232869325188974743182909568758141642135854073587381905454192703836706380738017153991035221477649475021209334534594779946458862569616500802193943642486442523038662644430567129607061634542904719478096102540511392367791906245527049934738900321769043965591941748434312182880743699314382935058335853945497094555963906365239820001636234873998705759600318123448935828132276357866755939360333448333565746501282891596180456241438504350068491738788624635093235923344730382127132514258925428403620432019180852922031526904312917564406814422100271477167360940825226790631588549070571885654991909738599246619644370233413425947627509585935157084142976913043382986946074951403309067869710051714532796768343651594893522644704743128228964329781895623921703765714353131773104909286050073324603212757778547032462635588297290917842755701589776224396761994469883210700387474836722130156653705831426072657999258504341953074252871905238724416329035069393118372069111791313980972648516134625511597761647089442978309161045383875303149269028638621544800071197407581531345318470401629040624226206487150472846268744780859293904426542063718439428078126314692707012284362255278508211263719818494986540148519121707085803376882032176058252026075865221962225892257472200677023282723441114180418543884988213919152970407525290573010998065745030990097854432556126527931614499300819942968090848386573313145912087215830967192007496013379685620361815284971996369795384836530389987052572951644302979913219393842221198689022350684823109735280193264722215929804571336701259095875808721070316132749293938362674837872630835974886289594405448542205774707458977947602023281917601805028974849722266406423321128894519470176718643008604378774625435823580631556993085594320976059371012633139680402019278743696906020573610567089790757304134982582114276314964772914051663546135020300991212517958883531135235801255110928075176107056200680798001917693407850801141423347810455334028117879721494712568924623204865949586284063813388398490066378101042850895941925095668457792053755188243908552924214734168098778230649130094358536471176899236685296381210849180957659828699783178908590190030551429778555596485317713870946200812570223741813693200688093182494053873817554357636753467601195801790807164381290594393808271713689054942743946978514002247372172095625979325795013284608940063029906177149248032557112335160543377592672055961438548104639084866648983401349419506534027330305690900201907857534481452550503857406389336039895690925234232258219582887117275004039756265624289406072045551260373646710193670019850099675068208051416243831895477925587831443497772842025492185185492934314266196394691716107733770039884943393055846485140923255108029893828711416138645786776347383986306827629875847346763390265104098814244508919953568420320941296989799379823466019272874421547617179725438069617325092271041055189449734259635851740972212525494646221651451486867369217354335181440623484311144995667781991682322661019971187621066777559509386680688390457615557713424837626670126914209838235208342832954649134995269399254418419132110221519192743472912704415904958358687654550471252040255748675781473561592384257039665250361943385449620762091790860355025516361271971862704638582133351522513052820442210813225684871240693943236597753038601294580917685583920956887373139292815737175276192840257230807836997353787613340336630506061230803366054735767576794853511346966278165047465681846126419538106451502263482931086240934877256184053181804227193971576939733056736499608551144769768681151516885471636350701805799753921022614145986128178313073700841210363508386550510307358593446468802712923718303106110844063782371929815541162712857932628687524384703974887782966510544483269539509103044736790324514093026103694150566504583075109128470362025389940320411654631576636064596997403626251393130224840873237112721484455437187787915817735620881467787316069778993410423217157755837890188477573400944966940085060958653602133304889834399089364371151472426247545367394294147247305618569857852742749084763027416613149085901549833521800523379830650795146966726460596749774929328990263816956460872384602204718731024327864078594064814566367425909508434484144782925080879336455680646845080368064520072098697085526686988115195938598068600235099348939731414135174689263224894285278447976572179107443371601426804738175982516337820608072172898584339135718234889658054120802307253884388143011457536800881275165881232057510677678031644315545204307809656324425148698507395735125037135247165713847861593263618598732575002657303807650192495759509378829515531598326991915290722180040531315665687407077888915716368467502659584112661598978441870312305838433085924517759798110546893043463301466984865414539191939970212212775141156756634824278479410374488255295975586948247343703561042249539618946186325361329298389800398325051310594517329097824851792168269591114929906647027717501160520132940181237476209849519044621378780342257440771158952960868237494060050405671387235649600718275500957909503735768342355886921754570969160002497709541063411730580989036771493283631624891204330110958262346911608396342077849729974076401667371125268299108375098186003995696629208253478393951740142820991940140364321671174203442635528557371226226496206557031512543741952854746482255220700868399363984105955049923735344203370857654484996719940497361711136721152525822089670541768844717386043722081635872609605669792371175511654140775787018782193920559917472426502836300746111539055189626763398547660899055030976604082834688892881420740681289079065285456759125678349055235976340786183817847379378505008667124128693573917165614488007308967136449437803276452350102550822162549013492230298000825614500144808294232635698758398501067831607168079822925063140735996279358667275271500045505016423056878613789950950511570328610569710989752779734786113243478307772789696317110042933047524120581942894203281450379819053701592137544702076385977263440247658801306240331015840346047293788701304894711321223258821155726519948046717510201505402614075122598020258595912354739472042615319164802033778023395335431454689959817445159712597263212432734650472465612869376376096983791918953011001144865202369734666015366646661097649702866445704956834843955496079852448040965199152189991783228006398319416839512679298598889516210629720863772137261422833502101985549231837642548941170873999155527669656740612601376220416357085388904775242682368710735887895019544639205008003450250860319436644355309350985268246015946790637328358305587243451734143223270999581499389960595112972644053342947052203743194554525972738550023782191178534334277346712425374654532708119575731254445770276641829924516549917759379473488341172249772860046110180075996675419826442009076067699394178526930556383977537899059712076819401163931702082772500201886304643654359178454787702057359370219040468455590493601824167319773117265004897727002766605100221271417167742043768834213819798770753774003179845286614122800398527377192490688847372843714704416208461440701950912766441594020240568234151093519629297430384549210567845891323120654282702950323720215215086125034032277585689747127860022900709057065447507712483173334419456088285495583083257486606495210330814759321432361480557033928409011599425086084719962787145217566864090403620787216234844412989387501360839876224413474114906038099524622376193236771514690698507003367117021374402806601261890374673125984730729117570863646746382653996626779684502317207684548673076370494655823803014850284211753549843339568834518364936156932665620410364878929704153243454851694106010777498724385549472235308085634915024133704358265640253500664538093410672069687511802197326434469354363248945067033764202077690517786895012538984027167231246251975201371585979190031185033459386326410212386248870434890486268205091746738678954572241527770387516120796332121194079579549295725636750343534538238984609516995533420637006760885289748852638427672234544795655742703261790007069146025507428063240997674991483825167596654917638130827475219637248417277075292999635223687080165314149976120471125259152069789638151116426290780496434181114509019679483920796839566379756659802225328917961023691309789837955043981770324725073101144367083696602063150767333268459469709210968601569780525647071067714403054325174311117566959695054647918327123050370679559534131101229740490535577905665891663467610610081508442417945757845920192132372986040596232762852184260390725068750459042567684145206928671600717822897771475694189702222918384813681405264803540334197251315328751567962120393685730038412360229595635100123564193700516173429867876137210717149272937609866530293709678798140897554858102236815772205574741790187197756943713255077016190175202671604461622121065084560657648191685744702325449944138151921784870887787250286484518118289672109315429810961306865386818170156070085877224717388532381102545067478706074697079661008446833922953689396847275537536673549611786513451861311712111281808328443656911608960637956419845120188238965349917353198262638231622441718341651270851987147622672521604008401703364445322679306596986053733469106339531423054308178658467247738501635024025699531109461110171536715881435990064359071552866263827991719908057979980773112734357941713103356501885245940396273744699996633954815206125341205916830813137796522220343158129939494444456464191176525703858753823777460015753031895412506385045511302277442830856845434101131546418802436403810363222625496036170096572100899751719061986343855835069844437838419116460255230143031133744272721657471898935508160881553441990940442911574154309913195920486009999307588212470684166367471352050231157953564619659689943815501492278965938859710379908479737347598204220553281955580542007149436407189051413814514417103815212979841814478238778700126793484478964386446524459185158840401719709731181691173867896137239609381412114627390669340501343022434769143244541689366010908597602550485855523890803863598513897601640309232134304822088252420688037866295153639142636496744798324220676708931409846870535353124372851279164392954532867617953214517176220053080002447094188108259823901561872132789891027878834188733699400178602867210493403867404297642348188231789920488875342596900000803058396065687765989138600119008926718262507403738905854218391840554032782212743030110238930793145190036295244873179102467482703325377667823563879932270985236350094362068782295284500237853323775474999935650489096004123574067753738402486956497799193065019257597912095864979686614945859909238608401826384377933090677802367496750188354218202998247874530703314359463726803276385590751821404640300700044656328120361520266822082395525432737836720061784144996378705668482164683640413374747534611409770339334814105723672821058969222775233026356825368697391797213617708051071626203013090794748846661645640763577189187360682466852416709254185037138205342561519869125936426264110688527815375623052208389667362392030386760846330083225277379146034211049884615928090105056067308761938570449149814969025952629706117692969596096205935384500362774004572980016728262216417617966892284819748076357569899807470768095159323138223639425402167144700795471535010575755449876842156518902787898864964207968517446071056756490583954432003625131045679872944882539402783132388710661845688934505972530659232016111273362404997644444911140282588488485106961404883573815893897789919753941859819594706737395805339695773503434051590296107913737038212937485269039962356855386349747561668997842044016355088176176530386813664459959088614675231315575424952628159420030110077341252802394957021809639228050161905755868196063292414282639621178560118969445436468179049568356617716331639869257098763509616875187292898164224697909249354183472550221702862305171583847584741611912204293923008924097475348929198652343019683286536992006243802521971591732582714014408498840733546241449852756476246377327229550059502154389900956250328049632818428769229709827736465950296054376798686192893951222013905112413577225536515334517439230252514019895473704312905103826431867275046713984712659293810486499683705066908049529030511636368243270608028608377238524295391852890650208573047310527525712572184624917498031437419175922044844819953452779859210342550000910700562072789131236785319106227188531150239186920977090285050126578377579016114943457355758368516388592879082757333421515575203948861905817163345599230074192947661019193933598345772909588601497540291427774644065387124620123379050872425407244687088153322749799434662530238280165726100356537580590534479402095738260680208601730649984708715209263656204452427496556821207028823649424933211690124855999126617188647705090771714180268027520317774694573432759625344896769091492219810839503151393702026208732616319839481973161144865121722158626874054549329959031294913277923389967153187286867544161280012563689689344101371835196427530149216114305093492050333505807231794167730154178351438936063691838160809827382595695351149362496724658548626795225332764633832191490750462557529982545149442852535460445445034941694194652059605105786660811847490768256198684395374924752737070479459084508154554458471636071066059252645991269819531496498468951870934580728122088689035245367658095735589250876782767650987259691358777218626861336199278061021430081210495997331226942666907837198622791875356424025941030338965039827720911029220234053070775351398182002127588220374919525377735203712468780598991397624288961875483142324794892193495973720856282296951449186248205878981701053331524872085126111207149263700596719170399715672669433387342683561126507905187084248378318930299937025990643556813026889618929871964596760410539887843400615685566649027028297160052078661933957012091844399259661878838535225627490609488490523740771462697233325629786395076667188558457505593609201134028515229118887431113586165457805003981361396486521515916956405597474656364394489219855546432081110843259360026126290061291728584891423396350966101985524315470383509001396204189840826948671190570048925490819637574849740056555111141196730552016419029897425866883234797882678038745225311187847442273431417048857867435809776251552014923807400124424987143780721849331272975136922152990661500009100089643422226305165472650054172219598200484094388186987450035518416661189501242517064661085306999902282420307639877221026236881592298388479320550136876356432567874315756865025178727188668635128405048548470189129912060069898750316451371167161192635144165108557603135165579715883917176173745748349956991158680118941635399018653095346700375720541760601055028000835844692958156102428578150016216882041163336588489802293926147072523013747478284662745072865975618801844348862789474429604770209752218128939995601762175243658236108203172983095290965584778966827940989463055938089758841820341762820569325870784447686505989197878203615462346725588492776599325747056381834510474871889594518949319848358704451495451668108191220165459908624603981066596299301949166606795001621387115638869126425539107029952756822779788385473434120001306767163825381397300722177957113804295597040419986051939311440092592326676366523823714082152521433656426122136645207736696568002429254169766134219416707833157612526146814811440478975563079943799704349508229442330876963051738979472521772281957445232101414494153487973666268509819072902416008588454606394450065717493962502236735039562192493402391135522994816286550756101109700326493740547554332681649949576657765912823686084565588821694232785562442720840246601240471118045375854820785657631485006524475817725262471551885968919057697391544430059517861209144327207856050967215299118303917233383251670918639914160459158179556180790762802567017392294537946396275364866776784093345072217715557325625930179149081301412609254510109607226938512575912695378873774996499221288922070803722566008937806701994131063392429151213622947626015092386045003755353221859924677627974440652746230814245644637791271920498875814914522089316304538489117996146959333848866840080138767459033732380927426844744786155165736907655925343777678092279882146044980129760900388783389967153135643028087401668696881326251387461542372170685525849413030172254458521399951356830329513738667660653821863479162578923616450704455961095681034335294388486359478727391615157227572715418691762631936517845975067904097823794734496091383892822265442268319264043507898161655035004191597110701962952958137897396314681025392052147893286434121010701524175155504496049841077168858212876569116876702987351221715119320453057412216341250365807274231337004371740090067051446803741870542694836580146635910364174796393937435445568624249127558808411658556971307341878010208651422038775852242713937603487347986887260215230097688400535517875661132063119809260331543374471611763161977779004481250103614750437191710548166577815541500597414480986822227357902928580102305113653183384374379611972685197346002622260918447658552384434219063976432209730995057204451432195826165269730094033582278719854584154817998808786044086480500574268081128053232824056983167211353621873141950246686329801428099901036462613002943240043440508092431210372815257218558257784879159826323481966246232829922087502765764923524933487781489687346154559742866612039099792757846049077493383098159131682122140424851020900208706006814650416679595437448460140227774168000820557069906883879439373386621859907886368560315929133708564932413274574900859686343924688266912216332526486335027225792781279051334829610158832744960360375530995673759889264606453712089316469879569394205129492914620787995589948850319902341167725163162450232305904306437741627353662120435362787597342790584301744248874341983914176130303405189930490006118501301686510263705961927694948207632764651199919909216208922129238426340649318899254676167623090431883403420860251559388664556859263222436253329962486114521739809045134234033454465010684006707259181311343325113963409433312836740528860743626161259898301948981626702447449288964754804731548810483511249920957953704739152535638274357903384918285426372247711723970402850312765707246816807081817367409278647122672571878181524124951638427122563480525383050522435283035629134669882223162614655412587559363756817188685007608571544069864519984699814344452260541901352116761649495713954181988143615502945746499825712478130531093899517977240216292430362442936199447377596674191942718761951414919350960686955094313506187487714179428966500313110422833325798770711478860419034167962224653961737217323594805243416571217951802012058262784849031433678521698976917951816461906174068581738073636593337138518366590444764551352776613048796447600975269747381782584247668019029944778352306768961543495347829267360765623933646035077217733456961705048909447416165918023423655381178155949255766622569011977299647044982513205769098662726250502542786092206488102386807798507492933349288846276722234490432761803346500821754295576604165064225025848488657826610644580414448663112563003703445208732852629682096838075392607102511282414730430356582881060648749651888789545964405448829744297862277659442053751276754474155756228289874169660560772938067937914344192992182397935745609032891851198069632824803425651256693735010485909698041425592772598076326594589131907533144423565515615703410287416196298249037125217162369086817157403868517679257090920943184748816042948989389738270410393971453621039704257248002590098991640765243491725666217325508847052924083562050108186566419057824001940025193137645582491938621978738295948128923100996279848629031150224127719547977908216278482162648025704688508705263488921598335456941905724320735847636456492116720902410064816291291536009370371425642747528671079986341234987495698061368699066310850621210560369254701169275393705414782355025626541322039586105227686062539718605565378427743544675602025905123802420945594842649077121525428015069276672652741308937425741799977386816535657310526503008639793969005950910926118974727588116384842086013143965489661197115392331116940623152478468566400570915674169348664154003727728661423249617646805859574862009050714605181111338143347892318019620297660918190652735453579707318492410853825371896090808871334683217771284123781490326722651104386173112674472316801437567260528048355565332591391448762558941592619299641101720593855631395277713861501203158353813765190111798862567768272671410601481836041192663137803588766818470197708852134625525933887065631765646591633748317603453976577080731481180249045231740502333935426448331488524055414950354842974214696116368216105966430353400492165203541789159927734458130032578843376853248419610798823743070910177820661855255748777576045196293363462489286055675737693441024006545456091225319872383760844312408020951071485168029173272590837489041311904163632098081832749913038367368851416566619526270806678234154246037267237411878134914494352378801886798557795632314885870737893862497881386610176815209714574230385063516996373798109813361227532259530254676139872844232445344303202375535862998504811468373908707244808397763115469650912841488576332096876486400053654129949886867693386721349016549279981721556756325509651041342373695209702654101646788681690999867402994609166899393228892215015093395591621595280859125988130584128453669804585174194317374247394950503004386791949117295976638455791969554557162805173752377174535047195281567083423791254048905834370328028172687713703514598550962864449702028272965749092776815384241042263361880225017084615960539059507798895962383504725910493576215057679907962668318326926338350218062691120990324999446465281753135651387653639254964612967390169933623150333211677323226177939856393442179789174237803862855811351998662826276294221339591810018278616391369144975605759832933852049753281497860420055970345023661004332949163487127712397143540241090324280744170858627327397098908911769447478303147468275996540737753283116072172187007661081779965445910793257863235167527035108965358707971626500725700664407830188850334353945109249119286255326880470441771440130225591729201916875568841324154084959855676879558511976057136355207710130077149274554534910448167550671870171200446449121217012687125939517428236734505860959983257146470853037517494580758727348652765145717511082042919347577613867312852599167849086696931739669400413694226414097662717638555869308866650626242070736927165873943263950340318737902401124398084824626281990444973187095614981047261896642467630578783521042089493901860706593856086838750335412474349182541154680817608551993008343847909613991438630960995100825289966628515046287383455887941159619481081532552842411711824844742448605747316494245523970699070285416275844088140427057386553496164092321413154571037709059368213970054150872116420214437516865808098789895768274205166622189789122612603678806842733347920591122198394079688310351834998257739726486557452712509808914268593293409605106120681664062513496593767585723906456400495446492505076541935172896422507585308827055414775188980042079668883073022226398754590244889693061020078116880470972723466416900631785172214109291078350216888514321238590626654808829204511667451202501198588157623024890007008269224039434702233992721125776770962320276971393244150736740451131338433766751653375311002418101564866182266073387323809021822126618418748107236005596213911541554995027289959942087931274161456989374247954435795264611294127937063534397219260961511308205811597059805589274745333810810519854677182650102819357324644581909179371571042396337693067929836880372722989754479266844067405300011690105254962030025595933450856302094601778654156242521897408042633539247303405134652126434687893111579930462846545570103723459036513111794090197145986787409264924124558873258384951480589895488846142561858337754147701490602814238329652498973295674243033441921673809452825089341357425768117966969214249450876228018486286016525010944633068114369175183856379610373630969120240171607698802473578560278869494164859456276099763011994903126885831923377512963498189186077898467234935455692409957582896967483566514831407165021714181121248591637768298048035598415972755879529749685194107618283293154909836088243585987029014393304013374050791626069592837110279006454297469342063872969223459186298516114444368994865795694111270291928766962628644759083986323241354562008645670144769632050930003342041866831562560191750888895084990904525079098767218141064936513148503702828048826337329853486489696981972601586621747054791708845619339085515732436038113166150916254501100428201610715954211910495534113210306973504771443130625411619466155213178692557175415143334669714668390792708197199881689173229927131195530615976033611238589976184430943747720878172627816231840485064567035453900476757477331566728089679169941661958244997325486130475422357400168531550569986404869690156520547507946918753586175505143959531459900605490023217748360511845855713291647251718751035617071358861144226160901999509681659426319659785735878491869691775457386936654291612500783500090573331515753105639963795905197113176376478270651236939155521732113730680242057249269436040953569184172098134847731787083301000762240355257862748605598641026996729876695319518160451496811160065527194867054719707367775374855462607618504508408667016681894384036444048045604586870953671359880638707783247869946298122354592338191955189159283747067685430245849358102632180398880760369240104157020596617258417009708097246256732615813664695000435294385150146860691654251190714586115276808257551102897158807220587023773605859486352621411284790238835839354453160823435991133579491079149185892359105594580947636443768735912477851193494386863056655036668299775493981952195089115430700003864811746950350358449547846057971352315791447834351593555096154958155320446839673040812895489255523232441055158139790852511709070855170246015866105233594472465262945424110464014280885354665346200408259956444245144445191187659656849252675228649960796697060828805437708568561346226727230326802376154393709565537489696729980278495065217554644629276763081156844519250626505087061526357931097571182447989580937204871380170937230251286409394347942582183377242789543213037536674963915920377038586854671136973195213817843784713095163953441055733083742916692755296912201847056139059308303626864513031596403595787003585348655821084749393961258131535625474933053950366573997712759660616985370121300399520438263801832267189627164096044395241259475187016247701401655723288915469698528594748709139513178441045537036143794644413243316590606318082755476344991369203093017742466703370523512889517697990870108256292638503343216328757750947135890405517103856637901337261588126929537522512691587166274364420108690456159506805811777978427010606168079564701939567377176813663213289257128820290990604597072305848613702250013287153049719316601682310209118291167177337597206715966486289007511647577483885575768395780847758661602887827635220773139065006287459518810671166151219988420742549001189344542177133520292995004873654721722741943097255785762078283230705207080051396274377275828800035958484120683201069275094049929178421393579159108346989219650034939350699741828237978259801925131332565484849084888927536239396524651530248035537441112046052475220576460869455875052052007403127197735235171639769542138784407977945976544071605832001314397840727396383403811102802854274725442778958545749400340756637892574209246897619737310326578913523113770218012746741457439718174845649318403009106843105327550430995201128222301809832081126375101256388905933863318817007584212499058988621193493517126508539628249864274038282428792989638357394099659078416501825381314623598700539731236540472633447479407887922906226264392550834272676755042905093972797199934888606369084945226735322718789266194169989761274596875071696220386820816340139676994578929834259718986625233992281784978736690260347554609303089674661059667344847822428223623129315583464973740824648863215159785604345156077315071541602583011770413638371686946864928056077101414923994908114484213882749126858872410528208353969383152111394524260303301315455974162497730100817623692670468893224261129623634198785311320075598272195410453824854575266271271815333061168015906750822189614987834775489001767871877292204564822019768535353371106041073290121203936169910282047317449953461071505293983674691514884622751146925802112947395767220537368444163221439992400662445976276635024154361791838526120095573545300297545317400229356411710448230500174084682089476167436091924771330299727131963026004750732640462317993652785598220999018453580562785332651265994878814290861878957782906427083043929850699190107309811840965970964327860501226717450095034055421222395092221069516313223903198539196382573450837822231264228781496981534631422900490200486245400375221388484156771461036358230835406051069927295691863348746813712909899067076821619200974143293163024341643785289767844000820507826576931120901302854517899340892283683470602934765908653789510340571404327687130490533028946947585625193895555680782288314678898235430761240998620620816247598018352777736194503518580899771211856145753390092252709609867067679038616988089043024701469334082503131906415664648010277912442567343897127309426630625922070872646188153046294642886903500116289877352476677413380412741908524513839228518396114844880472397071946826941144157401489157656817684809272440222762226119878236499490187372625942086765129955444446285992580230264363265908525459157983971651900521352531823835001201042232369199457984064499777934196520716864051617155664041825002064257795659952410640058462104405257903266459370940966605631290792596718158217531440883640015176122666893874147359538104554878205240772803460819334386751992986581293526336609050176618143930202264919439032585240791807260576025616340146987295654522175148754841582201931970628389625587413336960767599519404911821461962604216053626564253654657167924454923944213629195373017207890858744621915636445907661345368540336824538492184937123503422696101427621106304528066602405116124839162622786623723618204251759309940590138464321774589006957054526808909995986008990227239107548303856350371329307289850664045254409979416798195535655547787661998980204685086061842765740029183265605426316764641290735198812150471446321577703116400192253438758048117531918234653754603502216204242212397915389011275824713045434341467557317312243792250875999244452007642430696255175537162379577821904022839194306783249882733293097249254492957890448319795038140902407850605005214556566498721419236448144635873082361724702841479765225987612134245544410681125035915933489995341380600063236727661208468344244912505381394016935043951291331963324898800909913726203890891253344012102191614131511444701852392762952300174754137074397228670128361271766936914125674676009566353393619226945466604132954841092151158879635074640777800199321445464131541102452041708057755927133940391284102417262970833285755487555691967613482233410542089911173273071431287509175687994574192661798582327347477297197886579641017680137963100808748273176279527052440899692771583051796322889588090501060306339568414672706248339905801204432246403224121449514932504721587979313148380300671190445161069705539496132369514816153090662220776912506575072127018158851475008957402061637593890646996879003854904375810919860701870456790574341076314679542356165934008114238871976450414460079185517709162139392096743720777335070923958744842541842364011408852026877509615405642769108185251849288106255520101049935855762744636495353443582086299263638200906182811858025005338275610523561312725073580753554104542863497282210118556042132276183444904204982519120307681979574657563630210307149623919389699084457068651199548325318447167426164390275711643233760129427959677483400449339747716355593529379642918647158209185307573497863318630300908915365795244462330671173950856469928991164624628786259538288712443527529107884625059361581070728315518065858392756008826334379975316437110008708352051530698248255299474698150165664811773956086507106874948985529013278957753992953510034859457681094888158459970334614440805132080180483330457372545528763395920769176934408245943185274147995918409018129195312061981831776804000559715458313319076445779659348707683466450236166096663734123597687441634602666238078221842001724072593897364284812179732652546648816926217970019350943133041380513709088572615907082564723841029787891186356816336289286458410110910575482602514121900565485736210392015002128677776304689796129427262638857245477125826438631713528928654756649138017675460181021027204292705348118984332724033921298973186974533481065496258201392150336545557878182403363116690019625316386033464730406293716440048542932163458175975156922436981577242610694125096945292470527327637113860730874627070779164872604684648714104368532030270627959727795647986721135176207661266612304980276547535907593785786035747369264159185964772624136769260148190549219714344241088598056637852710668504821282213541512788612089983616560522673699881598859409751732592736812459042024384321104819261524921798377937224030575298289254337018782987961296724723493182886485308328395396390346648595079111536220079159351750740087933841440898998569982919027386228535868516307615291926051049076402523856882578618711129333308235849960117882889799263837761029470362762284281892331239807439743863287409312406885039260737057348079781368289081371334761413362916011365597569107704259529104589500519664717457406303402964922529402096703819360543836858989726564176769301872799688364682963585431124169902042553880594968278738626985099666110896044122588065306756914973275089442701111852309365888619136441038051992886300743655524504723866207938327006527117404839554142692474910277422140012657150358359691512629294565262437922587777965441409920494511046869785367387967554037259943115001336870909788888183379024525530590569381098863273882139332081896933598856290650777934096566338798605005886238091221532305139919034151054428455187741824542118726511646719561462430876719624386970252972077704161653511853991355683607210211773058828771762699216338996371748348110432472723525652066888610136270409922023531698935919570019858334904706041723657903002639345206058867781365541155020176586936155445074434531337222992684783042150243258007815595403591240416892833953900670559341084325853206376387020352785929147757470962243060744055724523098040136188496207131379207004634393255146409244327594893993495684742269806817830833374026676575288852246044885212476457075194159513179448911627228955064345195076036773979477397179612424921550507563041872396168988743964439492104624162636436808672756483186300064606891807705305767909262982279128054152527355835677485236865327553030686685441327168084802910124696913108991119511033815356308965859197028192341507217143553503526818313773452873275796198661736200612451933762806994820082611968994349908887247943316393076309999008710576300868884210079773107246394085628681716379438940614135890213519988429488276401981320815804332976736462497063228457459533605642902370778929197455855001930721371116090024642148512704124359013028740811981828643353634921588781994236315035507614682090470421003265715585365589088001099405296506357621671118699427666730930214718325661108179404746237019983470447348241425934116424509618911099236705578976810265976739412627157972601360059079939521094727302070523447519267692383961115704902761279051929418182392748123717434363755523304450776589696324345733603742976422312057340828645323604139867779644124047676336346026585564027792999707898836724452474454666587470282876621793570692866383259142379136040820062636694889280972602568247389722229635567368758844746162916244470416288133037659509440231710724868888285738082565677695567971132600247893930723037697620653847106053604113120302109143978674940750798034835376301231908208738426959339324892208845585573490340594492248115562216357214116108968359656218926404499509535148407335201818547411218990508400085373023466813615691072942882111334914521240773963137511590151945989780000138737747088634668473789332463303749234516518832976182357935430763852544773290772080786269098907085639729625896531765053318774455597639887385065708115713794955329189678971948223327330572660067281872074858422824267335012777121243241390451634001310879249697683899128181857939780997395683665605318951899892225909564989402721313680514822677233765292079589383472576319861062327954372672338984542798722635945547529667122810913654851280767196192539103611072566004353151595237311448107259911885159639734046909497840496985281003613965770367098843818653556503253972717395314251033187309349515346036023488249325306195869047731879640957679674732650832953893039853003332917183738306725208144696698544833512651054182110880799571388150468261348536848295024772642949357877173955094056705204854000838107914276233963685779945098669009037077091465856128292770153895757754029223719109383017501105432553481136042524053099373413868965886618950184360288700581733907970306118337284238840415358658123430793116439936236377775482091032249437045568791696262063248886983723222589215404917990890919275444964499580473875096572733938715331374481509002876394510306194449533223970430594135833868136284900985860564308065423567121635776828067086705232465134712676583150128964375236170681380767646788289306521857246924077393907612235568208272835891322551493435294060236251907679123678717599870708744786046144462904575090809176271123248255584859807389325139852454259884439007834267467976495703253254565942791692511329457529544605992689014016083922208454479440285288759672562409311989798265851969330051137040054904991918121527583785240247110651069706018907404597265536286067567129130083137746367315148709186055355253103043913495354300754634385934321280387344654145032908031544479602307519372274887860798548228789825128816343931925588737378720551469623131657193461270670350422582222539396964313444484274383000061674194000560106952704060697806562334773824810462372379716639582553858595403216111116153937318581836906666495605459277917606541484732645791406780717453571602488873218622602241292032505454229413272525772537310658348264720124056985683299318237952212196735118404936295348978778299647835156694124772513850440603419366244527013142635969863547505907751652826449500512488649921638109558122682258858870483726252300830241311345095641257854424174331619869458993347206319886408403273392266708618888800553185605334789508499063472433716732066350128554491069641298556090189649554202111143264257564764540850418198915695726482527988504258801100365669542513306215939635325826297963996726858149033143485972985683936839777867279774604728065947902412837344247462215021355573918502849386806596213566115504127624754784401729037663537214718156193395110307680094061522627230939111024924850158772944113054500988376514376322283784624735104395878463748805441809630423872682198493723979112548501995647607003929448211818043555954779135817126612932692145328465278530743756556888333059151918762391093953428534885431980352790450019057909056320134693635443565485575889056793780486586891374878178684317099876315271897870835958807153349492635114261704529153188809142748194917611568528377968603940858856787368410610884572318218029715188310101153067175855913212655438621941371960093600005843057383651201093931913412017240811882204499433500402717723904645802597551551880224972320595742249428609921389443195715436246019442882298215960079315590382296765840118402073714165621943894581636086705690551338801962035173888669868541320465588731890197897588136241569667708467994614491691750841203923792802782369000255338317943810470784985038071360401592260385562953149955194157357677677753765349157999513891812678936447821538715673513261431826250316602009784723952852219936440441706102058010292480262821034335114692506019016851373917092791768454890228774841800074375432683310425018477330998334421892362058034672831005224033132059770446182619147183079230310632231143915662519320359421268726150711546194725150674130996930465721334499046025440160995589668089051238404823784639424367736737879869847860495211733884587707969965435097755946959631486271843424461367269122675585269558012019857229040736405015604366187325212871951001859230555303795783402609996913306722386386265231925491296619988716914391924576215199161845712827403624978237940129524711171208279041956193373933626653385005180944495681629934891953796291214922266591992283229860219686525451962375427787927595117407662519230499025450477690082920607834428435156095451155761029008676278372324423886281647713895196171474914601996799413043090493763253607977066575656584895610062168771019185351245392894777088655265488776218768184088977399903523721399662704603456031708789903273177373307578377494023194536088147858516862642657458958447793449227619559497558385715415407258322536504692677783775101671964096278598764561083094190946764371595485630165794507990796655308537614112748551535120628769136986778118375237107266638721324461663520298475081059484478096921163444043043308718336761699327046807575148821581144006291146278407338562104721305362623984602473320977715640585096500905878711808647303888056812835184212439564196343794139187822377282964193640840544358405197234885618671235108700022486928961471713566667242634688664423065158607554119691850323832503134904078040369838925631926056776433990669909574282739705646054229236846202286814822732363255507051124764701067487320217949921882386985743312311013977872915092545774814249959998290023495152077908498260715894304959073784003064592002644252779625731127787166963803758995586543727669669339422952639952871560424167475310300047555947119792341889685763096653382251182671972466312674584052956788591698014572123971367607531387790990004789128592685327821705843301118464327343728724005849530007841523511245545839116771550505100150687817328540174439633676050091293434476523874619096387171122116820758895164647292131399731803547033293311255929133988974483116779936432180820195219522375692951309235894727359768559564126435672875515713279452552122612066315626165489701936728182366046987933130333316173793851632919401024622987241899057379527169417071465819434748612013729009213350408225658676272813959562037832056685967127997126271034753058719561256184810898368423786771837166334925214374860286104246301306251795276107758161812538435354859728801079297541726044013583624571594144065356653235849317169401362977486802594083832233463924384296431456478222361555218727179991897703243800462196049477753981347768532465117162858517680706270852422475974605482245973999992555859687521859598474737066753478836354234124680044170492132780071375416821255338088038918269213320279640086620380081860809347733121237414807592439277864617313728929825881383780339817549995302779158374325263538360358647287558511477583196016394365032921640672307965551395770750341311233364604230388711265783905991421148019406655381252190081763653667892631021472886227307941957145853251561729166814735962280168446444045035734905610951624379797857921620332962500916305520943404166736986494256262772846309637123961641349317656654387555648708949464231327963568229024486034074792863614526634706717530170522941442047237795041540657516290262796367715969661149169997163454951523761400059890775308740706161623093025413559963327498497490571266695298567634324750815584511267170079692838940126599542788760019482573609030885327720262500740427734659390894956873307625099543468441666159257728826277338549992429040899377062363496859668885300256541431032195999765948260387264419922372699851188008124629383621263389093584375196063947834083799149210366723916513073497922081043649017076634998590873314223146868410261911393319624293747484410989043152754680746769525326799985982227971167215482196587766481355670626543287700767991471603428358936174900343162584402530306493764879650435410750945186526005557389531936039160330587452782288640547333097121735519493767952471258965534631350994651793740005314656995060371731846669997484192673380478041585597032487659022799557171126996187379526717496749392653192281273163926905759113794341382145580683666935250643904543266983062428016450261822720391002515923719515277886013481670370610764514795880136547317408912704209338330889459576700258031165271041879770370255490228767663604495480260282363375379224262484123350888347289645618937503002709131110607305517534778518129236148350059182645759476977343949231177197320526069452571322361301288006948124710092855873851831962376736453819175218161210571277576413041944093432820382479798669851082695524994695037989549982666646352166935026047046443505153269703700903463481057203916902651959827140349370244513761684592414726599381824871565431552239667118382259215270590844835691989106760034219775757783087884723163685762024009122588242243657658836297589844468266554094733218663923616565776137214570059791600470628862630001756583383511458812425943484531772104109779137247995907023179435224872864515998727229485395869234368873664753273006179313981212551019804213413159919312705918528724001834163273336510060720524211564594066132484749440037828496815836301734021921677029840982861365274978785255295620238705265178308561217858175721545728227798086850800636704626686423678078516496108433943081873980552942663789711943577699487756389471149275911857038056681586388437102294932666014224970799057960168493927920923281047119470584077494586314581252090404874630515178399808641636445566554072077032262937904250433159304497696387071060122916774690127279110150436732359152034081046687032457142091901638968468509979460812666819992027700382340617308000248667322698115210899706632937315155669995002239526720568043186337437548271207791083417727160849008439979825488877149591821925134911947671675697696422900281104167762006083383667316275211849760587894721548521141751641676140129135124458388457212068805139181432592029235229731196472682779618298459764904211646711410690298368216191917897965869055642255361855572703686078185215050079551767134277080102002799865132639191744848977684107728789069318704028978166407308311257794241388987149065390277682057416775368961865903600393969859978077687836490761710191476903900093872205022721391082192623961477318919031044943536306625132450062169374943609712256676576467073127613395929994494022482216569959420837633016576351791794769373736896111031152207099690026256510847376825519098061379988697777319625415893177204129034692417342175338206515036719685393240895428951594883235380281187645224354430517087804384408227447353288213508487869772157031862528854025786398013873852592711058271262517548251372153154411105007387150703062975963980659047027161716726620855660121398324478632390767583291454219245454271779749637455059370333425363958587504990380699996868062638763513681670752171889947750099474510782580818814834652210503956265993845551333992810777415436796926046388642819662890873364980104680522149972967333788427744568826835158503904124295577376029817604342749222791149667926557219640861315273034919538361725135478011656302938184216321969011598713246073812531731400349137776082256549899652870046471263348787215162141008095375786116108721381799289606870494514756829291132056511988204007760396655782370017215586457411385923662983519535855539520275020642288182647821230655283601358406668125843810217271215112312405167951186072744432915611053882611608343262727759152260799338833208184905265728963771637893737392695391531926831941488403690717739847162427048215011468079316838586485012096694645310298716547179370167931383845226803062237639581255221910198214741359693002309976784120223812332704696049946134947990530045682489289838685138972957565435704669533063933655927475978818791707345212148544789000590332276769682513721453659158778901609404364530325064403461913455070393246105376832743606598554188257356169377043088876985831200762687451787949744408599843876386651509001499284530785858489542700722493111751233190508578979405733073390954768391685833439939405080653140880264407330305224629571016245192754524249575342764181619257781243026891217661488601048616800018245967197630510391101074579586726591383241527804003075689840816014824051555123157272507099540188269500613007593983056804525083994665967942717433407860245353575574298631559033943583121951397034129252878765371599502974593162558307320452165622241090712296710491961889091357999408541094129611992283509393422888880743162586973442251583454054574238130450202855790883283589150646274808336118254536317262469763035716497881547704793918900302153817600804879963848998171390681845388834170745943084550971317222656289517897361349085735992256204275147959638847517083438655419967480363349862970549118014056326944890348515244949920815034613603590625771261398269252399393334722074296241809838791592584329825529152277424254349899858404028985406920265743415262596376350951549812624950256455031051827048274180935287789865969515820489082830246450681630649827831034120836253638887582195046316944793943681679474705640059684807238862517067487670829073811578729261096318136207733713581980834892211456402390111054909929343737531369728291793953830803821154630118077137050410350875640170409339130098366110227866392258848120601610987332311161470598275797905657924157313377610458489983262118630485435598017759938134684976015796762843510590066355970132810203739928279425365891491688225155483242226653288930769974564116223941308209039366358304133233194680465439715287027172114093387186111274231833291325321432219013285563712716870068696641159896536500390933576731963893397186449428412539578894421999042661994901510728246100852843399646642437402945927456918479674466383720374715227814372245248225836459287623269326252166740370863623840079273619602915079022564527245779387506701018769953709774731562448171284014666050873475683867041511592116870500032322757030713106900724316935309624647863114006068579776049624898947302380385600036780199019209081664138954328214011562526049192709884430945662190348330612633917192908541786258187546762037880458374635757852476815903774800457726813608886832839646290665164136824873542502849400324565944158579705071070943982948652084874728753178723300523542168125463132647364806302910877048274790112254314449533134452723130544260375936504250210528371650785197599216618422046184128828993757253985499874217722539244343834427917041935074296253652001937211898843211655184824521258369559940060418314435467900438283376555991761883061937344391295436420375635985791503542913406383599948699915576483499903291198778092777526889684219575962107718610653017025265316425260653653013166018404423408037364132297017839677191869144274936424379172913099327972974205920858443324386358988980214260534877179333081243905570574910136735293460817380707543963597341162485232826566600641038445639404416266705708035057603389892698319519930879784130146242933363829825814494469287197539382256834346037776377998203099469434999353716660726406668353106605541916899791917090172564828596001366156825054412012671165308291401730500868338760364750681530580122803174265621684012803007090686311203782294664935431958061311940198976555908519242780773460481656623515634368077562160403317612103399839082358007700978532346004561823605814773400814022815487391416130749914266261918950745940531197335627314885806577415601665557093736993328288997039942695312035899990096385514710102784937920276741460608771863212176473686549693956698430252941479340229835291842894601536658781986763388849569939854541294436065377251534024728202751742174356453996917632632074834129851776128636250549240393085924896506809502112968909160819750726762922620600977609640950523779106478803387295742804686913328244100696310874460759979366715073746694026215829830131027870407347111341775546902333391528336968404132575539987173014970318630546057222454583475342061487422138082011125513497990676568449094779804091564183489073351737647516507098216489175331577223934269916599230233830916367552258339283898920815998222098767644526202758584949724175440529504006605275851460856746731937155746048166022413302888986627339553463408841117429296687199164806054727232522385102197011648725700081518963807869487710996480469987438915294482927155825027663394849648861842988820146104388782793612696286376950289461186129181981711359193083708557047212065857535909801120395656241900667137253385166975762094938734980934045556426049327319345911380163890215079143874275625360281604958498504687739792398089866142057956645050097831643630733890104749809383190907479831512216151193893191502932299673541303133346673487716471047779096397303099924983410216105565246344143832842266061045193062068716473231868823616987949077674326307752540972667425479844930845881098442121022470128666048909151665540011854578804921889066231994935328273480244366849131505631607602583756213176251439162627457900437771554293296102061986943291630700372063061615367797754925237933055783804578421582312544122109172299849900134366227698270298204287477542155917278566843402151133291839227752858676338283178887929591319693796081437305740273594280046899896287534063325698797013745766725554770374604199674410549362277674682194438165223644168490980330691854031197838449002418477362991767750735187302059631794591399908491485177884789794407001393626563825616735762909755102221125363844568864992963339842637419617414115692006070408085578783494680655427357295503367615862595123844673559693513010802484849998767152888752071059650664448336562426336946606424845547233691912869765734234029663748721808688100019890592329332625839942026824694434709074940029470262855535454622952878832728556200079281141520312514530683060669773966069002189416089598265513333679079985425387149667752681589485244093411353997515644079182546298255509361208357091012236267428155366172554453725707942222839855627587429256414543013757680378807342106669289606103248851214388128788385164858689881072359715749715265744390991835808106105134771946268243942230260893299611024691776773259540045756518396426255154762520083524928066429356786708580214720909350845502102772032795372898179141999709251537654251345857431320539471375807214753398406796126349463025455906548979275621965463677067911929117545639397341026647583768218954513623360681520482580061084462507639745937256128934208639423926679337066768408538455828000649986633563938089645997489713240263889010210622654651121178938518786039378828050673204890601499081755217851157077746594396038426563949487674827505458941221848640097018052918418183646160663991887590590605392984146831168697234361510484528906035474472573149310175521717036535571556826031543826299346615819855437914322052038941033056906449947418165265621147923365682306504969879724406916134574560740657623064988631269881456622904993600010201393041800938557365166617525950168957389591593128027285256836754149115024513183733974437609693178311097114727490668260357776036529806912673572832533600707041478296555809399319128598316286873800858464860446480287218064368938713169594459126537169509361003210159984702073665277965771465389546798088083852257796881773897760504297189951972267452445405179063115159339576403700928292907569910951260402027379139935437326392713631458554093211846674151251339155975315480955723331399810745929403638120958502034584272146122994387715841430813580017119720270227123783886336026501589717306292980575377435395017097442603860464319379290226728793586206990248575365934452161560980403988089785262785724458922194011098140508074892258369721906282459713262940996528787258638350243233982458680267378365709220882787729737961061143396819428030061313885717141510611355776655742536697417451770447548491296586315068799019581963256102308637961399762817819752219684164990183866961071390517938234290039576487835706906800971919002541661158280409661505614021108861789730945025832189981507547159952541832778145302193891014470152191052921871837513514046615089151459162751630602510054235413618131791368870624477447979916458070304234420733682335798085069903163884028112770853866202376308330044166625314673521499015439198295140477025603413941005321044984596405567039123147921145738272467917280582348404563727977137673782550876897262132631558501710726440028923488970670242772133486300315912956075198353811574898888394339234269545117889512412143216879011102458886168143362689700916071745096494788330325149026192522584898653739759160798492643529726053391102324215644791332583833734105109148591205778587423495090584861862509345567232204042116631825887977016566217974546826038000396560034924629595909441771238647064380169349223141315271457488937657475487977829924962689415848892553251595683677187424123329586644792791392141086850021891362694230612164652727049892279738612281479907288929826013675318776219082776658025358766420126907041438387396715378990259081913053969191864826214664152440312860391565814604497385364683241938883390323352988514113004057264146934883561312445197423298773484352747141972314642008274279140929396575972840739728838886126715451321260344623098669874863868922719599018310784573799646881749180912983881075725378981984647320953658964381447619769207791732997816945594657434833071915422711918844496794000133588906040203186644801373860695625676808407264709195444624321630977834047773742413660975599660314005130290264561248406730663225526333576314435830506479686376414513634598773566261100135213198217960332782556861279328232216071267683250710788523375317257152825142560389782355249268911843030639036596712865722250158965886483675079670144026052027428266815024010906201673311259950630382862030212602540388643397765457286278514893255717736754708337260460831655528662787112135457730833087422744733141306716205340366469489798351765000743716152360037836231267503749244195625473372233806358476127670785342906589215276501426949192935004510079684779390108634492438877829191008011170849446971453152772113409077838580778882697557429484960679846358247293930715324308715211343241199703516542911410531636765041966548714544501148364706244294950964950708317868526919691032391006776522204478073516549806921515473781136544460852282937358611475847788180138768292667469109305835769995443674310128062720993693717712000310765124446460452496355264652158437443554357400360535926990104426092160954214802542473005950419977049942156688050665261157961088301953612909125558668013910758382447924851330833248988940487235566478944110178458983817032354209295709071059490171101079437522908728210433400551920198626176380314703299407617902240245428699254342787270314342466757786053320782890503493755039387255513513272022300702889671223016605455838308386637299739760440899838972379857375405008499807158733750941431700775990618066090628295762704835178611914118827335681198027872197568946444785661433195896579159359748267808766507656572908368035045526545246175756247654306409894818616360493167129571628917670884814207452777458609245943202191191301495236756569916765241332405970390183928456374032865540557562568959106835174440974293907616169695961608296314571594706584647868381145209545066457217854579489309728287788453648617629248798866735997805229054211099751623109461729394838651615890721057646217515591880550125336384306537183522133524981940740806843010497577194928309986223548769718188193592139863594378937241307528009431587473133488916597659056421458242370167534004095121624631312294584589040600424833161244916103166665931074150768657486495170602010492634168045777021179143450113718129133649372118684547373006447511162733284561382021181194741470033992405825056042416436803376201316173867003683083763275132658808801056690521314740207510232804137253947241527990019426731499982072263918760252869876549969513124744321914279229696505824388057918571277764139188664076797852659570264685472623560926635590696737746358910791004232636642840073093689143410289536639531629250620489505953244022214435399160217476999469247302847139749111823178163639152808597779705554482497912544695047049639744776062963098940939795744653110566713125496912720427706881072996592241504760810852725722528344281987479526500360740081236612392419537226138445551865363789290267084779194594690928875255056954942270260267517286820107263861804277891354252644672842316839807481843914980623603152895971530430778671850383828377971035438972010966701370841289281228006907729233561440965157804423661798779958962537538825649974211979762747001061965559968419452514509413836770149955242265142553407329993972610010961728084305454400981812475565006025282452965579173155598870379050659811539633434771637634819542010848917872441227129807158129536776870566089048411194941420040141096290064126469979031720225008343039925880106354276819565088597229223555753496743972312025307284026571102132872246196676561811258508250373623141982929697695054372024201314740983916187894983559544731171466416174074828183850106699739502894793325202013010356732887839029164477598374063196565783193212609033580362361458664086014733629457806625454572386050108962639961212901555146088505731436892985570130948925027637452132536618282446275408030972367881416282629170687831246329793026986220304224460319386029275467339811706734619687802898583629308001821992659615909848116178464586096939822801930097301530181427828751089264321473694813762826586054822583429627639180214948884174263573025355844424953003728068371288547330473243421041592397865896236882030506970675297447772369916026818465425231376369736047861079613841837121632189125801073753609495520104958001178386519604539149372012195621060198151904615097095228904788157661236722153079437658711440790729562580970582940150943617635284355398968129736477551633516373548686291110137603756566433690573446877166221968938298039251835585006144755258519583158242890509078383152018470472277283703170661256884499253120945249948676921518463840610100438762290589705468862527761785385599364142300850510639954089949865579581278340008317527024689179177853431574062493172786952710838242318529690505890620668357226515136701520609209984299462131716140316000947203008282036045593093715264882923424469398960683561299875829982597701489951874629741751166551651499301266697305554098369031003040666857741872231352863289697650424913527411725228806884352811058655073980753789622651786439583200624018735753598382304178664938269831811619989992084019222108382637621807712942524337797497256558489826590498671975353217038817556735313580141834836324811173771988723469152606703472572384358998718701368834101804135499176103562686634967543911852951103986704556817342605045112890161815504097407554382869389283443824369873344131256853770526077446454226883201484353328564541536213483586648642117262292527982758178067195373082159126912549084318298605667319576277224996396075954685479231566936807962812058541682377769335592291336976181305365384429515608445063505093678040768586731708791482374424632434431484839510825918929193933604474766418024566945182914211853499296495285026363099906652552168345771764655807804957639119236624120953921125058564954879783101990425337847119143362630996455219691817185711141006972833081064334324295000630214951159716535453572786929048300610623438092475693780805796676738881444163303247495862034065027808932597150506015521833770491105324607186255940827015840134560010116626052581789104002722848422487480247086309386462729790942348285251791640229520551670917599790755578492044947501553802749679490217239708342312587269483698721698475680737436399821595141659454430290966680737634838935887032385582907093958097915802050946621526515097795246551349855246781982239240635567042526819791381029489725489172266242303056040255866086257726748075310678817907585162791230091024013934288892509768720511460589829247848007867825898608437654084183009678384325875285122965689822571345100328767835674603674384006061101510615962117045495586190394932962548159321050997932532476241513155170957520729267865679987958290479255195291362817552158422631956393394668968122037886702320701278940245837162342376298124139349093956406652680343180354031300025910784258479493199277230219265137219326634299696575160979626861030449567784477650976023358439209001677727165763138627461716979691638448370587246028902278466571536610790163860449396044412573314318961851873949975421765362624500931599922929996188907547998828573908613405580543495714525838705911617614893763190884952591714437063872617058188487869938999478616267030783955914888159989067872227494946235560098326359321479011230928425882740106696099096205634544471271633436485770398362080821606442194733805695558616811330329422413029494044751937478757102355021007500626587825226538579468092243330270760888209788578074629231927782100132450306924534620119022741678537750872005595078361512583433482857379823216858914398332080508934805659602481615347011733790734757426027023308897494633099421889271232830532695508951902332531662028755583749302275188401846340658782898607061651874330083098238189775848108689154521434191316558076614155053893212920398743398701343919660075506915147077797246346211655954523924940147582399835703650298659976999551038783430745487758393251390152984964735397024061717957858168500181855478791120079696839673750417497914947159506403983318280506702210566360189936479972104481951825292788938249578039400125136338322918304184548894476121451096240628868898187503594451806724488736864402798911549231785781572353154485107888663237888810188996308906854966046075626513494898312530198521116429175817873794128841378555366511895441110226540035279086206801376494529311273652322962950391667340521884840915551784080781854953782140986888807632357003999478551018667301791630964929345683223687796453633494444903060903623713335367217972582376137644318561778433261426105669443539669345636026690860980305281220665929123357123344379434809457205747950329068183472863777839461113461807282231458441163677236876559909310687864916122012068246437156211284583778698812724886564998940575406276805343607334349139835610653177752983210802068340066796966096740481379838996117712236317024370960944795336992347729258422054095502390467804940209821108106379296981460282742627388828604169811198750462090067018308548620024356564778475181194270299578672523538877324355976748870118629243269791466070371606853156181232225635059032148907965858081375757265785756558022009822362074875062577402873714289966397462941967174392566534158476856008639036424806467274814599245694965567208012121176618546216356974331129318961965630005990111761864712291388977722473682821862198514386980941782382651797740074706063757141101872638340305657927985318050950902728650651405945164253443781053688318568946491916218861218619375853574379347508482944575236510322069686501144403382198228186195109813713789400441440663729877328523183750461569039682263801617333175816185959881579191768118992150724227192586832973936453984372295657181517163087730742788088544398758412767087518357900921550036623255243067906233372112764625221478082364505444513202315841700426759274508925255123981972527644414899861723714156238195011653008497606510612157782125024614153621766485303493467183128462321897443789612817944118196656783908829070157995291998123061504860370458863569908103298869755666100567499993393742481914146336949233585987066709217236400072945572954751090551636460704059643945614572411510174940354025565221961618371381690306239243119520815486258987102742724731991318412553849914785105192406522448893287715469697176965851733332933439792225172686605670096545727031718406611838389455790226824013596528080435473462945460071278562128318959837497136703098398728923511145508003200998650750023989723624107826437093052109918203539404160076253171234076714962288063673841800693782026299272518469163973594413727613475133217633967603759527513230532034064801832853026027798816434370435799429839251829220178181360755538696803197589986556990802702454424325905261132109113893350246577707560051740396933278355885389289698736001765904884270116301199076165961542066880812514070215715197598594601420786517904496262219738594962853815319923366349806699853435512889520528046161187620073846645008672252798245423699644593378290567530825871192191467614958047187517035913232142998132681088846232470551759751308832015209985851845503035373723876376153092926971060635097031404884654431192170235201308467259279312673083401612073102429718974095926853176009541856845430378080166742661532318802635971245451777633262583086933525733080206694332690671605439788962846038955266550612058629662253838742625406021126258615492638894548715239061671093897986910016163014160920356133377056624475209796351654382408517014792838552171519688623425062615739041338578900409413337814235075813394102733820906718470891317207271957496644300426635557671639573616714250976490288288086883650778889609042676719972040580034791367680845677079984251757898703821626569121599378492550165391618018634807263069119131394886597061599630788149910669642525025091501781067915781708045778277955785973583894963542099247571957844568135954425591648715779531387936486423845805328051974004333281496059396713445501977823707341460913715952326680481480813915885552683305712946846901790384589569809443991210937930027692838920712275404481700307794708511609009339524455790252750285783757597071079009639637029280492012531200857261433001864095515223803727225951288079367415512021574096882861617133717916610836728406511238098186050496052640754683267553294966738931608057323526843174627310946199744368642283788910895650013363785735026071895643769369354370295318845236633653440711822231746176525718073052491431000804079408457959516186714424458199405437310449918752332911949475924173009881459539725238519523037455241172615662705542827046129622055904979201559114199757213609786761427823705896837148020287821240683137524306216631618936366311815286370822174442328323520313408580931076914408299475666938898568703892907892729939889700988915377221803979416416591556513326963678955728285201137612926380666024039909222750729326862793976413098960026959000840230311223645941195119970013609037973818202460744458662076886188991911986600444422426486309210376541441558466836859275918540411351414317529237078537343359260773414636346293453599715785722000530389827401499682058417025654883780812224604601380437567802326865552062246642840905211764012015812332042992340040619641980636263704204670515859295626755740717858855988004199092118116111681343667856792375614622959433647468766564183111064639958017859810691018714331504735949467064578685623143084349106742400293691951718399711579358552669592660702691927742324403403511993631609116022084169326133280422687302036894964096040285076478985963494355168342506664206088961640206474960538500271662506325975284365338748515145322341621337841541057725624153481420381214743524155439511618903018654071330264622288551353688001051055963465217763438353401725395798978094731652798625402750994454770897929860308804392237212546499859826249443785049426409029531386201136179994504224085730131130007529543317044643579399693411769357545597030900957576202472192821151007900581747493737442121278554346118394389179778515719317728067366871099795608775254657438365765370964830771484403532504690847823082007269183729523485959789786493714586384841120128645603456244094421241496039909807899027121671562449550226483156712910901215503564581845175601912773892801269293760605435417614017065839306377679504812456667817888237243920810337799471811326079432847694635904880730845325428676860207193145617434223987960849885382726230321830074894940880589040571921696668836040708098875350684123623309848085307068260420005332973959446244955121012792542891141002496258407000514003141880651159920980731493275809679348037789976437521103263222638612047895222459937622793991384739512489111094247563249490118536776937303625336810200499196676430918592795888004559990853902358660666105033785753669401880118464675323772762081870885397404213368115582494863444256504527718600678577939093562016233764714443929851091457342693119554596527886778805079439380383715767774948211671371814416717424350231164167145348173142260634645525194968393530633194933974123317755888689923177033840465037094951693182875582838942849104139675942125322174939291821506563607187521498944893174811450119677333365141712415109356733206692040326264519023435955655494394402402282920134193837526990125776853254362254455656598925118746315518812233795776768353618252948256589147539646151096270547566940889072905158493007429555332584039262668401685823374155949769549126157052423738998561075189450044660115159839711593152811902073830865530294298428479898301941400837562903832657207902859253661368143383404565306716895133623954179474904918160510871559070622620289988593013372261785480526229197702669273475688896729730632399123579736353921883948982143823395827690882849901466913425315628820719636850652777577844661703376021524709351656141521173971171865711649887477601595207917325140841513401517705603843657442830786807298432215587965217968252348362524414713218577372171504953708200108046590772762290754117952179314576056508281052952511633029835276572660261840901323039661051257781390501372161323901612528225344149314530927954612311424635638782762258342872015932056622409164819540566642573968985561327634164782522787336613615967041158715387110810794303636138125199349435380457222823556459073290649534679297822944148939349076025899372054457897039947610287560997325877154663408856476702463266742176810351284457324767239767378310202509636831304462751487427339456695968004461407927015314709226012743323983716401952656524133108309740375179472910039845154291203453895200062971634693418406617111533815377791858121920823502166174013638349963629402071233330097459080279792311443699799594947965114185523817308768884029621315880115270714570653990445291483175635636300358468430620750330584798138760396383860804247384527601671229471528562737111079228668022161481293032453721494590606610734432470900002576416103296408124963442585024695321152246214543831668068626608761263960184381105153840064127899022331556985179328877986542876650124634791352397229345274593679482002665187199913781390718406022779498352181229667018973476369102449774889951248136224838332021522153038104794536760494334351350608831721283554266926786242111390990820946798776593705443789998864301355557115709964474731161563528276173461798960911421297090337575019117583138485976075799347449743305009353469743222891007287687214123750722911935760063717132699670743812632198426610210325736081034746234218004865278944225519241842134299442965271800669380833093600952266375008751611608910094775458324344710053386614965130344643974933833505641763204099867465003451446772011924419426692127925870375726681258543505059971282256820956730192090856234753183604676314167246747318867439708190751041360639277623153634122998895261216396856559758494639234929811930758496384707116805506010906391314502973994450577659396032382742370136906810624051182498640530185066349724290590302386233754219900003274307192249962606657626219877142444243545892197424720866257651287112494530867581033127519532155678559795981497979403408135319429264963245962811904546375176230301838677424753802546012751940600263500518795560758367348565022222085637441029790923810938324224799500919720050506416332651397407711359800455049658519569496434435487860081687269529221427475027703551356983480873007150252562101250841772981549309106182860200825393030948352966766107570336662923726377965120874598642100101483968109111086980053564786684411346891027353383294744775897151360342903095635374010740727002605550167267075015594470776063587502160078020834923645511650096165831016909373345220821289592004790964908693462692178041444851039568077355206695958550972450063182305563390029719507375607661261403037800822723439802340485805623865701020197187243222888901359474402693459603629059011738570977251174233083346900045956680074644227942633844286537700569895037813621985882150794692450135684751593047184273758094251198707805455081444101626141493611909079519067224796863893307722804071870701763421551901744765339047612143318433635699416808045215550298045895953199183316638603913422506114972255625845246210866577489135707139373411642732119888319595405899275585446492444515592063042605469538366275660516269525135346957809339335608974587254714912195926203367936193204971859999653709784918149672558489297513834803722882010385391980374869676548113588766602830148469304121187599550440678756962216535913569612293027063690903101345761555630381341180564301376156708859667972177860729440722831643697327314954182858813068151170260834189657295625961355863534248845528857412743245136153153159753092118950198793824754673229243291710459406966418991955036226225326607545890322627170862542960575979881219753511834898127635774380721219173765730322317088328148893109831328322653081400349963542994866105992579808570166528547545913760821197157021606788944672544948182680980760490091153842226562075305852831449934403413871242796794719549380020582072933499492325968520726838898291048847413124093698346229379316451057481111406518454528004606009447335260865705549648332573582663977417695057744695294042046074680864616041476242048787310787255240433516721669851892169191641660576938710552142261727342553231017559904818809721697693582085956820063236719894100625185531210791151214457458045764089476991554308856484307099489086566936220216333073003919164436866867421642757855331207719221436831373640708299995844168771384413437090495025936977720362898354434458552824187686177233407025879049967675936266356131085503307387582561724673897733999615463416848512128424333561223266943676880562723526411830540436021926623200811978282030330976261897984758536801384154134551996901279456404144475494001645337793607168965094327072852422566198461688484219052496469824814531832107556540872151846033798373822315601167864909059150322674838179228883514570453348298286680691820641425473666030155557100231957982328748088314544130464958817164169598984192829158872681204718105105100876894010843199339624723920317970508126937534235139259716860567085276244073711214495570683403602793782633234956072817620250065545306147166035016672468147515954784289086569664363475874217631148111261613756677616177569801845866629101998585783738439791577825415261522076640109133871483431681384567239774090504546997533928774996095035870829251091968597987165223228063805737544843449853273047487126479550961110001621381726453974389600043676578614463875854745865213190857514793334785358676573274970001337882174317488065762159222039111476599081184579332185432990376624937441951309691710539653135470784188559161694026460636878129935882541949300782497600587522644038476506765639396379248603910711798892344773510087135011476520851755517140476797080755016025693922627362061340008583753879156200438537698497753496288789556799694928781929437276199503808888089453093048020813523445255757690197224913188178390273248134407317390081058154873697889803828642204362660740283318107903144022048637010064257233588600165048529359991728195425031967379157611477134175463828241345048982736543735473796851088903087392987599228335506707972579920025735253076547708426004376933003302010876932210311586102790418576490136588009892373259048578919171940073712257162165977495467335952563429803030338144320510588658337239248969960047264729522998001651272581052793670168397163202662752619908968268207203334879667492661628768731628871950950765441135916784038792396337651147669211158668124282419665915483869864737822715311627607280973679611506982188468895710338617685453671324887112186426061545467975014607243728734840822821967144187380823915472106760493854712268814998948089075303953459035763870455822486080945177497644011950700792184732845163122558616937491684053421040007014235706678992821658260501754035421490585669815816279168727212136685843662740544829618128438001721527391900529485608772355073165931756640357047325218658367046878371594481916305151689418599184522706560482522574525561027661063567355018777735551244796440148125509846810058249501570338651774088759650469914889060194882922367313500359549856197116225679922697098257191072268046470373335273028583236039596200696422807017081684154595767120242534797356391484801382336389537000001376431929975239752420263197985685363095454955734498712391065307067698228546213501868962355185717593777858077888338408698681110962069519917195193010948359464345991626016955127439331517592919741502148244513930707633266690131069257048149004132942046335763374369931135170844934996540954762096630314916709833187236269309154501599649266969389296797282048583505697323057648377467719803953774346305587972022112823588787255273453267537082019801808311533522540927463590361887372436603919490173985758518948505829856638241560921585510298182188746330541877925616910243283715531324431393510755888638149241026056078324736590018097946520358435057854305759816069699240751014500542736462153299268787454889623016640979803496563854417092130370373192024786356151894998466311465756088715150663740737300526618109837305817486374476730192843119428602786053629073346498059493018647519414332793299624181011366030606049810755024878743100916186994468496862947006628970475752739856073813360165801711701030908174362259149485329204784577570821644592321525881257666516446512675282411857366056442529692376786723328401403103763761602899143958231779554150689151306227774632335488886585955343362167573254517486163140033523700753754243417110557360278644320508568370400544807278441862325264587848614340404652021774097422287369376072032611754293644820374683429162173650670552502833372356847331557137235433168623116429772146930397533914611638678975216229164604925293323165508733065140862459048720986456622931082196560178732510451488277738706600908332364352428115983239592674598140930365236145514095583904485455273889309487561566622254523042791942053244213154347154027264282278858572408506613623345128460234386768719511029123818937105171825215714902369753210343441142691139300931893392454877719945897067229823100839844847233407996972370730022693311765482595307686825113479094330650307962350575161806393286745494070899542085515455047127312566106965098389082261363874198507731744435735038121311224130327584669922321762437346609448899399063982295669986999352407575666612409317476122970161261348618226325582648017454308290102439931569059402186598304421155543026515954214254383923223078663157274317878514337123279018101497931663103512030848765535736624241234172719682847499445306713281681943318868891751203255186527014031717609236789885318936807821511358852916844506960269049405684610815571735675254250067719781260484421112430638943557151371288110844616324351770604415494356942422187977228411114941277974593854630395795174310306792334546186405218324507159894932013071732554261161074216897481134555620792883319972154855610461815378677939516999008809682592840601506481886092042817897611498838678089621130951857161463889132089567978659929314147068100519977715009651791508833436908113897999849867483759409115271409713207909318156461336517924310263726532066170956167967166026114181432750473415840860451670992980196541508389930247498743616435185129768205330128433192873201946410349913842284249333756770177270586404943454679127086814558414343729087662255339809449822418252974112968105052428871872452271635061927430146350623387452527420843501339967387963259256979031815218244776869319186030195572232087653787021064504647207652246698803070008441807526700487664736957719012662990209509066793984918352607159496381721322952619778475843353832289806705284467651542654875073145661063183710386862246095274381436191667736176496980398746477122608049987506143482414613152133542860616612047350186687530339075263973681908820055160737884169069058744421856406108018274410783924857493508459432417790271163248474317821023332957752098073884342207030076241502139297520895916562476211503199254311829839226790410837399255194871620756539663493560498273123732405732682004532378882198541433332767368863674631067261981034236940579909867098461258140242688982447683718111863997149816804438375208386651526522741014476965201329307931489258209392576433860351094104951294976438033596269994845095300640640676240419116689445955387048630902229791038959340782930922934253462285246703542445979973178010057903741873819545510120448209495617123169898377243788997198451929986648418773275303236615956141562285671439508083412364162516125990848551900534498583242138445744465224542332730084346808990161417410437638032932306909077963812459298554747798843179444309387326353526960582972783415090393147527378578521249240900924682191036537186376077986264414605303764008580544315445186285717287242321299670175595458594270107242203022058142303717958490842854376667374433135701823253603152436849926765993488806036812867427524303877895848985047010200253860188431765546396215415765257358924186809671642147632582464113355292683731516191633356972880766646174917345904206785721590150798949035916324951970290603293087104054410286922595748540588122664401893000410207366611951480471021759806437361353406461739560318544771954138543135588357277471526882239340605897810515790670198306435436865919324328407667487438776988904765226240796041610734431109176241943839543517246362328841940018040867070790157261267845111209317520808872228631801666889142063591896343790342129949539396291573771024769318492326633310090490188138032118012458361611558270183900917206109775623870423845836759851385976430422092833937521210825793598711607383440339842704779275382450860869532678210183539048034920876545924469359491572187528456299061906060463225476149322783905554532223102835301021260756433426521088873115396502551874150821619100159367946525685296163735341141743501367707157821181671542710438849827488597060430794138103635371629670688437910392185369433452056372097759910418281284985589549274576476040054581409163548394595790203316527030905270771918415397441779224366519264211080240697892775980121227182154824297776913229238240168858148657546103763932003076464299594187985246770195282195390337455921761080525923232984965688183865322938597243567887399200222587494822876546361385301826779187085396998462735801909707676236968848307604705076984347289175525952358704941697794186577353241137134651767120611712735642894900696766054572400259693291869088827399759452235115691148540357176790668167774544000503632917449310789499650018674385587227939985672108714117985923885954559516649416285591717534405367317757212744364296278052552209308295819546607823487905594088452275724193417338647258956092133049915782056501861847655995276734901290875455763389645317290797092991040368326256855879972211492288496227853875774620233149605614212660360514303615437092369184341440742776738406748862251545435494455009441587930329851783778360276955735566791707771818260729059698469376572768593502096833664617424338728919919348358364801825877807721692206058647305680574488970961875239107294764272725675121424412683617929395889465178005883439763470723978830959054854842068514372159401687937301045691876515308321053621256630223076627914434557652133366333573008123438919269103336919456464005118237198044102809719359228437062981567530017710889991478765151480303772082757739019815563267594197665535232303759937485545878114136582269577839896213274166294361884208011521263592812829072476882547072505842892207562346568502906308471932718289784132681468480199829671434647074176500894581507802646351407926338084506749712983299216154380041680751530558682058722063973407399350004995514913846882336546208494612682889460546922721014954634349748792934111714862184492075868117868314467753021726965335605777294833888263438632044295013745507056726715933336026942618403592890007374290142529279954932221777294053769731905657304079917146168381982185448178254942531406148093587983417112122871088325941201343013084010543324569330878117724036644059525743205270615171422382437003629776944884232905291325808807467723516221056584734979939640725098515759307697352999308909346550139969256117988234684705376374024126225638498327238476097190868707780889517225872159613803185895285922414613628835289560389833588014611653501913448185828671356647485267219712378371108155957622086736186362341792523438674186237868993081286228553435051773478657374374388701488508260900284864724068346744923512073807534473493665968298840084249859819443551187586726809452289279699114575226983464761087521667237977792968724379372391837939641341509062470453430076165008359382981838584617202278563921226104938242706619045847732266327790313421179880284292292578493441337915781079175961916439384779775779208353515458693422633900641315630913487600744118246470854696867230305093728430368396080666794746149013083620253561216169650158446082286698256486931201351679095300955348741808798577520055422021180799389270775069235122099231394004634685852215488977367902015656426811916462811659172793595618961536400872208950491779749632134844527167006413541469069551681056960366119295785639615974137764607440972178677452170639478477816080760926695167694944407619601984951131699175837684345665817982729420141742692109969499294521669297596550327770857453367003433401594763846396743199360573755105469198672832172860107936400384729765577439920458743114628613172032019248643879700440867856799980194445515764157122739545123783217877494419855294519816573132206115632638767682707444108855914953261961796115671339991402857516103241409440741585278635988865369844726988496232658428415798805349915089022189908708947527033777014790660249806734619449497030863586738701995598548892617314831349846618696417697636010356290388698025421066505196864231478028441130035995236303313052784727253717577691834586422667749501752382528303354418489473515322125367047441629800009052993220260539120054759071500383941286717080597265268684761339429166570983647822676083060138598482518704774171794205067541705669661250567138432658947971002140081441509833753304688564151254101361999256858744767908696031489347574193552155780761461374649112123169921376100321753971935553899002524140444642888016243048732702984837334619664303827240830861087523928482142213725315562114904974514156973612592197156568012470334747637262914911337320690395477867109725247422974465453152304919309167438195984760952270726459007454034666814104004526285456057941548710774870200746673601459320046146020984737727927818989502063638604397644185874554229760362251229018109319735358322046114423690909957999416861426422948645277270340715863060181136490230119027921931003320277493286655766615926934994998921395121690339927059331018940009971573254650212897714417636771132160189607700351180930971928188037893957594703068221013910620311695194212487451975310593998702840555879027174823254432894664251215502602810052505421226372434989546838616708922818182375628603948548330101447943811727679152188988847442228719506375173949045287409406501132506256315220559633316414298344121936875667539069908214161271263986911429589590296044301750399445936135985412919289253835940401750916172077859600102011180549388370934888288359421092460116277703013154711877215143312529590135760781763993066688803391414620317768393175878048283024109228230066460318549050991850953748074727900310318666755114336519151146939260429179985746494644428969596416811119967492566080021644018162547169923911171629031168686450537240883587767121241278016529993621886387312115509962546143710504240231857561706243509649136624431843211100885961678770919346559801381434401446700228657940210439469929634305227747116355636586015827953793826526249089661962550793090082995381909151081451037824807093884235084265085249983956800423638086031496175288685840454781696764778064072503891413544120502970075957037468447577892973048129446979914490433827859304845670023751889054976452078136661443744572136842625575956673732901749930474330368852684271161746152897191002190915607417301252236665713624849793371979511497970284875113645701866190836256286714967077857548676383537565226509135470425550820302100491088118599038377333412082491642056669369588673159740202288991875040105764404584934728963904867917811712669223780430278428745281662845189407998712546263823865809103989528543273782813572631694979100595316619641115949634154872985684980240847162300399768079305872473941581494281445837664859002986598144603918009491113163762729369491662592067426512391515256606359631722193791719605136897277636108956148461167007679932282389375213776536042690443639615900619304321342410412537119029829226877419122559541616835674645348455656815727736343446066993066861452102112563200914163394045288645504324365460608275233466729502904788241317589980347478920414006963716069245477069072920397438862844775086152066756140903474669468085616253303075718146772085775159800151149047926568997776294976218774903063575821844544681834829690575661975874395721937240758308238354329086815369170781741785349400694594732558753557392056235107500343879685625826975530538600362711832230122268347387651857505130175217467374852716696482503038208482253454038662456186874835823042270071972345338847346494673315888519542240198102142221676807803705415929779472600452595916149648690180347504325650843219705221511497438724097740790524437988282537493810262763710054356911947275592756994975064527047798140717169418176557957078604389242909420828371740843300974896379032058925777794692742931185355647283003150336794679173244412536389586149407588967792028963450968200611114972177700291523376060667187377071337879592992584816989488998528450578963738694218089983613920628546892710714504468966488144242545293980062189897675023127966894767084074830584886836534686187374636796358733164097018303844667107232197422296567203560755694867112841401736432764189022990356246527718549043774884627384875981202147281115906137283010865022125719370281563640158763143238762012840824274617314207475307768065766087387194469673589365733070640258004666329807996683972520599522846822515832421844168574018196167604028901289413312012928064622416271616058655171301215047236349643871022953943003048821035879236093421819958060846513705961695029651613556821033686880331512533971392991352566805881830078474262281026344541301341815985821545466906338225648182210643244980238868122059951207849595627476147942390299679018309929804642708826866389885038234585536087055372893958303313205751955546602850772202996263774792769210767467525480081997754023993052609007624298179445940211778071569423441455053126450051091940852353157223113879300556701176529871177379204023760376069446588121095835914054712861019401671870186634218461374831969893908796315573262981537035781094746797513850852004619837634114458663094228115639701918122657854968772356457769883340561566294222759694593916043307228748154736632057155697555122087448239928833901211671635177717320176674709327773717412171118213296757349959689297368174309617548770713680637967670461507802548180534889582258941641259375395747613815776010410428048112242386112371356161442632479457067565205342110291163283644145087133374517963341860304532791034051240587153168110427594789686595248539399480244502570158128824588391201014610524898367499353258239185664021023388859004462961781696263404768521597173326170215131895400261253445322211643726843705604000639584922717288858343466948826412545566323272107501240429013228224207554435253954342536758344894569308198956910311364374610777470145002385427520565201231146661764027196823928433631052176979585441813000735082499778114351340835746280997999927422737909454895451332461147360394488618352312535099370266821335263435999113252655334058140314337300251467972965570801792998743566976933195176048806442887348321741988914726256962036782705060733752595971745843699771949661695461700757364648761993654186794250059007021101261095400938207862697450994065696975171185134682824384839226454802666488240327785706792591584056651926619863178031438802427523006265934326331009634239653101564590069391332274131040259387922120379273099262176659642302402548222263166049152543424797822721674340954662193926758662323494211876884903811661644287842953827935794502277951669055179167789758585051275279073804250813827567859171867863693290079181114298605220555759235365525583231754662598535875863618548807675561810450629642083065646371071254959433093041366292028099067977712701655287561353561630592562385326607695066573219716504762249268166914894053680377547332106920459745879532534800340114575287611984882408162691248769240774095085426927329173468744475902445068501325044802552381812656333545246938905073191253453472456198086543711131132179134596099686873089546861081059639806879350532289523030330890984210831423072229092889950083841228793954040015169960564818150928309376921206378549041453961948170205680364399941766701704066061956389927806414659453975644063996979410226972442976877936504540366084514676689338218004097675767672926354783978893040646553305279829046359688040048620606905598727583981287263277159059781098996785860449453912184193995304212814774963449785860096233951736659427119276930018821097019970934394724812464310706134924040980115653049625503385322911304278327702819258732311514419371463727873843584676509291387774722600836522293886105830677879379521132607195439538496932513954202480113248481250901188126409638579577140386923967423257910535810543418560481753652492962684863974124600440068182359468148639351875043065429210618878428511278447966382817986682132016583790046364399686696978794341129595632161225383651731551489980176998429567975173787766297805392485169603688404383771734072879304754836483836696443629457173212862244776761896389778611467565089781907888841896226850790181926287964185898850807748958591295993322098171638931759459240743705125752839738769637492783103190815613449845938226676324642059089778319298498797621193575272316381530312638473682999807259866603574258031456678971695140326680354702417839255081215080672144879416777172654873550546096217188561953198698722357090265775822236615663638121969847229586738231699533300634066589522081233250445274657778445151104134268389761184994378318579478038998239424169943491205360383173970742061170882158695479235240893436558025339793312367391848262386891999387233413167943569808496443840122827821752476738513325948300004935707563216575784396664258809225943176096343667642394759990676871033892968705689702107376326371717476649401174328766671710411655583685178183264219492452010774519733607237404349607270453410308462886208568171213148976952698475716557761510970907012968466868494247922346171992983083601622284777864244556044950125493734374043716411485125153595267385480015437594570087713291137569286370755334315250546618086522390630588169378223904274117856682191469051795760972942777488101652534661991243020780050728046400323750339182919342074452296111205387729038536527614082763352860772561305691507942248250175222156679863597222809699742469164352723100413362323655961820307372951828989686137032178727698208664963767330214506613316424007762205440758803079263117501561107395922321318602663448530993709845669912550856547425979714738626285417170640502574742506748202076453568063455791946733966522860004382166072328776106679576416953142393142098268463844557042705696179706668146347905013862671784065247648796196837796106628627980539415629224647717253112548918133048060853169124555212972927233293743136864419860698597078116687993984260505454554718550674499830341571492309526113703536770942641266050497740590004329951735391781187311195051029143787251306993223461841928018795321454419224826043676504749532564364074321156075479858926904860931982506484844068887315988617728466632272695618490477860057254117900558538748209102243899244451362519732639243003479706622758895951936639927472970180641876162989453539822228424914421170419139818989474111203323580299175672938581234683084414019498818994204502028061270890948046801147393157644201364632037128910820252767459967305716196299089007314692148980443574748660209096216478303356944214148295621911495160352667052394874314571958144128628657037990662280696954259123424444092277706209362426408424671969030275833856312693619121573568477886101386278031457571152625789450244174546054869437044593712708317796383397316876241072625930020049959505625429715306799032446774863011290246148000633060173270066470139612351758181508120657014835028982930824884438570487792970168179020722947786340846640962306871365457979238193947441100847612791560295046835756406748386275140313087176903706629084789105153568703166515414301043010811804081253707459370535511329234023114817257310927524672578921862957854257347090963682586359082004146875331733633534694985451491626843400975755469661221021332898735130748567263478244690738457137359220252334348203798443642971607967801069979780774841875770353290518002380792113106129713855041022331309711892267841180039835631692513147321354344337116601433851942587704207222015193294062164498684451897840179345936865791721754158789832782063789446290324539214066111982834807486136466644385759469885848043530372810942996486226396801859309561849698456026596787698948017712082436197710141795191104138679727603695517480045333554521503704100885965311387363764023064691964644061482957317146931258713887647929466929551041097996586296599578584793958434389289130293534459222333619889267062794791339857744001603324704934569844854970816625883789345393783369308353279553325165677053798566508425367964734555639684052731101307960573934199606242174662634055477601689912298297645287106061293165560721842652894780705898447253764550116992816747751611274486991516315008705104128400485785958573529386769209540183654533522889040712686838961848757950513305846689669590031699926879105906327248367517118657425758235685059842760664964023698612636853113464522740586849639313305837475965069919265669825374783569282061768288254408642908047912566272189002696786775337396035781382893871797977225822160034873805486596238804311574800970650220662844612310115003566204446983676643821509273053099495922193112812564180186153355229254009742211497709048129935808126053881351174139870313998167057508255589382628658457925873772174321126555936686383861254454479495784885386835401083116511802968020891787571867991654260818648676216593747016414981479754452771213215987533743849459207091327011285704587964076702985344008194933127103741194391255293435767398174439252600435564500578394618045782561641438302271773258167260669586651018286330299023231663364003535362940991230374782835622500810945393583996707995827061887665474590201418847436137218004660560155422225429132890599525056412332401617878473046170016851715940237670860041352123781792624653340014914822299866671132466116607811205578459345015394505559194070208800944885203369074873081500168278894186878352528742177095587482324280622273148536687593295787566594547545729481640333745242123298622727981866107757427849050160045027959851499387733442285599152432024235664605269658799637763714997358598760054162986889833017849534686265979913571452883122523645714614077280916678679155243493183190832410945838955537462849701648849770106758867122501828073895264454458743554311683474827459971583514053906438166308783873358911416897922733399402351982515406799769889030612160413084786548481714994190933232048802083815431961408827417740256983983406952621467519356111755513970466821698052791955017381506994176827622117709309901880496152651823137030578705229757415240474107462716705110259815977967379384210130036303447546219689780934140069544036687204171427928432030283200855127164460802875517958103559119710438547203190502754278955669990802707697785653916713419632996574469601723131910208212046593774915628856741497276342406378881009384694157701856328197559575004141714963343212579494537426233273404392281593536184634593108090350333942691539382930148936740336027924610236132782682070920717014211570005316067024909765653460136624915841276327582835418251963056962637986391008343247990843602078873224260460835952012790822226570706190893619340434397436337890800865117844141843573179784665951189542932855726590884964219625136559442491650778532045375329825075060346307246070386578646739788960252312552584664589466036173304753211106672238760490210994808053086292107585555152398180705027147945510285713751706562748403066255841711892563545539130083233592903830600857881979597322277807563447428172337122561258040360193420056033368406526519992279799253152654054313453437699338822003895684080309425670997780885076782483055812277444679136705230945002320184828174053134862263636252357366958096778163766893055009540401173197383559502351915604581723702349458376931736732600405350181418916812732518898493010432413319655511767890961526745598829196994591149559064681229492491903265898496089506782384364696535529880455413106537179956650358703114748453845988410765646595668119799768522154673389584779855843563340274723056108939822121343105932923213531672011811035566181104240558737227607191349801746113862289292337383148037333610505843168343092236546469447418390028429219586345825854072937437188703412254630300658681237858757943724006101636475490956312434114810439419830065854967506525744209865891521187721736391541525854172909138753044666118576154946932051839088109163441275794256804194076126018317405336857326714150520384825343381440395802674679720466382900542720334759575772305462445390384752490582229075034654482627197247197829036334643310125425013178785338097332272531329429533246213621095311387356130181600117824974309979250478410001744574199442909520785809669610392879931984251919645509604188215202647377505696756510475673197746766686503750102657172656497182664438154734688535535023486012208009562811671762347025863795212321601506846288397486659672294961523809297554239972702049557171595489154778300695158931664211483791447282887956540242268903596869039916188111077167666053073173509364666083733555069701888355551251217622055535255437670410498893727400854052768988337409856970273742776068446499565452688463508272236651793184366770591409434601076309210223080158816226661517217629286934534380186253877849259536544527743831029217720488579100107807070916517731617078482500254380367638711706253070536064506570245451038659889218557245515497727634641275885432456791622645546586214012918551532587455424536198252726340193118139188781032728374640568168002629973521576305898647427983795340663840836301377398396107946446724386496605193497663399790609327387535708496099888102985172712157612478896529879349442353001494187164912297646726611345643051867823843809827726322563068359346396035340372365973376386217795315422214743052692626812857913156863439041443223294642106493601061244074770619014137582291753890827972524243778507673071782729421276989313861389360501975272715757984704105958694523259515840141971081341701272723434342697741638515993556383926239801579611671096359390618997703346409605658884289393055791323804617168593207645652619831376912359881214642266650384141530295071985639681486273086976574011747886518919997765521037563472318687586358685804189257276830385601692506389354981519530315578602819901971413291032697468412986079741832423616064292879876517286460402408146906811850208524326371140096680332314942439917389009658024199090696343853163519029707353930986646400802330682019474563374186714887055171394796451360370032890299552411329724841169979482449419687737427823974179215795570631729893058586652661470805586126446029827856587035100863625255274488710359794023768484619330468001845414767824654190569532217017084161857403462305670788420780101652821573123225118225643509387503640382938265408601981914490332870882315048975211969813284526376441605256060683048080337721455863371435562079406854938095516730672296195755448933508210119960561582708040229319032363662164222445057900312095166649261990187351451060356144231010273698146491977496021493775827641364279917621745959206816902384821993675559559261036663966625428819056598382880155730562805621458710698539822426481239498181840838352212793607074043432600828526204952475141699010390678190975678191486284588432235298166666573669927624115079014328863241916230642229634745507734247815702049645282938346863155029334944596535188655009672320595964955368496280762810855045825060335269613287935591969393579859871650639647333081937631705912116096785354728735237688842386451689349724448220675432970362384161741129007947140494747279872059920067390310346554292161118660439133204365417684088105839890226020356275463614595967953393278461605567806152851266950634669759566880038876772885957757857255363238340480161387411400261454493452276860801293735413486141297192251954845381912308410389242824361174508679292166835071647847870805391605787720437185171667148421914378542283169651578014459710663109354092857072128001533433925534945526645529525929217461364285855212236111583851928596675167166499375519292011820712516130586378144062196933312124079626603886285942630815181683218266938004933841313798670636263480577021787853821332115385793702902246192578893919021741215960681600728630962221467162771342301110931574514130788022756333623414603411865806578568161857185166275820191821015631230846732168616791742210078372322486670064821407131106370444427607066388817665798770711627683818742408589211703626782055100007242389035765938473338166018796530360782423899176063750995710572949732466144804063766092870146403969360362553376882379971865689283322510290881533024550301043699028675001460440312431115368074156804959406234893179428689503997259195917487956854787721709401060824181419221450949468839606918208104818892412394030832838783627880751962358700348236723818807390468827636585330853456883649874356662842228810867069301380090011234559245087548174890335623658682197886222587209479535654755450844013751227366442248622806465022671046858898101406758793007678418625084662767382052905134525324590632472028145679432384516694976034422532267129173019109141081083144227668520159535792603350712627348127220075306829930721023575799440681596750913331558178159561999772988049146624876380427192433998424455827568601700460570769269072593074136804617056211923172980806548511594154359292763968935115616548064826247743853447869438695953778459645840280502657252676585830226479014031673889598553288840518704169723760830981494215556713974879210298399580406773001897289652573904409996255154615404283040643497517516284287888759019398457678042389987339676342466900541376983531122694352313051394544535935685698794344891630490613007961695044867926076763092636773173456703740585839141614204231618775822184238293511822663662779833347409963550156855041863715482061490312300564907531480630546316733595058371564669557208662647286491874915723685449678347325377486088353491565241109883771656441925802064139453765622022300522385541883890038505236031685716774073347810979230099274979168807199693019108440372091284935768451220035959572010520108990193675071443751681472686140907006507998701488066282278100732483600152560957584669682452024807550378262289831645151433117292841195925176723408030102892643558040781225583917126308828950359066277672472578059074696765586047695322200314834630770322335337550448148797753133087932852720568575221220379786065192974261614844200383165971799700286234947645647422657799663378196880898087669455443186948237675707465364792742233756004987417908026089791053548768138833298146307548114285807502455790548093199859888878422884959347171403827495178089546803527815469861408505211318497573197405225381193218740408713177829534702922253213961759528908452586023272579604173711432990927312657222918629474733322607255425875319768302074513497329946835149121709964237282549984048060537382166083571088057630205404182380599538937242748514816902229057434546584495756488452381519211454187371376904950838822464375689841208860984288266762980306913485371172794702732241151542693403702400657013196212898664069614003708313043289850131372075872150455867513430595904896742552934721806019584035380458736842927853782463181617975886972878385754035581114975484482445032603214895698305075372138860944932572430914477279468833519699009933255534989237623364171598475844213477272831787579150393385950211397476710045340978020359921561346487243410442418153888317459177916449896666652296221935540668512538312847499200252470463919072781424458717908342161587580915810265732108304242941192850981259619696918128738029597810700898472459094064919431696431069161746087012513046221614565442055410869502098605179510925201735364767964320799834711605324129320920766181484416169320303996487907637316053815421512944805617229318057994119289857108093179942528658286540708953940471600556375170110315096443291254948200413673347034421031345932897555317506470053362812640627440900543396136214966365045102405696917293842609396270292142900943860037761994349784450946678889331967286177223447477885160923510215271285364886407853552657337175308518773333688407107537483958164036277887647716609772275547060483343847958007601782703079704518615353923427609803235419408829065594019516676614454102189715935527353578265510223317730686905938215617257310681321970032391818250608581771311263123308878631354351610619493450922892155947990132991016730310975492408146386900085504306776549994328343433655744259719267685154177218358534237223162369502020942001110845089447602752837209776237372661953780569596936704389047484630883627973461872256570485899040198554306626880924031920310525427919685940049036700754831392885449363332483291507997722095333916577390162733538707442759685533966609718056093466540227444062198365254085550780136018630345311493219233040526261604045346095183891490635737360248257373017313874464186664036022829686386296343284878833139850448098223849643625955616210802448756600010078884445749915414686701525108319941640192319166524393007610047235589514207026336843440425306927499904050076902668071169949396077814933623448058299449599044414594701390071412092654356397649909722169833939831660883788606194914010606593998773051562414651496298094916518292542341047797007277147679218427004170830882148480859994068909103893566859697949887849809683794164356682180481677814383492356904019889918188293475118208925583385039367968394355359407469067801660700635391748481907025234614023592286763895301141094913353568335754155680061813088782314141197411930574314085042089985344477824754239802633674794610830173863849238173446366436756184370884775652084350470387861829754472302106978762155849648433556868858046795655368979652591177505743817718903289688952726780543853891019445815065210125027094064523792553009194271963067960741400376158507953198588082806060829145731523423407053154412127312928643785487372492276284922187773272577437855351804940577488654934179714896839751300648959292771219004997624038914823006809283254510389906294498611025030415841988747538436302404972696629495535811621091062404522602330546017654395095894624068886241761886686390879367999245393969759824773992114613491698974554414323544192766276983519437055748936259141483738705385074131402941098332889208489727704645924413026271758113157699991783803568915149064258957324759949894406874743388090279690060330131214095041983542439260041093396812437833641250937117032363086770287542562041897641916689885515574789450580644332737495696945865350484505485732514097099046955687611216022993692378910734050868497005729422084889594218746086156122165986221184309192251554506413388804029946416773472682574170322738642951681149695268487891484517403002341275056023206506752046233796929105154503034714498738606715631942058283896500424038170837094400136162714386975680135631176460830546359663483954211714477190596950121189549591144277679816973498550581752939380641406550109499149990700179837953824012140328999852647456179103626270755174832918811149459451928320817447405151287124803622617836250791768768763480318011247494737752531355936695449417364450972857897521967271892605426289233338415784928844583428531392112012666363668550300998264913327146397467975399606161885114476238949595254397731653638133157336290316310997951020698248825943223750551780578275157855320056231357639783080754003723243155962318996482312265235654026447024180451243651097756745719352554239055872793860071295483837520112188281174990915976778278277531767960003608023541285461203970666614241178231442954811732015393008247040510306033141376036570899691551807137631030826082384174638949261730606828328948208377976685696685589939620354408490965669955635946309380247830395615207104134217412979790054132294533483822680448627927079526247228508414483376636622391945064931808425332920825700990252722443224985338063314904620211801439662772440147741728579185191463297150673792419519862837598167352895274084034265441007954089329442587609294027421486552504001241645149331166722667366825523597196613946566523352269945934930697225948388559836242625153718862087922042304723280250758023102945471450459401894201285784036364755889959017728374673769970124296186032861408591587832154833261196210354956325719474397742777448589578349401803601998024728190993897536802470589332849579918085765321173298984206319590635122485381265412623169427223238418776585586279841891068796980534526334718791932822157494312953454803108054333702601316229496377962866754599290857163286229304551641189551476677829336973024000305249067984714273805590917850986031725286336232887544674895785722550812065893061229294207594480331019867588307709258174810054612241235554206597935975059246616242104913751670388100433939880411695580012575507541386118542823934316936570348869860324900395988382134977109032037044241066603694160553824765000067726369284975149852833150074071243680509900411996886632242844540270599604713344788744429544132943636931623264174499977863843389810980079353620585248878601971605014884380921953283907754332488888541620663065800650766551259935516874689646668875754461749105945508199680971404098903696821014840546078854281152915210079464817966818633588519363392924105774313425255822032096971275780933941369330510916735597826427585145807934724266561103234969916550108828022045741392130752085556068245663202731195203846666737181455740503803951161396959831637689246352152072858653157657409674500176018172930207276981542313581927267819483892135060560215700975592531478616384277573053486241331159660115200274611913181831284402556684195994537350155824648297609979569715285952476540654775241124745979596802134104454563075212735040064056274962093900068335393013422182781484092963202551711993798460503223074414012526444548546327945542049562790459603259889353190852242962551555925641652624922318569207767024296678601353298053836785657755599779354888679352027800126083157195307973766351050076601596528307554640331909483992301112397781034713578498316720939653924483815907747901631948096879725559410611214336750081757266143052007689046765976659638278047803036727434820843845447314593712391463492409532155259534992811734299276834557140293470116226950799793073918803413494410786008924117956209413992492330694396713047587818632549813539790885191015843090667956018055801074079823512371107370748406474690058389371679289968610981882139452062911549634740691231091473359355724286088301913908691886208789014633053808308158252546254992017023953758595989562344922851610562438395359328813768029804847382650630177514180316564472806461810558015711888740170260615485616896455824087611780621382750175954908540198954161871050373519636737398896720096667501532361071397407725861366140322508073167412869703624971643047152131968054148506817277636961434362723486480346447480738737084541421357299154115406970932815288763098774890970523176572226239890982771954302554441822900316641820740484007430493273287706148787205802920450705179506478047548854729978516629965928926646658971980903135744477449369104574552933451379881205631969915430747698461088558478264734436489701740885283256256218149300251371511954960603036771767037335527474759842770857788921680581673246651307352467914877001343848150393948475443404572955084332413194616682305152889492691406652453506700803168437405445275650412263111920551235849486498807612686795533807367714174908688319125312872749573545761342633584485037083378123066317301431200632662479597869818882873699907064036754926216761898107284828174557639592605188232378189160440317130351030498982197344806750679293386431625696320399010325846397387487436293947757059247342266000388024408953604007392128779961157981763834402184130100757284887204466219336258924822205669093914657833968304962984788122697952666789878520097680146729121362490085922813129816023981224471253003789052606206894800824341961148040627348451104154254524490815699526150463455833202017496922820321969965520815085585620141953971047571621706137997320110848317692999225970517948085745988855891479229825937099818805826636619962026411427335103782160540527563190029064230416259816554582105824758050155939435194868403236222807804696136792717633880269595143451609900901282312961281046866693053279733980079252471926582824732982933586747092998068082805255512220089453634077331349637402711837667524160850159708122896237736988567784796972453010060150960340282799656792313857693429373064699542623073243741771147493514911697759605010131879684248734705720371834923335972348058386063185945032879455095998519121244210611914270477200131214454228670389215700185657297555734237435741550242238949023861677736075238482920597938797658568445820538179451744362113593505628098831314878489011591047650546997325106360631779175861713945827015872434947761418766037193408371439017684217923950720284527617006763154384880221955864280052741674559163794825351583536492767394915071561234847646659582936280266247981871312388625501383626721553051481827073912310913558767409791342000320940888876292702311728032667640486590520981010246680516148720732849608687554993461692128023877416619240678204840093701928574108123699595836112989181012601381553651838746789479058819471432486351795836343491445015652221256099837764480562559764154191214561542984924889684618677786852958283407942445049295705947566926684423957849272287105696732842629197735145789697931127600206022875750067916999903879063805114799242061819979308076731815550549996667562893972459790777778585173123957519490129357693726771518164505627064399330209006956091604452872385418246227066554782194284461421123180397205766818399760709889211115814370745779410513805206151047243965437074506144438651821045947802608951751506312164735569348055710963172963702521913407488083822763313088043412933335316240868887049581586121182787070802599722226084291560972876831224736984836816210135770034853126410046187127752937351457660662626185769402558139686357325882537433248648882405483533487939100507869518595658799349407875550583173910168420932637938980419711627112628100996708283612346528698056941733863233035332933996401658115370564116068169313469789363052828191732932058428417329180574570737616737581794137640124940621743987450152421783795168517229940608670521111186578874966331840924152044907574827875437311438784850309131005565112632192212926462884159049886206453108786360256500342770735333657786567750691240933904359106429263395539169538034591586025812773213282028592633939508295463066222838191122100085738229024548897697904175074285804748867622483668212089938958778467021434483575146748928311602775652089629250365531889528787387540086177915148928843783240518745853334711382367029941088922523068775486400941394954277790547563440841176574395801696852838111036786438574245549663023450156706272841071854794519910752803421004088081501660816417736688531825384861967195811241253616425416709242018647844742517497786359036093861935545449415484275119252828638171338926750721568409257635447918163429391028424830297905505552862333115688460858652282101718190987007439773613330242912404109238103830978019239240882208050351304649280075467263733455418289878979712301622563379957556947009233359473770789064136745696653966291996123899718995812584195802708858272481549482028953747972041122708158677203273543678839408872648486101155373123132805731416770988934500588493617998038361433697760239230354410504317822676499215495770783801955449272172912614822349516215511194419546886900148376568884864386930606311393255984913531097358683804792277400463124924205448939654815926437437013853658541662330088804864564644305474523625998196064365999528282807386285349310748829291673554054990744882111043073447493327140607866475610998267520833967286134187075562725850706149821950432632201365614300777114975499197277979463371372296374247368877827622283559032331056002283400312086350647628417432610804420427518426303701860349575290131241586421619037619155616516446706284082853999664280152537287754684401318658482480767377756778520265908943342436860395974643685711160691177492571558604147664073161163926508226028263880460198274573774359574301625339876643475801066550663360826991868128282817207649699305551166143600999895453707153361846299504306366311479886991899401464295841724433424088914625965082767677680938156511711276878694438782282688473255972706595602355196787257334997480587894128489714303414935878623131359506885101688982668223149502538784689746758607847822082786819189866802102099312627795901438970270783736486366288265651975551660761280689136252218561931334317354020370656422385592271591499756927570030088379084987672977185819617444098693023659370794876505170534760572433506547522106359093273148416459989651177934194661453055533859388768341218114617363779442106902861317567236245238542550669737140935594349146186806010065539280503391913185439350439252706916258509630997714617267439389765884196475788339593063451770854509183180351762333440910141446154894012827436898218333703962921045023816144172064948938049595394691636036804337907912035168343930068506753667091228866448258725592776018034929627996146989489729485153772831770768817701117994937040012652175654459397965100348048907449281051619056383327391270660401705208679670434830284294336980720839033814517202041246103676771359046591908039655857433565712852672899187021178506062892088195685537261386754992704807495833309954048476330478690031239779844907398746772175260565220489073253775978575488147477600520310746212266075794623358504658593060347429310054486867977057502695238135799301164636825744106338233019788733494394063525490106201640306917863767542009868792380859646298859400389533206565540883601029014238165537911931538479843612212044318499895316268496307054818166121152278077256226833393334225425065018388898166461604197478174698293495209833011269974209799125163870371776088549891024319031510507774937229974979155873159991768080195722528465672515069199265288755886479891369330683831982405198673034580882024239009970351476874429330432032887532272150613769221511115930062183810234705494261090212626199595686087281293711570530068006280092444200998843553734610508591510398134318470121398149256779449208189205249875199746311477832059859489868981715021257461643932835335401209937185319316522143247967651899836321931500934421522594662658669337651416000655249917327762362497731195841551655350568274847465396752988308205916834708933967161670620139580237753193842813749252327995845951516918307127450811351649664163056980287336514343691798953733288183557244481465454167346136135866796683824995835612341834329914031834225049257802271457444338617277139147326838960727661805330853814871486950642832876483545300689543782738825707805808674489922056819797992831211605499970766132165511713891231423087116024871797194349754052931284807115458430119957729524103021598822474206491994455069989681656340441794925764296951268305535665898418157031878752530377168753698238231016550720765569027315434775112452049168779762765068093704857225917741183114557077298966590992937728095755127109857052800645005924146755337060540764095674227585101885780733232097994273256425942757444960866199922127816774568713279172236341164916025942222924026238306865066407500606406018121726523613194683386985744518402661085388999806929881791867953536057032883870334692163620589176961809942526504165973911643283697066060275408760384701393168938803565506750645309934920459652206549203339852578459662223135405023965563846646417321736393042443023604429255686122080566765208408401473128198352645615295141484201019242801129558430171479729887478991682171917396640331990873113230602768965092933250951269453965581209794638347491253864881248407060825629980433199729562217262398881256155893489444464846545700735732650517059499175453067929190216504946564979555981181751839051960137237872835786122298634608582391392500419909804096517608707054539524208260938829999950473614884532346761714414598710140288401777421701867273907077267865158264409498934572803244726329791266667410706016331423199378860457355164450480680994167124094429872006981075196979158097407030412463835257082953463699767422069696455711813389349182849601353089804031711536409370830977254023310661533692074072537845255889226996201589359348909030489056571034567276141806906537146066939236813060526987936926365664177983732713014804620932827397268615469750725097151760303826724075121134280016650492355156806585313249205937140811669831686243799822219031641193931386913253694125347418334805285632809663173307133271354300816020573483321522289270377053494803555654921430589991952006031839830292246111766261258064296884302786018506789647537372191497670645049459389200253443294765941051401864957909849087716956897765077062535896852058284275343140703363326049927353846652001028531663360023567148941758415727619263867841162591828586016032602106701002478481779517338709257303374026464930800587670491806741377441852105554649699702684978093522902977035207818388888907151545200509201670162514783405535585007929682562724903818025003461780642026572850954038194836571127049333282331329657827041032939187228236546601729147471850679164603543639536068773306302777023294272020981907206564059639459976134600581858592185481468561072402279839306943005134003244828068330918599069667293067935091508527887440102842981752576495762969525197214939643858796061151451834928011678057136844714248046521619655358508410344317382961955063734376637990422368161036093594029349883975823138260466028785916935808208415041482740591269163688856955689193843736302402234479405738699925697032594076504496271002985175120615205196025997871297366169668632052745130160847836871647576330219691279635982379767261127203673447224643043091654628561828900255878180655386913763690999071007792378842627373265243061882711470612853615630298878131649167415772145699164576315772607683170629281689564987910355214500550799650327107645412610298604043729245918028038052277364749873558586154032503535259840700222936497644311261140000394107391514114972506727572139331039955649897601968286076761233989903843181366366916004833346869646382818276416289035408749677691264822252357118839547231583002386340495487286723278280171919290214518640267527611476402006757010985969859085537287359065876798202897975727797758446225103447757066493870156823556882479273106026619967366750684899934510144844602743663906791527822927630194493010540367781233882387741247309733211322295142396180224399936973131945969716445345201147109974762535689028027442064866448508251410236916702690177751949248050756058588192106278856919730909033970953939291043693051613010804363038941211846528544610320238286767781373176111015337687102843803837929768386808289361254758106482872179189975719348892055173444381084783740038271169732272143564421247567958610212574661990790799851758418640724192240404374629009781647552243796074748702972701587202101563869064000627582725419432412497248500248653277351107527217303634332872679414354854997585333698096349993027148789411717297032532578136449569169655539674877091036997698547032817013982354701920125657602214785394992348427519432794860473692452354056231020937131324942468111783073474288735098495250335239004092052099558388478593445106901893483220511019636301634940625993160476916823844297724077012240878043011916355864840598651885829037006199593361183034602593790714985648294766082186253150170329703567172005615220753661586162099754610067191314751892678477764487423385698628728339499916879609194737853299125063995239263622330200836607074189805745348498608574369175732585746288253335774153763867933346011814887627204880421704295691036564488771115062035565901590855425952056110480350408010963950303702268531924107563431566795607488123920403717594083750134656057398620879341176938426003348367117628947224159953537505240082529392483719357482255880941456405305121251283195381835430669045747501348237646329306841294519136476977103383455655407782754878793834244587754225672191675978604027033607269295152203437461452154017935087420691835282793279523210822228734518326832668590376616311180552082307063601726560887346383192134499539889604633064062656359516407352145616502751536033669601442716658453558706882827384666194788900075158321560506028124798322521297014367315003191612070637971431313321673133477472044854233756649806444120795606146794425835435521056251097095445151742342040341707515158630527829977344064615144706790366719928820945129700604891312573302438276625643473686226112046921659770061673922384095846939951319898262447014891731302392701586601709881974797081376677167191909330887362435636545097459304001984400864575333833943394370220313011554683254745495151666303033670196373432136038134651473686264855905368652584930085294546023857591486864552528119254925664072443108427395832620192885714028414728750350082710951235101501570569807403390618022019324729734710726699218934675205008168936634100142141671997785011827852054191998601374906381096535413278206792093261709411057776587278478979069619705274589069259943932247242397473398737785219907684026180667113113652062401710279088016050330746597337525490819570393711501497447199946646872687888584198170566191426647240855880157190342700322828772539777217794233607052398477432127700114143189424792589444163606631877566723710533459364633074923337661769947462180221034596306963423184185424488546575077631873236960476962307566079229027410944330712359054781190218458960458473940039298773071157831935088873194935445121609405825587863159211950543508825400083223829981573973135064597472175360774804306412860485109579053631609934141137890460603686283365381935399665322131130702925199539572343273941819283808065512519392807150264982156727588633966608558598836313001448369378412518376299785465919668225162240609418739294689181310369640184819881838361390748756363682800539381379378563606943340300084627596931685374710747214124214625481980318883712042177592999134092704725497785521682191697483106428830111932421873578073570274331236322617382960873367314372500906635609179535377966483175142270315679738575184132788766471074838127896183322337783766981841936119776238527342434903797749734526108184998346650552368910430307285372262178815212758385793141158772672140981988227709224276784947723619222792587296919989331392086910999170471319859287152628802936002522302464778487224163438491941585845463426614232587673984871777211067086704860901865274861621840445136608421812383400633446377190958959506759714681349614088890319505619519787313116685899465611197135937316246607561818018807376931271356464779005465056000124006521925397167774459697622322352291851550247570439855034079156469827451202809993233642867599453371063327452126846324851977901150887484877909174674246268603838090024655964664044066590945083621300275027786748195449799457733031623511600439647654115729411352007612144435251226335108749363528607600194764872779611055874869071584774589616202472777415750625153065456733628703408679560706487185144600263610928180253140360219963987401463117267095135790833699534674256864515591679638634399980124195498576344887058680275477124807602836380246776093154899227739156817422167235135204941973541711629097396300863985332344719758756607570265478409433118469969650009580235749716950061588581687741456054817657644603657076049562532411793711103703465707953803194871521202711686379319906870119870575148326317930129398424634047035119710942949649637948928258394933206288533541549854699336018969920720312452714572478038579824052324980033478523603855602728248883124989867384635286726551318859692315442924295594782559399275161213241018460421697013473817591130322114972983112770097792752571279780579493086202125945171411151887006413608330442188403895175496778019900503955654695524448299161290382436134757584767390034220572037533078564381425355344424520725957662602520921940697001408186588427597027766741077315846877562400711426521120023825065131255620818843709283225591047287355919767189537504148810671733805608539606966293634371261281948103834724683037992497163894988384086003209581202881419836666467969251414686998981126862670591312471719471541817305341959688907343253861171218553202221291197896295267809303201790426921107820606774092931655777119432251355689738670733912024017023561642817868196325230958390503155725608314385282794166272219678655423199719649372906344006337048325912652855382804955716188920208133813744672556954228875467068525196142980752236785803227860907101527675481225121931064015260524165645815508389848860023440669344214563095324378861243030952896751711305579717490083078981049647715930308671437094652818431169050473112105861374391386105185409479484720643837337591042395217951623049543549919502901092140531248945893456094102683287652654219985661011032896904700110735983532220668261363009449675433555545549551188686484482947584065638132050757584592901570696820882982784012594427342369025193796525077290150716032144126363707910956402320817994120406035294318184578554384393232089609998473158112285055986640366564615763184081111452061742899588076215176151748851223771833070373104830998920207091675222002574120940147838880383863090145155779062163068270565489948728331778231456345085511440476358705557728510589329638738614894317307553294967210656879918942215139140818535722163556140507621856307020037688417459458139438815840005082672832819361993949226806392841303784682789409462206761668916143732122480927493766502599740722375069378761015513732236286813934771938141336598141250951995486159726419408844279133629524504926419297271810684678400244593737062895806018253755541427886836819082902892168854220377951548598171084153780569220688564617551187295601768697057213631198914448167822760164058350636221361085382011808156379211176269403236366241579063406699030349690197964689235243178280775043072960440210469056826000211454878129165707856462150117735525611457895414678059956494340445949497518364900334831483064498304307760911791711873661996163094887423960896556328003012244003749712477524989746873659700288512564753905627613482757231178880291942152370338872379853649875274979795228849602081231261398509805186173358432016224378194493048042577944086534516773948892411144238166308545039284202145608573772026696883254715825225237467734749940263968670234072806619997522981206615634800772274502510320579298295204497521551705095620734103260505001266263979829471245766973895235237755540505997633380030394229549887437104817160554998997411686197761597015799559371839806119884608194183920153972481935630933130310044808744435298868009434799063011957755486980957230073837529605389278675804721934346297993762718933494849392496320758642389234403216717228977600664300128325120970197359346199989682674723214467768351216161419300116362298567020662267235702835055513223342349121970354701992176726414868047859347022994607390223783383890118910497422924596406991423310271830857111933653757190692751227383917906383350754267064211476271967982893651753586941936797664835971671992995117545060622070772855868854904645713155559977498982196432029250504395927904370727907137785125931951932769660229528196457242695325847006198245109622711622840379310447193960101936471272929671571041669381466888271040823707415920940479054821692943759537306419232222733239478422196982162788218346380222573122557960146630373912533510453364831881014193534740786126755852188723571908024524953369341890278070281251022356442872654997224280018999356455244161949141671253103305451612992388276672597777377370742271375862714299842570844479845705285483338693096809872781922881970005104394571325795517867144617605087727234327806827220123043533903301821580531062430318814305980259673497741527088211970279048604794825975709551033377525207304076851426570169425153875548793420576946628180832859338582580887698655233026499156304652869113860844681483980139613566726107268225605656404397613816713114505515271118537440343413415408601083102976468288394635523634950340190333275227089192123174672821489099343293256310808940284523421920944274012714728600434951481004757481546271479903528678703387455119533123191762044323318701992371784955899211118560869584671294036162887582442224063028299058545199179019835995945257654300702436151895647166171417916718832094069837153903615554244528458474058879073282358597529318766115279608889273511442290569636305067450996301155733395321787214624350062735390258282540011515319909882338467627441980746527331735689118541648576244402748251869824086793143375578091745942443333948580801693538737622285866037902280855420021029321896912178639404407060599369282902861162928722585068220531768415604737587709622107396224665601376479079730620065808106967832950808869229640397107261935743284161552153773863427530818999055064833784136099007342220106626182920775294498893329948514939450336202502034631267599567100461235935119757371777895870449186135577820048773021011213905215154889207983990303020053293147264951860725407410815010844069145576784587936179695181973159880051304842464328603516411019687717065471778926070468394164205423403189115083408054077046227649100159979123939021506799704054953288286616685061711866858094488978230272007473919122834983995157198620063865088926164175171846303483850197501937847431740434214084491167307948060712223023748434511976800766500232699167319438853933331817250466351221187841000830389695724689808821583368763320397583773749528863542485613365091435882887038095544316772540955030141420444328237788303807354728693267652301632101055738600036050484809832397331413740377155879790082482674181207198228352243169198813894775361429944373357119730710036636146760305690887042307006547914626333027353699468442573871145754253030771862295760749295903356324698085695713783027009467048181633070281730574558285776536610961794041932096283899800035261139029317842419633447041175357992430167674175497166498216086019576214600051502297285523529368865267312313897044392654743996864524263779939216986833050022548561771300401275045931625635632841146095651996944137932399164351202928192518426993207628961578783470760278000184952963719440820661059943055557072225879098570171708151376959816834341212580021528083000450533930696300896418969877041265392973416088273404894963020996633723601870939998611756973132970260537893204560707159237393201245760767915755457649927971960714417640331384502917237271034771029986483767229512064819777127536483877804721839050050335846046524738257843542725460726594897036420666518470349441275401157587555835064721649763588712623934012982843769151537883183752690693879895267217820222259945602225809686276531721692299596896618294214655575940652624454173076280198693166799046638097030046537593186121520579168540282202158730768323565095429868622874121178721377568018943969156659052460113406409218558512745309926222910541787096693134412422093652765062970197345178252723866135220957141109975962056867629443220645104131499567332323886659628181348371136447671388241137641371087680251070872684395791823147175459006864354355012758231760505929646785031782012653135389304910609477081185675034499571640670619973284528367630445786134002817529698602202067699945543839182299011484901415504062305629290867270047036290866411643285695876650599801423850742473430628749054898867275710027436933705641758675146712312982460437885441884613755026761691366403045320807014498294023659559490154961312985016202700043257227259771439436182079152193870735570229501628111584370189988996076763122631343572490361773920656130745223248475459418268846349668158996226936807733297556789375798089892414575343175170243510679725595545046311092377839575485954439644882311735133569502748306811287751183726216979944440736596240835062889945233734141847233152371516464398769543432278251025923751164495151599177632711174702037032514503039870269295713188826992783951662934428367077187880209706568151995672500373081277153316047423072234316297190121223946011112588857622146090968869162522383522440338481039519816274680645068819444070115080412729142042957313195299545313686072923958013242008866413901655751829321835605116449606972882585037183345028298406293943153715211214605997669625946050686392234949911180129139449056814264798011347301917534476333518888561076644838621614604021266664325484649046104329892010014954482930219082166576579059424191914849071113104380351005066212332990778329327121509338192503270653047394280186251585700874777451764519740233724637760397575876394762857645392602987957022286027571173360759903914254640291051298055723888185444531784324372510333564726499949772619870694289381578060798112042260584706933794630146893312283199127170795288653230501204988268642811895266171482059165129801560757226833871908360792792724620713659983153322702186466647804357252863436063071610912611385717266020799106535021064270015142660414251151365451395765689098091529519169951107710462484363826803534413948696239970355478350895392075262520034406173014498552676114464117825597007932476611277320834170161944653326408609969812695835681373392777159433987540177857091680623495252928514340179344703231570616847491862410670575598502858656775222122953523971102297242167916751662105823870362337159988826021007357420039147729777128143332429407173747093981009250244384904555070558592497150236203361169701190378604339223386430812807114946342701331981409882446282294847213505719641586848712624146678059191290950696462468337802683057902191590752183651761848793887514649637245372423449057507585211022615640229646365261480813459015744901635886654851095683339089951476055516947382704341529036007901442079662342648181919963945853700152534054904504398113531477136025010335359057500933984108071344637129496267906592644924523109688455677037154815578267348492169944194795143724972970916848638057755723681398293729765546292245152942554046056755651765567905399195223215192806817335235447447992680969014466859991164846173135006837909363501972185530776139200755035591791871149381061491329490549330119490984210641519376096054336160108535294822680219624962716918237632218533828345121077488695759475406460212824305649355686506350183056623390431086596938311492950228317926018983353707712156461697152842477105260150254544550106520675586521835882104576203241195788617962591298383116934759040366410969795966318237075851381691936333739924055732808050907484225966486090751061164992863830808639664373498532814157359837237618769096207890308790334234167366334005487227057185185749121037158482502163391423146774187307043586450910844295205686809275938240313979009729259490606892684003860169035251121644050350477654792392674582061764792769828873925742008956830152758221489348836252031049749071280413453973817097515329979765036336051061075372567596201447149433876632334112498732263647643408908890349202648213582793053695889623987755884143201438918629757816045899677291271388528855317362807875265266621311063050204564108181782853308057793439387386782049767187462278590842269635997263544482690546188598424983125034975597075581063735066426767360447718180321742164946389007438010985760233294790881346870062593152835250765874570111422939208812225080697098787123251606379176380864253869983422637786921579831307707763654522142763971160078158655638141038864149979720309250945876006276567091088802330855207846707218764316407414746547017529899610364792004603754244205350384323727167539417151347327105374389932270441956302588024626227934519845769247489414416343301830669373003992728398379757245622597481207037332730203862815334866074235187849963594214241115590478151667225863221725312507160621171034090118824478294094597091315397609481949766807712836090113429782045713176609313446194048566630930664472865401351530754549252524719551014037597270884569244833115172434701972775087248587120778952105738293686115807047290904941537008292943267076199626163599654201917917551521007761488425452125925333947149432785559881681023324281613336945816735777134757498996955031454696780943380775563675884007481603178517266482727375953273669217972924547119978114456556579264500310202739118721370993431551424289198915150412579730864488123716646419817894281043944897200690375068511225721435694349453123446930495507499479808330520724846337926569362719214930790501389075405030078038171855254246599960168250738200337532324355526910956847258692851295629821302401751446494198933426600846281363429829273107107398266081665843058907246779451986581489700512407877410942030526214377595902806211262871587920696259763330476218137787843335599211892266836808262987757055900631097297812065274764562395342824249256978424813123746251278209564608195757105474353258441319864055316097555514529871728822343111436437025730380760818713810305752764342376031859744308165849186399966943034412849645613167122158009734345626098693164177193207271650212194811612731711396942217162443975812046558622588718529842663097017450591508419440911455307682530518470698576517465108078294958245884353182997149877347893633149352864860330560535386987087755242407421796470194504230708970271329301285846965098627961057097876659749524871519920709900897844569541784007260801152047665777272972922314464384701870143558823676907219485620174093698314125655319525810488788221259503334304228896107122662606814681874448777065209208318838246912242649335628428104211580489424018607513306167809162909869022598174607898449160357312404432306025133771801110333328296858301311495195086597203146324383452103581319637347107253566121608577043595617229280262735601529491473094560231030669455163659367250120325361849710282277809918309572273188248779017212700138873218324704889577815943977868428344290901621135912240677142897563511051734907153442803706804283835293190241871319757148229082895505143863054937410628842337887116235531020027506072948676068663841906576525748125059152871044784769952630778555226134698389083028883018732314901939599347214773475929756130203501753864358466980865045830932471318909297770829405885447683237500787301609851209073495607714122967928911611304980801013981516003656047824970925072181876186102362194471602827797812965615044371031472741854003719291378529335058031116806589320539967216718547586411735276348007080249066549954380080219251435161959115757983439806042511531644592566041052498800731275984916714500073345628366354829623682172731801627867676678538382500257648534220014656441461841566088841035487936831847293813008292661469249236993705062965395722424459452864500650547470872802370385653514959325307001189603962410938194942077567886185639085441724096080401968849876905662929550929081520127474398586329178857807388023109127526340850141958770472691564894210157033373675304682010958394971764800837264463098911868993132717749359497254929879104495723189171964091131951305544851640378125853169870657397213547458254631502667227146904623034164143161656515052425026119180694239775930768741877690761914549381080166510358711590390501323735594900160605347121434972942501852917209132097496275318461533183401399217260774756630165410947512294492292801575774132078312545466350239172714088269628643421091805670586179609475425695187639196381130144219892020732779180065206640591556184365894599711871804600575787924278887314466944077457065054171841644015407059116180431519382808251234931339438057251657409836229240007960816162479805390629571762722619512851439662105510906106188762429961903896942008181165740502429179746239279145821231886624118265347540230401107376384216322678685925917079425974483948666758663351192731647040235023138294583487320504920173193970605460693412176121299113759176630001389961316070318540107549018270438962685026463766338621854825769184520940081115896970656789174176894235331616056926874919920551775688155236705675130041297552603281512323082753141582818258401534027159662586411705848609386358150651952318505378902310322706107350611117829185080313793588584318795981632939757273871659629043598625546671920942081191083166900114690620826060109878265667867996992761431147818538316575873992374568013211653821153381812552688911425091410198632772056826195116297930212804633794959219871776409144351454062716485805265842955092696723203035430960238739384297192616959542898365732460505500982572168511878496629385286042616755593184132591872508919938407061834667794210536501460008492230359914363991513639019335892763668888528408132011079749095591982339108018224156598920833036872448503695078271829157899105777738143046216861682918453263672509054650569990170580808861685059649133830067114837979339701743043657633383455923065354716644424161606601264421710468965200959811249619267147639032685264954187057869638435337421088172322933931968569196577527994922682293970899646695460694165413996191860347775209660486682181829475738114880444898039343544193352388131978225773637702642734951042774133492634427589135301523068431950814913139671538377118073092574954033661617507858237886350251644003667647162048822748360242269837295691033253849044148066156600261355719287589102796158733510805930901124450997883437663841971150322606867341066574382881338253782954513202688528814168166542382019382601938686369179397258344786408837526991376629025082841787099269417033257509571954696770373662546791638128634099278388669522523547281089023381851608712184605392574817524006967214705864971570827045219553225871327813623564667328806162398925430632803615675094023764603310249184843926727557768227683958501821879994204945127488730185993048262290828135585578495438893583633288246093358102394404525270208240509914512163513742227818570808653724361656622915472606134122773090938077941538366192194158697426354970690003292146779290432322275992063359558338220084707964069178181446259840495915387997204925832978049537883379227249924042583450742596336892342073860927874367563734231423102969971025237841584347632304771958582441579027739884110509006275271447669650416069767695817294929644880901636409897339914343114243247758901020289172139590945634353083261912079670260394843569406385980554690756217307805255873556155690538498275104624444226531969294119802277229447408319860525539795320701541993010832010478322986252922672256581768225311600790493322509543399690914211920405995295550988743179693439684135529705599002182517210105253199958799679440998343141888889637382980814991101099315256505093508694815902915835919580988623979448207506113298506328023391604817048347477439150828981397060792537339770455014911292573894328640361664777762299116042556332743374224322792394541246162289370666354239037751627886203888979533834357433247789205731155592788621734645465518722545455595327755418273910981601932764188141044020709949281453242034746615239992411277761695477951591526575088133155772145699665236823283257483009184701374035275604499281741960276776916834159930290111809866219134591527633679472414995224739278421043901205429491958052311374912584771431250032755968356370261295396766630129285565511125042443705456247113566455761837081415036263646636929110402236525382340894254241995472275376025113650837304056884425169693217850755458820148108049914487965809704115768983220496705713216048195630432569814785624659274801894944968486130128809327813083879748048064891677614106880875203268362395395800007025691048420057267382630453476914887795709588484162474771600622144241175531855844533826393494299778914691486676678171801610132613768920441981695090270876053424317219406736583906342867233138559500481749226900540899804526448790458484433847248591049743681736304488126503744806972822080824169997697424223333494157813838993169060056596599800400565881180545262216983983256405809579639279075143921313039072782846108574136990807692972616828452273147958985476988654478388181558419554615613232926653645826866200081306948661406776180216726335990172260903223181669939883763140224977387905495192816849809779660430697232556281489486090842086471922824066170611380258200470604843983285006789852044182804883465474770312362229795174624333699686868837991227316033268383867235771885157095912742142146534466455727186786236714238767676073346838157858423651600310592891655190098024579403594988812825129216971602003900575694000779906095464401225205271594803440980943517166691187843530607396602723295039787915061478799059570200707025894725735116429162203109342078782223629134140482907115363664138274545198562749887859304595616890921618555917917757402137093596522189695159867811960824355040518630908652890453583988699995280506105221002174654517831715737058645047879569378838373392335054778082228221887636461565565472063675301149131236663596868407711492323282950414068186404055450353495430085759605294261165348299922981035743534020264104985218133246599767045587788831811495915566205335927528437871145721162951948705535891428768916956174890508752324352935234641700063971487138266179411651463656467593006433147538619890472302157211655651348427483937177619168270369282312051029828207474449701935943889071478591712828861381163561977822775352146511734475925881023454070094298129488711506297575621050813050619458656451147124926581675919913417121395531421063609320043595962095044737866569037178847228803710946559727315193935122412594156335130980751426920757478552374232371476040712619725314480636657044009617161083111814907838917379325567678366026995549402697620230178360572531313024207639800892913818820935030456972010833383605839144586210264381812563898540380713931397998520261594435055825962171860823389209941225141980275233539345781567028910940685570749527960946930034095241294632625281158399218771331271596456114005319261668318916892051935564260277346283495762253036869395268177068473502243092838432768875559086666960127886323548379679693731506589087314908530840266019745235928589298228061038888222003624817828715207060047899100737290627683883602912460795374751631324453584109050370735047220167603024773820794790366804566943477073829123763974019486321448183071393803037860159318962879734292927097796829472214545564325155827522949501295121364810545679107261459136409084695924830437204517827691876424750748419599826127386097665712162035817838656543120302050498670668408844400872017917862995747683989721571805125502811475514898932900986273404092390249301846397961956776537911012291177163681459519528577621326647982597035582918812157643978300834371730695728171452059677191938986894113410646735870900324436929771723644825155802552627062145624983180362098535128258466243269970323315806355777977812375916568176662606014003042233141264143603542445763334334767701407986179838377307384447395812240468617201789293600574916793580297703000101243985687145877231871336375264616683764176375416020530216678481929793929606573011921345732811309329404800778581735852452091548726795112573535514861685492256947399103456551464004740817448348493670253024774408866606893757204933716693137020919844876651167270940942048223229020225454504160001468298179338556838784145947254696876927817669379372834272656683998791205776609441042636640507455881197382736788583663758760543515679994439510799751342088028432608403363486659063355631512523387248704812032048542237799457383226085633404450928745428183434253138734820776166606613733486687678196302129686960671832244612502621702876783837286697948197265275371070314553049659875212792488280631270931029861986999232286973901417384376306353361478811574542881333267697028548982828861351450675121851776543286927249202514602423217605362359426013495502962055269866136616624484911782133836796855667759330400693608851028658559279938449112186942415278679091855046465168207712329593515811942858044094819703584879297958739026225633812947973352874390467396711680863316522079632347528707086605210999772122828830227569226952566128541223061990697437292502971535941017643850925101895346074756067684877079994901903462588039293254210501651773720476383717174478570805150461416286770836040927044199578693783959937032359578904259911461415447636973179739424781366667966979121460450235660408306677021519352065362594368783598582636075638479016902099887169906560858194646590582049255390114274739554411786907163052470792584165691215261320257537407347035334094007613389126401643401438466437402863944554802836523186510301056018308551302428925120357451699509429115221957262401669776035990630231205188644076522433692743671894392158655608273819195605391117256077210325181950749454215152378250959194418338200408261572069666109960926837267352784960694250926563542084550946950925188555996677132214368245515214091899331799825819481314418335461728789262010303033651401845097878791770412339304234470676351832923512409220604027523634493901455726594214258586434391771324155777381047770532705708020704237527694034560601821852883344973357468948153796500987950940751945075939702368183597203065677561159480319392601920228178859807760140778511047567033427532127718367310726896509713401058037910128490313283973143051005985363270385455235942856780681972238456808649414524515338664363053497604630260938763521653960833683177046767824377159079637813384660265207765591602864301344981781450963677024826340419791170304126141511125915043770410495032466702445268731662365754828316172742344750214005832170482662480920040377058493686298491297813684782264733230328419778570752781324672018388319398608612058761311299363218048880828117736198071184458540815499342008271179886882964690152716012350818474995369226735893868035257912668546243860955673822383624178891106470724993249318885751269746727520109644553493552320739247954740651853886101714737532437645667266539510374986351510035000955171635382606931693964145059166179070335981095915500404456100909515461990783226969807352840950306263456720829238695483450031106428397865842620932482790917093374440308612301421729689608572063314454451342246987363059791400963497545976334277010310869530405794736949492004742593574671796859426576903310802439882992029723520784603791265000765738355467680331657941919570287786094160136651567446592297140750598459963184172037448826352003564094105240319347776988480881220380184408090775813226068720248453562182892304263101044812323595894271832013870989122193350525633964500322750094154645943268747194445903555627206067082893250884369676717844088640842216297317842163879703492115296218797841014621091426564546785709021063518661787756605193240083039004472940880126024807630718544939649625561418903562794254778437197482591605423000319885227471239557782020719954471617127782498883198782137199294257608383138511140566510406271969106021508380993982928575367698333060354120502339401387900011270116936976754145814876257369471173984323466317692309020640147610175537474948042654404157730435905473974866980240120871330844154279414297650517033436418192524045975029251950981323830105241805280189221609196152861535975965662697386482607385223233082693902790671869438450590188256151088592142462248721493029735349943067151342411853162223473634091781222470569926967496405120755563085060223255941132203187779774466804734059766014400824349335251974469766696954152229029150030003832630836588766008633971983552952106823461283979696862618225843129915637336803149703714514433743711940408979505324756581120875843113817908414078953191564941149272600445588490125503910462813829957681497618301190290653576413099435933213600381354955613517222157073509941450304399488892494672332015495214590484789063652920576108789195966786173516459945126913779422688098306914045094550908215309440459271935942212602130324153573047682877734465510720263908744299347242020323255716443340019083342306581454546805198942181242921678567797562909552414711301846168311190645692594758334416420404582392635396094329051222690830116711426142491419312472176745435773279140403468932316622871034040951374194661620081546538337123185513713511077473386396963923952660007184980050959942474181309117593900733038550126067014598384901612559839143353792327753700247446533883646829911694850723854469241361055787891535191556560550872687786834512216530530212092150219836237732858436801907884764968671621018280104342879443231922416184021984974479114000175590354222936585949600991249316928036510130008265660399531953702619075981220238470654186466351714978961284774050788997317094137497911919486548247723604349540351135371565475741597335786231183745359933493520858199699842929749682498694073420969615280903380521547699235685106478875740751078644964662140716850773628941486267794792758819735546722861417373100709870274642996574806166603837883147664440940363691110481603012549266611784007300779341153982723326638867409788282664152790226928581824916146439803667376099592466880428667764558154258842802124532726629281354443027846160846914034094794593075726999895474893202294529458599638318835276637014901502941095378466885569435665527072377524503720090477370035489539660931781215352471094901601923118300658692771348123336120601711516492627687693180895649510232644980297757363104654989089554042995663676053577331675722280973588621975570676727573337760946155963164282483729437188227348736474003221435990360688082085372905062200539671797752996933819267760060202725921983398738503488411912631653363596245940728996510082726893463313563878878276820523666507604595557053315954564910142404249128670642362340865680942465023150928472155362896020899715504464697745992650351707791574652375545269077383410009214124378621537657010143775517219324311389754739261260517458755923006211354945230378666439423098333634439539717220913814207717379722848568201558148301156248599023001307814409033415226174315432982376308695971104429590924490662492714854334886626365958898899645983944745414197676337832774673577116825515171221939412119954717647204455016351143981750842034456398232905056413082138873616297949039967179244867242646021096809345096617039909393045147198110374578216075551652893527397451406840957976354977752458061494699186498071890855435264126910291342162600997859329405127147872380484603759268137132521235138218247710863419104519543216493650945697334956254650282529139800810827974079376098996318243818134383913938703014058423257968431011883762472091791144978564394254129033839785417305411673380021744746130208576219431721587472673110889518461553738247766138439407077686177166554676929471987540461166897115482491299133723182539397210307399023297551372017311770256212903490592905469448184738295652786663886045563257998660397511291848461467972610665064733697089427044089177978155275247704170628556781187680520212542458167347370280170143202712128106541513383009787024931144464101825570634801791497374035169516445121368942841599817505363624648659277934704197479247825796954123096502607370391110473615694393467041533120283005846860235565871432737857744182078986178164444317136154460535768375520672437000048857191489418425133403244657024455229376492402600270336877295858839520713568238716726218706403470762864764788679392949337142999939986183674034717990262361775240197489346501075659295742338822964179898042730677766542224422323478813195899510464555501680858931906230973639153841133639035607690223296658308602117658870476789099676959514467721168847275550199899741957196067272027586175012062852786826352603364282883710441135426614974465882278587698621500187221800728283795062399940633652841163249687663281220804151967748299090056592340470962920061077116656819173113550014372253530718852261636107253716255846835681705349431378473479456574098500944934736225492398289961263194813325241866650735554036307496133466558304416540153004628442333093579581084418576063742174926879195395014300029271602427658879112058695401780464287061721437004682728066544429983470621438607207337197186876042466096153294355170789714571361554679144957839170384669637384765778300187380551595457879300360024748745562787264789605334642982810442359147964949528748974892944264012546983848971320860705251868977218805252716976834773294603624417305306636133102630718720920634313830091311141071337537043953886519289935407174471552449818820260735118486019979075456428535385786447405666032396001538935133701729418891255957183592499855920332397850805879709499766877151579700301974473872425580776347881433214813418618727483604141200364155437695451630442425156079058149443568390823011839050694134254199597076494106462315939390133272600692276080153493386413151496119850797965652119331933424088095786966147357810302829998329896546134767315686522128843111260661053253771655766304167706256413235601764513612746604058704550993833883225606710698754690654523571939856499357177737076360047065532541924097708425524492187168050277821968126815570952881816760098360591955593457928333246748702452405717579321286686774924674371627276932679969227711132586468857021660462629942480732856878337575294358282265845949600725642836261417180293901822587792202547421663345777448649931707791771012490892644721671317868275957246411317404727849207230321187043173016193134387529060673049632465330128020016025721037683585554391951026274323974384132144628020558160040086536786381255910148069571690155626446441408382666689944704734531674850373381512505884302175807411944145809947152450998298637733439335315402506627553309115676822049612676437729758743876297115365319665197039250304480358117517009396759464116360305155271882058410463926574499829593117540317269695740651092094387106221831118902640206846912717300108748054099414405009729870624684011131599634705839787759355266664210437201748726324643283449353780240099679512538454428622760845627586871724382751189863032626849757223516348591573037241836389824603861453218920567243992794706562428929003297042204950877615418637218920297153701292913224182906826951005276310186002905783398474772742332104243848763522071060357945103788901353693061912063695117336194391101967346165816208431483902755304718021193378348426135168295369266257243251706423788469965214567256498772051058181723192341389632673102702822683062377854682159192208659485592058655180070971223556110152463980382121887821863023246956205679020454666456517837212326233429344929191014009380563985695615126757120583723394818745137973350243902729961092754471985120305997687225347708170706003224136314069640876999897497037008813433199689523164430584065759429393195667034464949204400561839943417281771256609179659871851399982234540195246236455987870867230814058958542465331571987576186538984015969782989726899316828664958813307951073681018323432772123256426771533665659626352013247763103058501648775282303371051531826180203349163289855607823215781876632397661967587995605139625180739586752627140807991515487656024026154181720923009106767106858022209015951158729254630579584259089205785658417396441043375495251498314142948581147373218135021224895240356430213140216811228002056080808710114690322818875488234545435035824877764440774806283051135775226802356161321741606834675469818842391223476926746610446412836689224549995940442754784650397173540979925285273347535559318577611949330662106164835106665142528213171412830167285771030464658431927487361990941380960343778303704092397582029307125632589079261790372191412823321246154644937386111284936835610401121577425272172405701396393567161490812742288801517100423469315858521751465603753826895433170480512707552321727399094615351404240416843222884678313475464931579009042289424081503526763889654583971854572649351471184269235839547968106368306069484810510647346604086122237157263679071921861736187980260372790279752902675595881754264735669313243091448100677716393475666764279052957562403302468195488035750697144000134886637781671138199408181946043688010112412528994070910452840030382479311181245300854489070022762612752874246107606214214749035412322105369563434792673002823613309649515496400464258056083102787433627291556431187679004022397777329689693831985051677921973090045773123216690368842674139763740355115613062567828358329115012694233117400030409452587484187622229227248336426389030423473485633277606968285376334710359425562126772212733913695697169993666097553195476854624962533270068582209764609933564151775749599881282839071070549087679773663084049189452542871134904463700668599082696305561861655472995979889838151468799904859521998786455818018009517650060323968031137492505189445879497510990301107875606137065556409243118509580721031458579480713148500552781690461262721698853156807670580319361790107811618318138557072344950374222554552207018975775970132274394401627583516863100509245438811937391151773442417551554485997608234289268635216017744442087061305147605061733393805414831503877758516102219897898914603335546826265456629051151435045560756513585634682176364782874484538454956946993784383653586395421464365264118600243541406131188156452340767419821569808773048126837299142043032353743024498965181282330993651391145732494288601498241273526735753450557280217142668644764367168331197278289706687869480411792645577349672792859073771956035408498154981892935366875784304692416045365354523549415422080477943285185466985097786552523855305357395978171123646203586382980533633647270254443295205505195456471133992680704566602492512199787012902520562887018288796836890769524534788721370600242241837920130916678877184906028582735034287298537179089776683531313702636419513302726992510584888334301831673918106756712785391592017344758069094333944737626835956038961647807862857298400797119477956517180862335107000119526820329794060559196090047429321714226129123811730835202552810535432940348216618579472522713005206128529060485924999646866144878321804228279474363165408038408612387101339577523228082601196327229877342921561338678708501959716185760030168990522372395211394236817540222766370084435812232875048497129481028769546220746373059726405971010907520219520139158803574068145608106016563823207893700672908684132406182495787152326508978891076974596586342890182194860646229696185642080594671313414603678441342878759101799517753735212933239832935199358761064384466820688854232617488725156742722705587905545997580312560635773185344420533963424587212134200025627236897201447740826677287927904786684916085005567864916243341789708339659009662371929501605252841226883065259741358666837402324656712194929526033910778328708301524950993084733398786797484286060888431374649603755318981451505139696553732075282925605910287927324370911986054301808931003739943891384441492494545685710429842531221498749465822327310227641229164659875664228672617162338242320748080791110875014536411065413985403387849985800222314780232601845137474255343463660513941046807907929030134387038577851905153815644594572517849833332994997806406287159471982548382716205398631233728735476268786236167400239691967194106645972377617335793885382683178807464033761253297879674960530085126293069649478388129252039945978900477284816400979485418071072007229935982789893750123198383883995137295410325140127756015308888139868432636012024396512988794078925433249412949006929474183603656512584565222519228326480528057271359763485593850414871029978322295609779665202692205904466850602064971782685401999934129523083003764326890489758509242140325528706708314304186515119843106900444756645587834118922478880697591154647115612761267744121541417416208206126993847052954014054980546514097078698707372552108475044669005326353854838301780806356167807280136610627180973005543324323703678840785791866633139768307971484833564495406539067170410322911723607874461850392977300598309724750077854008441574421625747632642661925434617186947872520809630994372053894018920922183838062530015819135089425809311008784778884373343180729195519999072801019628588121509253813227748016534536376247952021352888781256042107829516645371735582763257898631241120036145668556469594611549305078097675690416709586144307909593639393480235100809291575448162524264142334955545385753064154829264406960058790303045355368956221463242789793973391941814878338884126355058898758643843022802169480186542338747138864027031375147898499696501945010135436498725636347953895315081615190273508822512172412004764834231346033692906880404843542733580038844007020307765647291413061460449763586650629945570350797567939588973989927202571835599170277790771098508928691746777175918238097709602885069327249433622150820415050368950615119320049573717648672231052173720684862839450181013885551952932084809498291981362318041849358027159154302966373667275830471652306194756825562801017762110308937082421248562386886536069361323440141688753223126238662193195097393622075732938604002893763484562377056249757620408506776598362028384993400107219863865952269971167083031777970673632302874026423631716216105265059260549776005691837765072615685008040692882344612112742003513836752306114392136894121807993639826476768307316769377578288401970165676146917866718408268366519618544960880929135125680974984620245219728816125048081482940495048668379909620311662571378708277875655815474414217112705951209881183630172376013237004524466125205182545503652464973630101896809810431027302702504711332091498054162827591968493081399261972112722089094496965996275303792175998134874526022637924815150800237380238626812572668124044529494288641613862824078290680887146742495457282491115358678757728097876451673612954982144255958584916793393798118643712483098236125346572543595508678762061567841853823124002107757108177258844520662277476599022420964674001531502660483796250000226957094137091104889980068395009127122935469121380477068782403094449756519772288611797104620387985570523337955582011113055479225337568421306964487133701355835839742272637881148193182214951625624399871445522799877056484080991656009154043909255333066392201569078525624905034299405922495625863960349422680955719070798995335409248133788643486047254007088422362150162636572504317932593465727735416779687443999241161993596672507415565841218173245601268273492684520431056135170663211957234583884852923440268680087160986218663602401300186677401140004245412519932384357223622674755875302939863430507158122773049736894877713025998935708476060400537326025778710147209521647232725804498802170305532370100420953699338443553347168604599690738256663982487934721390603222172761331539225707175664175902918040664431681784115547371434148447792523663091402393058458502583478102374048361127141589896336568977763333691236724042541851978378535866670478137411691682521763014120658344965000967352246898188762217914134961036106421864145078351814444698284935535204535444247326193288157463874568931241859882361531305697108802803117413089891654864382675447765653323359581196793967284738390071552608244941086078129303429085476681749987776915862546552167540856044011160454102598110060757017820077154882064006865377346582344924892021752630394764856048830881674984598399138237834914265609904044672114243558299918476267762084460833908904883516177243769296482784837436512274847461140913200891550964954534869320156548149298622007912251845413670247777478320007544577755847600341864418116386717659397179997270046262797752908260166644887476727992389087076558169520089762750886635968421371637997095298697178333177404854474400190020070839987766771122223984266838796227873520974935552949363124106159350881813989926887669050004865234528071901418295899980638052340387896490031477735886871944383266672730360434069599211259152759373105349432443422577359069991347638874200396747814526536530380330888954472568978879384956283068716079162993790936322974471449762609019124995430663160124361870300421018986536894319153384986554625712336399875989995141308977493003948446111635179323528165381535518494390668627930737596812230660648662463807906675273661253099917894360639467847585253877448346284367864998368465482448936108220703298874272859620973711291605901959285700370071575783958729352399111377399655234189389348632092491899333546918153178598700000641749423637605439770552864690543281012442652764916115958360649593659595382137116470752589561080807491341008614996891929712670391454914860999345122976088843073430550846537339942050085139487387293969572822692520655941062458203325331483572172219251714972312390744692154418598381879676729146446850216699582544405124877380806413412536642041753431424550470430143674104252249099902239891137609273825281008020110933365865583603080329435473241020937674131275507660413143898917998621023428161785695683823941577088132559165842598132298733640427814565244147948254555447434529901140069722409992053489180326577677798796697036340969602370474033842766201985527633526188088739721771693971478485232946991750759788647167604456193248509800337750863473752110433853619437494305144541233917638871436968462615105167144690820550166643039371857371460589264026635815727446741680770671869858711218369321406649890689521410105891191559795971261419386954775276564835647190068478333923442490832596134423899588293075555206017574456220380652368052267528501055198424008338820828646440099285428579441726494909990472644408492542465602998826742302188462150249534206389438364282052438636822077972738530355635154811907542018652435322645009659410060750984142859025812995452875311654728365099497059199259887811075489919935041540091313961423429794532015339608902633189735794729675373414622979914272147801132917600579153456079661706398056480441397278557587942350415977875851377759044858216955224057486228038555185660232524782156448854388843470933574514443610637525284165445650482467848785517906690155880616298686180821626811015557330418103433407342287877312054096327285972991895949707557960112330351034880143500098943688377368183711698196780728150342735152786198621217834548931965437330558587618541761220124897500247631769671160490733080326158460200345806845744886327189714250968323642358272393272975995061657027340817586063921826937766102170785506412422188779762434086917241383768323485362224931874761903525946107374437323836463493430954334104899813851034139765727543584329714796113325284482374268494834085624086203985920971872408137091374797277328115050257410256565820208462649011972788098475527428489577811156155232441071964899716852680519220085478523151123797688756647081720244368982823449282033176987902201786576115285704955543391214521494587547122554030331525436363112712207640330765061078381602166659862777597643796955519273961425015206413398544568787977650502292256112684422291141260864905596354850709958466098554581950742334991849881723448053176304418332085702069703819912781666977569815751276370483362539357305218432988306042620714688067269610562613580844685963089926603406675537513098321198327416941459876867745000696217607912648425368056000378614641980228612264151190201538361884058699299603750131549453523541190771791298401350774294828863899852703541856418583025544179086427258492032761301101921603513595923244375040825489033051896062750287651341943498610883025574364622001167056567419582158052017061717919810681473468515072573599821854433090648083187892975693952205200147836000410658774020493246158293159660027375652881701669534072119109140564394402835698126471265670462879060298731933534712483518022491172660963385420364630706116783021030492637549123252013621992492978988808631918901233203624847621563142711457261106875434529019952478195290487588324267132867403899644013707489515905276598935469965371950768037690592447263300248944096244199838322910744722819378159938874515207367369308826154009992507859285056552654179838767460467310380124133218166703401590734863748249204962749599508374549838731726782714391211603175011432863192665604041717944123660291220857149922169287334976353779258225618910145139834234464631776739100460788433734730261558146775830255332724004965349667024856239924660333609488235939515244653651414138735750572535942577842023203324209259393895647304385021397740374268554024602381820377583629954315917483641432158128212195960169457462163846018451178755773021723696991242936597285978594876716032225994660320162493081660906399589525377144708939888518786212604978106633334006303547912031134281006972826388841255977816645794036448474678138725667247802551285530841266954395988821804027394591431485369079132682260080178113116517443047698983118715794657373018650746283761202071310564966739069100617974849037707495682854754743723489630461027707906267749058548268855615657670362321899841078904992542173342792788054916166112081603351611702414267081100767643053489191212206346729221138286114792055452080233352074178335887271297343133155214545953342262706504293619896609370710926065489613688801395912847480517638070618095844030199302767322467926687407843020739317029666924054782565503829703305419323243806674637600900576451597085764626496788053610922928006228797366137708862959831424733963012257836184799106876442274155237839479206660661817565274209335441119708406105606739100306121694327684368566828809578593894953291725619800278001154664176698618234224038965112922266823676759911303792814523614217216007899643745752561689834959127940140538074619911277572501523403558941623774826862406792867577938936487057182260838521874346367576792610880466266865631283805426348071975914134514601942014513235363255589574669250472791685111679774872248823234110580749073057786202512409196134950323979244992673474214205452351235843514065532758089796306287499281422288587276900102565743223492828370829390315875336107465774132061692537933635730483592450452998568842127379103735967032624035978279693745243774954904491910193685381747697027721512525102154813884156807998175290104964659830080873551607711845461139760066674869775321333570795229552908832989905252529057140545847071522952605112711338441007243952145277104464095453924692442512175920945068773105168993796882150097322139319646164589015650170048531796537944299476530597396763725380286180428449801776657101234693179600680801059407953212017398442712365823290126866417419245663707291132796237671885114366497851412779143538767880988808447663489832558830573645816592863148698566808945204960455382748675721287174570022649378461008649490823672740026510119595335982933465092096275590747485048413582058133840652202004999882053095952409384102789299988698325250405048062117895963519944447581677323327529909972483655089701753961410851792298490148853694499656035825931948466836279452428884473294794837780228602027703338697127498947252114658815178897751975774933500500331255489940388462818751387355662363837469631259975657206269221119560494032967017933388032463417608824300882490019181815552256205377434145220335829590609134307640984192281121042844618961036463963486536505280689571800355093709822619916770828979634002456211265065439336171891999809973590317433879862096950947152169413086708809118765074142742347261406493641081582620492491712319837997453575288802217562702192255399291738611574375152483917097567246613725265199555109677157140772332446715709793836711292913939820456445823138301573056563525801127828359932895031395973403478302863424141301087492631176449121808762473470899034835507517627812485601376713049389209430608334495239790677440564545760290497541293579751128089423738195911351497006284134383866753849559316313967698080981088746686156419366662057672019646009335263388803368123220263628375560269785163234339527695254282027452009637760325953434568672420332743398187512961540208161492458716280647884032776527701278513011663067427464146589732868562571602834347982352389252753747514690830749330529503308593060234393372582574118798997805392939330246821041191038090980644933464183574879693199763819319311753481830570559300437285126095892684803471107903386068873239452461709564316121323053725730725917305330261003370442763358946658899014554939541331421956998050837737707366142333046434756970989008018668149869464180980098515755483973280954844442861335925922201866117234448329916482373983594064739154352631255464700312736343558751548458255984620484710707881784790117338621390599206070966005918531494769976976686707673010644471985495561111249135614374500374291703905872216995650044636776109009749891802846053119464521657379719320833701060302207079325182869355784901707600787612174147937428947655247736716172831679871217110749003706498863964246600032385018359877536004656821845990351795639992900401540625989695433413335342273745775585551912734290990201470102571160447812930100941216624411227028939404012397460146964577440287356519369756843893015002197624809145837394007388767425238559886792139011766777008096355001918253521437063591142480506594697328686186307027825235362452993651934510360385058774888213853026085952351441583493664465212381065565609899545977897890707415517829794517572686864886527304283478023219840748342020767121720539360421258349316250923866531286744595168504025147577504692472013084510420584369404670354470940033831620502521319931517156916548907255337765035762942135021385306124506958944652120949395101199178709381446838110165448093864918329309038524569384453567264522402243440650790993777642149721394078449343368388076414162176552898267139899069607395668929019267900812580822867684648687187329447694156420770244228029189375201636662622183823505730999728410597510303067901009714063323586225396084471365141103750334532989716534223632545737088147780660828594022471420176752414837369923726733966072637460292406797501180131053825992818523424226499404713287869684150959107027324955417612999417398574965042101235453389503146069822833062603682026998190782376588233283199114236955796975574896716973679634259001967446835809448297057563698823000406072963525664190478378732224885508205002322402903440685572026214138765495844668379985575908322617956343800985035275973148808063059999257459324153095210831216986766742399391642420233266535625780687027281132266592737895676571386937511426314659405242711101169375834241324605965605958221454488324890767019993525502168585901494946164036746695508193075813322806555491847629050934161055235529983656134040448472923785258516891834132079510204270176646478143148136088031387680223657232386154127287490880525930320005435963797409171293323519888358462473928118719777951569238164352979370397945793048371730791671609765911304687378120399142245731003475188907310205354787724220505302771751312653900891738621248490358857288226578730118871435752569077704727179003459858426548471704654228270694699811060870154090994561115016625542473102293169012205987173593912901029478104602468930988983271094441878047708030047974085240023197907448261378071206391002032046780965799084849375398501211086618702413655356937897518338765487395400223180903407426801730282891629926484461069958140597449350761633416493774729327410901940024432089934782712232881728239307375708295212474120776521130116140528919351960413252583644870264727216427268845981121786816474912689600084092891758196597341476779319426376799211518508611746931977857868789079462477074313798938485400476534933895943320508617163107976772783170195323540984560858123070733543389173293767041557481457897460831323476313455663132736736534874723127610312207463149084310249172685506142589335477915229415513636650675387042441302185140280252859418585400542548031728838354930148519664845289315189216455579548423474955824412317899447252359851626326508712884931605178878807946091518790868243766134059069644503439570897895404093040859316432931049597229149501714552717363562415604630298665972409651771359975304055235426669755229807062743651464488965998123477571030261025236619911690490215867504122499186272276454155698164150658647519434210319270827563626126584377176343304566128060698047344919133891677307031777033406168982972992068411094216668535689650727577634296233022485919485216610069912198820504254726770531969783898010688371132614400982177476152076900321679004099154062836629547477989136901666333230607256638366412867561876056012040422775583120117747994778867893920975562627504951902105767484241983852705368654087670377086423291187077821243768849238479468922076444931623099466252537793928841560207138545953353515874381481569355570063813164056206077057194865185288205510431369643015413515856244318319994712646038071874468268404859857441783052206245301936471211913554573820786285711897447396928292927520204001225109460799970828414346287252772250915662009372159038147077654107587211037084783094434905078640022620668983628400735820404933835024129589366983806942347339924489447417907808559614165609725731301600163120784452998201936575068093710549247074135550202279500262092861437344411891810301310012341896226038292335469230837443749276829514037936142310524894277403051784960041835173358859712733484729179516610257384867252597893333502732799838340026996798959283261846642406378095703260997111510479375354652941526761604745925089986510739975073344576450943499202313546937496849974042659916604284589059034415298270544101448257512978775059818266556879218873873144785519628416702888017634605287470550169498067319768299789988203159866315964561799143541458053192554415032841601247337108656151693823211189540106882005572662991837534480892189688788788802710554805946164415504646269426875155445515210946425901495976144412867330031453126298990587591025115237301063548458045697655721420913840356398594228419961214686119865412641586044506292513094719992625413993925298624775938926700027227988229892954834697237293829232624835356704186160867544443648493824865597723201362668649654755522180158144176408869116800998187013374799224370171500696556596079283622502610867736952768368314819832003278212153191086844590227361344144276903428736619924404291478603624313512009988194928564690095545057118557675864396907782964584980272552832790883922134988470487078373182727741262821334486598680104586086114046378044509470878648250114003660772032726521953373918375661055584116365111800220235899989223048240207978275664471904049163225931874328336414324846435500118121754819214809197499509935980109218393666965871742929233735663805630721469806232123291118539832878891211679917791431733793849446700592820771738455416507482563557754921706158573590703715609451199662271068122471963108569801825613369149810685636755704963901725678136608399204242824733106352669423177829150496496879514588724170247271914701844108095581932072365377554148652698627870277717387122028797862418978663536355113535139128338680829348974091866194381807817463806613916933180199538298022982400957060042951593262232279858686658232695224121660557557847135568490332049184787513437293250864771713602894712513325891475144623289398814977053532895651761738289512218185536110430015737168618296287508281411798314798554608730611604574223702476991338742996293733348410949947473676347417516349278180255323175422583670887946536930774933565110239154577214264983308757356659548022449877193730938824584856743014233599313532770562662629985880268856737813917647904149885866845702326766406519365470986489815726487281285400048082165029908161061947617823934186196944705757889880502714441527175526078704468838876387139562658953801982801416078172081283358040923356075963811859952057732542797103840464603437478130455241327978932591832679666980341712702616376931240955441820310819327712773493291019604748098327191227440435239113512482118982472010882257708903423091958395708498413676789334104238366961153061845713500968496579905424660350197686987619486674265399572021528122527385296198042507614180241041269572111365335010571553977839786088967877947686237951724089550697941453256328145319280759767968254486784813702379459097344077078734251050219865471098022907554238988157581201523449016454413555479161581562598511735707565212583856809141807895416299393860425215924003303154493799282035234893256363438265373356883343626292534197033023808073991052121127211004379531372254815497846800552585281061733781196823283491092392847372705997294139961395064019400119900566663604040993885767336762845090838082237413302692188337170422107069568052333293046375503364051434653494341401181902724615332628109831061656870002620586164555946398276727832147432544018729854333255583497979792874822412210563232934443185489190756428410751744745514143617941538111692079394457516027442022077438846813139463056139005741665692738046544379521959881461053854434448142929476056922928675209649021861255309944458962045235045041919393715504339290801727463180963339887830827137581320446839040199798649892698189246431383386931610433089285181159800358217280338041888784747209400694167511773227403080802713167711310124209196056420665988643725868501470828234979004006615530584028849655298233549596566582967188633399294850576285062987307436438627215526363843633257272523895657684640768128504162037448056661677355337175221539603928702663356204729609515060564080390091144016655594292143465801569855136177337577368038383311742040047115269678996241004560423913710272654597665116292287180277464080380884112735238360642377866213021959457122292812095099180031387871572335486767214435858797663157899760260901214569224015801603214897817433313846468992834067590225663166443534450852293949513157947673962248740240978895302694048457571712367349491305186541146769400946902912238013949511834209677516115344648322216775142039901169977830287741378533808994293304157822782735843110861433926040717573835173620542614060746023010304091075526552069879024475805884590956493772512226623581704530057729671375330923668296805710814050207308279798139482674182978630357496146736400851381717058589335928700467680750239878232520183850779270192827455765589920015085810373103385262979836994308304151893810282822956887927941233680622829262240737973212899041819396490948460329418708840729737515808941573262775475803862754109264377053348667215131463093139848329272216269608447986355195925677557712908281267539749968018710315434964647414947628039863931000229580850227597817478054209861537768870068997930767949980101458393026123585559474221864323909478136304396674256627348757227049765638564907915941798018187283079008792776180009183146568145777523459263519253916554353076978288116761633157888928735225145763228927376087653200635323136647181094549178880281361109903422234112611703950256714725579939585563975621275525351188980032697763335328321947715892336090778509804801317788077368407029736093622094954894750371081644958084648168221850991033793007908385962335844630319397973985147415271806862541613903761908519213098180738614825556537270114413924901540573827714607990845560173545109233554693730978555203564565611603062200981775776986518153453338672019891363765362072570720220597068605898823750281949002386553872100194400410163735842529371038928519989041105617289825008567821547126606968190005584717295861551925700634859755875314848936859579866804657108497370871128043630241526598143733282383728735258915960765780541912444061166319006884936962252220845042733017153053905173074941014465322298251629892452279969419058179781876279753926283006038177678433622722771742377881781991023436027229450831921486014050631583552875485584878165845858095145454170576221774595395735599961168641628994824216321838068678975422129422984508087870145038373393404142186894444783069594984387628901974037811333134944159658352175349945259882141310827817106324030635242669802932497866897985484454410480589085196262434345719815603327266765747870787525200787317099300603483810157939442171877655471785898500748429012042314240966382581655771719204110763126648706204698064483657464559172301619103388841742898073856392409171122298279635785686959976425582308256003796407522766964087867122769085041795174266216715808895313052626578947896277763125203810771746702554128178420134777180172055706985499650415568214220258231551282884535541160112371250630081665474191705768072242137024181054518500350046199232389818632858179913844665000168890082005114917308083270830084784060285433661554718352154652059177575929266978752768861469092991532084259567701440811189597931585623067180900977029453449615117140877219560151534905280842423216127502832465723598948535199547523325917007347513592897452175042868964322988430634463817964737514478543912535261685949420589059628934761714434705643070111001536703675195693071801738301436917130005284882652063765114418516992929748937356368705184310380987992489940835188039783630706953817333470037480186102808870359165191503143448419141990854252689814593835062656541433418306939313204288118089305194874581432180791545006832708206093893206986420490736612387032524486798165270212971247271051433941331587240850834198828593338606143509083000973492412699026425499734052252265719023444102425631433722122276942178626795181239075195472822906976055574525269914791133983874626154498470915697859647012760792564556798469955953243855290207063115386080578288412385175944615213692659487571773872530962627623413612116827733258727246957825159967740719146422451914329309208128675117821066378610195379100862515334643353249301001416964399799528567614044065479764051607385289932293345479315540350852237783132653702673897674223624632919565669667817718466651571590532050338872566745447172292497476418967954032876002952570827857835968230678386424927448723923443425554253800335862607570116685011957792573374614408742226772142798459957808526028172746870486438716857176697350987059213522765897640467584627941288819557261865970966566152909706670287002948024841661648977692423375631006723027532815028914077428922277568474303500796228405348427857415078818343455205025977741361644150872137623694482141159248044461736009111152644358093817535305263829537247194266753337050835533850333603596758057727228433242111074904421715564332256852631023086631118968333509677759943973498675588597962776660645907969589015754441437074746914094262493682166079473085009050281792739056897560461318047909091892840083780705229940747042928105366541722799527989882452676113311540902543877481192073539818275738650383644469188481467129228217358966696242074084683757150763859886097192049756942352645659226678711011595363545049028683660826249360489422196605776501936738491449748797825234094222727351583123053128152907335505607082942686169980452722420226194587712952679798223764110493845349421612946288598132506995245265950884297245625967266588689004762596007907555599251760296153763773635284112030489803528311876446623746591636056363856953742130603171291159769895549123479622944517250089776943808110353062093720838164668534719490039988258871754340036166228305841153668137585444703546535823536938549596663303853697050369821577531792737062938116156298682121197182643062961470846145947687056573214261884978629412842213447372567881781157214584214747947640558433013349588809140637246064378128958454679310952995729568308446219964071577185865662662198750835927438278231319174819412999377264412793907622265985875611004066357015938161509774039117812383410587155963696764659450854643869954869377538724643715476284192849850323212992277675600836005487254788991426872602408227895966110106609250075690090938543497455464971821363991032787112674074076204605447358975653326136610303095479227717614052793771002660823092177974949521594229052360610562482975942592354823422374707395656321533860622644119775757017795056623760096198500685809817057947202262033034640489091950087611708770078569875078774385205693065723106644997480245146850611064137383861462358401223756137249681023832188038706639491548965873833040974343231475598301985341214018323085571092637468229241984524438908123823995358616313261352343210083990122025411964240127734121021531253500930330664677098532928301315666592727969524651803629889688894455709126885965410741915495938812217724238345866241318942867158259795957771922857309189963134033352717239378171628427986680575140477584502760365078202947449584701969639118464717770560942117772322588581042022912646977565392670513405506135867460823091175934176377586790587052868591619159435074307655228424126856205857850304767564649986248499337469972420954178266464302541560602698403428563975389529247425493483026764142796861352980605200429864926912143907871964870477569065987226052940344122330795850711268308970517932530315578736571802411013968312239627686325998835055595603117262375500834357884406393374148914145568130976640025715006359732059360758888821983928040025292806112945168783863256393735392227174474650297396526925439602445725758307057031704425276454665002073649490612866916106926916191476696876634199836181643494337712934362579456684482729788837770625031048925448585777912956842698242017646727926744796678286568049858332172194287697140445091040322995148689657551196762578749361973041387621403577288368489942033343815216869645352863918021901617748295425952763260570613850594497518048966912387012440957427925462367888921988208155079610721729137511772492678700623804703702051375348997118586553435537128409738394030635794915497525717311298030501425683980361439847497898826705428017845843017314632260877439123294345260753796473143538509822562512556874409804197032477140733658688564035448139183105603433630591185134577221246386422427954659777480660995119700112302512496182005528045057956015242022566418031895996017928297778137430679344237937652326799167144250390234558395022841493327076815665994768844710482496657795341324784899941689135004835209093903725013861446813831913498824808733421147577888079706101868390022576529994718674765669329856580700482876648306784060334342219191129044911830386855231360638165462187576625750614996629666226091131634448743228007744498943767092094328652296804806712250388265296409511564022367574163644204426341218072725089312821252685303884604924108245034700180309923901816687831163271898471291596842435536428822932689609324210577439374930723037129428594316660881748867828126046624478341329428317405028023850750875735461826074183395703430534198339895679786918391244566778511248249817048676513016018856797822562761140692178664986517083415432625294485371710488698606074111191359768681729893282645434467862950639320034282292793573407246297807857088789429718877343494322101211525355082650359260250830967471184439451532864978566310907973472762456731791559065178172804204588516500773100328879114428262725935897194383708266886724137963061975142722734283149265896163256476055204917414289856500753571379863100719561050679093325162015491491942890468931901135715619073493009080252920543025965580609309939348678175481899169390258541534360354043593713241111635357667945945673540092546261524896144768955654251178921269134432268104725732010354184275459821029606078315917589168829293521305649817619613261986989274290473825821214690007008802199696987167533847146029562608772111470489167959735949691701541544552712849061328135201439128099802258834317005571968816531313787235295572859475694136890283040626097224155040410263033214596140724348078448229607005915642013240245181862027079875947178898542006164722609451948651231135262616788529726784779743620986361289242158817986753062729445115160699407431735200785425329169096116509179846435368665339499739230253663894039968011352960913221984434890091152247857200753953380617142163913000952110942816862278702966936962498267498163680147422949777243639778775364232403226951906673007962563289842243607155887723857902581365624301464170106888443268578742418689307391257489362008128467652330477362050559634523773599900177618430041839386322571299643389413589816899550323630154455663018688284246988416350657585381287944241079292532003564288453697008091955252147627333855879770436227228655326659385390490693573473514974565315510703566817119917877476067222396049577856404791761051179432750303457971614272750584884402871796087098781347043001044012588723484140904481699221094791114120469581991856630659922919399555787132330620758854753962422950256974687025736807257781106769350406341585096042611905450113514013886877092756296463447148954582365780396883109745660005766077083431571471711528110706423131573520411758561865788504472873203847766862130835607552937740138421667662547821375903078358701946198622496501939778605807955875428911326170877665437908838359677404533283962214841700776688093507768426311654594414137852862054966884519706605752079710483855663144713404620686573040136776648250782622099415483085551342525171151952289430340437844506284351866270181348154985670490176945370199013343160488445023884936399639055655413808089340638563812237946834843889652877666875785416681499562729346817932808170445619544556710273901569916554292572359915558737959246645645154488168635259658304286383573680164572994141830671592897196849521841845642688381281018176128931143785041305497519001767487120171958808423576576165352254642956672247829524865556722237425332150929250368799244107334359428949258657980467467739927828427870469238789688431847051110574937478867884516741091226059598406844268554100268954264482595752406451107423740925741158708642921536269306866881301599119547546910569236536414190796766150006867592924767101111983436320243426969076919733614945271588289667237157676094917611878377089078009922617919831364313164046538841445692901934760019715606468458320771135579475166075789084855155742968864314048899822291970024481106344972591532718656278970055896305688589883674427443017031587471868325742566273871812165918152555939868747920761108499533999736295590888758768316431144031777823500618956597915610958589932555502824984921116422061325237694440271031867793321870368308730743934025072709414326548508223460094189592758669167325908928196029018284532473759326383668036874697406478541041356939324887787707344469936992134367392601387570510592920048459391901966086186502261939244422375749689455391225947317092547477953627238385286792546950287231577424874194252047302195145344995276928340085026708870502943408750065994178615651662852063895718544968727452627030373227234292810342354642221372899379497628107458670408105575554478382225426523200119313119026964534825490909043758618262535024367212039259133981962938698516940175085242245455403993175976133551059533672580680417128201333691169769842059674493282801165705966358471280113621989399411752410306374122072038489767257956291407655059496233714848688783748897369135274191362354024632969156086353137441371095022637499425488146665072309613190217321059342859460562272912836739816895718126079546102444897405773445117133308669285321680522625198247858727935100986440378462832904667428888685783002113112127268052136052444926577023849156417982756862247681086574414626618219953277681747857887681571732373371023854744989852143113158386473273758221882357402327563580282449825171850844163385044184027577594944748987692144233985360246677467636911159930094901609952876213157746306352052415338498375931972788902480271478884310187016719537011025154870164350802787857674986098236157875429678946869094780864058462418578424707057021695653920220249637972546615964229860019873173728319997780823949633940850346280749704544372009279576712184999239357261642783247574766188325322480412890822179555588179127310860040314165079460308668830390307521742821273211066946929448295647430263230603307486076039288134894756370914154352585477352993109034552330024605184982872405941026782631056905607150909947087379223352711015116024989655960759163859843837238257639614438028106034972179817357512652922448205243488030555217089564407748765139682377207339398852818900358628517703598952778383070635956771156968495013750781672352713575414893711050519058487082585485604066575975367961174117868607068438090209712682870398566914119165210293561745350427059740763088351868521646617001114251695105212961607063250395760185429931819027947759451224737927444170233788071629771004388117696616587144009247363265239064778716063119200865370072442729176170272434270560760414684163498997850189633241885781880143861530231840034456955702344367858102730782449642361831578814183378775985538796393598470784011105010174282948361485661354829345259302427408802833126116831597666795821900302322238187138994508698977950921271199217210932831653282347025476937830747825975667914652213674414663611111752323275650099991802393597190841054014672807124070520168533116221428735085443299769917432479722727133081314005269212472663947758168936018165510243127610611669151294808288201998059410346014707277155379774808369477932682636339228875320604284969779320742830452966258339500284073594970596984022520604222671365503625285263595363407581191750895550796142077605447256862169061926692044226320879294074178585407159823578927332230461681390630915550990996181895661841448789891599435672030648097416123998496725384407730506886619798053056600987283906406248198793212040254482919378810175075949744055595567890369650603330939334210659278533947571128426164022915715916133411857454311220969873266410206804372301068988072197601266409570334993508678114280682344926923031281099725025521214806175348867967656848049750752383430148052709720300078418777597523253156827892999409429756301350570430158203600028488658364258756456480542505083584999439330054601475345229105969768141487601814636771448338944694881269606073010145961735231442439021905792248000526944529325315067692721534015643983523215970939964674285482741451016504170068755644405088947492658995259957834037413541573323952094388877375000951886498695733968249537579033044660990833734509063970272295626550906064950517123954659863661952332529608209262607355029968477542602540087638337608268718956946566210561422879086912907571701101427076615832615419066187959710287903285273278792116607134537975171146841853055426048120634661515623226894338075215598514425444005789452582933018094410876784153622613708705157344604109046661889082338998585088222593367643993310869578835159357216165944790493983371202096970717480034307416033475661522783688099550527459692443933779049376977138947747750054081862847212231588127839890968516667529876757298125797843395409425972575055956661153895418345833636162232218009648076087223094540823224912756625885437476339114431317531109578770552916181619089192945755782751331406559624452317873477145626309327817035286422364829814248576638533268285558367548790998978909112187357462678510882257368321496733492679988968910141029451394000707755429125312411529270496357450721107041127521243372158429383013316976849409853258349590244297566039592967040048243423080475438477509168013767885915903306336293639262429262072971580886653615244244958185837699129757537472337079034444695967489330341954311052207078810977123770446128884365192384971472166622430066622329812612038806949228542694521133283355120546185540054571689577483794802608784792331940428792718466498381290709538014124727750160967797868451462326554498590311145949355849665854091337801163703459160500675181448612250519407837331884474040309253424259038465701843395807733423587222340246084493399135831504590794005949350923784856842847380117000582706207113594019705398637673532900133247708499493715453468921293659214747487758307136176802146397066248589316538069834450593401695386658703443570564128877984517529111790135901709895029316226513650036702410770099684051452438382844564124704133129588418635248240749483367802525789924208957456213652631588875392640578459711434702694308544723278896903459106862103205837720247523930268845711059085763822681131048523474867209522133356331005323181429428278593731228919152801287892803475130700718273459150938652660607645736993455544077470985564630482779901187697918030018111279720734120127864000267108881022669696877559512333248640921796971908634167056549726813971493351482459191797808526164159292217408116176611420026008720773681957921002321241091113562361894247935734480365686053105972560514203334945278869448569386055934021687693251158018390168467265422855252615733630245895822866690850747474125511157123171960756654851733747320520874120793833295954884936727323499519185881604886226433595629119330227868589752229899283609771198496263106159459761158178948023463094101355646817758930038191660575017756985136265915395156712885721423336266380581627470867293936473298850650304064636922610918664971533790533502212569250517281345507267711778096079474793468574741380575090819290221135671324590237982522991395225148965884801191749350279480122408539319493171155044283558790387383445716120554352904988033755049221989324647402428067459999701221275499486892443957141593099998706020101266620386506954050188242203637402664319453247734339444421523699286557423033454122710811987825617881690584121785310602180373120075621226257702500247588711010652474650674859409885231387423032517060728221865897377335929060501357385323714267666501017772887394799697842462739865912736211091364570237339236828724619129796029309889207320603883794696561045080564128092585938191688164991503734299518234352536814372182793342505169971558726008564245498521176107373035301015512750149161668819450911370096845446972142719186817308362507669788467619192615380479530282777026891145256929977707871278603212082250757811812520068617865908735949140532273464616385767129649305709381370787415086758640367692889680938492349773968486838594044661252211523885828750427014204307335183086620609637258701646654174825781668627684167964616847589839054339002858494151421294932700186602267350414668178035535130806749187914639570553374774668285440564558289876905949041608532126019123601443757913081598379803483417336114492491518338769678737969955281375012965540373038912806394574492750549964475466097830266212408035917076329957556456206059972664412747071792970722332654889027477533272569432166171065749233469184177745058863367809052436484817510234353217750297375335407791894294915992016531542189548907687471072850152503591116987212138613518764886245572188987728858157210847442668350018770894384319864706919924473336129857005136292463831857756464236143532263970622234319972730333432200272380348308722335557159322587868854850818454309820988513844195338874782695670817522604764747586744341831072129381657103562708750288998460609701741966133283153259792024101308418816518131705160496877114609271288350337024965892598976906673589686534027789457561828730538234959820204696404764437388881222874480657067678511484150246204077511729931747886657651474205986842364202537786124411697054812171319800249030128446246039889699011945036015930126681975371877396280327768651723314134089659949009143422711338829914124145121082053048108187577865713295511295753434114575133965686042606607430756910642251619306545225175952610270896466351358048161903304992958793992363209678167122859892438572750602101874329349669215292815698476501389059699220025676925581103883473623234788124977825078123297017997379595497559984665870245474057284049873182356870891968809924928703278989425458620141859258625623059908319306324989653126269134023742563234447956262734572873111898138924904948543386268220492780528963552280058411049793736424092364968927202514350120797925313318096186861132940764690402212812753350191008020822759782343137286452162350577032840559100901874527683664149637196945051158460053919878596267735213727278271916675219520543285363764112458207309749408127667061514242418848902811617678121250134558110130742148722712409425681826345846714637766772937327875012728233263626431277545779754627181495280867685684110833412781765449725075329885615889055280906082012153343609758280536233501672713562979168130305950563873676806117032357202644693945840533080610928222538822738178675663295142976090464868129027926732086277433763858298904685801449329804077767744227682449507190981913111456346692703941958821865998099699272988711768302911330124656878278119275546105754604234513040748646727009592422759568734622098068723780768190420886271133467883216197888390551337438636014834462303615532752670991778154966806648649794258471278269482384620625933232328858434566187676872255965313803145105202840422211215422622223414461142867598904990276495525244743866944989715350774625305868952931749214228286230888271708135100586046283924465331378032363001296399360978950182328461282732946677136473594299879771716705376203111672586408626283441123088006830312385734743513344519201743689183179031551323264304229766855845630108245963623413295461077294183048664330102436238477370370260391759732347679844057846338153002559841893201026442848747708041230136533838265557727042708797080042705876313558054907849617606716785956388306193224030739484445210596375899140175821279291691504055052396799804648733596720082894246961243510668694668987990348925091379155317850485583106158300555484379157431901592224814043527689062647786385530220630745666707499904233224860458564200953138982821584460331720167122755927206926605245617725351741342856331744202658605435603900437477094024182014353173878093574391548301146742713644795438107080975058509724928255796677090123431130864432895130624854543951961528560881926916233476662379234508262506824771245076853484032633164524370404594173116546411461045568238327941474328137832409352685103152022892295301813996437949289273078413515507068904018807730456286497237719723899471339753423810423670566638976599560649392318140088411824396459997599982662757282357505421880255693790730187320367789406214926714521440183001358476989806501126860745374558580660431420030514934318755634935981650698462289157412445624734315832812282910781437062258640073005858186935318209064708225073149879635900771168310731213684968805870127067959196623038461749002282879673721438780428063471852407852710529720798188046917041226941171329620065066958203520048544476398052331172908589756130853989032444487210035013716352864930281276125190939523729042524151091594491615546015829702034158796662196218342370103629102247175205296074833745279124736939953380020647459483165960239713873213761395440699826678473762393892031217764763826320328652183574558060878834062991812035977151482363042647046262208938393275501478036950962053792533758763653172644903053587003812208110482964565377528545228124725825326460433758663090186041888869121472683376883050820710447030044282684126963243428738201709236522523810001252165815356760330322526387337338457623561068098357172367734295888014739425087919110582514063456438051587410627783793467865689641161081289860636038739048326366400469873951645147923808253285429598743066759981895566615024635023596466933820184990889142754040487000640925172722219271449879201777528033132515922768954495187098373149367345474058609359982704460451297745629734252153195686413223391143518790617248228765954597968198079290195230039208542259614677880073054445207008349184636118425144674021901023199204151667213224853536711544218371678696433582132205684378041904306283577936772288677610243812898428798752887971791919708370587492375832935064966804257916035453937293842588654119517444635364252824375074235750232378406207876440525641444503491687662336252049129890489820677391348218351289315431747060257069042711384899597470601196176090193378230283121443437520095319390905377902378719236714904432302991972507903677432321764635880146049927694866555819118240767690783360510360215740787769662502077023377260910593889405226287829625579857075924844367197943205207934232219115123393093597068698841368079944455192528484599245399822166493422943150308664902815325503744708907833953240090812552900046278586783699442101650531832237648985621016179217173912665061583513986284358438603313734440130027471959230547938009756180584797209680688081254354170286567447828461684613164962255489199666500824260878892075091666172239867317801015251372492386676156536749463096135258456647795295107810755551014235261784564229027912563312829118385586317396206666977847739893547883087909173677139029283888019913050233739600707929925557715424718065806893645637130375906481068125228001384305588221195952096343967868261325059263123366924340516613961887553185307159340373221689551218781999011001307764866103031907998790718826690870961092205039255393042725565940477780455963615896846443125614844680044786454409465075827187730663443627452269934071293851654126996751114493471265068255366259907783487509109512562407145084515621826903024498806882715578148386659283406043639070710837201472692796583275984073398964272340616105346070912746443430889751974820611358128878336847818560025576218382966693937868037815204608953304064317948414662346758808063684978599129175508735316354491083011376871310268517159125372240623646740377760116104912316083883839530679154491572783209214733632127968598663624930600438787418706946623089973517603741063598332392943888767815019545899068490433827340597173123235041688924005450062643757610930678270170835089586290788477095328774876183193745075525656945804033847150493644218616032196968895548121851657426723625859966098121546178186681077937657460566213805863714194884370884119310114774147070102653113586177073631315328630773822385745185223274444997789658472242048585446157818187762858083938884580107772489253778594829753143228665720949492009215608363239294019084683114248861879515922930609137715818428107531164711237416496760050687557252013287933727209275933125320090087586484358855912039715910680659520279853170199067938338149438682917566342484724970848590547756566813525399202082292816099751596684160010642698862287073476823289403336893407132350099217845839523335278062536687759865356995669011869548916819552101345373377203231168846793805495651116133366833839997533033122357292537614276483178212321841586598676522771933612294760662138042269472489204451805257390041515455137534026001308385120319892467219858609735034500855918187258192541692267835354410851980064651942189448664580251171063520450988312205318000282516132310558083300665198753628110414451561475020601504545948221743588795660819423889446188536616975508697977519276312145032209419913885808673657412849342021996949961718380695996237440029320861767715767989326081976271490437401665626308146741119555321806993108922556679996224128868483334677326384187818432858526755523063140569169597756591174121817438961478026859584969987857243904774179601730895111466092080552989010232062800569428134423758422368436483073280901994096190716864559815400625937383569120212977360462448804280722802316980523464191239629376422691416498527197974235548458640325120893355806269859097871371940696291190072059824192844600176163975380006243296570907433723381627161851126155679449998793680321060410371778011458484825499887087752142609369771184397711101483031100974020448484370209719079978713433948440689404053147704024631894077557818648901865460095730073467862988777175811221848508922190998975459789016000204391868584049488840843306868791388189886889054913000127484629891225293053790399038325238996914149232261726200725501657979424847523664149102321121055868927762661663777230335325988215033858139339292416259950085727117444251848506603241237831733358560612584656187438510180791663029812540531377537906738836036711009949688274347239641031616291563192156501516730729957857763387212051304661997401508218328776770100501644730979032350912287631920343417997830980665894682587656205083141012160733317310258931179587642699871698108346980118764813258988176434288224335349298246188208648390340201971357088609975181203852858798925173069043215053001025285146364987381719049057306571259991233816092443808150416467332220612813467812506819038410362558201344117080702450482167178631143761688258860309738850334504775890877605769507318378934451448305431256197298861617195673791272269246002789448136279801171804813600421707576054208817281188142685567740455047190234653312336368782503600580422790292461767635151413372369645365389473826823579626929970192555626814366487473484265776336862023587750873983552549593847064126379148465804697812998910927449463734169419792156541576141447656037527983879734821678758950041304943012496795243144977378329245501001273815707305334442564512560337974101615470379880237001869793904635849769845186268590116110857638285913812840906556733599632496439433779089345838347033572413720986999428860303736763338716033822590404133326688925812178352666275362015408269231214425727667521598144408292566285446008281329181490223490760528632116463550195824257660565943162357144424994261186001210611884524887578335620696322869270068380001849307253494752462132373192955543890083515579424012969973407226577038780185488351696864688429665907838074283537616477081335404328057027935441472104932885993182582069336206268592711094145542217968396940059020352394953399942812713934223014394940793344704850540113861513958150223741192734439368744037921527167244249637468613936167146818169217070338535593053986316819864180446800818513125299431897966887704493404585095826332852669959080747472686433215328158256771887257128994901311382384843601970534762470839869414086908228099790158328741814306458077964056081549378570776742524210830848389617464537590676690191018053766175864839050293674078328402022131123774512980366971917882013649210127287382153517297402276581714682936048814982447749369550642022835135717178399763307557813637113683724275276455209225679480380129875233627621598204873617697443874201865254668986815263816727385768235675377774968447967387174662901888389382596409724995191432926840869288029079596241102780202648002347040654764271804374424133264614453724905455565697549975057805279122422380946694682384399554480514962099721573894808972232708053121882662981292740078975473282536999746601751770917083618722105697500876666311595118638707953592611486502960486100388136225155378781096275720484117696780881439505765177020117640564545198491289760711305745040530997494270863487393996257804742476889942884937735324303881243612333655317861047049372842302796475425642605202702970576481476998872184518557131474115757534221722821761910072704214498302671045573177722497525794183473809773880663534903511507903695355778796485106226721077931051904178933662461654698954959379232779056774805461015576600332584513977519082180123693266914440715837415433220772621775697153441190190745410923861312683634345539472718719705110515872442013235725053015739457752602157385531871372208499121995651792039156773594333872523828268297986743852153173391193368940362012523889528756796754881265259089282615670126818669428074736959125498688951075171942264334456874254411397492535272903998484564113014596110975005637481355067709661844354820989306024913831863581511760392406676865531329059792594504842239487838044002019132064475328376167097660863478176157425461144067317946039514159677264899705243458531953430470773562497277057844175046578536458311438588893155892901735894444201534425778101981975421000662591072597816462458342446329790167424297909431578220756218803423811215276329567844059840836972200407041637208012965812914137251581348074953054553963636729998854363096083485209312029959779322797289255997295269473399105944751504896077711743601724322486718501435657248270695478162933830918134609960275258062326727969027594301651681247976245542523503629985175019526181403381264336128695806867426674104672927097212181109146245708473808904097689148565621227552061633418898641800223632647836928707800088561780663857774848459777356536322863462247003349046540361177203817719913796431517006974342138074826103382126391052478783573746186596787428481861007632336733064178583661866596376249878511816611133190529529657992839301864428779453405154473188608549233554560963391118571937359997207406564490716168977369648604968275462836241804290198871030219211258367255850633174318125352359950348464398112581110333750844787831968843015562591212923750329994085617826439643442965186293327640780299643530398407345973639432613369400913998784616677203373974241504370091434373786241661195245117502087317363946454861860164643940743617412833881853494773905441488805856616918775201250667860124547282845996452946155688999733426264544603745815193495292015776753229005832692504277718136359053898805967363616536869779788569935729511860579148296013914909653492395297575920734755440819659133815082054765775311741534276763662668365680706329404605881217568507485163005175383706935413810112545884794952851966478250970325133275282188476668503952961264599312507058407190444712399881786532237386332164871354834411114432775515363315344346165508963468664290255683671994074814728403475713535942281105261072424117614115454699385986124716682391945757712780338965495946938955109212513940694589559758350509005567580343338435414833890633392012683086686309670793277963451112211979396861372955024201292191445111213436521313767412568340558106274451020096078855739337081754759747408506457654942889444038173383813312459507344403476909091963054668260993355536355929424617979268448028242812663975891568420276399519815252898198432682975903904065529055665592913557924473991232331585851753910729758412901794230175597333797493879671490480821746941504323641644334597578153696828639105499317057721584681604604801273655239759389682742841314457846590340855914751444460037401193582491333063116095824239542330293587097534116627964851836507965865903799314027020895216766747812000511553691265340370422873445710934876718976558258820720926761139046174725391790491742440421115518069282324951337692255706295875547536815336939447002183153219290849781976975556060548996474811305022514541441371166510246012274283141243611808901665405854110765155352179283544797632660159938565952011499181017434013562580224129608065264299664294188566455427859654046467571469086186500886926874125863893374931746713911179877131924498256995260737260480206770248802986651296207064126345693441335863737164737801652421932520434195667746096956691483227769128644708972080693656556678667709034777959599505054997127016673252490592947963057633889754967470795497251419525842229996552479711855394820427079804086488259068130370583692939448467406527209912216088108267557935154330954986909895701776074567535194333359177852999423074308447573607543996596363259135143014497667895072137439753921947898679292114649412165078990536927994373239046868035320426852670337970269963066996717193677699372337569653792759139811135473437315274020478187826848337841903282888347988439743396325503055301648520465381179365291961134826740597306807960596995819630470137827532572022578532437855036476661280282207413517648417969894902204012173678877224582664726954425390386506311724157158722251335648730381144570266558029661941169755605494480793687533463730596804094585904871325573318923843108030159702299048261766780129143401495289683441302329464495221456010681046009391747613492324774583330503329837494559763061237020930464706833742518350473005016713145780650919728703716412635775172281285716077464478601950781816826476940217920018105405644246399688566378257259163866778806752467509616001118087950664491696145203569215917033961689012110060211367680276874272838285169385168409034621709243139448253245502949462197822070002333373603789946053744736407756706983624368136586389237221206625417814138919553695722609729988372717370465283683073615398458143717703556024199449049411345753841954755763231451399931981934988661627632569130924502164566555691408002834729067773595565544313950273523887474769619724125097231712984214564714104254167214699722970233024789550754573002346283851908824643810860046396500431923485609331950676423587201839340254971298066637193997110375586398172968126299149527106088473508671165617204991838246496433256378319978198595124451255613132738880417698703386534135036086503813033315355620841352670916608792748098675137249217696075373113598058591265079955996896662219804429977163533253871487510118556248929120962770586900173474112215377308815934561421079452917008074655191321027148029963716622776750715899474596484033429956337780880629352510994015514623145497630490091803506947724389222530608788075811344178015681778150799486455780721538752064440084113941426865084649175903546887365719522264485523903132114552804162533182715688098143758329973425797760898460746871002054944044173790608186788757773219899795391741919339965434643655672249141152431549036157014344909230375520463661328920410960538852057514741673123770155614556635869873153031683046028619261109826301281656413387184682332724241638974481112574745000259128729713788407215330544107788373010955359688127360930183490937712208331333035573769660445513613244073360609780949843152562797406439570315322253335315019844026645948021354761816626724737805063553719467773042804972147631296006522251704888669442293505354706148863261294316584015725605631607548606793673689747176984528687285313971742991299637782605389982789228447162630669359084868249441268629910651528522527495835889639850921194840552541754359919759834232704554098380010042108621920592859996031474180701304670052045486622509381481068482266739781164959652505639253793263395069402203582715782610732759603135660904414029406633765740581797819387196876289738727050297606865183216128875097395601893962302423872655420912981890504268208245479496449134799326138359186886696381542207524864556929326556827750467204618971152927773825461272935768874117448587922739249603786422879526231730991791734046026541167299622477116429779790471521839189261017680114329722116992189870328140239657892277245460673896710440385300878384991123312560562266912378730792350650967625794729799467652244898465875972856572747575355779462824621212097005240923429590952316082846287709125100602857361524632814462566429839881743912974952520607304871619179872494038537667706488660616098306735582629618166485252693454800264646493068239162881185305161479623299183555196283184368967536180888945716182994101610234114290324665648349999089541889539807424867331349539358957231830456526849249232953358034345627822192834643240727888257899724403357504006176953704144387937427048617233929508992672575062589540286507247435217102624372903546412263177384526100360989338300604323792463742180945303967476464421453790883764450394809705242690406178727396083160415645331845825319091271317332171762278620311444542852785685013762481203793820043205423132739154461872285285742897457331304689981323327190626514610666671822692896063392024493561508065885089124917613306542661845314671946661383996983182406671659160298131181781946074254484588686206278968155671413366204095952497621426951144159564978762473787291685209571045375801399106763052244361348927192119989558754577935917649535158157196242804644933946271042154903659682404185203489775978494994478548776612003071394404001863914443939411641718047207950362991543602339045732707421974431734467190931091418140376298577222594649587079449932163072307134863642738406458442125381061586839305757495659688867779054188261668941386587156701432856115111230360722050914924064228821342290601214168222095949821542893507200280391310888643187981843119999616693679276303228231164300104733985176303669798132898575882280141720651169960035583684153987834558112617348653602481098455233241818902760661230433601743788437345804615996509730372422714807460841406360057700976312026688587657756818815902039376983320278913727965116564332511679414325243749828524568561498715572647036333777899079423090031804912456760173745559646841821460308654640084822484755988785807211522702126122098181733150185480015730317328200232294632025724508561822870047206285180564984145769078316410822943882103804631621026088902346638253701255701227913294925319880775510962880932549750997386176384585098940639097083539475206693563426055595067438859356325528127814662635395054000203892279728981730601515674014477267441905449996636410339453058506402491412907543394388624643557578549667989021951418847493405148217973256519728817260572877945801994883836465800831930565668578091320242806958554811105568595180258262198936470459704572128744715754088870347226955712358581687516194989057565995526569914057677797017948253986827731607550075799191695900271377938063798154081333105399860659080520914310864371546871709013476672040144750809363084745929728879134461285576174225900605869575858944497767124161402379742504486910699532191319048078944512704894089571251394119377540620009537491111879001795417986091227309498078640098489817838104515739584790315591859364283622055909798026393913168103708942078065056089030682962980558243668617960225886620535441657869882166300988102052760786762003238548613294114422178462870857812102294551713718578333103213789363683611698687426494346987998471180596304501929480709911725679871113818781787013296246888505652300584608748969868283746173285088564552100901093968137366286313273989206837395459357125225245755116625349038657679879581599123813021622163081696630540531784780794147967842463212917403537299063696224282307832784233809001072352450744739251675080661214559717797469180782406874733254576169364085396889903616185796842763925572693362083875242104160941075583919156064427481593232082230121584263268773519514670375775508216941385004320196342795445102472803179011608230901315178704936848778817586704856996074896267566002795310997563359774250895482016687223700646904314837425750903346762799594304478635187993472264040849383849283169345149681165215938189819013520302089397451507880568117712757249949698884097070339093552335641527120111933677853816374800121151841862528271651152967100001176898081610009907696680459208864584457462737221009639834649457139205417792220325679569396055956583604152138457742249643909475311107144711901836783945882757105044878174437532687257096913629070013311093457509077905218105395604501295171699161124086740634410245031062993445888497645264056794214557411239623918438641853647961300082632106807107732551006017590460673990560154917787804059603989676158393179021369699584859780812655141965122222952463295968992531244543852206751419682181706638919582480096843190787365752645213172176142829768497798138389844616023586751883848458194711969544803090154874100532048183910862758716984930537776011210662019816372691547742212707679379788838472097406016772501348581622060660567744156870931291694121540381034151518663493970077027295643626269693850713523010597011426674535503033043005140265258598345397884900430601100001236114119738716147758829109101936695082915950614096770723882084005514619403259162760381755271415268135849419192609323449905293139873183845109587100826217206542567988133251036557730896677134262231859737828125467208621822022417471241081409589289473578133263129045329686559847534731284033935081295233109919089457250522933546487141554691358712155437110295695834252787103735813304605930231246130119869331058592892054051671840098709873622846180705586335591280736407377429563841473518997775795077386660181534590783254496774875252461269056410797201828938099836338311329032900592884276202064815246690253013392585357623067243394615820050789478300804874879846932793294969740683943613607317905408595926808203254084398563176450358234156567283157426945582912426377901433706239571140266786543840908018476692769926880453495437330660878451829357974342229473588116727516789360225732213766442099000734192588685687558606436306113932662546617904100714234246919475265854966237995115758039732428359860404140667299207938800781993673815969355234959466949832635291022608795115467000204988406179152396820516005793467842109041394549589009747573878796814411433587302182403238609041023998723561958433132422035807739617979428419113818393209595338746382229898819116996161943750211912316685878524495298403855621502030748377715239751291124242687310873652249804224353368196697342235417683549585143836560578795064702484488084319818916852270487010087773603425298846344103834436091877812238757569607789845765275699383779964087478677656427269365770140843860995048801454869421848167130844025925881289342861961541691552052817857767158297543001637901360096338900606202952331010279854420630465617633690155196543566882283181368997881102456870614734617361144544806381339977543096358275277623644080720278642594127114576621259762304013774486835483008719505088073722466992384733265872740898179405501494318362817321609647414633658910565102404797119426981402470193136428574431216526301356279465676784731038383262225966678215211200457637122715546208851916121246664184456367500049794533831618108700125732061693401135870339746522900060630710395368059506965050068145493315664430932114929826474695629549311605920423308751382572705942616482526574550712599223327280141320591988313109027656453030574796914617779260903875674515600978809458443447422978671776547371675751602944558374216731740046274361334136879972090418776121679553081378597307748650372018845872636973145158489756700364516273961079863495134887345795160202810155302029131547127161936198519287893532917190503083322787130975214165630368237120539935306949600021508771992055738210036969967140055913649380323358412893233415647664835114195632695974179467513008126720899185737014701044778349496684770821654314975765052050389406323510873754589692615037348630937161439850015757497844248348424101960225258818177849651676813766860757713557256360330922747219813442332804528423258100498007138155851488970752898128782917455689320627808809299203620170392336787478569117490340262967285914381540187481887792522858443825739314833630330279078566743445944923693335032536373008642435298937557492981118991957908354622181143038165880045655242963282899815604304965800791006407196365623172053970413121625988754403835823945533144482731038709167628358091454647856773455423221877902484413485254762557350483817837807654141254159386494727397288817197056401350828926996301599502045334783829844336865253776634844879619770856175866618161500200537369326796024326619959725653112484711942523006422517170378268651487061789525081482556765042160401866444657402922467750220470837653144937377459266046178493385052335702260928984451698783092370116452687881786176274248562968887675589398669463631075723033899482520938140390310532822266210318932731585669637912664718566465173782973530275636058738614455628966143771044003883615264519115364435232286998219964498349845184663616553043844807309458926396994517334015999209349489666953800697998845630391442049607316501871709402456309047367874070838466735616858073352263600752195998692089010071274205496705415373465586027414412258398743977443419158980339422482347536039294918452371534358693341662651927134470887743765106970980022828933622410420261894741825087873436299173196402721303590439111574755721384423769101925506145806861735593134665713284296707074652541680456038616522237184039507442520616476046212023027777566644407383752626823589714004086742700960348869510634146881163803095162510024626627844286816441635881086101926680272139903343998153418856052216026614675059297603157998866752734983569722382603317465622420639727794954612494991750196262753958268221027399961145008225329251325620173891401203064275812438518771491163329106269175278026652776795823817918048936160638168039272703944130160294678433675121741517746856483509981868727892188212519342605583084263196861898736439887820611748882564220214178893697912868679508657937246699987747531578592983001570354443859988673104974186646342750761422305263700323088616475749364268694149927537269487544746760585924658857305990626241740696814884396754511924644988584308265023427758119875741323145519728958123835032234872155041393068390490055246516854598180456787930088349017820067326425968350557625610285715494955488762906494606198058838366793706528324820729386066638065861566529796102571735507271418721278253040257536344729679465037885824346687561017885564774243859957308043449649115461977504475879179023926003021579373811387656237025963476397330879353906087321710022555496551831035658439034700720023467935266401910155994404395415996050303462934061716623541883930162783663601480375661012481596571789167397262659559844650963425289366463415490058117271734744074676541812349738001415944327840760058403821561766932061996749631399317202747266363654968892692934648115342094794654800601954554723342825373948241615517095865569588878640413594321791819159782472551327606650118914273527042967572001216412362599214684478297967630693390244270771013519888749794414369929507546890154442238346061998152151212878897064380093582607049780801019176905683883055271576440272836066471780606586776773210871136756641245170229871754359994490613081911973525034733113934462366949908865305013676742419466262568622304907848560832716228894511602683411939971846537843960698515220126415535823295626104502390159450064894452450052830911473271390000879217240424890238905003617881734417925991569659106128609315109141110934980944823667420985350783877291299499134725638207806443896129172807387867782274656568858571342122742142122348934507357977821000394257324973531528110062107258066836356213993750007665954472015045792531626178778888753347776673973755754331096991043863367571625775989182216652661233514193303371001006714774877370072707650812975465973572485772528028328249200710462648038440906968350688149535045942044414436783003029011466678793069811230645906729860303866441493732761152833392824456321962800032328109117423223799722253516422245841408878623915302368432087694946556535082047193917675519473576311481492152593367184022469799508408276366338147113855616760764011225265722659625235915558303844150444086413986572888757575713030315974064512182975499854801615093340841581599850117263704172153474689466551020944067266418906390127769033265898439400226193563074009144832213139151464326097457475858168021749608997885222987407344022517464559452894211394483640381697506250894885436685722047632943795866392701372913291435064176402720982673145328457674386642940982934344689111849994647900149877168813720618222505549911437254436344406195844089044217545421614034176921121729731954411684445040027096034110170256416857934524483828161018817472205440264544954830607855591437401037125446516607473771714204307592227122257450060678437207931242187558994421151570075067335389395252344153387314746439268165413060025788539169326957359832140513526594935778674457652702266501958339117510061242033014206789287936942342619097746251433972754647457189063305299397716275388710310373815592310997953916395192065553925906525679293706586215684481602224100312720054140828841751634623991922927274592905679584198435364283097616931057241711393126560998619649497443998738104997453159697124849911159043959573468791399773891209684150198834760020253270927596024276858311361875664224309611256149516980673430419571271840028682374843329415296134634813920511368169464965547288762695687215796255868908122926739256379165929741868348070780541338102614812650238465882071325269888259775166267068564505152902305340719612458341567041376394055172627307374110446816187003305414622269601877770918661478947592900515725162813933725302778304290849996147483375129156780891774927525016843339250991692311553231572446669104376079528980099838795890469354874585252772693309714192762418033800421154269558207411521225761098191520935792136433821085531952605879976658148022427619328505871482145291788623317114650747755478319841419730756670049020027845783204442183107370413797038496087249822009188808515480870112755446933913589148011648916835441068418427028585719701426077825199339976980710648632245740660747604849696201311391865170298751973353835917610973608767859431587983584381225536240901343659073158490012190352159683686475548999954393715685907350544783106512155106766379326294325928778276570081816845737689103618792752573360759220336634783841794196502710077358280120231875425353380688025226890709113889225829807999439248510747502136927599330259144937059967624564749931115067699226473308727207677596587207202331106427240730578579792254876086586716641424074033961955668432345642299328312018931022850854728740029683908225564501764416206091795740690157199071966525300451613911971140367276255165222806654974224508977637302650900931127752461996242801338103774800074192638335809316781198472452239199896321595819447566195208228343799218080488000423216814174428480326162529869236333963721981626241554315669855505937672224204710856426688666742787060843203265356237729002726199023176025951359045928814874328706769815934663674262691101625764743912966038531881311558266808370591751752503782481434080125909837183936844204580128484617954164586390741661172289681985200987069892557751488005725928301714267092467441623950325852660665869121761951555276183454087976346772480067264448515127745122738536381946656458823198649418413039264491101123976833155302718270538821214778349195044088341046750935725428646015158511791140969592492114068961446759384289464865603621487182486028179071637163282946949683916696467621124443957987952831907970208167386261119283363595438285859415851215562454775302254853655167661570229846986882954914463745808055430809069938122496959471123604762459915150468904838509551288095034286204470477928960430194907920423543597580990028301628777859467096790909822910629473330579215178511079956844305313429343529136872176242759882472734979946048702553421473585298529766053472043058768669961373039243766383306172885027283925657655466401677351481569946963598376706974389800616991466436944896088609282663690726984251198300340266332842493291419444528430314575360007215163381734819429717891052253613694704058006004912193035525777378337924387370044940774501886330439477660137863888473122954166033758585699523866902631850794332306005827634066755520263972437843860001532565422241926601415202750818962614745629665537323684082632826030922280351883712953171830498315009641368838635587070672193393711574655879125149300369631565047004990450191570194259734478349372674663150159152904304235968174765555412412551339976609181951245274677484186625410744371267279802889280266456620015914483373670751011624296011066810649955907167916104321455207507301314509391749681354336125264995327805987141279347406349938448362471673453891739971740750727564067588628974019623650118982201470400456858019830139088627018649268846159831318445078333517367302755417182991680870489066671739431489154841015164756572353241440256575257646255800174672749067000011313807379978837231048108403545481872810332096934005064582396308736127796565438420221485069996063035273276207834184760495970033947409140205186651617422470761202293298771822164621250267364303500237819181286784556726472957274938467155766196204796532876088145313900005338673316368423411263885891404858170323105508037170385177046463261654297292832476905786006080214588817086229792243154407138753296918301361470341756541025440373710697142859535500157275202343462595871867622585476385601951744603078814649071815303103019951564156274879313850133124294712745157575673845580252333239435383924971902459592923751013224143203266452946404648141040044204512553325069360113499284333889578531957806234220660212495540806162251244833754625706355761510160638926863465384530207113030513704235841564615547758219497355111942141370426074177926167369871016939819715686963156095406772323268739345507146748066750232505359256132924026913275946941079396301446594730337030481443074312450430791501890019428372865365141011969195023044892293001987288419512190746364337072977662203732414953075538136197231889280149187682142735839112788267555505183571971459728058387832898901892360873126484286083702175038451838818714854694666840135536835807212698957004200798986921797953123072305124142743771359056414945468935710945302916475319189174631669060075350220542551579163987821937356781987497707684163085345108355396858331069681497884462220326879277601327765561693781223902437108963458015624082935663939359258024471773743499016746938925083426349179971621488149376781652774942997236375105866131091344782839187290407764263048796985275335585170835583463734600806810698051107625438102645925314053561907629244815333034237572401276707477768848671169454759516511783560717212581369762956754687173487319275285710811768823368176466522561434015601514420431375488627016396485641068963264872608892088602963350326297188271227635368557073812085681894812640880604285090050488325070140145182914805691399107428015745169211601929279441991484757788546676963805070778718572296824588083705907469877591465566582331266550589284340040539120317535087921032503185916369569487377006002881569710872134961847261806798140689927028009396678255396011358965845347447710131901271733863995103888025484032530154039664186932663941834820920436834960060262529154922232204147194971084715028985666496882993013927032502668460321562230272212151349702783880872276032183692826644728656913737570421546661963062529984020257940281380265048089121799016263447241560374965019996559191781166939730035359773211059269365277911550308587156325479503605903047260066475220881066632469332863650007439655634700596873028522950439231662109484740872876492178181320039464366772104657279834131722139354694934113542707179418330874961230682016982773481893285236288157910314378981826460249898935148338472208968155366643111722637204121846217738558419584522171283994465922064907833585963354170766437135927762780481932895005089434190716802010836506089645433390054435305235072359873633981821317166712464504782640191809369154180571921445901215931329687857923827657590706024468283467123309294538875976833559287001777400854811459628041925277800866524325684318893161313737217745195787168796507312990523649465276893146575933503395797790343530164415739793395520871146378874161104272596806358233360159772818833599290536654930726985023254092085254472953424756814097884792628412674695142238962193003651866511485391884117258516350141585151746537357402019186701234283925374064818261100904007096576367463321734300536830809687293101319903891131471307421025383814196530013603041431596744324045350511190363926642736112053083970484632837843556622892932954851466346673572395852491841296368877976964142867671078837008873880210377131749188086370775096319981203356800623861398287581267822044648693153611305896077375998151917440974697982511963851090501227281226860456056252441718274995992460048606622173672189581319602202918836010888613563864548566026051645440073396106110256638905035426053157530001146731008916557935558079987835477667388989928251335950370123225026454267114550675328411562387945290813246770370542325385715524531676533311467284922332491127309845189980469425678720383085511029304831053050427727520653335886685598123361728886979818163619622982564441518659061640599502606823572984956541776053832835757834559593687791469983215171608653446977376827956367846319900064026764849648460706328876421030369081167895292805357839931527605436579423427778030198851331529526571616679349459162561499911595506880563882751753742139778651427431525070001044723457302506030115296978281825592109338658281826276913985952666542574412449018525208171866873034006449209808904228572008818375100776644140253321439056299084295965754538789135918052412836927763605371295858467070713513080034259833527271726064781123794712120668146536365318809919914303499092110290864488296158971647266494830014430102359169065260807690719282499628906160191329249685936818101289955538268955499092434043372100116894079538954891294640219717754326169430106377293191472655513756088954554121320263397170827569880159395884791433681689047630160830662002554539966868039215421623047546353745131458300679251824673498736527794058508468103815076964732560941607073390162684682693687556087916637753337844519019246628885157829686372158506567995400048833056043048640447326384238814038978839208239751959656033846915646325644059562076447415104284936758680500640300416844832038279081758200615805871677124713955172302599927917238193853754966699908009397193872849256886315794710656543175594612938125095918549557322135856940268307046242331638916804035701465042382771759229554047460543688505880516090354431802352366711974025601801161078101611265010375824884401862240473632335391493081486581201080598930321587240277821886671743395593228617259941958649203799295050666479845363264418817744732376581011945615779520646900499978180931817915357608200643061790958709823187776008060399618000165475397528438659662224146447004711502710676363561065273793479293315974245710282063838320105104728919899972041313106429489239378078688962805542678461679186825560473081675636146481371633335413448041717259881728049931832035228742366102981233717135396036867839681067630969733648171991201811878041804540752815675576628992317498133259000231649740281987505268685950925323931096496333298877271189452505351991375528618695127010732748230655843926112622156810999013855771972207744942839308295961687974636794567615742199874403336240332902247863466375425674122088507740997421451191094987788297787147327937686853145719503398058210681594353990643992829042294058962037870670065461121231378689144222858261423181928278000827738214640560359778240409968547567900542946565297779006567038185108024920257686204331977893547120092991321418449810154618621480387131861485815723766240023433452145618761158509597399060794688925367753255894367697071251045393498297906933720225452093096729577256287918289407755361154368415475053771016033315836180686459692152291282582180502687501296558058287767093409803296388235262586135395145234593086822586159770361164492723923974152059945610420265824985462542213579051666142627039996125919764959197096843999795289917061636945946617573400994291807622180146798643458815916298249209964180081890144064369761338089697257623877651690505199488788328165991555117808962208160002694660566788502426377878895353010103423353361775670468689085229998770205006020712385936109044271358518305840636998154167268894654888974581240761135567246634904518929133188973673468920394976191413512041681124394481712671291266251439460181871003476200738126873232138714471583126793981950603300943840192554443893840935819842062002824245868136811883519358555069998128962026987966150566183501388289244933776623506558631082036579967258760385415310789831420447270785038190256709723439335279491301837102200828214967267362018208837506689387491347860801365123664538040638066358772425765626206333059591866505721871947649446999357119890333934449481793136667023697007661385706938415796397806165290917035849468397302367581712936521266779588430412055182536123903802998123463064775500946759957169812513896885485330964133984841636745192788061111002457808551464752879780236956293922062301909658735267183207636077073903173181313630698337275663820860642015710195441423438997311712534993359640043951267752232371629814727982542799227213546326761885329558634269287995194481874082715132345533628683475660187560639991323491814235632393050384240157922048007348430281286372387478865218400178117310275282513834639197336607143011331782416539563822629280793664079672502884455618772679594321156647899404424748594982396229335527313174698502095424972687116919256001498230480401320207727986637882355107036734026023029163623948533279719814118107217994203713211922175420195225014534338589925371326794926830569174507015312840791094332123216100498096381621393505664099461839030453123639792352534263123654058272724511337309891093235841989855799601226695108496054006064763774914750636555492454647479594822942474008083431399617055374358766835433637778519598148586063673370879129605942807631095074231109346143218480805193368192969108445553093954321208796006255418659056675669811261647891845387284067092594709847977252923533582095126444934117408397139118652219798208678507756598770324645300348464645951593564603123591865878356476224982537675012445978956434864879515603791912656890208206188949164800369718328185697372162012384239257237557522767686940771132856991022390086082202222992753635950403931098901130232226056027090552906596717816145751431664035951275563872274668979073211556645705691676177777060295540271428677676445929737416462367558321769519876959029194140697564063159289331224137848423897378560730294576880858421345348407467474367807566980227059502635483602620042066293321035889822410296524765757677161117054517918712542278744015337098420627505086664034783853594524285391159213295330829433639291397585526080674234572673236219690369769962971544039354436572820547337028897553277535712849466068995289708722137875746836914153375734730647289808865239585084066997570636840657846392097766489696025510395474266704371102623857739564077801934343536755653111878699505813097898376596184293835915465911716476689716670546469620073121933623680699374665987452818995384084126188937814329734173717188290423467953688862683281581752297564410731328198890579492417296201998919465069534743932522815406576051543283451402505822133955930873593361991505355251931708306694284965617946596378893398739266388324505715344936644715299953659389045432841466970407514507041195170234575461163386198919368833208106334599808691752949338256517964306686814564226805388700014556832293291050242143201701559498476091444851211452428089132231868993131885691463358533266124376055200502645866832005345474156142765556256935723367907313421457738153495511938907971854665462026968461485013876723247033272478148202919512993432965677722962734814725732889546331441016403470893104613836623669444718696625818353085528787109971391304535487890765146779764990467369552967958103456266080389685779016469286013673274855655265608270603849247171785741352193600188532998741136340432686506530987551927112377479927313232694423154095702719043216239281053574297787366457142788752359296170190010182059691736024309391584596575429469400730494921544946332745818459737539899695684338465344697168043302181970752123206805222188918662426646941023601524443563181960420516851926248394366495653982044749513661189897426823653900540709863384763233461287711591397356613134821154913445092066682098875487656942112788025108641983479299351950376467533569226483526914762684378168556371107237499827966151618916172771019938393942908608821097990964158855557317004851087933886274613216533854883036182447973438404241210636514967228400756571238563233749425118905245702727712842689053582076379233521833297289590544349580782534368698423039315988172360408129831248869696866657974353955203982001018896870728986266418721667949928281490592861484402567836528854184422739252358534146163768493292482134596243685134807764939259128375099727997357005606436569707211447526935841984260008026561717957916857889727712631007496597039469280496902028375602299626796134794105950512953495782577339394238371629020782352787186334816982888388909325690151202524134300397825283388400313129838924109492774829480953824664232123021691187268287975613099057359409453148424568012319034249372972594449478052596726980061040088833165401333990213110105837955988036580593274665494449596367385435779507952361276974046143630999605826211492524037774138592945635732181017044007163942890692213531163939256069776873420307631311713470028452598171442344490634659794654747894846780450738220002536508231514602946677317190978796297278044032024782347459407677332344482303918975556417099487340613686808023195418900334018212821650175932739591567712354718707332869061073318086141013288392515990884070612572217724177146717205779926537827235175509010145660075399572287988655805575884883936774608313770868695915234150882006359895465925381160374700957803243082047088712423964563961109611050067474356435745178131032170338400501087932583583231414820091650793050698484110185440537665235440395373055780117068425981708881580881942176889636263946134657655730553455938575117807359662158860249896107905808326582817384128140995655863172616372616704650245987694414506458510525583334184815851012194420513534255083098363775799273006555905655263955995616820757781255387232858972379268823555018830466743977436179464267841733922789373120406718378374910869593713874706462090571035066509073249066914819119094655789364265021056294037258116617082781777963219410360066196340704630653148640073745053220852338683087524554860970379280725484456388862725505741504549453111046643047417897257895410371433058762769875819950379328574734491880398250051874213113029900876222502581114439625425923284936567599128369076008015862699099324346427512800512097957065126514754875982257901884261502580210584541302664121826013602004539893220055893883552082144099017388920703006315216163986599290336986512926927865628883312771686653147750315991837091313229593425102772593410104810247123200046582112537705289945050571720994785688494976913973722877789608549741232604385692877050827284092607583293115643626981021974695528799285693341798599173328579945072930170991733244994936948430344038962865536273287426262375111758174919150211531283369448269419173856897396688025965810539127754009220070165588332460177615741775456976427251684252649724619112314261867179190613209323374574225933667694313617287901119303901310014077111279326910965707573989201198180993702033395905018793045828806711018906453346089071574745497857314260584521153145269173312285318928056237816153464116912124131306389645680222660517558358476826817526475485352804980928840468573268582685449344053162334940445363732651393943126443298005129146273960033627656002926097477717159489951978348602958884533704739234176650943191021037723409516688673874336797736973684122535502386056743677698396868063611694614768513359610904540467496791852980999640372739868227443786975793140696146138115920393280892539740380656257924891705595493977564255462121243956841697380282306216045420795865525049378290682924057290971833098771275192965930565039749419508096786983929182765202700123057504358084270136555925363967550276042975113201863070472184271876009815545403019323560809231744920665041929497721913810518779885377591623753985110750529131645322044206178288227003153395303578843879585739997648393579133398458775276644802723420378154771728634879597327793341280637534821835302960336607500579188188489953319735105210145022664939400930246841929840316088570833784822726272875942832293243731873067639237367263741197340762847857767937506248166805816105207377695682244270182565759750729310631101368028845588541146742908058321981289292855094032826178339807395887586983363383056429743970296199744787627899262916197871998531008392608111545031080206206433243645590088961368071420645097212160066039757841284662193476441708267696438889532116745176509812907023768303308557925214430182913011268006886629266839165724963948213381606263433027300899018206354938275495320377929316517275599116444208172645098346167923916583718617947358974451291941764916478704704116164833865698339054126595770502729364959075263206087974081730061581257071314079458837393113751329423928435341026632577134155761755941219296249182216652334948272157671799212396561472381523678879105214823841309051634708999140005158343844901001637035722558752133151877602964816745547900966547693202247696826088383226310492436018941215729685522081718075773229577958836919047599501720049630229040812272813896340771645850102241678068947643527066150923771655382247527182412233918174611515473680772917431941048953663112604287880696374066762076018926923449780768125512516527480097996802763533247241642169292779006030731415272734600554180632866059099227724579292505002035046744128163328280018089422867772748627827538943587355614575845951999243143928424282462462532139559458061919328881726754116216115686200341335204919351945866939305913761848603819666308332523564479475564097312490799641055235460191102943709319425861310134209030614997431083349538089228986520753131411394843206491740579693258975580047099484335997177988576346546066436124651835918519933444941660619367074879535352316987936115110814772511353117871507311204240081641811305543690248014883321146264456431285066239494444906297945319751824764153095137853417081409318562424444013814420132489495270251974356942814855289187267420124469735251880385100892696902295079804270816674836516933403581880170218488108589170041855846708940345177801138862344499703866273214721726953735213644161164036690063476092665152400332828629210172376522331532530543377097432821439655083489500744842604865652409210897911927817878187552224373451389294285805891164356529242452230576184524278888613767574729027033422059630193940474914430309115199819886786579239156162079850722867807602788758871338254035596815320767279672446877316422833442438158224082551760806603770352612819100930677622853321460176388316759102729230773425479188107701873708310037545850729187091556471288064429759598063741545105882219473436411501213039755019379388805618971017595478144382087154973336299469167208961170752631840027301487423660671470512325721947694018011855901793608896758763367041520830323583712168649435722540753180744070282689195008510097290907345416243187566398500678906783243176798734210223102012048658595636431253034929061630440984060941872094711380476107715485886391191008670234209507802770832964746774108598454127599531230759579192573058102937685098036135561165826759163530869772755784676825463381855222641273011799427588673851766560668334512826585729267252375391869171239102868621978482254644679349989179965751275873608156280068532474026834918184125637367217273015657707071204950510042214505952658494689528221915035555769275276403323631520842372925695227102199328239357158740275505693078561517461900905774257799686222711682981739042179669058891709267244196618420594685613132866013897425707348193535847393084913515472170679811078466586313625612256957137253425937738206154627601525975421199556730905169580623512936136020052175545031730177862760607303959843069201143368869842411359352695918923082987856590575844683371037256740744548006894575626865354408237587457920276308142828238692456119016481002593540146104930493382181606781982723328238053988689627352624708937540161819467451095935714376857885254893889856598427058815141058125227722528593257899430563858893006330256462800996653327867398509605727122277530697828383800173063069877647846420198161424358114779172852604150359186798897568669573431815874247299923139531313180191873186861095794598860995062142755141595505638994085580209382481775967913143114850821716783112054958364943171573784684839390101099357720414964822252758030981105395503038826244692892017436951762764897457436092201934976468219056647896664434546382929753665022945129375818169861380250805108396793453650834249810085799133403341889107066977150064887436494865038977585939140957398174681033338114912253732390155367792736855098422133182242562208261924328601737987365919988370283662897492174261615916583286315392456284969399934578746146911951695871864499480515219124825855345435227705886859734253722487639400608926683399542622314253115966988398351344242180108551941559244362202154577224785901926596601413837397701651082801761365179380171217531594297054747774089812421041243633621457650872489228727610882936874259110262790347468218632395234313537557710538549525716182668216559367662417387705692313301459655257473038258398698326894111554293343812392951605107632528742328545689036935825633796709987094105784098621965708803329811227591092271813629655184240611831041185678646860372670360668921969974495505432222804893596004758315952261959892027147843495893620839542006334262948108138968576463588828427316192818507798496770525422286191432030188665670795110836224376304169116773671120225742470759700204338556921174911011673797812196229918068418211397126325056645865333839865063679962211966421992750349409889875856385405305136989440291264005395551111592303669648255486152235123968737430136014188026381937163804322418733343337068997200318116370005698530202370336484127518952307676407762472125001192271700441377126093919965046991386850665243795976955946059500668209442228003749881884872004103355702588049268454278968090270082498968955905249985031978931166533378079057652875459008971924394110814054052927532868731654239760475813800960396953226289120266468398343181074988681079985273437030438486577340371750202308162414605288395570631924033362747410711098843427694125121797087012987707621263759163022401275113444849658396807024304202846626300025928118087390275018209332805417789543196478029553028897020126980270926912479781533724362540729505611875920225132686072207289417341740980769341720819109354018341008559037804056630420564737826395135370853306952138122375976123550203267878270377500525478317876139950876742889117461439291263133757651978848913238295154465096643886948448719400539544983814493753797639257107580462542568212969271200629110092049610952346069254357446944037192992385807680747724191084240962129839234574040558190299771177356220287122141529122457043989868223756793838609903764064388730382483132394359456377975535528742247360186432242993474137855447581245954532298570211198051311674276209980712164390640996060427037272043997975911895999527908357123630345731823325125372822184633969921077909941470907695381350643879977465779625687464699502042643647374875222371208494577475030530560104812511045644346252567886656598210921611693172997006383913286361902902219395191529234537550139374140542876476948375484293996768123741855682317054812095948792024290964689895541687215800344319500207769287477682013394247315531728850809698958820948808128447177308856809595559040385852962485086981190434097930869994514887874498634081271765764464392217621493509058008729364808187022019206594038231790303965552582107560595489059686243836349263297626419860530580633425036770902250134922249967424264122299694406589279061544176061987015898886971043104302696294432882098963893363895514217520780481014731286561252705685035785186354227074587479069924276070191558479981464715826906373979384471829298890911858943184814946053649906537253129875248409103362702336479241215847951230382246072167264240985619131491375470008403882176346472000683405350213425670633030647634919377445475859706595720638896504653906176336724020622488838295228102544641841433841574822361647582884654708924277196382604037521691836371916557722462301380617459469266358047694793280128307878702425960229014730251141107237162674991437489698769890233739679450523154012417578279018982204888998474917621386960297962773802970026437932718572385075647843550375392064205906720440718267162736303222041431292312030682317007063104592879281232256391340330047670910401253353463929485386625188242736700364738683900264291381019476183693419098264195621760113471411001934643324206925517561274888886431979853018127712239299234371816366066435536143133707352059215200612901844218440457078626813842299532338593895221937612618822258154377594324965748038236638052993935276653993213687638049880387742967242144617101189313236379873242272928502147095649449978768729851791010073234938234988179575764396341659335846143199858198219214282165868815590246392770146760025111057720090802025616730175756125996586563654667642563914057759259529123994059130850008875546048138682286908889315678510982641841037907359494895511888807499954237532256036829800226263491782759900597327912142099591462700025388684420620796846818567547808370146603489256139710544935873797355831010394590054471982938275709868734668077320452869210770482046492655957725709425801913181190709717782746903905092507260008905664069385300761750042211358899567682656879305147943603749681290087602967509196752822010975744138143817229848133782742995470497053962079057663246301033881891587965821615193409726658524750179950832112189154907195533099278355319434597008962021180183079665660594802997054435268701407053141619243957319526268118885335555750580650825591141287086389946626897900933439346473285183029162280253272928010272197848420369398011934890668866887463643849742040956102133257516244517709192576807104963620082242455982027683248322781035737317022200082206905912937954123536719914653693866467509046029827299873155923549493038463321217027290001865168723103248668008576331592863292298277888249082519411311009202076698672414910519613948535607131092541976646734628488234914944003691242619225240585736617962566077029240119671199527844219503781102745865300682007175863574409343424069927033894159766686094098869823309048486884517578011622211255690321652208205888397849504473757661237201737136712365605603853318834857560167397295170866465039356669798263078249896603794180705211292134606573068512630322226244764525333510826329731873109963861849796188169492835407303821958999215390726042952134330814663918171058455030408820607659523535036457477898792408780605579144876614113255290937776945267772820460045901235726789092091972659493124281552062581499303702281111668920411090421302309131186548628226478690361629081124486743849887912155248022939650012481617874307940597882171958101310526315350918632830796493743541487589005453514563021762845213814787122682106893803911166590864444217939526566192285469399085881842087848078179103022737949668957606290298023065468416750471619549768215319029054942226598243200562090618984943351496210667890917267946941077216330104707422229515340381326689751846875581752137911235682285668244614363523879470564015637844533642881735334118457755330265203591950435419780904235390585949076204401879664119950064411435299928346601009608021745811860732959254275136030221510723494501583450954369460756062213036237257129132580781128505474143494162697587981843257732151978526101234461164355077075622506302797991493433963082915650235031414460209566779015521006880772169588417877012793587271991698167039403696524499681699398900378035969238001407874555199685109707490017203802651430668522068921529027319277603092550300275303983620608464564066379534166698013037160270760572132901191293148103702411825276338022761805228241510244902049633777695761273103819130870235121538661558907015999581919123472151047386295534875598645994950298471474336942389046847382128636394195969409900621052563984657171961831396948114083456398388992344371996409815804121559792395182159197172551350666981840735985663891998215535062060210566345120018931649791491867516001756089650377689749875889455843690885478304761552236004479373771049961402925051280978856255464406424194970032569460328334464316335949919655424972794389647533366891588298911514668268904060072611262321173068832215208220872434766566031940122304149632726508221402297560458752484567780349594841596601910085145813282472771402978325386855078124903695099408530272966040677247250968547728858642617947353572385218029946518010422514535515489993113486009671891369428977216352618261290498565374389919976433223286390455633881042584796746793635893629921030077054369419924306843897636453297551952501604832816640980549913351549477133004449652650463325688734206712093034095792650590134846730174938394178974486696154564715479468539655381551164888219199236542292761413095698884028909007698985572060843958080330529322219762173167716376230889500779460651268180243980254117624601829491056830796036024941204208248018934472541666794218695018558131752731995110395513366691805068801937016708733833526778768495130019605629078445093729130919059401652632123081724182344577784217389381584040939075366375820249490060499535981675425482290630531848218058644440884043403523407188498334736168193107434864455585823682654892674116146548935373340524639335684897756088032208602604059853859441526918719764140494969663180058375779630196357080753589955053830300287234479469741229075768338996443989766219503542722842779214331942311851343852954930368566588435783234040198079333000373409256950003880038478103322822419850690969102892510572690700942122701266022012612573898691577820167356098842808607307210968058098974093573994134817809947069845140033391562732190706377797811568982011814287985773455986067965355950099743221091022602811239585077623776113645919620436321801590119911543317917871734716406022767119966670482699514321817190672348704138148236366402740382167116573559724084045428684218784448279403975541095856316618503414258245103833152857839300530997725158330480231899922881517215657474226089603464493690721829192256434117243047749425777537772636398012896920182668257877445192779808329462473216388457931340483333337020800892551435590483947610391518835077366800970823222475844526548606423530718510131268200102871952461615789376922387582135450640188286158329547540451149629430980908305811466208067416404281011742555576176831517300157398870047716205501504570230588046457046837142318316182724495752635472684754285439280830752451378356217647473052655044411278603978759507132709700726772213283423777635479432366708730154719349375891391396641237754268837086440520570859615028061051752585048373219502698008308669646231192004290568185686231660092424091784611890085933828678530001917267521849458964073791376012384774191446793577544331592836001388445728123470221847385120015301547933718920398989443673180853141654016155335073696003057553891183383449186259063741921279122131860688769944808380131528447741409762521837052544570939025120602544220050559717535444531684004275557970325287132682020294725575625179510350787819070440586933115485427582635606991121671229909619666435155481307134004993927644182997123321526813388958314560735553818343545965980504017768102988636578039489630848431132267750063441380592897525933033425058979600051127200746040557898539909755161318123778588646189588363033587697296966511050264207935606141060046972401457327156062902219219664805536394459840492560312862910393551231874187479428751559180781713326170482840655778067165558312601217329044003293334091946740090261858734984376175348180798354317074418573658757437348026729641057381046154185743055653582264093566556631456968317319410343826852235029137502838376666253731550784767545301243743155524067489240984085570806911695478861924658046508675105605673020388754751522997040766411662834198585759456846994507648142497894486615638481726285531870567556519966359674061397790281470508040129537207606643522000690084084098522123402350241578740585810215583985374406492118809227369029172238486264204397622877834969325404894306025947926808731839193124442371219205006073784306813847832184601860061794693547969039263299941122403930164979193580515814358883643667355867045383659902964473090662809243346210368107030244741897520047349270023544102059359060131541868671517465700663141872184928817500497453044768880453496668584460027440169574121452349470110461946368240903019484451696178143770997274099641193283665883605842734115726154963675438079504058823644523203006388774167633467730333365617431859171675961973185742171347582952246617636220893193156997149055470804224932111092022226447522154064364586772036884458677316307316995167555853571269147417364477350397874149764154573164111860750057770942695216900615968675955667604459055993459240762093428723685019661058301787669938918189196689791831479177008010801868547347181006640255801805623801985803269926073796457766348175915186392295048938661075724963400035617114561973655315826508795834144036801583330283854324396532712196596978652615152535098047556016139443960890867393871999251475594127378167100452842166087250295894871771182999654804876460832144508711613507091659056609972723126121636828628435439414979266038492696479711605356439920527686929416805264291059497561940473884136043305940621951953515586528902183706362542904114384999475171827952052805100238881238456683139948714105790619061473813324614071800076397067207786910650939328496112486858243464145176960466980936619636232138482375074955208871391854231616235013494229487405827460689622894568602617424534050777280919778462707464311063407123380627065106785261394001082872933956531311614692179350676130736377486232138330429218089745322102165245017938839063987257179096158413002285483276564731635264224758597358035667438311459666253490232878600692516769179588681529387578202539371391198365791685642845065336289301780420634243406010286785812617435731799805386277151787623272316844296285877200282214932898454940912907183315074569664839007584946701255071286824825552694199438416496137190704505319358306952181832166947708987589081968109023471935483116112735865406922496870672226472398306658467208844003710515566809388984154284901680581702052013518569822808375097773349760084885255049887704746191589250739780133314096247195609982877715224187899556432281446186341977047459029395661466304460268788974169966325500295646786623679698928108000860711617974771047833178753671729848330508539848319372152314984377936647855008601561441793440887660216717991395271101436485575820330222453047716495141584604214129262591184596652373360164367923023624500504267314179300445398955434972415694061598278455699354072874556790705092251450636610038799752618757730335073136373873298023503192748426127272274740627129920280870334710642432570752900909514311621155031889035201725058141165253546946447772126653620645927230020207769949220633417960446732751043705585890175148021147232458378876432366789769729322390318643646221487857596960872534613900585909929012037311462304102376580415738495109848859130489119494472087676563279942733155130237104939728475937321445095469235508013962969941598004045534954021814379698666091104332031901078757611128184683473315327892713095860466616564765376351717313158297670452959339191351304092654816425170382710943927453529672766492501090067397907776219583551376297326185571911065473916331095448339614218153661486823563797227803392897924901674872966070407454872166001018022455454245371968829350533258031273849748903036892118871174145675982669472727941389113227806823383043910033624605510044722669303152966220887064859936743479241178257216596945036397233627200136795656449160666219858548063515084359673854900950835511167305620146475009151303734012824879249693872199455842787503480021367129745638827738889583740840335156729147985430551329093529382877408534352030343693110253637451051032989343703885703507591234443202038036939078608287526855593014984593367173109683855630812189219268755967072954555278075663251986718418448744694927438195638019447546791822339051583415225952544043324795473078233384550725526240863546320666684393925115437419488733392520708790132891021836374974623028238162209875813260386473856127979327976346440585056812100681835208387542108405818848711823432469602661567845755007383185178225769001510284973708730876108699786267972927001961226642978934006310825322695325657817632305413730632368395039404609223458678320085835315859867613468650457019740476451726700018590693440970551422308441245700900246516284667853355145857056101471936253962851883636392461701486811514703149152644092395039756891429538426434147952374633636243173662137751453099375641861292086568025315328257280956784209132142655226586179707345762208374572081598283627598361384143024617308054096252342839746266918992591090153916041302593953244786281996476069779444965058655379627092152687127855791108757899634329453458440483721075728966298407086556690708545851501733449166001278609862969149034113549349621330527360548389463373229220606710933561881964855087573127368785554017018797480024012570760846926348332746874726755465617238442438606680934683592688497011051181535546219762441348906965371320722828305161919986319095476501651388556305204475824943645756809702196235202511625501316756675584489521353485410248602225871721488112991343418543102110024617811172727681938613529079700645804724838470494348981430515972613891853309283259828753200549912519838168335880013085603602874639356507158896261527833516429809777821100227912031025962677646263217761997318598414137359971318085782959784069854182212809082754773417008179264124822355852880506754082056600972339068799833089775060744687032221029142731123962325868404292916044830801759014276518282814198727734624581407815926888522394411691207884757039370008851900732896467705738543715257121793534538858595964246810480396185465543661066395912505835869204434541383970111085786938761224676800351111159078797486818303540902709122939333823883978395464650222558335829374181224820783689044269727182517538859688986909757949913328819543979663215101464198492894678505456224749173897952310675472069685517304879261760713867151990824151497623508384891658860577689830900829800692426760331174200291383432266481629441243353291691614656011260554892381555115015504114975070635163169063159128587719280341578826728603524028872674982431597986689600366346929003994248296933747472157187539356921675501702346417060993493534194512919317461094800063119782896720043989419944216039898223445245504791889457072266305415443760991020183394647095311040556549390632577713157950053138873855451833321371792282759380574930559976664743188851194548621462172977072791562119666616471842132411299764417790154031580575577464952475051611308668554762098085621106694279079886588627961723785039575010122815058712189455248753368631328524356454158577803643728157810586422798323571503152505491838059555390701023196803706572012304663462227730960325877134839441299051205672362023857993009479505250321122024974742122684121509460840366852938117392397096810767785580427642416365405502899827423226254338021759288923908744461756796803827603168494575743277943970263014075967101848998705556095747549690836698449178631834418589066057944428659049900542837933122156932415482082271911049335336130821592033651170944108386171083321173758132922663759978790342276435145559854532379177231072503974754271426905174721111834217930147251428471531268804585283499502169436542466097540224424421749738960873676670406728259675925303160857368574306587865517474998472107733950147075639502012250552587511283067852457510421982807631766416307059520571820659650307115453201817394142860145192078173438375438264092369613951907837267540047919084304352595018337877089913535425030456700423482896334228599961201471914199069227211798819475626694883868889297718530711190882567122247784075398205278715491167189478662118067003574661325996346189760175178771805811914577248857212245237669281524100608466867922819760495323109905656607528895776154036549063595406461240242094955026174551916327419577782359612980359004068493447230314353938673700177255891031003802184625783024790140813511127526240649487035919090119994882651210661676238293386580718616149431305925296133523030449603875038558313591560644068476909572530316772654911819880818129479110757408365272696459140596000307227933590139132814854637363680134583613385836432240981236383401190203861937155593393808874218252200172186725755112768519933251800099824316740030353594866393538806021247317595227637502602901041434975122503721408406445063059520838842975213765569919701150055466134602016573052970326774030384969878325365905791748585766932324250621311626409049959293321239093806297268097126662221024813655177672679721579188885400006719196005000833048153275081384498147212905816695192836855250455153687209858017672511300848571001000694437032196403230827921245966899206465814999802983584029526472022182480215044991957789004378316401775458444368880591894224066171531499534249462278488430466660513354584653138186628355257994717411792155599734629926365664218487646462142000464392056370862798397536759677518019980447105512360273634506042622834347839125746793534858341735654859537250544464281198089284744384339374957637615558807670869320265160181400983739728110122996175487163389923338955960261139499641847173993123067063715585592483492885051631685282222452797908068768645259939008909954841525992640478367085120003582587755726910233025212676530957047505385173824486549115060564442341021770641051777126594326094050978433802912772635018843547920525222975889821045109776751589324315791814456283439632879970292795587423730193300014771021199734850373993482805892580491463633358330668545671845087454860187208120720375311711823972384511322340776324310340293014438824304376640742346317161825534751781371404850680516673057170531267965113394224281971625478254902910950667867138829896055531627453621505110205658165487586627304718844039523153931157832116134960812530044849964905554060114601625536716648347593593111384032984719748115132460912821139902859008723251618202591421718593783397574479993615969429745464855499626723108012777471050240772388832536916742663512065951149078105314640394325817195218300764917506851583660652647793424208291147219810138806144107407451361920978994544146659459129246581425672354453803939649256067030074247075909317370417523324540533616582033070721580836375804243054452572113439698804578310483304546080448551243479450671629341827294292731222186116717887986505650324186747861549456089494267404026867709296847489849772742389062812153293807830479098743846313607004241991607939607790486920495802481333224390226858781985733875878359282485754822595364084498636579647900729544914746024925692914452360166979548882416533765287239418546976284371505545926447559069083130185673010928211357957693352925530215631777371939576133121447035489416333506277245439868488457078623033508747411598355071565043662824478672973542109118350622718804560963453461305492650406876859590444802464291477325855220757369742435623342840814343432996668006671164347646889136465506240551452000485877516090378817396639845918258512666974171648652216557855219966148315200250979898674763822932607525855823555888509702251196948857807860560037055875216879278203268029214611960171644200648423466660170772779852564722909978476563047316065892103989033086951156194058822572456828302546401524921712448376164493955889958228109662950424162331103138946247929412021860975366991462162593613212503707572979129836274793036832596331951113733761622802186213406709204689363968389799879336950950641996864635597825906777164351524376207924956910637587608696952327268762904421260675702045417180734606680626469875204840631211191302099815486894662015371234356620488806002616753856612891349128445594532921701064666388075926673922463220067954379402344028255943320221362740904853301039265849468517944407655760552031364200928067243758755966434126323664251276718059277753247596333223789785625703097122062508731922103678931865925213784248375300390574227127283747200277817036403840677659417740799858991675759005997831588563907694941637778309787832918099298266489908599286748670514381201006268559680702793711001710419987037928322786655230641725435011516257717850390889370884402061430552088298378199057353604676500777505279892397126917664136088830206717672365408258550445164292213579836923566568631853393375538762520247224782875663203576121733928952690432944882510618562631733611608708856821833214190123602601346245107937909010242464922514869634174011973992775381581957887133991545191301725090908310479560126511768797419127035754548339615191172884565524337990286394760094907586365490447827748377920774416753429787213088875990979436958351396608628897354980047387818528446645827717936306588275498316991408390524180004545713989164275640840154595332082452912904131455590008449018244146529321423259306523397713330439788791310761914391440523608634667748988280708321350395289595831781312558318221288582234755138502790757434644621688484570222422687784332671880452538599947400110890446964668019462069740670150802758964670378309187311044496677176625221932272582091119325372053283625600372424680401354428942357136381088762586933596519446350437840581407228780254278904841258452033979784333045176392146705388429855572730517720611959844940065495611127808730822001284860107102530331092085241436032807859311990642743615352613103935609609229833188188362209820627137100656507673954519929390021587962756005266015981914661999171416323386998974009467033252811869544982198504895102982238912997142864666185352877935388046380850294551678650426669985166896880253318150331661066058099044974459862963178080920056275518389952253696566217578047493050285238966988886844893468165272892721290004944506718001205091766659821789598809932802866862847850636784908141522829031753938031394790097177901082261877238916356583696000748879177969503418565096477582319330622681408636622844484590970751566401020347717271956123770188868901478727665574073600293039156596486584287638517697941623591042827005896177269076108965435354622159347288528143880379558519191245787815827831339723532118811388709985461194969051286563796171226890474625372755587633342838822257220026021411746120483893724755771101778427489736053638867906310479877298578633178511841417684149702577778614267282241466641402739153699591627374879359511561104983752352000879960059302338563271613304028931083909672857161201479577456819131805051258550843522196404568869521841042470946265257831298524925388225274980718551009850614340880405004973879586810680568122605002677533064542452251292280210978708689603540808647079638496130744138371101561150402072291640369675884890290580043337794093671702825188577067135069878698779330921004040103822131061048742424527446858584165380001622799118324603800908563436087360110061022845408476582366508689882406607803447279888131593954948549989651619355873799928351524011390405668780142031269208364846576783463320826842820492235780299305057221249341190598679478921360883964568030650700922219217995124245775445722999947687908291588428731932221794823853336314924972733372563694736478275065955058901964015399763062739751693573748600295629065181626099134762240986190583031939126949660007267747287011562880461537357004183435818225134226706026515176799992675085762160161805296500655743276811576146722582857688890944932910359479244302122633810270807730302318002308461300870653357853942974607516163982338194037402044859699124561901044470938849516120512933679040193255560728646586237428248674177306338044802651256893564448757945237543617068620726897061884614054567086620138030140173103654508310110216655996231195355545442413999546957516381138563546177467110819294633581011562557562199985683903324216870073925193915123811749635675120474011302122583016953552826755423895516272494528414467674482738516514145613773010571034491713889950122519322980514325746780278797579616530055495264528980987594539793493296953810348490519370938529613842248850943970093224260794701798384731631454545227827215788306016904059499493255375474732770854442120790391274242253297323904299064367481042352381226146650126669628728161299765847665551148715889703241939705721431594387826149937861724511571288449905132372976873103489376835129704243589904014087702007279830519955832261465310500081471217346045219063359121526526926414721522495348251067457034053411443744584654815654632064639468360252470442286339976104877567178290728284730883753703527317885608001477220793794017963661411392558793013573809101520732222861603854922193297783438857034895283980264646783847350974106646147647194624216498562176771464737028758320676365668119930374601240144750795533929841588439375991729728418645015555136942440770031726839416854811369593165032831054130360527650505686953383525235596284069333209009573174578572116910170439058539946548849379502744757683268207203170580606602147780349083721729786173802702907212515391154859530510262606528880676571395736276762379736949666152212701972265134680142280578765964403082408834726319278780915474131680912322929015208785240959859161540677053553997109718648095646181962426844748752134323915173963160370258084535740133119433503258936939404518200404231913686743475741805358390049085899464244472175912001812419229899070935174820794422423058702950887182108665685898732700218446842716930053662226787215051078991383321665973538784158852880978564875831176412056623041963162756853710713996955574771950575214756789318560234940590989948178300784026475489281222188151024189527403222089108391720187392533868889989879681833563270322105678207310820559784238756817733400348064986538738812309307191472566298610730112315727493788368190527950705915971436170656849393673213026770841137601468438182320982019025349498915718809998518255639960231805024854103664731139850804927438060087695433227006522477273399208461575943212308041317365957326640510257407220398877148687055204085698810990199690509445355984228964560014812254663906959751119572696359742940771408414815639617424949974628068246839278034864167041791095192257713357533310547661643626070425157652761772514883385071091812520276005422862796364914684977049629230967672972880287620618652152039687357668958757920779667858848914111642728977148736323289278250705769142688275337687478579259475671138236633499721497966240735067162787194718524565009162006646295247554303032284216639597619406050638504738284150741414412568540605186372858005482623636823347495892062614557438736568375456658476820119442853844393554012149997782377174761076914701844112366032741511256836848341066436945232054237330944797170568951226106245288313707925494782504040498062890574095248395860037416176498159245037359509799940524136380755718811996679014976018143949988397395294076339919321827653358235388724947688766875564479188376613698477108785611348142444311898060059298916761948345712596968341074391196795756973894731392233649958837423768019016985243231092655570853762904503487325493941068006583014206775300989750741532351899809307489240371263790766685950414283501943597723283937626265310481659883573197354947117694337218866263825146166149593641957110511791590040160661227291639928314322262778078447823422557836630633551115519452850697261607252613447023846855009036927865544085668086364958742393732354250266285967599311629084764286635154933615453639922142049258004940059292545402147941606555985341241328550694774840207689028008245349993761417142274917026039278765157450892390114577907992015449356671794074418118260568349652927007444032232833242684575091893371819399444840028547502376257114160645465796671688353980610505464969929031642041118661559564970924220722945061253769098574361994383283590167377942107026198526858108787258473313315305632589941501628959814267509602270404181678324656508128295245072414149713507895745900584273861044181125486356304799067605866725916304345144131105097308969700117658882180918186421594147141761173566762391929889628378389440224570468214640993599338861026205885686919336194052112599610234684035077311568777292639706192394762807897171219352286132356428424455577582755925607611720045489654603570292743365324282755931087430533452480650208430909828154935126123747693909236514930767449120654607577651194350958223406010284947658983829213802700513667222003221006875857702392263260589751029913392574117714669886272593978663971027906429309539810289243083738540265984146930097765326278778265047422258002807685375946082978327406641528052003362831560198226180233879084821004845021387163592016137677650356688357199632389881473850828023750319387224555578742361917510728850903841333428033233460729243286843600789912262102548431789502459551305671119570857198703716190006413254793465681294454153617155069224960345159590901014371150583343220811423981334984386060032804324126633586889879300146345198564053899532966742603015482619200551745152481804688516302147874490667687153770627092279328530665447743069665264013579497424647825727065011992452415779261770699711897074088976606497123361668842681813876840493660164938474462102364728883108605517723661014656786829206988234239516053701898376403508077897142746126436050950896715337834367425209939524356938464322587998417786768744981897328265578731014786155434685253457282890855196220648879667242241566689448247080942008261112739021428429761041873173053509907044561073360526190694363479523481975560667187461913867669864733032415364012133646037552784520278859997138770248803847832727366597953473900095907752255371411007831057003896922852558285514804367325795660972527420090955373081084130036744548315376135459064489458769969108692995687589728820189606837882223016898073124391548979129816119054786492831639447044302037177091041433603802315478751559380392746919108724503375569749658245468739228143460334882852722094681040989171623426776964122960240266641994473414480848051478453413222663655367942030608028267691514935295069968238703560293104066657129633535073158764012582809429700459534942565798100036293150509917652566035530838695182376809940215703978258947550241636184842361686852817822365256763942964548935518434121923747905643709681971309965865928985928836732586912652652240704643571468639844960484919434280218131698047916305945292472251218088421606733952448781847869284259779594921019319264391160230802544005062324082558440730803616841506850216825344068931146270732059651148785694511903830322674687547485461589090139047322045952570494159659515936782258372312422639344693090734539224631662025566708791646100443203751710152986922259942422465317689540815801364874654033138190639726137048064925945251788427002917102938260015618001340481562080152555616744867130835693163392272474253735616632948710197359743974516097157215020334278264595075927166602687366725160739674764035016073305392842404913302698914149216842325613033882482404705950413158821156426488870651798365512435972674068553284812591435948988723032764224015719119259851902087707391112765680938085059934645186815323743314738540765253169908550097467272073456289710484323051952582051049781961419599351601337388829423396671009748936277938111307414639393951271734493121852445232854612864737352265043045567832934174465236997610690283595353923303719278845463073223264340692132745790583238292927561716960286753792662760274231770578933693496225281142660412570517051785049210148438438833813859095893853161294788085509539617062799650605087448748351999833066608670220428525614553043354843371739703849095553429212286996180324890245140485602221413189344887731852728187960249600373511785349893113115692270459815790333285829810489998568438736071649572398648801839517852620333336018188616046413947818634857629155874657168106020767631644050892152437988817452486726756273123380146347659877275528000864824982659412893847168821190413969707111083471558133716437173989339416891097420407241247089443775890846845630421940370559974932628522898896674352884814777742665594207222435916106351516678985296256048480991871945571691981055836290740849640876267872912292429614119423482764272964508637903691916984755332527343448469212592727614996941961945354935814144528964268277613921657100091329932558806016073608849343457358441582408233169335431147085011349896602110137053575111818645730623634972965804919045451964205058199283481524457259848301139043240394379471893856086808357141175446667773413928710774313455522376594324114127213944573005624898544376097739811061205730869678741610264214995443700257516942417200325797892577707632579265030276731998365589873865949234915327908868691396454650076812269945804502062077600064107168285388230969380348141108354780996214194419967195059912069152458751077177867989505651819290024471337643636643165631762436073432805990463223077861583757652145789264892466969305799786691466792111135303664988819218059855597966470287673652761132981347425818224222082277573734157723653003418595123856880472913271517248592673942071446284321993581713415491647718551379538357914925263988848575702052415250418063823246450331062274553981436409878061760233590958749061331248605637820556169135761941494254983048086405525406167561090415709934854699184966952470575115547873504558531361428293544668294559951174591724530728020959985638290293467245496470150589882481745841056552083817337513356211675571937963721604614870345822227808307106907445829043840425526525185295067324560561600206733921068525151901622997721890523533618531587165896948696462558263982772888350966353981204801414885679651373871651975991380023570337535902398451103391454267697033392298783381747462810429849363159943182117455704775243407124323540283894398429692360520170141030836986545833380809518970895626807169263947993330792187592415721581904829974647160143421011659218542573146185860965523202939526801809820879253050738197223208319069382435047202456061210805462631033817884391566780030770344426899103444990309418999982882103988666149759092033543837073687311077092865919894385067325565773477790702028403480091080546227977448398354256339127178522733962498960356715337420206073855284455690044641550680020871496968668352232056534950148366277219721931114514121833701473489628747970458264968319714510918089729315728890099688305661810021082488369599878617760715590591628119924827616072493191074616210555393573412828355771832094974472521570052644429806445995745489493741114630386281473901749686392340488180639753319174741129993742408467893671548047812471273628509920631842563080626525204427338465887053592854659396047862768476125267147314966640187785551288330758392194832463704745627736442532200045107037845158322670253394601728318620855464581606407855804111668958973759370041660975540202904956636866808667543672321880133657766157957298660367497867803777903409081624767666063715255210932277317662329755922389270174413442925608618825539233177796620697339199272421862404369748787526775907428838017816610712031119364245654807886136115545812839733777258586755673012919747317555818520768597118750194182301003495393232042941032795890194134989996433304790293953904103954109202773838193116500989471770330898933267473468622527480818540813532753182994494026850011804906084325089011333124699236998922925011035739202465174628888305142177604406738010759086232243247332835838978465343546971708686064875068691440042448656608987539213492705952210127042483186674703200296087381974982485288281641580209906890684487997065068852085703815329388021987601320066282503315488470222714715613130138181060958482520147126746901212980047800309008231383126082033720787657733188150860568179040128366982170383973591508511540308812286086679686669269599560922835900462731913532232814960667006266194133950702310730354055053352932779716813186847825378250588342410315102324409495991617365944952287828740444906845114345477662988115249463126537001424910120105978490884049340468585918827311420880469081289970947398589177941604823254279649299922224863653736471108092475927084954367665714777653211371092809994989263824186288057002437116000634195117775017116680018535365480474416319591137784829483218351883115629635260337283764584394611760290449736392867766557762044292997112279605327922691553273161661010064016014680316129910403630798951875725017273263918314800891334606865711108644675857433934670201544539461398978128612901197725095519508814390762054227976830040588701447142731720451014782336730229362115508925741612523027181727894199158922603096709167551778876376336688213677526234316158708561356975356464021235777065499849946016665016107006579996408852317747709508905742458589000921656632221513494541768858669077970516473597400499850145031977167900051698061582303956358886425471477201862795730494620634672166892699222970173837557139414182325357730759058602708208891084059975229377858268393256321000743790571638949462326199544277414649819775594077664838910946298514704433839926439014092392487992023292611182848855205135387214221473724646262601291640268833744131670732869280519179837348136137764683418847939801768196461684917203730594406495025068767804650506579002724922899370419256120096108676058763545831530721920254217853541868635954484603570156518750755715994985075269691950356810597517425821825141259059426105705693840445766604916050223722883330873491150847471488122133485394551041301051646237475251468070497025945739860502658400141566616275897521186283643445696829571496354378512108715801153661957906271809509619087191430934759999093337399475498468047936772517918086967819528258266332939925570819951128405319791508169517836156196993817134141356959774230917599291891835898677794178638024998562085377458133100994557130040430462067855392521957770143653791760169171904743043012041459859742226694549513299155095572728135273698915584178358977808172831786470527912235955999278528688720046459805730599400679600709235613153161693780117468959079244412404243202997482336088685406353290064376046305734549571943270940808187835751831285690592208063825922906811852022039086997019286476562613809868750625782997620650811154152001627228757999050598985845167357088987975227665178264121695298530928109163513459231816283552695930864565473836788781394222810004857819721236335578829501663214064880099486565854579363997483670433942199728012629657754781731510067735780811309594491603079974723861448711421069212137192261320644616809533408687267235389018736297400619427411845447778419930561466929199981111675513546505357994168456086617201396684424281655195904840707313581558661930381064566368982625725842404097878584797551054242443992969686404354310854063168209752694339751627690698514051727991845583272500140023779499291217301696409392389223537416722769114925818090211116507710072043189868564944350123553145243046899989958164082776586310732206568747667201003226419591546859483952042673228331968196155899837679221545462325272031874612559017878478020412038101195197316556218377871388228626088471816198930839068032496112643691287494829482503284509845816014243465727795730433327222734983010544305143146504594799388095375691103731415247312508402592207356527856244010816570658039608513156816540789521657945404934504035169562406493120764761001064975668172513733976191807636355431654554639321491030272037458237967072126139329912073094883756143418772052214939535782963890122598209015405612974077366358036079493697607489096530300703159339658285544327175968544669155509904466149384476342606850108412676290107724655334181915937890976683152395452043683247622895899412093711534041411424650497615851290371406293941939474780568083866299530204434381017600983300437462905514036082498480567790763071527187632580589792379080335613162973941758467035907280019205984501469250029929927537010682168128892664198253927049664975649839548918524171705173749582166785639399829587770988296063576243758206754436249898376885457864003927645591803240095570729949719568974240030864926356280464327693079681551500050241858861692724273933496940980064540040071791398646789895111635279151376772863647294362090647598255387526610963109210574206079486820253450464931107055258403450837455823314684739596020674391235987754810545383234004923596543749784665191484754244715892192726834602720209677952771301288987236604016375128522711270589313530463287733795950904460853719845354213483834548766724022745895023064617474074200660355921025308773277869529178136078774227005968703171538448858884118902087217502328222493280311871113432262800323965248519891907203257102202796088935142811401089082103491995165994085874188876419701956529384932598604238291689222387891835983195838651217206755175550159326665382545954247515772347680946358257041483578922608850554230795748028704053414617705341471368330623523376690585356885171225747460900050914805197506428166045474121845448694922151253940245581995152430656505344587504536886310744016402697250587572301680476092342378591347204789091435790849154515513669909329405337782475842093809296599710543699485250862754781117817695479401461267428978761849356367774915785962995348622572392190669409940055459830384217311241799314965166601058495314588649317338929873031653046133145330769792495378747816011204102921476181084943134503884449260036151494318868354566768630036701863406293156059115732844222377854469144758126200404249992017322457117592953097014663243087631403249916397070080287748876908775734261174891249766412980577451319831867462870694636698306248667114640946930743444424770340422913069694549448000768496140990772797504103058242019261011354724111775568795859293171878265274960800172905495374718772740108519951710327772623413291585030798955600585920144597253826304838206998669659949336754810977519115352798686917579098085909666518417834309208384358012661840652004693216201041401074748129240588644545531083730125425564058896727106883210035779745133003960443111765439776233201782617167217148355354805187874472853393417671842779036957512942174832968608098277166894475655748895787518686046089918715972960618358672075414706991903557307721060095484273848158088156002670958656430132533243918806385674679226879490863377486763156621394124817197615737420700755778083848259838413622273969919196421696292403313871198727822466115884231277777571100127251879568697996725794542977652268290300387008668699575144221378448539439764889687345438681041919184830607791332956471995562646128868989395641440382214616195390676319509880667551841096629674258798161088865202245587762982176904718423000688830414067479934641978946456928231272532763856121955783814544042858252771200253742102508964290762221818571778941053700700143744733958844107496818384324199955402518227268895144447658831035956508704602626876383038163340012131511275444709622947260073932585303825942394144990126299007036723995467895806369206984622350855151502183979089185472849968750772824248507275622948886229066017419009740866496107091374557760742093201550391993347791937039052485045123601845024870822831412267510768768065648313356179935183354110264958760071878849565988710227444335744535365965238745754208870184379209491591645531839949528362504649600454046355726710304201501402423993780147118810730811469049446057216451066927403694447577431318150701370350075709882871843223728588279351504407555454685219675199320920774329154612752665825013038339354291126011975622675848434215428951938603612585131778400516404643422627386522698087783580896947785639206040057327355250348459681093373218238083702620688280500146859469070690571390185839952389973136358500832885448556468641789103033423207612929759490055084557318850417068338632725379289427512527150802660832582506737715427882988416606281768752132877417721339560565787437386745504307415038253076789771252741414700478915247605989411979749262004880851730429404889503949056773422351512818338045348467515519107554827076126730693159976017687590061221444773112736275383968814901618187253170271737009134500322721004314330260625669668800052209121785858560881297918549422434378661845890306333566366151595601078768910361931651254329467486083643082238959678901056285565700427109476660995255230161144834011603083585691569196262367761360544609609652282665048302726312696966552821949251977400416711441253338694674148680920865529991340964577616276268990252134306907736226106269950107983736559095631582964716535868583132889565608008752611677977131289955952712497839227000248352146428645251019134588057475691942402515545934817356902220028703410794492545191225705922288827396871486930968204686431496111824801690650814424729880408081195172329712755517078385204930125987013955459831200913331311632005582611361386825111012542090601400727154256624730471434117554133046167892920949621498745937133186256155039849825471674063845384677521944148971290156713231839592871217591200081644327649286125861328891021939751786583343896110523429742483518412739141224289237753341149476000415171973553853891616200232964672619850958586942111869387361149688178188531202043199990744732016938635918504380526163727415606380123037564029018682362257723846525478504006414021177245114263224752382054590695742445490011203127880123812199476965022985246046172871680048086140792966445665587933816660704191557639075123765573510133875531902829770693366011249837661675977318346052951385629302150478848997068471531112214927369874502116395864809048995508168253025550282013774610527052272114723482271010819796309431549348765696407784217096056661705475806740561848424346120875958166666906418148407106985161317746900896544855023436707738974095058219799116881672972317734636925129735784080494808961472994379224902740315718833145305847150587156180284634175650734398505305975852518988871317778737645837964431101498017959179385060586296466122933126145074493078890012610004045331832639586677138450890315442613975820709790458313388519012914434909268518100411761257142607495409628248474006447868952187090740762088158742120909307635260470837365771678180241199642426350721149063447652478763272494165795260240428685529508239984810310290403452624334412684594880325052464170624761232007423025182564832713874459194459712022656987762556179209878144530051845698419847757536213457120786199327733605491191660283955689440479209221064239777063159476893612922439480255368248991061214044112578352284688245005067959935963707266709210077210458416690640205897521943224208208417313519672267797048344936025607948722387357100858773267216322395979684801929882153245041326929509078018790706356012460415872203274462749873625380558330314671196393576507969239851490522306315499873000690518914176945982579200377144095740556866811799085863339953153044872012368019246648461908721591760797375559404149651571370496830252963934426025831271151409715278881686483400724278568079882185016376041214706391517242497938500632299359354627535882780958979334237139666472200480873816388380275671110685900182476128326422475391558203962203530826789696083790994151380462407739086523162520353494283830902527788940323952410975075905824087837786941680453903490997905925598964775012485585038738998127456892567125133355834719189760116520424844472329787858052837867449072057713309162661133659123241183945739299837924529142477163388755629830661592067973498030312772938643063986775159030339947887781346120194508849565915094201972483342978163008651823323908541356914279977474387879859012983944718919661173269429458155362841555736725640357086876033710390650010220171488344966461132242123049678354924177137632987394894918734122790139667013575932708088104633251763897270639353023408329368046504008484959396209064568479623152710071136839384758032659003748598034385505362727882617415712257509686675454050375422092397282963860039241326186841325564625893618986550980713365253512810839271562983836657268924797290105301776044150005153663326932704296773112139751515161910956981365429011147252655212004403132430648684155394462473580979278423891508450417938659356097586738374507886688304447907707499209991080851963115344493314545722830534660689767964872202298574604584088055384501013009385136218329848207287432374187526039008514379538347181521723253968244905002148059561707699045898035690536377648087579480404770424933408429528702329180229470104101726332044998855095740233624018019801376422818715407568291304333323061876977006517905302402300882806000282092999096078014752763851197815882805743857675102686065394725047071271785993337357903735954142410783133247962294740835587082147699081016624310060128742378969706329480853075840048869787665162089058541019848906816151373798196351156939443511286783653780602360155149393889291460856954625913806411798681402532198290329132527138547872791390662531117416414904906085441316184572409317641168103722583344501261285782923171947035829491423953811584576775052820597381129237727548373370745700700455291786650887472869434922107759193600063647507978855992049458281087555728611647519230597526222063588183442352657430929524099157077266841660872977932299126341846957245627678850930094598520758091798038044554953148524848601981751355361504970705078889781686280949773783893000322660609131440554336856135546578485049612245258655831213580415969796522688461350860277985039784434576095783011334145423944589135982458145337353850035656633951248970946740405934667333822771626101537813028728080159902459891879556986791320055222480706252075449083873756789687082315888729363018471090824253430445720877659191984527477009666005995659542715403756950238787695851033314975014708541727797584945643538713308684951948686217454270004914920344743320184236598611178796710632603570148413400876550110978093325771389324712839821726486697913527169175817182741565943230515704085366313748004457435759171432731180757425896689563099071395766230960495933910575010718064134037527376678463813778791199538258057633005375306869051753724642858392325546093789077824558150024470705508826239446018893838489299228914173670456789325863193702371421421684523653238168046813318951195193111754744444323501495442545174056434174943729258301381599644042795542120491086567708703433696297913854025938844495320909376954413684058655415034952064712976879939285215390845233636198869479474535931733128301017888125981345800383948255903672253548122415950903069848541519230881067398713582313979803654672825981909353603185960188321721904993057480135230162537201864477917326853457683622424029963730721724547961029046239614059068542994194588470501071714806467405531130952114330259759144823183986915608663201391388739704715085832216199225352621986972737291079104110096872480880007614172094175410913543288597149943402259336303436150222093453755431963273763193334152702661462189014652744508507505673022721853287605892064879167414407484078703840883368506170049034567435408879482488378514266537024685064860980275805999044792694183642798995695269846359526100850477976434703146256998829095236820582867294110175466562471404741836194174146081757670131759593945181707454165015867695584561217894800884643856554427997251005788437137387624290618527089873482524255398424408535395080713429734179410163301651158678165516831854530862531754347452926789559334430688439172159402166409908713471567986624836419610398107256738743080531793690433137513157383713184409914245461863007401265209392543061549359103002930599322194025459494876798453185608296710917092581114009475536010844358152000657482053889104078395922636068372412115344150138355249032412194012502473261728081708050958765554934230328383591809882121603644707334037168278344622708660997906025126813109083004325364724698179688841949891867068472749857377984385488218983210745658313836520704294128835377901480242504198786113158964778925572012149286228389932317522475604765552453854924355538485590784737347125204046939441140647239396165153456345718611715800252971390225478634209231106546153252406701156659161058191439583139185398115252763664871252786084577611948702631508475675695066122700377406363830374421305533140447504910096246053551045704057846917225610963300860589232425372947589214419766884507181610479786763781661859394826895164816221097732404962078398445042578925092355225338811738238317342682446238259044785030154824375530657541491708343196990668327634138708992023668984603237567977724949804956080671145477307591898630198984213211872209796207695406198261456398726338047296070715997788771951349447377708352860206093333785303501169230968343550192455732228173558481784176469070156212814848811625274196362747119161448491062176850969823184159693303133459912986656966124021060366247087741162357970360400151634316285340922944017194998196206942133457630071588708904585106662196806092016043174689200097991281395771026810282136866910705091581523943099282153096126797640597024565997258584966830611691876079655086892669681118097115492697004722896039629873594543880068747130157632881248375528844590658398556985559295508485117907842602834794931884204584464089162271797078063531305772498432012971366508611261403098930992041011773278562646363639624218339659731915044953148102517597884022388817634744724419502015229229408947814174671642998520706383301316762791489500699633311636006312886755464296923541799784340161152919442248744724815815575683239242321368103292398912626282335303449654720317890184844728622243762761476558395507225873614929764183456036991178720191077909431490852969077557956400684469293221753446369417514677852201651387603404679398849669542221635328816534790642208703470945254080399233633302196159657638007686993362438725509530609414270369844807307271849557659886232518252839884663918893329759871383435804443167984807756634106275468428890828157254163038378214104449590617955190362170406998649287635913625825603341304592256686765648955787195457830959899113911841060296944444205258420337520055092878387736041140154906064202124063328023196109566215213049250824294101407390426011604844604119721988735903851071592461989830752358921769624905919263247149353767358348306168207818140101545100164997914508385090512546011929062601592121123515106694875160034550968845786163775830952335228928915690710725543957965625007697178813586181462290965209053680326508818333903996401988499821159342183955673825330845362305132960153857115904372411477605781412833337521472757530781606509699342991105153218293495761248936383065868523621669264393334493983101055865428757028284391962698259796842606788112974591149485386910120189230872036994252468066596407188613450687385122533799593939095753298666777444526222343787189180576904027995640680018352441574079848801020907095842074311481709472367551936082646014297392821648995196465659528332215559451974171523762950934664510938220173912738034664593491773388548645928129402491130859159212206098780026511431136032179401528628257467413740156430400126739564321772287937604058824043649145342586035526130999755702525690395512012089696358024905330267534579194071684332358808006087529206762616371380496313891212410739854625717791757446497689677421639635488318418891221879194347081002190873552779467528641048452832155322567334331160060916265211473458064269204477540179907640443243591989414875335742190770612751976532629100292690074709101246287659178175151095772766897585972970546419714149680999560068817716744762090613582260117344502600790591604353807525438240290729367469040015183942045314295429761996251102157311748451939945098382685428306905738777152319110229055574718818766173698828948394763039780633055373493194565844960631974416288690933065766071028800805775824089620090197647852677870681188516533220843437076456636456455552056622644220146527674634855795752909353926277998137479039819199133006496799441446868292226068968029616061869418419288430621814369441798862794816903389134913154359561706302973854455119360687227791701745094126266310795756836384995143086740344495468260332909145093342838428397888214099466756959821775032424238074012831877358669159955131109433637888483794837919460552465842344526778171310757252873716828658673448587280365432748036046123737326289105545684707811390898427153973772747795041236660243821997038337979699812792589970706392674397505001505180409379120069957754615681317688192023930239588143001017224204216157041457594314605810119031464899990000358560135985910251800115901836845820023243565611021889730459988934103474356629467639929495916114812005782773490840091039034561425897561654880477193194205474036258041858221628300982838147450842824597507102370740290797231738776605846117906474337832365850084285869086031171389862540797688596097106691171552084691711788459871783744426347675017076034532774791418946051736321734671780180308549002914918730970709555549849054314169374959896078635103393304377617290888021514798194747521507953289110147477303981256577882913497894911188230246227208347517093317222015697043017075917762258477187153046227958494033880474935597790239664816016795039740876659192141224592257505270745468395436582672694351260642461218317799332390930918888325409106096309129420974661869422745348591433056612013944648442767785304304752988884009774211365277562934043737337385114563897257688750864205632824971298341598319381710082851252860195417295968752966252646975439630357011247781647194346453399731304854932437653092128298488258482084334656884381527632261861944440372683670702926293446650721743380771251654473910271715863580007094962525899322978618061212467222745309651989186914649143727423503543088474358192320470470982168485207485077400636651602848821469244782587674548270755561130236659261162804040043682926692972045334183343734028902682703783037215232801094141851350825401971406585968668759156898667941046388250597492250780045498539555818606186375800428908569148328303758034586716326159750016884773594950752629726650979977400343706563752793988497076393285981201172720426278978764261180092870386023820798491283024030463603135049752202952464631253177637058338775999349398797224231337230892931797202500972353710305449331713399388347943256378206800165609142915565797189863276363560251136149929100590139666347066400982724316938877409688764549113491676768298941881954247808554642175786098346821969841038440229875756059887519223451311649183306931528594756076817992874602394852549849958957308435680953373826364074724366737021138190807171988243503207156014869177606409550963909192545056068503597031790451168849773059253547801488746400698920044304116000101996263132736067034970429199636705787341503617848677259136274076890693998669460472881557449395999021687148622527138693725997067118795014064230647602040327796876077306532522465588212501197630486095779882641891083273661749649804228284593442524525957220706829156807594440481256055437900730378213094682261729218676596728172903928438168761411622783954794193024297277445682111400979531261356125627785092281847953841943000480072954444510479073644147687394942013904193698682898770105002598186309515322079669120365156052135157245983331481027981282869745307861358895315213325782939242998669187308517936485676430707029976982802473564429481659657271949672008964616184247508316575308969656791218248749105834341551836550731933040093595884578453648452156305501223090357349397290806498252652564743515394714408028033624450902715190649928351908120134570111415258810351866080806271971533980735551993718103480525565691207597250903537406671303170568205743409817877349033095264188755720635336290082797268239667908299711599590131343522311757951164519784181433579790994966096631795915723851943691460835459027179525422805252318698577534568200227121289501330492743111754741608105117266553623512320462522638329754863280147262284527132724344789209745836648243673633264864034170908242631884029370692664960752430927464483047220205617658722697893300789869469845257614288948717989139615576171387474301169723503271105978553535400107738337944681496655067373587486608806472277508099279607987174907697322653990363720744538138299451233747817295340566276544845727203855230617933814480213134885433033334133573114704439998884885385181055292787383783731232731201107984334068975325350547843203629776118183292219926742819116437040210908059613800639753098323728636579112754865403178138981156674126548945226143512686856366237146693350938365092122660586026834433022641195726389595532265087352236019593751243207761386545085237994197563697803338874661299924393730091757674585399485710797756259244199850084449266490534029253669002975918924631181851786622205519207262775484269522051532753907292107588466191730975068035098023772175066108245099795229512591670550351051416625170783270131992263438072782111883125371760125972001432941704225592817775199549584299122270235895740306934136936136877809509007606102577586422077842963121519387753079692234253690666002431156792859997447818846427458189613177794982165606773676657780459491321126112030468173369654003417021759137776691720510575950781364125042075060633851693010187551479747875786267407642172126246206103363496399964176096465901730727457529419134874468988279092853434811475711384831530346652797922284039090076477604005326402045760966060748587182137029120380283688307957743804709065207408165771449706236615416051159898816594158665499127289153652844888116557623431644171111303370236209148556836700683038374979628914603745567465893860063892538887904338223116964289440194145406811111827322417648735554712716010381132499029058486592529763237538658491775010372254552791725987169604750768715567607952826994820067675021830637265612300672851944570481879029723590417001192806083964549907044986015448976334731478007937078512915158898633452252703036354325318947200964841207007395264855310314618109204206282561489348141929964060360118649213336674943879643327064788459384640208155835318722928829154614513767139238175471043902092769749357990391389597759642172651877557715023646213300175646229945602083751162856060286321912247816010599107061456846103879132418872245761474374791829953583940184909488090507933157022232203873944130512870314921426397548576009165198569640215398945154627374648365080541771635644991466960230297696899452846677774122747748725677801561166331615106727162338245555711956441570954810273319635069738731033457603097640082394561860870765157060066326168153126262372357482341358788006856183937532279269094681967839503651826921583188901761259691136660515718834061252790583951802175441077249137690814263111210361639932765994039445657520526800707303462409101088970916248484105627791685054054755169183898053339233641713156797094370018165809165098977057004502391918486806406891645400683422562418477665985024959376145162561068093642897438155871993706518954162359259637053623969630821923420817316052674068092004397504478339738292599349073257823580349673937593540194725103279299651877178223032900029122194155662653243030040476756559400987605455764097269731786703256542151838752971789659916267080234891976303604678192687586615833019323115616047292405262373531763853260900313878908355710706372384439544039664262807708960902151838420685316289925751087660680360258729426391936820464986287291859868425516092172517204275929016283958393421003873316801072011335112736687312684437431205620808773868821863348374582240469750439808363190950716588043498552065431838005622727104673811815207550010073848172143862524821379302924537447210099346656525993142650925367257470629343706646877878678396391981642632081034413462837597910368416606654090734861622514349832977872198446145338468199458273100783366569546392442733938625421319171970716692870734295251870075151089003694280965654062773679208026339768159324754382222026976351314758973096930736208833513135707753600883510998748114716781326828590643127105992925842228729043228009440917337136839209177577872001951755642287690325452913249091059868360890379906323498241177450532060860354184341982992398965703867054899801554508128403799712432065653173852572719097849969116303608665912881247815792305014845931657165541194377786104385703896529197066485510199686243055191532177466688901234183550323753619334086669299693368794155607068791800913151797194423076012066492632408111683792285582546345571511582435111927137123368042187070441387417783440969980350302439399234470107832381877195036190340682237400049143190613266430949887448155636290358449651342128710526146455547478705416007919862102062850538187767600178355324284542009803809464286414792198109621680401889296749414820549330894814955793674553045325357441589414308518304873553299269462225439477218230633469660057133178618965089092920209410104450776567873620306643904990305449152845964677565911364269873388664955695071601103251981779392919115413943785371232944281017895384658549081562560970595016431323217097667188275988637804143785825163661754171727202577134918468580636718914727613403559428870520686747050291068602231738310245324351930083840758485497587164589248414095345208950711698700956807817884606031298280529684751516937609542856972694441119366450095294293678702830240288424650076051580682819067291438380496650459737172796446490869968477829278576804483247311980052617469923784835176676420018326058217040468818663290850706916533289616437708108812053813762248544593430030233513050493772068045970438881248377522523114750085402565239797338895322927219583363190844388714300611165196896073228737975779572194435215710474861051658300070379701883909423057835276379475101522945273649621809178147824853602520168659292674562583284727929231533920997316535023312588466953738630330658214386936571425536541743744050082545751056407216022021169544504440992025168143408699979085998265534684728536595184596007753079626987980966521215705801601134219006868326377211066623737586549719955319737598510179613321934955590982159243429777312091468282673912121443141605061380102281667061448915911463401066145488473282316959646018614185754086343409659711791655566445643686619793578606743716603158592379174086110244066746978489672905965156155802413003208216171580721032521822296076587764718629922946085605540355998088151097612465802882391918359870909941664572776587031341346734202661735796849864445442574715435073809572014439302052814112657994121047615474557646436853020825917133754470687771987969541626446951504583101901337161148659809805357399228396943198910480014331357036485990512199414326757038234027378753714281669975384942958167012830840834115604766433729517831640906862925700220213475627894257513600182153084538693841464033365177991050902209971306533820975724888810955958027334823936473602938439375674106336696430494787905165975740047089039015943909463744938312659415058641176582735367302452173471688236174857229527426860152639381481137183299840917727911751037865635091806597758365180558378740482913426151406429623549573761095789497371043809122657394828908385134282327779165133881999898016745792904572948011353162771877793557135890437201783728958651426818281120907258728626617277264849579240911160279326200849092275471152856249007976935530547618422421895838558904760101285307025244728324933155939560422790479103635881853676753090021269495094493091893240086388481705151004678633822203302253952742758581282232624115154789599615887962794426618313785565329113982402018534805702659506432593565500434885116422386017742603237169375093991242102573521833416543997043335618520696189069367870816718317583087185113730812193853827696594716720557698058018095209062610102601641147896972792274735771809115849272859231107271974219640986112518259357324504734955116061401032524479914844310394939048651254009595654310702092904119274695486213331810335794746890532829457994948915819739483864861003880524157143654476314559029883111026056085996075923721322652657024059272114131615505998943961476604613083300625395757414708578626250241995855470321560920655417958792888442629820334189516037098084714275331885408832171495980201523920715760680444448835544499677420550432998430768634612289337475759062733358415432864623830323130560891168177722073103548604551098461438616274270484375858869003399419496507305025129720569047098923938225814096195057889435624479961753526033796842312391415568356980034030868235231439075888926460431391884239244749410151124353120221928180257430643501182698154159092176781512556721008705155271636527888563852624363930582537919095195113642704711635513421032026341825609013516844381432795024587810039106248491487140601767161716388989742648664315214883784761835635446884737305847016903689110878997455284329265085789405506843633575034303273516120063409839545168121046895229284900320534783262287482253120711060586550025158209572379575943886402147206548300976381448710530288230429635097487846483482592277601977818343405734403638446970519943758594952398301963076123077142068355009580099331957662056858898010861701058594167258793598712861749783965101732803759455294278581824477601061396525668218528653182337247697445249424743313466217582621831290092975473733647854332579327235156576534333341840823595879005631092990666317039302081394945344336631429308546591482162949426915013226157069837245906058072443923486940954854483593395259829098269734372538471117057762896000891344950360914514642890330539667079519548444680811051460997534627549084116616166754195746415834248076834939796534111524127846109833472028475819529642682187771229386688012684514784948122649172418219099320601128307437293271879013147417645777490555003937887795589933859103060960479078793306781072643242330324858522052686530117067755021667115120765095122200678613053685865962568307173095745068648928299415574974361662914031331882012151438617026006372271035930716303081561767042928241209151226434742862957074466719328557570252045116049107228819821425302035204393034657527105913585377788864009223789169469725685944806907196525116865471564997109697763288419328320682755333004126058671850839869595826110757873765297795303632407307253732624344047930333111981566172302992368541007315272438813631730135265353609377856887450459473710958165245260136000795941227835825349772921701084447112920002095302026134153033533162539527214155584274844665527151700287619213008850883783061993702596498662804673943405583913644929791622058048908542876081443578843793101902807487894198336069383136997854563582650967789717614281596979677108008320604073968162806106114364998832423234525651046980444552368975180472088906350204751861994857224537293901199200661589487682290561991519646279884789987354562244368986911419319003082099264433707385005742336847551992808160094265007051141195888530116405977824310590534946773851290449117810469979379026650951958798262449060149223394186311318137338630681036011684316489493476708502531601747069785585808964185495982463399317169400828591987966006661210978118410499185038324996114011194377147215307492391570823267382961159671630376496035273285197716520667766628603190065319994386842836365266373948165703383951301967808204608798754407884537498274117776036037036756686078702911939041137139102188895979275762753690536027069984681822535214896047655612709622217919572017057339348802012941568865143514019068137329131761506353593950692622706341578080741945351550371410980073893767852984292121633767508393655840648899744786605580817804253004009296385207275995027255002580754333928725987556217242332381106710945264023588544414301523222244907230067411106064682766343614633684176327930687557299325814592354829926437431875907952875578073306111004679654562751638218368825231498670179362811614896438429267021237888214878297834064374904953702925168839586816719401585091892712164884193571436563787686530953760161627915132193358689575247509331284315619650319752933550322363980863686310402271375088026852514988910788386794011718913703326661271662915297194270857529558427691009046542705149672730823489040866073984422315459380212907099279198353349034459746582846757255721008043305132430434990672227193615682935767621917358271985985599980415440177458243814991285126617265131536239891204263950937736489165583791125006817300116293526685430050977246770595064330935899885766446512053275115057509471466757595505321590405053418334375869076998368644115938251809318450936695521285417071885101453294826992120304186625589853284476146196451785749764757172798013137393716668028567426868816739312771254739757908192534442363962585518629007254288023061957993859091713228009261496307121453771711982696292772295450473955912072903655744062886342583100124473839165678182882529033770670425906314654946711142266813038159609369200012146579415996351929525256819341623379045008003788068996625875001832998224233330463319258141768428778976320249140935778001035750629666490547583934337856345855341296885268164545137691519001294500849607593172442678453651104540862565858055884778238382197996524503758259646528896769813509451057654862241404489752133928688535154333364017076343662432550362295756102365478067109034920002769051686751231409271315661214889412545226292973417602107140438905873444180218755116018024965609463805913182140140332517214424816601052978747534857436210519359670174462512526446853635156717269945122008860698321163682549951725733007817445873077790233109296134430832829610002797581652800797692944364942354343263461269952950960796057765768906222977236076838434392668154438198437225548428132588755455275998837778801160676026749391074787618813411192168300251673685086447237253385562247905926327472203121646229837880448158085327228473513169183418730868702565608127450685925631881324093864286562094593320080096060632383011001054288286800074996829492339618185755044474496972699798541002548437890083011766541018610480654663094434749821508601730361274754070381536517172378365378948314614315299854767737099494465381773541195027591779816070953717576733327405018125425068121171874204410129641863696636840529208117510228523528174458729249590334019412021138855154582157779923722529278093908905533135238220651693421350465027788168436644792195934158682577961386493989314983139754425581393697707595625089394869203589907455638431935472180564040656249147872467451881415914346860854808354358789612757574452346787055377120328266734701284363405789525652842119220547664294587606753970637879649273937534080112641722988518299273031790273268923111072887215085688620692771974843631276510918795077757924395408805679554393067836184665044603292107748216488544443606480467637192854486847917342243431136914460386143312349275783362105596468202815770141472137417084247831519328275744737701213088762887184725456285013813666392298092704798262552169608745242662528583527388507796916483350642220814184236800426944794865282568733059008427039788296641089612990840697511523262312067078538494202225486079220404478060520418025098494481439220936809675651639948234978837486866957642229350071597109065021579305166626651600235095296799856681453506786263761524600828538329363948414336883548151810946502620988136487473523447142474951617421465296667349872732852178480800922572941335415931565561255521098556539147031511922911311717946784995749509204558172204376650442472646563449831714293252646997565709652817604481658730087963100441849361800077750700522849796984664784295217102260896417309492409623732633728635111183290223250868377106522758386798756095255163115910554549996821004784321276027568177930183592093310571658827752781430901060550765134501883814115856343271453188519880005717965635021298689261517574790362848215229912366791919723454859604203167457846481628193167797636234814931990638610682207450301082307439285841308886624317645451204690985993014273554848350711522861067834883780320400725081283263518146346594210583620417352178700300381565417116710705031087784128235902419826048340356860223304451347365699161424788200663022767877586498058463093156108259007751653218939345630697570325640500069246866425473695290102527076286291363484125842543849259439277990392362215774364665962077379994910923156636744215397312717910584462548255936132217930014677492843804212071438659888262992169819224730497556697142001117484428845547690789260339131651700456081783106834846164005961942763163779408562928628022629165792007285800559379698062846368018464457098585958120590716345896192846231428976085724071802156231744546759346663225534319261115688514523335577580560873136469867342939578798840247546593321536303427225337370612582015893502985827932453622427476382255924059577722887068136773576540825447108637788918639353345397863804958084270039057627439018968043984951575862063696727117732721297698779741325581234525727904161004616023059781949564227557464569227998809555405732368412215113078318232606958719360994224160554852020009185717325076160531623525727197516245610023178702117709426376882000398316448271732687540261101274134130126432552617707402147442450391874881704941609985974327613232595000993821925936669759643580219605070243083715823845377945212905149982032561633214030874876964025030630542877973835915722838521880383633175626959365151024283201914281080458970182307457798233938431692143165239503050737233152247479021451584449073569388587538643481847209082151753447522715573558920611872996366379281758182082159091517250873545931541266883692019672335656938820155805722368449947956582137917316160906529519081792568862587004075304300088721059264437849132122096639138108922490434547997077929390835087954052393020118300405195954575325151969761228972409844126582324325074825259622410260952625705311013293278671658501391175222312338017083135776896510167983950596800768133037597504126457740392292523017574733186887666515183257037763863341864901466588266957733408944242045129495984104835867365054219803327747613196375694195357695678807987296694817614313857023078089654454306637590789186832272921486134665689175635859406285409748423643624352254933865707084687410227348859430045135111026531128063240663867540479824637302151966274181065003141588705121894923864516805339155920048457615053157285829496682668399952657157659160923526191713016567731835322443476253862534407639323404271846896797941603407920948161420899502923865027934364801944055541330687265969185341414143413127097242697632145220423579520706670135301491352596399422669128711359216959054548090004014567042094881178522234587845569158256984301121696758624990600048295372717586787915332029046822255487240872991763803145354687965345591526015704787116217379733711460339823854088473686429192994125412697333366842072458746611330875106377004748044286589564767395186323548074471115197524043686927744391102470755260131688561672326529736583967942015324590910682500195016435776794648322126346359219944057793932284992019242514623842355008798006901312950917673850480840997031097178549642644045038534131516561881154197714041344965304892365156071198147318698497049099961384917200503009743799105087069039270576923509584388129475726005965919402515526640382387599662103600001152224534308155447415660701009088939791288098590619907446635628141147557634554145553834744745501539260508558866783157208612023574188909100513035501432591851224517970198972444732046067868173506254210681000455494621338765993450439075589716344129235210274771502329756953897150798175291679389071110995327945343915728302001685912418807783046591328433870797667348348626574827845575049569704690307585529467997547654889583041665881475645103710580303284182670999685157875547266184678258871558779003942275524870056795883118120339670273222752773189159456479850910015641482908219934746196966055958628460617678442791626134451636266267899778110483409776688459575593568799680550333273860162171473394982344766361739047362859578404701162098347497928028611391479901051905856409347696745186844804303085334052030330743169793201013949700294842535113681904565219251555370088400116427316997636718532188776253274484310920051747075917083526214566277142840472273316666031592444353088634003851277102303430119129607703073236377699569762576681765010209022424998997262131814745491285729401358339383996958051027507517147155587306281481437677960699184106856126581454941700633186744822997591039216053236617384226184719971522528919000200745213547693210566744591208749908529297899412013717225630622987459517364210209101464574411706041212736572542067328112393201723635994625102561185991683711742329352114085409649602725467707454534177291401664357093092311569333912275137655412833469504625253856700621618733134985871148862294856308040699440445820923598075931069223120016094673030284896653839781567503574087502033221848831324496406645672182399719294009031300114633702342094539401596326497061321800264157594043836089180732583979822916208309036733845369794519360412571539261917605429781055576886814451966328221311214019532180241859201779059691048917056447280842661506400629893595405407373820569813859147332272734101557772318585370191317460528754972018251574606999184330547434040026932823074574774894668611417935451781079661309011306159372716706580814673442729286140714795121576445002541471062873228390870611236406303241980240522878960076300731633637635711841774258138806025442183178169666708872267561056111002619217192352552336840329008089702998834330670280407655575523417578806700093853313977491551183111388293871682588968690628969589780521503046689335902136060915461621704197364652123402747682735214168514777698482433222449739923918923090926778581290192018125402019622807735856769622035317528864088324065470382168746139806336491707539993170932289465974066894752133419791776048641714544473529715734857589025775679331133073357906590246708323121274946791859771406633616268058783427952955378897012187820339332603256345927131196043324373886155308538870608623545832631101228885944047708668915387169731547131984264909367116475761180079267116779265634980998431166946210983878060745606639478539360193986184232030930749355366937606571709127548339570420868049644153176356553677948603522294806551088744764484074294840449333042110374461437582591374678659180281155717360218583799688874142821040304014275398628746280554836534626196664379073202484655000008851909209795641020064015304503629964627911843466483602883129196084714259028472438951671658399891156330741329511083661370889445879137186389414962567658558553041954915260750762351646001821044598467642783082353012071225141193292913064803957951114025985937658082907347387796240290008981791281283575606603417276910053485407920776450313393830222985412725576793413676623765020994939469650547648582345595556618470278959686391155110843124242030677568504163948578373969491579305695279238870464444403878227946390630416361818577591788122802930269381530285121526465374715180635455574092856613757579875076092054918345742729434997243508557886372383093327674153782935293452121877459749548001108357743921612243368463631887256052314238331527103844487212697053443322065351702182759026390019623495117239120498611473300082008692279648349248419195321581307208655367850314881321935565686868008482057854788818147897465655200678698764418661309668177579337362680295881301460098590303824378915122363969736645194569972068298805129102954179505931756530054610989376287160212204054151243130786086938179800935502472647469187351060904429730359357518267749706582299251996853894664149691083334138341867206294765420231290048192314101881372710696510012464784436246189228824762631627314502584443506073433515966195514284733879670952994934362374708236817301116761002893093869708920623282935708725727090108737765105081327999716420898728031160237707739585251121207246547952690064426302510796930191829942319618683419104855513452021435751245465237608041991157217029643206664953606128547898217553700682591989619304520898883807163154793585837512770773767430295903562177841439299381459939156370418865112571746899715622765196498558455705425810459539283993422456071367333667677976084046908023843995869911388755310684155772643806467197674308874225232793411584109612330576917772924671214391168513536156820733274909129518178837442240561589547108917330732817212795599909247728592967107783314796025156969183017455211095210432962393678197563741692563608964086722906017505529213824421845250978491059815481734620341422966740627896711513518968992846446355259943431565488991114062807810836381287320988728383079139023833888602006933924959617131284058762548313854589587256799200914659633654838151843418945820497392116541649418515002331432173850403225044121597396633955414223398222030050466906947764397249294092720549261601705167466459547446733351255678411459752413796426094629931020362389544669353218066478687978555230269281650428530422472471626377359870404158562853613507744056362242930848104247445795457455946618100982657107893458260130833582357295019162500019143945220294824537186091906408989523190805271283943458027302274975147107329723883102138179489171015407624439753015393454935866716354382574132095088669992224000444115738001823431114556716247207114657460530069339579621985774129796496452063399074426297339806882569576452127412537442443642899584322049758246701907473273149706942446011910338186142030113254979288615354835040482068052890350454532710539992977508198338743660163500058957879959593883146617323705445351697247191293601876911320730009071853240925649465956216483828927470432197654850848798699946474170659664150263182387598749975271523052451733273411092651281292589274605486790197214734281946761756181419783235413393511911687490966180603572992247807390589633463970797565760878447666282693872857172791800481722936395600383694615645210591007528819093063323873208158012767476753720151496331930366896638701522941288326056628688058781002088374585309373778907322875852247959373363396345337863209885160331755640025046839206029965112676852364737330815403641963522441109898884039988612546133441681877227937402940142548478207141376234587241480490511690196218727994487808126714142594731739506764542895039092694498918320429748894220892349022878343361432950545049787154471366758456900540465278053705846174214634561992146253337275634199638126397912376474431083470868822174906037991024212372484278287891622918751058512630760691827722169982629759050632597318212320324214127352607070303582949781212324190499475005157202379294226076103072923161346710930063945442242924378635865387529017740419187183195215343127385423481393312445237849485705773793150874616609556547377315641936985912182611083204877707352552972841559868546749479055493685572328772245568193191750912677877717079245836157278824228688990179524028987295690835878263345772784207969548985991495425266368516576784734767904411655924010751603869508090069241141783074463317799167971622201021160816700590662156306615507363508008271138626784230630567396784442754050060528272938847654677233982764113807056427146042143055269119273309475513330401046966915527788766883706410619499147779259244982484554428454455350935239535520045008615236015703487442370628216032453506365401410722056028588314446101864631190042977168135613671262518112402697366179578616890904553027768471852966650056908696417785965717629461774952115427026149701658866734763808098134207383433203961650987198599662649398622759630807379013360668738366771483952813511477941688430565230814863982091634584338851804522735742399864465346665706992737067787075115558282075010108739954041722551768578175088733161858616480699638614615057458772144847055676687925683306897801217292528985127386660762254400225305235929446739869866702787099858828722686453854241101799227496784201528024926789013333551793972296130338402064036650073470235958456078228681122878854471354847445784219342734363678686944726178310039970187600974942786133527906799285330026079759251973202355343544010715222803831059177728718968363071266583343828141916666927863930248271821060668937156938329129525867549134611190737524060795095863813859175317749576793950385572635529398221501492542611569768873082250629139296801966584646037515765239642133770533605434439273438729628527298622114103828170725353095395734006936401209072643941846334141798829314537223322350946911161759491897442179921939123729257779752635493482146184997296165079489894966074826825399019839154764955404704740747973076122523184736904581741005287096260003705119155917165117650323226559533679079998631125051436298851850905934897137049132242955583989212344875424419041896357627729458456767158290174971764227759617428850850560176539831168408376977388072650380819561273817819652022627743393922339068374085896513121816924649089175086949569038823299790268533345873314721571900644902629298639077983572554883798858554562772942109469501652626054707561015573531381781016997753795275842910810333622008108466062262220369568834277563135575284857979264703490956205422311301882125774210570532585418881582828094340339249524016417471788437685624088238074852533579521063763625571971933027498436242399061673768007468924923969488976960238306334706089529779290219560809503547459310279005004900728047272526308794296876403437314412486575587372278957312674149722196958907228942470501597606704038478074469523948239899819339707106117975582690848516193659935087400380679616295299565164605765938380022794001840855713445303807972405058157865817263068526111153375778159510327353532336237015399559181387781477087869570453154831456717748824882163879953207565610424078376436674346640451445009608612959516565715976687911297704122941649979057844265638092613430611306844351094403141450655008811099167336968187109532988704036851843509611201268649323216400802541889035196420974705218007631844469725910307166654704971619823120974632587937040812788774821051818198918749225712388826823840033574330224450238952635148146875125030307702994943649788239863451402900592751202874625887102120138475949822468026057851541848739155114226531619475878859361117833275689042112965110584752673103787879451520090063188210750522904645787984575169922815205604518138849854553871597752920520335969709846345766077706561961995433201488817519774613421243900498498698832536384350124356641088246241409206911015719452834908022248934858572848476127899961694913642118950928048482866740967718584855185766540841312818979663498502121208250722693903364287662085625242864454136360018985877474341102704970381163950221070334933804995591023016513395809833723334694258298200430038356481303578334117853211395226450264120883744598213585142661284884018867416052357825803796433454908958573001796071846489641870907112177324100717083001887627661117834549578178655953227988837633916119564283563362189537862253142811745926608151356015670556185223329923652556949983409395529161995639662718495766771758103033978547725966999766865112441992501295520975427737166545512593741867607993318141125928743643798805810203407913377478579850809197497600958250218908179742081763402246802133569367446480858683995309802214590575155468803899238037187848763203785868409742981474238514097670685808988571970679597126387020779947983583827376330189900055586286605988819081304184906803137853014275862794142810971265625892005855089403229176597216519856758973703106283884353017814454210840224012531068166624916488551192183467692945623186013702570554385884182571178176333967742715171625843823007321409219040396865057317806648956753832407745020592293362703657803332391674192464355473687720919448055937406846287193831726203914138114905415366361805055578029934562659589473305216545867400723301131231476137682332935474805375756989441387903095239044419015734637354217665616850570925012090092166355076227005984558728845659518819171214671753326347674969531085737970593042348828337350214617860589394892817904654080696164454758041337457230983789362186533285620397371416270759949059922234170937691343136752806722469968001918363761145930762888497520783078254902741520589577366048422090068974598143942040605992421312015321387624990349322577401446509106326412180377186016202743354779767934545150647861083549677263996015641585756773602855975165919698862458796815586317321828883990231496117628022014991013414372755789928245612466711323883499748684601871559801085976528713807656666951483970454978345479366050065969114074970021690135959892148190010805519676509648167679496087857949370107112973017450962954969124177884070523183272958143477459509086192986492837543144469423847290165293351198384188248613490426759732800723267265696169903940306622972618855634699872794491243071011408286829627970385796240007011693923948494863623464370944186824666778460286904283087637836825117072611496330846827646783043188356560039877258270092354429065281577097692387155527722913963997435362761776002178943159758652731937651579753126474076006921349647787970445358700022851147701084760725988602364214271248418453183300651494962219788729951403103300326612908330562450751183603134369551765024221335814840912131859538752316087442313429818188570479037495828563083663144300967798660431133690755413410545568655923853993963344560170110607231639923209791882680233105930671958892679016749072677380798480513287784518256757580456062907736135858387156387504123967443450510523426604207164123238008013740672188978283668341965305341409037217003466302352948531431171423956639807632232103994473832043024782860339317989725378136083822093582215740624060598354523916405437615838000303822756072622503854965999123136128184424509106844727806948731172380350650438890300987643816482592546623598252853347293428256060212950618889983171286970520896985401203578614112528983157917057695263453272956745996761907893894517547432955632730354419237780556159348061188740429071738441567235095150715715990237302492012339940975553600517783189401178174621651969908625917312949232544173397948944837275583038228701591585354439088553935889634550216390945027014538627688974441462449619744536518330530390955342002958239170886022273241864043354994075266357488353064654841847347756436682292556289170933625705151895029253567816820617264919924520804794789785981881271751143410487892425071476926249838578358690405092957752012662893346915215975400051271390569711400801175654013828963875128147152268040981055521939231480327598668910691353187912155028737688687572387920714919878162436891322626251931610327487201797436812863773270006774716760430373060277860284427497145608206616473391321116993938136868158984425732088439798729417449716301852458221968292469099684446051028145483165656571191380174116972350094456457340268675019873020989565971915012568654463230175218921112626343970576094399963542517865943223858526382977962191478667956908512289180322169585904245685287916977876467862137474418654048486287328456928046039444356764655380342651183559467926001654218725166118595887926129259335804065963792538486708569811301290059464755408145569610912812439220089968841738437163472890723437309165750981909963832226979701324471187535509893702455489427157011519429752468484051003096582958424865320833416545162299980580690366047198341794721973168686934413678397497847544181154099068112475429770493288143533651076731482791557919312529000202287700954716178230655108088495743400671439876750721552125590702893018287450268281076523437450372929679363923912721721677293477937448300398690874585208646314692488438180937115895355461860362665275596165551670510551249049483669395906254847223724812079477913933885903095929868358901870269131008547896471002688833314051122446618027939962989555039230374690606259830342595892352541729001272653896377726345006082737812874817931920360340072682664969017413143350841051502501932104890661090680292437118753290859021237575966304807040526532370842182529154168908588312084739992744268696309242830176486264244089295654199859254870218660680410611446678781682252045045267997899602182559032632439829580073916919852775646539409906861063175196694810380202575643138449807766849077482704947588960983856344085364336777018231613439863327871688474138577060982965707861918292577742949988265586719496082790191566495592061036300906202453568313026823331112616105629307904459418783234411966277963934370975203435828609028497832806165575879339438874291605111657771071283423794784415940391051731302802212717273085675071767633003318079211601612523836765448732408135472166851304706179313507614500718851203102229323665512599029744128262602471799297031708392746624133897092514982329328910316094368704083580719836626666186858112758387973896318232517625656548800641654971797011111947648125259368363302270084499569120682568314627548667448970974438785007335299196415228594711834033841691587653590839615139746103713163479962734279952926825368806027015275000259890109024922226118048823155372236141169412350366014940791584412227517022577860012404965383825034059172758854266677475863197975389599016771366389623711141248987944275461569634610888859240837036921200448883508804001832302631711746202283444545713610456796238478444138526740903611636244964417854016696355967857550708510704492171780348212039463365234829511016352544189949406357096779623644868782137596202347993339767429309672455469639850485611600138619801962633336887964885613479749821949302388847610835524210118562643404173743773345633256052049527143447302051751403213890533002137167550520607266579098870976172752239525097191893763954662525296146538858008783529289800488786183207128350640085557781179457750804552722163258395414728408317437505427426001060515998785160400389761928593787418574044457531296679148802486230702141627245143968563737909626013687427855691396411531470522817650656792631753997108114132025684019991280357187646594698498445951627721885575150726200944580309302337068607931822400630323658991084162295935691810576287866603672241503600853446865264091045753040278792402715428313606965137980192520583355826457540932849624825993217770911867908397379617753404180660872613111771908581537586729980556655314958195990469822415058452752565274533407781941026946023839854481198320920310082984252184946727532029665088728340682915934547212784959312671245313720008622283218510341730514086208942883968212608140255468137078486408729882379841049430314893891186233234073980661721786284875732578833507795720246973518029400428307380479250791173033565781185768511739847992152331129841865356495821729608081708335823261053639116820244567994329047836109429191650061044051579677855996962204807409639678644504515515571285310697141199114810145561162828045454280252819055994853577204748738147483568871433795783579983125660809776527188144364903398580656827279192703060385336008788556882504529818456646256318930398987474454838366255270785841624316679260448826258214651071755491927856705748233264303687047738085929723269406662494994777096868930798475267096836317299890731070444424501964760363362498606329532453874419690967628003655103026092560974737360720442627753824538439242565823124197734400044703059938736039970840940583517102795520592393555959945982803424292638414535238777982217856405579822531533226797242598230906820854145397882643319146856585798260365055194555062143687079926993243930539271890215290660966753848944697484707061535338134790000631016997255167439836174605912727966027557587377185702058114270417838032425041801830083828266002435313722025947951980587099970280703215139969746080718064022047002992903803600671712961023253504420058819789194386024419584684999275683711558035606211080098259456720184692665840320038004172163793619236218356387641163912662830660571638940838169423547478251092919000916096384320681848608001591689032434475627319526962997035912636096494204252779191882993742670099319105686789819990161622912834555689036265259756565512115233809742958909002318408700673958499829446743998097029180211842174485318054807979713841141631557192608316431937010121084556262628266439612645014334761335294503043690645089653596737336173670947180952772122206752873504500335689170767485486995611404184319411057491535243090733234215685651808733809742993674044360495281141976062758392043372700793149185397438603023178676540953166925760676590080398443501262929433083383555673234513920258161599057538847910791470341923220350596548850850823560393956536924692845068381295207543623037980875187508143360106068053738649584558489594203717405523224382300865488379385374488028679947449469006046909193350716649277775421268332933744967031658978118380380363662958744790997737029791978019530232655898415945384236549682123500928221427712964003695586113853179706167384803645110775702233772282200116600166552816257566149847794018328833321244558880711586546878653456016799247837407397525473059426900656567196571316223468231463562795006581794176376751216532541142939154902166894839997612149274600032546210972157062325727037153166257512663127684885202021189636864496491414836486341254247593459134660091160669005547282929810518401314951288819614908012307073981816033922041581115646536484647645446786588875633645091960565343763690815878598766058168429767362135331395297784692648663499833291277064362101289572783123557150594149296484582355152704877962024298163716252162366341646782778537502374769119706955611100783977063166268793874841153755325907745827609918534037225080849045993605923685540025398179461086013268242423187894905577091916369369502822830626350000834804992963599070211227493637418763950201086728132287797189084919321771778373564967978436468669422867866470144238883969772520699756103308199865683592192666123872016786886036415761676469477364942687390848069927138767961291116383429342918677279544099408189190132856202189384221031997070922962489487946848585134054667112693684267289877033013048252948320196684028415904119392900187763783060922465408264157914062044513818423181054371107235003039598613432343240878510811901316312658267661635017778064793636614538692460451479838805222754158494921967871726181442001770532696053199956493124399973164262635684318463571663519813338517884036516955639061781712308437514260302807289309081259097397029822223450701411967874432109395610109486207070712328640048879330432244324722416401007518241766592843290758533193941604196121259856079524193891272187651256144319688004537437478524603858820581555476020900998160276211002197569755226706299456209032233151809658155199415165787729645556786137434206879076193159830730079961449300271208923729871250998839716334934765216122491551874789916988096641895593067548372317822444504605273981341411643934721906949134270152767951478172108506190365650468024298180019335711935462251863864903143099962251932938431319090304947608757165998588826243498895549125463061067193494051027620792219076954520416003347686620855979668462829741819423292247875979413418849194321320758695735095465592009168342211495833634623397969971756714141964761694842291369144644264998126667443760719554491620172136029610492181727875202724488867864274137041006233561442767254215121838073241537040013801636721862369521021344793041576833192458084456939473529353902097501241960549022664737535828628443526975414149151121569592434841091057408649278986243602553345054161635230007599738508507793548542377284203353096991843645204750480622300951259754222025563613558525730981426358314418852510599205442913311418826868173124622702454045866428723282824244032028435123528487379452634281591083370171171848717192222004690164107016681724653444214185907516108245368793487014755303271077630166725529153427065226163755929044742053958518738768458660491327093719594711044802492587919809380605329058336027546744968572422782166307665946070427000399338873266281972148949903076548809227730836684768310106642450908613670713486402694679625706242441744695879862764572002283131164925702076590562952173587575513879288455132647283591795833185410901223487910462694339229022034199008255815207726935796175171870543243765222865646906252636587965729326338321879054374613692175774787423018628466957248141322537558473394486727487329471968158329778773995504537565157976352813222374922047284984670640003000438525181118587467145004716124318706437321892429146446897194938614121543918118119486815774947083874478877582040892416439112170095180473579116537401636438720969568305911908672991309083514269807389857901941987257711281452987374227790524699965766739327233431114816332128753684065543492503618391945971530504482665676798440362570433360600800451765437471493812528452601392241814132802324820500138902616729173651318871952073131887227241852602593086079501931614386278476257954517786974402414899115997570227950003408572653846486607871888092979394115100978213057810881421475587589597154414941151517723069527241960697927575276517483307054628715577334752008820483346372173534874839838598728846194079964963753560847252560754201700330425023336225682049271829505722403149811621150845604051467366558779130389550408529348852660108414175843732009159892960566324716488125050111493207830216418235661223645417227548103426460560329319611227210154909700400221142848221452949031318729992737146331842717866870100212293095655765197383927155597231367022465533559285054723449889231763486693668312920220104887538329406251575174224140929091304906905749740881626619939458484355445165803215479558911759082731075154199324425007594078853943900586857521278284406963180777039343955132272340449956687062618937849809742666154823018279676784620298839494871209626197894101054234476800724247204758099142664998066972010491704609523938654745643067432722682206973144642731911739544451658089470486435758410464223049688787441367419856357649228076231541823488224523822591459159708546468858076915004767599563718556547105332413376369194521935862665691706324418433200143545287536216398366593092503698184666458412817670557762406282863912364273537225915504460279552837380566234395934587629610373990071250604998982322299665790664770305102724342143975985648455031760715379898569135035440254815387830952957997068088558224649344445401231123559942476946047410175855270639728406757369026698787689305127557980905647879332977148386696684071162779022536467129112881599712472699991873796944347938576776354057552003673845158749274431029166661517201788607316689818625855365866761747470395962416515209626292395862252843403102338118110607870366401509060946104691927643557011524872304272122895904817314846260229124008924875679802657709203399753156269122641499190158224394471417531577763736594335427628108650512743629930317070351904359723481106737318921817246045234129239915451886290573801849438832903049600012397248967208770824843590582873262289449364302194045428422200139819529895028023853917754886051008800189799370873008724594995609780903507259107991258417090445404441316707697631557928927255608729020362382891361680277542502977811977231460421583178497459464948264735058243197434939001358697178648015341507643156326418411521347411865489038593594154799063792874010758039875248235746982197671629038220492095913349244268396415336249232651490200004110482836738959807915504535309067709730620509001488781569248755890232776421989994729750949263021150339287252722102984792922913049972184722967246543856591350103189286095229723478431077800854191305315030997894011506870627007600490036842085149862794509137752762752536461814133120524613646262855625061408791713129798280669758399861056566189085589015861651883927736409813553666439159562829000870997829365647112780378374075713271469886466667207929077378206385623883355708111246999861323155606961971164139645496456281103573502788970402826821700427571558638307585126422400276313383120839223282550150138421018200001942277557546665629730221551220157151133980413137893850679684016174188482063705313743380410704897334678614211861771986314109461928379662593761478663774720315274237884466441756956521469020905900837221256597276921315731038446211518641936193138884408895524443119667145718552920331236884999414874847544516364529491201110230861270117502931553054618929553129565767888156708116375715609765235232371221607887221930605482647840843651929920610472011094921445557064827406325628285343700303081536603272619043792583374686902601441484140921335598028135120349845480763577206566358579406561912334567922439133524310115268431138843757492633050449294526896577750431815705020611797395651971137137779927896309083706030588641297009870491145052219701371275432190883641499473073951191933896517913615523310004925650468183401826515514500482345874357581476938888487841100571853514590837569628352280351615856496896657205300482072091793835195026459874971819001595058977174917575519737420964015568162911332780525642875990284521845061970054192667183751599619552488775539579991183567777515944688721016727164355388559237478939630551074247457795516058310151317433072254227982643681185361016647822739132738043441239571992844116478457339777152360325391200211431658144592151743028102495390910913536666134729942700836822391306820171403143284064930505417277202108401836390557407358840939542090292927135521292338067700960813146983220345523342559272628226698624295564138089451371342332631045118789520844009330874360901133848795218083005368976700001206329178494572243879410955466719091006988452176151058006798350491039493410528518440178978656188190878269608240891418207881574815696067132652265649483236649347532567345431267659112133300711033824555019962465907794292308071329699373694110838333485555338956382715859296180869620692977439764028327481512470375730793195402278485013722542921535689821615670709593348328502888791989725048052355143269407868531814736841502769131376239775285790243571752491507941871057489387770607639515559566290438323673752641334248069791821599335027025308897711977049623041779245209607677344876350503333996388047542350216173337133101767256034702340671111379830344738627789525047016117410906174736106387283179599616868209811801247734964144725195239523928436584078233593256022915908837719443343685272789472082836429908434994257144322900746284531677076626296303644884655605640536875255458368856959622758786977173417205847653392538682538708808616734726975419104176055238800236802123076874464285368632275902387811501152652749124863068530857905832090780148099584810627899051839313361634899402952541988236650431728871202405283392642170451831229728101639400058573519773328146039921061048229642185482710714935675801104039146313942852703350283586512376570601665706833001743982725272436304043535777952063574454704077112245818087769035220904477758844098140292310350933493636939842605651944263751838775459751087438854191217250277766265678258874272300109002882933139629763111459557468845034709278282739852171300353779599342156489202639358634270467233357882899141653984452048148403047209907170209942200181949006077654636225694117025044130193874451105758419554792453997031293813092490981507550840284428204444043142009940361287276684439910512993893545324023117082680724933394828133265095917098893101148681117816351951962810738920262497989315424721351804972039057357143869747510962000358634285074434145782625787001014588612237532599399812325322480111592534199392573020287881253177325142416501061277238358283165272994133209699934060798336236237478167618896774645298806830978175523974108932503120243494695640043033495138448403076736655446303526213872052370289195383644546745909980223872361262174684898255677259811601963242211589773748382625091781556890048843796772659639937445965121755115904046727512053686507378147881423450625712432503186532577308196709417024584203960334107557464839130316350339399919387255165483460102191153834979591635961865716637463120107316686128107040353610194736029495366118480447560071206988117322821586004575587717267479722818942153593457130771032002099573892802993152510304904394638845861113815757695370105565310588587698234480594213344719923010410952736322968265875448692173905164345017882611898341774366196273777154371143200347572216981661771929483063320364336086095590785872174528737525123653859567901608192237941108764279679462325267802063661288013608916538741367364502923223248218990991540356645481634479984399314357669875154896271265665346027902052577863505260237889539737225331591062495579281668761103105287313521372821929644017384585808561217906610149840257758345978888573674686877914156213754753694770920572378414287891566834552636038220964742112069998998454013380010285249847685114366734284514719694989251585484025444791012177137325193886481326353299339810424439343302469941014948512872393652021717504131802802588007375094916864753255198214452018653021585088073734787949518493756012278785089051611053062629906908799489932024610924284651990230941455308832932576425506556858941972431937577696140931448722310945650838269311787688915819341392587312359428992343215468245427392851071735656539464128388537289443132729126882880529624947742969496357165192099144241671957704927282361152218587798445538069358697470380672389344169210618231114325277108909074156889994380879236486192157763685057633293452340895325334244883576155741982889180958425252141346011091661274584306851870865297675776694040561409934133403598639376622808214707098783608535819275853505886532107270778936663615404077344279283118902861774740522137203736242393761515786627533760869081269747293921625424401735815803851343280069706276322109803926765375709855659634615299942827706404553504679835351410582127403368282139646939084682375779798803074584537438415342068123764862222261515283859830994713918102474057120881700120249451317453104928629272082601410724736229614886250758060682143367364696197476969052711323465903589569240881988022604225796806790340283678846870351275062310481745392574732806766639552976276792679684202349231586757550860148812545907688430666564780935671201768791001305074886251730834703074661325717870470375175750189076401652206879950680201450133612355602313024257670216595274886753760054214250264048394923305359502392580607649676567693485023042924132275813595359917992289530630503710300241488692429822686305380841687641111733610915521204545209555889615275060245472933270862466071714758771296914695505451897692622868550319621732559923510198479084503934179505594910555491568325776396129047413585473330911904644080643050101718093828504487048672830428829727571014650312134404721401662341216188694754935435861507137256217431306418990225249014385341439601994029638156326979382894110254852751203229119465989268274332202776351050432700145047491386686924073579104031740176848118794767371374359644389846976896113828822429349308478043257364854230303155291634957240757905525266853030620660985714301259679347087764076554196386871162355654358586472256978245497541593266571019076195525679260129562680877747435254164855606561428415195343924240343023074626932789809578492384547700174455952980603522654383023533613903043613667035554016077840739787368866851910852357351413856437300824373371703808858558306355739173262574368911986050382443638422591023686016451986587672070508882354297303199597860122683894910685703904338924944709149786945119820765176378736059118539950558918075444037923738387686621984841109013507792102858571842529445253810432881112473994580660436845300466328777941945119104292070205406340184311505641464503410826853283023207178369341726508652675561235565556042069881181433184976306055121715020823075700100587053468021959930599230130753675562235084032280802341057274502992753662104926511953346974065036786850951688011043242191517760824081963695043150033303232496945397426548844329316929356324693732466453964558326686553052953904491049536280640292336003900215949368657964841833848100340743970364500587245847093987157360965321722605491003235953946929348705362577577069665283690396624518761279546744607187364484025011666365592268286282472104147086174670476534422318146775396946541233689101155557315404709619449267892849896395359771076664834439268500249631095810704574788619850881737043964330455995843789039839044405390565576011212830237262621996410214943417868232091542869761055367986117022648858801655329011225945143959043973650613447348464643810192318457650562417505024419928802532988560712478534814114953466943233394790009954041744355087442720812804296605269319792864281730977441924419625375218862300185289160694596614979466032885609140617041756630157050525093036565622532600578477386614815086356924879726861167295975130399550997651477559786577169629346005134907931078104511033846019666786612239785573602088911122015560884977520809603558868354800771808210596275718117722408355945944752377712043336575775475191266977630651919678153327409684074108639513455854290857351867187916440246009671782903617807462867881498079286802100497882228271563054391318349919027649428605124168020088571217489967720018666922330795535492489303635665961467061344837997596057509354222174615211366906684382800948805220968992065434269205766373891775791705399307812157289991879211612241383981564961111530418941081353462788335220964119589963966842504799659354570418247206077237582912073116559230527142991230979600693485876901441498812198546968376957050357850660094994690399306496371308193409399690546125928795470664975416877380521556688081766458279216404274220694652642914453334019540558683946209075421613919996769735317942047773163742903566467264094356035202723560317251413492485555507230701613159396412671184282381520436967310828586360896570224427902738660527870148250497616677166186128639778978344215324689407996442709421188881340062480638031796472429484466323785144148928276098841778093973199794974583392290711925569099116027566194773942261650351540735744480585382594760882996421470889152486023856659756940451417811661897371905994028215185607746172443035108000412791393568652432068331305491546518142692944406243691396353564320705370492330789807993019929811083223450421266883318983408240442975237242746306014126458192197603765749624306892273362469942272494994254722593302015584740956768557168311783278498015985229028275955289169797176988097171790949640796477639008806882959174572499466193730460610368537090408753422048134635674582364236732586468788120743021438155870487474123870397743247666768276833680323155223137032419019335124153624512302851872678814184252334189805439845735813340213750717568935654334633957981185877558174997943317606282140161733315708105539613145158610897151586223342717540821725877638564252099038591504205884520197193206183684937411840043041518795451248960871711749647721290765026084716134340785031698085776749599089304524079903895542331232734791074192718076230200819710376678035705881389013223429333305426537804811946541889642362844291809682199560412117233161667473073256982620680381546555413344744391939006055368491012118579732057322781491187817771858293637100066542220812806101083594433924621354846459524805796460495366372509144865523198649966514597818331560457068857064206616407189875646179729684939560439825454754958056091498328158689674365693556977131955054843750810212732868366900149672062097799818416610399553597578457569481953709582862023983019320052658458076985778881313173849887208361461520150741212112841331484433309715610297996141296326361232890152452695781553379557282287294235060610198803894461575646359700757514182306997419830784924203773926756040050483650814352711940829699776055305120758809387646669460406403019524429052892260273395925325045266669187927039064747975311636962503160763991880967247322214842235094811216500992759788406957038668343553598855076423479698945050715248425295534267403475473207025396818490510513681526945401620867571470258208046950542596686013830549559883559954719245342230645230305420275274901901923040414711315781264534405746230617866099248860233546008727449423405127705844655628915375688499482655744936640369955119277742757756514200691720717937214573436095992043085031803184642523130298110143433215004221522108195002687884652002305332431390754574367632345139050909203082447178278372980628476218432989171194573916270151955088903303995493761093017579460334479354093754091977424084381622018819867798337053393112163484931266615273569610772653766835258945662475443631359362839253525057982474374692670387961243024547051864481233689429899025916962139867735953229788739835404163500202337317802067490956187148140686834469838262520121873630339233706363099605869265127295527111645266263827296959819886645077158939684012207500868114692312743096192213457623072073695652440816714968527635819171213445657523921920884203713954537918263768690523957397715593690331249366822181945800263988684669295359714958202263148503923129468253369094830998791892738506113285885513086582920665425509210700088146790758060968276694709667037508020689035708685115706398058511906911452063618160316941495339499540088261126603205689865216876012636749971431056894157869825470220147585767984449498101838795349851688301450805524991805715405586357059481151277391698896675699430701667038613552859170075298586382918554869275338807692925619746128242340609860784645370761675075496331021844179437801143613205609327850023619439696621096502107098381365478908969439811064599943515162591354674237342832397437185988899810220447653405499853796413003847514332755097884119930613273791254649220925670910037226567963460946850535000503800641955555629671407603355859817378440892222005138856827842920891794040024348878366977780197868723343145295989918995197034385733961677600153668930195963049787696587997252672412264045883229714810367783599166929541819464459779362373238255364208836262654534438980336331865143938245879427145132909392928271210619564948232063002549506649125168891769299200239323580421072169550109453807939790036190311207685900276964734023958555891637383167348618602191603026722531976101901880695192034750794883460059321575147428501922059077060927675485553941709218851845835871472245035062076881630869788386507763497075644024105382963717261748761257383645039174929804181012666603745172478733872989514468827695606924185033460379731167234616510099627118469696720343303045919784432193228152669977488496555324169162950768725255239772019084454666177845632925047770682646641545676730262631460238016415073424747301454494105881996851979834248585234976642408202188928076357010821559487846944692064184462044606919296725803618452708840836182507935030763019177409235263181027288422181635057915114627827202702077387716473781256090786215822591434886472152074213891092843900275774311384960975288838886326307707815745988655990911353393981449457257319222555314100633431357050524898719399376387012532446240147561840339954715008832624375912993207711023445315017618764418375387397975915525780631686055145807324059411420939276571914330867219632729977741504764547360926742366316258740511850194529285604697843522136405233526459168105392464007559127534027508813954189677047684297046092453855268934719086214886114215647013091100901088055571276435707303161785691872194532108246944610113391958318374943033389898298567110784277289761168171572615393571067009465058994567977340226662661026862374679169476401375742577343260402900098960652302318625554957743385241890847530509926064373408953927196770047758748296521343443750821897207617779556149075952543005660223111570012827517177545513405556150269748112001014510319363795002293306439174508712094476642475867463023282129629375170965983525919588131443052222657321634779338151019368359628853087382545904523719624051665854092177452801052923710211385840786417515990516014078814732015856011369189500465284442482546857661932013703966183214177781606673938704945776353718146404000128305383019075021966361706551088442654551957854596066261318511733881226869183037954396961535315564658578778787386334467861996270747123336057963450011626363846063851903808024987732018797766255118336779400699186656059181234282666873351775650096271400808566551805613554561127552624726520510152240662893102041551591746238409881073346999515544643729731732497684849599323738316557964213657800393822143545210499729842706701823056567028298539856856123630406933817658676513739909719024313437419433992751020898823686473706753317065294042161592091688875282684573337947137890218088975279853385919313299058367136834374788737888376392853171904530884201025942339650324086960345350840290565609873960348355199277197578283208540191298368819656158216076030142379794272030315157380695055035043446674087837049993994793393005939405743971962457452848654054360948169461448873867867850904496832865643106842566698318323643278400678728812490388703794604109104402127134910256551715455233456260377004669230626612149174232431185755997927299380428810863049807702014458088810304892280245220046024287623107556184766808324725091097751339237977141411976669901022405867650495130198513980740866708897965432237025725714455997795068857368044662303713662047269302154134768672347864333205309773563099646611907756103379819371069449732955834385796305933653442504637405411165250392781123862869694364988767229123194260875523200123768513896706391285635583584883472881127931280626847374974705817017004324213319056894157980104758502955407578673792169677076092420238941326244201677202697744583634210907591031977033998953808407456863386740552172721325069290193519923257200943015389852843051537190710228336144967797207668384298941462071671856424142777257926933218648467745055312648888329731676854070008415802142470171063802044751588717798228736577011556621642028353358317291970983637026210478170693679010071863990593455679418709125000729842228706581307965639110768849454546436628109742137603820314112566953857357019658671330167204898415722339601787081676104446934281249399032581636988837726733217891141319316288719256877589919705647258615584203456237873730197450207708129605909688475778943056680078057657194784463428605102114210103824992520866507310209706344918420842143630684927007956859657078158750896931160359250868511962348833080736839029960328265921244800175870329739242068007098005214154902503964571067997502222495538756872966227458501634905333866542471880980443084077679478232311704111411783710260609038814727699766302101056997452762249426185815752053313207285191031276105930747008540669633218236382855961711700088369762322889446348717889335793394909032607258884086053426765307507066105970702564216059469666139970096422368073265063932630694923061902520038185193216817980090609449988820854648104851056875658063428864020331418994193824124418447620347622853164077909482761184739457741011683717465665458257397723650122781202214807762286547595824850909546554724644718565714768625485886174609346894011145061003563582154275740605976001338754549882800274046943361346887435314003990597900283607511204464635842160275404753354504755550669588150536886672113213705235271439256028536441221866570238940850634488112019708299656970459779398927821826997774675476584924076566284113188034157267693247606499132710210433350239726009747656582546007499081320348626078350555074285756407994461514827462303701550162006829872109272473930272116843805192974346449791805307907119632719753306459685210973055438551175084814425754589244071252852769991760439723985518192625575804606708453688680165294482805168454324833359407380044951907755950547344406748328527019106170768751097122171266104745684182470014563158219469811000243355607053947722221745163538872059418776200302924306824445714898445571240912111339544927515494766938792029309020060812149454046700083037160841574414694494424161665916671277409189551605929435514356899924699098277192960538745142694585470788054034006583519315399217197776925158309600478271324794387383981964121006977606521652156210807995381355721289858241938815503101878086365893501993743246596489849227449967399369672775533857866051685709431011804304059171356999222787940470094496744848907113884656792735267462570920018768139913159291495709795104555299630922370769233589202418940083174014415628509048310057947440865570987220855327420019374090582614061071545224212153069200087713279615525126809838536104952000668800272138520751308261502606288679519702987203367403738121203246255381908724134881360597275193704498782526177670709163072974395025343221550747026692599990849646621581622881708190711032243870100765388066523787026364076370596507909878670562368926328951134006382319814381085049352214368361764171320312530347582369018904612736394188488314309156769988289906089009464592847059561641339529851860327041167099622603485861314202957114658467466501984164364761321217752068252809908646096055910844627845766225401033553128718087868439890268927942516233570686302024431074359897052933786059051872232160367071909806218884395473834614793610023925364230941155640625651438292790820598289136183573524880645542459998234636915565360604320602075104758713952806974116669396479085656912192346806003627136287115650366195377184869825566938666617523944793296970708549948325076464750317542735200099069378032194543618513816852731990087635072518884529004061540279531197229048255806535918100036898168721090424977517923711214576495069110620190265450110980232326967628187205203000867767980008793056187609043959819534668353662158553232712976693158079370223307316794528000002395697978288499052840040616865402980584581136665741380070241133988390701232729607322314381898989763052730094410758368234810068139191653651751497471554103303929401911855815803499457553306815055363084196924137060412085566461672848493954757812571064903728127549464478165562158164750406140174409647315066617748373599929442796099338801865573744730758773619705805274315003693487208842483661452631963357992717242586081494967609198521432851216301432316705110432739056913569679793929176428109582053527869434434567952138457259911030060935842263049473054688456257224537238290849091441027015457573312653658622645773557582728292116209806035627970380686281036963190383450568225077584572551745284796043182836842344529821457368762369405443369616700033205788416906998420130911408469625566223809887355489685242932894604927473392302439090723549100261762561574857290796556815468922970087418837850753520012171784759763327994048499033579182189882353481770120431772191484604591025410132555844983336338267587866203532370685322847638540334038201695475053974896971850785305517992480323136809061785736885789051097546807474412484716992027943618043928801930934138615876825340457342284191261661695291063249253743818576773488893282498438968225724811784270302989103223738512050157747712695913024158319746603095072579744740453188012419834925460829289478222892850503618994207776389879765838762194047905381551481292524504154489509675878170002876361048055872968206575777301060770517884202301324091695130109381114567509305762765720482251346796758428063609916572852185990549930769143947274889692586353406711431785268637611169935258433751497321020087165339414608057226247271197716585493123035858627516052738968204494161850777578879696872437262802065965275857699445605312841020811883260552261198325472998659134852678445280828572452994547922912681107606388925760645925367386278915642540113032337505036353597169586964281273976744542778182694588290215506257476223879023346794384981171199186091855386044639248354062476311391919943824038925989281245338464891135898040974588141629066717750279433000436407582454850865175903644899522008719445529813093417965851690243757665615057659711733740015171629256681809771239433788138519634460572863933577571376891012877449714840754747921121143603178992612742035589555709548319651953617371093044873695180781880222291983441937437689245902638324418803321613189367136979717785180495980932801377976928603330868543998339066055119425388932210113344870837611195133157847939412468694141134023760778683359830716266616361762164607552070068263308351944124279383053338680094814471620293005127432901473543165609430429651880949172353155628081048501886128323293820422219733671955680914055103789283010998746234087040289873061197709681850087230612411037545605936907928611668794977016042848015370392864577743319188455244219655705113624897633802133731436094854180511551464445014961553861638152514225447986898531015522401144201622472396427402253972106520017175182269046895182768345082307708378211687593146987544165829869310451869716905056330720519537544171334879602711168159123218472175231794682856466141075429760078121186836048629519349338754782065653595570489353442617121687694690433598470722573962997379152757685365017013044889107705754499790057557088310027440156166311580401024205523510800836050833517628342357797007438105734947968720938375336541703626491951173798298372800768650672116202032563765765635614067267494994883296572483434936964469639022156984133748560303354092463530191213045634920421951012150114402595112792062302938584358424148829721265589315590635690172360848439318410626774831884035994957620655685791720915667389200540349464478981691308933482707217066359887488880279679773627394481328490574067894446894091063862896810992820052684155112382563590147322990527925923324080270575262181253014272581246354180183534308396950925038445860734639419196523445144172635427246201197642909654785601908570920391507273517966170143729287843650573894861853056553506857115879394001549348824772779298643915757046923755893122580747354246118851753886810523821839583244671981722288862360072514013347576697702524177548209595568052156634847384873039335525247095202099177412474278497640622889646596057202498389559948027621310805684307039961800694558108860890996880458538723214536000519773944445945526871042904336392813662233271539148256173790965090068557544810734669139844980141576972674238749005253408951023534896014260434248367785436273453174194241870399221526205102844720363660542892397992710190709718634117861164650057066118579553752524339366793550594522100909849159926485132140906910859211876206416714361012118687513634622046836841640784769283298048014230425056235044779541853814877221105472319417471146733270278387901473653027672765803447568477286617982812300830597358124930333068548735534154892879631759745105168237079410233111351318293136622023984365527937730646296785956820993189836453027316924292261289321491286247808171289471079158759378253707001419288862934550215468987702416455375538545945717470182178687091216882324001354911101407893917838969100135989136705555257759501125000597107300550024495368238634798830881885102832184208599178060437690658610742855667713401934308139897150200674117931227277108622021860229248274572342227655515835479644418413046224877707891220633415072673037128618048310430552251658968206091832200386842279929030952726684688114694746247086091233581408293900588489076976229279874247869269982753090737000086942208069382795494155298262607801758980639732102893247086124342123876428290710733754675245825013488978061072987912958854641698507388513308885100857932972437067109370177137294947260280728850978013418583274242204563695511521027356200938762955422933246094035990464521469010018424855500807470328580365135352758659484344114973088686608865697849357194880141660192789749288488145010026577463201205326855082096672891951623381278173929770883846875175293754971582404073241873041116538226203298439446437185616695318503082462578721802467724809791325190931602884860126803227837764134528737653249332047996942892398975983611083177113381554599192755806504140797573396599374766762051870917935749615965149694306215609520092250956769732317153446712510494696638307413600037034021992393258678978722646366227165403094830214043669474611875563677085861276315216443972808360381853159553542698165785540003332541715523213954322489011357190075677053286705845034982857514972333661497859581803636327558182614818601529014388730197599331528334029482400654941304677140778939435868600115271087731162159585385026562321432462137520552926444676795597610681911936862324688109309229724188787985476146480130845413650841863487570967772694967027631893980772489598508365689080083660227694421368042877947080251946731373134717916037624493488580309020774199436495167822769150602503715148040564657857062757751372301667342942717888960933449985811634560640395141952278588586953226197585489110587520595685885509033878854477818114322736159736723917785008262329058034334044310240356782385679791018505764405623799815062284046111898334127974768969311887832352979037322411314762908854815175151805801860166269896139890154727484070325277138568228398949259399002970445969699985642781360835361239173122430946813951695528893114942685816011547903227139068334211507386823380349924160256183608971630489543948585373726312452901042923488964468091490568833016075998154925492799801670803132671817757361374818969553442142319188954068744039753963934085194320073424415114837156692617251362345390582074684926472219286675436957749924395014948669059781040566757952619062016589587268366230497346855258299521376046963696364951007169989303077029078173759771054700489471945977156031437914291920996791754982795576686409410938304312250961490611954312368165581528036180476611117168258525847182051801093971140993783055949520274318435865951367687858763620070904581850231519540292719576796541706095150368596823176937769597644444731334577470997508726896357280649773426017066787026589814156815350706265093828076044950785031032838743900110805866683616233178348275169820999443213825259410228524867261945893861738614671219267299662219070851722911630943319974843526259062953494218397040871768453492729990855533402488750170198927450657845357239365255753280835345191234358621029823838309001190740277087147694064805363289487783187013233078250178313551447084531153386163622429793323910970456522635761122503306836936740117051443082882385771114281385754872095526831362995341716625908527881167746399785396272333023145778887047605255605888019353266957506684795635542641434620527206607789182806301259706641244620897757332225235503938589219722128448214716617098642248333341195947741070376343763740113148632559772890481991566586512472180030746279172644312765114078192469129272335417032356658132671897253517739156427493624890178550825840034742977787782195327814283565181521845559373867220386491526753587093737757713516737997664719075373973690587819161128807309875048811095429643478172894736472052717296388402290481162489629427840061416437427875937504027243690374908259849371515894755138783391519445517364926773794089048031809631302808056292027175388322628061032554415745529426782914804598230066019391773863701382156721420231792050543962858129366613426615829805444357626608724967105862718616823665299687061483580570226956108856546012312408462740043383007966886634545044570051968129386137574892914537983536158853413212186168203345678723230760299812084283902942577293252107347916819501437232064116825898634225199698933459127761794638480462854937525030758725453503310821991952389797840372203405961430532730208889385673907759815350089702430972524262453009184000148852706588441158678097580132936115588581449528668921043784827653978172740843229600854464226476121931898527607086661870158819456460533348029609496813893020618452086885661615254386313131874880770862714782136774176923415039650983231020736309602663988832685999857040550799170168820342457415735861190620555434895270648930495315939937215408754145710557599792557759148540491277046526272379897786218060497356123292019041825022914308712217918978509984881717818126961023731536442935140747967574377006320229613373487066719020427126749376376928522446022628153001652936316033164468778933605922111264733611255103144926531661577062826001771121954615087276357404984053287496902164970782547669493292414120745311917933153268416721377334012903426355044891450969393007172162363169419418270337636916528849750404145819785541627542157240907946961327638290096776206023715680421666162506951610446300391215667643533392732477567119678334684291240908612786618259745325547447760095700051124893075708478311482486985666831292416694177712434202206644581014901722588352721661853189532970342885189740352679509013469035632402291380865931673146099520596427154036875515129406794763139940845496284689514647558438676609612343052543684428023005442386158995963265773943819782004874844899930388394223133642993270669834865419691557285994647462645114760820295572118168799488083486113923667967498667769582198733896050065235132390716943842147416472789081863743261543559152112430365756229754270527278288259916219573422834921297479067896640442147720683583019752604618042949640742939285854108634956114249006718985579665800281315662605733482084219252056978722534964385323543838390472048409251375495724414063711544547475569203922013457072183887652115139684925066229720801621033552448108439528724046022952721045384010428694099144000377258879871093083693603074136590971890042621902729688700495891864160069716784813232635505262890361929882603656893636813460196036478597991978759436850743668566298320506010484924105878808475894802003572477387438525453093232683602472595158264534403016141621523657331179396881142382371504288544145429409388530957490032270205910446522140242592516441361561314362512007802956977490031116968882412364662384184677503019026183120274797036830611448520633957458170344781672745230404125966929303080336445767143083287259074968669713989734163822922106131769304515522937758263211060112328579022336035211803884385388277149334722593503022817687840391744723533147709160063024170637998224027460389095193314612621493486017359981520683759813379337621527737783002448223442864258101175701718889439348512498914775188492084288629446112106419289170528951704775853428860034530058121219494802227796346579644852536133717805995381842486991407792096139854395480667217832165592121270137158487410883284619478836976343558333302560523322680846188855504902687458188290815016903762387279667915225337534857582388264317051066531755471945085064062397864101076699612806094585194056074074945605843314796942461107439932094637475317663198585782571808005301292420330482736582977198244196577149919313776354696956344097345609536214821890975117855968376499797238681042833331021206958824753053057780242505320733687004084328977157653996719296684019691888061782290467493660988867538009113390849620618738833171389198625490054847605679606556803007411259903446791009642931456346929658386643772464592363634610480217150833306122923931186382860786545620406575027950030009210693144567099173419836321587089854530579023730906875971314001161431244727307532759046427812904104651818883376112494123292305540005976508906237564404981313573591133569372285863072341526481438147702271946969593404432590923790898158582615631215879286166144609753434816383863203939872497186027258054101537053796849233038277137371829163205749796791660825843377527881469696891593629205410860745812007524487530357038063916721083349347311890203703669156106527278221009688403545461979265726356010316238100761100028504903470944809443910539460013384172214404781492557375293614782859068459772227309055008308507727860184249141688955685994232608700363953008850734336194220111423005908012241105920529968336986042163391890336873441505715464232508310030571289333320200055848832667325962087744812355287734437583317568824118730916847748555130497799219258294046031364800218749927048523643861855619109218587294725995212157990661003710284418832733028626479184074658834629714954891859110752740639067191341873466641719924526418587714165134243737627416626851857045005667384194641833698161088411959205294543592252113159287887599234608226627508826223630756997024377550381765220874134181912298676904808834958741663706295933895607099670564585297161942022703750123120361554701759401122915912143837780777334763602036153172237867823665202689455827299691684602240913141187303031033576260932564746634206751636202404125135411857322050691164154560553357834297100094988470104893632114283300246487422277893131066088540083006300171522701524371821013085717764434012208414263816041868192439049481205321747952212846772751431512390196415897764826858333846542006007358569312042017081231626490301398721553054172043644457451288537765999054969501383191434103941881699150811478751084396655837539809074182493336613797636982794770728647860998007243719048118161731013110098579188456561539765475545792511957184718701686833805595726097040947154512734940712762415258552453219891408691074282645032350956636712197194245186474185925647645910223124497255051569178617888284820000190887065375087263115516588737716831128939716335572364738989720316504289651797775559922888601175618841445428009749961705598922053888118762837420234591478367409461780938246762009307669989181479577415714066021926744495105956461337278009240387013267662342572016453672615998052319346404585861842593147225551640434804017324184951595703111416802359981220346961586880353013801771848962555146272818415418213515102180866028226129634858572279409951193678986262711500040474497352850322031998822967896085781554922791409982046901437931846192543658669273127922910424782976882902117700871091323708220408995857099596124845494074668491521617714347931671571577527210232765963551297053563382794899274732112547155021471543471328003009728198831310293165522594107446049034609245507482129249066775966147833358247492171826129049164973588961838795981964396588260932108275283692359679740368258753458467825458960546304988091259957048884851786017225307018097910218198509416153804514876722727303066257087617351242001723733831592052759920250827119425834534326380846469384878351324904736270332771403074725247662857998476763982383166206028093794572554696949782184266983510812770108366213381373798185956875021619659167096279853356013161570147387590627057551093303885597302432253953129500737779337965974500548506115863204690103647870605131147427606422429687913316571336353768386209782247412171355352537531999942083397124765614031136608940312437611198075064601320989073912225856120451996696973050950215127154830662827656959433826852443535137288144400259240177788298801667673755470360432351489242725770224189197842065515030925585675028226145325237639583386950568493245925688424351173426847932831457627325410427882429028804097341074614032221738699753437602496107075171965407831250459159929461902410663689181692873168575099617084083339096877711593797208045930211466494230932084483506643123623119659554174776004824792885721823590038158133419418043830593310502728493156901749001561984780373668263136166290470226870827916036880271569902448442632072381744992680120985326059918134372350709184970655431200257155369502256587988962800287146609565275504986257371943295478038483250646350307700736837794955645440244290104682726476707909526154427590855472739868467160098663922019727783071482705313254038528139508892921316749212112934102566995087844583733953644283649086260743760608739648806418920493161684593134271654684374286894304158008113478757494025510340274200131782604094722541693220140966183914181692978507757904012396694629012650377187412379334280502973193592341161977892492038706425088529365273011004408742408300172681031194631808570459963968717333042282089725551991387027316981071738162678746845538296709387662766529043375565609563781583777768313951186278860097925381110551945469745441261264510768214260777812780853287707991225015606847803194012209728898566997527762907381844479703686083515919485896209369041068549337598344200662257820919130341372921442038651050883227812800445064854629171072305101912317505552288471763306036020355352407233697843410989372955328062228076907651549335784125575427832854021127954103816683120333147424666024343900883640657321472618001118376695361555626647495722659241591143896176540827679697713898251188706380253831278721925559902816400161633184865801507704570112614351399667481228533869489358807477263045046982090933163458216772583700440258215180040716045219597188961658326269049188239205513787101152691696842799164183452176632457593910179153805510531315042188053506007956626749816135239659427751553112448141850693645201952583241451029618749189032177284267448072862316928500208765477843079304970915988370727999239367334008609140945116897411381199980900734068243330552432383364341800030998116058469548419828068486057231484504247477938117110294186308519500954210173560130368932144700630378757476724380290001462104865528948596978298686199053542035678107503054760260110110205326208442968496492679517611151676066449943574555448856699585082039952898956954444919776753277905199741410699263587248075539774618669135562378276959145829619324309862808154762831383087210905733353612904810138747969383760005754478408000539214897937565742008777691808373939112101782282537564939351165438469218721065574739984814477736209830539412928989864854686455889261167809265683471356167268407389404530240034388537389607170931656936351192278428642969398527394590155240268915751139678603880677055645481067884806866418233731526937207844439832881775558525390834724422454760798590175691724815881856835844418021643354164007870232121195337334129817069791180265388785595375967487464577172905540665148576350990327635357745209226179694036009455265221592949942232797311408380887323736850428793050160185138924490556579800409111857003312218629512020688916579302952824679920708322378407976308980162085256184546701049317490563752037306716307666237716778897302737815517981678789922035679627540897250983648637101806770977557963164551679504667256309547786843435816556138660023093143864672760051716296226068668736369128445568989376907211477695065685044348731446474226930875454635072192083175916845299800546538077919793095459419371244223272068357198326280691648196920221020866869995789918505076698594518278531543686469696001341500123082908884253251707034938491253882185787796867309955487675800261570577801514842095870246780483628623305950792148138307556727012185500726792705658597680743949198304128797997235277155333177019296809182087743207539225444250998469624614170860524087466352354535804431838977461407067340239296496188286817980365350986777466706820431358826481212426965104073643725030660622830441573349998580097301396863002521096859026604380696653822727254430145475881821467638567633366677122874331079104459409152557824382364659010904271923394735768679626533122124124011479889364169678820637948871163387684896798426587592068356640501186919990584687899272895689476353586205705949743700674385527184801528916880659501055265319770359183573605903187777977639312012523900869880299354687426100272419081578732417892692856945643855042593590162613351990205778092785650795376224779056437934902722252265207208702217081599271429271648375861491179158503185976733269870637419778111672296670025577127655027831658568065734560752206621403759799737005393902230052670349761885700676805668702794967415990138082664485461779426009067930586882811604427475805266543444491483600322428866576226024381262743050851363126344480436307487813263522289733826438732328308272108713346412159945463204422984209318907530791813560770978426185172326320341865529608751435295168795555562896414949709296279886403650748815040320384370715158051147234683968608563455306601987167930176709949752865004098486126630548260026487978774393604437171397303993640268844491117639484273596253587902935914134181069476044250268495482457265173771576663746315807523298034590645769466932375838236448329990695814860574763822404715666694840399341900183786504069158378377498546709409760502812829094941964572063224379067946784936478870356925418508360727497244950152486891521256225741174710533055328089094025332183330440662566016092191543985340956538091707287507493171314217791871846557591617044510760616083650597794937406949366152749904739736551188490029762904358197897681763583910813083240934994121538518621347833068457414819151012095049203783098968132719380255936954577454038898814063962467023044658457977923018118764891221885149501583553099536376936566989940936206660212120002461935756637228966977135599532122874008386447745621082185068577039604742248646150211586436689434907496691406468283377690454033319567402880250790551792521269968302592675232861924831410063839372026683724439778956980636692827062105556554575045104806640795894357747523516020865192914759118986904083237109910664020969209773871632237888773593906196751549569458077236806954439362527496465249226393127954871671763424184114799072546950424607021548479046543305454736488731073269488310279907992364115724072331194685709399459204392644215307867689718530695328565749795310249133717284921660117146758772778525385970013460213793953985581605870776757174933329829302599622482651576602777440526569970953170597267014789437321698666952354367208051208637318649821501482365387058341385698566888088971381730622803978993969102948536319457805496986223890235372152466108728321216948919804922658883258973062236387276122723380715838036421008282443010297421637393788923534015156358993359428465958137498267339074915135789395150970531785369829329311610505217808796840728344655241863898043210762736451446811390398845557659663511056816023745014813282886726333545547340532098920037948874336690776375425205167944802436067685669447672530554295356835690028459779454980549342151757585765113110509753710494314597577186689379256754188283526723911968922042355413158837819231111990260617460261683363235126469302017107938134845430808260851993292879136433062537115138904082475654448395164161662386623385222239157107786694993064474608577259611740754776203863761910036846303195337238271819306055563307552871167113309297216821232427918040879904318797661683101439243017255888763193227735180570083120218450358463221815716374664575220154485994044777660561029853621774223601071929462150622070185366076318998925379517811909268615694247930897815419447987877620678726255497055833811753048970169285411590850951304858355344648692408575796099246678196621475023542028313476257996661843157391822347853184622578828066051022859276094386969663573157872151021652878227947524335376773343990725540912672577293486994050629282288307748000422639370645577639088628124849530960890256664598942314830779960720107026270925734361355325674432129614176568178878843732349874860034792111415388956115810974184907213345640959192504776930846181832176536835488983937059913332583869476985300507049810069603089433420842203447924361974053753979558073493523299136561087354890555025330867377616353236515221590809047582879332156157721291625306452399984156009119783611108044714925430165714546230720278450079280011142398374872069758258713436833400019497640687516997684542985475129054284650216402334127669813766375153355882719071618971311025706440895096189812766065996874661920415068551490553792676916955322657285224708537886448203586964334752269940313321403755856956975474082141191718121722502357878051239323748174711764645261024781988426693394963491203385254857195840546056238704748936938762894925245453232020206349267971585206350637991316797916546363200288331225448549301348728102400935798532552714253586980359643043780938005616078784823537281210573192801440034932060906160352307362190714595119804759929166808726534950114973144216278643511081241302351722323307228568187584446548858302888221450831546568506143128641148065641925780692263039568104213336466879406286326451742588005753094402821930599534643679019952660416873907461545630558722063753170527602056449128497641797279687208791840296149184108558069340747203055478190429216156363337259846052193742334374011884396232846254535665878659245141701849643099078223975345575648548589208814959594157072659509785131189670077745236293427035842011999461705024608091794307989012857502187924324769310833017436660855210613808039074051267222333911052661690041884831491286401184130091870320993926332022603217638369813490398909572226525252472566875284961356511653730937754235573434426828789444756809120889610885291795392481341190347437987028008585837394583039681466476585594340213336270834033783797475061316474290786551058320365220088417926977288765901014710151189052655137675501798146488604308132898338487872040794499789954511336293242908470673469913297098875248457221137917856560758440749576675474555008446500213987279477218651474864243351067233102893584247893258229960324706916737814211172516430022674942613784656765385825934306258447740321189980692067773060521073648468948193153618048787621216054588646944886843507056105847509336860196701801388543059283614584889100984027316093198332809033915017507522983335736739837212036701091973479670603209192012768521949110640631499990467218114520461192104296511110395470031132025061976679761473584856798014775559127275602024169134880509397561841942059415987554709273605834581321785315575382128806389562136735693330233942319781712124210087358868652432915799693771464392371923017271185345740096331376998733280816489336157881957131553097669169536568579296360337712078397597239869997642827042686210433967922541784824272065423872061319730268545621315488762687334316850150086360197127482523593876929829637617721477944287591648968669529896068978315590005655915149725910793376707780679570816950094204622960123349254816533053063993869050524672397634112652104277037837584578005473847510405299462545335052321915235218264508762966838781983619557283597822968039438304406041383024663803501759085762613100236292387933789490945154250039414644065836236317857955797295983661978325914121375080711001978361178155698620254151091641291665953548539396306135255585760234612709563667830443712359163765089107024576950336713998219948313011217398309211627623068082763494031455612963733835341326619883051808979655427732022841784784423092335175213363650173155945601486041607072109571849725146187035194975570870723991907743300338962359290502752795593999921343097279941895235107931664676299694108749473378448186370512080889889274487807911934633095038995953329470354626370205755394018293468147145864367756476990175750003628600694722174901901786997430503014123878410549860281296226644129219834718286474311855379896582274334991214050853290305321800687845963235256771870075787414052543671043483982650502828044491972377742935183499490121836312015178189534642269029562262350768992569855656303450837057395039690753791836026256969177513702689965753763480674228834134074420966056044609269468171239564201707495324516443871220764846775459329922200036207335966240486333629765010563233214970119651672954712950374444135720460694278727898187395042231474300171011916716469708891886078825180912099408854679776197835877677206328340838521939520313050746394861925315061418672266070216765613304192668929800874654770119543571280732404250734643836300882120204443572668427389700378462158018452264150458676558613693694937455638501806840289170035188845228444310133022773475151718512499682766401307886220650966045164460575406039318959466815081768991812059329928820295978238585001180303499841477728203242726426598264869357813208005726240728618230787702616526244828785725659081070721713802800170355255298286300898938569208083450361935327404014805605450576354966064479106835216545660448809347746701868932976052177787315279740741152045405718348378968033889636591610697398654727182022948862436124923072170454399324207881540545484410386267968671062207822413616753104463608341412757357111280907012126610652716714383032718004546130199024274842938670425683745144246947890374250279774847156824119480342824324476506384982875044955729472107698968665350201855265382704354511943801247989237294913587864139888681038296169975168948767161916415456836336404843421896324425212019512007148530689709480285738600492714812922545141200343767163203407559072005245395172815309780282281789401254407982087432127000365197064144091345235934094495554783254196397411173455835439993610139267029121982042414856065722369544172330835309208703151070685356916087579273771768669572565153914958103447787978471604380352585153750110780601242353462439309058355894680409349904340471574200161279461559789821429648323727895419174747909911367542435197977132821720537875245779898989545660234394046246163704469861457102673258581269935300455001735064827577150940510923210303966524235495327045642323868171815853146772105717699236755976515718326546901699342381177929857436779515446112723585841345308457878076709892496400065170110773495526912064983263351941176999487979659583316747188105183848779113593320191235530078106047681982153606520929915147602818786903528894484345986794091785506901828408924686280348343274374911830404272767085026182799732075218480464382776273874955768260045344657704321665866394212091995314141115200475903821430712719685054849836757872899423997123572500849173240588918808771497445032742943719541662237068343740233469844912153171414121679774374168384761668153383756577363670618047837570662529441977329019380188575177451819450388538137275417235739576047443788035281347411727066142563634301342382552794908696965904484768038995481228548638179883860020974152593323810167934529200090916486070163577134649551823659593532318706188575552761673110330708418017799187375226183613787263008535296843655243368702112748704755643408079852532130522340163626917507140568519480646092837301294325216331144195891975605464493782951291764379487184946352667091081462711535961526598200301127331391273636836468374581901250413359311258858163888386825159454660036433074520206361831099527368127182288421109998145602487618385871228149314820752877716246529122923322019517741925121761932620898617827437525070470332547216475547743807710837036072350845744672018985213531834838789060862034117413116161712047149054788441031518442391127462173065391061439508208391213474077566987790628332449726124771942704520159748454410305508042216980266794198958887200283635225036277289138091657023856106275517444099421437151808054151949278569854854398761188242115251759488300934500327698955452665611961971108740282232288347357454458272472311946669160624855904828209251331244338454457793029930316502404696594769109289151860960756449621873100588017696833234519383859436564222659138857900756993701157722538057053287817880311327259150893507908742556298254574409361590705384715598520765362811011626662480631710237168482483331000395579002710881322795987587519373793031405578222195570348137719738330772902504697161423821548474229665621318594106435498466026037585090851250473100151070774093710495593686328838136543017970898955641674271554223762839458725670403011684195144481740580713637998460664657687130073649011257030739565326807505010013886430675156710665935798940017423261288053453136254207124834335247946282088824966949424315030563195441514250356410868506946172661564528357137402014686661500122978712517736748541089779284363026616458773296253613278876263833384904688897118107269640529407751565408288802912311995813281963380008856859764166987605292661291004271364363033366540936102383816522210839471114558966502243987009203710811754802878230514896143571524782841524311012253971468226909195497455655255077205724643806339363773810983863043520337679502088086618455314018063394112629157752773226169282723339902580588660977226081133766760794283318603716169270529440026222295470813265057791276519590463890831243847467718653600664432342778793060928533781900950469131036368325958256130617051768935534167025434226693696639085672931480116464970421502123886869068493423629274175187315457768861392075921318128238935134405909243132726875474259410567634201538263100753553614316995658287233843759968832990343624402339141465123026087551401346594613231403430692284878237652322341465389737078925272967182767426379577779770920297181585842890641044706986929397300925571608240967631931673498921767133396210847006952620864170029814908173894723239257236831569721305533411371524286049156114181963210243602218857184814468810929302358370451768045363017554716400275521306959810821866550177260864076856085148918202323251826882612727783868069143632780182877691727118162941048451338326681808906024481730855739313555057672199934292494323343486110883083793113496653564411345761617599946124867217508596800671051988937248801978885706823045802412005084528291175384382327810133940940289841215246844980019800918246162247808096351716995151825906061281285806743967016839585864022313584084933364868433119140856673400104440562277193414259704109735456727661579753204052692323489720863138280760641760284903544752917555451329598537657076422073860394362171416313055281512372511270312003827904093456810407497731006690833722294290437960410153681109873858206974086405681158691485510302667958024086639237763061085700026861493384294009750264571127093049571850509104808439511104342763250056861958976288017150715649609425068744835370730829676220519383562922614317783271914973352530283882013628595751098991206079838928375356958459247016305684247118949530844636726676656154793778159726627434975807642269090033775562037380001455542906860724969009975501994899663628382409811846818800963474804008285304683188885398130091346767556101878010510584418146409339404809044361831700881502365290778263502863656590497980036083903220328058229536781229348670839251682064653046432931925979806502903111475384631721148053628017204869569624144997917528043249169235315091943496654349177678644080951394954137419900580357376685368383265170701901564543256603492367241409448220269617618074547701286235012080234875072771404742031719481785864965873862049451898185997584188445379352260157395420046457562453142432403684930984481248449971508087590894202494033890874728425167471821116857843925181913539319779005943819088756939622346822707048589005839914266430726942892043667151024260118242493044801415073030553516893376647658288962194928809376710241106469222600369059214242979724359133936883698918082607702017689394687014046902911356024845327225830867467367814679842352754527916548661304221035148927227248935899190571736163536144572283156843883581962723382946577186476782706541402002419001082047579540089265836651960644455043125647394103803244237070198560841531711747719686510732525795428121690125130469921196707086795673306343971208412630340424189473931158091075763331913640245439052618627536207694849597808614234694249808373684557738592452037071734405680249052078512827142915584150302244647926409417005671693961207633491620919946568787813668895992965081252728032924593303240452025266184301300638358802640925793326365191320919439409224166012229214482054178472954598069448600922953950257507270743733241660457961090293062023877409354942139996514947960457297378973568641552171078786424249046661896642752483213017520981993747579776720022950201670976386575312260083514705875391796548494245437060819625740842882717710319466821140802788065067666269015533737037695624696833604551098926623457398809724667370403644845961389762156735973774968358211789871812012148310917485673470838473533786311912576668781129170327770309419493402112841365697552627026053033319078920924956679849999495738512690468625070247789600250658619363155251141063275405125226141019680934441582884122528938815054833484793921794612082777464556837992366852771833339123241631718138191635512096043670952227435023371333440247034291740704484574987245394002266270508312420462516062283545175446119871302910268873913059725706135951905200943203250815817826284459576803822738860899306749550218072743515874535534070683199707829750287496572494949363525692188488472040218984015131374863195869153973916455724885751127843358425186581854982659481027638343132086743611392214644606941237290565797716412662860477353224087244604845417267268674005040230912245036599637944401195367273248293281957320092544939802037259372471764334844648561651187145741305949664850326164699185941171117938084206331755101154830561237228852800313938452214379995290764554090235547333011151818978439930338845469495838696346029354737478248262128787126190430403524121513023749003600436022371834652728877387413362319687902538231854965430408589583095748046570521014591320968992081557792539548032696954997142044442698445540385344847760541781251398877914360046136051487434260610423759143233252243240007306998725406360761525953657897752567535131036355634659173894962817093121134842743580686332892041281580615162949574424205069386735402430801691332425800573457486827548085526207897995510263563841443361091161048885897219288244070880004047107432901465879461584363854838150867590506145322389208647797108451546486970322893648185648367635395784284189774339819767496208442747215677273675339949245700714163183320168717580378466051520490648702665395374757940419368257665747631000684435513998127903258703962833437482389042476589650160885145605258401613218534092782128452625749862615315771660174389516226212935552960243244490343040432351360805615102024370813783002097952820218992859660306050796786819530332248703198707645400052472083298628678052213507899608990096582253508061759111333345542780638551769200438676446342149041545227893661429200282496333873103750493103245731775649142722454693990404751695625156635173795612986014187162581263340146240822562878085421027812023011856186497343926561047466975987390973410148460039376037598788295205905998907276381257319504922234390970639194040199549662329272276807856802898080042517043046303703152939097646305059355827692471074805705340696400235824443647201289850228939861098952097304175856023063658747584960580916802157007168375922938733326677382456310551979403079724094129634645459414138907301349570384992372258544018678243554245899281756147730360447884094669423618505034217830198540010024459414963093566968610245170102865008856756667523107942921317844117955088542199736990379230030418844301636849289475647660605397758166086919039131224193674349823990744879062095392577796095859988783970336440840252222573429476226942491755172758272367466116624441190787422970178061194684929920807858382983047689453873318322014145052869302266226544010748431372935029356420749441181818685808067317830209679453403408174258053146324462731539332744363926038867465063170156954667064024612147472733595669843995173898836523596968168771225740262328018325716406258019103690261176118642539327655981941783544645378703691437923472917421652030267348293122763041599894914357230124081419706732538983721651693994339137322818248582365759470130030194003402888217475894618749372662530327557424229237792041423329505266851356133869254410069449005846059305926898522111339634168598904043042115816766172025516352664434267904221646676914650353179459745822641523331635587124126375150569299654594495399380923941243181431660474307511794393730155332366261736012500413313655913685357727781118708800202128911399710539298651463358475582821285162088266388472026900397980559284286021388551774370292135938345006692053462407909124017761120471306576368383719711437971788225945872341827465251748910689856551071776269939789610384996092157579799201528816929711239640613468198861753240205860630131475203261838597761566700264211682777300613185926657813098251946994685999539492682237361747130818403880624416037638732544504539440368897837593444640116615075779584281067923685034094986210248654494537429683461260332670298907546539715019324265472358530513560589301392633421990081970013771907077500471794958432166247393644227575168037752015623273303422394269941034532932871084673984301825904740136000335279358648318759079015014582932604428400179626057780913171679697758202240431995322747570610046317111232087114491873288861399622546910931595157973772240813868327256186735896184649265755294531599678021352462080704125719204817475724558412975187069708334837603675533260870122584198759417289148563278262256481025850463312139654284357428993697073507310564503416947298835334690960409658578203801072183018031805729888094902750269344369709369902849554950180015156463877012171905491267966112093739713147421188653298020525212924392331922652164318869431595691095833130507188766418478313933400200618847054844057382324914395293364463075854551316553341319137695123931384989097378524720997421635506353613996942277400016642862479838507793159198633229674911398377991994794321927506254363820966029577867938853829683056776323244950438600974748543885151696726384356985876773712460386497475398894125959013275657208233127592944968028556274462541549572594932251679021698924747144944959065935500539612275022823823961094723692993276700405225358698385632845798669865079312559906377952107511039479442926984930132405323565306183349035581834307734933941171009557511038654985039514032557765496578652052892933988388880136491315272380304155066063753378217808251962393242310607429594153229994392941938224792792556293435043804684563269631126004927310141875742266532598536742375198862341123567998572327863898340753828303487096182700077927331633634677924372715965624346155109452070394020930645492424674348302616402845128541168821983556738551499227235584217380876478579942370448540323325472969137871899878662514620944645278914460703667431009143553122661114559959617436180444453878093341238690436386330848964414352810951953720459480878725416498780028607579346401517066622860970772628407942463835355438319318994270160835507249194568016340572019794312386941136072362861327331372442426074441855119980263355320380097129518921477161927249849764011976000474727132421021594997053825339531389020877648930177376977896814816507266779837145704091026894242750382857405943763696074345127031158087379248127769552703355411634720117375631976625963245860083744224895176644690792113358925476518441425190701789968456975155925966308042806382856937359963135339089285884419444936957639785886131282389958820675928281140211068197617930130603039480410071871197485675793740042216384320652534967813024475721699015470729561079022353903562867248015845803509845914816299954236615018823702019821936754147794580619977500995991095834241163769643123785854932593993129430625629961065086244828442063056039101010120476418920983426058341849204887915674686514559838607456167997305400213885334259459815457992443182481082292426114285788963330268911522150160811464855158373879815533452656027493833308950536234975432166597213242949931884586242355001387084403581166561278967210967666481958217262270460841714862097898083743254367692976231307432406339750396765206348997427305657527479462690548145683824693467042484040275430444983982190921243221709390922276751728603851155214561577961951111387022260885662435062109266790011513707882512056636755279769345528403936182385024679248905999262068395892247306273828537416941314565952655921941232074475920819951197095148792027745944833305336165712973337480147325999886129978600825869106220821418928732565621685186987071267807138272442475110393247530424224597154649779298172760670022900733038436004467456200009188839728072807600235387798661434636056730581250458153137965462064287237672269460180757964923249041565622229810274029835605534585208084776572298702338785818704549216471261230423028368506944943928260941648351829972723591999613434649317829286216582470441796851743462488105512239895390106401328715799069474922761459612006897577715955223837120225728853199360803043650792867902047642211905182261265266235505253799021275566553047316889986093176674362863758633907593132342909240703895431124710926231909922676128058960394308756898863950687937571096915009182898685073023285634440862149476408337763705834750998159858022693138298323097086020555499502109896182600175377593251643404634028396445153682314327108385691811176145838911338427653821395321704382665939078974211302567559766053369827130435407202504387316340217491666133702451152853078027784198527026835803536187748273183059565545717977883717835329435322918892981264862780729194290115664779904264281382094026489960048833331811187356257692732159886522790194219956459239394326259680388163632094305987311761749853654136756510794268381675467850013523912001212152950588011506569160977403453840795708215241365607125353306763046598452732220428671208243640237124063628515137670987806522909808006529627024239200071707643343271114425600500515649819541568713424430640326099265548144923288482506932955255636441529354125915200337676422660403152422396745985932439109394661189969469513780641825414293787519641422621617024065181205048729301295045213565698346574515970206899341216002604782528362298747416565392152076856803107235373633294519868288034490604056529961191474504737464016417138108571129827227189044695590843519460194747565738735548591730792276760929527306501846908318621246155680003233171258374944191821132038082639579706023729404861712907418714778301080291320970229283713516842853034955891328162673482770308629948014572854134877644240419665000859510913361091153897469658611499993042311135194825385987626975982393550851061787626738956032916980902600499386737353845890873684916713866770589573462772768596183133700401853002015999640613927272556700689591536251676622082075655874256831765706423976661916650780377407507342298553171186089738845471354039463852611190146531807073532967040352418428990399678341720764492148106729296516475074461882554992829774498318144365381546913749354968538226324821634892332184143273780092652103823351732286355919575816613992539364750349715256639073572276857559221358972166757233160323563467863473937768053807474579563610623457531325995119788381744687208363718595603622479931674066059287605447478683751947338702651356178394816331805107576989140917796291496262486125147259345689373092525670697145214307554963441717205056701832297670959466087509435397801747843803641540267278953819359588208274387555358717721252782391096092236141079244891746288211411232115638449426693062818799749705479156084558748186463250864077076592214747453347461720147279358583487806968463036951148099654761280043789472263772253966038289890430651520560604139641585517686669578419696517252521654896029472148638773694173679630386949867411658153014443473627752406277757212135249645831544155721422439986854138179563793156948027242446312301895632769642104058135636592180495563135426901369654464922086671465245285909857370568856989176334880619135912077897469604338774572127525639388138342260841758954952085559974876707316690899725397229097477291479532484456187521793894893269341585525021948349366610560720967603295012389454179846938306860108541810947123835906105142225413472431152812619952072047997840075630143427434977836598828889264833886407944281861147235472037296006554193120685620675097941120945250468189216043479163808899661876017963143960755934197933447977890674779601025816973916062219928220452635921781862550098370466694489934449495576375898964720538334993057269740302358842418445711237633951509700819383688685078886950185817739455011540204300030087980915848790095517464043925522785696251900656163427963283304189535919210081618239109477025384853595973515202642446216354725622850624862063747706200096200265611703640494749658897023850357512271042177626832226677471347786726060474363128662651716334624176640386557154726068203760396966312794671301421075514326539691631223838982870332074586064192891940302932649756808137238202441716221789518541979417704363589066486226139199540833692457212960569208080609540437420829572546790219657730671883960229446743627370023382720577323199363410978102570526866810290278361351364896641762924960997520424167939826603236422496624548182215157116979492465902516924813197235323550720789030858482334739332232581776272771932095526908249928193120459318182468907295008905757273056179355532375839703127603030048554360676554041069667072413061771096265900021997617375694130819305069332017219834479642150105264965315900696640637129810560579137548086163926892970958840764325247766654048302833327508109394122688059697929865638136329651199961460544569719372409590064674513506508288425596099102530940977722172599181668398031295700966249830685180361534425739559671489527433604808048565966439499187094778863592696238479710000594381229453309025439317926900627351827876903407241771577196295464285551349178874499736699259337187916474312798725357926748765475192012523479069159435537925727126093303186907431272264741653257185403707410820839634073669097454987574218233407692078685820479112730949819690242872390411326587172355178803075878512313849251857283913022615565572547613855113623303036091325149223709387866709398148062322417317033253175459314229777333919955162662127799912115784855751299373620140707581661162897229694676581783996803633294555188780733069031162160998510750864213260172374255870959968517006273474546361649579748616709596876657993134533812605934532090896001834355964608020469495396989068692544684131725835035593698353095378559420449651390773912005016000377904824446784684645162790352181953765762348485651452575374725620646976947173924483045971047642856753405175167798579636520578381014098186321527226184394827042595943529638174487512553128443471703270210906900493149760928730796544606362152789639861986418717107164448397609845233659458279884678827406437208631524459161627443059136203707375188451242214808400269819248831998114639583145645974598918323471590824182309547194648310083532821642799137435235209901328446419327276041143079160837379522352799952433409683447079820918940684242410581085661359972898569992156565177079424348355933101171594896460440273866087182484965062243363550202080954231350475169736227624246876010003760232065841893775480562532490127964795250177469726247505219339524332755557782915353338769704615420858843180812790392372203791889703978591264126358199102212408740927280430654278470920480341785086272448981211042818805871410181069350656096532950398080306049713411626103343160576970618519463575167845113446304924553370492965106141115002387475917664434341165799832649087530873375251736765652646702038818356900728197776708642339299981320306463431038726617152994380925841645916540265454858059574803419063896512707678725018635612777025320841001454336863124912536745878358215434386123802510990628463991958770516124207596600584831677274459644111336253284776820867956736244237519129213558907853973991614171084108650847116241168183417329998116786272938749470438765150913338851330372644069340759253207996742561103530992959239506368277358055076691013599755227146775773710189331789492822963187455186457395046840028468466625511066197653646640129133535893248572207232215804252580500669727311438514055948470270637739833453751174621464490285905204239377737503375579083662865576617125731388227980463081543885814390108592089097116397371143162499103937896908410698791789098571983546600321572469591392309059591515045448138453048444173507467755638335388988722145751457530971100421362080358084043792048923570733174230928979749081336395234940662545490940244958411817358970326802276573953158440910971728124685678198023865242536249573266244605337558369456369447858666926247277950080084958070857690847968584977271475053079001002374279991881612261316293912455794106130520509863812032177591740562067440453207221608548549541886593742325246486046106890571327096747163852490598420101620721686680710648868833948526575346986394689356006574427372708053470087222109952395850725132821080038797823758001061112999693398394060371563213713829006061974503412332433715098593345924071544872381475294022830683459869425917206369801791495647334250219398881197109369515212626717296957126077281449184568301699265900391669485130424647664439818517921741309917025869557741224591021744557070798095895434005448262097182490825090070246745200232025732544732194730785778416783344995322584220423222265444798635147627853159860311742954718836841962323985301406164469908339239632660727508883258595970301216882404673522087521712209685547268076915112926809898451346657400399340084186190611756423556909168997008943467310744477512808180463311396305261228614533305355438085239163109080482148038139995826682289867525157539587983433478732773206581180400529866177658883210723834579461555053644272006471631826726605826943953667196516171952493999255713429013687913049848128989098263645211135788908560036530181594951138887191004581842408447926436116887465443867430338314347902144204355871111695306418552635679528283470949856649140003175418418804297864869842395976594465365665002974897668892740300490954785324686382192214979342222630356475405713498817076451927692259822935976058940753417466088033093569536950247230250363529551183816914217940839436933009601590280030686623890680572603178007335252835337937220118786735269930316101368430549985403510556656801524110756813553288101304177301807822119898144684185613793417006083054782096341692657652075690368426896029458991716534977792854694789980265854484731171976373548220633702764677486854327725861136720599234726529305097080402313197288170434635167654177062313189759462276192016747499292952001174980302486518042279532360069276027890581305979858592352229109302139985805420325403522558345786109175992681604578210324259022868282814507355186635561917307170242084072463108461832020415441154322848507270672995774079300310715666928943074903787969414439130229403939847592732021969127893967862335470470704824589292338788000234089242699788962366676776610595199106316205673639545747055236373610681189573308104299339623153295783366270176894491036571911145033124903818562788897772605491540546216333237163809545212451574377351786662043566425924968895217230154505250196963993713521949352322942725886486346832697124670380755427424215678884602365139189664948724323992811102026590434311206472478552920307727273691154623856100310333206148131213910665263766892713122708592514177469244884066277245087810411823942568466270307217574570466968612585207041602815408521911810763729486430972561143203293750790146775510522043884031487592670354138894628521761310667008445380874913744915156801675139928601912254988769932560050919987502328714612503827060506596955177783551555647864804055346113153651643145076920084900019587421497447606593151234210797800933961102985355452512823049593781816864757993620915412537632811428482577514395274161021790479264525897382247542720670574338820511720366408632380706505581608457158313250480817550788555771970611312374011042465049469744388997614009413551423094638071384138786566648632657917136453635161649623711162892634895534006292350458784710306279919597067226265701821757711546478802011327466236327877347850493537189566878299475313359058121700394519103860596827305916970518495887213445976370090997865665204071390652290446381915700005093021492802399166147846324526649966591904521791501389590786103288076956280870151311043806269721462077543549109729577915995911252887697292039099548681461233422275763859017619550949962393441071363591209555022373815426951490335213516057039124857341882831001772269758244683617664422254281039242554515744867870654290904651282508658474729021061640153320598163210533746666229272818708985082018869005608102294599541008284050381976602959499589088650601800590590423058932546179686821879549765075255419818206414619928451977687171821492528680309278940503962806234562628080825006121277764430335468009753505006033553740442290309138895314849676908186552792054846051710482580717697607852727070221974014101405828899064256732586136909664304395386792668556718689526213417198628966897142616450582934943816311586985209457263666458155116794712153942249953543055085972348597074919345780115076238947139331405999687724908780915381799415769415471159608765560093801360614827552097610445231419887602329151771900383922976584762287057183006353713371632744939403699669425429735043809045540501897412980663964399992653017780686608206045500440052871695326717965654499757993710784215127150572654503580601912054553202144379017863218306361553649539021991134678650992622351314108020041014934510643678844124166160548097841236521296148720491954512109715164703380605222586145980837393237042075565875843280125150127915821533676067449960460971827669560208121204598368777602302565571284328328062054944612616051902474737696351224356347401493836161615414024166506504875980509253780429201588505003917537501723837416297131832813116906620629897913546521263779728743770516837677426648412017114811941156817076361934645486626837101111700825042210119759293972079432806820242538542240986590696340896454271661984051376724910266917990108669947344381244522429355807701621340949041059850486053091960393282312284326957539514365894399590018965042845618616423186243674693764038643967016970148864882561240616739576594526045742277014961604889183333700621862477559700030276489431668444757109786341424154516148419886883865571265417156576835918515507894366814339066361188781107988183752447272793902158829539925705155199926340640055831234279192925137595347146094112488736347514970175841481354924612637216849077826700145412001904508714533596362366045242019832637344630062372484438876314898000482484092346200891263547112615867820625589320733256678742321928055674497587969807082227993498743393261629212253850113679193023041431982383948574503671494975218863055072701845646418709524783607266189893893582255338776915839111299422135534483419994991311855555419104520490752440959106169979672916465427898422787291780740987693893830021748710016774896326058534115269390386262130582406830928851297319801804221414394153107440836589321414559635868593608581092437323640019078482467805363584275725872118208809578551593898007483673262253462066311713684958841127182058688485108574265252148845973339168131882808986556479953771552748074722609088747325330556757572002412059290878883629690884996434841741423002043475659465563883368682233324245634317999983710762469966936229545980255587538967774922216934729257308189809019673248890097537893173912519963664793643741069188690220190029698539461507347630923606816374278210635565136333375043850394048446650665347178492676373752550408021903686776435953698639153509940628667303997216800074301864700307846677358300590698570903017028650577043088683209614246300125935241138102564203732054314988010969443110326112071450722303294187755516441423304484842873640951679753332866906897590057669507627075817506834571091380272689121563871986919624941341737903906799972435031846046703682045928863251162923970756763426262353351269505033950115741936521079214258340220897031509889665468290976080592932619355111430676436299760758044866945698423042641531875829978647058597553750101898013677715496953076734648611218611272268750849199616115224287958274612759221131031555741600831232970178580100220652595513870592892713094021493420802904459216614439747840700611572782883403336055477161648103467679797438433134278306654063289303300854827586833792793746276469102063087063505749025172177237985987060126649116424731872601530895496304285000053590987666789957650015636556388404308838307136865568383056766408541288642628084245606005009741840179314038167216796597266455543239009760098063368242920775455693203669672744604751501091536661249162522940315108175908432631252768601640335872914523256538813514441375224080762103981132702706864007251622989328678126708932569309928928408134418282501572790547420791409942220212298094817227436454889493075727051603921882895253471582618407619172355107007333755640267867391246039451564975265445213047702344441029688493708917208767390969569807246052649284912493001324166608039294683109101839894536586284333814064159172078973458214058193888011743046184302693857805893032028414296610543606578590978991240419375347144465031677088627240833387849220129370710918490170149879131161890351079851314701707250837580715798206285646807627001543975756117408682093105544053587378119584535672285830396411002133040993278713323148657805322807592258994322911272646996372886716200691122652988108703581597668136345131705775564386599971957339779738852388932323213404083202154432369944685702384075167337959563716513527511752427086697832077816912768113439332431125238139046003532615409300106111092930402357927640652937764307949456761069121802936333158711467320913448221954866781341282909383788967095730638676495608416478194324808157029580064763860743349256848397150747151372510697187517948550137474158762605267927467940415967585586956477366187808188929752147935403436548101569749843458983571652611669834242979768866661242128023246338189443056647670319570534968314785831350135706817738781244190103703291662477446174295252009658820911008017391750763121517520266913072908594354485610719411636865340813483978393579167213390334079903731512312013478211730293519484239046381496247484313645260860023258376460393939108191993824042793227796213292940025750564354320283774365727518401981677598262642722536870124283314146847262318293590545465248634153456368019662074140995347397053795451576854062787568271969881119532807340508427804104895113834720115628392559149951736988061070341613654062434222083938531575102405121947291783122502959559204579337910362135707233120546425211115128107052243461495350120442862671695699093819693314796382744210787950667133673676515454917419486196276973367415823516175620079519076292431844937868298068102849838747014532907386188725026632666898100357888438008013470344160285718428031752378472071664617322770355960037567207231388735471285747031538680870381277685350863496480157769425249287158296367664573150117584238688124266723464048356109094471343356526690710731595330648421549050409946589629985871138981465700840026438503623060771287722436249865264550004139981992996817553456710817571417169032704081521029024981849571706700024527036083311008607991234022935591799236032837784680680428379213054730173402626913773925522130027537955968793109260182342163513903998663856330592593800772772997270062396528633217843980889652519324859519265710023727979321433259683093841525637764483043907424269466959768203519020055247737674608043350935915482918237937665408031221820476251676127683667080523812246834424541770738964646658563211742791389058458165294267713166906933274358923621551421722806416422121403744308194858735621363547727187780285869531715821147556350935186684222376091042272714624324650446462960761977243842415377019963813087553357867568733085699014620264733165984432644798037300074977101850717115698092690748845490798235746254810351588754745919200062242509733557436395938392331522002704859742530904595192160996561834469838065503024432656966494754004986012001960261508805981300031745259857120438621540233492412193489888755628797040216256998103568898633638037096987608774949918407226096715798509460033598454370303633620719836495635573621269353561972918498434406485135217049602144468045721845467320260576319459772019658198921740727850749365626117029204127759911390237203366237299808229015632570154056312428570870374430327148040676458485894749962729263878731828960873564802910719920094048605971869814357865624753799967415798154365294924793528981183914177346874360800733046412139528262101015178205215100072635771417608632175239446216840824623256061294756057630601033655619749310719183518197996436385765288411020334273773085759995948140273484707007002841763538923339801111273341216093369425756675974022206892188416938500339574688403428164380796725262583987333366023762602793951814159591865088122437018533365930800616495336842259314241823984487560282579482472969669622217664012274308220194753178391169393288059200957337897156296091500516871056459328155492564216353957501840878825467943091814497060498154663594294314817314218889805221533021642381259349823080756504220411256466795826668938655361716753623065688555018653812481630708831690758538283682186531837169499635280130628019236760842642572215352054711658933192829413970612955022450191255165428506754943494965966706481461516493328328128402682787993252076769761252868373351387358481757605161101028651936974433840501808054930353573897433738918790708553008120478358716393026481663509179229703491979270382328892734616966218818105745404072439395960673477099757705919505978457901460785859434889680801538201863763927014059219756418808381413459104549226936626084287911008974030223118161298308198238243192248077572215370488189350302618462200984617996961109545424665336304784055287954316112972630336306359858903903618596804860632912984858722044548972898237115827834948732081291475077776380225414677322610364164827747716769556686577777338906917307483633802493241527077637638542632519900558591495213123519463999225802483935350080265630566538011054883799643386608340973673313176276396051354973264034378663810628314989397569173167861234711146679709939447783208416911896500655014858676722964000092921383013454760696704970755213065500873226321158310119069316561751928572897769835359078901310062535343949475161014166500454308273965349080934612419240814985758262216979798355596502807681613963742044629008220082963766389777148284448339841001700969842959605173314173662580585109927627923183128210382726338460102525958148052119725970280589384956406627173162283844166265155504074997449856476569393138817310085526116920173707741628427478992732342292767375381428383953095343750774415469527209278610285947817042189202609683386534340344081402943776189412553159470231595190506654820925223334258212410654849272167825467800078247015599558259794527874083959651095926294559439133147255436965162934804770854869336964917558357785934481075904637126527671613937794821565442221784835157536388748796325416428664081658903813116671989827756839819829886826893607111326222585374787782433913228058233101774604172749020214661631588706686429475529462140392134585777327455946076625285213190236437511587762881191039571085822732883994910321916321312974182632851680811108845348055088227773639548760586924176348056670663509179384859620669617356818837330319407921892206071404765296453552097369067000481969782022178921056189787215169109544736846953054428673737148234021934737064174212416444547466215886234487603609068006086497991564029282750363456893349820680108174525839716815115279160685159892513838115285876849277241150825305507376776676009129862668307966165273778945788571454323538929070976979299097545297143697651487352298502235243221376250596588931385155787478713026013456194879854716768462827294950835934486579178820233357198955726929877473650430757031367328837056860237991326338786641339299567358613055336395437345296098802072783321612058060570654446312414532908508247108904455462346754692118602200312253965326728420999894096874273933971151971811181879781707096488457427285072480180531008215274324714399877546079227018299210997897900770383620134119189668997638812903293703289757497421519138671400979263755149281587861256535815591527032223321156039579451104805812808131495274583152678035326716907029416783055292213714864190435715353778257092210160750962800292849728210405293522336599113773177257866010783033491112305082845888023635091779512342654517990697329279585102990804226300348673172361578027300825696435051541322435142564073754311434364593901369266563806135866610712680256636623452470873701213107983588108611430477174158766802218788500906285999243713230819556849413176514503213848460035949166108474351196386571787543317388538105739945171240694819768511799524413723017335298548201580122931219040043442478607951058811044419969218629446828631121885691706805054985670901055375646753706659940076931373316143315141682114893650346726601302330552482023274938032874723455311170469153680429545972773737687015002436315375817252093410314874279838507340938438323137939964065240115288894900799760435916915784334006467799695435460329346472861334251266634327968016848620659749324655513397008495349479701494649044840437348286822324332462382127662916217943119245967585812146112908229120672049322761414847917248156913567504723990470088412656225190919006726311323956556788070310274734878030601842246932222033344506837342241164246875665740845286801888766215156707253566031294468766007197007762065487827938881556493612468392217850279381085521253821185821507019942318222934128153796770063505455206158335949023978268434257437428754081908024887916970822712429693498385967679104643447140745404049529442883986543991136285852408302555294189704930184362247600614412672785117837282135042093936961810395376967406173280926015410354338389720931292084546509966451405060190480139752667677549567638555006509389880172876953363915345939283103880079303063135489628288539208960555728797572478927367918561957751975835104974431046588840441533388290470501150730211922586903933889231944865533767099049494977579990611438518835066196262420743321472429335544973839786149516292642344470356528188645439560460466131695097917845443346549081968653160628079362735566903569469633354168291093055728253056864051546917730217933113971275025695769597061560018611864195554770582064075403074924179872581073338040803824177093736344399454700004285510794870840387212505394038654407389632388262763587786752930284020765271505831040644949927201411900424691009295948047154769003955718132321399567247356530400460368373313730651327955101005030028528804234236889996341015821615686825881917582445926243644558897165133205875434249786363741909714773401459777388099075914839080591595195940416277513608317754492142672595344274941274743572811645641175737656250478898045639807694055348774912124611960942828781466654003295921245182175775367060734962742295631946899715139705497760004760401629039475186407571632976509095036666545710170373470098115551178931807785306325555131794525998574218215974727766501810705446503052172278567196827383076601047951798242000410772087830183018062098625203630477001035664457622951235917686621007960724423628974221156682394047160984030036388629806282699731860348617677608284853328908728591192760801747712258485694489505762681100759716417747855543108744508739163184964291293981946532471870742227447758845938798531149071739232492001285969330280107935463312999902625197326199119476153005867378130705457236924058530791686654882900509833128380881654513059152231541279520553817661376082551936584193687247834177789835347286522557432173983150675201277152664418790464058610832078671127449309686208709693091045819651491033592362440187390122485963892338694192955253930763379308137849502885038410427263165145280715375191020406719330348922228965044497747913616544558261144469573274896137549035135546362790942973855251614593721374039213654970878393542236763391520468462745100745918218683177053993932910031362847577054170625110488908413690470526127189826278361607402075240935803493230180971547062370292867088509792249448679904175670152045531698645062765123425733758816391209495106092827029240285478281291768461373640436482159707258805271466903439760317095261001531015601207537653878909493548847891531990137476319951287626078870352708159902947762497631290136919590518973204803352418834450509153994013676557183729676949367433228135025561696409239936308781199794892813672489604857064929170859137332230250100433164337923770852411880538822462681109932288448182767961606553575553754570295546860854069604361306177105096785507219170037969937581136040133768771712624879031538685547976241277049696788116093600945521764005401975620039353071379043660873681811823175870267606872452347709166581380845600660601836661781927434625398056995632155515229658595111744694454941165961063781435540603110203631173814097852834367671533727346279364542945891511809062299585276331239098711160760938825059818740323704481169589340899255370031904577034089783394148539133476842516220883408790183664395989672348043396404990815388424031254277051743005267876966550367722381034339665365051108142665411630823588906717101270924793175887535151494158867160618600070813098013128326427989917372889469495919959306831905960235788319777722927713660493933048109149007051622056672256620911623107778891983407126188618658965930284927457085354511355796271067251849444734913628155948859736629850355332875813841089416438081340149519156459897962116593465934477695575391207127944945709683082313921182631691694644049367379650238381049220292790261073353508207943969329809166169533681975577002922830765755843239991287531773963173582904024926223898067429676580329831922801952429568514596528455541811504951836195733327032239984288579555509058087881567379053998403400498972702901726296282527049571774335794215234404123364730290111086032852668143805486173930529247606086446816352231648237602781325568690868126959450042249318630022848228112134262927138808930266378063558415880845820169068356803272700433192984284529963633777515599259892930849836503274845803503169176110267787936843915966031010656787474868637129434743960333644373927191013359166165593253795034459198285076970863467689967718344327883822991037678475495296439750069516069399551628927603207084429418192388308279959065214404666287151480669754298166553500022137368573389741081661387338158071049176982919297785030833854399588495123854368443052094116184192884535356966174102316979329470183288571031736443218796381748032543806942508770635896956031885036780576877335319190510808370453431689140132451846150741344971802540936352773705008423234381456095237517756778796091561367760660359646563208552037360156447683677938954912738197279495064590997987999914417151859740598099491146116573204757623851363480475471478585989816684441711358806594834908882743734103710227790212819706657121900750426965677651959340288803530782683782246025563643317900949719978312862007214448639234672863872416708216021856707638999132509088551038666780269531815518836944418362955312138355431650277132483087765173222935410579843105035110489502557202195296891529871179103787622820722040635764437596723371071039018955319089924759707644536022076124606219472463232650284367614085128283112752616745766193907229582444940811264000812235775320471533204461730819378397995692963930821089028525869499010742933731513330355416128723936257383525598587025174793221500342680534331513566027938444819336944167472529463207565036101486073415541232228132334009840534260920493823658129928805353667713475715137904310635903552782556135051760265202620115542358063652047675766413697353796474395785744874033523290250928868086562851973021753222875198979935861452145283863073510064514161687043726367708743279982454016292210249310474939130079406123695913442903455697333238533632615782500599506824573817912537592215317915072436766646112921553850565993416336245749247553267453622049691736063863176407596550776759089842501757130729924259054613596260398966666054909346581853314640092180348765427107589718476445566037632855119561930835828070924552923832436216328724018836526030592015675464544655354141511003108705866034514416187580187327179990688397828159676980571672840982005195883515374219226287576297382883860576483266206328659914620815736104188860161312859638019987007056905812802152826480454028080550741223690397621831982976722486307043352284571402444625035134047236646961675657109172950776853936489871388941603853004855905933471083169400831260857525147185284051272440542058980859408573726299159085139107266644029968367141388318930304374375987846946309612264396719937252480286199883302111008078447687286536507066259929188236766629224671414940177754182594136273566698786813873383502881656268167853113622220790167701340090457411381649998924674880667758926925630977098418230088855678848075423783247091274535851460192535029062739866695246391668310174046813098960571534694881523345335855837404252066835318968822436030184404995319991299914095373939877127174141318191129799670780600851548807848719780862829091781932062531335271158081573644098570186115719462088320890539848934317074666136643822861437924179181935412870060170807579872142429960905054077146296595045559970570115641361150823887471810074637708060209451102162431313219348420277869910311316567082051213632904810523023826524355747381042429972389616184284033950800570938675031619549979026064958683448428109778270330437102116388671631140914870530713789784792602698178894110285882376652504075419714572629483576747295796247054786961853521997507596591360521743104600178077560691200641409775524200858329434107099976138805014916199355988858652123026418136717694855754698205506009878615318243371775301071850682932761910236706893934854062534989298789698860778239918188854530191233880777751014455908959603697034427008627827713209510198123757056692850097763692790947900056537312549195065852263526324636499607868676909237485250400833593945796557067186670917657487120144967046055154263222336407858606438160390244297679222412817201306517986711907836264218889170238314992315430517159667217442149104231963808878844636255983528925234879011674490200788378837936907600129822328155998679331124926890572367381397939598986193308274683569803477048686232472942446263038279931196439417038374896163020068814332515863212850069567452650523200542458934273940242204448521318675613930552259391406038805422779256847982334371911979099517530994279992176406789759556641275158345236723251334881262449315706068638497631694019258577495499769648928436397963008449108352319847315128982887113581147284917256966112254306437315075505589166513478883508170986389317164742037395809635617571796624820042811929499809302187714936256543607373234616408025354631952760133439787686251790263819727866435817505459891022437491806835051431030729017337613078260707066923662931501730627953193371034854844847295875525311462595727368611862931298211972028166593186596127552007516250814278641901921192067086242946000326616727736501403936463910308319799098661354677422622503974473546241250257901727915195718982261520344302513384288529703873664948248713767792563068686151195581592220247423332851469157082182628278910684058044201436000198363768995915170953379661224690822767223460116066093585871115107826495856784254735973612511280028787516454394044923999350499981743524172352901093642748093694651365918522982535012968190711540422969708337391396430071678067473221446355574603886662192933041599784919112246686330961054077391465685361900299421342201146429888226410898930395004081329113473046069171689881385381984624629139221362153514476484095551594333155074594613442166614473205184011325724146756382570543112830907481059656659465336993013847209769278913712130721504083909641649910344579714130927296659327249495051920831376542599673309782112611099634878557359727354417856558472157038782108211060239487771114587284520653846404470325602564910728330659462342939481965502144412343539737553411266066106594505464728413585327949346014519881120789251499350348335854363119035263465156761159160008554582114460687423372515618733380348640644892816950363138961978791404869205908964397470150776742946172252232657695953672047388948053440169008089671353515210475999926102560034483898776587540864507049288377213525882156231471839006705537584490912314609977997666844867115789959647800031579207666068731042051349014335246585586573401817515218759581854596398781593784017337283918882829679367788698960290840653390192916132848794722923888984194282751959505543780309925581266418477544793223253089753935528423069761731217687729229879122525847157856918638832800615811705036211095569570254791270432994467228873357994989135497507794620853669816084163773563487736677671403151196566493414074097620291802689479562345328491925868269025109037457906825996586355585986584416215275008873643606317118815973945934539441666969974750896226598933192710340181022659940134856165097032089777711753625816022774843966787008442673396161576330688376785399391922351314413537629643241738134967256131427780731912355084073499533767844091336999593649727938225160120283454830521601913908063410458921986636137971582061442561970575357958290375843175646241481900450640060200657699141430226363160836395861682695520988322016018843046542456761610732629052548401028035772007723036218512669730404436089204938865562313140657294156228291130757446693533743148985091763111740582784327887240172082758044283518372813077572338577223846947282514952334692596228413507166853462220306472609523766954880027845791983284456533476235087461466970624931659018339137371296964270731178593317998505120429111672796842214183684042771280092290091388909017681982851653609126168872169835252409664782692655465132259703420387318429393128740533023045740403927419261991955421381891829800107063661732419987415624913753946027699577202341603208517863325826802900668980794057385085516907598536901135531542502406613108004307521275834117393032594738713944743880531322170410352311232397000325195995902735385935381684576950230797881800611155476758497169539524233979070201316565716540168427708616038518068912485487380365568071698027651449378497180701789227315925202966840818570245028491163571234891519557065797516605075109572302383162277613627958124768293965879424996274384226967117719003817097429451834225572351399925905901571402356316641247772624388614890757947940632508510118801710972443138526971137679233022925431396252691798777850485048635772797195539583030586318422314041234539470309590805550424596546353063900947239381002066002856104855059164477053836723032331927946010907484167207526113183512152419412850813775960767222685826454759538471757361265712979813997271810583582082766736348864136599228614484434294534448392069720885415628380150856727835310798148553893163245488782705902264507002354372837740353853649956088279047668673219256303653111040668490750778042390077181452388643566256229917488114228679041008044174067647756914533910346843602788810740168343206227506316194898867698472051782209210121861348566077985645242468358774328578873403955926949331003577974702639740924488574068217231955751257520195514188607886813513686683746181714097924515324402917821491819243925705221204338297060784635266331419554685979989641390126040859675479315769499963022987631247659067858364796216398298612498281388092935930319413941336213967450665730132594850578823313311441349227551004154424864724842234353347158047881427893933109770592097293746291023273273082152543980153430629623728169093274598163571532385312134968506617081842465478835306639487516246119821657470670418673525739763485347620062435193334420243643969204436662897952182148698498353703225986921214258141639495718381119483152175653762632374075123222583910984454984674888083366554470543991960552704109700040564579241848601256104188708340606699996602375102522997444148874313693168340219333271984615181831622346131851829188220426048957844867274743864002858912701942350594117359519230711477626198635154561299912253118986433749092283261463928755728674135125726859577004979710330661633135295000283282488524320889486732743346512969091562511565116387577804737402093943806126901185133197008454375803237842992910522267661672775992588823335412755506812222219169756815670887079496584318377661753740824555524358398944410385172843986435953230102009193228563043550080988420337084074655295642161201041703118056897373650733500481843468813996781239582188897796107029097090680649868165821176351921451398969972898691198182652227971059184133849629277599373513096790345932338909203174335098128298811248367471516363109013542370070055274333457201543729440576554593406411374969746159774765234499419009971336190123996902004759523854546310920011532271537451881285327948064469855553782279330928351011228757464315588703646126079619838632287819361752109302959362100234836071228184648091581516501398913308534197934937249566099709491442698753639613849293650262072336431833595852130691529268092836454773668683018440501489970757723394126514710154675546874137698453402675630326080289021645599922153675470213366081968972010881398952954957041902031858716175235052084623405948937300032229039840067813641614675465712609314557798073355537178578709939447023731550336328927356835402800516881696504475959832790964145818975562061746086839505431404015174728724798306177817469654704485079802216294916155281084989077902143369607944946343629334831212717552596800722167008700071259185666721989255071122677148630249153258881394427231601329666906649492663556139689343680147433802482070715863305272719633029530563195984824076978890151514496126888467874446255591844450426995827359239584046367468324257968788155184008382210585297912869247106994237230843941945737340412026331598246116763929303943777385754567603016434485740652376033524778675153370668113262081397654245499563751253760749389942885430211322020399406089499066672499241624437754455506376084994720964890799335695494789496876558159224131838353974328838052409565244789664736684230268695871313868159323865663706951159277820092831288564905915051870713562515827973397207005531424911338378316173082338853383686791174919856467964736264166157131838359460194299752167093032724941336251555975666920389998045301455216957346329685645393260056645635158567169576954429171870345790161478843182297208794898818447295029973554381506766618978116679708379893887557528832966226905393709601239378340547488712034322661795003452772738488584353853655396754773244278943210228574425259588306944636344888433731832806130898457306065349363567366750632743842259766240028454434640464515894844570271234791440874813647379071318793055705126517710666366073950220745900595917259845084662137315687677727678495374025178142786944339768109615682586679928992673522677411025702385348156680123807281592972785896621451962975993137703782768620692499509000164190482710178928740986445698032595638072559832391553455684950901596633138292368775638434318846527926582850128665234164337173796448563780068537632695151255583257175679768030946455627680224558126427014637201733307273806508008199047453152253047521877103989833667246771011723667974616870311253786610465073091693167594196731770823304660101405599154159516214606937950007279514375904943817018341935402243971766284475833642268585572181787042594284898505609812371584805602434233048073060931050086298772969481042952989631086568537164187017067734672572696365109118035374051560829849467418161213899827638083346791012040163069041241921169690492184405888357972709146708933830195938792234008212565188172572938851865876020604988528698192959891877565096955884384715139159610370978715233220916926275257610236938473683705712464113483554106178466070842383968490339997034597787590571805404243886402004404512691959053764786506043331256801704030312758368931064838635582661924297831034288432405622154953320502245783767155529856803413929355929436599762324492662658100281917360235523841943118064883639726063538537794807346965843599619340124794217051971214595975965455763463480910712853433456697638184798634130686018100496378857204153100385659027362700573421406631178193393056286668219383462558055219606203902592053599321608591112704443178957036262729564421858439918259359239448914154781839510038711959888678667635058979953601055874684674501201886164222841280193642924149966142129980998644376899170960954488104297844327216538853451532293605114882296141815643530011291363248225913553858445963407063987300851950726729821101752761622137115483994055402903880988966601710571797394494561031795267983599251221996548866931527595258271680962959715624675883331817994202952502845638881721052855862500216235890742306694472321506255162512862455729419639367235324094819757562289674265292752928040398753338862017806694891519240455460774421753896222663104851181649758681606924954614350963755383403218927467823671841919466760678125926572328445687086890308436663281220398964322726789231123506695207651396600281157536997072874998938443764021260423966645211586729278468252494032430844887666232446923856282968364886065967766672701802151072155191069753638027931192256862187333034888728757436838482070107856360078783501970490757409468398440021416304468679215183507826351265978893205608463312055383302867088553485102661645399265127416976261719063102218051154628088019209254271271118248087568931357373466864260915035875456554977064606279345838659099117283279722700967346722667247177936000313668892361616942104363762674223616481092979291253680670718031829143038923919229015199356012205486077380215025468965966867321717641346415613637605551888128847664272614834560216626931931378861046674077600107867515009648918245248532892220498012502384515566801325933174655774135176404765104280002893120663899626778962549445323330279147262623508831372464429151076000175370882025308388325860165745387159983776605447734620703507721842944333973933759439213273310838733741659593986079845986386456171343125507152994411201133746545527135197555724527752105461491498386811343950430180443208406736357813182806710683301169928298143799024538153964518020131961624405809404311838007570525565366474854594465695676575535284128508095305464704263264183911552007097699491110934042629236693808110521819579781966875957028381912782989644700974114924724816187500367875780529289834872211851545206568536699983859328913339460574206020556493115950578948735159738513290865562092972075279118293308902009069113677217720342772411862134895736405594050674683405953141828297782772879841992606858190306155485394396471925883060968968456617144529119227394246632244839792248226724918163158296394431590344243883510728410129133779079200030717002913004858587231085849927215686733261646200527623411915985592599724235446219823156213504458452563727827682432233263991084252918077508879668470377364599110197481410427471215351889359377778920798279475272742043836312436863011862459119228392581433813339170896552018380588578317454517593193731075691700620023976656290054878131694696847033950077399372666937795138099983965945890783565268266122027679477056091161151408943892731908701125981845211235710256597084978794992205104697192830888650642556372534346018037531135693187073090099451182906543846921171066336628096780150753281394157264397982907846799076322360594525880000527581186225237527871882438994049218797595245070622153841069336814479176180815244129227902838741983728115893792630560307354472669970009960078796232266488560611315329813966283398830638278220803575319350912155200323608720579076852052507610857938652953214611279153763988472504242209039505538150021133126784439186513341196992960296609369702360470071446015482875356528526324778205998526371336094778828770152457896672164308561051968813378998466147521808935876853001380690864162995068323069480222096235768238730179463657974179677914961183251180734446489758820174531887785364928491924020999494567834619179539063093626512323723473637965526893467516995217841021627166089336138764778557966143849308697952633970425679059630913514045747423544868899643977929694640269320336595001317692923720977415973895367751803037091711113077151721308918527466907354614098229227174278535174508733829132226238019560328876440978242916086153746419928905197255668179586175703132590805803624959181014473541530711008543502025699250054892034253888056389917966163600848470657347172339663601613235208097724668017222864874130841742613412574688184468187643839253058460609557687683622205643473950310975730803455692329755670231589345813076609719594942446961561340522298511681532555053704690914342137135195755425476453106540921215863409372820931751706527029598118532826493917328543936914082970702372701983955871324247959955240141221483899737862612855337726580228732725478808272268542387238995547431114955601835232965937642574307108711391734589749700621282891447221617740848549619048674625570082651371599338516141492240796246589341292064115408863397963939351972387328843048643939820286355706419168900906476724656974921564899563439901286893946739414482565370314863157899879145813842551752397021675811105854711379877698459454151842142081301496845859228533075121234303325191745719717104810664329673203667411190869100351181721677525065772820789160769442032857524535110030856290194898134009030847917865597342205098419970083061790698417857095052791668472577893753156506412884895878914446806573757993070638654943053543205233587244752207355115262855174552211884899839050635757140313610240941483454722476435559050310557031115822195705228591849562288529091429573860372281993576447904062522146655352283082121252292259301294748065817797278992109899453531721564634582975837017671119350474592068348131581548488591779890949972777139417836509787620366518682167401901783705836640994402354788512044642400683485135808426563499646522755605667644439857993432433906015937863730899536762553196794655229990344507018917374685296457969376229422035731796937626328376558059101229641337231357197562627755971633595228154770406891709204739822291264490559689935867246731032327421452939575939238586377841563831389608300362495325865156004006265526300278005360552002295372366643129566300941113049351892974412086114437101890577567046917279877339294847823317049451992290548847964429649117840345621694545019379906214451236414322991463233534545666918875402198886482265206335399535180779131049627587270183290725275112890281847159710616589857535376832912743822843813535686857192590671715770887243792976941622393496645322662524382987194562395494018017193156544098955680448245116240786977971059728626722521189160751728125583812611434656039070966925774272702759941813769740837074121858679157953166238336570936395454038085565379825737074976522856494173431218231555504519247185753868791692900974161591206581705495120934149446075817702317862983797510429925730279762408940746683565747706787504053537178455434064160212531123566589366717162381584853905535583343698056088745760471691786382168077160227495074683845192780129433553988606041384193080275573327587904821376710844621791007089474941138605091770847015383974282588108042555928315251472160988866299236536882195401271697325510760358000886757732755524533488522200421585856149256749318783628970026462340822567009343385282446329155460350236221548640993471380634398452414509023180662117639093117138134419089789837717264864342172401598455800109710808795758464517807091412630977259743437434087611243961089297615774199211136018720340970191249054510837098836467906449308633447476043299889964166129090377701967907059368574130101711788234328336979839461902528910256211490663066840380598721921055526595192373403859524024657270986742585208000674443637062843974377228930649597604833087958319172787372786616765637224054124707120488500543257128260783702827151870018815588063896581922852176142504481329482742922764266933512267731611377652751567535149141296862671078560194447225064037774997576485405507906951702216311227373309967272058365933787296575543451082709055167641405136124948054248128194052744937371420205819601803481713143240840128878198530129400784559774249278887958869825125858227111339481391178931433252082586546723879522878891503072779674879367120326149705355591996624662597744886322550178060709838042335269576654087750604215012637945376574200781690100092702136065575826593205228973621541053196982795990516517224295190169928641533782913186124651880919523970211092464624263256179086997479586958119476520528599465607918875834136239795150984960792829163149275005728211645602089561238890214032762952095937045188195636180549148834031770706567069835589226969189511845533421847997000057315221076798078919142083345430032421390134204233148230477601323026246757935888861930116784589917143717043244941430319177719970792157488940072464717791198337896352632130816961678887872436564256420582935970570996983485422158999216236296295016397633440148335072111724213388693516787535869031508465885771539070978215427209354639965209771293027466411327417220699577020589591218540739766482240049493293584912289532898549075311554224693294477712574060980226678049490157860795166956807782539218083469119204786210733435205925496670128423870604763230944923671490131783081785373818913167482469375577715375288010301527733397681855781727561892468012203158567597024064687914816468145874923005588819744748316292653688303745221511738235389201996837715065542358068252495341406513949759035188717841035266914160151241065553938950329768326271813807614587282757841222012104892770368355029617774644751759974818333756335550110618441797930560749647655135876840597131623277832872595958283137162855076182494451172545326947096982742376549859670342588083356939871290994367740713854012493854215713864092737061691272848459717906170670219748889818442962865287112710199192146277797501579323047204018474342866776624052909656162858768784977985987830852322972469122251704733658226702418947556126745980813979537709489250917812678400201071798834632384493168622622905513415536262707376148331565623810195023235962065620198931016159196219635932156089122498623653366671936743248981759437903705001719724751888518670316512423361795905914436276450635496847990708783890702539484748417200322659996513305320269048673943480077782194609845453875518084558670878011174056223699753454506391339703843401853678888028292826131270110095914956774391093447538784304584435998573611871181707763512590859651231075376094105775817054584254056890114866592990970753060607184766255327718520447489960804889756320414052892506362301414794141073919180222951062361854181043645954911697416796976708622569306581176176756799223023907783395106958639970153452643875890803532486502927797250851563081052814759212513332685110255324798494173524999928370383190468301641581188788757397171330335302539678513439021249381923036697377572190337065055347500562994641020570089454627864050172490140191099476376267487891687734210909828490086476494248173157077539247588995859838905286158639397745380629850093645591464111090682964087961082597424903391840780501019933223546336295891194698782254392301091584574727540725313651122020050514542203008564010362067389804024868164310939620515515458600476390323524324701990542142296234860956764428723270040344498302847941819334465247126745041774805882893792158780603616340630269058792967466192746426905336140665639296040203827367003064698829237103802117338357043679242055549674184464192942980176751393381508976720425875495381161591376128289845844766315878069927660879565003613349465817576440402504314226513066032937810632437230202585191263037790958602124095826587282000023108555034347194398109255864362360896692277408057166619954992473607100967985347869522703295007586722999770029018446013021999909606473215759535963144274174598746084086712681654686866060985588813682164625334003804140878425329060187131073581177922025862182112921329954764577886082456065617592821255330401795385043823498330311249412525231600577362879167369279771840238378683556021029595689444125542393302914715766325915627040148174122558299536686645448012449433383943733390712779609716948486526116882628258309714896960629484396312024762279730149354639371629602517464782632857875017853061380497120368609753581915318511812202063834620779785588408882856883454753972286831209857566012871282640192596157490669620455893348228096192185735028759442833790065632204373827163022069482621271271598934367665020006592994587960014529281225950285134442285274328172051797893387497548708492216301321588749538029435746179692128919824675866115685803118845997644836390627915914114409375082578111816063133764440672057790561868246761371833952263794045864035613096590634091165360072518453256800177926591333506968189571591026080349005594210497785881530332755192419091655886216234351410168203163524047745368517686521867272528990920300477436229922233235481111681391481806752677978692986008039966991472927992469512961698825243602388724712206522534007434774341673376498861631773513615971375017232423051083433571758155705388522399311904274758164365454681133202444201360841510520396149417197527356216441438198087027804816484349004803201685256118775257141458560493444634097517669995432414111734094067939452202110146908029763394941663576209875672722096784435470164760646762113322521444631508193892038402914742368952271313226271626241176518590841650500502054390813525910390300381895863361904707592784207228673061889904838261538460577402714389351125664481608172865578692215089192646948333086080941232869848537160258923673849273833463772091661397094520738600799180456558462622990679212228423848595180004999865174335918974092105012663376716811102490402722405584589738444750328561648683780570894145249023963686213885186548843186931078019155929278264610725318990892544654371853253298191378942544356894140678858643416439956115900229491831363978318002727296721805762538005505773465512534324828245063961525050454181478791024708619383080527707451585203440521991540851331458810592695989083696150307025341952799163789357425843629200980108958529737824952978464389195520495028162806616886298704732270097661849042365896062088343681862564334505663446369107316660586710292585083500080792204872590768644802527552676003200010067273695899146914489873594846188168592154553131011673280355309458250647767172971672837481539857981038834919673483708325676940395501817185378530599059596706733983167119612809524638876234859457119536845666564065392964081221239168620048959786016289032232179215280576228151548288076564956421193026104816597682802869973802087318490154040914051562880472456909515470293152277698875054615758632965990027788475531811251898539001135884678581248479551460967437311123100707214074860692815024025479321044621555506580301592034107109794714947019351371396647218585754117240080306376889355427859365343110832731773432356657313275405361252641789281431846934004060972305609602266643696259000726552588085627969327290029282823706278674075656807334930225113376689242101302711231894078590073142108472452764260716189469499891027715370876379620491782964419663550931198842139669667271404677738830894377277259033434783586249063538031386951144904005639484407059724650580153471510079135078569222588575179066362883756909619268369110047794425182557889638616201095773961457935809802740748496888414770878211443447960127655241468507899645202993467800763403973700373912780169493782079863804705613419850043388960654112800583060147381710327682115962067754074036094017442688503567701754018234496101285706182523790833402552684116854941830084178994906657594491639968101393448854004563797513841879987995210387499302368495023172293860473779303757904998080782354658367534096277588455432249084774938913834053208314490258285891515731501320475238160200791573310699756373190601752895448019480523647460038353960801696370144004499904729088377294681986393867261666128118120553288770858866489690656026190650212893452261844230316939784437168440454452896569793159806166469069331435725843426976724187492498771194876943273803308310322052388255769356894578689125879729611363880584147554285398736114501999136164531435508668895072069765229079511460592118879901438378089935012711743044546922085599697749261939828363297307892583893610911014282885964073995809253136998752968557731203978898150702340420789344984609351209955892503239891432887619178793762466997919667362081413022714286234673691715310339945745074362782027926639475550241333168486654718262106747423032131285495405951096378580505961435956787365318160187411156428940964927033790694786011024442219356565689585330455262342750712598280008718498345187245718452433029930905791270492454442556330499337002925141335273105907889685610306387986383685504630004010395234161631559383367180989524103398768513334873269480577871631724147236034864556903639282370072248842483276576789279514286395326042643055743537728273975050819919567606753678169236441489353643301364466531417426313465917411632221009511012072811576975806792091951142235327878488468495112533737846869087047031980574023123864763457021894749220048855936296050699336887304505713931917480108966360394477422329284679852825458167964691651382312417940518128441536571740372767258168621703820857008500777787127988307986763579004396419374715200680172764074496844956292342826244909648744739738727264693821848815483864363926092718108035282708466363524647964191374015926617330957784680257078045122181439840392991156133362707951008815424682435601859448602591652927337816023512356063031073481818892587551225047573474337296861325355428540073992233545306690219411734427144664712527574992122604596559135826529830989843052325467049528400285105925530430584763717734235798544099316945626543950057745808644756326346389667585404572580880724963468950090958614621721819912973849379342859545376555984029426543114147851644404237956370970008822920929171299753770392625685530633512636490613176201056707702454026553845266292830876251926700053146241813529200986890238955725275757374797300368690421245237544275633457651313378926295204202559685952955126794583206245555101847636599755532325062956381976300865375218435943743421862367369252610913169920500815458842434309465529793502207932037344676725789055664131726749542845315179785034570498464291400707605486602304073484968335535990386977778527048661212074585836420892608180205220536712415749986374771189274409267526806371978460553247322615709255296811305633626088785440887157912581076418108546693238957631191525725829439317940135147787342366458058162954494231228977552735750894454573315912570325083978398567011177542036812658038605806643222471289745410262654213161152192038185013258113746601535140025869744423195404227205560410726088094190786566083099227204622146876686450847930202607030452798757576075851064057003687494230796615481349454844943706964320637242063797491489195432348328940475829503948965764086057177830097215275603933792068785096379569435372835214849171986353098736235646314944005337708884639261294903996406204595326475301526136131123600615365577859085972541092625899980080089474788411224518286076724806008318502232677346943063906778884448938102108457192186308028196796851449861259103215885663460497443413765629810089923958887038123434031955052188863376820986200760185207954864133148260646919987971407728074600011426620621034030697856822834064115258312617148602769423400352735193116779032276835740315045806696133353004627274032135020480780913729387654962747697280536627859758685390690822474228959074596837289449106290259697417479620915217325935948990356407596592217563219454624489019348992154718399100453658245718011965435803446348493636542538552041492542045023932535759626442514188944803417997696740050160374368835581000611319878625863428784792401020431576838954787588565520590209757860847666254507100795785021837381222656372848536184198244310290745157437163861356220904913334036681784756121811860463902165663859733342888206993803966952450603366707722643728979915300255511860523217578972062458430619268156843187167145034727707264628054364415803392357338017346686919240694141138567849832384378466768875609394188807336790342843640637887287090319079927657157673461615146195155409463490931000017493650687279375256176768574846211821419236023738013530510440651826302484335225633690462729964696951341077890382325377376412450175133385385374081681864745391147195451722456008712171664357655568539330370562034786183794480626164552324482582418117986416243016995293349534494228563730420113557959050030610000462642428242117767969324393492544434972688018587206364988648000386969055920861104010493894059646765167895816773274201145127199021363827745534238968065340207287396707801575799517982567541163600832048550550883025141193432960142323925346267752089471402341139390063100099179238730869484564786841295568711924249631252068625164392146574907637260157331697236611646407697279459112862744311302773642102809858547575213390677230642313946683199677118277966685368102639933761743112864660288231010467795773960886826118552349537351325001681955024542853874288228758586852859533362698864156751103805191639959295725405816582244292649852150902551620264398552414372028740490567743225573738838674732879732184522056989127825459266602358493963575496343091330682222839986398297506474196094799193925863908814061459341702166317456691419761148468128938630960015849669772072566015852902722120001186465062546744086719487186592833028362068727298044833596507461117394164181127357637739518445428905090801382067126293635117862304199036529294974680953618707749024997211690187115578156888436023170641490080647987890545113767902905534086357137047905156016050724629655230220321872270025100043490340302454990774624468313075627876394137238320450995842229009588081354335614950805397778306680001527607857248554773444244051966037521618056779127729294723594525817666144484591474091977438688397315035423208081151417004622065655858726710909770772985116485223670050944139346512681999657281133454039303488280653277134159820526375084862841532049232557460868777823974768600347504103645211797534788722691603511125539279884898246819581274479790524350604427298483714959947055534789942765448446596919751138673201519048953950529236191665806626834763805821773641555647755292894613140681559751950617788193165457698970749643308736525179478501919370980801031779078764820268502000640184949095848715419573243803218225344319140847220917569409572783665585846956868483693118543935707719372952864306275708594282767594410582134694184745243309286275397032403193198657364815566381867612529051140348323072800602757252005500924921906784294914837381244565703497852667278647504736846852492481385288412935596291693504662541320690633933474322134083928141865490004537419028028497115555153889872781617403679569955402716174477878339866310947701688817773511038062222592923836272000608200189028714369920726262953077701351724336833281626075858166683663712830586836227746185149750641177693516421253276505959119776039626760224909940511059510715147280726272819718780744122278229095468105584138639336243903869548306407836990069947042556950221532270266411069877777051302341575473230606352840538098269093216554689135822329736085931041358401317110660115354969966245720926102480937507493404659261765789961454066666219998512221717747311928673777416625074662317432851089409083829609653115726314956123405500540031665890175985453888495480560773647127231645863321434486614914155169666985181966472596943119266861131525250190732599225598135938917763790236687750936041163981588731544703690486833025332407653055817533276865289038080578631022573937470315479781296813774253022726155613592795028838067823021296432942413394045872668609049554147716744091752694403387450881982195024294347972623695336394288693575230162504545319316291461620823423133451110346529203798784722498154967155317167892354601890936067887371225174465636558687319335037613459391962644646851119684208386877543677831838767908997384015562803747877856488746409516086944898792610936311430049480854974026284369694503432590900496591851765714453044154671059646395269586337293301550121661623534291956374052390219449943268713655740630742243099098821250842044806424201357013264659858388731662952270112333673414759226938193623968934273755067378825444488373983875758315346906389649786310481673827309725750579671414897182177822913472186633839833012548152351291853341281875505324274176490812430786376115253034369464027080248000776753121259882430473269399826492639826357423742657947577284618861316935104586163206823652967333671065255838784483565211047431354078397884488259728935683652213437152282571829545405887876284385841664753184048655133537180401922070781682892592980154581841982737075618271352244086498205491464582056858255959399355457491396555649047878922398464564596984483691914751697589938755865234293741679033202350555317112963028808904417353075447600595408448477258860303994872058165542550008492154018320043756552387711710859724609928271850321397294132180976256185533301773278370715625855807453084345747627107451101031542887432577143871571450843317704011869026393618934625164320307169537671925258610777342433046739198665833567890758096191550045820262706043845281846530637431275559748916415991460272256222242797079147298499464981115143852031985634315286232276503307319118958536307418746340582188989954191640903134684836632438930006583588688463468104592020188919735943913553851250060529627525622800679758877490006775814252880626910039293130275144476976467100758623585042922503004165316274320812279758289474008212128417447491275395036172337233022256860054464486360395247170060257254024153844231623438663014525706279059807334836725267420826737627301669164559329274273876032845807637295020718539211303582111901253467105083854063882458528398027758674059848738418745070510886389325821890148506610472319331874223402844559296567598391955036928167201871609846488707599625672084173849235898619077339303828474594239564335541579699917766223369286227183287559453848140882526066111148846525943995540953901819572023732374142961938915791017183128564441723115411970296837600822528592977528900813091471765367179469068564885973542331622446691245730551401875356718539683009633270377688322034594080977253973984571696543573758732909464502087120843351196312678859618506706931313209849661990770544278322981769571990187446217291224899066429498058918188092048690685716393998007024114204395898172919638374937050039050113637100077125499602030849371912032558097889177775651703209736594666834669119892161504078200239476275926385486667415758721581694551023904344366585334335906356088910691311325476993870513119214268683091157476648419962916626655086362656882626863486483968398040652558335549765946670069181803071198202508056164474533120709761548834916310498623201492534655397627738451969026769637370183615311865801652838639479821145256275015549018649230952358003077963937279243577773833930772712926358975459566166848142196642751788618256253819544089949800651496909247073779851195837993742060225731928320297636176137781713078705971013169981932392300239392976642080054027018054517600278607907290897702734630019109378223980366165892723038257597890526470149204467174888767370791491348897414474005697506995777724976254735872426410322218364966534597944181212538921789404466265108481948118466777530522601863400368525654411902393011300480884430672232136985969539886081638624293312691795187591602046898050831941292243404674098802445691401289569105345730269804035046117183009989212412810342889537935222167165909456116473021962876008902202101416087316106550209489539232816466705251262222106243001983398202613141271736546134625928252204797252834528808144045859761205485784919595113230520980362244400918457439440760261131479937971772573401739298467898320603378931231120936962037698217871818088127472967774495273544428329887809687110107321019050331225458278657741357313626075211059531147624886608122134087272539383685022349758983073933146602853391580642444021345452850228482641967085734948660012894439518719929320524382999601683197754336896972151283834849130074056384481078814877307755644632415859240184435370456473143065916269209114432767754674561095790259987136012338621142444336289426046789664824570457261636937356067792027126994813895700322654554471185603143143442744195356193961947849096317972787506077598751794446501873539908323018086393750719225590153350593252102358157515315004392858070020220639774626220433399208598929878987314374451930538134220020607503832040353428270737378186532714795745331396752875536830601038286192173658994636447165935162868029526516735659035624272621706342426198928951306925579125639286190385048159861724942069819179695039614197457054780328715092279218917269019969042502380605495566365745303583090777061573859503439374917188196189621110909809795728424645608364624634458402932929197601966475122961720256004305684067956056826613056252409533597643703415615821694266924314842540664406205095767743513622822716388282403650560435886379574659752671307563165807495778647914050106625846486794815781803750819734592571443167823316538155530072050311605008789998218407686383189634617110465913603787024644592974891429852245011715445516688191004190149407451725874296294225432317595891820107281139653175233199665216640925359537434017522644835914346955474502371139916086951520634591334949843978467829945450918214248287165309946510810693401949203873193757849033937062171550210164481569741492869215330190953126991973382065870000398904629834708079152153737328624167420391794744050650989082167328998709619873902268929832302019170004156513923232488164824403440810629126481240794339036457485929791300131597990287473582468018131799027148605425786548259489692432733034929839498693873464066482568051606721655307570380078109230395445515629926850937079084064860887298963028139848326524435166308447314397883672386873019432669507603078915275234050772711690879752390970841390985205723006772748219602729590772718970645728324027705822303436487865694201547832485728728093312415766015939243446017420458526753903706276601973829652653390165821481477243671353133276389532759788650002534821301759319840735274581515633727279128899630659922544039241613369760012210964204516611611601312373752625476025179628653371894850731312295542939946258855434897520870294905141171739627911639564165877382986992816189640851899354633436034214301557220136233030908648082431096981323871534026236925029225526783612389740547713742225577331763709342715359085559855774051478146710165504779397130731372074753119249385294085358178258351803971347133459811081917044045555348852906752653495330705458174136725739072591749243585516970080086152042378990297765813820078689302227475036877288069972071869184744931453056053837912191785164295684246110185160688751158512676910082376639337534190634505653773789057702463659680650364596564822622701404747602655527944901960786911000534525380132408945463169367998592775230816074167835973210450679478279626462575931057601935073075342945137560981908813686373779743561974850597452105137154779212894717524441444311331497779241735237732639586912808038428171123935978593601074257540412768475372860089689798556979481139709902665461302362027411674231778406294033748430061744415285566989793729963548875658821873748666251114143399120765935518075524069622642272299583653217561971688404406563667696926926210387650242553599259856390507752370786621437162239631276205491706734905216939944979285733206658675101578407440949935506979894391430120454194929145965599888555087874003755056766612453026967422295117645616779384030976115547856094321977660507220623847124161361102798618479662454689937869668503847911384075752549190543469334121153495627847425783907038912421967021667933367417430703731073974532024345545675025515296580002584130411661026960855717687347204534038801217831575676890844303886488209351019320808588846195067320594222594213800398398461566651553074743366675855544654179922813813160099104537963038225589214328049121461322392020930613786818083331143332787247448668254516690632887129539532883006411930137783128121497465619650940597870113135369030622743355418330192076920321074690823590191094454330677758614186423299424423087209865384368765311122580246314848441187142790826185169013336082419660746850034098775484852823711268677398347417593086201985407577178141206469454421939552116696623499903482597594158979865227399369987584767942532014953968294676818550853707949781562465976798285244229238395067440247936036115773192037364349111963892719978217139719335782367888340600776268817531268114707351327108544993232829372550510402753126268960327454046355275414107125802457253312519891549131104253612625486293982508540134220835707212065535707865732319752782574448506970457025914919565810268304952465391606317018793098764223635433358236580170390117944472782229904082921843528357587872120384492819620020930840862908381625245426740943776450691275900894092763459582908283284270727572878957484455259087019568773786093943480401284150628019771326372606730450433118214468907829063909322077113428023822896903208401231696506761798660063042923835713186419830104948548446021910610007146930774338609225038415073697565642911945239185672547402788015589955013712416098480910274146916071108097157943267911313516511763870146591870256388667043587638849199668282634787310283497330169560956266780994789338906408257477841670578043820393211051887885286423149724674340588178731553020757180987939173941054542644404761582132075405703698930347177618036778653224978857858382573226189621691587634244793923050632750897303648129795527324854480524609595660196945949955412674449999531467368733229345600529752422293029507140920472981685814553546485300523352259305308672058865038289334031751783258519586236779551850270550769151423893980936626170316656724110671764744036553761855878484245080402184459838376918874256911014123858823237756444092515728070170607534073436633580749472486630233357930873815405818044983911746818021679158679934127033314905519485010131226519383946239071978290116157585284180306136917170358575790697186210171517860711099292199007649348809183693820661555588701310431595692806143276529388275648407250273632928001693621652588823854466494402007629945111280625127001820135666280356285020838594038857875090311981328652879392653587314165986633582707442825002485476651566448573369961768550946935716126124100975883270033237748062458923161084700353044953265970814542906988102915320037384566449157704179192315642047770788463120144851722474481178952725066884642967253640481183005917214722376725684647481153037493621178193097354387961134475300767373059157657265303489566782649261512236662577336279120553392402390147676656691076283985094014382145076953652400411696868333628888540940558870928841062718202034295494265494280167967239282307810879094263446208453041767444270244824816399725336583638945257968972730313286424640264023675923248848804694021961414896380618614376498768664736678262587184204980023227753410124715284548918107244156622552292205462976930430431730794104426225605059482659045613015473251697650087740886916437723750843864473486985862541379765774407380457624551396784419814175865120000941559481329293218935868662463000557738776733150594051561469692059275533810283362066711204089326059524542887429436581765803474221999864745187578791771417821941198395632185421103364602528312501939965407714324515851412560448573477820080376417174672288008523176982405127676870588080015423869202448548939161047819691342644688362711942517432100838287604952447064999499258234207241683202867170912883670433158303051264782145524204984510346565474695037559993679037057109297467695972788506128458664957387244188214003474178671900464030276277166597276786888528879216845977519252060121605057192101613430623211306105670493406221535607873174865104907314773750172514565148822537245783424427121361330058384991783134168330109540245953297329135476082070316095867718123760527659584475590347930151500996307221209017480184971819209289914649768030638788809119044451106839928902416714262296524608493366920775177958468147530721448918913504829813483262486963088426394028576969222761313678312155818496697154579401471328465166469351754964764864440855706354520974707643091644262266767528106748313786489380109224761539638536884582549481127057549923191986678099399308833971932450663582264807889166655819702950749963618310507400252664621121879927262800413543209652221188460644229912619362921919033132132479306464461625376429935405134866383813879893692659996058428432813825592357400376692777101929515525542905280885465017114773614292571220683865918919438742715092406858836182995782037328565325419671854762856401076109975619150460475500920240850346127412391147100450569157927575249192390117685098559154299243371059006713860831462341450799494719917091319422222662601456281224079343997568550385714574247593907995769856084678953080997235977612521267093344899677435628455959128114449162422964958650089546918744431159878729043444546509558784199399096233724637951946348565606151459963303937127819744933224390022686147364113980156493268180627216142702474476734550327485992027554029930501725549915832382754370801440647725337483130401910186789799619493612813512628898532142983718612152039428940335545115068120772674934235810382161391002504889777097581898074212069836189851477907794735723265243899289067529238452895061996017500497125168962108212874657625404422174543911404013460894347898071997038782427921255050754544281316165493922353629714826997258954841443834134267343584645070338860541762880112510944288308428474782272195116027493261818576207647787340927961422919271838356914058887151260821850642681478114419423623261421784641618840942719709260872039068360836275872217253640259604317390347085214800811628166910301470933088122439569364307726026348798257028892316839312846309789334681553636825350652441414579217133105201796625716285984956845832727162697310372562480745827441704625373337446963319725269010912786584661512558603248213571532316919320341132113286883044820626770942180496093820794198051163838998563295342947183858798993699172326217231047802044936600659877878227271622834580643101406630272154951081549006628219372261500606833288510599418713642528408770548223610764838175883031114853052227854365963805651963607084845085962365664574249518799588158798525066924259144938249251464705722913550845759857586593258097374558834741709681469284668774324612485804542163460233574089933340093511339271116256527878080557573555200272195679281634915681616191614408232689997877282092065402322580927607314006550537665308202120716808452463806552851747042852241593451248634608012097790141474008900187956282746497512259975399712538321192241411817818256801528849078013179116409849878680861516616286731962766410478943067676815219407761511531728900859021664742483084401996961271136687345628002757056066171176017682551276013451566659388448364615559410333946214603176410361586439849693054623860618838278382723688200418763713142182362598892208207795640157176340204582161207924686976248542481793444622277147781752204449735973938659706446494740621618403349181704955885042114134721894775238824498445428341847630389024229547758291543089937435569895306664987474012470700160614455564066892077504443568390980904502793854964707106734611422311891110643945930635716632350974479802832921217738691160518171611598538753630975273306895366885410417779390638511530420838342148956324047393839346027329172902469021415937408361595940354545027094091883291728513255550561278755621417450177501302988774968020018557148372778496182950374628893513079293616351487266269878433790138929475593431401082753786933210509727906288525444460066886293000338906833976516209891130686719032956555467467142450261944383104915371797505163289311240007176636141490179148425774270389373948688896304599291809135920490258431323711412105719629569752212577260775806288902309659913115216857163187795775185217980215351783903216810815289747984516076193571647213740338839244858923047428840993279366065935749270214932951262219959627668487496973879054767116143166503988955708867651271561823511733218964048124982884352431187584251060956947152497582499406262902975278329899389217263556249540917241935706620676167203617625304528547005296528085574469461658093264148187939321421784824272220683926402903267841081770558459838648388043830458868464686567190203196748529339001376954413472505654258182673436676689320948420053695126561707583431946248981092659108754004707719569798227697032137024673209499649379195981344370840552971288561587971989810814706690578024292848061061590915974406455055664084529487365524309996877234903483335778832863729855869641087903502718587329452551367370740325352891623048096824567361968747598816319098933203882283409666542077874193736220977260666424528680293389778741530774881119922996028761157410517235398963925911324666871087970067709236199243083045173268148990280826183092071727692603188119135925323314829935630282463072039546206191294526552726861134280624652531462919884955720022747939219251178241136068267733039671115144620660264994702157897272575197703783616097512281863702975473311359499074537483319260220904781407594232537022919702381296133119543533669759672317120618668128575834712062249760099770666404559802129511275092056766852436623037333101524374125367576419575469223706712745599431249624533025402655208732608397162340604727039095290930965678865356130605159760920126718679965039510538316727088687127436655718368616732914875317111836433883532679546893796233577826828973635409086646010006644633340787059259309347481398846528670214573053803668353531295247383572630945454484069048312985793471390062721981048577559108802413527064929424524544902120718528014436090128642088474875271806453631927324406902628760305526295400161734712632745345791268627417262688032772459655828847991365557534164374108468928098842384295504574539842193269719143000252949745507735565938421623183674669331287470548298883620991438364496572734086173366201618216759948513864362340950037555780473045640709845178884752382658732715643711288427415045681669470431737738415266785242055539443668484383579770134028000103514076759541150527609789160768016230558212327108117229686129428426881924307208750722903105246117065422667509154004590937975851480799345103608876506050023799525596635884342403017389249928108685194402995035699721041879684602380331525790936111647113179322751054929548525656589601498132179172166829286835347983360755925840268199889927706922523399710434139085316962101582577903437094012421102840104689482788402698350247957666646976314486174961842679625310753390476295669362015084759910776845286254900783742172716076210883937044836722086455226025362240879360931991012367560851412413643158715887507982961232372227766644124355462781060232305481428499212738118596927157910916199525464854030194054778785488812536961595480659984125996931677355712446625658263271497847327668224567900813958488684615188998715085293106930834649797629508945312652278929354085440248564904720548516893643064940797084359018956141689321632263274648824924058269402473662755999323715338163767751397904579609104116306661853301223866924204147652092961133779091284220832771223439437408336621385746189328533957441908907013687232392086229709584207977299614876988256901353664669041409624342425537556928414712561169041339047703929982754263361944702337387334076543352596824523389463509412774771440451876740006133708252386555471115625237317078870929558733678013336097688781914674383566959764587667025813994802046251172597350981787056081376644955257041958343261314075951572097624107867224925053328233010232002235482672925280334926197119000740486473988380351612064447675037155204244102455072057861173036757515554890010999502337789097728311460863825742909954252155441247814846698139680077058866947496800647868472855971451155630513961141733653643479928744879699139907503238113609941550808517109444609256458523445941467409346963174097899546229489582709874290893703407621061463045475238974114419049693267792129688339051814511444700551355983743451074515807012574866701894759223632795597976730041144115520590483359091085231271890156299084799797502283527333665894937738482225968152115883856632269346527880198415115761780277023350930241792749189349796737156404383555964314165523243234843378095558642987993100350523993378579789143353582184051943919549642409684960117429447021730676029097283146929017243072359975844635543059947075134552723239902764015618817323610047334492853337134795261740837350438194236505336398613033613831533456180500093328941681831631395461118928206153337301634627565995549500680471319933098481065279639611457324421258506294304508131290360693998268405606101221468746985134977208946665671075506984781282227069937327127766086647963270977840630476675958286387533833914978247742630595817192355953907320253994982310867614329059360334703982838746595390068444423244947492131320358005613586349541280018779589940095102181744742353693334460358926860606979417266980052429294593447327848550913900168410155594856275844797586569845620821734704185734440264561702600762657218177554901831515632637620057957134843505362412175226163600648537597443336918429306956084583156176124379849497734554700913641969982672034557376134303315527978513704216531019832419630350427991672027209034971976263706268558753128431632750094113296665631638008897588557865087962904400818043480767914070728312122289377079113231347145974360050661829121130947307259898711259274922017486419368902685107350405566837424456584523897693547315853513956273947674241979472021449071695038563608040511746987576019023982773135009657848267360077504504662221215339032831256035222698519629190594314412008707795415208241889764951158684307250899788756668312669910713961751902045609168206691293155316616817810992534499756927912345852338595725723909258420329328908205707916129949528946041478596114126987184435478934626447015939754824246709705883833632658415595764363257989195926085468436566583977071369344576800941523745368310373102126862533265446817081188481494599139465946136226557600277315273685879076282735483767856668832183570021395650001552971815263650046898557726752900049792987187741299717126478763819705369719797593051705091653786551185334671950643894073717732754958641838085681642368309004818073387525547955748926030044469406616261177627814131477384077924307461668121552271800112605301271439617448835083449825911430947097910401959335904847790312618989654579638471863122958501259692496218989819167706294708885187142271995673687397395744720809666553074575280149849581486085540131924495842286758709808534762287362675227585891288199094465844372469648285040314063219954252035131155972575725913070766928635391096847358247184264016258393924566839479000234720876250228035042446961099192980239200693734876888579747931428189126988966181976236873689536123606197109530478698969511110250519814588422566716451455348134606233331283921283265811010120725155733763971274913847416804848356232215042519872019232766244488753155532043908313957192764786778397310872678317986562499170183584181978698757089609225419251296255763887538577585477164542991302914792628497789005880088419766258613982858784982560007530149013456449785613728645893089146068271703854650712397388760825024237830996048840761827465243812712674159551662113379564709030303605909006446035684749738345700450172939887529221288749732297035726306495599884418730645861059436580126568428513796913735593754237727287350365722311229054499828972668899069997014748728036813087569251517146611343437929757854964741827944813227402036343414809331400167864724314196411568913929265772575025901479055747125073357405518575930898771995501787212415339578322181437783756461102102508082884798137052020720004365898618578257687555296500259024659835688081510752671047593679397164123413280332282479733769713283787989126366695506637711053777715727592728263199701102733041272511165246414635772282296103356483628157933427018312357121221233429180907371298239462719376253752629578833597713679618099418119730663860615931289156275625421216131714302615688246519598257032636885005267322574616152938644402121359288265235404007638692628458110201090864568864697830893747637306056605305989625466225881915109967670176008978604285063722037880923591451479797145139738461220120286318289310192085825036717595261933090373096731101890529755036465771569232853038765196414612133600910764186351857870545131555931599371550308278614861428409855131157486905369531734480399440109101398171314403501589699291719056741145247855481450933312085934009001795347086996096923345900293126950202192892653644761308649114383738168272184527238506672106491366544169143446919606600339425090404589258852396954915425431317656345297488183680350021601661609738971041743121690505344168240491813865149416961970275761616675211935686694778181506739887005929365970823830662533829174713684104736741956064350918508067933129106902962905220289418668111434283607679521124349885243468193292729844725956404073590901866081361626196331280261416652009743428541506528348037968762437594150469189252466425481185078058196130030146570760922008671589872417377422946853996953709633599145289717712448997526244784194081455637164614955549905489347160117577174118702511969514204561062308135566880455572528350132214937513339362001387333464718486511496217255751604620528642395921100618355150359152741483480956825183617681704299143694009059392932917508958157081694553300729564583435012653282049734459895550447498426717671801617784098435910714554850940725672202925072612471922979440941721339212298540939547006283372284944825623281368484055749393104895014407657232636705212876071098422770482522245619543510387668506523880779669616554169859514452927028859674676960535098491355203292345282138077014256901356278340337791817310412459066638187771136508443312312992819255990462051819271924662567618834994313969440611564708146650897289477802146842119081296436838109324033071529836847810486151567802291703188198532798666003303002264135919308586668554701946408097168907567295005881498930667683803816559737057475345369885337203397555685400107299949526043674352762557988594553284465158295680094716267240984414910617982175122408002037969247685225753582162272908506405136338692362199227800371006255895125924782881014750838595366678436171653156885410601302857593994371842432753738340854396605344849679422254301375099291464012572614012456109320337062368286653905822122073946992322861655960719540355602001809424921750022324027321197126288077947638568156531181111024138279733550912282773811336090893351963535249135097820738908357306383972916660854618637283108732558512035653851914314238379866658427087397855050637955874415021223898251695754401152809546638847650718676231896226579496678419297735212387948555684599976416264226683708100511455941238874196129065321441841697855287252793274453640708298426018259679153689935117895419889865908215400276137757083248717706462266613295393737880902163301174854426975592025733488033864333217674734104330237201884167498668730975890399444254098231268576330445115608059094155555110315537392662270260825914195536720638212104972877554462145649177509814874286354675545083418609208350110497060932982146953834852485154086922576903137538403611168892297475160978819344860405297871543644041896740960919420293744787500116066847645286631879260404774544078189629021723710516819246863883611117502145880473184121930750702266050160003538010736024799917349026094098493047199036695648679019721739945468378826510530007163978036193229076633968805547526699510529442479730221870214025394533435710741859121336343791970246197572868398381096491243105559492828854787949310750002378707398860617352759854601195187524013744398753209158800064160385315222624746799573263979589938988028807806801950992584655655523611166602327707925705792476498687652703718268995192114641375190339222136536058203136331946127918395656205738286881261053143626274256707088690987573670066948044563553000780465142687648694949371105068170601103306312695543102542157885490736562917573159031760027568594708807162081650027034109735575374888441885996101969015888889662706228537328222970626448724671988600903030023489775674748062559527902479275792066351300554224234336349186846828047022962359153527896913491030480484052358364230218422044898447236711969870552213692925709078022354932203743242638998593807590294759662700692347827118782181822517659089097282695168476745655313465436029654910621764936793208347339458395067953241392821108807932029454735603265114656411588622467182585182185102440421762751056777752588898021935916130606222233085424108540561052122986517030691682516949740002113174734437429617011294382379437426865297011959558518173640383763035106457866233552437383103677686381095878916638603603727057188803884561407344839414766189405816730882058885273343553561651031219546713698496972638761723996849479306894886735569330927037250116503037211559125585324786717104951327301609896413212004973012690211090994061270104045534831652145972254207838876124784330239780901771598656875477059207232844292577385411013311082921717993198138756416656200753573837843763060745149227160562413125640127592150086846661392851730954771231610559504726209539210112862044227027414455225937030344028143455514736255628864218422058271574747026482452070637930449967129741718109160159253896334172469543247725798240771982113716603983504219110067782725938224936714834875759980828956495324990002890096512351112130654229821604926962781086836106132090767967248238235548690059968731836383474761352795312044334419927405457022730000990808896385951836827026986112756100577607866865061618607576269319433004815830055058556878234966861951318382390291997341132024036348253825292731540916936098652235390366281674416929202099416789588419922478660709353568818439825458035620268699540964164409019442849626679060654222541683726897331290014252283508239339736315062392574314464335383356425383052010634091770479401597530237498190199302138875176661341983786939024816600122122590289124769577148837931514920502463299853186899624384245017456720867919252815541047198066946060951831960557015686062274614579306211247845114039780227881878576780797053668077469284636534985761968376176376186073467620851333289827096437715580130655892036624567787475001588268927489043201591419040476541482383217153247113080990513470256775106179643866874901942281611185288140842080211108685636602004189186057135424548590928867853702369246642346237545820492373073625103340097362154272374834614264380355778654507612194636651941245077931032458438338724345186163252662979649313340939794016218957650672983424867310953591422523136634398440833875466249314467237575771626063779000608472701623189367398977856688235639417216420926611014581966381516575801721869365865362914429066593603937680114950674568524987118973525406903435396158437783123142572894089130889369072779677831456189406787781479559195198741911454171059290243364774094595180910569526343503110225699122688410795265581221760223756510047032073515578912663145608234146701742212500482881540045279887498735232044088982118708705611753498009034010589470047079492246324793936108847751234330974913887980225361510984930113557274335740141335464642516218759296957169457386241121388598739075491458421337084632178244609543358258029443810270633307225215805518357470310799659865542003890145864257923699719323456651017029796739201824764061916564581353066021763078465137334243984143714715754212620528351935181403843957621961963039097392428972938293917462127442563861799991078852961194351498882379921509133399178200288246414842440260445707990228905036849119666448134487200544929143253358127109807074119683260170342050331918294377179237660075898137957719536881518895321195169699841665508459410823535071022042609195408530661342870456803795202621908997965148957710788543955502407608036843930723588294109754595455682901243396663691610591238970027136186981586101018248541029220024178963548595076724430457669115185305119335866424461887895645848849515010256901981632010036463111589894955344075121748074966560234438975279933764448923773703471239332732153866022299515993997960463203092192930172837493390412303306360969152747041236689324523756544782412466099539766685393154394402073102639713684966660770282612800476642870625084526449721995021219041009978022988446373818884528801114024031476874432985546804631847245598014505687522172855418311523981894741713513676232043086729678117965640982421491816946343458023710825460684082490191511369126600496458033479192841627586873457539224619988585393717584256213099960041393634591333082605691190347909071070199989840709798230222783403085923541033184950275297038898466746072992715174139165532631025423949352638784795352121627789824910616100735480518697340630906914095901769393975693082533389928467230056856035625957824527921751974821425892420734386940986963317309850424915679300203000006346989416871756600881779322296407955307895998031202345628305543926381461952263098123160202431993751386510298136499199200262921691067976193758293711966017482356523886207453852369481384180389711562018303477634918649887288918273691091852674332421239331004588684297027262626445100542507926704859409420075128282450437677809369583253892552563192381558887924907833218228868239062840722740997871786203161120762398679842121745354921949050976627069319258867336835968058648901846751675168488672600315831368753185677479829622107624311477726590338114314667129608302757006328299286229669265346849800932164629017717385501087632126709929616914020140106834480320389095726359618361206718435357844814569505857441606193544424735672440442134642949604616645690376002216969692839971014491150118450249707999299972945279044639068308412788521718210511703782174414619874886463624424579661874129225481492782472918749497080039016795983657030703640386578254920243597233831304965711215605129281834917223272247496249162809627742620041071744414243042760539357047684729659202535982525575102571336695568757603126495726311497898557831734450660850846259087426452929988736045121501162466839277092171299973041516961082494961471102972669828112153137860161691824382504193907337465001364387560620115621814276620147960797020023725251283412065116159992957525091896198445970129678846883338423985389765285979905664960875035252014201660492968925146693643135233838407198224464640156966574830492717624015234934972466511934258611702565177507806933298176559714314155218786748511362014279538806730254736074781511907861345313644946874783896240427718140179955139025077018928176975876296241673840738075877135020862706324043976816905033974463096492741267583872170813958048944199771260595638543676114120611990235191205274946854797894417702527803568696388392005084025308559695698184109189854240679594473208794642962769524558384397326217402854952363614035585230441933682675368841749323903579491394482242558369612004531944539363893988869802894824185516430088074371119831199912666718455572551453740320511492567047662399031805655789980781114152824866846955584965205172558067882883033136692221523640019575845296078394437807908922105768433501882771393177367737665314259435292732121229092005915254630745047810129485809339539998482743421966748632193085999862683945526296180087976184491855123158525681347414197505579649927817872290963360509798661796846425934424033912917852258311921797199388678330907956956403796876015837945986161032502740214667780743184558283931988377083316203977475912040936863204292423610301955647660785528973051168389993209597137052144701554886375235797896141409668482223197064630432898834929953955326342455315754829803091784473249733369672459575240787746631845029458866403424324608074383814037676710843402127277604920474158560948583912107960183999653642234082869026161478290310704151344656084457565061114656033410831395930771420501108139049378077607651533159607806690690650614730436610058763085782922196711012257833337326284286339309435248501478660966702308117236795985781594399087013468646500821628310285327707739489451601206175495147749382296025321516274763254006388068061135002906366892125798297595138450972542489560033266826782471338583137507366432322008898050108901307223595333351773567248246108313793099782512713972454131839413158548927888428438983383854270276290279104687439443608444440393167696487863407865493722701596653560491706671522847950727622522012491350618036204024268445834538950344433491663515000161517560361370828904411378523678043589062597814629509755857587975468738727467389827212800538724252013159938993766351100913859610734928587018463313787914548102301116534367213243877109235193265559448575279457026012357195908424552677239437721252713895925958233567993479715580032007820255165057715744098873893561432487325317019551917605275251450662914792835086074510089913307818538246722124338248926456624715519742287712178428332248994369365288461127379531584154040316453463861373423708885284834928803805414880677809307439432743771361082163780409488148612567476367320012982694831423896972313757698832753988140694027241957040020235154112273723899860003056923055830143648245764993498299824994641169392754001908458952455208181832659754963161501138355816653755412341628846060475046046634641792458248484922708447782051469482272149286792274087132298072485096780396595224260985129585696285249209885460139473310300596442066881737614119022397369739117678555728874651226433702973321584431147515106909664103079171690205208338658981142023097428874532847625499830275250190827904055599862787466367844733913438238448276580173358144267890038955098604017308712935980260338609015722237550841344023352547663956732590533127591105529376926075241549745608902419713826361794251959333391966535090209723915605851623763452445803105720185478770002431430164608724051539422228602319522405514838241336729022999439759651883590649249757867190058917898225247042426772641430633760293071782747533375679957907355670426547816693513920434094965028560834449752891471044760892644088636535491168923725473076685174545777755581142029399251330681875975018879205775481089335601267351417523142932946602806733861238605020288675273043779477142316143660470073065229205356672708654396719403080481377791250518992928065812519745096479008858803059801742595991002077545644448282879764235356474448714952230256564306175604708711848245461132144934424154933404696951089305948121774636067692661458214151757764646306275808119521912284942587912371419424079390909257421314420294898011527636806351036940728189685178030527003554238464861302428717299013930490344148512232647724730404332618460080959599098579196746998017836583913174302247710894433183770420903749078291632176779296250560195680889658328444009133178305914092289841283324611081696900358174207836967869347238945581203069158405263657719675728967131018812443548515230648374026708185918903534911732244450505327849963162799934169539219163317037183096623876443945972349388071708965257201352232393797747288375536673045725200169324670879991153332137442486404123448988701786451129246706258973338893954665626119056787341267662403692802963628925459968019632219446095358406933019661680212245036722710818618713441970511774581187532909528946168704444337807170992833869694966711023236190459498160029972332327408249440000693597105285404922757261268718561667767076229047024116567880016928222912594609598637532687269274809737109955572584164387135322690265452499103111911173052257554606967471996984292001831647701748730267867212070304729852355872190039894848582387698627539342941749318692143641545620360240048918939574709666946149680312205506331433426446612263743525601758566361832308208214037037531711824138046700250403696455979101896261552022518100397249560079935558500856921100970276850733815006731832000146279512673730500413980932844348629047642875075273245751871873238049491274360632356464721840461188138509390380659872019366648767732326235938244609916738323226804285808214765872888301192704267524961063016508632951651196190230808968106709370428593083485596577033922823176106595517224798625159521477626932000059131365246081766053011507821094376111997373548274494688961153305933020709151505662504309156074741068417857221206411805013161781354756239527257376374875113705983181657972605336050733731276435339222644547752969640549241066120737252750373688481448884528481723915281502544485847675995708725120634009819208867252860090101126126954482330108705686343651118804737873595935111330273977263338702453285730555236210918803449718724163903229592320940288417212686522826856606244577671723702758856197788922028335125408415098594539787010785680664265316501609011176968926469895017735273803435021116006186890882342009536252161078187701701645650123143811748291128442290644503875385830625430912366368152129410324123318161777944901164099073803906968052548542368047381288159496779639421515705873109486048369692906450211153048359478537852984134928977871182129930554016456870455364210596845288491112969236169392897717827929849051629577678095529898864285235658504284437044337298588349181399907956519230953671646220667031781655730752606651457607731613153775058906982606715238187830597989122980478584782504803736871777779360863122765412154475403792631655210955097916361077427262096365112474552905613451614085840630396213114508345201325869133150748748133980198377951102910771536058602152945153580298551935790915595638247276960906997999505293238311053583768689591896037452292002653286580110550000681135420063898644927959559645845670746987757021028670945164597600322141873731195419296428817125003453032098580198236011967995091008126306253755274442829514590507293187307622542247514156131353065887363767690974998983887251490621498128883317386251747684247339777324296771256870274253620591552671951755131695991502672087936923363198465678072591695135057432919105829305413273044109708896573665790146872279739238135917853208340867360769743499664455929958902880121315424407353365432055584025361164380129090871251651996975120505669841444389583238371507482508542294533164015702560210977927765477285217906619280809050892987764542754786548877854311724916885378245899773759244740629369170919509101918533762600634243148023239237546817100280101650738477842462413925251690594892854008305903490163727814399912891751657292252933815940591490952889176506982457513956955082166288655913998976508921490687697259904520564229958905552927362276444527618559853750374446900609117977855956466538568049206061729981826853329599699174845736866421169839732347913443746046356196458852339607283686268829202173917873818949956771959111925327057290585109846720779248963482069797058024966774526713932986585040782146869112218040381901545197549815357691408737950639383238911432148995518550904922163278057586254549235471794020580622769580440160632790520532737889241199656422731958669721427329072675173105210936616376275137709765320986820112798368048268009628062658528478157223907909407649293015039525923913131242739812683776023758786445306186572513070121823463181050508925192435884573646634515243448219131903335112940611919034750140954592136635611724683943988207128838581650707092827554513600221942650928146445153788212158495829907228108495090303632705320500889684409116406542670830934432060569676602660732464301642113350407781597581990996878909640928041559602261655080922688403135827829610612541945863198135233111480738874442480654737743425662343139288723176618797045051481897457557032281915844021754038963376354059542847215837791397465074712876916978193392832316943832997574914128635017859242964391579521598735131307242814195708947677315827090488987787179492584153474317969733294718603403679295566893711436146801791370675626980954794791000928882389146341076684032969573795555950564239116501517650756370456671337954754275141974197952593929339849286560702352314024541495030479526869689706529889282814834540347374857100414124477470507607827185558391325584538830840442876003386564795233385041125696272570598584153223875203405155578460944073294884388110686474667715455804394966356480858136916606662704114433595010206180489852131819380274105508933442259811343378217147644094860947431892124636045494009673507989929087032842818974392765620912314749333180763831790915527655139273672043653559879285425717814107526412005255802648601559797842370627258374768023987546265917888657870203601113470505376378657351060060488541941745983472403379526955427986272029407686970424325028965173114514118750333891402517889234168190923900226558192497039557790601726613898936018008809332832325351824996415543092154510381973913939087192147385112595788639042101112683922505717668173026049703644699079616708518170661827072034344110706362628141004050778025576947324861013053963383694137808753791414125227584030396159753679905438127107581974238634031571586518798376359848004751161831824136347669440829783046953271335586056094072073631492609269866855530255684707192775410192917359616925821670526789236378571223976135566441872522586937995078336778383698364700607206185125385541803325143005066065511605364334755052863668081994953904995863803877443980724303973733731804624986343427091738007169350934524283183252703965981961979631826806616911920421081433018086668508991244304883496254768905935481328626151462203794890040444698289361913399221089397867359176335973830062349840256333956606043935090159028330049488755294019239743927625299770362208204535589579625964327988171729581017458142788360278553744769605610645647645398328831594339770627527406147739982897727388888768895323083328388347349647103152913366588908818398577761839535812339838525200357532578900945894473787288868162338247816874940529275260810293578995196458048725875461744971081041630853709634238273694043043968552164076063979138037395334628151802300202704619268409291412345397553760579506282720730619789193587480018725152354995046917118729990134194678950031569308325430356915792763610110542715275362080715592927994784507742444765052716112932764739417559230053582662364766688924278887528326387710455910978864631517602246221056025127191904905937231122362694954676814483375121945830589906783731363310990955207626886306039073541725901715125780310384567277405989109534657610232951317150587397120146549715450606232060153178522152639380854797077607641858378116001243388743662980660859213471224944845251082927589827147111645521926757164352509772914269931745257061445462136644740585533384899208019206617254329147891901375018034055814236869031850490032988620508076234839537931100938619794184726080882229300978695114541781448304775700459505543786301781253895292635577215198173501656802958547810994757436162560477282149161708008043672788356876489755897438187519183930369123703790183191794552522572509062201297392958345298216956024706300561988956738359094321995551542499922970878058086950274401831059204234319935852051070516298603520211474080049035519414602929751472316577659532821937086409406127259800314278074099554425282246011428900486275386058409544480182315972472939338025513965226843787528221258614303599888323457543043189540829112001391628119883827938956206731435294530987532871776268125310818530434209183021232024063636976290567319798569861999455626190268547478886860671523112080505826493178042785074831686779837065614885155623913035541987935864916009448505593886062427531069663610485028486823204383999690837656324047216460432080623671929987219389728135081723069162054044951426469938472663332968566759712872267787546031715131325503546719520231610328425345822813771305429611660165680854758162692815165375321579909660784497635373817993509733302535722704911038009522152485772112616044741939240746355903610560146152700536527324076952659700873003142455423646698911952586296366847846498554350934191309863030722619886027544588048259071513055927099304304735169663763120686315210798166509752304042223566221378409973189334994969848231172246389770379858612865879117158070448741124422772995578936979313731808600041266759664409824151989201547264373376599008773953257749737011268730533921429213380246435335205145400875124892952840698111450933004693058685807962815363212651419527011663299554816813996424659608663131826987130507486540363950031487866692004168545254403251111108019859001537837629944680509911638650519734037034674618568045116433579270017417507244140975012161941967036304925238936042589296515888315103248479294483321660041249645149737447345008908076501702856354918837883315483454527542784778423357035587482335960121873941303949034270882914910732781555426995580701118419667555189621448702093279316154743649044601901402051889785319860733278225234479552179699814648740522682051870960071720476947236740884359512080335732644281502235826549727102385468385721758321905619790442207048448835035722668432964840675816305485547759378679019656292678064310445492979942969585313729251747012281527378100077015438793406107514316472041725458555599312817699149025420093304213672260267998525617626650181856229265142302451283001727357080915360781839382667588528237040481637335099657470822986248185825885105815006368073271961962058866198374434370322535543727112834026677302918855689358227577814799823762013076723822102334157612758448345807148010462822363275992021909834757034285818945819177379506248562619075488371370434165448724445747406262067618476566376134174751159773651498898451711262167147786528379754900348089702990082514704387397045372638788960499930083122308236440666736411118951938026914376005737657799689412616471940931296675837017510782192570565302682843064672880495740349809215622979498527026405416959577164438350825483552853424397074681441367271399286983729470087583016305230938890290010214554708638337995845434384402587989967511664907902754203794835106221707640072661850779451755040300843703972831507692859651481094047071086472540312546419514908297425667636196974301237580945145052397545898486742013262484819244674762388273440693772698313013540526532815536450474855159943222948090071241704814335247090643223895489993024836266548224157228478965686248234225139862397483253718864760719676111089785481622190389341801953135692410487909186964545970602040538796117121369486310803269538186193744903650674719110473729285318318571458542619817981442978094464884706304866601572290083293021280390713583866995333774315812408812254951451401455745722554975209767891946051510038689874658830185732120725572421685100941310262276642164043583262443910172587661031163153403634126131336870147511763123916452735916699933204830510192871106130411629015597544258864547792209899322522897230425258246527994459167869581721260636595734822945232129015649587099972772592499248282903852352625166265919359241636415018533896646529412042000452320778745285938580736485698893357371034848854465768038572906231927135387028531254085896349226324448005094975903982836569107223709305106535726655635682808336290541654979306480566914963066684712578948714195662382239508787678525197686639719500578274493646452513924284853701530645860171206136591644210016403676601265846814310093157283120380090228721132450308920044868770128430213450822202643650151775232148033753625356030831332269874992175419376377128016230583323355586784464903231135472169086835870122275776867675958455813582019414401787844914309256515940624949062180181954674194242018076436016086986292544597102035877402360657968224539313411241460013541672597475455645678906460081939681926113141340186969835372011959579893496298992540876432077855289144073371031166382959746145683588889373008468480797430942811504835513214528612388513559802200526127817484388089833428410315627903751376238041843014452085145708457123678641141201072467744992162308843586730936250696970529860587760248806658866004573758106006752319549648445922942091148610264840814545919918119115783322716831357726977770367927383126000079057406658123941332691218758233475779192001912438349675486146806564115249828837825662151863076766020105125225401743999091071822792737250788428719748050847589285031141396243987812793866366481242448816989162701305407880057223177567462167655635473932103882586496447182099415809268109252790861808807039027286693723417106035134637592874380607412109458532030072781836620992610053262664797664716242739706985189776080670167294050881520410053014132998571985561316761863230341254903061306669365372559006870379242133434905749166366043456734182564123756753392012335914636342693664081307914679995358410650676889565525929255287249729592125967985032684822350667170702320326381499258572313009596496436042349705962121620948729083408833371843235706142919622515876796550596284955642420160107959295988660141832844820341813578320824329752336321819680435888699409226644207367125941771359149514600975011746906489582719250139597136050276452534707808248110864136047661880533827699454670558317650927061713043149075428404916412888967751040460770322229731299827725258088848342166164158179611226150640288029940464230247704682096788465079330977600392311589257699655708983334429618391191458729577604341230826125316486418188170673338303542485077225694574130962139004393169077602757053922053629177156860136276781186222526793519094920979308138265106406888478039618719848484400455374024597669281606806650579546437459408313791375462463626714352033424017323103757658153115917399715129199566213662040793778372370078409066036413863348281570824431402563489387650455493888475621471439943265047376061745759871424055902779702977595134251771643015839842439216442080108412612852381144943955939227732233822610136020630177230516009715297040799752067511108327658872980543088079146941219836361743961939901391963617478378583226488408982676233670627564761367994412412123769722095859702197914874971535935617627838313242669116610189492263744574994016228619067495072261310515073972324468147464449973316393757544072988531083650264002407576859040708915300248384826897901106275375146506849040256100063563696208112514980965630942246263536852547622778737435463330661634978612037022444590716686105309901480762233757219580354474218546173670987356991285812981778728659234245283377039035319474692442020614068317225525297678672897123252041948571593085936445046553526455098258890619185508171615647001801183890880617799798268414858458937626758531976161799261437823336304867149098085162484620918205729538008953253524882813447166480464179977819914113132705351160751921097643965651199937110396150755629674803232798441897571552177999766134802868755449022056364923050751631609807531016149711837420851035310390400969362506393816096993251150113764554208721011212883849633130981177855949224218886274898960804794961983893265238342833436200306362786629229300928424196774912837744767235373287620604126595937370471121094015290086275969674107058462066983028649348094481552080934715103780310877498696739720261703737070402505219922353312310608760997226501909377820760530376698336809203590439414526301158839421842796036163464567222020686702863594798150663378873768905757743253422325335002358633159971092134501027954739988108830352469916990603138653976210992613754828295537052115119265978496426975397937008361838174520574636888222443138179183737833477667775548733724281150217763813913807999173227695418652547948599920451669849598419772237466893811813258365755594909035763338892697435354488949018399346659376930706406103940300182938832079698687364600131005062070089414711967594545574427094355812238949760023241883057444414362656893486375402950165206919279557266044703639786778198159341313629310055155356092609056881256701881520547989828195120768170764074628811692239876086403828470900286089264814909811344523398076280417549854632936491075537001324546647072155340669169689801804359666182601975850286525183765603336307711379420811472823183565394201675287814586803827745234874023027474184260798862923540141525256802710431426394629418246299653614095826646609518724935683390106968018445659265673453128402550136521597849329552914180831068370254505132010810138011618941054393794627882988859027875154832590761722857994664314705059964581024050011336309835179869512038597712283055471969177542264593764452441163107648476803159529740856518933070715332095727034498588044091714596367545058049747000241253220201376296300927390869670641087917564301308095038150857019999741563400912855137971043966960927147497219308403100079406612192819062221448717387613803481076687769994348299903970261916232774608374421669009721447418955143705701259744657820064558028831175087543070478423584415073859746484266274087260321646656832282741151628226548187106541321558269348540042110660289242149175359130018969856279789954305171081366364786550242650020119720876347754133839645076889678653147882586810070839805989339508197988914377009635570856560438626896818240468180927390683142121374530776121597108476932759936773984911618236962937009082992334969252082579363558182944789829596403521068928896360716157871907082388773446266642153224537647035552265471175455648676867627149879325017405892703604357953923280100121673958415014577638049665896113708049936801202592965460579406513391343077619204631842719094595698019204437410227566470174491910692400850363849014357197622036440765838382862046672318228985775225532848096858300699254294215435734541879346445339696109930022601129096603819006906769727077660938898099257110244170640384279384662383062252342305814093811828976726521276139932353990605490384761658773616806556385488501710000988807843560904222937864208557241557471659152845422362263383477235307464100651808167290807805470473967168733150490493775894338419005940268132521441510694083736744165051982592106184612078489727344838964031213797879808492046833961273915821271985950937435385521983646694312146315407536076845211983536658268366865643109808284739746955462996095268107102909228982594943394416239528887957519990593521231258664463632859553858101005162915351115766543396024446909870804376626833300171482305184857999948856770219233867002434093771208033560932610645231856122026651352124772876095210448208050269389920300497989305060804503440733527386328865288966105947234600928929466381330011103737709853238581490873479999380063334870243295573762896964464584578423867191155265480198977334875906988632335484483328910645217774151339399997061949730739103466918972869694689883578715490523701992575135900502750035681542754205168029922702304551727458395041740718559376500574659017934046857868270995469305544351293590590952312758005269229677226658748638347424280344122406627026294594256092114211169831468661518141655732639631652802548525571463034964929080971985802599595469037268057739292783381384190510865772857205605319939542673413741180469965118312750569303542108550757913292069585444508435032152674958776268789958356400032145102241310271431350158252208714515879198805164757971531440090453119298869649424779043215963365997340927155981558512969237066109277742795024291860367466123132103924469694693918746621721280435676402605998013035230929584988693295958782670880601383668683719136278482285590002559119270401775920960489582936039548455612638007035158557389278344331803930164609922215140215713028440973685552764392375216619998339005000430705640222948114355638456778857123038010568044727098639975218309537500065724618126518845266970777162471129547029634606609082743485605981758423791228935808316490475754403719747148384092934809016868735995116200306178769146552981227885197575612380602424201842827472757970534843870587405768078221918602526150566596032156942468246844443355166543020809393735303140075879006782096917218663770751223959075524158722740640816942488608565220642527958264127336519591964190191621169355376736711719682580573928173912975119656494212688352378323756431650860330912540182509442826141330628644279056249527394342202403567712021870237941299170701215203236617704450620394169617488931947228741162211580153320247341810237834478660358335114860346996640809571029207887836906706752670996990180853097315461363409214794987530097781828610417673590293414550802569668838545230459416159546711703814885748801771075551547155861583334580070022883380338580522610565457449502549144457812053271444815801033390612982499515103272702974720232670175965068321546531776280250621037800377740451202146525461046236177054649067019001512760267490307192765388686475938917032168601145632345943470614455441822455693383166585128271544311814328270935122004875921058722423235949367348720697428775452356924726562148217719129556698268871729345392320343974677668172066126068439355421965451624695639026586554752652695415012936160777135792748574017975944861846959253069595727043254388060979335012763198249656438513009160851938058278591387464960296825179730721248707263641663162642265002969942036808616745457117630604668900767598806905602279834236194115447178296092242072854738461828656383321434357328083561719321391318728747293934384195055413172253626442533748558251293593074808197794065748998474893686027634908478866441503667801954645311528027960568939417632583821518498544139031596470156347082002875300383173639892647351084186953163386720814569993055244607209350281246789731763267222743362806099844853541815054872901101955583048415781783284512415394576431016835902225935094022530697690630554930971130993100282025766777292385995678586437244732210258195888668892587415567083337802175033833040337483671810503798991450184285345108595277056552160563449850400630275517953517078473709526294305567280146845118971999745711210590591659182754016286070793532392077940512966813936860288055152547504864960416428867732061856947415799231111657981905436737713445900184106017897420751356811957613133998214866974785401901027924353937991078715807672246488223688178789860942548091946018841013368304000126336183880977894827587147673627566746114947231196714583996045938488590245717469285995905652692583651606563368443875129989837447610958423835561360286222965272165461164461832239732964995962499612668733720415890674220366902571775813682951288405006865943425747298937210608865533043399237730028937784446738736061579674896941023735562687567898057642575591148768473976191648691911812993057433885616426858371483554594535787097659827539113021322588634333955976428945197167306089893341847317881393039525570764956740184594323343212928516339706175887578230464101224855936681550363894837498582624506806387269097783986162768276407834203543382707970465389657109963000961469512049077208162447114376718190115140230585901964826852162670299793458530260376568367797813161026879861010214645244048639382455985758271198370747104922494495199882345588713867637875871105170394940405583815428740427322676743437462102438902091779076293817646209466536983306809463629697202811157801243293367803029551210986535830253032405882972821522174019978202659912914486253022397393870325102211711742619674992363840155035701892417274881050976826887817238157270030623609890409104072030154340896348967715052999224325789921802201231760020263080739841942684798948986814652821671606337747775912634021754040788078862125464523656987878068075363515751662283797655899485031310258226105487967561663816714623290564975457560273615639054466531034158495710160477298264741273013191643960556328228698316048261747254921682412833910879008572949010804435545685681809541685544194074090050755130286127810531803970848184836578949493329848697858407605323624075969273570116944914122407640400688464057702016087101529788403146453921091579744696792878140739508363232043078509918480596921760936421597116078888839951578661664059605380496407805188947784202530854356373083679143131033952101749679063491126552237722647490435654712794407551330529387630151736547058043312330734883366627866542106621561284755102674235464394458377033160069320137116721513369723669158401911740529448285034103139383714659088893629625444828597606808472553238676438555099504692282088968309992538828460810266405014867021383243833652835562436436685497813568254508952727833946348527096544760148750952945036509064734049184828074469755672469200773446159040483112499405153569599770731025447405575197962189073446646749850588249267198441562389497109784999893496548192177731497114421269699489291886342874103204563159935822891344797965863335555731466462209063802126791685453220746622410583873898882403194546537221991568956155182812599936706333038611126153635627530548576885110301831327359699906784302840030355894572337903679772910802087440810456744274302800320586913226621559249119316534888491633365021137332901992395907688372477907768311638159893995156957576575650439889862614560704300402086433435611823620812480150599954059384740772892275577758672618174988268388236590828333301756908116835041749484278051334873217266684581148930669698600874821101328437947542506243165018393109804232799087784395939774508951523208469227620079230395686975497003184611764905822863683856624129246547014363359825819706238485725124480786078168012596053612608599147899191536671215619924831135657822140504403654106967001313208490867079660688402090156531358754636969794701955201223635443081961953846805749049056082472773223358161641173990232282376983933596522424160869677543710104652865802880241549601188146790958350013386847923273117749713768911893242467551315542608775631794073819296997911884902966861914104153604154922758664921225356738378519235493050719006387949373518010716156038132182652375887778950659420128494525666181996051779546154958310399589624100820403871697470524376905054258529774008501615551025237754747418132605288151487350526427379568910687711002768020957830473213919298550567375138193900055775363787995806418777423845383593403866496299114259677483694908878782979367295143009539476774882524413948337145519064444669256402796872054182352316386886295942243067606592709013258410040127436271354048348099405192227455136532759405686953961363566836070908244043569805877295626615362068167912937319840771264353174826849211148481730556980581746384130340954038522803950246360206135984232075699771063859674545816980774619469628108397149181444778500966327933348732898378648513564976249326276549651367032718896747737034272651304049670412873790463168701157363983948377600573428034561759661938374646905552935802970788800411655954187592584761511500705541420533140038992794823547032809605193045192417447554715739901912773510104896466505629483975001671742483856520136701548430948923942870325652251302751995034472621160797669716935983238455433309077895778422284960324242534972058811087489232793980811389447536735691882869354362403291499988270423328345209777377228659835409396368117099901649039668830229915189574508083870156098764575378529455429301399192856502508889215414056616529961251148808547288573700346651041571823675481315446447000475589100791688685286500094097613252201155816410310515220176479541894572789957794340086155708598434506557087881035624629523929574099673436736009637910283224143962741833501238239393914094105512186643495767725005153078780674372847988473013582061658415545639478230493009144992796355792166415201824009954738787809613695874906659707617856905946364096983591177782132824989900793864650875014057330003478257853327529730255763258445372760037126212139412724228457023387554209206638395250265900923401671587180623344497663997473235924042634454609154900004873919563764683927635176002647762093567604651081206986239336299382326645858534215396739933328404836543764723110863373621085868181961955677970543034281645431503411751722040248272596443748613607441448096566321016102516230758577556530733148192609353315434066918470256966037224624262179696171362278990823664138631354290765664270925493140323704252001059824613037903592147381456187209508697690863442964752116648001682406629526297959498813530232056308930401507039424467182436279787172382286281138512138543273284648001187081995892807449149672250437013264935145523943839085599838959628713955420721411896564960910712061089055920351003831797405322586345852060980749866276268613733601917011533158513500373646032710166213081191108449418950134188683620233898725813935913639720846422797625289559428509401387888823372979592495472555981733777767608894548777804473224607999185150926620033933714021588660193832721220080523011180485149732597943250252923872851693990023252016727989545285576840421125561276742286250324490502756277438968114421982264725262008963651989969469940700304570038162311642377808107857283438642180658473429408683875847000873694063417062191381558115208569330281787024399479356832545550141726314291091996797317430544988816411021914374465201263155924305618067389721479907021324739484888088797407434914153986940405231427464931880782083856761883679846804337838150434934326275547243109639103893048718101206913008356160844230279924396225048691799797031763557684103785939973264260523785886361750636854469636571522317281825809483341803467749574482108082867545062525211828079784607335229779664784922783985698728451830684557761233383838392173839307726570006064263962928849975910882633123965686469927985868416198216555321128150744616765027010004832204328378751330579773335955683448883176521750797255081523294648269201407083998918695067560566226144494153329091096599128938032439586757920415778906052792881104412931202262235692269536485269191562573688133062178804607283507777386431588107022909201202608644098554748861316850190738520175237997700358824888999188157394297156737567026030865575172443769846396447249542393180569639958706336944665724913387795214801171163705827719690082495548571337557674975514562253365737123533875671132844464066619509773706989223360180749185005933038119575566696453630726540374116555224871146396695124533878676994945243041285901551514689525360915462882007269631994780702255992264474180149389712610197020073887114286720459626668531980067159369987995568047722486649657985595996146036780831655387192078537536091748067290540625312742676172481735974584182676601714998268824971325802579058547120292012777802749174728483319645929697715193895071798453314117350345594805122922969316755162448143557136014559153971666234093819645042659966090577841277543670641670441963772703139738022048692342012517145093515365985735080988636657538922436064732882444453661215193966642134918977075087907905298727910523996723005905593728370831217558676124325973801227343732031543932638218070493993529437716351261292558513578140503382305472708988800756677981248224840843825332299565864964356543087198024712633950354541243689384901083838393004271488615304033843261329534277664249235633165521414708187189269068856581276215287231007739245576781782317233014158110337722000047330611953082471457086457140879884009663900603013713808357857869977431699397733353622148928295142593624450878677262317809934775605619708298615063273643999399127475887614272215608554069594722598087563675917455818117997089205674274709657273870808773663535053322233478995975985633958624646099142886910282318698586026502254617120498067428374348286894074524516974388086696152309866402842016017998021792554250833903604566111871961408275464153960406648938683516456243661243658291147849570648957905936105627868420501665597166076696676874974154866282906630278865227377475589156784969071642470640883655382174435956274193004132701959359166285054935162000659422252690525745196525883374496750587039279734912030020132788437882067680875683889522311624850796593407544483637912071263835041338331032190883692471613576494842649422385879648870112748164443059697502572690129063609986067447538189979224218118100041817774139709724006319905448407107822505548830225545999528490489965032725945857863995691061127709208090263713764320285514915850394504333597462534850960268798419798153584906491893195879039900589803135573491719665508685700670382971452150580175668879995734134591922845905361801602298020291067415121131275424938520808124770514072966865895958095750121019283702455548601539214625623093809006488963256480302400652662621713491326858455887054386372736995026511693417184140559298638830128939555560073610522010010297697933825376770641990472346616200767345571480265809928278551460151493033676559501843183998648601765471568369649593271592706389425641365461405461057707088362544246257085581378282577401266505060663654107565089564318838654507810008077439863452064480196399701097941749924052907284368181642856997536286325159106882712131902695391952176153115098580280125687366623397934960610786987987837288135555034907084750988802000742015290067848989040386303403841246427760611317649853682645315755879631366006387275765505293370967684112372259180918570487507503249999143208190348920106874295893967543522389218660016014987634437114319136979609164497454895159224557279808988042237740283703624533585680059643619070218664436565128201622448489719786347492384704750789857793474703785014261984285275150610452349056846012518449950921742264361660487077658382462793572583782746835158117984170943951125898046189211073761606193209335833457321746344794791731312909276731247857357166347764383340626059717288802396500058446526571066271481113374273573465012561667285947010175578441588336270971401707776531788861799145158404178024389200616546146593459356731890925232894677769160832625549541448680413229156995239790562008997346674588926403128013757951598305517885424764400220641929239576725035555926953256878620932307668196628824111407068723027078076945592789614099901688598816295137770534536917670287496825728361013999475570357596145884531810285358902020158275116061380343506572611482392328861210966436735323242545702589051788721182979650788802908041778860757745010153570292819430525726784429508651236619496934536606908644807825254340573719645201206089896029260336323121474026535155414079695596823859019345207047401440062602036686138943259549119614698898196776267357533620476951199909560574464767590093018330492115758902627093566209529024468759335835218277591382992924264199390912394638920014622601910990478357928800097076701691505509478969964328197841635396966716363923881882312534925863396000356884694045647408939993903867293455643061526907964761766848385911932186855870996522102772825364975524733846901915871391800056352952364150756575573786145309229359954122912956400277603062592701823552797111881794589675534456000503623606857252391358605455334781542232998846276292869522595914229431534979726500210901796283876866861785519061764394828571991798423449947727938241868052380940120844197382130256668221326558090176202027129434915827042041302511725130985459576236716111960079752822891476060282913450232739664696248426617085903330175241009093985203926309336311483461177475617805241177877892341782704222895356694678627012426064439312237710387375668238883883291136088499493149546455462926721574077834139777590318533728582132059727528183349692537273261706783129990237121479768523197745645971194453831425507098991273026080828950436377499143139176249614560526545038571024559315120740588799734428340084278993616644080060102738644569582037611969829022953443055408377407390182313068091418794695191433388574944834894938140851624256489609885666776232461002665031305499536965369010676542741610991543836786397969480158718275536633210889242253000437761790609560568290917504828115208480129835133203322813740712384486810415957646839434511672906502176501079202641435173467282880931294325147892692476784478163748411304440979341373986011593020116375320931622341103362512994192725170160277026628116983816538662200872368830307661905809997378001976540008651883064701384178095476928072357543835019591212194533284463129627733964431752668714260238203533658872985907592593152664296817683598902126165849840375948542966680310711016358298988108895221104824442431548539870762942358287318525219177919914299243167451314052045684017065444284086078349727620087237661030795219279967690334121294549196556949341335242705615275982879699501126904073791360710860121800340500333212943024846742269544788483324432607333718857406116701492196623571736711438746818580723058378657489623492424431363944596739504817374541364897659858331879558186191546791818843619225256951196029456485934215403843617676623860094926815932273594132032517336241308242883534963869184179946139856707332916857634446824482165226541481898326500098506692500374880109355411165266659286676403272364097500944791868910565271445034379731317043405032213705478206241955135711213322958667599452566807454088781677833083531429419542268853696056768899610068806591801923650829012733953680609406766797111547102303178467418347160622011079803146406877310854134705818797089766905288489747053664504770606318118223124416727516470779392652805179910180915633517507827080051293593311756418725698648080298885909571874705958806687036689018402300851950293892871646305996319413940335274902247071151949400192341869034122541220818874215440425047262306008647751798321103325393395837858405906970011082351824737304104195761453121130960631835755232830648407773664422126060924292355384644900492956922632644025091087945933990885602133554772095562004156256324186962552656714410589823037935237191820676855877923081620112077053599512165646198142510677195906268817667532103746677022552642290626173552371877703038955396910103975737324571327987452754322084533350861959041154771420625766652716744069654251097315089390017712769680310369020276624472080569827143437381754371603872237324722952721945475229792050866799365647292385508031773689473673962401650044075687036132918700937604227810428765876738919248243558133213540998183780891847460015817483597913771719680379141880620019145322761929548547267480466531086842957884662158769944757826524859275559879758369120823672907237986800140658972734463122999624239977476012671887574008448355407394972498166828086515278072748343802920647063938245620010035726349319089598813270837825844925434110216690580303198149733564399999651648875717567486150147424984307099008264587085772435022634351956965867944559546718186659125940688664877889421572886025946942960776845166676064294874333910011448673093387052927380261454940753139778231897230315130626710634890322393561334388490642222135425444699218743662119315519250307964205023869497177102180162116461998302814641825835739304451928787682623886974821680478541070864640768185361127394498995975078479829216032219015777020230982486092820018957964425741246952796168951601098048848555824379530377737310559880339218407284360838190290980294396204679267390778828147760884567819034700012648827313954451181995133799267917812118308599353795372047881807651416784031218822638924720729849084224447362748493906660083152097202917071809778655842100201312493491659221455294910931761005382487343365122663252470915565323624651491853324360471292348159075643637479216899943744130949679970516285281693840274352889181162617890920596540450141770552895660116903297834011259426111647555358679862334728042679997443993159896125634409423424852810506315521333265375851900823264518208331111478129587562809318073257460467550876332452611936359771430557239353358854769744678050460508164693147686882554828048962534983361853761103790946880113840393012802250565160427633438920691789596066136497838960149938534026121679896827871578929777253966112032112482689076765206957025348889062332442669816959390151506968661638513473558685522451907106464414505955813257138911654486884080993245194033831986799564049807542076710652854419455409851347864184742279115260297752666749074092102626321057688944072682377973786737894937944545591693815778208727918235189655292997300569902940495533203588135527921082559658644573763639886187579745925616287548108072769674751184727263135483123085100813921359977890169735479233642829779424897406819078087340537498869125918132022604248215117956647373310092962426117771682085028338289233187660400133007988857832141972412456475367862280249691788653246794249250712655058744527421245390648845993195385425555434811862616303089381634682206004907253701916638195826312678264613941995865182029887853643825487674300352645298929679399151947780233101885370595112798635615364751570542111296379389516242601196752539425163865411121913454988114777008555461204148947289309363286209996465354764863358324440744619128916958164265426223135197551428405117510849913428069836174061132456545169528226068561453521623714418018666914244394595793691182843603348899219643204922310041053154070540418743726084197726306043586484482821235715775612975701259349584988074202623015125905782490686809536818180049552858493936025557464225929246209239233105040310474328932566249921853666157065567603126005276683170710003887813911722825966070116876408864077868220976379681212125132472087906315431859958944258340320904616790466378644801201390628737866587114507170647848723883380384658840686188341434497722164692146191559565821056522513928822001639287254391981223831644628852703756915097480319934222449279670453687632098579519217613509166982202793576508594625345457004298796836203205306446142902016213843061156747352767830403958305020044910245179234289337020121521948171748604915986197803141640738695692765071719176549639342029621592029612459740515181795770719649728728926930985817820064181799302131649468274606400509679296449349595452061893988235697375357164106835983790184212201512411925622655728886262284943060943598838837274191297074344543234587240058304455062404371310898777983898852480906537954361863243648275482458474120073554843266388019805754637230580646022087582094816816387197818609500855310830240313165254699528864881384427861589326946027922742092815304229862933534201438762626435997648639029539605653501555389003433671511679642471407691576178811578843946615363209074738261687368128325057951354448912944427117652138481095018100319114591404646127718895463443825580252855124206489317466270885168835624600582086267290036280528016236121132093917022607921290363525074064659779460901660122216634061641006540246322512216319261375719822850170982473157902042109190350398046554831702561679744866031126621290842118156617922301463483817727498315535067791659177265580429464006582291373090658527882343489273731976098532577577933783482112748793522506501032821731501280314740210637879078392598520591752341608839286130129108570702928413938941170822473209360190838832893011859887736974074331661092474070898924391826618771463171358323420717900313587215783596292086160345892406920349835213428636155730391997164616333236077949957985929710475215202160779079576835149865392419260419405881263156981768521942633334436198497281681866395511510931382380258329876795944225302888497472529479143616786220651440266263603846270004022097345692371745629583036233628083418940743033467276624271687466252659058942117519074323955233449457734708247886877725713070039618847917317873978370822188130267895560269297229999751769903330632954650669856902163838084139823235768718955242319359123011600706209941219834807357816404168578573660282635412228618797591602922720525513468207084347929734826194501198734184037822271662782915631461429113926215048045031017373364499136471036924420351720840105581502342776765876229186937828392286284418656026972406829842632356836179185210575728627898896960686755449332720031073985501197435444197070815830746657781605528248493751124880236903993711600080563121787023036372198683265681596767391762709984350803673091556082904305371380128185246648696071590900866518670640284691807170800398692177490821451861226578258886498608621953859988477017645112277288053308242803884402410976517730088021153151041173616160055932522699649591720638260213549243599720452007241695494495120162323091975318148103009172474252012307243248470535948906395913280585440294965272554102936839380790078882845746948819463103743793129650999996574728953823937766964266679979588984213265405687885597335959346616204178786250434038374893585531820994229364650223265509018394036089049462281172575834734316463641751917952156805759526112710042899022881666655435089269724155972396129031395568469443675528802312885787751071413053418325614196469827416346373287166908679154762860728013126129714728288822556526438171820448565950662656283270515498523672977553712898797971771751221075144844542232346773968172123914902305376285843405723405881174403643157896381495903253766941131887874929570471185869663670384368289707999693393970369518430168779403305908724802340313299888927545460485352142406240270269478491377039099398160891225680654251455891145482360202155152643499156592418931600131225829234716698238114396901462273826997373128820189165235564400111415160066782306329638521347353222552567154016988065411579000321607890224783735492476373891529007545735135145043534369144164165000880432708454281137802785891769562533837949798284646500782699431339237257272830215793885216673896181229163478651134153897867270157601413570394658383677973495465790251074049265586828441927187264100996211971316678183618287594131605520861484091533178792588825270792340019185503814375600376468421609507360349645159203703842032653770868156697959760324285477109302655025274888415127987728415709150371577487336586753872764443961770222454060198593222119095613620214139827243759404141393800895142594684628354795758823431615070519131368402420488247880388044907376285416144191844569348534442938232294212072122357369553832854558221655034278937967662714784615167285132933744138765358416702406142831990811584226073626649337615717774687501809944366704985291394024548125192335063680059591875268343655844481386543803129266157493012938272491895338285487624167395140096668416883400552196782320885447591120500738351883360207525724184999820835742942934013709814519602640947950528250318060678649379285707842892476197992178443435437581357659709291904690452816946323380300788492350689741900575174447613686525191434190069199399241089359867867963871163739629859872335437738912315782163471672369702426076395844298712491906190332935452302318905156369829606631464374166431178488815635052346284453685149474905167764351326907597664942046738641294212686460089184603478626098704311197561833985227978919855594191324350236252909088058704831390272362258759754851348254014787554966181155891702094103398277434402465420974658202766519640774725123157659506540263769800724645215484896217398865900083866331733410975649421594667786469843804989736220468820428688399564528161756451756019672269968967886917927888447421179679272588486116756710486368694324911656451581447203686091760735573158314757590962624736431620590355899620244724124121074850556211067236731868778169339580040497834259301811411791926891227570008773516612194009286531796331803820458500359740220668309651337579044108958706940138026750502082203430364448041140995997030620501690789615778929174636031612579598768946714861301111850469703664478079178726944653634346861550935872869628787228737574010950946115669443838523351956546658289097177913309716523620447922437827510826969437029084771478933609861160033369116354814824908198935287253334275968494735911414783511447033029964736846214492624916129756833887565750619851547890260737280473533892517306093895692217473083505707028735240621771203348991553818630922796462595625336266701823078863831091056682756863151725372508731534075076749904345142351600629780720380466017517400003231530705970105239457088820594763330869170359938733451745155272916122833912176935611800170859757764958072092575055285536880761242270346255854963419060928789516117308799446740615288066585672758375165602909318484714052033394444069726462043190360005395670077011773408627052647109585358518054803856265019699862908023678430610055954986422319772387275925339594611822904776872616488635371943263096813907382325649765713596187448616393226372210966367377264775356568726392563024644419944402702276959651978131414624340552656980577166919487676877700997772440907129191831435051816115548216599767388091726942583666308835233380043285986087457411673482291489653709770721832808657446720996509777855217950407966802659383929037111818163494389916550754449367872041428461926292443326475926403126243480511772019716083554055059632070719111046957567527841264765094243594416487106515303037147712927328360446349062223115879410896391533728962280993304009210751668026353275074902786018817591313680661321397078633378814837987992013892969694294868832725317945135594792975296665303873503089585814889369439761754018447885719256129339804411723985863507141772062432798396030225470427205855399841674776513406840574378651110429941111090749598626993260331026011465325456944567783044877637524858134311992015179546320335793455288002989974389199093478506268905725955033274475631146763357907771147309212384791674273221027642286516071663445502190157210108685564241362383452813052339014406894065286177955845942185628068133196360291456742281029513638914453759451255374734607683168253648127652597086425762849876490811881118829051177607824834696543908551067338019050353946797221549452137245653457134548967780253758328675128082030672678229632983133204522423161484076145372092721121644054635815196069455596914804248096310306018933115725454856911374925187114518074304863098008118862015939725256419358138751388572564421243880442000247823244381056874712260302535842568434129415672020163241627747963848957724130192198054620390460065890942535530950885095097873848080590156959277603682461692095347596549663045937688981528568987884886375170266800591717965605163076762545540811963590258208449136776823934268061068963604327152703162255608101240584297857202137317204396528041784286342847203488583334162495079478290949645636976808647407464305923820989588663917875412645349117055536683145987220195154089196189773091772006193786319805508770851673458109954887059863242512249606540318608319147906274954666419901588050593330439023521058173259010583079406003970884200349667909328439862092209825335923192542572744051591253778491334139057124608893109164562713952283131340905098666863346067194900569136011549139869140083727425489033266921525883726837284987290501345894692612492515630895695686901210219033215176492840948296649644812331612556301923830053187790634043838430963877181807930509113349233451899492483439459195596347656615600859992252874669411574253173869985804112274223892670571856489532734902050816310606313924723839388209930884858507180567086996773012789459127072789552309199198540350581122071231983879601517728130600479036868162109113903562056135706025431015617075229607508693390157940386930833947258538003757920306185216922826173717217181408709760041368062417953623700126011430868119281702247645047620270761646018960447606121564240683588310311112815486628916574581289504263165177083934390217483455602803656067537919588245367688482804771402446883591755556509867804478198891517103275288485947320285128643597911246490349027453272908333398916972077142545880336981047076364722350077695543372046933470369668899022382907509812332579795220129963944662141770787039722075095710668915833459863598467584179375896467113119066625713001432387982320919503649445388946737619427269894708956337571783496605195090911968664932869213673164527881551953011048774175532666601871611007457808800835019717327204555303141304466943747483878808812449938427753625691294328195582416205955453685692945911652683858322730854387870989263238233310746422980062082017626845431651121274489297521357337914434285671009137516869729896989766148364695265214252705361885193781998103725369320474131004011582982330479213886157154150321719115730383061063371546625432412276394183240040727690336366004669701764061407384497909161581696614377590660449737253507827485168424670723378627561537881081933224720105806339743491095533775162639531519749644318583678497650062493739018684850760319796731418210878053253497290614249502585278581700031101797187846164876794881294305411165545025812281418994699610756125143570717185995615401883973349930032586860240591619650064020315253951231672556247864089517975099671998084803761134119268432635688521561276726620502080021781038896001084170377675082105545432577249494419844360587165417423934752337844697120358021237958294099095465062922077127126930279400690554562451092263861272402819269491869466351686805863593310907825200324685581834360574744279435660171040785339457211452157073693735354432095162284048756372389748831005369221578619705001730253559513377789577055868180633294204659393559027583371306348114725933784577342357194907806773999970132702755464955224947520647606510802997056520449516638342958042325722493598293687654342807393040638182789381468564041960167646890296868090758470240637053933448912793937350077349233147532876414517633315891495725208185404049188833371725215383124558591024911466924509847292092814720863690113097370708261037000087133853014934301332086734175937316611159928756839133498422398179182474065167722325134169018740440697039095771407006284744060572383707731725798525702500387844160135248674386763343482014618462525976388332065881115508804878955462198483702581204731647529597204217109345743360946771247036349368253080100207884674424669532057680488168010283971435389677995325812108219563767749890246773816671283842248987502325310148925158561018416169074761876099953688634553974519516561755554124933179737783962598453682208892054394858830674066564937611970333526162836591746825124554367120131414227265920404965028690606473368232622294696143686524105722527301214338844713143990033459194349379008523902592086770636140171418149461962077931642771965306102463098131365698100942181503881268360473345670179561207304164568281915809544101256897686549174509549347551742031997251534386234426102588422287876546731513906091536538355499114180688691523477044544190884778563228832811750678335932825989198193102230387449602502688842824710296453533018444931620052687607416438292890189817049151078091711247782995530148945588151833889205059036230728368724284666213434705393788973409874050704918824390524004756323327706850324267076150593254656838130184955227439884161298164380120905069742935096391030702335820516538441225323284731806815880378119244251991508433204706535764619584650084151298357486734673431549094510545412449887051956250921759729770140329345324606794095214938042985571058761366170447706968442150030690546320487611393503131657261439059904267458672199018355519746500564950149373916918850697060261734130005504498302383109472006854938624020311652044350833731688572637343907297540832938780945919970399917369735316901430789021375753617903724323220129110314248702265166141608790469658907959942346970078216535171444283125749482989044104728470142009276814990970942763980232045217308532871722570849587314487262326124889521372070987874261997065668613513962910651127753137971201699861259921959460849996642863659342669554234018398839278508013835826217020676575713788467511394632090388819935181492841802697308346511661624963174964979960765507735935519841569530125420344341012683611252973697149533306921698152798732667247685603485916528376227481030950652215029041580715045050894813668242627222170777493876858993272046458664781258865372754569564218607525622264122561356552882213189646916674964899641698985150788097256464624595813827042430459961015058207317335047874206629194400271798240198264441969583847357677175627418986409599996264012195033240903212171865721452606104664044940311216898120515391181950882251043656420325874088342412769680458885341876785433893243443004722286567444820207893075927758912582276234570007040885076699642609532539863488776203373718052650632724383791703710242307910851855922264243671516352504639056119336213298117741829022203544138895869512883148059274375494807092018933292975592766331160147601825620860213064760639969244479875299679330490864304118053865983345119245199361258804619161450306748534387224818465867261476183671466395372399276460359507519915489109240900838459462510586386466147637240186327680422605673322214557795126053576934404926327057820911035163642467772787835847865947511369163588031951015118915727621054653009868012491769713363244160819414048865748928774640340060687361831656980732432941220126309404874857680546229116472384057832002824802706078696319105065839887736540376084969681414581535116364997708584616797842067682622297554858790957362783076582366914785324856362139577871627828555211485968490587918496522479270828068365015509037211034728618095769530046643793404511251492074700003078300016205444991238047342782785377237135517599836884096232948441485783610759167941476384569277480865764247438700358697006314543839490958636438693869266703496983853786414325099283149333754555231162720462166501825797934417749875022097358299584129776500230439633630601303316570067139196556683253631306435397139090617250206957107666966438683844439879763108413493312084365613584053772494157529220685950993909754833496432330411685789411305595395437383356986848147762096928251141049716814443876666324538485489288792496177488639162875110625666836869794280136118264572470625588070477408733506536680883063647291308125473967823228883908041632103676302677816506933522383104732608183765286507637713833977825856156510995814644791486562696056005976148638374160908212415740206029089539981967527193566901632380629807978179233874392404283318471146030381138474892244691416598083779859091474405199201520896059972287653659270936134388965200381019150261850989580260616697146777271860418015862621269641416162074132827468483003793054569326397271872297024109771235401322770284128276288596981382563618541891625680921390700165561169368956958256685876884943007174343003580999789115785119283272650661931551450777024759643340008128090848838904877048955286198813423491533905239948919230194598366672399230019288583014366749504794996550105015114750341609468280196287539806022368435447420027600234552302729507295612316489036391589949687134348071522314933880550470886826147826130429787360012956761253931599672700806830562378952814818329031952403239491869250716715894466793179794851588728556999435248686105581598030081907732292034076590879624307162881087355150502221719825445556427665751446127475387497691785313484177727749779557669072687285888483511485397840832168840417542872878973997568588203335644591163819283091791578993064321322810289373746624639466354423672475156013102747269219906272306819144039882571398709195772660075090040509372561134878724851289762153945458623439258651975276473331095560794539833682534849115100849216537166827819482322976875465028624815824500706489907934001691097466229047281599368244536666714501354226612851553226051706734981493189361570409612767043947234452904412011409388187179840233753064154117279805584783653926871515769625965352752596117458082946759691787150983213964149699693292728045625249429995758139664444002083376212740470921618851790125785783473088500890303877171684146304945709467513294594469399238519577872913901314759947381556832936992641035952386243327126942705957421573929380618718106393739897148989079902686010449427250263897035043512205543268162158533882902481895133971399253027763082684800366539403126685185488346359392870195576409588037456676618802547925316154538843305343422814033503364826250116857276049081093876269444570952140537462356926522349321163222457145652169916368840663361302563265483954628426937413290913333365489193625251880344074775737738284778313282178323987319054821562119149337736984511008107909785060776430403508223879971776703294856029230778855420486788958919193363636816104515926480785741825878158655281471783232477917502872130849573328192673585464680931238743581519776671665816390954116266099377296727582591424233676567228297058398464724021213156827219213958896827351716482089400939533636693498973681114956342045862983631729240559076202223063700805393262934048117129460734358263299449401881143601075721770557201867618661639166507591922361399625087081429042618218757556458271502690982849363731217169175480597484330640826573296252906277281770260179604314143238943300068958687899816060960319644005116519441186483709228732327553676903654767375569776177583216932887087832570951667222787821777972542368802321081523316386834647269692223581565354897937375490125007740185124548035740377087543089132323632354694420279952221688305296144348397513174826237686988564950798906037506712057760750724336243446600449844811901486755478136634643739775864720792763928142896569412889325523779469666145798306622317736823198540107813924398515962543746172260993260888262641382381670508758871178397346882563382913480604910195180952235888408678896129543031540612982019555270099856719887234688425572912348040807156142451260889486346956981796690136338284059066437279772077586578858788631596597572761590875663434350879311785730370578001225745856743561475168363080339174028429187881873943607646562706699405832088167277483145842248645609849821026327354220493537429630741186571967298649865757263601313574354435533905164094893712153269338595101819749511998991187282283065420591213130557821865818127187980559178565843254666098658113940834014724054806354726056842051787875792819686388710823633851555019279831815191194190558254901307303432227296537130155811620414699312345686491833823759590399211740337100834081505198042010048947027646771675677284340345552944333866176784319404250010642179779826676583508874599004272975138895216095619803051424907843483571747594249247220416381907372975099530546881552763025054984661936389365424718718000247065982381502890231026427112180160638042452636956971169036586239820386543927875912071246630634737750857851707239523604932901632603366244474439647729501071887141465310112284055247502522989053205413780340370621566057973352119134533569904725617538068494422452066896609451894918460632531710652210252427042722567142518036905301872025110868121783265194850177914556847844867521878925034342304594938892263234638594987683881946335288155870976946361464220870708108974657135864334125174746868589662935011755744004077937104402519562299639982361978920842439668760472464828766814624229829122509569874419282245268333828582667751934692269205684205251611635122268209732405734620992134535440392337898361520926908578047748923657978694779806672716674395679258325250559212727656020256054946814106121825234053772937121179438175488822888091591655299139974061643379993494709488110781980844480667625600500390630883020484190401450000682213230276211358073227381507552524219529882944672834737614957106262448780799242107745968822474969307882523369712947089982946512517166054084170261409704012855114790884125878827026234747823455309195724576263055387811507084607907942758116683710732234710675679439277558603442686777148160048562891982182559556620113104144112903933767157633053554307870778756880260404589596366408428780295357922253220193601297223984166477398359930751344130856634817206169639796776313545678541529906362420660282141552685785074840064449202927188309182245062797431364096794986469218282571339016354693489649207259096075108437004503360675901358332214963843257283954253667283260107813495888218857592498416539346607392100246257022786396200431559732748619908635547753786689966766968726510490802230658083691744160963637082606977432696137796782134874334702679810656927694560112713122046194143857492153592025860882284822963422953638093441077799681332397628790616797708229630410847668005045466063378743694354192648277942067923509066880683296758433683289911530755496793972319314127265824518080081671862752594405026945867598378253338520903885445910067305285779463595131383000331023935288415757146174487112224356092790593402620330986366034083737770446848955079647877031556619866516242385727750624911435543299820044678749487764949411085325699311716780632376633510187847957625713138829052608149904428106687095007384256013083625758132462346197897901418787474137055850859261656909663072156242135949239435608517123066018840047185085285931493272682591803658973396433444494919549179972695555281711486228631969410467435803319296001672894134673549203905277639738502315256534872593462377811246238108830371768189097305990112531732498566026660388801909829158619294387982736128579217688859724095752341797959393324552120473240086972466126298179658297212216860481622946434134170026533505917736651986091026330937838369127116220785079110080610067510629370404529887084730677878670535057858811820199992375835134463057926746568619967805798681929591590135782996441802607229984945167575912877332437234072607788124720037536737100426240069579362160331828296512568254672231472670315754671862067463461813942697967052587688242051372916758303631941609894829606952538497965351523010425694308145514131582921051252564033680699201081282809815005389100279947392703822099204693200941319237375799348218500960740666401308206748957911783446495071071032386197369476627049608917396415554372124919167116003158441853252935099165514198266523120609701838068164948262405122115771428336661135661645504652182138976739302174702739487808454297396891955356639211328872196527120839787532320489213280279566256579856779546995906754547616741891465242009781816719352811397131227249108410384628668017318752245286238131380686874896943632522715494990124013444733293548392166563081463010734532402870001560373333771402552741078773780894404010162653532435165503081655770555777227080794108912717628228710679837234850248670321253066364915396181987327720572215362998956474251234425652072439129713409474691730931293200388688909173825324492884891202147459500531466173223251077952965889616420308951081402238360992485839359810080776652009808008700531676108883621362376799491235467675543234828605892350797777359282418352119822055102526675748688016718099241751390801574972882556894913561992343866780422557317907857802719356394215874016163576394673320409533144891204211049146778092541822998220763607407704197515067460143722683317428275138199826612268946323877182269996156143100324245976227117638494746505707488563635885422652268282816437468699664518375846201182581482064083179535357452271907842178332392050403795474351523270414143545392635178973622993011947242050006013420173183165085393373771052989896423077080731722910734522850647807527487557863597978052888049973287410634680983989521725161212327971762381913019876955948514807080480864549621408835447212504619939601211065562875022881397923184517545055451976761961840984236671976295260485768164656615978027857251824843497749674906431329031670626328109279141470912567231558303160716066001654368894823025810562172399882900283863054044803100646116718128184578062378632503709573643312676385523804036826375272710904735766463188424456327721044410307782542096405061218147910581503207424176459644580377182938933259799652913056266042718994466350046943695217675098166463073049144760369878221440288191776354476161612495734143029539518416546856742763536022288009685037029791462651298353030709336411063538686799752965972846282685409545682086655920701022435158953533833193239212970639713212793281007710932316437751123226898071584187686842295874104706809165996900899394050445440777472649506072130805329054404631269171621579044310757780626128833855357646746691973373637335134904636164810294324044501871353313956063777223080505003446193418802115610248005488464626611018921455468014875979605112121711425822180602620305704701606786591426439170724130187478265357715150636170107467007088470625590160796694337932435528136834008050254712301799149092441533336356187801551745294103671294326192793474087696559314418758666844998271905889217478227444710412866042253517858112964262153503531098765853932866229885735669938365375040148447136756875262248360802427951543325994870065636240241345947377153448899944302734940900780478712438048076487704710940912132163682596867130641687160218631648804609683319332677594584740783645592045571321397588380260045512690808904676723782124087358747503169078851688458330116322914223376866529687116940525870703093643821604541381196773275191280091317565858514173666574931641974835214532230989528562845520469704575252867859844535457871510492305208074073757687715289212249412710887340717119049228581378424283172338953394532617533443213868524556495123017964228510060252227836196947363456533803230036558823511976043744046127589579106329054643637390367474152730576338993854179491972461367964310310924397871137776569148609430363847531123552260440429266855329747260502484557003318280489302921354029278757379274949853731087452985451852816698079503711145990105167908338665422924708205757208573855096031823110160106724571956229824756698067233236885587051322889196877432388816856426872097083570070255166662940130333645406889858836078804064820445659808925588560583888279546733734555810237927812142205789847696868595395278859262358667891781303977358296158273848377830949265665039018280026736525985847124283590801648051195403454089412602034077570319523711902491714501442520016428089924200414855011351633670908677318645960049675568753571770618274323812691433969159607709522182380254197886392834312525135072781551959733753294268173930236203091844526930011790342437203760807629365459938202710071523544679319299934693428799341428122483772612299329317367501011548675604978003386373084116482795610971312030068431779325214690360207157352826738829419790540453604674732463961311023450130184882732195320808125052034002873271153927145675102395432449475429318162756422572951863211537185749179635918725138924489142959827984914662791809899611657908515715162842852260608200700501812942931600220731186468624498583610867353506168491857774690604982952256410685848982984292820216164160969347840107903083560456012220426952648445120968887718818384648590904521410313609882987459972394890688916679550733726751383108238279650453285297614580021099766889718613716071398854725360834690524074946830059872497370882040673131703036856815603000298450875512849827016298258968636428322492054619808160830099069238198952726701213854048022810499360600894250280181070092439749261258793355395517151861222462442355222559752295126449566791267206293506114686617462993305016137048862649958078384276035853241830605122077570051208300075347658514466538634464437034924294660639305255185329201279888263159409836567408570033988633651694145187238845709011401489505176418389604020169686283298944859999548359813824622437340508451351774675343397415989036932505121239220035336895766027656222575416747241054264753051705420263547563645965603629110556804311166111921500853882823836531007283207517648416462540123586273057911425002831048777557189026952491166174815884127224455842189334388781906835805413671533051582749996709326419670596352368761704681554150116807928184444756661898005268273111804681823752092103252816662372943881687978576904312533729835036103218224424074604910812296198499462849050715227363172060653158781569830294993584753768482359306760647196521552622839390469835651504545354815329220896814129828779697530233526930144119966248357179383920287609487057905710404437288589378983186669727934096141649817367651550296068188547669211167691692161755352307282839524368147784324389225676174066306810067776502754422899522442122694705303458113905624178011356793917145880586797610951095928176350457055802813217410646625017344344924907174219660751895765348891651376519276387702798150544821150954804705244885962736709116093782572178476073862926014176158738327452627753053076436719552342451157051905880135324982304345736332736016901766053130792530047735776795462438458255850611112481650691256619541194600116794381563709901977717463566491509379621642283383378966850318950227259468509953309466873971099580066874472610138784401456576538587941514734223652863717750376303214626581550467490918113572014480112156880258195728263655066778408842616808771223230180888349419258860486421419943596280413225140482115190647326469398533032031130673085632139043885245095055257640403884830499142216863088516727804504636841662373230913494553912107190362178643769297192635295587631290273014996933795302620703074167245534811898056084246997264032674895466127211549688275654476281294910922237186832852048656131799022201742353190600312818994827960901664669498833872383707058869896843136229911744827989290206990675256035552423031897213805513283712094832448975811736132958452455448319767702549631667218062164479638980310785199454293678143698794827739265335184214282831815826168098867354238676269994176971734995758812226413606472843735716658740366215446287003979052943115726046787633970933130392173719050810901237335110476402437366945734446110770300107057901758533302209378629687910794166933939433040711869678389716996737046326888974675553294630992284914972310403208182976682450327865090633754624701480429519843415245458116025333319852271361598864189389915490329564486624322401572462034303426362562872875108109108177850516239849851113232963823467446039485684640858996189338005800574330322894428299031986452431796869078635722247666296901450216455798103084190047004945530457955528686645618460579666602118174495963321510674779397619588098124081311282677402187862056245948724081354619258535865087722466474256087466425734804833063895199418140708897832986093017733115984538316604974911308138302901980573481243239442722098594583526719042000125905634547879263139662368881709248164658133782647385662017214219678158584648354309345487104900979462916645857395488381844610643849594331642101213694784720122972741864432182142695613005307980282445660476753293522316984043780170748570933402678984351394507352956579926359594936096652507069964042738107237351620257391769787828489383474989525223876472922642236901971558400788295350290014628251665864811031101475694748983603199560203812623755417246363175073163939827575895165280547740102407666453061927693295112771921201431665161607023976600393586370739979390736898777384039417068040989700591802628031203641854891786739210915470094522515378275480607554816330968265845918170677157562762488035340125628940820907298909993941160199116451291243484772303506828780692351675310606445947378846960225663082827157439858184374362012453032880228044209160410832905795130522021147666121275955510587967114925888790127586281173532548593431455490459465990240158709703375402405923097435747047263775916253875020319680379126486997329346505493486936704104115767713063375126804456009253836031612779062629924910364823807819580149779340824911848175377185144682362870798247553725180741896699774380469743916143446265120153953456599041127203503329061524018108674333747751084030430674100473835606686494204131709210650320855020561091428527517130376422416966168037109092368671622224265113080903013208104315062650309514190078205116018734266516450407749965167697854872207226409784384843381981108463715515300688996751684160314784657242146897157763246484612900696143339491197927537537591135505622612189881356603476643857982446072850238393137919041969162903784755444430801413741638991767983318811184839145976448306016567352760098763702168140211286659516717192642383624051039304123391938909471900263094206103525742797387622912896603761922305789535971437719662320141972961672137141456040105276212178405342545364590848424738895701863235494390936298401736596850963820309068824186918241837126056614919361762202633914228190781484937846423177624650193588735551497982236604453687837763402623940030427451577398964887970331124026591902885901919391634447001243864941443695902373330995261688010057335858859445608425561981710930855819919907329710687389680729710621924837273972429530019444692932256558062630187110148940195940433019398802161956732324697599598678675078801164226634421660645119696562963095586401385569870949837669484409650674330616310373659048497187635326146985602650248687104125228382447669047979756630222394864411292246631657118185260979842111010958800207669038243791560862602885465643056980753289270672704603632332367078216178497179000157368721047912342611888949111367344281276824241633869191604263181337409335215766927634927392340251772323198743366322782413340413970497971730110586088500814726602478779909469055596149875160417932961337515575782348761202153793762429403873808559058332261151065960270892432952042648003373482576997183201911923571169990727944084172083463081779531876245717681542384415416292694340842730304008959563607018936900255645648361624207091934418008230964121626056811495896998638227674865856886946540575843852653135300481251871058218262206723046385834989337084017522034256772931375843659740731453303597727587317648306429631599707678220974588496606285640750816541352370376943481921633787259809228872041179382576204147163629287243182655764776567022431506030541922146503514976602292894387262652508642390718459285132193103742023161421304612554373713297358556351352084778814111440637071856956805543811461595679273641088922816511892790846089651864545024642979286583183145682152673177714746711463992985468927063082021456695513209814802070510807435071510484835191714719187194495131530035164609854729785789815568817441772107000675900422584843630505765852876302566247186194022381417441959523427991024417005325400956523273484962231430864309847027995614214798821774239450326531287228792303412017871702095756899101768857447697490763372819132484141110857688842692234516878281909976102712535204398731959029540873904052604466925773382281263940132585495910695441379159020275595196128648777549118931864247499186685229683365926512820504075229846652869191698360829027766637948958307607732443101523870964258357314919674236523228272194726203178150846695161853620530740679218010409997761093780034841216484854891272058978957938506523033474061741230736662292216200762278348668741585334588122764210775461985323964492432143890862213363569720428755815638415729718080638068581299545125618452664776919271212646116823578414292989443770214299552642870499016571938431284635224711000818904888431697152641882603539357450434390478461927574074085158512783811043713431020414277907431487738467317435402167322760980933330986752741341041629274327424327351044772791880780553632309103921067872486349370351941126029515206719637245397742177012709788695720865095651455947427545886122521557570799788209648512323862566901411361425256181550111068119244918405171807974333313482019538859136139536182297837935730243751872808976945796981568758233114496922002709681070228695410526738306520178216317488653191143082301558186446426122456459041383728395226853411372957435339280440683076639222489961167846212570877118038277945255852237115888896139562372630403466030523840311388388584876900205787996717549944824427801281518875219680198453023008302365772814149471674695901095096396466606120517213364692579036973073011032463483593873515147007197294455935267399649056567524750409789378422764355476510650554186348107596861403201972111137018512498574216711440537083502371201244220367892451055781375588514882313564924635444307954701943393716745354977134034573345328537561960184240806402274757830576888994505285685253708448977571363877217062763887765037792310473189872350110051162271712510097351811772766537915094985037241837066298079726286941179086761968531847518857894224553465578159664575441167758401063746589452948202356934141196411794248155114140755825842925843097248039052820599875732900654151818602373979465506400848318437334442831992912988218456030350080041034587071273564758020445999570452824246209763970318368770739139153567241611638949250549768135950388120167047932534413077768913330549247921408127267200136479408220309290597347396365675601093946885425315088142472133093649010746696020151409528536098457356813259391449538971726034197627666452563346127247591102128037613245237485591837475009973636809332049671048552994597421548714132016874452380595324277103596450986998627298737912604690414169709188119560183404811542959364073387389210658195385092788179227785194692533941065314951198629095532302559820473454229118690964030365792220578981785258456433672047193558450003315963838355609761907794897327357568910705726379321373179085121550026407619310427061073143805502724819995838564866444059550141886301964422149155037458038950551029244478057037700564288601089225798620249501665554705026930101038993532449651423148516000932219269773164090496181901571942293623447380781293276589206631873870712708368332504362127116519564696971552384431414003983757458723621036554651287114129949271539112258799992186468734838360900382988265143379529938942477798097961212068895124862798786918172046441024248761061554814895397211274990726465545393672915574749095894108552208269873602687071153211516270191997572510057443007857720960728851722968931596675528449302400316644836897052671814391149339071233103465813468904354078039660438398611179589376202116967937391367295395229006985722370570386926222109127929377537304251091604124578407731519301210206693253183260128487327614837240435982091036387329117175834680053448787353498065346561399077354226923510080391026113875023059239319260919968795976251861388866394251182925731455821852729470550258803646616517493545452477252512115855306141724656796719569979484322171619888883994354052573729054688141701821943134852757549689104473199053152612534980317053098348126880561344128155265373981037427307586642191000391043640478150930845680674857576131227267162416348993170701651403984981906228056476065337545338220929473693881784644718430997205421461499056905369006339338498268453779688693093767784836141091072783210157125185836360083827916234324489915405190723830952718345371686078596525003616747514259939714613460149696022982728444192204261384331679217968190804659180340692403402655869156609617413764262356917838073881548808277458751911645669631535138834199371435734282271495624235050039586558643518347338764477365964217275958728145185711751599298960573132338405608376411841103291232931606326308957414623148813970796590342296199494190756144384263989411696738071970625456761278952209182552660925976677407653456900039149161592818080110358091008403980227585506953063998777384700094955531498623824232463609034347509124857595119360491240640038385263547312557442201123269109063083001125907841101781461271742159871424769254519957316495124327267151998630968429722648787015070648851949448634799636159660425747661938113285436333357994194702666537703375553167949028496745001504138485134451761617282506452810705558675012442459279769490188928213609924340570805874525557313273121110247706630602600317527624152372799956799367493289169237755773758662327343452132371253158297195255479906092863449114209687802898900594646257656657645443778404459224838246366194526037054943411050108209819152722919508072400220397639176313651145738841746256391791282498347769406665142246334451033420351746714144265262031382687523930092956337244364743312907236049905812297733557561745111547383600431155734321413619705339825440009493619449337224947251102047304513584615096945229874244767123112566023608536459062431200143692038618218050692703698452752130100991840508522194822285694940357877130545226523909148961547102697652321584756079608809335709977667301334610524452681652196803140178034605278341238708402289380862467584825601318156426495165239922520411626012979802264878378458062464654094159372060234527597601352126611399340162541307503034294566713955152912130083555047022004116215057143088048698259876422435806084142082639750545217740654118156456452390100364681005482771982015874895062769220486929649379653405613764970628695664948876079420143406908895099045915526322130733017271392756298219601874979345091788866145616051777206677162820871240963413829936074297501396250345849417627758775741068293652867365192007418821983894569860203150501698007922345839381269728735382806359157385902983774213585682672177345856069947267773035094187181993952341472477872986070686410315852343496226522029534001067385012514084908770205324124608881424173990587009274033257531884516181066138491112318746705636043045882369806296724270759250328593420788143007720993909809638799853564218060230367337492992503726571932569739506178693797643753196624694844578292923978667629247884155211033702948363904765726923929185324674604901960901567958912429860252623241093205434763667164973437284289589669642242650259739708463620011963609519209037303969717789703027940633582960743744602191725690427426815017039714085289110016033074815108740771573954485648713841811637376610238470329175439130318583125818936201589669593113548025669009332765551434772374980420067897030622520591192216162666006716228951458419443012529935095129037806091445332171589731167241803022614113686694412529619447302216824286946844038707469733506575152075393663553602283963276400549260619663419176380680550366224920159503213547548024730040728033356645281826211270432287056859513402694829230593973243041114686897753562362258287769597279970863114149083532901155462488831757128126133525262596245815891390987547050368133353829263517620171331928193097849539520922815069948809961634183807598772796314646475752147438458407902463034469059374412626722929867379452319766615935977018309504272865191835318701549944354754510693643555026583787341245770469850083097198070584325895673305301742648831482786899977208959405593745052964208357046545597974433833766242521955429447751674115389838002579216356589130636421774715045995497580392265328638405675266072649059481805876801631771427881471144122219304181826717458590202024123814916384236577868620074544286406139633799793047891861372456347764665777242648018785554437637772063673452573832614085882673069688890305879940635388977632977188107511767816752322388204771007568330996950592983063921979959484632593303042922405136181733223408646328499524925989680062230809210292246522677035172759752994250618692927124170673130544093683007271987563961615598329701839204719504518798587602664034330742723302197981780398873066765720470183971691241672319612175884614645583999841412388612250124355000700059416125688389441244576314940970579542978147530249538873044537736509612435613438315525934893555276888506291118846650777965511061071466104981241573080554723342470505697371298611272326587506744190661428971787134218044422691927735087497757298403423217169741714178352814321828713138779807450453762152574771169430680452034076701924716840041895993217080090076146963005011613067129297375677843721064375368148262407153581244303517660309280046991734941822646296806694934622738521714589763124139383783411842639382559656870751098873119594601539574684182716725762409166160234973738922576798770177011150529156001055542417532713342599576015039663368133750148571001784885027569762641247927690829009420157199013035546764778597861782936412686001108875413041549613751282065934846592931016420903145259364356402251860725382100705914352777421558423565162035534397012529547249784727503184575216939394869725796021345280946031449745978367648352069158895341038092928367096298420812906794129866522387140826817992497299957251123834408356758778080329448044789752311699317761546477634980420756717316556022542771359013290116324990967267701426172509922703098976861536773573310163429885398160308053529273936602867204878600915622855089770850057190391550252630462086215445838216350008083948470703002086329725965641499422805112186630241777543737926340545781441692809799985907483285433178049243337535019667002738691211038487590808036691565142047845370956016877603427922181180367964191743380265667548076884248810151925054951702997984884060846803317272008925567287409184207289239199312959511664549382191191059529108241282279393258350692731822545360089999902551721089651434402162965313842668774388356692327396164635014103764595769059580080451813397311591462256713448922902554922320679957711534052856780983252141799975963062043874927556257790324303220959088413325066995738364979637632639507153443832082485077614891776659408738326949386790351019369030199150591077140003003299413502044802247793958405914468069661264887402518026113439429225745652856167698568952081265187725287351830990382099880563251893179205223562775671483869625539026663117057036680429795160116131092701022665123699942904649237651682797866807859485524691448302502041537034713070037382780071639693384228521111429772974873837330179348261605380945813099889703784030802135371075416709071899250345109112706522377404430921705527950821076827332579000993356280468152715094248975596906528568833163992325445104876443617237576391257783947756396088046541566499561213201133657212698841259100526232141474790582844143088356238129228911138306152340079904118985738892974949307924773343854170211735600079009141370833347435456151209524603520601603030289862471975903311471442936452043298335683976174706581900809566064414958390147155643911433380931916836539320375835441173315295637301945643043859129754140652723661638402128268277774434203026143994935051009053052226038128279522277134323400762933920980781453130446345557154431434739820580698030791146123302821588779872012848333088052522686729962636891506752363753680735932617593918035009840194368827644587077657823658636384880432764662297431966384678758749427519307762495164894506852540018664316640533870907262859237873416680534803608438583750951805410806523741724979938958155189006495848569736890200222048254887601673533872578925948164215973831858790919801236428349495023414783907722689737214134953061056632014884756328305654465046983523254251668498341590210071014835217628507404663860276840340955124746924652119737044966494511595783494838824417891223061388974397249627879651631419929467200439458609727486397179450140801855360796076388982533453735041337402599168356765786022021154109709171426508984525389147195961134375433698878464709299752258026888857629114704117339186102500743609234494348005019113557611495237810361284551272479590747500148501365261263400767360126673322790131830926078251371425587128013568182807280520477832612820534577979880721041613110188412430897299401296647186895174245243007398239854588195217303181738490192627953586419956678063812811555988417751409543335533007244769743627067749281326837687668751238698311669138599392521887257142433728635186734679133362199536271201672521040248314862122200182470828435790430194373524949376731806369830692464581863716742362654414694040438286365247136865378872393460592567777569850304876622994745050025149697486221267758022699193720384561327282578131165973134165259585716260286836488034198183218818603023552977705142661660391053028834638661798164907509501653056778798482411746698220351704656247362161501695569801302229189422986691043596225550259858410139206495135447458017168192363819519388195114006224059668571379658882914512265610828635704297566856694694419675420878182103811085978503719624470267902129216911775915011400403846124566911802840858592541647054870181126400179925545938182536634551311846118846258204330830457312804794493453776969077137910889448430098406269473049378041909255156371546461203336209866666244600135020988087966516674876663518448128448051853185190154331646562919180074535541478776120550252523579767787521341892139107306247397593066527724949181327881605017182344784261309547366019980409453079172609232321369119911432976155667409534183226348871501177950052681215295080561570856883907660610047139486158990202458834246694326281502645456086785706047379597923435753410953873553544743587712889036101354309312879811961264245368836970926912863574295804955583410495811860384436799084040111054264587498172070719659979765207355280241215732762212847638494991016021937459757902918749511785428015211952048053873158253396302833789866565178465824999808671584800350193527027010793088086017614519770302808654151203539867848156120973141112785268243426662617611616542346715417571922150439244709583608226326289206388437701288114491752223611159924931001213159401804500617103814506116681012005961050452051387599572984772968819936712196004268883577048389697062610308529895884454979885608429646791523904272148954953342736463132800095400785055702380036086461699922344638825454638514233531337793438074500778518427905047550445843885158276124128950318562655564942818103521123561389360517508815142243333069602126951600154285538766768888552265664851050349443674408397564657750320705860792932345325379234011604410434037557093354826543199490635917799434556814957386282979151255721653220431759552191533754318583606025840850956834823009102865543551465736801194518872204565957282719167418559925634633757140943507040062624130962389924574649842427582174035946988179710804258453656961301541608138394179031448189757981681063788835037295392122311846993013916141431747717641652059323117194183019375601748485604257173965671234133796067756653250767032718582453851950561308515392952581982948908599846571649464894570472531869611438890505283877512659624212364673828222484126303362425730916777822431126910763533441315046683946339430057711865521177682315103690642950805506534092597235596746749579629377373347928301013947490078742820429458505115514434758880349357959558775013765587709222802836927739007810759300978471071132178228904542687104476903714100658695548592144350572944678955256985013996858859520918083215504646209410185055222353111968514674121379530277404034761180252602296530079861589272762385199426786846885716190539891463906736045986962280610733503299390115334693453043733711270622652915252782993494011551115716631913157964665238171038812329525139045335154354511722865846931496370757337690725441125510907132800005967202343953079171381730845452677360465958157873244111825735574315655011205938561229724014221224495744658497854618962188539783547130696257797211539264637730870305280948450764441193517608515851544097058223756293764569046138114726893163302993777631737466330365867059376955176526686753197331020023506722782086992037346130622716563163250916109689700131633380326435784030580726214888064405113354081652216200621074767077693292651545857500538961274872287251697370406056709102230666445858441746684963686118800706226371764480101596901189142411341443660740523215011006396411618615345241550026942820513074786894171664322923588702689206249940128469341623766286008920902841312521623362144332363660119566795539899204509237279102778893035460279882466995148714297769339698004682866643810366533530007024618131845872560017667235803915616586768018484199283325282192852922614672560091935654235333962468349867975847717111673974022429542478525121072915905716037828270021009778769557646528723181934705004069393285272740780479592384601655312028095811569768317992569120185865497779963896867176808293450210496847126400238788309229846036638791683390214663346671168728280269703059468948282861733354717354360147131501141637856768637541549628382571722109792425544536147554938933331542793407923498940396958750313227781677304552336933455569273404576864141147363226639346284399812954055752256213447055847367020612920196692670802221277886208464740266516542104302321119952629797767017874193848920445851285482186355843623470445288375907707598862687152453059776831156095357464969644142544848893957513728924987109679601281644197319842879316190859931523504329313138619423634174596740698321235870469602476411187993828091572539597656362438788520010224036895875031798651762413370683595359195572174785150603234795768269979369369700839224465739130034897006858928325338784048510407307577725783263412018651112275266795812763690949017878181488928841426461180651044776055161746461386406913050221897597065537816092711641583721432070513111126704910199422301475621111902454714043229041003773353354181070012164562661826691213817211925889959452428639780873134590497504463233106353199854953131206991589646487325353758740209448875744000854088850904798708567450356238676199751286733312658697669811623130658511598666862854069481909466692678296981059458219845297820455718861399664771908693582392077396411507798288692350178288414025751305824570265362237045158409279034201346339568152127215819160682882664036339342507671737367147248539536487776582757296288833114656997639699663508678937214981728376930736428486824114759111759887442276838950807288055657572213989945317836205664905992555053430607350702006603315360277982765748850045164242852540171351337554590950805333114280332383315741944776456885249392515584821701076186086907742929988646569184904046685677671673230629102196222720281894428478897880941188338919603904471438488904400596670424088475038964709637694151964308231780751809259380877479568282112574519558376551583996546589930297702627117375773943747044863611408346861833757666761465934499517304165826677643572716727584919260222656469645374060227828159402749304342053584423828735966454587393481720764933958144860946506157261241452512896384656191924061150687729953902582112517040655418261761688623905132538127029962907371219676469004416244113209069918936876346071213124610881124038485551383201348651588262066105492924137529522761570579842416320600824034469251975415315230424611073656879643305416964142653204483224338228564579113269966239589347756590863591364296411731693186966707414795216372615987475181563931924476027405982175834223993590648595831794823305875064189252758183797584968117117835944311666015332633197023425692074590387289432262608969024713488941163308796982987662492722469958133261010562743073904260730650746136540435545542014153844650947708393627465410835804233754614844282805032552126917846568368017125582731478696130855339130649402696642192621537356384752726826463179219390278731555105195816944817334937965129732803085747958855216488663523976322004582530628271643294196285531043172707690650727510046772231183430958035431108355450117637015972052693238657261128180881673463613497491588670044632569536796082431048820407775044525993771574027296940809886433251019115746917844553613785556975252652713930402152560464888664060806877801370937743174359988272740234021037579502441715649561921354165300898436623492278895628478491806782841090603411110973512478791519457369019923721782351845439742479688246685614247508109625557220976889856322247993363342950030511375607872170057692401818539085525220777872432061707311740562964223262774306365447197511999115138327649603345647707274755071007752533572344256152024572747575839236783906257698625036413322951979390182438298878625996376852927520635262621382934546557686462545877724219408007440290457511558972261322818823623034621948875621033428950821256394027044560173714561492653667158529516934394717991510568392474362602985000076437851853341515172623897919160418366773384156332363357750697093544236936680766906699632801168307591326206345646496204691293639583439142792670024497197743584802430124503849496206156293047826134681661559499897634863001013171617301785664476887724181133727268292416217270395600504912610662700433064473444643698188459022849697705579096409919423452589824998451345175972027696656717842386695569672937018739707240710157897190610054797344871234347237015287490460708410176241586905880781274886268985272070164564032475603501979643200711714844193330841545814129937021374844861676607787171197108216937888017288503101940510540101183021738204558403190999376102093319057659583838449795881566965298492932484595970705153059339737290528728401876026907555347543994342066587882510857474514420187171041793979231860619512208060073261890197182555230295805991524550060008762420157932746544304214591584537314448724781372518018713522403481978114091397538741010149494627195821937593540323747790315368277386355130360725537975615534685053132441302988281052680901726601744858954004357573323783883431350735580165452194130822650528991041462946385813656175189498849802965043947458335035174326570541349821279855371342496643498131499942144513413309707814731124817588283967360355105437857704573056925852189754322383220289887340489872713276634497641587045708536137005827792661590213777378780967591491835082824639224971551613011533229289694080224556112911138601818068338068607252791136049934185108634994330748184309876784144108423420512149330441364209041156344640164664640499831604315315612072561782251405806898985985878285000107929176562879564864598442711601301573881788977574115330112834102445307536029590589153325983560959464335029602490128338423288229225025291984788968981584107677095209477358703645298763441811491598464649557354004560811140875821567564816108985297512439132197283705825157590289212134717889250677751628725743294202422007505240202819429536173285189701340056016954397142355923604078777221784354221273443904977168591728208303705151877409899264449244273725449408447694477921479397386706426493864505702108928790694633189272022591684158048857937965577206109087773584029449402998774715850776755797885350027777902923312559230742782677429119437059383543482312493809077746561403379345721209056563948999059841158705743643765349445088760784003970260309745412006328787928349188237544249242522210132703585501267167829046640006483847144966781492271404802614274750815157497985065607226765863739547125938999977267819436877429959252656894832944375665852393035001449020057680518994244021739135542056699915135210885320825369859505296605882948795400843432718737088093374537923595277788256085230187572130375876541188114464123778600616981117352645089175820011156424953863685392086552407737111017494022997998709991208948011843438873329707644751511581905714393426330691758037666268604222561214214261372371060897152308853145311847873786359795326562727665439775279377235500675782404645634125741863553997512486376941064050544903474315891233308800513065579893091989286363151889809469173084196363442209695088185132568366885428012257865477548655021433213732252981871077396577268862257602217106667866287085794224658104738575391055870608658131360265722924564044127005917938482942806183201664699215442960162288021158916105209521949507807285962242185281508883889697300882504488644182013489256686038837564071956567306710719509490418186358695550755901300712386524980867616946734256240844266712898032041237359904289727357181019708786015735292255551250546037213664103617710188073679590453508080820497850716781726403080808474204842732875783283214879478644002327415063200347531229207023432867071174900626342828068146547821819275670306664182827297480939588444306810925881252903546122506607816435076143655462942844219462103806867673561016590835246749926148416513598825145342947661683807438842211302935264560042582662280389113593036329276231772356962917550326311784485521888759803975441319182465670107457740397848802930612490065490392095916271343273324082402876348506169586310328793790545910220883835833831770119338593898410305751565197090590862123232414574203379473884456723311088934387031665835782749030382544967449009843038946790017882860868750395268555642836621314990618646380804723412101061852016979855086980962482503919728614563451504679270033396930951083017602864984644228208912610287948170588875796404602368149708067906015808943573418196203776794315283583608154264178817973825257059972686096937839762844584176232502950935985222145119500189161758299193994108081920065551516919692806564717844378658567008712807943110508702072779604355984225925385733798806186485155002907351664113191677683104958195481680942394742696578530376376346194959835012661788737108671333743354863567519197332629221233434847927692168161954977869339191222922342954114950853339456063768931431063512356745922871910780543715553553455535983678404591767193293514227199643453238995819383113641199015743602816660629533634344860839863613292440796998669500037940611793847394262472415922096333708986901443253738870419114036318417951643906193416860380200006718474478932373450244056357649864730082521586878125592645960943075940282154011072638588879650322739246426316621799926313733684626497109474648238623620872036723098932586138409518268535909289826890797019328955543700025743843697214787007567763793583443439562742543411210174208736520957877750436578918271822280118216537355356199356775268108724181007692884159623323789877864724778499411842338497161608425854060741440999445712719740072804459350433875793356688650046251548834416507739063531662724813283113266314572307379548593363650607476846017196319173238919988124663476661791696158722757613880847257540649970344071876591135190271279982829245960452359368814608064572388027178121703913304810464092642266761314755079188707018261337171115804221182257357800678029548171798765192338081858977807680470629570607411314928792493086148905419139859797665718712333408532190995369569952898674638688511976923545840929350311241663639015512190601204475868404023256797409399812985924150626689426989924999018295368784131076104279318305240975357299648579704142003679636843136667341535131767054852365382530922270969252353264462862316307531366296781976212525771388013785507358291668457429220797689479300130990301682640826126919137531661196120066609477005312556928497557097055167656279039673050778567523168187828374329902969150069378471915076665079568062685248871321346009823103642759294177586923736268716862836361336638113392703786872950109987775866558306046735303925161706795603541655962084700654687696699785016791540139462008287942683430383138789883231082781712962683503525610895831210764311542485661091369850966347458729871108362590097593677339109845167975934098194808288082107393237331761753962104079181394836874118453552535647100171394128268751960682681240003644090470067654351999438800265987704581974616289920112346849663367086682274696152352674232872719599164736962098237269881851954702408152704920192404788619066065916977507048886985593039409895088147443430808632298975651461719486729124024957596881356286805218596661423940059756438744760423044378680117093255749160932628578739171817766172912079139023262385475843095994327725542838459196032061749401688932170230376402353534927646202316497314664710369508916863170177142697294246273068207657341218982269300588643976277853537623349580226959647833553750482990343106390523380400557952669802678497026525629857622534579395473887428437772828619605657968370035409456267807364017457483173058194946378065415698974503730700377779607421329027541451790028126621000025008566449474935937095157528472459227039545549282142025801660914810875882284335066102091261531624533108649498700144029785699879303614219763426320587753988000182280803141139845410548654640402995900440618459681910443505061069897705362000118028351047389078731839224182533227417985130133376900902120350281350336066211466270923647148550839920259901749142736806676271029990009434897959795470674809924663927218089180913228165229272216668794559181056463239514012823568932247414911522088511839103645917767628727551898944266679921560714453834765406838006417193578398343409055044903949699188298095208116199626000437049464489594937557563270808619785717693742181196525780134474410569981802680958912037602734772344079866149614360867253543655697047114627057752106646244279415062846427536340640765163002566443277388857549971563917991606176037390138657856939782698845452805825268933392652617689260855648709140935321558565875285196893052696219537646590325842970136562144582933849268053711254274370093086676895231657154710805802356527367833269300202997304471812570348633338374871352161316322263587255654181498040761446126517543143769896089025129714364368139936074792244598911208471471120550372196598527599012483160177236493562453517584865350892567481989085610183815038835223132335864546954182357003933823827422173378153006456310246919816078246629394390667899668190435032402355324771497188507160951544969183144340154488491947074422904611942385460234881024009796211506678651762931236191908843651592272713303697261573121312149410186312872861462722087124886444578567043951834293990408625658922755279328415845972952550674779126321803951905640498396752217311327217270337790252350789179036962981933448171478891044019504471357406235950085653061619141539662237426593565907196711481379369269615102073064992624112319983717571790987088091049324961462574703993558637772518564966210366534122182467874413147125837237266445677512914657786580589921330694028980859786854771802427143098344280593247873130628573384998194193817911065777628859451816718568464434387135393345759712048942773571691047857323026779696246877096777863817017295341555902379049174465619016479218876981053916437881884068024247024504084162281574137808091632327073286960569816431975377037157808635429286755781809228219541297986933514307113624706848079362470689667837900494531491882538129908351378796452098395434697760408487467834542222179135786323481299832469300792184884402656975624786892607763061627748276829065414102838846063263167768004302933220527791080042578001912827435003618333096192756818302204457610044507941594790012229014665980664444102162838509760568400719047237999417274657652069405805702964897313316911612511298513797625146348754094317886932808326620706784664092298000559214060086292048531828560951012083168931303372067101555600954555216744256427092979471098147320271405638942754517113339756603746099108704341181889211029000713966283631455281859087153285121739217642859369110913813875819891691365570673408822277678862935136516363728227161686822213357178069881580164861533621306244383558787272672506883359931691849865097811839900341068947981708247646217516306466411510537818882245673703425044784372719580239272720844650070105087515405066324528113597209505068334310061276246687252326388271052505087227438341470606364029324165398803230330339275835441515377064334335572837229946798604777820399278873134082189002317679584628943085328518332685502685576970482387987602193001104014343015241806581464047584142799901234000851864178897516249052505347429199420685677100126876377579441234791718350016114977142228365530878498737302388207582139829763615916501647330764505095952712151151909896617326784947762735628966632511011847544330280578761297785610335183160823282655705953321767801615105485389116288582318593116401021056014282665421380702035645565451563214992916450117953086567926743861872410622643009111502809804200861089325038645832806328838951328989731059994977619798763273228971287275768588935102081881648909125264524915440595390637173556867283176397121891081781137174737555908385461619941838245556322250661056211571322816915126904901390666517428094619275588663138935459031029737667162169461585683610104129106809655188278578519249249779306834467761340509400072308330503339284522433150187881564261895060748918092854211034147474115665581972922409893814547771994002527845380248131155896683658239022873436133821202575831075170667417906742799024918555383707142618491947958723403169180726623651975221906117711778294693316236712921470904463584802516479508416233390207298961720967334427054493530004173678895245833630661466484233440015082812067414965869330120327786160330890852177808719327795499150948886193082387933469994225349093560854098759324377720755076178479818050448414234108952154584811269313519971433880771581459288682610803393452192746292667055763367155204265725968997290617587321288790995281884297516060707301177619066978036393922305080248929208374643565887032943282246374163086339939653329760302572520392385401819365106947751034926946029321081283954900873910205253142979709338021399030750286986776715665033901131752808817072453389920236061771423727115141915929965240820169698641882370299097185548351634069111047996138970135127842413374544642714697161012376741313332573389148396428738000691185096411642153792937810861880713558278960717465657749103523415397288588260002190244336189139442146528964991165467606993063030535800646941975998755562851037109158957682278272241379446595048077172897606478342257924078864626494922632408719761254033468200700121613993878319973495388850385939418077835029697820277677136668061811177762134228943532351174141946652922102926379916658528377636468322779297038676270879040110859022923857124123592568657641010007394266075515704955288499446131654776274820653270295180873477126004998674834397803546258069219594158264016511551337714578095097635476985666748153728431819121507008666748373169044098759548057270436470112012943690304046201566203448268795937691535495602277363563956223290472893572647818887176323815014796205281878235989276551992341643291275832954213209314357239831957580549343105751083078150161747344027709591585551164797050303539210276691715864086695610230919054982734091187131311629090025376928110846952241552364234266230587156713174804056710842995102635454255661803755302636460995749104692780262959565858486925833016105814853601266818515761544147438020624460496807561261678287186159547719810573923760527244961670281663118797596138380331438526778961885035664357233303612717048191866193319476367350198219845020457285917027562096322024657555675754753507297004661801288191441501740893330952097954172500093160212957087273251445649827473444789585185892202709215880682973762695932260944460964132466181630731600003479909104240944225189321467201173260445075486062813021351099868489523786666538501155490579094169400509035024995665748177642677071924148776116138566003615766186241417836449774716430835516837426627628614449712387354624629387788732094416872888215948413988954346081211536456175685411415459810346259108652164626274199786384306818042804928333309883406009197917723760585910644595994096967726713000789642853076311813078172980975880215520647470130555553423123312499523608444719419248378037540619126661919625071565931521394568933633044830592012225552936968193816965859718744379345895804241630778658593790903589409047655016357990721508317048637043677100033136655053669808137221868174453119477588551693238500428103616351415557314328670088662530813574354930076237660598530753921067702277923027384948244327190613625358305928164188931373610505975576810454916756534914750859317370225469821472585441493085131033585884348318861166015658896489420659748514596536530744838164373143261631496119718575324598883846544257081998915448276166076371596778865376363937546551042004398630870095090568192672997388211388922613326928866194340533382786829111411724264332756695078937212103777569278059247202896406575539502355803684221518161898292195962566127098023807455031058311982921728886985667418907629437386231112189765484013708746679264316720739651118017538460848577774346913193250216074692898001323381304527676310960486438374715440343591823463085999925984512341277354537632925286888903278057699807872367141503287173073339545252505526403755893858375414893622340253861571797484927734409055205803967935673073358832921885533194823578971839169560614509536184063545999201280285030341267069280998488184616985191814254065609479433609690852391571775107694210204670420311068190669658679148686322925300065030202058688526076965616085000336965838980666974475923827804288744265283709834488882929678050186324077737516577310480498988767309915767367219306431319418542707604728507317673117790461997652485976075543410952423876042159382027266738835204098426865569250266579784709015827452955051211066864620188220966655613344329896711944800848709374527141566285499154260913931263341784802337349064312936676482517531626041542711165801668078372128153156839658129133885665841361704191761006274199802504674881449478833891384157162777416942086078620413073125463925589544124736416690592817248696152908105815759057567649959054251925858784449672104735295418038461277007043505320272610765334897269781082920211915638506056757072099303309846382454144808267835979493880390662395050944636600514836125730050703870847786366117444569184367200983978709996702906848231112867999253404767957582271612468334143541659029244888315543905843969769488580924573684186719411301843419190843965879995446128470874763264660246015604720717266820924207276676055315557528180239702791871200427756097365097178787640955174994660875085783575036968306240242315858715251861517979390322515959548600137053637461177472707687854259030253144632546030366773426357426097297607993201773407786017897152059504531740651922877430850048973854089498524823528207374018019330259284863458130742739252621539710691237025316089048081011558563528497089823251154449597379675537706800240225462788214101833760020490441134330147090596832419441410956673884023393910340073593913104735437621892147104222035924751447431922609649985526485639648363202462507359887630378068717613362973821590829015485820788185715682441556144526218136227029686233862642502301786943237741269270159443334142959085708754122589104175443111590325463375928000240912639538718480756262809710516562173999444505453494308849822457652229549232917543506613345179718990651720059150903596555968978489989184489510912531773637597822623508586704230721999588273592137439399421373879687926857732443728569838806542823237743187977589883907364017455015290895210471532716755465027252093560047345219407451583694857367556465422654661948799779845844690460761101308315649593678159223096888605007521012261435703387318470456175796876665648394954656010092920890970433269690819685012851693161950631561101517799801003439897072116921355971185768029176607818723940924665915082697178337693666620691507152602831805723249740337879349911013622810389130551129795894844395348327576526054079159392933199424041239278409207889608736645367280080959870829410982335166950403046363732096981243419341867997429543157359850974796206124618178655858810350470539880166084691851124820434877174225943815618305862781317909593964417301417982461415200930854619064643592173670125342860161081491668886204570802697002286113701448472060020114632577130279214483082463411429867053296391097835351911422236127960935396948209619858934091280163787309403904923920796588421167869748779362195558608779598270321838100043814958834883989488141209815462782831452053257847545450379701516273398039857939631559565420004654855954754765900582963648103898906962637980176920867716865812184979699517394581778977946662301637288924748874080315620530454718293852721142810641945215550531113734137379158910250319648947143213681656614555157335199344244788681115932494411419313144194931792040844430778659655059620545093045519579233447768162316009917056541067032032542377743413360442433448914210359412692862942641143397126820750890890214537157612618323168500177386772768299107991717573072773110324504573037850445189714679678922689369889639780952496634329622755969613870261871143971687718128248304843488855131222216199691974314757295132564315562443439875288912073505661848728287058771286446901763206080386443954119841453463308951574427931580310246342685720641013575281386825989171972506624507274403564945024318087180142271119984835130380901783358724928989397872586363818698687680891019625851170084760710899443363431446650568060973834322752866900561076031149894232927500173426689536184191171745365941331295967132473490866529245654377022578560279610876122401725328170665547012113570779250360899247493943274293576804856783191988186288260969616197555996636982168209329256775305602841683524587118266132655684572545520005547913718354094885383897970392313643195034007174932414843301578868892903464048737192307087295904894720168234818476168299093129931612214757495869274409672619976073881824293290730129884890280894271009534519797185443358977963443956394288118699578943149655193603951317232103088703924808932972792875172832196379643446638354268299641553406286515745588961457698769640780998140967030191968561919743629254259057956767763983681948377793783047499848240026475730368459263006681253707413674883672719239221340421977195470784181253661289032411318374426896321861008421635227382559620247602819875718595990335872105893135195205872457577754854476177499328088937856645826297446999538410425291647769731830762643272983547898188777928355549707238361701384991271845935008104107871787775614393453049614991781446777780674439737566484671172776894346342803977121696332747879919143866792985420457439939502414337726715701957989967833267139701196546320012026271455018260421044013906446136884730490386160505731940007131968246214287866610361182668352355471819497805609320579470474461858305834406005102953949730872384992074862422704914503896204492429779456675672155218196492628137085712814768380203260007019585553243343670799712834459363158587411565049797876761964080982222125118182408996958094904143417442531411607926089892384194842991712389143604095269117400976381432806044442328065108865271357126568446942263798354725314369392691317529929008094259709924173205713756404001295927772768548277819828234057125702037885128047146730792688849282202083612864387424560876384580806152088178276644770900817344099818098034146722562371840566167315053007194416590526236289692786985040948242890287701932637486132493217776795749305718995455256876653043084539356733584894211354577902546011724029477458105826513623984817688038047430411754635027173234118402690202746479891710091157284606378744311434172410091902921482174214009524344788393309429148484283924484689874094228104129911150636590186112928397260234952249826961066495297337391701879845112370934615802156313406918479982303590654700584292723722721711627913419966029501740267950082839064639806589041606516363455679466747010152275863863284982255327035898570146717288972962801951932742384914833017588562610848227504672386473084434399789881581359467948347195872954900835677730637727445315844034587204657760152036214660537523333078175973167157555033619621169229552455589303246120752358675063546536379919373711371471875977279492959930960149666653163193528252932090099372868207828472520991812560985144005693150886658570252905555572513480527564235764355701624030065381322090123669646375510682725966221923999193265215345367212415547942301159065683515174256820689416737107266587288047066468661291136813361973359842151279400989408251461459289396880945318101307662673766182475180966037617382421974560092435015057748504829099881902579669241826248043497618955205271189036702217133265757987336230166907912859838451361230861289025938229644886887528919759067102103943405640482749953299643772604464276446720205758845073621471584907341977971738290608581671503924032062912201227194722963684692684748598565057455548226575787246558027954690092326390168509933603285103096774207937351786231846533076982320158030113678314678426084859081815726263123883991066648660581408730482094513334131104366209086908671124159818612697273253029167830115749277412237725327838195024270378020766978509212716435308255299159925432295342095975607646314776436858898830521487256656372070385039195498343901105506951718013582511141372041262882692986824910626671820757190519592083633853608861189206546777470887720007735415878495227946617289541552526531063531562965406375883802525689296957229851332270315600137185962281293839217748796598481071063456009228989283997106309442638665214327836736867919171459399077102778767950904853473274139156283339489862851414316095912506768935615527052690406929603199880240495072863030558658271334211237740171367737405435187199213082457633602533495897305172998146658519959660978698870453845115820639206822062283523272038166514295185455376840237299497511978619623436800063927941916501810706104637001754966616504524782118095200229732468104845921293061763440994254945205596419063297280088198589116458226199955017081599460704945056713073621123532144542506457035410096542789408264942871155509735795401937169755235444318542238316009255640861027908034611544109738707112220084128363801945265489559508451141851614964103633214172373732163015323220474581146026231678369828971217422808164983140892170088271437105864075590856379678479540515756980031665158246478898814422725604137790422581419251533028392546989696573087763008887730148790493251852166244054519774727857950259575203471571818996248363382103849680891408779736642027730963405622782122641211101165269364867873028367859278724586646389261155858265492366793745347944269870082149465321614760789815229013250471208925703370046294477626921647766442704382653894205790192173102330120383633042442235134536411877688964915738589458649661365805857498299958273037954326600400677333988872426645995942441668584188847104917360602141892571079413933031019203721796068386569072635667697132657239391504002783690188802478191104616020185122528629927680326148833373018726601340104542367966508276983089488095775785689077091254007199992198285571937704093636396236381566532514611210697730472529035912857571001244593710381229917157930050281194571109039876582173622141743691987903243699976635274727984676808363217501164253910625179463801995506466584275768083920685818514618383863218219046743973155622720430478821670971535730496366861702849801991411693903520356358293835962208680088573923058153984342752329638458390326300730103928702217090916831160861766970052073207093520204482987660905655989040733347708707519456296738763794604719185463909565178962994541704721867175486807658290240478406888992480727788278369852754202053310439481262905251850994414401580092397801150721669316390799725136783181263490537385397302281425905391616258592113013202416292497955099783864745373974905548029618655341212011365372276062012880525409186658975095452382952241527487919250619049473437882507289289147300256751841191185621827841912661511302407027564324458121782150432728889943518949688909459207976632089191636171731664431664690980053461629676679449201735854649310605605458889106905575628478184661213126029174286568208703289805298089536429912344168995295240162544093928520222980628823294041067019078110631062343738067825658150728773695688929360857510381444045852797394910979214128182883011876783866714132106182479401821312610122892886514559595172447069248876889819811954574153540811727281266242330579682225781251601535595514214071851349568991675133827047035590466760144401110957467156745492796209386914789234820040424478323864208287666598833847880448617011445477493596334006372601900779236305842748365495126521189951686375516030959600614071332741850423331566804606796684810422309254692413118479640031312644217373228765528759921280655834570924279918296774267052552171209582193968432976879858671085632441815864388639265643543121313347155782160209280015389526902838938939482315577359508576140883758907521334380244545920773282958183142269397512987687242444847741600856937562926001379426641695848596724703575340514147008746461821560588637312126965010678534636134159040205139973071565441973741591113745876564480253726691238750485741351259179686265314632540898081015150409909790884873087395853796108894167691909902198224361102629720894741131326216149261049482533619405314243807645724969589653139979517062672313997702805436790312516602681903413143101472558839723737736986282299341559638269233599884184269907159869352948314392385098741690983499106811488255913374444836357571031858894969079740650663227671626978798255781215833611769696447000572124083260531212519730589474102709430613652240958193869896702010174578350811264800188255022557771181046111270737605129157681362917565732672422995955879264283051381131296389753455046441614860646203114047973654003095339216322358176853423799869677863597349719523769755411531824446096979447582684519156946653421086419547793081975463734675055373175343794758025945605486747208208557748262121697582862693214186638957683580673581111449563809009590709041786120217727404211254155176841168733097911178418216482587219717749171448653007095090100803567923005708356585191074971008240083283413208668236106720576882571852981403234043696353674742497641249648200783962332033427715861020017707716872004417727222698307361543550404239653289283500061802981464881547884290489758214597592766325095475709977271514634200337011035307364132147752327185172501161849637092427174459717455869033480347327782180339294769707946890647153095862502122372238874413126647577576217367583835840654793314097227588427820413426935550450096364416574514849075818055547817289541958945554176399408269360025578344704138255682562155200436362722678531089362604089079184843040117699229721025652115882371403757849963971320657561007394474707034193595759633151639609555674035219831291430056927750667549096622447997045167545859490121376570047193033384979991109606170508187400850617393336646918814600861811299617615825444318297537031872244524816650794432180723838314018526787014401418214146693640204763690048228269290609925625972674936020943957288017498833823963380301936657441243631260532216471843795792953234745244108403735772593118215436927293962975347632264641866214658959041206446589039379226015029924163261895668837864869421883769452190294386881724786436897029644897762340186852040474228082230125134251966703653439159472096095233353401381973535930301056846591791843909439566558537701108399783804335919053058508401360141857444560976471944001892885485312628898698012455330179543710288075415452424195052721023311036520213758370585019434181754357356149393912011069737439770725881091865124689349060132360988265484121940515235300954088745842741611049466207514633529357032932365964924118582074095629808606069495940956050695981179861227758379717791043705298999556989958806181919583687376268415001285903055713614121945352509327078039368281519064093320345903105203176171792106749484925073618913648244702526946263539798225989223040807886838987809489782462177618321607947187595061584040605821480647909517154687139362171309781627875886476203126553492936006799525565326169373995515000762356066986048298818357228346228954126711676204543543469802328668533669278869518167224240355460250660824565265455977823802133848548973920549102321872220828363225378071255091061935924356494852109478164785109909033868886488372661219442527918448520840388293168033853793166146363511118996800714329652322412278489126847097630531879909463832119424679496764470015558082824888287164825511847930409142089049503589983357114628411878408598543484106568679163183425616590655939116499223044501601940124849475627223331465820441873928003211141257731829880422623110521716037825582677498533084909579933644787002768733743592484294361457044562334532506340225380304897940108670691686747088787765436223146483277362993777508763074661457515325279471206448870480816541787659448259248776807128808993566470563700020332451360786005190490732087957898504556428844080476052614746718765535185470422942563705234878353321569938657241080830498515833421982001864818762067909093534514808828069518411419079470226683128699697708040987951867743578701462500839214550043451603382509634722795736318554769530746280074431525259288595071706893901756157778880071548258521830402048509597256660470556932998643835329508951525215866578427166538024193173330477067059527667209352107808255307842577150159576274968950571688918165125872126856328634013933130371022390017056434884221622824167527187386677518074926576135107783539219708144199824278630813997508379638883852864049626180938896249874780152120990494282147355367918062480720020614856303319615771086024098483929665959730773259160055439890179935380957308239631205486192866935700516382296711309571530628582016354742649479890197400928586070013842063607368376265375947665406014760831272988976521298491330282588417518852668215948710512411058783364873808693789447372124619376417956291805973338034287994534340823582077923037407681298987336890316406539273899512073032530592282856555913269589249579166595613615169060846983124986094472852178321442880019907576005234896647862764968809114274587769052034892717956386088463833551674154643240244705196185070667117122859729576791722690508129897625358231010070043888118272031855704403914722546825981133626156006974544014522380767759423854228130236429632303884452127179317149411529745945789395794438188191135905837338329650292351747803782262079580086019862546330000011092549388947898399310142326690813007905128142318892690206299931432079898456548979920033173857039726602273749249163014851804404785466213310314447655823784489715372880085889934960135510416088748129107165714906804945446269528575347430566171352051832017067439026966228542733679141609412297470014178278956440695771548874390133562062035672395155848799712487025393390438495465440629075422266528870829330686283896683770384340288389112913054249392562340274900013950959856008119783268881981771198598849665005503185795963439743964158789261237499677994326061946380357439929576729803028908152502043015023267887552151385868577810621663969753853345063973736768039095964488504804258337275340112749082202543190422595074715602191563471661865979575104326295804864675742364195816570757038050411528654677807702148752266164396540193198395610308730157349262604405785083552854621300999883727991662715780141148728385316610950705486539818313748409962176739691422206696865439282795811751519706971094235697712850738346541648503986850544223291877167593390697885866221205967288947752897877803016169416591592667399210773385978489055604825802197584490794075752003811337124873035284323676580643906991177565502745068869682688867373223578045400485595281789274620842153234632435291375732490281165268900101269203927590589956036079210486399233786601257014280128214059759545305347506165036116260731624347328851102447875648478555061946349884118865780795979669038143507847240597865888095319644295164491067401734546432446574084927299428643001448578791852079061669807073024105000364933138832108388864120559293942015469328510208997652106132903894983774054531246812799051513497312965687082880208359286208620210542451341531993226644899677901948977438490771900430549369716928583025492413106828830298153487978662399299493000519738303720846393880018666867603448692002238058585339242931764491519181581994553666302767087584670879954181183438422673158071785421808816493921116991815006929635974210086165342947144187880889217459677686384855040712104801253502547546292323691247696383455942421432720463574285939837123936147752682513139188947730210551017176050951905727023028773818378270628752709562481711144358084545907838870217560970830872264617531770083430055716782956102838131811662421312604523503972193114424894073840014310653203619956944172623394772657159097370598424278931049933166795297783430400844903548164811490669912889475919478664845311089969230555838325752614129133797071230538400541995762753446895399469255700840263628927256565177920260932052636798435831337637364943851272333290878704977463332316136257803381945496170362265931448253667775884077168659488194808492146904027366891431319295584266995367377103015352995045854842748957584549446604589355208608599326007566325997987056067868595525945314616186926662866979905169821790109949745608876726840183090123171961129678722482452873917150161356978303612033769342146783103674717298415760488156257349547555171576701395783216469672424095549880921051268130014947662999444033016647699591111084850380130900551943016412135226521383055265901318394117819222649195409868270436788492313587977601853148182719645219747273086919904944294460298161641934033102571332860916834902105002604606487426882621615774982190351159270299547423335848835985354000627379583258446985559662471261782850139956712555527619998131811352361565855694619208924606158534856894493999595697575024259072944946583466045153427805360930471670088183205229748692281989665839400013440753647245093485309828903096173808149737224449113713337277175824539003952386539527887752012365674703406265334776772452496283914751137572943832167993758956789499153732667903444266226968078134745738333309630497609681431892558329456171803890951711988837898759931986733111561050891069213752038150069031646207468219381452121640799284492887042470570270590297435147692192416146692544867139635452279734506915882159401407811317776860577785106939119556331998667657916405575674308143529635678147478546608378717495621461033420428200884751138590324477478020144002594231565929279787589564907821200112077233736399720240958808814247626739230508370242803582598570375274052556481192667195292069896626357340157964927451319162850645599571135811593169043261731617641761634239229559938556800997933495989733346269311562342608345533666196590899914244770160224681997284619569266622728866060151061542228311315499637345612350561913413951122320429109526949021832992544634144295673075261834841330669385303932207523676099913055679701855702728498782276616316668878625883179260275773170131384373030673657848188133953556890423358068120001943798442252133427849003804962192313677043805487345331994705524772032715999534018289071948330400127482281351976550358811733128093586800945857510488022038328907301081589581376296781325173635706900805473071386156102261677162207328959539741272057560891856690790391349733963291047594501718662370246612586742989304346707295704008567318060129912121093929357299796328461020718949608506101210912395833360101511547906590273443874234011172335444015148864235074484022177875802055018290693137450344105907427516413400302473807805135023037680815794664853112913482947723289737698215608571671271645416877999553918831938632732714486450001306662667023754214696872744199259850208991446300141221463300308766007282931571107093163156326049882583025972536924434764330760005831499771004531660462550156960341310948941903383913939909531140205687512695140279759757622066694857224186921559485777676186170112223981664768567766222819962881891521044182354360418988851987685958137035451987922815322861923680916456413182056495937239214111279043987386181531156671152528497549788694605631297099142445102865950634403530201143657801384613527890507981577032022309555976575583593144743363019206677478115799188496867599544532239634980530209945033044178388040958270869010988082992832540726809926078757694817651614845120726483360310250344123159318709058961201380730573572175612670941214100799867232799052499955758834421445538059317547906553726504397565594619499954333089650531348589931545502660081168368392423736997546180321774844440022339202364593275541368832771512321841116416370550723704275127776673082432993217136831636656282662826171312800011618269787340664317416346219699337768922879909879717866991740357853774874938607363770525425864458287545325678544964763264572538365635397530577862433324224880548689457088803689831602710576297560731166548155267709610952411627742272891691138241267595349895690657461200739991682883638528137426193305011906913150727068464060342335527782336929623734935393765945619734436570013519385774866676513494778856007656586830333902838553462988104832358455847585187526090200307428861445176064981558574243441745645365160130310605404891058137808121953704374453828162881614330693621948139861568704298333940818796248071847411087403735689204359049765391604145147226450455834130123086918020072558927483280882539349305620712792269588121761353367948168351753738849612631050556597718472196310445456456199968555238148222649091222635026768246182461490848765897587493409181659549383977301937011180792733769601497676638157288294394195557806374420122198981534119961250153182287803396656629701635605621134201705586388318154981949306551204688241397252293117712633701531511957812067458273114923158563372642410713343184550040492304470243224047035695784266308026469059340205448833639933958691707265317922931330685412113780872844251151552478295936010027947281816382771603621854705923071092841938867270150617640566879757397151095240419631243331060648205370620818759626204689845881173917486772704600897478102954644107809748776409414467840450615190949483499120417394801869924068986574126413427194217454190032827692378413033898766324692336362500990767738833623604462810633304510417427218209283340466503396821944835761528129903113943394368758442701764637955692881117431750473562100646248286662029854661506531523862862873677907287104915997030164825134513326387486926575956945002036273106580066849313379324229730394079038667642313251045427687389372850065485600710759177954027924980168275052789226726586769005238973922489931233344105465341107965887542777910306304865902261237688468569938812503470564502401622544016551890031544090404710636991466013697639211591204190781951151770903111483906996485787755390633863777328721085216661291418563569934972488013735151406752301663401805510597321875427028431499997067225617820806972665984994980836890564283058916834354633499103630903231112705943753316839467454292782052096450179584861449231769184684275276258749530343981170356776721324171614088256434015076170517545669492651048009700994241535877033138540950987159122141202227067470287407236478608494869121424114168983816375184568242101417406898429148782332409562279124713747582360586745014964757296402948386374082823493455744363894661492195840943004643807084338368301449599870556497310110269434714036381210278292781496809507321082766909313917963561522263645983115370328183902761763870314185840871350636571359479926387950022981551925164562480642311305524786387025024455419073257289669352090331766452941366400981957067591095294973958924721652157380304666713646135006559233396419318838440475209854706316554268496903450545068674333551705249860218839524381452280998388581672390644532082397461003135019743618356958273420164359056756882009687672853214782503123606741424490208911239187646039940588861517069963772906819712392263450232529011146092485102123645977165515730774272582938075521907683576299624140231732182386076468438403147999632153969133400208784410970740317568880334877551999770733611061585697417001182540438563052638705862374553205423402161173584709153911819951556733458679765487376382828588398733857806517396597166884048222054542012097658982591866086636319597768922512044916676108135590638845844218346578594748513717230274440831019061364165227937876271228752618283488397151212003401875571360847995872133823566121373018923331691782577326645297480842173729676346880541815644607658122602002140568939698373587291783029438857524368087900436853292946704345838069962369772590180060130241209936981218743854975204033953238072398794599205466145953674197542186478936665401194715831492844772315306272118737694126718856235405194924739879998583667671499648119421751225870490379706220623808626054491260107436868429549601176187372033514381687158920559464243073722740816357975124629274097799240790680692273841800869663914415879268785161813890193295811463591335816973411570736230324584893582633110399241587511061511428061022321675577801752253444341873087279305673689295439675035516498607250616906876741513979196720403181806553529059913309520759221529163284913745877359853573708748653722572747389888059762985291784924542015165074734799098250726847863147053529091782303711436828886994794186484247536816454147406755192026644342506802428283815654271790764574160745208800862289984792770311012424180638101996739993984966330328908024274833090379845141918071063737809374144844263612435845949960924516442960017318931654123126622540044655239369916391257614973563462883139627285716161909468425113210659565576398096663209202902822945712278416370993960225863129475185727149151490422255770034430916685707177839771249450162110837857761176071074298648413655490476817940106919709258695209454669724988638136136995886836476897451882059209349893771019159783849121980126803043317598736074657032904118574094929756611209164451813567520111015280882452874481131008491543905312140338091884460165256751512080671342207780578871610823428130345464259699672073721007389190303602573171381775480739903479448769873617170872197047344374550725712509896173121448488773585037891176505296289104549228852149711255074588831641777705371392789972976513647045344983192502715410530502469887281141821102444470430379232718202460668116894422346492749366136839773471800398402988363796502047624912613629599978185287360879230734352654289604284120865895334695882904199998131638017329017507377709682619130575751500112278418630694333291223453900189771054785185528196159751366729828673483592339411443390857405505074858875430254897241796277354492904396090008768114598987484938943333846444991682378316323519715792391596055936474988225196307437113394808642518053067876313591687681530474048956485366891289542044393765911836630807514476760961967141883671227840240127637738393648019301051404018002372845534048606331307903807229968309671838396821918861920924404574009384874939727744127304518981396396666599345825921348659344238546410662109883872091347352237816790118233062628159660209533330541143689685489388295273525559305830059250396766966354489937905270356997683726944610971391862148499282056100548477144498446352540731411555854246379314091187289149357239683853272715613544818938817398244369274053185293001172415171282585637501919337338267871330848412010706564302110386214407757071992734045136004461962783480694365583032210063740448565786142962245772989639636173770769948927694421423390932242885883698356491493271143488484233657145294540303113973202501404212749782874066034515198122396955775298962580191315018830532629249559421258418875707727131911532957158395504902569986600472172839441034923573006950162978852349950030387518338288858771160991205985092144881519169984151558304162602320187044748487793338101900138569277717326962168328331517823323224655034456781339878522200594935119505406177702180457538291566645823855270794058405690537246657507845091298420505441522469844751718942823761672404537216232161727136013971231022792190333204364262331220917820538484501743737598059066517876070810244602568437546611318598630126841267025149989774439985089793518211257160368564007721209564616423970069229314564436209798298467558001801952225841044269231151701311320001505239194088749065241389204777371711134979640675507112985013992768942811504476727324751663778643983936554388786204708488991822734058022620196971461700040692236779131103774491561680419795772041346026309119304545335107419988199546057075574711351435241126608665256279700272525163136029982569377667834024619798433850823034082781626787488931219453009016408011470713968367034841139151540372316479433661386432480559591877285242769520814898400013630338042612623965602968767131653957595083690089577938920294516345382966063758947176038288651127785051413100205209725433003265276628898994086662840805477529434601265291358552538506134463573528127307700770066956692402374651209247732031548581085138570433801774400301445238552526510216893507020596882874114923988803266510510399304498888406370658770909224700424304469125864100413463216200726462842632929151411682099930863608863142427671687581914568904708395355606949309280538123031882911031382682817136161954004605140631575277927039370162599868956067657260428995374572399455519925809495071294418771082958156309369659530276502645681522524672962819964109778388841336023034001427606185675333478089612407772819726403436093865831195434395797490266771170131916518208647634871518045517711613670743223022944487927876266666949215179165985851826342333920853939426968250500171927473418470496196263816479668334469100863914193172510779351728848002587170963344181835443039031501508168735353813372165066652903655155481328904964675078577100005254060675988833111224134013003887470597931793130031481817776975935281838092279514221184974697073413122013683514557510985088887840332019177402916560485582916295666885801862679051360129265623725355512433192541856017394501488469642490079048859983383775507799710884273399343841274462537581987070021632676974061878043669592952334618360913480064203497283431050513593608070973774789653102104611673072192819312060878407988468843413194361280885100400361736522250337893143361332177742853885739450691996280109879090197348591798628828325082917560907624395311502938373417158965612847574370136097218524555861004143462172687280898271280744034098524157403600651529780349373708207747844379209622901574590980816704773911134986647849198437602704999662998895670002784859545986287788137643206695015009940611716710578467994189308600135718075766902718504569581243789581356483151474594794053098105419916438989056974337788676926783648058199461378207091336465259531381682329531204075373307020531678272151195514888132260366162798873548470654688885745190367651143021706939083471313277191755118971061489011585589392371665286430445473354748230178655889524191525933949296318405915870085195634711770258246432479996374940618515579664161972701615963213839413002734750007520363711535812726698512493729752668024700838808827555349916865588034262223317683613848509176078104150222237221957031774371007076580905924848142645031978390380120473870883122466505109145027142592778989674330269193862372433790150920079000011556446155743373018731753898185665853946427732005712707923835753819250285172492253129047465109919715816724859098093159724801159839960984188384373077156199306826489029276966496951920074846396146452552241474327688594780731287194835871549512355030382918378644468098018294672743431639976657057379399643713713415341370238763094689987716366306547224731702718734652556523245273096951150704680627815489301662724113752060434582082045971551004811412091890735596981749123904441406219829765270810177590336346155884749127104476389272461324003200655353828843859143215106039361347323812114499308160765160191917608714690417213985049589995689406430172024865467473093413705383510444045983919428854662172539252684731802670390300177190600124088777223550365609650525863510965729210742893672575984275469104084148426335443735375881338555965232247661491336061289374666310157772973637129615514065537583877331580421750842123213961592735911590783074878476063453481106569708915312366667944844042994900109074553315026850288025701820752420222333150943694914372456715836462387277698884444268716686162385036426038338192069876432838427498135000180509431917308285767398704582579320839180406173249095737119820229769992890981121194433621880619770153242400998469754690581027848951007372116138975048857740079157125251456628686244577035240156583462244375246354068113533294848920954936739459969263720494117628720137629342880087187525508508115228739915722199464979082165289906785551778980616024451652122769837679631243304634632118286165122750551967991311587190945222259865390795005069683364500409632147301332599415258051006352869540208366553563396556260095120206575607062273518849199755866225665078563119942190075384818533425684140713622413461423444384754186949339488503314991034228727728382244244554041266136686581162643473104652834969473926179567023519058259974600650802513105726287213415307611561042191789730077994275125831004736432709381090450989886353474341572973152845598180938483144281668889652267608729273409163919135315510970120554643010450634290229302275111146112922586710539088738173209182768232028849949743720683932892105951309973561029011615199115919375502526080476915251027682463551604183036912211957034317754105689974544074987659329045653816514577292431980725140024598498791214684733348125754301781994439818500640462086988757444930780557827658031499074221978102017580008090145952316608166788265638457713437659414104679650809626389813042117622571684219087314696219776222477331611121214454295138584526788477287498941169696121221031628937864721563340028431540818887737883821853469656421179999224852345471204848733701263335932856213899447848458364088265926498056340692071227111122385414138444681765418492929739539005614699552264806349342388881945436716508227887268110191686370389109553311708785855861655884886459835860305257998621857465690586380692268464482492957979360243328432069671246489959571437399416674421277619898370030705816614457791730065806168216755278564395822575075279491809905649641083668181906836386335110444411071398879378244271880242461663864490249259986827013550897663671265157863504792857437948983767131534014750376104828021325844629084862506809859760912354521742162939475774789092119616285255681132171091578474477808687830173466492385010280432614920426240384788672725336084480084738232348205364831834451058098328683776595986997056415654700606313112915002618444534170178518948230284094356116172538082603478551106542091751422246552647558561219232643938161996835860917792194798791420102156241452116633127873570553390869152871215717414545477717898395053146149693607333322880803147252909885853707736093970436378209451936777972762777511509322948820627971404373095431128459868594880775307987835917996359941864092931288802897298715622336650097914100925208559998693628335841776244551298303722927432874544862357770697201528340114916346649165671227073850455052985778255643626935094137093511754196954142548907805644133315031950804854614327862915871319103319830240973740854082554325384051442706834413378306572281451497531554637121295926382437608181583918153268494181230347778930203495826206870377135313932047392661582752995610032346531025380291451680141811150032768700379897644693194245055400234478584429775248623627517324253295801495064572202598508815090936566368174762412223543137243673701300355427005819179117598729179792215905368561352048494652829339893195678568727087651299612281524760721716390889372243838349093652965369499143819399645032544312149023120938377947166975976898664742742294760920504470190070122653941615759220137845166401171109115709371157369076923100766359375820247268187135071108350531125937705631350702099379913891852580238719879389339228871100043243743052019365238004811575151395332440583395347966701698098850656793261507960923373356841414928991876453733279728571901823252330157594447442903637312629041939882320888683690160374117669417377218128184882568230343024284304755939222699529252233335767797847244166012896603128357068727409810178289014508095035030641855757316759693092640421819737987493356720388602516866685188435476243540061500598919126572422806558405739708734725427997334107160325048938545096644840912920779171396764549600789596084099312963916915288148102079306230385877734056794647698639046542722833711317268496352427712060919754955236802807162920806194023463012985343661078155583983922115338729567923536093391628713311254978373800709869126369932712248757969851387773300994852103068581736204995587678490160779146104007654918747722882705624107624730650096154707872145776442552574401794902404392538093020946242535014083755031808861350060795180209267233954343744250004758657880511855680046371141630971607017048049920700727780752995512115271770886488230999514913121780995305549050155099576338466569062719813594361600226195568537240628337350596519155791208167224454024988725560115063579837389569806756530143363431395467400842638221510753540748399118885278479555014129896580781221607551299655033577570225185619556711371883405860054871298586306654018093984351281521070518003497225196733668069638540856402690391887072453255942999953966912889530214316693796112559165292224723313588541737463374983850279480911227670357679253757012441185051900938375137836659339056946210622426203949760787844920125336785207480031587198778698594390228678629713579865329341159479103187374988678801694266085255928678481018299371813046505760895761473793338828505265064157188218702452788499198967764994729602115121916290312523480598384658108041540205211574484636192716020598524615611243275996731827989260307076442429443205202415720356026953751277653097978530012147723958121751702698111095581207083560674804680261720146960397173891623071486009446643311074781879862699040370753432557117625842016292894725487393081489491956673205091014244745634026279303041244301304709614204399310410180223839245717036729564051087784527096400166301569026786510703934662339927696988328344326106205978031092211114125565098570186439914459711751116625391504166741486333094580655369752722593846177190923127920947135278760597087948271973363593431664112957078729570740087672698964639245233434337779073169095228832175503578164077195660260660137980303183912343479936449245563268977951312723022037698459403072239144383086196269529341229774744985492592155001651046793559040987681361012028699446031921163710449281136789411445461233315966028945864873585749648168818942503587587431954929535539093171063154251899078354693668600545775784090469696283919579382962986520000625447587768541854297346449823900331790961962955812329006549400929072149197580406560693988963599303600709720384398657791859901596224832754550636622647779976777302236497068783662142965506447555540662550863347924961163833906805470724840600402405333719804948166228104039170662096399258145106582740771826998732793246621164189216877257171672352845534642962184857609380688562027166595243056290326096126104658854779810577154982898062817908966620413444842250709171965670278362523947306441854381429193462512103916706210753566499316082764844347625711791283529222733148271442573686383832785994136880622596659858759826064310560660384912776958437645020889640826176021376740136337463647806170464086218426152637821945723213579227884722764988870319799834555785255516912694231386610036695751381153518025135500692019668547967088880272773537263785956061380057286392217199409389098122918177799990557632897137080559717454412756859479591720640723685195738656912638492706443795874289221768175306420853642198095761834271321662169392651696570855825631475176309704234804497135445564752110154571110907394018583107376691921856796663066347404694310126342913961610489955505030878714920388600852829383852859373444843581020398431489753363335926916352398091278679176910037822934684287534332924345611912475791830219531826954632972982456956237882568545748195927917489629989937420670202386830218651362421968317383796041328182080214746830976648676274227581944199110625665786668370570132299799244084757078371503462712040757067820792760014731856037330574697024287885530602862421547483731510959435707721481634158260395834716166667311543153562905158681349896191001670928445984518601689241050364242883436125722698779226743647937406793516281838818629792459178103193726956892645175461540274614050313582164377613614614382485158358479919347832989567583855288091636301551667949551907743646426488878072969716898794348022754010688903051851541165585630574644725027969565374274495079554634193623672746850073220426389325932657398354357156538838309913376997824648247209372561307803318007877059672634080164813075535439800387192273568593119612152848970371237677584460613790102612248466657063646880758253432089815640220880339459416638053431611143968063704156375530911160866641984240490395086227099572911830597279718691392940346367749203558092756131468738168995473755248512775335789949246015548315678432187175680028045937833147449157320940276101287793386004850509070012299500634384152049650470541462148433128597301047301673815866645402410700319532811312873249152170736990554823758290262694431720911829762942484798055666400264362559484558160034430346891475893683051241949373363137309157294570318904095891736546891139693234714041494238176052326192952556974849392108557866738083122877363423082162634339541851488451878871020236107948532566792514671572374017707748820152155570787078625494538701472238968133781349238028253065075453911802404628582735382255262428042770161366760848569865579777276450223900651619838312897897946318498280977677842198293915971719374681386696517720038192388379773288522631122068889450072393079565010601499898102962587876273482186554313065872819949256548208474332225201989739797948235850028220159708386032789783075019688513791058954475994672485568881035627334844157184945336509429589858910841148113391853024189431633789243921485147758819784636259086259144005970139143264110937986487478237907883576379522854385378518843090709274767583961471163751901585477806894802449293799022846144386303349846658631814196824899478319902233876632847151000077063707689513412630007838145952583326016243089563131940116789581158329586477105299439221521541947022016634476934931182166125722922270764304653420993338580233632220902764558552124489784511508877583853186993302167176999379273846991652910779590630916065223472202305699492711080744039180506775338043125389219831405563195290580597318179427484756242802510708795147384273594453145600656912594878674689335646017634836449439545964353299964598077843450230776049706984293340917344557825854806230066710413768331626401373860575914044042818276402356132825800234854119495202194563589235645534787082371096039029894479478186611124335925597863839144107585251601266931346694146222528621931614930738684737067338959081450664196543521886694828233047646994579539712304818395749076313429061150656281039234424781681671802745869232992748189405181419459167269652337525770983703874937043999873692227586282773651939394455603036764933339038943605307632362691201336130096221928408273174944044123769518273621123701095519808933833869755509584593782149748586511712114433234020992787126136480194368475815228714979831346613774470256357588568065016964832612982002832576605158217727030899970587700642577619135888605900481519731731918651655297564375982674941311275748894022535988873249544338080466684953921448880626452453010874768085663170421986889365467176377579791528457528389453153487050177643545321360437922392736249592045156732979254062007242108597876065524708325656847046347756905283796936492684324273434481238239086905549619376000047621144679950342140937281178193586209488663173434706259827702189592477870252117716468404779474177061949025687188572146909023197861649745663236276636228236893263967950415370196358362791292943308432340588432997824448629040895866565877318646536977815332255199208808897214690006741349399022653822508922291503050922160621766955620913244931301312010934862174896275967921213041856724339309578293569154774156327040132251757907414316402921966510457064161538485362368537916642088831640617414612315543601107017329745448926440829716501757857829606200382115412777402824657002367563802597979820019524651645103695589573110726581716181783832105067912789583944651215011942872684366972052529574741214217648579797217622154166431051265142812565265613366456692464933818862475706659406543462788169159374151051258100414191785595647833604566754320636956304540017428797960961403261260080151094754837480050850086606050701437229186533602562134573770457397801164050619565725550333504591830726726810644171133389934438389294600519160859818824647422740231742797713723555639916865245260492617912844084326873532546019571128784245320296626518729712104609030986301979669532062922595051597420875158958668876008724832779160705936874123122844423834382828860572690450792341348419066040148685210573201957669804241084077497559785746968547129847150232140292520397793590154676810436079816424054055854738395898911639173396971069418619575584313039862289447742372729442902682266594055820778625751584938928070399032125046685249771485661969053400154163290627335178991020603798949136143498613026513582999311129179546149224562505112768442104564880271246802872162743161407945866928352706001316375211126353042955847001739341933108076181680993731286264003116247357998065640401583821819112289333740632477638953594802022941689303459468016369668879946177462383256022781073240744190960941950654848934979563499015768366586813639984101718667618538454605316254657103090101615484058912961997274171303696277140000274978106218421936786985747567404254223596544886781115626114901365060260310327422968862587564531718308362440731354694932660121817117766155647508857643395508004075120898593209068961584857162508916629004010978018238254319911321327518311334810058291860910454993241404290367150268390398114041015674589892267624628269621239465372395925227389460142956609030868643630960400897297142685696603415293270386304421293205627381016244679928474872668719225676191559218096815104456215634040757472705774727759363753606606528551218394891560334191066197724119042960247828885034678699924350381819764358239177791998812130841018381503684232051864699800165205540652974071027054233215205426199958405696741025912511433646086810237983159657995193652761645782079654090969162287029536733761951817706309493781160883753498303754275558233045951127692715617873034990906068537241714798333901294585078823237031225742481448610662804758427892833871425638023929983729697375001725804778546336026551191935530360261255707350457616498610641164647699152959302837325513624887467265674735015971095229609591931068334066296391729673293364088834008698309546016124601123420637205378836501716671018088438196052093915419379498023139325642509019304873229398849149829021803053312034285452710539969700609151274505846735719532693162812408350694436681099055401314887188232286594392529433562746625302846948358110762370857731249119090030934830063438149236916870193361290151069736343848510806271207996851306181855762202832174916118086268416314568005421138506423715405760897024981280537985654938813016116326012183197253664416727609143297847883196933385729248386135336870796727961349145413307659849939147896215501219793830671883505872485860044016852171976176314322614809327436523245569310593103669469089656083523282014212769196388878728112001103000282284284398452018520672010903271236099301081409052453401928464564855090782005212341759329238516095890546855512169819838303802881139005657646383747727840005278917140477516308772985598894081812550578461334604294511429461546163247112762173152302405675942355642239317070251950753726211543752050740057760014279539704790247578093784725148345598839602783175328757034482687974811343409155181764043880706821680895897448053971518249778172343940874583849917782927420367167992416908380089615212430559511271773550165395287159972049739668202103418633161169503558656547468991352540941474663539343568696054982960130395095890857718523283820267207565380351314465318099862240811734498461055300963668511685109967915803418475831580943701530244982031346749888972909774039109227411765297508674259415277788222499170015519932255396335833122688221301216188657843345585240880069741341392600426095297462035363006045690225731976281245155001319100370717145547403830764747599697688898202396673732558025718603754931178172770027118692975911006914118176787872598652714250578158984214543556842209379182731543503091934466910240463652737183261977242623105177225210665391505113966356122034577914370314326264306023508423918706051980594197666390702740240392546829291158822062070535414973256194298488101314789689514568238909326606921828083405374719689819981508307963394377902284570479574594145030152646882643195960030817986044247465485913589958553249729697968963062904161234695518655861780193594641930228190169655441177679098060094410208801437292130336255844069530097579261012033983936749262570950586516096920092286569316439334496154754781614783932157935753832786048310129165147302571780765021731364933497534879873982772646483094847458819224852717039172209613406865473453570152279439725281158105776203403138937303202360384031439404238703868575066576032654713159688961806646691159814662580019428288533119341380509622955577882627628387412774573579298504452865303243979701687863780318972246901345795726848055359339264352640842160436443826007638592932112935270530381057151984771686834147808913309923719757275086209984553213491888649434120570031252099417239452555847274836515240965532447884584716924990900124823893363639874474312124018372097574424825628751702067211629037520385261312290640999979583018963676977616217155757761888437447575346222002032035711241983117703389801970016562277734098043338731858686532049174385541723093957643498308282782627969170467039746926137313666555410441909168100238535635940234371736463674735578708296092299838178621252430653910196487581584913797267405331210542905900459250837312188819494568225517651255818673132349174450578452663348265789875515666597124157725957081271472587231774594124690306529365391433124182664768954003521364633299166246890237368172420672147018090861324023637047151272796920235176955608063571616068036760222199438567775606866944688916011114747627852575563675138020097850633497453753482578826522572868119522468779318372247444942248909445551485614604906362346103971973877831559749015924198587313756808772605422844397829195860263552605595060664438673613222386527121921747472248498422744007319687877929058818658285539170430615314677123347665437303447342526419681837491039449937033882604419187209537944053614672150068056103638270769822872396281303153060979036625735925299177771140307265508261599305178504892214205964128174569682223950907029184428703327858924159288237632729819818285397570135341041660690450150847850454018620079678082271885749778099845033635181790245525390149790010872479585502801787080344676657426849546503296007394267187665255714154749879050273051597101929697534499387747957458482445834744211424014398305601287989265816994893435127849504205649800082915520831073900329531609045608016114443776971114533216837075581201359704463497221131850918920855471939973008658019314142786578936084637124353691076357779205988270636335580332139685602561415367925553459498895758506274987248463907843435890642940246053005009117541418237468664630940671084857122728176944372317084456238030842937465703945062404286304553625742963200811451307477571112789427545268199988311071501897255704921065267465353525305375646559651420866001271856190804796042201605222749069990905700385902038738862628388855067993260846125844412985954583329474751241249249377391539899021750849102269281981696877850843048888451598200111614010149455180102334552552671297911434470342389965437777047104748115555203418343409565915474217645247920895669922562589858881473541445919195899287174362957015216493123897216890870038652772564691196899269252320869030426555729610971990514299913228674234081602895511992507569231857268670856594062369160283093978608527802022828247556037479642759340484454772345063310478960753159467700384568304501749962785037223412678385199828892380396136326631255912534254009261921762374465055093662032416488545862599229998428223309482604339613405735060096704935096103888102801906075011331300508770630139446042923653883934666433665598316256478793423419995489361264131825109237679496663069271539436515234487333010706341296477102091881663842740946301776962326831778090682016977692534510630663368446543085605140639369994934376608132776442643033317713484856196909124487485343363981915629450601903924744896041783763984924587606295011755094323898250391494218155493963970701761934484264459576968673249271891166466301795537664633054264581863020742555636264675411821592765492690835917336266340514769264557815535240450501658029340672622173012597095677839609578200800681956182225658421392921545632164706539911818908090817927867245485972560993167579449524827212356936585108389650850258787204176555681756431020689510084077292605833072542804638496298268785785622836233072789288627646740081405178911033730964473767929602429991766309123530017431369353295005454404922443156715127008721290322892287787833772576556971295878579241095824100246067736476118418725078631350410147115314226934534881771247970959388844391568776398553942900766787860035374364199359372393244128509835206051463787773350004971450520285061776299534630049402242136954939233010148198140133108200483023708248304349037359458009480501664717729446922477720141225383646785503963130584952756833005089102128828546717175402184280231438773665316808096863027324186274938593974573697674330197936171004136193102086493141577904509106317355681366849650363697446976014571635038530074337213628120666943924923254176906203915742339411924684918381796872724798789523121695597865241032481146541603741702052393592022960662852617185107295115397300216236007561350456136218885567607368729755894568745965891308294787937828549212722118161599312779668828162543718738613310761287972069924667467602867935828050658973508854525043958065601389210531457615749361864432566624652634735928402857188508424219658630546985086103453857260387805109614186074949789865796470360705728585202075905648502007755697629879054050441224635119830857716125487039603676946845397587253475474702341021846229096525107010983078780737458663782934215190351380250568153806643191147018219992964034781320847605471987058327141492527192415428403277218071578165171780605539522498484338887440017181232590602911090527670304063638479515258674584347403057428122184693264130527385817600767741315428146420730341475392341205790657931320337074075527498963844741127040671576357109670741040582416796508417438833943981067353311144289655968086716849040139476441557308847620331898775806518775340104802964805658617204553142104242569292940782341307965653640162168531568087067256223768093901766781911077775325934119555018500683911393412514544319023314308912336982982067796680878189261164985704812665751502981252217476536629035092243922480671159219279092580683120647938401368177232230341990304420684470565016495760029842104774880272940554387521649832171800803266384127592197280601121029764839415314778943268520505837803341893330481567217768704541809729188532956344182601818860410926526925414218758908031142531059597600826010126378693491423968418565270639443875615247945367505076763103035501988406060369101229417027930615593437635483096914411791378957564538920460914671271220694363409273596508560705001964880251736646757377169019718204930121940342368157106125347239025515878113446401806471706209860836781721595159419654298734662243747648260078553040538629701441052815132364305251257951433835741771823327263965368534691957578838270095132894537607102587411958987990448577796483531284865000903649869865279848689202074735932619533668369006612296987669162682701318144749366790093129990911862334648087753106379261553096019019750879816620593455659280598437648947979004541001716837460464533762974089614981444400689512546675183821080210405283597826132132356470456693889357373590503331411525990707170897866639078844865767330168307750692022746249330556607175830063314647450749854309367555879049784112038694251458646953154103122868929125952933494015393353880766814922298521876229379975018277245288372316712128526491370667902838646831502106566969944735954059862021758424230890033142188785466346235073267328874440022710973600194244411416492507880630471724321136746154049720126769009527613468489540740188006327947596896670783271078292228891006817741748296046149044529729561170781100958157219110572732446012099633671796488562579292731626437268277519888643428521356133159853705243832945722394800841862485724580112810068362699637049608245144968075351320428068580251293140031795094601241274283750148094809466645683459187517071880564463844710328392299389694333550302955926607454679690253793301693475086823705753754531014334064324576199132324370804973429041503682351228371005903105503324249289597622950823546170680506306034180446662578536564733862652437652912559251469980773979306203329904418402156216812327621029634164613366436445496378710696559881212386482381645523316319631586711984985340078141391122190281077715131692975913019694206193377034043844141399857631771776725980738703902858416973285402592688438322247112330432079784626930572835675817271046188426597956828680214286471512735148932385588976075069288474433143714953867619609081322439267506182139970697036593540417961465909048416615985784971814700054391359771774302841822957908152794261814291327053672828111389978126115930742103243373530076673069535546721536517477377413796557560173535558891109701548019178707790262119197309744927518081324184867128137500175328940544699827993683122715381486620792330423398549934423805154759108430179021982882107026425232023689760638465360029506156346336109079090984184728060777698539110246542830712761752788976679652474412235210280789050085573366531730404154439309074791328314598674932149511508474999788823855295204962433193193311933061561226272596226073891105148454428890147610796108370530674620310634124007599246624561644711054851012330558092850783361264088881576275678492319175702487207822267024116762628986356710159712313537411202172514190408856746098964449935461287942322003882846662654304266827389993205310431911309126735604215969642626365361087704139982676790489781096454067941779735257966195281104522259310816140445390473029174639373002228916881643206992556502835399590108808572051655237434253965256285347632208260609732033707117299255746003163963161956821761004776583633382205447442265374030146717063305152742139844060524316460991475328295089092239117224320230432612055762470963270873376927817260748607024456341405148959514227897078053526716327930120428413205817349982398194654155709910889223116491062665054245143392603191474762637452578961531972577901467400803596297208596994948278512721092571216911941076575751879994996051167117484180192160363919243654082033875944608588340610789042188237836654839085678113878003386323962992435136743416705339824072125257858275208662257426440194124218878125146225440660793981464765218262809744061489169970128825491617289424573340451067259863486913895970388674318447810126325570917114243027575355986449497642122808838154087573791814784224379565759675563872810078198749511459213524854373670223865423366304867657941498519193093950812500094328980165312380130518277398397781609026031913178619153457834827981137619183331161180881911452827014616774186846551478908741303760616070448261584984219431338215294623202134296676003374989487287241878914127432815618956895302220696639504174423604265972240812210204437310751089547045464339509806019676193631335809367653638058936038525939086126881244221226587467013052229424246457078894675871579103583053501702960250205593917475887636196684732874961658026521494472818539256385229472658013510121370395229316721936619924924790198211727003092893568721263753736082493785317429002916780510126609206547046643376528452536338202748182004580380262375628312630865192021405280331842918859490602317611623835778133631081730252898113198477840516614922751739898689039684957065326145075662791802879134584352491942792542012763596442039654947017561109485426592153411268379733406197909976817857530450643485296852319979457455892216032470817444357302840527563926843760925644669283611527008798861296762377727767976172608916392107892784606778353259509910587636019450135225949219594990381036926468734706596267382904950173936536888668562713390505097910738363560666974349142995693864987165390781815526969192211440983308959365495759934961506239204378732890707617328226764442741884595981525047693714075214627906209705383550149609381522030760020393783757884412308629802072668257038817479194805073955927375763774562965655963124745592192861864391775701189568363221457844334909363277415657768743307286144255412821490355174281794556413119858882430429341668096252050917126629233841776220252144197023845361464775907337814001500006459558803960695279360688720784249249666731342477498774266116646880703307799692475900787495329928815558968224724820210863398300177516375883960368548490051072747276983370551460222442717597873623875692320349092541917521186497896061459126161568156832912180140020759611205708868527436453344093549015027332042382379537013411315114177132876607118574089817065313959205199873641038766851196313758619059122710156431548702471390262631345822233475960238399931121455801349184534164638132525363026983791247222803563238938629133058760339477084311840191225237623362893392562130630509268070868992858759295948111079060849997426683735040957823827013955531842938318149150955729452536228587514169583549756837780969907268525372865686436973254852996027532836569902424377367324390154823139907485591817072118751182324007929095885717951960009993767705350847940222216988316779244751487954086590383074496375894976483044321497556696730720945704484746755409596656120403511494672888892033666116232724023019677076134368951213232548833422442193842105851124693708437610808438030958926768888643306320655848925648584766671909373185196003370518115668160945766629671760523900682615491619241782573808580434847802373786420600728339027102626220127948100376985989835463796325851778384777085882251734508851595448335537704917594960984817665148238087608894195340533714739725458367919142637282453578692812557738345465903075491245358886474656998331284237489149730261136287201869863875682217542143318467650075029282940928661067119040956642512452940966799002262373463585816331821524845156614749557226575936607123202442932050260859489821272052010168723287387659761876706012173785081462460484539027103015464898956924683194543509571402955066004788696625375422485376327061975458887353744659405873933252003033131627044124289846759518582518576639755120643977654968589819064422135945717780835578369557515405762534755628786426840124066851415512654665469918382171424850182932843797771813379638115311670594839732620079287729008571627044072366271650504473517675310128698659005548955312646953087714150610421000004581247819745214837424835578517049335998762742745058420536815292206627489432338175123793815193255200223469848917697931645919386775925036208293871023193221814547041252615659844478251305331527915794501257310972015470766522334606657894991046678628653333956399661275153994587421695201592741799331588438192284779456947962746607740301941633580297164887772174036507529238424772307172233113940039896023626098369689229949046452386194937702688123227465037761565375520062896606828805405686774786798132157311949166963337624687701864374135262814670860100482907386195486310114330339440577676537287960010374003917219863726940860952034649339363047169138513167999370677374714679496962722100035005804068064436002617393397274857877336537888384390446692856576924887973737385239669557573131091767045423773433579243298760682575226341575867691163570133726792054748667357677814593303150171795469342153254977440007211746693216067833017630223552841350545483891787255070375990221961529815438774215875723927278945171627091883240773094535819646389139343761717642309809011246948877868471280703424503693436894094555350606022443364811807290312913638866653961762179439165064062532267976491017856358112740632774503746108355137973233503912767280383534402622409432406097616570527021649005032371054477071854317352825247273461163915233243622973439281539863910073784257303673809402253293840789142651095489088635085749977080436581783923508932349805251350119236727588608749020682863421496081187485659214032079330039430196174369587981459375770603985176349122912001712310819123562897754951614663685010906435848967157978726289584340138904842861652571867007826770611225207478138013524075168317763932865085995058511852046054499790050222717627340192927855029897233154680715224254133772258410745389566721024283036815121144332558214352103678362990013897680141018227885940168362713868210038963504351733878726319996815504088034580112638650186022774263174168590722525189064296913385561552470329086486727382983658578648690559018863857039185479196358026207011543545822954046178491315483810446389928565947316341764994736071985752401176883125139460184715992054795949572152317467196613003395376125249989661910174737789008401995815211166367312574700400883661443199243245345891957457618761521283095191931760741138242794514211304608613939864344006881094079004815390979224791832602972250916299216277399297891054400938814116768894246354709137235259926310648262550227048670515104960967814387019365183685281643022053721428364134365098262783111881236505288215895015664188114924190977204347439020208349178918307487752534801859504046170376060325324188398775097755889704395275567594217605568164432383356739868088121174515400111534751433479297137657334665539999519995913180637146781311136833616654695019290631783738611758390321507396656750952919981093264731396928278767599646659257838201001677339453702411239144748600245048454832612244536327332379101211258950277384166929388613898526324599097143835118181764818526616976335449336243360619429468349794107410368366535985046334067940766294782678719279988933348437016272024170888077941447158175433238650785011831292686912131069677478425009352061919814017256864590164092455679580344124426136454998165231633776826220480510489679484752957010548077177057742371344656415637036465286334935159886907898864685664773834465647165725569154443905110058445863437833855726315982578026965764176190063934009376154142533479553494560933642835124027661881058858333561202035057022731817125893460293163505940332427176473442080579520567398275116092668928766298628240570499412695726773897992779493900120500980789368486682061252115158042752404567868549933761885831062880057086158734647361295546336018028579401604020863899175075314567596976079336514980466638953947236630296710077630420673881808839874507411683720552569034470876285536263722737500771306196592723291074715593744581962920472715769520018112720526519479739983098271485906155675351256264210518796003893473099267695645764805761881230766904388242883443538490229372069528807718947428484594800515390802987272973229435296235448323785454405106033188355416774935517153079652199353740994344842995887394947579114252796868257027094587874508077625594152576466261250381813308962278808708922937786558749392584496571945767937661976943930767157642115710881944596664322277798918600242086148611266408873253041876902805295084013649823004070575599695393025832214497873195565959691461664791234323651479366092185374068855302715249099107053709757949811487055000937322897157460912971356658781009127207110712631131261336853561037323341989910506443938891561786604071295543598148217685954271192238406959282072916055152817243329244761004056226284738793512704181795670041645640525091089531281519037434795753110807461809725584078907321646957091775707642952988457077442726835633983650371250340734740945172470827231993695943317951009027138137409777043680631342280411809599387071706812180126597576129430325028951298960694570889520746292343692864202911971483313684462097199012212255060305267190423868809317662387390468882629189638570873112310942867457548915055401619548324748711004522764902035406729645020846200966496853314889018394975438292982643597056336856068740230345074816587703264758062815806162414990020856434080687508258962381756182312517594982703860112259418385233015464536357013043006721641965442004473088520606172293163449950908311201087419898441131310067294965326724342829766707422800699864847847435408977818409281174680657370288214781137307103328218784815370175121405953204461774514153332762680713321368781408192315297138844984537390249432210895151740280183199652301383058239152439577374619975338140968503512339376744784474856927502024689375274562896294179533023149672424571457869943985346314541107516861386489102542463983620194651739265032046670923025615977695221499346478716099729844601398053891512429757151885699811207560636650392063208134205984842899178740514461540953180290288059424673564976306062684636331551385316719563528689010728051961495207668460407639301251179824756221146777540657376471182111810226670588055588044213848586076356531518275033433132966636476735879588411704067438835563779770246923708058735086406710436292788277022221407143557089182970009045838067947742413031187013947120110015668910575210053716996045458603956735262338860375246324860115738961604888504143691935935157209648184150507409358837802846515210654760813233231620126778239024029627828447600063921475659243790503413300163873440146204662006071631000064289886495609661442252533682507447777027621475047428505751789478213011196610338358270216591421712918148361303466602010891316345880521428553647840922516627256331612069664703359486182709084311934686576800880745829013391045764009406407741286484599684927624347145056292381626023700107356849989185846202597601426926556283612672617639540927595591242695718713940019306285365140193942255457204406919171424040172693458037122820431653700455152730151783294304632199290850532637078145342937566929417920366604372982402332717329894372992120367541088638665904408261585810619614683951526172385166644650478017717729347229348865652296440915907310516170286215112714080579253709054861183359120151841503571597349714214977163762477762308251167674082669645895516651040709480610251021615118841638768435312263838816248350168208741940570526747254996606207395000114321096982483296745962142147225618430758134766194111497843635203650079668905767132459047653840939576681430685563301478529917831424780475549972549032136092240824360516522893659696276727121875293410530722381593211977402107806825316895027119449078782147493157223213800695085121803496900205795689086494716753856742039485311534938612751809530195137725725509584584833487099816579288168074711216565667381783558658099726164359319686109447927825329006825421647768599491092458707414833527891611698605856730038995788502563568979102548182312730321562247149933654818717956070301757539229852807482543290864208992913148097658749512431634567828824899748773211078450621523271696123590108495043868092078321491633432943520659044497626924259748148531372317624871941744955067371425956725230276936822164284765655140502820152728213212466232792272427026846625921839283363908507486087838460825433924524519555727248939007849970234532589363638441349227232571596478344826507926389984838699130063691280392429785292267973102861776707435639282320963656416202185806397117176366780044747509544572577312306858288797325627396928358133492330875760544836735840324610174588223945618199014659048542233701397927031555652681020720723175123377586620309402990691086224848244076650199055822257920816792508992189861685994607384338190400666002934470163478372269192146472494868618020406318670320063659441771722968862619033748917365313463005577728046184279774613170620838714984973508413193289900145811252664090313269133488014702470391805147276237683947248030132788713310348855557394019732267510790219576050112014476921428064687660615379474909434911891463786917771851180849676091158061874310184328595820580332452898858848308763953203681368436376539028079657951553556110712809987761036981921905154172523805845423095904730361659673651234611617149492301508261511095100976428846859573225609632147767613659978108811289824892293538187921865971427953792689805332441261984033003193907840767178805523660976381218646081105698857989006030552432145481207749882951753822571027003620634392294770206082942056635416452620688541145777033865806217691894344046092036872392029962693502332542708093782433430969590061876870845406057803262171254472482061211836001441215304020518806943040496919304662363879027933900106196249266379091481033508883399741504505396496885208009477672799940177823733672174591320288714477487193660792812085134386406384362349325150469803690289824111564197406245088975792143707562820557701127968456645873934799304902510556262581954941689438092904513975137896273269806659975394143491827772282062263581614789263612242100910219480654735456245305684147808228155760464942204979606871842989742031708428196603112358618290384447485736620503832971417730263142191489823390599192891450361422487301896800192372464978734224790442727485076831919444836656633347580948073756095402277570287499865813472768649817108540058505791502419699149407635841633499701224721222643006680907214972595553713953592042687516456416821250517229225319476454161264290183519529007316924045484532291998517164694069536613343356773533977820536096115635834846343087724878345424731865896126814926203617713864229451719786124257976395359616077493696907791652941710165120335564977555661335091802693142617235075410555850965029633675246024885051979005040062699517874631414142361109978125796412456469453561475558653401497662749424506760306285164491548470861696103853975465662860557661478282429637115655947837135671620295722871021896362949003166563159796474488748024785435962616152717424123644189963839492620253888343942939243179819299180058428301125095208821748564632050331077928650248038198066140963938125711378663826340963155077270738645824244375374544989902199253840829637461236205255988551014863618809760845889357642077614745330535175854541957516105224077113088003795136395210774145124092035522808626353769074240134129328609739984910081325632025530883329977712482642742297969562893103435833330388901425887544754525968832347201881366967179425366650315779782833920694989484954645260178225758385208855504178720966385404696802252134983559691927375171504259786509604337569973824597381526293780660242583893383509445282332084978277586824060400556187437215824588233220328781464483949306494507159636223231574986984760760737246090773627782351789004249219159984564706042945219059558003919849641108856049502562767181789061469293187915338858312415875643516563664338930871531043020989678451966332976764816994381337418017815979244418344272580832215935695189450089985537926746057690173213125801259441100757479196951728340488424713509288901510750548153451133037335375729584587072423883956465445637893239592664262591306221969461903557739161879977445846148658648531056807225022651872486072892338057548919068852591807879207206078138908695788668331530161864334080070312363402735936544974921881803061474672865743431279702247778477567512457136967153398878029419188582867429274239615366966008420786771091659866221680900962005122160616826473847016883697670470824613924024593147480768711754979025067597084656780879348262671614266275796689593862785859456709835857427365528736177857863297948433294977006074976331488904254718119835192691386153541885093831679997136636597766237467135350507623775244236010223755951144608171180253310817853077249879894245750510286211903062605554296523216601581440199329541085185642852017895890828605378807022563845974634691282156181160101373215033044503503016180064810709939022715394279169228044342463870973751786631767347077846892802062459928496765938786974415689890948786724384455649212211666079484148720354371451811159237253600309071454681446280228863447862619960501325163305894237823959632133699595820456009553378012996174475265336475401783448324836997646847332657676347994018239475534349373230860335150646622508770000597382289231173727107999312195877064584150039135078740742355409979615865994516033712027609197596267983030544492339446675959754088903485840113305048156040096935433836819062818653139666541249631691142264873923771512211676600885578846300404971099282584897872781414124204120751596476048345368919804233495416073947651238519775876842826116924439702566974372443011985483622863794424876988159378611922671078879062321873533044314359577214712598776632363270872467313653869345653919505941223548936810261096123329296194906875179339986297451434019570065759375663673149765699512097462259874693030435482293494993225205462442204997839354842988908359447307332618046787530373214430559984761893134333906831363758785544945580069126528171072366602656917974147001642666725879173756488899946775386421571816335244470071506894818860467413015668245835373610786250587869597104236327065583337211497144254115137900343861986549784902658276384808489844990649842617522257262869774773176240850143280971016109204740965902265745152351832592941047805365322908401706458529095511583785440038754797346037159233729760799309060414854010750041144720156968366753962537870452665087995440391071612073585614230447982159785763107552820628239707224369659529136198460061487059202998765367071797732632984453032113375790495438570158411956842390780902168478844490585253658136434888164072338641985509182591799691826757615343973241781017433536088444665392050235303035184168274569586568994357485382166674851756705848331255711709684010670359035718639865353385234550888899001148465384401058676464488987558285110947513617714544485184934061146427588532534293786729061244922184034612126160516002387436193364056820041308151814361165996436953314419690436811099724737215191527792854367312770438084807441223634669869060741041985412315795237706081670934338318865172878937364179727389583305409845854545483076455197144237866840901995861598996995457932439918593024925059510069420825635501284259619007256654808960992626179451723794886196325787906288720625853281494357201995757321231066221787251429811639595547271078392561606535061938247320764846543999837447087879373777031504188207524862703525002841349674383974688042750566957085350486454410293454163248864330301390032844348847714379129606870311477234818501509430148309127159563722066823021698526629100944916030730416292770185612190013113539381935069557557198673144646817825140812531818150980907837427702743646856519384869517291448189674920297442516216490425030876333097009295406162527179963526518279825510260850521937540650262990028839838723320738206547423135378641127524919647700007883273816518960352459808887403559242088491213767363011846662464874622988615485007946388322151132323107750641047375492954323204541075322070465672010708718059407303815391465441478773358665885688749648706332757275788954814399273330828990789645682224988171460212076912480705912562752794793789579393748535372364343926428955983044167042496286394106741158715400043606126409626816295492008054842073249123659246444529371354670548398312694228968568940513697920564207404352873025850313452964867710981576383100048049955830896552942714179782861823166125006207301241621816186809548671447237707021658861145436353997544746609984143900142541066019555183145330914287424332349413423301468559349884252349218913546527509704327236099990384834833937524382118196198001449084201789956406720331212618302916137684661082104201821783574340074093749662025989364711170790642242883459884369243930996215851687155792608949367223696739864214161285716754519800328165186610552764618475449941618751655507009849437723092759737201960470197724666365923866049316864352873461775119091399332119293181580347937072819537490620021948052403815987335693912157968485578610632245720386382045149890909749132842032995128112899118448801963506146569252144937318581405536951779190957071501203846709568452283531031184719840672006263344835964788046672576464092530505206201291289585905675152754895420641560953229598468725561508528304727199027101407872298531162174239125270152910397409245642615586178838417063861432393558062357580406242079076888727194199812706827677139177988486592889033096452324617906897159033420748866432643471719807063986917900668438303927087504255402270372129093220268304448894340016991859537794123169961650815910098386956137385449952590875317524047827361538299346778793216302434305659030404299853253703292661733817259860917533913742813502963869789637532865412961698199067542984195173637844618415944005313466493073694384314286936175247389218894433936159945335792570844912068656240039423074909166246641679298478802635269119994187634269897737136190315870864762308688826117000479791437744005413950278458447306876879567741460033082448106574034374078944840921227800713105712517340414602125769577158185179318147210685662173712632956001223216211331098002298686981342058769841673191155651895596676493188801802038609711189786205733260052116457446889906196931094526874993120174816527194633893105591455858194540674411941992902456512851649404358820100343105634866424718535917138134342259517570693812432967904877968403954961358779711917656440378750290943034455360255666519864714654601916839264786006665753959484175928460069210925823642017124848090689641556444731844712726042763662429868711532395749925831455448808334139383919490355992848034248324338296429473085618948987829169910838201834417073527264253133841679896999185120909701703484822250444457408981278114289294987419670359386399958515202446364678837701515823944503451435731449040279210271789709596411614364611405317067352994689732714116053131010130825757139623578857420409435292636590891916793925565495189725557298261628049799437813556424628680431379498352429660651227050838603920178031822162597801941085410212486904527259231436916430980137570774451637898788899429935520261236569829592020303567317469630504965877037619280549563109596951718217989270216479540570100945595871635292927226129173305984613715496304042907568669567591250247540336397710272450751410843055904884066722629447532105207909540375825726923597526356749930179961120269988737431416481699408842873100513598438176052398791152492405983337983989727868303850365960045756148848495345918773516203852861003244311837492020864372264921957218719911594301358256109856484643507808297521727741421593888384173369068527851159464016295928668647599666950114398744535448251513984973844387699783832733928657290556878809910055584436005366408511803205985163577611910954277297726362585466754992020148563822280532289657346452632043661843979298552018951559452977999770865447469326767692569887158326717580099756693995109607380522696431199220497751202254082759767459621376293427300798170164330473995892014262883812268389528516122053158581203888615009290820119964381422299101868947887178756060828586556043602893166144698547769147230881599339330476647236185661323072831899537011680908886372715840159423524463061662213118637677815030080538416548490952908871720201018645105856283460340827852848976698993109352211405701579213573323772523015669205813133642325286669922899075183193287701340510763915536684302307739222610296864649321920344617849538434488640451787575052184081276343535142601267578500303341711830042823043428826479478488568936927122736126849207391858368700302816838989782669869505781002933267145430874647713050136211540605937947549937459152584544198991865704997178759838279398256426912137515594529261450433653969769089383434830402429871953048352078872216950371954701949387555727500863974668808646502836377326591303763387565327725387528521875034390272037234021521465234904894164515991205879494006756973417153603230604082505600644758985510269899405191895536499903515371847887364638714646709857830382436951570518289302972602453067243540170404683464183607513819830690471105287477886860907824330489787077409606752382012432047645647881383398486466154183911940056505050723632932568740704652628142432955393452066507026695579552129214573502981961621749514123638040375540956215984320452919592337908490598671666681602351518740528119970484455558407206616001068433184470318550583848852313855703138040324336532080615700240657289830445500882855761866604987591725277745084889743270010100330344099009726706102647673460567182100008299201634838343652630308452446919793143384022919050208343524307343430555981611741355020353249945669878398144310794685021265510215122917850975048725589182278578518310164237737664105896586014154890019090716707708687647081805446209491481502965475392310292809162038296908191666713418050359530955543766185374913890985117821775138378858230665412688436883758847664850769684991938429467172501843963128805936127700893619353899232182958315417559238575089588217845594774520921119501146428079240220397989721754965949665551629398937463338620063672364990385547178311788784524356946430612486012643684817547826523285826837571885351276825091573762346093199553178194148103595879786996278707433110095437676560134118952875114075724318331952334317347409484043467620511167574562787793730710968072408601819538936368113594263759092110358386188987797433596804042717846449533354262096496102626614181390391214748101148466553954293579453751914732264999253613720140905816790477562815434617933420013833528191858902555530663152708901834610782339845605905604929651871549579237358759533113717706158973503629683666655996100430212655794980533090524189499969486414895454597467761701953920676999075057478866448330955007104663856523252672447068681819247705485157629398474756520181960581878828340705281392502548841685859529133997659676830973387458431616143447860250069488678232330798481534527626833433995092693596277670335864396286843732327763910582483958919576344241313955985458075227032643324025792085583542070063068817284917105183804087753376160958201464199725310494439417315262455429133481271505305694255965305398058494566765181511902919431107670541443481735816234516123467410790244266843310500532680851867272303872003662025392791705491010937345544997065017152388257543994360280388841734081072447630891674007477219184222899900100090567167175212890366876926143147131074426079460635370168339592827360602950785217972826226425811843288410574370122007104083225009819500307040501985358289062887092187755039111277326944643470260373992076819170913888583583073954016403424073843692137323394685138424950494525340511177572786800023556147564460725204502683074524991559770131535819475048122515784307910694113436605048762828024191837613825880487020542715805784940889472927441406712262614054093366033052840499170344038362684831488493606808816061055710216141402559378801957018306108719384002800102265939164828330790253445247832188615179828484984742704151466977847292106923735564521029054099657937572390030625681310253302699233631080914834714520316646509668102833550604744620711930961114929645082497301958312384441048193663021364213807498136308409453328401160888241581888059384103957498501971129731495960960946205766251154364351872171213891534928159117698925056782208956043130281567025132086703363804204927610467009909082049038056970518521129576196900988120926440365720065931250999666800435029980926885163642060724995756581858775624667430403758589007897429897742670034540219369556328243611489009342468005106780354590325016511308656338252040989723636645911601210053025433162431248081435854425687404592721407726536142827194314890923216771251047970908727849193268941848955724611530202542451775547869670360139351118805513659981593904903560197313719352463455058020332470082100389057137449990299279462608229894814272056187727617490852586946067385076586161771841370469322410328183861914081392575469476610530289346213305304694202108750680334648202398112381891985549378824985852410102835093910455877320541946970485308123008736840096614776219342538403146077660128238424364030867849584773669394953504568009204606107132497400220139621700717789325766574277541414954334744521831838106128002096148688096255884075873788537577273862425189327171649718951590355286829623167310675115579213660315781990630391686811060187933316092676988802417515577782312728974126377826000808352044531834623575148943485367360887088652124941990516262146083187724159587584786525268096748524575326533507396577943688355218566153352890709955187928866455208988400962601123403739774777338916906898255566367925575985616089212997705863956444663509263471928214216033468580333120267176861674738242056639700891313119078509327379723958682664709157727967643082472675520341390943566384135567734657710385339921489655620076302818396378304094769505574264911728343145338873492853221539806897783582433470119954218124520368381154970028533910634195506253019304473558445316726369073672387100005416262986405293323643430728152614203552419841210489329626809242189657334057153955087972165325399714781424279853630676779956663623732832286233370267960828579704483039742395261937174655633013645422320941184498395313897313070316460517450483392977356758115051391988828542255491035610531350273463349022433394425299908045756232648840742572318662406197192700629869308819835951747842050341388256266369878008556508297087594246427824363213426397730809902787754197016324341827994105451593469818842209298492283898831570218927842540987635241547756969641115611790623521887925555995118281915934013837728207753138033339932456796508389543940916742431342300229619575538487430739357832234811565209676075900102760124085336975206188468406590999351809526538039578904529284121499396497962992346967333882159409657373573750503222430263640713085023628531609983325124008817266865254601992624542873081104923213210807127768615265555662365674231933509149520537780654670316351622080783769228869959152855688571781178088827669532172445975374099510332583934651059941961876892228846546652941637087907227223122933574809657198821710941655045360101135641533076328555908943398816261449429455977852386214010691988113686188432449398815079239870284274219364382123992992997998272015437610384868240757449800459279459487741502236764086796550620158941874147006677015779744923881210588524890600255391491607952878287815703400481379816398195512507065102693857673741517005129473791051885294958623938572336104216477860921479695585804110502786954183794039674026183443630012298002822581069683113568738214055577966434416470931466873247030070899258125231248135878571941958960431160546091811754137769715510301353983113531833881554098570732866653341581474896304745270980285903970048284601858670409306217920990422599925117790711494553450672967805876170089480271678903614102499376107156397818671281978984424945586068119897061231506123448484103610427420749805646619049224145893761046556956005180541341718960457154219367761611130063541927478980196410511393609158096839337290760389893738819891263290810420129173812437302550518063634783928977323738415247843915036193637695592081553718685104890874975984492710622852581679773321057060089864028500307464076789728792474344004565714264836523745740489988697912296334630667368020300135451540772540411365012107516755437617247383002347366407219406273816493754633885678790975589705346131944192150301443593984324204918946346560549780658963377850871758128302391064172288027836490839945830846228807687061700454926010408607029776026684974208724220823403471356179037380840460345128993557699755184147669810352701368388695603531064684374836368793994955158504418000948248139908360879445853817406334605958076240344160887468483948305859843738658698051611741473404297620067028249882308513143051439163822914873612637435793153107769717858200872500269494675812959472356534513238218436192029971336877251776651459683586634949050967930696586897606625615338094220039165308855560035402219220829941304767340884808365675280936469632638251119412492689332490030202372911444289459425590540852218893269735669044475019483285313635699683308702648104160096165632199240802567839021716872577856691126849872915096472830806117826895659613059766801713127535590790299635366565271306354995280728205338803927339178750815963313241897700656199814400329211497669730817621285608289878607968583748052411659458572985318604905105681608589638523591958311579804656641004980427690073927209044443967608116224612196942552784311792079725037966772089039584760740174117159014609576547437772305304187196460995823353479799819740134548935278555638709137957800817639016198332745753683891785190143001977137454539603702686263302566225738086562213176237268061840872740340986260318589553869991932422926097189760605675327579548125515745322704069281447527630206119200973881376447597520491467942155124762843559045584356432800252937334287639427863274431706683514451936688674801820461286028627136350092774073948682152234161350291549592247229028506618981067774493591459962033529293775523902009639001058919311385446888940034049859059527429182440090162897861779810459879846659802303672881464002035885191257237984038379038927208464831021441226125506771545672341606338571486497244010806703253192742093452727218677125522072792780306467441784724662030612440394850646090685288707502715905387384562762100033878799500355957319067616229610799879010447584888264782299000414377205547197609466968298380404868920100322505645813045544814486644440927931585189289803696630980423849473816111309694177011681773499794925518598035146962652628800207327947343012512631980288173658840825512172101439668376884355485739378893655030968586740157418375348998591297921122240902769099530297473085129646290436006188003426463055665184106618187187729431606922031981521864173010580359977657375669091532777307400028951236851937369814177603759583456077484136507240701435919256399808731434377639739905054783723598234529146790636252995890185722393452667519845866357957128283925671293115090507471470641935495994588201341679120496173348466689711772092177507267970815152062515303351558177833991175297114699817266658686142172892931468255409271050604298002338914844407764731636605854059632298845251862582646439325387377118256002811986236910094612173749137131394966077780765984444599015946501825186099622054032536365006415017380636509202053509000407506623094420668434124600619392752746321764230808960869670428546945623547892045615991565190671038495704294326161404667532594995960341266103290936447240562345679241349357893421196664930230189409941814252328327115795613829775227355523143579856223945373452705427223329156703904405727637746628936485439339612928987373067615435360527463158795819518719835375481718888929294272118351964072176016589329856108875962795222352451490376809752895556451851215212339597359684551391401588996483236766951987586849088762550934794772099263255124171767976259893307995084894801875189281435064986362812299005425804065595922233507145309104050981938448055816579400155494099070727256503914452484772440203371919647955348746018056386193741124995881896396922790573157179718294065170936269513233984488276109862026167930948296294296402196811220033633766797158358593941127160121652169721739251558719743425491052000814552690882159559380085887124555070926276440986369322880520635989995171946327326602822171302313006974880630915385143250141528095174643901086540232509830467318085439654436760178807929449814037144264569907475699344180429956067686218817260501207302123384164561968736327881515032550297347747722320133478655891702872867873182301679039327122209068721210556645889970070255756952938566961072198665702427991281137289387908342548129443783588744513656801216992561622711194840310596942026762832876851837559573033886115445210584859045337790208371310473161893744286734533011083494018253039063920167489616099742153373812159077072929450106451354704875462591348434933164140715559396297005263776571706791398249346598115069221486204715796099825687058580073233622094977504669103230223967148622757386130180689143785935094932445166368114193102747944998655682234527932054479145474074577253744727613694315789455768424083175808770251145349351898047380953739060496910815846565665907874077913068103791136519804392164266109974878534016625546987637074247812070270788631920926428092043921881361952286997972972770707757741942861696718369408302699291385919118020801729512393492036275387345014388125125575503432657280240162258483069096448701510095716648682366664667061655390950486431174867550165081912435510672690742759741456319764289422260914235157673403819141098220196268154400770515442198938490229896171367264630232761151460216059025331027513117394652637848229212700674746622530099390116421289656691347602734778797755809695443647171144095175686462830893088240095385829162143270169860955013937774101819732849480996568884757851156360729750862499428571888172272166213456979860970008572533878892995293617132649599095820650857359179619913116328965829937309783321677013261318669427635045261298177356134080391085894872983041762845095732708271752514574235746687052646028258293015966434413588734161549663487291895420838657051774475556794422409911399986936857347676647617291122829464574811297911322761106311239703916303467677558153575145520423633961669404744429570640482195569874744406250378774429682506897192451364245210180536184569700412161836724715946125669883386625985466371999575749748771536802098287258698139721170772906504866610011657259613343104144522690923891667289107583308727483964417752100705531473895914453916964397246243946770873341026029230831650378323495896801991013446154831411974701451191483638283302784442425352975582011234404775632336151622748922994913053740105662917687695321714687532735953081321143434193255287413925922193642657617426205503418049722949686622028602923286588922479658525478714238706723258292482266685287703145777211054300731728165157374756122054647229469464959139749440369796156880705161146947750211453350780551161455462006147018612695908977944837312349746144594265352929340389171644825197788654078718072998559961239016443342068533792666437483819679187173332129239009237090401946601280827378574948485315697176717117935629356615084078636857209173485070544599379252435183493947757774751441320450822659004774994321627741371713743216353698324386005041601057199314446694862637936226060236194411666359043744460840886110590610296022544733854822959296940410800613586591098611230167800391431375338085987989028509870588183254001661065976197160367848828701388588590387203837554884628790058423711151147327362977472852544854136143213177557370616700161876800798673209241738991151636831167535303968017518302579753869756379281760088386179368633327108711591919012062842710585592066318070657385842473857351462318250490265846280384577446885123779870989156302910865492837338511209839496933501626209527094567624771424784280106565343263578773918959909380530828232494690732101834011567596785473096878762610278863179803433616525398438378867310741933403951717464229795837578206301571231102745061095450775204916039383522936372620692974717825846103379628189847284270664125344189296368676090907017544410722593946141123355966254943771276408603062190714218055324718297304831092774558312567126021324577048255282592959966512823627554296329186329343807791065704524409102276071568118854473266287121884750142721085772632398723127714450602909425866662089172321438382315200411513283785144213927560319280361012631779724875187358225236036319610140802622300381588772814706334750402238416867567157823995387791127087555177861383095975935046232958083116865200182333938517806785698238614946666976587572402441742866899473386136715610538699874773250290303804368580568202877682400382521240105111694161047325884690718798295585330920633723616330665794145273405105172244815998146278695543732596125844013598990856676168832976577130796412294295024207510313258040028776241396214142225999290037144200186714407051473043174838064082879374903497230712316715530226170630533271539856086584103669344343305615843637545665621269018371320720879671660877472872913041204012210011495470710453940312301139229355604383938005597982845819805531444353010121396575854428045624384696763460446612245451244464513932589203838553712978480039228600186634433878414723638375649104588460660061431437054723392986525623102455521571853881586408398256382177874249948003396669459727895336887718507798520344945748374931139375016731704800140495053709685203257495143342099726093203544183371806174132597208356104512184766448711394433776519645563689553627819113152939137454271468895078219853030426066478420709518581296577616544863817046830442121629766082181684519777581163121509102560478241424724429287408510933932266886317719981465313374602393142903782217846460671537652194103995762516430309504490306834322829066467501934143732845405808172386038077898256510062004804191603161389558779199249074633853731644303723748391648778295430543880670895728398825732692543497442800694890172762974501646023589093869303290913706014534538561163182240084871362553175103532466061601888142854795200516771974346277552790490491128758891221667621854532265135978967663699096491865781899845313551822095660165783578104599903115439704114322610970385351778734417862360490271404074454383856268462718821353239205385071438200955056906975570987735454628683348775824254448144143877078374620203314077550060288332006167634868192652804303785071721530337950406450204117525363998187416633068284338665611176933509363076045326525231615358949198701394327795138121421169007268326062912135587473190299861197276350418945872706806911164863726876880913536831765511195893604524335003244286601592819927001070982514491716045936086265062604435000025263073142619032958780046233492719656615172906823740425036838020689779131944732551337365314243126596084549152428197958966738626596979079457370498244362960681729213089417588946642422062984639219098253722438740556237104903919351239172749922063102463261608903972707813436429111961555563537704418879165834639594834015930694881099449211448945069047159189483798551709402752709005353040762221331740271365305916976398803228908548945177301845778265636558691433281287625697684102687484195772200347319239695880578880977504161736421837767489969887496123404991996379263446786468128866722304115983175850210282633752822816912426591040041366266086910288829087081081058323588330567062649315074667641274173303772609734409974919337812087118661708696556065600258812246602574151635342207245984534865556531660185277342450419429337714746842698138512244026090512155339157513324233624097291423542865274258534913546646521461545752264632706239667922702253794028879530166410315066798880599266273460665757374373002077666507015164583727368560708006342208295674821826923004799197565510147382729988763082716808091529790027074227510580360196697383495064649249607344971673845428627590632409130267163982746057410888320306714494515604944597416997282591547544882912835331187353715074253296432473474632195282380169033153397159504751952172130566031172779789366544562781340977035459353191293237927314080730202252547598631875743452994460573038893182674649151939539060840591021473540330135308398382851138727957553769100104142063656775459593734636807826263853719302144771689384063265904360899990896224687187912112034701713955039542503789624962208399253244604012887594584389418397634432012695977727043741292791053884864804403863482285391997637479688803844948298893497451611074140387136974339010708314838764510587049250854305783088040445707276798882886879530343036056956535410477441262625841888471758167010500386002369490854310564328607527819220931206348113727587230251727857411691824337974158842902944217433543857740997943747748946428548991294806811691989741777098659783177912506831165637479924824821929929898729311115638613809710108301327913409133778253435948867250578133246329653318035279144529542990800492064700344442775583992147974957733707243985602801142115951968566978841153727641505638882478224617834464175751323016959228564268785480232012793596256275237440130625476502378210433697763334241334131674900381694945804003646640319074919910704035473693833486608090542380715596751547683266023493079421760967135798814555444614249273990807579037134000782462804786606645520688754402643982363670495140009264521804112210348607060150505732681741430190678415386023077794249221741314128092121530005853168668718917355057520178244978276586365676900740085379274668897802696290502944171314160124095940753557899950847940912301125131634749544042559079437767329733180993647729693590879467337103264772362611803903104656620271117600278215805090301474706332727091353701974184724426411085317221761682921470969949807859625931006993161028037160903649756801433444584066358949331375466379837788804377305854930307601810204192919529377332856462650980468397607382122932954917996169847327604226885816539460507964613829556526184666421468195814321973091046291978257128088492370633017090170973125343115849278306237172094280775353847233856645191329282220223993805004569202169047832953964872570237451841208948071186239081467689019015900544664106655300755413528601512420205337422788457399714497788006684765007337152695983359350889148492500625849499560267271343134248860743320145878645472667952067596891776962435838491581075006546553930407391185864809457436855172322627529664225224856417810781792777169245459632315087789686338834429837467920907334730771920069337538036104197075549322612308483129133816430507028094694322839787836764105439179220150719068593705409896560893754699159025480124361001582366866596859829415440452083952262011256663946890249584526587941681938551636091106600062639864328621100812712737973901271792539561950685288049353793524132352550270412657013997348126650944282398574594886666374337562955786709777053634056180949984210932327263020755079678155753302585648213189738151281679447950223790789086921082903025004229591424107266157230788422481931350662658896311221322474855917261373071914255121475113838115707655256400177177537406849204339533721343946973424154676724706677417142119959311521155927979511654625345554274598812026727515277355179499248296673150304031230239885351004071600502000713269963933783047569576303112921953765888737827896860124897088370954934762496507328440763573135959953670767295678619743318560861926800652935999766136024339147417392901350832913987830016880115794183960230269702122404286493359953322128830468251623408835158299645381207455890975994432687445646979723740500331238658822178096912156145306202826593877548824485525241418477162421169603290899025423067226650400310178885053871182900463938293606002248563094012490273636121125630116413523176888317140269725619740040191094443994844288722462189949231359075077382451425872640171755102554690505142912851623877882343493409677540370858159005419948132430236071806248606118272372410042751376358035461942968931175038859462778168974220177655343054473859225912251054699533713769728652292237519222695595601879797754865295322611286734902948974966090144965590331518274625599008344211776401846671851302571522894032839034779722791671362902963985074508314494251173406823150564041820591937580271921657132053804795875942589703967894615881280643580025965336717925453025622519424469688217448559876786160577894273853852936187134216077127902986723421006008566064657866440931144097346497884934355839366631172949733804901978862261859967885472736473266733023221555818722650883875320278049576432849226905703034500726179585614439346318346716849629475265775431921834036555273727740915837763089030834408051626731450744561629313608575022634683413605276571950781925303739539605223267363180810416930364026597966160273321755999950828947734630088803613534403575452085572764843305234608061264039898357779008418207883266743985922128620344735113184290019636366637713026830868675349281268814055495651189258188509389105131881050105002212566977727681742491623770903963430202422902451228791623293080064023601924320602246754181894274632452089912721984203896501158686185633094758590893841273980926978695481506834923128594037535578761747900393806473437578388890259766517480007680214890127773767897501946500598664173297373000367969088827524131436620859853529861655574827756115177478385863110108930450661277242002088519315412115280635880469569637962524183310030948364105557892008058093065007103754863927689840509014126565336614413976232660172289158657278832428065052461635721397710340905219219366928098319521944902083005014846814199880611359347164370360575772727608005165619221096167951277882930380039487159689780329228517534422209618258209147158805786103349337660573942859860332232677351811204337781934387275884625272706318326194941884904482857396105586862584702469669954825495829273713407973602061330003749029132260548699414659664761117050758344348984324301537590430541931291324578584317568672828248682573021658603408021796098578196443153747030047636305384555830558126754775409084000576373874640940858722113017434238868846329492709892946011873973878135822484807367507876387955238482140238584937893539348329306472071803849705281324806088646142204820537793014827506597944214119255724984691008360706022480904238647490756089721951505962152767039301294403889404382592262346098774490210339392168385004796607352595131927675304923990994859939605550517849372045875639315157371214495867948917122735938257597463572851219177857979745336046377142394662096011284558877154340300915960160679133889214854178061914544062036183827709772832109863240074636055622532134036161286299369261006025086089817932110369207881557044511551837587104394004790173203126411413549406545910886065234577290931035076539779488148871006562159958481859387967320305611949437513409647604573215706491314803546923616508706381286507914291866596038057338975478493539589458230381148899644958602879353504204691463773436083821766186744657002732116576910470425621661260680265385136213777789047145726455023330324600805189592532921483513386197869126743263014593445843170320509862443725786880836505867705769971755287364690196239109537939847030716360918969550079710183186853037591443827764541827655655129401266279246068884362771791557693738047196545915414094003587380368435810183896599650688412381258047448283571911204512429469653068250862507449395198663032801738191799905451964398913046443692580813503515413654778573245354745623703327795436588581842444403030877241386601194856105236394816996730260184465890886704859444229164449154701154604469355295566854159589303581434093440568491150398890239695263276884370174466222832799479046533270974268776353535454764875946320409494487109126722407900984659102515627690337422352055724919795950901699983734070266567841745814767678658152294887569205956498343122225675624567590987826316761620401426248273189040747549926944251741859896372021915265662674221615373476156634315420315276124240462823361436009301686830992195610978998948784424283425704147117967569920082982032918974552998208517719212646711871564528808430110681051190360666344841110452719317749261994028213049461057680288287381412193639254187818014721566094927356178190492925633790129840918623959518762576862489701240256435013757893520750421615879380284435498462987097275851759269100953892861463239158525279760838218831406972520351580572746332333503057031265967861497359335694206901088226476316977204250933727274712560370952428158998165199552323897035057575040452073701617385317729267331918668256836048423479930087408548442416048767207737580991543669730927633718964401995995013649320716997982770555085163943169504876368914817624326081714849847260289594131959531551332553568665708502409187451058122104992783126584598323236365603868625447333342774292883948753590978456198157927893589585736678158579485659991413078901514901932821544082771544526315508462319897689251718569074260399580309425571198114855424871558611863351625105937386442542568156050418411256698241218486577025919138960607101627026011731383511595669028264144175318012643718082359127006066867431674422229795909078485801423065728444149578144076698120929312192663845298094177328337891257645456542062198767342851351567862141750080484670243879314823854223022204123939430587905221229391142088905454614032022217262645731810807573355297934629647018692322639864699563254009299604454277174231855583095356283589037440928006518075588969770233023126122015742870777796087192865711292354177673616233549764889204548167764139069646349335989515092287952789829506985680642983491264613644697628234888990593802222188599650592403255394360950791772346228511645401652650317193012548839691085968390434792935479714319761112523143940378248606245083831367056486954729987250948885246732304199524183229269514783821429283297643961821675465346799583934122055881571506249815117456812383305817355153708210611193992483943383594477780922317650669126812714574807816890700955817616561372695315083296838405827298471947491394494563432768351787647948270208740895508073798210183715870005335455202020191602617175604179628114012458899353434698261682067287481424150026186454316450488421302189570954890085431312539323805403442326647501081091427124141389458561451737763228332478153923802484820631882004205638001911893580639038913861855615527583257905699580653608155584151538704006813443359887262831290079847272083881811345225409665186467366165263409348755824887896931785828613694027675357595415148849882228729213033530385623832368930718316805774772649324570780556178821121927941523578114521282998869955285278953366644577080371323411154099102202230232453868980776395250579181775691766762200701194363776689833829447358245536964886412319473083160877975523277695065292553494093238401485051164365099164828549649532536585004744265943749207941197840356052998762438770423761522489138711579264864558429784662100658250113971135597426895455904086351046744274551352405810986200018367292978513100850835709853041662570871075088205384282732774396501560133378423210310882179646845925685908854525510601270969938432882227949270721862034134301430869662837128638379495173228023242760794849262372302076816380846599944393373608019707354561191661386154582080529266756512684467690750760695550632478488075373298908495170639617980127100481026253142908893681414502845724515283298922015145566053265987138109307696213820402612225309337276548191456751256355829151947721123791630960993863154364124151018897565298729198980981667114901673072159868536893410399847618677073873908519712154949393191745859677784427101719130189314818624961562693568257800631531520187005524755567929959550535307600852145493299647716511498788535538929070489651550276395680967700031724769930714297260515909751199437073273777181004562351891207977468565587610914443048726662629270571772618409617869455322732701527433939942807900209150071304536015252391797477197473742312395012118264477263368369697395432657471747326560589738295338228178286217514385346960931409863447963258467221134484244728522595706550945706061396091760454245004274689911233164950002753065122159352450552588774832794856230572036617206431497902905534189397023848802800725710077479131096010782890272999391603388379190958630476492894560845973883594236508977456468405860810495578153266303717966420090460623090161791604696284478049137756641581635584179578116010954457836465132722236127776133726687551987862583940724377762340828425604265375212531450545134597935127224115877610829412781677663861358255304739635144132126590878784590665531554410852514597561257745867816070880691035333140244065577711507415690083046523792792218824399551831813053036395560068068593243728995344853642693501824777244633220829365027842052981992923174191963959878536852629473855279379364079265329566506949117627792919008973201426946232040924775715551940630060195781363885296092862539588099532317813042799548433867866964412624049002556821940270974038813756241194392713858393317220044212179072966460859089060050955091214565479783497496075982062431285467661492408181282027300104709433506600689534524653132444689957040351803709645493235771670721841423763096298670677694437858529422424161861632004403586936804243416106602737728490398105604147548070632552769748078071394027559620302311482053197021129249485385091160616946496803942069286331539215036815546492227131096185570313067688453265409246713342763371180421786523362343819139334271426901987742044677206890701434731840560200529925211021182703865250012277213600404263620391036526470211928694251510486175413928672235512533166804887382110976350870462725298822580331219775920467833907320994167649560886260784031258317703513811472992176499909169994896828771246176825592953418754397970562680668788093684243976608241140991765170765664286256005003010555199252540505381217418471516608679956231097326151560413495156279086591739911612825742119199299461017807310787645796573584228824444516951213416643260763259485467736995099037975498759462145818286007666019664229069048533852730024265310592770165664157235976193976943321717318834414999342403769103031893055429787054149337863628076540047613642418743113104574488875296160712724590393801306514462201081913835627668183408556024420995449837423477119496535369972967566687388265610687109105438173878872354185706014798464214310577277954705232931672413121310146858725454067499048254335337604695137456262549961928640601561955739611149613956010616949965552898541185283283442125541342053897829134645766230390058564394514095607839549282360279671024326994896189718860992676103508294755251054908159139088327466117200523917694589278041797665396036376257007363613961716201594079766191256833810638615998474840291090973310510077942989067600492382396731035564597337986003919965041075638258633474863673603348912729195143913217414966911483641283792379512988762850191377332074615789036200952548740373565981344783130920661926091975019189580067765615469987687688463241231232904305992760755930675979674365442987379813722661649839830603114265000100499153917388703755561215556193177368513908197852783590108922864122972220522443460460729485204116368117227113575459499459324399786068778177005192775111747362104970966040302977894610286219266091099107591645654528215171242327987764214880628288674866191847066563099597872584882796164862905475562122331064598760711964105657951629276387048792772799106108125808090233267159659931427269664652704193097116776776239404225911131378853235130131436986620018547448559146583542646637365603216705113499300843035699476535348124896906107339543201992938394652609863892957381769582566603300671287725548835962546369788091793411236608032518938783923071273323177135587939253772447840153003994776936244152907045819265798510516457930576828571445755192096276941643347036975763931627837182397907814664411097589027821908124118221253608578152133542934211840139761314531209788013911865449821965017235819905722925657466884545419621597926080403439884366436051528243429759655669119805378849456600447299133439610031798247493840280768278578485580878053353694640271453932759566040893168228041343197295057778235807850178652302775281616683170785356288661640960210053927010734997707222992885026239627692094333456298705358268704459844989998691208696752485794609645719504639765945579987508767201222204462950561168443408938591519163161277855166969357045999293497241067529760397886993938634811314824309737235147349746940382317034960448351031495729102843793102608437630056114244124894508727970705827727008142543165785079576514397258660495583179797810978426570306779897115803112565468073874357699850466024988467042396970329587716757590475386776122427133838656630944195689643413964461728769758839056209195354653035036746251186806874394293072107636266438325025585678558360061609172241034052178790583960318129894714249000920906930729276601642777978535576875419570807458485022610858800496105093040012910178113680173995817482280940965121111962461152409549141069220392544537656079716712694274140565430387723884631884932317240432223496990445328760414658775329200910559574871482248332063465190522591835707512975066064661393812562016443977508888160401093365026270392397922019251259011249099121167680338638748855282066661191165912137274805689840035968593810008283656109035400460898021358777414906154322674204809277138326943974725381477146040120818027398571211741625583895732720772619716300410089674981097462428583024715073105853719426557307512786325039841994876282926122450454590678972885399321443640294965327336761166399742669373264084117892489956521841746380311440660910153727571406845519803043230536580190404322219022238332697687734031033817218056698952555292569927119758409720991603107223743528155902514315282029766669169690250143407804705009832137155537034437895151288457729483406210256468952282565858423102306472119888072217720095844073989197726382201458228634577478169332981273824253998872098235360595462873686818820409798693539938356071685162176246806317004219881357816063336431902090914382010494554163289165040165677346805850701126795000936063864414669835213861242345492102371395147759206624718945808983291818095720818888860931976929067199663872112527789155684046019284980416554978642027754680362704730089089492396294400109040864100929632925559278466238856795039217986785383763185462414466759315877594538056777775602010520456066298662635352900401867894542792126071966383547173116316599735326298188292125060050979021283227800366695176418887884824279257610462309876473080550777001628717723792924450237102374632496648522545220982873142425849375425750642997866904761530532861838171906283158585829890530111859061324325278222367535686165087453819485679783207932531584363811182304665784680485586757694095583211898778616572438031919607182278240541844311657663013176825077971989785715086383173700014368830861637165938728224387941240812509024817155399626372251937134770901874393250514961380810212538246305573055614855545848677254821066909512185370502311631793966936519071799381574280836968272790165393271103902160844905784947050679201046646029577104187064016631701954141813586613585822585224120028008027141316224717696590600705663711304858924505944616464784739533514481419327329408222102300054484108182929333356569213593197999710647706903224444579638863632433650266471239144676587772750460979089385524357297162574060801742433452776700790330042582357676527905206229559033701154757672895060169579366565762139366493502896765709536944897073113578633931128936709380259560503231024146105462842627232948944040240920105215935714000069604077793811679594391422365210242724576479045441017565139188725879900644249538434307886569403075571712814746304914548987515871889872313469909298317572729229150684775051826087614437122553603583460824041143770950195662745532448799971791735470782895883278186793713955127360666667012048807185017418173985612380521247716590606822319076684315517693234375818542887669509969797094537460391596735281802373988763568427739814488722105766362503354207660437001794153310303540423886862777762878630865473661088249532539600302167391563057798444876370688340680256446322546884356759950002375555061343636192173540541196929772831837992115779542552897174670791571307072732947273785484235772133208773141272388039274566623192067258105580261589928131162855744312430356401777178065443605929798863646869441326662666432553076621845147354378563618107261607463195119135213261365010963635665969156863009245659163995956805864959533033276184530088740929413015496186020455025878535460436496893481266039861666466996020240670295925401970313512192487962023561597012708998209459955191652274735797961339006163574483079287805681676343373760688791095554463920981242739426385123636793758514955113388316827365056020297952963671143860619581508344672711281764040539838171557213800204559582883304264453929470275808343904534787466305646269096431870318337320317578727504392750375560830173186105900870785783283731739983183273897603391920674292677513693499830531389110358115687340044034923171121960543849262817384581697469259066346732772814134944163047382359234487644220414640464774908388009083970669690533291144915017422428558005226260495891561945799504970675298081512030444995521107024270509918736189196128467852003973745165859767103245604865154076919203780715785551621059146350234365674230370498443348855303167463183269859278172321483635970836131103632860570660688955565381950888005481925794441212558268161215895520937823399012423880851537571287898251914777686735470876764147365183355437493335617517955338481072671264129715663270936858634523689512640839874379804302530187875052739854747946981305302477431947566968036686344027484587632221870039082275292134540299726075678288339585832931652819639622131956804885234755337194951738848345326112242232992187006286695443496657467822877812232887154993022733074474791872231862351328972432983777828808016045059045439822672939589824436531435478405229713109430032451787028934494529519181084363145355324749547666294776538555110000993988871120008294906147789838761229136834135736387257558578879588101415636853859911198391815024986485586230514338575876626150458620406997476369183254938183102405434969126956644077413062535300624115218410965176491570112255326065004363180984569644305171119865891263856656662134942598960780377031341726221246534923585701448220402506069126603986490278671429224851715074160409034336055192545007312200955973804184798903651702490746158801642160695560691918860132718637383360218989367230851539629027601367710033320732114583642025591056189232355737651139431358993108698080595998960788086994696901510080079862736972164552947165793138393848810953565932975780229831899264849293818928928905998787906578265619229777254599763474106840051985788641063865270887038295832080103977916388901266638428868837247083706056975834476203589031460399846814377256803972280920089872961135326254590831579365711289118494217227994747140441723906418966859560215010278419751473251180974774082803641003232590780680803530122592333196837914006625617285625871010174944202118688275667065992152212088198136434334369431546991564211369907590066142036326290426156696646845756862715965135191262758163183022689021802786261514031729971575098037086297375505841649218970612147038787295974154162768789816001781342723379685065542289939187154510189424873239572167911997927492717741947410843246834851907005296064152898644847882802215660433850485575402330153234530910674329226193519050535641490839124373742783684284868857152417428696906132814872411140165549515878971089721132572255345377039054870627847104734139823302253625128682656801695214242744494822990612668229618486273769703285807372326672983838923026739957003717287937930015981902584573369848915912566816300248519225342229836437848943609570225872972787588125821726949494094216047428483047411703491825876254462140118581965376605413782778609044666805118846335760276395610507334015841298245536624431600879239621662983617841258711715621181463183667591787364890356534609013984643807633155939364610233797584650800184871887228526433626596406104805767136659764238291460148937104180177717054108092967157612377910064757897404555557317678285237793540867417261798868056882043094413206869806147663101214228671067911976232476704375519951017017500164333699562929118464190160326413574142607344109900308115848386771588449437264644544869748451332561740474068539627529159777396842856535376468573465449936952336216107152277748616786417208569322402591050505078731872254290124351825839125115440672153075819067179272878806636435421336443537576210701244367730917947395095929111912102645410314786331250373322071882720732626596412376746006587867495180259079823097355800460474607162901188820209335668828483420350907483816951464769996717698333922374752896681593088664168449850446166848851509785941231578758023235540370118484349582535364146971957011502482236857867332865885822567210989775061949259253966066139715770451162368371438576061568062865680706339311982022996907692198683064250750817698954063785277836345289526143799700109203465394087887272999820142367456196759010974033846627346396402527637060577880999243441633020894790108805312225441350906577155203252430344154242480583746729655230854359041726602460609402720784309235270451659222730561064907054079095043627012514036681145918460813815158601289472500634310938741775117522881270490520458579655258389661134429535785235035077890344070163787045762436329827565848439726775400583778303569184578435429321338039154310487238256693460304936474795791137563024485886611587351200531350782772020593937031445285032068699914017703425982552013495823585886230262465942054193935845979836065356235143433499155047636173769496589430309451399422904906626547908059138658684657399044933902475511645680386911176923256740650818629068173672860371292801339396985802996172284342764153099880936634452414422948771608465890077144795138956010759248922374184662935077855917383950533049062131792045324073117184393180411046727786463167846943696034404110004703677690775460770249401418560952019553234461631236431269516090707472489607530566383477429378777232254628966358441706086572758413219826376235742394209736228643537536580344222542531751227311873716682905921348857541564165344816854080356469071498624232606664467101107144098086207573629972405402779890624855778277259041738728604652919558275014761604433915435557705688090198141953287196589381530955565725268197867469538638266908702046037451460804557056771603891804077969577128731140584641647933722905068184754724932082303882200006454798896830100490713829113166498079609472668239616434552445570832316037283705009764572712508955253548090021694643163179499041215011858737757637169019547538681639045669650403979434370802330395591847512889588378727184447932678788943553604836830192657892206373634688837307634045173679019481310445225897577812345992257522096243593228898454065760523181628476044781742294269922586963192900288078614803636897555854314189651596837788138297324893728601671676228733109480510815955736366265104555493242984442808117117207192686212320685391445312127226118938177623926761826400444378297311855054487019181551871064207941758915662065527484500922632835560378723808935538098481426174928585275063957712599262460977665325903117405565867008033626106946337355127093634538420101315926538447612524512561371668007153253848746035877770059740219674948504598239477386577156945855255864250040134814883966420406003155650997245224460671208111113707131670488540793416924531111581828750547160767819568954797167838818587069614704774858959677600368686176941806592586723552372690340042131749022069966149255868442847736919412802334859066724974527597053717633459085216105835492291739736397969655422951696216188005408037917873610878861923781934517208355424675617608689096587714069326081406249293853852206980038094287795174397203746673474440136881154566456187451785695934462563354738218134749573585468981102556814894990174655676097050879090464849319795901372382484555201531141340602404257748215292194038348339798735270966853504668120951256801964812434253088374016350849312659916752875494137942189825291645260660557112247130707138040688857910878029938865625130991332173891284170524815659606138142425067952828114908160088306682980284366345956141106643646601642261927125491669675212222579159680470948040691545584142933404776680277182684284490533383196504799089533933669832102541012456567384827876455239840174697867870085348626556865937779362115877465488913830328015737842336568441932172751373633046953042934982204264756833679727432513549651489109352086510961262919711232057812241407208692573443851285065153268886286964308612795836952029460715207346786143581074361810057007158664741542708541459191535285155370535112365893551826175792550372528445324033482779422317084658736974303377450482459872724014855989512482181631001002973557071154751623709939211861404519007149268494633250067453522249817023117483128508584285246418040910533054917091337607807574271068258767815283421528166637829062237566882106364686429329196006036909343414760749108033564147083578560604539382556012004303456427539005531745153809317601246063545157844021082357886368985645404870416262122684618966366758627242711685997067944075365158608989930866530439423879413058119222196016359678430118210632185612075184721275663604990122391189633763513473160680176478594361411044396419160025171943950286328940715232710123986084888636733351948144958073008400112215300596674208230643991755029938929344632026709901468489775436412149996590658851074669682605594913437046555500397429151709947961150883653275998380121694064370353384343645575393268701098555164161631205086717993061596269090832270802379925680148252517694527077724823874857953342617723483686869779793148802552517427611546400739985712248338923016505462410028481711626387216361757053242335853975567336551376037422917146823528374458566355604121688351913911572279513710067410075917682089405902976574043159226792721829460512853468998520128463810879930610202357146861594527007106062110893768722112232949337288247751612523972122537934845999197133444818105609589271010170034871069278427399345521117552729435422192965335071028938825079770548845695112656539071848189997198162044302941824115850995755767897039201515633118559353125682845678830046928250200104312683225246187075183262902392804646237251647527475595069842608726182120207249914214397561328450420742896970366406045319687321957545515592895310263394327410580986739021057880966111808189040807285675938903761082631843584526598167771919001339641672260442091786442271258515578990434627753943619376734981313004311437280069283640535826768323943798807439778295528612563466829669363830058660756249238643644118173576659450910314716868595483382655374834399973735431246185507543127526503096375612711570018076283515202346927328260873138369058010881159904070892563919484189272254811114600363423152222480975959882347898262463616076588654611988730296867240674519779542407175057377790752369907702198207661409418721855046320760803411814864855637190345425827539340753033397914980570800374096677021873828660517659321049193942977015952233101698530307236195906205912214864165639610630974076141118471571146230993897246413011710475593570102333118549387014273118755386564361605339232281794358170384108391469843523607194108646710975598937605093312805171741029704949607567107369845991405258176940978975506213363537179911134517808785120433259444062892426837060284871207003282103898316638758796642646364521714181360272426908414085955686321856115985677016604924820973370133814528232849510677807796778751505842768936312552783222730777263295230881286162513501074698384390246776898824755763502642088473995937387109563203519762742805413937788272522976833273076808072624162413414984559979486913748555005976843323271249350153930645035738968439959164944535905295559885554977875667280868682000073237522200710358004975743850342587853264828828231087863827775889339541280536792065418519813813239771661482008536415174005443838777935754451457694998830516767966596441288552894166963862077997740419638957944482039342905748457940898306029005736179602961959357050111970192494436709968415005112824786954177780652325126606572015785681924788113004420390356684015400561881220846004153179742129969223196596205066959672140975527542650010963461154398222284944172203691731641530985245302624591454031144761800441225415084665858703524932044935858336273866183814465625783135514991392962723376476508625845392172960447097826813899840994883919022619200592815399333393344433900697556536270402919261412150161731289238665689896306334126489111342796874003256266055035188767434147020955980404167642986851062742380579060327760652142033316197176249345678842720061736576979296267899323229025582028261090837442243921506554756035014352398463493894259300502018486455048220532739406854270895052269176944376915527227269083148381738496155721188613838982222432008171344960518350784550234634887075921411815363592553163402742859092786080411219454601477860513800681211984851455665684337593377626705043281457394169193964411447715668203395190022395845933287206579266812874266289805867920485297146877665714004104728223923957848126426542384968752830264311067609496350357705776678563996263361769950802169352281984038586968155707314026480354898688423982374206229836344449279162105434247776148310602069179795430956499685158327899237785171300743094424150970411918731985349998645575798754831748088442417793522482840275864197028453370690554748975687572819387088791700260031558123640250324458479494583164635104726866077510093629594864020294723199820166668516442889255243827253290966705860653818291853064938329434460143477633719562590952777569439024094047438980730069220004951086492291603966360520892441115195290753189234706998322190192338930131363155418450549207278597650379015693879530905039105384400978770493741803751517341370437651346747408495405536099577509253119151332472179568111205539419124358645918136923206415873214976802099115940680431049776840290558679264626881708765434356417855685935289708454174162292737602621612752038219486056518422084140017625650872617698113103022400459952383321483805088124693085898972943433782472762930751021054790353246555410292062442602035615994053302850782344506404537855263221180239749552267799244906265425737128090679008578736979530830741123951423770492096878457084014637780361568266583381890594979324919658423161882263913132647155924781567256970706943694429784492314149875447619128310355419545305717147679822093265534353190038330090298935461885217395702970211281014732193441376577059265047375482010792258760683827140852498995383937390664046295319692555347921781392695236212139911767124977001621243669334132315378374605028711446387815964979913458327010566674136348183310617074785298349185228534769549125386511170882026954112623110225317543574140261841714847931406985902111984291588608520702818136461117305072167377990460290760857176298561795433411895526794402038336681653645583008371877334394095025269851109064998842171871051855893564563546348108645495355509385395749312875564302022374039954276091333597866033854727968402515567167089809438252455663921753482818437620767911589984734590130025497370012343353418674305446998173392383890754400335998567195492842832760331088262631726503156632594447906395881916059276436515838473893485098128528481480851405328732059697036910779109204453790286243720407485378663936404478242396552139428272300104886690077858981989070704663669488403570407092717645114894989059068978534773682647495814218308156984003788792640803039735522567855029610291845660908543128701399933685668008741945729641219782535585693186999594158331730210804420118760868119909355099232458139997817466788941528904913551943271712345652709192599421348601134890072612976585484683909444285678963456616512917276200154305747422890889210391287488362230321697158091826950240939931938866927911173213141978432540869069509464952738674334625082817126910028541219588687279488360148916934384926101074991456521985883585244052864552208953417249968263485127278434681930902379094596825100313209533057745356276730310506109556271771931820484800109164134682575618451947796387099908992201411395932195312894594146940188702943122646769735669239032485151426379620974984593399786484302846425352536979173549135732273856401025538907052303653384657071206736144234541027934044329887518701397073841101849214178665944240851093417395087603602151058148078022083434831126598670389097922329557281985477470603381276431784757911547423882417565897378090792178815438196748116916256178135516758947880696518701691078257878472950890488864939625549830655169893117662811929474049345415979301691127489257548547895323295997830186471091992220351094594099477028601849994874418703113887652828867817813087625887362508616496941824937433193869563026353448961045570316217796456776104669333705947687683895111001828862202491865076633535828534596900257282757132865190913479373263196316879659832036861076662617016996683414522950096192245574280459171182735312493526696865242539201659937778641809314864769561637380178448945840210254620894306243824792867913655647836700525429251683924115547642218767317206246228701125800864778635899100672274094617535308958374534286794325738400001767001927821163753940858747628565157679231650899341914657875105714723976537336395970801828344986705569294577199908963849722393424300188622506437660767971126829818617660127741477777283615001308035308178439273308970817295569051407063485467610068968242043480431196799795320104924359868933749262849340837710269180439166208985107906700046025771380383090549070349984929859241833650957274139329996658990035589100771146926213409874606319702756604899310409295256127165406382212548538637953174611449490886233070321167777428106334600403588396337958826997697583289118271327185792055471367033808094165217166851924593605999418422152973549868295502661701153749238870542666638180156415340652487292985830642998095373880943905885538951546289614089138323265827596967437822360996112984179558091862815302614911301544298451296339116229167232016890364028179257478297351058321932232560937998099758391098092953256916128616346262310687722585861005421413810386743715994904594736652237288001374106225196733831867794638922700849048971884793685620731760067679529386386400412383846587443673738140877902449982507407391526065153365544803254501067075171362928909692848440370950536578104514244380894106577158754030280009182656346492540115778120452460264376714171095375498581087523650735102859816476079454080056006399256249770119567407378016654926157684176980248008877702875381030880626161182529759608183632766411711870686431892583842161832934041499842960855061074120076878549684241751943949099032465880385704766420097076877586898771495958742962936301829632910067511797871458548452360584347760931785027561386851871930581938800546338473845760015339654601529748629397346431335072236185668938433542874084781627031021650774728119220576755667491479717904896603348926853207922151468284881074299853780866465758529528273092976009229313913721831877397018507534845897531678217910631758688362213872341647429548341757473524641883630686857653908618862748664526783310518762438964821151105027438508086304619930879725323283579847720953223925688273929204434437839098792321913611850531521682322393569182739116739646364804103736495521913988021363975242437932226962838749995767330189681060042762804755916462540674146774590727403558250029799437274173563629388829664953761280007264792195740986172951841879990329694333802102717656205251916029812670920689443144837135367643875263539965877808226341777043118571866008236389585328697348335492494253382698111626671360347210637258347430246523962954305987264488167429973676421335874526176262355813363339304965898898372882058724095490016155773076400134539826202689352600801516766906795547534873228758567458491558572891483964981196757790168810988678046417948577356715517092079709169853116069816924892883846612120211058091501367710285764724535577020760875708276921492138776144202126741974492855833734849015160483685629143478808212132883113457751984914999767542439506617413364942616047362148504331648142995386603259346341113868481059855379307557179472753053856356520275897864344174540065489496175246424183321305506252467613143204870522667631472300515040075254880754175146788983546272256628965407969435910968710760429838659304044334507674630850590484608662525596102690605621623582401868843470150306986230929079343042899673246668524104162187842796759740124986205291694227258857020998269809808068463439644450153574393474637530793008253505638601121155603090470034051799790877559005140496432458328679443755844340750459475711426824744656347514061150615054035274913286713796450144783359500881298357244385573635969215997573545775469034815370217310730397381358261505825107622870465416558362639341102789066792451525963402278738574214465939599703171085706875233440655082895098155745199805305170756965132387503360825901904780106712213733108509891609996403091469766769235315395452718960004577048223858647625245461490412099400380716967041616197273585503916358942764962691661389540456823665038958554588230992087933870134649265744344493902766588934790590819588662906582366683542270200519216033938051153787070642282300162650973287237287766359946367545015820697232000677219996884843170103012886024700344512389888306437251864336595492092848059234098340864206242457857744356568291253925946611241498031644997531314671097941160415558078926823322710653429947996544680303276743427908325905636692838215557241402562507022187800491846402852146318093761860327334195474308939688168260771489636192618989464871791939985674536900450549197497594952032102705004854934921068798106989019843096146033233735275711595801667336158114258794545070534155070343415221604631964280942409047377846433447797649560278318157861200147769786759352189256114698879285474149735163317790662144547925413916711325570488870300486387901217376069340366847789961126339480200305163907489148779058549705605852533057931140593053892892607212739076337627559680957561857976189046266647286718281387547136204328417624920100133723606339544878614404362929991979392750344091667997542455347773884872693839085068445241645288959485555911895218214469089287410176463772624226707290527120625517343246789066223238679667571703014082338025334433107073871765838683331095471711175640332270465013138195834993465092823066351769381722521432010495103359591869857200411504843550226043591041936552209783774916401852624613709953416491892932089045680066132591331321447218923657165733344321464521604170409710533373096661202844691878603964185786531720704184289420471279239594240684437751195806264022931514424576251815124539532593819484777853752592326274443600936335222555450498961713862632173534667922571996559488992820583078892712346606825099529522230140593588732855310283477146736924827054252989479881652837645704584159143935326733109380933857414883036483342289021012391275606283404557320770938012741521643874967637873139406027822804564968279471796614037806676558764826461696261638800935834521050875425439815031783054746378401369770087536538521472986591218642847041844385200020657631251422599572928465311812333187179540149977280681476255443959209615940965611264449142912656194623865113033445505176555936396898848613417440237889630592915161247900926724710467660830933553433016347479854106347187999534935265195865802958538936418701226680576773616897054949066572231600399755366932299317833745325573773728444512804838691093376689487101523269374382422427382041628263820131704962623355861209183633577190027465695144384081237434538967979010224757003333669242353572368819337458744088140045800783575640089658606871541321948174954858998993233500358836444496062715023740407947342752180349560550694737287595524362376867653072296702754253425835989978947988503176330972656600202028180136066983381400683210718195899105878267322118596922185191418309801332752020067651667291395888186602759563723322890276364342298439152521055936275074381760071842503068916367262239416654840254417281550651246918994878622830657868906661394522010725529455449417582267100634177245898001912898879585964014479172895798076905328539709835629137635675713550153318049312639660388068200582340378296706585690104287456716463743197283623966973451563509212633337102101620456127133099451262693267829611059069178544111739144692479441994456076280919205770957849437694637103611234596101442714334816988975544126439717162080255613974486955828848090773145540185176723037234860448915082538621565538432343181917472466922224159421124197322642886059771334740967945871219129363226195464852093842183258911257157093744401850127197103428386817591388078883830552604794893051405464401448854186026322653181159130401658503760155365162422026989849178630668971526458810385590734737179664141291142004029609866199902970279594643029026378114641848211167890372674195316286775662037881903278903363345233404124670933733827097442175695033450968807926778836436677049108973317952466178229100130659142601826740391982999420559848863674462378019106480404195789337659199594729333733102054675261739951152392900440164915913005498118297813720326334467304073142200328812904081430017038173748505260130305840321726865976250460339917318853941046068454174749487258932960789029619581476318319041312009555271919963815030320966829098768791241237007639019486782271776652265120058106651217310601410866019265196923311768137504444421350604538980319889380790244224589628944880479546081214339472811501460217801631562661724129317689909300834828554645270407241772292645114765052306251527326907481051701623692241467266319137277309498998323029369344762987396974285019185148103555875053832607874701801906678797302534535515485069563383274095556297020355196631713782120278563270277334412471904665239825518295906280925002636997945935200836482797482554830231055611529317669560335835961601465438873008589617741064894319421059595369298727804280468807809692629949783647794762267306075087793118223229153496539121549118774486707583008031931241239090790639584617542840487873742774246815084470176739024894244504227681213006007634105460504075854499348140992542650821748877918741428169484822979515329419662559567333136099551530292377179746433608245896112898030438650911014221711341618813723058588532995916744007206807053078116075588860890010770073729324691385521786194312277416203237929523669832287938727099362500251342064504911095080867978605968366552020886901814892647589394723436055391186611966944118979885937804794644124394156835917300130750474122360720504045593589716390208373714496598241028825628554328603648324847834284686147514547566035800700018809637184077685201451945178828787845440165209767139965411528343325487639740495401167236622268211508779375886935617047437252686496735334421024495287905255234729174495798933339336555223274478627847965721082545921324518884223612964747928242647620624957103789571443563098149044237506781206559620545217605697519137805736464556506072508000084951613785268250824666397307681469226169079669931423557309193617078868813882824570006721765722886635380824919322696161236242296474446775949085620409891991258814074583637600382885566249075843867795009500651429296661577246258541084730925912246666492049994126969157953574311085274646760521924604825004170928161647691019896303038381552143902811552712903410741033994055655662643702612360559979070948013453459947245061382952177785601637667063904498371708195605277561603552390477837659808114881319394751001905730853154024540692762144617091655207371600349853702616397817368649902363180128301791637822596521293066140779379259959255449391000368408959069365978949480708568331125715232244269103295164311379873590267445771209368256625647637706903086356078991655912194360956441834782699187567532852678385091007522161241994995537074695380118515164553153547063717181010609123828121668895152240009062258171192926684041861448582239526995531835521652634735191837108330536617080582004073646751617699511850220933882752700901105098110368008278700955546094371653539005957964385316481018719783678161149761758146794271782835313208375289154782188895518135238898885016109656051364630844484326435829955074049568665223417021519981668589150714607304479904992482687364457159915394963547655814314331381532845123204677268667615723279856062466085077037764376109392272468006189343098153851727687641134481516401377361946445560213739587818334916028018572068401820339856403370537841702168555413124876651926774697001326992639870110568256575340229349417046896974029246002364288726403725186008487641556163191715714065575551299910004084791883316604713163755527965101709022542388338636946029848491755227840940650013301016992565795218950850398596204106364060134039072925048739974017693000941566207118251989586898343171192427947449388273018872853759926102871661324608632080324531729531302567351523334788262998383918524623523308418268053933651418454688534840001225370096247495436712431239919556525946008546258133646500989576443958026765080181923342819810242418485241908916022807349454405576173681799498570387507698409057736313864572057239476251433341623506055213624527201214994175582415540962138925892922897348098261715053725209452338274854661483226354574267278133481714687208115717873835170830023615301724131826550677846823535588624800592712004034301647277575791958009487009790962495058915830507138689774701017593535606234009343930489211547605691064553651003417342391636950048064106902093342460743804065554721094036374715663020071532627684721930308856661751926447612673993076097974630617303753018327580848338163670860343264157459374073352588406813022513598523078072315982178067407304073507607923148158036213640998581041251138449975499809679558782103693217891798723833995921498151799998236244362245194571745055652046063753815724099060440289963670036428825668995586467505218932417350323597805124158192337569733197097113529795851207015020969115070777822735465725396707675295571554290143510167867460273875408419112330601104295348676646443951934627709262243587658613610779984318320182516927290123392950072469384310367587302597717822786182559719743350126651757504950593648418485478944934301154303534624077042614643316257017536865165239097850922422148813994857894355038340854022572523602970763566630704949198036548327726065012676652658795479570834894682088029393623382517762895187924378479112415714026448264145372907364894447129704688576460225350629547198721529272119399966444383516789873993081509908824728654902455477001627485396852332208570365487041678370584764414733931406272426814005687271680852570596067394142865171396137482054959156600339849927156161211093192900974162881910679391832439921984289472920631112680055656570254671166448602355225785693503202682058398948054479442795228421219590706344833943196633666079017642151324394359262019691578729498177955416816724445696908607669447911853609654465557895514189037268634171062313172056093419464298539479598648729325465876615201028371420537999679190541655620024669887838276387777857956230756274604790804573598254479226538169489945436756038734919477507624551243432119702355351435723010177052862752139918452850599907823012794821483978973122288507765802424819285831182044308942135522466931868265962556285267395471137811324001679610682348625211427918357486359258201045314613827164180450358322132006585757312777732282675801648817994445178824230525106248641622329896321122506165359240620828561758246264106941146216711471919565122395261077733476695645269978854252777751671531691105223583472012223767273365422261057193099849009416069579901705339836280396053043449491942069553079146924614129392775914211909447006117779751450673542289631579000310888929084842514109885637427159147101766025180245316169235678484623606011887948243940320557245609105738047720028129036952630781140606332689329626308156527641662508614204090724588136916879078242923919030431774949860669638292674752890120798271798516728097727220850495522411916717549814696869774667290741271038400308654575365262952521326896675738589944125217782653106387758189161613563779982068283863842395854223727076449870293058904252019668064874649064641707539347753147400358354087009197648397249959699905064059321237464251186530037708406527553326451744760337447751208673332991765641615033039538689961993391227300518511452111378740446919590483807024365619663097902461412753114682874019502745028162701731965039754994131224777689191426415725385821140215579170744158892269946185253417240082651388187505968338562325663129419184330767619578251819629924439163122849236565686873645157576033442236882929504220093192731043385721980050900229426756988641632508949257470320745930416066066762534012028004077332675166022558836464825956946941963922398423253554657571917935154735022809189558022314354254439210316879738831406745161185165602169220019521985248761134140797251267276612392051399065542251014189877342691519464433451973988300645194976220570020544584350682807035146880953469059782756143732580411988977116499308441350400641867737254085311298766236317274660819389346081801765080184021361645823873571761728910115921513805737484966188349877598293216173065124581169596510888752325387910452678419188529970674222808516550139460909106240245644588803955720550484795493012316430981364173249323300143533858379161599863200352099194911679478855277925862919089641249349089409708744192043833614277998067721667335351009268413857552479977944871659534401205651494127948654871025117650609148377592660914629902157541014721205264971652645275423103349158887134282898990163597031331660140307821365408232637092183517487708638998835615364305790268141520279090148712906644835955800807328920737280521326658104017953182615026628298626550315773817245085614069014845443221788867962811525895065916942840433785621960524139468986951896706536306730080683765084952821886432400818776889487885632234970531553641807284024975498805239019174758277943091357501880277175672526979653797947710085984907215744207414510621679877717002404186505002967386401016019464893056745384141624500869163464540795277375322028987632696116682028197230080213144911649329316394023638858078940006536064973539310023682241410573895893803950353009660904389306904185273157835043152262589130783276161267228377856384059845422446043484973294129810389295259641933690228140847305560226396649541878874138121907467840376281382274526406225752497176958796002369592980708745896129752697709098546633043987168045217815017297111405379831569000090653100134310201932520267094980168810886364227577541655530646700477535113176529597207642703570028086570484596965763400349718474136502818480910004619906392628355190029623676593471035487924498590333252745698162387256570314866282307878017989405923378334410501392474944411605181170192745288319632927023830695267270767825778166807065725646042739304494171861790780045573153273257594993568783423986256924592445512562344099717158547540061009486270453370583653415185017719374474043877819083776416675824754572567559090100959251025387049909624315095946403002703191070332530951139922884161657613413735919563276758433647428124041453628837901836367079199451624582484572488143022924363540635885328468544521621917709583630438279180567661383452408732357826670129265392969330474651422490408466049034079488962213495329445109941830371171609604212854841604260800295280975500472408894799294443637074005456101367991734939416186718677078987038768886136225927550357527149346873447464864895662857352345491276152664032849880190755125544260281458614229707022051455274152738249738581881798983617560895758960912938316153553524845874412881906175029287577208628085804067583016939199885246037094427208732473362792063680168306527058774719947166014185552102953706680683814153230861142200253166516764870589742101172835451886698253902399210943419979179909473908055658293457175502674204050336481886116130643860996155154331110459119684801878361729686333623005349027060644016836268435899176506255166276837062332031619341301055272192109390253326789090144069704615480765907062246331388038498791049278695450940698125132912464508356176395813266410690558677919554237566604934982368846690296565031097233592646395986694923035909400817727592363596604048621577305506248645260442380879489284773330728787580908800296719314696366363888156702142767027014474158162399804509842440643810686557964814562054199674776672022021238428463322674562567553666959338757674928605657651461929556971006890418438537611353318927970055574124904794433630747216892222598835919030212474403345271165817614173012742627290305029987922881907682765186763149377154073579585969789047104578742893886220215420408629336101543755262493314602158039257038178648021272256685883864550137352170693758824512684795243522428793931787322288931597606176362443022316587211977774807160806477628174109442440737173715568209741594084806408390121581679247995480817347124556361943159909154683811222273106462252586955908295529983061247137854048617074831483088087126225049194797626608565890459334734982374525178120409883965753828620625919970109170003881073607393469595991698541458901195648789089746720987984834171684284357809301216013948573671461393434546647056697770420616993463056287640483354961067347290242670565970208474888949997765531454792218118458972149612844940065367852676289291854560337685894435096666302583257256908818268823010306695774712199359885060490375517091951164318203542728354404865968647757962114690990555893246829159937744764723826083220533647385206989493856122011532724226288277932907936924252423018979904848876136427051574477349287584253642610034922720406569070871255736531795251120854455736244237662855183679914641601368132635682787942279902166235656173782000394398537866011455320940981455589418953688369381411343404067140835065410368298895870332183321509756237706398505295865496453822759801757792557916250727649973211289741712826105544217634714423025878961662425992249763924829289057545000486974110394711012609151723168082744272078463242053287285745933556878883479092965141607822499733594612047063807434593903534147892043327926315059776871663333463720878550844830364838818975841332011286504698973528747126605531133650182016765913234529120274577463485663645887750981053904722056856069107759177395777759238688028505120220415924491550029684765634036636052275149686262138634986145177624438021129761922490848736907441109752318929724808689028887323003491815786516387730328385584761560033788164254064554760235367942888415769685723100706996587093817015705686658573875467235670355964315424768067154593599814097699576632652716704595260747310115111562931342128764043028499574937111017316001835174037890740005807222778743785345528822495685752785299588476370888125225030448226327477921533028615488357328056773319736737480677681072171717271617681030427029896823227980811180459507296826288026625236892191275928327953856288840067107986816758469699845645351817712811180525519187344196490136018949059523131413164306792135433282992882470674708683023771855922119647267600878315021810987265526480620109443143910914801544146986698206659435472809434918084015008994229693069612201729125416382880876472618461444441515731435787367398816632268698854090415075420083779567581857778815453971880435917072930153062788424910601908600869652800869429290962126354377652422326309103930218776118859816451134267621503571819142920345235905204010072967596026152402435470650355743651292583080647329028981019071561396698329508485725401547846209427365881728892183778808183952959385251276981294335273880028649422753565592082398895933020485604273760782797009960241368846349596732423019632731189432356762835440714239195599187776349049474613482319739095633634677165397020333171630536391423067230618761813463655186608532185930629223865764141806992660997267183687955426895563376333727426150010122475008233815181956769041199395062343737771299371507628205974826418598740271056112717146599398987611843925697644694355646265260428950393083746201416143070675828233552565654878989150215474336585196540103331207853953311014596448620266440714538264580782938736924004645812072294377815033244759844745075908379248718990827304859643937315428865039311021741368627582517986619361899347306593527595433550674969731908108766875476990787441009121199331937275230241351595824327848921950254088168782451805369642206978884635142921718001763068140438815052771352660019168544470163081110277188301037856044517840958294016882730978244614238391885542915511538108651186827549589151621510919189793190394714779771541527377278221834790349818700922215188056889191842803858815449399888604463274246720873562257249492452265771969025715778442126563919352972979783432566814837006505991216739049067789026118002821787288971093732267502945263469379684559251887843602962586332306873816523720310131975110856897438807732963063863503596992062817683352356218434960671153245738252355441478286889265142873466708354421291559678529524508817836503221112856422225988070247696981155273963722380869543244862954141711796289281074208541011605691436736150663183510674206223631643596701575528108275072058847158621904250791052084277059218748477736423408594157738567632160621610299846604530758278946167178762966113572834992133586295206733772695508297071886886876378323421877077307729207336732933551867616573714180805498847653655437573507223275875873803902862564014680036973695865640291532507331156411984293303463393678958858562944132262648232780942076877668580472466594329702511956446559968807352922763975264541722407459818359881974600713589141724187749920895384890252777715760958890817853149881908238521889147076571876334956699894442146996296161710451139998697718126514254748374275525624606744988168501397842074545769924594808000534807843272766217307340109767070431649636759703849585074674601121292818591437430101631493804681077993324083791873699204483617269853520806516554191746020511294481404383198498374237386395621683802357034648147964448033807420129392292343641568333138835509033255799191079285067759404059140540789223805378402312443150520462783884599038681673671644699055576730848493874751849128638517383751749848799791103159840898258535143902883202208648316968504194187952068908108969708607048072955601073510585401888542821231116016287063992907652349770921118725730540535488791344604443415390463926948959184330385039223357347064186099178359792729854869832609011550284063512608791094304965915120125214847916410374498732629425080090990724263287428914434723292381604519107734859485376122860911708942137292414100119818604332468526741399420360388810815680688208962094096245931515364874439104151532975579457185460704687939612592518569162586074866713886255052760194500653089120640981170164805400994531483304923057928697385148117047340605441849781225301322814833724022182662030793304913947485689564143161310286630223878986739459945282272407258068524054225032840408746835562591837550617296233924580899286790539664880496709707152052198749234106045138936102700869195401984023521349054210468986002525482466111865421230709733964102144291314310542619292966500561423973774781455631281795571786892641724186507450014104391220660228008839627442803475771742996782887341403045155356849431744740538327217410223933082688215569317185647227748129459818890039984435223979059329543434020986865454364095717502666654861884836073352643116512900369718241332724170670949581596897914308920821639832360038708202096571876474516460111817099664117278482265402945612657872328273343610151764551978893048443520715959966017724723330194853041630759989229433294737431889043424024202449167571227866134506776194733164907022852628401700849330651444848957420213043126498753392545386702695213864872774586464374042516952431153309955415684342397447434927683256740805400756083979894234963408819737778426578612114461798352381582968856607206527248525066947014205305069017636321909986728583501741755086754742067256671921146651295965401839220113376435066359684716397181089906536119807089086413677129460253942062887614998343517660129547193149328147831951684451363335887045600039704050041710977120951033870620005619184093859739285490681363082894313810650789525328410619624724969383602820022589197364678409026638746751536151704770956963573846726223545924786308843849309573024589422559315743443361576479285377082513730785799098782583709143407605916755825202226778150174474326515237969728073939233524939182619893801480798509498840586777159008341568779154091183528931704310338594766775169662163914624277633579155541123685106069802857496905771727035905132368226387195104712565775774206902525553938294636995878604855124425028202959955952540371225902916112991330054421086368525275608114524919761193548827492411565402868904753824632540321696575076040885246528106587943424042125855458608289228848873056206810019866568569519747474429235991525974423969831075181657995274536030915589085969796395375915142153975364395772965808473697062032676826160920780101555258419722510536980015626397725072928058880825002135419803788430222942612120076145001128103802938077518679939208058148967773755589919847284795819856645065181437217002550661606512128290354753719764981456474178214005698909124513402776422148021793132789583651984938078037743886124380991549403651195465071629039145061003808110950276418327773935019808733939529185024412659745175454027040543038857345910790371164418857781612512248448089219179760029454213187274816180827317893485023678361776544737200093934725839469620149378406687331171913206824537933009363394846987733926087715368776526731083169784646162347036879480256066513964319011028856565732710955566146563715971564371375657989560395862080796575285846998526667266646544860313304832144264093865663107390294862656382417748799771567371999031743606823255703094003749444790263888036465862314205095322293928703878982792440290198913990459967702962852186992642281767949788760680074236593668420555600631470516821151109925278582555708631268619064929303550791597603029494262730854459480540036758278596354338751102577796584004031408564491973838024327976996345393964925637604859389810367317351829648589471469196102205115187085519431574400227344557122654081460394273401360310173247263990781692966532228823108681509922956109152164198479291360263626481917616484599668267514686804779800946388606961082582516824041003559849277314884356850896231712238556105306386316493771572704226580443163999661103161347414685581052926469140161119071406845296638103210310298239753860450263772096356542405620294847058918321326775622878026035602554396573977108664152676796770164382419628256942438715212700933480852365674998436206117324959052732433539584888798568091421769147554578446718637057708876365813543939674489528186225470580720488347938450017127025572938854347818747788685360041963108143042756961836395889996909644405684883951624390977442310713421118350019522645786106704258353317607964388060900222703962624341843997189709283819535941364678554553277849362396113757237385505719053675240447731946526896322321568348877751002878996176852819598197419945168374038651266763649391993028334000333926668597776118574851000782779101212861411545004835636082914700153245810082544838820490631402407205955701258188148277696946420322163082839883757115538207359605014337394349021917980984757306136279554041798457360173703806224624264272493732207643803865940061995035744174310368317551155722802507366639352718093305011497397786375079663095218513278158203996268462814755049347778242736852143910238732167814600036960713010618552827537664104525789732018964548464186377610980354458182721374818251886537996398414566772797562124683017606288858306564716165986379949283745855124930688237307582132975770724634520868709548607242183809349500383851972210361356230774972828035119929987320467044410045046778803413462243050079781998665360676381643261461781120566295180910585819870279924385319816560179269388217221082509119044082438006036680570375669422397590980174935662030842391320999671970079491588183837214482397579068630920835700201242267563164200144764665313237410477423070638125595464425806414026059420222347528167380467320387171493531727481003327544806928526458466741456949037259055088393114014109238954909559375192589132471456238768449017809661633994791384525754455782512102654692559711648794731185638123182201560681971819323074182390707279493802158639082132628394396979720692858950653133046284606389163825258428827964683254788729204693990517638185314939805060140874651718503553210945116729453742029985291626323195411957780656073262978603055239414088576333679391943832095788594270508001000321594912341844435671946619890068674908572941979408734736996356691840590305351803282475753029674973975970569624900922346455905719337842462140240256557970313579736129239193942030089217021297365924154458486502144561896397638595508405957645348320819034692308220110257079418042652816310002438416903974520778246738676496703341945974498002526228577066771803033808271938363259181593978507557020842779387435916565378333357192660155034974538570959840050399207710305015352080014575877611418652451956429192238478210660009822818089850328222643681096422883129853579909696014255539918030147061217577215627465281989697215400510708056402733845004130635806974514376584268397983639295964556358122216920116604781228239802848128346141211065350569314735499526996370381560642572133262623321586796574787381504480279805105172140196641906246748385903056104710764384122887452296035303582764439806806720095701932822803120381662769551720790129028393471357227788801503199117981086722363823239477674431317327741272800151283635985524510207561248733497419064518102551061659318371744038683721514231297794295070748264300526516366009386078146732058601597330999519952469538742133677621134252152054271659245636972502419696949606936096115426782232602326796595890866402367233532704266039289953864724936541938616192030415711743965325967125622600383877006653927979702036852072435027257832806414840607946940307653138794654976422115197474789883121507131716989921968396405379860588729983455739571377337647186078953867730765085735778504384941700994279256122185315770830744477848250495163322879666755729186093567933066451002148037995368048859444144185680370845864771661300019632324566428329957007902244152252693419223504344385439987308564458551046116485649972859398228212019961630649401836508199713491050431072311781160919492364141200807376714312192272200372132314245125391135596806840634613262088652452963745743540430776542797241055440020982109183481291620364295304628948757477951819756901697095819289019758292063136568366152717986887878351910662365424191342341445140920753326324681997353117867484083826170239904710259456402545786839058836950913671452994262614864959306665696001680243275315929998454864279977062342008706901762583224766258563262497026196652411121877394697036222194702389536315503379135514098869444085605686372473958826816322070991161387456043145134016531230372431915741121206641560143992138506465616473384547061277319774859700580824271594295878452279982887566680136410652097937242998455040178647718268635472076700450561909834547607387515645507297513585478467974719573075506862859584541346942701278228414460401531180597765320281799866149239827090917664479893827249767755581974223031195173084038293187862182306270900317990237915003343986411521318263589756634035251581564142630718102715164025758926304390205541267488544444865578821632245571449530124045070911753279226704077512921494896911740048513348335683856506493003674870498105576737982911501975464569092491763318116205673908970442379390789115216277323413003639583288362350205853778484609434891490814269773200425747691446784170858196304521771710153901747438794185901975328187533724255936281660557215811862665820829978481654994564371481293661257152430471954716149924161793648449021972205399536549485449487438069583180554630653262247652826833634448243012028847640058140549449460768002119244928691890455236844055151574930179207729265193995333733242271964385271927050408460934522081218475912004601809497307972965982733613815462014182558934965559193060997862862350432957128654326693437906804488139897811576424464462599190674408057926550227913090820041744517272131557408280254233165170002930233613778958840361182647848824369339239289075215615383439227959873414774070264623150759290963439849047253678849220401630838357483148694986498342595951847257944637131393317456435445796853094580976221825325422840996378238070268818232914863287035611584848837181897880851353636900188867873875898043033583545263415586340696670927118020161740698944018329934938640820716401769450309722332505256840419689375404675957792377562757464082505492543247216068304764898018060437648486521426866244949385831131938616305530188718758279378598057259510660967394582428253038932870528385249452891135205787594271165240637099471675913963963511046546678505370698759962766779145669866225347864676815626028921256329653513554242217276892493223347956046327325407148033140703685188430481062675471674849092334248348834541429447281054299852493604771293350413596757531578653256070792188703552334032289523139384631103829455126625965498854193317555190176685872248028112466579120078446063527885150710710694478692030962056195285394242284994960142237804062203803389819842421061384730578485598136996363188470179347660118917202894297999045357214230505016916998046652440748507795907469092430240684243227731563930515940181576110529518962545490430252244594479132593841978065118598919306197428958599636073305629113561143973892046546663540351844607232326298118135165287410599542783410135320478919929383992207957488834688689396003756205003745261584694855484049440262408962658338900634570881986005029533226466805471907120627703423505225683646923980657907441657408376727452800258402268358882693002073936817238240107689264165709119751132693549629910210386979524980588758690721898222326227809752289242132798157091060558243423977210215892880963216090488916013261040291668363969621210126697353433382587971980944165462720232119147595698386475554755106509094904684891540326613070102675678769477380376629902154288975092447605232833646427273244312766788950702805086821296395274276142255934809317792974008394603468059687527355820195482408921545108004976459755294871092837679444060787566209898459324657353201616172511112272114716721571017105998375434998276120697387677707432221923833253072760397732393287036555840337152261027601522608654370138468783308865799047101961172874963453048740977725943472070160391464305811119059135940153868296948980744059276726346400301231314494054833671382483602716624769039797441894457159128389738266598245906960650239344673055439958550727089266140315755694446435039793718417253575593606055234875172136410867601403037391699636678210004649602569091015597996846066198576862302780375637286457381409864795526319775323510091074949444595335554251447492388800261957469570232343641232000523354156092586230235768038038161974946828773212653907757010541157499441811779595484169677462151188385427372267117970637537594449392625844815822243678926577840645110895096348996571734092661704034082772203180365364455717172175079979501973445834154375487627494085220636967004005960009818559934232097442916220235349238034439399092681769780033396292801128078349790022602459541671738470791390138460148604828183972236483930072121618171744458464792874011834020962113520971158002401955826920141493294789058745807320027850325531214470731010957376430604184879361878428294672335977108724351218700057544998541755988783033432048006600833127037143188237752600807202813924842431753109882250844205698988932262580366723735883407509471732267328319801305703442755293910418678021477117685744554657470868409643087259271288515916466372417708575992697881672744506942717587672414463948044421422788885912680077092838875983824220951254011250714374213017855866544837385632410531083282001311212848693225277116254364003514086618106718773546379703920289078226480696782461306554475194621384407024763839757362411622463718217901898732060825413841057049844051432268695363083278176538847995684032227916936074241087050976864354280791681039331679480886504730848520960535445788210638619496044607339145377516096877491949031448039787383576575950634806700299666495065826787597395740012786204767688539644657780180461548995675542129948765475491793477459733164402702860893536406895527152182714563999903022397151564136566246902814633836972697868506879176401522684594365067600951534644667250180170519190397800106537164984770126343172380543069166926648997176844277887998627656496469369132064057883676981602473389122173819762010906215475644984547669765127573320704603543648196910944612806294512178864158702223107837970197215826582306429246479813276567909730881272544314198679228508411621789373822170185712139961679929914190514540856706164817091297889295552476419031930344820273382825779259561908419106814055262157422408135794391540928465291014409013713325732086377542121935251134065223836025447983363001575231431595162362913764324859516338313399442338976685398048179534207509326981562092100785339098012195832217813799180068111923477432449551401491220619511114073295886398479642837671684544731907793272032911341788829072568863223999667594658505016948511077732954792551414896939174006427543741825292377029362727106749806342929917742009295676611671293241393471783155246188536430961760028648775993241016425973211492831961071772232185833479326031632742968648694958040158773389961198574132849117209666479854705434688395612692253660752803405823881416236019772758343248797929805820973601353086467936052788575411816046058321281404083911493413768919588749891721877905494710968048374473108781795391536365284489362688851834077643495874956822246849569660560951910894002976863758354375410332425435507855049423735384057085494047399726878515608903182165977753756834305860055298123101344474157233270445377928513644880190241326882024058316308995260804548947847671216376415877039585238678588358436223457117495242094156369959166281265366488934197708147008125825695622032519552220317006668381875934422400743412017104337203319909168448607019491763200162132405550700974383462153135032548057068742160885987184591512376162517062648466167718689596016185960625066075739323092101924775966982794500050724321997544676580310018175154476732766948383593922271733396676182097341736449586884333471175523649292469677508143624336781819690529176809480726619156493414489913796730760027280436183372168431200975295004522502389351624500139562956862651555013461759454011336180494698145808631496350457997422227537728320700304983985180982058168371194804601454418057679988925786708453103066100819270947662840794680263833286475143209007894547306799636944297640123266892622370513951770542931391349440402392614240044962099637436364254267244423286783992813621601283075650439214637599898853977691146731989040083113574373683906379498195370117127747449450470492846335254277198438319349100131130593863698616288150259443672814483637210952438695397820185270968772187541727486180946864463008834042948437194435682455536884642128230763445168039888936033629057638120930501691667912086212988580426848932792453628691615076349118070621198624884430786251209022049794979869206326768800722340743422501879667342636013748748821366411475010743244485141203414163698652724450587005365561436319049944081693052766008147215938691799403286116260989941017143350110328203462921975409080581874216560582674639491058811740186831703441684918628512563410872016204410380268156441007205351804730962508571623987118661551172781824036055558344800100895334408994446463167082309980745636240170183065935603132576029527587158995905368081681392399795478580682853276246285719439007738519058512223972982276681294324839685806428688699805007115515574742290464023113199500181329159696610464349792922024989225438856898202337149110623740079623203041988832043939116333593617202307552697968902195279994278083784680474322316084246314858901572322076931963434143781133865771929404676491149854637811961244618294098421778982726510444496433636112086850839001686838780709232269391842195079259019416801592414475803702150645979012027436489492563055540364776937114225294787561195169742479365237209247750249658574443815224419629278393941327777514652746164153119928586735260033645569658270389079874016625159103160661877112058259536401904653542854628024325097283016450400378471277856076500503242938167167283534607501575660438901472454513264355732611323531907370336588366464943044157186177006347055348367711525132875643823218978059949947978641642192761466182715570928595617371011830627725534667784453577484194288935518651935307420124364724603403756984850381534597302201280130323592682972451672971566064300935991710425536816119058130783676099958729804258699823510045896104354337535036677752103819075926685209879990508402849286352630040703547791591521156736684209616544635561911472683882913233553891558503210568806307851868384118514211003900348334773913825350739766422498386868566607177594610330720983307384550757931123454083820439997685983616130496173314959394201401536323178318222824159175905848038345761062533747267180284425441459449453749884352943456602474856839231910923479519892477642992034850324219523124162317179419910072657490092018828075740828383224741182852224723625519387312151563249882377969368305403124730441986292453239127681211332985900143613210696430013174572998348924875263282838376650889992534859262845083255751065752325135412112119532267702153493518257511730600315420338999336998966808405399079670962567872803702446936142890359595752005700505288581152903444056191480895524820418046464125679443070090301507501435867405910812188194911472704515418228814688823379595507795406293320797652172249401735875146970729212495370636230618753415156905293140431428998404887309287770122192698070186383811462339240329174347969577877537927708535140346165340105163636172249393867127913035854627147600233649724481869392781164985770810031838172237632552040374146266653979181586072177936784263977269263425346233468681799812682961999847305086913063244542532027736953411764919952209950931930345654043933731383284299835160831447680820544357705611901458871510463036693011840944548775758978951291549219718660082023007385665821829659413009125850599632863739574617932502076899446477691585522486770652010311631897429071371195886133801367705255582084447961794513725758902685469925352237159436537494488528587632000572422887434681232811386071455896229794945203255923858646777865893316941651847131953366573689441498297484144332224392226311805735018746616817980042474380189910118244718881711731856969462436920553726726503232421666798129642494475881669067129438536024037259109754812993207001213919944352863410742280408209541746747528636975745372119983938044032252660229453335581314500111316605600149212346311802899417374168168768345066735775860898923212954435921639811963397618579282445732411134359619898972719767818289369931123953708034541642175353696140201960656763206847868409724664986950024889981343918569216957459849183954818055985500225525191103565088946642040743872282584377803500671604285458053968757039291739233740414140309206181469491697871621629457380722032689289949451612328242593704497064833009959265954852924945352693147367062521053147432697127922780852285909253415494806972451346396205338855978140007414008149201489071713832194343574120119425853131548022304098979892719335647917145604584369120758298493414474652851581698111144779881118647944544871396595166185175686119944005080805411213832381703081422048356428679753282257878244779045536109314088820332353341158528058818208091321519537192479809275261296912336305812100270266161875590204817708563977259187239509921989118847155991735845673400733649107469149417595496450995426373938276452487023679434102487373893421269878415087654829619905031848118807416975952289721582900686639683053123907923500880507961618751496353825394408465361022826652492522584217493324299653519925805182665117610257348020876033093760174127538442723879023622660506290136064597162707053433025625800874591222119723768184011889670305532903801176433346173864128059576850881808516376723495722167505542705010575402023674410149205313519479217710976762117664311518396663921249575218595389089702610084875340757080909387581662140825925175207256470003643509893424638420624232964595309307753188188219682029273037243757274612344298035329395387908879773165596489774904347101885154005270179585328780726016158479353810093857405469049038077170270834482234506574037604306554259331244895512831397025550366663911211996424906850758254382889418210644462548599242777915489021879481118623675427717115781330152461121845945718379009183189525486143377495200675725292542755238505759047931914073544668212477446384691886883902516342116742415742884188843370533271360642619151094925825056214911077021727289434972501386391699060664495822948973636725968954459653951640727363654902766688261899400735403897241281225892461473361740796922411846697388856666003625531649418447884227755934081201880265218916054068103082287872861085308495517214640965645338381832262295897916675486599720155887281881902410853164237917619199225527179083663024438391887203618797240959068127273267615641302310591935963905345379739375967539583831126505009422568509188926218320556202293263864965032805463081380833812266482492836680910806169768954887300775044112501200294060994877973358295307702120546416011490872967068046757074522680554428751794091242911945742223103407205527941474942430473604986677012636022865212527846221017280711998028191019458264254239606794298866513244800371813222605455043361255080672873223637238789715540199665428403742292995776386524252576928619079965881856390904897665269267981916582465147443949848105325805882127686273530200222145931975804556679930941984371874450086837797100548658520092457301167874178033889732071299662313462427556955195609965288321108333477992864883654358039392484270240192475183188405613652219473182401218590668854344551677816124062015128360247513524347271951437169977096807044781151534021724544775802556507265167506540380205701875750569078913500611161468561034186225514187522688221922197304121951588769641060891300174920838329311795617790204291055213902939780928023830864747058927083507718444717054254121164997664448367013816159346075054392155302914143127727555655066473423001386458703431977983665344702179799586777425354477241605315850915565071214029738904321165546696530782053558055548868355682732138958568354702444025572406188637972153087162679743382069687633684801482601695959003100794048988662362034999830309890709427513147259034922420454243061616028287817266188912089154218261738840873301819079189816147550303048168685064644401138013661062646810327558664809202407630238918106274605757765699305611015669648612516809099441517123905995282406515034487083234210932406052568879824740954632933330790443854528711344013298843690677667060222666744088504572952809409651762904632343060945988214472524965575994938208561925592543359845598115855812856166438011990627762890649108638247835707160646022496857669461157335254741649407182692707304139134088941545445858751932680602482278713089214085946753651274561024061275801425835156460238502998779280117595940367153719575134425689606597067296170801765723593507497215295133737345256514618966997803105488333483462786756253843957031225843675628334716948876348392292131953075873646413542196854794137159059824764040845336878940950696034152033569070461851185586731424829085622256383387131333157354376242988970620667623594294914532797552406090158294944163195956825205887512849224033255086590351613510998990927015382422649504675673551063750795433211211336533006119537772270637840307319872269549958664191724067409420596459311095078505486627764805775718081775180395601458617761369668314226769118112754179432959796250296086766040392139055003861570380869453426105435908128626845828793809880874548776695512848437521252690452423514537728016572437318891894321797957587689677505597913720189520769614918620674491587531557863302445322468095694672174523566895659841474144780704472534147259533768095635535031397416492594191362931931232469378131795040060985407707128929541604618043876736335976041964293992199448769488332743008707816054726105083534966560996839370989767129868812213896916758279134566253639965284379668008249718946680299583215645268884107366967556551230180732356468608638228866131943310230237431673973900867943610348074732003067105493618085160429533543151829197726116657677119196335066585320042606112264483067261179377115607902237414410230350978978763832184576096273996598870982028467529082570976480669189596152124689831955560930526749533075404923618899022849751148686483740018933865164112114625374887497633872684611102643976589812507807606930615732737956229673466746963634973075997153450906296383617577124127219051185014451995426641487950337260114872564274856280009568424729553767183186304121916196889963599383639255839803260034539107510604591006728002256306314050698499123702096652067195925892710954119954254085579189146813748671282665070697310779700120083392576422803423093796641405202933190819826161219111600481517466225478999335962471206019073092787002041108876717318826938831027608068216678840403506416100481651694865979478649814291762720714942408306908103568125303250478642100401843804369848909187577822022310745346202814501270909252914946335457474984102225127985420729293333337828610374790750259992458848009259973260181464807911309491858131358640670477636253207429955117313782717003888047087891849591865100794057392677837326920243496219550608407734186925788780747711767214930431068571001845099668340871194254566074159654651901317889169367530368841267544295596642866513127150427968702524641827842647745272365393188445464336321938234447557927195340148728420204819838748701770990961464339725072525815365590093973264470073759097046710859524532310666068399918725873535722630803157221990346135768162576228498228494569569048567689251196272129945163622711748633315672173988348301159824393047968296254160241173342803915627278890366967232419398639725563754426633809624280073857915885046376205712607636003494842185201417552479107375599820475328471420965867134985367810315710393620026865051585071117469654302200322651482153242413432329342619515013857628348204619354043053403693808157517844125189431044643404789204859329569070346119348953140213768194883586926808590003499516732919914004610240123470518676936568118319751779760477233470726647909015807557380316881579780395633896912391903275259017697965338770411483836934438368466855127311466392863973706057511166598053207252811455298435035818695875119861302669119661539851593906888546812160431054754325841280430237852007025400290445482309806256614112777223863987719857573606316300578575301289589915744449969968169595460669367832849802380421023801649735580780183832469237670448750141433060562450878414214534308361689602017952192577833034963675246197637340042233786994173236537707745630670846682940393142803771539123787626427179883947076248449148359156871340553398233925131795102148696089123405869463377767158020146348626955134751333169661900792002723134555893511855878893358756233901248029337775134290967516426700873638237557679999981747308587620336971045860509952860182346080343719105847596630343879799357857133286156970402544478551284522857786716403889392963361607361888289655517097321314392926536285956574834868975329491335958937116390939103520360448169693230573944153734122676355299632188380695571680694124444603389304837148189472878730600308351252606677369148656213331730972926940362171584186570820538877161920116926054737427828655347763499521247155518887690312471322002247051970921577070801377400608800372420711022706520269994505693396257013847610387929974541885912855113764785134032613229953057034368871495685611188242118460229656929800745312825063466789084882872664562169118427699357702910023808841944151590764213147975975029947483735455586409907443201520343495702107166814906228228385355954952431582499039075579023883097304261159726914284163195730490401426313581638482116456936116362866452798844583716166848728931425975661772045241492719552568976130175378219381855824091865570488723783429040242163538626688507179757603115519101489220528141742538197709093948144626549168358748256026325009703200818454167687852486845038780442400261028959396308360287526336636151229092835929622024498509796683341664859856203300513610456317843268218065854143765987185606660058432962813718545166569390677662265255805584514268258945074382159256763106043695432202157917089440345676530509578029383419714031328504025142494313832343378321119479317011821172441228795580063403273069215031703800581201882942443922178802602112655837346232112719394444177116610984098301004143084358758875394792751641672836958022926522174093684401901275441164519545386178796666518025087240776332272683449172805658985461791625648364338286098911483799780300245783644651714167812122260210956971565675888096613899940982472575172253056817286824584820880249781083709923696208723115680766933885552550237665492150495179924742123620744428817334521593254748731058767056020618602386602768446900175644480477515682148669071095021660494061772575294045004733769012787367642492515149968412688240381225582617444771042867769736976560031974553574914563434072188089538725955895064297212585270031307740027430418825674761199061678830148319099715292095525676781590304689147795135733023776885715888424869707738451592304406220199807813573520736006902917464033298214795199365005790501751320439123815059099335675011275086225545037901792587864088945353796930344153043825643545686609496730619836874417741748174261677502639260817822405309469332099743108886196194939859318132808130557920147745404047782752358032648829486901773857553013391001699435637864863529431536428656952107302606676482941608584780601612929774895353701230225293798290129814859352605397202774466774003593111798148135712186952423840529474930412731121841744356397509205092975332161331070840628326183997805978701027956568223567390758886032578321060882180322661588724863642525508574208821305966562296197073746919949879348414815107694411497402675432049004055163993754568154706360746836274694943778896385571280432244856069565860221670807906329384647746451223381455458685071041035760161318051007557517684208162264798784208759968143634430324022689288171960584414774509540190019962915807507297196101778808757148800085823637228983274682677976318592010815215312710424347716196840166633024324616410019734163567533117956946383709517888979180530022699022394691016467690477423605896373128551636736562331725691563413986670929080227988421263674282639977969054556177849742679609352302815920785857125444840666960569678613741964854712806539279826182604800534125312140475662300093453156106977525902944975133456730045693299574312039356447783716399892134864845780239176650161022541239437369317689084290563001613883345940317914932030507196197269781578084204386919407360728949763662326787921070641619854133993110846995821939605101719333421632004970739307506428761464903427863432572353166921012705634964299953472541319840172882252200026581597165560101804993599998505447631266564561449720996624916612011597635491665695117797194793082958317047395268733472171604750828780058291946554624353272422535309080040210470052949713307221716624064135498111619727134277622071091708711897793075964317178518169113394456569885435035835104659027284076337983723554990028832309969581265322622502126437309296813016453827478471983344781584199624376993258377758629678400288787808614928184211158968455417739759913314836804235699897516531502977814945914866780165611521534360384303212719186900392970140825302064914200891576961395801229623226940373516493540551140807112202385652278367028864356538017785788167331655317418661458870156157909031079339834739581603171315605308933980975798348928094660289187449340469404434945621590100155434083269157237927324011764045949799478845990172645812096931065928192666715407078832543583453148993299595633522042759378423690364980645211893519949865809427146189053181912000533764988592183723444751235209691682498579518733668694997027648598054681216682615179097157337630513705522641774737357093173708879074088838984744086274301645255751050272520967069086557375520674228469244355164721306888140009235618594239608784641210417961236956602838451113137555411847400982224759508680526827902112307183018104666602871980794791485362697467996204399113507585766985207496782339042286811879752741290968370244403275344885070236324618445742165941531206400693475022168617799891138742235023067166939115509976317474547503123666282755590746022124697639510212313509934819155273863329697541292682553754314026044874213416912358196359983001226943648675721334150729002168168927691831993459211052417499586136522133453420619229962506574303198116554671930913432820032401714573199731487871097135820527496057847538441358704062578462752790058447336738552803147667524279898513890797330813192093525196654600680587470227011319746700857143828752971441965812510878543578988544956177695872792624601546150691032831630124201849454571693327433011709540531133704844193261168677092472261576760563253526092997345199012518056473347469617362434363595836993756669990331217298101912081858282542170002322081394573587821495354418903942341471057596151810944458155841093601551281624034185302237198359035604477805455331076824591580804043050755156532961460363626359512235924302857236616143889506022837105485125270985951486346244123428568597365026808949295251267585740839998771235945482706332374375877949785095697590475526776717590307245633819871394287734930565904548757208073579937459916659797444591368267861802565261017468812892024801278409869309486533461510882088578167814654889141087360045813429274396739387505149723945723955927341620534903278453229970864166360282176317972902055346011766952224173804796550310788737770544886497188924255460245435248570170210760720832751247519844270672342184534656366727364981774978779478635961190285242064490071072883792283401450816315548610434627150682396591092820062163881459595264504263174919821578420418533192670743058192515339941306875907699816989964142805388165866313091758616733142896256913195615821838593052984825683065786774262481055527789502116330543393402658517269009956834083693267376711371071313211208940185283942712583469915472117985654289826114226024524355867387862349768297158439386699026680518439772143672073215089592285335834359487261058736880426142307664996591562104397514489253912976256028971530390922820632479033155922983569793323305212637366625593548419134656781738710556353514235591564859249316955023277343804794560029830937476355566963274173726876860927891419056657138339774789044744795654551700793155528734537068359091501881407716810080584967573782624927884462565825330221707626284986853509918106077123699289323999014357620233713254606991495225668959546927974661905551045685082977597644562730822842187344393114130473676213381247187121837487458381652525232187795249631135659585177701051344851194433606245610222634909391180474027832760950664166402317315844513217241397022369476727998067314331942248122676303095180639025250764191366148666405998323680093224913403037161189559434205848439374642608906765858407000074984204779354791650977694111694802023772507295079219754522586330878315076113149776417783149964941674881968516870776657577967366774944561985567755374515980528256078648617248677932984162577021940138681100963702389225393221376621804973138714260872356529311172406174774038695863182195350378447451135466838145058132371691210491723718599934162330191998273104470400653336112302103336163412745346123532256423459321769738161625564610189708945600689307044677916218085632049448481920622525527789504836008536241498477999530002284726543032042193452602424301438351030625653487772549116585224259580023641127849294581217598373033316883530781043893132314600475613337039948082741433990328544100700621722557412288685549663098543063014311542842633859779482031495445153445809132515891924013644739051653477844189293251906935801825280447877554471871171421084191977829855619404772711744225158542789543931807110131041259461766948392379826178652638804664884063031184407804581430215801397153479784895391345165383725467790976352456442998780633641957152373915367925519159646652645578340756414439374956634440900387313001259218079397068774168308270412935060971256229724534638552069098009027221734530552226898657546440183385078135551883220092869568568650860180360815578718948283533935191475431572935866755732068692670253577782902465429079838838742304106760334551240097778239025411350434943466166049117946824373498271909250338356142915179085619186821871670842263848311099137486125869832677719162163797321620912704149807133793270641748913375530408443945567528474698099848850566366913584195332285325498326406603966074886477008531751293869567957227840896136762857865171521747870070207954321199511674628456667827607948335503697204924751048717336627568614062420613659211292976791492757701420458314868739770183716532960342042811299953692092656284096157092285954290568373536618429385731866493062246214139794183925976311853813550892832818594642372008382919497030733539778055599268928433154920956002215018137998679479510580342071083244934066871454906555035266617567459376183571801089933932998114114545333831878019313852970693041289240958802877824807057281889270075305126485311694932043284903568331589310830568650366227473190239409499877203082202247894736473158428696104159501083116306774988601668175122525101955559957605737023083296388548623868922238920552442713712521388035660321348785132044967426556620614511327342970134160967032845049375206850934443017262256578611031525387752729920957076188965757891941202514982018721475040671147272861130037365170994508428131503678987181538675225003298876808442541528326172364541344770992599164093573917267881707474167091534547420306133131097164819579732016168687118256636716649770650750299982757120122668520975550498997073897617787082785624801442927302961593762174689811303103115083068765472005193480255155544698887959395541719877663136660920732446633724925009601520162929187326642695801867984681944604841067466961436086628859384341363959329934829834805863128225173781056385876689599443206461516300975345548231762537382162460276443365516776695401888878545421358003466387674944813577772879974598082686263537226096852009217191095307800834066632365884073338198619544912883590130246611838657335118248536528709555801567758292939452918806684915490579958995625601405421450335187275496742265520100356741076115934432853548231665072549840631825266703815860508025348929083956259469482125926904823023024721301339215053240819345852318250973770033789085971700543522779764903467953674561482878703321257117290482316364846826315607538081520026329268171399378005471277932725328497854475773545824298041714981111058314912411675194931933818664809871584669480685383984956003849527117303897865728450726033828129300382192813276368482419308898726212790794319605486546307149955658225972323312640399649068500861769389440952848971651511837095536869843123021364230630041836370508778759833744668108123289423575169572163508649917655591128739078381083497023883406743509658495317450758535632624533379107999403114741632346690968914544195678680099785177179448685553619411520936117849512722261425353679597144391008712669335445080829221026960157257278536582423010740695287716196356082863028361095657673223737809914807167302926629821960324697165072125529162523323391392431933654622838552890909891564606400160404050030027739919725304026654801121022068266961771855743200965281478759372787646573556220760987117897278267015312734805754640305828433476011309028140157233663767310654657180933460048806375681486291467363413888577516619361948685986234441727122424086632940375481154105795175755599856527717279373990393530464690079162571368511879022763921968711085387667432176566352278865789084643204967811797880159798692909852752645580347883475669352288934237204100133577302452267693716131284127520431918818559314684926527488316820186939145207448792648667493947454156090829329093076217499301530041335001953257522554896928035388140680833746110933496280477192711323061945589687135745451279793871833710654624403525627127366353834339419930200790079243053209161259650096201093811093356920472402604829799765898492546308714310779002382107707979782550451004263819807319752731100569058027486643893627550554561024027119363878759056903069945457088559013911798138454962974491347462652501226088080712747464696767704003285506249306520604151300613444482794428409041069291355467378967269775019648579178337402726109612612896108766589423672918252996805425913162702059578147398138002715699072039552580372268574945669270257653552857908016382474919519652016771855502349345106477724516973188581603632115117420648139449552313661943502165468613097920244644635506210153115815496958465200401058278364670329028681530114507380505599906422654416294632599361866150722295339940033416850039077365373809611391388975261687974939838532497054452594858386362519695414189087100933894758050368376788449103456168381288393611588877253348850387776126689988766343989115963791018809906866825088933217105758471004245614976924716710073811625197386754919846501725666717360637626074157294313116104262741658057136463085903619884234391278093311439685212240092263622309587544299720935807154626367804372025925265690019377429080337212678099751571200720944128124256672428368634903379646888552555922076702969916405640318112276258132296949977111139501231394432560920762244469187738795699690364524591270529175980556068006532155642865723791198659331327064825566350988873945414919562290961301225382915569205781560587725535495434798661187259751020513920958726233879228362254658898328989367363058624205025818584382398287682768573228487736925554249624905830871068756924423319931704766615031800074068230970346807129958444618458899843553261037407570154478418826610026355641041773115472055557826531327856828938519261174954380275149637232607625338786784110105569834468502035312105328694679975067212682175415800564229807219482240900559412002520782365656662716575323104057944340274114450990863976851862085999144379895054491298715403134922805166544569642031262898342749734354391067751178540548337882313453943153264943246387462745419932699146074789144740678811392768762728739695862271190047961785004977618107555773512653293683792526708816600032756848957165827350200016947104061065929735597997171816550482552130031832654302066923414711394086791313798989457458608504687925467186330757954607364308539822733205786662402803014168464039624892608283662508343668529230937198720103624628556613273357633674517425663179360480188504357107066234759401289050619027719230003628644465632852054988036499363914425810384837846375301806964777757968853516392686504300027520545742195023701725569052166374295032962032525573502618347656971557804149061528146218804494859462214276053229688508829318816661888936036589515251501451376764516616887080575223255165608534936625275209459410046540383699061552663460443507491752396972444698377028633594592128614135271393171557605974090783473276718211213565013320361896580683151781799467748460277523572314726264246544418547479472866039170401236042054071357517555772454340533016186549616386900284353594411746511161411039487535980242892322836764257525565565727149752950183949514726115488321050683276128312395445145378694765261934637227514369214375359470156787749920309151069665219992391067645301536282642571930456680583954499730526547748909920138555483152195561280057935684791670571040975024371808898008283404355766947916879655330317564630836016564360273823780413653878820303934296336397656593649000806610054572702053306342154018361159665666693999820864058375383344457573920820104075446267405696073661695816468367954723966057277181114355855365363151170793337471581262857011703980486994623201390686182751139079133241472958290270194764212491810990592602605369628780385886966633299252539128008314246717810661260464239844261765496895932387077085896666151654884578921648501276300049361455002066892931576783555167675191554346794065294322637555144484237900722099031300492857958854782724822560811264268848678663923382481590006435302641954613927111418915493621856779830490152141440203412782495830447049191867148340274489250401066519664846990044620793532197323322261531729568388823768653670877187992402505543681894235918659824173076336495541629077731795641518869457998032758359885310026212432850837066855249631521153013666311948149465780243378679382220611416218746868075723871230094097615812169840325553141177589814788951391581442433849049417980276195052452080261955497599530460680542781773583421514565210675718858677248865977364230115632483259858996153063878624994623742295603472241619389886838201435822474594469159331053508410531213069618702880007357350687444287762656236423347009885254134192207574610525296706568432284322089467868877786990060181170806420642023235092049088804153515914437689608214693996561958053174820907876853821410532159982191342584180722458773873597303250198326679608237555103520189747761773492684604707242056624889715260086150262391304570028406157782168396319106147770955349666736232889009494236234735596824458937782239565749244339886479216583826560303322832390943545338204978968399209182504392180145954515500055498443979926558650714115544840502859598247200953219990001898206923045666827307580755726506016999261717926910630216599725321114854739691615811312781909913087590566128556216013043317899256094136668403399290925505760167754539925214100119854707318997554956075450431434640241240227324806225566285672983736367902797324645409916683317438536643604365289649059373916840758304831584260126359868084012169704515596513728465438711233936909871601212470824892089805618618970918044713112802045216950076328111115038670122001725640582156360101170647392729736924964489560525038739353856264964042030633141635113044810686594418186910694749071237123490351096206975396448077710677494855506405926541531750468620313372747906039747435285718152319198010101252429503970077721240152585375120411886466332532740280992197758204127772981660834955264503261988402788071835282753340343480196898899627482389096280180616139266154003683475481233177051190212572689378266302846653002339344654282270045969860103062185731766390539577734864754313660882606556654938253676048395889022197954888622796914651392232922085661331673619802552877092673060236792182454675315822727052732697032856398818889772483174693478680183378601941920467379990722131292750260226771604063628922908489706427100091607004752622202066696233291347903124542469737310435690652375190326108050856030191041160463417597223274767682310387182153580452134574125995762332505427832525996291208217219948674440019904544298529873955109196294874419802203971990615985788666864097142798883615123004892703004886396320300040577077668162482597875552758074871334143878984406702638815051907786559395101246024066734710175669957509490889474620095470872795049301043063066350602815834112657255904940181711055989585391162194405765737515184516259093973230756178560786587317887618007649863600959706691205420645701113087948054847288606065928462984012164263039973318756436154176682531861029297451117024300142852863524395995266270832143254011004185748805605218364391056917759731934435870458394580357457643126427641077489512707428146622697909276192219988104329353128772777010751507147568625521396310284352365300756634659596331084663769648196433055856037529066371447976147337292107861990764572680462249227199253224345385503043531172924070813202911381156620550623540897159293279082046360070132224287849277364199997416463464038024239134871833329762370347329612117553326165948895522710790160877300393159368866122792639523179137421073286507672491068528690694987525152828606470063360581970483024171183210820146343017275224965466112216247643511092536310276277433193666759054103148808661990789688848983910155467031232020479884963618529223475583151101590001166055304754749749812321037805183613751378727432825250685004904722183594567015043686966084549166430004530535599307720142017365423329733628799723078491598906086475264935689011615073941283684494011523985531432842665691869909720118275293680201115199823811087114557727357317589859589023682558516242586385879826542950785101000461087408856855295566532240950226444690342326875748308040633787708687344886805483726711085309151706741526128642002463247284196640451247991052834017691810687245477653807030165401561084092228169527828117670062672896697453254485302998050352727417828182489410258493825921743115181217347947968586294790268475450826348702669797781287349673412094361822319224895474656535667460462744349854009532296584725113741825001260751345384598146035811765191633407845292664596426087862248828108116719053807877287556414067401117693684811930931207091531656469344087070763076714667856890843786457973098297588456028485629393971616641139113309338988537202134061017766582109379236052518960142040539282143810108125894992506577993789652315602632452511545421775999294555216044481405158797405683485939826851486639426557177077521812611947747283080216203400569942560970497732114358272483818600053450337867754282068239600072000631009974890774040174271858429692817017432367278245925206824739937256771240835124114414507501835099378268130166003804238179743238267529388713371805271648801913723809444765983880818660667691917526278131587553028435370894195519560454330780795536340136055159780278709675623273932989219686589275270800150850995396502443073925025524324794444670318002112371972504427278108637894605853855990514693743758004774393327019939597742752560307793169747145396305986836048291718380617351950810807253293029156969643297803042402238787883676845911890312807273361709947378451749869056224456848680799390738877105307740516067142652218046000149056443301092398807810282145216113189052560012790548154319968296469506155976235607750305513812651956739799783176309167267332099314869986766962991599649710765053526736377054561116395783519036245193173539760577711386752022564835648928888074819914286015495990136225293444611168882853774771417010651557634873841094828812001284794870582691070009354298046796911615503568744624669022495878367329272665311704075684939695074213369947532829874450064031721904658865804029753185214547717096406505075882016794228178132121074395165318544484585480127208662227132999786986788640372019110244634382816638578158266990154265808297716768027403667411716146615200746213216489893599226429155518501181224245446774526152442458821166776138147975905265034308932095117478029523432410256438855631467541914198267588221429362608777976459353136264995516022199012780285636908121109914648773042558213566136147045139347686224620050147035379265544331156583670903069517800951990078432262191389125584436043511415635635810277761868213533756127883273053176618375459779692156903809838094938451375489593758965133314377247101743531882536654170353201398699826643651861162922978729224731391097716711113440332353844841300455261525925705102448870062681066633339112790783028734821471730096674850392392707712322158379539496570074962818420178822065541653811959888383220051048644453147477984560195039390116075000731827882603684490204725019652165013464483149136541825981750706109835706494545917697688154825100546569398875791390681860260498642721109403783489518056887143923695663656396075147994865583728673391571207809437567876243922479997389133118190339424238348196777591863899792532487692785973367343899563636993730039118436521906708920561446019747101199197546269246707788043298834930646402487999512763022878455466149060186300546696151592567164730876403267709356806057781868888897175306488270627739620621495332448041054724229744654207973698862803903895603378264251224155148483458463421239166782920475713704560994946249980796467811386558292898461038747556242663719584074303665692410998608180001278858522375576159844101569906763074126299785007854827495614406422025774624667715581587563906321503267281653511775305123245122888994555096496980544836929579600359389773536851303427859976527600050667846688878988060111133220308619817695343647981505697908904300920387674291975688911529720277817544717707366871072485819949231070280560135434845671475474477253016596269041488430448944432361519273954371914317450476731778458135770682806208332958171080147247394957001331464135940701820212239503545854619170743518177353736898813645909688631002651684270771769626375762852128969183658307748067945429266185579484541386334501156637103526943355729127255827534173809724656464127376994640633599331120294046208686770234626743785003411011153100361030337064914709769631565744224206917233547331951851744040875962192312094222584639401882992480279671045127729058068074751893591859419932517943702687081417734792717583770820443669720187191928383069797196408442659892302493097854470826820396916302492808199223880000212462077119865180282323714387173857657887441089203839422756772971374866238311076868444527866186846701948139397707108542897527264867335869197782983966371751601897224908014989646194006776635291480269923275981704713890372449097477006208617687116894356401774348631092027758619614275133903376354675864377821691995663460404542423444910178239000951129755918396163727512730522469972304055395088468159912277093902500368857219104387545375115013876426696077533051777820003366942246170852475146615569479831008950544226150439728330541924920438435985703442611777237528548652630035327147552181622542649301892752998855583596929845611140643507236361167731833220665736542424308666583012075641093439011282494758115503884729595315438631136144999234455391044535466053773070993840995601182257438170211365203050825171791979734317056809852784044585654200302809624462088423968189471095590333029615347495200358641787589911975016481707203293053169108087437445844575230127344116004424449792696972406322999497458159609810233834060048416581835021242188202540579652620312255417759548989071804976116769455225192745178733059943257571800561731982089812750221241736849219048708281319593877489696362263935911686028601370573303212739408383266179082523404442006521444037416494106334658904939097477652515660371153697063406321862530869191507481829867127288388439412121972370596133875715044697908880555782695246365395911755912978223973123438852604444015363982054053298267831465962383901171971833482613540898097950732799763453941632675440056627924249939183501609393073635011415789802957111806481425417799267206732777940731527050150797852290819215931368236609726857377110794759048380673328736708479161076161353617434613786879800830149138907832513648967193026882009316585315347754029745654098036734821232776010682179834444088235348447571775606957225840074847584388482236950800003619724216769030233551714288917642473323514656081974560785473534995375733045282665962039446675859245759555114776304913245855343671083717412980342010585490944535990184229210672566078190223016989226690568345692863341177474049081092843323594678372500480309654066543550865468598313447541099815973471166495743502151865410312870795826778998295571955371349417611232955326652094005729192895611008900269953065842770398758830835675268907303087063677886274636272039479862965818315028837950660317385591043040374121207408702039649848692076599337895757175871584217262351137988130470522288773991400379433130062258881457129442669825986529232302043182582108137704808689694774077448084306769823985626808417900004637909645798575848676322379662446265879973913728787190629044644768718936725063158779212781012080380247159634943316581038656341975854036198594245022481477594268631578758937021140524995697990561547559550502304018484493678457094523085484347068575192690328051215206672625408889402162233169430614230726944297047474467568228511700556434218516518866597821073937378799837123563411325726972573703225250136314097296160501996608280435325098069724251106786590509666136923285317537857558743351766392302454156814223301826213526645126659809538843585885716855992287524246956179759815703019617356148835560111492220792016160496725989862200878716302619866721651813672314997717873000049091939516671409604087310250903486693668124752168901692220435716330966284654999142815495914346569308047810735920611120157306808069940678835218841459148505737775112920795100914296262408170314631545074064899598567908122251842547046137542043361953192392743439305985513970285717150551107466917348447643345109842413270914938384648438826125107239908730546435682094592949571381605230380854479011185549432975480077249683915144812754222833723899446050760388875741148910994280620706250728078683007764301959085961463156446592165415118126671846173860322659754926368982593555027755562785470039896898899953051375968703316565739329558274198990642512746316637763132303726455696370982255671986189232044368555322628877646581055142289816837092369122291452966398149540734656092491804031133010499828759930400245052102904858454740937374965109445014988432804554473098087941323008276120310727413065838387852455487848491578356659537488230577849811553299707542839169991920619276810433557535445928632016895651047490427151842838854666718246631332726692529344360993806842935928257367812092901027305086801433250029881109181558463671340896298950428180197018717758750354988951002345926360493758412879737294642732217310425578678857523715834543416920148278146264814651124821985757428434490633508659614940402764362827639705809544264994804458541832146762991945997069266253153956937330923396715524956800931462470269684044563074419018693878919426022364181283096582545807942138753036324331128712316129268169154711233137030916277933804114787948342834791036874609082731425920369619325992054585075446822117948021507614931826420347376626751247364193368013240138909119934478692124120738751055053059890474877060255566249388787361691021134519055344847614677018054194155548346931906100372720414369312954968134349927114429808831489765338934225001594364745702991486554376159005228516696166198455223034990252963062821942053326321764666950515728714247284795187942511189438335953547158405143875423472959779535466822661174696607487203661314758543809076148299180487791829418505160571799036570194660813788200608462268994062250157917757565824883926330835065157642939992122828487136567035688420482403882079999968227215544747830948210270852981273234734158769753510817263254967628913816537478708187240092703223222105816057145313493947599225839908118110942897916722103215523022882088795788214192893689017402112864421420760197608788673285552501640697303956722522259743028772844875529118195809024825221129571074431045117961847367802161712250529146049745734543849400917377641780643928298737124627473708230549932488915530088816673996358076099386107783398994388358002813064345855918188398685204224681137579236002775104230063940354083753496964458591483937728286011551555260933568780693905316904976338836356593971065936126184707006699588977932121765687787596450240707399862951262410576475261720303760116674098173321478566963421909287435133294252497985436412951273935088388973439941258934680374420975298044993985113725542965223791907476166366644609142772945391719022638573741971193742054520092326008301530140020212762469082283642415697783039203009790122786012255535107909960478244750598740272715255366923023546790633314433601179578861583719419699320341352405754663344012742027400893885789898243355901974872809004158401356651769898902331232574596575768867192761059432730476795599881309899585219993513175250727092707160385311178846307380292470754295547810804517381798566938059869141267790766298884247158726790739441024882143310255179977870316566772335357429763674785454633548695560200234630737840590779734821171599860889256636611107604594254349138261148300559300199621105987001134725711849821952151696775438309789566195398220805252471337918934082729691723304875155532795841496667084190760866090147905279633691885595335430975709803230981746535173336345716305729006978203299215938177040327947359416146257551777501005648530731785476808759715403522534655749374497018243062426800255553544323023639423154643016467339030944948038740587226802309979416285872913916672960681565698918851132811533872948161298656881888597793349051682571047176398859134971428025604189616803822520670647742117241525121386493068620313869439234786803859740681538617716996718630314945469776960193839413602278453800203544240000302448145304367774115541655932622098153814361468211652950498235809203938271475903240837272511828649226413880748725396240911487399344077883545360541051887391679682649412531135601063928373241696349412802823525403131195975124745692537017199377694294740782596310117151595000962883698674071963982473211661731652236813931779569335810965100930709344221956153496537435231894926147485931543103893127451280376372708152659035810432933553257960692253046022980806105784348033806878511935136090415462353079201962946312406349406501774285179145888293318821603874502877138844625435752719930680610610359942210294370933123379457765163287949734997607058623559340853417146352988438337353155527144606002803055545222736203923833159456001193890827612058261280333136873674029525356631539734413095100243344260534150131432482349070451808261754151298122923216562795414971237777968542509613280254341448782186136428006337983400421916408368673794216029915981962134744235712251675531021496263729647673237034101052261104644310180078072374969463013456279056977442411445190526241347319106560214408580808822473380682707648180850924646541827665891830815450878558201888329009305713368843228855651170386823111949509592007350933410810266814183221508290784678994104517168554559597994533954325701738177098519616524706418618092235080565917624510326004890716375558492029173054977203319206792145536346334227447882781098550011549002646076219883008625172533321579713342213344510079543208907756557708257106919197582970244498664793753617616113062246215364156071675716666808873285087604540715647493274303682272624098599088767244589056520561643509320154581277462893458438590267552025919588274272358187765657334029528639652607349853200581083458569053886700661200893120096853219019196481163769188896734201435099881089151404870994631062037407107515175161636357963770063418736749238178160614489541589070571535302060896268980826948437872526275093772044608853700378817759006323027253127996173571187139718229601677606998818166978349710381227957733427322388939732373370641262912230586747234765434810320252441255181530793096069555033881522884683325389817350734172942520787969863709247419680887953559271525150570746407645004658522761649468925839983906546615715112489343420459591962291154236730046652405866816844544990053374182328863309040061760163091390564651839652548539203597815706126896664144714185828036876956712251210414293773992563666186004211552464198238614076802601206380162760687758056339497775181018296958881639687010410628964626349030466750506852328333553827392994712344547187871420638256571282578316137002820779998103933835576066847071996208076332637724714088074708772467357347094424047242129146203612949003730842088196966434503037467092105198490383571095428895633979643703754610217464374328519774666559878070898650849550041989613219281599080741818063230261086523939994433995810918199076551432646543625493628798567130623866292512113401720989640668840931043916561825236421088586630860542016194706183144068498623506312893297052584428357996888529846208816310311146762654377823955789587907375562027024501156734436119618129029867521196383100046156263813779417504549984652858097081957896001796872662458135192950426138058066785721585642619689613706921859783880059445656704114621600894295951053191189987619804305586052290370513040009552678654827639891584603008887099267825225972502282724142020641441590314578116271365558623263085142600665401816742227140726985537397821045223477011480865348003368353422703720338309235228794787481418388590466319052994931045275124241582055790101986404817425372385044300487861777486758555059864433653479464424889436279853170408484541204103658920100674169989369475729516151546634467974603064953266003787925827922945051497007651767274963050502651923686933630672557246993200118072102706720383736066370422973538124365506405135484415581786850165568100075925435565220199625977274405695598159128978733785448651809190911110989595991137617027150217311678783294985403918774768884559456579651004197818503950472175916122905320434874280474609543980871668989858822877265058150103175425407726399528915575488254014519723927822969627720027831076751167491028343313226383927322212031510196615681520426830874499751326949487937399030380602108938407790312396521059757870512611778853835377866969436967585860370327669032235173426870463595900390892810199600338869806628589276223108006772458904053702141529333021396411147551260356822232560072080995592529150946030249380882198161428218376884028749871890316565145806568063964131563715919522773872507712343349849501141865543322852759615373835031839912782885264156431577998471922522704425880371037881099061342154976829494210900448975483108057363379033086448669571776127467103695767064611501838847304206607658409326089011746613511170084434726670634012710401842563963973216113484188691956889682013607117122373386661269661101396974581305168207937379085794721759019258173427018748871062805458959556470237800951853621751893549791816776324697413590336436625099394835906606375532584641076697982110374774928657800963893898757338888217045074569269684765830863946851959613499411902838474632585104457214783431890465789421495141995029212500958520449504895395663216853440221126257638594743555976205398091740224197126112955102053966975463313337792152947482652517851279681592909535799376950080756928596658496363837640577385890902670694782159227010836644168690754171441741622422295632234621037760856974018555465857564820563672086659122153557417172400342577146431979785972105184922201531249029502173719160535887613223127685330731242335048062904130365076917555821438308270897413009639185727171108304252515873977040630837309315954147111700152816678838363735121293110688136373549859565134977060090527590022397000324238657877166794487767977432648352373448948677080580173137854381184400012090483484033935266762639409063396842064463002681030768732966130504369759333673157315822516259680656476684062016532581356476858790885235058994603801410952202616061375108021173208119381331299575862391941847169655594972837902216337475453606382996882104631613648975858010626879252789997438319163706495739508062950354591862526320397460172302090503406020520047978689900163787770069032158749601479979749597538787544122598415586883103502784092097421026506006509548083041359726706608246347012798769756236244091377585148245614322674179662122246936793424784276298339083255391813525012033945440829275060660500589290922630964457797642229882049825866745919768550367404398678145916091059944335339893312593717258928084089073584386097365290087328823739167106652389644828876398989359073586304004407360652336785349236967717458586348674333674765609889859483153657657096364535248019051450763710631980351069306435957844138343293794068002806430173695532142723983750278255123297325339807674675633778518343071842404649491859756059968837792179477991102925490379147735018027824521319208272580668178592390290587199493999528384709580174148269238645414741100444230343419145132307649052936809269993570993677786359580843701977633550259989531522535062785141111857846631813933301386760663830408803695835336132600022988484743620831046810255723653863061401182105333279396402949521112865154536801240029962200664560865124152724784077533549386108915965547394862207981740101907304820661785263794651593925359771926478494094146441168332796739751747439593878098445276773790702237968887946780667157008639996102477648610250095894803421578777727332986216156246412502023477862619239523284200176777667851528981927269762552955256183975117871963018987996638344096155622493774760997020087369040668537979807051104009786555101357253720856986273228012573972668481520767206210896212448359051915468407787545501353513204312050518678991191609435795570093294232346110864964152063476749911927251909629464951113658944046003310481445393510281285386572092888160058332649777734412542951058103648244708752693515490678499425765021570400837392726024595785402678552460593775130700227279009962283416066701485564745179860573135142676964353549508368886732749550022912718820772062139532121651012315449406597163355772927260615962740686685382811413087042306628620951420569276514450570374659201301652539934611092339603511735223010565567650470380290627782127554041274890305724583511716039416663075964295781465774005168492853960249102678265069456999258648534001888833028344095420821940515206496392808807517277395804486236444961652996122759340948466456906179358056130846355235640113823681475687102389756019507629409906957983467317417979486375568193636452242171882515139044087025809339615696500382331708126314239237723146777739510230025957094458568827807026822872389037896165252776158292323344875058648013376566551156374377248896562611519940545305636493093769769778121618837431922953498365392019402155636267307436676079239635913273219523768219626086897517856018586279610392921432167840853098442248828625832530297131094951597988431694945211754044848175328357729154497194412361877677207530068942894127067226463144825428625489101357930797230244560727710432158245396301064795298857895090616747080996488904237345562780834705838263941184100561564428992188141873223337537352996148064338982017014227476593591564405839858683570091139696733406770918769903939384575114479201518456153666760604695749244460452454899626481349422535312299187131115174842660841413376450192883421363541548487022849623910040279908187282015293518303056623621512881145155383157416813415194797030493353083017963637866535261561334332935339057586009401558100937258413262822646949804347115939103346467536080560954346128137024183065955676967286694773019075115356411055364508790815336835543409624485105556914738641997529662803707107743251310129336697537230451708481600093016337964396211320839448462422096044403317154029663897422188160508733719510805699395963259773434204052045543369707755042293410760155920913661627408569748430415960286239164116009843575956032009525487477672311323817180085854000781674424215064296659415260307042231404901168551520702909779188274439069987305993020754757756869648554236934115123810312371834531543205442269042182367403283365909766727153445170982070440859398055564547574351581649402663765134158678242014129916217806965637498413057004874314571891483390202305732580683020492924638060732624957457815602972991966685648453832711638029368099290905502668686593913249883299898078001225149785265055764736956431765334401193467194848029913016859464499774533037468000400286356096081811575234546336384304593379867291978697854101668091005575798706488887253199165945849714365434362672400242376691068227771385723406780824691844492218723717777296610263495402682696341424035513140239364737589054237303434189104480807349997082780658723509149208362435047578486597593586908635945611624046419853109152196072601026603248612549255608310151673358375533089599075198539786257149311727488553121144986372371564097672428861522738115131705812174716167442977052508636330317972714351163956084216827058399596054684152642450919127233990410796318809248944824434743610521145196766472610382717996369054752121688740098803848164304539496913014723755320700838563721955118503918625468973338432975666218010691242274087635295967680037363655705342647871877646839968117714757112811960029435429124573339298916347697893822210268113121185952560093672957128286854034631818461414763025775808131478947226949127241993597613007418264178579953485493360522779850657442052278919669224515105027163951255858862336159766026208643673951877404086759130040748581750223340598787066217061214287506506489265768838103334836352900032458424064428057976165688887470969195811559719122103733519259250597300746867606888951921826400348287868941210149604589761348068903712693674128377885530667852444580228790650363301600536321979480463481508577076453609950979454582993243286151831577104155810988704586491005025548447873168924160182671330718137031879015494197966560166234299336601350070979342586332384267667205785892558283221838276593243137916729935788593490732852063498697237892195933212225685922554777685898083122071257743073387243402150838008109834541583070322805701722033515062169465583776973073226336295643251415908289445147419826881024436027061810829688437054700839269268660118086441849456994849027040250999007372797459176360255001973380624932705741026928744325763428811746443075984231548455411459557864828996179036631710314116953227091762058862753610583150300034045765277317714400918316035535196684951002298722635989974915618661992974385794216578534202904589365363171902549666625308739940275918669539925174629850384951589011223307109130976175481473154354583856997905891026317804169645249197010529812819788865151496416432586738758345080939021105867067099630480123774322751130270985712445501306745589072178561801884763930824218054819098984719457797359398029878201761163566659514924108804840623360964915791340412452396706064124352280754803591037127238067527250602469175259740453442426005654179622458481761963059062006641962062746393095210526354515287918234353711331437031505384585391618883535108526002412079115998879763313205349450419987286201429201682110923876650601892785118857719484996630518719808672033613089498246006040333715006242003373859889813892318831829441972578433701756061598671617350330489029976628466558064523184931768957796736056333340261233911998996493967305198356071208583088360119827959907592869102242098170278400184678466719406464397032347131184808675289915969362703551740071015300018235338159724345701400827800956951485876959523260418501504466033473535569673412724623024874010924829078958901216850048430505478847216961470691414139349941993787610287221061787650925432607066232288511863246761072706782364880054595036329767127219050694081019249832042915206844852712569312603176134108737076495027415738230285863342939377113706456768638082382043491220416894704533892410698999177226594307797786391619650820195959441140496550410785427071621316916268296024405727843935774928608308575554628696863333638661482348722586750742018732635302810491121748709542557620040096381551237601816453187343202724193740367653348083720866699914749299807353889110090740619964746386950879672774967264302210461887538551131306360251327351217385055430798161887441310141357078201656254418905040251645897457313478778612224367911805253609316148021426946334108442736554926240186588527049876888391616578638197530423153665197887779728713425165304547501610775741755807877673616897575495584117704690220732828928329114528359304730220612646800272474332142961039210405916439790232409472856890662697764558279948164957563739150132661076041467324388712296775314887240795755079774028671363376279774958991082627551626572551667988920374627056840203497312090988010389752313366478501083412949156716634156580203208675808925610535481339988480445573584424928609224022415049473851460707650013012581933815806838935708252418035236617475420106688038363258696090529842350053832055947539472958011791638701846644478806361169784125768219619866712412336886472855266525940938880435359113160654808408407518740020484840148131059541734199259649065390122829553998655921394871657419507542531730865801109138667345369581923193064886221153489773842320606298444667931000912043371199668940312673461656429393960747873695093776856192428101025597066804950059011772894275781418375925980794285711871195153199356788400886959966048816961478986619657504718345492842375869161536127546871250707088268638005960624131375133518251455342037761084006888902292386664035530306049495363372629886307094654475008331021441776435958560107690574286576858647467025063734765685854368407321767373344124518791861393490878203994533813187761273216497152779579343938480815833970940544334992993473341446599822987319478193713693351009889081437832120123833082432735892340392837697267976512850167820222463228059853804458190035853363501475829635032353648713224548168153039516776609178918897274565042692463251583965203753833268719208659420337665897299534658546328302408492609507084182526265357438311214094739638546870498573190125462387011907187557884036718183961539455701870092761143070126096495273717007941565301787846368861200916534308352600881266645387290682086216104850750644713290742170674951659546623560832938591104433919802147998383132128281413309043969305952854113667190698151047889719790347398161094951563837460333201711139305040693297879382048751951003415734713750723945045342005989051648659943392520411936450584208038496037387690425439109689110779024852050961146878051082289157244860666233209493069761216699262104370392081081240688339069857759718320639461983624894073155478203560471166442912501669657351084843816059233628967250683877937445973634932894661366772068971209919604148754351134472876654609627016155311553069054042930201917139291940852736880109140643219128373231598625469265630503549413393977070384322305992939966832711371682215863469576685535879639168374914822677924328336638264945284337544840369668701690459618440679699626097240433549176992906706210373588834921768826616770670748570226105138420778904523660452987438277104526482833665619540033453149784167887234055092685603900778017642149914193246190129912453112131892791102439472580960318835218864476030523806254244602949587645544261474441034080762340821436887805573742480628537685774506492282586132362574724857313908985944267079231307389727571582411267920734317178589506959601687257995115554100225090963762601427350478385208167619582201068718847397327679708253609347440371877556788264203534563645226027628986798018984712754658288418455546345855918696455180836292972010250623171369130403454831921123981866897412865729373608919716654216781203017055510110585472241945615418516197438667825005739654558565737696817353029899398099228520248842399030843873424266877840495875748032035928622654035408272005917534427095751833740254425948936682622289360622756633351343539541700839413568823028177454625818057546271339313817337916168499971006484927348942769626510386087479198730885037612553705493281470345739689592481165518903941177875451574464309429106413669014539198524763546675446126904071517199119436851857487227869700195228202157880852110791092633232614232583981304463133623681026907031744784280536423075599569799897952418491160608550262035180801729016362910420076070261139329897704636426906965295043537516178861416642437851472779363652448650976318004709987142681251399272956540323099149032453187384216727234255410450104778594998794736525069981673072310642188154728182361374271584146537427171541393393451999726758757698852185073489560192938521556070872623532438075713749710211479643134535178043813666107479651888767777271012854779288122487842821504429612184561333149917893713002436961777564958132117084695396719672297831500316481643792320280870196352865283910560046208010805485910130532450381681960013790539053117454115353138952817090387005728471505787046292030167024343913209612158112051137151450497737125958628410154239491988317258582316482684070953096040514215554411705466239873817839951386472134030766263910632386288348757108484026190144167193582157647035463429301471445538424118350073763028054590470679186321913848070560758225721549674833465003938085490354063051805129121484567420565986659278629159704868321409967805652265495948639541994922100898301671248329763251924765175518886720276248010118637227251072393736632437426921111978136276888185629438167136880882246616922461149345687104358810826228768243209814332502511980751226340112223563131325290007556988550495190703402561156604026181585836961673325494440628199881725216128655250706812336199293267875733820127227878690606360585752841033153278300699948636640568922774451545433653138446906020845793116585467168361391388395436142907808586585634013388089898316845380305108362851244249896953946092667653156697180640446224315314325892390035624889807133601866406118495250226437693308376749789835116792070938818536808564491347241883583967750385707873736716286425619363015725075454186369514762216676033545557277861015823179211058255885385035452341676623615916772211626298569819080266975347571147904560116729256359716827850574535342364297759242391564889921162912090019916327102599315744779265574560492480219803326031682317488189574890751828680843656515602098500859505944970433012342198067321266385308353011206013733029782008514766530994731616546393156349587049269489881556959586926108791696428950071897453102648823460755161674029014883035283265282100849543764110821008686981795251878696623124211180851341304921233259215799247355205487713363909358902851338467623266835416814244905835991763511448059610486952458677723105310343599346501325430342763809150158562461085028719635933081606678350052064944524476780264822161315061284260639483178454809673646298100926682665521388876704639150020231068221574265163055399927699368153496435914878887222170059128741078856486906632029893191994961172891994590602028925693272998468576017737107045278435716152583719271920840419040122818261728188065109579995516097233845425304273975408783730192102876352337379379658281468662956548804944731531724370188974902768448968191897719636317771957718443210650091195358133583322737815044289728883220782774431305290373887974001765561045964684399245369284564174006199606085577760038857951523132531933662156478226943560340263477938673917220136997779189968400031284539946013669902167330293728925082879539627909490320836041556210136160915147392484950235629580225428237063211930679208777736442810014828797093664956108357906481288888558390979436706001777194003124417084558587060577917277161653141456135202644561561711025053653079578547392057595464125421110742281638468781541035625531970587302370618911890068134647838932050488106089990533083772405774719676121693469534115294524689686594477071534629085045091636465516836615342802136590346851698960339553703977755508660391199957342930508340111401526232339629170629969926662897546084588862658295306557476402531954553608865865598008323365710733316884971893097646973082313806374222617881970418237662467636268139048222635642191471734571301953940832998705800802289819790228593211681422448931299595470804884113733251580796622350852787570434707609449378944523648963073640698162597881004648911192849420086900148791327072512345253000878172223460747557456940642769275313074520441037983514921555459955912474611752204314240646898363709254795568242761537612020681609107991055311104366074290166860218340293218407322086020655039785515608438159166837755336126491252637189172569988803939432400044231491823228760968317478401366416201889453419964356470726381925505897686664909235741962322923505049326557999859380499257710742650566058521422956788157567242285061634363594965934377178082303119702128741162189121614599791156891801779363593719668331637777689728967580318358073372883684582158946375054721689666613994845537916941111333513105843957409700527642627500814657614162224759379193720754141824522778742334697790254497200642961799348938314491969254382429015984329958616630907474293981235829808666055922573699392652188518253678493376290834311853589769303492451089143490627187484586658977690631682996779411046651073659435408434392219718279128973906856162394536732191495343977080340436644713564569691085566461623240015603967870975076839170768045541272981047598935797384876465603389464858732490403933037144596102735728172560664990673373503701853754219249027140185835744417584928220807567117025807180906596048600682238782531601320717085470745029520938150410243832583424567618123206744027476702497944094526552451139293860331634111479933663763519808405808221688849387753434892623984803725579786853594194622785547642184991936228591122589494784301269372338613906276763603358572578912486949690026031141337390383536435615401994524449109686243765818704642876691301798053952996667526997836484724986084462899989094203602228552086590330673551842967261689461381582243972423779798346335649174494507107095628967994229712289004356722671773528596141493656837865723186186701325260175525730481421767799229634391843475502710211841780110342098810669427427045432690259478399169444563221303460949306869760499445516871057749187474851051177719723681470075420389157738084230544856171515575434984719427502083631735811879196580043183210975841139799772955485703505444387660865398348033200999745602341652422879517378946758188485499469039519120623911994899082410850782760874383502714953336241698435808919060019051242096442964649180773087269298536823250839418466650159974389445255409378556441699417494850562134333921961123711696523283607790520046998021726378748933687601246488301492824413339093982565308756626223049742384800654739106600520097112332689955066770526802206074805893508643451574110556546048432807283631919759671963649945906864512879145879975623461393687086970448146862854684842573922951914756719673246976613217611823978062870967302005033367414789593033175867292702292114244771126523364415803186868583775705867258475852449240587066670247787898220780870328192562516076189329988820237696469007392406287830700309235287367453223184752886240495716423422971466232040935772523054943194300739107846105377509480005357582368115074846208952307032510307119934817022933532274215777010515278831160162277849725913470055207899303466119751027562771702572140774420067424745488041696178271043678963431090459411765188863952033526732177163365419234310399615419201153118906490352263266063219293035824047170291412453194642327493564852393036643243126240052860938699312851441312572182497688825104845696968706365162517635442685699650234266227471280974602134456906118565313021475964586179191336743513776384878177441713250915168206381568668195485757338558633355835399663271433996824723366488204476371169527270214918086940753736555831067340989715089866614053756894994850938691436139506633775122474447416139115932480049254603081110744490728339053118492679132616315424104619955242527738840695642972961602942351685408218063970970321812150296279520817078643461539601999262000750737157661468818402427613956133001815941795778553397989048663572211750747831566172316936483601530692129019310766671578535310642981065823440123661175154441950745374515452640535647594452383649099839922852748171367950538662333900425914928767532777606287131592756230577220873635504895740378024594884492727559120244374398108608144982458291306889155023894595215408772233309000129920396681101910878719602444145322161560779779024516481151869452422152629414150344277515131539452498403722303796130600822751916959466538853965785825972697091865098852775989771185711891664911812956919008028586176288714417330314532016050989238587940317647442348837110295711252044483360264276772566068201185158971733095795856288264538552460852097468938694298535382435371624120404722190891197412485226879840063634231514324813157717406901516618486846522037170799374743105432364788696147530812297181427437962279721968958580593061275026670210079553102546877005192960436251415562075874377025990591924532091717751001555601541448756201059249088112502316669540186784921547028341807523600556539775357007691448591576196520856010724848817039662515660446339182075105072245086905878762351567141400370844883445230360918264028617927808002671401248063363546021427379931111666201531208747276921467330983379449038684504634604501557788158244158385697163584561612801750100102231603345707989363394399285233118640189504945566172030214215894005654802994442613339688294012926567620878564837877163583675026698482760656694124538671339063595963385549576691663707727941618420478410594373356665032258082169303529583736663264722431823138562840906910156304086140833156558185259188853252608987123170136597347855183209467814690269740341449694028965146743437768233891570558188764753620324287210840518766316319556377501314113151418142881100267283256018100365873703081293278499945849567887542598847194414427799120428282977715531957209762156523198089861815047106221912277383107150025155304256725546339252794592291100115368652730063436301511498789687258585639212863315179069194111134893691069595628129967048891053530832895723037348945477357027301778026979604076264715116127802865858364094913865109356911462746993321357738893086320042836176047771326846269716007220180135568624000731626884888522656179398603893492203514423714665893864005407667725462286798116255116020599352419159293772584135260096097227607021539066745317834695218353009200695172064020352969733130236510977652796714551786375538560233842012125824822344953566369854035440769860265653487239797780307757103629545363538831099163588750377102361820151664642709216365801280711362130597995001575920763051592359764490503437869322614707768713858977297481263805384639410089365529714523982170595209312069049377864114690166855416074570664848862947519360239987260305019992798645636397939519164102759136868719628630558838534809456056231754088445595672119801566885340752916160401391914862066352270157461417580358311422973718823807071542734933254898963923244031510180658677430010726468113682610766977047842173104306475674290432177041920023210814596177130628412128045891713398043789598555056798720019307268886651060641503573462889033280427364200354439519431956984460082366198266136617252875192842510272331737357506078434149531615173971520509452235963840179926253005542661825892906809368740617773791815984546332681534935159233316843223332787977375316993324322631580168164369513957840457626750664946817832615812235592663768737546146272078506300630371132384289028365625101580379373515516301565644983486606625067416937380538780967047115420609384931496830556918679453350974107261221422826047060118394841448053647578514451424108139696022117502022256994930334697460539533716616368561020049846966645951825324521152020893304066056258935992092224937659683698680865998113031268733535284827200524705727054951167614157626347899597052408226525476793253980649143629517084691410010878575969212562901485896572317915775463097570306790950905387017237446231835912026316054040199057473004118145466464419375458081659437527775125068122174060544074106749130165091828069093066982070359855442099636444734283052828020852229451568878260986900369078875408425137639490107801251316572465174366941258858581939334660330971985177326762710222787111090613320782626717910838216749740757050112029447266329035107082409286584180227168249971994386955135487198341644016660506597261109833474315762259335664392737572099787808497106826126851095463764517187515620176293642402516133573162103570416181911749079919376256688917109523319139282153798519795253497379448232218834118264626184229680816303344944339926476544010636871730768744483243978590471437870558259457057968229228824151833370025715876085621838260062009366345106578725107905975702298895538385971481403631194498507469483375333236322721908087196156222544363159003265565930358771351436663266878287536376645943052747347399631292997836770874477045471926627991996941700506897013299273091743816125942512430805559694698698192973709139559326518158481905682067785770637983963070924101425221276218534045128061617733378664109937167124971824673146543156376114622256003487199940171013950270314810400883663538823540759973959840122024708176475024992101121099576020595791860935716894877165768954945342203283749498802512284956392947061945048244464106399354027794615729666773722099022576337232044317984270108258179024332915383447601597338158774138874376347870050786667734808014065331375236381436647549139723028692656225051171038337704437620028051915842022879176735871981875097434798293188853015952893217375806506092010173645063881223532541939433878279528119906027867768176564057987363616518232228890513784364377419412771083362155087830192664434925436996319831268926709399527907752597760422678042590583260520132741863758002120864664338080822245976983182508669296000118220431328023501237956082585737661476268129862846448999899535461402081817183488884261102547626596946562809484135155348102498310743813485767620283420184873507574415698115325867130673546964285182777284422413975395204167580451552698785848143586381210215548390904167599010833193417032234533536954224792238355668845854760709614284304912369643532465072993081317021447320522565689580877311826349195705054698757096189245948224567401954990463181094219398346142706624108548268919318008065837120229925836577022534900375611534738809693394753914956620921777839947836655624383434225899533145067109986769742851912368156153884911025720481069681211303145534486500058527614880043571185572141211438406450700942585893512091053694194766334190278710517612331615584379228566512827108629745810185032897079437539085371392711302186003479101105810607848802931814547861675436482864598903465711137911845581859514343421600256614781892216905897918513251244568466575549170624263421268590426790765221209315620144088687156772513745404156789568515050582243297101359711778989184972276125577266041354725018909379902203180382686595607884652092238948867074091742669299334378166259886864946467880091514384184878477335913354320930046851808465231483053983837197255520928552181104461777842969713079983507692397029513921867153036870376036065792950795870261838873470098098342063597106889557041219231160829009488727883005943560805765314559327685584783778719990262781828958585991907471141263051076162516982366270968925945868811924264245682852917528074553111524194174443331049430998326011776506074244485689966627877254654372828934340959867273220911296515871814384996601816523636511607868705705021186299604410522645050794459045066971868875061969204264090858684254096322200279239946605344564793343545663233970375140810100626137666778651215411225033456102583642289293597069922371276210361093898130160599594483081835979303194471336747440086075752936301726883646371636025861091157626864269401161759984764755619142713520752367848277512104113703173988785369818510657207572626920215764182743567072446095328164734612326045621871537203128593036923951335130045277948764535925398245858507959130992843914109791117198904616421390823259914007588398106501052631431417306346671605487115797141234470469308860315305536123078262050761647996502379653789563098868945800110230690740959651275198426994438634652774694085186016941227080300812462411271631993841342648041149212821123370611773574938098311388745922240157862106518573622969894286357136223150522880174804566121588830854644703405286906956277578256793100016012767953601759131246009758864818991965530527126264951338670978880247586442630525532576684091779701620216736135415565230588723221108548558537271033337761775934203079556433337266504219114730664599457105518280480857745798353399854195264184241244996667992253402306469267899181245785541552131298287773314607968734060866755829703571855953467134134472680400383074605751124530095439967663515953743693822727075506353898754631982982829832989695404946741266517218158404759759112813563210273943436487322227297079224214853126708310483554708004257604368216008586275706218120867493154585795583837651014812821070716656242682884585488121835663887838338939591753024554108724722369745291683490614607262562151129131336552357774241859408054031251183111981684056495011553282093837245225134641543366584960841912069143058987840644089618767382515246629305349492977693691326840074143811312201988959831021504090404822485914163501697239210404314361572059506433972127909639921050511101550331474000619488439379778698505328513433812564437067666157674053202654313954378413080189803121215118788229842499627860069944587377926195078416632553554691296851277992933658059816953155549234664977202968349155323249050136238943228495678061190670417697853974495206143069429392332779765931174781881179104628860941405551843143201718351811981178357695977837877928849258908963246690801672755979191350908051910725827041009225830305704811190665123893973120832683575619975636763981431618979232852336891289900980032532773012013363835501059356682925529153450265853923545718916257922591293570217973914724423146762353333911493225628963589967711679749478762442113636637251518888067943340248256834306622683202661566987040623768803885757599054446387192100854540195448638331593068038728499152757305855617685325073341303742701774407209301322163954818773007095916332473816083518650069757593837572134932987965482151490959857076542282790629280362360192137735666483846807184079098720780608962500216882537893125657021332632774491821105545596478245650632843847368507978021714158803070749864587323740399334610454336026533393808599260822937854734526375328556429516204934766993789355476596663269743179253617529815971313327069778191587279247305712535422655900523787117384931212843389520543536391237267934080491345490134661444196110602430547182084752730196905231029963416158285971055460139868735584219589880362697223803576212443882328137486439519544419729754436611456757143735521136693404854249374389837906166603049834923620111562065167856085652415294531763649888096297192396598076970657994319544624321011361600620813677011774499723024915367145517942329320042314852265849855658063066391544362725559021166857524090434483521113229601713124420184409681767251196633052550670625137685519015060437420744649601822437975309388777621636439164877577666444850902587388869215016893481166037468362340955827803748095416409933191837818722990734288544762771492762349083685352540310881327984157414577502393068543559846118698930058630662161701788136136180372135026647803890331571140044340629805492205625125143988009483494777900049617837943181301109365228813228080374055152605544064625930481160916919018558132585714303792883249985079526323389399865968685970901483826468874462988034853337480407554353615510035413526446183256771977783115827070895182355812537319499862428900492839451032664602581253277848582174721990394654928249862587222519482337335667387350407473835821511052210362683206587248400238838683092604072423106278367738959977401204908227690029142350498242136392319855636398197285537751616688062175344034511888879502178351667679557788273391585793639897687046528622371711154704723176450476244666112784639483444024842998196445036526163065104968946019259011618149385251290522110531989633738280663346648766225421082319064716701426327712458679657875429039151403021161288522198806666402002148222636279349953758596016303452693294896770250724005515339391581173560527726959537563034212352733007680664498184123827807483495102586236261441875046004341760920834683139568412166478538328073717965874730061406343846580135702515030035492567493390720077617691537834409861490636119808564339933890261713817170047397065109719147892377869786257783471026689806643233980842336186894884493532559572073415138592122815076722095486244709210264276600988393718635337651508936067507932656359707536760257510123077888564246472559103327030207495588044179003015461909480223017764731473852944857001053299690048004357662142089969973937165661475013386846139723143455126546311387562456926127137469521559718785497116563995132856431193084905173072574346598911363368657249024441701782198155174787589489852706673347195509249361251157692877463344982817237468161834197521859096969574010071335484958389590300714113392460936380071124461510032190185914342720975447902985622031614248198299600903741268744036673228235829953441897539526081248002957964057402697055084606917447388372401713324402347850725399089768896416895454325359648409165029840774045141829897782471185304245165166183516276877643382328822262873629594989916622550415993172590323736439922224049350272557525426294332790085872436164460617487732750806991992615978252245219237406914837335105152193521272399387112636223150881265924819125080249928929795217503663596164587829134618193452721225554831385615297201834809806956958695707920224823998615967412334403518875424414769823685055390469894943827291136325165646695566097345361543765059272996106960735515667089688550755660765816998206415963436354326172899794934135552488818535340255417263700168036907188924699262595370493948749061112728874343192139988618399416367149429100110765044018712025030919108403175792850570735742933363334372600157210933033298835607538337526178502370302404555081372977808011530264854373994982270579036718748253366606922281945983738841690883368559368014385350894763602640111352653393745669266516572987110523961334947973065124247681190182815791347718352918671549892827333023489699768794023055941860806464288009228594998327889879795685530394139699771271796207857282241541902790205610137059721459870280373872170073649906484581403587930399135684078074568051322730515531533639691356621757894157187968526741232863843880981653455651722559235216437139296065018695495150163312225513348894604435150192591300633409025309694562845664707919225894170294111571707897479413680614645946102469625583172543639991756364594631856063376139763224697641698093747768073094398012483369895034599180789469574984240187027625223840098475290177143685381368624608917100873221167051971721583412642809012395809395074593967753047633005571158047334367043165725016702978140073058222776325117178905763271828994329426921413876578176086045868128546827412647669510647777835294506658428055063892673174887583782861971650615166069182931338127633457361310130527291724822493427677482564219206686561168692485640237787800720009141997449933318500835675191859344224662295220827659663774023743371991558683053363848951679998582554950135897031152210937809187862956990173355122845092397771599161475190802062976868476815333332507324210474050669534308514386931444067564525981690354885667199370443031198153142247061284503646053841255465308794389081930478366855951653690751804340604617103972553090244640227771926036308126336096299043066949279606568771652402414786122683320926296517392807471652878828236410369392059018628983572202761880610625514685384188836982363065252819267701966984645821191143890114691461186764573762084954554562694073330054922998640769928756993760357123568701608960164791065646881191854606549696047025417609316975968136305209276771381883615160499418202053156035547167452112487355535483847113485882637973962401430588104696392391084824117061335251640986035957093976618584283083898394499855520736614237011506413646301851914934531881309252246214846521957375031818676774697444316697785212349066046919613410542598701693618469942799931012418395162068715984543198784619626012872388321652223081550221628004713410565901518135875657697991270239636589809960502113483797897116285770075711563938093424567513190217765377101520863024914168852758639950156896710215101205810135987294488953685671109797990416984160587152683624968294115498183543608801560590908624828157864323016820579543307818107070165413263942521134138427813727975707902588635214350035713388619254869458318111799687007238597644875785887748414195747340640654758830638833967556220767121453299478312961246887533093646794729850875067278660024164696415924833736207092591758777418403081139874298778077283085986774027656634054216682775292012915929649486174846147929709848826234214340080603973814356581160614983329336928899341972081358872407504507223157957883917907128216692227112729455692417941080463408186854144134491833749133844703578153032365796193254126049186057406721234488753254093199199086803728001670722622228926477705864732690741152491681217599863259373861961725740740738450578250188274780522324006169567575823611299267632929459009897547001898812299946607775681936329311153919003056008185007442328531549677243353788905055045593866398545674967104494100102363883530561160385909665947769609771080977617091850786309161493421293012325952697066760856565404838674877431650165160894368662803964734450691731351773371639159161660312688136539099641571244750023812793479887885900105369818903699090975748432679620216187440551538149638541399021107039595855305063410696764451758279036254196531614270453781610798536359367170438657262470392158070035052712604853350709191941686451458492588977420590117108356821775113122173805556680961921402030645267631948453797120213250542808240238529582521795492401158134012119232161929620886796174979119370609136952268383454299479294452328391338936208699574605663896568763236852940207975422217619096684719328728014150856644139809562902910851519310431856423854648780996699331429029239092639056965716915957026561679351742885353059134552134825363263659597056111195770676425972692123349641934929072314155980115657969938417421622952631228759876178044267735160541194423550200277978305251482151421722918763904700134897468681637831456351739328869097750091131700949579243464242815136356795677398721982782809834146928902698589914859843913286974239293918891140484744784055631762764750341232681242929690482218399211417042503781739799764457358786211423999328948084364851162129631804063364982800487172737456964848141648523884381489012197303027457672401318612933778893984883313870749401912412667284517413871163695643333134775482676671317813540650713750121714847406379019612411233703631380982904296645947013728757460327595382573617445658718958316209833128770926655785849669890964762041447774719974791449137434636654010829112698432502076671454633478575085346764503633868387675409672926854466128496511781989061851683834527284425248268141513834348461724439921105649866659201901364609494636997933226036197138072984355589338238830313178785231619098069072147848257018672667748303902377330879803859030964205113623358686386224822461189155386349967275179174671195066527195433533873481680508942123940965085196932021628358004133716760550808203863633059667241167658782900627838890520540627734619556039362476442072154077431888154197735810925846953388956172775981753318166555611365104669834799427268654510578599659114062867654081513597690701639815793521555798968929776745831954904101403908763013642909897299574819551984212827991311936702199969012455184733839035564245991116540467142695518560010454540606149387145373978104732984465803534461940727030638637195109440198014328338392016309599874327010267825935471078631173240490418179748765074308829969477183085718683863557662628307340736479914464838740618521109524277888062241545498849200321125179378819034461564448981799186071149846296329348604368862478599663853812830608075223238545218585365553325252973694650358485179740894341121217780150485425113013038116873304794273214472074713096276201729447658608331801279581332863232637418301723036323019379083609783870948139487858041163730823978730964576768655269550179402368534394411173415928294833007180800141757086412728857335580139082109401284220095812082506715921933790071588084412707572644756545416969832228408082013525806184801671926453124234263587529341892705028905376564108824413727691720827794920397390709890689705172763339136977393682159439652387535128584062290319873218370034744653150408048672200232936986082422957246622887943608649628286873248248628801575517489875060724976181012190521814760489387590745182324912976432729992206325558015477424851960052328830591896043259013242391909428605410644003143442111950855016114652276277467266666876591359884839803625312605481931897879957732049951127553417176213222031646389602103453448075553346976758580403357942652886641378955893099738946786346390097225197241236214702707685719316778964370727740297472352781807876748366514311845497920349370825455837689938740955424606329956272274646679554438575258171482891513216096792756611164003058927270114037949204307947262993667961267998841836718570614410493077891204701190062995445612547848950778156341880001833324620957533499166882963486140324584157872231036680515234524803706602955328643022079423189964267794712615787064999812624370531815380860805418752862031694748004938874668881168247925475755287655554133167956740616886473956791087251194112091171328119697862255916585580840654007761330624312888391455148171300884081332915110130811968409089621793586093745983221065698804990948902463856500171523082725670789212535431836648462986616517833351666862164937244681067085578155560976965180063956889698711777429573838649026113024268718503508415479367654167465301918117680240255169332619828512010756695527685293778305398708542433183268146803975263709827711455144711256302058823310830115108093418091141336901010074441262636939907721690936201139192042527691898592177455752081862196447472761961370623689596429216552091064916989135235296075232486212180558470951003382995979430578739378459251980091431038630797477457040730681746968525411335655502423621114624261768060729430796101311000106794034500215745907982803386768054000344881875517778323026449226768867843974319328168545609524363263659323569836668294865892051984817699873210182281461285089531750809373121504252820724762784800633178444699368055407147017606527866011038756268635885109158257249992646287495147946259494184747148133840201073468742042423409494447635327133388154192546748743749412076873353991693471121728957748484112245979398044803317821022380590352472065194856694808177564617863354873512324804776850364210902307104510399518875256060862975334876944957104451128222400104950094519536007287567875027054182903221593379561559540725305389476850596874881288943718088159200615388886409136125011470248972102448423639531441053871209947423336690046053217335085330343586168740895153087100047054469651995148064276383060517001084641276848747957012833706260473561709271858954431237117909325139249119601614125241233283853002490691715375441201886635135804439520134103522588593219128852676528642531550571118349050705355900110500065457083434478203293144392792676501829426629959424534228739769168819823910210204540293093743779699488911554690950824713048442831821843085187579222761626305113745659816355386850003863336823512229809870243441328154196383694388659313290984922758676683802300852639688099637179263249591838165539640639446026992604407887526848439307673911747177854633234453887070399295609687280183299638559813340471372837687304596112023105832272022502878899478868779125592019389020168993937264281441923763059630744858272220960432525382375004916636320153146203310305657291411407583070174647298986602976977176459320691578034285592356748523699670619296308877757106972991366329927083889218841687391617940526079482015629365398283462790233523838300698910999709223573993301111932966593046796222805536360960900253132146551747559972201394968170930698823029588195866042182840073044164975788062800405162842604865618320498718670968466922053106103169216960481229612020459273709685463438485166525813020192608819535401505519253309922245948963210088663246591605270972339461421190889179481157075475029899663383600895300608272506903447595773246128717420728296402630896532566474997128415664687851742458446948423998461782197366113435449485901765380383459791347635794947375312567329833272375915785862530354483555151533081951380470627923011314911762896836883337043401854093439579208277137762834347924547867580714177982996981716341488820731350094799232732734451930200725283824881973729580156884030465652043890583591323506774615004639797366605169961353975352125338558882220580603367701291239414890322361476624468990231758390462538015127124920460960576015377462663226761718336061485626592836359879997122691270240085149074723132456900841499330098601907888013750991088389551254299362683759829266733432344647602350047285419833422087007103747146148943057309655623279846084618561942185460067837693958320246941431273072821663841837541034617833873529114786579617890901160229833418763076552647378186974500755174037092529833798442616044419100173993616811203211018326483420186144183125147809930439349153832770732654339757241100591572446022871705956624409766866852679823632177437393396810866058872855145895861491123847220528132766972565825705794171698137298430572760949355853569751480272683284503483465096552403340575051947078046879443741156880729791767241033365023464205024775772995464842998738551806294987556911888833640820953594647664916005676111489165446695425766423190831163483883211445460631079731038140510073089250858177178957667287246761074295706134395001316694158276271230851139742076570361642512396924163038093948773948851114998219349957028944669601993656468748887706176163500889866915964417858225820979904819462759938268718748316347544761511262310026638587230288674950011810689824240578307971031138072689924999637985722053684250114510788263217220334876063615244339465964885044754257933079162997433866145213528904179862662810788780957364519283397339687899475911074801789489044034314283752082114440554823645390047236551856324447808445249350391220294230965966602955556884244947756351215903847573720957582094000311511835475307900006383763615574501090155956916746235119604313277471053529259074744272825958259055453179949980225439162966962368403783603055122950333453333113804211179906007283214836414323435034347899780784975335082559955870157156520730574104719080070759307686138509151247505367010104370060751801097714154519066005874991979298502879772150802539514984359325706907847167915429963617393545935398888247966433718409667262497080536754758385320989142104688776798435443955922462211326742741216251220439019011424164821519851560642035977279766985929938409451286212352390079795269380645549999576620659833385310242835961587871845205336974570540481802005368046738022738009200227811439951491212830774384768109377118101453039892469130068165038050781030896379026211460234582704830641580648005313324790944790451094882679973972447980403120151925819078273094693207065312934036881652239684797071314564822418472309584349411989726605090040181968221063255469305702037749250005685183273318498793796380649991814127677739038310049347004053221129204636443793983494986381971789617785197778832833420728010044527736843691820167892529505882049903521441200153588612344740365988027453535186404822619935814124374462371342401797508008205998439571086226127101161709921317858331467174534394867838787450648799956228259299472205308818901661432200533010028850839742447669134792953998494062017237974031870939728489992203967280415159726634907057487258446462132093945612938243320810647366122784148984046244607053126637640958584017578006080887289292283099331980579034702700662099368566253871864987678142856226125697501331009858026216845962013295208753879122377827767094233451970046684969092966899838105082995400377878673409084082727969013442563351644260510282847853821406924300937117055172739425755606031806095955339206258237616302539507355483559126092376689923630783311497043201798927278517342199641164398936539854425431594750379404647777200136818932460642853216768420231665528732169216215742513936233537370542836993730619767431150501427100641816911318221757719729300858430563775517959929686277251697985598074698592482745091038117077141978918774256860497261512769047652689437627545754424950863778374552869782309647004425591239652740421076225602425617324700851884102821933175088278476858537936285258178917716415777230431076632788779848255589749346059294535760269619572312126916104711552837017388683541383229138343351665719028390389449395270800168608953101995100049129001378338086808760295189223563095937965209010341754433844840306553239697910347706447666818064556894627200930359686169971188634993588188157287090957790752524746893016712200090933042537706334518826783864671708214803665819956014073624079008673398793117714737488541320883774083581828401870697836477329928010025018381674660077344864758011884540856693092445211159802946338649725455817992510881094908879924849302851942089824610587582127808781578858283424921962083302984271550002674801252647823745532044183583453222082166898823836630794825553739474706099629003574506306472796737151443835193295606285898668401513764730449606880262509497956238622907925574346701840055744740858156480682527339043441088853459034255001628105940315641302907980061825443977632829174777106515614812747797885023251709904946115883755715037527976030684671235485066665728674469469050556415916457089051891325159333114414666141000583654685264721660250715830298546480488840325211023199067282258119880128689736402403798610272320344737622954974410253882590593573553489562261464443961800031956693950705310638253490534223056714002628067603826201359351850991838548901269887543412427966470681073615671077789216456786712814949865561777263024879866831832239327167141192203299607180422415743414699722245477654429716162360348171206797534970277039957374856636698897552558491879733190922943140900964320475804075514221837782497551879609730257243693292134375821880672026991013346766855063237870829992401277938012058524069749214420447136381010729169841250198734768031903968909935557336054960408027179711783394254098551881329421369729314525129782948870367682226110912761234737807436133260145547251905973138215262614900224439206330145089797681899829380064357248024790465664547208219114403297980962934360851031967177418266921316843640906613595231580258957992250843258219126007946713619285615843006060194232832886168536119297552428209097297423511668123158952212727522478560525282019097989652642362316265999227898872310940346713460989231472554560818256406245502967911558620447545151915737623865078942119847725976448647717787814369561356180657071227413111236217455054126142854231737831115664623794942463178200562890116689570887647249844518630160221188960321095878290858059140711983457363216248793583340834588201572511275963762904122098704998524079043611990945129487696410827260257512705490202801954490657525451117527972696869390507813532950052111971313981509370378526005156162203938838090770305026771108441603450121566075722066249799268876822579669699733745582254209375420336858020881930493658823605734078411724854952941952694989072220598409305964080859960536382018833022446032107646428022619166435746134755174780322843401911923288475145118242143590686646256547376529190672067925564725843775862259974529897565898671738347865403676667280534194814216247812636468871029755481851637572852887945809547477078873094122052199200080820116296731639551153239685416896497028711077493092914845822720099856025973897435515303890935472764830163973354686174278567459768801725816795779677601335481946595204044911120492202267407456648138191890084770793427461939592706642026939181460844774495190786265543666613340143380714863478620477409182036380133208774246948843841579110247718222042393082175148084604520875944225668460397148002110907306160053844338539213996041259102009433144205878659180793538436002637973303927460702364465842615345186299366940605333193076370145800246122992336849363841316331285536454824592786383538716235049957612164828223651736949158041444874809699384213884403997608666731218246695052483285673542793162222879855394597847520954705509933323274694938053989247270290880446547032245914685202287634611336427426224902265827942196866971509911296269694941321426369688031817665208351570206970768525706552421040448326676642308887120764792827964994162951850533245248574184248904460951371895936801813041108866329649483892424353080326070669240241658945541666036858227508887169535776361476449417450294630108321300190436197365641394883449019071634921257097990248505683834387937066398931952581634554738875863181709361634108799012962673692960328365315322513548227168275285908356533362149370927067739172074665327127222013352547401212731567568680080768340446818605594885438797111184754524149246626340130271910884558680448836154299262132287490668109748053151457663682320745505511664737910137286319661547112560135340429534878717085818655379754071984046209041225234483991597885376574374967625380666684568962425909748199370320339920239871149054931813439471739588605556857204022263252701395447049284739538099752961820587813729295895220208416557230703859174697387014001494140653455715449430161358360480343513892467424121343114257882488223595373347449942387550434280408446503897754885038798497994557753983260406124362284403071740674623315015838154253238592579545669491570982525076306678734548649607564259705703360022694423025796539982923571926971189101856637737390322752387341871560049134145248799295561586409920748531773733791714390148644723668467978445185840434719263232077095346705363543716330004354458996367394866516392171689482151112440356310938978183531840967880887252245313526937036935705424681037107445768476987160676771598809784937815932279201074426499550032421556095486525994733200835445611512451932144426681852895834263136856297975622318245126699399194676048468354622048841312331670665432719804106413948437460387599977768133381134016652554556531819412703070427716929005519564378669245900947668649026159676760775501601592514537412780184647824526227973380532979968248086787863003514873092377533399577701842014480806480676389871085273092512596986344095124973474247109890686787089207241463781071202555986228416292614738528334695385388104639701071782399885680177953803767246360369932495028101067714452644855794308932535465311111228055417020002472019415213813511462182379308045351060633446993351220030411170952893762295031535276545359809948398678446704901398049730498504872478248014857322640614336998741653344808879592365674016162108262182513097101349333303853507470209176986008248745628827597164789404139988494097204549078336145362530400468481992110797573888228393965167261368953361466957823452004814101942991720475120604987155192836136084260027258590097230270786443154368249213871100439327994405984088171673490996654765018703426294104187701499488653141686602656160950046405186368121654728360408603146458497601065111051863976585874303713111511961815567076762991173889183542626819939334692775290588966431842856931991379257288929302691645096269719455555251831309190731800815751729481780758824513990018111737696144272669673839360641129196310350837679215125231668577095645818125152914574925041256956316743470569287614425539368802898801051056315545364295462258358518007362430094046471020859782111081116387696638319679722727873736403879771288443054463827926026088649585967033616772470105116285476211923565472265933211485591787000657974135737720543608863265583370715033716400537467445732066867433027615702536295850941618288031728568517830863232471140399603931635823673107759495973707303338756076626786959309626398916340280897945921582733475127486105081797313977439673279207599041643813587506464660572054004705407971305430073818614197028558713374195969228304556544824049361612278681649188276140097759208399395829205920193548995472526233945634662124480651008047609253851844416054045744236322442890827401303857696321999426715271855445138072775662262034593519920802405569591730044891534824559081885859854844785891784593572108797274459214302909291876810861014929627403759999818174886164331081766675776557785528454096388090082313232410584001988281119569507275602351425708520126703947007371552480825420719743598626966968530035495452232567647477457550438210369027002739846918526516802743790306901852464909614634319954604261575453755749258028868966112111436068739981448625402898044005567294278993548219464719061076652664256515857929719122642494466516452068914922119068753632926889535945104951552206529491770484511343913838485781816112405633128683573683846064788248833696799846259235956341365949432896836526996804874022267398627752455905676589042310161701484480365866699305746860261042946465560076768254405842689221834383895248899864019061979592210744505688042402095936604252706038704530569190362774978069895806212089024738794488950877734298662219958990473886287502963291614388950514730557635230566897711928169441332270487773780614548441879689511707720183422645616219542812560195927716031937849040549097810381941111243074320846357951148158262808152890030766338966625029777491725181105010508570823361995758204936301074945044939523260552159108694574804617895151982789764338613525210834499749786446428635882395445912590475327088643279305835937928730055346669420198205015997414594574076240613909779838591983242518072604655940252492266817246103138936123124357541763492825362391091499858760343735502823199913594506269176653012469332206150148698451282950904989713158446258935967369710515842644834906456549724934345109288852640828252462975318622187122678633452014235017890111108212721031517249441816053493919147000200458227717604849160985542328439864816383511192525519443190367551322073120975922371708860264005492673056358149539515017343178918235052546761387652679362219894948612497977316008455862332476537889589909712511946833102551714303794393781806706944545435541238389706617312049597762670341066925416595928393005850782832726516319802180650086352524332649123700176025208270934661406643503490074078220515720932225205045975852930916465404470634584920720341852416263993444179594455541910610665271119273452372279401540000738616077278589829317888135307158595520595113603863959762841927431189288177048602249516314137590227066201102764978675190782207720199290277170763846442437042726172739075318621823878000581650482799405103943480246238659938215687866439821038045808863196816500306100434828747725130193239608431653824100840653419327134225750578109914969446654550155259575611750521255363871963315564216975155230527823728540718977240458705080446822234217459414452181535958421256966368176928407427242134587542005498044828931738843937235453020964202342613346051856069397796247309204403206455458303942531368138394774961991163270899330912443162854553613159368885434789584757715739868444057942824266874002747402285396836184367751029903119531591974152020533756078180255577904062485686078027529393581855736839726368411392017917823435476325330295997862729702871607147335848794319896244260392474293592709495066057587993415690913257764376195894530271717669838651731384961911854268826790210035919395878019996242315880444263024766380731739874592334475323892523403911490183566176236963127541480902741317723559763522600072525232726610408478485145886920690604002141704147202061974641634726402717189094167653964888040984641944936321862714043088514423630118018269614256769915652162782993909639842479039040829393235512058399635359097908576289197318407183074515785916555458446398375880052909366759152954614140864609318693701310247319204260024109795126084156813935665981023431706418930931315408846216765403753596765817262867864039044900178294574111711068141939864248133859546531172376405708089712850690031672042237987757398977139763742591026719025725629507263290379445026208858719076314224727863163048746109404237751987416269407978789607683407291615379439165654042941203322774883810282567775209148641146015642549319831600285862928402558906608215222926862862738542010911075215561870003951419574563372928787568134086640786740934966069483929148153488089357145203597999497625711654505284207022381267742658004345429185848314354204795868519917808189722872140580585420928235641171210567571744129053681034838986896976565588290503332069832728468324164915257184510384049152362407246095920782221538274442600981559699014648431438401968820158985125437781871430206939856918471129320660763725661271902334526457129494264742919256129848307219577548467099993384962562865765607618792643860289428735842082259635942617240975986342172335145511563326705677746218014180096836554427266981291254943233175791583278618229574330671979202314453423726037959594863920787533402260438290728267752658101134942704818166827947946768322298707112027803310927773744847805182335315645225033841976256678571139394439278920322885395581859434512136660659214955391534192836889644472286275309422466902385558581243332937723982148063234203022016171153076556393185649138478056477861478528538123845652112234296221550072305569199617918365639594578009293583213255762907666819048582534652170709557094881915212027628468867125713233665914878020516593258296742401569021008000309972634255585647389249461055857947486579748754514984373971145966384929163283589033722652261088545310039278346590208320353937683913547657881706941168277279839070966299887895424461719907461857053249248367252744139104714302366772427915382644934644520718372191665495028037391121019826926754722277646302004749472846486752830595575404030328670154620010643658069763663565464021303336571942436959480042744444288213208681157303437902754503299516165329943603652091457882047571206753553928020237892320368660807887713486531894870658523620083216254191330289007225261497254179181221297724185278150570205077828850467971312882954633147284762886463108283520022310138293442635389001307116181529930717813424116843328489430371771084648128036943629687393590390485943591428509303456628615728183865037325769947526555986945882636452116509028610162537467275285959240399593316640320188337829053129141276205034143686452988607637412568268728054141895973134469385708153174275921583665344814579179032941496072690243276536238622422441942322383722956720989408338032742485155444532824329261265594149222132345842796149726927399317125928919093964452991962370545361183121270264086685577313979575429076574392924049119753007335389532086225297214283344101465359721799734941961668005935472349578096133656495429422279677705913352699580866246536281890610531413280442810302102833585712104187317388478758601510118492167043192619619645200777018805967263664912880759028462445860179449109831178419966242618827815898889717340843690778639671297340854860612557306108678858891359139926959044438058091277983758820071269080964878725489370139332651099004006891276300072112734570843649037256145097846537483369272798508965152286663980826034600177304346049153617873912585388618169451221817614263074967378399663370268150732194342804602071870735680297766656909071933740956934539933894530291119367260555473380837441007216320795184337005210975835001371269081187569303901903095341920674739662458121813368537185427672512520240151261167893673873033001164366708814855543566585134119844424418217717930059470502381495850058402101972656346040495060787924442489146737395390815017556487935863969921870292917916214194074698045352241380940624756544166741975336830788540117887851085949394637633450240670128100804070563465361150304762386884695058845163221624084921313703710814665572213203799695933906139177406704563141590503804303273307675589282784209425678184443438442400901520674229965355722013101580279342333842097683097007730769142199671665585004075391439883049523739510743761702134685105760581836251621235084571683097130341640433243537993174155367353345388130137566409499958303095044942676427170383089197528036024045021428906647949239650375256434276341344630211735600986812707308289317759424174062562966137227915823200206385861710723582707311624275667919650470624174519529102582545864618971429729724185665113291863607132951899854480598963381652176524839892780050258230772931250290998873824481294107198994420757668222450385995122578549922272794762178434301969728630977918578384531643009305525234809475888448191869547391887528643783896701378605910960373644489441992759877893216502323572630491981233417106132300164129242406537404565612446163253850040482055707450319241534178364406605140514430785301849762268947128578158424942008255439994003947899128087975176412379848891677441134360934938775773462751128296783714570635541483094681830426378533953961308655795064786050740838971399048772108173017442292143778405844004929060476865789641517823652388089885175067004689861237771903074112371707015697554721712452026472660165037765534662020107331852495921578583587893543675859974498576519087364128893059058584564832948210372045810518147189032799259185293735491566250720218524524597939246835343611277194584234136902376615013932281791523742832006534639040593659813742549836482325074939392519725401436149770466025584340997764377872434228352244140912113170116821461040306047215981994588155340667409028276909264372176269623124249530195103197560644753805119854646919248342912371754375276627644266063355026713242422892691139954650094062385792976259411517980793471248843624745632568586942102052713265917414988233309669866974800851436876369125192438684270708652840706980806803635357018370376474126565353513334406201635479014967657069281883424456629447311531917558596877689499167128198024660192708347528552061704041909166855155136495926905785420510361963515009876877092706895370364566043347382811006963202826719488561692664430718559469258898905692769070493396167336764784799822466085011213764090430162331255709846360307989744115627490909266698015723072020058847243962441386061600757953160966664444801948805819108409027307818547861402829548052414306465454111390057731590493157895446882996969506148025985387362583807734042007920630994905611809470672367852711301989590914542294818632069667336130168328021581503124862007367283175356990632208389280523539794266671769829153068223506621549886911590559626012148591904149420521080336799519456813634153065862340424912412116332617522757024940760711451078308487848035014890983268667480146603399793702846044107439998282891135107140180875439141133321543481080646742588488206258620202019758975238359133133331507006128769748670128595268471139793235808879992808119402280557706621474606198463472223182171860683724381807091059797442653559861931006859899292416515154478829214782947820340909385025823050893228231502720188470924880171410740868992132779932368332735194883616180837170558876261092943404334821367792576599009609441525798175159664288669935957970343868428426664545074944715755861035480279611578280918499029371385169944705356370747288703706382345352241932539600923329624596875828937742000716562103795349719964352055593841129171311992594729092892950806226750901012535861053600923104765603206655067148625913528621946077479339694826647872255778032364477057610285013801035008502643032278610750803982780909859444204466649945059412196690100064779692123771693131728589755154803200399904105973575105357085777891557817737845516735785954213397334593345026754319649161257087937090727233964778588535153732291894275430335729574083561221610858441496651646106392540291793839692864277747713778704746987011666806404442977160307764836431002755234960490518020264954318352458729200573838444161858921202161093283958997357101683379267001012665973929246637376791781067994272075435211981900283911823822106244359389280716395332359949423934534349142632582076698073289557698043697695930106215310665408514151239640023717263615694168971573844525703077778702374629626581941847825609857424254467919914779107158963112250247427206711412956028173626396099700382405863502531529355281451693768056744559598630006663589315525372268062281402513029393910299993574655461187558057655215809320924244700973340197393608350945359370356595343558908580676430888229931439446886810443227179025354447403817770284948720742269769314936973173690429280206397377162317567827011270348356851853333742463005817615861144818315016622259578677923176877660662704726396075748422661620920207964023379385936253424642564907247948458593240633057732022766752476917705650005015529170811772830701976665685510645718068410936117139758878696318954305462876727635061240761817365535187169804805401783981842481654092654706360369906620749448482036988412238057446087890736999215744673927393084812130320263151128512038904865164910801650769536137343412180894821325781319556156254133885679951040664106055715898527560037370166991497114308509400144078364395869661634226282952947048255909418406965740086029924774145056344767960161590605900771673489473147147926451653112505001374431763643984263037523838348362114897206076880485279297263512362120118793082671026862389320123241693641637949015417728171543271658469635088864874550523009624138701016000506748582010284691546011100903459573005592534993791022196450713678222786137055569762849088073620529566920754773647839877328679196932795670233241725522456657484685572737857748530097705157533547724124046456237305295843049717528559908911432063921053838760617652148174970651319044319618476180495128129618158948866974835606477177324904415150081586012506306824191954763698758275150162130863461390196948690934861559217489939717245734944922713683972750679830606769028647020639358116156664762155194139829333499219050686058446935248613950904466768240358248940291411239071211346352329050385326699579721411629436665451555005022218049363942655908728256485758418689013523794526376736080857055897899140442630228455413240032664274925055075460155312469055705405342838457663979099010416162117301934340664676397771438952749420209174766824715085824242009267704869450373398264322393874832209701028631042573335047495290800719015911005414840743232536229603725418022319067629094856990086475546841347606108964950909322725331174670817245428506620674178822097883917493273531815347562704696759009103424620369285797215043325950426757748045507153340999698104906950887022067091097059025788846389466384265995074584983882448110851859771335245244805652828764283727420371807653814436015039156910196677807216054864075515088090688541967947634757604053635316137226246632695290071568442250490744528080088651570260887855628105363458173128021223729617658535777662519378830401596670657127725419262271597661659434078323534859522690812253688350417250283741251049656449400842867847903217062180734963058018417753612755588017681825992214205612786200573785641018372045218664821902944355142968229896864972021398338907589220865334066991999137751560867502166387657369342103031941904171037014777677709023678055826691466073847214584663062589395581313448208908338488981524679160011304739237746138369639989882357515813785664979592204522115576709325722927694553407053821200385066432118620482144605255206910208145359460552116441448281735122221524593048511368752581227606578051352437815481299166564980696297786995349663014393056894704168393624767595875869025013860514546408592009936013132498122136864468205062523671100197356247399153445151361131025164114429014101485739217915771233699155770424316594223502079852144480683457420925149541918425382433948543717489168394087570615251011761551817120267888180761393129156496465385466223123725602719826252712677417418832545209469538952765273842664581587712674385275557681083786356211609076292620954424717341879714347885288000016825514125975030258659050738214133359406493762601603741819208293159728664746221991980825742403957417545440400769811727912718532786250180345576997723451708981135386612382430776509411442781976013039112166578791248147292706119408393121015020260650682192674493132808689597347047989304474304963338660607171930240949682929772522447384704950226723300930820139924962532089243902052332672374850974301013824293340843684909128113875377335861072445998445371457434367457568253293992400440739018005533339845152512292286073104912294583026454153174192517149051146227075841023894153319573149366989741497631519661428931309203482536983307644672268063919376175601227340126199568273419570179220065701890229672406274220661561795324447464708426554273452104241321791793415864058442215859234149276207099002466702539990930833206437926746664668604599421684886790996394953400856587558748369299463948896552031821531829133067629388495746456320913093667467867653735689301348745064731253749266351961807595614348068429811779177737284715777736506818970703595657940848652968939722295811139930202678849158484810412554196682585480545564363123582387155570193320547143626917920705358937621766916327356282256200744903283476664693747782772617265947820022746772597821142875535410857070754168958527591825976118081255171743499675014212567198511786871370601202578005943077577308932054081072697851541930588956967955218782666154640228834853158288611810668668447321479545243618833506616439157571141332047324765608736853357240827905081227417276864130294795057249656893172028929963920738331310920464261418558992761811427361738664545005070790101797461392882752525449032157526147552478295683224217218855567091969317330869112009710907847313145244389619968488076393210292929283838670802075263207391789343760405916950210479449953029101490527871969139142588595576973598486107751308972678330839010523002039984161155580158648481834991866555097372011405438190261838316400246527615033965701746861619077190088266286460316247442681280639020854179016355582079180149932749057719089262402114522805001217300734467942596650849591270925138815076686201880156898316236232021973593527440196632561012957538201247371745934773277415499915355904850593215277655512937011171733424828285579193734856022263934639740118022048216917256948366676047336958902363548728733306326878698059528664846458209685057310555079047540243026553508134497948953361622657229504875197395432805102861926434340359247845579576868261495959423011083320544867130774417503539693430542467773029859358560235666691183868402266288943191690773694534065021733798005410125619971205428259972904119488752339601880083383960443659831268599709296115904672389894769786792415153559771608067191752387838643864023310354964916083751334901260097335280573412697708463299731429838063608761133683190500974021027829198400398763882459327657849136943057249876763797315955037467085150794485422555297490857445329859772349023810532490728842902770828444884511727203828504132124955129299058113667388587641333718562796268189954470250647419508180022161090359217252115678010373516946076811874893387028477954200044352672627130162574306865219200470226181126257609908063599618742329438628575150447667816591881024965880743810616789613119666079863994411711075394378844869668394800865257825235116545450383249199782291505397914658045928115113798463812539126581855248253459953938291668266934589564105383917191937619947790645168420713900404460019260424706574497257453997219030137721694164349198876668120147472151942768802555337324138829271025703055934344076119306605301922678292944357448722191161930157904181792545556095574531153864152638562883882203037386999165849318505628979345703264872059672539493360245689614439633948656341020495746574636893101397225167939047892719913022529274714348675643442738052089521398968135863868256262828787006747272502557491665077217555746499970785344482935704340377227641261483079396139694864107160651845274579832585696141768577948906239813349851316184293532030835880615598541802656151624512452838558251019816276784545233536017252589224259157129293138193888929836116386647130870525984157537012025352794691313111424854010424692519013735205872054833577400413154625568255306203001219345276520074986708021255287151911235713387001167898702169376423258703167879795473203506416653900923533743234004226221330950821829550946740134596165585815485402203765218820860279688985518951337011497953605245393136611960455162378089653333327861547551099988243558649087274931915528511317049973335737695777890576872268472860584295512745898700528628297568188207356990764281484628619227330229156220186170623639990034407135856465870848066535274667938006455918198076063979137224008553505692405800732789560164639855885147705875657134240331581933203860507717472457216227421071686084262234977611640560191040511635082790842569489297211738374162690967796142810344752750541590852948078118106301720532466670835340694496982649434223297396719262908686291068692080389391354165387701584122828739013844143657431049076648008194732942973397779844972716316331514239733102755221603155525218768426061628837329138087707372975383650468501407460267391472458100119197855010426437491141086697739512054290826334855316964395578164460681744165614356746394990856902719587375500105078753338835972660341152457936792758242661179288731643001728684869554851448091015507151886025133022194885385299211080152791249874587013687553655011960611869955121651303198801451765971885335895294795359146976090303575250071533833113562883586589796022392889595086325664775075808194244068498087076543788061183908041100276367641205778285432154815422213664853418873028081793363306085644818854963329170400379453747152582139253127589226174401722358943031308978342668551841128358803896018044516988081813454773621191773918710291318224584003070623924797980626405548482049141631224785659767795343302959451350772801631029563041709816998109624192991253812074231837551747948975321134593955562464935420693071363400927147677767782078443257026817871542438956687700793897964541075100965227851497847165617073308975901735763567616520784001678071228977869761147705414491851199532251952090680777926642865160510806086136977033598308411520292754178165460077976988548984034296903293230844179190734975309310699915458456030408862802973876309111147449989000192755535409884887629290229670130861093680191144257516743772682206945288827592461200518590863650380183383941927456973925283613512771612451834776223239634885791871156774977234242277074149514594906851563399225312321718814219183818708284363001509387045070113304453481582169781415958345324556992627716910007509638557277699512243117602225550485498122606651225037751291425392316748302005388428338885669597795323216700518785297493042248713254594860905125046090221991492987825647437029047671039951770835272844041547474201160958393696152436050692731651747317390474999142927263234218342754832604505356890591115768486783867088974154313523513177191658140896841315220669077527211389866583756726004079451077138288839902052211919654680375652005817823909149853652251167825001951136378001555211114517266750184228353244215857128064160137432852489002311016719019754115002703856007547993233355747464143722790886702476921448398303592824495568956304779561436503934228531949788536709833829489996199944514334790126848798507688435755417885560677334386624342612910249019694642570401205057200161585641700803313346681364127537482263205004207335302106728111756249115082800740084417083005755156428608518787366500795994207275849103899421770727320708093682540298407060587264816614285790342417928977601367933456174642140138391714138116867415580330152222015949951254031218508249661969240847825401733760854547766609199683349468001723962468074161556726011348435004763653749773085449721540372392249945059847389480748716958382114727203974476230712701869786882709202423703705926526872807469689084687619517758857888444263786801280225087103398076309046607337626450671258567999502438540903984442375961403963833000760077028980230884394259805940043014656054115443099374002809175358800487912225784378759951659103299788674853638529808363789702522577113539807569268793505902115414199329494945299240049959908899922494660650108835853213810874957681049393046945275639582298627681917396651855669204071742458199693357313908019550740701044130983167622619920197509760271939896560291443391147532008722948847090724271984807251092632075915763727623266545938809476743575135931350333109332047752763814016558277262501369218013101155040768713579128421660740305631318960662739374016163499334621346243810539672530699699273522282005351786116012949093895773943631039477584886575088293022423614471856443582341838998312379342893281918019979078515518774501073117739081537807234663328183378383257278447844462882066317863423293573734948296151841758519809897345432932011887994251737714637461403806643763855756370291353791810700142571681868178927695254513850402416669352816592689752847440443914323960818087576659337066595561443357194986413332905924524045948291096562722129670314287197676611097140769250282061528496157898627208389121840946177398427077009246638659826660582577345933149946838870391606864951272996465589667983803043540137052533955079597088394951215085865552361538594506089468819506971733380353472567681753868892404382130546538473598610273231504436521404351645046193200769701698090399480023364074356998797093229484969766371841547132564198397258066096489297489518393622913015348961475795074269456183371799785356497371483829151318181666840960506982518692552324616180378913946729121963315520015268998263170865864091816127877263521597848019828547492906280575588561811045750681409903289066939131549837383075498096601289936468033514770784792383892174776366794681097211803941784339412218123838626924523218800641690820338871666672508681023389981126698476682872990531329107347197422423502400332699118383642605982891596958866482863107836472364961930196773264193586754185357803375174036291957727218003705101915917390041928208590313778917193004649056520101831534551010297655303308296650690140774072608274759991931113708131018277429647174747484140554606548091710147718584683893855032747063294539703246076555527545724402606191838364396118589437144989369411085830211465500474005955952263631566033141628606058975311351106817204590973494617033794274178588683298542625498083120890017831038544592885830672414237081978575023648134479158314621652646386478487825559315009272653738556123847910906498561355282917838525434928961324885832415233994486479723196818739647433474632670884907156657778244638501482930299727167410551049092188359248851708794389279893913672957553479845681420277910558908546319577912635441130641004243763674214608005019653068369138679206228752238902666218695404018915253534899168124873149202597895793338299441035122874057549526198152558103464178836262896651839727053882694396354473202240999334232353105566951496493856699928810524349242836871105532301256699612582032088269849963414572763001662254544999351670979416996607037889168335870772673742325845412570114867084898259115136450235607985513203562261750050280524838454975674821359209554697257005855672043333452222972238771497114015546340765248730386413715186919762330774799809295155229669564560869378217438672495115938106209959652262652792652404280424342322887457120730414164834118358098984291328781953914458402000522725996871787315386437044266708488165939873222894777437784358183293582332021039099056400734118356467173432407449459717130447513278534152923932405351393718916591207305560478788399498046461133754081879456986228519435936521310707026836252296171777817451204522927936223860260845923741545996495498529394410207347817080028062542135268813936538496248002171243047791946375738430510298625289035044488519301871827023952092577381973885779561651252078301535757869537371083487942799262656089925519264799267419431950492324377420125403412034676262183412652083176033570974966257431642791960823721750706093582383550285212217077097604570017755316352628064972019106355156142922692063296782295489684107156262783662840621130953603840794996825249661444276311668723001111361984807955565038191732962797708148886835885000905280321183203803040204053269236842945871978563995835671139738927316530928757259790760970767556790143874952492309066161085941439918324364329737791736909463008288714375616256261450221668115297592074822271088360830876436090545251501137366355009197476202069751987590455047566484699794778302303800048458328844956950742106444605099045935482718429574365573638380989469398048230630890207396738697276522177567327138728012920351519716635951253298164059155302215922267212147847083174332746791984866573558593647294970200754460140205590859008901119407945517325771215020139289654455414523039858103982680479460426200833547528136858466120157868057755089886961417038422184226911739418936361609979267379965266441241723451149657134694737623875527013394021292816334514629320375934482421677051521095655375286133598333651279431370996371213752110272749356435491480687488705966043431928482804494815572820611209520219301697071701649472962693830382010563793525892402642907965272139861708910872595157155670576514790476151237513745895186970503701496787541208593924932941127955282860757499455225740768155456221761841340569043660194333217308683188060052655862448864765025884013005193061639408374931553813012405726587720559423372578056042628521327518223202717021381925952393131494760197751291659396278723617938048860066723644684196155614700354506227681657839330734293876319285298612882087531003829322783390934335273520344468157741858859242337245659386983828895264504269977382738428187696727642404944382483809807886385285790665377091373066722900821241851233559689778647351000178427993612226065976131396377419492337391747143948143136015725876015846910441410176543753340203415026366232594740036248657249293605949592909438417790284891178103551660789281331904735539721750103772976376335030537162750680025147934244951267164635182113654230755472805647260411366628763088214833448443616322743193429066072867953897949636180313724573185074630008229955590696301083941712118084091456983016873168091417082462742422848987862344304229635886166929737447783526737091042385283326565993403429681099308499551266132842330663522553052972841682395931493239105216063844925491568993645603812093352617788983095716565609259770758286152806856808934076693245670684410093836466839282718778462816009573362150939560861431026105623643388963742741493777437946633604332401646124763224982714878546950522982687022375464620270054397385645277607790882349670830637084723276654661002354842888031784804248280419030766190310399947956990299679216319421699360874926551130954066869278631320145698939220773277763215713372599943484760288527761100712873938059997543562136775956425471587211847308225443342835581423202690420039655797740566343949433792165934780877603038474435711206594849729859449177202604698162092821261479631958194112540998606830008893286707900243686067138583607172372406123743563443973254575658561230759024337575726803518728933405800388379164373935925443645885571889669592480441134179639416201003063023131277310546972085727325985422447233292762640223478009522892640917589496730657342279652709895208859430986281837698453506675018290508090131356941521759067453111164466720874452649308763551585567632317159016326195437675314049337915014411810310643042791639853340192134287846733364518723039288389035609059101518688344058297542716004850398668952109221732301238398786237585884869957616231504349952604269452822317220590277268088844909384450404892472720665430666735245639140946169470432758536325417460239402266025866866092569932778366252754338582753062104748519439626348594037417076596019830880311771982921745160586160704634635802565704321124345444184535777797691885873966757636768759740855628985695994537665233184120848994449707579443106795276983957570051852633164140198901549016528910919113070851848982524596116508484272245319995044682193568389163324763231593712876174379650104355840133356644390048844065517158580886892194878783922590334317700780193589550218609589066793069965283621157591974342175520810707345524111982362080707764998662761452799739341645720470375155702511333093813942433791755520964239277461713674758225305140344686691058843754189298635014178227898939308588454495040004413479501850200702525831688324710867683398638334294420931265493592637232036639170410229563564159603516316513926648873500979236113716277903696821258578007604233375077072079998263179533472994122803459638721221973034215409161383082507707713397622764601994586296354085744343812875656150407986361650796297843818143375483371568615538733484042947522620139304468501601770043783275429048347687285928106307182239780854813292351967499507070233431678843793570860579767946586604131541829541728020609218702806743012153918513290452667579908494577892652013744755965777681130600205542210746255134553513264814857841377999124523296897780233827017729460500547340927174427107848540229036576504665929968090919157309807192697255611924374112162011993844052955052512898281957319500422290534727910093689500696349882076880236489467080735348048697059646893390461577598768694070718586192135461339071238343108629393611709134418555662368282618606007249428782917137380919768501039475335955046676002500443914896644406486077585620909045609506089071773544481415511185083762888483336693145256216389939714826797473369273412679488193685942632788604500728934469966835572955240481831094358152762543374714175656793994481757897122296766893384972952714297062680912398417538240206414941211628868358312525189503267865785548843588666054377545922754432661750680422990036108788582919828805035441463798712013659253571312517872462366962128082294892325431086395065203031588772323020869979923501307528754555548862979875421389482200984980066958458689244820685390135227231620207316510982723213625065232439523395495998465077795498107947106229559626976220944578081403227408348183948685072172678546751444794712048423315379787066339427748705493694651581024384840660919555932357182532293922404769354201513502484896459261739696029663206797566037781872290572431319858715609976219387291127005534162745957230045674446430867154150445058600618953101995005655532203255857021120077484397479184097417108047228775695737446661315116300994975311163945442225753478177112807114180939252273417984202459552157295381551717051409468560549282984798374942197749497713956220088723504437200321916370322945358201552042031012463337177735481697662605812015559977696800803724716473422771555500040271695435483667005870305133013650603611694175443205998563529007988175289419853541474560553214577896147408833870515566186968020707029793731695594230653343392880859178929926198775419920498125476439041584748499396254854362663557684376657665149583292834503763274787424943783052314735365621571276524893347073873919848373873337223030483032732514312913390837206729051368383288355986755602122229532823814683965759316634340932325526130581893299386880991743598423078482575610950066407966507246765485040614524726417332664928042691791672811369117891608204338711426077086934244388185195894694822758540978293098951596003024550466201945471412056750328603165367170679454840150436369168366945146836982996958890732981258373417555998089626130791764753391586042225153912639248807351424549750159301860280394188158612408062532342411126140734287294872667681614060938266370598964081483070906700189778845920382855110899041941786960309291694376262542221193943936157711319269569904962780007243704612347562240511183222808179237558077898515762530045540150879828279545132714748128395491677287604183693569650263218070294051549240512800537087570565671349821178375504726484932739438271246478365730187386226951912594858966003228582451639251217401340246898746687863995038530531536657978135912059033790235964932050582378580512014232877241168801117694864578963361651933742000164625177528150315968357194703875453570912999298863307310565522608838105452435119466928174869603082403092641065622509573282300684393210405153944648271598073130996070824736075134485707581800886561266266280447047122432175526645391885529376935921324231902969097102937938270510325195241888310026750377888671661352413035852229688921144686733276063914290041193149707792454368508268330264258775631820850194816992164005572268269436151645474262929140444028960928880763926719965671868771239726372586483659300272180639873894388635624649184404442000620642393046792134862979070962917840544313043444940544913767435073738070106854011554790027386310659486218932953209689036866158354256932552696528112924836855831142253258540254341025758603442482540600666109034326561323721481778790527891940349896825246574787369305153088363248488044606899608744492778875245107863032972911492933842764692632242512892738260617378557720607864779283044495487052893617245938683160135322071317641916982167864221517459808405403304357988614937259907231494626032737216021714744492036137557483265018535957209161111564145679383353514203249740143345657722903273820434604011980682995653244119858864889948817457035462458152175837183716455866534425809046875896773134598712446763405133854163131810648577374530871276938917488518886219011644785679222680497279257627281569503708857595743791253920090875731690947121614860300867105221997503918778322099531346083090290125114532157090672600618445188804830497279621379669474437967420375559568142702076873954616909460177518117963675019665602101151447961588387664362219785413366210700973545075638465007067064573939082628962758066191461224616406158932404957750189562152838497484134480540313697280681019283795357053126407927292276715948484994338991180954992983623042746993197855855796573960880457781109373948948893460456529170680269181542110481295348207313616362894964708174102904874736644246037899067572467370397114150937995862144118744737007743995755822605773895061438856548888531822204036264248358176754581878685848841518259310831396199400191864477551855225537632878129996615666441572742142906590647318494307919717336890879137800260105995102887315363699985594947940658549971730031842902054386171872392906975527876590740375679947874917004743286977339662821434859541830567855787653318764745108402550434234551964017227530109164573195299077012630856056988178548280451335710557238973835441241734836913240723847472595563331725814005274634500055510263290043833808083632349796973416383560898178845317587951795359771021900226119747559579621207012544703965273564163272158678376706209241800132457504342384417138407526114081349757147153859373269193477250937604848020927640435221694619150852583636914209817129387576368762284706103890715027569042107072888834940820912956396266501300365666067880926854203505424335775293766933804662895298253558651107754054574497284498448815033015115172275442943787716666871409162661888722307862261469429601702068922087607587090558391088086632003921756059582701336005104690701967870504408300549993855652944596698749166223599303352971731939623943910299379219958116077187252150654896336417051510888036979178862770969079096105062373920539816756520409786005456827613083898967057520119745521882099657242035336119362763861834348925696029818953947732151818300997859953304643585796389315064298121971081010243961041087249056826773955772225399280142113474395255537390804507690862040812839390453958027006908889804899598211546543370625311775803095652665886236458450675370633748178285706712350173040156218889933825467348045592892521364867215739160890278688392587381151613570879381928839199927920583053566124687491592857401374327835919763410367666476455775138505093636117184964677616180270095855064887760074778720124458324828484916843122792127790870704254558113345886793473530729262057570343741592658296086092428859468706410840139643914376284355775963035222606679827317870677657507047223320048532606186411372625250335533595927790397418726644661798691143666390409255791408695783829493132960371615854795992319976890883718113533999980893152893667696892220118425744441153945553192720922760166092261323358334739174013553478267791131223314016901993385253118980135155083075927121641374425371829647089144982594009318306823275058383785472975706689968269999445657045435637001316429297845235813960422761069611758992221862175006168773245147509089038456702810734822097776676746384131511340485375591605980846355477522306060343672645785818633427429081153095072692793451221354336418761385664524970748212801141746038585233123845787893618790158872897218750114729178024610530532856071395686123775566369062748909091884148963954060183130818081308545882511806236857146900700322112222732620785972053014972237506148211434598086942672049972691767594225250136704807315603246446158299020870182548699548863385602812592915736454112150133133433897571602329695498346616962005719244382990216097092640731801501448209230580890423835540913331452303446764352132197979810637937561801773231180807488967870079122093069999703873289186001013237611943558408876102400049742868895780119719151863469504617852318261090002949754453223021219571863144731317259593499165130126528649610143670331808080057959174778439991261079282389761518073112633074520039010911098853039735596770128579942577545328860811625139952848697452603493057668027182827640622880171367869991339470405133814227211398001549779902718040696590762688866952638851939222587063924856042022963560224860982161576492843710972765805100212664945691016982780711208480230075431847783963252141263312069673674705950108200237528055374232452191232890099218741475591984625982133851075075618072458421653613761874871105584398403261257340395464784172596977653864219123199888277301152580199151226701518182491707902015971793127297341189857460201529344743923940129634210296450027048252194658615514805335743607088527553433348782743264130647803399061215176698068048856394715015440744150144202538334894580761289287143167356664516864747863324892121105032695814548961643047253574978632753517299762929187915458009781614760235467019589211699277450221512012184997801560170685848286075529819181879771039825908806209934076301358087642550060611392778753748341975625416791349872514108268452520126532230214351160546672320002653015274560308339025713622853559304512545085763617089326272929299406167347731052161466886605584777378952018651574572373623950990672993394501368851750051866856972849065217201057971887987393973881476411056719958936600161224486671099398419019054872845624829011748880190520699781819495014244642066230085377023130343356144692664731027703224507081943140941428470410643142406608616048591568935663163460056563241171402910409889332449906034041332884127939341632325761096429566226466510752652768127563937175732793063055494717585954962525943063109145309462946860561505808414967619953709822828495670320946308206155936427385363179348049601872589012758149029408927347291691482770950189173564933975705032718217545526216906767422138967430605646087119519139080237307524294263012099742978607810302205087003273352670898511442910177387219381241206431094977482156426653615633006074987845366316684855210503934946487632569820800924432507357286940060822565008923296057273253029525539314982188506350493329880358034247724588284298207684950188081878259951111048808096834150411567339653109400076893702616536419480030908212061001542908433692034599459607747348068368778043068338062872235022130708893936401411243367771870403140348212899876424610283237023404256464610131700350241530773725028778479314900558550216570161097352771966906123776820724397924794736480110613836444349400866569825120913197633136019987978731673378461302264004053271899872056317934551980053845629521128995166885865145449311013929422230217108121009857167645524869813890032462613265408387132283655248972255572789760416061032947667115275040968995403403432799542413861524289641119287416319166979958674510103892375522738663684250823588859804420626241274461714940549418299213577787128555994443803815079071271321391138625628738506894158645538349234702141638744338442751275563137746637238818527962436677503235794492654085601796214970889371233178743831843230408915196461236092326963861148642276989167128508506634464315731833504734057083685747183207468751103895111427234131868579847027377236421005031422301219381112821068971094846381101025934687769646909951059235066907348663285662246136782062653213261680086179270585027603100001661741649886467833617188415063060059935125823323541920352386409810843387961608489190821689132585547344066895649899251237245851395017997476055670665864281512600619144607360596868540987166788317228623028734165388737854555798650928392486622990321057472951888026003958755396320925385437570503050229563660844653747810223711849278514913215809146238651737378949601233665825877966558746752345228747165707946375375437557773011859831401153190589537188592452525976392644381168845089631622098085644473460324832618899445654809443056431486002244670808461831765317320009544116857030701272897180318113748534140988246411401814630667674942222194438100053603330888354614915314322238079117896625377767950660087092469241700207983412991511041965049309551443050005822031311286691148529988175687371859242122934888309266718479506579314910810825145494873280040958419225619771067902303058583997745919296762858000809561913158192650544250945850429042281514588086839549880942418742896567682425995506346115596614237186347030173834049011616428165286671846326206934252331717874539615141311934319584927851420422989332623777533310975317733656560062970970445272738309045203125788739549459145098699765800985982136928040859393070725156010357218285155982809588121200386182948379918387182017435854414337777453905121758816147160275486136307295846363980099074444037733578731795361032387176939155241929838519711098666649021115955877384880533222881346990608525666730384970305606624222922784418261901164533247569752509179903516127159381982117306938273831267337640094010839649939616593281981158033988399807212735855603396281978371650020248828603081691891605553670308498998414832638964793752981683014703075558177199894134506112864066202702097362509610073377053341574618492114267592630525535198049412381777187983868938548297270385889560386993103205838712048198341224366494389795420623698828665327760615408242975844746069972264173469522744901414019528516815690072651173937191730512586632421140646378020080597556536470292992136661001729694763791623517838587210764281021765454958648062940944541746720292045826598125024526032248941790457534478834224883151531697328471668084681860561916256823280698782879169134511213645787731432522867544390491385812779341653659813567710382410255946026597480438651746368172945696143085040805183063057237384543262153442114775958224074132589271459542117201611245814447662601848941084722918601466002017801069078137048557159191755301707304569939849445871923252764351158720391695533928357464483261745368487612785712834005841367671576541913557236098387998068033442397268975590224498475609624680708747968422864059801144042829983011494514313247579544768639239664763875644426548191678509026664321091201310224786183008143931775986986380833381572257611227493309054475415387377473966491135501792186110450360307380582675743433990084598933462776365160814792935595070797373151746440022135896908693012574029753159226048364338103492750518563962180121416883118421753217033279510261935879293925438508101256877528171539828719438222976641355631617143180491952603992445009832329958855527394645861683211996376051589102963434695452344161733060961533564291935204204349105489912193266345714895514843688978714718367487683278146556021336982833081040305186828723582328641963997839420354819425445142849071269705979320779250694207361713492485480654623073792093714788638256238958110294208902452541186928418943045314565394246101127462184135085433707963720771398619901942591747558074122311423300563897112893519727063139044789609320072007706292888790206469688816122542166302457260547271806669100959108624472804445612358054896102648208017605963126807661530116001218890094521111463671700272770702517470562500982559121471588188727224615159084727195353630797988720325620011911140095104213276607373239872768342895116714499155543318636857051339142739606585931392499887354110211364159055150184080751741451498117489923687107587353418833319080376868607882060330799278100748294356690103661779359978993865199280721119927515680447365586395809640465217551592124946307773802521820526636117775010103895799576139320217292361830443875771724201620310108065265972163367624621754859498038728175378127465706016602517110901546237491805576809295126274098545050571321479862887795858649129284788561335424313556381359434110215676367906253284419839871392549620082783777915609172158804799082170884691820901364497017302855563583977207476513912869220340131995305130168428035056367797758086329889775276871510487354042261350367537024680833283041917253724298630591785588621374077842952336621108674914662970925505715430406232241915567437003944780673792043276434054142130853284975432566808825674582219972646267377311528293115733018532659279084013377927955964700440817744321415823777258637296497148969957631017777385794967450664526058853320120271503439546742761418161474232993584194970603184080465093123394807717543827747033771440668504358795837559007892179143509838673013189044798727889680367453604476347193933801751159478484137247955501536368361824920701338931358471622309226416358896559137574493631708628211825795516247436280326669097577999575595934499356125299295210735073074655486314080643135852801947434926379529869068511007316700917887107130641067732349154956894836291530080770142730427693615708752685912276316187655575790613322472670482173032772825452436055537543925553699061981710636256081276543336009738266305607902471435660449859180009257172161058264198609194288891389451028355180570044316983564719082727843771994220305373137495522748625230743869671573945396165778468138205471655128592472060997568751160935483982479978389728200945010677139919712800661961217563253681337586817738613491183163239686339568884311602297206988181789461734310267798292306925108774523142414202842837342486675753316355342888884759394405843853453981790030673187577031105162233721418192728286691096812722976991446219516279170848173122386952347455100100899108392697634010813368800129148814628322242656788707058662144317951967149584704997802851582151558981267396391263518749321738280968113184945247276477761218967594395906938015479921889484201170154957066669447408864831376389331649943976149775699188091823604348075262986066243913647795971881730868138402288530381145366176503929734686540416491813624731416014550624027885377110421736984936677778438779575847067954129858442989898127476136098088084675571728529285932060503986142333677222851234634867696839135074236065897194032130205534207484804003682561907192297768424479874098860437601970020090196158062368392873014041484179757344998852112851836650964643241383044672812358470065485884254131515612949493228371212371856092673123357895280145702836885237333536207562963711403846896247008469905786993969975988665987589460166885322085419410672083479660797912533682831103261077315383725434859467809421094193617485894938561303513477976833985380891387436263566786313740828294423207065400362487491265961062541273840850187532099781773834641587034698852328417839055992614687281407073809134331658777943837583770320778710548444401256798172375623355152963540531782621524521714911538734717117421689640086943868678278006474543460672916413405497105767602690450168629126729994820920087484585627568343690554765206812235057905298630229679996601642334731146248452613312406389892039868193222742183124300069415839224644641539463354858378937323213101525629032476298638625280572618296543392655295584955774717880276316429489780205473434333911658311297989839165217699690223310022829025340985860859731653673720948782397687643285971103098981654141542719653498671498290602801947615700014899029758708333960134446150165010613199165817903502717344876002567185807851115725065014635831411935208161772294938644309380991574472617490830434864846843765442598629488526558314313200137585841342111652718050054991169451581289076042951270796909827591831279173406871483112658150302864870298116259731049529424492430445742789324048657966448085986434079058408694425182089759595631697971598984361565904566414999832909088501514908690879338928299376536026617156515798362503919048322007171996813419909851791456736925239042762194723331573058739480520296135197575178053552474436690761972208976975496493474985171597087215347508545981202654398899225966369608629447222756574407277596225305508126901308875569558915845049060724877545555933764139976857098085836310313223863704533699175194696097660961483523819760699210416344628801259004557929290202978180030146877745845729491372836691298006481263053127014742384246118433375702998073301360439685976549240834638865149004002062933292315539304294524741929291980947435359401375457294943161110624922827429087884090450962810579228851023549679255458327270397254410141056250419725465737200417182518730368454242627764261659941543472651569304031535661861289757258176039508045696173229945547311632440137765050103096835890432577077628417611074664604566470372193440968645935328568665218329234080276315420882710596732436318243467567712796281097934325607139114012593888379356657672473551198659944769449437888391812520591067749378015357664434280102027050950850700677421787602468174110908178106769826034954138743960960385193496263594435462883021667382034172701374344820681701682253584173365409705406639484451368505956083860411067217477946619710530066756284261908720115425085767514903072255865929807884864176481800210020819847675061920116944425965112259604607283800392635951783592316280714713769352382275375720792459753140937922597163658541716532007463152944795211555597988089867029010238594243165460427409405455550185267958686111617660832243367672253490789767231447664754845472306356209004102433107136081736471988229435806452183181352697297283228404924581373253557079930591497500029671844117424495245646161268723072675569677898289805010439351713314383325795065880432548311261695947765129344967179641106351754794074795888515788482807294303518342753454625273847519495682286197304993719188816586948683361537644809901292192837651783884709233069398287782485741871683121381732430078205007614905079812271842521336184418963409326369960553432167175796117127501771635103452598203422256540768653109430743566712353970010289956616404490484426596692216216564769095817830679969252448934192175890697380686568915811783149093719416806253048932892802092297315825953319171482946753201693531489472830504110753542257373951116775377161719712480123515450669030019064074591084530278401632997321482350972093119785694387075392822883998337655313463013390892522248796980764078851991596949122503524291503246543341881478104777512906139345544527855614489707256036849172652432216631316704083388718938617473511063429414983241937962192228573217960989725484599685725940656401883243759208798837468783819789373186996766957320966281512919651171597962592657335608509886668920303284812493058967003081129659293115489267426479449366180669382803654358057858698061040390733892432738249319386940838517565484469345526486714529036402373458176128254368371637329392385718496648260316449111183445443801395052468775423349846612712999726912472225527781338489216155763553359996437704548329723420705587103856453734432937779498208566003468807548569169659446575350284916725932718266985591138179972459084276401130501445907841221156747236523889982645248283149238445701787174338694515594334599168529263584207695461344957443840675689338612117801279252627978141507810073385233400234418792432350575707755342978663880059816056775377871684956219349933532770704002101725744854465208708115551807265044778424289978943158937611312330277645879740575704248899356452063648586255310483319842212859288584792671281610799566923743713215153110297911806633912075983157575162330484153734933579778789832564457996123818021981227565589153661236264258171301009596411748668448861356523762439840075750491195274323987944425918608290911339785651759850226654066830723874613009058765346613467237947677518495611242601516558467676068960758678135691022377413207383557309030245750287199468423517333759848669299793071978139781960547852547010828532558881349257809062099395105127874233602305362754849808342999317828471956283048536360160023219876393635104071752784474760848881183082173299865881653267669455415499356534316105927734247359927918408874854766939171354132331161629822566471448380566737950948045151805505909929215489110839849193166817541374208525932796170841473381535880324103897301565616426519323753617692789701019142495709420280962702864665947967067240210941618108168550787354352554415586925707489979046431458056002469953556557678643518814558605545344037990837137653954297292664320411828055856431811387384678648449447055126145246198744741254870881762457547695924956961010037843225552527955022540032983407897609721005656580830743607457886575356969242326852716207169760140941422155693295718361566770527949054537334296177953159804685809589750908918105239482780642520979653565770423880455194732338493291362321117724007388945890240807387049852625494819450315945841116479660949515254105556426748051356494682708595632385858094999855379836851235358635048569752037211538839744023563775182676971020551525845253361904895219897360776724743707258480270424865990813820709122512051271034943666735661597220597212341785190520329829104472113305605833425704658387807794772013604411195913084614965867800857152496702316687172643184578700416719705709994180652524623234121739820826612957787433748475087803241424500506123946294891476127998110508236504836390317500552097602293724802894107682787217415750638101554009894821716700103750989105570797991259312070616068202141146156894986094550019900636015641447513252953117944993809180929564735784628485867368822965397112170347869298079408360631862245696515640637770225925140403272924061477609862820672647449530876505157069357848665747135199406636301468583233391948067572650073694246222161218272383775353953591350797655961604549209999988220930728010072686172142827453906749930334770294785791523960749914212352535188842278183787243171326302064045312033690552311589807593165838804874617558637242055857320488033121412603807050021357304239493912407115129076541197917351780004536300879046332290215482715067818715956465835659438649836698898175882990036349189165240516453675675459929196803750490884483145366527933332384384646084110746997351732625339554327081151991640228820125127635146067419856790209842686301609724677019463087718011362083933124887783323173158386305076403634443017620599504787534053848733874789221931330847973676635091782300786343337623640911753174675161329567764647618196184615434395147948663275026362762780803653502422356190871407313188521677580704196805591132489072810927539505666403299622652457348642450203704356892073614228766348609729591023233586138116216312649059982545220735279985354398241782292073843950221916810340836598781080415952349252433330465611812412513252930659829012762689176797360639407852790417691536452250512886979312335827039178195869668938228413942248594538825838820499358960556068350955493305923533675552069220306662824998615452080541065701613914218273457524264665181072333465489905667678521015760555073037139442699551250864582407364400596525583054847657090939797489527298301641538574567405242977584772936166602460356218395293906888974067559296390267450585317888576434674614742220601207494552037163309993605704106934698185819933973513148002475337286945611830607589399409225217185101168963096271184574788078430042591056955295058029672083051585259009364445516869155417907885219957103970992005696338402916868633738422310869219552483337187475876155711142017314493860528463880636653209761292952290867382892779183465767884033671822845102202889291094954381935129560556456404266321712906686479166144649331837335507094531368527956498654815996982965707940229842227297509887024333680541531199423183480872760325610664979134889585820630293301250703154294485521930149574786302099129445465937813345530637349122101459300906674665789929180724353704791190924630650696262016136371685635747472404500050932396410605094687709391376636229235263053414559626583370198333286856602175039189314349769713334080470791577712386465823586726577654507152667464513646742346558121227338600880240265665670109673495578617043335100623938272470990907879377148051631807936934404959767616542035277227104097026929704358024688841675158180821441527992870953718739265177861603103546290953311973794478533150007334575053640751550467068352085674726254602714900797792507753731682864629709821958422588872933787924798294504245801474326966870078615433274124773369614737259037305631832343938600728637323629909572996221047653420234483986064991275430161415254286942633704981019926384142740469692564948474312285636882934902565214789195916793437161136452961022209007218198373776738006179828594853767795998315016477219711074405294867011917014397036317130306410943181955238665241151523945620447357061106176600332100711582494307703084427779560890452331309873084322262974251636731323221125867164691269730519415761779876978792163888196117229296003333704271194717282513140225904698382283969158014193881311893783239880297099227767433675356273362443576033757186515106576954245957659879239575977475451961476912959816151390115665943441454992249397053183311261479518702454735369473273192966202931309879653743103936169241731144300555609755388732321058117034462374613627101268613950232464393796456604526286424952514515994246037678098931611186645520180919556134969145015642288629040687561364245852858208900109029046230319573011282448079601350037022780322133998735107482208706317099742923779644774997127843108058099886974607791056989317022974109776375141799356462070334321498526573791132330983507562804575374276967400467539931958624171229417721872253526742348187722113180405983156203197342971940162193748120096214194459731630944640790388232460788065917147069368685525192430619967333923403225020506892125754178630505074786095459288276662311921043040839653896954365419141048565913737444296137329776936655954450655829140416050181918226421706940355502640790464557480337454599733241877745181071082679209115676412768561156406404094971320438849963063354106851018590740025830274642822024737632778155541765190461741260108157985049736703204722029109970545987583139797164045943605466573469054952167750831634217250074710745276790388918376028028459311220202830814935570108487614516999746716305577151249379712791558125790337306888481267035608916319302371389877937770555853380114240317740457822904092350430823367565733713641602695687237161093942201908273024252946439425574085251858877334505122343153255461822283394507926504645452942987028950029778052049633032558296465935471312795540505952689603071766622864612552285581188670503702072995254985821888114115241284041505864791179788556155832990401459804915003089911161403525765308142234693521152834938433131217461605419853997340054435277543744047818416059452922959231635804727738018315254225022370599367193549578176908283316851024505145224867872219451564810172086214193177008887559840430774632698303309760283192368608183920727567053524968899167668593746092319630927147682813680000023198481832259687612006688735799839698953447958347156188949824330726974524008101121347895496681555171794077586940481439064971918598416373378217777638129042830193222618515969652703355632197984756301912461391918989823686755456536389078391919432944185912875365304118532919373270628142246941455222057778829003133649598921041007504732364591729290680797517683424829428439534307243224413691020878455407000422455699829236962176859864802926349795050072392716072635617418457765223465591169659364746448947224934708775858566614866644776745650343403285305068120012929243034959433482434822501080587272632318512597643012015153057925721959989269851911313793865326861009696101457320838806377574702293366623848336932769883689406911965912638486412108468514824264617084969710047657567114136480383593961700942325293523187628661373751208909580813332403311075625139611611126738683518730426279660930411614439979551657680851602450342405647826031700340650480449851983644272309318255020180458703677187116970428086347018515398793767863771298025456131973875175626729597362715893916786506587112831636414159882801628906249827448056297925070940949440751512174824846574774371118624682512268854218864105712478165390000770153278625069044533521123748177862817499214798456926410933467888299888590066966877435024910967916627603294695085671168735632859950983822887082093573396725634117515652341600198209022688686875443133777144727317199140153993718130739867413413654414213412878579103748472862072331363703356362520396623865457224433352726820895338166155977991733145537349988614170655137945479028082368376786544803393509255800534494411815591158682744917864016147073726242759447993449528393925072289522228635308841091496231386185131737969858802438574037229707756241742914664651127160394151558419670221648913293018086585089009997908010927604921120462188843247364907513129173577123379047909483109744009341027607422143357463793046983786801198544381748383806038276918800541064155211690829886805147492022941306993876402914562133847548563324400504282160415871471794166755622391212707887494470297189946680316659017366382742703722130550707571479648864284436838851008904034933805299267962086505000018478609781424950896995290657796308801487057358526248156061809274736837913260989879032365498450831661825909636446912994804655613593811266023573168018675611424975246405724735668370585372207823502536535951917056114883943505556285819914615863988282523714853279722883596092906842547487300535951285891557649474527962038714723361314090338573100916489034924644156842776230797347230474698054305852395770277515415439537800218800049522636459881620071881123680791330798402897418400529708328844762485208269225931546524059818044223995452737114637751128884848060084546666971025858487804425550404845180368183182019788762164285921413956423911903821388914087333705603817176910216121530197809588527133286793096238968900091303035215772696018282435923244536503263068625573531497149097729652116201315298126979763477565821574940607659537362195812993186361415377167936450831303967069472407277452368503496382366571073225500149089057577302769802750323161336649639413763520482237647980299748848944755065333543382348700642126614279645199174329332044956544829662214927009944248210330442522450874507076722844560225689292429541488913049623354874619864371504711574562019648283574323092273036376868917160497641637384592684206098623393579437132305487456646283268063813538953210928191751928891082838653348404881184089508200721254016446642342175910542300572114382010516458884329092828433704146677578614760610860887098249432485915224698376887860516658225568547825136149165128936816788036038069896132398683550928164967835845242248095177381992916956064730133447426367775909969428017625011322923972163422842479392530022413375055073179684902520262087658333495502014652293197771019370968095052803143736751659170441795788654954170206728280483385912264928905400911088615752146007911139092640211944377216180370665553346213136480586052907523387642030323400378392561405312763475826930503433341571641497434683957961220596917928549334796502060373921861619446851237125514842262549661250342851143180190873875256285102474307001826455904249880651958702094387822993888146161586127207677242190277970442187441093196526859375995144462182166390391160244619991017563756966190886300759546888021694862633923374438294418197973940014794660454229366288932754089643406377356617694632105892338946688793042779420816417658964881497433884685956888699841051122623426746962488908636574612234811978823336851460281819526343092502004879664694059835787060147280458787912070643699070116101284360683010266950787305785951805050099427606281115034635144999278092526879281265743501449320311083126069393291411430700221211849022167510827873784418056058109892667891509551667786770785173049421163968416985221145832129183496605855471776674879929912320713712040223600655604604031410159341836461243505698924176522955243074272101229441451465874067843269318600495781592097701205688214294398754497630263786906965365061398051019465292567362142150668889880783914065388930768330751081902861722352761494968128153603565702970818748316841175475260459122230672052067297123087692452978958117379484417685558396454444719654557484909617547894840752256324012564050431222413187919903736506033262570517471018122509911314827693356093342353959307762160929338937140632655487287196348165374882159971748263726984988632481818978965388904642443264683911826172555261575291546602694763182631324837906796820360949873933326507533804841702228231746548180837330184406281939747922792574757802018640294504358575696279966542765747607614201489993598097861432502870356725343647417817831337128567155961346059182474409795939492675832383272018430918336757855333790304797588269072471668469304074767049172204892965732551586777638893042031122450631239142601470633504669215122917697644622168866654045932821637965156823713919914653968281499805384694385001990559868388841098840697842415215838191503841905895613524081287553884693720461240464432381060619614619575521188580896554016866169875467176257732915614438964207528135224133590806852051123499100274102420874792068778851910119107210922264670405145258745299445560944099098679472009604424783673496970011392619797926809914849857042403794391526463853125323370022120655793986637458872836864652687827476092699747158611910290169808021417388101359193729419718353700523414647133618528023995483340712784799595894962285268007478167342889759966505372398830556121615030758607220624325148660943599374936478750994149421795333595946985032835394561746360811090798851508047087974695981431220353166627056627022907465752961178555245120524691771752301409800269849955495231038298867162811576733108002929774025157043785976556823961041819520460614631918271716515549806011142729082528510141844127045542114526747386271255076170909159060938080025143008032717208375953852134796738045366415968739475146209360134288724855609168249650332113196281274010335213530018479001337545547024044210321790167968849056163947616573702678224465083588840108332785069834718544423518911037214535602963049350504546786775854154575517174167921810857873414718553116400942590864771147293649620622588802108025839484127087073626431890782773530708379684963194833436683900317738800443601812031625562398108442311572542991375947804683193481495692652723473225345254087241121919388660790381613355493243740610928843943858027226097250556886640835591537927065305418954075802124802021325017675717245921393506400390468604395087165451285723152931678937032656922092438753047579845442319706929917730867201741879864112697552706031245352429955394756171817302608191367201363459483991087717443670442403176640768524685443943917137474969723615562202024095379700872852545367109657024116738006600430355976338338793321692416833325656167717423999261629168950701903562352378988179930299444126940888935130141829660497157855997726526656361047389802388741706965157427073096000460153398931393013719630418737731725570505076554466596655172454225932722717421364200463503030040041174380455944095378735072003457658652117790171431979450523605627416392140037242237341721227396363362200778400466584052496850042050014173045654475789380581788792482271845047635772007262454173293982162436004247415087289231245504578864871812082080636440818948201610597363019698541586959397348737925306660780753050760016787885935608808756416876415702365548125964283296281152772828271271855210713134702914925568704062873726682096973069714777055989361888117189261936745207112283138967072593644234061206996405266119953214684829928427204624533453424629378519254568457480139658802370541285469029237999414426980342669883003733083633941173593471776858830178411784836143354244685236927059837397957204165676536497927985892352089510569267677321128006026958448039953157553100622708178083147652423871898506283028958105439695436650800722426017682851630536009640580937545018974352002768854081264970031100473680684621578502740545665821349415656073015320967068656497035551631048566164748463516328396066044964715875278130739998505854931383337686491397357503449867923850324826953817270528174148782227531868037910894188096352515353616774543128350346316836902366707240383612047548528478714372639631994285499950561602179987096690285927372015453887077898810137349800826594101972977148666017920580212404002577067763709838083370398877405454362070691322753879229142198671495485834744377627700170136276740079055366602960487496557385824883037629855674375719904231408110228576980318401504202217220334350267880628907553122347634608057915561242802782114827574903564064300688150684612618351606625738931163680765999375136039697847661820595089355078542467986719105955338652803179917848187896784852736008333383996418203677188696137911062169667071032293558596747933340574194360159708183539407779151575729589661715464569437823951930650928696796270665319628271731427810305531994855403491159348739940679808256514511033793729440322848852325523439025644997747511559810413445955669158870053844957987163886386813756830949961632940875984952420483385421230595751981321885593164884778803026461444168078244625708287609686164183747722613202184936227201033288109497002740248610033779404306053921936292105279041236571746289093537286439010947476284686835750281674640804806191686654424379855544994204450027266421002691738125636243633717759461774721655519475498280603338067558649700216238427625133159108164417152420386622913268158380090198751823171304762570343076704712374621309123681287765781408563267486840398268786769787067929755962981286459051045693912475247492976836740320876456183671420758647742246849396470001810380753562239415191515398343506481809152946237364840938686136774642053622950490158534360336076257310538896289544979539638590526370643268055752776713256136525460411602651866390029729161639848738106170330922110962771489228005588191400270339215431304059214739813770003759636395256606605379404082482813802917169496452072117711144995109112013474088418854091257770681375403519924573215242730450913013006781608685454287818883454171900618300715508037321328778697088293498352229806174697649223078201768213716785640378561788348951955889394135272584921974134787565709497369056188133310317975790498263529106156188565753971382743834497597166502512749962743702353073206703900363267754235242470713688200202833083092749362430209898112092954073815976955343290953478175704954390738693268959272030175540950676304967907617746779660473534510343881127784110741978344997933198414089954621218957509598130163774314384769072859733809601867909090685053662094305167309699334180009937731141661767109952673572191188562825098785036944793160269663049571863735705675588550799400908597929010743232141374281102053206159101313864447282884713322831482922508665141942126860801265653595889677496999116307025097511868350478970947904110622857753983792189189540632787634614688970373009871128006363032568660178772571989529662573314018030589190763552501468540907619299330678457240072219731749240267218464914629504669238200063077367082455666479618725893879755392090117502536121147921975353592804671670178350170127002901543464997847702062298198390073018257983801603603695763096333487418254891053350463189448178357291980401438911580263907919667369762215795220872627691676385260385597058119766360192716343462599004360371342375956507118810995470490941292741574340831767332948023601301423706399337884536720441287920453717194922033198198331497289384846007544165691461309563745662667991893557061390539523012536737535294371912322347531248884948827147719243085320697410161448061618468761389093368506763095757775885630177579926495945298152734286891709265867698367629020124537528274309137050473322848922497972901902023304539693745428001659111374998457434045295408022954665332173045200757213753779682601204535818065076590415841767918734193306763349298130694689857918391117128322500124763526988199406308098489250489100060583829411035728444063614321480975502494087735221450744603173453021868819772875563330913931799404977197421846505656405606351827319724166109859322437225856473452707315511085487772804606030560731096402396282534535137713230649895310303639805342136016525403222730315677862970272332269041985445460191602627545355139779227695403099490512199617974993919651620890364997518988874473112219737369181770615590761937339008605989785820515576312344644904965474972115811245261913328536911815660543543283872160392519384066484855649518504958717350482853561132299468521718897487613306719211418898510871753649341555409685690608681759143151033817504091664411500374799902138829333830376625043415263692529244492931965061270047580055825399227304743496530403040988977268393677883650800747263664898342415285634279351163059575279628512160992374340953996817780899401014944793816013038918946574416050005131268981673195677503617193091943782638473333888330020214049339734790433550050601094848859962210876439771269603103458930307673155599645276075142635425956910001938760085903415803703725850439816053276330411365732732214935122467495509450589076640629384645431743122061594575674696984103305013124999289154228230651657592664571293921615254777943517253380285151607421699538924047312764934635853495490065133039010451178518180906407317834961416679753761145612036634310219598230811311657206764855012677882085890102246822567961209578171327529995209975345623617311154634916336828626727517999027727136667774704702892360069697241704881387021533253711508330682629744585347635338857103024232312168155936647471495899879148064967171599664199776633696292196587395876556908367825021882765894732155818308730028443906497595555328652366114884962874956993636269235066498649472136277407955374581439735873936320529777176115861945183354836853235106925617870026620551348632265762531177538161374910447247903052302590007373518151520808102689962214882261001395672752817465780219742732330948259418908106327595857812112424116286818214781763396986668031827804876739025324036786441968933812956419313868045554264213086421137422938353028628353024135423824331307225701702974091375885952934847046157291133258255631520900706638009233861727436410798571175451892323079408174748939131185501459514162501271809571666618623853948939045202036754219059059966821330905293768435117374951737084503425158875844697755949338997024165747946663549842042969274050452489233039728349081901746737043016732827410345921559409543707276106848472263520711755267877520580151129283367592221603043830352607799060819673875199787967638772245861056365071001522858314997438544332214719060126190652036739343493564269190595195001343745364122101923433383533880595891982185890271271365517092555577507533878199807818110793465174764542360413708009388867786474273295687270961369109095469941858613117898883927166872872423652177408101843384564560135105467041775336601709659568431551914215472597504770660961178051860379785257443975362517024867823283726144275469363929682925216581377830409241410726168342993840710713533562947399677723631977257767047074102609707424617330072076520041701944520315319985542915284895332789951500215813102016095117268322549100544489584718575410787117605793557505037154011398104528082533211118866452633964947728513314446724361616157716059985131495563321785127737634437050390562157244553927257414166759573544018702266004720813061021011005256281049427899109251962686432006066536517482414496341179305693009101712074519042883335920892941778157032917930132839000691846145505461986196786857665457855129482714866939579303235602156204473021208964797527227332287929638443777684301618092553414651654703124508563353437248085200437232351340096272232214273774182686643197386198224892167599265553868043301544009639633518951544551214908653374372208493876045147219063520617584781695665174840275315391896439207291657105167741519406113353217954972320883445948806585722718998344581889188714550459212923739930098339123651120965851070410304906869680817275240214457938897227663734825494363767389938798891339152567983685802922500381051794750501018837712588413925495570484603957534109436373346714359224632709965449088469026235356085399091162947539497691207293950287950346144024613819358463716107234778886573310019970151863214777119815417832735738295958603212796266956418552420809204701274631394833478270986892429505530075695108690958798249708978357329385679228273235939804779550127126121754031625026536276889672776868476547128471613757761775285554177889376509798605586850450079647773722319694545740059221943809644483046619316436118586651820064755451019621266056740250788631842828939398370238730171626306982554179995283428925058676684053084017092043224094951062428432328335954625837573858641607248074111030517397139017431036395977287972099076287413855533998946362669265242084777380320484246750247165547991856679822338466228055859284173125125585613195770610087155705680426471498215239255949681006995228435509302746745966141081176346781229688961122086104440109618590673390828781590013105583467850763556035577763035762080896828863533845921312595923653363336752381617662063082322940960458176512370445636520838077517476936126033849386657277630889391828654497722178835538760166938530675712372972869762612400022505454608582490839026658419669157271135264053845760635903001291111939583792130104795170648065629215140463032989867723343699712255203997783091195194524140743420444098729196725516154012895352973992874060274976870398857838711988347410211768756924791816084483807665470984163598772586289028975362199498653593770408907912852382405268890360773665476660894465023174516582207246436023306155930780995108003372936259264599311814714975879672264978051380832023707429587947734802396409502876836161095401043219264521145872853211356294005209347912685260245810046005144358386776459940754510259423212712898132084651425653078269181062647903126872975523454514111967730163651993583563516450785430488978943339309889114411407841392533889210815667068056732934728540370028251279276841766344681754237776961915690244412476707021793979684624549779253370882616563015638301421379322927762558962014264062066341427250650506622132543827643304202252711756424657869093553508450292293555344166709111656727508155904213294731443848960646470027887502419874629284508493834022672565482522070888778038378896681343331240381767762136087422333277149380016796590342196081716611767993964630754087863223488195940700266234068806853847663215444916391970401584461371146982141451226450420559770369716477703261102991369511895966115075779321447790486297832308145784640146828715092551298249286190237381430595110809293980062327117009829198372468972774167133520772059038154498656126778588950068949653856273815909572268096151535191129985513208548727577663623268354629634754694161500731920007210291797421678894395565417472796622672693097307605020364037409107834459257351662778617861970558885679062892980875503336098163412852570089300580231848815216215816324448503059543805608333441841916437814961917241329856370022196461068007660062184363301394522771000299418903736451548375239654608279562484367574141219760727107541704357921040212866135781757005318945297630115218240843657264399839222387258420917147051384312308405017287963625474514917177154131726514401026672743241830925121573328937937184272891552719065747579802040796608484752292498581614893246430261152242999330216402867943391320131422698060991644391322751186090754626484728002074242383519966042904778139432910096108751589127501005098310799575034118774632854110329228125517217232346482309333389794431038919260903053802160775068013032654723686139569081685500281027471143145879791619362033507606151816068968281988920986919598468153846921331845342543029455067223544083658358975005660043435028010373580318730363408875903476656875349915380810371827420516345814132224139029046611526349314418202774122608443240690013994736386464253629284581359000446002295799004332802426641769311094382434377231682396121446014525999108424691633648560806557417256172192052797151702761206359628655279483252626575867664343387606480871705825145793075163996347526916624290981859505623084796591792741742921720698321533038633076568523586809570033582200442105664747728503510697891648604468834665035024911334247183067208175344742320140811186950328276162633327921978706604802004563647081206444465854616222966389467393256667531611706934287852035697030419572501065390559834937057039391064876403430838714458463467999783887897624360792461468237448385194025790734761527606391847060495520100660766922604233601388836382276302027112540788155190382957019283901263428990916999461404116943268867790956032707315849472339145763968577300252447559529018498904175046828529174163691146076706870387503470187375486941369208000247391370511700669514373620136889659913420862218426033348783201333500214420366995917961744142451887272417942459327350094446268509028089419622627269777771430140089615811874919528095031725322020235056535985481882425249647356281229810758325035747349635107572882864867878632983487764962284440785556779325737733486386271359679374358799573617892975599127624568847648774617593210748789700225932083444601122059952720854869338598118443956684151787484937887377098373240400986955650848842132739008008943120937157670048432945617677752304721243586833112401395699968382751031771696697681377753574993685719180719529876564794576759629098086399163287398409245693289154493202125757360159518392872544049544821846588962903380934054033127283841928996266613922887675011748260960747717721480828922538941844149514428213473675101397845548097195090673289962756461335401921023609919293912466057016870213551412119483199156321281097102357990661320758515289802017941598242449832021067415809920668426394534434299606141534139020991511716866420674121363742429119613763181252801947439526886146329384135612145931893720645390486862636081012467885806197520124194791603419001368069267542041027290235296155890264889782485439745032430158506901883483059037189935973990999616745764582458459042273271884252121246013894790169608391633820764481998122292622518747141611676462095031249374401085246031939365264357471660436758781253422161097955904428424803640318935438270243163650937217711622305665541053956143427402693490964397013962070562259786851783197673869133535672130749792536439785458152311321129859151228328951644069116569071720783255212960063007529770510201425475442072167775329911647998787520923356983579685242327168931767980328783334687982905163725782637298532563651758125038233116251190579731330917482768345273027713130529684737742862745144346563035057840127137762400113988587475788474371369218422649471870051207035090358883408009281463831460562986208364597020229934597497056611891708619749280794594005031903001904791949804497013521707489193519437508597077357842268759651889699308062338778978505353280308054169693403299423035859239382383320612462810765935395070930902440231826507793660982698004741337402468970014293229614009433260960533744635940812562286697132034068966364760945922522212723176522903187184794740603176767627704566687413814708254553844656133028230311814501008756124482935316509125328777167152177211667475512011429246222723075835318861469384020823747374763671878538352938570157378966333405836731594696988727108283282949228405862030520792469082677302899140230474077613170650134807852898216219582108955620963116640087910440443691423349788650743898702546694898232296207974022663926073000250404408832794681271674259278977604047894461446515683690001797996693741402584724423620455957699615347163153464002585526923139153482833893507230967153430454403877717195398086971588775750993111396955294512026507652764338435277895607787157028227735418079969365136775260697558916651971385824014616962182207101142564233314134389678513307185243520882017521486095766572172353447231070452497109116522364235474097240367977124116344556856708785568420810121002138301571388860645561941975350233459791876095632647764645417275284138659911773968969005649783860301682491497090164157016034846755323411861314421521813766695767808940931835531995423459038302972778198954672636823270997305415100670324402776768811355356851581318696571145251954882714145140872955586015897529348700820897414771588478571667071578688511177588228586767801489151755821295073707311348061257802632617628994215487717732899086902253680327740545612061973972134363594481070641938870117893486936537516148647806040580168696745415649437567485086340722391493573153696501331605941317823514400730867392021569508910122955257479541022655578931507418230878477366122908336769382937383044003075387920021993155590856745309374119006791520375438787287338074040700446563641760724899107130197382782001105457770646719278747907542748945049602007703625025191270015180044459661763916361216739523939156400083580586430509766851722630374655814730724658047372924118516125780868811368564056232803383500066844225496096788401333876042519344308297497805038013219092093110590748741364634875739562483793936686478508142747344814110243900988840383455440929175890545101525682885906686304740795556966680896282837013588254589676170863877913263002230724953173153117140602996677132741154548096501393600610999983404458016624728423375595731554468235502278091117691365963610640344330358201660088651326362355165279216705182632085623619016967836759837110321364059821312977043627377964199429906081838983746012795191486034631602630210587071115254228627206095910958857612153075513558521298519877837214487771854291602103051511413700943398403256160351339626205002659211219741492119902592309084132676595342827412854024444870122897567042047255623714654180146575257969017308779246114819750870031867300398681344511064913628430404378066422850767596601564861288967507788116909168804522882090198640536249590326126940924996566323348849472280080240366156553983670514710993519626974817502501825853118652536399297548294744732012681103867343571335761827871468378617227159821963391559694974749061425924450559473720882902107729321628307965159183575062095156710086026024280318866782398695087273189102274261651457094176684792478083609376222849129720230247003710096885753731835819648364955728507262306965986515218102977098242347319857552403346772986233017902465625080390499279387048040374948641181295298329095260863400860907204439383165532380060039366263533033587672647668166837072860838244980366634934943918257726949209813371550830173686940290017637734370477085924626024414896413741534193547312331423947118951100501251523283275093298684408470921198276231911012553930955292470198532566497352341903913802629767346050023944647640956971347633965581210510142868655982083996949039464288017799819931058681341191316069378915880967066884209823549206973821640523752465942139118653484865515458767772274849077257144740459476088945450045943647191150695747371217468946719485662306876502505351616159965217080416491610636294836226062959514594226783659429599907469820427269522489351937959228777991213001692606324916546648854632631369267476777062643968241314295305455486707086987178620237840171953730171531773512661453904601365014587535749833255677841776592138210796638191090111071040364882347312030165346105163569937578010451088381645193136898742827100746322821473129668319551761379581967222288344256146754934539274490534437549106850870412618219633925876682264736835519374095054875393437402437570034038017458941640751560962892048460674219503634043279237365273685832309145770570892538912997386130077382641398194427881400376350236600877539012681621522039028586332446780509159196831398221400260959420421858220370271841925372999614474235853980020103362375899778987881123188159120079997317602032954251090951812777144285238346198548005780725250723029628280943587158451406552681360906824959844037186884495217904515170933467006253722776521255653210803154777804264698499779441554632075810163043568774839733386178237143603791780187392217636087937275046689066664155021929391253916399568818677730626508989107934442232062091755270826423299669176098835169055851361522639704413776692135083592843245907668372799080505296774247436971593939723892199660669472273660290095394992817806653109967262416090240149072247984625558033719993240131313837348802691737991464591467881444380227950495245022175413179687815576809722433519353388615806401470730634001065813578887854211962302311969686637652697700534966995662058762330775489958602526244057174914918692654963850745691339658757596233847830954698000504886943055037127767791909814961142889892040337397925500241903751920403216630258471108268160625837328360460244148357409273305974494745311789408992778503578272020490416258350008791800777489818402557763716789161697414943686266977584062838387490320822677829521522180398795266220295097483624111484903776960728391603981697767463767704804831365656776667028189881357204622076850648235473292783885852229876716016940048335511079385136908825596448981098726656689434490063236188117984765581950830484078022013328042764805475904702313618877096991094250162095239777442391338660359630829863687823579638301991012719630215843954548670798431933639719573484933712533694778660062944535934849252466432617954594104295445292321874615173531560503340289132527893099456654540193169962121525861054639352670191651510317223174043242475370522198930301591362392255973263934675250954704743994943727939713509235205190558267346649298004497143438006729460971262103250559454159766727132017689331045813960491962777475413248230120727760919137068783484267585188438914449449979914343923677348895917067515006298290042632410021562719340915303124028845247366012757387662198268471781194394156986722940234980275598747213454763261172406116911490058677262885538379749779921195893360218788049773751780989842270362757835879909933689177346489895037314846915208053839386823459535257312008270596217694033324267713429580477628183301637557302843333947791153769588263012507303270285418889955763889890546092676539039533205494237646969688241041821538434721709045792930875307406093605375136324974008463182750992070355555191179806143233189165265487134049330328893408890965340942078560308153937203093105048161619030119710560320822257532539509430766813487065269466645116520208997858835636216716390216390363265074710623884106081129441878955800690034861283121730001240256465290034888741533666505178579917436307605439800657857620727987483861180924214344423216840620201599602633358581540357379561197361094014486369815910157086178328036685785543526005592119192852721549001784210442177973928994860869945194463804269572191259881715030168180421875068877293403723508852644082336091685946400694919068629660432789043347260832714633188610205441146379218097131701224200127472856974142430615248513492259698708384219801556977865751516266756913081301229666630367348763462831643098752824892748061245545525257622802010922903936018219611244300245410999611624384328733941274591683784422624543767970175463893647649663518112130146045301509848980529284753152637241358709886010364654962360444914195322333624814682662520436287737566797007214933849327754941393238556499661240268842604207364150434950045988302710932195474643943557262673348613657821574081407993124098061830383289753049482375856545410377053822780494607546629012062421473605089924669065600416285868006580646085293102156926141635049010066495821123614944464567375950835532641349757119178848910038333114278890566931558122726487195200694082983406081464124115031499744727673134931916624856843638037756439916132859970020953249651755095077779181193886811191614893294184422633967022388780379013249217824541873623837356859224272794641574576247740043980425842029564796858851109905191596687708117666494649842534776688941476522517232458558416942521388713315466369698438067811080514189063029859449665562667304043004538777800213056717048273584460421958572780165621393042676197215036013152339768966920806771752816910907949757595460116130201346098936713212291075607443716121655992404328842239652462532604078255775852290339366322230113075290588940255182780804073016848051275275354321439040286764278531720677737201380777387870836228135424546980921947082711428340993636272506609326614641881811545921779429246208729531230189792726946224539891787651872028442930346166404217714693797929739314262218535181283886523802464142280447567127950196216121899413806906376824962218599723714476924162450913335280918866834832082570608937071397961691634822684390252642885197347949571274993725887522805588041063886913526805814024139809502243447769111823958503054288935856151711608767687648905932348923653224907306335271827146363548885500923016229721414245864928481796357829561319572337283490715617632111057284857930379540499922453443510919652982421732830706217137431522680539287926399520974463132711295924557698439348926680520496873614137862055706025092305736403274308879432824106365122248371320172732059105657667434374615025896283461493231234713844205710876007497539125413048820958595615919116465892200716643376331136891151347658034250533930863617132640033144474816710127339089604180653021053608114400707494380635247607524538842312553600508145976106921984194113573321626332690403862040152304592211828215693854640898502225011721271149020187455199661326945966730687113182209392043928040485406871088532591239679862204885531377603049884046849524946312848644908022073517033627383291623184338468828138809652043573786519900023020228509559524189820708029851408693590026477338921006950048087415260139834180843441785946905867340997965274832611822108683252875711090349727220433117497318985428760836869719189819694409974838948317922875431553664092620124744859507076500193061502940386142498791042063255241646763914110786941104907299870383802934042137752553633278575319949076051924243839280103096233805131505831796966732304238192204630930059799892046139775937656672451246371170457476774400769167663721715718388949631909989360817554259024882915582741475103669623346776119878016262422667776610693469229319161770962139761367155461126095797070664571499896953514091286611557866056409519349299805388562182559064094271446377696751643596050065377557290523856428926848413472588474226435425037759024285674514337361707396176806475024991615460146228527443434137831208963446970574263450294766858450983716847084294033508919752234198751301655800671631478232104381191941877859719611350284838997265153230134206289276636227439801882156500198675206175753015939638344229947541788749884726225221187440715744270553032988008319931769372971040477930601959323350754808028661785863582810787201434204393839247022813939348848466902008432066935953166454492162763462670355660953864641464998323354945117579228361396954082610200728484096142494406834071267627287205649725621581074484035709058475560312055369546909322756421902605005617069355721972314939317857680642505109316799252306964863948957963537224980503883101289542100709664421511392203783515085339800683328877218925638691357229842063251658779349211091867707634473529798339273512372361927881453766348720587203895087143257576910313604973480642536746800426362164216460423459617038749925505633196469079236838632156224942239584888495519256960428837671832851237323314697388400357150631191112967583358273793567202260643386835652814387451273822679830785987826996767591503352562080759882547401358590999074796020231538253665184147163081592168468151529663178795435521904244700042420435968968402934809928032466653039836414680046851142933379684427071370847815988385314830356496896422554558952164846309867170895281769730804436866074166937279137624539773945249000102456482807328310910151346813977705618373041226497842665963926777227777708104203113094890184172194669737917299177436014647812700883427131574384228909362133669965456018479406049550024091759643244889786610095980660329481105986423386131728717661708312803814282174630021481753363536219697381702996254784982025105113732671347146793383319220060574159883713919674846735008382629298809261036094496398305040559958898830523599393319525142371734471943660043814514888863429386375601245267278557511647451571882960552423866611525905555492428421707318356122305449830538439168064846613953681656178248802460744701823934276726571353012490032553741906504681498190280145349001686169903820282212941125691155633292720684923293810906074280339101438307360391249614317764191125493883527241599913264105079846126491705022497776281635553685961641995816065858688831063157989432379344343165301938230484688690797042345614608093475143660600567780249734529049301629503551079527328867497206963083704666291739854278324392079152003560765212114523579796782362971014422590179637151044022972625101189977148921841354346587174328111718679515938231538279965703088319985830400113064490340044313642573623127935344240325486580801027945630467770306534631966531567374070453480137782874328187729527170433813624442077110176352338521287607815313614494794062298844885957903911052446140759716535110132613093313452944703302587560072640019438008574646185829126132056228577622669794825973172370397959892147455243496133550865341809360920605689128194630201961921851727979865707296373198016558173545401378135791018259316169240708473303529529333716530629676823530985491798468134514295582093494183957027904824386469098937595929879353261931514666872254323580182076145559435477543341178674867570635146228345400032154538184663131365097983469233560443680400893431670547428465046020176057448919936372490205716268435166211372778584233922753223785815084020676010053142572695114234246925421114535334081651692676803482381495487818521269135914764947126721155257253557022782921116439577399562745451666330138773607402889866448027943480895270771541686165751527092630874787522093995127977350594912370829696999294974733467078698462932172651609591550568690787085221288561190336317712712188136756620408675744486701816156199064537401069654907058075779611124033927774933461860272170887937493455165027549053064479089767734549360537024808674318228441548655848391445929533408427907396536797319550129144962279690868971594740248191395178821902529557190163781259765408596155700545259135699690757143982198630763565445755595384416345570836124912841121035351956147039336380790930913773578653748739585325342842197923876012513195217668605981714142969685486079772450170831250802508867431649803653527315131365004225600081352834891178064887655427373642121421160999337560513272084673136425245341122280781795075511166533635738770752571622465636061610546319175589797905561327182853095744887215021165102882052808504379459815248589941506855055557231816735374852161164115966885086838859782142371322940214208907085294143717998693281995512389181697335707794454072865120514697020318715520770696233732535598002455848575761739000159394324016166585330520738571914883669731295677864108441524480064078167435944808946800432685487819043154932118026530132526149191806089556138721902980783188330235059161168920271015447666696745159023184521860762580616342783076977639400435819572257746709565960157964192175017788589723737459846603716062113154378001828278593349338121491624300669202580384245241061226147180277978217888092028007175351496489535721225157034783319010745597049013136459552476119956785405290337632775205318028245473739191026340565514504747280572262173281355642759101179079739263991295096245604366675570618303811589684909106829903892598682730804496472651383413892187939182711079354836307389116287693346212201778566611859031041416396089395128631794596840558583215278611050290434571472747361163099874888050238281989893386254653938585287265238228891237226992399307850334592692170146328984762426457078305248398517133142598320383337259402192169092178047202286147582174849591949936267707918189517330810713889500023168394928082474699678645809734836124297147423229497301003426667372769177614501225142381614663328565771911316649586536364093987407682061607248250679681636982729586555223175105255007022288050726621884912493907841764099095824673696049857582393177776109157700909980242227714692703875412594409383415857239725694530295073110227955790979962139118477497262538216443618526876102936419338484720956403451510537454133169524388912804235831376911583542297513707256911356182212894828954459123312739505255655090083951495685007758233410257974684862872291021581275634979349174559247319014492877356281704641430900054041829284637623986926968708253133434910330325680537339135084834725611320333431497047957396705879466904666468245920137394340281577838866049622410484921169208568965993473368066690258025796909153354455126358964810939386947989176641355829278105633983875892072922236554176072256787619432921038990932571131635510140111030461356303269520333659473889951286731167185534942897649995652610022931287331312107958561030038972356054797572994104785563659558177766368178982321573488843571408368493401110286417507170472111273506926264114350042466275833535555789899932871859969968509733562390823888446602617144067144996468027068502180303440882299915089056194752985428703594117174826213514815596621532290044778192345103084943997367357214182736730906161718947721803866877361919229607412326630834129265044370103468644186189385001348382806953221834943734482387661705842495768758299798304472211688506441594033402914377512563726282150574893759247085389396860662793266696945953712112930170078996816733655302944360997786463453353954324941937399568893647936099779834728971939617649097820488464485183479761443779647077451242771510512756671269777225336178167753531903162962380386343976008912684877648297071990189637469643327138540376502035884915635254309815761364319507401673037621130878869939104626355985724787977108700460334362415114615026792262444659569630244455270585788459104139798405503350906055240879957043505485613398781771890741162323701225271062099948365559276652241712455838815376290182738088017380419329313727042709267280547051602578794500858200948262342015632119344797235712717541085579946137424177525001746544602244403337450418833532098474842487893155177203016325269098028591384447097925313330203237796106382284515773682584521163710186607367438822165110583027653742214063524759748146310311780521190009178127532167366894797245328212575043578658812501231609425747851323119084750608291959893242763420284856577470699762852030159729468039042948652813198785110032186542491288128524781084779453962825117862696793711696934193960779999904182647102880470540932455986169560943005779929543876785738904991623557717437645442611163132984203855559204086473240144567120265607480677292157944139641065932980998199119365574587356040800818426998878845029615551301502730182575331331358467083176123469953620404045526441152735689916061872573452501332497742517484934209111586489985762713132253923931225444157990626106680740654244809498713728345806780895021740135563728033462384717708260710147956409764564944982284757035231215178820555755909771722645052985882662133568093917109726907796616348622152745404951032891327916751932538449698227337635891325397333939278029975638522780214980877804212336870218538886345709548945720570340686538543044183457753770665433600336885433857661628248072890017541032456686935134438770821866919057054604402999926279973066684447145133411829696413041206048602593627683737208541368370208192324919594614538656871795192588489520860140274243707007447142703935304767887760240477598427407327506556397049623778883466424002650443023109411414405494691637492480364435800996390859364225364728378924445595066357335200388859214709885330538304565455502086115612211049106087112681733091321240051271338450365687737161406482050399777014812367702231905473057343108460621673695138233075382694128761172441589529032133804822963575152672190123667417089763817201316990774950178915852263449894251761056600245734531631937247815497194771686997434165258424264134599106441191062931591239468141386674106102520143954546540933216448966077744260665878235368335468984603416167081904210454442576853131011974227068603850723384671637504907811742290414045025838928019711008130995859193834517068714986187431375889237893864520207852579398229437025375752813368982656446660690021377381072196642499234346303664949013126442459031864498289219898079582376261769575194817700578558778131650673459880293258313660276387267400604561887706901543348958864149836391428429896818948903352930760123632441952608387091811647587378729395873916638808173797597015291257164733346060033022660851818665280957601438002578446909982909987502689283607341972628851980292158655982381819604950664516906990645527997819553854447781268459579255825676376541624859001420320751603138203510217817409911037802222405990089784203859305410623292908315621054225513319298391025573287085234188634895526165011525280086846215271734301119135660332410257725158566656240926093619278177894305200254238063774211864998126367614617970177736818428664980656102637993069037338954728069137468612445694329755309732150807176563179696936601376407205263436111726661676429961612049779058680388302806202537517695980204559686430645950513272507555863091832835560665631978943425200600290379060286484873204884842092430322722209925466304774359981846600432891842969594816479546985642310040183663008125874156920980425994321657892714161440461051082925083427473549302916040461790469984129018970154952908987804709208993921833500150382962140602941209057202696421971429485234526057321861774646122712249309746881900690366010879620742372442272641204279822088113000711988152855864479459658446753412798352113269416171059503395330626841032897363119005954487750048658828342661641861550058712362393334132243129498080847914990452480471787460408979394762192538641038628292089847842236035120506172807489979186168123589872594568537918752428112912188671055411352768347004654340373915007956842632175056699239705347239961316268912539525802708283314003435870367823690730523124231736914832522343591228297049811930925226517185316857388039169748645436299811425858327681781704264991365716961447260273166686411259340585109079308283703908915589097240575065754935132302972963722017655035759268533127205408453674807344761990727458073959060417324935680126501639782454864049780932405289104104136396852452025657700766932418805224166619017792578438939057973917467943979267609239299255679946814097203770360992734074043259716377485885660422773148463656988745922117654038132533140912026518550919854199711353528139109921741513212760421130077766069956721002173358015678002255049743203372534559746617030570855806315737013951628399798848527060920437459815074623894990707895920964423568715943692189930851505820862828429097335703040176429179799091273704481991167855276866987458203843966609073775250300875919458699975186233641847795552180530046140446715648216180147935993026088830987989735387771267745253283727687659308882938517574393837750915080464620064515001469785319519860639998531398153219152672834541976718301152757142522695607976097203526957492399779450620884742461430198091996078219778815284881870155677520896850081874762857542394265955080623537257078396793627813085019738808530454549041536792525791434901282644889746597259185919101472276159941221783144579284244023108680369920644332333277190775754563039932416013005941085197935836362363157092303222170030818415622391507442075153833703096661904221904462818879150287795977686651902219827759915899975994301329651394057995163575257253954273863908191383250306932694309925300648925130913838994253632395144553665698325851615628373258938454956340601076421838790903808609213277710099537446583027452753776263028357094371473859240893215670690611052708200279514349295864850966703048381052992961646635729004144846011052799319777926886082486456977131377668946508516029407487828391352550938457541765507158706645670201936712798112450174326064674707216095200574256562473847196754511558146179756574816842359950080411614306145533799025928900718008258945401862656785392123291292977051587480016099118651308061939148002992662137925699085256758686996280967728342052729953173218612868181952180242433498466148722396116339423554975992221400063421663912642977350861193378178518415661036684794322724848044337561293166951362862120794473933798596541567335702163453887629809103879499261860499395611867904875796328108735669239637355531105891685874430390989984768983791666352454907703790819264715947492179297296833667648824072587016111982812961555103713428781466730802443717193902336759596229821593973506794288028845342156305270179127129589636868504084834862314662409497146476728181406666850110293496401663350536159856461337606081923799592178969181847364138118997931667483559195656119495529076374333585771295293483189473221521480675590345856723955742784556001770458841846323271126529916113085056908340224342276740175578637478034022464544273433611026505106270359379961746425361706589281611257855308562480100840071310451315689660053726308821446138205808267092583417629979525671933052578370075528544996915186208101707475222150000449159089052834542107749912967171682108060608959064386674671816205520510268080117007078043431572765071406624381958157834808743153438440279260661271411023183882443396268745824621759511807027928524981399004026105583115233399442085439492197976318869852438453962974037702656361076030027269563418136708016401801173082778957602003082410208250855339688721949770016357161651282197441682922203917759566554669802734628000995131239873871800803990255815643219524313913574527662433131497609192531656264058065139633844912682834347425802622893151819477335796752749188592492558898044267775834145165470331614879648782055563556219914315104025094404059405782370453037212152114907949161055951283205229626531752064690009728164838582638388478714832757730069239265735264068428157877215272310577298124619486950276607506207006782289421154724479196575016959892547133742112937753242562116470360594364825113988470727113643040322720097920953120035548417450844700035678564324933959240293471281330663496266543896085123549252809788419685478151505257799346531004742010752043349788076430255870974000054293014007295730192780673164529912051375314057603155326359715637479056476441656605272119356010500866405251369130930549363479040705291039235246325659760368798119824237777266108413668990260898211321205085110491666642245956546770944039729386898394977109586120865513796741809250964637177134400838662647350186158714550239092523144321291977891814117400068516333598880576018452300841719641705504508226824884164105978894130065718524862636165918485011440722885697904041088801049045949759664105464563509330152993491306939115973405767428130968889113803894183157392319299098364164394747443903941200359327922430962042454656333259897385294856056922427027065992775223202642920150031802674271768221078802275553274513472110737072580352204726575386543689204248565370084987629994502562867484641522966383283786186220555401881362268315095677879754454096821361612115655157970473749669295617168635933539894349232162250398306644627407315237699019505687805089540691642117052737308850228296730562672362248990611208837982899444882662794216226559400296119636886850599195983311741868544710652075147983131923005216318573825210254176193457598514451377512715428294198398002359557558142421961093443093529314610299840151460588559504356955871352183405035986150012382474182307248810466758410696962939898607428628340646870693520066772402276622241627334492718422049181907870148400358024979872550948411618448762425982603411281730896390701294339445726899062501692671071895094021376159908341765878916488229910437791247719700375817439210800358547722288272345436223421212148684980863056259378131784607261929872462542114860195968828649250753490302281784936230494902817406698644738679910931677270897913758424801385626979423013982909188355724095710733893045991717749396227575769318020617468120047501065644032312945385793218803924063510829412327018469862286177607473439425766002663778587533963439062382709478693802034682363981084753897639604445595536725141377160712255490784986131553792759687330048864052781204636944060602744625775654506161690125553868794857895197084496208380844583232210719604216581772329655969769469441278949764926414768823107596136491389498345707309129489155105539010868803980506370260087846922825889926692475339553293487667879595984689546695250800903513710482323521931510799455726931319279538744801559184231094532913369111675290703535814719115817079658830401356684055648550065947330545231499382055563997481934133887924709644872998869716692759032845477091491468558157293015150282111511483537352893693344370799322273844899371663296938136905397107009556146443746409275484393665170524035849001043256657523522794363408171679343915224002823662927234423077481579860723705957323692153604080193769914012875328454646883919536167447585389965657979110815799110171171927178881781479446974540998010387355296300154833006439657940168517773971999265481083116251148163118780896697166958614849377639575974192258115798601451025833444639900604304573065059715476464327037795358405392448280599085982934023119449428279809923924975259710918684133206242577915643018910397406540391642933106379607219721255362248675896226384550972911241476456855984370169441562302979476347178032329781125471095602193369677820494500629301529471145180893881073150410653060970250048295181344844829498343799440314319388346486596226610731240982127916672021072643369519530654664053292497081213867311541927136592012220645322390862939619328884179864412693760043809238580709751734780050278759147407463089012390128317750290430972117783818040412733957587265047360788862356253519736494088795779551861690631718044594172354292434819491102352457345010701007259166157395946608703059332418544990147655497418807650470837539424220896722930451147584918524670330812430197730086220935563435954240482450313055709099274645584654422018712756564573399935064749889702285547709202523027992314469097995227117998110186956054303393679210990243016552915155914286130861245118211999163005586406495453693172951258871488030504436594839263973272391769706297902099919985309891311490497306069308690849536869170994105587006654444416000604640466946941764994039443030386101648820250550324386496696306167822980367050600489453013364170702127732100960264352367599890853248684650877505612492805302547025280635153860356685014310714476517918485333773269995990827955116570685209902815292783183219799413190252892558636367559984651678312435203516403584346670787383507355380682773809352495402790956664133002363029231277977561893641927391703116405119675592587886661311882382742988294816803691362864032392370303663886999885425835386779815595223274747792187444764997833851280824952968966630223304504367491440580949989978994891654440192747533650565983896023151608200374722634856112153602871303396987327186221011157781312638473454438081141582560268720943913220964776465550409411332716988711544180626155380953370529629422475006912360080016430381437398547655093796825323786364581480480461205020401314769239940797445576903250227724490830898677372084816042002272547776987957403799943003508621277566396474152380240679690991897206967648894484165742041304639969584325243724278914576065830070570114444639320444227897561684008545921765431256812906827060812716797553455034719050073721038286349791630997156501751647538189709368985258166752502878273476087001051252016486427233663405041180740656088896445985796798111443444579669816778257475432295180755098350830776253614251745313965079712214147504424517357013934557633628890323842391956967812092703180697087857751268046471909441065531064757141384330289652999309196982640338601212592551943875219214432016607719256571048355555447815597714000079039978857429835014772005131194856761908312690029471818108510063092044277463723275819871268818754712921902226975963514537341903976070928678272943157993226268957599838129005363679072575470103457356796214612760734876980064443684957259484644915994042512285797920774425572046421921303119852517048869925478561863619490449937861589395315871531332676234737439165154942667778152409051000852799879403002990090407031711984310002839450000598370779033202990315543446321977337630429023738323275407042954922475432233226465875801280517112257391704139002086093109576545832215891795440213722805429885048696943501010716341269030824070943530503414315392642659020129616366295693860154344197911837980470761861924651868962314980961305680337537389306503614817270649393246415012777020944490354495688250117571474649396337007836940544256681234061040695525574510789164240706108750278061676676087321822695546353068773012791320455568078453880635744861245392449691834947868091922163566685191396658614683032336959827834956316631875392210916093199805656081914322331073600930504797061620160176559922125850864389206484333291443797066023568809288729055129128016423858959988785624640117765443467146907229263720251051601545772717032540981010679177873307757111317649471448974868012989527755826587949978143064159165679271962312996033567791940179676582499918695544716502545768850008476539899295170933861067852781338115369926609876368429483619125513760914547951869212277588201135635586695336528163796603607914899464654031915040761924649537740753504937010002761031807740950040653105702710089827788283465557623785660803694064309414067057784508652264614009921780769695568032153744838147250019763816818953676155517673417382379057660733591052786714790434626225522497499443048291386811622742078243716271863351555190881722015243531664021667298868621783961922915561444687665105942987919805058528348718412039274917907462544195285327329267543908816183145577116170128990859824408255328681380753138404589976273594865623666409831426433554032342814296682614546228727014181778782804751021462136854247596380285205805908045050794211939843001654566165752947229176997554978648867554757963487332014630683402200260757915912783393411295884025783813075346849204058488554867531470027773855473737051694467483550667693592660566686930543147415751775898034851527222250058777276491339478955629704612389705202314794835812652489373970046011806331640692516772585628291429431160784208579922142180265966470157345107752850978213914057949400817320129347202928591533171436547539166588781399974832355341315725561192420306737068138253683133773866477561432331599631862468012426886748569762444168989426600991005985253735695538244337666441793021339266311661815921940386184092273822951941020221066922244366614381942558982757729382935152939429021502546077153843144983271044283470711682639818419065506947625941053071946385656584423471237773893926685625241884997257673141442704219222319399123704173926999218507052845353357210475204087731664589829891518750348875394364593015107300903732723156935986708614739800189481101928889235281598110930284099122150382047709140050571612285337801400861566705830465039256746880548729241959854058692527810123355515123661114756492895061058123576108008316573047818841370255306135342570173848851861602085905095109215505146294905590147325181532242009044798382964050138775990685206280134605883261776866817860035833846016142846105080295672934947934675509099143270846990125159636977942314111229278272335932571918470358201218408709080573447505106902306123267367332875721733278025732096122472818742896723348192466402260442855834606260135450870473099997419214224741290241958542544997321428914688512443090622059225874456299521432768132261004552408977656288309740248607385958146134031756715819871346078467647699447484183824037522645305054944802912866714756367102058899360668186685125400860502439972772576067634874091098375828325496761259285175356991647536451089674944182674714676681075417771770228153837250600280797931592156632408297885543359006891337210192173625917209362866621512870285693074305430946544585249571868708505648887178902558418414444099257759830624154528854182361949806015280356547443800123588089096255994399800443080810710959955270581633300700796979504629823102748535856390059782587839051583819555627498398668256503756365719755641799090296344739734832938779454088034840389716016425178872531416756899964445401792647668751766629977297150564569784062037159008001019201490648157267482008305663989063752254022095195843390801945834907039050536922801607717568132485385983627080790624129472340933322514546513275807034916520793917546580334651100155665485809591456237700839564674068792103589408634097538008065498088725626016672880964007280290653645940079924618828938304262258068650727592609365079775982066170800439819070744176865466262238352921126461938508974689874728016701829796073524728630779280841454803063384890892410575658494615876660250262685017303226189327417058456833317641864178286977585649707300545881489658900155121711603771586488366116347110517661487444818373020602122604833451851956265365136071278185687826419070936153199251496073159893109257934022628872924209732843917131299529616064494191628395624485863197332876148624435664079798212454013947631210044752549676833617651307631311991168735278712411162644280879549867686185941979973195616793136243950291452443008901177737852200781752071400192598507804466437693027866947246375043572512083405304244830464600173124100924725616984804782956710634030763231799224658113215581206771929984219777034683606092948047185691825517962749261772209413674049214612762192451188311156058330126248612910651066188097258719158840044819554511132312543051471471501469714183266855594225109563842864289199323494458760553028322342602859865657827975992382372496954019592983839903044898612950434521549529620965217573224059074130833044553820431594206488517818593565850006968851009165239042787528918567312494259428540234412593233153883286515284753746070260838534805167310301317850036066735448043933598694662647815950483482299458319690117686817066686693413280203996325486246094658410508803817672936685775903666077440059122569103604363439735208709655477272666750322903671457197892704506458291128608873659415955589994388820836508611563713972505633300321320029852036914001095167818922264982641917496437297299343229194250820728379585957143842060624595010584764977725343906036919638082690544730296089077193015936420922564407096609460859642641556536446747518306168775356387637607808258522869763410223897401581517313778249104102356377643396046569584990223006238034203583213696326140622344065358978324280982210255283247143327283224134741759814315626074842001399835633615586537202677095495074631303531726197427699136271352467480758845051521622161567330711858150911967581338889640836745444955812333577604168206676688664560942820163085996623551643389990377576921969610060779140583376739351903255886853513399585308116463753316658176279891262166433099691912208668827286095295335312924692820900869746646514967231533827788407656100704601659602593758771214407175972252169694042752827492858282412625091475207431666415550960957610192968077055588768742581588386158468763630139564049538637676677632671687297046318974189584450435774162070596183157037431382289308645756405395068733823522933126951425553832524119767394799348837664747448234260459424949700312103528543816021843523249744879484311947286925263053356940906133744780886828250472884324806646760964751896949496781045989444812102613796760081223698666016954350627601134320186285739524485976638280842114925101789281848603351688348474186444897468754048182692365555364882401070048585708757818970989380180484188027219508070389331215348670175855075144962240214808724957602725909833083754926115751035730507620033823277780636041105779427669933585779244593121677986222121210796156459178818079368630691291690979485806283929290831462977046543311107084256829930733295862275130393639038657258694873069581264727988230873527617524022804532844137495671200032216986957750859130077676324526638595397203747271162975514736135405874218100816505295696034219331886804200189780850324280327159344632017566408705848822682425138739110073842451848164203094582029217916323744858257520810730947465954041862715857467390058416634536124824003072742144693509330282232179334951985335855859127940965686326565223359056543669201439162388927049333265701170661223037574091186892902560832072051151356332807667235626830565242757118656735321156483512311020220763672107145329812707424591057248691994822128431716709755597685246971258160303336288858912661651094185335836582540100259983717418872434130894520261324554309845289899861955189340609648643136595713739568496733561975173154484133486055827044250956074024418901682601598238937570950758618557319571922010708651057328219658083119803406818619131765166352735036238191029775112172997858148986232203806954504943787471224442346123237349689914010572448958212606402336096952401078854395593514504970549911206757247751228718997415665262333295220191878047625901672950155860140207715784788678678900663313413931476316840783429738490602199048342016919034322039234579177651971658551698527883962321841699693504349622716013291785879231216814929596786643010119713987451318406278177910146462616078155163583487970070822958327284883673464356486383329918914511437936025994174267144173338003454077493953554510531207742539325289555733805712558418965088199067339477834288045820963092461624657017659847642761490626146767197854479828501948728661379864545861838967288325850290440764454236506830120850772394639052890573789449838250060013782340436337054197225212751829584409602086657625744484922572655914233554853498324827410710177080154327420385917742011258278619029901967554369943920166261591500799166491168676665860217489555913441726408050457854083531243954251499081952834140378381746783721603423097599309554681113664656563400675155724487263437203374932068499238868381507271605847462630647808424343837554015145997946585270674284216817419154326801600848011388076731751362168783046433174594917179220993075689396919450247781784108356326781280046634160206603055399971182681078783135158686224346004878374209281414596230843610022223808100419637552425022527961638951181469851243955068304794789641538650042737138032220265365501690718913611050053294103091876648740765978244279213063172929359592866712253231331614463604452184723337667920793553673374149874910248181110095915915829799997217653521901648750923878364445196838181453554180547722192516078598727315804379974525280231155491546722180693900012048625706986477651899605582458853643880582408519503983511789878398276495072829525129350887608760824515361738288234169638026886786085124426443247495594191218888149378681995528356274359194642504591410368027586368195104136904856973839786832545843284560655842114856114338333648383258618602811101697483112418018479877576887667021861174121360029289902874068050845232554548541517687419305110717235726497544576793828544272436419023441113132190951310192823645159138029025714888222494691517181855708429497439519142043516810980067041894775644178221899092630167674059440068171528105620914157965769239523649568398363307709337026582992695746557668428999214913816098993310913637602293068784730496143446337464174353605306637201606780182240841711778270633390226674108508283335301183487913518204594830048583608215549130696265439530880024303817095867813548393331669182991280758661403499809969138889551269736932496313412934186032670171523764663914883477383918570087138329462570310238973819400979151398223157762628991742132696383381345471276948996272008159466549700195520784955904020573819135690479906259854439262900617521506916168001766319922100550687276905841858337109801070227989654180505732283106352111269940631595750267915396915116888138499204050839690952661636970046422772084056186055962332397094141216415528371137700894588463071657615998969704632314832971747527212947251469142155678976989048421385204958697699974493994578315294432929557350495695440721673354128138056195822393617660516577187778088779468764286816735030631030759095089765721950597210341351758882772366746300550875891146259361648665737547543474638677824047060020281097335835958931003638118938492091887785233024213968449319866349042210376645900218503007017839172210928720215248905811200127284930476917168671885441456331748960838041707563984348436444562851982751630832786234716744434557691033253228723518880055465529203708903022696476744881659365564245327554566464290562968222476172816401387499723261429701580405316971624156802249071778548126294363497111343956954703258451112294663770397439328130893564308822604689408983030880462862450561956976723586217816614364649611087182237199273876262568180270758342729107256223103040357210393969094809935204264126743143868346914638576788398508887812741350658920290598643026936763704898373438344430843998282534397248847303241385335143006561715250051046625330310015486094101874320068884940736874289189190290872140236830557197145650992062652943948312657907406383957560603025297211100261412806410962328383960382971452039023712020778096335837473177262293817937759964952120224998124795734301117930453168996791488007528918548025095716239462819146212368840303737235249835365578106483224232657842233020701982909275120001465926601990948086478637993316489494292504338191341239719573967848088342812073064056360780490263348824476655565295775551662821325279966376249544383180576094300236268843449285376695573591168100780520027988568008201905590410386038183714925526480882819145879115408819338774886685709859483791873133692290302173032305910508547930588407855030400622952100097670435462975347076760469035273736259457209190260838896033233753897818611038553846753196345616261768287859470646123321324978879088816745229001498994007498713697223799945691000476229454556352526163541109674406905432231807881431382365144053354147557234751241107162476418955772986783678081400461188747642785912429622672145909325125722139215175254198055359985734853546413052790241316515078847103159740529800058944093878167792471333270369457570110293426571108854896967614615454583645718795162697385938019980852639119872006340796724571307330440458423983715217076965912851365516240862571252003834113244820592499391854052640350406347190852537924735736922534637848488764295987890847058718678653789068244343501556426476849384324829907882114779200211214699773863500235607508999745818641003226691959699650645082585717894038920579401558323463668438032803491278312041204734377975617286993390039356624227331846472588061755015278267296074234353412353738623608975038638220171613434707592462009309504499470323176192799271970262092989949308212602153730886843863376759365072119298585186811148104747400584117794065136737786782345543926964147428078601483734479698897558570695257467546141171363783811465322609222515161692988457520857554862355218158473843702224500139043973331180393266800107499684166207448504018149827557900268540566593131989138964329154997718265569455734148996335008746324858113145384174503133423825049645199987719554351878480883435778573156578882173745587461871841312328582851090486725790805484110597909441862328893479084398215395336124645233341034356857564463289018893616641386026743155161911364299591764104486165159243042762590681526153535136143454474773193611478927674021845942592099724100954007445798401794250570095271395797408288145101743304516376555641846940452852498414567059500843832802923011921992435868630016842045285553523992774234878368199092991479246250363287516596007888106721268688367771379646995154754372575631103857118162088149570177950504033392820752069468713602498970985089175303763641640203918341215868267245098667765869145199220021668484621767927497502056429725699862418627972238265655041641777938577068789977747966688088865767293777335926671812386346185535569420939447631975544957973227188785878041926261717651646902800513018721483060943066907462163521194182768012235787965422322832421887253714547705662220516177870873699798125505351238496510646260655590432781836799356496249793252646567251230647329496533063007865184937843582474032751247519437477141171899298233429303929048881540526332746857775222958336135917849846472450390801176308872740055891957623522565519444824600013665895251217187195246581297015487110729862810076375616006605004776191203956038313650383591280529460324807965439295825381673943685904029471443497807674022871282578475455511002071517275507481134237474760884412984144590037171339822692895933859014502767991898985370108655626312235215647599102141318906813933362874255523506158092525775267650128919596943293581306554261101864384102602781946413886442192580490270249366539643827487840005274379433007991892106583542054211911602226886471926684645204873351032810258316548859476526501722096125869939957656323991874922768695303516354036121010562358118016504414596024389803191098481549687350717799703497279989492872306404278923252558110966143077710805988942794102163461268955276037325086007480512789578935767061237041261905798031507591297823403776491812533040487339660630672021500177402058601963967909527867064921987076116306038408725150459533859489988769576257746384509241487404008598427221987814379630008943179849800362088115946256863341390820469033582956498209030986550187355422124747806407277262588391813140959391970294552495590008832317303891680447591344503771814789147587201647660860181370180170820943520300575004638429723058427799392319500297607896227330690196150438421869097232946356199755081337384395350421685519910858699178092358042159418143493021881468490954680168338631742867902822440238588215325917904813299275503218062735114816348473713164043775100008712219363810648225764768290030840369331088931872259852023136686792755558862956452800571106137157188379769318389858080716153668129270466354271120178506968147473276939570668446129372120104673686206363651077646280488641790399343925534288344929103586482800751247424274179973157600386185368760482680817950820348948568702900220450182807745432682201874352810407191979048956794527033882177925598877981552160545644700885650536665898942264613715882937828298696255686950970434500322920518602685409085831777036582539358122500206262560205750329945953875607285560590596686965572880804252417244062760615622847627149353512555902528177500090961659521263509151692326440611626885851828425009800089802925496323298711162887142032688296401127004133856755432962972360004273563066547340339854803918767119925401895572125121667030077901685905796808176024098597582682518222430469362407593728000024814380028352733894327297763013171137049466171358351700259762501092062222362103964894173178940141506772134097532468647816305738403670043927179481709295300392010502293748981470512079957255523776315717772469890851927634958902711402923328521726351572548558906644138866484586869046141475262985389280965489709689674146232699098951793180292150366532861691749074828819800867900110876976891131576472229470997476335334344286875451249886533798513779703537496445372194666029324188432688809271977224112761840221906564441026716646671206227891958719061186642055106974780877248298352160178912157517257087252990032624776834687289480339708845487976392277630972415899376475211991903944837233204132453327980777477561456789224877840058935177447226630266122027731443792615547660785593410593264214808489619729343528037153669105769992355154140163628258553875292907390770273818735043959569756375216330757170797584890232995474677293575059366281312683474998418915711233782801833834293044244539551694165890610070081426097724162981529995429579804830265958641741852596041486072249443643296751090692853397755492600138583179461464282366767195312652113797027166645251914686818166071011527341984887255076003049264714624366989465529819987251518198935921125047214787324793008413660803907803857869836253593624968737749043854800835350348350937376116409267655612056864076119232473140589637906049747045203799132688946652632162202296475243248172099529897213773520400864453909473311999762279192441428688693227176814859923498946151183672753467725777928424722285010792819350507281739670294998153843472237588045202258249353904739044383101492465461590254330682750954553079230505564889142480712122057174322850779250860818559114328817001573149252503686146196588283886941865541712208269702384781555945227252842992490959468050536544003874114533901462400524726130151297708063269109202759912791747620152921188725466374745129662315181527347324827807892904082638803322961568844054810334519773675210115311921399898014426854480040074163132007035704705913853985515687201790233072369226871118367556215479368615251196431035548618206919874888028243892159730055372743352325653192202578603652981619098314065608871666916765621055852642013303527465176269639948426486244305862311037148538791882710403166319175961764605978603770562950361081708670489672029306927692725131006898048693194199639589796773313410638625566702846820995744652379383715314256352286851863975312721980397269820055823253095845515384650934921973200249693361388042807397270663595245780152277038371966954462276017513864410402454243046022454667497689384589094431664444793646108912116764523617873241620043396901095056856007852668069025320160573110406164064620073163691437023864422289605065928209338532850581927061550367602382240940381162096826202076125104199357895048278768888875409790133715161520778123649556433931158236069700250659330648333398323065825803498204316954405109908718935956504637492564331359789329335765426381380349629640288134756917286534948606784877798204343653129805563686801991923426846171441480621797775373650572944246445511804755367249906040709646421099523622846155923236090734093435716864690256324286060831735461334829604776692469924478084748333859662866108308457964041746260651218951449830042480650548798849923939661727064673236070614302535599347818347202644438805933639450492415574028655300573066306983723646233664480838652664395812200760065905835827700597819251861968183033819877153150317607965570105657481164430119563562145987756202724105080355202917769891871176760591555942066638138461339855331749833024251173981012824806990152176246872261751943326000690968743482806932033285341747690397491175894030138473121557765023044645005434569626989017918067045094913385937886645880918616231495927007731528462918491785980339260356071239345431419857189045403005623458898711700526510994259142668267595789688358126213553027317480107743645472373831894245927976621790668024959872673047394686765611513998084535986883099047427200106525555839584300464141853626349795871372435588057536414687144944801929168709380797441830573904045278763645760128005978657749197121588870978121526083111160596624373940979304386307271205860699771209757987920090886482274154796055597236814353092308928225022781510496947686083415579576796237091472970675900631518164044077725481516839667587701047142431317265898179814986910625557906938149204011214313036643128600729857225420001906323109340054600986593738049775867891665961817345318898486010230344486184935537903947483561903735948902059841242093068034221320400030998688012581162125454801036808840324806932584545563368991660530906788237581199322262263841652868981351360449763025043448973963967156632694164641553653179470788536802322666797681147815865591219583138024067754124130102445599072356885580989840786864033314307162683751907310231773826050380042985002260221313788958416152421083441795221825426662937489949412561442972949378241592029913511647818482498679852718467686307018779388972902999470069489498874815145548066292457833070382364294481599313361504864525094093718051873701944622471669448129708253379992397473522096464439131292869406688833174612292637073620772934346243282172638033162976472039542022551674021630320662955260292642963844257651435933248197508800116651773096168094490175645175235934880134372486169176025874311057900394616948981621522368063832330242571760244968736531955185235591654301795370170644658242667451924051167774410652631738981298872483839280067740519506407343696088208132178577829785745486596003165971478076658752093116765043891297386293814870749270347184191363936352395238425952761037799791877599210472638015220077702918360727716462735952620859759094590703839796446967021273885372435181645999837246488151195103736804256952632831113561284329513571677374079235991589760381925909645866468167630812182756477411984788302724485855925240151457841118652825710042606510916329132368870453611280213617232384779147759906800427233621616969094595220062222782655053043615435905089405049917104334327368515836382469295704361658142762988620744594271705646279362935002103245988711533862146894825100138489488108774342694751272438394338885096224100078521403443580632645004439965511841441482764546274746627796300461412513435696119094882841594114866714856398805912184230856182332529649103261108474049042143610378243812684217961620375487671565712938944198751350089227734188512738762687436228411392443338707475360155416402147188520207460562224660383770616616287255639112550935273446120022827949976426761709884827414753704541454724592980558958613560811399901223881612009815293421959554068762670990467136769699551003043748049376718646761410303352477847293798730238533666691765236335166075378079181605762170540099399845541893662880889305103342926379898564323953401072981096676824021815256133644474133739817860832292926795268432746579183367753308085788078428021941437068338092704827147584386931793654071629779890581266709437312715436513792897344824374951737346618199243088178620551279544863608687912834494237795654042203387728677491208190232551074407801273575803793084033483106405526608647544999899517457801937884459841373280527317575750299132163587925858715520791552954269051646437334115163853594629553523511379506380340002202729429475565059489370631888865043436613946862978918871701739442402664687165993010860486428737787088372920392663473544455688829446746891311227053518002392367489634250972748954070980750524814589266851654961273106623649101406817478806008053078513397971068514891465956399655766375229560032050221292598210841151095830367596724070349028760895353272053378408084460801478599881798698568333563413858448577101580139478194556907831093628676713159226038323823998406426857789617053998345929374772413839590216983876172732920852575421179668851143969670141915371147355489350703157097177056908811184243899664315873462204189263644397268016629410584642063151000890352812745691096284288448391916040080893719382238150313148672465523166236752504760858761268431413329045927454229284304976810270259838296908482291453740611968693398593900597863298916628808250020675291239622466334622650492877347632816739453265607121057983937500163397038225940566195354033095618277056252285205272974833858776267343451155787974990229479940086416066444298206536394941490488237466278068514110913293461236751778162186885212057419082742747062682469866685367979583380887208294982890657917293155370710207077424900316585236867928271363742093636845078845657184614677437033985310534600842297398757881109270521147340748579938332770659853671922880906293863710031999751330078290133561649524220969458647723275827779650897134323152814669594241578231370654884261143668180576836098455086087801785969367139123763037040309569788945006963643763837724634038410767676386593196535568519222273656384320422688521259631105166638775693687749723833738936442966855412984547906625560732033941844092926685786180474894754974347882722987233998802853068987508426927479757688854799599906622553602281069297721484564631333412435065469391328528165495774437789370841739618749124353368661173175690117278198346097843357529701817671897196255887905178258765167897297808025071117870510574200341407827441241636058094376709146983375751695562913981058344223667243742581851598620815186325465395022159122498639310253836118786905342470981129026692608147324336016664716133341090742415774522783711167205219485606789358679908106007375872040643601813391530384401723745390298170052071387236216948822016532624362681898186366840682501497390857380264252304853863204529544268767460730559175694833193089257792865276656855282511991030220131560968994710433198294972105527658438287225180678922001481527425129908276414312749587199552136047671892349888279989830916129163930868486853471223926646591471970450235812240069829215374081118038194447116983510458485391828090066892746648065213730873711009525997958962332539375861072609557826403002671419660359546633541839777374782975228333911066937015637406172949255188168668384029641644726740297302376371226278147785585860695076152842734856085452058752537717451435750060208477121989130779817036381281890823032373527743901014714013604903080486540527492441430361328108317212049639885628892955189660403734270043377257854126416013358165531787841098754056705619024924327485432302962184773922354545238278469012316495350014795708324579241562319317681767647208714964123515069453392712967402194079845177865790689559034678831921089990120142005422944365747555284184929094637518024839186447455583366771387494950854501197002121661388838329599129918731164274801455682238473116548586147368976656948820032062230775440495999629143249636769769970714951517366549812577022491048155595959675299299021906355437755594020274467928670614593288585981288009638889324953510185160911003452249341591580466652225250074438616981466333839309914748503905536647975921551557327850857240610963842010549398238848206646055475939330928161073501715566382186812074818263900448273223768932830288587326484321555905032310711296684767313072096158724101951839667222389009069070648138747769413510235533166960871814640909192494659494244365559721431977889126069633947430459984787880267070667143893573184532709185289241887896918662776830132849612137200635332336668744612581701564224664619173709086955968896725459726773991826080089883569368932232333155054502134175936315347957582341052872806018285380055378288793856320016307421974840309476657239684264366097821815189972185721745647014392657248834698330411012647965681143621786935536614115935888835671864310035544117522240089914919540844921803843871726516967621696375814927757188769690341167478010255419536205130432456117489938161899292576718561221731121888866804521433039052159306003029495476616720634404918777506686211509265954308932307520668533302875948498429822005123265093880473522476828297218267688389463721235923977858710320861543200669404898220993087481093773346859824883190713524771899317706879248867722538415154215344523028122701137585567905346379453997516060184058778304332843601965698243322991452216408774502599211980770853430341408753342430374059470212615445502646119474709201980609973855949350272832125157241428253995887536114110557408785522157849567511855113495868593803435287561184164323272185811609293902600840268288994012044196912886338629333367681803702948996119040052287734787807568657580956046812936762035584055521172374490226698938661361344013042679058618862398958766525375411163281256497720729540031654409895525770843140301563853952840915852079995320004069856237141488037527656357413150910410313377163271594566456209531112332912880844373778128137537213265976822537720314918252167350265845003400974033902706334988209796343628499375404522794112558903990320064079917454529629202350318703913155130641003231238220786385113252135970600537344371141768694488912575357982312746710052356839228346999669823309276781672158572958004953512004546574407483635476354152475001740265728977703075144539486615595834724634824162285533151929978841537669396584447304651914297210074476298724791095866236779657691415438464764078973078838508070990206728003602867875137717289316226757136905928760716833343821575008012420823026473587042529793150657959809938750108970135941760554017927191716615909211467077216734802741288545090742981695662642961563574101950162913547897174017381741851358515869248049766106818941100503193035906693373378805858782029308650657210821143505321408390110054836913933296773006189892406473757417031055330498684636576384017650091385026949774176954014026660921085094250531084109148519196635485846742452758985179545367811111781122590145223214566890773543094168405459379161132600878761966847273597685258994085765311274493098699191425083784425163329026007386137878175185512081065194501518582213958330934121107430694432632319617961197567439355783663911799625736047798139475034929900766927292088131638439524534937431420244748151828901471605676729352185108188567270534661823122632153447331054130193002500775561187424407042856454755764517600553405900321295741156725241714696640221711550513330908548548369367343993788616558140489915948915195176180425570047792700212249342489563358828948604589684947790435472418477398650219255327011250631225725842558004232321917937295123528087753165342694156066861033309365047270690473802824193617656982244103011777493554156338966379126414623921336272353044197787955714350109457912121216692572664981432622654175902152145443565875552189343861322292214750301723893836424401965560399105380831580432063968979426629509749132439243167292848235587515132648236347922369277414253749158118579861524831545894363560194369721404021139110057228204705451744398165832017575549090893194208035251898503452715391639982568689487122860603390098249668402073989269456154896455171821923533753660455326732970948149044800297497786071793024134407178243479979109987370599029139349168566479575418056513341870202454357309455871625159413165790518491030216500650075802356057725691397964924886954480347321403342646412571048579836713547869916421317128694301014088519695079016657602495412035745788868172934739423083322127762741698216821433434733737077978492033441124754915831048514829103544054111005779500409862737320701167556299656019616749000939632883910301648790504567885982427205665476903527526861571401070685833871394352599418985149243291500991200047388094201640222449574347701340987145674383575041151359493536464975823184428194478193980394256866629424840937041001488266398067442258220259603947763037315014176359955341039983154328559129732484083653113670522774473420191247267669047876748025817728706026689823246083135411374976834107489921752901289167200076084434873549939389465442994882384881898702333406647830479986823557527568175421960017171563730429546346713408278072782942339401403069376633204912777025135426378136046778783767526286634025155932896777125387859158806411580198867345209275196551153787974984943416904211501161698278974702996113472624492031613189788111783313785036125801908599821553627181848932713211953455724919964133651242261739001235841379391479872109802251976405884188051494897066641216462639758108493173141069533386928223614266559894162570557385854218998534174298560015193704098998847891492815469272414812640486602021997415717008714646361377647837227025680957133323837418061200898562743382424685570562777561783830739168275946702582675924874729537789652209958628576810155447107872299602368617927440111759021013265139084202656941408970033236415114931648610160192470822566455847555865272790645657850862891567324818387558655831403977972136535804187885879823349420582605442719147646481307821050602744240838120995573309405690537702224233159390112695759173466755732970662336883107273566229282159450928824007717190227103464056145030610729729135082024891030591669119344587663100335844764610536909812449362001090446418915981533718880162952800839596592620357523942378706660720248423212067412424337740761478495419026509424392551742456906081123265340962529915382041056659269324764958584065573603319520433276315269850826925364633060613283089604563407823154197396850658061819125660891445994096153378507512742778432991178059442692425514633983620613371692748817680092225223617239728330099848581217412571695052852870356365499201094941635905556646036271322737541965846935611801755096330419854949114122598282313206897272775064263805469121891532051672904581461690251186712568485484726676264136163095822756332218490552534615140386006359364612419754504103470017562770793400449596405580798870971673470252509509423143855037187101408608127702094770387084666093053999807917020713725727473869680005307821413251828179339640504644038704383946753996071264578229891547480297396724287620966113387937290829477771498458828395012066094782395144074518392688941879321755494471778047414601051580025489772788107683588825394750357244098513865736319924248508743642835561487902275928941924523197746335964529582807327652883298639891268715166113763192051685722805051226667131173583415576057546481848311239231355647683585452618548164023981175211042222618402508016282846455692269741480954727019105918039327313044101246872466608680181012873637311715293763256772858176286788822782157950187581329662373059441851628345013124895446405227728333558232380265883740355177623562978619272081518634404027827751964786416956437764504016650882844714832165613901104820865767372291995048079364627304453767508003891737308283610205177400290270554744025875656409635797872370851132971864818964284222148600257695316824379470318282037188271897904890709999961120226321447010513602661938703578873375264309666599449901516559330682165452836905481602686118424537296191843364575057316900021562843017664371288530148382123695406275365354391697858200579082541884334603872066450461955573448428504048689024566139429592785409940673875129605552403622950161969218375634882755480047509058115821764597947490815319540417887188172914623757035150957259767286758520624700505195364682247763766484101220953202839142305214658088195777875590498638977243495569281967050460618890850037161836673976798507282704661424236611876556407259121511937011120456859890822399105549824253634258762851617593951308576789068320831064707813839237739581115791110754931606763876548041833410878350654564695729672689449288822826662986589367009736948883858246595427380045276134856169849576474258961378426181563738278391219276446894450751561275997752984003188263416425524500695468832983327490243417749126026521634543883077679832976255888605253754745012231646903990078268961850200334419634436065801396735892420989517414649602599099109604572231165674213451513172483222021393329406952961479312173908542874695598918322002441082803865204233776042336209226689472483984536450843612661292709699148801228808787731221869622690605126081259036715657129200609799362220418921873238791044433488418220829706098276492222064581705587888699654947774729656438464434563072715222875196301759140880380888197845062690175576166032641869335089692557990684240412712724474114553350152700234770923579124652634533996479253864915270800514539169298146279466917872757531016536535889383481317601001248804716892977588517573934610598280123328785299292569901767196215189830541454892766657680251122662322152870718246346056831423597128951749615432484052209249675661198766102975292986235468802278211784054746008020780110881404126804511728848859212765123946341033281188018828246047451601020342775327219727158446811832239162615081130275100283506427687056150198859058878066370153605337768698669397141088465715449084551415646967158140601497833949886524347022621701072613687793628688064666487695710651732564766904759114469638074280198553412941233358982924103169741583462676714846281238027863865212387184026447071095186594073522974226261599818186514483495643975982754740913311069322456814674691457975603530309227541967704734444124544072293614316391050532536650071208105885862756198614134344051038573370262121249376578703012760838688487575062001587649091820206954143000851686489398132209269952606206627037778306223554733010835888988999707605715284924552134974683899547386277468865825713328178406954999930935636461017425168854032768543320588675738706422679553698079299522138831531911264845608276793954723900625810323115045655447827082148281820779609979760297503112443769717739900558953565344905574061346910432981749034977284554459879728132277235006305360261463410111461396228867648277322330824858879775481867940955688418055187500908761782544777473659551289515197865280438908580846496946955639215168265085550350543031315689030519182756330705645382185605987174784473412970759845501300057276511934369262419386057274597316386183713428014343916532136590058079078381875602458920336727317606311258783651190809909670667956108943370767675001785389484251998128188311265907187621064097200994753682269880544735305863069480323891466408766805893388330151120740048723088984653045103410919298802800794161705733257290302414234616154508770818537458958147325342982339447477425746182240799780220783826253024779466031484125718373378910412671730958475262527847498683321799066610072644027745553433961386855067677634896873938196393057637550943185765597598517938929586686611492171312400908283784849134649411969302429499795103170439491174885008917376287050571750217787360885705927307999886508125917496909176853555334667035268252688631058867177945907068026761628918047395171974040655474335915879042070651103972674786061182248866168742548948378440413736632435273788294568419850720348677560195125214604448519307628986909250696508289949730878489464170156264710002832017657181612024118158363386055241557112949611864193938608858935795127253928121897558727211381429534317462327595837487640944260644076620725805110235748402435224272262810746038337080659016975489428244733954292183534657620265743277380168751001389714479483889901286488053058386551598515915899625070137219934837356552968766398908602773468566920626033243246694546732531414694307007240909004951617192660580650483495191659302349806699670477581954250084133561170530182058725830627667053285057884941143099885611705498096316566354650366229975572592974988251955871853063063319056053678006060483901046589669429241141036525382167139335322314466716646718233825398067411098862928624656461435883149629344643814207262418073085819153326497673582823945926657564899177109078611157890690778061108585574511824540330819808463475853905439993933453174192423862438631828469315052306432654181689546518071126423205088130328967443673336366992303985434186578253352304798656152302651400854437180514243992575514876405356619480237355369955364154265304116158585626205578234632719760642461774000538718717335567500008126352582829820294416701514619180940590189947611725400746942683239589964796078289900259570745361822710555983981646389450859240413647607678747601682073067094822316014235560929019529064005715319222697297891277912272058006820770926132041899097068264990964487954633380281543092308562727127604851156093220315628569763023434588406005123286314333891275570623961895883409927424007578221028953080287748293138901230943558997770808288789433729639961365755924308842207765522871053721744389978205888101847354243139874662026976822228783352251242050376562289016160661816775590000569478066148128155835677748908624112046746560080607547908249953068284789822859318104212569168151189510978781031294686875949313786810108976510731456865315979060363519596895999372034303866051612310152717415132935098532311916142551188006402105726927516522392510713568638964123235334811476269273306737283613860896091634418532339782520880445958694001102373371348782584927200021784813453051965997595780769646815278210921219241758145173141535547173032894646597131503584140040580551223092501124304328513573014987124782753467196291608023239761941696288824820035750881666503610662409807571260290216708613968220057479019269139156032466458823776745544713189137595038922478433831810513661773977348510998755647058227067309470697263309810205481358700069673919067427921724369387953749833928961344537427472974790602193149623723370505836426567942627204881154106866570785373466403041689045004904345733782001814799213656673679760342755564997192892688704865298533536399393431161074204182898600362111868170555028267306656910910135437278345532702479777957196706332574144434949200229363481131086126953152920189454348393261369711482162722162443738534866870856005814258590350309061233754036212256592814382447689378405759065395915149853981400119452736931096822709977542016505755577343710507481843892529627035698939224364487197441634948951038653983990757307704465168732589249042325085534408909670547842807453731117365685123955614815197114672613998171721044793581448685328281977011052208013153773923937951350444923973074591227752429943828370795742487071783042538387546210382992206592437780134282309212844075013917087465162001367162863989649014136825685898372009624159019623709577921100362787303163963211733769532127339852103664614363320642521210971583711133443173932824684642749560208717272935591880584854798851297998377454294903409752901527224890210791869286658720460863148431705263986637491385797959452614512815273821186608424773371536323695626828949164866631361372290350989152390341958107126365561275249150254521098108068433489385022803852931747688698734047235278384736297457643999481735942858913580746404544415152175826630097184534798147574707896425845606886885014602002401024184108883354113927691803083455939084908141948880606951526843074499185785351840478379991739343401455693229654077593151847460009854929728925139838463104365434470728552886270197084663072871596743013297999927600049214944661399417586880795482325732403750518608429441585785596099532882133282267975170396859587838101631068706276848118320519103095637419458083173687857695104446283148916107841615024891855590161201862705340054930217351432700765151631110921895818937258269343848545069686308509179448604879099709243279063513416333339557669017543019770178899325872817862123840747209247060170077249547657851638510291201100104020096287761655590621628501958298768943927392284920506743758010999779430391595603262305215479312851083921858098987751957393883197721297628183777704118627835494005084268331125915392651257920343050481719161390308454616314939117566199285089818707903851016315772524592498015737436954501470174834395027755308906600030825769259029785968506908263709827686979199399552341543467308007952517712225233715811244972421733416759407608737357665243198018171651429425635241847290943623227660879793110507115129444380338043640342246123821288049872846536225303867390439773146579502827465308689721077128589607793720967649882827362882952939842657651372025088777535711272321460046785364206399448436058052944813530695567832248766821515169975413978491482150052299260061256839076591274591835147096889067982814473134283407350436377768317363486947152287912161519746319180081776229078535161663890287665685849655174404672846065703555860214229082268730072993160457434850872403916916388313888898397315890578615170645261012205785211466473805453370597660727864012738282244798883136250651556609629774382889565154487957407713562361076153595894635340688372092788416284112556764159954425624422279872862395222436205731638947629062553356591389486693905540942830099969600598920959952879694773779041832596305324708876433711409659962509195112116706339402513112055382987731757079534974913761225627753681462002472827361268457258582712385060718641434925967235538002325632720228426766132453229223878982109997358688400811309435016390661442382729592254446478421934053195745231407092815090806025369858042660828919752335372159970215358643569415332548722539336686899506768630270476099342552551127001739595739071431946411336221323858722180114401831841004456200416126531117294577662321625722864659844428559148211768395205970477330325288840844673673961176115984432568015784191542357470864154285658056117198529831703327021011670769578642977780758835771188426530663895249088749615020058031706648907607816309937322225377356972142240672883634355045517396732232511664307254711950234930891231051584371445117496720708151174909450942809130908396259281495679297735872840409792626671399118615450303884397375322340803542785781803681255743086301692839152370008845573120885252573176243873754792607672069438430808008444797795188198789435366201977195711691036662625571231334116775935206890615815807069093533779638224258556447141882188061454672057860627729048937651118981642233380699356742114892304117773765875465652380744791516088856509115819554969957334265322586834723995918591845824050657711324955902124607538544152073235921352849927251996212717257283173418346815625156966730140893659064906635083758297748017330664769991579369974965975196898025210971094720631393886086044169997134898628751594777132901663090997814099881371842328197218070943920995250654131924555622958435014221674002959663852846171266485290901606757708648879650598587760770952771819117486522680644392862908252603786072806853360093889015144999990759069255915742970621277604905383532458817796133691817460593071576174221041713143282322212194317441376456442762492455298323513567782251273897174424653193544003863638789517818240706105988881876490138067224468025277695188159688878093995506344312363723092920674608333067828267340967825613922799237914177022256765512591015915234492493986619140982799420332042276504639907841698412953436592024528092420672602358517975582636740087682690904464930054066881163955256811944603842786491370407761140355769859215504248083906004120670113521326255671286169828803573097548404055462588222891897710245320847602269020911082548779386854668717025494496975184609392104593401891109211014258273228141643731012886849055892020953127609916995144040464902387784071769513893205602505340427397358593714494879965484926685803696920689992272010026025185987940404843757241668079908838434704001123401394685262250332167797203789482467340239136660148828085558811834879495954613374289624488040669730468542513638069942988096358436177189022475012339700247083156015913609032815743511142875230113471480855980748256095946198557679693798493708727822972268562427442123845470238373275967280190919336970209784962595124983098459744176459111376573269557703599119755228077453607767238468677205128560805903426753684874490410585030937857406143972079508958880246250745861818418850248757417958435239476587890043787213821003975520206455785953140243842446303974301834938231360191259886001086601412353785760369918185872785964636117338409470998319370943812708590017008465099620442048240622142677129304774574285071581655201841436384665658770040863886089709092086213189632089454965727455068001429755178040904693607280357927634848708919521675278818665016944451239948206897110959200664915857819844361569360785090252821500930260501250459902488054098553821367236362205829881254970085009581897339998693639009093317408928267998427065533601359391188220226547041870166497832370195774110833027278358345028824001328792606251151121968641809911079346702944106847364839502695354510877565119918456420727875442003214356901791093064945803376858680115839527519512387212569520939858994189714125447279207573184068078332827517377349395622201028133788177017479041261721238550700630412173826226866126053934933758113316413407739964659599910124251551475234087526077719480500262501635116590652716954738314339845960127405718362819700947471053079875292711445363976296173758291514874463428617523452907344458698073389073234300488044220441227315369567926873333362977264960574879617912039039144291083465369114248216221406660596518161059473627984422431044500929979691936681982130407592663889357045055739250066931609621702559151317391200752218300265715364523403356668575510214997248320848368897890639673649992746357369279151157558828991289300750011888565294506812533955633206648973895504081090810546204669285083688962945022585821609765665412942006716138007533871243151140667952896569263024096513006893388899055761044520454963940814489875037519438586947183977352419858502265398119995309508547326341234816192238541901300925042136291677685362350896147136779264757586864242829986038174089960104665139221539172816916223428673653874276199299680043044576116762601394982580994285374685907895147824474623702264100662251928917949434589718539320894518868773602786272060556906217014233044410037658436152034468640613443080486344375900888123181986764821564624895012815413480243477479647215233725022984299725587268017373331982255222681374416871857792618997383022628611040542705353606151362647980241494014267824159973355084958646733749540698034699810988546440235450240204823156150529065836999600052902108041357292526007574480747395895155675055235807504979378221631940822621514509963592139709502858529217250091324402434022430944128678157363316176973543774628323663797434321404018783022956279180220595539727947733372464926896186947379580471159645239299787038951364522409241313359179757158301397583031672626445495401589957285544758790707343903718173584767654224916148650138522693181780983492548114828061270214749781432684187188850987818523057625739575255028129365847626258644857045992234727185700716039527317647041793969162092210143642582364802718695145632965772611549638698074469580380841811733585213691776278846127539363022060914222870452068907499360426286624269410010442360125246840104500648181654913592069495366605512294063106712860584006475299986911348350025794624065261502444855192921970083249558644499166593033346333205079509754037058121716048450824984224516980552602336366401478144680835295968874062066600546405224863717775135391054442977389504758964563183470825546332611720472282850694938933551563637543361224445694713831853843871830323605030474729570782731368361798417145487488243709387372704300476451005944833787635843222861196018826838947860656121011030211306374887495536361884095301815788668362025825981407100047938489597620437279111240517537648420050532758907419994245120589632103044441653973452822768388345503105851406732041384656404304528492120110506861826573973133559645450293036253376754730048862334535138443627680634475532924215153058663756917229812304743641919011747124510755219699431151801697498163175052986631488353007875936803488047439680088331108477366766033736489806360833931335689236296163313052293389679708010337225425290585942314807782411300198037993158588631274166763509574673427029746245517861917604001068353951364705157006216413416059361419676939156698651470023851429671999618235219924365102864985265693971040916681895096116254551355521151790829387312951362754487805408618518168017594630244019159726220897496227366799773636926386213355573187713322477443664653433458985092159201054387203506325244506881933717633809167836835322584569799734291458972027747510907391291852293569854275830468240320247589971625783366393618353105615550920059545048178201070874833630677253390883457352317904642171135161598282866538910725228430445031514249965609187841354788379177345984633296343408544745470698565255678387356495900970995298794669362814296002978983477271330508925769854629026097306758928895226090728942544498180738611945338603075102661332216987466192299400873878828135307226907962971381229420638510925722708977165098076523841000082736967607842177473355466944623034590970017751094973457103367852588948567338671418152136117432956905247213997781143815845350601564728829790000205030137765863927080061420254636461992797252977233757040231246967286716113144318556534087196540086168872871577084187721016941146308519832557614966851078394311172703500832132416840492648958287915609539763104951831689566306893033012833859999228792665719459989378179584101059772344029052065652898666343217346781877604107571961845849774182279899560154152031273024284101754002636800966083721716363733804218940140903530787371854242629752278365254720091342056866755817646932638783007990807445958507843600131591118918766829598124408771270529254908877338755297541402368960309478142121432370572168631193139511232408736163723601580846134011874906489167315666477814466835065634717208511407815182903097662377850425830645082894221102995779667469657451444297387033764171779911422833043651492596385624658799496078779229551523791048271595244176099838794729036509286230645974332879611548959317026472513890474058656980355434754000391830578813234970504639804757662324034948864548745072167962964485086081504736481149922992966587499194246859462934383496347021664142832581648223734431723748748272997355055396178272997009220202761615482358308871364472257820500250107153549314936915102949997945018329058733600843234277671323598701583368787852173402696511754406368578222887899023844170842246857008251546401743292643399730697697731103309738462191730201991969836095664761850902190840808960357027467644670647479916045421921982951275480280123301131504625624032982155603948407494233764832831694428975116407375232352662225703712032171718174954711019476983779359154740994277648910668516802288544869254447912895795413917341656477133422056055197061501346114489260840003472209751449964613396215062828198244924915133795307933331583721466435940921764487634327440715246892911214445499212784423871587713502492050737646910429659307892367126070176489374291899059030744300307313383172301714294599097844891482599712792469540819767560758783162297934398662949521692960969323891385044832443857086534459382388708725033094525890532590412948297251877678694427109398129476402845620243110500898955641289924918501304814640923677483961294525773926293938186195394375816388809449314056677085718869248628283712927126922055842423882969815760140929046389738413868221965278452917308497032062569623789215396568197118310121952576993029863111566445297097315619667692274292156533053307590185320472993794469994583770705368671669346988142769178561181431154803346879839547558187538308738188796349609705001392874582412977026132906167836034861718628968923951043411935999054092505796636888487192574768336871453092889022688995662103226163500420042260652678609159659760137070392558397052856479512927147848760092676104361639029452432534269223633986790090153967820216613502911253273218843771698991873315870226154027031449072150319604343858209456104743750123844509878257609059958682596486973351023997612457058445547699020635705194716069702586008658853326129235356101508023710528291375031287680429402514909968415694819484867177026407537285447554535616866149951358065452565815422011675369416464657822971273132556154502652145526980978334935290208686228405517590333400835917938686897351644271680153979789224402019521758106373472851551788267208548133611974053501908770388019361902582957990675357010260629155383472963805604426273551929609558116252498975904525071180992361766763770310839819457758462659967723556736523224310054308212065779647959710260851736896117560424389694804437368416829069430328120947798954716111803570730722307400929108297282010211446361837778772129777870386301666734956460584409654570265396614933774694389525829799087383331875796608050090936397759871590394767464847292552340664839425169310416687240515876021918539643969068697707179916752195235777389391768039158167690343838519091700950147809567795132047021726277537648943894687921162022405926994638524249378248268580062424068364370530905965505966285543993721285954282759767968941233941714225144208281846783467346291280793527225277681932739066723011896936873912461967882021828369394624167433598328147512507725482023477258102650949609703383252928657310141913055842272967826961704319056053254983739548088961469538454906280682247979382636130544553242072369841569137238014321529199874483558691988446733448617521445839534050931527984826365852298470839248935683324333328939190513053043718189779030225748495706591645494304729966737298821601335950542979910750828845143447037344461166918811711423177776771167271493211207706482505765855216592253730667162754886891261420851494413309379020583900081735332616615200940069990214860173867260284189773528260864566335821286321924974161694244547691848846265745610232979384833922865046902199623488097390766800210213841201126800451838398060369764104044773234184735887935961748841154563078036810294974900858745967297676269756026753216761017297208615166245942767901964150942483611797370676366627083702523771937299573829480802584970530200075824192338023512384292510106993413961973258927642340825881146715325659657594553458185007930081431895190141849485243853326502755438388466263699243627038725561513551717124398856824013306152609428592408937674995272488898358024474975494406352709027287988543631077336132891041995041947285232586205824129103576026178317498679609355551042993078536871393709552117547161975718618652860196371539096903203915544903158944591456588884147039495417463229925394398002968978996929604438008200628190274056796248739857397809048166116338010800902097854308895237633535018035818651671199732161525562521940613395943117794650464634799233945589882608126425449035822323099481037386593001659105168615042746331531877361618438471922948102702168481610159457955311408146942177382627900011631552450853484456852972759114883596861830977508686453596472697964309516206166852208025161124881752273884024944431081741812339696457772657149099649206405904998854455462075969698944346608889268234593726321638527657733520465218281434202249964000471362938257610760644696613040654900532225545380666103391103755335972524893445690407651342047494096212461343794403519866817931390216019862100841932206956765247098138760856113329278349792271642335196298821216111895903866731727335085178150175762726149619388321833636610746284475042444635344374371798432916981946332376904256516730019451955974887310091553983220223997763567632122254144309271132584236595082960290894224496423382050465611441282279187939388788256340814648469383509465171740907090910954218751571940790456335075289050951236578383599053190298042810772522292373776943841427009406102468891699692050755226209985968885296027946873714537605603320760223022020657304953887986764834655938134242636065039915954553682478185682832526019141864589645380536179547888524502332273668821018070589738622509788446689782524538088967939517516579842959374032484266176955888212495782610921380334253911123332781224929794219575680316244485100973924766087229660097210011496557680941214565409113965681629347362993040375364047091308088779762935293454165298893871643597626237360338767963313761058213912169642920146417180840548243892444472438047893605026685747941769198026407669968212289376628799859827431914302457093997316154870464877269193209521265101512437502084655241556724292892427563068553954799621769255743577818204248588459904464468132187333700059374510916699381790666611791495070873116117545310269511031832582372821022240498013756967461554516860570490237796384582043660874660945541132501670288904490764464370210701454999998288568706275014646641604793288524471308371258962159015083156918626463204384384450043535803725039449494770573662030789229980585297081432254362235235831161347901335971555175057352151629861677346272072463129238550038230626889794840091364690544997523043473505985047869845452728416755151156683722381769347821738848475770007625872295827338351229246230451587053373980618959056003778947269314940689246117927741693317375662601840095836421128136066157915883008382127359087297721220680504959025851635927447907384168908361213814639781547000540872636346924863228761816747381913916592569037542550473495114055712683482606779571549966467816488499122025987129886384181593977972427228845347219444038845627408182863915342902549367273730602513928606437107541615416262379845311726983014708079399254985382518176728497612699782764761923626884611602221621178466073241179018561881224723420995825834425872871931891786362930351999874138703584132735829938121869901815363787293713366821217355734123194787084092438453913206663762696861730873957704213743656506159694517871926674015513881579422378839836859591342573738210952294746342455389967132257837228214830820813600859998694226881759263306480829606913726953446805820746422633495903440287642116076695900447910313026537693880652160257131399788999587226373845250084427929281333717096164534926993068374922033626784797169849714353605281785708288922668351032288280748345865330002377678343158126808974831201749479978468735059740336429701563820422977289649620214842976093134051821120266125311600781778249482007666146752526630814626548498446034870660807697777709143665337242540952200009288011384548896578363875870813977547511116906928349591490946145292961326864805474206911358770571842168468265023963412915446320959834599975482905379404886804828847031961985796464539647619836552323600291700761981716473446791104185925518713660105255696953103019184459521147566602950669610132570559159167813313896874050694154557205070965358876976170303385881215943574271401886946292375189906275766202297841259426750227754072691082415747845479967436405741063699850908651079250167488306324410980676846770205892292253879810038488118490836034543195846396963977953295195133583191615924971006686177819224718048862022469572615431859287986521573334030257571172448193158852567544960550065669903507255526859514479343025332304343028086436132804949266639830778806520312472512329297629516129331678233749830156905896939537019190112310978731757857346087556563650605900511480638067544956544439509105156008495687032316737452705405055855808263186637220144650121018327532384428003685014962254417984102848363824627038593293848449922879082937776192172008559739427272643392942087863223628721946363242218120435320773739152961327456843135090845975586631262499727870082081538844754926171342174325442705246092738240186282492558699295496146034624286115947768730489177313921529952715044727542325008468351606476960321869245539875744999027619874969071769048019790997350805297777530623752250265696321652795202234483806300859706958157332465392112691573037619910019734984470764268068739735551002732749279270629917542308356771513980565129518401373872267139646628826002969002767887343627493555643858507781347544037952865186987084627565604916302822105321939814250737668477073679739415611673028985716199728286044274868920448096707162832350006749821564502423035307845159553848476449173772834174559157503290368067756129516914427670351190408857004245824198217889719503951065416164389930099944631220131022973232639625572214148763607034714063207482051864566130997022208088357463669404185358316249622138217790773169189181237655318319509132278547537134606837035479455124295108623428872055009208292183772533181104634937686733351298422105587771127857990854852621971463829793888202573180295123156270746775020437371731468709086880236334894341769057686269891635622972468940709003824152141222162623487958415315172044720712569261222674440130726259942420700413935763864565292144265842504375064044300724008576329307162278899244905767319622192011546836976030560739934013980935561936673714047342410362423413494176245731085365111199968293311806740366685915988249620604683380408407298175380355987871985093125406773844212522031055417363154637646502228514331158891099487313200961827238663044392481949150952858132593391890095331823299092979135822468973174874884833703706219333407141092738051551235917747444711807962212023409191561972496583970534130034025989644016508862145722333718821592159239010084181417939213128408572942989628235497946343590552795617972513888260489897907409523449189508895947959033393921356870565939059049106689918468845394608705838926891252736751484998294715267001773781542003865630477522497627649844821618487498655189888103294514912539394304438051528989659015988733915605780163116887400576417855930284325980943505738754516864461496060181415351390204607812311238641210799521940024975024516942942559407526269303644618355433848740917015683508825487859220123795780908633407529294762382414030531517356381529566618319685865163118888969034543418527329236779012331933411021106768983976643689525153992965858659724531808271103903309102727234323300590613919931105797137421049410309568982234218293723555765948260400836060370946626786362612803470702400424106083206781340286403029787085260942005825067957019717196224606994316785586250002033917185234037250853039011146889441311493604221572695035665898884942925951747023283983944085303235821661958087500902967631126841257958653962435545134068052671253309005699382815952625611504011371684424242664088120376050241515187787030992125181809144574587993208809205155939922895978761407518551798425497368825548654984373000019264810704723571880358430919797025451463369618813912812650818210066192413802085459653348810262928489197143509934949815402252062287583865536316282839458427556399063582913458433587973710120008283327339598560999819023033329352400338996733836842254112571615938400519607924198994605185029943894404376208471087366735991390303136638849689216670937000468174294158606531956007475460378482777247626479540006926065805584270312464265602591242617909504252250626424845583483321335197485974039442257428390200978525159423621246551581055205883746550630964122760562878192572898560663860744105558472770473298413800184297246972650024605200535699973513006396776729149886664875618781069986453546782341929936422157018301956027283744022381996222082036547594125163139208744195466597164125059668699940045554450029923521963081279226972841691196198772129829264863199402886460608265160689483835154733480215891928708722672518388249034471527337503760824181876058867906228655899552478328733245312252268153811193921395651843492979485807297531512464362714476963238341764157440058279047238641080377088796088190182249934201839555097521925729644052803926430216008734875026827267652842170694908191138569761778515391708679125479346409402626918689277451256940057278118326254051145994025715623529435406299108348577662296455831370184190071097013826543580275084219362936247135229560813370645780172308177952723963703200100352217838449898087908005867997577801624730115167050369793561106878678515028289234344392234321367413080206256276597529792633870956303782128562785300694094137183816204840394086845952467935584588200769888350305599831009079563468816873828992961020485690175740103019352091559804960862383178574415688642390625740524277743060997608267406497887167524516221121682567713039424085154250766397593982309031061624191320685780716134059307281081008318058552502362368988935771575102705105339285950600477395817636376903677632224330725233813198169805812225868879402910181365846631416465228572989436043465720767544495169872382210196261373696283794499654560578033313833177837944690880980941539132997404306853636717168658914247577429026056974665230513472538764227911141574957170975350951045436534158786118078950032160638536751082542288801786161404867824601664677482251159447258580708975404154799836222350139252591078964900877032730855332911994369499240605078800386828828476452719874196632469128009794742437562854442920271602374294620094881595409493969545541273658337444806999406421334049623858423013269273422961741575221147789740746212932989141489515620796461973554181691536525259834593307906187324789594413720550350236252341793827241398001543504519271682804445504813750941431665458723532759907356917208006766457222509484765432804387742609107303101369092034343061942556195066847422919081714245563421595487379083092257529208877061038727307176439726450785377498611144963788674658103307375189468062403973459849626712519075379300614787202536272019072896346025217961375230242714009166086165418835205204563506991031480227580876026068112276799730541577305465776106641939064475665483906179746910235574947299160216663921769654025790370857731066764403330389804459861060638769367416390099232878952904098320051987431768701330296956780505037487584739078832385692676188033234803030642695055674736455334087660115051005279639523294072588302133897114291113224259202182983427464297053024644393973479396991074216343504095892737856171177090678567769907205843214927574050856550507104121236154254055922656931486867183809887862794625383162353926822685935009126689729540909082503637863318808323354164916811828339800775460814577812213638120529035604503815960347170204880036140655790180302214006158547693871804996977632896141730995053225283595688896952589987258429728304263674448394461259117416384243306341061365855084663778892085923198221240346086975996549307092680466946291966310709137442648428627083342855060450671649240835384284718653568024745430783681237526025274330956012434950230328100158730873671161572246555484503707858667907490994606734998214098528014397157155758356814039416565841943705348830789496364683536574275120325629924277147631294263270320860425833880123432556392453824076452299317787487289570200477972909990827264666874712499690040698890092019884370694663324183423527363211022742156060530167780039146364896735859829202582255807375979280393729710864952094649450816676408888841093447220084146661795137767753585245822293221823449267843991117714449654571239091514776855950413612437230241177500504336316484974314256213829843562723177627549133154290293030189995675933081472007325413140907969244314699705728484941468592233485842737873913441408699380260955955809578820597902328502003626076599497953831110008137842225071168363091336436973164329492109894499499833025232664815926827161892179163091906360377507810366629965430101382332361416694939458694540672357561306192401463598369324285781508386861334965901839772124961991793863886469200968022649110922826122948941937277895960568901976478386150816500265989494808073664780127117833964867123172114739205261014236894102337808136793719784410516328146517652255792832860974818459077840012822134947330504635042244396044784908549781076295103195986361047988318441206588166678472524047746091388006061986301635100034142478293363730350001409410469082246358771761630361181611795850575784353730393255488403334759276783855001693920522793196657671632202996819882476682824699056165406086811011282282405881731030035003620200172825668062155007069931627223354060636310682706560692122593490204022775796599411623641429111635080228668183898614306888185234941747733250874075555751554618245437144332875417401308321844506875201434233689312146751305225265681060508384488709033571408531943312402431646043411116863217643060048119185339008438027277878484750866244754813346552539849709963107138361491039109921212554129251368063900790001627674832257096106391298362561877561906823167323781015175258934590963538286127346240306172143042720414808510859329044624366572092999876119501555933847207242094849045412894089593350711495593095058851106766659492927294721254097476521711321456661530092631744143868821712431583871815635784566349236341518078775665593875813138279636791273587945672060080396002321400920110014796062488133468280995260698297318425246354766156805777820511831572821432319207189921525608621905215598742124051222352955353309007052979444535749539925540129597640636999841482840848698804775792989955951247906487989788633362605173391853422642038247477606207217883046306607859964318790694359414462192708171860344583401355110053792512419663729562521335230393775967890534562377915369542337892409118235805068311683773259919152052210329389684620240342096480525780047888339187168935479845592868557976642340534849584494072450264731868576309032517912525790025056172634109984549238565949109478152935379598553478192034865316516202606624412108993601787526035996769746660242321062249950226190702143895552196421623782588557849425986804789697773055838272722642691505731734431594406521413353475454797710859950754006194976499187700763988832720405447322625644428282875430168119910420049957501140863319851955629034117727114979905356133143042086551213271553080473752560213441723644233045946151440901886310190940201820082043931547317688641263005320368090072845428728455597182079710365929035864045382620320058611346569438246498966744413468600504404810379190358322922000889769728021705173563869193084298474801747067171353343321179037648393930243432888390276307587705779503743428832066954849917793289167663721162623989114879612156361125074629816330369961374439593249428842536479875949081228392667717334835060942834088925135995258015406404375591226255282649991049779605957512979486637202494926160079171859264884693856275083285726259196672879696568588748727545081249680965180766408461574913806112457886181089432485128408431158300422697779513455482107922723785933044100983993436440946266544061800011356139151759026053060124210520416839249575564581231077195220123493372187399276372718748081909158941566533294675250644305247808778946642638790867627822982832135690368216274440967527862213488056723970494979343361337971409203601379256624336334175951912432799697271165529941775449513178028898574436889196658567081633875212295467654945588927285762305508583721963625034526604045523814494270969262860531678425614117208778142890097550871488699208794886448097478626852263251539350699979100357111969908618705296948968034326619974132619308440649013424438266615990152759748681595344173916530657801087652038169522915208894867996780518941719237215718520133617972311030120079008712863262801326053750095151905494560043821197960892523411868484703954478851719922613536363835825193720538921424489980177332481966485706998700244380645212505326055259877714222697354602468495101270309241862286286842358890819483346580035377862925950303418576896232473798034490828272227878776273276054787168562058872155429727186655065659599508745247062877965081773934676707943664963160732776213956683731659066563033386620480702271246086718187778862893336133159428225836241985649444674021363948976737611636471170727027727234199320158526493640729094649943464314367193095798707069274297805487812045806013887116151601647359668842328975186340541532257553313944372628453215884500759362890169477660824680475867593209696887073622100484042097803286763165520333855005971825078983375289591328685656372778334512195443286186601349675739491617127572906420778785790865816880361037327927009208574792636155723811314132386487349741905391464354577844649967762670251706311920933664071931417057370689129187096268658264362029588927650615508826217338795034190507235137878891802921283771024743138444968703503327635202287302685563708704524352615546610236989269927398213978638893250360248254654833074437819634492204437343044644622168857513141395652683084688215722899827092149867911199229711853032557593432067666377047737325069802239630574731821527542806846709446379923207221858193094079258157080813381020938807606490129471257200056327478080032951112098687271093723020933804484250722099141106668442138766592915560087638433581144616019674810583094779114977089706106967991103016955539252768344103755622089389651158053977923648647300258076493746804908486967353110652960711945359132062988266110232416796308471333523685053225034929663588005408175822602186815741780594526773961891899197644926508603531472749278302706790156771174231731321804691526970473295334823732222482668360714718535364558470876219912243235410552403174024214255501221261779375849152371836787080000554823321103991141845156831378050600491185047586722550223774929824063186833733848722856376201900681918521297924849756721809147431375285901119577513364353643662862229268076953699531842228915023762802524809189035146111653696748167712632276333414087809161436433220820210625662453810306716079469893988453174257526640458699501210549687376025812928745493670891687574898002977297028180332264175411108407757582611728906994571632458654375172054709774139030975443504486238123155608997266588404285899460134222020335831161313885076510631552396673984853289234165136740867895647743179149727161333095727857147298004092744198525625785656699241555977303091183398844130562556849517092858044900996893877674847705894133492891699073325239518694526087781427140655265366015181290991122877309272980731826312635736071206498678954506150440053342546027913093611028715238907063072462770161951926200735930589958718495675796600323647831148449940638661847599623849758437793877072310014120948231514156072895202236746881972484340989313646570078767183076947536399994651167508209268059109460901721535940019535024008724246139016246424716495626652291463038431856667358120605523945381981691206888817310692419468888357926722704114221268862386944931051216282772958871676174457506615104114717446645925459050336715536468440996914133418596143607390700820745343114441220616653286984058305259247577150619558053463806957764875155032594283678692426921584490571687698174350989041639998561660492618768170457740252883435542522461907797746110147539008418003006572505890822016112923596684096077150655138098456305585308576972139483063956181508772295983326799295914031788528624951638938553974504285445707970324597344201707997147812934583889829657785154954347908064472194329325565024450302158667635697335083908583778762421500887832857363461479801355057696795728433871644648531680753840085709995119812201102453317072586913001228896814665681938981871911440504337641645640301248062173778742599414993569649088056769538309693586108626532813842019185158801845572672330672359549315291527562052234770437600379563440118148613714697751500869546615110293947737829768751668244968882413510037408113000216382948974835024074369062740013886447549662119325066601514890729096915749651092135405066179238163827429151268097529451153939795232041643928725106057480900592940420018095352957782938141485262196785700501197439498996169028418461641835403763343765732183668809765643364826748802035860814121601936505095439355512733836940097022488883510985435541114184037169961444140539713001308116607311522393504589398490022669424091900257598754452351677772973692338862093670401242867469904927402080934334047460660489552981527825057268522450241615143262441296007265473130657095784861999961599604807608110048970181677217574458201786539861853832252882868954664462448661844367110680024385339872343764170702827829474140890553708025553630596198493732295750485677163445466732698459634363252593830700559124768846719330123253393358162817848247595889188480547954972768760156189538854253849914049127398235831396295077420508043303082380639372344999271074677471533461281362016932354359762821960681411590873021274547229390770881664230876388478281993749677538025716501496657269081894669219997513290100642117629228105724976107441320239307276425156721927016142677890467502586129915773201676369068055363476533497164633733184435218217136823794627620998143794599895266591046445759818328091194148641311542001107396199441206511250258973321042758218306949638832674152902993423657311362975313008688595610165414167245474927849902873766116092363019196586829263581526357871097226320778406897095010181032178770623901979340261036366249677205207202309689001580242230240407524897289043788780897365684299527622107555588072262525141843398829175178779334355530430295386640568115743660792929424969043606667996474217971080006700144531704344279135338796466972161308385772303299908520721842010299686667605692013176927728380018530247459426575408019777969906826001273972460004337914247073900634092020742139664162746067550586611783824828252412434843752184416373118338041555520248107763987328837035845050972836954433195012668373135389085312381458303523263568869697443872867950047732815438119705600934155479798856136377957669098473869973372337094170685737514701526772821145884853015789853293678275095262045495011596898974755361167684805478892374352132403628823924117371767035570194185396429065930006882361412959303357825849570412879814228600756722392998342257688662203779681407560101283258952254764899266813383290151654398309248522374647455856452011538495756849084175126994068592582346337893384563807833892975552818685642072895878775331669566887852040182348099064452877234760771990791776646173811825320846345911938182013093756571267644721606515059882290496189374736361631348446876298755255188456561469864174142046542764918019608032525072787534898350979608652320705580484774238501384075296047334057874478072694196333422560387931834443075664926671850979060694611301038274015232057555123650134351956336815595238982814038960473751484942886950840849569571925015197414970265488374199314306697072221149735617766826413181090739156471224052150732204067468553339033890987440608117115221929749749356947880981230385018181826374390322463966614250049565420211325726892898282241809340696712662988512821676953699146926145802200516286799884901922794896931558390169455042851441574704509381899533015969596061400436648666574306952046459329651280790203383385893452147956051050315740115562302461555205009392090086048597399212104308758063878603321969603857742329103806800451207890975650904635675074531748309490501219460371113903574918643004338897705894006345030798438766590186910101528746728625443034686690788118232019398900356438570115839057211724251083333518292547363359015130741771066348774514192901140650576010326292695212551462356744749003526072984176485044702419262600007733580823316146818393403899757572746631398784829319786221614842340871570301384524628868182205978009001399183919895055115252833491952557593639703406233342091681768524603752996798596373716379756881919005227370334680147908820952832867029020854057614804045361726184220482270583782175905659660065303468685895750596275044242491034209092021996865540456616991734305053805892937462994197038643056713288646654897752753882074442424876507086936162259864271880971486824685073525128621387911674393916771351300282689815610675536502549945232463655726652054735843610469783965435582215270003432186808007653174615984529383029151366118249100951804082119543597947939185323508179231989770449406313777147496871481169865679086229429108396133092377686855805455240388613796049887127815659631907008974850339202940537469865673911746665373285309887585032664027906437073324833656190613064675371712218561558032879944695949612537743784260776254162892206203478159633229318254494774442598130988680341649854700653136753904211886894640923389593805051379717132342279520894521579046521039549888812902540001192093404933131566157299245361524342178942699247253217254958694356782871102678079235380317475525106750602155600481711165669892397510392744985503320228860896881426597046029491402906755038412545929128830751922072876230119471628891759345694488023217377129349279942775913270817018769006029582471073353995451387045418719532601292090587427828611999826130390190115961015889361282896956278795933027988251186304424356708633262326796601016789842956351402027206640736241297693315993188763510052522677962592826189278620906025224707719583711743787788877207471472522708206782551808888251051581797040963298326909199108139193273480947362583473200013226092640541677195257097239319064212765027487806653115904249776501381991433200051629820346217384280187147365650936527123598348885237434121624089966642770786902969585904217655648576313046076185592320370879861479217954429044669929670031652970878499392391731288456854637475289868842818026604460905714810780070124800478858280820632945028950217683290748874148660571995206170000094979877420184013275235446851154853912853722900901099565195708510765000754940771565014093090646941322478158842360509971096136755520237907760331918391931068821673328104209792500259803547235938126081314360148068806221504354664325418207986029863410083813811173368473629066910475305720751195816599705709254545929876803907345926944673302695726327075894533543611902735594104821438544220142306180427803886147362304320062129080270064736545679314530094617440864110514501720385554115385148823390089362270824421526709479101448532159449894388288745697573647826124625898175419771298997320497110451090524484466960046614414921744615755752029416327694506246837511374711363490747777161187565503353976902324928679717034229387734619876571097322063700063200986267941544730158740619859390135202877221453324553600680541247029405746220969909907409917007517728965364932470977478409743479530285570963334357067465973212704320911976082441871651088120444088704681937694703071470683166407225178557946754089266685929210967391434975208529021513754195530575177637406907964873963340768429393794389590716802263283130922584887586390122348003497722333692710264485450906791917053763226945393135230075198690425523266082792867122059744606561541058276699200787851977299128488416428682735951463666664009443055067898185352540084569878599568774186129030410675213971641081641640970154971541001538588698563022513665272853948877806974288850503310060661871770861514268826460716765541508233811560214087701898919936617628033519985279293436733534609711543627896433973192247491268890738592130627315379141635655339741240623739969250010329671677467937437766547539213698315566366951152589973259443321991283178850472325133764600526794495662571620171213073994768975047381300963332284578866348356515969933756740347645009053214517087238710618342288197729253314264880240933473355695168206296128001056649279495253092934659683323148296198831111398811651702482414784016402882901222107365065588055490220567987983963023382815963560223693440003124813984475041941942747220115969104271265699161023414267207733723585428608962510321976855678319602665568326056443807996586342919535051525504292571346389413712491186194083071199144708965677965930571842441581063788299165961885340691102196828594293637079855707393283139284217361588891638144910929866205991255025172444978312664007185621227540470294747186324457223225104228408069833044385184800888218350060941175664601820892327711353244005409404488514326015187944589033228581317047582471764256104605308704540306510260166866740829969641962109672454298811786696575636621297394738460080195471001779226897969262385455318712198810597356025043217176865964438282241621728120965291912429468066518033622765673214702794375995880791993748613954885550138516275744251118371316398952924749502648894867532817877174449859513532509072982192623700403293993785902120520981810895226839625975735127604813448289026369120843252693364935220286396293637882186258943919133458873257292602444823049419263878857576649376096193075735799229615516301873551756195018436435774414111815735232249015974602040507724010225450458935884229060178819077953878517600279603567398726423400373663224407113092237654328484050232846253555764925909980949275145420861616088934545274781734094080105926043022193677013821704650490910237294417327027538586908625983060121785411997710136850098857170980528136244364190861686129862261488375684446822551108547458873627592044238140603539270492634381491978661228232516734357740071645075634535454634098781468064698700381323575838597476332698011737582870176652950297999744001990163507912864128504806922343139610860903995037307242147316400041683805945634113576165656059447494816858529291858435221163301915036313090361265743882837891967132592627916173864282060369165101923331149618887637169791046476846468469780124966203363801271551214260138558810427204568537960989633146608811643022506119898634090753499390590851304273246415674429061995307503047316264438488909438493974229323947611420127214608639776986802460859837677915167135593906778032010695114525389953236229248410386991971972318766148714293146684917332806149263310403859781591836532295060243238850260875675981167870866365105129052860627271773207979114129728799870099670802534868121000421898328889088954079351870208246198857127461965758700960731104078769549396494233812357229888231582437002453526773594755626175700861873724014495834382966834219128355079397258981834823759149493079478947222749504751229480457568189042554306391911300583026336148212098244172439598359289987817240937665176133187125943578316951808696698512600307256967301600731787816681541358732116939861305347068627320542390731444992165581495431059375277534713907787933678212295136302868552534966510369475510191814207958620236895683807288605679369492891716587191182960380408147998830959970108192441527283376884790298155105755461016163896082152188523654643019259356959703886416487691344757005362680926135966055162558821078635181663659618536681712016418918860732518054271750910173164711855369188772016165975765583992379739642754445977561935701812751470845963232816170179620332844840420929805374362041324638329243462094274436379472878951130097577073114677991269111642809097473318816055044558153452029879859271232924601362222272057285902509651752656326285331869645495774626240465060675501863113795714148011174231412610815107764807745157288632117345382360342155313727161735656470879418676621565448290271160785849890622975839958307946968165188135961195020403258138036793765090625317478590682235169948315088830688374386520055894023534131162143343949386440504614570808408321884157048352965170055177664349260616428874739194925523328937083867765348435400895744464178444815726195854294659337891012290487758569441118551914857320881018965437197514853043286144336264218607081512960430521770675985678557763854985828805931950131009985177310371963615267296618105694528439393459703953231426569845500540105632185484746588070389836347474527329967523438541192865416785090244311723449245990131214411105564747667595675960866209906842945483523172264991229965827384233650495024715365811252244765196213039512213049553878306875413975422559811454985362668553707009299218677534175078034852975023482594214057625166795018037998306885039570285980767902724851982550653196691002936945789248763533143491539973922071869078107712557834316275872639403834657635790479762431936054756230257529215358951824140455482969489678008100205269127716242843494237656857370302956919354995349326854336581571850112424670137040859988859540361420440194225089354018672983543024139943317291364790419023962138299556120579192293411178862138059997528020930466584697926970315260095378044997725247467095393220005195019470692493513884534344503208855783711633668525341918626083028050773343784839443649941900793664766479483303573350581438782119105618218430024766897359978191233878142220196907680621007091356847906963473984426254682883045858992636424417930617971058599847595410636452966499701629499748982791273841974788409000696269699719979713157877557922040251701611315619427739993785845634573209139793309378582173642118256044369214925079751883077818541389688572400978106175833922958063974265849777669085848277490541147219577637614665943010563290918820491114586435725484570658454074729513827630361779920761313834476176828643822097202698089192026047755531224156856741673833143528437229571825855639526237669560732501245094706381239445122912861487130935568458925180700565762998116665686787095402091206434550268449803212375270288563567104600388582433484569093795240459850521511950513876123946399980777743310060443982399487382627817293877195830360313474717054132550560566764687390324599927150204181657559317626691657434674165648933377090731638262341185887016437925557746129041236968441043835565311205474001378255726001477147219695992401117509168781028798580618555699515853485999836999590579285332362677051140325945089863331408519550340177233190716096071314685965058767198442324016064727104439684029327373080909775393389304026900936743578717958868265493315518824208405701817910892142733342971106285492941506809082171840434768094878452957648038473571146713936564792474903470844555431824939349001773231508253173013112839288280107454517357799279036750348116401387134562070799108618477809021309818619193610183247696893593838563899949601649607200163948728524844427319508799719339696175754203789079832050897592672433525902727348451290853837481167855825257193168591160269113942276236268878873873117696188235196685555404044983176749576934879488913379585663709428133400274675152652940244047061693658153102306778357558473313886192565375235754242060186242099169410986272758074006262829658996325976858959223550432703027202921547049755310360841469067776296835065257538827177317016678548262367343906533852694499542486903079752553704631631461509963853075642023180548183572256254376294090668181954915711695133985170088943185866871583420302721719315505949592416423592527545203637684219825545981272868911408942286699690988025486298426851540365105675780792953678296438016643871959179794905198806111863417424014968682488843904671441494406210066530484075265703342740554161399562243052423028382329932288976396635789367944951264215950124194912449442204880829514729048085613011267599386588613986408352723527887912863206878437480592417963922582533022501814090341054110926824914991364685175870526263146764780782885045316518547305498159723870864536741173486656108992183168485562136115178696848698956220791334858099326632252095207541245222524554899796099369725817822062651835271307033111706720472121106903889208552442825506056652170189491926180295322791298076377563184156845221747648929563219420895317248222781997082243138738611082652182776109912702145390594665628037964554736932884460660242276501071765880878827939517284623495682780322616300865497400316592749614928935259956741103426956099654918182400240070027735666082656253971706238120077018225838931778927833466121388082367248763689342275915282511897504503689397913946844063492354693948714730736046657056669915501670763304011669753950042075905656262082787369849277673276367278019953591295500051450385385540745748316635174770711641591286107749338622530929964765882182764414030400216452509436305660832142011090810142483878587531692961958199752409249246550034890199756795046897717510549878505610568875149551082288652569826055981830859002554996651001873477709802449432852494369975597515096806003157662814402186585024068743757798318704253204398621874577774160592471743466217494206805932842968925708763775155568824417028862366259894188445595617541835894626241712590746820593173118846988700957333575872044342526074355728116409148101714944667218396782254520658314311570365304529050589709046943113340278775018875715410205477261004451094182657840814804061352145452264098384565451113664054952504425481038086502872706314739033145078597702002566024655901334140049372640031784142197168997455151827129167733938607956243424937473367184544501384075654847629156933152930154144979938708781126082685167510228607365516824978760727168944328612681710192175650082025784965452377742306082144341227742546902756558902256065751689730500204929629758125820562650504974713162948180771093654252748147541590558951128815213214887144648506629462366915993024899232340646954418659375040168196334032644272388736992706865543838431246709588865141068577393906283073470273803990400463156050631680266346269168129806318151893885886502374299106385042029172445974101112231482910148175612537876711593670865818815848987723216444836278761685893584704742660126066896012612940763332680017606921936362851387222196913323794818972383677537822207879556222973968281144509340177774591771196056402987195246126691797259171258011468700330028282986442146350618493073017768586659206145228594233474568438061806343638146466937118423399698261893683885132863518433758811620956163036969204111404216866214586840020975127797472562221200113854499240941332427882833199770047726138727793110131232381875321741633381514981360091215969910473501308328251898601705082533637403348525761798957834915785487249436341906477682087016297974094658803288227098558475085975556924125788291113424845619702408589468023006713269768677773186459497478988069871279175598868402444646067612834251741724669228022269990941558231127634349851628463585759221463890481037259314685956379009767420578567795540805361977260214396029713394609810888845818966512667483321042529401081998055746244477669956795608417228371883385379307707680682143892388754157323329999408029038048901952685782815793966982023575828999230679002735991377031203755724865281551867851428970832628251222854767046311047387435239592158433314540559580392169061474748372526050881923946478887217660267287010278836684499165922007813617508301397352686482772937810821149344217216063631525266413486044711489173986160554606841116395480676187940332517297391724549262221137434328935290112720499092752138672608273751694958664460478161954107353581239774469246894104369578448161238561933783658248891372783659340545096520613018613579996865826973894203837606151653132831266054841801751516238017244207617367192007472460954479729586852181203541930943815053967389781168969810000204724766571655802126940669464086681852280843669726471956856984165527335069705772948844279055195581770171090103509708430513958393234215529717316392469738552742855749319905082300581322003940087093280529097115568273802982503855792362906039559256034062552644295251846825323131101480869408022176617674767804369500128749096808605584311770008677994951206859475972915255151114127670171390109207923226878131419789739157246588885434538821120352249330688755967921555094105305364612592234948949137499777420923693984995764025122183162805401125750349884611967178046239783963240781042405156423341699203038848748530556213233643603101411483747161511407822722125668343894259050367876148386984511219266825983965425823970889770260952494529606883047438652668993009610065899667471592751772165036192975205454971254044836265670671919078136398297510301756057749661152243448436102491373132275510871118916112981041962047086427672773554886581943193140786845668332701451230524945875532429062001588229097003381355522880867746605490340582363379868589818719099325487675057172967570450039344280557783207084897394609419470209051367568843198590822156001387753673519812755150701044306151600177530064586456384132998793836283444040235818952369990159769893085256056406247305612146083209475142522792327864915184985525702269087878574678211977832696670749675360471465457886188874365301377222236303439774051545358762557501026425152788673350795540061582631847417435426649867365690147013628439104700074408812283960397401672134288985944434502818262125737123409090336060765794996681518252697812668891759470028729872528297775477637147657202713848284839761346376343672858641758053720958082117813622058286325145918662505902359119026857168485330423481296994243427235982186039481453163867000031382309620539607525014573479389630291405851456561826728593675519313293775610157154648738289096524091332121973736348858094719736605023885603575041354013929436294087485298247674655311750334620236042711902980930536643627080075653991441720798454991888281629864659803787015218994037973161789313782017111299637644317522786823487894314624646823879543034642138895815773203837875878446425296005666143195523832176335101374290061015962057129511344612163650791779803087265668397373946594862789118074217022561226869186464323147776017949569946353052051728206972993072647821862536724023876886926832403207521572821679280514142360634642178571034171138688925086487023818723165565206070855982436842214312919281849097948589513174094322613924245681469860347908292099330740210481959263432507428845985199104674407518908579554834843530455122228386075747040931495300061496019067363475860123651877198665225215313167218545711611573636927735088188532785492098776149587258185110033357210393934879002482872163851559267372905434266028388284434501708559323438940438264608551289223935582946660397857289109528045045433075134948183541736840995530275240332885383458519338333012659076019022552770834410601081246039749103060260579972160046012194264314494341262976205153218914853357490232819309461231235005239550901932846045636387540111973258914159721140858785528786414492234983180946726241491460865482934645237495806305163103994927716365001847638078603125654410736611869931528253872145699496640762171418313699699139038951354925431679070536098456831358159880166534425546428090691532857095316344447643298936641234833220845872527675631634338598953452087948684223124372872044949770252615706262246181313039870120308610356890232944564648498570759889471872302229706471350928571826696527539906914976596072691318401769748295866849590999028775601826594076161968864167407752436268228872108919645058778215845729794525961258368653553564212014680848318534031257061099834847169913444707228785719708513364714269447320800502357779499056962810562923693536844515673777430436632324758080437698811313163938032307441539698163071905903925914254659149294045457108016988913968090636309239191976399097568598704395863762093472679624429009111253515268933359756626130525038831104634143288696453725182164195633389335663954957819172917606297197916870438016938147219312624696233698372428093831586838832978736915456000899424108554691307204322344304481792921370727507537898154712839851562411923827532213270955399475131731735596236089717165840684341573740355803198463359758952751728404801828120331780290457878135530425317745815264355572385918161071053018153978753237079654259814271812021222111420182574623387372154488804441724758587708946005725696894764400241648147076558086166730620927890843013462746344909251926038242160216253438326156487002162072971969862424986381697582935123805725059728525684559398383930198372392377734232976405738281623086321076114216963595343598223508866991084180773426180663066109417127106195988799275793268268436039814787871626911637132762578704473161238478327114357590474604772025304688649866421078241227125944052260398342397306558008351582609360124551053214518692250559141906525054818371268749368195256696563655168368568281786836468716271969431560056021808582689979594216077921912904004844046668766844505629597023913056224187299661735157771600369350510738768216077546089363981020804947512153052547683513711202696067180091599175305506405226687062569891523607608175090997043841659799166485860103345432964391593408620332512220818865493892526068322756596038706786711893704729504916652646105219063866119803057599384729467171985119111734968740126939449134308458572926118723617823927139898657858901764487364724851356474553226759378094930187258707119043392823861252644434942348088006271344353204866937774049120505965162118569208754728023500049739553412531666086836379525422550198959780122594507133001722856987703277700191960550446283695736240240881224157860241267178459706556442447808547535946662537069126761759429605240502691633638925819065201128306868094747659976944527961302068649535312315818723125422843562161269780492314633367883012190211195045411188266998081285773139950691111673673537262057227513502136514176113883192282244900240577385655783305601186739565725926860385166119598326259437675744788842950718284358347595564162109467472972639892367826303343436014397135732876812141317539491225301312870195286810887835210082068851364739534275391712954379801015204826991822365911088600246374025935966911729517225745412740808457894629917106160147498810756349924933173348032688944811553502887567370948226479512813586670990302505885753598854460939110867931546714567119714999808576574937228799537437263714863287578395439028583916727581842370802699932527010875398337765469164167461222358890094783350354381403168740919659922925539241824468436102140975231763900995432533336217101230063296019803610354134656834933298120340683283522336209424918067504160988002703889425236328788036329896770152475893786047967087157530476331216523462168383825398569668026996678472339814052937254235609704942547634369469713430961386109271620929235381613252402981366354462967073148003194665353740943910016356539129594646525215425604941171608250571790530193657658831514268405242612679333143528769715303913083231189618069964984210938924768375716103546426932968862856845072353367874582247185577581623584875243845334819520541327711286777333787603251982995989208033294907570697914970937380379353151057259977381413514277382314271654465166635501573724769980182425380552854521102780947962238988638587604670702820007543461905194031419287052575219950554161194113133507156348657520593181989613152506998970977443371864214631954296588897149800692531413817232284918195591427662146525218154864185469848002066115770464740152677576504323274135729632311037224402045096399783926394614680362864445670763553802272086349897032106486162970729974928952594389791378633457429277405879862886637175136302323966035477646820811397935508925235865546676953241993937435131160570681244234369453550187401723550914899897129233431633165605237978358178040646394316406825692574476442805981660140337473676057491750764589238393879572393357571301845529167311454953830940570393233988828975390123400180537064457360843386391852059708410691283982932716380183136290945904951207599070612622651123865576046681712397583428663497053217314089690391380465903122832438155210123322069577516469217388449155526702694128008229744672012674449318117933528893396222181737792680302920802741531867225618944167182996012779975620173676968084953161714208216339130339575335106626651119944552089734391061502763213443558998021890147917278593092423259483966499145420526567550997293455517289965799163107377237310229238060867736467150202082851116447146627332878983705268742212351619987620831837314449790165997838196497141374479415598436366325205605363751993677210974048184040966856485462627905139189398179089621845205366880433893917415391429613311089799170580133905343693751943785060290778676032252974947809736325886299956121868767730112820247042243190120892725764575782451856460551589193980647378987598934091780895790122985521634715198619097220013218251524487618175081811285462888535183406842349449345186692941649030307906473739664725094531029148106273616495417300849651339013597488035926783184509019759186579066404530891971344035255265746597349848762296477623591706131251104725910748943659156394988588084775484593422396328132819883635169678406696678741085582587570686461121791607917937633013075714886552530969358455654967588032107481090802596862674788533024599055016226569149789240376544446821310879776041710046959056227012111698475708280872239399186519312783396561127048658028822500840503281033455285362513105040487945270783566962447011310398194995059557322351415958031744845664645301218686245956259963798382571521996404395996387858973300508479668569602119974951195255114741680824704202222988171113225924710478529467780755032403777813006900816902278640914047872714603759939870545232733048532683795200419108912858309509071586650574360654373852570844206065521824262723297978912010849320430753537309860331662664937302556215346979165626684716725856082384595102846280000782722112034702879212463007972899077613513810464099527433085128797565523438886249683305401521067224444418336137512432515115063987655281893630862178683173045314419842073378186240487014787873852533585222805614036155327406936785579553840279615046899875512836365975510577913879910946421146229761133291530245213455506264694880860369671603435225145504153034138503297152841197895606005550920384632746032149236612168437913675594672206658133463800722435133685627464571529387326314662697180581766795081287460239726459000918435962263120348050191170395865411795823877676303974052787095331090825678908945083475093583284446571925568181884026867583461200043287026318021027658434730901367679075939852336202340112946835234817915892415932921167255935667100791876226705709498278467803767067367406560053931437676517435110751049754213924747025832598824582125722057732849743905373944983248107415299752214529417880119074686367550515295108002488604709478967442155518548840267515474458002315205489708930231515890031665354266367404736245800007714569585737027446445478708489659273587268975909312081505599302699291519878975575890930903864471252640936757772087798536256500726776427042209597523988809749334056926851068011091969547609534751409316156636575206467146718108284930520601721046711732541126577628942520745524828269808949508300846870152154366725918553016290301264231522831620730915252125904630970888950197487058885332436046783039365311865896577805657806981236363766250747309066103819311292691380411402044177490620694746946410699587007189542487393079808038165622986690220190201520701099363030877254198736848370241240933742802944038796785104694119661467960956297900747133810973233527227191183161921951426972652691251635108933187320758914562004163132316585995210113593360921455331417712923394875041412215119289636362652883267884060129160329682593321323830085741522211464458678130488754100767155299462295415834839935396412015137042731077605714284175817213981997898980793119717475665671168505538140683676552223564723549275070779311673462280258404972152047152808649404024025292891403596385997921066176093382077707301102840639245472766268723951117397043266277540377423300009173455839161560723559029573230376758141659492263512595641729614828333408060394067551485001987052500396914801032145193432545490895510036331914104623299263850930757036245759139060175552212971700433067525354205915479974154511018986783923539131900124947741931760553030112234581904239425081961508524791824933492743005355977038736726659716408721574135830429162267687429729992689628532306748775818089783493717598966047081210450442176263735493103152579278713630224992949694276552920284467848011130546941788749481785297192095185875248790930512582812254088820026993203231752925518141165599613766578350286581607942794797186253300377296156147070286757922513561423533031073068308622900622147352340515822143469513807171370821154015044412129895944597870787478263774787328322338290130708073658809178327162612590006032879826072927921197817312310289063089155216978718348254789832538929611356478351086754894188115486919464864079827628566324595742770650708310283183895839908199565031443637222271948596069629078810570564533453300328794985330392778059575819850007574700590830995209972580129376431534294570965096950945707802815871207551246403652635787146136968062878822843504599705302547768110871242849074644473818598975103011797131256625586660029145662207074986070089461579444348185143150002013088428193005447492059116027771407021456603356039480745358915571954514008670331198675032946946688133888022339351992381432006229036952136770619797112799846906405597589193918350415960342517301218519653731268271516617023915314051200792250025191170532168214583374083067920396741563758711996441157101123879441813205812650827687922023892895029532083530580504643154976098595798028834332699001030892729933987969103490171488320067723376800616449503368935948853630150370255576760111627574148510989879933331120466162245228267411505982535857468081269818769951823599920278032041278165777053616890510395223233013890950099404219634398375598027526415632360767200832110563766979216239373948706939109873586052384526526606649615995131437735469516567779456070732388563193901123530300836810762713343348303605610366481141410471053466359947802209672275434174842821199980177621017446819536680562939939701695798859957628921325807411275985390522879937259539002683312131373383838256192045892755083785868715607138412658278207612543622255243722606737843556093159962701306718044797802285061836127309255959804233134324947734807293079605044103773965407565696162240896741804608424748698700038517195401688919452545336263099584885157358766140650869267849567648996242955043806360916998689311517713499533191686994038616215073131640460246833378947860485813881337218188403724900127535942118478223629835148458065542071597657329565453718297519473004144760597753899871322560490800201275538628993512447381181526793280935884525563436041674139772665249620557694497241612416532753072617541216557403252754155494840568702160233142086028969927944848657372607237610640967319124402697542590237041473367184031367196201975981557801923001775934136280935777934268665962314349359809030186906446439333386371545841298659506025958716406435946396325110282998074917719846600102968677770289869176302014980567398126243776118573795312073425717596234649373891585410039197177818712655684030789819885792395893276588012493827705229758170644790475792197187544664316430346358670957047464493774265488567642867158859540987144109258719784055618812864355148526972404419807620297819592907238412458559165230969670384173784369726292027655723414342129548940205232487212216666660289782719195354925850340429179826429092522659427120176567496137171243148072297328938873390038041567570543600824048843053314219009516075746784524061150969648126138278220338199364367584281821833378501250467520803173131989570016228415408839645128838436245467735825282183220098387726355309825578155240568713268543285072272728088944588462481587725516038477536897626022258298220543079826736967565328634263846218511034151502251903921560438241706042952722469156124285439329260057387216622783447215319745814711594765201574881497297334998107999674272050660440135494451026376024109250034208623665805486361099889099977937814116512757619552138096509384067776643159023714817424690980810210929561330466157638639879238612690579538477395388259290462248346151018186585710808270407255081299497552412134474342879151936180629366259212543558246393087773666085770826129245899057038145998018674135950813869916653277601860495020605186268353357402112567294107520238443905499028497764378368634824914408403885280587284050777215840115290333507825203755557675148015803828819023622665236834617448362882321401398559447944949339465133378949579790251714765367941186285695637470930523407933001364042040797432659920377192613600371068223209269615610386607112623093848211260886441440132845905890948318393409029837365759009525576939312488975516370736160180020398591887289749896068363816986901439021007364137000052414695667103638459491243076950510435132148872439426503282231768941570212971893618622892665439235314952417977553028634674999125192335583953735930701862182550227931508626669600235519136113920193238297118030672089505564886654502962090475071904662308174918179525723301909851753671051779835886005026572339107401970867771512609343086128183858993252361117253036347212199633381518362823067364488913131195375569201389289013806294158768544529069587273884909086685195643186142323954710905535299031257029688383730091778328960188799110559276987127455805646179023360715658315449653343496020188522520179135894004993733624968719255997112650833929911216749959592960468179849023501774690481730845906757380669108001485686542532061400440473294488856791596143156313429491708791892336123691077985613734387237622704985897365348458705628023609652280895541271904746560530315863526638073865797671675153895395864782659021120123029770129597182710095153325245508964541450740531365025282104557076029994894603940945528023011395462286561403608856636861925257574378999496295962026566049120281792399892876075665032935937790645589475855135810030755218375594124894102276698273395852597413046463901938117184799992833556225095626450347858220673150754576935434812264678970292287827942361256950587284722080488631644279261649217809918479330862603138078716503491030519547385944428815181480723489439373203115225445460524900739271460597118470827388625152561820944315551670060518427716461664686904022408374685797945617052395116351050578378622272772918231519948309839730854980042587687103419973613643090615724433292884488908981728265338754239374958616353180563274087963168175249674480860588090859529721783843180183793021493389820578817626288281405694867175867063090925159287244517116807105072057128705812488380626323251448441000430601642283244846643884215839168916465897376568614761946468345265044870961183710270834139060635853091017975433052410567163653782261656285789628952693331057523602079006601817089196066715051192739445726712765887159744689771176874486227101329012449844122736816977046685289955097933384842595055448104309273078798209099470006955513509850783984679800925513239941886375844539303592591922258264185184866718166990915000252985251635804834588121060090967084519997973943313522621289154203280067492404334174973231094939558122129796808628471452048347093021771056261164818306637218940174434464619971605776128380368746226372582764464326862433036227882740878895739379010005198672769204514452076504374264660977615802178626995083530945602475281925650332225561833315825556041638813910726586848101912673344016066998064613808605633761200634773531689261825563750264076080326374688583890727984173415403275616859954567773399526610873512141061336126071647322344756453376243710652933581753838750768058914980669774953247512023025432448289311764551696148889439798631936955531129737136851153928244246740449827224216777290806659165904721489863110304512627663069785100421135165438465495219763166411872475141439827587241291706888989381058731152303450786822949716129982010843700769826086384971516114726893196387780768962591058838987321347752819425687819568907482654783242838029668795064321970209349403127491564028068425249935344885766730480490574849136476839297466245946340226157651868248939026397623779670997361531391096945438413428131045799826511708104138445476824769768715479300762099863168175338831893937863168789153048756989297364528402943002453528789659770826398254268348136247983762437443016978343354833446037019352190055875970742192708174379454308436788891576342269380975969063347116600425193293945018917658710244805955649608912126812169039179876542440102298309609486754288786810078354490920605103489093305147981687279008412002278333840763875307854435662805360644067491962627561524502239771054199617210528425886038165825290762090790095389899256172728142855000905193534394491549409166890883222201963002316938332880864955269374892698440874146786413454956886615996946355864389571279195692707928379584084433356230431725334888507025988053423222985739209439824635658525574909060669727159392197931058502977944644437708069509400420185728340332378025673662758636981673720863696215411887016918730289708484358526196069659147488846587709435214390402438009876451863991059368704499481788602039291735930897336074043698841091801759976233179665663438922604953465338515528729856247400312781297047443030294589750212844867695201921078948269591587573679499161681890269108896212368945080399050438108066659716429095209505849797516584088123401008435761203042185083374484419743438112712595534512795112854935794270567083700900866562620767726934982336990169264015336971975643790771428661418126282128487101341297257665866990568217653980654292569182306283330452211251688947513466364731483455428179643414905507471584195730339485810049192825323773192953033899753553705146637949197681784706349131855228559775482287920811080883979696085182075024834684037003993056654546618984072529475497446416413706216505487026408373947412333533471395225697332962186515031778973439587559933232248641342823254099007863067404224626762529634205721216610959229818829805204286791310429019548647316584568678713738620412293838153998941427720913533682723174764081776311771143636038749458183233064448601875364031278282541835875900278521225103166242306156175613814003808730917382227155551069470133309815560137148137721157576613239727831818231432210333744003653522555413174373104669381052475010368656066032686045965149104664453361601358849367189277772892208880931536641535101112090764704907187079769201786629789665520043631409278871972123221874180169927341663557055899575422053273570480299837287810345348668174044133399686903605807677733121162882723476239441319767077007513705269020298821902489805577242785812789791358335980043225866487434178608096603881230544080112076390282408374205097043159224225600634449143298269837270983572487980302266032233478318125299615719087642887401764365111846654083565097686932523154663384970230238809267155143467860966258897166866201021576704655419485914171251401295357694882475489360127096001987626932244378037746376639689749126741565005273340336566717420066130283580528900144133568444977223415195594449831396298193928303631657629009450978312981015812934250093160726353170570784249744027236516975907604683196409604837767112158539494680116273435833931648326918487113030700453587848691026496250337114086671495067277388669861319031231387263337379451096466146623726788790448330843135188126075542783236448194715435044662915322907030249220058347192612606336592387690344300227293045234849754105602875606114033978927912470586650596615570244833124477340826861936768889397771527655718301847563637574472506043574551664028278119759571664701375412335786802813911793635288780851441217977914413582012601013335605388831696559868894422604480803603559916113008814142794646699667946213162782944008499166266660419916213282050425398386862429021891806105662259439408888863462966563791198941981352094018613163426972083300714987581168947672817639122285656211438338584090856298859184611504639955352687719550836247359755778823724151423052770002962948373909368711307303700304716915565825953755975113120598036905505836583805884756294345386086643003679814574362989711025387017080612548683148134630508780388866409122535463809457458567649232961552233973109415051397784532546642929337423772615995619224097405046228809727699451135350003576508552232637509212301230278229713073938382111396185254014457686577909533790104623384400565701285983791624876241289739773906394238457201676238811371039138319320016987186721205083852824722709122249416612080545555824181543036199616373841327743540490344029710547662186041760039145499779746481586958277763952693422975851020788053594958659009910576587145221299687950840894048461350961868670827024735847333656698720414586815542209047965624177861187235839511785752875782227965793375939160331207273197714070046115432694489122214049113775993103760545052764865161695137816603193573017928699273779662109020792587092292305179937950750806054617005252878988430946332996849610465592361177580461546775368632581358657680527481859477276223885373846607708620475871996246720680783392477855430562603798010095262635568400174897548391826670935124973654927357772192997964392870825074243820020243089341311325150420877728089471559739709726222981959317063311468745283613070464855349638157052286479385265469250124236421155514263305509393065808478127752258761781724610760152867329073806761919877870186192687312155901886627797708790813748340858030927720741937737086908041928212518265685783398333513175233806943125213589419363945931981640464455922727173510119108229505300973736261889852390168194832154030678516157825212343200163505526494064889314862468588467899224991818303449125704943070912890183820973222042224239751636817688629520742680999557936611425211934634905643121309230678325384840026006791259021041758739627644759872881616961427894379186224710008974367978067173039929778560827705038594232360104054235070133091948089656304014991499314783871293318722263625837215974191179892233741928858124515401936112861119536156468559958663039629612554203614559110041369157912765230801148719066050734040744594898069235972409200135467147815329505381499987270762380414901528845766567685272056425651270218971226461469975131834915632824527151136392406689111298418530788381070843939334047887367060034652620189897639020917799447000618833210318720464455143858107443779166521425303655847084723474719243449070303928782638576268075750507389073522252315435089184936513742134240493474491245194756586404307896280906132624261287221735314482283380535741945259782999539659526890240510831705877577493333075652429095984156808085802504515917019622973288929643888966193448120432229618842526391320622414546582063819013618650901980306155250787169886801552320795599062210163720203169389497068400838119909949031297500611608453628154482435775407849594343921681848434602567316041287776742986922830845132568551541008322709434034089528017684600454913192385106652348826945270392735716416764051683089328754362614935580191533273772974875124315295115572579675691552369738123529249399410282630151872591501284493666758794032092186571578029121121151965227455609801738279984480846982553848704122100485650394416180294198849925925096004181634333160181127769164050519068416839409749147900575595187607759682618147673633474951900764364581572058471212222347616147333627745832966169864258067640649199585722537818236913440835535090383172354977777750528584953032702528116809362121582852188807404719019343096929285515447406296548699781512475320466877553310876761002006851135988500562735782919785425244036220894845284899119172110118709619306450915601944110206127996273993752753715681069033294383271795133209573056444658123544613712593413603349207492404512915831256669088729147782329033655226234045173071571580436279547894300943470811016179663369329708663068801193537507925224095799001176284026853683777113347910696348202421785621593722234709292492406033178498920908906295356338477029881833541072011208364468388632118462921806953477408416578271984908172893613326839084639276448523614173585797410147676832812307038083170293201874059150202162332521576666996069749650022500745863705531903975153046130788167435378828166303010143210095754202499347201747219871828928128691465902931669526891375191356814353745252070480536753804611297282116279887643037605284557871452580785954540402225937011058705052894937829749264116144721294097781576177945771920990549549166656507507567183952014716602610696737452851135662773816676700102337336676491690999490134918468027288773305899500795579924343254070030084211262192292243074827353236590996682555474161062546916576877138842155241796058491117471488320407067635951222687965937418802100809556844095840090649084569684154593549374647679294584943314710217223905877359343538033553291701709430120656413091714706102145141867111365991981852202209601557793671240039595273874761644904427046314381679186856481588886991035014059858843173655733437581667025943085147136252859726321483160001438079409118451897580792171031073376036232812579303862717832221316651244888615235052746097868842549937020795756452327610032126101619405033202267693418280869806398877769597648079821036931628529143222126497349155273178623487129472945715706045097096265228008002834742190269729175310586743787598822267677745824257932519153467111245067162922357370239419755913122494252867898751759461398301635884431493274323194471048235416123097058819989282357943004313335423174250606014708306836162243740712332838831789281182738064850418943203782421279286364671946449515813061850472131036278243175673083787780879803764391056142678799616860200118785903809455678323041753527060618213748518053797144083737122017046237643199180085553625418640211109367409396931535220390003108994826104188524106196962342680046037071783000535773539529683566911949153927808875516405731488828939974063296113192764505866921523408593522699414129393544890697901148466037798813415355749122213397812303086075531589056688277859414326439485015636104865331940966601161550171828198829954878060194569707968034961502093692223648707225335434191103523007795305139718136760307764701635009913912299769057934715010201422052876881148611037331752359795125453490643494055624425287292474291424257977777528719115012028175079878148562297987462084554481333839612557228071752753187132270210205749074893790817057131338127253705834502287152703488347263627607932107136624449902401451157209257937810989803535319240774169939221022403456327153122031959769685730208840549101055638047567850336620458092337578952762679532890262982422101227166012235130221766156408110534481365385233697226303453283173051815380993974901868359251845090578203438398681726419112831839730704651661198790657728136094674676255438588457798719360661395078238159963035208625136332535386585443980077128641955917123289119496890433422832237123242444437976641276414246505432421022755302256336442283917287122574214648131002334160237814830199967409343451780864997791821854609212475601169099517729318576347438811186594861754646863381099406492525845492346380328577023060713716622336865119520393377085820797142751270789083016047856584574705477581914787932688361525281201613474200009676682647601686428829937456809404376782569595206207043589029382290043062079246252514062864428825193088802533791714181285730616639316790152458151276677154446945221099109095037667143205841117174508929157626486799283281180583937258554721114307857778944150140790291196913639011031915402612772172460627526432833447363294716150964268519318126679351161418998799993159766964011546825351653047424212955299860463614732240526323003115857813655582313501360968880532032982692874574245891261180894186705360327442099090110534322594441008194089252140207269507468210909864346657733051460168064118478500062497238679187369500547419149266815325353163606173635180207354938731371901670417197597777533301732468607047809948943172160054306629646365515865474994357498473734227861798476529450124757729970409158722061279647402881843360778119626175020760623002588131837258827591287940580711319767399177757502366377012229383695394806424386002281243524208362275108745909416990727625697895242710110093288469675095285105027974096109342680336554971411514667260758840129307627759206526156546200087063376460009021999471186680122708168212964149435553970199132989887415081193793618987378491214079543199982283830109945176147026691444655981972106354545111314017553607015803753541002564696617725972663199093828206378959740662898921370310818790324657631458847567780798009115643746058036292238758267526927488351313705189698806882770999740913041286990114692484820662042833415919789772384494772302704628512596014684771224576203992758909638435459729004891986386053905851879784705778137573491704635735274807378327554248080539412157875162811834127125563952110833862781257336239025258394646737835157253888929921992087774060512888270152107674292885037756656192043801810127580198259625381544283546174799132312384396880062129369653685241612715556784500442035676472287180035725867900628535319777138014307781165371118062742000987400478680473984632793107729929968668734707738752368852863918048677432382995556801236770346923257217176218100815392707874255077686664521319188786772297956327467974223913374631062653232786991987312529204945036240858308806705450935734952531908964180396334301893964679997887774451813253792902626094011944553577528598814463554009696229519511304965390192912793265372253075087398400247780293784421421705710549192906526067927945617106612699642341000087947848159907010222673992717183985617464709642341984596885486617699080919827387162760540136110391281085113650754323107972297822078548414505145658075057813136887051633952967756322585208517212578024621336484615615072634157737351131968740131389505912282620997459909586675652859348715172708229028618254966606419923642281679431811297603015206381634021339151109175014651600502176573000544107924043782512541883135621740984768489580471660415254769561205022131600666758215597243812362182870093262682686918923311008261269963937987378097196116230232293749581028603867309993956683249076965319375187521464030614181796495456854653519361852795203076408474293812019697446666160199939524114898891337328111389181954095403619175222131121512985360064457136631414706277796924688584120175953846778280593446548687675083860852920019750378765751616037743565122359388126117419395050419270776345050923931824406468528348608670538253408394787165123308162206730180949101711345574558452150022893705705836347926205335586354031149772794288673701175552437537312432427510628951616709717717110501877709431630244201152963437594287993028685334312819494392045581459378278382571511048872829418836475558532891663659583635363603506171194434869863138648353231288770681488266296019758670653551418483024628670477027947539068486605814347658942720840835119864349010219767051459064453922003671313323905711752176680884741237139346545549088003378579621469784428119314284942208431679130240235469175383016623730155524371690275049281165930180489084839289640932198010628238753253567983573405097325532585983279692207573865393411581592954852117248804721104939670419712985108182386151784171065675048874244910349575978388772483916429858950351246467835289438885498808105923606900677408430805678179517173947941803240508747505896782216636799850187659295141965822892587078854453307794240267922312794399851434846266296863192812414627645096184690211830553949283074755351266497350737321206007455884140662217973747851159622504705277540216190075036067146368869247069630428420308521931575646731514792622768690244719596627649593259288686967855637993677438920299948599397504255732568850868558363491134024278642676442792652741561763691800620088243429002698903482070039586007281725294876922406186789688982324018743293236424723250454132673770765331082479036199850241693184230507200197722955615091135178526010707349494853342244638499610751124429014191546739507956385379134439284011639765941302044852249158221157299391040945765404197472343557597198180771176754817903460948998806612322538856752531275297804923965586211514522980424475407226348196471571030742864697505851102591332495417475747680808447520730149951604753361625625230630518394001597146998539468034931974510280519198571938167969772786823852698654436988211813739085693010135827650522735905325180660182151048995208399598118831932671564118766447471781826616523198780275739131933832413741449173334613279076101817989026298273666395225289039921623487561529399397475948133720027638037231824503185046586644011391444548166262659698895698580635763728053241612460380423677401990667680511839377711546608048852223523672257881706396471545428561118263138966261243508522852075099995907261920718079116837390486771628194242721861921487271426590082732875065313685601227224712015857571324181152107116155046738433014848875954576162235744817826296875157555113515781750725287024141234002508342572085640760038793757912741250055098259223798161077505510830814125341584663466790992858828997553066980514016430218448239362173027602395237112744450363485943463465666220136096331659535065809524823337363239301625522254600470575706803183961470688838978591753258704219872896214882709771735854150033328740419137920948722779821585928018700724138004321024998258178271854192268774473544584574332127894943826277222071884926440574905063817336687026656105906123598160042834889764744604689802632991622246657165771160185652882550496450296366747866622777303230136806619657866830390617555693208230436511544059742686417434378930405256008623485493274854612531032190832659997427143652886621047860299774805614975041193580141825787660310651846728521218112411429106265877534795287610094375948113188942772905788506403862847445830369751912571531680093326101478277864491432315898522788868627985598479291834756738180586470045768993288062895076439443467434068255468549815860157347029738140330947142701607019403218420711023349287300291782131659693355762477080298379503341485047499721187669272619142431540589745142457368534559770963149460210805148152221130902603165985191004751922059628204665533482477135513056127183411198668469654667643426531395050552313050441634704277489767711967744131951108210164063179142322817718681071095867516906076468190281436645673746888597421972253872839078848051638158604201963073913068132399521628779625670248112343552685182964978935181433845962169102235882043934330335520687497919400039389226278327994686801427550693715674694628737725445632924428130842776736895210905867755478283324049848867495928420632856389943744405844188365212860725493800966620247657185115353723195780662137864413148389695920986920461041968599961259377015764469493263260229267098531527175058850095728061500069903404908916131705578612521442243572237447416774619093457145989949926194151546878126184451478230876826456853737654539287315922292137321754929394099074013694487734034033765261344876897077083582745677025662631089479831517512956264832995697565550255490079867198760529247475781803551028208517288051945700097026669864497369831305805186263103567953272157173628819961994585232651760392978262663742907797895943021557575140440611085709264358199611796180452366838043999568546954671733335410811840161965245219081548158213700688230157411810206521129143962102483578763894096046803230290420676915482846985387130966793493488860771085239853039415915872930383326154452616098697821393893899023400511558466073065623964558176366558181572243675170639720404745197922400140469177623966206173046347700677630993260253734176085550548211325670789733549134208809060341961561144104936935278678470509235332511681296605807485637082704215340357531111368972001224406848251555413206267429032655968646650360213476004283464467028455139644834842914587093738487048808382020908017065402796689650616222925083556150352484069963358820767491579413586268821518752456034126007277202519336181198397766202047559775744396542542825975713423980765884697685368334729850977263697800523805104906133704484553757769183978233159686677460361175599338053217181347313066071040085649162815711335535151287122229513917106703240714267245547520685894127582562348123274598037595697080288423291335375541068615014893908296445043812885667974941316901724559583538093868134788065386707092339727653712835329673401765718698791841088517551503486763791487355132868960711740886761419184355296869071894578346574765581287077565847917093027652025347636462604505803380466633816882314484070614608403736089302861407762705444433155212569004865903189281216820456031468934325788097481158176377087733098235628300203267585681008159837063062340429057458243882446289313815431383903789087828926676344542961658316318483053783746223913944384389553283658575742275145551212730889005409901347651387453804425082862885817436524000926439508595960390405158925475850147244472715504738079666085903114919546658670504885811308357310748279613042827892750894771869103863358102927077245560244023043044884028409022127544945686033199253686491110840879381487967932611321065898982797750628486239524656014525545702817174371436581849352463471800034085706180058967202624335757989237995260614419792545261299383606447313455800616829413843532001874722046768021087480001652629570899942921811589097791928158224833457710109666817709367737946392298217627733018795916532441696305366478583902856034522636970288945340748404986364481071377360262902670384944717032850208140326360389000533575944018914475628412073456705321870645576646483348541496227039873364448711388596656265927714889845086854136503058759983990788661586282592359382195373423545937931449086407522566366068101080923993165654699513412310625220633148548146583302018679439726165356313125018499442738854055790308925940074941167437917948178498804787373274852316499986187866099233965812826689781061818866539014350420860603305957097022093221020967348613137374127082285702342135107892698405243509391608767531280987748722488417880556996257312174159844868594156439210320541207747385797376314762551908226224342974890606375912673564586862454534356876983478394956442012594822679384283145935386403083093834535978343496357258129157758139064419561361631062895824924874732089666915263067908830867050195955155909831522740002064725534498613875893596424556015804004694151712183706353917398147271466758507373388427306227001543441307933799486388385258297766599065243755285352708187184577967301036062041286621688206686246706023686135920207459228976107426177055322147715623488629818614548321188267941746061542904952466603253993637031485669854481426718323193311947927362751192340472018482731473997986645188629413685848489516622298412604142332224433086415046693893980392454128092833731402438530178672776588142986924420275089402733786034302987531387473361826953762926445686215615655858511351933549043955156495939348542481166873197417153377809799045183660785110096600268387899345205285932587760580585500930517523445357342129965668907398315598069873092653084446543186264705693131078664279644368530900837236685199626031401116033686155812852423040824988216616950918561285570835997424624173662099903108456327140924004891880455456642336907290879616257290393643082088272685491399342296877781821673887597154502790799159817973452777462381486894747542496054304155416524040729664377038875959631824797888959107898520561890931956846239802562634115634647094998017578667421201161046778830528535035605879797542469443073002374531760388011906469628192128785502762316958228852579819887767844961139556154010707831062072838518056736709031511469679237226241385233448793848474860550807601705138247177460320726435575237000034656867746130138976446161776824530315643637759953669575110961687015459781945127947437447664580553831034741892034886345867078733376742202726061753577572812768232617985743686181916187758305228293352607113003781870710102042791733592412769614586669131167845928314529285690149744920353182573630192171711221121060985869842595290648144625349597162727190021951292972183934813913876210017456545515244864660185847568727759611749729944215665025500920408157599207321834624669649387618818394434548663767653175397536179618309890063487018526588816376784469367992135304492603067221179047484191706859871955826566042071589003800555946684116764173437879290210513525111377829858322615296676781285947229364635959525035930897412352506287437339027364091151766108519295174406193492731284707102781654072946620085093950233280692775621953578296082939666047895517671981613559714114540880764189917711405540977187042008487463764687903202479425656763730941383924994315212077687483528662331223186527331381870516020088799439109337665819245469083044720700259120812458156568519127736358715306354072259617358683280003078397216464392672190041280938409830829803095584694549831742842082356700022690772739841085438407309566136007652394778009164836522391103246079373370494408765426224451397543288052264469230521487288030183901393222184609309226342915937263660333485121149344554438304340379266087974017390247815467127755802488891154291759234825562746210015664787071177658894462405002889371836259714379874321867794318213614546502225415604692462100436194982778818823501154912431429509495436168729973098471846077603218117753360191681710710005328098434789736483795844401569532978938488583455733376884859620395498353777456407269904716213113155968971338197312485727144066919168922269448454651708001826633697038376107675031062710105805658304507765517366978744652075587392120986596810932768454568431355047503472542236157901203940895529155130848389149225052098013753371753072574024184192127734548531738906687508105195723534053322442021694977943041273395703290194416422357181268384392233949295030382879479902089877462761311302134242302852994306739789370514927288764056757484156280418999037910961019499454600859804568989075999501193102583180066713017265474642516059705404721623014487297504563620577633865723589401796233743242001756142537293276766713095950543386172079118356562416390838454377617871388203973857528856014864755599275672870697305614636549060815535571944901660687855335852479124414657233883409341413150637192571459691914597915730112473130542459910062094619779862580374170967135493192225150070331913181081069934887664032791810020003196718630851225061096009997419773465399372549688282639152478176519525838783769250278907731022227743407246803483939717683124635213066672951863991197026525888759775110287888788472921009801221079239079351471225962800139023314245986150462130854220771182335614816310017234953425450974100374491167656771421788769453929355807217235611641218130403156955907802938264709185984239374627342802727550743422645161636412224006923600324068595001492248996190092275673585101571749975417518757073633553785803699232358656130014101885723520559665175777166393079883048575443962108504312943820265796327291373734152007904276619471094355565494206109612757343518905951588044426169530412993300844878966556929162460437454690451993892877970449802406050803929666858773641906587549968589826899176024152899477897574209757463532679377240770451550793482256977310956244897934228628003088858186341474733962439912153423793637024064648935287756493925638519066278074139814320714166721903255459046502891619243497052039679253715253960613640321411355774084386736304319071675268947505164670583438394278583275454150421664852676485018351779369179995991111587451707937820922406485103820816894883734724403192677084501568761467379063059558928245221993873652051950320070552190862525624649412430664124181101604972788929350831204429864090933765457583626517193834214064842224746702964941405941677318279118943234095335176771219156748887487658972765864653858331714929604526187470006625781978445335966776205578400560452298401291771803919475513380334790715459546506852053914722024313986541777428208433377437127700966738628079495474594780411079872207260162779645650222420521468867914715635205711749989175373527393453308237301083720940912750675984699612936943718676037639705043506581885626321868494341517886761312786700059519137740573034757821354298743759760156892308702535160463719248548504172180706946027396174701778339230638549149246828929645040134188653694179611466325408959464618845077234847962609048040935621420376597075641494731665402766062449755528518992515047094860150039678276339972742196784757792845783393852875668890184744460791501231323688261542207834842006551761566466568120612489148362124888015312435405527764526955941726289442200787130111788112853799467413205341489172055858212956606734149401974623443428117855653042792739292693971349917677303552131529275641221621097215758061548620071411497642667594816802203397044839119865351794904171231923102363467129842575747001044779435675225118455852511899534535617898858484103140880471646484316051537023027824996265917258713181607264876647191998604713715174470462331992971823613774020742099435541669950392301061974690146844834056171303110110533422660371955454385942261945591769070538404083177898718709699809243272973317413979461693882423711078219746901737695094378056716878926854557237255074996080408159889751713220097763266149740548629887649334786263662760747632293075516204356870566469561808026845062453255599813067855221613649671598786279522787463337931708063039187236274818162461314795802926803675350021567250071091432953951942624825284919913470027326401932750505700660583434419385431352621195391306190859215791819299094859401893801468516499454278213737398714526864510259937695268939046379487773662580230502811274272449210762011403590457714928134554133594895344196171759338713781065806190768295735333967668760642532574346441625427524980190050176173427364011200299969327569874674300464463080178272744152780620317901593459673275526747299679159833570849624161571871863031247049353361669894814074433983354029014064523492268422510037268933230061299252411606108728922563753964170081876192651343604097511329611771267281529800133452686437206512063385096410776555682513996265964044775325701578337796519273974783505079276628961387347659958168801028717501895314649282470908334136390999138935359489704023588080390031254221882492630165520196362374793462052847857300757813503229362831879475141706700691957701015211472075216716997654281317687424170029307286872524973441639059002458359610900383508145239132323783792564848085561279164047819868828236649996335571047965948583493651095026386815263492687156537024848495707674558317905491377341072932416914600372085893911283352665560631278972213618448927922098558232264778665150419968668904242887622606348517171948994558757342192201833108839572811192444656469480715478532052877766869014415497784836252222606077703687128366861901715993853359565850505829745558014717086975894055095718673814129936000421271098044833972090411827338521583678675965026308309199270788934606193750837611405182348910128925504041849758943086900468794728365907050635919706631608375908302522784058552025290443091355463340666018269577795321497265607590563730964631763652902307253929697368171421102029768180789237022105001574891773874375771433509205181297794373901380183027376593588375212002016566839732821152923721120398936312733036655312003303458146526982894015000026198582375498855212436007246611186950181188608325723678154293705098900861441342791039225163406916575667144725532270405062419674384108054327720032540350396695672606299594414449393568174627267316912214954677158589813945690017601742934514000674486691381712540888053431653901678220358867352886161695948128283761895747815651720034268235664396805399222402638138327989915700337560969191639365379985361015487181967768947017072911658745698779800754973505579980136437118349811583847774600100189255675585807962538581889994249821349508323645763843560653992407235503959176915053678797978300100528852171072648348294877751697110015410593446670982955704996182594202248661967507387698775214252603668837720732329268209791338867648583059306593566828188117390025387700816307842939508620337461717536492819068354504242843701472963920483210037817073389132593244037986358734994506580408397830478246724202803703021319604905963202254471464548371583493975617385492872926432708555177140509978366414262955349686969817970731113285208586501349227519719211248591249990267809082991161686125997746032923071692767784277220995140041751097830211408414267843161781368752270075034659335395120012637558849128019765294179480796708805013922753666475294460930580699224398771077417090612329886037846382568080539652873010763830173145866308898310565741979770976432611700013874393454789896260814043053965960086115572997751889974024994569653888407535350041249885303686462140080886951687414376085474608079661946691443439595296376596933982403183267681766791646391615391731111173187268079494069673297145655673799447460128928514645717844733332854521883221154763058606919578873772294661229119454603640793553658014441900147610002284285839019028753819826522652426288959239042206621294760014355832498939734745636661787780854345490667253074263406756859103657723173188415132479435833371656002555861141379108648506319616073734896282157173921624421085616613948881960599079112661248426832608361597645440782444490864499262051346686602467127517974062433139280202568842235434798835295765982818126392946981944227770388425475547224276023878492230982990390826247751132013369415911737975830852049070907067245107681290923725531627065061638841620673239673323707074531642777495991177399548607798667591368960319841152989513559631732461028389533312422359352152625214603656289262413102578077101821260589814048870235091234256740597481367354920682784806956606209681820917413367370214647045914286778887011134631881178806478517559037522316708400183052567621798533074849380378234251364795376837787683822646608112015758196313292520602851648012141778043039324153712694812480628884339427976888822844240514553498026601210607255203519920673885166895761288624890845465428170282358927751286931494815375306290707118392606272410242823067303112186479141229072901998742732549418174911857162550820265271013845410154193005205474416799030842428257350800446039414821620109038311645337441625871521387294235996162209025793070872679455002405387802789005047060537502083776509755525465884778063424223456650000538622807817849799976125099809652686011294257988650421303251180745837604238498149226077005219277781725234678007179981750322755205199952175235957346045131835142043635290918340847022880605125139631950661750967910638538534016997283688980585187245367495255148461442932411352947395881271376579127453246671819422432883654107918480256733694649550601591229696664605363134562352837627279420588351487642546187567982718056899907536925191632556387244093831904796015341899327265715719733308288920797917788636385660952401689540549680834421762338299936887378416656103886571256928186844057840820199795394497993244438710844620767733310038852763499828529113148692437941936569311165834544791853991573854774673131605075208471868901847796253170651571258216295237281296641314018655799322249976156934995025385504151134619677209418043601004172430830182843197567620041616623544496696574682895396862522430115249385219020679136763994895479582389431951904505090132951329995058660660127023756900688115604789068536361063334309788271752858912382773976662311534899366604477783808083950340701223243200936131506794853296671233707799088292195826768634523747126519899975729285525297890271074481202933496729393433045085489798965874509960406404737141281669465218546621763005280919598141356841917040212530271686039734489985907592487892244517142616590872676539233961970163445627743606239477447932963460745125666781779029476390914337660893618574609706552861885411763062195800773825054675633893830341142010553374944668427462978366195148408626095224123934918211497155936726849531376632775948333200970068776698337339763494748640016360992018025945507662870052146131993601222521554020117407656218219913532001394129398540412730413111891076398661339587229959821372398069992278236741200285245181462722673883443997048985998295765289388910721770148494119586542298491560776228126660012512992849568980357923667537075274363845438175326042237761791682345550235472667589886090449188933327928447199294071974240262623580220291887689683102629281030350729489395103729782102540988604456431604694087391067970843953343687312267625777122838856209492438715863611017158598902635843354243532526284406512622564516585495095357077835406481741490348716915215077021132357245746049844419882685362101660363530959855576723045350886469803331087958758706346646446246447527613847470035516961681816568701787880930359272302928633814399699536967142812503329992595838132796436587619555400955542942323129279635114232243979257065556075265268647215432378354426549912931035665658912537981253729376660277727184089519756576378977248817100780160633139846714781655175620592891720073133890593724208650298663787446836194871858590624704807018862121221626163100146258115738490744998490909823634311767048311431589730636327057117726116336080167163015230705964811830293226464190572460843614582740296903476466633415449577322534179717330183241427987433989877056268040221369126040771856520257061226610169019320939796349143893269923021818143621197984357016416675412974886487839700007601396153124689009140586170349016268122947098743460977945824555448403331491391165815901174506123933933352872013960390903227536013436731858565850398610786605017516089894979536251370657435541733701450113944339984815612840306709170754150146349577229986459333287660447104314096292479376879559423475028505018677033819375849023937945690783986296936100327728463838733962648205279947668009100798495621666994344238888287331389474352606547948815480064334656756433747083204442323759470937456274026541634631815362039839114720133863754197066670558796285592637330326819201020097300361595103554675286903782855447870858646236480778205564954479331836213283745286877438185485506939689895395575594949151775192286880765040717717715371401316561406957684472190115622279271767436712444882346534102677038407987716880167278263779442049775714283249182386191912923645436627596471644095542946596464390799076598946117701491078605883418076323335677668881421774279165338732036989308865106904748793385124337093774181055136364400429861022912767848134641786443374447147995048569784119495340995714776226852422027208156035350883091994279607851740714449695027422283676457022376113619529296170515414158005687147160951170480495230003178215139070582957465314546588708586552206174003412776557651522842755960522333546172519639702607160016952945743724667099794721875827016071913130278801150279888775361789811780251321484755634184996711431043005487942494219979430625485558334991190096991459747164632974888032284649995945977360516410819096687009287766044378758203890251043085076257086554177198623157505306090083381198201748866057134075602623526854544946797838734478651579168184387608844021972638004632836093883245810348325002198993523998905080487020800836281602044389845327865098331869646950493343346252779533969159231220013220156874124323668074473880113445347126801258902932142669312132518901568147672499591223462937959491037069470055186573585150776968385714413558643764019400913074206557871409547419224454995011202454077530290574126276794843300623628974292761146543340621499664469975521882079322920248307434752223638843599735892360647908950355575354566430469777302530581338771137763754398476607586509794140720680277131182146946586496223900486264658117687453476354130284923442041611081569353433321911593205181008560740034336033755126280429883361818645703673838438826249891105261597858761817967427666510523539185037035639458187060538474929671637940661403932470956456293314988790562513169804209883474338595896120686500762201757812013761026491251211582537213673791175875336833790941759861324681302902396032986563192307638644993843102639872656584198609462757601911662420026569368588702515058956746986200903476164728345513865149128348545498546356610135179204565843359735930133253721818919785435125953669086461902600667789591539593007363927076802079191495092886074887556551946744091584885583568123759513185415919149097689610544502945081852056711757025542350393505229583782486946650702202323478236200674171530765598071461185646151309411582200961685373152619403101549391165056961442042222092892489454647731386582931666062303910733297494873828569231147123193816990324731170946522806239450891070314272408825134246827291679719496810675872191120077085395169858098777549856750372476884588087701822168402965940351527377128062121101719672937220033492837388542091160387834962993340815827681424878351713347472567271041164979952999051297849658357855193842950756976616411361239261766790484333143512484591937432235837366507327451984820525212743860608605806062257497976974144814026131067096128835185519403131951451942999484939898251352086929338891050935599956655451972457990786443770198452830567662971814147888140820997085445773703546248744324262711788475763698978255289367960506565803755101892190961275379661729225654992353623342199176808018575292499040344289105291089096477231215549864305197143429375090347861333260061082915139569689194150739051626925928716432844317746086074161933052975395945055324615253810688914048797103592284392471990423309103588742299391863113870737040102464973827364733528338630136669068553032086143900447979474454186136860344141694646491546525734315826478292762648249986310367512170392229472768458182122058099936332003433589682237572984104969135574696886116177576785254816827098801573930964063561920249357890289786515288719867544443432586617680162702979874983628555409062557659362400162154472959529770416487447535762504113904039814883589026602284065003670039715215185375245152144252306863670623748103717657418871795506191711962922732016504686898260995118106847427717359650399601564800956182163295843940394210659563882552738767548531019529795618150255253199510186937585314044277650953790842115719524541724031584271541176268507049434672725240567411218855079391429771788581470467887527494716325646747887995953843786353567119863796657298360547096142149648739368349606145370663438476241747511079580048778244766233331745078083404404288719141338268443345663727135980414933225531014040539701992317914208313395368333876723685934687677363560544520989373479485391420822403075875062474145740580088545661769774051294428388085647878224718688227209958762529583815599623146470605931647289889830164141685169598893296940165766449468639911880407160206008678821233193513913199473093740395124823417476373926209152576805458247440998771350542899544071227452522614972193249120033399350111151380066693407407716816297468891628977625598686527153178008041637328329734435021591771499949742989414158466763494168609843480240156322875600689489060208327049077542601384426610847659846613254194996853267311166590373608655462501966957014913417664585900426487639281326530967838378625267246141141486502243005749452069098445172212752503043401516109996032336773408164170400083875270060443736718704239737733195810684859859461139550570287836984738842069102355468062938797877407934766271539061605460369030503550782554482258010325838753784879227091480130904855348180444195507575989793165840447321489370853092907472842333366135519640259108643226020591234929426869714547017392207424758586837656755022306969015437098353756077451460076592034397775349668960142953198916569240741441184178528355526393396543578338081120294099323766448194144101333924269010297933667439514618711388168098065631471894331823473581328621618453465341195881496100528915252563573854837172246726017686544929372095833358616973275151494553241827519823028655081934780472751059075301614156937298182063221522175054032143359911675907739781753870977997021077866291992716709378611004086376752050243321057158283040281055994252987651880043440328436268489853925233360092898360455771980608948490670592044710405435890533338013443879064229862219706203170751167080529634166254569712141547132322013446797657014457980303316026899232420456249075726701130270454161591351982361432218644960715587684741111198369194409327578791137124442182771630142368825162899996134116526464698417738924876208112361059922102680708412558637732056409038938911624728328664924885442055779628477839236321682282812274875401231266130205724970549955512643470715710951821724998907930208068071193611968293102282863748473790793532976523605321379882206598729022513557691535761392874981597021277711586931292774971135636480762240204059433876738476243471268862895833350526247315319418653329816660849307732313772913795259596026495326416853957647900427994454479057829127503201672690240256376343198807728571132589488671419332507774350418963890026031801324220749523113893370854405987124484794153618116963308671643137075772205122968250209431823400760066605780737012679691381697556562045744019025525811809582759277177919856261778780469538946401513432668673787319500655008863672040858075177463881181155970648778171520641694565253033955969819934265195603564726875618947616179768162664187577932280451332650005211689068972335856589780733664350252545628020950314492201226569825665266298277076125050886963760913628798789413025643830778178494982067294198319507949923911321811606785561439521343304351056652478375467617534383558238968869484149234952396166315087411411029037960200841617661190780738422233320028425361190562775385587086880260518455827253658043197706920926230450347332103891486418142129765871350031721954256207473836253426570563533456322105257231661270718471499301408600825785616507570844786394435730104523672910316213268402142691129476120036742038498799763756162542561651730200657619598929939947775523946434439855029584042368772641752818092575649799625631642908905537251385507430040130544589215611322209398892056182145992107654612881948328144874994979291692772800224266856980611657011735719222399100205950266972443491603235903987725378557891756664511685180176982166181954019285586158039312164292326929797184733693838684739675424792737953722676962958242398068437230991477420923166165230493959148844062550019824986189459218830739730107914954977843355349709866972370082838669449270447244162704789819574605463669585165240119013157160957449494175151977943537501772825377146798264968293906540607111339124827413154124577913667834465205185818653530834237954840052851538912037280533262412567466532605510326678429626981599628252012810522468763083134648618268111046506023158460815159640678345875204149280581699053379677886890043698379486549037217362881995461060772546104802818087022899003717179666779535518715844844974982563682052176192946118097979134057416238486955629138426279426710379179185514666822432330979433454646329740597110865427269658889069046251084591088070827474113419304983641181306787997599427916055107617695065042562165548298632680143873117083653869837083018727512972532432129983411821873432146864785842266856878479683426110243493658432136782369704253443214921619140038422909963632395998297845517087570988738562200749557733482210465976427154243340794412168040792598528607804513118044491444211803600325466862437705807261920450814845617745342520986633965234099600801698105921337964131802582476489345724967064171731743001731535204046886503652824151629106884264678196510151173089017074471716973481198732140559473963399642586319787397722947680687613939483401883907208714266307982397193683495480702679838603832408494327419700245606910882655449511814974320876525562921965824181152034905826297643506467763717720368455130156184050370886445159014859452062197819162683242561455129148940936442118177934654494576633968539394766893633178510419670032804852701235912810957976061052938640090538486252560593145678313860465957493859384259629659781553582382133379113561186635875038043904319770328755720664284763591491869372155866244182171294268415982473452252278365187376301881744197704577915288233032809305729263279578941485399969168409328422109818892268360877675531315294112667274914037468123491505612224897585092282876731584177511606906496849435452231973044375879391507716900612272837452846447289147101777141739577933237482283771044268407378597085094060865522969433334171963407287688405240625053790517418242415619480532549027000583357015403558871198573872268064101820249483921544171138762652813125560194246347318829491679478367517949203065068700177512825604569816701495876553487064585059998216371212251479437925856199992051356295574682051973724825022742742942234501953400926937176058685928300217387981335986287538394475087428084857075577191135966997144234809652883387181267250320129005085672091605958950277035236579041486395368360881678051221668601075526600293209842195012995740640572611806550021193597066054700266236973245104898822198955567744949334002761552567363190083939443997772294055355289536321985020573140992741568867723547545013710379706568785162524962009167973031010094409255507556028963352081977729314534465055385398685415639146482912192866410802121474679553251145128520660387335226285733784456729298659464003792170889096146453307956558028804069363539295695438308709625317222736403814324870009819026806549499011315894732801408172025877501422233812824743208063245941192493491894331294977878851485828074185281537796993065027767769861708344583238107270131480535041286811638107109814050831452837653750389992198966312687370851060328162259050246905863967496355765894640869590724089322716077465289090782659458505467064524434234059071883158632749255326531347485783088392801194254800559173342878032217055660616248474220963137763672308005216593288594506398106980154016993713837735669780177615568858732441626221027172844903712870335405042397186442302045413208393119856667836380323649995401115663079220850586309200021807202092509529720679775683145237288209758348307232873267570114093405141303689945215639651617092700461180233906353409053673011341527479748522046185490844661023249890533883710175295051004711228288807220820966242172909842609048504376159524030782483918893976568407830381688609913492418572866855286621187084047808441461633126087418546907422985584244508241182012940019833073375951368732232749678596811393189093995561956380997054536691228942142233473180413070766268581607120666377130176560372151087788629305239613654613643814884446269242984697897394025796975114281718132375507582263121119938709188749581940150313922149080857934159165781236832585982654981714782145382197607432652252477255755861345383179182112956877726834787651361831355212281359283256600299270163848809804670057713745995123460842843186413388000099463347549403898958310217446487219704793194643531707183383642493199645381152739682528219422269936399988567375241921008632325534912328437235814553465403308994545771878753219812242428871878887422746762794725627877424192338712358278309902242152022730499258596062776599071395069620501707777784639644766984777056292273588759111204240101526709927995356250436176646298211091015418935958859965471246171829826338506535688751247413085653125956470484050682270077815284786755088392312462004811820194675635672296306351180509880898828591574432256331974779271291175231712244997215978616874283241838319133825883963826147991387767355828129539935358985212794379738826357827979112501652663439267087767270806317993091418695505440311760980728847638204812675208688539145758388712347204258634813778649958838801307137051564497628585447342107518999170965686651563584737470320710999144924220042779266576510026084691688394291493586512044984976936273125261452130752113295807779937146869155976973970013355890981500423445708177855550717065895981989715182644115616003683612723180063987205939907292174278261660204621064948606541957640554774382540078342199585154396408912118878473880020370835998149046933719124980874145528055116739889449685422222463906981550795469956376339656949793681427456633854538779408040132149110383740967758746470232210970387859110714472231375061296247148459313414935920188289659823388015238403947032945290249624130410626869774066931751813847294502932775896906634564649228210645560137861457657619103649121906997549925474481163616235737305034032829714958578414082183333502657607104514193363469344468627190461717267713623165538925217061333400678731312742864836934135169059772148566486171539602405211060781381505948624941946403089471520668192660621461996883636248933115321986129830271483354638457416073544249982435702547849560696349355531295784954216577953659282768272849666165923740994533672467243187156301800123577274500601597976938203063375724267311349347355447283625920402818610669110170156014640476899887846185286789654038699635904318819367511065704617288261244780124817887753605348649865990563606228545992797351836631250645106550196980801720733874074646511208395255787254604631165761365653801683125702070278839078795520861478393098209410401979898086487272720028245512545653401404367089659479219670169725334606636108422726289356581233979895129253347337679666603104188955975613598849410763372204300737368241668492275219027425721097931923377648966845636910406666455641380856700276875365823640702585627417219023443535429981580059727310303287570360339104280847266153217354587309552672034114202543426192479760980495132089645962513920001157769020185738656166412624609097180312060198188748853968356704201260679100908046523139741370942354417183902285105714192374641490541500261374954912417934504032448755602519885423385811022950957427578073171165077386421214874419707338227875919389968915335882147812383348438923247854457388305010142041115919425608256011982994676445537804848379536015987092616495580747931011584299405566134864410418921643523053055815230854807107311212052013723208121881182791805001236566089788397600488611552752497766847399174140324085351628246412345108078226961263060291616076808438159712086415945285219615595706990582562864099584870172623094326520508371059848903788932480136997084465450208120471684716025259527462368749122863445933125032950379434800399608734442342203959041726687985578837493294517689192653395864904047786177949643647930601042514066859331064076279229840697188583728632212524401827356298161433813687817773349476431781811533042541189927042946058944046235073308333060718027649227268498243093568470235191516407913287349156089276384880189595382196609873603382652896501684196319284159423350999665219901246934296971094932633258080491579879170930145202774890346263154285652781776901516920426723441249133837271018406089377311933572617647887072808317799634494122833149598599766398908242096573760680374590472560875639963755281889105592862563715081832507146459368579524710637986300183889335517782713178643201415913361644652839520644138763388841615674345083992216786502737959845415948655544188208040020946073206176195454478110148067487736353971218744325460216519751027814578385508095806633501443645183270091919980554743950640522856629097361563692241034246942379978111703997865689676465161284810837356654584684405717850938864842114648497351287653795130191607106814621510732520615621949059934691821450285271935154512907341219270463623664330968071959019566633262401390939685795229951812909256077569863124869315831230357561906273703826820207395456305681854354550011658061200035248012724795619028878617153366076289228210704480084759080185797892981593790940524318535164420994636784181333756987335200399531943975683013608870604341319058915333079182159590162697030606577084309153667380376065458971810534752507945038655293685872437423917707318719263350725942466197205396656643397477933004217564252871623556342950416450875299324850582867320222442276513745949459361403273745131188669974049323025956126504394889053909177313224225014225575190488422682809871210185224827190586051517161778249613750787246969212558497159866941049317298778542126008286737598620394958339672523035955605579053262278948102017542858202023055066282857148376535608358510428883006084342093990040273259851951276555690176885081039546164680079825204139345844767580170151516259939120278000147775231692873848255507710488914285872611859208841691818107247335927675042003265094092103712723115370653774468631264364812199733185611434014413367647427753200983645248928231709160004438123781068243211266828733842762171860196179665590251646852675212932200816477638534083246139352079441399814834168488672174090573650494888105695036758630153012151397484466196837694434929962357233429599512813235133459402232330163235348395136082422926459411463900833959487633068941788141219587824875719059025126516074477190387523514954254852857191530794420103902544467533562183931425999589021053571291705352703505352303660671359897923789788352443863070817814780935320563606858242270265890406175184163131577597452507873165300340665378320309533035585418800342810915937611874061039782926760578861441762467315980634571812689027784625566479929138036682195546411668205067784943509313585495983865783658447642102078369219851143447393202211698835248491432089354285220909885756092281646095694750483687052799451284015522604190349195070148999220434503589538716770687673764882297574511177626697025453343568125580076480578161658101288734215700278121792832347656460217079820699519572180499488553199615741114938374731247583754916485141830312169435002532647330962935358643103832113983165676152830494890563467608363834331003066164789702522371466148398269218306426231117899251224777576287758185560978927030508865875543869696825359755351520570828940142795182944618491748980725216436744282103673836185006838501536326614701780296653368458474870900501637797086543733526925861109593259245968873862749778079342605545455777496885271696546994610933545917095594147399717233879472277067727277234362279343876349064717510356350234022662255301947540996984926348674229566634564515565728174474792995169980786817305730654129165121837968508830555832212809572656657099830663760410415135361335348010318773790457744384204766169882333327270975824948783072478482229479650946732098732007452178892232086041289336438554260069470822588735112279296650002013334010747104737878258419006327141172426982663856190976616893450911295479418013324772869794801644499718800975330961644517751918343877650832289999579970101927304580024529238065096511922512884011228628248010873813491920964950375773254294537669865382956808150388567983662765092542838129780791160104411781858401197192593372562895158839551898342849824718067923306241291357435985171078920338437130865386818673105828030395879879821021508139433898083061044003412523492831627611076462969846526479940622382572189198354081054058188549758844735019835974418188518855332666422580878959535893066986166625466262700363403426444700118274409206609617774603456883178088878445507449964779419884592486014898975299489268732229025079991827510881854726997312227270275492484256959992249707696752780764232506345323490796892174882548516094885792291886754623404464782999554186581983463459161714580244972965518465128531542117696163419939502883023103710983962154844782519196293374927875645456183793878949421323734144526248082146329723678620331278772752221244749131820405053030842983075983542527897171368700829949592009409629017250801898678326539508509114095637333012760360307646852301854223883013966471593027122041060262016885175373704633304086994396700307978147609189889685075943070952769939965099726296799823227771881849999590606822248345537956385450155987178954608714808614834734160572397739307560669081873566389097797573586487373270859506774169205910593139496094991157929242578269574599357555825883910915387884822528853963922864084794750868728119148242216087551950177129661853996314248951291597473395086032180035149347318718827739221561237921498965590120347625230443346140416409473165786466708148067675778201460042698412761985839357622112284218930742030383489784679649872453943399584872116504544595138785657814347681825880150718464031136191481441023674633253602352723067324091489202011558082194914617613655030033518439161165327721163728478229934443371346496743770993715911555893228317019354666846604737862433451572436932743581170342150770945990269264574755270885464256525751166204603589178086081989696344271780472315419363581676172784756190566236317004460989879956826683657584295878938514368715199170980066526330045502991620304251514073915908746834230045124436046172734797580229040399275200951454563446006352755724729553415345168973322519512726382995161756576861481804122016626887222201704450708011856126243838385339039736201563605413374342655304102321173224178659076394735341937484131627039578043142458768785109742651053720937903132855103681681161782032965593775542643673032995469851730217273916381519246636075977185227156499877130185119677532968763385100698730721748183912365694424989421856520223227783957395988450777346216382303285490651290828443420512013993750329430715426640342147459303962047330349564093087917234752065450776512090706920095377392618142797776650045624235791651720566424927676823420826971518123373191445729243096674733125743075060150559997846273991061970446009949312649568347911849158633311975510160914145051028662982858848589062519975259405033422358273053405262784704043956578822908338872927328487904297519343652090889989610973285087033053918917362108479442768811014939986597745220856222036576459442269996495688109379409665304831526226266814519063874297872153499186994952617519258108639433737942178223508832264685649109698380521156093109329331133337146622977693436548575744597097537292374384278828433045731202144749016424244628131422507629709045045583096676312118696906210618216167200077383310512371632920153094639220093428438066303157409451561335989679452601490479224226790599605564115432971426218374446107387302214615228881308346779364785781966559991877395149010192116363756903771288265114382467233081910557073568896319729876368290655257970735766374760935681704197158483947942225032263590724433927178585809219620718348034124004616377097914415692192349629433179749500604788681954448694927195801389120955194941896595998508624888833553869866574603663766937609878621488164665936637824318687249427664943555166312230094040336528585971536987793128101647278132463438861226886797177104792960582766570292554522415117187852727209205232198477706994911250189148197643728973029452327340508773196775605241082472934978665249559430549217867808956141701682258990324932586852248433377643189492075250503416968867763230540085347556665463781345689244592162344365147663918866760713002955832466124769594023219064706326434871520809064826166446128149530171463312692276145727466673358535263409109986121905033464020040757553848778064623750049830328184661346332189199697983172405895374035140139420315057898507419158257008520247065459850420554465493637090136626569793532425737936462652883120275568233509705464152417259139012399539200108566347709151644479443643347883326290853306777700079750949161889669730809611721337112058917961817159228662108532794172906381248290587421949806020314837214120717303563400637106680475260489482920760823960531231715075782113915739419765577050568929132925113638244806247471020171851300928417078621924692320387027933655867400641112596536975635134992552126080913381665360754865129208240162514980057901012756822693211961152120749244277779388397665323004347696356661902244816733576015307944818037730515748908482772707653535933842357001496747252668800552577355236622819012832188138739909383153471432737115168416896763239703213925375781191473419727014210704238683663223692987130781804935817166573788900997276240690065893372226836625615256625741899747718000365304852148002210635291660254414189491043021298470382978911440411055759164649960037733315432910053731095428175213756942429103543647754551950097090071454407542416759857099898834442756548350987781306120512227122688306208613748088524335104508077448900897645431526239019606192486710240532779499289943404116386621957713881169746502928662436473386198864860349225028772650560435784625008305927112577188220751697381917303994867232044384752723898054211186989470839814999223285713635965475482978986338429879336112058073491500632208471514835803134380121587052127065223625428145719776349938803423311261207401225746942162952698198060120210862052675890130328770059643776234164115418221054619562784928829917099797722986507674532546876478292694653071038811317246058348297063120502590379620609322802588580063040904046465803192169181317451581747433107125509777498578711783819044261928377269252744497639670150386546427085144699514749611233589019273931301227937001239308597239813263480457320194465903173660975915273526683323669466039111769911317564741567544794634277378982192132741542145531483279316889110571409418387419056884859507517715693537512622425201683335259769559204921846561430455872010264017921294775349392064547273420304305546075150105206470471119235712872094600167453918550353879658498596554228861558764962061805331247355819404643358874095812743546929268723994404861168517882663388449279915405464332679379867013091358548337562659994753572688626593112155052946374163372577996425171839300832016992489217689150515015477304642404497572379013969126158060822829832186067553914820296747398595161250321700839373747687260827847489013902487503161028860213180311633900035272668982909630218943243151092319990476916233629473561275234426650314359011092443087819847084114514046917547179036912975372824196869447860932800352907105962862736591878044291470896384449386751552555359064294001171310440830489044056051347122648691576143734539635923915273714708034719562861887291612844318766632632372388861224618098103770480367819914850324884955491228545452335668009207204738954869490124728997430455191161260578769131211259431846519128681719822755728477307980326327538905988943058662631358414521581636005390776402535703743188224816532623563938847445042198489013608525449461188589871937484009716641021122507302644385322771969869622379261590853165479562499712228780886863396842253363307877622455246992393394271128625776548523764630814617707180976504659653162273067827331938714541319755641193207744946378392328546688271595206547188068579494445945443687028365489377913979771066368487466626499974313657675287993037807451277095843853601636717636663024704423419939789981460311881725522759423612895449515738931320563140245353486974806925264110930074625031792602537334454705521286879622833434160511548731159649141949222250397769756926432383728730398417162845430947463948789709539169152712618910673031806693092161452862976952293000111604173179486378343691283430361903786639636036151251079837455707364291468084486629123550303463765484881951488314207380874997609651001348690747244454237859583697254050766526425047831071561520998441245013986665182892454687833796737077053813119434074282029364569839613185058054434820780589521657356896518676452721630885957288301897363369444290250118737734286858842283794131404970716575233412723623687709593464763786224550709964588807354223039954780312053097453432257426913353084837459406851010617410919926537351395700949855158701757779080602132545574744023683933765074036138189000966066865734412158915518551672165286204267501493058658077926001611813651641376773866429045773860091384452333998400968664145738148778850549569748980495251487387437564750649465675580264075664253099711938814614073913315801490541701659786057931694113964120390177586346444123814585352698285033190273631633876320662662816621331367012186243622089368831146750417926871766097116425662333404342385893737990740122939693160829313726657398470364576920229097496128691853363600823849673546457793996955216149216011837373161320553175077126140794256816786920937217465104813572279253469634355933783336515708945304920102847394036236237718054483149131444601830273889893346258503375007221848319785523790388393473941558270889271856928248350041810393607328002609195525916325541684811916561282717369265559072388076295167946944911970944677044724713516693925129848422154068876414547251588958974655986713471380670014007218306949446331624074195731183200930665305705534663648331618130830818802255288039849717584980236090205706541754556326634560295075796745205026111450444005166348363251909535472371217769872923082961590858089436471061608475768698943712175527803387133355458901383154673316960043788687302876096743160672357480760460408677402726060806818851367833855787244278169883192439808361731407230625737395122726083365108473571258129074288019038296484816365038110639805994215621589823126522473474790647085091428730502193641121621232492068859417446891149761573384909454062062320905402619600060623570622996617703772830947506936930785655516496965286114526261971136405176842990277308996200017687435054471000840806768700775018890128664149179910022615916966022372297999731217269961422596784513061091028314652776761425363281878150736464028748548119720477332250128797258100401727820524461499202149951729620429128796978307466964493058157619874111698393452533373004821880095389465105137534890368780947927517094962897650827412505894366005064806333601792365644964076115219789933680014487893403979200999887523325175132954929169127796977175945739655850299871641236624567449865451242800479695456106366277364970440094535931500553405240708766613511166446565095560676845930011173725515086900732636727241274803599997209684358102988577949976102801413573786893570975417625270694639887585986759046304044423843095984383230666063306171928058343739906679818889629623822356704719129570056529962096764819864479289587690591221690027196199505903637443231537232732454016131053907564613028883461740198531645776608150994957678504770317969077710308141492618475486854778250199162268832551555768452985069448704920361733157336829671921979579549268197763888139998399949643532907867716125446950587597687365101175038953162098547906812389488034388113198899877855524729419795973234659687978112836052972801224712911556307266358451736421085207931207097007143589951538647177900780865117034369553140742851101920517542413007861603739187548004978913589034764015586914482314987632763179906580237695069641582924813393456563435626876877202769248554667791576619758980530961596309329788403237220233541848813299117910107343745030753714985416049706650174273708296978486473923944307301086774289157315143248797432341721797940432038496187027120406430127246973366279346934540408731472216489704826288983198273850690469745787213312018383890661359865430417593805245643537582190844508140757258178893305893078216955634105449227831109852787536841057037633701096362047904830262489330635301858133327175293902185480900734788816476496502638722527789269636955385378039498942494107834129385804584881304520147240720156273662527352642617864102183022602521664766965722994452027093253711926979774071428402398812929397364952517209613048936746704178044096767780253011172642153077419211085655433878772890074203380862146668000839882076415912313191531250476707681326767604489064259365099412767306627471448948759304771593113319468410221300943683647448564031491339139129241616934652505972289747319809685339493196958566885170031071148278472113873227444264216333618541968155392569966391948293713291597053597260779084072220033085022887285652238328194539790666545959615132914863636903311844417536311661806247903145678517865576197527183781594876108042973467235582057805403621115475701908790967190519151801361626679251369723148663398608563914044448049458609978222797827425303977845464071923136188694367177321473806690397402976556037110681628909456981456906691994977121946620887953840902756603330205781930662503696979848847915237215759601482984798591929993720269147544887789508159452144509445854779476643568991787366107390891077774212351249678776454647325971342075991359023087754348713861500802574717468436857857903578330638990768268880847340412175929649242222909995886702919560183009756571650484441467329442909908092800678744725094569166453830102833199145628341965163582710488167403063319620460707995876669698090931387011536890321552509592260885076858400000500347391748683683930593051122263086054877520717481038577360391753078535356640305044338453111892861100677586516779601397723167659935602126391937889326540648868509040358785093556175630144987646892388463487833416147930865330922640840110528832849465193392086672559474494370505314732673865791156662841392256238235413299009600300808646123350429852311456900624652466467379919002030288839160861565052731305177623156222201992547446555565076746246422071347785958266865517670301455265082403363432580495528167680170190172803539274447883521637160526405489465988343060206897788414395667683283155215515484469097392442854197230517285785781068600088589189659780771120876144503181335058862632295746216567402869593162428127325058572897119741239731632462478793419732262958859679639691193117102104467295861659559778102160464341027153969520401170292896959105045027351247760270951863499184008179767630095294378825190660708728471734672235139251287245065023602000208015351692951482507214875680163885352786066711983235036337618468209186997727362413054877702152210599081236396745866776011298763475683026588598484478861191735360180075242913846405117208982922380852089370360261038641549176947305584658863880271757128063365183226645136805294966886189820573110695812444498908642170130598639830564708101828792170246026146587851301155955914043539333289519317780048064288191359257098706556745924162388748348999606298799833061666854743029302515324778333859736597018755760759511954054887461276484010963982117636705035521329061923076349891792993258327129230982657782921926187521434434522433505216898269950656261223529038346667078476849059350627015522152831556678385935836718108152145450982186823285694168044632655940519317112255675166901630271184605349643179850616082553877250898262513048249105640735240116827833293147842616086175866837221799039979062199614640696250214631747829234179307418732001914054825888008065909132613754468458020983158522702945275225502949694494921437080017703801711681043150629771460831231541651204639619847237637835883615975513569852161284988206338805627907073900664719761649060600153137559140842190017064631293400124508939448741649910846214712887899338816309073979540681499865433680761716655903778388739768224796723944871022410265909963623477852498064236177956749326943308970048084048025552859060589018393934482189420617677734417773882515096415208626293420627976002147047981982296721584380740395119216098153757227674682241756765414827125306195908305719917148595193297685968990979238019689678766466720430758539300088708103323006354658911019924736624909146914833619344324889773400277001835717862073255546169608578871308351606895542419686854642792741690311129350016095526947254189340115363484287936728226019834354499641578305631793791612136632065891315259563551608667463171811009256634190489254934588392508126923266143515098279493672986333411524994811518913726629551304371101266386752914492236516291295206160050846373546562442219542962379934760551170024134806882039329382680671043912447831689610308181938431935678043783481151121088087633610240142953219923729190547181090398171156279634790449110081576660532302457153430937524395620655413366778880753007884539022058844949352922676782244179518912024007131999279459212241608249501005850405476312029630175550957611347432746798485705294244508692025971241544016698513407356654221626071290019210291234867184297098353156137630288511109862286826549220968173763745865354997726682138103181255044224530755358618702618754146249180441286815893069815003030540403374434494557968588228295234916105699216843931098248118443535484452412999966543295190964519506164658597794483346913371075593363191210049473626692214441105837928291966229842510544703354911056255965982503212754998666424586792205184617993551785409616810533759020182356906238959372569259937099663072288765757855412110098096634998504601043692112091469320337063788804197497883907820942025403029941623518531025533758607587929066051608052940417734047579883835394158284202082809621723431450552329833645978010909934858375640242246349637501807993376466780825904934520899467266868557242972445257428503344720800646421209326374644789702952391868999203508164258759002733216450444062397210105375877401021174653081618614732982232820479723759959530903383222109916939847947565369416122055712574940991535190612374593038632124521583165974052820525728168845448590706144519225344046619458763710618923703588500833134932708603726329506015807511441278055647368177723019053755504858831117092927837638693346832758993576190893709709770347626231389377031777535568585231539947097526852355946391179205410841805224769750995666256814750839643408604397710020017381186165080976051368054113914977325535853100967861140889004355820646407270549111824609525824347434003537271626700387608678575665084965881688645438049798849833460442720444625891044770886054632295840715974857844818504547534029127446621519930887564198869189100057563698811764671301520850355284582671171583103352915267997533773800807739149595981964357580218476495442778086363305526479111294314030676825193354039451495597828435743143378573414575861920805411797755515622491043473993579256326390779341575829697287931290951815050678155689440554473481358926861129822564123534445991604901470916973675195414354671734432021394678937136046095367451051997249654849812964191465942504336588472839414898983082243882304144951125394339356761810303455686067439047270251802688979465856542647273369880407036169758011302276397246602496707696215420109305418510891398784798255861455359381538614209447716058327347184254832266282670452636778618741833563419202170603421577615782838727893095404111580998925039072890966723163132589620880628551447051845199409829587328838560365235851765213416142789015600054586341505955566290535008221844544877953699625132632223837336620082222631918696750437920491071336663835380913573199278462867474567132632053954329144835279906197128744242997883033079638426487812274731413747178911000261143158227324583688861438885149192757711899551820103651948590016194535370043880849828288537085739961450858021479784987944231502989677775786080067041761874862359649833112688187452903395984733425918094980725352041304976959065526016531300542683540130880350352826272394934416971276112317244993746936696406234960429586620760841939338612322360455746044017973702239780324094083658371881348993181737698237132006659137456428848719174499293868169537713645691662863846250337332064584072492453555641686192898303412216258583944497049626250045420696253504496437916327937773214276478785611944283817767756180970022471791042790372402127742667280763646696919427664638220512907558081232744786263359884317713179418260538082645674433606458424452893040129323202636141543513243440004792557368603100779794766625410831400173740409665696024872473360126634329042250238516838252921194637203593863309081855375722208505252023790305982996270197095362418034805500879158687970990476697448077407988068877896321986588576103785033614706758480880887199173643022190347088286435856500274084413115190970972586306151398917711931640580937076227290362283914828289755109840995821379121365598815054124022721392600318291102677587063002834958081285362001629827938549116741551907778633853326509021719908663274558895850068146266009049708871498268884202954477780806494935187975107485185569346063107077647672284014922350048893710575238867225263148210146469578930130068931191024626073728414745756954541957891702194742970763959349405224716955594570315639733217560615877189649464436507751309831584877709049530844617817062437989587539820331065186812406348598637930833989496171051835851550519208984226779594905082237568119231095806001360292994699090331835699253393811091873659760815850141896180371431133310642672898852816653554495970980852004721865742408667333714657719552632488997609380109929091695346639783812559482875335296235254825357685911913671771072301852175860953922153396992151963923745446627095957969249942232014804292978975915457959201497199383775649864642036139656876849499459131609795409362155647273929999325078549286703432024586499640006386217133042146677415689735746142256457195707233836025411261319816162271210180193611770799647167732438574661694855691728874480884485606472931037440172079680339440125923825387319423443433455990630727448588814601119656815516254771332816540399077620445313665070356379728133023400328581904401168834399625073127161428276564963638825481862312587064330460596216949053099130641588535764723268317697107430246504672888777746473713597548513210647983924994279993800193383476731029453323714593261144904144582787583124905969299423235884896315184231799234188684553385742991023956809996094871976466806579285734089480909369327765970175719498310988971008524173326396808473461789012058518617698019994663040623137666598348268744083950911636973339987590263140030254647684253337898460776083590497197721716472757154826588733281304942513808158277396739720101147206580197956053102811475426946502622686093541881160097477830259406111784471275417322896645053735402862884093885841418595662442330582156484252425468523196399823662629424194495156021841473461974387460395462151373612204315575173971703504492619135942664109730906424495173367424656646116914417240905048975798342438188308229641474807043944200661765132066606597579246178773160344692633829104418224592567086397983186151102738418800340626857521965902072777797942636067867127280698790250504209677164166006958619788018506109143476662815125675520005650283442429746272141957400022978232394772258591036236323937913579199098721448501960140067116834612187702365448465078862301647422685868715692324328140472205649144594281414856008786983260197453854137594632766033981547296361278452604458810868396883502877842351410242622661884972710035800946016903391492277428573600318778705878413000971438379616001044840682853552394132498864687992600470831486757302750657709503143967115931102767753664554519363858929929585225590037692173375022145893521821117108431093077199390385039750806050676150970465458714124370197444033325103158389076635158704099133066873736444694104851898699177302886884496153450982740871022010662410999049684854429677070889782702674241956903721751563577361459223400577817465508799288959920851558961124143399310547084647185511006997194056783630531730778442029126525658636445297255568683176449493720460640999267125851330161359077083208967856271991663069995280836279895343681032375281856199821893942654443801883675434943607668367827528970214708832483465967773246262277151723861903372936390197825692805433431100236810118384774872794524003653670480684646639850113769240959805199707054389761100515167040467309500655167244829803146043424143078568066666539557536379862154128240042875829536634372605987858603399721192279786273950457861197402000729800301480397301526045130416596779359124185044850295243919075248300740758206637624547567152359554728785683864542967118876048650996343152496867097411263720368903067293445714271703248536322711936011114317228319961515912814817351756227037740589441923326439245528584532778994538528542707394734436571631406786752213472385454212168568651431415103794173947377856613017634149076218419047078719282730648347142159504382032484429156816447208402966407448204348630397009547038306921845616931116814081407702430448701963734712794119017027981450001797089867184211353424053226944327020113978476706829235049804916692215667452595747322129496463312815830011990945159137793885004547779045525866828325707979873962180007150860613292505952541049723485373084801621452106513624201554575630693540157852323115979503041550948160073828890599707380999601547392632885726746492580310455976577419546170200744804422841926284089433510799277540963694840059200090283449501729681863307079032865721887871023493709992046851871730170235585685496571335291110373548418277400118173741243646723473531572087175872675796616978003988928916521111986829697087644807573551557559725645588002455493068743236991152288594665919165443045332517985944073525526529996852625669602872299500828951131328007533603449399313375264646950117930369849374392415096995329238882532167334233197345427718733732024720814084477046405045462160601598994759142806248913202076040077911991621931793984265244422425126283583169694650978335881770135740948839235653139960368432518667512623205451150020887838285874065664871583139080923290343941352318674777846930491815902383233485815014918371199101162328585335984531884228985543651943613416615353992979892200647824444104367878032801161029879753657305012010584104512757800966828153579968330440008730604443966605934128149044915825233108597200816857081080486397220969204660104051521213142655488091713460691189665400620056599282136588063502021907255520821717048757774209213703576626369249416141335177592914062986222626235474564809099613777040244060669920279390159846046659683310230998878497817440409041805281264218352255084557977980215386510035270684157677393039860695386912774091251130860933529246733711349904300046768830938914076919465411420703681983127561894595642549046414830486402723275278299915439965452916200438348142439643633804432835970468084350981995360610636182100475168268100728721543045277540030820772322406348879106012913126761126128033491717089598032305631548154951664021985815843420793539394499151329216994447895778118102761452002135081743799700998442183412169120356756847536052397113930691926910216936881685544859864769202792880873023252029466243972583782124960630887020189004955606826306743116964957018979946814201429901370814424245562373094797227988776458091642926025177591582173461550532190999565577947338297953966038200261883569139983967096409335928180301511740652610035717157937342857326033403674270224280991827056057223408326558286119260320501652230681163771827185955086609288201175085464007069872269035746475734870694475447109963725192086554554794064517238151674774223380669008057984938028526110582283193553986714317570746125129418680820225244843407304595949028439231754375281026694842501384691848144105434163920020795128556329708058101365293745770777058110406109709068194246257721379005640929366347984056133557432304798348367374967202882304661728880739693995389375647788569506362087668161224523645113834388536737576513603616103951413317057204556821579614156966796592941493527655040124179854707903259406282471434626828740714880548559404361419234655114063002072205834185992518487066595065359334365081045717925335343208348105633636664934125086698523498458825201205843793050453616525323474413973712065984181588877879286923119603115900961436059148628081048777960359564474446032796125001246143515286007384536323385167690677741214954307513245537773029252997140169176894201525730386278751178006725459436216425297366022296658491215118390587408547193822087973400183859409870970974346282006623286317378072572210622755589157121647632669919667514635077969265601724945113878296095103492409317521538750898204033727792871558288960208708935468320268451892180356065601096767865908895319371294597863303252462736459118303424305411556168770440503349062905290271656620626616589551332930356948053232383385650996566937229852303587678617558310786037273461188378290646524203804420545114179549627291645544093769330911114457894425590815052176807837717324138514266997087731618855689051699072591713630256899434631940909267491331488603941075602170964304729409311576615144573791436954709662512690851310641869232664115323959243717119111032322112836391670514913673167631710830166670036260773584112916636495875155258358919316482974822713833849231312446061440388040469329464437877692323385287079381016930840955230329000932363385359260470087332159414552289508675696991937093693369841043455166870774423401873498920406990184377921871226557850061440295490867728160568380571000595155354809556241466037011906802184404142057533939749117664804743694907452303476287230309234093642775575269939077779357474876444242658715589893667517712333217445465434365336098170567164934593885546351389468095600337433762911722633781803036194040014545398240805389821348268395745697354722971821236077700129833460123053142400554008481375004431183455350302405605508605087572566222382972370048467868235262793570978772799829942586622633481540543402824958498218024322210856134558596373069306768864791704903525005711048423169332811206050688940230370681327628922433208346602142431843681992141283095810193510712132045316780954407637883572478522356324496705044994296062289970042309714121614646670864822667025363260748199192935995630828715362269117884970152621833252561168783969818720880025087324028290746987136310919115471697514099079266625615578021534040433971113814286266556350487201627382470547633636928709897392038589421179425105388252673725194942680818360868248817540138352213503046961795379007029084319528185068958045111351970380106792258520310280421851470970881369886772876274814904550812957649685160531533729921403458115988840931964289907020747874432020244515778753876430916443651756015371586990275379721276398953961165652272026320413305139623344894561425553134055723203915246392921221617311319797611192943824940420479184299538443022299205801262095499923202088800474090375012172607580760995108398380083293954680476400713988993865063528707360213753249002783090162843362100639524156363842947379169089741212217951508376818666704993972163005679487321361856537794837015273148938713713597473359367781215167447851194415836365624872257072283222186858799856608102380618655784482204777910737076807463262905485442894191077884199878405641787866518884511218401465589059582758488612133916312257377203474700594056827685730791091021311721532177744433502813601033624699308737456750670274443171714643057551503284134025313117996201470819947713463126910013355705724395519117853511206958083511959704345577758031316157558571664619321490157357257307784232080233181357006715702652276857179211453657427589417207183810371285981152467676295783905792700341415420816917413379769318611883585747480064304169604911995893910310350185134974507005692056969696611515167948498803729131743134953596910540984312148761373799451743218521585206207056310826036643519562176480614143622496977780072503020404457683962602105211167142657623721005340011122462049692582730530973176890178275708382122232720316100459990719930234600903926970822572616311545616606734010718055947148776932359313461550597059463268002593883067979830815194469560877881101587714408866457675131985378317204434242937027895158629293993626434572604879874199399690116006436061756648407378508638829515840579525259468707724735456513580400988318215662121889694024270827229832195019636213573360946637504672779142848811617931666205212954198294397007677873639553851759107383896982041076919990457519914618594764890200087240548041219260239801644814266246208283176382743693265860236401089149173626298284410226107921752042765115277671502987470195615116988335895903077934218375748911002463189917180195620539445261075271431339192925929665790974687793889753572540340671036463027708738810289515317173150430699806046938426989540759499063628352345340568523373717771121536303444269269280769872796214587789333257126680541892485395659649201978202856157667203514281245070196283674943095791528826653007585501161970448548871559645228641049270652697264922715223474625282252530480626108325227486642882432555256144659916322398131858441025612070712880460581952161580965312595480302017606334450744788838423634309429578398879206549902074618053326271644801482030369558338893467244970036792540895064971123990509694364984274596251715782080581845109055367239621054019048798223621519022903631412887647466275622287029472857943000991392707757737011216897571901237515305465706647232923639778704772275033040187630620559375962673336186025927527463300489056446598127309062137049984774183270745372221974169675802084546026531779693338139653624777225532253819601748860906719735275815988579422353650205550657456128813276612352568342137553637323346565891581982650366151704032143338183987532596320089456194236230155852333435212162511104381579426144297836013513367432493058957604598026022877265721596144990653752899332874049399284837443651598637054496278005523852562048010316627969363962180487629675024889031457768574291629796081675404393359871808165243364911458896368397273574168367912442891979302365454207594664710463256190731593813840469289240152412410306970865895438653617873600563401118121929316410065877743525261367523774344485811327642308850180648278377223221731408329321929934464183078263787409222764049135164530616256320170339363947887179286688348491600376182504016322619035133734342481011882783767369340288542063644253353941694545490607007620712092681724424534781802868497590222090457390309527777362242347702535952011104178985845581397398023674930090550975744153312149542607913069584948228012638366623720124602878809753786235611887059494345337880486705990453426964209047177563714655034493298288112350901361500253229257434273916325268168356783260473601512419802449625084347760172132969655425812273963342657311945780456184305083226942646251503337024523910130833264446975726686776431133491298971604250186109200693608836060027982369121482327575282402752601760306939664280504482213009312030982915705899238096717303279227636386806081984639095210886915551760494598991753213345369463019990685104895585504421469666409353819643372144071269302102757635299182335970328712628412620873036375177986534077054937761412562578010324709184442780684181797014485515390592593853839333895529568263093723616955338527258388467313859461488255646512412589348262185498598488025427128493338040135919479808390681753150007175080207582137851083880813968959212170136520992215884723873556169724841380690812475678116473477394110111808648113058744385266062300730238767800378700464941268432343355234043085211490889734369592239882748446123280998784813482091338441405829441167309937740439828188290009806699023078039044636273702732852094062357341433180544354677190335311564249529681135731585996667775320864002396752118007531973118297105402432479051877072899584698535224502461691228212588486130338995787067031310774569884741464339371106881302701024714089828769451429583029892478610706465180765578255372614631993121566505934801364252057642443276036077150731543768163392869826326893649005432732558162949079020164766062697426272073538731545798499579567260220787925410274192548881473254149209225670977177147942959765913338067535278319131317881341032224638056075370377663240076301785370057660258789213690101583497310277328488366485445406694788851236430976486667690627556857055414623854870797354082721424391286376432809411196331185659141131246336705596327463898666432530206030665009176082135659376534736952322125163243940413682470188972756037226496286269897636300876629648850204167448252819256991535524943084805734280641508246834452894056441817098689329835943198364321768876747785750378343040309614995092787234517593540011222841328563509065946827589672965702447069212020471169600906888630519273043669425498296829272756755445391237024387211657156039142300271776243022309902020490000896922642056656004279472157478291316666168153637642239926993947181358137885234020775844851920995113927857261024983951647840458259544956615505469769603795366628739794552431641093327888778911204723870725369806975964512367989913245656679515751582522532727034709898840029572603526579204753647426602181393608758263601720836340600599551832950321187562404833142026012383176023598896012420051141922820939193895640419854290458666482061775765754548566157300591949339646961646355914428658934976691706885524963378743482355822060357448422751670718098648841507450395872459702264929533593627219143821009267879012473893843807232361622796299009200655560358411545533583058417667246185878356697002035927768517996204750693390803567081876035880884119731785749343808585973356773140153800523018299557825108440994452089931928076062571878033713210591630071946626622769651449593569448454445692316238127490996592533841616800668847442466128312502179203961819745957636250997598673893208372051686000575817464266542622387263223182737925957004007942643784408930127842676582223182894623762100953991834413383425611922119982275492568284014522694385350755732842734027469976249679381821934268969457630273967221016168719149892342568747685223781372121384138970645455943152639406633428636175813592264747284946589562768633064996218363989559432007185115679768305497487007109949972528597077249451120718115291320114639246420565378690915109244313615720593864799120481460455747293599865052837810013114530340816924764085306958486373532292636995112472751473526705514854604846629966132031430082054467937301093213069527552004512967739245550050572397481539705620110996580736130339936459428335464914975931589335328817280128714471426600052291416531903905029409054193194025444654600399429595483921898963113781602380991176219350140791814025389926579802564198847750037778744399007029854897347777050378238139195620370045780069149607825804107714334382365416680532842963015564510193013155699032199313482590398828573449249213211049732413303678704968277753772516125284718299218343835599194030897277071399074142349320493360943075091870357934038724112862880473395347668921538653831205370779937409511453890398134586496038707556694242660050861773828501531644532978989257499448092049940728305941440384910464050621244404847446214131924476147152779305368020071717282537399153909749314790432796839478899910365472776901909105782966706880018437572942115689347296601408934087274035813419643404542971713845439059848712367678303569634148543285022788327696570418471067191192716325274204118285352735745857225854674909923181630616080500393846727060284690066808282260620698262584513024753287529103271172173863985077758739921790991388320931834332847653483976958504840125693449894055160394374690717614518049001695602856048507390732019864940166885891231625888726776208050371403545204488924838790968515064833314380641081495494284225926016742830502824843875529400140458126146920406928513554286957907905233981109198239289444796582726679690925999265952644119447047157272046353606657506495926275864182632578425395643379561792525813306072903485317965745648141845419086473449477171906703424643564411171795259785194335818364742157918644785163353693370585770567088641622673253217005858855249575176634500900938627205414706579965223307698660375542421631941074420215869768051904135580357649859121927302131034036620513453131750810419996389848935325840207851884969218724709200205522172390203436678438030036070933450230683563283157209627396941652498886930660734281826135976412114298766329168026356057068871201864330491617983953395293253185921499023980256533837721803398547008629657535318827250813705219250709536740466096172573879204418148956872427528387173796484300519453588942064407943697494112112776744099010586817307917754458871754274274878299276719869574908228831480982275422612768454190535018292268065129827956631264421155810447199585994013760617541903018431249701832884555985432585481803426800334352462959165199095655613005208036426353963722520047149123007037734207927260875142064457885710648043188426391520390668122756219853269084385463569752306710547599747104285707229299034319927786005322190407221550729045872702128735474041755363766293049543250155139458850322477597641208533478600786421740199331524055385975575021702778515515166531804242937980685214108727540483273726000321577483183988546798064053161939136787804839976430957131484859853295892028668591854000431836422012519370169304047745215783859741966759710898609840909889107943408516103292635357949646308458010807282736590382865771364698681287260943866191506792426343134070527934078756546215504464577404514417232496810388468638787559541649141985095560670724136261437808716209352833364069451626687778201562788069274492914467023443064711439155008081214792985211225854726166611233073255362803503993512448052892105923422455240878395840299473633502011187435323347609859401336346340361454355169838531103878257695764123132708367414487299891865689079812690090775832577628663107302478850441845708906020283095403366048266522137965653193386430157637112748979234070571010293181685745803359495779150223776646171150544077185142172987971556294465345459557468307484975829402170993688316404408947208011320287597492510942646982080976481625850660104571061905465975614854730195814001980322256067600501619582488524499163745832554158157707837588740590879081965571517438237583562567783481934212092979833458589124961892280003149567421995844045066245462024504142031255879683443371096791582409069598041802485217180706267348457758588444654027830933030244367281249561566518197444241983684687481983575835743986289673328161106877395533049288856275681665079630491257635540730700479278228087575725306592336661453657269648353091653504991935741686345473356575010287701214503166546578893604035813749758145819768641888837991499958620776172416756957125633591182467237692128511170708415392452461529108621457272061987588629041047029817354696828094012399755710065000370105139704663877737067228424435169548414273679139684220662868720901863799847024310920710116632941586237243436435619012815166898349921648471868055346081780596068187227835241906305369233025238666669679678560855924319276257091136619623244308208129866894659162151653582991032350708138626314928304077895888963665022014656478222732978484445580202278426995460578637954111800578045914235605092974632271097955264363507615875228483980871476428514238148562863115610382062836711382294644635277895374343780247338320250703472226907371205413952221517808276199714874967462139652122525899136111743901732155577273373776074624719323684378563809989410618196387187176025709002778021835725082131809888864571220469145883904580401988200178021658195320058905925759630850578863341838720453520882205152104143098712298483701684396132747480611919748848431975958822025493385520315520229638445325423466249914680556228182865861805856713376389262697470259552684365714160728785027093400539558931017608265663865452065613558570238564108618390091765311462669133266768757808988015685945739712378489223897554373848593265041592998257788437844048178829684338871286588989874737729613114848675587647131008520800143096345660728287425458920526405011220547606688630655872716778794660080977389396318391280622723480540612685891235636653058329383172149231951228143141022539747161982701736435842945517291790229933681270367419687709112425366893304839946458484545987358939524644428105606290738267072277483169578259109991494040361049850118932154957685568794156173105814925762483971368955781708530003607011054675457768626959720032654929214442798572830541407716461474670063324364161404773502573115703999148675123199843401996157288651236416316497845402308184002053862201411745785575952576267344593079183593913120886866909755558610720842740882190370123026693815106346671825005564359019223144050297040820753618822968829333998839668301385278685633734811988142641541869084381818495756650141253885523466297446589219439799658289234459839822743021086694473566573259061795885074754708418558333485757139491217545692050593688795349418167547445525734149515467548897482772231533566861741361317366821993484685691664875847385658616049361114980696185338131342255001453423418201418209821029471857793635899375119291813997240039073346989284378158585960103951133611908903707394074512863839502857112930786174870630713956152516968382974097724486254815862898799941760765143689440086916356488280310640999920492997411989146940411816688757560753292630196257418203289596920875826589578350002592913435485519046345097400995180994087326870124595422723061451170354199588155592445949728168911469764149494209844255461191874841521559320675425868246900216577055273291001322177872967610304689179894855777103117254060652780670238232373611922851507319919576035758213623527961022522756148361588306190078851857050271851479763304293283843617939062245764636304219323147257952728068182827361124043561354976033513383254098608885212314663150368616039593930195234155570076973681909634097091333382907165762774680197888110954280390534415903127248713741067615479124083742808198561080466150822218456660939497559058137084934319009922959499527408304859106965686494132028433816544204908303366406249666824315235745347574209012106274691309256220330032078756412417183689934256864504973846359895873589497370613531667273503209003419016255300466089024404854924184370293644441925237001564614610190931801160988759416564282106697254278164364960439963382262162709674795847368225797395448909959179760696438947660347223061176093278095401357572565752224098316560602711603638275356897193931602104102636207767565460254690386076096806894162232409295851313713671740657752987284753662463455975251473398939517651695887130345869085404567453339413284857996524263596075778235381007685972632827498349584569555633626401001957898316099189226124814090140762175574786982016021057312481058083411044701093476682471673234173270653510480686816633044460433217195029776632895913997934739723977773890709129083056480693758279664558124243472772747319710128410844659512524495502230652850004402737690439847317629900516675600814890618093978066229004190708836618321062410803106311637041449050425458870612073265814653144547695861369276331755606494789262491387328614739545919512181596453082027061106166450819105028608497399309927227167772139428269856775306991077693642693208552776551965916054512803036619354132323699540693782663470491499934986761283544254350192312733048629949209437165063726892933102045318307539072142879356420124160527402809814978525050873517050034123131548063454947102114354851351594603562518661157601713542120334592979643650421351632689479681283769837930183942721761929936942427480274590777279001875302733907730889732408777265251525812706997190297007289524827846395088424138239360489931454913510368733175202025000163164341144510912800545526996471919133394054707203351577169001952604471944875567630780651100306797530331426627165956316834173882213853138279566712038222833509869171824269354814333652830506152813843358034835541552919751957983126302746030891604744098314545966445390620261189200164704570122895980421391309424576878761270984939348465973823338351119760687463667473728400166959634155666202919008780928925176307244621471550472405537273174064481582383156224399496451106723940505331758874537725922566501161929927811700303493084353722940018631589758927864020092382120735833724858975826896809648144130874527336922902481559634023608641629245427538107649816269405480693015525603004265601139494670384840810654201954134263477895704263131198224526963978191025127127791045800974222277685868946844376727733263201060275144277388596140828120449018239584143760603485512336007534001340206803861655642552432782611833605887189533297568397551410568055457886400485509918537296582754751325821093160278010540919713906997105412586209170472225886808184018465793025008925019155164994707918065675396550711546071646107471267082058205328659496325690168530386726334092891131311277610509430694755055651957544025692693100878187045099190656947804648428077403975503733822119787046360207784062805147093149012056836774380463270465385004258191725249859777678331704115524110615238182359072857135507140357626626356767993311937546524145659424480873655430151365092623269817113113518348622158955082222382957133888180571758582489095329221802884569011423150801468291856517372944842302583466134220512089001025969254604655155420175779618910729108249726402310161090051965551634074922763046556637415391062719690679737420010897285750169241008962332284113059564075743997969966418831911602709426278510506999172663082140791055582591466031865900715014913505156188626448014985984828038274439890889959720558988623344450152578249306329884047057769828827771038917004911095111378053914646900042045706665308196134860517475077926087950008588259563852737213747910670938025598564641099471020225258993396519230730194636875163433076154982402963126257521394985411572275281328318036533092873184087360680169700780745985940720576037217523692780270152256874759604817282081910394615325010237719379841455192887675143165134898472222031956812343870907623562156903844347847248846261299826545600464171495705980549572236344343574359681552738653651418047918635442372940316997318628419989337958916018689363507866850124991863629402825243370674011085155029967684365942378017521609175624762961144000120881363626235731033461317108020660789109805955990809881427550260595470616794195714345801100628304240092134694436680535139629678082773821458967183510978617564462412444676829527920507657882437748426224691522399970676691817999025901720899888896203136880702083720975847426604334545233645080867223902059415935101606383213591240311402365696319630834921393390168065414644369386582149487478149297642979014423185627629686841506723020208774032530044281704736496290033103361647873543353716357992867815513337247626992036690753614835469959068522632845437320006122302332282600702871638910812975144009985533630635204115060458759754215506007126550228890705888673327339790111686935946079477612807041142738557697374092091116205145163293976312699722913927639607185563487411850589039835708177687677733038524872126904509169439894610482006763986960668043421004591921970865222689122998797436508448555897993436203015903133850262563521405563967488231441977215632867604248529148717128220034811235712828094465026463799822095782429974545117181079605596424444334256598304169179634686668921093291560542535089319517941015358996807566472367963825349250097692857457190148675246822506435415144105246184330710623593741258132655275397031696714990383684653429664373949249795696051228944097347046686137394914265164560885536185379064097994160292640529879405408345274825398190343824346062418070972225765629259957658854016504543631381098681332806004603237184260539120113489974552178775785851335261616365639819154006289441327991050503629474283818747221375494492393337055604901244426774184682316512309127929859706280533921725109943306526999082415492740372889944846070514006803783080170713462767370209760519848748412329749059301713546547140488307119605014571433899815664087116898815725321812927620381350073663229999615437002146065925928306671710854641274199872941723428963628734142762338764628408663141990904143910710710308277899120053786564086217735658916178828437425589959334035531971288220519990350250039329580195273406207061881582940398316370695231952033017405512554585238045915958259956912066955165387291025915768742877882766878393039379757434746327907369858639444174594900263810446708562964773774510997749764389359118991884844634200345343025043608180286776339464601995223327134615359114110758897860141060103692631299446668929079391705860047101012952764969612706422345839302909376360982362576299780257625478307562300736758236528197301070186167341563991768002973399021528470190539282721086369882371094863410286290164022312201707281984200531503099044219301351663104954176919878381297928523607706146666239160329230541749976969783652866674769891480002750710417460328014515659047020123354473841099175707410856802048008857316077488170575803623202758276185048149774391232642537506220447073174543382271605947405481051092984764628105949085565932283729881966074628011384967491995507979191503180549153923391354061559803056145196581497907525719608308158961864710371397637409084907538873177969930519991914252669276894011261356320249725429596193589102375967437791485622243073017175140646853311025930427590192208607785383738963036373641692884319983820207536422764610580684395723545735522870487414670497880671404316917573306330679976557199185950142979598131487664070782833957708652997789932630503711466731374613418690598936254549466051347625672313951943432199195717074489426200662371381918560710057694692224845785089084971508531207413185897862068644715869341561109642971567392640906458473486104934980372129601993314605908184902978081290846198309888908971015939395127068959217226926451215185979976574186035577159194818488593838643999703455998082182767014891660062551015651702859222863900641997046613118005247050130752790082852129774870015026961819086077556405717070053423545843592061031433389441809991402591520385055781409428039991044298299175777131532391399166029220606106076697394923039649009777039582233458850043783156979362803937003711904494538616017721475833150466399623038769629248133689760236800332382632187338212040807959480128333820903026806509384233069083373718599941495011995931922637000218127570176825456234410199765390684076079681451731556665522110192257874499319880591533517050948239697700896520462205445439254132891632331538506220396051576409135399157993321192671901347019405444710394726697687650423696256491758066774114358604918465737444879147408839918539200589424451980775269900906288231155377665735788060706728535564770440270248009572260965221348155803259820022598906461363501299028861610943111801312820336436891997607492662797237973970617928540353461751432713732916792481962326209797000576994856785886787951742166427217323881173463165530037772319578804279585137992116875634246602888216432696217229889748371530897182507929716085726163287193398979723006676223933719440039705235080254647440589605159211296927099477397323345193638491517606773610130942145687973350671450313488715994779473002896605959112882363035617435256979934062569715337451718517624978083822444632082861052411109047931664249404726947073544344974603699468536150096138927467354000120995588723904496736078653412202249336822265469581013703732895747696409735332896387762155781710811169023441297699571511032486363955760486764333452679420243535150358154033428997266280860264540453133561468004109975053993775466769588804704550585895947973477112792591865730416228017732529501183044769404926236111934580499896930399128487432304851697008606521807262556612756718028791242819372812189210180408949705007458626213980006728328752229483251525517229199880164743605372243461732231173262545165202353532822349866979467357540706775233800271179113407239693388435156810610921085897035018340639704365021646836425760375469064405715638960602288800313491190136189650107692555954683006335934663327941339718652232714019405446621865158330221401252503962842207224774655491308260032357920542605914482989007152901598725542517160596022334386530292078697694831919833996133884712025691443510898153749251623274238729591228281177716327983901369087145365009252343543247986872265578933127767965697874089620868646632992373500537178735047637486375784359087400878150924369232025889143920205218827151004406906358075196289620420040203340926119650124478865950054847130463967522923576736491112797852105815760699263919973265448981845299485708993057220794089845947406688963834870507367256080025789432823964925489923810170001420915034039970306348417796912613367003706465089163095453778221434881218889553394158268277265449229021377207579151628880766432776838579937749962369686388995132040924522085653410883803742815645319830686754369275082775859028197262510497522151749672539669531729928894251987828370461882344936453925336199398557571874445320732163273077507755846931530989888681646336752864777097694076356357982365421959358400601336442779704626083555180538453773793059311436861000509153725838472014165345052063442251841606396664022619119417787407796618307961282791863138686930781677192138700434179479134688301484614879322869415601656189220811936837956378483702872844440655757085171229352028797923199780878937014107858442391499144030877760209903662660649856558920338284103144439636820317584871359790383812507313800731313468513223870688279746362600559836659669736174154719689051212433990615375742594721874734681075107131182522610639198394364337151859336002076001694789425398161218230650807439142714061846687053612650429413103079469736587182581762023067187483725284814878702436806723762188156114875473599367776603384128517615254691844758349444183946427327968974398719620933024548771297321609506322586504601681557326360704860723204842755149565486924546290782917904248142163443087193860774930534311924773103754601658804503166420672483921501506156656113171950301068398591604754136803400084365912058964353591383195129178445338695460897059070988964626476968037107644293017620241994373136139448606680431441921392476597995767916578261726139015123369120115399543638710109127760297004365755656638539682008537826354691787438168789049028499861736953458456527983433844419699549782110561766524314293873509467375322517232466253376541819050288448082911713032039841771602110055042855635448333172767258689729299295197678401759287987565736169477475017817765980618449132628722407308719011721737306665558728113815241037672081470776445233653776871466429562120708212636095039824065680255161668802971680591451541744189380196425239635149085083081689438672870541108482860046885715939114016203889623608304678033234090051529827914127321791589472775351339560906137694899148590690939271619401566816556182787349650154494374430642692509740441531207831442557514666607080518396745690880774093080753506359114418760847066946116711878548078292278452344915590237764197929307794743582187358360303706110863276201390705903640821976722530740252749914228096018810252153158622282312057480992520397772613902866995675194174047588070769643747815317783228615981685179116141351095613909896657904248524819928690302363786472618321034332044746571020087324672991660909227144741149094644534986266772475675902667064944881053314065273558990826586980182896869690814491012401026358921949883931494677379010796627002565514562991038426700277906683458143290134530325130253526993591398202920437296168741030398178520769817624264034577399756910463698468569059880014378802075025444940681217800743727124574659047627752192958989261554906478353500837535278574355219250874035020186916828254585736335432618526127080406192124323834549435685404717460451481689199049670209154874610479246908046321484547528627804920534019191828972276904195931703080361389401126421002980280338461172387206699122301566997488976654033957834841459568767417305942790625703012512658959919973767475330148385023304442872373275445680014426349784339536419244301077257309066419603444929133064519593423601070465932359749295779853868045890521205820250427205881134987120497251997493006775673629043248380681408070400184299997843572976272872686286772284302874530561614050123200817787187409656808995327509500524372379346879419958775833490112902850530527048419556257081115180231201979385749546227086463033223781897240445433174883487475242832997959329449099494510456164431137463616973833264243881216776405555766248578832869687325076517034494388412153325603679336071860895832801605022341430389758346316182678406821726789661575783186707187354351702166244897707288694123794738250372627803857943728012578230272263224897960207678757029061535412728829957532218711512754820517146183948907584368141502230324039533240100587729485316415165522604602446582026068794718473877322352319813077059117262624834464320359269281805148629452102630073614739890700858191053649770066982682295586265370319957646606601965833781447341481663278124053318855390875036655836589899586985469957613586575728504554603257351030414341302203316274544068110079067542048254273637292585673838107349420782279433534473758313106080984040294442398165514061063672326309840890328873677703124210050922932598282327097935633988100565926258151188821409455090461326166049335819788437836984544216039060517202033617780567989536647569770777087469986636816674843424771837974983543994416842423738830932187517413097665542524364412954206436087724920636629804125095164425974431792282606622056353170648161162994321936870118452049128496992795899132295306462398059993469936858982368653516801763118518078794264053330501315116940295146017100034630237617586018630889488959497525697260725786958160145743648832299526198468161081311424668726944599016611235901574331518797856160119597099249757576093012640547419183407381240237211498069926244853457118184903124719045408800539524396502031220021355666091271420395006380509335592046651764898758025988262297622042485426197959375431385584972321852611346935936426343675956214828036077626619335492606975829734379432890721154505721370842100041172895114707305115963819507305481029142443916000419134534053145564820538308842845254485946847700433122173232531508707811398683830298127871342195937521938698951988118237946016380506948525246235372407077229588634783087176536703536802264832339413883930449689233721447915299942463904465457891534061843137581133736307977915809271331553584913581594819011067677185941527765984382298619374794986895471709702280288297185689063053094275209595295332830805624663221562182012665250797179739307925770372727896872307883723590676021769030517039241672264549036855853838945085624860835616495948732718750493266971625301519222194762773336983669543544418622589962804374720605634344001129330837838964656753287864755609877577133446027726863068978924954807283896007831656095732763694172279811406283764013449779220737629271866498118144176554569576106412097052529111925502060482506846237143468676535019222891711440982783945347232556810648687262937657058838068854797296900424045998204660061671763850228669035977560431812302527323086397336315944193528671465177456118750468001964903921960360007923524493961232931591058539880223409784532903671272446586733673939569673727651903706620745747229500054557619516761334971982301304495915386843919131796732416989950245622333675717793473529716218869494177297358231747695019667323597919771912368433152152364231485512109121514803300495725070961078960417928223715107114083021020729123675818468324150420498034586924753521662488422426337832716211607017292629188208828965724364527702471084585049369002345932815428209713318566261161473985254790651363417914572763143871734623658539853346922265149079335823631000558375334994622406455337740484410872003196978079210830310053229466228860571179362903500168947740064337906181738895056088933184822500657594999714633458819789487208530938349319555304533616981958480131596906486854475647674476513590989891829174160296189885811560163792781359805123320730882696904423634970672057022620104849206642268186648196908733359802577019908787022705470087378650962152864397001673569434685534737565929210421942766004148846583332488637751776342859132578434381251266560578966475753670916021614043248734431074628280105803623362433401666157381021225521416999280477380481818980214043143135157861875560118387546340790136498213438576813929321393575062770504169358707829270248801776641978020354258380257609011365993505258334491163209590713762230410443553222081886945437201165782708458603253711814060306005285730333111019840403825874427629000870724773568021056749946256079114342926817356114211614055071068032418698160218835942708558361435677839796957076909375169302552806660371348784438805864683199171651093839898137967250853281089571796411524301494395170282842256584133735550795079733060880154370474796789770958705064894264089176674042215869110530437798787547672704907103155674026536718322971641646330007122646077448096159630998231213321277917762360395747946753945481167123487962846870901332402368787542415002890786734195430198113805234176426285501044119314093881698283467238777844772838765648737849207444251481911267816037541314132110790511980401835902978167045356521415637531951665459792594641207012316244514060464749879676166490051003181408098227040043182792151583890366224478912904563929978348892300939877973287106744211311311188025446511630663815294231647733037089356826249629739361844790372079418614799040270978610343618398188875185744084579647452384841525289469309921275303404224117912294222248278005752402832722272002263676191074014626265095458121396991254550321093416607464278072518060079445153351240672024967379650606189812010861839448958459740979574681082969881409436897209178703230825522449329648928436666786321651536296880856134173181691945146531255594817447759554392405591711575745510088660090775458923006655752330067584014005713690309447416559224985122870861907262962482663481491433354146218695807452340959970654749844611190856873342814869331354929999904197862655323086309831680201305806641204977358306307079602205922346309661845608158272390990429169866786458118446123720585118058307361656673368624915086672381465422778075166413487115848476842679657396970253381454943416627411514810418609032297266611915175938078331746306795631274116486847483954117966000126020335465566141806976596282336648213735780082580617016145714575273771295569739820889113093239468917399331739361401299121653728226716091027481390290767690875216612561822863563799725380874833131811777098235744466265468195424748602370321056084277499892800732000485853324224003045113490871579636918502099189709696137324624123595979788863520380945625990676999946333833982587558178900185714403410203796749131287787098670665025655993700658217796447640116255613466775252589321370641295407209782059375428010564986340912897490133620039982512004896676239912973522438265231821971730537982532641683846585638490679343090757085367095420975835939357161244938647303242494485100965377500645472446209512058242096409243929185393252024242374665186882214644116582008603633431812348922713505161808319876361582358623052637572788864493820321050096188360699524931044544752448911926710868620089388595214716135030635931700624585667344867206577448447678865997455248636926851162642110345901648418244459517789252978146452217605522292863826163542780250561959680028193219964466943010469975798647002442165122250020236068421217532964426896882682235890190876790832022553797026663153916559257200568747204613007640001616042399473557873789202279663776822178490942793241068857232038412175125461232014096099088975238315956285929945444421625716303499363742893963594245494592610226284142787391979229696541129846547740468022556931272368154636342548907602564371451271728294634676392998875089168125225096173208641584548137184517814357579469859840965245940592830142434640149655250402144372432921007339344235893773187522420818277852102720628607853948026828553216007688443575593170379490735248126576207552678080745943454369877059425483236286414137695284537270577923903169606524489961805456968675382709838664949997903411637998645592040020446094866395348849138271301906097162571180991609677357829851826354784090176996535915600040532317958911194198528185360812824285143586045677618205187121063040711112354742780384050394755216970094360661977789718925987732597920250984846924033800654833910972441243967625799247110905303498084577552221744674560337026037430196117145992686267413614647632628485213983377780547630657260743723654313529546545306459423286273863346732171971607952694190978806088091887613580469514097924518403921086496443271588223753333502573959673453479218991452795485884471936990263338337568760839759332852503772829044862744346498070498752194836670549902495471244604042820550770464652975757647495937231266894846772637209500769547765918179344791521561500308193681430583925585271117680243640380222436034643298109234328111102174852949301615747324720548805028889029534517405868434703509259047498214575768057525099832664034478802226294721788454375798650576812401816870540428721782913688629547317150008459171508128229614455022654603302659887446532989405852398579342361107903708794054769259733616970984142390774590643105523463095607374402995874530575985767491251890629692603105939935098400831391051914454680207090010959397749235019472751074115908705114860176098772190373943148180510556860550481952718722910769259137505451357480474559524440790402925040440951610897474522088188227521828387035941190547612353965032303629310975167456761830747853388746567446388718403258191598432188598270959319000468779021747925599308302074837522645304027876122120571593298083351054616142202115027262684397267976425895591235112388295943651217244127526969811874513677364897247546549352751347107979660947938980416205322480189677838496027386748317194012061163699243242389221324174651164105114690838737036351655384795228460002781337490694636253468217362091638112408841341637518627373139456323989987218566319616548731977183057710699374971000391537950194241345330173768703494417177008380846764089978386090239380439432454996774089400509274590940804357938258349482262263773128022162758520283521199455749472940975040491019038383340799886603270313932617000210149137608394065155407604989427559351154710195813568454446365459667003474386151303576602611871236864632217848183906013943423614042581451398294975729324578988490168196457870585233178070811951566167956464578328915372728153908011902939031071690615258836344642705305733462725502479667796599598879914239886020968852157493090016269974253392536213899741965302375761449194670418244640639666903660136226481032918244232449687736893542834929784826882460426372821636844380624684909771019684935276933023669216851218864122702242944318445518318537514358618805596679334658972237592266232103879612842451615270728064251051289654031163983073528877509522378650390263968225144457281099393247551565642869068921148386807717862411433850140710931286607626827974061793412223817370033583290642509880227389715034327896552625637655918498991723852187421529297451615586926870213251711285143223467801657236941227727119924049598488584458331653199233311107904864214582662982217560310638906825164244552941864264143960814830035180202159249713828292849510632591445965633577160172802187472290312716163147132474686193662820070026116841362978838597427393464609853045247561543703411552560982598408427478912805618771636639956809152213053327781225516787336819637713049715025392782988258377042047434572801600515273972442021152362119373230698345743551722004663029565461684891673753263018303366544931805569135088116088652890081961430254925663497850131894011129587300092823506226497012024062332696948155199372484241915164928598016849679892964903642334667206958929489254424753413338103479628104297224263188370735075130676921615867838859540350180002006590321295817326691984295765296919339589343835022936815608583866997742399842653288776559031171584579724730531506487640250771878911754822101984136771352099534440539307209042591485582223397901119253017357010320786590214629446880267083953728127610902770221275743845682573119338441802397888028256245354471595977467362848312256447641780764353328623193395826675940524129235783098475132956881060140311023381735914805743178791047755766505239308772683527018227718553958528459751350574709242335330965916445343979584150521956686930541033855471453256844874119092058932881708560994951807351693792737427933272430018511580527362164302595730466684724473891320184982652511110073683107822268998406794610288701245812850090380110188470575439674257253961917723108554706213329336694588292760776135130136457556645263249594145022368292171834359310727230335184610266902921914012504293638978052269631509727034687085065805204594136045746744947368527137056149537376912656031749248511725343307963710608339454724588980476167377489740162278179053594510769671564447038329965784067252207207382383777206643411237280276468252513014047457104889118869497083013681292508655866026359078604992450207157594730510151175888963633504940194169495894555290439237526672726144452894529120495645097177295071556146391598577773023586296813175410867338135018363522614200203719072271320452452127069682365222104623654765313585605608479825318243840768687947616021552234645546694356304330975828301662499168858405067460370133538753188385475707195060657745506783865303335265021229105253293942460153375532599097118968261141631077013699520007206241359190768125191160025293832725627073172753618791321069722154416270052913384756296655394275359933354466904555318522002659317284242252976039272011567140864337474833474691828300277742375076834972862388190782070536621664931764261304557331276854339570037633091413874861083287895585134041171149242580066716332829086804945500419506369674004321082323223366803121645818031017710607275639541432772728201777587628883711090870479088428326880577460126131971449215267694103684579532760389968220222466793076923593503556999832203780209940130474028760107530165612493607765887646521594718169863320561053152547408826825765394752715090819091490349855977934459922763772565395330159795638599209755823081044276128767723830758948566512693275538702827701105899944190595729615090873756724332602981462598562952774376920724144496383671556448365065593091514334921575450854657991721146589356400645039395270020557064878435497079197362983365059797188432166565558853282449554765289197806546566635688319376999452376153201034643580696135075371669907279262371224833778959135350923263318469590558850382134780985416636402805067572378134289319132338288858821578438968893409413233945168010938242761471997283971328209656931074995078508628631385831155804212618638083254938209480082942427105038701149141710947756108025218379242462724720476772428191086270773856885431017151187477210300294939932948009132252137091295950090092171743553861110601542942262421663419508037273790543580563411071732599558806676094008751977147169852171187608451871928833086266739880269438857466854483733413851653703280025325086605856734767718699884642907657200747810008581634589406122546284341731737638241629797786486803774210989052936207275264492545470931771445222309343032565329366775856059184913080982591835921257558626277156120022319860374896934269034760003816927623452361591506845777258035821149829315660126789066642102063623205038328337574599383795793581136700618757925879363774274561011760461477333437585703490386800940163111794836700831573062003246988718900187313420812192449380581372313070185353983756820723304957957156384200817001974488798949290799778346733794163262818738932718158391752940125085178443230835489233172326607751520026813161037970901268368339413671402255665483359022624502099495924105495815502051919076857495576118933314309906111799192030470664722468454418098590026811785590412499099219882107278837877684185580152229449973342157007148242987090769163393791367261059231062306696142300174783658670299547576352774715086252849874315863464150258471506290051345091923160557293624680327365695014634545626025820221526703345963467714605765921012143862601494793446674782298973295888184733233879730164194324708570650798374655786985192219976154266526961305605192028864443164002077998969239982389990065172912593015908578163925321090664842632070723933929318332108091035355304634299044115084686704143772063468354604605791931196276351966848076449458647929009049349628515534699779636342397732956019868791463938115642267593648914116251256474330326864155542844412705559531550307198621473933737522306662701375466305918624385043008617146172707362000020298571945345090518209035046284398625921502657637346361110877062072408839743391202332556723281920383749425659429814438911398741165049308979319608772711969290274089711326206832953646639454218292146012746111786863193679520504871173008770959020567878202383831117605837494181875723232787506895752396473853955406606997294062983541371100403281219291141817078845304942037646415837156423624916621689866392421247460005437374470241959661810728571393532634379146951120251449448651303871317324709778248977708431957095473040250536447663591086249633298730604087235497804773855293082436890582395236251290360306821803512814872318464467023150509253751873974786148163168711938956179386794705064708983314386350929746826280822109686584571758802019241397182719346812215115234787425181281324178631320381966402184468058004655676948089783395222762130939733399562079753813249320487409369737030254514447287922451122233537208205898648155272793229733958212355086095822287214565473687252573502035768508485011503923197689979081198252234540432513332255631673654063875145344731833293873073144753111518046993823712277894152872391356877460995350278079958585504166085056277832006942126903495128999419768769118896474908419809753085287186998619646609991447558237718865713498704563481737880933648686241566391782823689383394281147042727554445517815159065461139235016805912291252294309476754247150150282802663211062481488072329430473602961506832276731965124157226744861161885003011058871459597158235204600319202557676328976938667667268997449556317715053493302916922985994692313854109383575724392365913311148560952995981469273013643432167265488031361182255343786609125159467586874875040990350565160661707585819528137650056121332943578262304985554830057645912344232667778738750486597087028543053834940848164272321660288144360317596176847346212241031583388961779205972763727252852989305094853770416079405803262097727562019152275431712101894452658525696457698234648735942746349678975095926432857624596596176705291872609940378760862176406847215296791218753538888711593519867798203657008920331978821962864748743555470676000074362688561317183439591223475855800288229407062831763813636221526120078095798107679230097489756131488952033668418157592541026262370811911991692456816210600285077739245157813956474951973796134572358722574471345270472397752535706411011137237399732466838957387380967224087185389669202348943012505046725088912403371933710040853828765347169110170945438134419510629762771203015915977387583917471547589670482749141545625930474217509497334713219115035973163971799419927778714756549908192314611028593716399603949802559324059047802952305164353762411733841720724697951076637052724575443828271802555178653084093033495472492614876276085677227519958967751891454464393876156986629490056714233927850510054880359103876376456740255250128932530375488736372516597069929446735030002947177358887610697059206798742925385305445145151257087848723632946542558257127922580812010014542906632661757605877445947652656616449629205653284355847744503433417268749636161851414717650410117274696283503953223105099128395656551813828447973373641175781994097478311677320832974932266237597058568601678226176749423878173963108269820755230854228478713958485572444501360540260597236402317470628685117841322505333862728692114093348528432192919890483174984913993923035723604058635790489622635502384968208149334455805807269512110327212194000202659457906083531937443234831399987129554052280437809676631496836583063145956295441466057694383012377553508614112594614209561761469914758081772848910152572749120788197021376580747765988878263228616512206563831030191937083931695790299243306494651435110696451133723883953421029261178804952314974264230416853735078552343976944575306943282702256600164548072044385499029928964453486781336548235029985815268835780250562279487171496885389739501495651158490607437710897902021407491604453945491896222441613603781302747018218524749158019086128473065393442006323954585269755638177591047803556079595238915982540065339290255823125384168626112742140432800585383223169367189723226634945049195364188370766545934191530402155972393350932490489253224358681061510425262766086073489434525745818220435591394072002550379783863243078835409311294243757938600971761499573928208872899505086877919485335632600628981548660096370922714714699019402920825165683315572042597521153982375769130336113380719237839758114918109171125858831664257255838783763084217034529260456995038375454439764144904973478595646878459404430071230288994444611383269159560977684735597391323873478455044805343431566695471210671377664764169350095569310786112673366055592192694884332689255469938108808399575395824959538410292524750086383566810343681437262689175329930114008433292222983591800317186718077358674632944023518678977561020247074031515700645507187809001421935197656633596926719056810453409548244198653442021951605485206085801399135738197829519486709468327438776189931652714002448791996216126903727298066988538234708678513725534004264120765278084248111132959387849454843100150954938189208643418449964118579963581876124899959121892016388671506904521356197084695374124170456763768578846912670855072101586886639602517389355103229692933224271069158691476141600782525513336236925309668950284724358371147389217835351698371018347509329442566773311138170215983611904545094802787909423707788100282702929564674113922231265422271664513851428278773404819023982305618470568194553065929575039339861588661916444701268772607899305754970132986881555438810001596237068140673664515580038195747367258563116138892932679066840269180088620453315126315960160043554931865629176419035456053637200720580423006886429764556454697383853463692074459367609968728967339855583868160331000117663223039419583972352290612639613968439742559519986204561102690048342222313221617279064484634809271231493665299454668462811394364707481967502488711698294581369225846046572494880097088411231079322875795912072565536048734091122429922549638119123246853921263273750277647271394792711188675194795684546151531569743347002140544339752274281468309617241404264561287321244742709360891772190637548738687037594743951822500346237249839539172504171944060996220932012409286168248464178718716734274024181860020425575219357582257745649034927568408919937400655957827926459739376086748581285480145426294911310003665127131991754520621127935017224602946223515747906674904921127935335900473762180255310431903462086437765857091763930552466373663279780919051970496659415413786367954939443768857240680578853645905862351124583600882685531940589961822941586002738899149262449106204473310646937390941794956549551493350264476770895859579264526836610707586212649975424007509416482156155710093204910611087978137704505570767253911675536406372742872209942873089692335624826156636971097759136659352485137991590215263660981156311799117191261367761748711020853282597470276019494595955405394223224989328662540324805053400997404267137594831250436627640128640377270560342071162570602852932043314251303566978190161904414507142241647648385991680715595601318400139152145188051689474085987031334447241631913106680089959230502999210387076469488639429656686772210119875229091862517505804552083722023767564588501137566883232493359455622358016881039368326862735012398196322881477652846984812684348667347872384123446667091885930708030869041276013231982496092567317749472702839486311346113955544971938590548695366233184302287024039936977732087029350173870975858082236339164118631042944415685623730078776248183016734926608761641229379693780442500240132400752804664766633246622476047437652751891321227375967344065971513239345866384425475253844520307659507833205701860018867199972479119848926795474762153867621700611803039748417476756240627552931373031696249060514762144563468706322615142892378631072783344779981499699961444272076087030831615071147032215878125925863529963262017128490575909978193684138657533983013101350571367337219166159265166698214297908086986936703401141078853312227910854065086191008340964461096498341952513261177552605667992454256722548412509168966536601091013767365333935722305881283086159593232354503098103582315823672954867306078797466782700863925126232119462243530924592375213755430410242921645763042732334889125071691864352616164452339431048184734761978189133287458067809526005898044243638819737030125889703089872742999546673955251089985731447251099712857484840679893380545820477972705441243223981387308104121027970899266316384451376721654669401694522280258636762732778415436646674569778540769548510790915061806970253435242297793423141730124032255028060494194822865434390771773788398107779429802631425968329878415982090918113132918010043324310557309635703958294243819510790101821164035287654482835831004339155316798113406496024332646726458488763036977800888172649936409297634598620373219383886537363930105565683854500043355715868148243409579306189348965151534513304122386448804644661805726998526589990703046825311616147734546515908674618076215429814230344601583921374967368531510746608676605651048650798855353367629872771144869562928577229647923261699165451921084359304571320700081120643128016798223961549777364341343909266097757007322395302091360747903141595789411131933463198856351606220719661727505322922050698700095133915258990639649339967746251660091937484250076602415897396377238640141241583107325054209709836886729455561650310475380779765968540176561548256840750957050127763814000072184923106588040307333293067621309911092998819524513847577190232992739969276533877743228933856317346562842280379199039633149465941302338655219468208724437803687496418878814025510406011818692697957392858179824896753916414578523800175171571398186040495914901104322283172270710529540836180823235058230837971635708982739041321500635452683189985855173633638807696557302429317506445554047690699828835655699737581172409891059799275224048714429999109867361735330856237642321703839381635191682637826719911921516600874493378701945593048544352307716635467915117754129295117245864628206094590126933341312061455029448242585561681284550334615785793282577731760885286447607751709537160932348348491735715318691404947428716283156680795345679706564328577393726038533394323404060687838027919967735839175421138181290957149404251966193651535243199068924512680826458592123018402647669608610881837962259578667794528147095292107296358310433611484911660102592723060489184807745046088598372366218319890590177263690353151072433307376304839332636502996811481851544170396413996474664949661132112361482465395787968031864705324217654633616338075426548960414857686975286523735766444013348522886156503391810055659908938272533114309534971460164440507423582325446865894165026326649920346540394142399212714532044229712914307057794371622345690973044217773178141155357393501786442934772467755325705481204715199715310597862625606963342394052771271237078777381912271443060563019497330937240675025586540392546486173531048323597775793351413229656297506446482277492271204674077533292020920748139125259174757791376669287018157085608294853003137311116685492645652500080723347693958129449050788469869309520757233939595547853525216015192465474040423004130298971394616166893701062778876388558532048297472118552922352456060174980277922841562502289659662271230554610397131602890735431175917054113284141094763978052733280091205355871049663888479280560016648359059584922950208069292769237659299656019811649124338069510850844678830680166698103910956953046838485243182212915412063770645313237729265358356374350165454317073709921849608471420934263965915608350723129992197461949434799743520490917830905930210284583507753714956575518908015490562925339951258242714570167177979951840999480998428330980862941960948340655499478915075888815944460012765723888386510748002109857890891798911683008152368631241234636746471300734788168897902889344717745122916398564910340541155277278377423973601151094500242835984888205317891802282322501708161295495162728091844393631758035250602986196146714836300338769560441684838520568083277008734145493243244174098743068682383687156374929465505676183487650171945498184179131361105903267406413856558871574287339568536759714348721000138011510696745624366883147503320280027900881402572685217050038277921192799698571242434460671555735347304502076164582944623111056891878539346371731198376038698614446877626035357639671322935434933885249786133603830217847459368738955794683076695168571831269327691192682698919432364534223670177377197618572995467307272094291959957324933683770105673933995241597485307236459736720264266731986474625278267124190711982445317009321591062438029867657950222418512409008539540719891484801179513965313516629499052739267694595629841815431963766181981308577224193684190469847087206407254708785940882863820549843321267212540664306549602747476217774935353095672505177485086078943191257939792966530632564793084819988432874897488051187800947672108939368899093498751549885687790715681865992324755197156921137211573478089965634197293298466747600512374619887934420377522945973786463978764896028704784748077308238984387294953040659178596949793148632933974299039877940254032937508964674953954947939853065943020764668302323782523336524482824443236251655522080780276131257895261489831702427428218335548603577054318720275171057356975910209187322841997821206074775487763918975523497972381867990281028226551158815397651157035719584721317970731510745281530616947595292267494071373468025074968216578999890733378891446355800926648059776990530442463152941637987957727948666555662613333060613007122328770166689362517523888425650660960057840773830897651447666541728673190382658056885260251221939835821601248991483660058371172347154747912915223139436732923028088426305429761543373245890519629923061034127925159106639418048950118035023645622240045689880920833979607385711982631065999601054501113219836400325306239346304964460779773234999474431840159731470053498120187894853873660354409974338627601814165495105826899717820746853693967330678087520772478096253614025094409217123568237630550160959323349202197618525812149401689597880451938545006343411648330054875609900675589397800504049458026365551097476325087592172064139616914754661092973245327304126967360221844310564347829424887119560859954972491161478977393118995542444383799259356224878960499570313435700672911341714143804079369450466895853209732475944588937952562238354974280044708726505790583089919510375593196240552897517625225293133814702457180751256539723443398742834152965734043988707815432591800748633122892453384090977678517523140131959581447078202387308112899590845879674791156406874996225224599128425211259653705682962982476035390316792717314701462990774506296490190303627491312809364465004871052976795533521937647013963387450439834944976050715724864552327612283547257491633252857903828529791464426700344200541079295893129261636356204080063014695803941806549908330074001265930433493655257847689687213843263697038509535390471091582685182964941633438813353384559114672642545226929611483408110815954027239765232737505271826906252826330221246147873488889058477890785129520190596739341489262887685568169248515011758767068832288997484087413000015277306058469758290847447135323203687420372755086133334800773067829876209902519599665981158372938483527073552323708015736449261935849916336734982321864347244828067222758678145821857254441716465535240169931254584583367484749115212829406078762481431267229300241147398144060248372298373993111224318959452971002537164966274380373766121918166157411452196709965326232498183084544046043914119395717813570438597146867500334678132582479728241873739858110854784629568177868885502387721546343694386259228253874764510618442541224412023371433504478358071757784583604238474093596820220964381518192011538189083377804063893491804069193273537770022278753028359090276662715767602154463959774486015604537090262449944621865952823232956694516855146513697233690605457832317722022728224047424690908238493506804350540441460393896654207059878761768450777158190289837803744182374307268970172415653202638339202582525691648126742497815080265312257385710252561794646061217542533791694005321443787195230904184865678120111202593782966515236950544125616136279898498755746969146325769786257819980708763460373912840784471365600589465614821766809683582117301182695794416526998627674624979313311234315207510137667162754506166635429836315786926580431988066719681606926909282896581203600264382516874196069153592218506997158302712671141369802580905714866878617388687420977835045467474536394650904427425810598198870682118366919555477145986101078647758753693702597230850384998714289439322390077960135591106801535701945261385683356333734370705142106128347825403138728300003654936840641890807672701737513325050523605719204369071416145077471274036460361935317123302484100288791833065691964839357412646467529160710524987268734155777021524699931655207250653723143793220528143870479202452534019618418142988140081138901923613122811736548828856239457405826076402794244750777575970771552170202176306954377415923794333559811637706907446772415895609174289437948525764043877358370890010077133859286184889767087340864978615044196738494969921051104295006227005975014827019623181601601276930669971734754512285732992973040471361336557351689049902295066169013164706275521796396908390602816031632049093681766193211575003642802304321446270921673608101155085744644247949688763591698773180974916207569920003755392878045144842546059552271077350818451477081783606787855801467824965785151827266686298227478581709271030030702902021935603396074809653931205219562146097340276820994771460865713651593221781476203928384941208094664807632815422522759063703374613472105613111630751398715313179680094321793243021495488389932222841246952810922962451130652655891363788647485188572063389050191183063187788490474268480882795389260277226143731036768527087849880534335201422745190045022043708218093443648356935445072253501105355260271939461114949630889373529137164774259302131959151269916238843869035245398651883919859091046320275624943481571721517064488812679400910021262670239834746548119758312152735167547242349751866720401344911085311459614293840706256389264537475024011459538855643881790906360836382719251528038077775508748728417716058309420235344311395856994804384772997262730926924812922163039197476030010107424638908031460000483555000081893392039452341466624335170639981416806201385546112597366434949880984867561359477564248114559076319325346470306066370949563219195516290118185175861932789650042704444528519600399464108522195245819180018239080555630920087647049372582034695506210062928258819881006208073572765809629463491679370574323416462367156955501933637887818204043006274347415893755121976136684691562394530440341823398151344715088945271739275451778023093675164747298785818133148266256881469435019947498990980683923072431997243644803637974384977926066032885283249185919548750564179743622502458508643424316579786892109163311404382157686191302553632724440112802099065481813057691012044968738979792273246824457244980180335431783766702594992449800289335374245638069335591572126946517759115903758823391502554097308823938881989026226009405743561581751998362644184323757586307630579786388547756373901202508010844701642271708281263069783326152519653459929754866887837028524617314483251520999030120285228082850082044153198124453154318838207159379788669873738413756274960130096494740291131193454501935929932462609300525256048065351980494056106398818842333591136029005640440267927155200506183968152952120548304324141381718971477177101275177554040227089984153696319663074415382515850748505159846311574573201877864914858214562018378710399856381898651001731633273446830539067349302702413004836785388451113098395147966328977656547769870803954251761840058832999387432841063307096708800449384052225192454984215205874555535238713654371402193887784080628538920224014932674076004689173215154110801727015821080144442086074768230036726900535050965427275561374745060113045453584126483995459463446568723105520543165170524099425550716115176591587711899860296225259564587213888374990617115603382491441991774321722312894040605151585046251854340630912545170073049312616059317711071825244591948638330607902091926182877776392550242110099801084643651958252843607756986186074836840718814387735557127009231346087058119667279199253163506202342515267188934757817447187481847670663222356665329893897906346615655813478591545693488773264450373496040142788919594093057892700760889207785688670449109385303662846671001581579852134410123888531728563177116358452960046338959295850662028260865274598560405908635085514899152491860474446988327838594934158511305150745060202770001738571061596299095357297104812985765329931485309711668070760658618329799317439901093848169899980604544555364315942789934203426424731236649347963180806733966340938490268571222256321434891869254016085901908038265712840245781487541399398331121875316280761611615595332931021729236013133347679402546260205454546677387874265593355470488812804454066803043806579207286865386192643867215752306920041563761383601773348731746663451277487855901114653046818439385294239953964425525684982787416260680887900629142140230652568193525618527523724436674788450305969575672092935249753461113732255027627050661139861101682872221014424310683568723936532772530489841427518046750954572753658188883997341829410777400745325939452460809134836207831588480646827427013381429384863480219361347223277232867232532840078172505201226076353611458908566846120193726304203036716911668487050070612240517510725107332810155523608785619810225142009639261597880330379544483472265871782273539132700102011751626171535505637094237937053243783764199386137998814632316343763222051240134650658818054675601972199592441940079717258236179422410474682127680578794392385517152313634805607035088961654009110486021030953467237127255182180626943909498515042355666758111564673057697937194686556380656231184910622429516130968379742096897806112579035554515144152891257393138710190847184251651209461939654685756186421543868641398575185697112576303499653248937610247546465567731541758933161532729895555671632115958801958579525871516653853299090476467802344764920390021533194549433572393340549208231385866219793134795848784313014546098957792429992908689635118172109686440763243176835462774433464369073524960239566941997019373353285389239444329659464412603913677216984676722687428510574498480328670656328243673988670729727073027273674542419643269278537776674609613772253782333743086577091939437445112433203711683847748530023554553174435164989432014741184431839061721355114947833263288239615848374640903216792098077517991426414192867950099293276844122564887657923453770371188799199882343537609162232297391510006133752321213247831650911298226961095795749439864497231276887535040556698888746410386155321767325176864325448152152906062195475311922013166056975726313443810278001517499277583966933309009009054083152751904936580205322785392254644531140927535734286132299501322769527450001393362615935869701274051176699944354938835798260165257804934472753195871520858898501136882541763496884294785691770945865657384990721079700980175395600185377175933830362824070793563383980840197931910468125732115811872207263832790973582624738183478564483215372809704304183453289695786399287564369165559909287130788469747178704317951010762460843099785238272276038089017555091191722720905646068334135770118240907610117994700786681991974309770229783771965035951667587252248815680125793704231006457305139023741035676453811004670036656568162326978003325746745605530183108064688786149967129837152225455391038353742065571790684628143557371224170807514918889607529869205415591050578685614311238468198729680472148782893283205513271968442328413666127546549024982793693932493088662169475581438960151141738200582537956504618884495690622819937630548652601395560397348631497522840869591586484779000143277726146015451517909110986673039451787906795546817220116425779001160721128499415424374744007115226589435588016988578762987740528623026875748199412728223641967376182504603645706753947573896949407452741471348537229273899699249361953354297166474250749933685808888822370207647443832638871205394037315426589646550666859104076668859267834993375223493104821102673634437224361126274908416427746843086316365146216504639228794200548688927965455079946267901480562316678112289307009964280200709385564550943253309446648460817747796374502116620240872859510574836893435733577784566609082875943722163788742681654023284170953297186025672405211458140085136242765739659374452694522620233240196931223113663166722802269342433902308838555637125478126752039202200849649717347121008422653251967345558584721133372523850737700162620519434762928465112153698820215479777290273008000858468742313267467769087350607395741706123142725777377907562453631986430460876910799614060203839774402637729725417330312682844799914528239160778359230265032050795657629739551383873467976960759762450306963404926099955755525932242271251459400297341121025681986748683016678280390164002560428572979358537043352033762167361114613216669806907781309694584364446473600383751897264182912254546039040260158257461948387055119732175876997425811833892270387771618257873698615707569872590159486448291836083743832818859019193174043738116289402105198602857035110186904500319460423300272001451035362612237653008567841020769600647914424299625708818967183315920358137547543370303651853338262586436586002061074713827071324845048738821632839001372398606712329603660889836848471878174063500646011973587355813869050474334820932769324822957403222630792191818938112306551689542829398826066576567527027936609195398013868054603879226971505248292886190614800648770476668541549235139125927004647487982073986904614834411176968484269651938154889077202987422404276807233950456429886080367050168192944915196895063880738767165281599311662473231665898539021277362829061743388690377950851320691928600449201344939616704233255463530941075114815497894930369430725313134156154218302654484975537863068525910227381629183658878044345485638332989417469430005770379142167379863596198218868509899028240584642322716620114919722062690852709136383669881520936174262870278996167153882195339773307691610386834969472122760623903459664786048908675805281684536001217364313357076750060967716692844683797579508389764095146513606591125830877505766895826095994200644359389905795154699015162614041277293653156155599350337935367506970936768004147854458412813366505901878908309782905182578721401391340429234705511484460828380610105763034544868512265443243555504391830141359025053354938985075914247807055768378696860511214599548085029469410538827816285133039252356439740872038864077110503443612455082178192639634256413872552904686377699370669612785742169509886952206164020699543833751672353273431048832509567167935108221182299138015814644950469620648559975123417346523578989543493802176317712690932029301739936330586211582969208726889301400435147394935400427656928638136200954453160703654375393176491046659818889592295198487257829144692886442716892809842906171879894221640140032006728882037315275940818620988249306291477989960743503216108621530929128804168029717891336327230750405740719430778626166467154975696580911490569769036918890431031748238912778825237298498184016662915158421337467952430769283840185418678237940602320345531155305863709061289751133946417838715916709341323921055690342091077304440565483531172047990966912636223279861267002452021569822042759988052046341899276985025769640311082464222053250289315377253039600182446360328779759882735099173334845182643229485017896196340787358854128959972615304802020456069474384563751113939496334053543164047028283487932831860334567778540558960022222152380493938806724534289782180782780597473274263659559874581769398592888848230542227014962139274362346621768658242381259205309415039749308302773064685718927271793776266985692108646318843425359236562816489002842637219347363775391538487845322300211045624289806185675372710913448822329145462187085501229499072811573279564575848213570275974053769028878705763383302844355287410140708655804832583365324730060866197663123878946244522345720568404475074543307260361824674396798952149387588297785228203382255973952885351577995549011723541855659283285126978537878803747747657840252858238016739576934304304562735350963353196345974011387653965930778346127422896835246048168375982207937441707134609117685445157655183212123843133868117509079553193544577466897020219501792373854485574104678446077571465690805833228987816478632725876242944350897493477434190887310610828088218830996563662568252416153942296541501716742011202912662868708387910412811729747927327652958581885771530342345960189223714202980746560999852711265092156090028016593852326993139891565237128368559837990618431200765342363358255461738230293661323388735337120185865551143679575856796757351591402986207349252694593194335139797917624332896195757121884936088782307521637730646868381145299144014132381041461076164917024408744586375051434295662015570561782363040804406322567067683322822524481172234091197008414103286750010660559745051418965304871275066899866940331463932278899185577494420874976408988205633492065801395858135566956501434418327732425407084457793262798069691696638590220481067509352251853534056704767949785898982421203155991019890750171881644680926851963966067274243660701928503005525767368185108405693147923924735283577728438102882591434370916428909689095821248126121599584556291648152385736758902707900131604204794631292550970028192970839527185239892960837113416937811933675226001484855583487020790848508766826806060074705292582789665672929421263803090784934557913931490127840301027575855231499719961555084883473026133561476703759988680822988431046059709596151899838840399403751739622177119307620330282828587152564879510380467641817741599002420150351857388899755790605142298805419688183765802817809993591116624904040781696838270123874115786715517006680877835262211699679668697708826870891076682822267638192441615819643075866887922406945121115946374096755583330599202845156878389660635251671833740645761270274301347118557380336357307772424470571726652622060788829112026128367167573899713074224947131278854717558330079394414760120563520747399395044748708832426659766548344307878188039795442118505394699170469961623581790036809308256447178526707737451743246331561241334300235836338641391700827127692533556108624526784435976387345878281935722146452967769387727912940111974598361843825205207701219762043707911870921814439669178365547269673466019565108510595956198802064429515693942300790778486046174768506476651188431648876877341672733793867645894069639077615224406305876226047793206735501663636806242462664651436120099752805595457021763507492443922803045967200281602295924263224448354807195996546294215794295719887656423009796950016698178221929210259687750840882080526543219088134090578603096208345615608485839996858980409475846379244099148290041683582638381456688664799801655742907398225046577701364885145929463909361130042621434655888833377049619568976066922271801031695542900640658180090011220331380061535639187313876162920980873224585529426187279980916088339469852945717888613953591096311538553602980172966667557074718869745805140995711840880809032199854301432548976023721486810224886683841128950254233612311298773163798980529259888813430773363259850375805740926301605446364763846511438474374479299461926026879881337114757029487843797642578206483504949006618944128598627030151514916676342106653481394091747623990498213889481288736823267910718535934847738316426925922471669967101996536960659444603118892339947570037963010984667479700241961138344812213813359457475955864601992972505322319866563869465125702416625915215168840460549578741709054643217150433487419670917291915437097455193942976896101739268117362371766673179767240788275118938908874594007850056040084754093464470178221856432639055168722700260770219087494255098875872199355645836697218354933851699339497513803278957063012170692874730064720882088889998861082857496859015256359684663605572577975973735147053054995137294401673578631945480271481190700894138749593863564691641839271894403866447412311794215088090528878778613511707511061575234277186701855872183605208031051926743100005164150679836549116037761746249029179119337298624476905903562260337372874724483239533048286077833162106840889965876479455290983668661569283335160037825389685961685415415099012348192510651742096109408435836046120612640547207233617995856039447884309352509805991201738235801404926821987135881949571824505203570859966104354989056580064091557672822409554288999882353935061923394171957225056052796523287035144217690438405554892168033902822000988594056674120353484073404157473520715351824019039092843590568503187088678859620625128163228646566755629452541762057433596427159587550331568051699458210202762014389710129548448378746878972266902408531493906744866426342150010102135776685546135463843787858946548582498623743871135350608229148741710700092166501648641220845994036026944764828978655799212874087665654151249981668878378478415560503262062636865566469917419425343093559182462279096272178623399610650266899486416856476253734490264681147563574877695986625216697233114737962330910716726094304736991855829786978387799038022057605566679916053570070895004240601231180953700969882585613421845355600939003645787472268546888053765625374475732005450867743835869281236677340225744542607037475311007233074751593846803191425470264927870702898263065871912364709113155181502806783675445461225701015923740742995203230676495175369854043958720370808259246099295890012338754741379839252190728512834156399681990057067052733784185072320454498583076986236506661720254133696166648772393938710387879232698633238360680012535746323220554294563253471980895068431742639374604095258336409429684787278779953926410324205878978807840332639085456724635365677615682264927700214414563793022178593124324156307050392531533427664285423167121061357972158844058143204984506187366216262009909029729076630629183982697463292246496439941357855066141439120245249869057790027873148787372364924237241241787656575498850584262017499565662817069060636823022016204508341645713289115891694475959762701461110058002154809509456691833295100635398134202793317062940702169832412370896835375342938301091383755608414376349284038519394070927087802913506106905235197570916384085558118164799435737513336812390841081596713025667553027905763004441679475117631821223028814193906901296871497056300537572975981219417870175606248570269813507900304462448327165791689414770201911434716956488665075928644584730576219670572368418724420207416392910064162166615486709537992310452817907232991569805222267586187880939033929047829527396183573786844541514977054829203834101371641278249191098626377894293664649365100163052278804226651895190941973264906617938016824607011871932916449780770405646478077497625650060500264890211385297418575862335561991147391584517848965466668233480308271285445159550400541691779205497636426331913624254527776024980417134457949815441537195513011682121664546802447825502116322461363348705241700834936998423355716426241347453565592795837897299902967687603428479705063097801653763149628217978050608682881486267509416351515551341379532394409422987230415567133839707293695457413008288132446966199363606606619401070670338585508435176704641320345668216945060598721648590141874868822819170146400460929451217366174562237633692028932337851515628631505171142493418895868314461390582482214689624363185488706654041179251054752065805406555329443263281832874936301255221152164031418942567853790888678123546598282521546180646303559573827346138952673615842940480472953700577543862884759027558531563033412488788657964988970719158762297909627519091469305763956443996876722644896860878390357056590089402467000248292739544407219005032742881942782836755566934865603653003665386647917163851118624582093394121931316895414290290475257539753915459579276675659905856373911091858568303441572978765698536588143866041901754610976891507007300684895152026061505065972102794991342060147530074787520165709037615910624244286727478977410229457515721967282880518402587929142216062694549780056438979498392684419642505791094600721045662188523362502361649714662031677184229316971313329576614906393041119279558485223394974212943829407293257859245284088678501750563765895674988855496224467781257296371358623145643648299713972558880081928259492281491123065792351480022920490911066062816601964353127754546235953332198216457184994565082296454931922160926505388764914976340642231195705017785923591121448776223165953130425486522762109184217939058256021682081867725162894936392081871961511164706553744488287607498663854868098149039269217783004701704289405266448264371081304147426311187995085866318116709274436440311367120757261873209033639053011148215913483720301881757083051863703392895360398730457994149232774524567327957084641216043685566000183633182081312264152950833547611998968781396279356246083771802098957598684544034708153703827567046766035627071822812496008946219120137546666347201280498543796441528709230941010883541515325198830555437871760377263115229109128209890058848350498228898747406139160086000125536347189960383308571356838074992746929581405939624368534265017970133994649643105636316963653530441936850819325382539513578518715399523670264825490964004865386410797804559592746413756043959698295310486595070509597558301422384970248944270697114251719193543657685330591745924730594429931701562682957347394187527069036217573833725943441653566236600960716468588217196994489167430756046345442111280099418979129191508799834739997539424990691199659189575147451633863620726135796514874188261186742361430730324619049614780768359935903550968382322607586330719713069011237612656766322518732853351384040326339146936542911104453505040863146648073546178521553549863733747765287375656464604235075964512909456762035925069622698625316331280081733845853422998338611550425109711847403960066579528722577196321078473431109296328153536532443164355342366852815396513095266434107688573590618808181852971981102988523094998660654087962374815129592180791781595486575971339288432236279962677612944021840666142118956052767695065973916461958436825207661171941381007005321759887081277131519228531747179759458622803663613784921976074696346894357798301889224628544551588022196299273831228317182981178531019043831650328477302897871510728847758837151970222640094068655956704847808342782732115527572317888722099186575311938825676277632206425274164347688685062542525761143517236601981612688895451967160309475493281551092298813451771573378311175000564995375278420654656379872202589249526817739045022146515446496641947312094564472848959358800171664987617295144182070053805818109165844995067973554344812841248088332462448830187889390988872526268618840520137375035348397320575798911561226305257257276124508753825567820905549707957155765753771248846018434225784465542092555910429926513669195944894063256277601896681146313847928702657982184148306309532697126106571349404695126220500443902081065909290620268791060313555101600245926375371420661859802027832043382145828133060048855446956396031751060856374405921012622702611146547247886835287415069754383606180146893823715861765925696142372106440483118730579321652178595453156599174423759020554512478176269062315450034917005320622547689109484570898930104688310566691016330172133272700208726107674693857617720533753254809536341981521023506840201597561905082566345825750928386036293231483058080995098604496350868622099559358795043731835700767086108378070142108988311823864264420172071937595477596440610611271960993082525277709452150059843133730856568636729907569999601220437102799583221679028299673402582305756038436530593959411810071775262303446268612427296052008453340094850033984375926198671882187501320869615270479797289504451069744225703861770068715431997731233408841273265598574038236595322625851879534999585183694030656740752988508077714405463451412372713791475814688905830479942449669152090502506123598257354011449377234620739212771099889329857201562167232643537156268534072358337479704436788451009177756855820503044387641593865760325332282327802406435907770336618980132273223718060615412482369303870365127129892359985238038417592476163884530575805710370710884371426678717923248710367028005292112746796544252818153351689960935418083331968778066858190493878001908671146858387666716805019169337125162079111725333870320080157549824225632385075968832582183662434636157869345673295312583568175921785821177703468079239109524260703771578671436129024168570560039515716287101222431024664221970160793183979759427263697555153834600754245411231016858933058685953183842372816413726111261372419327875828238594385703221181759921991583673608897583131264884314358338981827226447529114300012901185369116601621205682759376970389011722420164768510261969744155094199995090387682143714116971902044649787238817491610949131945473012720710612852953322317920292896184112191126370968270553912477527053869972468756114006046970172681471810371274008306871809735482650940953274253883555385479414705507158679788509010046892325956459634644974542961087775264488041118398315483881101203063648671201868955087806849065713147724982803881437058515398129006381036970760139076390722108364916562719460916443032342627384822808475688382861568444907491153867359278637505544452225180203403977741081634335830450180822083572147011373953068263242706054601023405925205437522189403745940378382150173445454087065562028065940848696960815868302733779107672634442446097837848334869271559187485168665321817576514591724133469528015926334771336786068845970303437927955197421762494695446309837604698752204985585469057030996133146616394927475702774825010702035443525596587375595254636836364490963603385614891190437421136403585872504163002646602614006848520280884714215390954199385609553819659548369205280999827160186693528968224481167626289849733123093207052212316663056742378571641887727543272375012355345216987234392097703944462201344211289757957348281212785239158853342441761317560586558664401311586794815230262304871665373123854194309940284595377376302859205764230175843264498005079957459207388325921556980952725873862989394123714689433461260416886572315007219264618413981878663065890490540773950402640335633093029721368905758651950008464150804631435430086900283980057428140596049231412285943732976668266013060420617441200530926031696146500644965525188346109677691783193598090309390379929550307780339118804481667192117966894530922108569671840071583678726160563006498385625858592574607228194025549481348332941619892606552241869689103094031458740958012076780617469195458534629494710218832331162687375769484930527479245078605907666114574486662725033184430424008520492512123138616138102346065873815410207001385958839837994774074466697083770318183959233651168978097977090751429163126675503792685285686431502696792887583417504514905490607618357720999765723368034619763958906017447909742873032425266742984231216751127766828039677794840497842322610852659834395283219832605334199368943629972467859330208288088096096792304249488687185576924692831773340465484566186685983317484491504605381537524284353993361942975236862689456404858528116253865826691178415562077675514294182309118458695184600874359545652275127358846888689793582659266134820573807461264477348189754564909891349510838814248879857732105854828909992365875727438223048356192262099510592617438965862460058744767392093719082663331761063931671708217126874491872112113577655188533277274207258594378725526770531949881211640164934384998459583828489876959693493117005583547052723950766157219041644130164849390863223697852317151343423513384531177892556394769927248294125389968166902262011814114955641840107531973493399688312992886978377411075795509839055725585573994354859718845929086283654643904013905801323159828122278721824474499120067554616652424954055923826323450542801206284955599532778460515408904309542584585361496482991301994795020536654565382965352494431568961590069829710131828885247548611891131709426856323697325464090151542245379658382403252318429895439120391520679895189282254295662917504478499902182154064678839504851189026384340554305046672449405411621212988749729864876523992797721875810323306440002098604217435491486743361406233490543651015054188171726391360273724155682846682518399538557532633085719780783442024672546300432627951567049219488000288131557284748521072284707872625051151402690016095464003014318021151997252674966870518857171590135755954257877459723855012243518199081930236278065738719097347816291346483874825677551902878993246205073943001831075374664523197158778209839367383059168560469799925859131454083926771948416759387753842806475680294038384671672755395836148677519957905196722704485648708467558380522576195075170570678141064486142576156742003897209934624154590773647827785826436075017987363721619628076260797971997397418323569264107123829844072945632103953667916810018794369792271732171173341848529578704521882437490886136904509350944132453287380553706364993346934855274751351273607799412642956898893232975857686610283392585664379111216061292957047295403416954064820916967639984627135226594873782325136200954147967559413932949350638119939275617935645690739992554667587485860148227608995792308258562432577509019526370044195203928825865969509665130927347071599990155799669296906532449725772445254186063545573802932999964265407459688219553287070062432574204044067733366212868892959390355879385146337348874164456642510943996589988318246928556947451967634794805155938466200347483634647927201659110422417282106792464792577317697302889297472775224700766966295045494523781187625654501302624065314950385342026519297393437420066931186780570980173253424284650721904708677932543034946061128749288450358002898108313902900337498397929779721718961734720217743399145886536239762068834020196637557078065599734000981452986275971188014295665942663598098535102603762799389396739308303938354351398488579022922993317095611166690008251768626177489322927257460625425721198394836767193898002002207536962437332898997028645891178006336827490445664893042765081123196647652957715997950002612148096339096000041536296837510534550648563149935557961198171701780073135105860331081033874628016918995995804088934356526674486396239056299435644770896950226207670378054859059323239652958316752758716077644026594412171511966641853098486260934984821301359125753822975051395168007206599512719255358099468702656267095756598680401893385997713462415028560438868660333454346834027909225054030073285459202092486785393734456826199497176483928065269697196428544754250412552833405872618042977287956483197574106300343819328134792610940055743631183661193484285199605155761607536251788692714221718321969159191257294299094261006545448011364340591640082452015828197989591881786448036646622940722183963843509386499416799746976079651601058025656608713379724295274852952210314262128893986462914608058271918624665477845088587848939763808342218738002599108949762899878910989459959310230084423906361062021426882382405531702674133726402051502891228489747550063009358709153861373783310386384771790843269020783066516060458736099620709841214565874376306316687309896542702626649755201353515791282545033989971903805412340848104619480652368715424817042207616708180124387523196263575429157388444757781082476694249733791971254048295041944226187164998272606441186758043187410843679175050376520441419506705142755019176990203730353288654064390249133010061963874579017922083069339357798615701589242929699755767048466598066624880439756332863045745288450069422712786263988318064421366224262392726396542935405735614593790491146638389716192030417616445755075042327803125921897109658085338027023403378727409287035276653281235760254372580410236483897886556680173557706897300748526824625372655244239974420503957502976896445457282017873469975604283142217098234329104199076569146045868790133481604797378998467143958372746454581549474553150270135054184508284022595441387203587811642207832472516665150140562059410060339622700744431577275753087268836472310028147410550948897035386759095449156064026795061613482390758206801399829190119696460408607556265714742646591532887851338331273240628894338207296883833076480188206707420333838127630848741962833577824151449606098270402911061089957900470876398837237753451366896749574482093561759662530231566069045740754412075029330915467851994667790510471209503394354463818633581335235901441727676039437628547533038964309662397283265925068251830294669625174578972605364330811904525812282391375153881552074400157338796660350771822581793029549815591374644866658200365503530767762113642667939783446360576108244803112065568748660465835412792119459360078588307381486585105781027090961277673401770715150118945157600293027001447499657027247877869133039491365885424556072715771785980272171670400596194228888286908581670628330448134949605864384300233370401297571630799722666016112472886643467909909733729470482192700636381732684491598430194099505604802263539059080961630920223317536268616242186403849106848615701199681992037082541914214804939889170696745713035999593373121485027738069894321142133331355998539189953746001098682602293645397109690254265057013333254502067220942889254692736452447422954882267474304272738716841982377063976498129429475922492932837361027038068435737530434233510060927155200593636728901051991449867404418618793725330699251956100649147955233109307375393761159422217536278967649545530708555776523271928184546295231752112652600799863978185301488561268291477236977336994743388245802390965188480150956232456246757977800947708514906102986788450025326573866844041359443840227851150927852889513054798545656312813351955028540446988571663591298955795246875300297642739157664721271249516816170557530254537643683623052123062376188159078399680173447365698636421074410285932004400728229568830584587402003297771618465418723313526979065729669407412242793582009919955074955895566162983004249984413113309361256539201021501323580237750714534571275378555348155006892116698072818349134254721665210742248220476229786841688297620322102904085949686588800830529876465391233779967097728213232319012265772284584681331328517675366161510456010807705031992275915819462401055033188907563818000051318830747095459513695748354562428283170347155853256841631368456431157857810322190156761492746854450413227965409435725775784628663221388655418237203029226676278795817548495863075112602525252523479293508143609483746487446230427621573428321397528095355807132169563978302150579130457421778431695881594626955774636390315451028032461987584012044781237362531064794551507433519945740760389587583564351653599199165316765401729698617339286523547885853741518582026997537861269544872096388477099773817602380024232640603877132113082822384664667618358298315763718660795376735843656621801322940029938384081334303718024011398332297394854806233814545732838851720657359223710031979857673092857477510628854431667593387237323742166832144101420607782559979054699612876102080912706294041598286431474698993328614449595995702838356440184965509641786035064617695750159511409447747810389660428764840838218721720403315462685061148087039398982319465003522952234702342624951290700534265588063531104555091488161711937998055897802757765003602050690593781668365876000133679376507344468842292325068922101187981284953240373823153847321582061675427378313589390575880381336075132446711874844246706552438425323287473537832066963275613812840288574159851558831841434607068550319425347267797173303825506372465984910794687612934524540338177202155639164903421001604018444383184357355237721821591498444288723276920735248995790961810234818964588938342415299474160495881322560227669168052356941205702391123353679857217688614699644923921444783361479024147537417131027030708481746188082558630017335070264780308942817830997307227628140284049634815750353562214555575154978866773994557558651719771977206709465536199889634182024451516978866718346456161934701775588143976590352521285647561751847988752695446178752232344877009307087394537965795794664401645177172969831298044520429471034877768064676182267512426239067786943353943781939454638553340154466916564629942457305946452369530066036762813191409101175882116541424187831809714006378298765994695626166516794452927873169561202773995496017997091928608822551599425435475062219282588050758109583745942724176302881573989299900760994586663841075868367935816645070345304039883897103017841524037816906843353759976048901476570397946432957210388067817892642853573775937666411864804570252799309884602775366839233969194974969474599714682152050551014017681237853978902341891706687424088443464700462530966416058175114853721247678884105767977838341499734428610447381641992735133021903619387779779701063607432607882936802426220558165481538987779231811458268391163823886061185886431621588491123240790532304751068992363315079320455957120135189384770260673914256397995886149503595662993189824888672145822311029184747521865453508679623407432833888012227580056726954608206022096631665435038057811037289373924851004825630835435799001762623261039803004439251924141007317061214908166007770508494853919349475063824805991320895886314829205971360233944842918483102195063683422817123762272997732206200139813109158543108428415691647819380611091302174531213419858673247693070268186270220430117195117532276030428473531552507827328430891739592387720168102290664313005588955779631285936785566956528872069955892812042011653061683194995595320783595787561613734819446097852842174137798004073479536507969801910424659641210196275870911651889747073499440320981746964518060508229379956003403137340340111624166932151414320080153690404072651881076471715194739299409831262647345257303700723959529677269933782302453890434821183737315741854350950477147111061685618287311475490932937548975190914017125637551803726613290523444610408390931457333601693439279067009996792634960672394865502663480619207888084660907057998976569070073799148327105718780330605945048901470930745831398711959179466792833360923850667614704994442770780250896205941804026677894823364533857133549185683594088193365937532956670701703023960049534295470965258636627702169653223796495360122256865019594302470359717161731259586802840245851437352976469130584679593982623619515416495509934401967115757125596292608536259086164470179226812084892144428324562866014419555266461134790404164966337222881507335341008303564034485575178410713040529715036828040732683883914108559220643829332414279816891958359435985912420277388891518122271227544447638818266092753300407443464275646159071822676201742546356780722501265656083503968081868024695319633475656413555276331272299510693070235830529320696062851266181621624138395680219575621865466560439614943764256792691020338995814942721284002104357012396854071079426419842029745047906240459092981171062687497379149427605673607148133311540333517716280035134102836588677629943093059186222549801402879573683835665901491985791000412719325235732124267849926222665240353130818878891927401563464896434303798407279036741384317760002110710271497926549981601986346774070903394518807137654251010409358183576804038344519092697839437963972133853240448397620976002221956483529462766174924415623847378632143470943092509823028671030563442996881922015380116344320988240781737727380600732568445370807852009413192628174874722869855254179129690792394799370447115819988150212263537773409422008691306946264005459052849086009346166710946225362601200651825942870567370553502220851952810852041574800504999034725791082323263273268098442836995361378435804986455517022303777986994448211995522036175700194689106431508430852573310541692447992719589972778585918321950602790217264933724294293802208716888295054277487306637782253073964184769014455461192833715122612002767227687732516786474517315991208238432441707070014614983280462870354689012032121465786314439568769479922476200703200261368675477932807764946070298578851431565092408362193363269495887210607921121968984303063107103967734356052276336891233667374823041887875625826899742441430506751203462527590340751794795414726639761675107994798654269296583680028569082852604287660208346283670763944454394011668971087481963214503286740690207529495651979479077504902984805674035146342239897652528499492914336606966223790136580079648517849571873383365681775943926880255351669612911773560219055271844694045890454088998951580187782789819556588305269423419340391191467232176403208684998604655398784251639671578455185762883754636284617223462603947201835460023270971387699325785289080967344646884255604302491637242865394735619795759911407496799259651550838787052187671857017086660043362971131364550989504111578276498113935984617661671404635469499722065407920574940115942967292786900832175158904062020771216227155633391880556114306240241945653579819757409111976750865019275268069918014312412639296618118892506837039341400037713456216334888846400036523136554804958701577460355353574005183605372175474362661939931394172420967136210554561187679654953831666425327789061895291389950524567380980141555685935816098946399491341298547517881052859316727232129507033484245905855720970525642796635464547579180263231798115709483411519714583816507963521483179836618980192868753726024118851294062833923122288617718541718328416837397083863039902809127899408166888896670957910919529359063822612678202002632560831153470612597536021512200783601579886337642320272963292212336134242372150704274104086076902719846715394575111847162794137554110763090883462652818849190149575740065434366864065319440655596595691003607623429315667607356271614772817927568217340924170176410048915980159388601539395423358190962074754825372634911503614466398767628826787733681665636310750445223716070520919253991232314013474760106910480980796448353224078438572903244191411673871772149790925182874741113224490254239176369038383469133776832872464317503010376434452318726974048621874300478503117275432056168730304517741291078746832444133748942057842256977938303257073490248428984125554170562712658360512563468526785473865210209715378498061450053908907532638806491591520560525510355162803531996354502736447364679785951546047408820044305506102998646018813360293614214140664138152609721349739543521061910451726222598273946078907244656418122380845504286569238008455175628357465239213660988827272173225324094414437079697858694167790236378665695439345567406075585246093171478855207096590054687976675682007813802931106692719073325669423224324591576276601974615835017189149376184770240844296236381446004284799409710968640489464481051979304012638889824424907925949997624228889326598808023928213615622088656709758457317260761486577397308571432894122164161745012068924862291225539060828804611310950317374318714467384603157064141201522848344084198112354808293681395113997892828599959301951801932015009454439513357396831926708961549942802447067936458404739078832116822397272117869092607495926963793852049138194320386068153012407928304805225969184749262480546075356717868864105186447291550717832227765393893421034792921454465512267628965134614099057387045037765437998249171648868933889786538410934725528305431002476483080322749973288899901061867995409976989736096752532426620804789391734406563018413282514206078969168529223756501500983695790690132213730069258374844991964559216164552857320016902846544111005617304198854021512821650732035605521072121572783043641222605712504858716075336309215502976964787388451570407143577789361654355820663327629391318694304691331930052212741803469862954723210885054452877537333510216703782633428578706343010604476871229097446405332534965510501837965964679722502765263847783540677476017977243333373370921906631872144354327914217699492547855609807330760427174201046818876247883921063707564688012963886091193112396326704220908686270469373421796238632464907796203400108521157322513094195862129809807152892008223234370654586394038951704527715329515842230023500302219190395523571737073301844857797125587997810317112989512891758799745400995490997126072779153065900618724824011267346234191008292723069826882403666432035902000439766040451723756265452241817800833322885435701305746601933793018904158926932464508396337781355495825115395910162042384797529745188073188897976099245296765231819823645163096485877803166445080023722396793937839786508832040812307202201405824505066344223830964681353895566312979526129559908967119749270819800845664166903150919814818118824173636536816298737956764293249821642308953851227797807333311172446688774835047022709139125350939153590727460763316747771125133195670735849716436694667308437235039977288252549804018509981361077615297046275084105826475649971343284625685940196777676460508457576847845216338347983618601998957827962499571859678765170986219186002269442050191483344443496005709627193165077068838029525795406074837647198862120864176387864538906713825275336009028679159750329578434046569327762396218817892244723499122093696208063512364936178758853813175719890643864976664368299063889462631930982082128100108364303027206666577508088557960146186409085358302878069650875017812223652099905040115698984611879143955193463396170113076943736056919939608570673077892195032946445418107269124753852246506825124005369454997653039537326378159783836509895430720220616483550186558438957111085314748588929798194541450693054748109964391554912143748198167277425077934737462205121028632094986315984996266261158587408799222501133203561226672847466651059483795857838177116472733341027384091025715633937453653868271130274606680626208843854730780546507577682236156749030635131996609796135351729748516714349378563683341795720159895015406425917267647510750627759213244773670525418647133135987877044493381984143841237334854010224334337564079158360600244281745260300398155961211501727950846549402779052075451389402993582120141017966208619250827189686814403041044881566345437491324500132273294455163855053906698004698013447675976180870162650115077782619129610551102726530363579581728497103726996976125312242146153821269587667834234342421261510968322509511637746183440590403180346976768929202306117895081475474711132649739795282861890983564810463469141418649975078403436982394041565245191484254685761838684734265320139387407154639237751071505494685075722405845162551312379483479735886326462803613605957815298132429255546474992142648991956388937229630243141123861200202601104314056140445855725776135689396347681199686545097324815605950074515142209031279466630649870642923287719829611205407295866449229112505564093915875137315323233422390824140454405909227942098482092533474672619828896101637643467474728386260581296193264781800611230447334018011332952314524535678951490913384070031232016118461364208989501455668457252820860869642432395462224376570332353838444244150738588252169940636761377087651719594301704700952970687469652804953397528652072228262744288921089733754912045399416077638147612088517076067452805589288414431529034067641571987329805188723509577686894601568302510935291622023267237440234286656996534374783545034204488594825904741860341148948263077502744877332572018028122535768363143725918440893539291088184425778063724321287971591562754902902124175707763132167169839249471263982362307122527043604731641716252063995336690585771473888419669900627051112303883834182266942481546756260346286875830698701519255983177493964218077193514647590492478636282179993091868912866720550396829043933630683688009800261775596306250529000224951598306953752334980103920152503933935700990012310166202697200711244993626529436841721362047489022649823710277308028109620746385187063252124012543351538236891792342467494711206193462165971862934013309537222988544312798596300043853992522056872722431801433701196936548490293786049190146913683087215773195658683498452406998046266508817385800567227526582856736766275494153683917089545373570166889175597327490262959114037759714777966211764970426282367439214344403457405866542477639729196953744195906332821046045897412252525597886399637668929543093928451880766350290024670165566084101848240129447629548111575222348065666242939756537504475899613930506117819276057630858525450403504974469704816104879057033477289710555293915027707800389427995460994607003889420678080373061662199668457990293136686478681971528484120795046183466535523980637527628811078052634655430243950853728674159711832985273094549735376430941997220177296551095418928211164663612873373953242757978260436821291156504058743219330069073388776535582364377154688496811537801468458457718189637223534075361050100645355583270036441095352169142347787466353053737450320823841092558054045835767198300358445973214684055491689752630076325845550908848901378605600886796868762795111438087477504263803849544936988209966204572970725327368145036519292319980831536775180023851673540251121543660027768005248690515096125653777630655454247545372631165105877834986075814532587434362424081670774676872934602683180093941097163185111429483901391171321910634162311003250149116128112483337345121611954855433569715553774351305676400124393419630687554200211569615761776124622034910498154498848288197069042640176581185731877396172444194350870416626035524017028404437688678850324899397284066808210583900798261843773922268007037561763170201647867587769624771681838169442613513152587856921730148666711943297258974251491813977030060803717325859859853820026069749973910324305368322370509721778266644897070994218280339190947755287796491261096074664794863353719140805586350827844774404210823471971198234081609728642170517903100447681871154616126311390559718324278940501840089347448121992573815103052158363197197687197072025658612734796336935479697823483923164181130631464788800133972880957325137621975864624713866274282601701627239062895033291784177687180601123764151889274254315610479521255951691553199285898384020443795918531657854835491191371467854468058414232287705621900179873021077260493606369330228035846743165538688127449794089754782985643909819852429470243855996916435485350431731558414730937938749422328467872264965737486454298736475369043306512562192780024856437015266808699786885410315221192843739634136075599368411307379610766762196809895042528800857904218554117843166804588498595406798029202514283266803104577870928515296358863486292951578000333740286888473629873442689205270660184964584109839457801657614008385766357319964959336491438030655858926840426090404015290345262174122254756144411319123160623779117769426480085568902536889622612395502212229750753440968320628142307679877375684626880396320107986494235709635062761775506517310625153053471416064421501248510028424550856620333773853655007616315993231077444995258879023569458330317252111729208917223128094800319157220563979516344032634224362721524955464279811483090485982724001122464348295241486489575214419911328136731535179939575149196118988068474012384126004873839983730820082995917806064978244333600870549860561122312055561648421855618289856730428202078821134195225128136988226037544959736333363492517731687605972584484579176227945488343122018023726789277760051861448927523742701928496576364756012338745258242938758389336091744455450920220279042865100900144245913937438623837401756615066610291890624680477005848487690410380484676026734506566980029745796059421070553887712902945027877247734219416383988870931640521396905857801672650048159195126124384035672861865280191600837337040069573059429382063792549965917651938798323749703106926629698195780525776121014305867304883180947250421740279678165947118903790335608863118463559078789638903273112339461200936712179232067870232956656188830653644906814955842299700476655181890224868704952603541557076061668786210612172342090377797415141509418845879319827112260570889491651884682166639920203699318552567669258344885164432090666198125524750152009912429548232781196901285955655673824297782104494881345946355601641809035587970171295356146965910502996633464664523860681113076740682436495055205437097339070423797290218668006921192276549101363463203130498709162841115319213474850310149366173603744310403157992238344491964014205949383164150437315542513784206767069287786341126922333901971296768372502811819702270526907539553893547317683439692929144016385151334355180465283457861180326106605054897878144435008393016992591757656459364201220357393631177826887854304565141511115096967615016128344562973025921155543534241026873466899876413751393598394780204657048468255452484714948322885849155139096808807175150013439168778774691015635754166031196162270304277184362588611838629047741838939154220351458057896602796739270956608514075213026142155007544881499385511111396247270061643348658036034171336359115299721843155665264554933808989087085320560868645421842109864734554942838694264334595724344426370225661526023420181267806281900169029300599130137958731634837709770141245884381954227283950274363699064404709364672741662266144819170615907422437166554220513227724406789505588403072470210607450914372691742713670999995402457507207364848392718892076018396438841357137696574924719807044893980082261244025082810723530465142902434859581632324547186233411926112399213220522863484267233112430427283421190239105623167676306837114277566081801191066474311278927854523649784719255168258094707737703982605486219561789559452646151695278652336788176281378325975067528964525701055285070519821083288397886266742151765914276969295501258418479090218569970077186083088457609362636163216409939746420258188532593884166958607438143290730757420640176934903577636612375220847147675075638728860742218319262852251519873825557756369605221993329769443994995419893939502226450223914918391654500258308112464441542228602012754320133468964942800878356546685030162823851252674774474620415262867535732771964362803024990419194628307267420598180137427106167126637914620442735785992605531467725650440919329889294034955425539341138673750978868527198738159313520240590804931299996942257450296430199254183890081851520658275776362415685116146964002331634816973683270720376486457044474615320715996263649455483442951811718759599425982276837608732171797173637232966052915012663087566589019005527990994223315567172105083321608049845576981754376016075619866474843224083356364322297800855831140499983681242480051666726648545652619728029684354278496685255908706641683684232078144904686222805042717975542107164798733879288745997578631215011598799090382284469338837560884497080422551564765633721303748308300772854709850222576215787893238239846424248335571939124578155059477663605820762915888371928114963162329590384465318973492244719341909697451163687639968697214097718938466007136865676533012717459226411390353343084783704941112842399037207102826034745067980408485835677118138976605912783896897927696994992049009704486302614220734334497694654856686559572390950343963287018569377253209076064115175618617676717485973219444069243863394901648281653528722934596588283920916891318929539859919513169651709365804362487367869771106598046726391667924626369283180265694633006852752274653796318098505571942142753219559462429379984705327728211507517124716897169387659326349010440809868305622003782252790922077396827700928995760135719331231432023363896832969426810939066627491037895053936245027944561577193733049583461933746914823203439030748946181854111473346049665373937163032067723355159307094512298923009089890226159142989223262205812096958078270359682618499226544414645072775409271767932861748980298541453523743992478144304517815521235056590662194275049828395779051047647662890564618613945858727164254148411556165791886785934778284267614387007624186062323132007715894176411680205065208343658522221720199689936124469181262679669831974181572691489054928784916495781847424541474257717482341238810541268578955116262822706554404637351191931670900571912038684251743046205989435373233337228532970772428938839950298875260300721378274869523646392737355988588271773552115011622506925530645307891248706690679611586443952426782467896956983284832790644426876877686898673717973933230534243958960383011445953358568694028874820046077275491664147484744678495383227018068678555560220449745668621395021699659994590553753829321363376970198298360080328276973971736586174193605689759833126698286350028831599993237739096904778313372810171250950981751300903288597770535569236389764689882733864640320859622478890864508437025778241082131365722890084048878772585333350051459156086878723555137924764242168846796897705947610395092446945253976809537435238177922810349168064735675578817145682869984031220794634126408931196153673575676680986137602916519674144259464000890706590421710507914265817077079763994152829515006525106261621615883798646417520229176991087837224035344894293934218549383623508585468507165944530547955616615977024671011537067858352314136368470591546914186302600427213500335756209703056410571957707202429938214343166989006753331641415134996184741507451921225584093214159279056133990624716953337479802894376313194660416754006941293054871773837313795922225410688424528318658044698010704770912351304504123237149228556661722705988482557535744074859318555574530683685834318091298152641061529188963033548417511272909977789975092847090733715175439150174288000304533488113191399935790702059684148325629985187829169115605853448850865043114640042913892950504519077136360624797111810420601235952395612061704732144759943652209288214821263201713295571238961552220927144425112929909714426102581023336751172938072327436637627499829226596835622326930771967736068791300914171294605812067031117780659774729639021884247940049746323898920903415067358506266787492501922392721756104061373222322046004948566956133314299910070738257984873916654067379392225768663305972899393565832309994411851990054785653175919668791579431744916528992302588618118892186169833036759964253936126931790812188835742216529214831855987758412046961986673524471166717160619020428093631443712458992386106936680990997397223096645268720927446256227264723949798824587092943953106886790148776052089173830823841781832110974624314115867841239859076855471233797459840251961928657152614125454700830358074875699399516796641914622206054411781791828905403562442927474643306150286998587588189451756051019549834350249073956648460231925751648399672100937774434973165924929179758163866222585732628666369861774816309419992440888512673151524790719700864138378360199889865786876758810135279991271463329424563634085977314348063237372473952436207392249607188484833315687628248372025294014177635119397517146486576397410376491313278892952478370420147077838255131402161581004191623670678057913988771719263030185671590530594489134668527270768957064626607732721372816910302117320742997514861100568298166371248072643870253988216138914185565628142528913492446389575154900704856366261830168472179677023011734455024440600268538468880208618885883068250744316670751896361033683019030122629945980939801752610175389605946019518685407303251552756478739130592727970694444514058166491539754806124417811613445452890713234508574177285965276200240473124244072534123280617416001730262892499617257576775396318406612423410920648622833272763345595199386594686721147252588064059402254389294907543257298177811780410169983587545178453474736608283610739729144378712114658569443443247381553995532891211993033350106136777697300326116707695982804775730422967560894660025963897681746818587419807754126642640012580869325525897258740607025038583134995491903897384534588243923973825122137255445501973433240741444594640685956036486839507689591733072444177794413736098773142815525544995737474954910269386379129857961133825720122106241797556039255452589616629281716725833558377581913772242777057829724536040930639237272230777432904849114437010622614049122496118651563284631393726906879061931736636817297506827621549562628031442980458267969770377343169118285991128625077041949260134887071748763979099949560337490967063655402764942590539249651854052428009057328666415915574676121687701668266403396356867747511733710855317287517921680833802862898984520333987995692816763497831955910359934650505259993000963321790170108511053765561188509796141921803359387658667349671795629613017770791534281277404340165237652473953383825818772295240370771357845064542041706284167974434695652031686617297317016842054341409700203860648613617802989013863272737575395875793057052467717622565214957769030124827478369758565026920644725453103963401706862874526060381398933491513608409684867880905805517751115548345663996050476199671263554512764665223028881921864894598650573443374151448411128268890255874282326460200882891232416271530256395513548831753127766505580663518487248409949094592886930996701335883556654539245681025891071970434310126532256412472072884723619797626825062838379734238648465121815518454290056788302092464818612664832812271893705711425784104541205668105871428044807324284230470430748984840020978991114757543821329185860595931661548557969396078937569479953372926839893154768538975916648256673340128065975612585273649422114626210477751960860699318329625992258169581311602849041928950651996980397357587304009800405169072223594327638225306574848738294629191500531592509781722825282686026624876620550286913104178005698305710144391335337148121489261553800397367141457704602568869021516708396261891813664770165582534099018026165923312921175520791606328746579346328688926568430749381006256148527564145595990856148430463349134059066106836141793186363655552271142292224822208715457290342307663262360933156413236073154297034253682352973225244366560116700574367391183867552737599888993297759164550643472890653903956460310166659464643591348878865986354789958910969596240744339318213651679865714754847237559256118084768437428173868264496708451650835372443526105032757180972389970804275597743441172201866838401028127202228696957303711780652560982000721727135919428481524252773807724482798434101715372040688347932921452898724724297725402385028803734866681364529836956038190538630314459505530331147874161647560542057286611833037256357505948812526636179884641627093295926591804651792870015361318804436369102565289864299139695249871247284873658468971131331980597333083711788719436252130769545218686482821263844091691495618627312167847549182897303225475355440244805402188969650319786216620598472583505483276403495541077044022814586708381248725202149916042633249562013847257185005987996091940134616852564830860053502619324844070729984546280751560825368084968209498343001243177836447348402335157852208390508403258773463601045514840605530756968985449229949730378982722159607253478679551283442523266790642174770889127586155871642870050607334015477553639848372821353679172538040777235050548740833024747463691445234600867821588442060255464425463079170991839947003390998379906130830964752647380684662902278195039007303558671833657981604001571709312418421758497869973487126440129690679897792259228012764116046233595189958299157369641448244505862122098712091643690064600402998149866571836827473926100874494926667552031188397523285540414019815240880028772499917141992325218193486141741907130955405085924345524680982131716309228534502766550579730371165414467302969060083061167767544052860831086574287822338494290398249268410257933382208598669690127957392206207301384945113299658200041785262032333457032038743980694852854371552890244337819778109264489452797494339039689094936421184505580548274721566075109272447252151418889467615107413882462527199782885645838965994938379663269840764100949968897859982646487930222183587526840106546822556454844378495231796728025868089757253382191014527063428025668010414691548157733805437580959106049334481558203466522347032940843728449706367219097813531338701536399183106408388325375546874871719291491403044358241180543020150487599347239836704137862980837716730373974747618479408491371776348002325488088911414036867498055528442015430442407799958981025930608069212651717991652216170793311070108633685503662276531033623204196143988929429890968700634148330822576498818969625909156051261199445510455853260907831921941207336785745563292393860028480679912864317286669665977800895910179274350966370881662354058456443936372886394320733401185916992517763820526017383035104975649017913714731283957207144858368316657401055735956675924208727350856075777335503310873536929543193121772761569183134782983403372237425697967077104172983648142329460365298039800802419680776937925817843079647342588527084948346380900794083077231462262820987008515938353614518241956107543637498213528444815780596312399896982472030702878819124431587484726756608038230238207266322872534821946399445031090702531331381233473613537942368120741993432469217839179723453077373726135327417135251591199182868617795874947776475089883066055193260253971137685151458609713888075519165621109024994613177071836423309429023804781001037750963535817345326888320414836630341507568028703734464189824540167462715537645434038895884615928741198932185738823878480288230335235142755591866223567675160046030268821700376836348611893385914357062399317536938282466329766562154126062387131405344168247742454852100226209578378531489656514757708619585491028044867570981591770666147962597681249616690717316544149131120076582499991277312717874433891528018888306426801481339640322557906444252016583189769808251523101971114119587926074266394531426143377666286674288583358881892148297903265520162234030185809553793742557656150476324713355505831806729461304863538234977318101212399224557297056470658224463216078375295834211795998453763146766682296833304711981523782256554554432267501660137841898016732443023887992020065656792920372641962214583132929631242157477610311596372567347889788989797709499025804148460480851581395392982062245143433820593464165451073024439560596658906650827886095694067100631649354219831764585877861426509196471211112145180991534135072101870290536477299475345507453599707209982090394259571340819417512685005617090191749569129921883713110062172651857021858829136570696998752436489237134532735865551054118667804330756236655660159524895764327771924673152096767765337807195090001164612613879388737291307541670952348791299220742845664378230134735039215421191107865987577770632124872636457977507098701323848959278894259744700999101333885143378660424435512461914671869075434735110138740863040352412979117540123932543134995916844511360026364303855056267215152979356299287469035174185385799739325654594742344592889620654162969701702384430948105146143103444605314060095558377657402190765159626338502585757731220241477140854799881563260981705340995129246787373664147817386885058708370272241956030166009446030160333989805416334581927714837636495411147084616714798116915963070444958055775285524674535394480550018423152053750642333210409397366406097490516064418895418832947704901051595486536322642916061337397641551792443921367057555702599765618025672745338463531503595058848917647977609177722319497067210753136841424767096884389731547778500481651819468950659737612052948685596340573061716118619157404164736911100597486463723812347119841936180773587919535376549163903074493811938731781088515774686564641323969245038106136050703547377508499364075829422144711494327090218556306534150116447086954679446324137472061422462898509500745817578202497484240565202888748038871602364304391820924065326597459388583764378696033398210489807574858269746006587722322682899826438088561694223968788457373597900055947843568536423262389755850430942798343293626867270777319056293538119054184871529350525302702889184782718219375878038436923071731394521450682759383178599416471808119499735074365774866611646039692548064924893454919747072861583044268783964105798868217313715925447398879223777552572786164388848992832046774170590928669574709679767782607881363024073130128291924037404209300513955460999396231121468598552011427453623448343616541989282720388197502979468834833331499087648657150421234115808318572717978581918945272451172025642863144501536524458871423366969849963529952305859409070620853304152574283683612668335231418577171023440214168248739891151095902095609548281437492437348131595200864772068859804924288961663228372551069890157630052897973376289719802382570338166651283492312244903257958386224661850776150079430322222459700706593627228856251059773305518171379109357906945146139112132949618282972794654539472142679757247113265523778421175883896392432570156342755881356558151578654693100342266875107089003178073298714609693674943215227937463002832605431491276406211524101913554973072988351982728007683764647951161015014463968557772016378781156141851913364355931924844762903987922296771565411559206607806363463543016647164661816254058971340559146825350189949977554165359091473868199302969738933733851385248015146685346276305767696688789840313721655997637489937122674361702000418010833025312629727611502432568744598318445883443607992664198676532004877900817895340664456404450326854734756087935140197244361625950208203037987428981072357481728573949526744460427074165672436584541002873472437883645022896972032019035053706904510302558878905319524890916644544543501109829461254153589300031646607508281233568766362455495374330358735409401153821500416450257664897023880067060851679726113732523842987111242967523937516886590795358346937297463732157788860741593164532962786974162607211002183542501707237759848106559013123997280805592978471892931727110622001659551957836899605115198702106759779446618086033483493631576083026376062479066441472192506525852479592032471302272514074735635713110809928043309170359890130051118613680727328806628005872785572490085746151698475765948684427958337131064476274595042309734340585748907976405977799254210417792022310795172921411638140663017790172867046959132635823083797969319771237432952938119833135651458581897510063183351234198775694256637457568959401901360998411573970268662102846097630919928704446156789574047746545716773900273384375518182210968393347836907714045902553404030956338740447742900661809019201412596430165746866275985815406621928413090494025901868418514627742016497624794943127116468280748449648172338169197328239613017209542936395264528628984620169346409666973539200262364600625205312763109947760776706003080799278459485441325439301575707626749682034418415389214149712604422855579062892154413446829919187422934464654547337567500072100521400032678568847198315640892701305640666457874988470992745051332743439011777360940042418848225337057549670795997864484202834216241128870173859558553798009435045535112498032181357933044973616203782642728621637965933299354400331200409820918152329278394919687717472064934323218065144269520689680778925507380992035965586553247409056372990516229190024786893204271608544566636535727747937455973581977936965118588945058321733829037667014706752630231580562780827937125941066830893679255017334469477204516234766836330758485742084201418011150379939039968306271022249176160249024157115762002873843460530854024948889209494577463340582729617849759391012084172696669584822935907922006083518170388207581536449022255280525227364800804555953997040094008688770669219623998629603914774040356339197080587667279877844522290606939710906421037919752919177832119722313839113927231771823026834339495521983548157774906093262808766257668569619915057612006418796957445738666331209186183910354597024448574007494223026817337699584344737863879028036417234645461466667253113670964680457430033360115109039049078887164029035358788154754590518927386631903389198406221227582836982988344236151945580478462974498946237269011546369636766338554090291544233635708822374049033749122847281044676887852851687341217879464232327052723450478956573180719731240936113051250856990699589280942621958556367571428651716679609734665494171198231472548337500859680025487525258105799022188550133150827427918158549568360179311709068202114234082514626005865033572861749627960384130780045151627745848084995905563110612646894634171814959847086258526089664256001972038407490196323913596533388806236185057107942923654641749696238725154108746918148324842485608769853885060947224355674052739226180850636000796916405416276387228517968035050307547325971215242127474144955300497150111975489521085459291919005174124854472309690798212413588643491840947363498474012615802457960003506817532287586527046658000560372475665145846658554229271964997076662449765970612096492863233708824743332167033061014584003915630365658383106718983584438342925564474119103475156743818714622314213793755669585929049597329198250424610793745525472063336287382432772943846388378608042225431045383329903379544830920223129671456073042266191209077425275838319555768459465250592534296488191449958552982463190842108959736413448383118670301654735106931904567527106543863641487695723522919431708578981585577782281432815103663720907206773685978577803094794424012103510877305705864579332983539397329302528083279522838875183077421452094904296479537257522895598539231876632510834249444126427287535528739987335422180662082833921008495374487009174343456439064565059802658683184847968093298084839352571451610778150835304992910194868582803459313112010989375641626940277149226215504037050707490640647079095928312212162744651732686787860493637153931488424700986992435610424403504781562516043001957659253702909002529694957734588539470276046814660390282537960626225558088617168908891084935918575651296693215298961011380821289552685505246783957127418079765685506723264916407722490318688551067642818517065293676749760036243743732946422833386048708171341675331210816035944841690529668049138217124638809929857110992876889577705709457193202367632324197308326616901911946754465211032981822582398465827906578923035764349305206123963117280986431950467258119018620770776448800282298451771191138632519843923266100589547081493068343778891824634282882351802188249052404241608728318951681567748085071282338506427281003287410701745780786124916111758444449667095735437790027143933361948738038168782488699938811278229130472492330516059801125689674459789389926661078444548074325913216396071655274570378194166136526672826137562429420052631327361941524586969617127953325730623764102309065266860223851740048606007569506469088362075652158539772588049576127727754746844202460167350969797078751184435584519801403607085876390837308816663007495592726008611897766602736293946090883691632628105412922775176260532499955952120881681613344269682210222764168930303081501267841322210077988585733199537461685200574250501114309517086157183207256339711587395869300432913027474985075209274009684472551339243871685015935318938941068765117295657175773183914992181325280960082205258249314062103941273682239331440736390444983421440154237192151965398017760172518874453659331867750836308545488756559486615842240230723788694718033373724349829289817300035364264235709448884831927185183714532142908546476097368472520886808447780861132930972625543176765068950922703835029885792782647108744718334005481933295145839031735446171262374937115817197209334945786066899720144328625330623924537986791539701293149025865908084169643438747155668096117486360041061716440308463655916616597314142566996387298585110777868054200280068527238656889570472858227282825591076038155710538164078561879709926842509901068019046862301230172012104895374629848436496243048100485630385233608177067151601164970646747208554342768930852400853059375877749942365630451221022354145616154657490451754318098646529289229086678225655771876600929725661419543687361411642517878531068243423454460391410576849059296599322440827965420889736251657844992760975138197678312356585727075699899690743313214344183495249364816981170935831926996559530818874323276418789655810987019812412912672646817020365876550217877953661211147593437250527574921894977695163672347283379233352461232862607991109625631116901188794117468088599170719692094636365517024801683767521086945611386271037261224491373246296759338122579959433044598368034203912438041935848085080396437525600838846659236218402727227154796108247875513347547017608166228825509071784764709119955112710835663639666706188676217069580768401182632865653441931238732619128905776919454416174281202460025409700885971171374073928069675215815762875575626199083319995568073591322043019939511672444476548005097146230422390154647634889017340135102712438448296472077781260065221930471143565681090498112769657672035709391904590370764323196591770915165391833183583491947200342474585386425008495051957109322062792113452112517642779273122185386764830078627350276131481385821398653440146573374861096894646657123785523970921103836150234819116429044544787437195773679739591987959033046860252166768843910015274418680603294940945091324008123262574663263314920677942296617183809315159329662962697824503727465137080453761976505006740173665865555517354934908659460794781181937977040081106337636965040222825680281051972215101112728643805651849047935153038266804711073183652735918694443142415887780325283840851041222893856330101463245729799443795058454318897826290751967331787400016435175757926046696479594707925710683366134013322125728872061251528649845001187171022512719747955735442273494265759803651184392198714909353113707387651092639587630299735705905218657673471879763609543720702363719126085350124753303962697934290746251097622422622579799676698673515832506629018481504217985818521234475283391087174455701159006492537013593761865214104059069784204205587920859594122834157820728818104098356846181071716842155467177717844561827778475736271701170911973508874163396123681903755176392583969232291105350725040000820282458952163180677343867465283418135720644336375558612404233242370421498871032711555595397086330105289780696598178122745485314612066868543834937791904176117387942003974421799797876491260107956997449224840439876114078677112241543682610784021571552659413982305785095945179111534403661129841926465238744294068898206262878730884745394925556136542404903391480805116700429376301003755187527435311571929105394948067465163845821961039724586202663789626961591954432684055987293847133437083462369140238833902403693034873347137991719909987620297970860692447659502864173449256287907802064517282798480708995329291608729238769934664104175183287656350189807340532316910830610214853287996320829958679958267647858707789174989813885314262535225966700034999952507837717718307094498906175633865060882818091269164936313320760794874257669208468116096406025734568590435192193444099325465135638346549467471747184421956233666035608876699645557025428826448795769902057294184085097681382611107174219092766432973862685858248736498351928335465819640406365402347501157385141619517015732456129902382489752569618125240352033419346377183064445179454706581803453778833634321236402471979975616172578342279904907053432908391976015405283924350269238422455678614556452146163812374306340477097406436185929785784056077082510735433749048595338439285992252763494055497994244997714079449860732668692872304841275779137163394364382718734725191385661732607412259148366892869810588922183340500275305928973936863337806426673115615973446970725051488133491467931943647287361053144758345772074344299887626263295845657599834921707276962614390007095236247703349795471804799874126915022056320769740561191080805020382340642580674201710774853402142123757796193361644258577081193964331419793418065886982152159290235624663027672109110105583699994063372225721707976791329309727721543802519776932329788338991828369580352087268470222449306450737378731188201514177346833254302878710528585078753697324659086557768222424621151714960792286356258961650361837956999679999384372872908832989904231228748776126043737308850964427700675169728364043441169567508097400092722663666212716201870769883673807620059962855575223081435002299657992453435091966355616772563480352015215533984370488766571057568816598500001436764018209954371218409671496312391383253148172783167832038046760798221802607157601112478142194405782319245506111714000125468016870883084599158248883024504637916332933463534663870883085839325001611395730345248403550208088721997976931453362169373249210635494864077003736310367660482432277585371481528048916279479584804734455964260445075052084329267726414838626482930563371479966745150047745310534329398638691657927821771021316118790527849160111932868834701494785066317775414570490301942541654146005853957903508568665254672757116000503798374017316573688714994482217237947902026550951771397868723007567667432777283795699481691947619771181731242012847186404232657792139638055115862790006762412692443680809648893110436607275900601645009819023509892238911366818050731582603445459763140166443216314611499674010271282675806853545087041417662854007715171231347158453230060561831761749431429140231801974684222278232506652814865294252087378792215657961662955859566759810182977578636026929565661301563034592957798901148278780863854462070257944205232377078720108956459322857730014505771655254583224195490055646986011131071695814235090662355688390297282616633219416721021750299903684207580745056735475247027059645990908316993899921866569190676493111861202864146741696189050060831609317742547960644561276316178711486495886594316592435489356158182445616592131089042833252561606550845549416270458576313196259298326891179348717791222948397558166277760308124056350277711356475588787116797152300378339329078722085659364781204866933489572486198918394956905593103173559193616837042639910294695482977093924391127824786441379301486815030079797024636400937046140488025233559687722161943219449778966796960849124345627057405305730065370164940515397311969781293608172738772285685317692286917298944809107497675997171913050882470492031584287026547913095221135696936265882044489362920710485454615393133613788670179516846853895945433891813793334573673011524568065611872599406091282537822003736513594288620594427357590144234526979839065736186305163137159113468629648922525539958127929042659536457726687046693432206810169834115420888669854876844734605100474589428577051689471712764832073650520709900201495051009755245647423667714787688961469580698220047425815427924667560901091713308417745691124945781929787834313036515232389326805362757852610990009003706769706403087186777447159344350691106113323503152557093382357973925242898112026105344569798896117356574634193253574096547132696738450781664730259946573037302729665190310853598808210533649473717501270348464615733531607555221128144208136904619692891495735445424796662101262086550650253058858646158138937760269513288731515080620618036568617386081147584524613806938947293708311122367903654177510217806785473672089834479356195390252686173750454094311916240871455534768707570542023186899820086733723725474984644194686803103304283065060605829164882871032469100689889805531454399330153368020160517891156312300174869935711393256091806821227515388140106994967294737956825765191266604863374402675597472366556231844666774185780147613851345283093141772698432019611855775100985008819274528787855635306373895439595720218876948177523735105539805428136115532329771375903502529985426690813292156147120786221423657051103895004761446514642075035584530726935343697158540473833620083569221386937433093068341744281419151507180708787568369371776630750060062157320375865609100029575070961525763235112380406545723345052794466236740966655907868324261016728758670267505787771188409878018936643102442225679075223883809168228243724876692842516768214363205377734515852458720687550857765218274720868864537806780920603516929974463757208979707663869161900719852464188869842047024583951589016785325564544131059281990904482955027921008177588538386819801952917400949369202035229139106604991120539280622034910673238548985212343700939626953567947272093521438922649790824729645915378578890901559018038535750994596196173117116319683464774452233621447476425032573314041710079284993665069006305503878520228327000666332723839257804869203471755479468752294771909006562548178845285008072933309968113516377872268480844831723160213309983006332749108236018049286778853110548287831441954413584631616147318660227741447200531799863137979568021511863334047082224276413948446246125159814651307371325419867188205214128971541749451102134963115488007741389015191956936794583421247960449169651212435383546001563294497780594782638531710713567790915802899642158701568456123766885892532925280296532213774821583587989679710242931344448053997477349761222589987761410635535118392612771190751607686510646533992894142078419362624900494476959844003795455546657982105883151588916318634034073776998191286598906991930978196364949026744002105107299285732351614716699141961016647590224174547852783961742682639492728837402762329004593162301607219726928435490191937465598168156625964396179269824743170593358216316047415538543263674276801152496481894882281382542564547118437792494339691193083645950950536699494999172189744018320247934200242346387281180051909676070500588060795623830276324128188533098997038879629172241007682848050596755223951596796541904793637754270866432952977101160947995064012786092563910648493535316937228867574973000999894817664605454843308943038612725328839770102428597048831411760194718819363099463542722597368360307446057539739185364381781679528486796966581713161643048195665886326381083705198721293108848426863944533895244975231314915475075131396542594456254264631347783589207673226552122348322716665254844376280678059181237115504658635238564783818369539425438749267749932731735389414139247677197890013578286456821270308296379687562057282603830932854856956133391267136539910055471066822370928384582702357080265747543647243671737125527857352352709176637918955173772058430082750922596128334274356056491616143134882624189116093453602577212097355215002393807674646409917631580249099293187716541321013088397781611915716261088972514362221877025801135339747871266263109533122265752410445869898266540898421664923202408643178132684888734996094525554001750986067389595700871351229400705812599906521925713251890771045691901266513465377495249574232369905817780799846214613035793506576917059645449507326201317491576845445186782955094058336626285665353829032236433551943632806643269293561727377827489591518606884163266059606690108520605586453234002086641141209921752357994283245651291811843242759459723390345054693487520778894430270797754624685968314033691350388922512798782239696472799976289401334926137983309666947344328545847179158210147377187510062389658166368596469824021438516283098055319202465584972942313774536466768414041619711751225117096088225005970718452856570784556528690922161462995279893352661130726813098176451043880782119357595604707729850723828716493916245258133389577180904105326478800999719605329924149179866051690716132832175284885528240136191742821155634652298747857563102991221659915283649355043332615461685649468864363064039017318996771341499658483013346660163604357529106245653428690983596360560815795745443012610068399575460208988290965214230330368644532536383416741583714265022672377092542406307198204969720346940115517448240033040259815591995703765618162449672896143046606786989788519528798894223240278440439775270058702438854502835979493580741395653519828939296788765606672414658522752765561724382206994051983371796033894603711230048392934987099284581341373920777567936964822191517574507351285166054797868092626289480894951399607267106658586871035079058318249362157285483239134037539308114776706835348790270659245105463696154518486188835147037058567382541503492803253457041610916634080513421076826940559368571814700464479421221180682604653458693638863055547843507380497377422857751301096310701853934341806981035626883850117847857990137593069214894024003034485686425630335228547922810830354565814660195864776901308774158769416688343184279875089057019570013843496503575419108693186549614569723665609554658559959239790821714559936000216232301144367844760640042107762441811812832248480842238516581567215689981844807146940607290427848558498535715286864857015042559811517175857955314587985070565665844308249097428164228512499754017334449609945115342784952075778107678677851669205798203852493587889859572807744381950939501259487462972063489463798155740161514153025845357444105656536805916246774752541372060630459616553417875988949107885125719225039091853828874147394611767782782534009190229558165005196901386198522096723001044026812442884114338911188163205900739768285366203273319102812244811866650732514541503826181595645055252030621113712137373008753950721562607488036114507889367749632009416851905412522650375605970779657361581733098828138455784948468824550603012739865690434643326740829541058526800916169303525365731486136965040568542500507575899001843355182530741020273460063745245273512485483736084499052408947652629267919371259816262298486016117592078345660380921608559707932757081930489843758791350938176809259849225565608395214666832861191793956267378374273104879444282500010624695267966901074889585549425841054306477293749379796792581617971749551953167181378234532319697175753183863794127035742482237454757636476757423409176353984311893278278111099684857713742618868019423325276319511915348391864130531006197147649319284163911793330933998021947148996545077992071105848919471606625599812968422607205855730040270430187726931414384245837414234567911782274458473155584533108432960524863389038823166978319411692097927757633364295006817008105672557676218462850053736933039020106597536676689879570842115593815533184844945645974767486019895149971567387246620737638547287445240820803676793221859666711423004945610824931873482605181553402478325538587349386988850654846968653728836092159582615584419450262009297030004118025441362162205760583339079975502207865989294212217942903299378891703126357144555642352809572782318263041907815081623802721358779658018372443222865659880358129369414765788207295650152628626346301170939759325665665776537616019789776244715871869298679561473984060575959471427007402799402450359952821201116337620686216092523953508987559212224650841988722180783622984262199050732509455610216327234980414818343608744653621224444632495528218839854392999087470907047827218983309024473351442935394831801948672420296744769868784867705322552637011621703527288185672766916447908081622176557081387703490798779149686044944138179670422940341109840378652007974525621402785318063474927678826033114426276632985354859270518648337831839232066178476630866553463478414693846261433394749072022656698867642158539977618098731841446639819685100737356406385075645053120396453183664607531773242307831390981671305244842634473995538661392301845718483171558662409277539203037494103854997779556392676121867129830884241542225340875816708632332737011831912462589835160533177365001100418868778578994350107888743272723929373963296980994409870762644755281114867560188247643279084564824629334713530893095682769567033136959014832756055772508497478305648048579639351877211978464245832696658271803546865702846065161795780737818028096980601721773832844434420902152166003477099243532082393868153212144239268567708779015201586218942983967621720435313215826024169616841938281283997544200161409242812004061643639647959852567249795001832770899393209423803204998723440054054593504865817638360731640930001189636487206011337152857725565777484391970198690129212918007873747093637889371164185898569331706418599109521590394376836206706045176448244036808989432892606279492466684137935234859050443678339366742532593936365627523151495038024612754277998394461010416544022512942583339841202778290997049681434850569004802218758154232175313126617566335890413070287158476661056499264442756804938789965700799686713583755729397221382481042250205253400572277572568181402402191830605549159408860692651821481539711620674983316234457158474241039528032471416597969234121259300953377595518220183166674429813013287455545325843382618463050211361641155532943144294235935998485394880820229656508366630334073617705559313446303379037771016189965372468508169713870261836567051881941742297668385180810803345446136949637272854512225532746671093076104059293423388696583984592810238292259325424217310650825185617566885851459297941889803639628783176961930963481917279402968752441932990489682042167244761305964323718224966088722839376064836408843359937831943800979414472923190371142923912697859262881888731743080645681526114939563079455072235669744027752379788561295979100602727778041692036900046690864491734561172377918430658266620012459264100112297383786644638183242086130983614697789259137014437186584229853343224268498823762209973288796734893227102167721166888380473580444049892079832750684812227135971903253127398722492990044735958365891639507068479497950618389891213337685890771275436485942768971473743803258370996836200570251583185149507142706960026922608682497075504540532837827206473851086133086082450915670665992608754685642030828772417352404922029571100592129266585806705188699592106121718682413648222236181723673165293909573504787635960194409538472060616124135365918839822600600163569521926238412439046108507031336013531753867765398631348951327772965669348257029628326891621328497341714082670527039621081986285386866051477180493449373796546936731773542033243137838473252497416158675319231881519635387171011174084351099967430840421745721779267539119791984452347349194142318398297563100376856628740372949164870944260496031967835635942951148912260474148584425346235416671499060663221976449121842723279884480105387827337494340554305518464673261169503307945603400427826802893273284720233989995546770611392198399389660023789248033001987775403581144081153177055486338416506679025203130562209144384121303333032694505476733735837970603733827256434352093137178955150730225168190694795662116260462647182399118248088231065014367266268707497528652423485179423230390646801247733163113033711105778092841473474334471397732201412196265680424136895553509873048179791453553258573729222081780444984291284450651507214969075941677002697364138071689362834216458693209959645939966552477444290283169591129292116085801423693041813399875307239555113588852373646212808005111578102086810912528876966400840588076608359064889644793036363025868970211671180628145229715936494624625444052173001499834563128792079013410602358566665381520015720523659811877602096624420532383420535465146824711017306437489790492720473192032649194976289477827643945356659084526523710997584962533448925888284459928151162260470609384606873584323635316091294225308973759151935671993355186413073417109388977777079857560073507085893796774678973053379169886345144568679003752248965926468933713877850028710457043684021788887627877706289555687508498889927005388163183055727791841212693628161118867410061830755507901960906187941900209570735586493984334354800182229754197682392117666362697271091918306456845266154224515255435565677204814372642691781225644669630033709464662003252586970657653187034404117775821334415281658335819789367329410804690712311411755580600683511259317476389544322105999925194055795911920828051907039970326634563419275322047433584397032145448767575545540329250233675467040858593101987957468946689288456718254013993722148828732996792230966730160537376685343226546121088162234809008759073276457557139580106901187296065050256219490567833835932807671199130662421836320580379318834422442794705218999080669288727229300348832394996955523647956887287411167184820818165242637144482432540562443721159398741558745242865608123224692835815910466091547450283959130692393095179789604279328128671837950820330675120030867563954854887295840791729534206448111621416604492143911915068398890122422536736452226561036435345097064288770167597468725030254415716038766624522639133340791928266789344094209045181204514817302381607756395455760516004567594870376002679677523424094765807404048216208740832560559145542040401191420820957699500635255952152754022384237151728655192618038097256084764531210428804976149657146756459483219906838964472818557725642283419026490210261066667105118882413014322740983016768980426893020663185949045921514704930835738808910446334617642238178202396631451956771949667764355772115225110097734461001505112751504578146789273056824504497598882319122437579185303038222371944685069994880036821877884403592914983171565433122603048086611085086823010242922621408719118363321149074472095307597725533544315608201812879086404731702509007504208929216487785488960409369724558418949802765144965689722864773447058393322467750672687774245081591764640621894019456149455685997150388155962261510569226159087380859235022633169543541677000371445788971209803421788041088560667753874463174392680639012452739579583656225169753929444540474061525096202191063160126114919771325596211476760478561245128678549685331436472399535253486502973633357662588589782898286152174044051855999555759313283085432823894234802564054448479299973258492353654898881733448771843576987905767118633431242086757454791075081144766871791650047927250748707761164527028252140483140649921895482233113006082570831665357872027526690228280496883075368257480739393847394579219500612872666211836689883635041966440088191115262110762367760950904601684332022024855724905338506367090887587418233467032484269233199263533855809773890031323391600250867815676637679452245681090370991924385251272404005032335727624815911185165141468313145883902077199152307343101732056244729855306443465929459159196925801115458813314647792407056732712819664319740478330568782602887237090877170087834406298801956757512405789325552973394854200280808697714287711399121293064598908584721320898529939919485324173753815715141612221052111021129332010596556276169555815863845403360137981718658901541851020477947197261415487999998827775796500502161035632261815538247722595237393605977017363299971999177478816887066266298260703318899356288134770357192147309418982210478443246561060799473646775375789999071321486404947515537591649499277345933460473050680081029533401503651842895218533583567216745241768051258863968554253945193715596172757692776273275295599120286407479841747716687253159970909581510926897391443629098910848781690854390736307718871010840629060759926955034782245516845423365295447687767268558285299398473861615158048793559358246681896422948147898739377558612824948695261336275632916021541732845471532004442550089585369267588147368162695590578765792627105577293389321705822778784653106225818966847821099306660457888338340272425718351765216384594495454710492760158697898281955998169976166295664933205026927252461229243635324876114875885483215693582408894709360371280058822596860157153911983975214692571893259985464696212259225931764992819753209647732072405692376430873527199134880073887061218542286370671917778309808504200376364261067696602859259292047403808379034080450958426466457142249240659814931949033814279708054005152700340672384080298214187020857872162482790895408313503311193133578874239974632406906572032409853134554653985143749323498248022735566371978185796293774055951330680584598663230339845909203638753267321232256709206877256973716409853416092131918141983195881024052910082102958188595522699276919465422989403596496726586685289612998005460043222484227033017569502224353464012280139966981559183653210058646961974748846929114982839990861938722952317233443622595548799784169643228821229598085193275623306203296792070819979360567481669278945552189046471323956324811656267307915567856546582414853237794072655409174562123277795864845011187793278520981048923678697872920091688823999221042594033376954940456331393732912249391713469662819496730805262560928217690015028331739307141493077352102696015255674021626552933262614322348664395517651342075867852618053274320402405281490461837827071570393039820373249762849290377003485032635457991910580402196102076587254698808441910784451649171009604755396576420737736731664081815307291292937077036976258268584488860262539630666016541828239916529445339808968563742497625168544526471323432555493211987513519110987565613351034309661643487665257483200494756900706778232789126721786891728828901357084775605701722762311123011321346376979834366906536416240830602894583966329455680196038943925623170003321115473832692742206735672813230073927363335317864860453267438319858450818868625599077902788167256808454517660548689256669683804862066860584406568427715435454731173206291435928049816738064214467675886936896254695635314997621063194680815237144899229029051300996761411031113722890534348887176306684695325995981477321357441817030198105606082658986100521253721899543693462526358080027152196213036939432293473164985584162565844091137877259985340982483127636608596298677153051107978834587912665223257910919081232176142547249026536185815114236270281789264864947835315794796785697460855820469387809812631666453129205893776484196576610543018689560335591616216129205653165777399335831762678492486124135876026735686860161935880525622841126157459833487918943409991214962508204747317170326954379460437836909975460962806397327584323467482885635431922067630116243660757411859507071660998498863930836354453553869898382582748135604785791333149684258761620697573693275568705011759771310396437133173478049366226660991268094370698906042384569269748984349766080554548895281540359899852397661992988629679563112978350944560641914078198469536045725337846262485988199014821153321200565221356691660910522284536083418307327417093942419437662823160474373234429054403298727551604571470575216713112173089664593325615238521932444189358621044607280751170810018630940987323706782171989987326211407668911299086416561397165732427383092817955363843372167074081550699964668882914418921901688737645995752231257591133143527974148818759457270312531556498647460183768279998680095655795189806619428376238283125360295122188794497219898957839218570636707932447278134053491425229519091347241312041364546256419478101829214127456783154987370600526747337919019302435316295194550071669502358080039250433620191620569981620893628138110815797262672944672983528460674232719264183386657324030071199404149078486662380422798355363293780694450249845321983374227412538387958773190224125652074761220710136923151330882384324154551890217239140354257897726623747132845818485474853123403511621467719875323208585664998880785426699956726164980903921142598925315286138201656158994917244526087468107700668735446678191317407044875183379956182517207932012063246578366997171839766199831101767768027767007804424322907959997858314769456735304100970549796901377976778412367197285258830650257951728931540983717711778478409334846164458790769709055761461723824615205944393185586083663505464250734422608590493291825602094971847001728116059089537026854934211237241304250766902418983346382189673655520373155963722709400515498537898034588329711851210605439297439801018970760439033785561555297438036123882385359336908537791495188029590891709795790890952024635534056206917932753529244189345477095904823867560223945569362002236803082938788227619523826770855032950715832935131172313532049090853604834218601542529448142539684571557696443641467207982226841839625651640205444836615522260682196146472900199446039144510849118127097289186143794210049337121115465410554252761840547320231575825958538130962154993120613612494507209526058081029507560636264140200235434798157934219019048040092772160036794268047419755042815189555970396954177231232536988254730200129381008112667697228685196056364427758652826354559569673979735205584297365910542394761145909620706828561029268412708381258699249731136649133912968953700477892807723542661328626436521091924037544541063705484345677926068898176550399124341118050498083118911972956965600347721793123501333723410532988836987632269043358430867030860164518414225447022960173174831668149845712598235860534435437768546164952899497024463292873797103612327524817303930106717751571936958660963135272617852884991209192986212407031008745982164259844199858936769522367000197682208879635633683547214464750255066436234587696101308654975058303002211897443364055679925511173637349212157155397608799185230371360483929815032950212074876522191971951872430647618593910834176663558905292752188882256227528874757656959371996115100332420214646245231304920646353391438522969003969867403563986277442754129436665927241302636075210820997357347870629625966643740087535430802954527092333870858004727083388520897225528460712233377609633272338157235777627003513981043979594619139769643356458003217334437131440986969802027452282527769831571504522543849804797985102170202004777397884120155583111530410459551581517530613673429836024206647089314259101534361698206431886936555324504456576513432388157039209917671717827371873505275706214262091900779339037582130219857222565523195117481989513723510925711725081477901824389117079647807216033338841586389554396675493833281928882632626771844307045060613634323931204737967627581348650890568069180811038359516210960799584350796355781431884641189776834182699876605642354614395013867730003904670442190669587793453118914263222569124280166618741971134173858029185073614693092664121574816421980466417167671766703142989095372337192449199045784923098816056775479805831609241623004562642877076215607186810938829703644667961988514806074965089454576452468702954767096707659400650749106945868666177628507519700557523391621286164720157245114185310272910459461963970971179278662724896156373916067756030483649809874328906852605897201151467053967817033741285793365987712510186511104112030123289299295038215676376411705081547629750076405840338884935021106542895751143348321116583312278775643428097316347270827644312435093219489287558565746130481492228532097967640497027482677685325462597878814155014920358271263356057452256589948311912845874026712263379670224046884242573379454588543205733377416067081352286483022249235014128821415844820152932744570451707759232311416155843946832137016102600826604478343309612880438148838553030507587171612229408405926299224594761952810861172378243481122063868603509300646067624016924566971522708340213186593905336408179987891708085054896548773105942569555730559706723582493692821191530533953573249005275788945458379640412836130314944621475333022406133000442217851724344237669954792337847623907515158130213722194240532132416449312384156208779910331667352703207165754399306939838582116186786933801468563575703749447486429763153986757987897139032968041296841403234338802954304448698230643224582195454934678666162514203120130293313286313747817271014032054944377426062756224489366045241839562170925159936936888166170537995280862646337636054881361330044981824074440304431470701115602010163965045113771588828406253915525896173888951235463192816589141567424164897946585161596458135159776948390685063601876826868937508649006723004687812965371744232386138876745022388795910297930562023271179075057125541025348918869858735764214365155717619688455168514085081536034551895624364066100839192449743581756988243864026949699394690393954487453702091629343907711085778788015045536674624706682658691468017349668050685566141660618088954977672974248932403320103624893945842979037681584903025512551489879286592541226150749653292640678153558312091633833359640367090707015320023237990611063273387319856581115229555559528720041488433808262995652191329655955594701104202710214862709072424974250627293988057508019976288545604296792437425841082719412647094840701048746086663145657542017832503400435110420314396292685447865681023694745951810494228046355112087805328034248366202896058228523811041241566821246706477191806972655218118619154272140644261373328336212562559099804282377831901145054557977626974973109461049817107399378097773890012941320014350464833758689787772830451663510808739429031116411035460487049978324484239989442251787498344128237004738159752029369371540057375980806945937541355764596416950282913079137421077839482905276300437970557890289976143958372094279739282345077849731201140760566673439688885719749177593173008317354896380382133830135458201843164237099802143241184473722553125741069637354295145963335410687326115846994947423855886830410096459447437099375266180965097984836459491876659643516731579366142029431270757269693662246605077869699588578359531315391477603606335391888414432518611113502438272613695688155252004250084907747369573456336256360373463372893671422287292899250233639213712461889710608648168011424866794366307668361331700298173121785485326417229414787722578615875568996935371225563792307947318772712750828385980445322978970080118459295895004666675621857021835223196597320816844516169037536858656020213379814178494872218562864112089260932479644060059105594859176573250198948044973374891356110361510004605659681113350191046564563223987869542168981701677599178472824243071021501131310387812343783340151357434504499271704084237981204509487168134744769191827859536888397613612832547505012584571317588344078408980292581402795035321002661775160510173496459115713230484166122196555590553207522593525883642793077994574257101852328351459489430791246125896489551461817925841053264496476199500428453496082979236972492368719037687019096544109603511167412874378965943234776358155576901452169579082436915848647184074095471106569502232926488258841882289692970683797308428705046412563468429613875846818796469070166435480070946146219337321655714285601049045418543013244406403191409892511742597704828655696873574055146176981552158942049504716053837370940935573596099615389603620785259338840967999020706848924977952697028804858158434182378900907305366268650290499268444866636762809083403085531521183961593719040952424423825141244792038014958688444280469773179205602583952815451195576526013048005428256898535940503514761932284311189277605158703892553270365949233046359768170486453371994909023447802989571575901116725516977809542585940770144217484621382440285705987215458748121363092985262784262043890102159712980791936699258448091905434993547984302854986560070791101824408491588450195429056649780233955671075204348231111926929076756499251481603281282256158597116754925326976754217813933609563981981150198470103523167946334209632190317535608167460270979350067083390380986725034808708372384238217632649133407359576126436660951850092057365765675340520526604458515979223423750834426758387434702045033072241694462085122044127201304906511028101626904508227590320738630655585531620022363247940475994365090517886086904120564963897633851711592989823577088402842223882317922994290084389332179731345666472080894294411092012194071921786249926341780154748376543617308734273189823535063248066082458724902383344264805027292454124771756892162310894432565006324405739124917997826291055217453256650579385371566437428351813499283059150473649884037258346242703737226714486291391328650835592079102283226641706349540302019854363967323969214556193846133104777510860304945207892758621750330830227524971118012065087317644810591469122781562949037303298237296060885109135541486466514974868670060718901805193639133146389723152544732688486285309240722445063556925824735034135739000923566811293241613560106349340673639137379937009032576902807407406836595513976516643931639304930714442326580494063222830462298604580336932355656861972854924521701710403840681423846269762761490293969837215978135886056171128502591281889814810723433684797046440179260506409963737682726007538608817340764104368707145957041741906276650198962503548476374704581299039549416059166711727581862908376874848142508453239980243092188863125914686159683440023762407388937285758822929598086640615531850159943620649470002061655490853837567561587560125997191843842518228613213375075702484788021228169295640315003111308668109999005364398398884310707580929903315591865292212042921517078940575481934718506884917554519157255661538726009464054132587864040794872734978125101249547032560226016551786430602187371406306896999212495759884414001730612154462722004680330951637809792726015745046531732203520519564954840232509585957514087883570918047285693931125945587546328957712134564873424776828524565423299416548591163820734464447561584837194380876870646645015682456918729193401148119384646323012692208230526704779718851414450215732525989664887832411953384170228795002058123690082021735183934278908158577294624934428422135074384359989008098262171884841415188625978908697230006649891042947926021014713946331516746640663848338725687121293100837519730643837926139687958450160052595883888032393256239251022163859736825166706690614176770002750772943670488845176847210350634432021030035932819618730754178449249371994830821769982039291599794494876771088077869480355833128133407981177885339042244437478231273892417256559140609032087440185679036691591084926513038477420893876584667382967279739451952980830647019681475371838641895137022181844979305536981930437749973637625230685664548520488018370442262197372118010656741206041275304735853431346908598574788025620324829848223820109487887916650247089866332469649191829587480378906635686676892109223812548910673761345737054070702730102601822929094943022751883827762981867015216649111386892579789951569443459634221958998929221011093787402179169516423092279430168298412605570248908647023033367952689305904906385154849907566420869619399699423220434974768424668248402169414996813095492783094256714180034849084904263736378285360806579501001097715359350686600625228552587147170224936513517157000928157751798427787622743717966083940521166946668444760492018964521148727752642796111125027120186426454916513190048121541721785422265701123298839543569569448985723484498813192044841787305140271570321220590858178262654009171466207206279996245932931622771994654529005468687878367717235761473586024576072062109582583632056843288256723424772251171333006213056459912581701279985672077219885250237318584221082158637287520344605122545361768674953639173585676629321734254194889614001480643892855444435473686081933956726133561909908088389415491136995247049611808900359958056046198687271147865808131727329697038983790739152248345728325161247971325154239014619302149583733724414394969289885385744827588331633205295248487009860569023558660018882065944388118035791118788465968576861978791616753412841550706904254236041646416958669514867717221678831322784364303157627567840317637541527676343325145475298307898213584439144118636825778701590450506818900815252597107204225954073901836112680914673789076895278099215532383114911118580608870521375934065938216120030881168149908876590241738113893461611571809713545911553752220844600074726469785873629047784304870274537683914341033701843676872157993548754051880853548190636976289872159874678662877591781938249104963666983173950773943118855894917327605686722027492261238184642889642471226930897040755204681686352278549854350136786167011537683818306643741229221925932442295210546580923126532888005808823468928919213507486521488147292744506340121626925751198913428830618345997820959379613592220620857438549854709988112768771907106108023180197086511710922643745777362242742522235716919658295842822925927369877182690359309879543638648536212905230310553530518226722817246317371055128438943326353829519255119849542694628190364164007718284943665221346491771645750159472149504798362359157801766906922154895943550796807431304728645252665675556266725011954174470403736055985480699429810212583277856228463094474950601061255483236557501249676497466639112211052321273602800832900478259008452121736781507658822755082580705087928838280910187188855300101564493071492628730007323227062490785792274107854096536365647582511153075654456095100356196728333017123517963655625701408792585011994413217296942828739728455447634242159409641771353775398210494603644357157431184228122092122126094193559321421282240247585706090894496709664981934992078145057625554042864189021583874550105886287016017140396134257726799049971329074453145407756179848668133552234468866136875522996699770447645659973929340431825327253385276988941555089495069949611999151975948923591393133487405959436637359083557714386897712413242714202328195737072458775478767102060433670625404515480206563194375847968969840342368190962165273055959226624412703283133791517952940188137550809532687673767963731803354755900461709926030088254559820460673085949201163594265707371581391213451714577691183101613070005032478280065803538576684780662095583754189205145053845752251595803169720675527843632093093142694478539845450091280240502876603048570086111326809892945932491246554028433382606353992922334585909726963518328804047894218063526333260491193618074654229526090501058656583079721652170616932332431855951937243390686283445255891122076971710078057306747235469370393961911616377205300530372778925183579218294681227891265625923820919257295315589866613874796990092280126531977483451574275229083366972112171483300759785567651848998284128376682153500520846526619565483328598011423112229927468756754843691632657976221583586927166255379701528909936221565647506005225241499470176620825339086800113378979730312732666745801134781775629511931676266167692073057936787643121382706773836982049179911316586785015991045325799031073169009393993435431707820449754549231497719344224255879952614128777445027728171805486817215355044653463043947311309621140086191230192455143675503327825948852402082044202327882636751683177412809168167905987435481930895311472359068512694686611325838879414404819929907220684425380408926340509218915286233734840336294915791875279558855402207026974643926053977913597579728259255145453349307134888446187105680661260380041763579409699492126216041097857906769323582697773894266187363173597476183776458304345098482153910690946396416247952256370476214489024965414557329981264087004647124855346204509655210790091596382610683639452475456051790700937770901523344049171878914979836171383877877140340631951895185805911410473265981965702364196376021901813380538801373229977151389095434544835906408762531651059980248489671210596302444011158995295758525546737600337953791324597906252644499294718369278992356100167519869808604676038102513109255640207209810366688516041337448975790421888462643342827956555553292434952767018491825725379987665046522364820267988307587350131596035730647254841545222820871513722596528468585068593951352690569274295382658062198319946862487763729626120988239308000250526388597255424332703016160534390298081478729257892416768936891972314604130884016324616623348273761682460545528768295043394852562036287199042240747613663463592944217758408117312580092091839674497918447781345130103634454245996073912950699483187050580501833091649970710955834232910700962639819475416693629468109867211577415739475628799313809599590781729582650792937755901076457662825445244040793373790295020148909959895879437900256057175358542071029066551501380577787754184577002650632619648487375607933953336880588402432987434422488054037469160015893870773593687714129139510334169855492425883525446917757545848142019785138878086725972109587743277314911359193045609421976037516595767480165760849643913275058926178132837653147150370905211057397577924227987281905869703283199383051325528596404368785769008816661588460973760997242740391157444743549920108190792761383462475909884723401676098198043177086552766544954861563090422457765097557822983240584621194035391801550844176523470564875426982560942474086298301067009704813200101258641678978818094074769976520864766488536182073956746306731700335607773701329939546884294408241050277990261592954004675830811572663408120471005268516391573683287955989789200724787787045318126070294242410662608881144287954519990339965272297262489926311853449317261042658979962974530766469860774006295284807863903288290718257434400002159419093021886956717157845489547356959033137694080847611030818954568796463641877171667961659983996419828814715979146538784712256856281411780205907087258957852437716735434692673379786284808506374186436873752956250691258169496914784956921427154191308830915783877505914881432253653271045522189699835464505540457783833277887353567041066119122820602287889679975218548351494129720127734763345218379990009604592557551149097311024339028483789681094681066423360040676924087600469550888567321366059495599975849928187026463843316448871050000399428197626363404170656714512192358476996441929283588956112374785552840984626502399442621198847011230077576307884346539620504531017166744290824799168025557977633826014627242333877404696762851510680061922810893538272458835959061111483276879066501136079050660833824054329021477161622185685735563263781027813920547580158985488099934350329537697306356916690500286073293453472699903941052470793287220826701529049082385989775491384745531684535683172722981096425066371118776038085830437151193222467618995092257399694044057214148733848230254330945630507611825458235813439275846174387689939218057427716933323119133982543231064506891170478421038815276205509901501311179241448035786523724965710923300118674457429375984913128717859497111220471523947226090718958741393782786576480493669813635977134073407797114225273665255334216061408541157975098514122080002023758304826578710929809696342305620643163531053006625756384040144853110687285066200502989684123000370205248388679071586094294598056216629803353724798047945648892042457823128205888030609833153094464826691983653903631855882758308387419293586258963118626143610894637216679236495304350934768754637955774563375546729522777938933527866343393539888548305866364115143108154602293755857042962761741216120217130112881272220813817110030866505256329954013235339339435165939617244388238198315372519755359333333054262849546337379865323340640301579518119198342419451998107132063597377941312720642417826323554942325653047211199305905034607989925673711003646615451130304768368766713748900614869627321243340418793782334213419124556570702648607667877280660517030730697329432213205263524827216094765125753737062172079557259726982674966878881036088853135269721737148427803712762444048975270670596307362190050857286359400128685242567072540539382889243765541119279384118391157947000737783525762202538225248110637301325213351832713956464947017193518459396158984430193986498840628741439613082770546072657854851642005097520345740067124536470141156544401828028004776098566186424028392424569518872066137559915405181568107902054029151277409895532265966485142315082768528040633114260734810388859335942003287857891659779846236819660969992031858214486083015440828600100098951948640344623508160819504144644736568284457097917080287607615656453908171082007779246826220184611751690395052156270584440329916610316976405932146888145661126828495417717318112489498803778389839991182364865898073465122792990035743193801444808489651706322478304136857125007692686268600857277538543276531501976235432116532549620586304195080491971428819254587136225305858591031470035557095598010669594897259392286436126262969466937816344429056304317457010798131454334424038550145075626948200695322314748182158845848208138566659467086403974751147191968055388924224084842244719271503659301746580920197016431191587398906253357615713938113763346410630866988445138684029038281247807448658644809298103154405862658149978561102103846673031055622157927725838591277384879201998463987459928475165766908673703027123043421151961172211914349998171155715919462763753079825319512234255117535210387688407846237427547815112476787156583158737849451926990251996614544048079993292989088128525240961040952570654670440695338891156847443128822567563167039431788864054912689628703437409585826878581017946172594361916849462299169793295372859738338948028006906845470719431083804751179670526730858277845693663077660009445593145237574476117077552893078427181841442155335388052746772155553393760944930263433918502440894191866362591062527475971649786945982748981071342067738545130198712404008425049549717367965879647721745150183634867353489520158098716804902503507474293052349008999544566240253826132518043311966398471611249094891920669013619901237223098741808698005742465638351982216083595617777349840114752551474935657745747526524796848921490776120485803493931470857211274227632255964123473084713307513215034607322236363112145644826924195445275618978155254099147280009883193562537472746596358561241115231049025454014660411241396375297299311721506547333304941613123805512581948212396883788905223803177604918033436585628757228455579445843059198420103019982996723605845944979223365506401008702861773380862262789790771607970257613965198534545332178633127867893296396300427765647506414782728123724550737421370497710372506495579374259290747850598965781512494432937568137702201348550861027033085531832392041593299511064743593344852736619574074101812020883572355059145686305767412238716369326742761971573411396109882615107056997712668056719836107439153649578997281641725773566885921116778235421991815461700373179190464695308158320438419925455897411388311062438957835731455953493971648180573563003358736247478943451897589679477328433604427270317861950280434621841626109798368125497712547855178100411170865537061696766289253194949063341620123212321847886496476728785160368753628942683483877362376884419186785596493480758538298778967473099063288308721204273119678470310794919104473100704678305401613546503541774361201913178400992502309547190064345133809540985232744625317316815977749970683923507264805787975987509445294698505916226753474981582844641936060768245168450377989449668597928903158957857782146279338126890277454158508723382627518506368041450320580278137207910831293836445676312374388685848799610443036718923547365488174752798359325854105618155529367257398008382556449284230083413244858670388783921778296796881856761753092658653760972980975440666476446263883776163138828301443509340187597065797581495334174497632277552711988125442833099885427023301526463188909659588799121637013472567016123847556642676126177330418428169841368514063244851538950751931793960899970131347873434758758978275076890924982497330186666729811309668001791511944735716823197789740751390671812568889679845423363633461477849405988825041378357371193066470418034551092573579643029580775186722581420323266069692234142412751181642805773193067390034945183475620374145302923732198205687068598849694891441475536636909042140267229468527579279265403200947367753824529317951404906055282502671279935927655437831366515852375775293522627658341745232218682878162735315318444204865167136978006477180491981448666562860224511942750116630797725747647680043071872863975163139411339920706286986677691705216001950556510040759131390277240470336792869208099682859651261393159993959093190545882226845427311764027562092362693438345410295775496033548559310066527926413388375086609712074461723130373737726052670967571140435744345149388029170050053429089357797586230611674009155989489441582173744225294054514829792654349410682022764469796579176861366113648416321522881730730549872821380088639932893526146770785242936921586887868474930620825853697891438440241064604318839608880466211406815773274798018207457234209672406794125618323167703317090740686574149014195589863707181770696496748404717454106336684936352842869748227860593174958804751360203874735610120339475163494609330435062068023506294654108885358726977312842371532208522140909262404272857772438616375024141778472811226813609990691701036900396056500809274827850967182825297041531715632962823936453311697797838874613394670051975353445081966079178707022847848958198893172566497300314886008303796249820084888086779192783418453796173407109736469047295235591874237569786646088891659044611193271007667337441452914374243982117918219917020615487853172421764888806709678312353779065428393458644211153903453684172806986592067604684380873125476073104610410743452997958819923417125924117367516905161653247974889526477546282707380552293017677815917101903620473007373471881488750103864465202168144108368386180063963203804866748670428108592515277001807457961816579617488293655083840624177512340597510347733158135887783042089842012897848174503853275985046206376162154600584125819083073250840388900124308873090791506467953261034200134574809784906902248453786976348152242663994555382070436325564805970350110219237534823517732954940625904053217240760106132037239595519675815709182336109307578101180079384696778996612489272647504907963723099503625634633451083580097306066948111403495046731520023890417311193393189859660171905978575265169755102831902269853250223892686272810778677523315366899616503560956037980534663820300137659290885540675826909613291365819550669845282636622886527969276626189628670468219734935289598133152890562379098388727857109288562865228036644499418363456973769817764871054432000238800715804655585445378751389571150834306316329387719548681181380062237657719303354085141863650676298979218289751567261060411759831312378706477943527960886159403994410921801176292770353123149042498127440713857340973226992313020936239176337261214065627597626341480513207417929504079094811477973196739093256541363412105230124203530356041321241845727913505165119267443514376330678816879390611047186176456942706390468163911782459151566878722264441912464889414375647877654229064367828880158116775561226127221442216266402677481749867028293170123026996820107718036417267070652157326195011472459264462973627393809775682210915156841805426936390260771366552921056640600821655846736789892246453602589933980994479927091186260135853746380850921338979108921617866864368941041604507350404274742918197314317509750509908173905224811876427983052726589664437497930820589455561201962102010316473029272575731881519666088088254739072365636616961391692818107412881195144404460087288894694678511660598733614020733030335861144414995288173011001481896623528173820655981072470353503669244872171349906693478651757240408513779992840308298739450974792835407960614063735990118883016739470190676438295514856237255527200316080812031801303699330463391147200358014760740401366852649290267421127118808230548710445627803427721396408473677530541577976044006560227040097743431643544271983255567857920638264900038240874863964054596795217427475085340604440423476660674701204911037317464781713459737101607880335060872890995987455719204853648968728902815640805272479958352338638010121867420947214530906950751506498198753500041155261724976822041844452604147444261682341423069645771517107550205310543533460119985764662726107083414933862487040851766851323473557222288996322400246278003310776181936198296418000725531445931025647968140841536228353362117664314892417809053449436225782651819482930059013656954643577249555034590193069059933889483196158437645248694961848580647288453482678035141757937648659710033571695239042043039872992107182259610689955809547772981589555206940522669845751932635641514883458997371122205430552404783267116393767293377321151691843434179787486057245490653855739061538395419191289154824622001285265341235933473897071793212413250977572207338142916826146042067412394319180424063725667611902541652192905430169115012024768637341178880087396754198074572402081111915454070380722496843130098014528766623608135042970269687614233623450435270725107432229934457220012652997298444954474416736640066077386260786433201108245408491948628145934938294086767283433484709128955247119868079812988973418585893541170398754212079511088660886192873285778840268447351760974342718097000481873667078023868221375832476486902928302417305021394317434114212527106036042157347849465900268366485810352868116537036337498386421734319070839808865455144687622998442401772943869553418814862877892519772380528148896966431680637413940048836899024255980338301664803500231162977026081958296571884789599723663725632192743814181760611126004407987051489465267990451450084732861861124591168129832866369497033130809284867684071892937077170527547726564699568511319285826145696306287272675807817756554731382114200944873530387028957644593008472581852235719584955189128266966278987887302440801511603333046328332255927178582765960209478746981633821446741913827122383524106160718244368426233640688111859623899064500066153186279947046110933949402751604706296846458238534013930586128936049279523030024734957620197414197213533577603450000864630054429032030573603392112261758543529891201784481292529417345053673280692723175679158625067565238763149521554374439091916479343619080777588803564674052221372432118459308491449589801818320665987325873262413596746938709715338263849028888473015347320234027456974392222023797633270399964698550345694454476124945394742156643179576692058942867047288762552563403241143291777660475438608086692263157542248667692434579047015191058627315276664095794990159565638631870263911290017625546672459631288534847859547953209474870558715939952990783856382064382604142069745917175618959613701256616535730816616441068469029203745487201161564792331876197176361262278802372902990863555613426729850996045727902341924043269058163463580055093794070818962788665156721314736296442480801974937845872866016937925432158288786949287907934904983228504014545268260689425107515439005892209151031300045928532656268829028445846511529471427290954700590030249854562207615199370581367829136731883756891151368324888536228148178233133162815197677331769685650526338699355675591735918239388949530226998586376065281668205174544291277426754296694457876051403427952252663666630363053648688297585728076607316767185824373852209125061907522268259191598318943765962611301673115835138872069355066719254876614046950155774773463476655593574202605284829905988768169901585419904236636173441313438535181733473099575852767079146684446652306658636848966433409473485274876167867908139563409689855125794645655638539521999383082008689661960547117691010443686397174220964736433758059615736077835475155632331548449553713123790416379257347961989978743445306379837794654258486483100395484731003113024294972384268933460758801218880540721148398825027717453779860748164025062781528195412156872494193260881114297221159672402546388870083309801197771645975805308687776979397649655529380886713007557567642917563498865774955106275755485480732035325881914985930330232445663183033172671610944382654276277713015948431227939488409867241746459283909162149842937032954410748857137157269388959780676666074738773170293600228189960713426875997734492567626592279215357288656809238549196785307891456930675197407833071465776992581294391965283326011016096007850449248981251883614548539487659387747393102894337305115935728161904030345533526331775519295629040662736400757281671389302520734063394702425745582521396285763532074585542720795339189603138862170799919880943493215770222908466664651549011393692827032487517017010856074062938158099995660219376993455064185512377710500069330999510946667093168417047299996925330267185590547833478518650842309649052703383401422338013484272007819405552033701142539011428887050539612906482948143159440955710619863971952603523674542616632179357010526909557151316513859472036124300232251634351678921407430284889555710268469844975041965250741560157439130458837513929545907577495771659173726335585380312343407606733540130594980883038252627896486453262956200073945381258984247652950804557104588851050201432408531143375129101278882735742754329557509276149012521430859474778601164314767960747168045685705489006529644543785665357043733931810198245011343025289694783925071168424081248961706650579389546273889187176632031891444938258500769834217015892315322106955524160991238202543089153045559047884880034048885505535250464732395787725875642095601655921207865908532855908868589221229085416094007446643693286893070304906011961763644168249284483345711110203736825955525576372036827469001439775060847092931806581806846506795113470229765288355107406696530987577504232172295267874977545827421844274428934011312936366277131567123185380715437127068334966628938075836919944338656897355507407496337788367239134188230806488343727550477525333967165000559745422048612366882549527731972326398292837807666877649982101065748985219738083244652657772368375817275939096389044707483356234307557384816082377993102301193353664019051110065591757766314300288144263506636451137706542831348295840519484495183812428164135242106903289719042977344544829396598912805848016817513372225406248961775497081128592959417161768742428526248964084034714403928264435632903965773870807714136414371829587808296030488634096064855490990346836675163938238106125567811589489663173147031787287270355533985389977153301252668133876519217070610110360614288201782398222488356761954023751401438117605540906782379048498080805185770277971399872152876811896203883757604434331241059762262860254790702430141248893786157502904110120384437507150441578028672138528010486920035571930681179178356360462541272865234572272211626888635797800515441575749985814715732410055958275752864783906175725318917748033872196616130913789753855453977251176693354623003319222982899495256525269988470160140501936843683028043438643567594822768918555013749673635053457050872197324795871968411902015504521052652958621675425674534142716857223066398988118648383835477144109465925641210443949773946985179992642284733419474640967103986723201385449931890565855592818408581366737470876983620582586947293903784716815940495627481439776161994582336029499412991744600251806354719338301767175668990393781758122554789304231480827001945861086175034929507149952289996205617099797026326146305419340583174693188346192896487726321604159450051715073132061852028964953484781388694872120332592441773890787945522214062912829017495209726640988180740415073133185421345955211093525097221598197517791141798214947126175046765663790152553032438488466809924625229287804361768411150531858003851045207997321670605348355153959383750814943896935413120424333306243168233209829212171711753490353401179773972612047595149506558286617413788448174398134782944683970174424823867854151896088045594857955261082302569822111903502869916361205162865823860205538947580936560489042607018281305019902630812781507418790275591725058254419952433650479276202839969041391493696755278811776568864013971285421070677171146580647868050034522225348714511683326171677794288335456295171600278376788869808718905023344520207965074661261858214714838743114008669042496234453211227416991519768863943170863293543755224647314560486026058737313691221578898592234619565730106967708885230120758572964100098364413087903478345384449058367576812995660707093845151748090691704131501886326014057565713434735929279913378629066202758112691128873584992531549703338751279045718971313719772975965977538294398849639421490609057479824355399518994333454473850796670967539167403911547317396439128417195254693907174804165450742695940791233682175344456345135105979734218582183107685911901578131952027093284649685336239428504620519760506507330743365915489050875883577005824008984375909167071234871819934872021415330069131246818872532744895955964842171476156801610649663949418949985933206528209416583645408675503475829671817710323446575151284274633425040359344286254609003284328670298865310062425319265478955541281107226719634128035489276062992445804111591965201074386819318986142374764806433566972539757855494097319397603904172241536118853558532402173786455065645014211379739926826069496442162152905703454276466299092327343866174248058249201479948006911128049176992639809262010495789993484639800655678266211226381382641757233671123674559399392730470205460683701412174570964460811769461807108883123786307758974411782231722959026603324292236146131830644447358346710343495206574346259357256583159969516389262690213542430955557111903300903638972081030546054639521575113777903566112312297078486179789755414102374179898814005202499714373522077233599179150083701630111798306517444078675420475875020235290723362161910152384045987068807928378451898201788365054568183662254320641292430848585542012651647120471994275779805992415489947789518583078524347788182304392301534490190879249046175757770776153680094018201464693051334245758564782458066425254830718633014777949253717696500433491886094815868519864703113849014943781940596493628083207144322934231009647676293721880487679988238889255317581016870966420638054751478225908360845659686878825309299647044193686989224309455681724549063579514088191697035518711144852798811715837651664188778123025826404289186370120851599742710415670305912429311913982237286371146633895510902561768142174299515253838235523240286731946975740878533868094821821733071191174819923711047918295683468131486614563953371618736197150003267035678873229150162556705692791318504978756656008574007308809380058988902391787926001469849240014567712417092298226653506073567842249571708028123779762769693649292424278029946928441347983308559804332611927510850889114838475109053917707426220303167263870979036662848718936971318496319150858910713708782760358434852001328408172002103656816231246984329904318150541433930675240748528633865979740813124922811008020554543845769102206871658905687755322796930499405611945819281043468245212756567713208594854156731595268731024139523614477729424223533806236673300352293947560069675983570015217821181407119533800675131464386587828390864317166795588698809421082467970502340997648876696130192693864094275193322611952197906461780405298129862373249926964229266476281573400216039940672152900964151805678398235334447674844548441742458695891655720494229160425222933580541877676676304033959949926397696679308895139557387239012715552700510917350766677849104197427157087171926181293042920665673623630471523956993176761745434873632383318673869702948496920660458469994752425377220719680084148882755404512518083222534956818028841193207697301511591505823165432532218019427918415837967379543893462242750046927884754608853567365435412515645071882626872902264196111859290911762056533114106264014556982736929251946849499744277407427477590769130284176998373973597015346115122579496919145136202122295828118685089685080879015485504393449298757381043998668429160100566686419813504433868923166036096396808841811541611028049604668302588357790704019917409316588751593487204269320548766025427577285008350295259271577055261026815048982571169502407011950351632422274794313473183457920915142399241199690495118072797192347161727442618933633590847734987637121305178126057880674594858529226299253765708263476952349116313060369941835527931808665212359514425105743216681616538685624490149927016033373780910358566442309753130757691510052541226405243924334366820026982240749020651290562594235026619096462458297400661947533250486769717424105146385399002994813034775097306765074380693782751315668138879250938732180976130914924562580270810626740964333573537976058816265177044844673073100160832718546676493021988816920447907029058890172890759253656520102984675393401251060650532128238638199005513720416656766375457326349775390461156349804515713846004545240167192353706982471685730465438895853339269775770401269392998900345594519502170425437162846063787449297979931875468645444658031046344531381452036591302198491495865221036825964689369706920008264512061680527986279587081688475141652876582274612659257963178814756707691963640244072397241711248090541365901310082372900875728998496834621657065880712489311207474676925603136323800413968077695663370305757707405336678545043307074990126375708409692421575569143935932920318965889893803315631385304297087267895665048265570073598121791106217316885415140142237859939715769991257998321636854543870278260222278158957099759489198568215318552721527021282093384542737198729887686531627371298619025094021522311195964224605506925237402693843531463236002273446602838363903094741728816359091445351724283377535621745850427847129639359604567302278357122807476621411133516449563638636949373808333680323578108251407646624578037759479694521795604869428175165536687987675406090572138526019344662891217981486927534171375904069723950100238658588961418989615331698815929206530982585908319000123936529654641591958876592368820039559652533737737108416818249352408040010775782324269396346304602249520803664599909736908885591167428109423443991322287642390184690506844598102703513383846282606744037682878131517391236445466441903455224869448175790258169154084694026211019024395140511933467825550573726259553562387530066762894536783504348189868956509156301954988868372581671748159711573337681958102006353644813478366285583632479473838738767117834492351377751620737629595876685831946499510292063584162639980517868410790813602345362338192596327056175506383832549770848380601140600776970413146076236092461714499340299135693577695748733376724046557627174529300827831109226980274501364945060798066795283637970685333949662822763395116237706689792717529570880626535205507160337299529653652874031598938787247042953748825812187765657779598096008454706313293826927181393331050697086802386812022760207664152704131198415032107526557029367300863572627953944547685676045878053999012677671538095831688365797717319981435982122316801804531154416200274644013318746680939596758895075609838423683450426680408826164325771283595873407472768297447006063744503661349163475020070424832007156115081518005711628258619193476376568104511235090993573951287489155075089778573418814463848418525334694839541797770426210495454982544873902859869816120439901071191194444808278531590466278974508445195838691499165220855642194022813776486545406192195185797768413330049116189577946972629028313218817543454080511538289421909852003998878401374679131161546046741258916767663115093985134919979691852979683313960985494379429536541639160539589474026079199307902581807694270995156798774412556087659214495050169158368116680928524499106145534528075228898384369882610921836643846504055023471650893838234829184454175445782119498324929605240213517686671235551849101354591046782843387505477569070971423397633764771947993228766672723774358232270498118963379050270396454446812659395156303635974159674363417257505105349990983275696691377265033582609814387934654746539498479807680938367977240631864905450831861256057796809807697634861574299419924573000915228229114495422209080887837289233048288189464137685753648490847897982000096704641619405497878201613745661962934604776641737596520838302114877735143798157321805141841180061040530178681228931893321290161360802276580484542446491672355226749067078668625217619659728344328437210651953992243537618288199807987365037431390193117809986280314685789020826054122371472532997023295029047568751961687599698446325822823237811451648015595825260796735777076789026685986449566274709152179680560614315795517385443800296058394878420144970854521031531267673681097425301453407982969155467285685078720480603658851376784768217763164267304946255874536190511185574787393712110572195145134678983975370053716174854910949917441385290956509859097187295135072148448763655155774203253353272555865735077857640696574591142700890533313890782519826236291051765784677874219615353717719750516249189213954510558756254651403157472840895118059946347510318325778360367593056036125279432964671761582369909870185688537795943643890385635680394256619077778108967857667293509737377774787294327198031056499152053358304486517636385243613291124548315427154024844094440839812000044555549921032553792060368695660120691725981247883602540558205483806387193419291009344537051320628350315715281478933649663235553350386968545537218351147510448409627717687033103537993425875869036862163088282464335686163538820384835997278615508645626752103215613725816098646977842182162355396441130694176524139326406899828073901912860168819086294779983029690574722434640375458606001228341995216626605600840695952961878860241242932082158405748795718918674124012052517889376337444235888980772758604728668769623766093407663060151010998153476518579007256553238173602609557838600096031431814418767971638176922679275649946318620191363056663293389651907601193675642426622137041677725528749561941541467094164848983000667338071550820504801388152326492579327950416179079437084389869625508242705672170959298771516837680500081470580992351731590451322649012049096642144729006470670207461945841338129949051607042622737350019111862986292538412892686050562637422613477653420754961559444958480614205523574674560067312069631159927261086557608104492477543129360546496882150284915539136603121209111272315720423603246504613523294300824678854027650049710081639913795484089744289568961205607382510415380361357342616881910666549036877434212108137170028522114798634878562902635138681838991662108434195626994568190153111129776976971029028216326325912798753192444535223629137599290385573291413588892945132355883848933008036344737801785822427509500242492894844878049030163956232740963962997529132311396751643519035092951470763521967060631973316169268539114256547955239041414767453615280320938752360971498357076676145701954873668024481771174841096946728661552915045320139987075345728289056135194917947057255612030296421816268583809133658689197319786094551445979546859573601942325284428874465043475089049543224915491901129944500192626749345962568849209180209161562953461298348527762187142481973502812701668889427499878031481546848315007063781622442301330155090666178839607748768685716086360398404001759450558946394435135037759620014549667290094320825828049813147817198762627468651583358635531233449604353490744286602879037664248066330637964271442902028467930982668426006788232480162370317277696807882922378831994021101443794006962450119827156825499601125721247990569662419946318062286973741811392308252915925909785866576446692577668120164248649881190782701101646282110497931526306636782547302493675512205427790714272856405727700875691451258710965746735663690591160795878655947053829708885727277777509931301268622313865234530143880103832258342443435275841482401430830723260664722302228912343852643876732611588693158905114837003991431873531695964900717829369440155884047573434491521468000685486627879235972834461332102618352271476213410608259226382369856642546403301985790990622203363579046236146520920415021111448802608761571369695642388820243990154096504067612019420634300885058597031377578361438144759170806842510728417593028484338640963162312525359491817112544860259777368616019437929874983827101427939194490652889037927705824332107355709016880802613852231072080636342018656996409954110619744290125798143617260445152597269908057730205792937312157706623544809197789275969415817899547215624223041672479552729586598276119919798255128738725999085068367642963990258601768695740260812436163358220343098992978461887005195303329310077851281129715250749846045715021872897108891916108255149583772765832412628327472206605485162381019919441335468810935814658873140784154711383038110308769472888057874606107344635471150010124066307070193334419853907991450488940131194558491326579434497572697255547500649681773976571846670070558900356465326220657749655995320746366520393178219026581615160454989807694766489418981979328275228415341062996238174196308550448015811101779961499383050990990349941465187971052725835471103454872192979039800086352469698305844415658385433301290686765866972354761117341534236845660763016777855255120672985923830882926446774460154373141651534800733251392000939470596794542520060685306075998625689803959661976381008716211026019935458285634443656646625365629173198179376925864733693978409188869453875489391548781338983329996918452436326655242129290009229715508301834281130189980184087601838400343441249871953189647651467697849483126967262418928459674809078602338255280266924477517289168599595008794174068154748939394601388929266972107227080197116996752049067781915835888073126644423843757012421653345199984104013863105267459299667608972480488784122622602568100043293273168844026486195046577480309324514409668713021482845924422224631944667092738080038670552663861233220337707433781764042505715050779692528186616522826406687745959799077604884826063989461751059050352886012517702276470679744490086110031602519805719673079314215764574509597575898576565012629264802856561904411099859004932512259680513704143160535958553499751152439189837696729773043319959643722873099979180245306157941817601966169094046652018672591292854587316138049116173705283325655193359603440073127200237741800498663449995152109529523718014714710873449540557294797935810336776526259064299570644926861034368812908418964843730851688706330413679638197796116612286816777526010862144741064609456235402186500685031349900589157736587534760754529676253347938462249835104001124668024066181694217612391588666937981856930313299113092739945168334131944840003896856419652875282573176299195259154248606956247364094605104281901293718135860135905246413938181759574225987699564955771985313432330065477854844251162505448486242973754409527971373106250124502092639764730947715239750904852642238845924634729686621233613623268629694383606532720236482653341374375594863173242769078218824331051934016506605677664658676024384483012082151562552129558831818838658235890199780057806649895450146563326754508747007168995832087149630214924832623205077859865119536628588982190974079504373136644001425976669202563946919652038135293155981351403136091099415708453455645459928498480121286825851621937035027496331389205349352485764731021733478812773480856472001735528199305099024896978849604143753749484014996794994371343505260833767328846430338420988382489456778619571982140572922123434287881746019229256667562305244463086519020676706510097869950602066807433680752916026059683732005435193524462031842417412290487195289873538369668918040585090343439073822284183909919695110944678588158250400080285572445587273870411854634915986871517129418109251069534403310412517791988248768550604952684510135048263802663052959274502009314775120465038666027288865207956693577233765954573808346392419197792764820017121211883822895764395982015421674510814877326102327097815401633042940699829378409793120088852583905676898978563862423106517686630404936125233143031273066232722169190884850214544045950856863709073990961335970991240589282563520312405348508745822498897648328613843137547535254275350089086303566780791708907781428412714509136649812225980363027181818962441972077736198644901910858868632085345394033302059816681438635518020120833963307446375629465297743093703536546645071946556756567510536095178419453375630737331282147054691010917288459813661547548581447027813862163688960904936980655538604959942762892673666567616376834369848233430406758868127148825535827345370365460157802628860756460019998430841365450036618297843787756856759429177300054948208294484204714636976660617984268552596062842987248586154761099918887726989218549807326446623222671855037780553300383424060085442137241818400789641393216099679641686522817484214353971030612725223695486042961160216487494440163669856671187899421478904963921342924977420801922660742309675925831082299133549349444370116748984766247486653402717546934202940277612674639674596114177111161761735792663204651733742902538645954250605337919388867542747945550979886888566751578815694038015715199529746378540363401800944490278509098421819306077323254416112943234990634565891824598244614094533227102445824589137380149191022926458162604511004381366078705458003905039858104650357361493580508357389964747547407754091613381491425068061141650306176885561319967044910650662473342186187947111198083667664488348342327340331417287044517306936233839825188952491591397642916461394875673180494293741039885288547987876735623139957294800896011286812029372145580253504782512412564657202965204710655998953688763591857765317990414134454348831582853334932862751589617963989297705352466540413131115855223179156214334842840921416153226291255562280903066399339131131068518844296067011996114544060516398083514437995072355124280445492758872912456871556128925890684068921669887247228579899297443493673575341192076248566756324283937261980491306181158761336914557255779497139754727303990551776893758869465192728168499543235331064829146833573850238851868164817740538824347696768367741105899030642328583716797397636601858362371113080850554707052497413140573554731395551533792301749732258275194402581132232863198253673595587784134138973451728076908089728381580252038737688434821930192002029371374051768374712134005235641879852833612757593216516040222450973305942112755365044943145037540610140008331271606180789795161970027366636684986481977008047771791112733843708879977872399433107988606813136886768595863631979287406419723459633411074574427096834647256515059340089138713832172512963982690708248574658303593080279411015313396014887943868960558568108427469209327353151536267423782937971759683140729342058705692137560179367188187736599124349921140597130298071083123864805889763971035005407914157590687504806097432531807415873762824256161168203552333564787343859533119455880751178807041244521957137974834969694561418802903522143195869139647910813799707016707069440929113445371255416045522541344433673729943750806686119084642253915171376533461103441879447143513664524403526784236403789972120776148075426899076707403431948421155779970979012769030395751294408419660827603616428249326355264539250600694308498532656979519799605349145899669502132981793584582446961025112627405667857534640207123481771926401108542166974307856092909735944060700575022467617067400579169262851161963706169375572773047369800862592035487827397166463627354015723013577535897535515564888969473153728097458624218903507140439130609954068480366651878907683317359559334261579353688464767047886830934869379049010670427008970366222175384306904870343301343185986475557516147933500735019334330679478600339779842075383815622994409831996031757079966188135137862584530971788880710092058809675397327787358268973291138827201118116444136399927006990656074096079457185435973064226278247532601585306747708702218512175440107574866049886598219803139790880455169289764013842118947758735953389413891877434039441676836094963419445105709394330659431257430196439889563293175473841795769923555236303761771815792439334995495146487478462054299084609945849586477897420982222564047686212351581547184527762439527252180916981873090421867522355493657197723566763536106423533099537244372892944706127598176044095444298692607728892684484189742105545820103361656594970759551404944433150219875273787042506701738831689114890504858104291578858413606620400267060911518654970243174354976215645435636787002941159074823040906327263044699060700053285096140717574464854982963262185639553774719386480741434352047633891310996944297242436907279858840216895919868619683082156249741443564076541775076408102103192701275294012785689601185131064420137454874867645413461540029515162982796069291908060116219632534739063132179301745331578152102442080107623880876529714688566601780257355536613600783530947686308974875094798039435086375973684737217711861913602622602154906943827780965147983123675364197077446513857915206911104148429582762972379645671503359038246711765622907301362890177062030055933034047627830610692414102914119846699088005310722429612390275034507432521453527865465990513787178674483949951174806356579125943904184548492100813124517556161362042480421893173033337146510045666814740591869045030678646473065495714193379334370727114898932173030485508334301693105817729344560949785325079936588840583390894973019363519232303890762523305635430099810805442920093263292076415272399494673202758308433502592584675352964172200667094147666384204011167874884989182027205067129874794771283833781296363142883455100604705384705618925088457173027583614097689389046176049214631558341574477873771202171117060486537228357705772784332566846053740865766034816391201414081705364867594639391507538396599859713476692977520872583959536515397141222141384984838369615960327813584580246239408824196466422208896097036881955072715059712276423626352166918202100119296243792024133647230016046824432378830899545673885843907939166322525452357047636654950691309547746206876566995321144826001825004965515004834767502899622090809946184385668609486122830188655204601789838982065106553096089142998620804827809920440164491075965319359775097518274362250692308397489141587759214575813689139989330206869599416384795240647809754879245084933109861236541222767305754487669019656009609966931613873322368645800250764148634376244696982455126869173964835141445058849558934902627825797229520868069939155237070669985942336309011934277586259495792474402989229160035272501053240325086371053963378440480368407894380321942383434134249015187256234208638808170847408364492036471494563709927023878108293000879994624481362857408637411582997326222555518329242704165959367960702872012898813210433128327672366164709290219687124263830284057709987701068224968915956601636691752810991672911053907312045347313935011643421120858808890929535193645352844990837410642213539796773851233269153842448535308780237371126068544314729139724340097682249014526490989682856906934633340386093255047304780229799930086863040779845453309534061010238287698301906071352089127587312328446415353639665971733260964060328640493262612437528626231503739960756714136006177351628546577567692784905170280922394960287085812318718214874961446181007896529552978249506189997541104526664734974658638941042239121860401284187556912889779694123443537705932860568617011584828261797839600917058139890440986640199229808048965262236838723954288106130580615526864569691047062582683556916316792509505411634753684483182574203963772170765663280638952235641358995615974849392117213940861099823408978906262560100353156900988498296966486223475249334974397878477513415597574215140731294392319027080235092015040053189028021121133237876241612318917896321080251613095764865949178722315174572130699297432110026438238056522624764295852556627345739298836594627770333508716161651090497163129657441225416964383826728834537338962716064851574356138417623962217493134437871646954602513237544453555205033235779756653225790366508264343087906642799079513410936123691686061534932782807213475916467818750309698432611221191157380126941610502556554193340753708014264893280413588231457408061367544394596570526538252052246324286904691353611993710483623800520752254714745775172166504271457972708875292564384979750234239607316892844212271640437842859757575754077359052628053590980896004520624374280348080963197891685648099381973175470463959834435513376443705789460121542672246774940312880740115959723449396210455474781887851430435092345526477829217428789676232110140980110519681507193541371919696899038844136385390781392138813884963803873829127483541958089513712333741108543532171484400287253278964067798608662948451722417233707607889281710545023036336777455582665784248082825399185744329874431285888456434232500108232961096427928132213695033538650135229663240493732716619989090603593292604637492514148151953739501836594616193720906898076751960951912629559059778718015429826171413804618876972633949681410771709026303385070784534347622049791719326209607179892683252999348454023265643314383555942138776391528482354450174289296999908610931387722118891868903857342458080400990073748534608916380256236665096113695774887348319098993390561012437594100137841296329382115098511150945634714371403293526650892812413533450333589216495893027879484678510694258708157156292863839216419343014522014327175729297004204242729459915623740554704591329189833678078803720462439207745070822523681946535153679287088864273128495209400787904160739249184446451014088924714248735653029158790890301408168737755582892269319403143822279001238815883467918442564843648555270857561779429821934095838170524788990650403096242800152589033831487023844813526577275728364342945705019526521012392983930016412728597791193697903622226600286590913062827056799312581654705292098511821069034920792512991410723714595856511265192191989201771869612893281701979361688477462496932954192635495789897642861120268367520968370057321009898610572917401127610050941801115362107996660315378175944776055032803498218986052530012772945971745112204207620438991599385262547746453740824825992545377781529721569349095580420380280812157544921845540732822515823839235109085023183028053062095436356270818009791148896555481179454834206729619718984455413364458070799530659880642392723199420248909497982690956471827467212338754420689856112049068353734388433788208762934008554702319740156907293139841669628383970182960846502975932647844002692648211479239620697313984994292968165228065818968033377230649865282782081922818817124242528915865117424680522194679180042255381789988083893881254069269735374917713695037861553286685106952508433551171375697377685318969870345726754801923239984686330541799047969746014343328842587091187244196563775209220105492595661786760254437127816499365363642541774458596960193068708888806516506544197714664891977942224275777636234317630240147022345405102765105435728431984789583840277541535124849786362915635950270771799380848442716642606634413064173799923832633598791149940711903036428402985209315198430364128762097049512404250978946124739021362698946329868926354724190731557576197282900751820778990553887387264056705828134075959098424888945594181670122240529757096382759099411010407731285448169344224931986108546652320925856566148534256016150288466119501350085818749232657266853112793277981975774225275623010786102600306081617977554430926872566232058324590098420772996378655817901502505081371319665948903777969929753346559311176386121104625168767330668384967278455197787258131744300792388031587898709229252988349198801200521852084099556212333267628538465357282396711320525285290668565714292121589222799509066015667239923591285351509645242950300561622472888515848662784183911117377669354359266850547363835202438968023612879340468941369371099939138047609266934350238694746165774497933570261710433328185477883503831558689368917037294363789709506626846726220456072073052233622870469421306550184432038726598620791882700907787685782088937154982370572814576630201616079139220917314178714308464259610127598458534929564478600101839479044365483291022691982498693688255269504274556232994814850703156409992550627428847431212630832124261549342933994859222498557885754652499055360335343188109321495255078435432471159521149583565464679830035384308286682078374134932454364708130168664823192634787779434318099991547505433617561010862586860338590069568790140522842674656328846944047776318342817512635983505747231987563637182891995014113572723977079415780514441296127547501797028890628305334206040697487311806503417673102267130770446745025748405785799505770840842883312047658362156184264461221455243202964735641240943577865086720713804291378422146512560393818161068695891298723959741903901348118899034095096701108790482043867216075189128549719141731252540036413650241331955412989581492199654641530108247271467804522682934958453221675925630901115737793556709645154486404156498722512086199882192329144469286007506228132326423398103701318101915599235508661483525051667139890915305657870733755532148509711855134355794113358464246054326617052011777696633580941440385070932405916807514524722240337816855642573479077503029477804842163847070518923253576778520323192516801745921488581497237627786547635104737265640513227988023278230706155450627935675771309524745479800768717785238921342951310438661560195415998313424989812461094026465183469613551585410539837888453562663905415969093605837364899824003199988513227841239850963275744143009044880820297139047010359250730998009303584295403140538250504115520308726726965789753057924586158884811070514495751865797595542023686109290629650128837001627096001882956782219162167133574129970470792131430554217420114562573565965970930900237162447356863337412438135258924866160596635840854996561387085156745461226067319068115430184980349422874470336152195508014910558344905007969060858280904949672123111296390036523759031264662435698068533720094638607967121956309898909912834169259402723499609707936544966491618167368061356029110117583425939205635345730687484113735322561248583471101533004797199400381720877410016134146440834840190986266675376397212371033543515861188379719750975023453471585437767557806541416447434690040497930283992126920120360018299913539125543123111462622519051267547948907670253461437400692626058074318094253653706361784401398871280600536764763051311098237544973731811886476009251290146239240000132210085398680298078643584829144255121783264557905918972117448158611755697215298360743240852012507285627662113927311081716842300323502064018643165373683423559287389353961057478796334447190431794087207039631050452380441312877085796695316559777701965809860823221983130222607100442457619900523225784211694970001943768132293825286125302279727461567476507167639807642105296770691721414287843523601136942196920049703971202460972005334516882828212793129950595527103228027345377763379537728370549451517517020587250412457826837465584430798699483445827694131507272292429270001941759829824528541505128693790624251083079143480923649659472662867953611885445478834396085438909993267382086193685385644447629369782365155341255112147767685866976610693134012593039478270640002292818169610268860617709773565392115130503037911265747672174501995450716883628188382879239663265997883206693406535011974903918728035116232563613926247566262764709037941101369322603014384246013626567184113218109691572352852654733966624467086713874869163852084083202989610427341824807658726668269431003478394503244397190830152225729732705069064859617117426197166676650494130666132369522366572532233835815200192615427850676860228181384181070663651264321663514369671148999454394353863942878353460301886040004049365353112109496009283959139130937225796988286691444505332028640152408666263786892199819273334524648779750756488713284559422426157450125112357152387440091517000464772031142440834612971349523774158003803599333698964848913544364482271724721668341637841210981001158809080273124273894347587405117615130427649240970380446790794853823422391551849742325296094092190424972986969951189304103296244734517191946639685424212974660358366333801235712379160468935860989271687083127761443026548456809541071089242529071180160999408731230691108490152682141815617909053460440792864226287597541358503182181215454457749180252904057284120499287247792044798292350016242420230946756654873088896404359486883598113316927425719334752411903267098904608436644680114740087516167048079981812549788218432832926884749059426018017306559719802351231625549442665216675239567873637327674015426658379435978217702841643758846213625038390869747325670771189556831450174832325766077269882361937420656181114900078211674704092417638952371056515143245247420691817049546021742899228951189329717302805013440071156047208077265440236333808713211503493386283938869266627155986060681407045335446013603643935202432408961859622409183426011584124643068169835087732556063675169600188938011198052637533250018982639173801333963690275818989214055121091098329480380631753086029963986012501843942467816052004880347422089827585559923799894984208958086077967601538555557138779526010906139496525081384201042737162619246291095491361313261110752364281404924235967277515291541310987868390038523831179364117237434595361751219747450268559620081656476163245849242628938560788164134395575273583774269415650972519925696133606893697039447516773703466706354787551149601035550619000510895150974099824247709422514820302071769565306349995771130666907391572262756103920327519121605366756049247649126691152694564017860037728895093779875939410165510715457789044476539721012591270948635279367773128780342594464821774932120617817407363159043247007533820412349031638655049278040394490782507276935109461656068904208517926944869908533040577622067003616627446951737212986787018707512914168145988910129913191924838113397276900642568023696240240739959198345195845758329888683978245237117104149023689007816978251010249006188038122505820596871299890336526768595673148825905832608269157005792916855607167826472682035055253343986566200264262017091735501787134490536576558642823856368592689777345718748216666009078834858503486660182827002555297667646797506811199170732452299839341872611634944562947619735468810806855417411361909404583728382909267067228505962258912503993364221237654495905627169030659936891545022552439302179085815631636273222844904473673908317238207294650037846473804854827894388480826164531706820097130028078165220184899793583828375115783704439598487402517900486449335972820485010283234669775138180512751128394924229253805276710681996061006049671450638034248935018002738845844388655438440504767433170402157081814978295489457259618872204153711341082268740565746158920382505697864664812583761100800426435208776068680160075423657414552463041363665868949861055442234920104783525801356616580031679360951147328640679112335579580652648571799170606541825741607175834058093939298916553710016394251437535334215650215760448502102950096973759341363349193480503254862331939797767019459443132114646015524391179049853073479227336083239125635698844449677781288587771830941568057216978770370781354285457437028552944230051093539651007981305165386330342853151864468172459012155805240091063932589647288943070559591830488378270643250670177615205815682157793069744037582288728143737758377178443850630055445970582914784470488257111227071430656210090056401342954193212700645353225452885336505830064563167574706947378834451354747237954693763163892140033833434451606006125417092116109677221645585508556679110096515016812329200399433670060359824513794641685019763168377495669709061217605689525176139249043732807084030006708270067013061401630947549273728776992940994417104943979613069033752427559914173665243962824711136841239804510352436934383981220578661269943811521275562880877792245011173354334175175584344143165710264373703252761758847857517544045268334678327037619596645494799469128460231876515298604785152423669076567296774775975969439054590060264739177147671903972928338812141906756206986341254178814915505909956360529897381933338080074849482192708413434879747500031861758005330423443898206178062562669014706174175006309558754930503855513810161359261025780646174698604389232931385341715016743149141161520539379935933019535640269722432725070411321698354088508894094332813986087251870947417044863907952594635842836030994993371988681428594242042069117410018658047625599706992904198730318590769192317460088565982837867700820154084171464592023122986925623796797275110005235637409988857133296263707246515169902113362302929007569745310469393588339170857167835980167063695519201543386881180621459584416630086773922929069053674691745334709076197559550155659908575604299179347768089685214010100750004813252740701126125934457214127139391637791084478781584840851938890056370426024382195658238572450141532661277109908158681903964304342191725541552614373564671179189628608518105086929470506710593095977562341771950701296998709418423412283682381145380742685845555586300611967109132135514618257737336557413913019334940645663816235146923311788955471207998804283969062348555070631435709104005932829485008472846757270490766525496335984221543315376975191465439967722386126879075496051459136387076944036038856201942951126451088387575478564639982282770588161881073109719493056677071373863859651643670236281893931304357064246163977769730186719301053914375090284950392380908853500980249044358888794065234540652823026814965283060170476703621793439487914993025937252142713156590811411070672662711516736996261886708951440106636745604222038215522888890452963201261563894718358184360373482647744940450932655942072004015320968330968662522223240554688074362963399023823803762776321909408895925406371947689623406543821122805682871341180053147424294999248933556499748888596118182381163743295796295380626620771629558765723118134614444051548102803776700050869884432721631708937161290402786422068017961511147597478603068327840442479861322370568740388165066399938009251840996226990625105987366772364684178212735544730283794893811605554255924607528798907035739795375813076623353645246440716257039871587112744488111564147611314319709032872928904413510321241611138559134623928357385641069047630095907392923657062172016557732212893399704992568733603629615546536753909017560843445893459220708892460735940658965397070001148480807972982626066164742015983893271432469605270114613347810884214684598536501994804647555027484826502146671922857696442549793151339594050472041843793937551129050029984909898894963404495967707200952804456579725483091878165162491922040191175033357013561158781630243540797438649775827689518321153226094260619540565875153434180490842607724872197667845149699925166296438733912316335485857501661261470684699896084754019710755172415598961519999706222419771250559338655816340554480866942129477347491017952486357042355266823600140292678541143152507537024580844055983778098819502955684537774777838103084328032147434979917526793446798857895858430003007211554900737894621173426288100255459422986022008205925580638555979741981246195581580853039410485903534823718485787531013607996994219180667458944037283945933674689047076130105092164825426977571185172527771815225195108075899419573825811324305359130985412800237018618549948748140008053858129909792180592869071320763672895688378510728331565250878206012358653724098481379055874865176339238145849929996640623138281718341217726818066235129261700412815246923225897243516892075039676376871360886350003324491751955270165361228385238475419199796086195286329060204169482892263989833128237688694180108596574075413251907325452523139949544785925389865948132736960027986624603676556461141520030932901094532597155154111237975774785941073337451634412252537384892499467360921236805430836767965407115547390421434864266080150223960612578617524926092011961693301793861675163213139373796185646469839190250185154364873280335641254737285208272312725444592887444713457650906678813737595735701849343077147804874038153446414326512622431560685431966077614502562164071526711835497387136821770042443009182881731049472466723993532141658767887233329043634792492346343678884839275049297309593036301116724671269802128375354489617463587668077978925124015123243624757811121014888547695199142023324757464022047149300453371280767210764508810283847753492703211540959308793234633450275058741457002386494840027823787784920158231584018456031437088647894479222761236569425436325230340014783726252875086046298415193633231690638374981289007998354659879561102930169842601145902590211904148818662452019723497816293722297054023926196349843999001069096559442135179703932503534606639158095201449288710038178785462362122747472878781156757964027418206764307041625196714569531985157153835655644730650693749205405761435505373003553015228577667954231874304828300616029349223644154597978661901422465853434379775915864441755919529538729582675209777247047747189623585452563929833648535879324343894256739411671241878346049778207763242568529745238483238411589234114967209159395519750938404435905784857282935952205924074326413057284434135181392889143322037230714867965646315602689814148703441424515394617313579407214749147309657455714719777047421048598967106841315892104766466882714794624760515461738846764932965188583582769993243655388898869663826611006875496761894373536171860190268229283132050304333161848030836702325463744380608921121696627531548738416422257408333796897735425516637768962880889523033221080966705861025924835247876369059336894420725941164260520675285080978378538485852290094236526237300998657720250323431416056772633082640520293892568230917975643859163970580675876641560518001182998995154232840885419891971472481551542253420064623241635956591439721651260048436934731409789226946402741115273078788263473122620643635705462850429946142497312612611909782982671153469757331159853208693303163168661678885619093500009191525082648173022400775818645786763604108332874419841898601345621184288634445809618219142460653811691073057051584937702723711212248712155672257886292448037840844000015141298879042634286792974591379401826868891467981602416388475554545218768900810965064973737621618900612611685002235046266243663936138085237912126312557770302068656068578397209842686203556247708204445452863806927215418321057158887179706226125258602989225230813896793432384625268303743326893332221413663603201629703381353884122586572995438345504001989280319271403832846036345226508582587297702732303858783658672494712518158048800163154423311595051017619755142879023783973832568025415222659922668190102310722408233344921969465948140502505189329886094707506223389901761846424125171728877005090798449482837799424953564139437936972952197568873054520329936255744207044528337572079115297711850703031817838232795015826172389471252974879851580394133406191713323076870781255488403008122022371415842372009341441379573391283018008378682986814489189556403130395562377041407923507184276586538930914508828349254639400124374186052930442869501724897008157905559812010085122691045837741854465902477153567908100383560879536237300228686981870019273197352464182781393498275571594223660698550468364628813097888700016934482962035518337970224053432419917732002173315290111916015160937715209184491552045573071929673863077468915769417270214048292073258180654803201787879716425926433411229204244259506119183553371068132248457264831504373956432396217532182300570163652765109946413958882258826880633731475140921999891115419918408953467628673481446920898982330455182859433055729238397937567673314483068169071087173297699471592997647749246387066495023972208692298311469760917075882658205753388498398527217721935070393573656659989122877307230993837506817529612875932671286026256524631259448996439166272206475291332187700811409653002209172328606355074799330848723671571381474668886505544348184395642027772310576580563230402202616910738794746524213452527896097967053210262631265500498420784947015582399527484576054009962143151863498828086914083941014289323222099858302999971319317195277273678279180278495161798389921257041873720186974988579061399033102994052269826225084688804015646898576180001781589793541841965064854196006005769257522698819181707517232666982222200751282856861042283224070686191189034901530492085009769583149179108849826412564516385046046350495116122571868362594456411030129916746577664884661797356722916568043755627189829336009490047806135158876185267021462410673730421129471866842790047132994053944000602202486072410939217842730647428446558613088322960268695965453731445982445450319522273180947083528906452846734130286377145928864250266530526050305418868935841668292901051257620433817697341969732588794391554456944445666672280496480058088174201371196688944916407182104122855920769829693847082847636473912378516696970477323389924548753690349743820180061856220062332873478844507667075863660079320431435015316300595809107120566861424352766883443160237319271548384212554289162540427095993867591841061905199097398662849108696776025228298753498177453685333731777976364530066977676296404054094376479707471615141180290955802836380329671173577747390747840203317320434217734093038925262898206129722934128995642681327536487739123134338552743694658409945476167040324814043804409191066553940057240651965028309099355909191182592266337722965114223176918419359874819133860880821551228341471529477091322367369367338230469591161577543841197668581844255988035625982461209216740147181299962626817756946286033853264419235654265172392506302704402031356044467344429244685702272222702075037482802424926611985684327573321901583287030030299100433634614048200594582856218820488802553243498460618895423411727345543042501130119091757163254176085712037626797942639503092964599423345581633272734367004803572744372683401412574366418823313738694606817294304354702678417083778880687799901108774460239135293833561360245985820339673835490051339397866401867786247003758300391953559810150586424783125579820896389366747721882498669320178066417457580423181276186812347946943187542192210896946441988870963924464444556060806874342562876486724932372090626414095233898982927484677340722026277667076332903853506799346882390612635603229575123778047187310362856789936473559556482979553748490030170844316138795926076777368544493868706782457459540688325864091855196985401628954838905809905374703739778901780122835673728389323618657874779214327890019869793240880274121732081448286156449127248139975761443630605372439167249128744582368035794200528025639527779948565548939530854009963077843187113018437661982967731581805841318351582457366657047581244713689329893641463241395045724622812214693042004749644179964836817388450328177594579368562708049141927467158102638048715474796639592354354908930296036286572250520951768618466123846557614270085148790652606209285942473600191530719098134063146619744467617627005487902591174671987423079001976224976451804028610549542650076863439809487466343641118090498938248872103812568670213048786817908936200665424984526644561675549197501900194785573948821607742433085328262544515442560952708339410734724664450299526452197110357389157394073878319208575965183638440365559976294952870816539601027086755989317737508631574070456123936564524783876732323586160283506427761636528377438743084473942530607113241048146086628953006311507258853886835365735104223577906265941057685499741216421440661512009534536614418768587999782597948659448120386910717736405898031953003111548470225060222947395954283544457857486553723266590517349976869730982437322905540201378003379978787515468729207801994011290958118766913061958968836892113607215054687251870234100541729098195969221452678923308456920166023012402404199408175444702890256463091895715708678070331265853881799351427702733501544020256405550929450283962944295331934739332042281741555478624181542510729365052408449196339161141806137481761896148735164675709490982380256222550598209896056700494815457334937331729784554989841808832693601676901674935363161560852323726636760658370810676440811789387611370279583497045853352401651531551425415265095078767923172338127954432360453783403464673339418446166461168673735466138605471915456545083991730135526452079373032312033949689532949150416396042857279060296800220618111194016945819112419365786937225881196304008775954828022470299624803097741601240221847668160467744661353762994234375749460016490217413484091391896088097454489419629906274874291086385071490001411201282223231924183009993590990146032065250835821630411302398326174033510397000487651746646179353059402943855761138336012361550136153407675809284702338121678892896610238541114286403365703997653948761772076697744626964341082553255461165724519461456020398052172392381518429441222142948746928297215383790871023054835444735444760656876764558938544221853879781251105270066480741769804336677107369792786904428424154109498238361536528358139119125920847231559131791217221499205376009184163183547693700628067329996276580873003815036396535458087746098608505097375846647305853847906083242866107884649082316952323920734826960306391600763718350216087426498836427491842469458902272503730848329276333858916761113202033907484569670951935552853540006510679486257718249410797981057530291599889899817555473164524257365089133295006793942633976873917335446593046768041392286655957738348455698007981434571376763802931107009216263384469570812171147905330259637485334232926525520324061932678272617416288115195978441851939596405480352421263318724166657554960211582530595768507278331115555410768684047981299650406826216315777807554270858773523606386390853072464006525151001309308499217443622000044469424154063062329403430216976538060943435778213884727471115120305787989363616038811269442203520121298909941350827216202288037108805573110237564836526725904554717262590169534561784023650390028819187342528052733208559284831138834263900159517036591675713825255419842570783709454493550363952333726554670729681772064047294821714736214736718349443672772986318828200720845529929072904831434908089111604445795277862871035045405504338250218421946106961314439444132134823562270362013132171400040535143667280888711046861637161155457711419948400003272767666365491810971291318605910798789563446894024704334073001345748587698899878688380143556830192348722538837928455726309952328575388124304448949655225934240403292360629362051834117798998368975529786796102579759833766192503910342985530534158824215949498313059618353531006270637730426393483484393353781306981860472748933469093695829684503302517808936314704605308623711308429835488398714816754989745312167480456901038300426134420585576894507305752642861202838603472373080250364678256358370904397096084181955950474467711246416228512417963581114267555386116700322826261483340738833303817336698782019027598265393623414118649554504218234841979883296155823479504798594207726202673664024803846453615939967416042688271077197301786227295610806580086088826211976572776886584415487623697798544637618869410893287678408574784231644608956399383826652526716810930058226496042631594355499491138839314400853982728383277691258377285481427299105120361397125339116620778004108709727357550270859390975055658703334471403717148580820029646784398018122766581846107855219360838769597211929416310045691112965604074579226691737437165878294282042023744466336492618338774490370546353672027090957584297362487646001426473136663690500323971137119567504225245501574307007749770043020178983041302943885557519790133802304821277097773654530513474103944731524320852304184373856157187030529639752604737347067820959736127393975645512378300832389460258946280543648011626633454771832981917961739553412392720395976338773675350368969287106716357920299753286483029466110430796641788462030512748457985873046554919725702404042636376890880076087838775433916576787286504575845181916762328461687473531582809316601394070640766151581370014500768211504008555420162610288424452968965333328964855224920370607230155705975496794570758396838612490451980893003763549221141728336927142350749744394943294737320154030942708196295805962877125784032656478586528038857228562722026701883268958333812796106731880383116526312203467777027700757643791320549661400870815093918221635939446755021459223956443580039523607380838088085976318461493929006055827844731432301123556040415049422992221744325053290960208035201052536209165131670406735420589717173359957635015686144970202494992110171065249371180416093161630307864076340221497041545322246762628270697260642387859617917300454918194435402181393214847598351196206304155100049911719416858059374848922931840804150387311939245678145707241127776332766947735131013560108029237607013940773065082558221384298143068752853408727865803894736576206553129954679423517317210182028422394624250782145348853865508783308845463831814898132369572270204445739329357889665848231809719963883809033149652877441443164421420363126927906556985575549809767383475664625618380434004767504541858316181361596000148060996391614956451749648875520957960822521906690879882207779490375103078298800099692822765300896169024100933840409891347690792683142299795967414190125700687771046829086180752785841643820851750017887057493421538068945433785216366328677465521442854877801095326140693369418086346715012233187917275685722290582374227122033294158636777186465422975843340913441550611663004958333520151629606000201102745826440829053697095979452052839661534207335321498057146124930877909236882728574036847166505150290920846070234670651396863546320913876624289048728759233171278757353509900806373115857319432832447361508892362903183643345174960509878441163208163117064557153290207506294156413048281133163061016439709110951967471655229830081579299088029020336443299320229612462326392408891132512436402814237227738820762640228498286815459703146574117554473164280412299599989124227475624911496435085364718927542985684440296483676855745105184947693065289043226343671139516165918697932202999590463133848288982077372921164893342964688203622176119761318301266211905691462684861011385724559506277909745120205456057293009036002283185731461105077492361146332001407652329726087623190041279755152696089024254274918765404321814952025720033508776847953755792558078995533037547558051740792816179365089800015840643784441666080943979317207568908835548446561840217307163672585409262497422209454613323909889276703928541230019177801802600886775790655971950708558120610006544788726366297571750207052082126511488490950801914759567658006712910788181905342212317162964372341106571561677575081541204079064885010496459843092388431900509107900744097572995449216993711935518818039108282513188064682847556743726772199269926713979610037542823680283789430822072488001699293309665211137955309449165918501444284374368844144161139321306019539805682844572672579590233823639175614908805782901253561360186482368824612997700697017820227951194991299429884720093165443037063722147246882117645341264643955089643433088444364233118055598116874010305227215761864802268455889791119396335607757098677294345501893120602891521158555936002135926533828655496038172844139397744446535259279578214074669124309301863786102638320797347687683891474589828255984812634545461920743688022132370098293356196731877434483558795387707104746181009727967117185344621894412607656199161349188883536517332363448150376082926927471659714308041445893858586781797344773269157121167492397876524733461858328643685734515924874794941544129451355895398860529781598991209048743968541764276629453550480735549299230658167753086466793104096658811844361374328370337029836194557710432459693880053797338488551078626180413963098278593563358949572311809341871064515060076916154972159487810435572889701711322060276117290090112025516902224228260945399867221648377651012398724183513601181745718980746865953385854560410640028358794317048056340765646810105738807774936029370393547855770460159281939001463830478880394530735942757532730766851331380763587895769285192677420456332303727570107898735338238380139378142945371554186586670694458610030399042766843842454605928884919186830934696263623827943385984211813998332499468254081656974896061212652034740235141367845267613487918836866672978039704937849368022717923169074546987605965968883757603103641855737228912839444031796724994810539751472118780605984141617074395462920516316518559313356716604622384421259423120588391618919986694280140189009899648996680064544131421182370574110601983966822251165824725397384062438959369510626244912432863039687610675592599566816187334806985499010559026735229751455111683093461433830767267335327933672128413381876054749451854591079979541972784878815757074958749736194700116060992220748430005874348180120361604991282719355630363446543151686943629600672119131850320657580464491649934411172108527098562331156327737211322336719906388722111188396394159300129667122692156928198805591605823257737286270579692889171748735037365917158681139440501224367751148558199675867973709534849831580968707768520084076723836980599135508227366324445174147209737299180652417462111971688398022050829628244858416703576365420890266687009789813865557178659483523021890898651853394943602814025260074757132140603893319492702574639543618739442062884268512898175267421812866599856290749704861947825018988390191992746310823316862314044527713810231887096096445608550505676640974680837978207268252433670681699039276606600449504974513537560165504604396157525819907752451126211981156460791955473877715495756308123068394022906666270603054849706717147675182726190505254519962425447868483230543651424211891301664785188392460684588084959460736642024186330701950456254781232198561339857404627122419404350667860120581942343026395303176147327671115459514668857631927444343680748728348390866012888195300849874431483343302833262633370470474923508132413786057393893581403275719659359371911348854740371951459104996002674112697613441168245380013795252451077389740530452693189112630842683166865004389272082609982630070963522189265299510299023806215244692455590492695411905207234187809854107852383357420882727937851949095135125605849424567921030908207934347451457501007872235993811825172826776246601628425809690766033624581782645046166432382390833045096055072954704049085291734979241110300928983024723288202615966005213295354482752035980441940365579552531428070808087967912084070580479550601413739356093001542488863782491391162027014010031804886067335152809898568752452754361282356722211637647690824289405950162552125448496250481383064776646005770668673080453233684926772815282754564548049622291055340604734068486071091217499209890851169704029328325184208001220959570712104187987374015068083090458549494075702918662208575806576385586825923190937018619957233315595241674669499467219871518687979641469726587930644775620667754470811513163554723656584860866629438941897270368594044379229520956077874900553129359597482238745280862810352921470822469226618924870911954381193053428140757654005366918167493086251817877040866433514680777358238450371745327431833842970547358213764843802578982948442916225393453639023115364317640818779519929891328273738453056561397776685585597495022952524480704154633526686278584436074907105176584869023529138042533839294467544076647707953871120283142327925917643988910954237467404000494027117545758071532256037284790329345263248854356314888076716116468226674814228283158884395459188075701858603293417621569877885146493047983956387710553075448301032912376098072270882263220580293109459190500441507746333158294499033336475176584597265849825340403617915451968711639314083561910661717807827793431657613415650835057858314469890836486788552056518470320785195792021173213377620613442740175052383652240144929146693755128001346743741013418466409619497110949897236684203511352350420191419481637977661795433558405417805553670334585526698041455250619080619984083086950203964028795983701972892271092668910235626775911177975863672820590194369591093683366694198979010290688055012042994035401306247517183285509698143792465876255194950287806941631970746486593203935082668564625098764052102505250403836789206916880259020153868043923613378884265506320790805241048656575212540776365876022372700208511419168391216193219301781715560702404072694484087916667850104073678764306527072564141785522420891121542299968454430838763970291618921433789647356711955369953547576750514423122502511672674636844032801612069342235990851359849208279020962048194313548452872552983551343302372709675022360226800070926861406583497230635350286897148388165988898052397909119697563128764112370715231269413178868983448308115377168238184838651345571838879778905832481584154623255144957171339037246867559394060533151227042945575099854146044967333312247265300781729438911451948807901887377989130310943423947800438527073562231886711140483891399886144220181585824802937520184584719386630558873843230422433837861148572957158138616996474455150271800985885380621590431458328624196592965211719106647441779019225260022017218025703997303256673899302193941029194806189128290285120857745110167118852674074151290158550624474194473347741496763470442940273458093970903673345237592794633170022972420977689100092710219537524070756060433926792234790085811340141776997157922234910824213106159822166506955131786492801637873224073860480170321592813059805450607693777203875690959592400102334821407720022971906041824993185927278906481110718016224246312360676309248331381815280811155686565399306131716688788825692834707449874298248654223624143610340138220819332607514349438847489371930653953828085603250668004233992197565309250476848018391323688058030345462404312597274877061180947909028753666480690264324807791617876965530087495025413696985486205936229232591639410215286738266401729421637045809328659479177248798642552191608332548467767427260255584891454517070650088248616368087907884909805903653632146609495007952912518941215185185223553656258284774924702963476292326417886765482618152898334232270646671890419133085713463151321413010322300390175214824741365284887187263334027430439160303283967397103788780539370270813297052989249159508277116761450306364959579391052415517392623369007447868921902941391015410067862471736171455217156392282773890113364080110198596273592050799144004225646766076554150065108553884687266736610014478759114598186032843563948251457549930183011080376723521668298289367052540127996656195063215828079690602272648418369602282845163388058712426270596429230312911819098850520689729334599310286776387219814059520832141915498307021354756605621957113990327923183142521155388536788971966490212291762249275092157497791275307622129615478725081594219523138242706985638214482029418672437063502443025799912984285085685907002193342747113015165827151955259047112196711998475073356878417059246320384989930163487640317009263313745624649973858137018308114943970996781832489475475883869180748106233815649668789081123327782675705668952642359345977446002271227811141132131458551653546072078836435335984433027966891233889940674276759766025552581985462519201984694277163151304736579098320122173388642637615908926265498364201590412454568599794964934545387476823614190843564110942290108796987215860740715293681098030470831071040905088182182402597004249342893059517433768394550187483216279115222021163511561504012825500503079911114913489337516597121736414581750000778439836170968488910845182622401442895473552076397177365468292149056230240087786178092555319392767238465465988168376832666743911721867705763653647123680793446992899183293174397495162941484067128343284733071496115325007466161798377936666876643852798711965825872676221650064988205727069188838121841979715185040725476042029784972579453459712792234293470580026389523502609136683034455233091189017119509046555656934451664968804554057353703756110565854655645259179049304084768489626189744837507576564320023887475020859385142107697801712121696177014824509067846234803980896650568465049827456563544185785785642670275062226432594316431685637545692850168254657569353784134785850847857867849350781998282169556293147559888571725219892130335019524182609522254186904922399680740310316707128255869365902075814331271299754447704687121206410476217835675390261163475459963847528284725671426801850430986594292799850447391746646501370382270585120271240642409637907989423708375309715337624596862183485852524473340015681998415527495477385740582863895312346399167564714038923189070116433595589806607307958407824958462121418261969300481636215605908596170170823988958179368135076884097390461416367696924192407633888708850448202182729894631316464388064039339304065214405892606856754070053412064330302460334145368048529984728561235003521556215339828834807167694188007104825264756273079175390249134513361811761767082738088421208015136995154496298472170329346695526089718769050307028059436878821372349126292060831537716077105434837094986613608630780970388093610974164775680531693259158417618122773224846447995234739866085850918095210727415793345742703923708962025953107067504878049160828123644090742984964177096041063291229017490801214508869574385050104355338143536757420798089396099287059887560902190992749813938894762789812267317792554032588180507288716776106385825136936522468392795200255430075963349531795937756082636265259021531926376480114739617458049096835027223086769622741048537932133714978433166258174423148894373713623982497638109855008615397238754312721409780193609328465231816579667441900112022696575338529640037359052262802695006966929263213301062927614371484596760516333331099323584811411313711382163327454821055393628636267771678934275320038690668576355191132002088245500537263453234290847551383315169997099712300309492455656042709862607997094428963550735277783179962280852626005220220683133000109942254927889896361250718964039120653492479700337680408722378717901695621497238117909507707383599632527932189926790979622563955650547542255498591890909816667101353454921653909407993566849098791026924412181242398132986444258321748783564515507365727339354929576148228803284366017551977729718588547432147421270057594775217514529219929722873090429054482639728390555600672957608396165450920961068159272850491314114824158459759266671507989956394618442359557600987208102482064290771000817500680694108844856872379393192592957142755305019765158060092502446189005943080311574959259683381587782624340832254011432287178437113535148284651505910108182749884719936458424015963130480447123621336421317630848147330343939742594625587845955721935208308556298167865774466531347927316657678777360534232604648078773864411731924609078317291877956089975632031275264008409335867038626039449444959775090134413475858528585919576808244384887497985783332207919262909837089868392788604699603213106968610301986404470848663937614232063350067684475421449518742601241013131038850725582276984073990849030698724654076320202627507033815502322421648329793193465077913647733988457855898705982049147266440078966644385143756219581474338750404448670645319027362585093608284092445343388270976453937519055247111556790540100506343744325032243761377243440190265579343844856999802123576638210898105260398969259462797386297607872358006665663456105581008721182567628262020684064219447677181567366517649545038432977099853406186815248236850527067352508569791944485821252860704520980260380936766880981738727230393613155507734887862482863523368690570676131663459964421299270722691578226668044350696696211717421328301485890091076930078488786201245686547044045661193134156438059408442608059332894003811431150202889204649374208859610406829607141854185134267599399568842034603839946078200168723568912069754813708412553395263334393739993445159450565127537694583034847397481857205326515753840918008562769315452379437273175898817141117423393193002759944418803195082885770689031150172339924556222934384933499324525843604400027140875427905550841732519230685882407590964561695119325128600997972326206803987204245179469774784119468822668468165402803285042665278709631499591288897140812429783733564743212865488465968298444457130480771083327218914270127819466161676937899606741231665573087306636235755404688307498450708707906849272652360401749298568984395672584102114195502725574749792604545032241211317916019882060346469492934005456517648831639649292539775341767546937835431953630467729300103276716806231464904074227857700170459708879311044088566678832926730348867833132320546111255479364257929011306855607684163543928729668781971095383347374352147568714518416208801656588092434477398544132497623945195750129913161415994781310472576131930255125124718733686699880233812954973712965108312069031381130357370956927782354239463616981542341828532386914792936039858912607498377748288814489248305027702861792866055150419321620587488442926105703358777916988779730829157490089131526635831256360418724170757504732688337293183647926162656734124386975992846643515799867786887828213006395997323937069485281409170750047999001313521649982427887435453616840149668696556223942388252999434567870395968896408951880995439730999339380125431116231549400587721611168588945296247979592135188585494578970515926984066527877450884853012276524677723732487445416785209209149060024703942474861646132706812947719574660604372045782084452603617695948034040846512401038268783176872694402586392062675946798769922444613226320794450260923910915836344274445096400306427443352648317895253054004166344739495803747871836908626275727633032696411536065287542873862699021640612552980906440151229278617318109568617365455453210476962577782255907113863994863710222281815380250687981851863400883253279987366850204159826869223094770896527567850682894661057855199174301946292464611372441067843290045215955414931898281140868304514333889187078154478414571073892731563032947299673901449315982256958178197572556017571348670297406402505590674814316502547282789257344447549679671025248097864649167720195641510175544536787363697500696965914409649760977206957110420815317164039397305947215243411781112831531897316354830909316594541910585592788879224703947723521252811789963345792637005249258163865906530686292412909459593566123897749198029557803138312313726086850738896041261410361247515898864993950192776281627589662002022854088022566783866455322658969058253282508582882155985719753130808568213271423390735102806473169742338720508952456998870411919977852068651027945762892683544575488064527120445981930554585511594353539092361087593557281004912792206125447950969397937114342508246251135480007847692427364726513932911759939649548044675879444441570791884575170597522529648060067450507257005796159246848044402562862290493661965262341746219799940810759377618266255423225857133305537169491145699639975218185952371507629701650010227027547095949629661761304967662342555048921712047772496401581424291609807825825541046019469615947889522702295301253251201424126857419221428798155973237842761920850569319619914964582482022152502592027516947893414166985896611989767648408457727502744941379142851849952433226433729765762933993878255992095566234072148607963070285656035476823051611714414306673537099264441549904788682923994316441620012690495597975720251819033257048267782012981467232397415634511211251654084843518625582760726819354317876307771120925196921384306362385894603401341281748670273578834263046453641809197416275846537157107789564924335698575511160304319848973240811028751105036818940128601406089724515279056007408638260645410713717973694772810347415328394840176784157042641348905206404422905964025478128107369329812693819049972487381336154981422500426388126665161202111784019389922035540720645486862229509868874684536235372569740597281419401206002434143646674526985713849750276326326274988883556081832217898923454931250562789053523228647221272474601788300098331636897558613268391520151777005904568968361851586230746302392941426581877859688292825969049443052443852070859096463504296070595485265810070703725259970920574422117236206843365322828923578352881290975969931381469153505544803627405529360929348762860810897509663080229145731559115712211021501165921017681289270554782996966055853385949474329134630803271437445882093276979730079046345643393737276622654187775703904194879605477234855111786605190092861855383286050567519451422124077411032870005998028339637468164805042636799023707661142379076054096107873527704628631411474813318677816406229167856644689253343383517832487537802003602635668329039208989187896035782367967630104016826919181189304872777475907596621530362434410958588751202790927156889596823518810418372915544734167168613524695438860785797014051155692341392269988537320829851766840739993483139739170665111872834550605488915391224728686308494028530566451977905969919338301826582897714219755017220946742631627167291453719248370593700429891838900125307285025471361658755418183749355132633551261610971232695293658544615242218023552946068115394823479808525204147974919063628944188086035948358905315638585157311534869156793084450981323224985959837642041346664118260550893871623665040319517331732094011867585038853156681599459867636050674645045453474107526165411748057580752900233964600106373100204538103747288045148195310446456571208089110466663588129878999522530638208874303375683373643017772276829189171381965716182859503191714498478825762517619575022767190773802978968251376398061604806805377215271302134586809445148794176578135193994599211077464774511523742152235225916401388183937570711412833468544890601713340207912661379812269819952105072970231978786228637867310077780082458190945284278434079851806320395792004344599319222977404076150507496787081859405051728827764507835357230223601982049559939490105429793476248502686421797404697616204211330262327128440867394744383387395889488979080443566842695184598417424117105840621563153960655296960379610825054531828806184305515920291452031578288146859880720131412954854554759294972643793802847775472697234241485139302007730247707405787736417705016651627739297303965315959105052005409133657959887790444173779718445331315873647215253666437002422313953846359253069039569957118952478779363471829350147112922212650160270631818973571663736230131566783212713693532672523346777506339795104065964989418408141606399431169393568249504056744882767445849247696598331577105634737474930927682109886903708099472767944857818735918727749762709395259094814817790184579780180175037924865176195182733100711136044794020687531091335227379211433801973779611381967152594675514909836234645304526240411151097898840977813312981449418408363737767709045980392729768832507721394811271087668413875258496141789489352475728538270625201532648505380456431034807975651661163125164750613412958014430567888420134452105301319777535527031608893777563281914056193118138599518979753845613977303370885154504945261771052972029186286757007721316384971744242222000337222365227310532436074275390679210807512454151886776674498886314919964398709099911400979876067765180778719404444746058858053932939915115479494248554889579608044063561165112394138345697644379197958924495146049739555420193587425543013003940196782217177480048299698780179399964394319495657302026676841617092793645440705656505858827729192388875216048421325141540521703865224565051926574555306423173904697746323195628343887095073440709534460694828136357879267625535454828629407894611056337466000718697147231452791974110577997591299077316353903151108136159773223464725315057119019109917557869450996592312882050974822340135730402401813256565416374016615578722073151644956566090807595637764590400290888271092677022361536882060118195626645034601357572930019088688573227340403235740791706853752707984396114174966312193830150682435777325647253073150677133942375080462496888616431043982524749831970030979285438623920405156407014813477316444961918314085086491398083845097114438431364498134183488995210333301459328525669112298543327698655083961337593390329958355466990871503142260919084040807839296698356979627037059369077697911478601597026690481991041354464022646413857115419127646379048683695996329864382263334844530032944173772523864941200080535030495489191069482001242041300020515628186834288350647251677305065319454308306844089650524039768899610739628681175981290279644783507271455435162954909767909175102293433863721756614120698517742464897154586777071339086331687726131572096412087979659810393661832685008797825087080874051092152315475806624292187711190134501218693714100763648474019245247484584370270414593215811260518063168032140436979288840003523867357182706524727711793000040767351972754756056926604604931901278832259342140691644715188582890042815275041072332087062643818752587438609366618399154343524984568008425428268781840468755451100431587274066609469211577177535894835780817863297004142984353272806853042125495453267671494061243996787613036602088764767016247764141133887860682927250264971898301336018679565277368721348544399650973145747754978409138560756264270103616711229432883777503334626433640908594408526951224781678493494173869643757878477071621340823284577717474479624457438220486077268446089648859476001164405122366602781210675738348144552595095441836660113609991052096766034838720057414540828712156676456764555319938763077656664446378410885446243442129302350896170879468130548310820677054564004668355361074410382499651740385538469987654705395320221263425687237219983373652161027475546747397459307546959640775290119550480307526630724458401096327999593599406823406506751208984446182262060168273523226729680019660558276010429096343623860598663826386353389787436307911415058203152197136052141178376450037983862189488147670561714923324427046340509323945457829327185946826313863757834748556545910709005812672384658528945256994560871419173199844698119504848877192511156040887492294816473525669123679000591624378185463148472894572004985430937829518440206404713860053564241307683748126760939456329165284943231924613714256282950366203523964385826932090148674332279113751326592861436788188896549800631159361684159141294690734623521696229965974620098173789025791668086166530307270227483557139973034981623149475706539694227146037996887219017150113273534623962703706060435807934344245557217086343356867841186094922547937534901491539638347938176764382505031668122949725160665438908158313992815587416489882930531206189927663378830273093643084333177817020581645567539021218683344500029231545403638729996026270150826596004475092118188402226168122394166029985720855497483171970410346551642612662206019288082296259009812583516005804500233224992800047778717814153105660997196080620729354910781751067926110326680648637594575853536810051514903408450905981694581410543075265800194578930001231798927504994713114777247248349030542614212135091775723862348393492916179081770053534682416591763604594296801762900105137259648052982124583480517547098227832935059036299262821082302488493358475462134496620802401006241858233388655145127042199055755924691697856944948611596286739039753221672255112433140430097163398458961352206515115239837072129240593628449871629848596972714545055569854431463495721700974353475237294301258880769525209609944979953748564658834966263973960663221137130189471012343508685788268337764671731219781557228816518795362760869940466853211263499647895039772054071795164147279454835572078080063185652942403839428481812282749219476993595940944123544637548919336194106972459584804691933503336456141391657491691644626718246001856216453752279395284137687065561321424023566781374938940680199271577503045722035435492255889569107040337947672577258146256402178098576341888333079108638116365675494464923199963165219712902621656260110513204815380029966060800594934301207967956313060198026758480519366322426858966795401678948196599569358051127693247931599548105950695114028321081590677279560186602561468651501455745895435377839305271591450633818820437362856036643795840013578211414368569871891501351673541405565968482682457205206264507302357569509606783579168247530358304046860580970013423514071766759228844595658361763477378312501426755825143975779752003040169158103685892713088628910375714154118346163527670781228316032121290144549285971235930462409828959540349494576472006544305995653371974979950030497949377290342343719220427853774078436359216463834242094483983558341851377204455149433266914668275875171695846660339863279752515922090370924194738105178034992645117893693234721832709628982927857238023197367469123341869004133482325607207808935580414979820994198930718466395555790818008687494730783399008154460491216836559860936044399157993883152670952302067074448973938005076283473718707975456086455850385413412385342552122107839740289384344623602102255777372962696211096333850469763818998622888509056552604181377538639341947081193465035077570146199703055520916858956814095101574083206112178884169144946596461567368525060179224027760161764789298514647435522488966942436828021676271980838494246413007357744794785830665942027286318537878855373426677803460660942507781461994949756545954925736587734874310493037139117785948685994690716487572842146804920062239044142136957628447580916635826451051624930150049178820808239340450660728467184992544294316843872823622364131083343377314112847335738339236959784405288509399703300875910293186783644104935361552370785811671814495831234741493060009882522228128865584804686003686500484294526449394362019116610991442773518751250699121788081400660411202669610311934369822942662595421149013434853453407554134916591136701469031175452440942739372744959679250812473029115005181386326171702986662243332968205159253280244272363948349342323892776351875566123122225495435607977843562490461983570962599780981148293457542915499315170957437819832243649288305263447358733954166471005618404046531995384088860407154593088732350501090021909273570682573120530949684713957790776224208720542065543075467363048111308078463520838640652828092670956718364791940685165758412025298816860936410122933534606065663731605264403934062218073150260893289864630598541396392283947805740368966681829410108343223236860136476437811831647720184297307590308252292219047165877603430087155873034842180618762767222158161602970736740854436744450023455149402764485014223634586059886109337020276266799883866770173388461929810880764813828654560150395058762817807095688928260827874560935557529399104221703702427374934271617516522379197699037818360693676794597750992078798342209528470393909434742062805756114347474983512735012189527421249991558173097834497007692409898406293930772216941796856552555458093045570070926778893209674858067091981894026057956506541426570817875727066566633371740995084358777351406309787493475107464585361556403279191212461803891202151987301750061384557288361779322516097465640058909176581395347304289134608020269092098155882176408918994881041286828055017416997724291875508347091718818925013907776356531850948235480963432153236298966623766622676596724252484290650759514695125216315000815382272449631477273887967665204458406828958146930105394814978562267897579474132170754907906704437088886507309791723658594152923344652210480332940693082337472658802849326203916982387650453974813641038718016920814275080580491815131128789222922103045627337528138729879959828589433778938300689630202461714759206439446754043575242167415776706992042229568393700853388332377979152412744544861252452944348792219358717150206509881777709164458275700858491753817004184225724966332116080273431434282155799221257679030672634456020892339074920080392886784746149921655654815155633583851055849812274046612946064744830879139880909293089676268687292752851371730409233848415922678097753799567427705990015157511614615801079546955450908584338532318181335835147692429440439984133490377706281447369687992168671187127642204539936477220676515890857622917428624678161963754145817313257124182379966594328018677414331627458187612960286376195118207201134287911525371503602845504962429664566336937435100191051817709072842436293432744295166842514121326577870185537738799889739955621378246843180259311644420965395024127571333046884043936798720096058761865666216813114982918867354076927696329802456056575119279099935530896709187393871828423163240046431905585386305575932666801783706017206142839824374539479430773178881017867195977183317708110598430577024695597348437566509329460907429783905801975109239386015229148093543246544765425879477081979718811765918887183096725826132003265587576784590140640805639530610117460337581462332684916662829032907945547134294361128080329771009099491102280618309490503317323344718606275274591878204473238140079805339477071545930049514285704369751091548355728616703266823446208901066233254865647468758126778611785450800343394115548592155641684443193808964295480054141379940695474481119742247540580650806958382989274789999943062560158750740979138878310958713710558810096104586628229013684172637220603957168159964327966601630533806818360432849747891698237902470625877472643095563665113351855725295254242230260659892752026077569570605267678930808254360245875231520408283835649645840837936043506540321519824709784062990661498958713837246132591595524883739940503860174950474488902773526956530730791005248003538573330762599658492289967442530511827447518767418577637237704826109671439429205292380164447988692901693933008977542712371488951631726312538540776888452105655844423079054134458313248388052176082016760336793770394489748864443980342594060052654409977409483882449722643554987887799005922102126456176625223607465987116508904040954164771578998226817641488324520191781109942862504274234920695518700700215331080547463285083626030128791430740389309043452715641011111348858739110952779348928345256809004667307627797009395250944825173811743516415067454043877459630015763376088347652856426298485029143889503959810714112689178006263920066904927415725401752321745949789221929393282974450840149295496197321462433515836033787529850026223746815337309426376410694300723153533659177698353934476970469462095966473663634366148261970947251520618896696650482283179298580567783083661188265716919580454408274171078934792013717428171919131718003659228906105982710561926922461530720260644477814098869491565893026114377432820394991336738010671703994771053979668852077574574732612503440334983141697724909479361101649330084573339642026100638616042038450489614134445459561343222396688337516112537836585046128118699316871781154544856112785935786683947940163679272435936966610292983765624918890260992450135176664550851304364842223527434388514497079265425564561767273061730497518216027284087472824462872780723758768328069566268675294055421292489032574011170406797886914477695581865033579710939152812789958190987934266008379429269325834190278326135584452615477924626221130711844699796757542126918875094682109606864646981350453159152869625472772100817593377422257260262328152393231213417892668900129642228581408335225965885494361404049735602474169454589869669430483026603371613481968230475113242412877453796324773342676494316178634722331689189436252602792731534908280925440009041857782543042677040119192039059597745951590460408767025016038141694618956567269422490498055638989057146475411357994756458379473554144331750111938146285298274842082559386293852183914270977973831367523366044990201677777949804005807473810662278818021338908466702593492504457077833146114183697889477820817379456319025804887418326699419507745987109381642639253311639688525861251193947656535210499767512649282996888967592730914446688266018451534873210066811386547354196006761034304255631206789746982715288085412599109002032146964031200538603815420944091490204367746754416551902945192877455126386306807372303933258662085746814969099217719257863600870666992542145718911705669710635798783277894209901614540545803613150867945317002750677497693870424587856080564381437918783679024188953534289886060623664878971409982217763917998042719935898022806477545069554102383125344523246888189424435555794531492589767891995124709312357147004261702691868027381287525760955275749284277033409709429719786232956616949629418577059408090167033829131988147375130459292052541055116300194373686927886115428302117408162248402016850792600263624158210088793925258628553844516598398455304368458430844569504121002290261436818158459067845798622107920684115597002380514610598271697447360429055590704703050944871215014227706654482842261105574232635119979052076806250721869240853990299594559658118034658548304980580236225516740050173986092327757225543623668378985458816668696706163210786561952889606470788313702854902619522797703841108970476129829023841355419723650822595074813678009900075545386863576032713683072430455490607805848248756710579906195551898072184056707250931588204371966954044955557776222622021108683392553342554844338957313877571358887618044185607257260768999012308422336155639240308434866986298440566080726583138317378145703945015981523204125467073302248595431815160726074650242933889362653964626397812922336736824274554858167324677945087982926028988386022011175335337340452301666817346742889858942278329708679190396938540762129833213765379313063295641763673253125289650268474823711808319238001507567218914442237127536039733898908692319222207296823608848709381118043412816996639160536202395567407325846408555445634171264899860872264669047509429425588736957817690214006806043363366524860350716284282279627510222405375403626340495899674116902416282909301240566283713535773559214274625720699616730012122741427949766912186123218334264427312639557666147678047861791309170381647288619563350950297042263087661129357274396154201652132916888601675182506160026708486337495946003260889069039720735650670981727184469082133486474562096703946214195996734561930040039437353953189513618831445643305774034029940004233950231294441352596463194448447789489829392728024493215942660579276181117798771692580846728622354197378440801196415458623682729368955134340802827401040365780688706605121039450817862136714278688610009688387384380812501752868875837859584319844091417912735098243815953965857546422706107527911346609806744087227685283441538188630557303571186358185588164452740149264934938854875362158693156387819090656319604682084932358178022202435032763490564304533999993921467372834286062514399480997902019580201672302881289988495125998584138490152097551686370616813771716131609145680211417594985193309670669202345422955802150741961106202946757517112948037418008886303268930123750859371789403946291138406512256455075186397390539168667888539346261265173282771742889464145651003593015948735366032445559133327242253213033612184814102288782260352330600986557184280449599052567867985664973560747011555879708995922431374364710230639168576610891075566658892497530466044556533862336418188948186264931415888184148768405664790336489527119846315683430730071596217864095999925511287984092931580414290250692319375793993408227485132936698592522792731877145643544877630260670654579126625630838772627891291935929326161091748520863541580779344914703859025174761231137083222832849534387136908779757073625833544657771762939071376004444645123219711762443085688932685551671639503497357023866069376892362087812865071527782119745984166706109065244623720243153812059361397054387812260363717646291592767965293374852616539721507803717997825891697545088702557883279597382586133931767160970536837712874534699760692709836921837367382737201251343856745889338418128492728020795632792330466879408447048036485708668091515433666007354467982776940591021414895606705644018046232011767426853007643814605599102049809854143897289037268044641156105988993128200693415341757861041156767808767816834567354008872768661583115602250811880115081646151850401152361758067766772018008624117270449443131384098207290822639970942140644274508424372499665318515234739597948250468829194649609204095846127269539108809078595431347457434814516429445800409792768070035476743516464547137458072944129710139147685751436857415802201554314088763341466849326447430542660137268333864681301895888400221178848733018212126551949608842999461551017037820051495484986788099241874615805196912262254490563819132302095249784655099421975004675400604926671586585311331008785633294550812713699788951365630343294143981873349175092847358721830206337040239851727857683451172190115612011161640434792507486123672634724540705733125766983915882655880820958712631910326240306060951457149622717936113780552273491027358726044003730176743180746255514331327188181820826372597050325703021979342419129438971489389060471155845998651521705028705077519068511757937587135679897405211789765684431055880725051618209648867607603242414845834565921215912329831350046599819569927765484057188232118867665318295607045494768131417754984215430865857555877501584745525417375890866261843822863646965562669753215433864835287957028035519471822600658129705256508132254778570415958246781004220792685318856773834919460002717003860126294124314968998484459123545615973996145213187350460860093107613779773868327156744273055569396465076521980910031745403088061862033124311911454103880395838912678576751984832549945765570395676705328677777375525854062956586124479841295757729905337026755477678296302005555196584764908972570789548486686410626681216364763473562357608922186672526306915124056379071283737700187235379358000199690823102275404538250063983891330820637358293569363864094138980012358211012300330375016908433136606035887099974691686510531502889478694896191219827765248884029659419422389117530275546847179805934541520235540942398269188806616165502361018264456712647014272855708819049906363462253029359641258944516466064833717144074294869056145517108574312493246542041198225401890432856927336574413408166171450065493436274395391195210113789913825416779876706511925641545598249376328855818431449220393205486527200593982867949243210789380510182547002792452750800586218570227668748180612982419144709831327207944421756282259263000449292406191862797324803463036984926962888893861547203019147778696291174566971058554589212168221974033448561868898636352409665712892895719114735093459770848793372424705228695480217843903796047702843998967106639593805672798131847890012535688008846679829821703453214532334252336803675192487500654829230418204943613366472610730847138529409250070547018911820076097951533189495262991880508744058193462922171891540223233213732077907922595783942336846260766829483986760838426640840724881292965391164349217411026051419978145382060936732802723566189391026722976555267298200197478207965054594505474061741414174462766679621407069601456500795183746901207516146396705825531128258442372497374658281395266423695012341755247732950999080800506456281991584333155680600839570550967752052176974294722433859964972038734064444247857268649464399149723983929799615022432088295745816058861007850348969284064154751852611454559843850186994878228371630509809447589700765550503226275871060082182122837130781301027933334317941359746741600131287980476885430262902941760784809589494118339643291459644885557670170043165553442744353516848369700855218200045900855940335136059537922366390590920056304326913892181314219872931625848822536577475134438968474187666285070201968904164028021360812997888907103262923511791503617398510324158719114283156388766542562914908795006718982550398617988569271533894485483919893427355118231453300881355040646241617431885989095325112196101641775876950631907192250477936570922175853930733620118407226809546802933908629726388504864326867912200466804140150321130177760959054448296141464271332737769596937055575178990865224128216862076375754817301651170907626757222125951420427632379223577803567155531441149949129214265103500863522013726181367473851809139591415386426858195112137066375186883044805191222881727593215054600563174997244663730464660358580133479834526889959335382812365693281741434194443866992538044297291668343957907824542277470613488416131475434134235255306249517988725505170428754097188452313474008415534294462241119386172354299072913437988062232161743641980779084355196183056750579376705212836000108646602945366161483602166080234359903325750000736511557252529873073698072558432579035875630473391000875600903748787566121101176681957059346603556566148151425344134284572148067858612055933332020456856863612427770972756437397877832037321671364556130683830102925175686807744495626901937178482488074527524660808329908635059748161626739052328922514303042428638218573644262778003424951705036042599279167726656636510708022973970016598075365905567584929019979170665152340165124693863724232625416279921966616128950965809609006447571609877657286453997213371611676677922114206575715674736330029499972103709845808833873463040764120679872159112462205478493573954261999106860893440996942656112193739631534358562626417858329677143862395979316306091534887475284326029188959732574439099362046875817707892011784285814525761230798358041942180310756831625279788800654023393602254594104887212854048437370194828899696496884473150872445036046192895197436410197166757510149775592912496242637094124122477222912643392365960890210589792349804696865981105609631898233752405485801272308324485144316641259878978001973091020378671248768698549005783138577517552202134307200672755491579224500979847051523591379506634768607354054709741260495551037968436612262125801806219793475765391104913028636551754658252505127622184021240791257650504955987571126721432186671962219955424707021313173503756584457544199830925528343763300960780564307797230449157133319654992000688411980372613181123412868192237767842215591568139144785357928120252312137961129337887864530381515911952143850668969549106222263070204546106807314069343759270154463319860818006221615468028952147410218364328902229439529619230372286070559560533315969825464379816366601838077348588554800711536122873408837943185111300901177431546836636847837415315058422126036855324509580477397590054301182654189654998925256529143301226818410503757642453120577305694466010346314038264465029222697908998342329933606211359479028727872823052163326799018731454469953309544324071895377804847343520343181591494329594658509934081576517862978685304971618325908801811311971870108866527452965283609620964839667728032775454455756779484793477344285162049735854719947133995120529852655077181469362552389799543060185473316349733433573233651148658426266940277568953262463307876856712354758109664511131468148705577190262892616722943924001453613479137742082011690720593284296025143157922343021935730556970651058318557778664248276284950493689816340108266100658207206378211164327814395824560391824279814854736142473497315632467913287386850676373867969045443598169494125119349688241425490448839067793187048552388436937542995535094231809777511548803267113660661457040832158572105106442712349008238258008437366113073046797409911535314353022397503885408900552557570565952635317570043603098285932923747548472603922186089608287029383827007393224384126614033417571001151647573120706505357555630223549506877420114194854513921722742532943448931539567910223807422176280855780435908715055144375292720561094831084474401693571684784592368719637805920034010011691632695178639462824851767999183705873053656315727432252754425288536991933575027417891173366412558069176374824514806228773271211978430959056466305026006910036385339401208418914022995823394060788003787976837744922095252212863000065690952412976819121258294296707253465796254727577463395232233511784204517843369155995570720413884399370163504301599785139029803002588575394001113922991530503447076155495272865579738112101397309122873552984157362199291523645336446476417077514834263454099755697553906243536325250263879991837958270164707329885709670192074888885994225230702986991254476340174734580363615423448137914975430918708996278948155306162413169701394307422508606881362621061645254343430805150452856842807991109824736737581132829101345856884606380078785186632193205434568094284185767621137956568654755632436569809694473754991792781522211171112699023525169504522642193869144893147686867898177865994365620432121130927654441804638250006138051044987885130575948477742608358319568338013130731966384583562968682200418919798399912244301850325809079046931638301395255790282862509611692014325337223137687446605000879658701417443431171837899971651882249436351979123341873193485499582294067908330770526849293169264720108844890443463814499514503018377878167576669488362484069143903770420519657925489226232253302738664328111484440152638083821814767773980201893332661091316511536209310081098807982713631623049372992625254618805693527260389307479218400008016218031108620061570565952951468397964257125778862845146575460476619990002006965038694935198535893939957273511496900446217352270465355192277493827979332040921212157726849160201804553510588090980277824927143822283240683042946278206222859030948625022627400428764197988219351122923584131519169508784610160584616915507984667392686670162447636103030879004820632782722645278769596394739442063833519286187613336063049079165271704798516550955277987349072422941665311353128053894506580275699432206237896337694784896000039373008558481473706272982222152067681968280895100462386728650573988464504969537957630079235808904898327813057679481795725083137332544241232025051722520386898039515844988849527865637711889832312769027191406678796635040369801074868284246561344588991532518866559138654549184701223858465964157269338868268191004145393069465467499745057502033823516233760109954130047417513223320861732823732563201175480059926929771510029732084437967457306809570556735569792050291977558767865907917754358099342466920528376010933297993154819894662850356300760259977825777848617663246842793281560907005895443640268506311392665311151344607762998141674041632715587522680249464904497097061111196008724190604352330942671665764965390860336197263576007636270671311650936354822822941664313715957135006580388530655702089513217898975374946164067191504367860080610218604536019041095277180863588954865262981835715432078880233102246807705205331986266561154829024986243916326463135578813363585915259528231172310118352129268627550852472807726629837828481575534006627742400877658080314418186524178197349244794855064676410551203418976959589698097997661867455031275966744352109788748849558225100837327185720344428135539337894557866109152331126144693533567186640680314061648747374272907114595775505571265722358918684057103219309281761469854450194348856119601628565236100404424557762961342963120336674599783797321726866897274929135919173688470237303469061165273117331766556672830715318436846556280734287466272978938604022169833822818302727802516089935252814457475325626485341893842850446718971655041901113601556050181672375887502195987708689010381938257685997692174470850813730656803977060076166258197340739945306061423087062532913925250142668106022151038999653657864905293015812131237451486669247356777277064807338727576784616732600779127169027679897733558264920033314125254194312909654695391192858244453174929214402463029899096288274753886311448237363069001875201515468827419978261174059232324407372734306610675399115571165795552532518561932672688544790740359003019614691610555517422399928829831391186486687358499332665773953729460935314747840653140291495912088979471003118765430029138096282714112967718453605487203358660240776822636280153696759782205958462005966000597441562402151591893531014478511041931983268455025133684274464711130705293137508300187796199835357617095853991282379119357094575000624443873430216574464008308052582164285422145347423615365940673011791053854357898322666282151737755073187006276621860132417737627947023157670347741437256790998521614200199103044131160395186809746463412544090807916991032495939932962553590975670032833434690959295696407500189608310167558452864763822995342525563689579081390399732008627658481291505142828804767905603738667394909866357028454900513006664122824901274821875655205650915574126500981795024536389179454200813919490539320876947108404952742104704130953894458611853708065975673765672635900555444670912687594785775038605810625585124013163785476557395396770592674935297278267482860059104835898337259610324986230938977843936004649774719016905481761450952372290868278959415155746627122389230579691741330866130961173071966258694363211180865444307452699261889154247790439422980355948493813426219246245776081434634544830529167242608720410695310599142332958331657960859504049435060803171035226818589790784121231481217884392848860355845662597279688096787394461581711096321373270628204737754327068419597895743662884286494947618528390516057836381186712794796307300453575024969163180995724445425205813512369163794434164063970071841230799119092993437649004312964927786036387815808294149838722971251702919214930700703845664003430766742592623415452124192801380359989828901510397008577176478683228725877717434838610266829907597259634037136650730797474775686526377463177316768379869505835100223200781842645280164897070561035533937518507229534796118141177704288203972873598569650093690503171444476361857834546277858990077497293393468436303997251926086034315164831647408540040635546055474649056203736815874402920122387091018794802727886365602527742556097729025250803846450659283046912651799691998599983188136073646176993371487863901825829980400042173239321546479741157757849912611927076228445584342747327686660167621067774994096604623822689744417081451606987112286504728264262548113732058190856468149247143217442870844387486518626512044453263567936671199542903061096816993043108712115898177433817532984466592339498070525427866444622188633919359914864941284012888403623317855717439791592516639738781163478423478894223155884363712416915045829596537936316156445634415261920916965595532655224570422468343508531902799283921756901575599475326615496021879610370827828976671182498489827986258010755207306255850406242736288259787478413427405804769324803499365292272229228970349653553251056925946926588271231436120068909065305099190534888396776442723431568437835569657527298472298057679327322305552605080713312564811598141234311942641592445319758848502033752311838133521608781925421272419741166656473354920095909710671817660093314335101606769587205883544883288140261410210757443797823348883109209473606790705990130551678692756057630144153010249624376156713035905367131621105079224275202110636373324787347631643567497026286946779483543595268034145611974845252600534134100705655962770828540986012940823532640141710266486416688409460514194120046759167100711716444254178337533614927129968872335871320711745776596831265471265465219533864921898505311824667945423388006180555776324548782049941134053094547796623803426755354636010619075449174531021984602935978324152073095915141577793325422876771878767914222459230987948624482806677109357468583396037981822111136476353696990429825823154687993513527947126743982242559925105158245746725941169026698206268183855862406042741062710397261485621750515272154635933775021253796617736231825035584708644698280220524822770218516281375190734591963564191315981031092370666057001500427829447383754744944281300706499808365184266481993137839464752978195657786230195346577196560645610972178830443364620131673960441117008987178064538927942983194569072294297490260797956709824957498277851006974221073780898857865012784271918760944602811035725509176069183232052420135249628601063290375743685296901130789296752763633145169590448249258247938413275847690434940419667291632146081588291901280894423678246232917546737537420620314473435149021647885642905311960963863860194865495124472172440677994901527314065930061587160512604953924627509689893889365990873644434666041744096774808868099113500838183659744424217515831490659481735354056312316899964510558480155851514216703130769279138575684652448720590326303134392244672723814681635341831211073453803182235864940783491196959219280378925408950736470842923203401929395421014620657631149784106715298371906559128823073292443015930185497923959083077419020213479399201880111269407781078866552642265724946741271237826636649936020961256882046057720970136019745761695822300028725242306708215628974760869405660958582776202089688957418983813079125044461130897839970519248846603785582559490043384746558561670933401066983826861831518127395670515583298541955884944240763165795561823968909028207978642283585671370075461500576703915052838099534497081902251937160648217964326916467181603725608109989427387007352686421846340552833251899098492828946228634731901145378936033747932118236844067381015218447704878661747827447438161766426321322412484464793075487048079655430454949274203751079009702234504324828191976554389496859180463429312644282222997558912911979339440472096908870188329315789051865816621235021650941325929774606773613942872179153250809151915155019045063281033015753805172475474432754139499361569885378058086862614357417609231534998781235004560608531075247369976080056977097554687449586710665736098448799965967637916243688009342783417652975384237705025326048546247971047195310974801759648590872218905225029290898946245961860282147691408369093724427713291612175995525332323695021665668837571555742205490089353102856630681406770145057374006606085392500448211467258958237424140298208456166785618097866053931620615711855479693726053907303848642390973138774288079607733133790187853134880340707239030419384493767203398083437028496353634992537835311596317416750793827956962975710750775105204107326759493013411194935620943296849211430122397554902564190495563281931697114548623337889527089498916850623614805391285618477963643923685537397384203436985319566167141307719205159935157411367379210777728662266220556242812931172316964337458362906869639269998222944391037503141845424581891140357183830380751716283750415906874564389127812007947870454478162594344330664467344131399775956545126762588102995174697023024812512878166488935082330391823956673921293987278123623861642878394465227252118420515574640625351724231791591442226553586365440617572746915216469460926655565277601822545812705708954619310779469860496964495898186564869549689390346171121564263579653637592905077529060165712984709964893676683274164513935910262771974447619913010806944006093442540966320775037702895853823461853884054986819750639592750680344687738440874828294380328294071547001924014956320323535959559736637284717290714182284414877582947532734385138123595396574369274978527848553618055856758911792082407898235678098555060317784172418474527105189904858681655159833931552578159839552570625230346569637533848334174483654578326305135279684745194773435267965693336412594923472967548300761214980863041066234979191748744478989759446104487915510094917643168883610010282038184736602402838224020296419846520531956737392062881408716597198075084918753732400128635196512599791436782204710979250265068923066596546862963370310501715007412736273237105523536286981087463021265235126011713794892508332942866685756883875350064901491751711238203978559275535290524835065106407675066149357564462027580995321651900939737245474014126334530064836024912743129081004768286411507931227432067665562959627085375287665641017820960724957941636680005109949375971819638044484640443160750427998630862784341062602509124413348450912347382050812090097042585801959674781907924748147666212207674046882196617027812563599880110035246418324494932087330405016968782335789850944411960106227195390136042559161282717648150677873449998994601242978631501966653483942478695710878264050103134304715873856431885038240347290978781924992150166126922614812731970775200772770981116892555530140164445885352522591760537229394094608314079504686283423629612216702588530149158090566832624607811751958083777968885752688369470901583243675296361098718573431043443285436565354251096493311212488153008247274927179523577519979571555935795391000557359619963896417000888963035234976290085305625997962250554479531205986594932078289296403905367659132183100562242951124884205065295156520646912408026479838316899087650569167713645360704396702465396369874845951071293122709485804319751194913022872945830098061403165665015474615859467138454371671873843059546813953261896122002963407829181241032456011782199046279636984799410442955862709742063963651801999054548406267521593351355697015021323966578343102310730043382999357513835355820381469286509177164694269351463501872572317964306570682314811787796555523177851367306489555453332040776643552758486712061953380333552600825475563452305438435936547035457032659098862907827743557181188767220259923806100854889423421219048399800237805667882531693480818578607426671941003072832406132458841025408478138677774085994338764626607247291202323346286802494858001744545677996960168120910537523447169385610337261228403383243531748153206466658332997795834426882431060565796365958142649554355179107201752444728405400741353807369042393835469570074640716385367468556610309409781347040574429816072996247393109242929162613546088397551085113126978559623727781296371177451062946544462870746898473314482782306603951825572199852098146681625017784462824731418123897526726286099986526797149965839412852856118996387023114888695143730212358532588017454241157744855520106370882287456668313856624295210034557647824638357016578359027659803857958969923222139684986924693735612558096207086289668581819877642990623946669982185595209392905084623151958979934180448995582609736646810273506347338466858286865379893555772933708966228758887123642999124932495347703980594060748961589231160278140316215924130102872552959114504487092521729252208577267282149905631024507336624384807685484927444061039907026987064993312496749229201015572916742301504926208802864167605462805320003275502173423745992212148501430142290609591435051029406149765119619178290465041772582528579448414157782794688349322547920245839041349025415652622361486170042955397084661331215281289488174949061536157432427482340592907253417738876264532493272462832991400805026645274977666061405817649206891626034478958574736225369300118388876557691998649352306407695610215031361171883964401540618401649693004604718787569231376069889228909354803958414932430979086993070109132083246930837585958578692109620039374357800016196794344882306257894027003176430210641700623559558304056697421855406221780146417778458779648684529887915981345840383554924064909561301568555615078555974290557739946479163822668167532751444897764672954108832700570531314217827284819072331803502656109028155007100137315008401527124131327594901837834857182877360849449808682543174184357611097214195641889779393959125383934554551660393938072984403426103575429533797887902166352138419611533433888110931785261074202867460757576924804838010096312567710275681725379046774098997239728170978281995206180875681111740195279404135688970033752184266403817538479822658029823931168684534950449322832643691199067049300031042930612706716427130840981659170970300118618292985422388526880735740976060998109946604118109869265957985593308294037537483865056178372350634560458655321359087059383079988565219410221164228797879088819367746352430902206997299688453833480081297390907314686457253628642013023085073106168847653958078994940289940926404237242973247898152495861062901367782441258735117489872675719343985315967163000069096345334054761129050817995903609006925240899747991893950939992697797040176218267837068444582304935527992390423663194424401805047422779965970863984219512612165754329869092278359613260719015898298501257351721706639961677228009942323096872063281141621953149060205728490116384187013977492298600521182792250771360689709158623802234410756015098887966085161845443378294265542054981994285303817562113494536607047184033143226483523562761417848302338349745231326932809829128132508764159297643618170982449710304783786761262713281374796634784014899483293088129648680757024822719368290254125700009842175606519201359919202237597755165041829172991852852345507676054344359213575492429627289175342115297444315412475370710660355513385785010206660906132016004705551448916889371835854483159753266160827700923812934642491665747877478789976235406579282283638801794871712218865869149081610591855425519506632418614758620400650267133487425951421199184922576180096712912455104305339427915383478377076804257283257211217761536787110572157150042794544057936842015214622736977921425941305691121420839090096644798706485412989630128345767333836102454075363558250184342161051446518253831473573198709257864227573199245544695013218052171372422252735568423386793944926402862118774000869274509419044965662682920825158716984864294301275953467454684012394881340950429899738833652783202883736894961492998691921307161379991809208610812661624264244725791285953275008333034817546143785254161065143597131937463821019047779557774746215670488837009887405138031230452322549661416834256846430834652607622145211467274246414175889832704232687222785490734509558571272760827286927159823807185741484845566963770693610623512391964468088135444136343436972000695025971385721056900317958948411489626750812241343559235116025700412682384822787081587056404127904658354249251997128130855457259400592538790722111891330982957202621246945966923774475076924204704428497744034010052061198507173736090495681911479108499817618979611571739283696361653102282228178525878027592292869711161217342420668841683125445651870125093947945017565495622369577180010804047078512757909835338559961385988825620448079649377842055877551259036318893842661150693759347543520615878194218932358311342293012128795606243246849335276058322560408957020085521015802776821204472803880343503098747779920372161591151344849207005524289445490081669656205803373707677957209495541522810768233103662016759546867465873898218025854332617825182182784060096990775736566374578351336675057684263813556040283479130172628029715178646792096877028491281949441249287174968970953663281612948875571045956530843529016074616652152168719201768594124875335311685085107815473771194788729142337785206647275578661884723752879637325444696875819096685416283541324889623677072953839751254295816092066633489584041835401696101594824165083889909575782073879164006877861312264386925064509963657844990121143850324500008923932888795198203565974694087418434265974772664190816431308064005134046581202625786427198481748811654372924454490430343502384187761806051577863870978155699828239438732613945893526494589151987620191879359617001232211841852394630958074465919215260807345213081249250416571592968301871832059942585953365193081000445067329236553354116729199589192448688325388860472862465365890836584972781329226229040681025485405736244361424437422784781522398898806746814689771003204293874099654687797393242007477342951229526954884262765931362342634669839496873168631856362637909647525789953675159092158207206194014180348467662522654929571523782166207386144975786804128520821754313882874429119894398924422010920038702667879938781048612309057664341288533336484349853132048625351704533511505565545793327611307121342908258380036763390819735549621244334072646671337982399024565879635127272846691124800659862878267281348735057636809572089389276312151621055333644078951519759711833437114629212658904258615054026330265714183388507875938426507116396070684695070086250631217034094929258385033862145097510787639291525367921529076396239252112146546837279627068737774400707427529962784939512190570834058160990220535403784638512914517658008188653972501393639986245297405466870074026341282694178205273413064138755072961514700464934330921726723866728498401642427692073841463293734901744123289950202016329579034476855819033430739518732633776420980689297963535064173253482793728918891220621777221175997799433489922920143213439401617762843758512630919670439325333280058125007166055761844999762223706130349373763811379055914165329985373036072445189047606528854455436641180718327702897196518629450852337172464039243517665542214455555309441755572511560391643565224171435004674131932532041718762239785401430923551764221397512226171473289648850101470296145457660077685011083020645211869442685620937906455289899546728214186336971214821827889318561673199322901954980052786131777208548318286695346943833103848248309707658774795239887170334706961170199251307501509520930725670612609659398257570988194843769286679451635053181479093486834889202524163451590097387491562493639196473857685294688548155243235040447925208815358510770738079340705653455168496106941776726331682559739006221910576919192314490450765107493464947669734137250952665704097012255234485269647639772688271961396041927015235887708663295759012286148583728022412670629370695366169872616922449524862012424127266748527722166435361975800688943566298452017761828001023050852039228292354829236698140148092228380536420456579737627154380228732201684800647579688194579870564574390304975716425963621964723546427316526833717436967260735604988131912504821397648942251152521465680720295963220771602636147143239224905864381230974241654518349635025996514774063570798222225256891770109776301785447613650014352116919691315088917765031249179332863779992794163463524868643197538705596524411192106293000508789411580251472252519049357211596831419286429584630125289050762398674859753605781762747711097016529905292824220273740582084624297981921853754724743718140620107890983454117386351728758198436741724504804561446739873810390138533142790669285938756210988267807945254745724074726813719589675531547991731998211381503098658805491980712024910376661857436112002981146490001421416848788423749953622637919805760478258161396869136640997831599335328295523535997209579981185560428279722441320915187350780117638221419104344547762462609182439628166328819790863518848558294857218774047741795060443692447555319041790243111557316910838603852210687411495684653690542095559725790441457078112545593809462656478676750763878210476929304673519110653320758305483970443104727361207970399850804701991276463105561936000656885995804442144653950690716971401420392720588213469487062260553285892064354319508767008150955806039218386670174385131652948523164826573108476897394816492116174651230107322089523879616823592862099676593058770249688598824172419450519125574014489969577506782842186729863728079325942422471642700833676365270970138822901998205034105782431565775570519963337243420567965376510222832286557764763506854607880594510927736035142343851780631855795709170605727723344067469987073630209098501077148099042609560016183626248948975415871292105189251512210388558596809476529281835054139272314321611865316505369503842430257647770761275045656200255384158421500787608575187795508105330540479983167795327324335879612755119807527053475943592296100268394958236061714490435448858435628055524102711790508402737868478123300393268290715692000239934930969542866919340322267101727025851517622182095448401872404217069894017657358264598522877322250271037580068954623645808661983397090247084250137652333954796661539132741341061383532156771865762182063555514906448472957954267006922654463102972530345020885539603788126253220618024243802687855344489637749388855655511966219984625600461736371603505626644165698478191901947326030755741718619988820822097657087181521302920717592132801440794705641424573153491968379633262595309122452038832315209545159692148594592872741122844148038778464568438281517806094070345949813037468616177905381295603651622048226604475318023436582942706744386820092499923130179540024937241863344563052132978732427537080732025564688990783903636728212355971552748723076071443914355189754531296451964294745273821953333358562815915229783241450914666443052722609324175732269142056911019775598658264276831929696690517290979915396706460599765771386630735095950801138131227267369551570652339403983289289763377950957594684420477373544411661977355486619845233255283060218392574807560698112330603231266471051562641930385461108438061336565013687143593122901850002866535627316862307459333480810593607753700370130725492114287835431349665946876846731520320516183153857727067382502679801915354050183687658963290729411490541732391094928520994082507384539490204080544205952701627543686180461593572980484714008181463059382278689828030917981495364936396488638369500479224207363784339454785661459817904551906142863595570056678844742142531400669776082065168541440969322947017193143464346034214441942722469036621586369312110073088534903425243854087269515130188675616831890182359261233819405817079008114728644138575656936092890405483904762666860216548235203851095194159357793201130295258743064874220672091425953582403217712309647581035498574872289923545803268624912268166642994568192917022758284669533571987764202484224186906380702022664513343943514333139412734061528647616323603131403294369000386040959487276555679250530475484291239620935108993615227369108094108514157574371846559294827606284430677026640788848513770549213781452652844205008323869051034060709278091154588754622619014739965483272053075342133293799391414641637433458703637715797764650405252882818123655991469802646103060470233821931992204015761049094153873686611513230386054697931512695578443442108486145048849813949592418941287801599706457299023461385090377173118715955082407201570386999889137466648248140896318971729419672078856109834613046123792792063727534913178505440680627907146219055367552916305986507056628636538929845675729689778986280318758524921783481477031534431352068254094762334849847367760106962811316638859896551396295011238273923521211047398452607163690346122259316522457656260775956629785949167957879128549975772922330384194918299152413867870023735001030470812489886320770158935881012015086857661426871409120476087915356773636955794365642616641763552663386593890431324464947540739898494627848015458432486748297849873067898196521349898061787217461039645697165108846014950754894472740133044751295361625656974415739708240520476870183589930835153792319384971994860249927042858023740202014187054667239549926082348209094165370965423528020061611174090789211739418942264398329757309859429948666434014485455651826487033358059332453051819991997031534693518086467593147373506824821954339268061803121445013554913530808526932225741783690596626791830155322467799435186251734506162558897323645896446021813835649769119198544552142641884993010951263403699210298900455480384887800553705765124829012163502411005631573487124788813465199283985337431656094696933317144946026106024517076235719200116998385524102712012420408754096593630410557292908875121723824738811130385129328043055497345720222134940264029119111031920280658456165366491437404070570209280020741364616259435553611603287634473675720531976729603717110115251302909596441653805579751953326985521791314931610592632855030909445800477700755515337757024161812427024970199020142918412010853503827522808390482826532426975152532803937675572228939825307583202692861281305216083474667380034278317631593876126888033732468434402310904786261259560588248514922048488654017117566152639234605044353490540520501354743135561669535680512442802887379207757459282113994770034291253479688409141829876905716662295044362006501953706944136158278243238512746174432300417089460869883130502621580682848940969294019799894433619662641985532259527253123173623548499880470583167842280715970974594913177109954848187615906683001942059233293781440226218547690464730067493358460553257293419489488596422160796797303279054436027048157175952273134141140271071232173865400117134168432745398722820717918165115155264667110888091011895020769610634594955921963157954483004226449514969754029006679474194179151695222338888481210030167421887116331490914319713771986302872612917975973181147415321983005679344518180472798787910430017499994148755740326884455857008630903204224039694443824931152017528853298011317927288516111470697318147786085575238955959865090560879984709578351606608140323295050100504318912484496126395352700789152683628291732530019862820620866197896129806681786040414336918359201515017175868111770517979820572774764742107843474236264584772558135316226252626454403342345181602132758481892525699415473546780182760234899205917033434325579120646341848175706333052155430997922448096139471101882404655603828818213003348940628219267671479255014325519989438952578245202654346409030269452742577025626609545917092041998003262011740945842986153311213315396063595903949995973701297923104136536885776087260960192820467931078246329132145703119565759960176479188465372440399173350301504401311630232933629653649207142989522693670245425540567165930383868411806140408544528561770044977675497491373041115823705506188567221552591213268853814783074264822610605498741976318151860636032536927679783116217203348944226266142224090486677898852705903069544991756297056423953000209948052546427312371133474291306321354735940704112557999355272600735345333836097355805280469587383307825523991160686755783426356346338402845927885006766298378154771992803350440053628201863445122285511740074661714199703973823988543482584906891818676542838350216461911364575554522894858718794915154005563560123114754095460016026927209824314882904951805673584034441980735222167026106146234830890740649860387149987126848194358885013528247240775191657284570790615235761024821311056815893206591412577971657199815840047186664183287983971418550635360018412024048128478480968860115928952590633484924788746336196549086661358843329759543606577956250772958459136368069329038876369394798332850807774565011027465795732263080804456267610506426365636364975403479887003591644433827207496057954521855430095449493752970103349275932646055150190431625026528067087579151495803020550488594778181510186573079377681060388168167414302221304531002781112041549502349921619994208047885566624906657976306153827087142904328631199638051272125300221366366551863901154502366774784548094387132079819496964761726707976819247516805617306939323343079077434440099882853596861587785162154399052686480358950983911066644512596225683123505558131461254018263806559741608991637815597484564285553602678188542812382126007559876820173345111241449053516326223177656063795415336938916797734054848905087215925586096830334265360584556307993416864304937980698287683279604381112653115777857523074836215688098913271822016221319075495113390994280725828484676368951827742869523509828005154739746084484807890784672399088697058871160928844895661082153553567954281005596226704392875435271461372882444205186615727939403269303765819541379327399896876812042302407740686429783893538905684543324694860924108417403033523686589278692752029836516023816186003146725694634138181566607268868633978650744007722292427791912676386158314024041855872002779742756932746281428074879533877331500126752384612129282166200274672247446538548627336829430289338854646664495976132688881191388193560208103199343061795807804593553531354051074183493922982901039341219281318705564092204471096115948999459916049648940469282526733526933161355462914884676614050431665468977747300431288897118114120340557339218710039703436879281885309856486716360543947064458072862999208075446406808352342224191472619979201340486333630989719114570584640531468427158082389453897418822441545437627035733548868082335968674446025907317769858170821128710762773471383718023977943275556953309508156466354209550282637938973326687834456742515191289719951753890184996656663481634378791059069554628926185366998288433327426451421001506053346479352868285353705710734654736299887630771966678788690826053470057092636308845848674854171115047820928227268439414679599556434530764238474903572794285020132695677907810167411848621295909167288515310243668848708752824554525378891896755980810998918790831325157971890056417615914670720706655139984941292495773483385754492088980196573705899724550089385826404445204355738983264687084154663459130111313841166924576894871343309024909250509659200938847158425879144122908123434244969668698685757338676148299076387419209303770081104843284170940010043813690201932837972748917555022150576660892152566178622109059315428110991404719777011747466282257499617987983974786912627216851606500770934820062071934228003132035052233822863127845248275143947691817028878118787478577108849891604081651255923173482824126460285410250691527696750030420783073969918724417022184674085281953478993912594029709090981648866745146892964623527281127731824476098958060259274954874914028606265725859626140026875556271437337447890329476348355101932213733413436457257014005885472809099161877091597276497450841958090433263819080636419563176923767747475059910599010942650410644109609984714530645267833620812272658731413334189562516038622488280469005264477585518435031103524893632476497382660716800237258454754527943667710503948618306228730236372400352530923393965504606966008755627487631296406091318126901334582434370875353721240236726048762392799271611958564423882856092134419543093930868860003790583914981345896499258997036466697142073209034916520693804716673310631632747014736054673742308112860159442936412314836611456058139784739203954640196156944749422072510363916924639089164916427087609524840524584693851806534678167829561969275809594979509104701786906864193111941053199507437563159514460355622825713100675724068180556510927524589226626956390743935007031112311374745207161733976071920700983679900688017885257524261052070932671439302387775805447818921674554704145690904820800871409300244625853394899221533938232618094587333629633797999728194378333393512199072184639703148046857347445628201410863835812009654585343016554164077128899430812414593167313701119436383775189953073708384945279435627791295188496504333978945703606329213284165040135599361530184523365763350944739181656836494989385826823906172484127363643454440317545247761746434031915765147165368378975673352021379308497224071115375347839179320519760184934850266606032547224617966318334923217775996522248768848218098855020390153061617077613450856622846840744150687516870793278666702815511249756187001696844090835683821057602449332198226711666145530426899019967098379975400526395617785008997826743460455915961639188868366162013005556570499681397621740862745338507136315681805382166089194843080062300561284855506899891663449468293126149798296885631041403535220202033521849679235788353776903997342906421417805045263698755136372435487753633810446952737726287999347076279618978477329767867099166545057725223014951907743219449415174805460712124100450467499115612818027877472019041785903455220236240759841598708857768467744850945335858768317416835707668137923596188761357707413821631455724175060039890941486256341397870947557575016021764402065572393936678896607166121136151360501214985788616429806796538487970727260437988692390069704880603995923782710045966501996172629974962689736131457815758643282255767875144287197935001962114414387738268141019311535653802292698772654590044088804663736592332597762132943808597210143114496665834003480124854220514260711370233773187174383321150661443261152595827963978434313630843682474692974621020399560641448654383152866290082085193687376057021555036507844675435966887158455098965732451604727361210476672776380686191173353189612348598627928638646326667762948690495130065526593883407253496412134727014735831812659900671290484029476431132519599079472713281701574761540894373706154328164450092862043425030196802613764326540555513176267734877806500736907272119060637723309616236094460618241397752634236582558327194928532662082923245059501554660454341700857438522466612340839262624662918012884447280864391009462993834368345107934708728011911651948255313832896838816408948660156320833203340235026797740944229567451256875694870177054341777957660218111616450046375376426289249534014317982072410141295489024108375581704112319344746472725527221367675247718891539488371745533004355671936559693397397754808239517696569027529641906687285552280391875448428786268484227441055740279688101198900069952348778152350080004955294964722757741599075281869022204067184210157656490970849366742599329973465790912054565323194009939425526036356361453594733037901282513070987097396398647888871981825922876461400044648271935701412589261714712551696759345648550224633722891799217583755064629994047533016837352377916121187806791536818702710440777222930796539550834099841454436480336697790732192818631645557808601401916875987227731343843358754479235747273900282349783122685778480338831119993382934845189786829125835517912949198957161058782848445019583015599568264411652842392293198611462297563865590451611135164590763837375593784026845066267039575228523853521244443403463377729956786513910121392288689614028638783906999682365778084696727850604227645208975851008293186598730043914038967102770389649729536107164415747922421008461974293167948901411843678674524601751768311385806928851610782876591737655210943181625939742324330031018307410603803877654236800689961410479434687597124570403218641196784784688475662977385038439300421179860034946262050259549688017089566848041282672207039958186991133119775628780892219866933046790275460838632543855924500034949837404510436345013190534305734800928832229275739246396173509649942582582506236288169632884007531564783999493814693194545846926357435605382935202946847137775737862910917002788287893437652775692215622146314909053733085112173280980449215601406584353994649419609697077451483510552895480200389614020360511962717735436773189236141103727220399791014021599358313213544057046240646478852547491636148327279859673054349827463299768828543752453960350983696685012231223685722800206834549902940939437396306910566859577379750436083055369607553781955274949702729777934240205806579552206106231681131591849200193057749807305474120850785515471328823893670397859138083118159929283992290168236882500725708676639000646706139644813402534655254050143760138304135101536097066202299864620936649374288625354004253368063439140099763774439647273671858545001308949099336646532909095295663579868827222570044448800304986830889583845008247718735156444429540754533726355750169109996985709825015972644896008325406661605638566391849940124558039976200574033997494494001962406852221314091969698584454477295959772958019137543885746881254374689491368094693653796977260926815850691993864327978971716261446824266260837693786343772647747283579135891761517864472583410203563978342666137224559131983113481571293092630386795301838950695581647099188965298167974526413749530732831252311602762017617771487413382895770782301737376145267462939937334543778837156410967496354449691041078264068773146920009875992526431575931886979751719736579649265506181812135496668292673308130712877585619038437771824029817508009050995162969375334319276889294855391741801529491428684340392197425749872464600697798969807448184844275264021242524581726801582310452684961249854647164582545444262777813756781655851761562872713918039583796485658391956126008996876161892576709836968095501674649444085037057594560376350805106261959824401216773532627988654760938215131902602837811132727250050120505084407383730165108471396537575084059934457156559651943228218702728774186916253391092345737612426996493407409959615699666270071011160379396070710008045051372949551280820600672337944972189893549778367179362582884580824003047007132830118325091973599663839317520461909997734938448019296212040547716795763181943528782448347045111941917612783178180712814231929504548795338150695844307721254165709750406396894312486953842139369297662667292170425092986662105066948071567573657766922305985737883541238192892401242754798595473185871192257371151074060147437711004595602874719817667101013047861382078164655459216899666479040488956954956978018176358951088131546805475774939222171282458677382965163767357396911914692487325521497859437158525900476646675582093881237972474560866579367797842980172594067274047290274067876829341583958241294895695572688842456083052177768604745782521338377305283436961971199031987120170349826435621615273634494728950399414046787819651017887557499732641635170861692100341917397064892036603838864066984657787103271424770296651201222902836772445851949929587803684270946137292733128502057058176548148342641985008963172573173473199752384230612410004043336299470470413200316525092255506231959118325744557060802947404562809759305328941064945761046681530050267331383896485102254780420460476565655429830887132907709131964677960236377521941835393387627753220698976839272046066463954058446190933608844252666229849106156535768128507647713225009755523381396968859841401182776777247272693065637018089112855017388659509549092087236582669769139128052785193623385745272623904185113242193297388556200766806131105730635386329348958104280207940343766187252681831648367443070514516433079784207886549929246069811153190917413637472193978787467516407108663268237944435536787107647776774728655553334744179983371690748220484715174982741458619208492568733320399851801385490219039728484851923066311029633215818775518916957825350788790647437919892130627825916354742653527793629730947556347961850490771252520020433806717255095610639266753939836845199970149955854841125266232954196726003797392803496395499996550293040621724971019180799812246517985140866620766047117317315887545769891261598591880021737385850301784134798064043642023887704232713513295884677668277961672075385648582505506959588725210106771535490278584126580090655237250793632876722436044079758964005228843046832499930297226715294235721158398791245270977034066226156078913297994659527596302863154313904861070427090363864010144681515715732560543547095756285293589348226882696727416050005439419242018291191462101911587940679126380382616469077448886654550756136371997234708032764606148613062172504941051208038100358049004331452047929419684998678604065418074450941670192671960116461394418194532348278049854444793821061764422469704959261824675867066399102324479104817730281470054741420261060807148711535318374363542447367157344639692494422887817590134479175617324992234990631897102230631001080062085465161644711132122752640817934925441675499810776440390351215430045604918090018433902252925497683771799068668572778353733366023990210049232573016209279348003219935197630456145783698464867590211739341192685719805373405940117789263293661969675333998344776011608744135127327954355507244734802576117772037915735354357379213023309066281176045850468623239699126349803996569079174951028614590868131112871669570826716862915111154095497005056365485718439742105656064031142785071707517254520423580739443108874072530949496093755528071987288806706720408734606571905373453194578853259507785546307967178258289296715551857415795568419356133603884630053604262761120792745615996324574860990113219395943192584051567796998955415993052266700609016760925865298021512085149259344973454735010152546500477535470776746486795656691444778830342378649887948741509881062848854069504373200888391551267195481093055799564118251041508714309575023499367444044357250141234123921761715868270611514111667902790395265877710223051190452742316281691578423647058271567748109279026693726790192716839429852801553172248866207095565542791242548880272371515649627403933014309587965372431237048025059647831473756264506458252405477311254377099979335212610348970752393005861358060056751947353165650551180805666359384171477903411255083128272185404671390744355056592597427047748208567646832241173665519551050242157904859176524404476232012742864681511105429444467930464016355188274624182681922201199168288293625419651895766205877960155826192477078563033222706301850984704871772987653762770970650498123113243233846697646608596980971231290828158331110463356392265952235418451936189762774062131687748020262249862972875735869143739145439998345069012625620459847172469425995661646424866323656409866773312738667564033332539566271732725659708141421417454199089504801285687824399556600922558020733927204122384327193200027064500318964761195139783524256946076212643556876995348304655998711624727250564200884828673363705248351762008218910305007008931665502134027380739719314543001572236601541150435518561583936487582761036291936138734366532532838263353102002934627921757215759011144172698533720933702068834707976508273504551617727461195646756768326385240625733333755382496890304459357304370142216912232588221475714823103767578317439852673604899794052923080104498282087215479829034328987053340577981425123747574717246091106800110912970208831181667186435770808885765680969684535045069377203291096026734463144533635319052750870161411364950031503276267933037215094637392369956719494706260951586311171551337846789557134948763185367832717438987003851979895181534484766761690701314507295255847116126751138403612075569870040077007464408822305135918608156187219189832711686585835186430560996530664713026037731506921351421020308403699833218107919756687176924489684397035867034856504779948657381196670551728612868682193542961296703948129725676804761133716449157159171384824212667473610339455944590875183997772163150027369184644677778249917564830805538202991719228739367601506561470238506735017690401874025046563326409554699796037692498845347302333394788368421879519120139964260637785473907388573649096089538470292502129474110826144756277421073899681864475228078968306511386122794428931486963912470159238309521128057432100436399306212510352003110297646298459393018149091521308599039466501670586409480447631919434337959123101039797400907760277050670085652482031625553819295042890645191622842899097327907338755320214245373570305524678189445380892779849780863714982136906832707201840690842413084203744656197160665353571147322100723495555926238382461008268495337706349815184039381873840262176171400652924848098927741007652119848186846455502181793074563197988873205185955652424774924446942589670903530849038285720239728292487942652818914519258916535900528635433799731381866221592481155891068138024517150167265809196790590216217967790419028463829499998668043913489044465938312833081061825027526722903086465580841327263113021576074826013063630458669432980737651912624837953855185801560990999166443364904611015235133137490916000633238718520358902490529794196764843000728167720777504279429395596860868604986018112728699762385112995254229046378508289934543999892019258549466741458591789113932325510577949705542728463042379417907461751771960544751217263301549347652522072932453237789765088504909706423001819746226675044710125983283140460962084027858327982633658509965740520564421504274165092788381805807238334834435935236847769022284200135978471980647061014181000103036651719805973824245265266632266186570572889939150030223948816168470627108124266587997465299706260682244886602219749962118532503443432373697387647615863013617839281102930768016778598901709218158344820094821740138737422032511380201793596799787790825399170548754035929075917363993370329522142401060129147089618728993445810644474305570325103007298499842394521795991850754930474810432372880842345263376837840227505196820784186317935125213030635127462969080092511504617735345567648163057609895580810640648464898619719164804977157259979575860299296267309275422523127218614206326082632124600404589252526052984693596393814783673472778557158884171951210751488556096333161663918099391460674867254318100919540853787269005544780591881385368013816148488686680433059241974443223014518064165580145212739673839079735611562396274638157818653946092386423250471855239373361138257731992451303783984779989060065633266719734373929811354120291943905092905696315002280489767280875241873041816750803010677804840755822190128929958150518381861278440089001702697674885980610485818594701342190555188382667312955064669740318654797349612386989277410986617122405347088527859244424350455604785625715305232854584937772243032231846906703902282501563093614412188168771208467130982797861210628395087426129529281472204413482992755949487229268044103788715450267775050915134005571785614429401012425973156184182923078362753765631362148135861625359678425355303347678436158013014154674923957443307329130203515319793805615016209187737763437963708499232941942576242456124174887578754606968852726908152114589848124201744113622487176601289606171356337775882929350889089914576003901478372091955305757274731659624270426877853142387300216551948316691625506635731004842476827731003667869270145881003403443417745590192107439912877476299916781267371852542752779971064195791052705096834705830457938344526952099926136965965915543717812097595191988205493571853200709708350375955150702394855454155561259550383035307408456496955340911152811254758175476365297778929163603287693720100952549642138518402312297692727921292061417850084662459326638765997778393178724711567810953581214765318169714374550489280836272517355903456356388142865957571224072988245232163766345256264442744134290629610305571263392871092999067220213122413709363619760638291856985492260987835413500994069786223772738309904074127178969284336310813857827169758076035820914110547598878687167477990582537085655895714560575470027074661231096085696052373959256795689209902046477052285233542382609152353616715668071093422742964348302646836559556976873402797000778194333097371410356444716088612101546869663958143076911040164560004742627720212246975685888512966839725600442226781781673377364568856387711130951257354484483803644245949238748684049635613180475853988935337007865280765716913945238358543410014541789990079688233818653798331095664449897482961055757705321343382747851988078650122177207251557485128522906828042484332366647249327685500258446283225801963317441546677890124793555516385083166065394117413949679287908124705877370881001808878145691093164840918742643706137624466977438463935568242945288587194514722078440454273186328998442654511776358227689723265988903346935013610919115124204280699030073795228809018963567447583822582851033648449340809567753394309376809545727630747378146159071024947565060890658346664244196706813065937472149561071237710738806819068378685808975762324147855174793024356290466826544026872541791179783680604697550614828557666839036755117303406251886594096746610287504966404571210349265220120919778551629546912081018252051555972484751185461605946137940197388822350845902317416219601123074143277990482202051461249066606900001854483684123398061246601297794548829733073653580189744681858309258164784832471185780727402326395954676699900098216726354390704087005187704595156444600185257167937232591016034025848911538146726644206916620680917574586711037913985337070396451645949706162312716039720763666283974151343918504229086321395616589714941041799560928374419824642955407555360425475309421090130803416348355179570853437496806440030080192715723940071292858063462448804322164945489941658399413320876321391574494465553232854424012833079259144381233944055398562002874553347326670293117443570131549848497583493722798545703641397681022479442019137978071207388476093091849793768529678696395006655056237157806871591434727357614204132674413681579017927826380501078085554039137092190631723401782513320291123042014207789906687212393720368091689129151731841017014857124521603750783807880306805813824221391505688323812722293662927867934238786041719370355255865871135225238787733080261891516846200104992210190827491740977704762467949162084693135275367250254978207024277927755525958626467046386738331039087805503510415638352883221528382113006848041663087266660033203632723848409236799905090630565761306019098251581124785740827664251601001177358575380684621131542740600840364352753382248742270741329928231546546955002674775442427561392579207518168141094911007640917777085373274319471558448838580805254673988803567049477273566591018782536896842908191805139316335690465954308868909927765687610010421350451883100239120646343809307677162573614651492359022159472598385990253583495942762658939736279053386907399420561342129123924890111291312765579732151046635229300318794545651835275102831451978531357100038663365121133353201803656455023674893630087257331464867386509109735936160620759622791494202896581041578812713861151752730637805887414623263309234255897894614458129246130508419706525151601253121875015570616586730962049046629454083714079833832100604044640668473404001338585926209338230183374707709569004111372242354722649826820188903051061110801945659557242355024008081563988243926729023623320883361840845519876797448499651691093165890081155989676878090287381957865019656321586868126987678835121973418344461619441738323372884713319586542509341248420629051288497970779940275291688321049541770031231059041108199840465839206416852091109594931938440531824488889950393509056780507950050877437193569491124106522100758620183923166364219706967619808938679534670002469471657635993949282626379393258221644850295003888083782799234451520390324020452897521650717881045060678506546178981574762659275017869501696971276824821487699317579609303369735213918869586432678861910670294974666448755500917287988198525624801932665679602301533877579936705976242684002283749599182043739722105576062136921740313944746702665886269018563880495934392548746414812850741174849295787291050610004888310804326998120145214170439330661905378673944402902285268446943952771565419605367158802443658399265082462496807252769318523716343063391455747619146088309666034602589308658984134709456618814045144816916315454894875871385981888743391628011615589822012043741541520912287285606155410998618785622593306481537903373386701795181669395898804307587903141395002930773003464445893386852117707741985711665197560887875739756466367111354838057900111091334315045404798046346310721432844906859930834386062531791080037609383886244257969135122414092475602975744020390206148076781179679715407878168587720643535565461975242526497822567898624554247683746683910121918351371107661679376311651290504898337432652436198156548044446671598374114144254975320839885953443072285388355702234064588026023693963754258609232523045775828436956338598429491304510924181415784966635487386512258886233257751925135829463747560675452712634311006790958677626137145756952718340319702066462598393996996306421466513876896512723013471778088105846497036296938548956160942671136100397700942125941187270848031111106513833563432240700098490214317072421095845211330994890528589593985165813693568694462286041493155445192282985184879998395616552328662252839029541165427732480595317171381779343864487427391426553154054644633473985939204416681824133146674939795652092737160199538651458792794298282071408428055001533228007456295249450660210640021272227542845504210375491940513959318313554054131038271686677704315984114316433267343860147731604131539918941139087448428243845884706120879719718865315505868505190012227349215401936960363691373638467000287314697328272822396839748269925920184902179246145546410557210161308416723245472596992020117585909635228527640558981710256634199853901687087222094285980514786409092138261931846733239998836759338665256275406750344924801291443310857671319827126988507205678632499462359354560381559531791750458259030949988044914599603974112614399913642193271676551989887284680189027085942771291348668373125708160181831797293067519488476126682243251975728767873223527635962278224360572309049215709915962554718037557752664976530850847755050883020381890070886741905384040161106443805430434604052852286743558251661012048678463936250277755528304228320444694624867919985262845434880499819168068062807387740041448241322590409767088031384400151433856672900695915682223559247167499216459577200877290776261468291076296252442871450091364483235427378863214624184626700575425595924402640845617582832035728561796767204330186826104374186091658451374436657221415054569187214374614408216961530375600863648966645090764262746073233527425365366694748208847415257846865189163104181573233769501282104670755274815901737048543273914117492406775694340716133747542105327593646652390062101736440478316949883544456560264502958725777357133755564356170760591636984640870761334829228753228253600644594033409650580475367198249700401565948631523519685217869704320461575309563236839303346908218692216634774729101648211858646044305865451578491654188911963950363916669718366516814338264448128267122648039795868510971083581485200574142221748735747753267054506395143785008593155725226703922896559265868913009525095929943588430333940073773610651691212226755870139782727908183906872343873773418164951097153407297511614389039605092850047518558693894266690750079521205438113037992597284186840178158509102735022882450704318443076318473520438958286137900072802657527636994641145167415708996395460406479380157199747896635241157398592111602547634310731025193544001905329318445368543637230051588251956623327157858979423348340186515756372157162791494037082316635221619142622988190066689230834482366409144578321931813010118100363592105726864773602327205046705539982613668293301045569781625607114356567954551553387499117084573538447217510079450646904657051373882384729925902360670332879629805047764594952127058922161811372395447894126156404470608132525193477501962308477171140873707674381637469172094812663874452048232808637599934674160971692729073734897865777398756279422384829510515029933464715925149741674755876517015681517115933927449210039419071635533792842719393495562387756997750528438773517054608971787040286735245940991054387620285045188776738208277780103669081065653402174702312462959476609254834768024164523547874990030346936502066330723055193445373673112528445094669149200015517184822826807589289326396137317896145871008701573590253287882217251331755443428436293971071336283058712951878625998114551422213252706511586461647842117097380395755159121411480098208621848887253455073137490172485397331719920125770169413272141418891079627440084176739920700749670497861603975434071144131679158963400241912592418322554931565196399771366939750351807903184506817707110295317334373392296325148287913144302172920564044295771400377990389375671462141383198556299854484169228857367457056711319954340213449072437979689002778316477651205123418123302597890074535925280864931693169328287352070507709994016763182575560243240004702860825720004428320565621273161914597705844874885886327336675457132353550932706207937241876466926033214194055436460915000181759182932008559464317449513090671087569490096626385067848373269511007782266040930381503721720164327882143585093156244718179731779059190678210161290247696419365634583982379798760696562722517286412683891363024290284984004423951761816836324107291979837283931028443490036831104234462431121728728994790602926046160522868738118965802599411056366613058036878330747050180051014257891940760272984534884682568101813094387045051918322510061089332851659103564084014058967209289276883631611307952851451960780645912891840076030735557979997118712567311848752138512148792430034159480155795571980709539249576409483068208285597809342436953040091393087838091386748454007295954275240868082760042299788053582165682601771418531009742041419065997433891888301344786090341731262203747423035986333687499152407115665468308397384985340293521807314623577573371536324522470203377571637345801062718777487431550375624272130478200460023991623176152348005382272393255844640174683540957770837992229275667164759445015047359017326716171632515823064351175844024471666924621904870121660448626558787461801977862801409905438502795016719996901808058601060041127227912701757808203618086027985581892213220301564839480830309425725666838803697731041631729256460714514298946852407218582761713911204400753368557659547460062125261850548667136850308795643906799049883561102792916084546949875150275426115631106665842747413815219933618343655959629675580847779144664831853416599143112901529719475255787755791524843175350308395520288530708428198700526570940672335833775268491926572840267053035308946601226170964090224073322760901283975717029685552825254964967332148898146468308300261541668570300407802290269924883251392608894589738726523107917256257771991568138787637267635035341949557594283051156486841614091302343989639420497961782814533512311606797561434997658116288654989672817404395855927537011522109317117718953369019705054304640044842491080427926574919372561410984607960450963376232319093666637530191590756324426939344233043211727729318428784140024960009620696666710321777117665195093221944771827479208804297456972350812613387153066767913594882468976391643312193286906579727272102005074069632014762190570072782898405569294435553090627072304752751460262011289610538668324320571338524701191301111728813644805193584033275717978495182635371407003887081317898359203972879311346480003137194020503064364247832178166391391226195508809278695492365874480833691179070516005695433117372852327427170554487787734987099222504227695860531061730284161040360723467626239246287688466414498114500770355989014820000656390968990951125422158412181444682061503371750909512491746153637796365490532033594797946284202238510549830968402109852106238671734286866769817389395051216175255557856597254198970987420193288193206901509822437770790416379634014906713901088316302558577151964842353807126074543926392267045955411032537519889541883854645785048913929346619256541293765368126848636499031822177345544734941872926465735151296788023712808542395433150427872774572368366299410801619543698086020130746249003823794238973994000470338076094080923701501102703919729157106539141972598119158298273664662942371609440123454264010392425536310611554226279335990748410397611071919150216381882181752202897633586593632567749012034312770752864833828061100823845432798925166853500781439673298148840894672916639222003432690668696540534751244584853935669231254726544880387851572809736575853779895536315331092262395705094976717489657707209725396795239932205264263213373544903342351910476027976614079162347877522568182399124594942168608340169770891303236565870740684884878621886461689708383839073711916734996665324655366165835626016014651874813577284042896003633219757035941756912883460572501209231717344464880346761449681511498991020200166347140751410415468944028810154948155006932275810800581666224402637287414922163620239617818652083414632880834378893416400277456143120832480905612518102767442102460356258811675119328520168049254321488124105731949258606645129254131315850003048271039252136838330408232481158591229218052890427084775787416056689004247058122742163510604728312562375610418299694310607366172105000201483556891024908442197025993130965130770049181899573211822827280004119685171258821183226829890914297916731548934141136971734993449828141099551020436795279387266467856922828303907757860586738465959920412353741156026990503708952115364714404448622664485834905409970533088740932549697057563957288760786872624094974894345556407995857336029481755907610697051056025598896599506666666711484668345987511047673710316728962233622405666116024108538938097855611340806329392020073820842057683590797829910589808502466104450059365832388110853240232603500572501112812185094648229624659254738226920767008054233181529837396272993873715432091858058500121298852199373156843467011207531688139495303963220127347141307896270296351354895037847956458379123767484441011471566711646403087839460547026432891197858910584046196794373006286831449663772594871616045769202928534665820317096849157045185502800650284429712953803862789826461935473844551029873847333297307749896974601110634501432751589686233619093631444292579078326309008358456877587849585449969801473985835198420675810304230483362952907427966386977997182165245632616381481868104786728616231477162399205963177256856672723816786541596486043227238484091198734477116528342875913530724839173471568129433889716828573076499087810678511702045868682973817630958320280359422111405311402930461533049584146466216899761525458867598423297025124639433683025913026538411681926686437818288648152097216635282542430615085028899849396549140106256397155154357900276419207075258754702047368528298665514200475954192203051180556398200762512649742654792775832193201224362181131699722439329266681879794637491131102436469696832201128705067209118693537639129451682953783689527573627004223227638371953393077967395444206641743520934743919804779873456946696357474510029957935839886415510304669293284587289579247369411764486218149993847210106059853159448404873235450744432837968276441126438474488467706784446395022857133909974258911702180989678311632291293885915293501381559902324801489668905016740259994163302504356036187542192455908967146662968358239653547996380613831668913933924295548828260984642606507580611651852657850932499341724524447640828078970697900415867774820650466874269003707731275772528227799073759161999592533456902879134808909095149986020229173855184412573501437536499350771798596148191427587228063742845894803894760482917414351135385808990965436982799616808003984676017773171187103859482563389904746145044674676801108585411405989918854980685303028616726276203031958675438324842239837612427804541469741241132903150879133141035104307194324287219572856297062542460723543912857434305454669871214154051422829607389959643621247044784828459875766838364294228622806111434580661070973056171945751757183987363683843514622622912210261107316986007156818921923664931453916349436215337779893719500656735743473270184887692349927645965116711288781558304887186494697738460174283317950824468027825708879796674353927208039693335889175042992711623093864005989577651642077576255944292222077225113060432199126141428446585675991859603089954758370071497456321728056466944364077747848625646881668445822193654148567487007969230620392819827597931030806179623255916403549140639079848005765131563566207216826069269893045107242433336658166006583091138417507006135961335328046748170134567981828875443742537429800443356758674090273201182584586884940090506005939256532293291832255471141089803973268924357815263592464913546510421560643427433761488106364844754678567826268325747103809798950481555761381654370750346404561863950275798396312414422487348884204234149601241118166302192985542430180571975175152394821160660669949176309604287354986400502446236828920364310939728566153492725182422963957011024943256289067695822342774024192692213902797740719718725787899393681092768424734153728388900069337653420174407658230787553891056856295570745158598558325531692671324904202121885520641704922328078360605091177862244540739724920266636410390100917019919203847058291956999221842427438259426905106552085571666667683160254934732165678449404396421966398728439006238686999621198275555788169815223305837564205216637914718944870901742965472283752214119097919058008502286007963906586300678034532479375394501403898431630167428470389420523743625918941654480883340102822225988115159375563339025784758064471978419314214499829792249193871715406007871922515322000477643481412583735849500081280758638943267539073348699046323736443173921351549993449823340675588944427591032929917117898737042947296190174055506739102816449554191349576354621513377900995061706813818062117417977538373071066003356173353069827311160408981268978069914847184175560569457478112847662359844094751605740059576815651285586034295485433569214922230498208165733362441769196484594777851133383746092810138345797658800598382580148226216610566481749742148225470561681532709487766313747905311467285751200462066364742011361198137483038709455761348950967548051554026853774891265239966357435710351139388621028766498110311033756411913441729509071142695758844437837852735804809420744272379649571936208183955815211360173910822340372784866706409744556173051494817008696254236538683745973271502200517021479144137263565302252480610591888067797874108891747378741051043105092027883590994149897994635655378005354476549621252705381084626858418033324303854199107658425421205556778509638957026305337891994332820367403343526040768757398854280540459638695131015059933656235288174921556365280951694838535639084795136676199509184537327140373938327931039989537026185994392536386378044581286390112034340805724505196485688169287205891171801652312802022460324508565858590211394921220904869807309838638291326002955349365282983147350680691170078370293613971920597053568098022136663429011716434977771699527407800546144810802667306184708284108985075107310304934574915498405315827902465135787548780021655161449950479361695585105824325207391724555423296088850834738100859954709591091022780524694280532466508454771900588315158532254989043377049310932446075835991934822665146830785911788605421292595127365642403979212829547727393959280500428741265740055669912934909115145123564847126844496531339451150348402006584219783055815121240340048391602296000234573541011369309319356292241236606564413597581132271379478691497167074977186422457778295794276229082345480466212909801199053942438339116254062914849348983246788805345685900691900926049754620625600402145219179503179819455812405634902334438709669098134984995615543288095348041579823887803226486887926792747114381989842152826746579037830905475199309934368677523735191177627495539051029445721131122650107233293979127586693582931445545346749394991704306975279464487326562038717824349958036214248532195261821322438090327753170262474261715199994535933981291149211823787846749063498474397755639181729068938532005437898279578890908206037069626159295498036957020129802941217870478348891438883937170953115565445388801548152939411835591526168423330244745479784598808389676370589717173492745293756443584777788973365390962939007485381534718995727216304120564662076296088937913203294601242185483094819537568825735444561091739245021597691004470056556846889958844465375883736517840336264075099301507807919933644003016331919902350477956827733171426791084944675231891254591853062564326895512144448389443948588703020053883131443639710619414699229568193946457368395080300088570518431354650474059276411513102887741099123173628701269229453485879219585987031227922890818973479993510718494675682737681100832221236271714961878417818693340444263387853693517902001676151447163571919709252885239730161052733416715225034271694117906122926554157546225851915201772693411233049000181840817806795309045487127646554549970103448496567976133162102226244057579996019537803029135947297957601393356058217418776507127209140201103465182531830593699220494168537909181976657901295319302266284066204199042731649698397239093233885858496625583851660006715318461515761799248468026259014009633960979589832685336366781684798204779735517348103765147171608890903248374104877647464465345142678012609547865627777489070400881609004499984466105420745229451769611887979889347064170709140744672580568314701317455005692136361257026791193118190848696243638221839898193265143985155527096749699356038339761887732790091204981097024936497210056424189356627691633836576031318414176104924779662987605423332374224190848026744192864906024826118126638062449799529954862383373484336596994627475526010732629363146286412854212818623643630160631276382192657267035662623669148583230937201527205715169047735704028184400059085694154728400097995177390634546773303007153217562713272148542078793517728168522153212542626523056549643328841609714305742067391400825579529485551083410748285965956042522862677412154167456914343962321241359817461966944000512784678431482597742796877157376611692423783235667976736096960554691843009587936921793177319453633165533161969516162119990277528159009404860248931732642561724396073110231732504900903319444342268929836043387511563436207949845551221509062643997232808179998875722383364460808901059440238193632349992667848169835348626058072819262882287833311440648692504249794985496548957852560297778850110590083371769724970723136632235576020674176969906012715982166126277835406095436012653192137901502359996751831220435779437824824394808799859267359004247631413481948951623641776747308402984894435088649304128231744692123791963193270892766490331133742138816140967765798976617566656802616800313795030886296555554742086896958694251926127436454196258299540807536590460923947338623714491810102078531882816900675066762260168719906532476528123541422844180775841710910888375434135507931163432753759079790773667920647015752503779664201372782396475702042011134811589880774685446026909909284514777049543054822835745577449761563405621200798933290378142886892523215734343831303028607975315996285476229023513943271014557860738530133142703588427617718147397589860671488709780431060301022491872607825855679965697610308365809754453239693852805776584755071098969570769064328500335714005792083988558699799078283580753023078073313620860326943263099044344097459880518420571650728853660901634003374537826179073494761381008083542977275386803970127796477594633578034485654425625992017604908404163462372746122755508263824182608287779182110729435399259394838528499543792084180127591136384518448141246914626408289275070207254465624977370979454696562101263217451987400008598060272614015691642947324502372767904030816268121882928940518288617563730704810204070482610220913019591272651972123571115869286144128960324000779000499180924965312175294674287516970031138301793175477257877171991998851301042060721104500008419075293518005935831151542004031907738971740608715530301032603509835451509757436531167879354813981698652789285675232040201834207264993856914320709175771054028551692983684773573369798702225849576265153128714608710609358338680220155010708371684835604637518273922757999214107609724360008094858675478548031160158728262952197315644450948625301746595787484105618560400621270736474875239991035987677783784765743750224540880710045112216117580732213907787453128781594173822116481381412845890806171199319425097898952383500160538027285183414746202102928493942023372854049709451393808135663308566967467540321892861397335190196767679766094167344352730216439380652210111770946998813736446787380229378618804685444874440334535452296070361288547130669342176167930237204527098280081858464996004044143911240536790777891669309444441236230396411350547255855120665861732411835487769599999182319673789291105519230597462534690754685252019592338847239411563995052531148329793585126598710914915878173524005055214381413770272330935741502347286250551470845744218188943756050767809984640405868240454315391026770242800789556718752704751806273658026778403531850434019565693132124602574323690792642497424285152840752278273847825759359017702536687154797432949017081217646940512746231503768969685805708352875004011156537049492678502342976880988907204928218994365606896453908564752495108211922150205641944273935584113727912015421478563022836074035338136949077043796753647766382646951642741666793988149332174557959997075339511775382832374483817133681198854307988800704351929769509789530284572264550486887372631815874521818461717077655843632128187859675753927614077199092614016756862072129278590802469212886738682427194784374314102024821346681761598157746333959416934682558845046504718473619129446394722472439674524759334375998361728873879970498396185880072980870528494139126144451154171431723798811549227174778112606905723051152490893512946488524213653062619206318072062414807087625944192840077568849109231764094870974480589455812242630214545551915989900869909419098862560666353013063750259001788469696484446506397678464578031267188289869225501715363499585068984368330797799812057739886216484137095259927774062571709798624636453305684329804520328656986297870988100063836127949555024978756261928365425735724374098450291614309866255733598635170385093428586143464500537002288280197289419884992435544987717751511377023603039791856999353103710871860555611874601283549195026483244419734181353663297735954423991845821862092379723026808320889072513416712563879714128673286026186949506463693828763809010370591510853226471342388632725200931976879154369081095582079357025614493618452244475025113709727596601847595567670804985689194239142165601379896944032711386119511099007749111667782567829926797538811704396353161768568173405840370831219761690934977238819244772915583691720369821721600944932223651325588114039066883998987249303716894777784786030020501424965935289617931768071504721361456227501739414529055377729311985482979804597244488174472474595580539886474318826251949080428450940193568024861172965782234838381221426689389756027406599581438131882647622817376680615240157703355276373515985486294477021409434455335542377919907109428198922250048107630949306413961480553107155636848363853310390512632054979076067972509906847121896355720208403370025127906909557833539355572555483773125608234083393231780597870554650730160475680111502818872139409544076265466507625671869951419694324203115623553335522414545533661772040809949334115160230880032290619544829577257741673901863108073140203081985312145790091170327195992257804919088134767112693142191535804064903334361773949446164841690358494211792435897842722064802933807255562792382945282449624504139685725775148826450619784564212508453843551225619337710491097810443145935359703513355948296748663027083847483093582172847652098597042393281059154296830535954351461129574920431003907179146300435383388318177133545480069872649445775173823146827878814974795243625426608316153492757857383599700007901935215782872180616127841502643868025478987209925144510759187795163632172951783579980396473902622761657689883778064350073029545707394082842977900129116018309017463722131348361635142797471770543578694877859470249263626260363115795140456631012585398023087651336862330101350150622143375849719737268648067067240586744755321596423401909294595504399271234193189283323638110966265231538573571386241473316107336268172452098214371677531379965430206717092394687378965502321657079461088531185941258176866464663998059732699126097830033533836139863509685778990415831979941807561744127944044602774147892943893694135265127370438671373226655515785333481880852096025931435721740543558091162030315072277648113030897765531567566035147665863409455745211589554427144404302157871677289412434729449311466270129541850056445056128190074845507436711337005886523787745931708787984125596643316939161567684579690974564714717127748184523604967148891365883081747827740738162810866202782359298839038591810867763927133586536260494221371597706736855125666038908663375917144409697054525372656807143438699173006054948258332172684880728218366465133298215782969936149383981674743440014507817437437653511117409746695395185425157232325163024594864596409693549343181888031297425506750721647955924423701767187863663193129848524346616793788755862206194367290181517772378357426826906355663893016101471370026950978473483556366716569012642665355986878786854619197186716280479932408419290319546308700412909902544926198919170518580697999678661501298868359821538602948759177183380149612267586587584977419718333587399424177047498747426198674316377202505360175109466570438610816188004268113230796955135866733637731922326508299700055304868320787575458734438607332293830550368516536247449810413251309074159745858310050895868956796057535727707322158093151362122757998258073542601146551825681579821577357375683611906557344561733807614613861776214520258269876932903415519859716831605711389014225176426153441603491327711321695614373640246069114306918527963185601613182386372596794583187189605288236906228285362936259741896646903039050599698350126860551069932336654395969083230714730390099579154565991982328452452585453119954749717717197446467990537452899828810262481522056559770923936524878837781606282072839613547787120130028916363700445566306979178175269461338482052960095875815794552647195184743049577723848973565756263009867241953883213572053357565794859818380377123911469085966275344406262445760172738538793360691936295106696488993778969458053791557618832195214578084415794348801883036572593842356228374192523050060343530757104868399384288928428295386680585053146125316846445875148875202915282930392703740580636393115698387382633702824716011449976327902003229910182615528154924219299982017779826985328625443584982841324972997739774124974165917519871936405458690283872494701864535647591341361984664509090452255179895109981713622112486491950824198344192664061379749138996294562163558437937507191651084688297347488511043183219841450950893105304808367948933897045855900548807072895701412505429636557272060834997884577414979971905519107758557564755334341726412324925676143048175485388870551606672010410379286150484503261562096717178792339425235484062651440642726500084593695996887124642765397234727162682105085427501729960986707200916421464570101374390551850170252240207295966145635205077340547914806560569043772736303837794052562663103307178696261266615646285206857385770396229826172785142198231757663957747475092403265994745281213027367732091938403350737455008728318495403473030760229925032353869906061528251374325382968274127017980098064196266083282763795124822810385211973642783002152671807311952580448880112060058596487266327183340932839936398226504536982023695866690768938445473990663275547350941744079289131343796244153938402628205809699772915719108935636422351867432861126800363045407591269201457813147615880772895169909220123160177772641402797014517433169299186506813443715384492344361450290888538676076604530921939614125578172816196686990359513865321267413220618726291363146635325179277115874769777933675583614473666308455879899855757651760755571009158546014063926087026665675406964722942158913288079761284186837468345432643755214074454657258231418274675120714219137711113827006050052950395302178763468937832213842334604939852041733377587513299079053349128909160144376141443944081943073735578442012298392372649764004054868311141117596447791885140418683429757713989583165946865470224948736888911676508561009437954452277691628546746840277999668862091823646870096116375539695445937823703813689356944859107690282920230928766642042781857649704595789362243624784824871119212484218630835998149773733892307720098980255264036119182821119447617382135436307950209420394868724699214658415565351381808706294279295418423150467223923826082151143850710003193566025907707680816186628745500049557545951456831066904691693660509765303491465322453768912129413995693036674828105098991799284636204045597018189171726663029249998395498134068852558422144057655040246854308265409143774495157179328513914184811856606334882489876019356052940388650511734834010048228592315604354890792281066617775216255768533269583392537538621739239486113833042358032466304516345592722331159956946969421779782000250861067670594468332863222839458427212847430121103309841771132404850826379595009279746347722923221304387909237348531328085772096783524604230033605010397861456075734223012656928677602677024720267906764010261075610883151736937609314866075271501253215749592949864113427733159004717811302504698216669973146144651603999664918186944583769324583810904845300182096022244253049848651249060111673668513381104914396083540090994781388788934019411463879764770999850675212332553585371511069021151723691076058123766034623671496938064002965888168037169422276555887837365222654106218513256275627955348063204067331196974390804325255766103139363738508165297550542890924760023562691236864754588676689362145590890515732696476299221574006431367756908056260785282238536026350777469170725284975473425992448958457827353871383410333404241174196353094692292317870360891482849138564561054722897648651887164867358811928729521486450174214692561166288830871140158461197436117105443120549160808508758062168332853695559411191143907243772327222278300024700545892622449142444028539202657695516017292209866433283624809868748484604534981009308349602670717221352575996335510627249250338427109307885045273997836778344633976262813250213293973314239385634016683431266286590096299038690573806329592591516295180502148925304988822581983163934292522955444265242262404379444418927032495371778007635744816287963551409532596345972453499567219743099920756946090122265494349079590285599732644443170625704395835029775163534557169973169312440627685912610434896399163040112874354649869581913865144634721123013173643249933199235627399273141300526763594427871812096023579348111724867770240288339407221470230926254483401519551596704771221385800065097404117456356242401457896213908030697508120621221801324628392021994063493506786530226759422328458957197362915750290863842551508125832080676467386661137851762766644164365959577872108941605226113102981645419773886547118865012908438604853017012149780518440306629344758276861198389828329463762477541100732308496696918766918513095842073530989785770824658841051354993829596329328603739089517720434231755165483147232058737598024652730206792134917214605369070424289618228755366185421187169148661435197101245734375471466297066024757712598442033447819972568027082080051104267358073136587880642254740001213995885437982871994883227305619626390652358643647828247176857245727454146158846611894739218963719351683970776177864732870853719374121059925883109692479395340662319890775719092892656849915106570489024432464512763290784232839803632334243216462442417724637256498588512376271836832491977750451466684706162580920365808509388010105481805737338174113712680188321668471528250635989303604048779627043755951456822771433409826905481814654729914011416120443846748848161719710201720006956414028940941755944407484996868023183082094455567375705224762914218619133117689310078030764389196527009675253506295583304073391146447555511264941837843058276013063915441693569123411774256018783208575041944503221706127554524577616665138277878277493216339781302353138915125796490390050194505564846755727660837228222773813242104866878189763580384640802593376045364735352710909620916787187155644805089867165706076862094949997958557127196477550825978383009617262665679884342941422632572361004299478044052151411499694051491300826852295677085386946638438612498939066526193080129076500397517409166820196443007645659563773402740972611576704497493113435768164962339711005162730892903640991963442340105171940060947532390197674126944999445186979773384175722768677727490129267186923278579879503608656087223764138026139411136937424517866925055180492372477590469590994426557519812452631803085759164981476798225882356591474077054716249114064630862870834426706289040294319535923992126864322052056926882880661457335964360979444514213747116571168245937251151036004145977646794546931328631024200130410795380479509133754442301420022602434079528818137407300297819183426648037132246738765024277916684021077199197469151255451601190550791033425337698445502865447225759294856702931386330149435301605372168201136149578968378261950897739659256646887243598863759495572035866882527904933105356221795496077032495316161895111356830709280930876618575539202899906700419734606207087410602565826553668414276346905119440537442808016299719882669481056675284055855783698577283548322024483678432128812553065015519582741082359512336767804891346058926797171284763684352549517121822210388299810190212552469497302123113308130803202507146565437026560509122911379640448567389687521534321849528819528676242439618779367436841651566616614900206143387148865432818177421939950201262124099033542719724106897368435658044865787686322037812843683269096071983472937252083953217691259190659984499087692702754590437100016324042420675007390998962311389442387359103706693671331179934386948276790645416705888303835250448462203036691004795692553491777703330724651815699717987005148469514876577458294198299820704898626028550763760179479157292383928634501558957785662511178780149149443153559798607999485875114600701187194660374265248453734538309678241415347115249656429748924286700106158542765893208815746867465030620860127927424545046937289732057190505974874850240318895761491913873359107230150992472626724015890481828612015667431033242674436973973034990691164095181367703084471571613231206498608302802669581435897667422676383852859652407538219403609319068298126014498864830546752983280337568560730457802798351546198568457274921640712179669264955253238017763895254320680600588441626609353089842454240700425534601562774164219185749986575583474838071529413815908438621545417683537933748800824682046380608107736832559270931406654086167138884476715084007104807014657811441751922108031095639908178026115425009047740892929331791924984608751437819860017243626425792226411401852432569062765791549230792647035893200340333493977104402182254483457439168088810349486068259762763450954712671097771483134491678279855154567200013284373529463866413222688063057728852329230533950601881350288970038533221564146239498929120618118375822554932861949701942511991823877671518451103373739498603457546553861722963758284424641613723764764572944256807979033874795340347895925933275998209569936438801743845281881752482770677584429031467664616973549748633856763240837131486230949617203194664224616735789190098435551941353129341505790513154625250581084158497408109198048259777819846599537796466061289382361590054983409567900532631809213664806662907264063165267916388546836186462050741385358798878834470713374021758355639654825035511568337316989512985124884487198821441862907700786942911740016579761158296562947742781035278412136443379111830468288897524749317191161351974049195022551662000597081115364563164985273054300595465312006819758635275946000219801528711983894927378902385861959136077485616184052073731597425550463813824851094677311106783842766363914275505444350791923582839949643812196726194557993384538967303799170940912517871484542731449538043152343811922881099073376879765014593750987921595342253904547325848071908279173742895849053142035238003078496352709166509388068701470248340365602141017605675054493483147755149308385259185851797346607744552517727106434475339564578625642473975396592460027059076659354049828654023284817407671476033861010250822562602487181761866016677859180090938005958155561595009151920507207139414643797687821702800698649713514303447745002483848766415986349816067384334878135424478328408116982006241129749666574321740280712393350475494466034347407880650572937032071445913033132426689909929412193991475510921158682973818535999615127092342402572661251233295615706147177716686318944424592158838066617055397070860622838672416830506956658233654466842292333979119421471025259879895861139420982434384557433667797890998371360770619466088368510375320873133181221584110526854558100498798286015967701230524215546911889830707803002042436174067873368693337267387035692040082767913469308336338664447704788254824727111197709569823334475986430970467718562561739395878152898883891729593087796554903205453132839886212439958142084211546241488353074619344158992100556742441799607082736932102594765035851978279949623103592501491202126555345078168056827762324527605829640859706258628389069215160725121689569038414408991175649250850804303181081772036299575153833170652055818652315340507475619958483035029138828887587516794599911080756258611162758832839046887455779040875213429407885794101899546441351728159317409490914028324564318032544273423179034301169616321770315624411812689875436048789884470802805659765133821465412150407270649291177298534272851612176201551306807467776770055800699438460909611017268350480025002756633440272685629176790469194419066049762009448127046492822734449204025820532920805235193956855174605485633746213500718394627649258285024547412037286464185625953856036946444254747297717221055937285305842983512030667017566729572212617635973349817900947693038914754607807041158900424537480893191510626612042206150726481275621064419925883318237413996414120391916626827614785053248013096255598903819285767792959978377365545127673337551604219928921412297492203863751541793781963767039112865489382520532238291118569108580119217143313249660288598510872417507814483287687428086197671008633229993187539710321349910171323181107889216909653697369806321504714522596645768277720003865221829183256566403828254237524909731316162783313738829482645199776006187706389266590149148947862124422557863641825166691724102317379782800979287833423861755765716237446714909099089399741730556567269261443856584376456800898582908130976379723238960252959055324940348837673946544118638660119793896931520876124255927937666852851426925912309628056118863512130366750822708802632801790930533366151623681394982236155124996871278709110832300433021389721960645534130651581046317190338267731741623251576217377860578917026823133904848094634246024090433552357208061413272133043265135522384698545366185184692052440118992534478479757226963238251404631062661187867027087133153362363732159220740366295557675837507458593252622322820853562185804077628152272710584647796288654638994937805366893752661046256610739001259480719176675774508092434494100586492504771762505585315128739603441844815700140482662786244550879871699766889082017262413583253697320345478921298225044056082743938851744816335252866105579724146883155795274089787160188276116003438103542642408107857329121908035684774875101931208155060314083654966912006104539579868014438736884868901228921806828654823660020303288963704109694713745648055400576681468485533419954661879511326535009987714888600207831886295398202853026676201719669309038553506984533267152490721287502207289224814684133043073766643338412878931280229383538830682945711005975925282703259630315324133261645345190906819615984945935591327868013325265160252010088409604826549881679020356335284778354337506901296134956432882702372180780751199869694180580227695182891760500531595670962270621491166502275303833394901548029329944700821861665991829975548403611255842395211745650041302714545282420301106418586625522911851158760840887459043021310106496660847322756812490358239752319851806055909440359202493667812996496824218543639146064262292856976665299871623912684549160906210133244647353904220659492476773843748036916711985522960132099504919066928133533734468303824336529169280398495253093345912522927106959699712190296787931881713472696580017106570760647330912019761133128484557398878546357749722577413626890776095553663268861967446805094417428684207334907290227860211127082627483999100354639609349922587828187519742015871957427693846858128894702766947081100754867602996170800854562357546602046963139210376695710576703220106301547005083045296776672723714284533510316549825150720979202019065483893640345931213319969014681041109488489357171128121774496888693353796269868321326133758975616083352181029608683291488472707536996748073867169172013942577970853003036029604203197953363744204615881884214595997092177237040128312844506035333735553380418952564222630284370575147782755836311028642035197287058630721863866019414803480086992664969898863512017668202340594243849895069156626633996704183143860049414083810515075240850025994452355178966718226110148947982552462959040084300986575132093338253498690499144376003009276989246750501343314884258598858997331084776833534938344925518567207632399462168835887868864585067259009517953741977330677561185805607392402245755565589050729589197346574162475864029920108262794619001744305286170292327171412028564268773598893432784993404010974905363027869389800338549719850920374507389591535612372694485523860288759598088255663862539204126433948536905091134972780191243465154881108150362761445030194080094905096574225047978853772055117339735528321244369574925602035381912452373943147682826193273766985066793224849144050487499743170696840498940563879981569247036319777452906863487094053119181439706995039363931369686242500192025047062866009838280064198823125700675155419439361264797814356388959279718904586087112713089399716488605207076130600623668466042326652830294528893249126048368666119367266004437587905313265545979013700608483115224013409825586587545188665449557365521576551514323016342406899853171837869255277008097358656302251964524981670192166282880051975129820596671395303529137271095473196942588849549416546870974417998918454833684444791591669212388324545426960424758296782892618155966032734663067815301881591217486016579549270679865174922368231223447119061400014237767615912186492611680652800666169019702702099482768192536826278707758728624386239841315863890733534295543055168148564562774696000275819438170196650270270144461065845021458910943315726385560187700963518223564993007605655055684478659006060519923320536493458501489439462210374382823544368109204928425430675469102687145761768542722037381419773889410436803430777429712304870954801583077220462246723090567698432846905963068193233445276400647619852647060121273500144930334862566830370043109589637166850603871440971833413676325255889111927387627697349419368501364943511303054371165412766110468725027005941388555151683895520916783633587782879883376535263813154370084650284162032389845608767592909397780017207596456387194130050152468891955193788819241704660237889485007903459309158001636590460510823812730730335123930891741631577332405917723285022051326665557012678153339220710855968379466620623907427188740709205190273484285924089675800132743210723937069615842758190926010588569091775801702396920462360088074067977933164216476364137634510143754592193341502459183283443563072211705679908745034234869628976003977422851770776392163641891345869479901815720908628841755928420401622387451242276263185985681484073800150630214138862573410353284431417778807321342397128373646531279685513932405207780564459751813642684916931449672149822708930393802790889529155766555732912960681192766073247819638760329051842824359489723653625890807660786574453019994422602607219600192281487581888564232166047925776301164793685964045643206750205290547022349783916210947323359871947693622965502791285802786199531462178364887674627852881679923537781854030402949279820903786515739828935400254714515935388763938814286000675812031898614127462521084463768501123613296664251965527797936455067868594281719415869719492403680831144368213213154523298255866869652782821796933329488904061248631145606846415275281192491488084058408563476280843089156792801987978304735183515571149333771863232686983325552621724695934278087309208296981084551111129376166442945979496467705293475674507662185598528063455131757889252879422970359806817725478658798264863929649710775429495125671430755130291985366144438369899059215445635300555429029209788932221850218747308695076947195634419701183195435980063102054124330795662987396052686875679312272342725992024639648436619538689953525451540414726147599277870054310606408926230529671072825360189103366152927340166157062254743301874947418430537866333629423965387672645839114447292275859280441516047288171284207127283835372141590903576913453911698755946157979179849605357320693152741437751953472812864983175862179654630854402203674013917399315914408004086317805012584904290576821929372053007193863768873023670331707201961004295885575639470193981268456719109257651332054391235526503359410206335463701572102525870915692184168598523627763306774222891987114809677340607651225978711618535599372550891767767031833331684524559154233271472525838644794809580557741532740046939497741943984717412088447156193994662587181413997255412508807358230220476097257940774409565276403296828620850739511551427518967518230611676229838964595649990388891106692734241909853604557243384507750306251609589742730460368867300763391197234000984982549560448218465091571899001764243487405175861019505975306670283295854761373936939714665265575668206686280585242613844779362037197821669874776786009100081577233956290365012964565473087194662533549572680846047351878828302005787724186322610635640348735784301745197494555109221011478866682782300124899121319082663483565358114567849564620342157602102063958558691453860383673849956098710494445696870678267933839748792495631916831936296299042578146127588550602022516012757410537534011146207237003583865838266824369143794253270683953448228529736295571453666620705263524147676576189566828823254576813045437167923144750832207051793811010233717178388166158886842329484735515377562835271761519460370433933629795929911706107639088044641265651059524110144852613902148168495053721148484851682584981652017062004343387332021122775457709119119932067550565367780550302210079457261602447892329286475183379431872455788872503417359962785308766768213324304810945548292271272336307847743432756674836836323934208737708854812330871535840442783768818656834375624743826827214937596541391449024393419263808014901415885933699177088475134829357711265422192081582171727922621300199480698655356155345220354312250173421666044796324788208197516995787578049524382904559291455762535594365528177756751531619083372431645567207126440578991248116823983406775472486445849473905165640902724645307434694556710807795193137114445948002518248663085590606008629653435099699167893144740247162013550275925092115731739365295821157465820256604488958844885028897860866423512356913229545893400054320736512698656607902373977040931856289230299266656322219866652759169943170880256324327894968576418377250650422422135706798427883798530902753164557539150576900703939935062993360944934400373742600148357833557174296611873410926539785298613825784447990876649523664750285746333934447799019283579254218772944098375213978810070919176997605633509695129919279183285765234775810296980559037853432430479896238944528533591045396560011372462035326458491901170752637905700983965899065105874218690345945016895339219708479498315049555970968718716487106403891472306286829871649261591715804223938798655495514046895887705581990192037890773290583506392154150555398281017370200457163277282605186009157159108543553172118933247292306879349074146812300255309364220232110471062140625942630043568289083093630131565152626960003183198088071671184015794720313090264788828839376462653704453754689788213192108817210778321798531719173575536308916462458099449188697885106534403337157862691096871871916649841992998159103222992822901996557283906562787973561740243715658618247194867489139393938066350757005335958028887837057825316504899114355290979514845497595040156380060256921978838285353669102177072479656255536051550481876323076191678595247236675898328910575274109714008799251349916816492224879927547173631888409721087559397721132717081761007645403927322416213956895074354650427201329443391837369797659921575145085519579561250790652337959798975570694704855335525371203631746023764116500617469069119863325142519620832364412097385291449866872498375116312529379384434279664846646781896599455445924076120743259667425327701923107918918180207921830559731515787475006661285214329672338083367820311322967309976124984350322944022439414293837223529258862544268499723684622899211224041810528672183032640939245124071389467602357836928972277890752755592936635084933906756818079825219707187297361156915703258424973431715173962620439702110121818149167830700593608161762066187992531443982794573124873499408326730205897321587946142120434351443715729460531485388232345140429399992247492234217877200409176083996933678559940699555606513072434918845193773213363113033907924151568569868419181639356574054521732952692920050579520218261949703007375368522672420311247888194416259787013955134957195003274178737411953347544319665114576037158588244730694104543209720706350535970572184684899742646726715623740588584723579637206583129735747381080201962380298911486374716009081439362765912612864037042679057476057520465973644594864992885882592024641897660620123451127888613412238789495987906395267910156880058617691372250745537607056718134339064854588871531459630461438897395850582399617018404503994672498730301626473180879583027099887332830207837104688825091062206025297455241369936777125233148004244572173059719618242957544369419806974856415341860810254734330670191785875482800727075456571100769488120549299899667544527088439549545732190250999631949792912084761740239987240071178716358678913304243782247931409793648943853457075849640990576817662375691462824225959072064844787087061748719936987248129275011857750969762438403371578223172057741206480523079664764256045154111479490818933436262191352517313000669433994310171572092933938078545093359394091615555346656348579609340886065647190892972858839666288081334906798653990535975029155153779328977058838325024254903046906370678222234754591696984818265885637118988587421181065236029779367458925980483513602621381068345030842057769150851905075137163033753206404396819286942782955803547090349528237902450786482043610529824332295763311455915279339294214134638464832897050843755672337811811801774713008682291924042399119548678020395258232108651572691828230391881799865847771074044455492473952626525499254880787989159400390423207471871992582411857097730938154486120848598843469074722449845174844673966421449588734243816793169507324506396845605117823545493953835755285491046041814006354619956766575030507351510336644591289343342272532110671100729523603979108085655730513360164372111662721261381156490839746997831109616145414066215783442562574736665533136265285229961055188944707916511887583052842531422867040372006293718244407323686588318972880596657199988618946262531417041665520528128210442333542209983632002894705612386955503673189439231883965498032759938737326113036069063569040391565859308886113189767698384134971533003693030818909020031020142812950154756105795658940922611204292928007382686968290714946592890836737106620544775208750408905307555229107042794744508878116190968130419911968749242833884352675174789060862698179827493745791613776534589503788432225256800041161668917955410504452091688878073078683356058919577765901325072483509531807328570157905825647751968769260487548513670485953455401251959343111171152189805214791028582477974818578732911285623670333077034901018657085125378608906485951895350668488208517003344166489254763426427034632229246062201989179781309640980072062253037063417999056966986955737431059072024926786728984725734681571984739571327904925142087992049761092444685491859302220290662851364934705432523306275148743445131908737624691985686863988014950939897014993205346566032267742158097690623510283743697815912494482777451299359536096280191642540524732987145017643014088103692889063434502604846380451836575477860914828635909994444643540482565388185257970335982582153444852124393917115876892090407549932174285198400781667761779367728494741057222867538328534992880515759156959592030079567003046846481595734876677153303417624868496234987648497765575444896719154078428744498582090156450994595273552561452349545674002998730727554194721754995370528969384288143381759678119773932122164110588100393911243995352217681582406814768834891210756885390275126799780808374389484602173798595240650682333490690244983374522325440346763740338366423888082048893903454937405640908005962416925487886169132741406399450382273839086807273725761735741370832072696090309986195863159248866354725956575126408692854007041988322607857361991229318451986323131145317139789795650222285007223696326755249090024346386117132451754835438581232395261689255594790145566207655837192739151698726921673028744501379199200518963548997878069974110424996221837097445799953626068167973704920469826702295245336894456776291694639334118445620450397637159356279760229717054299738394037698369826908779347104746043019777027582048911563992244760937012221621439787246733766626705202198441737894121864771192822439873390937762426701474654625065270588736713047197724709286827603758370636968102242982366156776805325636566517052440602645021993268699201396723962346034809892562275716903243531163667948934187233134899716300178115268131949676325776208183156141779395769462697223193905187075170436849202409067725234634847667444120902140775798313162946753084351275897874773680777620410535840133018512905001304259579412093912434147045254363365643896040809890470589714808861214286283603020004943172622005532938956260585560387943703169793660680030275866843557878854766753463983185057830169569260310063995925932733407547881188244808639530199488148519087547209690484854689189910672840723750321464796580571610592448031022304773514853062007538372841769172027952072374200536017962286278152873883131786908053733102110691080806082687676064737352366121500425267506380339878835094529042297301694306361823170008459935435030626071361827615239959395733962734697576399859126519767119684701718409428682996617131587574612878469331416397891933565855234524593680919115939015096827876513153052360459798317785561300388604315813755781311241436499997722678343707891682939590524422894472818268098750393358103948753663950903870232507783471392894374386393237271920083847755096075465505261589426249890654658865612037889537138176990114413422522777754680559655044401045941224817708777031617144587597591246636495402845232006360818180080887096441276036700105875398349533315310490890564402128393618538512232003934923490004634703795211848136898187980040615730836073434389426786018424391328506315887673387317564873605607504408386995334300053695408455873692445724862080004732249106170159288959311899360121576277664166409065302241629955371821379503770108820968389695295527149229296391173293904812463004501488160913983895503661491712066162012318513630798523125716305796642661416638651920355251754231506121194009856180213525785622415445675913412276265276044301972623680945601592051504591810275207261936810534251376601052302845286688354365812998210384482749567448433584484954376190370425323151588078195320370763274225122565230823900224538913101902045723064997512792062805820393204023092626741058788046309585630692942585164624655204562006832730439405636457265928457815297457577816582678792859676355377857459355394965920631109535009273540796170214493871464536863113561886420534962952328357064288278803605220679986872283215535904138913251947200421591534350560005530473401403780790250460653252722917903077779778242521258444840428464833239436768151486507492323624563193911101627431803312206408667984864090743283006288179430969706949995429987668280482295925846313311139144958681423929731716818228278270774847933748637508596343322352470708324143967757458932829733240016844731921931024519733860952653654308191924364766245146262999416756689867650144254680788848969685027490128418328962344653064157833379507301517501737495311738876939126816679127364117674817482553365399706960081136270280050511903210055216017212834556220816703685798395454581443693484452473063723424529379926283586593816319112305948772946365659604008754934028369233455375257982098287298900997338984101439100549937498974866286402868603044864594341736250215193008212374016797039639456111034246915213621245395460199486772433598527470082092601499462639797236228362895425774995046633318145702139844569651179296381802649190209916382705656163246498190334484125637250182324631204155012739491402792347747004832151257661696421931163486472653090003662023325822617112798516374022588436313918853014391274528760269628422487025076251292316841944617912360867917998203686240816584929368712819210274881861341688666534480301389839916817003035933408625187215440773047456668980680279186387945243686984059602532484794316903786102200728367529020158986916756228143009157842149195370463615282709459574854780230629553033916224190758804609508773080722419487995282229887402850982846920695213651900146835447598140472036606650557752506847912237068040383070731347484803818582521794312099089236760250420825340425029830741429005287479760694171354796471628535454532905606762548407810950358768644472674717819521569266567987482360222342572749730883196009965995323244913505193182676796242301205437897883778889653550260059326174671028509268772219440458397918369896153621708679918984374790283401813104011017913412667133625280354424228594773475726599827693384497853863767516370909642353702909153489057005151483975232279865212015671839402646589232962754000356200938622398899291084569304764585260370050527146353732168415998816253888479456531262802181287065458589460214295255157351940278102107170895792205578175396284663150082320604623016996954953847392968524118073530137006654028785611075697371280611153317041870823220146232874220348363870589553998611333262245554213460691099472383704037751348263685649933241726472256871703911106311153792058448942256031272262877216191982700636146780263971668246717124823258043302714920512862246859727469452900433972242761199367833644514181943679741051972721625843348658749509762583869364001401750449797493981956187214801759348367382167873117953173052991882437487790519484187367526191570022716123960243536456659605387848709545569585034751838486119859471357085941117953532796995828267587981839797586988557904130163686569749363357111970395713387414610548439538313738261059088336490889093611980170837857900080502181293877115613114499113807844504088605633445698519368406403627978240773270129721513368742295791065111547104061497446815684400541895478753915767289432043620762883606293620555726908431634381161039924348041614666313633698973612034410301841234868392773830605305435302657622047076713583383353981843732304396353285442027270679923215910756645105529807225857598548412835696996234452484755364150725481790590193970176272679686544759309666385130663616778078434793383713973115437040289045270496451679927460416413050314888251739093035465268130773449652493302367998760294779986155341321429466489074404623302907868926371993063463332349168633148238132475399328794809050450680581900297932703226517604834424087171507349465960431823786856154706092498605144265934854091436972727173441854224893150437748641374196530611888554262683375830314827238359398024917457822668799060996425331063398904645428952604626598409331579196297093056033564646447893337725024981648191407802250597869010435836619895378757115631878851105978014949301664447802395956215866798503425586943171114280047442944651183735982557582290953991010323289276957266257913919483204328026102958964192172817003338000765375360481660294341823670834293943205760625710088003981726959293406889329623923454343682484636173328676493060804049171220956540929151392476441841834555117723667410316890931125980279400089965554431382823472108959452664185616979755216403714864737053042144994168768584079650702742764903846793916914913675667225294099829053964514078882621134338702025659381153107037504529125983990561239873190257470156036362181238511422772847093757202096086854605954749775966739321511929830847770763191746151201156996741291847639282625937581932366745027623422522982648217151277149934162863396313658643908774504123041613779810935850238141354489978834751116381049141160857406477898023154520373868582201948640861383817668420622597900018580459376471440936023727362445805108289852599531016129472656655118234681493677370698635491463911766355207348971598891914037336457113453269496959402041585918213704883229044318122014819636240393647799566603744072480250868840127109505618348919285329817262467031386330742973312081978944024506588995161899269481638538696237079086612726226099838415835168236064997098985176229180243387678343525194322352330923962169303366857970198224656715559483839783048745443515827582150453952470049059197933890863655276762497804242901331192929099106190672116942883361939818625263495199328420485889790247769935704207413990498346623749958144456509969078579857358618326578132173247791910960108274274672622046787543887023244827311043491000242758503026170573468788934946698414386858431983270235727541636616903104165819054316945450502626572945425522071613223157767290523645077491087065843254753756873805949168088015291985407857797897343484765399876305930497186841730988449507275909396464110154413506892358429499571309980056667810763825784365421476511059053951520138257817719238171072526117510601465432388415971067592592570373707085893056209540676860372977069769687510732968142500771974125591177289775568909554293108512914672950415422706946955381267964473402596986760133250755826705858790855538116409402506586917955142159601250971882128681696886310704706452089476063021164706503129181841435091958076307012928928300311987402749746852758020186139352701267759155179007645329719581921016351138045965246571700440549963567747087383390803283870714563790436286932419768359837536016100785861625627216740887000507301519851114029658229194830126002520818851343927500964456021100621951300468289583177860066295238524921872340732878995695647360512480741854008301436960015649364854197682017090609331564508188075759901655747643279938440880838432239924288548249370402593609445600541472085822204943595063645761234471708094315508862531595739743941747799066806205642246377408761435037870977951213411061257913995007131541878112281015552284011284477995061584189348314845699745802799861640209407938519483538844050017721730177305822524346238702587861459448355727972115306582387693413453949154488362027158993123466027051569107727786774803625182923022015222870720523300743604293517178586584503918041321176620837496731109664931334540390645862893391949313298974523070785969015172052528102355835020732246933018206567643539430613445481332994213240432646426166389918121376976501524350550788321393233029562206327514699324276359155935107998349586661285291577409421654871990995844388221029078002041089626666745217516553518352380721608706201438148844649769380634327202560751923573134426818730636395029039916898119591683015485310625876422566177022367484570622617748563387839426648069504401293782522389719692835544130073154451409548329973061554385644332283635119619212165424845074320601281661456215137508251364981988168998967008548959814262547269173227464065814224944117179719495208917384910471091771730357251584332539910012440382570987573973742568581343287383397332787582420677105986998456483544261283183109983270404795268133155868523998360812134815309776717790337775874225011314602798440645693150659747145234384165681726502917155416819663617251044663666464312047127770471290288521576802524640724741150558428150325761307027863343385029488104230849715328943636043288143055268591697224778212333411609911847015713059658108201960949213808147594522822858317493611841689199055714464136165190652646021953771734488678873460301825893117828246111045599331515713158202434032895487996713550776482587055414286048358679419664948360366140295242342017548678687071662484818582830569754264336272200194310367683915169696250374464301097739499529240169822767365156689757937254075715786193632926878937622572333777924913536509095055429847955973253467262078450416124913789475625158554698276903152677751908016598399895735873043429700849188068598252082420954705350534588173645352140794433924660139971136409742771547694832704368761539686514520665014188015962333696017897134020329843123095794761117737423997424115360313435209810459700678793456251697294523996172446748893347119206098032264850790264236906966887669621400980668190612773247795163837599305223786005331852199489881564106022866748891797827269519363216252187360480893461395803868987433442591124926543895440378516367626673060769141544054838088084552838457385159383194170170941247447960610023139789237330891458219785082603789305458152028386473784023475829575683455217488247723261789386327754467805318351355509725381941918245454046951057329146490704619882504392555577451924994837154744122769121803667188627518374773255497559459477204124799943311790892245997222532147721234095406789349922172593869051137398748572459769234114405645138326676957389336867777482315829827079129827457638240013927383337662122894225084602451054699233028119290396076385502738159209563376844236520409698388550549745973895718845660304587357538031340524238423120887048483184408309195993879770799815886833946263209017419949070445027980522033728171611237573785135467208615170979954979662307211085369771671788518188813402105452568150248782069377429391016611720622895954085355919642517401942302729641428544867864116769075148500106616438235296855860311757807131532392732626486407745847112148894196031932871254945557207858421665626431623045773677502802133816584846229110902568062318423023241587107179990075751205813806532342788971501569783467489030521412120244016026383106179578054315796856655286591445550721319866931209344889872665533390002208178075552544868810443946343871904455116323565435769722263712250540839012489606970007045741009891792505924384123324923481760405087317300566894178710863013680745986489843648730150041563457274234862447756181342739850759661938050383633070598749105944519800773164338758093760633323589584069475542158233692642142283840906707695701251106625989281731448759009069601858926012458099162114197494789913358091313318249665618099872100347426343852705527506979639374317642481046137451392259559521196043340650503315820070026627527522967175620714852676882778706450170517504737568402644441193174881916019203848727687559428829923631661742498944271401164118399368874390016651056723408279865705474959040040093523351260161012922846909219533546940665338532165103468516734880112230818978865934699373292854631189779070836746325446770179997309119673751763127184024260863172643261027144623286320987188294281089032381164923352525770130245463186577113325127441076982806710031628927980599179989759621420673161799947910396409821186914063013683650610311503675501618944438941727939859083845518052025414558351987465621900470759000947849693260993768751396944567390495950913302001199887099192553664772155882591429828534780778030632033249885753218677736119172844384115364533139363495602534200480714875901436288624837170770969538201615108946597757692075655518522923128810946545806805045346917160762712606500480028022547737090861099003058794212015602727270958228395321947752199312972577126378881630967898923773758035047465703180990627350060300112266536257897562884434205831593760476903201712179604476980070865869433230882559921116186529675718431099764173731781164414094436784799649965475353449952149548285254456512516930972391324007076498786826060978052661763007778174652885456081361034092928927300361342987255815920706528792797042445227946203939885899392942891326681791432674525725732193921664268386195881593558523652769698977368026636996678104449926406867799115606536565948518881554283715494491463006828555967098324158818172053223563265339054409909878172855608462747206346691039176287484458476136536682302325101815756389142580140793314787461621659745017720438753685387536366809278569987255263891736010517547556215351141544850718369273600467631402212634162680344394635621072172568778311200326770121445789867399508641939475022258173072987404655642203881092451359689380573806339683091733483285523255674641297795939807881955050854507545663685587276869394298173752822173973985082451785067795909791051818364454477418517569557778821985537833667148594263294208366555656217651159446375887106568533570939525343143030062882915245617742452142522801155529444803499959025572371691237597477128177756952381192250817493687628208196453551601893178050320101481200029805058829962928138004431466768462224200633244868493744189319164865207699880675212352530432905802798135848520613693621634445928940555640051325122187434513378817353051494244965968116449042227288419932297786947837557227864050547276670741802599347265724722256960764533626876930063729218875162701857651913370309860785359259803828562978809372722862913041849068691230992778742090188420757138538890553819569383928751268915809759329407843371052798276985074578913035387796725649638835522050905316641835005284749863991342594404266537074312335491574906871394261235364620180162640208018253130394023972638273753329143798894268072453361061082351430941855232971221810917764713627266343523058638484994762582010211583791052594231316875132052016009262394280144331596354999528538524589097347108060751780730556649381370271041104665476462263800168815443180606265690749860134437580119904786085620868958119460681196118023195180530512752673389171511510675069546418707256135676854331618233465077740014849560880131587788436706239221485963337055894780972004283638274592421624609281273393469616434090293219412841697173691215005798142356875156907142952818622559099155235654343339290662407985626426978938211860843421499749082720511955409124840541880743203949262545712475071656413557859153758391668446692928510587516674863532673429737584907037990600916957346969731976111535819423430311504792984384058960446347495282737156619510484912525328422145590537071666248390055182752476824269387703519654249597732673322625580412170436897646144224823443367989596024956596747079685499199371902980267157276711650289705757641745863767203419583480740953060416582133685472214006334386896325808283532003169215649420833991596799535264964821409647802337519517524770843321854493267397422337220654582487447350738250934227975568547079073053596596626959278988795140322173245207979167261383627800968547452264596441108936089767091473042567315586802960291904750778293867011106576993400303046247386701014037071444852716342986674448410251054797185726804077174021621595561711313465719669717914014008343685479138738909664108202099603633260816607212397339380232816472644980950740638349693917713420120383142564269285099209075435475828525448949736380692015853607824064070878827474408490861720124705614144561427566598984153895341641465395493296516155892235076905322450509888437056453220090180462967860092034439367332367248392050014016877944886507505488382406346676867384469908656864084093672922490447069177293953670245724429415721328409730448964316720160410184636609295083721421173137548741528846841566096208352391853000190439192408847505224290201576713739285892685524387226003305870359969525686458991103423882227605274923227760554103097069004842646321496469285419461982874419072801341512477836016059103508920263823069346371985738059270565974074671848010063464685000230832295616187463394057511573376823114505417813160096762060915321003862902201965164719780119600316678935026448751365814223124105850907355001063786618679850399789627148180358133546161691123660517407113591192855054869226270391052690726217247395001992231990234983908050971047161281406721937627398800478749001812847324752071238012446177720533237916724182716530187119509986202945423260582259217739884346112777302122172831494421830972707237076194671178476810475281844126492548596798442614272389142482281645924045067645310268252429763033099566229829220294631835131797072482429824524672946141257302584152542500419696061572464479733625785855508248636235752698394310474423633176443082355016409906663879591439381370147157235939385005245195869889133168189720074344407512604193163177129298421494580439521182476784138527618060561559631853243444197852419405246845630103981493476071215401541411692949999626996128020327569222065063298523548156959540829070154286797083841493318463605583168305063297086861876888417994056243887053740851017546735343860418745996852839671422349612098851306848511689286212937030149427390071793779952385482241006670560327731698337939040449778808749501513246998938201724465370650358263360243932240602621156279243515153713973497886005811123974377340059126959596523798301726239130058813396116698413723806144916224312334225782478871351999335676280993308112075446585128530114747796165546238875886814724919825887059756975902543230518077296690645285961226541377962049012186223150953065429654281347692677472240444734890116945734120442351110198108422820819860962345774095985758628809287923704584904066616622869336259915922279778306333026076162034115142036631975411973991370988880334782259179436877452870669840243017914478434459410631677732770690606930279611895918737302156285145239352027729417719594467599255193646453211714420741414247208691551112807513880220570254176036729195214196218153524148045806210239312005669691441136102906968749133939677206736638804655731233401797134293456422925712428240432531417968246334433735513816502571655745597316803668140254914926430150832165246376576590837118119797931502312811384195475457506287606525683158462330958826151289467749656192499845137018443200597713999915317377452707556060915271361247964052019857710195138306121341317222553459181377360938310025665212333865946752846181679418093754642804145182560437652383330379890004347135453794398183303029279838799093405462479334367731155516351590911112063520595262446262634035918168294490094905361951974665443749186305332801196362880487459192089616944655693958452119155564284848496111396609322578053114134788446059474932476579400068284135318166738872654518820482126777555644199886632411472005199008758214508067822237319129791068703834067260036653028066139455704394285359154359319113713745840695784673457448651107139401251109466291227137007953550727510346992299253831244874371735189985034621400321813609968424931072005818886271141027583198621889801990212293482652130608666595452919027111397365975503023962119194085085355561911507367087704931678101628676245107853758889351041082669359791382324013957185435756833614253864234428002683471912380731633045212133349913491584602525902776946962732986774642003461633476648964716075497052086955169622416951661072360044389392981816581645321747313510212058238019963662686487087120573662862025013112098577780315462812414342899867620674315435402388208308218075254784255608754697124481775180900527623186250165330979402075615941764725622856062344835387919745228882940247770443819187291081012927332793691937167446571784630462354791104276378776052851597047414456527422463669798942892406464244224716634711754928719226751678679596767172678110847917794151453513312645292916002371886738830014599327117731296536849649945270911188963540006860657983210782502489450202155361441838123354136728623525228186573273379201902312777100426681472891892148371473406681495859962921085475437430529837448418653981812885856260289292384092666958971783623686510820976414217567953633391002213125178263217552979773875928878790855212437682787575732946484027845746476052841553827089250258139623526884227939260316468562399131352736832469863495222681729927408256674219756630906699639743622172661859540211836190933457325537662069835182082824380874761128064452263982926152677889046910118632650551705534892870400654121773698884051017748888609554392424990808891795795912475401514190444682467233067737602240409285973722273567142664833734795632977620980370240874405878728302588602711060200312142024810541759144959956071284840888802099981910768658423008310510589542451955120382497979201867478021297559736495101011675907500978753903039551105674090043815652346656280459683505974717573435778738675371579625290289879105984886581083107430165801915955396299547063351419587304576008454106765820797579480142195559241818839929999353612665067949294031842968341021931852375800743936817615358259385226732752746162921061747658214724478888278003943379483031239632209045700679294355620650225094420163062185128652833973799363845032559065989733697551490252490048193346108669095011340016588338158963390260131039384506325967017808365295923048730396159201649957439013709509328908092334536876873310565533226586887378434123223847120686011413850517608969773413666078880185760626800557885909058386012780492848169350454628655899377129649938271001234325675783648823300986046951115707466800087694017486393882762896283433057414310360461554666988770279575018309891731848051270316179819922669200621103906535134801394537331065447152004873980177955805016728131348894116668370213809220905988945945626993056870167882655923921127873953256768571733460219468749902096750262542164851805397316912077569476831377517514898111676742698164814339310139872489141610362624251723764027666862368618343083531057854177657266353564295304011649638069751463488945175928643410430486029268023370382252446583164899294791483599411685261244159316300118647990409720096181350822892285906297852956822297369610087269872966137235772783744527343115307556574147935204989640836627441718735727471048941625883014183030250377908470973024229642889222378255145368432616216300228744915725789923283259155630649402212634716498967054330220708401234027675708316389763839221797043681225045807789130934377935208586836466295852642733583631946089399302832021229393944180082980628626881559631947187363677723988171096560474262913466847996163366189940604986384413228397477918770028581769958688401701311478168875496342254975857476135627895033841707998307452629545354422955055363084210518208239418637531442022968513525125853780109336215096172440478074387167159585525087176258378582262774444252464686257948201759159150634103336804732726400952831867470665613431485734365567026979590843276309524042082967792245300298238563974607059532886626873109312075060315837880955571697503644925908400159824120985490074478229691079009130771421830610631535684474431101064427636843312798212267229780839682941663568213015375172699780905678441602360691608894960076700372418058220870118963491995138413435291883967158055038227218101470296326814502944937060549378664445135960404274347980012603459618706058303880088346669542000230079280097456809207944029652191527747916164790207911596808685228963656995421501458082342624115259594152909976299515721933383806716818956622683905702883955306966211802924003944667714316039191541332001900787761592279685372156653176173474233596154527682341939688215160411213733940460559171982275788779002902879888877399273408468917581073225220250934433799996997553956737703865887982518263101737418531200832998692756003225363475572629524990025387225107474602850415761354903304413820672037277048304771791138170494575638928303130024070641192792203203334085689699704043070149944734269100235151441871467914019405922128682517807645355944685225974224633685968382031261459471594984408857158229631653325342081885629909646020873120255669843596635434476247922204600973393257402071060591757946436515528088347893569814796500807183925046849460353836785875171473634329918885969885990931423365412976384655410846173181169258275538278989919922840575129405144669559436620988485624216047778855478090690698066290682560732185461879807876942761423134486438074268297099222732461401383899989774752751271718383431190841144629847044824540746484687446193705118044721477513207585157194139436789621471404266422396464058634959278353977109219480503775564951995619369131316847863206531708231128718386111588815627485004074350997127763446166349480416546569756368277597119146535572169043089425092504160925924859956734065246162760832658455282234736553819419424285669386973896501802005086581795531355552414520140137974981933178775201566837503229267349783784256963478686426344593730955306139003892781998781974203348490424665159961709027669713757689021403481251382597314528014294240385708241493658080216240424226943943207194430286470078580463154771784326305166896773428036506346269433780522113953709747823718766746775988565824840714098007111952676569224107075424475464201682999719260013948689439044976351190573449672000409167966017826797802502850088142400136623981511533320251660846179095051071584666993367188369357525911986612047650968849312456368166294080221233042622456072471663253398330016421243562812087517514826839695246759423084585242266635098907686490863647834007927367061404333453022870089544419467223089644167715502862077145506038308237997352177603256403754710385827265403069938467013672262718405310370978896248917176919097899612836210255348972541387447355619621978727926415874595451320693732665048665087562669113096095304513520445374011785107179115623680981035998213654609578223519390509988385251938609253675437575832817630974878804981822403682448823783936709892061246115939760112419924332456773272276950601256210277760803705493120249527189464150630785348073479525413821232979918867416678070559891423128678778965838747995422543424550474782800980072125100346146753372703578599501552415486176312274967489967847415577908752981987776892354420292739974889916984386623994024351852269487812336202941296537486660924900663999407675520487060593849797497048351042679369667548914229230018946596558268253637113142166808957732096788495103616392890746263572250134395389533762880081831194372975887711348156067781363024374096510507476482383279222931215598498628740823107872364692288188774064375846590218794958029843031394903634147053966726441750420933478987769765515571765443738186524156344690026706582345259016228828255152020969676358904249205069852256971286842486140576572697074318531951905702581658826652784706813456288204621017973995212310505400331425557901379751894704129980394735070810561321243691657161286169903647523499260914476165576816958678126353445575649908652125328789073884171850630331336485161577692013018555482275015214069776049249654340198106264896931865251266621194643482948561304125019112685228824707336671653373463333264272549391059494824475314649403495035769577619872774796621364747825010998927967645684512771779962843848110692241112779506945004222033327249832451040643277497839159295198156345756033477995662199748391404945633776437012363560332522249523949598053592581757969437095687709232299691964220628683183570316836704631577597392879878528196695268854251714890585201085248888392920180341280861607274805629478699046287201612231310958657771973280654541850909492637974627641334090441113106637736246134012278354842372651390309291041757270877243657363796327381921813642660192436548599079700001404252905931794549924547518689462210148762266456424466034353956389988643662693817244137565854552121022632662010723220912996876671952452345484283813408440228481830459996778287550269773184960334397444456276069209223899390292073031570736540521983667474639382533595887829573582736973733922323533056684941742921462204314904949387607874956537009262187186032009791712234076561409538418193094529669854550025491688483751718166226817336664108570603136271583488962321267549083174192166476890237453131095977339136850400845462590873399825754781432648401667533077366101249815017170577022302300106850965722164008437540457768625038990479702238566269162706414190241417256295226554889714940041432768390670238962753870970876776981731658976547080423318666264012791742374978670430882148087841728434276975927463247752827572730002118126432766771265788054997851848107183932962653439218720531884360805821961476730054531122616186894475849099936669533379386327047633177021553588390407354519383828985003583959749659249027289529680670704489724449097810137963293077577074327907700131160064659324364907116155462460617861352578032877567666492196385351995310823132051326434266793708975457983318457298247833955343594015768769133952773759076154647807519166243727012236588013609869417930003506252276071702613528142283163901456608431917532104753902817457042184954095822624567615165142411358784826840642571142510961952975571690448668877215844975885586669968076312140509308962262412878623984845128362401461077717387777022817042432257892161292419392578463857041512243801320331955574006473561727438567805589941149235332266196903649587225410361323839600162943443797646154251194284725842426266634645298133627995287418206281832342247620922713103380313157686653246990465762201465199083054779463692986587657308767349599611219255448888111841849266083046905239594985512137066158029980514596217986784678085971353300145649836027270917573417936864946947858497249922328811560213504639851766191180193618833795739744338092597422337485329810349609296622274327437966972045900264106337892306669901166364796611754255596292689015027291873902557725751280298034158878565978340357210530706360675561595937350193641224670681592495409180141569613035184417411938000557223484936570704623074991630883871172701404830978927397589273337823181384832280206714095468467105097961078608496753656391753017658089764239387833161884233535640120990431560074663187320922458907928348806862763096525738107392815868514104263450751835949936157732941497024459917021413800737797708070963428372932376546764790752420512546139686044999414873085458740769871255680610501755888361326399933513661222337488032481001130083367106051245494178404174228394068787399199365532431567887970722417770707078246196074877346815535552438382500821537746757392276378378321070582075791620152336963478862951277613758840361538156180023745378882477678630898057187415912884538724819834609665290473728237994857998765186651811423415005668100439553910922971130394435477620330309687270803806454814613749762564753188823655659670142085275982887783581476703754734428991043137067216336018936973460396970758084770797620538438723901697309037743417875183759159491764211905831303927614098517576592038475636464527899733768113192751609814054525448302629790016660298153311305942091769110454232532831691349152476081546379887508745624908018580413404306264622553101178186911400373894277263833169948455539078567952995314746662432937959488874498045512593856457700645168884579169128906343790833513221699636254246150996176594036429477087437243415741593227902352127558852939829032945859634684414503785604776254481197987551231900595400048690597960930419370201942620206156143885820036639479009734635871467779956453106383419278392640537466901870078411282962921958406933209876412865887093339926013095668526713382700193507467907360332734585584600117401100199921098407135000158930559235588998585862399491689793388259477653717860241516751441422768138123862100909148043493830687264496513454189738923499822120118783614969370299104841521128669118877052930625555697716540448226955622690558119595032436081786873656047884182359482980940472929659104420673423522796415300379344009498581260137285078276637246476827657338734092080327592059980391618245151910307037050257337363247204817367170487251836919551885957782504370076907174641360967505454330895606198470209791262039141683830197504267190477940536795724803104964155188114380838935157859620286691459956142093587796830853707211036727505012565148759300831434382803764241925536141346358802464431736778093530145624375685920372036503493760231919787842966516358876272857996155655554495525977509052895291018809183839375421885274676984377291133359427868007186189523268495902403264186947543886024095048634912929648977382588077211387398730376794439878052112350327011762542745339117081313302195563685596690953618623008165605463360597465927142807434583968902940722223077288332160114916664050938839852363861144470749914755040366920324528192754936914772470006713814815635164261955265357335037005517294152376766386811502046796397012529015985191640737963916910800977329288913460143650009970565292699758132425289822420724387330374459972875456692130550775066637372159365909102912165432087005955453956233208802669060714185430621441381412525023330020288453154141307190490381867042318795958798914327092588074311077389744092177253831332369824587860150768850126836316283188992213976148013958175779265496943622859462420945322393528057892731434070425492394261463153777189365851149704122798998359991595328346206527526749877279575584231415784658300062255267332282950965141163719834658338023810980489702043340608517531018221802917582812815381199079256676517982945345339561028806786531862927964675380952199814192067032028484670355366235974726061031301104651490439499714130452138891654496374947093986409897052148611617256766602726414078417261812388729334385926067269539368476538184200679529332139266976202646171763260504431426634143875154187572023929222244579725793557527646148993893113382333656287882931611275679930707097971155543577758250078498560089935459730494904089907425545684294739735926614247200907624380702263138425242839411200127226039323654448784007106173316031302442398101025429974025866107771434356033181503434598890917973712178400232032069132230056120389392204589464739561082410445163348768504127330260850890847752705925110383160956529602738145246530596378663154826833045693834648760848874160422235317882180976720272952412150961871233624951407322261264537480132832683937453909044911658767366784488777567833208418082376494220733311825195316699532770380152554707624853186356682346411365331723153966551870992849455077521318516801443185412299673167763996436921048600249789489313748417684417692670622425239414177409873602224684536625395109581742839163476340581322945122337080570014543914767138233744864950831313413765249574472035363766770714033444445945670829249960112636459123316035785372844699456393729652807500624232840985831245360174697155517951292290983772463583005606709851300250746570813276129413148472688846701955510367777251474903369415012747111912885199064263707585107363729904300642272669630404498706467642539084624748809437026887872724737488103339978772582282686989093854442596114681160566896194937154871580211309691063172953941072401284252967462049458753115693755886500053089814191272020041699861419868392408073195672063756899024688855263891519580921897504249686471327514849439802961736732130310706920063273523855785929388152749319863893761150388372643021283049338584876907981215324126962611885642532261474051515345331970810704904605290139980265776924786405898847600632433656375502693041803306762260266526925681267343115759955950879483580002273107075089020307171450385031047370793120212964543107569700773097254071485868456717953955040965550033426994402927798986537484783036122216718530021909643347603548872747786058965672405386260313490677962162640578449130311088791215366377521464453583101059791345119483848057151680826909152144271424894255908559452445656683196328736564890177578826463488009562864236625467342112572831209979482564254316498024293092427460535528746399865586259607973894055255220095754828907579722549319499465046609470191836610093264051726399698493216961455793049091631772432466748260152100319056878900786278334648482006206499868613910112124249032391769365000114732192540557649561195462173932787625664965842056763005939727815236918264760140518696158335763210174948377615314791067071882053534131221460297183660180151301826229047574259733157262968961939152251946151843417871592938956445091314710282464035467306061785198259004763521841271337575977793903423956180776982587115515509515626120641689221288060885385361590109784975398189318712353444266540168193262229621382613795644559623768144274316677128105291586527272950866510770051360003523570228055420765220546444125847280713625292668069321029737274453443347232023041357798816513045388539251552386061760531025494195360186456605082539812541422200407068161559881291798312411019036349022206542177888721833805604659125036917025614733553555123899347504471444926360661441489504326698616400726378200202626592671302689847995919275946961743252919859840389989413932473380404545856804305387391790869482066496699730692786394126948114756128383085813095427893326780312123537687658552661377995376144390062521256493957184397664763626665461112237812814586558646282519324039161200258224248838983544538464719728417100051189416753120025509898998467130822020663014807788903912942122597262289246040705761579390332374022403386295603418012572998961363701472256952077732105398363852895053645594219152184681048003356627797121082992389476108287076009832470966719505554399793653301927049664783039734054639870011103489173569145568983315727623646883613000235135641570889434220308526230616612909991275848675988520947256987957218351300890895948210297468593620327733990110000685654738751263433442722815226346706546525628677717807059339747473788799895779032028945751689318166549959743085742887380157176628686432471718637754170189050604857004983435590843992560302221398220940964058317510597550234080671411199101194186984282571543065837759541792329099754147253040115105398873635001837305180450186640784574906825681150908461492211638556659979275187370170241062189917779774752191651929230190146114726706714087859996479448396565626386608033170655935521445417384409115603793775894434330921851590695532869179361658171828239307743116921026326647854457591697168028948789575677021560197687245867253827609531180309114024843449769181985775646626063430304833778787670403259993612494258172215376124682786238002215505781475962899919168767041715218765219484147247054305394990917855557001679996137772040974075778437830196471160726931264940627003058758722577240041224892427781819962511987939151551575097134857865822830641620080399731574716650574370499210520173822977474736241646502593381317788311903958495362275453378454472641225646040735105033910439664519448197981305037777019155242882771320888101367167110708378974622613487591766149695002959088606737449296744238604615032542618491268163773411782957451211734421258846062259822732009969077875864527554574914785711406039608212168849690280047381192832161502498222590751975165285145194687899156507912462444034365452029075187943284607318616578842079501848403613751017164019573641420175589196058658233106847851908035649808829157931068684674163706633930710208597697611677524254134755372098818987639364884733912571617523635829146199856786561520605110874169431978986166275649355666329978689801296037237978863555125595162401124374884664442410172543493110323429762851044379336473437877872908489574067525591941234450284357695309544838448356442298968772830047770891378157323795939989178694641477315117051034927302373039346727462441246877464448532969445101702066370394423803758251704753376603205237397674811082714850771536020911059733132029065326002039704981369996050563811137898338573865850001055561848626306766937497913149907274022824945337807597392045852672318100121653127935716829855760263182319924583825261219309278677683211271927218109245111250326695559060831186917516713616236467450538432616516537825574044493798153698940156755388343700929435417589461387076337955133383907878967435682409587545738541109870638329681397822329835683316445713826372049441683941404715842874594290278251527370112924546931528628847025002395349910045546171377708518743703350916009338598089589407710760214977787816297767882671914943168426387368837193300436179318968540457906747578417579645438636645093988078611731830446965975533565500163480734897900127672529237102552739168896091319285360124552581296157480763197770969722916414302357861897771226560197285426369919037490033607651699017284148430600768459225305290764056677674188112026031707905267088544574528741381228230849089270640487198299167718056938762458027993260409610310638892234036801107875571431127466475812584946525858379690018214636805078768795626180727380517759952319087867083955699557984829266813161500816401733325761799124125848823641509915344567833402128136524839501305642240611966186479535111836655013324106839294996248985145531113744236136309291519961526681923860350450588513099986790723749206253074309364628020978212597420508929543398501658533508509252885224081471996645284545145627616759446955711052503132556440232377205427109520099042696450872383167516612364503734631281143415479546966367320301888136470265235913998474384241799578012743519733748179476150842084785567957586069387066871788935993300373755885946764561713414528723208855718797910727807329068498635624851840279450793302350098073666023358749586431071482094251796160220437295684769010420077058329559303068388076927369778010702860793391352898109220112354328543397376737323189387105305995341188986764961164044116820113086618689937659541768369125324271812719290231115999680579220246655428154527570919526919345733986977006757382463173673513196708322888244323562031792817009775203372346400770448904944351489981940988896420259418711447647718963430925364936360280959512531577197675011596837214728173489812223103779789208642750105563236670747360749874414804973901165872248253129863994014344023777196950712368761244443997117311145993990909397492205980625071105677509651647919949364621850738091544278319115373129424761029040354657018206675273556931792123881813877207955892643672735380173194028666546119199574009068029250061095844583932985122779503793292795962017296057744465723575967197058186359538927459471227319635854579049124741541043697646078477192164962478005488264158409282641103656132865893001261042573345717348551900095757796055448621806917547181375677050599262896938967176836447872286967785732333284718347764563499279475184873117496490797010960897093026845159595409486798479092913168322975520817910066298411792177065228939033576537148241560491448851664929851428461470241792669742148195780478728495603543811451397434438716548361169204455290035173376305376458207314679573630906434241199732399364152253512027857448676502123151239732811391843248181377955368184913269404302743283121250980744575515549198005857010580916331540109994751445675166990052000062178515867640987417461162738100175950471396488065234507334083757215077658294665818557099190127727646038941306842924373546566452540389747753793577328276281333092103596351035047162440008023665914313680517051544698862376418919386554100055548254872383499942313499101579960699873316950453750857833299630805868838281144360834451983829941994219352737489454988463026793850588478794373234575157024087913218097541820423052868388406738750399694136800548329216297854887279260793148552948700871747664464718751019357269799561934690614035027327416669462182039110906593582310277544236050671977992972953100702055860638091589114747002369933139903639194592246580541096411013912403559991774931568952893019752078587980888473229955996723080237135962693460475913935423045638128467613901372987118264521145488418299451151948438901347203685820177090683740410255400193591446708814414825786224539219652444422718476060591004426366361323859616995687495245422889026460151660729483310760145044517861834688287616098571362206455681043288323317864498756410722447518406777680464901580630152047215452708615217334084732217874746323426078998816909604994945050698907880392341169155237586979162330159837579347810801623050481111696006292208595540369160453014854542896382244803242042297295603627162970739697997331164709665269290109037007494729403929692043084736300364777622998981577946697967703305331915864287206555032492941184873229107030931405494194804798196141826952799427221719614622960680036792449300489810114182356135414081645109551416248401389145442079391226120111794711915559206599503924208715435589030994884986427866947420318574037445509505534638421367271795017097408508305348722128118650666293735657030875150270253349706956929874563046366818132893012921941823527210279631644180925200701376398374048061337352215988988280198953910449448429665706698944372613064156288316023207436455274027608557967743430474398911844210658058209673080155087357743409368198949470143829318839603297863152821032466159964346295626920297193001041219717220598239044320803714819117113982968601308444063530575559847783535819295083295767764102034996643305159768667499096577437524545647789901674717773447433669579671388076136101417333498544997258087924150295261096149641472268109925814084159728099823328391487943953834518640348642503876269331719352412048250322413320013916319400063006206903866056466530357377236732921366821345843613763332978073948349793249507850931450532632540060627871230324610448106040585073590100781730345453714803428846256673906230819837025497690419785628629879236037128879632188309443214730465489348496417087517564754909409026981375559422784034795873778206501551666030662335189551424121680967772947033245471766554398318062239346041237523489748649422854746084108045917030380294283224116451110174450524651823862213099385676993169725816451187345779745673718635034807528984046362683513929908385967992835148097534723066372895428865799745865684595612732022947742123075356379658171295104681106046739388033953273340191052514423927093655173682557156519486690103733202053987489246898284586159943015161237062035380816956946151644358728774814527395189514450928938380231211631063387375737860548237646789418415545886027551228052138144642901866339482904852753664912477973671202484473243518811724556211490522358530774550834892868796989674891467538842131360864298465636126693070255856087025954630120930754195350206324473150772169205781951108348347192915834351004592841526157856272857774141829049253360419633354068387191746445172099350819145179353027923586617867685564037442662208752061800273773117136989564221079405497093469571241950795670936275528194133446590443511229637027788306052642874470265207847792890726950508223931138556149627023500457171106314834704887914722506829042016831779390720628473777215432006447890968959535898625974501976332510731165117864239744248502098184988330419543404060490506062657061543201174095509634966325754860806522480430655509338820196941584641821551834277062509536217486339484300378451778116170254767802830654522965969351242849164492345731709989345860198360443085583517790034756597871725453761963351272223370131928126677253309732041390414322586473304065244151064912905931570493170786830887508115630602056209079533535314541248755323871674494879363345092009251831484466324586592642855774574749802636082425170183773090758017324695718492100914483729344095990234213661275509381283285180092520151793994412731527498389074896111442940307756078533252714348641477461814001029257292888822290818196003173182124069635460926436555832148639946272543964381454672171457531615271142202549729730036293849987962854615774587681532170690366252219684909974568524036681721314284884502185737269783872571542073851040887990341337722106555863008261353954112011405530571289680393507863277843257952488976477521886395822467744135867447210252617985863437108099392072878301680936285453362412055274338110353014265524229991352430797900254674112656164608619850458007875390435594710249611835837593114995326920781729218006742831095638560404384111449009881964113727954875823350148010421734148023209389783596391909374840715433576144098900550914651326377374964669348912843409364014572475718034776192312456743264801980729794643790678063904964962064589660851624257000884199788865698362613978952002682922596818398061072750629891448130186424213601814663195799274174833878237516021829760278610766932431114414958490155649678655104649526464013359721723107709075873112056871115438466198166865341875111929548290342494519455350360756824129014769782194473216401567985329920129168593100226828201001858180634582995756617138783068490468065965103180338377565325026818894092550349760375174532938429154345962717044708771827825235596217748928491959807260768142488434279810584475547856783987014569902393769872708286123552035529740023726699001854572199448692350402350213576645284539024187006435992219946979547137080850779764299321146098976211156734145598544195294638354667501707954164904786851139906621316869456539650245787756327222391017409547788148552349438276561431123653334996609087222071048473797010217862568712144698302670591851898300266833913333113373689200765100593015360413067063227063338841995862278490562477815423833078267988044914484885966208143523949089720098326751512076577185847309712732746771051343674459167960083393306812249848136675209846768676485832266283148798729503293499013194739178566859992457270212891273959011975710619553934446195016810685194814937814520560144784601177631745292578513824362941678301924185105804428069245881557590438524137149204109484569413260293358197718158599643785922620897602485228974890487655735770696854918760132314182341272344443287818735056355077409669306711537596535901180422336367284840864927988269653089524434428190249205649223716168391405425180040134684017361339454979511449804601857589138218795977515523095671248377297357407675574974706121146509654369061012541973265856585015125830689495695721219289115078169474316793702311594980521190870942536562282355355916814771847224305995441795508505242369449012908117513835103608177059098618064135175172326702541117633782671044011827517065608917556426664611905823266126316430960639075823222397485903787193286372441767673505893697769377632447019521386448142464744799843871815075796389796124810284203363400839058124226610246109934627721195543648971847481145725205189301135777433114950019389209597788069079482311746956712494742620693118444174114272942531162927872214830033640198997532122827363558723473617059982065760809372186827285813631261299797034692327469198358327904204581138580438697634269499040594584707541546012650212065072250259682413789437341927816349899629236348924146347643287593992264129435400025630541840278611022518011069428905881959227764819940904017304449856214889493823982382085750037819971923549244252307078102666925662256568844524031102340022192130304239743532747437377813845100968917294374998502177684003408973912617302449801503378781683910526190659177578715202467342171625548736589395947800154438468333032718352403623474999999287084508882422898930936332139817933052916600239462331261236318369596941743810309463536620069601099894034432989861641195160825975653290923144298096721414683646963946126972031156073655413993353077109394545166901917649857923251951335520196325558012564532541986991807781897592162334182871073052213320940000024655440993294832321006908995753942339263515965212011513281123126304227492330442429328531512028435532123340435519505538453932829692358757113736672925081029221854210084117078561669328087919195647669199493049959278304290824614608992080305840893372151893434829739002861142106166501776115318942528297704540322127722129499694307817649977624325821436063799224864428686546076975583279351317694355665059644758472333650276447498972487802243820299540382452516275471465559209263892087431781071049348502770017002477417977347283496424036054496533123752905033499654919854275888022759647500619306257755355709869945179079553099514132257521602079614652471175349942109706735383477069066649186997246646499393445552588207997719338481787741781231527182466090801471213415352942973753214803700914969489097084055263135239573675778130773399048098557777926325020673691659328499212013925722375378796899705177418525637069596778899751618741600801487565947760402749140499556599888373943083865263424872989755687266335413809214424813626827052820862243855917376118878667854824808834871602446659376464473019079619747998552586198156690601158956998136949022558576586778561354455644084330471929980999938136799682533725720395141248905081806263680496675767278133897104781558638722769034953059934042378837593250397553378333158733264184860717977361213634986182508514375683496738035677658442622620986377445124421105913103217039185812690508729477575426711227791761265969060196908955320016944000722785187971305692475322078618636927969780368582324856332024640974374881810689630651817206556240381877838304741673714894277635385736096245125125088389388354296190374039319131692033698078710119528616020986543322470484729291559469601710693330406216595250554707262418317792747291569163432532532558793603168267883632243897757187771509203796635563140879518746690463496168654834044253949213272207269428788083727511995398006369998395617063087079091631594419383801857914985633666821275064758270232148284949163537068752101991909033589760632245786240805111682006653988348676263270228486307783402185506863432398076288044896255390742106510614117337690088015644841243683257384047318734877653457862833267226602481561159429281861863302736870896671589813956160503078536684046677492429744119709831831602705646485394807496673762541056688706043238932683628324914043877959886109164104283544306504539601129394615029578861987297105716954083475057020506097060501118465911653006252147160593776004106453623346697715778192423306954451687999977496317211411304070539743599342901491718827975315327574187283477256122917361218188736705715582661142780426477677587449769103353167103944045804570096947852950049232059874806564354126082163718807966852824385190966606981351194693460587498473161333358116623914056453082369836085184278570012254477017392079870103807415220331266338455315862728320008389704736364551485381446205556703600300636631121969443874239026166609165266010966452182067472438636141912707453077511655963537761862441444495138709623391364486308541333415538917934138413160254773531635368693812227416137930241414365373849301964201696364167741624443336809081008131415586733848041435813636240154503529718696969495160432439269767947594283926884928971797716207201626824215459915522197569561778155382789205289370937640670479917891052623158318990711882016102245066811527945316391910812343612038319273250519765763241844936463309510471666661110864686702067034149276804245060080696739902706310639567746067614453665896551287458747277808815900252002606527292250877747884551800077589273316631620089798686048548041464150900561695010864425980549293469501002965644329164204168692336256998394717371736411098351944054414617149786057729514208342708547890670591835183166028738217632710173492544330664905842849239032230213864956470298450642378290319777178653042286359178930312679508430935532092774374504909924479887634848641573365694703808653926233592303161803318898999109769721880902292722997258779182091547359711579887449855031494249362014927056345870124336197765193443904963604754002548666639832517915215925527612634964918674619591052318432928085422743534669680998322067214331712586705061016803042757239288185714947457068642361910766911145641742412369515240496581001035278954045607935578020154024434443496049610369182499267499783620828908576476218371823801125313201556474941419151510594119197608099209552512229598604211813887646525145483398328511731066610273741392110893150931549248420488707510631056633146118768951919581825415762900143165599469098567912746777841565112377787979914351104764015499166629676532919064175618924642637941328144931264364240001727845669422672954860006495849564653702752311126199937749948831000870009417202465590662071048439966702663596347760715174935145201000731362952858081958109969243575919514706396043929371006100579425074749240054370633431581980618386865268864102060289046535329235935534286678220221537643761646725350053121944425068923426245585550885358494010038765972290907616266425025921399064904175560660362819158861686320682450219675857329000167997781621699087456624125408738220444059063527463396043931657671187932361713332204562405470903780411859466258388745050530766957513078251732463125329415569392212855016202895419937162625199468748144449049775589023067531974549857144600211174286925954647580593426663496423804404569482745254726254628822718276896636319365453991653573460281523524995953164736016528340963120500883769750127853481489362880347925690185624736580555796711718672469200172348246813686692649488806573232703744879963795495282925719726872565147242063819810413637095064263481340774901165116769953489658436135426869803492586643331013802429080577820945496345003422717819918714255930299488668272391156857055423583195966223759780883962994377868214822667865028592218961120132351465860957828904216077376769244053075673730828982733537518335346913238132934714669208889446763692672929397452578348531139634257458951852682892775588219680912235495345967393112776008005130398300126576988734235002383835882264758252316590510599801746463918189252227264813037834441988832800552482414335817427493128678959085888329092562654309324615863860362938044838574090982775687244448176242798018878819201913494087612862559276972868883554243915903574835692095170987160386178442212369018365114728800195835851473925546283652051485414535873408563573746275370770461774711215080560123639699255992007248036212419536176205864548450467769965215550636019677634582680061482076477697375963886102906085802245777786864113292999091628792368368336498246563682295583949110396305695600478498621018923172099337218634955643466252690909473310208578364378152467314997712289909880513988446635572110938881397883365758053931207058994740250952653978558164014072125474557031108889792539792436915100887591975406784465906348653673361210032290654326341691550940823575229319190498722809765009563320523155094054382715036682272365847384444283376649815204543296687197651225580425345019017918348956946141616198844361160780414815171565091123503622010036199697920428915900191220148925336799897796267996979495571824046554845789016804619069192268422070579526790420112929767645910174062732057718138276733703018798436128882992648011912710352839996824207832422618979354095146773679250676052430111032980393003366531801929071895116530782466722721361925578565956637498315786376170943960474134364253553293082519902482802558415757005232496409072513088875808987276236683039824115671631066242621052627350499050046627964659080353292012087741532898380158726502680501064100117792545461760262860925685819980433238709288395866174347955615777636258540582347849860185470485060812094230517530473122226532907881943395062661732635866542523506431821185483018304010946294767777427664647905838301963161941271310679811227615659663200564551971795687133274526640977374207136465684696801361724092224390457977933291275217715336240882855071364157175941160017978013776615327341111269286121750343049078673847107548866554805748335579273430443690456606274805324009555072858377095427127475003744246398722996990868059320924540037759490889367434218016507225579704395329931248414826221109160647578523684950510603654824334521564113440555796603532367640683233013504244320208038179672768481732554581859796401176380896723803533503651682313522490914266053135544318042630510090561543625559771917687728081822012183929122324919181830639848726653756543062533157452558200804028720785484376686389782889518879674657747174531384456415152082261379856595590478718393764835805435094368070495904105058001770593177897818759874089675084816455748396437345902679636989953958209262895624338325281770322376078845923430004581601916162076865378157094208804934823279945757245727129424823123603083049804048559637247103209196279707822315089180350667567477332497152871437045193035455944232781989316036050762490223209429714226656161429551983512545906134170628256691754812051003883851832045477132961784172040297736535257898951481221204535555420100036883632266346776526000984721263500383531836196811869015344036348158476012934920705454871292783695569313451827448753628359979890134590378673004468553468072270616660930683112915856850112472863856315303067666979304728297897001726342967153352848093076527121216498464645657178555582554799968733258706080511140437082308672157446345511204739374999717118738548841097249451945199896348536590028897703457016941925413492816539201380249929202985173498955308735922978900752271899667841859273710611480276197378540547810021391709118736759055906450271614562011298664306061434054347592226992423993952928508926158611442712145574041041148260224555242000867727492249418633076019039096365979361713132948394406022319692455815218503313878767179110265732014118811207833576602659565247771894727771791286745267969946211114069534045276026100217853378050751546982112878234361137279189458456793900859370953276754426164483198731344032047132516109150700565781615403399538799864001006247308559305698326733732832864598310009692823377135297433786594434672242011122851443643642294172848269823761902781096400775298688904921063235079714417093952151002672465071829140898669422514260873875227813652104787734671225590168287693858104658824536040187612577757488730832005357239233271944121864544279686802925541650623772903782419656478966374492433772118021106384983506310651889724817402464723181687007789323218718681756860636565632474792842177182638795150513099397662440290339389117477127084036578560486522167873437317757538650874914506223196597467488161872427262243435333629214265236033820058738296801466761934138019920865872706975998592398367704572021551060657609163267383969002978151248567755352169759905560766098871044678244208813030081580182064552117135960527286351760932855409703064146305704994076296174627900587774383115478427302579319481465700023905694086126193275586349650340751641300499658013804499524524515306114503596384462511783852073001048269248778163320024892676345248849470176989650885037920139982299071501566561798820055082790098470510363638736167362296435580964674765235326550088281067436527106875972036058657149210412721966820899317904667540347818662520311267603604924254830698042042795077745095143695656856401253317288510452718012018183558404645502685745591340790116491093070520559393638750091146100305145901856496230770477007538401226753332767917193391437853952785379918124911860606162812306482127553886923893660124639193542664368271988402437463319134402283368807944784294455049971516523077273851152071597013607714640704370125385584338892676952287112439079615124544067765223086373958548682351642216397271217145199767070197850915452221275791257679596945285157259428064277615279135612741891656087972604655755075692643998426165211905318018769892523017059450145475484948611427826253439369975583396176440229188963045529209325146594226355640235091566620358046047729933178347812789293149527569795236760780631578326135803101911425968917001753998005948991864609212674832856141686535981836941177465828662925055668626993912916089296746038158162457828418449288665807630557755606374143415300806594237192380856091340773227408967784628180634815688314770928791974193637823034189626027277167130904373403745829514825344985525734027326945635332769262539305722213604760078559081541712715381053453071423728022481322370713039593179398864241393753638556747073421876222292632567113162815650143345222091241348150578820888331402957127917981322317413351135329364941198366585513571578576655468510644481695148239444962220757279883121694995874205588382444674188932423201803644712602068603312272724689095195235214288321159327427117039213799161265125573974839501707243103451792997789680748675764033085031183059233985798654356456893036980688544803777613664330238547447183893248335850262091876885867745078425315311961485357927402286976806971096843820024622023727845137127488177462631531646577207728056285632649446224566882935666738530690723900122733700633676414275707207079700279222240842320829473047536204589905630387705931455222313631777224230389580696293010543663086965184017991260410084478092357190226974038375715008243490198255925274652389844207621897980174110919068931296594516753721335288832743942903529602973991458239920329702100340542414695671089988825743200040198516556332300689289537251576433157525367896023509930241949468824846050806006816752725140192528699921945505189205300983361897359695373597105922291860206438169867842667803380399775503056366890291402109711701831707902301292708888828124437984955946131520166232814576615417773468104694788986873900364149387204599813970878612866292599248813832712060947951078112527714513613088005429625882132050017651756208239114660413337281182432690992807721859983411512166505858580158633537360758423100355042398275314191268116427298462168090634373572092426529554043832058673156825391944441047634072499382010560926476920538539480562549075084467594160238871519747585796788806316639682601098461143584836766578467003986830989061030399179100821419773887001223028124076914097245354158405210280340531301330938289626705934225968395659471282886006953850925020121358559637783999438539025690393675343115903849832963569781651822516754765126843048381649379489117644896633962776405434698676001324634799570930130828231285222844242937322707803568482175365548869753291953137822974296916439307791586830618140460561932583209511707619017859438354029189755191317138147955953126905224117462466401595923267674840558378564992499944226985690622117364594143503068257402187909495106783284591089897554292563842073232664900942222541646159201318084611387596192736188620912110401290414995994734217996949102274946355999499423214276555901004888508170197524326909178317577347203952106924487597029120348477400312236259111675257739817471938768286796160914723727216921283152079740550747373967689868816286223888699172515102932670974500844285157347820499764237323698852929949390027047939188498682023538550152166797432427953132216048188265854153770101230125568575045048261566121979647845261442191419485460394798938735862966713985449369405829631415153767662204015547202959028135804256580884806047373619282130832565531073888195093803745046453495403261530711145591990795992401821758698789565605268138070406897615070445088709901735478629233340038090530059363307186786335713032466922242493799769839097198206620104920579184898926224330509135610401643849946752400525491026612748396204883109048250273127642423403691603305051676541173691457126660940515664410309926278247653963518257776375899851005612753958315757179941714849657988128556287718636420567926346176433484914529372360790041449688095960851058976455947108139388994526555089390242448884081618163657578242140567362539576951530145045207585943094064963366906985598493336137212693068588176749438675156170653944478777838106819047465485898757426866028606935727630348854430008504233159795155997690868026630519093387014843052145643751569236437822439424552882348662367129502935639323167418881304211004862118631833151317568418095330645992032389079968263590001496864453613736174826748785823664998701729687463886981005744228064315228677887898572811518190155531609323652734407457764341872184324687396491373827735132681729684391054998565620043894507679011194731192989836601019928806654854282914909448640354425135482323360326478586112080560249821833176190877333059546840077777151141135523862184441214250002996789196350346557203931434556827710006301999595914001657259874998928979203907827965413650255849182097703927552102469543887804608090055564718805341222909014684576382819567185443048820667701749562128730569076934770980040973270956533874555131467608252151313160479132511590314803199755782785127173606490592209474639982068523127211667056198666703404737204248632587958590708851128756459453057130516341236428945035444778039712108055028366607449640759171597424637642174027257783048012109456105139392593714373205254793779934245319396169919248467121511454845942467888665608932619574988571626859334962607929339608733598668591484581464623872238372668883288666226128920993931508746575761804194434756236049217900266780449435809320698425738359524888538736611543064331666376660607477772486616143281095130480072030970072966953086541708471904772435645246322781775494238348582756665859554963978936405751818302080658496988727074886707087522194047462427966101905031848533498122479734612301552261904216084314034442023317877492722590987076954146688622590128955132738508641997815241535763814896868597232540941478784750197581914222025676968053082675328870249090039101231409476631073886693038500336736403038172835025873956709791577082151211221179100586672148997153900031505067191143686437766390337364122108719128677565615387388526781876669598258361700591059088150012412524324944055735954593753816783455248702350756574915954841839841480913849698731211428953879412835433465720980214837593392803549328086694794825136542885264155816475823543793990431357925754742752431440708739679244545536153566460850216021881679881757750129047339584300114907286059489014446086665110233844668174425819609850242657734770784805916099867997596020177527353827993175009688952605476239805496189425190363205442381954353608650841615362203349864960524724909475288711439546568041225559898796654899855268971066421409082409767592721602472378884287368905815919355934593097637137744404289561457704497991741703505787824280934616331472470856209452590604719233952917018739089544658218212127812052597851603647918436926052566567860477607719772970292228420989495249749845215093668087596725084024770126138481417417458229421165032865399262250632496445098278803479797400878909167024453494639423945503304976718117386688130670327651689244331535468174110958702153008308161694391697810730218442184607095948138211698170047347173533820723431767711216969140197752363096926878603388908267551532773409974729850649750806794086842468114661450606390268051491798803481887816398812599283787542250024922933226564684366193565824464060676984105103460341640754332144284763846040765926924736542385141265752615021288567089496539064875791362718157241408407352869696247129101170781563059941774059621155129655886537632156672046319448983264987902916238582441658320070586212216664117183828852753405632892090470592589522758002163514182759877063380787326565950204924672220326777012095891927514025412999861294459849381735451483696931919796636707131011124234474883412217718225077597240666447207612227672015484343529214152013887699528655970794054057858202925641606713332659271262116651939574502664232227641016379791725936437529871524979660458127722670496035519267527366792727886899232229688681533941517266694875849068725892512042834087252472891964937881988609072353264865067374636908993123276825051579275331696996951045452102493197720089267470495559468865656259172381758202630281306105437409285618724664851775353895538994803346591985158098815924444822142993378542424230502934164657510689439523775753585579521810928236151755014219080411096195782190511546146237646765034404269874239929311724069014932458412118236021524509281799353041696045048018529549853545441532678053275585113165044650060011780319042270359873766353439228389424632457281529571879695615453146152003349791774011432128416612846294688983585819905524129105593063579745040779931248950845229105282678989082156384347848445481103242786901851314480717895347873739311475387055759797007782947617443435109659815656840027337367480691782524200608541380254425485408614906752787797117033242803778792853166478665835597231146478901512056526315106086634419748573137366565121023055865500226815578733682515620841851163181997941115023254688477951342441331927512384599719363481490502432312787834238883560028630880599541792719183351832028738785987969483991090221568059784199687975207537950504256002758101046169731554170348976200782938874507855524109836072014825669466633382092686985082053730468261133966904621557546752666549368401160325377405790966412396809913214061452531644676242791271122893508845813346369608500584712210677661446655013040010053239125560205848546061802483383390243157467220992017933025015703381387455919778808171561630527684123209179091691690551906843881386527766712152227950500357070068198308797025579657435671968496146835471862595562588707837196129124093507523002763774990261690505084024751191885392936383981446158925609618475576424607275256498077536892888604637748409261001729833023721216495671437834189080454669316433061892415718761725170629663954953385353816689339123225117473436601502885232702866935354276453545270498514912765361671920714555994325938277141119425015755992767443026344572268929812238782137367672029762261579570174180467564096864697495713598288997822807780443402928148038648069893277697580831610240261837888557908298215725580939659242379704822605370145953942165456933175888034690528119267534401316006905652434930384980477096059406634545525813283582783260848415287262495298241198150538241902293662365686581603308372202742396274786620621438036623826641227787536418394853281704000226880088237818656554974398279079074330978088444194003326031442908331648829970484674932539181396326090703779876752324109474681185194853699954902312896289255505601422633869513794367306884686594412389519391113970383802154777803152515397484624859021531366991073904388754981528897789727032872545442387094225025902167364055280010663968570111106046312082980014126930888056584317773423942596052217857342038695075103921379786089472556083004424325205089208555458062528904988527859438307645534834066803503885040817061849285072578263641345082528356993589018910502236801408005152746406453455506085572906863631053813985977336376585057978634798120228181559982303070537510849304318613365836631501965685810674920946290930094802680835256183853596052596961415568607470887811501853522774328177789070088998182895766980977160600562538427698838169159672370214799300916982690498023378314848552990632561086184803052029109677969000173094926004876278854009537189850029566027606245744697133449996673633236289895092271278702037232311417986200701071316886192570475542914798365023740979140545650757481714180870018639600567157249932815616476691685357300898478823999810563320996285369193152213423961616014557800339752328070759800580037535021529018949144329638254878522425951877913231326972662575523245161767031716936869707075707023745567035492489255791637527665528075234211772151824947136536206770409661200041850805203334724132126364509805365967214369910875561899201866080824154650006047163855925239361502011094147151452822139612895205811874020687740635662814828119677639777599680021410988007067191672959162885801078861006750029217527778217615567468621676209776133923924551090346278954958368998533053291524444417651911014565524001124663591530973839822512507771023133814614891170039518261278451339914943196717448080285105572280841219660804918175808897704845131940429749252365423288381715668647129902421118958380415412504361345829727236257746411544765530210125389236605118755871945910668348169849886683755161383229255366029824240916594478500293262122943875059618397478130050917567007335011822022875272736542895161713365758161446030242486153947501607514179010810081704485727574816883685862563063576156281963204389165834361456483536084457476971394171771448545486988345284338362075178716012334853946027692415902499540813361991672294022232427714551431325630387200540400810902667958553560034846284602293130479709124814983681621280328021907828040755681220372647157600709934441535098739630375843747544571141771621256531851904545411282972216680173594145286785145256938133593882996483730089204923099448210391273206579192367052600912243617706506150582915784712524471097371205978972369647001632046005823910397189214873489820890917182301792372051406340968587859215652850858654292406634188048068949106196253431519032235724795516655243962580338538726868694852671823745668361241278184709376842820444378345345087135015298959649398579598704594577883004490083481832104752535122698408880776495105763101736095066608665104997820997957401134210371456752836173784318944279717889444106957434876235352097777100653887374516573275497299042078119926240147948337083552265550166129365234156092949497514989060834666297549513811608713563986798110301262380047043769701434420555878780794972783214954049413436763907894678893711155456919160921839790933153728962141688671742964682486370157719104251383224712241197018583771901782503468000020409437202852726527052534343245452192766984561012260005685843579571180400512967250930177173103526703293873782859045423586536696858603310177917582414175073264556844207529919429096042243852302365770277478473038785097425268829295521808126327427222403567264887929157262450303298724180255387485289755387573451272396355211621240916092281545840588819260187152132867876186816174464555136601135489824706400870215424255474482780013647712321558304038378095984560049603514376320530142853579977179262969408311025094077364580134808690141185227867077366679915976511113075786544414073872588253014241549492986796103550661180353317836766115728859140914502373696495252786904288586996773882868427535762897839160798979837060647780655022832829412610472012834964004189145199629826269844477998684375456521874164468060891433232981127867889173506459589567574289885121967865625244996316357992896801136597861479136628722503472053302426280560583396257224540788279044782122843052880838411999092608046836984187594460252968560525925345845734023713211367825332271279255094132738954516273740960140847166551502313928777182277068716776067176606983993840185900741324384873812632467116121824090903567898345469096020677097844403258076022232295404664631041576109725129562668849727386460643055835758369027345528679129768969624636375925762056599520146952495284089306575823088989172637203063964181564301132727836223608510722340320436697760723096203689652130042927633398290641696682642823773198263429589971688070297378850248177326509218629275646995721365558574094058858580809384985820762315594424396378793902252801317213397197665922927525230543337696398241764450917969452930927728814219784244089309773738376167443523151463782099292322853621649857363598656080303817569464308493128170283513258999027040306597589933472237787902107708723316114831480703083098394516602753925581750812929695491876757018247296828238952141968444899864986424229280732292789949075404760874528094375136173770544296933109173667718387333756759560528922225634817972865040942520391673261169648656062152219779773181563869929513264686433204465419106323924041739420172452136480344284998580418588984446672776480236982765439548189428793697616237728179646453361349541576054505032384905687497214359890988297494277883459068090569796336824004417646170306540795316138509703357375498521219563832528350883653538837270441200606319055483890368520135862050449350714344030475521080706389074525179440951249788166286193566712353641496531859310107169075278559489853199873294317258404344258455622108577440890592255160798649938927800207743789696622592720254226388801359168629308169142922515236235015175588839574216462001492765692219949619120635863532811104963547633293048350286967412242626860590827955937450860280055906429588650613557013463342836707004872328891353020736356624204242832076265213483224462574497745891708883653295420271417502391235666196953651045750145094770826220384572072443337481554641860437042606192667589689670088874711996968937765641179332607282775130447076020976430948104763085815025426872924060226568756533837926177048493531703730422658196332703090439397579387523359447545358160457151488861035283121516160367101608059605974471844026059880790390086431901287322449610411484951477582443227319504684029737104199138783506467406689983764448151355037797045578494396619270009476338305564683279140384553446216920394776039044046896196893843854060432285630027321416140575072205416970026697971127286573049262333447394609992722240381039685116579194565230660530766446643249817443221577759346805691306382535796655233829149925003755969923196481574132242394690258216821834575230583276031842188726353620895917157424194260877246688214699158413740307755114041352250916805779415333649591999398266213730914140013482886270501535394410926480710543587029304725730242891111202270763660649016016056902152607785740723908604428286093259420065159859055195968688431061832939802458447491469502697535466706038790827304974960125109361962033706684189369312233009932360090284266479065171629531846587135771218080564062928838632388913587584677818967956231973869519278545621095480442836742682197383848137541889838935236124534361709456607289029942801931225471777592289924218972260344736165454261065061700976577707283598005367348008975986486497564179126413352523367904105074682997613606362634000708661297033183257891982457691660362232777342098836065147228208968421705938300344980137457165194072914553374119988413685319811280074775413904223113534619481895306588149924340296140792709399099388440445700328638061944219027899908560948501610541500409098065147366123941263220085312885200388284536424750962861403066532796942541562930504712974704912955778262065360679741995233739467416628878418517486841878154775787624978667722791380426439762637302896366412726568678254815196770312100851121093486701017112652353674882207809535963423822658263605348117459241485618810928267150540774841977819991278266479823397859039397449348128787346543612510631234671273166266234186781923116944328098154308515203300776115960188630894292682843474528451500085458403048947229751344401574429239822278664411176163372397124168247772965198649691789619053273448416242629072952050161515173710157395788080138346298027213759827902033866403938007228334111790432049011531490502678419557007010798805652357406699206496711998112366045545211485630024721249841279054240351800238391914602046059167226233262171558450301227383432607273539817340378006167771906628045324198218007300421390354674676427228775042813772407839348142579665096651652870147626791030291360077773765835511968914826231554969737123284818200206544274385902758605751382643656329734557320829237370951250701463374762178641835887279422904398168673549331419406736934694008057281334001509632691604961730176199435000435574550785197688908749511754232416407811678821454182645616483934788508448186647977487366058657341478163119871859021942761183914703910965233010736182453132587482849400539924925463429779855766600458712697316184457568667708719559701954519828712974126179373397546766170428708857224547447250230648501560269352027133480873786327375164288500423330205694001173607873212381977852875971265483055915648480424439279152508533786490857301272659767483598196449879248704574699168177199387369880884376836577047254487951336679645923798888444017488911865453772297381414866089046465452740902985417194642844268930484483366107711262886367971026714060885150136484427647093251326375928217885275675644172192568244437110306292472851402238446018079277674700530122225342916160770362003205193608258280373388622459934154230746671032536986666668756669554417678655658410908449372703416784960786468426899263242906980712353175511279413200177583898255919838903593473840349232695638326524096536713649347020344127020216482179218332556389508237587814078221312072126021599327013921951135341041928034355404141946935133194894404583132965746812836650651110079438856914213977729772172209461630264722781044656949451377613170546012912154460521866617239601525354475541684082150829967962436125539316767320782705161462195114264866593455223049873304210634993765902682505791210528308040370935227283713343627934804188152083595130616480270204323963176991952835585673052359280878200115676911706653679681946164050367072560315606433261343631880141233561541332833252074136381089739185910343322864946846667649562394010284907643128219745909554587286373807816628487824675920150891264787833535302713335355026505333581810190519131585846117442187541291729002340442862478572843129177111284361842112412759466969413474705437549970544616862480581911504816327586847485515562884857061909964783104696400356482383712213694010233551231275427462886060073680198575821598706704521802241772533737515903054350528318972753177504467008438748440354022159889408974625113785110261486061138761391185117563327765132961274524799542448899971345280064316480235800759934796366724098851461224157049909404260739715596008302542337552676324042178288260469495294946082384963234889766055634593133055332917278553237773140949420207750624217566597385606133404658407570928504342681108788317162091306391870316322119701849112162923790287957454939355511963061505976986628112401330927234813979524444077345102710840120309001234933907504945752029739952182643715258675204248071177404448810102321790959692575407648167475340130019175556464663667270661658948103066198896612364263695054339581188847910136613330106038901645552800660271136645288017623904449582613771181923406402658521461628853305775892708518067960376685411987525826806630249471985091445038480887343770125312200360543455140059600222604808203402845897136776118444590344521254069077199725460347152063111547015023130856435191085416422405579893125500599970383159413111451965642249291470720792866693588255019448242425575195899310733805341099966026416761448921940626409379230327824712484060742284059662897310033331481407678119454647468085680344340422817144572736553808399140189464727130682299756597339811161943445442560302190877675738761981248856017647890996157861379996369436311088869151866430121716392773153829477014969574669145165968253821818672135121971232705349505679992566978828798227342403237521661624202741588059451751578436061043861604891612405174355105071478737985296452580147337177443007005213696186395410047901475682521205485274230782828519172113616759598176878986761667117437927702447670730541184619046058363451582011076240386223516360373817167683144209640091575415618276145188512194417666139573291274945838686707736705995857571318758346366253157336892019233201258685033170384720897455471073160419404772459713522560670753248656365793926650382062552935482257560729294896924316787431654745983471777122529793247265353371294983623503044691284236271521247088547347314611769602301163338581626870367025711826001105819561636851982084706123052006033179546851436531626552323206558883101754514373752979026761338501284272960277237707967429437103707322642438028817247257473090092061984246904440439098608993430315115972525852408683319814681118970450635528299904308353107403765630470450567860740632968425139843408998551284414384408659784688373067152890710324954110375952698900558376057163978072489400434252047942743534870161680092155180313741874532729312806114353729334760181599103108535208892469445028287744683090261418719707760788905101391453714562630222470985917624089687281049189129552492585799628028868454785259119990750301029082386640744487009683052171606135120326300784192333197540939448604935218116989532679850486681345575381167828963359551515042542845030556072884436470701731084008924108626939245287177358594399440225662354656045802869428247853569614389949070361980248817249891036513240584759577718596299607913589081812637349035551766679368862951410108085097804964901707143664895068826846153596227240684628741535257890434407283117461195618137690433186825747655573625607546954155557813059060788471542979602285125350888315998988570661850752087673691580305143496208737773154751788579749556900144234641982617282671979062972891735711087537205713523026066166802819648840589727755323025608908225128167865160802152571555564011453755024599625811281797917847397502300840702099546386740241106504963797543470529260979363941927780686017237726302184848024714362319445160545081841522162556844372241053656876514796737693563782402820238762596400338279387984688193060489176112095995324589863562655312929792824572957177194499457927290055574524639109475553774733574787791223915667200715345274817414268334506592107034415493933104006189505783283135907750152075294152432390279957382200907537541107603871496195843673525791252856994131343997177575239888163368982201925604024487062715922072361179741179783670370204173191873847300530559021368976653958111604590612495411772458949840553164663719990925233967983439278731930449094387796638563849753400585326527534613252338080522658213661370677916574358660076447169096262401808016948106731968131871709597666058444358616564856262644987369489907265196990533956870820248545046905145532360016220673558342739676873378554977791148942998892783698812420785700899620017783316707289027405700919413829917391316450748120629798143393424243647280605092358519800559050448415173896242303221967632774309420162446655451752913912983339129288649997865066278094799251440521326101897219602807428756345504892251741680619188857507649014663481381284281325440099637265998069081014235377114647918795342708328177540241322067069421273465674854038835304749096484917039243603328380383940149431142348011111066177933778016072506757393449008444378513041883146700391868215294742103311145880625295653532168482749583329148139729692303877397352615291421478489968546028438502277869031515782528695722431624619873915473643950005310368264289912442978821244866800108655469829126107848713780200713631912394973160569690762662375193856577021923824380910599136239878503466917664334312211058493147077659825705852828989365352440875706850051668513588058839728634590680668553014534184317037311141645190198159806602587176487492290025852071747729259732934852209389657219783069628668614682190701026312523835803757712350667488675815743422364824828557006870473592615855996135416788278721308386650245600587033884599601663820745184234977362746207340776783863505871801096739486836272026884543011560457304408004408660090618879337946463223909513013305985907029634169158897480190705426824223917206257158955180235452653044359332635913770553467216585075490934628463812517304577744625657973984565959202078820249455148339278852518201884229683688945540452285380473503713893563636450145821285285589673780502336441078015562472072499157960542263880607204198560213326957907903378959824353883574220246346510332251788615967023998642968827493079927589915407254914176113110188861478958182925314642437996028030036196215678129409802007933367968164692633066344160306722424149139403133129447612115309806670005577801845536017180896278535235234729006180158571763884154344353347620229125172534613819458370707882635707944130729731268008143233351246279197281673343459115386318141833778938156397799764783835671737785451255158535029433313801065614520545834839629271508411719052373480386868516405399561335236863893878629333485672859853443931033895278897667994338110228466055011026577478310160044796776539850302156054050671882250054010456603250272267459861006683716737234953862329488015396150738009057548744483440214329128116703782529701109209309195826916186886734024222921349733101038936152157718422098298759411483441633801110601560335817946042599456829331201772577846725030913261542791469772567994641952899905077141501183819829264473211774209998130693623053871817724917066976916921212529586772824105773197754994253257242718041575789773546467429229497708310855016387103102915929072590236666953395856097000764427771221881794496386383518865585827578554137650457623416391627913637359337498766076486463298301782033534188279783606093211997380221767330596529631779514537066002796757225682750356119303433309929507245991492246655240622656464822607412660179892776905459864259902248997017868017121614953288078493744586261951345810310528464012214009749827623850710954937390106807998010014773324216288600582553112633496966062390816860570496195607537569516597337347505114489789069586552140813764180583962639917278496238857604502837805138646774251004909472875320014030459964233388743371922434044403076553854179564284704554324050867425878362715084050196072310574852592836187138516421428505610395905823395368672993027833630716340985292923758135858134073677216945105837954138867520809391884090972509075390764933349284312170903882352138382702075316874528172834134047770305235511683385312233005562987913468718194709421613997167832071243877267968695055444752586142654557119249930598429187903250072893918763873706146655147048560870581999877923922388720481593311288122879993144979209651019040174168555443574118814514000539218092637439618696291340698868207110936740572020637826313973232638228565009919439558204184521021430511957943990868765711544927209630213600465892984452723848650272866287682414986479674870995866815019539454325823111178705471024125961239070616319366692772404758857817272016912903573318935707423565518224734923177751048903539787930236054274735233317005197895753735964994805644048756798410532362522594272284470858245582664024215725201532464888785500966110669434202966753679150324050453611165118823952735659259801953198062062420054473108698771302428405867245115039715461277669858112490988127980145920394526548664095136820464041230178385094714415209263895829479036694962438037667417705799630646588389077042055391675801810195898550361687410581291753658733220169493294688221628942982436458572326070864298046742064189422135424899852587898876122497637066118511407375842865110797112691574663041111087965537574574413446398675499355488667165155426813831986741162978114448220177305688562929353497172277480149560298684159298597445719139619592123498188061217059923553591583228121774130104423067322634401097703292971911941422675999540798955755862307382762785865941720223525821521635314796031876220624287050905189360055475502214130978111185004272692364262859313106715495824894755571302028067902733058938977114352533521726213512633681259173753192857503241826837917565320513979156515860868700415821107143982663938825185714210066541590605221485266787490761248623913036654220824942814300432516891764177145197523290996660555827542123306465964526626697106051882901115800590129555952339863949612465864646609539473370562612572459004634228978622906155270462909869145430440170521223834137684063276454990429281359040113405789931132662940688786147079595194727517470044562071206564065677356423656445940546241211238116406516300286239054888225194213639807281600639827211292309017660918840547397103268530125768458756948392162717212307830421751808449385186882748772821250932364409192365307607236010336097036114467082497768797991244904524587006350037000011855293442337287861171681856973032154543732731330549793576673114696073986631214569541227973087960189983161094074222455152051191631203506316193774680322479117038736532696897003818325272847583385854003749915444733841524588275650397241295099904692434009548030786355531734127917132739871897873952887127627906228572038201944198931450104078967426947048706242197826998033023660539712802350949938856896157214839863811200837686370457688799201457967497810361347083733290996780068074033746478559502863052902889171206227661819348898400038090634738041030821673504768482819716337272998701766891848809776468655145779577881378997912266352954122740502816944641391592819057143843661837843951970457890776639651375498787243132288123345719006052664022600169503490380314700867004250503170452749225454772208889940256167921669194869045724400496029853618027094110460411369406839163772339253176187614004176847749074327733424135302348178352082095056884058342731112118117571491748574130288708402439857726370696661955258824166711089912875906842145865894630760861831428258303730103124738121795981834655176618569892904122982436545255335799221806994747905891941048505045174933000896395083327828593187012107606921517939565902334075363446127508362329553090420834945811114585066498116719135019621810132912845001479529728232727738860647521383998291100830421910414082032692394543169939173734696733226818233556924382282983395424854041350168286899803207250264576861147048735699764916067725517881240459354800530868301091485079664478518386891938483971006756865633980852285193762803684016784901170600032708066696673560813695317900169990467116791065275205801537562593170934887595322301608240389298856793671576838907936161710425509839553664548957448532708831168309662340343196760119773939442855818899751243063057437772955117529020855553952057144823074625798298902627927207857490868619174950132785736739556696399306825674345409947461172343772251118550523393929361876547338430249811033042960589314586785956857192717882638529503252507703142419367353792510475935260822622554056037899377093999853734773605775814815705633496805603841382026563173711179723468133948730954686316508749233611714430374159567761158522177179018365563570617810604574889820295297987091367745894578990883634222642850543812599969538104556591587453805392540243324684408305595834487594178341174070534577576384252149069409590859590458635988148646584400017854256780611916380513809150118589061062152337817373828085326991262641906663495949679824970718547352535937584242854423269763042917433342147187908219260878900151363649604341471491449475492800230836610219092838543834163247844147121768516396377259119951202014871544670493988936971670449564971686982723109335168248939919093486796365425548499944405089384968839078901384573429701175076976802651594453911124487885893514250149239441218925629499430508840735781668748902559149293652359424959905024335910830457343790959200417409230860128850878965327367889347048210772484602582040633403389588620633307145032546042915843636611573108322308697694841267521975417708629842477848952594713796041585968790649241783197140337184021479332566165800392615683629720621055957206196217503902211216398461174834052936027518668200966877690599395524958479880523896482471015718600219100746727292239647473865167413001122423594321202161663077196537206863009299026245129553957649217886171175234132372935633129956867498195552792543122798415990834055879241254960962044214204706036099441529068659381824903621269437656274370275990293378396340163481584483770674902238537062472045797394986638202244378318873508039739545800271774622899215903360594713606967114879791488728645456147373916230758899916468620804593833553226433571449063823682886103033142309652090141367052977299382627568636645235436521099527982788185494021082980444830544861745234832714675712071303212395911848589600488860739558938184039079239692179728682102827383711781609961565590566266909347552954248803570637733222231620071578632069625454285614845910959629292733851610950529903712473419201531519255012254722549816118927609177506475871933561252934824229086135737841552052822936474400960317490884294675055430245885169174983326131270645101358487763631381136120742973173147628400881786329036292807335497245851960418908453514635087533657020246512707577931323572887905184066137460440019043238255052385906984291541164683573976227967225639571433602259208345015341810628910448760631472761634367350025109666477198512086077773950080140804133033439885561701741912192200717868068273375768979457458372505446069744307193430971179689171030475443445227542663838727625202112401746853993673547062967790632632651157884088040369046522144822112836192085467605383736039285023813122908778519958263126288520181940099822686812896878497095038763233898678633096553105830614486766885065437037045714970209526088530961236560262504949495488081203501154332702609503790952387642839974272306008533744827994031866397558979975340487672201020854817318079729151896262597844395116860543649858758860163424091264431075094649934593501363397971228854424197713848247421246266167952150966589282043748225066038733493409082724423002818338534577000905102387971626919289614668121803391832731299562037116883368660157010607413537585281103130777994356851995972497911584121816728665042768311479959828748041575860771437273594504169086239614478132372264257214219538574383983226351606588198599911806634769708244712266317562652082284209968261599378323817852520972690930285170557818811107691073577397856236823264634498761002457496311740010681052788280119327558850728319698389480274037581072231853214572741494233871688118802060868316638908678274439647698408221870424624462007298214655995411338425404330642892970970699849847625231896495066743586773920899487404853294193281646510836003136665757008578278095818591493838931923409673041090711726930608644167463440448614293005916931220365787256351495905293812068030297299068524279841690052180891203290709238216882474060239646916169169845928939201692859890189218172289723804670205345745285263634567922396919623898477686293695147299693988533151301088207014127719783972852462545996907832646905311035140874312282529804543574374962512619365295358912792040339807893988096674906174623036105869565491885210353841176123443200299200889939985092900306399773925775971203592027693389516388808784830977489694143948593228099625058538787825357154123839679588766195537773510305918057454125994307093698070884955684234364078186132656213602143099434456052958353600371579637349646468745641618480248193234873820516228214663205096729084146952362055661594332823666030493412496491782839315851453533402848072865420475929430652603427699505277883382141848241216639657967717797614411226522575155607642534638588743905037621005896032757455907244604344770424032842511496797322843401367940463555969695042745427819553812422625685710677320407065304327975840473573135796199066112911081073692516766404047771772681317956407179264868352759292329176488882605080312765274112543493568106664636199723931544568876449482005938680838665541572447466228726358439666342134207904120334130585828130242249703402901316659120431625121740905517990112523052746519473122103336314923769856218491712243665169670019874546577033077309937331760460808803420836184961852515737797414576259073431286271054823297367191488449101699758700575317255926578118638872478347307249962617588061228434579902922497048980213069858058874904606028534268060565286321239507602351030635575086340910761658924507268665404956398930024423134820366174041359784658698315720248157014487325425163442565743250299316258605249360639406780666236960421114268353781591257035773955271783875910983347073336144547828097601139697202160373112162106244622979946742494231355222559995909088061917142645312985875249379684681122748327455479896221508739991099647729356283047688129257577952968203296021406258929909462617168926697497202431777475942981227237420669256287577124516269484600097122202358891383130359677122167477703535537209652721020566121334479911680672205486317341305627213986509100268132030292379797515356606019871038437537465632415698675688938106992291136027463642679562719991583946382553849496005909080218169090466316981818975026511871976839810945906464163982837205590065286973630101125625565451868899371864460392858834524217920537888190694692931012639279630893146191519561609778366626869781080504049522891953590814253913482432825600258961596721814609670094370474012364627280524461207795879608245096850294240462870035642354583957273230859025021482223658294321966609422856169382591948879215745122567288208745818254479940869522208902029918992524475993022448685505455503391470718436276368998151588386022057288927735034949114484683661358824719015089369507756310418258837138473660260055132022074438274039769344320775003841777808477658492935025759277573535362353112736209088265656776234704237874474541115531244429787153503417048607820225577877126461723794778697550077254369597981073242469884585383563079994795822391943092985241584440372890978608449058375592640865336953603477140276835418747269118886141863052520594195715339555256561027685836611498708762334456999441206624767994142740283437839779497179215894286087440767009844980684657681499820589691953024278479739189784639297685117588792292567192537209437037372110831366941122107318828787553383726937761586801436505369485176757001284364794893767785593290738844653964816481828164567443373830045873875854626715360807063901468047179142517906924680755983968657662463220427540252224922192543003414622934840906623933800965564633293706312608539539991276773942556520396703152665201050701019768100327978720682364344351410773001997513852779170252863908757707094015511324593031784764178384304624015528286291439402121411113917973952085097526113875936585634329255734291778471469706492343867250873323444893119023932839066101858019797087425446302227985840831837147435273741522492021834548251394979401380490486970214480783435853666323998255319848749773975249931867786930277419922881768446611885228103975997465868343905999162744620951059123178235921476630147016966459763441587653170957984771936400051063483392753847523368139557080006761645975357355736683226659594435857917983609538167204448850027503267261531022387385944492280548403370610852264926462178167536804639380221234392210503903803760257561358641536903853671841104255047682359493748788853234291181919005758351941419764392308220861815086609830935007603615753979024318865505321552504502029563650672520689946460574218001363184070042235032132707102678069700269081690476868187423921494370023813056733056634766572427785655012584256040181068884283535153099208360289601804187784862504638875920883182263835647597320810397634093587547852187335191641107909764217779088805366182576087762343506454600952610970869109436327218240723597409689009832770310239811925197275499437219668653694673893088691974659876184582070167559805058382313884193373109781236547702684873535529429807430554681132902234824407941926701813865487047679388768141811802428300916863896456437178708340029481155476979604549406880791151233502461931738659397573756335213353918084029507015526463211126096326866527596912270475025916887365570254473857340432797759521259149611971243342739198748728575051441244305166414900435219546442098241844101441135916961732983059530311338634065621678788015799063662602472483665132782393750738785689713256820271042971220042610221158960073206358759957509644346329395772208516630961230058765509947532809163488814276737221250356355938654934341271585318536964326254977653604981723571535557369090852287231534904630752641009351590930013184749826877789991471010168067810469303987697985567570731725906627949002813223583558972411265039752571678815884511416901851778296045097254826490018837779583165301878333118957220116666161805549092244471855606040735520719589053683848331329165770390539158602834202614353303897947009245205673376821260848988319703384241155613548925445071347919104706573152423429934588414544834218561110484064682389894190216957390596124945368222032270158880208331436882332853736596692684981981153621550852195838222732885570806468802673877483818125148241604302648849981766449912628112322752050543408594439445120670838331363833782514976657432640879987349621638246532575026807000093975440883240028696798914687640497933487321131096535216286539455721369629888830753579801412866297454941287473476241568958621260290309143590162763154642710552202810573176401708126907792316312322482617750581873127429879748217656539402849047173066046809982865104539237108226944459755564132215906574573401082549157168480867626242718874103755409193095607564521249052392583225689376824636465053101039431537465066749864849567566342441564716764028587259848714960089012454177662536325109895432596526393970003262882075305492971307731546957362073034758387464273791795291065590439941412935011203543491095784607754850703055223517890130806074976703290294532650738061892340578401103653386243214698576307340945177584045970278209100210308382363970759628278059065045429227954684935581074630791390331988249216349547946411111709386990296777986668353773780750054010015192832184528022814187046496200025115859056818516425429079809525675764394818711178851776140167594282947171727482883336141133522231042452978148043191178152353890371861259861040219165003512207727107683743283902579565279141986095770589290204942925998493890037456919744488013083388624183660511521690288709741202389534853281850439747344011176691962468816269522754696941773676979315772458690311216880155591569433131099179658143545381779551226170936506784825170489827236305377379020651963967372427771061593147109479304369727785222941414140893770025200357139123868782570164570725064979012549941273971006843705578001168746912749069915115934832934433955798063752549896701796398940550375615459653559690018372166732373432472105132593234189922352400346413820393087549927308735364398844425315483271490554453540776680785732167193885683926376526119093833933457629881477061825851316341157312243780836824754819507394562911175234817168837861716096439974260726599810860285670577466894479115850658086026628979026599963178109190172134926441489013886439995201754343751747272386383722131464192678675340908245612672797726303786037253308295076907238803318519770696259794880809391839756846263338557798537872167634748263396021385253488401940001123399984812108593297326442232649530502929901499368088507783793187724776453876956668767314292853624988133423394641735339641519295741249686013212943396295971442685489351554262698816731119676226972353067197397314715258607258394079085097115542386759006954265066376428954070916231857785441341511062773123757480006214747628833330415708436096790326806264709680006591001683782615220098528879775030643125899142446179305863914918163487469231656254445626410737125073224721842669485293298629925194145187506722386064069297106470051210843329479680068564722682819383764932272178717419606061896080783599221319309569739782588951508738205801750246628956694610309417319493751997424709991892957671334012616122364487568956692342477242595626888464356805274722508833410083252192585823430069668700643735120436662473415045908540849150783433260405041393322774747332279851001727261847486032216045537696425636819830783701331823644366538084220943662774697035107476446503355564162846168591226021428436156370064053137145454708575650472482642748722160673806016922171177641470865165299024886098241389205244445334860326795063899040304120757948177301846402639645523135094612667361410142455003075553762950210766232300834768315320347985754376165730016239902202067405564664698658427444207132048071643135585960682511695802636216064415486973818117285385057175858898207257331027723606486439048062505565649179122806136674091056143197719286929598429808027793377178632355452714598642943098953540923888680460192107499282722993738430964704109360063287696782627032640725222494121600654385049426381152300959114706512632558675018046813557619519945071114164427285702191972886261751953589888270569297782148145543103832813351275021694769772870379091561837392021422671243474158410153064877397539561540293436013442277011896233162968246039229143215781731377180585559607050707745964390763386263657248084378676512445221334936912567372458872572197854518227740639735146334450264811619195891531684496112525439570438484898912311385012614484196868908007948514406738755623973333238220008106042828794514269948895365038124916738678024214141459465079696380007873856750352714302116959044005931334839035775031238572563393031822889140358835673146235746916248926361172839944489641601947908730956434982971395160539356786938218578070687608149641005340907160181280749835813478864580156220186705810693866577972328271799715622886767633338848016706935919860980740095593697822429235239892909793515771538507424239532514678228347010002578180289188808891936237922244210499823532459107620936049676533177287920965693735604077771965704170586668030776967874065246910730903961797747484019715919556799043841170687627860665168560266948394144348448697949145244345607438627350270033699158101066180748374271698776666915262848756550548756408165385569110346806279141784990537032605650055405182745855763137049661771384800667545966923204331148673102666037625354447053284096107532661647341523197449641346325849969626555039642145742505644357955661969368555672596681591978641783564016219596592217692634402087683710253826840629691354090214571840259767326771341285658629349674753843020339913044946019732144756081073327266100399312058326258443808169646044137701378140035221966548661088802941531903783676471100411316327726351360658894910835909254004398711248207159280942533312607268489825627563846537693310479151468786219327498636490288619944997995762126787954563825154988049547318985780216986768437771513780815631326298098301133395276096687325849364475706458555990353759305112969825913285471671806191787197023457559352995824206680402011214594445254854447750988971977217621121155460585074527183146468444860955759576585107915237845985216240449366621296482713565204436185451131281633556201804360589731010298547856812723737047196653998253333618707150396727282116787533226589271513744329992328548731574033304635348348835124726397111720799275534286862602476376589680912511356242985786137039281869785743374829562928853577885590016175780137940190747681780960551426076211965968129285706534298770305252692917116461003528880263396165378127477732188445908156084231916299091920441836437537699448577829853484482090204364849941161673096058458832431433417478315747253134583122324961541837177960116701397853681390387245318215705176368074292769044677731013383321175060838382445734023524167108160753942688699308344426942078148257807623324087983443212447578404232624267456878723555572507492268587440012469449429227340097586305556520989852512513715074218424940208833999691680756339377637998029856979765598242620717846389161185119768832056171479135465630079134113288346406042466033036595626637489652389017376390042270720154100574022389369505076232687934627080556021642675592065324852211137742688365589216707234734800558410416846816314595114410264395916264211357630486432608862501658334199491787444566623542309897951908774957782080488452929503685201303968662456455249319232331784115959194864724790863168432601783367993016871031368246167342374818881039479212481060089135621320473087196759957296343589182988862157866168381728745906660772809491331502364735919576122102922373199228968837476481253468623810141241789658507908340270666038394495190249778345137410853177169264169950398079668504932342170822921070719254374639143790347871607106432050967005270285920563118019234816998079670736798877539127417036746885582452879690852880577092280687155097576029566789667378016643999985650377700364528914173293749855793799160647430514059857452427133847130881066199703472081058421855865671391443368964640044874454564401889223309276267022172079100890795435084030332302669937864874695077849562491263790922820430936356029173355650846292663574587244386692547958893486750477747375899831461049765536612670479558103510603554265281407572845849229868615363998472799766587876671024744532812317501854965829802475227096278685793999105453502676345377791197548037829398391165608029604104505989574131571452270069385886189534469842330468406723077013791062860999058407486069211756878682046509221229520411853163118336005321255978232822499494674082921210334568837525162909703509605446621527986806955212434928557254553930296761820572195499470081802061216718420268214088284373287556499336283705088907925487002272663278219082056507938590954492758047090452183231686840443268346070748170590057143818201687776789580789972402351953715402124053249060536930872253125108914204586217874312475038131583294319768846832485054604297522011403992752717148153704006139830519133836382186818362842546337056048714721282589996380308621652803640049302809265197339512595517724837177703201203930507646564136899539022195414756003350118993597063537241503561039819455686883934215308287646915006376735412976512536872543690339075537118792084486525346677605514424542509768976395054133400056187207707287466994559596474133524284828745623758354986450124585413853941835489859619234497509043248485025195688594554527896396205001677040178752180170518195018929126695914939684470148399188368320972215517897192034372176112388007223495077668674551923683893602459740299595066558797981268258712695006502161297465846650187769135417747526556666921683511940949240178620017045216091338343477505379833274325540288664477456169101855450485358206271219474304562947738492185560364031286956039876391131335806017590646789306413067154220212132709284692869613258971827006406223261665468900299544546294287472239743575800329754162346855800090714979748178369740061443504353570692788439474534176559484861047889294248415928715747614803012619485542809868764941233259819159012267804421368613735260689150135381870883758891471621447244728140012802205361570972251198255902775660462745064104418217856041612619645426190810151906626700059634061961184789219109296846819319708033808883117018940739152395602680305546974121754492802952657323495941489404305366062278047599812373567172063498047028852029868842402361115087336035451389664195693572524033055375133576866025885082054968013057864489578723389099723364009313829402591318171583990474810182339495690446230105647972932230803218573661349002131253420947455399982503409946099588386704403693033816284311386924386915851741590257030882060697920196130283751349849687338957162323443214989187590654075225280436257571406754561666565819544548220319115016278052078410785136083336845979236992831537576514066215810509767021691673306672978103016238373929796784177640827613590329948842829230132380078061445080037337987826676341929437168607950070604351294670049379958814928260542632302806010172688277446614754325275503620714072802870664387956195666484297739133540908918342355132620061874994099485524951647541014203832970848281333495553902385398653587272727971380456901480685551046304497880951166755668784601336183528453183536161695020642863532937464516207284567822251704380599189523067293813967697564083940751103102974943392865661952511817065030387841138917916285322505188622987119403662615736079710886085670658639659489261440674520180009590880305370979134903850902605730639116542318043871696951823197463422305252039908548897262208426997613806962246754496887706433580050802373582225390751276119908583731481329911841628708643225800222731037262496077483477624895116996156636416256241769131465341688807173016821999899471977124181618063443470740493223215261985163072864260731696788812615734642612686838857940852327043067951243855036399418698589802888982819672064823803610926283383545295191597460463137447209807933710695492021142504709751438870280936553416553979655048912588949524209302033991136592454920997418942926895697786839746048133541428232803070078546027796543350971822263557419465768441647064583621275544450934380423654992828780513690339041829425703891407489100696179364837006245051520659802323675825096428846479453816132627494766613471126211001177345930142738970939417663558174215328843560746736313780311170962229482945418855728552062238672355240296503614623033162968083449534738570788101067969618123856942459018518184524479079377220978658238646432630204180646519434334893700595977017159542795399651323496748749295938015725416863436944020113465514550010779928389586084892436568571199685872949020326105109406782598939636606079667339549135761026981968113835224952997617555251096560052156064282158378204582127778870513018619169510384966170379734130010583014529063345315384182578130038169019886355510389652045737834542113934172223718507857279759857450391401855090058563509991746912542961504377807847335797220901192242140421245223683999024876794950954023577583357438006483778458383480602062697732869025511143053976316955715871726106959780743984126925263268000054137824379179169701072436430518054890618973467805139909974373266282707034795866245116259642197133497710070792000531364683911378774798898955306869678819688903596030271379921908559860874210459045419130496770194066137824347779327139535925684279777793000692267355050326271609696450982269054430551734149081224418766956215042467373743587290861030497921222810530255426373477497292479304446355856435169320011865153772731161130349946023671778617133705088008210908160485636345677995048060187191977926929815619748521062358067744297830225998343728770605008168738411280046799671510610989442588934177565534543847608748558878990793503186753558622538008569793339479899105848206750079734092670651665440338627235263272354465647754273299344827345995133559261181101630949467593090208131841876514568033312214908416019832722646631839465578149983927661473026507878502076014792435828559385792246926524606555824065788964652468732624567521411764736746689263145658256642092648849189057614776074220256784886794933063070343811899640663267707748315744621308087505452518261697115454697243362544751839332841254875062083707420034819074782466560264014084130636188006260335562331230064928545168244473148862390748134077496577208758942256780956020669035609891147960018067222283993649766014321792660895600474814756017944393954123831299489379357465162607420362316758765812662499960685093655549890904246651649493394816656369000642826766730217127262398267560651135430382475240290870652140210975471832114541489921296753314115251159703305429103315762402565751531318069520193166496742810136383601385087803102267337484535498261954484435585795695460707476351744057448396279535582835290723696954107894737122002457036856031518546100769650619544473797873721892531966539433683957225807944719066460707923951636509551905054730222134455082498165534233260496255012507889050629520609178488456386950289564047357693271950112753442972727469089623640947247359951812266113800214823080499850913936809333951412052125529933880306536583424382212247131697484126005422845023489067998566296687299707881531874143482138915603381917084966051679126483196134137733027859537906616967250030444392749670694291483806210538621988169734103398974956857578203702368508059996144027242794093184060694704155765076272736947990887079655216888276827842821989041080841347453292552090838015453565250320272421560130938359903538187472467448383329531303082444951479497321326877167004155861560338464897326200892078702106980759441497855396750247972391146891530286277480995996734931200275764030423810280458807563610848915452145772314998703317846314064432377084848094514322365041636895221202323699760671374998823633721230729012204838360981933034418488603579883366132626723267236946269939671986214161134594331570172361887463327271889440701236540255948596933039399186975894974301107251116326402406042131553773810177439066233431783479184281363718578565176951445893853844278621351908210912154974624240273892838005193459705117424491378654584865437015425669272068607906284480966199753301240982086152117633600576259086643672732381210743765604161052676498255379456328888050777683536217843116420898873839204994607049976382082645039184232531184722675911375182914225864326712005180206767517828488320540934490460097036988008722288753752262926053982263283968005210731387452648200872440402724290854789343377321448930328447885104282089523265695920378074199089201695614319826708798788284523521670088970417772719084676643236904035570115711988070272076451961229523781131731067591049910129891209940029056642815252598051671749949653325176931229984955045512927900003328976411056045520683397588867367120834057013179890925785822820474828061563831246296241675451399950727929653344285618758950514610417585371704393706873755162714996141265661948560475543233654166097831356110491024863309076351709733317193139811966382497964223873415663177213598772694029328616999628323696907912616617403160345483293401321369096307419349701266403506472781065444142158586667805295795257099369955019612542424790167098574092505935050469213578047714876897960255487286417532319069836400482550950064103081185562925601083550752416932837729369847318800469565112669214125007215537077653656145368632483827351686301290660477203279540109978247075532581385564184792673331036888645584382675573524671622064811441787265449065619581310055717082478776929205099573871353408671598628987652701852062102075177115332560456837995123071473128503584039472438949189508912332122722704234891675734316412366668508830906103494018550823464738302517458756702748061058221145544962388730755870118115120541399905000565561932442718615241555270273479728730832870239591908393000656616397211883120017763795944388697675383799925906540907816175131340269097350011242504089486386534271454747350455783665690453806802697674576257126121574456996896919488535710258744281696358492218288944461731589934937080420555192499396572115575999063493198255220368802375258012644156750344398327166758642056636487979986999546830048616772299134814504663966500034973085993946718826316386972649486844292767051085045616756202644795696969815400537762850100055713519447443795005226199992292552051745482725595194478567364329717324189526122172969010382113848849109880356903477989388466638576604330079099427344128812211891853160058021174480663069420999351363488048356757614325429511022952018916183541186422025105496687011678608006804693744906783281069885808212374973331550294702298424344426156364031548935241045076336047854637873532333819388784913218009118855549917805920265999469756428284333025485538066455175920542112135148854461558115446387785690981765129034271232736968772160621770507260858328491822203338948657202295105767729712888797821997529427795637339584671458345719175593982755715759242990220669197695303152934814266707315633878395732957483002215351024920078152906263631298304756084035194451764959436978956160036208589943563410206091253288326481324103067884572941700266553683876341504612648481776221868056030457656625265031134319870235961801381996782801975343681846219305523849119076659877025167714388726233263982375256620651382126909503884081189354493276159423423963818780022745260270945095039117120158946490097349162595749812917183956689948741285424995350916331025837979378053844288468053263835311242667486450479345780534318237113437783442792635932471689408279546591428254307843226066219821579767720171974576852563116570303452900099123083647536987833812351146676782715443704857163663555552677564049983746791195176946264663585429513584965241633163755185294346612122026866496238440238148731849476021796432105719074343421357929616905647562633287749733824363438871456892754892363906496398135279135756527022692156749380694979839806024762733230746824551306655819323663265541701468812836122064624765517493246109282222892039351025736374736192328457763065111448776900652550324407694469690910124464366063455871877586023822906742818182343183953289666453467085822827287588813468260201099232462293711230975412445000813515275271182642455603965439832388027165976469386299009907404383556548947679548751956021076189443035768897604781895125923074552874177402412128799645185598020525588611394517005246106190778793254958904323121855566531870741537402652568042188535868403598231912787429131625581100644360743140764706842301384386560528218043789331896337916044058861324172073429220938029710172481959846389725564060775217991259446220545902450184461455643863975571617755622697362253916969742136739713205648476063416922066807451517324976834357056110423033783673810117605961498105257744640387201472648409681421310837753289856713694421155046963467545596687253472243814653018436555934614942486885496077171191905050036374201327858071247587549149345137658915980709994009939496312496454877864493262145738887499275740054989513192899179844141676533816115628308337582287583562285290929789139438557918965227366066541918222773695879742929749046093587069610389395613765332694538336779104657337392269554033034904484737761936695830899852061615669580884902538472864459478551824368880782502145793884279273334470847349847025588868801563918196653317791051931749303738881998101758915005000461840766175088739684313116806177468796415135041466598561742301023977889786309542877072477945283856310529988055664626505039250557277412627769753973104490299860391198550041262846488423871738143058585069734442817737348014858909378098667677057179100548051666325837019721917231193852094781788733139812556847785880288968726497641718553350853337798952589010983678348250407996029114535898174180925311247608491736819978161959330697424069461160158504498613629645641136403953692968202004010054340283311287982090791907002096355763029078916546059983170876806598496846603346340734490461328028907789411644265275455418841648123587139059276470906549358525154668146569248771288184580992459591823597510860486867728278846083250171607440223748057502523439966196073432403517617155575253100389265712724919713637545492769501919487401871992281705842050227889352646229315322270220794910661037300881126162054932448501397637447052058135074849140113876870151515279533120050117208514763501431151298953018520426751879392447994209696128678329734352570550536007453725972996580103495024826685496144405382422607350534725710650046626107508484550124608821602537133434749957077794246141612340629121358345646925822213212972096802408876361519214347525416777114499503344428464719260824708444558564654038374903467825292148679375293203858213594455006793229299927241257474741712594303929676703810167458818339488024631237828019016382500968188894731253100405610055669538853259127643677046884836268503914997864935782205102405740638321523376930870213364409233756217361540851462601729105162838839441466579704387364918018103736033977411501962861450337965010494455110487147075921803498668206634026749192998373444600439648576715548556972897955268160365100027881317033140657492963147307848694144607952929948154207650687642130311179606916364610187248482820645481151796690031806088881822318196559871814238962919240445287511851662500333594043347452352606341687526935301229326524934382451293212842401743659492857415021806589273592051554573004980216626242615552652125804229533741091550076367154323634043254819794644254667040663200043354155806749814853313902207383731437776822282968293301111079921797078597602002301425589866404296840568529556980016428628370842741505669964118074808875589869939925834272231840818592139042477620045489286078307842703570340243941575804366359860824233018654134414560641191063591204392836952965057221077763124658419949363922793035547142280714438397497250587861781130622551785117966439632756107101591274483760013575335433768241813757171918116861263345893719802056203447946560454507678938078942721712290028712481042923941771434664187251254871102371793503657313391391707603955899979029361064864708780954834752712556134368423294245981593697195499657403306577243624536330929960111583657199206926095149698823296592989747458352301146792545520895850523135194253246284200294883634796162390339490312283099690104842686129409636795609365856972352209478839506748498403145782407702051951971059288928964983470703742129423502845193077069295802739781962087471961121837982174837164387357265869582855071141327954025957029159727337804369054344682714640215301173208269297826331631802860916474652030975610877480790196313060499870823371953038609751203236037123703775103785564323229360268040420448390525224622259400727617192228242672141064694517610845268726707860472088796269368758765476515368971796275593826405592034775315972489571698312664606904464396334084114764946312979401409927691793471141024934442067307116640829226253140850485517057695565648620081207578932503489283573208328154157309654488385944497243708475073998040649100838453775631846351781169209018664801689896110272534615981125109389622502108666358943144821386065966463205031805106110989908608647672319382855500356925797912251802610990724688421063883551556243258152406987572219950853315709469070395903498788061386968453296143577478769681111378565867110671122541193210483777718461671052230763384413939164568584975244540645811679230941678719368071976442152104403944188499885957077315826691766914318139105207923028224536212187449908881931388093797506757275144926328648730991326569310695175980985979174317960801801172116834893093681688375770845313150027593449179566804609012939848266019927263889745257338022203938949700020461072321421373721274281424494794350018849774504054622172497913344139168517536920784012163158711665485465016601283030790288674716175719872730502218380969225421624140561534393448801340012055709514088740923308910209471610993605335609323208044073753609615917132581066604410129339888786130481203102246406463333050643063840403809390935895092892217123439560523210923594679605754632662233232158799824483904031478425713120063014094928734115646862979129190738834818478912200417995901569366192391847219852682236442339379022198628003553789530385786875188719241935183009727871172393222635589436680578450034696366595718388976556998455122484336863571488588196987449631186143059399490249281649528749122657207819977232183763039055605033543147313430039697210712243391562265304092980825260169447094058691264880176154578321165932212673772066584013780480222928992438048169624187134444599065854267124170100225954116126771343920422835195667193850514846652394795753434105838680068574586524850355500281923176275657992684566929415679378586640335638471485357162722762714711687667555106429618437017358467960857239540277430060577278313497207643388662711937934495535914075474466797883200346525307975428350161485916072664627710321295175838482686347344915643575689316157308596049598157876165416553701267765551187029548633145136172727835393572818075460375495902439602073700782269343239790453880731139354230632646313454866710799854748598885970291871215531543045718453106925386781239087064506281568365806987700295475864899591153579310667843496413748363194537980491681642877416805003460592595643518570997161520381792008164379529098542978505452529578341920490508422186364782381583409248402125215041170290124232819894316580205983655563845522822711118247302556113458076450536098442143783839133593645232581417935073422827729178605216286673530646238486619740079573177729913180203082448350792659030649489690167183433619614681567976787252034761459921475057069378502133805710096724583975136478874161285230353155525308254993360140621597873523992422716860157075408457359526543665805562629578053007327679496991014055451938641215428876183958019567564097797173598475951318996984272932084955806440732167671205082810289486672212413266702647126162764706295338104059486058521420772013886209008000595609011846325638751332738306075758224320924847280332466911106172878208073059222815887938153313157872108877784356472177948544461408472841754039779262902170319298772018739896865403491297809057440565849069537628341833895653626075488092724910588728484726873703665947609788258730799590399385308530429395721404164082177519125143083958481829595104302469756969415742914295608540956663796333294877726056917144689130836688271117394267838871498084074065092736954202624229047298236362315153938023012981664860903837027080723275795424989997184003150231331495292665288451520866748010519667087400799828123371084112181617748781100488094887247246267524239034587595235146016538346268415008641635274706941850255353395521404349309164063948178835707206008782516412717697122042436665993248850646272673240121825793874390942079939442201968730992243413082383675798790961183517510933941822686383942139450427442185341936041534959031850098325133812840501428057360033205946063136341384014315268906128442452758227439645579236666071176510772662391505805776505904622928015934229767962538196163041550815012145670301810161095000965164641773720294964794780768168725021677616374932228477270432496124694312377482251610943088890200990018373763800417716602210982981731336111528473516535828933164644742615732367287372443741277549247337199544084156415140792119705304682008375269023674772752994374088141314881459704910446409844484736126584705274218315541339914589813638757867845753503925814863436945425488075888048073676820930564875583320469916474793293504953100153148279426990453796124666613740830880906508957992482039397886473726120761203984872765453202839986248654742418917328161181794463747587193455685245636281966808815120750938479830464946490596938773657558978981637083809838226855135944078522002454137943955339548910678136940659719060223566351632444780314223410234776712942285734761494974871831476982570126724144784972247524998399504920184512426843123886154053119494577896656546019666934681133032612152050532428482401517816749097170639723128812537325952276727045578049590187012923601935000703893180557825154866318601751790732195340239210135289637865750493399045797204615814674398782565632000687307109488481974478567479501435720474077137465850985307483331916008867908605526558439493162100362372082974119529729755925865261515871106901332167040811898074732026621589787281851945587490108807141948668791565727194435554090299057283267003961460445673710904981658993111649607911411478952365083018529520016276127924146038527192221952838159284055999375369645904858003492328343105267368835398442102886223175591127441424728544782967055887977073327493510648587523841927803192753895927628944664667827563139924888526189000556674329373231047341558988107926489465123694116864749518756146302067347279182156847114352550387639039810969043290353797340150467316793865330804157344189106197997542694386903095737102801012791344172409401087650328183635586796752884406859320234675729133983106748668719938735116428403995018075896471810540005276813033469479157419455096154785122592210354611976212145613817713898841952819313053752826443744833093803900058762825430726527464425103301795679039288906497525354920689311566892720278084701126631764042340202579782674108095380302697700866946886574473111951324563834381709475586835844495474185459514301059545584091893543119189938360810854304241745133556369455341692864626953924170331742915417704702601122585842226823235213661390246255143236530714149868725155094370240800927264076718178227405391928821713940371704414474202197284098691940200697723584846426108074331835185041190334517270058394145336918021298889407683780846522653244691750805192823489952679708735210731598278124655278331610514504843187840185604067146238472357251505107121678080945996754561427592571273031770445341960260305590696064302278800783441065544780603293846491428730725527723681182842145950797996795242514618425421610132785154414188636748762087790148394286527588672828637214579841542975066330833068675342525960190925586687987096618303355061224210466979528492981024644964014322910576338810615525066603511124521264838996382840125411894907530309237076893742573975415057354853852266686432863036817284934701537723110406024634724623741297011295798337675703321801738633557876432279629158610612073378305426316359090154740029736877765310159894748832810506856196239512998860389109727424631382066707509310707094744200245371793574004014375659886596318690966372028693113713693609041109251625382622182485239961258560785426090241041911791555906224432458919808231828844933793206777688400033662475802580375681438653662473328217379409107066404836054584922323794099222024550503599783536476245374373013081161847720325214897475713469589284471250511541418002953213685101195526982383457690024209905483595354188640572057578999552588131356320639158929012787794420192915689319178240641161539549016466063362744806203412513543647730444991179477782667329859892531519852225503784326445090733965797175742965901633033782054593033862076577392540632032785886063389581644314934333751597699395265926563849770833220166575220253998803773298420547282788854365029534929571510238153591577007517281574700054589628883250987243069353479027710120645706121283937089385194963136517029515826036660748874869521666376123944428083468808032680085344760635346706470452857540177475509243902500568197290638757655232749410918606001792896704346458585635566619162664341021872991323800334265144552019967083842897391826234493987279877974978092043328139949025648266185411075802896364543304430912969861196524753910646464850098567667973957976053948622620041903711033834687811254612574365229753924557410441715802668837344233023708463299226700174834413760579164077778784882132369506377087835093595050456117170786143135249191698740895547460561397778053758045459025558461061149072446900962020741736866467026921763463592731125093241948930347264332690259233659220538335923557149515359436699387382750578781062439893640642266803770941876870819588293965492216925881028027004923665544379134848941622440274965795620391485382809447931339333627933795412612576414215604705207168979241723763886710227009830429762969220366961418496582074670131121997683315132688189983921379406006420504066437360640811866753194179613873033603012092606950298141900805202298889366208947526938147605902920386247973962512751913309899826417285212260903003869964671613631700797075681211383669543796090125521262436726450038144157602329074085130230642659261670086246323405057144582092980732472330959767769866953285724292375188492300455274007890171280679807669782800229741679920501488558132321366693784201135037543201919982935487594206569487729915280480798660530775464190577631357341614243556031688212701967081893166836780157276214736392099843949439808208411146032769096385571281534865369895995601540393593777328174569669234045249948566066339289495040276523193676257048868845173086563430736383632298479608481974843131875719689713481723298687416809136261270589431239017251756080111059189944551744317073272960240473364703712819307184008578513325866107016913262890958945574566628741420722869804930840247844922248993159134684631325419829919659213586379983933165323172544637925273408457809807576077034198085412122999784068834412326137866117652481613105174170639684814221712316874248662354415981547142081140872764111334719591604288212527280013862720605395192231123332931586175987082823650424603799048416586417720706893650064054400459437904739174325027838790260947138775266211568065014176182805052432846496394833572622613011762220631305609280783560999661073906305029498104494668796752709908682267788869502899678614032247553058901228390340551263467217555279792914128538338944033809330419983347135716910288472594537953604768049977484297965996252727993364386896895289223847160218229500256909930408126699505863236073068109605600214848041608131455521054134875728090430132281617348873171634578228223276736178764911758306268998904088357392205177114523326152743272545560848190975993720564696833925406427028696582054526307952613795486526118037335906937607802353846756656538492279280934547902578300774868589089846431103780800707907089614455870092920631946160361143493253219787146951661114464155173416769019538988674519117599781663063145204779818060341396501704451521289936773322563155031742049588661850637234937002733798953934525695846100665372799028493961825660769393344287950675514198289648963479150843795827999434203145069704478097118549110557922121023742180351792886934780172568356253335691133633444406376816022488511597300667333689600553507563681384310744604348310317103813872239020973597666432792262021216326086372489427872746150479920699053502753047100736934140235501642805753495382696900869267754687907423475624097658370437427864312735794161131628884385221962851058323046679756482916267731026024966648468969746088938835854688952011815415619488216589581412902495019001837150715561629452836614480915099254487093168253416837823502578979228400907808193611538812838206792828492250589646052416383802421910268297523582883177701144008147978599736847792270485059089360779614229735578107547232559072221823058956406367362400523171103502039173057037415355849375762057710492764602903934066055185872889104606888463127540760716290973742045858766117301449941271693050213504528503544669638384071295255969597985814699660313777811732008016143715903391581108744159832986687661738381533866791671428302022697946242419979490061288421409891771456841710167340124169835602421170493505993314351924839485996046148940765435579736705162885501091991626956240199997923125009443878450108652192085022056540245552741417456325540584165612675466035791410432267983663037367349218965901719464427091778625770843687885997381847430938995857257639473884335985119944099326479844684796930641941608858400445322172904474111206820369089796723176356040371592577170773964638854794950105025345490192100417784514330079684543140150269115941355956979303167590833147054535942367375935849327569932249036361484778486113859651271696857407381233678450628827357800701407732486111192907608024592924632205429925533461569240055346812982592447487086701308799322971947456834431490963694698546882955295060326702733457795600148179571613062089941065091898438633992782654457013714653280242181254305244403590462255991777138056888367930449724379198088774017796349155264439891966525931532827839482089973063056786730521657704075911168226914131623373980444511655340919349430915640281883194379715140079932473229974329956114250559571880746257286522786364067206423914422409866130416433355126531604784545755408008243706280593030685722768319917846141739219964689397272359408980492077113525337709484187795865299052864763646519359979720360019306934980264156098503086238757693392694782866207738758756860261081691476205253701798320590486332401950165211773700042615822880305001991719735012802712710122033950112718584457545631544650376773657201413556073198052746250215128430577612553252125566313637398227931040296778539554221818916588068177796757992897528576498175652145474129585462481090298706946604622459823793424141175696239136741072570371666827414839577478916299682295899109257976704307210479994723348431116257766310945419868760357488960065492013865767329704419712573020271966738132315813581856949136127864289537210623861106752678462065222916678384885173514693610979385807740791609684844694203514228745444954106243781957053429187956669890315784290635540199023755582537900485332625483597101915574859046123868106990041707226436894686928812698133562773142180635864343454673317845687934018486141618756661966148334865128910291162349899398677997043022895186862110656729245123369584142079101726066204497118022370933559283107361213462440934428711933994300612608945031970794208962406001615627412432070313929705386360000337016861265858439413764769693394857087968298577791545695488650232912525324582183372976697185408000094624478732075686102941006384734887210947515574338695151971921848663388600604575326370182521319702704071473199527256467531679667632959135269066803790873648588265089909048014868874010989637272999479187437937046413341894387965740245950618912027648839135660687431722583536302725239573954627280456139410116389913554564968942281491899664206964297333008354569385252702737618773208862035358986594688973016696442642122876948019541903179753213576487609825784340373811734010777779713861808477229358214232917815503033343850424563270837335751770298753773387444915268383139564724216241108246577372135027826980713568620811832541905299727699276981301998322802488085430749100233630042081635320906037299744133660759456763761706515714030086868788587532671935155349053162410531082884242884995248984473941375885331606040025396144701117748777662040112166157652148478969442382920802471622351089289706437483139039900519949443901053804987648791366510747129328189649546756848196867383730737521883459252066249561690176823871717233016152317813873184197343316396591644284695953523574585761705592204704919958048731530674693388824843184598242263656435156767665662628176146418674611386141783258573968781158707691245167715458843179316463657434468852098472450807609216253725144583595917407228129637834834755339615018111430221048554923804892960213279878179635649655063464068032238824507112555186134558154063759640847707752228055013434249725745521934879779901222445311586328296149753582450495289994006231131762656055953640128103778360721625092981250233812918370449524936329703480340906229642179908406450056833261916450136321150007327052885781039941716996480928344463008969611048027719717004828094321211019145312678088982584251733901135183625806368535727402763026331847871518015933887748523928782062101435323663352734724903500029248914101348892904260942658170454914730385771493781537167227550198795143986211591808437002104579689821252308298361674488615463202201203424376993620899626422642034558430529185967490663053257199107276186074341872850851098234734315434072767530570762628533649689515025140756627610928754972758121830730163286817138773733310106001263922030340795357113937581231908006165769025034511734404480543015620799965339265401680116776298311295230730053180556129286428007845470003768792742234878589631365702495139540528027085545726434781415850881479963403379723490211227668848057249819537205297498496446114042150039538173208108105416399322361772894592200250436904462802903124592423274996435519952564773181351812533750017256118540280215284751331163047196902363332612752035313280855879908884468802154072527782615172500236261332179087733585922582344417000567952297632972274324671667114905105879020425597180791360257337780321106425567779351208799799308717895482412925668001470757101390216885302497977939738429621695771689294159062707459052077129387244182294838846300121848916939923310313538200992414554204772796143969622945307603840573189541558577285978405730466434347338816553510261073524666141092381325877283914923336761999886013420868860926741678601857056303028723012580486226889462031925538176412519474066621095998946850511732163494684062073541355855506527133009258340924318514844698682278892858158151731295814613669310572571730068389003122405418772267366470892249248798295282493366366845065714344553309696540420836516068061503669560789040019608050031285742109842631262495339182482333176480118820181025321433686221259088876458880577142329850511109888794468145744339870556670707161114275710336105510563959336496458694976898877220638978655569957822065617208787156707390393410141596731765914436348938188224151698581042425761997491256309709319569256672621071751962081928398543668117992214852877148776688032832703775881954860567722159679294176566641748419651057518368998472152534907441518663084983929565710367724389411126457639295104763072661284436160479156121681024269176325059201108020121137536134342567356280724572471602315868615898056250351465264034803210682693839958208266127036732815941223785236070692655379785010730993455776650631141360846917846211427298686789809982156923544335934909293057908441762638866186610203086941509000966441842508985324917756080533871305505665494365983370118103707257588500554682999509046769418306383091847554319245538906052665676312102193729481257761631911083403962428988070648857862310483537866827965910342312550944994702544035644543124784721502747003877310458339497088365585904803786234277738693352061405295778341317103057734026542798267212592170734287742900403882432136678276021898796164423741020578059381510858464350995600285816121196115600634547199165950282194633214025293057856227353556868474146082496932886082148143975671214330087843884825304157070622754370058799071593654356901302413722734849750402145245434453578437590170094254425302582771224341179086396426253576785990175294416560860746023062751567778909818358109581403417730486746945679757844504969508085662085787889326015398526630743394271058457067502641418569872581280699147124609191961814642406440484871625662119519804975535061590046032897288319410877435428157584790105117374036875903997800694613947972856048090271013945857290689717399722235412588114583085723376838665989317838206144074475969500411241314753191320177092749791157177756427104339302930511787754116028199313034934592412609149999619990245894918809406396056641939957277555393203384472778347809539613325331178239042639663061874419053806722374332383437464223528617002690640360826756303832697550559558701331518845875764876729367183571755316633218501054978284325874349658747959117639038788998528242928320111016944143271845432934720537747887733926030270971687746293465439977742344294111315969694322538775428208989946072808184472329050872306663494476199155501513273405071688192929117722046284128322618560805770492027142293868036932775296742703135966894590349866953887810358947885426771784628988530817554774491331599056343634610968561983619741030879378676687712634959347378760981233536738502666817617092621993831387470293472963326873040185265804999396665858010436089539161152305852461543332709874116031322739507088697622781844936789578133475470791145534332979428319117681687144376208228185081135750525859004882380974958057678642996184788275968218065054561923132152679886121232510989105752218777052494869127585835979273044506595729353139300138477223853794893923432290270801697909630077781121541227608037388324332455188564045257672511560350931540669317854305043220743038866062747193177425751635578661490894040351349886063552202458314627695836150711109295710975754716970710949672539390245350910373267454603445307554307658790625965606870726805993319167677952062129997544736620916459150453628357838580755657063370694994069213062488170563337736478579235138116062039415213357479674726455220364908733452981991859373483254292057455263302842897448984293250386463048784911204438847005635096508538100360971151379345390345085559150420308477726090199525622466066721365661982587229623153143349702083655803173874685083767616863649848866085594640320735821464330558258781391967073803191413285591959039264425770874651949254081279649219795619380111810033579544114808637102792700028004725438683104948081938548406038099170427135307569727977165972999143572361998423571148847807494102951066561402765139561016244599485683208477178571045937272801431970043913000947123960268911542007752573738714878909732894806844729776426645239545484119822429503992030947273035611721417500554374615641779130905446981203513595161852682915097238956807119113351149161243655695800704452064989927767404331201987825162480504616109684731789077088590449345488568326683151099150302540475376776236630894424561606992004139694435331516093867117298054665429177342864811666152080386441605972834202495901696700981415349942261430734190013002691059528883753098454615280546847869629044798516109172322802912692078019760882195231105606544328083191616855825061634762402918214341355917708083697989338490061073264422616760011200591664628930056153646155365465924606271981757222269466281234998891536759458844735935086707575259746255411004688518416329847995330326135329133426073144781479157480653851700491944642245455648540538887247463910669739015173311295862130603411646879052216571314923467162591649132507652860606862091431885042922140619974737165306406759386095507311104645942321534191615231852347029409279173138613823947142610580543922277463967966850490688254527944636550096870176952121917191096360840758165859369371512218344009628004806058321920671607359113945353771559865157226847712640818051386750149696590977926537436889116148744136507566729825599550952056457648752761956260887145033850819221515131477062300619896451586566695533285359724397139400083736218709262573270758981573034496419819425728630098602980022885657059050339995561496476752568974555883075633904629608104055003745587794335228538611751611881234819945296473931045401436951748092017415171544804942944693295634723427614924838699155361506489399813614836596539351988118674729183105128751177786882125805749710245739249484664956121659966593432306974318897543521064362510431329325882968107966575038933252152413979768526557383855898043627744819604345687647936239279617117701226430352152311251160775234360013949820684322341436357978446827870673693818487763396125173819469319334115746456362429263576938543807024741702938723336914431783792268221149818305906257926177571082458895995228272142872693469608908552960626445940436192256266771495798814003772827088070667734492530979601211349115019185533261528317844335139488197422542887864064957579854428133237768923749957213876687072381018437830512895292360554044236153555751971766571505108907314488500729331683864773644386089820107696678100605341058457609463095236496729440239292417355912614412015442105080832373506118104300744476372780902891312143514874905353002515240188235515769353124586441830010272700519293048833236564043039335755983101606089006503330186181374916864245703869537597113140131053584266005865896617062811210793761816174588478700654928925338653392517003194080270231920364770323479359493044410934864957169574191059721629288946393772262724035283442489147950057681433947483095272155394867193376297311402042336318725011641122848517905613093250964119384220718422656145792987513382946174376242005629610686886500758815651099844082522777344670527385452125146464309872919372033316638335910773522205873478838363556848052935599049912865177770066020767960981550636818406376846681204421157648092342322603824004030147149004905053394180547158624641224575379373687210995465656435439552013761532828416390186170554798256325127045470284296992226013668093251632513436702887612460999563748231208015333642299751651144663376931189501439573593778850775932925673386311114571707543398352633732591022450439368047702135677746159177281973189924985798173085498088278022722081423080962869837572731894312214131322129200687734625248268479198784097091914293540739450576015634974693999782523756938338145179964317083544152285319164412278846371213248587490135215314992105763948250965266319601478125702249027096082594283388527090703676234278974567951235862567527112389426251196540195709292485396102076017790277028338125682272626942342231999124222294526196588884243573723677384974383470448727943676919159541401617313644095947391090495679157839903057649528322269604250504611485399217842005807389381846467209271531482214635922199922085280135877936607398041874764133046982701487971137945240927225348142126385703509589349611640665471029933581523306344976193356012677336170214404808809057771453623947502173450534431043032260165863885955267353866363772451636639527069658306314882440185559081327586788124560648232817864714596987199702726979098787401808371209653929761409718055380520705988504758025250109361025925837419822062011097697907571327690364544544327380948377649586317326630331960739448568935878205483643311143583089886765778791997378035349431416490261592862094393534269295195278631858004704624693467144538301538092445507555329727744894577151209250997039231203933947736849208172664295803462709343318373940107769066447143265089015427333308871282161135244046646297606192030695314481351591456554559668643659876356705581120815938371400935256226057460776530618751485269231899379425242118031879143192455457474698644525999731918499803889637701320234010762951614599230530226551938097420643958006264353062091593013725390627843326832876907891020691521497749100671109200353920346150147715931535428655412405759581854361150646477144745949918315250362527162234532263801050602698948127871367681254681836262887847895202497043036311798752844972173843479977848865273318346010391573050788395901163864731134190788567563429240526585433854914749223673241007114369273194886205408761003253401048625656197804151136833031233890682999415686220755455542141033268047988686907510333926110279581269861471330878315520879953949288573737137625206751253333437231044650952361742726211542629842587052048079218742400603553288035936528387968000413814022475872670958181125376271609968620825136194854660359644698154023487402105506902667864036820838643254320903646952655575013177704673349917662162447988085242498885274371491546838615537977214865457257291249108024471015026436848030521521332706200562097414399479606254575630928992111630927625838981604564834910580693617093082947863275411692523748465048519133879934020750349983851471721972502345212762622856139972318885635050990263235659801297804784668209412149549714434861401008095239902059531503081321743765769295016034760703477482257043657734586816324088439876250991077432405690690340955103959291086671027102999413515076614061456262434100016483319018668728611330017962303359227724526194315335555326214994794578272325971217170533649698606566965793633256979005177416603984821409666478066335926570464283964351237975445908150037404592841339516510741459863075016533062891209638051121480960894563319529863140040566415955520853464903857966512412165135242694058308933158263051843420269369772385192977162793597938690600890674498808338232017534303270862072737094651737926323746988361139357789501341038160268105848062105916860640896728808246708444790735681694980057247906941162854533327384220105294103154792316359631617190780272147974162453810467764642026275310912513570820037574028794580477428137132308776678494816112448326744269037692600871301487240671574029534108447927873207754393789942308200139973424401180657947116858790553690731459667311588240091329680115955431381946146921501587934360984851716663689245223775823296835392655107910137407840376934478312595117891999348535786852217630676829032164793404750457809730265665714519677242252249378255958619513945194159106515293582047478013231404541137213470401819506692029581491110310078534701464125182184968331151337272235053353872797373424940313497546056033848282693171503082878161062045616697485747141402361972136190694025831588065490288413437390130403797824896470984364675002474577835584666629142670010061957467836654986311536463125080407924961926157540616016061167575561395291441878761387787812076389921243461763079277029295023565154942181506176018739574202452749511713387455249078743099268982883393509992133811186977184374286273971474264822957593885415278086730522809070921265867620528269970684526500991601636073655325779379321388579042432686928702821013758162594389244003570238715706587638796338206699947236720608284127224776380381347360495233699862116505634096927094089992443285235514218982178607528941658778318774645199921725587754915719641294070298889132286516799988085523311284333422366494461628216872938442265952805241319925168431267488688227984967358530780468837918691262349523161896227673659992816585823589239860313860209522113791808475955155007459438770481642597296026230945345030150351645080216189147623467029639153134362565026058597297022533808458156706164880511775712697793381864388756670611918189386719978172476736965927301641012400904858465457519129869023962084035197768527738764967656981872858533767753515513414505351643356379436904205536701947937378600053084045725892004116319766737446727437559280082151841519178887787254616339251624294680955041726002999263509425984167468104217486892601114274704341929824545254325588538382374245998921174975040198088376099759466169447588094583188887685503365981552209377894831791483019975253921577909019728147508966010103007633098127338256265713189548121252792761653345914197214734726486759009330531828728219852787377486370438194092784921749801252527450888179505696972270746463382961384238049519468743935520514466420364291236117028690305875539732817076977356897413813114911360089994746628398734396304252524012364450209327542202075898842780668304338992805718881376478931760883880837404517703996261319748045898037688843839501824659183472166341508321204468336176464813139440573332159214047100269381183091320710870249924556110841941179659167997919671692042701288341426183229514821686835331461843751553804249749071626711755958116865683145470626560754170630872701186936231658539522241151438674147552480133500101316177422168613076993978463729596673312834563006273536338689558638974463193200321147727670436757375956892697834497415945596203139073113152062750470802457832262809395466199384417743471967720100090593381929498241300620491777066891142442718203048348679509911158650044244909322354953523014677925974089176709469912707929799645687833241476432889663751936925160432045426550754918549903807123910829183132286420515651498623052612166628635234449047245136344643645554303650454728969721475786185898646377137631960478012533768861690538816688532828731910039084601545294481509078718465043173662919927562216697495568257451599092150087882385478700800982061351059641495626457037180681106619815995067236425313742317691934815489886506913567339641053994156206074815847332986395246106456083557858208563226080116352362216490539661208356491325332033495333051468490019530340569180602882973137103443081650481403370227968104322142138764638859417691225519796229839820350229509505255776488054207502076128788055686837207447940726460295889597724734190990774082559073231650832065106859211463356882002413777385148506535671318519974748736179661477031413231263540646936506051519824233793507838138744807315435172899085271242515558161985469855402805913725766165134644670843735579772301498601970301153909485580147205512859001788867387904909282189217843121980195198323040603338192349691024548805392925475554575552090821959045853249911903764517774228086035589128029825801205979528645839511376724627307467803880861949502241201156404880178836780155122206834039059224649534816261321559161701150594234502410143605183876430003011553679261758751916741460058609315742628665649561772595433874460693871105696861285860933247902100532138978553935261110010494506570990568843161918204870161484026193646966742105065983700376569620367910230009244493106345748670822243808060161734962323241024894161642979715171271250837841973433278083942395009127458567034758985071409715821633374612581527997662161491416664947293327911367925998412470001982725567327527533125452770296614110992533678861870623873741311647548342735355461121263917559849090901536841837050950619719198553594127685883507953689940416453601621086949282761825601398121296750589776310687931638275985820192904238135227064449442368867464904306612673079027488921828775130734337284749240970475000698516675639964581254187879923900607766178932324498295909728830667454814185896662858188369397340226697378387531186288909193447543089862870439542065759223707858758260648460765103648635003914724414427674053618233444625159303325917908359768192041776429021257506953836272290342230619506724907290459118650333577958518472644112771859971281863412058700162867081890150942740906978453712888278533372818630394135804979017952775505633878849479362779797141639732334081646484389020068982392054488962057869381059750457380238542013445603104053172911098267112562921620993981546216627127950976338808240904558672430849584778569868165801549527575724837217823871453587368019049719659616864114400956910623757493930108609438491770361798903724280645478276708637830023069288289043768921970295295705204177723668652693955431817791995163867051750833197414757547176569579691671890310341319083872248275260890618072386888944651228145853853309512012799755525013115716986591616031341775265969245459105764961824631367531104467662676223660341920026114858671221046978951832708840574090318046747942127014524497558274987775081558520504333102987646206339964596171625685183046949299431271055788485108640528826658153593282721563854644228896472820454975107031018822817346122654041879167835635539976603346180703788011081914681701420231328886544089612817949881091387883885307212204695362614831086766827502671129176749832732636447030422403312980065276086009387901315375991783838496439581889668165642771266890947469705407533932852818982372670081955963728848192099739278063809426759711394421173987948008318952639929676578201294891394858253208131070923991799169926911549157573317637189600177667155628178813989277280900664712326944875159692044918818573203194361614086702095100103559391684591322639901131097155131113743422956546461957503161979048044973750701182318431726858209459609104383133074737363627483290451172254870845432670811406430855508389771827927935466665581355355908099764706088295754336998992050723406610771614276565367661999063149414486526864665620733482020973230421043585558324523839816246887551215874064449260330824596021003585618565633978348296807990980480457774846665760055380925367595814354539110384701475487530607862810184309976486337925174343041902132660281855635218260873844263624551254934154021183765278376687037179463260695011891303776424855619377826602476794258798261155788877551796240536049314546804466972341978803897110295298453087903560245352513050576741339549298915730872043463249409816125443283672733864729320302710573804905047408604276711330837199609399842769317705994546404257622018461745702428787747525454112388559392181614974805479946748126241775003724719780822173105243322994833088580182872656493169508942136928572456400197306289854176527402756329018613795207489925974222855008236186570093814169098618100090119947909690278221538070696841113814099100947111278726534076425596240666683125298609302642123149914977377578523007397477981890348506775959987256067712457813941640245067992426527736622945967298629245447870026321313605496538116968398139180521629038587123715456085755348905627316026962191897554111594111542744496308382866114047416704330152675476334295060480470960527449998751434025316953136927116695756295979149202187854154559155142968039382155300084531563962425130550694745911681553668059162875094817976798866131564633075546673110786224376496043878522541390905257959704341141256567017757882785233610283397119038928421495058737936169353466832426377055539953126446976861666876917496868678903488745506124191186140194600085739733371708215962413975422034030370869793072764837192500956019436168810591591721835550151176911544812528247504896514321836002813493478654629594138227082508366428347114845147916355225201129625268935812937260219720998811888275864352647104732201407203844257999274860198720306947007583779176583924478044480838192974867124748031543210841648697703818016163241993760415474426589563381830214148545773557262376227568885590802063748790317596063444582249403063574122714540674005682734631589524790932494408964981572074450562508595504136636617548124671499199304368886848601966461724362545264642074816724763036506854101233490642006954843359158284090165401931596588561594832996633661012045068979521630176370985210610715279726970036756737497143450848248549090406460635262146774649408055621538628247902742734330173165877184425777804668359417394787608856461350214535557871979458153434960915981045817797000787617994284342951430613371966655121128752213948092870445995395114853411054261129843932509986518052397403478716482533831956059423032918109950045999449159946469512909194005012952569494288889713837668096821373193758793821607316175374647598272963517086859606715058231897119900479375357849400505430920772509793277240115563391557887141062990312495879455239969600024652794588530700771731080974200573615265851519547326088237338886260960053383530203781285319357435891108447599366077924852588833039213617199912733909946181971990894496361264647507287082612339715582816441355445113809024685184932707640442245928605254177496137364230620441081898258908065109736130469035782393658329017260363638976384005186130466241326345719806758132055830841825198370214208678206181857244816929332970320655107984571872063571003050669005317841171266189157752799960830011429281035760539021380695802555532151758436099513688195843840380582098739926267611348430326380927238064602140649742574752462042605555529077924594801962671007168098903156730414341057885491753708924448176951057737805660039278339215247497086634531483202879067829048707253079251712444956014167210878054067525371533855594835877902227270207757574031810477188179112296698581647124124545536406244609986289581544069991107489254363797003606538627747719315202189427180880906599845674544202427764766308999180676249294367804688687129539017788620960208383297703469408441717133191432336600775624071057728628388446502135028201572782783457976535329942323132676361156368118721036455917324707467991553303557447573688609235909045811298794659977887074393213890976724056852601458558597240414741192980837070511094241791545681707281103156425070074921697867186559150343838783993440499798023326633785585878206281626896337687381494478586145331444820157600576264398448016524154423167442782622922972910299330527167926617157047512451569675476083079199991031455528244330775714067124804596187189628032339384374379383023103286478284720105795125984946881166601306275332302752361849107009669249376307640427524267645264350425577964562555272823749589244684349162315072760750354494128372614874923268217489454736569840142825923963728448833413601416328911657670348104812284476104224798039951426219700221315957932003770495805283981892029910227490040101199735836413314796556648447226147610901479540100670050029802724413515880102616863833874924490124584873210710589457722711363614926115470055281597713876726832407615073319374185824320853562355016948418357475253420487000954079209972909259493581068786542424005852866613904169206260969155372042101780544725847402425735312243401999776175125350964800355948317625151051343305366853345022913760887692861249118640612549308288569016870909549101272140864028903823163147344679495152528320017101278978791719258847045354473206471208354812483331605338636033557361730537767869197662400757991811650101040751123942366786787543314799032296794122046447700463579021403377970530236498719967010500881176941938856944955135663087579524464231393764786158002304180379707578665046195183653320282105818776891694920568234421409509395542102973575703273192781850934904906172342813470538066818707420215577639574730741867927467904468028841777514774950032727460177459750584512664974259657636401800134145864119427217153292771349666725710518323581399990371236101511338224002329079908494081859947984250792217870958720891053725987496167561800647422433416975215661675386500192147391764147793640197421856095740233766449739398176126529216296743667912282363491002425530332602027509426375909287983866841260708135723913746108820144861805044232597306014222858664418866914306915273693214344037247610221020827826706326445301575802977325341215082479651769005446628892035947163443323733074501806645611254204977992845584641012416162294626316328983085023607538055511336410270826146045927332271760801431365908685379784612037822480006073598520497964366388236387061033953861413819456944624148407690668187079192371034917370694653341102640231044419108086191529365817326339066743370357560696695739086350563776944244166631489065514712401306832291690768157916693990781536132791335544870044395497301932454991493342033679219316787054588007978811719513143422168911254458282673327503487568577969884554104814475481793831984099011110004378422721655712433075411409261050093958888947492708391708149662996861520508117315494671083487231836103546140542352722515229157010971062025125070830031192876598604960892317015480669026546968049712772244200230295169315940642885708230176325478173228303378706126794132600620625663486416485171194214804767341537600721065774314541892173733577052992206685754371542588105210529541426033557129273381254684561314276958738252335565893885489255781170722566753202414655172531228534822040047476828746296680225990028029965739004699482237807990843850513141274996380583427331630173355058416347735294287682583378239419943086978679286143165233862890377447280994351525421784050306600847808151582942024054847009939370480228308256250275298060687164868926895386297193049886550426453875120096449042336239615011529962413555123905502172957563362507387692474129342826915585092884626733616551284513320734423477343043227099230788972130435508249539615596740415439820048034251637801052319649385611693002919350648022320575880559087559449187337142464935190970891376560485895442744129372508510479611772965552264752261173835092112572220466872813799200273787850787366527239124657780848436139349391383536258318605823551070778043981064087185589903827848006756173503897754736337611664136743492942484790468138155579345129661195997237029673697320448482895068089375840778295826528534945026889095528996028541756586764038207561950899445766644984831317784934607196420543792582747718941243547078203851877592386495248899833961165178476558489632113353996975455002581890357486547301225806678161318180255691255259141642687307745729763608260180684963611835510532671859849703851870304540171090844234035081983258129070678130961483509915923235767818175551175799349602265124101068954804168491278416442778475346827051697348916092243896234898460545686632714325080826600022604722664915831848721587234037026902943711232076329032410303783111047327403549514013821350663299559602518003587098761466390275590446843584825230722681650349984053079839498041673690607342559994517204969268554747814455976944709151127199414330565302181023315819697553905553689657854457675106137387897366476834455916084878475559745415902121671332084908144262007381985592644990165304142461936972002586341395382856148656738864022257641710596833333124140279033572056437876246240346174949838943446036795786939426681339304425694300521885264786519018977411774405955640905318863579134508562239473772752263857247934530000153164881494728204380533537089489004401099674057704984848311581386581936182000871649122555270975209745689018743142836237019713260528390562981147583134174936967999242057438914603586704706531855531557923803257039289595160318142930205982123400834047452484646903476754210857444466956992065819598200558562314838486222052551983407596930423293631156010746470579536984484167787724550879940686792469805780897136446051847536565099658591370808157386517398128385843659109413351051936757934757197987764172909165729141422325444702425549393533019645086290538815226782301439038234552006866138524624491528518187979666960757107735485162508595101493413732448701114086713587369353043347573680029216590144785014272605940923788458800411499089228292195708974795144531617853276542096041954426628925302862093834350733906244043458689725680977967926436231649165600873849685585532458329931830103875624737632990518099283429676443386586254143562002246324965374426153444298113134967687860759773289070914205998038731351749507882483927879243316703921911638812178614046729309957952295564558716504438884626688704715493470412477797814615116372991225524892144849702699559228592130397897973083578263483429249627878774977945747367461735617494494436313663405439055249072888327649572214839655680726539393457126344729008919384603931549555883200732936907439419960518565104251758760508763399245539325446213039939212483052653371648138131182678066356276840541738133607596381490992378285440462646586796039729780880381292656678605021852479037653795009722978213211334677415772156533012813350381122303689445602795841783122153579079622198845439142450165539642533887609958419766973690758129834723628936813336320201100094103527000766210911902406526830128543594286797381107295836689092392942528139120092612949765678840185399537029270646563593203433767923593342777267241229462493006852657873156720157319616778689044872579216654630948127731621455094830751242697554956478955683127994098854509132400168097529291052989187338111124074095706495814657669891193073630098407964766112494246443039689699400685055482189465807948518147842497895747245477168933193600762843940851976012204472304906445572091632660120679645904716534187559910841803316720190014280805933907742789344320297397606404345562892281405117938386137280255504216555156430061341347016611431820083761030040526603067233512786994807027938301126349882480971690768407086295946457067556171952666725426770714248923937221551656198388615963225289321515598498521121528290150681000255915383699333246506490432691911683909862659654664133383021722488321980816085105244275902122931077274410426816001274312577512722601514270889845939124455028113764565737242273753531184976835881864012761315773940742846926400137966477477696282362915208591024517131915368591183044769665249548642583538629957228723104144839159286477895768096990930604330533436427608679567820298410380044453497981073575403876863853599963268020131397362329129880722873017773554480621327632059996813417840768577149341867227250383579197608147430754545299598273614688933781273367354987231450646755672286833715987731329345530581694761518568851637261741084748027990635368379018937916568289209115924480249057410146236562332111408630702981233897501705649073021516799276364786571225262433975529454509596441609048303680971973993756688935728313918758290262727677010252310995721461243067444638227364149686481132089390935884316845571531762271835356994718481245223953055442561119645813184246345642034024113911448246210175829769829142370152683776052512812905665346158798651211296782764498577119285808749446948709938764624158074246912003629085963658041524978102829525755247255009536673571195560907626927311466059995634718052224750111836683248751723884593381747695285450727074369398354882847119480527939262467853614487189416343346551566082447251019984916288934867957729387101668596808687057420474450030114839099576730624227906821460492386596149970600729441834705250020484002373610376051040082926000330155601688610420550888841828334615585580941202373566666474344887432500376336866621767237875626281287701936503073610938720457133377878242233244733880944995875225898918824740050696585230720658245370753361128509957428708010353843630169715130852321002076543707555759323538396311126449527851500319942669667959568600743572898157953383674351015142786103415927765711277087569098506518839040184644672100294493300614447472022580497587466023025785262324991528431169524122812023028719792886774686912957863375401352209063940584414927060295078848052912771504135005521530117271733545515137315361517258644600635805447599725469421841991015310454450315687307866424959517518038502048561222471904723007145634578110414130152932058269587870051590788547796893794456561703998088393972335579412758111316593399816798143659171284423401669058241694574441464408499731358570531673503190301320657740858033565979891192853513287329673375759613100710682715889825998408256857507147515229079066152399630709850530715027651178912821234786133623246754582100471411625840599334535746214620405792659585089877166302340496669016947129798572164002032591639193881320145321869845063660457925804463310439734236565005535048469116473862620965450138643632321598051013834079902792114137094220572928812391095532424189867951661022606346911327133205299943729720025746152823398545536592127095945049668562947207004628088990067067665522921836712611260046689082693269349970895363295849559447355649020446790654765670325173234605409307535688089579546439493397529962136876718241547108506285152466083880203033942621434979233828645340263006645747993834494604727700435625288290202110471642335427905614309750500762182077553706733165271649689002603260544197504942809660378509383087527886898338692825946019763292353322849845850680417520409854434274626196641918400365686082275224486731787915421463193652081817718649968658743273283089739498966643224722698586792915233291222380435259271513484214017147034857106658645699802973594743173314948299661200794918810825476371090171048450461640468912532309778409489535737572779913285370039154740559718531392027238849054312071392670308166712755009447501279895251262106457746515218648759606509495288690660454600677638219159123402930882429123104862367608918711527124398830856963601800136359958186128680862230437394204355604880423482033060537377295157908007296128431648003176409635140991583788023311867387637416919472621663883303608935741445032019221049031570262974894870244600920102332086292464391820519403577710775125890751812865185053979728261304268356636466306138586233805344898506516260091431180025423327789558662651388811697384584581065880508777546137037557291064619435956324092366519244888973177225450591722837787313732969818134704821379107953113241276026970497379887854361641697538873513231111420413649192500244723592671962159414827172327419677017439217994776653929377368813590258393060445475031858994285025577165448465166800036820799875866553873315639581985310340708197724862154276955571890578319128367123937801827388651260059132478499708944642819559307900009367601388984427987334487656004884875660564706168579951663385851835079763585484286798761038345555523912226658529295258757675949925972873538985479563302785919310925780090158020182540018727435446156451473625463244483782260854421919815331642202487896182781181446456478563089115894875600568747979388721694771042718884388200581317825334252873167162216947340265068943337015169711375954263301602191422953976945074829729074521899396125972676710583437170398525552931865195992022628249472935971553610474692915566250022665165254950855109496060214306134041637116824746826268900334282032445828402781468106330832131789584612126847147724314140606948306023960120810505161596523120520443089715621046246585757713912637779991850471172998332202203004209342645149654334040028051020606128491435063441102113602150612242757898202172138789267860658651652836046100563246687087371738018676652670635108067292405090837105262425448256356908090643809871290911394698307522518805837332860287128926127336865312137466266622684136965897199184362927179572648118986858113765006640353166411431783080626172580561175454537258973936953729853059790222168400089317535658332834002354041050103110077769729172288180542360293477605817883287875476291118107725451325626512989374928198559195965715653981027176148133229020724884065191201583859568528228004200647279761732446058566528348079719516193571103349490364446024167793724533067261566490138370619533139615313447078859108956279344150337253443395066159354520581367223937373940730305359753212601354055871032779656162327682913171076208213275586783378914701694934778556502400226750569759980537254998174644681484831225192267036103158821791427074253817886454492968029622322326958004406972745506875106456413633288312876568274572166806134419493057819863034958215572221055211358160847285071306288974987082817134454419003845973679717305840364566643735170061888091433048823683968261195711045062174191421335098969386008172039732706324958415762839379687509431322900687610747439873655296548125500360404134239902511220389366264613013498823624965360567596164158371373661882450110219069121624974056099104892821828613593509628913548558690813195634858053232238019412716244387300414807171936035927617162217820437254385801480005138523949727033084705477044010813932305556202528384881085408988979256069167276413122881022289555982501833215310158540451536014790416359479156990748905772968091540739135853135930195267507475183059236389442226460415524845000387159508393222636488730315721735633607707315029834394897401956091646983197217221973872069431813028944004948281300414440548087250580272269623155496689013947347703963201600691122228778147760120879055833772804500891020973251365188433372929640322535480882553850173735521681330313217804071907884343670955979300902381155031311053866896554554874443102720912290242752765792197337634435311074322265132201491172434525071125051621422860144656318064995579422533902930899271339767079026309463967556129992680816267575627275577626978582487675825693740291980086758006137068415647697666779557228557814506244771542007303547218691578654945369609754405121776461045884497075031113619926071804455217124474089364765976512702346829982230981846696359780919852303316608847442505361817024977420709181912439632915237913016418599476679724913096950913446065745291025811412444207280044375587707919987704265283650722713423519718864358277796349552935980528285914225101925056316281095337600304699975937533572630910309578051827551518768264134201101760187258692788843813722536666080618063092323391402283210829829420479786547051505555237371212952404969936420557709281540147199568072595763068496179206787000167108970380193201652251778152594867755279903953534797090943320507419311837188016774232583898683602650468801262267291222241257612059478103435628979748984958839248889018685597381695194229757943925871949429849825865694097048552572422279023950116028785401860302568264683065846407833556154784975033872678653197397181461156771043149867393907547667973916278476539189288880494367044321784468829478886500791838588882560884837216587080881764761440355760530823088042578867594791922133308201862749806538839515374525632938207162040821494234415877987743143836817257139476256661755373807908426628816615006842909747551985250046535559728313184886536955432751967169720211502694418212049315089985843136760681476708976743365111411569723969106000853114002589530320721794107549570631079327286470541834071277007265431409399378972615736979337765163696385508762039657213093714985792335609459289126136333808314665224868314022755869580727000116118962123150793439601513828569859130095268497762826917801729245889922159026959572462196251732671689635638634309627684897048137882274279196111692085364275142782163655881253883479462056763113192197248825742007029413591301739491813502550267179116159658161202009183252501078332340021567710960650932686489952845244596032177865609641718463447896461356355957843804303507271232649453006689895092171127940531576340275295240899869106344528641615390933026003407467360120773346095616946369201743906301114106116308754794475679629092479952575309792909616305929031540844382693547703895457307498711918473479158407938912441892035084408150031846914626119829566280350201978324489562786724508412028296160332478688004555558232072869431078337318534050544203477153933496882367537488293958103823696014676570571002516686742610234687289874270311762106628642053777003951572051932757254739161183613070085501729560465498755679527200860429294945027215639613394546312733328696206806078534617961969869251092010570289665510121287222406154285992692787159158691418695072285860997814268233861672914400986618479137241394459433281935236051305400800893576314263696535799239941540972356732586531363288598156058515319003852046586320786024704888745170199190090479087176968817708504852512375400206866829542637608131749682900004991273965182770914093993942100160758440185972061446467816262727170759550542594523766824980894681655215123592240263731102928438251571461023009330748582238401583587860178736920847822942024248838323044661204713700314370622597176402235120121219143458789895026975555731280296197366431061428383171038674918753312240500133668879589073000386231090621240903375324664053773563533973631046927999197146555918853133789815660413341679428463074625505179521525390975132101161957451954130179151885116786604476143970684135373550501519737435291708471484810937645375988098391903250928823286392998082853710369232787718894062113570488735002220425560017723894779870236771592757724726885639404962563332247799955719034112253473059244533615936686846363718736610897085748746534181826797529603665866775872119575757325476956299892854328314790568371935115747346941876629938165001141219915407728798121240711148492477013107988789117944671355601877744828293672399024270843979891330632374281802525764732835793244127638106327038885166308885356770750017333819592550321014782101069229400554644366752629903850021386301780406314216745359658537739871683341934469537132491458431427677689008324774986034373034590732821973421365414460075526660916704452532700671108929858287433772936420019488042927952915424851994796161807476777558438287509949886599151588747388545631331796214957769885157940891061653724099360671664462588270426428048704618689152406183135469192360912699030170420636757356902474599517490070967320763246649116903938398733495270599803125181886561679201121666854788978943661807563774387554813986707304529838309125615809112938796090507848289334881089801617647832922260788678460112602624591624660249923110066633292588613466456212394785963576177152210370423015302766632017136592741737388047904345874774719383296701063680095353563697096029071278900934339242559402423046520184473148894834356889837681762406294501959696554015438286237661553168876638513292723745916738304395335868171908133092962107831334088464041133543885728140143985288421527565669328646900125251403657364680939593411430401419117525796991390748693603391121425022208636654370797369647198175489916042910444705299865091542680007042498287453846847678586782102617946643422739590616313243844963626555016675606748102816191662725511728326403432298261509149113974378520970010043331602392041653318620972255339620317394614514605999524303571796315897884799219734059818177410921944990007258663958026013201273311468680558281581074539063897351688395002479992673856832183765314664093212381246773470668745592052046426008221609189003938599356766080178909249689592626720563874338751585706893420732798753719193303638333297318902029609224872755250941394811218686623078814774356906231523345593982372832208479322612855884984964239104542201803606479617528581008436674376227065417393117124968210508552019815811982977793465307528916275936150747912817954581769125495452392818499475881590667770880936066219858360039410636932858822179964305767703337212291118150964889895659628193552852351414036825697046493850521254230129595799125518169374743045049370089268804967364620172179331347085709223674191441611474345343680034958963666900229933359105976107041140846511677452063095576282606859498324001090434913250526598887393935079710309907237395657152761238001544597938396239681018938580665405038297893866010089272985710694313105342935689957625114784089594722896463059299060986530307471426883443101111132841515846222512893478304736968728276939722971595001640849067854395596356778265299517786769521965837429995450670117034004820308266622670430976685780335340221270367771611813709223645471720263143001197878556215440804661573914189306137900515056901292070650608422665902267036417433757357427001086626808414332144622243489328706944799738383582507017981544669984549509843796660252314843652437775834922454346212799401096045057902682428828225156636464526109179822067385075666234882948405502167857017855619832583247953954718062456775374284928920317476844481664540115185817932315167953172767000160395341124407392613812666150601076963282816755888715655696914975291994261896173707306072458795732003382494003040974048076446303570851383254367839197086319570791129275377504885703639976585266380962833066494578357008799172453606782448682587955353021460145295570717735633513550459699619673320917472497583387323639175783041239593561330699123831723070846262072298172026822562229568674043058294680247534240049519824803126237760096461058749662952116199810492290577866540768949256528957038880813024085025773319463362096065634416212706551947757717684644517951789432919798351406123625230718008238158232637309248974048992195744257474761339651524170862496723109449852988855432223817713857685521266837768607581749355819094161356081182110768698032402917797333832604179632007746420706627245357726687842267420658442680628578300983259542241891008937774539441305287521202786792949330898634119729183328209690583046421634943500791088049720650325432913446201113926363064446715538627875420230478313224190554015185451838224678134189034659628856479740775337422774267451005748374497478551526472003214528341287899067301023378620278697044132285577610055065425301397223950577901032277126414866407486343009584863088046763848147152669036476073565511634442325289208445269547605629393785293632890040355673630502815666174510635222576946245732583513060935295998554511134599093660629871925730466616015902272578902107180984930580980290318729758142947229064249257543158179346591630289588218921907033032709621973303359038731009553770013601223180498111309133840444146718100388687519333477758649129505747217293239289741274381801979094264562840610754833953819828362887375368128329018125505244674916259866701666790601971957005139823783701635832398589686277214285390362950366232573753615397287302621819379421478212665698662864478384182221629190232590332012662112617139486649148438916609393053382104887764825215497254215013600548315351242888066315770419371593419589645416941014856406114756609965396654927190744200565611576984517792086217298245553942784177921378937154673702170204017031815691399745657020194515386371370828901579997721669413724007450900404307116645913608022120055928723406890111110437598894572464852044807914873747086929336632773539707601706345330808662851719005964884841998943847520400217641958549541562108198602725174556853590624620649608497322996793889976167119015074261940244163741800860205685136413818785754552814009625025902105046978445269141599693541753608600754111746911420202653394862857068477028368736356470252081407529295947797069560988036203156740060405371299225354654731565931061522054742396090205506112934531814665469786207384287070762389112538737057811567882417265928918831279303379141460729344315461190759514750056144040184222295290828294092687877791883301754373716103372616977636318199521929675004544810263151567628917251349202327763118116922589805318682391390019904123607453734976948382077916052439889593460817332516664053389877838432609419174731312715941381539189833780280067157366195926659850803257919049121357421659521681245693659222583699588112985435383969097417589342592544952781169460955531175133629567048170065695232528479812666573488314834743140354572401870144099205654415340658647690221777092775538161649448474502164119753711091976119804960459450845510111634853981281464216340712294418893237108815190447367344877521880482873179064979756859561676527814783284710710899190486930667690115277815940522655765669761986070061784696054253510040826673867793979959304026128703401735233065916898329585732950603540880637505116640353489587722279915128120540175216254638506479270690304502673222879755078268093747282862663284113555606981636195408351348163376158483006431253756247044473392146410050207175997116252418898470428394105053931135651726782744264325378146257422848834766089428620815207731425309946408976914339457192043960506977942450208682552073206828081291172719061138022012978545328423986077666779441505742558517122089205122336703992983874247778534459957189731998560921094627218868880344014411878556723766609646460091459451223248387985341987870052675899273777512271786891665240557841376548598090061190655032903245374003973971607853540396384361075357614265075034848779780859878860170915559241732159026612590590001193618153198845740152324303292759998083726496017105018258438865043408313172369639714422289167847666888311931151767838362015139677443485345370952648951779722845577483160368115417108904567611880903123489857176878612340425117498781719442715023261599490722617152270499158647787892739274227542036008396529408557585417427535925358600175002080241211133243292989705179968638567727557975809908478443485942534621415954337916607676193592529613787440295840835611324197805305640583422518926538560883382636430102246787198778756421163793322081046722340951681898413981011235712999852906484149009433029464249393833180434678912919850888800958299760235339636882978351597285187739080752269521142146761226147170507970863539720592604057579346500600572692436364125245309709892177653287010895435582183910509513953143357427742822956600927661352729441663796935200397545326976523923038264391057976236482958279894265352473555572585186397002689219335049236169014962796192188401580653152416897504954190795289826358364175281707419402831763365756656788455294422555203797637816244881748965217844154975331390253615979085854482838781507807349930233297778741897059965575950341704596313585350137366571906715207649935139011803415508339094231665460714150529581699753043944570365976977640168282281725852293273790142300287211050662154769330376656962482908154710943218771563212637118172060443748744747974008841470481039965229357006521673961206545790808363019338611173339086633829318505670206622350117917333827248089040864667907620349506021584148076907931895501634178131280450046003568775944912228713460047193808029808294103307908791517854087921228533602758917790063534829187202767167668078823775116333208340127338966981297856228345269711234292635905510136865463802350518431561646543672225080821916862388925998569930783713789810730489347410661506103097223538645123761869108346223018122989428101523557832582406294751582851406128868298975226161824411734864037891050720015372838001658392122990382132885748920601943464326673953051226291729724736448402573238141150295454303715821154173912912990170814332009927445504230775059242920493267662077306010696191134722757753666192015784448761046291975456223305684335812622318594011639813772184161665502738548107879913856288056918478420556588623886607894351291892551393302078920347748466015087706099472431159110754454068373197860123946029812129814353909271544146707468077053808315863638006413218981515198202642724650714382409175731084562669538041577657381790898533022558556622629398010398396732356824085025016884613929403894321833431487879661586229328621324607806876294174478336369026986983581762221311561252181086194044931128880955308635877774092645000094253751029814703058244917026925128542290594510901962860854581376219329740062638289032949128864761934051263435652695197303566528942584149877308469825715159612862609010745811534361789818308813568667378216347091845135585891249437403125247193334562792599460063997464706601826947869971084103415061858239362022064972821524574013931035433486899810901963313010048907799589094605788309909299360166675154025799305151357596232187488190984278917342692923789486927993494990705527868244199649444278874921773673922828608871452456518913327275846002980012903536049114795683063459745577589619062181738257372186472221451756429541499653792382129965711175167285586899563618956241732006886576935633347102786302183612186489927097165429670200146812126926332351543339846034717266266239585418508382493284794198061401974238893959893453770859757710831835046610062190743871411787687996302773903244565452505233984456652819902728554547032020988854535253991610286240458990037922620825257968725162622457374311817074726466292781709564054910325628586407027668960128298099915273410154738629033443358534660567170440964576763021380815673490169683058797639299977456054677551436455220674544226682307080304241372488609869403024990041921745555007780289765789129802351583471910587888412924831450690301957086373975687081701764927263961198450219167491441075522000960411346225724686028584864139960310978583307346876098074171396581654129088126774676475530432664913309675853504982066984695357884653076371139409972811188120285335293010188826582667353831943835459534462937463034276128614138641592113122677312498882140805741974736329973612197554994519921156557336841288293043468345387803589786463633877103035082738779954740799045067744922014727303084280999295971266446386994237934792894715423976352481220470715667692329214447821142532609413997567988413350447439947955739760327664921525948520844760971693688549522321043435781487052482453127399146171761892327120907708699658195534597322071187166417457602904375246965579958417375888071434167266813197014112604926896996225036128610843154586801157846832301928083356659319155191244263979033481383201459766760355974152948521099112757639287247994968855568490502550727949464217303259649037032283811583051199219943373420684003406510928180130431319379499482892140918844277521685720808119485725102964315357554664041853967785365625681652758992871657668411708333827189427479453534042274705274752312139253222094548473739422659633583046473384488777113705546288690428386225472749255232586908331645535011272380719498788030459964662832890986158071604432130359010820039233713067170214817476074005452449751545771174562612428300882676508252329466351978358416327880749937763322127189104988569433659189945584498081188427011275682812229024644133452081668646650722882001702811607833147805645482980174185312685689814204516935259910537748175559835808353216870450340028397132401090563757745841384894578665281235350274950705796911940304218799730832787934373845382880729074022860478894339962239758225144476091114751755493837467066138440399932517890473746573190866835946642898301979615279509577996880294216086285002513678518315008852880881644078071201964850063087857651481494225849044948949412107999537035273345038195053342318068799086920886236790815707987103723019963973694940700342355890311754780650706066075137868324598722904591161608942462145998646157714161500402426722780135578554234957709472900234936301909441444083940467255114062976883418393989454539368371974939781893328591148582223989695286352275553310186426188150350372849386395366528639645405282297255654248342736960035431177748811357014529980172180618466672299231167995019742419451252481596820821499297830991914933837486911540443500364355225968790440267408924990811221214775205360942239768317066108001341300201048223544054784322611107078843520387510245204901727256869540000632363155723187877468804996274912932484842425807663854595381959837322991407154114438699627468903433458039615734868116916588386428408734235469983911630357194713111552777583483204819065363734937598033640702246030428784794812762649194943069586948598503094663038233803586630248863870348074289768580798212373930591969342238919446843622637941891062607765336118992347283884622169790551398833588547028899398210685809583455959198255413426101850053659228955083229723633912705928578634017118053993391266129078578804909156673803626115583024838309472176519803086569057417158068804986663692258287707002724116822075606882280938191540543187811112109135029000423994719603325128787483803808557636082273867768941752432143521724285453929274589355155470652479003694174208243704728698163071791022714060996165972959575684906499926001059102244450542182898981998359200125134049175101442558364756770149210484684781582820072670714096483453506457749807626841783691180134116892306242817626867020789513590583782243774551850135977174923311700269815254728838246820680883823934818019820436660662176232769220604011206170955696597921227622751553461032145948053490178721993152386604502979250191624463686175906002481539463574797054408258818394703661203125856578725108806217905882559139018906699507905376528494113477654900646934352606808258104842978008014475981258146095743522027431396857818204900864931364028302688702103861878743123348581968284472108991729206731017928656875828557187354514158662033838399041197963728678701732712006467181360295159378778204882157312249086022295184190134935818869326773475868222070234164495423657525794144086667209354921215370384469428907632721639449256072385956370127488755257254166593412388178127484612402550397489341479831855058789307124979878468195035301350245909399056181684182419872504203107523069662698201186719984473153872503237064744427551008790871961229749959681790292636207951150381219759306898973080006620442848072996809043590482842768581358004912116777470986906864136937909134942924379673259336935039763281958322335049967561709707529351296366704208673176700414406934678892168812224289138994924855020066789756633906320332546525200514832757675639303268460849432091333154363687542395127190181748134043021752833094277641044563134092714385308134115640235820760388615754474874316217496137102253802820603055628147860387599424558901500604987920263861215083789359757012305169131083763552421859291317058966844257180431400641578383872511905879807682560630922328425019042811672105688378987673578104144548245013638549426134381374424038370738141076797923141053348614689382511196615927889021398103309867315763657222632493425133107196249465400003097953130120025343170502711566959232457071470422463399649834838071176556082768082787420444915504074774617569377063317013625136018889436347423298462264838326620904402276411348946974234048109604224663272513796888627487326599645859942712137497366866701936040925767611592631839160557972685335086183753556666411965196484756274985268542820095552055098587414531533382171019502992649270444189461006971210850530430050475880010688911189481737985840857478488953237894230321072501661875347579046619234917586285022842877889035441244785874137213344655383725901393074122747366716281563669654649613664699541865276819237068919247296783620235037714061959920544131360267340718284725468902558639423947653747107967935190346077109659407888713170514155720411387650942696424682891236135638570955596868219894427154943607820141907601796551618010997234881637369776467865150031833307418064197577010014092458349095412388505832352799103740528182341450142565149970190198433186872649258021964954540307517025119561510652769161405540398905943097866441304472482920566657103516593357982814385055540244890298564259341749543691621641397600507935677930068279136994241293609298253330786232829651342106629624388335698396725124365314664262247212282596327314045933024349320402141015226525107151158599004594747964838274103501086361331146168876972133766669662542817883918045288374008093209652470505547077146002207949900023341038174448791330077400667842911237255759622269672108713846272001242034033463879859241490602813056091762062234040868359786121118832234300212885580600578951310119161417595664311789098498143395477159448315246115356112586555794297232150908764673645522808779900564850217895229652370613759668758469758533243777733896686043335091255043722987278108763898388514600636929748590723711565833456450266438098363334715390928512532451704145500318882869106537965412058428749405489984129633887069884057477932300613599790968885029777844371259432464734954508037091246392941590123994750234281916848684358148954777173228951081036306161425110415385625559795938035741860814103167073633693904557358312995129817588869788457274554344894384754706951369857669046739897282134525344103999322043701634411136029965660810334412287812193375636530426444843264187819337396066029476219515659643497533236398370652477944310990569820795129896522628563008592387472588679199292338243113972630274309288342394823722147701996667668546418799882472198848686080117195104228387327451943210926757424686699930257132528011341509850549433320036932953533033108332923553042375367029301194490235726836213599075753466326523239535696828011367046627620609190339678630561452911931951981414722272348034872634247154891829604734010143681699046997443954287306618670360473969292035869568843677302584629084302706782600574908849420225529675219767805431934418065719164411898957333052018876686879138310288274452553614562384118301644781362094922430268689749917021787299062725099227735270519328458981268839608258946616957648328003257099341753579329753945330081920269567732190809988299249610138507787798292697570849971969430745347699619210274444024697039648471803421781520633744992104803412205182838349330734251887871792491393780636640112883815649370291936439691409900542453048464014565309086753453351515863108471110165084668068895965064644653202910650572583440049624163038279780590829660128234568516658275773878806972795430576402804352848938304079232777152270869382542012762146795514024531750210303528590455610579279475354636586099545040098719196886031239579069787766023017549744516194949676523352186735191111483393865739393725117619850220141411927782773388219727409660351305986554644764458211634804961038044712551195713683473734705893261657090327416657448992197061160789369497888196376251842711394627674290871289351631701513180304372612589443434683074496553974578675713272071138359645525182831721605119707188182312373506666504290367764863243549492420494256054682309275796921507005073148326196720350343685109243248133984240718151796460251575624340762384203624885183751106593007862693993682704777248440693886213324606239833311595539584184069283349912433758272066684972548920638383732095748614027295764787729600175935345406681099254981032679898336616028941210495352791111996941867486568830907121758631078647719443498245481524742702949833954914387529682312615128864122839096615526509551047066409793566421377101026891248329577730741156731514981803567943634681704236675637954925911681380939436761685073754417915369054207947019235741805045997053985179283253772427721044204158675211512501786396837544010959967124524463016398569912132672601510735789227580270974442400808240384025122177928889688118893824102963347222080603230500337035189794244576309127788068665583338660849621331739142588624654121631217728706467713525275593388184352568488320319270656597175563544981341362180755731827406029835128224722232677036731759721025865826799551600950355617557235965702335590911906602635592637113023748818080535238330896175525128287766233738655908345813706898839900370942991424868478908736041475971709799440502915714007168811765137066142685858421373628333433315543564135613122364478520030680604636794471199408961475050421530298490733411140740978833414318107219567519430799040807061792753240144400874757298823105486419943936820959368085228766998820361672415824616363503068205550348783759177642274600951141293376284256830824058930581512867594603307699993259864712274761459062821825150498838716134216621319634953004198026167917235336409288160500241668740481205300898702631756632117225523958409018991395969429668586616946643624397677118210773363063262585289365271645436054942078543555757948841380454000048697892229893698940647980357921335724479193376929741234859966445897135796441575915107114809627708305679119251283131485754489882198278205709451001832909596246368645976557039202730191861440858642949562781812258192701360259112265921748894695048421065765999640698816405615415396130739927468410125845289197722947442116975543667765803598044254267038297942699604221307925315759783895732443897429301696942843176911433786904094816628596765035629455239761404059465933775366090765987030647288493835635785936758650766649165834249352580746446461120844454286878524310520628611121008992020430421735022697730923607204726483132736813787973952783400889675935468752949114749205220718067090816070588007255437953768903189416156114983987971594022307431541687779620860687700761416816831965359615779866689722843086446407687015118941456844594194393288404054315308490952563967648667158338237919576683325248512303101214531814820705987259103794237623637656007600598471906710208288036721882895571068516143712558304363074922852819983423194124454357690730655133579251558395205107057448328799857829815606303878857924170035173841550885714076168735940622618607056047318903767468912594065140885503178595455587369073414042166550458204209962667817351911037994799306218811558701779906608036754514056926416056836204451295699995679741916825912968689724130133746891596092095911282705924776734541715720433890787572929177535489663989102274768847380768848457186000572509672760397486169298697537906527430802606570370313849839247591540391963292211950173147537745793057971413833917509287172428080282862859500108062679704418805397777507781055355653553164329671103470025153821032428075297646481475826082479553052216245363034943902125114348473972885871337301604212015924364628338903424340748766349921317377267975957151599288091604620210827121169966448217332683192534447828639844338575000543606336246056894644430271944049011048251513568433514480986676465006527142075179618179868138496918121421900302243917869259614108731736539394565093399721442989997367741140122130590271487476095300413870912014775303131912749053389954159110191486225916085144410069247088310414263976733902100698385482508143958180130760562324378273294821715537114729670799182598038237590550074144519353310564989417360166865495787930025682507290286177285166498806396288252346164582939221850200844887154338848565764228781450827723603438476596017587716345272216327915950730509524995710229329558006670462321661793975361552808329286495514584468270314632324459472779963017557969698036379246697061801248005458579124352540468982308494690326263343367874888481472296201992310298499501131452741449284586781038727321040926795156482678111104393354271901003842334927766042969378390177485909629103734058852363646183529796739490937364174246217949536045055345231190042551349842400943100390564384491032153887493997965711962659359927491223355143805400451084579043236095198921278835892030222455532153330106073235729896660289871876735476143910541619079791481529089400672506698866008430369519589042309307815913604180359860996084852631127777310983839044868096558522469677057288165195881053796254081990744886743513609810069443953654718626326645355052996621182220284989096817265363289120512868288719407435978769691579887775458973717401170099396421809267581956009274731160998371408069006819857334190239974692978409464236929054417233631399528052691356092795082025656533539960570272450093153437690381244420086898141294356428476850869717324404084181967578904087351427275528643785412198276028721161904866433864529299329083928404953391968797601805415659526265306058118164236587119810784532590566207866518140272861512645412634930260377638404092821443901610105268382194630212550020834356908195512817889560870926450042107514609140675454647830284638873731165294005480540594668804138150908278284212544954810700030679759119795257297910721684879881835611991890183632983984357990552436906031036805115589885223140959680985613322520559463069488101435637577295990641975809901513236479719436198808653366042626342818762235434231702062157166082367837689911214621254989616091220749762480474013216935249616290183953750331458262444466167727372236933387002272234690576666367471116419180011787227058026770984076547291441451878189578353267627449976539047933956667040733275757411056351345345788746937652277715626901563928399292900678508276461658775743700113712989061183258045213214497689584649888917877447775799651572461069943511229627636737639608500046386804379505713196371526232221310871311196909294631203765030717440459800966167871103632537472527741706130066187053103329157299178587829264122716714673991717391353460302815345121258918698917544590006344415806201516933436409423982383566646973955758063645627649074478557375312489745116811964339112877445695362760281261719560172637678559516949678483976028476066004727475626585753838561239167512866592909207639766495609514433271833859785937043850978155385985589438366810813789065392319648751233912210801015043168617869843379109561982782912164162501741011155154129392126339424001807182299626011738747598598249914742116904078991554755705942085080360384389867117372876106890624900693339054674054953361884671913488089605166975599641992213301864958780635071560485030107687791174347854774821170485410072140148519554116946185657806350261123993665164596736290109905917221210373828480790434193992090143308404751046001682128035360789011076231272038700432227635139919529782891801293110791431030494627230438018845539340084340836248153594225620235515502484305222127119631430545898301233010493448079668626898688404400131188484218851900029875249713627510092629048465393554890990427842787675571640086425328410466380873284553680755483270363026988867996035128808259912379136805395942026144704455549450345081010176589509210013851036635713962158832499169718854515145750114706695670169114913969772119474764844685690125936760461860042150026693970944410338165975591616645198469698121138661754255066626586252100509325529897399153899413019459528338197962625700189392928097935220989559878599662223666111731221734752984731501790458792559631427434387902555122422772692142046918081043039076442150968352706893373553890927627814290441913952697447849280221443470535258388093898237315451082637677467605950952308527348509021919068276561219301175732793731470563236634167520936410481802364582676437038735828321812639410318510411548300873753028211609851817283472552532275511109845832300966099283237111078907515626610324038460020113096792181411631707900466526553557122790878125576989529674043141018099893397593985186156774022752552389618063151179236825736188485455501454074604774931710507078735135082993705590619800205678490247459569403425310633508879628629466627035352690446300822638004364115899893720494476338656412908818125808820902490524998482248919996800094843459172636186945339171059027508546826824801286380726759623002906878298836668779437481495114227900610245706136831156065946853197488790045430957415129629218133444455169950479325885153611743052981705976038586801522590129830076334653165855733853983896213748867426172608061470690702108839811919942766093517105849170353470535723266072905862802735959611009584273055775900933045387392723101634510779678307915475744539401145552046065086647070616370860611154905334291906047551639591394428474788750049399820162111239358725539770037496740091353410835259790916207285899853984162116065996643890767395407948244416506234820481908859567373380974216871849499485865857279196064207292955857472530264265478788888917097009496854363379795678601705621630530215185861643469639926004201713297867344212254829471383590574300606541122140091001285095024803538931980828777191458144124155270043338274060106497101152102244740635172949650709724944993968064995442665642793875959383495230186893954361733339754694300911206663084765072489399977475174216287413810947609216675714277453851110874784295193205112188360003184975633060392219337330086066413334045950867985764784999701452374754346134823824369562698163014116412026231467118230476099183266989274808195376265662780078745955114263958990314449780961841427553849140067359543114127873041337672343657143391239028378391692960077690022637855524054908507094934275842675311504739260483425904312755632197779934555622240868421093701953266057414726198416559149934008561978234240531631810848171544990113510518488864248152072145010202928823379135174829738046839011474399223533660324280941463587722485364234539856107742446391954319328981706383785692306050966663677738574985605758106764316183150023118199512466465750284617254212584339430302412350319420388628679155357881671266644385297002232302082855864742855999188378703672789403402195087256949841544106680416976523603061705558801553992711606041722595707870616176728977383626490531385250117968585766349963695877199415793574650875932139641000543271887360220100388869343812877739486715981898602436776688635363543807647092134508303597702467427835746357154902188706298607617603589956430695894595871656503864547102666960371378189472999177346602874318116747116119009194035005773791183294529707895861597525664779251534357202394218628058969503199690336086097079813474068503337224762930619092286813181995338636866442085805426036480867186185617632217802464852455918120436155264988946377662174392184446501549869950490627051558546537893692434130039945840879956374005211804270871740764906684902438257914752156857034005807704558830962113824653018937208822404828039003530675837790114200073075794044274662113062822841551922488266274441546255227247062451269297973291781295961811726899121909063880179437782678602824653466826304329930216525592111732465646444890588243425764347956326014049398046034195720546568186614179073438597454487739117194091776137753566760766255508502028106345517253139097638015887108467530398291990657390071731787545914974125319521921316030171670267432887653640082196597497404485810036669959434364315344690832287275734531803383452923765160319871622911027083964884127408115511168722539073539819527978060513037053173016602942231344030644658563701014105297569551166609155358079246845363525156375881145972865307926718034697704598794647353990444419939865097025417109184827069897338801909857148298042001653710273373490385031462320887843629010564422550851263585693082109412566185699757029823749891163660586637384963718983551186409280781504956670129024459557374798089767616430342612302965702227824264434548111119228239450723867226051805560222013259921428167322273577773791658751582705380666616389687802447594477888227216801882021261656802551571626273707487828324665828742491873102898596679263572846760219288878796437374046057463728625801600956049025747448421904243760260029856321288336119299198790274059236822281682984816779162723591761941842220200433130320323880041163188326773634143454221958521131921779100844424263147656334796382541012198542685088768580080128225678422057806864491895736453555238414422511263736216032083237061683609262584520566027476433833095642064732995401758409220135150418740161940248246739918735974261566903834500037432215419635038894300721824589207607315398386979330673438196992084750623155920184454488731539091159367329833318988758345898308916478030328464219657830017248425719821423629142613025552578553996316127285094551706680587778840116368441945243279122370022813771540338076861908032911167020276286343044691467525011025190404191539882369337674327428853702801050603287916954398211705560568538032270322756505119073358530674272777329496636586707856583326737795098024247304915841286981956865694455303553319069324245539416275664900907116131521495728982872145115460296788762785607635611919492509977129972741911536257110380189657383594571828658894743373700184835954903495808974566096825617586205363603344868261543643718689932355066564821076968621136120969392847887540161908725569080369053286771925631339341821239609294131461794208879652824463458399687223498907208932282079535745062051487219439239702493250206549547659200256741638659741570963452465183781223813542196277862205411902987560483944682549196212825841406231157560828181860113790584100269492695045811809188980699525199644224774186640432678805684768972565058055907876788808943541094987321880025656988243943685199831344836132562598562017208115016316946424537182304560871686142940883946264405920227617178489947941113223606137002423669604765938133107544367006115671034499323516958730427328348451834078072933138511327988680691653756792308267892443826138385185098363537099584853645697281813740123478576781520169715175255398978180463270536785352575913680898682036803565303042097971322907668337599358529779687806361437256960889819837719677999756616089975859569629996847786295632887560676350572559620296060424345377790018926766837137909856063505925386745316211299242153840299648966300354300359311789776199537740336716363127506047524513933046837552936343770472365976379103054590936275529485370907246300031560527056311911133672930461868285705633867746439198023240673856332146210146797512711085356305668521119396713813788397205325864231010736514166696839264585703655896536139862283932231575127695267978454552694437390470175449104152195308569383032482302965743613092811862212061041844218708928215913729902668539830976778799683833099435232345016614230909079418870010950780067055876326114718155272729896896529829598080487651781024602821103716536579885202217065115062707051724345659769213713676663637963011603675731733402337731925533336456951647985331828644443734668651166352567792303955295883406990900596244981814093284316855442292214279126401470203796926505116115298398204158556282203041175502871898567753034602259885298412170564229487019708158057268603348148955508594210899832040313556787700095577071469612164907005912651980681193858548373144287235575880806394494180029888812907382142365519665330926903087360954884228452265841689325613748872640342778745314636518928042714963484866844722631920442867395093217938559432267304096749085749239849157973234658783948478010550187225609381247247037324208485776136859539907049549551182357733146396040055439137012305186834636758305879526719992689519395669830474418083438683324572679202001600670963246705936492314836250243608475710277266964449319868506769426517914921647396465754050860242515236098782789265269514357857810218008343781863567647407317874163545251157567928819836653861724496622159616933501918235860115157305807912484901162090343025453214499156885617976204479220205820507540543188802629825604151612656685285842984992519241269224970050337669527600253272541249760445142563859025774825707580707833080397354979701011875962744704483219062034740394174695928369918293969056457058497767315124154748146793220851610355814287001459659275941439962391063508121478704775035152099900383441600449857675106779128015059494929009386935039442986419978062426415926787260880177497036164158005748447932959394709507185059472444014025737359051858134439712956919858722547521654328981699497486300805824076475986913261193322781559416577312050874031087251577646907646479747393652595355668033374750069495668672817774232647082269553422854883800200462352429544960232203244029579144921372266802704474885610972264822661579625480416500748989173615739692366846600787856379851083206453882833506063011172729786792159606478913805859470496409314627911693321988169840133940502959050464477649601013031450477153674312974671941939533674285547430729995840471635946046610361705085133847823226269420111257654596600886491948605067555925770887107154417266566958788687130557374886774245869064691399095057235330157751328384263191070864385969458373077652339828964316801091084874372482639941884814439175939200318823907944507524139159789210409322008882376716360348114565316392498209221263346058075358345965504920459981409749031646186475494728856068836401973474828595327483832181036943748199951551786469685550913421005257618480434013038090475705061018988649516977892245153128683178381145820960543260163000150315068886142864421648947821420314767775638158679803313328543063855764256042670303470201093316487971533298013120190209508672212864230488834135501456045536159383709370844370530602066432157059490262776995832105357567866349314668244885230723369102260587868588156602356053828758705309444443899094169999705173676658026466272521878965393437786958821014973594602625859646424980501556216637229337203903397715641777962630325331246288913922730579085361603096938690960378828110162707519645567269183525246431570919704334170267891831912462478525572501094204267231490307816749382683452299604944883808492004795955294464857335037827343834795781880193649775902944230331651438323590010020727663427660530766254364005458792893166320859397180293274661135161000563386295901899600099536910229958960184318883768557048414491382125406383140570557769294309013830761080978173005527492980220930901209087151848092355720298214777612543495679221975383222095156856082970214864129837038906163415105158068623207852414119109909589009895055143868297758432648482602362597997460443995989420696744027870335793626584371558971182069554144007134592299327212035498465297911310818938377973848558305498029705632263089260516976575562698879789946635788458315808546129123152016033872006315181121365948474616917954471913172823197731983029534767903478802528786204693867850781530004222317746510933717940926112363448314474807542293278502089954343267673026510533947749993642577924508858242489752663689981630917751325063206477975545627814710357758732249395976062105658573457691636519711396953831248755594396495622753574425126699635140353460941584464155054524517271877307927235353432820461618082115315260561901978692007251545147850837613721484777487070772015607882216541908524591933782012467570304286065194882867557908389302129616725435364439120224994326614061264376575790929406834983709510018566421348973599566016446382694360406840629746102104011671951781676026146790771936465576441524039621706821502532210116702211803996943169533664338046824720558425991053977397784140881592968330313410195755869126184112326581287507526048779247983499936283057764900917505321767762502273729964466977499461129337257011056490672924396572112334614236416598105569457723778392450832747577504264202262936301576020930002223989911162315868438165563361138391120063652898150989516718510075477904586831641007713165634820246600176860154418659575783743702318769269659944018260618632969332852556204842899142717023162062431530272598734747930633555975379890377110595505424622103536185937751993559323379078618113693921831064378276807218747598496002685958634987136507974944177956574006019736007107517338391638171310315447434572449602524067313838134055147017986535866249179238671573999168299999121392057962506687612163559584949858765840712575261344451967065243660876945269379223277478246358787639820641404570451918797233057285455464635845158085632043538897489949723734227605668773944563117316915738249426752500217956013300948428008602448173932934170887216620721387765114071594277650437040808647194110316909249119776565785703084033249897700878569684537297962386963940336333628036679316233100888201647915573842024944823204037867538832326591760900111124219992058309146537679611009713060273814691676283004362535849695868427857641999310401593541382600994688854495690021631747605938996976457077209328037347067779247505560418313234837167356003054348538701085305112473103906146288887689320788709288650585870870884038840889102834121659930264368006528046161472418434219700180054106826811113530997979383012813023557205700971937367615273211631990673845898373077448458428537473428004460510558644664538493822156346358818658909917396214741498012013968271583120095812806351874962790186468756952699708860527046389558971471844243313866896549876078289070566640673087217653803780148662884508973390776816124399837490010069239027651815680353252978443905573177512377576197179186950348617548834714892136237224882230694274642535957272712215669958008193999111863965160411232917394964223115414317617419902068611039091833306283983770795585618973499567468041355519475277790973602197859342982021569320179225471814099246317574657081588283770132849761996484446126934981911734510992796355032708433426964899206001796467968379398180370222463634675174262260882629291987484919498435313467955273707034409330235315849556938219653341720686415301656008100794189329460251636703711077003626772221229618589672844078507080208746108912055447733184971434900515694173396869415379266016340954962769089867916752384040278827491499326937948778445704311708677931054191853692511074230322243353789686688977668151869872189961336487789606864986742955428357612616163160772514729286212591290514284228634158263851967937903996398907241590971765849318337067839563625014345604178484750838840421363062545830821247983990153141188147228734733696422967828418837563574140480815664615555305952767138364987519499325591001709546163640917827140157788361283036598700116191258850080764214342163741777748112123725947063156771071994371083299937829825069028309658952501305044147875582102809894326218084694176733787525287238981707910595595496258743040230120759495250788270481596620716289763893536912840147489115455067159234876117156613374530913752166812796893795114250605770691931653151353100777355298410583446381317177471611108600560608356990381718464366350778256638014016196444937796889418581526426414141499346402188973358089862785372398842174890609878286661578744962266378101840679160643404714638438813192425876674243505285521616067830791881978094563556223201054329175382584212472126471089606314425280829759188700215359792958993054622654079373339050791195689354380328887675370204515712242392603870470235028900362894798899277730034158664404387209929211384850693141440588119537814508650578785712153769172166929183779429455140501036832554329142295134235510890560016904883898403566976769714185944957178166776333439806831268435737466983452148897492066603992624361238197300753098885156961836727837189221882999275878047582770279918998400177998584566867442885230918766053043074931736928706748782761728569226822410077509615792563010026552764977258008047954404033183467748456350697676736752520165000979056943453116325735357713426397590796739477516491912535423942664325800356487103383037275879807536652624560067325918177934956055597365449484748075870565656034694471003011515773927030837339847843824013961906535179379103607981146113712721399158585756960744204219463517219522733897421326474290137527776181447758763678383539552186351530351047955941147366728214770389762413960945170770240888742175080397591670363870419163614367364471514333648270728222274697092137754637722562759584637606686833121246168942248828794802986010323548912812545761300888859410562392821017964839929799535404106841615415472903092723654272248477847919255501960772995690916970662408950263727980317128667978341527446667208368068871369109977037329039387066018676921029196990203366151371873170808991845968820401346290533066418507243780813299336165562035159075708698800999987441802111874140795052906077568950906867398881241804377749253056699425014715624556759812144500546299333183617529237161466557740151356179695404605193623516116748068932121700145536923332587624014046929406113414908391002106840630287268137591519153669534833562305720790621204083615050518488528712412839419853009928867760121092727567456898055837830938083298979617883406732223055240800396853598911992244974173699372925793266072128814882023079382100505004145951020500621404838383472322055503054838411164532770004656177073045054476869259230850115030687559271880372192686781025366877380491860095416682505372651859332881773044534047231102844946244948486077413960078198990790206993973402002121486330409381999222962294438118551139654492781184079969448279319127312548928475403846784518747127913571193663117506348005756331423956154802777020441445060084457810534100211744845337405970764905866304169572559406504446575122352289034908331665162068597828028639336378283861753157635290826565642146203406458805302324415166280257015784156589280656884201796526769137922934651427686140326093558371405010054421587846470249992900565846920687368934420512257543137953742300654644647681491286449226645719031956762786936538264305360993457856205836004244319558678285063545291113746887491018693308197702540511943289919156237194610482184346106145036413660541788339045862057873435120601914553464351400248909801138803438435360713050415776573979362696630119564063307065724739295078072504823780149930350789655671190944519392261775009115033296391863036830938428438964972230261237553247391439568563876685187455476478134938028617046139130502429665196671344087679441402619098275040813826010886906299024972695219362464196467153368320707844114348350324312973188583429512460158588936496383594412378254463260934097068085914929146719205749627572665209626657768784240542395044579322268449456327933567252097737224453299109584337767926346755725379542363760661402275233418108622076177300067847917056828929371813481108589032342137083647444079650926733902634723650469085704872411193548167634848049675329209272246113497644298910707835949567958429266049698442729574633105670986146023299789015437492357089812569239416045201410226997626849809376895092951432565734636622571331267746298799748797605752410829114408175663349774623488900656112369212101889094977578351210005048281256383482102688009415802450495335424609444388896712505320567350296705514900743900685836344761168015956997624442960789733047531240065234185673072213131012114163359459089719395685384828458355594750921287524380074408334323348100334520265325765283430051589039850976107627284205965227956910900694410405829715229368333702787878038186732558442193066499975564660681555541997286984613410406371179675554188903120501205107042047837880947375259011858613544504735855412789336197313873605242150002010273031907057374739773060346779214404346285301342219743412086026566445806252132849262001101065495926699733036466790805854489121306753478223656941392076218098023643209258688185915495789730312926212454464491553462251934589559000764765214382741086574759984562408481347022359189942129076046768305558008235874979949802174896783714634341600549319052911757916499524350205170905363501017417307487489474576976324792451838672651196981855766179953154219357748885745007649973724229583944882765934391359628847858479869650037672244813568573821773836895787144649095327714372430438086646482773928678386361558172449243282803328849508299133610726865616226511110210284634953270654162473643692555069875960912418388687415205851155750371245440379518018814008699586693242406653045111584142490198956070521395389654206094793984063992084423984821313100694151311040138612888395005812390868964506872279339638932110474052852049426900472174493082194451128462982494730516254794952180819837733372043179874356466769507929279664355996609656758549374468597107300791449227265417687873956138995099059446184512713469242513937806709618761374102589166368103044209488566151342531592439155699508597706913944581004956655045325462612410909342935813535074988356832076876795040397834730225213101498643778030750449051477308029025452054693772831805760646430564667146926679139911185755117913322714999268459995792600903746120776772747250594942680758003712131164077661731600089259544964843775581938841357707090772830695761070794546999638663779159266587252556221880010176691204742369238793937728178319462086090176080188094159820088518853880047505937356961354817306786645782491490715035902230885546049127715003522011914113418319569492735840752488971002778532892499309042798887567491610682369919558182745896471758037224764491348721309321240200493134239581364973925841126458751027563934633004480094309407719192454173987692313694558767067229993531139734447856211981254840132487570290502919587987515113808181299865342332114247874781766053945906804523967429535926736691089499510664752505199518413972920749591681301030700422345288609693487459181810056625452339167565404932827017254413464107107973276376205048364533110024182146209140521430641829340358785440384115097511928907601479787232189034205312398248937666256449673289018099401938450918755534027900971991285312066855937923145357667769218681928923555389870519805748053546214831425509543429745617732077953032737563018111112971075039853630343156517631628563195184933231351192123195797590603001536230114323523183744458650312194024842692578548838813569318697126548758543218695866648173888087564724648823855120329534285789521047709040136279927249422271299171806311069047075160035332628196705507194789831131570568365994752694075259305449204543459690262209506470192614034872652524607715911547171514691713537606228760851913046265000928697928371574784570516037274922140447473612298118943600084333556407580287554529838932978583018169576197557161538642518885179909415229270896937948038877817132158930446426035254405233955742876753439984950320433073337140758657427063227296145867764667631741397882967490941261603642982021645315197533289597942215881025050455834041175158618722980998479481609539893469543421658604432127241989960273729333686279054299380914721500892774226338806797884667210358980356743372191106402621646192024876922791295263789026418627093409613332236960693998792357117133820544601866076277441559903125323100243064618520397139674002569580053378844363115482914505998084096888643961238703866910674052905214897063597580762392798988519342823440191949802619886454465578011752210869537023501540309776687316752033723148086707535561373164379556816770668766939463465540961131666221565540271044529013922725938646033971484582904491954539018959725232028452305218579666318733310861961661568013112796741262740930462481287070799499279114106625121245997228454347580010978265061516535188138729776891375527285098502646990294362978694707967186367268035690411088047860450168472791372195170400666176695359609457933702841091130628072969587990654497614426935415916656575952551523567227519671131831941740096927454585225669383839361523545682861326914294148726950056401699212138736108644358719738556697001791782145852251570776734298462570496528855002383402482551881743748065072160482186423805543081085487413661349518005998606686878914015038298608269626880882733473389961973596757193996613876186642937712081033694899717144110086778904599709784461396305226563813343580590918963174582168545048380408100277517908456849272401724058001542839509194518685615478751397855403651682237541746620944138447110095928214876008226525459603835135921207287734088275609603479215968234321944664452148383955545849053150284631944279331957154315668922453171465548551666990697312323230827700453904021971861459398069961165156454134438308770219983104335205081696244444616679764286561866213610565723027540777587734093407663242503377205075521550551436556978234045342891208328654657101485720962923213573419615139864282911552704305389588429144092637605118852535272259229948631406301212120621524679094522176506997604902657943324825590838524491011639142798438993694152306524345318863043362026133032243397674221102687014704474077089341472991972341408741409474047023487896227127074182791158540739972410125271929681482636265731888246085523387685936143007724020252105071355576078924154451516498363286718769084458689173778245833581810592162284409721271815832164920069897362146257947912292052205298719355443903139992672779989074638812116547499508849668361412915588642405071630120697492910173270686331748690272148226579759737576757000938175931940767257317595044816513635860073556337507005237676270596827454548575321157714337299426747624225712969046571147201736720729015125237883216597387506689880217691232813474842625379554058222921073463559754756169245444075429014008641240661301988450581744241786100074070282139903975287313322733531041970535436008649424369597750088112251123972187977843053707244476534313332409411996089421683017667216519605618195600793901295615729545354629828921427929497695550724971800551065360627946427677766350372967649750935872064116303990506293377453214476138688066289215633981058064384018826717010891342078037554527859710084809214910468721623221167840121524167390960799492775263871712533642874885744187816232763006476125008572694928942488587582629356565939889101265245121294612740519591872683398103850103173580695078117552559570212606918712451348617870883480060623602569119885780663889072917838928728852823695169332532321973656742172908807243479169117595275288027429055693442191479361255023877653393299581520353547157199981577427835272054980197674820730055453831799562027616255610233363704993387804101782838566730054390814244367566358901827347924790063760268663291970828329908399655126093243662568449689087250717870879214995200321827076031770503795469600501338589338753999023016742983800219098891134869973700701509987102879139122855033915595139374309633906293648515585893661013117034328620159112226150369926756339922818779693854617398557460630860526584569043452174849448312173804314883262712129739562692774331513865162401271606453777168547103131603374042141393545615364586983546013694259482007664838937465484289569906895679536401575244133622592436310748969898260919660162224077405283204959362592001963441592783478210760908110941890671466115771611667818892214150278988194390368656627610844092996025206408013796623068667316131658550474221134469925284692444378065887713794152272764850427328367602963368698492095933493507836939777812488296951602341700219394899203803954765499187467629170134993352700868516342450471070459628635355479217082972787483954219715956656212852790823163966762940398042541541533237472766035921134455427791473060362292321436207645812270454043571446824409323879060227559352628827950433280969544239045822453477557059084016936124774746828043416603225357157984303011202791110285760264014701861995991313046359443603754086551955876007087667624002090755800426941685060474294352135718296198946675496522255649391565630037777514514610569410905485587882500768751445865331757883059162678770362587046036299739071271772435103440933307635827422838373987364744550481508344749370904053313952276122630416362776576844030237438198710288238961916360475349225721747770122540346581333856927519985476919762731965256192148173635171071492282011149525463322101760393249860342506087811563710397316385103892127520027842404307732923388157356509671571970017577899984298152328906721741818527601312484954343822067925752531833402802327954111251670848253916696824611107572696901786109519440948566190900360924907860146109719097941799465100375539858812888727981121428727489501831038050949474074984433216570369521390272858113333894424200483115787720164897894972142715876202928187329991437080030859625991816063439030350382190318163737627098304333968484071419552885649409176213944405232646204704064762118456641011966511907165439744599350079289713282292262626679871753749879609195566914158547214383923409783975773818373350777739326235719372036584102979069014829365457233831653909342823109508821680310914175295341427493797278877869508470446315088163604413082706854349886154414448812514890926431132702002165122693282114500160218300867000312754993872995577105367919711036725683118552253219223410544614746591039154589349633880647022956152315943251975817574338782160005056399266334134415907558168809967428614013795439455924816074932623797926055212069279775423151537712230626407891621926519638074809337853484453588366845825233297695009334834288191441570345812132121777163083679337173460615147355102965604706558455611673785264584745381681514506722212584184283992362219694220710450618341741253902581450253988064179086724566453144383340596404465953742095969210901537243236373202719089190752807087713660815743531291498121368723896679427410834969242704365516478845033873335353681420766572567453782103321271276684313624392057710909177980736304037418516036903121896289411710966028772593888097289443088031066049476037596921492690623711584978652885370002129910943890852153230175306156085554123341030569876351864257399110465383885389926525054124351527257438965077583463826765193700650578898567979206842265955394703506403765445589490358804677521665968884704238287121295375288109567932106113731839559696046049727584014878499449688855376183238822470330141999653702272078147246993631630233728184605264307867022503180199267858737893453749309358779824804803295245621557331420642370288775861800391297906721892384729100967306954151099198649500238804690758060134093736607397705759041716776891841625216405335831652499445803085821366187959471941276989552619937760714596537087706977091428304617212677552927790889789893668382682391006922400483235980228494032526711128041161577619855575634940626149220950060220143650279694255462001826270150258972012559731728248656305301095054198811612787075538960624237480706219338853416545201229316000266157092986820227807303334096322291382021009853124906500369991188629700059893598103006346777829378768870308290519223198177204694611304955413644432299612699934242352670786100802152376933435071774061298553477543903726560356218970277752911428257928084491363144895033956051584162198496868019377163590832868674909407264115132750200635718346512586637021870237255020273807521251265202178096220450562960373885148028369793963882750039069672143556344222164239704121905886758291626900093586812606471366905874715704222126279098642493841179916244053499675315596708494306341508543028947893093788514225226660039727961266466357763064171388135508033882695734380376184785922637708185655294126858429255973137625848604156380674333174680612351920895985201895095938543562751420247446920600699376267620353534909305333990586560319667730613762324971502868597235474202047556301684020660288373570025826136282010735362693768758508724746474598122457556190342885319999023370548385832809035765042144700737846796944147500961944768617665943075299155497070364363217416750347858822525358746392945368033561995884663445938934069462155726893514373362549297926387218490080957732725891490510473810264709544091429174498732818755114876112515927484402606791927015025008423389423144200108968153495933643397451865777523114439599683397654780714038572819677280382701139592068724307416172406459120625992935817994185338964615516725712161544021181291651247886684994195806398770130891766203508186507364081805809188766155602084059399099881596607177134987518935490208195213655069480660083683213309742133725599693549163135674462238133059739169882282396559405121853667602516864221009939380494724368987365528445128095378933848878425931877458750595246351489186340059008552896406294209802249516912226082337871368495694726422414761805753844877328277464341386875223866189647303104884258841719179163552410064401347758706959675431076471217687792609092953573263140370536703675777143775077872240928717573084795933998959028213554379115005814452195396901601122705428135785877888169146853043752631456026780637474086230167768624115727955714479319232140499533072665277395481974788199772120283509607731517050336530537851687824220307296619710897670429229259651546605625821709357410551722702961197815508225255215230368323089343627134158691665979164190407690842204248642364171485218507526969455947552715707670990653803291406698065378176748809692513409265618245852892108715250994504113760846122080866197717139150229801336014683659232331689220942117044993361217342502424760781788196537451002392702595250608824808291084059123664199006817625017712574217869599275415806613533606176745009744979973310982469069279388859187986464076471791793550397472431417504294694010823767397698165594315889561673826930947474287793865409834432227771326504714221613290943868033297124142255321007180988950878983240535187868402713854866997962621878597974096922916055002516114252664893913326941113371071771157236419833870779822665554180329470175330572658270865696935058991447909392108191648413674683930261093546574667769715559532183370368550191113397488564235618854661614785736207626746337178061982336241763576910753204921983366923991842031316812268982868316711185114556925447071159504576474827449810553092176415879517702819287447824732812568975426519080487021729262609334548760435453183123052571519108981602560636093700363080937950308056756144059729111116218891445270470461449433118374717799003496291162032419089166923868630711146667956853458582067473027212825925528792498173881209555140154065343279764815985790429870372923731510197246936680267823018149021428809617911972705870819798509520888561455213501393365759206308052744015203060623527471203923534350004188548137855985133569381083444670909007914791931443748268082055258672866651987377017723449968984864421365849836260519554152055675627590243062586214437348723448589221158212740588991828900237291600232895120161350464547845196239744814539781713005960507134311988966975773771506362020048426182148492708559593073226560254207461647164913438687857471252855450248918904814029164233538932803598355173086655015060422634114480321788668927681725242515970742037778692794274963681837703517149604506045937452524134071131159833260483268699097856158323711469101233832377585920977430089382845047350287340074330366757664614515674736271134140458113014457987983298876339541891827871189119595920189066074857748921577684841436910995737591882609838464984284106998857585079379241407404292780257968261764684486415646200477920369237173427056721494892452163904673164275714941707458426422240139906980304313581008088637661954956427952827601973663272539840847991560814586737323594893756174304933971896705343830824483409413727224609685094540227405899069510262957204596956497793919669466675816955562546267207957703765850685870045436795595417463558138930542943296717557387916455077374504495457695238174214062843243588041368650464011683970421759250752527209459534026584343098274640873685400710781954501013008201959794876171815461740152973409581994687669887024676097393135002716136671528139211168336664230339175021302975671841275307126171011155528917131884249331707975391332060404455033768157081683684539860701834668193928106716538352353308309436973582438766549379970810472097749015310935029286437392651422040427388138885226005737028470272787242002025308218262973508558461547278244883867881535682139260732906937342103679059016903628776560652931873436569540829405260855851564464485759595597621580628592337947122168377778495576593498098662592775414879240895150363818254437988308849142989976163266786898564918319646047526174449490824754684599861401452730947543136416869310671327621875387262084704908731682475470494038000285513587681417904746678221690267572861461706837582677725717434444597239547420593886362129871515681059001731654171649020675810199887639680358555106022524826417926127947562469612796943333687320862587044781311122919153667353382485528684736510234945924634622539562154140161632831642558330403219966011540025347679564560399134219492871417505658621705837790290247415840623623700984709933693231329259581545000617143558276766079082652716898563170594497386397691603086617299724146520475480772222786346451769938818706202635749424843682610858144043435801920395720154475057392743746573541534159336766598725133289987384963395859431965757011872254885249482413016959822367548066870039671075655815229325166006325459192583414885316775494748156113242178282058017613275231056598358420637991840243491961227940538960731637144379210010025108285601313901564383727330007789721017056189520436408838312181365858622549475156227823337319877458018272817386590793005227773197557808095948026047685842831226149771856485587320836509495532136317027195346979805442161658148541606819157440547263670310857704406153116120650862204962944297510676905967465780673870723334098558620668384597917956775806293662662099557123071115856489169533175034435111633669919087367978241534834790046600256624001748831316912249771909393336072419033903123786802611747838970871920081910569689432503932083226083760394165649453320789806038707043737537619493327492056991398753241687095169536354008698615997839011671819026725832229736805101396075521819375365686905573158015695281864230570764899402875130067575555316503565894815401742551782334317232292391246206972951941979342700599959470454042069905521417897725071865746453532680917518592480265747589344969960302785652036558877731830497969110110935849569905984412707857879813877533160199702876999265822728212653038819963220068911033819407468669536302108878704084696907366050812096828236967342805428892342752861527220839002311423764695117080813261330717172274805764500281472355622123148554818015658232990202123897757075920392274985956753073523164970863719499728428766278563831071831834058526687180709844462789662282459552937696565693343856251599283600013835021528663246705869971386120925159980918050957897262891835646996872290951543693286681132873736192911804313713385568021244341736289420343985311032629042096850189145357579639657572609514286859494906757606356276018111290175621585844870293146234812761790167328804773199165783795980460299229476250161126523688330696627152607684084662195350755352098354532913488472581929214215413781131832623745018149239106560208258501738338891742497106455440127825357617324835386863815629893938148845101783928463393858966021890625646551651735288973916613486697240543458624690875297612552468544695735254151720922398713072952319846494613018848184249727306060327688939200757210179033530883309975465548248825164516518741767088350014713964213135415088472129559543658568700435162768096124227075462530425040782103305817158601432825893362099940224254011796948396134653742371511556175345733877557589303559586443657722074355228686096165091401756413802691434364823103085394467073631424555132497250663171868403800217446861295893728936823842054473402885144468496582290347429346087453011743647663032445046491153034863799557662362377685482294249066110359193471981251878256531281585901885008729435931326437860205316594164301148981201439998955937147704719343064703914698908547592633013070941803303398202406590330257256556837165713726806565506095370443619669236233555875284811855018995256172911103971491748147159207396579298110342719758011731226815940742491451653660039581758376797040039799859834106546390524750760867761870547371673377609394913393708761688297649834479866621175624932628872451014581895655783102506663529858579620027813499362912045653358105128558947722652909300283418186910074329373999782167625309134824356575956923559962627700636983887887215775693485955356266278010394905740712413905643525904494384374040383774580794584545001852619422259868936167161132684600533841638853455043366309338512471261249346737186856421592629127412164149606424704345467599536313832064419927593804581929495503676435409655341169398554511551348511436223551533265036590240379919662679925085636497699676427465858638670034855420618224988933965793043888950608007891702318197083227962114421790032002651892177753553382073628331853228024245245011701663337436360418898247228821778524689093018309250419193907052195873725884221053263874796132680821997566199510666319733079261071936028944335758540071757785553187882528805583588065195483435109201763664140621904066791230732646736851953791461706353800142156935442435504897891330825695280325051116307001952161475863664091618965838506090717901545244798573339979037735011174687816799474604189358730989313687284064138289653053937161564301075408117361270987599889821973590470354670838159023889794368792557692980694022663788425509537986198589974010565164781252405251484111093139491927513881907979601720754481986836643654669371529031406479773544496068448247412447416438794317404952953662602696748340723497065532271151315568321799721342872227640197678856846548660323182138211048469341179973692543267146596103249589834358254198361085685217914885588317817932543694095143657990925545751855728666197161371221395426545267963533748514531593678018052994967121517345577527743872565040475387110655576331172943551355160061204255872921535892821546420727416322708995591482180109453416777379832692752334112792091758936985232785613460409520820449917383794710455705455923752314705727698803163010493433276389961549485741811530558443562358698991860530992307241507513907156801585364122124538007856958016566852537109465166991946815582975055472441075189420115139784071722523101624034092669348789789819172360992817442806003082458084440904298069365780390279216638256644884617699261665315276202742463948666096809169730466104580966216286715119471062440152406708667785897753346014118993293362246374851256981707720248518590946221185314000054254394041964767180451992498817345049654808770868404619553688227541210098208125717257169917962357098509312826888821551129982564451767878958665671242633718094896464350352032558470784475785665261284641857096581634626129637808768045589685184706565613694251785744563399764569600771038794835836362498187577194905147427118795862635450010742013441817311686021073540650051621202272317122413064082189017761807375979416739156947313362423474145502110249953303490078451311308821472788797381091753580769694152307611853278946633390441983631518029507760844476943666001764249614995565517173213852091826803370820086323232126939801964935603698724841912211630497929561351810496970553032605015641213878758513129227825296018634582185369028858306286345824751888908791008932484715001915682485251774823894572753500973868516261156787842843221639701860318333349395649511127197206878000442997731852433038144726299532359424012567841409788080283668531898834049933722623027731261670288135911701899232069590371445487794611333247581872005103097561816815604637396582116964612293928149115558865023717229998831268647915727046201992062354613022565208530935599775191516749047111774052791215673168350702698087186004689574987820264158559999241071106113561404242417348191176764420406005239606660766664093394791492740362065080143106563175560554705509627762906557072520794463479271497136952894206221439501172206457886521753219240681292959282047257992158020517651795425557775721034800359646492205493129602921573304631042663239169961499718683436222392467723776832816709276414551151165911445852015514040884987877208850995807203659675559789132422436194474613629371178644867936039697578429554034085945326940356502154276081434259384942591474323478390675055857049709028193309209037060111359248656977449005281496069904843896812229742035743422997644492468957468720793059014546159746881761893527749444662022387467560759998522893779515658543630774178047767510522804685346356025459762603696738800449261819585486611761321319297949833913325087540650555946043712114688185952858993840057006468315158599871990002618782671407281223012375638033679562179919766865385795046851472981503343408104152715111559938805063668816921084296269712358013698560991504107078152825526515990089208240428937412728078025055455060777656647026260007931289525636943309084506993072149100351908163055370403174478559551604362740161807914970290679481358949505657683659335200262897747075708826357820936813520833085195300221514936386190489556218242429487877601275653642393227303428190932816242589169519911987251723527328913097228136133091813778685965356787459150988528210216229348268427002436163560976994750163678142086298985673841135171084117231017874426635952124533371308249328968609524332894985009597730245439749273258805242932344042661061351409728678530331076292711103249955150038044453693132662673354741107459719222975267002299297708099981064613686420498577019000981280093805814158617303754776097193959395693347040228224576654289292124070832512151146870928260925193685234607349813823374336129419600604279568708151258588259140327289392513793881849322053830915021214904267490401782130465228743992702858515416927457583657193671232338070188063974245110867110896997230780825232180178041774678269776502279041206298809137667420226405701109328469457610493261078275169813031940347713192522273430449117416443883511002541320937175663263918567529751215040099891619919018609384734867783013275616320547190859444591227661415484310937542795859155561767399330050157417367229739546225134991808635501063884581341864099730317335925361528269619411822079662030319693646576617858437212190484080781298538691896339406277855519462946869840722990244735858180927500317560876319695747806529566996657661447231692161379985251150351597617301687812384680230017353721244681750656841537841867170432708288172387481306917618440956792619618312206461642565420180861662314571892281052031558046573067514025710299670735529543011060634571806786316763713125439166280906002686100884193223724381290594285025967598883527425797497020353206616069336726147298348553112187032604938244876309436784913112409836190340035876079011283371426191042975559617273890797802102871203578243423370884516773847727392623054467169073940025400205647273967016638505800250071776556206511450384856222911045575084344240677551310881926164282932146535420754739241301902751514632754393281663342019174578919604425377752795361075733136323451975688013530981310007609470297408250775844553916591569804606045740240987131181969305268244753622038454488710450528702364931523938944964309455388787450403854717469825527257620198312705577858187477629644452080442031822341067820667502604820103676641781071945337191608521905381754848937635040213624522554464990163166267588096507429422271744424504179142333973125164224041132149456219280864272112214273121905435683428462454400559793668674636966152790001606825146201900029467105579935852177249742491916454629822491571757188001163562179051063179510772161075515042267297305808574598515369096881350403751976077077250065850569430030070977137490509195679825332770646336422045443651451483035501107150092552647049037936874744393676904376600780422453206829010747408300488603984757437828139983419794378458845645055764789394302085716326619575693592256684393890096012909800455216868843057752171947417028107800735230963891679788893579424779609217872275657614285302853216176120678164716810024895751050210473634812292254617277222366348186415925545256620342300602205002655467252497090237553051219935702934531497948965923903284345562745199807233904803909978805880832601875331866713775597044611748141509961898304561801470558611974611638175933480646236587002991892038836850955964654778276345537564229527354159935801675826947373614188405792404628893925834406998336504005219354129259070486988011337311748743414384920490109487327891267520674914633207800339288125695377938791115892896914753658235295152191023364631650344903527936607954602064837275967572200248459822528008047814864692245435353466662654506489106415973455545026300807746187700568206860953902719723432109129010098884201119034876016393535286842976297342481278986082317677461825046169163133291448408945388856438011521324490854280840255937718909475019052765627063208219056178646544786690455249309523158761805477344371541059929076357762726680186546920851499422693561591336416387105573444387738260038637282820727116750243391547440238422002592167779192542225113763817805278202842867497342503102527638322107714473923719831871224805474837394421622346582867282319712396285050308595684191663064599153201097693109069746719119551214461856159047605910037783653395202391512071308678446217200211784257820833672280504494106334091777258547203420536204817235898058228560646816799246884414965334658126344338894749352580627046758513492432527499725029036286189711299618978842157523887485939264349065947873972791162259165974483451079236930727649989498906068685383131907496859166588435455681946049314729046419545891859971163196563094271804654149222508203033467541067401159963607938341693172058782639349956962797769042234236874679831256723937467790305816243033804894489578455468650051063846461782061505925561923993493225544459478060336687883951230809180468509354349877783313685945599451454184469098456767797798177707015152309790603307360239784504608844553909878071970478708730434740065085771119580865244279802190920805513184083751489034959875889942198086436860318605103873088980978536451099292554250115792152029814759676778821621281751573596095518419854699210722070628393104705044061587799097763932991860613205976028597627072212316584306172547302145917528568457378789101048265303081591115226109665049386655913728510838207960842317358897713239572864002715857718225148180693160126891262186692059221070946556464416317861803181093294709840317293409391844656158047451639871658592535249630474132501629957803984958260447194454641114210659986143752799957730479986277382832287470325475178277069931590168365785446371006038296391470566419574283619572462576666928090379873023008110144493782599412876889071725051728801797797728406527873166261724668972625402692989176114669951576093827143891692662077525369031630665856916646087234007484541174069615773404622553821429200596848352040882691233542428634686307254247447984593997621749994209048805749719421826749550712558827071045177089014042368717721645294996375329297806392474432719066637829755068864614539409547971004997108743889512006873661502372656632074824046178908290511706421308626107522283095036519052979668829958400510161092284705492909992910402398035389859595047899964409881684513531725705643586469787384888916251495145207761744971583318195030448862907859314278348982781180814371187787465766069073259024395932589691162698038359326082518996621643408406780357624134920389312988977454426640108102334861844943562209064719008716693369260593672118669176499173528108732394055969196302406558378288451569296531441664520509551125383190484641921564169720393786518004598531186872670596677935563891007381239819050944396359043823800886892704234340423349451969497981408642665913682517713537031783883954172084035216558524017738157419428320967494436968581639202324964782883864184334523325213601630197033468169178498194429663493769586488427870008457804976026474267963642064236319261554213235214537572274782458347704798099741899430775576003022623772571712309471524807316557059915790737422638675384754302137221018224533915727926527031252955476732637653922955264468501262365579890953705100566913816317522864706320344590526668628377973593472853278193447698626755582832592501589053719296100080707592456471427044268765226487054785495216795721194984368803292383546349946563116308630848310510781545239137714944441106706501295409502450090950471638269241866267041967879464821915670909012416430835444499390731538688443129189040605414696829488712502093041248795443017106846223606889331985879780701794781593567612094270444027114740319933178949590247061478965396370807071853691017939814963828992721943773799437633704895720313535141094432132350025224191514463350040971092318920892804922898413505978122652683583465999398904324400753129396287430006514154441826690084819002610788888868168067447543714306736873904640402504285959998161313475039501405038192139695050755954885720596208468970208599298270777088412087009829129279993754062233712900858816134296625569829990480542189110645005205351972632028988542719206616840705904415677086452621634445478636326640777930025372797636771697039093056493926144634458987188118911494367380618164395530348340378366586306827063603293878029070255824237865966433151173190928955639661781076611521037217676484850541022395334140120456554114806175385302537663930644849155960957912609126482411989345423221458496378739411222524611534313652553670522043076911116909131354558342756433557157453292671160283446316617620654585959855246668509090800116737218084520325834414481972314783114834889389677347649534194003032532445588647651813641858126236675684561671226909383165687617515074492901591328154308513377942053356412192626591676919946336931127267538444872908735738358808883146339721270452105695201078601585485119197843800952449028058627898923089706554621505362954281680088619815761566104578928589668904373419209634699732892627864179951781557409434102897265788792314099682114879114188314025261721137441773300344452251410256680330657391696528635540583060355101510457625027048476626675886595040638860173861262193515769007646817947773238750422036508060534658833499678546500458794550183229512437746039138577079907252763280754038549457648035843794866400114753221086673151935438166887441543911423497548435384804881768322251490972172863369557830988925332184598805900790273097739492676113463547671846580714055308069917528293488441582106629654899133329365563006194198000676756803220244190838805564117148523099405196791442634650304514527454004935444699446557832121910872567036615420506452878798413265052848387585699769199436240737675094969558730734945346852927954483510178128915185646102818720034057894196103774927506838532329417063196526516333931722042484237326393431817159848157458876987765103518623867797007080060591104281081183013416666934352197851203249625284519658157543493151259701398131677792105648630312343681028172497260908486578922590208073811399970966992158203619123042570833313854699561238659319207747044525591551565952889277772416431787158483037526180955769865521976105739737439295347768449408775031174316772875616149207610138482926290934520089037411560238428236992710003086123347005233287845982363510847373859957715653842093926266255872536897703701730013067982310719195553441587254056541275518030072261301915016414448905283060810973466027007861457951347388647914413768415558177029143238156939833595757518168816685032957149120888882696439058975680648287074902296665967755559001055883485154828136101476883654844997455151146126695769315617738381474065693856784960880097176620900394484893336703763318070553838372961081490525951716359987955391589736941529349900994208964580937616014776842469714385142587828470473761217246805794371309663049453921688430185459769041877385945788418456995395206827811383743437500743402883261661145987086974347823876765604303736111279161765300302510180361219736162995963947874038461592776886139319946493985123488081303045505917979926128641025078157182993714854265425451490641577580642166121468105012051084757940776053989430102358596952621578291719217924089456143966666660037342540671535675492918781488015674633264234244594036194683577150590468389645263998516443283361986597967822821861801886190422716833756911485743228246808766722903145989236473450882871167712501297480699559341542152588549728763777817749623581410635961041594694438018495023745441657834946620877629863723797396971750681669614624394970842414876095381070494306472421908955126182463958227857323337173860926696043418894389127576774007656976452813343539498524124537218836989234143822639417260153702513006274911822503732004779480773053334286982339103493715343302526402418486471618246383852217895274557430429120237234542124102809949940957041617310039690858402392112162582346857115737269495439556620892939319009221961898586609819704874808471728201512444788440642634479366996972873242209355234241540801915080377624060458882873957608974358997998625251800997656892135208310585815940716789634417377408283087058045565685264037409069282851218410127370421225891760129841550424776184973090692002644228431018574133243886318969693540977641362835577144590614443081137996129036780125057626755484797363498476924502730687615700993214548912942369359281276856862744778673058197000749370554049944534506186643133461697785933764497749991036319266363173868630217330534205376616202082026432729700276203952347388087687846228379396951876362956993733871740786871338830619302411601560965877915487652010758937240945596454698847407360731854837993013181598492998153403924412763067470215726764693557887998151027830331268365284081941980859771420018050652770407498507225961206431613821880818569082308516162825028510220039593264473753769504493745022110950108498387184688979597222151687212667588237292087566117042136124490187104007212425425808684902544405442048363500003487129075349439217757989114921736819374763576143120078791052943604906500274262952574996554961508852027073628334063922665074732124971907797324713948076522088408385189519529094665366258256240822531786303220134292843827419764290099618521068513415748462892814998725430596864669666239299627889946270671176856972562708671490008963595384584150922972925659507673299676923945813799695738647624942178844226767646155296057130234786197246538730068445958699622823025954313553144335450655680919446838026216579661563551320705279040693671289369777374570987217315853530592483086151307931171109593473012423093912228693474086626269168220453656079376553546243604028251309044932883365642529491294731278120201387990682629418917501372322036166237102875628286181540288993532803436416975286926347072631596284901016684080996023410135789706823633248575824181201241105210657566369801546229747801100041222740454256566985990644540413821652625027733097782582920236447880693244137344705268363990841363739322009864424940015011438684562237080042859367354579397361595801307644601031582809022133786750697271670317253281170076161824998185689740196371356497026895478250361287074170498021314917529675162880909980128311464429130224048625516760946495024800256894062767182838608669796228118390493515798099812388453736033267333436811126320259284274541321756894983051091377583540593017528065510498399477638992432225044937489036216938073351939480873367468623574105317986976773371167385267072018769965371384614669109117622401242517284004565734985930614336232178111772873412166904013614445701639628833542985085359745826331098665949762963843413486406837945507869430063533280305479065181695772618198506983950784429830362466161257354634535799727122934697686116002195618965789364453697825691327953423402512898294337617618214637124894391226389413044228634752150312717084937200151026030788786920083598762148295095340898721763208536467709856622566277069284714508055888959098244117174885677230016433649745188387702577338816526048928680245829414405142099877422512070041402160269966187298098423604393349439090903533526071294827927140560747135976584385654851218068435623908334829503164798445850447314469050085025562367279536397443345043776349061553419764829644407075199145953667032212588864143703110317401407719031093285152253335962089995647787116667667322003758440207673962535565647822257402322378480115094829746622822533285450274931920416392311721492346183352788502253299637905161618693975487805229081103387220600458341485463196937149223394357004836407517144536152612932493812527355733878777106401441346573474373212987424785552737429867763190819782859743471069675270885236788474199058354084601186880100913099072071966317903421968422105141275411548908967514282202940834004390628054224538451012984558831469366257179756075984060299395912330756918972667208858215118231292675431824432651190580893210260239826174819906400252696623821759157313106806058685581523253882466823431430563527765679268897147840594966872105464230948634565121851015469604010884971597310914714449293734491213874878128721562484584424600607142815494199960727758967854832738453196115753046396735256674054129767914594253164503471335043728386916412168101135920536083965689211758047393946449641000724373696645936323277745840503344544325110098239658817425178981265203702469344130837137603052552489472091097921658136363099116545650963619709231762488534619280747325328831630878784826264771186426605738671963665412960439762408055468918702475503612731694069888669968071868196156030348294264625695910491888577676903990265110783471679843965283199910777993668499752385776376977400299128550877742628288970915798831844879940918590535438135381865390649636384686280093778209034839226365085451923918975460345598910382614829266812848012603911629260585879964674601382328829881115199548700987817886020143758470823971412835339319111694695603716885516995713918980497248033505799833488283824294669780817191639395992242559068684495113814365030552286441219686255257151401928004109291143647049434574595035688014900637553309513437496363128677834811464494593989804887185752387085055798611585059545710723627028632617542696789732243219632013817370098802198911439734239991619499111553728460629878660901308564558952503171113123391469921549515725463813729022853326242197568533643128423062781569640414206819328834912862421591722000311800902627189849543943807941434227373144930092523657049844547435818250368102447208046231777246897541583298503732617382819281278723242464992024071043847740732004423191083326128215028306288664112771295781862664782187190246853517048485372988135713800156615283242189857651135940361404503111999751595236889456197875749440652947753633198492983573915271027117145713520742980005606857521569710836915920335354725308897665593267929762028381815376698609183865317275813957150079758773434715174325124417799877091786581994841822006690227680068783738030608640653069719620342317719335644020825938748047626871685954428604903029891371213591439621243732870624277013057791476594442210320635223593782449083861929958276523543788399739514084363231512192966810371494292957019597749302130127085375492099741514478324104089719490223582510537246011710193095642865118172423114463062892803074792935167276107792745284324977910546066028771381916371707417427356056302684006652202223713519411670056731545147278757461981644219987959231780629580432017361669311984481237937702691719248224718470659531446051519968988824546685206792620178563892260241789150779869184330656533690519730434464191219143313952984935646676782820277050795125590464006541042059116383319503181433865156656061465397442321381367154039727142770144863948193005077863146542310896953467110751303016251022223374445907001076060267884285526291897897440500840215402255289159513317020872809079545575814553496562408404231436135673618948000091131813234638863438678669423190804822034774415050193396765947097224557168960685251618669938749671921697843710251526086978256067673393548280947791338656344977558387035778259719564136028694768318340029115385585836720404978680798687394961631543381175749157315159680982322668391123737413715365066880407608720737893539759808274439777851487976627255876161284378910628967362469902632222062012595775482676739810822858993674846338514136823786685789926587076560773995824457385485849916708771501744037996000403590240413113426934210172189333742971142595263856712634106987155021991547928976606304660775049741238183567012154017532047425352838711493926750939739301216164384950493981058824954699377727845333916077995906439345548513737940189040583276939558005890378639210903792944657405626032753105939125910844506949795920218183529402600304034556150777584279917160447097926989593512671538905121509250079588447974351868744507280339905964882970229235390156871204405496413694638267946507356297444434349514345524889980322461686834934711686223974186297863135295531577159712563604822158202886182130277397065243668530448612820382203559609302525788059480668994133440073396491251663929717322636116973306287927277595211268758023068290845002784753362591972699868901687842347075782589565734221385651641637752246281903206507292316346601966439140733775663347430081097594225460676141088157075980307061164775504774145267833166037165550865841338350559226759419579378147690597235012136806709317011423762976803859107186146353961449702122426793796466223400331404590197828594439394479915592799627057661814647319001105441814107162160783115428643224747071741213370305050082959648628281617874659478116675835660551475723706886823305193805611004782077882430002463029614118988885546915809699989470077147251456719450155651105176164697949520708439346798236232963312259626842519251618552232862362329785970250639640739911451279729067109448857266741672453049451508092869162787985919261280786786350486745091027563336272823566504220936898697485974138540485062968398778933436414769157511488073852784078824955404781788290677065270122238432924319334777553079630881569922030381466416003900708418473810262136715047558018781533736836081579546000588749613165852379046315628097596547284828053768781025693886148607720134577126536960641002378376581108533710794257259255662872318878643806131946741671534326385238399812257529105965407694880716290913165376413456134385519882010830079409131280496318331368955668951843705177265667220357346580077087299741354391446402867315169046446298031471510582506914772237439495793585732548258235998060758982443289619531587977380017037510211009901201717065049601303782266071243966695961269049657234637450519394525941421710854318174511269646046198502741089396679463594720247974304052846895414277234277264119953211262458032207654662165135808068878850190267946190319168487865179973495650120846028029208643496772052888382285605258390967802552443583399613210058039729338592442129372563786880147993974171992586305984816013003487409596092321771674787125423414843349146502484818104160338295902510467317906579161503463329523070616587340209820110386857819600977774849274013492699451158393493776063030106662777566582493740104614334595552236650180154399545473237581704266828189161698263013704270115596271136033727409162924023732826575353005694420830532922764801102276583847982125045984455999394987496711311886947568576728115503292069594500574507971295416388855247359614062238112729219753520054671705072059469678111170893565199312332046461842861599511369835142960209870612529456896045669007444733909075343414474482636027392801841577689288037067087213413244362888059306382337453947774599883717964396172540323866597481797226043073128361943171327483437388800543318019847000669141863064611692815961510191421077273397375171461738769500390743829840951204553109183598155690211644941614102617130941948049935393402176786229203056697234035442972182788462567559906651661862728269217041697062759982301372097293136939460733292822488586398665362652198793136453642006891094116629655020102797701990198948769965397798632134909148442235176942165535416317588766133736253723210784992784063940072735745695511153060471643952062307960589844980143176672775328470004657051439184740247400490648895793141534292149322995591336043762370121785346669789902293582892179532547554903007436198198451359223538530733135191923386770895567505517236897418037097642598729906621197120415121132915211262935978203942065502903548265281130647758608342476531508949424699098285285144171856157690272265471091203524476941615313908754188076279759018105302170312638586028801733673357778362068126569984696833286079816293530552677683724774582851223082285465887519502170462012224078298444579141904264070784259993481278257426336755843515670921690412883543424218205600452068867383362405218921702980577688881699178269901171979472094770529549673918616233231028761949041356288056720601557136320923893795202039004103142568565730414429113562175216074641617766683199686769354848672596487942318311011449448942159287730793071683929935512283441021095529416797375561845538635813449095821611482144218560434415760929512993704798949177487944017832504739877792681420597511342838408608972231449952770369577009050742694204017090110035996180987517236685733326646170739240764594914636147235508129488332815933426097398290671814995146707069907829517484747823479748870673555222598541173237560911776905647164848866549056387169468591160448394392410768330535973574501949314880320407623660856963458052526334091858808953453321446057982978842082284352162538079731098795439836879017922082264127863045638493816922840526036766012714978538666276323247285960505129721141989033058098190851116263055458014520700126220246844248266764872917304589877200205316718738723826745192066616809911852846496681107960832773710890309006805004734121810110545677013767304176453148943057949889757621478365771951364883026081493068696617920860881706765019924554012976743288275671157991393012418459122470058423424851653266833150060098588058760991568089015234908448852985972788724696454123895978779666462045770082648908639991131527894231703586349192811699221481251469945246273477327541369620501396766645205011503843549121827269538454981017753295171533635959405678998389425894418251695668451416227174231428951174941308414202986002330755981560410611469588978968733201352395557598042693233353023539010685122155537828490553209324727863545502572296347036718414406318406283379761106002629503730830400058671441708106372736713434804719845854373825844000250178288812933501984520405772076321232078192056203179711061620923709809541677356116588117080856251311946495854205450831129042633816312394865389451227825637385713514234448720733970637898279502547405848630971033302909077591665283851731086522163355388708959120297099657569955992047585858755711981322527880770740802028743033771686723884168345540138855027416531611145289852026879756370676922152390665100447747289382424295845115179692603979064911435672398576009888344287667491398930894313567886501684021576789335950189562209176195090366413678224849219545752964502360745361101154204439195645782401161246362493218832078847396352975053879231360115169650471954167172945923795743106893645116679690288350131972738830670770889973350971948357441695322077881967407486268208418987989971242942896231756856772299018376250861878432064165913666714365195828940366829111587314338430690999474209340263932509915295941470330255495486623619333020071041175619154741184381142981863867233050002607816273815623970795836436300540886765310483370728173706863096478469489070554516712527535897535129584090385482712040769429561349518982952889385575220701997272748786081362793319679729129725695384145294845960339215214751295967951173008179665292146371309874559011740125535340205950308078225559990961756293405762922733587944225744360126415219680231743394402709804850677743584648075781631602898710290439722823661433226868504899699377747344621967361717014054714021636694179793633767384132505290374265809466430530948100280106351383505668129452306277822869436475583084905179143342603339039903286872450084442684987035916802518237323867201145472159292137853735308182553599143940448087222404667329471146754353434248436401446740538840061524301594632359268193816591001250570755435292289522705246385096752499567945700656102094170661422095113065125115616345110843831415339296012064769193273063166572705829896940756827016438426069465526421320509683282155551904840522938376587639742175157848310932210926142313661159606922203382009167777349278305859402263719113728859386164122920260541299487744266110465782410180377264990961964063738493057018724916731574753096444392934336631797380047781080421857574549652337355928020669463285456029572463429671118853734322057048575949063688230524427261907474006917220046825633421666900707913400725278568520051621184248655666015132260408508812329594401316852771512163750948510456633605564082411608094359091336904805878785686803356165421278402226859166149243753564319347582451206292089149233076215429279833146133973543020396701274999720486768472109070286666538725571076259648922044928899915609016568942609264676077996939123697353621604849685547317884506435813243477807674197602469982511420963230376153902092432121251374322211872281908863682452753755930242643510987562649536446257821747221979418857861814127441880867471975847013141112625717480147020489205047354531041863615514896191625718246808569631329861293700810645595215644157342588385331056974784236327860812425581092914465805485410987334331229326571532112440449546319575631243048553064524908669251188630140448895262906276093980554423700403572934462729513352704281003523126725433741184979613919696243357224664633397768594847301275021598532563475868133177755497928454034301899433061962325067855903227297239878444535317380974348288774896809607901754705979521011204161180471242840457660488718933056011737277266631986123546522798051788605492123719361482712906105406808235312344910550594830163077928427357610814757838236461712701123809517678598868391004590512021898616579188286900549178198664159116576302511188453553555935781053319173654115744967208708058750558325920939666875632227606606268357440744731020385782908101809229224464993148882924831598574730867729552778270776083930183724301950155969352274029639708904856110003465339847122256773590179952409686265997344128848328867923782750839861855064657298018030660660195390378896939956252116763147434712071317362972227557859322892138524972539369139729682403182390402324131115672606558552054468635079630468834996398407555419935739147855125627275650069798083824782915602916908836499316584194260225681339207816881951188436521658525025815614650939647645568606787175030601489500250899319262594746280237068491810305983496431726865289302489398241143816421427315688185515038518170794488129153501406105797807761481111732022942447737979714941345666140320520935018355117932844509768402515508004398236716196405719014997375019955136576019604349745670742358933419657424139136895806816202457060088003788509205021746899624958200109090015558801271470878501207103017996706411687153282055061844731948929360535839539662397666842060812439255839914257763994325760569342070838368626554033262389452198589284801673154211005483240213779330551307764497835430530060194673867350781315327026674331270873245221103545056312276501149680507866384110128380679301775990803986613264589616012069205866781633588588938295287600380817622836455577695849386220365657918556402526148333857785732077055119390984815512013351861547111876224784351646945842780998017808290663730043194683974519476485129353302954287053265469011007327109019019680409081424499812091541685089352120246609449076751229450639448719410701731532107800528936473188168028116655915751774430665777033173238458908346695688696629030118085963015262388379392131556831676623049401693138196225716938170470013203595919508940998760467896239103915526336813751994587779024483759314783780049111009745203128984127250887329908598954165973084697752250373928983879400427062442959184934906511902909542666737052076626584019868579177443100632920516069516850672676456212262797354312650045443080277623245156610925508645029277277592193144421330828998076736301351494489036675281193062341721464351021683971415482244321000079317573864236715663076690046601065584910629712613757508047608254218940408853814124017376815230879619695233758730864782242759385486891565423837666960991353341292397838351022114475344627836131196906161054542202781490722296267109479383522263543366987630842397646636570243882181928515915196134223267496769435382501261404907084823751811609260654746023833570959981054398028777241416951324091472139499416307099277915323628537197496126710231933534946732356699135961626340583946742248815716417345059895559955387666902142020346546206564910904796891744585859064345775086746787534436400377756072616878187406682218586618512485400035588608254255214211347647077577868821163508447581836353253128251257698382207626862839107553111880322176151141963498176686534982788635896151042566899386374655563408599623316971563149606883888608319736764907774593548048487023867791172342139537999327354962938579829497565335693205369698332985392074455473413842101989718653855304801431252973532997197044986014672145679280763229667055783118397048323608083593563795462227734906091919487409967884502049066856678414256052427896411970398207624053712549450491739238418345879426607426921301830367443293665372331113245735946908362837381346615689443696843655432198013147983383687870329665672500303162420340289432659324857501968531146212769476484718692769930549749048118108071824174233534507306059994588862924521066666051492826996417787552037542902262580062666129798324926447850966463868233764791837453217144112540514403546257211374977620543415069382096822083469821547649271652662405528408751420083728152683886597001018528782110917870641904816695113407749411831448002401679676022683191336542828559550601685115251362637798450471216289295103324256131056201227016406190547863627075295319877087743501966217424544330242531862798865550295114433916657492429159539794097498308962532053912138561985010229723788515667606838937334258592394046569134930548275600597961352044620792474715507910164031502271653895025942644658713719879245796618355973473843643435171314500671602950946560157997007318329733494158491915710724908108833411621753480497643468527374195598352142243359250014775735460253464530645854503569283070441176619773199572429846062795372508844173697813526681606665125350429574728179729410022685942177487103213336515124886160671107608201263078097385197358321995760896965436972614861858209383797277236143124404531664174465075043229142384453807946216521655869469337403179280251503583015114992879146325079852030381474311310351281610188148343190887174750753776850631761602273476215996395823272379996294572576535304460432304580253965461433754930753213842519050245269827933046279790559223555301743573686185460527093859180111476272006078926451414965508533750091628023257693576584555003425369275350720619882894163547357251968542521894393973210440651172339143584807903307341196030705188303233077423047481073145151430073004810590938309644318790033246458755827565640596036903940914547070190863220204651231129195789208882045496923636320340176107648854103188849676769405103706430273828228737901973298452197418234292852792115096341747155431941201641462594628043326344126136747524186174583074190881963509669884130915414858244034878938070150120407441335755288483624308426726580293785600352061714645620752415345724467070577287230003938250002512479061247926065493925177872428486502152092464678467949573673092861285281489771702571506288647889574361046229263272135262091462881908309161031260242518216015548917054076907913518019386933547494263847152315483202725406516144440995351228694401467237288764446216069453930488289029092649262620923090547210918555334868145861873552924674858583076152556408278502953770418394375179101387534146276031727841295114483604519651343138196499699711514981754049957412861008640534720849904665216984051799877938710575323180306677163052121476501749085110473320935646750754289224901322356436143284832214011646821443982839641728343315209693810357865643050269011409023049214640666237256694998929037914224061093780988454847342858053439667243734534441753304350193429697276078740815366888065139101320149615692800207881699792723645104665337711320370514509953523431081986475123573458833993758919185855201580187161845133794900472227982889003273978431166390421863571361505322499464635041209345243316619915200233711913785709057287350601419956107838712201610760561702688861720828623553198592663675988591121033477936868677768571117952445439434805681532556476401223164842009602592865401530084527508122986282014468470650733063678828559101328951809911360271232818807380196418963496722502482708966565664544460295955768419006256110080737074999551512065100352999327870434426416392813273933236855540747971155199467358285350082344883564327147815295283843413889895072999795614694308211678890065503270741777290709476884959714216491865751557040737138521825356489921717574880323183123474601161469845079599679999722132059421961834275219145963071960677060243444796533966140123235983272500975018774336773020587613670954663607468090905034248943651049427164264938137565851524671480960739601959738143256957353616890422428634017237684441557933420336800636067380286229014323048305941358196635146995297330371254186843669190949982883448031033891854658978453424492983165625326818930142489536069790536540280835146498877681773959877569350325186185639301468502442094229479940796543565422721499432970527651513342817689637911225307656016234792207656183275739477439834201679076691621504018447727073501659297648979465803869649583195962809944453772652940051122864959380773243182975229963585043793426592189359968022872416849104740379487897522473857504503401759404727799505916830044218547463328119716990143413225187478518864054531092363399701137922993895540478947692133277263598261249838471693213682183501438761339375660726740443262666693328725667800262022039260499601061663027491855293994017356688534044504975185860660552831421955284480449443373013353171009982694849220770944906015725322992065817584419873582251379951064057573721285258353537482075220054823932669589223800839944329021206499064666999377128592435961923547867736625156447321227503606218727848432805261586355265465208187826820424351232453961290580387259567680863342557217647815907564410581762310633978815025021563700374848303660768984932412757877201605673631854926565130215223442836764744106747907667080759547286483513864155998342374748690864880439444883694031032002450716128699990916255795694925053480536279148253858180658768750089138775456220072301904342562032279512367750017710552555470587711784063960628194436992851750002935532446790089973132473929182707551893786363439696792403390604444646048732539316473932457889955025887302167508176787888750901776708997850650121392005735125527037608291213518559921015137091680888382577616611891666368246561186497395885137539713604167083361922867268307334545056716884820297152313205384606549100809879154863873966293371924103932987856395416529270456532352350395459622462658408580537386206206912768451055687121061269650434782050452867519716573675075663679050729185930933063312276085384100338573012361847925256690323571793778017798595842629478444403557498113662388131980134568334111163901683417059909997666302947911963183850030141596193979199246009971538919076159472275750113028697918183882981468941921315767247170724481735893822998983305588076248824898143888816074898391101410307777384093386564159711808923312689408391010095946101447644954463716523426688969337686970440965079386794034521280246465956830592934628072396137243062715436587630653549699696283046786941767228861582549845830155368676238458342806455107013474595868314606281843508476724501194232811486965324435513356884066253023566178712340139025423058333513770478230898543761437282255217375255571892422722613442342584051746369336786573488182486934352669486066829046119596553187621625328114679660349275835997089049679172439428789186931167552289737046995186046020705298740615939611693130014918052756408539385143747205307553565364120596879671932409038816929816606529566112346238534366740780866547948062039532517694841062782522368974761727205424043642529080655416435814147732436754192364083092413646320568646339092632980078150797025971544264572075732717257699304983055547931047345863618914657305016989010689771547768418615431676667759026980374919520460321950640898515580664401422979367558287037901241003421389439794257020095201151622092838627839352867208264835068253778410292977233947921770487548754821673304315700655648645180793996128295882649040033276287934417184754172021109452611366650241681030284977281798032089270776650939301215704686355157697539429031270721451424941951468432618711031756174111714325271365009176871647004581353345449108057886636928594298315390575560554725655268510487177971450754360867186416503255510185013414478088479409334098059193884615059137149493687506806308362725955606522677232526369331226642927801007124023285984482793673453735788045423459218248763477350622924092881446999774971671852877174876029182554639736654186600463085012281182118090611916657444569704220667183279884563303538679608902667131967541416577475356875666272002393229915725678603524306322174669713094255157197530085820911413901401008081037166611481579589161450420950601204106024517418951293831172079464299054453779231945726305254680702491777184407410260307024558159265090398408303359202981894057336703235301591486480531261886997229538524640386685672371223445264950758547428865943351431271643488163854208040533944116364752908223817013209338045980788513370341872891887621320796704451467442375659157137285068038900622523544925867203199896795873652314123161444652228890359156290028138289832182140178318165493282278647401329289835198546578388079083698439894991309100792282208640059442920636009494811168377604232655818093486216436631367174147374702243442300064724636178406489707920735472845026779256870383566877687041487222070130480028992219115170345520312407156701865036542264742947671283589451586825809003113577214715539042376001829511126054312523178853319273444006021011201059679736483870365555853109782376821311328572708719043794666462097841341769781401108596402766604256477167205486850431772595926403866568086585575266654922185820220038598948115049922354011790099169284038522972638447172479487165870734302758338147752410533104822523091382078398445218139595130237214362903113752204015301050741004730745239947374556552836111997448116449128747642844071852312840568056859343629443650104404479619107796246126281411556333115142783866072090689095361407917309290484220630350720184236243028807209015397610117762517757872583096230994911410224291498178919679655094707933014858578008578815865629102704512237248454925944897656010136483611258240316274206683986289118867141212556119318867530016421191974915194911314400762529878467746453452054975967968960695044885396437888164046862746097118848487247163537178726914670468945503588834500394883891133095722903189495097940678187364330211101876055229480450628274141912644021785000758527123119892262643447895245202578414661018867558182073577856289242483460326142181657750647260270219395407713293964203528747883693866075683371729761690569788135380984024319742631096426515940930163822259314264199025603676662432267665797592851768008778754420935117178256922178129491271929233516910518660818219618949704880808955963249654164255706205541607996996297195316836192231918056234763995533813452836242456726227387278143562147716835361622195230698939713462612526600259406834882904226023546670266325947798017510394767692231271664073830896993328884051907666714664136352286869637437306522812283382011587184105497575045090162865700101259931865839676778460189694523051571473203735287178817119406882099778393930959432977652068933403512055371949825264627057993783223608169603030576290653720816142900783817455759381411825563776362819234641965612008121117915770706627280351875179938496762478051415869572968696653349757009090357146447329442225309899759150101935344693336975652273942606020820093008426109399082705402567825835817882209760065119548352716329263070427708272353270019914546623981519520056742099580346790668867697213897741971899754505164277444652189127403324601123826011864016971432849780935250405404756180480498860199098006068827150513665990786778089106335790763647564342966705506233999151768402000325674210602463272504954556984023488468519137683248478958220754128369059793131548149846143122474709419830373638534236980662351416142558447981993273902963460495922612451261721142218923257772332837548121224860750268043683614370809452716489841374265702131016325141020764018615450461845679102178763113259523282815868792038810409167200272341875126415714200777650820450092827875530378534454500211426892431513232519971014910957861792076456433198469704248148447428793288933863028409212756304281528102638027229331774403868787727642918338774233990531296556775373256482886346015121107906202342707575124671318578105904160928087240265177314459941506851277069040079497155146853512584507627370941750071599865963409624787904371962073950860920313653148374571452616221731840567651133260210788037227055730086358917707723395911039926963910983302019776221730653808939126697743418988823833787386396395869107160228785960298080257009246785113693568352759849566384449505241044506990925525303243973339018038204532131362688560647013875431964688455210795904260107042907465347944561521997112419803308566753349840035084644953481512118303888250639540514348940332648909999762050078188006221099180485729872289094359538000925350106532958741173605970042890935371904093782199112074507597082263423064602129478804171324979016937188167568992524823023271348670498559328301937592087623983571913137448588408292136976855114949439688497580213935730139750551532833395644287745686731484045055245080579076963128287485026740625725892159896546527397963997143882344568225818116636462762702152441686099704496144262820124802194554522205336429401520570462472689283723174596545644434773241423104182412556967480234883905939365960121093312239674351758660653029628663908414914313122185125794103491116085971928753063232671950602163054034589023805287205259487752030491764026212404182994474693775721876805275303011173901844090408506462482280645640441218820547736511475912359661885161756052166503633859431028939928312487668824264391760734731711612280343022402502666453503514383699244908448814386743250893387063599636289045965979869762349206683887336570640370246020381156744200747732251652085494315475561780629283107873129936505656840256044433907308302222232560240603725327788824872565194456672451634229294229590770977396608445357539296783486434031530656606333745413049858646669480919154658059668926830712841013743697386497621033564089867851694371090106376047369154415756206208166196362546288446553290046120616699291424509143713533184060543895113118345989543937767864494762647554026869342935948924472436790238798637297988832749285092436913140953983770465534632502776930993423487110829223028118042297029383888389913190459433916713107499163272806888604409073466200112834910315355304948634877056356027337748431139827994335252523848755380656742399568989156787234741128061826283235429696412395281392007100645882088448052765566162937696707394277243971826393075685759984552253886093802630074156168129079547894928615030899815365390932487546355446772741008519929006200917919834431834299935082222643217459996148596857485905127383209341027505940934351408056840395495417172208290290183948461703659351829453276683193125953112461869185518576939701709631561635091489730363522482077302874183569459090783051382590338337323186774560627305161761528819767538400384007348094708857577170677461265217984622346918120706276684658300470218286848303781663459231272839093336559066776737083081592452265264077463754834343539823280919107509732270329592029922971825045692384827227559809216344583122174643778574700092198253847826121926040916781691482820217225518991277933330846690793487451441693864607063995893403421827379256277748615436970933043025100028426149521810120203838088600958621608490638167779413364153638870768093517904633162860399095291804180175524353699888441618920949397719827302950845873185426581507448585887791401889131749967445321548298828574609433388626439676206225186459785616058889896781884753861255009364301017658033753892655070599262780321645890927699810281115517648616113643528453843715773999270422245341173287681588210857404185269376354841831065320533435791996004419435512843185205449472455778468379468674759686623275379194134238251274112232423507136227203911328478220334988960795421388795150272318060150964380163972662276710371668849787737745783541788645231246874858304232583663301363579304410324148411313523004300466842310999042235366944240670153640318307460153424349481017246317702756403519352070044392518762539083325502096667814601974435902833132810682499693765163188475096841504530194681212831312730753659197854467302023520651011099047667026997885348615147488605429998707539318067690792145727540558425556083258451005751076117506276321208034107213974176862692809644473007018447296961127396252045699357564747891312462705020162807271979894067128838802829599039636422901839570490813499162063690179164464725365732396229872141321671878442448300661979058982666833052698470434354638910934263678651210224737084147744986723367467902242456822432642189784535314481642337275210948091540558138136907181502063232060393955921454406599957856889472470696699606082748260833405114924823559620121593690040908037200973715193419719447733762131931970215132910526957172050731286144984029791439095602842491343368210438477822150296254233902909777993019080762124491622764331814904204587344484765658063592269027791321487677435169230148185650837989352391274685574470724797898600887947562997869384095142887593576981795240167568979489094315224332185111222084378319049900230342124130230893344013929512610089175979908385031068506694429856813564462042510791427435819093288994427071924248464317183801866206629237609540119470419039914889745528177842099688604110083571540587897709801559781296378996993264122374889358259951450628739026735061854052459431447774518243203836877664405083481886412453349888947340013243010227399081499392266860138656487959179186892878983887409660099922971725828177707624584918477646705836539188607274824278058284050502883161372935251583503769261437871942803893461918860260109060897435818324488885359718869834672398147878853297460374787405449779779943771072494351451717703378162576904473355613507886634225581317567526955280430630815805384446955660582996442576596920886299031888239881019419672559999705717942248777786058501732186115305009828689035435779031117214003227357428874711329901498235713355445589307613762485793756184123147329755181694458272348401453309156746944345700452005371472391662312842200855583881295570919663728926861655258290529053311100472975240685503142464416086065988275859155670448569914683864134231734635799485017943934015929378298887642288500226022628509219139714049815808466711225621470861525142961078906261399580434889424505169724178845785718602779620308581589900325574439455858191040165364538338794624902479003086761424597682843309708053464665277176662593809051373037918172268192702070264692265291026924228654461386458809166475781909360307132392213416886010500863367641187302672915953942058049873924080055582937728706241595702591103394762657100747587516256721482431903652514697195990842138949251448891170721897806593801816845430034967789931529772070465725638458269451547894198206570221504416292781240344319473235216368460742282609490829722053395570877031257883868895830748134425143327876162869902690417384431950196507293577032852365170345905458800417077872946553631909031856838341654665620700105410512424914892580127097988659121088628264909884731649633218222563709997364061533545769972835776316289777438175569918343325639025458858966434421954829564966396784633727051091445957067709869392640985027803563291628453394132786477556972519334872338399486954292717135286019151368496169931280324111963846872344325052137811439949127048026962479422031567358283549662423135483068321214336464603992771943434753072474490306584759924849381456480812801364752533648048913155061912893173128890069616546786870659084377490390966402382984609078071519859813240264335846773480785658552242727988928357012710366046405156382841440329659243683085912356380572783178946148869590050438646119074844285478818846599378865970772364284834670456135531575513587453119019587793555760434888385584789100187612459343735885183040973237317271137588201407925676731207236291355529430542335505967474854718023981660052597038405176161382989952867576115188447834114535376619043672318924399020321445975608657542030376541062565372981201868137274695254860315972135615972212170005047831462866919824491313708302378424234101896905081940083330230352526016738873078133127520364777550067309870221739946151409353859643104413320682270091002566468056049715310075705126507239727669867779567836591737088419870495885086751491242544124440354494290297051844108115684068488126679651304772556618438520131973855327055127799553951768203249558527521684969922503823905995731430933086176629228366133820769034188615281010625984742726358398236225671025924859982591275455609010452929587458497594785921577988326965055356938326045692792706591047810864291395184096458548910663486013901461676894104608230724863378371182318418443290487729777513254067327514508005190271524576480207440205708538168536750412904407202504473794369681460727172463962031063068504511570170713123977514630180508215389424126422857678627971551868882932538853522939621710083102583493206329524726437826958903099492951777970093767799720486794882566464171453216914882335365677742051433770980689020414955730443791031305495391800241460488056909023374563749640375215868026352062253801320106063495214342750853596025665499336571208448632799083867710963983916227246009651488374841372154060169455521794598884225483409613182656560058911165196819231515831963100647434781197368386667447482919114396177169891229047100015252573183167077711283819199070934960693079645431564103488548501516919930188428628070139120080488900038006281303399401977142545118165592818355746318505058591542612328320051245747996254171582917035679320661262794516462294998776574247653366534735255195115700352715671986021535188488878043875255263136342247571101839493420516274055918110406312510677387270444703741231829409341077035013139717303537971109537699618850985390837659397239412913031807064291982577024534127705685512526349694331888571453051694332423076134157814977381616827359246063368812887418499461581662303289047106876834419765521251534334581117002056701929148518528367995065341523256064219621763557527533576581365485389002628368753603333307087850586269787652249578265974316199914429242411373540046655401276438358313740899671468454676102678485742609087931902898695928889660383192073135361446949984728048865216856172110400805735481346414337021104567189325819223064481049059409773896515578141391207063125965486557488588761553745975790896321535376213672108786130104039353602254597745619706383762713065459685141496162442254430821221825891753320197506750779971404661189828133463047291877921951555544547503267372249419952250302349602217497829066034261684191788924608608333780567782556295459000951004343325400143813705323785413513314144775893565799058960327675808269506456161125619391180716666853906471138242960265439338245573498493022277564598979613326380552862640347184939794243348783182845690636098648185336408328665088401129222211777285568073142963431264091936763404573273936745598078260757628273790994226301326656679079813754619566775822331796783673807842372281246657365360801163331441993706094038169367888401459897153884690062190976821798268121534432684290782921551554003454533309510672509560820406466756458489350322177336711276406322208143749207511401573371873739526181038421145453786448765021971855355088723710085322127002226263891238541553983266930340021784969574692777210464307512417076955737358151485442604444461838632658961334359167016654050953095936790025348332884466759140810046012245689782563234302578075595061803791574811327543564346069095880919796941118262406955869474238226488743187018004835401037313693931312115435405067494137554998045008243684796130904639997178173026407574867749964664502956408503128425218121689027094811236291804819962658185227355806944912918843708952570228504067157010069970537945751566086816978242790047127985276901893781490056886536967128334537389276480652280468812828085526613478210018174079596014004549414280854550673895616315322088730583960368644364792872753547622060398002213606574495940175452622289882208359472259518419332673185960018094029906630076750495353197164503221867311106687672583429386996984094083165296243403219669591220873573503121154498718962519393933014962136136051412636319241863640501678689445397915005616208082030346503001570020202773701213909450184784225273983315051455013443441394807849015176945877312802539474895939137827960758300378576089464602539911583595775350438581397627799062372430863664404078249002789601186255367535858814471879280997594912534886755122052146656531385161651872568907910534703038446601163076329982118105253003386145545311604406039045974420222196546415547123975548803239352286316990141769325054292363721625052973774352422413402453256182118341319886267561085906742444750135759030038920496070926278132361152942313288863566535420085588329012065136620774190890824170993552852671449622067866622913132743043702936660975154742906209451868902813798890007322481939662058330744576962190555268232524484014034845810268271208551891195184626445281921021541555784145845369242720493661809158627069957436604978674819170380959408435458547666941144969861873505285230783468918357785113429769748910078611334923686921872749852867643148459794210936236947477734698872188669626468113861296524895835621842458891976879403761715105743906915127832648807333249938640694488491008295005222067241329065423269437625356247254938525942903584697829821965906869318364529134952446907506204178316398380126015301794274316392141688793044109320135910554680604306902458919224188480371140998020963905325643388128798031918418319887809486112127269071882255595933078647272387484169391477100266771089703044206604321674794963841040202092721138432886137511114238595042512450067548075168197599809724730113541843149225905833962709489026175437379099377382162381640900142274718633041352353861368804761273133266991088304389093106481110607599914827768088274055475484576716963242767848497375032286987059548249822220080826491472175287096153154582325039840586370036670269630769103885078037235724191694709409177282533304771273654643429716001977626837448218018696384020803504490420345442456904451421305147164171594604866201769343870619773266532070270943191450416060494137662958341004088070290851046323803579416758213928172591272569673532215828451941662070984127482875017957226226851554433041241334965380511017445284014702048918774963517473375669946004628213823800034711502777011484011640451747274288355124202421595572766361389268416008827252612131609615635769944004788225456721116873659772082869014363064408461144734351207307552745764396244426789114806361044380370097215424969866318012473644206667647409242462828882483718440817305754081903613827062841267185897617476731486460253664089285409428082538330711111277490529116393655508792231281926378621123614508640042576682934868878160366589015985737658337272847305803096368618673780786609630854215209257862295731954002033456466505689289070835528452021067095193473860530192549980748669332781258203592034358399503502597153665011670155353793339815262338954888179537133311547723199112572855444255122554205361049379807622467101633515763562369354426272383449059375951059369844044731651696631186944634181734038255091032998947349552446182480875678761928807787047567673606524765569320921131005642430445441520839039193204370619605422882678544366267298429970868906955014367094216443259096907567378927800738688316609950824027181519636978217379775080110487204915843784018813922819258689237378198800824425060960410245579590047557709628250754033298558281841199046307186800492176632904754966082533426147088784964497179860326415353068997857129844556467205720076379661544781100112731702386605755074702705145761193361361785503802589425943020942412667001847515921024555309603352348187439085785204596853178189349275185189415150843510002374328266431294593327288839531197431103064724469682221854359618822296586345140469303029819376819239084662725522646380197204886569441196016821359686847175764497030039130017416677442236028701447543611836859836175981163808944073139338133935735453972628609615775695385390991083533615126314560922612829408315716158191662705117406367302736557144145936275829376068268984575427709820996518879464806690348768385782874581039208715104277981832313844902230510858820405223586786906025963598288068122371370940977686463875886739175166200144135936008259934065368046828238052964305561816280270693627903650050962493719235588078395435173346861796046115563986177554888452431125531501175381151649647406803655310841955124666225332188177552015941586253755757456929555365302452037708767434205349569834611233170391241494636131744014514613818778781668267168990486336949991487635206108091802276797890696369605305134863177017240681408733079226083084412666495473225806115865489914246759934893178401014302810503831249378604626296266777151985109033883702408772754409994502810121958416755697990329870979084806038259517014433395109608940724579783536370381261429039078191058562019652531083826558984490724742299128574523969197690793911385085003608915575363948674490204096968022026859645962439226392212091162855631085988861693650245831001000985610348762750636781102566963105649715369375559806447546069376095437891531899904307202758483433018933146056545057727383205412988963349323732171775283817562332672044533470451045696725273169487606413388991181500547925725150890862884953396435370347889988094405822078562578838060025080391513921987185059060793128535849514965326675403734479576948392098242998679944887957981455488525509202872953342575014857200172106972799049842144144817432732697790445554663244161812646663461569547161576110570922839222675523709035831306627497540358544289039649627699095961599058970621277525804876993303512494564279899367010267545455957741380612405083774480767694406799095262581506401659906813590977609465744179683668544573704326345424835772412875471216259716187645528287805476884513579784525937365069269981467267486502191761309886881434062021304165590184578709331704028373693862772686751008417941226782674717872449683909173405696877608768592317545597184669232229056213974380439898163114663049893677532635997135016390929552522259778763114730705712949076220543410225732111836089643528001240337514154621437520910861583837327119334781933303062980122906171147348606561246126827516522088403737055722279671910911873421764655817023678732155728246513938029631474919158653440050160339738598710128026318540256527336855169416527955220040389451571152238791308578583052476111756595155335593275906466056228910116765464258419328374832882092268607343264165691385507096829372285690927708840867534679205650364131375863599954343869239599578780507769584048119184576254040935620052783124819576478576956966032438340964882987421881225897308492359472812013679155254696287726171405514085861215244401935485389578713217026759549521692752605004272433380615458221571206101313947818180320527575932033367843815674431290685786845781913568683300000424827319273545123336069833435062431884763469539828332157786614803938276858285005356742785148204815571359285114617292398000127376230661939937618221802371495793292224647298959156158920150474792507828091437385885558585520354013752542535421552854989410510847196340589715150752140039815280575777155727896703143175672322753781338690669299363591477811524245722890871546593956868300868007246888685501309768632283310443572006351304909229924589543104118457972143246860181923859606518947800055112919899712832003092137831781857734316447699934104766699171411859579844458628589294125716620689638590142539179196261303805199237159979160407721199380022412398714429017030872446712236872694306377830599673296150348654018444258890909141210319087760226641938912627562943058623362988902725175342818836970405784441116948029467182056043561572776527472705874151551859498123986475717008290124998955434898797937506253153998968893884200078710012143448481201364912866684374724553954642713225611789413983304403015364152449852117593762070905977527969811740051972684263694923235785007748961470161478394144401169682390801667691422981427317169463571321795127958793556998820831359243756600775738315938111897385419305895374214121926781196572673172224084490429456614165843090218315326855281169683963481887157941337540233757192688384115152531047340750626192193180405936379688676601158770243007800064152645229429324957156921835474412292820642720567716983575229522439728333158315997011018324353813049353804209819602521180368121831213634247602936403997233576555622348811541452339160768964368781468742807856563561628719139586447538833952017564190206263957524004749078038055776113560832234544359435066158430628980670761465089582279868845055114109519863380914492633898982510926957265582595641172544168996898027231898834548154897801614348161831184114865113502730713437477818309134106726664661113787766159689099743716015989385627756218911936070399457267231886007538755927185057167497836359596283605207703624148572140863670174110112047408860296582200830717041525846610477728931291014062218977717472191409078868602752949064102900290477578249460080819822162283263334299871161357759412795815536448136405531694352807689862561738400145519650062637246870769169425068395725704149800910934158845474826557752860430428964172968803321396031824545475330284658394869262383130477241444535261625218217937790767774176043305840578350150453363377227116178269003338461896144734811560124860168649710657440179559998478474756280290629841597345774310225951240798903062287720270692479964037105923186681534380124849231050144089135318971803172271339881621969796972518228112835599779297577226179222452129639466800712206980628228990256268903399857651795727339496211634879397058514438731343086560107150679365002228908760387802230383900614698615297160455248878100552522015883686968354692312516769331585234515840219170125390486815136210152171665475924386490347111293789157687764867489819966356907750556642559522929162371121163169740637411125738112847952260182312004946314394268765534946551493367045932349023915967094432108665042573738684842993646245143582949759540193550564246645964981200143100534940194321551901627083106630386097472009217338065147891603837121968934349595124698538843587964557055067672899103637170091646129716076761169947488895699776965858906049217602156325739641574352850195370226343020679741484135889796176248743179317645978845152827403504934409654207844849153699172983895964334899951382381069808392841554529068712074447031641466460652146851589029808078234198433048691748762650975245244276228190142233227648784193380581382572625737562204950400680173805757516804959447937722293743657323690081034394776549316667983499212856553028258223149410256918640427943873951166890278758618599291202742439108859850548507852672969131015786320055264252983368086424152551924649242942849598209788416286779464503988261104798182240634551994193521880544622964317397298107587832256322327501062253022847647753077357903124702863039746059256631180313805713524280425238316521566818362000036223517352162223060804107085021380635792607142710179701225536252078645656658509899091393612249150515127829912490791484166878858543532446101693606554421258564234386722344101964366306644311364785901183125607564131858322976151780767643620885671964563427466434842076914173723452696485023198952423461141078485449267303612260790417116917707238789987782852459672212520321693968611673575915644979277746672109688466055082167525467784713943483842438651204139103649631804787734409018156275938082655984276052650517358168251214299234048748423795962551429035629489875180866948039419907425385006770083234781196280341335055329054057824788793787528160107836528223883189830779035494892232173488479213284469799311948524236930991132777850753574091234796450955944157298032678075013134920290935869196020330440347523600325451929480234255283652968350982477881813119969464829053103026996853125474557654897771912370472470714152221913962478607474804713988916310932426423470256260974495663910691723652483065727498674393879291458665842838214389177705228648241748400566123508244734248963483344454140491219340566942958886369496906091629494273055487796711036906571638462495865770252073426852815386917951189596098380293147413902914097889881318339710778193122253398331390066210124392328975763401457226158304749445528984247636546657531164574716517549646419154106974934804658590371229075031222131670499807739254402388736898074778023243616679331360228600235281064975210753115023700321525224211960317351722747722748182604255198913558414063531361854938591375542676803118666992322191124615947758904645165917819935651680765645261732471405141005088839796134451207715054631790413185926856727057101567868743860778701150061875492521911813540204157741012080512291927658823720836641346937878671081757390694580735408143417254383468311925252029701359107200553936969191390887530563904602387407049727829761022965708067134331644924865439024182530611290557717443777011338222615130547427533448665783946727169227304355768978424675048854783618029902634892412097459960728169589852947284615470273580449256122517091173009327105009590303569049229830999215714508507530424346807899706928804766887114252445736288595187850700750543576979328346123773072404386851846802770151087539779170722224352897545830356390219719804671438017786837018584593851851434892696406678489219550164041422836967131189698254519420903217022459085768066935861328482341100227350929722857695250933313127064484151990293797660463248762553803756112220550389218966848711373280465086884780440930375431445602892301206462884103669047714090150147183574614252657404902767056099743862669141584604205492330485007637359439042479096523471320288087164271162459432780679964235767345085232641363770574217990161360230296425096129307695969443338557759905780998690006355209490170947292381837082769618136702510766161368696578623180502223050836196300413566476317411230238238478398619781308722462009265776788904086468892369767508748891703388060341628336268711674384351592434296845709402205483198551314611446116534362722773084127819514648261644817985021219943464865059262754207441638455086166021891441858366403375149958988468915908589170020038088347314614199393464736600398690992636721934687654762456309637291377761852752874726490452365210644173217385785584069666034847597071568548125721273960245224815224268375501965060834945980310469817440350412489208382743371932575963436761525191746673186371896180782315495923778835585664266162973317743736284289526100399323419486498355874955618785276329483593260415646770827667380454643497803475934965045626201025412964019644173853507626434607373091330653906373415893377018725591457394388022103324289634272093206666082264534201382965426406319865810951063448196262422024596610848266379951400711508057570626715391329235638439293622542173022529819930135002413625118286514295033688876814582342484404995963565630624495111626206999912049926161006531677378173577252554975113997857416747196674350778148719056040452688792280348841169738601821080401699045798670143681494182143770154269127967941048727723935184631061920996074030289639300977353576931954764644945909404582209516723655452123717403566428188854026976346434684666368734470811103339736410342512561871798084066167732162393006039093738065678304125009839082270966910545191101828850858528134930477350985541994106027450783012345865207035778367772218891198866489892053117753473875459494683199195437586114573059765351391671919200831121638357638455481605142281060386991612979008968343153109867949580371788719754752951928492187931109483982570774974281768855605918663648102648836745622131733015270654365215171035005247922622774889463110335176431057472216278283413440542194635080888490684074166084335068924829188241676262729466486395915845920543110820892994832769979212268458314703151356719402539688306815185417989657889427639582032307498617343673433924490710467316998952915439317032700837318491025110985579928460641759399719037505409870088840967559554436440608334901394004871021509512932173811424816260881727391219663825039444670880092385431652222332943644388530670997123288800950120274050871612696462656401058178676615314256909188072977320755395272085132217631266025074883474847428085199279486449206819257663565263047447196880583897541020843689786284070788383528532742695886514553050730772878461231083735100203907323082993755809376546459555585647671619032509673035341982428943129309661796029749511955517194680359631494096745413999673522323700859764457149676803688789028798028860229461887353133608675194568273898505087470047211165243893430888509574170969031369033564155245654905213178875884426827335668516345997080147015208701144075029310464535597075316219505564660038047492695659078569421433254373449491496518762682318339640683812153221956738405272251731096644835420498927689446576429551701551173146727764144554712464535821170847899498163445007287563552390948193052495580166413133589392712540601045787860379198071800660947157989261143825771106601217795363843103116800278102868214277285855769644799825162605665662852752393563192785758908032913896871448290034868000038179477767711232541177434085277691864799544604443452698850472853376703536139818245337597545437335953211800829558232180699883964326274650782608826267877206997248247618224306046471095080030091022453555447232362760410407562223501314378658029724472364977006326269970281400189497114923902077877141065148832600669848949806205270726449190343701828237657351563840551827146716018799881191734738812973461616435390095463610130847834141130783921116687492009073684890934353661005801410228494757493848965588883341924138375169056161765650966886399066271729757964284034914955171958177707109313930534705581308048797122619256269957731952830369449638689243415265441056549200789819853513552183445745893740351091063270492010009360906317483138838647569894623079989413248739808367210934644451642482365347111689747316699070088314902108416276422842504771757637455768983886711662981755236523822257144361488966406527674980865824122771513388159688835143736125987521637208221812388989486114127908032848114357051754718866171196213746971536497384970572128426845383981064011965988259042251588268569993601650519149637059384361609438010611580647109630951317192512524624408869399175467698305015654269474217475864433819810795272053110868856585162347486982825886434382468787330161234391863019042831652421365030321527360707001062765620801129385585032674348159839959188020535624330458929626740677506515544506878038327154301740211856974571644823385908000743229413249367205039113588750503393092838254085342564154781299333999818945545463951865860873662963918252156020149295126694760841035826478862011389001173726456917682000217944425603135195372910586546203413405446173003397979918424619055027650283477050213073679653620992228560784569674296636108146891326672878687826149977765167736193076929851265261942223742762773858974338638454566695289462584717687245023228288965008623704375343195025163900676176986763537996973543668581795003276240249240168819315021446239521977445874061704755370401362866118425283899462773376660553491587118434332044901956791282544007459257656324839703946806221872739358581353846540524352245373796971150545580155008828875664283191596205638846368581365357694310109384885889936920797671743310274236194635312501195629549467084695267720810321984821247099342893371038925718060238544641669511291774472782581118218312334942785884391636103088161701126360279431482698869014476815046691920968529346235695120131250086475471245362334363692072561045136858690759550750911944448580831898873865714957834535373761763965366299479194858197174558793346950933269011797366226164383871761054360873578203681514062617493421857315962049998604136613121868439572759539103018501997360700801187944652927093814511448180535280340649602812987055021882939516866247597180374941295263884652477343540555316819683054836973512694320187570439465454017109953594330775845537646577748077354041621964208867490477669356916027854532102277957912276111703343827878237440445104064618372788846098458250903427052644264677628353444714622465008972175414222473177526697034346674108854315265651257564127206434137073224522177111271192227795587020523156535791508131412028230866599851798658461438988866359099526511511063059129479940074669812798147691698164931673241753749858581891711836110549839512395449720140264364655483999551287670156645364203816681868096257283757953894427094407921612055322167944906114247067367877411998464653841260176694892682999835169492539719379499015532287686657054885598450026627595638009800388942470706723726782807757147963810344543737716109191043443272343226221833867605176070621550077645929473187336958534009570310614741157308242773206351738823942384591632437365270569051345507692161550928531355759621057630319714696146522429334248290187115935209257389900837581342617694077743729308497965637408605281589042073555447181082246118352532948316109424312948126507788260916235039629110292282842677360536920794311855998980690251356113093717573261051061052978097713496454410665630023223611060437933213679654992398136667483853327173091307797577123237233698634925314380808604106741737449686020384666318497952480716809410934618924109170611448101202444804402290233571968982453631362574276944482453520744494173422531123464621775910586447343705190312499407964468203538396532243645632742945178975516511661302720232215043202327002732126496443953965585649114460908609184222078823280233109977637567527413006422283481747078911689771683318225774298342420017359941661413401084429482520142240505729941079521729602843914793892621509984609214938837409739145077689031509492656479611649570899014619782078482200217396021774453663191674398824324060606930266678933159023812039973516283761976776070788391501766744870845344718499435619363215033326290246847846418569169495176430954177469444576552339271636702679954256635074934273266081467366422390297128551617962596215093760235631088495215992023015029905915963767373376051410984699072830045001323820117021841726843183600081748319740577526157251224804331820177018073592212365538494114807509890663046014129500862648414582613937851155880142354359112891406034288174420401416931734691290414217920424931461317232164025104896794261410573741208130017644854633471585729361019935933168508278317204856248529970005182870400437985694060425963942694615142496968394283165450196192359425846778136383392030587343548403769951179812618608329979986637615940044237544708871491132497384348943137256804784947849951412743001823452670404742897891544573060412461875948457233057609717977692110066116459322766144760459077997549932790561181976591765792988650798089429644153045994626884506102371370116204668468329993681713829635060786703237460085878408089752538126611986932988179318217967223900167076946756774391566635093813343616253170198394166033343174318694830018570233351538458318260349941417059286200798430905776310499435896320087659319018680888983837968153642610721767373095871135459739125910570686097682048708461707985487099454416903219123368413539863663052933646347469398031524420467797439713672422392394642850156347097241111727797130802185907865508835568582089727167575333653767130815991783356322097781543518853522068415512576894719236622988497654562389826453679622089084734599304869835218861315792878453283833853327035720506120839434837246276866681877782357868360596623454787678645718603239013330283915937954763208286051618429641155613297707162666721701223297028396361284950840330039870095010781838717519795690594890593333243963542257828779476140377126351933764305035260141950270923871179627234364611457271021988607367425104189112856018921666820554647155415444985717167725164303949936372466855466111425900456319784005022487930146494037362086991023430133314943076467855217012958206986611097569592800216003906428281442502060377448749801066071114246089533976265732979351717745988646450840711908511245580322139519635145910898160546526514987762660966236305236985483110033426996777288089087614886989893345110392219926011000446179956276374337290692784642396660980868337828372282609425968321690772098903290630422747652145809556772493104028419216734757787465551090546073629524707146441750549020129426933025576105545122333022831044546648355232901943157332012583201663290793638819682836256168094430775116156087581155346561072936098538016610861694404498363653184912495795612280014540869113739317442471292160934420828457210030035434478369214977282423057310561419707193722367122331726458287410248591667540307169590143910997690166796558910747996248345305515975182239498716444181398836777904304590936319220401427241524437509905732940683567970671704719562989382213317318441143838538409151306775709354745358392214292269039791683024807668832273260988757773540926223815008937687559471047881540726802470326855885969634369367397151909092755061126243474922992634937111872943268625684449917309423229179484625623843936124570228013547594632498274551867128667251146757794224807264386805594602075571283186850329729497207574483687737626625131030700975746781520729263317261151387559420413801432333962164838894396206833758952364289282018932670361098409587813447380712689651325718764837772524056884227190436654690681894896030694132574111337906932035595220495822375176111113717207729963198657899403650437140781669961279600902788410326057789126509516740941023641410006626384595194803602534123122502494924959709146279875668769689119122396985514642251658017236207895085917177183376391953438714301312298678581628456101976167762069728599090033205745683079823922952202949591315933662542950914786259658936534762397753828614192840633236284560040682896252807234499410618122129130666916837125422617392627830194579398696686717487053789555316502278135203583276148818910685535028629605262134059302583418956773220526412336651576544578257319091584453338906259598225046486797706468430978209713370793579366179729999203733075561253896778976306616598618593058221627298309395579623399673871156414767489367658686443652894494293329128118749201197255924855776713200298264590708998963260390736115104370356328003096969042433593789656915184098639994852226592600923828642245442219025223760062628440863878007119228373062005703637835873383728856485882247997279141102329268142602992518139978572293747909569699891669148256467500737645444291484202056343401275341588483785521950757220583030889380216417977621673359506174280229701475836397675585138533526650386159980762860098001251714847914778059905754526300227193990421985110064269737445297561751510432122640807547273748956122933097256866215352074339831438997543584430029210110839749878230020042167123092206436108464897539775082772372169927380797230267885287373043248326044292752113570411118478023334220373214046720272086154046196640792838267621750713344815401137937743414690388764257771480678223993335949033284298969253485853396427973874692184082664493083059844889819668188663032489639515123771989343496535595797455479975234829326433696612810731540327869324302131558395346903798886225778004570391932742837101911438719985873625101469986123021577207136054588197120025966306397999745995736858540238494588508272480867235394297465111689888296324145243180161446979234209352267174291599888436866776257337881437356020145759758742330636257110263002674266009484228999449902318857981170122234851618492449424588493847585226716846352378805826948342384438178398204073581034279505124554696196986909826422550722995022085621076165337227043930176578358073348484391267894041063261278747699790162603914713560979717500090375328744568060712012630481569689441677777229372109758721927708329726361394269663012470695618617777388475048536948617306926107213027489573525927503808629750199060438988618710599053994703384973056429562792259951339389050783350846966423006997189865593514771527522901047889924983380334965889054994940769853946311966514415989267700255994237746182119018382893214212046633198627836352998270799420448343241962238643402457621654083558962047462017546347777233421128512567223084986086444128295556658177744388357242727853505376709615842814305030013168138004296268965412470896686996605938449915062807704741119289523094053458647652804797547305339490631822419337758321719999350930805189650530130658206892503469977389643437670745225671156947837055626464312966151977532603378080739565697549333299404757207173030082479170372042327718339699323896779584193696326103593807946623687490326187653657458780277932012367127298341480614574540332114657855125909832335381341418116998538505077609055652081825929413820988265728213759757580367730423771829342431895278742392618017966525866330707431083444665612250317061442188022754944951841069974121501067618188115620383831505124502203410845116322876693851688754164647216097366428616624539455349099301188741381085368595298661058191428859222588896790511784829064935219028934626478536798196742417260940688421488910340435241836566773837565415938564762833870179085564936852833912869910589699161338392881739974689880330667297057694032684237568593262013894342056852475817902872797923753472557515246939337581044435348272951087971780781570819583703881802726721431643066731229752441826247992542595033292653615279725158747401990854137240716367337027562017993225670188391041149848372686190924072850521775423473384637826282116578795920355510597016399082556559913034634168999360160680456643945739014167156485696698645116751278943715285610842054143907735814337815344400077891408790902878228005415626288531695296305962637525694342404479701125200628381335123327908599711313177918377065693862581856615199432230983035812037145447151875932538760841351829583215726809228634982266481374531330378465284127287410706389636336480256923627137490791210594291615223863799781317110145348012179846145195935408821156403386120246905825747516466014658972371368270529944192966500951421767536407900079281815221243444293556843843834452448601530089707988485933371176932566368968172770384496269313187792184886797599160035871271247461620337985439629635597644861862636418124895670116712829501943527488896170376540549895841623762461600134512385960302530016043016692209911472953022688915321825756256707565602197316058588283950762119971387788743673319313448198189286689521464292146400145126011055857166007331677376577169128433150393877699963689340389353562497363133981440902681894624329286750736342145920470897547086321814989442646152974294463126469232625917505381083710784129911936847239238219310961021949659766138853733140956794047395611890926900077364601229984972580919262063702772149498834292877305316080874877583246903041816473378666836359399354272036420299299301101049284364223952044910941075010267982824503388013937590637749524373750433315854093052742795011977100235838141866490406607584323385991533337706894168879942094204776972397425365694030065160232174426028961135899553760907972712531035824316135628055800817344133986109210764102531379768962074508679579946882988584133337909531677271964432349573986477271103887541090318209630390424390118429461134063974653501070656619457967476594253481133924142806512538639894694230319121513530496395027148087684731306730239659952697856380836958098273117990904410223781399818931836248188205524475860321117741183321339502931993782631455696449494163826809435073726034686984981279886200814252482715733334724489649551389975359916172421886980488237261068109117749160879373897171850839433020129214037206259343582728494602262323870261985260188119824368892726498516844061958156373223878647326989176776862867118339558708886890007757193533911820931796264482048773515002538682952869447945985296003875245328523657265343802775415398179263926892611664682601312484008374562693482400244089054802651369437685891313143230729746176710377549464663962917565046394573464852115433350969249441243250592481758406022548852683261780076033968182340924053171300190555297678499887987213451061986567622883958790195468484391312195803735347983651710872044227121621392679507870106480196867213674387288686746832073744387619734998518758255237875532800000684496876887392565010046502404265961913142015480103306331255570334411411361977096164686220799099431730983414830172038910778174078984238073820879588264853156103376793887443506116834364744440148045300159645926634630555316622583769070131369402474368278031286059142177151594336432556466623261900609566328746264638362130302163317455836928794991059128993804787918444224729893372702875037551674197569579055470298787267324751435865328498354493954426581151374919297616062000265112428909547389134116383299414663743823920110892703047375707150738243385707854000516571842081812063650434936319867111189612459958270617388284534439806160086721793593359391123097544179759099219501404566907360411570281782930834069199379493188003752656099342939618446599389777847095097558559438696990071775316078822881839004304252880924767584410398425130141925083166653252771181855842014314829118226054986379598953710110015927312525838624712077936065472240876252449625290402992836550133695890606636286770589321184629564976417611311338848793456580570751869098963082100529502200984651762953259835651618374234657372074457123920163505569145033245345799279144807836140146155919685788716995856256456875484704891955437804508741997088413016193645518809571038821037124173590767298879116359089328421938776698937298172349672456078827025177192579604969231037904336674190979322568800621728716087329592896930671071211854596073102274441932480813576050220278757329902355475545974928646941738452924716904493328374342873881547872268355537921419948638876738380699081570059510303482262074574722483354821620855407212573758183798123076033768966772645051476593117410653701598757844664125884169029829832796898042636001435961573839027315426141831648720568719468424183659683202516640302860093163542465082131559163728180179676531342400649386948597946513043051243644129064722396378431221550491251067370946689799574056931510326251202482568779982112011806797224036926305745076467444003521224100392765783605259779380079483493368596707059412430380082488151961844201136445782198276578380307797353606612912087602640041396781753994119117086189529195615503903100510140160391680234767985573548492837960821196975216828715793029418013011869409659731995381197458354457831398048557705174205582699451439018589367166997309113242830626814703521031418819267030310286826655005373310795266954202222634015299409727236288175223076515632508067641984145175509997813963369233470193662225613590089934220229551360409293540094024460018846753894823153041135449475462159748070489315418748112557119744996250127113121798059688421957777148744880991593135709290291850643039073624149560651261799572956175493346456807924548803255254871962822362851417596823861952243580013461830009223977043132762486031618610036526154622193619364445373953320544704775038165792657466607071065020134762804403103580712051534147466654187585197715314224776906086411877876420144556311525918564236520606176840373889944062860161107417546691723566068745564908116160953769873131520300359227401669645257661453915635566558117023143668420445533368284204294283515806880457243739858813544935664809716709561919303645391486579656950007412571777057516885035163162226637666932330716165380481236997728029858611991245471370068287182653074894254214021191372223556050205030755560843487696733022844090445819554541348438234644505520937092924377686466157051547987569175303813804177723362641073971516572418791430568698389620554413312869122899485004711401888333443421643258041603765268302365863400275177214891342708302442573803366232190987941432950688458116616802656701969633137476907767740120453825532778150643757201333356152837907573684880745704004191221046818538199321063041862812981845607875089394094507635048917204535692239101668129979672588339207066732953580063684650992392810994952638271448418636794008281220153269156876284272104599322349956792406008821619326594237846649826668023565132458995843297467429699246891044100445382498396397844124352657836310978588591559358996317681116512275880581917990842736430362867987679930029850628680515823253573144053006166606060834006724123076200626562040850008334386013565565433413222286322271845707862319867400433466307739430516201410938620115661253118371295902099648538398533035425568072792900865593821439594383786935276238936000152007468170839292103323843471428815196850412441496490420806608554817960365820020857976790386391670680443882193363186989852109451866557656075962197999142623417687800625922977174560956173629962366641736782318060422217086677320417545453627880459338911940689633594768179171540029085536609117612983134408028581257952659153467485319328198884642261952006179201035416281572420554035553570705410757055055195821431164065036699988634036788461924376752960337190550702995842032791743672706336413129703130875148971426045545997503875162004473188281313753511448282053081179665168524569883947849545844446340251964216592912919063425897766199210117301760652572275130058874248020153322725567871095050425108214885894215404937924008222129032676738298346471815174826617294192441377477514353105283057564344370119281904608783837827315069726319222674870667239178652341763713468060846362130074281196591403235642903776992306181771370656988941077632476826336958462096465996542454525200332726210551953050510774367897386036971630269898964467062191092104036226698100172152103517853895002094501848407330922780630509311701081205732284410396467478406288064535116367992321786839670596207916065419821198460686076457046698871259408897028536948863956176469058360014308813879388640658374136563100793945480535109832438951405589068912832285690071236528690423599045317898970991101491909019559923571185018700501346024097645570039777316249215471887745695827126055572491254138228248762201571144961170188622316761419963411221257651853499010835045998488129888102682279759804065343470592596706345601398704257108573877844304267740308021120161294618783905381555740300999577574981920054446146795957820849694839713022809525838143431430753159227203271668680719818759638016373173648002584423264066922492226400597052967442395866401421264809179047506241137453669437417730864049900797597326054957798261410856873952175924770795500678545200101709902313459733920825380642299941366325920743180240279282993915750136606395376719969134827477603044723126867908076798482452139178910026060619108073742985104323158404709661123139825068151094018577041796340544730768611687676469836875401386948167588525364882779277440592375336698501479793641137253303441120467629152764490016031404516257634444298200664083417285531701241357856812346231694138944301972724031460446385044966000938284430172428129303950807890208125388361705355910774212678895777942869437994012599368113561003723422495263823087623938917136487144365403304275662555056561617857876856716847473639545001552674046572501782698639579047949251717254729109538957956230188281624462252378351146011347687044771084913477013939040273917438643824969757651448303293748739977656990209489190240667126631487467351876017326868124482485335376379501779198532988190461403646755524726267267437140636991287850427663679522843835788213087536521474208241305657456736043453473133225685571398990891689306634821915757465836970101197095982745446162813027617714995728173410886151157512411395985313950734877222962451851264749188678857160238674582509037289140796997352471053102146037695736275877832043418832329418324825741368267521412840027859345742062049318960138843487658478464122714172988323060579385870637048884085191714246815828966864666729062156350699947983961203061918856782596003961198626907660236426562183391035118888861732359233888299508631576698125418578587028233695665473509405692168512018313366131305771949300615098784106227845685359740948906589645739329994311746583349872894549450925930065155462989337819968001239008977482087453743134295609637935471487103475424745426747479155874510933741847053661787891264679531193530089137835098159964131276761120142414752550384937940868062559921851057371189544215847082787640652955476258950588762309720781112890538061624320726270761365262165877747348880704903513726242577950626239060436510233278628916213149874858378456745924106284723546881101480284201252877197289129497473062666214855032344745603176106343024414935652239617097504742267177299120881198081882749286041187247021566606952704624814034483100154093687803262452703721273190468919735547550373445677046053646986753532619253084317053746418174996034104316833305875032876769106043791599277397986236174552142439574812439612503336206942992301354355105516729242934220678429911546254614878949115847356564150386293370508504527493244609569192677667778741955460455156853109990591621154287539493696492945567651563380999653918853440203820557659665505645521368488464499871973555088466802263438871877771333672169536295506735363983920786508201465850040075629355398000516183233220936535647976798610371096462836194894505652355557255681425461475848317383248797714987371023215455831035941223449079024080187345393121378274205103194496293117292196784113243079789326345071779988722275076665172192873113818598310076603619684124659432459251117146747106390233884882809501175782323628254423000977616307321793719350450115290356532956139269906290363089791231293079277546222213876451404388335547524919610502778399813875983384751157401655396417227600785001881537666943891165749847123167315662926802980433230302338732259568777765017799929945053034151670705019443393592302085648234159240586695034505823872756743104259678352119418472036904964709614123534077401389093635218240392436033012485300311915645825258281725043446269317231412674174792547872113609221195746117562578172796925558293601221891369598636638723502842503973947240638442535252541604976632391926108206642853398154020822811190675411948446231655360621958405186076954398747946716618460436363377973007253892907781263261219324210380007182790906093201110614638148822531516752760730742019458097583301330951562864386405979907291649570646674790523491624306224300077636359211599316806412955628236729442403826143845122932983931516078671260495878965657901042899112816166159856397505549949982668394056241832886239512705364909440245330479825746466299487574298348559401243725466914252369431617557827576953822601054663920092162496369825361884089699111385402532451553516133117483302958951864777772048078620273827250202351655733624556685076971262249972445957676039967782787836233649739102891947589309623020309681920008287843759293955569764598296606271027051698309612764285000710112622654872971229737107701656593947477898038616325551113003939709712103372294452164252276238784146654070101529362319899711481962674430164972624072819767955705742951739127719467426723005231697719070007356669191667868237577858085653070676400399512919322702147256520118017377434135155840347706090420883760857589848997424230618503008351002186214536181028150451468209379541382587496082403259078525388493812570642433076652770296267228148122407946400959079598945972138388993916899459658844184764655168618115191645375680411064742174472725779125125743571777261957370624328842050744711920135187731121472041260667914131629415980280409804612471927369284846870270602110136883623111247671339829293623682318858028997621456457658038069930975452242179904193627554099847232726886871364166580487665670856716489010456677082292312260127886105579831078928583790164199808522564568797029287296656412942233846614473353155664702833429504295300751936300825655933985970790991903540532546434230187826855163782284398446498354660696925181055426955073054227509721360850189694848090412029246294044302521625400564777870688508532939139251465511224581468455387485117911345382137594839835894516944563377799241095056935282418392583157612700292879956398723572219890287401901785896988699557978825612983825756391950935732170589527822824672298223722181887247775833419407870067990632801244199783354715913383432219668823486977324450769759403208406840006419243641980321014349421199762031135496171256584586364879723118492992561433821751731029688429731923102215018280652545939517209491929059988538369788864727263604560973778666485605536712838955813271450922702294093671272167660572032565279065312796526089585116917297470397217121420580460537260108098780624997385931685316006720625888325239056487756458473577388751035482574806041627703583862433002560548397793688876279503759030504327771902951528501261116011071374315394831537838594476737044086033728380344368844041763995145965721631252260306166684670644199037580016393468338743014130602651390732180452111290792583186965631885790978105395532625870625664268637810113569402911912542956301632199468642733435114298153187421739460136128112746514316004208100689852158654175364427726968093022580162201014880970754812589903425278915107744138867256225566039245353390248451489624363514020064464443286228606026113092880793233226148509396999808432339503000293315132937645422283455429502629967330486876977031756207006104755299821326606177153696322024329234094058809794901593022532648683765610527142800558648678964605688612911383483797291646256968622786124971340847982104200493347924277785898537665497909475657160916052679502274038068684782105826219022753763128999084015967732805760709564393211841714661004079253937659725372708574919659152157710641779959805143952255437128505037862919630547863395819414897498466249419152964348161433975197100849305941441447000735409655476276791328670581330726116674591571274604578150445585950178024195948724297825862705598001461355363889671952147026180502858194773612530656154759035401470014473530694664183091617378524904786126425558773990378402027648446339528672557761656777896376563990829187107452946026546855347647993406985202974355038541219032513877615325100771570673550695201228393693164117364056219432782545946478154061715808337371766356180879939214066102599214734404617639499816148543022498311753185229022381001865238814064797139019287177228755849248932398513216633352477132898978732231301222126583834462980305331131484787112267701746904864081899543455555127416292718423342073854939457508812407005637520134645020537612295594849223647119351451486233484914505926435495662764973131075852954386286870901127540830128814775131337348341023163812599994791109616992966291426364317376454484633513594405926615378852674955472188761644911113253971086116882168432286019429214217991818977914283769467627503632871044830098354851168344683656562296497127342570785880721753169079893574715774468269354526754240233584294974294989633730464934532943877326158139416202226465029271230917121612837130322897229601535965462649649978560119915089388749890079005030064199540166123790145290197744937384830172205633613189994402069746856941272235675774059348342782018847240881318650741620935050020300909991658818036550944416607212610204297228805002984428072945744515528727625924669298109639503462348691465683464303477499657024079980892927497998486957277575581754752040832120545013638986054936332360408375361762900970512942322108631107983843926558982681193295790864109355438388118159631815935892888372800127459044452256777824224265046677153589027942106672028469235641503812724817177057084435481556191321314407198779470104277951940029084602988538576376178580940716041656994623431662719088767423155306259783685568373542441095330104586655765594024580275685326901087674586792928859276571582252317145835163564710904071516253534154856399041230837992588129483870229471455590668770559079018291341192522773256057686773030013130829163914445527601158176942756658253802098655976694875812198756509561871133444555976478952910014145348499532481526553351457639966603016550502642567116113338567241128267754781615474571297052622400140308594776605855407675880591433070225436098986874037523112305201048833430841783379323168388602030672999661224836450512502920221577582178876573943672542461379854574746389979350685196926653769531292712174606303497442347504705974416232834535067684897338330137672834270682624844317331719259646967684364320576743049046508417180943947886440736019337910050777799757926639482312145962996408405361881639061529394672648948299424660237079968758905867326494083853445058912135433068130843316019802816300674002061701641089924891386485586990369674554212485748969016927757641646095611949023196796818021780298409706843834921033588735705053529665237741942356540336940873919869443474149272832553039510724471425704033419014301928076086353875339620534604852130005723976900641320033707569790258409691044577877553407608488659081316344412576596930520918098070285696345455979037951948219391527337231084535725275215332741565370156861970851117673673550675744273727068870313725081135234700273291579950895190599270903906368358202375896841778148077567246776491353168663483885808483781241174089878588138409196135433627353000967176150985360598615557635642601773010179866473089252616571034094318519409757901255961418773408828821520045031409274223858204741463510889147161563838549862506766920108001097798987020932836811070176444245192869638813753679320092618903284427360777525835638893895163712931676540824593131732203704717296478127908997693020031912115714879263879155334017846855158579802526864683901257005146347097374571772617965418082446026639526752092759212003995607224380463117465004067520483148495363644472929956652102416614335322807545356270857321698785209063717901529881120303288559323027868609285976767206725787670242304461270522203252647715792349473948883449373688864147038062771848493953638880573114700359168359557710656049044792226183846797105386054218858699397219225537422060619157061328354473657861056440774187879690796587621433621518400848077334000506096511347386098899305504851489378139594680217552132722656825239952117463171853476161466601301712434499824779232713475470319725660265773653045927881633655769263033775087827952375488004483452810745098507571749174321496544441758014749602402565256229210508001360042855763861575761184708531634132243269842976327988639347489998356904520702577423123886279968161991656542832739226207995909207824135712334494379108051537616266880917603224293898237295587971140964213636267852378308486419731457800207834500953653422565316373301645749578586586932780351092784058715184770713955348498184224081694278285350628679120246377550472438899686385643753934167854702006450100791290338213405174655233451667299857864543051053184892572949975777196379451160996161229000477405956864975865999365818417502249151875308242373172524721645039272122448888088894529394096876391140582050689190768144148872618280266376119862914876923620482385026168883534030964322764988953623545717795724235575573149348556706456833609774873448387393338304315711807466962096184661496014515426538621639514312249358128334109643818663920770710933532867878469771939010648669859623025245029983413776460205405114270417145123937781486343871214469327131046953352571074885216410107114921162280143857592604405964187177448803898513318305180631337189958714806949216182844984819143014097937115842222581798204960778067183614870385993681808045277726036722961827098220529580317306182403555620138574598685137319610014541674752176912833240070611690141488323817409949777869263991694257612663534922912547110666957797298147789111157566288180417430333992727744789355425541407435169029807823180784338790313543813089206149908297273508194685171146232125716863993863151478545539396159015716272370162109482250690142005158390426138792341935214468438064846999721338943683890119852165276095762455714368951428286157531763708865390967193981288888066296901248598316281767090095807156297612537292679807426318913069088229403956741263106637181313275498269821773100862876553514360955275263090849747036197535617625633013081392492876383045958266697127184777298472301438555101702852831458113232238708105241638043246113142271714039908758825570842070030734717919009721976072174156237580894490073704066466209969929613023781988462038367571918404845817223222259575654929108123097034389506045138490628560684753079344033895476111446986594414129315187625106449205821249913245613520369874747094501644446317503924430482342492995703928369820796326550669590499244418216900832566197895639322064898872696168808686696578473661586519843152808566985733792462413975855090542464509361960081016935070992805493960281337800225491102430076032353661520679125724364388426947415779944194406133958608294703977439229910112189744851463023183095827340234822945899055036996263267261557906519433122779324928514195755253480719276702723093887604102068505182187341744714730991351696660929427883103917528210999737721517271094454833508218438323807230332189304187648929066781903959117717342852877781056644497156613325517283507220078329656600629598327773689954115337454600084698585717964330190022961929796134526486782403297876625759548638619007993671716719732074647761323097648953771723009694838084052991096606916330518865060783737921293290898208045773009684723694250711008174121770958267137596422170984177606556137894326009691554339492979792142905373431804157492328502859558872569015900589035458892942002315904233067987340683998552670909487915170574301367096918133612657025872325329583414130217303117456563111338919344240523712883455815392523383763020742415743513965737973036018282113797918934993433640432995636786913718933684725585527493063410328701503194792585970362496467261517594183191029763285582171630711546288398466597183997344895281030466636146553419919673347166617025230922216888976989536786678369345829687501101443352238506011047233622184442832415556501479238845210410895880476977847794692106120510585049133633391544158298441213108397816889458252529239044207331609438489121247722591789213869106646770966080762296774616572702859665157016941377946213777283416824330840784376704938715138285041944793082534347929352548382028871407838580456013431819978379424708639815735416780203887720919843580860397259625294792949418420975673348959409769826237429648680946090401656058852327816696717312325587746567156185386273112713412816144040607404719185028982261067152222002175515725706414749373387853559931263140421159280891260352699586956690626680113463475099776087368793398967750992091068709153044127455261876563843491623802376509656098174002359609817549181689866744977307450724728190745658810011754436777256711897809595122113089421380147950128974630052818594177306618437485221059665089792510739792064689161881744985558437365590161243443395473161834559015596495729943767776302821700446515245615818311677276608996444113068873576882944468823709080258837093622385620439990430114044884423163478155339143514474543096249039827062953729663407926038508611921200518471661672313231521030410496730338509560944089487298353701800952172745377509163793263853779739241933607445571303907090477215543581478865326489262730292429071329612556417655807642960039106970516595672217744561156872984732930921703683761594280686823123149335809568624075603462515343421409824005984396947736932863723155099262344697515335021243730877138656402958641875656179399463046461778315928531136947771630802909235475227403780134288119084245930528709799662620545189550689347117115040803831466893623533801496300744641445304833447601071737348098397829846462949670361176364971248663111526599705251598236509867291653156533932923203498415275459179698527840909680612405984891777247348775528211953938943055218584742422735999238167466225681478204615991738706355490748925446602511398260879001778744611995951319110286927631341708146608010001895305019533221997025680784602114292037755010643231643179807512187144541147410744284820663290824609284528798205874847979363107131675251158283628050526779495851541594607347696712899045255137406858741277032068263057671513771716695850762172531134826980639593356650475592469399039534049601487019669162598401101400141361670769511610900349508458683765418966325160005398864656988757546899355039572665095926052981728127797502904193802650309242973242582025394451793152238492029311752433815837575565439680135857448146188314815892633045381049920610345130464857416981993357105395307275613251158715704786988450104534683519061790682251488630422682829518579887591257968745214018040057945165568167794412692171984691891695921485547432896427757386286970810385180247107885869829217260287596958829915007313217010164208446538559418857867821882063979722470627038509521623135246524068505123008870847829331657127909071260050558354447138837503335228925826149143383088356115228587553744163540139128377539147475165357516047704816301676801562821673925288175867856354947412333105828372646055433079933542443982399260743361460736765467831786553445771928626026244289047646571867252605618553721305641332897001293549965677115811017074784932496842837331727969873401598692873025425319494789546875322185004929507853162765420262261175167306048442090277192936885478283347499372061723457724355203213461627542398873737613773609524537721073222625043099899611920778199404924069036819192158680929991216063108806811400764781893953792049287213516108257955500990264961700942630516488232627231470724631600840616821806455107937297476191488628947584413696163762724647722335920349240868196199013794651642912541029500570319111357716834117389429406441395681212813387249864784732879258948298680679671774343969690257820338676737451497652563904314826453792836104531537785523648428146465494861705566648632817067098131256062871181473042887576043733918547493901762740635134353612534883568043886019307950488369941277575071843663641313572065602810371993685777434671748192511212020363583450106875827207326519173809699652844266273766478718986178339997533871758669558752392996978888848211550274310520176733661395305831523407506141667340521125203745011421944405967697153447968259680548812413606882075652732848644693603690424246531839955295480851259896170215541236769744539788279593952932333406253020677734467814930735053342503199946432648240453241379692755587260552188364075543032482229667894455443968105567842680468355479265499624206558634407733791579706040017754819155211755544166454334093596508217264284500997274074798564687627606428316517560451417114771071295076202304842116483291252113144595589210246090451328315819062807322640715409024893976715126481951426630074491252226449155077484955280958544716778518073349869714785430873397537875389795211314611995695225552941222525469336526096147589141718363132897391406881292944416039409110923914968536862599006011972881584484556985204991489752132457255414064612821105393599609288380065671260048014250450234808617756898650765070063207660684239298206535159472406101752434370254708243913786928238480697899985281656156191911739745117102205728303419041292043667242286640222982477668543775516804183177782433433025518619908788232982755105158133635467220170658987881869207452639029431400869380979758573580538801360281004356734782830247145878291960925868455994788512699225792002460778904239880482008382403355643497285009180035869676823650163236751919212656480941179317922043956693725192758758233609414458987536410800178943400426250310939436824194625323844044372660413935492488620076020634513241368425675479265500642032685837415816525642879539907182662853988940637131724630782370397370670406054327288335293887683476567443265109004655462272238703699862061654877076597245042063050844540244807102281336357684623078462998622104023712002838850555875276369100259156595197084226853100271845974028002133557002475829470886607088281998031546345722591149849924279872719981630392708923823015528747898850998479873209735761596201942820342514448096466990116482284248528976670930281922044468008604297381917133456248832577772122908353439881015183427370372472897976871071126675504030131618900581814399774614928737769468128652709586511015237745256916995756605095051889398398272900307515195689290674626230549395659901605726302380843361940003808809448252516380161500230565150573560234956059758628310160380236333138157326434519347241689759401187589763405656011314367928627522830643048786906445942646245872011872175574986795761622158408295882548591070267807875065335893586679423095966575981161489919119737048156926665361207292315113017541756076974484264702257880071077896959031172388184313505929325861516584729251331737843643045694642365255192805504723916176388112865785781822874950521148826655035476368348705648278489817056785226781248777075775406056614386744569773574494867505960869615030063062729222601342374071304382266326709902638686254012605523751243203421767752803858010244672282096484857745475123377664706112655025094533697873091104247121679048781552919056091113226713070412384750113797646405820977971943389729519012676671195698639052512498335931829779289783573173063201062751156748642671706083495735447019391861682681231688905989131317172063616794081094358912911086317556783562154036853759360029131481544474078360284559655862008797934575045527882730562912180109828012966731660747572011555877372486585369371221867881188786000072526720103054644735841092802613583691021696511258028847650833587585930881917500806994276344923543216984671575574405607158916289759773500432147892891624269891161249272702604669125671730528839882493477217946852967114666820698679156416922674637571272403936653421656701148207331603022078232156246679082080994042707533878265546828428911497465490368652073561449186710041043547377897648109415498570264230834118436898977608948571286029998240822708978232102085887117382192902073927977773671304659571654880964490652800122405016011762123500440466407761675567653203442797345485703085274450293216767665314764509147839090546655898581542183770463661398586670740488309588399819172779765673644684510943270001553507363210403813303128478462330192303566464334759519840618241277155659899724846194460021978754946331755155979611752512884809336042654666271485497429869183007400121285786934733619803585971819238225336626619802762805208769479903084630065987669771133573107289702828012425755903626088775108215666400549943409592212110948761242103532417175136908509166487205289348811774482403076986579228133683505556281096917074998521348794100371153560719747561743956588071861083566762189636305100495552835100898187626043818381748464263167011954100089273874701649213878820321445610395822261178639109933632947861207205045620858189915095343554339201209419083293561889131472199603794399065407618637440963371382894005947243244629563479358897682273926648450832726232778001122525733273828299004714797034376759359090166811868578385646207978642316816831013989208040610230231697064183039756320822639633606621918899654614438986665100402816869116852917852726489595100542037095176954755031374315757207953274086910792581622573300215981328928858439871876813461204144419926258717988346952627974752664024435743409772380795880552736856414597877342426393265889598056770709517279466115014611288324986179587422555751863661776855574515582856711221081335654149688446290607127187324881618580848561701789654124397656935661473158231121814512443180443840443747977596221450659719839332900557043223703222110880081104647439185291978807909363062370593548189034835196431196483602177583053510963300783005445945618587988509162676225563837100012249690869814586709069623919597106459285016011391316955327311602676417859600801358034400665154823854765712145862790766655651618484296778234285801627598853513480123161557388273068021101674363125326342926474465765312346956837317899647558621210779795033927007996434650090618897992156596830367471814135514669718781882355441124528693940822562922429941894568180121977344767510273022108203147352419235084600321029797743659956424122178031045837050028243275478813176185871940311565983266756157631692454315981113264012654666533340095822474796031272707491805712191580772761311447685794168629596023745975410550308012495699387006858247337419698875234512974613950382352236048017766688535639397077180890684185859568973513808701692614547214167104470039788026866699661934676883651298530875024797233545374949116249620593209224878450615438762675675622145697704058644228875188409139127083439378344013636911061339546766493191750678472332311292233626099378651588190627577933344810762596741726376050019582426451353389950367488181533506651893336454328680269857029270750763489506637366899893312319015457827674762138448897056522264350473805940574115499568874361643219600245805801087827994489537613364216560816064375374583725774125522459827305954730333574409179960932794153244586766485981961686792777232231760218319020559577476497793666558573757954487977069732589327993860151926800363638990840810827842437592428539467086521470104976507610479828055945475994239644159828765822313890030318321316427549727282232609987823416685777535238542203280664258365933123817608932276244393972733685127253317243779754606033464588358001646331829519582927350594958396218081646634046716123293697754547118475246768545487446557468109320297826089579830644821374086068944833815764342426120537677115112765523565690128793722434135788138219653946543730482619762136854697732457043739186551474036876113482060789397530846498081672130033330813682173057697008016925465286455332653479016896653912528469267908728500080499824046505573313111134570083575435556826930121698745859113418691141670997709581757542599645599989762397612772714722179032129243821759774503178420913512158614403929703833007161462762185763104205406768548906947929309115604803601243702476938497047520809783747952179501249725601687634998815429677512647531665491490932208943260389370618085374552520265206495930187344052651138177239096779863908737276799280688163572308633013836680537176507761948883907101902861285366801115989945574646910318863829906335794525985657813760809059463369542885808853336559418205677821834145897016726522201579016817345772556996970778920835367882238433212952019432489168067021680221476808265932285978565132452758092852350593248844116188023992428724993293786760357091440385641767075025565664691163861583252133949170170214859944958547645679818294371074597330094977319435286607159613177273187579770330504716181485208605758931377554059112686525585785549176998131657514104579964324666590300723877965827919131116501027448223348174915464612929354831252903879442949658298046159156994202562088272619786273236063629862246540338557265163045629435821778955311167803414290234521147112347725242655704284977053814776993683714252748512855810201716831415931895782205343330518193450009745542206791502087403953298366513111030224134990634409265152724410889745915388615041832729008680699226759491098989135725858477202883280460736820657255508862064546614382066476341414131012155202923585650817219544536604867252170134468392625337738198146451666849643925322825638933429744221096056440660556286522303100271783378493034569282654273098306256688535622625335801641779204216707868330721422976483038075472826104808061858260812891316879301699864170806710828464745412400529128085110207320978885976259727416030864669552345110359970228700613637495486818131580084380170724557614491389184514616744466721444749039112787367682989520756695872967960343445494038081616943937953874300502862323755482971066100014798841268170371437568037342331261199893636612007932395487702263515921987552509354672382852005155825679464517407750145778152076228355092373756300177013180768748118990399029718441532641369367324299268295240864903570592798010293677444872872746918428771953192071534076247431375282302095272053666315676332430487459867782994736715691975741575352043126710977774076258343390810813501562145897623323517118260406190729379456635548597964727121413444189505845767188937774439178872689201594863769800915240587825677018140261774078098288893797403086646267634265856256159799985098441129382865225000784296727600475304713238503985904191898403242033190295508408954103415870679615849362158127975632223438602013417575295588570779481429366202861651085015218058617527236200753211465531488200650035739649885150141808249542386350329770270675365313137112439973902817710940815125953733290259680249224859963498817376333282803341448464555122790374711250960146539931264651779425613714074348420012033102368271437793340554688632622690560428582753383130429788549250489839331882356888821938898130263140720990718848675756571549478294299409624707228335606403031662608436372876312430127163461492371644928740354816925034225486134730064522698170901812460607936427411644460715431914384162803034226150082592859400943666937339972330629776276259521658918452781793229538219531124593937971573524881142882835082815257743647299637467108569683482222747021831363812281052874664312244532675370227629455841126681336412325396330770101203316496850298479555212840534630514999924938129575597921214989446762877057430699069362238734058614481210411679008459082870011494454249988302677304049395833852038064270691464110004694195233644408757528328805204159434071389432836022618339772009493243634019326357805158168232892732100288315579125323949845794804715187940070411325374750355785612763398573767614002941750337158557390936180020153037759789601269446357852942752499600517743855710107653439170298641268353629496846648456035734376316030032637778480291864031447819430392794413416806418482182999857817308056707344120916250376239868893641831200174524343239372213980471909154576712767657213499582148918758221911916882030815542047941302811748864572059083927757303542558231442526095572143018929468196610846976555773121685459837655420089122335790363407089656278276674058393477622198393277954025222115230825916759442909150218765357291746530222756130166676473785570754033045723935471130432880875377784728016416535098878977910060350764342299301378582090544422380027860329174717955230784801139627435264325485039547728907263213936793864257647039275721478337216051294122104724897596916130881921464350863932427811592571974018387750346544639666805841691931870465334855542205002205542161597310414530855441774213134500570534036524255129354219208966370691549925171714132923527294891053608895903902633748657458826154332526895143589842016643423378953749426052736701710374662253680396523181327727727158420269126737270831175854675574288575777019476032329014078004781951577755711874450416265725606168705888803206939076501976565000666265601388830353213243539601665861510278466973764073822878323285361908862771289163084281381331642543730544124203859944852282916443934544252974882659413521551352254135142128044590899519338252951650345299053294131629182239109314232759835422383968568365597193162737860457740802867722191294934084584247894383868300890748085120160319716763153039392604873456295756598438449363081988296486069175007449276139285181765283645227827716036378197501170421623282256119897829154125854976682597637314159482566103100091712518051298095817313792541862244655175536381888582240169885118173837740620540579661072504356483677952155740334378430538939168619469475637702625875453777704483205665217131600213667359040029704893750212448571990820370608563830061431068931981648093920176653096150253524169163039772679617022616958289412583037335806985696990757638974158317468095087529483913432617402093053646425729686399556809881879918323919757753453750437174284028772952174623643598008718646842921234594134245740004467771541937668474790060796859444638038707498156393796657544224459186975036099167502726001236620310992302862833476188846467795488342046492133970126010467267137689357245450831380504201898281032316342188154746804686328313354677605271311742997502702653457851332536571745499042821691632676473640483182667884030942424088377041243462707443429713849179392163168087093422840249026962350400184940083026988344665742253399687499722720387682607540300934985939756703670797848322420460563515679603396208603602875471722682871047180120305506806551862746290333603752353254436055927365180579670533343383335187616857013998896758569905895763861331466493023481535826950692105868337873926018193776577838618218105190692130871037695675895709768704046260302771810647492297634182957333426844841309243609793823107938164957124093384168767095998550991733556127889648899303123833991776622165006951994958141742566494071009791375569803232013676621759961460683394124716804682856880134717025410041240784087788424277012499697031459093722207626885188803846165348873432367189200490735207594705828287951604923020507643037105757559311155479829059193883540124631510196556416022074918079868356359688241983386924906454374590863632883099088174014796825428300048814224093625509124184975722088931817191844678823819343758568342648172088612992154481610909088352416874137398366138576150366813662497795981200262879380579559506539563227800405739754215719781350161764278164207051633959204051238597323702510544009209755498925903541302601425989147603391727675429780055068779446474250979431004829991177510463107513553351684217361259690012093566572231088518536672629584756554532197530302409335753660940546276495897077084688506028086162122561203318285566800947671529440176243273247561648450754693403460073353611235167658285687640933098642538464974616615880848851678261338373897826220987076591802749905889047736676762700780079654911508594229204487985090083831690514069792783108347469392992596563639978262712785053215990088620936186238363284110272681088922505621139482094074629537583831293082610382412979193418270184109732555162491494446556835760412609789387975985303766418616196192623351264687364546067259943706579003986794708992348750752147272281881180011758661042639422470361049868333981436508647573970735451534865954293673013478313189623750644496918767839151855218831045774860817018585579863786746770578703820320429625187324717601809650589222464545013389941474368694965654131174135403394539058036558376806393739528706032326972175206261990283714472818266193773583622829720524804000639354333123115391468531238139864148344471896541665916491174090138686611794676733381600719577553554163588967225570457344829200628918226410558427824208230514917664801038153691193377455568557136602626153124414256960925337592311836979610223618664974676280400836986897556427915664058254456870977185224591586433291542326675175000227760215370047614656422534748583299966072096178410829969507849154938523871858162236707056215300640441542439779629832154356188342652107836765262216418444087572852072739811682103035232466267455713682809503076169702095186502039217241749796942423296318729696701032028637680539170956297592240404492150303849483692408291467815452754421129107776245663552903891777102058155736219503138731266686118032334153308165317541211468987299716895873820608890975908295899318534110324453173095920035013325335148270305893643945165320752187368366353083927802690035365243515982048100104155403075014063444683835864404507809691668420534231195582382053345361083915276606806371841292907720214070970277335691966570508814798980107965746391691528211882801054126317282717912348448288394696877051766224530972355437285549500853857907551523528601474440636934654024996081345775109683551172746021423614163413144948751856755922516292785141395363407730969658930521106972692057236128590531791665010688235203449136730592708722695393910977438302620810272186934093907589370944601541682233591984126212509017483258957106888996707005786790484176267172608019128341890581409418339306982856127103786518572577103607170425628430167985391211241698581820208824331170965251306641372273552531205270967822143198707866462166230064481471977361531980341998597747755162272697769929947410306106251250309979441234450728456555891487904844022693032926330902075595724988605806641148173874526840525384369567088719516062622806961205279341889120308635859831587434111634138967588473806977922822835897389037087413908767954815574170901334647150905255753926080547415254585653171136973310125801114869894307642385807379858493233655976690270381820928343232381914742311883824874371758431528770524981478220979214037787575464316755517783677627124444259440285200632551585218405153036915381066465091074527763164445833985034453847896527573546460640207613068997565582420217962091447731916109526036589685189480127790241590890929757355811136928368639180196905580336772231692242989145532796358459570290264843291786049380884405614918820678532666224107182349455814515094673105690894824725765980209291791860740747336803131537538141124706864094658367586242533353706712708935910660893457285496108063681935876112922903753698526929127282411315920815399317651453327603672595221305613560191751429087485958640771532588690660065706259529063589528724846042550610651471234746921088763044278758154828591131212420905691253378950366947960708402322012605022941800750360118673844223522575430294122539512799890929460661698706288383036701089581969351487989771970465104928176088169308289240922538496280769956699446475446492213840397181615581619414083411366751909230978777702939698179587969258866098521304649445398556291134025588020376235079616641812067098172096390761600427554072977272417112548547356884580077131362044773610995605841146184258212402414575132096177655400656654671826323201534632215369153191146088477559371761304220812546289878459689650291874450279518987585653406464193501962135195965023445765243022047202146578155453672076990741139900682446210962770516137681267056792535103839523199904704796538623437215814875685373181965108094525089425573973886144968393078654160897683941948000955926377123986156875637263650276237412544209326068361261955249369876022755024031873240646738943140903775149899075428173560383377451909770557732699367124177866035557333368680191042141792734312345647685226015491647059227989782357639972875769103053132751962109526644033589494880375413584812722801736345750248499340951489311870820691108925726250919114303199506144753077529014918437728381887520816531433212462975199441288017803654677974714943442091651327656739990037107532211728383057345037800853640017185970687707801862360927995038701733627106324994890938523299522520558264003933635896211649810295220442240640988049069664837254677616332240522894278676486319764144261832437688923156228447111608468151661423460200224345267795067756989294975504206071663637090678556015933447104309880028974276915382799092469826573033029919045840538859104849159588915978306959216826118111446800653313841110028694316129525130866730291842799222197272278415506170735642652218784861664874481907902832343532193492274864662691501707000646084296188822928690068185827286710906813253294495980030597596532572397185783746435191807632486132134782604364091631795605966323676140130801080261527609247930074430117051428945509184239126835064430420989973670622987667095468075013013246038899310915588225111508907544792979366125331097151014335584171235805211169207834923997565821790370259202745309011447587006670595269380870887483620778244189115298808570149675488423721163474510474228025423070709240719742220637307825360156171493207788159525340713574449675089897107614926084039799007518485750905695986253327398871618685611019919133043348785891656530107375551500310840610457451952323212026526841215736199306699079580430160085014979511715232014365193007851578458370903750265711306590703931189345751696544909754101635468370580398573332379565055234614162220054758727745065166789200867091517949469352841585458551369232652370733799856474836197845204851875190365364042625151155144233067036251387489078711327350436596060811407766168462724787204302567352195871205261269343781381100763188435034168715092202497101794494602141574794658503877414586967429238373356759715961688289602949345633942604557856490906673526454469093577121980013923059385505671093142596831333553886248239750355675679133310822051212719609426418664595642120878446256709620133870518287718190985474569914228513723626594964670585697448662794613306997716724683383442620981246780562595135604352770339407202496987590770142023732575499585188151822830405442911373084669163543982088699250819686905477407616107553725837338681713145853568933497619111357335737209404527670595095025256646746547846319702693746842700430106498751811894296195058375030571831531542014768553489412361724325089331683701290116182872860939109780467710938247511546699140844384490861748448315622338803585053564618759894517669352981644107623231950985445951904438759788250241349556276226831571397523646493532858152724148730132647488313922620125005988892538615098878811403007474632780529340538454750315908385017086261979272754198683524142157424670315677294471298798495710464420624300457061685431902234205260958643491159434935596785644553190442268733858747047982912078352999372698957630509246850544963499585303640292196434583172428744680918329210376737209630246599457283741608577490477492681524689522494929617645511158821374513305252201292909618961095605361738141385548194882984204520283360074263628887919587334847051104782664775510360284237123441447159893390596537562515070053928959037642125706393071765063748931427286130627274844665161574547365983095825365776615806026628804431967099714182114781764546811100408705156644900879238952889593833960112233008974515024293185115156661619448393896797432729705819482449800667575521425519493662882696616261615027992139692727578550408966620567300348027260902914298553036629682749926097668030493677266721639679330298309496740516231699876152065439102622879202291002205640360136266202528984225550873058671579691895594293257060256413733607004478570687861264844630471317126488872071441623791236960397324511423386837552872612851663002262468957076381766902906744366933718246753593688108334104333700239438827934765528301768896019185561984673617708623299705252572641373630604987570081349492001315182186488356335800969209057282157436839579816211879966922931546988639390956017492115516293229746613059559138623287197030262955942325936920104163651018377831796552148847759460105335524805026532355047301846121018949744107306270725800885504419218523887779606851579042187813882843921448503933890393132863497659389276151725734460053563040611605305241664114701697498212820935085838630546152114604847157045696217723526492889267538305881178495703365024693405481842808990284057839746344743181353605719658928958775662890771696075011686909351030023057354772114410602600416329780935205861742666685617025638399226557394893977014647201512953087546362015978286563245566893647692921090563629798173117103894179070783625708305180073285884518256507081029292359745366546505993085564686093842562933628314055710460883653296943190680317299923777765057874834281059567071217153630980969483142097465958453734354237963437500558204244186361260724368243118079143500534596606473998402463377679103256865622864750597715339295374111837327114993955166181823885294064902102496338825171136876646837759680113786513092845142453538528449230293244262173374006910218507521871427362108880634920447511760729457391817354595373220104482381544718395847934914856368123363574975996971826531318086733782539222439398842019754974281789492102026856685142070841331635004629676887091166366939618397594789379646797243546720549079912281874004241279598532385349665157662056308281432530826845439263310645190241721929721844838294614749480619395012959336175756529018278628249278950323953327468561761316736846885829585296203271338276474835971210926901978046414426198829780323249774124769871252165844325013870311007420768407686154300075358003087971797137229392084079805329241930703341165176602118107625941558095698911844071554684450569265440014631048535924717940332796988467228883504791070736085094925553487474767135923539797339668129123319939437321074225138148664015564446375570591987326992929092186927007409411246575475559249483838107246342303102600173128084956294963796655540866167166558020557949841476382572917791286677735863583791436389731309003990870439748674756280498011608487570227335265508486520425981532554210836326596458327196214427040676143605806685738014354174578467262234884394477296701335960904536993474857626610881351176133777439214637183784832662695929241932056461699748591116165793671728755011049059213503022876596576252416565975733010836321356078340500484230328186361962884060154309843313718324894864720591010519331044809767881495495469019079529125996849987266024750228797734229821446575013024602566971540522515554362610877944868114625918455819180962065845318027752977753572674231849007254762894390194129031548492003097352150002034330720333709204131729268636806629350958751573771739983145795456757396735360443571399129801048648463649410953267046371663612811473765124636665464039477431301533114609956338932849193940111272508359418838508753089567798904146017840917209195726095088716541713119765694575437987071481262636589209531070832795107168625968560432374738264395217724846409672763671871674252824104506249322401759812067072660490382842056799076689151471344807355880089905185521702830734629307901896312435564798303610277404655688361741591226843132693386973145018335544002448376904860436802106978756111073504034354693865282759325089888187401268306522977202011317884290749634978880891459177967110065437793928216411299954400748660873776403785688345340035785248788667893086991059528425301480478605829156456230346077469646947834835965665979347989077499924488622597613125790876558710654152467276169398340654397285735662158650788548447538341700256638019796952322163371768795885216573426034562025904317204023967266750273469154739308994709372597380545446762075193706993959625964624571112283872174037584348373987060536605453950557924970705788412057963158740910087671010634097110168700360331350250484575263539579178250288556387166232202837998213057969399051825355559732582114320013789506450125251178069018340015801417346816846623189182597018907345747601589232957859452789092236255069069262057835724665548797372816517877012735812100683768768887150645892945561776013319368607197254181348532216571490572085891059362178508567943603642871793217352917331462769670036644636959398388232560379099007577909669655076432545484709349946861487094316321004667581660354086792651446663511697581866668355779337898737269528659625271573923749197320281644151381796099145644316289788372440771477561527141245889433331651777035497325464752595444443444253095525258836341067231094754365805337266434226444958360767850211019936006295211297286098053037243339381209840179922212917772391474408137308313051168838783284153036898283821370930120691038933743025419196270871957643576123570685127713690977611671188380559223584284690333902777105145565501624239939173151644620986494646681817139621640040069432096192252785867712748691897005225088760452572722551148127933074986501990307908304236951692172210077492035376493821743977071435986943101334103209127669780733080125433341293735643813305479255774644071772145835773804720145368206815685632056505777399406534004962761827169391804651639759533635600230481364149729275480896988413284122754320288601242481351052465771953740680685627390628986862346725927769962227486836312129925926827483575825523558402569902383189248023247933474889037648521524239875553663303879218646838837651162443443976371872914882112296659222264302710953979920400532820420684336774189866569435285327214471393946758921281220866091034042519125800402572475676288853488303707277650287471870693822542530689994004358778042706392119070258081303391513418632408099158584273364816535055150135804870367120680274807983070423711408161706559684495665256842438150386056256958603600353465943832956868725830163920914911981324711034464172844081956191560970019883490915466372472959144627396623387984003460619875014161008264995123539577291631347795407021735668331399333230505110678412907617889222038590132335871537716749232368999088454724421853224298646789725420211850202183807336710798321556485536001155971332900901616564793402505105445134497606196789255082596735286586445528514903065479412340011914205310136199512445698294145403455334647616070824095457661543062888913619924249483686347047027108781069979174589429572798770673378706613645532076014701309099436592437389980507683987310882640706150747683412849986056498961085049479030992155806339427506549120755231395411276187031728472930985593318305119739985199058027870804406062605806738515677915240412924069858652376747797269908141989740157402180593814830585532596148481792352133822976894675857510559945582816585660309384132343026678146472404466279579456322138469043041171843374472496544891173579775558542590680069615012506767601441657518119683439625188417274027654198088629204971158830336973528673378890122370491926206306572440847690861174077380120547737632817646183173319126408707172111771546969563888040196785265295130890994706165821541382790687478720841769414783041505838072255182476842328204811369261948833708636414873311335081264841842910867309024872426181423838069570130782222469708356110072177066151411453561325473731389508096920891587103227318850069503156528066174564690395043152826349979524280546732326723992504030704806272855457610057534297719065421328842934493656093893828512101621005206528265151308272795684211502439725094861770304739880192928384840111362172270116055681472704354685479804558199725458117390360917654975400115100100753239544989841502058022164856212763489535876617092595440016819537953015739135758749602046281088238991279753834836373934158516571059312398180676901353429388963830103548258739676373783728375880859575421287340459430758589044674813836121007800671423622394143905812857720664197160200102887191835923741721301047251336804162825767367839576377789784986681190663904335978537909967488402038501670080875290843886742187285876070921432770453206005772942942069056289207148518025769329641711337357630213149608614919994363409962011644482970328816683953081921414777037039514996029204858901309810472812747252309765968015486136188061061635381715296037970298660348062049297713086479207922100001192127783109405670370517872729937896382313619043121975234444246883968006960746128169164870590437312165790757231647097116416937430717725886850531470767304225904850643166586730858277239906903037444001390605908209930649065007273688580609399015184860627106467543218120513068930666967274166177290387772089065125074910560779931469246736301753962248306455878278379576694136206629367576833776935233695741317110323037289725557054787526961668002022551031758699855557530951959079525855853513511784323066928631266069181750562149248556830569520725448404375286807863382945464788374269242816395634341173305194970320088004066690327862038087816502492998222267418478515582604630253750120134926442176750105673533620565697748049294408862708830037257769285105712192934649621533578128585208056648894309875558239264941806873770800585383867230514188356504614852211304808067774792336982843401904276942309732113466041362794975698851833088736422373463616999640098171495516414822548186622109247366895165678208180304029089841459070023707378372737470750445078698499247715652528588029429482668195526370479239278231145523293790783776303123530074222096411133660821559535625293145085340376417729508730737237583881415184603913132987782680530696593971062597085633617739409731550388058285116582421570535514074675922102256795259957798321052093783678690387950432202707891046726929108676125100408947855731900756109910722401702958477617813988395161582204324356722609576480030762368513089730947345501637003442862404267169775037777280577348120189478833842934028148248480227981513897189854682602936909095749934394596185596830305718759592011630264202285303284772792102066494162592067367162944813779154056227380073143136163216511461193236501893602941900007197002227280087632553981423677304471639842625731375339882046543324550062403031349420835889274771136410635594064622207484934858380698213572722532383629562495033773998237684770709231894292171236400906994102824368518101692173229722312060049082145044958941367903775677967398368207262260078301354939813047123167968046780745514560118886001817213973488630956626339472621851789256297874657509969101092599525589062149298046911262661681995412029561406374896909901078911190548556596045848548960378224792058236890374584897685286377191150641881409864822704577820770914424444468232325538670897082047521649993409634062846708887388744146611108814653785558015724587062145132530116661717955188576802740171049889010815676117333009212652820513304823163732247371305652595119632914990198168695016703833636561351085044074658444537871976149113224164221027790509056496576117673551545182247339789664745144629081197819870388759322156685533018243247861125492979781868915611525955814214270295869478108698433703293798229727799950611382895548334653957406553156580115832202877395403095375544303948614248277344126707970300125255374914845743287823802259079028366012843737530123095842516456241117763474598291994762892891451278741286931147743364077835209759787122865314694835454360724730264762056763541358967441340746186367580121740908701624369562228912529656426171165432792656035401717160305274343443976200339264516668798051115862291739712168016626659772424320754869428659709668605517968992299417973720217020030169640470280772371822126984348376834939519699563732813389650940794304849584510377492945389366282815372074036482111456605796195740659801446257668938320158668717167266144924605087117157909165199183976713125474052679831425297455282960748391113033743721040632003235377684628499715199845192644338290580962898680974773579032461144417604883756979881737549793067658553535286070588394732744004218000584172032887516660851334440629203515430289205733896459701926687398377694822719931580188312844789990655066230962846288070439001343841234974474365958009029638558033363290673409355447541995480172585460048731708422278814915381785996500528968714817690528184550660936926266063817937033042247711563197975935191044608403782094571093454115689189898650723077178321527117362169462589889274653162987499920076214089555652996859446106470879195752929377260792876766526575967645978923309555294480448157799287512041030494729585005919529455667882722818600833666806573796505325731382882086480733370850901980731899181042592964606699138813882342116004139699150833150217133879761591299454963408853444434680828970113741572356590353873761182557325554391391450499114914768577288674241553545772294828198472646727661590838586912704187751802887669984254099502373301254595815982774771062424284569502399121045169142319319767056985708896761297638798119308837578381462325818260592612245807711470082669755244350755701318936569224564209311600941005188633057950925683717445213509374321014020747665935308548466457234025693843059050898290489514439039958695157422566920007433134529027581902755314338565199590629495905903738730460183275025579296483758511981454351669904558907155964184285668270379530771431643255983021722090206122189551298991785691654595500806378430085771414730007405640089426496253688827349757355999842037285988421208740831035502535836798066186838421798243583525356612172184305672474114271034849385439566120385152839399532534173302790974232866070098107727949456252251815261643030948196964196513822576560609252311978052103795354077882310946132921488245848169840327216049664475538831849641291876252661308441488465550933061141923627689045531740522036294560816307719143236034442397598579805387285936658159696767998725580188896739735431790721289031115710266626838682780548762508795187839723316221189672307880231881948038926387813305510541793077358090246092712785565620670357739635807905944511131966282750128419192824109780380465783580639133146844845846735465015538261111458471490840463639042116407239310102799560907832883389386529776789940540192443097974217971547884879672627560022961888926289910054206002733231912878131897036107231387652432222950716847814656190002165378004925636204579108226281632699520193667037044633396544661208758683914686287067452846146915684433492597785474178984894694195249619495193058171318230655617508949421049589104031571472693487231300153968033840508213043108699960162731251177760000147422575291233678431789748151061507084887493588532813318396299124913552211828471023372242093743963162580338345440078005611630261037273717730234409761927956127541207591784028160103540035778324613050674673716371059716292256001916944115607761193408140607178977208732717873894318951030733850010192529692650512268397221227996764315796818353024338697513489588963625088371510591566041688180359144940175369865850381509418819775470177347498749802958405664547953859313887311725358054375110197465725229834116127070904708786576588707897813504362442806473964554342890263314911802509126031316504603757561745984907703913580184824115669645805865520812023520397017771614239460205791427023762366492281308507413982544135359729027419891173170323370789993896776068433246419081438188161202263510848124800896802324000447751332926655455470278270675488352596239735069269432952315619123275568630656200383897512977801775497886889828217486069797072216661163350631913318501198718365868699532634755881777357504516709378791227894679121117269820825129305656270413894206078166959926661549317259148923661738190190688512598058394627032033212293807236394053119406923901115500945143021171899282873395689403104459034447906403947324814985277729460339344093215385397710842703328909570980577882101203988730059637832904830678041388435078936714197950910273568299686645995159502354624270750338056293590368664043194390751784571365441554475310023728108312901324584770507515788000982170633998338552869362632124971145640754972594003489115095592451879097490349547007286988516090812813529582808489734469164226444527765112721168007039137399626047538919157578196329846150588479298473738705214688802577627215981312982292474794751014133818798374241467079633988541766088944409138241734044118103440244381163526354601450415139486586820151498786748870328355801292685594634665758409779583379630907579839553362152345343569804729700089677996795433291621806911027784345583383863622231674240190036691009578975695218075714997087252699520064400662374079140054546837632197314285358452162546003385429949873935774108634445894877927841898189012377294406661377020419913594997521798607383995496186160599196126127968884909786600395690567841193757179085636913157009741995106958178595257178332366899238311396013840643829355254280459162791682414888130599054133933352306075429709177888802636368087074420695154917808952803905313129083679700946170678746950132131199860807879629330057969831400576949405824294675676569017582087571064332224203450135499201023278390553426428767789417130635094913931533191547823268077003607929415032373771825276387318493224031211374968273235959675417495264921977128848002903816270355529046175405864149355077242648365213702263687121427268899140172521803038214050877755679397681666755800028600817454254620305406252960609802892143843236444502314423204020319903657524964771096488937892122365565308192287115881798787746513467856784614224026629236968478452657696828670049149751319422423051810165595995861974375464693860946777598862397521879293953431866675821157662763099440295778149157095861837496696846769390326199302826839141292172462910255992481554671917248689719547675070840613134626567458683909034883329494581905264442277519777408715012998626711694686797874915812372508218499583041789797240407224874224455061190274919783289361402715335108812715026644316255837205367001472056739081040045120052954694582642194103791445401389271298201904140475677847104507853878655207154272919757950502596884783018849911404758412865313840926468458522267778552838003957465469890315159305205342637468962589464630574262172974510045836496368667335325075017692801918352678764272625409168194880917486121096415643500635020596884661068717300403259053032188470988496265512054204241077219001547816923819266746937668078288674931444526417084762386965850728531916972672346522014830540153298273075601280889931897840544747358357154629036420216005274017686024769608719157154857234778710762010452084982587497326074362474391931934603697810656835189220516760204152187695034366102116597257514702584522583297026381318503986925861406225827941915158741110181041950655352249022349164513794435137973747730374195832952576830258365943638705154149919515369101554274994043961095866779665032655313331864494667390514357426880415134951686815576862376392156441725716774482309371454423084324403980606713758101883144545260027553472041296051242774261605433941331804011848422307540864557620272233156820964448013312232077108162934602883306559776351901270520262533171514019396532911540687141700888094533125920156239720191414220139092306878569052555422669192674139195578011192361963395524997125425243582832558945368770173575486219186651603505399015091285316074865400055398023592480433282043229830044301195568616440342717297731577880282027143290128314332876541557787641941069626333137760136621799677419846982533874390051403175866243523852355289449192511130889286650795960813117997293467510724829753811767075313220429210470790946086223045145373022851195064523530815730063463897596200245155581665223164583706794545165352966463711217786314441120427878959676629392720184449185467605595210538713401598304187569617038564263431398795641138213787075271526426290861465108280562069433190271921268800690475490427711553418006482182219719238284519081143523315503313620650082357387371678752701448314616917603846406015587179070540050271355912748177569225271364015923797287071193544277525855905521849602344300802594785563947961103195706649437525263085196784642645610302210151567882004308908535374366876582059466460990825836103368713447251123719155292454717149782060267934268759033861447742802647413168950137497968324455968854519105740463848024675958132798025418927438600750634342471097979415568350123746153529773882112897753980525715189041194211414436708702134168820303195147814097560955215850137584312577556524777353197222374890962360418637740149080199775337661471971775110061292912768516604847592439072111744690780056711838865416579958150072790943495069583979514614764509664108998464671284424353777035049241735552469319520829034822201783609774912131976865866828206813580878801933431387341491463946760258712332111798415093493031289335399201889983940399502375383695622368710022880638413207956044977530961998302936869288711662578007529520029187616325828321588375576112202908365845855759797655516380731965897620604316922912623502777966566073706553794257131058062181056706105199134303606551249912730744027521365888975097090039069511159856268686137898847376001314454925699693797588850466993711998796556348259543348345087345075684893886741353229948410686765028979388805879709504007882456418325106964141360230025112941534104782529222851932973578849544647986593913072026164452237778034770951944473163012141863818556390884183909200232269687981957342365557712758814416854360772702927986241697391325375515924538648124778803425048824998881072125828247270124718966271192805220678286222770042647171317011647518948443658381849244760278247174221667165198317065623981341922921181622999316043220841312813493467041997648586877240393458365168201189866303317274861009252517188308769268063335332661982058616011194091556438921682775492598537337093581621235103380198543616811752909556820085172243397950586770776861788264128848151393674078581498929391391282428315978207305119137892024152360549816159929863957560825354759116289169859728432532193500394109632906291402640296948820400057817697542835907785002008411360112306582866283779918159286926637955872811550396591349687803252101063261518977050589868865545908619127957031448203194517567498181485474314526154617884267054673848491258890306919188912554875819148491779682026278385984837427054628745819794462392030952894472845331514779485843737682759560924609644345601537212347733311262574267910439051962704331693608245867637333998684490716171306205232085148877114829564456851678885828189224782941823269740998509301428103546735441854442949692869157901461097813618682965456661121884203153580135812846955955479922827621860714409974687770666072754332580301159669089644803450335113673072648224407673332385895103020234036388878211617142798511889185490517125424523292596543817103267193315689629930028969595479546525606111710492947576344545631080567128108460508737012588326642146288295654418283127412665752372089687779037366338472868287765748789451939044086136837614298591809792181996748078471063941056323444537978137536465281859235939891140011016587026467305501490071639245066281754394659205038499454507628090368344106414797578098100420870195159835492792153604925146297381210079321223604200375312874436342975137007393984221516209907824249332322373378311159771564812345230251306844726274505874600467391925333026818710467668255806483404677294650001608649933400776312721784687720255363620079962635521892470884781149454569345672415991305450450128771359723825630847495334142141171391807220602112487648546764246309465643656344584219330941759805654077964681814381783622831390382396533721147175440315841175523525567522594701849200921904646485660293110124000218482877792299244228508565856830944216119013753026501499687688256716340939595135751549150465409918523330118043135625052974143056431171565817246174687233107133175751426778871041809211636206670648725332323713013380356911230680336313547172153975535670607128650551716181187719480433028710551956679721442437408895778966001940102924229167023189978235881582792133318394507600186737697991304534426508949534099547108981743657591452002746530003800511269637351123259232843694825674856600098201955480090503676190977130161657592981709265836747651705311749611039288743987010542976627984421195804546330383931905870391841991979311673057749620576010180388760295940428284197229314025581502743238629654137265272819570432136229622020291029847796910673172986977987698801941897506481879527366580534785639380140607024410381603279126671169784567872987442644771242395728167741364724381353971399236164325959129837182378210890220177359963496917156016812003665607131411024931153768891421736805276597088563991916191758383314090723729789043563882976641704409996674448096788226008678425207037419469989098602125179535759132321975714371193012349499116036379770822169901441972670266232145064919228436129698850234833533998447728948926730231463005338679732678025167306833223721664740621149263616288097799190283387284452674061931044192671029055389403836134575356647089987598417950931930537261010221671660536624289304991090697814716639079009673252776031558117361596058369196294675696270228244255703413652131312702480102528073380848169409730126889679359412630367050151748348520768651869331060119836302528043133585864616815296091096186559218227993941368247357881538858771351532423519988283150679131093290472540956285779211250057756575311121405999524798785145169794834140466315448755147489506075127563405050183480067630672527065359787135995249398578044566870737066345676255624689226293135412059858451961542914323678071027717647153466772930564227270776075079075451755196439153250967271968209264929388236854519047079136343207550700425395560538271380469760116941314764977222698092526737421832364511877813506725411233835038685948663893117132371868719394966549426466157868723031222698718193161295381586852685658159655035012662203122133233795396740636203666000084482477113385933886760255870284153766622179055311447736065489067139411494183838660846108421241051418667972743493042034578245603030028885382442064530910107566396019869296538312138470659598543977326204068735437340871318884413987087639421662465722811607787605776241417731577513121249988223760381683854220449058837958877420377102657452108290493840164713951172633961618478097295135422749323011479576895012589098724441576618681228361879147523657120445887108758830625118917433013817567579179670620892491724932849368960446271896777428807004640104457934549546595909633329493977334493318864412755021188650405888502650870695146433062081478913106960073616679771741874853099677676210072842331696505254366544165518446009019143498503051038225516189836116977301578377897671541805222331419026790456616481720421686571122106220915522453440868095326892361663934431295749463385253012649440524686980869079061014182556818683355469276499473115291559783424055877226889569401048945510060522427632511978115591766567701192443786690415871289985727145751971126528961340390120258700130394876608317078494855014818976252897622160284801058055556908968879910725583433009610702022838063327384068168188114798783209627570284668136860348383354955369298825077383486176457951659224240672191245308271083081060047515528441930192519443333494405085107887991944607336115727404446985476538049781409516907935511862181189124055517566276942257037362297546611003335014555652164015308273130205941604111131644111623218483044344728192175247866127490360973649143449430357508868762081895652903105874624506769762885268921172685967723390325076343368063811342750527199412508565489332811124045222429530439241243818679959456621942529794124006318247035083449819235053895512039068213760259539058192659122840819582329941513537079755829483888241183287153501208132692334472925250398737682005632292446014188437068092823502836881428603735722006897523479101961281722946857012883206238768262733393330013996768607623636410340144571595708391658709181948818148384400277295929884022567659739472778925168639959147188874640848687363323907164805683888384625569330895198605556193466673014915674506182805683598987393065305525035555784562092068494243253798432666427927241417025699107636917173701170237692376196505138995144641162322883650237497761700058782516490417565676204637951865671161359720411726131299389675418285766560920547848399308253923960266910749152251072250437796784965178054619177184346485500726926121318541510171843201651300317857836431374447363034990739814941315876112804193757648255340033771329007064531437341082390312810265305000517169833820938945986296193432821407754291526128722055792137538254236895021535368249856079434910226735445234202189723010068667527640826398642928116270749506820715513608004389462941008606326234381551346629055493111936438177772298451517022846699781936301803105271235873347408895973361808592935893436861262454520089183340727637368234307257575450009498350048448250168308888421681956776130054369520481561071193907094965004060863265517029036310171278096905291315705941484251680193228396162435025942116632002548512130180814465627623895775825173405531741340805935296131624064218056873112530045566503062857073653097586464795032574670774931520089702339296674573408333477479409457648368761764515821966636127982664367010084441986849849473762499893537754392582699188104069503670110112370131703795411875795600938898803603075314894874306175824101363343508635335440566361737048057196099659516673418147507726978091970450303483026934136667813803988706146764256224562263784569277086051643675587292153380769388949263480281699143988879155439843836638353748605621827243436165888650180166260578140483417994129307111935300785607220731003023693596376208609942455813399791650051439755121116177134982211256868844869745443755080290129847176436355549238974262282358489190877860014841602535190761573890194375254049673861381056967624936664735006152581871798037505087593899359031419908357375481613692102612890161519701544338570290020479901555635689577852645965248668107378894485123160446433629174813152786728011556730506325899806997098803707307508597303944065218119866063381844645577371931912645673622014625012462781970637432463859664736157573185806211177010642899557868307790081249005523839144581340222571057067941140718390744555409231696904222988695103715082224840655495266797017545840627276176513842500852765180612201332103355203290426553119317814290721179099732420866237968095758555027644587669535918068801812509119805179710276345329222639459948340036986042705702031915480572415266463844019244059059726282137760750085795085711551107679561276300457445724488503835019473056606271095460815788187270848992040672982795386281087515000937540325158494032216821991625544618968317261348462711549265073992153315330341469269941726008247650607381261245494863360394308510872602166942555185987981457958029348848625916395244997325977917865023125325591849471086223718432466958670683813700832727926784565878220269743615430800100433424074953271338800608785565675963490271860015134486520364065091114669899882104757181017271932983097819556706760159468903824617253959017984580799323678166046016152241135272554910294812492156501369431517908155588940338941317139652776621331733472807442862897179289403434161738219938043511855780984715156055296378754209495746273989118034512631128448391298529531510184426320933189927130330782615108687705231119479492388336909979865592306164284945127912003474538478235587649776074469486123046104212320270535413686266144607194502958416869966273080151397240804783450830498307784510712251733005808859302611376916529028425069703460181084841091515371719614562933050754955906398868700359337755675648917789397134018659103971703627478209606916578230064033303002760331164030059191797745568290605379143016135274381647329135071983700131160663219577341692950235789145994643986096032394058373724245712864709825494104583031321868434121849744460791237229347096193638113694156855034147290417213718491574532620070729071907961836557699788428700162632808663928583923634832812023914572421857670178411370593459876165814865567800977482181470007860751951250172961139522824516735149183850979896444608767497888266534759024003482275522471635725407344013712520039688413538735401663211561754394111485613716265580432819733260738315253363053166953288793969806531190914844276204039354690031974618354052096242875230805526841251038054865802918867302306594826148876438678549481102759996076566702932297879443386113898268692434873433659834149252796690362152062272475555310594206228675739883031395545314460092945975641143309666185585714012725551200162931924335260006428596726770536636543346116135319572531032656032871031265513729818528622336942048159720228858653375174725498519141863036328061363440497880614241608168268758716894110414249435195563243133186385028446113994022315446310487590125883107108655841713189472432883550968402845235057729080645586941262385366650606670120257535524908801972982309855572910070371878228042267003652100121229135543488307598480198997156680342873043580756611070119199661195798599121970382219718010270846769033207821268685189922814225911850363633677829871511208536709994338433921546683207195672660098617180878892715879575201405208437924052462051718909359448218231817307472022263195959565280787663992551301129777038382435684726715604090072606071445215575214852101259643072454009909453942855213946142988323631832238808404198741118865773267438985678814109540251661361386203583888895114874985620033010611796544029182549825192507055916091786858202257936570130770787381256120445373992403785410413147236719157066927632395726359860763518193557965795063730483202303472506825254009637729573193472427337974978415925029234611695241477797747381785821439872755655312379503502568463694144239255215200148553041263664217177917165708788478315057883205989015909631628521095085833253941447956957741452889985050251074666442455990799835814642937794323885762842988948316506270584558640350871025275574391524558016606466932502593053768268861482891408350352073454109763779399507205943539735552547481054126793280552771645573132807253881162304498874921131272767944273392776544392083294799946461812292577679541132125755397462608655027349171258966783880721829862868964656566257080198446067105233609931738936935770120050110152787158400664761452488359297386546852219644205027937315529053369522343559771719121928225621723394936270721827033395470977195168237024609799229129566224252791420584806797147593389621082899032240653658654154973859297738624690257574479629231357717918341145171694228046771454059037608631364695882408981584430235177595990007441308204360787606325215511290272536474274055401949270349371610256381731499303168906674104973355795890672082769443461042750530507548696440003261431307248759480566749211017898196986407465328193618518934744031179944969634840997467993764490021928266506192098545777214165290534573239777797732557006204941074411623508600455518662901747138458902915399346050217489285930882868173402637430045251662582134014433208918698679665395383800849807563314105978195706549928214427228347430374073041944010749027950047760261819557366954946342917083789441687755264257016783607786444041327640642050421605112429644640849531664473020943526843523952188606081359207068926317111136178409129142013532456799015195099367472834200028662290505092788104014641791224716349798743649282840270020737847881697497542519045717479965902564539385813183870384663620018260516597938041392387784292303412792317150436421729953848121339166741038285679696082949990350088415810492784380789825711890978459096181616309902126857988836195036197497944521813848689810669949969113562612981046631720809107144151324571182311617089057929786887675704595750507195769271811635518062753101375475733506429255600634890514854911512265057789008311913041519420231727594583933048115652429394601574542723926330733486318140441518500985337302762604213684061926698573527260357394535317363563226142749594806715379213834117777169256666275107029486620213083433592771932207907583436637634979700019451688381551895798386088692716312197923535313703400368388097045970591923832133790347125781736073186589362002332011349183926997635437410612523430691903888137733904501234237866447954212806262243901595127257203529857014105766900422144139299463850872831854561232421455235063945276380918766148482481275233498891239937688580127383887711918951837702676748083826485157243228659020355745663390296817266740728291730974389164374731155658445349555060800431242301742188150608054065830248156794302605561205659395408745997525265847992033333897130247289232408344030850361857200888871137675365405588348780576827683137991911464707259713052429987910273697631864738785759787447847514576899201515466427402284824312592458111645836654302841791918657196080454978637846593937241226183961155466277386033859142297768538832768848370346201049750981714531805384812188734007358421639480754010757680826228745766768626595937845169215327308802805545050795652530755062065481678606122401310630949264215020594802089983775542902385331546839691003975648367454996054892463010565747397046455277922174122381619067867976980865116642774600554186334749169819491399106789700379877624267170585575181356201507187171566439837306035729534769059124870913424797547834320916299657433079767153201599204029790152940094580166241610833670252289754123278633400255543790033546637975857356574740242989174813724862205612287220358007514197829934580040619324868276343711862558545667384825500670713035279339567169804469741720617794546420669274748354744525415432111188141098634783700007376811768636512668527391249280455066517846945989283394335813561868637067152634174400668474619087871110891225802625639094543625673245190782173438522747351649097251877825291504988894328059691500017490130512995212934739323422346587608877403244876176111453076397856272035575660571796304481890223659502344257073356565391988026862435037706276546204782184891148307557958113570911584624584453414843106927839818157220328913692947124399827464942793056001656367957683461694928088695625144557649808854171152029385810142615337903886471828007904297826169202489205093422577541880649841451308366916789789862748275536997822559791623145556854138939344153585263037327804518131800793306111812952570033586288512736122775910279249457931353224119570114682108168139302271527657613497553497867477586351164931190992652907786408595507667659873370882625480012516710942948040519370581707508219904913450411742239112640296792721200325220574692241473120330620817855496563201793442986263551411863597875897279104497100536310001671862003700665770953310267576198226225664685427924060270724782274581999081653341458690279550827037510363337948801538546158915037596907923503396788041040722603668183670391601444838636323108215927463919406155321913412079165523943656344074884749804015075062121773860432974769529035890117434933240556161114489313544966825317855488434769461335961010148699885981612798838689261059352482520518281791769074662293870903853924016404604456540212512626002636217438915719218332649357186958219254578649198922655550491148032992681248169811259966518445062938432738232684605293782421670750423003117001021888282135104032319634341599024737241444912046232903114843363825587754508809230478921626544757531309807456866331711548174303763071140524714661717852457054514908553563892349326608266210782697730093163848244356011112646792222668416923766960406968864940941804490567813000125400778420096783079489899949288643597368348716788090057485066202532919881247981847247555725118875703355022374849907876804057515744923250989058249305100482275614367727594319044776846063483755249558925681237148174558199213459255043509674892840086073277509075543485647550730576416492567918962598956596583929527657850311599742754496098565660230351952425666753962354871934569954878857929817708441906940880193898642328630709454098263687695713839759961541788893743591418633892357490947231942466879381458746341054454971659697820381285601896052806055947755916096071490489526295061692050876825478836197438334081715704947614210766978385575786267582998254032131063198702092417577627288064333773683252262778023480778296865870767757810019861688178237487814199465015401555811072035983903593736773835253317775275010372681542281810704469374931966998701139822012254757865205423021887337548576410860572478846157754199130279895913474964193209938915046119261058392242282146908026593875931105836558091603009704809860465794651602236410600147997467200519773863284225943378107262462627170566718564314775952633950459252266245250948873875377494464128047333875621881344048816398769421438993339868118336684717022435085173810484987555380104317287403096360119967027369311236142757396107118836236472133371385924325861668719454673828228737086176483251662633651276954949337186677503348623918457522343651065207250988253427075874370622509322019566252855617289775997452091729009253507877726361584812161827134487780266157111513708955054245196901839690537618256051867840306766805461273623671188912349079083682856844661218323650403871361968803597298647930182397324264938425161783854791067826759580972262654377668217864289196424117630286876328730217953036873265982536801026808991206897416240689345291224728139556915661383266207681436561839591452184941309987716149434982383338811740078885549807083413162229498210890011488212592342105838951160738129482958313391918532345328894066271474086880613168330812900515071869141545810141252137162496644795721584151523508445637622745543453198381824972405131817050032273932136476243813773569136681284980011360480380335233303037334258424952243413398409909355061124817681980531603047331171700900246409401666825603807912523798708248369849352817736023965092570336174473335392203313933658246073214404733059720575734399787101120780506182597165021331949247223312589944394186945451122218527724726772553149624043311196248892164727817653115302006826424411302040109296778559218576793699740509645702722598516114652836315147334073874488825076394862908493141347254171514286116732365172056931596766973951815880171034214575021020313446988611983159064969319244819528778395196397847729969925042400966841057465765698656738736199713434780480428296635029879768103827797778612940925828704794917046398905113779664791094162145314734531263695305700531141506811619525421472572711785150081872091414790181145570284884387872208844412405145946858074450821918550164207761287522941854803241440466150868009270165862388528715861115018783995958526191539969856747722566053706273939841166088333596257025261271334527319151408053177021094236970420351226113832834987096182117974068941424069855680380898739834150249433499498437595557213716552920732690220651701161778109337293109949644828249569730694775239253773081771610834071249146962255975667741420196950739266035098748433660359729368288601459682680493655722922538509718658683031996564916131607262454267796893843774155221442258607280691233057268724478568879037075638977913961886936984108616618768602960914113278935907667447615838577354354808336659315552314465903089063478665732447455320135854190209117234042917259708219738927784916002164472454909221892419349368556952439609049849010590227876035122124923540704461820565639963819087506820119300824076473759187415888942007479944478144905921378561241919134376245475817712138385433939047935324804893821938054621490133117959819606251878444842382439923675840184167871155662932728445498791751691357715289706635792402897411039407942765092729464213685571554840097652093774237188204556562346051890302763052487790988231181204540927790942948757324163761905498225765081216875918847262958852467346806476458392422133032822688093903089657607156616436307001651217780829360238035880388388429438153061144270231039794369952112691221895136416093271974298319100469886282188216627001780827798405753783310526848472621399926822827902264495987859310966439140876143878478425567512997908439573499434661916608692038636603592091678224112822203087546634853380336329441052632450103501544812500944474442695310031645829728127113073583494771920020966576383629548928004253743577625390813264156660413258645893100359148769800283710748161993404121066273698059468692894796972457933590308507027465708453920633828813739675686676024327760679694890934767666726173632664192457005247008097546689307339119645938367950058584252462549964138333728373989682482780911180117087243233159580546537245901268800773046827815603265792754398971603479396791674717963483561931580972019794035744887642781746824332039552658938638150180873933242361262806959203489133815634865364421766699326154579095246801071911009563648090556538155864741977576060675729393171135254290724897040118729362655315777857060348896229408632562908913274466865800051231859970876040061964419137932740425239330947267753579218409887076634937376159646890547135128150055267493076651549903365626517633092823587381430153760997332142737993959124698079470560798952044444633868750653393329585552195509719222872335017587535749435984413836215065410994311815665167131550029502959688370213819529933491266491395184623852884993189720102508184010403734181632355757844836426849505305094838365618954845801750351795150406074543746320859586794811651543635067394626103676307278223692357127321080438599673901046509657227788893483032418890140466248447387197625757391080946090167712002414474627572828778000409829077396799005843521802598110591316829138928386825829579688793882872367869654025145368022936664061552777673021278646286726300869037306225458514071403919697420788366160519699264521367600406086133253673708765993969025032017254043882373912917100805754778143829190512067347018979584568035640754586655185247309102674717650482937306555299909212283105177232855005229389169085085455066928633823926803071998975229412398966422812022721882173901695417539901238664425705670607459690684208801548940618532338339478336076460281362381899412364911097167485681733088314894712959447340794872162350690302794858731809540180645356398480605546338920266453805399467770255027643148585259970637489521084638330179351505636522950012263578291433946045673729997537980448818768273265773121408760115578626341321961549003224885471696939857402475461546437651037012117703114306456976349836819195628650100794175399092201398433554424553783320552547683852931001767156511878829380025965972625135945595697613190540970386631750731178689158475311506399539377636125487977074653399810000659818924298152685061412031297665758055487491415392718336148952609953067947152217376636059737552889246515702756401793790840400321762955136655776675722170241201004256344146291996972808711244209233835931065852898081225172851242606095336018894211267825878313590631809836814783729332308788688466669981999956095583403862392893057773903962129902483151299002762890418675131428607189787035905106440024034971223836365613180544288377953431159881988318971028501078160068057379129603502528184588335561678061605660060117044600657168677551426492596392253207097939725839738969497620187470296645358045908182166182186008651493630848130549572908782515058491247579205505249356369713454739025549086250305106871256266334781176427002593316910123511805165617827877856621603379455371522363728131637053098438609133951166697341476647910660741090395840359422363863562970961985840981813572980834761169986375339080370693775635160215299149291515315047874748539931666883302741178769286115180137502957974599921542162153872275645235318391138602313554796364387873024366170241069581589584850718774056447336036650603416501767962222407023763623747301387106774804633614003711720852511922153517686735391139195956714609209131908379645287455215826984241097619138059216189039529632825294272327698706594972289549334557105575787896344443474546300616611553947738013000384913216984598358885412745187574304718665592098228644099264987935360618714296003880941334552942519762212003880852391231543622701832007788578941232543139163419123417103775920217086880939619325699968742916615479807480169428355025735290508504190982090741112447295948941599410602271432266683800613951664152640471205861817475590124790404292139196408586304447267838796677437236964409287348739387772631721111138635320717554308529143706981682372531401059868121021843148960331252615136908611880998532574125197840077971420714321900082347863181941896892056329484697596437241566105648537224166628250503522494757438705252959869198937566727689253996853755334049689398065004379598812976712996187789537705087316817064269875114367844510987702659743611024082389962529069642271714160021280716596172926337061899872747445594897960949941526084281321492164088121218709846587374797383582089270591177390550256058648359748133064449601514666059406995562170768256027438258383422703603606713805148274968426187022568918809585332031945102000836104076005557623412907188364242684858182206772658044695342258430190659903521006631262846418773295372060125939140803449518160966009975888347127905189623063022705758921624834079644241574575715811222751039180156751927194479184430904309481050984172736320680784333324126597011003759504510595717197080191186319744112587403412887839411696929561750388721859002373410747908367942232764982914202869242838479930109182434952111158097294010784987494805775474897555206233505909464309990685271630799911453319841181788149374540710691461229571602783870882524058682652183722194673598011420284696572283525425368401749694654428451389480396892235865075744458743855599067406716736498153348432283045375305769492191055783673666507566469054763774059499540327305754470105829451063424676359958256594367110712089875981203296356904561432828219855705705724702416688066965035252131352884122967376705607290562268077713763364536462472924720656037453406229353716200740670523049834794720872673044293467016939047806711275745122863973915375777885668731120793421300370158402300092150025942630736308905945079297582228592639680846539780034458744973251580750611714124396240563806156249619001983517513719625937282386094119810338490442697586429977168179516908053416586480635666050276325549645094343219682157614295585492178571228359991803581158296953283383465893670423923713467814094696064911851546229894101310555476967355898631397552170433116374924173466095924958511131350288851481335780843618244093348031793595976041170808601732004291989096972239734957017836099094100678841128223555744361972666060766459738214371368001062384169539219976458717750805769682052632636227299166452548432064291424706770033428280459701011589684146825415094729636933922881760203788254496703307276157643239937673121822251468714068648325390506632804895954273884596253008466428712935538053881193234773687949400775251287353555753657274363007675006580710302125943450144484441571823954838396493707869636797526590119670597936251503534940346054950280553725353123785345975892632218196036689181446100306783145213846271522866842904889367583068980473721277116145560654378902353905174068036837162260603274020341289460444452918100743260424566649897052654126476292440827685895789705913919784907784825182767775857114076099775646417489245523246206082996411522778907794081346775686776554334383933466177117151188396878917935342209041070991614147817013497878415027336930828645018688295330483106256061071766308007935620321281369407723711372590337294378406978232299214781392626948601982970027288294867975622850346554124939330136328399817106853606601935147306323885351359842904782825723795324642942774496057542354884378297919696503101293003168875552715579651703059004692360890336375419277978382984004398368296334579596817366372151900211275224051358290075393464721964215817385776407658268832801287629510069420448542172704871034223883903692997710179979900453185111796378311047201395653703458861626679300200728994253040976002289035855786248577624969077421347142537344146581995432965970733139917248870479174767048701814686671638221833167231250168650458786420600566676720162825958600037062382154233191037517964427569893906392991585187622982461590412315815593478936771534097704339035547298015429312638442182393321865488813835242519657791650226203248389163222444989592922851740098258629590367408232277957485656349473457290826397892354457318009635241016908619418473087932598403970735183668664344499342515588360931471459946153299293969299243184799072813361110702105037723856018229294715941222633207816443985721242104007159904913941073199222052000840420972202178617397138214619898263986047068526026351340402647713344300931520742323957107402330272515566921857046444252228475087921968114515151484548026338767061358144599768592321799217286878960983507006691439684547988226342627384223144032761865223426601210770548730239435943594802889992780360536239679754332789177485641669736535539566623926575754720544763712654005077925811792600977087620274202924125893399429340746161348609804179781894303780122999674402915154524662905402298772579405256447922595892444227122719822982784582465028502983603797491884241162752004730886314826800291999007931005616277095109376661129760634866533142069653126143772861504378051370486135618579352673921553318013235159548646306618318667962812658933455871152471359629473151038484244559030351120749407337503187972549440908089387807028980893799812951646556600852191889855630901013830306942475043413955076276897475055410575249698963010377850614357677883897594399728522190575589895418267734864238444930362554195865128800853319962122368471767088428500099589488046879290011439531499115058295499302971550223724182030014445695560220012428882808162478964950299645323084614539710865968631115826580354352324780006782394306740951206018120974606817691792946008555611960406606714111804850639210326845161183966224818872531453040555444753569482282705381090843720756317557708714303224314048405469978453879005541044885555156633860933651573877471634884213060778793972382197899620151872375152311634936585903235527200280090483170779737157520945884847827181846804875910823774560971709862321516713018624774430724604287504055169467892862321481331943464005165307309732555644756012606464761636744806822162539314609081640017135955514844397535708647055327255878473935636964207553179236825093513578819938473997741607195632497542285685241052714287148601971765945930856529181734589385221398058156868092071303034230308321117481422031025840610464812182183434484682885262197426142257588053563969217583253685189712365889235441626713821223944348559806752890486833930018526227619184216334464328123496024195882270786790811103365403508039006714678171933125681022592815821204322052157121494944566427284085576183097296770148353903935494987152387688039800779012444127157491914042010346957691830517758976186012060949329719233514822725601491386098218299853807365816434407684275598129457009829521147627422022725419689639624628518999348932968591082313688786595015435133631737151104270058482463460115718511223523518609916369301623662681330748726062164359105788467934819224450251754522352273390520684190167641969945758546957023801555627347382913639388686825729507214831783477222979880515526176297243144003521440260987898433330175172666066597211892388809933308979917513750458758109478689443687443643724093306595251321022594051424832427031601339514664172694604613443441139480939597836912338630787997626939886870984848258043975100427542653424861625028173276605639554584389662166046069709098768484628562952265701241057077469093106958973869244541014146071146103440637254719060276326942342958749154684582853424421062635683151719267623893392791326737102470236333465094913645773533937714283586422806211206330143365152227828836126268388094982486924412777404524206612466175947194784634384732406252864575937801662719045847666625025640066982193986134214673672707779871449539841547143622300562584275143272618453077685616903167694923366816175069383528700286438945191263127116246607183789480415573716089560614162046086046385889948891730618536971018818088666246756599085685673301653556846169738263004883389423042118307361008343758014930729698109372850348714879421940504540514787786323286834128657194746545324764050795353259818689318548158736744674453969646596582114310933602450099694958149596263736002473680180066855606866630792204405177849585940842603807668965727944196370023801844102176666314355396701340760568476314664849462120412273645911309882469184290042344715923495997231074324792440464937787855901630089818463729968826537311993393280200354455806125326381407010351143749523612067965087316185645827744932094899449417938257529801652879588399729325776985022805591886072851706356592573526193170489698846113409325913932883144504447619284390692769813301368579824388699690498188998118586555075622628563320948184665710797146321668812302755140614841941950497154502369632872058653905458306329493814563007473146533219847719253813966513406940413719891137834348267170164218898842064658877096985197141239287664464946387648452006136984842658431917281064974368549868601520392658060675473554579571809095902599257980846379641795431717707135466458671461870184443338195530945900991324504806706414080166907062534815573120957015403836149523873267013485125284708570534086447325608430701917053417636653772895125113014770823464904662837571564478168547787593078016601839470587722361919021213342463331354141836703929133320709129989902344452391444417071001535389479968484034386129967018621946607619086435688172942825476264659521942058139507924401095726895849613129846294075287658206679431307215086156496356909598389993162591137800135402922485168445160659064687379786261476878608760460280559573545425032871281934965861079961806536523290973898629083378994129896452095472754939773198008765071755126770223046888385328970958396129073305698351263458898532768332381918795392471724429629855511019410652869573877326270897312813820055728916887805686412668902893329698010246469390347312073756497379665506376184714266756483067761606090470694462827454671519730649878948581506014159414156411170240532963562790529359806896923366582226102410057710400454252915961734724145158779154023936199403962351335217068420017665309701569613284603778857832184210110393931628425035781181204762993425377559386217407893756564437081434443150369311666631612449574242963151059029017791235083737883944498302436057002100578897915623044841037786267643546021478481987587273738654805720069957669113879254231439721744320363714681780587117679947476421485346196026605492196992099751722316757125338754856443075398486001237597461213292514813989879469350464559290009793376806619309562598143838181934415380745501529853308000669879324995093357203353985610769467171858356609390943326816629710163419249307824788489690902624756609471883089193405803985455799807207166625357941162588715211050723610077141035370820955480965085520467264792293328254810592527078384704731561960867392960019686682639293352543849754953009270211799284829706091481896868352556835005972571080059544551650170369321238189462285760023207332302029818909308814437155667878444358729257718261103165377862379244214941005561044327234338900115811712289764965582403495302100535877580297486142496370271099686925023762420212540966680588000910229738106059065403766831417612944731225273664966444235844996028269305373098908954843642149295514160812135458404673724730486168658835758428096331249158434880174782916694207459019685388299304384726233464189939698299243638761384783905113674456049764750647898611467315597383350239075636219829932110150050243660287048707777522812501306155405983036787120421837983466694899262957494066432186518797025230646791610665929749553492878898822896046294849942941240806401339969381706892926584458867788352725917877602763157335485618486222491087084882617964426231674494736984024474212927831553754303200239817979587657508355563680694043634366770236971381773497796683315428186003932829878987775398820779200100873869474349815884213857324874409054551251519730303172932756247254741219435318533959946146110475050967420372780673609356284309485033874387810769104189804299706535847111252146026586936417771441545074170640193248935614633135453137998338279359204237597165427374797902793195682199376265758243196875293735173631897207464600679619549040884961664982965573574255950378277406123364622615615739175967567437410362869776999437429485902705564135758303980795868497042527171858393706574112168324097379923053912441730980150915780261357074243963169973286947849336386717720850614738192141410235375923393110570247399884839124997031505085386572179484952526675174144068505004892752261773471600856407682329652065141467154279491627940937650199283046989534044319777987463176251310423304186308256825845236253883959014566104108346436462491614920230427664574595267643152821908320201644555930802819657008557391214901253370792936757370288339638765741607458587978488369122127990451033655456641680580304743971450008625883272806599373925111910590658222955062921208747897501670071417310286864139243102707864916377068939236046587487228906538926492573198663869956857515746649111023089559328972902163860536666443717292876706825482513744023141360173068077201945021978470517161764768801550746268887313659687764676973822222787805042618862201065715724514422681687471503159875636276286225327816891684064043653635943637558699352487639109854405676016972969887590176705555289888726321867432141331218934993019296851569899566837759279043172490183547752023792722740562284400347576863568933045389530156633624379328979818254141214753458107178174865296409088527911936899842707674763339647029325702071824391648998292180593162566820177009278498700357914629325049395877972834295895081113354567314238581687885786735602763135790292073944465992016089195341572967701298003462402245758928790789296243924516533683483813672714409855712710905347396285415899648109244119658541526155142771704413416678191145085402516607725602409368744773267583807407404905283867884695140503263646296005449174767014885449666242563430635353470897555743124909126031627055019097810579220063634772238817517304928920610066944474627532378917397466136549436751927405457907651593532920008873042661588855377182050044380432009166444637650661541278410868006268544422394620640026916547094696374565797543369384823857974708539235516999795692430275868538943104885190737538904877407315326909668167844966289920773208492122553478964386062477931908387701528636331036245544856661882937823763040131213588806095308542438679675222618569428881294971558084894753023324610681703075777512120706105285171472826015076047264158120659977482587707666702411282530910672146990650845768793216715708953851124269501489266659350695085822144168148231308223021027089963741086954948581017386141067869759103272458215882777983467600836045538362853216763340459965383868805785776443800021887880390850822664047069991196140866860721713715703759475075842425070102637506842715810807993505108486984486318694361778279050953997037743493078609233676887704957359610022655144930387076714172266352098383694951658093081422160999318950280843592333902850166303462853541913596831920045375619126753443401079581791387808741964285728544218240074956850964517492701326550315344775250475072787094590341957967785317587547365142594417969424161157782283527270324278156375769107319373476239689670654629314416883702051686535729668144449017823634678770644036314233354425128886223860229313080055034551684985805801687812406218228536273556409069442469112209825636585120489293344322127287421102759232020419150314007700597024082193778765191060207463417812334470806951864438417944596835524648177914155446331775837500257606830063344104001735330270004945887324983123299778158387541118276676256055030459195378517778859906063325789858921015206953330079764874724606868967647916473766311439181675556773157206653303017616980241857356950079047859513257017773696558320849139307963825512598266582393037713163318893306141080456004132366695427206536846531467316493806028092949217356630790968103601055654627929179113975485197201782927252495247898898733603546981466933917277271533045100351344320822244355310741536735080124353850684184940003058506420240290407977727460920494027105479011976438278654836230376003538245546890595971365010869447776072299421408538828775841349137518617140802816827997301440395809229714765960128776889563146558939670499883290968102102906359504758205341191659309585554008433983013301859340021149877686784032048442635229000252242994796056891630813667268227216194674487829302200293221576049473513353870988459775838620626767801103995232424948807040046903471742124262322241624949625582715422430136842431847083412695777033159765830373989801743765742022186470369850071451122827289365837695650466949581540775743528812873977850645742615915160059245700816380449854359829171852225711540812754536669934989319483299190362031341784351084324334648742842662638637383485234916229399725283138144171289774070767593465714484526027935189314370466557816941046674483260425932874801217485819636969029329859212641876385927032918613135591487095451481261170326742016200379783308944159653801306445641390980907053309951831702318863696876128821739316986157621833476003483567955758833012788978008114718220270716775439526900704247304618217605496149033107733423579555610247564583578418744751237533594136525033498689114842690538941926309038752369398972033323681773411982841481423190815158423091091601792407608096662911658042815097103028623688984261247997120496884004197885702984958472678036784352914199531434131708956202557510621758763215565341490658594909564863362950386716822569251570869312891970739067897121643722204514130433580406758847564806795399190297080721938282632020718425214974681649540429933295091106668306783242090189314677587300136477696351013801581282649630918652896184544804809210535206140245827437287978787461423554714835153162155187942593046856095789800389993217111430504280579291251061718069646862648375983112108631791406376235681036388020531953811907028882007955337212099240871520050703494713205611716690424783711388288381880080778195998294994983892957523631166329856746036739357575429075202417769691870229291841969335414695634115651926484980134381527447678725988216641651188556799834577791954911178035364706810006627074202780007502862340264819696637948706042504737956071209403428736770786643294452989845907237093877865026323538958941230952817676438239330344057392905392765162001610213661960525084157362055953449855549511695831549260602258526768290518759839827901632438991646522897780601751877501091306621402347750812777506836016647592308250550699514091134138140079197758227358544605564924421496449185925325694623434292637132558778132119661995172986156033480125566672882580088935373329272242383840054490718375667906488939417282058718530301396431093235695485709253397391581864900884216548681156130986630090853363819159777542864064875448244596954345445937883578148106195631924168260578528761735512258248672683546720000822561172632711245774918171878441030221162963487771062324743657348960762867637476600530997399394045661502389670875072332606021324924541702245041435824745235019412677227805047450927971312378912911719065139222636823368298441169620970255209902166356407551509132710464196020927384650417013113341908158770928065971805111307967027875338510177394333297841773759315747794846603295847319735009372780100668190146206127111093611164213021795799307671232805088019706593843834780754365811408888372079027762905180844496393643096757432904332613634909049050482460604015926440321390057051752462322577641304188391043414775970802571582591118914566875998450883166672547190728546555996988516765590039902638179138286336725461311034446392816357615328933397304910985870522309571913752937167553384609952149991858387619455398916586502719988140202852962699972395202412457437679801975945962460601164037238815491910335946572887457219173043410601523656150831763599466816257007441884592713598336262689629503197396941081487026461399767807468703036650703345421534631647852606047827670016444577625801511351379601630929505596695916974210079278044285347748872314444834229946586462633251123206696273845221616685624634586860400970607954941606982506017275131738817210078526739475020604151085603671024038600718551003795073633261997941483193976481905533153314832873928846298589139471797573941356644564108694170491981918923423179776520662159333766236099451674687226309502019173047540768406050324328919519014418141927735179420829990359501204436630439872840543064651009428580924829838840762955093656352269217613179824959857540389919081322580584171705241924461868240639777437647935634518606554855177837596173128679179012786107577403085953716959084418684910449809885034115271942171574252959502756087405371075355793220696941706213763905876304425316225234906019729486959514557751363553552512115669731049757132821957429324658552438959625825345090405879080811013913241134743712875404868373948338910746666165327342937972359521108732538042998396825087988456038539430765226931883973012395477359116951337879709767949217319831193423652736936160367879764417148900451929983237184525668820700875593398293471275750915122203496572924006679235695971284964370257841518623300629158031094690705609847538121488822649398572583726695710224382008227142609375927268281653298564581571157611254625733956168375981119761690803439401930233986092468806661491189643938983710510196973978544001185013740375287240574662974501410948629292129330603672128095548503728425604897124738567018344336750655497100144398816156016286936956856725563352959778487046112638605690225541162159053054175673847781003894162338780345318235647194991272531541337273353317024738885125795668738884681765791215337267936922153977146779370546083901804815020051350304962413422712303774620374763881654545539151794386529302972402487416216640721726273634510320751759686778463798855504492584667660300818976805628902213697721104443216217431443744087410538003910216481147038669189890033483370855525962225265982275092912809207329571387997277557074512164627258373844937823423965864016154104466599779264875048770174972564888667711491207086324420504110186023056037963749952794558468419283628833503050412321274047466390692007748155729903381740779645264065478735307093787589370633314558197869804229299141756696785734883419935338342514642640057261945310933135768954649786830847694777012694804581571410831485471011799321386709360426989843991148245934088874921689393510916277482141543514042794164817041760286063521546571648505063145125952344808954011695451084835166135320596686413877649015110843074401892153358921723634135759432049811349345590483633255273511891686560631896031634195610181098580718860347435470834903826831457145610572759204827695844701815367048608587656369248370434112936499908573234135402280553190452635069279160833748541634012991731139079910656762329190855754710842369235227122052834721151009569135607558645453006958078499526450331694115486826208727651239441536406497246514883269780678505092796506941229566610317251242626864563201886034753612531365925339100702987192984985362307486190712099857891511146793816557551690444887120225627874414208660829644764600121446607868716639051382238382786706724599132470122643347496046633584020345802387289024177476622617099287051831686409009308807171593144975080599578428292669713407387065181357792118366258829625421428902902908308803888456918435287927026209105193448871803552728478136130741547399604365716024243266501075250286947304537362502337696129596709206967870190500242053378444353835222708713415276417101911613902157197602922181244719571619020296343990974868214353777431205759055776280684921579119045960542655810716776726329003362811208043599452501703935088462648765953189743336999169644157521866553737499281299489302666572229647449361350025263339644257023693306103709131912465650924644534279915474840124029987162564327938120566126913322848452437410950088520000608592101906739453251066445208555532864984003868467240045380999058831062682460847484096483125198885271404656444641365976736622685202423060329462118262832060493007055240433327588694548095470403058558822830494313719433002345803456720886282762355988967640103181220992810674043168449214264400425165197780280984493215477377771854826665122780039467490460160594165428977805879600749846562930640391256243821009250474366573751118648338440509731113565197163259073090647581685009618713355813417632934483316889810177892533361335718723744851204146593117012822068781522290424038196669860946252419656176528190648773491443450010159407919111807381511489012733425161809808646735651250814310725809190071356045641870290248684244949356783350483653273941028339135415499631462079081527338680603018430870066129164901001330531814769039752383386776161120968750606070094325088731584814764083151167635325166732695045202454853031666994764421547263414391256445299432008471983808978309474571200550894636212265763627121311772021055261725600470401656943751322821379070686231765795620521239608791288785240778711876106883743678792240601597123791730063782665484509220430146778243295968725758323839801861612220133713668316392530844379858203692273194634191892883236014005257259067232479046560798370447918851958282033926828862856049855676845252399328731086093710032842335310140130729252782996097208805041638309150044650988763033062464644296707177060872717868537292350187595687516562707953013108699346299246426991311804068704672992370262269043396366065176944393426743990203033407625602742160529782893196854678364734212285909707975267710656330958622207548081477419952507267839174287088578183218770039171309140457021517892932715434191685631939494323475569271817160466090662219199989713959483762788052074962161150146571111246131180418529784762372731321780959538450667270284314486136712963181075565063758060332986846357490378232366449176895257489488163337651064419015158582272590753478474442599298324915592188149055566790540293467270904717158805340207465913038565269920689043806195676367379672229513862432423610729693117502744584097189712823430672724406499666177625049575759770622798639721223052600298722620280492738172817708826275743501597997908436946860611038267930496489201385291474509282118881982238381450748434396624505559741151156559749131171238282168695443917151540142629802943275954489822953481459990630757037823011976790315527459655576318712238453911500581467250409525553468201637439075395773420773777166576043371909322918131943972288383310987273867290998871805126620392210052860806520534544788544301743777394840439608468107189007668268817892628524900784816513661953754843294270982727107891310409121111725522287316885022272480568589272242503785330824903878251285833759857670613827328793863907791018971883986345304973724045454444832613699987645290793991773303611716789508717360949990867569561459201314383213647483985436805365389685214559879812950077659026664640681890224582354634219900640569231749022693486894723953540355495827918359235968231875075685278892830403162903085850742058390902673962034716956159522588956059526776402558524583320478664747420345634716283481358304499869687923685399096060948177511196014652516111360222973032602340139354304840867436469022742693444446072182331185372208493159491553094850983956601749393819854930472134104519283440110924438450080693235771425315022287056202646393931579836005681787868965898447755945396391798651528721776946594840489811862381164319185486130340723258884761604123820409581789358294825916887517952923145018198988971443798751731248761902526261201139800175856349422249951490914886278482254695974972322921681156100899269112737342887095803611748680085444209916014394233942480092139627854292637246757784881830170774905734392883167586753133235676510764858288606461748320688627773471506357287162704768059812796728247955387448367690075194845828631727481980418890464191400371759640896202436445520748654331034030306991365515920960762781004479579444599009808019370692055356740024092611405180194679404108565445148904301147131445393404459568927177176702267019804339797202606163530303732660599383343654040656692991820444744335131815013473768547379478356539882435205774532385626812543366462082424081596182418463017961646929342036225610713730839924924148565560727974152429252871537952034415491078349433034324250865184511957542018081342823889286750177369518322948728701029304328889778442052208461754193642696600261374426892597672388782663707172814308478312442160881066384116343940821795611046671084381022003683918968474124450265462817207168567776625037562299172156855973254033061407534771288524698180154481258724069338252783522861493154498642063256003380571571347688018964496268641143643292278541841901697727383506638517927941657672726763616488550601894327187872885296258339859111022709453418047592929154339761364238494962848826017859184046845991905387679141064687825984495523617364585582948289178238876823283470188585704196556704490021443930470483127860068600008125110525940088357977145734938428068732365007912945042460348760843693509288191887934495210179215502870489826479935964511449580933848678297371578866640777919860326577501788619827037586544442790887654967157811433437939316853848549662218813951354551229529998497614288441897643813866231538640388812438897071785691013998250868457473666450845820828894283955554591283681645524663500337475906577835013166502059605146546359172533845884973506990094527510009253461743391637456472964275652259649098018118110235417754973557053687789069799094345231871270718221289922747635856247958418913023927464985442127499643680053678015370833176136340809475541134573464285491929745465043012525805619277604477127456309044375169730473365055895315029644568211545412713904258538277613785346821173080521066031079034207279394692869905538710293981323290340385881832464832816774696213955569174764324184495087004882012657691417550986227257985990605868394684785286121000528987020413925556412698467217719550930477951987345865126514077260893634936599926398303990727344075951241697934394709097309187484144335660078371674048170241616339386210603579616187720825330850751150158724693625821421685356309419268873982864062532465223596364412496683333147655711172184911001873920112316684219759582273070462913305383904048485437843509579763408489639287589459965354367700840511551274836183369851397472448547043604729893662604038980488376546933849148519093230170661158003849538074133962630178369423255195043762876524843201538877334550666082533191296294778484900204133724423887811437176154289374957901740067999447665224759238966899198809297410608325775414339156602210073263341504436848571329163005117197253208699999770310606166430002286349676004008837214690490612190330770207464520304887990363259741726464490908243113262957338260347711326809996333235290553862742539845875642770614148842104656362398741749242709536072358884629645424271723671450346255563475332643181735626776223871377219680218728472085140552592881148594749986104049610565569697735399468233943761490818816150581674267550770468916204139065621099168047975543682899017354549018661188737776436693083675884667627753819266846020504932999099558434097052231140894310095231859120767619772127198187857447768819493202001829637964420547938531154556186659037462375570397921990589064190542733250171463004271873634509724860761688823170194437055893991541849892858575801280547160427295463090337850834766819660198626309318591604380195931195291393695832949417931597045632763658193768767576846672110270021029675188101716233059124721925194143460538736521370566367191506177317533497750932566732923732466206194368189120795690031923941395299325577775752992591243959614133009377552496320060961490435543812191557203919457901863053031598449408694064533611564772184721912566800575700238062020839001013953612124253761700310033100965431751957091601247700444553556204981294514904055461398099651920151069207103479569383779110831766963005182721548036671500795908815222414723921496298322594138977733207234552534757320075323706739323155781327285161598800322271280288417839636635869506653479778370917156441374797077010298528693339129695649888111162313841424224265767861311529847972355289283265171129187083970539597842049642568794399772239920849511035607575792153676466503332720913770008280172789205640403953075110380407423876762387966192617074643804249118315093176932712932018296186618662170655189477533608771953425880042708002552317628365628454232647192862559083029721702380641594045187706185203165518853650712495098469532318589575279503257379737922384001864154369726703559160297693823045747237207024308099316513166634588419690800581003675506892167813005996332391976720441507417066546548792198598707712285553879875138075582657172747142224932919261615699631730710373918431278901644482287156422583781069669487772860801353411260802436461128405489570575945848654623092386660508971864763147133594280542229716594111140731280804441364762763582263627313279345653711450895284665399520185939882943411891736528854949271796720075921994342372818845423873825145987921208580589404594344561446783681420149657895421162531121244602580293068344235254943065075800778461184540332806460698448506372044341963227584576734641574812976016273270560686254706645829367181283587980075274854774810997691169685433391215397799805357658772616864561363299311083934370350790183405590716945409901381347859500137444517140861251614125872462764974276925963002178830780052849312145810217657005315903608056016280018430914974408570359883098869804553140967926661526971488056280058088520917866301688862278152614194430598768044014927161161965013373169421730944339026290085818016770304421098879423890845322447207502572606031647391576407408298297773762012869555686425211742312840153303553955595573803659093115210056002961537345175363499059945651387732279672789055202290893051296954114999452859609773800536210250004169821273822552428149671133939433293776320388930048152153860085143515327759497878621864284825807167713350604303558155021921580735313707613520853008108638519087181132902897458412136378771339288607032523673381144503485660998171265321977169672947861924251238603418680083804119711742751814388593985513015392132813106083267505295125900152073178622353694153012453063436655694286984316192366421432547310922188260083980511113912730100200459221538160549835804994030836900626725819163502685667561909603900914399862516766107816118623289408966614871313673103225442626324667589526867690924002475208129055830366365855278796740033013770368967217389915052769628818458891922583816748482594553849749847117250886098335549232937167749186459537217576159963136344153463399122151286613122603863578990274297638011787027005505845359732681212396459158780167497252780920114128683934676368860209340128369460814890417995529103384944456372174269412707316085975283080073632433449682172057780525636003372773472148020318797449599206877641193125424441778620417712150908058629117124914022906858991708346256238432720582535658242567822751031903380401914586312581371361459084305267795472581810820099015271598896239579361614922768375469694062552953684921142456144341023711150450983089718248064177304199224612007691206868153849375448839340674099430954490013459748174659149079709882059386613028376617568725330377088760390757801484863465872099147625448997983545601729767438345441575484551788503976791080393068954143997761789803227273645320060428086714825510625847676030165705923279397330783943804447345086262010740772704658113739494760729317463449051556689733819984310380101695172713388490563565765064978531303612535553783039561799638062682767175134240248828228803935430273648883357386381188971944951368597075648766463433388795358938460581805932954171222585607013463730250527520916862908417653224707776209219111178076764274791200189231950149667401928080707818651309860352580299241638664522829504212104783525441682012589226986368028158915417218660634017350005015940485187858095692963060617744587486931352740158865985048793052272506180582793767951833849823894450870679325509578068493623396582321260361108484570930844157013585934284708600162594863030358729776720339974795007762395242791681529126882311002533641055985377141080063367596295044670344758764403529607710508959301601998892351862536266668620429140931820819559741233472681391201760703064126924419542583708589535517420541445323768980523813672928446365142797478984542897165603752342714328038084362482151188595224728216722698092890484112761098134173432293257001460122263070041418121291708171489999595708350276350554562334321931554338684043249183583825171802659483566318727956719627178954105989202458928876149323051459475283160598375833994839591757177040743685310267974418541808395015875918287186582629830947161324911954622240647748037647935543632970233723533097616150713752228157123228360538843478700966521926053100736586448804728810101599243237977069432814537781907644935409729895585698789936271501648722727458795769411244574820664818022306799113800080766212888599708816664611404383829013937496669692313147709912087145295142901452316600228291739408364183370671385390479629104283863774963763380362964240305506632931026974143188015054481410092209820718668609465830303210510661141714710649666241208949192274455069900261396947200704344599048733950145235507153074291216206159241213606526876816140663935969659817900177557306627327884330214307492216545568202344269495176244194382136116182563759156153116841184611778704963045516631422394408675588505106313035372890630856679673842575710241953424281794272389542073786437678287244208065173970324833926562435361033247070974063323233169656473703744992324375550713330213158563031097634712439388196292466776882230201181424332017815287282695449545940335809156853672771998322467034099541107398098739819881869616545066547294384401183815484113596967219876937242433793085587593826210864798650635172650981207250774384540761323292854426566200042604621825549299838146805266037114428935269665629052867932105190629236716874321560676565707322156574541335962540491763744948842685552429214971481841333407220578346432435685854414117447558468382682292872803945629580311481787667700635618532837014791567216173727056672257834363746386017969265621574233110125547722552004205337929371796257078478356834522216588455356434657614280595750356480257473666182433586771831495951052570624582328574273387172130667809095461869865555597676386713034761500748887512031187536723373181405593424984296757555776870785984518360398568745194308811451482184907088280625625587445275586610757967356763781771346156229108628329155278631218559002302001767564796382609158994101500639066031673091859671443457553921044639944575878062104687912612986206654311803403191381645042370209483204661946514378560997000887802604741622523895580702999285700370677489862589593407067290322410060927112497986674129698977865464829330278255232360193826824989579672837833887957401356583228895814910823904848602189511857393294177446030046619422346054516448924062058909481376724033086459405573253563999247023352496147098846185709475288984126899697380119099129697589448909016297599213686411015619493349161492666112374029159397872683971159255988234611910810310331888305089581647147198492675922224227150050689913482467395025452323299934775219238817108997817510321847653979187253203345149995591133503578275603040821694455767387254748189160147733427717905905805265977203487808242080186220316532367505344862893599911800211025843508544803301564485280631752392802070277898219864907395093920159718954586251544779024592474642608975628970525371972941447085466683365346997718920997839009234628767939055037779973367519062488914666826989788723370747565155982288329872484477891981125874707299635813961605168460937115777759195346018883573435234302642037380922021850581481090415941651771983875042777453134443726941260352211974849844041242121301250396870024475735858238523520258140395667874685995764258023833989743630630683902812372662200607091801840543528260494953698770671095794816444358483212257473242727162962833872661990127045080870675168784120587846777698053312011779059611277288160826022225361400250465917902829428652079959726096857760276698009626378272046323270350770916392574932021485693800599523280916629264359424939419372577778567168045970559543785893581543484412150415763395340996755031912630497940569802144446551781480774123558745443778688176993514422157065963916924099621475858545234504238157795230531658052565236223058456757722966403535103405294362681301437495425972044311888771270052165852388565844236275742000339843736535223509946084861169529834172312443542548835126628960642350056665971759096806261380046424681992879539452624578271931093208523694271738927076830298380904357696848810623942691546490587276776405929386472181786620171103921232881725731107989771416991720934471501754757587739843112391300911636251574865528850452516449031882648567559507460781384154571099390602510588806080911694374576191825471727938060003590884327376792790775157622504606013061493063034245808403166623380350244844186889097008961323654041725365219967519678833388434359082241236247477319470714904780531423866206659550818151711517792678521531748197489794113160180319830375370028702130725489585968780498800922973960167920646069994281908666223399871335987080632760917341205234318132623537613898133446154914196615436058254416025665393890444346215760241563617258239721815687661988471041564956945118809860686167701502301677607947732316262730194394216974069046762899196446656628993630703818331023298030523261019878365015783951878841061653784915180550767111009926847001487057019977961887573402632115294118976296437980359084935817598099025395256730206952507458758433903646196113880230504191843246148714324575845667062372226664761045584265317358404603386828663726871510425616453348664360710440439950841461969377533670215427378278602637698856531027476127357968225640377077118025396311316131603625336060794879027929686234065123051144703578486568291563960611472294791692039449228436907373063023429191837054296347183423857842922485925646228363046587008995392691877176953003391484685066001460235754995935065977632387122379736565843869390241917762199309745954108756144829296595252545158276693696522827558473005257691742217406268123246465646346048409258298276047063660910244397613768666515038458107066877216827756007688466655484432732771464035564450864229799833096019188454489116123691357796288580253046671795205090516382790877568022784779768325852516765576753372894173228969585009364593612932838764683920381226538219793436419304307946350927192771106855658412023921613961044929496083065257596279307681956370815701984343645736988649950609517547921646312362388065676522389138940441688037925334388876940016714050453432810652167182146469656305847465055389466868066421466932147841807699048757014573830898934470849637864891914854669706196111978042426276771236487769914149507382329737555358086222731220265894759177791646943190278513614245171633724768231687205090273593406958345135945328891371497022721816664411652652463115500478854209282272896699625609940112288163425189797658362729951545518825777630903340770007543944804164522642779186613230123065960283016609845778319331067224440965859778299399238114102651481501720549125684655878564971108448435704060845748340844569080665281458307395809600593245935646672635152066531733520207745313336182635194761819730967159821563492555099109179077884259861509647497051006649792045655258586879425041544939921306148125316766180693734733135500640458186623117087594699537064303299507616775513275470235784751453477133708727826181640615644135216363214116575406638899736457470980074095032313729537219011168509734927370017334563697766046032609167926647357206796902944855932198877544198617219998239742468804105732934807982564577730497812402190339512657689822995228323412905321401601619860499931967649467057855388138901659314456133006994072525921114564154614755868514748478473660098609176497289492744604690885621448989044469160779759383385046553992470344243583694372801385495633593631410212162507187602715615587691863016559864469160118922210532186186628263060845914317212484434110629511969093715238536339068694346719552494018750125773515548289512701567789445931202415415084474461669808394675959623253552993188912644808989466805960066223753903995716368052279808204615618399271786039418678330558771957800781877445179651381312356210919674402485303787817531645571642275185834134848133885552039167143320296772435605960618360139818423864613716543775532331756149311775823214488354185603768590847598840705124360631992250797116190431040488219336756865724825504381750094797118866453043077083511278566410895844762721788538151469393993683865557672919394802074939008338454863391179734982743135496552040328205198410356672272819573668471424977052589214382237398698628753736555262263875044571894950369302244899366565266309064577793085865992644529463825453535034973099152497955366564610489548740535755487337487526719156365648630345270713873133665918628551562802667017581533801513754950600900784483362044188691682122541544485562810838674360327726386162492306783107696014442200470243042893124977339254998958200518029584042033322075681409653363113986474425661376076806741339239111906036606874971205597577492381227466137131766279468556943472387966084989661904991202490630303475393297219853951933672863840049149790693122420084828809186533752987552698954147912705387471286773379214882494968457882210902693381901007429586904231264058826727838716970436231392336989478337559002862502210589268841131561394980365733980712926067256832403269404988427093898030122760505618196877902231020818438710635163777888918068960756491913713272209392071034038774908069140205239197972678683129594874966933483097763779521073517090519813013550410754606797724828052277643469237031793031459986532354505549205617904529323409113394252951389993115426199542830061180496852205385533875619183970253177220510590685781626508771573870372110140269586672074062639311002311926744250680964748494073136560271704485448548034719000512844356065814801031244938797103865723986812583044137263556055453481962265674838349592733334208469130447313241158455417224133548406813350076694252156440952112755445140427761570421326735145446398887597276950969527111795509439344147244043944270453554443618015589148128897993148259899147501367757156212731915600297565932977014865182848480929858200544150173640410392286836361533661459848246032084355007318225720741317650232247082558680919497813580149453607664350553609370405359493990188026165465732099048510396338722297430203162494742500638708664813297194016393026356172827758411919591549981320421676500046067385940885933638909826958610780795124216437518113782348187447128957196190468112688648191379349626622106479365695040958193118618717165527030255108018722092525689844449572573179225983473546138877453211020239359028413866728502173143453176017998147179686833018509110991999025611819408435504359250292270133987978979018363216779682983231596031095143719381143433782149768012721362452792701356175157245163553102439030774264953388607581949462603144432714980724437862484232539090910793533628330438393655318292996814684076730172092117817856353509634826237853399753309414762974980453800550182661297432769309529266920166432734996667648217115146154986803114613310370848678660180820230531153382119861779059352855162049008339752543105652942394853244550854622217879445463899291748393404388752033218391127109916348349403473210796103839446502662830913098030611533633205091235214071724543195844105359433111940167182994627575053252601051161702179663586234988362751692616037102787112517748885480154561953625138976234818597316113427489371500494923702069133227153379048882379742816645751230697524518500648807021888439406317004415103116535933759871815460778556645026731608341208516524584758116251358638699022000428022627626660267302635553550298560409854780807130644468723049428685305790309478810273232607396761110933302622367022872847009579653837674806928868708471790604862306086697127970372194666820596698233336662199048961595620667369577503077946622068273866479949990749062795086643075467242283049497393959271447711529631157677917315005447640435037376100303150781133633622488735632600882600092818403464709567340385391667428519338472755275334770055046841358021328590657411336171033435120675935105104050754891729652207336579575243992312202781657037470122576805753000231704503727283466116467943687463687104010125017331954854934657635373027852080006512378174631877688148039134836103116279480994535094652279837760614679609408727989034015685554771516905867186611704677003123317776307251666514289282358204739126442230601764059690387068142278303226746277763408341561552876155883613148121647523079949449901768723533364621370199936090678531317295190555889434754365839951462329245231316186210701736715117442746798992930975831697280711888432322180226697828786635425025289414790582503793290276281734418432176362202672929251445772209029146528103568878924269183916468399184736323485714981813930336616470824182352356994123352947269112520202438304075592570211093563351935919694786028333429508696711566144069449944695392517642274968426896377696454437234836943302783669075081806170220974710626019088386555172951017352091327612443511978424481396600845236355914064430046588678270486073943723514120718608047421303491603581865883430532699119362554252119940387128099704352827112758863715432965741703288986660306754879091236189984986019887057986133897794144024325406993745219288895278616667855293154103157440480649334551615465354125596268498861032262837148710356653816206754687604102182856865914119719260626117061964105668275345923364512382976092048021341696039266407557752439951499663122205446395194295633935581806017984860610215687862669930224175120587843498384197094280557809006430385926190752994673267696179896832820610343768200211877859228418937764867491991773670120951971203629230897514029436914321091114953318647494869638257172850653399107428233517628858021096742105006959960190141556776081637149083453884982509584443636125307062262752412999719080975644824317299571397357178031081289275085919263411555804896176878686608623527786354092892899833183046868063591136885716942301830927933914526151045427438246998640916908425204582703533228698678945080417065122907030041211018506647303422875321160527615966026048184277749651750135432987456335634920231389852991699317194140669443628118489618901759099463490340734477472944144026648125517385687528851476913130494860072414120538407679245157917228143706965499965050462858803664099735743997974383643471034609347492361415160623437411797954589848112196584476520992459831091692739626483308979057751235040939715315525875430355428260803153496887009021046477767212004215853886924361026705730397430842288554558860484228462556667238140847804936018069421600926686844342172983002145391968247319907732581444101006244695488636497687544475423194642886022621992034426745272495069213902679233246148954853174753992882763264048003751379329149000642664052573048690848165140019430164803239874030255615693942561254421722911580232844454350546724481968326245764028023742051142313331253265058059480515393806877624226506152106850407180450340203559646449076893118841445007448578267752732762780348322389684660795480956398932606022254247510340276226568305693695576030189404237075404883616407173371947278474601118308630098166403597619775180002591214815671120986789940194791927659549298770475302521520496726239279929749654125688966252457242227519793783124749084195555791180733822564890457699222219762958798222170432917655358929961170006240151299749955884076515282960005125951332366054931908177514869298119968451754006479442211644828444556801922307889078403333015088848515484061568750676664937099981763773863923834859117473350818973041238740225181100406929833101577947620545562931126407977988339445427796441526382405650932970789570189358133154527465031645303115216664896909253917417454937102238715370114591923482443281405377373842993156072412705342775929119723798183518140598922542510802841629579593611999709452084014381155188110492694613936316996692156761343615147607623995014978229672686844513236789175548311521661738155336702989581527046825173793103772658989358500390997622062410690021054259540030202037638802707341756065960513470596701512014202927379628708422834411923400612174010546011444778724220363741284692576383286412434008678990518294270285683781606430624969712696662035299486844124305607035405659296361303886540302252979303621853935622864472839978169930275225921404545947908946889832029684257578609445305425779553774154669914968941594673467483247090914167572512426021511249474081432875607636057207486688162537817520431321274417350869172639439076823057242866730391887682351550569103797198022543740586996847659376163348993557747392604925331976959692214097787617531886260325445314952386954053283212094126645237138726651928614915699472973303961693858760742711829681182636084741123207816914873914884386187024956292629115639651129486955179181034944911886949328202145971067723298621992209167814642043270293607483796417276536355638937744077052199621068999082465210017718216978019156702400096522086163979770184218274917037846451888950835038971992095035062416971551961244162716496520979239530723520187947266080950486830769615293291087138982442822298696643133756751147499425596336043768961012442590826763777104118284785737704326638190007156480000392951624787646957213049281897462940487271559807372939634573627194792456826401011534262494193383568242822643166740701386427198929508852793518137194283051798234593692542804772482178045318738224213007873358501084060033085267496412236508912795763076886411903024236331813171334162069032548182928161018848233486678774609384270701414932063276297009996672930836188999564001050565432067790974106137983095881197427967419484995517558956885724293301277948447753467920961238039174101567910660430918134825953495810572868353022642580128281888219321113131677475979437683128383014861529686300753600157171952461578081760028126534242331585428127277375549316414487714955354263385743720563970694545954250497314947188816708244527540332458518282020522847751752893490701954702859760520586576424882357091844141467859602259859367141969564175635470817120528501640379810659080800404933542724025920219600306097605581010768350232662507765842028550747318972009761664241626795729923747495599447344983770181191385802032891157167731758020270764990996909267849757778398698726288080894164433985850139150206191500441980906450203398010289581904182140791530059594289941590706191762851766839753811725827996578555482423079293858261276242924532493354865575492670416067795172202329992106539139681381577198358748550746773763300831552739826173028272585771932575646520304805773448652122556800018252484969962856999113573733044641564560272651760387491204339865748401510129134413681553698248565818973329868462196603780644833221654330891518933915937325063315726996177346920001537084890476207278413579641954519504484100819642781753570960506909864820206795062628160076581032219611413035096671986979125764314727111142101847767809427802390343560686228318416543699476460352817269239428893966858777430609174420443012927710732859103100561980885134958877681321865407189257010599492421260224593691376954597657691566004324331476974733883423214070609289758297358732161683972878746005622812653015418362343859605077819655597639485483303436066081467015878685208595392964059972140409920835290048592228866245580136915002033807267546514610967383198303102825809460211391751631187431662392698723146533280316425274111496005367918784305426813112238664927747660437586415090532936584173695457352617272352242289097288396009315193766795480492848431405659894123818458741894072302879272994884276151242819417301274638090336973285796555447934789004582068167434238120046798599356893805742912075735671495220450204489510864668921366398490500233589159081605978499764739898817310816548354910231486114226528395271892862605250330119469938741050710244005610214855296478770253750533818776998349772925014807616564336633235680390555032795141318540223756965044528137199774917364245689255390140621286799361221204928210906198771306118994819996700158162589618487858890979970683444514673773841803625757374461735465661579740887472276414675450194779738588502381788583634608707507052952666131988834427631647674312273939011397596721616186739459876761256747123948589423849996270451583737369641468835361233047438621965578651972594980842538601834606119073757197172078721486063069723739447191184142738502969276338221589491867905178966583819288585508157800576681887227902831361819000264720989552935466448857285139468766760248274608007619031621759367683506011856977382721372398235970448528814445953356378867342152018447240172964403208943791556529286390373063284343043569289590510489457098731826952325254625624727840070766471117198192584884556413145325510410633347432847771367568101073779021937000606874196071901744648627277415432138457697826426194734362551442013612453074680272655288332260032348201780597553017540929558742587825670033543917584161384956424404261929427562485244587825111162766842455783253369160389942940351862329778297819942192237944554008869796097970775128596176890698077886234628560531652400622292597886120087431020752240418867124664164766563137327295907125797892465435900464439482491158451608667974392428943304372299166037747647940934189378109715806392801940482460530700830800040154553833640572779113683765493171928631399635545684554064733775536393843326840431729249145503522580280247146924470106233645234011125187983698325572828455397454720506932889859991386778494702465427459953661093144069499613782734942543695360459374846796812667314198364998020204751302407942569447132180317163808743598867862812032413978263273130148589668622381130938029098483557453244188111304046882778523031220722481084743206077224437225051368936918564418631166018157852012659452192233696756153540982319352788387814796497552617556890568148270008324230195649170388381692931122174919409109998205620382399082336073988357376475752356573186857786295014025778314365350976032231758782215723750903758575547681167970281090048892308561330318524670746181303434542654057847290248099532187635131207043714809299987380160753244687360883632577481531462593069887612532378816461950670197851087861928394248113159771251738729701070094943641188953821674621600602328891124991223571184602852364709857068417322814049651097433822879686585747689529208656003213906892595047084240542014377345497933727416332197756112157605657445586408906163840164811981990938710908122626124878536541906299016943434062671325213006923374178601998372165153916064551747170587202782479175660908069527951061167048328640485213305920723140025792035518255512372724154399301954251096223734614482620830945154125567180428759409521588679924550214908050007217979440329053210157404716441813480792101846739470888648165957175639213629614104200959020859282447183013810610173154979838958261302915174914375096319854597660080278778583706804216436387450590682240997912116845472255506914450820350159502695006785195868606270290488440738526533343893588025799133849948709903477644673269351786041149154822774261200140826950456311398209145435449627699911269331207211172832283757288509019342656169204239836980683233120518347183079554430208083712076356373007431740058869160953893780553535834351178068117299439240070324448829125817147114423265479056428529468054003928382232775410410594382078627924048757912991613360461446884808314735799272660990812660988986706358046472047101602366568325266588842007371145607113259804080871138841382610762193640331734142488528648846084400238655540632651437379521565957562293659548131528364748538681599933846922409489910628128295324416440018913253125587724441859940909325690805116560716470241787064819709216239227788397134612668915281702492833626215757167856596449002849988313711402432544211702756094152619447831335345845194676542382057335279379756308460769736012611704714551655879672935498794772200744249084725337705824784294769623977057184021545717842340608445923865276085868154573849156293357813832793413112343405268908306538719858622665554845852276203232792573985272997024172291263961196058685397887426750662975160578353629090632490183047997727127448244815133959799656810146928504998133609716535709902636524978240337050851349136418457501614990987247153666545051719071130637681881926528003885929878173576830127270533738607404292626994805336304496704743347194247437284438786999188182430951637378841647588015000315720783339265058447759215856499332292382842388342458691814341045017864436602727124099470362980133359166347258527276257412723603936286554338802195374134287604779084248920454615415597225449050055756711832904556958596607825314953002840581637196422352900758282309668116142703827020606278128968922404090090017122392618816054157107962828567830665702589900970577024858312819020435003141205624801658720042229009317095118620643706645613473375131157431641626097441523209298990103968333481507461106991167982317310819970182124370494899626755021162861037534174221184385102045983364543580313125725354514693694035499053636901183254556760635234316554451819007340068016617699252714959224213695580064741643119450667605440197689089675581396034557420523735269539455507529330915197215384911450235348002081731732619556419602886472588107382313970497252810624733629551308197603088148266252385751714275946976107250556607007913521422463347699411270317721635063629370320874142096404831843217431247981343133315317280447302764531135488943764583583817864695523869494371157756982164520249083047691190375595164044585586605030388164325117602405280397197178950643556777372164975921784503988429801295194702131403366228991099945441130826541611181466139685922312354005679389651376264235859295627933196798978369128328045252443853719830467460322607954347465750175065296968025405276659117766710786096858319382021706522443964715275416869226522890037675505300406955713206007057657438530274606624595730971571976755936608854454430617882322704271882266098331845083316083215876616009041484479029496792048746682146144706315153304805450351060314499659576960663662406231992746580283678118192082379147066057625837957424089022699574761491880305059411019656000011142905198980692674603274145153939341825225838244921434542475247817579874987329384571220112940065883512206337272269041700136339504324117231952449753740065981056628679116664046668443189032269595229061402518087528142096633098758058836300114790567163109863559750506382431619088390127039330727979409274541507596819295457148539633490770758092601975479999895287745998251571563850755589843074862816832844971444674265586878236941525047589870421334534070973126044956927654037609118298087846152424883940650850828536697880511301537336963749266337996890766411155012502464143220750566287108448492977309030406587053574710278601659701543661964658494522507220835033272284940830035574329618512740583475460940082503847322451072209146977580251074567173628548179011704399280141984585808803593614082622704797439183846665299074980880107711691307260342585403843362752456807237082585799289377474008748891931685698373771764607511539218004199493277409060165496814023690199231978666607448131553881553917992091079631107221287920153814902928076345140361066054381858235956385843842724357013224846213902215110134613329415313228271119946198916797260479943597996588825444109250827021367201228660827329021525925081929907355443778971118504074212434972793128324501154906979216591649105186873683535012881244272055378627077509397749010776431538073256270234505367117320244199788506274573504023476002966156641986580705309258976946092620845188804037649530772732454591876095970246182041241049934811400970293558172272647568985484768898817718074900791936888498114439505231993457016879937463911163172904479201051724384370415066093185825570287209240537180345581180372524763327905062557849176294625096630729656781688967852706273061043251335145060196509301685477058955941669488705305865429879030986364042467565483180944185837585988338472753648346506430167595695610874958278094864897040842603281874195202731433080987371051080471035208815686833409758273459830633880223526264600211950777185545202617280536747326006424204357237212767815745457487751997334060292145977176047043593851720795785088463754663493936122533211345838822712454782294439140697147714795644313397019469633863940234977901115684826846374017543421398737896018646909035137708099627107550947182020036396736053807634439432627682789157086939274914372666490186998161753752341690765852321175301586168657986579209946247385481714263290394840686925244750050187065571915455983207427798846630451368405794213455157283185488601345830524141066373478181703308426000364206972495082870231308967006781781491700517163034010452042844077249503238762748321924283026745428287986275556150880357081668053153950764970635032561987750255440817457790268710244848256062403174320605464965911374926403561231998728443885257398489787348891874625531382674332755864072805133643362011430123708898009509195133780093894748657574530873429646185717415701563132622463250182540169200942998019872673692913066543978076704737658113840557603839674549036900467257399592355235638076370251970550352063833657354765059541265433081649391020957929048070490404665945272758038994287684132329239939523930734225602968056876602800491627829692450103789439324907753986002891619285455032067884761921356107823818598856885847901286811386869415071285000904691954615797966236202981123593199409133063067643980198564736554529801960316621041669845045188141717717879274889550886203172949149231822383201464708064953924967275337521379282958408229350859013465381933125627478529883949547211018832842397507764925706414011604524831139945091046704508723852613671573715120241104546343362021538227462125398393200907405514869759903127064462453393979002270503533817366316358327002230451382761355675479810986383430773205345197089843235841910788638768309490552569772955283388490200026918282942360992469630743585702732871318193223046138945208768783531818209532483988829397129771592371139137077822253086082049331022194824986450821534360110669628306873608098015486628919658446641055953866035159129396734123679658500823596566610584100447758176982407371610667788563760193670530390918070076685158567422473528205758481578138758160675157675324606850990296691516868318988361736705004559854180700181759630194838511003024723184010754779728581251130320899307249175148922069042224607608238892465938874972505709884611936071709752404902987994738484936191796283916936725408231607355456815427278254502811892437252200262327541545970855854490416450658252830420706152128137734722730670391222378425435209387307841824175287411545255833167972013481725431372464304728549001869286999032407441213000527468598737855448838960681410747768137614212984961945470277233001749729998526789801192009646855390590592166604310045174008345974430283102470931526540243773799728212065844548072143155630577747829109457859224213415267929434858369094577143079596269954944540514114904764491703293123593708441097289965585134197124151702502316768399497038183789496583892453082356826772337531076399182139522237150525121887467269313668037587150735231139738028199933516222883554199466792911608699373603242764245765285393496144770903232476552423027456502143698995635287105942711371200567355700848418912937368171716228759547216493919406207100463222968406094829800613637274533707762874044227282117721298117992999946950425530135099880033362220805578896528823243299608212716284658997291921218263606112017265095212393099854571993306305387874801387557225805948155459075733874158065853728590955253519795047180998441594718769328753521971924754665304344954204651033349112091003380297268377585630546882684284679640334095057765602501033309303851820333125697606974334231528714229908309065363051684531969065231911025095267740330225386924143503164984906857130328923133350785002652513191612143181297211080042227366840383866618419162200223299337086886743829756473622052521126950918640087446012474626365736302299672963692037509225355985562885238571848241250732464417455606418671030017753213554117754740040919239227479353205840140925249552605995738266171548123314109875056100501440791794411782928208885212478843555281635678605465987591974964881955289663262002619691587561968498668412782636899263957777155851698462137762905085004898775490327025371588372543208963150350026237248303186050831242266869398632365951053248317891572307377055910862835048768851325860221199726967707015079982261805125906916506885772434791664129286527408701530248318464022647483656306550348867515255873574164935312072518068196847166211500447919117504269685485644660273221725495865309420782388451231801324799478547165539625197631427131455230337861422147220562525558148556033971813584580252722104730665402464101073279103125909236826884436673370195454392637361423127843324506100198768782564820162946862948824152294032765272436939554009899645286044624309884094635448190712692992608051771374816758789004087136264344558011882217460662143948398749088468726883028187599198858749243271711264614700102171790855601641305612027123602060263210086860561679804237330023984828284401892932490572608820425326088232875183904860417411627051153817322555240680822316568692319752469867880301683060333964537133523677101736975593904364564297212553768246993113315967377767031301399755157690849989864332479095154914064704506331557347012546574029993430856652124344764133029379047890882921302662006498129173188914481353512575828529091842143437060931603464568411788097739592359905309407426234357542739547365753007655984131040032404546429672327974869778088408554446783731360763517311467462711050305857943170484090989748476320040369565737814376146732353905902549870714589364534567336863386305479528540283409977151497269581602080572041448658524813333340111416672318884809390378386701267882691283133921193088716870804431496238840096942558662459023413977196043920534545649877765775218646668205746185007919917266225565060444376199200108842753806833302822891592683953855275457995146692624613705249272451091069157207182894875368021131814022813462386131532144510992484978795554304339975427110287897629236940488732100031872395060702133248317551521198175699906879388175704828915514274996916361841985739472502442910109404014788992765449847629514468732631553870975485568038223953329778622646544830940719219960583998701035797964786612114265550761771746038087512539996039341017874270438756762022503068117304407510690619404276147320340267879161314505180104408283877015799763261962840703469034218329772860785396222923957391748230493485029830725481452751408269778192829330844042914315441604953635764121502980749909865187623773607005541222753225813768149835415818415786409968865465441919795618575549416362404352296622673042007843042281698840396388051807994290492566557960237024303880834671098038227380854155356695673746573186343093997334275581113086284175729674303542416731229734733607334260745392239130852140318132539692987854655628323823252697386255707599602147108595852819416845080039228970262286328202313900937418402469466968455959538251178786523907825200146965991242990991134977368369132113417600756515505757876982236267145161718062494467421851804394726536875128441679505446821852032233923700649084442660979431773215029777934289890325909161633522260219996026381094530879224739756208512700417848895523353352438585402230394520664905454628333475386193812942918652005530863135665605828484907508083647674770510066826836844046923309211552078803491299448943671291923139208853271622941798979500088191010629305788061145810428074525075505972555453795191112469671086433703425599692540254085894924364538422328458524442924133672298044414267173483015908985669753730607705299998560544872063606376431994519504072622747626593511410873709977364196294587243779360509990577949588073744766059363389529217722186726132289802417442271117425429239799765962129941080730772158390678840540139072843166802749702043754775865355555221183218452183305501506684462085814727350317835462319745566861485203110759581582365584761237855674511341933301557411999173184149820373053108532395532719807588361788880434236076192584600648254756795658325217443285964769958583568328597713061938966844642910785546546201162273791692325032302266199319125853218570218210496366927784002323060948211424185184016553103686161840111515512202962206650837049669147782819465235302347674725025574809670124361476529361211184280266583119360705787630114886667545002594774984326429786170816101790469434152017812451511188258650676999378094418011072502961526472645930369519248112321343689939053234457285115360712681157650783222060967292351963578689296727938732536460612320582515471144625004910634350630886735265261805021583809216785405708492146258301533804404575880992269507885611998991905332201842787477624554437164015994010764484472984808486681661332905504105682001154607063131875871348386021193525650871214445232824461127437227753332931991358653403110435280601805549706715621536539936868284512007010919122883806019517657522497298603182958853194923303988568013838312946719871398130767177717769013421436479298411802313952618688715219595520509410017784895697492068049831493479060155460936032085762299894065991660767342887655794001853734784112973611775707727416336678824773739305219499274567627327544349167627466219989253610271002767168982574940743253750871922371277051846860008102182741890755917877763392330622800214730392890760207464114436143297051539258840990277187220081900062700454499154333566724625390998515073158112374505751859885489233050274823568500143024334662051069671318228435727395904431930321366110406368105398975257328682431228549063563889186789950694081474819818685020047472115098234013877521165408296536960240972639188956815238868589588563261579747130545043187618788910695929586887566192099119070585436653087579668345258552163416101404342271701239026756308304461908005949055156433699004337100935238327022718372057785166091948532099464391552061500044227251494103227665062136426815812594807192649686147183230960135614434618076641079556334825708275545624556721662167690982325047955238488005696897881414820902044572278083869900950964161331130234798287817887021790331901019637201495200766595961773360586555245893052429599989569629435349944167304292828287174245719690159408604885868550577424708809393288420831835297606607513919336910997376778284841178033934650894994314381060447478749988442900567831920978965829880116828924151041408489784604394577271951199619141376094633753920744662034315032527999930479380715202327894177668932322018886370665065433387161712247753395358409807763476787802464311155774029858279938321300241175369511067541263677199017944920383819834419194059760138451490399827742527280892899188823514228738266717672730030901941603617318582663274683958035775782299954905664944241365839803095278140513500822840238906410232314378785968320420061110991867676001496271514277389993650438430444576112315209218433923807801083309079710308505143223844326552808195491769749935003146438332010657166368865835546993777509695972093928698629855844979898353913405020973182030488292754321101699325342119770540251664587484563098318824263251465216876157833319662002076778496251768057020665439843924277683089089296530618932567275720301978557874437185493113857847645065649250790018190934409923942889678463943382797050509335470320000919200411605357247110346157446060523055146304437173230903648716961799857775084219783463010663391975333849776382453670818308512103821040193907275038940501557116105947082932177247269160433572196930426386160933378966479131371078973452902461636768517949475477292750277484208211098376629321538553445086336654234442411725881134538497148369891008776278462139629321058675138644739679581877557431943804548819586352010550988274033058652001119874219853183959475921932586231502309982935117361114446841699361576272281393162672600512499222985884651676806238618107698790907654697222133702241530936588224387630841233731071235611735409902377979767849853730905392703085538091893830065550533819524586510426429713624499515985887027829240572679365888003826720546816551139319523025726484258906961380544659999929753967860504097338420223717708481887267479124337267726673004521711387189389873956938128322411002318122084827956294056348031739237168573728474001434472088682127513993002984404318559459530559274141106252212508984888033016258013531457965919574303637192100272235997980306870212083539106758993153892386166089792351959415971933503301069312309361374579223376425766934641720225949034336556349591116468237731830532364195889845929836988613971000557782394909756130482581921514992620009821594153014993759187842457118476573026839754422798252069301807910634273605464997336906434914305971387533666113366768926402937565327457836320903577269331774662720694056670730436211121198240623732202173309113781489335150553882001316460700144650673712362675780269177177249561589464073093377988925094323295076131418391753351303600994761178083783149753502152898723837942707948023923298480356588002210614084290425760864819234708050537113426492027027269961767571153042002904804004748052091657810432486676542330043638795808062497434890707268773728497945980469869481064470781982434413517636399274017008877448265408091105702968268621654217904538410459978055978702924327368751664891214248183823754826879080203428870571190525367283269134851420066035357120441433874315408006426026784182010445638484307967928808283446596672372870758579593202484087271840118522052522185654321253173710062388761928569666773992552163569091702277783812064956014292894049078900504787468854426748288158762187533992825459032180374846612679471501873226680056906790089568508907343328560563231923892056910149365891653408210469433484735883705194509002067183619131086202447995536818963548028672686483766996658925285625232023815685225882695707754614035369110294876009891656444755068014405001510675637257749023440166727770534789777022410258643865784118276816765644727389012910897930264636314030701077600182464123936945447747200281343734911028827039067233651473814034442516889210267711851765916652280287760007109133417659296050836829405096639073872631019018882966310548278901318406182612584838443179857368416514513005273136945834549024711573015184095879577485362021775494865306390824708282176194443241831418318528552471561469127353135417719251349701414694149954898774630397580400065541232912834743636626777567419533765396359395915697628876188505951307578549608868897232473412811466105477548416486189408296296518318870544357553755854707265612236572337595510024043125915866186653285258862001583374797615453897471537731877449992281443569726181945892669740559433523697353564364367317058773379377934353066597805347452290735741852634652558917049224699558005345333181823792184243059119778088197929094063023288897079327357539045951434740556866731740747593523317814963050044338689275517339717523865560685798879392907672502258996861703342145225433546598656627601549140869533521383932605693497386084072119112545068700652618555924552376897644279419671098100809944455090631971259533853515563458760808303786884890339320218456715481070291302338810225852821514703554845315474656476663131140916778500787091362635179306270653909040855318398338145056950945657882499714713524660185635866486191048131146294513806136584290385158835732098658532118978642234041267967729156539856127372831380234713074257211665635412446522127797320880792448351465035620977527191707213794009102227154060901467547838801409684784829202989539770120484438457737003434200139800908474356701401095294167444797868975736361460237767007238826455076177058894491207212015916443241264127253074512084443786443668920262449685135061172532424449433822245278649254308553654643243156678761017725246451712547272486167040810129980947203123138094841990355153955224941419245951072686163334414438333209596413002753532369788168832497728467882286939889309164474697518333324413659954232456770599307876881972547006918819755917067406841916738642430009006259896810303041733727698800406328638326060579823908453005843994366501583008536143790472679535398190838599012906624562674725507120102133062758752225002007638827116798732693949866366846027282367620142554439713552242758106751023156128394223049963449230522613744258450711059179996867068224370884397029771075528893129323081660190659004800146427179876395214115074020502811316799273282658509218374742070125365137905525090260165064692988788247583582777508232301844999668529099017813945329662422306722138528536293201019973769566637123526097623236410056097373037140766516603141557153286033484964105679440079523295034435280071464484515441054795130210115439074488404520999903709359446556848815916387070107352144710916438365436317567771023409888702316849212237843835866571881592362030472085069433921442882539017092918400903136137286575628292834352954692663360496976565806387770172626792984958978360289070680414496968447711484989450557734792366446545366337487689261278636095680211908072537451408409228406212189897136670016957662462554701402463125480679344133693984987119144896245708181028486407135480946627878473456804286637936094821147077098800290686874781880868456188228456652580201813192214577149199619509947307740216541418606114288572218506017739861020783984156686302744762582191575837510974602158879141116373528842412243639264780656358647575777142198011569920702090752610694350206870952400918398464680751181802693438812365146153583619741179460234107780400263781762257642078059137413548159385679042414611102749343559017007838225224266364907406736955768562044735956874120408785542535345801945191864673584737364592374611155082066487184543300435962970502319916615782147044765484156352570131208250885790001966909043332914487899500842075676566002611677691484126729762093036457599543739883024991851141070765467679249524811150195757970963166265162086226162588121893044900830207210376194668287151990388875790289707572720829944816244445908106167926463889377836530901356802455962127393636891607607900387042328644220164526478937855266874291583937678732429419647317087204585633488505105880035160800426795085378984131879888515333987190567644282303612895016917580431494518517530904221764471739689642344452577128630963554245740768998368206275929676003217299104542815314830146408656879226964058698386261238750953467339169775334648046494096060344417011301737022865894799336439280829967345262158650132304423784023881708619160406913924356629775329792851508278427857230611842017461261933049506637255944384786800665671957404956513623809663219338259300593540467308691431487724366894202091950265962763760301823749172137144349645785145285424273434778609080545332474373304294787752154714914268213252174787500615412066981702144550872897092924491344164175062826494648051356136076459797724553517185825005451594283680262525293352237425236619486384072418773251759674252712094402017061874666353999338664828365632249524533269222070988575523380988407850636525937857235548643108928023183159936224358032292563930577199533622539392723034381622497297059391154641182953181135963562325886032124451821780009679876544343966758699733881425246854721640300553916723962844685868436150817417588114711753629993534507676745200497359205138722393437265104015194346214993165772335225571927497698526158947339656888605019680212827317819646845326275938739852319685371872467190862630987480459177253039914473799632662267528732199535811658789301671432914048663355232910739187851225872846170588649387562251852129193796303875413869345132301817501314330325771718607268485783885060517302195240521254349977127096608014141893136752694793182678525651503888862425088652832970915741122502088812999700439437199233979497833891113580507033004034558463235941141153215439872212761670493205149247541563118120641173091227587999731071764581450356162621607996741728614084714928103603421482070736815347044484419695907396675822968348119100605059706535515076235536718615842068126301841439931098093989076742466409699267788663884976812646151282154846739038882086858646127528700195925740820474762167406995337539291990756482525612887228600411894316685462673281736366924162623998913730792509391464731633914367104568238290119093206274771480947072763249999910836271150175256942423836285129309811134757073045653623727246769883540431946602237378048888437854040740239091602116157429749737502560702606059337776657982698483679138810269862229801087720041216788639348269433146494439913828362432730652154841424705415505276014191479479331481097645463056814228114125332431412586529001635743948837611787801039947445551936353092739702033182418466504547056941462220302630106805333266541155920123915461303788019160940731186325270369051550931548095402086752079046994539265316220119191377908656446583990209341603794358350986303849466856554368149603213849589445588387307971020499300129246977801218417645560775434442060802699804490350020254859079626470801747445359508686203674551590809396244051587483448194007460328935923375194925017290920992059165949383645249108285948014659804958856562775580517260185670989923869044581218682416089458651374522334898316327992926517488642063178071656075840540922671385177186545244384027729629858852801253995767262495312310758495770626712044553962386409935199888072448152439478200092232626560578204680761774629358321803156854957236655220629350470151565005497957410030116915914469404295938725978098243267466256202202817492760786226936123457941737002949253382307894872350257499774057773567510896052532744053838341233181542431336179024885224294035056749922057771847784539855993703713381527373245385111859409123962179601436608009985862771012119815425939395945411643866502308154036664949559933233320178301264032819987746653952621593450170211246903118434855838662731869748446877340031807983116610186255730643586731360105271777844453968331252221936700285693779104869225915166991165112852345912266877398415963891305109353757379924034534144567215428159039394676981412816700071475381292570804029741421646592407866277413971170676961031432000429605336592311949886783924806023680074063578587452303874091132357816021044440393437759701649891896989562393294775337238286762197467973676510911556504661114281845042818853977045726362283640776187557643370622788682253296905900116231867568475905033774205321656397137430051927689218928549581551565869264448047938678469922934772446234270930738391466935097712984679524726983259992454236180618344954654452259909077069155911323105674258109857750716010934843102798429569363475497824450876169648165088912485547854945867289013993604420832155400292935873325923291837771039374670037822322836746077981618214506130362793274277679272312910137139723924922539910243456316386394743537097087836967838565384961355394022378237012271293829097061602668919475973086673440682104203038928142904689941194050862932862167076212022421340291181506512643045264890947933440998356718243677152230722025285839614464790574326283396912949262888107917694219829178384982282098065191268524269571541266973265407742546003289778621870743615547267910053637314600682348987229891151382027889693512220598273757601036503371746335533190878148622102559573004690019650424476767095878139023640348104397872798571618270307592856867246672846564510683913019678935306636332517464192237792699246312572778815597446387001105126371487797446229956997518373216992686759838745925300117505422217527380620849888273549075211769708521408899747098004738507647633327779449314097398225932365073170884912846093271069926256926424690755489307380666234805142081862654779123062651546629743545645352287304253600956482704067799405722562853493473972922444983295630049982143526253492508131906259405630965190938395852168955943246278565569479844114005356095815260434285953254553291475738122580085018490779344254587142678431542006150730227926476620395167225128715148469840145713389224503893341434352147190663897192488123341308318154859217644793754296269317293236099382708417420893423728704371450633836604407279705475129771150155529582363378647839464798747807187520878752081146729453041910593409026921134215760979441252963326698967945222555240533430826634808946030703346333077419114368500719373637089973849406200674768788194582007435590540624302978613981353299881193722481629350868804197827579830390430569620807612184914108714598420557435208206364892450221731576106439113556391247172992361897848043482440953948469681201796984658512024293604589577967593977573204372782644595477306054690941552630141781426735069139704057119653746785612611670206993499075021448218543565009134938996769267807533603829395300040712169719585367450056857027016272188912034610849601665822390345982677427363296802206279105227831737466588134937016732337793879735598629625151550491735352010872507703765062159461791507124124032038359749816437515940916117136729852612366477161580822659234403827191203711254684305484378702013486817201063079567251319613715064785644793100594562690979416374830105879123524131213028300795174781995122632395964624711950921334164994232269445255575082241507222444518352494209044955103512802083840389095851558591213338878190372552700549733072888159184313781018061163311760974630953625667220095320801410970450479662857121315095522098990977918172517419960944944918184744414615544272458794209164284041991594212610836259398263495420482154378092535731047599345276925192302364853265900018837802886790617764659752030858364699972417109878227166418738659858411905096340353913815323885508530097257712743534286582480485288682124159904607820134445770678359256145972964220089577909824913352152960564477703146542487110082418082143580860279334233383541491091181828592454984530239535411784985691593090028038252667420456428349799240585720355123961081519927249648617956830062190065915599838223092981490649143386033456482723884958375315771883911827143406981305734648545684753637856425007854249526549625717869429713042675883005537298324258276436004490892802411910934947900442020654631522884109306163001231173778912592038197918744292253816812873319019782778604100659944794525829400002148995882355278460535812696370326328386441727411859014848243147719345631276212589604458491188655051226726805389413555987607845219200467579942314178949790408076702412869044744038655810472905605500468732247951339718194826678657113844159205069733825682523708252071205042970943763259929830662690873396538294715998289855694981889908293999165941128503797089366224277479177266831327301883596976203337810553275334536233158914875531296327323798065304278557355639417450232376843213015624908626704459860480239731332898173370537270526296248183063814178465400541342947390665420900324176819313545450523220821303577456949542474065765162439711178175084234790993193344309615652324789140003837663953779973776122010849836694234517868613971916920735564879964563363373740844114460263258321906871301408626368320624813197099514504751421462469451271649076893012469669336784292281880560027832616819469328013117947268597159269990163438706310522459721367709683900174879521929332292118583694469218606873564002465491677966250918057636155462058283935920800481323668530658108512073278307931605696028696535980983746484994263978917859694001658805226333415585818236153058503399667331827497613864924627236373467757452085579906208471323506212108513078724717691656000648162158047535300063110810441022171290725432425908747840111369857905500751850496479255294785147163537441459335721490656478370097592376510127682712770326591881332306826949035327781542809084465051906956785417390836469536243541113268384290784302274986943405826381830319866192502474544526479126972172449188708378415710632418180790101107100176554547072465913970950310616560730085706687639833916332215002499552256381851975387072754207313157845064112579359883326368748217430980314489846372796792808006034963110075561052578722319865863331500125659671023892833618710672049627965848642869306207249012883543400069322402076389395474120573803597962556464136759853143838126697765616600999089274660914527952640950296918385349271559208102934714407712002605687455112279256970630590664246935519768252648689622117976813650799940718849619595045714203152271412302409250848142009309003694507652263023991181604069590429290280404982153836451547932106578199620873185484715057997734838864016072662860911537920527973605699802995761481166935715495274605641043824439958876819320780436649529845228387332255185902396112847229881046936558776772162035285297088206941084999957054446479770745734027316156703496916276735800180436447654293728685025563162994149124313980001139689914522354352049356877607963759648240569261884854415389688897520199700777568154247394007233657672346721556020811568432894453646920409901066283015532724392407670633670276320677864774549531935296965204707875356956103349279427149876082011814998533799304844584532424576269963686188205970436206780628688457179626835341351801084553652406638697329419459000545004418015993617970611448842314808485671633880191151905587333606729149189107410680973709455593822709724922762585796166593240844251089453364043885395878570486986781626758244391521104304829134425015996930721917908272844269853896264721056007414852566990449396429685757305364250113237215060272786296271791175986123442147658775393198985627525952988109400906691111787749321001336140054178174983716956022282324454495941815169908178930614545989297924191183069519883212130680390611766771768360445654995612467941075500010124324502785564731118918969311884809865535280793188433801446934342601371517217710080733086164736302706060382567185995384341220601589699211381039407617064655225021896437940140498977238700414652323585604531050288985072797427768067910799798207125593495646439067818796475086424231312072143982216096566320011202930503291625296525286715899369946705629445309452530053217276585835514436215034686538730775045036208006248958202073832316786281058752438404045924506713124466579256242554376812769178682112440046876054001617228736883559867692468736835690286376881382247462565243522915509477585044675405251944599426069038855837541402748881734951360612700303352474386906604316060463502254808459035497165395144849190715445518237267848404793855057791396576003459033119130767628645036155797004555170478536684465661655469713442848978114172658543606540323581458898568231218438757244276726824840295918678250836457394059181123440142158652100123897757779367959618900589921731916510616357379846765612563127517791199042985656564055179693692344188055201452177503088078461023952096059643732209937657822823466185862840662437049507519347025540979960397541493408485085489645055739399863713099084842574540779662370670094443044471364955523620596235399535750427608568142472892737712100521713387668661011576944516365814762138516976925223508260909662465420416240100342493332910923028899382552841525014885288030050080313267363458911760628577901404005792880999920956638853758994656465512582581525561435223579861661438272505099113056024119323358277582128416379259473040460873500920879929844793990502278308621763202782946206573654034160926975167977480301355952090530126289152993030432192766905856407542371958610195152089590569085159489479270486209079485966361823409039856718477588115490965749631969332493195721853934785160070267850731632772085420468258295266671567966129402462207831141963908960478642138464266806039566913738428048114569244967408704614612413618108642287971007417397899165784732778980762621503530226871582198104624166864319059903646332219414437306941038381179618352144499026143425204100263775000873966965609882849633124789423771342205047156535760659180125239386508539445491578242878972618645400180432180368806565434466383640344434428283557785088019963894417468126505554295877291421867974190790235883149017722999046281974879025351118924233554821840948219477823708665826551673341108427032713127233629412667108447272797256711554192093298480673367724338003305279305097096516410679024354373686070040466046122104656615271460595314208200051222855655085424350425968354919361084282144257815840396167274998176588257671929000262181520592027001252452100627763156799789427404897693261756930846156968697461349002819243643630950993658233253378022528909822758557993365102766142951650877657317727152225121437704849093355188655642298169609061641625767811388739118899294103182421978662474189015588236997177678716991711387622763791762530889806070371172408060827402167397217549417221829479289730369018818236484708768696764647963376217039962863567156969884006441899498313940144066979848161336175378795067196904691312468311187234037835030716884118205133483677664497050165632685821622843059617772963326100024611739838893733893094436533680109177294627118117830737444266030154876754471878671387586651052323299724336063451358378576607777825302583742026908326622643190372542871062949175662184301232899421091026920188142772691701669527151831353966548987642598664641780449008700802444055208457000774604837043470600901721778593422604665520640660184622138932657094697853179203601600729267261469300127114312902225686324649431792014779016648997259278629015922048900031656816424283949541856590842399733239047006827268017643939339395874479957364218814718830714731427943382884481457657403342234534736278225294234550040811116102137423785214990783375841064502915858810760615551522463671180895655969937674937837431663751972040545192330717037966029373583663608661071862441968623768322849699971390604197770463138903723088119979830729374120769953943975802665586644687488326576800866362477521448392561555624463005180025811831822051485518065332883088734108828333884213961497209430351318987313282525497680233052010480046316722984381143388880031791836509818912467503298187081023979106171133812669091043646830056823485127364297445706151821492709547956105612972558504473819785542082281567531688643785054800821679090626719595095120238683932150856236198521912332318483612728031444310281946863061660220348295718684404434950816757542734560320812551799689384173529093613656585519728837403719853556633655627472978738860368988671390012309280573817102469883784012497142618202622651794343124373518544660261072223853351512010646415843682258466290655069994482322534021298163859845078122163004338547768303586785973274357041000808762002435943509804649736758296643116212167102754987461478502157944386556118967813281291318808963278327594860702708915423632331622909949737557156979461150111829564909079158600869632475171191859502796300934695130592536941622817139753087463196122553080353086654611310700497821520740400864611724031713710764188653297072965498074774374241586169332507793142165006544402791879443222468890559370779050472230392602085072978874817251734243578960545261641040915096919649778061928596027959780347085247317831227662309049105562875816111915743332484586954273313586069655989000224003326923260967443816273008871379615643122340871700029878223352144393712263033839461206331980878206277010100318166477875012189008813666542908077744087147122322029888180646033864328903285834326107980209738968559606519406763032211396766047229770732922567089083214179122163167734369931109229577089783653247088443340089993306685643485900432602349856521958239396341616269877194814114818202709429549936400425784243950454528250913055490496017636745697585252284849377362644691256116382216857581266432485506616741540215542944438868550147344525445571184106072774559152356427271325152101431183595747005419724081541405814144005625090940033160758949278055444782757918477607392853050730088961853299370564387188801153473947208500761966410925579144241913667655338700079281729208531051257990089989873907831393567317535313424265377353743519615261966757459926447513711309355909561861355850119530162665677098779542691094708372109526335024811335809394265852836854585737511934902265897403284723209119697340523464542103822115789391097878404951718043734159824342512772052394457592772087621255403617462112575415991106445733948340333942172940390220872296472796581473343507624239446956343536853109229627525998205852972273986531899760668669902928425983446833385454245603104886940909702005754007907136086339066373014575770102558616554200963412131473105931900249240740094286449670895529166359577282700708365028647560304686625576798483888446953966064527065393509586275137380197970638897913500420787673111240061633575667470619107315126758815508604128300883882991069858858766231718038841074576309420352295140426270918849298583650144265699574054684432367269942654330388690361826054668678570400400031701978852976419950024488613047959036021606669495934959117695223928868412092708942856386750562755259943161473110706665274517489935617501893972692240429596649606394237305023007457320170999920230043584510227656393346016532491372467868231854989424878166731068260899059532811572088618821561953571022683160747283100612120234742176409772707415332624526963993646800087414682856624378204430664135006612869580258282594068260254566814475201076405596277917667671761928579030784826927416933651677905588052052924829177979866063896789420056805201179553540795032126163183682719044425779623306876605984711044768069745605021558304564370413273609963228240872072846109233405968963280046530850330154527557897678789715426666707414258411689496906590036794534137010907009576565345296923628045614741585429310836389708636392016161729246723059172528298657859166407845846837476627249313895030631431718318287627253463713716660517534628475606743980607280381613382408263547245836320973535616796036957105175726624470747690281086094622745427435483566363386518044561166882972424771602229024962074255144063491302237633349943426656288453147585493937127420438970405086438634341916614483391662999763701142345352552589166765114567398525878826080498323043083328950266718033240759371593535330482746260743490360870542969260864691415129855160304038835305732474779099503084110913636395505081631251550786504018061494162734736056086611287710988014694712797588170164777481772748349650366534771190443584839780678186466290949865303192328925055864153578338439858722158706297483738328003035874084642186125844604880267444643474879581457410038745814436055855730997480893924214038664352370235868837069203431425254699571882802098070150244862817914710588719529012287486016290075212617201336007424597418044809445438875364360896238911706245025842791046690978117854950041852359643357847064779505186249245148105297701085783114632167419608583726337319872762604430662365336466996223351542082287387815593335639420214280947503712203726826828636132024007392797907151159578773039758161387853650334676525928600702193428719774171529566607557014021141992522404273298024004585925363461452620119542659195830937541070776788283833886220471070924953000726799362171254194528078564924052041016080151717774980378561163494137251346307739301890547164281074509481140027027301411219981907892650470151033330523898261663850383603857375734065210111198468934648607032686029474744156623311585001245416472671476082371302186450027285244871369607937061657243069170769861154437244219710669422558024381089786758392872680385868661039733022078913994557164992302145150481276958408270561600347277645646632200634291785862572652260255036867402988538181733895807457377163902321438304734719955575810114913506655324920570701486157681621044799502986445854248843235617831820124460593413765327289281983164508802585020549574206179180701760482601228041798323109850637504134760325988546873740887057789443437182177478518294589251880446323818453299480494134949245908059844167566004523492750474852139467551674152422933464611875102519898029987520549418386978471188815162282451444508658278078164041495450853916305750673319850078645159123369799687932365968474280516445734499297458498831276850867740605981362641414902322566647583552424331928391053621631380005060319628005961248636392902779774755082615131762068989745383413801033285274774579315143695023710138646998842425681543838625904892799695571341865505318744713653871083744206938984541232111601691825829642257839068735763766143830246437187558548076748834921876943872871214932273130925591462568493805012294141062285902113814110155338295451068273513079306434775850901425371771422083056407268866461805513655463789420745914344292529652958841010642396274948417459461340787494361110005579555336973543085615146915091596804016570496698299457463405859421376526069958636663145527456355470854879499247281727750476035450163414995032827363124273430580131660981773802774381604058204018115105786714816656849603244528117449844782285590950321713980321013411831516595319138441049900626809741752637112710041819914396600951753136749272701372387495740205521974510807007449939752141709349990622192222086325285969933922218110842045998741922517604191444131534693123414159698273232490805366528961302266605781956685538631706034241031877972618395197238907651274819266797485073317579862620914526474657306085647955422593245356187597275007953417244059019391418304461873363139478351828797408585132322929248983979390083393549463597917203169311483620847559914451566739248316859591775238442178323078942602359131838323326831613400781006974469925637986184115200732996995037719481203536854178091758549963799223628898447892463732936217825304940161417110458865546389709502328841242393912964939843374216109325255458680683489849933617392651466052929003197749744608395891174135281038601933827902599485360744072312217404205890661560930524730209485023870333637931548189877395488751580988330301027388612259217620942436610680818677559022406564091373889310000993742180145509502555768181297042339525388471809580010841075689666771149991507193457774132326877117204692300582267396885505755751223501620684839192884998114999748763511470826283853700050304996565835858882408624365045799399370662753090788372221084785292495366055072839359763939434834740046220103725722156837537705943554011517524228089426750883584874415549857381418470517565686263331225199942496894831824505885918598547045450284441783748121707130748338013480498064354622074900391130606069798242466399677362479861384081166001317901705468699349943099441568205812559648151344047538123232628916284926570191232217067996799035384364400017067230869688261036929151006257176349452427238579500070389805557524139830053803166956213111469785479878244796470612994129617755975564995570575562047091960813008890889936612387081502745081792163064706662896464190135018275666416060546776365811305748987181410494570223596156309824823831023792634087973159799635563784088601195559828482055941768944417968557922118218048036150133579623841705003998349793283850193442143170347201315285239556340099974325560289933903577854886614366398987503559651280668284623705431451830198495312530433703031042132199826580489409645528324012705794183245287520878473466120957867153576980743019869807886062802206518687753800154567260182001160145772527088982751426179194817529520871042144356965023973782733487844668640437543326570396433760978788291800948689783198017359184444085978939100763405246252831094079287910174434599088340260832897037936997605289893628525471881080557457282678508204010840499014420255127681567382832729552656105334876124215911584880319324217792705382303448456719414749315134877430103149855817505252021571773577321686482546462421299538854551435176137388000409117692452212276318199880543932872135524325134462474253168974036392778556401334429597749227023860325516489008770434369719870127231569312154262829735107609094371923273266078345774030536269467226574825710939097774035194409359897237043157940971698956176011686266762616212669572769708923141624915758000819514084833092547651599818307944172639486168701457041493994040879498461101257194080120344224373435069400664503753469593298082888391729061921130287937756453067687573717266756111160187705085209821982283831683021936715361652822713685398854582752709497525758596190437702289557743980610819672053481214291156291595462730621836216897349169577419846961891470753783960149017292984432982398084787970083289682238458537981720491604813668027511920367437303820357833269564860289032403142189617082656940285272161937653433960186218813065285333077136266061839903732856968406382888546130793945729314922826362797108975535667178273793646866241202245250848827210948294668007870630024294289528241732223821513014945455938608453141424957475573140321441613796171953668328311079557419586474308524703090538450455374142232396134767639949035937287723084433505839238926657075487677502021743624457095123008387995736264207080562605253025016260302399242199528034985517818499881924688644238269864758297975648307295212632619858314218445746817312383740885301282269344181309481419897365430863063573575114164699397650345589630896121112167911674291614451194412481965661895555610549817141013024425731900423727700738727007850495972655190316812592216280056640614673369491452143180275531525625339951339635623803901674989846071041493341048951279010759094190895069897652249774914022788425160509896980794084913398283873804036335608907032709853679116006383374568775888784804208119468503833557992777733793375084304487590991316339445276513342381363169707528014126991936508241673460104046493469031764260374047122845253905452683282900223800365239075619640370203917670348058344172132525320924211843491027337531581332439887761671210238173387351117345367625622273174095649629728905900962665601439444511489709372470299839085972823540353610942128482664213561024274918217772499406101501088159829311911314911488706165626952568768669288071161411976508119891679809489811205219521753903540866425208918036172144853422132137436838654328091334492555816117728909500162745984927197430967781078429434284395766173941184368217525393316719533081461922930219475871383555979069347483206466224711501934578801294142746450215137155315907684037879171181618778554248806718248295698167027659389415788942458487222249033144040170095458067659330266691367594744240692252582978616250920419274284477703487906859374588508512617624573092058083009814365412039981827397062296801725028644896732169128726843250429331352148051294805845079135328698752136783299021513037962834408081835193564984320208964557347894123913848563128288673041233497159438154901786008037148154504944383188884275436571687660471010439882376051258074214393935587272678151261058024194686348049694640783138399168407788137423406062371380714704570732107849957578465810242258676476944460731522489840061198250758620545197274860753973804814225558970653599993608394535785829363184900600059460129936572163935651705084714404868494526011699092525532798633110431466027666775026610158331037719642189539156985916961580301975013100088162638962289834361315633657804826049700919067751370037968585304862493165997880449741259984025837159397277328948837356121511846303325322365492394489315283311133361416624780010597278343014673722060458872893575129126608283650037791329830231246660792508688022697824225306592462715433741715768430699946712007593580955195507918139049690196859730366361052085588011870232455342569812647502326134837688246534692928590411734554492118393222529794736833904362806741173084341817124346075199584938304393005030761934230674796637922565703857374121903434471098015588518321302117355453500816693445962421927102932202369371127666315113647347534584744495476936236840453774542405774237435766670405077311364422654959042331922204646103628945207796021069458693755576719703543220014884802920559727327936697174090312271240051035741688856868444197758081884175366439192317183805751686396684253807621176673121858708101169650209773064152954831286531907424946333989968432180044403565333370643471204510446567742479104310599592560041630866242825135190207306994278043797832045891693907310723955020915769169931524487251094189067300595479837968218319556317166265218139455184521429831203906856341289076262040048627558555773054753849181386900712371444762146731785303975188335689584471572036817306070264373973156410609064526722497419582791806787137833919251128887086157441074071082362085939674862759660597080195293371242355943227716261310936332353032279963637106256805341880922895327353767230502615612420157764101015701871280372732722624462566119360542357470920909076341249360360616296517966568554030765300485216361470398132223261047748881784488467404517701355149722184522879672724134415769658482700650547359360495531390141418061882530422026259937650161341164238513165486529614519777210446807497028935742892515911202610886073924641037758939952350582003812779646909198682403231476524632584269051624951603285077864504130744709031990846022368517022706429182967594443701981279327212427112379754866660185507714798542567134331766880341261713221772950198893870403009324919163192630041657242319797312965547396582027256147624264684585010871457860283230230815848401023979633069609103208821063931899648501275899515542197293478555940102230000952377752318155838812423074406059325080280835928450947124865150813927098336712998041388171045398652165496117641001565489165147109316718396946207503303401928023442175986261115119376688861839760864253541934003401054434171746393012351743450975339736761791935328156015589940490451625166523701528223906918953435418127723240945995471036659580908952453782977174821908496316076446222869143844366894434867252762300921652850143300014556308931804804903209704416805191610649477642285170936826343284472061987077925142576512000656738470698125478050973844621283766816120942769908088033873065473940568356106342911605575319101887729964849587987413194583740954031061120981140628056059396589028817211659933363840666070697815401874578394390868064674631725450096487916300204722209836169863008163546327798759817864127751784279363246155518525975469732519789920333136650980912769220744170602352598752307763334692066551542288430966576861335120274467444163001300596704736148934203862638919919183385482375845957965875691662517767252715212173267373562458705328338347244233679150939948683939553134729836273097812940453114582439449567257316154266132810772689513754987839597177072433191596610702117420258863165171518439127151633282969765186877939321315780837273799486554788875110174558639314342350286665822295942647028754345554167079690266871032068045643866018041346885313640402703308263752882868771557961190364363991861999070054229576176752613386694609553182427812717431296294526427527806739670936001505390291488322165383338428550155621224915820318719707227791142704201183344669917251465996285596613085092178524030114820056622717708686722651696853967626436112833759254495684192575355891098348083196221946703265021055199913171490909864969850402727391193605139377861386185706089137433930246525477974149078391598474780340671609064196647358591840799718099445324170285464868330499049393106778482524552087629480444954896952750891966636342103425939959864424160965234232888325747661316356921630462233227276687725147371377442547833930966873947179862739239184862490335248607047461144038264008793358624221823944883293789895470109099346138320907134798513226225819420689831547294933424401973973803718526052217270020838086510958014254573846377321445177914597012645376969113123797710892373106301715713902662975876376785692483668864012401968046877987582921146154831100953180220420197163736044614098859743676782337321639250137943090184305794477503685806538239490241636732742379395497225876457314561190184506807096775764181842374539711542507270277179314384442167250515540664838567992651276359211862018168584318082948411438487824468724880601323549797811117246161072875681631559326215929221195756397999521486798970727346062939880534228607495301668051090533599581244584240764969202778987349033211047820414718183768201904351515390908427657438080899906755612561967644674039970461825094286102756220510229652892837345805969277108270869153958114637962084841624198938521997283651863306440219507793018826512568809677880019226982508445889461638165728059487282161689857394925694762275171001750062679220529611289541279561550503932544764182122420478359497848999872024011942922032088737914629088432102051835116190211480624216426251907476993326773948040121431438849282105736475136428617762075436044742140085763309478809405307211456246414454870013113630882133855785833829699324996217887896087709907252942720383716381089683162688672247552657147937851183395949507512681202042361043399928124849102824036880844841485170211746634752436324480357242720328053493665504718074191287637506156486254521716593530889321158173257445087696544996191306450926655549938312998630498715318075616050937723016337919243996529733332595161881960943393209146340707083086384072812392799803120806903853826801499040567928745070036012477127049515038223056129467098425575430755887112572675798734941899509081842072818507621765846297391166504949543569054410284913222566201146177412664791066430320477899472787179703582187627083859230787900747946534118354271745173071659999096276230373886847571382821523316820588468465763221659253904045319397773350047787002244006564792878259674115496191658031532615108606673864641779029655320041464822270385638441569687797955399942294983059862121784136631171541688892676228812749114099109343585271521263027050609501520092949232544089038442125575329565245018893147525569468215249397632627873630291256875745907974042877630094763135993889915163197450752405649782463622912631232875688536606723912915961601019235189193073204162105716711193963656403654202716841387134889847497328518181055641471416848953094131415501797339113543978325752982592866056635049930009816020130886502136689319008924525171021249695417627003731046860910517694620199653741948393759930715090308911477463496940100793996707977367258878666926160595441371604864485679062196090818828668552673642278693687949568488987155783229944640102892114608007270540664127501216226225375164000030287318957313264057706642539555424868132979142874347795720381460752189019025094058150329017044569582181284256207630102197146764183721708780397571551127522217746364086988920047472485077846416926251983477705395688562444414370965206705141640977083635332174019499340810520441226266579604428813263877052500287381618717961847125913948434826463629183637291360199834807367417581183776484027646819004011775139543414646793654383504751358418785088701091038600611321971058607953683981626902600240721687395489848642630877218839378936679702384578902697686617709447150305480467570473409717003339429462979910844164675666508548192103612832251495841102750455544382132045844901685691462967909836572997464339330821718963983762905566270905739383851437796927831245627342309070783139617625712525727505995748451605120686597523395648711227121891955727138222698778662075357540462789464708772177422427460581475442785922206206274664166016988425968489824015795925357573764097608919239331501167552842464238940162049942706260466928851422854950346286833467480002717128549603093419605155381991983309586162755818510735566455724524063598707570437136112285904477874230315798342827684225227003377902893624906457781649459255012357689904472703582949522700267241338323718532796315056541387932066053371596724352558307714355288201255347724871544719828839500260975971042416339348313626715487206272142592640446810348559918761797212697269118993080721188728433047090858887093053695418773363671081212859881983781466931965031008630950484765066667169440417112308762980239325316828620283458268455421842527208773913939173218471327673281947251920676889924082012218392002480918266030738772448307519042690665665746623444412758773376347466346755054861824819702311574838165481678385642514836413742889825361559892739506129304939846355112343103171828321974137139450204797886093561031603881521427379095027385419424620464981995239322101210628578408167123400674722166294564135222755814367660465292722894829521806418009920952851253463445346692717712645668002838612738144557400692208361450995466339592308237226217631662658461815231787353559449233843697607574552086623553827368903837141918330911079758432561144412682243377003775289815351971681341921903492016378488992553407218034233425790098659571394980900474630550178025575728325694985359712020858973137366548338165158984610780805618306987380006737210930491954429288248002176821117888989078277878819373751638171801524629700234623126470982884908323444140056568920167681661950696831589924967400152867396103127752101550810951200303598416059624022279532299273763741908008194454906050563198251616893991350438276067508760056287985033607206384995014662273045256353094454558400711584526091513730905663882813730747543893507077815644654857137634812532792980445878240172982340037503175614236840791764916474759656976157497934820045477350298425098012843307805129450973380880979947601932881498652748908840528745690572215988458752493361996904324332350903089677780166609258614602434536009235865785860548867567269182244133834815288115895653989972426068757438320159291289683796499889784593278111470294903500269980715435060325292610517352263924589054436804671869738571012004545835277713885998489417014852090535629522706630655824518003913101153026172689679047189379928940410604948556964161614683186882441101078664243794789929322060765183349780850141313770840668667680078198351088382372613705401991690403955825960464219730943751061800178644501140531903928025857029158644356562360122853027681369891965506854543252597583084251869612319577542985548060921865396354666268852072676172700576605432937213629325670764500327705575936269325292757026463930960283878443942568269364581586701826131854901404059525357473166533322808635743918181848351071960216119473642304453757955408396503478628116721257483181718728077788785448009119659190999996049471111160824426472310959390030495763526939322022345735920115527464038076158770469230351687446941021168293880973544066585867764331084509010550871207296516334144149376377181450558443851540147381996767769122847970562785867808454913578282938361275563500123112647646673938170188402234269024362361781490817012897982580855449099679631509182502504943826520087612048350660578422128081295187474140496977481369806053375826343081329590098856157021498762792795464029334892456085452925596066839280784763861213039269909152231331601313755866690753993660260048764491555633705096998364742345235156379872704227196478637848699771006708414527735823108372782034366218862772012433953014025855678985612310924136871712177263162698658907085332198691578562268178015583644681172615830539057413414557594176315284211597098811884133324846514693624888540021993346888363835252812198218733759872007021505403062030464697307049073288208237678905756107503802166087296655086542911164925783519802530951869566165611938925072019257058849713057173439602770074664309426155884934466086621871716879094661527130722255307775385882811105457404567594045708752664897275408145414810654061262242410009221380259045577000546440786629301272725270145398007569674165122423627753982917772648026889124095111435170420563179205286430313428313168731903513618761448675267436278872798935146447856243034750184521281987295983373062848510160314781583925788731081123908544583556275057549529708411016897553351219971199590305434572616363999098434439881745724233756578709036652637560082526519097576860868123908844472620856099670740622182902298886058863898637821178042973215974376877680709535508205658081125752852913631039515103659721220713036513289536892113861896503674742579487676459689935644488791459392550869893986876220917112548793646284981583532530280410165654520861544468555010402033303152061430357279621641489378798302186845204528334198562452749694261730228072799821410273569146191029758498548004689884027112418499185845871701959200583574166469761353734606764765842915798562950486891579155475550651258223743378059479164286505706291451590835227025091533258132385906985354402832462890075404991962579822866800184793154687716450007088747801463243930781046410001781401893818910297922852731265564744537143849865371989161431270575408627280717214930658993696604061381122941443656551814138439742599777098626352829151560100491430223106315046809317161342336887458706109417320578639942462394464873980857043061781351832611678914992727040007343035880304984127266660506584457724553437120992589983427894959712198873932449662231842934970825986656843158416891712424817731923912670871943185586388450376751722890702474132423322156362296992171687436798280944929767206859810278528771566146798476741633294385491732960127228525208380933624050441321959905097379642089128628683280223080152997401810666551055455009673730973063160561592627502776989919231715555569096047005939236461130754012263927368706228982895476148119831474510162553294382783346560641112590236998048596746553361554312903521517329012564773585605615870438424999096363632526950046597599285511533356061599113512022267318134334531279778621170603632378278699161963824255372179956989765989491016440056907929880174244033674524961016809118173397563592324122247372796405870968577483877154304491951743282708343161724918325193806803579296345060281088533666202603215773821928421689893561881426060524922768352655859218429967354579658235491961532359983457546468015023108235465839985543624582834476226890346886090472933700984809632901806691072018704955478690858385008149744368602778188446363141974540679040527942947813608503473146166089011235373625834560466354490142249675839314490191390055209601880722320462625103044022964488506118203180537830902005668647192481887767664081192017058752127164961046541632704513907093855084236779891620951701480134239484857663846287509919590307392516217853074590361201012415646731380755296883200979194703727676922411647395111920011972005975724956458256838203329756904640015013027258146120218670636960774609071011101265243173949714957548954416860238067228740639583914452482694000693340392400592897664065698870418093310223988623007357668933990230032100124079906493574767998290920896784191174859674400690487018773070699820354303190854060879973983200651270650508536294885739463860408697774670040015720339189936162358860988047986502320952273317202379879426265415477651830819254129764266147008993213303570908695682102574067397335337012779447960816898450448516304045265666280890119781079679146224275790588232310258100792286177077442067515951739822364934180469084962333982424495516535335819652535987390463131635657891332306020360574542353372947815306835662918338193791158858084994487421206956676110902539538873681642164943347526220363802154677452124550885445411019386431545041679364187691895149955875341747499773061591360477766519021012089351759642923572601129327221617421630867719537632173707296045746034508856556884841629135331882029507612424200966163218444050914298631399173664136586349654439757119335933745854428445101069701212097043978132074098318210398701148872961588801977578591059416845635767073659445876754613955365094003029549236508601923799215661024101610790466623066440747144177590227918378579808549985747416081135841438807512955807986164866634304951572570860131569107241420734249698181501199625684571317058515858843623701093709508544078120068532991011522047629495599613781657349009851868534595297162908200534958128837334528844692751512151666571705941613022279170821498935627006374019695814848904661760670219564780755354613989485664511961404435992434338978481080766584497720378596764311599452725684730561184058439064528875048322263005555063885068278532344572204958288934500312451468532781364667244081706594619903391021403708892562852787091547478992714635947638696052647622492714964491120681671396167876340926320370166991045499273157018028126818867330581367015276777806457458071976949730109676253151572587325670574267187362462340865614820864998105463385843749517629351757222916472053975056937646841156925229125853913716367257736656598761750541364584524232411259895553507302135557491951074828502120258368803455525525830238071960222405681079854363007942958012069518685504736477930736555231095451335509708747284380667312753983215224333402690425985069922740352774126502569391275060478263554330571522895875409957627952654009898758414746274005593468876993652225356300947781563358444974915939157757050594677836895907786043546210913694372009683560674081857025343301587266355783023148997494825502355048866461245432266705108958686017433204626863210593436731359957019055330772418607291253642075162670278801963142640681177624944436470588999615956680390269291625097839391792827509211292954896373336956051252778999853554708101556850644461861955569279355604068857985280357938806425664457310605640836796816137933099533666018130568260451843891719109305911929204339969297331124033300469505792319287393201488466255793642963579460334334472800092316711248942547348435150404897710801143631017030380646070725885440472746214436745618109244552330138578798164741078774766068189673234914699591652399362201981880419485412037783294078879337323938669270377924113916596919460745935573698313799285001645144601270775881177920728256825043134366705136849212239855262042119652790387410561579104399634058132341717729399270062733666746975935627500087747791337163553348854567890017380340426404944653913451447960935403043982207493708744299764210869854225104038922007526158568534304994893188224336775284153560296061781084904554740376339465764466846891502918121558389579816612844112254525253832911669931151132740144568964402693629545831951169516840448732303732873614037848059834916111390681913198326498716111608375951170790108271433170181129030467260338819071304307678782779843898236931200336844203507038653244066818843779397516122556579643113647104133835796085319751333687705639438066005852553402770311190633910948079156169986434432517559404831511872886371254516065812747910309124262275887589430554770790384245021639034771493919786841301678638169216637063178104439732782951130903486675842808001642174119932987870294654413181454726169201280381019934385535398508746733342349207165828745918738758209638319929310644718429531958193281126403525729634161683549704372635205141199513413945016874423481541565333697684445470654688272432148858578979191185958209753963707484807064788151694076723389395135763555297398011417079417869253000270805355051493087785647872341712282235484171294366664911850423680126208488714908690103428070218245599745454813841145197845183714920695583014193837336428774417092728834867110818703268842121350112032526961254898684474698580988923139162547704991246606230225351857100014916750541203991824067347244566445795680299989455380417057884893326441093523976186108476988950209175133037583785574223908435584219543454937405557136831716878103073125166913794320770747675829840284096499731051103209724527455533509523514893570635139629458552682466099108207361009019021534083848292709164174378915359888872861856988640935055422286722205333175255333472369840492503491633973840418173709973084069903202094185735815192447894627623314504045319457392062750591310816524522907084903402023924406967780831366713102085081709851668457302125575760782170424198541602994232298068920444983871885328476482465180554970319198622148719032273068765378793548294881422952343120111392695806847419358419570471460031522679614086766054335337474247116149290621633040629552883953123193172191943649083706579883255537172753496467298648539270711043470459010141502202354017150708073096005840495835178085422905251106870808934197350705807158195503100175045945052879440399128411049325930834214015440033201583148654982183034922311137594516559937934411726867685703073564011015007857987400609434015459740311975602645926829758383545121415116674358526119673892825493436194501855427924062689413658785696495141732614394299564078009972968212323104423912999629792835059275138689852726586336399736026811247169671770269559981328171423562990196333026347540041242550221921041738590969514269632228637510285921578599124479080831584609747169884458400761636863531304811382493977629167224964338254797346052567892970683716459510276576795969789231448231482926777672866763257250364001414708373104876757523902011382319759331144548214626119428978302342813280311392654844515130339949934129241891220703684769413033164095442444783624890479964155625102268258002677701656663003115427799782606208171080363292740165897668707469792192132710686052266135392076599492743467027356747849489695872550696489306462310825420766239671968058573192500087831192459512783835382254840422536762718835198984341256475000186000899512237477613846497769027756503031484552672863576328950027793827740011250429721722982352525494568453161994054423644514849390661155457228181681849219995480605291461362465616149272501137008851596945714108873279569506543181771359943385012638633798486076899933533141261737737779001741330958110817042811523572725164902338552366439677990148729478003012797328975222525373274041677476373321926376115541151605865841997394003561793452397653449431395502102640267849021315632585708782888024867772190697123556304293440021946216097646287078884876533028360293225082059842093767241018442265549529566602663771214451970881911210652636201294201826619719874042260880653057122527716772404672368009717436352774407977766208389918577570606703456961490249677045133297610582383721757238760322989575260019846642758739999590215705151075273061279284235619677157926581646260367104016141088577843734008430477320412507957494336217338987672137008804331015261978355295109660103661460712684620386777758912913963120633837486368706839738056891258915537372679772506247617366949094095224429306484689841225694489609130823888868310164226911911324684019824622790872499673988548995625671195574100804490099351648194594282668123567367739335731954721736697119591879234412078448304902473626296918161595088657057525061540597357614028336804461506487079356121396244566922654382159739006501956633001407587435268673337916687346591147146162497142792804106632818860766493469272930399777495153677334205586787972393730834779884761202650960272052244412888026891118906423296361998332099547208911125907598317487833612790973767180675040641122942820418203929585483836440361648506086876279396574894878185091190302414255991599076105214655680253450961135238536026179303630921747734151141943838975438871442755998708179883650897918618717700209231889916798522155069440238096305848338723713292746031976065338526644790806506240008824968073264021625401226022177021895722283485100512818533892781137504416491695317879659607531196836701840171351764390729193069451156543857897517513900733563869020470388389838929251418901998060073690870568873368185289462912679180281522831688780092606353675064011558193059984768742567615525863432346721397187178351893678131785014232013519554416539588086262876100322178888490432366005986886101795011126456766579033975031075924529217045526740451724940998581461796773377058782495277099315071637071894660855405557093851477172684400164623750726142272290554178132682013172958475666045627499403580382563566022732929348131122348418083447147565360711557744510377233128879389788501226373368136860925565512517713452843347397692608928820528894000965276996185475312617587009945262274320632606597723629738664595241098976998028922913910221037575201831228742091831722659710981077830548349418209954475674932610777247822645110610686117596204344350990225254535724806776718591395417991553875709628833981056819380398704044260248223340007461795215691182093145262865127731188907516377504653980075709219812342192921100893762130474191997694818669851081760413279824627022042651660634226897492255270645463230899699984084169818989729459878151352810659689066069297023038523497064142442372155169067558444473262578147749991280951106433205138070882653118985882457038493401607065324324456907510342094382710979645839191045958138205458482530371496077612538347923736100713461785430056615118099463649849819009276521225601809583744798740594476650121786115516314571734557141610583762385647846637521152681260172008811519368941591672781251516166238348366895805472211035225824631002797636536285532459299963543719520801439871595366820828244602955368058366269090639579636630040107118093519840253888703533950106146382327831639797412031505754685606592474907344109578483009032164291836396325458522238216510107185223530580409331854866294387403262204942228242694180260556605143545144582530191209435022558875547904501710601619510993394116357819493731920257958235446167036511545011705245730896084927321639209890868392286472915688296119656715405893306603489550394844480221113005825698307457624779688850138141515207518085152395560116512504827868302340369129064833780909061729703367160621659784738691034340106443587639630055723478521781750195247080182268999917460339693053632932214505770528068479414825990883419723209732698396591336725739095766971102168092892723143061117588321905576056362118511733730713148961294621030965847089045954195208486042839884143178160903752266727300574800046725336702019895119467427351911730596847214111915100245395734470337884127073603458693558794239378536883314895609850862774700668037117644996142046850288487485457392329618695611856291679651063352805900305874305076788982069206385980212572328916926367646946650617664216954985034416403916753377236724438361268066789066966821426160362636101339227182588812040056461079422197277857026199627756394274897636729114430985838581426019727799396380173131172641834098612912456216167712177162188508435902485232056440756293792935156584987749211246628417401856532087108112623085834041393747490240837000644439787120647587064433053873819565394522983275818516300193864850585880932112650353426865952086452063728593068151278987249409560790229508909589921174641094857271761595366935605413024091196129812688329710163602694137496336558359979956585130058024016498903377562523602114445025407043006302548536046568272996400810230889827101014527182427255212857597743794881656064912372781557359177421407303691833333345021930640159550544678095194994603799984840402112472218490704857500089197308970473410518261956371334313854781576200425906305981122448076031129036293929494110757875271693841109441758391044511308609620486869397673591569160649089653065471136155472932184328775246786895236472055446151868386664365549662693125771269623409833313512999612863838318097130104655619200631514926322362604502295752893282292355309023700568327445731449372442522527040166138060713894378106917367466173167448509610110774044806947478106050257030794634005075997300664689636758105685960929994746788622359334750145277228267732291842721579019480338228356814724473962663852022419249229636677067996838241846974436685254403760668353880231431563289769613333228654365009975812370108105669327151277861686353245652960300303483797930579478998127635260848623580504332985600549302347463824715789075435562403429246941140153771676687270554303905901807815656156323313626143732523984023266783185291717599639711907682308649930840865132481045953940766211432265371160181678575704180354674014795787540285578423545379047060197714927909336344092211688596634241058242449678934540992062896759436830752907183925323520003615681488068028197271777999068030086461469945581124417586080792623809508381655399081576380727680120595569098447714703783205533156732649837496017257754450799132590749342684195139556011829963665808488806294173889782101395048004189876838695996346250092993698394395857750097603702829916376599390245907530394880386951356088852694932441579393993796688142160547180369244712064468310039936542228323006863892275431575748238086163488132395965083946376759976226261751009123405164371977458133812523947265061149372829300298262909624457583637376489292687078028088593236202299215628432063087126134145530322902545552674068655933257912791548552441572806741521625757353977205553094350125393889999063711261058495059842126034646080783526467891294422790632296927047101020135364965163871371597549257377948179488113483752364478369929518158546429369400080708975208713409705323984921196607290620201055843410467522893799065465024150996124994308597977289026553522520324828116214003735737107057676136756173518614075497884112540268160165175598663473345269518461429127616457069012395401488734020717323892334632508380155064279575926560809836214071684082038610129049238227794660400934143859035646698100706010635370413259954590772506414123899310400841230192349764460868070637170194575174823162475507189344202027156678045350395076594501473930072305113450560490785563803863364429135066457191611109769422994244455797012203514385514892850489913821188109912868266510823819813031119761097941297183591762992236575635860906430797195521969904290181962073891435763400867318680125932797393360290410438111630122310141783244617916580892229586663778623567530813766453779410886955088278021029910050274085340606765915912089102618908203547175536218283655279790810953544127802650057594473394441208853535140867058566647819698571405091414660139614777304158502443367913205427198862918236612080099640268827864834244347204826255437454768380060238081702572490725901923612850484773687101352208667872685063231683286436166241299069332020485716583925656772511337356601313030151684393544295329165419899532805803204432753126741622999172216676438364535564091176882015930021543666316419052296959958472566104701017911454475738278071232791552038226208086616817758597453205799354883131172545989347546131167515914558474242067868291771012646271058986258432420962745820272295450081548410617012400085144481747937550919346193281638542167874031743648700806634730965919007134492778248698556012427182352132560959583933641375943886799423769071036663298220986323924526063470787220861285513113036258323979946256040759738826006246343912380747723684455327480219164849993744851213244517449240566275854527741601103061827609648301398495440610765058697336289057867988130086038637360515382958684022988748451226977011576093332853422985334938423770177087419712163420682947560072536835269568661431236215268165785485014686320559150470526601370737340008912027417572784679132857035529661723814539896175611448849178341473353390472109644499558092026664446539399737645571012836683508156756441307963753054582693049633152357294538688914730407350333097389726953490305912899008931294676302430441195022607775401870737337242645402918222041686903421435731588702799935705033693792908081108851786299128990070283582565298771093241454187941344204311831655831980910359672141952554000497800588700421552757704592263364067583344723784092004677454930648154270609711387142609204975411489659234990312839545432786172509230936068249877327558003762059014274331427651169929800025492511780116204488501009673166277952765489880045578751388925753784258662523069832595968129301892859486951515259998720058040072969427687126385619941080441055499487085929438114267260589249123375506327867186999804543944530133930721041825267751979465123466956057071023062610780387187646505671354300417031740109122588717413512735802210933966203074872730222216593376640813109300607100447990141776747925480911118947975989876419882322266478503444278444865149216072181035097316914051044778127944686831322300242239345685935464690842335167121228717174972436531844727349236459279424064037054330006437156368789695047814525625411596473753135965468801184422232667453076996368687657617336032297262949490344443896193877220998597848280126453794273125190592262756440776726834199838948986150897245523352062271272912739142609175493816390322157055128871735913520498195553032051559703501063830332659960722367927671068865723547645875118416639048205656872226185456424134887089467013117177871069396396094264409708578146716181812979806421793477032241724583419825489679303862990320249637135519136176413985342915749355847647857913404169132674774238812818054975979443029226889136236512177788483392795439725897371041980992385652301586653270353502754697898900440195205183563951494789255812965911494555136202090912489671367357892638461228574874584692968257053772146326176302562312488139087915400731196172317628633780391107714158415190987172338143042796586304121149139088599102619099426887358837387206662569688729926108908818485225664976165662628207094693257044586735567439469453969698969675188052735795867373483194143514832064767526198956408132694692828657103683526002680542695186461722399012046248526350462591562809641815604694980347439569979645226867935953887209577806569061380231931343990360027488442334392527724612137510612554803967306342874849884533033831329169632657833859820423221346404813132357668455151975603020740581920375837622612282700878566167623997177388531228549780521945749745828998885878879842628290296174585334399420261233550165846659748949150511934603828386357425872789483501132139831317352002650171398050486572554247132756660588801702204081257032474774824841540546060166626679838240964307663932581696059355161119695040698343487468300649823276717695687790321167032900152583791964450830545785523186604913687287045969124839742840577908807498460531978812009527688640108342686379784338342461568942823366298854515188687423766038309436921602102160850907873126272890164917058315753487005504109146488181393766053020800773305415207408171097609584855667626972023800343095064065190812064743142473982665126142998332852368463976647455461904062240642511257394687991515848069003287578918793429244826484395891775444119775093360511248980437878979074288773702156681173554760656185187557887606073329325292025413935427041149309500742728770353934078146186524389312221021308288245680944642469145714174255475404763749530031910915003054399648739776272833959510309544691546666596408466179462512371882597062627090125909879150196991497133104992354455454429530552826254907805199810847628609804202165037249287388578946058979457533683760598030179773357338492624785638946101409022357249396645434049349487008256242189584129281607687986764893242846467117432089662535254366913073069028825367783969635938823626451629174058256842203505889255599266191703632651718267775591054538716753158150754871975211998668393947719001994035874208117500062396770801107650892911848557708592540830051562202727210299932148909524613308540979756091711504586327234566240566228953972337040601977066790777262711705870631553916222186314002166698002637984200017137360832341461763504475455275829106440103171422918994792368951524531485008248248931449464406094346205448984862667404225694709052282833632028330737757789065554920796989996832875700778283561626968067199295154524999739341579944730332771146154665623224637373607409657510311397253733356429681907750840628903831398964329337450416257359242389387663437316631881281985270688183488518168649002747965184545075147908423260340018109538205295738466871227886975753194908861881893646724459605692690799373688616168068729848358357270853409808551705990782954379288474538203902448973313154335207045377873511623052558294425646082084992151931001645295667864754314200648626171658581708614196195907404354929596678457125795449488329957176410945831782103115467148504499664201977156222242382051043883237344666476090224571183437944860581205030108601097173027051023268932923045950928265283028156697863343132433912392993292133203988444183171389946682081481766146054833796399249962431221963405374170331388956828007704544848283274227769829511021869479921418411551858941117619323979798760283420118956590496372476072019499265026141037034275742442766535613942293826297110293553978316332625878823315749172022690545195326757742133087462095687670803581377552745614395374622425045951218933504689470060381950160197804012044516003856402632091840667470636140783310319405542147046244318962022869538364356480134248647779091860869765545249196589157744541398675825950032887773902077599043946660036732911178111691693342759268685176611089832618457141327850554020372148383548998697077252556883721351099973788810229847571253449631573449091238694155311875329688596717255533130735114177749996110491047592820278204739621025466091409538885983397476374348701904067458521212409681049150136750045817421679887389502745607593355352071639239692393799149132783492753771270176331979698942989142725580906640710612847031484797657065661204755027555709882860390692561030129195217028464907177234757111003915806549095493329162532405819024914541728220136483771474352141988049266146603169318234107430204935284926587831632874074127613818609399762930313044016296286929688047471070300313093197853362191902875682638439901955652597740255059770443323284219383709011394855613548713963103214960751285939817177127383838220053482644326476931166113868808074811390174491135839349920524867237673898628185491809158473979197608231129937773387928666180924211986131295100260373880340217410854262276599492977205550077001613721792933126932459963056107313413009583147326612174384814495293252701780714665388068963493465638527957324148608924608704698498640857974666140178740602530872260471764755238493003836802424903398567317017477806296154790400032522068508111021123155862608226140937957155107369384256345193621529516893652596314103266868917467272197088227617035495362544257976507935327149905615357451954857448816135518078753088896726307347408770230066158595183923951964304843287990249059619984157121235825858346143646028319395468459946145440222421645126417234187390283503234059344879383190263062012074105538238990129419832773573516865360280514364101921007649929519909517911859369562121573753645339298338487876194374256658248438286978550380688316508143838470874568124356071650529852627854293013023198160175288719387031703473593055948697945908948862764479783165901308107875149500812573499481410623749898015342623858301386131611031844499642230937201245595753238657765648094627973791780512655515905899204882595752719002977712070461367187493892451602900986857607573977763844398208043136761151904592562394265805740727747873996003295181729610241157368193291925002621711652544340591395132869943769020668157890212002559436633273666118262258675503742852570132425437441424443995332671770183151167250833224790205364175227922699534059676647241827389336610092051352547388454506394294409576439116501835043064052124416649015870055944389116234488660213703335832809356839573373269362383320419939482902388758689993556780868053584005395950048825688502944240772035696679023494931376512430734785634711509639877564103956230174745041241167361814652987969469149460885475785540159714427132154583543003175803717732858521888479493578729511837043005968302383292644972710673072549693771457286426441852503372841558784467995614836094412991031290426843400357249954154088293740238745570037238871166529840705255195272415222356544679729414239928213775237480919850843576803981371574805882339098221065905651014480648869677550523919063182386743411684230052419317815799017399918213385097044725348368486288840911392436366478500421545309780093625005307705092901298687337769552685218271860786182919440545305040686847490408913464146942473525704817674723695756359653503669852780504686549867390588735522608976891425872659876853732119474606494126120901764261976817671173465311601392307236376480264072449432072344489605283047774192156035257162893057860901338935415066307045482895783581564382945575495728532267444145643340761529669160321150912325497633620080146863972826608960928007818285159200293094644960400366222210254413664746867216570207252703726476478260913117456930978674240480989671644120580251079402905817504565414027417063868639387006301909234434636004516081394510563652623649207638776292479657975146029686913547194829318858677391769579663211074594188579640277559386492352828013278755077865654261489867224624271772356721771651104671187667606605667951506459349570832473223798423039953467906464305340827016169213985168876078360801823974891831321441149926309150362088185186597560938969612543003204387015866320898006552026109033128874247617020060232247392495147945792594740173444228632604046551136582306731108691770127038287857327987866334874371549236798482431964827372023715724026975207724451911031588967801338821294775846806744272120655517184521912792021564018452900237797275714409247162602303926832818941284038588842122444261923398393065039325829435479567601951920948384098003921052383250327442949042714380120633887199021725834283197572654081594792018292641763475891743991064730743380564329089368147079207720071642289923689726969010965447695269837215730245322908619601744757049787570581165421323962337697437808403793096273791813183979464579077174845233424630186366987689940954486105508818269348199599236712393535580543766943302147675497917283340799296197667011892264673272359339602843027638370573648684279331308989350894657138679799719037081120987579394421271171470358637655209626454290233335829527390538478719103877095426643690264518168794461911235035237095979702293121394753520305689355001628547992542945219798484252031013974518702646006216875205227613719505509016395963832105003396347663041339332626783389567281633338457360396595289128733574807674165151661610690499232449077130639075376526642723746971906968284438654868359216786754745796662555226696577874478200500292128462273463001675734859827554551386325753612605773142507279100936732005546310949657583954199158862082057323022523984852861164708199926046718132877339991697410659852857530891623480939619924357151759611437274936474030058203424742222103064897118920985945251205093515802648037659185515230269617696872457199513118805750215218892065937844072821143967140094544319223032535414811812178809560743014776792719080143358453433767543067495918884081029571941428846356491220463144479964741050270797513456856715723471203367792862555846644201906595726910433702793439472182481521491550805214897281376760116921365052016872679308227155714205782185353669240149067979024658457379886108785466856378793907195450405896502181067305444793653357771951575201663897627324115853757198646605822810532216235226386452351118291234044443233977480061872700324980863537073760369594078161331336468580409472770892610260043610017003391267371490253997311196088894540862281097960682962531797374632560396393184429694526188335066616533115035510270466366394436579903861748281832685129825325221520104118409937573238594801104658726991641083786558881788573169866381476190662184830894296858747511828823796018827819490735889282806218185318402343034339658484274185799086904872710707458000724374748631722808318772328618168200799437048085920141903265777059200495382107293958329540871187482553679474946438387902357060232575843104716475189756925001752090145964731047675434713618884677041218662478851825758922618581066090065838136431256109288150130115844125419863143179180803861487946008257815271814618645602087151631639187406742878943804450699045638640779802899525589384273672796840363765199355205342842282131843076389686319523651924040008423106402009230620138382180130782684611645515430252446202238742016943916037550330491248318947461239164668514588503056877396993356012266592083699152980271992432216521834058317695904126430741243760349586744983935455033886830195045666754785975638413331073798532886421591024094884500480877319851965746506878142340020233626497969250050656926000075939774875503717241038297471234413245305069332952547027972441110601773624483231571498769245131171218605165829602881490708846246325366476606045102987732231238070404612051039551691331954933128476342597047099762294917366184220151540553455720065196262523497945324243317508074818398717408692668058611246682221107343789649128504133727680002597958259571245010447247884924541175667697767583042683353340138828376715317666025634016141304531845697077331457658414867645691164757115304263308704690125290401614066707785038020926421636925022603296083929182263785661671161861903923632309317074246848568607487476592154270982469440746769239476061182634615639689319101028385443483096543315247091239816018550081542489298670764051686719175760614173232332748152177999632385336895894029956575977388205087624089232821103659414220171918324865658106959680083676576906068968496791041535679932917029342428771336411614879826867948115387000476139072142159261825405184947147769085692280174062150395489458035540321274394549180866786725633697646869583131228880661064891748390087634390984468271563332005351207823433827528787464823843801373514941556318545809684028720267868999463543771339924838258242965050100569175079454854212834161804828658272575198693802397268789483397571119257061785048254484305979391769365814095245216437839822301480524150358823057578184536535216753497041891347308830125684692420866547940645547505289339522678510406501915288997988189842074041705033856535247225847114019987458905663500927995093743674032225498698242678370139557244612728096686830647390870475060589533798541674959104393708869533234843518630312978983271936046283921415625688169451643628528761622964308963422474755468232411485799742314713310778756489391911489648822150774726101373529794422867549221064191855216757353909220287733887891876891092218596400988180872136999881560145872243591895841772822119517084049577760262570637877878639698626796671313677756136420245999310709770339414280779629154161531134774982298265859907705196438491506016137560629230865149971440948572710020473263748532036616523850451752597945671817660383520909734603449429778954839368898506330962764586810064056990401404294333122722754941429139134719688285363959249178196090256373702723903316701462297189578813375762213621361649790901992115423465339497667395867949462955651826193614663443716780915215947284954775802092575716122510363235957749591030160042340794431213467710064843978341098314656267008331881038832000460944675357239622978510011499640702350386738622751939305771180862864857329653748722485440873505445000584103891735067831046168937612874595357034493815576158925732127093081488239060225468700124908905668899095367818952760540198743591952862705699174767570664510172385177670560355393784684658508814165211155333414994825876659318721984056774363846667345718079508488757338787028569790509704768483508842638314290115648465396912373721146188902321451009990031313619457743401865842277637527993398807734886468502290416434123611695778084680205807705645440004102240167555974122659434466965369157863833012511518627669456185900281140021750762151319911580898984569086987639245224372651740428492602869714085334665184642555574497164281388077644269171039608398686860139274451554626298660700559774398094999204421759354964476747678923246992774938250073838820887764238003977138961538684226724725844179953176567654277556592416088214790870963254693832914381685922146231040814480520769855851845159967286453862980140371033616344283105322463777193456635721062024102741525607747138673844364928965952654364950642469249098395587509611387609271644904804982397094586504736248719298306080181033323071504602558574140181376293374948563668428163013132943960210560760324168710608632745942317722166420289405848399593680184899971126443075756072972666773489399445702178230739365907027209000985582022180455241543567125645565358648969767149111296508113017179381930028206784034896567322157573801582898957499284032105484733794227454241314491131158378823724892194491396803997961945860850658307983474556886780651290047498304364464673427596684998162515221752688208904975610744555632364963947729218017181458380514097619752533327371963713068378883279524381179239474580431228308536369833069011129304857170547824913000860028617676707020460959997568681672314382319870846765998415700729476842956418062608674977776902069090761845563912563081155157752100509901433694829881340555351445284477657391542018947569635020020008708436098366533828665535545415882699589109253208602778069452282933081274010312199090905997697565508041584989593611553396264068141339882241090120987771968365748077586369497288943746702320802199802986942542742588876932935843199698349417767779278110030386615450678605444548959824096164891837265968497599575329912872109876397104622637600898122709789944355690895324194749728688462046752389269364149051749339726078727582185817519740655278319663285272028957306381397717617108081112889913878806547203461476935294025453024873656762863861440006299830876288865825468448000262131654645678188819732628395918702957565664565506852997479283223652876442012809288899244797546575396833597172163636286710665641447707728356337122135223742338536242536381178639125624868317704625167591418347769310213335383129591294720628442376789503012050433942593697255066898622783429936842588440908013892296283012770132501871693662836809155519830454229177123816220090871165338690279013004470283324407285333512942591894320029183373989300146907399904694861044439207340547275101302558365155441730854551199003329608957454137350518807667300858974232620019731489899951128745147872180082686356462575245728630480569924324161567995077152433268435010408797645463895859247284822527608431628349198437834927359824630877795143769093011973582887521790180977281800441821033879913902195827908055096191337919215353845664893123103980403333167935311241201447195531605468343089591211741082646726524960036638586833239672838577382431924480866790754799589135855735857461685549902415323398099863084435076269386784193617868762117831011842054341093489479855132445789410877897298004483214621125748100600013552498406067009543538358511638683309586563380711277860347615169007579336768277172696243880803858100566256159446061818854653622685141533729147843016879811769385796902987130624582972243120908370889660943979851247337947755062323867307964323617966444319915779349505087817467658821449189763491836573445552517662771513447566673368934022852878552409480370326320358458834019911081596255956199275349914335785256127456063597567778366464148857036938324774545547739371169593746365176414415916741111632551934923669440871157705747479063022056903860795144730504186506994999425159564157118301639267960533226991546022058071655463411160082959957365665728593890849891216700459279773943731347106564593422052611518289962051365667283256930658535316942292588763842352810578806619888888699651757895883828194035158879982637873251282277109044685338307187007338684030709141932130102793915685502463506204252380615851703079434394245817199864579716012634643146687084920642814748236091944761519544162721584580866243197512440613146191464645756639908677600225762258061517936630021729006046432707731155623589320002101795427134906176661742954087180942130646592778459620062095445643275286767305917633372561286013508157590150538202814098401946732237966590838303312925341159073866980485449355251208686650098554335993552665399303599592001976426739985900611155718311391572478817437140633034274942029779240274032170690337448032636603467405175432580443880209581884538542854756728221935520028156052449496540512895278941685970161034340559083700857005319069140948810269162990285282443881619254160719252586681492301098844993358362070457412364715138243005152763793270239994276502122575718342694173307511366319341275693372409386813845551040825294330400392680270273911091565025197202083577777521509249177115074872579222212711700744947474073259419299990947615997888995278950453549834296958203820347808744434749822215734262875191349970758431937891950282689664687878895555056946827957434612751025963615708323602068292073856758702457285030418225810942228871236958398705489445107357895556781144114885173756055847516703031450981962868333867219685354221883656759408923619794256181804834157184994908104419488662029844179031605720533063125852882209388453202881486739816460315254746643661838410231205145596291225676723338214108151745887619412960956257036461439439546150026028009779149486034881554706894195411396121230808696233358014338762859100697796439503703150009425737951279762360980453946679782909317843999667507178308000935154090280988312637917001744752373069752555769800888318220641068026749502861403189767464545449905013264081514548162581046362503426350135665939158347075053775910407247762708768814009322399475225345062298501983157527812076693792841409950194146840103365838753847747651430517233444275446964135110834142420863392031227305542755343545736639800379115403677436652225676753148212594659821354816714163889536552233185855875318164673890169048172943774666853026272863152615127059133730494414626481015146290059467050362894893249310624079142241669017665334482655304544984911282354720441441202260067381114607429032599737299880706609973421541252772517030074703000359971196523111837810741931297170430877948105288601577172718724668601236775400522207121393382923792740982393003288999110325021675446916288238397550924124690633933005400188338840513774110044426614067445348821366397699371441601447824287769045170701677608227091066091947270527513961523039492680320278910519289551902278550986725868168376530190687734279182880967737921981064388686303421635236091653358286623802195030691074381896339310408288232052917804721934249943972315226287680194453140925656039242077951923521961481253789985075087617426240817566145858333926379181702901763833617207476950746202917591738467158821628247621525958215757522203457442979154817540197875534869312974551793016145777664834206033700874505983655951149198332034693430584036115156315811331624466940668691824446566252489938481030302725383548593964661386210930556193533748845139945626126761584081334907537907037607241773588368796278855496255610676496417171596190941437961068634156217072211685679942117600175585117726168929372416453084793581824162027359532431836911007768889362945786803075026723201682304994383129663915510747812713195561418535841728692832316677716596913591058550366782824239306856388821064071665768797051106744728541275863386410586811539845785267705536497966390835698120301434812192996431528245970215345856489798887676853652529080355950772729452412196090097722680334872075139421678091221796106643193272481543248903852336237757060103200016986972151366321669277605690391042964115059532889336540044356375204051621359743783294991935408258854739408166999250082477227553916162330799393909298618710396764350015543831424492306253580961824369641904029983513000560757063405924472350073460837639664103240007565675173422305850548219143054053471547407999494882720626395097424213230058594704488921848798396402335043320187775690813838073280696208790161440476367177591276186854243214788172414514846703745893029464051151763454267969158591648819409477914577589679072593602005933421255731344370368332069444161617511119561539592248556973163706277991830726825911924086214094790129808049455845127925339455942520727082285837338327302057024910051673150530624280818387732735307818949401190018099224912552188829605637843001784484212422775747632198288575705252239766733320216644429535186637437971622481024709828104707098026161963455257759700242572128249838037300795631537860881895167253607799605989577771992323687255111343687994903202756585543917533464022949051766937254610653784109696060603064711318892642600262743405735904240643541115568969163988820130928668063774725210011040247964195069809456741582942623319784938688832186086780444454122570511874340135543687007443350628060204189793023143991872050738088176197912162644128781815244662094608176095048847152672669188870212487787467349087048255583641153934194076003026753905949503913701614797498011492688882432221589597326926918857119422980520029666011584715815097292896814443255645834158199571069685751115957437121190707315711277306195839400716298834757018929377111783256582539888302033538283094702888463492400126944479336157298298534376607537735368778215039444734454175629222840056590949171716471123027019005572607960956196958654007994064908543172648910403139269153441667710152610156823471500117878099671595998785035514777829781181120861750323804483282242677478199490313733635905293046405257763222623610515758390434277151680971352383737660050185649416709521397304872284727037047974927542627343949677356587033060618241567194948537039124340333785101071057138160732718158684219884392272007890111180377846329062645968266504670131639682649578776760839439116272328142064876961943372249173357284410175261782332707692747352920058321622826589448845860025023493828722568362946559899538086450159622053815100861551241656599682371069996044776665366692005330054846754978684640863971966667862931933892336595734316097769964492552492373545977357357718490494220002422365920176054673837899329963119246838292520334007128373863785832820447563064395968754713613540326853633726438031387080662206000515667832587979339188855238813726442013319094920543316055339180111789057187682967071670527568160572272177106850632698015879662169327981170226693715737289118205306949756991758293926111783871872096766281140761435225339204589445178567380065287805975672078340933655316284680837653877034176641296680856489880834362457473498422572530303497642130761636516040707326694858706783010410276567262777159302436257823318707818194636482065671523213202155781063311447164021296067339212762196569986807522461525996837736188339378093926857624514922672994434749859767788993541857638664721563464217541383921303555010387606145065238174408542328288603984017924951047442652064821582661022970802883616717297923584207107086169469363859552899633614602719887883895524125076645373730571286735576332583679513723184570261820168062455363167660340461161778329899653475788551802404001606185911595292130779090048411227356094842554388557438108220662332722891995222644819554978771253323110261542157419502127968052140836985105311856592466929432449573744169674796597045581901061643252111591549334488035741229384378063349394171818301526941301469819025139444892461021227792161657654739384602972258386529771878738456906447858444580783127899906934029312906111135528176241630539198052748992571838963108204111245227638542115139762576685177275909851413086811201661630983758899214378228884205528238873482879485579445539243603139014616725755146532306030924586500027983080637298013001077379515945521046398616804333203151905459517048343557590543106598231225131751276348151325087676894094499696984493213735371393885899466132313760680395095357518542460652497068605837450111175335328976882923855290351253029432866696798731529109380885179763097222564114364119262796968956569975841068518108722406721808878651287508947831334842230908457843361092121584398724341671306566884956958582419809304450182541615747602185473258890631250709128649421032713502494881350374766766721949940272527943122569950097023976905690425340541610587387282318662641295497643513767706425944367501244776760329244972261265150693974556777204099129294225321855621596890205117760623255146584367693479738559775474913621510570860486496849860738952741125939876389489619694406190556588900528021063731806594947684665357361228272415417337872729522603852958452927760318040761846153944650032778659883143491297281128782206390679396892741884159420336324276406328986433326637718612642219028740227179865255126405461899911892761527790330646369116698175968501757518948027549529105869495108233384365615760647679259039281213181017663686101103072307318370155348584786732082358655101887331504526688910958827894940306853357902134544931326158568090254453642533144103709118131189689726371722405223370504779092981586446015916946214666387744591304713765964942778420450559817084584664040821943843903502945274184703623980607465995420191700896842369622345183661077762106875033894546672353983600807436978081640653227255664231403452662466491894130105699101963549915430795969677358343933034157589760629798209020250497486164676831470371356443451766359416944981848269451341727241593261764744273989218181404150343413589590939041962411707203881772479183462163440731289774642930373084239984293036334642061018172121877139201785227224158880265169587250033534418103653969201554250461027768561058159486404759214701109581600259515454152030835476480357057729537705483841926347701761174319125018695842049213301528135597964190920755500455988622020183726180270935999286819687262574753056779935308770812926126898796714063737732886771516409575372870644386132065312659303964754074234355303223504227998792378748347647846335479130477812275891605780901790421861611027326504513469347880260199312212904560423785699989310991458345628041947555455616140448105918154715116029503195895973375754065153128620125272678116615626577138222222210362308241412403843253641682861634094578804837541463998095682264217673498607535655313463290392922754751619335842199487210659886559687194399222521908475910913726904201882024755242169816086227150298732199865380993062162704576223975736337850716246894276754831077441195809774400004680653432681235428577080264107753808754281886932274707466527704539627305169299232457450267535023219404098107886900947441900637583629307091401829130213956899081735139740799313992194177031670195950707600466256284901473091417963987968466905974597087274899796667482052201445253682328162734182291187501637613334136316115062641798483553683847683138206618471190982185585991376848184160787678313781442569950128228252418944555218944153562247229414077226205534982740276904647655930978792909143214154932562183232407009337804284700709246417534545858420094303421340212223516943894530000874246140687106216658041371266350765736228305661708517492437470291259471044999147406406278689482316730414839626044082476406660469721886077327199725617877588138135530627081893131256628194800076413345276787710694925764357746746727511749125896512081076687976441939932056455845688133132761210866986388670422135896333484152123994359922745759481119370501678660876678220717115270353139539464416539206146345904269065201844519152216543079260331466594476346500128161673426150970130800143141954288694732394328774024865411148155014803530963198154694368742615653989373652899846463667983455236056715455497295271538084306959749094704375668898130353927641498066985489701252082627453988693532632637446965177847302888581385116729403154011324719650756369480469364078910473320336261160375462754142554864673099823611318115255499470493415146127644247086861090529832782000834611522037421928312796714674454408045333236380474963488816552374914326616411555059568350344491324522468429910336949887868711599946848597583758809663321773771460618543125898132595011678567962242502507887620049030881546020407580158965410436963114487075390805173350216856750747181398361995188571987103091029380143272108119033949554789316205717347579373045308189210992459158851779288680065152046956754773758459297830463303060624930371618255470173792704865294271333057330165035894488003637061408639565652321091379011549914722059748556125295381114544035818983561841361673798558614071883139462157437825734036120530634007691309106207740769152427154831195169464569305618340200527215044021253041789666120098242158058477463366730032885043130905867247217084151530042339952995080369803261967769298941620395815014723681347398480574046460448118963119609444720752320450300354732689244462015250205975929861901041503827634035690269235417731317880995325278036927483826471096020608597367486096333681727536650834107074907635733448031690092948449603902106224803563863276842214162135947272602109871468864546965917161566545946858138213821572445896976006828661286195587778072321052128110972808395263546221137448849990708516025095849653802884533530338932445333144207104403492328492047773758435069481241281808812126001649486611585552365604935356689717707182223770380170424629480496119829476474971752527681959166366324419918632043220029229137587535460339143405020837059259964192029547531685970904961395865991006440628908933925933769718671477438685247715369742030291059301405975900803792711373999834198035075678777330685433354771130736636265984948469957735739003377588672578406825871843743107627304526816585548937448091851475369806261459677980496906458746546058217794515736876632247075568746219299047857192728920709544342543845286676998571310145125345304514702600078771117215575801628360863937993152325874554660207744186506818695371795324949840218622529585607695126596367738957009175710709651293952567048476415953676896916167262999463105444489338219227609809479683752697265623897016007614530169138666437697139440027075002767052033358803132684094208733678185200876565740491250591461480099278245400503485913872541568225066777125518559414627343402563418643933659332614239233741868078318779428140530362721416862214914241078203468074433540167507501305793754903516204365874773227320591840829195704354677821164742437855307933106981015724810675953977572439026294767880991049926147350171425027269940920243867346492519275744516324711050129513553537021424999201874096170746707431558577941276199628921287155353062958963877327103299632197941730319154317456072981133702063631551162090610041957183956944066276357290031640328647285631776487657072315039833312317971917800555294605518648998227944995890116996569092964215419436726642518272052651271834781036978398402892188956601890244538467810776857982923445556812548992448730253012927390382758056246272692415145845277464209263129750195277534704629351877065485521000518724109907500536172571319328556821408666213826884610685412293130455009297656384481654729725447597919771059403831918296401510352037227357853271218184221119100611349999554867112975053900011740612979961970463330402970487264388308165622083043920571647509062089850984172887500309452207571128360707979766898524711759988276150599883321855335044732633715690210067405418881078365254718906162694188413565675673343693498464471269814130606690548065266351689539441201508400312808550684385434758269188724843839264953364692850417805099964224707008374161668136136435315433839322744537518044384914123030228770736694649318986139123322224086934731466522181943340133010191811674053937809191676300938164878682850515451100772477225232924393129903341037077851802554818545605520494940385309144950896887737854045451970727658046003201152909473177358862136960616988469872869561289928306783488828220027575536514366488012718272806146085650101727869766000867047601733303793415049303738635302100768975464499799147851518571064727273512599961430753039454061597679755289811319263728327789666852924750786307928855072436594225782639814033518079557461820004064386390897097467800743233277954724187802299941545505939040526421891489411050611215615505135532817353645006610243368692148333539089558879621829692402191575686933519254985003798503571943467150837486446748569699118718651866122788520556732964507172258781640862378226220150435093322126714772680410253930150474152614517850409147588333237442971584519348224157168194011837142378960324132066343402813111793692831947304278142534998070583269167051958089023161557694996151750756709818202828689056190410029214394448357901447321298961882360141733749231319457948005516295253370487972282599910162450186032249453471417239719736940719451795328333842056853453785603739654615993456330267237247310753274415230466492761714988308897807918543363055996309814950514422926622734790922549422048131898026802586278744528219221631054350375615164823695157251970573037468351593239753830029582179799513686286107042875917336256965501848472134239201983053904590619173288457436856128122509042483156788054424852827655056882897232917446751689717009935312745178448173625541857201020806619426469171726524070026719573586594124357056854808520812644940496741662202680058971052412925142074186132915606028036030696286074426650631594706981331218160788134665903759671112503402308200304506070801550283717663882891661584973615257160797453342210106422871779708591571144484329995625207660683205913579325279335297032244512430059454172939174853645965892930374716530301574018843400402760824866208790847861853976109978921862269319436593364864129375713454058302227362125648332707734270882653605810683799338699391375713772788231018243449089681157069133721809533413360884882881203991941849159226524871203722692061745891067507053847385324166735756755723400376925353124029708895554932735539699443131506398430744637466525461236498052044882691355994979649418826753176814546883719774722285126348056182204281395654931008313146502729645156873148081782232295355949653126870205411666049918321764355280839873649890129038626932461929373778924151805523415425888495880454073345138996187170191404999722238382149269432759686826549183943240401656527299502470473810312763635047935586164332919607770157751334620592344762280795294858954901125359066546425816162384845492031389157680289551140276112817255417375361707881573180900065542053299356460300639799280516471664552975306471000071330003734421049200033671659331534180408439246102648137755527391340529932899893410453074899693757788727687036392131675642394411393470913943920691318189378354352487224923588085281399625939462257068569725905345134234680106324167149946843375624913066762338319938265843055673150586333780077601193312354773905114280810787832267832754768102138701303281086383268928749166663454004045897221469789570640864163045250556829250098324406723760830315242945420886390722496219333591751553266649877151004141969965239017193539327820422408881494106994941591668457810234140961262239149139448746021582551687421534088283372852073088746092547950700549433988674656979464611148963350923287785518304027671371808515697597863779666079290470630654815558788370096649409322635352371434842162967460414630602952572721973408853671649288256773127791106816339646922616555818668090384981605848984385727133979581016498416081989569873216427159430529921042629436194696612464807997640381716336738699130416664040278326297475476606290580751437617561049302328971481100539704116700799915323047302210537201567754272406528188486773536724116086545471084169477362453347566051358636489103702596369272799131914248456006986216097624399886571243609849178257421602995752567447376048171054738203320338871687790600427737435197038768192280191550807704502353480306151489439526455842091527850416925082883299501190952287187319647209590182453268375276564919170848686411632367083107640250846520794626300790168548073911125128011436773513276292800776512912588402367343606795704596386092224980938450137233151634402734599595419464636397765004144530493351023863954216520098915987151469073380237035798078165106636664897997975087669817873553429146565844270381661393141491916473239088175671357717217960612602759105205565015777709126137596716646343514255414512929255142832877235042230048868142569950613154700754973133905885424183895660360505719328992760073646089979905236404991942631787168135368539278994637786762741615651028044680831396962157065030496514850120722353428348312661657245248790217901713880488840607944113738351471822424669657576107231927044736576751618020886256474996603244206727394673586281333430525731420803887623425089312926573675570455895648032714203566091378865159945725015908696858695339452033318516485791935692576417782787275013046757765869362407012215103890454308643543655367402093506887018702007368210737244921166551732364672851828833388916963610391660288424231242346248517963798042693934330557989256047759936073878973565423654017749429984328416944831686629186362888210804160289483646161825127349640443031114429882906466199649779343259057528661196441575231208846645729606716805360323457742233450822928422779713986270190700390406905917724736960381781090750388591679375932375197730270058524757584664407968841400516177992869193244478254052470855325493298605167934213504225901578108338123581687344405907825838401302921899580406218493290384615569509878050434899658394175288424702435730693815179293720570427591324336672564034709065829408863604488542551949228634144345573518683395254851114999263664598327303046803612693486957090256119137132350587468073389804676210193802554414400697135134385320246701438150858906722992079754745964791838114420050659725813452849193935525065316704207781876264845335777138760231242327932094539694013361178956713967510112561016243019941800572395677628197972154745028972600192588269616924737637780998387052854374916552139156498636485920209409064998570345394692035708734902758123953315250113877071778262533682144962679591391554865586582610870758594398588119896944122378262634297605267767442630084992294592147550611439759072601670417342175445732738346047457411801531116434188814726247595271022870866222373989827685104536483540540475444821943347235917884931705796671785529947943072223865329450336699320057054183345133877765492670220651020388231115287414732977110247128900375208311539754884899489914929285881240827443442729366563684270150631156930601738170103000938026875096367261098199907208150832852363278280794191362697551029989880119473834638674616416734771267700100843485560530398636329188966671701475716575379665470484680400664502687382772663177893583518287317337366711395416561538529862960382016475419986329994167286656340763972961089581721247232018355879903237436452138012389488187754139333612832027691811273277763638230752081014850837293956207395294321022923422954893516951524520907758913886334124701190118649854476264878258152664300896314288016302785157979710904956765716774369475756770945080205612266492801608297730581014633489844158110997178293127984935299920295239511391219212751460210285938315927925245297682426379436783113926762915489842035588285954756006433561871223005576497033977029585232116606360039159357636844389550422077174555130168342964241810524848264958312942492810472525004146991418343939981607208633307008154032481604225127921435687086091056520418286724135338820981125620867336674296207876792853635045343296459445118065193832189734138952207364120133191016543881637161615993699060857649632327037335885501831701913323779795313390907734364853596867895303498708319880739051000735238746200530626807784903021260323603343309670043307329328817543743497671674210367610777433067073134125816017258687381716539772969892972838900672946692759490641817145134564791666619334996283835557638181352224626054702325556330902299264204921349492058270235780703119671467091052945415036808797435468721506242553905190826932463163625903358388789150245698140268478466544942305724986258618874302811260427656887819952067612889961641553267000513853568976108955007485563624987626071969829157055998251053471374930971196461074325086072524539028729815127842201234052945227171255135285674901530381897427959967102687708515225219750033485540623937634824179011144785414153247407333352891582971732241621498046443453442342369221788968855377959129232079639656651810636163615032779580655194060274979871530305130116126337733820013411518888827700157373235325606810770637299416900415769418539400265250745859975741929050829141216920172668849460428901209338376952985160424580090136517532495608277803337997222364239731523972419302211548916925661759049249246634311909337334936524884810385999784418574547528651911440517284326620741436434412523178628552022021367569550264913246224490810324218112648830399397325854515978554951417597970149772932602747678225413314354201271687096861138273742818685662733256697954795306112571111764782675739639309043441787833169635762882855037397429813986191819961697561690568339466431065074650513428171393358288350560490669139373806533027614676714524057760229650290578020944921050620157898688236027918525331047834615893656491717413579562537461971818130410373263109450103186727944992674629663984712462557845582370561491164695364196943712070938256013833473329981534471057384825149961907746905348148058040242033214094916792089274087498206164473403950884829151168892716014918176990033869473351648175572968250774908171587081817903774953473091823017031878494565256452967145685510093565187269385708862410245041977336894877391521844274843377138189118397817812057736835768925135249229324906253988890090564120990178410468404205039931539631953143196879362800836156795258842917392740008300933879533183143300311809198629131586070624580405985758865283125137638977645862553247952035535760208490297933657536787345080907660247923266928926971652167637607917991448428061702134483893072975821137207423766056985094948031120139069570547405487669589077237314936605034977515144600808934712730528548319812186030685282553056391208077221946988954078691824383293564457858063978921943271299791243854932318431964677971335174796505715632206834302120250239241553173164666772278393471280151776036883362128288942760965345381747687967454595962029922356070375060404430330259555446687580184629733710320358381109473985202713090339394856208436196903794701954079069905291317710340946688164680989310032452464163445372201110554028203299231562549682089947843316766481731215687395001185515934477229430817694965261553857844506471826431769088571051599424987319290188153951367181471569911783490149020991042885927995244867378631167953644430815481927048223608209793537021763664266665430841401572833496153973028404239077357493164109188900887248552040618643355623161511502185974031434673196406625975471911795032817065248898443018598039716762072592888102048167428822126800353641469888919033409243142536031897269669146597491067463099653599465354878737367109057338809227339391983621370273287945469349286969254258430646855270971162937989507646115475127577716394159583957572229979290136564991617238835048900768879208059076688848257725190122074385120322450890676372328223811292346344242085824034843590887699182754807969787280798827036701708429787652890393876192255045859708968390642832146961902244954308173760525319887130924656280442910299892929461521539556565447066179926507503369753498289414707871681854685127581878340434564352497916067305677417940543367400368564544292867520580861168966418313520887261554153078903262731611568039604352308138077380257218480427035371756603830066617308097716775272097510655169656039316034317170385950925578860105902531528447353342344281691734478985909728052951334336341818102481560346070333636704337583222064469357845930018879789968301089176860977145235354647555393385279134793925920758116239628166296534817532926637853487101812417978640872213735057086402821289704452527081250217308317589789212896516212473543372210711657785756659292820010674311123977800657897801870662490445846425860920895917830544311948473736774039852294004729129798690538649377473148680180434376040140702963259040965568310752976176726201684915450794853233477361466482282666103258755977827503315184237734164424611503118699909183099595467490913700122728444535061447638628234567479654865777662610715503807530515742958923089378631163209694762911094503367096265186599105069375981791384598402548668088517621405626095417198031579050833999545354306598331922819137872095926521384625681056033537336000970674104668085868427647283938131532075306815229767576805748356522023720492792957999411749488731598425149105214824363596270834092435199345697910093934103349841146124949679089236220301091730995015564802741320937182598610565165586051387777679756917674975902527607482154763975030716139129119699166443086703322210638365220519492983771584537639155112756751151558179360932475714432077091101802905460599138199219645920791057344622584591992651549977694792709030600838315383312409931568917459053320029700147205683905848285404081256543495946404237336304613501972145066432764190186233956295110254485113413718084898947946038557377225790402835886794815141541012700325310177866420195232497695523479782578651906597698884943807913364566336479932675774023220873760308695497298039089834468575683186587891337128212361656831041507065831531951264715540173361751683910421215826572488763898554758480437554472876176246703334112527760526205233059991777497504001764420070929358048597613597394407822762920801928997435854996208121005660434047461114676662952121678414407498979224234233552916227966078771592967459542780018282513107063781464752660058191263319608016384377172371446325037234643354073848455135850250888866414781786958530343752626334245244133874743275325618280010967663484505409391558942030162112185100592733567937365003795925268388718512481736484089981609174037909049258005629417054904936749843415397503097370714287350059906615624958170970797663586178103831586677024616396986669998202284854431477162894097095522550421169847033552129398976801444557800009608948636792190439512647987852905420145164771993419377268246074259871811386649223079494962193502897814112579953492102124240694509116678141113128443380276755284520646635588388895493421850608711623565194545493837473782220345245909129291694699142050030596760596539049356592048250563496926708262482827321228419208411021626138646854033622827016784303965066982930075735665381294834059816436977596141153589897955707018782302823614648377519179932088561715602867126821288115270243288807821060880181600305630231675693703723794522431157557925010847347243474957967484345603083081506720118226692173020445227062158899449632445593435074197624481133202112100044324380546747940470567998342827063187962487812473809531447547035347173037498895062373716003138850594839841579298287903524479258810488336428624389455608332057589385481833522331751221553065942443734271850500673921936607519588465320243871558277754862678044232828262186199271400155305894836749372287204666021290593384394436901882889021475984599720034478695829480347614792646749542767097349583344331479544109444727595053598398316303269839319934980629587288561004364717395651625788809061557133463724496363216071859772501457658820747270242157067603478516594014255569346171334176665382241216851561045683448433847757380349252412958454657758179402654596973197252490444688283996785076808190013346851336319612506439429372007359380905574686257051933394712276174619553753192321934633013093226217538961458685645700692450714548662436402727445626689797302026307450513699640695817467959452372829105918066198210313149497301030059031546566891317438004257548895774653762798337626596503249408787482910318061535113327344628570306414906644661781326412286695479775367206084210614914141621657882129407917601480009439560192857190441323914892898656899744683681681716233643710167216834750352516769635535910391507399470807987325831246491023577059316056287200406608814481154689188333263590639494466176928055529536876265529858718753138522556319329055400850158342029084679906827048471964110119499358023594996202143793203329281250958673085206784938816764677982737974454852197581433013897097156368753747191790188574346200845454399405159491941225693499739625944797354121816078975816366586927979371176563664183507881000452920938343016276998372237350820324025502010340086391594019170148756885547970411983627282608316471508524142135889188933162368617407933273929507901039143053963423932256772258447802481346539450954955158178866146428497001619713712112106480936445668749224393348906235458619011375649051848254877623691489091505372201820175939842956858737811960829980552199105361341629696367379176895811281589106114388384592613096927180464026669044093266752334739788710706394842949697887979108631938306333305354199019764175557992532134836425130441278152390593651913758544855735750661777250464106012223805441930841166934861010379421591254002958637415733679218552711310428198975751712860983921963475400599097545390980063020315068361776328519941270134633271399828717141421082422545098187025861311290320964006679374522851595301441755473664901095866409608052926252864274125731566801082051273114550158689832613824911146602669345463892673930675564939253970770477097037783054814022692288522597338992516928074490864733495556036524377333665471944798622172608137801905242917396954655993532498421002238540084297672966782006887472953749872767224191718557450636734010539556953002551139107625577511049009408741290086250470249856202834124494152113217070207861248119358332952061866648023506907660154061162775060323604400606479540867081110298365382906608398979952534066723697399312603397624404419401375035855337818589690947684937808725174843511356861942838407779147067086396539245414676125626186473678907922770597403262014525431467444422289692474748866287431565532666539195866066923683790774360500762679530393295706138767113998785540777545762587647136359520068852751275028971552384420724424237397741969177502075624260528155595719114589760930327823080946696875871341267162332831069123634310267400903363060160110313314334681877687665032878179185553922172454429314328577728709886754802126932772627920242224561599792749506378942392105675395480922862684874099002607232530972733958639869602002959453032812432595344083128281409417471557939742344376612655406514014009342687694031136815385469804391460562436500917765165125360440463208652747891265200281050423615501490266965150121271467347766536938378484996758324844153850948961915611809438921633774194057027546068793598043512742402546951205515398336018265459776110958742446956540223159286537382805411267180607581330974330317866341416008240978432760960062321451431239059503095390813991760352407710396934358806698492820289550224943841037257468107964152706178739482614380390846184859581402522183007393274578632698840641308028924730384015756536465855251999422310500176089127452869263936343698131405451436019083439973774811906224897028602676757824286511269297646748657738433949377380312055124786659098097312437211663412600858116106562498695662974773485090928025620324622721746219549832805951527193834581567188463509651998777151523753592377683721228569851275458090844655056123627205528606634152733317726517923856738923325401860468549211416954835504534682949406631382094166701163142563972697427508363042874486186646734495321839301539739543362516788407721289408627028874375397301225837649448465032377651455229166879663615014345837657083968356281649040012878903554466294136947537697137364218707530998539019600879564924150435760960532822762571380779962492669103754038397168884717539440824745101922902874770309854627054645792174724456007811004506731710229211397688825078430469954337313563539029384728698128526215681900329169203880253780633319607744292210711880913709901450256516749758294100681343956550214362134395637697645345118991383424956866738728061273482085519873216837599411305119824076053420670546000056502030977265118929890560916286137647117833261953789856985853495412952375726915996209224727934866509099941806064194670053280173115510025243941490298464235473466235881998530623152431754651762430145513683327455867098054833345418265902646637079125933221054747296622226465027383164198733380548444761946180327187640448110922677733422070766236887021047513049119955159465516458578308704221224489243124601882982970142880688482027249522895241136565563160277145755524256456845865405653124828393591671587118330814770223707419429087274254770283146871534953198961648341769867255333418815070452572963534575196760487135861106471741062027780425315366339621395372714190080249404169017216827711573004549992493367748447129933711415180648525669498272500597603984066904369884686057089720291550958504737536035695077922085555629987514273507689699119548850130260292959917517182572672287180303759882169037914706896977807794678614738877532118781056171800837651970472616238624846663742639683009105762158021420899608027618257178775817458792210601817240295672474865498006704369987234947890969713057526252385667015965408919313134019806821623394927717164295474352135617032478586444243312036222565917056389978815069182117751332049754828282211123162085356234290511068824208373562454559654093742259027862286607738323641020431034031507945570804947821060419611622333426368926356301266133385167926745278254898842353787759443965754777687079187414247467597339308394271500915722438778045591052319156114278118691533361025190157391045693258264296467241326357078279553506882675862487102615463595324343807587435523492972746124252168679311405390731899324905030941063116681059761896234091279191523027226337642618092142887771973580295034718995572441930212353895737500130306769906154444633122664670056424386151529597538535243852434511152176436340900181395606002691217184472638317053704002058914620962751608348875348273531785338091778844208127135128102750456191651824099879376986324140344118019578985938420576030069635707955835271465532342786211466338899282406040359368391944718237671735929570528266549426431361932542919088352505964571382949619577155894670253268592941965069495911705861591653083500295262964569995304150337462953246838004769228135065453917394742424082734332489684668328099899398207002665818572972938437019200098038232126066783037821182876598299188749568582440289971189051102036219099728844691377195711955089068482141094691047207899867118927311988228923951544268808101856446590142712924210207607169074068688173448140222739467200079053746658405802683401593073892405487680885888996124700998458859353522249767812940914777570253309722005253433195669271058648463183516551516343756123866349001343187955920216906430416147492339017237910800645174521372075429695149262745803987564558114736848564366655942656237193723617266642325481342354813357746676783516881884569227962787508523284707217755102872672133240345384025394617512682992328015833643009307539465012279758787403102887348719137053402695192406071803071620389081571562593608374146860701350201301217261181990818199396883239012508693698868377119934296145562250160644667256371828966365647664230858758406383655283120687222966263542263939986063749903095563867483717602434792039463792652154281463541716311319144313961525806623603119355739851145316289536291953061395145825956701825763873238394914177135019704078214591701733314819712558370323971897093811044279809349638456561282152648567903051775937249179372762739388336981517902451502900970442071267302367546692213392004249413076731959794711202343351732758880532398699747072526576957242241869050242412321100328620314125596242398315648550734402054807442326239581999266469646056143356268596276378812810768503449130086731388071368131003864138491314381658917147649059275081820678985844127282370935268259538181623941038074367128984344222334505438670097145224566550804360814633268157477281261886077903213123831501865753249898555805043377219934714937180112623682213270506270814820809685602038053910708543046526051923108602622179211698803459704761382304074036205310501805045959739878404915973307370894885334362107567877700853751421050225468359512360789992289883760259998216637404865311649482256707172884748137599092947855120092194491377125655259184625592859910756221011971404722868233296079037183324293747233144457840095812160537100083527324666074898048054226235952034992327208401892463995305100483840315951713604273114578244417895341286386430727215083251818996440956236112769787760490942869990159447036683651585002157158875107338728808644111810870190564770756169436977229422225663897849067263402289399163285481608404358576869211798444626112390005782629934542138423142031727909237839462481130581083263252199863604991776989545229033902370116428009476580839372888088224256361798149906440640111197526209182059137352609011201705799613235367480354595816874286960310501652044550893635824728348664411749097114042051303897942790772620401056613418889622351284044043691194343357937502228973781357144465884458116648849648817172447894939898927372958655826765239835066983557732076245124453366106178851841642565008754554297949913563337268351866218280933075518480092590074081190303404128208049384881842912821114477406267685197582515042676157704590315947133212108611091293602607404538782747487362444833218249884592636177854514804913230751090653548090637812175553206048265935103055141523190392786897698544123546357376936314157261126096951695937776544817939577051119832202278981193877507445689969315711570919813169845066296162272108855035174712050042862591683667786472530648946578082889028738882997862754143786497090028419711986655473462938926628885419940114404556688416687798247538596029707059334567395057851429412324265921531985123980992465364872111281210879586014407363465618919164326242852128684756672497756721508190701036658553214329332257398648527435378439101903949966405247434112234702176052402816813728161961650262275884527392465668426353403991896513465053019981997844326302375846502426431608779400803873690917724758711731690997833005508392985669995341165860392262664968825525267555373187408070828365333458031844865275128533313090130640316585982726161140057429979440805409696270423084740448726747458389508906653848708731860766936555908728685663333047797516709830625484347657166386504050047254613943486036811025596665493154285876818706994800937406913464950625984262706783328022798305221289996418365925283850446827685598758773370555163963578718524014174660178399390148100486347614979142039931733838209757902760259324253042218067674960212330797459909404787585781204006947801406099199704817369960762952435598418477409621172422323439414139258164560237755060560792855843175375481258560350608555279740224887974585913876872789156511881315300205349909408428652189962549467207180778974628626206798632441436026391815733531989294778044970791826590025397744714267564629325474090036890805507304946258258207501019557356502411058061815897180253718937529634124553342980348178119150799166616094460808152500229401563743669889544585408827631863710283070557092955459636131424925624721850605658429768332072452548982133787110390470274403839216423759817855048318394641582441801332661149963823544577662219964269440587529413928807369405482405954694497030484745781636670764087338824670737322337935632691516910707892472736146914150996229625471072978949178281870337420759012303137560526086081247703808309790470851515492894209810308994548247015067832064659051535441887685693041171199155820468760451097556601950883004780884518336291262396656211595162743283746713870861702514807181357039044040041146800314056885023518727321824528282238129806051937985029054176090117267151026574807518486335207127681943851761321062697475895098434919655002862290974579313962373257747777490214777361666191385233443868585822139729291197776577234066702173464485630324329241256067257189119229593808288623309454265010776538704994535303979818874210096197000051713413264997289574986743009785701685466579391761795945123845170741452255940735902119977945554748056513970464161198239396128095239810345561072492725795206897449486732914503691606836296176728568526792946783008260187440778515914870551073083946720477092265086060584208609053111150878208483878698705986014389903674533113358360699737030609532478272393391584484970195555534437730623743745385750623930594435693131570698980404247479001167071843591455796951333908741182230166166299663612100832370628041767357055233837634841695730306998480542802578379569291995141353246795568435577719525155283231913247932110711694763017581760678519170079207893044689846056176590540750652874135965537549351869196644929200114522899025391751707012661022354427785389928872456907329083417712803844240037182938698121946655784505748393675688551211997465344481662011163872524170885818582961058470202215092829069899901596930834837565030513091868654976179780959731127612589724644722719605691961821294578858697313689578982106191554870046400975153927238724968442386104578746200916270562554270021144592220809992841523325346770038585855639793832338705851225233035520323149345539560870006440155081319369881777272061539930077068405355250951222565209714516075223792399266389641457600297281449436495448668193149125787343321076913109920672329960574644619404446032101852781033579702009393487554848692615566032871315561462653103545536658680855222101055631923584645716844575195546944965048530711674894931854181909439309181941758396000455086777928384057899395140678585602513516001683212227517263073871848169897800638172650095079441183773616226393355956393838448800431510875560687547772456247283655464641151778804375777805514623577311599620977585806821756295030516333339173362767743349405069344304301240437347485148802758838567093337175308835741926990083648457884564089723886023607497747538327045167313158303988824712313765724437885891331347942655035347415596521783404936780622377630043672966517570547775424781314618209105410192849297677994134261609307134442381133340731991150963118840332095606482809493234477637549677811422427799747514887489593234288751060892359805385301106964174586728376783836988283437642700310119231834761974878562641905618987854609304848872692890947462197410752366652834023890983745674533078784046485055237903427834087076634941105599339364968477762423587918899548274226654815248460131899983146200036096806006455939182571220972444359379643851295822426694987715695160113593183452311855064053488574366432282170957576700593219486383639929597057539978748872066800804145597951960972867187066321471806764090027947810100463535275504479304190338123466768539530208881121897335266770018689156305123779391206463850392489277526352085538479010236513707842116267041897075817278073936539612028291753817160117817066419505126700175258838203167784637599401159011727162704964525658515456613701853681601430810448777706066857480916833106372702423768069206280164609468227447959384974682580165578078198560270339439731215500255981771103930559708508066780265547259427558409928655141256405149439392980686921649620154881085389090832830381611325200273476942582107366961131607707250322616401607594785097605597230752606453262282813831851906576019945437448966438882643178299494606541080744620221144004949369138371532651532145690021936931049738034735940007033124531578661143171780832129616346401632189133615348962313027049972676134196642191889962375554682411142111193849202425787250938294106363039094302066260959291423874014856535678110260609687698879055847994833819242709240510814490209205105190050573580431963665236414254449633952077682742651963769754248581519267138339885427311487024674070072141440994182388323125143440944198423419346667354291297384131915524388851226075377905293764717985114057263316861722532465802125960928323667049936556628065764564374746960312064572132414272942306648699575555000755537502144660726780455259166583801826098864910986781639145184555221419970917212198955611840016767741365725118998696342511113637341442471665308149993741352517448391133613318426579367421205079525882083444853268483519868532313308804130103873060808193162594935346287807311187601975017125983005846699807689242632644889585031288435777819010194436862774954454573196807085398262583378333109239570163141775487418511910406784082031219761324838101817399182393677278436918377804936874589535626581229961188436536213295891268329050067924994605328288520663550190531123344191054349236342966812398140546177007403737526963321778823082346964737674134353552787632645509609053208032451205052345513920194117331848988178392768544818098412798206765788674157981911099785327445223158601011604234610133885793241892497603447028745822800913214671628366273000750227053313868489044820019369760442080596315556205623772576257702846313524316920861999245073727435057611569021414665244694547839565204622421159716254605620339482075164755936724350865125821176181456687258399364500190824463642797444832270963409355359834098538183707562559565134741578078021869157514451512409567910585304173864187182554334019167375688568947966785133485638021685164477071772882147249554056264850555441758983444306879536031343405772262452081546833658523147310010348583277001364764087562886947570471534373411959336544623130652240300797268893210011631451910985119465184248351050268889255104592656938261618122372600455049044662128936308335445238992082267982830685840608947137193640337307571696863675424718516779446278610216279663451434999631133958019090229854055958148646562242363275861732974530983760577198514577442387958052561082134924729431043645546114460271667857583011371279590251443947822132348968900217843766366521745542194695835989789087536079849562655013748183844751994471435759059618282772962632236977675456134891040523435989405863945841475989279633430800327622162467896873321955298982278171352403603449997202559883388639193830508272277261345913040389259799821198321005225172735604721552895401097621949780246487626721792194118146651349360417009844277521504326821252514061564311040330296388245410605296290836096598538767577401829662682294280022889870869798942178553685176459070938300371521405258873326083812027910164670178715359808996183684132881478104611132739366149919157788070079059885257873515349389509366585281745385707977652888358459915128243300469497665350936344347959647717565164571199670231322234064521145804954155288287544614494678521209171079733120845085475792142472268110254753033382945974942413861316327165500925726970451205124751030990558876743078981556076352416751016007880959063586594856279826098914806533372827915617861876838757063780779183054780155331645313486693083779878992377233344210971994449817342328419697910399495864868620634678026402954311854101426561997755340698444196407302689270748008578868197868334491599090174443535059748424973410394449271314440309199221187783742455188343229884179035501800585444604734945599871015181446664130294839275287145700574039926045208018563330936614865623960933743124171701906754478968288589935922730330884121053845699571445180251547869348397418384101828660702477900422969224716515317194595864008369090417125759763424097884992058296484523617006021046658836355481449448125068559926668717375281334545872839660869418896030231621299666282377785561724447615168763891320968747322042695411941109417108505745286359763702384634162772016152711340194583784138687844896885168808358741974753277597237788943500452556048870060286940324831540658264374241427859652845750329596423762351694762286412069819193716691857326205934256250304882164142062580518352464082828767838551283726669530969436064419096810383220158955824430224063028470437249273249948929611199416253900152555836891607028605163617604565889070964933154671243099874815228906822602055392860258108249096801374614099355726145057000316439729185350591203857595851973635034269773278715376708395132842259219657681482350601537700283266735280046202573701162097757649575533559651076698083005819473493091714896968831926902324853415787972474014441229553983550380399714079093806813652220241895600771139619882594841061897255277454414663053311640577446805907821328235568105992874222514851125866158574048598828053514559869697583603915222795692614607078745792664011250801532163842938949937228750912056651598351247667730105385741856314035760643368304496604207471949893719302635289996481299573220018127626464972767697242648223990241636294735783371787589490484381803162128112091371848942310893369129925509128060847771731675877913506631528660448153642242592475351193850597686328715120735831200918508957644657732437043253160535888939629152109913994455104951927005299666038454861244175584775580561748590394862080463084162309586485743586564257633633876439450589733645704370687914910166995147652606716601444488707054058516507031847294015912761145020025826763076197747909712756869602648625726204788969596317024308592657468852022906009582443243269507651159979695171103075007338740143987173497021771226918744208059390720321523032856728575261338984056167190105069570462668862510456609084559116685314777835413039576569429547157057906660432428369526600934019173007701277750191858798227071984566339053507430470585117251015407402300065177490379259347232890522430579156305229724611381178343348985220385975706253973735717335177118638050943318449824430257724779108957181118779718447345447619463278304318489815959355741432738726790156319784901356738318348667340663396947246034495802106925509729718372251356206592326830374878953562841721471956891058475930831031709603324092093395859971684429999793751873720752911862917344065106653894586358031180534435030900022098093009136210440473044679710849129419523172821397179590341258157040247699981297899589755820077607622243425424024316901165021041919174957784041406621811896435904335330872181507380407699590265370950050193477104593035242402142582794423570552202984984879236682219602380371001966235719107814902506982094335569779776036676236574448753023072712454831410281380888841094038082181741224785388763639928570282985832457295371555317221628186258759988765579810125547217588407914495234847274209543356556975238898321852821788564351630450745468717575965972073401522698312150777279399375215054551697184979071565828612613625086910798345029843006272838099408930762459049053123353790899293928560387177587070196099012151256526065206824798751063843763840980471273994970706736587378200972620054939936892830600945299327263062319148039665534155112651711356621866681284472453542243388661152708790885080739251856697708166528207888487706116809679971827977829310773811936167600410316641715324488569390966846638899386182426341980876735041349841335654985836209095088341716219833963232962135692099612043906043648135863030928306299461442967005071515743736931654318220218676408158190436751404113917717079892517777167812519124650566995100027220563841847870693905342829670237867342557058832764582111405414847916909255220533241152265383076289419977188621705201109638800748438887103537733612589500226807235415190322943424930123795048540307527916444389041960691125209246409288955852972998430742824510912302031084125090280784839344781077215809475465595634409174228137740487532223184505777883317429180743456836396492234614472748880117931345274079935352240392142995924718876463535672029217217565008485209507738798753750907429812535497463075372372933831976758682336372920642742850050115624705825555692587602058082357006013229811215315139834797658370248920400844525301242404307527113609572907715313696401599206850578033208799034468827787874009385275236298962875127079996369705167821081376745460060493309366471619100379049245790200892813004338521834719729967701913250557734516145776694725957611045209707831570334953883358114237843262396042283748328807116975733371354503739512295068562038530663827406480003992031487872281582882704250523904499573172219240901527126335687947189884789378979041467039878545647326093636630133802342351954887850727847676763479135781149977880912977362463916942378460225771654226706493082558107714008093058022116298249452822048300504924666538101060681110132791625557019646156974725712354840781250818293010799129804221014112280789240735338996733542572405909194993066627324686510714231776465008544456909600779083301738770682162810845451769426627800835911136525050373375149117525797572591371725042888840357637343501591829180460714316625724493363903707393438857173831651022991144331381485165749906955278322673973434932598307557166243588006587163683468119383119999586177178730571659947806485744073459497968011280912584089299666624274229725592084013181977046139043340467604780953888050885017856761871787135357871134577886166468166539079525777690923337668718997130975963974118370952438682424992071796229882971700468222839308193705772564300355209340460074062556742892386999141106222671244580431217159718346590629335422776205335378087976496841079273210291679272314545816348822925521482498661118527732507183436249642604655506494311510025596301936485776704368261962376553825242921209074766983623679354398043825062282216747414843850068051908493293740912147606789389696537365994490175879780318260540570558162746139224969277001613852154655788085435637216790462645864532691130278738108797872239389686962977707215527518543666246100923895404989014289469017231113382236197557858413546567287346678523211462780236477027031917192926225406074905973841916504677821640244202585317042366368286718585996320375111364389978041649064918963543103624913991158660200351357967625125634861443553734465439966154224753124893595562898039765123061183432219926195809474243787909819998086163955355474035951815935437894167329655834792004753083865076305688712243068867643730039044780593263559995060636625201492885932870867842547808643930539353153760569639543944666344931882214507636502942928660378545957817402403507804794412716477292742118830352517691092170367251674528211552335931761777232042916443006511989205006828959838079999856475046234803151540204720710793229368551592484528969885271520425830991609114471961593321670262797462025645721477471748735828042541067169238985677554327637299953240526231211559020602266418105351532364483377873977709790194381962999536387460794165072241254629317041327024379327591589121802613162492955980646649022967136752866355095776519586844426891709617227834119833959998936336933704504222332145428139774062488823619835865866710659360203711200863366449703653269661299979835394278119684754815705881632682466911709475694739569279227899254890452087074107281174616790351324310721093753503597758884708838214406581969099437970935588665423369426507489802614242865551204004099419649077940883935353373423505909759526252363689541814970119195518172058872712874822353172622437143396892527491608014589721848422630600767632088733502328411721093452791139295504507503789388586857433235656228964173902604285071346683071642240449890628854067518264306260244984031642520803676879595637091940249456583392452571918708787395313701980772512648093900029484781852757811961242750666951753390591719344114905317475145309199858003057833579314994482794694635597446891378419836741210463408108364428329637776701166088209394799116547561761257371886685930608768272167229499047818484496572313106497814497394034210350887585627924126987905795267066193231292290775750220853253205892913441349778068898641949565894622098640108493357955654718762804925315849886036135296326796557108895499865071640822766695288950561359545545884065047566762323186029027692138003608510968932205075665093128346851439534291422625639211490209239983557514201736918998738976486287639783619347013981010083984091819018139855375596361222446329433922526615762368445473580935728907622706177055630281035480594893983047897219571970033714921418873100375949488821183343766433365856329133032734444230678553098586187313381666017766309389884791588557833788346797870876207347580557261384476893606264952178311060888070434417110035773317708309445633419421987079914558144109698152043558694579640404572671557391883786144124111214309134955886208037594285685870576248508593561454435763810933406268526501482666062467482515053166690543632691015294846211908186673799508317185361494671416236348970171499755464439905389364961321310953117783736436451738280682165004276581462203956653955118566147702082694737235108155376281795352283093017468996824684152979586320977514502981222554856532026591859409146460277408145879288406412938957455364548687160256489708596909882163449554827719465423050602354007961803613288291818199876403218432460241908232703693388784855786166704840904813020916044260121917571028483239790018971745372688666592155710676026967623654804677568650212434961384570240007202661021656500022206345767362179678929511999508697292959967064048406330754935052426194931189581890348427769142318526833796534531029786010845256214315751354607800066212388893634568315333486823913991254572389361829316315747533732498936389230554142372551324413514880658496391333939633403062883278598361432916171406587496927061864205008126475638085440228375438921614327883538652878234981717743427338462911698857480128826777269120953670532125717391684504775977944407794526876689387169016868040364447920175476307262553520581130807094277608525285372386644720251179045893848626969674622744799010411850909187570989891672565405214828199444732117229875240772586154898964208131116927548302943205690690215685846395777657329944894728085573218308409807114453738431405504154869013971457265230904066049293896057327333753252239174585900895991019192575152785304093802292181828750856726414597037165885540451684195874694123781405321548017059154478199450964606644113052515279648008424075010865090384290835660960356182475571916173617636780686863534660450097075768473302539644359835407755110657273343192372420859584320576966153058664796901347596448707035032512498851822615040663364530522737189603122800725520154320769362267818229925921881242259225309358631044208492313359147359696709988579482342140440501545805151577548076437241342583626485028319017441650635062080118345622444282986592452969893584154567166439351734789766684516929098263122728502777239101317631540067055369356612489079953414729243194928733522449087485846844068183633399824735751441270926570481077737333445368592508144784030341956080868750955355107873073340302051305527835911973149096054536671325398262869081370871059918825611311054056898124472589146579272871637673467932675778934587853593068074682485225839883027008306455186107128817337686451122359608728981225360654517014969222694204944108710501163281353917097929293047186577100271226274926957723377630939187653828216364751669930779860980615379688900306235165178647937662241957958450183820824262909669297620784850530553720448669525215792714112969976629563127708145667216624927842308328331113949233970604015437123579393578738585248681618367595209303981339583830153179371203565956937956329866381299633143697115892917097793298834145348450608006733031895711339257906016868071265724514679788338431274673109190704992504089625500403633782073578229053318274800371399248834459307017357366041492475655074473583003324901815895650381691196673964694365426508864557258738149699374103166045405742478134931022551638516350899316770980732496708516679490057310871778972181382472342867700937745108722069944629550202681417192368046193138549343126822227610845816832582796665848385522444840004219639563249797931769190128485107781340191987982702019137592459110602085383579993550951538982061556995638641946220424557209804351957201888608930986392052826421581029045640177862008631035950692954501951342375876533153904605683275437153290681382384403798976778358255164880291597995926696379281807635199883786204128401500202923485739237881503784859712600357283308728335667673434689414914437535428539481916379213059726151547993498401506120817244336939147471395466700540800999134856648729966706699708681352675670093777267623406818989381539644189487271029350759670655663583407984598052163224917707956471413503428558307630980420767665801794271782343334714470643856716513020411934112869111302669049929397839184352500334249548641251153714843038190312150830369449381435361409337610402564297701362515782666360383420821462569857654045178334107233224867143524006399285356238055346825172763791584150489006697095095358207355212287497458518984347736395930893263937804500980912183495219676916185582129575978017555497117495744381294453014563602608056049685438545549496890616507160629131013824374796379054110972978197156669285256633137093424890607831915870730438331824502587182604730654175877761127945368008550731137017002185138265584758430089990844264046835376826611065066361502906758459462138641782155335570047480993031183796154901392594469703538609702863117513868274079628149724086075078417268622518716481555062193756863354102788921741274106808635685802960552085805576997247496532486409413460548200077394560681708995285851518953356567365086726136840790040311781334342339267571080513939902328938735874358456988944557782412647051500665951603436721610519984716419818572656308649076114152002749021091234306505549960563907703453751834339188580002940108836393379048548281393954863352721959369130620956376341738344492180053191099846475698615365884143381933753219640143579765070255671345748115189691298600883687847854963715556247228123018291300255172640278102762185142400910169057976991462079300446696533270585282528322849272924445774750593505592871321825612004342524421127437086828229066919206154052114487053494481797784282320545754857725836860941788873543112564366081264981628911908164144538106907045492833207115274619876759788253624240728082443130227543918813338458808320434101752380048774088501752021726471820694638020847886927722075585741299016572726339276679329722138624261542736657125005440139915527446148394626242186235182934257863078099378073065293709808371615289208897742461434521240818458188986586286183190034404335607288841461189658820861677340920987252944427075557664766763009967913406415559717021110608836980054867605573136119387234255569984837952137395983803589789900910864288284023721231096455170447222460682949682166794208808298545938038966225972473190366701423595970883306185983765347738392210264981189590398117187435915659517540609663105263714443319288898045415786208352690816113162193643350119488405016207599669198694361710017011568895247769473154138781358389144635127882406659332834725101468510712401315556168929241055240294834739862193689885214315489381645156405228068959223031962909424062062517755362687357502300540211330755140399730113728737509112337697609965238574462881933773781392492639160450369912819511822358513975030257734734565001057153704073290455537260526708659415492179934413438803067926515744121886821353445615053478581376199800409875266838090376789419564047427702785874792771985287089948246153648526446413699049264326418437236187865161828079672417520547225083084299279700894078552201398044997874692583013315376678421528969082148415025759855905198241885277065128386009074329450439119346826280432167392369523967067871227804889307919045352604571480594151253800773660024162705455615207877657570253989743009085884609015420215448204378143226483876966476546297499845070142774922699892711827521427788023605186742387611755431661112461028333014667043792845507327708341285889747062300667722628299187814657348801026137674146033350343334004212769823768383644386801885925348173642010294405901764312861173592062745751344634466793424783407227806936397721206036925052395016381773738066928909454775371422607774854802627216371528868111159417658680209449860552279248045586967958163439401478358402128017935038630384469672574090471390971509753331222524860954067078210453471345129640410462948943813351659039658470649472178969483369492030718008804971081509132381632863482268301243855685353097463518082160457486000180973907251320407771624658539129399908710497882213423840964342353328049128262148887659149361467716518126774254110584752282432760099667741305241563390905021625858468310427326897448157529634006639280612427951554643631177725790586157638302146444476965358150592759147732959607059377202340578458498972707085037298728094214288959261857852272003014995738374811868928994811606770694602472446682322559878933137167515601041254881181314173473475051938708244908959645729105041448599600660949186553301037591927027643859231641323776793649519105024368297875822756823594578922978245913858436631604739887858646844898704233751841304538115905199484537494163104974115380011470848474162028351951553130858462869180510564500017845524160576053025504683573185376360492597583104651232348837563384707697986153923915875022223301620835566398704265338605417321465686750437466713504293280804566324344313852477713691166859081978147133741502683669415714023995021284935365172174025354193544838498606364111125279164653198568623048180294883729647133376476753682186693444761323886893803823194920466903185290490107713242354478731035178182374299361680923266295895682423546060382108064713776265876895709265602757562961098172718773904225862648485190923926090165198821432872815369265444157483950574189109791564406892867814343601197366684631338981127345793727755782972558866091981109135052138175620870639370551969422127812505108863828825455970898579613564082770475650007998917399075210091656497123644225269865729614892665357492094446968021304671740661603415221605276320203606337626516831399392852616618873528682382761360907733909393969774204119504321931193305498878014618114169135185408163449745149820964662432963117245577824561572332248234955008070185853606929970718386992362660817857918517847381828677645819224592818106668806873030722201251277041973392537588848523772709490320674501811435469377894680560534963041896297181069992506379454121072169364144876914908687516271802695125791613125845282547112529047322868474817538415859313511499350511058436045700197185354783542584288080368546069728582867071386830549165861640627513855485390684955602343685230125408391446969397269446190526666806438595722473408291265194413356238752875007006308578302286984070507807838070261385771854072448484291853206669396549023193511104487366403354879170532539326784457589326219941336641283119384311841031997046144145288429306008045244996396904229738930882124240654577608795606944376421829048016975004225992490104096153390003108527781157686755424530934946115381339524601516267604912596703013519721966091752995808378973799330222341086954457139019451781938682247779477776860161517474905123731619346129420420179711018917234364176718718268994121310546331216679305486339676296084753286226424204361470083473443398195560544349836621047393740312018983787182597103523301742714441060544007852280182985432833616616064909879314664192772061898035202107110409325925271068479555788451133503959362754617094726184936345407420025615638270622510374062781226253187818811274511373329323591795280323902501563387595223136998754541704923488099791260016689234486488916894812207481950780377622460913360820745829756331048137226392124641495732075657904553622152579683732428874402136350827553923616244796662001895058237848516116665046983861668376149083978875840362336191912595479524030067425407014076186239287600682951717535419345138072374614775507023509275502490382076579558315141421202548661424680334266384117287894504913009457761402041452160638029704549295660086944319517928993037564042500206504164571598527684757416462400607816891034332192242971498618144179886118829168563451160969295508774512766721477867659274642602122289700674186325951758646226836178231797967431850765846535547448342952152109579143808898249959406506312721757293988629209121401771092482048353384208559948878832001019802314703154844377899861221955884446546283667538453893351791330580187760240600506637038980885890601633970825621959455230176463766369298412097976852175535246191999355173018517149665458608466479136999471538320170935354265897069158701844150650079122840091124358157154965272399736639985731219548254135528351521998911549654933864154778192627283073446263809300629587458560501747450374456022669876923761088951633069155386920770857654895816592750769210929805894350879454377162501448294254213350101031806874811091657978297320318695063322397076211915585660657178450022489829183087042216059897767084338834790931311389676651933331166855130597011024475422931743192931971356059126925230379307239700460353231611263681259899569730619883208771942545212384596489540019914338033627093773885917261852780944267449428608097463840043421258683228332660434202119308483589360299509546107170606618557139035537884839686035755329253857795675120622339074154983956674369797798469419666826601121859748146662151778585686580080717858710908814021362188119156022983362491579554886888055381453082713757027564506637433236007432871193382926411799829875729232390130093914458049093114897117106859435798180183869778617356256821720592747779678943723851542758050831242546673423277600105469325197650624618329319951735204581138407105670673752175336100241112824749361806392690254006668509485690700550585019660710877414741519302561797704404923144079779688268509024886048094438886329826262437291644247272243874638436449071080092037207733977655595120493973068334282994589384708309337719120932410677796290483046388074125472896570683673463377903539139262787883339989629489482441827374376638097177825545393922313038197455114918804223339202918764070755282041503726234875936044979496933243440227497306758325381944445177989024748701897801805651156917527785412035547536753984495594433397475244570503161961984921540916661302542658054136587703208367609097030375968262680742178981393076402329224983685013701096957333481385341777643465724780476444437225340789907716032241572352914769451632648406372473889457951687264753917725882505289460669228369841973451574000452445316054634244340099518028243283540157166603116500575394630052704226051797408289981879032135362627910055401171476383027274000549628755781051412190848155338591149231042988562874376564906335121640353774518970563750488455738288657667743002931432330881961373597314886785441044111425998950066552147558093470325161947220560171808542717438126435553747174460445305247559200347511265729806195292387707287081324076444862253899589880774814276162246006738632320338635460678248719443802845507648044047877796121595775234329691220920227068606006242137118827091753694264731852908546795607584570994745292118648841376263012206412793926039835845895175812840852422034334366512348161033168178910512966645397278407723571312531318962089112638382604100142307153225176010832754402219460948715308902251368708857461624941375241865917961732258596810272999369832785596457092798625664084856019721927566279958979005207111227420205020635929186320146807702669373651491339762324890651666811783820996000469411141761918641996683035140889757435324732256927644764128898498923005587849145813040369499518104362990205046475064409181374448339114196483143434403874159771147249192373292683157036295720004419131202962817467631077737174846100624451088364020730080951082098695586959518626852549849515031995613333435792689963787236849989847999543378281108200127977112881918172715480383584495004126865032968175646754643857575729139504315201477363591743421217098635202612786084439697963785043931372778358527538954056509281562272088290453498200762265709496652742266953097967206407084930875738062403989769088972261127416249286807268956157311243757656622430986736990060696680821120993667595615829097421089836921250283415860362186544086880116264967065190415300565099579435883804418635072044776467781760505258651009495242642828520949252268117726500383784807843152729398833544571241754480776569429811529823723725648325602203196602163166810190272219011264349953460881530779568710686976969922125264485451099142948558031285170190398484716822991958940674632455383627534407860059319624003374945169083785165498457818130185871369628629569332265506611798366206894766118455018339321822918433447963459726189810502023148071321554404459298070515170598230364297731229150240753999313588651846883106057814814330287255957358452475628662516504454621478009795180668881219588640941204720123455291994337204734726586326140762196350632224850499664248620019284850233316386164353901270126575717622552650453273606671605506516113076001708323056835010611493675986153434102356583891204319845998936524968489714053652627925943829227855741512958228137107779715700740863220907679152556015507668118823141563098193204332714165729737585010938914398015231026924962850153516607633719478701308615471152897812210731220274658633126405080906733776627804368177518070676065879299472213039752267560081104111658547994855885018512923906525024191579848163898589145520249775120584995606184535056768332171796569770929183949412395196957339355684265224299599678438492104083874632927846476383098772507505437102092136401576125990737605933949049948533090648260987359096635094208638341748124035458364072737383987280264121850431221239948114867756119977011242151357163560275568069586189293251423774206278138561590509446463788484916682954695171602333851374430710084965823679515601323564625483995339463619212205473190339045621678306300874980351335718459250174394435403265864571340514844553367985370129427989958063237086414430602960419824749764632280288255169233207461199422226952407190830339049579704882864449375374849660303092070693275026625928950399300620165991361149785638605424412803887521102906315645127288260604589537988310776082109641787518735780229751320084344567816848015255607509955657780566276612257647603767319886924191282632143376016567710017319044899107996983428646215078346025638593099872612244657470742305736526582337819406615639274744017497427997967605248898015074296534359398658631233600275830335066988201174987468658597499635453734400921158287133809612816581892412078034916257839074776435005229579829746773783664229657167487756729444231973995149913200966738203920227728179735243556243903796943731048019285679370349115119636328279900938191006888391871602649516738375086712285636832851474879060095718403006609491101031431457356924949410817852181190169832322947795347221434496865139580069432661767359402995059477518434775270412672830586014891467998112812237983650940686958273226571071778821624825003094690021524171621143530629611845999097145135460156155484388207697948474263728644118106474726397858498734634645846622033329458934829022112703489757548671116015566634857635400816006881830505554435039102063844725705754881833409720246309446728244820810147561500966639149661584740752459724118482713130926323316128039149059183403145424254719614150493440315850208390981005918945073988661174957599259142945186549587762037990637541642919285184178141667561260737624542144916502058939520146256880602521768392113914101948089140683467359749524211465081811875872115898963127051532945670544067084323936876279601559706290875689607880229655152017917191692498550909670530810885530701505716931999655585713361346536849189184426443467006988708891707311658932817051046289444879115431675104178154898488649262889140480040100997519982807287663830402013594014938372549424565245552556057047898646922738278696704054621140019590430508052131136136719006572127128280354628323226738934922297771988495425874920180230043726489375570553295404043585577331259011964936715491065254140487944245016746166412969638681183533482922941338212645399408453703513510732982078402162385166282218807736782627617856267668746237657306915179398322046204912437982017784876025130769010996904723311795348903851910348564453445667223207626120981453728716125517313781954885533052590678701414601169480600662766488130575919000910211406935478134166484992487103315232639519448400233096903128253921774568514949204496199602734361184954402209160186354030081927583459006001249933477920818736710097652845198926752080884846407610297668327127027317721280340622088072526124200016560457166017203085140653239180335525296924293836460775041084794833192985040162362499551340476510286679632929616655302337352572449376382517868248792189194916893973668411370345582715590835440688814018409219823624060179564848546584443168794768616176716576215417058937740836952914196992637476791588934577882270183857735901678732618895409403923076379368434557681124957624995902272298608018251350443961259027822610840054462209827527182810185867784592082039359799852883247451748522270788745512676602665063827942104960006851607054336588233646457481586884631033938037788428991674887635104855260282856275135328170593717883902318335930048042396987281899733983019319907268162683722231205927998341093144821813328221713371207880853290775076385523142927714021443540782691544935768114030212252280322614704112881971015974327387783424075889453730398786996777360828717175648058976187368290742341779193525695519897459079928878937658668408781085771073617764258507768565138771668752001996865730350952242335396979129964267883867385502319274060987679776639628194331582862412376115393676276482984588333224856446137538241497427352940621426332878908987990161197048585465142930101742247074210728446170575179258977231291141259335321289610912056128131206894551353430272435471928064557809883106221584084360393320156837356059274810209408387886908205851070506929932536397043513777428647826626817357114759277129837697393794962143054883938007009144163263510868278503893818029327719071928681946629699712716684904200645232840330974184823590837336284881000163577290745090756513102658204425477751921966288483110600122164042645722391579708944195798655572113024255773494804388389777129125535221066599375237544746156060680606861359934135180576352375587895655405481215982097902668868082879988805316758425501022214853664363136981290708118224703899468289657897046909298018850056872009055599887634825226148135109286053918417845240257151411020399388849654602628799892624833922589167022658280375997048309412958830363539367474717746519411069411240572733064289142478266945871028413924579433281731145338959951916320854273493456709698573247618520430959945959119449592904308552199979470849263512445759449782707208416572029227740896342321124183679442573579675603119943338381357274144946104181547125905675255164331113016046199676255478881069090719239342554970049348410659219909944238003362589678814423523891609988975676949238766938433246142441251891911403483988237241527881986275992020145013067581903214009519531423754652708392871538686786915237932516873166867840972979446732117897658073680952565843595609787772405155915964171896064315108427044384587417643929545635001042444100369247801640866226426104314226878400133371652452686131169764157065773343436542101524907487403223134126296820695261834097064306053204707100150160985223707860838588126219930757712136516954531129621737617922172309963861329511649759234824496001248131776025076314152797524436550744133075341826933326338115283425962328827883579927838792996593064999117975578088897219317096230148250001705188026659319400164512913093182166769238012493822918853693261745591633980563018567215222241616406303710499161122282038498692972467490702243630370647206430888189856509215502243232393304755945352887881025411210595695591075598829497576111563804701345231224184703341718600916849133026700133704884450168431136674698676705427426626399931709254351895346243964598733408295301088052277373449866937521569291948219080504853134994200474231940659268761942112750572146667926620323331876263173305285038212277178663472885916425577761574083838404340891238998564142790357045540964494036047326281541414888876658973537947947878126942855913000673373599283002328601742277006366058861410042462668800347500606131608279826315488277735130934268472548717657968433974647922418979273625742129247899506335492559153240295188249254696132889757568842926380781773450042930540696645061953581386839759665296748412230918110817024260127622015222547783733249263770117094258023729349673677794284333697218903824492436560583392304376360582689570887841831226089488063306935025648251800833067576093176421244410101184887148735410701290281355706595095751348871586297731184155485548097531782064120939477114706234653787538374348347244348866817375564381527219836882172372007383703883737517243409934220266461178829090549684767263084976103288479390245922022338067464711380721090556459549551247820207306203511489906534075512398246262301221363291378739616784519326489803721946855341551967954523380303678141931068811394822462422597457643864801908829521876712266612022622710277630537475002488381045358660173662373551571685805396777881284608686107098218230438739231389179054534836026375261145044090469113468915749029212249912582802927510714282319324993705595364228358448806767527097165805134081067269222386449456515435604661523709645718762561314680209186705783399638761199352498922676453234568714357750231109317438710959120211064119971700260237209353377938759435964935947363988890309015278713718040261794526040356156670068327042105566870578812146603213392923155103018276183809869813056760570475382777184246699801297688821505605595996841262441261336882177797541953423464596336141032748792792821528495110223047155013517621729442381813397975259647819694632497436515243795765594799428374612231921818745498261539422339074764209504680244399242336707533821238745841650154898242792826633540229959573357338022824522047661635550052975222079804517534242635516253955036092984840019895887264118450455263699790773934557598447025574942298092421492741112142192662630375343790316627705982092886727784590452136910725919467710018175639031088786855586330926591688876350378440038919229580982801364202913796399387414251971277133062605782534881019299892161006755021658320231498401415671641679152994519190138003302723049333712967061554158336976940319594494642440862160588670396358081657758659457311318427934371519701503418901943226992339409193370942516826837876389852717928802788048234194325359622530994926994623857415412882140300560982971885601993592256687730245542750715587339276209954642572152015342882469045746401659857630565397233011741304144461481048773771483557468426016430256344628942378512787981069379740579551150368312516478632389842205887487229130756881106204892737006896576772086234324173300640102230675773532687233085655440758144338151062673646808007446337417532923129113178125190899098362697021066860416779874572837486684229890475954517207553071726257977371772235749552349022221389889969176500986708842839812251273233060417773097097255671115954925793822673142941694387193167468067181022423123823748870887002400023020349107192085081360984558140967971987447685658030575383409613834238485714521112246508328582759442478862568551003591397975501111541715697657896375347267966468582940914903941877588972311568100435323501964269520240250841578430462032974113433238087884178735094044764813241267040551769795315489937199892675979500234152401964228770982438429829121264916202542196235692224832114725217066453534889391243242354358854894832797645108631469917260616352218954616232348274966930932333624681307673566002132704139496799632323323928455632038074092231471621850526477468535422151663567450789468856238117883974759865891476824629653389485298926704375717914911790958670463812087641577562812781186605454752766622604687641951714093795775841593197872350936178827599958166643781933004566062023815333670751419317951850502857997286303582262876909825039240677002487086892751572290404231268013761585357432918923037577624141880849207596241425668359360667426849349217347065628535640165151773137193279976285923536533280076208294123572713386216009987281800532822002560601314435592044535480799757638495844969175947731318493291689986124335537647363974487911591486406104402597851396374589746290572603397605032627211814333227594728078575473221885607669991197676293138067966884733743471737327289018117610565108555331053111230171235958457134477888772820554636704204341492596539453754691259576446936120678332231367529640140464056825894994962695829708324461007075168070668162327921742640431985758111115576323046159550287176103756725937258653382006770012795005378918028576710039762606983453511708526217689941591267166256848509832051137710003240660021253049977275053854534430453412313979758528623939602686136462482010480700008414948330367482710848027613221247777862290560298365613303522027907440306816336488316309074877131735346418476052946823298380134000839907966209902093963384016508618420525072708510164990881427739288943006208071362404247236571379459839405971370350586798862047793437502536871544135636530217745848622604953547428342614840091949185961347724095192874813876539845560600966916395306005225314544143777190504843162067353901754077868818175408163734514781216168017274311733351043717262864868729841810658244402106552840498282208330729083045279303616407637112653779232478107023060772544227234139952043889072842707677233794904907707337760470938710618291502727192314665434177206770583390698352203091604045436015924588639701187970775950340782300113775053418328197116684488817725157136629066673330351395266449638739569689120444136402174636853771109577107945431364726603114737500022306155246759896509995877664890756876633674126989956344449975161723719888033485312140989432170280719529604685674842189333437123684802556772877827581243516919638821849201884297543108486123688572726980754535382797605029975614462957606555460170100238604695098472563107124803109909864148627800461987912067017218097810374220529870066518743610451050400749084194990683552740046570961932130647199248989583083898745594709017558041653492792759600163107358193398744484148351562943807051688614914524822379146573285735768173351403648518270282199475928552551394937065660126725552611289128587113196499521440498473525385594329410509526587517609952844526475570589914823556446623973508129760847755294618815533155960034490017831346274987498569660543248025587559334886943141108176451709004826011949040494394646247321620549282893224942597195330623074067771815820969576646365344297369598188370651786139161727633772663532845606903048533757821216333363286328842625881689210324914556895186684852998157106779513918438385567367267013422386090674247436796101228637911352119887422560162950958018289088204323904001472552522585937596020172155303330966543248405676093576046771622627646436046772796896089731756087112633788597570469091714158636845921405967811050303787050291463462679576219046520746269428170895069770874363052311916686929488676690130106575903894188148300016925592225668131229680068757687426898496763889514868467063761585088818739071438144645028071752065393415989760200182709461137115639041087851621244663767581317596197138577240638352601541861227934098489426967343242674419030215903146173295737365414488541417570487228786158738180003334289348843548679381188870474132085717254885990617149481455689222796434270700306640519589533003621147529295107427864054778474257729608264906641168450730727526083479152395039736286574922183090630336746661838358351715071037316432090333967686917109041200729335382330158247951089599078022838802803756113507639870935705626020811528596751029702885340741334914274339043300546090816040992853096756564871988363615357420150953811678678906265362187294428648711133285045384680994217852975979694199920540321735001316228371550859095899135436585007979313127664045838872347076350237506203676547497119966274295687697417736793849530638054806581855231649893767073616726580619724424087598294075609325122280202090572047402841076132981196192448557026758461047164637543646967668646250080573740836536214577898839117923309183691787108005526756507210752672072439212957649739773442917947986357112871922499807224902326629290185169789187619141835302406002784218780445058625643508617369312271487714561780092404447993234582331604257501446261848794099385755320076415619669751185931634991284894672027898804049614716029372630569976973761312135093519361134945981028221534214316346300397598489817900327394374119634401998263562971047605116451622279178263011586245301241692289627881500106394206066070692252331368041474758005129624360040560057516927277659973708334322600865162459878309786033248670568514030637892609251054084422629493209879112021580667352349208486663617336903941330134454171648377196217930199963692235668847477509493015521292380943713939206720557774365601695595043127426998159843326585499370205870368955869259167780990948699238123737091871897077468595036966222917465564209394987013632197973396577181630353286557076839412518789954014353606295932259797168373532408890255429620493757780730085254888836059325668569585034086378155266311281781782169594499500167859082231709286732461518663584559384320654962462360393854077710195468586379125809973496266546620629948337796996229066977084434868888610008777959758339839148443889912487705727435982450433555295352010233471223767689570073656190195215936331310344862847373259729690176821399636959628373863847239699856362781293120255016838675011884866777053881193325060528922434759194426187977846715215390493451138973962256019510104301858046307609269730613883461630380649105004905718599439014878669004294796197333688291774906528093343552873602474025780621537938455744423405829351433557926320737347976920295187146610294156425457076188424484330536192424816733580420694729386674506599287354627352811385106021346904961931872149532721861799077207838179062420784904977991308055489611851761184621571767274109374465362983272556001352580022971653143458662288423149285935527836382498568634823232715254191707824532684077719666782265718304863576339337554408093921698054410380134644888815391080594594533799801568449510972313176465660010217611818730316293385238446417342950156927732769556195459028312355454140086394444521928833929218799215151999126559429661707017573856918414852999424867278882203382891375896278576319290203426477205919762799639537012777473176065028358910383027053269707756548539355607265790279147234149455940519284386977727445418624653876451370319146082817742236407497290204997905788711547235032243478930650060547907636273691955089066659087439671888988797245316799587977700640511611400577867986129599355167048660176185592299032008436685635034447526839836558910814197233050311972448029719184161323638141401866660111064085652929978661562886168569427338578947796064449047038580301007492618228197698695874980012229097784395774191612437695500166181017924214844525466713248703473150369075094118257457721893312965820703171611404279663269311313093776746577474323569009600133873382869030431744654299575906931705616435467390594940622863483455574710093233670801744507480701813226045982297128092364751999164652950019570834099763094963202314988892115411833006093643910603215038235965554514048551675499151262195179867433987060945973008026095316523068952771657094300480113361655728454089426846291124010915198805866045715170844766111943174219795657285397244927551794512002137947704991793550327610618632279441925441448053571876954187266627818064698168100695389281775223737885301988581674353644497742886504749457509113434397460122455615979675495837401998346241618820482941857265281319990499956624942039922890439427449636136628683144926892921608881328397308354026430823118804995612366391857071981503278738462458697073672814671451477873616675632358204376172505400752030867792853723838276997158726153848646748800593185572600039897286458831367533978241763736762984535764119091156493139219369945293404979069785786061786216349140781254450241123638987012114070682001076281224202401968228967744639589287499683216335292441837098541038513493112898805767534220123692038125039535911870033856670549593476696080994830773682369535349933584156541409364843806173396900701841212068931136300971705397664200469827072363358917012215682030807808260628471059713352366724916266229739710228689181760604538205122297885526135884826761236455642343388593312290132498069396062422741308220394292791211345941381381527018862549858742416018643484050923376072317423595243552504662934972029276433919655281708733045008737111823643223057206044865816534901425261090074410731359857660290916352360276310916788938658035959043847250150541469087279039662782395969533624292549678594398995184433807153790794012011266291750910461358175327963810977324874711110229441731777127711506003722977808704190414633684420156782751867660095994507473228564644317953140606350175745448479466935340236237590708132962575718110073196372704154881864259285645273856714680408949142409489680747246561512084562189849238820042253834017688375274863842933282156176794871764309867367863852202613950043387627614669383088118221137174839650790365531875492604523282829206191821894433035813916028670885314067156629994361803104756824779054929729585559044133026428523253351301484715154109733313179814857110436217695586392280274112704981163429904100549014588376407684278064568170220477812548525991282541913241815518413563205190489449794662895848262605157178909627157621481567322794032848861473341520845206969486174674975756848363130094594357998502579854218239425308996710602552651014610621784811070829286188359821899296923248071388471886157079367143597621375175936382979586150832559869651705794274458420126783562286113881834425981504612238593650316685652348121184907100950942837861367809842458370573810651160828697473329884631945948539905018796551403951145193268335251610903105380748064809250412291371827141846301306557342824686271279315905467461317736851627714410019674142668191620084428642526141159248111609688803448507520654477061576155750369222009953123977176678426360090565702013331162521602223883226751412420796513269920770843770904249916428341208715482921135900484170846013425883850350610934424842818082598447223016817156562467770846346960858198546106661062157040945377454701002958907100195398453082892069625250660913589951188288779124293449046306113574828943295327121377570475732597718483500788481159224979942734490218718377317375815579205017225904228629460155030887700502752558882098717733976692514407247452541318011126090995995094000443014936163915108179270899158340354442440216698274003879654322991203663218331581827729109573660029739483614625794310204025236088865330818863013592639951631354110774488554596620284406586257747931813709841440828989519103636761412950545595491159165967858378518858503747046210145401468495626720408160609072057375197043579849448111707763782226417340562168372858987903405675726935100638741649810365670701087181358343597892875954161255349931899421747319115315890958774175704123657255568473841846156083111944523548690866398232318691882105824737565435749273854760513735976737203217714065082226780538522452157581375019645767715410995084783628875071289216031421866958690815405791194190241861038825540652009816124922274293958260660779399732250013653716006526590906895221713884318364755590525517626576952111697758212572575033141031730979556575274624694778915236931140589188273931458799799764714140566586285008274091910994381233852193026777865274051393647567633077770823814700270680007995784868804446914818418963559558261415410380130688413203966341026905278574584940442963168951631412043918088228956861015297904207329933460928078734892234241635447705560340012912240603371720674518831953780365835644201023554632157205088163559703479793018019241824761978191190481629698225005041656943070345494108266092334218581241108065909091667216499634090347539710027051197753968626260120979395212715929569300769690345338684965046310437693295039457548077285867416434639652363872149089459116121731972042688003057706180063383813078250583763081432257251249528660272516508976613300845337703255908207943495645927303743064018135301224260659071893411147114896185478461694838152763735945009854996199849045184072594095707858834107294938886231652419219818229350737029007332127549320924814722141217546026204956683341940671476398505895925068922755853735189190534711407780792937483271380229268524913583702677430943074280261167454655368457086976365499191828521555790670147226837423580220544970442526940645753959272047423457128535020058058965682776825980788211490430048650749523008021648892979767826165180691343850663074722174422556447929093812017073139148120651648464632981214745623460893282115869930417984610060033915073711611200334321634791329808625214525682885403443759105052180060737538165328901586253688321815177351972565177840281941054181204418424449946099424247338645334087172215754642102539024459609388995971647451422836803283605857004286185415237314587500889361165319548345009883697865299573288155733036576270940991536800849372092232481726135134535983344576094772305509248210181457028736957611733020707568804779987839742182872866639453475957337123690969444228211711203030245660788230440770654229721056175339413337042619068664956531005284606490809270118260264844284013066060765071511210699229407006626818425094977722238723642630011404869797372816823696171033665416185645827219450335575163294080420151192888430967152962246245367110942379123710428609606507929033265218053305734521322134820382717913073028543416200563164833246498401619964922555097940067940628601380582911374254172983889300680844984700494367021442602377101892902287101790709809887911601352092406924501103695964432189952430523968442835969731574502160741016909194290425360634298500089307804234881478026435420283478179086733404859376168829112724855421943750131714081595742387006601279646951015943506470147185286644768954479551817308134671810300157117152805040168466834643790133515445199351845166059076515426108469321707122002930751629774140092254440349373439097866753856358958286402749585386157598225552167145929545650755784237875172852064699385589975049868641279568242227280277162187163083255318352109500334211259488556299848967366845783619710455585389870440903131096992919512339165832123938467143724454470346224489480331544169126452467270218764344078378305997494050598244679665071688271455360713508607288320099995327447122970617700746349885934742056132474064982671333046797613487091771898226555279868961002205223832783396461703732694009393495222613551429406961747640970358366880538992774722548806602082839153657821677608522746499061272314946875960310806009233051432459399230782510222019218198213524538957389896126276911321817888978349668537431717117959784455933997479445614711393109257453752077281893797926918212758128738822267996622016186403309408300351410340742017265684865958381692230070617470868275632255893505134302944044482826224428443203216355138527588932912193591128645601598146024787260937320697566850152604290833181294451843699936968080365565294839442151038910327896477081572452960830132687263995208861539717319339905421122881091483605838421547696611480044522829140559877390359268617284904734921133543515589354630175055236265405920712597427660037453895333326439110950383837517632632424977477836490241699535387655925070549988174800524389516351588515853119599959726767238273431764783949522510923500376321662860898449130526716026385724396057756790575525924572622885830529441031825843415707796490605586244687831941021564241979699971191773265646012961877526650836840223491217215225099149175595362025709870737496735707736837591843796693487693522578541321166047103333298773073488465459636330342723622253416774679578717110417986813226271213426051896167772284405791630788186784179003490391372386472356828675125383690305724972328571772486686306002950567367277354978261273194304702946055273158776211137533209060247088217959036234741414762666184889867353343458012064652316773118676430811968477606765723229920361794992563451386794351254422954582696595755357661345780719478823320540975827206040975493245150404066932011413706637334305505013062771443773682890374076604331540605284311903243361139697979661476220982845428344615263470494755153375415039731511312270625363344252556865086385828705139624318123230177800507917847822013860929042082890508920369814754029468262996645381867465036220089270398723129144359870914492598218831435256103604051621781578266436256493918658183090117590374804887858781358372679589304092904089620411239748231316841428688371129531173691525218746765696532554521217744079271450650583022420378109425167351118675495296056260863240058256341634930234744367366260307611315059360076073872971639492458674158531745043129631599718284181352287451304260247475362380979658652503699215608034406022292501770591854835353767300658025385002142370204717851178463075480346284146458103523117106622294586294756959106261341111090516170047069455070507416392930869017207807489010705765699244757186773667603918281499836175567078824751013277917877379261264985720419905752036197562448530656511037296249138822416848219248483318783435495541252149766328187274727528728290175098990284566812542205889712035716843924699051510203017806705259262796154668632347045393844934531254845615519370415130687291975423971954330286622298269742958313874782351082872283169719716060111370843581062809770325468178814114048173471446945808622875657364810254219110177023816205908334987011752928403584826827566264158844440964813363822632011368731414491345534692140642938224298975883789529824299624620742523486836378613952036761997222892548244366820735430464407620070426716837255759803774252443356819104153488633308727187647868296637805779571292571483304843262301982955950236447931744742023696379263383075020108698947099694650994829512876703118004791027900776043369303219891706179409048341468713408322228433235979931323190124477087774166066826672136055594734863349302298239038564929040351875073449227514420818447621283368384361078341130568442259182591756564286233762851831954264914880464210694972768949017020932633735264803129409663739036549929960742407765704300933001549818814336163211464436109466012093695844309506931407132091941590084863664273761483226436578601453010171497018473280736730523591302691992685542831220658336058736925846206624539013396157146777583687381650105292370530592124077689195900015487110111592886289120585102873254483346912420030348467048462132843496399010691041232699351336452889490247157308243613040797827806412878021927080609166138630712149009689851887580668413895665653920535915033205809724939284271602647753221608952607752283017437552869350593100619091476524271085129569351908758352910225764833397011132192160475330896703176848597125183191708994538245456101928329056407563942247765375833280312367657114856424446539708989881410873169819643540131439897024285820701382759613122575688450624378081022231945883890880519311509633847268237108189495090982497455048746207160149065743058249128564475579598600029996425644438736009851010635037201478857833556331059441868647158669939095431592146692299740510695123861367941920564984118180585138121451566038061829427759386843539078528228566347601200220795012119121648774580052117019744916207445360941600214995094511742919907439775816116885820903912917072396338266497570764138786952762213789193940540501348389965377488508027852936613326779855972512446129030131590355218802639671232962921322005534048565045627985025641662845747871831930292491928463047012855045963615045057127157685058991710259906276529726221397776352391710366179484839663331049319262600946642800741811944254519894755982915627081395856270397393198312283937801372291347038969349370355638823828658052984022679010576164492010811812022138170747528063817124490574205364342561886554727066389948772081184871180464197939748553309738025334943413154321968775372030508610533698444772202937862885666886592157077472440478060665874367664562015529023806221027549448434345938131512448906632681729318861494934335703399327378073478319643123073710156638042927059415389903143258375491611760534937208450281547279346501075221767684043613886594920424342092995391863684420760420365926399683181205179830216177024888570869489741937542217847549449128877025968833509899276889592213851016229800608774738415109067704622772861413085501170601097481001383918935133412948949929514077873835338990320777229515463916359452877832240409956864842030245704574656236042319988173297247938134424645906848543379419830321643948710061133518781345412222321442329173958795038201302209495242451451760577148269314685191905492061128498387148424785080473828124245085284094456443983740452621898944487050932534625430641861286465730082454869402972740436785596747235146310715369021841004415637975966434108334113490382019998852008704996443437751275670965728119247827203303989897415305844916717970821038734594486730265013702947009793993830533791887002707474089537417583686347198265419431458967708282020568177124994007532124946302552046827276823020012407368469794288341135253334952116038880682572500394257703762841059038692561778752013231926236262475319756446796273342412685763007780048574995297710186009533382989585029932619523816036681949705939132256198124858612026474497958829588138963602228160847158609969102362986762690297896465839500110567730385548390256412397374298793163810536798491687246921127316273640101864418836108182546356614125605097464841863059898550931865210094246111820180553880887059418148741642690937443024570399707467340603195433164523014894945360211997862678905136767882898638479092220030534877901895055023462732279222604172379865991422024048849156330178374776818636302657398931397366939182280250732821406720188669257556727404552428208623769931666727943971433337842940477032737930319773133366793971541971160197818814934008532984853888918339194690540584423345338085735863080905968224016141999984583928315847434352662303837581649374927897063626241560254822235960568552410266851762807680193740746335353364437426225970408872562055248117572261780198465828740975146631890967082644746578786509384936702887226598041909320034945307969078144264868176984643649170036167625742702463017594772030724238389750125789198435121929238482343237835418819902958629887764115195186810847268244059854100636949528969090601111752331136228429545266419413031546348226289633318185642850508041781014030032609353543922419775533558236274031262935491066273636861612794686747490026748495151871733186440175546701645384538883125690632372207483996544586690174097202716841388064107860557990204723205793031660299154127803221703429142249831196296999831679501002561799255655936805095452124513255153581586000403058154524013233905252340191909446307208671735256908429336147831486784275963493476583445445796384899363821590312233361736502503481491615633088797950460698527139811288690276283169314055501708252382330855136683187533185614034441991820044033383288101850295153751849189341697850795656294241471200112948565066083763691240339947987110810998530005217828940986572629445879379028785403084085676836145145589078264728748122930557925996931536568111440983410259434951780951623569259299798784689408817486321948052831918265325729150920081214007230769323652016862497517425972149285974300750733936504152778008910521096916552307997255491482451107801904758582420766688598481755679588761422181979346847720128165008168607064919013278083482350090964968476918191372658147762108904662125491760366044643897694488800515238793453459426516533097018595903849233203151501343748478545852271933056691796146496550067726283143066370491300083061126058823963593089384554729583734787180633251966083653895791813674535147313674714140440241574157996114911542875520101204096515943460520447930541259069404275518054271545919750359411084854030711974800052333774506340300762164176095352186834290184976991872253012383539817244981849977468752527513388641061221880300535907598444535032171520340334363403572386144180758875207979129334260269359807553219956688767597330188390670500989011697085062428634695671409410656527261776566408241352281285276902935754469581679523338379918996106700683377506151081687570718880726963332106861582520723681190455116044024111092749562924745251643552277233109889779479819379834130269351797714756979767237313637232170305527132310819435751950574659905192029015671476954998399335038222632861966353431826356826141217397734448245050175206220031947091869989702307100738970478638896095659222192673137663343127528719932003204565871249972938540899118388008571150583952284440185518985168232846201476607851316318310262584590397710725634041439324570720717824000224142976628794628223874575202203581009529108145846307580449124609212069421722060495121995706251685730750986044376487143213126895336140504550594546721100990921663766981936821879231997712924092537907116798365563529838623596658470319680156006342074527838729100263646859685205895386662285323601855649052249863448903345871913439700526406660891233800539996240155310676869931144225215262663769179644649987829743941667930921274054472990136615701838622307902901986352805620237116368218459823952504039890890693688506828503273647882015627116178978723664095803590198825004690887320081334148649081514040379926514227967455864733534043386291762628444563998181545316045960358294096807841979343398571742997012354189998422172985943097345328600388553668237932111817456211556488179056920780197836864651953728157445472850451653291329681226130784026071192658018266274882967253585676298838020689633193547108970196032058188182650726272647512102009072154267818349655361250783873425208032378011766948958905956736597332566334114801313885298625256518948129192433438221811026230637264508612505169112159181905453996346387051636899277230022364655220027637573076683054487447756688230590390492993294155289768611334235236313139675658772700274662240577224515041425357609824043385709671262786741347864636920729125803624148463316638405882468763957538862719045227374358564485226092874252831533709821585525042592392456068497050447793588260832081418904665722944544220148247082465043561564326768878701718479628962254685290780321131170660176799265811129385761975443006421645781042021509408732214054526105509115095382946244861984651826814053670525572054353493777555302473532072367993464485115681966868124283509790047323336244409133141697164954612563445993808528877027839377651851734948367851511802332641669511955942838059044731979454625796537103672007881502304014323883394380175599319068159611944601319660859676618250144667307823916880380385371353410545740325897226362306542613519211912527098654816160623044396241309875059829471445022717674251959469872601347349312279962328491169472340069774869162029871299429414441295153242611477488276975665069749184167102494832991687291906817088623249431478282459344180597270991459104002350789660275083221078373493051129092325312180377547805333502694917892142975399373454920740513134513175970964699694300887803669570383492389971216441983416176800786049193108430467960154930827973292194997862645140944809425390509249521179139885229148488966039232528093212033807684773886613786552565810933627287342551134490781017034320893084229318926043636491703852081027204420660984289273530602879899898301827363572204805879009997553510093732840863273747654011604615041623172524755085129965068587124790231374126003254676123277722331701802630210946008187877278471823496406049607705785691696832586449980489303371763337471924237798578060226174989346305613727653398741561471728277582320469725567797186264524457988450478112099653735227616729060631119282030234092330466182100556907677111238321298739526660961276148649078924869142189724578848195706477115936825955812775993158416025041407087319061105268834835422698674461955342741539011416250517007752359166322307056805944263415862134690085172941290950610905541646371624966454168502828288823157990091650944069272979580040020108417781747654861170072756881159474894212574006999942051759184404023831021400521479064560365847627056362664984037968257259771827823362712741823015650779406994432865824140234088173408598956509401869991676423178121256411553599825038651315471243446932563657842433286439813262808860880772749867432212961686824060429992116983671082170617524835125096597032970792129280850409266520533487739743438470106291170412647597621141699858875630425847566664846424059792456294524746499091489990299639953600699596612280891058372578032727624633213465948264461168585375760718071299226052082907582185119411890257588546963088092578550946298285588273493514884719013912948410014764943231450559433520664120364901132691689940761828150962819666502120774463613990805417802565229067353539140611785402059617372451322401974229810140130616041652745638994690473628919648310658402441211020048675122478045674261729044162120968390696263490398280009373762054253654935877488515612661440391248601813188236970307070840888696940034856492646997875160414697794904779238597521305668833031193050074330616604442074269326675130851027703008456046997547255817725938095962255712640208377607939328628378364158465569751120816015331982826680123117155734096507815115889065863762998196488015436293336494840430055187104567667379547026654304141704957423368786675475362977633048884755779050804900421787162001431766087553601789231640736625998317079991412781466565176716702757566742866235697113146612336429021564205769738204413032720398469269600091720730889865443583423583191190192044945924473513898635052081915055147301458378246803533495878336151509593433882829028524406467446791058553067909819712096893407849235239612951802893921116418803533545515185729632025886939434366352413031143659024628177159448067089122186191508941378079366103643933133175196816910982243056071427942868008936591431360197127811602479797266694159851098519687430892806707169735730237605879226329243423537617415883833025260988911999234097659006607273767230127171565826071027296354615077003817776528495832223594892583733348615178577502616064723667053524191665607472856809483217180714829352465142072638456464463014971434288220867690714155048775279265135841491732796329458026902149933726422985506152649051325266469521823919021987188260936822260773195239187316876958722395740985521306424284372417216890382635601526754573973446565818003200958969890244452842074207703081081330742976182440708519939322781408450803506671307498392201985854987261297589648542939783795238108780597715742790851470782258605074865952813764098478165358836470652829266291303575729369904713613817884908959370128327648752759846846368188872835177288716249689389797638765625438201256207732970858282327699006054152790174366047803018772369521276835852600009195496542907405966700553077225612460035523698148773024101927994144832047635654732966383531861478216243692294900222801715246104050541060157412800074511131936253264268915062472186448454182441777187328585552142855965587229952508022295349741929114291412365068166870672838466122316514717560465871461448974201237321560275299389714241957895440937358922590202043657299977752594488267824949393036524493840574374499583641993196955943136986852218840365834111405504324299333459613388389611155124229574332385099704854052295399863949091493233785998860429625930565308037319676445580683101578443644043251528714162378974209829014193476905229000055909254573974130823948689902755071291039857923098552975314344603390476778231875903916114052898901166645161992947896668956097610900384362081924584928266358858966452126901182993858450505106979235592553836341388964566942687866677024848115268192298683758613559455229041274339762798295759734483227990360766610735970772275097492096753669824594604028677017042578105233980616243192880222215935364001288978263334685585374891657977188194043379470007034521627969073186691690712607853432520346870788896094672032852267177285091515328678057669847522568072796740680123732941113941701329562923435205767937432967873588363324937717559160975986301034340198305268713802104752181128205816245023933885356230360426467599567833060710003202894784999584064244790553439928715532841517778577992759592122930888236120972690612610177782631868950712732235287201391973327253066139186789895587383945857981657842283591554863720388845371606199571742030957319860254156538877892393892549355348198164443444326045256729957568556673826450606587692812650949304271961189839960597527055966285360811126037443978263224125515017990290941424722418199399601166789665993861774298228422262292536139899387373759555224901545368002790543883438225290369694976287206954179987616698600867114354997267467792164228605166447916386224628570084771284373636878213976734708648890520344946186636696570871372324842197843760654102180182797735243820085620630560071767744502125069516721309393855897772281694702803118580382713680970257525665578837654908839109546017013928781746454372159160690066529118795492661691907265499159754518374870502336779116552193191057817108865986926657211301216675694857577982086726447754079363987455581287803730315458545670036750769926689923197498526082875706510946155981591509754783829590651220142247896964838640661266211313714246065350336247827128311942905968046838974958479484310585793838138023464192195263145679396534252792659171135843073725642967187302976385860245941480858638239647462596372904163835680996618219768839586099067707291276089232350853440155124252474455504658736937697460451950441043768398275957494773692954141341048368491688128485658752363048842517578062912388025776654307176123221944260144409148953366185529101567753532247161907585186805135388786112857652859108985048404649780456646645332992142574367390009101882375957321275908307536663148540965821385156355876341724794578770834031581283265213299199630676837767527772233387686125360912542676230872938334657896057221216598752681653582972782128800416833123281031271373282477540031635088423242141821978954428066367417133741816369062151908295897896762264195269423808664815339442786344802280283692844291516392041977731873693896172229121556560810554168902888001121307081647875661565629276190715179062459642771192157843535227232856031892726194332962655885485803314510207480758268717309492010372341259207710613097823667348015556285516630894764629014829629997385074179089310539820218208150138064921902403095028080236371413797723144116610688827816635775678888966556663931212804360289527886865400108082894806590185112427536259924773487885857491382523137886746849287850522197445639160936894345314695112341482739535807776564878476073009394835809146841292663480941693193453507705314839735424188165728689292666921201883001460284762166736306643473753525310007309517064708561217397688803283933591443348087083006800660326113267681905053788804361955694051576484703081736161576163884549113742680048768250693345055936073580473333212230534400751634684555069688509775465485243681929980382969933802154454665779989215843980627353481786345707617873444520017413789343779204659681854493675733017598409645249879584710755975260474326504776390497268301078807233497848022591435636079208739223498147069171510081873067347307001610279713787707146690961856579029579011212132517317787040367152763995949650606948537638383017804662740407903575742302710680929515693131828812661567829765647189270860444191272926064779690862291782751666932096848157667186002409085181240574668021999010609217668515088211117402842500240304529554185192090856303761759290710130472558842425022746021568770412581198358656886639879979369779749590047070898768351035976809899243987132119595458903418618591884203347611614076761455482152923217228838177890010653315799054714942767080277616074428709901752751316247273814396848164834675371688550660243270353996707426103903021807214306060280029884912005968804998448986844780803869305401324265132718745295922670573687827410308201833106347475535871495266756685835803459123380645530858684308921502109703267922855531405010784853159175960183936804280055813747806956713276402551698519214082607505036928462788757184802695069414082591346148596016320143268185257425763086089443066705163266722714580036633971452950999672192888787406724301154462623741814956136411850718311431679615951155832884848414723815279685817443178028620447719554004190520769114032086069371180179133197867088649670262584983557688484733759429642542065634623766391470500879813544965860088305455594085261479574799404324677001684220612886081249262800388058737234856332585001857082702774777487341492614619586388330286041781068065197067115590738424320539661927800812665029367394011394393301075211529197678891018524778439503703295508752495302649107865862642724183555690843183589696711539309809282075730359810377657559076744681298630513679185656040653369652844211021074624602497689609110766848572534735591623937223055087614495194677345222606793849798919504311941081403437093054953869113308181902025978643246611971314978545662516900421041834425559655853778487474412129707600846679230725200666776689235320355368001086761897027327133524282953383618427712589940657894680939581735550834583125031330434933580090515258213113357515869630727155730937977341075677962760665945877360419924584018619057126447835665989741798568222280937437870725131324593220425707197468637788885728042237008726032947602901253621343281269612481085979622297801148775009909712639018377206190632840087116804674401107957114774332618685614858353467688883708006837261880126739834111482853459383041999956729801608458887957031523069092127255727671079166199078452329534046144862306389674923850342584061244591061182704168933190035079356824232393164662354225082523942039382225124016511533128625649517485344565782980421640662313663509991227031828600868947349601317964726409679930254233458638255927501072383231684993674677228273260724907658468379683083045550439625728473914416162720264270606802309165086387108666088777127106077552731348283352857258230405902625346017385877452875260481582304674943361965721723737955190669282188850996142483498378520939685216373343125872451231961067993065050721098285870008651188906583919377804379364274053744978589811995913300382635301021792681103100804795900680539998054306921328850090661918891844185866738695037110467048965076868439305444730263504167685059974483841850342351315396663463509362721268274490557061946167145298005536519356928435196798514225124227292230085170262465854408465909053337177908089397634427309369577928409720342672730076650253167621100731647136649259384904602634825903145916043752035380844703803913168715015861303740497178496992630152975660348218784214682594704595571986061499115272847305894906061966474665534066815195651396199889216670680413885467002860450796622600606368940917372270732264947755837193994882524867571652649189331645421499507116618457805313423348171565922246673627580562157342183706432354472337343000763914443527418776766268458865062547850999858168909601798885943215793447332720508505468473903967163703053369340268807795811948978877070600962344302474450453592402826715490105191273232032779986371821133227218266406521982322965761352080210626402399224480275843711697997541229852522855351185313353194559262068434173750230293774527864646398030669941880826269203815780989896915384430281467747239041412102275940001163219610636176938491484251007100783714043026846465071272551860186083622996046880801583306341549262576248480324722122098514023414989174337081313894019697496605944075420235932513445571947461376224760225338347621583318474121156372776984369186194630713519103521624819912862780082164633496825200427423785137255054519560079886149107534858185187044429059866579459352584881998917369523367745011589257201309809087615850483811272910053660157033498335525387193477647996727338351069167342644314604703696968922721914481293495981913579439827393799908405615949202974827168912093201370634912422708867180118797033570024995099528985912429050845565644753799520375892744066952601172255708220509744114023477000387843818192279246954324153975980399821158762606448623829553767681837725614591761456452463613151626118301267912574041374988684221677843858968005139871385147991396243882632529790012882023565823694687610572131838682783913658703966010831280481887261034991976277448996551146285696312974994584126466354955718230195764510687402800253386404595120598139104733398045772872414284859250215617059881568473860166630454754654154291864743341035181493358332344375958178086660307074556848825678062074615175507774237601476068488784216762921874498544705599933150683153577751019183618401172898661012847640938467009462434615982356258841858015484660408163031664209374778812808669112719978642281754718916897265002457562111257746027101832382659991054393103327717076930063746357989110529377843471188465551132729663315800097569665457929209181784643288044747832010793412754369794244468907448157425179733278231234975832058198996455689954053416232208383873929480995375012312782082427372085863348987325624488108914375293583795557452568278898347239051071811771355459000100695455972553682638896868401674541673867328363237152565805160061987794089091868645633595082909758587573648818196441395058951696487261127832686274019501935527135968357990828789463168814533590484830397494408620387387268880782918043823749128270466539514753873823805694139016078238473136766019353778235381964442300318726446419475973167646094564680020079930446077049437901925420565447331140579284841486385452480539501592826584841738762456711753741753142017532691320849901791993233283433870129213741047540574110905023604749278333103175492212144672289041727791133998666495031053325616974892873156950317753107449787986801323578210703915692052852774393423024016094622896581612444585397768016980019358009095574315592923567958388392010604301682696908475070444443894031503122118399057614244903785053140915528097361477307738920061131886014457467235257964488233731172377333708524318658608235590901953544242909270569524271453120448881718743857401599213286183527087842549727950315556177003652763804261234343429551314577700129513703195169371789807447602120073381562676714053535163014178064290947222020517041381555985816842562357745256983213154306679210938512420177910157916429887643939256519733612228699480604063794361009829595400615307627662374207906250093113555068442431175849779154763357654018687913173835362116441628258180755411110672435161704155214285712078528050727953330515984958595023834103249083262745180765958729306593986416046686050447207256156426321557425431985267796536286446818315703223483870764132767815084193629988463498800087719541675202804713819974744444373937072171605472572867638251222429215686417407717049165687824150831847043712128003518477256693189245172984480255318815237239573617635240320089094028740272291976624794629704775426394787891875414131897839432970259729176356544701907906271479424605766519050937073751602827432013714996291282587703464589046667629455138457930226056087673313016267419458604628362995072074331712127946803017335501282058946265762342644070486000172449036069787764990297516971027345980655697336749460121810862090447722064138267061485659679925373169784615791792410693634529768638866232521103208776753656654524605617360555205796302645544173536411411497672194048174894110477748948481690753555971846811947047693950313972973866696057756186014727707154074341917329606552574547789978664785824223390287138602808024616899206013912809057830467113104751000284028825365615344324268364694958842826061069533330884980964716373014948444630037277415575087021609996059517581452166870994201378238568620394746467013084832395749334411507512990499671599319697661059640655785012009798263115295960840807760605546238714231246612209023120415133034904685885446136984421792418453138995842688109139521215928147395791245787977580539608608392265608597529980098504309962118269179891634595764146903066132610944229277699050464620195451035050567253646790187465977350213034014738988180526335258879370423410686372068751527744794166439967465354965226502305509993320791484391204156083949084221687711885821139609630367085830381850120686352965628963055035479546656443725171404845148555179005959289198527834448848467467742463034954543070460602689099214185241277624226871856375928605037202122780025218431273019322904930960959895453114097038746651999610981454829931519083694765048964716237241895678406296685760997302423098077945262484064455439755479045682491612860128181991465414426174314249947468704367446389761354718301385140212978405364973463333955798429502938744249335421546125871184980194187568245664880297852570695452079944555009261475516636763993226223973317956617364943215551094361001523424547604826869225463360652984298578822213284890326101306565405506514126346225189979617492930594962131267695503747377226865858647715415545888669163686323248049453276807688726226702106350297866309003881441593267422836266144144415518545280218069242241608137160384909064412838084828527974038502936487209370208131327511523219316097054111494973633355060472858632785936888971657638161392360587303404307951586914241311200782669067404764387761091214109070228219050023567774123588953820005984547455049795343580610879163378849129536813234797656236889574492921878252641435559820372354115331999292586486671522730521858993197323465264555639000975166614175364284913969520654216152970287883881607949947831526361625785447283877729915371499673983680808968796582277805873482421592426698869137400191255376314374639402928985202327015166614145501838880031745587192861913786846604071959583066563689894216861275863219912632683249834365971332581875310733411980900402826915531091948346269860591509629407203172331460078187296683314365383002667811956059463280746535040932430254079954260245689692198011618353422379567180135910265110730264561972381000828682153394045502828175954358336884611265739487029609845138802854248137378042370831284674028975174519666335414993920483420795156844399111320691076331152464473943354303551385685328399659326902644340561984432574620579099982796522940116239006147788031016006707803795534822050650061590797608831384344101257322544908750738841211108218087506937583150535012729742087363334531468119220246649868064182617298148926016228307726992406748385785506555975071080632237089260551067947757230340000587593517696421049725276214680222509002792295642565794392363236850853928480182475073868427708368404198658527877023392560232939225561476793568112880141168444046584402497890248885806374874706185586466341332581924790332682329155908902939456568310457222873529468316168101911150822105259823161608739366815365519356622200090821128133788172887630692819625763203560412655384814324917445803027027555565324408191854465493815654624512376622438874214721452002946140390799822842823631568895856427065066591254368718234079914928831837346519432864892998692218870441709973170792881378663378190171522903035105569163221550464455944679763331585967591646688262024237370587061514487895908443994057210781351524312566598739033237491782653722567078513320988192897506926597790048453710360577749750081850481345561499318248188305000523303394394319030351261601148721922279751137934160800219371546939343793778502957290374220804730864853960220294109369959013703063049514442057238829549487262381143434331271677405139761237102733391023491720738614873702409208202493026188932129828045651168991521922290642308104743795045888519726112713547120099596407323914998818873055467870515410564813670320393997429043056364258863945024699698384533869766579887142804538408239368984373850994455114947899981676370504919228881410607088409765099254155268539081311120955322493166034668993303309580637039651764017760225979765092018537966183316459411883572125176578301496386326071239646512995785006531655572279393223809594916080684836041146908420486672627103575820027127078357941234578307239087436856185051532563056467338506013728739132451997354839735473129022951711631432702425367036089741581055409911572937906431797221056739706850955294972074876087605696844653562761889125447544308610867581259421381325058893637051875700869332717252709141556886861978292889377549869884596802550850093921662685869195947609499813640722116086930114671979825798793613713564945032312869176692246280853200559222842499743732733113230308004244912016648235873419780843610264847144817076825482653736895196256610805017638304367154251682846142498539366817970129762311743423908825867538170496479091614442908931785032565316050911468395910274865498954075786076432727788420056414443168094795665714470561798325287365139823763955505031258755505421791097683242029729260391474427292376511495074370617041771068887601865128952166416579100514034673209192931182106961714027941757673342035477750865927382356624719251376495912242495950869895528786704083598423729596962513144616278985428296157298684125530396547563233641430856690087114645123288936001233494159089916981075127382248596645559547866080559801071520545406136187730269880171172160657639513684410103646194422179193777398421462955246789694780897174293128815894228045616075851243473154778126216592104034783580864498263451939614250379622349984245497787669489512353622284860673765963445296967240233327850885017479800895293801215819570797320265403478601501372408656647114790037837698401809286543835773858278716823899087664998326038133667312444029300575611725660528463507926092059143123080414858550905143020686310578132151461472846002078610441556150464728423873050552267975827210386277446387403805951706785617803449152147119239070269158609455549785586886061114270124120183019226712575087102298975887810357811602243774382548845567425309537670386951795660561888287787441790721314692381050408051674029150377433276369189539601329029099267057199218714313614104290227088389942964697828352609458242768920499981615367638752289794690062455723632661544570716355840262525138918967540455608948910009053840729404739319225376654096701972912912870422495766727016719282048556145302543299384432466209743400612359836558559296217149001089857391212445201811756843428148990364253649329234458538372677233580426831752925021752074858737034836470365428824860397093388772936013684393884854604105697323022740903368504682775644252808086366813856601172522236983008165060337852256292418968588143545963513582883354944180933231680271915838818520791304506229202690475447989526453601027358995267812973160918583039708084973429027558958086219784613577309504956689536110746615848156004253493723860975086550056629871417931394482551251404232778518631065912314080187489940161555746440600124631373073480438575476645723647287821972545908844232627774818162202123460159303915797452428390237071010813500686615190725711379447876181203132856229082697597578957138692619450778602116637493612893924040751251143332939948892378429543393416445712804998467357353016238634783266721606645673756404848638993254752131434810139822090963869776083166048675136214441545237911349532060579885724284214730387135372872536650260638686281728358533677760029519409796773327398854844131405402902116946094864278812322703742694341451717326757072033151652306176603063336759592205400418342199826739431900929520272926014699822052321066742188200226966337081934443001081873790358120580352727309955021506677613384525917105478791594655301639592335154421450572278284671454546025020023975850621734342334965778207854536570324965540509513427953003763459774668526935262925335560433927518264271184746453661382041334595590953728496390384068639822579049486434411554091563316512641460968976847395245984334219162118241193844934678236211485775955577119650349586828807248307622440099428090468074990510724105392833956768753728378561310251525647270270923050665956491317237966415054250443717830761587197232829596025995022822672843675345023868900435553111482841861114967428220318408858508784144110458432241966525630616036310130205783836426236554935290805309438125944271976382927700841737786430557223158033769707262657455161344109318637437423558569410952135209566305113797243718185333554765000343658526923680759101681843791558006856791354775026005702012522731345256290660966744491424221086044833570540680469235897120397310729086451399868458709800773680374604428320428461516712365455290244413328883612826383019995067307404114182919939281023941033801803511904956302190015833076926444695481956386546447249500807359480026304009535147840373733233652132731283010810433026339853547389929567241615660029145226671539120262723379856957232783640488054801259130992226654174362629064773720024548465028492520461826143872895407046665969956649022403871804210206755041387835135350495658636894426301993061997223863736238939093137105615571878453586459470222301683530340016934431162016177777500791434307547827238376060957172607385633212551752603539720062536518048401723453029500684579005963026940953865548552334199877795106611538631324067923878970683230327181642748321826630785925678668427150305097744333167799557491888623665367830617469169672687723901399524516743293338921876971106527371085860370280472947934858556225482814385302443125008378328707342955369899405201628894118627969323154945930674687077256671360679761330202611944507557099481577778048714975491619769843394172932964417197767243782843861738770735424799217288485719401014514258415120530856106959558549092014503769147332903170155698155338209876350513796297641272242724539286759111602727990557972319080995516195615566815996973724065615986516909320633335477502134943710404544420813593799331623879590575943848928401301015555483149869433019878057144980449881517851717363392025113636987082678661845024116421031952013339709890159596670528618742182297315857933112899462454797307766445888866599342244234790840566043320014492903275046487710950157905370818606615568594272263816758903908873320730355865293826887783422727915492587970665477413160375241481496042109859068579096663982377712884889600576577801303947484122470392321375235591150290478245072191585616234815679783148080974832913720098183670936081763997906957836076867962011006681298075835410914725846078386268190306027592570585512564919994384521225771293408240372484402630599498671836315756010623161134267654619860997721958736455749360391485746857478691445149969450541437969225476039343687896465704928631295153778975160808537514877800197020182807272329787519992473540663045519453449182319176830920177820904228780050421937068077306558201931020494285033934220278204590665122505400770069347575849454361729673219180657517860392771390935148907192546998543460860462887423074636166076132736238757191341562222011035866636142946961765609671294309449162467034642717282692894971937359372063798729684762340958263174685709242604719910158170304233189236917994792059827066528207686575725338786524077338656808906227154101895976569175482114402093698335548855416126673643572086682106380185095339598411519750829070276137503759298959015844177323097011799405905119425672891315711800226431217012226444411521453792250408777335538757575451129964495545134473534573986389204148818811350547747767152261970313001223190878005324278892931972083858869432224008637538363442928703080768684812089404761252945603803498324928375412965257916157120571456554625149612192336450056542036916539521274240277200022766578033149369500426097141646039581357183895531522315290197705223391792263345540277246463896528017303393353915421981263983913368715844443048710344995787535733589129791897858002237858920243410472480543782125929646393475022305878433038757338614761179790230603523065317036708627789203521520334616633016507339516468455144151292379644790466556849603954082217870569598632924067717539153763767206916673226770939156978913509579125195855831191852424784151943514966750602585314431659943841290938578579058529427063144390148897871321640715273313698395381714819210535850424407590228131738299700229044536022348987233790699105846724145783510061570034113509350171201595993563829382672977919009327602085692382154195858896640593473447131294332395968595493232418292511760945220389174493314788921424021534515633632231986577853402243126275299288860395912000626307176238212299144384394923267520131993817019322383082912605044067865568296533289780026350695328569920154462552769775166982316646635584356441368539324618899725878233612506392935684544657851072627493606098678580392998807624577123438351158863258373999888704967739628421295724227180486562915722556534043322646736645014068306045399254199788018962871745541020375406714019740456072516848093387967683782052740076794365895008596138091925273733154259490107356930437539606413115712767030759310537597990532793705452773692239083300154190272027275873439831838351291253639926065918164096358150854139520280297910343750301856758215222652483535079932856426660633996501474459886567566397026283409960226468776807909739893042059995472257690336958422274659642677568817147302854821745202018136749520257692620571024668368510749256508371819852974861596513185260620318339919108461934670540586414547450163157454521883902284835779335783557297051781143703573422225912539855947105113722940257473447800524205633578850922869484644551791946614552900161920444653317664364549598179069524024336264647136168581987168071370036603081748153310116842221826541208654860870551648715522839341859685432958388485977336334718737563607899513119226023389790622790971489707316265954585595401590169323904068687643787594475622181205270714077078295541746493145768520202966214759599736765830303432914540355229980052851619761351376954348548466738402144217078282976126481325391130945194203904792987687689514127763714537046581219509115583275203348839886504865439416312959959331349635555673793072463760967147798422410487690545137446309006129966702463808108887597467018528115479932985255780146469138113281324113897855393952926249527232355201067629638757638682309175341416753832479672967240726078895055304775076856110583427473787686991587490917426270505533960559244942634982833832034964767341762245736470520894183585332474148800369895751692844183621919933952047764438727111616365027689111511824522682821315111020821171538496382830147414224212003133257623838043464492396275334574747313502139618294944326955187246275293473395899259478670488673155250843826999903268226308943610460277171416009042557151628493177325827484976034639360580037667197907597563887986245945976422980037137274289944301097801894343927464570598463641155126831136675320486039350800079859355316728712104765262241761540976326111559246438605129066530031580008601244798723558752476617814231858875833313439144634160684167198413172350097844887610923792179205416502784104421253459298085086044809187953340550815725673807119966846374594397589441619102217111260330717054743999559131189008720148769471932724742712183129401684706300712109009554482647397757134127900238809399594625868623380305503638654278165283796504551492362482130978800803444306620981290252446299612978023444765164064964238648531485914917758352004309978640151259723056230395725579375463232090152051488160830687067262047366438353926232321184492819648323820334467057949893461453047312278884657091411938146710865836092154115739109186338113040983380149977362815891791605125726240932946299947900721386024134711464177605469720372950558206838974142194447397733715290380400846437626659612319263753858454173971697883932702607576431833788977897786965493827433405927386441778056699067013768821912763256423708188028275478530172718717993977552455822113532017964936062225817179277774537653409915701090271683137233207110686210556593210504821624103409195061385183967000636629676470012673408655063755152271485639833792195744575566272847828689943168582698563064088293156331367557751838558745707025864703167562770754678303160229414468553441113914680109774365588229568163468719167454381487524913346355565891801485991883337101274557671190357406183538341758311882680743564842708876876067330127078800123742340952004938791361805202072961620711673844740070143061283405370526812152337089084721789504238434463226867081598715557085450268171872281786944875816157726695393632237370029672873601713223208160560385689881852402763363632367562089880527712483623624316584877971669926944726183908699505494838051014309034203454873395159610877997693780432738269727397733629928073149777454629574840767520319681213858188666727945043135333292588904785526654620282557790710543966387896366037943313218629663676423117702760502084939847128406410984932597687010757192995694283315680632778494616671913574499161418223142692209828278239434517962213015268713609715372190669509249751381458699053926566579021267874180580144992633151670565528346460012034041561447726633929651871104053359234253948593227126551744703072434829515439732747366856296378758248750335611246679461897353155954749854548996703722150705378577099403792175649300911169173588444452993351589185531011761471345783931761528500683125734511689280004154431034332104501965314760501834372387624138777606887004876935807724879470346044957716599565571419107161249315622319542339917544280137013514229121769599175183092693369526407013084870191637794659317041806411607696253397078047607621516971118522521025058747081615549599603843701813182175514199956305110591608401793442777926373783473018695904237513813961896988191376289853857160083399828575362884751857022464547839067588163377162027941329338347561277805938648327369999264183888745430236902736007229260861095643713270825008306575935418915935528467635272523443350341213538259487234583035742454073656093548458307949664560240166753726239346453701656383625697941110643490886319510345695541690038783276014078780886726213217610227451665871192988669525429298145231935713474152990629000762351479599031197211920278864107569769592107888290296682412872897772876705556785944738148441312775491911026835315756587096452078572139830216647838278737994013175539171910573737505586097504268520434912950259082155754945754984558845362016411179285624756447320771833169620792464209404784198893912093499150738005966403004034834018839984233392254094323488791508569627723536899923170084424658053876253693218587650430420162738207288511081073493938532217781667886817939979406696189791523006485184171569571136780870785554401596359719021019002173690437734676317960339704588674907274901381533324095332862796762550184778242031517593100028342515982717184665069237998700133264556387011139495600304239481677040172017211982313815472953276689295448627842082640463148907632053717450551184288729953690024340928722568696016878616145496980401381088725934793912207708584575078016923752348149937652262679991922506179471163423561000995120011132410020023059808814296304646872270668059759800384216587855680203660198263943702602581405735791973099731104412058985671170251782493709804462974001115672895385306111200479098594453052494238960482651838405372536928407822579320675258440816606202587982460021287001661699461061647263638589475879774132086148601576588567579309837862547682321023182534760790889165012103329910218253399439364819930162515354521859716014750204496161050691130070413732094994205947801973105736590273394883346627762805436227660540875366136960285242474113167699888713996571481554135606797416353643533811496164062282108093150720752205375153459804505615940990865540789319612817220973759411610432112524982955646839831106559620277643107046970449911349052760088184946499198194364058501256022188774990332999089800929926167828531332957367242909545992119870780196220992909868933476089699943384878633372111954352454234605151900694550487054136052707761983388249023050219983899874928668382809910275520990402049709184821752976830364937833372372518531669152541406456622394519030977846370851682914261037827088113645227036595031576943506118391175363317292445586288009515201000174886601674854517785453487643602685405289687833399592140785327817999644050993086370151350212330046780626214134953622700383739105347960736269716244327574802611029377242366341962588067610980043882830071139132424724035507640020642341354454574475656353144726673855697657344007221100846850904620224627112681486723700292617280728876159448013717048311168247698722885132967230977772563867334841839598895511323164905933620274366770091690775686330704521369520025296518922647374332399247355359652089089692947103083219262912012570443340980313609347197679975512601872893018533230751768906989603305057280904327961366804736726326881736361064684772318588187355836869234939893079772921643130094396338761097291381804202962104635005637912467876513435666059051364114205826835197960969654610147238007168514464674688581947232254775209226621690362839938526018850404830737015069614532207303197108740053711665485749811060287394637402482156166345150931185672625886473683738155437712332994520942868315284674479590309884530645578783906361897313058525948884325881916128883760986089239172857597650821852361948701260865396180729101652824024635145236182436410978980617427391745022123076404844309737884695750325454312610250277610399188422107649027325084012996759093900080444222701013426236451827593294340745285789132748170638942948095344673865058342378953275426849858860850588079774275303092286491819630270951353369487802643025735783435475988039140897156395557091597808386047641841701703043040745689971933933749534652150889669330470903797123991955248423772512377566661432185583462968485947498245220495732335838100222642177188712222672574445834781474759032367649096618848763179662635489463089338441613084452809764211613201937925327285145985099850165942640754179118588388166027191173283383717484535965304920911158578332791034944016462643565190976746197805878423718339235674285217435876778805672219147065373406270310390455326026747084545152802609958398138535067829401042967396189198987961728036190745721759511199114437091983344562557055315354742789952598370103622723428002779886064543749365158664012957743166633617996098612321828609976199578070716614512873515851816727490993663633042706986108066335785609744724828183128497600620146064534746287417448767042559637916318732002425423903992941660747894720982779702481662352450924793238535869926180996801451797540278648210304890284278024632919850697096612503536522009365793449527575500002752457666603555180741023346097135479085438852401568605787095668380989157388893022762870250863224944562352494975849002448228232730158299446374839924800160866480711860461893901301768199290362152672466644206957738262223354852514788675853849367351354902697576656752880735653600448019709062760885500286203682945551226136224799597048488297270302102231296942488220999761714555764973311974323585818294985252042603933354420084172231737719924001514668232337214425497983984562253148228679486051424267298934800229840193602715508689295368273416427108357303002847349856596166889078147150502642589907265842757905299209898683686438817596067992067054695110811555891585364721819735393497166041228543096688902448101417923271322671997922857655002137135371936955114571505469630035766744090121544040527616954333326329317095990620300163709967633095573048206135677919262223926468879449509743345272125889034839033237592334076422692052323244446533235471222235327804699218190261419092561653247710023567320233486828593358524025509100221660608598038860281911759769189853457984209557513507635635833352359616908589657314753833174577450579201273099230023916861781251454052623843902179815144762720014228731757163864763834070541485364526643979802174209717817216826352607817819924724496791148400135020493697280344093790531742685332566472739031216615206447327435854521005779966553437284658373514639607206671279126768611780138942498599754271704094977258675465787244037506815751018830209751500565357742854990534355172543577037042547465246525650922185070003174500115441233726333608322221393558809578726262867139470692873090326918906959946490082537129166401452730202058932367315423104416828686459303428253306055986387113954115175752111288481060357936227665008723637948976934650940626112558176403687493653083991833074022338080886985256222235669719293135537266344754151693588309095451309561119566586596615550745963148849470329745601345226088400883550927103240357923897396199121178786076016721775502311089313239091202414469497244173564044012955124290436970989876077722671505019253845684646953500800690864740932197201290767222286827128386504777228591523579428637685236446993285888638177850335074498003014703239722582759661734202932223357613488687648849414677861581912119748737690980979262841731713527026283754241633731971302338751707877569782190629462778371698629045510314466820003252664562963637959324734497450135991344898088818830019733848425104619947158832226357496682448906929321871980617521545123409313219106395658414814044223302749974592873580415776919927571891444902280078362613990222403344249707674658938932521617598605541723596191971236175343373005823439266827074008713861435211570706798706768366408560811965072670518777860257903225070069511680898025709693259854694057031855174087229727151551473068903008428585509250384318575771624911813147760315735254528495605797628293996145821326583068996030325903929955949680271265524535327181776571072933117919288220205472756781375469263919662199707260746984468616433327131248444215638300876782293456016589534872023509453736781576280725633524815673578461106065661473665610852604854658904560247667515164372379141785081868473647477758524658592197082652067451014410520818965770424520692544512303307066825664301449279104074547509129044024050289800670655554238094694972329470256735969197860986532707173144089009841310126754129265248027978328889475703117124640993658359035674327451559937108290462194236615118536123018935293752246894110302993124633800492008415282258759082652618776208798466042606140411265563734269319312202359045311342687368110965104940463178783029680345446750851033299699685095670776073857865135938141787131664243124468470561604021120647983536301438203414316657538963803480898730071975326790160049444674584955363775605538497151082967996256737095093432678679252066766834255851670061724771326733991118161448073095472753174694976278265866332374194233737118016494982438583540936273706795216233680492543185648437082591629238330216048324463730258108149063585186809650848610873398319676577662609198541886551921167932928950882937306574456173904430460074528305717938568519701794128670586547394936902139567626676485366930888968916017820125535793514089863296216497311379696324131723815706059274276011285168602500414046843804320824511099777213569105108145270463215135068432159300264730918212773452234214902043636873527122280647670775548093600455087877649094857836342342035182253918729806241757708872128610792426475898148934410949888733065046660882663710291026433204318026990271702123935764540778767134725503728951319073320653413367290591861493959039267891703097769985874832836139435349222431201016830295888175995477662139081467055380868629088289603395516159037755662199031386276283315962533918533388586556445403940577542259092669553258907144635011221124952695754807585124653380232644486100981510812829791990832664736691431467344788576626286139224049456530112288496367092446988258228833017905560712539274253621509728251644544371438789428444248845538754507753212737146174126157399570717116597038863543826298407623276897570774532622233396741410517186305752005061642353995067839374714183354355656371252212839042830212331944715865516571803314862317249317290398090942596459207046156612467486999779554364691445973393706083040530215540142723297574706645373930005825627729029034164342602223721584730154902497298540470765347354060157113790688258731500587104061800123174215754752023425804249147607419517197910298286020060314925066726433223561786227860378790701903977886129479010482807233999183598016799694807379586578766538292934146920210361693545464061280554652158934126365267776418640179101706495756678351001395090105199657523663973014128378013479073743145855232945450902699404492767022075957928933659059890450845089936959954431770416727420889518038455785888797942596956877973503093066740841516282143735209857487140171281344962781197292395261170427241457936429063896112877636419128267508509953860187253128591705491852617759449768788447191275754160056109507000872986255317946683840942639187670097066805056521927565475004422039781296929897630230136919177589761164342564748942416720041587537354140677286826803249674555678775991303099990621345633233668830211465347458522869309577526058508890218031753611136052442323757583295189845643804861885925284751265282289106767195595269596063294798393662544666227400280283284420419897116193835779904161371355872254145946531883287077394659785944034431815453069530336539189492837089417734713965501496653888493986869896829372083797240741059722553264255996682665969602667354425987587374798731556460487990513285511295587772855530375979089986644942160907772803851675657336305551063104534885997281665206288192709848417827445023661847583339235483817175051835975877192193506522564654848219284789209119815234396829995866878844112824842857739148068090152846022217675179949577223320023854691486008120328294252132607507044083998916342159533543279268657625116581102945290280387330737161142864830537436439753734760904836736184255912627760268703201879184276632205877288848685205273135108168235511553734568258995199475748112035168694562616650394834161730491663084287053001787542562613383644845378719445549016239316072517563236272765836404838381219808224227199310208216686868054107665297241869104771559992119057393011294330976504437511598140805783255351401689368465724658301312431263044499511860134681148071013227368131820000400486053894850245178729078226718183020220477329011007339727789168667481473381957347592959624637214589374021951299897671508607452323650110414082618234654685684755039028099575788738062672638441643247852155745994593453152023869882686860910699759174216585272303620445179128179776869349148459363770490157677603890224019038881419068188530273743457896042877285315939740427077288073755311566423495285595354453988942221686766296303539446961356592683383717364168937096671435897972096787457724032480400936987890868552839469066970110693709478432403027207268973015258890138640240813738216308916596292818671881737130388971590720730140393046408585607281492804031899120166158974413488585461704180150046673952621905788734297711912639918265055095590538875638978077378073799707163696279207582449520836370612067942899597135883670254113905492903810363951627497395689957703931157918780419284858442648391918500208758938838449035462823018846818699473572408900231628077405264923097132812373553216809319821535707442482153914259111644954239161587684924483748433886103121122192501216783037474542826872358869468021860568851066487256153046959561821179257084741935793463317822013085424413067342403400367338834215138212284242291591729314234182994431334670011890680417839230072055046431734385597710346101744094165312883049951208673092157908551420173072595867145687287201802740238807050713045939214191495249628182938798153812625523278785431539481903123360326856138315631013432735321734193257654279123520955517210884520398868443789411702155514672248073872716137505931932171720163157371874974944104277461943010303765544685535037770707187519724835394524113310679804503459592264517286162594275977598445802093639752914673608078873521708559401256305290033485524759642305131272929653765451937271850511342711522959609003879777179645569809745567155838321557697497458916297565370930927496334603759298189143583703649615823628816157726761595144160439783119459304249653543579888202920018221055214038170787868582694286805765039215934897797678603394454734663398813972106338573133310177305247270414370867871289463904167767730653527086119116754150355382512821767232682369128566109193780896055926189388715742984131741374655333243310730106645034339177618218894146485385854146375066167073269098923936886392502511978064666076765202321139311095499761166833208030667795745829450974188109234858415520687283011914990587821997948121526049476638132223799798108936308906005464427658076823230208397669812230539753830834334021805187451070864678734186497921684842316910163728872716952834322808235930227958425507104431664576007733305071699251896789680048617723955046772908223440007705529098384623039927281539764717156172710834455571984047478060965697905130371204190806725166407454803375997486462252823697960202012876412965037760654901915670738787526736442916877685184321455553857985395568846886723735453086542707076626723978452346573575094706272103550833811887517415879722543730321116408553716910123145802787738658177581895044979258453825124638430440320918271000689042053287507519262371306392423987197534163683097938010316597604142644770576561753216235685087617905490146226517677583794416413123640321409071430213415880308860070949079704121464578458605444102440700508683179880434469172731274480072739219617075961555588445878584817231534864165728483692008189244259954659034623709809182865034910275020488845946411558128131433253947212723088064404052707247105170985518806146970167824673489247687628653323890862498843813405130348083716861002846461657907684543058780920104406997660267361069241725561888092662312473734378326783454644609170987265271318917897756501129176554232313095049227440833594722001955299908951686516758152998549161602050491834649872666403512153330918461748380387200486663037812838649488810019070575056698485361036911523236146013767213350585059385871028790101074056380752244564093286391955811753381877179999121613279487092902632184390273756582227083220126285162742915894129706497596431169553535149014597531683178450448585894974829901799162788792566030652680763166923702032974062174664746037670027022322846262899224879223133601180590055998333136551876188707806638688192619511734845646045616902262571526564003104211178017127935961127720567204584598826697307715323762132097145829796981027600292778643134568894967356300867430990185751104942135069711480240426721970326907707470425952888872423679034371209920880363737814663572504582718164360791195931528869168380038914797163580179915829304752129414629981895688464853746377853906848509884348051731347455548710553494425458571904084080395840219182715520839766344298272985781508740614416440780920858909395217702180210651646631170307061719688695669352959859971555122051057811894437567290830008035788930894600936454340092814257200871836398926045536796764919025468256190073462930854121016146298568184250678944247129665367492721449305264693561167221352730105853781439204706870263292322749751499104443042783604329078310111206324637552295619667982643821202221865046098826514702490218932133075521993215861738080242927924224175402060974501391486345626302947037643301043248730096764975873203692382168614714274050873268023651446217363104874030998030872335155578857475575455462981974016438325743537012772042581364383765752195884861811310951044318239720817136596413697589072910097887802359240127572785674640201688904866866608164355870016344665199143642345434577023814719794051495743202096811855277738865365474537412045139383508544164766089581947700732609501923254206646405876381905453837296789454829690533289477153772326620319622398226656119489163349702033680153148397734788057118957846424480258703264898550049032985599756685303831166615720743534016701958956938816867947519361530833309016822892676685834556410095236120192806598386078018890397560629106283939226702125970081186084990671103074384288347832373824965619369856013517327985151107029760199245921986812438823290758394293445508100371771396235841612554647932162764824432815719561660553848097562402720449206837840922295353451582085932939531753256411772765739971768697049597125354317623967702739064237076514221232558744657557447776930400357800728030280582786668706047166381299156594501550781919212398089540281076853866833216652761968998889220286517253618634963358777090440630788817811132681885638090638898747371000064915301993424090885668488560983025811682044362294900655652918865069596101559124048149336593056235414364953053452683398133756848972753083878759666182451901321807196771496000386467223682235086596279331582836163417901139574679981528001082624346222796566877134697487013551978082415155422535263646206474323071470853294201890417789024199243860524454814570477307715765691459475156780356878491137292589124346812813695866702754311596725845219840960971544759940731977912340718971181582656171204934771232928914998315889870565372140518930437490864301159503337183233457444159643235655299269207660362710095670714814487549951422180723317083519707122040161592880137461398767263068738591698337173716916114142846091624343582969874856359010502364600504820100661535160958978104649449126529207812946313806462347963203185982457193517196517594308176110281222879617995976468816613484167885358577906769275947556583277977871546508867543162611861357704392385713538109750662251641735580558181462503094693778066091415057703089432534286183162109300864027734620443040424821571505930067894104192983612461180224205102114834630614645999330208818526286785549615474666235167670686856812542066794942012167788797361675999421224655683641067648312982261625808155898297532559948369417036737409071438578884061739826630142343671177303025980480317579161898094019373286872073857444178489876472909209685602543739032634128253300055506721527681906408131906408387545568355611880826347428198699998271607680272377279104117516563463080024153480497449356042188036764174480005036563290073079551170384956107105624922686052081181178177973024190915947439449985447616456919085102201017702192736859826478310757134939596352016027198151262793408914089031283095560198819518898749831262981427138379081482151111521259104253733945897317108494785346652840031072582275992346017460292474202459100878995140315769183041071493569654210330627287989013486081346683110761211571991879240860561417175646532524430002959791627933788745010783574895356126311083226617701691955578754146753262329709489020236059035871075008208056321762158660950285606398807513882030450942315764692322150051519281061781952705702026849390389812591253378016577751927642623283850544750656674278240330806619367511065299970538127562655131652793429943497714553530992905056530129187125446240627795869351489980295233813118874282245980651195086675959328246667809064749233738704226501528211908825089689006028616040533241042208526102830757830386967475553990478028786269977472047725091764360282949245093657702515884830618556708103113757274069269140024447601901364263038602328302050523832769407964337373174645771993581781742758490004962190461420782638794617173069273875753720895320687107326567458415500694266634387517245614109482641113533264781813075153366703402489979445419739641666105029617021383049313115875473192603263411012298633883902183821536827034163952958226761222866508602110470888927893739065755035557050564230909650175065638275194977350795067564398999116431798787771902031027287543822004664330472085759905204433990891266552690382047940596781830950074756447251069240549715460702798101271499492843418067527848629077554024436755278242166334639510170396822739557183240751556068409709706996673355839209529493941095419641024162704933275760141371084261848692153001655178673980534901711931338415285788667561324067432015305273955032342359504814294647769684059660725768670818296519102879713541750734900459203162811075187294764619303677685383735219634901148390800185149343659787910686633720460121778683240287254416292748562682707290659540922813326531424058126483774613777722033184236371506444169304172897833991387774672086065103300273438076793220807741516586866531314244040793454875234943562491043493226322077765447441703764886938247401378613094306407049698038354383510814715754216627464111899988828389482221650531290756786345593914461137753167816120665679238318102180273041024736757477948080547694271866796979423639716095516465668835286687581148769863509888803539565914036936005673360621235355073763392616454850834131753872663966961767331552199699275583314949925547907856966229252091769053937534468754332734344263777229789902931248020072596415467347547544155076007339958356725437194062864836415687109421723745577117993544770478100470981444613511827934535017948375986199497713956390790940340557938778352564601763547233693025988980825508014799963599331390827849437434440900979218669060230517382005667484005910549605144488114745846850781074121788402003687722108381025250385005462865899728338030033225890470695998335302969341179344108461070619346528113777588663071492161080399546169504793512276494429918381226363144507956747304584105662366149482608346435788881496814651842307872855243810166085745353452403104556973920438647338799124947933415746835160528810660123632422434106362558364018702462143579393522698828973095592995364471028504647158143487662226147367965760741993015090856232157398471887903142993775303669567182320037940368400411998106557289734962725170830924941798039921784457755667119739421974787061046663327146401924240141919360149606561534945512556849677938978253191192196110914748204679921372503880078117221992607552535022610146484284478699067477526002456002371568566346701126179030202785325238348691370815364926089687283537478287368858684586111992358601584419518628878985353200976844521346872030357448238211958249759294208711207902750917580729850331876658843481212622836840966656495067226979480143485016824866665302939650286362591930175100262508475518169480172500409123568820912062652120442786225409737329069556950535372135674879082426034969132432553749402926296736016859359194110807108488975168676835860248447907250994067715396343524668788297306810274418924559244240703513217099892761768397761045905488120319869934822623730006893701053255069851166570223436584891351344232695623084108882072067402136598804558566035003056364836558197709924886144982955628674027509347889356267273682682898516787133372145277501343080535708918247088525854112028146957630575503218139927603706864375594478124353380013066175156781623885938021449887758970735737715326960790561998751080163649725009944086598131482870150537151296751634666598703288646578955721552374548210786028732993035876043724689900701993357896411994531037333965145220464643509014946419846909250856886218598778120347348838751762714991478328774471515994919716734413674198582729055780201231433036333850387136471697916460031516628866897262743719672328405909582268535704992451913037623643199611477413566193538961792505110168556287448540124658256623830005926583331846155927119221134630653334538621408146527216097806775338778458869730058901614407056941282160358935715051214576474453962023046177578980998411717483961451988004083187573655280267904899744948161230473675939766435616856575371833829125430882432633500704910706765313600998404722429141958575514721404488514796646064585026406722574559242365736448470836207704956140939733246761450338520501553929780346574179307243999792089049617519762870291151405495938888221370300103427407410672317439656472346051054509519114946843416191607633939712059465537682532773429639884389768316592389375075089622831897700584845236518786499249326868770617432648700280785926645973948494782044426322161185282571663217292059267266608705300091467927009712800394540106479742888130987285853981008247520867889334206512824234485394979293845045160919700960872152612679744803764753097837293033128153707507168879820229010997307969191870176921257684923632408505395865849054934736800574932655102632561857411075241654356962728886871664802143430537842271717929912555138573250575508684230210510202808726295771916911156771137047069540474618304333746894066198901507511808239568344215982035621325728804576160921979815594166838130559433910968388269392731395478673429620363096254256405588040542474586983520181179829344931320310772342046292477790202041571165063527079210669893180013100449615592468468562120074367726709211316816074623962837716248155840249454456511722071329720324191283861904777036259280405420068641831987855994597020510495004430516334513109687780094222973042298246186272472590285256578978797713290054113624657203041636777373391080464218771283001840390535742545389540013302930219012693003512848643702025881504414887903443469378621125213538580041294291745538416791435455758391362226332316693797907736323675344430682114415029864559281697640674295269040871365384198460460785743414239057277654206094273631167909140247535733102026326549448821162395169904216191226231107851351283367835072163005785751461330543039148091044929795476769766140274207789778939986960431341164290440896604635705296111199609112210456202121423659890730187805197193123237482554718861995585291598790527186596782433321201079478293534055694222090001990857379172784325763955044442269639259271592732740159451564940155900197147494315094342160006247090304721468900804438306147042042405106325638678639611903817219842986994203054639821654956186238085676896959760549016512507378460897236175938906631835404371812491623162682642224695995344236510393467692725467230462913028444934769371669528963790136411896939857327093810509100301517284577840789487997086831697415638966533082764450486849008154889976817109898834389945892661529028451747445938221238999861830798667065009711253763812904650866092942959930245469623558085625485091947068853846618819375811040531854156131918168873338217724367266365361211733435050480603990834093922172155517245978975976890076658850553546836383010774367418400138088731161536723674983940710768788327967209372464589579870831539814876694345528466842068324896419916386287838175429102675383153713892421268323107791890556616300475117102396127563785124489084717786072838273453951051536914164935855264969451079142644076305024818987494584968677549155578812001509753484203621547574457970678768542342339193422675837587892140400760234947686661970185021593734190195223190482290604453290159249070178419032097914454583183193191466207918974271518652533089735834449568610667855862419427186635795330677163794597327465641282953494429231636006241676696621746462728695895413868141708868316532323285809699544115547449109240886678125612195148792805659172042889408618091422525356096583611798099300709047983765507583476519618489809900314253569886639639221886898490602767989442378210136491383049762339730487912153823726637852796860397963073622811303569650771324263232273986733749840793594445779863758981979332303020383039223429759656285857498975683988800802166599265685741444246672993169133125231183291344747433255208016751546484838556907451721159791021046721702692741320082131919881197327321789804347307078543558032331124109801380473588773566881646865969827921755401576346701975605878861257815966859118810434757162871142576471961880932588411508642612439624803779479341524203423096839929524643302010540555506237967252381852787429407369012172615449200537476876620634915874035136454793447251334797059168066469610565148968716768346295815960057897223021651856913627236761835471545032536555778271158922056244210892151887779309400808436186556076191364041707126587639948795035052704334138564239629195811763847737582143256011255098333345234536360984255927800400218254420327008059561936495562803344711805885676591641949677463182937721646136266176513365318898966992287781415122739712466239022527449617581738358336026636653908395265724010782376837062341352523420498552482072729912372833656466637204886401612969395025875133946407952220356513745222355377657657897679481745806645152910225596345594919979105842507240849183255333244362491869283955792153633878951400672313602753930658091124971059310866762320438354761922145787334714450251579688423455146279148888855923868009887684693330085991860846920708995770767960748915754438193336233508664963810720615648702598572459414888262441664609151976587724745270301745296305864916678898353754734185539074277511602898583714969931989346270903164363854004972371004905941284939850790949018447217802023707062434133258714133485733913413817346463919266205123458951168003438652151309867305844061190122794828835948136165603364740120078166662468358737222034592577709852578441060963506853795599935628190592487348194653352255697201784129282281749222001363436446475186307270786470042576124982526776186132345780283301137521553128629995444673304704526516315579716773254680312118434230544192964252164530786647322063305156354592830143092143135894630754493030875852891350203376468913713726761232238750619515373184569314152387841113890666899998741605192456227401189476029531034319659981139380157391782667457876784600296074681997442234215021153265663038911637165557737449639227487709870299488049222761721013948154221656972245781564501032262182710869387961538038293166555649995437294106174156136717201212783273593119953809175149669357803369734709257630097470782295546439434126796872659047726628808052979039474727401880917552368194727951216795044613560545288906811661526873886862701808884800339125945661531840846564850108242278096917868423670677576201298189974833395547739392790250141347936368654058592942027513067607778544451329203770189915670269699504486609963254797342379836160783680538121324050682569435833429496213759833531458831041138621409334945191458179734269338823649161385529509582192287343252422006320588346206345574188406699010882662545633637070995848545695201544550324715620589784853454561234267972735367936921209821636103452238649479270903061308468661562869978448959622858509048306346878963039459750092609664064041301975687458809338829462741272501245545725244801573205516530584768931423512376565912193079989467057638867771018549598505109550397167166410859099630464588551868495867695401725646659468267290706395226730699287681143809725324676528394091092401675290170787502247496182605040775038990473820492466902949411123008022998663124922259215361816191203641645857107741298595414829370576484537339823940777133153547572775084184320665922915698131359661908618920340843717265846589851441070947471704793492986679192519829676175385867820405065627011018515395261294499350690496542856717544555003000595673473477684523943340340606469968927723704818727436717199448256698980928149384437750615776934237333334959560731334156317314192395054207481008937472043538167353170030913544630487914334655337372563592247739294557694400265081253678660300355260086323469402458283547762249168009212154476162971848368126175105227988069385902584841322981482568672106119714827833826383510349138609387952447267015976626468008806978732264422390110393191216896574191595725523122186957409311922825320875126712553351659710543932740242696219109341645196770280520636013171223135307725924669318289285420695216343151262425811037591758418618534680571683199943341756224936093874207117376225064713392371292534638422386156502733069486242749139792511791014591840213377242533000399853258891769925724588205107708760298614103863417057165839283215329159584730037503102545997564450074004863639232380811113519291218135624630761752454050555660898711564936714580441498770488802232005909946730186396096490056073963309663952191067939230884912482242597802802144876800139094771079187691589045757715032086256852584590781416542329838020111785049482441422522315816228886414288351959587216844928065629221867113423603633376115882469042969826059757401372023761182259609661587558119952409256849366680077521793966750297756512435216619083188683918291474138154465403925986097878381686391447416139953274717989353972918088444019590938204466484017468384737100421731692793699134166356453505129313482785411451724892073127349086937087747773122403981960752445264453658301500699854316474590290421190314353032416445742509027221660124748472467897724616070659501094592447819803000615750989069198935748463785634291776733405243710605882917527302615445588942094925789357533006805177984306809884849961264874408372485838374535638633355412038754275916759283219169976653574957983579975098699367295860976410662426064807866851128671973154159699912674459210611453555298357351682134593111186690501709991029476995980010125498812818380761291947262092599216954033385762842019258559819161656427491012026883914129705110387300376315105278938770916830898862611549825026399887137175985886806277219034005841260926171353467098925406338930917034890244965435574269906743668083405843708837477852988272725247397774514084568835985284461225975930692191738720515180599566602945684629469672824650119436544376410426311443649076369217152508482793760531603584086556432373729617085592814552607774195416668475218112417956324951802490562515763265343765095855721623729224085637347706145273741471799531625781186604533143541172665168086678829212268537307241193386761791663854164642638201924076265394861833712549214630757026147230471546461383743732212722798925829537013607246876989343496962465596489564169449178023758062291505021024982731065957524860793584494877252032431311506688506769217247554171815007800770209871301100092254341751272574389835080694855568813458794994917202241784338968707861200777042480402669251231696413273444189747927931484619356785809304499629206858443788050848102061314249333063943075501325691527011174323976077319552613746074697983326257956545831296184351157517057605476976269462309211744945334490171717090357025606807885228687400602843609774774549893307578174135786130868096577456476572802512907489673983121488774759870018224259972562788675331790512362311415999626043228114098239431695768925612191122982561586607564369701701403506149341531210306541043316823948316468766938579087372943846163333180892515281970340527405823723012149065431871080361667800319173457346264369420472237488746049573793979926419752445923438129897102886695049733535677523594327848177984280410272612127856936253106948694920848541868381398515800396318515314020763372053832164690097119891364516192214926689436147387132605711674038691547498346648572519150630126475150689764282684969384675295158217387738743044072244995646438007371513568400286583084488370383380368325965576304864011584949640491307156199414188901447891796621519040362093352246174249136660548769192928936484630066080668117444089147255137091567805367974785879281109735923322102447577976902944982055783578558747744562577347171942736449361797763069930287150766408470949705222011567146190517119398011862408419309814824251370393458436201019366245988890260724057068112103794405035121238995958323155781903380172914372659280870518985258574945667017354513633112111989121187709112822557576757178017627674348227781725592803434077773002713810677629024322103575601915444096466844898396647159552775853492768994510352275462413163415829455534297760582274926765343631879540588685508622615859278479175745664432262210671061326183990484091635226440503962553409278485352810691089742606865608128798315729592859595409456545612339971247016674637719936107321826441875802054493471244343844492304569365407093741277744684989665146557356668139485785384122593894002020208019594089647539515166693616329002014982863788534591133250373292596464636596604338228524863938615682439454750587910131380038936385577771963481329896577034873377004722511238068608831808351276802881685841895557319023231000521411977237304796161443885072313838609506687632435071481273095926808835126856795026116259759369260370913831601109596619792499461259642025673389730910058667977009695857542694846686671460348105950435295838647157656293336543246235084964753005341924116883385656543520247800083152674695032932372480685543100629419281838440624888863773128265945612909919433798770709319362536119757801495477486732088461482501212587441850848794005659909101366679375144766546094438904827410188435777895904301339966514544699636554652819196766361691583294551154598300384770474477756826603477707273888680210867035320518624734837600614975026161166178585359226117518775897190352269389107005747302829666147908402990919884794523833157484853044671634704109338316841385834849574110076080667618416626925432550654059324583492541500339633273699783383969690331389848996859867187351417917430830761143784379560610282291670072127656841515153971540652743713422243725255944446562195528279373135093822552423053667542842419974965155558251838432188271945171561897914444314484975871840342489556373266897512493527689934798642904511479205197162818549368095058004784519519944503085733574746518006934554905449584219519482186942716396151225451145319122965565824872758138290326290746591093812508649699341363829554738374027694858115423138706774825352992352496788464133160220203480424569680091385886819701522824768861823490114057688667640592881902131941388735905339550807418086151176849370200295026489754553722844996978018148495986732583827027374457992064456530000959205870417175724935082433348771787523293691916177831736686828998180713469615540748759102180728662908458603596050498181069992850355730471306168957250937704439424011901439242931508033449147801130053031441403311382622380668612655280764600596054994359083614450167176783413750760225731794407703072198829304438180657509348706281233451367852557215533991668563728717095429754252523900745414653226312199777972832450335439074097240614796101116330405226758861472503557760750188118527206139670221975108355876128984993859633613170504644685633160261910412087782312978138147798393545205270249955093848484382368846692482939903684754211516918465845373861585640925220204411708269692451924137114228005242006423832770714665450425659876583485068080830208160691959595136102850521239357578636356287729534807552858293570169097611871259010365974900212057773006255240898319205550098709774626159526728354729299384018553137496814860636482009402207526740357200219409164480953534630104417191653529235184798642898605326773223172740247045213035964892151019898703754922230243165980926183740533666039904667910818953144083640472285629559392655620352991847953005424371585330200658904831985768560740354542728048551650620782835850244446074737024827358019802626886932943064816908342965857688537145287222921471226162011209500767125125909029399753110008959151943640108644255881200032326159195266109753120364947466237464730524494914402030399284719301803101077680375662236905159354628142640075125893152191225805802020132450316619118162555406209594313040904673607477140608396077161461746649426376082078355985311698768341489031416699846011880820284072889905139484038566253866345661127154386787873799828757328081995259178159167674373731455624416425585005721776934872930556341817513152781362286208562103659548690160763562166747284103033893693479238353143904285077884405802791669101713489505435358597407748059237793071918239206820396011809292065292500513249456358134290232900480878560175517469476870141403723664209035590238130315494848790944415052862370691614098555167794628948914475075042989110386651072962663265823573586559223323612491556615430010010608258371977664531831460936695164656528494141039333336765497430523930143206636651030368909093222209041623707763640606350163454297017891259185913406603150114036408518367128515341436919511799682871570058287469240243012820277393071117347401872353542132958680171094508285858296194043244620551312164271353723461861715928024361960016859530521912896048718608976797536148634386512878646429591687636700614260555564421346515151712287058879328566714468127987487396533506511010441118743268835002113174891899210569792610653592090483947842126130184910927045574393437910677357593949519328954065642195335287803267267181741771350167248427200393231752172166991538320168538838856474811058566317129624680986863227940624024315637228149503861577515303819349363923195967569401642794602787456955971529589061147363829839939561279488635299549330305054589563959421356617508813838677719102945216496650636994758872787539859623491505243120175836089135884727562508624437310372104636658558452425690505854047271819219010156763376061764007595199142586063816476613098901082904755701165043318727731645245884490783658236449608603487411354695044222549363830017155988903227093543429839163161878771008414114353242452031379835044502424478779918408747021455747243700014157037451932795021429022402936009165487099685045923007556526241168549313666690949895294672494279259709321617975605422649157602049489940150175756614248525589690384690228084888265620862124510297127238252366778043418972694625973559366806956286205326744769480027891063723809410897239734750062589560238558027164153675931426336580274013583688512283662483434698732334062031102014871276717812302016425362579652530398336128079064060883590287365900855941258378765062865909972767699247313278707425175419782496436968270960269416456147784300210048226922072649402287790020101711792866891160741199244923978036339760553558181684107160290703683879689922934162412109788862340140751200798866817235331132412459437992832442793375768955578648374792702336675977644023710407983023399896168230329363219459146765126165349322012447585574967307805387024460366763280157628865240083600808924647159675867251856902912729076721762269168461986550863564930293446405873451436139254651036940662732921246687059348467600950819211437640380443365257647943067227684963236138518961533591573570089848209768426408103341842973154583280496644450806686342229022632637415016418438885498560311193426887852377082713197516044464401495196297635590773092060350538678992878853403053899671594326654431469687173548472423115831203128832926268141847481202705244377060339849353776053400823481186309817784153770270225312508549356825239292634366569779837278376562200198414498704098422085160752426167319568379198569902667339460689461208538510203766951235641498898460309537576864628510112314416810693673333293195674818888939560590311262767443609287565800297325177426742678568708744857776760347208193594613935769385049880813332013604430283908383023034965149442424391007735762443120441786656701417078210460401477034441119569960402904001216081545602782212156731017442950291128443911924469461949940577326490087416309067213306316056409409258889382017502585901578282714615024833734753707799995112802859804004442696375517321071428260927807199862762657127215037219416475302242010938890966961164568635137331248406397751227014137296139976726188953818939244155299696805317321719312996588032839122855364300839111084740810726140705854228776022012838557325218026521266781873796853358242788278416384471410647580521550144286277219856718952212967688961471852505251548695786157751651889352940290800709708146338424799943189222144170910024759346582609811491727287276389598887171797911425017888025097674314405931401187177772623356245327325726663766915299907792210544526327289293303354278214488433173013456587931677997590578758160881649830207065713229741736736093505402259289190055258362679836303282789684369370153317788950523724010734439436805076475351031491986615059203301819718034213906811180389896376138649310272346090418784192054306090517782609257757759570790662067911686608148592747188040122283360404038620099224302001818938247907816636229273828224743432853563947196844069219527587954205082866454079961809138647238755830868749461606737750850300370511847628658028304739221292608447337884107459141012418193119635261163224112224893267728562174731282156385421049085410200136732004110636560052621288351605691915100045841498830445948201799569701375543519404684402046694785020375041417443738209342654900663970536544958341787406760383324138926030782290792460485302533630350294213511959293357105442117884790548702308169784282596512857575153946427011001713923293452124778573233833879998134561639322168533682015929481312290563756835728389743522919983987723512191711937150041864641771019483632219613796654769280742521946479829200535595618232750332957176952418576922108513499765962960154207595060488245058467683877261690479022917907601589075346649448192074161731875051733874610960779794065519044664656762754596689523740914988144012921563265757183665831839396828196964931678486872080410309568294637530197276254661156003264097405976897154870507578905243196830499056994933988982014927270032690595249821809644232120982527280817595303584007446967262601319214822998486668284283204165944869290879468411569482220172727194302911832813537162643580330763751271581010520521533912391273603643353886679409015871624717042879762915563130940237126233522139123588464178062527826846766453170091673586583354260845946676184991411632281088199169818172892957171003206294346330413394492725067869841127854797173793379964562821810766725580873505168018983806097914239444372747428718147386909124426997525918270946650275505889117729757764193067666329366946356506907038581091556409473644631711449234855922491760852436089221660739718816870871055314647349847107112678606831312518709134941148786854544560962518203970283254625072030854931452329785170646849738862032653332929222392577970084381936619923603826509404616828230057648230572005764612713522401183550282469505671634276999127103154117189557710998865136292188742261468481240739960213122015484210995354648975668036565427820072179554156185027903639446092113263051603937395297073274986651520501274436756682721887642893622426805164209247730907303541452560606208686470724470705058345098459611902958207152860135607075206144766550073001622229353638377424627562638738274592831666477348847373966131013271859834778389808649060346085467149615379650798863735406522739098211538089981425585002094466445868399146130922401662383119853583386908510414990951335298443023393081362144859312426677558635688130484115624864773257478699353042622868821350598690068504313513215627101073626942768033264431771991290801748367832911748078318782357232852390385072453932213243400360226594288689634405266585396543673231841192579359740753125507188447331143385852776504162333609573830497486932229130981475691473578047528943809992458363494681121293406825801053813475552225903379348912389993394048308131444711193525352078106105739644342236921014089456760892836952842768366844984657616187800204925700711885296614330536255261333103492315709770894708973979078216910951224951431770729910107520320551097816129555764603498797107252568544172689883888430488973372174036229563544945997618046423803277685522794228284659111516525896661518825779424231053390746713160270455408834933063712533218903944044478954199161668745838841687943274175123939806421568188293022847649803312594061953055006667662504784083442940227867614841658108464978651786027925645938929111509758338853469745181306645088056258596293699033163349352189475454429146537905668472856125665790259200019869652414503037150169719554273985039294381468364903338186682340758306824577627561908106016226592267116493388058406113727869504498598003759721613832548758369293174925359228650403708424608675789901309235577816664050922655136727245823226926967256460095365681128622116958718197313194199891507174171947714878818528855480742056493488813962521666480400304860628562522006503185968912372557580506285396480126497379577689105855283818247254873557000441622544060706521232227659566781924785681916851012123375910596217167993743078045625623143011858764618318609912553683609078282643117823197353062773565295837476880156224467677224530118861317288396372700145882269746351536615748654499481674580987279474293888457286587894366018886040198612926027905946987871336064247743106662872740898567955166011720634514480642666808819186740395268968573290714359211750216132357598043810372773909487671519664075389318904104767271803039737250315485607110117112488815129292700650963822011210945726208145886121173697781893296813381400488815790298423011949483191371512349873345357949120689244767717126292558279428363706489051071040936790138727159275312259223631828234886898758504693937700841148534728296327576906999287668623111352480478037065166804396281351763231822785471938188162493339945280057545873044123098443535073912085548864411934525968848332213765498812280413010752175954361490722242531569709284341183821147670014398618451534956727970647099835082787894637379761593696350344191186022145533844740574345724297275879754318699121286678134249368301573362000177254948233845179579092537919419872883286060142799879868495123286786120378742504549933298146387553134596955022987048969104128921082517979887174257199464513981353595625755302484534390028445489737094225540037653098385552022682068706319373543484011378833208507277804373098890775221268663293131802584355278760799741494148118953603141221670630095192216253506324171934131222739138998516544361025796091940517429426209267403130735269637434823249042482880355717302057630369892429213850413701822537512253873688039630961612305716351628725817743915096200858023980207749203235877463517871062800746609639147108852033612971966132644329314648715355979341042328948645393470168602765715360780960208849207517222794523345218647283111707667562199242381333522799261984229410752793654129754338078766622185074029726833896393198713426576256216437636926710137773208624908660151540026339722031104124143998058100734272279563316438881864227112040854976254742126534425239777963442858475100736414538540319101565476774819987786832436251741183496031556613078830569042830856780761122477668662491193824343457630920773108836108093801029039776547709733046680941515147690196268517297117167223477919025184490625671776200062931862731426869702837607476664197784482147471158309747715745833759368687129988296061649171632057655852334573606728255216229027677457669918848861159704506034108424376990862907077323936262850702477807048911454678054003436263698335778653847811481449468723046466132743993663173752122299485743917638754033556044510199310567884591912707840278957647752055377535948957507804690962682159440907294067438409402362058391780221086319925225464690673860970338487980449269407953623170721015937792132642519290085670723062270397842374421647698839771591133217794229118390654746149107981267137167422644785337662774732727808876782615014474851788801123293158397554061462490700986272468461219430747083027223272877658092666399288423401341541551412065386551867686746006364499037556795658045451220349193509553989502886047269271548806027555075704263515668669519072402374147735700912818309223046481374903036445694401434267751056804027937916985743416589309824992905612851497936494832312755412075265519425017686606843199567930902436180287620509209709322836221987830735952693820773855349509440809781862184754998432915996056314741071861732739404412737163016526579202611522005504423087037308867110453699797955909049102750187262330988478681834817070408298970792421471077740874132760274043606414540488514326431757281171328081743882584787221694413396156261182327744061259146396611067804879293795394303796852898990223210056175567093616223609722829625136339361027604129037586644067076820858151491357050515624536281836290769302647214183381714042593498801478052710053408118519812300682883565657779467179863527754694751370734056418330019227473830608354657009761586419637989342373037756798198250992859515424751155458322088427109239480630029169578211876422621759019199280007333173203298171231145351743650238233938543260047120515875438317562106867283827765766534611086081954760946199571600276792374354386412376244705258868280649907537930333173165892762324225538693287410137323438248109233566728458622171426209010816817862558130116991163430966048481271134289578249692793693731648566933304827100816690948246260789210840721859147323857084715232564701203324948673652092840259207078323719540694548525420327428891685626147179825131578194624841183954312691104589100418129633913117417207076477689369187957492812391964269865042046977093562144216408253939555644133066289679963139896556705143300855247044440731119510851303973524205486737691605289829371716570934228887190825407313385122602001490931651489157902544985204117394235305609575711986495446438498544638690470114654587584390456989600944603534210698288194479167458098044937858092718581725988803300654519191801555085028760307991641033750992147312974041887352245941761848129840221185329462743176672115133880316212136787020649617945202820914404436046835296923574159354537361965786635061424378345485643012616452469312049127596301506963155622914787130932794508346752687172019269136040185880280399634462763488974577034428955023609621779635187076163567968316080524212552075599173077528893101990185646140347932576122036458780669174261655409010721262546049281119101534010750855277870095655135228600428409823848563797828980393973376437135215747574234676434856845597061361900068095592966652049069267626134408962388870542302030139698239331193926894839331772757319391496495985612877261608317335010028261884932693532859732822645039991768848145613425315495996923922450071163221612662569500532234220286746115146395707517659800403759618136417524499903391092715540860795721490333724191535282526726868683313290312292172744634661957278946048801253488299864704691085203641274739570792842081693691961244232986778444824516130879559461339480882832792897164612055520327636016581630899410560051141598764170686767614495221366633739471964162120550523203453884044669322833666083357388072728572801257589359725463365302980958582394200222720289025621649631977374266628479798623868202738457019824801729009951113715829751119939905066633195363424592117123773450671797472209922720790697346776838613460022106739864359272950654181800252000621845720667630751557545805302905987469687871352413119157264190265917391258587100138090602207416594305576278370104788732438785954625189774339470078952251656618179105117424949510541999337053349252051632904361448938212969733840003347179322720448880595221131518112869291418630265422837099798392104693482187109261201054384856001442494124823775154228016988517942817289877436418729945463163533889322291388022835866881013230262537884637959297241780174526618848024228797621304288839425010583227867485397815192244317128003894991054394675842444124338292833399461321437685331558248797252180955797874979974058640838332033020758730157327057367571553806983175951968626234922750237447739766608536464662011716206493043716752932854563009775018211217687670653097402016579408939994146808947372371344492794922659942837260799352291832305123540729132001021744079972248721086402217180675809743026189418089723299608402069800084458531573947031665088970277892446205963941058077234272042502830065721324409477500005342701013710854632645167714549502594462010893143511701379843572999474123754474186118051567828774238317723854935602545114789162735677054597196426823514176299397332782098091940000370051026190706084010134042028867558297633071347528858282433377552240608313913803088081956173096407095013404850094873662138845460217314429481069512762390771943624029254224067123740424475643526717365320433623560549037430244429670944578601237895783640930628301714217911365078128110389256072086537921800967693401894182398331811126886972511852436808012672795895808497017766188809827123828437972795180274703759601555868362920345816970771317927663068392508534579317454310009648810957611944346630746558836772900000844228773586830820116996461292377087168223480532756810516924553731618182985398975622812051619300750530511708165759354126594921646092992585108349074914785159214832147758959351027182936033420076909134058824924607762957957491341295175849155264316846918981654775077246630475065996768136230553853135453289429716086030286614519341566216581385094616839621840490559970720193156574596548506800643175285119404277453895650665622651500528161475445695965591999015568875303447836968867775694795347974107645483962197354497353586669588874714940220314073526344611611258520980734613400076002621099196386994076369390106283288482198547351389851823876892553028283705509556381234036243885686725868085741205200320065525459507232709387623196885912492513558204913576628082775475135368727510527912724552224743614527571739738905043851970483560819039377924950258580820539577797432990802416482973695993760675734429312960953936944355099957379757616669044696802229544543944325327967317427133749129794725889063355735152919052186340335075728811564562158363746706792957719419838067089156142113061222174691486274967147664158905920190770374648996725343954218409510019858522377759425115534503471526540247340398407941668994206925252460391359976912710267987933862637582521130893804244593386507393379276700968395687595271289151065663760941658583620149722469625848006635897329720303732443827891881622194950188910767637845173551225158213082756835149061722485798213699621769426887571530504643749584504714041819791368133050311872253577372300881656412079763661483658179489170791676415745059769151299347218013409554951358714574146363120005673711094906697404701228859993510036732667883125513934565236986632732432400175996708523439008768195684076942594685256879418732140185787184091711374945998459169933690538929200861365604612297060644842907698089478813756824123093119233932653199390535796072775946969793233206550754002003406812586993892826544867986200630398237469911655905021012911626327649801025741124283404334177126580789879861424117983624408429711654351624582246342262493435510598408275022245641911167072140827832589757156124838322018478068413502511550870241970185863631358578906475470078917677846116980304083923920324337206185501351884722594113537777384764983409555819324112340241019285347677731133918886589188272588895987900220445649789436236502448694915673788896816573277814628701448922246893699338608321391153326219009067339087712381782475197252467179111414501745087353752687396657773149447906389214598684557539812139198389082663415397601608601334285683841568622233822296513861301050176323692273787162513891650019285492461912925994477775276555598753173653432451502599659352134572961888263341367923227235883680025318413035007411861873093673744481739231103121954162429990103530408609122290811859032651398094098209072693805448604584511460665700832001514187097936371081848826447039724018530184859948155604181360843780439437852543843624448062719970063217914517061500541853277516899118964184470027653186603917940986079988074101227342291963074600453277735546733769843405104132613461103200534759634158749090707120881334624918112915823858854464308862734638021895132333736278397700892275200101222778462567425887848388247086581614492940984447769048739592163547338177644854202951262442409878241247351891291739535222740745971017633588013681971313323710521317854659745077368844755855250268435179389675332381676292498886123651771652818351839844235230748761559347964278588285097779051041610349037885654717015140642562562804360138609849428065245544965301427831528512151378759967620972829032307273664662510797838159344583827630364092548842391190633324877508936115174945869993188213083708419247470897239790014235331131639557634659560215166415066705396363635337223819491772879478509092310203751180357333931518159492072711943259455373741849424181998244424685441774123112223253732773019627013044734948429585418127075102979053820002392483215738525836119000401058747669276683912194184808111509386282537852030456111834715069060455075019935041223353478801209113924264121137928458371538857194005141040262012293767984631092216960424263961214947610650862196209036275987707725488597041174061288235881951600436590794031547704772925902907474951133897565060949204460207035244422752418943273080841147594068947644062760924020084383781866363641724301715539834496128125934454031885105720662535311216963952206666561369303414407068745867835036165352129083485094484891427713567023299518830644160756560029593120979260361724287518825323901060787734664299985999132103724887513569287017956170693469377342376884588429798868298469371159078349505879538277359257685346572628647707081050914579270940277382623270503001523990998171997667396630527357542231261057988255977589244724624854854524629236982710000831491841567588024490126445734230011669790159021603218896888159662026104106554542243932430596867472796530190518524068022625448891759985216427536585147976514638745010800467069984667432719126622959701463380116204602993238603197771317424070245669172254695650608897364005098069332400517956776530707533844196276389601169076732368584044687546246080059632335553563403508500165840849572406840913120235574255198838394298749926956471170750164516413908761498516800631996128002920499967942281669000244339958555087323793711947159969366192877209292415077462314501510849213786218226168806176319299635716955976893580782400868384987748051063366061756091257840122510444965657505133677292587308509718337443495811821428159275310146108945005643395150596473850870569530869807571471954741505025897784752115649616081369061345681684629703574272687230743219937120279644524307104755545004930631571811351718791663459148181103877135014492690362293361348587987242022917461949419851497070671762844599310549868613833431718985880818881234700067763097060204174835243992269211441200122282324931867753937795261228460377019310225847718034395971627246378405377562576651284245870723534914930419932392130594877973196267562249025276012597572573247589380586934556163645911281190716836955479474222172561629367531236293438910991295847568496683847753658494937373367057167803014974141104682503850362657997017441236691765877111109470337491360635376864575647118887093436719349152049563591531893217145430138340003367788881149224795678388370659795959283348049415697422349358453368875375507044479410737122922779589736509376693143340849375753721653329536316151165052704022597939367558497607911242722322073824772109659232036619529260293977762283662000886279669909079704712150988117588266862347007997215212975596822048198531058485694825602958204442253917956847952014759121441943628775816406092275476373429183513456084540993897419442648367469951440565100841952311128272974882016143291879869609526450959016842825909166486105990894712829114725699250973644858270149515481668159636538120228049721072343766230387294295264866260531569697185605035189741647038588825859961747236247341991284301989772543247431251922538823621861791149356690347850738854793544041930280752969925797683225437640030131215612795262036376949541947479833271628371810934446264838653919685789546866610340204916995410656507591420400182285010760250744932905217860795793738723706952438575978868359544384970860228977602654186126695207240071079067544551342586377814820276082713446267706805791779799519778328113412622761670054531648445139936685241395306500254040719798424464585970209392388247315424139252670880765581131844656666387054397980212240631431061421745281516193315880063065535452184017412489124400980811024671353094047771476456399824397790232036177764786631248104824369430979029202825599531054212629338986897589654452621170665391369540778449899367084607725707163517100818613831324121147130235853244544728893239937983424185471455691996689091023887219534692092983168549329040283493229684827194835992967745363600321760951571956734907887585191254337822421929367867090493820316728905705488451279172587303051459576252631970052280731742536983186414253702209473575332005063568286446975307786442140755415739702779330607649969154727534537461008997726231712028647950602192302190848748015794823999782683914356363154983943656705930129375956702884811173442493728530864718764671867227668777429999245040826646919316239197356185618838510563261302897661466759243115100595789309912571387826421816838072071784881131926500773253037363111702926927337726610738120301400974656620171398115579826411085209250619351818782484832794619827513137765176238183446624491839274281537405057308682712593867844655174237438917987488746917101212551983257579654596154398218119851812903172381290889417776925366022337205483165007039973334450480597331949307506071144745526876779707892609784816274183221495196512520803009691066349230916598710315752856953243083030702888443277968809884843441023783496839796096889498401896600567725541616077145984097769860901473505537738240077199768068943096537453845140496751047859105360010773324249526056975731181801739783067449905363715940156592885423683778218710766963774822851145016518916425057129988510708991513484440151348616569256880087098063492673110704858968487186016988632504063949775584525831193578167663614296525409584255091448432066061757757155440585879266516941231378894677120219509368968711945877969768931222404381180701355028245707847258549415476307156454464372215440659973070067723613996507090087706191108577180458969643252660770442702968752197778518595732913811306425925397235060908689123535399681527890971723678792234780602279663255909941411924640434280732745803391446203408540932635309844262610256414019723050872638162192513543105581277557549558428678210444540715275919881529139275809940371358142793642967293696005687225367876205797926358280667442964682302123656262214956088695504389759263368445665449040499573043591368696604565611250067841571660466342483765432633029267545809409386545069697543704013265241739612347273377506443568210633284255927917156174698908689729683711037263252794924407438871596686135790146488739218348821254085966159430781037110517164972509386658092495234540622941451464954578440218465146517743315928513899107836578155522974739344760859012372751475455445012172606759053073386355596291935110238930666285920353231456858270429454646380965495401979591600556706861088485496003849897925864823959713804364795903431512456091057178090575128234508088581708252190399353424364887294909328200942352638984361833458481715969539232744001440380753294984324477562775688783069061665105333532485916841999206778998295647326319659100670060049020606691586793216347577111184471810462436919393946588127934460828595140038439399704615182235386807089005964782432895253388877786508401183466509920991278058754143935755091653668023583382490155503385289793161460378420800435466241391081631604074066332819400584887915726104538888384855077227303728754748345311407625018470525836443736142800915941893165992516325730507345936587328661645223833146267732678857618971497785725864556215654037502794383447209675012049998498575035239524343774242528070853969112868878657352615111690126431883950126992717230418815685380949733345950372692763902002453020541965095992663474962453196139286777125341507765387862031272427159518697916492343205900152109541675387737196923533744812565500259453949143329148184672578124871096007641634231742242893864983951179147155034433395895543934613959595208746754871071258315338209742737349765356456260989953046509847416579185464394405699896763272992636413271760955278922188489501744310027688529659332388906899670367474102921654112560934737112527158059421908287981519997771227339413729792744720317415927789616337468059458964952465380408927890392493929818461777512525829129905362680336357827135298409635915599246491875753288170348936710447949607162629993657937934360677218117092636619764314565173807159346563323912809386024877259006079287570150008987948438186544416748816167848019416687692729800536854390037469180086792282098472384997832129066336107860607132648139476729935208543128709387971462203093581200333308335991153199240230288504003527999412921179310271979214425188674836591843224990239701347385333117440945052991546062068084496329832523256286065990619404245809982239067124038141005188316688949373214444056796048464542542147048924309819183185405784486994429900875802771176659309129666140308046523255429305443171139309044138476631155970717269056012294353426799876696085762118767242125831447183577411360279999189991953330794549381372355197932024642835032601601398262169147110815653072306719585849973434556566961524246976018518149218641213513125048253861362356530986947646766854971204784198903478188591218145026469551303956733744947419983349506404036634085434117064683409492445135069810095892869690493722841928564012639682023084559504973926768840465610686952895944465357385026211323211963357559152491099303801847032590018170803340239424904262108299314979019022930414219254369206435496961682900894340735452817780778970294461185726019982128949277706203486132084007016804891671376415517155327025832299461083261385431575619404298713185490851075601935936471309287052725848473058955770785401210903691732020417220506981871957508337800551858029371035332831087490007558606630941058108549689366379823643436497690094754942464935382897348634784435454564900902553015523234195097000443689955528030845779394667147942556084054297593112042383010560617403439020035059872419992795690780975871493191639797163286324569868469654464325766538125123856483174796010522902775640557478548581894485977403470986130066082837220142399034565973809677766593068482348935379881049387801421880535760145007647240166461108930589126453217725767717619365093791623119279452234391072820776613805466804181668432207802436937975148884090202406764156419758154184399370171786676612270353001006653596185792826584770992422517639098685675605552599024421787579174308380649163460297789601790075926730155620619219553992168572731654612259402417879301761191074531495331520130955135075804457279094191874793714798302937036269963456251125265516588504277868170063378143432593571868776839933180529664131577588568533500029611526855943516577501538819975470598081553526200045128233403041638397586180777216397454453286112669826220333044723845824249939608413230369554371970541698832260837528404158253765054746687927735293067902036634344788384425010936958456219232083937940266558263201503250690811986036575190525944549927013031382001364571100365581177616401996044359209663252914754143207884646746197779878444672172942393986632275758217089218722110813490728051996265664250624650480708210140494808521523117429938307653760945544360653772072085311692039449523689939790664919619436192868963159891108204258908496661527381887547779753587367682578385414036214048792705635548748596160774684986256726043538689767573868321242252882674411046470883834642997446027878749364880247009008501287602868149558958373428679088395755656436628892653401091571811919899121178964083291092179808798297994076939315175213925678288928271817517547339209535257188384473120326427016948795356852217148440756952282251724463838346380800321184120500636125015169289722726486824773616337316478004693555700882415483499558882077095261794797959870903436301624176100679959010827294459813214193204603975622931761609254521821430803167010777331700618659674644521961282626475034960324457506930545894342588856587001680634097346651484982816538540802553535187228280178192700310459042811339378201638882884947232766453696754450493386169298568016629028661771715832500030328803535692645444187939485321509677271123913138779160654795755798413392542105779421123643121284448698182958321736620234515256768522196731491412460250391126666547373739725016518105521560835152276948200336780187397883859362281040732842859711583027894145830597359907851654503711927946613485375062716600749202308240487821708513644271717213421407421583555037813437177855917199939008968777275367071885907143219544696347382011001943812617769343560904609114228129670684646763248485377002397999233694345572075525344459013161671508327382696929844584519717789928130611845568576115607328779184114369368651180343654594700810209330235970013956189312069281045442153553620023140280705820782284722796102517396051320599616148859692615275247583988705598553929403577389734746548350961845618018394426435458583785606389838099560322126162617517753962085373637603202813561831457648097933900951770841796696953162089051574523162512801461746186117227194396055065473159232335359011209771229877312481533262174349182612153826939362183268421300088567205301186878639758360231388022006681303862596140537696685735658080099502742432296907046311379815645586676412114853550020524864666147722332931051085915815359126750820826474101133491218527260296630566691038111234180163062714650780843623535752197417314286995896386499598877233604475253445208647566402562441147543082831280094798939858613658727797869080309376785955164470880219436356054098385054032746128500751794781733241505953231418866251443439592302988778074754187029808181696130976225803122129170962861765532428851568976359701162848192920778404861210772201991217686514081435061965626498134493274811257069335732148792418023933648517924762840479093075515234392552146920773569861775059202180512682372461017228547777554175164238611789518541111374039789845858984704067670798227267864783362683605230801900179485164380334715003147644432243502965539458031817223330934264702754600032180844872597361407237787988650977449956462544028722921393122301653573744224428360839794736577956818126273227415838445877211085651082291388649996603579689013173585388912008902033319907374953914237447788860522793825134996610851715165233948080573111666266159810147101011548782103244188903357026825011414591481002165093169910440863112372000892550007549624980593345376268170692634969583872542125123881975210402917055645353045863747456697067317307405983706993729541259411519210229538951092870530645034809238784028317654455321597784707552895066347599677469190511265518879968105312951032570893341176508085811769595520604983766469077520324534857466585556401423998504053675235749496621494075304441304791672804507812193232954686695666323136322857611761090729422926658397920533707584084930874744731474804516198599922032326004226980992465077714472159201978845225880013826167303888822618764278486566048296598284646314955285390315812066471879819258987232788768454194483585735725848030186748667534944584305947900197730120745652662697105472640666251080360382989169767602375117384510919902224023010792776294952884408512676221039194037834454886947527698781699834356296849668914781315245890075302908572591780728708579649730141819304766207912009337297954862108584133128520087530198356848629551595838790700000995746458684538445622731706993566935264395345442188213491673412764374439074895164556207742341920450241690519668896980333361366366403310851689217640804409979122753810579779879778933716964096548818039148160096612462514947023397239644799342639934792688787057781919691077549059201268663159749529113801004690799282049062220393364857364996339167137645028478035284832815474804916003048111658107950252556592627935799593419169545720499391592030022312062325085812408210954272183935362866111247627606627434927464070757598258689205235196214851893387516230749096456206203474227121957758450020500377377309867950979415170409272317403608908035351103158551100308997928082805644584341165680029828902613930074453529484462415881641655605627491619431151482290797647004013402849050912406986137731067230878525457855563805708558609509429671808212944252026102062023096423810434509779507761781892200808611050953553389266449278434751100913295536804727441836542303336194813932177217648523024482831902547143895123931761426299467564159622009010663248006943462772638976810639901505812546563369018955379327068325929846987655415881219184981499081869781411060781009477795049698064343689983852675637585913804217387572344185254687798255063036432106910658259294669480382459519112790510397086937514412292018362893498878496378021362062404858238803522892105194572036514207339986608227008124568717017857464171767402902180128518157130947251205846982323125373735394308550999671833414957705160544135503501042512204222524364187151818217743351350495091545479860289572445807291857041143625374385260152140685849024552951808693041205358958785518467766725998405231309433161728651244037829800464473623877539971856560068980303528980272118795756641419758921835282825956240759410812623999389020903592692822662559510617081213199061015649993119744195530202954914778560271248262474553918439755822099990551763208238195950620143238736880633653462797039313810215975187858184030660667181893800954195022480618605429202619179635634720089758498262547180481530938207388064081063115383076395822741104906200634385827346642891537219258519681110744064952647880139715348733150301238134674654699756771727486632625502063847452175425175829699839141314994093868371770421647032114410149575791225253202294708874223891048965668070081861418364425270715488650040668548705574145876927551086168222545664151935789802441228022324448727717057127594868949892553416964487971423023271154522000670368298881289537722067860953776219777572153066654858336031101158815407499794213893408072222400812324678660759932329351666157445397042851776191096967011635957426482230792950362615096100505198656978716710124086818490377933418813130197750488526394059452791693338172191112766504997974521022750162055799641091924893330439299770931562688827754101313273458704177221150906481492295788316036554475022879723116542468518831048912175315009975391488581841963510321809562437338292397855282522704256702243637953526727703970629621269269214273269561598765671573841283055239981961485584634315124938534036886576089621675757667955996814700273050619029890969444264914546718296315766399470100327549606265882301050105045791652172714261112607762214533390310614272501263809908537559852793121843269250194383707488666981487108287074139098990185678123391193706564226635158825418541331886694907391106272751833174384360461597569302534346774180828666502824133655587880533516570681119175461587931382598589308123068867977271217350420843236852391699047617847113080701440009101371061636180562082326132555178465231468276000623955077169560725537267226970189366921269190617596177913493299353275632790725309532216400667407920957394548507196344975648363071539982825246626695288446974154061337104447527073504797203572976768527115591053920857523679888149274668233361287043951984901401601586590231186859279139525921284308228307244398703871110049963768912130214178820447485070342890429023362790877505124634967741481985544678867847531206539820100720652856965162193622926449150443507061051392158805464854735701527964928305479842894937719111047418157105714368781379429494328030048555629202910842330944257917978783745547307384860592821809505631336184782219398608375480922335350275877843568864562600361705657666206125277809095184501868793281811598606474247389524615583473269453919520987338888428976282484457279267625637233064402548827427302822302741706214388011273194603787585902552580290851368354237886502477256757344784149639604587308679201002731269451715703533089182464629658426642936141562385817735692299801853043819035676223913496250032693230353703310410151544475123449987630535809148217703818264716110343245809404785883197818793264586301888776283046371830662933043757270250767588443578151690856851832973040740480404405395489965388382608636424728005650411152641887410664445519060461871332699211847784556016374082975587607590134642059678102606847201103093697010479410285450855060654720539943261753238478851868078945560698107807820696196427055226510274000208926854406611623078194413200840000312108471545006828462429139796601289882003203680798170186473863307531496998187209114307666137630832184316406706830705018758611016161850681738004504093305310193749005508231848024460408942349014683258651578722729050344142304556876929953421796641698603441599192541406038491821031907268624313754950023413256739438240644726525547892376846614799047781877056428357992734572168773168347110634042311388918210366199403200566535189879011048182329128887181886323059912642273823242043715050977134132824096380101940731212455820144199665076787997842729425762154142181703259633424552607754667283669043559754814150889886112567799518213463338766422581811674462893966133413948472138007557115264562142204724092672470156974482272931659193102411395855049844569323559396817648417113939253111807102538808535784096298848392415267086695216257940346074290337207749573868450329105390024815348774933639047351514098875204651934873133418650186006832010649190672055119893209318363161676835211758079083374059545020343565073511177880653480213029432774686956775098004753908794287336818138011888614295004064699255371480507610131938006966227602828541171939605971126979728599355665297328104271860687433441889530923612030890508280630265875669598556498008207715389349659737807302491028387874648688022870814511674466484115812524568898936718222644469391948148719035859927182980648221080861180034663161337736186771776790831349752281755354563407356021139224161499127259293372624888682593889093198526628181117246072673040049818289993201398339185052417659888030197485945680901508032432385702587415701908061169297309495424086426794466663943207295467632670402108204907712428179293454019816876449490156478724662467111045214208080512240379432986450045914724171086729685041704345372976357568127090030367356445050546175987024798006183622271083631497986196288450900276822715216215644135262962749225318796099177638983014319359780967407564534463611905408239012084011010424877641391738721869094252849053038568039250897609842836331341040826988745888117135182668504322062944198931229187205441826510305488771412487825331265575749362427005963922808784700975101242142914587464253793118046925053883021839536274962740283866755498151157366097507015672872042564808486570189271289792386453116680543050665757222038179686257763129940388118134106608802086416102552787882357880800437449337729763813569871110023677275902201428434465735834621977470663044921226161655431272432888074300261555057827688236662665281655131131566954208660427813081857222109059754700323630791116324840257147164620431191972402388476133032055324418399144243234301087282408882438552406113288592553374299136117152003820686217826988494745314415631315255908961222726028414384941206836334557265016156750208274874981835040472971734310703092141947498935290073205493683545354510641494491659772868731529278086952376713693948985173418285215632369577426873902087403410881987834095187490660864050224289911787071619504685268947824346058423076376688123598994600554153583187722239886538595865008988440760884392506840040541584770577369068863841576425975216025772524423032880641128287394215779153314204212789089671512153089551560868158679745757930814652836575113633411786269039434669576677911549868234771666146879825185754908745740586468587615062890304361444637561278703100365960934077079430939680745481701047194621824409387733737453339843463588877884114793166823882170943674586737072244014891062473080217167278291285187147585827108810790246971285816361006661803082410492426244899936039547734870393516737471473623914028306390891768103678659197229346852948376134253415256163829878301120730138209636223236460395510038550753329650513895019650187286255044343924811969843478801672685151272586400462086920439673808718898694417116663557954129193228859627483966869782628245913254106714983863116365244194708645358318001725558561352649579953623716500660419628555784469150366925510342803724792267657932471287988668354169148332035429288478200278628649929989722825595818389309767470941043936242350152139271529271833448369139828197570052833647872254829345474355214135403434277561932859751236836129565839392169990609040322414172086502216887807963140559568521798937586574491784803754258265480585326293650506113079366253622453442570514730081317217784593385604244880842537028152137314551576797674120474039289808836760336869251206218376627986136795041430872264608749311782341454728425201804153636719517586632100876199507455102635580611978339284562080918797669779103794236388350499268777855617068933844894091790896917053973918739246302317766317188342057277216865638660868494411341023050045855924351494327257043280789160339407966471473108024234510435178818837889047854909403276245679547349420505945304271859766367586301664944435123653928868850283159892575939715223023994192829391289415117074581895492625810802997102261879372905981281523648364861875720110727696880001570103984641352534708170871375576782090570028959215089766643903889471728691731133815503372355314952709024529755464715791097963267531506797679757667291993005767068428279581788990106182608798314285061782881539205479786372562836729773492085460253728367857895606211009402249763089294532486007488453805280586534355904081295319112619133376728962675846594486616594225527556109814781924053901050837890941801583174128063510311968143506435253601379075934536090598855513498790493595427754229385953338602469443348645023311201686382647382059210650810827881961370746155190401089680585095609798979703848772531165698234110277648241450152524712254700682726936708175517150429702962552881634694751282564122953906159381616789852439152351240805263925235814287967132396464928471600586202097535185455201422100920368006168771246318394017238524157025325076153696827133861529274681078750743508328094691631081398300587213118765360776322328926069458069691829617558506398253639209797254855337206042630973340852816093311189575575573975449911593503676891262689122924935769492061075066810921795459408919356397592983806945615392006233099808541985519767603671832569946621600923819013732645086280461153858872291652873224374970857761283604913132936887725614749147231885510436103368173163501382702220301009439077077033882054247177702861625994827003706402812918825010093746390480520177660175725420513255407490062012916596710505985763151098889353558193731929256948003600513755077572585961347472430359556520251256303191979511083950330584649566140710615198736970572794074238680554157298824821947376294311474887469036493520559783087128061896832994985235033299090087964715422175333514146375854110092079226546868921758404294865529412426595191666935213226264989769343631922004518437422870290433593589759829643704478783138470169571568265055492215795427409757229279302698847902139687401492918849371996694238502905192841114051558364231002513809799636161693630044856747359087456978701951826589066676135865092673592857309185588128918777919970095351852542272877251519989504596703732157137173949551429562262660866883960896729792423698565636181750978394480458172535570238584150971918703380358406343527966527436958379267134327706767457894164415991888591163777785584734590492079871481582836378280986888807151196065890637348778517220982871119349080298598540263600660465814370363546281022380730607458063980236177009538413280852318829402044061132579776290935765910653248338498814802418419046700853395864049880913390500282082861255171693336158876791338903862726190362877976065391093973017431834812103134459604954458127456233814980483124140025357691174512176479076144899159216661594363008814195880427454783291963426991542521752755151095675855937094405056088129918099619545856990802791646404165721874764452659416727585656858276117295666903157629424617518327807119738747989197488750162173515677046856017779953551679059687417498136012051783802881402337454254821836570387945698771947855008521674154509660870228679095373971776082044422729117855833513105859565673611407524915188781537245270061970624160241258048393464132152877871832186650159268074994873470006615473640170508388545433269941998500661249254101302018186151494079219377204568380109055782979246429838873911471809591399413286119904109717175658642714437920452864034152395385631807099770728131844375344244871188176751743696209309048864449878558544162719783556841977421720634651409676487377026495473013909427937802559095966880159175655786101747042047237601628847021272230714018507668169307250011165869424081506339957021105125034280028999518822800190998127687280119404011194256071703513101780537561566033575744942912987515745089215720910770912461246515499311771507354211860197664456838687896576441168483504415025132683337147496504415769488905004657124439062957063771265315080769838043804825943328394594068578457462043987308386404737113211983835504578581924734703142826104059099640921800678370696266377175671184212195360310291218509726227758919387916593342404779104172643921452580827108519664785646755239869459798209723056497039389177067243198722242110453250987627915701884225263456005525227831232644481343439267242425433765060478032988504277327718023044917109838230697461427564885784163932659854012497092408034284999152177980474341596545363106890956768607166339888840246069792207429783154023940112112930692111966539023591918537710701028228270085755665107926409701482078218485875566946954717161317870921116243320853292350935028712446801790942614642150214612867377331413647625907307261846842615307040419355374052834962351884303544507443770542468405283563614170174828247281709490048359997888239527151012800762621316141306289352406903792591700093225981841897108916678852928437125496772652055022412678630352149426468652544373714779388487939357614020282434682844979221357413607790332168188786854475819701143838772470669476668638737670540683121837633482013541906971381225044872722087481638237042542995399870792908391138710734280443608921249279010998152863023332030663902482094198722689805959568522846228742584529843993482347156774230931369147364021760919642473442576130368781566616250697641015718276766733646280092999474676713828319589373237261250788086027161976251844612868072817037385057395357679162735927005836093353863987661103226973239047739368495430585699013051285796587990003228987935893042871915261388077999615532805770431754869512285637839109446930134117754334149307382176248924747762174761689083883137990189728149087267197635578926477450170440486199425632620998900142267593050058938411597324557122235413363058390972303585214017978602735979183779958447314927470157602823211658763396110625583641558326802819977916050809799999724302457605530622719547979787889552294377748936937489530319262340689572726895532132134249212431833291632301360282142392035490243922764528428922106142197700381764777848269263301113423949724527228607004601134325810074332814315149165086440274258981198611606536725099408755804337311390956253761198350535186802349049625914392807434969801372494474704300543002361785692399175248605505299289948953563853944268082099451172097566439964082295639940644557950965114983130490744135021281746400106147361755433239936486341406141638532266870058447155401612728756217139304390276551995611987098134756366843354467339769928027431158464867469897274958184720554295551874274085106477321834280044473160574675656789197266946237157808899192677360588137292913594047270530405232606655577609509303095946146764140353811154177912453920492570300041930343254021679942832794346442841173554557611043559201664174940284228533425857900731748215217345207426576837548487006698535626663198768062323023396134713095825064606088675590396763865640942671447465977403938914697517241262277509085596066768195079055263323734181286666928646236130753502062198179404698340833296012253734245445007536521999928083567632818428770471774420852114120808795034134054172518727927618284377475194723040810964195688709416475925962751496640635042588304349819805723480980874837360787110769737411960341551583245191496895391503826059297778537087904662072473018663262788824420283196988639334799125365690119990896281229251333640268534719719989136289376644207936315682202113010711612106850561113952704757542859753201334669445336953115246956651920310119101458325113915818634454500364400075776842365250117143249545377489425490714637801130318420019035643917609539670167861141654554167271891247575461875260740670913769178855877930347203878565229052472516236633883260673154602367340768445971160474974936228796846385719839778889307491780227655027608100455551155175636095968124026228827741223984590445199476127483935023902839114393977353793964385990380055533821694474764032316182200702482879165811222880608809311846374678358018753013339762069113849065416356279346832375831704358328365183357613243402837003346279678428341882263625416637858229166682976309587578817708584084779719595445434802537662050773412309472160886583978015550198761429353555916598469492587797642687984410664039806173811335996783664578043113781799934131509745016922583687348078242377293906973579504040166135606881209238869401452346577403380649596397847779876325170799702966102159703208073338224557570223076029589458496936752925239875047332281224984065975538261334268250890598883112100909941455260716853048433206191046588799897361609438488565028523301689221355824749411679630042908550863777983544205417411755553201717791339139168382939804222111696859610992821200667600577130090043070665757370807172361426258694611657024336373141524666641766438235008875859486076072214543838488356640592283353424658656097559122759282661380601969289418712410860546567400367466763217535185298810234466412385199159703633544370092689735003012422220585501230077860679984437533638591964062400789473033651017130177522582899579427135748201038404559341807484327959048420764115849723100000530572637954247275742965026769744195117732605172085964540044622247475712829701031291886560766693871767085362870484960476501213241270701733689425496716875457862067574997169315286809777375396894658391224398915981483238755877994296365481630636979152706602816568441522189035252991819259594199664023250925663943113960546315486003432513186904659012651435814519404448630254376799458568455689404799567800660437708277516898269312357867365201668252715650536047639647600683982089997551645917006847457764110828544100749195146514784381813309397934550951183293169510154380759775768959300598173367599359975830711833781246360863437432487714022330717855909100363293264342419350691083214048370159345160083584459383414966611139243570042972746750277372959842367854900878669075961981491308323374103435108547815261276971135735770437964572871345351979258383397658864385750923881054712576077634582229441910648176863333553207892886522705955460064812951499933602971118030005019856084964475559842581087368543289743517205996112932851921956841634475168892443427151691724493598853384549682762646716136762402002339646630165675758204614603743140194325684161028863433020393388853639208050825856599184078928114827468459724875016990308753252887988766121637998532864427284927189412220219531044988198003172757938999504735687822762523374876691952798895486366538590565016581149461580120438977218978538196292290055987769235218595063039613715681625703164758211188246138107808654400650685429964618042773613213098579188243169830888414875187029550743261095161764743611292531388019080557386325868155083054629180168774626901143395745560035511966673883313511922378375494316536733006166834573081705361291647906042815415306687584568016876486630156948582590203253816289638565810730097999331541728998215228817886508241809657990978708125258432747128634642738838957980600282733305610611112991595184883339741041040201368436745269401009099978770015436110674224613722823974580507747208876770214247218137107156440511166976872948758522277234614976302739461750059526929031258471130569957989698386433654559376215727962167146248727587668589432968478451300862221007412137019040208507172390492165401175739459795574140417865373418835724318488677370850654080571293990821404470293136889042662402668199592085370092351225568321917497925331119225429622479966789776606132461777416924877008578860334829425116542174408118177274257289418331558220036895884404051016459814128753309359687808387409351900171692912313357102175508061105781718410632373285767266557165684951920981712592814284164371057899859108761691656290342787055692970804520706037669756532995110919526174252411642090386466265349807780947116911344156273239524307970909390327512252545117977509468224521645287123845222857094991500754698586745564737249528875872298895601782927957799847516467869491387679586964428399239288647867609819134752324345964218691745208703747992010083807145414808093499971227159545088533799416037328784498492801158897537990695374729439334331846277381309998923341550007697430398390561533513927147598121542050582305526058807656993750468297152796087282029029677833646203572173824394742119749845956836802212761880003194151118776126824382021016887210397347668326232582979899224997518210588748204004027140183684029929828745999815059673460019467971833296017455577708829367772512877829987170542563235719433869348954057735987619594998281234499446305833209102272987472078380852424259670781595086536591430608335412844429012963697731864809324510118185356183586289676077392820094019051876248814959899005900665358197569368178465160563714566210919283367176577142132687497910339378021093791214591058889427748517153325950603312153649332671919999507987330334562418303099059128335205504075246235376736194401743952665487055472164977774583588643675566533732929495308742495605546816319573255998331482632474755784942218982826378052892882616745077163863091122231734994713065312514425681045988219256385163585330677569691281440353307238261294445492546312705318552484065294312819479498905088770006028469807604135293272043142993240105441055557116675040671442748471362781478957294214422479121310687237874106716049278377184494534426784198599204380975491243308009280939018692339529904397869705615683283201162031629818460363324921036315166409248867384853804572244066871965552281173284299289233156621435223357670748447210198007098238180013324319660028802217678438860484903104412015314987276007178477779222567631431325809923811838418198538305702343277540340268801803886394055582611947598671462334938384741895690806184630048883262106267052374776690755972784632161738001999993462664083046918507514439777363246686647421581920747908324906139288576689276529623762666553599272485995429430236989502202761008437472688485319287529674635401155106476449717289408545011288516680804340943604335045090970901281406487596684126238238618308136190610760791751898375407992874896763417355005749557890852786106545129482260140570109871110227958209535319203452223927823523976635208576598969672297839575112981887446950850814204516535444992770394685664257737245011464525644871255658111037263210533384018529537317902777202753978323075013476876644698920739565152965771171523879320220434528926614186684072438898097018727822212697823945332367482895029240179992534704047887007084194318602430660850724579698184356098948132655662654531998644514992909355382664222112512097669901322518011777200114769313261944695343865953579875709862738800637288301236167955932196464129250655168292119306201849575277954820054255947972064802203342400886367750709814275541168447500917788032336040826577099977541522314044560355184651200269752347503292266401308982669685162998858253352519511258378284929485832976381943888892579728995341920904037341317145510460855269345381524353961925706936554652069619979630085296875009191263608390003677079462180326198588147537396714261880770473236902010775813079199463849189479889787324698994594073250481894001622380885056596243312716156689094977067561967604510219703372404109162084694619618073813168620468352817217346289759223125964382312314213672640819202232353870096385930794943488026211994660314324005581698914540201720630064893079077466280548108352181692174119337073249040154395889613782076456066456212576076628103685263977989147501560994756507888363543540404945082290481507393499827128207723244513470502107214669062628942085404352840416351292211302325561610391549909530646519008355321171951056026013457167944039874029210613993129806587793948131737533287951154990500713359260254762824620108628183519687637983022208647015409181818827520298148895646120418259443070834309979008785407137836380099375121597222526565889695876740594601674241060762827468978929416772532885077010485968264697215295143181215983985426485258681201409878089752797100892446066271963567871934559257745149488025937526620880143064967021528718465520076593533621913071145931732113402532707234657630905883685570388074260966741149569433703307478094463310365851308949944968918928439579398561389143876296810405889158027703862523235514024764731239269593717727272306120025816053389906677380513999791145660292829332821927811820314800764040640003711423930426736697526885190169807401949203561886147446738432439816281193819916616701422863804449707977020848095064521237378238960933470098381276643582301835317796278816837069208248896351217673227828045565119997530629438841959081124319717668827110503543254476698266422865598335797496946496038627098526935973087883992364632134471968886253518965512242003495215193846699258233717620676875480247245440743187413915983554864855543993751152426316158692701061386272989223148960124190021203688197125178499091300634604098141904770185652188792534557614112839911293488234849293444095479666444061294116067494284307745205397114622061388278327908470291511668776234777215518793248225572922361274870774466269438721522138953213342010144257621306032811470207412048016494530013395007815555773019102059659591911766223758586304117713044093856642525574274011088880101176437940397409619149544424449619372226218396954945693611026431638977828003872817650501160795295833402928965160442025403479197145540609653682141913473446665299156016554844485500982886263949562905999398588357577273288605207016605335456114005413045772513027854709739682513173566086814479440381086521699167183809092191251095088845530875507350429965612908751821251536092854176227088145749924576410345807726199949159015758827417255656075338772526592806411804416722693285395391852887454922710873904712041373159222271535437138809063593416032606060300522802274899306480691403800377185949842810037254268097700911287858068011294428027834058845677047656739640198570248987152989467568853943441559676844898724603912594768620722705502883317135424613240338525889708501473117757549850124893715577629796099654224292688422686440548378167063191529932824688322617582478628018158492629587424642490709808081467705672639948339082684398784515709640522811479765104212297412627629752811446031638150723182749279438145673025695574502584287384916084057419431160578523742616513210285034682578586348191859045687424147889566639656473578558751179013179678975225095749130268579823243598022051980094153707902053140220964498859673000688213017592232774789338580524239321117580622784484189281546615352680645351829432256446950179962861232562479239991941136084554706825510759370642518708739030157350040180848316797634420394952157845669741191112102555460185522850992825686205586512403974315830209367304152168129783570450500620502672158080491646634984426362505360172558036956237794149466966908011839607688521294356277151363370719206951374322629369676646300281118360910268206321452985433396164648578278204893359293803046314074131101310362391452336085185595192885247074839209358412281532127536019486326866719248663794631247123688465870177225081064271133530915352763866182383819919023094670009475408722158575754641006966744599359656142749568531382776300580086126079730980347800172783735562698256981373345686345311797863762716257755186233338974912648550496390176767738299969813416806607522741383436102501080565430101917482201555121190563026822631615967005555580830049775134612223789074427727975484676264441773087923404744750410025749475063598755129069898800035993168098655159287331067235862241116011233498029671058416646346685830270961287345241772632684152813962492148567764835205409454600082854661742996288138569828207157407588109908374979559599989085759140628169399193073152208095899563075347967755318468883671553899580395151037018222180093815304430401666937334617455726953637979732315974782968560619621440388242378302544392314339271519776822417500690560161362388715400164244193332646549002540045762877704650017687741036536604728194480528537253324928639322478457410941886007902060357883289999164903083418177663595761846724639415008833283845196444387223173635767917910317220839999915240959207506669959394837142207212084881575618400042080543398289637383957210304184416435867543031740416809658635140762537494645404856495094283560465042265487582284546164677327894558216865584805721319227701661139084583039748783514255228402305188666324210407144721066958390935734271239344169774045134507314059801211436916003325246591728697422057431724380981023335647538910185594529433422974422654285136223561648654810662233430754117431183365084170010190340984694391754071626320980605908936260381400827483148053693058415502219728017422536876161214679645446895071008137951768146944118880909522774554949824442379863848888085013555282147402855956668161624159430373646505021393735805357419926154686350676586283725744905441516384757059670896384390076967305564586080297225152042440914914371443107158556345452211137449570093279511202010040809610056390593589850854078533598056788567573884108293025711176810738559807713564335313038408676296946215880858169019022496374635658322245599440479703310880277223866396821705647323441059493178498027677883287461935146804286327963312158857430200731639134494484715358406865430577380291547747856195811199810511810911988691808799232589572543797238613058561761015378152713953048697565858069666131209130805953662748932391770826707564824735860056144816496693518921184356536394584574834559375313656987654748482855947072318167574566809198111328995699628621120020258021293700073052731411462376872828693338820209638173056180040483494012756859191790331809389679082851591376760102652558273240561318443661606342453086033098728747202367575685581344340061027724958285663186048296956039658066354215367247865056531303539672084890734935203834099052156423031927164743357297804441454580856845151702594618879400779526734766223829725244613770387898348876596724394827957908277745785539821331838580868095888428121400011422394854442559824275079398283066286229175413091900146245360717587919206683976893948665988959924864429927035005171609425423726837445486489759018043567589568425554693111386345442907886796044293550609171508281359550447230343739240503042498268212957704113859092409854561144613518015020019474084635476664227939036160642446372516274170874219167845418321239563480729710649551132514175540607604156772699583457519876318048526374419384315722079464750431554745753681376015796179521196200808162979759350991263772265697508389352824586222749134744425483946158153578455203006465120455577783876065830575560453406478887529551990015329839691808147311128667713838929158360889990796888616440739018832919736284185845948357414147212934132028062150937517444644785663123954727047589820653890806156671450203097228027508839386492504646668187822318921476223280442233512205461033787273289531492495602383621586034696510819168601175268776904183535237641811602280532372694310777954712553158816217870002025735863187702195712149560414220928723419941040607278432844748739968605160165286663171545963969597354098483269272039945318370628590273889150544949539306960407211253718781053008323771911374951974426828061142423820971777868982144084086470206424712860461810307093829952866202219484175995531371509251168649330472238800286786925772212680603352105132956212878379432760982187977252542014336459891991289012503438846154211517107817765462279238702128035910997055801158704641612647355083894873896651330938971125004442513138535029604901501367669242401517220517070906685747674851633641064796738227537934086512984396837931950385868216021443871426298436394382687561010358876068518648038987636752731919309972897504083789860451314972519004794634906144378278208454205771877805019508592638576173167302950508264397480665351618031654147155411657953420137714138339069704644691734682608029479403731291359684177621021213974205126105393714395643793740573727843608595237884931803088839498690284189311123777389366406845093765514982008407372463464309822265096626400418050106487168695776570448139231407513580746860290914531961286742126842461964774407657404128266177956901978243098547441155391429842693769733824077467663854357468039609731672676731969249760463610967186628235123187909076212952305096264569286409502613623769997946346208366928174266118562547618533422914205165804404948616632959757575974363456365933929158411190699956833492419079922919327465086272119077665107672623277830521058021579073432933301916921878461884382335291643193902635398378973165517136220170170356541133874687630910515880077719316973563820436655549911472176033178067554743559074205681424495759528189479313505057481268344918271280728371455819854569493385798121672018564754825467201766764420579827718365644335219177204176711723082118389040378113851282186403618535768456096345567484014431825141271116897019411305066004487946255529201143261014073740265729596635005181906183256142486381520552241044250986222457781200804383830611044972057485334167229708675894558084597730375944752369853428514060425927825105248102070702707095887437096283055326016434591814358180221543971405094012298445847161993496716217271081589348733766878117860774459093090477568314088927662674077943467513546564284145456162191523101084901286951163818766196887797184840539355358889140753108710989032416077358518808970080388917192381762981017879666896072691294671140515987733744978933785622320697502158176756026054222574368893341219214043884427973948448566743213855903000864443668688740304795595524886165170087028237607977622247957866126450653544898861174997993997589650505739663132734669547205016412403277930703073113155979430949609840408013777053006674733921652870471083995700293020135723319254776884363194020287524412911588469885253123426028246004452851031932177052588254359972991999662722372710517759881196674992424288658764133090020533509194352587698437451884847101785370206546901199093598984043090862495124506288278610965391930339730372625346252550042052504870205178332147636987875517979527308583095105876198556991363745860651081841311682099672251272297370196965908142979315559443845989018218950205878884659816435375458308467692735240512824401761831105537550651183896505554689231284053073918548306406070152212180116116250825425745067536241812293154495157256563160960204872058323518340517497168229638563911121916901432821105827731930430257101025037024536168938267005639651677217399456373009925822469521384543525145704770518317139976081870544433311074273351366699077477772526526198138450626242299933105896909191485859418772458444161429034787994055382050271437325486736844262733465346321707910765594812788059074832094042474098399014341429752009052172267630089324339899893636433296387974754644630095508729621763328057927571629376826621609704050995730660832638767286179700770931486592217263123054406017879400565312693535469669165602524883016675337886590350386945391551534087741268073657581794287787141572405279265794279893689803872854462744323003152395527167374108281682946851217992703819627940693375855168153077964167286607910108355481877328642617666285914395562985786853829014129240133776844810803674931869823345584404328086809322533474430481657852497397914162072956366798576490429874752241655606459362708445814641702454840125098322206000188709693716446823213461601893082457085748133030442129797478987410176503010485158627713393632152786963769230921778876193028270007370565675856498293034081836750221737795992345755673654917556318397254217457156730793044633608190441999513377616582803319045884128325707469755449946069260707535610784082480020385460524732172000615156100099462768483121809275976038053204832598123385413476656670606173403363323438543695610268215158871408447739111748356272882941202252914517412306229347585108497513655061150551299568435477233229024521401537890525908044200060929482158482727735693216565747102487492962282787355183155600044973193174436881836575389465839667769094655908577141648652003936783238226601140902875632460127582931691363316499634504985029604236163680219544440635421367542867573143322805863976526547408981472338963341305959534868703689865661359543302533152745732949462256192456280612123608551275305340936842023679398725127904388801800991860736541961767671886358794621569631800708657878111211361292603113491110021345996613027517581740677608224145900255817577576412756288090371146018484521692847826608181690610635379689109854899142619568785424489227248216560136712881138254268289671571455299876656412910602741584661155657664027180875342629018804505842338581385073053790192129126438502013140219149942855676032526569049583578674762198841403073478916297165905989035867621183543909051086375459197897724985070421641926432350364481930703684898233574906492851170350700594375372126571704583692482053283701564900978216653290686866549042579700265597600887914464854010485172813722236061439537918434595724565186924047341096975051194552452396609537528571849469730638170000501845041960882878376939492855841295452470624464970296545010765183259119205660534428525747207427815738486934546866275119635981471685452833622929362590047369392211938122483096977921105444759318224047329359234901527884642561531111217629906587993948127899178833204933461269307830530330218251441824182354184725533851168737615023180950760006927747527897387993725062303469492610412719649170699083200606784484203363686281679133760193332808619410154948126098092781380900047772677353162038397651983871012399402381186130355077273411921783688417413904894972407637024954946099155097697944745008137746307197695537634963099032072318467446861309135282589372435660024822244020945096564442612321545404937205774081477188410559962993112819992907567062568157437307234719958324899632398629983863292487312488762526962017336179568073219248531829997174699659523541015976027555746228153924861928923898867147714441458444086063492331733237310525782399751162908616898563869799691074295538885891565111859402801200954676047123974446832225553248887222496677850608449200889516345850036585819791768814291182260430913512656246552043039507934040565533864239506577472356090995063552869977430329390100481936380950846276597270188933835476654350441181952633061938141129188352306100014805165563197279595156515335872524469261863640314028775427184705384801261096699537384533556852846940817954080435638724630403691159674348222543053487315830277001266646109856388453041885091791506980523444856681979239693841683365647628881007339397801021457873616521664089220530757560179606091709903517803399816665158766542316780458558020461130478493939557206670801648440490644652399833273107940060404552134854104486915007700243581956002211994361859569183649130180212670659403387908051383278080075802469780462000267725948593782559393210609456155700283040941255890801713808415520688537163588411743352876075990714157976237604970165862326876846907418109425289757626539295900054303613781174507336682200123027256169153548035983380808416008780962204343493085858794672317115638977081639638517246925012467296643042345734762811444490518661578924528479704345645852849466625856723479725849153588264919674204958645032105121561303291360358613783027458251599582609946643646623768590681243037821989547089639293730358240799345686082797497728623326192690208905754857775992387579603346199747103386403470950992325255513740775832421716865135362526699908279528260443455888093424015649527641485953600009351457326697948357416688525010001834284997104150164196480678397952989628002913506777900270295449624706484508558291116896740624243385554971201501119444940897506794190118609101044874916224417456419236792763231430919093978693419963250587609709494896747039137765621562310852195485200562230847517970195477536048370815904991454257922835977781972024263151327310915377655248765157637785625195221181060208619437307651208189231436705694825460188157562335743320768703953931820721689862181744859946092719433717716288735041438364614313885097052805475323675456683053928343104145443550914601106604622005011658625157299740252725324184114844746112170068697258985378309391019187821252208876893827297329007962953433748056628632678716776252490666768621079326451319858819215849264811656545493908480522757950522657749370955681771417327182948536139921982482728012496798454529675464897949618166642340761926101705620467272752686626258919158349720176057961703531462020600032366647271356412740339176729050402155806026311746380915680814032444523133329001756256481612783723789421604041483777922714580079224291578152339794638848767029500148145036978223734596974071847101328626350461635386255903117399676351264724007721323804441427439801201670270014920949808685820313615163438625451880062079080191270073937177069525675032780334233731107183087112369738414774126024654398737756732859307153568841006846249665443920453629360939836770387398414383971908591225156662194626279878942701960260046467365869006512925191885057057946012815175619449269866956282173897084412646311689648972478395098008889613564286981289817570739200166309569233479316135956522498628677325897821178686642131019330458927116810815927014724016827590657314323873387874307178565419995209889398453205746852891791954834851851892116941652599250363839582314778982643339259000276824397587333264901150543802638340682398312961960097503109013212438622030005019220579830574076118251239219665404738458201929855339491561788647553409968180983444630465498583102095695316939122684207863498040661474228612633083161973318227529516144397889781435752178294236457966698384353567000586334390236312043541703435788354934230331018185061459803484676093468054718597281377889287557637285417146660342890946211892630109293780445510984155671155397720738626972752894337692092515866737024291522937461951807745585030701322229449190210999887820086439578255170954391860313783116212942465538659094199352572994045293042889591480813841320398095211052225414885556636528897538487541777953177938040114067600045630339032480761852445692209042248332360232473536747208798386974971362066337489783452466169025286017709330970030995329220728989805880145361401798624784631475992367088740415011024679513866891007596034095692619570450663153185975225548190685527743788002436634698147338830854417956299986011498915610605127416592042147130573503145804188174496724656774151526412942801577338484559127561839352586535993087101055316905179999496518921950393838558732534631261919813432865112317428979230703783152211991213724451740142384931637952114467743611910769199125202477298166605557106967960013374310494673797366720287143297095173100641541621390464929895474664640237421186132682067757996023179627630081033488988597427798032573112530806116269632539478090474020747485634362386653397043194852913001722577194319059804280741202577455645053939622844351987446760314739601001996047362509522440184001817036274297422337481328915624180025031408669437025901808425360498099082104475215865533015680894860491007265950625235970518814149550996567425615944525521296922408427782188323311933067256293848663044124723815603146379299840055465209728281289257017748507347384879797815556964223417194598848216939900730537270061181999936948241039488712439678449073206616912901712083091994442425681505392210174570614936060594698638156186543579792939603267789214823338910881815975142967246166198842607128621991861703000165869458456602504307780550226170200997067166463094723731924609463299285059154608325476290347288609369758355833312946013449298399368491598678584166090145289642468162988794092185520362945788812374694034902738166954178185803643504751338593204140909414792673228856898494521595367088248797215940215090716176103772557569932076577332344163397024111727875964073343752621703261612110160785025713489669248844066400886077376587088171938951213784246468998655291825155800247555324694280259318829861242570348993381242415296011058103466580577033713932894057804532459606471122433823739805794186424031880904274646268503968275580060710517794775143918982232960882440623411399672305064463996929845755351747986816563176697250140181366710528938519313437130340823788899070559796694651167731502893742089397998849599872184399041618018059573005889305146942786791654999803211559229883009161615201686565922436007426696990851736816430483984241045095992531610184985218631291464075573746372186030551682675496693754091811211725187044990191065407785259967347410365762583766778734771839100509567191402036413328009730600112201533330513653777557445387983836294042065410212055330526036666851868186301820503833072879319447533780503953402997529949426236130341392910630317384123543740371465742800791332845511363921538303181057430756655444799712737952208291617690091717610983739032622134050331752084813317854598547255487900645659634752230124312995198283917923072415584332808360777071954747663277675276563507347609228268543889520933472048744262367248306927458447584743507225915632373496773521884003399386483174536068154840747094892208117245907180289819106309742848649023499353885550708790485535463010210151535686215166562274256406494500562232156999627863815089462424816312008765227840419481453440103097026077695889021905990729482595034805873727018051327185154465366437411617146164781370017206513551081732473818030747156746439727655624760559968640977982725451595393855304532966225979756718380130192773322065287966270727400545074158300700899060881130194862247506959067767206365402862766971749656170504261141947073117050468752144634503728371976117118079101553293154616240062810989033469847839357989692118271595008439203043183917918741509041793655074380462041550240616897477988293882989824238621166902701497645079509283243479711113514790479870528710293570125453594854409272409727285681917758726889375097219594505078273156147602888434130430386728063245558583251561902377570415130584846876572695446748704166890311101134367276716578891524738855733102369649914392664243634888328959160419676859143850445074461472864261066411429692902480637305155418226626117735224945616202464596226035155607029701822585395386502869721984080776049942533417641005376402082931881211941229239726596928982453261405221897416239922064706197804152323738427444434722426098274001386165720841310659605406851628905651374330097142513752898991672040563107847440090599266648339630187694990067458053730450401690130958643814346960212362401267471131020701538197965313327316562784421327086487915635884641703562204967734449791203970415139506021553232322338475048428644024885232023353703961977967187371464580528171902324594126774419127647554547893371275174023768525001558748981604197626247924058556013627086517315373838185831844331886945497803408147090946401844288304572382549239632669847193644800602601609493963275609385214016143094786135042433370280883749175415876612219118918474018161532125113483409583508524262508650240350499298029188845970910196495756941851222983855949220112155237230995343869759871500965125837699981434059470066015428298280966989601315395390979934578865641199915513345250271295261641311070335724108252463805776888073976593955450659750825361170559147786027273728693599696619879504923598526349166036653788011406110236511389366272237205552641594386590272235253956858230542043535815003430237536914952798453977603261339074422824785259629514281810591500624510802314634555485822543971921851615684224035259848014968216098903524892541205034255326299784448794561277128648468959988101130687448801620499748205463726135749816223957380155838046792535909090423423070051620576835667695044060759369271273537056012725159493426025510244401026768244269740860131744660596797539268692670906721192288452226986715744846169938714024962276691977507457150323571206307350232055373701170294276705003935055872113079075562774009177617910105971451958682424374503834440370597192297510093885180338046369047370027963101929329887891112199195639018009073710625311136232098904891064998959352384480340845338468346016761293736976373008899177430635367919618692680638425570412852104961646848240106138947902234769357713582530542298617791020048547864799216452474457983415941378612786614083443812409559108546789908592322356572489790923210313844955561406588415167993969967662939080937336701950900141744598289854829939965754614260304502110604440508967427521571448692519558452672260748505386599758552817281156837363598857502281156905115561880932318093555276904365442350739457556848514774819795872297417603456291010850546122933827536398264071931952852953995345835432475197229902320894382251176637191292320511141308984809282550630316510085152350869647240875564065710563938940500248894417486333195190558538719684760236596046222402468680789833523010867898700992965967202982578589933347988092189859640130981380210552628915426406801801940072243097140562530400914864135181234346003697686944590759106528598463478479046387674590896853111724020349916464019051378936321610703991217083090290460455981258111390179740332183966545683087863710502505900664728029287927415520942300254159304573542773822755126658107634376866724682636366219368932090893070725854592172857472474301282580076351717002845285226505346685935948322671898207722976294352844051548281645406908994337044194446136601546425435869181416868816203475288229795345051279275861688841808163112013809588720635876101717928229963606695524218033999139052230728358099204644327633397229081918689621135948233866872742942927146665540685851079077686558534865080813128208535607475835037947058117138011648944622156407006552034879785257505139034803884501175771989492789990980852124735616314596393691848512303473034804688815602068192126369644121866755020431868811031599513703899160993183251461099241792737810118123087908986400952596458796495661967975554490918751913100517619884004663492860389735449654632907596428891890471995897484347274549906383928556994593251369790738792925841195374958798147508971586443327873198611407560666187482998819200143432747515661574524597289639582814453038127456368529944152771978869533531918714362444610600555861404428792835471846668171775240825861047164148682259371550723636925870041851162722815696371783754778011883596936832657209769237722735919848211770173560847901069245753384017582796606753060759279381860428870541645490845446625313969716314994376975880671132304402023637410125840368288619651827682352774830578298720873455160213574059042838475749181732019030103041307657972060030970813129097828970401198902225114497672164455050221196860302691300208565755773567242186057481583338432226961444688514143349480476004623291426320398631885067172310815012737991247009811938043834461185641728144561243355090541128562921387034145343979522042635212615388728757854178192283633251347352373478969301828537600295710816099538670355031851683714710277638463648315500531230899352087041972294350390582248988344258959133988830011739643546426016753439772084337872920335902687940905856051750728376530076592334502865958058878070426671856861895287381811649292603375801110266792085563918911126971598407006974241953957260472688476242670785943832209044509167642687692331875706605929833684681142835501061179038909528554565676506369337855313448726561511532026464511256883841462609934898235496817409023890141568293548626943696084442477521889822784004906141436314856723954206526951417009286784867878801788168553456649068676757716092959754899375255150678273561676045278713872047905110128873296985087577468020470857650779467752370813675851376849863870325740976129590442800619818201557487132668822092999764377690714485653270521362820154619665696585919707486647750832445321034882083148055537029253510666627755434079635480661716162388846515125977940409258299291678285982214802260891178341645556925229717923660251846166869452747664145145085735509408738251967705507949994196561952682079230270200571937397729338147551668522246585547673575836286075980418568249042718039719877852838967443459226387668001297510730823378115621708704031782617713896048227885573287247298842205778467417266815681143314889474765913806298508435113447834510112415069813715927500163471494503821495527623052194029353533117879615432421054221175106880828047347889139404965558152157735528682212363771395051849798973917797075329723622809196318347098265707145927264681350733014271270063347770217706103650434772661103753662497036964536037314610912168978130097890027405315403465187118025979661055129541552650409719842058685121439084454658319261535989989479864638330202823226780966981262442248325883278086737800765787355736046791968029625256051770587394485540881533284733188105525598916523872708645648784183638481708782911513490630107100051126969493074797496710948217334832364837343318181997390820584764002526210638355233056313026645957011639190349745745360839041482458651362610845376183347017980907624446881552398049625540512075194317312103730666115984716196321991562591387504802810859537434142219893792678305915071527524064733261440971197431091581209556010811808377097572231540688064248564627307246215410524666837702510522391019387895326509947094399681078214938571494018603799845365844695505901382041476753070837775521325900135077788327300361375125720513573976080339113601573103979699996734582524554819958691693865020778676555576353063180037441276648511786054062048363005615418874711541080222536840975719207548742291818123648871857380871214749486292264358208722274416195559119704784776624412464689325190799810704788649226605879636791591993964666627597455398267080708026822777629681934832007635754018480978252373184158771367050533607875521608360893094807151374453310987859025587313397780577647161370908101776806262471634969427180201092124246333249116889085240692129392423566336815988900337609382282247278310059060837478309967839779248442414404698353984403704208343819824667056730631721730325316099891422368980924383661625691076957536661091109405128803439488966016175658495326290243543375192257868955093150618400321626337849027686124901575089924174802756163129984523987494547782474403539793107297034841780291812995257792647076959549661668576874369954064126277234241428792140075633870756809200321159658501445505173515674526229106538573303151335807358989019137698263208133037475405660408717332083570921111312465143807636840779388245277314315338294523595709251912118342759330693067588161931848535514028855405564632855202151115996268352568675403304434641743182923834039208210855090041193929685976509288806810523385283598487709526397051787573693962128538823939388990187640614140673626749210190247394765995170246323696347017132595182044231994648620612297369179607388720454897897805973824109908208433584140177017968813502129469270363526391957297254376749673535809890335540112419932141946490829745328815017067197381592859813767408994183872790014157524506260534256068161762152216292578150566954485234191481702378286799480314860430649738050145659096255949080307168488906960768746327777340280267363190677452998723015649098561852345783942606956765360462480572487569936933620578977886882632175930608780443319409150165707058374928461534668823190934668377424903549740973462811609088512734991070616406630448591736710469521646464412508964764071880304353360524307040610133211915343212817338665734679664768724776337396040156486590432847966205455664550587804085910159111951677243950551599857658125042079853148050045975327314249392356852851726717862020034346097296588058010229226897407651467354478807708185717387860034997631918772718453488066130360550607767752728611036986446338774206486678123459174775952896752864563054772909485221161022775252132505727350315414357250208121772672547725983872144772644459377229306174888556210628943469348872568537466637802701697892476276216352973772958207076462477820697914970650082613035376846866511129082243568531422222438553521634564925431969154380239037265258312127479924304865138569037785495147750438890186212624497715399776548794971138224192223047370419270056227023160104833719753583077225851220668609052249946211488086276273806670038521848591620896807891052404237711145887686589288233832192349193275866579886397234553935079332960380062537789315552509107321946390631935059640619301084960216572956660805889517540370236377092608268132703400451292331691584440705145010303625145587168602536409384492469225857578255699858410397951152459233870612648412518460302244665436813187477457512211512118912795441421091371816782898702694478882965697728601280994816744436726258392955471174415066015051024443660587715124911040481469703991782772525653922540249274248052914475900418421855637482656027338600567820535967426638707299755446172776434120842191775631304263172537695056653064140113728088419570973865506194773291346266656950306359727857346821643210782159086584010120533833957212138693545910879962823991770358759911757060642476113363395249104267522605547881085216071682017307798536738901683746423296881447422534279896239119339606620977855204448502218655150803168846538223639178907495905708937191228200959437010072312055460261355523416360899742860660971302876181055088217484211764799941393383796014551335911371527636627959324820225688266025200800263121172008645554882717713649377061171849962031385628009271288804012116237009303623244713925817607924953336497386075195042223941023326801174825558851327419296983174442199791336914866839094315163690004619574809028675820641013837008654750762616332037945569626771796674343361511179493472711304803639567652897454197004760405099320720698876654603103337772507766713838733867215176394752768991202337129474157989360452249585502460978431873476258230840476669859525358076589860004009856419127952047372157418866541879191249738776519482620971323165861916247352231359462305732311147875429839227869377216168761317270854188436885569822169809178991892655605861235908547312223430680150958883629775955436129446270874495700574402480264674307592082715595766991457067030682662931460118822074368080793049948597162712900798892242149854598600707577471764604802219546910173656907553723572856449341439900882072222944212445292672670571343427064469402552409756493350191711402562197872848051610494344916768944876543663468111361626937579519692040061375130077019449301600083965461746696427212835025137155728336086033459534211844146237244627906154615026531688923946812930147390435122981827382227371816496614052753605890926988577428292486852148719406397910534268503018072752062803934425846625443900965058902311693887301793278684408732030847916399406577808489119973515356486030219620968230166185499097676707390735078271874427418383664788734733274768678943415955906438122411270657495250658674051417748366499176657588150134927002992407266378333169950838640730325855191814758144081456565890282995054998668440724536967076072254232496056624372860413788933146322446849129886604293643432989717845546894471078648970636875380225248188174488418952152579606547892311464914334705556731626198929088349045599382835767639070924125978716408123200223966611508261664284286408454912809932531229761900664699677895481002945285111738985420779610293172494836284995039128907612077548956768086718372884391280026582493373929291481860460798857952114701334333084455889311793581174354957605374905290861569847925512027152616995716645881351566849919795424705170175113983993654169723320120763488709054874842929316527561056725777410656174238314256576398237062597334354252882067143256427335292843701763951123187235393088509175323492524302307173130317576199775959348278052102824539133534701272231205602096082992080755718054259319678408963203802119082756968891477747777452476934065198584545846562056319043482704742503744188951621766994942895657494884161401045767065135118562776072011819917233104436216318169695321068706243401719739062253188123349229197655941447103820448663728271272311499902170976119758566948006696964770145421212796102425138720698758491954370900349036312860193782182636910342919644470686399108323438604835423819314428436792428813193405826510059422164962621765586550031032135799559502842331497469905526553435077350940270127470909887402687300525903134580317427935950613866538822007996781231739924010129556861107258014947269275047477138158155190664986282490149964281106003668295811789709679665984259362304574069111300751745455159247185458580216063802224961224201696439892701947364161271634913141548429966074685177302932200050305269000455120158530376447344623361144947606869203614082083075659437287129234835189478429075734421624533677927658831870466700670852573623187282713059504521539167252076200812049625600331144317832158072947026297077971949295590756778806910040762153598468579869417724843929227462394915178839041010639607430301634077842552200413211404891183428262867713818306471039985286858079890365430543664608434780302842206323781219634320290599547647462969198670867883032025583791110096048443249674503593707609315695014921212975048621456285717257338377237930722093943037780581982259413624483187037085452664586970629312649854961932400981085747844648855719079623922359470145122807784913157257035517885290247988873508453385500861784328940578700660817768357074469654656813325319535907646462837788786855455153124249720066014285913813141179487994661598786078153164478097936658999748321682913355550311153034905650842968544320337153349065622058029262192170239683965804035488061248431362308294904254061574884908534085546607603566978256237205829516900887760500271016933961207167059116935301799525581430208097330938679430420595009862431693699184169171664912372036706837015663288966625707043823458402896076728446734999285118982571243319504496143359043854764034939639830911911576260687175924965330302868926322435270885549294252224130270395913924214409463191390841991157272910212647494863118397146451276471379949368774002254431728992546776511532249342797404993464452312479608643101829296105501870157086541881962499870026629837683754339000737170887204027403209053416037831010850036733072173363251214838308952239931780538958566135125986285426456787853211676989178353533667747201083206119008375150048714289640069873643650263218293730739565452436278836706383151478803063705067940883690480940362423412056321788537790416852551682425450366619498276663486530899396094006421882558726181241047914441356822752632397293725956600678477953853722430005111364009113339137744021408674598188373519543521628523357522626250719276864033257785779954205036815359831012035556574994546648523001633778282348937394706030989758498391620707114025089302231182569135455972868192437108698745838568705592544331737860314505522889779542934351146764502719121507953119406166891421499283673578515658945219921682711666145795080698662965037098021702772016103954562000907207291766548304250444525963454449472796416311613190265179641937750729101901965065464589500729286331795982979510009820010945948961188770970861949939178620145360744236779572513004062948876850357586783175759117753158942494188659983627347248592144371863943562008037057798391077271085774764616268780333748366924264617382098690552543202046421598080722359377367526993282586191052885880372444874326236813384308625043515182893950454714362635512149514831620283068272674164247991814594142050620880205686401045606286698232688648689694619878927184910331485405174406546588380698755814699563363320632855691044938203909503007873755163012921982866500744967642259017544228065025200220084106317374223651374957739058129004373685393603164010383720318250320613079028087639915329152213273043853156625619617273676507223923017347124136222068112485513289472408910110299471490140090356389182981580606824229889095847151664079279417148343649058691915025740441888694977085026170375891129140277370139643947908001484423918407425623977430191870859239890667906003020464412948262430301528113864122592796791677761001621736857051587807005067844258511270101330658663023966049713206719327562279163475844077591587050135975545355469202334781628573050191879958585377487948925305507304261734303825232933154713813064512352461582741620427421571933695684611913428906684140207862541467464374779418332555085827425570199815705526715435473849820248288879661611942207905072619903116577864455728424411175000810554310817681073220991181644249422238777355285023492859220894665086387255590701139173669943785647289866652489462868881311020997118077773073677041843142750310131729983719057416952840321729075435317110836405912820920017224032555657459481054379583336213115184679671055241081540953479469191864094741900294710046215247627316451690975138895947806984766907393371365432297749071953096314392437448965612591023337500085625798576804145828448055798365315497859752034612610098818260819060147173675322858155803761882817680667968722672707092424133846368825906012864869935793586639636632455941033053719469013140646734605421734512652356292977605436733477701519140246115991570393740036178521679390811375494161989082654274045537928952024872016448563677588810736105619376586020871723931505778851570252458528188530570587571530920678529347771643282843341259827368847656411224860003106013782278876191545655360169661685518860727338422925758453656839372626209191853404365759968577760826371240779883870938128276042869769046009610336678478192895221032648422148193232513941095259116443094217924570472321884046791894018657515859471761773089032055756455510038108069162491999530174134312222859308217745344896010522998730745983882205716991952903610835317189476297245240735444748787977327183284537079559118720903864980883779955672308282670674378923066317922384048985047793000193140828375939522960571442467122421840860836031374243218326016829183088134785723414644683365834759468787663068326039129769077746935567468162120883500328536424663487181050793593151435882465462338326936008454144867456816815443674589479954877284885991011016139772764377788923597072577025041801024668643638651120301113874085425849687222360075249057038677678662305682367231771156594268564635864037619729114649963337704057933512791892198222156296217243513160470401415468368012927155228868606665278084524750131027220223662741095888995629649227183119409478071599617180134673221734026943041228209261854955992544579961902241856513641224350728484723945678996366815224699407333643358381544826002504122269359475619663020660776050049227194077613569755397872830654013252139420399194391674719482971593585545572294414834130593302030962886917886923540006284926540310981157849956555711853034202029334056561059998029253573658898065969337076334563806644397097843150719665059238158694402441685420742111400983565391460367956564132877009256537532498583359190712820904783559589932843504101532679628860654328359432406085683553239144028958437513223819329065345542428575125645334510200031189315793825854438605619888223871582509189614675386828117602144897862753781794472138910476582976081511273759632850998461951456410618899489435551735126542411657487179438819960486852193922952615359904253567458708490515643613821538455287314226109310674450632081742855458791280830870785667428125045254421741743206670767885529092488591966577072276190586981816199179828699193815046783748030039217755853606703643846557262442231048650364133231003740792126484602026282932252982907434467742323868273141646320517441606487077161010606168074615997949554769383643371383328870611446442388211808576233524036736097896929811131764683498837073422811191415287352587651949011407485288730058739604469957130783424626266596594748724795789661312962277541757190600669275211760037282604900444519381251062091679765815047725654578014323294122950702116804116919107169372611385254679740128329979284424350178340542358782872172974855930733290546240703542960343139831456150268380751829163692559241624171140621399507672402418735935288041650909458835053479561312721662661729138258152097017811594075706808566829236838770772254197789852225396149688947073630973146969164398957962725562128914802875179720771649774961533780494949557857514628514902332265140819114932654579349460737236499846965870214373963471219452210031122042229290945641146913881275937102125028357643938830725397608681266474935125436420516480369062872958562854638328461286620438842383086616306286072058439686228076729943576698563416827272111043258183786958559295809244377836879707023316692887970173753545904709906311696106758364300161278413216865195373817809425671217195226869741943052587833189526364966113268123354454019197502140751827955674161467165752990799319393894799234954397707166292073844147010744966762269308099988277806513600891462795807760131847805930478189093177582753040837659674279439329006130905114509987085128815395043235476557448217373392994666848489958443861174313780900598118026767756562559481239664910014605511297633753174187507602719085338641951822058069052004924254243443147487267115043506104241892521100695738586173650657518437183652748819696017567472154292974317972122162702251689831911869140893798504681471098373002342618635632371978113821496073754032210755045484570472221060297387628015456934945089538900874991046557056732131264604784949830615055884988843675026808935827530670055579332510719036848025781872725580778515242066279669057694911771076023775488800863842339644228107848209143554509264447510960698532255835454214923153217639424355841855827054831829780341268209073182967147299388952188964816320281958705974813669356083454565052280997868947915345858030645438641694425069303567526627364970622778696426177882693740045383999402408186697161639170781348373764668393365558717994377925605812334011639905738046086463286233189834612261903139424723334375980355072094757267814157128374052883253551111866080434820037736914065631058111819369650811403636342029659612895474532131896095340497970777403772176589341244146003092874935817534330590241206545587491337259738903168261128723353961088366558129960275620765379853579472086124887669482836318679592753249458517245175833718753091364030096884974688403712418881513963253687461111471664933087445094076183582894839041478017843559430447941732694130572640066126228776189776716798530489783926583578094389779926879183574232716741495968036059255960180990961827145955391199640932676055529061386132351414034456925503498153592810684530646743565021594438071536726200064920804006414888927442669061111889545320424335144436981033268180385431030388368012579977032770756387717805998557612419397047560211149837474993392428262861279090726693166765935101170824003326092677014097451901816837724324754205952473688476744489266692846650650422630598000610820776328253457875036824554083934932815690581647706901167250943993728973531512662872484699515555256741272519838221573177257102702165345183176175705598680925308861875242507629344381216162264184964560515322581937418377473672250172529264708268092062195685793493292488153760338567292247429802761527051065370191190653266189230969426544988768714344701012667150417952414600434926446057502599372455849873598978499284339455097975848911695487099812417080344766097937559749771729177208765691393380077552207514887362962725742242092370305845325572203755270558623751679072594262672772988359379899723382173317495578087892908976443806089342853610148386153514138371653719405874152815987771449679077733211499574893510033199135313882748977735991238594829238230624633089257797279563625774199016666752412709728793826430856821911888642325350087869704657662487709806439542784272081095740942664927932833707033912123807322237602560420398608557403813186488101246701990689962901011260747094394815247474684422493936802645636299639736595431332838841779826522086402854998530168134053678174894378852567435420686125448694540015613768733026766201678200202833384164302834774326081303771989607173959608696753689210778688964353664233019613844650105972005884305370198873806401999395226615747602599993656660110987558983979341938160095069454723895931135707873189621466603766859327776067152456039240033719206040236485285934733161592746122687510781834667927334387773508464111733109517381289693962857430923915329403149704427075293183387351970711806097847244662112460496069794156098761008634529412708324510083985962402599913356956782228843449269599102828453458122657729512719389840589758243186470761670069575423782319691083490866451256058236135135848636803107005303838099459868992763384946209496804777553089489213969385826166689015696473059278281070412396280765194880962473825913990991487085396835358671645617272746369930771327252211089562457743919498081342716575362417145910530647992787193030577234858963568345325572132134662839238962833122240580453619337637502280978443950502468073122955187284719312185917295927348962637417935606487770874303179236377112219594028554086543379930212192039608224480971572602331898667001895870275031163182936649616624204937371238185781035919399824239336997595176780983584365470254037086275050979570691018318849581123398909870001762532127590819655823838500621328171378574640509754267578245909936402084219444575161010319370645474553382856024844129457327854531535270679805546561734840702931191698393276669858079895936131242947849562444693310767516747849928520845967146672556163462512791423947229842674585520033160951501187340888222081968360545453331342209796866747883072236736363177722114697943958266063557630567613642460550325800449579635403434878068521862024234645608641064759517630173272512460170114265193890936578648297123966015743167410379334821016437655751237169749397853580906005163560478094263838003162937663323476232582707865209061498220002513337439341089829271494492083850541613049578199519553071908840884082699788833012330540462325013540434482756852356469955238076319007740391716146196340155991846385306512186734412050979515972412889189610927866423901692861516389421344110610687581793702358764892927552484600002750201106295742192969589008190011657963635297374840186174803966303821609233308130673662648069549294514227479260161468379423412027763624963349750617184547845240908518649065593187984953597810548375427110136275370812969797349103733362196654969742803534322683338752032613825494560094045078982586766165537342324025071628820448959355088694206333221182858501602997969432651159646025297760721182707629877498365768804279558835320875023008500270256638984626343504011604747888082391364235144645624382537705545125379823749164356991837928780788266901208145144209206373917726806322233546526000061668734768254069797146011603842208335182413018083514314428986330653911366882353667672721408831423456281817888979430311114301843226521383346360671185150096271131619945257062418623750991426636175138107457909164344283451742936627382919812789501431841297190013625341678695301398537914772884245038201616743859169939280944593850197504118339070378791409660174110460622884990325096861910007788518562975872160944579079611775628644895046845557761219733695233243885029935998098060510750499263711960299146296333584223444192872151713738774125722593335981968238331492536715910805955170414906660540028008876433332892179339238379374619321152445221851560394089316518959507624815180756905033025510586342122055221748403995962097959219395980565949947003551004256495875125705329256823282307993190793160863828505524501793123904857049426320172512932904175606660884530228232191218878198618054682653240045679759572168103569754760022591112870056731629795667912169856613726740115918662692977280995134938917736136130760333287416508364805101912121054695848409393214996261157572318857790946608014330391576211881845311875503609761160516482805282144414823791780844901905851253834288074316641599414908902997561659608237983321243548328017409933710839704138700678160068926691734717709357838870501461966996004460802007810115119217507538171953817728470675529183786396221492906857282598641280813974259968241434238818137440840114727212796788500048232455883843248295752072344762399769229309466426719023868938176908928833500632427902103000394622553178131015875760221759579289304780400892290344893486332707367431005866611981969026126045880980672655965289629682469753649075672709136910262060282940618757943048710776108787762272688493016255644106939398825711574428506301032967950514398804556679994433431145031057459024768425034537234608589292928063366382109483551084431954159142332976717152191955605818486514537315662334375205783206251978155243017442198149013230790943874782628399104628571941988565549228274712724632585849428861282496041194550139677673420836063730889102462502399389547871716864132673606971125890324403304956292708946788264607332351429679322979886384857022961548036094243362606918460690718844500488743948356418517661355675757169229953947777270494010819121141317121890088634890761593264984430584995998749365477293188311127528103286088847840083685808211882486130787237235881862477646590075566274608805064383817632487207096997744780010967883298518155792240182291057963990013523504369181863031664468889149065139922187303068759517984950170020923258835407811330009758213929227137817450736875603802157643530160996261078585647408147971231877331384316757478746211467006299377972724657405969005186782069666788567566163596092523273804833039743099892816385704900071478545460012098897565075969466247603127131693516654810921912239746577131851787484789768269993699914710894822254573367199654711287067657115874184755615230654956382614657009615262801050748427736475053796303147527228179750195087168746765413633095574031418926472098692285389941646537157155265865541643548239523055123055911453269700185748513446365371368390119281070456335798841281702022668775041306875719259103116500495934677205825601037860258520200081972083676766386424442694719969679646484654154926940358775225245261745178809974747968815922421366751686922745116813472020300122304351114619567269107722673365782158895405985440977181909478215308739398645050884721559943132806476115995932007414894195081699136687241802022903590269543067762898811308483270080339535913452903711186540374683737195941222469914135492897682688241082725120881829041908652172592249098324806085091390077137945573556904672099798522389688998840602451564049529560822664958245895422779545731754572784867800874516634682096225027238573892229070055505827992680359478646155042988563221493317398570097843704714432932675290160503911558754690908408341407215031268485272131631718955558487801398529038004425937874937705934978185044261186105442789405182745940105051989771839399026145397361319119931582929707233439275421312923678652782281682353696975676226507893119527530626271946436884007465747464363342587289418773955693484239950915039355442820596464079094669946008660092031346817441490269481879265066633423331109438431895884940047786690282511543097699427335052272655971753255567779081467721810985562096736649354167722497138588543947185845845812749241959077436951626192893053221292987939620688470290102914249368470218812409121680065927413407016118733372890686240857650224652217816207839563688767161427515546789388676830127585030482519807632387843276348373092641718404685080584077692796958401968322475322611650018325184787835142304266341205705417043703125911246605003924787161543756593468939884860241314134373912006794948329081872907361059630760850411942254253499513237792633153184338564407922524538524417918398154273212694081245704074196176000709021841099671337316188760898593996676968772322838595299348720199753223033285631645925025933528811068069935100289496324828844773969328016859704414719558108448816831195414241918207875533778124885173026838677314249517745080394043835382302274848307570068201349554175955144931858506069799382047366795293447034179703986987724075594613788927009627074234712301518543278970028366261917348896925799883944789087596519594884327480809510715343077082935000713971714453525289665917075663752258785994713801870081064311598612203961311395076033179479806638936057426596008713318322811173505946106034622242633015461429549168515056668304123290213208261874059997357426838704604577785858071406935433815429643715908123952193553365152040476413909584386277272247899858586808107466686773709512747440440418675763138547890438659561088107404709982536299735694492030326628408757981302031696477800087194425298358051486898683369669025351487559991142157876737438709159808959259072594806302742929027415738146195810053405367326839068497416186283013531266692885918425802571424539942230326263268400061913691991270736244783139199840647011412456687276806257901678346344476413997237644625447966423473486570644805469202723969473162553179961839330331251535718665528131868128503236633910191872687275153970694647735538592447406923216347699039581762350171775212694094597960443531198209272088285800376462324762778914601339022884360821978924121892820190331727178829239334948554851520296363846118222331733846829326137537257517263106402120625239850172790223430386517282503051661080612682894786125709478134253555369391909471074380529108762127918727371861002263120484182757525376043773171489006159398467341806992155348889053483485224209311627976317414628218054454088675114159960150394607028637053572217321122176305362315282894138998490581320305527471970316893503062865019817506523036468588904073624695095760633928530431435310300706937319107315400297087223537972274926363895757694973758339134990445869684332446897654639637502281121272126349178783379901362610538953240627979269202023407873255680217506792349309636044589800535488257214591591629273580409827566611160515782187415394064808741396451087247699711134520273394748804651492713634801638674110445518560762168837489347438095218447832233520115747702130342292810397883348316204966958772002442427355982019668680055021586383750237226622666655169761185782837011925140461311087096706931631935551588603279599933594436171297055861164682477796179320301049164868778760080655065239924219319962100211854145675654210289360973358265171546641662599287434481113677773588247458696690780590896630661815846385825313638242943523275761787309416223749652130119376071318982487371229194628725567967848951465517871238690834232833010558747648550934855968368308464012026065296821295269293554821929755054162621959335378241770458019636427314159668281650731087237441728355434297992827891843573528844458457694158351373671952847190697548656649300746564639628915047826701731861619048438584334687662696335774932690668781456659160345033285103507972809121069318225778760182214308702860581901509194854920185636987398352272034443110860585103868896691741989890300532913452070111221901259605325623191753091114961436769541772169972180231043878235562578016058126815801477704374747050006499603567167747470580944341124369940202837445367119680877821941428869570062417694430756676241368741492801471795717255687120078907314944290668565367677907397878720560281284004019147964826011464098085528645206680321706727170966327639312489369633387515766769003190556165711443452267246535501777266285668188416993145743511934815445241660108888439485848782323400493597183052600040698242311949333801783000994208396710657113035383798869478635437468721455106289846575031106363306516482991516783024319379920630105982617979396141909655637650830675290386482253554459641186708876897451893839383699170088981768996385161769101878595018311750480376516335620280844379743416933239384668251169648360926325625224582261454568362914825005937578618478313263396884040598512720053456829949826622590843808818301474728100050088787630725833667846694498734584139859888687597914009296878732063132986235330056149394851155770376884482064914932100766945044100577704606994941708257487783395349643900731571853099438449828635119306438984059454021361785395737071085813826974113092184625617061262122470984892717044659049487571038192184743171690921837857635067199472441695882129753468574802911999372665807345243452202815500682512119098250868347787575920802833053239150364142944293163739361228144186592842849910054603858474103187621731769916157320288315941898921339248083980452553924482905439977167972157877676144391210208424899621772732363863913776146055723791031661556451033982693218735099914743210277733388776689987661802933596391889994925919045363611546625513439495733300559768396379262201911366920799442892011985433616713813228977886559228318802934934554888713809018833010128085629021726533154318762104695268065504658058485646701037972046514175660526686467416538852677637735821074452090520356546768003119408086870811687185633438403458400328091379784617313217768093434722040782330546344132690260703023073489842840621152376847332288498984128222398906138881387996389302931631887985163119635968558501940265721997511278314807908578666724203943531346834672350867752238029223505895569845118478749637865158513980154940023519013226137252000478041575089782712779061935443554620564791277220009693406077203090582575014150936467645812797403354528579166350808843627215914976414751052863220857474469761678101350100222923396500606626908669271017862210869010262665943954580809976174884777292365898545863125403489604068915470839976907948047104881393006858564757028400194249396535557249335640959724407464630109830600042945817778675640439915331809006654421969087106578813649126429251187404251643059622464971765293743574301977756553137880931525338072424057876681249185025905118281011263701891539003839223891598819933541740975294746739593044083697422111454400537571450197445210930832503709535505335005157053877221175856167506198718986281857306370611699918959162682363011640514677367995513461371260496985399874623663111636998861672523683282512595127595796877042567105479397828176247991881734857351591209698611588485879323828925388677924326007778024161369573066104608385976619205752199348717387158583484743104035318006077447372512241433463498119239394109792035708369049944798542095196666386173090945798331067808163355060041097707586491955834785881946116056221803922521601888267219445501536171134348537486126614839071274104420962900835981589366467848479259043984517169820219509081111114417530116996279623140598151166879221444501421760981599152697829515926287910071619234311806614274718143982042131423107061577601078201866775939349675695308046802638079356491181748366777349123768341263387929043200456414818347927909703374836825248603317529098342438935150273548984236916136478986621046516108513722306813400294886590095366364935876243472803426808767361964414704586468009932695963142130887490196826339993494257830592115659875836413374980539657489292958617813795117511009521900135662853782847477297567984356119921824431018142456005915696872479233363781551347928952272244595021736404147210086158436318895003067287220837240853238177459124850437178117208731312153216253002298095664579878103671659402189306420355392827647593828577746814450870401373621641827332803950832165930341150184332633034073881438056613438352953803539905796530656579217587327197226585053772200427596338549509739752968187660695414090502757224147551679923276763886691535428101343981512277034746124609161103506852590024903552137282176445120594889989365939974330331821881069110552723443273205396195724163696190149987065076969731460276927990101631466315738312599244962616235781521338775139442922415319604995298595294095562087838836336303749293104838616413253200283460499241218114165201183537165785725635289682977257277396411600348742318025906621374537425915224555019944551425545220281661673243954402728853281981705523681378515006131762209800932641726752390001428833907120200465111347221656100086636959866081461388465675357475132523565682090035773223299778353356392116190489287796652980819150217875414723308035279314393708816915006845794086495681687198793475269167461824243414819831715190607048938908399601560728925021125220141104912052888422589349749339629102205698114962711430315753441695178408080640695512031173454542968717884722209048924741468777157722047836492195735412113716946165131237666828123661997275941098007976428385562522772276009419266935662003623752909941357424755024227117158316115551771092115173213309522811834651529853356715456390172395354409752880037989859921212879722890045575343310598286063586393394304241093741694406372719365774453857254605204491399322995253259018612780529881955285470474082380559902012026146959763440309927534114004829382093390303955051190186418650436452814338656299978148682702223562532790179768588231476061320682762114172327349149951146082053538732609848051102265556276866082958191693437812883602142165352638398415318083564828548778172478670079263652973688009728611939753119318356216209175713266520124496602796900872318812946948878577624766912042721553858882372331334977347826151020363593304366308838006003755047687407978369175625372009970072892031050172329778521313782733491445008850967560557235391831645708780358896072398435627747247709815051363022981907685755077547985368024563858071348424569695125042896367120737764387969694399859769399716377630321576633244906128072426175009756997591569383572553110322773611445238466589173013471538355967929422463635930138145531215716014237060551464741889519804063746588689399994323655397471223657483916644667431945691061063851847035026681820824187372683054974603385695386580943188242797637772156928858949955338735931841960946382038931623058173944325310232824613176475334971288477914228303515915912173405021975181924907307522970643437929115173251361189615646401036785076507292454520048422238855870763999861697647987417644283757487996817997888991165969804204373458793425921813439716070299232718921569463863382996853748640690593003625010182711462187844422561494907706406031627533389405714157646356544152053970106316785441814691107431157864871640523248228746198286776744496827785568095453747845356931013506171288937580116480347051807961793944589354843881923160991084134631386210082311176719957477154047098317177810253233576603191783920960500775232851694755635364262583220490835602836399255789586099483613089145612840531296656486344967347346891262637214720365797104330682880781539970760743078807600991089354901961757505814104609959078755975742647010997363432462373659754157582949848045295964302587404841050598429872640375339898152255190956672614381451528250000895687518308215748080905521478568911313452361981620072937414789720737700712654529354398717118957713051795237203525118627969173922511577908516832130374460321473196162893037255398264246888034231877749225883377802707479828941729659530069923730715457167187790505637941570315786128879694497827936076628837937300029222871949199935839416474843193776572949159615050647840434063556842124361569304208901203358285261806882356139652455874917289031668399747783862118416779701264199414417075715776278968258296251148982171836608069447273807429646259170020165865252444130744086039871995471432471775513740912766499575885940140423955211031321756146587557132210429213037306046314154127715441114070643644304046405562063466181005471648215815838212159359027577712279460086565902947708420771639857922159598229188775583893667885387363381423301790528119304312066581392288984972900586204049876803797533182138451365905306174088863519781242665011404295984997002810995515997464742081680742325538101302842858384204134192945010257233645695071835656567264662239063959660804060204637534624344824431799874230032913921426339161057389697749288405293076796643189952121315133633595365648719580043449850385345826471438447204729815618140133179539403398234337929839482337069226412130523831661413979331469520395453973894971404908238416539408298365486093609022203284560613652511699145042669647474053457284442752180503013317509433080755190721041760354358290422452169286235652792294591443002984219696606405779540374976145941585122884052119100424034345019543704691273249000472445300469942609494283313665347281811553730153103769678899908879279355258181896788437502249481719880987475068159111695717699442137603371288887638148552013870846141754371723195480132687325045029312301139256691435044104129994645831407420202227348678476125399876698706609489624730681839675636755088095774920261865356746346687279224265830369922916261783603313846189867545556869759555594691588355114215728414889683970599977606861777315200763584064653003171130589216858028124682304299981198479630295629421468563848905254597332987221510562770319625944857305904092289164433927437054759889859080203026381793259018416318880284139398369408985530231034430553108076419774647915734870622462428739807411198076412795367195160180039341551873296742798763412800127844102657415358489393755579575830676359109926393345528347747011235338587885028955471420096842560890299118456343889185716005086820244562081195941883727927230523671995917888689089207355333772912466189455272836644295373717831230406698958283884824057962989627019070924813197723373721517879993706691338387476202376486383539616676429691103136651900054456745981238620258247345013120462683484515611572417860773113817493345633348597502152862381073154360841637364364152413141350916088732298905525955297210831030999941137359899004000231967007383538103044023390324822762014749933685885820639197537819159610958084400889660024252802284576607500764160748559629413699639286194669708706341678668900397093695151343402520720464943821410503604222336948580452887358920816321864086724056240892184134317569261948499706029389892388020065058058707498430658501114565195413699992878825229691057550804005548332701640985800242278005202440387256727334659897253098195028075076708721848453411334370591896225372422977765702173241084846450454170150151083103578405633406641573938266620511399998216243696453217522300962951458046192978767188212082211708874910219320514451519117987255966205384948477296622750144387571586585265529386280508881381449287650746369864385537045242420016621384128227690599380481960547525371211858778624888912464345047902899860876665030723166348359180427950952798910120585017381548076892023184076655624270979521218081506742789641845096899622469888207282228417147652023177907454355245327908530583975235550953710224496884613896748037900336262419019585688970852724861108826393421625979718449556725065046941530825184317849095181701310642751598419803606994444539225498045107832419976042031325935706231828616928265558011993666880729263559272553966244645379136312023968653926105657199690709529710082120320415190813486155640601319246892453163294925117012487011602532561503742449168073452469083752259044741487884475656884194524519298545017206766167821213879981965493363442574439942344860717813362771288403725027012432100731145146343160965596191931393575332420634343266505946666544501568290655116171061929903532289237890042660918091395735614885227479931797098836500070747062623380910423087441684371538313105267474629431493122927480707531993820564345188224585868423813312631204100231593798262205471882152749106462099254584450641955643477720526805969751425759351994577137818744385187367351968850499612798774997688935349574572242450112801246114538605349991569311866015517787870503812562816456586244499142626222908067844861140612820970128979901316037037805743939931623508459267210943046223100707993224373376579217072034354201765260671225558534521201778073652850020462952164267708675635248987698233856605030906468639188078907606630744568698626458239448043749305093384799918891317644209118342287476206104323187596365577003795729359457948398801283366844880286740488316399702017673894637674417932205587184631678203924626919274180358941239570306701477363684933609060905179347254649659169033419167132304098043027542541114909087981713297063903117826641515163302487444022310418465111831916210073581094457001960613244457607431503906842192342533685520857772772133901225026413667131383800766909103747517295375389171184523847568224611334288530539352561664448631457475535590147151533030052619458851344289633951595041788082045780957860727023370193161355878227034897771396778756860791962841512341507436157526737626401038074572877918567083715251880015809178351035455680287860679717075519109687630516672747385467904767746346942791586134282596938760705432814424463171098010915544078595803733009364509852824571299500185525948544608982354518195723135257349665960646878905438461113371046375113125924732580952924913934387127710182701059940231604923379401862904952115845435247620229187402787474304222956909583036279236849813343999615007922592899063364496371822933569077120345962691207331911956131333425105914087856576733384180249492180343430028028861083713066977067127799641478677943088816871258902387343534597059276577818895285693496877614571725575788150304952516672362010013590233378519158938863355479061425632799702810381603534176733231191446003050964348422251299332318940378509004153370509781362254617233157401623748835882609282502805325244818118033022253753440663237916079679549841582151201992381644330282875517715138788641745436427598485110202626771974133632174319707327893710690434071006132950855404938719717057319276967942598988086142853478545519924221964416985825935683883604142978956035972924248825647329217714717960269282385972193782641587385781215942734523725393032568063432012490491573839306804661569928162077861822198906357606471300711957079953646809157197027199441600104251840382149661739376275299893872796697459765837903912874807699376045765760946306420333332610228286234677743775365501769206051817221701192385863552420834385641044517548695206622004391644067046228156222648504068328631380243254059589367084097800668953157287083176473614685893853065503114671189694061697405400294986399207480383870832791346174948409591287739356828805159577805022080465968964266454953501314820882268249137185277284272357765517999914989262770904551718533268607101009691126956875142625798687726021283630468460680257556697741526795469543614005417803591752195897551535282764025584891133252329776785368657195497385089945163145120780403986305884264595498094324092864993331905425413172820195308885553422178946605170366676858873424301510997223963378053707115009408240518993499624617094561842641667456961925027706436966838232507187379460712308658993123205045725041460495576886270945452298846849312752246163233342702628304862102032117506341652176240867315412053354786624851343861237484396122420043279150015710985235168550706653138486795980466432391509786917819054593071399428195756218189252671377325247694233916980361800063356999608974089559806818272697753503607847167707925011184596846604562454676172361950901171811132818983751295182468490914609492521102036825176654553838859917379421759919012424975252013791045407550463360532129961980930110254286772457055927851586637599400542502499180084495850487203828492913330837926695385324659679447588220722962210183318733925432396175218589620869403914616879052812608797485118123778061316106375609888439948843301069479226249186647725433253832245523168500266709542922022586118672649890867674026002433900077185919254970074429852830144327867925792105932595199062049993196287297879959903818166065044996158918152669434483386349778276719449313532497304311544353128818010831836578735764866173042527913436922015095224972481704301392801290905923845100700869265055400707785667644999683935145659762062967915938392840503635568070627087218572601368836315478818528217630027274858727941787063869889357829775257603511527230455056675652223045907615045163759976238690513576147115358994201975948489115699052806940426069387228187421044623464307310995454921143005804560148424719461572482368054332769648652227349558530592924128630958098118944086719798318463442024329144534471414018754094282604330965276469794115546983812772183724539046917663574109987220357579607440881912618909281906048086822941537128274374421437633065105294518257075941709013731742570914212914479617754350696532505070549672223159002957534661983808497421538410267610384409599916673795274028496563722073443163988299623487981330617594187125871374029982801259418650559888969725773346822701957373818310783179739358416635054355836690546659825185535749485163455376016802506987532461249114619115425567556571037508501007794084399173478603053687717047288381741959932856006247149189095293948155095137240262050960026575672383193052272658128803924055144837808555663910213631161597885901733093345695699458690918806939237991096693092168103534297552131131188211107964350265955029814911252976930053821787674642293754589137380555951933461481408681395031161758285428046763368695906375331327700919252125782005153320088939995247954366608765741787397834457345573552158270792225802845680138804947101206018058901367831705229388040017493132536556299328426311646698657268668995930485461688801525063858610588922689233395011564758622103151976408615555258301037647130924663037412860832867882939313300630764236630146189160687848525723283251342079992727723209023588626556851179989851634344451301662038929918417784791325206793164087996428139959202521732289168691502191160332855365689733034940561192817993823373806850834783484136339980082559977733183839193810965788752429747842681079294577255626230665805308826415163911326275218538319568172714599015730436354098843983916047689642144268954104799628419839026971729351894218066008116198054901420871141680247925947567354906169333213262858555965387103309319786105833656934380815897569232864032591790259196763722768601237613895726642195836059199012181865973402135586435335185953523706493961661767362353758616092896343725588473003903799011807648488357820210226118781344832661034294659519990808071849080806396454652346779452814348563944859758548065996577556171927932833028281991952150755550512574596488306543018668588144593679808381097051217224671117595596799735452285307393384851525557193852376797459490708558693977810303108097079829470379286909189130914917804599413422393322356645215557862855958628419152087758892072617012926770981178726152542329423156993050139116235245731127399778220306940294705446832354527586234492918771637315070709332302280258654247803826506398941204245712078181423874263298899986869295053447927427789131817517088842987866526418247784568631250650330709575835999272954573425110416250391869628119603957106504984689329391526947272692256092318593362311045105669726342696444681383369903221302367680013854564236998885979748548398178328383865699405202367764492263220657844942833298417159406771831916126561035032271729022376742795619201689826416031225483625227940974719814197329387773158012441824888003436527539843117792501329509003610029368354380473573147483257340117462673442046056848879042138930259206105972948879079671806158383518038756524780597097753448221231582847086239495673923419841061392857760918963414709509066614097286535672971711822908816555076997464919314489720096173335228950069704785191734964002821288883432304293428550447991537534299893345915607262157933370741259247958298452884187849718473307995105695394920863116554922208770752869316514845415184775649683528507050675502495095290152943980386754680189429283292292621167407546283046608732105108157012928564133524193684732459055687790909254337065445450064113785260842551784667421782294059095724475571466235248494969874083991042878676109536113659457569535527209135654934924325309360050136291615046701331287303266413942895335738032129703289901423649149086046674021478335213237208768192867939726587529160978962333783941222703685560076909963388324434655349506306113233498563437989940341433913351802827641460529333957446618040649917664997872487684869651334747602528123168442533151627862404152958817703569346042310180189484888826940947199259509698191167133366997568695065839579388776369267260989295338255686790528893140946749329589271550278839908856031342345521557547218197269058955757221060497653549236504481380928375882609161609319046727389498408508740730834354101912380402269045849167566442774767413676974877263272725327997090920727956920712242938851979073062453558520808871528317335310536991113176930889541061774182183260606287291008138546275050644764004295965315078534092367121698293254183233005851886149663332223723656292221913216172323498336841751986900653972252844756837796385423060894717065948401961416002134635118165266790943523615624565770935746828283495073939091278184256362227995375862729626674180901367600652198003835249741981613345601501671934669917199365562568878577924816848570791566730756027075539484975802055223101013455830434753936014963277180001798216905704482293790345014503559028537938992230831135246079322716539106148644748441149342851233253916396507108690762095610952835015153627609980481153503074623639917636485387498621657064429050095139305962393624558848027954481192425160643118617981846665002270786160836923935521781737492042141956816686882118285095076174719637301191010593987931933582199403422614258633227044428937587068562926840659985646822304671642237474440979023274494019856993199619144090641642372801684758111682276373819494865642050260371043434577709493004014324197923422872435810310825718789801127212871552191923552815982802291488712450326956807083689265181246467534336854120491533853758563561864267065663878248848256870273094825047336609909752004666309228608634188737805123181794960786934055775938036168097028097638382817497906730750216261508252877153839882097253453672770402007692823822020569145915051133425530189288885954151180415830898083812515843298114371707609385035935851357835529113034231786781115798654762900231535105346663473306120712616525876537978497453523712945873340252701791822196497415900564930407940720615189261309819749969061005927366084428386380461399870554569640330581605242748709464897229816888669175155207968889424642112483781126108787621988220292914600506120409819492894089971230655437669280006337742809806798509202144811642720930432143121751496117591785871820314755676378139310713542739321610528289283715765359698261368885641875892752630385521198512611721590544411136059439494350750948121698101625956872374520296540477692270661369958330112500660374208542893251417204570490412206764016489683484470129190064652574327692767529789386558978390480884677093068116289630366604358376129386363140683792367449786002297075913603373320320442794919728970885848065255851965083360616544857971835355502584765697503727028347603023506332416359744299371702911363727420321902904415026993144133808877473910481897075857862488144890377309739260659706762752437768647937066876222658184630726760247555327993311316613971895510651029904071549690402067875757428115201934203852871888811083996199869497220688690653104154073320023891403197523694107571964603361554526034394796834372264319484744009230283291647226157247235736747027327386464890891647366109006037409413738019133598768200610303322252064902832233526947184621373966856004138868472271352599846517320820565198630708679745979930030628335043577048872380850363154386236130546149961367492369646274453264488228098659168617248069524276659790000954594626695119941898874660274813473696537080167628453635214125587180951776478997520594510875894221432988469532503632567282209754813974075921526666166759928919522470862945105955790027381678902360869503119968996859959030742379254284800973826001897052197934044987240308771271164504648849336526170671131780028538750674440086563596983623381016902404280858676234026457559533563544246649325523490333616396792380003781562511955316014239441787963277812149247796200081833447811377890315917073384469966607284852593674321570024624304155885961789151898219988491782336305701146383976107939436993388326211863425197128504761822193830406235228635687652600608819695635247238058472155689348710543049206169369489506603126499784435734388012086862470081439330669499269114401402601724553167918768639200540601314755586444219368939520354488384234574226878906609138196841598594647705847749277531207890509246230176502255297790612908897657993367681683063795063316787495312098686047129020447284874157014342237195187722370631021756260520150258034719687425771166377341148807689658258975312517593207251871190566925597115883326942512586168022801472617119848508088021426285087804694119567571545778402751804178449822364597670989933070763105207633307817441530152828988273207839956927054385393225980493790415150954731387344988681311388712405952855118226780313460888677557266958803581669688150350303338841652477767368442608211927189342772709524049947854210397394308754752889780589243311396813556940636910715798811244864482774219113104729970728864229103382508105905989578463607970932021276523373417183002821401912114776747149482916694732897027931659295024178493975619541294524015682927028442048662919694337680235779782619172624157305516882836789058119816869265351272480603566726577086682750461121029903313444345462551103770746205758657428494342356023708425171810302753444041727454555180188816311216961651912791182819014387644407773306387478049790435131063495102871998498169379788809352974445067464768235478605580364710163199429200405548259782978271427871974465411665467008547679747968471014034592295967913150358837114837811625485212808153553296767752362436058198859563912682747256683239485418507170991469904405446943373015588116662303937740931852085599651714163018880493682088875433747639139314840648877723246567720766152248956263621811512092762862311064984835177912211892087799935602810046297638126457583486181589206083615370751766689499647948225843862703279102966535585745623832098695261182292705183330929849592681715852605536069886306406912064709657656206374104696700174725059337977131168772172182111591570620793875394078387856486511004932215493341734265721102408323790616489989208347576087086159559379181482486604411375249526570994720257449501255880970073944873412604007213789170798164063225585620578365528077928432174544562188570621481074317734509028043063092463567133275111623340462990925704525248092782013908690624725762517501976821678761069057956330389425539783695660700035601254810372336418970405364637374404920087432511591449823815091112935312489231391903457925395862329490907430063005547681476054828806083367319925076941985383902585124304278232416618329928953040400495851979336136239059313259862706220749412967725514774375868067679566913271123239274930084075692132778479336776679356091495169609200171577881302489223823488392247646779783836272247270857274588482476411659178730504982221841853435114908495761463495375413335504307773572287835451849226287053056255650521067792311365027356515321745192359577030362708705817623715702106182052889865952940498762968783652052622894051054698621388893371448926852045953914112676835209174755588615473219173461859327636924310601887820183993335656864827086614375318740109429136207822470026257792864984373546800188433914848465946625096152630766377727681288530716776013027655473812637969151215590344574984330351686482320000322263087951119868839995715373222839167422379059510579436130627005652305666000895751386318482596131142791232458185245129755984231522691015560657243166826828697024223653255694143677652833759436400298833405525149044579161493578860549261389518893552562213365717133946038231757193359158737655783203609607816850321965513580472957146207439331891535027911146933189944459571877277285230862183149114575025671504801692123901500261957841512524622530965575423886074070711292190162847502665984714131148931249031097612052240843962501061352294886053513517345083208654161482406503707312761877223987903827359819479674734892831262207936567443885020812058414287159503698437472507061380917257009637707606100770312871853642801841157249653575893081375056807313653190004394249284497318762014369043950588925357572007498392641691531620027564907364030014789194122109315967646726011495598939365805984086402125410719430001823398583027984096276904825338488477032587783204693444267104555480353877041655752537305559235715414697817143366478635658951525105672968414500835621236091905088295141190791130933580348419860248719547933263035266350232117634472625336367814391592916657796457941457203463824894495293924655704789962384433871577638920515055013766390244411643882357141143944292101002287220387977022372159701183532869886372883142209665590418474860570397450793136328907204617318019146772339213136884328345205963023166178321223588501324473682584553307200930690130792088327167929940518982607512068423020467913479840922382465995740084734069999505794017955585994913509475052153987017181017039442432718730378895417269371647065833853506057467103064318534988156294140489831143978129053561700196951551546467844131217838380401098453516880377422777524836310673876198966686641257803700944754509940937924763615247318847435522270662394986372201788081693788636425573327808812117852949224402555018508564876524774985511676680915290091820122038530973971642252157387426506899688790553223931395133505984281270638175609973405966947530404309931129784254037078192781346271272442928908052678897885862265850438399068003673277381305897767720765539514953502499309427939463062898362182719306917623181740348153801403456526542642325955628323979323322599509612631993401786922000182082611077263992963558614390377131334062209559984053580784552863104934852012458244146748417628351429480831228729691048663487627289083447876113614567100044626962465092266197398119706525261052338825583524261942231387616461479816309068256608917149343267388647391843623102771192800564036668237546326074714013382780255287068511992705611952152449057898414428018626463557960483833995417096191421795285376785498742659541336308565128235102778334189992841182677262576740426006419594126074173528871228287450241127591880259240458365494106374126773548841807783735332985953082518224286019530979622556616076441933840710413142008018131341697660669747064991367041680831281855685246357216330161893756422217562066237854357437317549135259541354978633804513717686915394272348009470618112031175049411174378792700884505707637084222181281041967761088719689075596223463385586548884780406186194919017069739798993908998533948945264453016874982956383339097455711412827785025755567727826152021101514897048990067296458627801537265028900352411392332436290952904754966615885894981509748543499298519194099278945382812499060897034086298019528562277333618073840761508459328565041784503751625909398865220422359335905653350722362173156760040159226827072265556238998733843354051526236119180009022767801105586710268511142946730891930379084327977159967367425319324022985239255608488373299882219026945944400869135504612184886260559056346626404247337819392743313382573961278778556521243641484713694722018721675645949787277830207430596648767822716652623122672431777262589258009292811296473870371837770789010820809150246317819143779659454431341984101842478904808986313584274289707696843125737883327632751567799848742909973390073564184521519783651985072146599898494037427662447218628417023852693565495669550035531702157979492527017495445905612469756644583808677644806933525454142618785000256271398458030008043305442532710271053367520016617867082159129805962397156150288262194899673028495854075776038381125558604473573644926785948878949562513358761874400435574163157557405336234783900148481253147496466430856801558929340205905069628920213322149487744260017234520197878918084555736774068815782701726837991031122526298183439728111627580000711613989933325305711576698140399584673444118511915003641745992242174411459117860500097194081764393278897709584038036615590263461331202733628339703966695594484483985840004966734384843790816680384788624380200112102520798504015092783610685035656088772370941445033150211922139143851286951151567233900723998486102564347268510751807072284851474751857894749150957004755513658902002851299732443446629606686696148355498260891373421731601415891532538835566012225715568779477165694556802308794854056998161871418409960205338584231655274031357984929990046389001010948038190408094814947198188848382200220116736148217526431093644564659774009675693942930272597597061775545233890109517683590974454452521019241881838846058030304333043625366439813549438177551532779380330391186058431233209613574584388850303185168198053744416163190265323617148782413042448879288007883641460771884653341426210523752150545668655952029129471401470138407871176195746950962679708366312727668135740336274535827527694888345375428128592068950981652255944104783031084958352327663959853839533047551526324598950957378900971343997288737752207574788626569601211517368019055955812840526371942557059281085106542078050151706466452413427013796018118548935052392416699762311497249597379916936143149142791130246748090526469890238037453981411974132469573109674592846445752276493591370294890082390054440112227659515730072172723362162919950595678503387238426090349566109018576592479156970643092167697118216155250856782482939439731607027889507701532953409122219171525228115616015688454356792637353819929819105517430018023069995827469131359655977771828838178074472058683753997598874351979184620140401299390308623962206540071332517986700967837462553916990029048336953196430671195562311857075974620857204776845137366679283449962964072024775806160361445268092923103255199604318755650281410416893153458804055355736169256269756261193271865343451716445449136069923420979218004350553293730253955956846143513021090099092602471933526886075263736721000698747270082020108325768558443323538914832856791547724395289037991013824897306016733462807555912820848504948752484336458007464889701371245169873849913551929876263033980835201303000897601633269365128498562335946403838231733041067651647916520698403833727620945698057240325039403325364774214126667956941499926646765529931449088809633739428294204506412759233130905010750809398948763680944167291973104666798313674443092235122659695143219465914032511509287149625612158121794611768256703700878426254489212149879830749279613722402990706679212596247482462631969450373668598138237142816623163358680873119323796747690920084422394757288133131651064442802756576493465148510751476835577331493061381050977103499284111031321798908545930321046329719718129480645578666671584247826376931293952802379774514168197167356880410155758140805632182142145514260643958899629271622088643859819422278269326789511427817992718238283360644225925402229421337396522089141751696243051592595614471612013253845040590160645223548065041114180199665584394393456527825190559875875301271581114006103920460362153840268310083692076125860154956518791646731385539868378653532445719080516982984651254728006923358101839622567508694202837577317079907931252823615951671639627707691168464788013425238797331808817887012889898336686690554227402508639694099829270763184896632375704105707959813104118373586262530433516559454379517237997484907560736075138900018730068140139333610894249038382880262965067181530992594627623227775944772399330653884139463431334781634979711397459517717635973349292955318655158206321726240994338341497428338601936729990934177293729268903043620174902492248690427205188519502381467309169076660702168136739773372632458416488277972394819451693386668720086729461908975732501217403224209923967049577884116544905072259086095647198664733733933996532813807242942708204703538493610843714130999149970238826854563263214471172806299708624119619093556631066471481352673137589234564885657938647102431318924527239981471801180822793135333477872821611137279179887039211429452619197196811238979915560027537367623660509514991440281362317273368487998350773489755396168028556217639716579593545314054625709551979707875985428343073754775910620094186419626682867024143695592360017391306471507492499338959350395350935446721823609633278878234885954115006793489813432385811387098136238394168739001715464076545344411744245756424158730769924006617567931349124698135329483169144572846727131470761780189526533413687281893721457499876230088532120655360238552441470066263260692063278018920466215423459471782738030716150733277782517369824846073666220082479671072436088547030407393003886862718994812409356791639823469961719211494036362294725390766769589751404907124710014456222152241308846790724491933659691548893515542901225382653964684883601048182492539029218460405522734225089214113160613335152254912732787895019390247250880793598155291236381988468177127752009502762618128792658552539520621124523482836553489394957980916363995821055935220995863771120720288305020320941841075073842183172558525759953206648310189530995221871507968021956354460738691888432624705453781310935655155130558614815102244182660844068111403420969018830741703678362960620814721409822151035444478277877883127836981501834042612824501518236374174313236060729000133899974470603691018407948569557471835194503612675507052267981367312608067501414393529486525210712706297361107477821604347684941647376441105802240802369946605039452631885998401943959229042220580601977016137723177316544864571381271246958274591673426056175024223913484425238585557370959041807192846274348792673924502826869512558453809107787955027503936603683276167485839177824773157944139748395648468804646841518202396485401479315855325007128044567679801178522092595487634916709535431813845058174067553226048609523702591280797164839026356026544305928134341048539795756601620572108922321306212704981431895355455442249648286005892860624942638867758049338551854664701809847775757862074436032803241544755993226089506645587291194839055890224624176425744285118772380982506691519457734762372078654525814829430393523599627606498736363486340013432579291966936982506331653325411724025204760686409798407029928830419512449733671212094408978968109781425189668343086775733316511028955428867117349518603220026855206837576520563029655317230266542866667291850297834490913871451389667709748388597254220033334313271089749948281218109530216956597448242236854162394805003732889190950574395954744770322936258800507460539976726851385910874875161721268225928289668278939614000815631608012467960197545492154212601093496354636690376913396486931566617097041378195785089219274986589663156051559084254984337723738442567216640600369327755810932962666084512585068560448603622284293467446832031326721926433731670697753103684803621753070630423337515314383605538342553293223882260195294404031933036082717141207847525194117414359775761764460031295284285468423189623081142396680413455734430816917683969833521682003426491557401752798479728217614843560690982490699791099495802353479286851189024532942749557842279740878274090288091948736300202768912484217474550935201212442237229112684810295755422530488424317584421721914989991691999858579474737011058204801206345686644309555420660790022279898333274473156977055423419600679496655821628057993656471073074318797601273573769356416536762234972699747416011310575327264483968521960224279661494975644336681194494821568378845514568784230147851984521059553103632549717113064955606805310599526854108562523860181055650848469780634508184144768926781367197429820674671998681517385878057194565362044154549854002306415062564798139079193683580849855552957386444531774832752329971693192074593388719891319877844567046688164400987374197255728936979995243520619354617767972833197062458258829922559100669399332957935849962871090397127930058913467540761355955638331449770299552206232281598723758387380700672062248315274874637068764245012663842278756591359860203980909964696027891316645516145434413393441514402018037963237776631886660609267796511017693188921962531011748943897543080002968911260795538759340431295870545880512551693887347257116376932532821597147909463441847536981008995649496120977149977106071154919520847137345901214758485540600939262795518113005431444608509001042498317434330313098133194678224152207785087654016712329695008644733472602961022971739296237238211777747295049787417508128978528294110760124762205947859578497649555348549433555249461488570056769605122363235093604047910972139835240356457473450390874865834708100058222321888065186636778567690922754107502629365576576907036478733426499788380198016758201181110002055595914119946856737388541605553477421269694127536454732988348729683579916810485710728556750627229439069865903213125606688864288339146486083006080241003639807374700105785294951071027433601885028541417020651563514599818411685458576081697140843776968193824855714167074754024850731510080721590393252473489596490942669964900160001391757089201838832650778326744053267974249760614549980334959891886406583670532279797640445958653156391750802781142040642605240264287436415542187106529426149488030756158978062527265787134608668460965243831354027694315563277651213783225641305532461529179842094364301851459931163720922234170668721131653756031056969838254597987599151936993916258204177809519283132373657573756247251479623957594145370490149547440556222869454251930773208093972992880124514916123003626823074133058015865005395539333000674523564857685949715207171864280959972089691101710931593862348224619304530880626897505705180254368211928693339103341685376273776389780142466260719176176329632632524694086200881528138356466055421965015727858307280720270366284001511536114548102095387881025074828424711122814019173935405268561366495863489219242469763894223057777303839403478013719579180597928622475303138703308339107814515470140479941829483540907865717983234626794489723641204203393439767059023358420410744726255886078684751848717571645844465027571387809950291256355314283161274578315648173165723523635919946118812485203683474771129588402451997332557643525977566825086975293355719239295006925209130078518260704015557985718220612270023756508841133810192104622349524454357570253052444645193889800607703642501762568309254529553923255349635769830699049152741283547354023104721532982433250761475262271655842979814668698540504484043340278584383847033111977784961961193374241111450766221937349797099898270990865481263310888868038599424620157068341911869956919745392183320996269948509893134664236695724474063122685063207840835692881654665237398915015720877861306976012005597198579174188896758195331087662879791316634327463259630858036962152427572516613097205652098716594954193640367752232281612563990399768357836189017713199935592149848716423299500168793862322135322209141335290120274736654895857721037296716300097264052939104069278717078970779557897024589386017463006465191914350974420650815587013839272079717716991982993099147772181024106400862512586178473848921230966908437384587556344557325189042174052022332447435267982911234086088710791698040737002223385873030201988955890054159248586880070522743364734764490434705914472539582758246230830724615008168562062271972947425992996660009345779296905917549506551556192113853435474397316489669860153279079429543769889379304689376114519106213885743403160774530572977823103019335943240016381655212564168444410656301904446931370205328068301020801111398819542373756271395680736042586984477308117185744711144167543819698012802786041461711666043670889568082326388735309727444134762728415046569409142458973103090815139000373954156353599660954432663742566856063154710535477665343388981397390774233448366293279043734240873255506485551228597287168312723760313258451757183736532069339556716721071422709680397974351937718174490720127053749790173557571438804746444631093401587649213375482967348521286199306407159806559131698331395999325950823150871830317366112188701657140130620538336439295946085534936057700425820526347587987384320360909470915435629212972086766305174831964839711330437593588434488522645032455703267610546548190049072156215533988665712719270834438107503915456362577838553175748446976068601517635868092235008791336685508773431496196769160058342994211680028767172222259986432176359391029902164983878990544130708979030398729556966967626185299948600609425534870021084531136276288718346627824207705267636838814556657600585339087447872273475244798399658644496725471069450836054329613584673600077395379837138291155580611218845227333534595415252977862493071111715961319993594220786856786870286800338837858377432517946555704141788119081743572414808237222458709388359327764791298924182328284119258535626616864788649183749495934667207887586103293876771557993871306346617269360034944445971804522597070157851996551357643962871626296580048644062071312609943698244907191437518091972119503037726754772175025809054870333941949795628702494805078247236562836515145729986562592794680395134049323522321864493368819778440534895482978547459549207575589822464573640802717940482103295938725269773469368627100862097978172679967068981417758010460581839520018619340884227646427763749559066081748933912133880007676433030475401363064156712076401368368255679223557407256081100293524480789745820864068807079136328303185975805057343968914728678392100687625467709159344661105651350973354715692514114964521612684969574994237307464707873397502471846144506632476991956651472766439834352879623402605862127444065658828076740256652586532641297646659629548088647268843965525447260818427435630311689500051104391605320773036042087945674255699650749564427417102794878382804908671787305761878342775765305340225249409805559128885402514490011186593365783249053351033083334539975536883240571797707576734941822586109944127423693551411901949363506742006390852599098705786537372786289706583763949442830641986942349139978778460949616140548148515254351356771981002767113624253963993580927197689482532901567505986813114808308227776356130124678809538822816347520990192329288200817551502216871642387503521342729492490487062412076978783228101133928669126009206037795737812923482291192817023523530801305014720840057241161697934806954999513710216286577493270579163935273743542541269576126177492172401859533154430201447244338245553172378442593150069264415311140880197324187070810438375823084797742089343979912751008220243646914727852450759490666683797225781671588542144017427624265541388458061361235252131197868704000232747093697021489891531314586840910438564509927003283570680247863255167603055401326525586532988945309683524455861193616866786943878026890711792761202037549727364528724491841552803679242862027268279731518084487225815673562506163020399425324213254319897030244997579744015306910849742019809462605737727957399222226641489348470449058052338055305734113785248145382496436260296042251596227675488534015183793414112510177144196038371071873432446813972241166349048987818468556047103790347979189992442749024749166249002333108464914509821832653281070376592990225115221057014214450790751870029444556846681832426650210342784412430861399007673250053012826904996923279434548463292107787647573593813597620430617383999570860701185739663811810970334871862811528804375993934850204456224949159107969769267294481146391947099300199941190510976837860283708292266005380629338434675395451088868668680418968393560660150205094720231709635371762343050407155745212892010020699300948622085633628018432807435455396808561959251893100078904458059256271505025584008084536919009198936147432048413690829808786493433968334952347433158576708906469371216820125211285223459012501578831973916591245650647587734716467119934027346243815015927028414642638708021855608890844907318613985521147538855263625830860597088059304732613247667743176884168808827227837662860168050742002115715534632783874246867111784480710113458434924263776785548851006634594474322377852222737723471156513182739073013701874490632713808740463829636923243512381821024855653058684166202503805003942776591905502391117788472021929576556070898024023700519402989231798358602687208638283536561200808861289940017724306913533127864471533561850779028531101693928876744944471237901411603501300890649726469308953122813831346038388111398552713178557153133094911291228902798727600017389578499844313890782433500750730963558624407896596666560300913845398489967072686261814968845619513904290560544628946578030974952012471759840395302657701890092354505480207456285303438229552041653983626789527418187634593856876678343441797028503345438787340865703508654623024697047947229972932456075284488208887629397464743223684069924715750101647808695058183360656587026538927143314548188394260991573904912782924405099266923155185801296018643587536689911959307897459336021465841193923676119354666480351749498650279018485611956979381233520139997662031621358874929434897738336029369706243966915153066081730340483630765709793783336896129860907474022555980782852308019191463534733991377750434850330533220858988318877125843632321277651906490358447181426703594062973383338698006277835460571977527056377005939355672796003315909582511725494568552331398675230643878237235943016229625345831965372686564272563226951920553137981141315387678511990513658010905637387984685458660729450528601055310287504113005682256596887658598724865213027157914674018047575117634391477052737303599596087108974701898791852448313224627854385112261395993685718198018453516018752609260917823619184559247492875186817097002354136502071665119476726429392852990602305443686706046948210934241121635006160701526273546539107284285550957121041833995827554536307077170284415420624698591010416153715004810571185697231098926782247709485637968145961047763113534353246625666705508473273295418071025267342983214917547820479261262605004068821906967750875297610835987741759208240596215288394961532381968874971845510910475272884238237880464166573126950637304744003277809734791421811422397577103525433729420768490384508888603848205139743659084703064294564346696521436392454765378456106921700424697878883775144198710829745843369667913079555589569658664269687085798827311804966776612227660366229836435125328233659805397095841527222091988342273314013951384280022949966749384557638691430778200795258503991286388276588616184413192385102228189828224205404316357486798439133627917426829495312483292427650873275695571747752984559515632155600786390403120008436246894223051474310927699087141450206696190463927509773161296182114370181584405223709879050496909264403065942908830325424135230402278913740283623128852144120042023722279051900357790002927621114013133279611736036404623039600660649514092142635960759159885824078052231658443742256363951234466491623613037745146928092457392966390827861950583093452823983637991300650506743908077924798092117263063149992965929903995434911976630304303942256852338849609830001236592656648669348923343782662401792897785227100047754495809647840046688421677953676621553867741092184680228286003224657541169260735494535883671880165903558771162205690285706863410373387187543457069534087890474914842046576317435920985752778424084400749731701418307161404183972222777506877496059981763857337983076489736053438049388560354646129605611186935039331674204905501954290321823994467812436295978330805613081869615002294487435979222130663678088955044248452075919824864120591633328611705757687113080644776487950073604589047768850405929595800809491092228097451786118325751119490951511450769919325877040631814446196143939537485515339613032165960754763150801806928549922882987392974464609092864292327857553149310095886273257920127889902747654662216816114015098061680634566841056358033804060232568086239314501709884158402566099143642985996122218569040133629689588204037310579837660800761120208205483532600045621751593679249678516650779624509197264574042812668529443065194489239737787991420618176002892632320561666621644420309505419391958919354402449958474192958881230379239885323847564187173917919172708453900005129556441887476038696956820028170179535829062473192736511407809865302368957036500914359244997777179396570534746834926742041875565790992010058705852393681446232323488285485641634873066269066864263983465957721884309617528725939085904172288795872095640620746532748269478786091043247288793813007099463413320177018199605988430058661186946959590428850876797114758581174837094025091428297601790796131614728119742406738244642062035048277963363818136457695655583733956647106251692390709627979149445319242456188431527421463335380235486471808794192746320163476676993153476455447949248088494203392632542139811453131143393615577420031216776122415457973207790058965442458725894175054449295570809802995765837386026926827983957486744337984271356814259367173119481398518910021474755885461882269876862098595551499439734709544970981375240979879428102539438806145871571469786397336988621817085367262248692226059375852287363942676037610846951272223539913917475242554748637025683978701710309496990743139820703309584707676218681628923223438476804097684220105965311066488074150106719573212711578657775075006941735732393806900708504757192413288568042797234900210933916059021133906415847987486174357281519258115794096996499934065955182404979408981071835549438298988695266557332336817448870426102813741578494514306173676706460365204641660158381400994162106802206033049465029762486099472772521457962367929019066817778251004670672457306586603290923199748465013774129474568266443590354807930165241201175771769092796182586703125698332737166429944681629880673275330946878772930722296218220046575874709624375449809604272775210573031007372376925520972996888564987841716852000249678267171094082313286272169351235465254667247040683464996718226305318143577360884008490063487770352101017749967831592663836648236054965457802519537155264775168700351619291957715289330654913875996573321302166465819143984193881965504309516264703320261119316417924612913059472883252119452980803588842681463125603974203988270512738740226157290706313659530837041534859010318286023334149161606084575199247323156472798305127763090834226385774753871022123326558075504087672127044308082399945739345982253263148141966442950688885267680856221115732914198173530582905413242126428603226444724028340765489253135717321054968471608494788152466316695480027790164558197085907656372323263857248913247536825624176968420884617287601768952507223337409560235458308815932891095668281544609399859526153914731438944862227818153458860818774661049602646698274327066521298008143447351186750516514745910516832884697450103648399576175260768439115580252768485824849182354835064781330710378789687084634341322915778838865840998231962931106617926447569871063491846768934378686209423172186341106106292842339821529754488716910144699108282770338664047238500896059326595409883967620370334134493744271088281765242014381224053505213573689754955826152938985499555376781954596092831638986336584120714191029135086697390670252659727243301063991195546752454827916347543952467270709960207488862391026303366356098650431731954639939363302102837366278614263499871753803594389263486220986652032060720161752859522339527124388885518858580057784851998610604284698620150519267400189324908138321254317576775413949791091087076778134296471507848475456934698022784249862557189132952794602215023995642929422212378179334953322927276808548828376623148844845849571469227856202135447993742979170860437332384935490414433891922415898058045263787134561230556758027340349939426650865862004406265948732311825624442891723519627347311219882326912608576762182316933103721468848865170704109746801530563542653582380661011835273434169830547842593876724406803319197022847050918038167144809635132616873179570075693502001706953591134374436492197485923642925259863191655780027208820632137763667290332682900540720622243217299947804690424427193524183589821319523716190702639021087065129628493143876481503656817928716338535687052297982496074652742559917148560203748220076293502373019653302959266376046520184523046954275371312511721053293268021284242059799979050736181667475024939369348966666921736169678632183854251118285205695521241627479289135889640153328151728509578711122080264439645610379929984296901072038466677748167234144382355441439678817943323763972027144884631655397361195481702214554416721509891392585158540985980201917171126008578857337975237090699706635164365042351448355820567484973539284098739677841491835709818229534215706044145533076970854104234004197170094513662322799314944738348412745668634266391420567933483959272643935524027313313273760433926011161364453734014891878183991225791196292315606181780700024148489911646608306850426590805055009368547092641201423662973161149653812813561661144167370754171681259439162934067391098193887147383764221907256129430889370067588043847554422337956489602895447680531185758026931471296623674678911651061201395254770709455023762488602711806894991382891182652327321147861761672402234130682225497810877804693843224370792611492478881999767101679133223820091978940089998919920426421581805273991754831151749034484662513675369216923559549868789612530315242276619627656974599864335019060533177069516798542694606093799420329573655893858271063100465606753161935986388922534719693552001257865495013264290523510399633923037294236053925760580829606385521556047545990205455504500396020611530563910290510389009416742038309665633789480478594357165430878558772868093541341366706202812560393004670794044026994004770502326472796347198754486545958346539924649723704713579523016337265085888800621066024916190147269958414881215059990237188484030505470790578627047467735813410003943931044804379172296224291108646403163919281844336695288269324564917695341116149680686731703322580975783069779029656266433584965117060690831484907696330715569329141977522735286035353628957021124686274386953708864352428935062525026583799945222229330994972360819285689718911430485665305759104553833358823229037205000247212143659406072620321859390483456479240442003328077943802789298055362553662754133876341577238139483576072321256705426621582591122070845929280890769765690110605962071097527923187836678946996032398601410971379003827582570272446346975511526318727990251325421851227446274152640079843212508141272374765820731385262918754305851862769028986031080977225269559368778287040084553691578503896352401853033705517865672025418373992666848120822285286744579405453411547474439959330924829100995398827699587146650635444672899695647160924424956494473021571187902563761453896877286258481847657605626802903826754280884675386857181449989002944171657835064469833331838358490958268564622567013115976941501308446987572260607524894691566095706815583493180280662802357208844461632494477700670429298829039910913369291622671720075586200522994601856762797359799666460775063702086051841421683434283088556544069466167270735864609537521005357649578674753983512289414448766672342408999635857329295482934942316568644205809506973545485141840929357137256441677343764717510258276658083117883120611474230980100691946458584955053499894863586300080854064897312457609043230037422481407309721381570408747294569849333722767383926595173426005095173522002898659342441903777824246822071939925748822394349939852899583930889029779913028481861304312934336716334446143650835051184382639124103749617534556700623217583247334063569461609093463812512675486031382476576429418557081068719637872012323132101248944952596741567872541593116906908459658032599603259854243127053130646168545696337154371588279882385142964158478905013816744084271105167415380715910485811505603207505335710721353802170997419002758514194066363738130876486466947055807946780974748082651019897323476944105987643447451677675244915011523873541451714184826725596099485731981798289481966908472405928964580863284212613350648549161243589679216241368231208692695306197954567499853959229750152991991958052929514901210363109714002415361175096985553480447306073512319421578761337812377795902533758617504982426386463886742168576300020088749494248678334958491047624749125390174064374052965153775694753158911974998174684354487066417187917408056996302006127626664754946362410587787231046629865763518879618472234156962934154377887230450412256520841629867017588055492731878820090205503791488804139587204374991988234025828494583542839123774002013468657824893065990608274328987541113603054873266653835898892450609418990347310940919950834384051367225809259586363741320424014989700926439515328161005489225569047649701379903339965656634931623104498144429824231779748644066756319398676878106186225656705467318353944706926174060473260989647929084547119821844835150694179198753408799016026424104517579069827897537159313493189461843038821895436186868174311561127846723338900549556678294077582633964573453527655556389796979534799655143829862879808230557897096891897092949597627502484208813298815691205053744789001130374075811797854068851168915278077551866560470742278910135264053968472667011647182473851021608271997027655506421648920030576412331804452546089161797744789754049364495485398098049796935203347350230744397373095472698099754829945856205184787532808087661644367048168795208550583408133780195674391490884498607155550959565671586391408017485657160132884984096848535827028231407575984258279044024856240534474015664787466418023005261592845270609031142948887556609200521580109001353313913738609151208558482190224833578697834233704363078957117021493784773462281469505093528740057068696138233188400480816639620966217255399538030671056815302105324994053273560645526358720169969331174284450498695896353666846534985883479491710061823930875294336918051810224889170700906046316583239812541682508434999708766909398406871681032930158231762089224733500437252703210834213219895035988872415326895693434029412177872115334979400270002842119284114214129185190791271651627326242436711248209670663280328384045243009403719978578965840656687246334319585620247717948249992278210024133871916482946318271059781124245655674784708723837575017496600093751504545391983180635050670051648392859465505116278560595561379281311232352981022971054023883833387543738186324455153499525362881813059185032447422608061668404478657356858186805474845553497030700061775866561201186148373638173497085898894313128432947882378879912620476606475850435284284175867343127266896374819608990368726847784183360966519302931625850329377705831924423656072673534024770451725661116174015145673160174297137048534181071165552646278688671172530477949550206584512858413803150252307092556970507225934644728735901700982688419953090260033293912245348443826956906206803259030135519945688674069805545278986888841513375412869879788324555353844586169760805983637684180011538016979569697940237017080284956216852942425385272019566287095003866941361849812143405004613951677412400340093855358554213277646038941028649493369100883727124910304982305609437147571931589450793215464454521066334348398084041086026359408327814039946906187477704572747063386029538463154827197412394707396170443025115813252646394695394814820373691199272073656537119464997486022237657202885476821659752507575586653331575971593235745365251261106680787895579420370148041320940504939306795086431875772021470711941448775362691515954405881796311267745490961970130003676752727313424710505335219302594012457437032740012259265358502641788599909269168229056901026961087173585720466065754882059914949113301044735258847848276819984680195750408918984765173752076560014496838164995123423175617630688380739383472061465917137944708970131452531502006507621390261608070058999813744275367424983385160723212085264342022371756889270576023942628344582214068241740499769706023081726452737818887728110176675693691116613476357485564540024481108525659512744860103897809222986471081596875106954488688670029345805336876967920429937738791040601686381661640407134532362539179002124782539817559772291960872074031301021368096217962585546721450474281657723707990918756891228547259430602540567899130922980161595174124260027616206737619811075197043799870195446824193338358492705640506858020837786451944663082047247266468957132578324349950477852764830302123192365915113276908678207233428121016214095352912664263249581358366612891790296377986760502307184523911629392759821050907719851336881535596071101273797839609874522088159002434425289059098196344142403365900508486381920183324790086672290233587521858388907636060193013171691921827506336824793678359312505943136737555171928552088252895728722715112997325440356831785300906418856610244719627299468134473858528918711740942575633879645353404645471607418079814104608576674111865427503414973925006321456180622316737970039279918852907886656356453261321439956763679301263268928066724159845533712945655327187244083457558124320965250163075388163076897307365564467418112278759524911353634659848199891026369440784177648720144700605392717189373401278175365213370433083107033531668482868169229732509983178026741725949707913120520792796543076798436219279711616557519134482770292299100861537850585957693001033664835295041726643455873302692511148992496339942026728528241120576805910644616344143521949057300018906735084228445820434480471152432290941047770129202993969173214957754379764565020429991001006761969161968625441893526522625166027310159712236489467007616511874737740178570444357106784791701445117420514876963192192392823948736092299941791210784341364030962622158859009518367606475832378247836073597016163581797641516566223452646038897747011082451947254834101742682663476161242989076580110400542967628412997393084965173592308099951695931336528056416967411766816442660200801629496452057347351193420133115325187793254661892640352334744451230348921801784190825732901480912684569546901540554618577411967339911100816799861550941497902288137676662877035557020106520816691128062383470986315204361846749811235693635270375184984105931688371301458955881849909647796823626788681362421270636772801968549375847095635678442176869474507014554588128675937281318458930293834978129676822468122433742853639187939161784530324910453170716620419956124217237000180696083507987899260083727531595557704755568894829537068864655264837416408496265293998933551686334097698472722887631976411975447141064672289988275333884960309940937120246846149913411058706252814894668224887211311496071090287756104009809246075059441079389517233930220613123489303354970325805065977949314572224404848671559526212160061709837637850396278729216067351603573970776085800686645268590819138332147906482394483070950789740732228068629376298912635341092175287285138560533811767449175406871808329788341300123774477722585113609050666797104968154899291516825318684158493026134713911326946106214316136406890589043749967229134837853836041511518921194632681324796973574095580721640247010442370108258821487945574374443392557701665316874537329079922931099125505082505002279774558229328951610316314679053421489935901472323280787788897125668030488430326689319677356117921334086065556425926031284501998066774336857379178487445380143875450487034763600592693556056061317025942892946942713581309483474944565147640172226774280992969601201871328972756619360235367386488515105251295249958409115753472538394050304484059897518302614030544566272415771304144995989283946805674326382712980465536097613580002420680553324046044318822866920652222920287762706544875173439813655090678934987186776158632197787904288260527852935681455413333449353627772769618932406390889679131948253707023199174094642657673425971556988122507470493666420123323874786433853069836770214341239602552796706210155590874854556914034984994356104404650489235947151490348716985769515114742803997623082550596052413380789383489598127232469727957546483494773182004639826673232526915581656874397613663883832390764453874054793926786089086938197379343882926630808250269530314005917349203184091460034573981734190824336418000069672789711779801769155785155871729051181984883262049879424391905516262003966048004189117177649541370175223601112724892771379953520093991577405627817010307863147540404717754574180653690833755070592860845378252901088607752761092843148001289049617017903055513367213150203756101568946829256323617950128384773879149826569336313247239521414770723675580533855011130845442053408806967326209663520512462570735221760312240985842520533452632472289996207890246854173394775940109102506173342819686675041529460855997190754090114380362672282759965068566100040484606703324609522636165921670532902351322425711498938109326889316223696355044204367802254055722448608145760149865435369749750972060787119410559503960672679134335739318091453519068579247675967378825520984347943853424406496021660951696015256557443978151914497967195211523064456731820527098678671052204805918611413904342792858977174799406551651992482240018132637722530606821856074549599845995011452554948089851052942978227077555626859201225460443115399062986840949216423199540821547573021727597991472498750081779058791541255372070132171621622550569394374929204218379109306818290128715866035886711559805373181086389473915291777380169199331281735410289197789129354338006704018091552590744319106549862824297154037411544455936242125698142360142061451143511143643355547297086264390932152796624905149619426839231509742374778369493439830552905029080968934503671039699077630429113052979987018340633303524367161438641106911567342538708059023972987361696536129578574929104939094090285958392235387053831731768113753661524224438141746526934856355135988403166801440641507585251414756001768863035440184969035407485607487938657308429846620760128163804486386329141311020682449442786201551639647174985610239932295386434951499166139314838884335061425186749316091597126461753156506968874363285288503336925448446345169785079153717352605774060021018544922386455035890142994608267905925938360160516955458631152000688249911377646468711048901404333208630576119707291469114166103249249058990062971570728070334060147861960865564634315220941246108135653198308687175553518527603232891800592518201218200580791937944378952680403713668320279822314230667113182123617824757813914233722481062298127259145615154580951431953049902617709655851886343754191225811856292327036841606224226361981973549540872445054578354313176559923167144805903416358021596313766880420272826551474230811250122588103060950171841667040247326437818024878359409183259470520910854086769707035259907567543339211602189974652328799152261360250705276206381311167026320158962986720717550009779504957962193914758687521880129582355626366995639984192597913331710931696300479510026561887157187623319679275440433050985876851611900279299488349439638403142317362387632265475586028064201290346193611069157345333491263016433819024852072194605838397137567086468523540147454880264274067066570822824083702301087067742910763100310429742405374257292651382988531774467719884381808119977414519394224441334979690021175154091964072997974035182517354385908658527619090427816921712381627049237148494507632113021749413162044193558190437979366812686080611668934218103983977648424221538306374432784305489584416144597584668846019396558468407860974450417344970728950611982543314460973111015850019998616694456615091057359823178799108758385505205426000809917541865966951911087555011497040616464345705506068568118239502761690601715070367630165495048441726733985209714211071303357033342852656012960920734757061883418328364423248013494118560589578613721551833622600406164299999251106039505835035976635748230063569314725377173008754479042440283086061251080110613773417965285466293430820786023382099766361608290721605893159883689727638147371568225025069282808538371430867230923573756143532368460928032438137361705275525035847491834074702036075680704541871234786939503143820218233766636283598107659025805985409226262814612478158270518140052993165626762360092980757340343741822660987484280338602339979751289567206855455781573334994186000477617259034956536196469610449666267838366939363141658818529682066814365874060589000380666515155860478024172349436512319119724284494935309717761704819305670377238605853933664195991654551467880016683788074246775591487784321137752515976550523072637340342340187499833990900561445509750033523421508223258956747485999433784674514210263136978619290447714496438565472953616693312087275543421760009828407196836393639326938351987240928144698207084633496040415808286175639877889972992697419099555086333000711570456930928293194860927332505607343270778491443692086872884954204598375236081243938037199165592063031777129312382148660322745435561294302007189043200349390351310203948907242113883841697576626219247856322955760757549026351483870955817588434271244422940504957400382327830142463960711991124161947475338000856278899011637407226510808615920012488123250322443494492746290048542134173792286932986344848676629170577433747895014622921463037298087998882460328217867845295893042814999900461384667530159824854705730639559995319743781205824418044716187984672932723256170255486549024681857273394407786275287325054727397385491683073598041462111875142293750014240277921992574276621703824667563326500025855306390759997858713901720158013904975084343717278329041445586534098645106138709639532399384310694255646840290765209802356570028194873846434515060788844865556347236946320904442243557284953282103689574793060013122957900087858805826886970541266583269223358061626294735251352010789548916066584491207712039205410360225090141159743116659663215713242649851880442451442829004698572077817712082744307038522462684277202728577512048650708265417587325523202266061598833038093330280372294774222055986750064724857970673557651668855222122134020120343832672651087888194193461337965359868412652541476815426979713186223664858522066483404165996371890853763578511484127228850246537717339818726669140175726360671920314626868851831721611858276026592905967920338894047342480184939608170557081655890884188462963468695385973804783911171818001280902761438569494409979996113269214598124899756462626290428806644077598145754950589661591723249415069637069957454333404543876133666255184361911734511566833459743751632594883462265184046155541612916398947825983676203618781629540504029019491452519985227783387234150736027732647507777425182266190764112769367809959632088768328250217252135120132661882493774543436256026029929055783609579247780454889360031164352187994074371618468465953910985326010146823326195124947944088809395867078037084889543584857061271937560085507933225753799463445162083092998274465750275290136261658691140346190372732256722066223795639222757471964670812011484036571249874101496515146608361828788477890814920412834120303725158124839136778687685727946911978548362287775658304647182844868509391369059927953589396203116495583066405169253278947286562313581819368311777745571823997874972118952631371037344401827803897519200789408834120455585905003753794442943429273715445014062776206056265677992720247155385853939945721366535695174012374379819037117651564582851156171861622286171316261581319477125465010304088744052806340021099036963234754064525000411275290975512835036596752589123900507994559641029349525267845900280261518375304775355848993543635209253627940471841314029027017253527677745612678087362045313425669542799528439017963401410971300739720187723456702315985788173317663273170085145480706970417014072566312788480514407524646908784812881762379616102322992112775852558679843384363525715426350427244202102660859826101818939720443617575762635859513352749159406227355552472840013230166537177487870268611882336191510656538562147690116366376137453703768033034564303456432184135696073975002347810766241525700586127753802836764885596287456411950589896757339795827655059355065696568586204232238988816763386796561144340201786221659832282191284449796093361499807938049891554505722839581554989784457791379594790584161831289551191729997559064164389985762299123781368197212088518829745075498081430740060033909967370960028020126962458470714954518368502282603802153838037355421155787043678975654210863922928874734352620195398815844681897099245754867206939307506942006554346256050136648400746045267537388660086727077312548466084050772043538194174590438158490584101301072366482747465966493516011763117906523713874084573769288950297288976649210984677520312206935798610426771510032240068475086724740770388923061132921517848007213104037960600746446751330229932935427239392324968965746861798857282452447927524126119935551376312574196332279409456969890946866508028566070072535025973229854258904529144764463997292530320559455035131643512720047053587110795581718897813885387396302600876691997869315205810798164830663568586563649692777053981281176757215458636579552305390304308407446495264386191547990298833527556936754572809424729682921888921886131194072147779676311305856004556563807318920763436836509951278215314222607267682066380062670021066835056089927786721471902091023882882542534173262525428453199548516490828457747506134072895384974068931508910971078400872324329843732206794480279716202076054411080158718030015434569943407037055250024388092736851050901080607437154705242247920954937953064533634006829972515480309936423373375351151867758851758597183951152944787677477830718050375789252235847006969110081800463998004608869786263245199203382218756821192474431908383502706843141572019025413637673104055325649759194623343217680845819562654351548062998478059351468562835799090906209584901245142139646317006648860978747523170986957663094063516340757730629845784720219809074823021380132822253064230691211510120160449332314068817059828281124974383893917400142550324810979751836209750238120568711318096039552180821110177007323122864376726378642019747265363576531160979510316323220134545448270223636469865760269760516104672724953128756951361094157009421695187816855145725755953676340543556108936652677361498884523351600144860008996372833170929708803163796660050318660524715286617633833796650822392558299864411228074329084705610012097497946738117323921092191010917052947895389746893954348087776845305947801620215982756342736036344811643094962552250127112337280915144810224581116891002129837002519809114717545286424585210772156354842736841261662879827009174197491368571286127784006952535867702146533198004650408756124492962844080674755284095082673949118679218382278903541378191874042781893502296437508959495695957811235552056081417272012810791816407938095000849260092731078715472338346486987711522118123090830438267590533737910405306442491330684851332531076251370203514703636466667992766782707480337395479204028838185794218702176419468258359161585272855031755611377427736653225032465972988553171534558169702649358386702376101835078629258179457492603865406014251270943766745243087692143655292382958374809513278957666914590095360230168406344278493769366210128320008127295560458032747484922568095510001970067916741388141037971529659781469253051502369060867520041449959253217284544410110130691228277109417872102469219450535680993418109381886627376352963962235188463014504667665506645403418595175929961251698997372571209613333329026681282394909564875426746506410174697678661396137448107659712382412116629606547447224216286336535145892589952432313656681734720845092616256104199607594912304468051638643337826363292181672966527296525874075730523415998172686520241996293318301718096537036703471868676546063618773491289211122197465371154066675529890804186475724529660628879834677558044444997796498253505393476739789015356382650216319611342229534983460430474904178964191325598016861814030304315279624881969242332330293836572333811903321058355114825795468347169270433780491288581803602272624955960413722304786439138116268302697457336703614826455968683985275164846380187756550318388918849850925101790408773236819695166454400978412781408755273227969889712527883701015245269882137876766806481073926392810076344234243753470272264888329830389738507591724885331911250286315481515963428836466064526591481869642845341404078158337069707053817562993274236800802952824082390003572978581689418916730329920363560622530331251333201664859755784881245857826107485113810410067113764143870234243073693514148667008298505115664472493496304115014319945221773420221568267488855136120452776835214814609317032917000426197900163146332685158493151558139993614066134161368697202002588458673129387941757290335847788854092404410400776149249284207864826464184213688190572497299365913095817871329584680076312660354946460302075636328015293406015479920157325501476266826942760416240875341742299467324584281171496010253887356915582585146631204534863502355636659977585275021657965056602319694912092101337442526255785373524727994840843369128737286426376909249314792721503854995322440075898682921395680293575007551144901742246392911859650299051882715667513418268102478982704753957922697173877145416786658362632355426666562404779390262469772415290839008467425268886385650107255931454856565751000199179650693696589123854998888235118577633503640390142269394126001392099876644025891179915590873100922907462726734263965206037605600307585281171149288326409571835005495989424600316751662484850703541145859169861808144512503844426882125396451052095574877223308059801461654032199362158804765931976380778382473932962446690893512788282448347424036484130282451723609286040905814201446705187332610863262120132661811031431751029206927942292921250548391712732180122228750795825467388892854076464354260790837004379813553997876087575533752688795768058848138775679596524483570697299149641582293482390691197073566381488371219975095802264123064314646604395917141026529651447983124574476484894817494400157127403037431869896126041674645649325466927270355034296117789119300185202514501673401881889582658554573393345823271528392712042105099467525529218774796869916222131871735841309042045418343301479954295019909522406631225205653399697638808807853158553032008694381993765045763391791285294563786493150759646583800085999229230720894069846838767473218603137563713229727498660847918362017343182793883890097485583937429935580600037064143191778239741791314038866982661482218705772262018895037004145643888187387457719224516066200507423442261274371731371813883438805488763780446573718357221466777876427780832444949735143982675345375192634990313403655056628609873363601919447053895113102508085246567375289603079389198697771983832233812297546895001909067253535240395684581128849264702610127500255846394028067515221188756356864001353823977724411580135570232510490031264499160925438808182928093712176281556420585661220762854597316442185953285940074011924415034632119347511022315856043607776513960283342680955040694339601157036065648444942093801297766948100751218399047202208614730387786544184434534370386769324354218547112882484653357064696283670148658326386602602863681958593756813374687272767043118450714432722155714565280405562501666923851402848672569548783628426094389976652332956150049481992203226232486457244376662041546695267354132929201009960818677556618634543914277124406896842811066008751798651375974938946284236281898328171359236496913376909560811209702500346302535475421298270016818681300789276525167987504829864060637725684287349925455988305793228169217972595286802074314987850199233178250137629077790021066165547642587421568282106767002552842300590457080743307662508238637497629365945866720781385265030624516856145925016312746271902119378804441643612072603507672505497921597809996529060243106895902226076689077366229499521415188363850855658008864185706012889760193896204914751617119949869629374312822250451769284129919019078242911290942443704311573208989754988728986091977621893216104881615539993614865596590962119708942448746861251360180899222420220131233748388773030147129558244030297417135132726098851802904700989683173829189732832416021498088468335519428958091613053798776008235611362705393875430739291104416817598240280053202716270244267593301349888412238015074116009321114958355345782150664095248731018886396720197441555024434289200816562190918144730233936553039230125108298456899476861263633072156317221730573549695613794332046982705945328596439347087642060997521618651519812800013295056304340811927584678598801171634695241363849290236175656279021101504392350076780306693166716462836159220253821425322794323898997138356136730507317057489897502902671139563548612361122338366202531551208006458479820638177048385146889724285761978895317446476840141094969561256612983927552420005563700759467542653971664690579442437744543366921544293328222050008263276817359825262604213234238098409159024898836576215872436288734925849794662646292791222796812310483918237010810407561764810119670693947894035831459874666513669217315679488975024170090257953809675804948795234628886015062464300439976042206675709492334757233674626694524306349762147753882273124921286077155353310658034751685271711057445895737358962979703357503011805238320064433944533551381889611858094065975007294982163472720707871375989452320147923634512952091424976422680563178846327853908841740145616566337902256429905618431014226731475797961500260712652499711130983805723631039907717722208839722757556442130844625928518864294405251272802484911311306701823940789549224338410778570907560855207686245037912702821231860836243204027911097239251608249757385941048582923895393461681963354470130809441553902282477018818521543080730987414081366773736764894103005730289360490575355217699864305309101472590285125760505556895185860032532091019829322158393435331499365933824212726128572589921619415929501330501542268556017332123241631391770411443829990895257653355435796026477794093244747237386810889825201668869408701657383622735015351974044572505830794227594289601924540362681434474016603785553666540352107330220966330577264753931558061169705860249903026329417938597546275398055781566259049110591600130130936988326929291252317053169143537620895456633330647295525666096364957939252532613717386308431961890651863498603751390175448527840122513940883224407715674213507815381385675185683666270888379450895242242501595393912364889278595082838076774569101000396002679580657619744727666391510111142102174064341977250275958312937679907050985563557907645351901219684780649974626174771380681767674595676617161769184680467514021412749851887624713331173383777437195389391540303240956621689964370746808051859414835209175316615848151939817771289643278640398876312906042804530497931080175972935080013210459256213347386182706965223737873229031551790344233975006498493065608235195084774928578158412915341247166208425120914143526349223216171888235523556818699411596237343504519595776169303228961693980284122227409039715659546138879852696781351166766146945039524761409374999789158604087380870433934466847427502981671781873457195468113084005108942097915239312610973202742315294925856085699827309375928516216849142215109985942321338084327031908199444738172047148964469345947741252129014381679185635314404345038350315483022377007015003762563583933668212752493162825617848617768077913960441994942651495127774020100608232230019377143493466044925039588930034366470945483504866720744240851861889798397745783088981733582193773231558570160910741975922821076157941260835954482727132747295437780613467806777204257296328737905953773867441537524902065276277408991327286997031248848563753682911378509972418630047583482356000455759408535274045496412964592478105723807636267545206830226318027889603673715080055469230270831593986118042182196469064809372301361636525339526840434254687997186390016998536553871227766269442986638013812606892066689538069185248719527622703982989280265547571235970672902870516962845536756912929743690043218200481122712412999237569431072231009006621513659552947307946588176620126848468556742283136484312951001175471680860790278429482018762034628537102359048605208394391056027825923535844554088716834872037664525815236736207282445770340206669067836909126579998818147597894959898629144025145352901477621599017692923171921351807066495357030852842916390495789150694490330346811176018514315729398677262831426511180460010139410395541101848768598129921480373047783694125045408235467594735419679685059530054175385369256792181636554378729148749377674286689005270968322699400396229333585819503964976799383380378334436887563336697266374690228778698488512145371597983657528674720968852477842932010171638323806113609006610194241401355078218695589400580162946549565011226062671608540888521520207228135202050264840466587260571591718178865580918477418256507633476685450386295833167966378273039454944196624974080844230379681954918909993508416367038046070238022579103959829057824525821944834041425814077103129374277158271536228755526418495327270116855547536269848332799599918679167703099848653468441164378941848972708409380194996193553757718611160944326033146060526583188390972865822739630406015479249544294987503951883724543498026087985974573230160181394785823925562468737886367939658755764739799718272002174629080886914939889708298786929643834394728248015731077041879054066034744880014174535948167151752756350792589409786480108665580228151375255266726485755434364672959686842263783960148351576024233065754723706957198055289332699497181463281635185438000806072400536523628534395921665497950316619815419139719854078271992400379191072330558093546280923111788511605834137287882001090915729010498729739207614315655471676187675659006096946952496473511059762870961058818356351499725946661301703752650833394009909241204135271644971608459435964011173832950698912867372703501674482038941686822716898649856452959964486340642048092736526540934599642040982992218814659609407499167921191455341407031773476685214829334305426869606461048397547096627297156267137466173439916164122960875484227127571242841877862890057856012951807425389106502536744452895059803398099567321601159763453601590912894396334069133557451252880500222105011966989387082275218739748190296550822112919472646330687103429822297443294988681663832859587216550382566669014328959312823222391815710026708068877872882545242568053055073634892226762613407496712549748361772670848810186432861425192197994587491873651618500670562624104377108020559633082968034467827425925351878874487621668045102444630583503270095830912016177462363384880724180059725377156169983633400223409716470192581108271428039906069400295994328323660287072870827894735612851769197839125222148517506947468043399111713882224735991174124752472444645236172727003634726614839322563479080767231834912140637763844923317042922613082760679441361691858032345608313333414707842082549857155593030329123736537891381570769563920465868886904680789002156916936730428240718234583788592817324054047153176127890726806021635927364235670952973652137009110622287256718711982784407863621852590126779728358902867822031759851041422860084749995792332172510722589910040499913175514202014773072200380825100135754823484368420929575987333226643729479537277435464071547583849912462053689439807631212542993981336682902223030813510118918150081146633606649944020589167017016273065384863923106583326173228138931437133210108995179869821609400811429604993778692510351756578104045517881442663085386502177519080980858392090153687310757395901420200486685626016618563715670798158241116809066012074620436671348291423549786889914102748218017725781461685230832586354850769119485325828009067505016801059595037515693253760350937729901805578297985913721515074820006125852018204502144020215345251830803032151999401977232232279842271725001042735587556385064675604869802758757334234240594374000520953376569943206934085169658281922707593221717270545324306932763918793923645549702318170923074240400615176695851688496629647775232032129980829364670686308900069361282094457201311948980557492502145828945943023147356309301798962520260079289200312097381729897282265278411922789721782444725695307783996961176545465465700443055150946900761956532858784450832434400168632908937951564866172412036480682557866492261768989960169157806624581622088434201070059369656448508305260170858507324274699712067412766135913000161398866077520541515077299797986221457143179914039917147607358408711989524593413125758307679266894828439341621630322015218733727923815902638973750260426927090393952282000389355603149674733019121629133083572354082202144508579193531814305924896071349070506480124161878212030258428615460398206173689585348616183088130728595080582027887500129103911205406218246186800970228614865904701800687622908191176082019614370447250198320883122629528915865993502407684873930752246805692365822664449152287364727099378853852839415347266271337410146217627081733051146905639657705414663774509977333328095562414107590964958516208084156675184894822459721717951528031093899305002207314954918597027534431951101470463916836226914383852947583623554654713117160145724354080771310103670249050803539620470037125738829282932648603237728445867948542113107605425554608797565393368304741719486179936052176769752807034518825777696025351753904604019634840526200935130392911793138344037098026958435415390069116994367492106321651536078246650183100316922459874436748558425975494192698753281572666431048763599313970267980616185792631166381533993767053208819121016098246496903036142620691538301780460169990098857291327206000624205340927335910135128082327330312429874346963441403338570178752206010361881464008423871981040118755466712722527122775027691357916749823792853895152633162628281746165241108020907230119709769945653728439856036497000278003768881566910667337114469305687933611864733844349168824342500316188157083427382907641010659700997126851731588390059081412355237802615323418944497153409113585777117601756845797442708955570843159974321691527470103635622244332263805753591832373545687859667214309817346492241130122471875550088932964119220364850523228943438894234904315832179920266376378974197855192303937654555293795508237155225476616408491191901970493665141995771153082219457592042884430681004102698785875359882964589627831615439107153752355319528352404675055405204216722455248806328772746505947666490107453085667382975871503585512488506942450002615400010104865147409817357144177296724018127934982172544588599957154859511464234655062713890516831664667462547199623108334314311683857362783165813404247645358131473251052771378057863438536643488799207714148268143632603594403853789283767572826342351838752405377884353128851748827278836516878474419007872826292898195455821841102629418417028914414660800071507874759862583654852774831925468676442271449473288524050476594974260058385812458699174441561669608992617659916748522138807230680573682128318464085465266699854507060311514725047765203015415711572776400414716721111201182158224292547249451052908645637253799814945516645289864945374085815040889895355932110610009836935219450817021388868710062085106983047726747423891253607232176429362694567265886945765634244526200440842413412278442548550758026450442991946950157929890963712141932685573136908827811866983457228284314812390058704075759793800952291495602868240681497776267940765764090451057521009542975795364918820586215602455162437438841342288034127016860923549860190213225234017313025021111119806433492382629552513366706720635109842962326049992295005533731492251598835654005670158267033481235913380752796146042198097417478168056094932511841493532069372476862674486213795060655118525966330016354940972306037804411166029158775837106189544750784750408110531568979364427348341155740841147590628197398218610450181373676102370079797629294820240455445571798842518014019889666475613414743473077702832490951525727501836631639855434920106582274356139529211682534594286172163646901999095976335393393651350781842981435889932427337361166602734896543139971229078884961057195209178573719628168628095029216452538992604937598615568612001495331964926629139360602298778758651841920232232410862435377930949607586703431869258470810246958733511962983839151969946426851614787959592618606749084361525649156130468252318637637441011991995928568896286104048705493850237848780728614381964088525865126490116346360612860694661268075030150288789412222351629291943446528719242440357717215358889679460287163038931539180583203045442593663888680317175812471457265273610304485784775993822528304476965056157264097899837736915076076938593570563754873901028354746752942672436448243650360155214906517373762086353854348183748683118605980474134535529666401535166137357521514012686767375645329045974662753294597438221127241106424606049607892861495788637927296148803771240163841262352734265100285824356771351801504312399912266852875527104198892380685508148853006596409195864130337691017785274785534036421349681901903773509177324780622297908765761525482151364122716790424646136270527738915764132703901979801505931631192363582553822122011486659208576176792196176444051823751202104028466415584250150583859047189846394280820089564796333205119049087727991123537482600139225192207945496673728208161884424193310822849723544212693924514908141836425101535826594104812224371882533672692256978764082998807780821690022492704240148717638709234742146254782594827457597048777374306765634081038691194744639170029298738452710321098923284502687840963853426288865375182456620739451497080796608682057325318130044724362691913376867754438198262724664334079537465048173556040491725870306562447724451469064662517938839969254617326015857558900436095161488836770989167955206039808387512227520345170135052616158122273361229550254880182962278708774270394977968538669443651403087653197926940091417551593304196905368018711481279093665870673739582939300134803034809535600583262519939257909365939092601366013479547013500196186207703752190027503895739409402787245744193893459847527316079177073978531358814180909165837973737379219514865033399622291953034512951176645523279168351009271830798423716058763033476234865657805919901326891599327847948601583512240625653398850278116130657280829821070520545962082898226887214813924001023557809456553034006439310374520634589878840365946222865150671080716213372962278263833795590379879282068784761961022892747496615478723286051937178350533502780390149441169376552591862681797634907028381496456369712596207179447526802103576657713044692073160452699521804147650493412364094450688615508688077049643079602942686324808574836197286150182988414735623008578871783813792098222780985649502696207611050385761457780800761242816472608504735723794454672309507228641766261137230676305591144433551540940222922172322747305889113732753693648418110420590668734818810287579753575698219410463396789347207811412481207774374448775843077971495413870172836291193750037672589074220158306420617188223313109856839721291118143461026028062207809386664820965197715738588074050865835912301522110514950702083867619334545646909719558323831462490811945208660103921320820002640571531007383303385641116916526870682828358323814713721847023733026120049936763623013225955668430852610070597134413344019445882707121042095459137126826290230768640358989198539241926404177945379217823330233304528483036394130782179631250913916582730591977391578692263980289592272201334370854217635703526978158419501227006170170556935562766243398729261104264934686038711973171670049986039071514959238308987831466695982347532432461474390095393311311518632717057159318232322238008747591001257307157900337500837182836067148645333822193153283208150287750309232383753268470357310844730827549052792596064537256169288351309094621323596184533111530672205048871812543632810903273616605570086793208413001936221329885629533469566795871714484231317866899870859223250216042933419916807346495562916159294353065493163267225548600768439412877776857068333781536579675821283660918832823047302327053786521955840199206793109195560730219963170633495788386916056297988385495082907495467033910166357795528459610527769979859490163036736439911966631457002383180751948902114192707805446346663973778179158981879934767222211861787137574200501816303872462680996413215754694022495818782506695700787061178837804792845201137789218205357489123423555316634652906017113368683897928329824771928506374759915917872932706643013054361754448079297138138226524867526405480879329017326271555168378582534778108706093121081877590470630635834701816401880595056652278778746691783302345978576419156950475903287460345099113176343722624994829360493104505600152387251621056181627232816854402925448554349480193502351889265291551358675409002660789579953274713574001204990252038650878649083901203582091192659598651478046174104476820902123326509289090866907464922126303055624780340032140191694035319467020382665027147186919021310852030094660940090265517265190579120339948190136683090524587196350523241242249511817686821449490388429266429292859990582613281126860489730917731172473022359247648594769141032910541908034594776009024437334796026206685729003206948188220526083219760641238255249474013081483019965967494602274504670237603216131932422835712985642565393353980830907298259030071979544687165695919951889143141349544213179749900315338446882591318096449512130294873075120612294378649231478730631013826792486617978421804844051152794599700049664556865906945183399098572493538769743146812065085581674885792453479989047180000036491076121387258089719980899702373167833849210288921770248195316497833601983958184004866973716458620549590534191018846365199830420573233416774973045755639661629320746888187096093054926366900632879223086566356033686819551832770041915476425807400471008425843139086592263714829911961865755895186110051913265118712531184574188796725584464271126181627537441713284345345251891951169311928140157433011145364956969140514800225759558129952761649934076096255670259226344368744216131509206734041278360112026187399140157617503442566968471041128401774454711140732385882402782125095233683274475199557434304287110793269131316894742153082857062673713350540562652100702697108870302638649996922465230346660876487992765046228018378929995107625002999040614270916248671350677390755821052362341388562323443656682655788895984281302907106426011903162723190761725947746790721813435951111945167740242279124038268624159199636392376056668818481993074741213500486227513543106990209664806088889496764499190416265409986903798572708441018493622869788691169493755456955773004539873687385771869864349282371773490601299988068299244183313071061734408736351428868024358874360447978670110240476097424174302094705453619013117671952487155671228743146476851205152178996588953440131218495431675904886626356247418166084772646687358786110231202873671032755161984959687432430386397388753935860499976135214974749849419445403176224031229016912634561766054015805183981311785654211500683776259234048978915366319605774036503796857783699519199615514128991860551509824657266664178684480106927732992949742587540833639033860714495221498276881575248271243463262919511268538470715657103387056066249735715847929070243122018954069521168247361688596943489717482621820412239120932112721179863680519774505334957293072056603756060658832731985776374274364868323431377244680942889880996448184522145126178253099940500666522598928582318521576604787150280873303964176370218372183805007046032940823880762851406612590433151384484062982941485085354851114224387119728473029671274622443354723442770115038396972936761859729143813338516214502771483954125466200037657760636346243146591817498456365078438382867418799784961305102417548436704644300384067959202761326035603921723359727660825050628472104387386333454104994650852822147092049303937933571906437747691151452514479189880684644874201550549445973128040267675755640199447401944570980397316633894385963972727453093613729481364835381191257515250756969881141900759922041169306651665637055876458697571643113379538594441079881883122081870654084284418303442038874742814568098160656054852408924523754039947654494474367699227253594550563672485074597137898504743985702236013230542663296373228282810232495387177071455033374051765024461431085046545172631376587039245335034401160847756373636966146893560843058964150415439755292872266418639857229080989087482172899211340790134107449586437020877804328566719424795138926320193147792177740139492242629494939396064285258351991494152269918528399487208499020482468839951886664337614069655313733957820269240415153967947744370388462883325167266931838040488158647489138831585709590153466288546123546335795656401175629917386484525300558584982881577130462134482656452897253202460771096620805802178730312448957757683870297527293724687565748583294349383490694890259089786003873580036732010341486617820597414719257344194673228564093579673640752658982238589710954948629791172669136995599366036129111554812794464321264430420132579119805534208800066834684699335636210646165199875428273465081187563083438106348803382699808574951738690213054502578262887970428191233915304833601761283785281609774470395823584609780567312279431856342413120384852394014114250172823251481401352471017189020740463100059494288358237200950947460372379123633194511988926675018033773444065468939979084102691124881050859327446870429556420663823856409493450175343267632375761537896535565958530368137389452167961742419511834744401327858268969407380328955575082269651176566450202315150531616702623580809969443491754720295003304679403337665085659165107708364719153837470681222908471586434513495152724799461669383247168087906185058675032283979302099638270153911348377742573446499401963406870866927898867652515743443717370452577086160691222393396299249079091526045131953700560019855016218972536988529965577345469056547631883905534261571643936610396487629908525447163868442632909804314514787234458160529100122650319468760063313358481556084335308924000008119359651092560642111677810798548555705243016068630709007724817076972622560230668681261146022432912902902539801449753585759499570211552896630130622476665866677388115150252195044391634814013308804161968291528051839538268202824430677654138268718661107571531235122942397150568005190151136658925107640912226591897386025885949955869554906422205315855742516774256673962974867177308379863056185304321783981721157639441144953647497443097650268735086496990129772152842283484575654911635983331206883250669565880196747192098854382565437502570744236962127427189487683062436339603394113068652867191455483505237997949187531187296290026691247429355431524824324205697216246338249979061010255776083996049570728504384427425836199449527131343017948049723005926978846115046135044964541328279554002547568581780625883172532906156084490307235604365551983878819106598794423779948680584223362136913546535037184598326679382613940284867555311531769325442258232618901167795142352826209275478426045101900818643019697343435167605867179483169115439980185340321001308522467203253723460140248245631356848277914257196839293085313814914004143590966187946729422095265232759095375839310472167088978355487574574263991365082259088764431430220930724370053276656431907610476479291416522271008976294003641410267101587218413679415381668768028569620100435292809175436614727671203853561938540680141197559843686051355926171507714826596469835365284865337328248516633918123936971072531364208260197137567728326580469478424998991733650319412978335955034807756637469336381280718971296498445186384238055753271697462962399381671702811534854392097794728863075190039410163328883211383718396805235369149750083046176426844993391771039579404202526847137051819309779522026931040908495673248194478891593315307809831762025092493481755771560446300222759295752899193902089095267356245188478212198598820697243696859713941137055445060236563187014872424333591473045243268374423690011388069921530011425736988254700128685691889708503338947689098993576763542203181479512963906800665993427108511175445128600101750807662458793189969126277470922525813012283969886525297662079594478858066760561577764650045034161649446421536292846486355875231102589900113349457410775811815862428658272494750521059208984425237760173924147791190285072470653797274907453129332522481667444821986240031953478664985936803422023504015944607974166082908204591078134255061335831410685033935344282285193289453111728793752261718347934076037712776529491712812273824313720513050982842469545788172680656941649869344257993105568321474023097268292971869947032714309720770875295852229323460208715560179763362372711126210799131171914060740918166977704484374939786371106521992749249529098779978448396576069941787106111302628011640778197758425924004745548653677405565016310510763861453757817825416845774631021749649672092564490829378769522804601914165425327040766426702100501798480793073046697469483265806709252299779851246752332025282485610362817772375977545702987774240992935322668063500258033785352666686039345178541422255146076713517703711787760893673443081714318087583944463443678838665475613309267948824601993159223418076346433236373891424066160142811686067549318244623844965003478639928946544116650351531693101442516671462199501967291433804447583895594275279523271823614937583296263595409596636629868657298147919601690110080593073240717198660026689847997985563386348337153105288352154978276871381063092801320395380646110140087115718699676874319340295790534698943416343711071720975300508802912279895895608187029350732556139607847042607852627542280847327669844881814975827568942167804633904171319197760639943982907751816017711510648076533787081351456099386991952699836447300066388537036984909227698191744659643777968538854451402821024821749150764446321659923458894093711990312724308832544936316877231139959095580951018505816186974947748511605644364816084199613693974394361475954142486548030204270640441451463312807636728934387368276994303664357767315363957241097300258150421427758682396011155051544228769491430431555859256579905167189357918388038642128852488345489642592351198777268544324901633373755782659185350172825893606638561119850343380327764767846848424475873511451825778245741575104673711032822038773499732389151155669444206692360740445852301569412053413533346750370172422966649588972047902394610511864553049136458956587678603479040249010476731290174632619116496261519454505277401332118705409185697551822448261278683216885871869453208848806652961139121999138850573527139024110597565939616458013438344091057509052025786658983248757137901070162118896628849359608590414574328689406835572095629873024603312116229193240884835809678173464106619857255509596197211508467196604955647298311030425315248681564515918585719483462442551815825193061586605617940177841976339076719949183859948337061990540179887304728120870681232625333322086248124046551295798941261169461237472222597753367869315525722906619647550808762495506983061283959842875152645892289574133989950397538189094968218916977733361754756726071184204170205263041221202180744817533494319806641275536811744600644497911807935368380482411606070685788802847470680320367434233194396134165720981478741856464453833649594393871561256478676881993448980568339740523363270434876167151058470523554733331846868979037506495495579106805750756029150276005023783426670878145797042135497140356587702684948824304312113490328274956528162643243112835891832680692918814735468727819900441830063277489049838672609389362473001617294198432614598798553289534390976067466137284464264180182952133159177413734775940338764696224641132701167683938120880107752984037303345878109180248319318592586627362008645952069981626331043711377060837695581855768864472337231614452540730840497291096696991319204189984807450086165020567599469430971058376144847447922183287741939863736471482181582566468312781507011143101857410208445297232178284083731046278092111103951452174549976834065096982332176189607546563062926288950430108145428663366038530759432632544307532913987172406937612785827746265335794781908292288290457486833991790982866131587837322578615634042302877210999621247133563956225812205422054663369075491819101850115531899337246529417555950201877004267095596690747153317054674734820749136289307936484822433625618178557741362832055879086743795450481849763481110725856680367772175970732453734740196201252017897169673400408713358094840525439920845129477158888726263342360113664962689730446820776632073530052049728989975272033519006195225658822843386491573241250695053867907555689406884923851507403048176228989704753018350664379290542079844504651304655878005285888140149513658193812138007932436471735794254368168199903122947783376826036503998721145367437354894000053391137606477874759799416006420306529623791200484382385735894997950404361102963685412230049087940534098812709728308992596439488407492077105224618576592269024514901381164562430432469122804626532504976281910151440633081814841510657488537391687424631567496002422305619146511872590710199680172736488017371543803726697622035145474828553148156416518725056944644117063886573106593044988838902054429280459376743972467810345842832179388636586092075453985882178105151852672813877126401613678900778952176371765631692126472498919061636798131415501430536152963365566420387683490841106497398912453375703123906381556011828342732795255435788893739341805176842192193705660794753699193954443839158176461399410591226186957221123035794786072395709678035310686429131834489952564512471456682775704413204596562952612131887795072318897040551644894536686412234875333262470850497366690110717721865808553795286732897556602555000480978597892073163064989037702209325891730750055737715202947028296407052534779925291557716119572357962211620229774389544479108322956388117107664469822342549047569183487549224252144877820123852466172719537414379685010473121392791407602352529453203850236535798005394218968242221889616904435820753383866319732415448956999319946295005230207781029747772287094257235988105139701715466550012878767274103229846557394843349321649340628634041092527317117875319610549631522350709284001330561636696436176410493924338860263196828640640925423159286506722397699035251560561498159655869777904855870374392231039475829742931151946811576501608012309743212381444448233885399039397107327513176217705278685793813780280686552306278904477135222713127078951680110489236259263230980515571667806368371847853865833419658203170347222576504634116747464510755151874536433622633392368695109203119372656367511215540132494609741393302597198402218678651235686451479288133287356525062907004712053827381305866014325210290419686821806227539172518057440376566458707744601680299258681770493672856353005825224460443290161123516117266543842200160405104441915260417825001039897164449658383962751807657997995501721327908659401625189792933070625568236058550615312625499664700604530676586010263746544329623661722660360564588794750578297333023722753546977813343914927195701502892273498642075792337034224568690006254433294160423157953605138373361732711173654607399310002749852587049669330626649322930953635415752870767161225908417106689698410173234929048773080330547478055049961789649624818167430246448355137383672411661881880795233727365494465399349942894924494587057097712647304203411118584456564668804323600267131184977226576134911332865538037443692122708134058193324091760501822831578088378386838703749858012783827557526868963740902628794379189537210992262873319292062422942289012186652687939389111040229489799363012812856894604253698749437686934619158198881650866645211804861242178371447813342112925582121581626074833854417461496351194384215956579607104063238681466648409929925664010285326085499322528775544208171818103030001845276869414812695334505058742447373797023422888908514614157969313589296507546030191734877940626819214855793551742448526711966857886505881419021459826781415912496729594538851660435556169712768598120269086556144481110671743032079027065848226656231803907574030949969831327296770948226034716327868605724620221472815045209487012272264191105886407588609551318891028072064012161505412326034415923758644636837411599330500034178600188286030489194501245377747978210611119178604135297652283972977135555608738922430688920091893953537810443650116898684849482315253626559087174584534942341105663089883416568785000176913381552338174197850449895041242469917771995589313996561169684613153580195577587753586880336452381429717101241385338715319807059163478086530105235237770729320473948252331813511108241732364413237294400144889732917333316236619583990100220958795588110853655231958541797540948061320920242180649039444456758617620921132315986445867849458415502124518041667882602210137513909274959093429656297127682763764365668645247465029629436608321950937475565439980573088550871579960765410468210600766443804112539514376898079471893322151769105792084754418303530671411797748338265596506502250074299627627207564616142772166197430632550564749440739963575090395786156282398995842594973399279490870085223216936935690793116498918652669390979417225306919842961683636226619405399909736357725199912849471039110281906319180189472532288689961822210858418574128085110861060330698108316054309590026614249122569880799111152251588181394177487897885565134093583823227659500842787411434493325799944486370446344582137499479709270931650734656231554471712914889953870757802266546190972446662200399583717781821884678622162680055813783272666971982029219626696741632173537668773430533222152458264591705647821958902626782436148007772629856693703879204293283653051452448639686114091934750110831156982665716596755398007819666475191039178226443784823732039022071573380335382807499916223655196231737124014399292459868536109526633835742592255336854643644075179150124451575804606956573028750720452929889767737832781411649950357342538301942348493697063554673532410976304587161121375149487840165277673673023988779002667483669772852014463755745378730116163190117887510090049945768801837160366951918552204776620453473053384463002730370859153775935618062366287305976168981278160631780162998162127725377689116861906150205093836492398001641487367182916875049458742374668262739356637865559281243632308807258892007224422655599728970308601332996601651368061078645915200697473697889114631202508652059743609068796245771381719238273512115136180068449846936684746734935905125162541199195822664774231800639414162069706453855952540193785710749991879174461727399447264399574023550421376656392183721428636079223659622568023217829021689511949162906997981362974622578936747043313170873252954590009120261856129892774596425667720120853313458687412016884648217560852726536423701365375435475891676684924389117542395584869510400266092214722534618797816747335150833365105170843522614695395128919465414196641134144252210929756556466496085875693290022287010286727308734838393437572419737393418427684414198090339756901474748052514055238578006883525231233178599190857797594746648680688762160674988793766991892189606356826692719500085249557374171355683815086977617711690877680332176397481011363914723745346549805937898103842351301758417430733935933137211709479975011255079658600841348565276359891907310501832359644638187491206148170805803567695232956490029281855219469660144427565412795616655544002623939266141315220994896068539218658629711008021189009547805973767232250958071252636082100322316897715769156906264042985300105989184168836109966863066932704026278023642160951972682062691780640737659314618002292932052511276525936438128431055256491505106245267655987251452137473152374307001115056427003377190493780360016211885158483391451301939156557146462938261899331103307166141956523586604464489629543875406711309335557500727705838779378267610563318186920570346547606388091454211010984112101983209217259538559932802052128278064472675315913574841800916408808959822306515437390081531362843708746021712444515984712047130125677048930363601593277524701856163516625905544983529638938023978760779108167664728446759980671815469429558353672527340362168052290179243432633603978874841981090115858993616776267812196482160900543519059452066761212317960532582640086215036212468912512726119379688271258702498032112972105988272335747658154702642598454861791591396463083362698671986337984744645588104220986860242956475046144894481640264971416823174616298305499969711860895544527409466574304149928103860909602007017565345818874476723253443572889287185916369479223261182555378126780535217163144953687404146716528058213459298492659428145896676216672130458499727362102960116660038198324327287416418114614000121821809684763299545481934615219331325356280883393442440682208495858535369707432467284117214863504159331314951272980255535798619126941934966318298660458284106045935527945929934634665992630715529145238613159612125976730080105902066572813180596324645119096203519341399513241095084044725939385539722806633975890765291346604999083645163169046697545907122256410067266987024832534863918543800965955665310904218689205327080656765232127859770504130268245990734318326623302381587676095925020162509090895360657084782906226180319556632002484811378743435920534213792387831334014240993356229659168664470141055333961289005836192884163501710393667957705515754590247707353418045177443865901368903725358103734317844324922885560630908276198085144398995142862409476585515048864354395285755443527969110206832730004999274363363983668315806889567868893114978419900189704273512710569765937560425049092849994893892456492244636673828740163242545978770796878818762597544965859554838082721246082997057531680139938509016753958036403834618740747666610794364469617818087544199457931907706755743528237315490336990596837575043915105898713673399785733613695423206715678511155039659710429683682714017265262078308924164901281039849364854276194541049767703861270681841652787032731004818352587896399078035446782553068281722978536411312028858557581943703476789695957080330509931011365138140840537435051564369899673111026621047134400086975356143001566388116245047332892275040291507784275806048278203933395095069275566690208720587136597246039225683482265012357521233555807849343681223065327708467596327548174319893298069084406184074541769308710404078831519567664448878223716413781566798127153840579685878441356729652353441208181742666518484115235110293527975404240744352309770822706122543094417412847810129156158461665269555630827695266919191654959446477141178932151240476452331100391521881353946251736524729798243919417748060222821762007093765614135477275104628868218634922663379509117161780266710254069247423417783515516401208038974605423421910295366070403022912313091876189731614774682960296348770659975930677741525762029280567246397032893938830452393103604017733375861761482099363371797211947447356232549325205944617454928756444809673814983323547017107921433992865686452920455901616492909855120633297689743174228659208494569398995167585148532581116006175976674100508187641058413710810128152613439445761548251707486429034405856498391497162780933402032108297405100525021186225823692388423910608016820480180184593398113093571247010035333229570797336054971802187835445454696779211370843916709868169506675022903835140499735166905317715086830376151862836591663294540530945456557118419643650376566765428061851228133912799096463908960545357025959795657859819481577278773801479610862850742478054546796930356181889834260987151270558462510664703677472811305134395277954183223857292669425274787773982487940077408460256729581329670139300321813203409713873688752347557269485369061707298042394385328698700617833422505019068634491859895296496252666376094656835349442233570687849108816974283496688988951327914544613340470976412386960261336379130479270713396249406068601682493418032246709219395323630472777008001491365278416686580363676632913337314296188697954580356378403409193468433538846824384117056528439051498576537330094582607975423596824303983065107225298300363461255815905694923131619611990086825444643605395348975544030804326597787491983813043987673944790348131882177816817704480411402449071693828516349213684435380328363687801362317162423045574809172818988609203983695382444416572092043297795073884091655472707496736930861767094533864524538032940427756289777137563867748466669987881101537656185472226230689731926709271344703749752739747662347868869550929380117697751447524708797882517790200167526945410213441367440035374641686285305109878060974600379743125509983473197129621240135288427170032656463684239058229068407901402124373813727663245125019522193682571499825873593174625583160994753599977426468013177462364610271401422515513233968222842683619195351395076261070485178054480708941017065626511339889761544794081586624501880229174376678883664484111917525010933368056066378062672548873044077365286752951343323204014443682164748850859230756672119502637702222044940182873782797541807211133313350653110665483162941605601170545808168273483773384991607988193899042518374323372655836542068777418510561565100909278029898600777852280884781274410172704270146296047124732958899619296307150197664219535383011013576263522466919273194961692962731648328600014249616575659016388057748976629921175841675680532660341724997896562239004930588022675773270605168074414061751455757951220957286074117932416669952359626130850023459180346634126489331478304503591608323331738418654039520457269219719860354784773348729956996490565247904113576045216359329060629820320197204106389452207023032522823101672084645825842923825168601420681084270391596075416381009939140459716344736512768427493354315372900026461717531723372071408323098408643642082813904159872036199814573655192344153486168951261732702314883242771597718484654661205603721491333558442398509579483543652680976420862576272425347485068427368938301052256456780293864915077977150730886322394140371801118979174455333351205463711879009498063674434167128056887816215016779374129616941817443759182795804656840715041357578940395597865127775920551008688976432175472239198244766003368178752412626538699286924210433285580366204205983846975713677790858303092143559553581480908309791813859814620806917786705343728075791158278330166641873362612062080343931882041209175114313542723861351142083087007932372598186354882605314616821344025775391159100411327696723980499606575226395302277386442885404464345754661160160639441473268986412714587222878666823902939416399069123854826407257891939174340365887431897242262998139007853525669929171951275175027792250224584863174667816584209181879018364065862408275033669167995504693288227223628826374686940860296456880442773232265286121761802978759345513514320843607161092038960728333663100405117431874575183487402961114776527418585934536114119740826354222455612018147640413645163913465076191764901518216464155586025559771820756455157371520257487071974237291263142256048648869942885361479141420104405032723009173898843116189608573147558374493392563533344583488092708963074523643238077959095379926317761987685192164219763310883964865440850994365746908507487643305863736150874602674049487574611098847360467364333242066862660718578726691760942732885270252453729799597402595347392001593456446297992737442094783045631351691475474442186175314746419542945205395664845069130514672353159779797521413946052114078232565839576104181585850465010572882924668892943190620634494250828235860472899638451643254091270199612084406132953119715833545751224040281842491235872050413771258103694474634841396664868355625953128394805084559740366994150381274162832077868631082293452320697555762980723500385690163915973177447894549286706065070676066930801092527121081056294345607377647322595527005195410931196021750945026704293723654754320851402630280956874177960810035679746873214459616257495665952734783108824607251161285229918968055169774649189411266778120356014549066201917647908964688461186023908596851848992667530725600396472705714199944879896878669253203261135824378959694480826763287812529234479953901843531950222169647337513025884101962019789874741317890328521114283573494408238100590208070241651234141791034273553267503752184978513014528055398766349110759949943475142273807708217242738048781112965074277224850568029213359928972876185834065433828410949832576765089988031571929405715943173528383319926637296141119925994553787547098450384785062921901887502788498107905891672346510645254908271312401914553661912652560655955842645581567534604288364645438101067097001476282867674306436574211953628229942043560729337123670871284176897887942760992061428605370625641342185383732937636520896519557411610044644702305698827225145420972951177857659983980683617657998909698464791829340037102768050376249929422695324804420152105047372268425750808210888479318592584221448258653297234142750421095324114866916060788466788989683318309105184250104830517588566154921943694425485197959235127591057413325699660202430569389100864260608720907688055981153579889425954413534037759084310462880185847315217078727635113665134772612571578197114640853241943140440390724300636502014191102382479071435376487712335263471189462568724772565260242296653310904122413458351794088263841102913058852244706952362010476410068051989273195389368750707442569474820551509999030190617104399037326026859338177445160443909873986000565257746585916072403479852642169730329412267807440344405492777140374134600633451528026756582710529332808808664328775402788516523265226629230180398156642024824587065118380349147582831766759807584986102467648997587482890547800187272042634272059212398579633421049282781195037664664898944835051092099792095327898373182266215507325468623711685304990290745550434300846945602395949904643659217310245105110350116605617345389805076711872944479081394670942195508151849881680560104838413025337080304966677033835450126671120100751909448799749731842085360453871946103598303077217970448778229825359321072759495640232553143405557286452753226275078124050751289808742535241122504173800134813348787431110870749470969770363755956154176668384499782830619868369865568429924348355093522672953503572750448242639631795066858052950499913305388774455179441560364878411741855263909558945710783454884255397304836580935282123926792873057140785688641025688170987933910830009053278808531364002624134525902498110182728342254855603219177568236622622692998040593489920192981521257937135002110899450252013564988271155858469757391258864092545264170092501233615002049321108779156648542578829854903480697484084669574834556840895095557106954947053376883189153037479107792181705740210778796089373512435003219481941414623418961540896866775836325346362979885922476096475010622018465978606537800530198203080863827311641567329708452800932075404920638412470386551755661862599238738435355108164533421896013733212258211077975704899332760756963436473720841520551073489896085821984823157757276391836958551352312678422642664738838754506658725498560467497421726008073194104038256497840213108200768098690465495964486494156093442864899719752429334845872106815482585218316408946739520984570188773960237282536597062758435899012034201953464860168769841460202563652008426486403696977096336052176998133740733791678317113391471635721117076543541848753860565740373508441182433586932035873918727647666271863429820407499127299042155143671430628908070885140325233254230903307082404216613417050280695051610855337974823042375403675254997541362245817003565138534544981574464300500155353174915591823416536381471605080065727316634690694311242022945178391081192146833921871502308290767780130435690175401795977763738567526319581322809526961715677596518192249264017901090870189653366644388592680615161607799106630190711199242088576066780469322382993757420640021216496051493843592822055547928362554220814953431389276007112903327040719622643546469075625944230301807666823568317333388029711460652467728383248875753518790611194423497768204925208395801993181132291646069716539604267013685845756283897560122517660080591164677165609849875413415915013257501853385515387737608136004480547856144035176754592682657225788165918555315133448673436913677431958598343359624837409556825734351676336033264010630915205120074981227595232501687788769475724810360811347273081232607202518689841461717774795411670392159273314251640350665312445484904798967318756132345849535124077040014434288104011137337515814695473452920342514802964987303078891024229170176616139206938189094201105593363904341064401204021187631538992876432096578187767179763295740446265706272380105702567894738255571076120257647032972689067268401918365036778221016402107128747452645272970536121634166606566711084998877933243245054021444000306203079815526189670904879296894439166035816604777441542859084385925613270625509461287862034596211633125432030817172125472223233040142441677802002284638809278187560790484362520815645139862880581573093827557553433275421953496562497573594895941009217675598243600940625623287731041474047004773337257295600157035583261822137554947368755943616526722182233389009022644108262569098912340210673543752643598406447893230844363095653462938752840510384906773663429173787773512034571594725405433481787275418985035337824311813965482580371098809681989645044424592266614412363854674395334708530467884119595643152707568426856735684690300589103397003889657810979438155721404710879061424838497252715855557817351100703483954036924940759534272203134463851019264169658663948282570839545032212510342497277685726064451473923207952869892489758144188634482303391394161063462697520680722270000627906939712708973156427193384849544717344555486047114585818620983484382068774129379893663665357585867694516861628656999946119170348791458865082023443965224584106198979558606699273212656426366886296384316313830640127705943495845594683456041604952688086836617411856940750581845972632108541489276738980667302142593909882463273503511929637845059837359049168882823969358159220388020603634183306780708158988843577129991624528952601692078532275952610665296787206233253017933567540291721440783104401134452711568071194396425871476914637655898534156191167826257156166542117763496855106705646701686805706328074498296394426846062720155126533279280871334934458013305903415465180414803726465315798190988056593804801190835232747520546300117690187418262691786581219226242251753795106223663632257638415883499842883583308895357317520974277820779160936615385551042319515608538232012500991197223231995317462984759660453261255069340175212011706914868224113935680448522107888485846762725376255888488773300489163218116122791771735132592610178308402540985081866373310268907961510151580251255160337617643406372971086649801180982156429531313274001345200193835805608262311904796139722436023384778848640231224756727549242578490625162972403904150967170099273755302315035685088613670164767650425969837790109385737652903482263814232314903577064335192813650890341569581150157774035736190434093439318986183950691438888824684066463641448889081400797784042676580317433255522509075190199500195131910662946190176790562260968655988003212920165464610804877581503935605314620387457392903297918460043642735279813688178864497141573068365770963987519721702540940887588140084346739027662990756187954343224255515786286414541379086624627881870879324372405634171642174559364546223284486096149877795264749742589276240633444263659718096589096862874402263439018343744031594820271426499923667195524446981175648401781731043779662452695206872605872699821445481181856666881908958294170612744824465419070612444506042960375451831620548671072683726492297992656466687415128743750194170722602843832062812875026364018042351142169793139402924734073272620522455647989381505275236153030562417804410447102092789373352929031955815446064368615350365902382935038479711475093122008557036496656529647659500195115225858701828544128558195976727117257407839130987252800215824752557571825474227011959268062931768980732905503427449362420317907095698294934287996915633483825099166501704348466995449182776969497501268710623728251443381357654365869987615606308526212788356611758652851150018798995283074809430059770656185290161549708929920330203955142085258601994286274847096117211675469751639003759016799367965801972159023736976122943151721596003319335747922356417322127744206504086374406108411968743689522727854089030507914602055220205532639041920734266140858941477172149319324354653165916838063788571958025499830277595868693548479834479536192045824549457518975450108510537344442024437634588088442508845516628819445081106387993828166904313498086486151013545762996985853239281738214672262468117626503268665392547333839722311443525096044085684662760169528165130516463750001558305774594166176974100442756999462870270243674120607607660216814034346544677612578886288253318541656653072228452276462293923705914844762613459331849304552966907439062945329753475462209402556326016445587197043221023010463216833349966722877202877286635966346625288186999348711583986899353514512111871745619210394920345290703091641983499571211620109042723469742845238583616281949791056371746114888071434158933222785596973266315587391260862173490193731783774415861420864656969336730884217876588793684748481607751103488713604393097817325414272122019671682587860408834710471306587904412023845774261018050131654790098622572449005034090643354345911050904648847894718786455476944980041929680562222509985143478125907804089067470626306084960751705487438154758463374767831989159251590157541683123280175964291964851991739797584473168788992101577631390236766460037927445033530348335637702773794465536357437484906973955436876743759018773175841553086377746511079996278752371291947910200817071199315760355268930624478413381806686930289710149816667447615247707700115819938383548763145745395190253155775934769428796895544025589369058210793402987316949062431102527310442882117009183237196673940841750584556515660406875482668443492814805225180184761926670589836816304894212845513927112443946704854112347618468782279323867282428834618476781995061996550531781145061826037201667761016640902421369156518844306265880449892756845363047231843270867577968488467443429510404905043587379732337011871654360612801708026163764898307412891344545167115788055466588241554629330749289239465188876502909273878498586710464203980256138246008175408629792931231410679874578568333904647254310066293379022955339278168334174099111180808915092711847867703015946891172961988637780866678663381020768298562321258528357820663191608962667682065231478876686348482978097485178226416859524945741476207977829632124934467495439702711227739852629259434727115656493829382779536839762130718608581135459350886293487291922974904147641067216535428781063423582341507339737415974587202715469538947447623414232558059204701038826894674793120000178099470996289500997045135420342768080882789734793922637468263894446746638977748674742242659945819383772779248174699462075546266497211480116648237206318806796073447690130189141748733488410053332936375169083157039525133964136923964831621218750495154398202025795294991289633973965386524626618403933584902972295756311177465161614534917318699580953288840452131525004220403180200554141393771213290430946610093191338436775171092830744489127023896591749525854024624964868461957161568972993300295423217112466342030318500247638374435343618105967510053108517589562411444981815398411119625559436058678325585446032550273821047433131580208283317365385194924016380219611524631576537075314018661058419771392819454483169587807402155223471777985396431353101832113266909201069612589576053061730316290990196632734839724003094798067036562545841889612806770506922589097060557985173469427104355879051292373876476902009417854772280064866580631216675387875927844344024554330175771578090547072184428490543865428377195438905627925445513505475973155348634825923611702983612142553744255914032320785255208853950805238300521616727529058312403437279201302994400637552273073346952693810901506446859988661601912677745396847539570303102270362013385856455753515616039914033706519079696369120467161491030169453218439080553147806922889048600750073422507408799020577953724089179081712893647779225174410466891193715377992188419339760706332929526635928674696701402017901195376437930439972932841323600217551599148752511715656330304347266017379952552959351590258834666692108940339096729974419311753892359968725138489848997059353798561521293081177076427545628721788702573353399168021323429699523507341651641731682624408727781451808028172874756723606524388186773397257394152110166051722290721595346465452214580921354771620453905083430178352323387619260495482454548310600336068296729754491950472380857493495713456195018900541334897839137188463139878868276048072513334396093412178621727549328245313551302416169616190294286762241294785062506338508187018701328366720487233979461499117663696729944957140331563504438040326625664617736583299758815170099168713614289255823068300790292549742870518974581313584824640554815144400049325666234155297265612248008127336229268907748239272026295972813727547668733503980969419913513429669228863749625663287234889753420881148863710692785829555009024996715489382393510577373860016784806777274767914872363120860020054121649440435441492301502692490761466892578568214039135612248760610219442120081297621020128769771004070136707919531079017743978420887666158922621197248319324658666661898333600066951166828100484426816971542552341161915861447470531464341581194474678694874719299930908945319086301707533035644327409303193147061667162316662146859276500402485069024465106684533966491241006236491647222407677106180537178409877728312923167886758253783682985819610922582609552674527498230853653167434951861810040092152326546073458023999839109759890439117142334503682030025115387470527881014477727710010045295353383718185368361229166269619074756761064568791978109776995854205569495430034729562645969352520098479280186464577331011313878085772970826952985034305621417465535624317899147305758541363110580228338689925278068118422543412796897193481183660561249642680278565804494951671285816834708105293600433740367090768570229325341773256646866127849342482352655328522591799174270997126105230335196395460686311280820221488065972260259340770829497676534741779859694374049029063405684875701250710514137331063439072569600614477142285745253034782314971951288833729918440639994256765415978081009006497628099704722435074238824043687681927055299247660255369079701066532019680481940069110531895849554467660029244148344678589721064869400272647401727036080954245491124098956452935625370662122258844326143625807252722591104697005609949137500402958517173008961417387009786853344080507645949365903884485218156214277298315155613478619926249527411295662738686617332895298207722789605945096244000962702141032085633698471798768540231576058224230011498863348360263677363131834144892991513136327548000866812622806721809853877610825224142377561172029547159718931166661501725682987486298694879202771341788713140562626439539574010639805425290710888158661959490788571603175640218774364987929329864367916187551383383184979673833823714382176826957518241789851567223581664338967075378729276574780315145944962390225565404171728781950639937095860146405683469954002287253250720770686030236821869971116394122998717886373001685536254534836772454903400323695809060163587450400303394264445385910339318028807755680314522315194760996670845967584244191535427032286110811160840199235550436139808151041066588513555701986979491856395670404013987156147286307953996813772740973900382521725378184407739499125426524283952466598302365410492857682621014548506776023864976114848416018459648435311020047743474533794787335772776657389500955571998771053935773396641042762068225540522598654869549485112457186262018359289069196379019642248548057520639225696731333126908124693908575414762466360051845443802790517846259069793233577397620747885187687383978916904883859189680605189087932062904373979095366294471758921231386582157643275930317594353497894459108053444992005921205100928082538890376392717340935788493825341270406974100369688899757498747374935851373067642500292692692757129969073390439400266559685939180256790726323257981534600949946989087492846844142933935561794245241789377566118413952993741177108398351216197779667388669625389637991260728792933788747674834044935085298423018101001442739986397213909739886987279396469615524686382182302991186085642625207660629350634072303417277988550667333050574905781704322873559075106097865034197897580131921565402145368139545776439338977657896451131453691725991533064167462689600705680594881858906424744807126896704637505417441251716871908658128492379423100149777068249275452226197302771106979466192615365651473929937001818558412927263463851729493458179300870194652402311099736273894382374514561261099182412885918605663928532415335483204310593347787638155383936852807709878589372633223399995702635922209803607016752070102246558633968091718342620963064992505578378396468065717830570313804135091450169332661474750396729966832143677284276639889077223599622067846883368067080583703762553996814339704412898369682280937183464537231483965930582926719399454477419330075585784958266203736431478242030965425028649084711642943441139014056997619029702087194416371635850480309705011878034243539430237982736528436109438186467306171949360682905321546397049895402527887088037286776113024680763718360055353468313987479771865321820223397687161520306287180646016409472026831570978352455605808599464579047701187134142766030580399674526585201524404298279214787261316129132090618108855145186118111863315450457140692668584340884056968314750439994971318990597122303342474821940619986948681823343450059694652935862194518671928825955090413143382911716266134873864061412121599634281499732119499553081422317086537457651105258683813642097789793052178479725019132580211024183260727755720926756461401119734962817156824108603660243816888940213219486980101855710053184408813040084343561713381949554221844548872946676664612949615514461668013358436103904096636019240505963657282690573888754986263644270404474968748125730576528461256946572754431248084973623740260809245388854458252826258301001099382536010040669599105031975226895542941535873781829401031325833251543442708574899964887522938090153702727015080013663734131564426511518984809370256632141135526554717700150588063060709591877521351235674110506213120123212417729205595835970409130673017696403101651136901372347879783569646518156719639019713996684696880472481024571456086829092166676776418935570663580264588278689266114584238486860566552049038757004316728831745355931746238276393386228805199373247792474364638758334381426881047462986742206996736437381207249248654562999523147995385935115623880381834867778367917580736035690741050356787883327236610641713624193622941745749247677454369982395055086428134156699481460937056144840393870718534705579487021341785120816089271572093303549162817401510339797961647500840855596014441778915419493020203364630890620815561211714522958102572418241756318690167655393831367095188555572431193718934960158078988758478550421604685560376255171408364172643432039879175137041727903068519069608885632000870306769745332650471617640955316855548605665168032337154267560509077412870662928641555615363234366571918687099320914295385312417513720067626446607628339918758165189336449821997602304892120807190691935629093761449692765973161091535397856463819336435444037458200308062817583469815530645163743445477361640128708477382540376926668806680749611883464635533771988636440700443622396133216000200147030842753725732450693719892922574431876635205716210631259268297678224955642713197595934286898155543675659261827188284084524502590488210482478729405926017332285203734157027643001640078573785234726897619943937050337971134043835149096653810437737469821834803693452645389002700573155440307459547398182420015301768326790873432596725419109732056738983268884897996243473044630063872423621647255110810085270254165432899683165843368712829925903436105739296191256946942850073329126159010690650475351456636820068084647337769847221250213163266707211807209949821060146277148273572929577727078938685406188923837305977885632488958411197918780667757460953216889912011792583934032575299533728143884130333428145288440141415818082580855514534839206030601359697961313179622676014445920131408682354138179555629699478148009530846595517530658225275370183292629453176056317983671748147712646606576666326246290331476813362559986133509771583417615261400932612507155792295345878696565749863618910062073677842202327951442748500164335267462232317168973294720237218899656170311831921497916257036818824080745361372110159797883641803653491618695482020283545103037388996996303095469377700032969380515684273696271252405187882477106913350814052491285479953502665550505453903590469394685795538536470276398465131085810239476616952209945703829772908175703104014051473830456978290463953039524286762483925825552114165719018382086486571117820882308702669148173704015979463563070788240208098746764480109466416324999752497936987828727060328494213512237794247519409682570449601095486921915337436744003951506966618945736649416226228012631566573390235406615647311331079570664532558521731640484761865770642306819536065492154316855986596238399351518489954258477993638842243028830331003093853301881811685308700352227125542368754088745234335175756907265462628235955880236675614767979075787529551726918243069150459630535198431235898135416792037567694582203956146446557280122110275170853915296869233156068009227000499653170658230797076121887408790355178423688082517724430617080781111614988311519615740403983187450008270797977961927762314098419733696835782434019622904002300512155415144348127707060327835705659438975986657078981934998460257469472920047497205177055483973370752154945884413542287121899604701741460689456683145690840690377790766637355233998167243166096017453938581732921076410263854115819150526427921469619160368561040579451058610322055272575945168244681271720316503911933804981954055123467962251958681876003622759497846461880534526680953335959673957232550171020106243454038714312268040484846861244390331005827892594607960880393349412899822892791410294660399038928985745897858869388616406965630635595379634606017671789712841560653652048008251448349071526385386829095871410994952211179600068538010912077736782313599304544046070066961660731095942865120824851725518889913519277196648036731667201772473807606151776320019681147588483745643147177565971604386928604744742246837060646022127296324481535663721994573773412736785777299900817705569825078057717878563621387592743526423230202686575987804608228335977321209178292989581968506361029740218806902589590581454784391680970695394863472312352425796576832615026297955635743253667578725739711383837948420915463346629528379323876022671748598976578450777908188476064440929209446220671442663986521864116054086492172613625741464504580606750305696701191470832665055233649151016964316208406016837352670793987715492398202999844121602633386413203950512773192570921969685053822530386782361454201318495328390520756610969089814879869439439839434456358969656551176329897554966002081184531812069007623740882572585098839166673906376478170498528198967626357929925147750935289444457256371604594751474124084896095494195094191987642207153556509808004033023112644888678418522914432228327731300965489176193592263250158950041590343851500654124196320179661730170761204772219062959001956250401133377563372609070944754670627987914021923568490845054925166224454297792877403229843956737805037538775645538298535555525393262025601922758728816628636268881885867342353549364148494442548635289900109941033804065762181622716694579940572226187486038404821927796592831924418869117647639420156299653862915929226292498043098806903017671442239007304289499765689774668492058702511460160799018031729590527122256507347051637476994911013024752210305655451224678666127656364288465140444922065084512098279989179120905767356294117907653327202939491886269364782390942192642820751661679449245080509422610144595397341814399030816857256068488869883240588182107196201285101857756009979942472686987258199134743202404079884171108962472109759972631561229968570018319725055439010501447650415792305730640390539716895834075078914115121246189923377715113519416074827625314474272259866604501444399778024291269611846267688353688381808651190715602576930377460454113813352695491534852118768481567091191886235207718723902058427765827957921773482952853018362622935044952687383379510889722367957507910599415048792233736733659584762819765031872961931377798874052578028280103511178161711456422781858148202879040219638657805630792240506777848021608501190888899752603963568535482061418241263607434373740251427632442603406513148845951624493930759943248445435646103796678636881548746553456147710622727477965722308144114829007441280428545480733827497667860705122514796446979228879997181950689302996398307455300975205777570363110205672652389445934554900508446825989574918604891386077601168057523439836788231988801989080406641449861720350831975957199441700771123744786249774470988302412090265450857674796646199176232943627538042074332419371958156026178941592169647947340283752780553425059620388929596415396965900945723814214134729939977920592164089504195409933465366653332247285331790931569831847274643189703783158117317178822499709906506651806846558205455901112355308374060958963254228367897826604461905917981258733669987411812293694518406538100901034893178977737274251838021953054664048361540839153551248043392717675969735007536664362768961573092663271156760695026787666379413950528971659423641681680844693481195341553106209473179724737152835570912526406196463445432431118684467031277028109812665939741133734618582148500324092098645391063599004533702033260308720839395257964929303267928652556619796697697523028151850764830521690442626997158527716840492181400478148364215634442811066025667560736537245342826534177870393816413654026619340261911309461928961750784687654319509440715436833991141327487607827897910091334750012304687037977874134898256032558671845065790061653727573151074701599667621195375592478856904215518362991237034083787704007430902904315134320381833572323365139198935699934287797380914990844080933959206869044871012928441298905718556114251725532059689252170292743760671135258501260718296656385275947206022137236847380054582175017797907189310079186817351736831041554653708733001618415595621811610358073825688352167990869830689244953643338033012608188450137204296449856728121538253816356363994069602991260348610051562858610075634459096763054607547853964564704039698587978501116464586046649592798149462635654941954665613831320416006086571495752298397102518248879144623491424697482488374518765561174835481407941696409910658437017669470609365768058555441109279861013422748204113113980452351470552143498874291705670116086263900681237861012614293603027861778037741706758879390324819056525522749473926203773162773068955473451724544637694001016199467329083336280806035359392480733728985224906306585768290178526293614351316267673604878532402362414421717996103315582483526033551168403063203870108459645332191075687237553916082264509880924669811449403120940830379840774414596291829478455851913092443508022298876859136998908298618458368195118191428751309528373722127847799655084229906606357059976494411951335134778371109595351336914959194940428698693403888458163418730023129458256943090022264682527431249352371922860917201585172618192806365628862586616415303947254274375800919516831670451599392646346718729783984232474842880955428595006050999540991346609785684328818511278693470733668584242571753468436995310412787828866465136708093363461198628412844008679604267026092614309168851689988484127842102410812760303309986830413545617146243377942409941388519557002576723747532914932368436337595823354291413230185899837417787933804276851662523970991938151243436135245326640897579747370941531938574107869434766068930192276795594298192410214917528662103211671452222736185150125754050777519005876889474331578013790136273696146728622871509862426861644889773194914818321546514950966783540681280726937479898613683846623313717253147438279324079550138270527176102391027827823491023503839444348005518193534676156758435606610865367349898229279186118314277303070554025446502481475241492429346180087126941083787903456923684831777318899665211168295795917794019969575389483536617218835722465046331583554537126115829527777588262895849291935674411138743763386107183624856966812034302684320190094440662149646705946372478640929161876213792341498484088454109885096588330371607339581547579356375124012330577777852176216949108420152763060698750326098004919058793692513743725087185987593184671615692485903426969681804299924084053762376970742801663415520555124065582943039734545993230683464668368213081753048299238963324994745648306726380760751045601131416563530234283062814335583731686791387924032419684695513923666444398884022694705233327013355011885536997112805479533761221526117735865176557686167848027432233963068874479999440774225745577822357311258282491047167104036113321836073444458113121398970683427855075195503076874138974367178029761567376138536518064404863400949531293395389327194610095495303865637597130411550141726606875226909686009371660105575534441610032603257176669808518065567485731671671335469561135700218453259037676379652287796244358846274481741564140570406487290743789882570775029847535286119629104269275593818014501917688551220776974164125327881174527342260336561205387813167502010094221149617165534517983568186416480286302666700264306125031615804115343964232372344906451158529218618299500833023333354688216073259918491302808278413599063089193326820549217137969499314386247318140347598022080343504448671203651660645312464747771090170516439522305067623321774950178054332720303199624007352356296665697459549168054351447403524599621490469048843012467253497293731909229259877623312293605850257763146820540577323435344999509824394718593926153498076113986106340762213761012796803645907038569909167821991634728270492942683258981157367255589398626134843305928226807344359543171777126875353878993118843394344545910612685893663256002953476710440485542877971933351192787676027414399401730833760057794525993493847908833643754155563907211071793858748797878041073313882619434858324164881983501292143846865606061875170752558123064128541082821759524224715934138493578769174320314036831985542663949173949435624792116444282412019338099559403160508414992837402027257517918966629479290765169140608091640426761654023519451789659929021578069453201889538904152277180533106533357951172668251211705268988542730131049579498521636397696805791230515638158155527558004866800448441897365053438998701207278423709600938009317809856504688607007058382169278552172219230401113308214849715226071653852326938644257552477613472190211541460018789435487186791354272214387515529957613527536813812629107170387542537925657302164229766538061812086981460388185889030144506132820045049575981469003599880854022843958257858494485132951021118764554722660337621306335231334642340607011070430296938229820239207233165817133617547614470070486221539845578032827801829848169950553698756105491137081757577477350204539081545280989735064865459535126399565665022660642417879003604714392363404489622699098999085028582216170365287261693178012731116915434781101682837307620466677884500484069663048283942698908871225861398823785480382775758140029555945914142640957397001571594500450350489819359339933229522058937715684512707638047462649184827238359040828239639297851440134581729520518515217978659188587955402387184036946711608951941537779142533132326468652127100671963352442709996770500289443641824879086398723737202252164457462553996243094588331838274580231196033193492369133226304591224946810094529762905533040400391060383700839205650705014635468977197096371114044315937586969925451613048039505902070444353369467041380314801937087479557891615689750558111647164928161340227246809134590043588922667713658298948317332082664139836387242917874392772735669018673367757310782610129235219158195611151390831011152012682539749314726735334794910158778149638192087715435736570390960578404007865917866008027102052775965720643821150742338823203973132537607103685363302402625653300736035480172706178393341256190124267465260175666559246790572455801247597349057446876984665281305865336683311913650230209484781252952250556620946607839112944761702603189816081550927353381681496660893931445155817664852511723812695475038292281547356045319888160599705148979634497223501596838528965788759317897193277777747221253516453062729099924098181777485364595129199924346169790906946209390243262686478107503452409862694589675271730358507863618294121856211627122677653061239945501799577265919459796676012246904078879149122430749145601146583908524324663055112338100027553740521459820076720775805995582696353132725703054862475764698004170885733391879527777189315405741238958399277122687174397583496728973705316321059908634339470308752966329301284839614272161847283066571466257442685298275984982476737664482653274835661228609828658003562324592791130063642409462319534658642056310469885481963931484418645334038208290659309466101596261167113905759267104526894465073036237953997138150238480142169283080285468232394506175363819128705451830521944006170401343476860496117960193905118846467806421736314628237139686230025525142186002667746461676778920165760015995359704095176367083199951709650612808615851973086354155384010112327029920268527388777246260619848945527698762247272391823309977543796533550051991736241815408075809339611940969868579656826669405054955799547095901040132342626061893640930084186350555501347152253016160283100498092121354830290305318407071532094479446910155673328329348669096880114480728795467219082087033612106742601611133954112526519854535399778574275492744432370206910237578116481032633750761985682423824395179425487893612413844086360206481030750509398018038138570658081678469003109154751739040647345334100225803032061199913000291568929442070905922312757414085435578723504812937470417125092908351258279935623202425665754133499807516563937316561274598957856903839277068282451444194226812787427472436589130540650251144641344258362686679210192671462460518443072028215624577266117611476182760265062292684107023266214699380286318040951486585628423772359707432138680013065109704284217094417713490822242082847231327351120158041606525574625248320674482686812378434563738567693455635005438174874831208586733774648908879557000622775869281683441720913831847771787730267899369788019634014743565107188845688395878935046271296996288311030043398480445002726248609009203696522381345486607225458684421584231247572185417865809612932148573814709305278608691930924926683077878540840364423792372094992707072048431371070671337462641508739067064801636167402050902300344025413574209412445991929822150856210452986000187154628841712017233386464323982695930742494003042990644432619624472143140122739383481628405935291461747587410371711602707080914297924395283025405595236641635364788125737205149775927628877285737871199441360873479963330731005516413310301113981266695770301174658366151732919261248539475097659720264814914488302257069476755168308967672905318089058368521176037659847548545694619526331339246247016748097630735716405756856023680620022555462451048856745959301262393455962902994395088222488409314293647137025628281358435841381280602243776812296110102500459300230660228511538672186479331331315590744378246617518279537351978435577474818801596251226094030966781244174522801234655157681666222443176013486782220956898575832525757190371700340313315421578523214216606284176335741730088106468845677956573641843826487933160676616902070556259903165815254156312855166437258013520225788436965285735296123277534796176908258927412227112913711947321159334514151116691449902244880917321730548238176784141769572346305607131131450748646860195631551934043586411645515791481304144540007684356786662545758044801101722525126008788327187167229720324825347979818001035387331142137144836701593953281008730725936515011673933292753623916644468987075115398259336521345300102044124405891084599447170130956490448857480671250889094576904867610964648713176514676905144463463444227431020438528703762052376163196828208553697794707736581198812777285726711254724093821438809206536246661769283629679965931222503546332781969545404452564832048219536992140534340098559049133508410760535602754366389105913550701192660212287876659442121804648066446748118443718735191418501319200463822592053690580999080778299186400381831918498482587726339973875823649465410384060064906672806687777185812155816604726724792431744591382723256892841548860707870050655146494753572587153619567553640682527401607435350060807827958017416043752803113961875550089498992579128588526141813037504012200522800697906743144609683940919175258585516132178378195359828055330158645373107149929233380435264628211988688465895268423604164214181249741123678000437884905612295732541403046732616456901278654424223208029977595649823232401259617786458805751667571545154926709794764180687149486740365242231786823095348953900765581887134357909451088182787615848766664281258660044936497888212471856112657378139747491866511404993737045113235449644791185697272432770978049274908383203009876768596797988059411646244667932210470222096599512660552987741663509034459654536642232220859498927127796271921472848188411020011394991030108799563687184141555451442583614991539485977045334181167124816207638064239524707885136437965579015299342757113111642908153987404971009693717498156993600463616735107392447321290882213057357406763968123773808384320070343317286137924512181370348567844378134973470643558520849635417291422870671917174036740595963482522982232749193792042932559816716856060994327519473718915485056293825902039651882792607960687180117936141992843991247885998752259604922179518870039364350306628006604620851394293435345684419963310348178821807649645306177792771704565807827415440342658075911082868165430424228158557461918942692459175744681977868479348971181793853250808634992609292026141497827603483150136073700609452531435630669400238329444067989858143701763150828741689729444518016120235584817586446630279883282337508436259888146441288800945301862358353914095350110277464859873030561923102330578825502519966645360384725572802345578392635706821750032742686618458671903640245268631888099781837335371448707576328364945663914993442683710862921295863588605112493995819432494973816683317742208147186332666270245380510478086182037977922284658243641122913634957835263247637409406606751575885190179220838813448741943938522501711985152747598306495212230210866387095663925212413831128836531700336671880394071745747255876875437742739934955433076839463964181039917714712566600220460989217119434141328872581042392724143414114684007789411740907563453319285804780910270089485115343992223906244210579929882452072490083740708782600094486235196744712197765072854198484295248174589015410780492610951407402574276727358106438378244745206808714429280384971377423792875818936235549016442631308103010505892060064518666458166582224912904344238788474625062214431089164619589920526276533118393171867572715125519881759317637702928887673531700074365198870472038672860568120780081855653346401463273107759018479256087869889232564781436044715627382166941418826585146949099032956924685596459180115271549093485748337297153390825894781099370592384439869418801385881396239570712913568988281640312759543970290953222282197051033781168958398329471978103364509588758387210052743801424056802120179523497483441390719135683114480078384049989844020077406128680403439330896033850129769122473117920724836167308158225947186788130065950781938172725232223830548241988544549257613972360975403460416896783985260047949087856559754395169236104354494920911737390936356831187282102311765276568218499234947426480470871712632532507457941484403836327299160163544742106335311317892548736073095888411696843835126251325393877529449244563788801329986993369676653737542274359775921625984255940500663197507051430756802952232031588350777044339785668177560280361725177101544391921739126661427418278328971557898005616526037119873515175046207343314604890582184329461509981625008244394310572173532282397673664974612412648963252486570666641481821227897985042171353142809878558728608532265520816455975842179214778681902869451053531680570563806025040877081300630783279675624424485998333733080654957626321284797209433550613884401044539901279964001744058439082676913824520102588085227061352200745309512191017811070862578523320019891401809767023822236517881002190479175876783651077094453601740047275581166918745822164546866274653835766012294410375205902761245795117123622114232036577454204417064737931555222597031816586807225999456771265024773643037616580529432650579562560091800057101905104539799518013186361373714232568069362295682901673513134456255749200735832413606598665159035526244670581582095992261223416753311937401138836146850224047799127864673556010528287071423177465230653861133763546174152995698857080451046671264684647728765308390779132229986155137543499251830738842543923770148005749608671047403618681524493658071114286365593011342057034648168440393048218656865997353704144545928063324683386540459695448762197460437982482597959864735792740937298193845416488206664535962160498660800024328114372999194064086156107260552613314843186762724378564264462507475783006142062766023971156656785199899700675148490310957464933623630524702013531937665952916485118649358111179084962643178376944394529002335869119129400151358221974216308334945955077327994503381625120616632068641897351381065074644134169639026211450178494765437685946660942205264064923595545594926803122573882209293787338200352683187829231637027316085946368264585924260383582304875944699815170272729120365067499259112327734905994742578229173290115003136058534228585073615442740249072526776124015056236388203054521885819533784175976909589602341487787788859955760382570707523715494209481962084243690006362194338665681883717567748945168092037567126844349194640801600156053368798193565224199810438524991880416695738775797718697147164701610132979027232926348102391687079750812172655168072705187678502179963688818643870203850418407586817137046727817123864303751111649346411407717403308806155159098006622745035607890854725489000435481226662993093550463179301780924849230740376558664919127286783241800689453373775218709789699128827682484046758475149768701847945236042264236348451879241862400279310632460933281336436846606628754001333575468470496612263592646931780287228216698562393926446525303547573988713751359294300865173913109883414598877599569088935903316746524895496835032825229217535588759969350160939454633349518287769393567931830035940291433290688120884377817243399529913099691144386349694443913997254010306764182902500233059036812358944939620890579875274564405294712743442425932313016847786414083267490500040456179153995118095191597862710613081368548987089032864378954683481039657247619925207690071333519808878955244892919806094283328324900069907737878787199426095894627529521764974568059179185908700088156730151416484768373224798737092964568348382850404025779559531048095860093401979366539027600587322087870703311931347449896990817695104142677467942193786313109031428248632037069553638633289460531828562164495068966898810331494431622726748828428720636451861915618097378513161243519232406847178306100476081210544489115113348633429074825610778156955673003855345039227048417554257486543969054695381665375277777028429152327444874431180435536964396533350409116679341305787835206227893517997546090718657600986406018637387555272187016167025247472430974023480840529880026002522809601672824107450092300261326384858078239107122519347545195204081096454973908597617084364613581232466416173413100228241429497651951049226041174389206504078992109944013323765745930468735759351013469368911281799087956146050257063602691306246360252621347706866869724551608708664554365666770908513411158647314267457732449237333331847363233027041513007848645349166406051377514142807428179055503611475489199478478857368042378991602961011798568080049108461527128052631242555295876433640368304709315211082813833325070783105268184791832761775439689829996065226848939205844015275504136068990826818096898909821533175586191870413669763733864838812157686203220641236307117238846666996886813602313423645367303527817605780812277205192750734953591553432257032084122881710111808485527104851505244565747470022909642909174847269601592240511299228009707236206938081877370356352726818640014003129123055001504838880395271102942612856503756368458724624998169406323530345386007538975635508669626049431842841358913004029795792568779322805169174949407313367461497847647752405220540356454875710875056814711571837082578703841497558411840478797620174638689742478842804657284147800754093123589861202858612624388277447077751008110186051278353275503380766916172203167762520316654992825873880262161658156434493500164911113117187330294659514752676604618184496972299052695671563470830905137336676771218803584301491612175200430571461570656502059606629564019979064922631260049072702276469035368675275054394198850401269883159403442850623758571205323454476439166804235124957947606760896058890694581766128230219447554578869107762290496627039832491260327764888014824218109759890498904821289257875018056025585686867348114943742799639068344860353574518232367184639877489056978352340410228093442335331897734302108121893393377729240223856980734895519053898351285965344336761940058114568309059387429943818345695102803357869679973810659047431627432659766141990110177107363456344034304053960269683628567859195771288753002158950261467454730425241727207714635403261065734310260662353072707407553931665483976099246138398552057933239890275156068497094546721947375956350890184208484635466256008285489546752862141847295149941391214467901443677124904217889584485785512776605175449626490746447428613778841478067144465997629775650933001029653548142004476879250564277605566948744838611780215819548576339124762429603659867083434703506069255890469239138921465060360873173822376552509389373459074830850195909268481927201858742628406719219830704104651782516240122250755074282877209429690435108906803822867087489582332563349963760699521258201224306084179404310793958390563146817337054179711865562569270099639161253797845334797465964234374260814620065909031095780188804120937463979652664890174273714247752161648837899237721455693942847101971603002372350615206823296602214754762757972267980318554872993982509417611553966733360295113839996978744320340416593159247823607778506681927915571832552750093014644373309720522848325350142843406286041164873583073775409923594229384678426643218183408373047943820422270637200766861651357967703452714397826836067194046054048768103599906579616796820709034583323312460448739217305198218972835299400326550821114342838880862998628601014959662043360073316314000279849981813786032277241708635191552114327028364984227903067757712791358517717601134500489506434510006518474925249555274985003338767381383827417534960717555307091309940979184556890110312737055506445947015486298032312992261195473543974775825894835977307310401259622481183142108928092113492971862895524466081118222484717657452794571731357117686690904465115428022926257201358178612626666474398942088381177887752891081990917991816650867498798010074798286862889849489764537441010446431603040686590265756805295956254894877565982051623677966718150776612134124588697739434131910807075734608492086866564149267867092083241642328309240701196021824971103007664861528053882946070346729921504220317832796908384916596478861367289369860122430057536683479332178091345644872086255886198077348424640347431672557843302277755436502281881317150103617002947414909825293976057463646193379590511085084495412997653822121274886238535251845639279918049303673923761408461858109713766659981818346996652625597950050170945999921014300627289766457231127399009145755442539211865658821026690391382333268956975505947848471453813724620141497689672830638220064575449791048490792750901036604343190032194980433563494186638530520692317356607812778956354861053634188518608937362669118635991168465559314874316791728779471235449423531704298110311906443175758020241390819887163352116205912909415428531459967422916270311400003283600180486869936433881067795799772777863486680064388801086951751185606426089594913722234646218187452628761975445268024106995549504225593470633391215087001484849174152079357022581824619752689017150098066877870710243934170713697199201428270841279167992773471097324734327637266503973769405969063288282322151463243997424107500811983632715774639828453692839433565672521420946201556274708987728363410838121278828631642611979042943944486330486087350458579130827907696389944603681649362151985716609331066556139040049368797970056476743691825848662277085039399606605643509174421315001267219634067751362342790759655271219127494775338411662094526337083593450104542079969660079413604539308319431387356282698490568104058756103029050038810057910557608618916175324064441697786047546516977722683271042147187260270559306078685429008947314117035443363931753082798754699507275122582769643663065297507137109028317498750177046605640702524295691838588785080791279142240186569556219201808348861433995349702765667454571513368997100209090482834973875716615948166272419047146946728654229940403996526350132583859750311523454764901473067648134031097040584773455039850402527984524549534144570071547858656207892794460497788767125178794417973676642796642086466311158760851376843499194876816899232364639506482927122189111187152859392598018319108612621141556638203380762315313213596751116125482581574143955472513300222425573142909874888406808055237638383303948839815769843669345554147883480395629536667814874344073197960005736979194828538520357484742647419979092383274501135648789323407630833011490681094785049341872257401424612290173457751537302193913624392852568861509683067079798223995552754034429453778410232398209197148201074082419403388871629262508093258799759050855983310412443139325032755389161511898050443113175453222946422905904343562008684346795502579970098492837666976090442849193407412929577315582322324859876387240142956701248306267523864643457132214566137580585596635481712457636359990080823041253078433455742663749700449101029790465909453422769558766135578727914145524537312457193740084280753258241149155233167089714842939871785812102434350022204669541633609345718847847972625479266871243680378514567930936676420781238415503851856949461684657562010738694503783685202578127580526629651767368188345864599760031712549114090209357659783696131832457753161367251922474968763634094947446520501156604039911846061862325324029447232850090413828034964960277397152889766735710935811530088123825628286674400006898159712527319053021332493841819969393370583584555012811759032952028195535524949071438351952329239360166259915502726242478867791414348621651926008432737068041196005402383496022973220697966664028566177409081792036556291876889564075912633523445051769563441896687005144778351852707042956241093464329388020136680306894670154007098356701719714193204123228159135584884608702709464079977058053828834123180415805397690068225626913198616067441731816636196215164708480423798233628538173827464113143744549460988994723691305677872126492574214241258187063653459211388292584273785788895116285717306381066753530043366358333962585623127174419362832038006042171837849761774650121274010150170114412278931051702307640402241030088377476493555656078355346219821531022611138243135858685933328310271756922626224354592456585177825882094559892394317173680988828597296271615737766548310733875457981312644324077536750646527951962796176491365217204121333073305196696502752972804407170503805864060326757838944999908215325494559949679688718548805847764016638637198076051936935032059463198135549477244944362989883085825623136969618075305502778949124375974682458642071268088301257970003285524486545801907867198431991467185183580848823489138805147713684989125615337940993096151713333847744887350146763042663711373856829622052489559847963475535484701336898135536434660930204200563583383119758952604632805100912706634632429417685302322488298049780306736186062533056074399715955039964500746839223313495704109350452851291447746724455377274035955545486480465427546661105566804528384324473324223521130632968430359702240360544152823780345024410485727244396868384638015419446280721940577305767298743438323090836520835684885042929218186148901306382931455635070961716147234904133621235482037266166269404860054824626113523912334346492396242194088094266029870067773678010673155699174686036300635182372965812528341830806695070063377576872541360863407339768691028469963264632146600089462990409930803068750565457773460154772109827865788900563282357493425969015318895163401619038744618870590721745942593900488694244135216872176658717160695692384735248513446941449199327526335652771955721361961923781627395564002527122029967006892216589194342656746957001336279951224000030262500780952387240921294514340684701782246103182864689019409445182011650442755064668399566916649438791666922259011376391337326920906638576862729731620107478484486292271160765127066873318928463236929575908812577824184369994297537770927603704501538020913010677889564466547535755135924132991610881432033824031766717555589198258004795214771076890895790987733686918728263559237874352893607942334733698084700644812305311380476371810731337394754252014130630913400659616207354528702667714524924946096443095130516704963009439441316910846115562253769950061740626605847188382527701688478740927978481576374239524205878266610569692083991895997544500287216378766766157649705292843373981487477692300724164254613477805915288074847696775488255611712681754274849370232730067762726294439705087797729746534434145226018815587349175377460455280711880181633640532707583824687577644612016306769104837025582311653335314934512311914728209346231280428082066639015615620200613395284646957749372552441045041181001462101846026386268264382459685238216413382714503677854855887034100077861145538535224495401519776417555301777157319576939182804034445806947293783437809547093358542966389011514630480944285952709552097442305539233603984106427163085888244826475517131684671828886969989170054055355143451269763898622951129731001815016503948236667390410797871043057221709389426870227400429403431585211507857917830094142204954670509759032078283172149836023370245359525207964481115975613460701338180014908348813769004526013006872867062993307030962480441657999308847402677479499718826138161331422538798930420396746409224173746142672150190593332445850999715849345434243492060846840729199387183799293292308691461785345387449981398648529507063175740097911869026937868338005677222001826336415436149238448741153432160148699445289802590565852859903780364039014736351369773313763133964891344840947949497802342698783279373308309632311994433226341054625556245525031979553059738710493459541988221836012635083081335454948723654741801392567880184122591719825564349022302853618553433489251746552473209760824126846167676856117700025259145147910065027676102930462207589408841672184431036305174858672686971817454493955762748991376660986088916265587957278744823773443303018407162498155273607009388391045793244401571058362080671179151142494646729571232555855036141700806973723246417308979009679953802597090515745567799619483382218229945142053121082937745234161361376407515474798260378499060022604037759300688106758204163030593471284607328417243733977174490170648544957337292572694383366689002809681808059484280470487583424824981980179486774355191941011452835118043241034616436767312974889620141425940122795050060887338248035406591174036136858790681144055426329733186253258857514676070757368936755159768332004799126057779864134381227557449632564483830269097138780560647174842817707654718000720124379395174714075725482474974283780394947432141706913463278689832794267184719439807605207723292829904683965573481310826942217070078324834705710126784753820010738383493603479004272737113091887969792222376658311001356480652968153469594912312730228720376743585804267095421765722462324336034632392689923871298202081594134940084508592286144529034933270580806829259948586664905725204834294975814540409906422646411074164666733051322233563146589914354985532715955406316270808052237346219892175307165517136715852918650086817247584633108944372579525821708232312538482138575556547038769961189424601094413021446583676380022190803043890236444739387988349194825459563384081177385358229447461776708396844776930290173483050462926807189784654176505101888038743175229214558061452555271034500868129265470659200870753989452739672585987083899026619085809050704566431136122099194710653791475363613142117154429951566837300628853754487802630321179718364336782663215845961983934505827447553999825917626297948517515214665906975936628877391008685865786793961359994935269713800659776164241033366499635216783426483646323139000137923897251075637469252207423522167719587062858230168801675061292504937843429225424187122814697486060675739987743015597753625980295766746745064883890444334288829875628953451949079985089248539275146891369123460603029814348474662716521039673770112758931197994818043810467876598688679929214106387325798619050011107214629583317629618452342285585633484427638416244694615592594007652532725874863232608023997882493542159089166457813825398823764663792476171782584871970366784638745226177594988710265032677485717139242098944151112753469422181378249396406856231029814608923156376729563045692595862152985918330872141800234421909626672730586544921354206886208729734192392889202637915045143641882977527964929928930426754364952249835779494247412842154714927184551289733496296913302344170618341810746503570042510481504846516116805943960377347423581767936602304005987403381364841506085565199400496820280064199424482949469857032785608253335889542302352037339751696018525544874120710358834529447741953890844397808390066831313652522295209251007388965553584235207674770783871972870559098151997848478839367912958715156507996209910386261472859648471184729690694383547792034060446374406038946364579773507075333347738234715737662190161472045749645908436617374850786874470653387296540116818796976297722874143164342754144679244689420591405116866373295218850704324002731179103305787019436091474979085070109052343718857414541543863734747200031149084737168639984369238733642289666178458694987319163543356917907535360605319217143797134997561994360075394410701548529236219825218520637092277729362544157796364097832325446280728403747374804761274068344890595426491404469460428390310128663434886190835568317332244463799892066609526283554247234981163661191556776332364280747925454655729331331532515801747896363835291746650279250897038003237080680578642833156534496352608686618013313493321514901593293994976795040928750880268356369319228294733830134919536825206387257394206331528168217393203169998009392551907097879306997838890531342951401338285024399548772578657481993011073442583704404152401940303541377920436947458494671304988224683799691768827317496916621274853400582462311875881725824297090889368871564829505380954165889195781679444918713385005622404017390078246647636181377629459353728070711745957632626245737025247440754621301527184297860990672189290830837226156456777695875675153696282718142080901644752719624833722290535825097916851936295880182824377103609187491819294722531612292733474221032712693567932816019604297719179695502623375475077745555167053421868115320309847510625266742840361578889737185870894167957967594668273621870881901101728758455149535252398144078643097219794573830703048227005116638948804173724772076258880585620215511324877136681782054218619480040965131229688173963680987252752362870967310484562138820967236793336177856211683852853453703565447315771912385070320317769956639584698094973868198648953191453780566046159501102192774074667122229895086572256411715676416896652057564034223154510046479972324004417528578732230804451827199026050077429121470522200542734182176442047946459406687198782249698971465137933340575990019471009839875072156404346994114179400120645388941743210385569913636885652921197419893430793251601275369399086893474939274012057741631822772314523300569455090166011616193740371821781042226645784875240229422039905413583891911523386918597932299993316829816042205058062178282745241058349730360875844033297778903823669582523227087154475945375099175275130026432076660006574182600982450941423411434204616330445644753385774893703021426575880799086608213150537909597337080613128431115257168573815449882324307150981998666988086035988193968085339574259218691923187507661685244383810677981222572353204079868694657963712541539282660940399599035391745339987911922670178147354516592398680601841358964744794108844369767483650554420299525501899940778987148741373676817768342255633376782997434716965522665091248509994191015916335421274066837392358934598695792242760613677134391428863421875048604775541516439451340685569656132775009898477546894738715741133342882890982510116806662975319180581129441204206197996930325469846516519580263090424472975371850507559154007169581194677654854287593110367587129053479188795334102256508770379969286576698282260134310056766600562682131640866170725306684776591580713515050355961958537148395536791045186536784883616435634332418153682681609494738712426622856629214526496523555401928139747856536185592877576952654638824054328470147980909162429866452194069947371378778811575750320184200525317214153024286629190844897720939466267028098934864049919245458763287370310247053560172006252258218855421907082091732911059614928349039099299499721731122064755334623686402454397019166564494202724389491143024657962884702311894143440726148627255543295094044912756409817052283728650055324392866220311673624324396490337322785831436435634758197664089743867794765233827787721961231275123855113570042429892947994861828891926411061916156403772813932026257354425915902995771261231531650044071798385868786272070767578277742379280494797525333114127104709522124602045274074619300447520288182025379845282002672763110121458995262844174037432761373967527023300257234134744454001467007007502541717881618623596943054573207963184814382190568848727000924983686713738358284964928513755920075466879940540116576369819917208841456925653920710862174882115048953304176598835022575121279346399205880913061715177481711003898473369473131696745589090462656347851208262080111872842386155454846507337646194261519509233700480811347125634299520266293758627673108974008082987830345319204115115072779936472619517197811219576873633363318482873253973907069549931275912306793402927208064593082263640603334293003995379185227164934741089660975486423234020003869644949720223607343787062235668118030415900878789181919404891751350941605889331466399336243683234873034577736556363842506188671491303655889059468279495990154014513694422238789699498915495868357559738256766229588050705957751235841472099264706950849091855354543132248997852629713682734535080991356803587202291094573839622696909323366700008091377940663308076649758687294236511914042793043540942290955528811639150428889866713281474096858565697543922231442526540946093493993794200549774733369879282617382876726253599914471979809490054391646301263875226267350887807770636022798244998594751932071310806084161055648903563249040167362361623476698388327051028953365089235050894287047090592451748091484320695440037912276905290805734623382753960701530554916056664511985741149432077860805891461821137562953278098338313085436719994653440141461771974987340902272016271949812336192785074830216124374703977971642851738975294728474523087205026007429716610115851469506291554994381651699990646863542753346466709970074075582360523828542207698770979617754150236258977537507200857965744746710098251686114466962066015601100830914748291785235708986791669411116683122110509069990368409469898367043080773103019255068372689531774875191113965066744511748736298402036526894545350121708994467807331336467735191616739166296668340112900029066314317684240620005140860101918186561254362535408591779214704326876482159862767537951241609435137268296122286364655163504024186347860926944444411464513606749920148179435167975733199541986473509160272335666809401741391211085099329650910531844310993940226882914827662656366785512220909246200332811462904958658084298680094002411072929264490848409413704671102999485962052098331243167956926007555019472923631449547276882875137796580248547327661760950259962088125948063478300371368522155325501674747602271158031052407015011226886547707201857268765248328036996202392450868315270711434785165675684321853693399098106532915309140028467939545698668164692249783231020433149245562548516239750269062509596929939884018177861255024991083548527691098906888722801892649522691362549149252195795450860604562769095941652376284509349570923382171392206318953783567872570302782676366732403212309505916606525191932072988145852115179413088041669077863929516514965285686133285177368557433440871762766138050448649569054705106588351844673473006084513046580390507117735443603529693470231560273844654830388767879112069730836928480147973516880901387237633541566509410050840187733292581865523745807214135843218193110132010189013018464936125076549542564673199559481990764049222311637785902889822358875438437080687367998409449115631980073677502228174376873657885716458710070676782782307149818893969993416459884130544882844904898919252962270859237443004675732746307865266252164103325558505182637868947139682671470723211166678988512757073084151318425948643698524707643920815092633480472782026504567199143214042343713005790560238692587691317930841078598786948199031818374384794469134902735525626005850357726336927193928218532583305047268572343592314663216648635919853738036325760043871353728261104434931742896490284297393254185409393847376438318052410249921643412969752967540700764865184988729244703297820472319818580742201949537269520245966700093861224280934538438997764880916589877882108696006140292088491127659823484357959873679466159543855483974056151406881216511298672000078518953553656979518506798849473792352322780123767597820418655639322588115802755432154556437572204762441516844017993047376583527915640705588836524484695415513516102263809432706308034377226349601416658498126943000628868792803307475959879589795375289351190095052610808719196694954550148023251154396970631506915695955225201909617390893717554373050962504033743439454153905012510650939544597046852976934945840810594720405913972253005507595589105963114492478645764570316757815510048364203515330275118571043441728985462939406611064554493002038547248299020589117706366735351096740014145928580321767648947712954055203524231374457129089388681146939947236326557767239147617044135480301965382983829348415920659529667280548365776267663382256392538925412904127814717332241611492071279398279781198251771299603876044068561287293051759882321495882912907344606628095684474515789513158938241487810399844742882374694697455728426603770586011188238067608167125682762118612843754903806909371483113429941914912485013618675204772156097153595393773684319060061765394862154625380097164079254026603383344601788108279653638907520528934226215476883335456494661330555851549881794970096630192585140203667975823265329304942392590841662041980123501191583876886281220458222066281049857151368365406473503025152209577045749940669151568485403475505014426649131321308901196936219175777644988951485393479033239637019663148322854571801151075594505535999138511858184349579877862197281358588129645242927466199442875507518492029053171623772936279618436918161733398857008440498186778650948911064269039597522186550951911244621345318062743282494471532206545089945219483532475130502430273750215872843440748944249370851202326038575607778715865865666569785194294343165603119793643923664459692650042637887510767817907821885932321897777034583766295763839699799916393783115151838915599875973914694670602949814076580486640934757764499543093847290991714524905597043744974423071530469287841997853327509699137774140811316596066264668370700107855655522710441198252587470217373012330682854720310890819909312633152900899552380819982071925499853790687753984762758921070553108604018516210015641955099401401903547721906232856774771472978939386707175930648118894045689273423355681313314120377533615400049780397675831674225087371009451354524376688328055599459376598589489109989243392391978216889795944625864288639034228978315188487214128600230023625391690499679868850690042663132764380132625403437512424303925428390539980695507480146884138781743086375887889706068023639079688599223491074429025074199239470152864999053852735081070007410650850490928726253057422715154541896396705850330910739492328401166571437788088939987775089458856628964829841429954435438500822645023837640573345734211365634227661664283675253000974435756687593626580231924177522614030535340506250945865849508899129052316732858617948845390263531222769278395330183141344982125478592531782108765943311715553507482512405222731465322038190702617610694614962844394515383242858482301017953903464131782294840806463714254420070034102478340048227809781561957513232592524940763080357071002321507365465256081523170322749079577236923095225410726830224266524589349854694819289106413356176878270702747485940354986555835848455375721640050862592850769940035111478903756640570826277931292243006585322324564632500489100672898754807729417981981038620509253225259284307498558226287811183442826035698901048165880942468693714099508537979298699102392331810904484769743711024370544246257318991430685773660383643728263984822652711625582688523655943656828059968757125297592062090884623491821361251424108458340412632604789330789984938986812965603666495028721640623269015489570232172764795966330790223920656668142715089578415597133096044430562260416772030803194595398722636730592407287487670040404746637124955915367618098535590990250646814335062855676119703215585957972638564455175397760489868204794530135483176210217416700280728597594576325855924854102642044980358873456163099554751651788710473139086242476594754798089728876674336105735491174550400672305391317671504908459134396672004144429191806501933676008469947292843453690178986909097322902846821343121472092676089273037711677048381163509305147654050123740876696900701003952540644604543229266117775324100735708574502349996295926242654469198474903271615976707590130299540672942459375992097010269941172296134823853583498380116006248645735729105737355344558020560596528118375061637981942778593004559334432914646140533666401697444225799977392749624093758802379464258992412838053767346572305277599000705946083961208373992565561458637284527733382468969952185469838318565534225860281172235526404514580006000633935963145806911030762491862802825857428789888489605103127517244276815705525864554468524200895716897927131963199245707501093288727128685078440357248918715590425270033872798797689794357640367862432634895110537078315141416467596514487084080141983516939314102707791558870808820667262349904152477201850803955166797747809605824921789850211550320917938721979157649031234269496817726031501250499547684061611405205564290368032175872400109417279998271261242816016823925724372811313871530418365012547756354477742855093256339061659829099438145937988834080496726655800268118679965611480997329346599173376268698008218739721880466191479950361146321074531244037221181093590372750844786322130506650435316183853112408369850322657939459538796934502080340180629601709997367983879075160210343619186597881369347004015653702596839483362828769842587183384481018345082439855879159309539444604014983941918568287452822544682390762653633636305638485215659059416390110621310332050807683839320224948828893615383178400145157680519179975827893667443962313708614163746539096001650234267115553033911382116794694576957087052156984778459784986300560644323987892262311200189701466672357949861144571746001549250925874919046256801790588628297956915748599995941611317009708067344353670310682386117559196205315773105247615195997456864428315097628594731408982391797066345774664907147286061776271953327691121837183780834209970338299219434354341519091660175209046123104157337765732252853681510980644203492751504152781828367160448969118783557550939483749721839856142203157961022730265564331365035946389706962286552925696229508231302332009679838824240350775054391498856514313685667698764632687709350539474364948089544493438371098368159007723396927322067123918699973369252844474029789967058112150721174289489799261319960085681428693073659953337110921420265078696618561647419904779543407898807945849038920384338414431616978618226263602587502979567699116171949129193459552401778907248192924283907797557215471319295966964574865288811150897896076623175384094557310713303503896858945338032321394923682766821026243303211988987240950105706186472152497187138227066448540154605994000430898571616899741640701732132461004629741076269251790579874628268930421128056447864885484399496502743582238107379457907283811837959197392474768586457980380960291350813254249555969874997964211284823296624189599570313386100938458217892391278632048378567097360096325722250197490895238401176002791534898155288817605878875017835407504002397098338880648714274473767602072687924140539581840839999365905562464945762937725750728140321645265944622972776986766876982982452038266368008280570314472375882176454088503388207898784670552479405715169614877078172328355173216588469583832246682134908609758567060990939352156829246626487426637115289317678458258275108423942117905790603868270446384387021882171144445027466206974496737341112122442978658800384283867024055824668213154066455571612537448816887899707003060192254312912111020236902095014993388239802645498485495747549107748042055088855501373304450047644009569943136975038698655930931059193393512130307148172891996111609879390961253901743186088805052054238959147320029133664314466391432357879700682322982401979077708788282021325195958617056580969246557367164854287418715724124856895328826595570585403466075882432399987204164193387612551365823793184828759516913089634299661475521867760905287298493287814703631682408897054627763094561787674642470684947872201802670254377739115316632420307792254180979751652194758214227960414302749180457583505011674318343417126030734641800605616223185029219043430902888850286747290251954410007668403061967046711471813370075296834878387476726345287207501811463335893602501581396811837092294403978262374399330722549568143297610244536887775586294870720211878966585536372577346636310779413605661259422130725446169197680639242902839844449997982904966906078310065999853920251882255258261177004976811609086532741014269647348540075801158508054608481599183890144879597298143164477072006130591953972994022545993293299314566420990097493191027891630913104797003690470979865201613033128097866974241099787088391906081812394521899425960431985898965458375148835158155841598573186728028104251513089936082841115362253510156911124121744630863491845572712142670436025807005484002366394008066305755017342240165527736025675314966336267397332558152017698932572029538777510077483633022714694334455191809173547037506437986078955126521787797529993225140762228003877487496073199949680783690013790500834859173958610926180981717003921739053866970700670344861204143799978044170126741196075449920254741155326169504282745429423903862279032030999290316698639519482718291496614624948225227130670216536510157157853927544525393840915092533572471290333310855784408545489230990632620722865059972899086483672518147404130970498033179654008695063374437863839186799116719194248855108514209697161604039104719239989400027636251604265025954191312246046768481303090431988760178971729540477682899616372244512574481894974571227114985891125829571149367867419807924542528234491721192348619655377086919041851697672825378029094947534965652322243399779259673837413680374909805870148567028592810460825578785498440916881483022019184513696967833147195891255574455973167211047492884177005680084537506963267427870405196986445060986524154716938984459094396333356207618514436013313612167769286899076702058641836090868955661703147055965406438088845549022068162899651934975274262592717944693454742439511680562332082433027859279974404016151119334682164429463976516366402344796298454633603656952054355166710672560056414798572251239255332852729020118751318271937396481584748921947312787195756390042796076846396170217019872666985331396314510817214693896595907865218540656859604533918150898051747399344684367954321045537339969028426359199567749469725177098826065559658362461043141639654130564269335957910914119301621042019480950720887629830466926374132493736560725899159675765256396856289367106005052322613332083474213514247093159333511866265956465106397883034925763344474424141289944750205320570331542090457044981459539434138661307858770165481177065372519506520219518346182889141879778384266766218348611059133860108971175044216753262332269546597309068005239619665922037746913721589333937213834546049529421596980071216738268957757489245473445056376632733344547064817761570113922776082161853219644528560041592495502483544865275975762904672592852678030975515925932116944401590084627345850451738214765526058371789180575899314244786628183417104244466962613997349860054201641404928873402444561736310726406356023579869187383255363707812004714609222460765448073075323335923826806101365380628118895802296838486471214852384257281588416222650667740439750027602560572476038722757744654162028045927242225102572959667170335045071540634416737501003090552802437937293006394147400427518838440838505866304019553228058255974423942229314396735158625533859932691948580639253862830393655008088589496692308037883503212520472574961061780219205204739313622293417643434542943116723353938194397311512385569411651260631989194396500231509203064171813205887969571476303535135790415413554633683640404852856920543931374430805320521710420933625207005329096853739122536120945766687132128094532996547961735532241051474816241279002772706286720628168206312226609727630690011436882181104132985838200164842519785189724421112107143959321438215398691598770837259028769162773959163813704122009121700015795496774215174484026218272609137853561682781144809799516874324711394548162801933671753727605101237719371600558010310496683744611857564079450486846641293805778799089655049373667980644899644174070572187706445480040643571314060967169001571532740649256084575431876310566351793139576464788426116312932621307065817359936343755028032837776478331153321962282190272415401444958435042567171917196995784235577614413066933278769460285537064651081842814736040751867652182145258998979946200816371654508056908868198006799036672939326001081689184457323385936902152544042304193590599987435942219484452975341270629432244252837852020268155236538340902530512801493837904880111467205290352553362092819698336094536350402158356745333678776905366046663108313991169534132425024096816553447968640067581325655197597426265105128430708549210445234525872427530031515914392336637523828086150493101194626807565233395165192736107615865989380132387498508403621267785305392861116762219411748198490460643826480240413322777061474418194278814593240202339282894962118973581617362659588495728242313369183985167776732459611209823499032609349729536804717318599505454696183346596524162127476485483895785215828442692676440573119270612847162069274150501009506684360080603052845804593816785428787746682236372395705458061155272819844495361850160527065342001923300310086376008297987967795608868469425398917824361077946370091021515351734836375044169653046802378445573886469378997988612268296487335718944251187517170385649863138445892308848181791422826188859488522977523981508528424783249122813176248458059086968412098338487274075485837241457137698665802808983430483511661206136343804866964414837305689876129794705192716992883457774349161342820128745386606266506881827004508644221031805207928002876396718557656254467411915682825505510311972011951652611104509213207713959943375461658221185281559470108631535281019111154575522143031102053361973869647425880380363119473904459433310935946453310983134966910229717442180876358162659802714142744778010512928944527310700193704005896601988032913734973272060649317842554099148634320772019746350381484208935082059794944814027221392054071106424450102250435798429952749212939883551816506117036763654604189084180733385307405868792012211622278508536592428522135730046834618478001389607993213381958826083203024596326533433034078507516628731954197092901005328855194652622630642608675114862896209524724232261839739987841681395657668259896481911655094726306040687488772512372325554287646745889002171864687541409166102219566515551661335083688729696556725675568900083566000114365113731276456847878759147781566240031179613852551552629497131603245460026676577090963178892853329037639650114940755273646181199178147778144638060129435894329226374558484024583092488210832732071256960326701768178549894951217932430290718779769498606338967204079520586393281970814524388616996068069723980691790878944521623854566287685160206394043659573705190359613234216828324474354476271828785411871564123534171063996505055861370146969317376117234131386848774270475733384027218346597172465678254153129259477760631028772643959555141786673750406985315380441049805245128954254655154879072055913817756511004150171846531411435089828098826495944479072874830900886006862143945150595932128029183803215898421269649758717291502155887630784996923798537510625870650385181519764743026434200929289425958985307843588754968582698823070795603748088838567238968669122128096376183905105408014447727698940293220840846107036910356859994436514817839370344703930279194025169126462224017301464524150793031934265190761495791837668938462943633984166581876251450921307185915219870469164533863429075863689502623351763931334636906893713985035968996816038122944500119102823400063987501161628343073496469844603270620434177831679402616428869526303235944383946127075987585175980641714286590776791499293786315060710439431628752680994919578079724000152021219245775904949291764616561301601762366791982487279801891399388417801095898074079688219657646995669981704597798376259627485495385165282342106470723608705620710736677711501899889286180080189552633227850385021773162403805144983744538416132207288418658336853844870143884270090967556511026440550299439650299967858227369405834478222110239381010139966175239766177767979613434596668069465179503025812229781008940631150311768744938485712667280680780477030500498299084528837014659053657110386971338595269536951901205973633417932103616953750746214183687948409566400728703478466134322768823833913525213299328212669958845109293712742061139255021559983106805615549934877385791130430140956577375884398222679821773193016308026499760314786760675545872549190321704049436918195523660580147881484615681943788707786261011244068296866966430673649715325354974135514886794831440578027633463811751956542240570628121154655311804066464975692578368076817939345240196941805774262098640121864972563294518403651266639455508299331019716394012362697379639068388845068339168740273799047636493549211826689156372825618637344894764774707897784701657306016828825861094169549396111311587480744037519344807931566275402678980925756975160713069902985908318446754487632825832290391753192151002205655289249438254835088501340964580102322176970876385758780947753103111597922639743601549964243493583155167985919359674816424467582688374356154457620822723095671732230366268771296802594035868437903326929982215474687620519241163688670193692978872930230358460868335535020503274080395117641713337064550608432710354347629789041437106678225340896758054921970968773980668376013903519281919662739128916219155137636328532594541736536816711153416872861160975134753833129712165880090415254367716287217733325961250782245060251269074965188138048148342200861081045013098530322987974747711361100788573077148295887758923144063292588485982672597751076899322765591603413606574414028397017895542874038435121677776620694563429588881441680268881833509690037516321523846974660399896593609380131273806345381612748833617207307563249417820068566644056448059437003478606810494802266880996932125975219297584089918171181737731516107949266423811294767139453581494010455254758200881797174152964999973858992093455372324490939329489335023563174061672825512502451943653227872149455500836599589281031801659820075318911702002954633977013022021788609296694611727653123171255800194101096916940549152062905930481782491760817934741218984148374694247780184115666498131786546338617513167362792692371571824902905297413754552329316309290623988145947539364586325851699905420964689253215213517724978877803443355937624365400376990246015061520399091436811676144830626857155627999410703312502967889329899533057103125903810998546760796562126034253247644248309858847126397654712562438241454988906569544872831517167342923781087330885520843855030579682603179808924586234831388676649595397593103866232085896430896508272927734607896966661944445482142236777258468640859119203094239984743718750739163241141617052422872538676266750785530878065381789443045374438249090906589187879046322249990330570879324757807341382333864707844060362839124950446011165515729081076513148539518908174585182599524769282109312422359873198587231441489900511968621792183040864276629707724801524642339729349569792055447689617010139642631334421683098861846640504866976854830108412021132847423862406481848552383901819055365238244151393380940135282120230955354133573671114541044250716714358642703431521706594404807613114179602881610360385134712700108670309118869884677919258581728141463936022227888096587725018849935101480780242696559927252541945450525938735882068067817351440801898064800425578742086207225986996617841532515800129317590158322986708577506142266670739032934370291728289823109769184764056259814497467289014418391265638401505197413194315090890517956874044986141126971565378205808191468750114343727075663104575428369045839817199408905659785663430833560859817348777632366946649821843800604192292433095061635747214513599400035186215144554403677134526074761833125439653039592618680292243210630908505674424574546747382747827500637885072870358240517367729581733888120805600456228121397221058206043100239809804909713865458080482327516104105904389291723005386502614542012260065207978440856899826931408891149929488611373745580069441230347987243816843827263280457175030312340341341232733360863697228701761987037314720677043154969628668170751374796917707111929419223218292837809769635179396529645575313929183294777259522404852959603603095801926933005959900097096397323924744254034472712755329094796747590181856422198843062144311598271752972129267459341602410066095038887222156292803614178376955967864711205229431146791845025256392083814351163865315152728096864932993846426843295841295125955246381124356173198695786035718109411066089091314762366154881951578047052814363473249090163873204037391139757267077182420943966787320687619016043590709467216107590506297630322213149828867459743764886480224891228819280586376133900520141464589557370619356176327565793329629359583794015328558951782446792221047251277264446492856298966748246896774755076582446409648124665048233873308772212438518135703335496537699842888131457448052229956781199752329497457862310652677702320575362640487252438750852451761736296156168120443509098220382193103358829899379145427544950745600965462295316839140335897068400260654375125558172871165337324426113881734292336768298236950059535366961602458374623639541749948509069270541971571134674295154939137017561716737073631154796427065821903568988069919428357134752940186493265348905218770383182182246569669419677148254278226516368554272007232479800693572490336409473041405815499769369141644946337877983809762598750173466068424252255561708457650395091667724781718732760610396904789406814001602654963140994468655957869064134564844361627808658036407940390478877132267745465041947815788320168539014349694548535122004069313680119442167930355014154276826702405428491261459417771677639572393016086862214320754577014775365317417950833946888354854031423025784930038237413337994243826897561194491051692419219688526101965248925134400664337055690539097907035390363524917598297444096142946942715718536881335225783720044006768334848885198040620095596144064247651791242470178481438170818476546443872155341465926429456469399077905236893759844525247244839924564803402413936487912680524833313236552268796094286582024081572161882383837785413376500848626253399163116253057566934308366654513501356189014288460962665967694171409765003900521560727109487440998168927938255838103787945420826758270728758053617389157378851777855577621556504272741166303334247955406830190100606630377205074607085074112229226299698187425721749179655408650686405922452000131093391975199582694234007393665244605367700430195282042095613957048772549756586910479464095128609927789202415523667897220715258929619346463412129027001905150189919728889121795472163298655976889097446014635593968102954960453920617260582136086937263079195832618743867300039103563619017840444207193098530626288249909809920506694010799767873534804491980386736801349061733929499984212165508595464934005234570502095194204791664515733156206060290503125687544574757187262844094379566848621792944265581039606771210843859405828091364531437269171046561126495554129865860971227354699004598964561127239357395421924617245473163340209659101210773691062129840456108121157737218436581502693526267362459583485446821729236032097272093235644386513119419125419275868011593214647391626120215040000119515518302398047897522643703524659435754398657466751453552531274315321182597511347767609998002891024119448459573434396451466338517706304431505874264109716561325734261560046506723547686978924145013756614976703624421313923617452209511853646583561537244561349235427223519059840413517771961279233802627627142466610656223490483430243500445245673798992441082660534256272897915245793972700451211977721328548577142098771535971551022923648132829234845972975936364405528882801094183590420155213585986490572671442714530445112047309331793535354586614370472289392399950936865652323113279325900881613283277918292530900816716913970231137840133800905743638351849962333951098782911395868257491995826334740356582876493935838160262310031549660735744283500721427624935256801790786001054559677730788472578471683498352917414846796172410352121727157793225308026342382053226603551085437734757291865288768519470546148817578631769515991943002150359493024034295614222398809115762216137147505326618012536851755437324190157671763038120633329514593170175038544188353633017594001163295904887625674753429307933268412384056371365923674824690461610574036957628304198500325273359917713821966427938420411150366321426998000771301184755204295428471334940068920712124064237024148742221058168460173348159027661521035219405373246105430239235608773560605392052314501494665942890335553016998736470874146602530270478093497361042099645551730904051739877479966756581879577897897934478663723104629420037649159629695010298888863364567751358433778638470301913716324626758239330970480383533858199646029079102227849074073181971127567771378278051111718280836051740575776212204796680037958834977184861882493370934235808519431167014127015699575087400550240197356092733598844010248914378540090866775344500468755049856207545415609893325712113531510675989458137131369546924069008140937378273869176069845786970454523448298427450865472079839278531156702234682486481603341618496588602827809158137381025407790932008579039746950915896968408459943328663679895905917492085813460274678493452007033367057735640236107400260335255806106165683644483292435936519156398588527700554213467111344666733666107296316023506047432009181312851110394251707347761005570997604731259181079168772425857455834811239933845205013464556626689290549671167684181252954934866665133470826368309717165051539783198037646139296477883039091600816009961865770151640948884590698453604886703198676253137349703828664513309211326773609461699582788661753650673205015752446914618149171827752008597947122348026186812764316056041981510084975690825376612621878500074668479161337771363147672311271183893311818927184240569610746082705036371600779747923687907871020379245290056130724875633066753798191326849114257601060130382747286960843578699066046663923810418733458511109700229393590829301611809550130604104007479445096031522245424383013858414424263083687945085018150753113581843096710682536677819155085698153931299260289650436923459465331140479389540920411523237104117837289831231823606445412545296232953110043905318634477579321942054228869313706349997049496192668684059655959389082877880304001671354140256548380025128682446995903371517920781904947031980314503672103762379157053454049807662792216742332607384532381503257538289652500794443638392607625876989223793060103857373869505992890462156514895671279863581210199443430122239080154303757671543771965963322888720457025196287321238501785657745215075189516939713707462308224963071705710210482119548533115173673253466146414877466387658027283224845623958014916169937882183547942301093367439984519880020470779703443684715755176770446706084376992385925814711772640124682087839224676258001415482346059679746775981220514588179620318831138608054701209656339226767106261430649069859031889505567298785929057377457462469912225211194162173116113151172193660997179208411892668674921937156353149263667164637152199933075506927759867622098405071260642750009018406983608824010616687937884209993701432478900531530365301467335667091992073886925410980686645185426220668932070827771637070693959322345575419790708702101107072634208289404272928867051621344336409517944124787200077657137000562381418733722777609974737677404100021534882915680311945619746938732329617980236659254225342367352989587851127788819374237116119943472548710955573689353180225376577348456445948940999938716760615974949403473747589614210908139460920199977025032486648347441730137250733709363118230749085277563655386607246655761198563579828589516853446023649864988907336302284192590774236952185268803686404881324148466927829874596780520208725265080937785459688563593231715761672442473475660949962461137877669974163227181976734170348820843645080296129902155212391260970057964475639820917445594888610818342235383290538831615818852181563044198401274329839266308488754958317380521075803827080024093297168858959701736976812237442347434401028604225465717415069817014827269384549787022338102904331437099177666877428518245511931824037340176915431020177133607744219556386312077233919556624540141904887344163849635888190862730346625207043208287492825826679809389992892286511087498952907252178384817819113089427362437882080660743092952397908112673171806155044407040408463718684857579461587589959088778239815675535131538446420166067309537271689883814348013346568137834707781525648370977212552815387597061665642741539712380491271112226737041355789404057535192434207760957909761535370574048290511708094934024280411267979204727330750642627492406729369239084396327531336430395327733640911919977152489099270567177350695390160395880784338719849122894405506008685465983975013872208294536402048359515218071564026111169735425420034032673641633730722863810766752647932124295947929896697630089350257410460126604483161147361811502003960489306322569175254150443838979106514151982565739261005022111848837182061503943933537320292327485114693834428566216333036378316301268384261052890757196648753274293792303368118855156607043437144603543241277506351387324064623728290799198062970262052172074769060089198535723813889195468717089443698877079981561096834813161092422748374197790427373241303177615828971616241070210637388370415098957513896550495741461754007151278805670917513254095201170035583780129909974183230267841534836387882659574309277274188830186106090068488540323845912573929701080753731187128971750238187248990350864166866922132735599760617218709817249431481526591112885090455393327129984867721538021375401099506262495042921735588751545621489337913873384629741551180519366981463475649313731837636053102261706491970205478862586294747242606345549696042122255939778285042345963205878052400834878257203728360678164546783137682054880819258367566149245411787486336106517997379687105087103079965473985353357262398606620391718427446366454046108394462696362814976564606593055856997422699558043169785971476473364710266910860805218614885999197600071862661351787928657120585099302175460598840389622066064536887546991970189250149770730033284245244083935324513083998722002755107489695103047281299281777508486008714061309692164828514432829939983105126021539001479481523560553034380716116440066268827293323904334518872534299075390056718587599481246285443588677989006672041924968810693942374938795067056324497762784026702133012560049457092766870112483803173420957633609666431985438757283163426114181586059189230043231216372021358248745301296795783380273077950619205696684935520165923638086318795268536041066709399380308903732954863942189567660252003974768033484419629327906923091988328902266008378861524170962964639154912136596146465304842688345055157996880122871945193180579495689854543789631504176478488573717937236131432533119573890230497657196074641597403121084794932540805978376202373221887139010174139797839153061135726270979660342247160545164142536791462821989433116971976779584026248883941240503342380657427714875983610931611330383692124524552953827806041852030624566626304539998339161705534804123290432710431334026023277438857963083489827094312429837207757511965640483762477764337879274590762972899043349538867826133752640605031883094876955505319070609974713085824903140319805640382228942348815513732930355380318833796110545210314592093558329035625289590783362113911855479745384752834497554606263127774581737831051522682665893017463745078875034843204302699187475443128905085437632121065449607252134904995623623584079280446882919417970572291674255915523575061345592521813226129309863545666418333925744155078399685986554979762666553701817908278748235457958646168108176855304187851812959948001428366210145458944011607257378294649093525848775424938137800615823325315315396796933258232413876401128587915876281929428683665649479202229412701503130343644233002544590203621602908048079329004180711306462449873863799531742074806330420569285008917015223614496476612759532033646561998780983628292169861829415745196513158868563161561596968719823699452600417995540082174993215001451603998041243750122881152771166362630122871330876949546345015539189482464009959663195812128857934720286608620240829569668956347455753668876136658509633340051631496281138351794209729510255650399261479008444266247971455420196158929496447708546529462858068343499669101549172545750149620830844887881508872059669089546006533774510680128543910608127110247449947312468700342635016543049856508677550486133595837131167799160361805635860986725767666110408673441742894570886361929537381654081496724676018985802511320191647398653365948462611082237651902529580130169184630288157617055486855791222257550667863849346059706136808056926956607960730495488223278551413141172212176441832344593093259624431826014733773465375250983094350260413824394113607139534653178177036880008356311084721369905219059070044870099997607569237668401337486039598666410798874029149023615521149142011137221596516897468838374547868053981630140025335396602762294899433737664092385087611880075997337398671602867007080133415240711137341954672325193051011555714123269880092823421834012377482714920615524729026626753459932996913650925982559056293580924004905707498217677466814971763243087342669866196302645240193060026507405227569672498803656058596738316270947189721675498808956007522655847682746179134839384599018322450206387901598473262034982870327100701427634920505800658889052499949750399189968511820116248549014327645764499370540613204842371879659348022505425116266503561134244773386641736006212062558859894257234078829859406862513695328160729775356677769700845259605600252826239773259302764030180654827411091380351342372261473878268466543586148201835279466308440105440196786184784915081709405915511593498539940270187235057430955285467980801271099669582352293106755691433996503434525116917664395419503535392615949139141147865766908884295149434707136208179993747908823451319780539520083811683176676083897967773491631925920646025239578413816883326440512343851346400052875713830710556229281696339908357831582844268043861724887303247140545995459593379349121823188056991740555155661460002978750451505162468266722155039183392070432989236355851369818812803968319765173105804066828231507648969828141139854752855365677289318444561072198840950161347087269144878958558108064598489905461746252676117235773095080584415571027373235074810224330998054385377699965502458441315030013743920517309877389503707504970837815735002374573186487094205623979682353361156978637481873704802805791242944674404795488889337819075758860948225495909633101887145732505878841350174059962963507748228097334760088797990288668128196086843126110118141108142514332707739535004070632827886931091084243964098896758067582201116761866962543347033526569995331462874774771668517347001784265449158506286708905059527416417418624543211403505538626467574671937998941968522985980816729341006871990241082479241963065105682715518550934553096876728200346861528307051017746977966683753256156417655743615732284365037312085005941444710340900897487920394593330303386212658204815025350556314533585424786044403492951462094689985562562190867149565207639933008661885776251281757271589747297483181306426958737560155603705690241115580064069978881719213742072659109155284650839340502565020917644939713485010457478315550546970249362188085620901306649438840293206815396874371394682807252799476937294503735474693988763923645086783349730054886476587254743236509272206392152663558209906929937606929466981598013428539420159172764120039936473534384017185183161199468554950339038697684414100997742438704260620688423809195071233298974446973628124508671098715574796951765179096107305053449560202821857728013715106434677905029520641526636022100412268981114511372689007082102120627360134912962141127717694212987211920627864408918684744352353164676393375536574829910808690669213089084470513519502114466765958527302026368778491215675272613989873613662860044230516187883140848266068376811819581767654686058616898600684705333086628994463733970644160327810606844319870704654514212129391557170934777323932376417626271083251009739163231377790350701367395824297426797177473850902555946907879078217397891894291131383688360589975614426106935753555283044879328762044090720776667847016602737535599705591724304794499814032608921253301683855461455614321923099642194701575931153358876649151572882215935230585551024472018712010000961068507328100692680615802310481729968902441021949561167500798908247498141856934074457746952113541772434348786275259617926083210915438851677562256791362902751925763829797071354492514324711628430206413607331290622949188200336483800821595644036924368036593603892593627589922827670098758803315402525624741744507825482973491450267425598627193134613709415994676305883407592361403760359433846709861796722263981839441453788675433803889784498854857843835029445360542517267954791558639093607886842085860340381349140766229560305229107592411873079384429751402896739147959230338372223885234409943097224983835326784079257002600021655924789921165638374330478492281412816657464216432272809758913938161182959172945714040766332126083379364380338462085155998301643117372888189121782778672102674922746885503112740940441501681650636415336043541213878228228173189014725584676807258609270167175930114623108676989909469412812774181634803667119446238152893375048300465185115996940682729319608840859848882856550057787419294791353467984039822977110807454961114580658735612780244980040764884202857315521939651940971200304251325693196829928685635365503688028069865524068197094626998885814177529462154739841288482513243381010258810573161623620795571025128214929214409106380353085588457933147554153017553122289719925028907046098689289650257750816761522939947133216673921221256583516887992477767067808426714863519673751754547528129667017707156334942469377640109716853427302196475101463040438229006380676385213439688456761412756044738902968226164740774491941616528764446174024693272732589875495576066019932825628307601334157553983260561122487169960404102736238832519967349253642343341487299369525404365684900674762968552456061157537855428143149060505858979639182569225955501811261081770190019384239305031236567745282777841915069946204502450158797480203307169297587010032279098170414414005645570849195096900028079139499111189198752322580350916790336490846859584292164927080775240914702259771523307262907979611422561628857874591245806259914899104956212558251977354630830735321018367990831335554469656115912670769016106415255305483695877545758480818446350258444585564283102570239095482336720723836011939649805650587989461093657484580308612726863143109438995991588902754130354751108863195509341652224127510421995877022543422190820909522954959524093536847797457988235692412135631889292917824049561691326381210538331920255805370309745938486058450842606745060435315222835533653079441256633623010820207340288139730035630147279456471857787330530089117360413673753891690097111639433956878502022628634181940254437468249088755324016459243153246826407185212934871354154995356169447729859344584936052434334351533398214533858575878116104357399494208772555012917069828159496663024026307511960701528530854236526205678560791252623559752479580507058746654926606400063545421547636042550536514807294647649266313330801009442799888734994824963001921730218645095269363827027159163045899806321371228242488561248342448781546603978957444401381802061657906794583346301683347499217211856145080591399330783147159529772229049481186556765688197321207713107107377301195774229038331390516193850592730694102302145384528681261286297287434761546116130106688983412548479292360648656278454751014801834298034418394415922224506774561155880321350703558233423999312104219002944480769492249800361302307728551624228676732269348941185909888464278578006695568974630579050944383084820918675339280728818821996829936738330638552901836518720503769007843407019245905266107293677606037138114226475384248210620536784909427551085389923168132215786041727163246723015945449665763266844861198950936714718027537838946536048646085398224579814528033502248006427384439232207390320257714106005549262652802113617848302581926303399147161716654236361301776172179333418106073126567887969584471757066533804079786045785074375270600182383574466050965729637453021553160348277709191433767105008437651066895402116817478661138919768717701023168622011283309022025498980291665773070842562034103211175768523511908024844151330167013003333379327406016768814587301462438352101295099794183594851333298445173172686263344944270044312399652177803189711102052796163637928929355764499092486439311897051791497772979086512396101465427098651707767667683958648092147389637016126777875194407606306858852617249499077832660526855703443134678131320462025400760464334736152847210041010921019256533103588300475716817933315897471414117149144121762216256586399636231402626236771779856835000049713251377131895755861896345512527286195403009029398983269474935938508620797197540100629067232940490748743049646572325415006380879384223707376517247600259017018319884981247690845616302352424881983850479839926786881290527747129079591869858942898135818070317597470956652363503570089081292520430388097273550975124229881547903492418538004020012064934839399452552472134407630203869891781081983977563432587189082958948477141841509158460190399245068888225106533296427074434296492878240995481150764820978386504960289292499074791184287112661702623816046250343318622297622719669619628287448159475569966637824017828105478543275839423633483543569554761283150190915693621255963848741259493352773596955879051052969245644167498243604625703798552409988889199049223081131488446682619585504885544955687878499458191636395927787280090329497467886368578624954807636027475457129522607169840512810824570736070764118162330081497573010624048574368764641793074587734553671900493028069781086439017289096840185843357403756555157510454120046681222690807251056124405176007550731082573675375744142644344179017078733479966094850133689098625115155272542753966770255769478022225446808906865959377232664263261335560265763434248881643516787758243467783811703580049010121887102895495905418652946277246749632565161984790749576624265932166564564826696678106769295994657458181820266488410355940304492380225190393972180343871558217212388784351614874226510608637935468437111106970572010834237326002501669311965828060227114108139038536002463966458527615474250331223288748306774357114110039817442330551969680233080326796803581035000462705148516800542909968656804796250483003001790779350869598327778456989723272826890985455175638366257478342215148934562062921616455798779520017418463328764827378070622446651021777383509526872906975466680145769466999050446064642948807486579241393071773476280978738850508068941936185368365961034911950264932249253466733528813310638288998196626860368646027344869707212164189916849816792979002948802732453490243186849690460304997192194253744535936338248948631679954240866255122637119519969017917346191920575033718830133693469931032795553241420658856172429929760995488875036587859588418785873910195750280646144934295384157412887364074783168526296722145577990284657799118832884555033886107595689102716926879884839997082150191122701477351955202654922216760473489550717621069044972570107808878796633848899593506685105541656872994679550998383428563121523951919656515190612256179267506704602830386679949930104000902414308846974119758585246675131181157205952168626857537430425442049791810813839046482885692430795299059409492746399828871489087016454282575865251472181782050079168728145124709169312336058688897688264114191655905450308375283044459796827358711391697402442216296106197415396724947311452018454090689318633424556517816831508663863841850576945334815915026622466788190535774717882933883590334190974272838477873661943734969503856626667914592377246699447916932208057110193391568272540750415330489082985200367969545272782037911314154863988064907890044200589848481900933278019030189799929110298672264489128163157253479491791593048234117944994503035587054516317218581062929780708277260977989399888237353658924917071365754346189031510217605111846930895749716173157508823661416679919957897494542844662319956279188070114059577529926670513662010448776966577910895864474396705771498852268442127120154649161338513108354172854129837054916801451320950432722975942064032227980388414872849546369782124866123610293626785998285711593556482208585529886531032911794645206503975118268942163150039113781569492222285907190528792324970375946215537202012522484919174948152345714070074868437237427194965549141274035255245402869487350411714068712754827534966978547515992702738024126402478155158423900148820036608315292743968147985531320237278444560769771510634841025052803747324576206755385196225558568411617278683524134401251288666965193766013562489922626612903592531072985456970692769424043536909334058730771826124534449689517512982020665552038561997694499551823539276088798627015607418060387814245751501506088618205186803682941462493896895356319608821992340588186902068778627347576328580301142376042798661488534219767946094326814578815697595262917013502201567210141573404778791208690863095117412364157110600157171408729802839053717991206597561046224111951244962237302721186471134322779355923968301482910949767931424326743027363289058059771159259698254339044605940250010670271331839555348215477621041147919616194673979906762738460630844465702244104048247794665089429560413495915266564546832778102606266281947009352801423956677233275366788180547585275393448812248014972371968097238728284766940082566371176847622624262453745681792311679026701231001464181416991114711393810525046591156523475000582350078372368370853050773870424309128665957296586582610146123954505393286285701584382451282702711504677424364381189823749559677396474461138271570144465039603277528049979100611058895428544401436091890917681592793434806046958895752345479686487593133041403049200977973425773552299030278351446923070068951511328715135622200371313851532783350528011574638348568678280336704134096517492267461721811865416885742000783282517219083864109903580090139393208224968366320339507179481703355084186276705003276593793202017508670577321137065434964219815076780937017373507847278466361502557756744477649854836944905299953372327019703475663821504973032825349381708562599768200583187269309791002422899302489829772343476384277302791896894480114022087683961671225668606450414471562727825839124207879993942972089798227428931480698677725175998231770544260447265665102298008840739497052636803154087176262140494537491107331379555327278008316218386830544721891764100401741136738765690916920281672562763891077197555761078456377714869747594130764695708896765740478361997332990131041150372507338839867705465252704874042397651311778487631424354432168883763208707754942685669833465201749931710968080670773993724890194551776795708081289373644806438373491330848044974244235974799400526387127656618929629050953604075370362582412398126634742874702304814844655717781896564820406218819117510975571559410134090016230256154620154577954252677385335880121526530603975952436214103031727425436699477451748449697537731023413119966288014439335654520815174116469099343427300401043312282179656984618023604192891177288834280063789038529629339485851237815882921062685730438503485104055355418721662530423806017302134419511899474443923823711078651028564952645862030366356397845270622035963701246081249798255979580322625470663585580727829678508037776339370564075070941399383776493696618512939653404829785245011949577960679246746557472122351192472299521495454589150059475942165223481070846257164796982531909941640176850926961247653235777035618601919649989935643758651342557350392837339869758003823849502705522845267316421715484167989461178731166655211453514936337605405319046925418693500850268627192075737636366277358370281990683890716620388492704413759920330246440117946179563990966924839187517924914455567780823618071401652199909910174993515325484884825568003473052544005101440912135109060146227693385932572094428584815823397497746590102997957485930083442527646687839227498405601619361063605965715862253698539649508982740361654573770355236624029157636427737925974643706583982026955916287283334209088210673244077158489592204166254779182355753771364804026161449882512249637734040158976517101831292135295896804429145233388242384569062359392376580296672483829004053636714232010842117590869233878053963009375707994942518245881867283013773419887814919279436628943140633966354913423481537912697858641200444929741081686750249392580623188804600076480153014533944410850839367052094534754873213028119561526397601477291930828984388165296058848098644964498873607801332915444703244362747978359472175220399356885398806751425439326397047765885112006996175881479595598504371707768111501794619885423647158158239944674813546931474579111606148261255645729987960617845023116320677985129456394489074634081815548117500780216697523837947706746826711435618968665083998487077856869442995662106333838130605034713941228216485943111906076826028170850519769913970047514614684213499845766479503341763112824816602871583363268383174710529280384535459477849277719026409875519118961739097297576990901150523095012433830719199513753002983898159119912372575085602049088188396153119324571672799849953114460277329088384802702473546597348012981591193989125621970867346247639974585594356252097901523169315445840780357914212281435000202191615129361228754587247247379832514711514237956377809372107635639195571179153515083296855030581989355453582343775926014716405787613571803269870119450828910998729864152359289564202912127407081141668828431544467975319294313977632535813697430062043065188614680631877446710492306012326249051008085678977272099416335124121886196119662859227565319283821642172648153122817452001284894796762710330654393981108395366078994904288245454808855871841161795095146331380537353733921398061958422258525738798687656508044620605800535470763539111134434207710083014515100824102603982671706293680910151613507165473082001373826285319499958323378373766716348983615109985618617530263905525749426650801366809930329671284234544244773071006152226360893286560394747190743590074225544836723941802035869707394608811932431484232248679731687660072204384904949488268674845254998976383302412768777557765084458701505180214594663704940921663430160805581456301359668844867414949779308842393309068780431053951333334583971566300990489686716583691429081658018766212421642306423200407869316685306339739595905018456179038775923103006275474164676217971608631640436789077312143681400781480671121723970060776932527612244289601985169376245734501231364530214107207969584894969059793449325616697890908865355792068746984905465533042200916427472818892221498412191366554734278125575234817405669932432811887369089911877287176453895709531798193895455113009029955627478670501922524215348796203019420554284355244889993945619770406340506022750130518149161731930978802216415298719428420424754654930511377813352253656849134029129816446530803239771386211305099760035605710228074377074548661663223757054857639231900176905514386843252894287307014547370440633529397894348617195124321675479960667904514560681136185397936580136317313322421935760308217560192629195295380442941481448871577029433678769518099459120693229101513236944298795726858143236180501497187835387395455685854144366611283186150379661786113780592948356636903154670133895056231040697563618390891752948675915989358171280171670801041178917367818676383767637797993712156610216465965800175976725750718839047260260422812972543150810379614342117745473480439414844138334526033872125012832615981587597949077444163095772699678964507423648260083495738963009642430767719118522105460862390147534761270060896886903181123100569438943486191375778175155240232482486191475236176659013045183036019551658777139497487495626375427760391984674430455539496446963674827746849008743839594101735621780464338586301789058671433292634555648644846961748346573099149037476854375197040818021028202066327300748500427022574467358512381304171320757543587011749351839076311305486991280172300216640228865460188926101617673854077249279371418279230610790050904079387696262812057134576544611775408302928720540372853831397319135058210468833990465922449658945001658717176663769294059550457253161234867867011689221250856643669043011361664078910087408059032097649784695226107981359890986442039575845914997316213062249085827902770444097891534979895045356911567522897501574649339283248079633632213397313900070216245831329994337252239723379322882887725863461987051176658609128901282400595114787477310911837474652002716753316579514114537593029877845261732666175185674255971393767703810759462576233336123001007627328095674671271742919980936632593280909121335390831207154077021193865752054856675858064414546962668153371307694138270267213547743974959647579871504741213240765279957066999505671889601457939835863703092157478635219599610552775144949681761284850571479058601662389844448974635309075953887409302311579183359993411270413067402404717998993497154514788956155872439708962351852093490975747854198501684643972614159083792300970669064810664177006876335188692912586871594483079883294847218069986818654179348767420300977313683258822031847349630323047261823873049973881493200368215482852421186035382234607183685664103904793167458617112534074097017939459215989330797505011830985183777009575799044466774170822885575100289142962003813371262360649231383931037114427661578772982697364748789745516056781213772434801348701094493644404708594157463638444546596214607631589413618605039323793601184597110514715492126549025035245931014616803510098586556199141307930224957714047210897370322612112848959811173015707435834688841840395006858097436290313237625419747939833393227990986114911685960276047504125450306910559158525880718893126257365696012895548940171046803875123541750798401388449071824149250270204062622530482929121919175673571414194432965639763879090809363249182023223184398454725012543384618963861014127819081496395270410892500180020197454843165425177101887165169491445858040427944721268442083982832607304415375142208727120056283677339209406645436308636932724387793972588161948915005140638458754897306269710829931551296678520451233919346373414106891401962735675471348312914021077055709832711894495868009201686563277340006600749597675618802037546206510121412048056694708487818886257190461377698765773137415065071706865187984251214928421792172994514555918845711469909391757506020971214329225335855151203121635098878268357287107158999606636269206607734759538255190809041668690446016670506694732619921949472635677232012908001315451817516648170366041935625033297610195701485042045537682196939601236521772350923408401229162510846090683341320069097816681048296121496597029240419511501624066755098318783301855191279591501161085480969365164623358119228297142047069871262230115117682157332829256304093798873025716313892267905375127362242421331236698849465695491548662274697718930083283545973061220808537198682988439873137293019604210786040832684213156731433773965675170075021176209227089162886673663278930724924517546298670005269103923674978811930849699394074275795566644304044389239582881240586241953107823004541274995747316536983719942991648863220665608617732188644104134442455737006084037424868170155505754553146269480626014282775406366981094784050357120107540275832114859272007448761933442669925926744329893601717600477397342623803360525196738535341564391624355194761426673928770616836819250750227521655508637552242234341645822151400713773606693186576108794914327897737563303456553555025680765673326305604830278687480231081590716508345396768556942501366754940990538861568578406637957431413750201691980786755712103194524624268219075945313122009604345150201651927360564319868827337437420115121973952969476033418293420954764650750635101645030932832416382344459810685381131225837626393100390065660883082300155974942662936059846449299367984500702177203762682067791966683751624978181575841870496955429677409519707634535568438186524376467398468421773548993838019560597796498341466974142512644032304006978581692334871986562257524473749004872816780325189559765603412362353635673873268107796854507463115484537935270394927919044697692995009935415683747570861876292611906617824703169715562079226126542929212525986492156904559160097510362324394798508945139812400368750699460907125509138103057522472702629215268785095020586238694710391965935630364190813934161272512126717517368364105851462019867153053128803777798753651049461641125869958670891995462262040222636031152623637188431020678338046554045749987815708478650300946389732426942534645594168789111738081030891883593386075258958892384860532388656488587623565961701315767310189872552519930829996379233699360353465338651100109832555366671776685670546509540154941974891621525839246935748215876135233697566911243170014199334271808408236434995973262001245608169504963671324762296355058451198340764833712543278086911572207940312244964959822168753531258330963921141505747541812173458228202684229110549462529158321095377383684934614122349848347705090819345932219772094859942363168710202679290603420833300604816694581860123815138294794168038138198128569708262517862657254101072027467479066686513260310431191281110752908384909024494852428389878652164084005907883642538138157811903156781656975795172198806416625702855463348578578475091471620991633721313723403390394384634013735750934656410249661048722369468047603261442291300485839578225954979835158702150483524564206456957826186052889132474831867785881524547697931454294149728260418063861721569531219430423198078275626561140845196900885006713004604750924790922165247579958084934129322443279513579112229590873483107419428919575025570582516107907413571993016774044142916005425065931083119476524733943625121779565804756610352848700412433919534566709364624200307357801134124567032180930993926582714908881317022534197565375514457692572094391670001568996104050116477223199979686213257918920030275678154883779558215518496844233137163918743872528975756994188190157337301014670996537125586678208199881226292860790110852672165328773819572708837423078256102832444745311719583327238453145471152606610281284593986517472261507050001680940906350590975017562180890358642267722554967367457875784168788471358736155111608418925829214878049804981631163196807306900118994882263593744667837971144179499515932224280305890621564411360589011967573528747587229658272490851838078846564301503172792851559432055050567565187430080482907901926989750717305177195386750744883822990196470751280719213568721479005175230860617227999094332759644467360999706457024239610683189723180016133795538657712712728262391874760081869857222431043934022709805473517379944478236005567337022255537514683939008536084216065246412232419663617115477857527419263755337827862755743122048209920549868212704688650255561015226734777873595487776816793968032413690193469216882756955017290329852664924636901048351964375551295432844477998356834327594337565255876192125729056515099831046676189902010132307982353005244580944422974142492034242403759270377849114268795507413063477557646716540557571888873517426944069630849847086094725678017012836022132894373423507329362425996241923317176318717801870406918830313084124362957434928361254678027642971178491674748617177691298442296236110099301971090711623755539558104440087694695801637336927752245886819838358049731844420187791030883818061457012443568893749232267291883959648896393034112802489270719439384599687497567195008470929228768958553795612697260445706988480390088873196083208928558223644760800042214923520627643244421162244756391052071536970949520231941578733651801788858542365517987053117021927850867897835107605694160063849645309312987601972271184142401459245996687334198580115878764602785375831705972626824144268023434829062592352259905562542804008943081402376583316017147465225292026483108379600481055215234248394635927118411264951608912681490241249791299970062418759429513026767984559125025431435892627015144991571034117779706676099475728000988294520606866127052572530220031456732495237020319552425380122119132650814855287052900071415673737908477610853969479762413929693135004788702229293297972555631437349722983880412892365417714207736141869630143384305214918787493977396379619699248783857128438298340428269265360596622838970122887482058035585955831765655802655934688226562015595486324142741414403051362435183103356984786918359521418052939929641604798290875717258264696501017212764430941821946214283452451157067820643916846418766864521509150871896006297539075136849240817036361033202356235666985430265829459071587661313099411458236033105953151892803386611354164789556356743433767508549181123321163326403080069719078452851605258771789480247629130852230152670349642639288245392823562806597069043317727633870721628966510954816272602186459076253943573062864142583499645782995107404638349377908405935081869676342283398558308446018795129184437328060310125559751505461932378615724791155482961106457425637152128539594224590756119400841386998986738648357752211784974807600143238262322756442727170724562465718860209630946701202781653550511765809187522508223205980904294858817259957257043857464125727407707317908417489701367332195560043586828198613746500978073824271704025505705289129414900149132861363197495109604197241862432876593024899087717319390269783254510551255749019814104485606932943336468835292823714743924408112540518950598646027902540967598508300884878478907336547112858012860735781390110319235358467921601559588038191963554442969168742794626053747727614382695155140012194644198863018682807717548793877444602682697333655212640121878849488820699815758686568295559721287307353650503751988792559803897477080225058400366096479534102131908403608001336068064483025926145915793807367178375122795726524237704822819062298629810253587024028326534210709543037993273423627853334062021503863937813220249384189840860797910657657792338009014503400203379385864509046242665054283550142228524761848130430860791523036988075422296518182764123952461997593059091124835549670261401643694199595088184409304362174269240011289004360259759381977816449172977723409109478022694605531416990194192066480959882893039736223672783516162638515533821331559464076388759034599867751157710308358250266071758359457413090946493354872756341297353743329660564952406593509035719489215153321325412296001482404516717543211716221243886196504925742165764774542582596938493935819669286195225234727520325263389869279836781031151393192906084760895547566122142121751849529378440457197939546446297982255138168106808278351254769907071811342941499394089296054297120792363708364447048572723608534779224554716448391153205145743610599582714547342110649259193453269272342999996843526669522244206615333021998216642983604038622525714098568392419430718086687983380543265322535036386538792217159322136577501887817222857743993141036474270820733429235069158904343513789211462108990065163922709801738810530163311742873049415472185969488959103579852478399633762408503835795816960859196488199650488841560174873973662170759960577119958845740821460486057703433690072037183372549040829621966466303656928082644934805997860414215951542253867537462460628542260545330644567770909516357876262081976091189002640011160709793530789270126891740683836683240229999463789735641452156018967100454959672180553867294206917881996254973356901427442819347719311894378046582331009502848045920152943826194850688669199049389669568704237503526591438345102986758692353313315622979403183621286741829148355323348062408401749931798482582731305003137576320522253758062097381889122154620153773789426409123766038048124595755769995297957491729827415073013404969067206299463216564266309421472256730363430201566157157361550159490381775751872701242533584158418635173357743915492604987190250172306881995327739953904559211835154314788044338108353513679449225872443972058573030432877477081362663148850704247008571631542710389450196316039785238554883687138333421334792042267294862082600457737500480244187517296125862316619948578433510768713945345076357832280724275857844905957938876001100243386689847159803426426508861937620292547610706649086237435899515399331144873592515964548023359724322341776751134125360143365192933134671284497789309742193166300937065695523101592476450019114178347439941244689379641632841117193999614822318739914034379458854397894142288030235469520260031998561853974916098864396033214550726665409444791270581679658971097188297792834190471757001926040204747838548343242756781819557132891144442729504401987032126709058897189213920925612915900829667098824708840341910358506150953029458108938931246649616909182566181781297381668563566697320837197012238446921351856807538382644330170286127303534517971457509748047114848344195976928823798786013895038484472313803267841491612958300545732665528373174388016197671393136507026147077303232824878948058000888919037279390268465824576938452659848299013492766185090960650078956947434154230935940359095540867758241547952468799471366370229184048422403078444393701923553639313303797388600432967405364822181030595578115599921540695557486099888993506557590095546746221448446462896098626971040541225850511024493882140687952511322828859088390552388274302897581343255732210460944408066150779084727670286435764768696233987412005116459528781349441895523176779629572788820284555910529135419399783672313597279872383744594433269283437026114546261849327755683606821398559266759263091084874024792107270977503918776563354223361157597829392806798960826836446849439725905753272459258248013284533158360637694473741744831750248338677065816161235085486675655492965022935941133692320814142979356489757277288935658503548007313614028668697568404881154052082203293552596973748489144440952715043800442515228396176039682738874664091008019618617885042478554929106874961966314581127478656290518154748776521111273740273944304328370784723692884836943196464250086585344221590161284530077269455380115428147826702937691806154492709595945238239126104142445053807394019589409488647444831705185463091436954121154589680439382337622184025431043673234324988137667511332289974473937436878279287642988833837923068093323229581197533320779661765856967845999092057951864479014445902762428499821587852777956587214975124071726110526994806553987904352145352139565043245580782717729178531268731418727706641825447466566315793784242239282524009810228443287917738733272116181197121948239004210502722400465080230957854130556303492087100886162526760035604786605993098440298114658906719292906172982471087398124249988577515537064038860232694314285178532348412756575410450547024854405499624747096371510272072659196699069982618847343157743822323743253239388922454316187053426275329539046955212278314825904891084635321532232632004385722811983032467604146800349284264002938867423030802149726999431741228482641818495115770290296038450481852798502610221771282046835931507396942617291836569207477089383062013697594878003892008460588105245158603116212069033702360756738233041766422438924600831216151355428958642294234670083246899677394438310566889282256877970216055158301931251631680452502164951921711360942186574150847257276741541152763860600204665253752619832895123202650195442151706430043926049195326658775002519226506733004990526744321427674372417125875055679401218820899208584266412109941243764534282626368786131720374264435476676904057413638239074910019394796816973194753794885695654690022083419555095609584793894793217098484080115241012452829572985514733869281252398181144442985816726634812338646051142675263331618875629675039538925309683157279897883947840000646152046905995327525963352399252044358481004679980927595925706184675105545794019687015915287525085866376271898761058037487839258913196515127853414836545843704006905613277457361005631459662860249402924016685273647663744752972870965970651085136573587551124462388803957449441419514813575140159562359357964510575269652501204511899148564678027413126512565865537757286604787462681513660219027727184088142007915812700810504249505439254867591447708193396623587569947864699349919788697808863081107666837030340115641131033195561323592404175605536632262217012278249738656196219162870756899528170756182668465152024624296662202548336498933678596239604576004745339516463895610745628534516568519743489711421767514276471511630137027227095249230569678808304077323108461557471390502330838121256762700995892611109199272998832714032523866733789164018787602251468027065779436643643129730741713214011750642881581685968408011299632457672486054193799612406362473676453068393264871012809019756937984345309502814031378732569576352078176698922324037399755010112701092420539497296244504178211201298347622689853599286378105540062323304716621645333352169355477291526359567501447963499335565229100645626813237996931991971857660581000761761332279972924255097898230180606830655147896448877730843328913062246625226384584058618448615136957404841052996726060584273474075164375382605329016596540830785244154291854426211967949105126140146858603795651470662493801915392632849791952340897565603523230109101972964054281848558253838767763259604587145858302246451979135304706496946053735298250841276693723299539345749239048558900395796110857293468424057765066472350554995208527668173434990584342558934359399730094039897185613935194669649503968974561897520761043965074734892531862693120112913927700169086015869661944015611721019738168720864400000261838819349670519025299594080647943975663814522964985869067030633334641689993793446802812357264765538320660467787042810388843060187161094557784363729061359610069511909892837978855951474834894330506277553870580845257770909264618337887910101443376491976787915546440550229284062691921827402647701791732990587477081085110089546013568123680348327052428850659484275248313098541399958559268811789673919727311495851217579244027996394315281281124138273458000696574458421655593472031132196234489826589742470667690030712412429448323180259545402233956259821469135950180153179774571369001992443575755875583614050951015070410395904826936967614195944196568497826837550106369683037879392848331813207538493296019701257767918473777155107910535311535460808037785748745538633025211028988233321502334295290305426425579782647813234370732351662701235067820109353426424381426586799812754913198522880628156162269420424446579994200953178403696344789081632080959531870910019463153212246270511908370224416134159530147581831694768824185225388223326276002212636192264736034785544726224206091284622602674223747998738350775355534995588576341920925593796654864559342875213213004901463700970313568088384843353716261949147338751828725018082970377505623967792232920898811804470900272633315766551386215289525171307109212164802281685428897079719575261524923283247729467134379659772079399124128418538434877242352475502325033076461294618162849488750853936251124880146751297757528167080865098640353342966552381886914800084056233180265279604653514495965490829030560551004007038474660190739038141583638807761509145075450177909706757854846705732637904456849649547725766926731272918035580342559610747185344424259517563214749314694218958607969996843939916593213689382577371322191304527133355241352198798310467170215430164507384276078828523616104723525116254311585507983157909087518725823846148477616263091033497075095682226430555713642173981326657244642945261429346534999403948767228960164050877796024848380097150584592661781216054285110689529762018629051665173510944775205467031734464595896390182607782190640713717763767026554085628414740185832915031348156872481279371922164498818688343249427687381362589291232152997361342811534795439489707285493223880564613810303992243632979440101806372746827313578017521725915666786611148737012258793845823451587582914718459927669357582126692492946466139575100783837023075485376496189705476881630079712629757756680094974644281366816699822868336803421646572776128739949529774643506708421942283382711769303608312673717752928371466524672658206369016266103368467522437701588972818082676775871858538025266198697322073233311170537647095297339656057192293046533096688136687737632621448958288623792199954289779684121588727511368800556334255137457742161348655101123161733008349321926022232246985667285019402827164626693871440923509305009943547152728916226726937741319479681064652649947866433753832950081173868137853740556775351388683328921524035465627338254334030181111588277398436647068513609635744142751072142844229257755112952315856818771642983139473405910221018635797868040476456522453058536053340456331726832849623069296603500198916252037241265527110585748938432104914131248652708552581024955121415446928165290458563717216797218203242452837600099679655789516145816056895706978218758131570956300660985111824712655023007737853018951960166457660356489591961924467480771729895233509065579814863935791632667363980596566434056521041223795402756500923891046683859328546448530046777400094425443537621647575357556414503556611819083698965820826424124004402093556126286756460785462204443187860878283855009611194179951680680971865973199103469630972886355864798436283721660034201819202560481273008981924263167687757012005474085517042209925329417598655523350905935654517132038639437266369260748181806377292179460121578514068819768176052437906719960957442644368427768417287187523456657604397736197322756805733200792467039012209230902769540795000343759869398111990539864001532186339325463961956003738716993393625686119852997666786256331210402166051930687093899362222726911164161433994236980976346574784926140630128361207213653920563386882547097386217509268678022107633207616212916391172029101745578311085215042215026633898375243321437889758218456956289872114764821202057251466043349943463341517844000774263016603752129908166816607331710597353929880179160412239592977507260130846905316201283386388342030778426044842086113079491151297470669960082854961717895562818960023784005165448797715798012311006329838163141176292483822698889350137983188686517447374153341621902782742461753052833171657754075743677146310234068150612566063062641685875937386738530130886071989231664978369788179551569099126411883245325247736813679450695924011940122205854600184960896300553548750241823564699532479680392294754295300492472832758606051710785776964314241394026748731840442836519312391803292760632860800458211866513005880175221601804519065105313152021485471299357865616779844099882978851970095077508120397060347056754734058414702185376730562513294563271300208237470622453537242388161426492762328785630131122308043893049764570425381570845356731293006711466166144702990128730935375498303993111201196042717375154454118066543556481603638032060432909078980978302614929019451227032501512694806149125568258034821891931673267328810500300183769470586981431289068670657561072412734026832333019939647887300178391782565421264164030981877112949936244864944881924425658941194777197942311716740881243248373302328355711758838397980340341608376296449209551218198151743715108348295518393772080453659456356591291448754313138349214566370793881100945161904615158445348819614829609210468857137313091016348205043148539827543464268083395136448172288004614216154984412671387564089890752708898635579340128728164482610431408747322895502166935031298866318781617216177797334855139493587854322038532410437359080531070573101032027383286398494462549366133500111550867196332964962652350825052377522522698425509659210635687879245985714515635482640514964072907698992569358948345605351201711212910850263666052858030402326798183330797336800664315873252761917718017807741517104322638949721693357779668272350386594698088581725099512029070917727455826466818696871692232177769128669735557953985841317704230700852801025620795560402128362656333659010229254666924455891705314218364983006382535616046640715824537174491848999331044304631955432959307927041553203729236322016775908148620221433509168137097504493575545827707027416679747039405136591897860473129577805208058256146676753405575713512378120793069633949448589300729595978814710345366751082413854687699497976456382297887352452570804848880306945095558705514490120141373345347962776232274137235098398070263607655710565977183831854185245268706297997861815107837524241156079385384848745273520090329920042412325762170666854375233505610503934288060535658732812455248277657508821827150323408587179094663720784870377640121685910502332307881467761080181280990017238138838719123063288133941580698962824034360563096883151156219741613424812479514276580465453758493402892255296162841288574822431543299946715480795472422190563479543602361270745815979260291709856102272976308938128501769648882142521911758458490373451829258447908429089228816079037668001292528339626640462574031059052353837760104890014612151498189664840792679673150006917004822950336749915776869975426668849425267268449921012209928939627800427034422182310654225152594015465056095060328710657771932295973584910954472170267384354234081942777889021968650800224199499058847304827488017621470319275272915915712172177502822864439532092796072330175577072517118512025403555643357194751450886704200823803234276049216015141209548098305203017679844389353618072724056488497130860369379926318981044053117954757786430179766805274921909439740953799485957981231077886495278484741124476031173690493600569377027603018208196649566832080092872300483311613498456198372228327197261775625477269789470862301630954868992367083356907857227154973739197346740862981732904979558822546556096411968236783820674052653242182671674981468048259958440133922570073195650206517546300112158995496903219452789423768412011890040629764612875919346100009652026843944722971047779412790469910113118311672207238560724534843458398684882716132103440583843695308239289551719251676999388652988321217588669738952144396908574377409011308200874530438813376811807159018662853092008671761367121228406827583797951039950200601333505729136864305356294133214266593629957356937932941125064575217244439504704464970666595920290061213143829909830151594322465883494353504334600740666690914604485514283858178888144622189971427309860537609902783959707900297694884682494349274613098307658277553289337058846932693228210563565441607184147932279501584850753799304012685957281072568216577641218591019099680831407170250783337926699690027745323237986216799531932803114386237902450444894619106690110321333146679408972333960328667787504182774606212008961802357686943326571591267606180194470889022377225316362506631700829483925687196234795020174314544094544143675878213738435327521583171581846065586080360401902000508948301248983982931180317805949858930541134851635436130081590733581152475662638441791471979264407451535566036996569839997661513829359137586438295649987395013216157852243244129592763519066869631080803714880813253648382241138658339758204078051467792962905454094296446551257550783766325603203345580496724815114615213657340996247580145630376296035188982920470337055631388073965496941095289230845040675354092572222464359084422111616486143096012118319120217117609445955621594919241051554682035718663115501633301594320469348750887164029271033470858771896348936124937946031183748005060548514093878019238194700611600904295738577788589552065295722695116467238097050842398041962014137274930428527992583565473949085602180986984559107893508285335386562415054205067940230640141379626170974647159222719996484184325394490283835758505262673666129052327577949930658547834330419998332769263076711716663045856798189267078919231041426620777583340962703173337422398059092783791594349415521638102972918176380532583020986811988358213147387518176955606634718577311510445282450449138124547205910356305629557948746115015949095818854228808602342404821956409819535771495704016303007313379325364829601465386151064026699138615010248074720440389530796512987318587349844106277887933547597832624280875056672304692221443537839527864701808135009760869193504196602284119875655263802975553740100686662698656772525370061623836480352234047204757590150045970348328990137111997021913503784597544677360940289581704621605081907466899892942003507403102180084061332122131657687137992610825596212313774333287467246473990650190895007552064249464386362461404577718588055156725900047939981538493981873592472286371917024869693867353521005620233587145763217229872290993752684693329090377507121252484863737140941198082945767359301165313904333221758908337176413422472346288243880608838072081304771496139749655880451763906248374193559252498676470447141522615117699690702920663944121487447860919805687926541682490922318201231107020094164878750070563789306881887823854431682300483380923541163314256354653573570488410824833521441513955522295214804231397055136998073366805731447905082447783055621437280876329415990017103534636832653777887158675956379739728443291367467384879082844031296449729856986503466677275105218351588012639723233982236993802549705171655388157933293704827085879501923657775369048868629427401340140905778360738037874210344319193554347323870062367396999538780823155723599329788015571519215001355555239194364301960203421199887860601534962502946433505359100080057157354356799236042793479128914592426564475009596226377347744905622761975903965516081060781927980309874058647801985170744127063290463258745237501704752781072402981633110656988732627570739223536485735249611219998197782260602514316047327384002604581968685749933400676931714084188800235603899956638147868304815818795379623749032733995342944127158435645497980294579918374220521756606924251000787862825373406713524299816290278227219822203905297285044239324414955510658719970652584435467751251856587786089285918923242691485291996299526202495072956027001165155079361093893657922124594619723584292184524317325094832961506868489336769726772313807984472256963350547683624630458207304219396205930589169709799518992671292965394797153803075835711625282096415052843872107572698185416918659262277196342390643460908057678466597214961884271577962462997428263538424952334185425079506887093936906519621461808360173987444643033556459068197224219726344141299213061763325153023987643502436156840627931615995870419286206843981200517175141326112434231543701753281627852912284054826444992692762806631432212131532163045641424131373887015398392770538814588693462501327223911601716874487693012765588746462184183492244133025116151553073154487693597006447134075207736880526206054532650733999380455981580726021918497920500035255452061402487453625970244093298944107640200111784836583085368872614811239381372157888039309871047435461765104118846682766284286111403359837620057226009213348036802695200210270747955475317011254055178301440072346342948075707277134892781950790305583285041236839299974683857802566598856411069803745448157594868345673603649353384458577936245326257430644078435509602250108900945827810738832491249811858345594243172793732289059466343191029960817781263554480434835937195697644485559417981835449904972151884908160722820869219831257054076393259216704161281614968709575743221524428658095401496826842039841403048230685233122209882581546464726964559247134512518894304122151858701719270930276253609916446302934965289930695295886732632130177748680332558960867601394007568694184417018459565499149843925312139299350754967858716183711286465373932679059951776909869536703335941611313217026667941607732200344074346480198840257320769587820721994731341989004971522836592820406743127855282699592734788762800081346673351567832961553606277512689896462957710352481691862517498617359773361697109385090159651368244202238314161173875602241252614020507141866112030975033249503985377836960834032866607140657425163998253092931862015176280869134167154037000155013274236583204998124282125666389348186664037467765127720208089872828952211841198940614113439246807673688881930077776492572616386586377733021934158784383393888553211770197261572420046066952960638547574706152216065565137910282383123870946173659526200128324044282042717307285477364924503633604688111609422999464387335905863857387566259399648753135524405182681602284830386438328858102199542570565330567144201487240560100332070976203829647328640208905149675448366986441048002246788203316460078898658540144599737318630263154140363190591765016648724647761288889990918673021647431192181888085863906940814480507697337092827051230243214688037660301053840353177400067432826306862645955050335519734083608207396764290506823049624208368444311607536514733983351083472415616355938057282750131201139475100784644952768012471151979172692675762720459382528515033281904370920976581087709435196476853857211133833587631182937639060561129579544349018566818161215513908371171757810663821579682263861013852824687890319603658112065985552816977173688988510013087498156428418557854437842337131078778236755683548369332381025754789828014928573355434931199978100216303426829794424139299774887432677874956626763362019708967174705723600488436909728527421690947920346433645268516362749742464697774088768919682222191866098417500448330072421511256410766306974888737861224583740940325060478495157136656097157010380266354063651675179603006376916841823619663918810244612333327128226153597315471590776497285997736427198650971571852834264531515636031652818070222319229284990454223414893673633587805414784453532170903727269225202502333193946962002921419883340950368485250356145385732696963366451968979693020579919769794713409440571605712616040097816036110675816726360182648535399207534460754266533049520380658125772957808310515826103523382968904781558967171693392234885303994594168231941061885225802998019312585636468248243139362221693667086815816097137483055436719484559479356733213925737710109359343068481239589551192647285671253921429951954035248649518832003821391930645020716760137187661249568346511361177094499446431001693588605469712160119092082913529429463371691617273970423418620205190364040811233520615036315899839827093705459852960219130676731202561276961770663410772922256884469602443643495939598197261376896510494912895037931497922571704169000578108686694081593279883967205305367043995478268220768877285089242409844674840705069141843472690722600324810075325194187891201615030633649020301921684083367253652539725258312144660653131682791005919842562273568688522321737856567109792535884835226796348543586369291993092775791204755888101995866821773673246525457233176175529957095262793226954477098384376664128149931905152880644157967630618339077299222510291614843946607452104784767442216833916786473999437323632849975602195017519563202248810625584064078380061618438606447333107255364774119238131434455094585880486063453882815941322228361263103792430314544199796221820502481878552430246406960024803595700762347573332658998020289878033029254616325374547850875619731187627700499588855308031841677477940512704831979553676179620781176351967761112410313625150861481327774651255408405508986609789325003164259444156727283409361262941882571832843538788096983470464391445220036149785097498404819372248115543105459101418559613424743481483212178462717325870372013700058801077496060313427458071907710797941352614168077772062241056861289752347759878471165786544962189785442840946887827799935281470775674609142260373161164287152114671712882069702919858360243726647802653860867443456998168028216412854241642581687531838805130420704210645623778677249519975293278362675228543625547061212091649047646738996893441286542523763691679898811117028203725680273969588297670420232733097742835889137212767357959165775640226491427829160182553718797299556234413418652871974336965166948246701755448612402871023482737350542854618960792181933156363386582830345702613615267516054184074737585887549607070880464884825128123694347662605328177179722252584009422795862359248152646985253187460572057984065797330108632322022259764828714364259803033689379857887332138524591366614560960112229079236207850188062093895464115237029108711259685180987538110546195902553180912358217893902365581038150023821553405562058867328099360214216748655658039986734198268286897067677102612242269889865023985179157021136566319554082065864669346409887173930375093212554501791602533567893316490156510622536943091378370829687828787325664190665224910545679017517072531307875008129673334235636747969362231626858372142606076288362094230162634431094306187756667934912034042883093352833101916929803243322270023576502717971423162957354961630109448510817310656517885079974758906276892063591179095839131663846502402686682782265451093793960151935872542174803555619385871252737065193279675735802138837399394506146156312033636641460925641939211430319325869972982344516782046018183285280317603429840667261515271870080593910646754075720536304062483266971672543534450281750274869139254588931343157590821853182961298624049083837403280930115539451662880659994565591558344363829229860733368325826525734625913163142339321558427532228274432910705498779867863335407863647348505958619599490801482912082964664674238956567154833867903208070581443387435009179697877544991762005766273097632100552084369331001825458489887891920031572201231404226126896305251213901712112396005223269126080561514063983059584206525270067038276240395337872773205315356688524635914222194339238248757721298368303441038673659779474118095785886688011137964445328223460841101219381878994825519000414179397347142999880544774436679260603784834679087915480035243045573913747453727982520756909296254161780499275431084397391935678193960946787894906276594169246614773574896773176493511584791259191815663502505814772066673815101487631581033489311298925718193887752421805106632460757700022105076885426959738397382223547658306208263513682298203522803251945451542551873990908632618748837999557046631003555296859079189154369920673292659991297137858644314398316303505155116952353062350380728539487765238463330902953737654545319495588037593806417342022675455060318396129335278146103119653082945441569357747319983631683908219996962795082114549091182906644008487158804963888162621986427276350371678550047940366190999844770770155708809830341758546156106651384960844609652294660799257129765753420842013960176847412122764237292845951526545940030942273759519102125033101355788455579149533536545513403452675264718999040695856764217376905902812396455387299490774302991969969837139315172596313563982338019252245380792654388516977108020530319050432111868024355955154415479913951080630191677742488066327676357095660436816527102809588083047215994478051487886195269570803982396145835872840160230006183294568826595769044437026069782112710509624283988579103281836300450916966825154853444320264836016095675106217757938527786288140354069230568478538177494960215181200156333837959892265346517114386776545707746149651892447504874171651622545510448598972578462803082375499503395789081445391004618519657802605698432871826223844264681774438770546800791687854627002853432791493379829019356244485767206761448477316159741680774432042893560039038771959287113220615288913955624966615588942574711770281071184985889941755581955139846427270930654587436013359913797606885725851570888191174617874279583766004936339248929598692375573023593879520647741614505698542909657888728662074810296847685722891500954111068444675163065168797603295298097051633918018645946629756927953101096158456822581563129472027013361672513334965541904149546747121704047317171984982932628463455166270666291363347117471652370973747958648549093359621646936434215269259453792154796929239458256360459083886542569091223538435064176447699575570239141897552048281482506647777195335087557006150401903360064896133459010240913338872859189751906034645502918943654837521672551876739591965213698649852010957709774083508580589555332597341871925447110793558262024379456152120242385012684313165543064869025604646757395515334336632762863889411983086725773728091361093818463982752253140019379792261804794502964739451751512246790757946323305527596937301127324598937208404573419289677103374999964615013718455321942998578057614821271309834465323563980546070549205277724985695418385173434161772980901753192630361261787136452373262673859695169481928129740164977665463845352261632259636733869234027463455098213229146787171663379684654859691221129345774629424764390437293524687077127562932579581582119386801693584150923864337171879793346075104179866558890203533826883995468131764914956547680458234789379445728373624142223609156658022116778726617004974876616732879399370806264595137242951417252908814983395809700098692920636523721407079554986754417000555480568000831000778881918935085280512223154909130731817338805411088474754181713725686477269957214263733720750070965103491763743674754069483395712110322351109712342858571234574887060900414034859655518138661271726830462775600775630659914574541252975622876903703642483800539369143189856619778931282722697127313464742161580644562281465958347138733901381648847864072237360533542572975815595116185911876088771275072678508058301012592083269130771372221430352491879602461703186282816524050380498984273954842874310005404219661418067348174573184475452266716131169449002573178567221982257019114143330168229031520382367370864380601968643483091333495191509238853993658341885190858909119530167604862134550940233992344241568395723029888284967978794003067608427291795573951114944399330010910043513577499452377102003443149622677525460027978040192552061024741412419934203198762719641601179861248075169266303033446405777243307033072362179743878620172773264648436125736377954987134193731125425974480308011976435186065030233606570638521676632128905988923318494955158222175660550893477247217594306880032366848069079772074752216377606898789824115622926328382383424135997671115284148929885472753133547396245123059749278738837539330469131063021701651807679118382222144875333472542641134191620175011979948098512825428854966034120776498161575243741615763677464879076364695274035557875325610213693150166802593494032232753174662462471775493324982225776653231586640148226509297341966058405792225631985129517718192174991560670357069060658023010763741680459331463743568257809609676668458460060201747867474955100977434061061823563123512476696030604490997454968512467940887480789372556688286105233445705005973382561280940724570205781235275880458331358626925544932300690245985664963516382300518555646400348845673044914949256026228638576845996490278383323769606693416897184879594842186073513897272743654801590410668489704134377809628816135130085471758194225213276506404266522412456141203379682069318277432946059053334188170082363104048768036461633241501875416612535667507852741914619488021341700373469449152460760005885055626660254020837514672959029391544407326403102549472559461375791401368779263978386252455361816522778753393319930871746942846539282108163364807070290553943309794920672456026492898297820847284825112770061446544710316224120592121298093824341035690983220344843389771652180249698697404441331502619435437528808193272613402608318559917615704015239617968027638631894798148961142958577510469321419305639353416326583724090203219223116161872489614214630228126779541049096340010836376686026477609896275879367667603960808782736825277525651273224102876800534110087816959597668760712926625917112923947555101258647820577805084314523967011526316553721739146855639402714129606973124342184516911455346537807102119616504235827846624394071948370515860399752667901008642024801717036028496134131339824638868782774438032941940097204286096497135645304717338527667942492646766897230859265787981570534566799422066783826578032742292341227539049534561729784208847735821029974924914520974852795339038375421407149259859597393752198016992839610997599582252963943474799748227343298279091586931092248481789692338739369887570635125038110782366605122817404167103950437578941101244767746887117056834809838817628573578640093465942825208112237846018676059794858797989094091323432162561077993407585353048700566009418419865098897108375201950908445858895542700969289885989513771008913163002748811178530654776914579043728819231245889534228420671414682154578899085009082878344755331765920227661024482160273001723357178719725853990054865198864268596834706540958891703724231521828414584179840002054273709140706090319243590870307659378945984713865358148571371064911961660115743112351825718970993539517214984139203847909496432294378212223984020249561419859596939626749922732359816892818637320826093437768959971490203158675418092408582637549365504339577587564317382493159599473947496460184459545809851136661203992389254396910324031116776245419026678728013825933190035784349603357715217410686006352345577117111915556674443416436752112623671580151843858215326743901131806608687080680909437923544710438506800491601111561015635031866525779406947396351765074019567532738141727619013463181369628361276428134454687190041095345311895190798523840935664943906902912336335584616028586248497905879438651234125263580221706105445461288799504463755892084838350458036437901791931375661731440306769798438132295885554052051541541355877673648517510016840953154411221763809653322418166687259528545933832953342964306956786855351845932024583857105288854992853272149290578893710805718651497023589938586138573281390234322464269778601043177017424330498930141457283979138056840968591539217823405695405991939240439136240220602931797385103464397236784487472343057556145430955687963641160135543215442449496906892541893242876027457207746689893233308012977566136000043642033197742953953275992414721166761377805738368828906468751866892084019134283757150464323555155714530851600038421602142036654633432072992635645380774565623086244912724541880569674840227956853291065427378991394101678877098040014252702468567711615615046753285053386077494026330169209351975737155224361579480555239608789808376843395946936444442120342419797962854930880624586643665689056248003239094536331526172267289022894876796212548387950300232854541992005744941389178473999418452918320783299258016469495611124028791891126830926049119064139243955081822029594393305427398142914304558825328891709438167874300323503536699704770682547190396300110222214476321001863819087283595062498070739786764088151855779081303747091980005925050783829277317442273463165360825764746822704714272413761190286872079958393068679899253942211284269378775975281205941514080537833980589457999937752306512632562843794138206522509180078731221362603464717942127823581501227889447161219842276945587039733486607848043898903150452107746011708668121460414734155513987330388824657853392594894102004409845551431168200089332466990635221223443781577908835857098978919072352073641607264433582366171849286531814977205285924323983564394122245159549768683683263178245749181805339223222193145031341668298025721278781334339509992885132390460932262798772351161898045956498725200848175217947207914820502533619812590263554393561697270734128903814986228631347062530295095169412444287104150220484611831282689880916618232294327680211788170888798572585644757666836687093032963213540610335713950773807734214128251801519232041441753230713429934225650143956769605071059866129781544660750244169161780904269132825397677985921894956258598737807315567007060938910511269631697858558426302135313990470756475377249773297560107316339475370491900356861959665608227532569844056634222631537243424522528159705760738770302359097087320792845011485197238400375573948110648890961340602341685191707058971867027682424696893084778357637925730423669199715711817056791599073388757326300001999835945468402322308517619154500258894279960060061640841580263478805265248080961751309352570847503190787636221630176958163869332278425813758669549028603224744142862577770500895673217539083665923270199397606234618388143701164752118098163833670363270069998812801697906464315402250429921826241230570627360438340742488986129267910268754100517473220197597485261453016815929941861035436440388494233088509169663899187350447501950469274896529160640929087670462592589786658106281201150392197777423233344616521888105628527977676847534565183938323889795285105889576048222603130494917689074802357144936366314588002009742741065198089036010717947892656151235376065210960098748903980040400801694296777115511448508697970510993371217861687403270227435366917778258988231381224301800040701786447312079624776055208077987735584485994447744957248767426842229815632859826675573705435435690071769081016454162940405065585703507102741657996246098831432224397027202296019995669891600244890015096340202770400109494678466972694057146387449234352208486178956122420339715840726632537343287530998140923654414297528714541117766759179800283972458280929900188770026928849514184005476660451402762883482808712265355292724430060370074394702306367087333235661658321275903245189171319051285423561970319994557444601987006584747231511497022804368823502535285050737268688093049664380096897140897806745328384549671757786460300487118654813590642842075952965744220542313804384615198130040665684826736953669692201132046985910047196765116206629674906683616884979198269558925803775474704358127310371167124769837285680690459767593232903542506824571555336970634921356856031434200159995670141028561270294680758696716288751944665954559440066520206204401737243029033080682336060168032861360629632055933256031535904718725046780572598098760428288682757128221663692300274674813458170213315849449641502272557959692621093918635006881962764788680303938290239580162434203909932357626295082068696062121296417670647311822597915868439103345603390450271518751609322136422186927128450374282219228091412865370472873828419508204455679367392042104883044702975114217198717957307450805323096819832014770099481049201181238793022120965837833000764974559343807583597167427738062977426665147297757874559261844042091097436716082189461478040298402076864241925274242316505844092874940771652427815653210225168556553400045994413930027537658924278610808555214786927332912916892740458161295140821849627305726914762402597574202684102326370097865842618502347588556719646773934048479204478148674848543334233321350249376019120390297575653745976748693680259692397471305231850399089069289730759639808378145951335496641290627375031795688809031154505763273088005098104535459049184014554046792188176711819039530587966373390891734317295973222562800695631529369761910194102843562410567786420992479122478695707026504239394188364698455874464215757393061218259782555435835776922144475155765256093464211563078664940550736759848662505915239264378329605788064963322485108153367422555156370113639190414363459655980619751511183042968937191887876352354313067108587830166172927581444966450943532433830717961324749074404322587896507357035249614824058532350216566639776048416814612435043489582807487182250363522533816692857019571646659807505123811396669619672013301774007774840278064203833046987172814007855954003002881290706896650887271457920364788910042917793323237443190275302560787474738202751003066762406129021946662219415103615185443023560494015326295951596437714616510159351048142777608201053532684041168396269232367789971134410582882309692150621271277691498459568586793822666488572601575653484889407144454565725357899691426508024727198871777967376407018021791992265823070913303208803190500264311399953238773128773923119536999010738993295497640261772929917128619601558901068001651416486260992797072331247846089674092621107205293003580970234052812527796938535535264038173003148352298530149199622082201760938942034198596750216847834567171213193495413398872794881244167688220524302965153283197498131073713843098909959767260815631012702131233925279526389783591401218533825777537807196816662204334753767567085131371119644062391297784365031561398339280486063634676837172649624323255280695285933548468384192956919798066520426714115181294583895243440526658564296179138910909317262924341553426692596821905789959454581331106948614506671423793351140707320924506254422011819316100049772922602414720122006645068481701644619084468271058353372492311340499167540831329957723368667038411574461082858831751199478228213558067966277460715119702163126032279407683388563305154985931782948325089342577872335590263603793330722553520823085150102900048366923956412633426813624359292731500126240773850850849822639362622435265019312977234911006929414842991309888476100026890456935499577075648990969270311455027979008428792612272993314244071616493677953531054850264488708916395710397412785462295636010786844254562830533673021103548473649720647082918280076590065314462322836221094789980854711647657440318277631334992737145346058875999241529504018988213515130148826622494849510159515287361123315867024391479073172695443828352984398045198255386648607042281065501114016314407765387370825500530806921984600946863752152620337619163431032474387634675200542256702187228511597681460301518065012784045112017753655486930174110166132630204370963267153155981736847379811336639062844877356373780143324606903539845025003082705923657803371035098813979143284367557544953141604792005829373564418918961229368338996361383809361472983540643807857498148467307171995626759003913881493394776880552355256766581182152199985819771300976440034325094793977843011430865870337583458479442675221294448830007808699762467343955569039590216978961235379640312987925614916580987625994834074052844044309124424270948614069364216381147976154722099618048692641945056325833443515110969859267507385451795617789022615613510772737040341526263238303404929724889855253905986740171635625404065291973203525618963658251655790778014474077116027317369255100750287559518968101419269664616240591035168168401354942791811417339291082664387469902507300314187160438969250431840062152802244093584339466607356312492960683491573552146360798329304144533356102961776298546796700297843614903881030899354894788386590685936455082258822542130294515483524793404402558896681770931795341721797890160527093781808832888824398358206212149316177830877370627821029933495607585772350759223579477199898348099045310879874352584133241768566161896494504605062166142331038980425882224115158546684296514869923358511816618430015727794436731506648983190343096378211581580163183784247517176447583225123175882454347945361896442767479687731238098880361871723973461967812854967703653486629990175446521904920807933806802204377911660604848181129225743313713773009100218562674755623915304707252912355185600708077514119567139581166592780352529085257456232094905820252256393417395286141248517178593967236410025047344977011476837412981962947776660064767200977429745415673576366707024104830104120815028718803958163205558826019455859198762486723120844115425244438211121806565852476852857039418203974858549629063266898634324903165432503543933271092464233383039164700098849618157586966604748746136310106838356545506317062404904663166327729513989788815367816296369915063870729878894271297990168624368239872220850177523448806780370620113123336542417179755837247186963049753929794867114993541120638476760807935877123004295474535790781177589325069458570523156153334004033556972691792801508537128057383345336955656942902680191053614713680780365106178971182833268002839529380386907015312261814620534459396788690712005762250930694862435690676424268027893088725248014935947736051654004036617152710981046445420343032226851689151726280495052473123135832743015464722739445017648096671177400790428925258401385338413641599272179155456610103907525228447693003672197359701440502937229326283759062729326235642241930847772426871306523006042309461394583621881736239735995559929041674079998377471285696206618698372878495884308732210060112127305729258070993576813219336850547923696900079791109197662460948523204127425239279712334664776035333938224336050958613898653161708962036009157036407733542746603543015408444039710867553996642272645117044864387860143088245425530373801694478061289252364878533470073311762522680995733579811753031459221058622364527885114370007341065225928087859642123474156428602416099880136450704743054132668919996853004193684137788216345308393686813405167350915752990165537173560225968988169673477283774342750542306404464500460741614525208997151281644151896639914313503213248571071335065181164192946336362577344755187125044143767845621003774408365151875083717072882136748652313862340842905458164371534863680691943912636480416670401590446575093178073436353281665844173835018824987659788221316125287151108913806213443815601241800408049364103922128699288132690670518608456807566754797808641530052240399586671986424072739281963932420368936771862057954737721231949305512860273118890146437503662115662301438058321936915437890737061847668485642315214839205369876107295143726934040715393881429438358004240710989706684209087787906540230084410197983816416450725837869137409769714735036161296443106630055407922957546821326111351573938677172885497678736848196678980007844940421439087133384385471817169522580959415564666643645224254291822571180969656879696133252724174077970593890771651788256086490818472814628121090664398341689449689942163729119268352369722096483787180538669273508794069377035939969944315195569792107643429019522791957762116933477143904059976307027338583539559635416478556219341663634575091203352825612936315984276997819485930942131240405926792851028043620712920359959171367220843843611379398654093893238181720735685571954804080292465633575687548015724848930558118646723562874730247594346652178542272480314325489493851470136798593616945652636305661799872265456113659593616171796115402122345180196287419159657789121684079854339670935862763606331230881458324208821738068213363165955332534223727014991268106813909002519781637402065386057667764214243671667452356116201597467592289420771054258473445530553441428531102821282679904550039307486251530955534830039963137777187684228330916956667184115505819423938006107202348397775165509865642747441917191803215710364419883656418675706921013624436848802137461066774487244010027428244914836980854917568002218929393046816463045261174105317882568404455555384486963438805972327449874701894853035357529632698655101231945175642644865102666521357305862381990621405580237350862726046772051402318013711477204994747490111928562512533782133921617882130499580280877720430910080182227903861769924119514378532371763631640761643894878209415735527905381669552081570571388181033107469475890694001592063348028614491737009171906362756673987120640235494238559516340329564128944224419614394519910681329164334184946902222905651173528188478760230284953632826317122143732382702799466780735860478230376825181798357255176159685370342860538150977096389762593617947847665505681917695176391012659546082448726952945017022554887263576751630968167640761850904555537444812403226758860561164594816006995892107424725017752379568970184061520136003206583964382370249605167211521411324858076659083458742715301009026540509268496747208807515945857096050629280982059615799782829899896135131900012148209617313925485836558033490582387034854670265315134631435189373528079198013654760967809051042066557157788953917374708648164413974784175417827235807167367946061727404698505394824384718830500053859935560422515516268569150292715463048605813855774578598060145461365285524397585777055908205842402258978406270157026947733951254007619781605697259383190200853921214782079902870021361963109590257152948819058975113354071537009358046733366845925259790013417565830007275872796006635798187438586608170482533329258959377660270476948758722784167926921111774458943781133891740286356030770654127554819605823617556692536751530529850917608999987344156681252284776555775759792861205617571433237479370597471574442970790941187932884139319233011938500591155700802309750989945615064507716216665469302724173524112651748155540156598271567653178647894224553852358063886803920914443417130743883957969779633283380695405478068818605930852493780736404611607505692350099264712280528603863481073224186900106099800287705248147228749016682124515422602612265144996739429098897936656212596371094956128760136063218615632760356402047072351402755736576315594961217793142408356060687742565500908500073320616713717453527820821364371963811137769284237282716712899090849508017632349483623554509970622217588364633671057287070807675840824704490455425431758622615263074464927487751194668604987291177441823115801237708965527938232486966513491131140315608806693125816817798288884588258360531602891026012502011384137322769019634118649259135951697820679350104472777978136414140074213264229879548895841275392490700841264682138133946868254253374598624267190818595645459805835640911410543868250281591858968734108736820211956832903364165035331474134024975670689314962550001414754675485072949909005217710199370113042876178859682028025383072209286046518729492052980730437059142401534484413123718276507615971043162485242272995089155275825757839623218751859759442028859240654102309882881254323987188928672314884266463976901565649673362408077252505167024297793217280533045400143311302339478714017448482226202931429514095725210858188275899342708497914162372672568472156366146966317873338071022689371600486877604387889876418964115038290553888246967889273947236470935454228106121220762787960639242533892418143985104326484009418705971137809214594157654201167692746383100256623495433933163714548656010324777891790467345838972460358167244844722296090982623078913263459024248364433093912758212215631819568683511096062305746897670137183151737766199453814279982657463453552909114123090998795728822950603502754061931093127122645568584252409945793575611636305289203947545164129179824003280349181522663061233808523930110681815348073473650164356100824721920477452666032735729351681044998916251433374730580884129134909750893659912887828253604194261560704838622902670178966080304131559913789310529805296897645482451894468369283312667542524031413421160375599216634530812709691222022463190045852034379746981152048036464395682568134578887930626559668934126337748800914056423349310952629720194468861687819522361689666114405825950123051248768593963432755371419780767551364825898601566396238352807946171951663093011476778235096220674697805727485390553211799493111096687422242004417811548390103573305267288590585672825037039994215068062376515511866198061210003603360825415261339712780600510002087938714632601908023448246641870218819720337828533620473731798639832496754596910047882390647075495447570480941647580656608352049642620134519337855268545857760807682224544295394103421749483135848161670743084642846494123583380270267241582669621258608315495201158939221410794773616799289351506215570322648617910193467226610559814216046825098094856655747405910478149679888472559027012022630610279280795628721167101955727708884795884582597138802685195390870238150524964255839585767115966396832417892160830145927877046671984603232681615787493456597967673602858295815746526597648591306181912761333968754402182790077551909220283036948097762026108596479764705257374082112795268579825959978609953780222272507276576698504046276423044532763437883804056050356504598988620413840845086249226709918653216240055813710664344611548586233842305484059316185673634900884850907527340269082517439582424151769209500965460799345679229203332188860905113645132425308080402709071355199557219139319127260996179464378875425708058338443131720883495399777931112361966585549818618393074740868098853241609090087154981810267092490857390212685749517310339972219246425657302072430842645979265958616553874344997620409315097073413222312503427093929246491345388021136109024982194251960128470411352229234650808449791888700943367804278737197694558039262807212057266211310024086995006332913975386964627269763997057130620430209001619881743468880009455198162432391821013229532440463400957376119852476305486729239548009425803350280613011616346338592559004408843821486120573241031628748866624469291828655964552758286665918202243375444946740392992529257768808395272872796257690847041178077287870740682228158010430736204141725722231981746476388953457928260429819250012990349071304269379283270936754362555442626898244954076756984466074723372664484594862753259973663607702129483185859998010828584464298284219311072673406282613484706822758653790788159221872024066062226849772831806629071819740840158907701386446989076666378756996690806566253654052953605878290803057067049959007062740951221738140654982221039940758607957142613200022397988771376353931417431146572934962937541294691217389641840737492914750616441292906378365781343481012855743114697101901992525650148866479675973649852892591932271523697118508755957359086103879638887207328325244046792595262247164531587514255103688116081284945010728244863971764792770512793416508632524370047299115835550555099958744293176348807773233950627655191112918191048759926214566678094332040792238711510450775255952969016169785328653375391848829985623395027093125813508650236348462740353719364205730386285082794385611376838112631909323179740729982209382838554618609474904312516634683557406339815238768611645211184687128121431269929402507878072389760569440141991528292499713241844655744885854986764619140798026833551095225754979776182634702603377990946210996777110417746037668378367126568802540149237775892414306443073217159984883861022686672280893708098360156619565647857863334551331891509566057805119861459665052739018078820949525367941729373246890907971910174957896353555320096882318590655847624555825356549177241268967653917543157702726968860110424317555647187117742137067690980598369063217279858266245036776398977903206688967131100449710696868721299647840961576443606551644672860450530247134800010310718056341693828018263073660010857721956702623124188171917998526401837612635574149874287962697947301666004626302586870998392940353400365824376175128255364440238494779992979031950040365265268908217601389654351026289811073242228144925166540135676217794272118457524052285842137776952528560074725300891067630912733922709328229746620049669884509666591069071169798441652016728217381111970630684699007453062345018969838717951236155634668737416158215804477273275095575956387846287604339273135045222659145857787771958603869820233048137908938556396468342493746257038166185372003016872673225697781832030347928166307906386572806664599008084083526675769875413804036464357575588557412783937675029699644012723895779169969717942692189614149677505310023675014847059120106752869656490786910401486237095982749695877594715535631904184699004581570619555885435743419331080501480330104587366143591648869773098076994417943543750423856554499589829915559953760757054451324976762121547703992659187544950806769262892052824955559256968806274589156630097343263645480317937460887167898620689413111969274050950764204776514305750087085668358972440095943748714760679226213287815921570244026832940058933685602883164452737853814099754997714279783743198177883825339852834674399491558920581964664695193350553488516474965618453679204640410191117929922897909355691515753815773328924832748110779667958483847382417847242793088949861564020195241439513475418974611693018307583465057794046477062733166990643610170909326030597723378029519387483918088717073768749047652791947121138124919597944290356191682615208989263468747607499131929566514715936076408016005608825085888193780440406626730887614964726291913729507866616305421083640526069489750527959658126078613260509364741301068524415128362536594656890278482549089779176237022685430458008549595638405758257010729137579762956028405152358515887400651737808854533054253020969812822102760187508227856704266833305368418789702556075007616824638666545616679126081787073559244600927730680738701729967265738416023005931631407193953671139665741371869430472177339256583424117187149190681862535988355651700105135582032623761057533725368886505453684777516912362294987231132616166808178349097091197580492779713023056551577199904913323077541059960065675255557544371310158243087972134186064042513623794313049253879700203715882130977892137675322667019086429010796230136237537335740975360957997473436353000031035095504429707729817068241298315803648750066657907289395297345162193266276987029199110404819154423610028672279619538508961467198120065944144029895581756199570230967091935116372143688502950540121124392325485441523643496683354129646405741835219625706886249638954227406822455607443136336685179810709530983409552627763883839397587812133131230055019980481880217452503680545790575239087457542682563728906727265754660118327046014486207506803648515329180172509970435379284309839525692365449735006366622447014722994355474783612547619077677459103810395411521758791864317124177008739115381358944759393204576850082639554610770372635561423714543725329206010451411388785047469962680383208109640358577289639334252316053425189713791276268107559707910243149561433950974010287900509466238135146745038563228123131038886809799850609494903126578214639047490960592956908781667818357801842114787694036507180907136455836331347818374297019967678769693361504401883007503632443228972196074950054197415602614669796288900960536550816855414915295409362078670201032112569897024235739133701754094553335121508631508671373404419843951249652148410715164611022311105341039555658483821457861217805323543331971683908490388181904822211964113017628487952518825454481873906752099384998687475052263842983960241981702461373461669971300845254834633571408309825438066591654659520205043662641340148897594959700039495052874864805511378763343795317386911741531007853949558831189026194443680976274010294576427121977661743131784307882895224656497962601082392081475206120345590065969886883152276020420282579150007852726957844130356122504322502200288822195558313465450270833002398462424037065882982556419521051038986446772559448001512362435370868064321204366508417541630223662834728414684256277676226872776162274129562609714944002166668279310861858178148807557015320296022200537686500217156218847135998251225432954010653922056345257273816950875457039655680570659852095376181068104246735227366508095455727897473939818080481689581015666069944842128285249712610285016061262216811562523002220748228498186617226265446995646988927569571257183815391245863364851985976289380146139182478208467365943598592162727005845847444661385899717567517304054692148790635694978721548872085882989237878404987131881358500978469948391742488731189307763535889460643036344893227872603538643616469436228254312619857504639915890151681842259857510288239971645164017469395071324932141655524740075026962623453175677066538800337582213900309163646515158574270545122937092086101386807137272380052705850777304294187995386915891927641221677169635553264117276448274636443379031250753322207370442545548580109374567530465080040960617131734129382402289235223136905963063137396061693302502941099563875005815682054639004218566748827358536359315261165147532794048455190134531936988056203293297303693301027939194616732586966811233866561173442261830567261241506306926733392509260980242434922137996064548853703890605849619180073546959661584741824085767100903604441248437139071645912405343677815758934222070789796419648798030354576388895079357049378760385714899147616413403909107823879494454554365740760004790185160881357667312011468573067821470888477810163014131986847822047621332714594530763495716299408136723174182089593873770320191461948394609288778252510070471442418570417253860172519929211847863855548073878996863407312976845678206754846387763381529750809300101751093041895561727647451395095104575664546935496765760335274202170015425721090777810732350909323474802719522247918189394072851700511990948675192886642638930125693976624026700260919395627113304736417468684432350426349458682022779149285132958646564572137388776857802305608237984818816389050172810591431355114588673220071834108530000631820130118651384400542301249283808018671469022907655800445882769814942463829478718776109264926001861425438826437395512636681330603024829471427283028884698988060925099094347459105981146062111126341815147787366324227377552522457179799334258320570516684817735779069379757097329776069404776310077956361271533273301472260559821898770375776458510707467715126668890058370915793497269830776935213913112113949399554164144897002680906357998727420642761491688103418480015317826129967006567130937791501851159393634968928799789606599430887569216648377439776649971963548964236203851071175850177090218134488830368542319599874506304488521479753667296373360898907938008727581870009619304205966648749115984101229423541725245597668648918358175949673744681729576014932253663437950532368370698042860671824857773254463551254398360892070740396393702719393043708698541473273103997411893728215652819628386224287914427522978867825572329426886384490854095953570682643520294854064813112343085025704622153412537527759649468611708159990585126700747438135187822310750370108190855799017831342108478306637998205776102391910742725318397390895161250510977496174785876697941660070253183740659841775238404944233532860607319763240787443870437808673313535246177901758320294995158724063672865526744203539832752107067679116795622439050217943068116756129758268483205131221485039781801455732739908706942532243597408607677430299631800159740013962338262343292393373111983649509596679854056033293163981134082569746954942614562742644280837180924635880751005394154413232691336440045800070038576564971309900628933355132317812850073161292767887898208568743524264814710575841065161261513999758471789391485077696558085158915622401437541596220196390289955573798287516979960161036275830635190818358492673202549076686284080433937500950251112297860836083019734486126236992551531360266869779384745086046798143309754117288000336163023479336732391210274814867365231044061984246825634600349367626381255087781775198791393187733815324377260832436075828649815378467933872848990869592769463001072138613391676102298640488171280508811253219507791120849729789263098279096923129471316877932675738360375784241833871200075566449488137507033396582825244498397893413712364803545567280459024963674069391591815992291510783923325024194818035543812024360621384177527077974567091767123933946149404749780734514670331999679690157385438622014025749530870842330700412589670120426108622430123688910382066649914566049940293991200895733433403793826132157797026058079481406873397243977635125945964038858608786630872537264488808966647953856175970466387712346715878180379458771829859313709599629948669571751090085233577382173110638442945294375420611056317872752286734692840813690240163342975938941305527286710593934021909304841123876132440868714808891144960631382936262190665544268504481107194357119999016097410809785131740225333718321121253569371812294531493589024467560687523807870157228374062172300858132212648088281325251219424476336966175867274746058468120954900067995388872777765447832548687111110115193976643317618856279752422080110652332439068283026194584663117702330560263897400757353270361108338236881870431730653750143026270737795054911157030051934369267940330350450219709413741271880421380820544459518265835274369029990636613566478498425025797241978709277832443169383985875519788020452950256861517470671671245013170555617581506076222784060793323418603218743073127289747366232716115179735437173313108765299352308765452804954437861712431101716011992082508147873844657047611550468869260202393945595069231442893279420671340777267775472308732714339443432358174944504426014855942383884764677904199400900633522830696881949967573378281913031203980109597952028181621518499787822235359741707320062361243930884659807296605678452428127542454634034918598371771026525940231331016044085154322256629649829280242111653142910558010087661285907146356226252454603733378796011265706034584156902103828661250529113985151990535511361101738393100583388955258527185527216747170195440217492412128681770124221949707088228747243065104212115389886937562662146897141669781122074898263303266566223235982642818174831233390365449045343836116222073445869045576442567587466324850642680773845974027321363364717891024000495486238824442121674437167084749197700712829401599057202687654327492100091854379454023130845884215141847995028786622786724304416737296924422587137307200899547891192816176039087802798218349851057573329743008640185047513502615671159575061330554246087075049873086457302675769738563448727725417319037417847510244620309929404375443061785903247854120944933501907486921840375077013860308783835189605059306686532973163730342784957996733829469237688848960875485767354053472491484196057345168593554813437007410073486677106726914330127639149196067988881651737234837631281644663874880601044299050285187938678994093520930287763914388755014357921970430807678768261465490213861912111360139335639700871859497240645150829131869574059690115183197596390444763642923959764781990265039782979398790753328078936431456805816490557972578305936013252907410581047630749012694915471565769950396743638386605291995630385369712808209536283603518499539872342663565457460536616279211906158066692579447883706822130752520729598956954388818263100560332846868280159887193629770834663503396186269980120393235722151535386152936496415865328850082567871790273355110285404446808339961988082558358332645583618531062086957748461997813874795820299848452697443145999039673787850414915002346943942243454712226560424206852674635811987764012967642553030968126649591253651731303773648328106159523574778548996219151735320310987870138477883526667572371910163598826991469194422770597774430209278865879102767091404409066482670445067789069921065578390424824087760776232985075430609392517736191976541976579773731101625607802881666244853021765170167973409215543910710650630186939693737101623449743250681600543548887141497026164427310036067350047615106840829914246769923421445939214875256801940986703532183886359745267483312147004117420178303089917961664751626109421467879071761084541319183311206319534681218674863050822452654313554598593982592059898979586823513234926766470568599438769689756277384252680322741649563835971519202805182402413480221307317855825769116951054087488820794132270322037480798051808120423895515662534643033457747125824356331677809479507500416980998642144220129636797939810888064805310495258299330518746225007741813826944125596026545409774288153494767560531844745980411747219488325413306490717094603268576049989045637245144929552814966367677350098041624599495808730254749959466858077924607129129813559754447094601098829253133085728357087582641833295910564697837681338414900689063290540009320820473600824900398847435102293790804776938011630317974790634582646270271458224540408439126667325114612081690915153120288054799685698846368946637046043656128255935100775364081791767862593494136553084535464203674233463110795484763222320625062685902827282093096214936530837920530919035875629877703868959289749005991473639407183583250059595849928040126852952450239464528572317717549262605002117280567822940821765977422808552104377695550486069848065686746058029235363330043071529932691163973817906786544761251650856783122265827913684542910232418731957439949071250141152443881571529608863757124240885468156112771372490910608942462794955910838245450023226336176880741270071769242113716533061535939196259256130684251927391859807667058717633254068941024830768040036877932785044318929488501725198836533512916529520352163899448413283781301617924685213595468478353641213047646161162459172860827470053666885389749786793399292216613123088650037008857126776695996628473568181875930199160904380545648566072841804619610632033206947112261893095555949698974401573749675905350858613267624595506245374229928542871649567974216840538388981021178376225771275774909966318423619757143844784900300809934993470949860323457685174211225684035369438023641485038726930054153573886648128805022047614553632643818680817516899337856010426658921838058374927308581337920339626358072373332935785914843000680663498704265757320860999085645950796069657733612499358103502451283167738176705193112945699877048599167256546851638699210111913920067255705914584033707279467360849162016820920091344886916975590311590636991566974814103125802952501187255627805117590138497180518423171713133428458850857089919495366150187912390362845578075881746675803235634294104234558913929119256227588513341791242009769583691099098059957582070999938145024627677649095903635285815928095420803266898090111951926778293107763826898800883232410124429700772841147699947612275576596361172604582022597834925778289986090644165996476958092108412414183851060064351600897318670987438305798110156051595064580363867320861618437108918905377588727815648442694324730076871001067462378110214483312958535552584364605166573831473577657066735286620696487759192198992702603137030084896290335588517951627783996255731954359804411278391049271926658563012719056346569610293457053186556682752183692664585200323166229360753643854154491093753470708664713509758513412852464106093216095228877215291317977517224340859534249280789472378968722321648832352068391012843549252153488847959239130880717819633303215117023604719660582518148512378109141800516504080177260168314015764980022323729673325733209568687939115726975502483364597279214337781608170972787312703288689234030539669764751792653851304350821685119919896485307565336101921294473843501986464596959312979650633632960077302585616589685457661868555537626280164443662565368400087005819664925669575905641705454862930051104427978528404568494349030194226448742407061077137724212431449297252344436154402260381411192079952886922002679922699489334556854644454724161275036396741001632363580020994206139177597051064955946001278602666184604136374173460300963363583464414301361993338564423836556693289187769869099361439367447491467927661363519186243751457345874112095682289249928891348269555156939241651514932312818550455580583341194566613549199851812813174373828095042981665200962264259034251646773712959896485973716848244854618118152847080454743901419357666874226821092230846195794516984337695811423443902693764925833638096841629451850207357392660414562282018880602677026777661720011884368706272511760496120604789533905671234497580281387920174715979555042613450668863172452070986061340677176737244156433621953789594555046598230598152430104834067086304788194032680093555713676337271805181230416618292261275483189134346240862415768278223660593393691895643974954570806978069027515861052400973840372007248517448565067636155975100993789850808293480327570147983514817254203555339715779231863360238508433639010401531346301759780645263996566494952170263682136272005205371624950142605936353854399221549503689297129254545974685723342988718893215122034495032686244187874472848136937752607595601267164866896919495966698515980711029672611351117048339364467320649757726056628592601378997690853285691607906845274231086770246191009614763064387372303054151631609517716014983627330549413358126467965727965789102426968622931256838848871699920653582203357000306375268299547532905105691833732464659627176912382253765778858089755690090514687311000250273262434639697767129249264549460551003067893421513837277713709769963698625835258620091108203908522801970823323344242977353912117301062760484798600116861495432834609122709429602814222896326328695478130237641296067689620682675778755141567895165516188356119765832677329758058244193043395242372530612440224429199199072781734899152064936160631702163125532089970917072763262891958709467626013930465010584811088777850953056256739824625239846465177274039910765364382612037788451561183405552544881170365667970646023026013912906765540577417350087382610676149290841144103161360134868118646137548841614584191116200279328859277463523796625373877145382593857987536360135371320562825363589943904876092842255944796938551088982049380508380764591599169014990987215292571512930524017003979729290131794026035916090585474001315281686811683841031694230336281671039577439850775096069393418781323657105392711214593690034471548012839557002759940248652699175813274823934848086833106142880139987471378857977264056726922195158554894395891953784163263696911771126472353324877228107878815292406282196314812902862117680931779898136087784664035698409290029451695854583072553924331702845024890474682051544360885676476085533884676685467899038720967014390653181178494323114981038616820005962869219668336096312453061953326662362480860358133008023136505208976333967289411186142150820310474035665182023479871774082273010988270733806494332632482737808075126457790897889657686813380096846016288047656925508982527413662323571028371380454781754263896371788134462695131712836842637046391141100717730254377241139137613147319031304722248478479511490036648707788507444372886118428074281518299174210008646295075349517370390712140416769357770479193495647336557665497110039348014724357996937573915012906316915271364014520034114641734753150272206234593422759380657521174460707758477362928195630965813903723828705587299065785797141311965045915434227967185824163362242579087594604212960334514354202057167917063530450475501567268401896510108515976145367401293310378386511400438821695121579153359152691805988860856703399649720459540516336546470448073374029876775621012379190410264483052106359037338552547177593902698566458472594211931204966766046411213606424244043911879389574942971742981900828725116542266972288124382941126091892958744620511895139526059278481550918498579502948655914783586465971010082503675767308499678868492384923574427759469207251832424793981939662787756526006980395848890646789883182340375577350044008032074703078846310643873686041349320509734072840386932530760305530484849021996668161248519401848027020683110149834682696052686976908604900078532182956090127665746008966108622209479305370075460348276730229373509538789504295385983159037283278109001208026692268565993856052143168286396018615893026275360849322994838413667800009024880924973805813211900885897132705923876618641478231772470012079775039649697664834998865312851594069956406289290489805007651290083568053791473029526519000089497282464861128121424568894605901069112619285360607741096202155188376490041289175104314590783044195066985730605307362757949228585119113703134694446117656234943693185547424072767859746289953060699164420237331342162175809182168626504580441982065123626967255617864028643020772759355175896301165315215419570742882254314340178656209141892358973474487797694163655778559372153412686541473422135300214554418062408528355856643135505540509306958219681765964040457043026195374737428047927537640618361861579361138587164230090414312798667371666592108079855158863845145197042662590552472716466845159987267909202320646958719819964684098807975899813749357356344768587149157424944702862703283367708078286997654937032825861708882768249099970639601344477273612899403532538399423280998907171662385217200110271954439188426577925111976544515333567881544733315009502672636860587289471508253490180859885973355980277072661990610023414784849238614952859469225938599477798926449059030684979965803070075774346945632614645874486936644339216557232459077445011965721080541728917002990821248661026513942458526841564945897355844090247071089919190597076567655091690522322389060396167676416713667718495711604062021394077682509655482125509215323425662970813456191364271992344410495076736835682556449613310930060458585198427454579070028453229762679173258172953933665151081463856927947800782663370171650288137616527523267974165545113750054661588751006835446274064603084682929333335993535282607281970940926890817592791149328147167611333189885445331150420505516569059357139858206628654492320249740682305606294968177551460461444127489961267410913318780356373173818713848006235612666816958606607990860029566440344422072820378547124833531146184455984491276499607238122890259445771283968170031869168919579610209477707552956876214459556758097197346318425856871468561828228769098723932299127165007899896168116776444289526308626537863116420088413863972959887318864981091053073265365856045684289610041894466069905123202279507629775428204851526716600045926110133774324426254767500021263227896832179582929856598735953202645229690920954688298607462341833136894357356689406264920163803469134488830230217059469075379205802322625359287027409961056226672157914760341542902409981911701268631413363068145794199475916667350036588889839976051927257236427878290856168386011154476289064400801454830709570856738248320721675750509159390050033655350416624280869103118509382240105794493572589168287535897280738230708950050475996232080456836942223093561771408599634775079671348145509954046322664151310841846297500588419930473849095057567286768437508743780567680837142100396651203777581174920691042970735987067634688102897581638861410762950187869933907151132682310091920322381600773406455542713703678271636557972019038471748193758684534734569249731495635456387594408838884090750225466313761092613825967192046939211657413845633568675709238534291352137015792302217131968586455088325465636342255058891020721482354542988391882802304343784170080671523695551586002905914384053035406167418274112855982120263171414736017895791377168928202117846699177292696863871142301194198733164052343209855657420704868403958463707103471591438030033969098971377578533313937874958689117331224239622303481564352269337004110558385665960369740573098299800803819564497548107057268501211678948938261058584649122797271921959056316765300919479298327181975988690342559984739247661264258031740439467100413057573851709119702960839068182205822165796272432052068506203434111249408359025622101860649827906627018808646392049443112349336797288105240681714963380470019570450872540273616993845702418138003858943909959200507464628476973701543609121952810152986431066089652912565926994928284574700625368609072876819414682520819442943382290864893600132339196914773896980480346133904508627495458929949927509032933063180989044749701162353510171135476673711844090071779072033500041755016582274535078134420933403703740205293152740258302787570369789971368569636719042654878260379192440932176991608173297880424301824611881708905606032023424586614902662830643754242202341045217856715452025224650544788737506580396499070683450766449065798073389628750547093349161717570229335532641864821756828379935894438141726645460711772989057413564604335620182635472927816442059392052927045673265182367970503216466460283136144596719542870050657459011644050465299145436416033648576715782666953216449294704901381179286875646396467670108060205175649819175328982293290594488775276837102417502601334774442694601885738651446431542516807161392340471464583875730621091359369720908298605584859996840351512784945742001913017028365093883786578380565996442074790615973531589713677651247655583052288864768376587232269877028325825046121763742921652107734635164597215087947528901984953591618912279727548991607982066364143580325878498044933199107240857894600224446656194434729881650053975691940262599839977722150873253144357754105087302640841080792501033105693336811845566426042682031818978150522442784797699703884459867588014951352033916856857206014558014106340554338979797141697852494929825759402777067844064821985429261486982726277608598078522870716372342473964073489552934506659688244170869618943167481705909593887863981333731540992477100678813410749157199902934904288671463854849220824554022336626808162801185472746075335351588226174022813448911328024542312818532687614899762046726530768421123725473580500444580925815152183066532788722249838154763343846291444774536424224279649954778500324912006552157158108397892548371602023976265921152978683546829472891909189354112262594645305148773056575129425688584770329399222014683842890670689602474999787795087889346521551765220899536675902579931227923111239362932870413307103652532545766048825016402859396066798812700348921372837036251299426666544010374088034084471534593604632466254711676440385516448662035526905142184088188256956690274095857893051976427996587292581638709534735148512666277330395609874787633269861098068567814958154636616891268116834325015288006920884329611312661705853394429586886080367493201737946148006488009591883375464562956070147345338170474119135431113726579808082417994320278769381752425588151483117974527821342969572458817704285936601894422029926973965352175587698339159634360119470208867558527935462934311013207250050417045683381060052161697709966508732662329411656066400398495602926237959646681794701115563358176468141478259795496442138729977450397505364398765122556464364696926724072897936617463045181288422024219500628840245850454858225157004735226308837519990084903601249434891115747262078583008389057178070102877457602779053764599488845715602152903749505240236825819432874096037054178304041915015855260433385723626035365572082573855645711569398934215823401391861918340504079456066000849565483449165388767972090270335868603646417807768770565196001657405787737429342736171251220302963670572706324541082595733125264967393660871784396948382536976885668890716341315886384045458483131893282145085533861294516296157029235538081620368296273632987320270069561715154471017803631021973088858600220526927466015008504642544285715828440108608829774194590726506511512463445646474589822768028709208149481439557080638028442102590707906780482496047805971593800219869158377437198439677673927375432266465538385201098072221444884564283351232415689921473964930669233858689202917674647628681433827857973698650009725779879645700078701271653779325587038303288769531269384637598334226268041709268698811082744878510190849390880255334281763136683599201589150596460254393251503312854789285138144881871143121105845818386252653235682465459882627568873799138315364644744904642314880846931797032729268704492845960887360891325446424574191667954722191556851706163892783284758251692407020877256606175761994129004028708707078158857981890186987360440352894743536849442982065185224752888608337050320584449850201187406675530722264476871354604760733198387469256526982657404012089919745523262810934740184529801028189477369962474779274999873229081550578840294024257262125358611419658135323542304328906442680857622153375506943129231692688382608053311800702161519861633670494288050552133062673793979656703256718608974376293203468973187720701172525848790499677172101168359550499967018399314587059196051487505414625574510555226389543684466395602903622111959952127737226435535672521014375617227026670101527482235219121092242335341716087760567589165792530324613113326333517420363802841369244516141350877480035905142097625376633324041460994265414233292890727514022410016484509203973552089805141066742511723460261366252152581535168869250134931069198728545194145211850393601004854869021324715675614806642284345418649044417676283679102550462625731624846800563899470228511354127076074082123301986849658096305405604052235645140875872479467475245613035442728574142344624639455860307855367758940380237850655572472580520541203493180038772175237248073995120343901290893098352166145466473310483476174814589005095544261024832532132291502201036800779874368086375916780275197574423132336177436363406907179720410357446697678899000443686324355507847295174452765878553237516524815955563346853142972189863024178321628169347470359957115164000505416554871237450393345823804973219129576697650909202204481560610005335935784971969240680046920525677733714577162247881162190565992302326394142045139313019949700890173527604390998424606961507184288693519758857591586893352372044677187706035483522760973137927300190463932153322957130812569172741312061931455064614182651079329910020255227524616491484580688861442789926347422025150859545415202861138497171570659730901889210676354798872774024187043868509571347391783161811192071548079727574090035755485387792065031623768329279482197588241388706108518187984782013898712916422423133199602479895970395409412998572693097374803551101814395288573808105031014014284387594677094368493940849852256812561787164985772653836328222096212841111589072246857603859843180976771424131858161998586415880764259033983084586530927465579063909912285538766137919416459473613662278948668009591598905152450506760295995837961512471752637919490195039566264074570336824623577026669602444409087160430232637111097447967772965711383667551082047816635009038427344692236029927648977359902931402086545034138736240120086462310510300466362485072211844181600755526500499706874419336746057001149549140551922503673001796721944688214476894016141613880289848988624309674672842415923928426416760422326315795502817249227694936567984829573422166197347184303059927222125077828287811863829336889058895316959100033062261482137620685514282454256633925961716923269776322162381465978061315788850629316053055702807926262820402820932184786436386578374831022359745990602413940373334070969598763519475578815411916917755070883217553072742873519131917824450268842057393635483149708960583213836562357439246203833262224900489102258203513472901181229858695163400738691194542707978625477384905757072645736072355495216880092546633008822316751039342560735950893263231298954438463537610375652949736480091460458520382271611301466155720271619935029200811935355036154199936727154346965402791471160776824470158135604307834360819952983401835112021703339292476805607736098507465056632663466580647598103763461131517701820449426273803383481058382832031279572556419027829400565539499371122556125903903470236040894219837503844777194932707272586159207282554766905523611214782177505489517708397016886348303954415168952906787032482360669937380795639489182974636706093430254571980970525704435530751786349932066353605902617338385924734562614033890028563638551473690370919569816783261608297004313278717990971832182702770070028348324566083311045597642966305165465325984974236428535669571007708074458060432959182176348850688097589238753464476114709754047612250866825267179519991624794531500111064940933746331694277760342174372045436986175705793840751815675050685169354420238990979683433179994694873463690270404094917440883165760905584785805589538474613522906863322702963430332982484637012044426249288439140264380617296933724464877371932722577719785178899551104253651565177984887988928572792832436756106849938515671423180412337515032911717204225121513127441651976256549020656981068982894812031738755362729060033765475202675511633008191527235929012028160597558464410605761824336673451617388883812767629089070366107476737144140617136185628915581165741699041038218805683817180146560781916935780110055657870229943981126709068346511813976171341538620767333493779592340888088486133204063469323467454770606630648593838248589303647032613284455333181655590931936556005433571737137593019049979974621719439102210894908239906684937268545048530204713490111013902935184674907540603587545033281175283050047477567465626578346830753422310079129855759644025761294691582537684674358764454125187238123045733361488379987258957891310591788595496745865037517704214354414335000498496023237767994066789376692490261796811391372876821468053963875930306339195318114687444067374932505596626870478339003257322582443402374509301730104655782938700306850981505877528040890810479829174518917435189009620110169444745096886764969069958245864652481248831989417960086125883492009360022130614527296102487699159279767151271380292979255454700319843416363966263031688459388531144852645937427957314756929647923009870940382138066374304418174651366881174869101722470586553307517449392847009504839148199934430711505140587965376097261941892876257276992040680370802684768228462995116348777344548063699896132243755820045401517193424637160373385544115824645096061484304403611272050977017428155359481462030858272953132479331796580176580515709589234085229113869195262357778817139033730083957345628078503291154066982526476362223524086920491724990791606727890763581602855136769598529455622141668075877352230037510274894915547820184309597669944346674221672617771366620331496650839022550752366986006441377829344395002453108129592355632723062232967601486481343982389899479868818233029292137586549576461198418983779223875846775744747828239349223553255504213911689865320720296268467800376732588585965690954526209046349185404918254876112498360037584026094484333805347184378611402704020976427315671113125373775483952928491550474023753681449295247544079999078899017448469257705544567415012373488386622674723953570618232484591305007364597230011051890750148275452571600022909895451712054040937043166102566633789006811521584787597913010539596924447206876888435702638236140686622932414760694239807168217752798657840211322664157595826899682429361678597429479350877535670523810468995674575757016761200685211294477362790644131201463670513886417383661626984893727185086403130928050276064082840081104338362238413936904819621775184163997588900172919538525155415825059458132811250104202283292906729212519213106752615513301898706098692689126665418107278066299356283573519116283987603068174693877776616299808505029322702809980470020201816119697048409564931050551222915013120805207458324592300489646010808150508014795323860092632889004797299135708668023274186150497150205927135569279945486864529046384385064157087461752587189469907561837666598545547026724035019961646257850949875571774995539191348165766246189146299387869017885812802229385236109300494283940708557658077388757906637860095956894073668860211429045094700493867786696287981689149494739982527770629587760402469570969552013535749093075218430842329415898888621929704180744149732262851220204726507397193692211461427697462910588440797757158245146807063601762759779950930710002174622492622102952064699073425717130059325722473811938397120258823926570979539892879493140645251255273212861490221228815647691366230372024774334376446195416088649526546495432724037134311626786776778838225134266021449347025978477650481654874297974856937905852705669106797427358401054533329721890903107862986135718006205756732044871787592204945963879776818317838254297951868290577142368336349872016392018637142708526026421025580974634947590478551607854075404224561809098691709589725223815890949978820932011069030212313938383025081453157155889912978001950644554000662689040249551917833260938935750449100055439432850699483211265940505483585999673777293013110179900657601179927422571694957686368248028861069410762233534544237807292145999605252474299950040302194286182187301391959886360150065783027931775755018908445952001333391432567287193878601990125720366360077032440464156149342231714322916564752240250203003843039572517473708824917484286182449517879266442937113338234935936800873403511042254830587233548905907692032355930015682993048913397646983234924079005920435528331358636828535010768366329341356085253900704192727818271626565955598427466792508213390054172648697508053951166441188114118714824435071231790422642009818578936534622000728594067191255397597543960706378423720602226643169011729896438539710470451180404485436631352839390815239976211818973156585073169877872111680557698501751054269669461140469608015095790847498556866178110054853469033190835431872673473145734721891315404113550563282894498404659688835312403058923676983401677584618308324217557307690302567506622111899958595331325620934119154043879471925629633488474838449503835953580932955791311449532235264226834509115562069801907738411644418048128116599034261102869690888300646878067509126979161073375966955608383135544557520230036161734518763584229183666132948594900843111219401923558623038582637800358722337562753842522243167042884660914534573310717555553405538203034003978767865631900018496739233201996654801232103473224418072334560978041998979430415134199735287371840200251499155236543141252844285559035363664005155487662333066463068522800278681444566604427607714343933791789230655873518849469783981515520953220019258701900616422099481004792607009085608498649102386355714760010360890861206491587115573532318388397113946254602807237548918313362952766077780122430764912763082867148291191340511195082133951697243773064632170054080366536587835030880929509802215802928706215456721224490760272181390628172229346741622415988520618184910354252600760670956910987812692505010116723400355590052003568408454980532071973389193879933092310724969119865701553318916849753004511350826136231854121503103839533243591002938133521279839070813753470433141153058074056780882770414464905641836294311651548933909533561091648998098340747341407564762623218834380565378524343881954577288325909138249250575277862627979044011232276769081097699935757105459160252096863116497281721487502064173584981808134907874092984523083096643058969605963717849249068563871235382886870214994546022694342001457148171005591556895827800739656176669457859617485180484899356466400756522906251022889065946059385950619394845724629822017367942066028357716234718390606353557296008333213204502516493060726015987176621130239614749651255797706854017911986742055039466235751760015727810773897861912683294145340338855180327822373041891139039507557531433148976616448731269056106375016771455988831503444015499683306967571549902024804356843214690044586871894413545108892561023758024882599165314042436028557001145144657680011082043616692529512827246979151094724952613294934454437254040916387777714124664982928317051750972454122969772637596284416571551813523741595718385591674402584575710682381226429008175386016721279701109553118013932324146106781359739115476811001194016707595514768563623067171825650859241659420333654236956900601370760450286786598818967608211589775868350195571595816182825017868662674124042828755022262027943185668576487337328864023166568704904264730547832369978746839657155652267170826018631970179995823115205783911525014938223822711805518000225274185721360906555843290196402419976301918593569201786435790105693588404714782570814414792310329362733040559641396027408870648440589242666728025689108331068941889300559135088089587724011494866458516775802561199962394107092255963251787378146939387495382976347273167329489955551592420629919145235920675803947746432999789174425719938674965805878070806534881753490016189786523570968802895923407328349347759544508887560279149421798412288497880834774627435201373547202234587762083864407211222292605300307439519051083590984875370008530984482574224844420100769861723885990826296937824904206633143410450372120978713091420372091700143287687549480853130412453443705436544187660780296999664465774174552071388181147048277245408327142007071546626198180934555415134453638964246762060060300190238024455138581652859052627418484266158356566455494012122068754996788088735443777851164535313139322924959569678896850906618190848535132366931133356124390040757108510361935262249262807529208837541729538541135632258763601360977613725522023349016424865673516374545021776103637005638430167712275874097194172209862758863125165407146738467534388094413973686601077785994285725001937401529678615277744413972419347824465007291297159326625834535008837508138972374547100460791213475551283220879011322981560655942627664993069428710704260471991470942134237538129331373437241862037421656097908741386856344138922774156776742009801172142688477576527241459551044317490450445290005787144897880581203295569515736997046901829252933727950863260210648803839743457386287826089012160984787578583006581778855819812818728348834770459448536584894350436530780770140426663892811675080509423214395398050596928712313091212734757421936954207405962107987104277815248023350661710223936314846613444875473873682200425087370790888122163298392972811066785661603973810884668663907487260379058012821320350720762341547320537097385876812583874449162623383866863696676218204065235239409593891934224189368149654270471241727519061150441783101232652658264233767044901707146753727310365054554032918910642941657139612273276974018948776675549103014274992713955796842961623248657590460290805634342447452335096785214366662760477269442989185307651703252669100392005767984550832301324562932880618092059839027678301841013841518172076572375805285404252202667709074592922623722931146007418169729625732251686210463767680410740494644150109016319779841251015348466064850140201256852110794081493166222322518404005105321913579130453774243182868055176125757639161021477851829725354523515094775149764864620764104980854693728965170169698372514251150547737797690790118316118690637762663874971362749308270984841403263237491037746399918113371061150587005238731202825173160318606525299766882211947233549156794568365157031498071626810427295726865744731208224505758809155639929162229708392493866270571203083362472555754917098752810281356872618646522085421758255339337713806073539427564863215792202856851196780104901144446142508665595984340364176815089304601553715450388630567671881578255316709474781071037872584677341127592473068357026314647689790793055173461571069891410821458331329237323564517926660700769691796962806595866837395614402348615283716132168701389694090313822251396074817437615859510872247517124014596266119409394511034399095475287111976009915962906917309218488077989494870375111548191981360353540339799953779467845965333172993440524670714494256334892037774164894581947320391646150559031626086067306626417740602796271674813882835189553906288647466737823585291480150795581694386506578200828370260212098086284340276753479199327175780849577904484901257717167633749537699581735784355544058746221088137524329425273751202274981741916693586843551612057995293776245133658925361194441553525546885262660183693928358790635708544525104272355855937893086773358963358122258213291672989031786075784319277434308308352219296391630262369004739324043443009282134044822957539962014469367209615113991599645365959645174159734995887871520312729810808920533182732479833897442199658499111304754078377019005668477035104183287334266149600280755364378489504613157697123376268423625867649544342329583347865608170099904349937717049494748400056023857111192210391958411863643207111296671969037839749550548122455838035758638405684792902409116132704347128111882879847055324724716570999247747914837190599185735821153319773232401903632567321256992809393007098111117131979687826715600970430787666577995855104550993736482190742902552042201299111015754580908309478484211220443631685319714144820398555601035149167516609888682195978084861907842036140596454782729347971858290725236734899393080161832214395922177522284818275130037233572847132269722036597723097358385904109957676795998161186136050445451852705499136427213364046562706650437345894612905152766764091330059956562721784942915189146770383913934451888489074868253854794272764677955950690420396571170005851590569942828457496505542853557451069835410663287874021275195869650200342449189568728348776028934701969833813688286748419670620018384768050929625249131480746494813555993808454911298563005660753157482109755928155469732547659935584608772757681722611788881547318178185244358556851198159586642330863381889815463571723449644276451795571482430583776634898906489025019698014739798391168632054972392331687792226502591614346042581795540105033736230413644863153590424137272100013168346702418122361653393530501391941406346800992226909221713686904686193045767273575281886813373356684903122962316947480130465266626359914295536970315652400602138717954977174156342472708796513665692184406941044369338448413715692389230215254686051846807306902926655896671168274479581739681866175551853965996366241484943777602006483307033547282710609845544834638006829828554391544231953405057181479737786034537438334046501224737941055610690083378614010717399442182583354797231471131118512464296467589597185987909816442415354920048979157775967120220942888133272764715188396759398478933890030313436380181891467496617723178269827656299313047198603266617512777952539968884421565133353015384710371222438801010655811124003718664034545717520531954405008172520581685025753094231078186624883639230535857875690322217892323984393015392746903552871199628577934057898485651381266800508237102676908945358499325927956867273136499895720556024906235996465679868379572041479408038388858686314279831398518237354441312176902067730686261905573702331758452742309344415825192806335470521595914589515999948663028337563243048730201441991420502274688465363387915593849857633846754157822031762129903949182049594707980137210898525349893745132611785547255090585839223322195156522085138455754582987362739563872654987143873249749759652684032635199151907108037183263573894023358201681589454375867711611416111299695649501710561949574911515748433483179837195099850480433104414891009914927372935992404119135064099481731012409236226453310263823250194834940338709010045037725061139009960417300474015065384180187299535326136056884799630719501701476087545909365673289318530623615439588667671107555729759650664297644352185627342361282956248607110510595343713629695342779204214966245068342860599684728995576252386578971922373938054751816971396511352705856760636290445583976986598013964017785753809844185087827615704404162242985611789530170741620371830707136589104857483875046056306181415747515901346963784601452494148540250850840319807925800971258026237739563016492594644414486814184461258180638927184688423053052230896369201985523592122020646263194735174677884107381930952797249097281455785825577648104346444565401292351510919245819094032929458065496401558294218792859600008108806368744933989135773254244112308806093516619509146765372878690297405017944309134119601257380739560244069131565817290029664074245585070696486822378649280053775507160170864072590954715639343335926596474835816310076269899446752553891519118256758411327415431514117755328179937578597467451829663682646827945096658905412148490404518909269554493726923175778258191057160032795571720863791529305647838253160021913107813421612274399461642669198295188871381534697453285122925530386971590619896192934553052965249902109869611747080610011354596343033525684651811902110898842123311453852871637429365620476629915476981119523702288804871366535682434876655619618299000033243817266517450675024253056232403803331317509876046399734877604324235172095138196217541183366405729203221084640127826472416396036746077278809330193600030149207886095450272651016635039065728734102331530937730478688957129463359491287589385053746770668888355397982544482610223386588693401404782277459052249052902332607402981265223929377114628369294662792477623822462175363435605926578669733419501781325496339731335474075513316210957064214638300928464793374664290444547077624521986154160501460555784975483968361340459681502513391043167089309273886907310397135742988432244900284902466052803851224015306122915675998771135093361350714580928036176464079866790676682227482119887888128097104006763561717424391652726995244152355577184194114666044973680522322917766954864492844746749616919621057365887480946158642838283748919579224017980368405630280303692422343223637046102704212917827160357479160539952717226289932738638628258053267472580308641862333128885775322528110652832734739515363274661837692046364822491566949512831031079451516390083881346599723297842918451097377945162927349551720854591517572575588630501349587318404347930924688027004604589578833975118675549693671785080415189167244802225762341929233193682452406599627863664823469245419269152220900156263160464464762467843154609738058468047389401145997363142758246759687239309574526535147434639478614704006024551452519045007840989428690841731208058740923865960022348941084253718842561286045204520215750640569095433239891267054625382134507223338622842501143258700960939139274229843933462642637369195417761473196094407586307856895512411647965554526271636910561300217884646972346528858271710320436335686992243613120030413798067746948262263212362431716949485646751786162690113772074406181163688917084464704945723773851460783682089797817932139943485583684012512076355347590339946229815178278531429181980036609931837832793381348332437065983235851468237506718045814029422392299648907855923028103116618796922888278675947331448786987834469213212888566777817332976091071152302072033966918716999021874056841053013632605110390242716403802621092520811451464348246788625014771679203248093672655357422417868997763401822640230351287902765767047086260791371216150630013726675311016169328103838614021291616906089534193759034207227525551536252678222836553456493820161152899657603349612848613014987582521359862757117894136565237719652009055321707865340352106318233339612467005840969193644640237031885033791624369586376406718211297899171537626933991059462263816011534999852059647636935648951624143703196806729561403533181511926798220544798978645743256464217732005691332082827108466324335798062449758196765184855036060321309153935884321224950727705687801924906078875063527804579496129981047597898814645304549127906188896058373388227675552853892863941926432333763757277386412751019762692727808690548695343691100528972207635043018153642235151316957449939110715699416277224875990169803821717015553118816493534095465348084640612364116792825708661901719238104907605890184753155717526605005724117174104195319371505542233352436887128228480969549113805650526296880867086549526477631842634174527390086361611389133469093119664821926842287015502835300566593659113857783340258214720369853907413295206021504905807464665527826557485001424878990123144275818663814444924416609907139528518396252007132087202711802492766070463812969382175296266279236165011616853592989182304049738207146726387598669732489118341532063449240730746465413438168030489544239219531895600629776724333604839116894345584963798887188942682914810095962654302838732571455855300055142689139086171987078945670625592420500568612141426280314797031526038958769930746653255918205488843690822974385978469565119089457585864709977753888947118489224911769089225067244192629424735533481143935089342606606024949780922913912802016381468371965135034186277784232449084256115969368389811122777210341724474657791543625222416290170374455057234385700044135398607654901293898195384852446699565574776964562310021354752870419645145806624279188666515693488038766404350997788471275331990687370765312537834909061916039019305171552311463295884683606423284809644126626714820961495009312572104151053958141976479743645017211834681628245948850520169482120662602470067987643604799594288960238425527564432105897150224305105745255757124071940812650935705868640729274725246807242505097851870705239388359347927084655979530059729471819490892694798418848450051754053641150483144182793001592298192507424859863356080129170133923609093094898119636721302576792805196343231322042085422886167670810799913651938050515222517145144455850908294010970505744564249936459887060852304717271748036178834357793503146277068542564684129037713771174058173244734639876574642267219925898423728081955574302365037823711103944354869856463320893357314400563813313323153783721044815168663119974195527730691277167869632416481540099490347338304324133889383796907622595740393692154583551778378569714052797445423169954783772501609972219743453602849785782946814777109325247707556351051050396962340295186340404003692339164179466804638933331509556550417816823010060648850610175453953286584830224381906101451308411430484496730075315418897523173184617821561569676220477002583460690653442765604488571115123904744602927673795769742154000132407162879907532270774798447127754046601052737457702537203910855430957656576518675632357375437713263142409482487457835667279562625314788138667492967874925513167982132323789916841376057086980261950951548717765767121219341545534704296684693636706430552672777874924898913620663486002428213509969488036634588796681720104107410895704687875331549001201775984837810993440317073729683836359938351204039533047857222763641590723898977235274312743433284331218121256971107001537240027189402662646540873473734873736449273948409913816900669878140329012343730868730371008464764499381730803605537922543144354122781208364034937203469034526776592777562441796205533318254284543558313883461908964599061103312616483810388484309668828199975256761352486793534282770325467194687445471686370649968967912264849740832967417050614513729545646920561582872334270800899364324089588345893220330707288376925440918798166832897727627464265019974368024239389315626633454619377575794262186538384488428614877159494073348040772495214382088452903047710662602019716540694296824240993575051128864331836752707858983518997278900336833418169777163557862140848178167142776992370770930764747704601395852911156899976235451625556416214838917575515673875636122300506920505358833795221497868974022434315422961277150954952375704890763785344876853558544056108889216591462172265457431565358046106521939320574007489110638919714658634934333196739364278530919836788704706484011762297756338983130091909419605776166051351932506003471809121086760605178869058965888742279451702154440792686101487374060595017396023053874703776378251854270091203329047343500577218533088979908227691230924835374745499912196177523702982314315800066819322546039727835783766191368717462288291273286527348698647448488332666262228131026201219701834675679818222910395708880967471016469500406848339949889399714993497042777456222173645264802306526058809786082161761636951801886316599323394230581467732063923325603407557486173193006869291206710584273873502562059020732978961653592377775796891931560337534252002886596648804397700710702882101345599694641040738789569645072767539339830881500738639635946039788187224216291227603070087026979846317711816827375599345596248480319528570249274436554460103124438674676632832044573003146564924832003683190067799778810551969367481582327528121208656821133005621339965811676825346071679918056372465425564096936175072023024001352332488490104809301086477632840665984996150775827141684555134267176197397624373238830875626476005636523228545398437270445425632147568093612473694091935459219092907825055760678062595503874689053748057899278071627130502645900171263970173733535895960820039134548305927454637816150078429456819463795991511310431018287213727669093262035795491626163811755416008651915545345852760841106075179661951561663976169638172559752154079162281635102465600221791341395436463457796320542393288395261290124439318784661513630398827362268764572544560670555507155202599931186008771165566286297234104647047533280771466630464563316084698774929344436074474384024830674629251386810561531973591971182742575576590610216634332286780184206691661706072687815866066949783538613401874597661544449088516878805094163200069394692359821672467329546803816559902727364757257619362129408483979030065675674465253830665089589627395399542180675578405245166684251989146827630095202224449445853375612509368156062378505297644202802870553605681781275353355599649366614316792171522983380976584042684619891161230427502134807642171480332700936619589972315493307992725344369222544197411741209984611588956085844229717206996802082447448484305831570385250784164308023990661701442379177081904571622434927960054610331617484657105219105038749507478318231391377389857906888364484546538653125614876766278867025872243946216528294984718700127077334176393110519048153107603704947736124675983875394173023535684122097911939400900302112011537675426033772427964203701569168113788201783899860437308873514791662865553118827140505501953453523930115882050195559802577695628470902155525020574766376095593588561971294412546854132942444912358781554095112490760199729426719099711888379212700096813921453543871837000507229626126875716256194195158764118857367799081650700577032927009203571425689944300227944110985092369066908179250682493802285035913746221909675834971989117434036740741973947753082414794854732299077683369807753090232374016454694299748613263263930959059100275987977288857314209324622400437053500566329422855509034796330790922473405080582627272383827255219870407238879535497933042736430484158857345943154577091171607359132525438530361493295071930198197321655105621850453682591144242946384289392372823084682999318913829619401818024931394971227247293343395057771815064763478106712133030889410344560609107997209610918327601339515161188460906940931007469570482984201013378487045332891696686163000950769455172110243692756902896657027723064201321079146404159742595136068550402323963698529296162699712435763794145090810719471583634917226370872202980471073372846867093166614329667067117988661477697127457475552558179583759395491079447891949714334182418531266015177403253601415190115367763890812308731685383857303783598049428377858578286525760847646277959903179831026202588362254154970023836949571547975609772521969632975634773606608541308902628695221760739936958767780599167347371997169080101733844140968683011202353545628979356860974420348623987381834430893291879741905800059180978371215877888291101752446253441147681752502899126191956473862469798780590344111690888363810291846258940925073071115119240060091026315432239338902685374943094520160327514390988050239855368666445420708938675792116619133389486931027412753463866031677251548562348047120846746525273008078128078891497516092091390836633826333999122714712903333615158687529308162256246731671224654454747562270330758197969432516735895821285894092027044735435193410154520071366117695250265209442162267338685247765867784257354697332848615047801357073157823130195278547550892638601641203803021260962813956919673600187480610316728110599954314435085172159401451806216918098360218875615780752795410593633024009236898511965394529833287080211907627055517616197596128469581380955295926212038580320036222368875957220493853794754996435120151489105241900729613132404227039604810531879293714291982406804098560727465486565168421269281034256885834614861312056998949355906831856145235274066270859607791298016370999687088054716830479256437395959025285469909272610235308875978593429668802839759422344675823640128597611347420170949263363413474557351252218280078900991866306022915673836399505797371507669398398005226456652608842878172079312295472744588730037209093359401711119811209912667196506451764850448319368865718412076989029744940020035673999329513844196253334046262738245421629836129995021576938608679577171763231748115079452189915606441574785791896177015752081702957409003272881747769240785645703594152236973163633090911053012907231385345105659715622670125677089614662333847391613034744162993498408351255538056638921269436425784364524325360160545926075003699258432226968039289922197893014647504057982122441343572071699304479466998553647248678162849445740359859580045182498257922644797343002600269898609183866469081421213177199428528530397785574186939854356036490302099195871686908926934990481348431596979241169255025973836895639994982990362554087287001925597527679881310798484815803584087512471182628486223494959322231322797228020981408472073067389054435379011838885369659148299220239700178477266639365267332590661051196259487813776749320731741504858079303555891364673250381577815279094381640301779067244400243998965617757324844630471997043172959525735380568681028833513866677627227044290781491270767881408888299158335512338981681764595398207940067749725883920985721106558998693553597054653029809989843246154956932120872890555947984954612134061616722275763416880870304604991445216942340180092745813782285507305586074411257769298694512735628666467009051007432824448770707614519047022076910484327551049698463558491716914926402937288035522211847820930613338481148355045529350540339032888940745976823426818136680219945715996250581883175796145464952939021708417141310891567936959789400104822274336457996657096014521931349590064565394986814292960695505981283281515840929224665457796604301396723140839870150164549522768053546652601844358118756652097570812836966001727971793621480157633349735005880635048905343313417299444781034481795409055651299419920648264548525820989451036394165971455338391536016382209064448149220563599384291291520044746621703609718161055733917519195773357925598221727228725702935112518002130950970558272415378869746088508522723273087948830018038702746220788256749243876099484629844137199539968982515403522121965779041919212967523949388147441780944394565696784399996249526462289881813175017084187847305871006166577087473431648855402965392752089971194865764127247527294455354221124586531868414154595265879295517710178940642903255724064570977794031675241355606231111773741735224544613884234035013787648539774887755184588179785558103552899177574056757993000054069564349264003937508640243652915665603870013963452006109878527194181115032308252660744016566924166802462072768968477896614635114322652625474568646817042246241283138676438222997367581018039866867641748522603626263052422519680046235961575075696649813544668188431800971287662730959305859085475661136869766566374669537737615088352404298141349950206509266024868043195501262597020449665190097018557906271194499066709281099395411261395964743963288556644653565705862960560637226624525527350488774895068166459321258012154132707047165755676207446454146513287758263429513983407038244656047911349205760966934360979414570919074186881781326994078136893691708527239510282783150571936720969995371713054065456076063000922929674722622626179391169232659626623117231866581593404025456399615756349161868325201170713501202131556586858361955024310531326278234567548220526365509747923669040501404476758005808021580618369958740800426163747473708912773836002234925510918847113846999401630221037508403119321196253595803350807091926564594513429061167398270499538296792883074072344643065077498514092977035166253476687946383205308435244284664771011099124760207857773464422873149051298808937513563074416139101852167810374981516354137631307324478896073973249946678487889091043855096251862663775411830941298493210090533713621005195184058212050849159441391670587388443309186600371198064266021035780047079545689533599332359413343599888808711684171853069815499250113496076990562213345777828167179218065824081711509527420851796996403009852248850889746493235920473025314936237092406307436493936762479887700113926571064226156495691435011937559709549077857333165012838993556428759662131303761534779792047392156790073024837532873131852965968935924008200092285027551447847940207064268708093166116814722657105851290967486697116181793767181724150934664008657600817732182018123710322806183565242308802123847509223163428507315999513100429557552992533493472886527856478765026341044062417550189857896735634189421341581818804239973768032562262667958345863063000472021090587518816218600453229829994077563885613323818946777346196382253138842437470674698387023161621965810529185787693125155837661119402002252794152953085380294687320675959248786981943041585196224406956841365689164862096452661351935281767253845907206849310990145749633198359261260112337148850916774332729553978496532671419970134327287724656616229857663498932364864817551909158427632901368014846973266874393208498251853528664824396490095832113759862539638550170275895435771822649511452083910673984195605744968631752845471968282406316158312032742106812661033501056106184824749392425154161306994020246475087476494502301332362361599159774932387589247584102815632230835703907506056170631103390480340468193089565534068908751029249651908429784152498237196688326881104082157571556411022154649338767091690010480070602063784358305544608715805487673777922835609120096572297392030893791292018424919546157847219495944841984342689153162545413687958139815883128379945453302798119066720275811079769674653697516303188055171519898453173665230166724861269070334331094396216884943787500220795788900007726272087040373078450870954573861254533054497529431914523776419948530039463619508618430092741543941895228577116412276274799652263379996318100218115158190105527887135569618892523271256467247773615465384960130607607928751609670024707984971796483280857715282559150833762971625393363896436964975895299796227129044132003097998818856289544043968724482053186510889258764938154032216907915728346152595042256827865908756534261440616175578221966921402668541035199003280476065735924497017123396655100664305398791632910150820323526005552037100258798733565011314529986380500261758727302874999315610505007101915787616890244108781575591166826257969381530682985807031542408290174778349152125491858719196528592473558957122700010270343864959280030692332995614168490999023596077138210379259655891260732985313622622729285455199528318213921508847897486223075225673109573952542997522247129123977785879440284101121448249129886421373192083723116823678815807819603950809471964089665967327696426148923127323905450965685749951546635279302575519879607984314955728750196412900352475604674134311483104929822415658183595943289564710877183519948543932740218665198052270842443553037941154076773058529955077603782959851849485607812291306776130666043560758031157397805258593931836303539982349302463102630883269419824661879502377696970881148168398945435825106812688431120471538811721018091861921955088753942493760804733936349700062950471167967765915508035290004277909435879972381995742129113233607474387968034547039821668529976265638290151406655799704358254249724159940935975578692529709324669049055729498331150878054770245292893970808235090459173223277189200273939763792481857404768074460811179679851315857632025410731124074261766996911575935269337957427192298211284558729068262068610743748674948777924293395430698326700442904132504981172667028578932401741900076166520765039058043570327709628626252956708915048999800466824194038344885597618502414054920998481690861377101938744714693213341850588076072345853819317610458024713583367636958365085196431960988541950300436018009633220192398260361281724930392514471605039025539408049842241934449814233354905956375369959891043056807892299779998553895018545237119674687926782822038103881715329587367281097027976104931831964265756069254273927888935906360922592691174159647619083816340273241769876777634802335820772292639972653943989895359186320978242896608529835938774785146147157047611352652985710547408840122886900352684274453572974938861077514732876175664479057580154932562861794582049421575388044897675911062147163660329886834344514543563314576894455363306185313916416391634914022270011318722574546357565361488083700682605566233730156867504670673221239022306468142490879437628007417159537314407732464670871915884483044727122547852868177611053163765937389582575435033146151539618822217733549418164870494579840637818043205713764110860226349907825202590062239315925683652670122049063133654826408378260753228014067585011479540203992923535626818587527591346036340769384370273480973735322082932031692825924794498501440138705370226255668540894311727774012296909209185697128620466803557069518171214429235021805167649586465158977615035914541867914987777230667777216893192332153968996096423093425066264600212115942922547024638401042857849861987039058198643136689032145505009851012154892839821841940621334901646482517755523201681107474680806848228439262999221296275990673810135956011975375083568917081950540400733168276576782268239474538606279452104004386361656064339149364112311823797062709587652729744304646291423730168491835037619291162578012475234179451606422859780914446800537190548623667170100800294506412716564752788634192495114199836932192827460668074305627776360632592141833319218022241515354818081834573422014533713598337994594856656206758927511420827438716392170505525892471098221360763163870286413760599209386811696539171887814757822262996937334301799634623867228026809619274600062129871342843079126518788066025788452574042032283200289306148043708563688409662838005129019267144105952840530414602121448966466383673250175138863739432808926382765145235775297610282663207792358989583177087049088359786063035221699228265016816959855829589391428299880229815635579666833162220124257658464820235311785090968166106182595756772051241722596104017735695026980751875776074350061926514888985737297701561694184035741324195874515270448605296951823050503266143753111139262351930077410212567857800658087732115481033018574631850901424204970453540258265196458119867239700791668176683931298245874492077748451468855515954644867356984225202246370108090946703758841060052715364184344383724738379741417194147780073372828841203658605468844652284218543062084401314677587966180593962209979569234034358934426764799692197151678067634843091762100449529024636361884676209305183760962419501051372819094525942110304715741009494668043341659348258796644773857149595440071791112462775415663004399694154803173637543285092600468043245894947236379738548665174729918691229453891723004075314638094679715345191562469024904588121092841580607581760373391283604613585897930141226506589950856362776046000943200622792423656635206690854942124768677695767892700665595968699985158005323434232600789574578917119524132201042215205814663114333288396399661186089665418109516905176184418898267931623535827768079741651510766649466947661108843958147241710798461891658757106895141036165364912765060840303211170724409773493440774198807804073411937189065947264062179919082112246900885200785934366998739242992514413554637572371892552349833783491541898587346453622790529495846768284997391759191410126537691488563577188215728164814359363069609390491536046497238614320624529562612713037920534307607988172739741277473127790821175991748194515610991618086416174701800697768745931693441762122319886326227722171112602018650855475362546635081668418386263044221225465609920847564756268613909506058517205879931595863739066780366120505549839617430767435553658567503920861139699805004103980252786574631261097912487645962231690442376324176212629812829677062887842857090817959796573140802201762787786124161013197667024162279638893953735379273058483636099945302250999119233154843039322418654586213430268540323793248104454984022619061074356151659319107409288307561898026047240486175080824370947206308355227899703689729045505951809253377655786667314945970985569077570433914316330597928080305520812128347423309320537204546233668794720510213234001889350309154633051947834264122649848604794821891313330103361747080946014454636764883642907119359162710149051807221257708898831414451430641276015703581864383565937784694002630675403673764458505501219141537188840623144259023030911165141322924496164056177863567980274388779868826150984347517949541072345029365491985152172670629985472559942439084913131733843022799535399152682616134822044876732214361322459528216188870988386456555676946789883853864746818882480340212613893805310630792967916269080228520922993892500600834854882542449917324846225780960271496530036063341376961511086406453896166838595892666306960952417611282510834024771391206616373663716451359249335534454758021139823276113958143932339170750343523052905769584879325070152108181999115899970804411247915819509224229096634947027958635774009002754470819569642310292842041424678269217394959541292387131540126564828361223390060539219523581233100437421140933456177070992311261419740127512583772124691190808365751073230784572032649132010706520925204118357925864712287684411030169632578239258919481029883321940532838069636358457910834260557818615432646716786116628446504244303963611612739955323988900731342799990334634852198829642699786803878184622860801191917805391660147039797066402177926006065961766918693941497298162514092821008460225527022689572329092927256077117732184369159005079867931480984034911373966670674483260286173652879905480666887996624384679833423658104263665526858164772977162048739514533181202885451340155540900323918197901025955777102523069047567483263413477052385770100521950017868623287245014293323975949269673764522184615122553392213607597144524026791576211710217705684432521750842985114334795168835004965248048733995362405665215535061778245069102125001115493283939517350045236393766265655465568969560986109645917107993557975384747224637762424287351653698179357038354246929361839429292379547163985574709498764512659041272417965694426131045189336681447518149365475033298057618927687767081992300253295856467018615581749368923126380199021160891696608288635878632477978295608605741102546183193212253375796540926351664713155882885602756970879391942813846249536985034075079491932360528052263391632770232513010808179732785690587706985997214020191353204298319534762325652414838198218656070591707970449296252830531429369342924159330619102976427860449607778622332470625035438143504525585648737357115647759707963277241012773195853706159822885432187657192554248298001416750560831568458459252368861879919296289550920479121437314417923307140011337049286341000999816032229673147383556112696169437978472864744753823595765368659385159852312587974538826605126020620357004412640665904827897659121894256123266259505230002513935267319616835213185392658997798221814300598524400540338950195675463302559851775334356326484862496570477268611328008948374442569234889318925903193104577684256690660339915307072882659382799468264884960910861324333763375963671159691623000954108145766905867925355805661373190291320465331963049070419338792419159972464914623697576031096414568164165167814103731481621300625394217205633470492941918093671433307535082685018498008564136558699535039429826993719253398003734594341847378697746290206020087549581049908562126061065080188850562246351030909826024834331262453132345013805215049018726676939289422340623527631682389571683196575593115185669417549655506247756123805039064530032544796614107948210364421570121444459938723156356149668549593986648348352781355346297338000920104400649156081927207561956931416074167095918565820538403863332033101143076162237750033002785925805437227012508656927201059664263551260397369573746382833892709650315601920443712938973242508817567177917280070098482092777652475028351558785234549964033433773537485411440197120532846159908979696984852236916273788192205133102733753094904296730026608868311550657706387281476196064379556725173689261940225558879453841075105131978902777307668989801938909618643895656666992861569368641089773179794681139716235032255778736254773366183863456619756561186448562104283037329366189125638158210523085370355152318423567007728348500626540816318103273961706355885926326788798787817408692932956144429887298610578226319486626875684273633930701934499329646260546569359503921601354305082516678778144577361233508678916490234006847686416903054483756949425610612259413102911068246545897569035583772823265917865537729340408111116561812642976291574629659028564204755957874341631490184803186474851722328225407078007423200676448754009168265145153561243478611121927209683561514622932923638838824808565753879622278223971227472840545249670990728789055032443896202349312598834714917890620126435596281776683170550018131419385814526807370288935039420070055996435919008230109112930542829764515339395350803129343559680330031558854629760218744134563013940046633289528319819674654076962752825121572427127031172416707369258744304699390225998287195585190221414452100570555066639893313319805271998644507040472869094205612083944137372204409759426656751860501571316509559844317569748661151320415012690037221980585853985290427648991365571619946233509848933593194139074905098232926650794277796136594574300089841855325522698404096542370754846718800453791649916612553036204271809962842716209470561965980174400138003038726081602684637148069913572079853004472123055828785439491182199463581364260403269019156063847138815337986922475870788676277439042862061737522742833367840381078211875426015100189488414126782701301730768482312223968361668793419973776422169380182077969740787238382062916313404560084265039063859966557994835014874132706442282409381206053663651679089951895517523696522161025802717235299865374620113246546757569430137367001042766978804300440913433901162922284244170125015181636325417033528875058366698083591507557874433633209169653698670637450082862662224166911584165658484667060959456321610779256294285131179620065861757034217833184997887364583157242869444803393732896546066673353129003618402545838058776247006817759905345887976696238178074809850630123040230986594765925263650902557198110383903717557709270989825652277980709961336180166574656302477050028013907773111491223127634799877239333942689059137391200596600020373770553183545164720302751638096292805512047458331366267375314404305264006105712182027685719674439556085987689068170129976497911135241280414899264798180663938655352786087363016515709800829223563666268254427585846588632280953435472769657347430975696316344575423585472739782039430169593852317639303638899175666852559941523775632656669800740316207002112363872062498999575368423430147273144689836582692408346349392124107503778319201393788671304091130243812572996089419939407142068855030258402970370476320717667517943976296826557615018966815154293608811654972312177358560663094562981758517080590707414322304868471510921662963728910254926863907072316808041710371187301046102817895445264992636991178269317764505698306239367967540755358923975827044698722151220954424213073003324024133299748317901735497771237793065483477282442386918255910075043370742001319664305590917539085356971086974495550238417194800911131964066220387169217171018430268481186817663516929162355074990473210517451435759384528658358533197737222898781597484164796266810195202355552900464032301702810429621775289712434872023599840976225559960844192705891573175077732207256378940217015071552119244616522832287743965065683285715471754151692239547353281619270226658369258237317122121058442511452348186900474346104238690758413696271332817020432312922322359711098918090346131840238268946541182897755532902879492707933246305078514705013813481204324692006276935929331603276569768522316611956354117679551710909178174860254213258887226942316568015637651815681020399101483652910047030206678807964063318119186652421932535075385570360784617360631006710611430034239991025527132782277082759869745726504320697356599298293362686266617849390579602024402295871970735569376825597401073832244131091129517184611501528992022744974331338154574813102052575245111336749841185723677680893416970992931068525219677098458709537304116869492179442531559934382006708814259537738284550733210436835772652386832252698641218773496177422365544740434132670531284460813213536139849361409383145010807591521140103364881867583952540869404849452594470912806292625771884895672637279020438637126450213239768869778130023588698915125101945967335433916757912186919841750401935433639843260057169769542568536528032803098888483243137788048537680422171406144867040429399057111852940544359282953981813174757926074676865684006765523332037684501126031681393295943530413831358813856388500439532127106665728691894125821317397350068085039584099474452979898402152064180065439317713583096298112617466711227167224879685431956241515782476634715304230699772007672010814347621313570064547004859177252333545417933360210650584208836837254902759533213724328671579510760866103816442724733172725308003059644417010729249902630558660203149461025985874288772910149347449730094600046193663876364015771131706432564779917452780313473776671486855191102225727365833916417015582033217406622254439492233597426720374885492885191451421428937530622902377689039121512579985205981421832616096100761007555257677222932361232769722307837113995979222684795034825155278363316399179241814814101565520448538876282524353282528299094494719501734059286862768654986755478374371314054928395653563932604998041161406143488957077873995118195830110736391720649733634668422409333338300175694418185567054724656268509735606592266970600553761827333871439889915785837105382660074372987742332718143544615980426701142895080537896192740450884488584142671634106144348115409132075398240293658394033361168400044349475822482040826890330717250815866287426983375495802091261039168237038299410581591098176189689910779437981419530275770205731213509845558188318630644466385157499033908681955156802912342531045952685546816347618828476680323764054013861266683658160527350896200563491898245122607044060912211975150488600626326872250435462698314054397586174174325938890667759847262852814667096226069973625930128299577745864390209935553992862072777583558420412676163931329402456942762860071373046819356485543196747481667505380434327707765065484899520010547197814860091289019546067314419408897547751244480621876910659497507292064402327943941130323232092273926360926165429540192886071317334769192106710070470069114376600029145743618833077136340281334856094299343154714825417173127602358320795917415708488348880516986791310524676407434710646679848601932022306424651467316563707328251364254995375679720338122298587611165373017348742864997222707637010790352674232339874876712360051580557824781686780657696693403506484707823842357561379341655925951480397895157843177384626721251722389166614237332093771674165450839077824977877258077283879463322321100984077869918841139346072597065991790271460915894988565003068885694348786270476900195946285533814391939754487614565809301953467531576057925913909047976281521296474148805663468259200954926113756097598608203657382953998749683359701078607623709798965827158931390860467586761293570162033550826742537821435787598887760283129888395401433995586212956646216822716356868876349861358610964179896193867847117548285072426950786972379833185837485369541416361457170723791534763891264661566051739154901291195897901294145779245952259228519528353020254715309557119147604617999024368774536787944961257680444362170407822951691176229316174386898688900437181091218563084596145192184234443158226542999568936464385757539096249310231572902506239670341275133019497240429857072070981892517030320076543511924597620001223783961534774248973490049031306247774252356800775354528158763492836689685516206441367070262071849886002984695106023399039099931121488461552058963963263185520865639881611362754249193030605456846681241642083764696403386388104751255430687654647951543054278053083218477877813348664851694557941908051129165455343744345727042009467296383078621262004609814157556600502531644472993499693399428175583151085308780887310769428411760406631564598055548557658284676234051488657438278798907458048041652290772314402717087116456148214507178961061578198482377326069839137949050632788764951611626786161802215978125114733883321742089787678238460091178770334784537732477208833788564842140971517075543449164762582753282680854314561948259083449705717622075792736570876340802808831159908479953106366679230536496528880585692978545401777682930684756492156267367429031229567165321083040939073038760451309857280059559694862234160135610406301246503182710168214501072356704599659241144506481901985937381384002369829016892732696021171387483466011879621141378667261784405546541505999663546944805762665069235970082579009607530775169289513190061856382805534623929847622253301245695014375912834944904490256894282147551527223290452435868055647831295016793302373899167853760720204057950514496245833816260611442082620363122442710185368545176384028433268649094228061100176547034714348631458796685277027183330352578198999208068997325813070792471748114395171784622824891718744571144019605658945652423609370272867722213609269210934951719343525647245216924792284895927241535227561284357641838673053405390353337317625667950599726649521546438917889565676521106394308635699483875053377771516348562000161169607506160781143803986506198989058221948350961967762481953712413153592552116861639995047533522366123843181469978100915185639909513689768787394221337537853501310528393519979780142627504547339971424277980663728322100561374631472447226658651429755513908703356051842916723163646489815163417098263241820013919863594174936677764003332416510929168620797779803130739279386272128493948893122112049180260293991968729424455355907569823877933274536869261533707003347525554364232626708392635669755770316572129862002225882110670718658413132711877907830793688655920224596465947198485570911555807103226059137188824191689839030378543137390036856108444444140156908659100007362812787554726082799096724134054130143603840092055778802975915873033243337215995750440358112208336835695371097235157710800996259506836514731103044469353892236545013167622726183904973343865280977527591613535252996509419480575906879053669190049216933134991748222867954699386361958732204515653651636733170425548325817336785371925129459135988366662903928788699752563720806976057065493321305923448707143554894018000514833345935232274137584349011511765311142979049663629991210188768243834233583686376957467891991792864999916214914027777373374969218077262825200206428370092030565380854959192409838404937727421865262212408299114159808362207631102320273188333769237749268074685437560286887988190024158348338039458926724798041042139268167203917474376316954634507261297750080809979220655872603499570631896532230982877029083665326977438386117555364627810020121991033326726977812078791587896674248117977220549631590146331612342869611581356758324613776698704793983052226921769331270369150456841970591816619057696727460769772380955393880194364375526673069975171927526437968518247444916111743073795582699405453542517965814272480382201918186601635356536385609269881620295381054378182168191451913664684317513894371408413106577489196002377708180781945090550304131108321383002171073057682142692138863232031745026042422663729919018692789114145893790746641192611473115766482648509927909954950285026007013440827505972390129791610545929800594588599238709167027692767606910892264789063355678028018968062315295802875630109822712793853872074743690013393555511855412071120107085075868151346822135403380845067870719743719824142529851449082532523683230692738999163457628748708991959812895177159663391591936029950952105412170951223355274942296166193526336165307170760653783392654288701452191886835700440653591715569479013598754368361875134051072094559771209955371640525553999092187857065839095242397195962518509047277751035894709103931037690017166920859505266974315280913242436481133521020124071690686970218401010630579029109501901656673547767880482147988563440235991559183003299334941865877487381806185937939767273802495322481830253991145968511849016661676867607345219481827760590988859708441843735832896488227763239486789352211857656624839516201824849200728280438837509870829701278412306114532218536066531905163315583704348135077955848967704364666673904216653566949644948599885254485500736763335099909114093255776008557554486768051100069439107735289653270110778615510561493757517891685315178957457559458990436467108991780177612890175491164918834282512617057442710743202075458726290603975394906260258502870701772004213078197236439836123098005999110754483173402034686614332852191625366521567942422961801963868937396761709164312423092126934875146276334790976515721997317066268152731215784077783893686470346490316449326096565319339678483134823794834621595532901430882258703362059392135695845219634662276097100804157453894522468180561926334882416321793496888823815183037836050633636337269379851555603000347053535781074318079183244496920702357307832403108203431822901665556171394886427089786651545808642433485328173516651726047899249606800024273332620302989168983266695086933220846590013923988537548816662695693769583775531984148532868642088807284505100923922023022233013679451512953670895177602325325234794169406122519947072237814454428258416462979855324078737574525250622639312027904818027849191967897998741535591072763323973469310427653678019979385709570011476205150665990582653622681191309746786076276365489913540760797923569819590936249324260849598565273534925535049685591561436348581667515902625652484023461385081334034677364979068113452652504471864992716492500576290409004550356384331618604617732418130872904730789055289152267257554079046463139021754819565621439339348457298837329444150213064515229146880869750566045888063738270959452198069188410969608185071217315100050936634634712870514227738295012005584646513992094979628025680615540787765460090514220249982851260848642603122069334737428726453345644011776158377862662505370390048256447995021891591909722278068431723835786992923742484004150715490400797285660377740669433556903498793914413972620986304883571614342456503825085093013965010160716666583790599999256424517765145332323299229133278831616746927344293908476181986674667629311345167971740841164334028315118462602868851110226224767323751175561851141230444789990028271186097421985449401179051983673363455470622254919922127293546102931640873871412939650016655632041486577833725355559104130283795346849623513993332036530590747436458874694066895912924488124762625597742191224073311502398505590708934638642242881075879640990540139770032773442126790376892247861776021885665169029131513756634645089670662356892581352927123719885014308633818146144770570183119472107574599674123742882237299117611238030706763396886020784527494090473724013410592047135714712487834764093320209452136741792206085402007137790046119886533827531215872687896801635191160969732594582024621819179968388316053211460096877828646630752444562788405258101898248398379845527582875240350812697317743702592483908257578560900721652247547686769481579019185388039488720455496488621885922540032103708835386672351457906146367035032512872565295975117095735276244242419658765348807563340448910359067882057679977597809050733830296921523733464407321317766798439821874777444414275970491557566023249837907112507602751219244169321193426922006673775844959684815606501382641050678470790180430587890330981526111105056618836752194387960311368388513574772093236030645921114254114042624673951260187773899828298714895615962657358390662098766692641397166144832188563198307162630669386938734713277801426165768678714600794500339806894379045752925491153373595510320214032147401570751917182725534094038643478511300801139031795633371872703414705027996654216610988489624132327546671882244221523339525739751723924519430870695418333850185156592333366398848963488461043834448052381142389143510808465385587889910154800078607892619213104959761096439911604924001911204830976116964948954148241920786980811866452463604749438222090946461498647047429619339923803132244957489136920867446645302673016986942791367377061195535832404416856122977608251075361294777157765097354389863897438867529032574958399565612358374517259675977656261779285955621897517997911153806301618402874529451902309424370022183045874874491438179769667151236812725862885370735883428577431388536860677969982284145273419483713647421732575268815294286860909250818114944960677134866177613599636113925539767098679131984657869516800364466668495061207995431668587110180616784980700882446421288282447977034088709271252195727263887044277387892747948612372740910186387594200359319272127685366716986512400035203131841530280081279461755127924164065046759042093407789424902577310691943930659374948803255833806591443214781799867773216551345997270883901136536132345323035609508847645725999490655478888486857375585456379034011110389951225411596891579508450767152882747373893111347500428973929250173323796887961532612916594358082881282631320078801996519185985113525623720571429139894719670767167418957739654935775491998430955937500243543019749724971205481580329415826354850736961900208410917378081221326589412941267030172679013820537152421480348539006096666038064833412159568567820209904836509334534356672170033588639574393874950101471171259623073956026949707198065139123376968088966244957326291771220203163285757950928905572415976106111281020537563611581362761312994092999057086230592425673773022729989867680365527082490729911437860617891331910796292700494497795097486378954632912968950484234746102358955196106911730957927851453164437836177884377874861527024702506529041034910763135181934650861814635941390408361776461414214680551621913401455850998485272390812916396979544373190799896625638724961230051508611386691857422899828233107592262483075307592616295783863496099559395181681671236826373847761647722225670127981161067386971880623377009843733552996246695845452395951921530020330045427599331226545015961569386109190464935475006680134354752082778780535901666545879614844318743623809604858297137225322627079106539552432229504970914092761429784088808703004231043250335448534332478849824018739263327443202453748443194944031344732706206264928357180056165316494489905433587478978289472484170841448071011431000758059750511207748880791268434234571045157308386742173706970607982079883975187493423770271427446613838012113935841716298179960537214956581759996694907667190138750025710307871892998926042011529027279670767522573345447188484180487001973242255929648347483675260155717714558743935139753590248800572235348134263812489299044329353595804810488514307478065561962069610806432819200959922870568771927574397518552493787813995783723235454649335737111665026895151916254466048890809599705652876540368392483511143209163243303992590686038763936886880541021136377110897588273159278800276879081325516788095030106006143888075517718848700695441813998877997736327728489523993907323630659893061663359096491909634002234076335456995496993497711588195569229591215100763031325325321251055424618257159924345405569791603467348528499592960144409653999516585298167949715982891641515358858801477584868306039511920644882792422375054301277534372989459624291881193933073473905694302888751096571060517807527481723290960811822069370600093275500969585306656539448533350949992849514359084189670399386517271311660131947274690829061544375213869189990494565589634968680637612047297888228140283824385977490062969142670989424738201051456328742985088752137378346334847656088527435593782452437404267215706316376546641105838255095385875947248387110596575430964741073605067354416518066475752265550257671484700635163539914854750329064797831572533658392132918956984221359320924151193013850436994407596337915612511114116893677668932319675257913649912107289631517749037316755179339055160214051117379918050738623211842504560233711980183367461528884065648304977109688228196968813521600186514336954210441209259205309546502849297449114953713646951231182217369202086574274951503087838365886051104509721330598591347447898074121325333025340662923868047388415627914455313511386951503307269117692676536035601642553860398249117439846073289578207461849928693927336081654080186828457166735295223971826410826083672829130524215640259495979735747611801298480913303585296266026492318883122735310645353531632115317121601076604547014470133247622391303999036497798879192683997111877146876665843321747205812226987494538794191563924881887603565214291061292203821382262799353878229498823706987631486515307119131863845864800337229043420774974647667753185975850286316885077044570971709942571438946860761897174416445600831619994205553335403541250095947262620471033509066099440781587545817313759088329032648449519701285794880643679468813865524445538618584018503547605110711546245304256092737391292281779920779362359634488590416411671614867314385514168546405598260813409740850829577685276525712258855601089848062042828410616933378931476322784591452503864353241592942854883996477842710875847577092924969235453240731763535890568366837021646988013405737250852808964158953538549113920594089046854631872500409421860626950149982454180913874684721313325650511274764249708877596350278469549855839413214119930773776297304524205460702371544365646716205610099109059270761715338389191361585703676111817652285503637252429039087671357468127855113293645025934375209924481708174825987527457751953128873139724449098195294030062298383955987209832156705234307723549198809333705181525448923465250421858567377856712033691043530648213815204006420071892367820414926740439631248940417128252932241788893262646914882742534235554132904507315319357087054457909382452374520741581014523735052567228696419050968813504472112286053307975899142203154561145018866199365162987583760226608328937732766569601196184401482570573068342355903830198462969411189091916224164766790104693794544525928692947611323431334980785746101038800550496862781904624232804475820532129418818552984276292844289156978908038766824099026576684801999054961627682333975923732748313725140388938184342491648271529145548608784205724943705776595162956076240324342468124227672561245531035140946657366144485678364864836769385057561170235167854664756841424754294057582543525819065569307829071334697294706030240399562630850231116544398382665885099754949494135637177657429417033273387913823393555849493383763641678524620633960687660714210405072132422663596103445964369863842188872592053024667262982305154971876132828867057277664174051897561463097329733326487002610253944124919883836545105053433021104339205774738975688072093800394621716796688460863881825703507305554141774171901011132037298391682527628486982517107382884718415631443042671074834734955914980133367112339037380834721929164362480120359696012858975095486534594390148154299885010932104959342445790685158773310193046972885023900683520228701490661011949506431021289172936099332767143172886709451202515548871691584161245306360317971694687926526260284440357114421220889834023143060768628483302800172349963035120121161868293413672064798998641958921331533861691443160261383697853062555711879974140103208959237819211011941194384365856844483769857411264063572268985840808895701614723943404499160365355501672170051443850106962503770145813247748471591673862577829726449020436054970618604162604927655718478025089314123406891230792483441123275162711232311962137240464384126533699310713948453702979205839430220651562607814332562847525005730603646204068039359899667027477045488200187369651920810789653269684402264129811718829325282799640533794559213804638004242325460770331708158971133190232779881242124466446018856390584310019629954123048498986095453943218137471387996001490400926722473452347188569623485140978804832168565511367486829408537755682497161246727890832415183473164519559612225107037543015118946005337641302698749856893029472824219356532235614942781689786582248908171610176008264748131576888883552025059258233367314684629351925533375847861974536983986683296520929300268116854309886128437485974255335568517944024072076609571462294664685879896269567826548364161124884988272916391585581259308369869628656886221331680784183781984192244515263950896099338872357598377984830795147020797336253227194034521627019561683798334610758795862264742628221886026138153681342049044626839634185527142392548715177731222072911375439797360421176190106449152931087878827668039467901485182632966581724334937274998124241681711895571561706371397239631907847321227545793506493105485857822228245977517358318432934984162696056499840103455704850706128012172164859638493848941865237340413324424177497313729350454164086666662362782674553054730211276301178749193011018812105030101262747248872607140142412890237224434066109871815063369897347173091612239505665735728626759770456034053147007254719961904706463031369101351565262450102042580885504154127164846398199205035680022397751545390438628200265489340220348197119902727556450063816212404552946864085365046309986103603179651081225368063351749059826284309307156786783130324094498133916965589395236119436056971941152024439601473610967436319893983290410970233647729772233977660538735063415138856910651756562680993498711086113698301010164609034603505577437032744618427972247805666134446256644517108895090478541215844018775717965454398354238423121224080541767317916697492018038509476616748517091802622903753678317259322447096342980545251940570761474188180914222189025813484054485288894145295906524080892997517573341775585613646478683493418121843202191788855385794321977264869978291739443796900702243130027156810993722283350453584647854488365717781932431439739263870644480441240761523575461477395950599463288393765306998172719549618691004369756799258163366364087803688792182837348845527774235394330136076809399987132106989865856595431511175732004589104148419651639613105067281606716723066312611210675761831686981808437798565177823013763040128509954137493589476436420520722928053134238108319046147772870789007406064144432879564500170675824215624991307022305723482479502226724824756284879141459781755283454367179354012706066395576642048597101677692014348659565205831365971235187437069332348265395858888843086631778066510994928281862931001562283654119601122789798842283735111517826369847477259460264615440041944064467203218672755759594497404349367820027058704243209842057679272848964453584132973426554849607285563354792107345395444949316253283915796886656728864691120594789038355860729299005399564796978027396178850106503674026126725882784575401706889787839667231653398173872733802936235523233284747557928704046920767543158429881566322424728401696762045583025059715166642942050161946361936291533829586871629629739188261417366523908769492842026952297805096217075736071517440920775082228101213876668402555918576076873391463888282870858224525485326043902146071167430989657491418617731767375407258201073040988276298199645419036147570236475866370477431474729252414235104441191546400957227223386960386204758357842033547021824922232667514762981549592297771554969873764899741480003208923989152340805213165003749036541132986659208045900727925251309459696247154389007194427050162966984748401654308365789839360690886760326834057510342510449437076986946045130997210409650720089424334530815459418333935221906477580739585971384565659539156147436420713572841033922254311028739450204870897717055413459515393551387029887527795174302276708468849396435276562133865328092758158370832525145009793437871483746690738283726358155126784059845435543391173625826700292794016521822650548599369492360011095809380820116233458615749673778246203455359774980236968874643275766238824097983931829211047260174112014645008688138040094300190086969537110974252089752959236574217500439621845822129878603814811145782512069347371968604800653465256659877357427080951034823452100846307178084794966304366629065071587023126712415134912457867726855001899829431040550633704696567653423990034267997083217320317517407441147400130954907436973154006660858227523166897730276392044167332774468191354933460893701951310629509704925580644100952566023797040392220918202763001101391446188645172822891795048413727128438958304594545663275392449436059335175284586213130742374663493057188974545416844344971872570125039123970065844346606321652277695840551904486030139754528381455533025440897974676376277120453165432288805241062952791677244830437837094500968039956756672947909555291751513929451741870679774977858558020618177842932489598673480245029574268078177025685180496219025652454752156563669490350257768343764403883492207000446494655231926146806736115179259222720470066450130907093275692019044604102411876879790893064048716486393065453625630762994674422522917346264972449402000658174863611737111793610575395610725799324666695371233690779962948689092122507653507631627908549101369314023178303423746288401724402218177859609116632422492797752862901352585081535989490421866490205225678214858059571096180025214027545319157143016592106354244947969313701771690041172082498860323602241016442314664352612162884422137735608608077571265982047795233440589849965692329223582438609937299401055918087233921021902029296674515037074021103251794789061897520596663584603137193157052520980786638375867393886414170196878088634381413768400209072594531863786715311002119757205868282651458718556500582260089466830291098411958729451028445002559960320602733522575896840285870935385926837767562404437490966961775286819206411310475593022871135196604721521324223652695473996403248760678737142596856522172353604560226891365384492948474464666114277983936383362735737278578283473427993193799477280969656314977926670124315763419874637407899810528215597785077502277249956042787141057247734649931672115008578512304949980848894001925154316736883956044919763838363852628898983312013403932939707277981713756314868072056065553256168259928412083893797848460146236786911373362135461902061259581310459404072898145407014967980658418501185517841803567906776964488352074782893161366738739024278715580621999593221383194786337315474318096501918715188873076346389552247899945463789012094124837529970463758242109258412995432102017350611063415512796499775968049622301841483849959593724944590478894783178620384936545918374558532366630328640950118281144027987644795191950919021999507105383110737353731188810409793259299297907280993912522643842439170391850429291128199447414648248958510888611780921318942111108028620493634416605712271446068862517501751477890651268545576381008724023217557136072940765955978143525932193066995305310706476989561952056531974986613636221248660618672676362347814754071314947765636773582210128478840844648655472830712931714322097279091204734478029553293896835118921511534469608973818192469057652889309105233332748359739838613858149416077836587709565662486669684422002160146339269013281969237709739306003855545016275091511118370074752057793433117862946156923882659151648812519741465253209216008049105584587072109449867048632405084527932014856634205169570938021800942625472460462464321001728286651510922511586217986136761051482078187953147358142685968475807153063914349815773491005664338227189557437242592661899652550893161473000922299146645856825881652175173281197096990396921438326878880540677781287639635468939217153524055734847983698460444760128425693324303139702299237906438206107719647407692766177172419774242915488806709010134223182585784826597476949850897527743748925001078122871862015015400122156480374970081252714074906771596998811461495311113894786148361332572381988783262342796398262699615117637501826276078248553145192992589558209853265570580753141059932579726104285356829021780036771757317879521325563432136317242496901200637615611139422439138927133234660001040185349981138277924460153664246263516098278623097311131599230005752789451022948937859770594189185443915827425660342942999246356531018180136669769203774752390099382475589577895099042354604326278998865848176686156238617955120414239861707863748042829222531788983248103340604410326484929798224641918130311687853741571009937897804467145743732931766437134066796315028071332894380485010773117576335239006147674700967921187791554424628569084050249488281660028268555760585844124014880725267652219749948367211191147570845951587480744453901275381904032493897649343829327912065527288769087065537404045067761907751462246458244334260973098395477466950438068575995516453195843815112558945131951806945790853541826136674678796006579115071064256393726515398473826245747825423102331758317767657139819830414947118608480899470561942423887905188510538830429662704070521418847134525909602172869805878312708314518203356850962048249577627061630924173833596497657599061722730245484485522639544850876674849638932153955407139205406723158295156518160171866824418397778720501862531778840444096578465787580381064724082911903392843406403928612220019636950767153154618189006571810872611243121001486132703734780427250806557816685522684145540992907183047390175099088448241459351657311104459912786586174699297405502029178126389285912093044253992453999930571765838231890291630652443544625961163911663387327375664023287013826801717565464851306658876783674414478289169565718275276548935149307680907318268167632492838545675331302190970648273320897760427194858930989410925574532672991961685471680541498674658776188317183385497947555225392556895086101360452039006669172434173815411264108436506066447425194867016679976802804253101997239594002837064834772946912645918569565451777207053234030804667237784939448619519865059814945962060558825460283980136474008668275726851804621432328038803103651581149351842139321781013717720368538554284242088687654803615279324773030237469008856941877442972244334711961529655470204738180647475851051487842320815784239249923257441599690674382891602253660296767763551765459833654760139372146338839550671907843917802922472369492646623670028322482540397021679063444107105196168631661686680415407413916418012627422659609525428509937259630790411996295059326848570843205537918934917994522715035720175695194142625253295205220685255466924856976088746091617689938103882057671926276137170606254376169897291583580005415449456134654698551417405827765541256412878721564755267445407961869532280686728908551919617382448735799324312232955392162656357362624568022677580467113244615704939608807732518599160180585429019970945993909951965949999970841826110381743278451306302372774625333745091102085070494674892723829356493905076817771505249965820730991297807603564123847366052604601237025375606994241801265049688421350104530024650333331553977877606838536487381841830705740697891441406623021370949713589903116270331202584185945880528377181066151559370927463580577172366013656999640199947361128579565470685934722992227303094490780409688273255070307556565635975440828192490830174124345142737856769038936713646691799028529013567727477776848372233715971282730804551312566163211090515181429809206685488042610606886721496390288953846714992315128444447776071456702450531011095458890568246382621936186956218507666161101776653885761995590766670473850857201096617794056089721593953604043548944061277095087016981052947508280848442991371264636103525331285011511507950568620564505571643435091506925786184799022948512491627812819054193033366939728370169154868687668941595738616888107795625315127621130843135230087676787577580017556672107355899020671564564003063126337549751791918068497364223983818092121657786134971986103825940702319250635656336111014731488410953830311309932773845394760949765720087932925265949090038845987279306246881071346599111598561345407532221630073860561092880485896635868928261333891629743533494973548554169576889699292662872243932564547561890091689662674740822899718666726049481147523342328323995997574166296639054760740505362994758362929329583291765168733245386679159159150365145093122654408439149684894271381331988583173403646615338473978327975406863433029473570407894007903616124523964792213259520545728115766088990341416280872073761432181236022683865742054733718293435679182923122017470894052527969417887868421197186784203986586316807320474173788179549501348639349785829277945851102009331536036349983340204305558310375045815931484559142140911368065535368658709326193940655544903977693820728245041178196133174987560674258558260807761532427955326561257416460433001159115191358075567536671590344333550795285753608847706178533138063847336382993199865586879276587280704595475461660356205985384082369875808389502264926990145735225748792153576767486470470248384600215889985999802681611316144115767398913244096050588892031640563325304134526964269838906749190157914203384035177599895814890512578932496117574839068959120439905717189305928078557723862135620825077956068605848844008236612502404958968946746968693715146546278217911693057472396322667329870318431855079527350404756329527297895704524719669008728499974378070952737188429893744550435986758462297640865516361513860878724556616691019924626875251932161656813148838308930661866144027742953600878534442580904545622072200411342795303247887125617738733462019319232496698851690658137835553620180936481319671331149070116601349645495323768766678093611147593037509238107700476008056096534888720401155408545987867260142673545627355758847448623643334912675439845841937343622021170204067480894307291351109772063425087605927997751229939206076253905952036720369148724698718376235628559848451052984279262113138941280524959865221816676491000867454352159667082871461793906999701814675416885040742554853572652030551420816271821301770211110658236730283596576454073077810374336192373993930988891736092255018310415394342278906262985158647080074050949253077803256825611160070482939643689969224610641879104890127730923813789126074477073793858367980138528293242231625941171215696885838468741058111907809407815204683049937392839421591535776615747162038508394634710185238059298307821928117839951658524513522188772643351910511817479256538868157697025201350406087892490026657921290577709628397736508868026726804950443155233086837542987661709625591512207429388396587805345423752017595912525055378250491495678711093222522876515496089565936473051282897997056954400545995489646366839810370271996613108657206016916369604336032118757953919318723078433563489097995252038467308236473770892445000041431576997769872719586188886630401929113278199273835458286746290232959252901176310151188875092360743735821888180173365269135608870059076498660536914186700621508275271556659255701785325480762883419142591841392970899325832247895895479419164508588688634733292232944467195413052195275101917554455766761934826721471566642464038109480993582924365511986448712924553932854116166128454292417190235808052659181163383384068295917591058805500200512385337744160607558607684492719838100526643452725038912069924543656192177001690715047052010132014393235409935794281489046604714590801721572110889910372872117161385635628658872830342764952787721037521454478854965096537088257947142506292506856789792346486694908862382051429531258858554672778310722826575578688007094621908580349565349801886954540086557990062923473452790445629452669931227029316935926042538257016609752520855846612625489870648289869081960302382104133937544439114121991082878481156220091614712232282058829454830863270476050719023666408963507041589197790882062971151288321053186138989807697586159184522885493974674779319189317419531220829014563272781728036143913471733514637236362251805858735524256837975185692244760250532773707825141996094190891791560280358043981877057614429708920897609609766847053108400618261384142143265726352663893265202010222736974152861566510594981621816290299413144879188768562873238573749473932849764931696246923393369794888911121305407441471091568429433558305304725907978249795826596234625587291200774052790518092629890969859435717394778052503939792745286985768625509008964564516635147651854594570716917508464050184930197928513392244376675760523217231855873057036293240641110222990495244619127469930695669828529436518494620590147286566818165414638621581419283850177959084955231013397041668020183625660119133965270266622054430246470006957910241930367046304561198594031375675837151171151385464697902318210755816379002635748123835765953423261842701193003122334424828304274976841142135275226522482120128415992809464549524535901897393156364186393853022421657045010328989579014905971401350342337147334673429853346604681811508731439074231517172523035603180597332221547165655877972556359280448706371175008657355642492426043029879664647980379178978078201538762023881865675434858997031178735046022366145658921566943421377770845671356318277785894738579648557612076983566217397647923814400006829871170628142238795019904446664711287686715483710645407569202989722679324784218116503758058569838791999057767389402831452132004942236675349865997018144961377316132373711147182711192319147511718971148940049325697513322792874226162679622888813408306060258624773845722702806774421756254413957719156560600334024365904762968725445921801545875032586658939467403387927929657465777688785312948601437961215779225805511007655591154647583163635184114894518485247588898365570974298888389019368329665217479393839595330425133814587685820529509224813319573148080858275655513461042823574978115366262986000972566590387645595121427098816047720265738008765037389514596804568462928350267938669840420458348153602503423066729676970147063817507208938569485733367632710180103117183956437667414462826922526666316772269156147188242778574374370169165676205208047453791632380379813552600900361038103587348625648991620135644040005439713508330806203789027988502163657762316958557157232979523061823711172156473865044947840236106716646501109574179524558048143487411112738730437844520948829857328025394188973315452034486821790478666127013277227713753761680817385503296238322443085869650376881604261482046018132074629878823310778413225212251596866530270137380684375562908141643363967624402582240031645683521400842901711303099860903823513430866575526737302138068841733822452635851821348054949039143670949587790858833643645220354220059931691381111734201522803340859981635397265720252394744304528522732179222642192626574729632121800919349388661038309362602676452560069689698338673903878987810450202001601669691835156984496883679736932090178291549507246757382130722087734983173909977664733596824748956259301573983529919894507824473858524531934619347153019265434922774623033181221493478975499249298049078784644008591687744597418745936601383436796242580544927688965528130940588104701140504687656803918835439560414458403501359583657276804073002538888513706306702217039133751946418332040642167598427865580638370436692485264272945503267865426458181846005752628174540590712257031155922673713972479656237443578350657252136274669824921278258027381043468388488812529268637741398474781661949375873427226421784152210040781857163522603018638207196821815521014469813828335297229783162140239356684320263148564670907294728283293926348072069246989020562640792283200525867029992338154214766219959558575382655568590133894925403566798912107417333285333078801766076135058343808663346107546355744574750926369073521112997642375519849917592151765136635303721847125707470684247647691893642344357765216205130925132480370309765204598536866347348347240307837292073417980053319276523077993483255790454830060233719951845361469494205443799949839403766957160589142244251127178635874494264779685763072614877962690986977122159615905782610873938193488974242625470423951988796517602913515743266246318850090068004746892107705198404217191375824694828845197515270803325800394861750767433916581081652683505647702455241847847079213664379312181128937771527154232731502683625711917340047244665074694494604477286810229319034141088521732202967212408709923123357119380080405544383827064492955357693614258648634748138952230029708439869386777000546224969117169674385625757686469338426697532580999526696554539346574363460751877377215836868017498662998201289740333335482222293322909390669493282294023376504688408619430146750198080269796441952899809147272287249698368147403235429317446782292512869946408110484438312281037195139809454602521397146821482095181075063954115182613402963201468306818905947725471273834559938043708971401361066731992406488037216149609417327512920112923080259164809187806474801335864444579248659646764037983768287737094090321089069381419312896147907988998449849495206164559808993306482696163182483851106111926647924174271225818206624608661601453785099548582832452344904562202662859291091098698539140391496492753541271701782360302840608101849714047751814423994588547048446789798929776738913482333792934341224920801889599440474884505612030573095103801021693905271723568192926185964297806732669174957298764625059791393968958147305815106137401340214032202704155882167772555746324740368313556023398586353565364921214575739826463477991558419560862559742618787753291860920933883757261809634087354846013117050252616488483835648179030601405643891128673130999553425557902767142008469599259271889248153914836249367299063400891978238473403830350299507121602392179410748467570563525809266363888666795381872136569347213703728251386523369119370032464504534852897147763138298340473767021745812220847935763925819717704070942297073139781811530107183922502282480453269569361868509217407614025126913761943106327594296568124878363310242229365343980053597937293193025939235939183720982539890827059961334815598135746318440627373940699644970158646542388993716738264051107587983769664608267603659115524967772899332926198620495625186111570845888324035276821624875481086331018272409384172039536801825411544804660861538861057981829365546632501522767392773888275306956005735252340643472251424150517770896482561487789046007328048327916272846841343296212133049509707576662203847381360373372483317783173172630423572191345310070285507836575275413008290732936124590687815762132679992252345200544794219166245506346488937080325360072235275316906929386361573374899843261731196705296928569882081718669280859646786414066945510561925062008704444388176204506008459809026252447243994329281434989429087155212973758383879646599215019661552692733893253111262730417916573716463035994453694740450039663641458822786545101685212588525445914913749921949971250638894053942689724591283169994283296493635457947217849911858263955002083270164713104368040134072078218658667679834325455129395411675808271767926392519033604731135542823329309117684511299244110442682381328801332297595358911449528861387333865078922484521379369082517953401933971464842033193240708127034354667083230311703036363393455791265858685325226975464596669965557150018239576598309303225721102608287191261618423918497339235036480063285557606693195243415757660065728724448232052989615611676826603102563864065069593432033664205814487034733105832414871528414132444139133934792028598318259701816521028556152691814575489923570009100112744884420379026577747366990288548914823099677953143810305312742396448646406337013904023567869873061885156492128958992895779205357292388405798607801684205849586906551846817548758792846556479847059501360659267875048265263734299191266412435144866985955897162070007779187506874539147887698392215568897120799288027143105065518931037203869343277847852105282396669827892277832921070201056365659222369013275318017595544476083802069971769849783849054079057528539738144904587320602574055749170788171213318853209762528798264648436379269965038173944187928026930073900341613623797130821080226498611741557274601966418055899792799657953688666132853197588368532563779590121912287830057480108032176029318312112411267495198151605931632552515400986068364589305228770674592796941429351706272714328255841334672857771521441265034641053088758691485917553007866471317993939533594536492365790504478686590840003481587984635111860395714560119715804235023932641263532887878443455476356537540360335360394734572960401076059729696055817679183602888599273892562278249693756913829862958560515771574747672740837479936155332432521001810985581383119954780032685211911783644134633788651009001236976683013425123350965061397974948635637529829058803271440744104768137266063606014116209631081319099717778045002439330267878240833695742173860689883162130137618027415534627317284907043782458509962018795699532380664147816531908404482271650616327635783807193315854245792677854310440672581471988876338269983680984272565134010655693931271037723338234560360126127661951203870807316733477204735709397301366263833023461649840492822070744510256754932286840886397012277992928039109634405966092361319496753833845392345478007385926358111459910790668798012331619500349520625269506715110066284920135252959456304290993424583007887888283365895473861600224049048559200108592815190995644438142090899900723509658329803260215930655703798975567978449116113918491850559158844268085960457298199379503327398087979041295334946293573857463363982437502180601247546553617429377935276746345318019362258315988935902361551832378465854436502705627104462198579889209929031518566654787061881088591941247340494322283843162434390522382757365785642168064636770525574258073044310673594729949405704434061065232424353452235426316166905441266931928987673937559781145265586267562061130379749120120861352758602694586406243555351565324716144564267623335613677898010978706763486715234376525306734351708223562877850767260819285863821073763606261120823048648600470193807891412172747673281931088879785279099502013226460829306848871894902032749772520204069186693657321085629487407878860833737661385000820249989696853577651461042724542765124349076230407117176984739503319564795664514405577741061010539747819101936626156599244122507367265367066122002144166070512452501618201882399009334223885674662908071249056929831990864529669099655070597652586777578516260416673866374968931376352630509005603531600229610469610747640509939187763670593939103765461083545871117596020606819924560966185825719883115887487841799130929606366137028999228844140196386006570778258378653595924633310514856407631892433843943637622322322789749270029653667363545921629460942962065290635934161953084301155435016799014953290387852676642108636832910457441917438559353250278198389179382041859057386530293385340196348654268141570041767111096878160674627988115253101537555077375493188976976420261381267131534871290064754551152810954173051134686003171569522520211636606675207312203287415087642170498599016116973980131057216553859522368977697809803512311900074325658720713996528344275533920424144636746305836057371979160381482493563205045436253357881062377750526792355911910115743166394823650694343717865219667557014322468205237860101543069101450400013373736400841056330781310604887419180905558429754192657516137858668306783596029520037192724261697736981477116690905593326018550753946993320698163996716104554328389607236739256235953010911748634171126484085892200908043405724186942391680118614858151331167194780654870203740138776129035334566556718682563376129175456362021168727755333132573888776527173427763408369149933190972878291594867552765989107540191095096369634720974436700259358273678160227726393280935728099516110123533909656668843984912519237333954908693286993560667659204115593608892260666867909903997686077317372180691068232873177114905942714532418820887091382177933388526871197321586461575456066131642980804324808757413832503419624490640238608639657729791032106690881223164680107081292844072910812401021605436189706846660219160692928878869445352603727078926281036422082161303228790941130215334602460722848168997225436423270256131256179126591881703359856311933544073734186993786271434504845827324466285401970488386185760859179824663878104469206556315756718629871618738175492428263911011441105044043753492778800096933917389719413490965881706569597177044038448932553120905940410155704646164978790969508826028911075504030132375684461642294428284256837582348920161415341177040958939136794571306732500040092916813386430760150173152056375650720839963757962813228266979447967745213506132610284802069637280613873028409161872215330072707133120861951447647272891342394358736618183917395110776579678023498246615957994592561186511863104336077498695822408622384992797080621143829306379615034621611493567038707345331801909074416858068323656493616414895094819907261097825889797659658671312697975706318101306703730846653874331384697618940489469717606416571752663230373807575162512166833558370106281695242813145131013039233369352074000345222830498108735619448019150155759346164064853161982078316671285339315203497215921843548875872282282222735572968343030698775177859544913935690351664949121607660124073623463470505001769215501554759048644477399634866106204657971926172041429645219354268033638543655174496607365210036808710338126497266014371476361070410685535755235219787442884747458049243249088894580242480515716439594824984746975203120195267418837209001899024995274250502972742421556259811201464455282621350791551503841152435328832436303965534614416882285282635955865033665427878995875940635631681965818542870670891468772400466237691280368875562646130536494547634337107474056415638046019096053676247757405763895739889724807313973967099624065254162766346922352830317256874923656034765291854727135713234802958918091328560586388343784776615311476604816706758571883174028742774882368279309762543512929078340222915880744355231014661019353286307443874961427718494473919549047461169308019770312398178773460886819796706469479353863209636117751771977423357191280442979183288636361630392766361241677470889597874099410618920218026641257942262876696531053894554856185337656152623903213557388369348364900872552918811296582972684968130814658445790749573516340293956815062974776024233666399473843846422696934475303007886159031666361821417552256246729353224217143034438685337377277439338468455592843932752496516080547748348769089666963789242535276955349005829989144605873393674837039108155897826873541348243617148415685611167420141717890516337540139758159212419059773023101425116071173973512444421048330653087771271373524940786351208373399835685879294751777009798026912187320214478530704134192781366987471611449088853802507740253612599969495630390198615020049722308597866514786975711353939919831254599179666964987356228397414268890349940795236196584734003991861326787021302156683472845467747990882777025031308063932823630296574756111294808304623656066986562105315169411524722755558261467834744664085874562625882983303011400826336033286192160735204615967593825385722739865640517268670725691537237000392038419332671903381367533722941758825885729077276217145489590222375647312950168837842949945855902650186089095336281424982747067547985586588681912893179842162982230208630742338844481918451260404005250491964953693860314982453269000662846279437505313442818902244622781211676982568004809629293722796022697554118696146886304729715524393757197865033219377694807412667991774847001922513805047717197991216381479383899341108421453458177021698772924046477987292322327902308735879262103144594733019497012283448778096036186815963290306571193680084825528320790555885217808178804727277790430454609259175515360247051617499704834508741744090588162462956072957963947736230071418654003059372530628698794069393854743630173213000328404200988182116544512970874617098727214807778924871910720579069780409523629806504221247606092187119608065000342171437202998345096994484523129801188189365265059152506317189748705320760201252760104779050183304844805512214371404996152175240275734823323875103476325457607290162197631249534824643557007310808632430653680097066315167401082650488731460154246321769309467297296075047291504360787001524176917301201498731014667122424683751804304844485586033985287257770472513735796818994517706033089753058598486947648018586565795115204648747978103691265541661606678706441782245645898741651464492576502176964060422607429403725773505272169174065612895583410655357577987254833454966497258298935164993601806695077015879907891643426512134854034286933363543775621789759731073296054308191349595329585921609444642457226699531138825346476303936029996961546969343564377026050021327343896016294821266391921715890559711334377254316796406469020724854910497956318477856570978801482393128072456702179352595209663862752507499865355585414754302406054438064024738662013373442082612319143948120997404907738317319509778677814437573930202283137311369826729313092320421225368374292525973362816670378049648960678750643307420417984312737237918522680124788673702176772299607827716275862347968884426592932678699263151377494362770028673881707196044652345393549960841215024802208942193882098371429740304787451632948657281827355429098176270788720599358112439725215740971531825698974608331349066023692473061265837839631205804662170881269448625490869273040289436897348065693455753673206634185015370401261049322476220831426635333305901628820884961590408537891292282108239246544620690017756111465029367292072222266920754793048006051142129015326861440007854807708958811048910872991573456880300593137890314739646766829799427913937546416659852791852006258502293781857009580985000536479502394222795211751654889186003457625350294979060667478880027603073477563898738539719176411489257109543725638551711700483936901366155070425076990105243200559602876145027729476449899969564437469146649268008088673042382652972449323608670271669201293231417617487073713855107467048781163710682059167561365535124237320393669665166695353331740619726930848440324871167068522159040684890629905983571396359550777351394351138944159137721749842052154230873353219698108765016393728331066413441355232177832722341462782687051849273386608496189502444637484360245380177554516143797995261810854244689120223415337944577362412125568152090541278122912691224171932319989324132903709474422091723766391467884301537598952367184323748311070857330925311224621052298324422663566553571487765253824682925678531011529490889858397786212109197345486490780903383260161353934278620675062713073184548497896097423813845880829080133226877670794491277763609925880457747578890935137371883668986423900368860519939219486909823821386896113188595184836274629794656728500924005075140848164854052808099069123424428487733099171528136113274753762215306359868426824299469030384345724167380394485615358817232285104952751652205212271683702895893554490334230467673081238891610968704191778338053846920569616877661149390485868171164123856654145225538515958416661256990698604352504488328643843432614668524454759111985613338110102153153990721888261239728294770313769400198138797665085108175791367993124634202640967842185620020317747923529875955837207082226900392655313369864178266045560046911964875436142553668698454985341834900288706296781539558090454212410867314758049887011341419038963919589788616896513528728581627679166075584626530235257160313993731997237659323099187305202688301805904972276605300300597698132949351403815343303848718902643551976432719288297724541038323880962528369280318979174437646110083657330318759991034649821922720606856429497019875542443068097797000001291534981008433520764887051203905418132152885483699065114551688785743408023903854931864835974692513699001825969912793452707705661159944770415813936458303774805238623841901948472892300572961379398033119106300985089684215034877436406296474129134218835020445007089698975656584836529707549907674466683014553912402531959304450673432745930143535385342847377117912140609463080498334955361149516460420987142031064240621858666421103086644775157129351278335170416058837440062755750810419359890723785008720620803992256502320503584927236773335687672922358565209019714899873998937120529114711647460561520629917120236218853109132647095207315171731247383544379893242105306544235600705597793902672131840599179827255478607959435511127409892342358528054830516300266309950520813150444606493798481306700599314581741500473636123394135939926830255656167138100347200553357448247745058752227523231774232212012822422688386584515481934354557969971943318538538527763895221412602001814092738981437779337204002053936440718397885290255638328312673155961138407489935658944251587203499468532419488441727713960973327152225191651470488210917941188364558353568396812852260895391154364935396676402954521845855867441025332454865353823146270677239729486008809162277634034235522044294610481691311914045708510112372146384696112974912204929484401386411311703389454059367686472474149315679530187249360689795884799756878816104477991507535065537710426478033166189309784423817666512139749077539780926082322032809740226747623010652479982753562213298496417913654984094607100240992424688839978336834179109466913759695965005187136626735733832497146423252368003772749597497672190546063740429130023278982142205710985852945564208953605136452927900942056336041816105877532459365806777341965067509323808253695017915218750778017989030961697375911291941587265247619499964508429653679990300280303896799657817184235725829712840186080069021892283602291377573076674040083399767648716201632813661432402731795260200166003686214081295851593356149234562188749640138203216436139089559318354271361005988196116636483325207173769614844899298365925487060314689788171768680438233365562886804302795124707535522628199403133822860008914938239588694670854470655970105802908313144374160132487614276991592764696090483835771500321883334298404838314062761596823965456793484252756478618072896797035608445666724876467475237659914045240170652091922083227009405233824892471729946814058311836702954126375567977530920681769287620134085765652032098550364888222641715378487598499773071541109351595427530443617747686745101575017733753315639172566851727651189453545140923932721250337468797421068917292037050968839736999659468783305180099094039295318394044112684156919920672817643049500588984256902577954231476697522761836816429438476365138668562688426165342254347851076927438446073479098633303781400395162993370051845569072290649384024786367198239218416969605106552905510527817148040138993783592481268756717690246043967941855145050987518138276239391285835120912433347891310267804882018996310285465700257348498444841581473529634639687436349481025941004892188873013008625421245728745685313584381969664315137148780563105657205685028028149320313230698491600153584408544867953905999494664030056353022448128676610846242340225705116530096306823446278268610601430914493449680194215315219071851537069334624633310104747601471737809141791380696792723168418936667192198903335250193079496976850353134219188591825817759916458187940567121210753653082497546123846026970468158983362456299245901880471382412662732717280874202050929660589956413162165671909185867229267391452612904544201115075667417364657359342786642211912607568877013438933578957956735874365400205662443791106664096313184876041840672756401423854230051660424083229512634199668716233992229712493440166009119291800245564648794493716668606861596176369171311637988430531052090231400936535612441875362862759410226268943063232986060020084876094080328018150592951423247916274032406301480909823459728460360798574178173755806089932594961263365474360174482224790988214389669172988639543026542881967600564724154477613067256049562090747609167303825744592400981175250393318948228083483238262822990239111583445697920832400111623426604863206128050533575504097668994297488719570355931751615707614330604254796893433097540363525035584311474445958540372319149301374950461889894685155001990676451140989969736353742929372236336463021401591731532530498313137952537655617957190662112465224472524827975219351959190682687250553548165722421913782777872775671404309221673718864381519109208337929066037741425422477437632785568939390149117597828135476241948284818459912657020202710854828891971137711958718051805463779431861373298446030930171257219566583363628401354663231724291840095604942771840455311560768518248754602250438921147830779591791515956461983999872119414299497947028265323918872614198850509299439646523810482633243664649371918354896413853023092851952945324405536697169421385001259731702018141980590688151047783562502105641149199994493541083230554047970621448145880004014988920902269162995618240432616689918388902912531630139648952159099991641577925566870818662583506402935976845637151085760332365360796653849980916524014806230256631646441207224980849478927714561504781846767331663759208241287345323721708267114941735343880970375252191133022405088310839291193135621956394879157338707218775877020740184682352563975291489580941150925006249970272443217227254760181482606972145173884406114089176993035626234788985248911025973342706530017124188833384187108348671099640501993570714315889059820494678482911394824879954688979699346113322792837887693893272560243492705538186489470712191385301088135714999834670206601391687721000295995584487341000263901202624678092751930098147816486898625586862108062830483600207129956115600456303888764618048288229011711397343066652730853031363655716392103088197485530464334959410893595871994379216859208488764196754381207306759186582897129304348802808756527075141347045966771691844410033609107969649480213500926962736260792727567305979884461021905776217535219439119544588011013344807125973297236777339166862639634803201710541800538356268750700811361181505923422108423201552084755233193121029928981806008761348854489452004759619628905981716762580327428943348007194188143499832414468428498886919871016722815515217195423418339839767799828209743913279532219159956928148811437493533960109622098254923153223687697991679546226508736533038791739845076306453050065640754534295015876614371498431618743999777531707054696209394139120537858435435265517149989541334167696291611821899728502312644700483201021480302430539007985574188452228319098426760790961504307951523163723045220249173930395960004047977884835233051191938530224000054806542797543800513799081689825414351771344244036159458928692970627599870032953110556959609480183084817632197118067859214303914432269614121679559200284054270516567159861984655031235984959574866094462699296007606639939159715177294387327723026120743529264077444035037184364858289894961091077079952996419205016959479144082971489564590770548590515431337453627100066548888848833060270697718932562511481809003570467285038370778165548540159253676612075713175300306605704879228730263871412124782535400258840495796955915927791576890028879072983987066507068193562202312869516476359916894649607586322320784304131749457630837536743800558660460120576347913043572643588933001542841713381546253948454045456869054815479329290583779820451934531904437852178838942869459074367412182736044344564189264189400054840331927443555294694023496456763386089528822228444572412096804059209081711996404572982089882921381107990884666395672937404553337842311644835411246338371502689697922939794104364267381466678437752816169819826409207634276384373354380710222245047256435268724580685472293095895380170767726788135469197147725152539157386838458428501613080203194201540061276559394131640491543193734733865199043431947687968999299865276963934952797547004792723823286922126853768894499412523086524257447462007040335557452642864794483897026756359416855385128397968951892353377062669932069681195111459825787491923056934895301690006214057593483322634431288750878164928259148669882433171412236143773411174624871501651828248655499957017696289408528619874575179461170815916097772835862140186992355173211173952788423798768823621741294515503058184760546928843399961300691789291141410812553704366196987800346588263647433636704015099233787149693357458150126377268889217247212058733809711774626519640710948408665701416035405148969605134245338914991123458331538299223235683619958491160924682565946017439224429512873100631270102135070887722877335486685259645030134844773590724291913851381293684284913224701025449067788370391709000203698833609658020841643855124672341171548951564810465608205226069480727232371526240542765813680591319731275127049386483002317234025235461914637671942222401419327579831684562370292666497712509611746711593006130162793207365517786259517103224785101303486842317424335514411092410826255031950112384777620148093709251035946724005272549101338622960239215235606049952250829512344770834327361962546626673546814393097579071508489347549837414314603414156849880475497410178400425974176970082546947790377464822175106383875611966822845483898550641957617234104323462172852318049586256512599052458203970645206250692363747372918522698908705008097527020642841398598736633046783601423193663809017428111316870318862071411490530343647049168138245863121221999293780348993939325546195391390404990476962029307756587812963366307414698035124194670123976904693385713095757919871669996299938370571605345379471661790146109130325139649990468039034720733390205974216753108826068852317580390551623814256238094115620159723704226068914348275549248989384996626731160483861642497826832913201357711717196505710593416759321760535640555294135879516152518157889735541053214315437278871827076076787499614255220903797500925527153680918345982979204609400715148969489879656261711504438843876853043042273574031235892267506287458685490412496414428510864474133171513720887120517719110665256977305301563677636373688100448564668487204945912406461078472865577714031458405270023618019639756509059075628931457770019241022307326346053038569119864595584744240577017142184427348302373245046601995493193881980684881918033426170428413082766499087202343408649093342469775976247716191368381721034167121602251961444776645169608146203365712583257602111731244349762571748307842017551912055812410754718745944953290290303822283266402371108724811304031911568464686247287878342204338671084340262027259620595840135197702270746402327699936379097627269093231291988478597389116047751795589754442862390847535975130991471099356373578807123781267217210371738659831428773251125547597291888115555052135606140692198366737181779308219801298672727009280710183115889242349277751199522393718143970501633982133078567999318752858485736595012339204266359837558002563747548470200635858050480526881589177361129618124838421561481996547441307233468058452349061937199417937401661906361276554568801040170505710122950522974890037328860910146335293864320246371994971443558919615710240102768036568830820650097282164894852891048643610196635620685131278550984952689618467155838162880257157772493137359214870758728823117994463170052051138772961947372231828291157732065900689849070820858526467130683853425611501973965383899565920332823460169082608216092153989302197542135744965807784202786437107629570315566553312076740751172672349793103877079192888454539850527538845093864405643567601786198707687768161957538853592465704173265732492702349911594504651514710922330303626598134001545284939339150538068944410222153386283781536220157752414694539242738385593515615374047266384912026020516495030564773695264903227043975997022909905372828349525843195043394096320498922751147898617519941095463509251977718355103495099665508979773244990412271918386174489893760481759665346171565326142270414493126283546085857011496812750942313658774269412386565337489346760072735072505884267298893676736566060048504459570658506111618081675847591493776668971742470718039804240435022305670380095206371898896708439283334456250166428816492542244033916712643397425038778435811107889385368725950289760275630017280829267430105136160395231080044479233953436490620302260190073029689580183999585508585836384529898133326872118679586646234969250614888574997375632483847880750294084977855377189241360632061367029211661303679482441623463098098259488402685662975457098797844694977925357587257465930936147150307473671565798229498851913758796336831442229695991785122322134602455660844926646715262580681317810734613713827892605535036848647362111618373845315544797674800212528200776970174475215179806359160631468243666568916210110249132530294301716577884395801846763288039164951302078140532963344299328822851260607376318828044610091073882665330871962601629975052280275163641694684372264298815903658930451409971495291126732180972024458255224808486949409419138191550659755035245334630402661555136920527975083164863024496094085782120084785183499809263440028942477939429632590020014836183353368079875166721474761761198739893565135382310809430775165906576038839984490410276394896334955620726830977745761471743657495789176220612687529419110842759809380586301550578438556199383700402224496320107967970854197936454064633568622559373138103948788621635089452031004255332036080301974495178283693572671395602100565539899451252682050488027025328195142891660607774752854251401508268028278616092636777302891130930315061113978294220154578192192634932859256703404413075420756550666409865545329008446415993503921662356965634536531742129187907042264793177594376581055752314516885654693889229772716841013132703937763083498685468807779210208705510377112881824758129328773051008125836215717148330133986138114843937914003392401634013414628410604811335486543292644040442164243284021095283618985480330305838917935010111465559819725793298572697591956160954279323831891505164239803162431725623171138074681253515005170907407541333586975621972850172675102971495754429283920326136330465462895493190012067952910838962775320952075602570004183090947811492786873469037480328797177067947552168649560048893985597151918485756354581085876766904806816478833231874130646821028569294027670194900631749587609866363061687944861283129591966202606511601685919340501212804251720454387281104154382406946279107269682713735204014742682263710159107544601191740446617063705277694341922127000959763572971381640528711055980197160115646260368746009049070228942201377871577284136021290629934554161892053446880567868119245039483470907227938450390574351226683344208848672744421993541141997191860656434797888347954224391005452486449007678884506627896452851563666757138578380647701906327712053141168133981745812642276184245758267428342342704041188439722516414672411554061312773426711282414033095402675693133998448773083983007436926956354402966700117860275193681522352723278497695851424799524955627340899739975425215182099714348888704323010162743045238699624653354266685681208799209871048913938429799171576602393296117859915123668805709030275331878833282673391502011195803159260737506733224422909921116588771805887782109237033611959572397729489597128635281991090083996434920565641443366790754444266143602376047783587939147431864350381925726967221462569076441215931061438451687756925846412157056027527270069907173695123446768373142305839768895330028243133510653974186759424738648573047004925634523825185441326232380323277719583294100051780873416882799614787431700270945209220145284843756868009815946221252177289495446239006374195123629189758435150639963604289021278305575006526574430818503370963285742518271103213720214779238788173704077816692813248588227993237235388609881205130921817632219986660651120605735314588809566311628228611787529171037204143626780382973696838896470344098154106040433972069112326393003705086969175565850115024019081499905053183852123611872699270108192351079007819361705716738682630299236750106699283082629230087442191043852232467604246971930932170613043908517970481665217336185545963554523887611380825571182733686961310334025320414352940217930250731756274206094135147974158334111558490596314039051362439223481764355676076614734096192948277877896395549885038346637051739876174834742990406265141879284296830365261839559759258927556737335171094371221287487319256043846267840019318835915540515129477090847019961591564367340433496016969169740632453225706765324624626413888737547888104052466339513313657095443481625405743737502459909009437685862578531263066134603032400344614519621150651286654008362394658167757419352036919236742802059936933785216076099404718414229630194109302982666254700631365583116126942144797164141415412475962674090735426671633502533776594907670927132973936656128107622985266787332462346334142194277521346989596472614313152463386130986046420418580583146230928165721743904976792129425108022176551612173782799253517683533618013100342645071078766145014291626212106996652146825370459866464176688580012887213290657084283036993345174813970504305393998512705405810892692726258378969432170748279168849076140509080603346915838717570402778598592438456337423205869064313576972425835633401411298931617831950498457888112060806126593538104172252120524832067935990188592020420057295120468652098594677287265287073011064103667701033156342297368479274241920064601839284782932832833425585857835837861608396471478480610173242892190850868471232106153099565173877617376222556707709511371182185320927381309855705589129443852264652134375569712901890182025446737729724269287833927009791921281385718141157725850270588879967418077968791129914868205629494662325996795971385352641518759714537308451700913533735025098328710987612618745578386865713822658154112070124315991869223711530688423604949307986434027022485601334819208231684673544940878376496639868425250474692361897656238659164722991878767541197046939638413265172175980739368937857643503334050174482311800795520335190898167346907436892681244730718019431112710401161645024660118145271684643284322477770186991772420386920623424678354831957857683626223771725850655659491229437161562512311835150000140571492233635985626744140086385662475912352145890726598412073554314065656461585107729791538813123349335385561919306662935839519604535855146105647415330809770849725595377919516017494068109796481507982439555909879521151123511416689459329442351485097910034531494810043211403391280760881335823935854147314464675558910823581253883651123692126147115049039220013124368537664310115678907202420002611153227258588770863249101411740640191820219721962599886752922167956392941599477147901763188300019730087419526639672846044027785067265051913851552714305469727681347957207561799752443464029680546645116099397950661289578504264528634027561910634886771950187502152073128519212643706005713756581979999904947948577319156843508542501398812383384583355957924532373187684967885754132061591326192293763638758032508317878386162118349436716187739327595310992797296709845630731573088374074047419451832947969728445117187854481952529152426069524905391607243402109027732606787592710306605551177379237834520253090160165386065867378955769354775101224940246325943097072352611552370843804894057599438857632238770290189766667650774427358953712154973296666880378200946877448723480724977508556790261916854405325867586108348019206582859671050599517343329237461178351038075072179215204090595685705356348962488188394333973136848444411499310347567349852506016983697222182126072916170593250844913205409754517054318093738482546025288656781260348481914369527126230908869349306382512926355959753299271655321805397948257693122195980906027461024736499863383142657306912838007418185360312587664019463343192642461670274819743597304303270270043251708844733803468368359008838321536068140365950947056437958931221703591448094726617795889625188554321730293131142191417827559454467895421578563709376128793049452996936790277076286977978185175113465748092240289454315267856903057410897540285819902198923574759812400645801032705229924037918288779979953923335179516075131689576212022785795243866325540990935546408650090974452804418364365895869247035724214862284519099543317466359860316707091972015865841929184476742342883344448987278031077616218393360640439354911919976398424447854378658712742714767113380246293082631559819619078043779676499985847814694530858263586439928848800185761894354614250639797365425116930484406483313253265143452813030523996939839999012948098608319569139222829082225351084152853015645434936744190691372433355922183376625986999098744043613890717071431209743983472343232038115495670322623531794291899893055546127568627435153381358607103272021162587204476211950374495432718652702411666086383828356376607272769315770392845405018012319955689936125242137390924212045993938505010131421810485888980063158960969148998221626326681292149917182039836235346848449970331772727001741867737925052986360825798977680012645472640437477993978333300750244713176810144018693844022537284587013282441068085640610898234035969266410803674168039613000250242996873063190835428449025930618160676705103873080156040603620017361130253868202922608085381865133908586949587298987177154421277122907115831043392960701277951650052102394688462429355877999132948787316106744214571250030820480882275478194909205683039795769308336117350604848381278766186849793432114176340146238181257135649656032232409535740249465809323829739778626108759887080737121722443281859230964367305011341764341845803428246604575722950005590404621847953181981659739123972988582095637704501620157754472271527653659448743253084919963182854754609485858680055710579417676370242898859417734823738429951373839472811074864906635897442826039441341833583815455779168596754253260820741275177866010207221379183929227335289461357059598757150708852301905314801398177307625005665220412811337280187462321439902834013615490515770774362479198351001975865577700812121687490022724375254871844452631491182739251032724946292835104244126357457528192188957458599620479507861483938056253073260714314851517864330604380777632822158256563021505364790842451962497771879754017297063156746916802412575785121929121011551437146113510573464510705050010433527565567796524289513058391995188833138092882179399479398570762099971384440535161665610327303591002238012740334329434698077875803041262992185338771329168045877083111639838222584076137082771527397813689711020114451410969162224694520270772651575169672721640918317675060917701993040218699967905823619188031120564615608478621551514366556105900872112871719759407630608623416344941330450334794120395389107881073958434344220121470882056355606708146246043918447655470314061759911978075137858073723345383399997685641331352387929499768535431085370927225824182429552046562943223901781523194444653872176316142987904143752186140367597342425829853784075213656653502962180008340149184082229673037275453317095362894622014547418227533993094008068731193567104654119942232626865215975113153463957272070490944533440589007277554894274709571855604939077827452986985991515242944787026849080054231519798697448408561791861302049456786923245830787806609970789810851957500800943844753321862043002464847271388452015555248161008711357350459891891901193913707276719939847902471131067802110726079355401845560562960717835339065249044813026425393915843739363572185156547503353332088745330572700268029456538575894975703334846896792457737029121649552577190385728258899714749105069175602875105658882410523879270527122614180419927822495829144762383929656763470505890911225242546925409058344163623019798997622673452529876791332270650653862560091692551311165144006134557718300380778149367682011289212502452048131658068269892998735468901812578564941437311063097591599512965643669742686645324515180911700535775232458431797715544275881695767838353592575031277334836480015329240256772774590502929288181806093477347256390983529525325910202178546152524884608922088872831811066693802400401439194311353080213985010036032813577469909417838486330868345100029529609317345455426959926304039980262267385206160006712023906535834054861400498881966108143764586273232080109702425319207053516675975772066179952907307335806753080425169703168998566534699231122506518481247798144677419755672605703584333938549504769904683737926834967902396937593358110662243374259583951991959802620268784494640718253512838745964889906709923934121082069257035629720787847777385336887370866323608172663572391268924063671283718847893189420836243772053723867396126820846446557588943491824853484781226706222962597278822022191821180827464042918638916731339384642538286876608980996551024402065936734087275035977797910803149335171957692518343009483286020089478494497706228354758544050465495794987922054443960396433945369636450355942968947107535027356139627309655476577977994590921518225815490239566064807268907106018845788542911536500673573531042482731606828527195407066993030777349223433363282978581313562763819751876116615466878356357761878659504626107535250655091425601466634928059983387955392077713797147505245327429145794191741639170272649705889038286630316359475104987965525732394883672357954542931498347211322049341805958219864557793780213741684676127205863424933775549327745470686529713441129344120101389945705875291613651788109971088568362048741071040014347562683435685224871134853464040925922036970006069507287716704461031101478851244879357422256775612163744366471847698838945335784498902628264884296611844056027475549234573955345704485037000413596512614349216919264189076429951495275020948694376820706187442714107689443068770904527424484887562590984777194931675350227246838078087225291975776724282442409399623504270142304784658861543139929042615203021484820866498694309223059893545717389796892255463807685578957959372882331677813382992544178420830660689294786122280348878959393996033049575272121813042572071671179398324982652436801614364440248662921721124659253604589486658329833967700243136477985424203795043285664826244958359771735451595774807434763953499978941703045838565065324749324329331643488495071656408751255868990674326930525741910001635988373205711508572777333482165514911424763282458404337961709730991139673869471572498838822132144257383794927851247361103947235487280529230599747205382147598726876704375333355518736375245273532779148046046065414399934381376266143135839005782166271470486475393891595352677752102809479791681900597493631796738026047684383178457315653652651937456913969548296209332286088420461329475979571835325003100638118986471530400318163682051474676090469243700693996305463618614767601406533900013786191403246558597959924037879519631473843747851584030643154504389255483542553134169959582851679394311585491085751458579624250957799428178461243039885880414037191514600327933180146512315768288094165714605491623072547587761136586019188734707489288155136446529966741079036239129669709596958849526906273032555112492581049458495240904371892664602356728777930283624223916376929310716347937034118012160327174920932743520470238541700243030624788372855661052461749949947688705751865478552556998683404577920007643571766981677362517769642566937917536373726521293769611952211989416568332027606010411312334547460318232125773138126436712280617719506889215504497896467491634622802637677083092817402750337452845660122381520295408106156019939384502449305621147221525514907624613240206718394570459809619166267341941718590634142562616591625164759364852763601244037425015006402682619142056973231360037296095340836678358595843856188249698547343113618166747572219192548371478749204013263587089792945319548791212659475856074612364325553255925812574239823956617596049133164228171301304160138901616203181377822096532308970231281000968908885923818261707777543370206854516058191368194745097032726532063757778966029915733924941763928962699384366485395558090929513216043392847081732370499022950524356279481546583714788733791363328896792264522967522003345676108242746726865401412280710125283383211586539582518118393319300564230399958125102743963642713718899469360376066109118178616476567202345198816527715546555120186641492207353444638322055034184984964916285768302414081507765042812239876194333980379787504159462336372484170312024565393547564495585455228101934815494764560981119492458753898861264374757204567657285239968910240502313080719767306967445101064452249673155758321159991710458089027045068977944071739437250647627526502588703877444227024914430653676767865848525918529056987134253396522500346503653799247427551969053675103288327141575182302002158831304951029668209285628709173865702243654435286943303264401377064120090597047603899687555797821072495911651426628612047793230065584032356660474846477150997794807656042515963114378017229424995934016912727626998638362620512942317427676871915263887883708697156837660696318553548521979282915319172127124623288134538599830749333382756815986325735875786565622649743582465505889468634979459218995963411694553602399242495242853913835819903725048041814432114006354000847303416743942994157720755105943954012530154313780500516054287872614268968844803156185093509786852994154206942849341872460736486421251103571328744423076571756374002076445172272256710626594056244640004636546556751689545570856141200124380791243519796009600655973107650936632615840834316816025953902511345770557044842585062812195956559242600979912482226532111940284759643564085691147996567284925278575493768932548027068360120993882116187956419429113247048221022502678811855520050842898631998110754381178316827970791155377411513912059939876032532965528898988720589343631102510659341146474970808586996536393755252715649720665710120171983483895824086434874996314685496548630199508916078416214992406909453392677289665372597150646531028140569733227996465717227435689072676452516689975531681494448664897793681067325691792028899118582519750731803475735109085914337155782751437542092898305587579427232106309580412788940503512052097919249238870296935321706932703808790880021381448284614379493969500921435980127213182840130951069253179419526067146081549214948770517273984796460723517327651735770753359156669062327685399266648403898004355131100338630004754708659851603711346170077147384634780987219411973894331707525306036330095045478316816141293058279167202557691519594591859721641837246738522203420561665529719705708233901863450611214063887854923115028724813936187917613720624732955837428355670277013377228348771220752451034849643240625054413909269545925948152004659375468456508110397420942165435371930438762375380830984586561340472661436465834965249845564330926706047410860216927472348551908227039773515245240052353358495669415675922103728292145472836080529052329844831935567146504275011840660837692511173680091446614890367416644807417531158689864869580003789060381934002160233293291485678108321563600005957463921201820334617073721082553065536175836672038731010672953606928834266543187341696665528515698809036193538840908169581175614112019547385995130429956678178449825415697199175748819403834374737502382440202753578844225155038161210084261754688691393495645928855847849353024609438046147175380225920777153448373955229118809150020658968382835449307646294407464392580011877387165622318456277222656219964922376735470464511557626115350256785902480057846421491713472816264690831135255474182424850505007410218005155665686912698353024128905711401134113621741907735994667673255845859376170294961055568708495325216997887141115712165601954933193491877090408818620743517803798364528664167304994490941745854416090462212466565409766650349178328149111705831929548293573158811535886246312086683763307687335002336708303404488325275403609337044626748639952638387908016002087151033125762839428035133035168177198454116553543214633448143895713884395335320689945110392136527980365849580163598832690402297524680404189812366896318985332415607198324545033830361666325201234215987628243732872595684446187420567480296278763422654222458090889785804574900590630568213228122939610920027845187410070423633993126666375007595141032929388195031448054390565451833083630550752367914350582473309204862553600264002297616540738969157860022244830603579077559857487165553272933002993821947593545738775406295319136119809224893799492183209316926508621364594400568459561377809866174898769908907064534612506828874728641170309583312437123885536422217586634192787209156521478432481340571216278258241206400112207409689237326005780429372839437711491788433426459612733586581872205469248405755936623158549344909646258386691204160154223371841328609176427115089048092315944558945592904775311877678302810964086602890546487961038194993676670415493075944014062155749367190829525884416605407262656806672771890102041117350555316971579487935916764915154921962456408871421007455669170457646385692896923000862679855341448593412016086645516782239436557165019478284345381473564486125530296395734164907656931404146359832713699326446801818682104061108299313567701689654703768030503657725943817829341734727088203598718250617340859474384614313809388829800128587713753098835345665743330788248189985256725095748341881212807178993039334366718416012572861300200323490152503070168808192550098350269344713311690865423834058902385047639817120270044609766972130265562324596679969171417680749726883924247177305970074899442666362331795076292779994918907898645676860191036278459441534026339551729373268830171579041699264881106499476123722323582580984632670368370100838200522194244081155353087657031101777600177485342145966295533769253553517075521918013835682728618630859594813000572630843793753069385832078990334436938364160533196557663123311497155563828607322586322761184558356663781076055404511265701539358796504377677903569837449990910686263412242216391960069230867242115724767937453287419201077975105076178136652455447529114814237147781093880753688827514200244223479935449291241416882644104812945629724214560696300273798397291953893729411666033685460873569125847339658318738659441339529980581014887310323399126637045129790998625493139316152955681195538289669184880532361950354617186116851680350485963918353966012684052005292815424026617663555668679001103874917661597506120246546779763341433085492916988174894039981304931930685411883190686799383414318272105023463515632973771598927242087531192255149131927608968116057391706218691331637497469382036755596583157804262809500497369236392566602408309188999347208984719176997106802506314807680081512947117310617772964182811374788408351928097336689204019717525100150193287520777490476435914642648091400957503132895701756175671246281691427228322035940459743206545531878049190336695686252970328982181728043586146542583335396151992666482023234847470950408015674288034938060231072526880622000813835993528757739920425708236846421957520693402313007573352493131587219145862732532887693400367408412315965982019105785298637790159911503974694366912026539120260451194455433580194219415213862286159722408242952498185621728655882594296553989824089831895256660206435426664469424093996639590969891786230556806156921484870807976974554769566382612731197998762354691720518313927673945000162462474659212749505432045120948217475497298459645965151955385402000950366964702059247926681430392967566314316011264308472119472599713999619456223801615572328049952778429416303791201195826609045877263229150490589164710920216449303829743783846903800309929082219038405391794747481906462432133900881870017399724207057567407915299129837358136823856312102185180605171167200811090798170008029081046657127669484194958740138846232362929710868074555013355412522376108787213308555918895441156912045109898256076209750280826227415910287550395010567996446213428050565622933562685620455208463993730266028038908412486670920946696633622156136669689430275915402394275799976192483895184821257726590600799909929915206130255404847005365351958290576439176408521782711747257458428393045686407676788909533125466764841186846337706312805174756251051744424676793140238382137827902638145423079001490528302775627693147551760091608104465562731430639528391323069135611155415987912667956521524372348451375573893659984106177763468499578688998456022678050807046486747822379061948467069028142513913399645238726349467011757997897580621372720773970340198051575214696275945194188348710827417893759009706908684959034497588697961721559658101448548601398229834175270788799322090091961623516619359647321830280113133577734514041011267834355494094352143766216734837187254776735621764019497833389668485508739529043803336088088646275148905922587202871415185538937108487574008927432587798963929745886630371238056854976864775238951168732987403445826231823776584525276011942759782196711715473094347535549827683459019501660623671181458395013678599732572918838013255966166002094680615038603138340310470308185758181396152744219970333433486728349311262637722489496131561513386586930331457028550022247993553631587725263803633767061942226062246673168391863769421816837912589827740354979825056854652365427716257934123262171873032164321383508781215681682967650292253526979112045695858594609231954468947910268802509850788394606166519986283001283025033223008383606388232084520271943041742151648302729981679555189779672412064067816545244874725952302837949989655321958006825011633729393834909737979908886648497369678677719463236586366294473931404334642120816567953077599336239524706462000502166595020169866286235298333938414733293918078016384221831258625096908995187429500461880695354880415991955355777081490376662896192919923393680828241080687723558830667230840936962145309171348101035000477792214043473814692551690047896534362124834508350825594936069171697511571038240593201484947565515272487883837135530537390453819091075697176847342650570114344710128227958858237968108404644662711635580846198500179044057305387615884186347911017247219660255052978922013396535363837916460373718565003948436443836199085878211073196676219177573557239880551076071048791191328267729505106719489101147987904490678430895673357304067439322191252971000752536844903953987480617120008210045384453003820752534785239914510483201524090963133811509545507861662632280008977058432740434026509142219725143582774850920470754137929250069723499501240487132905483566615880179275176237810388412721908328359784897006532868960048121370726779371382498404752871958318923862096536951578425554294400785750751325754058065706239153361150743756942800939327237876060078995088172809396464609383905564778155900490804899515172302122990443214624546480572901870007639740849228523984403542361955133121625896174790859638172255820017550243337493272812492909574251834088656495324934161307920497032834747943059677857598162538824145258542368290865714065258416547040446295076293895085497729342640351906594268404705318072037493786361803053180707265415014717689168435940949410930337357340211285681358838009492453276312591103132045777405136184403392931637406181795077338731753817714449664609783373955126741862703243922372897442351584869707666966705764492425836927556520374569892149787445941962417707409288938869823095027064825856425048040188575646100030310742327032813632326039437553944090032059995373117573555014493061546747369205355592373424899517855949227224847575434052726874345938534134078708094695500368128553763785729409284153148287367234016198223938914404145155137611699258539313296301321147545410171537988689896431293146713757680995267481791664245960385464754452163920291908970506962262513554888142609898630777722997098640260562016095847440567857986898124926547613346758792935664435577138068419024838618568536208524094444475743376796825639522616117281435498934835840191118801870756800238114009197135501049076508479730230410082347635903891701805520532399598007805477408835559835431226822872184205714864593548742092582029011774447877900390287624471588641742500025877078158549868503839770781222740803071441254227716413268729549191734103222793714120745831254167556935206277596513792183061287285817242758262873718900138477616132923874771730332834354677288551540516333984743189960049790826691063818163519411295940351055201121334874278330493269296870649594002175563186152833111716700692283107266953144023486390811034362203757754922213415379755903571592654173022848028514641534621868741393215955839263539960476286347419498580575929201448757627883302078524115738840736248205323277085829844856278747100147151706899651245400684947322553454620334528960023930900841454369923030616845582069480177050518321984777816566448835663313871516222694922386537814444102834292501095055066928700397533017647795310125519381587351106621295285435728037571301044802683308114172743049689230429334041066601299828033692845146082410658013050655741385290312268638399645847643518760741877849734292072345989731690182544642696804295900230840062319005548394560130468051738813020448710588824705657363378473028446085660637444318479472186005121768161854864872514938915311916721277000219995412789564772740160103457103399398488947316532870746021757202427269847382611888392076875262871040726013536253615522452720339226431856803514063920802713893229059491255866637523151481365952187980589641959668781968324504837392963092685140046963446387921069596927198258671190314682060511677473263009923978743091836987279013832560441987562498923696239674648322907721353769937136157756943313174282650111983338598117012853967463655698844839956684351078636941124491792624427970425178827179964895129719063397946855468364263200137917432148349199525075062510957560310179602350614262748662061712309399466259717822680556580488189393632258978159249903151896578204560825644285190828409895357427401304650160355351860859956152654574855182077809953262419865326868386789024547522975105141359452758059925755246326886830483922430450554186375406507388059806903886945196394411165065475304941245185327980687532210845309796346227893309332891858737736146057676450378216661243949708363856766163663118099397171337845064954686261507847425075281913471500092512174830857861276018676638893895990043784149409972292890716856129259704506954391909938364152881123365884155658052296516928402594894157035327716712783785673275417801762290341845721641363238023736891082601717643801336844605043248841265247824558999555202050517665630322726386787145859791019807072742278221828927547538914035173663108740535782112209616751648962406576746013387258502267540050031410791892707364635292040650782309711943979901220766753509558522992344479129439568358245310469613841800440789255274144438195611912968502502681850533866269997381418223959020842444425810567003800887052961877362080724950953536703611702769554993584566206940976029419180701476003739245731546349492959908534184249515651727903362138403257748996938319631981271184760266523626490353931542789873789066636388505881594262158273423229660094489730676534352809509865299891294158476079862980283508345381389935049166681764578224290982917266277373549812380802682822364721501431458298291551810850919572660978717196889231574736577470675364231553416727719051794466467219290678008449934488521862513816111890650698528292631425338142470757517504436467890544072033565917004474829379939632932984533523946386303498759664401665477761371146871606824847794950795997317269875689882690058214560904188873704467285847141507456663524749928435519292653263339061937902953653841771670637912640078003056411517308018509583358964647626530174475519264326326899949697732529777576634192184811892668663994639638322884562296419933715895168231430810259438626984239443999825358374240385508338655349027548616532986248879729348588546149932371967804587591377985547663622901768120494589698424326160086999919536081337492035917973225054033031231288022431930178848717300642219690754220631979001477170352230326461331775481368804482937161031726132512941612147007694290739357848326677730312933537801994091755333065735844836698033773543594192969834342301857147409872031503615492009006621932975962841534121746786729690524738034634995852327963743144213984855876470723615741742407178709160804038721670524638419640729551547693418219780162293053521620110864865502306003357256655703149599060109204092107890767459816550434789583649798039620969496914114151046322613208386549129798834105645400960711651792799545869644077550387031972149326635559617726347994643184780341683203843339409340072072906431063233085598589160327052394982696056834099620976313069257492867664942091330877675620921601624944954468588308102040127609994658697854226073264755360963256513181953164092625819658630878831572529413380282465499939898352334423938227347081593515249224785046082078023695301476778475195827966940831587651624211786056747613081979293583397603562672146185618075195330027733399219196749557794248278827935018115356890373142701461547104676204439843822285565778932511731967044462528388517444519120382771123958857429677353356207388055335438881674147146671842316906478596965229501959586783174398809969042020352290699424295476086819029720076015304972496048088369067543110911526924754689726825681424769071746793968751749891134934500943538659711743299979113161976597332319403959617729391545235684591902667171058647633044905000064412871797611616060209500255798768270438902048163520957178536314785889609191724711448506327110079453245920607785122015829680219256765152270657812680720968344439008080863634620696285845052504565000167120338345194777266100439452533425374125807885038127752300923799409697787953745579478521236508788929722242551322154102928668622027681877431495454405397241864523930605746025643373473958102244807526807167193179645537573410550295240939711061565806641552572922970710612416335845929775842928941061221673840680887662428030378955072405936228232895276227203818712643488886965442695957170697626234065909107845270751453044425809973804732519321015972085392995968988344580692138596562010626649949393231845840416607698950348946024670273163235259822938042908209658957193767535599227800569576830882266124790433776203566436866261753231062764897935333028556013281414099911821995183903072870450286346705650006555035969424401256966686450173321273074196109164479478938644005304895956798889773943002559972617612433606946513537969255691252445119288700886100895787277253986801967074531420605618665631144569083782780019316591916587312157879751349897145620423302107664639948955555119549557452648776189892486330975171878077334400667624023015083458765233701710634408766721163497875088662501059622210180977304892883624155722699327887031454384017686251149746378828485418357943009845335581529848708233001232635159748258742104474653490783283378964647772409916970413589469547752893188454520897053901872460480398206859728144296246678430533360931044033632797003216006901452184843292975971351720997180374233121087368561140860983063899673885906195384949703064615438426164997248309831995766767590294405730458078699714144102031077356819963715344746304549391109321429605550378990462654176695043746247902867278290885537541328415354189716079276122985410274019492789405304957110680315283983649520254090669499044722983414813782882529144246528073776156050809250912783612930629093995987161960028817581828099269529500662277729229422963629528565001982239618461368693988851725875912260831988521485190584764791466207940076067516135194566339675720515497948554699514956323150892474088602753625335229748407727358847200242957445267159519098418347921852371666619626125073590991639051637181367381209732882944507656351821972376447899356123769394773283252681157769238979995839208950095361513089200444191221176320554383717617770437733302511712384281675983698773625442921640449227786198040381087571702538242120283990181450157434771736672478412976495088915425452355326459439366271332439008654106454722774122027907571491590203241275754880382917329583740688448129339983926463115405045177344889242389169247948442231678668069523764560319374923052253493364876530862219860629597554878661882310098411759642073511905267111498217267938360012733249149297618166815789042488766066270298146581101014581691578158633472807613108300849764565261049274620133391042372586519891709478381344169092596444700482425034830025685820047227017444903326289644325744445543900499976371430773014529954418718004031191487835880144855386303075613663239555988512480190294814031136144155429560306550432440045620504498564018112026360636973277551078323393810008422857430082734390239014424360321758173279056103182569461951084670933972262475293920357708353673794415966242250968946768437338887330463764831260492839973414758907452815461476189838108967864850547443281683946051165036692873149652735650126825593741181185004463963541524603946564557246990716812096566095745179142513397083455072840336286566407614103028598008092241021897093855291833569067821415870467339462343685996750122038707472307374709588309784427582201078365939805253781034434735796963209815839243803476488649603953969183281054684380008304295627840932605675985742054632349989818316667796617195131424306670149910172594903299631598445570949952181230421320836294971251069522466596250813152252611166808353483910226692270505976325940921442320129560469409446789626903982455428762483286588064203738800708144119211722615167234452988783611318097662806080971348688011231570542705697358016176341124189484822024713687130741402428876596040746400671595926675448048792963607494757135209758901794850551743532734038840712885936711572429345150370975539877906283987996655663038588798347620853489820369318363920676394255971860392140891713454869035592305296141041051992543993131229500964700383171664314265458324768769477768819776273859257332922954383732207172820605929861134580104966996114639292623474695781286331586158799528144293321333030830112624337343748304837205548308301739940325629633724667452546190718159848941279842542799491769589911313150401884758465519364646795642959330944720789763741798658129933749894635081819444801266560490705347071802253147700847931379033343928900916149592128186182248653473530549679624516689737405931592607068206680509866797789435397991123957515582269845696451851042735389139166517267793456633571466295602910301552707755827759477716349007342188477276683322721721377535301199405989722045894345376166551509614897799518574332208080249122872753141615394270631078954447634228768508715188024827302954833174213429481662508042099704924217067861414621239285077486245457665367761503519289901815451100873532672478544534583121463647292950053847290308734667938901456949615759386406462339188530280784862817492479107671791012472472307695875509324398730815655475206688039026803743344878631818314263128979130691466508437302739283815582631872005532093086242528817169841990170774817596673091768557071701470970908467984759040148268163418285603074955497253504080928914257726974196621063330064291939347142539705917953036807329333870092114016924755900356713598368257620628388661458592961066698075225614560020934221898673828488393728872557947951749645523149926780559560689677039439832389799976186293256007888633267645268277258713039344094793678291290354959628954777962921449601974458680822038854762550175571461186406682563134413895507470289198100765859308093912645747693877939587946568642301000044836185321161254644196914628954164212300208299217413438784772329367865758974921912087480637104890919754092033513855128956962455691746823926865142816947255272698568636222207208199593611479834487271267447233670610187732136045888753050441232587329570237271910293773195958854394017413680631096217952734095966096254119507784695092963915927802715710903246135598973168525962615514449844060168520256647960683968374714852916758134644370167679256964266763614641637306716211797425440178982062442267641682703524656355379241464730148116863666706456802951963047916854649096980022417414160437740480801464563107216613458274184009855554832969919636020189799633141630997494916815382747986112741328073005925531228975054071338335817253927995692173623965992766556777883443331597889622500112833851950028865900094988326124221809679048103748429718840086158361481023141373784361088339856287465869673255912581737838485935312157360697406303192373597911867684107455684137799888085266688639602129255332529281865843957272878605945182445588033226661315911984135498837345562676504260343453384802069709421186930813711083535240523898051538516335475374031699614834805062751968460358616842413703756473140953693845531796698692415506665125570280423245630673134971390593961230154228034839124834705350253812907837091174480943917979119882014907059269965875179376161385367388252324470928382438691142120890120650404990562258691630206664519378901822453595890766726633522285247374211848587120628891859341318523155516154450911157289572132442609501464724668417600339048373477757168379502834115135749094450651388487237709877054803162860468929507479135125632184287070777359184947298432320214356189167699657377172531404626128691856929593253951208189334310586669750436574910642011416915289132685318823035336784499215275187384560828810365402552479416605989703522524115161771720786219590315292390200175061317458241572431150628318628356406847351405773203353692567599117896459099104333898916621473475777797622780781926499236439869305237434688955557056073208094628669873502380944415978956701541481962054315497455489741927745936009648671483559876241308417677964620746988893532368022728078270684325963397423205585994202996164694613475040142246019407321505910999010035137994493155500291590002839878872289883968400204241007710022785114394384561969419769480742879598989652197077075747847924480851387553980578590839312126643030860145762308438980153326749974775319689579236804695810273667659360276892351468457779811621697858353158315715169165867366647824437731690938852821700268885325118099736559565948149660713352834480940832057129980362541298082102252778354384297060627490878990267349024012074650146282653885467341903562364512068149259769665592367289724400645656243831410570733873201949157407074800035704792184803636494673183058123288632000940927528291958876553011760096134192621456932093049440212446834323221241515773545377241201678303940822845971744316665415583031301176359104287866128658668269524588480183141351516891967211646279306323358213485985538097802740162960470718116268175539237675806687484415745491799689815331589485620251770379813981476025004093757221334363199185827784719245674917055470671286551816192262057929815593188932688505006297204680938030450917661641457767176542514702643290666876746030042742876697710247627991827520696274539137328247841272272818533234104256642140357655014859046413122676804032944297901859969819643905414590646912431021857559045412659875342657817224544196188697362689442415571808397654994585574839171277614407623763903100890216275634000087041188420786368340992699953148868049243992304541432175479403993293506365520481213808612992002625810036883064440275909615336096467093142465581720956014409361757483110579793259950013046890270479998385730961548947716005877558715883411769572632239460849110830113118509975639001395908199590589128935766477265851183852713688931982410271339045320355041643765847639462567357084367735003844002758658317178079621990666195745287083589442236586803470070095310369597607576787475951605586487611382266622952312877703058937097417078873956457364798348795659766309063888032800037869163918591885210321699087928139214743340051888507362096939010668004426051171761637620887746785209010446333178468235528285649775579932804903945428182768835217672759204775821029904477399679351438395760911647102327458950153502657011319640936646955218390945518084133691238502406274497937428486663217722396696423235035184984379373735836669994502834205024410757814820686205987258165432183382833195351981759028713876592542058558720168887906407285732586404731540485710114057471774518795683930664856257788433259706131023911062051688788616697283247374776441159197818414663841614184043490109846307037758678610781310462443176722606176186406728127060940250282529602259153291279147693251924277510220509535888846394483642558189492043740933999427175984061815067355425114539366906661448865904988046445110002474928204640308071882264024559360240783854273809331156589874640336313920433960799889537131595404715124991504925943010427488620575976556273909741814389012563204029472042333598436873296474449049935227173049496525186551693526724608020972172170666984772521101767416068809395048276057368476421628552833006084209911605066475406803370975221948206549543033276761090094650355974760749748896066824827755781867085159467234414817083748546755906202514510515617543429224283826282229720970591626067894774891522855973370125790025827768770928488599295439939488657517448030123219809838104566898572611030691812139755661058700045274917123147787657434028410264731151374956591092044876506937025715868153891176348676326929703779215739099763952025099433764456590613075327811112670150435222692694872923138398638085506671470474732438142873952253666569671489100636278994360750854030570743616095729883631143804563035857103657028584425222903756832657948773781626960494044024103464302354547027741601503192941389585763137070804352970765653551436931632056337527996271388421534957437171698491143626046979554620235078307653767488255438174959878512006793242405097968313288707403163981654835247246510508678564015128388597462275502702035008710230485399543560340655238354218765501929273875927243243350714044480531813566814298494605018682849101501444754054572748166170305820422621722821491241913785253478791315854445708017400247765507116386403341654131548658295310778476971963803104213088720053921238325799299867983422630998873420927777987217938356974804682171294975762740852160890123141642103288501227551872442721381230287842800340846069695653944254461532589440311442516508374117486774238208785674459950624691876789274924279003836918147270973977426229077329496874560890186362973543379888756357113827264752601136342601728915738299641907724155276761866292737854675757576556418711500690905431196151422779873275809636446965089465463139748513867678400325571976377526699922454181665345009093235011575275305890385384622141146324918365377726796819147550050064910416087202260508752894637900351108788097607752721126091200679638104985513723420187304409291133577782773028415313715226744084433254596121771112141871642924662054754167162433860625537160945257843123756921029183308854026100907713305212117156271749839687711322666475605436065701010201051093873984371656416555906577805355733811955887048154266215501750359815369980872908260819943166728168201086065073711250214920316268171361659552821683430833408560201971366192584214136172459370941092249436965374982307895599404005401569876884410485568055496483226839177904064533508314969309976510651472393640700264221925745867176048811649351329231481342190222401126517241189377508748615576371106993451551487549082130355044563838231643423193059662458545409220480077881530118472590773761844697613656585042976332809413768730892701411594281451270816975388628287519813748683410607272277729717096195799608746872946367575036844246321610151468435849761251243645245581384512918724040089766023960637331380720390850298876653355245238713123119325089856378473192643658160947305356308498836602702051621335671888775515209492291223728064533225594712869380357924613471490412207313994770782086846617296635400848345535912583347388052533351630829121079322167593074248777479703665627775846449526042897465710600110048884917601968583542090890665739937355472666470543795663588219441123488134530193254463214427808616018580461753096012944971325872751021366027853277592993990538675381654980360012761307033376078207982824118652030735056871589874364687319649615421981512836561573188842180771651494621035915657682626123229551528981040405892764662435598350869702925880210375043969793261929153069696958340570056906163610955848328090261310388783093959391462324549178341473494260561561129486285026752305094490874696098843836790583216262888851458524867568040486593982354122192485790642453303054535250654169933459634307684149570717267142422507603863659008546319397905573936867155477126233601250343401127672265967051982564316603873284543818868095542269055940710328499700490914793202845898426446591660877613116603510916619067044501361797378504170383639717157691329559014159443767779211208417303393467524180938541927265871982362337788579451943439911272719927782987083001865427672561257634985790256993283789493004244505641862243515928793619128272581440176550318651750285320954977657981224512881765909818832419373344161968831318690400118487137876362043330694161342273671873401870309777096540749773907401675257990152565232856744552758623774514052000698967420543383766332899603091335896915197868838654237912371671347953761296874832779489402703844620508329128719315098136479403702731189841174932719567074480606768419077757833132006142477494021037857510527748931479416222279529840353450213267178569471725877052256521151901915121635139981938788817074497879824199902730194375691541607239052311431069618934617779192476360584081214943618430759766899812278084546931532854605426402529347935447064026263051271053774752748391588515065902799614251284928840476172669609332607684141486396740217310731202306895189921534100170029235966269241478276525123069277597662456673159886079376768586651200478100119751199395189266142982125321331599257597192030275222998770149716279742580389685413988394120668656220104567075435823177248098097764854348208216636702916485644914344002350614998409541779915977519585706730554189196171743631581393782406480307158730259902647497290273507081754163301927843575518723406195043490461161794702872678060341157136406588523812135021679331260975902678828111634368925370716884472298583042808809301189044798148726404993608038634551930842238030001658592707077146474448609618515907872630463264801466111095244341225999766694237806277861379978808373350844965894229205086294253912275411940732813173854654675837023136876683932705932090968999862992786176346739207355543672795937876994742767803728651563328622408873060097661865931507910025426760734833293342153800917284382764258035165065677691891724311011656448997775196771900967466195617192590774465082987412277142539693780580453117586992796260256744945248470716496991894805817472471745313637132356445904799999399607430856754872723919980478287609417395000684480880628004945449267367464293203127830964723002599837858115084200798728698898009208111499066938517189556569461921541091898854203315509558987550354839570528158050530113389162141927703301278023649678420019668779988912821443153752171131095174491952759064027966919380061217526282227790150371352481079800418714206895143215274452539879666937528778088418174506065977435313828878705044493239250458519223722947570669727981552884339869697085318711538147881136282385335416223619589602245212257450928095113351123672188598362890753392112397861226015571250409562136368061526851190711585025768888569780482060097064622523581518093719808319805316109092994534814668790700958669474354742456069509927454259037530941368244884136761008650623964767308081107894951237283021014707512617456100972427967822883087143635101816235517854990414873271253717372597570209823313211873536650721258885349145027141830267362187411018135166068022224712887248417606480776347862382973144941618207876996000586763582052475308226260336544647581969754394604855690792343848743739667988222826321928807026332785127351935181289551965343482865856033655349430227666223174087965934437578294702648011964177453735649873674311120223158345465430643148756504942877003622320033678251865573974047845619688491301597270280350385642994217206562015690574298572785514826577886598463186549841659242708364978294537714357409114394045448771225412887829445523384329750139137825714433230817527731455098874406025244119533666342556720878585517423296529388134935809375058561742390318891722888480091808159238437719769198993916814244018572406346762112604237019003009759799517605685896076952045261360148255233400836559758402310126409037320144145813987750945337544502125636870427098175504193432679002565401069660256720738226841902322440084141278256089346222091933114700898158599567162619130031863367669076045439159166040298010586754757330798774150512566673856836867957290942849955443770655958389260132822050555853768527498606544707451805951628771116907563234846468344704593191712123009573448395984776353690019722757678934090125123678970015566088428765668615052203789679529767518218277850923480899976038727831528050051351003065397322615649742249665328961486921351334085989214113606613338655101270536584487347801204208403468057975336998162061136760291217302418256126397250650984777050584830274760128504835905062685400523386959943890876754215602997037752140724849358715828174300585938332789145153611564842952173022323996201845684893043879158879424760117808757979380324138537512988171250042320572288659504630851339928916103394790612884659267709100633877459447532613398638421089790126891784183591507233456110847999223792532886608012132089122710068168404691835486404383541260747769489011093649531923251895839303050141487031659828201727035531541351493991031256629019961713968028393718438137817938217159941157302946144617213277291166071065857917423928672287831009456949869579053628451770955327275937726894785156227714467536283140028920101906926682539860322350384165775951514465950886292448359785322355336995035680629619350243794772193677625110950248500389011057515335626484062540328108091350181541477933791492231413496756622899854863914394897099775663924123389173763910140486746976093137997325586374622878370451908406716936814230535858766242350054312777612395439672255870821153280271430040170849365790589123393778339635593729934539033386414114333341705787793913836886610263622095467945033189419855764431222849067614570947040745145282210452335762651295695735013799323260231052499073305080177034165522054815899079656812624030341198189364126361544712382006177945445379215423362228319304689057784228252297957777933300673035557713269328427423639831485626340508942983169989459563249527769629692468545839233887123747859060377371218960678612560419668683216090272165657155770019028641021385561067317604521375761895603641160600639414108084583276097049468749467393436713164247348914244334371381649607711317463579416328308580512806058568868391512848191233606171331983158403223133510603343101176760691540509809219295546541766119031175901882030544898492971367246400346308441919360585091888487287274681635996551872809379444063183831515304202848270746613590735113174464225118875073442991280740746913751709665663336934956956827558726915490931971293485670211617731643524867878323166299567480595583783231752075876025770597367895846239312762254541285745578189229662685717152230389784424662202978278339618770428034267492862445189814275840705619560671164866122506782320701338510449641290545860070643057930306748385049252560025579604384569168537096645678651494197538405155285582816766812715693425113830937512655254612871394045958629030407429493546593806222609467364653809756548772928475562521142451571225032033659184998507992413469222022559770461262384505503608831604704625276716838308168104739385478403237110936488713873601419439592877973464462074863176566346149068579184223187850413967058587021278486699014454678409558180010106774115268719424495257960559593103882276909609914106920804728477677633788669680913812420309303840372493275368519232767345985135334142568166472193847500701098671122280567064576449419046831695853513303613065415053056235241699384170897840603709221019133532853053196002555078461052052457453792554305628514428644265724498462259394671701954298855310999361283796951009816238977282851910087448421979069005483438777216136068494046671133289558177543809271327487221644760429358020674826384742269896966798451476053799062449604114873805545467346036330727481906488132835005131027699221579394917449249048629965131847305443982641175843783947911863543490675858560210129216108553835369842039993653664326240870807870452354390601654666105059640828134964635423427417913626500815077028487249553182579464654010134350067724518560495243908153667927831839706279424710423346351031480370749468791902181064713266552682934328404066033470398058773732516640532228025900719462050912666706023298933233604408161697580901453483070333979483232011570370841036524980878608486787768776000704936321551280314321917745193922062960025819518498395612841081594190198981042057379426050293618691151356913965400751115440063357468748834654157706937827719804593150780207408953217209313619018225426452291165165481951359657547219865583234636800950485045556875693354052835947719273009629141333662076969655170931986078190275172592371843768596218988034880599906115143743098317276410095599058390441913550475596960180847253986616099576313000288087255306770355444879197186874748754832391965484134643575469013521593064496751646683209806882688288412024464245952112205561068325975629027594123141501675895023863961955390563205047685413453098158661728088211994135751497733950307851157941624962950232034608332975239805205635214714389388875344827675220124299728469895434684875323996206726796178023648530010556703120795124161216742053237123227416865292483747821215146601303566663892618050463488532445335932208569231963201967152061926536274820103814339014284180509831786212449901242814484244120293923791113632927854124193495585651836427960554807928375100508650683929364116861017119590463828074491033634415364153081166930264574142810906062559654650111177294620743329508400914975461078031135292995889779552338640061390634823151131278475638293722653249600648329181583407204303891934632705136348671575421453949103254888316533016156565065991588351681739233446805031763052521395639986262351543064626471099635594735227851982104725116017423051513612840901549089604216845604923748465469732613320277939485484354164979502969074235368851156100559800315950540410481670132932283205824902773648915733370225077225344681385819762275417470970253219529798940091851391938956239304720889351921437677941647474856685283083020149914436738865713281078832834036889429777717079551247672079476634976789274183187825135609361018771364249780098989205694330949144915908651946441641411859896118984070724576024048737167463356722866925579351072646298962929482354777719268329456620700486198005938324431469710006639156146602308555537459068661364792197045701428530438113193557038342990190190216275592622399909822661422296819701431659615527490155217090549310355328053610692084647412627393237443205889665386109796912930750348327872888808783375889667266456726672340847556257647766330844635560019810470139367334078170089308019826602231123613647462301133683094615376898573886878830731762354153341164135681308597559817611144745958926578862829017151533229999315574898851987710611456402254668604263349348351882287671208169790537881053757597260475977178025510354211731951638941983501750401028981817870291871879108279220378525228251128269535235785402689393653856452360136625522073426811528426744460970880531775796047153933600518563991116670754740161776585858946117731135967297450159852997493254149375424389062475275007714828850835974622131641504861266287515165970978811192146105832751766931378901103746535564292124735651374597811673660618223586738148622763461520302165416592691485667085449967290915304223867919395533406683864546773764485297573385233735523049911265783301127567067599857409604760588782151738259060465570138300169066520199803965365441084916980590944005827074181619533441216957334289522693204676707635284010586228104728159528392224402569208977987875015639475681353317628966119373963667410602025144085413697473396969969377890052335552800885562439342543301631780900713674459705335743850160473579488589798076370859295082341630158005281396057413990041504890464602808751646904316708772090470215178713209086714234075010216275600251228288534538562508175800051498385974050440322694964789419263150038041077369172556848503355591007195786000828472643338402022183535228189210383617160697210033185857139215999049410535835180133780719005277179825712022833554369462750658922206302915884459734408090827712527693001536370783955578571591134691133144183343832753955904256593764468368055869623987265230219015711271860452669391224351688989850235471514865000231041933444086022784828388125581187529589722219949357964985205823070273251580691523079669287147086470375879554851003631065756665650626448882502490016039625368256372550076874461484085709063832035800926196721849046212645432705429161218674657984583867215842360350988120039889612349119683917364167094762406861012896360280873791962074039462780244779645025219976637724343477525798607578410183192421456445595005770124367218555339045779136091121014228267548099798798597512965007702090055342158830977210130936394158019724524222082443510297023951580907761817308290085079529686519183352240150292944706134672121585811518184294668170619927871368333605532119878904014010697297430585773824744119615990783802810034727638596193676176514447313712842068091750276183513224103409507612979448339691461804355993232965577197211770738192018235748130370121690051583007421745754066481318589620092418802968697211644215756393589326378113448157952011732517759133108275538953121353772393346322679336897809852916145909448603825896203025937941644066816981889132518572551895136417087743974171614081483622041262814247734603978755583709870956616357647065578282130255730670134300606583964512929031554641077977592350971182152517405031009447794552105365563937153395355765857585151692851509117375126249019587588398699067232125417989882197598132004649175245881026937627070760608624858843326694926196268408234345492615800222489544839366434388320272109123765604279757214479541158027859133794181594657534848514084333478996718925045772864483274389062633832963009180211635613052350632496263878771420137844141581876265714969069930572218021262706675929402543974783012555680940898085444045468668470247008695831260830703952215514039271607677062844221371280192705539442329462150066819407330012655306859364997749002378837398234141434097295085364527939573149981760179211016922720474025840187954532423929968416967383668713835587742546207128444772708809553843397395872154228965094522575019523356960046258446624459526489727237211429519548391263562625718768665410549362194225703826239475868907354881655849735931047360761873394570376021481432885064543971630792678758844095408904045667981060386550000478862951550852844333301311159061061387086820362265906295919908159669486957487342116291055924766071892956857861615512219663256329942234243786093191714021356935190924159477065881438415051540257209758163563167723371847626473119501074191497956213120832779704107009463284492478969722903903504206591738740312246461094653112323808018463083745909943083885101899550591293831613529086275958589907266138041474238557728864190926816226231272739573673919255871553561982301459287988661937641682941285727392014573188827431819889956525298638368760844545169769053618323019732755535031718166934758287400122762429159722638498422905374221945604004827910047854915275957349111330509271306293550745461629953526824941067207467527630504711895311659242324129544292625220952850242461896954057722947155612485530102155227668688235813714682312021561329308110829992456430432260641530800560760714686838723213639689735926222275193134626622979756671161396602601480524100290033374911641811793529340824027394619135890774194520732625180070233326296511709181759894354336710135915856257870137093879367596323166552294385735408256671002893148248743464645383460936167653638760826100906701225665895534552175732918321675330840186132113855306398779629021885077303990049474352562524038017311574413979162760442779989761111794877863731407161904853133507049267313124278013307221604610142476970369546084663393283474227682841803149290107652896657828654918028047427166087685112750836476089572516616294740486901953591455435247553229823792342730922101349316016609556645290328381282789938629755357098502584789217558437627161074909160831817472190159177857572280331760478763479520935680659392773367174907058749304509201421735000699748293643432847704183604868551887773143484835266783369697746064761551996935276404014114078819093902315646324634531249533244240136346121570982307429108545822679963967918387496820318079347104879626818906403185519230039263801648149790078869775399691543389031088256797708689460430617666950135557421006886812781160966107471311499991519003716171903960273991564625467871955096749221019755046192011472069533502684965697967578520107608010514421634142146530866826667813301007697232912184671217759435025802328045295697779035964371459854159814711493608196761170960969772851926559527197936207909626504796709127866817499938381401598483114765359968364065375441258430987229425518052711938256903467266824715113359493616362409832333198926787797012989174403501087686324139241010142831528890695433992666474280070563849419676743220512040719764549108301046346382720626054152202806483877087430978844153951147746227064558883953858848705336520573156261499823311409279953524814918673143612384433770470671942010640942239785035865359269929612122816628781701644133310836492739354094151825253367337350693447756271898530578487609896244276399663796081011650958967915257806424409687306050018970113601502153603450506298144033631834831632800848140426303779506435360982422661158954811766958870739740775232431394643972480250069743920756197963983462768500190824908884135432180468949466901864902207557349057470504483744097384099090004450312425829895471127825444993689598383796888874546867104907787225775420671209096321034019623524702619630622132397389208867644817544118528563990367259091762112260173934748589917253138920457196102089785871999528502352898193596619064681031521103749663749028546865187543097366948680351339392770695778911230393770425452076093750491609543997545197702105311337950711199431141550782034774426886144543662545810072017687532339516628847171682176530494587406533659233556294354244280892606852331604539114220686332873813553459202867036325395156005624526013014019292531652163924434652304686021754095182307596695689287307062087113982066466664976022899443527456056298295112840736139631636812953585351891141098713603143150690160266628623334662192699118819412320470841649219736559107713814662505145135685184808362941501686504284739778555314312271014998204110192013808830167728019248071197633027831106032974194155473209736725191168685650433578549651959231170025073847088164359990195417320416851797795842082044483445134794169111932435832349982245351728385779533465976391436962175802314968067216763589834312216020463554534261611396522723544066707582296672825072207875920120018836031248419107127635171885363481950789645718322383785195339516764328129419715380410839427814322054032675866262249526780107577787047856844982890651334850995543967873270413193113771007199644574306403399894084259709093514708258296999512536458446571046909635501245773971322178870235862612596894485602396554375520090571220012829791409604490993480823697614147541164286377037202699252120652401862069863477567800604128230507869687787177306912169991725939514094414160542797357198481376715891712582228299003821900861962473396880802030014464801567535094203962546644852534043106564530416669553083306535426381786463794463598690774085728049971880145943840860725886787953241940121414637924203683552428249563378086939690896836384171836729667580399908332514714735557043941481482331959247815437036492369457436476460420780872453523915356872531398645782151574879681399494581866997936783015557431072306231742704528846851364283184540396485039904394783136340373988990180691061948738189921398602446709867034366934039599743085872779859880735111736169744227500660874116946719614111968252656389175652704879470513795614729441552161765421683872717852624352036854734070989324402948084924204680516552785403001942584112140824460552882368012448923378612695357039511101519805778997369248950458613098313165689084513333956117665280938296207432161402720768166785045482659870236715564914985595779483281742515993480169580305561210131127527876923919052082275905508665196934638005300320684263954365173711591961251543656190928751993537293251491877262846568011596501118902299698406282264096970174709060341331363356930919633695764358257631027065749900886491147725196949244018294123667591683429748610620428352520663709067910710894567940198498980449925185399444343563325796880325479423478498161602671888090095280991652283548237290140979821870231496224352699910960719914437329534352436226825992153387907498118127306256893718604686832363175292765911632226852880869440885039428130617430017367473651723667237942190205654551374965536704258217051793029087658121897451560042432871154885867301309381380744495595556659849086540716128574331396144510693644634314215916619439498210893417903021949083590410571411448969937894666714250070345774469409017093546679572758761284881664672385843407059495723266810211222508726866470226370204035308212114165884030523191769110834007901999630108824275883074251436126959328047708051306650947277894932508204738814469834576706332214033596618244563507336511236467540410856303928033020464130355302641758888712805058687791396486856101325439825203907593940391545782585379548360545717164097301187262645790578442419400194958229640347085503068226789868945049857804239767108038800513704148007877054165591585136594005501522432762994713145976346830095210030378914278963442752107164956153940564694854318320483746295603813133438689974906305824925956301146860424881255550439284826496729231599349186329476495051652677352179810520873024079018709211353203452801836171573360955784448968454035125299421876104163321275877042453493185488896666371279011959475774250301989550729483764737905338979228111106428940856320819315835654387426701831786440828676502104599386849124099981111943898093449109279789726960176484801795948417413103179180578491722236240798254260020832568897253307180998867763574818546645290849661610283641447667279668176093334692673069134859681105834117396274499477080212821058014313240849375456702577944133166875288712638579784255332474927157871692795490094944260056120211885238331824748027525075653315626303548025358534924745652470781490392947001767170066578211487016625650250840573587121434428052399823212607809619136370227147474213395816494840816992273495761216245336841359937810846664896714052704397742016253620981388370846492500880985456968400032433235408799949079480164588753881254659920089099845746592587167142776678671532095167119122586777387791691868636722689306523246802672394560714037468341281090382046434448216350162744418019236000395319148523938800303530858749844727485429270501305945338384706478176968977806144834855918662494066301011337601197410902206372418436120382630554574223065307221773770901878586526847978174026209342894406760421561412529386433398836473282735072064031124093703105916467278135825970069635475526590151114105985335500600203679857178880012690253234113110438713177074451565881567960491235377805722594418641421238907045084547641838686329378404436679758357725609574217592635272941824075974455963589551120296208074194701719018932073688918734854763167409784569474363777144598978165643528308151387017603774856404732661896411611647631494933454005811567220812855515001554751116362764408432597903955459651306670515986326194417222454936940797566459084227237268610815587880633243443458655150770010426869525030137046242127882008654785569457475758446193356249384905312758955878937256401279478087254471578009320919279568180825146670077185707164879093303630045508898128933630320251301689896725026984125412608254210207787639224938623356533114390748017620042896280777594716255898830536172211499102897728994557187776947511236355633994154982968876018573416610927263182399696611686167367921023724468692802551650413886224574838777554900218212438824449269339884328091729014147272684942452817242332600398659093166687277571635077965909855837783296335387272539492071774058023283491379064958368219720233697912795459737016756128297744223209235380735690247920403101085350712942807298222595383058628296881846485707750310814087096537495180744098598150634196615344375122917461985805351577898759639772491315637751931943009785779755167648851380072101622291706740682698845948418721982232043410461732808241702305259736888847568134366291356077738108875843319153935348645740807287551900819856275604202983232606730523601434706994428107382540600334536696274254795995429749916692752907905511787921764977097862581886801345709277556835702413101880489053648443257668453577885032727163242036049278144047221103391708725432355097542095545511500772757604992797015726336110828978339305989581799653353417729913063565892725254077558380196102548077049518753900857416302790446555744939667908131739421361160179198798515012731983080920503921583533495028130494264790701912498726279210507249479642874344856552932697346494512646507998078727169293068725415418706826811498910646748337953240542180329052880382738953490134458455342331596702194568659937172484764560761192303501767126863235660854391515843573203915381424464758259065258512307893743685357942921727467979880208470287787960943322160163244124244739790618580589304569233177507784909456566039144185196267601537618406133495194676512137579408539635426286620486120076227381140810021542689073666894729633868580735442765917804250710246868653256868428925026701342333713125309824739954555819287661187625141569435322977010408667176067832440017176611085531629956424184930376966034511679655927001316245601676850744191493557565399992081546384841773279333689598080719980423561188261177034958887604504676309038229551631393275563388031394702327988430433504954214968142139783054899521309133874696463308593061007479560549195008231797578431469426724818690866400950821405189970184752776575760298919333194033519976766020630309148388264608323128512842217921419887751364618499068572242534421657720506962420178473091202577481427214330232233088656310137762331367107422387053394189626619573231869247158689701620502500907824030906566647828384867268693699066681892641374046157573322396629127397004728844436302176942325302431968306689237292034651498079955217844322782351468547941003633340545044332053143761330217307322263597919930769240292863491776635314909047551256843711061197149052708035402108875406813546568234547245808590443368438296382580668293853991893581741023838559671351109931805007766136651596180011362946843850676637998643970210902019607319013696380693306317929270924604804871825820602648027692788028527960294526702025027666342136485443527861432095087934487269490493158744712135061311116255693820092731653161093498317408771833163518683046944575911449821979693599267202071260340319685680379537863274683304733606697857525100740199181995572078620358383090040284070223161511059307934158347321404428432890823297894456495539076644169824104273246675577445033689387082819865877032627615476977489028780145285190393454984967131754741862306309264091645636563954632993673474303642909949668946568615535820105616944873776498777744942115346122285273108728119367111687556910066674704531435622466170477008215659664432812395591005455562879245801482943507130955487202359167738875103718104552197611568174096319508109016250065673060772582495706346295715352465429811772817327549743059163076175428356092713341426203212035681986087072739119004957457897128875317683923167399870254766105648299685647494203246354528400326255100543015157894300076129394368486622232167074800341764612495555792077854618952941115917512896936895610445808861235013161616476835873291611001067181262781862947607874485878576050125960883114146551852611258120127424731517181266271190299654251233640240847491780301445528059616131298423817174475003560567977885491126268508763155190887048956921247298936128413050297613262185199000800862849397476790174551328243466952346179508445048034293655567339017906626371122493130511805998126835018671823950428272516975756866969644972441674588612233785315547631175783129234167986866751482357189530419533566420169433455649014471935986914043296920065757786557952902095083969039095180422571275244921573406780268042957569953762576183033140606774663969107816386931688688256709467540484785120591634138629017093822048860087943981252211696975306972901090006419898281385851311768139941249242225005544890301676460415970446580358073371979784872303822613197736993350431802749094728479564122823377106788604629279139028117822094316849008200552020830776611480485382503869931318109920574733756564878733539943018646910017038605037887073337067783698120655490862304936950544006411392511143525264142570085560943463795314110204027211987668737093548675032816841087746294071761369744800778062082228805826902249371543492663797957397381180652460544156274901942180062186650521743109259443037588004253771512642883002774987023856536467465071350470272734411206920546794357923846957824700124184587757555171004842316550936501919277018244076963307092525541497623189348128062366989713203837566020853631815930387214688623607592339103655639212104426074617124385086741136379985876522825015859077451417014094359941741153176860797443307027434682926042580662437610091324442924218947711286644603781646661212260191322504214398550600441250766117988161638398681011767552551434534188340286520782567760130121151914152780589529236808544835247838414822775037136517405602120099193351414874837461181250937012652964040583133354901679319775182976343319260293820765620556338375908138644591825417212668240439155071893209991424817737017950925413603435596573195505799518198091671067895792873810890914102335828700360619370051499704809574763971456079329250031283712879815411056195930355528123551080698052101015906022040710390931907985926434879971330543286889193139754942523713045247270731197193367458687144339999125343435500592377464014854576311202126255141196918978383161971284238332343109873568414186012863067364688959840465585833858492274710717212703391503013258678715269093597786505611528078778470287386090153817202287943092701115736430247439623292776109034808130043247853887803149311157899269372435250134689540469533576122541903053183152269298413464987640496842241489035610165613825225076155093263986682467082790057297944326995075159155717329732418328027596828467118814064344218587667741111009090769957204573107754182059071026280027626729023115077341809807569706634271861921337449363422912900246718077035870955297849681162322187427062383162030277147068905019985293176932428737400222190157399692441006318710349084849894922906900672012813706330089837439873757184783214720178628721618052665308000090271113056695614616927092394434590936260782694523279581335433662813351689116228441531783165859891626729258610485351303636387589406035513558977264711919396012543536619572197841035709043400412180553176337948679917318742933207806498068302865659453015782057036276077951104943163701473590120725455575083156503356973699435277062189738661467914419281905907312102057106840494619511048403385701269024680528627872682078468589240130082237930455771999084711019590641428062002012383404958124339667858779364650992170327179691570347135452960585028059713724294009845605505344442848491354077012612964025436448970951619065772891787876156772388758177774656470856257579549805017757330299918298643966417633589734858632756279372789635564759254539280771855256757048055270657456069350263104613030501625912432824556850799311178878840911158947310631678348762615686993975452650003490663805756892930527336157253652279077147752239484663697201272815510324135852114458895897690194788505868758072097019107298492894018988680754391921464061313601943074449641336332570395345193910780972497489692669472930069667561266123370419023878463083610292025933952617839623723513880172918716083003444877259569624136242848240342296814604809884310777552423704624440840998140694486712510975472974204642894323935439312470111892034743247525874649410654584084451992270152705666645828716103782288246271751033326833059369957668758902606426952791407177434707214626657166284913767793612429827267131069548810598159818535253021588152547991196341732376258298777658032142866350996831014460714847522823183565756178026473290024714311302016485391674006897958227039307227246019997286378500382571892291768105724547307887788446257907411321976257260292685694330057233034441646018458329743041553269887959138668069946911034306348757463329926762895374969607145258496050962765282959304124470467132161077749912483794386659259330912888696676474715765510464669719079096186660220157161731980969302194270211495689057132826063894743766981746436453324171914397077288131531437797303662895703361959292252630221226933828398794378061120059230969494288688510854130184641241176419224591717403511254598569947978805312152379169597517355498850758495632231145393875572919055940494361303056437675773221231651951740628204514374257604954489509695540761256239168138075100229009194972091457453132080226436539837319455213981092032386519336875720931403426234800055837300390575550116067904795084582303732666909528221740648100556407296338144479454397712038561763096629034217780931362538435609702011403382566235210600031368219933212594415111553086527409176296611704055107473299220704864619218011053417023498783990802872840377084041871097268221101656201631628821683515895778555579320931159592610709914818460706759731669966601165801159399874010391287806602591571303524427615055061781909271002139197055607070560865711273942256042051075833677899913115330265016142387922144289477765959343750689714727888889156468962572391809076040705636423431389050726384746882367751534051597199076658325220972718185676297443119016792802553387609694523170539866214330340630918310370533097392611554402751417597230045770546442631722152735229941952333888094322816548072603317569837910058070376764353851173273133939400843811126057532037854869585848580758181087074240750340933631069873785213541045608926190533781657513022065420840317812801141441248309569375590920582467649134435023869445193960380963063745868969183837963300012580338932987338595176840326849366922778045621826480087106780320885480100097416263810434737119787651246141929377381790433179516397690603317159658865127828248993302452099281433322208861640037070408326647936807905563214940357967515722748112448755944033637931284747472567074269668200254513971879457102181938554957956752625558690773631902029440307563947608421818081436464943249883849394423682926614745822135239930334338521706253220853218960676551725956892392850908770047808361389128103987086746479701569235231241219985876694267584380268750547262575051080246435752826878703789642222857064554763203761678443053246861367199273594352559812620044429365512094879585953327623399845926959907995831850752074770343944881207559320375444651789809540308593559292002261344727502869010359952063077195234093317006141221033573693039172182612526742960448317592226453364834523134419405255351993194339531438754385922301230696367280214048004166859203575542104836785814781740493443530261777814199939457780886156640582754210225768953425511806802951049267232755198212117792484672319641058674043199911966891518593790832885002839008558373496754149615165468180557735555169131970821165197170480088996895436743183492836417847721161720511660595776871767777327972065734218231713889700061835609697322538122876948608410704433954616284718783624893840271888216555591439159839231655633980340777610219083507600964546414092771180220936480090076353826451752955723186223692987743497410132250739899080072777032181570148556339393243596942768845899894744643517447909396062927468946967518672721832326571525239064552288227906960939662745014219078655731897059398432926323577592979165372886822990392180912315660679451071965933737897995833669483310814753788223601965053747230586158367048131705788060208835739301940786640358523741138611709074933395528380381824448583433558156564890713618329795749490184621874425971955630325304255147706638420658459241236430562547461048759617824885483606300675616690743879004098727182329530556104828608292347355137637773902687054480068611523945161023313895476414682327511803961683041756887049540933280168427495274465087092329678171087943013716684197940307278159170830829244630034269242205315681001511311046886881593783948476265501113437269957843434012050642954191972666756211899531363917654886513650703483327518113511521672313385024841857427578260677980260021755755473797816856937465719244268049587067370113614153206968146432824411451014996509562027407273494538522478650002620659908902512724668780552155421591063810687422461714851566747795948102550015471836031361435315953221427082849412499094678732241205148187078607226855726163436324097651374642356644466664665867395615949542960712385335846216661124291140052542452982423429030415088044301846048837055588514542351231043327135302547806468865472683235588679036791863006010684207125951336588670197115368240122627701605757007339929087259077223843981114730009043723482823400543131864763678038014672813109224434418752498596053104725948875590267037644357657257524654654190129460893925047191385339111243816089565462572398974161237845866383949407959094913432049991953883708747080582085639812698884973538446553396926219324902960106709046769805830465289838603018635434981199748898376253171528429979185096157155457634917029530202700924318022089078302763256430508048093763920128479427316255134155619281388270232604210833819871818603787056294398203057149630862851682604303172851796710592076911411839465801459179844240854561832180857348120875539067716547880883339679083371102805772225221000685906854984153923039968593512145563080568378496530527504955206718252772439188473158381173080612584713857576325699916177034071238425301496824655404588436770792878494300765622230918015579633017080826284567300909450023497632886227889279607261127312136787502043947955559226607509496820149192274581159326158276007844049899927851097337745869390459547848012058688210283365289575908269840993604190058856643343203462921409953137574023197117622444308504854594139919118779929519892646884700558450709412228764839930097399972836058491916287087791372915658379460638486655047053247306364431846482521748555118294862542371332385492512169013136041213751244130488106317897592440332801323101185751540959098370422161339486687601082454585617341761604484462899396799353434052816409195563488374515488400267245708245559180577139642576554409402971449828705895459367584937813020342967754080898998382258407824369825412713793581865320361406837435003099662934019008464513418727043743091075105266425779672881864165203742363010372580769295260534980481396722992242769698378892699781339439310236515624690931096923737368371338829505901626848866327001838995293333096189452848109012376161843781495107313455829943652774134607587209193446810758008389435478267683137646962524080695959341719266687578911355458195836990937743786542740645871116309505592398734856732618414301320395997398007956521120762990075253207086410051402445397570788667301050301444807333677821841356558151523113461638196333926429196872302593226695752447501538226295446273203484210377216011285660666102166362286377852163756909798165110382324928772830135747242535398620106540572167905180709789646350842133296733010727763542175569696953813183611596424275040428524967178889530457467749389986102296389602721756100902037700936582287387002206579635642611537477387105716955303356837271611264757914713679380094463454574613257910493584021679008263005239371802070351086299469089816539925446271913789058203378281005426531629738112376964750938830843557428417967344513289422757159529305537877773179171902948012846356379592204133726128905915140485019418031344506590993446336221178430035148503648348145423006102990885609542710472890275123504572814785498680909433499427942301316480202312755036530952550669933606468512984018224645932552819452334938000248994533077553280668945962948091621604557382996708653736190801238948917605959374566293658468728358388253531481010510812977801979554698248238289628044437904824293325472644662210978683023348747715739605134853853963441608371290303036900699047170280590595500096019951132233501521133250578125929421820625837881510831680330061484707749094489111203358278993887134041002851951612385804223944506454410061345076324456285290361362135804558111684782525301461226346156633327666943803464263906560530777074448990150902211572755181748167168495681969979802582055400969682217300022227587841515852379921066631233921978659248199500036541251171817976009305152338315506134627374554936086050620076627991516647174320338279515252908740710125452803492280163471227719473949460158809297639129451389097283660175313783984609614185792075213692418506259554733824266172342325047073954632305319541954934321235452161594130016266182297030952827601177914683182181187135466352331178164979911413426743420923523484166095358915874897003333645576596930853206806176369605920658824752810284681847390961383635701116435728371362777367691368286946370847583453824605309948375919295248617357960589305027477203427574166318242009269209713128193844554938266456483316194503028500205756214939957777743317475378386817140010473974660829716848341125648503834979613341310302429311487689608795984646339369044647843040758842482721629541851400907383329631691567117214746112162858871008340246171855495555330512587753255924075130127874582457128894146159580963413372702136992644016651821177845267333568443527338497708930371314622908373566331401310420005904312162364749346720122217458391170046484504128122810146195833711795624224617285141620813251889463083864817083679056251895938846491624498886026742463802908040539636470940626308810296717717804030670766107713369170910216120391786504290103132666366500321124442742209717819927900255083176159365100716460552081260800557755805389649058688966189282927751592905886494560725913430770050006233574006568171780005724601436562502210593648012944945802517719793587236364991487851222929373552528026650470322788823685196651204518829280085656750924655470097037454510391282873703174504325179716674728150329792416305696004376185973072565627017182150623391365881509814347222006599327292838654327855227616874271567989151514896809699835362842843342247322998140370054009068548272177809162333137316776994554897180927560677760209365222384145759416897339251200537629529922676264893207751951015881798742349282197091582276124723351845201789618662416320388252394169210965766965117934912808784727450078648112309966946393960052757982178091322864504593589728070400701085609105937449048594757024617212125727947328259325069343786871467917636254933057244691983187074066077688154723555065089334454236026626362902958941049887012289153744640690455993228544729576597088331076865078437284953993064739703781092237844258995030788608397009586981682695764124339569879792053616067395110086552739333855308938697368626165118234538460617675794371316256665225213149977858043890780839535441082459476458483969053463574055818536194727500745324349156467447071764840107096396443406133228078462146795929679305775242224435361975929441774410634271253713301157135153814188300086422753831173268755172279715136242358697396711544652655860387216155178785150171327912705847927179340052628741417234025993465648018312252754187330035264073391441442168122372725071385298184649658298541367692552580289288567581786470885430448565167948447096981364502313252782277823962003729453496888900896761129366503350506427927615542937025558694686339697523068599755576738093215270203908453285649823137675782136860771035813758103573901583738322661424886475074692231452475651946740951340801102894983863150786423799266192345588805039671197198605653809276509635025151155401634122046280391317991084010238397582475609626649745209662680993851949186043613633517528066125152408502358719498589935377850241255649123478435170567024531492731191083700691854951697035163442783023623316539603341347725645285133457342961337786706488835526177830092292262019994134344277759327860664675261541749578021631590384809296692220072671707891153827926075329525300826951692627908475231993609161364415421528192414767144699247526724255429251846573912496521781455338784452095289285225801740977769261119167518902050598558664445619660155000103579333903933081867918527728955939894651425363559081141624298883829097194914188528302889894960255474113782186575320863185541944216867307230326318431168928139929083105277127347561032339279890825742861938617580528637868549804696279877593322660543270450242494346734085898741989269677989108536553130239804749714707277600803198047228088366506566032875839049895840398788167297378297097675208717221055662874028845542118497119737886595416443096302652701255988510745121237923327568205950756191658774576802518916439576531645100264350076407032260684242852834487926063314325539883932083896182323188564165015145191828458976898087406299135125785680731219186003582554783475616787062471542353821920794234512835539068197406823633676102722046508309775236809557468343161853933010558396922696607460419685059690115625595934940174666213344611014799779262238812617552293568328412530156540856253670537792965579582680166454157384359491044760029702005422451227829212329575837786793591742104987247697101504483635228029005315017417067130882489025907614538720379028688244242433383451755611581365504278535563063462526030946193988444141417115074001852563074681324817067946746301066001025982623421687682563447014515345793278950711225028785408531401732203733307862880069648998984900462177799035523986431599750541537169587651231566953315829213271537596284652043475591644150873568997452683083034822964497864141087606249832258561635029173230996736126379122027623181246434317225499152501938233365447993233170730316889909452936394584493419956763466410625155461020293730452317352271030313602063477503049623371211204468506957847064254184961698699129765014900236713248700112284401151662031446975682989907638033534531404022543524300248359230823972381136991158673028443044401782932568841953369502278937758448247262368962128225030027791165318016398516983406134109800950677588024308895095138871046023608071200512795560056045408707145516014472838767192211690545444155412173300555712510197078975385966740407065413431462618867516753656387643340243968289553680846245420913100818805871580415530514457396670092120917786563210005802854550672364900355848588148323356631448787455333859919599997266026888420171672539523624954737727807964688550882721036690309543183306681508874960606801021083414238425966748223982299280048604343686249475086553438101776378983394621457328451586813360461496859353108916092619513712900379326823970197046251353634119576894836650134495531713910553638526778421915260386496460293057326242441856938808817861932653608129058248893453500757930512825890327403028857253717465982257158683546394095503625667263144061765039625276930604577540345849807214810686349058619049126279850386142244794801377818452306091933224280789006496543621702385634680048724474180431144397862421776817078268071703640200681656882076107346527495579989053274947691939273643927271126691288480413746644272002922590590147786411454335401407706335975416044080973759127663355268995043131374223055480643480620076181259923588488551673068944578987535241676324958850358226098298095379144735050600075364419462936703611912533686750969953223313737540819707736020742308521057263965032762729225919724975685232627946123723518489103224059649134505974766716372828058298275324096680068854709942921497102411560231827901842630083680958540133253282596417717917108543719099815996197139725004463849024498371437437371859732469676822489658106220591198038795915906419488346952854459915795727549651406900768366267550114620220033770771227419261911635603185680225974472216002324549570726713173567361922106070678129642095940743602713172589483637021882303570870411655856516485515312486073893312575682199265441955262858112733996357426091340910245624932004252053479395017277385185086364003486921718802334668857535766413272767390726704974350341255210647719483179852727475972431957651442938426918127221280288192759913651449803472045759663200682953438731805712935173888950313914937277283326161174280392859121321652353876226029736089893736044301313937782894690170821812743229154956576701125349092900501905492029042852901433678460447613722482291517845601738779655871768580021667469185480246395563132606547392973203814747548560653148692843808848498709747066876667985623560421229811126874345950714726219499517076777073421463987574557361355446895467250918364745225377113662410438972681095942676253235278340512451200429562447220534644355222103111582503357584532408793012744565517981831040684026601933731541127708473910578506303974458520639611041833551688227901924859763959090248719130689489081055753871679880751184458221954059757815986845438166656542816092202565810104350472881378736973266635142737513576425237136476508718132500795405819060176988006928624575864204321916581234064020142784674161548016736265227839349674974578198641675045436428196440557397107491389620462635651451429563994752733160930742327432839764562650967820470337551741561688264544422084158368188653790143618827963609698284586733778543119136550175147224452673415132934476656648823200089361168352204888362042206648682233587644890168291170033520800750163303673309937668160446051911741429254720251120747967650557765796125952415531928869575652719468102271366428407959685799938377297018956574380566998938603717579688404284016043953693411588449211716160601006421522097587347405172525826909485579481123497136271546167010935510719201969563727377371928379483624910034339479645342331731113968618771609596976164283325595200707945835099999558078561767569552701452703336863978095572591954256315348148822169680672199999719497323955286609741496445983959736446249907143678979546035038415413203444429652127703180697252115931117016397521108971058502346614928772546264889668201110035599942265247474009897035135657894255839353362483446887504477690893634503445039139614694867762366882089263884002744676826151318669548121464114280858114020764139341719322003770994717572280272387330859783999354457446780963064662744684534218772720415208078910041336693127602168620396122062510907387520894082785683314001921745836834828479158884870079302648235954438347743007280713954606160357059515977706324864683415208765159675601268180630089728246590569208785500032169700366164454922585083227126767023548412343983221363994255027369570841144670073622861232197669080373766633097744908540105708901693768313217246954544166695753301945986902842783154484050032838697468901101594111689731612687609201781872560270343481073342492199012668130558998209966179797637002292640643968757171943824723376781131088639180855817570669602830906641936319354581500897650975624598506025223130855112885336745566897627647361981756848644807966700458816028969979950163837630201563804707957238422504437661137059084011026567786154292628902075993778141068061607772100431161809643994773138250961833576773907043119642663672301199539376788112639037846363980870743055663133363504124590815014721725152558044999761759285009328817437640154123890793325577451787716642885884410348017966114272350252537639549640231807187332882771605664847095404684043036653341458040666995319686881396479566234739537895321903219985455057762130528493815632443712569283140938049272660729290707395482708276388405277169519136255512936031735689316139273213014202181251276228868687784095377647079165132784293461695758338100958664770206911144122353976378459087369302602540552855116579651264934024632269895584204817302725660772820920543140591060054268406529632831987174936633873988354265503998671758418262237874606042512802534725725328962142007918942970837464398398593578337375968582773125001361859617519945726872681232632750961195676206408959877841311225599204421229417219346419696868083032454459958668670008175725852999000826123424859474836719994053325804096145240972833089195609928464349662539230899643951672748274687385762387007359496208532360080095655224394342533158896385006079093384739023831737837505687265833930983337255399156325578073701118449108202368232384782317280996656090315615717118538514305750542166191881126912050760810593668245401709576702921254692703652793590684051767881435556087829686469613063306239970684350518879990601082739830594780672826579348932290042603891896291107518604568878518407805354125628750308223170619621415788975975529380014790406600668894716815392746660750323053477178672548079739897015100059874841066587731688725789136092349621501687395457143161829787809081362528356118064759959287461012733895192341537457818455830453461807233448463840475437412150186060844618055983463985579241390665288646966047828253859004215499035245916338415527517478127113592175075877246424783330191353745624629236980800066263705144380470311745198984070308257531792526857349756387810934919574256032848784489974014120446581432979487741076829388874394427221544405701843489146802275617841044308547479487550669016442834598727388235855974392357994420874412939925909699517224196117732197287223532054930811717256754494218165041643160050878052595905375337613439308052159494871013446569563719047290452441929269830789233978003877198125985323456492628632245838115766280441600949683038423766834155769215586420826224907375564444389581839170972083840117326480215708661122821330354736797313826397917059356248964446863440167196764979551926079415056028432135637836121200394923021068472004767752562385485198694209445599548662243472775726858465937413448724318631336224431714105547599266038006970191612848036868518192458273799435816277743032784915233601863364527379551886628023719350255012269646414903300058125741115918298851285520633272614948772481404403582191420506332272301553690796806698771983161846228928165587440460683317125085456190939548562344325550964737695739713613034275870322367514305856964656106705582398568372601004328673743218827061566259252717780233406717172940522817629888769309648976587118536309198742792760318156430573306075913294963409111553084407254731719714016594950279525104358757016681251008637413225448281792853963682983642427843476909228511644564347438211170765339251789918553593612888455972868710557995841945078499734902404218106098277512441019004607783727128536426376030818300771327751747853122641750618096144484365296350451563513163936281945398043510488986618848469756553166558799360820715414669078142104665399365616660955858946537961342057458712051850423260962932378703295068302574098990611392978858131515560053925307885519036963318483784445469292277954918092798466447771474731385986401948743622493218578645136572102967779696703893923925770636833699967707918142998930976168527976765930534843268868762745003448164564187580048145605170075075317838973919702137172382846029782663570327016293762598746242104354256024422725689357195643465138098250389677141859053557987325328594743015670070464038578168306696028678240443205968045469277316911056407115080488446412641677446353395991071030754043483214480443252645995850856248501118455991260511297123514179444547671813001489071702527917202870543332500654163629080104848783178774599974218827867154234448768551936115962051319121626121075715984484348355267733835734851306914337072304567033737408178643281406940256877292132593753187492244381284668294683631121044144238658781403968088725118426136617980075899958146228760839346595550808354254349721777519288637547609950572697837923975045842266206672542429903616263128529642505925286645906573140590998927116604501106076525410802658985939690521010774392720520472563124940300286875776765829812572840643127416932285254884484518602769202489654082455210428213557408518276599404173661626482687704520204895388541544606559536099721852591302738938245868019968138461037940758844637535662526874190309250663590520849481203072920558965897014691927268092904341657908473395165146722747439820677147219336738771562657645658402977616218742045073629431753822552955365945333990912598354995387291075362553549504974674134553200852506120968731232076113249579438325499621545008793927568039766962462852923988589004525457748364073395611922350774165805109567530445669003888142207029873621711687004845172445123567227689415632897486032240192116450169484605562754410384659728899740264499726500182025748403551284998104544946626876349417091560853023163463322906645169329822528184861338337812872560300686250847587172262135146791013168010879955009570780753227021697686338385707500436407337575729789729435738028025599628398273951792221567798342180478887556646328865110758541218834260668020585042076177153693739209927072325184173858693199998639152095308024328768011586923545232933809725759092069379490728872941666724453695637159942871712808970071030017926627905386269087143465957792174036966222767942067839434724504618875005892480934443268539713343697566799914039524736771570374338032050864316059543710277889204295167953872293321151056895002501504847230002691939004508695650370880434662195819422800942159963337849906203869080364324319272084422019447331407902296328469034587969889902867283584194134651870975090790958268103894767454167548367193313834746931858039584521369628181421564259822033252443684840303274740419074723619095580826001883890373044434518799836478536419578356784392306314127095811653179602333253029897937703266623224194356514138781128145894934765159281860195945100290414402178659521256196315063819807138933676455876099287969621047059394332365737231261232054683315703354209306042583166281462260159450989713693056395358733508333671626737168837652314345795554551534861342223058459488701559363301846958114623969269944115979544290852779702403260919833255175039202694649372112607750137413136306962965087519502995803185958107721820426137873868144628998058976503758068186853461447473181862600838191428548997516429689528916023173819554815731195701169570945510862824518672535854774295850616071438604156691557716071220807482424212536169980676164822295067726774973926589554597400198636381187770723464531479575314592327577637555658260675084174960320071646775373386073566317041383231936186938725111972183168455644285869056868667100484846154412417130135215341110028264483277168262286422353331106469300869251429301515913833920351652420935492111486068299887591057790588469149903426284688920634700065406448466730760236989360968500508119874357643896425598821957352628966755724978670052068397149411104327652200763792921670372079540530953041529054176549019672566115439487142732244486913510020916270093951372627846889553204194508262395914520956942574358966648241428331344156962004980701456162456764703241896276326115750404061441982154088949882842248803874477631564643236776490975526926390838968114800128587892514382136462067662026073173752770957101368889800905660568546122320824546961078903076980151660019761416382705007258781650608992174802082915179554531747468485194142330005875355320518110541953768698701559189278110073282024864569561924054930105953427489704126217852748482988276083813652391851368396634349526016855952744964739388895333408187108998351716114118627679589873101485203741688128493075017931195652844407789230006007594401227430180564335793789566088143880380622997980010318755421757563705559684702508892322246011669331415332349655928331214569567935229869533167053303667459200325936026269808500577007687020088573104367119047237795668254150510680231291889748411957914390306322365039163424825694975272097484195786383813275777235582461037265862707325349941430350838452848522556925134630762290097080696017256904832675611079612401358196798723299027180740904188644818241142786733682355248043965371044975813668723451762589029045691467772030337774466440625248721294944745759140377508960675322143292802220885446248909621257416312696152759625705707230604552824525794868752035890489443482923095065481786641164603712805813650666708538667062136986031039446645241006806497636991253301177359917227819189370183759002673523070086014042819695338430861083873237188133334310389569871394061501387338216453523855941802127636571671934566368950643993407670836373590499695996656872268511717307039486569108920949492468441200363434765023212258000323800718182296943585863470111967001734746800889437266736402577510146283889737494289945937708780624384731783648013154574515554663603509059065496235739459092160927021889345114339408295478522236642932955332707480818930531433630725941910758285226140421695585734463345301002621059321598857353355848584839112529249472920861861079950810345353115918437166499303870661323741387156017482280453277608977825638622609812413713081608428215330665608053011490960171030697205679338167865368608020366951315055531074873748794018072002876708866848885026297928208531662733386593678124071678239949218399778667208909365230477986098468814386191295259019027062717503020626081975275383127521919361878457283054075214127228992823619914762735757543405360524884083278630006061120153909530981752437693240149491588659370552275856965619795267734779258791051283342252921327003687859482303715685750430720853024370550784104423535319265389260359871313418440250890249159256406463520662960806887813370831716738998485339768299567645717646805190947580130350406514965896634412053012558423024387856035357193644969959301450934935137112684858665894863094216274294812920044568963378923769302749402973437709337859561495211081978210620810195353741937124762262085908314383130703147262264897681550401986594304675827724552452713100050641053391460119275335786315288121349482874973291470342467412466397701707636323975541694465336186543501158704406060661925590586398940033606130453951868609896237680347434264645215535879467751955475751955376727631497680212618227648142170166251906183373816190691991396064753695363794872144927581121209079959990703845342968075290461593304377904798229652517668112626076267293873041091984682447538431823149858826698593997186522663587476900455837697880680113423095006885803002617633299320530847422390877689293314989990667975327013617270277179503996991112760397810109233397036795960679127902279978777099439123691674328151847498544457671313011110428791285651968096183470465336710653093199204181213255775269788563402697779108800335378037028008138817520909911369893315090879203424909151968370580973160588647579213912302145739405582870673649873235285640462663706726186241533139242491365590113292728633643281469985651347035144602110493625964289427808198449616631516738979314610638429528289731517992072382248639662688726569281755717624665447931457171519097375573614924500908342160028265640252396671443916444052193368687657965470683493156427802850686658630504335321552068713501596919970245593824002281062099932199898749645046600235849938680453438165341389933967941320378188825483148637703359181351313616008392487710260584653120905810970598340164060963530437968311184996341603657798196646776266196715359609275320875486667335343619416610440586988298493536989178289283040158274061374590242231473012707416256221267296865137601519646604327056192543225412731232820752509514829863780118964764481256339595354714015714724834510957562240217154070916261415474535516930748045654736268784240122381717131214524395989190201149931367100418830192365417378794195433164391976178472316391285640430556222700434159406510454385934271002966306342504279166061314121776069814641608832485497592407094601608648672526517293060285701960534545148502912370674174102764893441309615180119009924845434439282829918579324511511724265471760269749283132658202472062437639503672634942904311665116450544971614403046170946978315315869762766538757016063886714428423994377978507004007358966948226281556720872275689113174073139037942311478611160988924122330284627772659088872407172187025014175387553732455562836358920915132203376123278040865660150690140098101044718448057179064577054175357738274852554862820307867774275918361174983843266238769653069373212186866318681248856256843454148303915210763067521476810666186594055597575624111282839137869173077447037736215028192429204268008483839473787466430400494885467816267632492117424400488498269251163621278205651742299749969964637167922269377835473961065729671112790828054511482667917227009337336192602482804635948570741561414181414430191900818045029242894207359460372344049910279960731752613084610645194232655630441049216678987290701946670254759149734692662873315310016345072476008044988101726631762831319952211451355172577796803599563613720354732764473881918875694725825117119084535385089173079147426851528744175581132792822609944340525253073818296441975383035206151075667341297926134413421719227563890365077535956749048090316496903651220596908267534480151071379358554647338965255829761756997539645632060202945507537064727139634370122660111390808572333463055762835730547330374938224303787432049937308097618340030129279933894261150442048113607559481754302539336106047521295753292434159136990950089235941119015382510101808001164547517489375986867169768595349172020292875875805604948685922349544210219677086063858829992525007115749836648065192696623177276772294379512835401964048228232997850578639989044633299268612103709131051897602532158743491183100751653232856297202694875093697510430055349163203148164350490308768989573892650534784661116793528760754867914964335902874108182142716214170643888506839144332637459461987249524957036000312171309992889459884324496077762404402929760579105589575867882983337635546608683707931952269978740563400173096568744021240544825055703414687061686991418674444568760604142037604688895984418321752207451125401441967496242477408846459600642240307952709684597237110073516006195572099672493114087793217205009917995338564473189196706033829893853781538725205476779311234116790526337783538297223290777072274906283105773934926676050611760427495175303439518040971038015089782385888912291741476875771632704434788190578622150898757700580534396557866610016905037233476297655464347018225320931018963337290041786388463200079293919836253124663679115189124155016540477735212939648718159426629421601480124243906640515447021029894564816879923973245253288804378238774691027414746886386739010445592280930761088849774893003881543006295957558672522897515251189854015192675289919152409937392201841012892849799885713187977393885345870756750759902110643427969371732903609433483129928807545667869785014217231837214266082390135789112122198535439835039924355554597551978280318243683629281349575263965993978832271279908407617311669135547964081736458644803178202894190915748816928720630009429168220456509191287136877776452099971668063070062755714356549298658437324763248847891309641543881776647555518634461822580833809429699818049946097038237666381981817686325841129252274856160394778992764837048913434795417546317763926870754338129856367219057778463283660644137496927190483776668139794084327375928280158420604279024978787057635368006801742352898901792240584639937216381181780369161274954652152283651687626081379581639986855096788784487803641631864776258862970746904261382046047038723185193544591336331332442249977202752184735135875091372172797910760283117586577955819139926284937989730666602290778672692918979690724355700065392444017076052329945358064123735894392045385262400573693404733702997808437797423151839290843680055553684802222860890040056421558958740327816959083085053731064141294004734706090829051125639347457864603313866432647200331661321463567484280039723239111085232020541968783680013054616603783172166415389880024696757500313168991215225712987391007964608801152968407285510707416892593539995168868967696798084710240447438711689255900775274215205027713803542767648498403854464426536014540296839043790061486419648717635242984063137296118295642908585870658852545230650145615517217026896909360528189254726711844811948084101257829549861522027603897616599098203490251291546022519888541822170524737907779474762592963903179821562336963094791492699574031680941837672916222259045230343794086311713805724143117353975784160065401644695537513444805680464337158543206664927667333933781822347550749139875596615449210281101667019006884245432714297387607780255566007112504805757018807179896383009637732204245210765483307948561538379281595325835581511045613553318957012243168806063172017202827302528309135366307988763468237232794669640157895742712744753737268448876991073467277588345693738915468763953302690195108204462346618205460903513684638181526056277413330351878632515537786518953291810207765028684727289685876593797017568495849470371219263714425488962735129112150844420027270912882028112834317834544345609595812755662948886006963425769406453590569175656422136783489969730157224021638719519010738738558533078552009187142984395280745582355882015773818720449726977590743060790492637486060180785000303292332412600895407277366292568976877332508820214654320917533698484514162230647131247714979703486596062882274480556789579918087259553887722724712588751548484433495948359918643672407062860716715865715264897120163217820987779705477834562005985038330240040934923891563013997263322364677200661741313535476952004946870056066275401074220846567210597193488721951358160263327004282710892592684550157943743548211086137055053893335160844589666421414894496774393824647780692539340996436374209236407930694582813155504889241385562373990922555380053209865886470221155840314428356677092255867190295177209807252339213235244138932327019248190543473194153593732015097933331244196022024663131671064929151979540022886875110864526615975310109907987661343298283464880126528120140583618561208457863426387651459850821546319993768322555732451179674093042969628952799765745203471536057697753839610805414579517501055457985616311590384411495469571315083147013558309287652487895372695516827966195147090476771571193971674060206037747897083782293738116401219681574642961135348496638754125416272140998070197569731357146093668056195063163117731518635302762874206042919447474544150980986247174247197019558813430698805111330958960883269437500948903900824939710109921747258043695128756977621354447527438009465655882424742118361820801194110705900764013392520800343595264704786318495224311692272975752480955574329201401687781558769102325169074623799229329431063774135086918088656357371690902324504249663700325353588373511742651073474213652136415054093677941953560269924279514008757093221571201724144307414804091348421970688004525962752224436284788683965851709820953851682544055104422365205964572624762064550004778984765877987038739646834651962446371161516595070014859496892499509799233705415195027202041950442250888820629044694260594925115507398875279328961666542266938495866699810367331496076727749890059942391321784540277554176503030634635427502361198001902227231648385839697810602587764247667103083421745255100908753014361175982772737677298383263693088848868194397953640628787174438943547430927189278473073104782052664208164947999814766095465891432054670484632460063991480157772608208168516965504640782988740395281801380415913075682036325635821946441756628319497104658972599343237989373685182591383851329442712314995847867303848250897577168014035634176013622252205742003593497982449685263304867575869189707674916662103299788116966308997031776885649242055642215536910135803793478993740028759881397968580029383567950762216314721570091002601542668493878802846158116739932643267207749869478589450648448227675288822569549536666549664342428764560485343840903518709013890230419870191005311972936209986719981685040871506220793747350197365723195133505796926959920910730384463601041769643046605021457687794710500947074938805057066736858329766840577096720087752765544470316262718105441680622655972531899813612492474603761303026851604614247661207902936806067796590644167332509819086994865410914030896265575962275365810219988138280565827133521120477556107342607366789760783365267812092531657619730471647707827485928615663792260950577681835090056687084510550265909621953424319998858906903531549583377941947151705864558766010139492218873666621570835211872670820177681222728654893404979263959964034910519731131260068854194040579971326100069352469043680386188445961340536774741603134851554623682187781826223553050276311277955398721774641128403892216619932936185622574323743566212889944989405428977817567762210722104838125516536055811411554668905847332242336435889423425558602798064565503650306571502181230137298391844378618699361986234057830276955579190382677273478211448455120956866724909565549035690608619553914803381240336163399984428807204723662576445469111825396033568454494063946165383818505805247898417523893295668140885908560482287737351611752236823206932109808337836876089522978825495494898976225168035486327386041222908538997615088147331476323496018034286489123417599592864830064996779484497310677301011096707284110313478891226788929770244924350217953038072836179553231090872308175233946802500694608344835992918417209061636923153651959671858013187335497684840243332383352811285537596854937344878543728397215652374596950927114687546034267449641845351239993123845101384333444081426662914035805452205078537538761501758405791549403282122647359650338591670863157179680560828391821247270886879768373945297058655628887198222663580799221501645710016527096362119796211384797786824508979307875349423752745782661153389038416402688170389692719309523594488790681843639662419008236055539927376940145956080552430977596174038729458532666025548788385678430150857543751753456078713848201932075760869525284349592624115515273756165545363471636194776816836648633953078892597033367304652438385904165247414311153504164930732015715272721861801870714572384749463750864190149941660065284560189513147380089746358667401352811360365943771605430846775387864895148845165654671233870896437884878905040869518369193835309453893056540957644900659088236162047654802503909154792910249902933179402456927083458780674555260488410504289315592435920696645951265945564851310256320990117615703391174070498383727916531700546192130010603212419811520100163329312079679540088063440466262845280495795893151269470661082333446915575184098770155337308635177940793187497453588817458827608360557919936904706098667478691392476400745740015737336998673452744500600159751283570941233670659603328683475915426881355970665078416153445317440621574693129251805000320187712545130651853936259021748441853204894628469180308472722436550755006763669340155785003677791627679194906395003268164749609197811729853246702586867033331719931977652636956657220537300087972911642800211576292066265566031922316033835220113600255939972941390404552553900306507534398703141117908476134260800691339460736122151674879389912660011359706923950339176351174138449213917059991316381034842196822197210554854413870313860567099237703926238967831730083356957369124007701387959813035226800423992968334850799494344974533959589598849245373989071862332918814654234688416791098048666209524585768490739482098614197109884609476466384831762801823243069290408181467678495997335928110766282745379266288016049016548762759201029596734605752004334491973077247746662378974872948375304567966771170108585301040600810554535027063557134824759601524312312454070480123538348401740800539202051079910938752046823263805321439696069296083672694736026196102208599062175321791064612434129750122542509164313838122743294378048391098485098691599468615201413627255469674617874825488282635457563603334116275090931740594304235846752638455252364159948904677486809102452799604060125744065959753211063123882180934289602256172108161423431793948931251777627643353537612569243833431407695754861950186931931951031082149045694673707777480330920425016542598845742112811298697055774600811563896951968547926963051958679247730819447431485763265932497482484680212820855321613131258100595213830699434426036436754159086154889159283698051429874950155701796834958145300146545336012944726816832100995800425519575140052341243586317131185909790817910383281538595908523238421848345855692650900150656649275850184306084456526537744314112259216803099207040242681923772069619930745640030360752930633975398926061967655171533931732156075150529658983437296615159125868911865587689006327298466137029967288991695496032361568144057839356325182257803515869126710589409350514104864375575901493273711897306482257754508850764944115317952100535538696040615710789449595116036589686470874453737754032632720206180422976767355530393934758552689301749841634673094372249496513511020033167195090144226586264907265868345744054591738250957576520262836513982936971724287652087231179130382934681213232058765370786609653165019141908943987327710418803509759906696932686379684887566131653908116429545693189145565357657573341445414439494162650764250237182534331826623753327595652110571904860961112983834194085359164596544589443600414670331365714613789804335029515492689374039138820915227250452074587648132379916106814285812467695029636267471022843810069703557740170306824508752802474280286210415595658559578249533964743608801013741043214840737185060238171575508701114337704930260395806261689553535478707010916717861607387677083592579553536604176852081772260559737566801221796608126595298277924878723287920503489406516785827680224682085485638947628267162476661824841530455443075842288018268773853524645257745882748616503106831779847996162082352208984826495940898484510002274981554146225820267725324516088365296833944251179455949360040266789844115378335199329361266714256944906211794349360357304941473806221953702788833700533613462181654115938188489029010696999993377454727903812759013847914606092276688578910818939956717649641250044228554918120844325973401243086339403813708181386858034243030306310846257410121091663228738324345365611748344367108368056285583337248166622319102273683635287266308347944327084222597957544937753955231872362021153623720519327771893577123367350285098384478044120366934162051926787628356567197524911980221729473205530887818235239751713958096044508677199021112975391979370020414176347577558536212021782793164858403653354841672535842857206508240132501100091288821553599327631852781866203817483990426050724098946396336800050352802512300400717363102773244011674362330484120662331472399203519193143116486680975406932525598992540399953073609932815081335224175898706252008562833603378898301003342533185752934540905877835075232140623982530353853882069011938335220127424920155316826862859457373950012463700078830223254961281332322510732457392997392481869219106393541727398139295461888660133595156367469122459238466751516968720297845445666403551952509594257042694327158023016806177039527898561505151802136635462632951248068543355802434671780830318725379856615319562676968877635320788564772261399334412306867191456031759031363957439799377009782479686219504397465219405486483048478461362699386621433990208651504242443986681890402579334429335968839576285582280077808131141112311210176398885635338312364401725734298617691268757307726691663861078896104488839600871970893002725469103977799431446864572063204638835816801236010458413412225041473798090696642361037440052165988027342836334801029388951839161452494857703660083801962545489474695613866514832586567174675060514394869848684829446374500640158585728961250345679444200625389589842747910786518264457458518730457349045143424143391620258602139719033239718624602407131064614739580338093379649387720322317891335940714422383671889677774577357703593626476795652724728275290973815530735094469626524754443165264618798499735808916519920783207105472564121282068795401557020960852193397050430146872301683602181228567703647798292439436913020278174319773956205145916413427489096334867303904908389967325386659894951473689685843257124105980978030043591838549597525854702227942827149961425493267021737961362444681319863865068338456943893636072240689157908643811254081341567944289547104372885824958935959955161535381809279017787014760318173992736706536692975666137150734344632547346247322101243828023699580517744893852207295394551430407917053831131587389959215528797335264285807038482156672853170341998106008237048677038982027265996410016141892730467030134933783969782978758855513264262453965575211605788214286522323065747034813360801844327204068370032918156762128624178503969656681264736204933233209125906419397708238157988054023519887714960602928121269874428621941680827094563833235868185360482121802467121547469237345195842028292097209383079794452596778801663071287229664872821964859261039005528163707014256007757808060774996779162253677148432175574217563987705929893658545162118934545321711020114952776233066032538061369314124122137342179099454201080051081937472211018024576636749542958643607524749956506521474981245670108404214851563317078786071012137404238281218673325090792472389493223960087150547726269893005858450602942390427156356259231152043847078881819190187951950601369313705513852687203318924871251387632295812654923795591774308083539643306840237442676385207089718243566364485000338890112613947579377254387049146792852665444156693870198439386464323133240371560952360825699457912263178635975331016863931530740638505437708582406178810960843107015732936658832073138009670262531923227080962366603712312602430958540586426952763370967249862071847172647384783336402272708489746719376270746984272992819003124797389783813793006978920432455179691483979035901675253755665800242804954285836009496913241259222905313545034814065507264555355068463579823062318339394486323195033008082543762772897659871560920687950813027190669485014262290516376213528940572305168564417445567382410277470723876458438422269747025336866661400052235804218219915841421254664621700639772370939310005905982368141716546117973685042561493426205749253559570565846449610585683132733435908785867359764471510769239810150307437175379884668731803099300563732686620235808276329446807329642804408525125259021959825255435389546326770954324832252093346607923239448738464274246254169628324015478060292713810213928042804819061226782420724780908685780486153003483737758952617800258212648930027005862341498277088316019249173318106483308825802181211636428974525089625940751328818075478779874564929522350912900699569087145835646293217197732167363796262454882186854983577913350999289834193829563725338889304433409944107552063764637557920479492257358260206263527141236890834967198508844086934616923580795430998844972023855512937398198740996537727135378795517491014958436572540540596223764145109681519665157829921597323546863875187971647275706577058964645293926086829401432201170646696071544928904015432662487076745232930311057614128012550585045686302287313065253373669746711439064349855630009996431432297668523282663016527423411817704703220689446197139553062527503948385554783007744901380606090438121913383645327162070926039727117343859367992646653137272158407346841229447438361968986152506591777392389605837882425943166611717959837071441694287982804907519807738253625565841074702464487483643999258758975057848394648006787818322858396362954391629041780746197325032532770197215738672920290563858068001255507249028699670874461757917126647772756198549815364520373410056593588082337718815002609612966086131445249295798825467275150636678511947928102645047440315563618947016521484685631548301197293779217899569132772814021165684073511792563786449693518437334221719120963224787663688048406997566116134224372404364021924763745459183035391898217927180576228044577637178807760584827398451001783698510720988025422296459969743732066432934312524358958309335835003316670310326759979475000349825093821174898393608374327784868827312469887079495044231111759482681513972988105655895267600748334624162164183387380888997716790776370384979319799600078726512976144224363628207267787399687490766650083568932986711426995633399348629749851840766822043130179222001130747974781344304627544377458241824524598315877507050663492585627153187572628408523845332881992059966369988677080966956950906345631999116731156273547606981255636564157226205814574061811216762726834101315198842211584131066969890387079059900876610400843800711714672658363435566770441428164149270040659039617841299866650565007937472180825736931631994034972232079147458110710401485533424920130189759123051158994437256713636366556302932526842177305047463711062999107134218882692179515161512865536935240828558217019818272230986126801942335431807817494472627152904987250207578547940631693051143617460232510862491076073079909352027351073799704798356325812758289987848917470572950485865827633308837815165698024128985492657537149090102329991882644626252449660352829444826957688377244377492893646569833238086126331820934386350651490017226302709761197698407419274555970094820938631539183667780587429948092449097739733005650078096819528523818670702378292273976840888281421646302027415199357323052057485473196610671243309230457665598444980373454130456442589632379749322795849778857707804598027691356191043266251381450068419367671002629962071404516457210137089552663275392074629780351587005388177608992480347148950606886433774402716580398184952696762238387595146496255256302462053968734178350226638499449618623945639999616138491254943496620398384650051152827101855588146025731488958613522411959051619211808190731929837950277761368322670326757980844088956198164781908027320042442208292865725137279341681460027978225831979734031040353448723971600532272405094446675463136120995890836562862844851564054728113562064337332328669615652126654238373360991430086761203643671480048065979578009707209683143722805800673845189280228783451370047450470607661730060636715528129322540711722469392304941404123799924525700680736179566537305045881777076065185349240219514193273484438705609015614901705133461850636372973345091018262614507885109511015510905340402953856014410622429353120733408190738383576221178209543428385753442015734084077834140846788495975703297417913980940212212378961484991920953434433201677961491118102098961925981241326044074962583544169587678936501841555804484047547050167929945375788725637021396812609986158171960945236358528202826492141242727741904870671873535782913070683130690198501536439973430781983502607707081095492646680476990279094226085079293728374170969407444943413122405068233362292071041763401570449078669052014700206635956932741211410776426029602921956167785756060313152485033628836410248351526642430543157758601741898017521974434757505176733920438866540014535838447756949613043594755994419792524332326383728750824837734544154476632241109329696151924707475860099956644041903365938033277008517669152578984784757238780360759258492409452698993758481752629734956685322491208381479192566188503178383033748234991586295155462717455146704795173589892711005202515353262511673632147658617556589706767477889963500526568863763230494351656601691913613137873025577380488817359969469109291884939309818105494699693631784799406887623528203324289660398392329046267498282466971375459793350266742939343082687555197221598599395760173213114815016888154091687590927154896002030996914155542211935747812254774995447778453871059911234521849378838016708199205375897065766504335484020670120157093485611560979036844454065679593696191167729923937002139263765917790390331184157745168804161960608856879943916884143090809298880695105357495472341861544780222211137098248156022769835116265364396469300710673915126321315801561432392441185330649619061628901670277686954358638499007592210574700732732885889251418077183166927250943800595931923100122981846411476413205328633397916591183086697422713562599292663376147126528094364672317226513566827564378658765434511108907228359192934350604793884093993630422262279666138753668095156629241948180939037866493137789151969425378067981052366740317839397163281821865940434757538447404244270520223205948275740730918628060800209977238586568364786218944742390303315804498735326870159566938784353068650358616679271333041506657591425551279865594478282950264800160834880786778371476104268574460550499261575977949547030726914988461429944448041369821465009799034914500065911606746973155305754625875412594924631683275612335491648151701472439951823652320297673131671769536670993563198301624262834120738407699752027173542879223580714233152841130481004891442129600429473454631324122953275614888879461843873104333680471666522447717742248863800322542939956907517377588865266901497920076368070955233912128275052444538097801359273497557162304521741661056484717795621300444150209325055704482471300726946303374354278127005031965424521315018291249320543053407966171272456789204164280640883614519106016395147528802571216017722063654573454383516653922764333112835891165177848821232888338081330027010620501542311591546749458320273288189840284740908606446625884736143242360005436832551296574829132423215961840510427493425159501203229530689385346919910358860113994344547646660601786682037800649516781493479426062756719202575953843815057406498268436536384731723639432839738738295093521806035423913925935779925570534125834833458766812550883405357557810258770252096008370254427275056102881572821242205640074761555424467004815704569361378159981828128717274025522296458614691773606860973342691189833115873692589582396467645126637301229009970675384540089262293904039457049634826450971935001295258067935151872642059416998962704130434582196816590760208312382822929905533537989733656006209768699100999537273614492357482318019781286735093985135594542448630533840258682184931398592975791903544934275650147824394349416636140158788162612787919804203586703365705822844649054070655394078455338939293978779824643779086281376946190619764274762835879309977280504500192959148585425214510693339808436560113848447447539931682291761602163169176490036998426837344803823826702141418966248516717437591912369924949372407623875540211866453524977360731856831356853965668275482063261368200421062179673282920184003049141938501836246923847793090849522149127086558000946478687200486922933612542576468814354051553088586939981763254966376541097282878457659284982512301683115215187024269371701334706064344752396972976087403844487637445526857749056370853685345022958557710864552766437082673589580183470678082696567663376486629960282077476890389889309753505728334350574508342128304365237319112986635182355623437326102428742163874760598678539147357530982820953970177226280486624235341480233136061916970433026453849708113986986647909244343530351790166972428065219990873911016984699983569232524823496877329534074876886156880541759427682517421506805386441180038003181965103804241030449568228393881805700399780487745914414821877131732971429939500402714330043052140986147462522829076517525529642983806469171254839090703830004299116321216310169678237552513007387823331782147398536181147093730760493614849047416623091951490644448184373108699438407358720212857214157422501536923364080834677583012183805443930090040895627794446946432339291785331440750444221636007634396031591846158015626455972749199864000568112374009842845295899019595149379492816276433211529226885763298719175089470730072992032144273980895458994719282892109185250070132284735246524786286006624773300279389584105816434378395915009618220476319307007483851079056070672543354498046852432601861695504796611359948642947706019009780293487209107841974750834733283051572518201853041497366645309427685742786480371986090564912403550692953355500285410183993254361530523637650570023132185004556715633920562694556573813029826363695890498405177305136127268827575170781851052653064011205609921558541387891022296560073067646988874100133022855293885710382892976065487123132414228370092990753924583771541336435416373361560410578535563328536435129475976934905927589288052613308696250500421850293757464795492562286056908785602092985968375369759385630666312175142709551297487445468261600810985828574021253137274787927400964704815202248142293966506373902257699853636810874763231963839174233653511593153863558957334107610947525888766946313641142147169954488140318298861612898339382672577170068526003746348957503735553583909239306281038918488053998740217914679900189291596490358960359034253052867078267794449039799421491916104251289853378761000118229911237814369442016137641199576456744006645915545048931056344822524491972263402600003789504831414128513011263710470358504147671152784959084337509220313044249063854136880310506893207293399040098913853891312392877277660966734031647980441759298475515430316732295916537919530663354183278725892277807911008793180987737345257562167170637552302951761703133320322564189695765691724880482100471888873726612797651897590355894715026511077342581285995330262391177299576104982462204494303195422101203193834345929035107763402246716129217677399326567379700420589328392543550804979807311093774625036887092646133617218939045450101439101151691605867054853377265268929716964776842902526964089836156988679202329045388461147891692647871735602685206783987414685542736529773012035395451054825925875038394674027718756258807462593937640098962268035457238619881386449028366118137398208669310091326309737551666205790460441431108581001605624803439218867230396149908057661429752362229285993545972672600695819330238616924275658942944510730856959022996966168370602773964662379188793146441013936759936072519739977741918456512683037749804491292354324448156018590152740647876317800840168312484735237992377689350556762368157913303466714536261611966491921552655637927008702598000677888514882347476278112409848350616076115095452804704703909254001144642623491592402963659574758374316778793862717587122919778128638317421100288454109800915406534241989009210245241846023948477491046487664104189123097270619421110780560163852438641273912048715492113073310571082132673169596285439684248358012391421083258234231499848912621373581663918309654011914140691456574370464415375210722014013728004316840834730073789085609179998671143947553196200519479195931385982032113606884203710530396217182330132693116059388380375102756391766163082270220034519505831193406081395326840242862716385969953707292721296456626083628295600997512356177880741103433003320799713409035254058518543872756920562800142864829704654912984964069303434626380486322912784516253306329781474173630905213988657897350264473993330411804319774527761562910261884834486576787697627375576983382702467224833951709019232224414097239306778543555975926098050829367931888120806777965236945399505424001707678650077481228300219626420458652876134179334827164331449269989387585064485840742299257025922789469301739982222254919976607731883194524885702402033435228027394959826039259393668803397792494985656115136250754895448108507345500319354569545844046587179179318718917459983315853805256680635790753674758907010856806237034275170109858347039801639222057640196485413910785567595518326029667107743877801248353113966537666971338137950980849542789849428531475775583839671123240949331039661407444003114810246783289194085785753005950369790192971249885181497537790581560542992638924185678783219703253501649493765687318098603151147143844440504653726393267745647741410790814454700091353277812337214413510996396781305004524530451808956143416596458556048450837701258562239547438651074442814418934309310770490825249244174534865845477402613416925079227713524533534925284882152023786911401195762232767483140499578244211074782227395151943350582700621519457157596006343693915492480173346401993746972173309618042044292849972397917564247189463842647703991958233563999718834799176087631641997153105008442999066479456615072823135963809391037148723360286544083585149513383044493161426717497098772844496738104446988229133316834178785774906235717059377788688077754080549722655170242622530254806345028059860270709848754466150722469010338044620280234998503847860393489776444990795252452289393638157335820372529317208379728329786562235907562516104616318681705986658393698962155543814089036879739616362511573474823765843857561156724658038799270461476858295280429398927226011921095969203497549095603956993876238668278913934657284996855723721694431008816430126839035779091618034599936395685642174934731335392384092939827018611469129162810770254229323659250794845332723807975810682742193880947693081568723026806401542574456000208602387277747044044475700981307984360947486662860143306046852620593135643116593465735144086500513068881982432984592957119425615176153113052470813554128643772363215589121835635699775937426865798009746357602712474966825715168435577070856397284063974288262940655594079120002697497129774798266843679758626314201955856458612428516399505117632309072519421287316588448629219933478059616148200158096223885538782877521960068439464966393168361582943883261317950683440474233558663524373073013781073504828144850730243113719489105249616929271108042221310933101465488269334217927409703253202286639946773984193551788152202886692113219001402227750389866946976710902216138157805996546802158394460660314439492422935506451173195880318979503901472752455585886836581676827341455434091189600875012483742388126868186715273899250717896920137616689452757956783178630343500135945585118763712382857050553560710245616135737423128179258903701763762451974782127227072534014440063651498540100614652897521440605745108534873846127284630425710946273449694799830137146153489792428872584049021886272490518149211975905345901504042377139447679543030062980863399140019427911088804677350821172597236896689540814871502719091901190866657087017558887292754532191977291786059493067392457126278067312140759579629441370397905412039985286365582519124315971918021315613195203668270012835667805771965916108962168274443318097579908253473389435606187964269043234420674575179139911992913938698256598649964917129102006589373333804877095202189842564512937085970378401309915369651701472156467386259273870869006946332600028645757896263777220966081093677822503822950544944019386927909011022586631039591503261157107279885181954640487843064905791921441080039251859627087563514754035530159557410347170344545613609905727717484635575464465116338827755297225027980233774415630652054030167742839759184269721331027778853335084976085706405897660345729209424832368518792557881672986346142622910687223677689091599757738052826535201178993744019286079450999202184652643683252791400356712923702943673556525979294240263728157796365419855274824100534112214603278604440824711988529777024869482504613238499911838746291284637827627063332544119338174451906662315816858314241679055987214166921160512799794441811043303317467897309285325464776480137349345142303198468469246888196480909137100450112985336704994959305526849579695203972654890434359981382050227744529986794607208066261116758231434226389281269980178862758908803690144060225327966921256142838121589756406533808607968202020811874846987021826988917024521258237678781501932981532164409494073756028002323324443022603234055733498570346539676202554647206514792457121286429149120321827269095421685511181698551556223445756488938536071353404534555286585079682043188246892655416437327173724934126135422160321499184173145666419862159573445535914631006489173169292166983380762989139238382413905690901527181844619846311379177164698260616645561695158819489277927098977486122501662243422277131847905647224595192335982528174192198839666500194515140819275593509149760753975925891856479330089988291935847248907576677034335528815343530911314030430227261455891231874863570756834869843237847764523255338662600983407704093059374030930705296087982169974247357237149106278391113472533930269523321352135837586023448854268511818111176731809421394567776162322360500439744611608782757427893690696074094612835755630406992068161992713222375273225898832103575658668092710763095627299525316152049273548594236145587872080334401384241599646310740572752753858553188477420014633274076755213583172439913396224120561567205708567383208502870910355470961390135270236879285073050110401601526662277113185651138614696828985806992596149212473396531301447999686693552278267544745419942730456445499087373377238507773594048294053126965032197944090006096447768588677776460769399165402541693724406194009069360655792766305588517658958825144804329425481239576548904529290975235920735274110140267903042926791478979226427939442237711168125725373075197303512307451598310894580671599467918493146123936996728787982404600364936144656639582915247425210707807154881794031836647797014956737397514635016763843206231029690396298501838168603825127501711796117299281505913028714246343752414234518000819964839333128737751789980737632021888854771391695647072537684044813978018020303208038944129139737152234714179947079535400892612367436572072281868046957443060823382548539002246516005735211699749675646456341829080385712530279368474884937030382875665275021161044402328029140778546915192332021837704794492184710679747657522577398104804520221092535673343996050492695904610342126787345934439053391443017470399179179996530386745623359950060207737327096109158546585669521680832715586672096425756482275372520488425190994525200007606030650611868768394416352743565310483492796366528137876771800830121289080903554225300388505376266743826713661637905568723503596334309122290103350558517310325901947023155830107856152476508700252070790844772021394412700174209897089439445908760298708801304201843251100431731193566681423725137284793619925406472875598342458262179015049663077030648206852485481199062861799097292087672062575202934197921044489256223031225293221344164865080566693976309152125184899722956180250629138284813044568218640748646340176308431277024931145482731141885198371663940439132784443799167867565027115323446595833020818726703526165558512165520334659666512891496532691032236432912314808039567931646041685427609537847900314009230727335109795006588765605472183799431676847196766840362201548240270694212023630664658656657370851278523887974311245483878133293501034440112715243820149103662711312958951320076605222609625836295117180211845417877952221602384515386227087623512070111024700389743512283527480109919421988103855624729325547145422094561388651737828056115374038308823392300217354660352772045285768077066832583213480142138735491332240753502193820950297329397146803353586538775943227124578614381886353660859254099277623844984671778700207029157935018339698632558393181987135815986615181508400054255171583173878760945076681148353342062326235638096460440771882796442132610383856857792220508142238380958503188673030506583262656874794940282462748784443472478746849739628661589810068229017316678743062422314963411466031775877466603321523319213293353343405084730833332968591213414400557167850338564667350799084835485942564865955146885907387804913696923877169550827428946172752070666570066235290279692156269571763770953438113611328547022730725285465596244231063806906677517184518059148825490238662749754326046123112882819160713543791633516698901588117589890821162968069691245215543602147049825911999497194667823875443460616806121434391190121547049928361131089564223236784856061933880921888806521153294318152240753698775963210788197356073875709802190593862138959071958839913224184557416085840980315333431112829010380902507766635485252468854254185310604323707962265018540550246295314400812991992895488875267056077176842732338179562025039814722950296409092874337540065102208600879920499212521584112075477194429782302703691681368713052327666368363094884298568756040863019789072653603395155971862875797543764824894434513746798761863361549485736065678672271915788585150805641199052722273785930585940782848193294164497090534634230074682176580547102296027198766915092201903718623714379663131059971150657016503393096138044531532941574604570077008481898408322332935214204394591443318579531974053746156644885701664178402065978982193522105821062167056992430581787457677701767140468851484165071864732759075360273924991028046323654750581634243319739131285579131133131438441406290691328022021296905726006008127126485552719007493857985702655362963173343020774334083049246647599988828954698578683639401938246718410214492519425891500587753525267297030776096200506508897734877224317302514994272266227917510462518573334074821156081714375881662751974057864654238932087288486217757319687904548028145719125505742478138005603498553793152285423420911878775266685744944596056884220051159099740349656116895689150726839466960609524867047294264762139174426114272652318181362906339174850420129246950858842399468218206741116599249089230731856766301817788594347491814630918808048288381355502463033595115369440114527868211709925094803146520276942624845288828180693276638986842362176785352249001123732919772750182032187817867153491133193059960264094626550986422042881593291039485951814908548081373748340078148177677382535828661444338713480634660338835825431680499702171959134158112611682438039248949918961763226209247959562520211845851442771728886175072686902386703966998343217600136694082508015941983284189073711935169428985434630657400860148827311245035002291132576242498300312738495562775901207694312099339460415048053902753946813895695201661297421662075065116718078921157156675481750840255359155256577100116045363752722532777382179975141208862384878478983755303880974044153444481109621584443894921632151553266158608082457171020803769079084409190350206829207619026813170975306782912413187382786766098418772748639779022817247122340397130193345080829481575957049523758878305191983763942214832155803933740270998592127540873471437587764107398354608508827023308877086194173220116368933092701409160550140886805874164079085720841897817840712455516258644482735286624631870412327372437668372167748435769486601475229799991548488311265265078306524045917398715561662682728047494257090399613646736238589762314626094715490931492620024821413030683008225977296507434172152936519440263972539456530415222327671758700094731796167059445754291672790218075736340568133438683529280464424549930469648255872319613497580040640086355583033055106720078836391485423920765197044771857477119512546133378471776926855863645622275630305644238252381625199478296519794366333838086526989726251749538793976918187047350459713895926244131464439509667259676194034311169028859161543528549573297830782080243581708594202459810415767412600636147092661438127528547144242134847717645292851037334768661566052926259079337238728421091262442491413017786907563152663137051812576877582867158403062906458028603362474703627021691053626901544983025094329662185939487864884353798084968231045567082337829668423286215971248585311387178694124589169524892238534640267148809187972178926247639607101390383945444498657428696220923457324845258161617554949067963497429351512338258516924141258869573741911877777228626141073235527769087670662939784318958665283979150857195112261150959622499740635060890573123543105342625091899418867579738035367277544367991627726143727968927713429230735149890105304599498913024026629216847194306044388879856951942660416089896730644020275320675007100154857158508949071016809304540855537135398503672799165534214070854710071543350850109878910976182492816557716542303880933707809019056796774753430805656420654866438809019388517048057389460301008071476148562967216404573316630476420040975235887189819793164297515145612890357761101885475505199537908747339683424654027082017048606441612416796618815276840796106764585196590426648080014986798791273647362020308492049289004287466948012270918838117621718504110195354120600335323877499668587715132856273576994285265522324494297827791352985434190154010736796502080024139125972751155157000037027886471316202248234669056556862734043200771363270688941953387974877904902862380358627889209738873192673024925582880832897093974304344483426670557815188468154005425657829479073099937086721867635322380974984451921988527230417240343624673431339706938833902949310542385043302772731233758758998949217905240357877205373807304972354532395361369856844122066098495282563004560940903213611676441975664938288912627993143537592308086506561877310362620242890191872893978852434340843419617306411300426300814855559708349557046163278978636349242847848524011784331459220803345685150725874838598857692083803362051846949212259195975977015720595203001902239154844930686974460280145955780941793766090286929352138352682402354794515424319529393931107736982371432893519611552088132049137021896327358558139145403395028555878186023110237653587413606432742098511633802432899889230018288967294409697637909124255040144401300516686337945675177177342124303971428160858422398923456409636918458113740335511082245918236833634197364742191295809280490580185403212103726130364693896151027936847180764195527131545586579446208424607013125836924025531020167214182229786497093911894049446305329951218641807162740345218078402456368390971713779347754866013020134862358117080855022670092814798984745438764796267331165788797279545934438987504511997666482646007067039255760951705853438127921580853830561577824055130506676150349855270718828670813124114016068243407054797903254574657535258512598542036501693535537382423139781620786963188385154995370893153655341345247536774466132345245020389154689933031526566054235094607097583993300795191324576032788135091320093894177836711749222113115334935866024573911324775715901684413289325053150870329546826627295903266721291602433271795880866538559130365658429952531650002800823329960298717218176137523477039537789542053634736546300427874515928404015770847911011259302203781260411054811029713384842029749169048352200524992917687589773929356080447681182280788086260718472564298066099327064423252554332741772186376346660793389337105158270327129702101244563750824692762530871500982756969215872719969635066382629931013211499536142135056466215427486694023082435126322217772990487923550307765034854396357276249421875192108575973074117624425487626180142000241081864173594215715519098939510993977304503841911893962391343885620872338349441385104272499837421070315553102270320403411093803885210174429891227552329927855342118225733144080288791151237234392503118888004666709286598046826213957428845632274930136665685220269384697639322354558840030686696371857148770693757367831227121340265376195837659601253039636333840308957885422935177055222454391174476076329746390781449999652167219069710376131538949038315512780097989202566028819766981639384906812696878629690106215511310311800869481481473746813158472334027061414078690583647850621300629559498246651994826951812880704150709322959031424482209518098052365600253952258103884533363672619148549323837451772110305886800880012823650676658255618360121001140431460032533509831788937189381397110135864136152590321103107654247264153300481419128318480710811285471286610367180181143604896858303240834890599626213134691867306191312032793377392242498245849059965082963382492115068532425782338064525466804720584091159050599272480373876799673276799102728331517565328778546451747471684366623354544903200433344900035315178282601598268369875228813504555143533765229537943280217809280296433258829153168913500329633754333731678423278455028589899920397450757983930399913788098727102884321044350473312876903687028251119095686052211990826987672962943489430407137341432565359099431686745413692992235632221730173203658529123975405783885453941494496687270630827921676400205894572105637365224230930484725459796763395847916073991296859211693025514676696639041638723572324367161950936137547077848437784218042306267610919506073616393327501377719697761519970800066937042428002855676412748621509363855635582968005030912964953430493213184904611314680801625060020487834563510097028302531060778266323306930645435326002335377970206443361107845548445069555921676942309608744166863235127170754603207711091690344781193585871190973643387161687000316691658878431592737091928715023109326415751772269279731316738842777944034217541800798043927678259717648030776340114601429348810974849123233052983644959246605650311291836017118772860961928175462624958993545275477502261600082585628780390078795010161350026125817561216790462288529951975271755477848362218471223790380522067517231278498643002340677731907241677461111826939956459186690706514558333217306415174928334388553061731631270407290626985346870708424988881449781100704521165077475886660438290467604444345081847667802157351695264468990238984345319744524367649003764223234734807585834647306642606612672764805533345686235599271535669111527058110629525108693956220414196378759760469505027369498502699491119565629995589848243964875638579742881317910807528602888425501298325237181109877786726270651715396981831583541033805679376376392141932102578410006338011291260492121445738195956832252274326640105170817869797252682855554601989788834629471223726697717601085727300030829980727088302282380981263313788012072226004802784145419830273896762063258212366700709169902268545505440569496982590714031417319190136298876982965363489422772528349931327414610422510580329809214173137871486518913726757340086354956004715051416120221072857739513291521201596664101066115377652548538218671205565363481542944465025255274308727695209902854688118658181924579003234262590795189696626287304998663273672923319348789632562059713682287870459490045515655090948488010048908820655702461778731990034095447106771122539865328211042201694847149795837477990919758306523299840703215773183486267866986918592610355809698918389915031231939129932474405662058545764276748788937118896282920102670778269049764697737770991745665718287481693365828517021240534287477637206797183388200832588259369403251881840331556695535470613084081430632059672217916637683930280719567100512090611204261202517318230170996047343849339093503401447312727739079053815632443454168489773239828705740347457920658475726264725358883816184809949189486231051963073841394705294191454496411959642644694311750055471793416259192441817065112433429580696067613037418417302050998701743078644867970317484887361241695325571753860691782238385930293802254128860921907053449081831069212626684073166240647250779202943388323459063880501106290038326072565723499579049367368316614671289412364381031015936818036024045095773453148855520146601206816362022404513818223756526530728780937934646022503730213484839151745180883692008778645549799811115799107159896399335886584744015111856439650290863757594631019291842300617399504588134152480028798560613300273305818537797353346916396573585769943747121576983643537036316239509620715341130757942444277048784055194383400832285154253719031996692976876423911076255140713241246126189312222448463554549291372963374977160619828613709529695318493760673506471109498379892054808503013016841122949954159112686188474406888091737532947694380833119198349794600130467046292696348648032202026386099227527835013970436423725872871726385149670042399820034104153787951216079992978395317417634769900940306241113548316948309111444874949527904133006370569446159224983631760769465567669467613143963618320117468623040560947615157928976078037693457675926648198423728313822616660131253117688935900987819617202560324583497725452507510740898899709520588379936611240377630157883418232487023096509450955902871558917651791955515610757515746975240103242676660515420973382653823003705641256100823050695673719792962002024365969266002091818700504169154356694284403187988523564793348463434569851805723778956739934873490966466690911666104740135418310090401109206605274636071933981985942457801646094977160414848310716670146266689674436873636020835104328748868462884642569889937197350592227212702209654700944150876067276076579324833434503947564612327049322987006178736590432578475747720752169217864822128596334200828721993775511788354152117613766364996443749404840954064742867406950774168736362436072258944198044742742427881881965745950369903651073675980422173200988631004160358004312110529942396545198973203824845579379355178371492964907496022731180538706145164436292997259129962114097439462293821035304498006029853084354250402314565754969141609950614429579911884524694927538831943160453454282552043498256364367724693558690283877560867152344422170801369485026551500752590356205178657350053706838609845421814281239735264182996808963952589326216957490014169799328108604093421589534795405302200396037785446883663796824970756057959231562268878809244368428794265196121108283878639412754962735776138030888303706395094836263770418782786581874342620540292019853240505114978169623319226779595219650045161405374846275953305991404548063126522841744042604755015942101614949528842029063131080143098102184641638495865998885740739122127622828674401410260468216181285087670787513541140648714993498013248451342234636040028020872789513720582573152518098598039246222718627769866170342237946597385899881361370050879336335834889563097451996598533169796393230877121500355060366663604632572376532693799199258846356417594904707034032418253971439518685538395016425712104396743972030867551848589902894149451151874201677946928457168672748262382272948785927500028538817682693002003818038260987874889377802787538929001950535797939930437731383375339299143222243028053551256974879103881300127875255924722730672619209587906078374837665273722822350543074768119806286309025324337408181374846919197419487632867047857608413843831220868917450850935353002657188667413071110540846240563008107931142340117855593903026790026187476204431280435141411015584600129637995538871325838438232121820094019634859783770317408057963259845096752875740351874366034154813898368905299539900606028912509252045387345114774367603543978928423596577886158644896997483509079796221865157678622510596896116753473544489975774504811745571007787781188015512820802946391100874302988013987115729885413702147572781323767975294075640517767970221791411525324626666465792729110935865361071046216629629914473939941093137249794357319056000598473248955141948022317723161554547971918777606338783151985749508606898865023280636762802476425194189795251282929017087271090805926733846680790474342623448905366368015322021713806313336124697122912425621254975960900581072905313283567099681228964337020841261691843224559080936544317957763265942794532398689732293138187228614693075074936405149825647741306115515824067211425736322748311659210865524952950660227012138264767719423337359951310125877852356500959350066126884193033097355537220182957860070406797791357706377540325814637951650059611908847583189283531434475589209671207433140041904730361507559152646850035737973974932571941129270770762170840679066460157450732875307462865560995013195942025990567310788952130909713431264159861264614012758179397555061231294603980493467372058150876154919345097739966303961145930015249820268130738129546759234499568498035251780542400989500551630142209009953014203018109892340792423535716617128172148328877554598243356152164013413197586858592269546752601963149059883822290545950810598981806138334569818863161447525645950537122533072256433943634674394661660221396451983711316938938147337292730219462005785449345537637892476433815105802347175271429511994954199121634113946345893229670826436154356381394850034335684390307605121408175564138682915767684738505138928532171710672839319044740339462344803545506812754941151680775658450732336395845315427966678650383522961804268598316399008049569184613473759082150526375476935973191076874045271209158120220215802325162072710500114862679565056300783507907762955513641518511605169805948882125294726474225807137804508437777357193829873494883888249550513050943583694750651080662700714368906065715935684734741951209129817240293786712972676668503338890429891870912884094680643080562803109618676917627398154998624781527562708301469326041943185381047742114644763237111662845548832885519758836163241219394940194000935671804479251591638906112956766680853899625046509983892572215822197901520505750488247459554268413592734330660813417678247343299944657965844383852622164738756795152691624207463387837567122904752243964241856161058124805106437863623583012817109274448427835890723303021054133071005914013939626894076525144092720567680221738403033945254511440003349357636804538083380623421802338261996110338891002045012334203305981195929367545177084666611389163080931667927659231555696894282954001418618897544332336129333076132006444601859366566275742711832663725082010990410085957609786808784749451354967110629271423243933661801954818505328536222262030186337707349232670405136614575142700523294334704906072091572826849600911108893306571705737886865551064443374463377910742861119043949118566340735591375977880401796262882370144275648845806043312039513573350786424323588702497969361068331712016605377293409306586925645700703984623005818655483493228331842432772877833853991604609854232351226047849665372121603175354867578507834338179941350787775603274069985075114550041997714400754180269091869228368898531833175314019269212932912490950308445633130800950313334462470841371158176678997583860200349495734854258922305972163421569617549242271286132500977471551058927519736624001747875740974794341661935523641844307356969828209150981660378522584417458290417149279085367856216492288246674742765298476521730655325481501357115597494403583146292094868498192485712767546642612140340352317930212083612446058658529145256355529399329954816988988458513411794089918366139575147841114661950498498659758790267158819304355886149992720972540308597618868172359776335148605406902677978078780362522390326137513797453875009168082933882257663951838696910934225441247660684095564038121048626379272251566439501399363719574880903653585873014058639533084188737066566578006338760593365806279221861904004841455305625385956407369014095216496001990432405149426629068420346062679195989407465505020158080213041520730569883183832804328039361291324006768880069114962671696300252100251142591211115763840434513325649722487729326626696732459522120200096313636996817088496998946604015026940725714923294047476494480240072473968634908679945681598818562215330167113406909929482806935455665698355565067564895055831288172396454528808311794002015262653173294341200384154457889806616509611883299580676522871204682526713829579055690304703335271499618552511975870414942362055838218271764434166216601439577584643694846962791453070652498050235766469446459713272803792001526474619572427299911044573729559124032740016402828281756260191757125467332633993128425699735282535409980977298007722449932679199746647388574981671407375255359385610271845134140437891129335801686014870011817237378736633657031788184586277148362249537689441266741259659267251225132089598293953121159935572698032979283465438772305569851638065317830701647166787049888222833084757971070002947607095905328101984304533547790456593432956285463129416047219479706388181465189752085712300768374809733516695517479095497757530215068114018392235948128475573252773042489457734870358250449969424052684819490485467422391385920413211145651623215272588495144480934891991292545808095013411905045951966895219703702676524080430202118813831444289474017876435098743404763657703055020246599713557663924169112991144739844120765260860126643083466928131187161625306414340349982131532487413329347884059742894471378591736245935281360562417497542125300948211607685010576451102488862785992364654191510321180563401484317329648882941342148340871187937153888711067389062635474696188309656145881121036033182904099804846718261686790755365937305415195021807299303972855087417615241569901901050010725583635257346753868510340198466858508440512297878785057862116661127210537196264184378357313063496510044130658080186362521735325729884032253850962670154260243696767440698622505890969264044522735659943520015673410532700702379327846761211160179110463085048862534971322713260322737590401739157619678287414358638958543811717000721819151878432266759976802102603555975681122019714594073157576985424334113679098935967730648967578311673827119727142384982859154720306129434213615731177398814952147470682065812673932019420070402092920481434059951363983643216549587050699664245428780964526640823108083852717294334064607751986374090775250510387244723137995855410904543235660670714738982114707897543160812165747191382553738050002050050491005696536426339356580846573549038322876255383868191358872044328095050509160036563391293882735327659686571422509992418807450667788010716837465907605203440908832126241554264589638862656992227036791437492647082149708731543905035175104096812385927823029488937993073066432460250373981928085782675748496107645927576878658611704176473004971222924125172112213030192564897785951505277433068535897824639542417604188955825335647985796663252301159665227470925106663846467542662131401236275266529021773193617314891112730236564307891916191187029345276839142427641455239981584068387246516715111337551716310520304980358366906299815634413459574651514507177142374656987907221354888322881678853316086918975041518609558271449332551298165459817396750595970732100190892995690967538538111539762797288164008692308296790075226072627527243442778179937704432727534573515969290108009289084755174966627646155556860202031548984824686845835818488406124546037013418728146312992216410213337130742857630864681808683323361233611357650509935543702550650498004855615903935554304920480017348815080409181546984829391053276119331327933104996674312420771644411371666997683886949757944111825069898473225550317447364799445028659562968114822576262040289788285092642498626243789044436478251289391171732512351610184254066155615150489616819255040267650661761955116274382378124838924872078516092701967938795084594422566772094705786550200877476960409380167663015509764444266242075398230374153393351447208859175823032581397547163031461575313019347893171434348179916048069337186028379419308601738897212577092258627566347992720704383923811952996681991804475648592331464343518623742503078567305505293840616917341974758571789155049503011897797078362358355629122488302907435259417477961982877345142159953589750069569656120945807841929585864207145671770478606864933691604131810194609634214303847860301090046960371887648794841366538761186530339766101619928759503966054796764074605322232013166921306889998363117142464719694312837886098282739855630133473904208395824627112876640585693272681586608571808700981298024030001936228784359722005863108424981037968654362598772820520989023268565868095997971173006187619379757509085361737702484733574412309739417062115851267850536288915497853047505130362423087464693713879604777958031110671705962315864528874295795974476620282293704684669176809508258270127247174913267837906599927140470620042796030321264199703199314422855991067306679107977136243635853937738239096507789530755178525402830335036589966351404518111892469082925125397246903440146823234863417748836775473667172697520125724798271988815017843830314915629773091889094647381937590072896940193233986535720473386689876735764440811115044407081633162245230818386255476625305496573014182021549216187775599981499418795392467228093550793443980453262326492218959568211857118098335558713970727604454625562131135336357818378073967544637298208655410393071331040508186812110986002455483658902628417809369239841700482856490395687946857577225177211325832359876353859898522327178489007198147989919667922579276924855922376739433848617585038605210520068696095771094205041668121840692825895478360648044637440872985845310804525896242208009703970355324342144194018440102749887444761986923070341335130852300895067843334435065610333757317819638474652111663085051348474655401255497653993912561286296840379349303580583373353648266349309064039290174870574693932588446498892288530791960736030517140463391039741715836555629764688510295470451689359282527330169333404150271595231038078056635676415272145115151492789015002948180722577336889011228165375758566363413782132679312148709352502150642295307787857166918418957674412904533641336766919929816280420695235314494137061703985048020049300459754286957703486420436835996617016071830416693983367655820312472768875812052088355656041389513292264904130849156177224326140094476691339116912872001654981433632528003105553796702018739287647913027925590232899725174515656548682276753106471822461763514513020188961374151674400245839308294037825235312647948786754646686577565203002769931902909683069528559423073427230480055234331493326848171873221113078441261826945020652560029454170337282994057261560993752038447537909007164633967437037305536614316272500940696073844844853536711390335779677492277886118107534186237932002209875395447904308121593915934962948584612310995469126521359403526753055555312135646611214143325044072834924165018675287967829869340916117871226974005375088123510090573168768589299690559721580818431463341743954037735252171267138760088784517127273405273532964461524018680959532510928773308638720902027650017475837802380352530379901789326301100348255215894857758030391037094873166955506815379458489828530011296019220287907175155622251106073946398952743670225037631929106050397266135602246177736877616287143855641447289112009119204644940031592401958375458929110979575430126098769977955193065269439512064464238731187678490992588774567178523486170591886837705090312887857859589730569410364671375903675176389828761936090289909265296019099075824416141022041876641765522056223835895032821449830724655344960298612606769660925509834771365614706725813166320689341589845243936551939756680187273525284136102144288533487869632505565579557845548144189304856840773925489295212971661344527006381769461050048252556029275781924165405003592598825297381660056628199187412063319421468421336846785274232169832422770049787111489746896356591335998952705568109103528909051775715392726133973357921264352111248106440647355576572681532638378126574012886426046524745779521515717893018728780912127201367147602592891518053136230845152306168773529548606633213010912499723405112333690612482339148395410952883006406727971534994677252845023759764950932806200487283048462449042493519839996755881410984612421453371627567552433013377217762482277291153842285565543214855631647700210025032246597313404962778021094938193910817701130818438972419026265178643343327846699419335574049812871615396912682122471847063945299456420028674391112391571483049685896207634777436821248436485615575763974227284227177325796957051132212278089597119825278026947044074186006661837925573590229404707818667457958639698560416585450307346908669654778705787202676194455600352894693892694232818882953036209773290428324606858826551624096343290635159777841477995017301706145393462941367687587428183197302333633438232582090483539506886752598167497669150239932880590364941297629538771603928674981055588297379938073943312243819703455834484502613098580543746421319916633882163279641656623650023295184855839845193294315628043884217510036284015490857438106648934397082649610043067789000684960932860116303945362275336150066997150417587256543507870623702469848223466525633826847398263434295443454391856078213075192995836824717601643129880559452073414207584607583495778747033580479490192069894594084901181906890701914828577718665959258674994390734438697048557007284694301713372563516179783267964824412499238167739850756242881083745915010852709746705638583437287523227844580849044185634899816415780897517152119638006627133341108708124054371216115246869008412378324494577223828422460879415087646778841556776399774123826315729163488969106159157701156929082936010091682176792340159562746060382792711883358379637299905009741228824926750679894345378699405664109807413952076411334539232544424722750241905114655499616854037323977591702343291078982603605864385739780701141940545486596967376759321064403419550568361499655514783615037199755355330786320794146224057434514742683812194594089918801718059284611512074935395871629223411971410712356976585865678190408907514492053025731599972958921180759173526409205900094205447048817794478145357420358390737526068546916873161300214434804846254606874693060160975411752645569670533016458681557078565683686852942187242249027563892019213449513940949061315880697731803514384394228570264030418885654267228785697515055293706257965551130343164875112356951781937634717667106130138961884489899534139361258376995799317111581643377635920849085105876749293100952354270976863156799344953078570324988519178516176494974836096004378697229894804887758822819525585737762096698065255191643875347538561986748436024878133951392530319321415692188974405177878191205122219196225248882817997572961904129373258223405922633155315839877189027843308488384212960207334885169500025688720977940434312558429540605535001074801543875669626314101903839466392370231862830675567583037701154605207915736115835876078464998401411773464975566977671264094336177471657818680147677562458989018959749984318968193936851561749596308760263930368313275071620858300643911154944794372981890184441213199141957223052044796812059658085330543495879974078310681348154766129953720860181900812702070643621559364710496260244861457029406249059825264224796303898039596729474675474376016913961686759739676658655890110018747785067758761385739285861125108468573508127918897385219413557779177425048340962557201654938599028522657035867138524308108677371463001742876356298409262465155629215566129275787258823688818905928533254334281218884160066428354653367778755084914312998222124898039431008719654602191257755825721959737604613047474540193734500458784588371011700297115089787762750439097962805628148422270665838498394080149675391474749427033108955457198756146869787721739407227386921237649357276928490704404467901159608833363929013656620289084131259267460011942378285005609421018556351436642956753595195417646994149811480359434979800500278507022982988778147408367667324867348251980225308116549438199078027071387278307693692056144886434184593597415483562597317768507370886353041078254007019650082685776740276503116676835972938767229092988100227332301626054300167278608192659148326718773920995805870230167237250651686531052888988140181454990423859850463588101969684562509957063475849523729942132735692776095855375578929011835207339168535039522908710139468105721957947013768769551730638903935331785751418524838950084051984000606639137012282162445541141146706126848092101387351501589602134199538392612276398790688824521955801984546655927337302335580382018798007129641635746902685131452850147071436043129046171470948060239849549269105513444648381188002669290913440971901858062937074288948449577885380302027067697702661900258118175602205353099028417860471115056751455220339669997920930868098842621475855578874836855359849286536677902041788335156877065208194438472166191251557021752776514388261127556937040106949123569337922597483180737465504089721884955741434426996181635574923320870557979056176507490426029733229835646227767832005177803861227328706806402263756297716424982727443996040935738940942176834032681209006181287315213115311358170615344264143114583617656063197357354850040178968560410452844206687883113523918989871619235679532912568053378430790272645936734789001892986521695546066927093678364508558570153411227294857216927453687832557893356065693320171150835394947092213771840707776112419859953543620538377010497902533519752694520078209519504950026461516475933126919383886695521317535630030106572608080925249615724042891516471160086622513574991232013318848118206784907792693886996513614715267174035324830673173592480329214101798054785285955697774760210745048059646162495487721392029017099779387353386683564552295725388554628269317945224061004178112092410433903640801680620572890848540970637209926305495088198982595892417162417308235263674825728209599232163209387933795029771760863058757463198112044081704403306986465555329421417126898767221643409743733902736692807464966413908079785294053597170208884583235335450823062874168523560622932521322414735393692021686652421875418864140974212273016313939443423032469297188317332953132332862872491655097203850284865029761057648647147812002053479090701570018116849300171318832866204145318476662488002539231990796281652945136784688984128401203908668821739441251949753007376830312485596159366173089026625664264128272395545160591672547132868535666663204100996922788983316973082144501043183924269866494577108578187828183812615801208166384963074969118609543257482940406168225404075446249825057676929638252857338402796094877760390411191579502329946402386930500942971340427622902640969027607754254807178570316416572211108503429393074906611242189631586954232832290784323964481033337027467838457554108593505244127457974669435263699600168314974625118135682058493996042470811329860746667490013556334831796100543328425570265342994987741200650915239226850100800457030759504514981209364123290544730811663789532992750714041475470796312152115842561321009561369533084937279431824110484446355145957736892002237903054242684017881864025504057096844394420728176861846707062546440493837045169839186105064177378075916753033708265547916204774072935699037365012768702909410833883834219180131054719209315772910266793230692342552477374316281895893674398892056158275366838111619244238923405928322057441481017755606938289724320503646320609470082791580543503540457278038212744458905427449350162374028977778731249296413300531334193665597715753162959331864321129961333784948500147784225068339215885589387992640860190142700379942064389742772882479170866706147469106314648669290044925352418033291309202294454670782732425091788969720973693058846604531638945021788414476031992823655828373360439465871351337266027521434314446548699995166691990918585975523029278817433785958437949613789481298420916234198577783190161803177244944200617996324299642565590511842761265799816753362480274392168121629717762953960366137016712423789028495392046903926057867724424186591473441458918405246818278193238506980119405691090345528890109833546322373556537346047736230556775902873002584073832286846815358407293032229744049747453404309337294702095979481566176861876094078729992917701867772600758566562489830761849220884335402833510289653674189475554963666398941862670528076323629206142907885987114909646527046214245435669845379420006240296829224485465643163951155796216830649486146542518242084890608963897980858472293192689513502420815563095603846163065997154905551680812758443667245330165954270225768997713035422575142714870270613925551719902493814356782878489773919910351476388972432307489935021679158168445294393551535926867253069427901487149923314024104498341173421530086563333895151460339454042301769445512798487144026431107996159103582897329983501342106344366062877032245342371828030284163020250989935910046538160104938817735099478496249053648845990532931358229567138453795342261756642386374136598275120234185481661091347500724525400998820589174131662343070240735478898671316365678969198382193485667497415753985345251248616456764004326232865751785086875101952235926879630145015753198997821367731123475308622281238829317004324717420047815095229592083043596783097981888567539120308229094916559665327587645569195295239328103223983394233305013618985900510909379962995974934544424146709823940855584988609933340857424990473466792723458469064263143185095525832957597897401393223326575953576389591548114767910532348323843062745363063927112442846367847908827837292842561608521479271292681109862560144675013544952454113503538952221156276305254517491775195628543645781498156771523402739696964519731432416729009220329345051050588400655106619603137983910531318237086319338482598062683835287109573678948484645106465852143589868567897731019767270575812491108338296904935389650755916490281897434772215258721761224274332225932947312256321182678630511642683571997213564780733733645752392294493762491228498910125692247725298622289855783363273961483412825093201999120155729303662101596214049350088052771991723566938535913305524324157453082116866033048929349244471847566686015888573148380838698720862534752833168521486522201608666235680654112533260834339541653043064641166004957698436703176829665053672632480718249687042562612578537093940202913811231342880535107674787699043116351007266153889492852647806650434526285664392927917603986111497163028510479395253197298522877613691556906180676095263861358754394509214144435446149913170806491677647406342540924427676195739448152334000141230640066602308933617889566805229671918638748840328725655377995174797782903785994533353211452158628614918113761240704268133545620762949417220893218458942266190390545654917375079206092258062311136248727581780042451629727196675406998001476055550364671244088423308858994182627136507198425615828778557466113257280318554488779871805095930419798033436244917971633061530088281713927420422033851740206956117322201707254329775610193132171673119219077222417020906850253060916713111424557619667482541388264154613144395459090882890574809432384788071848681103649238625243382587960194772945657184135895711453491129091577204700958456913387307934539082726571109186881521415076092931436618313071689393438365124780727698533500381172897855521008601636168417076555757283664082457281933885902135894091831408404307957722476664157970010504445393248053884791563846163481905733609650869918465426652636590236494383612475136603980981827242220277392472594247319446206517574703944676880546937257269022645668076037138023339777904219576537976032615427783808066362356238881928035717659063528382025202702435262294439721327371102380581351237124050912346351161161923445113147607222192872061875656601656320334331636475309348061258885124310853536265483037546627174454014851962614539497769028212089407886117083411366347737901847002903507002596802142622503498720151246839686452709344827610529039161520444483287969710458128004206466906542073032448244632943212847853686927428809225091635678447306915200103505814102190166478696182726893786594353613792388382657125827875271537772467613138400758558341047960915222885666149416115525476823305888413246526569823652093002818964986820334752874670777916591560825649190890756883779754409166524558558483431570814024969032003857109889301030590492038296088440488291975923353712118509385986477226602156282538727693447948179352582517954001641246171667074841336574325020996217573019090089288626585501868942043603023867430961518785036786709922158792365487794454060002502250069813056612607282328213145823282106459975455465262497592241100720333288012404024533461450020441944930778607922512642672496387572534255747601362919086111479969354911753756187017678781691666179689272101894886251711384786573308563044061923327224923738521864543661555732065789635636674226828146702828355683738010616563027942382928110496732865638144756168561057409533903318682203275222672485741462809760772491569368217902148688241336322560069046013208204256350376594947990372330405970335110825222975221218644924009703308419003642852447595694780975644332732909714426633081421659733845482922965889992159481291463622895471314285726944498745593089445735349733523691021982837271329960639766359599078685434864793561337038023032598131093337598166365532962565447668856259900741814576508098717647970277673036507883329810626876482544298784764506148582390246713724416532780608250798487601617341267818241797861828365445551965529628395919122189997213167227835724495548613337073696395276097899228944597033697392964216496041781604568401588408896729725094371285406489443379152020133997762204772746055176601268086838999465582432638121000228257936793604194684289683199567183980215182296579633933596454344652264681266809436299966095792790549259862860278547487541545423563108954101383421397953891081578997799015884585357479451769467288792523080642500034435327324251021449794375675780955477395584477670129561998552333540436424414657081532764711031280732170586439846312521804224521658752800582918098377294120043226829638704561058254655220189264965716606328564732074978718930750929747898357713445121142297384555906689059078813370012259302627801876452270603849697207402292359776823924175730770125439734637436197611585444636599793796110147964516481588529159484974153109026128834479828350637858290968239341231434041953231997089214299526591032437992090164650593618655616905769604229573426809065324011880321458083152852023244491978985156615973790704458477106780700261705357260408041168178966205920091889408823286839045174254604114763672316489897788247618960274420025472834594685044305645155021376885798613706978905373687921417974587990611833214053738016214694197604222438020247928012116296272051126009977917047141502434449513282742091791627612613131886621557458769765134345473472018672467132070225067878484323424273229599231136245539701097592642564297807984431084769177110353084950006884722615027150534679913323548827729340332608141905303557945132737850010491091033915954754624208241009507757606947696323150028346858250416338799427108720737067241845980587069761332794950333866700143904056513370957070785322263775638828232671852523809988272392566929740567937675619574228680694498854872797771891558081945972703089481297312398400028255271065225437407758334642546103998177732322392939559274063912944551199314732917179872737338024715073385842677085065410930738021028877991818125996000110040216403652567314602977503715192619311950121627988682035886012187050830516542842534777804134778269140114663794090539357405679079308296938380557624578560761130905623472483573933199369319880869488326484124391220258802297380785621956483992619489147213868130204077760094917579188241310885528688776576837600522069094403944647984428182035944106256050507810196270228563793679859822394606850125653524969087513007196754287493246007587466302532974291583919711974646452913799237196351668941222466823537598784673935526836759656626935152973832234315082365919538593420253263564665772701486708034512052390268854228855983613908744106085794753373395934532585936729355607061930145223601101569240269754339616310710748110650157905192468320811410565195102674827375129505664238257161454301241201489603163389566374004955554496663758734529590819696897437781411560909941349698268414191910487385332070343472506443910271628202726898786959843932881453966721060854750415721954499787663188653794254870848639872461503211648045275481043764149642047540424962664057282312839996091164937764429389829555103427238099929961432975281432843902908607643229250459791358688329708450887731760258765165396009713895193311809201373222504349261108999440090801984454689850289113994911244887080504806163571892005726678379332727091252872028751983669960743314809015744222880849223387191744290455390047518703612621649029162206089693740758351061425575803712489623283731075372958359797278826114010378364255610852825136911012053075168048777713304921889224035943947417616363037194978903913455028131911734266147847704792831071661013319444121295734897821674506202323309035657312018776966561275495641422296189165282940528805972086071121899407869929683708228749374227639034389243319021611543064867565658554607429026841979792312302857872970251574592985886421689262327658602378932983530465847859277388718720022373152169609664524368111868697387807534123564329466234644904997172905390504917672034091876822942196911426062491736723841393264013306461384541644869387033617174277115297508016469728059905453336229572958100520015089297319587683932536928456490293620385198612628703138736185109561729463489797003450592532606873147907643235745142460762194979925637908092481730452555916039336881574661064818194572160279632982053008491397178754496887972338317360778103702803250061339428208928811481315946796665945893231910745056873659209601112230971398539113664533447516837996676686671467428946664593637348715564437138681562639390652154824020429294387158039954807684119855098605626067795865851996166354572668813117841301633273395802710087809692305936561979167967929747983583097941510964050719480057300861717534562023102906498354992036410530536571683344523128126232502599003660345574432124103739608380548889823087574199472433510641072405195271593738890892812025912782390658841127522887160353917967797355640425795056764080996267184497206577187102466614622863044783087284448796112942538077407340783593095510939354558860159915250865905837444495282316457202559611173865871066767025206512655240666528664898288177186900406214584151680592786013796225541842739347452079614974812367577149834917355017784421265455320711331870177356268506287897979990194943393722521535481950955518529587794404388294119272808370044319224557046214786867364622728863220498946871543111759999009266937684615562710072058511671189207753980189814653421431208580664289271650415688699596579983484156121882919962621638924648696280656349548313860201035867177871394337298366334490512669300823645385350306367641194919649094386743282946146092751170705246295791926370756134299103108098948820076286785819499616001497990957991705801668300539747791739416571887679349777464574136881961948663424249093106833584898824833694592152062769609163638810229715879904431035729917980444832579440858499927281689261186973329554774580471487627506976119337909486566621822571513615143856983861397984368680823627584966992948104630904493108884493234762047535573792976841321754166001883996807916228555336037025526190334196871299935821886397235669711213131838931526583765267663845273761870490870633962648313030709491345204843198682837944015110046505772262251381688847494297414201611728782396045959082029354541159624067400990350705809287782942029299332914758495321553709927362195669130842513914961972370228521083547380271421277619541376258895641334788626194424998141800866974001530529534865120551568576379918171420163429405464338362816685139968510815342028286693768268617957162689891845697637256337286722693857725522002844680317833024725753629967110024898565512648112270262667686076716183505313747006535016986227584225858249786741574215407590778202703583205907088145098727397272415205810693374635341636992488281470162184540704912041081325939377844788367948145348026541365459182180905143221301074391524297905579335446605500207198458425692472399873599210848710300476210469629156795023000809598692202902152917432771168429191428353264205381781652755951756223241639193334125279646466515928407492007055498628862259344312875330996220438625089679008754960434872789041797628125400106722480437883152329852115006068961412446490830889660995034551174939678482736782194076967259776793969492964243823477766769602123919276683338773686130458343977324753332041034413347250012224428156207739706429217184421059740106760448941044172490048912636761848926518783755145125287373242664158608710086961202404554456356477806909880605176336666522039956026634396002087738114879123994713330918363707041775818349853255889940019203184979567001786551340816733282719135700024483139387654220088666636991030489669454173339338203877752923816108147569078417107072487019616631576120231987806090728660614297447727279156535397133335452585022753174072659150117459317636180149117730612759610195578183661068602039599149251938656572592642823829968669040437121490193174340135743234576342313513800165223475773290928049964942137946839249211719101113615812865048974151746466990898740160701976800765679695651589475862116000387996407472596212046975497796996215646085568354921371338118348361577512966422793126004561301368412601141715175723154808578049380046468253188176809095816749947746821040707662677742571759925113770030178800659689488239410178991163544868134118876793390550456712097121519068580386523554086673996028806102309160072565736952926182368709548814920565361477878344716361261980199690350217080464364106731222265266667220795945679977414668503101961567178576049282636234301016536546009614010390082037274851955693470683165472073909352337609542934964372149063085050918521549788733885648698024483872044322229545468359926887476269447068812285662849502985851237533391414546207740352159183955293868456236854276781714877008776383682325816810570146998629752134297731820132735266723963134753953057142842338203253392042370688569221184839153729616045238971242212279544288054175485639936273040769131537857441637796920846327319871448596034397281239548075393912340908521900544687841171030628222920403264612471480627789551887893232759156529168983015165557068142143711251508053598981612978897075902106145571868621190841304557497183850725531388046200753354071906152358970981489588912524148786349917529632707269288395948545083968482637814580436413081430111795703076742306329629065343674904654262021522073743778965444607439384947965716539550361198494016891232965519147698429426840400163641886469253474418980366203727361520419504361678639877991792876418030603367996195239016071204744915799037903164138094378330689465090495065769401663109406018347684979335211589063293308811511368491604700567531790947745091767517739384717675594524730383404023930471546098185702616962301795862097829651207006716494304057812133984792303603715544358972033810501446307213565577202384716707598155491763594897546642375513891102009414333959544550733653947462525771950887953295474892973585487845152457185880442017503305538996561243990163035588742967006294378862435319899499621066676783656362824256147510924544235717507864755008898401740280745732071104715866572229028779326597876480962360683754695782533204778857394569808533033815487880232427159264244816258339165503097191889641578559906880998111869336874258505181704851190094643297365796507770636473725592320331485539250047661867305674437287039070684571201292134347229570013964334429503581027355012406513258467413819895130148992056778041352378210618115013794283715579040497513007236402973591099711659043519065966708995662658236152241554022953705757272618619966057637409943620838431878225964830418551979373996976971444119956192350349742138632432656946004906554725889383201410689170967343484469006149061704765772403549280591132464909988951151281981741124648022186939741807218366157060398598782953088898704008718283922081703882377609075360553686509237795410422901705976378621172589389933892387416318461461996546523130066209937108081548247760341597879458318430501987816955576890569562774470717652895224137016054583559356158468881870768275673392742680300015584974077349933228403507772706592930263794442941558941324535145636837197676118382442069769333558561284037838445044775908485765362529132479483651388129139055036715322640009536053265441544528353945182353116048991587713560145936972513839342215689652284139448794358139654280397195877806631794490546070450408306790326578263195222369648121020739769079903728330334495141860205947113310971827645910843591102125883248110538768972898426577890342311192914906071531279568661176294983770621135107887418962148417598587801050481479851495194591456600518900102102423361308031703387142695180327536734632109899761062509760607267861788675360803440979210587943752856234081684853128521987099536565632551372577156093786097212583417124393443862236590999056642642076758369795967094577349315762240170820161227308854924007116665385679340496991579806713689705437255571105876389364854317263417054954792476860288108766327234451679147298942623519026993300289483373147365951890711163403789698571905846015096005953165781973060060651734383254196737249245033697475184307146961320622078669479201363923688981800978082206009907196321708954473960844934273358977949553328048914716005988461882732489447049539930388907450027207576260695311532217166313510524612541910740176023318561708054024689453336322923956142309913898730755174679751145302638540910940983067154295390484239474381584430701918267161039844844868636673814253032480824577311145130659326355286729010653572961393044528537142056428645979893907144200909892216619074643262126750084590459855644073271087089511002740544643731134342599796234669416483779282579908898512922331390375312820674292563067514807389338654548025097112676869633703145202407549991119881248207528453077866184252995978623248322353750892860672839453786052757410714357624145706958894481910129421011990554878821262421942416364554159640207551913032975744725005848312684513045607229427244538149835538048620951394770024028735730125397315836879815270394050622505547576139411156182977916919103127614425892256147752107831450278008510956118913647873266480121712225004300920681863434177527428828944362631472603104231533306123609318423038237158528162654219494540756493251498246795336996632706216301571444402891831894387089006143743429274420617056559156338200832680948079898457071702130794008858206603251312168857941429481133835875101906786793684055348404284611030657832349467903938793117722380955492262446096543797659595061200977694911700284575862693262464038458094794363199882959937062224244755556427873969592663190060558245050825819447558545245775932313798116902986411703569593471492354494630880281956021791748137268983041031097071685331926228448881204769551848122856025518749327028677565553015768602557417759348034032060409103024755484064245957956462817644400698220274919332871692784131461716486668130077567359543691073114794723766723500700244459827125793301198555645631913521915374047775443620141687803181589197103198930064938664551422940824467526314808907196110176858596309006871736552828987460713714395223614254533003359872541059845177802409212690363920033564093996361005176201839314383577816347104413143964574848369444222713461308788481999657333656484781427598738940791456464395350901428749051497034059937556932096226379829653960207422046082693171686019880948596348024674619268927960633463185190917424174690920650881976669668820049184151591446193329074619478129379091798614537068371212845667905589063421413997862444124371432865003117789331866526705591334262175078058641694685094539934711533956297558037823135245315184088593607599045590338637649881424078184635892521994315716142670483153490604080233618525018505118104675728030251660887882087424270340812884443525496343845158399651736836360356568111365162024155234771182594926622340037733600086953421065942641341445676796127492545809868276653844067362146945499595020535822209058047676422195787841252169602682577623982393942660979938526607961213454957175936228487557893582304109500985055667385514597937501648420846626476637379363582968473748455500970041756873125890306745062215359009519378949626121741756410699566787007590499397337200681642725421282193973031601790325626662378226927484083924415565364027574709570005360625394191015673439842434369729857377850991124893964972718503559103827304719424225820888105219745885587119589469543689302261878874757844278431887510546485136091698169034470847377106456498863338201222880361000449114031953364878980021054008195176940206544065247989650866316868747296503283889455080265488034760326472735965096849070216406149047197691413621369081538390361943162344030113143780638941716939469101115887906698757164919378043688487376155803391051696500029700169519488152120765547459490966523836569610075749152169523408034053134278329327015835101363527588031090115190367651806003251455183477932273215040074761136350073313775200184134190220415421858760054137173060027631082410662251052876485558526661083211807981279462090872621581345273230405915122900525868958764317373772800263552508206456072530142355860560026672007893248276251999277307358815927390367441071412461558248966244504772566360765245858881136230787221095882983509278806334557679913511494146060474930392757346300015426967115383468719652350142942985155290093801531841997921856943848999346384408977093725442039065161336488039001159935482144454667544596199238461025252417282866314545438315634210570182713212487355653953460805147368408872074561438327147952045181975268596917447850416527205892416625950078044546176078977733088623640885771516567180583293712549774248184728902738955861463929676579564330767403044890004852560748520367244908645119447375138190353746995700168162238200292107684735419663591923111475244771173700812283506444668483426564908995090723774312608967537157768009794576739407450350439474075627671011586194110017562997894553019449537826490987662105539731213171253981968772149537475775952608191124899376504499972873518124689609098754907693354930673277461975658783847879735585588594510028689281258446487565422806095955061378147249272733653804897240749765239615155491145466118299214176082010383487537018611094812718607674422567373629281901494007714833618457560509400290465606166428400585391406218546633443193419801754676588404685763423434768797090056759062958332022832294517650166106492447455159073823560081573538471110166944401270971002370860150373882967481623672151539257415726255947720668463042281867906529293513552703038441212179198213908074412486181880819118986058273205510657077737602041340069575036953462332588115094327502701442412915955975040614692238110202078348964402783858701409901038711758127177611453546323028055253004815935081806346242620209257970502320987998247732967283028958646335337577633488655987528155628612600818723785725278415994605732027936997065626740479216741707659017481261268044131975544045489078224915727869877256103509603542370955435266089201530777864445134401907115974001431887354882160009743930199454765062725830694222191951029734939042561968676496944366400792619079986569388787779488405486009074083578116835701937799715268867060473390916577348421363499321631219652116477452263342301216629943593527545957057278133188169024415595617025974413884452413919610711788487838770833907292810906855784943585666777260156073148732683297908968350479154541216723310076501969184632627760784588531519993656676668622349066744711271985100309305452890199545324532404086447677375001780801249605840948628707661020268329010132887104532095342389342205410357911210822416084340876964856806476117228799143509147525561225308021571622553699827255906231771724711840814257765882286307318564910768972483431162045631177992457953751602073471203177230305664398154351316393110122346753105622283929402597338650656451581700450217344264289496854187176283854426107670673403709811590084409009572423317119107451050212409574489981404610658733927233531709926225228998148495506708831779101133591397030749712260046159098877421854878148907187811466559409229273796072332292816381073653246600397331288567297674361047381512177809812737925639151025242867667075569475645229146741115374903213841177017673233107667287868538138921918573290139899428596030825060936323318916025903678275038810767057385191695414065459374502222039385465081242512637113711718213433784140657602855906976146756820899208920453070718394781926466688851285423587064240123054176983947186909178237262592496203842808139445445204519432076557328398412054788595802726506059000576991707995060077295959022452940640912675217939934343595095279823256459152595084553806044636737074880656819890838046107929711042964058781435660238742313892171249862672289959856460817524746334427256270518622224072743036060559960356400933422509345670607500301376640555731221874485596381607944241404406089660575326131628805020086292680475553013550297472198427927525197011577790254072512029039983097422759487280848292016760272797881855469542893932121852726857347424821893533291528077566108152518651859125844450856552016177432982827901558908164846067493255380640519925977031769531009066908286018636827570577093987594559948220596092696875428188570674405963113623979754295943790656260119914474908788992230935279625818440312301404317541338209306055566544240055466739853916257364112196922075182789109060178488891574132229201491823447542042441641630993536233950246287699038442879722706125310323099927603921117848226028580664403829109572001775396136554748975624945345963112221257557206122789048236968345323586413763816576252388655456456127787622246023683027839831137886289294356620044714637821947622754609709144408285852402562744906095572927423857547348202273920646961672488915821718182507324490792211082644326422069716007072133895926123471765676306664638929673306056813191205218723056443582400000648306546359320406679619673490114873226963866187372458550229083821287245624872322816713628487058245211660112732649893479340448374582650560841713396978282498878117182280915167790574435253129076822577310467193666471130449591914017418213753699988655774122608299848521977725740253857666862872957831951749352762705072850037168265812141344520812084390065589477819412155042356845800277123028072101618312376760403148710677804791586997786519619602684463685775970515789941895526843865927888872309768237653319332892974222346498646887044149649569896645656747564850659262423620552629099393260318759341806988841820063703476836649494283817735660295205233030252898792235424809389221878037612189962617445084519501843922185658211387978630717749719112687085689475989160366076868395954429955339659586644052782123476470567922742074361755182838130794539366011188960551444280289790898361134536059929991889598901788157224028247675347691033847633273320755388395981264568361189893633272282357054026730971885979465965776463063991500984916667505456803440783309157686532355761353738095289508666611515441013605907390087903060108200048919588727029655930024411148816172103158015743685766708070727360839210330190369409919029817156642332073356799841127775685588285020112777465307910695754901693353628895526107539467632535088458511447105028167009850814229606523380308822295781529689201071518868227555878633138113715102645969136119583619434668697862912225403826739610552757965142416967971567684372977818545286914188828595700832981828648127120738690265002726176380380172069654955846417684249905587755265178267534895642942924141725530899278611417470932863382052457577701261005820535407789599996015066928140196509924034427316698256793943686014608095034835757138226714385178531464046659867719686984037009998057519851690506519534706935389596728877179955683070798316739226371153362672853362143404310464890276186186328497266204921643307872257709747261601406105817551339342164935309491172733450638770059665864185538858041573698583230200151413951966607221122826188060003430820365085133813494212223815970544428159092479985737338326022751698176803126615637026647095160466792051195667765542848863759484172641736754317106993986726137947895693165307598250661502186969299601769866106234973845611741777200453673275355032764004267437839228126318248191197966603776583845834176198428715767258117189095872283466856279214424872922772425383071373422408244991469135731896620823882391939438001927126226085386909727678706474120615114214056376052386941962022989401214968309263316406833400786110530665828777861643250851767594068886054451968786091917487945660642805910125042530978448285576161558871022691253986814611155288285666860087170327278218962147307214062067611113171663954420154245916721980280214217472049366420822504205393284742386789872779264322856974828089839072463212243033284376561949356369998621353244621038039800212196736077643115965127742238029871267246007686058301826521899709481288478371705914528969870273771677668872919588888402736730691109426196754167322801274345198775958151937878118373847383154208889629189255982388986478203571816918965662752692652840571359967255038064026877728620477602287327673649517270373110844251874957965493990450049730328733117147963201574036330546851943666465376043363736564764074300006951414704389284577757725099067580159489947841135273653983791863985107959768466954370357487740944339458717778250179307054760433860787361554140092366879300815315652761380592046137882173524891576947252798377408895787040040784729415244948908492837337684529844405918424991589170695633949866802552562261589739487517377007710194276788748228565447717049035483272147069074814110241236605645429929900194045374793283710003297544494677886613877275215931337711856331592584412781703843742592521988462967340006028210449664051481529201836996927209567073164544856550246874061421619583925746005071103084381249439732380961083739340126297569136059734507326026463063577356446109134864343124865832998352628085700777893273733346594481601416715111432420069322742703603779615110495290878134169508789590483869172932441043117647078164143580528562700333940605933647619228570594922117351843349292479513749660167995827960824613808878258574733198399637373956949896498489104480522728533120765867425090581034694208994192292436111444321373975036743594617081704822046170147218431338301010879846128011178807967793147860433441687360131822797599196534661616895673336965729242634696291385012336105555953336911507610534231735163315268923840515721022891690218063205245219161724469500834766140135635591460734013703762042879792236972756619926773318599389185171534694814187001029292225355943854927095538232434354479786742044866193127854039461727206291590939950611753435568624679730829675580804632577404844831862521505591748695236037462012860075163215016703183132191078101717078598512366712562963667365659108907159143548135725808468623863368931069001731188850941930805975941803545837380542404951671934582363208249716985215761889398310146074273630249980071468968741212814845744080641166859748386654740478631772354326386321999185878686599881749053634149669906575608418234224980995071920680188237784629664143429751899535900700890771099847613353520896437608465567678019272948805344484479990928827958585296520309947854312474071539500296805457603001504630028684471587058510459134228052322042587281408485166060086485703305016296696552544582796790464206069270047950811689695092627827496205674986435188463469432182398450455418926749153706819508282547154989693457581635184552887383505108701345562392354609099605148332233474834643881493617254703705978033014214072361602326344205532799609091139626005247265059110222334748023123194762706142841986210777706025282065950557980635575086591296597371706510833042823525221567242067462621865358728233293332385527396843201478299827422921381901241839062609414607300497271212445626981113414290590466398552530443097395299237065931392185005802810831301017370270086186839658948648430241176343881561650867726825317794569203902369820553694261604414443088221859389586990097675543427581199450227256074959514925508505838847592756827243526138414089391342373515381005630079769958131146749547043157871547979447679580701072829850172920305862318595225537124620392920588920618371165531773613131543839600775379504419318513513196842660407129147263748707032083695233869865811236019443178510558371254605701069654980064569391915723072198371814494118917232006322069283397871970815433161769945519422926611763001146024662135603750785416173820620868165449734316384122873092986973787130996695320566123758824453036443848614102904937977338307624025115718143598245292243125572826162686198925926852260579308638250630353283061063769827825015110031126549827687805293555339380405895823242097186534212578336614596601538370391975768592833061263731387934674312889864602771172463479601133376984991291588305460085528221519483399208284873339622607955113685881598748575504221192972863676064574969178676606138021857480472989854305544582427326221709485193337247535786055682857772498580996205156962813411111422771745777762345675859199712658106642444969311763126533700396178700028221058776915842939666540778460722420418429226556916020656421127719766721193005058471729569982701480209249805167412643404468867611515501946893613109510053018482926900117298250506118886744113076914229269660815355922893614265632154013295249043257198326283561756996198328869690541184391994593495671880069377784227116490985420252325144547846683268398480037750277388542773466082104486002934902884116292058136573542444406099871820633333978235202788063491098606038484695030256623454706118672186513728568123623652835584686105895912987124078949261170842891578237418451915343146092457968775193835407723131910238468601302706495358295005425103317264029580206826586586266889406887079292799656101940123692120278526084851714182248507874688035546040359388269286782539611515691275134233279460094630384963002381873968744090374256658046803234031947606272468100000033131003142032709070121499089362251691286178575316550515163589739768000911260573639042614087867919669485503403372551288015021505419000157657710326636736091586588734083697434328306079938751841570785515188753505219779746526858939893954160230767236012534046595847561916094958423552483658257177837888559556382033419077549610874148880672862056863376520917033213693104398901292866093373352829542874036611098579826059973377332229382829234857045571768145016308113568712751718346824829041473529845565932836357099864285013982234948182599595384619507114170768943025013240896952022016872403821646406324120179576936902070165616126564427003069180416626752381316528485499306142164607523488783236286992341823328997459571940311765838624378346732291642982552321375709226064399761099456070201984065036695244550539833531488197406241769303192071831816298076190186220167130450305758262930687697089924046965838716462542390418537182871520252403120986160867992147530202133412506093601024187286727119400691288466375028707672633312144323903483789004120813561072156607984963080867064092367885423718325167657837539181580668126861996167279136126747334000132928433378865202993751184143047006500359963188849945305198373029252409449508216900382048450258573335427472027515914208213373906533565088711306532572314132251697054276965023348657654867085634488547141836030928169210072649133336597742487790770812123971215409785056665665754133017578126362556767696494377021068585274221447381856814739586425915876997196130337589942353469729693506115831601335303103878462435304722239985331090378224015542497724255622246284348427380647813817912317618283063748277637977423802353306279094524104473337440857207006824171344459408483137144684584291112281218087377988998700320477233064410492119053253560396422306421743319165241058919328504043167365545054246485049127940800829569617655451160107124557414202163924786428660935402349558853646371073473073755377698863751773735262288847497155079230487454812860205847830511926412988704117094177655141094355687054353327180770848040167117168891096600500972673368083248109503753536842969519825632615638349125929555039776676884821178239624809462131789882465278984175822105579538770351095938416909372910584724893927884596160554839222874834245660839671024368617408539555311004065689450384435747111770995321861214582473933497718984580427993942068915481178094965576372905107410418406786032449941569420872490821361041438916283539073722521007399129381079636830751629685167024741363744500330486635442146906202813082998376165460871770750390603742725820981244715999683536474104242928287056723459423256928874372326880310529799153304079675927443225658366260100779295249630856624464812113753336070860704623943181974134365346997887186663898595218497385928246394644536129573935517222927113027305924824066089890135544475359437489540569116967973768833515723817374232319419774890159965080629046857386517875228597906894310351535927308830256780583948279478383343169610207288650871300343792019258926196129398895883449965971930023772571499169269514955216393210996150043266139290554521269950825018503278035087403343459335160379173857302644367512680847855463151593833171472808596562998615123597351922319867830035177276452393266959268174880721414194507049005842490275446911172578968908898956985097586188009821509303768659097371472774870643294571026725851582182355219285175585213269444804278316443818207111258723440772333628448171407194703247282143721340590711083385593214635699694421382814355112924629673238768642026223467810079292268451600661226541862538417035156141897745176500024827454166856585896243224745408616643447216798837386512004180242587450060735715259080743202318642627020343677563151910460561368214928784489095059025092862456470854896722143138951574742158700849004567729488356832590718614131624352689114583729589026966876521518095160229480732527613412356824256469130641912643376930544566364209334743147853140408588545432084224921737677778351230138638113484251646028789453404817144478927614256379135808073072103459989750994061680983032076782914803267195948468327505428045821781337796082619055298013200151318462082224782130238575510103199185796973549602812806559375400268463798772732269410761463523152154222213392513562460527222833548325471201026772770096869980550042490339020680396914378916798364484315250720845501944712132586921395657814235724822965599746026034566376071060187033729554786570590280043773495139168296066038231056744550179714450531607380371021347581927432146966375436879721946208333263617596708868953316821201545865721048656786294612892344438000433438280097148907748358913178400913787655368776379630054986209248492409012558284105493173136959901583785543464730127842655279005626000499398365384623529649578170040564904487163973308679046550726065551366054188602712906366111854165295057549179853578923193092628473991672778119046798335965150150200572686299168265395210842256873393082708514032456179613734719813842966800331527311223602848049292184211385249254502061097277334500237136749371858657125964390252248687025424037863458586146960589317178750825609701971502021417682575672168640922545112763813779007225663773613860860538478268144373496981493781870553392682830744966370220708272746495896600999052893469413687597935638566824055550592875650663473524164976424969127312903544180680599746325138262426823525751172239305540053717165469881534492929059733782639513529045623803358901150017183720461478259220349517964264041233989496428701016568094770004640659297144199750778861849465689377200437700808287422939052642508096392157719284029666683342020980662676922365524612606089524414381092295715872517802047420341400431145262855994556509639970082805954054160033127860180928275357853349587739136285752926634739507367190912412121152735030523257655449904836319797827380653076567560299850172566815573977441714453103321639177416976903215042536041020879066367004598209243762250735677102435842132827135708499058645270187250590052684457490107772343138417381764731880587519065463543154497825626804215125476661973628921932810854672182871377664696640240486359231006276425404201767626297851471940284541597032545662876972512584489856627056910048285247927833762679600611340743369456180959559940081704954480543537923308470906742348937479179814917566304985959456363209810849258691299992525636551119501035278129775304477075007038962717367144759181935013556994750747753289302252262602797185143311211432003202587923826462977379261178905044024848538230070419763017065892660075083940024397753717486887236433935453864089907784266760027111363272701421898962349341364619759835782135111928526665636553201459628377722536566647576073647156456634221812434945021524236822664680514454912520316723437350479156134366108842401315659605392184140489023501188913955803776889872325668932343581988949479179387012486394832441533679806482016122469174798504803722848918936367221287664828542384675861272762961928127452485720360002530527071513235114693651319739669165212468576632737108087740469537337158670539457981097371626732122832590480083107801327437363181833733927083665645661491404922751527287699444283287468746796475386920392549880510311785535230487480356986828831217593418823205371447535863600105732449954182620767473134097082457859259819949791028100820105717574295407797902652344594983831002746827638926637358101242094009603951883851638688996647129377855263213031072240485944353225581201893849996638576277470855975569134644318447820402465036761001401827880719956362292876082010587889128533788429410923100066786560430570592956438896131386083910314700432733784004204601391806766859783291945724529376894807167663926542288709727946677480251141368093005134017685094690406478705798167234946500254903812161558180340258505896202139091028628541255214696060566276274419552249600571592128992106239237104499344640912608831276705358350221155511317058550536870829604471954613947571144620126746073331971952753108295892120779153687571554239023146095676221532099532410926170360659167045588709198086674125708166467078848243363382800065408523582648790942861107306316706164907042858830313902494750899508971569500449434082978782316650702011014582163928331535935098192888431116006732950126747774098099472036410933439877026702072238721138395568410964554070676004818150718851490159867966330486510825974137755638986432172945190067671723876336331983730167222368424433617387036986010581970750958791830419157858410386662880730398692100267963560218172726504187642424310162978726160467691770955176999494051508973869444488179809156702378065990149113583281332889801721655550095176493307326538975147569542146309633311666678363877918840761961127665083669141489121007353357186550967981724539025897131559598789542451684527834681616536195679072725475454801607558215442978300323885850179909590990414647832660425587355301106699096089838013403789601919908286427460606617233058307744726419708028364972851614913431521096467614214291025333426261069531413895189925090095906744481888559967622339349233555418646583205081418432901144785295942890965296791293460230378991910122769618972516857108524187782806062738551016254707641909015603563951975879907994850655207670301695515186655977299412521106680258150253043255426345826730639392685954351638703305375326156615182600913921198422585997938964116395343695251237925488489228939887093865599898797829195747801989811595967780323922292772227066885276919605702397559283841022592970109271324627541864707242357410388860834894675807340570276013428494632786822519043103015582794234526448792865932712348635390015809179886658504994406526467137874922485888278183228387663628039753757317780449541415026917351542997804913947488436774484685739256635396042196833845111164921441595754159606606581575210052428944326322055607039515132873144044910161936369705439579439832292205969403228991538894324525774145871598461665597433628936932286562429986812183229876396720491485588740185029036715175465766648555433901376225518113584835561729848492225220722584815322728496195784160404506112155160893339395473925677798121134647475878263168481787236579411913041673587666912672863984850005497024173177692028873667777662303486733031871784435444014289314150982498025282295807342812604573215969159994976896025602337652643223484256910056082271527159767920448938693654604325113377134620799656531012214623370342593078251268213812813369936114558715932051385432176427635216345352660962480655179998345446850509449893903298531894946054063961970971988057178904511398994756638892435771285584436473520681611792561922043957266317498265043809083338298221039548863833537257934869621679810295724992340752005024911623075388521094252759554881390478213405684236465837150436164484321547977590086793003787146856127692778441804194408339120839982374604948992336175166987528259294477312023033354004476172206270634284847668532325332476814175235078700214577405368122471317126855077801415039893961648924781770191642285118148030850517943421034169877025864186366742105669554605974866540657581142699907750860074484823006811749952223758518746392813879717597099625458611540775247610381479213343435089264893570214651736539178563392740825325657179475283067848372056618120389230534565411332119794266712554907180629771098935619605319855782322999929612904670776055556407117800641385768331415379479361209017039618275053835411425558573082863933081325186023572130441112633166699332903071169000900708513590224074588955832380238252844056064991796514150007798108208636416929795154794582369693847524110469754131581092659586351384284078554689469216599732544999021925894448798045776392773383010916543555179391626550150480686487418241795873780474362284301874466594419188215580348052820355222678739091103962915469844628109858578618800605295953644906396336262870612651507688938465176568028857094999125044288231784921639579860964871900573508657356770634200085672862099441263806675407227793747977736013489120467869506080131428657797217273996633070653285651655097439072826975874883443673284157138904714223890717733887050589535159059313072649610932602753698551116738481993071959018746346954252294957313947109372821521560691427564565155468298728825422073143778907248198279229372092739590945998761384697265294202502340787752514610541980615908638632554228588969820514557231673294816924269106045804266897055043774724427311030919368345899859235764375608605361583423404190248419670211908627441670800264805072569602781465667774526693410042954858858724570388608872481020112417670373297665780619558832623521077131442009527430330304102779821930803045048658425596581871830598564079275067502614677530707935141123308380243759089378846830539729215686695997893765921609315742531639891541317952486452564177504500590864208209599652299232877832545232074133023975421844876791217559092205082181405771664328018182652750466837568778810042461385524944277171720628369231122192297659714409449281057224575155574150057809266868067016852760672375454051263323729551426813620677789585164394433504898808331768366974172796317908341736059482006665320806376360409402701189743142819863850336858523098427866389667684497537556848897234624660066447128662783879374930033971874329001801895132058862703729633486637001542839650841823933064616509516790876300571277121595339458332013789952883659296498585499863215981404113365662829904114296322668414455060304791550018007754273564001172939408063923054263220980893366896672163367155900778946251813127497203706075675783790953319407814595862199874178487011987282014235263270461235786002819705429309713393327031928576401819277646552466067633466088405115377701582556503863755216648845039392155138243372416244266578445587944783436123336893502697085180389549016357104815734962374909686018621540521104272312362553071747873861061839360583619858815731279621309077580028179792851192917579658008621183066208222723375892484200583965643704805548099614587448859376274015090092075238395568925207690024377669962677586489178862517402889074496251540642485638968971887330020492477018635568176178031867620252282489023033285713524306339019586245113327758982502721512122220985185973770280192477616849172364892599907953098710747204725905985462403005623893753843157791037269761230658167751744520477221973156294497029280896208352879345214870602658099696207259327117042404225173079788068387496322945780516637786860823211074208082872609978322131701594976401994241862063557578254096151237609809922976517363062601302877310074649929693804296812197783758936151182985354179192499719044873931243836192748203466807308827422059595628463344949544964307035259049825856009086486884434162864393917268254730886479404658027443391062986962927434878085491323530264288245464954157286578780845572411375750577794956436836122824538919806959070921279165508377346791915460616532031706702535642375438125810729857538655391668590000751238726974475262471127746489087865937851768720410725083200532586152134990979079386672282217138297777686505062545299108271644081452236552534620499957530952340362525127634022862657911183910012766935496935152057986115348607273320584666004765326415451388334711016377703235437688693768395539985358157069616222156871159309423659813326342385288563164953397927604180000570329602526180219332296744767703311067022380864170261554682368749632277828707671659512537644226795573428475246714282977895378110370457778686926090627242596419890423615942430790534192450719887348364204980236213209023855700346577201947759335387801470745398748999045397914344313949924867084928714705853188625762581330259969885977753824362831434975700309435655590696875986739381524621682063975991899987099728569543685789985462950715673427999738670768145640019757191066972248752193713244088289392600855817605177180843205829575029919691219545627544296818955458267538752623688857267097281267522468920804423673534391463008913243463214732140630876402950657527345426820187087700872571082331973627096750532359725488004384502234119535565627320904243517494107946805030635595573031262395016696878159390052235704983999921175871639091777836447796636905366117880530459776572673828358414898882417639007956734138024170106324988664654217975240038806838141486423784993051966687055944142978032232968109565366884660323665198234542724487640766478996276029750933673907464726654056287013684934207509901315901760046345268901826281707968116919000957919158068308175625137615937880774468532999787823822369370366920874376387516249857105637296253750580608921168031186190987271595729107364951737180031680424293442265959524575436608029835993124990168876688670164907943563931316837354305244666980028282589159221525049341975984640470379692732669427331644123257957329641065023422240197965428385574207870183125859555875523223476525623439994221301747847166531394231763242736180274398608516086433620967466519947563094663506809656953543764092746178252876985751995699965158768624454198947918864275098978906515664637567580758457086477678163246701734577316594300189611776750614943758313407467013429503753289634391476011464134344501333378412063215150680282238475179003947275067339357133762843968996926713833455200263041188562058233957980634014974467525374279568862935897665850320348236215642957099282276706451840857230470041762269757786244741891209619409561660110097053683571348614144621799883105026629598667421595308051952181212442734639811716350076019272517048095725847626626222675513703069385163027554184342833326219645912194567140727512330029046630632234573790101948555416032533725852305170351639555197551162850493689987154093525935512411836101522321595772769675228467423213164302800311425630147693514050565497841907210344290221709757628217649640943535873376714035272913653290914507454970470489754769845877362866128775729553387192961505355807445800482348925318712439674379912302088228898250555444924780171996620022661934531009490353878457028108205861677708442040929622083110257258462114966203899028686849337738437941331907464851857332885893598044633977126982316476301874533923286294081721583051409450944055878272079178892708088986954675339231140050730806382382802281633986656900019202598715136572965243342455651161784992346233489832433208020823750212921292105555084066248997798602733733140089552341755315222936682368132516910324141838956251215939012752269282997683109965634428894548593625122346669233450166417994057332951802634804627790435788527474594815436779881057433005126672859475904418730144000783082446503440297943663380198508395236925486628975309901575184481556166716700893831418692827718670565572881900875054975167282642798246991935878847747558559016264930836939033420744667198000431136856324660007418881863950706959203840197684742559143062176011443754739766027052377781983137760604627389605897494466231268133248290659287792394333092521160130468043358784328560354869538099678000100988313518744992073419228708761756597989817989638764657583523199374459595394712650087190693586694538913863435864827245726238565917456910418689640117495401166467055924007517483946634788309699909313317018414789959938161295612898924509184367588339250943975038228949700208111863466731865658777706409179079655556713943084598190565400188480588480879118696912819588238473150298572882317707014925581044901432906013672475365198411199505422796497975884293182343284941259802128725404781493341882448135172191800239022401852345610035109066240274842080503722262627658200397857385651511192942031862113823863309040544408655765689667440560823109404927883724109470007187648720885385486019732946528024159911234288943537306886088305290443552912506354135874280222668806479165171175516340951439111765110588777672661552944770861892114057105608054092809170552531422894562985752724004069291967764701512516516627171412821872617499058747313316541999842762321965589164294493192633724357780254504003071434723286030826622224522241068076288832926303841812358409918248012539628301543770011811927504163788854894231716761536220767124782030372500762867976676939069312342172909100961956675509227986651836492571818196215946279348048991742423403452394908629829854740248951918782650653641630009237590254770821874465190367304499588923111352598000648220581246752629388949186096526484719373168949874829792088346885419938881275896501064324497833886928788914160993106049214612973906780749138299480355260779398192786007138121220829186257035534613564592158296160092417402346965911908007724155950296249708947949597373200237802474354654878675012124785950079155922244645937524169399166519655901896780280224289243414171169310332540936311716071751822010709209268985091515563352047782097551331953457744727164528386793957540554466383035744584374543357970521276359697331799097243627138452548847832686182688728715159905484899901173283240575698798986917528870040618288226335575296388245376255191512026222869615020376851500430965899749407029423624621059991125580469715774021660670536174514476363811601307860076048779540674599464040513576104359574732498514259584337704071857928760071984060582580260670336048531549282412807107492980496889182815865722132096827026538707701900987743952362211728291508741962699173943617900037557677608244323590252156121157501220959581404884699619497249867598006938769667782991519552081330536455307913775839108205855460851350596255125997291279777036210305201815233696915949269424987284256715949183674521187143383880489222817357250546075128734416880760498178616272983800389917438445714116979209805301880459908742767018957098951313907891320477780610309666962955142061296708193429618103908951830807768147880493939623653725000138445225239629848980362901202401007343554804160948342277196142874960146846166997455048411048855209177825509659966420664760627292000536890741753463508266002066758415909498496668215340125729924093366418126732442376199895703736593561483174775711308392152137518376936873646052579206463424381567830277277298531701262912121098770872694020352936311721338607571398528160128782184033197611584903497977901962723799779684867985474901087114430562942135903006473752958615372346127716288973124253007802000846104707016997490948182144716695201472336553441593248183438761803970695175925820040806064848768517533815110232110773759004443783850696512302999157727367389312439966963402858617728935170204445867453534098292837223553866742496035458283059923079066948121347919963134584089333334744421893215792630031340544120754425067851508172810822337172471948220498921909128811790933071433772321885846632939296248425050120720030146505852191715015264520628847232194398070277927079175881522968327737076883121423112907541768942043784932966340236384790407976205717282884431093333571587488073919519682966042580438954125862940949349649475345453218578287096668141949462912409757842520114945032162793654952069576878459389337212286612449795847811881256001962353676590354211590498519024807269613697732872165203999929482623683427860390785759491019167308270080545616349195717373358581266554114683102098749256116148598896644485275945587897153946739935316506135900903303507282723168562437646208499546586847373060803124773767085845945190931138726746436585416507885433631251219360261251631492355442119383583679353436536499028213525394686953465599026839976418337539301206590880890611769241508872039131061849128892836910315647867810958866432332622051158340669837982061399746770870080207500254839623589006550357422567442992409037344092714902937548716616669760412487234242550347822903480471516369471180953167917503117076594224375768369001943014374707126692608879943486273161246319262474057537376866033937724000872348342427861618914012869805347760067273429138336781929367401803646963412835027729717606485659059340120385338188890583876033994837383486354373438619155022475146454789177056853317005146790660060419602629165909626808123561819420060869903550503389100841571012447405804680641727742730970201682486690467155116623965203314380821632027426349917188223520216053926508948889822766897370300849910099474984708539134689981964421972144222805531402422633690765063224587353582193032214356297052180487018871101344519226429026550988777077102575108667238908451376427747267537304784260927161091459515851529831552034530378638479404285174404542011942046625778593848740890167313479165210387920599385603586400668525497241386330333695067438144589474157086119308760361044323807774830693635863491974168352456711297286664059552142253903326209702395632068282259927595455361838603122233682298967560477776009615703635118810961631419242414278217158912542448659428495861764304442399507891710652764627527441336969080751500906187395327732678557116072551582826169338652014136878615911440508523614717429415722899922172637839503831110985693050887187808225403860469833788972244788329003846748005844819512686226609600382974060471289191535251803135035410465543847802082567414701934099439484298897943331101316445703004836106082347826110652348128389956260802108819720129761354745134992076824795308448871293088690916944692176209605498449325163903100535661922741105238130343188738800816698348240780142767072752078771582079984542112945031311500087034748280709100665653748578422870615453212917872390736698269728981345516915639129284707943356757197285689710282270612205713170614122688532357178525835166383063228555176396982827139940585605894092891932977928654132590455913406447259396329626955245585306386148298489170123264906809706007674989279677089907066452291404032870712607071528568854681167475864940972511992457097215423979763533223655580698430944482108853922192066582842325623759047391121903094645166018780828162909571526851477341965671099977328782551024810471868801726265664387167352717648379141348040349822539372148895582813036926148493391797696921161671103109170501285856184233337349403643323715178259881482858142968071046978767962388410574765486280884386275575935306367444637614462600361978126234830074321880390146239619090264789403101827560656295104058797692208686007583039150577897237613940665861386765247868002270909369615273465004134588240748663547294185558805104887276950545762107946149599340773030476032842420239367486945683404049859627628627004439705928237834369076978834379393301262738679118589957208575512325285585400865558134513495927817970650519047017991606774063566776035468619775845389934051594346797324765925532851338491755093555119227397900897347502340301101195350923998507123956011743379757194840652340939721821212861190129951503640114684631294222559712674873335223612677714005352186648460559075290445356862361679647586011888142015337165642004161518532874618026168030895179531272193129667280506679622070116271192218183260686205842047873976686385274631655015217696291119312505933106807767392760787338712209996892609799886618780699940637019058510769600116944971895478207595945667662484320720876516526417307109476355828620918792784876368334509501063825765460888085002785167506760028401792452060534072689554450722758096282581675970471906662893193898395149019654236540484796549660442538271977493466756454169463311640134016296848402774163192038471671563338623670174038006489003505164282260944970942047247405896139030258804347700485110146026931583116997457896868983151962374434379918818045457169378791653020377188446606425693351380184636800221148839312070497735924613638224127269133530164100221203128396117289235943009390003355618652835010798734152573932944147312583598227078941215184119546603201984989716947893694633982201833745915194222423559291777566396284929346597760393342535201613706317123335052298648991473488869129076398772158862893619866170911155783736146585542289854533787212762625916086379780943846574717344727423756948582212607374534747223305313596119833437813401708117816915824004501089652515427186457030941034727437346383249301311431629193948897652363645531033869305812917257091403877905762410825970172686288128721811107838496831948386829981160851991349511727332569687167950400099089105841660154274104152287882125180417954369417318225556212580376769197856719946924278479318218798917534891483583485444084452191160815789063313415589826583110504023513282655386407927694525656797522407699874238602610896246446528078500588041737894040973914704148777911958940899528605372394997395606984474179564865454688311727176187000171009100095530180004174104126443094844401433516583573667450706705513311039581158532070574309791207334189351973408571573315855085574972945567094153197799641357027249286875529604375042288500760110195829184759786959875491276908040809978365581577628609748467410147552190393508840051272304718710276436190845366083335435156490126433703492301391513968430849297866725308543783952226734863874903521397524925342932031227343821760075024288784501388404727625614923707338405253746638737730428392544314887270674459943905199985781121348592251601064029043889963584580054620962805460040846610069034721131159638392273495707948244618297647735625096154890885549441757665671570050803803644341630839094961086025938217669149804956596822370019045252524281269704034889114486265472576450246944264632712610545592701851057517257704426956736353375331406162542325603986566048851807642800379297016610661810908416142489813692512280642261148884253580407426595711999399773246504495969581043206705980548823416020610663372698354802966101096573082742893442679957071341594095599656355102285978478823560423687466770598524109133599216867533786117028400686400262660105252230380667315723273804452748292043352487860319358095046895251059107057925237104883965744827971764181805413897260284850910550193559415894903003432493533267996135295596390241965159505282788572481956909443436251071150257830781489418328093853426976634295845778816372449722319069929774777856159385455733890098031312513960951076099954904812831908390241472269585829096529511137635988290823509654357716903019366336051962283105694104102019274355869280961477383228350217718937159402541128514373986489511765801365055381242804819631792478197342500307760849275866895064713907898654621513697295736263330076475019207938150887775527696375800880177897691510875717900964789465116936117378454372539542869925936168179783679783357755851291313389234960953343216822373852034777351572701234264770677626932726998112137766075221004121393977818950167981539784915055029328951685924383869227784037381663621575760661564513904239774758284239233335314600806741549373429070367052404136257253600028780514999508878878521419928475583633579705581362769373944456306031178394198142490374280410154902750151951563969677885607182077719333958910336617771529352324301436084644670118632356682343610661310612503941675077124762562115166849735398087589754103564539877594532283894443669432836522217131637712406318043745237271909368405906466578526123082849293993989704062709754333556082342719716287665188952114139464383094917611485857233961346697660536501610234373717645914978798181924277528863545180836916756623017252878325324182957884146289218400256007650109777532118919837909520248649228585250089951891867926866681220868816253101005886921415885726930741576142847609348079280479474333751570333166270081349185606171737174633184448701198214588977983198425899312467416913397560820651069390534188945178866616402051746114245765112743711247338006267758733497932576329895333353113501442635624436781432550894098733105598845684019320015590156416318567388089771782489153789650163815762347167367965055548063380628179477619962848237176528974581658947769589866406199566335670218742610662444068081076423208230945762497409643151914981464852810228222407510356023088242153545784280919997833433567902674390895811267556299702873161181836804195632555343498455216135914336618123445340548656415275456730332587167639528823468651459441389517786574417358804513910907547365495512665159011361217930387623769113657354648220701156350856011605885228609048642160357609155134552464936566568204157207365837658221243302964275382236092516412882450101950393241859389291024409352759957035560147115944291864587897717366345802424361834318539514586233418735808108345519192156599933229365144437905271382176961574765220515066754442938163996153581365484300605430823304052541476287002997339336359767879087287131195548046668954096026168540887995893453004871623528427165261513839816069462320291491111566179059744251649252773969969400113286995674577378553040422260902500590085143922837547027117148993492080188499805238736071640834873667350807083364952953220346662019256056888286848793359936374255857819108479642610667122638237015870885246650191538078828709534887829584930229876880103484467675954873622380364868545431901461673403082010483405685987907267310558138768309102413174354660286126464188979815926082682825729661966771903084188074821525843601078072125877897375965752606568505769020399033145603490203093615956224931766467902028055956287016145309742849216588792096084000631227173174280602730963044904991374116465881162546332222095462507458130365530645776934616069591876204977769392832301642786484806355318472623643307694151618694004690956005710198644589117794966448988322187621340976326570911420365901663045077355143384154033304177953114750869554146175221481862704793441393912999107907882160625099493289023579102575515117564280397297632102651709950154934952846008310077712192015974566541641181068755715683958495612725535084478136846844277361648050350827729535174836220811778492229380306801484309535822851601352816340355515038525326211124112859604794988243239327223725237521362991226743486142803019246307128715438825785878804248867607643076385977094311920370137703639802559372188434169200567622753566798524455826122172592872814254057572327118928912373623356466376397417655504916280112107698332570675088453867449072557978450924662524764576836840138582841345173022977731692355478871941279304614978042165948031261113797779973324271511381302421700449130516876961177386442399714413520408868820354970943110113740030225923152104663501448840905368941316970032860596680589900084571960293248855428884385094254346676640003403447477834962949794148030882530923107878155866839042929113451986253457659190196359698293328656557006205544649595630878829277573628448032766839715032972572787921046274823310885536540503207143007090807109254047709080733140162931503140115581937109404858622441659031793392032086420312303335682184496163043015582827651376593518888535278995059235830035713397668272281604181163919145592148397793050601736782974753579185080573288655148286490908322862385430448897229787947556440266241543507476584623385625846760142527851159752396694039746116863427619228100595958368076459196684106846545362152049932522435486348062337771617397750817751778567918572677222862503693386025182047626703521253889485695297303109985885246923503814390659045453857961349505546968000319375134227595246559727263715461793814104073263145781181212806249662377394547318697015889864046133385444603646661119720222883696667392491209052427167698759396630665469320587974060497094414126945223479740470633714424875534711425852389829195010975387804103562002828918550411642026272477084666631338734612343597061122178545831339997852202281500435456576566735718524369318887429935285179979676542574570293293107869918139862801330302193924576234734180707121056726069462484311236815763826481361862533025706800683325558234310381807400013038647658497661231806619539109040639284889079811719485469052743247902064716507734945564211399217818149313634782798319526179725321367052524081651047218464370499411226483348176068493075907019588564679257353380769867520611815607790625350276981615030631718086382408285741772759793811375101998731458869331941114865041148961166460382048714984182821804025715881762202242786844592154466787090020954766465566948088753136125403947084776910833459316715716402706490762436560254760868777089282595880999176107014999150654511798775034578849284713147789093936938320469890185580676321547365025685873162880519532319139119282500576166181962928679632781258084213475528249205790906380434466402840614795128279949783540185580514290202489667082727625066871147021040916749618074374756008944806597591958621292255100797151751089503169034634490710169268946283302876344337625700009007675497790270961657254154708188090614733954241052880938892140118007256645253500545425915484815558775528791314242690544453406818430031904937839069580670008376104919684593134545384278616550788502132541902127272250003742112963140937829084090485634223061558791449482316166493958805683278932537242957056399222160718084027595309912788333254132689746636610462317166510912777579176002011986304490279359368272307721341698669655656963979528473767288224566198001504365853783208064749632977351136475365390269365885628102417057040093491998939064538226548780637944134203837599462310031044234541882262986236769164219832680260772461561513008713734886403007396750420732174106757512823639855296193409739622315756139517720066408506613713338795643867908649880209863274957356290523861686539864508646604059894044018747560161225296588475294236748338777034034460449364178888660037777901989633323294377452865253665796036384491333136846518264194384044255901664814114699968850514472232853227270225732833197036390614354920091524009309314898568862136888697434803098888834494766882289756408876899259215014836753911303866509326030059557558659604867877333522038365180947252372031340265492129670946788719873512778280459568960941375889101377133698130100872352404127091258650252509298774993747543804840414615839013510886844137896649581581724245555030101570327717853945132465112905628377329195992878608593833798068279850327335143491779384229291295399700844865344792242662174525514581209609709933052738211016458447781023590736289519752173936856283673467429521824212207810466099808147648048030353608219946949088311859622956054536148030758684532025648366585616864658304300125572333170738797849373466298929922018347416193374767728963649780463414226360272034793742046420478149559137037138430525304580781633852704955856555670619805559997244318004346951045851974031706705682871910324702494382236658030923902249505933807443310119916086778131058769018265529256067153727535083499310933162821517548251252570653767941315264611565712062651770663571130203378055551766142303194104872720374485639202219160771959336951316572030085094472160227847864627688536045555158510218434742472449624126882168097248057973644699301214844019610723808210867861487807693325583424507821428064346473935407793446084575094283173231035797236729773882415816874655963319170860298468063653639594394006009057489489048251425049776801343518586969644266986085170194496272290714565877827297186570098718949427509221348536558673214473298062139640937357972877573586176134183871875295246926952275890334270867461693236736522192417051264255376140113137819260824869788310886925844477137731450552889413674944685202280569445032607057135019475490888416291573271651219986396714286927028620427822679345258101818277652022754767539256383305953293515420485644207255772073098966221518868587014032891966501078048677045040981303595140394609568408397686924633494084955018432918101472012521282965451729397855835942889231719437435803882416415287018798856489351919184027349391075007214480242607748112967659256627824412118879599642904867684720327264116583379848342168581715411125292425516262895177593031075796403388640616769142636237926119856529562664458052150009180564473797382208371244256863270735640871575647613096782920945844592254780449092200263787041412598151719841537098185219160714596264369996785423341031112326047800262798460565524771153095547353267708626963764301430886582881560629738390884574395083261269587402481710863570558600619259290974669752543496245943253797043944678222023379353584071455795120248342443567421292183905522384426625742678477874546019032896176572357440576223364096013190968704261281611960770899762922605501256930515376017408714221588907943489627342972240943229846197849298620177094333238470770519507067057013003752601730538927835358529854961573658116091426106602241319021982166037850632321136329399184682201386500647443520734899673147943385453491848688656374602446412569617221975468948863117791986296722292053902704820249184412411906834154788846287017743552156900699134763709605231081678513074741144998808235486837238314190869720324114282249679449022613035385537573664689826490594318899375098475074969985994836749209345614397333335727144227032998943955750787528426942262812126835282314339758278955836246662607664775276181779337145848397776808505831368183629507656267476880581998601096361509846246897495961209308489030183142821694531676863257340010287878448830297592742396530947922886620176364499356073954591579299758549476748059562915985087658380976406917939546137832004105814877115795883966717983782238137209109599705388392345257300249813445698835490706230284639430214450982990962440274870091205678714359184134627763788122851675286843178864030207599939948792872191331987336787654709198218791127951634689498918317753081204519595160810360754465362648981601576088920652579241456068821132913585672989400811284872051215834427363461864190138786441931147228420969687521499530062123449743759203361856014911277508169030746110836449996861989874396944567060273239484708286214874008021655200202072777724762327004553687295185712612231197031443865245523684807799727950037610243448205025260398514579281430759469544980177639169175017017816925344471711249333682167342316574536411404181575580531760683638045381149256372022810406853869385692138862350128374581054604401307167809069520335383242846987207958101667434515578574952712956526177673037566862144029692500859675106023063664511737832722171933086835056263047376883606687022949161351677812836696152142851341061227456126825123722852710714200060743164772537633556811575420385595947828399963702256583781829124041501841112092504646845443848423857480599963324154793308195612731714222319253889451852828433317133328261683483194327105667077414036809260574142273261046546691707141335105875342262913482045346982488590843816974074794192624280489972110411049920706709133358753936889999791499471819256511682790436411174514777366482793566184381679705803084448321315994352868043628281187809873766926777150470211382953774243502591740316906767956324069172831306405529570063821122539760925246710290011391649247525062560490762327772143362714649374718122106096571861898626726921124644261483293660094102765591180236355061379475908198195585543495220921256573793324500291776480631620103487550883090377496271244865329679789189938042171915401747545778344804597974221527725470627413046682216604455749185238583324972762677222425558543827315850325362991529651065139320156098401805771524561031944812647996074773083750980405802181143762592920732610147491484210815597011167684233819169166177406482600720902450698852463872477098321818253095966132899746037669086619953788940209987131918577581655719142329953443715803311346108757429562565560125267638188537173809940839347450746213497713992429128637026494222842284175215241839780215102265441859566717839141318194801210093452979175831362747218681206253206388749270745888797097336079923386166740999205959344372742491960854295730287354220026784993445567274710909636505488684218927939984863630683687898742383952818494454573032528648995846610563240836057285023733909207792888490884608977539171225941452046883398995802918461789204128435301738083289797976430324374830950720009028352212766212366487298332402656938874856869949222928311169458793819235534812133538124702273093681088854586691314970795754782487453144198750929600932317242703710403123200677115932869045709771006797762846693537079233813412214854240469680915231036019452885092266135714570655859686991279819125102169897204647254415029705930109241587431544916861269366796368368537316413105241926325807538415685047911536951622108352541539285577599276821715349440402806822356170269469576768084677488888978047208031206293264414011040075585768175328802260328639582767816677174377639800290643602424580217370205170452885457699911474522852077808827667283761592003547541133295674590045104933404503109952537783457313388605013166862121295748819460090350133800112049457096490587968611620380920317531248269356149624173813019072505420279025671533955795426521906116605687824993504541364169068391798317545733333805005943180446799723301439856404316791082292114010255035996776321604292620915299212981779395508950925728640572363242539188270560606547129178136040837872812456712807693603149960933468071572072236879717044779114092449024854052067923247891601148074915413885019789689257717487748127087709356408379092491050638252662614412672335320161181223923590428606055587284518737259238083387493444045748219451442401992354071117122316854716351497483635258108650232990025168847785643261794437759170174333846273413278852541302784575037324373612525366540162661617331598506386016239921117212899858215223879430401260967241769706031901424137920782593148474682458955174662079151211613756033971548435517433595874626250764072611163303325052033213499312194657338488586661526552373232746208030273540551321019521120079592626183137600659915781233070248508337536906098673451104810836595407052223471940942114970854047747290624464348970782249825369669569266850071225624627905452267539657403778843047232105229477136155167155951880336373658412508589119276441174291746974786588363637921065172467184231069722303716543696661923940065926148216227307951229503891232277595045202706997434570522141424727610104868542788168350182159752406625895205799144934509990122935693782199938640105067296939787961953780960790185717765748347808407637040057750455579614877861771614872640741103144564990669373067781566708431102638601435828102155668104415718564583169113444663294019651116151160009429504935799749469247882472196210717494356661751930302098311454343670064887546251549961686433797709697429187744710209324228093857177998967751844924037214770225530514277931221498134669092696392524437033052981593006596250111273144278140864329821587407354808166579885958566570525644508236291355558746679509338166883883697946090634348735344398790206765027308852488559085570390258484252023043608694836535336229858331107102906146246020515353988173464650721741974938543088358559504486213632439166932786061424551720448404312735455450272646767831095845341051535464634733728945957016196299334173880680978718055808647305255673631096765927103113697155644667665938247934629067394188970047300139916916808433636506088529217986571117627182347931384264018246847915456092618878237675202376304715458938543323749801306812240424478801453511191643353819864524216752983510755359007093121581153910362822668443966313826417714019128364656994478581384766678308494137954350448105458367074161446028941292966005446492507723434051382271408150495500106217260713773024986398567495464225235923448940396874954838073218452873712583981874059126261132984211346040881167241729326467490106542957696060897671908120017434023316380690176465912075418612764029511618455587600423289130463316608384521627591831282461180135897574947465798508092898993447770025074872913615589550109176983705418714345840964419538303839460975133278071615450969753493584466342205816337448010400633183217845637431978587966867987788219559456064365627298499639184003673890450909635056229037287485662418956769396215736721421436446864247671530711524593794627601028034603876699069033014451351403390939809179124188444611109599814472995639216913546751743578219970231945081356568196937871419640785284582827473804109944844875756229155379291445725737338611747475059895333815269403215197810409071003468389723350281534320591078754027540496083155112200947813897434283135393367717858697714116215406775747648147181557890109505250520653758190052440277471241156677135148420401670104183715711204635763508069133495232045679568735434271036931943767294373248112414621216397433289471320737042591022156068444671666771444336514539206238191798769978261128205149588913916831210534548065327117798420899323311163365813575281138182435617964311116391704860919031679015337817529070659021652013395179432255706239294404558351799138976182266106266468298424524841724584979117065902903025395912456939356311388599833657924480487394033027131955948716978580640421331486043311202358117795344209263556099299185121652572819074342813405197814466065331633095698903783214544715476742382385041099505522052152022835021677341050003516317260024553253919679790362006225964155385039480560851523315893936758339421362047002043041267901070909910343423975518756568909721445176205704289885385657176738559643914493090239544524646905532329961056598513543436554711591783308729001391258078678517255390426026966666225861572281675360469832375863054810514216615059428884132803396133961486975533718087753485633922570035400724385604226571965738671137654473934416474582375726709080134710088192757728875177268283628280595066894679585226426608810240128246006278115440468999883157989688061313889032148481696161610385967235350092047094156579102863278616784878183433051619933294733603572368453614753573772540554075517035912960903580942342384173954764969771080257637862385238508789363371567846489711906929559637850539756354192913459983987209646683388451540654198188197257722469143379210372153777303499459491275471096392352669855207804410825663737438934229701842916628974615978013797515200716224671391604516036783679742522214093978314490951490559134549080805434758615130766511663362234637099428711654704229872044753014442805483275564960489631942600308676927675699500741593063650832928600143734543726806708764844395921096623950678097574215299906179189272157758482382976496217114568531734180890699572028052891703208106269850314715889712546512551585143507622786829569678196973557409162316322390954590262819476649429057437584707170684746361194248189173728807056157949042440208139187998569868556158895465011916017901406618449575744461298825780693481816402267757864579674562605608680658197009292907204037449775713294560813840425449565161847678101063372742418847262331373052577514362931024710014104462473127201946558381935241528333922482252147342520945354237295495474859248564737519000339533786325615389221410178012563557124978813516908466341835346451529580911312256302072623096570434397965547286847224879987433508806155900236708347050812482457461782950131096903840216204938038061237589832641277090986766212548605069724652518457190320796349674067605431677169417563519793203755268397964771688214551230203409595469142993018919723851413940290831821692955504149543726829632058515913723349801073876901129720590603802135932155419843353537762640495701542329913316250552337015259149009601443201825810493058203110825516269616531382155997911710637990007418442681802913639005684279002590000973349614446985036896127265545191649244397526372633793892189764477371327240526901303206074512792575100493211857064402485284445166572271012129330510587356210812156615247515581839917808967051357237842644333125064048910161686847621936202480228138387396179189095764630150533921226420933200511769400464962391976007911490715877453647616972217013282674082179733153284322948805670802721960027213438447892725581755608622679905116322774260446912623190538769895562032495761491604983847138112723282290544018102441771631992042183602218911746262335593537117812132892466722897598533315526531203673184688572082752387461515343308965607408919418029363874787087211326530595399784953253974365780830097981820673423693871949727384446158475512213961887065571530434651057598719723979236000000650663992323315384068530282102253780350457251551985121159700296737485690045715003985387777598928564998622206284302684094014043327567950673112093750725706127726492986522581767568908802864013068660785812830208488504971249550294123680441138972557865576801059414652711141992997927236860803808185926047272660844564956257084062884023296006865169794581065209494039096315632252162925923894951726162359216067340514508770395581776082384943559872861112355569812557962180708276950266176397411769048490211341486383817203483198534315449941504540131961268644532778674806352535935316531291363300393474360149907441942964450293715305772758589793995130686502276733329726664277052121283381154020389324125496998973050804082603390832470984808007357252078470085628704155221743734880853830704608856685383539032030247039638555288625633257117092302455858250465697827442026272809779345357947381126458196397379730440667638024991451343247600539631163559277682676835675528842128577055221898894752522474562774925671697070054412121278113617630521776709500493352518658768160861651676160765481103702559558474217036745251502123881420229114685683250599912330697136800766800533264314746359126135413704036317229478457022312191166604531137487915849174033975606123949271054997930577700872855256529176952049983083121874355309121706065553941654674237321289791452561873326802386096594338413312756090026127701754736844851309805262243260137864203156286641466741031979706952806152989881215128789163634524323357485114896883136025092379342279097909491029792744764641356200814523839681179314144784841971600153275575507268667186771058086419008109147221783625435710000469751124280484512766334306365554999244930114805418507687921176936656170326963982468480830142749599900663046784398205367700461003936736893135696661521615268459732932635836377940908033409930671291431937915386119412449766172539065846606114769918327140641558185017098601544293216758890762916126844734163664777696300961543912618205133736511205718974657578608508009742743516761826477707036022112609766355293958126171550148180207406137966011025179372012569504122419218946233836259597189359459952230606032932467562705064126823394831169733735765130008052207370966389290092729429861777829210250828030533393522925840695877805269857774516357784522922727979257409405341790303777823957406302193743084822197485816323062781824892834451869522790565603452953594814911072581795898177388991084509925278999973455244661756106619209804923033028620412501219363147831921532853729804883273958335645886960985804013506195274748333062852782231913121913810122341290559971371864518669200630506608448342921952394904969748211503761864670123137281390271775428192189186189341202306544557286775805306386116278978612807895556005656453815636740496828443884325993825047686879688659162105918892439425411797884567214387061892380170309883501405912521704160022327639602964875417342213495932390043056623564820398425085776717983354249242686156286792713801852621207630804999092121387685665688638484763436424003718724779673169707185193101420489498866394554041188081235434178466618653921774142130500136324560860972862451786288270132457330914052984509512156042884669891624915404635859133821383610557750625269746114522764178143698896249005208360641719615691063937106835850686942396274821051945422954782170527990321034452732502652913946245136909578278365597520626287683198113739054041985480531564361641370542679148277255454324218631833060563312649678665131490771990916263895551212381091688752849633797180056747963193005808071024390274566878438127585221506952596193482054676177086419338213336441791233008424884283938710987562647243927508307220575537726188389894341402057282827539945273992530676537691733825306679333705733771175449429418059056960233107771071487288146577927352752781367467808825142252540062695561315334026904790054317900909983912197801766073225402083619850511908002056664802210072493163354840491758893519393310051822113353901201543130832863370709148909952163012331185694928960893244716211465993726319289066517536157273075247405950117796400577619882726975755589278438364429849276929822326941670637329912030059617987423685011431805911065813120072425458620363219717927659286042477063036572991666902215106985363359750644550498867437084501063582214185428618221872900334283785354833558755664489990809052087940221935356490152964192736855241422548265891612476626377929161851522355503387763006340906964783621869821524726747827536792387592816056719250286444589877584995345539861132377228438340206195244668733770894722888157157845352858748289347604318393093487643729861045041278459615895274846487937403947288914036937253145693625713175062668472335039590609590812396599652275115749119396382418613141191248865608132736257315849466981028300648146680448355135295933866467533697728042309083959229201218211530843906597893493158375767841025103715715106053839529185699945363524112836431861830835641398308387777189874758423315594787760341232811204282267294763943271782002749062386742887996863488849531324470489089814426185587015134929481454958657870651947795647980713870181633368257820338513150668552029441130674361663896045034572504902644501665290642140028215837783846685805514159587154451824641670067924799566754314531213960893042025770709869087958763743307902300057275101344822382214075877898860521435039810254262939926703255457802666681693476846550496670776196573119640982732061920962190543381438472765746914565396842867192170433203197036969087290669830719250205204839906183985636500549151765218928647906752044559276198591225634677588684371079471855118692534406342259914550771660208392871209953892323010032247921463385781518781999366063254645278737254922824313572370230307112090323709983684531821871117359563284718934565239400956413145497692538619032222685123617963863216801811289425846025295029028209848584619745216823683105698636331728001611374156409264346997968098204729014713794760137344166225554235524294984332951056387254748914294896449937978585492828135624121306544944473400313323289848884080270421637122410601560824490471411112671086161599227373227137452912624605934878573842653792816419194873061137422428074767687269884074374289940371031975247070732591281437755028582457078800699848829560113930132004718099715012953636764747976419281146092688669337795446629959275275917055534248595112106716771331814194687886379885680874904979092424444794078067059294262336119726054593175770802409186763795593169099346553311467264157200731812267999103856338790375185115761729126304389570347529873619238700914180985468845541596310086466986328631622126734979963506349086001470684056514575976929780615113976193654798047840204587688941855530490015068890644657009035622397811997081133824848492281122621116992500380043364519204279677114782329496071446406430809341508349596707615841775041336355652254068244817484682509663633159138405776564102702237953060136930597852571386824164690353053891234399946642384076027826058322644471888214071279871436570550373863112061907140396154254628852519163075063086061356808737225199299007514921756035636754164440341824661708430864859757579902535648496926290536909910940944382820348715366090682392822681750614783653899383378962973250353699396366972317514621451290598292045062250548465473451881031573329853565083856120258477193190518874490736206931767375818278768991492621839758121810830810280534056817228656156705296246034773533708071726227220428390054866280332424185114410395199255826846820207951414077622409432523883876654580062088681109412946389756061819065864301880792931050010439195046544574064155034294379084112627003914833334403914947978355964942967387972091265096901331647386790750869490281852002421340072279464420097654925673307756884634328785449485790170309111935580531828128947527337133787871574451828853587498683017510000483599062687967288902126451471829820980092782858523605287127702917767553071310891973735316288506877024976388854509216312320469118886466595470965485092685234953533384688938623525091906607531572138204151364284060726687252976342694027940980989459102802886274444766536108341963070074349614521331737376654103071866112623836997046742321811015161602439335797849287944927194962034552997642650015994654762652224900894523294985465311720540888834807034093822071323385599387930267239953071340307067684810082485664121201073122975999446040291619292036974454208751081322338970026699833982765943494697051381614138281873353913150924670219830944430594986481936895825325545163132976158631674546195782547518156224254547883108161164125252725344722213500947512891981898742600644157398229627928290657782911982504549785230257131034711997821752304284034718561242878936671951302535642070725355722553450665989098153710336583802645117581612311450832847546500956506812176064321465413796624652386651627824312809372644731992610449914724605922379724788482627640354356129784069600074095241410725461286234285818391508974805596338077516649243653796032494132145425747175930686787391965177685609291282049911018294248891681574101781197372170122762046473946487702294646417930144149269562933060154044189456147614712750014678011204784021056619536528476936861218128506744158103727924331759616259424402102212306181965812513643941301003447993693019076600427727285832375639125019249837074718416078230161605352526682657265586956576455160246796411548089635139965913848357241965267844102702288992380217794387380791240582850496516749818919458609065275988818470754047857758446477630561122648335546538282809182122893839678741203751296826928546434433157929923357768128234266924804139294743374256116806797276945374018692746166244941953267927951060530331744385217671810699445342800064065120783761731615684419986362453866780391471116009631541892598272582956272726171596104699196963678197416505552277899125163634188650768426739054097248960846566674375371935165097136141225991304024957465562510393094499434270564629098162135804207760168833736722247462636523045787770776795276201890081615206866409476997531428229160707322190556070051334270075803736330469158173113057977572115693995311986824473936907711694604029300658913078856213346055705993710574884878664663045057753485886865978482231805797533868493494649045840657972348404006747231137972839819398469989714869803660073233447511211672577838611171000565859282347638466643089734576421607562695271543049966821145879618988728517496002121713315710827739455390695034195745851891370016862293024569977152785865547619302102444349633034658545730658265971470679651490175466020183989306901126833750241931876973911915881966440822806911189414968773454481312518113546325580535922183844278239740538353292304867138037638344837581233481992928378934449363574694233064072883262788907564342742363850358405493711705714130330049493345117998347807216040291278518379794976293144205900382363576760325734224966647539273500805946217150799875345429160783246513660985351911080428163345167451267049701930440950183809152479901405439428835655170794535508744156400993485293225072154128886833849815013963753734668227192341734283568192175763350326262231429571564484353938857921307907354920458972006535140054673287472327090601768772537441058926648403289093122378390965130874907675570627035004118709756039064845743631135125722814066506676073328211782037247323449804702069286011153306094799297990128354192364383806781362578908218053963293806069391987634082931288361755916717296511205672493973832838320587821398810849042457561676616661651740946115312818303354712739795338888080764803119021898127013985930302538467642163055406778106304591337937764375776437873115229696598263962147965039910572021232459685055195748476355191027618757328399893127952007447987226107943824716866342559244171209715628624852963569688008774511893303244818774726062486517265205340422858928665248070385968401798786178891037906394272316475536495243181674832684486677429642206279459584800933002929624831525360450634712023330878811269318501779219276628516276132533383237932240771638369302997945159658801678408370448931834494374840418271256365923224551213373681169682458418277158033013484008101814403414996561562190334384473751024832900512294122579959556767178164196003685503994649356687346340491208277915568413181988994944348900481913020734442675682325312210194306008623794722525276360627475049833674706131392928883884818175358795054768211840679612529413466405735930649851239077576968908079301560994512664830026459249386109682850392706042493050129971436170284072898133212269244119502504483051617074835130217980360963341852514916585824926761581342500675549014568146654147601074070196075212118523284271980115406585087039580727911336854558547132124713581014822948259149916949541918594706759170226299463837550385527498281315774412035096419234365342615919447894516108502054374070865098338839318861612884057041346499174038287126462626099036296200852571106638443512706911072800519798827226616107170377942103105451301230934492827220389795892455145320618052487501391377057839753604264373176726913570982395069412183501552995957016933307473721038067351598881980536518666952574713700368343247296087589431221981731333408031386889333378505874571825568554793571315244726171662046295956904393924360916365603266145471047088567650339533518829912135980771844388454635644135033164278456665105401601962428487523307991758192423654629773428645239174713944351212862892540014576529938630448739903141525692599585973072924975928606245683247415479045479748342910867323759305813534246246645628095690675821190827816575414333482358357189970821772541213006167914497059341016809427026551754220986725853346486583464651769604883303955388685602245811382770440849089226951028901202845232313460345823993846283201623411558075246270686549517522245445704513358794692560236364448858184511993416943867295609366000720348030204092613366882107548378157010067864396312152842416247138450643024134267361164117940529788218508051033433738846123089387152790876301173719858205975072910380774499637247389606996593913348909786295524013479380388213746604802335461125860246730077924389691930514173703966952625606262489198822918909662587608278306006873510456523723815667930966626823246426010987580883588593929380857176071787057668094524174797824737462269240818936219792875796740399974395405517217888918999084277980419334463007597608739427425983973943551817024046670027965352462929663784723314118999262497928138886198218924746798526569905610017108526025552394067255196024114984825184717531384867050838299830984058448316599413755485151754076440585800993929845174044982515987797537650614196919307068328293918897309478529791622727651451638939116131197021765371692121986963819885847479256106222344545251774116097717967365085180433528129338316979223952020289805158448803400112457213684148059002571499554966913421006417715497209168610835163625359399021730491662346862227829994817263388130408922244823829553710838676433979759390617292208101804878430962122968519069909518613110563168276892956621511507805040785371782116034770601486533755950047236024694401301272154792507914030685882790461824946797678128061144520711884519567695997151341320296986176452986342409722212524149516745787250306104980266331730392044460324624069786109187193127333766513124395853345229603521127638039485171965174406348152484301463469568148077853114179238918743342475788074061634579077167255280865652199191183829155206736873079528715855896227000853516366650706855202552807445969722711750490016071357206406856405581465004318982406804852449260754739756985506639799608385693987749149848964009260486821895678996434408801959992150616544786368741665273276157986294759223755324272875722045187012156983906706774026265586441515069692914542306221918243990017357038569847471296339787763568681605351199146981225928661951021022482499925227880190357516293677024376984999094259696555136109768621537645086501627565744700747989127934102114497235009266818908785314131170569433296487061261217044390117840927958206155312433545755243163463634014137232525843905580068572931509042151776139709984635912848010323478016519263759390988714406188233239025982788375808866106213284782633681601152821786428374683476973057850124947015978591505890427322278139232163704976122650589158354948078547983931252736077527837492765656553268694101984804142193773547477551064335758892721196274011442039146990193925316959885976164663395182970985480933718269233338505905460253952818811577551812521714993030201069849145043697293501794788683700333489330207644101122031734837045750189244958783151073361972216481023175533824651548824125126963949500678275422521976968200007580617481821464661708837203368303158849899768189221140684561268508935579809516480022486247600989505857968372865993893391422614824286499204079713300874523106131324417701126876142985024459963795675137343385420748336928697814186313962738019520803601905460167636521723521868401698084358999716757052959424201138840908512489456647970539257755993193653879398492997472153303428418953314461519588988206843387257648010721598300972728065815459141689501717694555692860368283409752163967691294310636117395928502362503835760471666421132451842220902811846686164666572680947495054631379887942010579759727475065897008801862773683849796846665407258656770403388108342474376462684173481458874705278558874886588574375519856706058976347688063242538935921398706376535114390037874697367637142696624414500555821284008580964155283709415267410935063558875167372737761383958383470858088319323341505367752965410649826335961830125525864888764930302293026119122027731172159785689802899944348630547868620907900458953448810646290182351631070292607710123449963586116531653164984094814964052024438241003147094312358219258971646261711283371068177060591348989180355296877034682810784751344608397118378620388153670854236852185772527456591071460306857959115183886806573548712687760595120497159845981400557850257387383743683082232212234980687399463653001510913592182496782887531055144859245355785415744041549980529115445447948257899911365764831104535208035315321021664996647610618667594604090401176583635589537729211524923798197286511203385282146039667785727305468334204417592386048641206585625065026761352045703616708306922719957297000528202191044420110066452382683720097245756507155248965857896828672823165810457529408285975971863687050333769582460458960963041260254491167236768197741916349355220492896464800137979038553878491857281334095257135581130324522012993798610321924237474571893339528285531687166989460787116493063640309590452683801961492367381847219550732509160491146926521171185250854877303539100599346239799629600182019339502153188271871823732123022907495537810029921572445765441328002648459253882584974593955791707775474383945886011813663929115689867923825363340116198879487039448082622210087470859673386431253170774666446481750300156209963351706931485275695030833753595936808893992590463045434849210006497829803636438119722370731894420929820214968779311601689789245605600179248963668529943819708478865604711751019447623300986404964433446856360100334791912064941574985360025379935004784965410704919261992835737072119412058953907897599835753817707188955675484532018743670655606190799903917965467181968101626857048361930256101598507114089229892522550089839130283786281875077116575642452648284297100566629103131821300069228884711176397884497637145318358063092496570981208060570741893169694547704436443971556500056286805443065994336108419414084595454219205362087706240462015478907492915636564684658774517135022056170078085954909984579591975218302918132474214418503805969639584371658524347282225828456725029935680689997162660628983162032329812799610215703868859716605562250242215086133697421168769031737219731205058070253322342521935900452047026474230066336884564766773908428778702624239841337318577522942192618488542085960042007996653138150986516452710716848608627527039722355518806865914542596560205140056457449443932708701022262896004428053686301838353868204042328584261665512773555983952453633095129719069428424819335603187734333421126267723479872327796055380507712915029506709510857592335728057133618663216064628728074283760473730551920938081314901960023244432866276010338153212262538482689497816208921302408656676566512968514500625226824844881970043916665386043967903026464935630352080621188968825015895957470992259764083760615229508458699496105085266269050716459006166595246093794464323002267456088972274144733459665850285201120080988536580237126722358402699462596437638062979669843509569834669299080585121297798719512357751941053960650048025163915502291503075206752168112216944462207963158306847675934862194105467715047142130051368263925929012379560802571543729740283360046844004220771870250553846339032762049493122852339489032424444962861288504449628915764351974041788924757611831647992776398824995155096693738156458789317224953143470596674931743686766369983678532614843446974467934218116997303500736235887059733907387233028887340023662517624818156766841839248319458441339513040251946613989342659777967055772055998594709801229116442607063795769401403777772926411324611255875737436462705590086566323105484493157326948272044368680874628370995163736793835238517176801095043636357302569076418754634301969041665506308719841045379238347218940844531307812330791530473666795654785598541414215064263723732999970644890864986375770504146240298581218337045684400110920497569315824429341417694796725271872759231420662749149450686888989469917937901428573381028659605952333039585724828524472239248809144376403947475140431284208079511675244447500744980780956051457812955174978754121165637989045620780254514048499018394657275597999771212230941147058565854271252694501132107923110647047925193261139497602523082064124381788137982148368745459415979493379368851886992765303079578438276031778868761259670414488014184489032561020367390572191892322182912882607679472680719127728566709800569677446084987807479359345693043118202940251128991178022597287354847412185852733249530853509927101025440312387235565407960414703666549956038707824512260544601300516093316990946885085271792653791406454470768189464832055385988205910980538120303218147344019986975455654895301846867706745187710857044025332393241878068033681291255078520513367761841819218875603468312849581067335632939450578325116014475966683168958992835820048934621281510796239608018606945383834044267388068049834833376766036728123366177544912056952525869064813099968753520062176280589150187787729568316400833791287362108449965428632235791469685318528807716530247853937390991496925918048265755701522320778602838502334916067875880817785332917723315585945376781927380457412456353908096462648431056202741002466046034478066411400778868422769967582124964324149594445515565416749592873493196706500387137011699066882431017885893017864898384869222818463812549232048080349126847528131795170319637534182156580077495960405296312570894793113044067081337307845108832807492560241641070499370328876452204829834701583235360475550491578819991863573557754819167065407856299733280034998733315146488164296942999171487191719379272126942456452010383612666568840553312732594333990990006382190248564775799105218155359603466721218884563867573754356143418572053344607054656500889383661105250072621020858141114265628668292230420353870251208570871885546336354357571952392598667479087680169827048572640761635335771204005819907230803386432182169920205864889315929766624931835483998637254770895181901990378638489164144522642894174460365327565136788731803638307244187248569240427336015390127179015256086333091285721783938328179344606764679048430729268083115906837961404293223709806619550396429523400566892316239045808659933886923465847197761171548021293226144332519766014142576507997988729063749712021678575857477173634516878146806587180577852967945379412157029633736053410301186672597053027347907261734724027749538795265648615376837121453789846098462552056859180983862208269264604918470316391854778414170446186736253833282624339527457929650637894518229394969924713200479934156198336854681850577768026910313176496424002691101374262530065778754965559469822722119687934566692429153222110829332838933289740857016230892157889842033063223298989751871833376656180101285729483166463326782204863104902399577524185667978542061905985128666287287198981500516503448716583791747486757106254947143871193052774313426852427518581388562744739004135222027389105954718216281568363916009293424903614195154690916327171175086350733601885357925989821197821534966484470834641196324789003641219315190306606422315641764311577200792557239886390040119766598656309122062239166182394042886729019479656640946579073140715024381540619802437380735613874807724086542038870189678843872901639445597170885361668813045237568545638347223847578674791371204040855702314562492518803515452480677492349994213042944484605544383312750795796740138633782878407587473494866118378948961214168541912429458713988415755392273369015697898449189050925597067551346392336766351415439955497870182328967219116524373046223450433848843933859953059808384241573510151713970995334527554736180326637757916005531083435806994549473735052871312748995458175469654612689541206011949352246201325073504468025531172302113317133484377301850814896019190927252976028120270419012687011422030644071722719368006326454982797071651097909667651618838197661209772114735153619474349217975534263654192440571463646493719180688257023043088952106475717808782501938700001053140296389853146282128900206391777666016854597164578817228804975098913507620250594514473582560114352017366215529897998477240302139015247310355994559447933931000719949379136543283695611736320351897515436394915391272838047870601875427429087384851822928975988166364397685759871039677983414175185603577621659401188518089923131215907349953567350712384080251238064080720139521928459816932807333854999780097498924432261575174650146160575383151929076981982899991132869806730058004225325763567072911548908083733440853129124540242033735557304204092367072717889380772907020319500586080839235950171718659607336262069103741637356720748418011152060400419145394812132476234298373045092725946591273935562604413708035430800860141401315252814544591374456908061137738578934400113580279479446614362549457608168327794034727047258150712715470357355855137563663865653188093419485789092045875042059661298009812493090277039491845139929781287563731496118440485965422314119172238095403482796433482385674985313383717029142994576934004588457279378000405223358159066696883984724194937196478234116954403059952100516299804781474947066297006522101544927497203986640707715573828538535304930620303795737661232581982773440988432614372739904857952989954001958263229221322807367874673536620382954440198939966318541613123449879187162598854371743709729112365221752027334966468516487484402245362507237343190245100493029544153343920119487215929617964643025249098828279614188203112129818111053698685336995298058543318963054801086397698916058088355366343963277738187726011162132435970639915099235761637329748371362512563652061850284344750050749146996908672607667208826270747757187767809912887454910111661651795510556281790880172382109331299317839218361076691764479358269920683766431917877979829515155421547233698937572434885079348432437689332771017138920887885984695607253380073589818645750551257184807468830253258434356412719264629170792313327067629881302324998324313748841127867974531560738336009877460652845180463816181008594173905839851441787337116086699512249648873133993488177234718983724029364254856986327148935702627747471677975264716036979371708316705056640101116433452316647960810123044552270409902455506709078041466716074666330739967101966339722537026893995540136104945449031088185642594483696757833450171428732228971775680280145296644694923665761942223297448221131506788699594155836072512581674212455055272843343064457906892702373288976140636915256213895224559551892482206340603824181155258078469566715646927480630713215019839913606830088752961232122833227191479283376796169573612277385696498426162516971832148165129453174145872382905419218743761491510898383892835734433235463291844338183785920789170153251325174363402648518001315787842169401424521152414079873340145320694587595383355649858820717403766445184600421626507884022146126719090145096505385896833382869696160849674277537310477778822864681834621375673448819806484684229309275400760446398018099303583052574905178911561802639412193399986057313782014235529640092423716650851257702486829191316579546170617159613914212786112302704481022920105115462127377969034296991489745103938601865799007837931443436461817139216811465083808451493917822273457170674265314614204581263277131475290064778734718193346870627219281874734746332408742885640765436849907689969289929208889133440551294077923173465362391742675775313302602389435422984092253163145388419807280355296870652789512121535311876994541689709973382863572775741330578243221367813147676721326932017916521823287318784591679250184858243187900318893215911165183947233987646420714687034570078415974497812556248146703436941947168404263389040008929103987185845536279751558988624096131397679327837548936447236409061033437031237819328790720461671618436185174948479142018032396373429811761081253543327714832717689420686056080442686324758166068219567940596645840333854051609421790557239757813993816375632504471203860558118272275895391159551672216901837466899408263954292598283102757904840262618707751315738379345113928824749465809503797544824022191130481713134863105312763510539871860537936827961715818542602327697378716947353838160381474897205795464679637830601749904051871769177431308142984166480363589959359262770946493005269425802493206286545446389282954899961242895715276349821998489394864545274736725057567926334243399194170133230481405256295575786527039555076923097833678422512973013288143711578174596429035429736792700818594847643991408505936972316047334270150710019222660291920286648827325682929511613202520669264621957907729119092737573938708034249202785710954726586575333500622359679889659846694035986627419378066627591568796855214362953057275793999014857762298891780200029282389596144935441968786695882624356235810402027971151910958834134384192882697179143475391455475817506992720615293756206462560365867512468601101629335368555830661447070365246748146842849613604472888274540759584378441873938824613324280653889301941544556773348669917259471515373887856436785906991728357019262625159062631682120176896589391544493224545238114168739377260933551384629704391199312473669964301801297007621385481737985256331177119405811860933562404818431843467346220071168622110582086023147464516877391236772700916515258316690581219409202510773005041232159425498508433030751892033914361083099191532937795412026114072239195234450961862682463230539067880173549919840574611481488098791343439219968585789996858330928503902580291880829550657462328292915648148143256835435451798475230839736128344255425334185511490648661971395568063753183064323943405984673730890643811771067909361102735292534254416819272133645388232363380365242614647380665957946111559936727115091030601577174846161085162564881248127238064218011589249040567459352274452564108666531834580973799486851974643317844976528195142010527613116435678209389644897676397009789796993352045248531397721711951629341407536147968788075421012037795844998389207036286799179271161133868523420720142717721869043960638112795515384880189146635015187834994476923223665290594803523089487680306535459055832968522638795763400609344353702768040533190174895800654735168273248792502473671998431893374701016716466751794872575416639484628610405674686648802453684693742508362476412658133534726103957649503600609240818608542863718285065698404747221512623631177084544746239446927670590911645294278340884744868850485460492157294187615559228168055160149614062553084227248467234259729784704928836958190701221282604741669525545017340977253159231700047127416566180532385203228956808793544712745200201383255747348807763058062302144475372649219474447219829174533757272000416488748165168272870343551423841926633563492356679799221019945872537079212325242411825850011832275813322791608588533602124329191608438649833630234640743702358355518781847023513117367360608066216014335973603497211137692612757100266980233242565212801724812250178856211315254904625311551514884895064211256901018784957602653366368084356484464395490397864062904947739210817377173448313401577100212826522985411211040680044323549575125992443754392829083561583487682456015133545059689966841296475998845640087265559943014466908510099906589581558605865579676362298223146457989332713221122138124818231031774577860645947945650612669125226810117257583306899444587092644557958525194519255555409936784346324532018983536665246443928275197091748468975179736493228216487079318702862497181479308552527836985054104523738476445681294936558645168079333559911882040686087423776835731169164629306456538000153904225283847519200191990156512168539803815099316444845519168477192413455846760728557934186937729534816362404922180030134775193185802641984442264855057408914371944073521510464452676220955939775035034955036657226927212826330755139484079543259189872120015135512948585616409478939415958349754322840514417480044698570250480741235165422381161203510723607242646881241133359659528242317192869140492943695803513950726961049321401275861387110442842892472562547069458580791455143215552165781973117887022965939266754174601526851610733651919312882844167188209117223679420762029181654719029890328022766044281973669310658529304952981357385828076014423523455733374265049581586911277868683796439496128339963736959151920294740463993817687928533255563249192176615985940940734761768183013551603970331168913351006141610884995824527234763508109485789585565952497681367691046158368553004754190785223408618981792024195548809265840680723146770623795094265635617118304425098395467311729506050449986015065834602678262013596776583446425201794530327196998759582463101215418827248779449822820308721534079742515014908207939094750432681871147612384122488994895868002093883141918031589788101016190336898953193349010571456040762848239107249059441001969758803480223966805653207633574579077610242114263191840978668982585552446566040897331600586198462074255571206981528935172002953730228864078070830078223045372212417605457578348990931083947662968267171963768448873083749160369473378885273517384031149751169763807912524895316256973878452133052442154865065267622132811305421307171626146898486869920872257248588928953625179367030090248293578731536021378808660422918061096025520844182717473102016881137325878140696770901852092115273456749602700522596718232271432029628687902017347107824924440653312895983773762581762423677653191735455971776257230951363610721017420761453552570606121322539328371876366559510066463574348707231008395249968932591550473036333209921734164488807706736320358539404395233361201929506716226135148577718937591545381428345338775568589079290171918469141895959959368076180965937378834605933473007170599852600647213314499461396122608020413850915372202669351039200723942116000705082637399305992274436402473358763517100031881527770055846409100188218113861583882651693902808803112532470346279186109627386680903622484636323089317300018065503373527669777972329266633077219896514189599358180279254232733342027351883539262142977042515208423409987434829382145828276775198429197372283916174842356910893592692387078618258498445783837755101311983188539078642007845606903979143009835017930061060011576410368042057442281492352619636983674476594347630449884245119653576274150308920275141586587914031707094321439063305054372455524064220073748210958325729782541321114410938196998707137720011006406467428298958795552342860731082374530294950967872716659987728886318686823917431362484520838826068889337194645442005645390512125731124514338206393594225794288981735112409827240514260387507666448804458713989390326076146744512782049747892940240588110761306214020848817880809924637217691011808010655623919636741552106765342409287958574058770939321954163004046927289719080170150660836593107626761132389017749379075160101893594228304342093737113375016924720459754314260778901840545485075554636857784302398740829100018680768851130485414400288099406721145463812505693887853224454955008763814079353715406954550267402045315203870853401168777147021828928732712409505110760892084394033471298042425633685681182188849290133606021670177671904147510668865565620213729512338031177200381793659042566340027905682484239691245831584828903184994067181328808573727285304983142986562695020941313136739589450509910309589142357120133895362324160836189411947594363323185639127883530458738518591876082962260087268248481549801492411836753379930824746673880094282138320206090265337483163001419452150548594001883631479521628901637331895830844259048174674941777155023949296691273344542601266407032041123358342317686358219180955990539011093751794481308333030440799939974534073810352391803671042244798437257552278099268793317712080871061405386252395080781341176436517561940357239837815935117741353908021979224355068409681800709511215898248691359596897915111223160460570140911654290503217494611752675733957769249411129779175334289834666608445258326730076314070378473298779697060152653569129440635686282489173231838498525090641718805742268711414783031267005145516587122439561833402392107353886486985560450386511837867828337242992614207232008848506337412544153207328853211692599739685274864605108072412030814081350742489098325582610228571426394314894538953288382777743745322368463946067990403636155119178610837407006894849972281431433887941389841333963157681999897374856184660627804689999321178507469233453729619879116457439628081233297960018710879502648518136491661626018869407078686918817637764567866739898983469996247881920484235639480871328496396553921803765455387828155327850870643251459571078996482187562075927205322323511217218287943977305817750106757093188270912487856067399632893984604969653872407903875274162098551482035785207234398292515067059203404181621418289930393479701399040703817726451824548906082771758571784095504696858662447049266037545372625770532893994561170564857267413061766469738521499613507877264334099833579200829654798253307596406930629207588106947824779965644036760916455551394836931401040431693495684489398306307897411967808641791598254321786400762054580819245729537202694975022138581966282858205629743782578149047728014380814960146935954565754561442344125333804491220033106377831944302439087314348441024605575820584121550713249908296345176954874196834707321672830472691624338439138164854576799076429688483604528538812378811996067694325668821644988871119299345281452730109165882840338716899871097177253978459019680437645876588454874605948826370914947901338047039252023323431498188944583782516965967755744126923286121436399810240304054345378993632331355107836802465146594440986475928051655446139311772548127122523035747851822393736764039622647431041736580122200882004051849132914708151032597465348926528373472459869899483858711061137407283738889617332954706083405638471193880645998715564679695756556062295955736780056417670878688638482898244999987296613195192604876430962115760548138151191258649888145338961392625034964942412387615675503302907058570347605064081060235494332106252110649572001866418223701021600942825214532294336843881907379432049568320996545994446032896817848511014591260951794551395773956026070682731944976384700950188806493293721923049503276760149907401141825125139408705165643094982158127065077596577263983893492910728180867941636487490876294574043643939998865530619753191109305206436562193584753791144355900326693399570971247666504356531108186725750118829542303900407549318000079921279090664875829064408853243476928487745512707284972232751896805615214338150605312224166174538835774452319637782279148819579844891798659159720196779124996499495967441871330041781267149448608650878835048407141414303446279046585564623044470680588040216788935828605867881287493517702225868219719713072245717706883532483728425090200141092656187184485197547711609508031119598644122369095772321890010256928827168519253549995383225955522821089088742034393123551517758167812886636934551849799960575536184261387668545725248880049265409655737776512645059103767149016486642707948610102144451894626934048739591284715694846713555637809607044791377778042962487041188708757282544202108475105786478928521842747228831074569659946691477237284451969022922858112750435150774434170723107980230064290986507149449048762911108368426206127836901372343259389183600067900449363911474278390732488161063605076788675077174005012224751624592983163120653594753901742679344311076249397245364267651857485538224505128325421939997878380938168519651337333343098542004351664851522757120400774529349491951566409602246524118438909914068595864485786103975098258646072594168878669190800958141392007986667092812535541394447176932875348202648621812307538334123717037582827945711982317371692796554999465621244580236924001129775248453724123188307390105832900379497284474089075062451859034628429720117945073869196379930892954587750484981350603853097342763053808060488321719052352001851252442512179496810363975126540958816684085754560689620224833883755132497720281887582366150192811862905545803312638316591135300659275666179543341104807595449252383683237030122091995055679623954268794691747145402426490243573137049284270059179769029408130216681389289630702461420716053842736950498392207811253522042740999113656654149268769405035828453203034611449718623349147473341294162785239861278340716954380092274609765941048502400337303007899054646887326718594097468246062315855238519732577758991619473630940652095059889134181520717192980423687214491592083091843963479091476363730555023934885091652355970016203151836305107947096958301352197401214313496216472147104448664200947097888006041159831949823796318687066768381453991690337870830193094380235137823389460075694131259253102387356266883256362235547041450159494380177457023876493114540619680856239967882259290194570582008605248699437656853130734620561766669305784217463420719871873166827124165796700862437590577796774092931346257332573749530661173807147948890185087119501797719857182562108211136456255398503349063424966635010437375124670580538443710326358698102298828073622682531551109168152010696276512685953676097452527875132675564345916570181595693851007696354197040687744832303280342564640654137203761815035209617878359055178945823539516315943935236923557903314264872577732124114347937788934070157324431757594337590951298080985177953444086836365680589440195687434692701652945671821760121606456458687911763831732277262987137906701615911172835600336016493050123720293020269986489240748469740413816344888001750351650030564950852123771851698889375331265424912615502746850464038136219742217660284594220600625563878806601483249452245845716740693519527112738211743887297040001338798720367611965022665535878220414193191682630105930571768997384575056779742557274797878828188853221442099088995332651641367756212994394261299527123506344494532001426259304861691935804725313646723995453648720092884746534740420416024696387406338659782407808887125825042076330622548530698272503306747174917348566482271636389260368866114964959810973738729417736783697314768643333161710601496233741886050206980008196622796234724578633075603329365040571126467121853438715888236046232938552721273743569055028557201766302319804903489465580281845358197867284911602292755633029747103274451850339376207051996638447681122570320808773689126113210888154992680974546208016083179127560393474403647747709724344297025197726236909105985340237777624428770553792117383453688002935538883363369919583133879839279750897704988340820604885620319521154647187592606411353601077446515757199622800747269669941219770091088845125541553049407877296981594217206936014302491988407454980742303266354516996491852353367454658990159859652943795348502781506944281026879719155506791236463203507029588608175097597267554675093261657849886038730898908551493621731699970135070324383051101638178030568596586661833072758981518424829484672914111585224388820070070389518272132170595477362152628532693184062473167180021740018080238304583031324265059626593678543382619960619833511270561407878302522226237592887426047135127395576917458780969704975288834726002069889506737167372294326746842259091379185532652618737831272643845560311934872297326805293511405655971801773886531547142634544482714969458466494740106381197383101996047885482200736766028210978806255514965613192312120500735585032488621021020014006032598721522967708004085131917979501634553190081300257852060767790519228967477235089695614607457750976214665130083246183869635075373415485566680002226953336173000626337247634473191220386915284601483314332008197340869306880034455634528633357432812579496719762782035654933110980813220854315860967010621833769110180457438456312422735685579383312836528701580201925680095012767546917536329815082032398328398314162294919956077896102782138766789972103290313137038421771422549038605252470139883713547155695973331480896661912600124919015318615748552184621948177708159343398222627571719744639115771509644091550634797078654909090713768815471965414285069583370964680298614500306119876112677544012224770938964829051841662962008890096321965970221125511701465250774693263781772639998933242052435666768374931685122038098703752321934077884845012457439069696383330076578955961670179412533766050811924314616668271049225995537224614031921223167321063852978518610093995761827778391181562770408720257364388051080105806458281321282840883815720078126323091933457817240409074898851766219035110022509661656696890147206931839013073080454355906940209209033951603383481616305515162496968462738371728954806750171462659500407640146486353698466938540453963758599375302224080008631212529432275141810401694114533680398746532737017263887273473617831147124482722943945221215374920982446417112549453636895027627119304820968107510997807617814279050008864514503078010722760721892425128910412226613344252325036991680570487931224772137528022227852569205137834754757175912976586317496645427405963437266494429859493353054792147723532756601996257072552774577627234621609783983426636510270754183087767524981230286002238344310682848909647445316622097967421680284821113827973109589574580194607264572215383199682522719371106552568846178887553399639985863060656180632336187771246275143970223024002984893256723595206488303399906587411985877425412226662440095780872260133068086288733513212388373234261374180009741419139486282200253893930982208326950737811917192848778622320222986619181170734954561486475224957171237302345548864817563166805652003092507630296272100470774009411752492815516744979503035089874136901447118233326311488078403529507821531306486614546862074266023385504142067850128022558390730000521059002066248426307185524396012446015957196318563032237678593688405950178924594445591352699774177184499523622736135866466889581306616762760985700083102810873034519419238503826416657026856110377135785001901307380963257616290125822032159697408624244772081045136527001789157385412184648012091627901432776357783474881130193273765376367750784946087999053276906289021480815523076216419043751599077227989934389545655063464813941830655630146320881105136177623836350820814296174685836241500133437484712647455269019819612073851441162442304322447331791312850073843019379206515103644560071439440827816440252156773646896834753356227137959701845120404138824707427686387393646432946341028135065528960882540275302213909767550748480311828215478820443248481554540705153406493602941527714512007650341131000446701385118370049043864724138203109748786066844489716392826929028851718027034522856188458780821649913639555475819002412540012863030005804822798805114741512834414299098244623352418979788748746512507951991894636475148808021605631403217951249871658162024654635169209164835224257882466397448992243832613621513294510053637759934577562344446769197775697446338199003393471128768620277169494160381645600890257389031936241252537162248091391389309793669970044242461453778353477742531109508160123447518274223532414799499966570777419274590293592341723183945462632958754911304782624724645231378232871056442327903288036838058626687466727022260342378134821571711392360863910644766406682947887535654114749909469941601515619676987200560094985300614980492486517884138907550298357430363621127561593037538479839584759090700822628565491031529706286884258678589202902144475155889003787490510893860151649898259511578197137305338263333815182609693913640486479483969647020072784164481486421421681240717238218697095632745959547784066698609658742536022541091426830875695658136522117624865969768429617152015717962301213768209416670509823581131887704825767550202206681330536770855122243216138022799070804181736659104465048055235808958663994634228457246248564580663365184024424389871818926170120171258534561117949916947945970064426914331008086704032713435855560898831038077936765000919039917057844715620673348673858707205058077833014814101596705518666066269005501835186912086373403507725759234804870014885557936233739975119307650402323870429643198247626560000082567221341974267378274540198474394164187468765366816404048024680408446998086070904904985140357282206280462641967100427966572747740748029038158943699113609698996852363103643188001941441422142591355556254271682995768771448121876877840517823903746471567312722640825133558528846625250270328263361713872875627215603987695115038918246223489663991976988958210856356624950329262353418194042171016193972507193717983871586418143466185410496162752067186604022307653433584638895486692642139135681098078691358027887781961241574647956694271238237744949236856191099657018258320401548630166245680805410261812230721164778533667976356769203764645748482979198761051858039966347608766942144487761666158725757531376874396370912193662879636281010257285343045608985707117722546116665261156103966052456699980281488177405711835940662970200176907680354542382376482865353768449480102850726433542815717684411729932626746610959621440963812688647293703222989270245907692433399623311620618421825880410315485606384487265446712988007870912835354579408120349257964050778777833305342794770752764912331716428936634365668669289155979589414805333743188985395043747878770293972346975886708281443388874081291519424534406101774608087892495834692291829052297391028140760627886621819043973035698217443185255120539478480199154869021586982960967808825363142230103530527591313018265723106976098311805456870585368067900888855521251261695916695495615309260671719914567490304207907823297499949186275334558104233829807772290279200021563151279422160515044482990297337097534437396634715037549334635953173404808799789173865350874395862316315678652947909778057748309775437266261103785098663767025587005569614530390954079816076211779838435826420572485857153501488253961943141576685654586474998143042001449240752463927399142964348594886247759669243455052066520961572060629175493493498549726066702771118038507068994155226055223284691086509296302840088673059822711038442703505098019316154439329418383674977636147143919211711875653300860642657500380106761034672820519206729383711759546782851174019738200134912838137528234070683294458991935447546455301901004169998454479139839152216500603270143841640164912579567133290725223067792298283861304959519054553026198367281789776830823487777776472506017203918514644427421471297789226026241533699535199671395431430909638842084557869553983223774429738379299530071431937218164735417520579568064784842900274882359911496571978517432323069078494058008878473324316357434599956125016069396027967118687198558717641528400075288026572795466455884937946353014745770572902344024415267388724294910075872941480949408128508279790829242079918491672979727056437211445005535264184954223536700915012867102784015788087529716261007732602298822152711430454528060199861838272376815374374669212140727705899098631138949131210765910186430032473098715205587531649051719078791580002075035042240045295180538450152331013692345822267613940743097156182593035167198732333881305720114254270462452314664539685690677989737331994378575098723747996895101644225697122762210221773731973629432135714302720473825209549407123175192292622709289221833863861529624292993298928242286310870769580433789963320205667641205516310563908982126827021417805771553533820965320404115008782069231676266728759399175341877691479729723489039588654371215138501584568428760036079802985830351809729107136127465668117323648161108183806274543264229540612967766414971470817042003426189763451690837515006614399833012009417515360007659076718386547954936873169431309223004590757887167532034661879282345401342403498569332585551302507291312931217826367215155836355429833473816129512132103866497583733992231633354059406598643403122430812628279453276636507755634591578591478747270193530174164271519749586005240692288573081815849400111280775025558968442072416278883999015019873149940978044412608306251814490779111708533323952002388772174847757134341585242051224637291115228243800196588004150673464562296705849475055151914897932795524283718396990688357347948489773743913123662409628811485226038125927597047823798268051158447326156090490955261352931345642070592095025895795623753495125434528711037298903949887408441270685951908685006818626225134036378190393850636102125394195099698400600538927329473864890211998113937826563513839310505628918152593284253524178617512610459096815219202643749835188236139974512677220225129747934854380903096112396811685696766202561964777588627996520954749903523381928540296963357000005751475675554466508274760841680393124826600844681612172532286127208603853342948517223781905307053630757981464971356248682758883187565205521239228174678787779509521969371535194761129812077881769172986458731545817859346641640136552985068257223404715887696478526440136505398184864187956336777353340673801396041932927384800569897294073667210748848831305303245632693616214762585110512408360620086379680746606430200376516973631126959168281503161006844323241146832567509344514367467538210067500290886193967616166043774436294323654249138615504350060539990448329471844681477513204307087593114426087757408109174058850690928165101036046746625227766925370481317177866384172810818199925749453791023640579348943711127197656580204337805523380424674682336167801751838032006213073994476110806720849196935527606545595687886689230941745379733730202533468013940719184759580042097205890043427781900200030207747376900799881867363200291713912466614284706808471052808388235252261909103212826867046506594922935191694076875386114877942723943084047780936408660269290729403495526464758085651639652385646485985237024199763924582679458059906486612396601558018698452230920554365174312384351823504673228975328094655653224004498136308056904770072649319686025134015672211878933487776745078926398146400646879866360462977681713833690838724015864900396916274946025653769982124100983214128716186351785154164059895082619956506812232016104467681199476276703430720631188765308340194465546634631036078381115916097891437900000845661998379348239397502373060954958169076583908798750454874424574728189658309686758606993882774287160807431846567457072600896304103834353472715115429974456210050948963629803669119043535179364702771512854198723361497029470752652680009991345479251544419664450265156752490846075807177123821262729022666883453808512714440108667294052053108777974205364963054762844479103507416953688014173296857785125638994730256774737767184380678621418221551500491144314948912830743372058855459925361249351979904487303309662189529200340524119345678542217197938315887862269859322929264804215407354690099637171625781060601897453724750964177392119204768746212296187663145784616187100899583763798570429806448247147660256683718656251155223886661049938862577156295622170451471367601161831682096319535724132744627707547886349383458156406122028889033962710968993543948033161819346158873562605534545344864092367078311855700859213804556867822497265534310033364173620825014819341779914468650481489380240261448993126266977158400112352878086588334948384837531956704703340898732419043393830091064782473427626082250318292012731393591053831946775220727727135182356050137378004709969477361582262921709309947839848592834310342122157421281194604551756012965188534005545748204801216213191810796763035436460881065549709234788501602124820916449449151304007823923841938872973922190112424790728973157116526507616660236275962128769939927192104560927214322388333689595913468747846184010392089492717934762048893904972913832760123141512134442284948144385652875531415747478124987110309335292980940945704539656789098141341091322783823452034729993416354802557689359301610982024065645372683525870956182241348904164159347164091242076396995217217319257470361623861635053638668813227748002752607212988172809838511676357074289381804373922567224842302086205379582629140962608032215524180145526187163867311099739970820311567492716334091237248484741035562374274877518500356488347152816726637919994283901339392976481635792223129581187071538653795415024583034107062721248099616927031280360599705846055462141601455764653832355977718837827415817025084845642984733461962640881555585290659053427528988971313793656090515380217884582111265036546738472792304203007505113811153694814754025176077685818285439081488006163412382780258608641646166192498036336875464609136470229106576118272039369801874416807040675158314305506117156250639046569375891936825811121412005405504705348596090179148589961583795597965890582016613305329338786672198599578778471029003081232993821065984276713829017610958220791112741873122405089440453120469204862792624952117055255354773176072254341619558809846616109590021494044558171017807696497026161707067726397933080888330217983264260186354639091994541173411482921441503630490409265718836319917159832068451886494314970706136748202667836668458423607893625473361324432149817292721476614548963911889333446936619929081419146733502174457154922063752548244380180405207540201563560323218790936065042954083613967147944207382908508082318654040498369410207172390213213105139431740095589371699294459431645913111317130281222135178731639351521501340815474189178346395734749084996308044790148518042255124064470563788443074939202756734194574866432931729156291249801655019356609306713437155354635516984205658484478284661678862334064451447839303511689319848948427260431188876088976248099408045021467541441752533836806550216380212199586533675220245953020323336090552805689011612425725201737598423670186017426544822469472510386628991960375914731991505024715336915266809503193278485364975835401173086469258162968241280293135844185905201506438287188994033110008921225841509597004009896842494841266950045133663218976246459708030541208283655112407722826899896320197018135083057730847747022959829122373145632047668155586131467031663756501475540237250768222476665140710728659465287391175363602569758941013742516318520058459929660863580191296746698857590596645628117671819800003716501938807145683954296595302246015518325260761851723536079425211271886815695877761028572844494307693519454020141097359254344166374160525285392457662729394648006537008969618130279369272414447045905505871467915195043093632944745358402896365301530526625217847117611517533445733658135545306153987720002042843308838982148760974842916826857728480232835184421355215099000063877781654737093807543239588443424289977599063862926075560291939752037290462767189621918305866484202492395362307114495542337907300031208275903632630267820330107850691501820275239410353813136916255153467036817717225067218561818646474967063498079771954316885369378942325486181983114071748110164632440485890103053073344291037219003301321834825264016283379822895406114208187193060574293655737921442855299195960551304466494411329601683948126854968199180243415521703522079204042177159314544108743774123261798362556733970643450810376593763129537260078230680633712213387670294207299464681563613060916980732798480068634013357674206273702133299075185790229601443989927159899602915517198450851188263334698495844113554379082988876975502811194046457115770172631338700696381340923939757498486729053533294550809813631413706290510054334462211173966458239432403290221196151901080730758762969437045454264323071014839831354527928993396469119552371111364582646078704694778263161609158197541082197837719628397404902627642519922531253077416542972616445746392439523306310871447786228275780654921935647027320474067189499272753773632944308942030869494437150614763331616618026095145350568070248153811284213568377743067664376839864801414615130705749528080324263815163819113394429671087247772822224437427783962085919209538934311520354628759130284268354394085717313276016554989295406181016610867584554264308098688080912610525621331172425242831677958607190611758686406434020300992232370939027203652461842888409258028087924356461676369578401650403400759933217630173354247178958253603993300970985066714425894546006662014014614609734343779579383794682855244011890548838106555369836490002574530980311183279532170500193301137160184982158795759370055043321200744639306096791843301594153949104207142350372995974659938455328817490621614858183458743990430760280341266706700395761337981142857644396634375586577345524809868726945391389506902163816636853821708542055841322521226445621373807097745800558365717030066299028519847560595700819335082955359956950919599150162988663164798400250127880554434294060176818829432406906005671561378312673983225413014533398129891232398927631759533701412631333306154993201846542895419642622444961991066755364226687250902658629644725656598790577879619891379733221253427068689133404165230323429291739229743110060035901751465654834710897345739777686251848328923944604772900032465094892136443792775074311249792486367577591804187134560112199006862745219515229713516777312546817531076932304023214519371759730298220736390536510171678224632452715239488135040968294379988841314069150408196729269132000929780806806055339572576727789764789583040649399439517081962317311250151209174984290601936807746779279573081166229220028158094639289311206285426746682252260762886706911964310612486415290885205539506131205162608608966604145684419595629128713047711827319781704934260864416537068961476206483248038331836584241239697134208685897904285170571656051688886905966528108551463050628618674027561386048413872657898898091238140651812989341524563605860443290811091860620585953267395512920358607899835989447783386278134466181702352615534984011449904495735459617130482231600797058666789929105441041455938920254983650375707332900941418245675873248315034726533234607777610603148474190192352121972257218256428305474938105389176011547984292003711587029559364701068068470176381327366905712594331715531493183416617230142075503663404763019731486173450986251132112764437564913562265311725933339358564107962849468455684953773344867157935342228458433204804051306773391105406890756325351468517755034852718055908955915765198989331454951346152856667431757032207651662337969727171823403839383056550168171730750593732313169509291993361197713296347104070192811292169884214435970189656327698013736857450628972262497133779369315402837746911506077331301173019680847537880609753053928307323991007816785139848419504487919095502255783512052078968681848235567726613009904757136726652853170103725184220526618824717962898835571444184863808329843963298179376724503907326702946202246897530783992411754730670765057021898892204931233013126098882881241640283055312400384073240111096572669326922245480856104810936176307366930051057409417644304841301255397079720741257978041273338552374856205865871242811373778162097342434116458179056030227993695296632942677733546657003636213122403023250516320733269382910456924735126478046546128841772789333913261148666639206544677370469978515779878415165875913413253393987187691600222379300310585760732395096117427390214188431391738888098046298438223883889533821849550378368027559727184921705803305450234694662985103804452160411491922493685845252176405622370063065955203137519370027362892546633302834571260456953487168371057690119513773865343963661354426062068115240881150747040330614304771964286339895179168118849940821631753185195122204141979915355084130287030542752028592213459766312625790147791566780985212701867311862939867681914127721241490108159841780691618233828537952043303029028726869104168206206803824749410059149761947668862047993754240380554798117737092274247220022118955569518716325917704253600768980620414908394134219201551898234367997220525454837379117993497925569014841810810092665890831356227704699227283513285514536586391958594711002274067704596663696035438286154185860186309026703766869861173668442185090249263066660314701747919373499707128331507959239521159383180601826855219195759189765230573327993505790847555826367946788467200934865158064893554379939466984637346587293310916889743073389623534697723101976101008575295355202834807512890482323703960823928124172544848967900002957120614505389777581452983911373497786601805376794283928838224507609915543784774518391265709898812134698995830861762869329732681814385699487057434753945521315690255767236797153601599826488813647764737756530655068504016722235536127606625330051760777519376887836965660297522208723668704606237360901651485299472293742659261733890899231831793882280064976787320685234725095222547860222901544335264044797106040554852436365348044786902566442718396438861586504030894013477486675293863880225486082050902526501293797210593036915385884463656674494684252958299893509527891936907959104941460170024200604618181123551103903356513049054737258319197425869848551327569124745414169099334504651000795100826303838097263214152983471115659268544524283818777555655806498379297609200548371134864449225939817515186863743215681975320088076577794297214379719781026338176291189825292828627004824815140860820612359950024588330928905504464451986955636295746900140544285792056640039405347972688426179915808398607735160518612839229630453981176224207719116496060698886214897137955967774340765144863621416766457094114999315901828393054947740454827315185616905918209513191308786642113481703958338497800578135144012358702090734101828617238158095746859935847626956425722663316186285447213397976050637862594669023162577027039950744725534750491672545867867125782223358514921433044311706558163789194573075527903009828218890239391837492742240430870922930927374333205145351608237732423470697146714943686279155429283586752640428482544058405305461418270274044717571698179270260640700015318781318493606532389059898062503201511775004692656767195814429491872667049170406723696961791440189577160290296951182403845034497233762010061856223879176611723790362679408201818357332275655951512588927964544814973846359441724218160436664984548834885530413488287425833778487204867172374254676719847974949169445330664673696132737823473257524547268419785595820220366185582310846526584455768932573698714395578966575843299593763820794085174804248702660203993557908407653536092702330707801541434566667108215509842509337713229783868748018625470527439555422974094704069631516434869701859656211503203055419120188129513370241143012420655988281380357542668421987991795294822631575059167885514858676863553784631329860539571400495492816492751372068871382392807688170017319372384899008344106200778900303841742480333462468287940195329448422896582594616460555592010055661885949072274531792740738869121393191099030572759739433722728759474461947313411037008996658695661260286230932005713220765625597467658371558426055773822142697940567890355006863198000935363947461005441298322372567366093424785279435466914489662397938322567693296923549774059808231328539982645429637274144630169358866256647087280586650506136834026306445026000414956682696139362775301201050195633440398396326168193253810384886567521738015389112820651330175706500348601370919548462256345311993515707452930127703610641226992049102930049984344142965109936843854696089631631859584322716293315073104335180990040510647811644201792544254696793115928120986295411784133577307727339287502704963965793791439180452121060882111523111417021358080718861416413795052659149160570588922430054570588397496893386803720789766648481189800405386898391748536612368842871176829412512390696827724469634382195598686621114699008742072644939339180699137078068657193226792595078628862516407950178472353687152071545109921309863175072675186395280808710352634028642401722412735665931092307376364134639307396029662932380554452059563283414846505322041221941313879884652271019419142152626367205681526524084591633118779878432970639709766766358885084321888698436312960089386781078775151442592365076615664118297453634156767482506352072781918280617996696107742122435538770545041388184908191711008914561620449497566263894929567390765934899969841523459243050287592164595224012520235188100823100684844575334793430183651540265192701168986420717483932939656967919458600818793026525027658210323240651614828588738739223118255249356053537890975745535693007465594603478081996718000848673092552959496757859162066100397231371613187264796440460283106193782898677448836266853545137007270712440582112205212410586578056992885909069443055127825762434979021722931734697417084231766288434916903665394175248795431491268168649809939474738523164213948628308371436215570536868923458644973148145038658079842056513967015928969439633194740267844114662665621295732297735086135634816851773850758375250217721939576148107113778221176356452803119827090793030729607603365388061247773502573549737869458861589766302459353907413790234406209218204889253005069382810552063608136194250219794223656212117011137749397323046654904109394919064777253988615843367375461692876554031670441208202973666757521480834448324310756546317744962316509491152079977338539521920578454188233118541386588295810674902912893571557685042324676809492955575524884516366167068358004621387979196940195046139004388578224948086581816875012351653344309610938005919543200820462266491813081043853007218025924612221246521261652232662963797357402681475871232042411355603132394675418474087979857090216970215305679401298044252152308857450329928889918801890492672641860074635408365252134220492137503487953178006442525892183027145125807935451304529035439297732959415488599068546670824125301125065219283283419929536898275143548116425142551190655205207094421273528371304808995734135347483891457968213304115029601183711151446996566260222981995982462738717936978787723734477960144633673512088260532325572601764061857287039495598499310988823055342550200460633172833479868211482769537935172212247595595466312447775413710462727625654116393884435372351332543874714659286472955440973133552527372002868884382929198248209767724476943754380450912657423735912365092627819227571181971341216787166945285280525693398405700378593725451495270528041739556085604236192977000815480757545252675192100049053494835065222323885102282842311015200781553320466057409623385487613022622124940092679968245095873837293967630707279428211343590801208471393131655920563441148363660751805242969192363814558427676894583700992384762597581765559509986510033084065740229982032715486907199835011176934531013058326515552150094859540115835656984053387332395784464344177560656486636325931338871368225173324437277364778184783937734478328647754111871604313092027823576154162204406672768063085193980534466139529920264772174025787567341482547937612911096860609572843391593025279754672711625659152809155221830323054072705133466809665991624189863541291922795362031627927708273322029343708900503716782740732029116768255571363017693842430665477855717329738079686934377232427234975523064323080568236311451758256414376305597887594101756687023876407411813340654402425212137699145508965715411945730888673101218059978407238181477309905597519337021675608165867278791887595381380112878695820294196611369794496419600882553185482872597290803553768374895616049814427841759706117776675677830812648947026136771138292342782078690344464182657477159955592209858259144584098980879711404984297988792920723447376590797800016080502626507574270311087763223412930303481642766282667192163588676655224885159200719124838633478781778577079886752269317305881955952917300993938835662860607149036659138408678932919849251141748191637135079058194193754473749080415128089130378155031817295202503391016797166364110132642654218736267182223053685880530264406570529461411121073756174374798767109501198660108201146184098594129404381504243591919349500759577980232864905485725829235915081657357906032351315730880735511467712023020204167635264658024942703314613230207730511196592472050057313956732432070082211356647156615987466919337615143817691099910429477818042536608500326970641627738169788445239325833145197268409234495244267720902085026332806202701929122695670659698443281643767859150472920555774906547988879075616686422098654526201011557839063828502530368827030175696153122452062397554498596246870482789016885528008889729494076884451943655056742958133499876568730642900567233255629756426472888276664338176184949351431190376245773035812941623621113670580596865971855194937865188709476351638698066923642125636039806890335037358165167672984743470281478443895701922793335520268811771290047444424160530188938336653988527045804334508187420232692977141465861834669632997417068346967222667915313867424980531644401656793096817963599450410967741484549602171285090549955120950763911993163159246484926339925700667656420728997946167889167598754159502746958168537751768203588645219672289727025792055534441513624767881841155691096795379487812388737313879026208219263608715085833582882549857989717412935800013355936967844361431185181357294480685562592643699866432116340927845628683555782501232919302001710101153222141591083388777594328050324835847512185174689615020352852549240619280073189517030574851456917167968564214506392100690323859744775280655276350934815931301022612264703118314304915576626061334129928652137571779401695520090715269790904207471774227424654353582365779569786931492509792239673545137225689589317629599073634850548836230023577735133935411816355448553867350070546677194334550940708625194468142729543691136870986144261143973831761073624976219015431524177654285705751424452964246398444041806376774507408171488293523005133295548951723988841971556244718556138598954310943701440267999765288463989182116465973861736733805781929373709416484410477926352289376670373650909991390927967437928919455554860451895813854851896494422649536376717931392942606039026918569551113867307704022007177349931556887588769002659423429952954541316631713627999317778989533446465504626307195054320461810176209686727045301783376246533491469561748025991449363629417354659765459330474387036568709554585333490952627082571966247166934852458663115242729705383801322303909737457738767947024154213759601234864845548284537937841637948259507539593024598919361411157029114613972575304386541745609107373943436400706194135828211745243149076275443840837505098098458185883429019744681722366421692214866722412636292016572657589145068553610436281631292438932749342041034470848692927558307017848637388117172901339061178742609625793831738130607480524815589394361552039088130466873243075124476617604785572824902218259551956503126127808454903853471068403225127075798509604330117691512615513415791890306910075307234908605160682754177105844913645851826150194386415118161219670950755801657264434398650223670520922005019379302476742048179990867265314773144173827260409941694195378232274303082383981730212371157268873717696865186259803672618099706010523905638711478549523288925743742762033553498594376213480193167544593959510851354286978769322533766986507634653388845208285410135149534615670390167214679382278940069480433629134339214344363499868490181334989669930963226003627444037834522449080981210470628194146968688632178389184545992884879305996628740196800252189425145504080992323421321349497060789266915576702103350434754667785170122500282452995633022294878578497598919056059047916559270911093689433027104961494591484351887541480476400893861461798588148032031323696622855170352149400938956662689909199335660117453641039166111613262837433948292894110923493279475247330732142661900870443569281590776491133317560043205664532862600348767573885872963129052808359066145785052854876574964379354446299225713750641916057634529569379824261912217658755468711393939813010909321833542502882878281694614009749570881519080818216412507237317043433506152788685750340280682966034467392918455530437502635436390605911191138373951400965786968223241783798647694594090787565267122471228431332135418811601739501751747063200341688463653978637340353780110749749057342561718122701118873726741359168819242351380285769021774030829030594610969460467293160414703814922250059491947911800441209261435992866763894405576842226968971132146432655629138488583891984902684465067902897986806005926942508843366285170040702002435668562943180145156725431412298078014273941402180942109097786854113279795531475383774669925084838014522526313668667137731680500969667221679515062840899385881039360963306456347717360121518483850706251950408879300701777807398107240526456596251594767931050938496955583410604639702326178344384036349991245109317519719630690409056692015339108019538565094985607242865543678932896556744315006408139188880720019054049673833834170626760448412317097929841773193711272295172347445624753952849386359607355901763894100974493307649076149952236067241699319608583623885883649062473816853679003797246302073740672292373565758302614181385138628117813597982653843098182735075338446683913143313997681954169224570277018031100892417640273438689396883775055275050793120735444666629492440573576776168414988827582543004649355428534094993704597493165470976423820678920479071384105442116451282900086747057429164426029700821819628719189473678184688614973538169649626296129528564929101987154591976949070896184992723957012813984659725510639695738074712446865656638117655491033342382195046912450525611371786540946316898095699432304615101204492995707113181066755400068374248722759386279356284083698130639549537152154396449253999497677910629572395300064872744631247186595325028174461118868948156331300010312464380889247907758718348666970221268368496407980450907249695902801295046649009019572617991117633755097096653630770471783189170593941381193459625739948490799606119101310601069638649083108150414817276510277314617930881533966610620083009787745374114264091193899021913197604902436262982674780040525437881725474734604594856619580655376116193788660581570829080738638933997386764913246398249789460777202604028111159102409086140973708354109334715631962505092553529352597706649646589799262986615505901509394352404036269303683682520218891015104940560084730321153338240125981498816315448089883232183714799166677864229851716039132673862609799741164775933260022471936070112339733682277469929910960164347632032606314007089526685917619972103458255321783382509465826533395104344318161488180040266833417958233380082999870457021401604998586672903651326326324144886180818151390809040527659265497678013323724205788581896176553769162231858408278453041653344887033446967987351595549083313918534102763346618782485316200924958404937716430549314451749054935837415192909423461307520698954319285821757117136823521263288294433199407853676794535695303796044539660529480763885918882953580945643595415761890911481020309110926423291625009991517301478840804993054906997935022311152169378481503617572472871342228751500536515245212418582430311880715223734983107839378122280108441779315813036666617082450575221831473190802977127786852689573204799496108053438543049937087211475341492392084816933086702225826920306840250590510240014411026523027227134453762345821505867311651231787474227167185604869108583610145876373993945755646563666896167107626085812492441850075879250318286878753837716323479849496130073106529622004580748840747163356297761940355628226047376271242502767197080571999810497107391513177026937756438445418046951155905856776243334521125355850400238694268758387107762478800845900594076227297058732209944114547952489787888561148168239754985725946592376098646900850806454305945420219595574847850086838826060399388216198951324939841130559102016832983809670076458541391050668472470887797389296985980044973095412988894736604588326863961971700454418031870569424298045973583885704313810020316257913311116267095419953297108070349305279131141517895514934125339014086253613822325057739856955830317860522526359501002985144107305270035199811157778914225812142219106173161638035170679709907841486013987330042269167131735742359199406812591963628505783348499043769308370567308461851701064351894697786998249975444573192009768629558186692145172933309628352470856838889904754071931559213777820915681206259391757806110326894463858509588191801336340139722129463120353820549482832700090980282759467528960942956865971047606977005726823373081369186907567980635649252209929377570141188061968348796739890511860078533561259024057527464729148196654480772111534194192801925266941354773719734169812193666907387157824635059149272821243056679662689387266677552915711836451635379715825118512869760295249318239588057493216263663525641416224317395159721037921403278112546263580594430133122269553729792246248988867168206273318382334241761968463917697331566996725522939074854222264777499034426468735741366164219191297312104295363955694773643438751666117943753824194872151326985778840729171291264495963535984156630998916582472293910851272944298723776971495638595019298720604247068124560187460450397507490900140066316054225039870375432733551407571455136564339147288835008469657378732439057918738161658347622940079565798185155699634614653931565295769645899583516056117250147173988486631558926269772520583728786976245803641176045589127902733618842337551293908915662521883725870594175451392194748880920903105491462505890222043465269185109529285934571993919029338398518350531840870929915096975483015642751689366797773199725009385178045220776161168870582539760029451530401769086290487184572896334530389248011844198746428151733918249575311760045608050681618616895278706558211076842921567435303422792335352686319298424951378304634645337395114843431531147730393293660099750537469708251818222246103404721383472640586502501042881962359509979636012653517956184426146201801123377354787981825698803917568652357855935809172560736339233012153072792718387319801959619456855828864506384429501585744942317479653524161319688096034848492048574570818924914957936729451441816164431462296078940342662693850889509127308059877944245812893821103369134710269381260296299807074692040457714768060236758514014560554579684216600563133902529322775376085049162795267304071243200233759595190265083111686372056044893750454029990347459934735625715978714996395174009101235037980839086831897729725045291175780171618923164619559957152034961763829763760275812664681223929745317953999290316317967622912520356301552183289019518956499464076823729216244652341305055860608035089266450736519859763129864665047732511306108181433710373656861851706657641157815248442924071699661565021573526377553519118403775906061527308830384859040727062213846520245704281730277014627101774750482739487188139714152657540945111105722887140821389746981537675600262642529948281700301573257000665956237428049422372706448428764719521166682426066165309780538865380651449640981485496214771381022704964666548438471023423093518867083103673222526274359958972623831392473411552841508207245402218462874272938266467016289810959865349691962049132182151546102791401345418006757646360474164469888681337510060716017449829097477611564797769879489064756019290522758417002459079169845231888236836613117462504574234685909908164068143767547611377947957410877991902127292717062098884992813230046625054077249476077526698374787948733414440293180721326155528450036961984756421364869167792894503197005697002648802264592457126395425783297277210080788449171826612356791198290272366741092571787059941441872895845819316608453962065059492990831129722593264237486149899496225864269260534262852778391184350955577596488475439006709585670700770596613267854179445969910971681354773705295488074709816526385070142662374405612215502392922480988323188200023180330862521238286232001253340772862145726369757264959746994780661629423039296637723750533009079605924342379334185744968011771294803573068599976985917202274367486811167411980006776692897393508984380364817917298512498940971942321610674344142884183287408579877990460134221987949298057110164104956769466172452411971607605071814625371331832508552913327205070145590836936598348307564966996137216525077192779786658530520041154285124169707952001274032854425501738345249722269913109496838739343753199527439456751277594032623635587845163087939234575134136879982099633884414232736201423007991945775184330144516782676798463704014659345189923519813920552967660884011181802231772417946918620118374940121671443078003894002482268252661643867848056706105681169321951104303904672180721915927037955505492415255560182538134195390070590774531242282003611279033872581163362885821425142985441723825913870373537494355658930969798523845901144764099198457283440474356023658391747486984912475483340770206870206856241737357895003479728123308494878214784772880865133353794654507335688128128228900939044683818198539508420151296860092642052626209391175992704390053261378647573188331731299865203782827945079271099235476028911884498121438364646812829338636246196557984941366087002313004245776317419518933345697054333796476980487447406390801338625000338754016661252290399256318383778265547341358988564745424434800426093861958869278635593009574708878658148808950698912095546715500744722281275534273458837207230022361612672778933173613022464726081533552951715348464235706039097118733412215816243748303682888545830383172183181469814680030281134757918758447659723547287142452828520069179117893982147820872698573546116324002962696368205602621145084887624939424205455502313787900904745768920215813022483057685333549802461760711054575683807583914630973402332104647121924793415404081234783563650125827687942134476826993297302562046506706110742369453563251680065232187178738411039078283235990286254402570763409524780825070554457487363022734622737781690748166235557103748246759956906796063990180746012726314919197867449851362289481603056697655610707249504171984436872474332330402119303671904323458397606180415673738467679522484546613812368859241240617619136195351361098710230114918356597433971343607783904308633360846416596614962211936884655610912396174553199045402785738848209830300726265063175398316634907089429955595973444330523401348837740439305621422705906118687433600969430843967671050446087497722796183598096942511907403249644681096293198532558373368749037931054274008452227668408521137450669176889536328011118581019341246305504560705748072481249144857327357849174610189381423756542477173265649357536514644104974171231792209950198339098094980199312887559806828440992306280127789115425704263985958394568521438979743532512289867824410238911314451828561723609619806206689681267802217132564797651501950201547564171424927638199987750905814951080783382188125828291857236802699961059311583847793999963808993879371031182021109866848082047639936607610834654825216068299254437890732626794076877686260934352005259841191161197387855135065022078105348295440906565554265989387477428479628749886789041368452250715026760341075181652828099644464601782203233860921771749643484668400353319034871288568716700576033213179969111028453888877521165594401993078855136240964183132338329500990538342385930727753758469088254160115509216134766353962489610744507589313047261615257969855902880189058021372166851620947129556885618002613436997522648447754340205710266710146906250739465968911118970019682189882145686923744628092908070733224126775240287802139937996133601705158078845943678769842362541203074845692912444817602909337748220534726774986699879919546086905806477664564415627351153897458319613311965998810018991884443543432233761820449510628829727194851541063840588709873952458329367961066424586774610085291170524605797925767466061615249696330105542177727899483151874816443793744792216158781684465890378342908782345058967952971280807094117387688881042685657510488689254606569157968220008103963814057786702527424278072980984702685275886827586331253929436072338618351233616616741559659910576425515018304590189307077945015096368978312287993090947710752392799684285112686631253929825346827045083330037665039703987764098444511732140711354962031157731907808909330890281147197588524647632742497089981506422174665887648553703059003134053743298376711575138282701626621500944589654041608752470426061498623294165762968824590613447013188604641861992188185658356532090556839914318087853094942612452484768908539869417362853788704209762369503658644737554208484360186051735939214360759117874650331263616659806806646832416364353921876683524542190939282420430422226216065650282162095240262320360179727537470720226741306743353008115008021635137442222437018519298696939885284097889092009430529066710246492647243701869824603040549431227969507548317242132003457966152374663830834855786990777114182593781849970095633916972512113851196978965359484585767636050152970113011900352358100676859844856750896057542153832170900895391885751886405160543244537183253038065400303035635355513072569313868409531495902597899613718576834834430940367128144096866081753395114911209313003825596500239137718410806072030523356142864848705573680735002578393122680855877047628571631520566062269587430858870369155629314778386977694625208862170899308081113534027476867506910431261523344529392753379351264239339422901783166576323355360222074665960547751468094925322039093567637495786271414775912460428490317809966278114291166743806115284881002771078362588354180809735605298823643720243694316828054168384558330244389200202087849418447187853977648806512044837247772785398550690888750344110159615307784646726186163376429679955676987223136100947524967110332617078109476408716276192280160143147881738206629614796767216412152057944482776508520603779976970468645147146480097348934567265638650941069595689346715238430024373992853325780610093788421808592202779544872808252691046155981029591356807391319258861768870449067935401652917526605959373851968196551560675731358098399286071647914452372239945584002531051948012869649857560549502117231604400301478421144959276549390725005059316993708253689388753535643826007517419803867859738482986088901878995088748445967328453766718137342537044756891844021873444087115097376592438275019952892313971256297577735349951081993591993371792539062094798352085747471915048708546266340391422530265491950320651714811110032684453819870027275491998023389641314800703802614724254436338501797698855797663829701915943570635005984722402558512354823498271955873267392107908076175736073607493056820259216139730130188064188765531959716721185172399777886457046919159968739647459037564849933477931510302591315540670936438660380264956096557781432705636435519285035011690530220441288624857547796560031606775484839884801618992362869340270619594955283558159356597525772509357071561820790587757922352105078741329428584051953078596937675620552083255926771237596970815789170265085517300580618967001409848869043226224083163930713759708863539696796061325520162675984679515565656315395557238286182390150625351572192899521381396579285088858563967604155320032524762521393270354938331258947732159757696755751661887211681043810767623854000618030980021042870750460956622442014434431670249723257631645246168236466901061998128643699045037439129743025886114126933596529281247558847203407508090322348470356754357286359435208687791964430837945101331237487987256556284729768271123608059815991316277751235525747101632985399683809245139377158962818642211425215477401640410155605638083495968567372715617769432005614373399860275071810172928397101160364978548445933397163197380239579525160816714247957040185239817847074380952753470767160074534330450971468094550808221901334597871846616467192199924862823941209628401585247065598780490731340151615918317137316839911259694895918265208514771547812536091442508237439159807267881869117602495203186040582226105955571511936192093454212835417643073149558683236690864179841721234658895799110900235668275719151134764345603046391566866389430928311655593269529784271528444414288498713188977941080246606230619794105969997289173595434048983963447141886035589694904652508574352333536222331610489665206197215677255390879930352499791245338137344589194003860655108742931924753501022517542234847766280489495012790511418577757650474593480634368618090559370620732063995246674955982304800166273123769899790361045124521287305343981272011192235091928920120178472644408429814886460502215564179754932081130590917325665238389526326361070660385969555830122932168333290504397926206789937092736898572750309533568106756903373632137186904694965886295671265574261766747410143259116525414763012216353409285398422438398958210669313401851801878043166978623268883342773018710667932205856656690813232536192620931482919856453480863172253018179314341514961752283131670198731033979059728995621343364892640792399002435150252901473963855907792491098792828658303204817644344419938521790785728126681901527092317682634366801485223812638739565295829000100900338221577622925924522379428707238284151320892160521262722939481180433919532664602548744278919046082811306641641159171072974907718921741508938765147065976896109516364553300019728160764821602959032282514866509209518957294747264755112663602889439558468251468999896352969090465703842322350186602151865771293644441269081629814076758441217002495902356025778114759577839099022390962464658688631532709685248800349496407250207203545238203858405283160196355850029032288433535428748979767801406618825754262285848401574423670033810665894901825361428364447604956089723445415623225224268358738240778389182768715791254515257595118924156314236811316987137468082122076498019833060887568670652984782273050296405986590412325487861579710558259974650762977755176634645061024100941066946164039749694145268549533963372196269942176612434486586388085693891276626981669701537309555771836673109766155269505589633509833050551392826175323661113887432184719363465515221232397697602745419059032194755995242136201334087333116180733118999600441889533912972540259279762116296125354306607249908922184170917066052736382525209116948203381173657739034170230488889058214579512635471466951106243508218982195627020310073653235312854979423861198470048403279619004043948113948930210372725828454064931486259350552998667045333995862285912144423103451910519083410620935733101425021652952239024703153588451203940381889190626761271559544078627782730486131671150706110362598286283247081851882798226389091929013927940530814491618413603471326436021838485371175797657554471709671763228161693518983538978728660363520004122671415532670342100780501488207555721463275238868146556809698040695807116998105462650212811386698166204308595878214488936930225737993835149498887556709649657709185874507288997192938457512952359967393783066725646716465627515652916501169152232680059427571571678261224890082828722809492014563250428449181447112563694836380290918642650049775922778997956189925963336965237078867603270388625639173889392602244005844714319599855850146338527427671991932886811360727129655716070778748988504497534417328356045475322837652569476459391994441359290561073508015065381164351611289973884094765883037462225877230079581243108228668862823810530000720792019505469795372715680473162571487415285183634052961958104340421119313377650322262892651093636335525614084503323000016495691263935607688289102637273296686957924564695373701184693517128072582770708503940484581434634529925598036358860451174205722496593277458897588768900546485680967721056616645003004938736594914715911538488203030704090385322755666735529352757523968700026147190493032006413296521181686864254807777453942492223331740934979943378023628821218968673308241437259691283994340357794087445688086872340176631048259637678465144353533905981496425623369327074486976402579094525314073415807493748432701868742527007157907384727976029744781420308381835440141310986080875533572235876683623353184573066719908054100488785939136008220918008537585017397177694958435087707500169518701347049747486208700254839680234036063295551447826152294154392211868162154935692195121501656300456796745335296101229209581431057632726346213818500320802933472098291130548636489144868124018666046694113718020078135144437282809417567110397439305884471941887970562239490734266696328918133359330948720797818855209165078152175526762508025733218013849556614090648970497415948965373858540773914511148981459259748508574200147749073484133878267962413287070488652866528771674353937699415384486707922045596417130693905513384157703629471167967337023467759505983866308880919065735230207118248586361848059861030774749323240285366431914288159440377383368243326728425506576833171582486999261604934324998859190199264110157617193564821459447673331439321957375705358260759612275554364430466318584752249858853051264944578344630560239763072269581483353616234310315381406300957254739018780428971858686277239275342681542512361365898773352192482233819095576951703139878362249068918106476550100270545069388360015699034420212972799488473325611587367199144053444827653051309579450126588678361965347254996736753283798268585882708514035080110547616466573711454028768990977236611879442482097739654755100928502247710888488898878889559040133341667058762746011038680802399355394341172987601720057398077139625859929423160938190029708160575652250074481788454163403449300050725502121853411447556168392885251742748432635387629128918515543926293692814332713743265839711880021688525100149444790371759085873667212890256115617061213978374153986371411277277550239042775113961433808736705461077643651771755062723005508636989165614812006186550447535403562995141207826447082406714068885286135945524601602484903877733156331364969228560549804980177585462564000737107548817749193099216278518961263172193480724994701149351197027734027858600338449602297965785699925112311262697349418038321510751978427946473892154089228766264367907225588942276853216488961954009007994854985939833541665783632945764724498215634620771815060110628561507713872412088243736316387165594649158352808269031721756127757024066285313286473204457487871072032898364843138109240620638355593589969340758822618182968002824354005114477420838095626519372565332204800675638321044674497556467889360449657867573136281891709371454033074936734748289617675340419957337525928829397212364984532788722602839909795791428321595912230634650494415604510640251291546591403948906033178229498410676199249631783765023411080054080004052738835714563486513975531133022407213195101351723178045068390967583976214643753310764173797843914970167711644692365779592448227608287925909998045174783645461951498285009804353397687181188226890397847977571142134454314269500849844651114077534150379247649958937355562272561285823839761384977884750184714450414382891774322226938427953441681795321520198627377245870329877758780772189203949760655794939855382373626429649302660040334098808427594848170157077352143608714996096832962890300569296515375435618116359813042820372881944454356064388838896286089425969776764241300965291066689153426633981912221232592051742992315706903166031215219635691193251026047643978313744693219378235274624365909537018985936928055335543833790845829118733857243843035693164084901111727305902730655440299936222244328947622666704110271097243161036715292005490933032582364337073750601980094376303963203753147361701681072463783082080753520022976388068271899240282514596182761265153424724740702793664864310905150117806511899845067721950792815046027364045064885300348538608153653524551429426731682700973290681691187012988524186778215791540674002310540809299542128043527865013589127699761627674353730132957409077021268623425928383921199027407403280210654246877448688875505600967135471975548914730846401669046139456865330442096208561682178346674997874002031843359343691893571868978611355979784282106302236168472194959841996700865135454261003255103093727955152267371765893021157082285004364999711368639161102274897602549679144402032615808700932181578885000931079668397659339532156846890901623769182397984112142928032449499036720207818463697958204202925814898079611519524639775214153947477272515280129131489885379580204691689018653866311133222226378823903539786464383526726575339570268768757788218736043663508465885105018333413530827656344675316890492856443891409091352596632067325483763659343533408167871964105601962406629813965228899676128008106715186332704720146214747936535252041272739175677112169825181234806498738696332013213118190148294617357577474749884631704176953558160617788503448759263254027095468567744216956155962168623679547165127266115251237560188639176619812341661837060864534957710959902291763668336889622526810572952568411990066585523035208877367152508573723859057366785511300468810951579134416016947815349975490156482497275927208694324220296243145268382913657437419390509784384850168431932011740402919591326250690533604905685654463224797861325697012792301871004460571723806701766856953182442891976621305141018554541087292352006888663748521284505072936032873672680956646341912163245716669095436575222891771393545982734848292169955097327066233913641702303047915016250878270976182565149967543666157161548814824892038729311878283493695473774733790251148757383243921487812601681557065838570412793024101824656290230392401237611354552515085939810844028209522676513734838631277181535937520066242089990817642587862882202745116415731249532783942646377191363295510865194394773337658208750066436996413975580958882730734200328126291385263800450390988740031931236054779330458500496562807644879741783123095639326568688250752526036890525715544886334446868226999872722923344964825815414572578013990704236597075619889481725248217994975024379975250135626061001968302632492031941722641821110226796750098693810729560794012776274439877362280637532787894367753126679145278815496794249557483999073405385568337936348358448731982864831034905859138071172842995989203961768345234764590213457354223659240544569618026272908335541480658474631592383244943866585167601740238823236581159848436159323525463940282842347226151940468356413774950060083173579908384968628619446184179908311964822026532464444934202776077600521046566998231081671942762698151305715395073868216198480935053156754300756760875042798790380880170801412272364499236524127560694952514062442063054534951306896341116559643242424378769230451032716021291978360663087735725596879341738727261657052206273313610719033737389938741679474933735272652547700429716301578602020505603846611879442703757846432248294282773078374869195738899440863907547054819575275306069184844367046132839109901094942973859835092807682105209436882668524509765531140921930852638384931648955738324031340606347936117855396471984413434132164431296198871272233932812027878164466939356433097702097043339855772685080566073181777557834542231910975522081698433802218769110214943748854333552862601397522970358069725967314006059393900827315343805792796135591603844242304460611938375032410690030293960957460941245638984264783761510856567303406210058770608707134998669871051541740135653810853209222277436275039329099069675830143919284496743795735739609993292265089350967325847742654169861341658553645253912056188340706972212506143748712684833607451898607800789676514782851919608470111921658693768394843020001360936537140855115002162128728170816428077464222568849902209896776110673430490893609141820240420491465504316479315578831971996461391600550551974099133527891044480003059673852309476039543818995644562627278916265724624374767453622387637262204563886043960871743072479469769062397361995978117918503377603927032866094154110765011460219760618199787648329718185674157893014741941574291276208812559523181205754425554020903408689972186325037928967327455258340346835593993779068234522337009393001192042099749178349353294231277333492281551131063107340522764358007938859206783612801444948731761007161940510633836546575967755358025533549529900077643008110826159857227103441386462605523978823661669601151594678573040008257797205392420640255263249370792888523013991382763214392902272740472649469578769750284098243776476985574594036908299232340940144598171391500237208464686729788226533603034553563762524717725238246968930978123745143202674188815132858464178591325614667153088001818128509014457991876983825829198066842078994183645091829066216004200591447962988297094457589409241747068516990245557056331539115771571542341662230234520854156759399958810680397206844660220908340258073488913818966061728776449405367574729342843134751257671611569791021800817074373173324433059038751827139756815984470935226339432385123198138131185552850069315472280657978184504048617562184326923724534508450839638386497240390384991701702506260710179270723269911116714361313002580476100021980943666067751512982857490571482159112589515081630409495420748155345496838993724423494565904574422220414583265147987166259577181611730655170383414403988762769985005237640071210145641668077894328617376094081815711672974140844739488096794446332293497899785962079534807372513471184273917184413206207125614031359839629582297099374953896928058069031544962618815844188689618204931090013902573792994517699921237708231232296695260062829948882699705890394614604487104917967315597210405582056922931246034681504254691029763462505338133467950433087493262699476890923745529456139131103377666221933155089700579150746922733205351131843826216953655668257177476349121803038224350183757821023444746217601961450722425432159486142375065388225577244829471038828283643121899881483586072724779800893352859295019969973989135147520359437737101797078212649861697416293089408932899786783516440723612157640178739508781812582191174208895623143725029145360555050924549314923767990164579082857683072686854418933944817296832816180523120200425495481876339797067907399383721380161010535965483830425146552212691012810632731954202774810925279454803226766002478708189683242565059616185602360580355713908156721795179836544100710295794850894978535596676262508562385268891777410999225599146072441704650093893915912226268015687038869469233851635000686210576995176757207387286281672736374625627283670650718813317720148564991450494623562151259806302345747980175026833256993734838985248054351902868247797675721937212804748450750237967579892059443946774252026813808298770728018355370950787071240446020629168061328258254167252802381071912541617425127127397147975040815594023073648737857980489779545735795174049435463615857326411221427142122031836121092093879113995989548252356080818054321073696277426690074441752286469214366833892282080834463345146122990316095701266730380779681481740220557245461826410738603844659690933992157640480846626365244792802541942537733910844596837668993476934616763392324398014084337454976751138188721114644859673920992298581146405064919177679356382449995199124654306231943291331297876450236360964184251152709925465423712121978783580373599556774540402717505166081096094752397789465059161689746466635527843842649689649907033449232228460634201042333916123927755778224812944437430460014678600057957950086254819551510884663954020357321687639048534203936254437025068910440073162796382865084045066607677205055512998407362618256253585843504364540055488791357824718458055036747828994091707743403077028422256941040662841809612358179579464909590930068791934349818716535526399827039161905466765906495163583588115296996388189307897393554495944032760185945866404585955239509344165190023383945372030406233695560553586161561909398727783918590162573750359844796718140418815853889620559959130977381363705480132230089969472568563872543230990396067142129493243142549929644932067641493582281444298624164350724451804481580944454827422283129940445223042816909572439827502414605502697304381014040204200922112836899396991358743041669680091191716127266688383168285237901402619048298932835819938549563643276136278585849268873271956709629488734965612392148338968774906380920565385252989897235081855658598283434561062181019352703666598872427487171017502506292569259099929237115273661047552594725634519277358469056576309875735454261698005418027241614207306260488717993225087126015028742275641340579858557595082876961337195722178531001881839650064538154778525611140556088375327130851133821865099647807616636816541816860144799499689412770676773532506359086730289830279385304491652259614438932004973095815735287730028071075859451097078019992708485533691096154691857625470402063308529839629321199568660445177583080613680024753659087250386609993580686487532502420870477292613435375646800539667043915148237986569829437011335291391765817435408591085414719610449219593274874965657834626126509908457738476926011981804725282982923893279104923773946120997641815228643051800998805318870248126310076033578038910925448666501090456947618059165051349933538423204665333894090178600258403751042873588798536202581938034530349268793891417111312657533440820399317585322455671862679799690208074526953223621450776485065344416033392692423970680129284625263235592749290202141362868525526189031577300263756457767260696370339779821654773682557769789307075014140823532824166926728638578894740346156687505732864849565585513704775732917533444326795448797219876512192945669348863418065508529660261754011713556638157886969897791131284056140185506957103014050473869324363215044699956821509941141933683493789591059991484331738267415839136522720487831615891823337112029928655983852057952499443362558451797789337816719932731694007177389561174035359292556516020355121549459059611151698752852787982902057301932999509119943890393167071312529528434151304948981025801032786825589145072087150320704730612587031377409916131718868782282027132822913655913009602657266727680542661517988148587132618402669851168235889647378934999374881300369781524945175496198062105069011140221722163130804697500909549126206355492151681660348928426830606102638367201323619281473560754550591740440956364214190847865645861526219071078778077932431560675137989337445479912527106924206047694421314593915309578465780927468332464807712052677820440115833818733549318314580021944246228238231448713469067170711843636570605785124304322621585109167363395259946041019077030627387607937476264259695365273425453782057543630619725257381584584846657139777240174441433088313694313960832619992513569225657851441750068172640314935751990956255549430634344217566150054166725238573645157948260595049297933989355330331644526672679373881923384115754916090034644372020508382534744773737854333808041655753396659798399648460574980899115101105614332006741647683541056161052178546184787851479958409436888083006842803055686986069487454239535808504206573075703569096487350639534913012941012544803852472680121173420522651163026688561151879579335265365285280430060074386319003638073960097451856470692160861184533758126791042074742295299397155417879529173689028113647847076101244001730624170041321031577254462042868337275571108729105882974178756183049137772990940916286061203043638493611452583921704694301611981837198618544209699476579494397240196086758281146967457469286071309596069070556821254210884612420853381023811377486922323568632240540607610933555367137829412823945678130188190625314975242235769928174741812926133905767040202382766099499611562927552494969728480077757182740556773032376457866773537456337720392735243972451826853888854418165450389673429456579389283156978523225156273942251081177687923882543408286002813223679575938643057698064087270570010270570722177027572876460344348788735293905317002337030998835722098434094640809938678406595197033161535063510493620196715119704656512013350850724850947397282915626016774310837514179465982894904183134952133661711237364960744963630240275431832751037924401471201915163356877955908672370759656735314847574538514332760501047279902745218521272372492000164932140852424243632332726510872832206572089152121551265311694875277710525857668680060708574263938625242076482382407731133014631551351225288247937896553229988218177488379438225416311091855727356458297431515736091418945971019218238546930544987140190643086820462052272544397574663212178353423872224354350378994966376676362354280358687254468844734876707380457636865167473143326346315205334116477080921042554992691039512525317006802328032987185394659603119237125070947627538414512558412699689044124549436239894149368058616493931333608332853169032661756808695109849484102930312512691240404151217687564527392086658752948952359232959140425137772972713221894022735527198023128765150510597609497843978692707452419698189745404360332678193224252408610240562169602583817190717307265795941257339281881120815644425228736229539640514784599020119520091851781805555362204818318607976896092522042854809881546536800547920604736466404497741572707800709738300741244514656501772923097411037859357251885398413542599670564022337130166732323574267773376734471103168662523251393641220702955471375666915393988443351188447841763714802006668917155923674356473128447293357637029185859237844983195860705219650886746003235665297960355781002684311838351971674540510375647239970820697190366234392113330192169469336503740748538803932489618715113456751840595903605657940794016635312742930192800200585825325017647067365223535030021798089999418654274284178060007469753280826170062085763200292458838536724447831459086138047685012321677812353327291281249494710602839822027571808195447432160523352668765873634402987561221976363692127543102058259434902392245437485108980519937383796565237665271008979941332871682314393499481457942949815843894748738267245367172281061984177046006910344693000077459362199251502441980858328641243290291150229746740399656915440806574070220893989709502632003403067115261476226794988112630997888273767642872902821366471030778386770158890315535941625267572619309992248975844886866942023865919755046026489647937034933884498114184770844613319096475119947033307176645431423259793815567418119845152469721558363783000421762130609959327492128553539925889505749669853057356816507425328037322007085516825740018724858221862248415446796271730500832575181627100693008512369505811546044902568138335350978728074926272065209003050848471607679024744397010599140512669539900912114901633048500960477511225781076507941705902012016097037805060701126341501831791799275721505646049300057963821592106888721650429790514605900779488661198494163647786017758411443407893223922661526517474034780045559524227414031217394831774304943692817284200242075788463239010738335490550349595219283044327007568858172864103574861677234257211633248508672006008500423996799838685868355203327739574662059564357080689994573832020135834679627799056029270024201387219811569622331137916890930691618179400623826100915559886171357842341780164580983561772325723483838752473802259905762473580532682890041332206571033349204196934274884480310173427183723270288951696674369395473907117841356205963329056742078736460279391846777494265983616270621201286828587613363582242404097567558446407591372893275180795874288873428379520720939299703767943564728026495140389453298609860946089372017771369585312122328198567593130729549827703062655292116706465006718626278670818824474775096077729760239220668112453359165314483480380057171514299807281392032313272860909388913687448775052975539077512330544300797134239407616411115827889799831026524227058164222464881034274648006151983225139437787623205727146195808934343509903439234293278589813299396216320541577549113086232155820597519923523873930420887695734300431909213805341761398341709914268852347883354955235132016877272431193365841415315303909636007233739394295310388824681384786205169674840253254125789850771455110438806429095198387312274864653814456447854664026751157399607468924731862526593912892172354567802545877270686126846779014279500933349151185033144687653117833757737568636633108150630956976825165562488807706413714070227517840592280755688856972001454714039337112224125343772011610390187750610186594669076009723986286702335622346766191047146849061641736044888197329242022218322302731516147994978666704088764571708913698388524051047692171724997960147692383930962100667989381524982972337191005215059686679346496620698384178404098912618869351386351543334846789064400331655258536234547759200003674992945818885795435395600920497289693335315765659534256894641735375043440612943683128896483717217657253277559491760705442414424035496158349516876655574756288580456498564410537608290940367431329941280562558521375549001819200099451146509135076117587227914040085224979569659250709329655889298459951292694391472127895257321675155462712528362406459439220150015868606795166832524184082841407633564158910413158091348989213704980146713862949113867845063638537840186159865406442894312308156917801787605866410016332625814011176076849209751601632135213448535057928305189300781752524862652269157577330559354528691631029144473271276978253870735078125667564345662906229530369623036785004948945683587251494203103706319865769042947043652857007789912978716740181365766244685719805286374214339593222967405079460524184509084754770111991078882680809168346036469358602216186880794435022646530560092101744272244896675305062942348695350650472477693244454089302603675781800247100674011247437926565761077140174880173864111678763908038195232894745893235151851562533173468666842586758197744715384287687203308382502526357083884179408270466105833267225544158615204782996723695175836906611090762505070011416917731118368744843409169912367475950501217057234519688918177992967055633360155276716280672009970776240209293907012250258596316229485835952472043905042065540380477059763868761886455827485524003361306553247373411217467769903952712638719324704778563084459178432860827628562045691424198538738111984855518058108970458562795255591038212974510823779712549937674195875300601892796953795673682767545543011332023287086465305972021318562849475838113190856227919552825565287568912062305466711661239993640124751667442487603534217352838630024810469541961831479637289513331394736376143936308078788390039440019317514050595341149065141287057832348795116588946588383316660856734837063975323603230281019042970824459133930312159622621821918562409537720514141360091386734590894735235100284843326778262075406271086729002737379122327590963148714507051226488567573552768595385145873550125610477833420096052062249252662148734193938059044166428891963007493919469834308017878848490238885686484254298939392108478377848077814839646468373269707192468933590445041809329519441627203266211421040716515789020282839346743370410189709916004496961776477736577921861694581135993392632720094634098366194768362578557713754561581297044528544311227642421468040192363698849284064210802021362402350585027775332111467734663307847204727316425363593299829202437950447993881936734182737832835226679077635250141184963809944831436643015986790482817339788339943552808279670352590318863888128820569326679146103186952556909630125477675007845299868237878200276500108112072140386529432275468355856906537100121640972181271257189697443145859159855230446967057244551215975929599312498888891833008213817071070221781840674648788452559331154226149741642757001044319133742856616879746523851978046444437890837025737810783333312324219900169467095502927121630379675808299909405775362663398586200465470524317591681337126811939084518774201045845095192118247513214047810817853309453246398604642300925370982683568026451776513375712273239762619277591889677256529317912565859045008983006324574151201266225585421884603306833339832437577716752278082923481031572525364520447651501905323344815749719190328929514165708252774078788379243679892854953868284198316890582424177402044379882442739227792299013806666922915461178249855185295598432869860741238617667736401254915188753344741418739920608526189010495410413928667155534896919705800387471517270064717224321853165245974702932161395430967097152404737275708102704198437613810660377699913152577719154776649826287674265789152641420132971900538531073433863481325648736262982078322183559362593828068816319359221097862676911800522833543428056167887714404647707969650109161523384003708084820244439800745050886629765567262553875463609429805764673573697688244715913163396323717869328461638702725948223763356963993446169108680793633250260059577567510389337574390357750734951423694543617809767811101949575593875613234858796878919531118970834377401437190015104929244165176110712516034268128886899179676002216103567575599787816480809251688360555661593136698430190461712893140466943741997136853045984520921652839922519371957012589098652752916816848866681553887409950402043756138746986259872585319682012229454749595287368397670703489236762259983786837949518499634696780634587132348639471739467027362640254796466005912253549420841985001719690814279882877243758299985407226196387007547678154394832367645941867711422840936671867011580524261734516830231234288603360339318917096001483388297055679238598092495603145960499393403308410733525475000693362558566057918217806524073198224452654989420121022814233482629443225660681849349826416686032645082910338047320650176134785048436944100173586223370872813018117871993131907341373271690496834098680159172475456900369640362668477797009137111793280548724504465110342923423832526139290658252666995195105349555555463483602995998620601341520212595014707702656050671017072710370990950358679410103688126426339852774171478015218892381846215173346575085014784966822970538260844606301131187077591576283453482302065577463690397752558764849175621340372042723250975408523597664946245587945920003641113196409821312133755080369746849920367867369803773753328574736496968245146511105461113631966769678201777397498836515355909181163367138298483938104625826392103466927172354274610575009934155928454344092433978709042728122177885462156292868628079306589447108486966581504056206035257383128242256708526171432552242485599372443828807751037415309714481451320589874496382073133568944386853715350197618151246166133954849517497538352918455220459833962555137779736016537806123192038146812453981717768210706737151288818313347280742389905993159119051717788965614993500162998305485021847825701238095111804932676741164889660135201947025561002989355160225496487312083904769151747564827315683337696848724571786379224848342684072046321218820143313208778049837415082256371725075450166199311878098114544335734979015546786502927291316886034437925189526135987327936869588871911660348695682327307917173717843878846844677109863330012852437109349059304056386202630080045087433975267521284264386874902733737673440101382950904913852852570306915159935645247142244408659431534164062006066467416754466144581228175811366169978862887024167770789880801167840993023177070970694044296837974382634341989962320916936407485187620501339526418821149878706122496937222610592496399737632723005567840671984270702196539291627039033297217882173175448227683610640195362864831043504868966692233009895720411759452548647661241444527650439462034984815963513465516719807651498557537514958560982340819732244639647158030246808701368369936139281145689236124477586590768255672619487503598977003931420610530140145217822599521656696581039074163155423584566136937328910837644224735727733188844147453573594172491765359487592237452275414097158368396855861825493532965882286089724487177217348835742362063619421917726706735180194808358656085023136369595401191064145739435019828214308567646184549033412407335254427458890967559869963410999165455848735179501943143031365262989691525443717503262766641845009624812926261468952198683708474224728248023285072122567098976707375609006036044104572653744904967226096265601896388228903191677696185497757569413891180254675904384846949255503345367827056213039869071474565906098747977056725321346986272059465785469697353453891756172488802624900684705358491450810103627163477472949840528238265820856794120451484615645242420073293656430942260261556672578202856560755396629586835235874619960859466526213490823556444172711601901850906622044453184706370051444115829630553282700118564238469269221722638258596242614252860117633222605457325055732090230877261003081605267447978036498879660466717322495874435882300904497123773161293659432590898616125477685425271544017317982834575926669645076668651703801831130493871618405579752043048418080473700109371084324573792449079707877553602199201335292568400998118230730108965715192248356801149580454177699125435383607542095611213587929703737378678891880643022796468041513854503609940599403352098206911844194930765292856841804738808892801893232478394353667400926485716283781002407668992834347533817776392424753625981189290018809448413351322335972087464827245280583586672915011441537685343870856534948521457002100308674681493513066999778886932313392766535967632579929729125697124892835645149277901295823038507510948810479208773382680962220851133216638161984829521108490665860573407199176615427094165528840086740476809551033800447095016097857707571456177787793539543755233761367407408648536381494690907275573735092697775487990667002836717872633857165014556851199868144372282395954166426510802975054932335423757545942717238077700612041676119474247061891493533753320905058880259281015765980160053080538514306541516354890044587572434690951954777415113273765672400427402750352137413011735205651761582875755096885340317518502899619110918043866384059664509683073327006942302228620896062872026398255659709930996753992150431256156004332305683354267070354364046984393991974800530444606875564311028461501962417685791184966769970988932904103347590048392932493771226823397944467386622872230330822361456316050160600739032794050465972061970789706036888772394723686250803077885387105959769151436384708085533727228425275476424265139419846331679537656308581973571798399405151764853351325338231628174922567920926907464743670413715445391572778313770024795463381320192206516813707587208044556735166553953986348264372040825373568132008315083343067093979484735320080773888574594515756770136569083580386311106067994282308032065569911394356165697697958070512442915950919820887208241249587940326799902724860051433205894731085783480938198600602575323816324024891626318510885090347559515249570865170039437927308868272354325925947021405066338622548000349368828968972756860217983903824845156262743093663516531861209874917182346594005401004068903452223615967944051982646145454447051277899899065981945858569514732973262919277917045397355339607252562535326424848710893418281536331723413265181807721806078179998887487771407589273109554909934948607261607756198900708483839106785764874541017308453236062365864710133867437351306924632217969608396951513393368312834917637990458488389593039434973300467011212748054485165099403858534363950832652898646568187997153744417941700726475017349236284669894311137948212338276039964257766853398346267247807834366376689408174643451525763919815603471579252545677048300734138392893150440692055004936297430472943610268499335294576422094219972189121116742071028642921165621450987849918086632308633604758825253776899924848050804671499166909920356495834897542508855900935115470162372622646429506641651901218322913369343098112439952309796786599003219603334241903593008853970537063226606734151616328805252800046705744323170765552406100775877495120417173041547271179943055669936526699255599511142622799647447501075570473680434276990280550529668924796126758009770078802035248448735059922527280896898875530260971630949175844511170932921267542782554007062601369051150354908813369132612445165342566284503781780915266814530374105153812165609648797657271166733501442478822519467050133862933939953326980584561864867624138608288330226881512348132864187062509323125014135984052950693576898136124989168291395790321290349459019677574907148550356237561573504679798113567676667260826309821224800016926519189261241535321283726531092862344344026350317626264313331768313838260667958860590979045479763216151541261151471954600460052493513036145874826095406949445144737421160685729604488975228584272086280121782826923927042650121111226696546942382615358512179743555456463116462802619322064071176978708065135189308600714454304597462357797221519878247373564403016725185065394940204678343636002293037995726530994703470062579159946383049633647216040799926767851819484703238162393735876491507612183415752930893727453908561829105906700390502171308370366355495858628011444286611921924099034461936590141030464670754024363438965308478019088569642509502635624143116265901476482169141842391261757762411017599540414283347534984092573626075639612668609636808135005348348563594717255332773298433503257435792005385743147842636180415144507469557215493152059145495575833016487502722433542287327540337153169454639651289827009049924770663138195362868584710976520333536530681961121089681282002036372472864652637517196480806039648985829869805808457313124018784989137512866736010308920377935943860588829174583254416683757220958523270942792973238372178321944175239425393739151046384591416011382481276238254198260745189707815430686899979519007945839818025593319920066428654700442303937824060586307044586622075457309352849212657900467248281517210674829699649820303692181713954609231146211966981759302734326831484822789700818313098904424970175882120820457280258569725675693105355040540307665979410058009150114028738464536215518665502266737993165375195601779898559310620327142689273250740149207651321381791483494909402163926648550231534825349470775688400880097458801622372970647219879047479314730130636589550083811621114667708700210457069217538180026145988067184926949301707483951262788124649648465899092901550810188106733148817116492341860754019430617053603298010878902906639835514210521602717616729808977423195901444806602796088486333015229977150081843573216348367770466603613698898654897653191279361100567394499324992485141240745478723563888537670649431358084690567935150346711831534351426390104648223956901397789520151871571154733240985324362045450646850149209356547065380739478388551680330922732922684799349035593352527942289788958749026858453455567743695720665080528043289121825806508608391481512100781890967667727989500018221663748767990335638547995983413713597543462772982005484435441233489304214438914757700762165922268166134236083528425568584466963887330972476672484198615340684717401335658250316270016005020790521009399403002427641718580396091271800379833604579066597185738671670344551487127619407820475134150193972555006432340496541220708488092535876398810057350990131927413603196487430318587517738681371622576671773958563906278373291052594746324344152712514726104035211515707980553546918528132426130098792976472547557883613902772961009679057337613110283904619941224583495995621644810546054174509787606685367137004398356345018689314161018379479404483066305314770455411889332333276199348692409663891110181450061563280761117480249331296524212266285396248309302629210295891664468072238351882411439287412933476640144418728239051105003904379633983989318399099685840405241619514334434546225614392936937826442570159364554990360987972085502914726978455401755534715274896923865056015662523528074767366689828801079629658822118334633273312202956935402436587346068328917757518226247767463825904496712697824003916996694571487978102105060859670853234152512250101305216780810165003227566574485804595821397189613594224652435064433519227486953451518600247685739896835873152586855312762503684186282507146692298808463886639459942314993621743735843127888834493540173938626849039128062628824976414724772003047251522998694894687638015706429912408571958710696768316856590563791592688303146019709196207100740656584823945083647504819039132333240149684482596343369164003245643194694204802757716699068229154473746557398350804285003100378311430025777165675770755452537273089259485235102857812094294685786789896953540577460285164645309146215867241475366737308119764775242897752251007662135763146034543791328049487648905444090380209196489657192804912065799094765089018862992040094594876614706486720038306967535010246297800241733288967859854555003303239109782306579307180387430878490674933848804795179609868174775083744336715883628469207789273951487029721330508244154670541279366133574483215325440812684502462606386111647079734314161577829269531240701690576199285066988507867682994068983789069544553756975309854609027318683809751159346867649250964774834499093548369665186830755732113737090057019809480158386646530461862765414014014223106386370857203825939788045203608401849279382362473064058773061076916060409105017714488463955987506833061500735450523193762945360668688478372529410230976306057973963600418718680554705448345342569506988868365618867668279172341855775246202476055751070880595548976381665298514942854770382549594760278233921913242084559182145940775205410359041767762503308373443682675315626385908411959660861104843668025852473879850049336465601808328516051987955202734945357014940927411629700614502747047013217838768928681131003247660631988881504501175614676917254044892807362213122341307424017363596375772682314790108462541114282691031267264303091917164169541041861272075498808084558837520050190731705449819076771802325693301235821714795659729837734236640909867822330431883437641369979664777285904979917948217171094112590723927091412941638163735212173876987123280435113679845878407133279350478967175666440553934883423103951064852194084819128545799291237789426245348955584153333321368260391245259070284401862493433267589843547417142628298246991178767659277426831633069614000253118529394168326418650872095345382922678966331006544754855846396717695558056564127645018452574850431255100029505867798326508394559734130395915678897264636560251880167927676971232806689441927300728768984265429414087813954140905488945546048814903772151672132983625692707737274903909393332166596377578464788155911306204618087114161308330660418073804076233546646690333740024960955796539685361131647210384145196067485611714080176321945340563523157433448285453030721127014813054735631693635889788284465699522628875815236938792622642025367399097274104669272845754191568961714160446242106440790576534948863728886364627140266330598685389287957513855249165502429647041252040560365670648050254230897679568765188352966019314757887025137094749746429732355182038922194146862549931903993091306081315432440693860292749057126506302285846201921808489128959358847664170391298430380741680012183878878501094964726406582123319387614819262772032188229832878402864268429049391998662385117889071106718361503164306986741619601238168613274898815270989783659236086557612818432042984923544475883833717513037900136810996332004731774708134516235065743398870072529528131362046649292527434003017666010060833146382548702745335299864411769180643095233411154641031221733613668480969866479073721997227810268569393823329461680838273814764930660592081763093030250235960319954991360588639585049668153030992729188060038914186524874227487337509155417199345989170763007404196946775627478256630545959234299588913377954798488297919095397587703245475721502888897123950003657980151528044068520184956799324973786138260781727568657716106023190009111921281052490203506302655513988779462163442893335268823242874631134201114699433435660705854696698998788916894597342159353142087609884039919883739920718708819729894068312227910680007901248757459195371944619034965953969691730812934970295901656356846582992593218862949746670746106130934214567184067064336907624250460433924916633971414225565024105962503779168817112343523097958913810097927256884881548225431892810518676758510521963978262305380237178287975081568205899689232710321167071050090771256396650744897113145057494386836784210618183990603739418451662743281489651353482616151978267275159456566056687018303574704023030984405615187012850627188172728775568231506611677186463263296145453175745229374718691834984939882007371200034635683376873156534058956872354157009124758258107304252856991902481418469034397722579790726264528295761240128142600704024530093308826530923598005141451468564487665498556589915573529548655716030788888273885855122418688409429632321734072959494027783971365766854647654109811894912711729531198709247466534709665782905335996309799326025626253333269779878805030611077010772236633927038942449160362248526011043930143915246853461448587257650482107182055990890107708662634378458675862146970755553866493557065315092863326233833430997871665141036095656680734172786471241366073595266524808153207502807619357998352909107088800965759617167343252928073677620474981309247877000294290948817142224780013225033299568911354545333818786202987748757392415572494312779826577799394622704915488728779749930685217968413282509704713517798730818290798109446620188574009283718349811037732354624829475873141827528445134475911213199829552412267030153135543679864215915323947863410062046340083862930043932321370662457458432232000014809766569744986230567715033154850226044382045224074592709376402395422657281321627663301833623620332942807737472359535700393344587476048606784936303917783225888034805115982087891784779230162905925988197219865563864024845209007016886440752902582890364798209138641919687669009270473337966164614543305765633587104823104794960835585860052312524619745386884024757119459592495406751085591211726616774982762213945804331604212042337993459884656359445171531913066770335745086801305382959298055696185770917734586913680212177317008712589211696053130828400853241448009034909180886501838880756615180764540360607736671190978027877129260162089264936796290678694509567539063371059456844218041678493973674774516986317028598673233148167021584246624672565431611163761715963709153253068679404192585885830585650255847645361117046409397572453296175681189987692693455708706281884728782979142627939154772508856102446362999753644599430172589722702146785958484892407480658114971165623381304901805365203411477898328083769836317825650408887098857046242197542121158484309863605548129185476439244976669235476894131437798817544809267618853814745645954584468382855610342194005028393675508975145324104225535748456175914106451415660958806423576238786991664599187956859824936451489185839748073680901666471264862717206186917953670380531101667965603814824956094012573660783481010143443369865709943421339102916274439649875344555999083260565042089429671365757038605974921537142679655669471461943067044891043237312679444296759796994814057861783804106127520090501419454995140610115618076081159119685081202181928119902748027246297672436573620043347260418213710643850081209249257441116193759691501242343534982430416753091408590706044633549674291263385157646848240611914226701809476633471173401943739132418714047026158867637114332182206820550799555284850818657403556158232600985531535000176577157644415217425240176398654645954815825439762217334030140325396628264589940720531629437013367561559707360106362514925367027834351790882479657491691256847272320212707897915581653287327501114442982523777123859149251329266046368931291564574424763760179094172242614727985515779214489069672318073900651117054706267185471108314855659540746723427451576268853343527981864856813958218660679772340720386321763864580719378456817684409344061324943398266757081748532528717977724400795473478299379428232454168207605040482513783195444585303576674900378070174556978852382101876333173872528126325901831068483027688550763299466271682072940224247801717045412779751516440879201722251242107000475829934576302045473809240528201018702612724764252023448328177952887749865661858983478470031072579146996581589248407772284317574367675251916710192392861211034646780275567434351586631233203058226900361344195829301971331095613418339313463998298053130257803008488070402980212186595859887685212193103586065133298697185710833548518182460502005090187130696850950262733748700578245880471671863949168418726273265659420872276110942080626864000736475029161075342893202459729430346410400759516448963825943389361494326680777096199779794480091218194848531583244643943160375296878663062325402944108371880626963102259368745519294105300799244917941415903589038993683119106152564426923316116967769731452742382434371202782343145371018425957932300082720960342734676813857456658183154995152946910318785333185515339296219665366629764609273719089313372434387145873667921771949854722266171250710569719840050612485228265183417690315109439052340935220163298522013134197058013974001003075257439895628614505891768854970809364104828296069681947688017489800722482201448181577834586421344634978480864447223808904968460148175438168585034433861797256779079840803215432730946554471186104896980102525655508560873172499135541143353207984366009044935093593122466251505585363661162395726507389329176324418991684472282629577082136102582879273676378384857200102382275005353300668807893979313565309958721141427944029168083877051441449262294410875671220928000868279354870674544035264562422208184545457484762538517151612437004216643177605123332318920788986166359184578916826030825897287849777496469454723476496266307277281454705117027668004764455630890213441376342898100567582868704336542133788508769060357745232013024542119367838027452417127675127303466989670235237087711089636423817882274163587412869170574220188544666763914284740334199088786983371134820667654715554582327532245010458302600395549121448691556966567831092188173762357130214792212249905764237389573646098109134279688690306187974888409005647786877108351706847535860530335984003839121291195433798750812603961867925830688179828449635302948436227817384779286124169026710184343469817041760003805039552961591273143968329653545934950617509029356271405961936442937671163655516658388279185336109920455411220476984529623259149797015662116630593866488590465206628618793013180630316697750253660083469113884239050126806031371533790132775797418003799292122738466813312156815641821637350908630861712590324058551944139267160229559692326577715982001957420197967649182985351440391536303867584705968497300004491931828210373436395006105335591776289740072824584620252726578318232625990100618118830357816449301255850926234806349521815317504612605038390167734559403748542805650489423826430824291571887730050991129185620851513877317442916499573645386856372484372324571424173100727467633004977466019520680356446277044419681481201804837865717233553483885242755822031033400580420880668853355459299027548924881019894879960425424404963720592684341797294722844794206365945922967320896749438422190682347076533958452267721645841591619655293585217444153777220590343657424049158807349931437151473864703770030308788148830712371351752996137589598981603588309454789099831286837855139041695353403213499386444119016120608426254326832734117955329925353026389814679366558875604570228911639441212524358327446986409170348327467813713079071185294757432684431965892237131584558139284886163616311519049561476760315372706518774246284513789978773566521554723853483725835076587100812636295325309580746456927952069575768490981844525311656732042292956847150627470084528686901825908063867680789548007020225551828899104432983094799071502345683875878704889633514487692393939408289292064858471134327060739470223405786543835641543838573145118442921314164471058653667195991628562920028267135088452770599736093647488024965236047551906605578127907392131707725028754657519424806957153528044824383018845446865445409155833296174944916830484072942358304948690375300569645811225604574783705704912718429008280995468500955884598008734362481326551372450544901340746562337808324538549758315767443690556822012100176284070112619504031430955814320966907250942379575053377347427158470092659255897160721141701098716438887827470468473765499944012402282089963053468069854976922916614500497798982935502292939008150405845584982664522429705053305011920003097606674879444850009115728136248451091870269507926218650688568691730809041725157609518431498815779742470511338855683265947580926246591408567355552273793627139601304808208375792411211605035988278962528549037292678985064413160705415020860939594171052581674760272579156726541373066439655704805186785441925838758682890870703989883898550660841067158435482990139463569483722405412864299106467161781296138746934823696987149114692130798820563336704829211358229254026703841076565664747625075202832029313463264890769924754632644292250573655535951205476785798290323046703039189717701736972901346668476936738972941576201353943187937752121444293998936499366239913646273013529927467500052639044122587344128085283163399286716902096345705919882551963859393491502988190531206667566139672677124104271235393169288342561783009654288601884849289085734068664907629984177832137655156629482361589370404029960104505519507637033306956738116902319767380530424051465864760135338272913081974464805616475947109318664665594822022482991329235829683973414705414212761131520580449909560098245492096117778055708972488308710529712203995473590440433384951927191680558950270047936877516301160368198066298181693751029533691617136405965413625226403739817883220209151328774202601992606084651150405388582490159740359804853957538955671662186785673692845428423737593264684053869331796791619032759795316491820793033744045761346653488388597511559834137618962475009334280912626943784221331348134256747438355902146351950866223011542169692633459865034505712692912924165373468042765715681886160243195171159250936128174496740204851050508101641864541259472437078713645473194802326908449786177963208428475164328605401728013354127011095802027821282127018075064186914694815145369607522980123641635009359774694476536014365140708071331892964400541106596257225738200572361863661345922623706502058263766110625560637006785805298271151097223832903236135225464896880253264290806502238216400211452653440346151867095019135729191125326446916064648774064593785293953720066274232654772368281917087740803034054347135447995859282935543358550068364088102632270277381507983094936123841426053744112813886049148754459304246038030253352890498384548643498544271176872609783128823204510446485887896032340628931289917970972991499234431772641408716223065688867660355835318684009636371220709133429360826674760010341358490934572247054215459729900652369553557535654939789215297108150390038746637177172164283886294820935537932253705367733404695672107378356247116853632355434024140263301670214638982802518753602549224944619170039972323844632494793596650982531622062217423388160944826800172271379815333886278194468072480239482342437178840428197706093465543064111632886835945480335472634724140101413062389612937764909009273463523168084061186684098893653274736820825460559175322560012498640912496044389080031417586493050454626280589521182006005172199932844100156986853865846003272914070282958275018200175345253954297926349698086289605385449428053902126140186314644986155696996937156689190983311449945880712255255537165922911755009951131122248052093465021408037874694112041632664484722192530402105822075094789850002860342099150191012183098795580020785103811650496261918568707966412363499084683991310888877211547033351844172409302733216310466111406267670757853692833871847986711162783601623480290244201272587735267131565642182619537053377897954717795243978174079304240430446636683911947397669155435830818989448415453823084669370130218709730077185584975782467684309303557806196718933587153915470361507948710912438166706775044311736353444104446141284071660518771168791088522357357217008534374086349899507533382017159217258679715893468844062642427021651634491947165176360067219756929864170773613542734332783164661775573500588231948437441818940774259532000928259079963546124275367030879008976373250900772676149752151521955381297509068410579187775215879033621373399838212069469358166444322849361606074403269039308762033137754979897014385941144265029431176515049706363072451671578533029517653880803250204040907343047322342131757039939462191318223616432987793299422482252039934656618380061124531505749965431173802266912709884341986510374386221553262257372662683224971182476398009321627848046476810830975469719351313284206629497935117425063993236672074785284870715540771232384186438685522269715076965593137070501347857670961482568360925954610219515382812889057421712201118652700172258145931297416301260121208389522311577908285225052459699106011047732373112394375643132107610284567810554447613960199304650124182082224170682639113321069845472786643519733675293654972193452250882884707340627209194491182514617220875912225267895611170179260402167250993113989791507235453964435945828854430874471222780423453230664232057372476160680570464152151113450792358801840768670139780080213533999295465980235358544899153858298713266659716633816363557421564138252558965880795927151812141051155857019128911857675908369214707661435859124944058970728825641907935916916040811090020315681215228918464656970847847687236505193171744291073110435774872709938594892342361382541290027841618908111780348128423807635622647827398716284645730127165558242934117094208363065177416137446723027159239692526185123302505416656860767710867402898187603056973408194868883936313654793844034641272328788285904937541341252727782808990908863251576365701070317575381724265080634593079495184841196761870112310484464319841089821502712105310360543470031401109748966730937505508592535223253667786614523185717180922683963117709872863409874915003109655169119448655179613155355088723059465691306697046886219986318281501021962060454188306866083322252163526983651056997134239619599426169629568321109237914563492083529935814848479940426414610716068587494607250527576988406811163896562234732488205867195672529438722678964617451934660655620900987385841190810367194035075271733721135640180678997753799596374670626524729279179792077849622495256613466372319514664248169953933050183178219284886970854808023878308560240658248279731248804552651854092068420206427198480059568812843943731032112083503203173189271818880950934837101157693950734304123869586096579091164023807853264147250176648254822498143912344121786661217346658204788143859792289315536124496766683403597541202448099223824815684455124142714267136327795882212555778513615152923833148616414034677543179743099373349403741578253168863501446945063788548205267825057572046872637675337839893731206421594432287350447898801758542225664338814349948808945293608369565335154942148374352469860584189092606952283047486536662634721325526082029424267952338032184378564009627423794526266966022855012764266717695422292256135569344180322218201061653284028970877954984848070156503279781327418522844077684832911526734969075594046618001818313471939617109282421092077179108911178707068296640247145121986507006065392002733344841802816951844078769140380954341550433770926321236043912953841670290721929310580290598906492520338587787875093025784620630387286551680363449308681368897544190049009424367805791525354895403286274692317651631574740126416190306595134563671203115528933112682079771744847929653135873456023219137584876359207384252012747101283453825136642348065247561531624985175314547131547369859120255573658068288364510062938939489126164413665886512731420082092923398699777300997618129205884122510267932750271836180359106109692697868491319108398966423821460995382386035549760518173424253732500533884271406220618767312075731459829850476646252115656087050881747547380127363265435906471754301721201338457812702293724100993821798459786446664508615894617692405720598874057819335213568527004149051273772911797826003102471469577590914812368160969171078812742706097616421809907046646744854039947568448192541894935736454020758316391747062029483385041407504798228036375036658976239089830391474473225257732092920173688417233544571882074883642025032924625414506950375778160174051102009316860254535348745127805557249839398982998768293475265487782640679497715850458422120592813332874363047907826616875534713912747261647661549033506128464864120429578281774424098537654647597183939432270094658519004579357738530014598872079501063310000779299955470714513603962878197882266074154256083756132894589921360211812727996528100766061084638086220585987318813109025429106686568148785347701445916692145575928757375236490259513353108448039127122073462381733200457555612665641716934570538011234244790390518152184057830286040075432669907765208245162591850891005130395095140675559837768314893064931537342474790468946726829919389592826292485683846286383625553894415678138219832787782614630491179350512537498192515764456827863000380822424635828029774473954428622684983270161808749402638385707734496222694738824443639912539575148113223300335844987107605318899581312127101991886955380414181703456289466544361478910435594801205255092866909844037412457399914362982071692383390995310396925721170341018721198118019807647644731137593953104954634831168876416432576428030946026334267738745238109489286619699332580823804462794757614749087778914173696960427242594639523297579240039578844076815925915733758420750076104344491147254648664208667982897237277593286047739888117808035117442550155458029999201008758776953019051004265074549922984579205455379423984005472747198452702077586953311545784177255640187363483365368147939403373886965518464357057997998564975430912092208587161892396075147641069079081989964154557284954578482335409704595933009072540229407982667904297128141994892381622460418345551231644254734509802059209408355425843444773062628694154154223262578129345531877724726230006788074924371527672104674528259324475567798749712715846407468119705594732024078622467227389512268385695670664815967694082506879312941325989938178700080232785573143632594011622142045678886208596994076015985012469974669484942258098622656463983557248573108065624076876641050036782160233638877871002677592538773116176244688923131118730741002834561021145234815049558551951588239646117607530636903212914533543502397120290253046268528303369628509335487822502861093435965555082317623126290486934316594928055389139781467584351209904870435704497162887512346067900047757969750019537881523307847155323503560633133261958971332556859505010519737435365161710153647119440429589958805949060972764803142286799554980097690537559845550974867200453959409828622199899893973318973833498954418240467817733447121685113670397473438713220060849188957339078740697415282844727339378394808578649410409465997672995428184539088665768451905465343670625297427357921177583155408147893631456663956245918889617964761438302522917638343049356019638213696525897777808056845292873449011561736495145501461019035042428202433877834410783738797967168141608141614882029125409621302181811819771943681738960774457342101410241579089431655689183064139178311928880720056532042148544834385519095699499224508798795399234305671397748901858104636799811088453709286768515205760581936350522777661315797881080199241655764280066032251505381581699785891154289655477294672465813859936963394529478568527436939317106163392742224845383103242920677270796404619191172710339246679201609263082967833261514829758037275303094885538211383126622451518048400513454786549176280015002071851281334132700340529822924737578001085425104161417329385489211747987905044803913546544321801427863589394250453769006512895649054611632139887590746230404453394306154030626070102065471105601889480085545946497373142795095069272222954425101819172990479761914109804399077809281649302718970070925059425443053532316138954842498621241509786209846798861713319729344726608476078161494044460324089233616733037153041593453218455001629117499447774941108183991054038926424725490052927533012590976730008817601231526600725247967715613699466383800478498409734789207130212872946607732625809077441346384905750726794562660451333115825761449995854919401794581695229796721670408756534283099551255793531463767657231312804752307162299925136132534202632599462864812188384501189337796417109480821464604393638867444092222501078321660114925470347069438435509490474378912895710774289327627999562432193196247407352246994730482614265186688014349473463110243531434374546871132243966027620466469609406702797404598583759952459096086068567370551534446070926416891445010772366566837916256359029070317308244399259679977725510946048970152245404819532000059432827068557739412234721940170020032073335232960433453039363183605521952543104758396465916887159140541976153316628321245278623965580472110499814239613543358605409575629298080533732084140862070369301524232568189934373432127958508156359488010721922348478665364070798210051132826055701651345856498952686649731362838000157993763102506336527929508699608474402097475271263543504203023874694096730541936352914893270719289221739664508573474419571388423516136377339661030456980870642491902613593390033691072016540123700694876698531848201914503667012222746919071769426680742594376221039513797250623094046254367968167262199270393811557701215307617727805516613023561126458516375265928848957919237551094724320856747715946217757177582679320813866036805683777926546241445191777109513154188296569197790983556586219027206513039012244706627033547505055922431836643746512012989974883390593655416341037299813655488566139242006458344341862195528662918033531423218411997192063928429824016398434907369066275308683051419065490402522740274826939872382819843869246527331776204215358946853887443307607396130453893998657978652808346308736029456864853527823058714428279118651782858968280428238245328856875678587503088574756770688859878882336841667977369592109604375437351143426562436462032745738393901177436518307496220081703874844407863834958939460706702112564386411119158113646785882653508103976402930534040592131287642167843449766747510839409212608948589311669398000690684287981466948409052015855196699173520299514229181499748979130589640720170692971598926886777043653846429188747843225288814755738920129472822350221537995365413036000320119625296478824035848143059273560256424800754861889490798189626991966875206723994275368120330173403254579768847958267314322213041087906456594077313200049788143736204972330569283736761194329205873993842156690239117859100497858270981759155024019479986065596876906155588614575514191820997819378826449077839671061493232175214830025421408406612492974774560761069999634112437973744701653091359096772778415210653602398902680082878089294337390860641275726480806893779724948841104215691603853489459080875214158186101755507568957583952596781611014714820403719373576927432935435318387152433599976042181818328434158336253420435487443547634597305311366514826441515690430792239892219039195914481010007224700928124642497525483257152597182713037668165339356138784784569959137736162282726770139165675465024207828829514401625503568167782607571759630876515309069041607610622686829115944559573014995690332306284636244540236395831511560529074866244835276555060826300518966037603145961491715593549154002885799426081031814009146587939595187324648658799322412014572130525496287138922639286543404301708327650776267841722549884876101250062676102075835662317430033547034458846698871505759542135160992692676844646475096507079320199837420191425836213145862164749490958514593125344940867735831605895930441695125113912365454653810064082979407153127838843732088916850759188442761308581913716332609978994270276819403333291301725609397238262981324644238921348566565498495340967277305113013522564010126525338949144091712047954755179286040226798949303326764819965348541092701144925283852914155750261230208889288005953702347638423947727249135415476020801894290998109922209865463083570562357965772117077717373726832588823472295520026961489339466438511919431579919647716523609499579805498974919329355006993692160236244178334033483486784672271290109033012402601976067171648670589714397924947834641077239390443289462217514754372506898771584056660558167881774783959159778057200996329549593602558957482880571084676128632363522865042522226818435055009933934503667419786490941040898283408305020162463974127154780014261352137238770084985315003004751726829109321916784480650608362520041511649939280759061279512225231685423145719007586284060105671280071682726454016942966283610486228845080048223837780949865086190496377083999089796426431000251922467502456138227869880514877771393544821663180200790556876363259366567978908598822213117080340512330059940821841420486313908317715764286049705982906318381695625331011312946600674726083930010010561987540031924330514392923115770660220037390436954724298049408132318235662307569588132886644397043004422753492932432604991101567025240653760620617042804080302130130211512284347002382632092616830061598596309573539150452764750908678926167143396907638582203073998527805941077390683584451276294129800138464360027433266106031506873780638845061207504500510870015514204802081579751421917215014203200337179554100804365690228038575788550129875796748436643277553847410636863666475455857361818924473221656385681710438209498488911387639761595389071846495319436337800067018943348281128000243183328994001811054674281621476027725083507363661671486003099323524167915276468560739023257199066209907731434849987196916072216217823887584404610567997643868303637540591982956442192845102957115406101290505340919140381348073474431260823450971679803639028034126039880329251607083791417401217845901636327636274793003939660533333118775945641430459393835308739801175357316667582260599666121000367850457225476378765063206160412784322100152434006058051538193030566597485189504231614716439168113135398234455724906601366386727105555420847548819434385320296390809948743985294823942548348068161472122438481251404016415398936668456780462369038736967111793315014748637544193196988397900795279612930051539052129374203018706994088316167574838359219776677043096686132575344062589487866497660249502960270533545943078609450841986826829045026500513046257823799318755147120803704013956335154083906722436377792463268127946024080037227139662550291127394715536078572270180697083147903170733785914728369144327670649940802672320131852505713595143273980051960910241736804593700848061783565857839997632142127940996941565920660649223373738035016512711863398409153073451586500660947137879855838868588531171984109462993021969706090349188944730873717257517399255753951245403421153840866774232081414612779026346248835557228753558029772250024090595683083458161432109470256393935681104912286218154538045324818820182714360634112616982756522634391304643647281096264185382861843005377989554627887022412912166216478061637033499029100931916605169503975437996540889859249354637305881958344566221379077481640071586489447356919428562467771253020538446887082951519658206235474177230199035039908450141156345069949217045240804066273012586227808099547352795686169440640149959721409388466604988501500845492741060314830030447114992458432380968527715808341502051022918449693072967411165274701715348098954420679288175708310576370783926229764327839113842996838717524914938659720633856791852972621449212429304832088154127745295783362119737647807303477521734740771903371883971298930741807864190904004872578957616234218933349475418127341811458478790463737658591844765760704718957133200986991324461750131571227007543609419331295177088055747457195264353386353130095144598111202204322180439415702559345241540363310144143406863300232646026091888233384981043179382343635301665940361342222426780090331370033021382569758915566425211545754113383293333429174647491329748812565296029017640453570630537550277367617458170491725339227282214942554178167262716094598059506511310952407625458771153362840894741983070191799268054773996666688946393237180997847679875346114663362284004832587027606955680876690048767071680689072612123107115450391357137875927250996262773385971057860668854450238838530796782356254759451233053553749145079217628296492321404367520300938469880533666692376971447577630482367329891434090096542571634390810904708843786599914546334889149363423956100359747949901917055954886159185867998864856055689303101637007507925572401167181933639441673872681098423505097793194550162537649670641198030881859219981645204098019948653724792718697521488265681800569351979095203069785193375462294147923870964110335832332515215182496627195169433783408929309347750413559274773638118207265608221764380874388120980521574915438868551296118235881716093607959628133990559820669015545175391419153186396366692198013531345337679071755881189368791968508200814430661951996685784949637534620646948776384062108553601313689359594621575582686045409816790743984865852261656393160276830882214615329517503254090076145671724746384576802974248366401782700492419761733561549361399323556461350308876850902437772794957197011180450438800741231641653096693286072923835365760803890272440108339864152208254948724982574590517977666616343167252516377613280523682795059246008888712155298175114941455361432751444944704029602459556757992995694321731507812379497515332443189447553732368324246181877087078783896486997637421725888587973399631987934702338706052337741714154124195823770662336815091699665379046543554205822656694952424601673605064662983912315012328495106684864044914888705989297691023674201871126020901352263735949917442116237149474841351598638775948576582897222144335110597286230073850016438320518411454858328192608827809091761115634329385341982573236589432029398064300936316752716261541589862903144671018197911158293718898881022827293249663351873518593518717218267131314654232122616015527067982814560418388932225082883543646165933923185511491527594594018180366567912760569589910857999624158433546749412656103793428250294639275675044777999834905665709247221948851832063973106690641286577586921896708978906987011324825538437669858288293772775229151489481609355490910772478820165851111543934307749799449106764282296340131637701152087519189644794113151225187325878908954842449117004986465934868363964601226724452035444311723545453957288641707477565345531911751092169091874737357470245691355888310971108635479283106391278553476367101954065436285093231329740621754002529032615351634518144741074253201559213696214262014465855438611200392455008256480931108012361151667359456647579001967729184311003582278025919275921205808967992093944038373507747193744298799442704905689392478470078120325441292144907880059863754388093332190774723740059455034912851250113643100126953925944584725122930104322484084958351857008602149658607752400576995900770095596898257930919061391990163163145175780314876766570244859481673714695415030905840437512986856139258393869953292686340382755542983721130443290730362038411777252229343620735167290127145550352947727524344970718200424166672167558790591808361391385196209675251751358578873537820788617812119624070569063217426412353912423197331471444345214827290226426805012943681748167434519430541949817350461805301068774727492449330879969724449025887463217577616568049902082542206975281386890855602244343268579958950933127465726312599999768704583382812471154677666433278606323567733027580953166483985687829938947839980967009698712776177067048409675340174098894931186968118559084701351053486519781740079629577416236336912494808016008672140686992829084273991781839425734241219218400570259832130713669684728012694735660196960431383180284876152379017130759051428223000614184196600221359539007246361790038725709179326122302546511810732658377618064171942130722495070750397752583703695301645723595302150832001136228196794910188205249242687088584076857508751510368723048816722741162905902575494188950347704683680092932835749903840991334379099494039215431821309454474539673438924062639204663489723435499939260872778146028500280151218418986994546808038733490425190068924292523838330967124480469421062119247018741713074190311668237232984119032751580676111774531616946982509913218605901752025780997946746971480881385451074146112406079083368300128334743901700375743434657926782560892160821339609466583866859852466601608470873829998542644596441668993417668174409716765061849232882843982557306473776935995425867605848560766327208758964314312164895606658689105646455651672994276559269541864134224704879585945593586463063952110909649923090587386453042200979717921503570332592613569533342978904418462043419329783724926691366800812805227586670295042425814968330690212375923716498385437445668977383286704061150781744532731769358852949143944700691363580842525378143895136266005436680902238386265947373956663976656120148556641268755523108466678452526412274893442614555659628999465258214420426476454963240709948482411810676818908475992295524969427618161779265063651101975972129063523963490252424679171067019040925633218484065859275971019296700878706274970467041445826955787906535215721431903101016301710331526733300313939077793132112722661236967523777438788341923138692057014368941837140607054416448697774989251451194825818894487758703427683665596251479911814464649938956143939157211319542385408202181723524051474475388572464149124051894007130683979176672903785339776470601544688572488570397796108719022525786449292049308056931878030628443141715853716957688682710596695566562246564102405795015294288504668588843689531441761999643010701932528305802980865804395782474785912417339252909873451309660494070959443753965223674896672649863997300915734858024577427472488353034188155099498461291948390871565646917750416389364797437221253074783982954878000401221577850719534078765811522662420295947210370494273270650822542003066931252833301457718104367544810990240919504408338328423064963080515881694028980604679808196887078139362201044854815431614580955723818700145496368641780380411090178869155247358963337238034402914579557196181392707893946840590405201539450222915262348163870906067402960179060286665727410354727437482018206604700183156382577153707697195313190364306497237576567515115094239121731698370641964200030754742970114415039917151943665026471723173427937361160599187983031698700243910172875702061318088222248797225823943207944547879466667488000747346203721471285964050316187634431596422839389520618529375272888450898477326390461354761334614688912932468258984085873519697496650942545854801017604731159389115105774374908394084742597568704869957914679858586690641478788331839340597003972124676114999249110763417209930417825958446106865287072528625413848606138609181421721393611929974712342852019682213518555103840473054250287731676540921383777716342277136243772170723445795333860810172429423545953790898163167090433236308056093334283419751217738371009171158820104364897101248378756519123254596026936515216705786556018894839539907221064042340668189818760033216918349387709364627719732585314292235654936125079323272610020283391821246914431302200827248073198657370164076622950686256816504754082258415119187061475568041440370419493198323458971531796578525909464610076949667697642395147994079457709632708340343585620359071228778666511883165940963451113913496397732964007867099385477790403350529128993008029739192737082693924982218986212534430461970806885898632958696971515627899639244689215943896631161666643542678355998762491611355135233733535890138974973228118882821407404115824206799440370426461308748976198550143993760861157607717212202307092031220927885328439638592885608711899057959221857965205060352232809516332153173251351307928048891445510665971413171263926499014115365964107364477264735190341290837786455482212939136296416770593049250671734757226064461305360776624410975210489504049971605737018745713157378020041404117728914562496836811732227141574357030347286720095797334478137052594617418728783292454426427160777912131148986697647731716727048874519422581535883512921893288202503026075679583668536650439753330026031989384782043594777804429027207291414025010803362685366446238948475057869855058119867023804365862075256035141589134427881422393094040214429779725583656911672731683541919780769206104657376132925337290670055410419513067796747359239984486657036840639379079475871982195962582996192235257716584229320414181510025966393536115468710298751866547150311524575380845012399889538947465336363313102055226151946040773793913098290800665901822093980822887671868417477763119877021398315165600915313639375792381003918872436573849172154175125626048987947617982196416996306982207592389191176212028537779415689827354757725581080687153101301437105294946252728327078262930118524767853352964778536230100989231086084556662023457193542401543216839030704285046814390622013918323286889157437126409458642832173778273707820734324630004674241180455899642980848705651553660963728355422128628095472715392067899920117784695465171217269973812971915477725443060342350076260549182617725988636130612224504554487311924624611746103980397782693373847016942296454902082819875378728198313122546020791554051292503457415186138765596748669030839762120467716555050052317969336304087525502772713689788924502166707530484159547873418852471494434714035191970259623128193404323919576751474716387819588509377401505445472486978027860860681204121459949430515458465641852873075084631912901783094025113728308894009054059689427502571265689320363286386747553998228202108207704980472604601927104515401231870401484046620537487238483842517924753607172428388620951369735269113746232102910954097849970407152657267284055432572376771853683115963332565201886107138939240358627185354927802295556235823505124488335363535276204237380799954490762103167238819853525210202934654942296852002079780057075309965326204773599434576531397272909836364861694826300199916489135865858500877317968306617158580868338321782185259094095155542175929529283389999722110759101987804914135344638376867791050221842373440907872824450941302749074382205354589874977431949163928272225263371895209607610149848965690281759874450628595564774767447048208546248200264709274293030133564092954242062587498402671842162474967121794333402597284975504390357280117200191171263141643788039971305895407452646160486666707078590025559404131775126491289336809740225033916987838885615280053057892636900543758613221503002223223505329346466003424775264447176025972054177528748498806644510586683035451636117550932324349503953402963817186299568154699407871531102860644178251730087388575686836033569485359141144784854324131812168372427492985873424583837020462815565183492142278548898423175415210084764553231741475494414247553000561828004340029448496412775364941783306161532454269129289886633761586984366520888766683406356128461018735238623741031037504621029021246345010365154137021748389550706075776928693406130793550715490106550349545978601204328537906259379142439783643169616151502433889624518628429556850413747733232327321984310036040327169263351454584847155405001517246936568998471523108298482200719402371712475298307285377512499015661878115339519969954024307723223238685848887406008709718384579398094290721322109376586817611619309731023383698387946484042804336624225354871453760705568783428135837143549611547113711864648303467881773083251782687344351186355763084591111845019636700923032088111556887020132583956267568313816604726536103828506629744509839043948822000312408519046575799470751469448113980939399866462582163519338741432900176156161818123599594799734956981479907106521178903837768734380515093261251560609874001174801737428938399277090543211052528377055408813675530033260338652768985452661928789938428309025958763712841271938221643133998689190606890764488814695135659826747897786862863698818446336328045215256578781058216023139769828859414071287008923157114941729308782116126087705544289459763588564727894916390994930305920417303444312946520939338032640785963222897487980335016149191017402578176154759598186247022398129347790549350304056757567179198640997683199242523397261676016542126125054473300837221269871916135719861150305426044339979652543881440925182705978512684415005748554028009503949193610395309568393423325912597270726234717437281582278078874454999067223924353801626574365220784897571545294900739796877485949506096958485118559318302039568945362151174483498721728488974404080581941619514892039320310405469043032683965502691195460270529784518950128379115460807927227925918307354012669647869233261733324560827313796405210970202424245025024184423227711291680443241290645717856090542448596658597005261960141970703777411831137112828936315004917325957140889108883901952667796664943469025458080283626918687893988991515093798813714392710826504159326372719967051362787534982546721562732532298419506985546517778912746133779704923704940669045905233408228527910546014583184732886148497381091261380277872549191690713536196441227057475115180455785572698899673117532143069144739064409565814307045600780043440979857737843426809247447914359971970793718302832829812133694437923576659825717142827069252053201214109336056390013448600469453198409933397375278797030812184314958372684016433461153698194488523843686458141398550345783834763012702440224062419074781351139645401498621547755735436019716368051649218790112886635112166449420603344657050398135827131077118038759501004651740487870114253656111079612556332518825921990191708807535557739440193953904600790232042377902432786147587927264283142410242608623562543927071993075037972646984279304899531325169167469415724009307276281721343785367141891618097136954345304645198013295463226948598889400967509577942703369255995792855864149471390017818650008683257193232852374990140185552941245113520560897803716379616938350548262170388296128652691812950804595635269918932385953800640113029359575486020544916406798299706755295791501478004592514723073010365946578910749918298553860279507874899345118594358422531936649648264005037895836639087806050578650667920675031520516622586823331675874511030242256335856576133611611837897094488111340649872802177015416865419453232791583280606619939975043366298269957746698025316242516790361617569288412710193385841516692192108759029091976975915867751055547022704391120468730864975364145822308095727630054286847695579858037107667943719386840017511358858113633316525862122539679700218932438994164911305105972395350504868679718285552375260554791397466086253306549966251620147113477026772749311131284415407693269314726276663888590620632903492304013304442509583935301444984524207054687617016740981022906848291957991092507874951317209265180649996525992845003660603888831752989644991599375842780835141814866352019800920940604152869144074009733230232870719537205669859161677031781523489043888119451594080887992300056274288301944109767381460594876033850460195727926780751427108776193026899739847534492993929562265917912754488730411364105843352909999702093496074171109031633691365872162666068042418920745254881834035877589462000676755422996784988396918939487469709878830449465507974927693863574780427205836118467518982816267213680029589580741192662621984992101220313343140902271934071884612445206016695410059085763834259970464168545920815559237747931224391437362720937009527705030560941858275531047937082674237480268417515030421518043387303757458223499629239457700927525186517165232827139452218687723385310026742656315370472835167612956580772698141916794296552641823756357123230628653623303772063762873319500328183714785229928005212346940246410425913102820820558784227051867956379026260255242495969884824679796584497567950321684696784047177178345518252077134783605789025791536114095374422883888621555896770304198525610829081298702055842359908680180184662009257556512269271756781468287200709786055063376197920604085985867646049848540415049064123045586897020857825410860594675513084161826311254049007171988112612561471193882963792924515406070158691444451478882309770640253501846395054376073866063176834824436211682399317045563217252324101117517624458129902505860287390886569400412124453867974255661441760069847235103053257500747705597876026513984219687919419160578018620937333405695683556375278384960228048809189412475548384516048341292657386939848180980680755778060947494373141213612975920069954924907325933404270146555288713962729025029778137062205246770397162804338157308804375845628721120412110196228990311445482794499241354493586732345934047919145355191353984604040874017730423844282377357644885945284724532024893432775204207913921074136674752230207477296095731970964500136522501475763857417339114911503826563691116478489078181086276516713415169331819063581945165790474999073573340819091992513970759636607351413248674751084308399498588096027880988959123094723931990930922241933208406698386851054026431064281617444959720351443288255607328308494896597159419827551422925600267907903256523263567593377600689146745853379199643191852127348893243223450407814832436943076408273587492649799566602215664297966415834733779567764589205968503609274786599165606673553374277714878719632247120837328910495381240398943130177628766084265523785137468687870697082537476924615412521845467035384131383113735613386797044614871693459862047270373936160512779011252600320819170177585573602298499940059317979904925850877170547173087790788935473216615673476629753734523373819043610743279994600422277566206316904901136535022440812118869687743076542209464624529336373182064803167648233185130645711099748768851567444474903412670574665314783803419170275660362970889182781523307714629974731613281593553808635612725541865851409722826882327092425027624519758291250531504796292476360686661112868869356206001279293738939006621637609630366497227016027968516855556588118803540982020463505630945535653049668173057085246299916354363694959269469600881365812643725032956651738176647830699892534082630179549574517570841673379823958356692522124027978519725918254225338480677624447975575407185026797513073938608171164704693194121925683336941293228979218123500160885485927264578505980831297719705035616485742676708524750345803877354767742597855870359197851822250014501497861329908096233633129051037800801582523221443689040237041096305989469653463842876925494965985849519547730540009969719001745827613793701410262724805679864836836759019448919283769337799924164874204665871541829730847035064163175292770141074844618496774180630432054301957873546424310028686773985239231763937912919884433875346637872390283392174849648371430368409470000610067020084711233267645381517272413242222492315344081621207069172423639988330634656284667674722963199660258000912689801327897165326007585684806429419879758543027747038937363747926817664029769448662288037962685632712671178328176200843846345813814656474923628807069148811060581138711657681937852962880472459189873452669045939415013665758062213591183342662450128553204279209848042128362836508193492691301037327023126024846553839935407027467125488145068727172915051853509197060663203625205124214243716920230621756867795445391283401836617636959220668784009524212413454865598410893080064529558340621757613498467967311861912407788783377885259498303586375384437878273449033545699202678094122649464435742113775035275588164360740964524938472639310628844513069108143465209819239519863065890623591359945249977179641086516682320203848217830752051038883025670009561722871042441217471401615660493205776713321439731763912731001789431913614646374187279200282439309962946954458567831666341454979090341721968547643374116679858860728672038026173162178692952785634206666551274789036317075838875423325260018885445406033424245748413626765571982804302521656699364179267484277231007049544950575522191999497887045272205334524043392572099755990337167251239891337381683165677528194059027620394641830070966990794518256714499366334205976348239631120833325924259527073774855176268619197552874821239020347674337589201267234248822275416667844793897623363939781370492894656179164112095853521925266068776538215273133974716510451460762851077942346272393503457162858324807430040188675172556192225373338167082825846510356695114655807132646978620945516146822648180161911292486280863475681718337335616758297422409758276843005073186416150290161161020535213022008168007529545786515226667881801213191183798482092938153485498654100084684298676245189936361440011975579607498959454499094450337160502328486903756730165728099701196570931246950799877663783179610040976257083623493304851047998261321587484712366855511110850055547483835465467378998712626016532319467389013918180801310452160931855221410416988599519463695808451840988411291947227178405216576947905946408001165548513460238573708321415669331198773148272101994812807485008820883221922970522379380746849444060215304717461825635126822001789499789999554133692873796939901914290048087484734636428286218197562597782983603593232495644944624255914765062541882209426802518244661508147086337083746905950012185190452695574893360753932108516914455162276873903168328596847243924621841817433997043843355737049393659206088019288288072429933026682496732100487478516781683455292973821261972120551622888651098650157444412676335081365721385250417525255324712096217447119835277151083740673844835266298725525311488744503308735243127830105326825955918788330008383636549371839195977115469319568009358644061583460563548580151590416284231365824207168121482843760151400758360968043906953094430184662235898183660570577807941109382941429625250637228506119511361909558308270633784515549418458072894545415792648653926016263677360253585141059756470592725191997253166562695770337104262283057433622303427605263080149816619989633068409521748557830666730209168932720541450044451772508601360140992259399147437644260434472508396118548296185429089079404720377268693435131653398161367368130027981954581741470913187975917967585538511057174455525840734965236432549914403809476773070023071323827214178433151734922677665537036070206169592441915855306647110493245444489966925906153350310334155202141791478094047541780342904736925271549514166507956752716274240813463095050819184059467572809525599294738108916235187774842373172998058984356898427481768974208888313523319685710917553436224284694597662764051110644946107051946052989493313974485204325218663552059104184505272605587650961190663690468791715959093396428399435266526223458967699840860645000515997383005437816627182847751096740846486343972175495272245045270321742251050122823225586809315521738964167573234109669783548685453618772720495734557895329834136840698726551260001875583981217223688957818322491306999496452541355478405008919634890678057668428118604890405944483483963136395177143206551912420782849782395585435456887120636015434152692119054344373301669579425805862732305665398986405797404920222007836748701054935448814003295383251478083730823197337983021134673381983882023420082232371860398506850223968344488032790597577306515767499152452244475337168629550288121774650741205129657844060340885329218952381793349498978032901087910123427994311226239865790245188320841445249750980679334041920577025106482130789965952756689482127779331226204883403253623737821131322506631152399959819686939118247044509089637838969402781223650359689992629123146538483980535774464772091535967588746861193583691017122004238210665156731220883895526820746748390944304874511164739602983011383017475694424197106684905123973815708275353423858001787307769399740517143478529145097476303331039106368343011994460267800054388041595475969558848307947743501729680674407047936887443026959948912014258806124664549881660199837762852029979435570841957299922002692933165500516421457703558379821659835285415582797238308198615188935328201703752242649367167863990171626503250400245795247732359712864165996080910620478461496349206090645013923837208684263062783518031603155039930751066974948016881209350206355012231589951437499910841727160064961489152968055381203970486415406112118408888976605577222727876569407443061916228968454421250523999769574441335658767289353355695344025380152415623346846371123821179887914284791684446260102720920990800397794080943520413215575064269912448774306545401419651376908243931692638900633384009677114020842431393798584254355414534930635395391907828240445376984772550822641867770837856380753657229628990651361529771633331346192133790981583201438106017168354008087099348121827434053563655678134029682100838391212383206462002085547248957708256996794306221589475137319587162452499225151881974602622447578648651723868867495011289369702546450680440296501517969393523818871451343879499966009333000001225466339718436815883340921863371348245017930186676888520629232690486525832400158404316847300724084099079783860340991348810619317897882002608448757640779708841839790258215280196933688882400038722002400388745927275906652896985272295410633926486931165000931729334883492463717922021450860950690275764798677864069299804472922572116055585765516651532682120789979203789083735812272090710861099025541529396814307303704383813625684837754630266396435103183895092590760551573384938034667579211726139401867325795162775992560452418710651528757484915921759628437549760891813457599230421285934626379446085757304206020075645739966325263001038723929183112517229482092749653465611334274669041579550996291144599227794793873095164343163976495067539342574877544281628788016526002804639197795853344992704166863286903060312384247740123376933621559523484117211502843553135247648646076338340185264795098546684224776051069689410874790490275561310162999054759114663801819741191976382791548517309797711776991140770269931507229840484639072809967328523460046794472453448970645526209658688265695080361892434043489619624280709319613007784496486596282917588735350313564982313888640369475709588305674875671440441240383957392004900829781635711260906377744907525742598799859985419706977082985670623211151698582005783036630252292703998885304933482836592824284369847408880382656439160897082416382059570101620672016361756113911148580146809726925157637949003499445253653071838373554942827757059836011937166665222653815829789188515875712951269445663862758831977930468700521837321724339255640618620639582403509337689451470779534084537114485748640384296064478418974196144429723206115332508509548357528678764379485003466198501138075941594237706200215405441210172226873346772918691777553684504267625045490784469183813012479582891262805720747610651106555776907153256512224882639821405933050205636778790225395496678600019925524705195363201647512146369907992888099282199649679807077466544892183281560136714275921844874771475443709160569147794462274325123064429390544332770035596724657950054615291983357517307962491279210642150321228303058672412043644462974750473243649846774333670005057786516206094468185562322764594478414854199572360460513219901515111447498330465575131394191714800481231962322857591054852762053619421588998471358029740114700550571321179129613476951442327233648220771673445108036278880765600778629620426535806750644979239377109301848520551803352258026038526286842925621153386204102064338093721926846728403233212025282742390248181318707849461883761842476689444077699648162344004238965558648203433205927895822277593461596206861391407142876445647180084468191535535427290627927252402170787193313103465277002914059989757188717655601337126363553350879660586285097709661632137427385192312843493349793689878250924546981145805272566035848633303168590041674124009040246304181132811090853312248101732081424325805066903279669379465113922301782042865567784638476458337005378925162384253811306667416689432225170553107386959080040884549471360694101015357862060036611945654690002117150133692966388611755783762477840792965595926703247413081647522544883256761707446096306429585472342639276275978320441060026786316430678690253282714352160147536778700130550644777650600570090610971406180246908599807261415458636954673420197869352610695955271062449884534480724582625830795301123393939217904324450208028985498969136148111251565140206817851666127531233954354876926199933032970864724833460965650664137046574315680001054769393256164595379316592817749435092761898836001711372366948685146498290737292174756868265193258346284848370641748138974822970244195915023269168522620387458744464087536096160268188301192689889102807960948444337215839038095605492212071718986924505133453736719531635906494333234996839571167157005127712826797979468666633990073376811679368478305484536488279173322636140990127284098385559267332271332807165863771376309372501292347494076199789623191061236815678285694447081114667738099686239284789282417829881683432868996092177886917423829149381330183237221104171470222235147670943090010321069283008329720371059256220400746452284457261034658655455045860978808012011343164835905133735428723957847886640315233685753963257117245003843494928150795583536838576930327682897936621178936154830945401392291934456995648322664816510914156706943453747999733734208248242228062854405211933449729821686891840307822277346998444628106476896421776388598199319980499692336434303016915169995473418585080429796702714678763175856594549639628744313580894087202850911456431664414707025770402763925161475203526341089061564586386704590067796205235181286937342877869618414002005293058643469418710440254442927083072637750563110250226742117965709884737444115548545839412965673549644193091051699819365038478526372220777372738695463493873934513749192857070127458011134033193161280364653569652592702001709829118803516748088403714405898139465774643698231437951658711408706188462210967199980111715106883139833807644443037397548551650312437787889182280941572441563975130562253549007864165651697164087924917560226666914197205293734012520914886258644282234254032759967421001450482779941004419262709980683399628479838637695521257074175372835798343196500592457234566840527685925606779294952511795520573195835452191498832407347041415638053483826359948970120293224395496693048721384849095263044119097400778486161058379011119451099431209263004409767494541390142925862872757785026127582996700112020442182567158310919000858687807719330218272537062551807043779321963558526390401740662028631711231572732326257002300947884589808676054871703340025593185669159227514071378250603850979841050531080661850511012333152872567358431437492628799684568016273278388808425613922074664952880705703790245301726559302312679541695344398200697442930800789686862364933381284401817060897146641213408866582420323117187165744522247246477375995665684809782589560661483550171840810899314183884843440122173731663412999947268274575758908719746495448233108078375321374702949130871138462052796853996977764802119736147525043404879483858293968750568098099402537406576754780151706870347196802350110145046336518026218392721661545896989034513792038661873581625627872644986613978958683598193955616649546890415710964632428763569153184205436285760263175481729537206902351069378239957568588403625649811604942528859920527384619589201913467129640375397236495437918102270116327473365338263945424541359654837593215546555834889105902603507989146070992129347330239969628884678943369838916200903712064997799001070256341932590682948191112635852414207765607998226228177885115178584408733145371943734469439071622341647824381897346611439042917451033519115078093903325734981387904066122660489209542176719055083843423262072523795383939058542956317925698706846334671788798368955087100421377768578488200730141036366646441621050157475422978702774692637176097341624178705701409365560849447635208012509243908887060931457036971309392484069252412007570488812162585313333296622929090991223057237601622642146821506798976154119732291201636150387015096526711460307302664553880068025613023281601539136760949981076744935203220418777422152825191264918319849637772273972111768695756230490570467083789554320473978619179469272084314648804094162007123154696089377440792578548217923028442579610457342486675229872896630169960260536381709568631523355699538313437057995738858276756575070800369657582124192229245111856339348879550040442176498930650324096813404085070190175744290754495745743192999802192613517467570126175649341399277382390828285197143454081158575323830655051642594190562781548753261949343048601466580378008923958018163508129828414160291916208371190619106825543728008862069237042392038116888361271673086810499891042240183807545925197170282051596120611166771181708857022995746087952919995594655582904305378861361234695572978499198983211792863616909454724197373965565438948902189278822140041063440604014222054722781868689307905713498355680571714011866750302496935865849987149740982392398861405336210303420652199470764371015335966758333054473146515448955908611681691772562647774286380710833074356691965048131015045373495233591573103920254087509283269994706572023401761182934610826859890221382901040255444792421081293427353995659034357379553425671266218628807303336203157820295247564070104632949627192129356091018777108865239480379077407314899031258123979604834290260435706405129249020251959657601171934800710729716069409520395788764914588885015422214615565561370500215708415091361371179875926720462145238734149185135261448000911089895925848273331338974491647709883865336554167999649348637389766167126018529554624338819129473821232266506019450224387261572714077917563845392427373781371220299596523092425483039148244578514770818166819362083444128945866541741834178926130587034777585462488352537349280345695569906082348780789465183965090940988582025627438026132353769499156933887920236455284646205918395375300231477705275916304721994734867425506968923007288733201207336105704028466521827531563643646383390024964360878825883862778261063400694054690312589185098774169861080729316016623853008105276634531771448467681927005097628407775182709109805077354359878592214039587036174899675750261302571582009354275422086398797218982510234508083024808954097783576865252344657994220315725622741497012670778280040920162487445487798514576449342113810863550449452847317621993038585311791895507355877131822476941627114278421816352305276671437908753638887048805144451147865774201785019869032671790362846233107977965925457420093795879095005911633755199137825564178768538558410587447122724702501608296757564510550332699630656937975583977391843183754298034314868684158700917422758174096092962442044854750150641800864459330230439221745516914580849309483391861221045080509667212442120939469683128905883282869483745299452081545271325855457077820338904995375045595730534846698483351668331985661504539530985969179762649350218374256841653822258578502630621660797463127877901509135164488998137706551905595098600392649152160179272168959625749138148501442801120704565070610599409336721865191902350636908532672713371934858262785992077613495992723129548749189473778937771976029022598483973213145816161895685036407210187322239629790258401719650135882988103030922698383482474602185512098902758444299466821469955143319769335031330215547141787216133663013339472191139471146380561705326245137451815618696579380373569798888942991277634908017640455705902216850629521967871313046199813935425436468093036116620867653421853678602235687643957204630628994108832764745628525114118476762814729102922807926531788906447528291986919001066461531077188083998466046458849352409180731730709495536071797988509230359027346388855337479412293011141849327343042027761378465263241115530527349410576482150610025916273397391633064526404904880763310259929431439053184669402298278390544591824063364897290083147693127843140397752700344538558917270560744128009595503696327287587015304234738352508181802233532345103982050710852077538373394712910348745976767221647522293844207788060786012469118252623355128237278042798165680807189142899211756430112329037849648609575413014489934615966879007156184575300601115003693240522499982187752578198674827795192786498832356122788094575288563645884653382760229800323137774440015544853515881104932186327302374926399454247889740386815097852000578745851381163018300671450412581648186133586186412143737434589767755879683818967217168353096177979290514633211740458865241896723960607630519722588543366163876909520493886745699186785662447134876311726738104465667189093621418552977912957526542559298552940808732862089382541772713527340894701226690287134695063930696603692549509183285869630679573198816621473720549495042179940968845731344767293292839601166248043042197858938112236416236090711687550174739271429794366660765508158367378119430851150056752166038129242441977762014394169027270359992141095123458697756133252605571779536341521425993789530595481520700443357391732644002416759857799035124726694587962890169092344311120294595521955769821249467341448152103588291206306062461085054527110355387298326243345183683524274296718565846802888837413389584507349956759556974208873885157918476336093151688510749191810601423872882352742831436251288462920573816139923910096651574712826218207870291554276602601830379535575748438056120920489881138218680160182991627461632778832495979569946836005387112460546868449144080469214344798057239734171253153423829851162182081749295780605683345343384077782948297718247084880190277330182966937344240539112382771713588955453987310289184315082505555473388058282542752977264296109769936473903016473787033268990074646350172495880055860013403559128333730626862003948273255761576585845775641894284441986935304827591737942384329187436809634236858026817066010410160723845183191053514827876438317207233277669311636436546314452799561803793996530193730908478022749551010301923749041004041719320648842163227982130085643301301752147072562934275410682306483836804881505668029539704893001805289395666548508947385995924352321207717906838056179455959798696463399282891667351557280626436079732165604904060607640675156034497888704569078415861846510060553312670594173503753394115268071491871130512820071786122788749589626490207466284887142336258724895343496862140557250922065408189160882983308983807827944077025755364257920150160760893207939994102968866756988411294653385958201215642151054564044979087330588956598157342644988211731418247131493493717528365835718373689996557073934507596904518001253123367348383005000597530108461286637397356830385786428870040559112383561859916191092829626890250782630716668573324891766419026553383904227508079696079125203754052776396686086004975679845730698346162366688538396160459392469401218785836192759143530746903785300435214457664364514190885605095780474888192204468291110598591503855074932303217210732873924578288866583460986792754363893725384306908856901739577467656012271997344478748040097359503280350925782032386261598493851559582302978588635678544274921398158764076102456808034343155174124046806149755757999987778667330137688744115691783438976158884134858066987940087716563261586206737192579208594852653356791167847926909362682845150920937027728972566239716328078559804362383698181790088729705724149590515449343387117847568135042241330874573126170521092876204264684493282821562942438202246904651905212647803770510843198284873505804737621437380133565313011354707371461925548863000079298589684185620535838873644543071376314312079681106095138000533315106821616656718919161144375152518339248700737997193896777122087684524962653230847596065700852167353257862038974257614784282616217593134694596305980381345024384528140840194324908801312837677686410961647238825956699579639416568000149636445777421047400403768112387202937592545956472111117727913310652150366268377920104227996605980814565559328905424287272211659725587568786734963614325358114337550187699615839809002949988453369501415564772995803753259073640389932041930487202974900558534787123355911631796786033209952808397814904145963777455361412187344388288373961116195719026508724593324406910670698919765653133720698826866584647981105057172115776780983180484548073310017405218807138014247695348815114098612952794070853684499132577522155092299867206097967842322593655527902833366812512273715765914365693318425328877271079922075398802449862815921924821189817804789531099422147094269491468468231872840852522927881962612748957446379916440646415203440640301962600350493423622063308873986981582252803367388046404889584141733184450987754058615085828048610156154192189667486478374461949545728693192692147198845551397618408920491175519055271099827061161543282092820897301803693256536739919676187882616427763779627085243843599696705558465058165844722070891213373654703871779885293197441777874091590783399663871384124554600242535247586236669781899827358817484483955998938557162388501099709505254637034772560356838785273758250214376940548631072230757722388497923068082300887416194972481210524690791353878101476756846404856135933861572482953046862730893056375944218570625017989691552373391203864700410504795040630119342006454135639560331626301258028153676911725288642304488906653877016971813758279003892180877726808506513831254024804481712198152479451513087047597991134687838125689666635467603802065990629679022378754425263214723261094471828490787621428736762864624041262855808754713641868278776418566435812226510453958901299906378749592157542902568515318173627823561290280849562587331750948361324797801072163226542832423734235331910119934930303365976750748321600803811118397327549216713148023323998905280992055247482974394701502669962867487709465462090634819549731486657469271937421476645973914797099506849431433094366956117967220708796463855750271458818801208805448372948543503812697704768027728411075627679327676213122045485367051693920184876736149307599036684073463071723452265841768317417276077234518213409473061864132713313566132971385004570347589414842847803048382433878098360576882482809515855222737132405731488748157177970172608518302332413330387898234412759281712758554895405566457911985616970062167269761187255006725832276870468102340021229217480566710786388957871167295165139015230403876280182586882522716522248097232680725026469654704269381877532490136630507314407738927622782338364402299896121218015176939343681957900525236732440377764438618609328151995787872174202402986306302334868518752489908733907464000986550082201786069762168180421993299435133716400901977870234791733770334045569365114790733999089931356196375235288876736438966123490314050587226937534381485104265595509889844924116106466251977652425941558187171895915413916091215534795377529687508419699729958822653598743337124345954189137126136224632879707366849345628201228023548925421428643905199313447537855700625068155264802252188720667559473960995357346578260016733912194621516582308832675090272993852491256324994750822254740732700826111870927550135258623598244095187587429849878446515915337847539429416279207937316361934677092747556187562549962534702979652020129752929906893532355512158965658903112349092383108567219674314970655736768983205663762558311524439114353499376266607048840755852727864144516858049268249784251747813403356194318071001656904604877856898404369803665701500050787906288878661678175355140578553937146660719550113041765362411591850508240017869656156777195903380748113727348995475902185947459121334404451530146690205386143697116750718393747396468249229096090377163512490751889078058670562707499212424668091668585584312127372580381282444112020672293326850452967238636037735911603197940969265768158029564233097642897603219588807975730460936370119582281712378050006226030843920221535391748554627640495074331214934090605750257224055998338777562083857808591500140253858564210197936442945195230426082051801938475156663458045813896388171617196748151721298254017296084709538264270744229432486473986941482128991410353814190679643090319077482998632925884965398200018973687608846070159683599563578272327154816096908594286694578992899089210378721410318889520784534576399011334768825814935193338581442015437104214351150181387326649822673970775255392277372856791160104663325772764860000485883173027464488588247804667262955297006499851890309760799488346576680456123209514716230664140396704477996938034233447155034032454123910168827892986100452116892225434462543099765124641864659301682172020904845905643527605900572666206378468151193012496839091439556199190435401632206607862354544501748184480676940384388473275942821687880250676944072219112138419562559287287349906895548525122714099485273513404484546474540531053390961869330668663888832963235207361568114244833349971844728819748691699159214075215174246844557971159223156931556204803799844550484127604536586591810490348828957254246038069546421345575832553975768541114192178720341083430812272333708463732903260574381951683560944858706538852611722694345175066396972059547978164940838742018177688461643003626809728647889815990132762584840456299207307068574371978417627586264346376855445946814378673110222169995918243514489177068065581245805078440629103248020372518240381965116392910774208734795110132758858611566594852100349162743969600134685701613628027006227080250012963866937533928407519428792578259097803806466643541539614595329367951905260212158854422155371146121052280542168495954449480550600284624788237673883624363990762075147418911725798479227721274590919725232127731855692292866735359251847610025859464920486529674943682516252655293719646573650127883262425788124764309527817991317245694016332844156551752745871945871154381288443175319228992264514180529241774724385626138621977421303218426269668661156822855431386624784952953204808077813496478662975331834407249706144964507980979770326304043071833553326467633536331848165784352670583607230264473990754896975738275309635768062190354137779538064739915709629910636412188197261258648062117664238832036896566171447158044633381383181892843085056367980891546288983308542424189847457109380079199738455289477095532838834604261849609167229149784893132936757630210101254147782615856376183802160004732159723874449628794532880917906402083698747045717867333887573602636209736289109435862221589222971067626764369534273648228397537630319584334382505322192805228671928261360444394974091165756503661300418085880394292699220752502566759020240098695514957997459642703367555566045727127977764140678886750108376041969857818155264054683268827723935516005399046057846204909102876063187775963917015146133765823895912718337324137386532381345306922362945340113251938613579450468710374094506950201861629768345726864838769009854302925881715389209293126961616550154002641087711101238627376602301079732604028117403578805532388122158819969067136396023460676307403183437244060639026952980861270313164735277546138971380636618350018777825874611471235525182351237005524339350272440260354286027746716868202448754231385473986750449055303795493270760078739996110899034233946909072502467606091580812701209806621453166665773730966838805157241162068788171047163993716193141869703222510254192236427625566049660418748207849913333544929035250115150951854473999860520022350526208663867178672322250851557521297871487880264584307004246935256197678735533212639922874861428330203644091437816218977390885132839614896277096501630327193878837865008052490063060700994853436257553205552794637893707318359625909691270258930879384459001765351230693169863869516906329540391539818064242592490394599223019236280520978802436316153717735110481243658251964901389861105652440876468542105190758948018583652861461714057639098271878863726343813247849455823264481418472121068348078014520783384138293641680149852703475637541420359592908535582216870756981335764266403798809432008961711119484678569688658024117173438193806541598088987714069541781930173726044670488257481905069850878057433407868749259459746935329633498808561302115657474827388424182992212343311629249364128384455014062200375372427672214899652122294593496277689145556824553561016439990960441026903796180847545962956225631208703458005338389451492239455532856394252625636247441513246664415014478506895083323068426535287000445917514390266885433003647723990429017778815675694326765544803819642768577315432842188497934680058287042918139113315474709753756819949255839624802878052701849060886825162370806256176619476863412349353936237560512465576693514829763161756493311940794784824147040827173494454813052480091676554542176044421511588993564611564412723322660421343743421877605624414088559218359536281086599570966300876759169402067604555541319707671779254664260290117901527344203498757511433154274197025807076665884121290593994106334322015018788823690190177203878105998967884888258931922548604199076990250577320852660015137096348569453345817116624262336147327058787959829877237192645543827847964089773069941550204421072389345595165130860565015669090917856479843774349619956836398701458994675264695338639884014042600315101944640605471893687940762865014944734919466124231367530766055930455912663903562619896092530033025553119261298705555301962670804700605401916357525386222593199378779310941936702454281380226895301888710564201365194043750719946919737699875768086046049585352062051998220938716748677314617593546231401212473187291581464939662654919413034853114641232383767146546904269401579829024244373273751340453743426430274676996681287646342466152176911756248215374327667690722048277580011951759514542100411657971466692836152740796747833735011664337782573973549952465298515342639518867144076086592214815310119563105746397194703848172350323293012840283296997567840296658341046084524086919048474583623358980249174146203029470896387889839793941180384267900760742293602068972373724303151711124451035594546521232433475078001580984104697605754383469128120877400143981358567349034812052180473678813136516324557105885526636390940767421640904467710789466287117962623686073403842072948706442159063389383461049629269640624898006416655149222847204513750782706226001461691230932976822756597460245406656036856350500443919306012893288119161887409032921874742528807706140182689793880196468544281120226389088800013672170052030056105053349501728849464787500778765327142074050738583867105349414725633519149563329343459249956445122592472498011138211863097760711883446352659491502354887693310061572732267538282727658617832896104470178321897084632004897336417634441407755038565223652867521284426045936739316283461027821519116280630287611405323332062388690636427407109912624982413743064313444187161321150711836808182791385084430294196310193758536264476683009224195120500131503080879970587943936404164367635881672829236485492171401109079284422591119523216693029279136268507394792757076451235717939692048850657862793979022454191913419124121331980093389274769205426035773997090392137238727564666411760962728753950627762932771721840400544587936770456651332939088044093523464850021795339879418651740980334804039084339209527070846724807538724023815772017461582449754908820990249360999452461799372031232528630452265808213752406089423464026609686752336059261101011679355547326369199094323654565442718757788777784501852362752698720487700481427762506414470867383994956294397578626645336712692214087908182374283710198395782923135090905769138664085486020200168275556805324807815737683654192199982019032097227847341944730574500711569471045962509119682858991941054680873375239548338333438563569224350014124458903104863152552745128786253043251350323526016002292376725938976437592785828788505773549340069464105002674589535782373398453346098869050485687659478795518661467387468552711941140588860517475029487338695141491662935055181241884587595627957070784500840522904777748893003046545857279756836145474819169268726485761410079238670686828522478639276703343437374546893229715235950392690700187518341101593828857223114808714088585040292093194607516937896685862900059480812361372269243023292480894769990050618604594435186836075467625933803768748466579206742075156325316814038378714977301810512727981342675711907187581563944452421587036623154576403753411568626443114642971172369448722010134538418400552091106304654569468680352231783383299257168074169178704428744706770633505648295673911060645728710322149781425763365453104341983583408313429334463348019622893851094487343944590548012032118186498890199083416505949869965676796593727579254745321321868339742699778710751545605021689052269197958583895920976545579087134456408873464081801409101112541759625344213898031512415830362174885370425513539457786623867460663168628414330455696218360258315854205478818281970114281897929963022308335299643058248982216972650481813400372443836278373474053434433142710425367802073424920110148952447079953504038686972585931763223212333040936820105382907839492766302863012215980872200834465805156133874925555740716647240406220637953011172945085116646371796390577101419828071031535686987634739363410493426268930021596879543880274644279928415009995654111940990492745593372901220178701679998237409189715376400070030207355927151327000406403500944960170746729588508551795330468257105096696453924577733454132025281306551443823847804909682469095417230175319817377499975576556268744929606791790845883677606134259946713831511626758563441509550409376146985553159050461240808128119606324182361928372060412568279982549227914688475794672523788748948706689948310930685035148091463848966363007051756042021139286528275024653833147416993023575440013247604451225641733440023745836997133584113748197588675269779191911578612112789610533097388379305936073496965055983416859653016771594140244134786160253647211863512082325563136638888027387274280516382845896594827788349815105876802032454665685641139734402554623132461709046157787566735362977789013180889749031376146970053322098641328852165656499559936188838672236848667211632695999750439302535012027705571363579207742221386838103747762847921149568021432145835683893220740651106479171805135884357929363668459345884277394291055373722305067000288707282595166530784341485302844701193628767217196104282024073952192304645785611409353658711912969815845345684636635807795736187963441312696281737821245647561956680120320557330956145091831714308439207766188155873431275990439550804818788952786555554472231120305767378855915143304361381093524692618152977240124329590403778800629051434482014632808795330635021132075766582108957976442820834643861351429623628130210760778385065893924462859908147515402012789550279544482490299672177899229283825552573961841226431714448563018237311524944895014638814930564742086238798786784031323544866757017821125622593210471104023734926375398454666409606939176651197884972039194761514048913757664693410822323962021645105254312901262943048957427904861575707317518379381206858742494700294969040765692412220805794042304461131812016035332180707512855985428581321651630283075046937114318950184920902639472695735485115555328044710447951773075407773557049836610497802923690428693197310331216246932484949450538800145531932694662415400620989710169917078111728983279407307465774471259346531666197592328282923699075378982736378224576571989793706220926011679010864481707493511891785177254594431121614180433691231098378213281237019809264574805699771848237027470462746078345529249924704216344629489215500998404310871191111961435462933402922385658164375745272598774274096597668864211171504475664496323648173690827469848080566739531695211480750387866110882742685261365592716305625114372990688470636148499387887500061106532813309635436902837738290631855208184633527796254895253607744827321781968188514872972935007337561834605132341024376325818000318258293001288406063781260140159569720217596966802381999009926428348837895461042967728781898470336632601071920985814038943659346250469531271897372175900580837241507930078321494428323183577708916712807023488545744092530806393862388377032100369683982231326785316942726021879273729070146596982275231349046677870233152377492014092449795161851093122287832878069096661975233062738394813040963135904989916440718176969394461473759691686822672811814783892602588807816871883469517970572306806412934825445768783638245755448531545097688208258258728886862864922673881473381701229608233830638290457780248780602423579651364475565451225380696389412210998013803300295660393982021980726562831632775196202819783982708850108268993969520666567493069896093596560047262676816091306276530130140382923775968717722346468261126696990407988543780209216751062006152773272563167605464351060025956717753780466830929002659174596659350371087263191242449901588013911299391548358961094944012361851456532204796000679652674685435047615466609701445723246743222803094470166495412814873693161384537611169394550738883619018016309177815026903966205793581324882108744817814284893113394142303630384889961077086567101805537235385248250523480590145069443326276933192428748321696654705156843210274060204490367010294820423761095245947813773132421761523590035360356617714625978951268519458581465377424809681807333235458973615345644428559196700927719393376167313056657149094103153917009225065079235658097111147402512096632825640192071548097332031169884959625985827015475213447105989417425521226531836364492716990563158376781712423864760512568623230386425277638071872791959499619968168055550714926127951621750267185349115549274400720737905344083197911931336669153958319934419831455696330986709257571206080702947761643277981203021729823990873689225619369836953356137291811097684116526830143888129837127926397403965867985134951612170163825007304701573669153893054118345764885830533111463328320115261596802142762684316890011956272696663673825372718103185890654382704959323795531169168464370565496745267610831914574824886043600316477996460725903293088669640254634095645772404909455033271620013788813325111190871916613303114478479437508290916347130666143512442479256202994655438049556874179471347361968835389035897912675529476523564507891115004835593323333014396616775691458410554105441271932316915499221345099908744931368143598066903113893825505002370172191063914172164083855008039631646085569153788589640593696538617196343737905805749400935385545700466064457259576482078262620809830202312514993729448919332029699118409274239789141186202454820228362243500411153742434613119715605346684313110966073741290738419321464615574105400664105418001550865804116006188792682723116793201059234476904526609431694496706141190699629538127538469738385282053284342384305690312923457547177439371257318867168084034254881117384581207805073818139355697110299854349467081509247996160302508762896240418960331305702943272150470208366142509264145372061819893864845137151650265772245689894872397502640774208267436518937082717865201017675175230453201301343303039187350596030472288592626314555430002215623967424819463856585536405244472858788191815130348758036551734286431070319893577838987147498012233835012679054054616689430685175662655023172765951893463106214970619757802053128742553999942713891640272232770810546006865950474374810101689105048830032864068103397640235379869981617920123870362524945379078775358729886561291348678621938437740635077560784008225155865126910129758832342661748238770202847803064285708743967685608140777061421996724577401404892013508080248151336380865824683729938547101554887072889901531655279283803626557171492417156169498238151504479285433282944943159234464977744908799569864223800193291198629609709649982835348972830666661749334429737807583286383259400401060723546733657863409886776248579359297896385508086096037330628902838325744890059830118252009138265652316921855153577452240327498707134615417210231930599490878549854521941643635742126863849114987790898058447442513959992257476869063624682866667004338070194969055722370446781704942103379608250134982213248217652849267122378334576328628133695937599365556780249951008934795836711952136432468108612161739712341984555462304016525847723777396707927364190805877824825231329704038790568278492753101877994575794743674054104042313814728211733162925827291418317231007889326239310952573342329158774538057228093046273629379008550341325087401489018391963378494277186877849815366979931839441359412880161306986837572050244472033913506496459789344045293350398676788836629269937558108070470913431606039125426387503995267593078461553869949041540394959992858699151725321542733416644206265927871474460931110755209956047409232484999822231419601192995489161204716332484765263563964569452082499577831607048554906578484901422867681500442943787858071142681114540808320578162136049815053880769596555327070150626932385546080168453568554572767023356360685060807443987877938238944626507122717471988094318821987414326267577696247939238930431337104474887364712640720637766531971997793914744096005246108709366801329183664388211186188364156318445328369181524733082681426185920001699794278260877311197221386450145992513117595527932869681236843082483880502689548866450151212982874602059181657020280592285507682919743525335316847258649073511328504645041891241310364167247032485538259066009368893218781622616511599151279965076318416986328717754249469885102501695019644646628272580418995717736719477463948149601382354115905285187277060318179786073742192111041448424760243142497363457417029954833837258406899933688541304750363287855683442393564585000158688780009411325504259357315126324207118759223726505857791321906138108390357541339999868207988829021220993439283656476061497412885832841214099337184607383893701359661519207975578203057400977707154628665850802679509577562167687023341460087979251868164233834010289097602939176325735049000537199848550981863533460945474784746620779669269023000351378617985704181822002579535578334797438515896848133405642186667318072281124470340323265946873031245066461326316988457785504416283484393069669493441403236880053355622012319528430301095862933610978371191031701653174293651042359671056609587415265071903980509481120733751722362805718382757049619241676553256165133261869790567118113869104325270220913361733096682537140397557097455483653684336632807560666101298666522329316884185033564282757573455869635427951726744581371180942407336618636621755432282256145343298619163586169306191787417735281774937771892636374824974552809357846860674604581454216643401920130334289763287585611782567629466899169317878826731934947072183683458735968771743940403657931059441641808575255375574209306993857155017603557418636910125151299546473460622599839925462893610428388149145099281873775763393191531601760848541221065852104295917694209294177957993214845867796649337375918927269527316954615714635080701666179432607722121397445495525646546107201979349305755795085967287773201537003064007047536107330583650940557029538231028830533676601326622001089138097408317018792637018039575828849540402921242579839899654296432269581964760518118349791620723441650123662606452073052368271802127988388127456953629347445823545901888905425525540585489573661739039482450427477084042604512404300090221056031464859403055361411300518177729088476615370639594022900707438766300501782307712170461509800600740549318565594552917096344107664338100780264548594352045579493303827802125482917758062784008981889260916670101679295228024192848648168918153317443411859407382784956762939725456680160678285539275897226116774768054381852527107039461358490549982236461542843697226162286474522468172931141675144643274518496642467355238439573463832122475496139744161979784397726013362867811555159281002994534926957645336248794064616439118147350374509152111555907241206122639924698317659808882837013951017398813535328456706222194952864068226630778632869235323563736376941864030283970247105975615826436564811314987861233057421319785214047213598566350686614024780615357419638706454316347444903340519122456919983182872109604967753746869957523713889014409785524566356558979996049183244881232968408781675199036680389813382060259879054940895634631013820783307082235853141291444816115917363664351579951057669894005492688398488118672984555938324523539450437409344088890930440441454398564824231393624731372060947127145734827131469053045780766522680408674890420006462367901046804180827869081485641403253113579653259590417637309407415219744271631493330581901450131116574652816379549910466435112218246943929220194405582748253430428997278397662523518180249552512450741219395738414847643030022727915399360675629322809678353518428798189554642514697895438821133196719485490174720485766204610142042598690257794445656775059310197537341681424778925331620699709564879976085517723159923821057057200871164921926718322228787813981798882939480489500726893811147007056943903533187479218368269179581733566422590140082610173669448604379784428441188894528139101357042122228752024066177733573613703575509521617850549686080646822780357944585747482894785031119243913470724718237990667287617377182922927062515075713627478486399083603305876873783920632962221621748653582735920414475048380052982452309844464789106783126504124977266061779538780756316645348228771642622840764466659178995617706178757285423904969744040288029487212639588851496867505605210765085323227354314049028449855988091602596574180911430386251867821869105050129151172700155945987183770308057572874390246660242558080665328541506521649861660940738943028796047355215534562058384423254037659933186839087600984560901714044719388351015604904386063360481868951102047824089529266783185283182089049675933010870967879537704781308860755994973598445359996203623173164552340158140795087802868258699150413396088454455197374977293071198662934791698309864957158435268363966723602318247499796059333670587729622625383336303509176038563617664291777884601148332404759425938533830128662513514593534342856182093660512290050392264008887628676795114999452083394192996532886481723479819831411181563174029927368712844831062329171034031841294329123643095239209233088751636348971650961081260263827271080984523689427236074391678441550921864786845386986256397798856411122359489505916659017542643729908557720849180060421342725855516649726338566261440337044002877748147090859389031128391390603599361677546739139974684497757947089446145332521682921619724643114046770458049991073277268609910587321508905754160868975969309685719166152645347539017291737540993974222508879641749104276805587061185683949985319510096766823986113315288304390917901124025814433981877847398196468196729801104334049455640591597095607751329413490079972724798841171454889236481885377747168565478584638471473370033658955263824997694093633332941368606137139097616556066205893283430030898252721800507237649665870656408879059670012255350660909279662143527264690372710780817514239986182758649431077508862663103723774246840189172095744697698916785676694780945160350664428933817196391634436328803301358291322571480282557220338520646538714106024873337265533026101738407675040966564104834535875262238400230460348801608289064056078015230428889214857094210117765792499473008015066118909681179563948710136883956904379248817071785496962669913122857553968722109166781818273404046920209368984346192614309187091438826558157382399733548967978079316528139875952617175476512451600314587322519891534593343554500200519474983508132777740253644071658410205300273622285680925477030118818110028992305688875235790916637143817958836704376641623563965207923725749997505979601846515048486323068741903639286088135476330489263430801884730339794537890530790078247643296830046336788611600206622707070795802288679028378225784274322145193611442555175691202789918005356744888071310274635697090771898929800504740837142810876723006107593602382557365902672490015186507140692180742338881370595248400859715551661592495231250303784815313021664388078949100956605975744668511101166207059311592654385116419370915440988103046979897503656831500823893950674185244843559268472882351482770045389169429767727628179803537499327574894653409236040014276073781123271052029501430799408291681142997605236860903700305301562549038501411458307955548809666339894372740016309191351628649608005771991828260568209604326660670999336948954577865405879343661002777207503313486200706340391205366002701888199423643195071405061106943303141092267101963015923533356593416093121615212844944248634117542536190847744028488687544332683526597369637997873399642181008704880219343161140551417724876067986602373888795648292363700849219054401174657790401623883606344468264946412617980792157145994039546075800670923658537707471730376372018394673842301488575661045317513392052219429614988609561175331606533135330160475371991936973162922431190977141790464253736446315947076575710564915338118063325329113169513483688203946896821027160074285100472029761218465621871697810803647170851295319487645915237560026356374204066084815464310731555209837182799104585382158846229577794089707370091901213042510416304551132473349492792856612208218100965832970242234247448532115638647967677744270434217901674746884039224585367044471153822492012427910949746014686155337164697051794565538364594156992891772111437733240981909821208681343287101546635902695661816778448369149692075513524249021915511287780791706146313881384179233530817786765627000421582823373000741340145807348374803830939097517634788961949892361784477787986904083250780639670074762375530717771225757732406036522032377608904733073226305910348988426915569095395473772947553773996349691638986283485190743343205580168124086344025115865700738984051438319182549532424390182445480279560486387508057519782975975460454857032769880690875831163213758247650277550053183054283916565082146558881169595102417802582587945174561203233212739854459533831041355606673613075231151475099168011619347020818502493477974975249961802276050329851711455213847134913263646932086868065722551379676048276217175939286751343967848177085083925596443326085752121824156867289861874258999183221813911418596322137931816796338983271571500304298534831065532916154778718791267273756747617917516032185885187065808017219353620344177091865601928826564974220705002404333643972814600791120688930341470882147415308669396855207610981642634648373585753949582473952718783986352370915049990455791855179206219274824185529729297023428779193031247863211555113654782038369167085534382222545828196131789063830658870495869028309996824762845063519938470744264982696384748732376776642993702276831683119156889347124739367063225261118752495894239664098321597683055347644716924653099895034540720695537827781882063580198579427365264546877243309035835770295148069325157386085847656452851039382892351437668438350144728562872605594910227878327299747066288750225270246393140194026002534280321980376044749858309624575000093573177213072993532802888097280360260739190580030108897663405320971083422951519987805454778626687682551018318145124469883684961771421863702071171286067879841206454515107358849017028240209763020575631906002978759788261803841742176004046831645725991787922361328242180240318465634373526054202917533638259932310277764945283321974068107849768163625672297120508232937207011661283337266548760503358065665580380918944350062603296699695650951919716038854195659185970989974368633417726067283655732075737701076645750934712447284142650835718275673253244111468709784724184114898901472986620747237767253409007117521305339773575953357049719997351337236592337587228405235537728770627197730653715609278841917511863751793883723446780010716309281977283124520252241478446035222820486244579015812635427266391925413593677045833358125106594486923437098060363161773720543977175341332683797195054348285182599609708499630131279199298001902990837666880638668921775600130492457302301925133405160629518193278851337659167972234697426049188707439752954741750291571314552704420705247163636289686011561882152430220238084002174952108517262918305696447482155546607118009491460674984233466676135483131965464129994113526828118016811449581795139394792201476915628073334349541851724026889251799786172276897465279093630297718227251722027643905737580239743526626331451300031652384717249684175863133050213804913201708692223806137121013896428537087754621501913279636362859237697885843302482611386617302720887244146228345759444190181980274154591738680941221303717561512793516072353568896606726197250042225567983551428865289695851527422501773233706509635442089835853532843840144410344158395198437960858228903131947526451550924491427484230697594367954508440853436045959714210599597264798179668448262371653295944132060906087773598560361378838690635618803501622274526135906002434765695732021871033640394929568012255202374053848368996357389513844506483492386684984225887330411286991409839399452086110093490116669489179924113037893899502550126361083860663298228243352628040262843568855980012757059682985934877437862431624047353081088314354540649630494985280169014847378656634138832959949226850076190161509574375729049021177191652376426839590713860490846847615303236415906970912321823965233294600882133197893080254143621224222054851367452842600046022338438708513877746745180194594681817549291422840815346320802012999305458225558250270202294197621147295811895102443595525643393025405701297064913713826878215982271071758297317792120541262894812263470406106097017605307655646753564986382361464075725211175566637883689602657922162553516776418026011292761520594691689071606813724447933431920831421047184211196119154728403369255006107958846542805180454133749609678533579556262640210371146770935763905588459075916476990269140752418993305318016362963393827012721687275546425454368940082767145635846307390967332553137580676960635709279103907608851419908086275205940990406729483757184326497116045667804857101828140255206589893124024074901046791106270375053936847425435444294459399280751595942696488353399249195273281585915377776045597752493941156383177298810525805762196475814632070078452291038943694891981837108520247368216756164901679767109564110563476673006242252777720877679648005333420910687110921184080686507646507627743109391406053113080650866938925019907082813852006694044331878533794096745218532965580431860503050023757099868088636202091484969588751960932208556942470737526144971751242556185789534924987450735571252952176601282911252009632580254234220852260922083318920049904480955706436302687684378103549596765842428171066746663438409879581320190340293338199381572428462253112187317858346150568867278643785967769619935180943747275297171827117985971931262538160741841989881669064700671556857316805990881983977799051983837809374991132240417996454876530219408687772269072980215130719889626781490356988355523073199438064456686510877777534678164758419772490949847633318750958183055644813124746177203411934773599597301171547182474836464641984459122883307407314602347435630316105235159014529534674446673899618049132711125268710853167231416306106619494117116022784888186671892120304921973997687040632060640519805419986789875072119312274331785297311717803586994894180898559517940366598381106969358091570609417806649801961558926606005856499329323950964292839281204245784888907844397069585870084325053019132104306152344037830657005543962855437469957188669346403771793723301269351594701491233600522316860334741816493138262455789344877111592191456977104167815613892871250994760340436743384273244334033384297744355550063369593152567115994430128548974079830052373446675042836674348651240021883293759465562915318416239297622713799627550774949927876609014411032675200751838598917560038730824636905016659784100946384709888028229781669341161714111873084723424512779962609701732126576321222901982513417652836072853665236777865149789379908095478523854755777575748552119899675449384527702336309549735689013789336772553478714403099377402768927474990618327487900751095331597422530918303131686426768391210881046941735261228683015147023214124136694500732995098425508706785397189529817502335821015916455837102397412250602648242847354839714292451136711449353911358573077066780614032996748741328088146201936204232098439335246126569922408275587520750482291298475356434754819311911211725114718431878061407636709643986371485595046774116074127452316649109459997592926260231530648355539024143764696825419045091164369771101060018053040519354254321765740311733594264458908078566127284976357794917648006294469430545169787138910162384928611114035969134435237516462494774151513314855101825274913997926812729197869472873764612257268267338932506070833947691301337258618279756543742144791496521453551068274910383870031210301018483189092389523335227509402650484748441566131682672470094857943617519282285969425271624411398797700281216092522152288663963139113179354434950503124416094366064544543367100913959775937778477383884918666387344294600646880660483066758365814887988292333099436602163251026114315092313882490436124936998592478163808470541596450701262153407924618452678176743770389481662799145779283052234845099956204227972222687395752589303418130895667331143665968133904458602757728507601585090604527377261769514850826139590548151900775586611519454789116206197341990896914056499854571747471191241958284329111502390968394680037680750885901804377443004560643625177751160936137852977045344785530661535320612546822763720153796843744542367774759182241306463434888359807535541740960465637325227376406983243525098855166255451846533210770840048689213386258337351435376639698149414267424016229230404389958086143178255169300962913875678083634498165144192746846187991540513717011267171563971713480835635192925190034599907144378524574332241284937213970340388124537116518148236977038746282422052413953323999940201056321280019628874660746227634385618545954165599038462308542862742971677700525350360960858703015623477794717512962000967790668226911662328024265117691872445555373831946871125548097555211814688942548882544705269873367157915980477015980543878773404719888188824070150403614708606483089632670974280042368525449417891564885364753461349412887020262925316798192680382699693102614339552959993804373078968610955183445353175458940422124666914666432527466951785693668386472544228371073511501521381176576603738830393590844707639210616174046357792177165652220635614284020422828336935345550261786119848868788755614557481819092500723117702042905540062844359203482894629375016783536998402508259455306791100275334011119899505793108352207635015737611064006914056709178508880913596874133488744237897785424575913838696476000513588645007135334615825243829678608504805844401688574328899551589595173817103274944288220269596200529549926822099428150536494675023117521832420086597321378974143109468048840447365530187863435903209755050279393572689194823013103327312373578329488469840536806586416813346046327329090247533755614440499067498049339473205384347016844140959505584975555449463308890860560124672393068763605805586935271686340578544970421579677541379130253477593258206947834636142383403594872933338524666321761701200024033472806002698310440751216205340004440111779530180824163305579180153537977845314167445675707053603551096377457253766887479592092877848142398492713059229910278140196958752665055293873116213541412904694956328819136673337445566829021680570781020422680650811181934251204092173349597212952382385246216267905090960678793324488440412960717175867898277723351650402172376148573448188121893631415353140882891285739565852643127458075984911271359067475357380604902720738130222312406691397858828763462554720042737446011660309446634225460846573894693487912707064440957135652867772439121321933980975333874937026002785051212664977782866865439537900404631138727825181637745129203307211508130110066605348822025179411813526337969311772026493772187327662109737160366795463897784149069497610189973958174674896457793977868354028701108704878393346688392322186032095503414671373307972031931122046965745682250783045622883810113538182668738869691787408525069477103381466215223614583894752305075060908303635246751295888936108855126716458941688475507122451956613328637328562356763638470650668246037017416381456583999465550722212480009912007783787462742251900599754758169514790903364304545718035968982181712525400549017487189219364743963754228719599461707739196509877777339977092620836537765994028647654910316920103928628134342518643070872893137491435633957349102214415830582817052355664819293339147610330393350434347226345698246445891604722182894215504555575578487011883806411046437536037260753083558185338979561791834272630117305945126190720422152688917503751171576161266360228222596384763361631676686715047370607026295288446444813271962218337575058094642147697343452835419529144167835275058703359028247717475997243010960109714556888011037470270062124961604327929266968035610527141835032363231179035420843054680457924077486123594665538445342970064923021496772215131042298946084107192377978695426241369653388865804135889560854225176027625128422115260064597561996533374735495441730284607212449180854042250952371951103122875956237845961087801540291548926270763002938367894926438707408143809918711883042888566446118876452808117975265132726721723501709094030185656431048433331028919862738249008151414785576742300871250020942211054396469435368913640142481892471659001778978802430998130119519722716901965207445872986762800670427472460055751933804502773030963754476733718829939575798203528976896018047360935055764596006180093882147343198517747662282078165388252430179691505774866900724479272420122223352586808454297002298581840624194178420752417443718072138538167315366392150825651576358776562350354582070324576334523631844251433215979930763240421330426242694729753718703488216447679739339594013824285635093111063505708970092885755381889353007040159786973087419783336193096386424651957726047780700946466376546753278304280913143823393002393087350961473571755979652736100398890015605249931194053622518720811048357177154172962538978167312129917399747497073764870106680541266022102515640064019328379392668846421422155673501097585753390273200243370918571395200862455686434970552748167207932139683917790337099184877657708734979747778250450100839822646490824358221468990515944833523967469916614497704729536728576570152776348634552294427570487582781205427907997075753541462259474103359894321617463460737727696888612828805005687046313145395489658349189269207476969096640260342040700115419678079753405564882314325111647985465632595200015966512161776189415636310631469224267443437555281475831522202101304143540639394506061871429681840497855976716988732266969465476402128796283364937284239290152369514232113997834807687503777328568170653729032143785944767511472825597506909557333840589869052642298737739712825798716941502924191070134776470495852045015200949881728324901496728057987484310345249828106665784777610134010415361750645641637340795583193082002227500521874240925412754794070940726397553441130179150492507991623201687997562554195945911955506657712489739609798661855055794665275161673530396593742245386822943341500007609757870954361552834218257457313513882609044401268236452299435274717499300075851864903554397668906949162663327521591268041737215665401151014291243116251029643673224114858755643806088123111865451179431767627705510277857293296631292312052389598947286434093720901623286769511360858407690511770469219565246354335523996861112742389487691975810434708059117153314399059736454361377873247157860028658650315895165998181811938301648866348100199386506691598713578341024120110350052629704036881327620112586827489821659118941497989468886728460799215353748647092162856042034127065425209606474702206045268248621795793408531623340565774276765451557830632421518841605265271173691771524498529605644375753827460761691853834889207810651099975605142997343135389829192604636655287358245434200700623395607887478570851858512199127381039990466537799804766772677901674889398862099671362054651978919444760945946398772585910521793869961550110697895350422098830528756406946349390227621243339497396523614272659943303135636809142874840321816226838680164298586864108555944525497199346734692120469456177786888395556546889627701439798960954827860033690902534359900883788408599310849628628344247818399070651520164349431560087667539397695153429599881084688629907890115168143491834237622097084344169457426324500945962782139597892833654319100969315523323601945094759938108168320320501138898991028629021588825315538460524620872623904383033279160874173462402358024293834601935098389081752163965118530275833076369573935042775483169885136082197631685827604372909197441284545644096040522511763435480777466843930111531709156896538776751650496792176167114341002179006241191034324223663124746333311131551312381539541388657266602197802210557883197801038157860346665554270483443575749733601363624282727446563017491596901640404165565232448238924988069746492295080012738170984592795543791184601524630504215656253959275614744814474769565041935389279283007147797479889979029650679522073062739596571393405698588068389352807306803683756527497274206976726040213696875570331833926395643479787267108991726303459719668225371462672716108606206240242341382933342714930361806856548941786624190093639642803786182490366972876879838349752204201314158580608935296491630760888572707423962160045096764329055772704342635268567494469401962408730778046754357487351430894868411351664610716208646769821571317455578164349813943250121429821078080566741556509535867778284317423182842025156797732219697427398984811407175392616263297643246190068781528101506329680173819597848597339698079787674235543602069804917119505936220381055221087637278216331928161819597185454783125503001285449806057468682586061682913673074911348996872291077461418669410375075688602569170836174593144065280970331203547591014207835162428125611147660480174422930740871690196096021756659257536931757586233310698482670770076639948581439031688719988645603659165942710366704475394821152193952976861945010543829340223031727689408497303631585140210306164981609899151689146942406721867234037777267253418160356060294364704303581424564207527825819986270378271771663313314978820500240969866559125417034886815724722988722197046357543050681295336979365823524147146162037011747464373591806831996055376638496272498358466470164937347266449767141616087658260378942575368347150135634395055312376987313225253482931642535717109665003564325978118902440303957123707351190670258655420224664783785098831409712500048276027854565605814593673004127051303670066062616782906680042290546468315936751715732698092865635660604105118302074465024270840332617735025780497088480503205969664105245126912801826346370617909705872199713335622404074603549894484926941828224930555360444567386653744033980796783493361472877423794957369405906880990485965990942239538920356794492340551245343944599807251250175765857464815159779477693563913713247386025854926340845888327980568769115313397637677467874667107582332310287895869359258317065308162859393299162629268147030222091573242301622125094751498440889786099219142386802669843498256003289063627163895142891923974596996655691293171583825628156356283495680275091372549177643426325291952269937060041638023129926823856786446946888880911104803615196270629245432832247939412258140955997250999214375485443494759293116305158981633794144811338981081064487677631837639095765512292526955095379771286333551734228148080399800777284107237147449556630693836112244235328984665762222244199467956615294958964803030588075155281592682703383238173452607477521335128511622353487454354783263429458964827089386407629049222072142965200072262510596924973672132794855654176147904080815660137687288876841469290613931835442550537724281435861231732500258567395842811477772064941755294510821850424180204823059856413606332487141765695350091724549058761473036152153453304684508949270567552239817528169056498536528857470913256649005870412170537345020381822529918480404943919127250816671454067093445167075578347643065626926902176607604603371747178861181781647337339651755344748289189870801995940465687354641212010585435713975643994417922042569896383803230544181989181426335589973628090416083823521972097455181888552583540019805339109729999621983007720494673390719516793406451813452973127211322203207187783094597788741401087053627788179397160699681380039392608864876129595727220960560442893380951431797179907364817273725258537221458370917708417695306555287452154010405777901098915382584352036875416303662776062673267254830478326806770659044076418483500770451293489494826587786735956343589718854012427802265436670672747995275952515815823132162088458173037008804196933970071249972327058773149271862576179530891008756966212495106455481207681479970840305217169463478517247763833765521170362019502518641369248585175942414923512585680709981377243952333818621772150775971440786506801712702305571272870935401819748484655222134808643551123331203826969216664865858069954010428825653199142767270724816068394504798610640603567296373779382868231047405375123484936889681463869226913073009877885211508267135835715911376227096811760210723807186436433103536804819081725539990303330130166506569503938485832159847266821232194398233868266144590338417696603638586007608615157755616672495279646724077571930398002885991717735177178212795574847932112470271641968661640055939502243979483528771792896522048147486361374307824422975821137927292629477866376514960241891835642377777713069925024519292630553723973138758746088106953884451426551201260072682946327266657845178777136321400656615776137708287559276261618839210740674272316887596741815417118110510301216205957847166690983566265928532657402627337771934338712996159985093346021360130073328725995647199657221470220359240941590079622520717478972485834053673706191395692203796701048089701307054611190193689970173689104581462434927012318255779862884045328292422680757935818847797167762681116612049106462613167865481406115113778843547196950013196918225488780981343519693165224998547082854809228401918306489593710777192503096533975376233647337378051997975877818354951418130735794963549055453655832563558170812125287900043074267236279818844394420706655105928265664389492545504919672367966474677920810676193973269384434428137098673192925454032082764599045185178914706709769785572374669947627367984132902591681731071521892264184482728903276515710368432976420706967614125276191413249601824950516841257831711212445234105925165752984832769870269480508734671776598435501161864404302321147347289122090295706658999662698939314742540799656893397382347490807793653357912975114267473506109696773179979423248341311614030283075299964711855408819342471713492209331398729392083842412162072273873919592503361086130952281754003521763511096326669469997432725739527923717235087733060026075955484528979408536219170068418570676431497331092008616811650014020115705579431961846375059659709066400716494596349787000343836254736011731976146274757239080551038143394032530483323691530158727875115192848684566562737725514419919292009148197161800623781215482791076025357048590255257189242762241438275969824096985304268869264208894728882420366845908656444132185866429691032903217532960931737096854643318429312022090338054506588205489883652341187818074500623705816567503662183489586124870943887790524366011527346884403529903520889876748507528543217371111450454395158047888815769962788012714793849990110096746501951059666429307985670484439422071052565532437333768685270750933275932042465325121099882461805132920870563959581035387492896490032272282685999313764581493483796978159900709554812994867235027265163288965181845158048282841814270929879855623286226581366771288001440345998372013534353621980492494844706451433182375101657166526151866460489150387583537380746692275092428686860833902076403694030619519194034547792124228235560868392120418827582441689394377718151758969153941251974154087161532215990366396782527931030308001053749810053950700256783648330766997130017702105643844339852805856608605533200839109635903378088025693054937265166381107367516812181468473204634800552142252661620558234212526070708798341677531433734181172695513925510078775502940275897278147198413099550925878331617753865889865306570005751436112226931479451765620107641727852757715424719019024488403943034394347938792815724608681179791306687988759845693588615857665271210298005534993338656826375970366387157681753230098811570400968536126098725816960649563118204641270896067319414555816610467368154051828446284333785476723961310569597011845749280710148617207596892290030980973405754081880126223869116815385046823291986634517356453853719112013816095050545154501257045993206889628536903731345037422507777512640194811036898044117396529117652477681528880442430896277233489356631124068880562289638333636485721746016765877995460889638472173727830969134893161210842041178777732611586631371061797772661015590449340311510808253044810242841630481778964786343976638566725581929886999894589975871458486580214786913931227031483154876599216657964007267013344554643974129876132951907887827334417071153011876844962754349066933534644589776912434781611836169396770522906540658407044036576774698916953419387477853703763157073955609014360955929797306840121765842252892529580353251544769194066488330146878226772129044167510173324902483603950931976125089937143417910988558915356320816695809572971867530173539336612039382692976140107535949622947407438477626760974658088012154779925717249909393241663355308238936690606627688954644185538263469994470038926094240819640799424909938433764975109925948593007673502767943864399260637714294411365201969648212621196319172952477129610480785977359121351762484281225690625384166882662419668857454968401653173009104910315867700185901841660981739286715307380515513909700901232274419585438233045549595946481646786548357978600445375498286477345679501293240148948947815718593744509545985730165491835086074218137350560317542852079878315866248930659684218155150230336859960533101931249030870442889382745736231020651737532928715496659156878857543178131599176285721267933544602093348766354140162630055962622081684640798533747983667835172730387137584248377868015592305411808582991816720183991924390402496022055741631581027907350905810271783831098765859059061690371301659902409051296365863540428729852861557260218268336754846073813180621426572450443400834765905381274918205978778159897984884144013056188204019211165928614627956377801082700969928404570718385307898652046007118716023229911832359407689478733023638121210020961813951804553133434811719954712184208518409572779693078262880503205674868038003651117397703923844887649589357554164168873253575017623153588451670708373865019337278095998205207165979946803846065782361891533957949200693453407814938211887588506618799381423659537888458456612859788271999389312220992242965643887679967074300780124816644060166664874851618345929894637685147420844576505927070073751665650771119837005713638929580561892240679412151114742139854513088227369307746468653797318728301214651503410270537783471409450822403854584513802863071113072334880502662605936058941958078991913538854361904605696043444353329625393343024886345663335713917405536484768907844269664137183093163908901569807112270235417650583971834075102917749204905665679316575371897785755553963289487729773458765308287361406464709855819245014798270036493729574909438989204183257802441165132695918174076993147664681019847386876450967297876858884568211824659318974016270786695290622487832485039442686071025845337774742921784604482862219277351564479631363897750187483755497219221922223948408602648197081645655842984823005676481061896337468107908336134293954253835007994532881442973119643691088697845216234464054220948803431450350665478189961563381853465701375564185391337140768157649675714762866918194387531934801084994128124696239852720237903605565385839236375630075421669757798771086835197127350412782607319579518103960359676756729261406180363574907391650756246699154201912768765814665728608920902871614248811755618089406534230405814380185774291540844847106484233043889526592989975489358286060744135095829403494520119557655519925472690450389042147415580496829076698460548345424828815071762000413604291844152074950683011985777672679028822788831323452749424108719094287780495816464123213974184058512901139381597387375911585430903146054601562511138011401238999820947549074250169618662231858759127237029490101745351801768309522049021130534914931937642332774253254795571837239724136664249725949136195077466648007777292514021607045967212571314864133974088925150700718793499690225077926291153977431814001178497112428020114797717935746729938095323064228073230395926453391676904515046553335260536215632126773090754918411418494433658279568427183845476999897185548471702730593301750238143864538118174922409512963365385533778229903996446786790791502095848206013152167256488593402071627022885689546085368442213070230909089787092507083354733614113326123476300275196685039910364293606218020015400429160651654343311253616079906037272089838398808315342307986740743696083437510626677229274404151673945118019749681690195956935054289020029640978402174580815720871840559616361189167524260100006483430936625085069877248001699530853055989025428261394045913616591090221670487364211521295481209012661968776091479705722273970890326150853454082145173096855484500617435570016317261067795647203863108391377675716976843149082112481153612935316893459628593304675691621298768946896726701539510058868154946017430042092686498751215656927222865339762616980143714061572557091446078738243926012309455609140327011735005825169947595841637846255813443123217957931180791393369712628385671007674732605146402949158708506195499373381871727118550682581234592476163478016804084488300964628825824590899579542061732279836488321970668015735623256144822854202810099219318319123690989797119352602953548910369572854337080071672118862205591414026269467364449207360213419738496813858625669835891136589150101048958788651637269271992295452336616974604268682420225009341021918677168137286060433891589342970800581509930671904101870977718662813578899111301614860804759013674211936578695355532897379669379765236685987398690547318106033724813087032452537517474553112688530060992139663750532220005995958899876922213094612456533926698307644105005226193685700966216726949984503944597040692844364862586125228760423984090882800997083759373118826495914381060626213351755694160752800613417438079453332725938273654351174328641109579132026805721476603264062517527091478449624008874717652748808560481341840574221468505477018369098459500623630366717275521652375690348093121269540226613834109305484059187066134219146436984233577890288318416900549932147761770529160917175865368572074872327792227661958165192888062400140691376819349264960338790035312950384054773080594068664003787734467654456156587931145826044934806038887522095565585681922878815686285820318375776450386557460267032569762725757622933487514597585566920470264046821759760956680047339726141843320408831952381463967120823901382897469668787237220945250936065405756913477549600412249682228196712750857394219752746858507180469848626192449512663229865129013622937704712415394801652432007897421133740890190014628372488656767524662612194711334183547419484407191743176678164776532099488666231799689382549645842382893678028903152640933644263732283753744100306355967368347733124219182217202773619307142122490017480720437898426733139788868350217090303342444331999791388268245291143481814371860952253367513162034946111069669167439816336588418281124703973097203952580111849768928445524288705447165532280455034046229337509515507497027226098474532488845919041334585616974579889810939997300017507094710293477908356803981435465720327718899904650026325330443361808907570011779081615794025791680488596670759990243015341149584357601682899111053777223858552890685493627480831130375526716811318653749154382667480188656427057040679243446918967158547829231176297028460992773875976986719080963234583443606916627754334122987581288950122301125266866716794665451420353872176970169068380827571829887515245373846713331162169099179489682757836596303916477903343917368470878749511935033182833203292820523084765637022874779983485899876071269052044142065237801799267199947856674251286982553058897720005973105251236277548049866614580095286057544656342254822096791256510429694089369514640567971028627748283696713130607342821567852164286447746125967312471126056402356406940767210063828106152480890230661727581732160521519844653341854577611081632164106629835994772700252077169564517395439638793961209936175341973343873805260724508351316239888166717259233085225838988303692090670495523898881543879541637149718081523955068673052120906813675853002370753082394924973437401378515187670457148454026352212492281910846201411615203124711340115490482101294035399958587255354451954950269654715620807970546160468425180251608343456186380165397814261172581839727378902244569930414495349493720815827435200285762553327676369900671939091085625165717176618627339165060371273247516379828886575220801600502696948006931083415625628814483480782153163771555801719941515541595144828984767482683408338609326819238296159649682228198197173836226323834275659906036677167326152545728928301026616999135644592995485409205654640985431241561681927753167409741105678462920771731164049610883050618712199750366546479562159874208801529579569295524730196806262631722274970898816181691128119288262116366608526972323591431446873096099548250376576577372374181422758588865798273124998538247168978826408642655084629680841099588341090692125278344897388736718269022397224031265893037072849025076455407851478450741507372625849953279724059012562281524143261994582153626349309500521104951143598206566313048887451307065913688073282830490716749712811531326723366022677597385367306868871438899713351860048872622770742468291209519891482264458846844534629759552342160522623906135445927214580591446228224023198154910400257393785303978930918928915522198234882549806840390706276033426790497107646313621869503271724072476752082123393040271614772237268418013645961171868221639130569255638400543498572662053272515690067536403725484628039391217192248959029378690670413942605183583245727684976197805860935117150582837557772133864878296071532106334792124875687080860694819320975197298143998226232808556641060559357711017106190723196283829025894847619960709323872597927416447476028872224446914551160107575792827047059355622130137995260798990672820522035884455414240027614272837207844438537532486642115497122003987822566270683233032111958987908736929040351046305378354333943560622749151576173857077116906955740929473647394810088955504179255885488816797963149673145508057271729343135632297158688243393096469327219956304862656250837037017806946756530740417727036867130812011453542890792073117972712251277528652347748428868300376987106329688589306157158334942194278943886203509936430938169138289064620196424361217032806537470170493234163269200239702183081572269558879181247697791252154590126540359054142951902969987575582659272292667213314560065116509945194118915348571043602385429453219829059046915282829135088210357249249492058647497407635206346334574333844786728192261156252586875937631210925857609518045477078736144111171460681263568310146376276804071729510199392395663863753126108036071348883841712802105492143400057472784875136311165093137493483920002348613416241723899336175229491628113565021440030282864146946128879377084687455390472403606347724202541620031939437330889103806243043868999028217840820581954425882530611755657765894453838595202931663912545782746464503901452464945227849813720297018446230586128288851458666854795673771757609287474616533195868391004853954811560318617625125724714004439555235725973186387581792244918390230274440105873562787209223794129427446405836346339969927845045991517696383010113785137567955478509472862590691330873805838053247180887202129462255607273068266425658196338824771839862987205289466751018357263983703994329564434601285465038232736226498558358132715221642254736151271171004099874903217522715070507432417069693359369849561649857040846224931524131282683238506255679406972721457025117252313486797068506013499221739389963894975185947188087316886606069376783257921791489114096642439971384654848631507950998761059476814969281279697952636330282656904622158919023990626322525007049962165458304121429359253585254998966466584859513114514271197249230249546657275013177223369309514904970702106817604377121546943033142336151172600461357247721092162021200423177916410533932335844424877373160544374884791031894917835968012879574757335863341400411393271132993553298943645229680137862625277971816479549590552529153477877255422129260257469938334002613568206105118893361871915817622124843413127091927495061265943772417466384765212791446759414902561556158056908921894523853933335428396584883043317578611666554841300533710050348554435229281897103120802117611210756420703406284076948293618652277823296092572991235596575155623774393852452840852057733377551185501127091956044739698744462446528709957307126928725751619231876350292892911006155479761455537964794718366386312498518174848315770909815083987258204130805592113060011639745329070232346370381190742935541304577829735578478612062137820028744571417905249652908270814218402223933568570188452516510256943862084193560888160594594918246519438298097369100028062418801985505618800378568412961087244211866285918551171294609643534124305892670930869601396615396744627255306006761386393639037540401620833353780290369781245658187603686910702055069924995987017252792542109121329444374095118313199762423309921814541893176965892034556457593116272457511448296554591677404906085197855299570778926149249836407001066586994980918303176825851228719843582950118229372796127496646262443597307598643545055282797498506643890335604893155357569164538874445311023858524809063475888852562871784473993765040913463791474616825121589039007608439904322561927413501470236483984461789338274183311801164396733147105224445944156404017818446597084963584512056950733443007890321521265288495639438937418969877340135637294587235044391617435225697418491229262705812837599699521307840597435150488449446768790491850010007434038186635085434450577890190034767338478102558051159616946270480525601332118942172804091143698368997965701613895645049870355827589007261493141719761973850854127878082780432857465811321962205906865242297527367229069505025245004634312209777391260331695665056817256886383427692727406030338718666798924867434339174372859087119286502993952078472146061997450650862616649360438506918195510109168739638739716784381028810897236763690529658289239849651557675486212235805639771714066078476848168151447842936403089024735269363899823508928322517320118290323519081274265837728942948026934598256713952525457309519301924160511293883620994362695331736636975402716343284679435236962251300027233460845104115145319049671864821795916325912277960591345775980088329225155287814928417878311392533597676197338290667244738897117556252847661717860845688688515614521687826563711923821251773051759022786527639173011172629667565859194782196947175179319946691676243045733008123298473698412376922201492604208383996579974929677918907128922582714643745394359512178102825494329574058463214766730477982317405815761980077574021072037877600833020279396921345992030648358282091561921464836036030793254898983391405202511829430601426878885428316718249921938387935906643712614838780669457121928719017074110131278166278955339438877539595445777828465065561872487055270820849457132917738482373883593001024803740242524350456030973443787433914192309706863723115407376531081004663810553664936475029468814409281280961451923973317697486654821792253277220624873383153740306219385977121068898802547502563284530458776318853389241304341403284200012597392351384136453495404635422760838234220419169546745428429360419352453967820701328674997300002137202607467169464418153041032936899591120990227044058830171497282908394757743933087372462333352274713318050806405278372820079786800531194447343598352429539858010220599415045479500808995943363925035412422513397975951060625911369019799590338918055417737081388970234976235135561314978113547634093615312894356644560426699062738623994537249158264083740591573523299952997654818863355687342198172598311145435576057114381454035882368333434050101065849215201683654093228938564167372476670375562520701031241829221694226149731792428654287973849757400294469289366194112396665998085109536127692330494434345581204613947368025120888545518866484696894929416231313008500628736791508286064359101379281564656959053973223479101282836058062136061568568094764096815075404811937464249604692840032438962124370947618472187341368919851428689360785706156913116151156735243628314728783376959067929755694356817858610009638822793215084398227428224240587388686159392484255529523971855379333830308877919773041078132658897076203347910402664849781862103280772757315841529023086691693618826173297135878647218998364049190020120121949846590913096821723077250030979247997391712044105764883469082575767246606360919887758024955378237264298287946942045976601495260809435349065698618459277861036108856677603279040268580183237509127479473285389937421877416844697756762186325974017234079425001911504187654405106674169912192223719075409805652913714196988692383938910445865600938449820481222378807769036729213064711880043049625456731809437641414855565757149396869695043289048659431316374335208520791092894992803184807364193419213396892456920795120201687042338700321098878671470126526105147392171398166028458506506912665176327111330756660251238438571605277878995458613626844643323015953853829726652044572838578056012495579770624251090930719049829204935262088456352341001304280026314509462406516994691860659265261391487559168057248466809136124408247855066292949410683428175413326269968910582080050694142459120615475880861140895699494805313758427708058724927523156925962942387644852201088327734122007493370157580806150969870645790431541547959292026443432206357108756840975409265274890414437896417614605145960864917692539147226316731260361917318476208356063292675450508146727112011797055825127100189075786969358544956340845890339050023971569819418669073262298541667926275816610004620698617201828115190584837229731329718309997714088407816920494062453029411657619111552460110819165924873010800410108838153199503472986068339809208146513699505611540535711439960587705721597665599186627831621035115359301898470408362379970527228948088943822174294001016575450703004497712317689062353012191702724314477164971929419789068183854384213928858551866047145243152685892014859334805509193613021587016379836549715237549753713704777619269500624515368789420943255486820108027635028299756524861761529173894896539438505717807088996308932029487730249723700136094130834327963670185576857206711603462017512878675803518117797114246667105197313791335874766331739307358501888559670263809492204810316825191009269882997778685136915880734932920262677434492634586063209244007789487033792012115409546806518004751704023439261976354760782869339804045595650830775756003045122535258854687232731529709900542792744812173480831595801906078450828611456133999075667300878294100992071161829923214253795672779272687826615643482897071576175685977887715546474848477653511362488326192301943498080872553059554831764611226335622226110307382218360140818771982864586470618163173181349524378741702762773136288480408384529444237034534146089374633396387167201110592466915464892853099207767504795319584678900247901350067199842231436533197996377523632637774971969005859337774134303031482175621155030442961518510469570940253544982875583701856011333565697560919607592364414539411193479555558926833432347667648889729284393606802905655747391522774476884775639495405753919135504750547726531295707685929392060249198360187674158873970481255352303241398255347652265588504042077040309179185228164495460705282460035066368483458516350278389737534448804735135586518480846535216589341394124658458109707820283098267146953039399508502905256179540626685958538024026116184310004717322642485690505279544615601417712431574046647504875731366182639824880135953003672922821716505018559737902935333026282179975806874874729191294647130272149832430864459955594704505474062954200762348890886782682151864806940873141218696032532785002730969544174962146939490073665234159601654405954702651692599010920495900346700355632894014958436377125564331098672657113791446635142668328867185069545496037149705452438617268073271199380076507501931799303430701491311861770207586851668195834547048495542206737948252913511583721417995576711264175765246095187347317434059817511386923316482682594933590199715977575472172800462440333902373135247236937777015045808944561738322945643114413501247767037445939414445759931397963210105466249279514280917797217184447894630576168073476101995761160160610859285273419633266419620568710807162603746080602592384802852286728765554461787355523298224688147546303713136597421484427083962073528951166823807128813380807269209412559824694321782743502705410322424441042948894349123389329720007543598435329379172141050100545727840996947024114994017201488836116284933377392021728575771897035616088253416665131610877411854061846995081004980776287338386197666436321534144404192281198086489293543946217323979596792719446045124297470533667944657700004157923106994055211978461406185971877376854714070096675757081782698766951589062872134637260372948994794590841159553161595037660044225269030889940348150427783866605471619114774088239444655325106604663591429445181119417728346531361042385253371661034163956174912642828576107792348166835849008282255638349918144441659243149274607867596816168498851268149371351549865885464844872636356514978689527612895937824353508093115607265329404488309669668685311899718287189620793046172447206186989996684382178318920517788945384268924874960081336389030715543164866826610185532567162756034874634652109857628514410712246068408624991746232627938935557574819597621764807027532172112730950145424984680090596846630767649085586391632942913882954055127159406695729198286832260940858637208053664184772680407386432044426469718887095138896090939823042576160045291965734617931063444205392923340048249528094898609004792038648271256535903790562767325834251042596118264200313235691664072724680719082938459786412553579030795196602563436492381592879553787317981381690189139097588836123267293157787196839717078074882447972189380460647746478530655739706387634610708145334440063154473418979065119460268580839220498227273764498653370833608826941158336125954131374912511511837702896110679576476019501578650919777551016789534574864202617557471597109462797539788533746132954359183269748568974272384305457911369094573114559079185391160145688678637690410717650220613818154852753608365811089244552014710009400381679071654748082888428842132546696098886748579743744386794839442530084885512780122672663821465306169070609051201665809060653355320344170893983306134882051928602850777591073036905126577998512420928419693973812332976591610369823839131205075456303145110451406891132556590975616041308835971559039201041974858697190046871280317715468071505223072835938035580475189331016242732658099223784001256923818297753024097079045489070287434145919347849387225409401716112431001214442246535708978289678002034979101040870632995598229571457446765953315866591070726292189696768399832138905414087684764632474066739625708997118482293873533185874772970504331301719158764274200492483980101089294710662750012194233244862359241787879326869376750966580369044045142212373988399224939723171361469210731031655813166591395214249932118386122213141546623529108577025133478686766876952076270598096780918509740077158866925229071785864209386331588572346169017686553358361697307382282007154647985067797482168757247509520845655280012963587008773759050016611664938909260549525578179958637000482858413266935056395769579650534764685902345251922610469413066936008322855627250428799335386484811487601979977272096616117045255973334849986274752415265366584005525757924673344894615526696730672858166082608434033126636052867148435204751618519969667267243032728204612814434449069325195478022695653790368010203044495164297819237018116613835397918291156976557424236598257978625507514137447343531630117334794921419788514930036883549110342267833369415919780570116533424774018608842061616775650554373501545700327107610135486721388764322251216075586477601698546007573733280071445282749862271898350051973265922799267122744127019724112440329133983143171011186957310521268308269724788089412560324971734242945016572238184227002895051583582073179867623275625164063922969577563598412686704623212376582223568621693338312049065367837529573934334466353454155574117663261970098542637041735003397340230885374591160156617514438774074395798879170051675393689282610667588445768186128810240891788745642506119434632165417789833770524806311728551328229814699061119994193939314630226427267913256356129673243759520061847244375951063609548450922645560395146192630123097323321175827083364843174526697942636143605499262261705359558507688031076752583212773839998608245051038999551761844435786658454273002152661767274804913167796803000625451297127430972394969267415290693333872354550943156468132039480396519265427130807317303043086587785399446425460207101430505585421240535244252947942960986343300697377689631097627518959624365679109723519118826751953367536805442750867623208840085967037650373797375180855801053791510533378761168786196123967269331399279845877525385283093557273442781138055101136923410896382834827182902158610766662947963077625690192855206005881123022813961020560718589203217490464006138029076118956624642318262690634359127127310289522377455348720589811385304075652427850830415807538306301402347577548251176814180900992684579270914184366503551631250259682170229136326831885127668122578156094026875043677615989868507021951538289901170106086088501455289060099189221909723102302608510389578135900187949986183538771633859379128969997914557456950642671415065117866149709224417095969222332421790419331831521785713272737479596438020997196003110358269055250756421837009841557217906799527824291557677896593529363421139979588531200988203404796431416275014354684320691806120601931563981412468196544909891009549355728816750363923332624032194097922281118422315876492528820749846212467171085464807989991165013575409513228363571993845904888424557799740019790347233005016729156363424756123247997882539242915190656782030116975889670962402840669649999315387324055050087517788938220237494821173052574693366744052800847227560881320298768701656991234618561056179150749316538971978460747037319111127700368837779650400708347318370483159362284856717174141768082001817861781962619776111588779367948403352362923931466355038483751960368019675243776688314436590412599378788861511559633897938969089807039942832752256120356601911116444147333811107251418576691563755009775274691791594670897367489647413252985680688433587052982369892487052095227811847286124466263492440434622204478362742684695712165502313341717079439267184179768239243220566743627138437564903685820808619106263263476320419686235709743358983310813451201018713445146166356621306646380750627050774286035340127375232933196594417941768374779954692184918349312076101040215449645702144886002676006108046059723280869266353299666991318874408402317311367789780698720611306997988428878982806593643994318858787644362169779471243880071605899211995321746501205142780724079567230761760243540779540085222683798289632503459952156261802808903858607623088946419356534381750854928179323193751873458810395726361862102860390681856035485902428736820534462873510415185586385195669064356944205002855369828330690388220252308117556605307662139511342078144559995733913076259904734004729624241246107192474822386542873845299685743647151101061903836509884501243383451617951624989251786855431971174352230608455440190613706167922132772374235796263946031291338495637838499977129928255995994413158316673656868428017102808741320932579390563020104695404928388783897373831830093824002725804916883599382543961829496245170848243315309907452368607386089278322190428939714709070736272321308176828400283540752437657105407081095741712460377798534964557915066487005458080868597405367786213101010537695200319129705742570460219986117855770890578060168268763555593447410074518011213237155394879367619358914773198718992266364267231368639638586320972167465988872241120579292681733138381660560856477743430205622876013514797318497885236699163223973573248481142462551109055812158607068785621127773564419023670519264419094567611966718535219390590210334384770291114625803404580146343291188101679661985334925144678735455515899038272758360608189274442135945059039568590137053517547510065314339044161955033540599427064639295008701279938359971813589269170102391545405898390246976378910313246038321228490149112187120480619795005190591351477139550349720185041007066369090831016668794366050751166213667977204853670893472007084043125147819518803668076392170713355624956171537507655110429705676300991812334331886725185274625171496454540510577686113496510953063806402774210711271968545796624854117896607902617142549708084081241670749009660719130567700384032063555036508527813817520288175745399022585941180831017934671013253955676994475581292525634216675732595090329085581875923799162373984091994111602032051447199728629098220723549196823626227115597677085760642855246466113200714744641856619813961347919946297449533882321422074234602988142136531383100024971291341446818092023658160515321895820962908134555548197204385814066782366365471800403464206137945560710059601189674585467228884432101512844939985635799657859293001060267381708140866539340515347106352495083936505735458933947446631537091903686614608424250470886815443488471126946803316922745987314658512856406209911992595234981218092076354584159604443620476067408009679596916216788963085405569745191727455860255763090950375715042381126432517861128067006833087251694738955046510653973701686113520149386859901332626908743631580173438115653206147592518023818221801888558186126349227516836871976319792164275836155427875036746620835071501560585511425763792763771828789632994829054529784316209720633606624267506097099196356985167389401932291436337064014685960906223156065866739694327798582240902439202232075349839157493594025823691738129953585950307304177692343363462780540198361955246588965569049229645073231608396725141816426699285935905869819052365298036946566881846575869559476849202604465708746586719679165913249116109408950392980549384612006440541599884729236207376749413156956872914788844039497346758940802060995272004386291160294167417621923372017442388160754740748831899646199544214161569276237265956567405504151730062576678011741362362028568518962224329241069223520545908478256500145980509784949129172792135226711974527118132626233646633306284976085123532470757778232910928040654398779851666057627414092639284865114839043246707102780482937528816318786957777628582608781164901608905053253005595286742043786547012052554057725312807649240756168174018889998947028393585739379412148686850669332761810809656405875873915940417871281146637875901616626707575455207044196579552335322937346253984249886295258845178051061015604372419927282241129150490532983522665101245296059147649141676207056500752631287760722693862081332565909022206899660137711560579042784135565445748320152707458871817602134661472077124672594282723895048012228110326361600452993385198180201984533133908819895969576080885244850902177733299394072321546648801358507146421681894397502215555584020717966437881215231730278010027309006792780163667219761098686097661338046058638998339429479299250949691510523173040058012226633230701435936470389091485127714204751049637342709838132324975188490613177835415841296837824542331621295926549756534282141197919830574691290825257938667522814040618614689072075269974114269253269936097498203413182009294544737781480901907988649524959575361475037652621020849180695137916791540330993048490179454590562866309074645650540847024308763496613409489932669389695964173501128765855992361279706531707125218666688388823316018475747471142848975774495993757311975628695107972793759258056533535469821074086752894148408767294110718592292215789090136922407513194688345372298336931118760195568151336841951023938849144826449462434126322953523658607717244847811904589565904528352646810736034784869913607361265894789446525605877294446824967573687393502740837706029666473160308526338491596829883136190889421600285446631943831985317985122141727311722163306742726889457496755199979095032440202783015044554156793622359011810463141114319546257654370328691162367256840823220447934980484231561052885171255053763268880084704248191914004774423137429366723834806073808261890534619533941165620102570570179484516705841844239095888895561369555907282146406140631980069084641192482042899545001334572087881876486310724117011142442103484525285475089214085019444108309885976262906733588922288574299630763162943541037138355885102170589134425670046279680332626876661185851063991944895606470121574617267370002710877257441408594090889414185393682045913913884069179377501319941755824519632075928039169600673800766381861449271958416460573060189862271422905039295686895896988126562582697632059770812773344318656383033498615104101636480061627937486224970266943428718294903050934912292654260423059098512733855052554318640133636276007257358957833926681382878050575984169576625001670675609313938908187147853787144866307381429979649261172842550266630466083102334858240296881444035775390335119112647676513481885006920605025455790655210116861075920423558269169091665400723125097694214223990766477688508787591679442047956863183237342962965437729033766145364992125559817296119485453175803582003617167980379234381017634022877497428150843315184392147810944768678770279100925270134536933704886900199984617976838047333465959532511627881496435278243868087937622629364908845486744624149481531433241871935463162557617501933475250299235128321912080361169704833901338447014635321514095833381364920531066903085340983828314338270212144600292328871977227785414677723397315314020534417321891708959404258721696772772945736766471501733966797579515705450171088568751821170453520949505952847358775319688331751857136738218696298699715289610789231688296641485683749440174277054964994648345564926723561413075144129618468714984601996697418489840242134842378107104806095201139536774745068919360469476140828313576687740322477228339006433533769324070039412869407029679516800515064687084781984868896539056739094334650681226538717058219303909355202185152839211125428626444998611376330583892534130043034874897535353120180958877104030432175295685920514755964266343863468537871320522500356908710712410846131625091518135337329492713311116631153338170937137158287457685372584680994523453715074071311447410387028219652926918587325904566800735827679643537335961492282116696842186923104249208660897624692552681948251697475185958892802901111221339481383066027595842582090076761603326136154790622286905028356953341796559838777401460315035441776580997311380394695987526303121962105370425282058733701450914487253381905005819976618513611920597170429649185518725395477478149503228686203588786292079326446144640394441871508425663375960624777221304938003294243651422452282677659942305674356269398010766717752064699052073397966911353056214607023319826172040379468143248598467027976221053205998311189353188195907355893482747391005798934845611388761586980617578204474292353606130990441004894264751493996895563375151869644410629520111502077796895601699516416869056498438520446879118269295006839267757876726286498175492248830124591767347681670956599240084983723736607274620204382744261027299730272858867561102073424043752309947749080713787153986722399617725599007924751388188544522098607413115176197128924796660396103983012331836778693487574494397036224400558673740435370045746366716973175881386302762162530362032759902890882432110534157466190996522008279390472083792692356595962664862164725414589053561697607666056386693658952669701701563539862667229064752916983005288494148252605010750409507968679503719578258190546098967967803702306055509648836019746516488389956995105533663194379000152311202119650515788217185499471988899462075796518747272890690390849217841284347472972964216343357117303755902011427332627577149129943473586321387951843219863935701510203443726349441426450330696189355733330947223228674647741990147259309587857236137153066216268053577659858732886345563904621614766632990349730801413672213657154264103467441043664676843283618548624725301560724758731563429052923790088841731158224888310108744960936167294137712413396855218783988777982818537614222953309909089964955927061297134666828735987132378376404361014792690871205782957051961561842596667919331205202933822312335847015229825673235837727521563743447562018024089713364751879155835680256787768468247111549259009930928898012110888446562644119199225576931897763798700336679141930378052366563595364550366879036918908329518382934499627287458185131232219508473488032064867697860969582475413582654049083881247433575922816777861153715936200941169024443291420117784708234532953740878193111680982712912444927904868472353411683486537909928771860838727011809272768211163315770133283151593809311817091432777044130581427854028717634017860735323310257582332679548310473615960388872379067961084650825563107821573264464579897155234190024665061321375715891648483388674413779521459799345902885477682409684047463397859840908198438379534480844967379604787693548816228263692133951804270797530970176796408610025233277757170715522930644389702434711130060001893111946369744654052602943580328093811606563694756706416402879589853419478980376672301491698671654801076374976365308552653640763009125510365333596295174709256945709707745817653229357173045145539866832960074164681193879752354182968794788449773628374743804452794019685048446496905977036809656160237226537554948057280620470668434880688081574525541658312621754077226360177914458727306909025603534994065755543796438983739052125027053881144697379249964717324417255552317672046764399398153699053437508733370808589456535579866144784043155612469749524699253801061814036410595893920495112079910289626906789412234750743299468076942821002002122035139943759982383628664881736025491899286206195395457619084968467277032712402466169656905365358771081792810443035817607629499509775895631980626642011797853005072447693214947006044225057322583043579746560213258511788567570784127804050719299751121656801144221804803242847021316073776596112809609511689366933464322256488779510007549122990618028499934600265675066601473187970511744750493946052488763300421212143722853250120255116296943820959972879199817818110492233089858364058105182892506404376023366352530969317988869922244132406243126403463644174614082797000904359044447087291224058861202733021846437757357350176138936376328906539173076468427109165786947150269537843185786125388893385618968466062631783679490821774789161060248788566428728886115805024914900171902274006956581553007873059064585442228912083028616159786949266216182313604818123709161343545325913260398677357259990437522696200999092853970807639335266557277750204532720315577654932427712758985755244400121054575055132278112189581837874072978775951968526531206452845508240625493109010875259136647362835387957936075401467101183586550532857150065862594865061426189496808609037745082481322599162683443260042421648529432669762814687083436854127092668608752272031570354848436976371992147159766545690502367978260291629212287429218007842306606963427297773925963724017596554291599566739369419024690189350746637944735015072612281097082626376810895432250353841609289999284464440340199311944497197170720891991193885374749427435932602395582580781193845686618603539740975381836397446671168316141301822294436852503520886579120422018892956573011321862665871678026637734890079183216312464035605011890129977585141347350488583846588143822839290981564108799745798150128337562574440247634786280235688308215318480168899476376972731308981530319402664630220354427946068083442933066514280242413739780336610046913033670654083786482543656796474318917088951222047517001069763342100063902087962004516666840642129293805467385149788094698712533080496267191697801923269996661226307858318178282677151792542517138263749968601738359619941656390015265029226713718682969167290992866593197527894184704781936565549943446134076012948708353998836756646889032070053269429040933157752375062355402431486111956832241483113273042057246746210243389892219665709501272752137449555471228514871608683416550929207535229592687873043252573256052861437153996980874767621743792061879198934347189177345800668294162281640081667266713317948473945860953909686974857098831139686177791286605855134015478189342721660183950970102610421554297086010863038982087058042137851222435520316772947846904771480885556461356526145177545178742810004647049378534870495827035797356259501256302698599467830533446859531257884102346055804843137399283711158241870675281622478620132282660059499715747090283109431077893489312443658126164366650716687716934705881107772029055383152364334639252256945146998983631592103918648936346620553716464168513511399408152282362330938462438261450613831995834269622189667249254959016811615311942050855467006081167873374836690934366442180210476037894080249756300147054054523929388014050288744166869474433797422054641823343133966476042845892413437478262895984968805049907368769084895812398359138106079651556046377332627994807677367430203286342177950334858625156211469068043764768354875596295745773823857167158527926075578760652724771439220293613709361697861325157152709337716949269982029264782135445297350246445650475168935522926445201875200711256733296598143700566306943020634964730140770835994819168293475287978038829722485763360071403548596833903392531083544882001632063506992976135678239612763733681998676584632533296775609717366254603487853246094821185619217216960220197687292305672461786376947335562916389923846903562709629756624827757505791142976500624646375479310976895421581470718056973727658146477403706889176614342840706328616989377676240546578299028263031238587475155669971629816272924394366086906022430052019367832990180421378550886014871638538550701571105504280053861966050102407654766810557795470976235107970040268945527659327299126036713209096473614242287934418477099331597538967585983217309168509964944686099400072078869483620134392282385331362208581035168971435075267250947854604970019259271999885424418841192235045544983673512765019032752946778371416443957671684867618090277381761169695306173602464521560822977295108845774383104854165870114542611045451516122400802909209031835465531643025079065862886088552333586177979131816913839923187623451211854747623675427854076970501316961906861673879414766318755427687304792980668579811550875272752913369999993413490285390839337801995170155812952213047477544414637476770203947211170004082514851562258744023464733948112528290520917492488039624216433219032818733908879361290577676458207822496691454738914361758888842154589979544280089986614683915915019884734549494674763747890548170704976836444903462609893121102041772256887039314443057520685483515471440464964540188556844162690849933205143012244019711952069126095757729666725080187454749227805006155877356975891612071643961673705047942799139603484102742303137288081818050781013712479280462762023135275398350547063650514511241696057566016804177692637086185211949471651888008189581438964820323463349809706426592336469184088436043319340863309331243391346905130044692737154283276075627521857368546177439255617370171034436632872906538447038207588670610128902322229366810453010198944228504630664445914354808397167859740707728682377198319695026305351396036387672282003939298300061143608131086668262189455994222160550809803291365725186152415736398710158943300554228035017386560786344984773210890753090635878188581606163747903870092122488507556416987294811044791542828111348646600440471884665285573058803650078345824407380876875564842150674232853427260727356997943973237929141583379181108563026375780013676136469071426213620080309661684427371469234084031320045702494398731513812169603154045620768565098383066247544062009157637708636357162112191288732870405215031052577988142697236252899061434831175582463302121534979789980535816116997121731624388220224590509850048591514211270632419656601909474793823342509662274073185040257434901040014426095177651268454856008860370536742480096648137204270457650258683881424466660518251246631602086140453044217939634460120197228877119863580953544471059855171995050158473971908314749259020191683607700105279487411671203229309631331615644993640599509010876442667542430555627067847057871822590203449728837699655746200550776908939842934583451210798670670971938098553522692809162573590323308533521212517427056204907124224047690218324468173548668987180614629817236817633690080137629000095944353365874234997139875871754145988156112939467496769172571424766834191898356865452637473480557908925807954270415087095621589837089637426937942153465734700914103489531805798395545742829073253834725943529022143418125106134643825904471200000333342249404851314360911391247508757662088238474586925752137304824360696252983125064962749835068936325767665475903287960892459372751430881761561416958332640624598290382486008797834793129086558012541969875597955253131895271224596695356801655562274453577858178897395235540051140834370114692772217363249429592325957720845523117092709907422983098267708664119891409590496407682137775463231837593641306451068721591781978359979369323217369223885867286521600172483613223533769974473801394989747904539018668694228630642423333337362301330887581621279018646990858144700794158169801753211762953875541818866248160752685902170149052029354374002010730041752582486340424961213408878673506515712413987580492747659432514450659017170672066805701821087359421917542269655871292459718050610133596359765632695378026292985643269914751864641161535989117938612370555805632301469841414765266069302083721473738558045118771338449756332174721407616700772713872217994327678854152338664684868884727240664453582132785555746927671354434343703100889486196559537250921065516129461950220153579619400344575233493781335858327124933821464965623499886607264086084952541818819014229174263369204326892977354303438713496867059495876661750071539131104542607144532520070783901580674733892722461035724199846287779948586232763602794492030515100149844277958274789571222012044066210338439697977392396933691850900170727683778255561332513874696701359466518871058729437268890317429234023274950734725553411575359864820110773980263730994366527063090890906306087121665261636398092470185218320638934017839287941470751610790647420244063780876702039554546613185783467892135815758309794976614246331437739617322267488223514054090721361343186473154398543240413069328439812844001669086057621842304625241324510321766979409753792518007978188530149825045279307085588456620240528759755016908011492168111479474326959478399001446060106360387007023148968221036896727708334159453759893141920102827758484781189432061432329997447175186547879225784806567766615643021483206823715242113770207016489472454012619443907536690570074880954835617095395918769094869179757663849130489655798811132938858674325128724276791625540890029699948490598773810570257116535350512667857202640917813535744460746930243392368647295784313459424810769275016769458654386162607890322938358881506492594986261302865174225388702010020336558695193825004688470910743939762737395395036227182953721907203907830749278774837310016718487461328318330082509984581786535564879011156295543965052207267787604633707320852248737020261511601595291216336553726217711798855422034247949819090058972974229628778594195501817796933789769086638054999189338184760171578254602015546963203759749320124936280499267166048374538195458113749407397138242750089511138889678330859605202304387895892922760536488433810844021660073535458285552123339620581135366906197873200264672348909088967116506925237346458839482826231926774464606772158076976803797457307322950718925126141027796825419768834171078711433642989719872041717656309791061869727048676777266188666736744862335360059962855839311674772494391119503438849360209324485766022959556467152202543020240103325906367748583172108040268879487176595878383930328523738473870968379148982180740065828266900820222804826736783928782799586438717644280420344065866973754162204973710801486888553704362019045816838130095291217660477606326841185592183825161037290694277457785783091509463493214141931006874683054398391465131614157238067277622584165497352454429689229649388587501624296108211104857163895893061823219453699800112542733331486610719454664453912258106657954985751302191702892595571984803124876417121011007574324428958820257764453876464415811350099873202845731618207164701272859719503241498223048365983603503415214764608755536938423727160906220016190324697992249601957180537117836574907042828769413068984827983552654427795470712132481387562184139029568507600773416061390337421656452817755778990558437023761902114644845495528542870781456353488080068754968643397333449564115875257189733913843386595445170441050267686851070237166777202750747534811430177708440403077358064749466452532419990504688152575503282933949295240677634180429675510722147281740225818801444499147999008528261730344795082420113851893226474283945443265927832105662600158736265636783311008198347573231764388455656821439463873316842349291694946309324712548020701971230534528529227332016892188118408367947478020184425951232441251003995197562422864981052238080581805802601368509423936436077580565255186466789013565290218573738666624773995855652091450409611982480306261005303266025367226079983118899270882647376881161339573854037418901230087811480336968182166967252062726902710452850631297716491004631429895247829068241218719523034083435827707139087255056016868448458350383686851898336025642948817456365817099388082663374956052459495569029682818462109630781888155462597009587007283529135300357871086331170677872273339485394178054488000554170717033962916651385441686995220909454325930978000149583505582895870528467889738722945357246921049237319540018943474748343176130554231467644054741580493763995093862975559508792195806987784433296944604148778301653045104793356016343027992503132127820002239950724625083949078920688588636756966911671514051302922940803319584656381357131353078626860770932480148557927898826496363091041662682052337383543133995320060420698369776338939437306042226186160977373477117932416605061606512987588483665143849774061869853191079186530573409392243667674118298198256216434075937416923548035223838916063852210164458472296721179428314832540617637539982885936963698593110733136762800441063052513659041429939151006239662245335319406561802215800375574256323019186662567319861098187740226952181386824546787129169965814898848962895597415120591607715734077350626053636985761179119976219158505946592421754536111953927628697646237818101408418827006838524701803789432436920835722348518103811337967626956373119348002524813106116718503068480314994284766770369129187536926335804263513813211501359525272333621425170900692988924127466249781007168322281257453482196533572292244028357951508292260032951107080663522711861331730935066857786114924699873890216337576356131793152473729982967977912324966287723008457231813649400908686935690219651164322593129587786361184307690845186220681007007652318163644255595139004603228887899336559046836392101791749504407942933420163774879612144625925397120282423450090806671217062879699662512921860946465832499828321316332113391258938137020763795468170780435938225963002062022540636033091007451416526899894102456723674919791508051645375473748309121615660695550726557018803866800674489715876178611001408129758007642873651717142640835756242277711923670100159630981918068403767203359298286635190012485943992374927708126233796971049185671426202630758484868149776387773555584117529282889757587191370697577260800950720390733449836668285874744307636996855184668514770368501091564874784004260472879979326319276906617472889276531765702670599426433074569222943027473444605448600770112461260078393841956173298724718257075089507723608594361899563541053768883644476193893283560134851603411414254042711828642671858101568690633257105532616163149141485474614902863098038187130492403484640920195840715022407623185443193695478469623776615416405464982468641065781710119000034357217553054701766492582033015170803747248943518766655896821972770948250591415530785599657074690955186571959188321475502198232221537790999294508336316975299424526888200044403009590366454131525091399898697768196233316967602544121562549579263729942996304894752362128756853047753894800830877334039857029205181348211364174069688750706569386277493913969877340609796238740883503385431699168817635677343602877068839280741513633026261911429890304145608485898259858026357045856401069379597511257379127255705675526101125482000508349943960453201738830906095921285760894488859112009739440533628575558051262963056465248351057339264570827046408902252618842435291194391727988071562356534282009040992501058930903822572574802899118589759859578376910826725963565876727310903086107367004006348686206007176815766014508247545347510427614724901987770677501663234243909878993779718804994381709085979639930690247034778095283653367133790104188069449034623798127070780655042168248918726051731777576930035638418019169381739561671775250845839916598470796146745780586494773089804789159893579783271067849888213562443461825708079272323282230177766902723583290332927860058643478703269595495034089850183464677032654171841409474768491210038642937353706204497384501567916901227170487728208218426252958820484636649988486030246074357135557086038727548776704382100058849233465497888558391575383453684930206584511014383044184623873153291102215919173689214668215325255870153280877321026741329858000419248820210302912851827298016585249295643942248861261637399749942581187690819214670954806539934045330227265571997100894104313683291095987898539751886372320066148528525398239961720907736035312657690393037246574799749203841630025653644129377441706974117790627035273438524762468982815701919077561681656340985228953247342758645647705108616421953022209008987767861860223246227450233681676584909241964488262005010087457704241122841847515152439680201724359288688744878827518715978338402071067644085850580278695168594201376000045533682599657932746201956504417482358616056521892063051436001142990208447819287061165744083002775897900547547149677609569716285074491163858638654869660417002883041443099725841485091255283995685646292901705474730183385730216018296829107390510712174002700585456712317701370583192277941813811893039381906986923122901307504781030573496469914289486907551292530941428560977822065200981716321542934423301888474914666824603697422685407987761824300899498775941586179386826958821532997178667248061833672571898264910565756503864946086971509800305071770501797356833211988478033310357149494872565013873152136625847401253227256926301738375827964132866577670614251233316703084970147941874722516699301638868854692390872867140305905204126523749482485073609677959287486369514784250258560844906564520031641153797979808006720683069754177584891842473510800341823386068207364875021695744507348354226318252911021255997300598791128714242394665668732280049781962876811579009664904660482302255888749355210368126010248372940153823184384171824062489108149910165317963572211670111772243604648408494252306251251131965779301060370307375236917851269866342915419988929231323384081261567855616117541814056759267733839446856299667508162074792452303147272683830094580540126995963212797851994878097166723343349098486382836416281377494879440176383415911127064211676198539204071521729837031542321264749832527586733605357761943289035870639419518354997309312262955089079893697191652687506820087543364511985805694232213182115300055234941205355007435445895591891259980511917808699084157311510577374898539214791847683958953718996460208642035881453725005108858661222783920500004724479873902951688900361414663439373025134318751647537819136420145204564370761975486102865231623261814812389348031765168173372823992667392990706023545197458287129053994385237853356537139601047476989497741376497207276591856834325170697853811065165402899565572312580651143358093973359718640629207939188203254961807247296707116701057825332268631850663828163500210526350423490256079227754579650085090439503183339814874008036969939948054351698075431152059148615945660570241047877585407708192321176417203525335685916887999104397731279047437315529574145598335699248974146961083188601451766501845427920382478020817976983023863791092047762015851102789424539132541456872729433394754111861792099081990570746452395179324032098667615387081514786148139221993587682164768178662742733269150076082657034517058405281506918976098943866446537647285801971658563728614758287986721525839404812519852752409527558187553818481525268038585866640370863279699869340612464018833926771334121304238474531139738150518114982370905881669966375617642397490750175674952689299161030971378388820886657101889657499783494378763908994749128686990689990155466602562724110719723712998203522923537926721190760747285751444916346213422727592953042433233300270858859954742757467766399664664768206016810889044084633962514663939629112066091008289037888337867184152399039978193092469192747880866033780803814543859255446833281813536232515595265967039451253229227642499450694166118036236954597241412243243515836226225656958256620849515489394741513949541525658356018257030967199521329883973587367617991616192753574929327945182218604335563026600176230569463316780205901203902740183714485089277874617193209841999776553626844099356481752317730816395232419521229222861955339681272862326415386840574555930918586800883753580477706689434050855300655097247421728591167742622534329996347929061981200916871330489545278241972235999882820657949449139049542268301125911004807584175811671134501532027072328415948289998489133995624376671676754818038752500826681082637499573277593620141442301866941545432424447671639211329633939651998620886254015193709677310872713872110359180384041132732303855267165412953742102200298178758941610963041865695700800945010066824076878880262103558125873783740538968266914318573143870225430015760451677963188137674076679262768101048007782125496542015771990971730310875829284509536041786434719686157244326377015088188133243751406087446087172180257558996243589755243779988220001891756287870974482637298562972196476176329242820360729721074661595181464493837972701133984184860974217524939450131997575688564989190170576817623228257866870651114811142429336222838978984441271270465675493106184724233368867283008080640579298400347562403177110342843573165370862328399181542130003469642436024645562291354319239992121768579300824951627676772213780052559499508327722779418707191002149963230664155312990958236143963723387629017909203803465629371532709172029136401317975990741517720396999570785142336335855365743832040313224360305942441225640570065940106790397730776602872310939936573187764524141555362854790176535183931126232004546673002253187406308083703570267905181823944521439154847764036606622219764329886793792564050347787498493984327943779447383131253495353665155524075221196749150858106404761083925229311395017388451480407080965367207732943843070354306673269784641721474512258386090377429870192462982292061384917900231982597615215777597787431600010816577042225350651311232884533402782503326580069578746679754211645696916705427148322666483877964203684220881514297048530609949593287471178934892354309871908690527133509178614874420504459583037258570248182594112666268387766316468128483283139419466334024549344343160175117047395837975780302729855943204465115994054694527404192556013437893229646725247553590556719783839043257895480939038176691196100660880390852143672801387596982686330701436931557029897718178165113529855030640068299618604807401823395805696033329572297587359932378545147712392168312621165089312645820492223959419852762444703282933558194453535737345008034069596696128426481544242016168532082234426655387790670255228796480562155485431327761741009369282505925350570708347475192222779792345954539139200181115464939222005626368110805336152747109351447925423759302812343833755829665432431117672177545872356346119804749058707681158606449788413706020955999786612484262288695385355771727497888164181907945023003529101997922741910077618152027137148460504032496135602928626005735443175460864811416077248343584186797064605186514865491163934760928571962164844243810820797804379278943478779203545646524230277657349266848537465139442304185759088807280179454226228492450472780423816602912594737949611057133517490879323371026655007502437526860372176291149502345756121546826866584615004699483561157305412343781322605346298497135796947723195392916371581921912939941730673779492262716740251744943187477855269147419981587461386178553724426848411696825140376034982085976826010853634698743300323262079050386711986539256403056462761241226505245510833233243530391910473730295530574740727974356638544529634236504484302381568751328516275781337817109614265853106744802310897144023487570669334422791018431126813193755142742249695376332321982317913155569250151770217495068251252039713409120943768726891542769654693462980430930051533425892860139719372011316432209619398181118854032844708441796303890863110764662391021876815376647710551869434407073535103928406500432015730743295730248815512679339333908570113633557278737203152440490399049732677849881582208226624517117035147616754418652472189022132870242334525316045614317004894959843612427839463728374010074701318147320174687907858092743470933649205215384070774916066085614943615425082688658249918667017664363354597836466672246857135411891767008842229247861626432965752948662551550292610567057607545435437195219129106000009469833896902250491257573349965732405423907838439726088488805713660948643581522868018115479732597055529921317638876933228043468783725527302542030028354826738440811484554995881940213317087875390444905260025536207052271376296933113084990854637024547923624574490470027684091094291270476352018568554534615033246990746631258538970204378647253949595695744633404950368601748969368258594469940738145119026116162765538341453081465888281453531147576902559113003236692141043235651400126281593424459071209152033886741670722535560621492934749180328102028618112143520172583950771911097851280282596095241212183856215481674425263249882305383988384975793923788360282902898086726680215406234611877755878550981221545975599435447561053685899457954784615283052080007128000796431589727353679714305928156440159330409123027995999217909039808548250503026336124664490175705588807552658385619366106602510202306493025192405979021162299072567872781480348254367885842469229169702936224025232090225701943784311911325490970383284307044722084375387470114442394915006167277896859623694520397743086607286475486995341072493715048665286616840879802923297729843043923873250948006272856394941942969323015313520731053835100021572020256196195507070550474769467752918386679319052635994473790928794385065207889378534948229878925130494378693684901473452513078961858093636224173876007544973662165472662323553938759437348785034085827275400161154664885208006802883146854992164192336079890866622221436322326760315096767924310900445458220890556005188767701647212665313968843803460848143759395687463751165782452561677596829006780023982213483489457784586424401547877296748212677417936277003142870453879600016460752546616676867658343497286838100909373449874584339216744777135108776256011399941932409287548928379790706325458099074210661061772082560797476559690871988555999664978205849293593760754930776288200258211040816163135827090087150277868351756214190427426063210537656255988284169992574973536461919065496434860326533315866665349575944104614426895523112261770500811128170428651490281041892027019981773273218278424415198266317962182743745625281519162456202978333116532872768317241443265323073566952350111077269662045594020320254431843670317835656781996723650022245916097348217256735801964845255572730597909068615744705820790667170659483065780101144368444867773578231576375815917342069518944654117411425733885374704743952332143209763650816013649571696680002284709349659854240611049259770627760683976493094525010549713061803761151771630536363983174386863457037377257068257876247544789685508951252951377339552270936452996913186739621976725227453470096218041845516547292525116907294239770826582961029940062424688429060843036524261824155404092166840849798423754427723760030417303874076843747068496116405027898892933230689499123657373618126844357457362912621169906663835627093357464535586339435910493480321621498098764437273193894658954028700181464044840889989003626114269540459619072927872005639735868490530188871321340658367804931442213521278108463942577056366359204890077592968352909080914560645568206095601455272788794611566408196872636114443559187236305094719407357478716249404530586587692599638264782911278712794025929002442971042952181105289086136581766141029601799340635396253492550976317783477731216722936185227187589939719558820923610246380373892025474987831729751383834716975755078912567317040199664832145122379840538317828926617423193904624605249886182739614268431729293030733173919572285325142979822998397996463937317882620612274829889737236335117369066167603231068741794273484109076391998499413006487528395555576546976969976027321772427160613255604292800769558718670712818993219311864807961489938445086759154989154336855859000124001057530351920743668506946420168462994448754787682541779375702231292941575656732051191589813757463517087961094502798950394467289915440977611281617281269109040922281317529413980823892545183187616169959186234380265286081095166811108726289433774655084994316533812398423286609194915809014702394164852636706878831426515914184266931217547173356321521954483727392203972924768589364159990092491539364321162610098198694092732689589307292415105282385494603706668576199542569917005785986138394436186022784271165629804539755497571430569391132839484552175509317158983263285369139224415749800188261977364244168432655181962054938302397742085871904695205745362678887104109430281256882203988778662568737867391956690808257761415570027267740210122885659836750013852049534056352462124377111114087051716650295849389309516911880292008232941514644868000019643718021859914784911826807294881532762876525837096118449140180870351316423414194698351945650982626874800644522610261864347548701937313028998407544545251701965900613763548300969030081199334695226526895255959465297226025966617543614677176649585979130646343377789567839029110354281053385005178527121713338039908507814660722098988276438007765726585314402435055807022811469972143669379927956265830285463954346484152644317342811413223775319836695860202381880919343593496051198848627810802782597073505290812470599605756100648664643650125717651582486614050536147283160252609012423690793577081973789792234917151988289319631617569700178692912570961742227802658006399670817213492059635512360589985437055327908348009436570372893433454567192857225803373042224158630269950187357762207722901564801984380352368609476502163127803524695053203765267998978000292044511947335602668129240756958937119540460451520064202431737439989221800670536358801409153181788914566617705369032672953971723762850939013087730689351223178030109454519852551729373902575303645439762049011755936859551137749005381390978924779789010656469550890033894781972129282775043737099798411801725505483614147267320596403820458470228943712776402194652465083036311311506835452907175992355631061008131972626754402565403524298909836110601844818965397244728017106313705986338612595294104265352595436098461801502714638940975335949763279535542398929118109206921691214613782452050340615728735947075397648141524587176676940599222221255608224596266150834904386946559476124949324896280311751771796436976329741999036959778145049719476304060347097853554120733280559533033167230844227752934101736261315995725827526887219151236401950724885984671584275944248025474434524271687785022094882660615419784883550620092822460370351361445888495017948052799898843279932780426475225878350501068589359058640235521679366657735235463671906795718753614282722490089810560065372920838204637455587512563146606626874459015482112932121290025805516713701568966467881115337480600753802782527349838180433102757995797425438594985376681735662991926013688351937968559031569914654739203513588493829505443219379126257468350045416912355586450242637817265336210101314815834024781582887793343385979911711482107506276559663770602572979482376962329500789936686995463326178932490278811295070272971032826868147663676664635909948600470909123986400802323368655808507214391300617150773369537329597041771090186606323166466989366880225304749695252562825859057746638543325508895377261946707691567832580401029222430784169370146469980112497238335450035054207287747400252372387615051244598885538090905559062129305785795932267152340973074078806274588584674310544677463132669496416867488130580414834597541877225063468531495907334939289621942832955103994383957740215681343337345502761381210274914332793951531660108113110989543936068756640761994262844741410329219995697808014603354878788658284458170715668466306197016991452594095410115032137818624270639144419140982948491720452165504385047428925052457673935754632254292047766553737885566533066577733867639761156987702619083963309020373559795873882499302785044309367708550698222300281862050990576156969942244259935728928098477084989324099584225671740691503263576593595855300409293669872552568561863309004942019084073567094008898105637749293062826418711497908814474489905551126059287753721686777160053355587321953231673866929628830475104342227829414982157149036523427492552569720077931566306499005226487766963970928473218542799455619256212412886483199063010356611171325073997524836113551002691416639574433362429248341679434907799521802146887643051579512407595562231236780130104028644597508579866263363631170828713697841138419650827299108231761055509805572897577371100034771722374236547149041489520565686762623149767074249824260496589021854928753846832302545711778118641441192739237519555840180380864585088324618927465268992999903581255814919224042378476207529282460965877565068919213965770947995003960669066380779791797824629766498957067097400557883654231610301201882433677031817037538854211273188192347225640071190368673316934727895977372230375959379932775087782960978638964474295039215839144426614016893846561598464137581529626471699123943309690128552465049394911350291242579722369930076746624613741014732351836563819175704278334784532637177643081006884264195983201216540258072532386185234132411276207582797749545324373915643480227911209526605545935781858888042073062213521448778595066446949853303126563758876870836948600591379448561299540073299169253226988672841225676036550802966336466857207553824441055427829404912862863138014273491753450313609702938700706240903777206002956399398737712136772077675764132730552460146438463673024532341271665768666569259840063159554098003886494035142697271684602023479879815190497289437446334258289807808728028487531996670596767966518807978177912452241260302900339165962990659125910111533845594140567525024313912063439383825304643902301470586943107122037798452739947948795886741033014630502234954216221129170456621784268563353904051229109263724132611658316945559168036179914095543496267551063800179022972959275033696988497777301093038410474900244026977912753488691066424162999447772897416963040205940141191968644959488788913353065683174500949928783326362055726013050226535624151314163675656949903333201394740941695444478839901252300862775010402003506725073993111122345013146637955635121038822063779493325724295298858790354604200458251869519960364628697183051631412301346126304548542149559326723134314203207554570843372822740616348522883433181553217331315169154340948207023906182745880152334623476832675683037347820191217792835352038301944632376173950849730337942386551777483417057526743327549113779515069451835054914250474919933036999610432751243100841628359842859323374797698038105436647328428211362607820311903046479058557990438501540983279021392420410602733546327356314611612353731777511475935206509637586280270914346450324989957758367481974434296142897413318187169960062095641894729926648152308265643552768029612362666495210525154658666425288227684561546263210589862745836986234161920289302007072022899018625948256856724272915825449254805513133261388587540043993867860298767706228261430371837013887608218575525971757472364604077874701182466174124553474445669426952825212360154623462552896904576451906412456167117113539225912486846650167707195623626386111916759254317020913990297089596554243490541460742691067298383420300535715839863930862986181682322545149053253485499910865261629531177465913884799055825579991274879601997317900160684722541911509373213754436851639296705168813805745333704076074859069818678299570116702290696639424815428854561426546381647001606300705873673117093416969374782994319461735757863284408417796326845476147050973447080520130975813488965301387694613714571344797056558469744787402012263288156998095227090620127493565498149609999654260023841805527697490461076667689100413202240280950692074672892243681184843153342998301048158264881988226461260918586633671146461704780116819240395673291512795853343459454299412853512430307725209839189778794431315013033562959806036844429769391326871539077728230635073291268043687061446590314296908629503438436829844208022869340757695553348154540729223365013187203365582120915543883629652732221396994695436953546805222856496781472756120396705112784559030473139432045311792688408400204250204209970848622713637416807900263339582162029061674177926796516673230563030127399866187877005360716408150020099551846848018210394821494032467523019634303764105817957773454672463139006295329382085889795415409018935124146099395195206333018018785109645050237702584833107125689094178221396028924723229966740077641889726979283084493094415987751705349840949392349183487134965056989109625599146342020469578810563608880306803333870290464734462245209768127639759783597162727570535835260006045826076648657355688472046975395589324921479558582949609840829782441938053770192686883042442743140897023909234936412754838971057904399041810493101037056975625176448015878717429074444040028394191717757506381496038405960638705470857176872476808031182165037451716187091725206648844889243844123397711474021023198180469418944025914785975026802623650659286039895858325726387917934460739816775348105737808804685711302574678188494046376014259138631527236050790355174470666013082926363721247324168587555290711825555161140968678193285552512313988003455249074964948339026565805875302810058843278981923143818369462008588993071728600676867577467734809468612787713099585767952329038577695682607149620318707554140903693655582771108848815844837741248948478719814232297784367280796908754096553268148259171451849073128695999174673950597378263065542551325073523478875906843857508796238638280199645276034307142959221811876173274233463565935729943533533847215347501042200669682767445413643985553250597848756069803356849506150851209643855530699567951897918003175513145483730184325647015661308785672805816773768496321318565949242275037337336561702554510498535144822791752149267969320801598692495191949139296938091031800410094220705499694153052148884266997681734550797122980915827102264894561286920858262779343493296774141824479180070900235012640207832904101133357971494597392224609458294688189596358234309803133506103105420138300058941764969826684441879194686178708903403860692543655443622245636573880411484398390055499714597740595815683122239204461732511067716638729734051755234268867336316912244662971379796530878817345832707988521933930197420611811484352117938892801939871065324216135250278233911135272318775445493318282916186424347069530305409077506579560444789041761137475062301236370839517132162620501509289998059336032783933939545645605018239677065165025030604231559344193191358490834045437722567876725737830367428294229356996901631640253242231499007997409523570175410693912643597841272153054013667165917126444451688981950657935230570679367616178293605984691460039045089889526291598479169786810801321661616275682735436592175809262437816544290789714416704922733223910220360031498597726096066748584122934348201830486080181873289871866733306205564320227855000015095425108110091570230794724429556497116982171090329370093962005323093261869371693160437377196663831977139517278493742649257355177275260357923680577575091463080837655702481218509785438054906553324082939545048920366479388961897449123643520329834244022797084660268312016252876394626425849398734940930920159334151078005716122003648102529022326210469028314643402788302547590570481253029238054408579876490781007025604676536418267604398167086733153988474422318058209010797849985990020818055919193699261078418847712544154917263877714947563915011427381796340232609858389143374375511874507478669619029199305678495975012104737123846524435083023782606649328674578787202438396869163853453011164491703787608716568495314227127110650835593657340157018620464377274362428067797510688667562503746574243349493843948077682642340137221734174148508898569352674759913455177992757479065096126807826848386260473889608387543599612534043524987846070396643543081090131866218674720028423122774420204658379735745097247501475398714327688841496605000028985581836892875354660372923202121843593131131024695071335263585614076320206471365125944640082325576126733864974279586953286720703764350499424547620673893361594031916175492583341973227259163813841364648058458055524940969991041433036270105960388676183957430454999798880225119583477518377515753734507215290409570739240666892613330474964221309693039483387196927978920793571930200610399764675725417972988493257771645147576425475563506188858521170533693414069315008656259205551558809938441517212058059980341206879213216652994514990471110880125434880890049977230329619548533345676508572142050998812573915906510283858523629168910303890298416726698756078274855765323799296758315879543450033176124087183402040220716347169122934045030651670042630760934874924931743487849821303270339805353045674053004077045235878864722204572793767621707818924177544476113590037042691941001080168894217994028298774413145888217042926220511168973860823920029078991517835631498607970449845947514896731300605550041325378198815462127551003880634869108102406459609494303381468641433992514349874436318909339008863072626322275166485570843646231781783340063806971824580354779724539666944414130552165057698506537107025589007125820474137202500269881340536835636297907676664997650923929035069989083260014047681724287650749201614780059552129778665404986053916676688683012798536646979366610334538608439446904720241878156189990230398810118366550658098179100032725273526440374292670913776883132979341363412348965380548360854412200666613750735137866339000619253382196220100912321872405794239646432305483193593442199573653679396183471252526861460410598315303073043172714587032623236011301900553712320238594777688540421212629999366477008615974415999061164341051251787848589078636590344479600399152553818402061474935284245731990848767073942158093018817251183785675589271502135724080877206920022547061506504791759992737659296766645947326589121304460699852034908579318375760158068246570757492358758794067668075182254445785411423910173728811121077187296130803093232584936074303972452014890978330621359216580994971386460503329039782064960363240755903792378422527862357734187792728300845429244969434343786345991528605692724206208909169411973019756304545139992090268850522969836332160499436899418874441963538952887980536082677205584134436568233239860797575438749947000033800409201967775673709167615056225221879174425604029853440752499375855010249056932293812360247804227275548596999106746791559600797621085243680482696996824250258067788048556608062223367157054262126808228094443272806735048793563433929443926859546084107529810010623760931039333103612810925642913674504927073145093546773269301097090920541903903261858280942146182219793317599626504546727979903916021512537781273842589710911008292190533235299070928534347508061762784297731314340900443142965125984088245811161270149175783959604271118407668438875489042976380571633765268882559506397413806403747266037062287554258085982073916272030503216776914395723605552628441860079616359185299262826098795506348705149494273411868406789338418445496411554712377706012269474416303597863336537555473553793027741046138847934918641915629865166968457803924349499328868061046208747381727742357468133816115109304729584904715532844153010096978724680779184346341306864382058005364021690630572842047348403405101907415200780457015995979621645461034188615439473204029419650813154904881702974009765852070083060888674709181605169165330072378476924483873890657225848271243058235560788999792890632447197347219860590076694993080739110904456563096581999142762006166322786546700943075795323446151562978532715639136478722393347302272359814949889658369661360518712031414352372443746886956872863182751771030148099122736613871320324890376234221735029467595079705153517647028349572084192420201105444727905581370409249609215486280832013676870097610999103326654429242302030306739423679601626987136463183853007171809832889084310987513847196834055697793109963807567414023876651397016118039841747410986294540879090376586176675081097993931124614819204753162537817259468656811713574928225477599277785532366879913244838529047206477395409695518768482008655513876520299183499304923315930665848728862659856717351364125940101820161720468219673640179078273351405092016082290321738793997984670498250281451872030568006926203731324333991139686372839221184214606446648000722497174390675405111947795516344011595195280250627966749445371609029466013994230341812614335855117146121617462384003362415834017310425460326498016039159926930939610302653982841392846451003106994704429063183827107481623071356446313049121669391067577875823678088092037186517382656178175102286181697086790731695052098739289161063680316493696568735019674151800826360665005363137805319752702421675125232767434978206734207201463962163022026514146612538694234050938915902358118070370896965078376050780883563103639598002252295065861783523983359998841865564628975781573213202873522891086880684293956862618113631203553423381579405239808532065361777094625090227047623430203969564670994558681493135518806643619012200188467552223749274972550968287826960496561151977322652143057145692282771563239421944494848354491209152283593883916964122712960040063938894751975747168371233295531579600273065433046976232012116171637367872856271936535192867371023300781768420264009758371630969988433375732228039160960828396498919451738522163890446884083746245925588600261069592547484931257013012601279661487069991530231838931520743260296991502088228439476576111324564765922898927643933789267937729973141119025652114548493592527995698017589658268327639084249732457672792950965565509719147275699969800391906451051588020788275234056301633168826245964127749085415276219995062530433264269893318304600156679486919857630676663205822093419018385903988879989591399473931723397701277166876669613977839313195199476333150543920307064784013112332060926520517583184244261754545826494689720544767084922892145070697925607906829434330170429833285632307960616811279465690729661588081674897238034003918768595634443730618520163902769448836654270197467921075096158256982033674530655878917746500405120025850969527351914170033464430502821827709497133741979157270557463622122028687107160971547112185367604014258353814628500012239662742096450109528014056060825311822898642292457489067549090744551226126255002128485660315473340110287636230528762009610215569246140174033849149895864882818494364042532618918401415766493129237599797552803824964572172077407182841277751606523560997039379465883938126723296192849005822524312552765501277635466231892661431837949393647986100118561726257152133506643896096032415814411298093277030833574414842920155827844617560024416490080170310372818165063322468240295451138246036254413969877315291271101009680552853607058625428541890325209404146471919520602974548098729722787196284008854011753918932527578613412221250565625587550933199927739313918422504782019049659612172963259460837096474768595945239927372644968453134201118951305130586903454956397467351589967765961762671035003901252587101255132456705491507228455084656380687636381051435903261367565118665108253903331080989619383621749606291181044178745160440961401844218489051484036782419271227522014748577292070735072487179635246101969102099131832434965451327629695497985536949543673015146966814370177357836842011287022540230076392481893516245188899261667553695711847341495403094657883482761097530849565052771942850282965400013274493215677446020176441217217078505387994598169071631093582338905934232913927743828386561086198967158789732870018802177524291249175279336106672674690369027884043437013334928764688293069894448364454466923292683216611388191786362711657817033094019576715959108115508091789586643799473412262370900599364130875927686302883239553861911389746811597471227797448627398200756539236816206438955094741414074270576095841778122470979270408340727928661601031947738016690039615186650769944442266416921004980965596076249135678856765893685180001086079469925481926536612171560787180030234026239151984308034741433429078827463229017886010672730435274973513724298806549533875345566502025963828342886507274530771193361690993034573859921377744352731224152790450297029792222276805301562514398215426624439844422969896986774322511353103490416312640169405235162914364227003875378288753112077233883187825624337262093752681706430579761540466595561905699068443042307611906073477334491686107692461098645845149968519423849268825795540814600202402124600177861114350013682406667688148371328554816156994240402319736834009413548483708380398693240030516597750543261741455891397790396386448197944970065870741480168386755998666795625654108995128033596966610671637517912016309783474186134261337522254211578382273036070006672188971238019276946141048712738783132681150916209025720682657847136269290700160010702555970197866550793923076030295893930888246513516148650353933047212266711779515449337261124641071889245141832309351008989412829023485540213491461272386851434963854442537575664847485516460284451753550406819538342127512324297077535724369222361422253087199573701204571920957723463427795726388411099492036413173229294672087308412757994778357106063096950484745779833919868677628058162757572686244636304737828507075557691831673967607851762718480260461410618059465477855131528875770906526506431823180154944701372707385195431233358671325410052239536855831519809506962406684969652847849508322509272034162301602360329643694360783803209193372137801161320712827645029918467161227868990353794579133340852858497392966116614278058613428685302184325309437570384372845238191721336423851301529227102237959382026954659186389034978800689025335736657846042130668129625403050743272372349065630350681266376656714711670137093818299316357464475941400518729529057347684300572998577997846514051661057426584651615818757604498651458141887152673599378397194377442091026216923877600576632670300590365963726167960890389052086764485865841354182940413004914101307931970397260215417831196018479438662922192612924712798588795323416490769813803936696751536170456479670328186386546836693156583195392673140702322206238059459656478760693458049491869842165128936126098012195696447251337988664091037674308600390600925039784386678265687850295647874822297624423661383320246825622849541847713476566759512510193760520650732278361922695043807446690420442425486146519038603297278302348307416713045532607337764072221950241934045303683262146875270883096594268951669015102889543916204497648593402758044090056114217507716104292742277044843320578966457967835775683882804990998404182283911014173442237007552637515913502779736963163380327351469573782089677752707940106304807031834931654367213190028222897372956882767736698249815709011359192147589521235090849915307960953590347009285522524105985845272707774813578500364065252869272592265609758681755475016243212961075443147468871133161412567281787758009869906100923532222873859441483877423779507681316649342042454179818016799008879273468564361171102553939072148631722263535976096708216677296167290323693188918851032781109516094895610621347658708257573338890035300545479001431927894000407916009631259560562660054779654857202987581414165190925277902026976496803976085526203263310691038663053392152862284966542181773381788383131922958818176984830710107614865695644630518864866170251747250052659256019898365742085061013044628683678551664825755113471170269871194284798984138054657828979174527795932980803087761263178284822666027798833220589730262847759422236720900210136996753730256132581190940896392251144809039604701427292039965803513620543396284913774033795397913804145357858171233561766622125316579692052717242031043316482219571754754457673591931296167110512724829540054793700060414009452377494703837709911798661599046286697925864236810451161792337484499824174724936511116507779809908419083338087475758990504654897215185991354826046660644890309703518744365216473242342906065964405036892689564426066947982541017154971099388340545598929008025218273027603881134715081232147832057036098655103082038019689336583993901728725978137997744017207372692705013986339403723870846805036790828362793351764167844778839897710276333537674620711102113935428348367046489358674486685760231868198822619391596227406949951767090177454160502828937295520913905980142347607051328687160083841661275573645049636742912382032876400576325795585153213077438012049589207798687473187995605171399348305894128194103727747692701306014671680738529644099056911877995842993134897259584511600122275424559755407771879106657528703340821386837059017412126769171452732370330216623594087436750332043594106955246648392325253597278241995761547787635459684288617064353062317907581809104635336655079724496958624620878077789829394264086664248732590721033065941088410086742395800004681305722857631224120886355565006818788213657637098689190522422913454830286894906840419413214503098817125808020454391030036844799305587608948104651183773452582517595305955288996521589099429404149506730039620886045584323470837535466547708760864271171453445676898441125194198894279802124598616108636070804394638256565792189468425478920947872067723400802206856035893153353946909846461578342998226797111761505524970764274544126039913838747248813109729011659326461670326723770946566962937947280282046179150061228840452053725184721309976620564472713147113126324525666069039259644290360565714705184993460380629138077780245538940752066054232474258369612105689413392342171310944894850256964818058769224561581779042637640387813510522458088416594052983402154375774204392144318074051376850800773884861228447201962568457869929076070096009455665358803549600232475941350699063116525096833245618984173832261591476093798773453505045125535086613484859200300072554708648243808223909865431868283411746801673607284353240239958767526782414855635875169535285371322300475232692348181466412904045936559021338487450752522561720239160242784514607765097133323504553372501146316932076695160454706054524792623130268552518715255055870110934370113907361305268246905262863699375677834748179348327628834557324624121021662533207468144831026153607434853199455474779598429151074947751254572017444147949953916190244339576414428268106412756538838601384357724924634492294646009889696003102193380346152619932050169932523352897078230026444637090785555210862647616326560512214855868880641258573001928647643033408787819249664697790735724508214176672883649650385919623070820371746050162309675539890130155846304695244090147105855319688272967735364786302770336969007033916236757728736453096336534224274094981467385108119585342610054609361140086097025300455378705737105402816688606287489859069007483073300636388333707936730221718830946301455517592138262819631553609008054003748459116663378568047044096911410597902834751644201760000658500142986441508766960815283540428928028397179346309064128219698198270395336885258203696607137394685380491372053665309986371399543267785817171263110355765286555829131543095505201718184472474823238579303666540235240328795759261984576360097520559221592510952958017265895328205651520511250933858464145988861520778221321023845919521298680317993369424273643896289660170185279416846330339253601681112075160659904943616082277682791340238781149679012528216608631370350865460419204040484920932984636032029440895106040108312746467175858695453699668530258514081422281492910684608149977736577014587159919939979054939949561268130311729946927908364336762255822784945131260598847720843664210196050801521819818621158471746036783214673455563133705369108126224982923910358404213077204763495492012915002626192938179258903529294631148098421810487711588603025681775635015345046525674601694818898479068691445799748182279681338914412335663939518337700656561174862302506226178525640355468768476515023764367250902697793550734018187450529449423225788503786698052196553356899493026608681179787505674886514121478377363175800864677818491393400802516543099974172115718657266595441788895826317338255711884835113543196777968058368063239849642459374562765419590295050238021408899899574374101468540303005537114254337433181323149407920407035374778738880849275031378245818303961475672803479072889810372710798637841004431814142076830438815574828635091527646521403416119575778631864604655420875357486116524159382910189377112082255289912457855132271456708909984608202553192583302072051702463389542756781292148861270562107306643147369993224407167090836061399070644404650197375203732237540824542004268747382655197490477822721951832179625376286724229395087070710584583817483155829082995502297629848816608951399735430226510920108673783187005535992734818015367667317252467380938185611395247216047880719212236083099497849588889083874350753678697976524342847245620889131471776221523476755848939318423688570385426385769597871529169068107987475376221634693241507767961771925583182049981989113486210004393075067286833796431059352544225440177199465926212816391753345717908777016330228844403034453887834306186010061468706010005225375316581485217841030714869532271927257588324486482392011555040041988427088932693721520379907241725034936090049802088176072153398213994803859392560693814664772628039314674317372400813837650735357270809514063152459685425340749458115480114525900047074289254398253768884320901054219320850939076045779049546070005841444223189797339492112817143212004477688320200594277643664026344990353777422072639546892605270965481396664095559405335894029793634252873263460503828160371804077562677319071613459250295883241338384593793817505670873260260303426119038609776511552207349613261264811921126994111019297822535992936021064646938480244870575052385368920992494079988694735725317762882186417132804845370350635417451742197455514141413038000543100265932648422492288695769003729766676252561393463125604138671979969598593597997126706067971571262813556937066842339966828130349633135529017058478897205836074854182419777989078644320416636795195196769421590222216982879295656262361071546976450849632230688558430080446163567842392547586017664132264444956400944616905473984979441113762605412848832139534880346438931912710431278591186875878001807558630091674686150160414359953277064543780115998010675420232520820657951676214171301792162716918838946439883262079828386434688243084111402944053184965456784672548879176472276450600219366739548171333019766219781032606957075989942196814207283240630841946494324821062271944548810104498125443855369447964626213023170913708430591867741246824907348343944134309399932539389489810398690608584672908532070683618752871876504921441489651396622154679527610955281812448968181108935139411647427760331380272389927418633174033809950488596795478697690433214820968653650657072686871536515480499482613049009746001653372836232974783532427330678118781451321102695223426560687762390461783368724049216090371539298080907598565188116270092470020147897730176267547964892100066653484531899450908754063582298809502424745014736009858312758974098216237070605877988229291806940636794948298924139512692703842592994250551973271676394511828001895008252476917802923621508306436611548601157331755915674694302367433191915027252932801725728774261853693171684948369516051772810795678457503124852743457676127822029481695521390317070271471663083678681244043932350035692418132997773831791625580964138579295854442746426063338658496409679318381234366764125954294570247596632608247442304674891704876398021204531547828908809716448380339727124175791580953897836521158099694101061694991711143285755168705373371407517869136086621873845208458298001144824914668482038098745394811677770535083889742047690845960647871928334164444002398867384805787411187920737280392566349859430778620731578130751210198707789106239175124450412358394844941455391900619267751107497871824270931615567866608525270331047651440083583625354107625642968796540641615741734924429231928149846712201766535871299318976701577889029946300488419575624252926705486541400504100185508492500984070705709178289574406362126309296701521499279025457920156781709136093707215540362138295465504696579464110437167189912942318855548877247140346000034826129224028098997241042583881477744745268909575655959284496745926482981334080298732709576618200114631032218273723953735115079958139513360792724655213302509453854198552605054982157574104157144311696048366261319926026644137212260142239967474392539567724534950108986770701201146731759171417465470722735185992679441889153158753686324721844607309875062747963549637258720315282472496830849562870915248343083765226104990610208860185320360961094421557008630023709119178705216535746064897362308604679341182806278350078689572260990215827864459653243279475638101541834986687167818776631265264797911123899007635484798224491320934858175847230151337232139986786690801403771445795519853939306531543429650903151522279120054194688695199506346219708256406394786990647909355963118584528051269151356546955001795748760317453788400615721044293018708965234144830784845487881577252557912631821072289942295990623962709729700384761895799486186840055179503828453767705886347180223318032862664750823786343240589857057125297705311460524663998158049684847219256093600252345129299855924170600863735276310436903278685672300826211552091930763522635863799921028671887021704008604532182963915133602413676624159031693216417334075008410417433806047551296287019148286779890754542247678743740284169119342020131022290522089376421250035976138679172869259636562339036702704345155028303856183032375467735377656433976242373151021658329482890166244312486701839098272990522183062375949103966038814093855929886550677535315745005858300614537959465548125538073412897619688016665965633131955997857337971603465872125581350329065152451183774854999661539122670681282419015175712519865501437797034188567091338132402185332738848716294482325442664391779813893003534836332571352227374693336687988019600446375613931609133593668736023448906836032595400249561473439406944066678484496543014041964848639536315402382016098869029868094641338000777292971009571877124916678901767018201715520888286297473621637972518413115620802587728201579675444476299836002003907607483160035078331543118569138112924576201538064087740245770774540081549551837352979095598267052711262629164114695233759647930017590672658224290051544377313194030441831468371609229484567591061851885388366046402865531311374426598843441651272335086839933303350950762737139574604989498634209593347478843797018825201154580173401790294799731070680358734768832523689739419207652663610101083665629532566001645576886356858712499311345733785931936777782699474568072168572620318356932813671197439478226744690498076998807977008236471612276579004688451303659544235796424280480549257102696697177143000262179642235427022035130170813961951776074971001015036532616036440830210101662334967801088553038027935046248542028713214186651790795143764771063839370471222457699402640474739780418199477696856301652194048815915906755622785346030900710430922779427678904200660341329620176406839971131051837368541236851760595134024302639130596264219972005390189507595479664032120606558636264406274296932619909766015545959393241959574533243957903391693499691368256121896196634347908642710012352132162152924096086262719943646884838867152761672678523572573929434697551542459922444444956388745965443598154694952102024638271135913116708592312273197714394088958507063702789802527343597271214242716280962267224310758117028665942403707621186434003020601159392691024674114050373064258549500441759305299864596858865432074235946003083543110040371503926514739590502743248031781456798036343411160533214455339975522137936412839618519712276099627010105449336544087371171427234900842923234293582349500443376293909279566295604434088641870697953342824890669937592291388375523992797579897377573146602874099822701316523249084758792395632912770579026450881522983484279075533702308415528710679832077290027382840124132890763542457349119908564613640187722877443230833718200939442225785483306065397407776956725604671189708528550600234887183760554345041512512761054130100280840987952635827589591611332769771229276029413802726043733149048492486556271119227504995707620257340621496177121958645791371702951314158752115371164999186889887346295190417522671052730391335168277801580661907791804925659906012871095907883231883033814999460784953148353917700956854823343048175357059376026064271258832504396025874769605331180645819985672145286807684841717600653729139959573364686748969752716122559180891991422088587365104342894530723962606473620629069638649080011197051311561153944243174120381919286941127072143838502941140396658826187523153707327396083521057886214389095018451557407472799777225040277647876346174757823462163750602250914814297190942249817511811835371856499196134272536357206255243626409434069621997709593421008359511622513591470250178302990828405753296411232283079381382622936577951458538352560019129597907659362112866127587911392309090896240701578746301342781228348763771958807843652659373554102342614202395182239908839867012826722814041174793988398766190325855701719960402863480073803619281451933087487123804463028019467683619848527864786474779838608990585524200748179117670461751752083847687283398291317928568544992739581092162333960066954111223488578874831387819418248083062104849010451011517719121150263424166863870014383167285373520872783654520995182360529870384421812018945652846518432050046800503312956037818130295608129568146873805582137689635916595732426002052573351615544775914314093594434065336933910430350812954912144420486294463518010999839040914602010398019124209999185439664159203068977756932984503342633289016641815333009379351950970127267628699070940352041919677660246326235996522311078644662167950520392605432121798448508246533463486495768208454062282152532716410199721993317727535053011881291152268352329675289974716083381316954740064936808285099214396437243825396200704043341453230786608973721023906854214936512618733153401928269227966400619289465375300669407734773543719846903544833122250539785691998897359692739514477709459091691800238098842509784506323000069005079430915120044509198723527736715102348584720643263955808943357144043294406220305909097865130957989929352816398717807869556642232853280426676005910249216642129173813517806066846595150017123667695521991914628842181503826163620456824092167584401388488344063820475682358932834831917379853915956043238716722387585701708193459275590783912816258701010864245887375259969349129646461279577180569084007260353397375553135665576974227506198854387873170881769140731064505543343436977862799951269271161727349183497209870874045336518519282102091008423216139302127653837776735454215488562075556829801791585449802947867855615604149766519333106328075532163520942650819223709629804860469330789720767094385248021917022581503347820965148311338539878589769642323900345570023316998921293844553799888159196353789966689822055171522947162346195719935930490548284251164754491964027480759377870269937452020681456776618822625994717851417119526723621786146570352096184763373403157406452167978000455303099609208278380017261501583067673597148782288322706073384369099772219345314625495574516003697531015936279270117695399397090343577631816046488420616030217453998975461279249461917570842015437154997574694854467243822497263798207846273799675122463782212260336531444262996825160048831494972630018496510966717303993077451899466978648656615527918107265204861064857486036506599546272155573808455196394593420102246920409696557551401780440172444244160555009683744288056160648742054086360448425483032395308836189012582672797787087346247823310883438480129680949922351687206595317516242959911329843610235068238424981387444432375926716111209989341102398271198740815735018489343070737625399319629624406611316905010660344237661900160461494245179977650858498995063349301529268251443482077850109700605753513758303141523563761462387770357663178958588961568030678995524951582991088248829753736507331340989157542826282031441536444098784592395806103335148777985656504152152387755637850378661518836763852467063406709192169370573857572610946254643185981371281242146154153482285353109607797648944297661668154927111298621019331077911630680825897933852529321418944151634239823277009444301764269613889823717165120197834423601986052522934009131859952598551533079232646264405283937951856191843219282920194322033974590820309307561524992760246061635494547300812644010466237733125959625051051582504655248661246169613366778167356004193004663998459159267307366044817687873911634719643948701078143621350571370241803464327148888047202093950265670612080025770197231092374957819089590741627852413991544889316656430843219822668845462349817023653457828718328937496053375554864741896056818926051235621512538445581157008599978869191587927350543026515711705453507091187262146483942884972643456071077760468344941825623111698836873065199739858893780039534682226538026062632218239078600768270663502884333253779301216802248527100160867027625648557802769056027782039643484307708082665955842533817411733968304424967418751896623135640888601778980666809751360991750855686586354439983921741867268975811521642504596049331842901523308023276554517576315133823244055721726523147763682528375230997572265982462321716965663382740730131641957922769715807694662146696564626523907275238775656531211376878405584048817934792072366949454656724979207074441591180486627149606070759133684157093445975897363703876339661527317305974729252806789245777827412027872779476121976210358913499575045458740417186691022009774367234313320038977223116489849059402815593164216577012601786949024144871625498881127519365887442407693860107903083103488129380684483950235750344766649460016000377668589281634135802293726474468061795769705861312161070697936594174725961703037187337844901014160742997867886654687159061561496569865774427284873526904583389825044415078111527008795098299202702613722121064049236462427886154610721837069558985467797696567601735755070599191865894490138260090586585532130953570738438461441223587587286128121226892719045955728966823037106837917119238321541653175199120837798778646461902612559350002019832767448126090224913430196034548251553540174364820807408320642605722090059116009339207434055064261921301270781616265043478474656945552329505105034030274592573919843419305717772734256284081061770368263663640881269100413782087303604174945914634832962462535713631569572342146829032558004945353715306822860146197237798861338003188750100071835465857938474862865417696951692673137106461328179743061395504045641311478320554594485631085937012269940107188063880675450679442316002050246730766117505524219964214184964771944501955464718444863930549401825028816068737366574173735494359371078777151341206577259828267953985243866709107449667526811951750140592727629239810009266992564879255769146868462970163380943857739048936164975066792981767063069169711974945896171616872287908254362045267782969373742814403166841918073812272973798017010070842078946638520407587564120231569238389859752031971207327167063015933142945061798338278030173204176372266728743225755468832982216435199397348557718524774032269660873272622650235875992136354978078285828935939911720894313566911577802820390265287184369997619562748319752727459960144659207438540955582061190832278098972017989345862462646530913910021351042111054872142472951518421466812792438223938667466866699924030231885856842436025778699547304067288483283893611873630963365402336691621189954994670230096399522251997422801901862591709185976041915427158871038987497709564651467026206366663414571991473047475800900077343578201230648745710158745092799167794135371609918964503914824508126935769009963685337746411364724631680530508995130389831920348996908123929440436996108741874852351025794484325252526633892144390015688748555815551027690272280821459814141201538328052069484895394936491018725161219864290999030613672633631329561308132834223626312859411683578917036210289512581454328914165705558395020080857247300359655154862654175546573989955084186968802516711705555651507472859671405321671471983327182943643910018769470193258507723142198160516103843176971325890569489665048464505652799581040915315507233780950495648833455281147656067108611472172202705874097427749105001027017049323321539306579249680180548052412335993701480637627731173582310691004439729867127103163500707727788125555786750586494027272384521986169107349913692476983256849314390653702394318602470298840822882884511618515078368609268248474121925527637255335875404054287727774124954502896466004897884501105723257209797542624269111461723932338899340737832959861111846601259696389399367387196314158950863262782302651841936064258670437382698022526518607838602869103207921371108120190417026708288974741030104719481079993796747413301927788822118220226394140133921398184553120340628347108843392419134416526366260197801106917271847115492207988967071603014841236907882196786333975356912209247545908155534449532776862953626142638641936428065761955912947059858123911185362621408932488269406740787882528921206731410676645351400810251070567820301124132847390238521610856127171009639149696010610299823538133908360789028185474081601441871526223067975168586033619633525883670660531403942750162256454871556418663365026700688255753916841344108501677983865609157182825956499396852079890556011790739396951490374298898174896808999149434295993597745605295102406297836589908668970127218034008011967953777061113695176087592720488437923481506665815288707004369162508164994505550583125249599315410305636620348359916113081215633749917206544759764853231771298316512797635068426481744697303675326891245823253797616059255031033220887406732679013006437530972519868370375541713257890836956016490345465165654201686878632707998731686236707438161762874586179835332162870429185541266746559838705155181515174311836746679334156682962707590051343707829717545451374695792102773260312162480438795550470133081872028055491994488400322467380989867274685448580294803507975076326130037637699621015288931662527151142731509064452321312278547125460242448610484570267287411604322970539692211235023912482010699928316395394834355808098505651930989798775898509099549595389285503082261814447548141284262919157525201217481344746309225993131562768469820107117082307199634349622376733726589243500173682487725412745717263634316205008620583868038041035255092124404024222505255167049518385223416117682452999640268266740111645831491212479551836489984304677444183223110294470594473129701021680940983974728061837528754434346670598295688862863133743496236996653550803377961446376057280943789797937904712467215157560492844663664396894405906231705848366428317029212707212251679555701964127975787699584272753467580530361893801520484843730678622171431206212399864113140264211814554549354499604446490358861641314898260912591505219826476421441519510342646859738348975774169053502362278859508627999760246786066795950559547506696780899239967311678201668597673300752698168327442282049317572114121397781667429056089637983354048255778247996871645737587304675452465918498043596736420475429358215044543838705764521472182085845417360893177763835247076410475235333865842226067270782298730300384134605127501925525479395542664369619767175231632047817797461585095938040258499172469894012983085386266757087893701711214985003879003128365885344977696994174014410464768369350654275337143079322373294927453501037255251336276063120308747510478726132706756066025745744872622403767315290969834856398839528156791229568304512450883743017074487656119762666775698439210316814789536840031202164772546283270131797071244466272552010138896335018649354224102898285310879696796630760367491814258056969579417736594285429941418564990269218403022703290421335146981682856147457299219587013169106124758391260479055286223125859422142760850763262360033580001586959689357377456577157868076195441227436666342309389295368151842615281907726780667165775870746155725689166060017734071719309263214335957472188816027842351171121782345952690702270874142016093889111973663639354234536755453373084978803266322712224570933612099351230192397979718677671176810501604217772869301737234844178048972698330309251618299119000838551420540477980141970985502150914478952400490989639116931789965224309343624003838491919549173209918023092996673933826003258280863138981031947889129098624051584981069414598114926962610723983562847174828156587300655722237034234580791986972555040829478198738098364287954712602808905985046137819079436264298879830901330683570180150326393642254967017252490796436515512336483562779153067621602526206680069356284841962669370528590756497247408230212911469842633745434683783227420339798514435523696625296460968013704403738185585444506822058164908729379875886385776836929616281311347571961551121295146896028438780771207233342792523074470882383440584900537909761531824643403207019330009668676804452241292488045729137978623654707448254771924537074026002924197087065573420938069703031390100025100901734063790898928207300662452796227229036559136100528702770567967143317843657484308312733008998251976349573892185188989352554639091063774950394655829077882286388793572059525771352409362879265936123437720449919506703185765589932032844710397953537739794101167973206854839362717977675037094285234582263551448943038903332701159750414987329311287879454283864056266951326201944426147983494972654343049398058819360010896848308781502972511238285091795203632203221823848554820083678191996779937558962633242355064244233752414373297421766358429613338081735397199068570483068507147166488301529675961080991648050238753071679135760394589883887262756094854312205900791287593832213185098995546438826626963519860085632963565391749250483554507222506636736074590955908674320635222077412562425527802739363863779752635033240141804146835998668601755172630468648624341117900874174146428110766597796752201123718731356860761623852159109402504778793275520223709651554030351197250040020138849539638618330766526327603459456195702567109210129508907559917032774518775955065910347154772765843206429471589691609172484953714892995194628797007023920817051933635291475622126480044018300243439085850612750224184547290385283533241335618016811709189346836984720445982264792140057429232747198481357422859282659745784435473632805536967456292670365826107375570755969425905691516568495875442355359082136045529609973294560950879034697033100712360581270450081634363153550199662695183068354818838687345162522224033452758510247770912473049662197835273936871737543379721870091005655406804874493930365359434434393020550009337792165751959244962705923466156702143283663576716465931570527747211084727509483263220743808307822239368597477176632337629965843520763174501561617190060457884935883214007989216229994596276395488320379453502783757563238369681837741729340289759984177840024771404159942787439313632839917620781725894712111638216410783289169226840758137369556485607327801201363874551901537864984020182937153631544428078688697182408521767327432666297279450965653694528470514604894350194888127897599640195171768242664063328662165497931907622562550121970746532797144417827111076526587993150697422431938218131758111296012959757930181915068346420649038308800367383551488242122135294983428556216020952058153542896505110186478292346831904885521931231975758384182635519998182068686772216005156872246211804421415314348146475125632987335922661695740740917173214710338520906015059320657828948305110657405657697673372822086115310449901056503018021651695560895871763272359372732408831594572280111632712469781012435632842426222403455394409721123951556771731027727059629806352579327417418688967507472256846057210404815242059172773931997339141743600932845157001524393403718994569063108816682989316169636260501637394605033798092706147958090380815445678169642182321853493966550268329801135664066814750308087925698567789976332748896121245239623208991273920164260807074471385723255848023672318916627033159011042952233713365873812876224452407348270598157155769170196784652562942721806826101311988685707611056578775407927482117831562566836104086223731154233716006668612150374930327067666772001614843998788477880178443740641808824224050133433320219836894577168717403803524129477395417972957184918962078120867602980072119759597891299187590395854656567243448214907309805847099283690454543568495541754043212560205727288627954892182690706746555828218903101472677911796966306747269444616020681363969625325905701182531269006343184538922381970562900926308632823932403870035208210109262395709112883106058623276545572202912939144677013336709998174919793763140813773368241849938555406659552307296789069618247785735549942227749717599459436150393602694890995437243704388895456516318571190778612031033866704690500605448115816376280433160601166956771158443134338890283514277290110623092448249625593520332158485551936271191107714046617547711972640351090123916633057446409934235669317339217954745665957653117898321276643070096399547014148622930468609363175940588817286679585133639261337113117549600052290379516806731922839825296544330367504229007083865105403410021625231833480655578046900705664944901076071754953002955736945472146610390997138829690296523286016819308392142505301450350246497893476884132962216657043013789741506783711706100671353295034618209505779152608954227930190648310057801991353271178432929685127655732307244282659485411357992909458640018221692318687147029110585615215340263931733082766294098456241697488316327423739335475716344376269005099881993699130829231650087621089488993253800930326522055308364011017187947391466492824445608843468917280200143642593334301795449174034248842086572024691813939219178268074168440977300723830310407652598882088267931940225306336558927450412398007912725094239295633505154610324023162556924208036961209057509903662541968907731444715732773379411533972478298110292622726056182225693502121829500182457448370844013477389692297868143594459261229482069232732672624633013528182365233470984437273890982921669761537579317462544196840194196844882096238633948381456022834622605962477540555293276548592836013228596484238969231927852687711257594744362786651603810046401706863796306303390300762573152995956056142304856455605017884874722924028613456669291731474662202956461116457187144294766890425635220795787480188026769983744368171755262664120773064016603885398010227087794916109690785856884636879536311914994894931692763460670600136825628547649749624718602566219050038291591323077322165925345456561458413098854362045210385824116305005459290302261532999377879243049841783721475847356921304440297976457604735919434239695630034940949081278387223563695468812241022035732179025120850948420809544275359236373270689576498579772968933233981536083730153105212682410938481798975134781914810937896260423006957214534922947892765421362342494609240267648803280321548679446377982565383680745015365794257418470991875171349977349815100057703226257636829563611103824249668278536010102014035072692042166927637123723997807151692139581479893736625421278755918001084083324527134293054079330917540933539410363633979171636863158501856075460559878836298565953706087003399928962132946489741612111303534684260747979344583258336813158868293243432755200909346710604949194802978984352162623328800696845481352167311633231487465760142031392724595098427432384834544542709450427488671416213827303425953231967222579210502066752152920212294941957869640799155061748173007148116505235248404025480228460313106981979297373491916155797167742978260158099261456191184464393314366726806484886543695778282595126556470175591444798691301522784328632272704874426408651090292706938942772666065528140732023066187554171021507199240190192331303952729522425377666128446521619535630887339455192811903216140402145782276670730700135241369642319186275134688404795172136320052527287468411906855650689116271984513375670968469205504423321887511569116297187517190843683298004758793934354702118081259032951301875635675072527604374093897237672611379831187553861181928300655571494625847671265045098385935775764648060172233635728796428093286942906491434192588977258700683595916945530640066626965714628340260753314685676177442867329777256937272543654770076504740001801140987604954266770400544257229006471158813509482207666617999833782434159791210921945042693311466388230444512100182996053389217059675242566266062322263777520088590764013896567184431122953220866025364037555518831799009792375312069248865784827980449254051741247368563311985626614173898108036048401614883781990296925395722918371681942288806582832428111130385304286349293983612700157424171370176516885220646207234873885554071872188772813733782925478119867626366330701034812813038648705810089862915355170383137200027380259564255089570720000188579315863148781816692515478913139920079354148171003230349782934675357835703445267483451400108791633316641176947645946486722274378654398617239888389988927035946166042932708132632241040888487041133146284494621783960734115716887921394266704608424662845834666945046227405587713128728909620563149644784491287719289558022327666446360166772714144626942368628872507461822239331395902699993184227337006761554162270137482134066003510111838883588622493476240159019390852764457052180316461945625176726960861624293512352501802306346893280683517755737033049745100845112030865899412086501725501861879011101196365180652206950118852024807561095388006363516280105598781394750623102249399343222078298302069151660360577770101505547052029728434969120695547141181325711055026313355337298329306283626455233657342758273409813761168873198481800014800162041532410613436054342526287217204969885560031216072419206986162727052968397624680204164957349077765191506789379416898301929778239169922228683703933418820206338692301070796708495996168677443326537075084797822441134897202181030538523992333686294955115234753219793346106836891919359061153140294599569651022412929246147460308772220497334004181497960210595778961154394146194110508133941508826473511077668265854169352533247852898405030302881402886486099855634150655963060056483803208643507262327177956743688931654237807946592260217623439789256680630079424048015222244511036130274543370374029331547976692754113241650794556635533203233720322333632930371551131290069991070999697139025352028990460392356691180869211053638921014887468345822112934418481550185845324021655390644386698983297072753641304393659495422208902343164088268607920411732612159015427771027674724238806847255525967879961210405014271548629369962191250333623306856722868298454884283634210671595740606862691384377959781900872288207697366831413296664956534725659262893337541732033509375313274593719383676518544846637615327669266949227731562885765674523674488864393811072851446988140391977215328962033519542831909705278915245600749655757866877863752912156688391578371804385947881417468721112531833174258076232042609636134385741415594524835341740231914623985996722376224828740868774801700942984968978193953693660627519456277299107483456072497780426562006817016263864933116470054356711833942094323960731311992743724679475283066038228764248681261063796977591752888367852454619259143593433521091866815585113037029117555437862930698542501971196136731911072506755107235325090532574079803559993843164586593436506496704948866313483233823565057124828213330357549838323917568231239849039869455030858248763304129262438500089092460543493340417125767398132665337780535079101828287176942332055294879734851979704298688382888835884347443714987445509573852473413685107700073603987201152658035819077037841792506494413812216509121614802199110655633305926607670329565612965112556134975316939470009194529305332016175331739841929606121420282755676642589599990579988347467775236918535675825579632594600888904409990185537896531366278615158596146556635624768216490439588105667722192438660837261396037808865669649126247926345701236701055680184924943321088305699550401224448900096839896321748956463908397236212149681966851903397537977059167331274209905763396484639429719014404067289614639826303477515652546114077909041602027364072048521410454922963333980839367611929375394811055102343825215162515359106834492276786249938938806854299369989831518640855950808065322692083173050694938592861631154528768402851235557321305758954337509258085379174355279070351119779787610416110897370763195101204682960036777747027869375291997368665828546872367474853458505650877097426597452443110154093403997229483572243086506970883905360215602886415175211765884663437964700416238521951272726630331275444799116533457955469332638611666365258698561436283633106322788463932596469784310448650464489053336469312810039290044079696640752593357445705961430708327195978943926563043124314593603923515596089533732716542532661439747854759520723667407892674302100684027538075484773598149554528713511569649916984515827930487182054499633731332229635885121863596985601296468631425649271935171820266707434775697293924806710821401592358724283699603897893940694397509934270083741475721846086838142945129701742127750605078375310182934974595869027751226005455585264711789908342612949756869773403108269361636484801240305948366636879803949077204243032385185657656912860278764270101791141125934328908947090047620412101353293745724005689723431617986964213154938934468836650100488014791967465046518268030530191058351404768103502491892506877057622513574501977397189005754592282605646611699840324013710991662247418359797638615577637349773690280826823154347248216579316166610723691490497022301066266264252412392155425302180945973027103221466199498189197509123498572727336589244257565286789237756527603000631355688193542154523028090826886491454857295208168746291444408652732492250075359901697583362823421450400224998932055728923343647134861223934319841810571380403983012213824878570823343770043006225164493899874198779541414010599955673271247988212549250573687009895814814655828628440389263943315554426093687894956853374254884473139855998433108453805114023793604484364390441611647057136667936119209826776379198577204881963428175771584698435017419763073879843204317109797986719585269992824233094547605922536307823734292282329581977489070384244470481646537425865029472669356755228968974080943174303005658803226547424540854172664582602854816932191583401514319759127561644028773454799038257025753262306019830333948855455808020141927889026116559217138564184817202292421236131549539875497277364147599233277116371567420562612631590637348759558803022865908860531793674071523269000770420576806200274087387911250099891366418716350256570577861946402866275004224459073006703949496943077198677039999197722956821194878184974092745690886776314875079643625090259984467136719128266689552725179587090515688436785915750455696344293721552791242792419734557605430723754480405580026564494609863874899870731670620076565434720200003767991520896562584429997574497226214536794418978740472709055410863754586419779516611976035916166538128378546080535970951346640604316958923501760023479614638881267342039819331742062356146278172686370410891357126990960794896001878361726198821303811669080438184003985567403294319659049274238189861875051023622890073461368402944525212237874706486178847477748684353409978890731109975858243483280180318973965463614523736311350221182346297117722452734873324369244754685890650905530704799405193889829742262301983717464618005725125987188939598342489207425443498379466012127503877491078080519003278691303939319468497271362972332238670445533313177276162566455533227352158114813993209885753190372495263178461908573393643061200122713730258038247642241048006905272333576229269445414221868221640523976239598965727158407916107551858179478723281035763211501893538654779847222667836094618107361604830921012412030780127233336615262072325748781483129988394068117777605682773119713741543296688823609941542912595916601703130225653325742156145655431938326101381144597726373277300875119894204722717776769283881782502969484903263463639282324906200131055069784243112623115324207439524655331359662546450970775614423944533725859744573160559088654236434512221799344687591856037567489499291678401195291732068153679314335249879124192965514257637455755650368030247090671414360733507926043869602724110202183162302972544645189266816711887083255331614151002228650775571849525289483022275116018543090356183486821741826535910778578847648288514881193970818163878848809256456182906464835156627532960247827641485576555823544653579700922289686478402614442397403181529117666342144766752457386512612435222461838727640805401913296075353497095641354290253071118445588612520702404843301938201748555208306953088135631466505641543829878722265447459881190618758012159997071211435912934709332592270831762833160382433221888150014812057113191752161985192343670170942141640214259427179680880929629535162033928286063512214759433394674282149814057492459321461040932583036600942851247260503272982550191064860175289056134843677401082779613622346710711708838596665707902064577861462533768166894386752224637183499285370969998345729423872842671827488657633328986694309416141693092749783696074142048986844700031514956268738602853706079811484178735366398734219150986502888254152883504151454763426504584077147403627218303576653968567687552250172707160125598610802385354911685002036778615879237188824995153350834978759133516927835453951536978948875262500951070937752224677938996677170447830533094487395834453860322307417644374659635989728750015371825234936404345416934325719218295647829788662450343294076215004478791559616100675257667252998610816569905269747968827385469084342346055406956608139234299713353949471733582789359500995569750166503938478160992517395240508338206345321234593969625130195139752674698476144958666716784639469972943793543647165197209609472784678732596111176180034947722675866513296760066910468625563324013128788670212226736896322946030397382174707923084739334611129259020888771038101038031452919350941513067185794391095074784465252686870755413076705361714348565811351553361520031278167745863098578830106396268993838312856975068850485097072973550008522975108027306997571400154374645203106003189687449620839408840539014636457197551687271823222781940624547214827443289832811332865155240033015497337309084059068543240684771971041088096547100230165781451025478887846220047266366173858870413011343664692724524549292379082066314575452554433479208771776800911135848223879518239323057191385875088337862603574184506341666754152560615466601702310913739534745633216388327804607192507010315429196229048930266401707402288223885627632986277351152696198086775291172064756165001208484460316066717970262675783870810676020837261748815057724151292424760215807127643843234480131505842972809638496353875358170541601817951857156032329753065217722556623410828542752105330039372695046976576500313527637338376833546435593661994069642290862996630056463790885774369631049457269376007756636406426365083562937282913950116643016470613150757956606077661862841096285338242421013382374461011977644855735888436286848172084154800417568669088549995744227886020009459534996014680232737531261597569148166627459245752155314834056057039637591224719119132558716757608269368276294675318362829184978480703390237113694360539973160796842187689166559834078156762931807679293784358043460119112105488747301565791177222360836655329491341351136588574495067547571936647161863858312507439465728837775932951549559414815707219744176343080036100848020081519369916824208993866526086652152923262940122154343635675405223024343662820843976685380613773090153633020128387270796518642046305923312028259159615280186067228295895673228528727583414287675993284823835652622568236966645440096855808828737019891054346134543285725503819768145867019360480665756222676456245610988044696709502777135356580433531464031487187658862251031515162978571196407958694438600075498635384949764973796878954274745417849059949439809591452644395412580508929429610220634957247642072801090058356087541796769831053131740011695837229647872060237970251024090418416400172310096120244944749042446452718459108617931326753737887881471388774470844304473804855151463673966230794899899738173851113067662549352145390944616429691809242534333548645870203993904905426025373789132885985643563406827928564014130192989867244283127943171756927411461082972450973145663440715788909881869284305116614797266487107608597442885219535232797682090743394040968031237437226638317634871566100362166520509391343194131970699571492618481142981644111463976591603700127914668171721274172580725945413330414830387865438154250582926707913395795526588390036166615130607321023205967988529647949746839385109648636224322487465515325953629040995503546272077148280580510973828103195421693556532300487822691357609125563526810289871999955876056326686889895363920962415052054453162929971648412701151205724246804037251016019437766866350038085912058107824973870960956926806959245624070131522002206742165438420278151520288180570754294109863540489641452917070190219548753800031106157809904204085624442648733637622021870239371782190786774873743642069863905418763983482308478354289599100768487669545451081010636932474649869434532491523828542749491470920378040281759483230378178810840414310295643245793002012887408760853603728605291698615671056267660985939043940538222789022873869436109277098960316842543640983312514841407966052058545820494399934141950999822861510592470925518364505880679400502729469687247636483349644207821555893694388248955943463332801086442094664007163638061382497428351158335542076536069513429519995754129379517643460700045080036878483246657335465960728785076802691748344909366540045771951608028286085784634319671649612332612646575752680566382912315914431660821925208470410468070693457767353770133063884869724270905339869985613512805616043323865661933450405543062552113114624919251713588707197804157581099409175921749610508026055890963311199578675935574807565853962537408200163815068162428937119696011035771806403651820733929046674890258819235569621500496064333014153583738572836690256194259898786351245438761261777319164922446700071313685886672685318167953666371988137957774070852039416549636872067711821110562342929550661610336988085875649058462617291322664136934045190565288779593378108079037699337381469780812102169498231907732087577648435580980587923376716989274627550891253122145723495557145262769821170775514733169612074014603857383793627371143204147071224206706421399000095247372021690677749981589915748785165753832062002808682706986532310793344694150944021677044504280231796305151208752484537360782293821292697275692983723181921775003980177892506672612253193407094938206971814207897974267987419188941661267108933666209341339537047055404594992497595394873059969230743242659930454851253968182905585536705680706797314050624894713892613264038600807118164560473987989900383782402426307382126663901893351022971170911797177270235306844320586757303922147233553025224318174271818997667469455115807971136903979063199549351130578683382790415072601474870385008656520099497013687884064330443973211719834442096958980604514965046265955930387185962922962957957392081172684190594715394886830480444487368667214507097559243331468075828508760977073538640449862987300193821438888623035887945432569016656577835316470004235737400621515750781408269138462237447995002428387811185953132919379552609585595389031635847096732892022499052771718058220885082847492076254603740631742682996384626753200887491187724384304136760644584676091479043305648561429757559531875462528873489659708386625637842620131362013849258939832598609009977785083243835437025621441911941120064222322469326006926803120113467248720222987382303894244879251718436472303751037733140926637858378537413781337965735098854897525834701759069105983651584437579487720885827850794416087544772564396104253040157632467744713101338606092131692444325343988112917279942592430894177979310893199058492553538212863446634989065113571739628943562663545400742762952006846109631860105789951490062531125835308228509320908114996872450241289601849777747567993807129678198421883803388576816598319898572431812225785802860889513053052180704043573501434657321173605278194829236241860723738728905133925522491926691414195225283504774345300362213003057112900302011134181017852737504446596851812614190069255571350451939043599377874297814963294657778086308445768025722133473649263435231108338308448336203473318985721120558144197181425413352282590800299562255646700596263617633613183687522313516317294377243161674738022896920958417016400791449907536938122904015396246250883373761782017769282283157962415564988682610468846188015150043990112229367782268853297822854995030080272590906634285181341274394313955125269088270181978166631403519363240149674880192340235057141365414019803083689730602940543518855522320354251920936279571523395540947893988016445946129152061676558813255887404299326035477318245417677398428348649773974886426621391548314632150187129350969610245350859992276833326682985900546845521777937741671418363480684637663033852804601182017827061357000811851152177327365837478103827310765271515573430483915990971502513656026932152951148188684776235180402377777583363104793413086584559629687273240028586854719899485457286262701858670210368309360449041649591260867527087372862953135755870342780411349463302107927154775438094151212743043641090565128066092059427040158067767604283132298351251895055507479834649046478850732731589313984924274554913045736818579814430080944985485581573889946413751686839850006507893229559346025483402527262063942992651387843285407884124180897713465744089240696316174329475515474430089438260538105081195760927119397124997724521859800985687049034412255508074771982333778141648007418698147711065749881050135241834524292433896420551351630378176285817901581768711595094138799085283614935323532088617450014845447432322553891277644784665683848474148003898542065524754880026249978762101399707183932036468552871576269545850206440017167517138564302562362247536839193508827606513982433786598517520811461076752399462587633239172601997503822345674691146488090996266385668904171854519505938783703971570437546546526698467150453376553684209902590269833633597474541419886823921293451938430678636960949572591902918465058220062453816719196823629254787694048075534935103862853156019006075814541720807807441591921075647525295220257698761043299309638252775704098427791049804632210587878229454949518211363941229955188580621105059606108308707616232010636789916966240672491821323771161622776810334397556643849861576649303181237060763766907960995539864603066439524938463265514297597021695991623913297965259093479221552195032284318707733492716300397752182817223360453973287420051347639315609557490838931721385618569206888096881896534292147314450659138266404914900879797484558425995648344962373876698934193939646141193937334108065854372697051336936974579197447249228567584296713445082067077736624409285623885519151609550991067921774665582841011454852106804859286865235028529804611511916580524505181231029730259055070994802064094179965587207342425612540583324929418021671623401462636196534531793671287362057289546687710312479023934513578914458227416354183547104928874845091570380306856812826282522543720243267070799444205254162675423454922712129450996975116847604365455516057506585850752931376212280488506639023379335767662939351216409586028547925336631475615309034541755986255297483522696097080051755483012963758523438387983647672657203640222444502703580260933447638028253097139837877310471497764503305245760314355654490168067807827318097427796972014592570720188168032805152039995799084812299294564163978435338085393785932942225981425770162365185263565715080388620550524970168093125517767876331072177283310744608273143086686109265601106692702444791864708691859123034425811488109109497581971821772190140258145431206535058280851867481184965058487679034322565013909408409806970137380923771011258565589068699988155403060088378931730745378335269288579294861704302925975461751853255732561394891005063302738895776622828031671739748873138713392207603153141718345622408671922432117333382808669667609134496995816346293613746413295980338928026785732499695106372485759409915209801344460915581020385963929533589063485969521308246661532536298413820248694719401460043079355989045434002906375906971155210509118562856793016883659376745630110782841711410667189203931457085655121767475088260569169934056717302296669340369670225913243468128918590416985927269720273850724937329743926554866767778562958060698885371446263812545569401603012527777329290794645408884578949134523306902086635612384103711100024637275863799998986575765861865666765302888273209085042105668563423242579531511104598467775958080042432665628543761824102336155443521142126301096775264941294629107233790016811668042784936937468527479534461896940036560784167805172740841817343032535951873685075431107313737794554948847213650321487068111949987730985445235391206600060938585643039793873028051118134517939510331123943820180357358269328637172956101410394697328185551144504406518165134384252162883550117130266025630302714800422998972591995743597580221528719098962994442862572146851131904424904304829572274314885434952518781011632461369851057589780289353721345984131268139299052977521273162159560296909760124093104806559103042397675603975106925674659535954236044036932905582990376907894250990068266527597666914932175568270501495570018321423727644587673813819810439273123101353751072072238135756703007005233968692005400268288959464722010985033786405717115901085348910754028800732054894447239481503030241791884551347560208146143863457236246040552796438837271872435018628238882994368720999349802033818932596425446682006564551989421258276898208019846274709741446682592858761861153715711427041040776778030853912583866557050881767490112922783473455516044401548247600860119993908669148614003798333462168930361770178998133197598437612639735426372508531547895213572331000089647564149638826298533964098912438632161751040353842556460064913604022088980506322345954008302861527664620067997914840155165517580736557161835192193071679487527667213256944608420958995482875059675632344702709560006195125121611973063312516758355135606907001606627994999576555647244729398979897426641699451947185435300063654758278704069141678880821777115966215351703195590727275574335011882503936156626311017614469346410012314248219872758586409053602002456021384906601216724146571073658027326850487846128804527891869802441986610670754460878295054366119130140682402638266445746386738733631553012288917199437768776894088235402985981888747188587865492829703896596333136741064845039876835648199345961822610561157118260803112889965382228201725361333080155948471066499681432660588201453689917761430404218432018300321917349095586792447226136479957997764822291044938575840457535909885574208982065180111617846522300102747569811153284711487888802844992583000411763998482451017936969378845474149076567475813232017081891512932883796277848384613093382556871429643335962334537281016956728983292809911423971842673363396835399777095082857130230158269115620174148996533944625197007618328942062790082461553410736559158893622596561519947983862108246919036843878003349276219028831271309645040094150426185012603226320493202162250699944204373364702012895931961841808045167715214797300903464043618466701229626287979544679754955378989283666912079025847473538949855493296582108384616481557173866276489509553522033751659362701450802965276781246318155222605130709109388433420643707866978339355597154965417534969328943530183561883501640102761744019801183148320180719058904659175950842183388528888891007868815251112871016389034320857524249763492233576955012482193043917557588695560603235117948525247975379190488492776784922447717894550458393654302168123041778296502655305244566351979636579992654150664057180675091064901852745072664879271137065641958014129376195349248016727240761405442834551421686016743751695392430941632957141823447729615281548005584239507142541343899745499904217657632257002013658909635927499604883323040955680024571161538531820380669861075828671191634602732301444883550296554330560633831976242039678650612643730674019486728795894497500592235228366821287125599200187922422686984093962090105570298947613114764476761594451567146091328789690050517257518378107788032217401425272131037156766017471588417164036053775970844700733051760238250390443263782538845873067483356496888809061101435916367689102664224736283194219584386595907171061256910071597608491562551258008227955300299197924901399802264591114919533949346571866230875160607445170527123799556477025286802712934478049775006323884073571843840276508759535904764921988462272959106974458756045521927875044461116682852217670042467716550175199089156081253234578782634217132249178930750826713135176075802918540574057403471838575771395530781069451180450791053401958705055819790631905042752605948199443510103573031257506326293144955258837280774044174453294608467172022293539110697922864795996583112014311574167759719933370846497469798999874187077117183035763290089047400842665347218027252827130384359675610098729584867007034896641551784068556022202465661172372504448160231093961009564087787084362925624671215671932381524840055092787383378079568115299827556614346061655548101914246617870592296891633347008335044081404914790804759953604887943872838887926355103528312631188638566959515147466624666018919597928714492581737700067929569233452828283280271657646575407662815991498794391208583848117829449796778931424697230695304959997608191381034328219534570369466671751124675859577617676643381303959574938379488897426016714739405584133786573981155408462289562079149424358947915267099251883611413538363546642112779430403198928755834831329002583402044904739050739865234961428559189919288049693506551542638122819378665935609818009910792098730246949263704501918848365908018416519958545616810975191891852222658185028610855331985726541514682577718214086480080752654106783714819738081251781563363977992102697955898880285720357753137748951925912349081532222209646587654602728397599646247744040177381061129853572717144912947781782814662612479061667679289494936975672005472576648641038050737296683968251342861564854670619849923325829944691717954158611004840287432220749696954988239594403451909452874061181325573938384427847646973558429005115103965822255001175896125303889706426863643396166768380714748541971241605164200835290343495264324078486292880685892812359091074718355950233387818627114929378647668162299258968509620582736215700831749726961284192010192579683914030959868546218019017008272331267748167120330471306148875255922188511018516344291098151301509806610851889281018676773057189274157273619250125900401696073991766506458318526724822715416345266092846100344816779843701876750275015358030223429570182735608422467229392827552951507761225430758456788403942645738805191294685544140116677390580030631969052018531485271645824543477584034867971639878077356759974314387851107824491042289484849802876520232420315644109812931014125165999174008583713165590568721649691773797699774609892827774855376108858165169262847081463294545206308307163560033437870978191812320574088912503539384410103451537907678848330688072819361421443706836687535073474437363164896192291364083991983793002802876019277630706671222166544283689912117194187277838593006953278350589167629925610581934853780601529009282492364854089023466474660683308582598932695993438672304481333877640966140539749810438404717374684609706365042064997031010307990228123767667592237194406551155659338420237286661407551618690117474723605214462853607886601931584992746384385873061153538954355028293754609281657501597124179527880733888362365702390365310485910116496887227647423571352545935254252114280615534998328860559442934329830904499560482921346266260568971797580573031689971967894096825964751263551815406331952792080787953292065518614012820712653785523008231692760257665644298297129642949572424246413053670753456545856528986067892821645198593446243989085886857071644110906287903589331383758209264578542289314858778817819420251188516730033681640271982778722043234173301615203087188213224709909948399212238840512461541888123108008250537399960700856617797796453249573016597845178034127534347824056346609020102770171404837679330642487230021048374593672427172075557684986611383258883731945536897504511127880571794876683880416683193108167091601147101724718109113429808298412286420908722250941537147695648148985686582820255153693223009817169550573164704371270036079270427649853378853246198761594722334543354045328003006312657920045733766165597406130193297728849058867184017799932731882156345554073095425634355598724618460533479262666988329761634700202493162312791530840806328592801278795608658469200436705669708720398936237565403004639133528697031998586500917900872171728243734149440232293898271357227017805192490873847556205829216278838737620065871368459065779500154042997099704131105510800495840864139063478195082757204819765853098492354856324763845239706619004766708980522764772785707616700751936526577272136252878168957984828996553000599717165298083514057621487299262865423456360494072458971319044257375140295353450860478355110667403017206562055745577606486181491631599047621285330880086563342711801166276529365444076131039255093478505886389224824956635058382130988958293757516286332576273815576311806283009286099490622469258808872530867464502714079728214877773128180229282651344509233230355242804862483132349502217080476464686138063758156273169372934804573822169255041080963712534700797373829611507106810350201852033421145484396408796603782213391425486817562876522742030633461403923520983190307670425651267811005042437632374307555047283419303603305681918821831780656493030525300777714930566727027696000774440995696301112435022360298279413327656211616759850299914782798772150844387683625791065239310934163447066853100034653385916925664745753983778218333374634419577510272911234736398128065072080467070773400399004887480465320230765471816366847271148693406131376589731716739830502304090979091037427849648621605395255780356329071598524313905125127299164818416400371601717897318598831654405330439540654638318855575434087944158512435487468551128897987498424464394550053780983641736755154156193227565029678486083100482557034178578851404219927148461892238080147524600797540210043688795749438094751703555493865340565618576612030601524323684860802297730129309283868207647619568263504714214209243110403534382605839669006055854100656234004771813129536015482426382205937352310923273581646738410227510895387734489830507435888989668567423500050631924717673866621659134721020391813376979588289178983516788977551207311546023315753580826005686378239774396437513921808107527303351794093781786298494261010736518923203599457345537886188188744665870896412966309327102199446763226762926823312525497802055455280841930311492730911078830735172821447181322747219296091475773880154532979489936359642267909043493942152539174492491642577859864819322665957348489430765967269095891474828553307699500665153613100719363018525957369034367807930141119866646461885723700820606863879136386662004366701574542509768776023553545079028125942713657065914002867703760421902165075950806945973535610479786624591470095636588019457436744672803475331003302169613242108130854062234572030894079796855135405536941212614580320513673028995616856494997117940503173545905639395026912759287434131101967654883916004186652942965116391696521605670912307649932490467836131101287829696405512243906353421451904398926587169619774183570876378113091952057383262387138390044232966053700820892296438531350243204349986130521897916770728204683124791325193438924424921825588897040653348326341647809267721188613462679241022828084115287572130177848093160716349009479157504036447021464910857226323287034102923435116043553301119673363157104577646374609206272403444642824120957935375408343519952262827716587560487203211567325531576156409156491413514628809856081226360705247634044248638511527540148012803280726280225016459441269623709954412412098824140341765820343910452624540896243463926861512832734950636366331189784788052757036301660918090907717700000884656408172535080050274698549991440048092887873681590117291171371391739047392729331872801716023041926678366727221767489123149641552957484895448774210033082772855352805640240930592070947076148470267864840705941223481186365777063611237923268855900458218550336478269783739716094253891022001371662648231209398370199968016389729854569677071608368081903831124430838720175805621850591035367376404485869945859097839278964710773734391217544324580571553765733188211693657388308695888100321860523916447780522474921373365204981232242772818365869741627516073661937411107030369284715648674434770559130683814954075137174666834144737364467888578131970663442966083849397167326212241648471429859287431588503819946125793748852164098053262153556931708024060419085295581478970764537673708845750771744539092737991447017639889033235829826928830582339041571970659661888547581770976409537384522598035938720913035812857332414037954418131193461644674826071401450696163101901607539626045515944387769822326385360751152462251468706917572994013770789650550038060386960512826616800701340548155505689403074391622105828728078397680925683028100560711366837594829697230428014276625248373033330981644309749946277188112963220499860757052733124820863222944971380974874163014554855023733906653640360841776852256428387410355236287560729388835287061437897228476278154271707965472221637838699261923873162779549129689295624790585060512055825544723088085938104649873629328647087406212476926129007648649919621857656137189174670187589819528796134811981711237190329667063847057800800751163783082864898326706326845917807922835182563997836512484223123669763846525761610888463551619649258001907349033389013915076712655577942063571491342769573131969180105796214053200231204376454096774886645660074407260302728721302744328408554288388463579242546897160850357617959481155359105725795423096247050503073420787503125869024394131833727282675564670863825802602159564501887791066719025474820481475697205177539494193290515088023306772532352876700727991900886244126154522835361458078226619977885615376566648572073057371180389678450561838155832018210506490435374302124792493080516514065534101010657290108543199039346154111572617617802010967890187392386156620340215340514143931178318061668694173687078251468775672490693233772666140570910822869404512636092291382199516890606619039754047449056245179608737911236779228108589703006016902160048771994526441338981399481388596160763071957540349786945000766140876725129113263492840535938512297422733572150082563361389665116521715568838874247159745426554688144890545162088046616649136928293419530721801464751694936829727235197289762001357742609276187951762011929314484564483335859097984769815896583941291746317216887332878438847331138940375151699931780397931028037552208640204087818368169739733226702137372574321332252168091406165840573949293137955094953941299010441824308356881182672710119947171819863267525144125322460772903244701247788745692504658938583767215088191305818058004963315506683536389040612132980970681339317007568720363484867244093062285081124091870774169119586521042612278521250128288638374746195716471061519183884725090969457426988036167287881132475372404325044441708676976070543028272042318972420772470078432353298062481741612548540508761348000543427781056772120457274564302354155080334303553909646564199773586879572825984715485323203776772755095837813421774687121869668018246437954076256908195952159057641809040295357800252086438466587776339756528510367317232111966788462607940549124768574441419000938530282193011871797432750114344252197311227142298398625875315022896020338851928704947805579395301140393966601413819391442247548748943087776955337963450737490990063976042856301497086619598085579199946876461404640828343877500159224465878693753833796812099521197694306002752742572159532269717932817196439354511128088221989796281625084617866938139533670736029659773640572888598493182651828285376001959186322518920338795173581662898342338517294705398880862943365748370880938773067834351514753727278498987193184994806717942301868279386811944222335431226053636618235572213967577195143277155224433210242200251344065024044096961545677537877610134827787265356728127782866847121082035004373228994571151694782310312839575795509672265062661290858394277412171656259736406617778381539971560175267620418342992900956162788865791102394499921097873345726082071774416827840064706008288632116477166479938712916130053970261094554647009389754732843776420649025587251025829974224747199357546133647170924163120551287424679398873639286844284443143887431077441816782359307181117440271630921434537227386135489082676002581407290290021641061151000231110518130466698909839773898794549664458971071009982763238182583236730220166782726770386240910199667695099062116284778976534312480144449123268505270989257703695410119116072784456639359108590222441099989467192220326853064637010480536165849979602879728770954213222108084423245964755700625556119131944825557113891391881162406578199565759757033055217212933377089072359029654128889620438336188373995003328170268559900091196689564885857858547701878291455512205934325720303196084537400878524703127250678285964695248914412036559308081411645540925636619249918985141160383678266690626823658547179595600502743533778658617337867988764214061617822291300123926891882153697880316191494880294054234578762439790167731948129943126570349125017383075143853558915790256217023001441818691502482078420111230924028647795393018699872384634537024152623177962685688307433473856164153257964543816932196411927106137063502782335243025106629458246481340087971825124272996938818583375915059214995912318788265727412542675406141308394857371311871409981242424040608089349525362399789030917649043284452948019335636456741336041814665219385442521135365884299006277044105963293144176211349388738731908591771930907470894636948492204657868927670305723282408028455963767836428607282172997119347720826303060352429391465407412052804851796514878387507252970915814671839133373429799545534767692352015575509615096944476156136456165605941957356866245465095822490078853878218051576226346842731293464008968614571982881698363111517941424484293536750870580461340720049080050127751964066001460107821228868465977555700445375129216765579703446230319009159736010058172255373422045209809683619499997378017563399971753838052721736851430430110916425429013841328845709410627972841126566325849626293320930099140489472250842353299082841096825136732190594904001656027777272145986922974678918442926601512021019177444979927703150977665346596622427962436907202146057275891502107208223155956789729307437229314043629700905506734574879285709018325169779599955896930123165140032381024552549342740821926901756842900576802766255661423444392647975293881672287610223759769683202817729898654895901072832525518141318217895111351090185778293060085434118312108718860119093427321193635531122237197265615055429681562475238989408599167154893784855144523352696970381553121791808979125687981076072811332776102241279005864959011573013629513716399595050878267703033479622861608577829636680535282569740716238287058678860569157027859701394924393313507332331809140432834309674809546842631082770450384925555005725242378510398469809170859929122345614104695757318432276595237928615456570259304841997651868407306256603933190433580252641397382741538859689456728998476188664929763102032585920365132668295029025416353268547338285177691395325556441591147345512070284499869101975075278496650050947879746612414822003918516197287367025290722373783942565963427886710480925891450551439019535663422719721776242059540456259855567838188940024591075068773574645364861548013596888958523643027273587514272954464429251257890829693113681466181500791707118390373545833983989372600062733979766011342818228910215920345683526912485136237111126238170746975491864215249273140870435125724169223438135687962794173338215614520739393568694279355637124349588049411313408897049364331239509996728763137709923606349577082713606423010869412182839532286754480582406241979380325749631505934141091933178190736382541760806627002391344330992360322228491459829772760415226970516675861788041283369913248301761187049164942750669053619674332361092872199560988072489828221611134868849851859239140373666257745224657919908233855102673236548451598936990155809875696782670439985348650341317185655253338680248390210595826928850792789643463504520175190521827990732753124275508766497077779709152614055799122807278255836038887618190309924196658959713123656570312867227370608562364494694854240038685290774331968713796864703156680204660483075998696704332054504659137781873754593943917240269300385626461512982974642816753404875613260569589145948014289691582041087607822126775873924397969304785432323038247952206965081708276260191094645426125250178824784467805439501906370320327353541859642166627942267675467902293049715841290279069215357087168515889822821399526975783900895566439908674054515191898466705364422619028017049657838697281408224451221870896709542824342412995301386457207581471901647357923510491511631193869548931786225465763361419613501955460703303975788990607953167405705811603730547158687141869555700702877631406635615100819743208902345776431356496174914213167599743100715074190274160227026101546846350696205018147565683742348352371250627827142485168267316845686910025870392468988937330393544020512182031536625074676823901412808260448816095898388183045961962263964168179729443065020384955853611616352967822829685219295838063204603410666114811312847902755899978240044245429038994223698456394269723557636186559497732450163687583636301130081760895350894283656766266952765080114146772963167028169607637611444428766002617247649451289446264939637523412059135905769337047065650344664662602178188236177779685518894944046503733504866299945164611534597133788684105823524792937622295365586090128630485985030355745628758812394177294827116898375041181821515458703963430220079233223790170015573347484518479030832052449154649094490249571686531450077095066495451844396047931476451972145501190616472043604945533801410422712595162894270942016540997667110471018803181878148469313401898143353277920843967181725317230336977790661945646607382462853845175725717140136798346926060991128883657148274060703584279403728907606118885951105721422742614361660416017532901302444779742657169036625172990874835229824083083094594216033238690656276752137411637182036121856391638719288888615051450134446196191814307705219321355569676808326469175289327483544752851536589835886553570810242871888461528934561587521887650800742360041914807941855994861332569802684832316080267048361758591368783776052008562156431624483830581662830270516449004902555186678378668562593904987094766351661275467606638771742979784395912643869488547893944196407579156912859767074911262248486087516420994504822137496906904217548092116074723576254584032459944676386669803739164030138956374535067621159061368034077865414721060833893981418005643632399045951657965285928248254508562521304119431966986414760178689295821046534487358654059710441628678580043674209601198585625169707735569991330546253302540464425796851045032215077564911606511291287671257337694328606756218639447585747375795909610685873403689210998316651664839050162624339454776163320182363194206942190414628215852891673329867996131147021555624691633055361947505965609690153848234322418258359216779029263539999909050324889994356810864862754741575049602109844087146188309575082930505257876885233465923226825114869575814423233011697381435191817843628168888337375243208309213765088692968183866558729441667328561553140512076328309693972496393331460325638091118832386017676484394930081900621416701798260816718574554205752480280051050894926270005615541713199450866150878323588482505164214387012971076746607436217381588020516784377731506756000411427165548387057825707343897464909276561659859526180521064365470257640384845412682212344801323592620911973038029647657709695088918462520530097268611870254592168248759773217323930299174137778676396958028382658037170768988266654285457889284203545359448576153331310352505552004321338563423126487993810253973988871916370258126725876781750854122013877936666097978430509555401145042145670371963632206460565032635153703700766440664422721361973004933064238485848991021169388856326495175815553672317568070734822428052649827732276226557146522385006374186593189218969204214632001512350473001003529169422996181579541102719047749383670344465940090753188466823733197430509758207753183505590641819332778698191088722946954715191114639103881279702517632526126913690235651934391315520892347149281453598612154256198124270546504666571686669917646627495859904797165644913955374890929316721271508868311559111015015446910864029458212788258759621744157388337445454687348239760534779445654063328436282729787500970285037620345622371114135397057369703923834101894767426624024306638101825365787056698572823367148665241526658365264894786077355138776214617921201562063286294561091747458169750756395583393733314317460408702783483840322857638057567001260149387835017878389482933820104803054848663518713201385891481846439383333230291433431820380960537207935128028954604651475718495818185395808288606735549893203934979109947501174469531616076383594902861261808654972745401572586477763416914304607457419648410228536284854334828604569632702919983858493766416139102214741324476399037548368401791728926865052612407303219062996806287652859452026967048762503338443113822657320781661212015363404775865140978855997683661209644564035351541533026300286332538170293739577097967780928538133348009590792883800600141946740293987182572188725517771620567080862128510072322092691896064337113096700156098903707999927037798852805389458336967143961561717042679911783895883368287746345209552949221851163158081811685711752724305891253495735317575741559141850607874366434162462804244199963200969338799832943818389629650550854595204325808385326663153005876252324674539939961756491776930183381549159684997816955338280927595994404768367643545600880361142266152832769540318557814485553625245443244367625861297203178810166576234871351199604657261671200183200673563423832463326343737338730098853362853236698608952724685763267665930693834251897369838802974408899751163394726812084272463979855886983628037064223158122213403793967986388098656593220096949971625103528142300000664214897264644585744103356049488654368659311934113060746314925249553954149170972142844098541972961358287828870751150368317911453906266306286757520728803257294381124150920124187186004751334849914222221414993376956367513407250242810118000119290111539003970841735334594968008376392291773918403160186833768728879717192479093152086120346987500261338866805205586645091628089226582137828170044215844721649911632545828821579365242741185579093788554465483509017464548192649046950614868318161330081581426956517961092125603905361033529729711695179715536374972359345610826190703492796149056057284329251604592026828430187736680417561147775586422535458606585576987005206423714413698456891169166911036015950694480239187475668566349098507836318523298933050447232765989341671961357046865464907301495800492146751193065165933156319845468491386900016350570178904238346010089724337024309647827056173007180587045632275992707741006361108955120845691306893040369694407001672449586230926375900934960249960970582499910729549981137888698954616789294469989680322336033907464680573216586658144192453253904757265734514498788656753178628358384757607825234347917650966315754991930520932654063753346586955715988079597007783283160836076184660172409915871720796727514876383564065755964657674175671895732791488702682614938618431907447720103662306121606006314586659794324232117203900790367241726524073543564444358329570115288181842399721571288616748250851061368775270129972281633955206457859116632712094450675231845467800321889866317957933046895249812107283523879615062110925322558689730845735444869253819633280922735642890266301140751286134479795818238552357738559182829364077607905560247158482086548489390980606549917326243817619215538749380452513969060833989732572108257017843149085063905442743927515808117490069776085546823040993451203893602342951719216716723706806825842576262981783166312344425369989712128018171981778615476455500291546966623824996872874643169732897932026119827023273653613700539960618034063910358752463683998609338149361406695125434418568222622303399642965947006654073564405941531695537676503601275271966356135588879605647407871767987805450371289631173659625178991465487409752210324534760820426216573181321065822114379264160316677480537812378370595064130119521777287385064135850313968762036530868513209217294863781188510803378876944580237136109196075066323739297118701870958477522364140741706284178515593465635089210412140599988959784226718708671550103219854982285155045625048558215007526421233320639142840820235674830427390257733678575082062017719691417780961903165815138978048637628779009533009824186185185411557236734812742296856691108863606841696797021205331346213775504657479240301670168174885991866816066210367165217341453343247171809730224126878652918535246943238425883640435891599423625802760650357217508170695664838133342797535024147500748614467016878071891147245222764692116657089486882748988145836161779600200895498320559824085415808336101443929443355432065601394639224719604095378595665226049995227354352094896715306283405132411577767644581474163593524812780817734252638429098689431849145359481572566498688380739096404176870503032707561341219877564189270208988861672305624770481445080748841161055672099421146288873476866863743074871247963274374177957101046806341299156324258382385852456421227223510364604990819349987008507870867745781950347597622280379887458054333564132875798103289203634154802252890264854672567217354275279627391103559103598769112517258245200491982760423358696105325330969244528324164135974799217716028064849114423257740799008638153938065102901711889551193237912602092022176512997888346928079642324931153153380526939219397016364803579240613623499214373566192901123310033166021849753620252028715691308420094209764289731921062340732715991448525324952562781484096026450120123143271425104871712630365017338451423422047984394415785145429644609875545264576461157326480328075326232920018150507686745012018521813855319790887245203623844975213288854041677547168305255815603845391401009960760770251645013395497766862720722032837212621761192891162249827447545815139575241139915668222276317584954283861703076881329018968976006848336435791527906898391475077716392142076384548499185458787567780185858419047561368734394526708972534936134828071698646825408319374210207193463864669607467490663824917307745742828352097731571593310693165670400260115774269714033152041110159584764625980448814557111062096866714052258512341096709954541858952415566759269006134898760012275352949017561188392916672273828349488600895048182572399069688564690462410378112185615015393848443008602603855148131847186677039176770829298310498279388005730822241897959352566113838806649953832728459111117746140431513196859140358901230349216519894025331197721688732211484941197602281863028689071046941080830744337244954281270463752190186017373274883118861876304628221672139180542959048175713168294667703273343225515151143143483836993839158717639721691347665445570608074630189927155590109855666307997998082057932461767425826594148549891152847502842539282335892685540463750958926574059956437967821910242111908734975988225892288676035638966851409598167583716598783220890064027481069300895067453238470381248786991289756753909685232969238045864725272043617575953865000980068631698393868406805406942749039024910832410083264851836195070610089912712672053043816658619796423302291179116971165671246810277900270193098221184844078769798424385595601051950980932430893386494789718942412702073933438300448807932236875139577641869009006354800284742382266799420170973609447102119448106161017352772547877443151267101261488421865800143348940031141880615903428675519951826198313623702552585127190762147289846632342703878525806809827694498985152034296672938858019600029692396015825293738024429239602383618041423252606272264443793291842822476972042821433814792903948646127757720299224214377173257445009905672506424533006053821655190623612542397403856253166004279313255667611454435340258377894835991364031591827040505483666949049671655069789413130315852399296650278688639705481544955710448080094293394047949690045255869400836618273627878163163974842010639135135649604094724582624056847053492735713273838360422123227360503720432493136755930598575482818525333180365631262352278192307933889068492240730786406015310746192483252157514250951249865834570522419142225510906896968998311455766969270191792764917166037672643870429263555444641112687567793956829453001744798505614565016367681937856580069299117462770956003137929908187215244417244332449068922574312412748641015385670536852922087131026269820328688758893498795663728239520104260875425469753953259625334932917955677601676178434609235837661867311067273558339116150478396695905209357083651837155397503868671014989643276545559307011199251998277306564025605565326256817395584026893283744785416156460612504129829233499145696512075660083897437290810721234470182045211522951189499180092265623481544815453133562107460308165855268488999150161293023088254233102433559901846022927325713961422309641114776410128046008341359529184634429283743180154209064121189310834260533619439903077815893394434558387488670763900224195055824128476304142460468133218316458289169252176381555011917241474741830042926599969284823279264046262043790955674256286582194889712676985680691788841966730438989455670893290809211971085079925669703388882149131689495868544853351179318402945447457770221396715609604296356004943944944379393746461431920176359817538866702801475667918668080980881627595235889310670838326763282768716872237525636806685388639491241096858815951940006113058472058082348851441244547101162230154566530600129684165757299735664005921205486288895684878584312577190365034979975689754563160118878337874403444393352046661201979138374559315477194169369716897058440775835936411778709793963533804132928686455985816418582072485823766554787984740193730543905166699701582768871063447181194664396635359505129959411703719360013234294251338600574256678134264262520422107725195176934479577609679234525170136400954736209318383962790902906512901311909234060460275454009096727329515669482240331119560812296981404293922150865035523095965179871313510181940821200258503080401519807230007843628629677656169084055594914243925549537197669276496051127495757776675675442198874752693817059411358610472928020668991920672930384794031252662705960616613137877428644083290008269485676107940377764821473556259177143024536272082210568782237278003016256917449911405690308045834207643574764877166445869780621578888479016346014177639498115534557272519249988258239376233776663653219732478774109427767476986694602657379867222084100910454538697729124173849941826633430258143544207647895064783518680783781240290366764075196638569464849198085134761786693357369785424663964984689121854864683831490046156663989681054410646379455108025466882596263391339928816740874416372433418473242411991732198683235260388408993138077063974759959181456950034156960995107533459771537946940934433651404362181842782624829213170000753731101388670459711624483492563630322915369674200466019524636900620903932143769738034952420906366139757020402625479890516109519349345423964361908545709945839063069219189682844290838823543312008861495957774665935034963805828869362389424432428407415663635472847606266598088378367458135349345860015132010132584816093554030394170099070927582173023793401494763099111284758522592585458263049884333444405899286771541394114447466874697710276113934304257705018095921781438662284743098792019755506550252024491216995862906497242598125522424657141690046565019981363452140950842548204449446863088767926736025224251140920895331904988683652671089131907039791668181129837940474515034484010119376961641342548366289418482480827298218791026724463908746161670528292031087690032812425440995415161282136601679012468540033233549926719260459691649731296387497225407727914134515542837278985432534930216098701244415061656859515471577486191598201328608327885477990229639341786606115067630115213524587345158248494195545697263487759528793932901276530779327652234487746251684195837231250205203037036127976498792091325694980449446770868846956764459780938950462555736200426983605010935014561571350358805382704647641172943229251031680573446526085651173767325485540737867883816882704160615190559494886758639455377610014407671245438281384904448625656385806543374921255618884448756094544743310730443545455633417215013616187589362702789182500636147755270026419965678650244782543199473186810041482554831488592798421050739521433691672237692718467895273690247804746343871153725496186983657682243069185447043749741599768087273668451682378926407828997708170012167775995044500077543430583804420651399246942708103756818713781798810314730307836688195144284676361273701192487349779553375207415359103687451625661161718629034500829984198877036237004765521104398862935390160045397588491443506110480723268131145343372594703892763855030475344498766832504745652869890976488014256811252659422278167927302560217217100291254548659893310896554266956677608178835491485897009247659204116150544046566771413504445373031170839329680105728193028546019858159932607011304614166582280624993383171375153045172328885935907608450358522654410488458773042102242597839041823926625101143429289100572768408809121369865533174813158507575526135141305929432342821565080039135809690748810754094496131038147900294629540238543705412810733683328986205358054031880293471778032219968532193439506856530107105917436449252464244147059250269751453791630954630378197056089802596464627081578342699212946159582858290694592026182522603321083049852232029676690460347934299992118762950112552666652917328971459901026372792104921281839092710983468633922292493665914531807593543021157481128733875948815313783657156939762415115997093833585833477691051156307296673529806424408470455176660212571819556081825397629387315698888758183615027728149503787675269244525456924937772123354416106555512867545447904424247040388249015654172446156363859135527520452152511703287434984447781638779224082443417436062550695779650232650782562730464008542547066702852154955359890433570721945650925853498092564716803628591943032671175780639043216304742538229186369504775497017245647607118327146973661496123801237939885634410949380616985626678945386506459539606151715120853844222070182466101900585698376444557519403118126720960962395386254357558077224563572251095662470003932420399093568336352211133653993607229878129284952427776025734482071345148668784890978429395934305829417105230437896945924731104314367192185745220593332358516069612399941924753824844075186190230372716760717441785707714298614826489498468214567787139434694686959362127339129608426856633251258165208568668002959040480116708257040539088127704972162473970873136540829916699774268802673808957092065531146202875157269138578464118329750563358392499289195595057593471040653543168265322834259695593104238637820002376616884529900967972673030758242955404223597775376119107741590955689918271257207001138198135377264003782744245268592030663069790448924703870322574916901974117441307613179201061949252912834924442226940574608301778278567038229273607483728674396594465234739858359829070201400919350828610700340840137069940337059155414466252246655179063867484259883273159084353205497193394701827829602183442961808016376220209742047314949976418654385079195609525431251217467701418911964485026599175789711774137724595910389363400591423072554106338592121076547216071117559157267585637272963599904399356750685526055403895874282703497380010385219573975165121872221895467219609510728919311805927429260027625951270250577211467332380617698430634402861773457983678949890983549133481152492103633403596171590281454223337011047374839485327200670490238828703708300912578620283099906820257335542273001204082794756627018773500288178527698887725350565485934195166685138312142020930952655220434897455051871618838155859740326946998465798632801977297604396074515852704192912326991387397598676167938457217832023437052428500252896258063891509555758634496989362775371570846295296098853933443562563996005363847649767302932819091829585283789529635526177640342123497078978841250092692790774702052507390907551379048758316130850622880880430875501945133338433450935441186454640160084571269446424720597331875767957406138257468825258057329750478659123594187851748902319144781300078600242943758111799527962085270829417562119713715538004567068500597279880309287657940074627108258555965554241584444982283775793102358484535425694522609226046276703956948495062018821909868882909740998229708381553199411822559442385724924411872536534589007369914412956213175651060157885960888696925333150705145818606598982785282310561456929823639211682896753419838356091554320989629084506059738018766051475743228528911295465460744184349388633420993070974515960066318302198930089643360241420173329636216536333962137152754917621357494878451056980394038500131989329761821755697336502562257270368119939431178635252855362778569277505034926261008310620488112744308142660858316683774819043767766030092019503591683101368125814825280441634319002667939180004872469090365256001959459829739192580525709020532025337467829076102018411642242032536629683212959005144946921963467417217862834652413095868809737976825904131879175306495571620956500103195484671010452429149667494542757912353455897945197811567448819418023097097287514526616231820581114007539505520610363135955719973720519338836874637431341775115230276430973138620107249541850118305786461205472848689000781425415399718288481395652826815554676742387159107043965576200913843938266911019037929712200150408350583371706660365141204963553359319899380355540572210921633460902953553537638010294212688987312546398087641490257192700229756820329791651959075488648655885077305362605343206725527939222214182453572143867597314016364693230754605070688117221645799142966393231630494891819933345398214057018309794333331499293883803196626930328766187707116709486034088936770802559708770766535941324997139382248831766209402996839261476673043137621052225373416753467602128360698464528226776021028803033376438376533432440251078427460047853910683335556058390830734536571130063441322080487725251046643580400225247552060942103338805553111539412042627004397942720387965214353073072123156466848291371835602975668917842607891295955082180370044757761992527113277559257665003983692900723251516518852999326095525562663264981704433502508839912163469297593952969018902287901585366526696189866858510096859525803642274873978857965312593956245877044069478791982807209043778104324465103490310668272345202600191091235047545795758758537143160047359286096407873414665922437497742562877653615255555289878174729228423928333532089600653980030515317240529439808827905101612878972226694086436109921828943205376015045911448629754378438423869660355695098727350011945621743265140710813180845648167552416081940357491090322837203690936364957521870561774240919746884716573333121115477184342287377668328315582575681640268940293040069529638551185228923994329475534844729027961565139613988835198579690161218408428271980237433641175808518551917777823485342051743354914402691050544509634924328239462584306677306466067982178665932891241393068020791271157168870267282172729117947561231754469580855032181517347453625079341514335837937447615995012048949752217184049919567789744850325338514101110791366297238401867114674374035651941821904591641969344057560584593559260791176339882779147153034017884856664231773676969684183375819476101232912220959755910095560838111190652929936750526990719246781219381899265208170717169028304809075446072627503901925944034675358233393282512640208649195428148233657265481683025405426542221621946613000076184141373593897638037387298214938593390213107303408777973193899629682434931407317258236496878098551007086944093331467393847275551464565536143399739468413159645276078184370522440429790572939715472092184718617939617008170229490337188363331941242644259205256156700540728699711348628135571635014243962661925333849165265723482574060053135834560740551845468185709160565725453729591049190137677688377969986746274494954136073676402362767727755930467769868784680968948628567544409997668590646185169856679386097120651518069691830937653356391449597717359960106836926529120002970640779886303381367923048000838804281796685948424482745539801716684591986909943743715272084993046933517408424961243815746057847567127932354298956793300738925800002967053346926237436293738688581575536450865832922308020089747742019568014974091660721085714837903845413110407223504979197395276245244808179734060563190165429936025972466748156157118844332691067344479025723291132139473000911741961975715719905232144686506060356789430123240486756085129466707283822650494443465193297454578665696324688302221953902172188288082381145690400677124342260367535843831850391789541885077801378464707806393321475964490315980760125924692423430577031282848586008107303856897403547235981454987626091965805399273223600852618941995149251216054607469390882919684609678069590128502097403730907349539194083670541011223050345878423592525286030172187283517896343996349288065130147206623478852265668113311526866075604168004445902940901508855724689705916874151266248994082529972179818665400451634768125493488119577818860131027000186474153376117320458709423644895112269913266936882056690021534019553996207845850016941979587644185584780516744665755113231272914460128662293648549946393010114911333281809458219753972445069182428057837614982454984830917212059361164264513769803315362473291060576440316225813757555971675936025714132582909703082239796211388825741802176446677130569836810264189191063771816500200441373907995316453890635826811820313620901500236519928941644302983557078044766793405027614222216516067381323782024946691732573652976037434370125799822038223235253500111682156381705501729218161050205776333488168733863127710261265996454608635097813277379682778929644967471166292787686905711249695809075373062479220454716191348590940805687415944916442089725982932615033492595566265298486377652463433152415633593036587680383928567179858410759804277746313840995353127182549878205475530422948175439002240370889223840084722968415748141478205583720760690118797807591393059012174562611235810344258712490044547793159637329760794624144619177174153490309910621955781972518238401827342316365193594124839368128051922657502509316017855232513144717995371511128762813770242091859391431937711460944184261532227225004890091165655756566209309325813763526446477622994700476794061109360692654782745983142553525275156548866319462328261841233308579797267225128967149494803654320274988982387778352227498883835938896384720141514374563568440192913961828900817324825531119196271234738235487509243962421876947631525097181041607731564593258955558015101245762673674186691637603103032226885857137328860293152041301925364820093468996452145965071008951335674671563822838770960404612334988706271057522605336221122761388625864107865285399119208315749776033486189533505092658254999222988247578927371687629848224076775707828691264277159788458051696260729681166636153464173220191135347205414525491495704770409804492270910111475850971576142010030030979724895737754774670979492613547609534908615498879918172729834887237637020072985842196666660164377727455423094290522604438568742318987804880358229673220841366227332284269698860455678800871851410845180161952746054329290629381380863784703983946726788808937654823390505345659394759629996453016591385881442171595436927659004572578654637836708901608715235023704404309127643753847659505951046234125139728158218359180309337378121658643476269232979165907572539086818280963710930924382059034766372891318034822187208199758332626809078865404711305045530390753053113975587007818569850989533700901349507041125794429784057181392914161864895728947283080655468667633990454722524675632636022994328207617054351346136338524737554140834699093845025271735798671864570186416487417828051018952044564311611432215978735305042683681228598338916096766756097744620854019225390426985459496462058918072118581516395358462982131487968097053430860992502403261525720359369666400503985975156545312748651035434117090841360209545807956513168585965836405312353347748720972684972012388275242495620863284508038699234529033761411770129407530333314945994821261492282814008560863544687481830472691104561662506475583586696035171925630008272441127602558944952800074384871653119514149310419235115059665691960361383670383455945044705488581825026551595042769004699392071465891104944990894887925570369639497123241572705674134946796839313827109579404882030173024139528738695927157410451221003893221562824077816638219065851148705396342802985730879310669816284945381439390372603835383605093698776192404537003883891050871716648306936908065470725592722552229912604835000827307009138868532345526808145645723944215127517835237552456219833052228029960891997001920619456853262383631321443281951713094393746473327775464667237072471748829759977120002632406914241118024579733101456003970683002766490943944683166687670119052427834180584773107780226878517102999742090641642803840392211617506494011748021789156209151152952348399436868098225174835071392247125790018412121873681611101286698624355796562442980566555304639240810209492385253582884767653808214953477288835096968883099472319344989139516918601903461900371979339829947254570807588728342459393256146377187449180039294450651240583022985541015740577411896912690391596873042355703791643346219832119924021793010921801219182461195487244720708055728184956428755706239694042271064363298194122810828472557725469394165413722578250545356810616444238062175852490785754913547607964711582102037835612372828834303043069429231936578840069170046624968427675123516441757656251034250216279403049659594032513036524172155443320276970397601180368352953095932439307372438843228188960422980266543055024238947613637082085339478285187113011938523904618814650955007686808956155041660189506909756365473584575223652937335410819099942583584301675123839297961556873671375132092239057998974154710977096411658463388497717425609273746575996464548116843325027432848416214129987713172971243756200475870908352370933998218024525872950453861735505466314225902316813726775076757374977048811296707767329402259202747362641312801186593328666975640271401732714785062328902541180742389012762520668844482785228797445359949246658383554441815778022064700692158112188960653205503679861198175452341515379057602860061689959180270556859243145503432271622602476649252116263044737935965293666131598362148063145855345449130626215928594134370597183332981388987783250521909169128217383372443226766960600906763319261514427754679987897334223004478418170986981901042746572564955593479693126950808332977964471792511430099477569936220688536401537437024288676023583040902621644347549893384042635879661345331876584020028085870640610864608762457791095994589035058351751499798918654904628618574324642901879144973053725253779758509110972906001147064743634884649980605778165310440536563972046426778985353343130131194878001998712868760332927751743819067260060944921261762818983930268803495129916158937063287197597401564938714428959252213035596081983763929128074316944603827561205981730160819819440931925349551264571770988621857189823656883375277542276001342100680067620654253324827928934820205792459811236812689319707144050104286485486594357028342928056692011435392838090822990921047021103833930283283683887610916490192421472738508715423083314360983850663378008870950118794158772514454278032267738756098044707619453835241618560369004881307285265212237273200424536635779775226120380673934320673413474233471504359926323373660484516509635694325861906455113916355122391801189140417228793827520375918516428642040759409427833011371116636024064854504034263632734934382885896450367257495348836698589619788956461129627515249927953156189502605328624563710210823380221404065501379132540502409738737050358185339961565146369757487288131244664361736231171236677903179561587450343950168744162682778026806399213476338077620681970516993113504459667128887525719518843430359383636400989313929500418052337318404011864012707696810503493557045613585296667239140692080078377887895496462809233808835703805279555105656507397644793874787032106330867816827853956601128282660257985905715733336426108550382423512519244719141955543216481534565208811577820949766080986851490199875990099618667730093036493105760499894050838358842527436945386889955728180096852728115448842732017964814052598000943490343753874639309568119482494987621402658973713548156328321179004492765359095198388060798743318623647728804424677030207103643305184788284363562975365323119626547887181430515917850281897137965771532840327128470000267781973599166390774347708980580085547404316001094090360088750706038922142478545275759264159694626437692955340550967621872013916772061647328344218978770821213216191202606847491518857336637968237728986242310713516583023314647052149137956005736880735274201162755562459350094766866216636283306541867515976821532114332261308663133807894813826635522577251195683711703071765195170944686060145840945393881194879324806781116720839927111445788765847048959164349628499511926580347203804096156435023049856179303435050011787462817742579428993198717655987005997881520150910089139756206009109502998641167366502828586255950096310855331245405179904061345273581066603791619643619947463446344615651948665688296024207576235724321949073661286244232695452308389782095289714522165359802445091302756736572214442113030899708893287073114601036618764365551269782696296153073021895358714158094600820430571550978921076873781038047281088010994329058845850352012415109651364286331272382820875124741057910010039666063838185353352225965679567208331236354183722116863906570799961070234925638665030073716635465944260323690572511849046240091193781839501066119281592024920767117791346673615245718538725920647111876940366745535482917656901230922871218672587814504176784505252695049120329082909696616233770291548423013582053582435126183576109174533003080855463834195440293599601262033098911838732736068582202056935497774631856751524733436027191478457830219764428616615601967934440541254697852717537733073232083782338530910838430192246888509380363952364572722273048552226133320262329943106873129616126169390912171607940924649899086734438606512632795369830471191374153429003467690204080924650626635617496773682414868358212207061461699411880803422173983546599149361784702594403340067469962981564343018833435698170630564541937401067126787893008309901117400597159532959399614787835116151890843543016001633435825374996944625912458092438368225221224287124820222352067530256740679861477578735705914132297948431576507840637667296888304040239359333278178656788766745942813381966272971489707233678443762291737450073084735957025261440039277044020683101159930295741213476200829155607183404261080356254253704373763279828703537015136000072135179676693907060764173419456594476261207368648090687326986522048260535284577821686720716731073636561372736461519270729320223391968667873367778497660784466732009407140090122144766102469322537711271940557688480312293159401698788101206392729056694453781843669468820352708297989856365733912141296924593097725494424075675009235299773608575890530238945957944194776857750734779067144459023110999652538224341385124632236427082704935823222335186557658060594180129786963474316494937686910737056398846316902377632406176142563343369432992050834096722583032851201763414060322788756875032350699980105140243807625438022225022344036372615447341685184778527518288479181049078130981585024087524214013774541709887101606404202061257019055250839450344211278951020085824372252650063660242341314267658142813521904847180341913382068386658211408666802163727443519209841178501059506608159346469438208487482173289785263752661810140791294164059548929836304372148888552607388527231452467676352274419701185981261413584203868676683193854539057781226314496629562018736532126167059648213014447574454040041407329892158485502317149780479549921495701037745669469783954965556582928018790770288139431470531662434908763325417383444103843216762047127290895236251031845360693054269118725224738802083357615131575479512626024363633945401051056643496090852202444267256007469125526797251898542282492740846677632806121281864694403272284176355747703417018740922439628393303054356020370326121975825480819198122487667931064422980257035738109578986265038277444845459099920149655424162978113464107576382636085972448925826763492518114757687324392369019653412892437952315133598981144521021209019387808879113620474307909706424820772080871198663285262551619454966564896999138042610277860898076322307773214115790445001376591094232254731924069809640809172383051456515253327697541984458551827387069270215791854886998465280208223893373745913017938945033436548923657444161152307690971214286716130158914557366566782096721881651605803664407386056151527465320697463189388395429331668980522272578173774049916690120113561287463895361248507303482198503557121228969764958772037442163914929324803678405128327691228499673107523107545667511568978628343489920524281214129971168371327939981153537360889804454779888420407351540771253517947652410951473909064441594745159369948484081920913020001031451091774666016864251165877775050776132161824407217800105041599269465602030531319275820911799831773896484778788130198134734960665396446611042455050831854345256129532356332357452094571324564805745654525724608102426907897989900769959696368061540670362445886268564581513778724106370144031116571370269541626145813033208016934188547417779460834745253846781481191502674848701363278835611206166986483016698451109752288285276275424149101730905421764612795503764731804709299865661899450657013817230905047846655443558368250556719290369793195206212215468733529420061351123410939925919031748586763111828740732771260047244332915524913538682639499797537086073121169662011182720951007715479938416840557681414014068945448067592055436553806925318572411549711139003472643069412295239884532133818447428817862012699750781586063836194776344364928096416744481209542077360059614315852562626836822606691212099854430685017193269563799458394280256291267316213573621963598408890794447292776513602382378292063777563358468683614459637316981062861013490055705487735539633539124293704735984273155191681064101029765628504432690674243402925945984738267401661062871525139392535637272546147115900656234164972394775875656209510111013479246327817864638937454050288859175646834066814284053219820034510510886698250426755409904995466275288452260557425882363387443255935643221155593816707658643214744718331421839848392096931067255675040126194914833643358890071780837578910559304235670157446890935376616088140294771463630034687129546805175638463797167571936862260477621695937826289457325761097872126427694555024861686807917544839290761457242204888364208002316935803510892606247473551637587592148902732181405142075033346049680974034735623572770108926176214015893488805565379629792645762544223078604824663245620315727601419276385826470131381537809695785432826938153110350707313445191137997366670208514935440888253337052131219440272209584045618924087270530755801180852068024344205521916652366703589469515540064058382080871652168952382495486604100810995728139645530539543553422339057418620836116729323955279207953338456610546042277741960499315282902387928115813305248051121962648680009326805107713048655231296096993649028822944622298693776068968553949996932562170907036376141702709444914329869083631591116398492111079593442531297517956202982021995746904510775655331317817875656793853249757897631146121042850412968316335307540693041843656063079797242186101568558383816536461655002617534213430274777757638423719467324454507409979222852462421020385404811372873680181980755749230183532877832448777590380639002939334167632886269954459278873656936868233524722331880141182047152601510269474587187244484442600661188913063058680857968460194951583270030031175018659458597211252799631508675248344048457305256813977287070180391924536096406248479242183942107657815556489891984023802442426271279960430910320992679940965628359758011275485432740534352016029045929912484587276985444387300770515120356319415181418276071152534542976815238126144689815269457483821367692175811716500835106417763400934416125916540303915336202894730018853825194559684874259387860563427853119217960746311486549159685532236575254845673857291361916918862231291736886140826122613276679332621204465284934321931659824742277056492005728976512045188374556005147466783192825055439763530380704463357641877547082009956752227248379536927763935534065594396772725006607917094803716847632872596604111806232554333215553056613623552761165793854107457859662233068404619636383967882451763863643216448457195451371219598341556836645595319505899206939869704864684096631298761361596630331262007678722984733876871118050720337172844701106259929351349361380441919053820939626556320636502478366806209530721047363085782273639767018118921362745996850030652539902760943859864047596300912796320637788752962355447663624424463229777640747157288117105978342435992093911215304600747360596266745571025152572255602772384361087023531274323338861238868933107475685260664318892069209520524827674504530799475828315689557555904810631566519442686950245926706541229009267865354540675983758915062202440651103785721542677103099423054684763687288990173023560748795941883685254621776744924877786781056175348986765392335901923905603889997449045278000208174926547628853226758221653777271128526888929922016253210717891551688156837821630142820472073226939193070359914012356493517491625231184016749785600854642471473901651007413201406981328049076126010245388502474923834510398628149931222799275251486918122409092391960931616801017454301713721466404110781340417299611312806044928981165442363973365097381509342957097943938644218944640309662169446215662518381233346065174753837076391388597906061326960568086153656202045135212499551605112600555545653021973232082257298884047085776768672298850845931146307466913427360207963810519718992074777370915441531857229855464009572828148671028566907804299854838461859553471061756692430159634390540548999461081777366505213183438663845245921781992020478731338655969869772433366127791777537719946669178438770409971398980678386210542060876671746817745410868755336069654808540649259728995689847356003262534541634804893862026296619307558677727402004122397356189230167075616151141358327461355543120979999509671448016910354981431242508754678383401054396626854737179119665216860987137986411243369005986813573577211956378444050184357889923675222705944834601044225553657037320294944484106129947408866409214377765891195727414066571851379722947052922451144769289957950376095851183562739655261897017583105351631069382746464764116293402819092956000231652338199914638257234633800058659218831967011864531843743325859966571147832459299188178810646105866336876333364900682346819746543312715884029356207519507629192256585472239616741533094669655422439077162531059455419407842547321924435046891065310952703883655750565172598504673982782573472113266002232945634958642939586939734484831202632773022179434319155222692158619020981230573246744851514785459690304294369715808196257634032129271889133909513794539915320925680634388464520932037104317620004608480747811620858230372132414839558151346314949662283100326592131410026458770894978044876091152044416749918876722783779054516419086870081613323555864391498385705285731906458714114906538203243225020125223335031940796139227440660052810691893837487714593811044469329390724721651593986207408003237604216696185197568302821285866696184792037813728961385301704969980130892674697238870633548413965391488148171005250796828672552994087008580877153759038564524427409820912357673302167922203572582887560426863760624824463173275961548248186445842322116183496796806242603779106597642315229893880407444550196676827574782368661762218374862831262788730123325555222048877575555553947127627953688604632021607598225372240000446961258546363835397209591355427166997094875526668136526599932613344945798178399478361967542437105047650339431208875965593665062261493381640383343569986963070808348781524862913726712319488414524762700110392146458325462550014964845385528672491840070231043867377646763706424353523780229738752558197897766601249591696050471133296819719662438687428151570427763745375264242532139204272705373553368758296112301598692707661658578075718772449665262864004320465810441665716409457045894516555484424771747774682581162838651358587343885015590819851979421841353114024012380898152205134153067033805343435392579357739378358798418091826802362120329527504753457862723230571703306388933341792508047477442049646063114813298832047436325829844243772882933460989721655185083679192261147361187462708360862217715103941430893563674335928612692946833385441652789016889307479797459780421070913930222697539138064816650199282831241274276402591344195166409470147750744061394329775100496421024247086374741087580246346128063133974739662485021812725571962756499274214894364341600081739249798736798880514184773781730941537794960842130077321036853755207975544884122766994731104551892204075159245701510781051072424470404261321011380827313593484854477281963418794928317587278159783512017673358258849302805846741552947038496348298949096851529184756694450995385683063625525379483638453586441653949466665706470177186548304499222243766747932113761969386122886095722228748141531015337902734939347560426041262605111969441521743999698365026721944129695727439128277749273230703585986304018899729214734157803728851271241696528196792998754667225724939707454071837142467341038420457959283091128753039507634884383956989808941737940732201528350844024125286608189422390104914818855495415796793016064182541649658492472642103867170720585227396759370763173693121341359740336107940093226607529707525110561962795270046457587473129983716686189701451175022983235116845535460073537196973234062309098102986422541997031279806160755707437455424074093312953815926581511602082424226339727830450106371945307650853378738731244242568113086062713371796384286909656175621242506139070889927797816052122067976244499930698585589181634502962585630683060555383543981941780943644342948575042295982750508055316389699299768363453260137902937352069169111388723022767236967771826133365418604183282458977913760551467280867013752564663636085271686875812143800568123339683269824067722608564353398280056756451714776974186943148689887436824757335689702676171052608005675882463749942427532433629185013774713285279703793533399655306201210432278517650879833086890511014724769374124351146760213014377763180899714566703810630768623326847304408441205354244559165254993026959881885649132966462216172537259288827464377360950053146256315516920270922743396602821568103070578028991888490214718380794733484959592977380227380474381988330896068785982140798562666971637427486624554355647899913414383161317785719562320926087956387416558989578306710607738368297744422332385635922094286670183218392862811731850404981366004486382898316859457168879497493995832617119497198343740023467370281528251232737327683142553241956248348740868665102213905140796383409447438919506944856391790565580934263483061897006871426570292411217774510134472310295315481092889869874964639560911688610106507832743575546437145379507514307156118646124029219343983798689134216161330354145947685919691160417958813696929848080082497713102611372090044692271338711210300198182328401986852018700882421127315231223075647488097665941006011712121563756393144803500878841901826151864787670873835797831406458917817054653964915969331591980765177655701329306618311280275813527512541088851566942747409098125551978873465184686712300763882534324874657842801853336292858621207712660235954923481568268567766082214252346122158853197753429468774053370336130328652031502889469124267841573944289335994448713951869360698863704353994003711112407181786899814101218533349630740527724606836101213830383502911582730330862654246303918299534611782058634283554090490963697588025348149779238027278492715348306415113294539731956756884946639524157988069466511773903512837677938919887463160157805945915537292024069567641285681250511242732963762355042900117951362424837221023508364097720495064030478658222735008384941836099337582788554151222592808604652649868555046145538204531945057730049089053535346996922875775058769492087545777791422847572401976914492997056570632657351889118656230113631093671315722977532458196833359043522049500876863960173325227424396327748511835716703495254691338644592662881560953287472434576597503344362050971960510236234197351347267434287034745132834791124359113593855612465347012311791132289117655125463852360031246669647698704497970195588830525818259196569050090336314085006664720724287835993325365924499788445881577813439354120914827826054106567251111097117782883240218479999614252366115285316164130316855823002231339438944254435736566744642618227923257946787224621335724410823875900928782726509769767070405723310069893042495180243900192102259355363520657781695419250398972945693224965329754504220534036834508582078657727295367671079725972652106641141444054069244832826106818630121989225192634668419419933970225004104346524955666940744112264992774529497110766347452044772201409565347956868116663951921021694609929894730516423423987245927950896316042315674950099762845512906822403076231572180828771492702127160156771235011306352946542778620025855386500747635190511339848665107285821766879012698562129727588582983722444882302621345019944161273688965959303363686067165486428881778432773283453206128191791775184661356403901135954701423648620883796279494531728603673018256610461112115368714185279552794365089506849886901185159698658330331546821486778357080151644862438585865965171335946422112892414263776150200811562000174008076530087836470836900141485294831383872574737102623225082027023089758688415678888667552296552252540295900655835255003832337603682604788262492003206558459078875843063678359469796280745419989015761084624770912817625581518600194683928290336928291320611227570447846629854941022190514715606989099919101825204136050555850773850292656699165192554848430962380695709006772722856644510715353674627493994234701656874566697602793436635879534523742791439728443988098716574834993938767102606827483817578119963050004563427605464673407111793859854495970086327389496049023490133511677683438549257254862223907464116851349913336344060321402413897824891797838448844204510002150370976173997524771048696938059818575772777622330731689652843957647883505871784335442548982435488826765790508752818126541030093669694712038615093259703754921454173569259165519374654243398218155369803163922724941187669084574018352391823593041414244077421009120668361051088209386201918934367845339375749185547027376957764952873163055097994619805388223721442155868547758052285776900113486473917839263267345010071069472118359168747149396269346081181766580166865111381779487362417505665909683645529694142769808301315032853268776769178403318372853336507723434737630138418852355524243468021444335029570908384156892676033525465769777002888628118322707536171894210084040251493988182179201105810296546148543521550039729180884449887834314076965737907558021366938937235097507342993933059168029921576264577564213339910357371723602569046791143222958497672610269606963450843020394995458846498469115582401891914973627285304183641475288196079135233017654611560546402918712583727552747783061509461733892685779157512298420801790843490980309706223888961238911748724812121361876548950419803181540833122203735661371584524577133599491303140365823883528645996171654292246483296481523537405514836053708691998310163876755782920778545919651248062732163245506953857466507728642038662296463627088856503699850018805057804752645624493837409962807435458270155107199716456403679118038148164129516093728023675262737223164955779256701459174784734939194219705319150319656650850172735231596427918385531026931842720131334148462515771562227619627908500417887529076135152499513671659323277439765879553607800576806830891074080330041989426306484053728427862968773211602868267537177933219662970747247449687946029217481319325419245876401516143643494957837331410855205342720565651114311440987151329318649473786950202127244202304026705618541834452201998369017160225044153586389452817503042678808760817794886929240183404957372676045623139874905279871585785440640597366139182278822007970610910238442968566124298557804370772908058344898857331494151245506522974565711978865385174563531678269293528151714922625241256536229396780277490245208761037425690968685818366256074985301190326395352508696383527035102365962256688418643449177845431245549001201392272112887009942445020789768714211597853155596812034986451011938346493305698712146621208109918081660895905638861665776636702980745016024064024518549606536686021981454626093716082511924127761090612824902141510985504606600912220509749899424517736647934494573014607253211286058641111418504715218322933233228336832390490822502757146004584381513266376580783537119601117734653650258780792003643156910452960767304895477195690095422428058256335716400335469774266953043021413517501783370597870604497118336816110476646549985912420751406251562735515976613780481737054520573229076107015701370116216876874878266726912734338793229524526534849015978659149519099485341064782631363689637408700374496218862100246415217192415009234081269451770809745162360834157778169935148173782453770567436145882830603794433824467022579124931215095434536305564068733721559695507418369770649223208235661121721159463496570350282099787307426276987533440431682951654787527115866276362513771409970416273592975191784205219683416675120246064059722095210313687852023877327340305885636428642269715087390769769488373445529542533198356222642498818755818382320116610393322370392891531551186158027596387844531678294774487813162571869418013177539475949438359124932137120541212628229980389717499465068348292313512435187627216422011588521442962350627007245771243807840640711297604659903141678305399120915997960326329465229754751251823942927597222620385200751354510241079294460670156355489043003598774718959291741589399252547877101680276220668517961312920942881692189040303270161299660675802894294347992732135949779146308138090141742229532524438086283351912410604755576305083146659315513497088265181091151254279285275598459727753756846713391195740586621249043866478179802769578679009710855359663336627405248971798709446841846777238153722703857499320061989608999738540868086526096383820391708609424582630558886361474516866773849253668199513768679062651143820671552186500317033279891333679537164654381358737141492589263542949033591981366913412302947165115268916810567946751012123587873523510716395301106208572720084089919407246193544449952142382254254244615268914186288501639266460192662037166908430010243312369175462050601766041913263817198900303030618117333268063728226198445470006315856830394543469223470066090834886927867478032503708821063897895806301966296262556222830824235452371230517275302119379042355529477970875951797780786486316796894711131854243566503934409242053095215413590187866643186170945130663753076875418921618989736871687421402655268207402778701692679515424503424730440563707278364986422865370759865695934378941386941797794257926073646538372124678705150598346165913567819759727525440926997056590426062631393151401576396996168582864807094786630279026468518010878459798279657148235594732259423662955883222186862485317731672817380355999625474599368436592095264732753955025139672289043472459612540833832381060903189465609043022569417221277873209429945326845943779466511668442388120943709239593290620219526993306553829171205629283589792658212445909196322154761058019696334958872763478036751322529317612370708971035414794673730171908606985786144171852351922787296535419483248048721162619901596490917377138599144094333869707693175831330569173948346393301369619456693550030628299010018367866627054526401160766137681381909361120652588080727803646222072880417120813251032969061101512386711679642371660765209115906560084936440472976001380195949944834690168875158931339461304014391519614899873300524639701824387130845484988141332113846171645781815813782845776371324648926464552314953940019240283291870279373722092403438427056967373248078861442487580891762334809225330326132581390978516480913820213418403554238501781937586202258380852612378614256833648671498710337657402098532189622382362083885182703061726562081259719987933808990553892843820253469818674899228775375478991524204517707294762457181631287562909883727236506980111665122043783077678190127878198070127697301323251370941246110629552124802252289787760147211642939964953986744709333862322143080788353623981863228990994929582017302083278516034830291049573431488127466289237836547173896104176777185676101873959164441207898268385064054364763353854274762760534489261136756623559991674135215481767984488420486291339093750899585889270919839145657772659283265634768182700338231668854428319800831292889536333970095667031633537546517282188019108049369228061431000653627567007180526031076393323525390561663861345826778963008922469822019357281039252743618302404481926623014907983330412941466327315917951444729989648801747502005303870017794046984817135304109418200152329283280473894286175657812843126867741096378209597871435919817352065284035280033671242953294156042453527905462257730118284190813059620474381507923972273425532938316924483306177439933739547589763155480727846603632987319014009571548374481596212002698698963365959722738839096659785740196257332752575732327783872367644925263270945486381195857666558810081457713176547072903556388755962777419574846492878756343039285576814060780728045736040912511675507382136194689138686293239037335251434083859171267374678977589301791211008920148268127980995862805025134962126644736168477413531811890353417136703208561316805911916095540993843834893766495126684716369667372266534321385358437143001067255760926790786474343280450477026570665766785013851855297182106891980862339827310711116058175420190902110866687289829324590716123121573863264047644168896344675603498582777047999046719041188478231779316639496160133271574359048223695915417038576883974061336298804206320005276427438596806219543610142569692526751338497817199732392704587460590568826393528835039895866095287127003616546246361716326356534376602097576275568554772893002968620757981947412363628852572641377353858598449521178894876290753990016417549577756379146210267525055781454263969326093900673135264459791153812267967291760850422690379629310449996955440761864601581861562966298365207028175280697853598837853500801762488853826569606501733831620490144962676975849510143810993551656309932111517638382553015656356980982555458392163514469495974999144860790148285759249625277953335947929438117181832819612260990742055594703037565335887318400218040095944869329585231065985975542118349358432029564243311133842739020932419466139837161025591119067413470438647974372664895926313231429549170671339966295051122371159852719636360859910235069447543219860565629045727978514598215564072943805065736415752532063881907020838633306441740614987053598844193641219115408822304525920394965291943006388469202385138106190101511231192837862833658258509529956068865262331040316064862516993931097648584191720765032497567506551481399858053693026503094180748136440994198100149746231999764192825692737340018883486411575939644140052189490850748225377080430519077266753082945962491883408498334867067974656579691873817024848618194689388584333604185839612035128614593913053878266249359125585239477741260698171902139059044640982386149117760897073386814770647539300830746007624974260933280032587642596713682435417870060599676018355102579996957389518631263237668476232412673042521548257615457821811941348913032045418690573216764113201009181790042789982466099419021361213389974718906653743850278860102246405418588160445135846799329304079112098122939762733984707362084984272930144737573924409647991944235215440201433681077622367805607518495757468140108810743851312867421699680000591079869055851970854030282818856039319392737702085931030593552528379622497630705156526695584033002309245573014487946964081617214380071431404342097503153606817649697443841153440700744944825425798614293740948225188303737881251779223371021309627820492414350774495070270030459302166427165461139981606587829120889845547723897821687555047903811980115428833902334714896382414993750328593730649713979390688642977512270442147121931826611703043827945083676015816473059591161914256142750321242108983806973427088726372007885073791105973700330513842277568153476978326770984213967511393051184960400513358762443596068270121698415861701539309889851266094906479762764914075262360938787711511639596150930644282151761240016624398049517417513813510253722613082234174795696494168286662113538900650366142874860673600544752058295997802778128672388275430222656052195403059052872284377898127693847525748150001269250047660759875122478899004628458680127957021776978156232819490420871913699564975661198433383182272340042450298461948966892946478324952681987434870207649252730784363393500895525773236916128932114223380251643971686292150745061140287103870353197959539526107945333448977777515051194084107754066280538299712924108930928267561697036606193149235039116295480249656353239198849336477571095617004497522861383525731279141148301592936256229050786793827305257572723246475940418019015443946175849166331204378570243966395900716595539112130646394108245141076604639532804261865759150789271605075054820389787466451454439770679366282053264834180719480600205072550421285191493125316073272460810301905728586929912761951460903334322500896844478175926415715391233311550622435351990198055640302698026980300479979359765098326902097852574191981750824358647566402850285654885776028000837346421716549739666203437139445886795130778041596847078228374920826192729301020066828460292339222686598754398362323747792638152845698326696602721571000803926108506663932613101684186278808099641880751960159969637595513117223054778594963522070768944159023362405574255269417683221035665432319643152291519470075694709830609636159680936091590389883222090679815529863943216285970470505669920874034816303908379371950073743992728375831924071989597902763027859496427118436014084954867025944104360502737950879631602033030652022171813576696584428373246033569218368379135118491073570788623817024512360675354690560023726330523191997811053423266504045087400103562461836038740420018331085186825779965030360776746252501205797341044889898423841988265728619307777763113615358676439147527353493106342121253832167776151349456900478597289404193642164769843601170710049521943924920374388674820845933702751898584690267391095977908748448953514262969302052840441993962319080670404646330341114717406896608603399488678453470069309560876276799394024461983094737750729236785362048420450749377153352190553546828793123555934208090824668148140810999596461907183701284024605290724839989176182391206086461811694106853963761356884352412363384033231150247619133931205735501386400671126702279585927415859983292406781092567747155948703053641304818046927042640515273326784514054559088928513594467487507995466902456980846865009381153566823596583686922185830905840429047631918714338912614393654196132004989145139755377294467087180068029429824911642265854751791580940527800438623890279054389359341857663906665711149729529195838849426694338236895479595069585564321659012312017622865713919882892942591902309043284020238439656513992097371507791189767846960711848225544866824286539228523678137074085792321750693461994081282939684995882400699062666877139531791438228787740305456494007917097988521543772458069255597887350249332424122324863300114760040851490836328490321354785498761773490451192908308544613550744004890538015276322069447102835893269167048643654504270051432322962371629220558111699281525901857792496131939574273989644301628782394990425660605538402062123379738194875108959648310774616932572644234809460925682095159720351109135831542421260397940591764897004015926913639189118761673111360224093445682545980586283055423157768244670296734548818988562682392894800437226174698254462975819377106060973384465531190712797179776320144434323482808002833756431643744324300155283288735870683745065352202831893089154051843113351238270042718106499084303722957850531666231362056628815927068186781218679128869755487907259270092362211890393916637339303845735709100988413579263200240827044075678260888197793872320967719632000248354481801378548936141413039433266824526982276761855567649401701630032885064610742149202004214799792333928976454428583847512687050814040426682047763037128529956558902101585094813363341776524563336455514078438915426406291692930161780223221271357068099794276673049964825448951383798886932132190092307141988503735382364324610640562574323745123316667164465981273306699621576059763471383580194830967017090482342257907352060612511470332567512804713295740301898061065178526357086548290854501228726997365305210488278592857427810505173297916644394624450219637996048063640361337456432446766654294302550822259596408576079046004005618731248011137127732209838902980059382808516781283615133041089393757584166140273502888141470554239507777779890618721378589362937172246257913189056383224230657216652408814629293382793361834197298174974388573431209141461425917433415157459737370359935441840297139003438524608060606854969563426531477215756901974176362729430692386453444429943680240864579543527728963560961750344637656223649625193526706386011480334421905580135298404012967945107105348967128518382768688610122211506948512910365669546298453550095572007737709365853428126314737481279968028599930151272809376709458194443016328887550286992153477701317784476383775828677613336179877286662255885742927608574670968515880791407736184812331627921194394342283897475427630513804212512957970328829828122171123836275525103664670703417889140112332023141236102757816417825421051623770354733288510724456665203601797822579532815804203721449331458216650689657166345617608570313806157538178202284031935958783974128203085866614956897315933475780733956661390609090245800589814591083295529277135619514202469257227658610434430260685020943828239896965434672397114510993815789564607454161674745278640110201108230089622161029791759984098531670797659544011791369051144188998029331715492008109844450882144972874102002258554099096232263073639213008115410378945929531207695267677355360136552385539235314502906895500119918406408515382133807162122759951725579519690372282324346649856570187520042002413161979830811519989902268307573339170826479677066146784479774938022122560901318084098582443769206005491631966174726265251046822149877922597143659916486003199405132519428475057342333945459243725956602767089821149047711673751910323401673805182690678975184863594760229516010145144927322322036241496115767240831221681436041363950293252964796669952052159746159360578185850213200829608573158071204259168224936812940980250371063203268272651430301550338300117583775103460880486724175587148326749668666275052588842527607778728277715563140522709388524141555751031386244736839624819908105153099877346488206945242226193135158216207291017765309020290566827832907482079851276218687479912153564667562677024346898359369226523029585812164199023567803443843540617736956353133098505936796943870346803734292352534349341016476243312991702683484778467549345653044888970857517092177975025555381495194913198111823574477668531880666605373598368756218972668404819677734978908864579593535174906573157013500550607784221480134271952037245557823540218500935796230115505248410694108523021459430977373342505009943317026028156451221809034457369675783551925382675976781735079333377730451963422043473393604644404325571651201589802588060188722525677825584367592206405348062714580292318958653481769112679885035352719980786340361760486817438813934837908681326489816238731341450080698401520789079674183802828158167810518061348873376314142737505952200570123172297984297184414248990811786388670278597846038324259967356667908032126091180829732537046509115658275619148065386541586354454727658320424434362274523691807247076580463539779693351275415610991715528057253076689285538384953074727943166236081643418233125228340657344109545812938986043329384672427162061259094127471987182206182478021811593979366522627818824239014657132817027447181324898366894438150285130813319466007726847226618721520378838255307893733681067274893411537785859645042901591692449032098830232044760983087248255334521577430651560631981538352860446556564364560131453261831974719916793286227563095373656347189384892989463347347054331618034698136128874571195047359361473993816515739136357562834447889827921238478369649949445289573535905887328586131564421438966125614006391409413686996795910127244276508126665930813008944219009195546924517399516301011668447109714446249751405878448917706544832561234656711128125922759324585058022443156757610622173927025605533915438104382701844931238583237319864696017529589194666880866434300680546915296289738778380669667593983768817378216182831359920471566248912481020301923799066698130367203032734037251424488534440796026570782449700065777327699050241553291753240319284710736865987039902044915852061970555243186803436521675942021896998605460558921649444873258743331276254100553137315564506652434740338667171954103166220110847176198403664772492566936355488647546217097636801792091683978745289576137613454751172806290741812170007866520877625979367558618138757612606344049660058486483060454079740305989935326542852760254754969589442497752397484497669805375457894661416991786753161361055728678307849996103054479119949260513002579601826839279855849282065472461618590921724147506638714273253072315798486019444463785622671721563964735669602564681592917925068919281326567972035643815218451480627034721966751755068079304539652255225735404409888618738831912415454456943502185717146303538040537674966526438838408066164385278217675498976937229532156669690278764377716079866527486436473215389097812378382664234515480278257374880807505690279541873391423349099410697183962570854989014305025237476769127456981839512976892901885860936932108457537428319103173788016106645793240225749271439002555054150811274400566994340509220894190092206317647994429846902514806817164211325470187478633722199654392518672597222864375273909880158576496866473518819069332449249729609695379345986781623558069650622147002392930141669845147839786826891006597656844840584825745500523529051868214854831558135049916213617081566444689237435265702272875175673729245040468918585413531982477946084194094973336097927821239586120497523090966307667162734126970968716751117211198430884331836301985243246042756397136919858051495915141731676769220908829681257645493343353519107052486984416539597559937333920359624725715168184840584154489908723794120592291541656710816420025584858530611549160423422500981037651584050882525455887248902760909509661682151518525077033254033583635843940112374762094596097528160346649910982432234372841134505309319790696464942031553295714250541980407694550716552104936800716698539459268115551145844714005893823724232282249984388509479763627944569009544222309190604630468378830286156232804420136860663842321907459390057144209861773940522457008113121177088711764671005046193341112990777052144000063185179794895343546851942644197927702832014608191399152558274425588800332874677477369400566334253113011813447057541863803090623019642533867089361386087959169192763632567255560331787277392934730949346005252873420523147397264266655926556956722532164801640841360637325438279819582124064078209456699838633803069628073680610938099993059907498242988766603247252582364156073313816869218849067041059743389702763694467531136125223743114890055784405674697429989243510644038434091840952864225882236655431605996324174642067892949685823219409792707208398069581893221683713685371852221517472408284099496848989777935093644380927488837769317974581692418435194190593310979031605905296051436093546091548265373390421144332694366510468830954518101300946663248608506231401529095508947197677268476925608871569400807003322680436177153833366951160411627189355230864701015710202098931037629304252913624327699726189306277360730252711227050727996499275942991089836069851663304814763254712700130110982997995529786765734702007670920848374739100132651774716681134371080645517583460614664268435604179194591663909538463934456247877417183386058389624134985935350766344837678394294599782417844168787927372671799820141257772076635152295322644461425707026277571011320355618941452435382971716232939921710447399425026543253291646677736747060454490911628872100367689661716589528865748999575612340173686275238282241993092811920760644722400110021415798629200903927088074515390429401153055951820535363651866017670591238747656933512597681266670756093467107899038344359720743033833383996356979977350620258913175533625412190047634067034474426743449514992844466857077506738598227483372166898088592631074081312107613325654301684203074047791150459614938073853230659554693259753817439526143936188276657852882592541794798958322735892790874184666500461874127876100369923126327553340454371543603381368846103218126809631150192903236008680860277059570615563776594418220711050173936241214100728029893969306013235809843139165104962617598158217038044987969623971506404566219270297102032397294067914789268304644387667499029962201436499497294646661921505535246317446560513246583287464588798090736693197848576857267043844162892366830941983946743399595529565903745589276764230957554601653529479485201071558720558500844955170971197925786076551886548564516291162959890268860325886755087854891625328942442442491100903509619662011027373194459304269793675572912667556303851671791756265456375361886987905356039957431953991440888656153828520022195029312151877140082618200321775402504494113537902918302708192399133363769292753852346413970198062464032857284245896547573361942680645583044299476924011118418430679742965557741070640959760771426999132842130620126131496629543049757272031067398661056730824463015390397692048243927649725822158633066587430603290634886147694172156925445065194660306728151684406125021131609812521964826489874433219774257828169044739407787531303531841241246994659613564706165959901847249898757198275760996136492841431738120713523500775775072040483874728389746248055569258339569250763565102400157177962933998572573616999195433085073724198650442339116211065473620195429628458485603983903340268150671708032150607611672112167548337745346949949110877727487489336997761037713135423258340350855175864576260878168810388239167675866314632451908538237536501200990364028491994464362665154803241532624513292874082041046224923117509730022784905636453772704046530745766551416330049864238423514173303865590145751826665269342416458673224517268740611256094550377527775410592611344176728647898139395631505187682987069621314853819435906834805871379967845033118756152349684014050620241887377310348406893408188590029030489972869436969679282123878636993564999187532020172830223493934958483268164615360784021636592348588492811651991690549391447561480023366198246976434438962946980883194226431129743198540305071125005989352437902309207931382301226177399819917989531803326708422766534059684772247233991652209899309076064333143904806388760636095329062296924245624037129098618581021201955777589421933440433987523484212274400255650977930726940615945910642700615378903207097485772858194774642750784043264285125830185045895589637093810565204316672158296323112123776693764980944130958255875699324118002032011079872976861359555594715958687750710961125044735815052914971541273706164349887296511572160508705450975181441076864163925203825269061088891605052847733526946731050720102852177600708365022655011212903167673141930285791168263230937973048629851636252501877195656620406377469657165681940616792265937772274328799875348930738426539218857320843233508395518605912794512343216060929658507913783125536029272971708830673935304697421246709079619342032995936613271316964807420247047044231010293689459004431690978073367209684113967611319657681812889719760002037449500858095313199287242344833025536747389220480694734717202271711683554244066292953405295970217637116184174354440015746342618681993369335862830859368206396955819971754944785285891397876319791435949445153600024477474530242225608178142990709107734014861482337806779352726299287923597101696557406795834453880338623493011260867619060947309690981666172576866964946948997054273733720572950574483935096975128470004759483974279990995829964024403418250292270060916488497520846241733153797678838030315922831828333524554113881083377849035952587603728447858263583845852399732610731175339381391477836972795878460767000074298140342668192435366766338090372473323940905239938348909031255881472493306858888523414793409391505656054046547774587673215106990931165236083687890970646229320561774342126461826629104861818269504469009214963983397459399355197146971483975086481475050203483292372444710387025669630283997635741198679869259270696692735864185745429859427048976176329910296260065823399972517488608645131926046800907199143410822588565598059501303297239839463906962557960554113608779860068247251380711697068706816696909212683311733143354771822902285604394923796086678388140211957174819100629074598310057097994394097928724893047260975712549150999538402770004507160533326115694967707191517177036003481670204433370213472434896325534685849732932380706289485746866077023772512016147203196574197314434820230959809480002594585867904957866428360858946037719060296019271869285753836204242053550401760911167866165927905577549931414200031574289868781351884957530448298577274591943574589004970942215128259884371489014039283381115728039747800471637850146080220730137436633640027684707022936005259054127392035406622958900092148494387481007490511968098520836019515140951811877092340185053933788825267761469744026087352904230597784786645920192442998588976338859718285005580733875372286426394335378312851338202839304737888366978049335354102473596137536977802955002580617500406519473470928357539355140761578116616167942507040877704212362237448119441617756206869236049263202245833582629671800140901803885433480200845792221197123215413988627612715841457288296885794252860389505247544570429053882013807583724677131598272632880480955807482080997194805091775125057314639819158765570290903888404922773450245079048934274664312985803274880325044658267507140114776858066751793008585931394674722700770040777272302827266360832637342569735458438856264275666866573797954904971288699631380798504237389705216311527388990103688053748727887748217137019674897153927966419768526356364294779460090685318310935120556374334014045379181375249943812073663088413086888243646969397142812034199111271676986220412578677059695608532829765299427468767194419470060352450363297350086701335879060817551819569382690797663870173433715080613753051115205667625177807461439824338789992678457373319120706952157797289992722443303669268677749008113392286289385609085852945490189196890963413031212257637348027462424613034198044216491229330862513034095888676364533681249460248634213797660740243381718161084262396612362377593365726861632989678187716205890838361354400187227213128187779578021690254528321811606260070082760208281106590251116805046375606119123748699884866691971923863654938778376210844354661790021893445898632396521112480027037239985130095819929136233710665105375775542060397851691777609317593499833028600154179673576868133378463460127822382641388422003603507766419477356178207162913159467444811172500719966456564200658938630663025783217570529625338798687905115618550205159267818007084207205678794303300177265513883475490926985170866065616713199032493599577937555753653067873518925372841438558617867366847038686801130746277928093266056714631394573173119101668658571762649983820664409530856981390901219258735641296499936710688875640770010844745229934048019658626297608317118673264138307114868160044886135732672721451238013694795088475261013620654820748654065801549879966371102746499137172498884970375689812570806194596248734207830636239636255939664856809925045405919706059006624850980204844112671151032335653754546971488077590717277554756156997705394871983931390968232458004840582205618353751423140276316897703893371429580585158931843349968727028645937794138739204763313387382660434332650168552004357732570908150362238085439974250492109336032128535562373390438535341810558565176552509811605343622194040204833998384156417954353097618022730679781851491943256128513810974004843668151696823393345701375154779812973591532416754584402530485642043157677498245857307759820395794028746573121706757947633849869145721477674998009805249180358999171128078827575013311842782961566473146409250537135276834140812088873192578593142946881003870657977752540591912505542902949231002328696878485347438571581023553526390810796741029538128738723166764128065578137787749168513770421290000452200864510440106346469584880600708882374718438038533297396772763536978529789783059841594681244781125759684789446480955142717549696301749917497210306323520877796117638657090378539244396680630274801990867248879447400959962647440423094879413261163114034883230220324205607999815757714164526075315151702815807183209727203281260232681874513882420522340914721367153814347913512224860012286335126006453856782564776337054209029356255169992924468794746024350796714211547901419693355519228084179944278911741120751254690744531976755341530027030163626605770652026059857655134723771940303799365048351257951748072984497576332136570671561559786765053964887194765301074031200568407890542537154501092893699763437481859458276203162576170442616400365286787993994498430587044978633150941229676101369527430893028059461437837292521109826794647217307411417333927122106531647646396205474338567369805787783197412151914652882318641931439930633471060700284568547654854036238308371300636172399790256329291200649563181533675543208162153966018885619088546148453132753142090833732645538746454988108570178595204465386084606853416540681016632463954333033022059125520166134610661141067202716843847742837056850760928167547609813305906750558908352182902169585798511206251317078058659393042963096985509162880407792946892957712628211073704523568271642256267084211354295398012669432967149815008765111425075395434451341431677881145012859910965411454358210282835144953152620790012466217930657897951832192058974162620667661960992548826918183103488615502131350828006512453562540250278724729021097969962312433211537536798826333461898702082149600705537855873690396676135926206484924780368814599331571355031737392733561851632803219739756109831909695208078791026612505582898199749537067094281034259555828908819166350241581003522627183975123102826710446487242595575260202535254710812001929887610092011905379968568664486888653244096214436367691168893314101049674758740834982808648641922182636085235441112076676221923674031877627355109018308317842523214121507504554124856497937313348876391462067473585155161926561154327314117342459584773636489142723669085372552411569507614503923458579966576145832024951912209858094574968894415981084133546138639283197930390959189939336315318819138144851232260236666792449131605191076266316992664659168495838047603768273752895981188472629841651193332922927178894533972603046759671856106561852750429666308237397530121426703849290473186945374645405529150941700687351249025949983698566566109176988846410193222755699459104232770605657084630736924939339897655280147671801358541828488971359848437828691674168325811378934145555365423920896096019218940864359893977238438242511197996184850784161250510790030593648319244372418724768652062439884855477919035226010135525615330076980049046156220892716393295129331073996359638564721686808256807615630408995930950118077470125266878503904346671753887550703570203443064378095447410385713784386786849922414404032258449716037328940425218500657922950024378043572896289591133325981956089031162037072619516647248655141671315100245456791394772555609209446232190772445372518618940103062805840026604274992697174448893074104380605877998462891665395281258440412583532771478241314557762803617963079743252497284105100065358807717011094397408534206044980061702877476962311413635610275153180649288485413025600396974027629283393180918040869401204685805078157049073541138906473825544287626671187701199847669476968975618415152975790646602621579680279052183160536360142838147653886174836436654089574210929141238692137740589816188183128361568677310644673128972713293309064250015669717457975984169790576143210971895846873674543133224914743216338978848600118663859001036539463980061204151678930349453207495230227199927675051817809616395324811172116611465035492007090958239131973083880329706487899808301717112340233978050843475538259459182174848792289640934423139190630474552662581552357584262060068633541006513913062557214590031581113887925245280187214475011704840228275288673658013996911195986237509354762879689636766979832441383942344137800366742214210265761915527284057458886434770034662175521613347698883622613488887739629809189372613366066143670305472243383854882684193048440148876318635886480872111326079368217457383784865760312778606356624827248787768566739688566803278211998588804806230161175316287811716197922974778442566976893714450678894164200443271308516276097860373325090087269615240883646926196402869169302262199366194260917323610338934915216976914710397482539530118559126136326999699992295708730129464248013886626263545000315251519814575109690828922349016818035152725452645024783415037060772025809745235311889997094096549456540098806202995064657184831859822590715359315596670756842800381056397169132014796458446314046120270079479361865913462192673313627997151056500272353014881514201002712474174440378465047781572450209039805463472243733975655301701976544048481281017221590313376688437784026591087078371864135333966197217277389904083357155023341997933658962069338175987729276562680569337321919977372446097731522552159204537798668242055840822728041436867557771913582960979994698846017875687542142975929222287015519076538807844736531824634900231372746016363799849299470138640529141129192024000850842581234068036194789389612480243783430243309691805408584731731024307360273066827546324492140553492021679727943802929457562387216938190708994828847703371781189300051489927587732515470130536137509504564369005686693017604960112481502244116369227719972544944919949231283360352901764117442934537428384487493243669512078016625157584674520725890767701986805285182048236296917174158727430988007477699724186662292974480845499602970126279044919936209227247597148199000812746973558925964538066084072868038373823303757154773231077740729439473361282026387534778478655483843522113608269677210425655006964036533316948473476203918244775191747236472299558331531951298152716128862899407306826567131120085387197774216772989764991161704187337533496089787145652802865400725598719415927974879471601516312565003963822029910405675924951227544672691476525419534370336914909745819047631410268344082564452096573476641928165111837249022748444786403768689796669886883105638457662943854476886295748715190489476849881907418962722298111134468262662238400114438998280856308856672661166595673645826460234117156615915996131111796280369241148886552526420411014902181518520935336932442498882150221950765403953925558586925709356473711210913581885920427833209763577192229321179752861179005930893627070435587283701481759810617388063854810704131775291410619851714049031843288765495298432725724397373896758108437425973036910318917169965964259772246617281758067191278815299030780889212407730242148644634765929650213175700742111355845250228144543419013752882934237586200826048019294581601875030022519332726941339543498466926400894780061420254637139348455700058396225584727699075368991071078472643275756707937120407587223989314192445218662610609279376381149772303104211615305881312631384464335355891816617851010201590623600460768525988581421741807730237553169373699483522649213648083796027116439537665679305852411603060603408526448905729415591888899433565664952920999431269151283706266343292086525576972789848511271905287404969637446884386886427110152140445889164139989287190900735915309488872494774809194142636256679802348442418374198439694752311534704784781169877505128645933947480780550944881668336424879144399237089531898416958123366389859146716417887509301382052377134870672831935981290653978885813883719505706979122432994120787039271339142561416409992610143725645827806979470451004531798796204554176776117971711006460365640938557119040881620919068805091549476090306118057815715338697268006783315176172860856976771418859405491007111737302067600850524696910101100080208240037701970386371821264516532499726941043139511701227347191172104219541658956805207333188062332455327059211389926670288250542769861358965570854697121844154917793138848214959240373541164345415513731844406982260298420629649621959022195006662308354451605077521647186557904779604398017875604737472117552491352705865624664801593082276554392562191045396587510353319698366783765401836502495765280502588830145292703095904961319497867366483177641020231009790638604750943304157056698679367721597253672487878193244922681249658186845153077998934189114075058370713864019236523368811462693125509673166024111798706291008896457713666149802488861927123449769425097596857459530428905898704440462179829000056148251807490260042441027435941155689185814217506158094586851203661589030637598151638181796625055112345797682058828556703879137399875889627955182932007869664042861335757461067318132693470133253641605606461538811649489998295090349098924731079001793650686003973196025957975508306561763687819779636158492111680910939825130433007705595696040204633975860238864790965370528998504210124239978608340015745792286582880441866683162428746194888927592069154194324444344293163434002651616119212687387037807160145481755274963768253126874779476600041204312186687306610388208761742052960583016110749323798705304065663505631238246580995134602202694528986770840795807268263113853075594159222581213338669136157156926554464308091813215566169560701642428431947883111612315776741435706797707481894807004659541640552711918220862972404715739077958082737591551799271255569480072164425728899247693524468421479986081035699355835485980095570204063571012887950904577260439256693461204263128429217404998116371219383228620416517573124538847489227015660748757139085882422479354389747777176120188808898138168734935328522973753839615400920296324468133410623671785118680263396907773667964645815725957760920740431139130717980905753185786572548418520901468838179512159296737342646396539832924146400766983785997497019587667780881460177699876405301721630214614416493836524388474871071754430452153862113639302573908474286364051579338346971425288560995036099476700669693313179634044272316420309648986250667207925638455008662312334699904400465422025761747799425108756006055761586937039019336854310354559561168917192417835276103376839387253598866165015584270927482468025066152929138134900197043722687421598489124838233114376770037392069409299093184997358735362920181465206774647905563678637248585145091931953132968504019122117769328127177033812900433019496494877973934780964410144222863169720611059835039528188204343098429770740925740751963000550745514308522027032316533885796347458530340050071486930707342023590004452952339302821709764915241698756113574503144025539006063558248647034400261819586646244310087882299273119404179527293959089849008868455909005551098504859222923836388406928282020480928899426271001516055146183453916807808138621787998220332625516238176523902346208944314517691103971887521867511861789005966701594534886610697531707978997571739825199270045187691417833252417866928976412488459506720317623891397934641190521935053592962001875284213781817891192721421589923125103829918625556079404610199704646470619663658210802701351148199076383450590135846635564514035574840262856012739037418819441104745046996297328553732438785237828878927162894648628547719971829987252084143442703419702394618795150036991826814554363906588417987527458015297663616446428381900154802998137691244295047150181932663237397948579681600755384716898500807509102937354844487150794532874591070917036930565860021479348346509938242057406212564337321903477602467971889389983819270996103589655282960986213668977684510790299202030620764162841307112555221197347629317920722302689452479582564316244938812153534485608906700795561283438325857788009231815238311115359165395006661308516006463570393998542181929936210313939639837695638044994653703184388350784792708310375217585533502418029065776384527052040952906020005801043698241430051259547098524779621991175316174126944971029829323484629434392024352802440509412593048611711464392696080743058110549383408661878856718394649318519182336723070117480928217105834274541211158885913826688109229853960002306159048379202394198062699084508569961976159095190509644856290731800599029144544142967465221562948864632427051679142463991061529925792474445808282116799773216031229890753258027059361013935466016577551376429485292807995898723122067417399053535505287576727259763939697105830596413198982067865767130613987117104963214014156525366525078323091501877670812331845335373765470032361181164102230916738112990293052130487684232702963726126369266105421333336591035830562547211547757427105823223388688629231560544534632772892097523094481246827148755769067516018149823867971877987900936468971598972786083652651828182105125234489656717994388200850340003743415251972340268100055897603694774551526899734004764328510593908227008063498515970109225836044513704171708109687470226854373850568801050520313992760336307725544897924869858510154837782878430509886799842926236902022031300651586446412615492772674646574175256006393683049429013248728021985010708856494072745194816694577449808196862724936640346706386607257602116307790206016654081358282685454824450317187585725153740868538429102779348916440721609324205582388535302326234134161678099999293682046293542392235698768303613997973537397799876330015482072373949342550774495415903533648354925509974245521288846124086591207660374768083247686699461027318057581100236370217059640276178400816069506308894230003914955945386865672914107808289075610900348294466209914230620511919508193098945318104323786175072603368272780366009335272758867994963880055335550445357026574241268477829430024259921340110252754304941517870707532425984940981660027886547355117877944088957474085098918445459746343585404863938503108874165009815126745481317895855403358091378848078021828524680881605641288607481270458869205005107681911036830315529743601812811355838298994409060563154166462327019358113834561445196307033082458525599882154581780819534026747896674741588230185929130934447663106012626392726965805033562156097753388866689560510217627086877660892656813732191665899345463037105915263493996888798168137010570580343962152128575609694519493374890992456395408563505728939566623493012790861887106862969712169458758818979410832641332213470918030055477966272601432073811174411423109053104237522917720824979812053726626977963705598318159121190202656645076456815256181593029732638922540067294195672896982798169938006884749921798221700498339967578130604736143897860500973217040608524278546413243928003611250908156309281809707360931750538733612584101390066723285975541864210637485208634458959245250977341620551824136290583128657508190542412722150965135207442674884715159073152938335327154726204981602757724855686666596951288655957060418369859933411842030388903597811129405037825807524904383982879465783685404456914697311913671434936028125938123464153430367324796887182145145633615657790083163131076744742807382233761451652848045676786496706061964057175266140330165593202176943622597300227903917712549777847140941524827532371213681259839979984397133632101702942953399843014612512871789607298236969139898226919091177611027126782765708334657689305540079247001772906194865821553822154730482322382255237092970106483501443097047011933519020226030968290613133040821235879671677129650015605332062357028675114090529299349452414285532081263468635697286040507350050737852040413695365579067776062204272968876380976225824831850813602904553926990917452745136996329248420934505301354752740153433991898313502560563438768616614834631034877966247956291838345774948898701701375846176314616696059339382998683098429734453719749149817798170636957833089472230591608989373568006927196036941603764620718206684228489189984665329115213612743332702361118757732453915408180143226866193483973705425034671864469193432442990716167719462518482541212223818591358537605247903850280262607138947120087119739581329379912486597952054047027438267664483465602862016433584038215540673263697311787682980846745844711135734075927488065411283280576386794382360724245589735628233731984323537580218118943925847068317725217571084567296998657029186881551566473808560787378649867369153746433024655921927392556867509937037410983143805348792011719274843311173286364362792227332869366602929769873441957924316663707574072086221006134222327571101679991325518756269315331157532496090417037285255077285520812150889028117433139547061061751770620859753434347806206294011660818433642555748744516248158130172821140783006092750022005396604176384591309684440993123764837756048358795582815152589872474897261959782759324816529157542562043674940355279163434359989462098306463434194966366682774344175154781231913115766221588171784851906130163167538032139509721102108939322487305425788725335509439651783485679767038776266394002280191730128634038420910988072377937913683203881354199566026847098362374791731183962270578811960378099704960403642574930352197964602498983609500303721166850901552708548896169281406341232507795571838837386717174952187288823375694675735584262362749204507488418913461437602813855683926344674398620027539676560828594461694290874780191514356399632369963459705241881151703313624736074383835760105334823398425263687090802101508458628130194610317227981272954302852372083600995198467480720359520538270321552517704784695274520651231886324543789457336358341870279767100195642746505267785971164606706004211339625155764882028707333842376316524413774419624585098926974601686246405714190975583262115848596347033326160309162650749144730556689310211966577775053459253034350803968977605025526711020976519678681716592594057030302851162881436607215989755155993033189754640488157450935741223317604065731039980012536786885590462267898499399577182565490389505924286679839751152848596119528401620002267799316614968901944637643652494812216751381956732469125716885625623723828006501754487491142846341785732982103654130481448980283005615450025152316262090561799026674976130641565215740964358370749916279733376489624955579187734242874012943518562639292060620193962587444609391640080415228774312135475632982342273082655017007243648940501929192193953507496643004691943933827449570750231449019090041746395964542101801736612250567738530730732026834168583949341401086948213806212146825788941947710731362935226937674177480328776504961773575913260845994591433788148894425609692226117238254387512509003409654721587872092963169631543403996863427417687186343281484970720316525384514370808784297946712630066971006238642541387144068455323623911702652736727337921343838947032809860093301585760797049791791274823614667817266997318180158548300053480478057858235150708999546032906303774244139104799913659498219853458704517106958698719242257759595952130647068638182012596950703233510209554120826638482054736345778404543269380358333328379033698416520628396574708842170120101399855892414445465015299997730039027656225314332251798193378848703700688585038087190280825959298417263413853316550579308255654341898780077358016451977728651124084878189249402772553079179636201384436626381343528864764074218371760872905326168002341153815323236632879532604463648887237941996835680961152972387291568558760982564342369226029937915320494606770136041920866311591065894761456569831299353480104908583933459578287439925214524743689322428425283644922191640176403754652248120272678719374653538841935913057141056834487261231445035805012800123125616317617303913469436687093326898156397750401189231703676444772843188982074165788462876251099348465787606200528289220436059476250928487640674076198459391804534400676450312963024194246916447418887517918789059032773462784312668090527098743844291075858170748927847133472311458643113244585052252681888219099978874603546742974739906756163817409140896985030435349812721187880124880349511481736041105453659448739161114208181414154315620919469338950834809965766485799852401397731770946306057651921003585996875023016281398133456899197998007858664859761837005894984040650291764556239529037655605286074827699700706574829308845414459530671727829717199115226770378645554035558528768010336650812535066965841483062787789494737904550505879879521401066479195548249875804000327037368396296664345359468137260182711532366051559784026813832261682091380925847416342698176965036786644533308275863953072625833781445528714553834284407282720934901087044789030264820315284690486568360119790529809295537535192787147137556048235130092772018567873153915696145127870257210629899645989492320837523515977388208053666513468901658297618632309472232855924496699679891237649892059536155981621923113184555015641626591665439278190470250304560665982224857999122568797442806291830986794652489365507310879142564812451637509313035179572121047368594238328662863789623647443866059573108159428657491031637212137863427989614205375893140807843627938178536476801466977985765256439970935259005232977744237213508816472727878691958970002952899373005813552210134290862889263740590615335802685085295009997270345502114558272901103553248280984661157330517315274073622216613748904418150455084554943095635039259767330827845953078600314310700041956336809658713770701504693346366912132445166574326079011235544016393491735377115172977039307257284009338779377799592155388175566575641183766153497061991283416806332637552464936482703432513725535927530724236737051067614919491848436350134729682337197549965381031540342041074978387453054226376222960321018278935971621000085056330802521701292544154422098377688899796665011854470303874150434461562601151617130267443580671414081518984726793483971632046970995135936659372230678617643714276100336068114231983258546704896284142136457771828916904083576102485187422556142823314705590664237662734219585804046848632394490119810578977546864197096705235883126302685404483968416125417019414528936925677975087680499905385630842021837259505467480629746721839587393818060371277799931217929526789403173879733685306063301767973206935044777755074120202167646752373200021506644903033590723867386990931938155817995814604452539184541822305999723456840397102424338423274225885936966122871593794999250432904289343731806442171464974406796109539230140123618511522881735921516522931612263474231647851152626373948340717081908434715226721243240847428956635294015422212076635953073458083390190790986339769668421391080107750814097957696191386567227726662104448566197206058040527388502381175582181485463648133704586566077656288916960025311037649400292904365706670483465531756571424435777265445300611700045381438686661101236781769652774828973618143076457066811430630035556850247739405393652258555621633495520612999290129168984026060036058188099930608142285068726468346392168365356470625668763042639117650298292514784391407584402262958823411209385731816498865287492440983177294700899441614889469501044904074491923838288895699010939621714024803135793227704923137536212057934057213483753324311616478673926650560960681391221261495641415458561408187802653957327278959561762749538795177263033066296333477528369383327128416302504370983437598269435583926938246084705477682658935832620306948766559116236925522037054499648013280512087701915726558980584698132248253402447891650172834267831716894167789102907079463794305762442393311955155000144220337574404122033441915690604859946175603568919174394976623254421758828712137950011026249042243390373393783748028417525086139843369945421392920743974880459211789045975222417401759601665808325381911370079158514894579776121107627058658467926198336905041463515657019586062968846467313637952022226754879861968631957140094886143288518856873098585231719464610013280496265677413584125120032413808796944473720007880470783699958871855786187440484348464599353716582425959527765365486848972194190538973284534618160507228893107587145571154485791382266626194448345903544730179578517364497384994106704723490862125459014587959301948297762960969494890128583635766139266813267575396606285363982381534314058260059218899819072086113584527081794937126794757612219800512995953538808050462983750448572509877827270117867064246276798157238736200622404156195785616207981738776460354704367161328982089427332260464978827079270094308365102678731438663470376611918873286082663400631334139596148825976687282966833706777110251839809356608657559529273612210162577704306008851637648475366449934193342072017642869181549465342662669119869259262068294167162935248564362590232340993461996539027630076960187533803697825009428718588420849410389851502416209807753481103735853432873258179108252425865728219448176364158783575640917850279862221452154116749009993763809284982317125126228816632833881209697826917002061607019284860555409668854754135863993520869423025341872883189875626544604717518219559814671117850182676292752242835939318100723498745367531863820335060705212947957851990442592251958495751780197186311823671741510367065744510485782220127759606051240126396348857968506242658754414542438701927143237866088126850155501098302895494343518150625637750199737699224616152965906584007146237682670287020485837990981089919872836552631831408133204607117178778825942524155166879862033222362462451948303741604617777328298716922434590365327121040976928749781942921017158557596961842392573327781340309089035013052909508115773103827934940887436491345834452557405196058672531422847969172121982881560006141271904728400832366325825142800853681577778433558291255985802161829497798511086932074713300385165771386510935037472498887909645529579123060175340642945659622922028115650279102963370370314909460671355067180729179296028408627741533963953127976040663301431042296128546532837645703501347291888197958685575483914701314004549820652249060664236166762419669808639837507818267687534677374317112759491428748791887609251423061683698582558760545280374997227056738847103124539418103877166260930295861659988267147305220382248820838712617393024432789862891536433863260698542414047211012652905227124040091564646184748761222482234534071043632367730925188596316556994901652117513143139238179284226050069899859571025549252874210241293203611834001571570934760899495176700750988403156731566230247877582076327158332039079603780835314543386738497907687255041786009364729160137431275505899490601812817529898014213847239408267322766531184959666665571423690095016001487442634599055530207965184368359784130442618438773443088562872527592325387835379717674224333119039176092600804325055287884021596361224807419166503134054913335274516341748427614522880692095212530175345306573551878595730642549600495148797111284350541584384370410839369506835084516626132912137445730317350652489398061747336811331463455755732345771522003931837533128851792527910809607948173549152510794593354990280020029115144297402187921239297996680983254748885185192898375346185914313491782951476121133833264535794276632769942048506804379518233434415293924179070591537156889051095742412547130048341220807377272075329729561180832577831699473783882132194959273131174239879482285516846285863357831091358496916782823670241377367103568736635891722193817600973686635916931060663741239405844754933134827444311060368299646069642281260067657616010914859299114295573967501688667142574465286165950333827519612801284032784395181837506524089414787694663123824647007753096422998309928372357724992671403834566367415702827378588298583812723048668052755367894617024717845901704202963810263283450878245817856999302441224166028300824519907372800739368434503701869436069100103777729179209550870070139308372643777178350707667833422859416550120110635014800634600571467531425359027839258569886751911911866509587263521149418093918985091246939616741881962103434657139912009612751523463363975259891833002306475023936268579019857710217170970046651768408979865137374099474942708500266621908747052410052191739283584807776219335948587087887982137332494003497305248098467785901689028728747254458047003710256163197337083734575715152588684074805506623831273356320431668192280308020865527271857147408148555020143257363853097852657444578516107792294514576717708692139924650009061330779880400911934834699882057725578936603294240860302451671051214820273832938356239915021595824755446519166582609068689000376209880817826009126303998848147406917227951010295466031996180246490073949267599713951617625415556641589096687514493082099858782942131406147304152480454337803180767289728816576127592749795194254854223980366221795217304147766011611347712286460270989006200688668402199521606632544493361367079915910700833255993541817388347909882830015959096977462585872229983670640392218094224708629852912575604303466773140321255362823359675658986006086268925647986607779960305486206577791766590761185913689422553502177631871806321666614015478167852040451295721222324123703725202513098615987540080573513247618119057690226230645764454932150178473197049518927329817623985015215544061361281813668189931955330299312655702918485411053980808465123565349352441048853552066353824027075053184141952247809394203760517539999933923977653194730903168858679219592973748730768667237291215069786889190430352374530061575753407037294085280086068178297907105718595255982214762333896300257859876957841172092376122709457093074669331370291769927632618512758389542343927428422590771321369720588035893694857483406786666499655033415599992735703526841304515885785085637047638608980776899890908236341355932831294493815769828566261268560876482999128375737646214282715002080503360811477334575309955885076070742249670922123243600179243904052783427189112951016071815106893913487938648672514310454325532264111119086366169279805319717140256927978872445144492052215744413122595691905954700709658433819834118745843968280912203593970284836722218546824691419877552192095570633754471945519644155835509818191926110506656489728601334962376958936422394084005201241221337688631195997772131112386152038123288944127379635741990895427630646179432104604106268709254870739429297247596429596707105643482553041192703174933828186181167253949054723105572036591339627121735979670068832376875781812568272999582932021592232157578253385292798521484880185126678713032189378960698484743639872306941649229980300936788814368066113032227190610527994355244486728461303161374069498880810150635452162438229949781002933643634998933389548291018590731354717095069131254209622755342932169051442810254330951209498454533827437309546820346804182604073959683598357125338905558227518140016612790410014875853731766722215055330072027517037845577610088136417741847175125562933335645304964752538881468742324408342540841168037517769521678067667467677112697687642842863548832779232504968707905128059914782418273473453438451416629313393721009728370539412293940930413863932943338716200018891342700199506685488545600618625239746545966700830264830461498524908567019465913200888423406078657470364454716296423070608663270854683974758327225335650156662547702910076316171467684395640262394751771174440580018417594043212208173212228825172651066837744172617554648334690417112028178646908476839309067540263844425831340566444994713668830547953023178903440304283478666570350030497887219644465317528262292836817746063570875459426386218531471215447981547746951676412218681032751493942693865933193982563078263841361776296239677820505082912273290402782820263945788184193659891450068422792996913187939402412674217495376255530432170507253353688606834079909437214071164753668780877555743468105870247101478845014933600002014638948046125000744061725071942918708691831633923257246991303558270289121055185418946318212616913404278335878310287277343501561520225946840901974681155991682290172185816953483536771138902977433414051813160396740724923638306312224033982541013038641592989448268089019821472864586076014366546455162874039649811465258489758129892737109146458134503884146773996735322891560651471628476164886681544351899523815719454647981777025533452389677745797642510499182517663026177628841625967452598395383342193601757382552533648068309853812208047743558625114888740639583924464121341384108390477716756798202826532570805281255456082188996232706271521892074723242745497310270082936800366945132133098750112173847338894984681404836942527650102423984164602571871185728791657602109514138238683948193878815388852938367135234189111248310913082699534922021373003866785361946540177041489130410521492720840534622217944242031531488204386693510870073677002049751471949390566948851107619601943679151588971657486607406007203204528614272479491717300504272582076246728710388516562230961321148180830051613652770262757121221308805705698209802825073987937511181188836997090834807057515388157058117829148737066154526153369920866158089806001595606277435081411282498419088855096269521660616069374330399220266132481832457745452672831524714716858716375920586348887489547196881477070894409835379252712009604185076944591942392312109490742605574558590658310851470067891810699800220567259565907395582442770021627385291317854641831946735700201172584367643958263729937513868154661362225073877008715033023650092619231047784129719714958798508006683459624905628256587539173473545944244713237817989432318857816768823633956108086477213364560110568161989513987265220067280724654924370690100431636448457139294314897713005394242977128687082664889057398761307334165955322804784212984804535944367786522824069841916191973945478250868788598992912829014044812567784421590410812293569208758548128627508744655251737160046550886753576502052578553229963579597741570601356368920091353396439145849857424951654024226536638674626140629583395542766016311758723756083907091427186209184390057527040726774132089712380655772383571485700947762535235155760792887309924521261806771349720573778599685034884105847728828506529264180252993495070442067879727880699453787172060324855971712732051933322764888764972298986237013158256119595907428504421247922141993034365326082312111624705873825716420246559209827340303572656849221735462137886572488478168488659746384232075720782435679883069719126422313144587315718165737104006220781649854286820969866989545151122314076344169725824555596972930914776612278309065906670240113814576218082524961174460942451556590374263666294739534920575779438896518478561064429416895668339545099744315634447120064403645746452146853392434149697822945385484803694906739582348397570696655187777812937710438074362392595929694413234498026081989111438027658303586219245240686977637483734201217365861456699065165091945008063910575529349884000165104744297643199242119015360084484252647735452998611674208062130767286957775252308026683306303087288083696233966555817679206784439603382786806941729912881395435941221684370304994168312355852302952025401135205217139662251258638286098470482027794485502181865014655940768273457972622078906039646890314186274788487734901718437774359367255490609016287463374052751104258324719904000189702048790637406688074501374841324645620701922007412001368988651332313302197076522616359161820522462366528005173740082313729421093487644971286753160885542267857828513778358643372308049465851649595825974894897839657733221422046348222920475306845733666471420322660960819969289908710204616609436529916229779452098030528301134070564609325378860570255836947390042748261597549912656720932657604475158034510750549569590414372799348778420437778284840264122660012742558494338092900130114871242328136651800255795925017558188588039088240252092309733885501061779360145699529431353671007611863745337815635559322404091867234559211967162491227063405247359528541124407245959154860438195966782945164680446750002951618904329704929122664403363579115758070110781132763217437795987623520955317246934339381071592712987458900747855166860682633091943851438341618398049042789085732636936296478734615804987476475086649356614977382098282899636436969969563622272818176069250392651581131067145697238344522625119080387243030190035854160762289345125587259058765895329136466820148205662579313696881911043986973411231364762217507002989943997463308583190589518709032388138015728497970632852501155374469891136667410610127809100254805885629423740691572738641891384901970764292737674267393851750545633895002449806106226698107512631407485851545554995308942229822402821118828339633249888359168217838646036913380896457323977959334398637544623945702837736847294622814667205685311037171332183157071160875528983126435644904308541484119544887707417238081574316144794111011515887946719850721083477278821198487934480849349368863658140297860299064405753541244780626407488238766417732548504004967206860926703766732984055407806019330611781164576302407320401430376476217766880109308077086236631075729554146641594595066225119488860122571729359726702655968733668874765743329219747367152651848523984130092977578109531122511061909797558717649650851333793641964501152525201063855373105231113968005164879880625912055441417117485955655771491039921605266967263509619439044182066674205125173835055733118732639808440290564298484042265420073097944569599514651745180969329341731167390724632875906779840776380365945755898034216753508912115964246270866097634491545475471010244807465399541259422576442782765450699883150102071688371945816477111679093134524447068860681141756185975087023579878461469434715641014352542332175701851713067995545479640618332582371352259743037958742613435104396833011834402270898312390039887636191626262458747408442388584882931865388975020944842911850016334917198124349461533227515058604978118541982930856822004553167487099201255446192398508803264049271248432846086630315222684397620749674817041337308575254100877571095009904679114768289796356407475319361097507834811596565863006222329317022982493858198310025482520069534034517003271321288996323455834613885357695977226262368180617223215777106945864040915613748970065880284839024932500936245551524495048110455045092052634949748497362620193784278535095434237749641705577071595688308461953940603588938292641442305874594172514691031020795249948673268161513200399442470137240742553279415193574880718079465465361951294229489142958219790091786777053065533488043045525309395396214178595039210145531572973033927880560230668705913714797340177470216112676896282201668877638773393341542935870858094297115588470427809642155729681305092441505104028093714891840339136829111450580278864179422264990340545208443358535073755692632408830948791870492756625238478312868792783795281514864598586345029910025569091191285342130432173638302062847646461718399111498464499821914446719866561284019623061927838521852909115676501683962418292845904314802686715660611873392624014014462087318430429324702633913676022502951619217738361257500708525740706225717938223758441629193842329366885513130297088991987367856904788852663442511141067149400424617503987339657774719772941156963210763274928421546181435119410395476327569122379748708544949940131662959910265916855008223672302950732415618464993218780687928934702637889007349746652746299006321006044226408078719257399684299941333973304858829223459189977746506952190503423480181611094621050547807956509681349401028753207458246117886321574064448746157260343252019532422231811422406010231095994064232470903168362324045766782532873905301027942839897534761531215951931002956742342334294458509903278191015681573334397560851765342056575566595293186183102245454806743853307920743063064274796617720618641740150194598167310358005954678169389629696828327586736826915593360043130928238755497187780428065994565931483081698508604982341907379019109462661219113138601020869055773008729394299884668864737711088662018950953693804941694454739630414127866267488648843702131282294914185455304409480109349952302072435490882127717524593960095331669791037370600246943115247271157746648815319472744334835934025649706072951118049529665430298643006687504307364169260798894385292330399820742331844436152315080912511508907993135972324774954039896816025918859200986913057405141595778012226835969188023854686299269667128365141085069968151965258992413980707428495629673165932529385295239265838085212718938676721527937001155904770026675414348742364573000032478438677013633118643802150291061702261848611795295342649256199154387770627623381851411476743215544520991804245307183184258328496261863109256794476807106883186878705141130079037407743152402578736004799808900005936281029995679664526177202030450012603242906284478388624001296385005347975495605179181057684697901641188864184157644753807312353647630816379662490533673158374282248661200911973603210758685598336536411021240165795854610222723187821762252410699345746865583053888975544202945075674038222147230429344425078304451599203606079015497769748211498457151465293713442714760016470620477911267475877612184358504518968380840135928346178064040821150837668563256220483755101856169009046129316668081509528696249149068337950720193706989650607968702613500231584254154602328472610317183460772498047969810500910315073259229086118212964148792812191644244156996456049165267585806721058466476445808195479679521272119856158181376671323206661963227264591537838780844158652065998729505033557125488474039615991579276015740415589825937038922203203205556349333694381250002348533505349588839514244405820322190798735314045284937203173398748897944371817840101069909632082867947266494693568834847343053675324584942309381487860616803240548403601534971068232080187573553905765738565153938700420441283494066502050983436238573611502746291184165519272848987395106546246219285124637769617212412152852547236858262236644479489510575001340971329043350476509528117155889925997045942397955809779058650664430343790647660397178005724020703184407391125942828234476102727238198537654304601316472120776105751484580836514919233821099657821227970922553079920539106980207048382922105723830658513853215491765176978222066934111166889793597984110527144680155531673669866073108878025219266830993678729704362159294021009592602214278946035255338939924520977807802934985757987734303763488490026157007890150600152581910931859702680136772199123594602201338128925913680156680543156659888145326888820049075655529609439891674343407703389459622732670764358121859776566231790610197236539273210501542341015534390738696030245535944515294751401130627807138077561161115552880688301710735180119878751520221515764899730481319191320306549141789459591071534975573039603915162644554103826835174727250657776788502721569808762603783109148872667802353830903634708544731276405472571333030427020838597625776042631335465246098834406789594731712701969621734300111176006534924645689053768217945783644352507906250150347162714064860971256980248999835443329210997385595127138914823606347602742926123526521288985107755809881976328381751620338585314572220497137888788156901567177756458767573653881876264076785793476847257542752724336039132435180623425143656976524425124084795575283868079836407378127493710776896143263098308218845938489885491332786477800110806951135421698591690173599264798557213077763583163710458844051087969375552558634110627428624594241331523593852567206395353216585968967042291471136750767536771514650963802596351633715195600611137864888283313354277882636298769596528571884604032709744443730164810245049652886857811378551124313582617520464921025926751777439694707770011345563989404345377348524257294150800365605836072885263894524258328662475335888872706744324501562606148557637576291068174635143676625760825309569752220113617139098323716271859003120816880041618426487771441370653480772360297643920386606563360604692420077391797177659083722756610926059576192231064366935188234443154335109099908735482754049490913546743998572312840814595995989675687714050591234226887265576025032636737311814416237187769073531201439225792178737181411120051389163633872534100172150078818755127185586646658481819140651319382378694620796370844930584921310744930367781781070331092656472844852283807179901552997673341686968506137466746272099787382946915996129454995395163851772749534562754656430132784400164975169298085790740801018544250001659392380962625408760714011308622123192542659831696322276067693721508642303323721712403963818741624734757453688885568631914217939896073279481699095957355851008223595225487858753086316072618087097368631097438669345862065881823028527624787923391110378347983393429105185543083825759830215565670394700728827489371918781377956363679106924677733807754245587084200928434737768382772361931615450386068698562534330018688861225395616534394877290406645598531587471570558498031141756108642058542800772703056468516297862179670131839278859382488003044871094254719232603332889535916410380648434773785927967086910961469993583808091178690955532827789573373651488916440121488291643813835758500040428603630855995484102334168836939361995481079530787388064929275949346942369306736892060735981674321668160369507818476315886155144339660315000961000061111910762998631745083816756640569770119012689027750934885839923319721042870445044199004230191268391283668452585902901604003711528422793819300986970526007211241526103198230055277011220530525517771660456140770125452851564654000700088415468898686597883644213446507761772659372035778431897450565381940185313400813386959929454938315261772537401572175635751430271063189848598394470457370619651233979025699339026064335025352308526601552824618943494742539195942197531755104390085655507546706733832088282323063129489001195005813260305705365230289202961740445343760323974580374401373169650261032205387213455131318870369641001157654706228010434248011277920261101452495124822193642673675572816772140534025521642783060298509866847427246365433575983830707644567855521126696833099404715064332370002052905489754460649687802384386182550719411168377041418350438113186408030203216260507293342865056962140048280476212951012402325060721999296587267205733226097493961704101324132035311335263103525663197418360775265989189873533887000698407373009288067622019229570306964491160343944025735338173210142875181381609558118488994722184612232193120374977936210571411188554375901813793330906381710283898721546280569463431290646463769108934849963677820036568084852746286013873624362126793574376185144258106747902707904776354381692316654026635099429078021135283821648154921694669329952354166767556793683037069086570121871896484330128314294146221466212545357899895680214056774360881536050073711145130177372908186697738545641997682613059119949844280687054126748450213092062461624388235979317519021401103898430107734512058386951556833488737727355537142713436214531260850519651825430613359688166717412300576837110601564870988098142628514593535903611367834223947859282394802033375418435923365860843170437238363187900167803230059939409002775302352479321836362832107412573360384743368148765007209510751558645057639289509999648002128823450514594882963281626977268407818823728628956706265763620386525167506010468604062838138090306102366671004341649938193155711662998783431039926422419661399362614384291003479013677121734226610935262765956107816951007233926673233877389083435347160860772638939919299176173468706801674346383309107118406190497885807141972180206716721559865965944918378626940544672937164544381380934242201327471060628441139833217943275104609210629264434147339625181695224373943579580782147832469782093304825620658369007881179719187089495499883831774060919680588903214879076187668319388902459942810805833001001367949510156488633965116936860720018006340857285977686938745971882055202163329142340537367260734803860091894484563729950840489637183660707080536008271059381551357039366245743843392785439723470400660241863859047227287522666464017591926156350325225083658707076938092933119884088593830931988468998937011216350834749406301031148902881406091417791096715802934306274798082084419445292785798209274647404041840344070435338310131241136984566879094408759896379453820236958765748467640226843002343056933755019527801100858908143191827017987355628871614601669963198420330801027746080320504459448266659769344667567157083229056075846521898830873588732668447761669692480779250620431878214367869703750928344915448159731646611536315920873050501790103276011657196156516887754452711484703387564898207512336412805297908191786401584916053500167454459197451509296565661227751371904029076145258474474865333173362781847157581859598916814051625716475541320847192231857676932703830844618529961210332111917747225509188227904928828417201896076877034079996285190957340466110646276855305364764571946248534609952875895240779389863097244185183725822906758567402365281331449409716667230827906812018349462464196882472857667480978098318385529230235382286027047124424046906601199047515013148473592024696510664442230007422659168558509572370938550470271032766642822732903316018481039568998452499638486281715071851822758930414432556373926199366529663223676599844542187785890838684880718315223064276151366771271784875456475920135581818643347261007304791066595184922227604584392638680459199284033368024242942124252175339302954750327350335917294488938503539911885101634504745082452999829518198313106831315151013485260793668576268374048403716720053404813680964357676135603936724363683958831343295757730814035131626139750703491925593342206285524397192544960602792322826262792567196078521525851886971942605962262900826618676028469590255103218713264032734385163876889398722997195079495022996009293199900224212372374946581577297757932805701915654163854236938299352172987772164951604114637923416137564933438030920971897917251013434288149467628638503230432592444742596414400467159512850276261335595375430006898727725532230217840474719229537651638134412677505121876907482924168813043292130863770572533943869514640635872886786563898926588448618789285435543424168137906824709363302550488301842289132862744467989291312570605360915086690037434472119988257742836833624919816127117154001192683989317312440576007099768967766398011458252280990198983201830637706462258194360611929253924263678408100460158833050091814267120511347324087240073201545397418948119653052134068308694355664183308781149763132763125831109224217297161888290258119300984634367211673737006329083007694207278277284639722019341179557060965962868889090078272745440274273490890531831105824520705220627942719947622270901751072339048026141091538995554178801353215773297449111646200050995273996281730366686680076556185418341749000865443477011310888977894725501867250523748152159046192893983146763563665453874421463943138536225283916790392574412947935602901890197469904804100900972428483178567790858345122189546408672630127146073948136086378073227729076557867142514462161138559215524186483811738886897474707014722884294316242199981347373692822836792105511336499942353030926541239213709540292816626839603465263270674037510352999117887019444339914936254670184271862777055052888189339647387038545286284658835695211620492566706342361596834554713916233231344476884684041543514790933187829621994961790160078221298307615456381394922919158013847313272525755723384437122899461332850301959537852292842266349325818129922369233358757354226555562655448394583188435134794095170068084635825872704594942974870160205508185551632743503648518951871070005453936884164593163888145266624881019706535368157486901509430501573639125098367440700761584585929514554361391125745737845317050577605665284337448267819703057223183714220196749571017132207784389676744352425282396172890050328251041633022959971135836558555242936097954464509770064759556433808908130559146457252412921112270999219834920949463479980562911109803801083290707726781767836557344641646712959933920521905965640326280035403936783426363770254027655531268526261251664799974514193237494560371336742786080461655373921588715900969195469354319472218997023499273755234396100510385100388277854663381133352583765623683152628103493334515524067653748374445498308626952994850171208553239560991612528872586036082849070938316885551036462236355550732664658114246825191869659123464192546061732093080943071726811248631282603270184008934842792798033713321193335513107305067069488978920900865824315918297822348081677147708864432712688569406157027544538117739374842110183795379353725611360115703479040647300739739362128730437668909804715663090059787657102760168606509456014775532300212220859364332726374378931064807595906089312713066798118410576684789182926505113888634829566298290075269618497263492739415102731042234687159242246562282344200030559676261092704112196209914545966993179255884879335635104992755528538431571554705889735783841476560805625758606397324139722399406277462392119137097237313918723832602949954694835216118784124821063633813120011798141299438072922289575766462622329521063487403461169894118966240471743937130469637570481459022271269814894796800501713326410952618045933767832280098118305439084226245012232576260908982539737619693791184390932717586105190613342698652152067183611306025796790261073728394538615383435474502907623989915309987830553057577280734181021234348259439200098581787628572329450704444826234553745490926083255527220308134077568691519899365693487453067709342564038385549071391613469390322280083698333679807595844352419504627592662644804308451893732471512664339806948079075143149936722049261021573246416929828095091603767055796193226423482834166623106189157466632677124472567983892328835432143799004555215405374322166704974859787123827449938522510332892895856289625898553844975515862094508031166104157667415379326012640482869864675366603880478844859208122013783560576258843225944109902210182092286874411304191186955980938845042856371837187732416982858091222285063302204862636991947297599614207357688648880187857787082024651207968298616776036228576049060215309303901232514605284561917289929329941276080612991433666857957087509255116380089046314542824349196664276299287617576524546215342903863695884878686427356630285384505922891347672191944095011556980514068146725924437095487715192856254175878078920754301375392943418179134841431289205355186703153621498805689226546076048681691075086747273080496161262484445811641740369477584756248561780233876368691841084174837188511775225682153405642322951571184276927093121408449835306652889486460854872312647434915260668709406298469326070292581914137022324680546184567781752831900295363611539850042928007731714105137340120385153771861914860409890407302139991127934040999098186201675608093106897641689386868688347244972501745854034466306637974475829380489024979745334126501266901658689882927693679831564493521988368965454925674944090012377842891460094312898591424692950282861897996633472819947928794225392704805843026651404332714190898415929104213596568759950994227664261751040230461046367743186555406528877734277131108729253737064769048362329450403446707301157083373081115140678111632040612519937693175656925245972801602045633412893929488804913770126707069675877801297822992827521657188306554596895700711379215094416734428147164237150484779753125233420684181967686784235651101947149279612264798075748944715767853979008522714464942395977377614153540723609812724763170890523965479341854810176285175121208814584602962980126683932116169036327010569700206709375597380637807307710362208308442520131556827968768289843069216151948677293552907487737811064988982595447973826091598932866129852454824981783526479460647088630731573960068672704311434043771448447939773310559682786167541378180318731674318960130677460241815746639090222058693545556521553108935776912930524564077995814682017981059351171199056387344477564589352595343896846422823404245001675609668531727476158528184618185390712368942376328196680477847683539767841770491321241456816601941915701216221584726939132910671979312812074428342824420917176710803254058686684936403909696242387166783702008611859181501289940565066412773672731517665369443507290173324371309575510560036637766406677504687516541978365535929568906730051246040458144676917982841133064037855251454351027585609367815867981480224761207817538740889197222672972601641294984476640275194263195616206763278823445703874007710749701314967022760478802249259859732527922936298482720290513004432943611859071168326233706180738638604011240889311440732132063924279894325630385644558999822286136990537066165618659252487651444724176872529865355210990237409090582113544307020613650741646477228405333746513740603818814354046341063537034403130708875829215012828761955210042071909210839741284024678968558416926313013304369412668219380817992889468717149884020647276339503368257146386239534157363408508003411419725709808102181641047544551132559337557235807477633547529334482925309155084591843177272512726823340122512964853879480843830281588721695959912066406162599978595021701417127215109956046118869341661713106380430790165529693018853779016870205289915425305888355294619541087648620915667985209216236804407844087004330936790154952983077324203534993226345621632485207789354811671255936186597734384475392829089234980597593146284216797945179839657663013568665361294602332202180798055763649254189181014792236683470855104435440864686632213330174900676261584299798061788560182493664819662863339758612857414920511732414155798533284885154445904621275880562806666222462113149446644596031579471092728016510167356428781146310867623724548223179890995366632058148452190649460661727795316603050609278367274883243823894759283669552130984568554914347821623818615841848555636644540039562172659865369786940830847656625880165228560781157388370215933654679206044560307844815302783039504071912283526145813840866971374009897323900646646921286802415791004524834848195226349718520338893769478660821231899008610722363095923825624431716550787506884325789159848933277541116034996412538925914636848674241783941957520685294674058849211047252672669566412722158646547229315884380266399575842685878196337908936585746385831001359592598289855341309302171164151090800647282131000068131422455845216061873285484874302083827450214802305000687665048355744048660767426263080544568436423440323612302103244621651573938195369212288455785130180926074165156798514769760579596515800444242909116908806216297264555331922565742396972661751472496735839912640223117055872878499890606223798559023874929139174523849512153184793275320230566114417458979988566622313007875423433411299257100561900041008106937863378889605447446328111702690233628307733586941445479187303215696543927506396081659233104883270497346502565688535641823679111190110627436083923482942807694877089480610718314096211858906816448846753673853944147252940292508840544761745584748258555219689412011441309493850187790045682488562857080183510283084597401197922016797341328479324254817969226607172449835639395188746813433017151393093708852819794667934096708161891181108466159618427783284858636147944598244484977207840147382962023098300361528734601702232545618244684257768646586981854140802454376696615277176924551972287767768643036596656867836306545702153400294627612171969593476399965879428785512501925999538036338963196051657628786769612171066176392557401074600472737237284224611323821927316004293738963818914670170011990552129962064854728667178393914283123547500583627709748165421772736781961862155210499524926765890563478107923888221711786858925043140306715165831452252044054645616907016998007864147448890544498852143786132455786681630873075635607287226147009596190237955303667709950947741963179366126557618855223186692199524137719511675777021579088394012599410161141266519387248061336474011376952558426345397720051254120359493436925267175281565814614082708374706425467549365294691474070320409639513725690017370161135417119553738343032475611193170249500022433112235393470342224484602506748732744322735659315871259857725028124982916667450752122936789536092678048248633787366443309961558389690018367335490442661515245071724566625553018897892379067090393236989388772444298666568811513746367026678797630059312600741118062596621455295068502786533235119597858600762010725468398400707498635714996341926342748296535922059220727692834987586237123905177847085600825407051985951530434192829031338933164259780913312263119759237492990305132659010391683877119959196025273491565399171025321701878383814756166492869481484948798453118085023573023588716839123437046671826106333272447182348330882357024425817939113213641907942810704984647365503925006984869303872460598590949453523090970932019567992806015410335204588817503894580012170870690035002715132929883327186208253198220118646875697982235992856490492093036621190293643349911913803486262000107588665288049134123096626261368122222408012717509344868388094819431148890159332127796557309296439892703797647635995533015706340769696695043810614872658315636696618397004898835544576728392692351407898996953759103612961093070876585201842386399464886274729805406354614409197810774741775526545120376339885490599545129554626543556383809503236750261684349047266019162888230302955999096174052222066000582360976759182414963960131791994150422674853317593653058285637729353665959851598778460057879384703253274704438030623070007317570022044043868530832081036195683546990934795139067497580239973735051614852496419829788221335341506885708266534666764282223593680287713753590225776829165439569708632305373776156875913837891976610153807369005769240722774622650545201283722993989968032003475429438008316962322393449158922401370070284649937920822847114208160109592013441525955509101314480223089991911992988211610000954918819099593493700978566749521052165939889802091102362914328076632492049001802336908351442436749675738365759926584101458634944689851876756975317785709039051123579134063569480320063571841972680595043978277277267052293224255715978154522068141350359905754506068013965380591527691425748972930709781077270544296128730648819324296138327513833541110950980082459157129337555798142784194416541031034217778647527679104718831250075953530268756886178224816057793064385809919948954336342484082060579758259986783928891799209672296171251880467619807074941143590027484555744929953890976466126375402723369618187277590560415986857146472988858355792868142592230940784481162665867812891254388088530909948600134183959081361690775200582158595611480875177774269884286580562964636606949871545288723170605766972442329780017878350877474850047167142241133459382296954860970487295993074243556503247686386582905034034282378495558693020665641400398857337671979135087715994193190501697618885415921884632797627977947872746537824917460535707884442983148811626549457274754813683491619308933329139549626604919236182974489080054815158114307089941093062746881832199417331455952913909115265882830982166565944856861349020645251349705168333993015851213708357409279495932462661153380684939079861958043567087316834387390213705859690033394778620686658663119898037222569953285636101546880387300224783986125858229192806593135937277745922087545460642588766509592170570788858182694361627942021877957326486787942315888229619825418999869682272876163619891493998588409944191813559606096573482610401361454474420831364416853985413751942987107870697914146941263973683814408691205705499500096269829548354110347978546897408092910242237990892490252711157149771387893849057194186957938208546780635295341697458340573721859174234995032496386552825923792562808526302245645826106143187517025176188403866039530981598976529908058062049763915870652714452064662215651143051329916258323278921909132034920284770051032094016403700421452343603519793122857253556751440729459383959100574015705392905103300900831933028999164628716970194840413221306092167263939024048732668838391559358523929507437331837801422696106145821607110541738194721023151507172974444911486315763373679760610277743518797555123714916166914917531637468197491988255519705606324001347569270452768325754128267865526171398554994253307451948734473172956812360437094248708518647843557579859519108912056662338879560323584069700668407224891985999641901903543147840117659564949174008860321245984176040111456601075695757775434504710805392555841464612391932787645785307241702095399931827758035758182990062730825567404993890946097155064683775838027428504669911505620307972942207233532863532517845692345055012771606863133653129804105575220785911425916758938275933053289766528825039076394008105166427834261610922840063485325808482056648054022400171526427462497779876638415553106806741790239364550033924750632058646698832745580510523602858541977428462657488687928945814935672962239029966120155119434437977635111866034518749134766316986949425698677749207383183526548793842677418869426375705990570032060520728126333553508790366641975539074066309503431711847606157429076074442576933675655840587926749731190658332191614050017101105256620959792285938249478805512928610817396460097698195100009707510467400469636576935011928284308820294728510646144133913581218871580327305758905512616320815495766311197447861156268166787352137516785952899116508213086599728607499069653022302514317037477068897008712867639452011677477973892226486683913349589814171576274675770546660317613674385525066062268407828812425209905937613238840612440431235434111620583580245614955344166904052262355155558948180259966585283463877090578732214501827091335961610066239178573152272754396196574339504842945746389350290688974279328055168821483271655804542807488129654040008888907018315090011016053229853086816821853609549552370442865223132054025056744721207516480247602020196853038130806364158403209947873207016523577732013619829061245581176595802278058269698961841414092920683207646169079323211713511183334331330672873965974771479969526481680820487289652744092935603400871056485862523582797377571134504436162773052088462961531348000280827457929366336576927304035683824666806894480514132369383142568585271176367911953070843383218587716914262780150788521877543194875324015333677558328644603905950741051181569116510153072327486869837689610507544509830693712662124837054154433187181622126309888348874206485068148802309519215123632065856977300709106474278746882933218490931955165173905795899917121650783853679810503343846922573109810697340940640670421927343036839083623642961603349421046577064917503875241840563115943502157418398569000091404528119379447866917989656576749837552378518219355922582876317142386518872672318422928157053627569155911417951946501627219784907195737610182990951232626576909217887558892895703377218209867817822155054087394368169784500890860318801958544041190316970882703191450848544591779472709635376765187887804995022815741936117742715682887285238641176162427240210292493805348907675546655154922135591666694826190255222879733267294380199395591677235839863351649792667210156387394351989060419965508774732373630040547767961499995562963003938429151081564223293132201843919511224363346673784464285203319539693351049562080997076160376061797925079122522601981037795051805300373625636662753611904015173410169737297152610206779219684391204520099511717389707368207170395023934249445558991754123270292853451969915664638372539198359736954886775204010474519816173189876086656727698348527757326376008874989851822594984884027056394150484021951624763003115123993225302226975778500455358772846650779247264087024780288828516517604728018612514669466282095953749955902654254387004231518167558743890496061183717894089291109861541300160513947606244467953341820743432060233797638680161909577819811493124204609258700454096803883458889164836843266500103449468203295407262517422671814796947428658733108920634839365884317217393739994980864412086267934137740059608819142952048497369334124321967645570700595734360375761190376027199508727677777045564858331899412923252345982756548777373613633518019294002870957801460506923664333354080234820805900073009142512834261289170588598754359686896758008920021047977244373967523001769840225891386363613363688881888291710595952352508557414507134199515821944740163119573555122807908729544222807189970129457521477085951196714321596420894279931357706537474452069541789734182693380044497719174569648964192959467602612666244373743063927047785897743252038766597719935691328846963233915534717845593766969170133227872141361944397109591062414761733903998023553499519926174039227024664067859679334497990569923336807001104753428078379364990878758083311609109838765809722118439110879904167192130936768977274391842647412477097860038647747562960415915942465742404987082658921371891961740062008491037658706604899380710826060220708962196259521651763392424977162605453587467050350893583532100261910521643424842679483949312662095075345962517899690503518555853331266320622979805282090911521104335572371860494912294692930359901903294075626410202539549369224841775968002686300369058316328784912001519681126789680337069237497916140703382844659343869547555976657615715298795063709999273715387973300450138620248144702395577752935738604713906971190306277283624253188111730440645341159098611658113545951893911795847237972231663262801701372250677006615397664483586127623796224726605439474711607466921165891191549974738275152254293837313515186170474337994845682591932153687051026845455563086627023269512295574108972572528861701540677195551123816997107609580134536362956779951106199670214834127097737016494516109051467788810916291204647207095221846871064353331230998619662652136148319512793548669249697525398278443763244853754754606433755482738216920593519626695620650496666994346302685299726970155904641600908262149851755182905214682257905502605219051487081578707396854425104910926329830851804432707528132783658156734096949109648233291865895461219492314574910732303563007768200123397575411417290558658883435576147123929688120344400142525216843074245812445604017283282719821395075822275798675183094493987068806487513673333454289845438362049959460439078887326058699220774196334904897704566641350457495231096081103121055571656217741576680573617438618853386954098670358825504496466467151134901447555702320806130656822069501830828595069181028889377503168340707906256349824162387959481774102913269276728734913828711322723858528557757086692754926624142461250986455206847679758583570381005286348062712127460134578257972231428583909384490419467516564517631621439532043838732975988122691931868518754442231440229385971140557765301845782594489783029799577048240610362965328300671122553727214848391105126907196337106030042199584756304655012060071922413755128998654048181978611773084531632299544724688357022928963652007341458357122783490398448040708679391177209864448776058573986037785951330602628716793989351869944993356400181852761166466506133218905825911801004413770356681511152844848726352106508742209836439125195140201436143545825312673705564743602908303918154120929439539958145763352717144330732176560444693337538151265265364153221617284224713620760700243691263340642491160479479293648873824293086507439309510515712429926829768022368452878444663498616497071238424692936916304698887377437263482822657832597719842101634956008892100550624609627122104229382238608101589940734025202212597971590937060677268785441568780281630120555734607575525231908911894906296768180438853819123517752804950113794047920325175979321593208798867412891446855113613792224651826836770111304062156154998065744393955363270701380666872779571738044793099077467027232562231565158511150951169520340951771070779713982105855502682752964259733049822211564037089345411213294512639271896027275844529533590158187745517182800082525938691854663033934610341531402406465492990022584341717692044077592732398643430380521475276258230809189963748558964795042176399244601258388142333316378698611654175236007236563199314346895385158945807595019728007008702297409430421852445390816965374090938336957584892890201955423132560272209017439589363620434582070506385693931916829749640633196052840307360329102350721951944619070556574940405475446705892387454509370828050768240362319103266321107674991392748717937863949294587338449133711894219822244964911103419776119481629317814871838482157252498213233857635973760897686813432192623730285696826797521866121619759437021732021409512001030882383008794134363075027270597984175799418260940857753052227080089967053677622987603752742912166191266005021997604411831500625366834557859118186882977945150840843619528539223534541955550529916427744035205158522484681257805568550267993801325364077901517576922834875173921001217470834337128370848870844695183083310290537535634900587100612353122242621547940209414522508626226547585849830355628525221240916671041743054111831567951643458060606222367851462328873086921749181408427739080777709223237443185064105339868694098278533231598808884519528783748298865583229836641408385612221768757111217086060762658015502407472720969917223026446436282994962562991868976860356362882779421377448382205696351168192960079224576464964394938349506492356655866006797006573162754297549948742726374521665864886958547857635028931994449890793158108840310054424277544460087698406611047572481710867710692074340555261489062706703519221470377467087301305991102408980853489378606972640543894114139874327155678906362874686831341039667500906966643062894029510196535070521796250967429229116501245842330950912598596900816156241035603464036610012571923583274976690566695262889614015778758359946515386886694287152029730018608026860384610105212606329446933948038048478309562597506622939904139944532212439276332634769789236090109846669481876050347705001170788806669769553531301804736188614127715405063358166704292113207322334865516645407433834645420874578269253983578734417298843689496619493571207832702106954107546966830160462459062008859199092511518670994496470980421139114281189014510597322384048142289999150235405060704270445045945939665388165819082928694769891684628878430378638796701279853142194854170593829731544181927119995051869826175209569482123152508527464192692620417471402925680502610219538890264251214581311179199110432837639467556262441232093679043241674542685796949581099097179735744899822132700540462804153076776722088362449626209349341327319559364719715644768102287048172188500202588936488170718927920481274128600202905242742938775552957119950445290994187366451330141466623609501219731264361815785421844987695993199171963247350917526610063309106985283246428515899031057482484363439548982538218338241383591558753227596667957811625856568283027819505151765457306942332769228169329446279201761229542385307593872443939171063775152884548428680409087845461566080205635777598078990372333425196822029195382638181435639649462883777137645981252541250737490576751488555523633609624323722477511565247010013169047519585374345492820034967875938662318802339531804518275592578323780726259395415362506561497946519141791767439516268079546869612542772280986125270169967272772903641535235320500254529977335712602618452426580258981915461710150368631208083596327543496328101014509902941984700807977561509547193940241139423374758988997765039301853548740289548669059518188288436089823582085185139896266853843568050731986580444067011826021037073101227144010056713411961735158727269814024276516352987536604036131324975081635334248364863207144310894122311859762225328073739172804823181327859124612517667057180583928737066185897683458329588977480931288348604870482154408256648174037693190768227272221704671428424435966148465401165105395584316874510043909197670318424795559485366172355646057485413928122589466086268487873643075370152234912878186448786391143548661931408634582539115640301202528275182970962995639314215283665289045904235557073828053385250019340286089909151171741283670709030488885976298056403294318637718347317747338275116025016995488233196146199480830347419953218602058925406752693075044166025311756472722423019948342207402439700698215956648047867851215072251134544579394903959264707286271365482485432544041067741791136562680375950954733288432654133698988561991081090405249986137557883146992911988091794201849898889553814163653260860797038464591100457451480417618517380647967007598465355867507214674302544282699880537520790589053844002793478095964837631791101967353536461598580754609518926662430965655704486564230204372164615631001137002358259301452131613218353472584633534024249251333990559025342970323700312781101926597394165867729845834831004556751003609394440339090747857377674632358620144041393866007394536592527170800814558503646451015001287538829911778362552160175883665123987042857136297909095979374522286262666263680762278105456665890108314128460411324132480816928447407481377327382147363737125652065965138437843431599790392637854691214091230459999720897925170402461403569364770846574424295319113325950353689191789647485873801050215768385460107518822047690524648238156441091659415504534906726415572589659148754028703668703173471650012962487818915112599649858639884471088685610122082734221611168596152142946203278806239017091597966896730771358946466656281991047179662805537535847758417339840553556674789583784512046564852585558843380057896878944333557810569486783746485837041154063053016345093571918985897303318538505710525703084459191995156714245546517453874757706551194531785540463486753704509211415847450354339895503023429694382306667905024673718956903726807188710222523874042332609676538519074207931438943326253106015319588239700825505904508655320804169165736581359847222065540604165969192912963993944855640375477660294746374840818522968510226393280469349535464105211325989820729307200057022989005385876424792644018816625281692734251816945519290704075443165165306203768972151731520650553307974668547270572752864623964012149117003967406872582393601119884894960935065520704035044702138818977909001625927270128553329154893100621639354771889827644143138843204151742011069269253456938490544200687156622558447898542610451005264081241285956704454112898529589208410023540271051362602504310187500559148027307036490359079075226871050148540290746070709283262506676405178964424584625526222717447508673807586595656478016885017523970411736009596232770515595709259075638225718318517196424171953892606776862956969627290430068740759868610235081119381440675361681336882464433508724656501756803808986801916612007946728398435118641232530891007485960230716374541390891660953127277362446965222911081084620414473963975496063938151954275362329339818074569287301493894550123796901694301835634962458609505255392621260004133667143035947589831817296087467959763552485294684329981904256468340417250453191174050705969980719542854979633132331318188782193162321577460944099807637517013294680686093625840578461410516840085978762463870101190099518739006718653233476573581299855417740224568233178149583434048891452242675318237998543665523643516226884551845042929037637113855638932217392293683902049575301291354567242414535257791288957525443639767482808019529840237978290114714907247077306261848391460181156300600895809318614234637148833233433063222956449931260193230006206471720683814161260340266028175998494728528959464229696281817574626664573273265619281173407705885365850023976599467845158548051059335393436994134556053575771635263400125660902140523964377433410707420903252720683694001485083850064823936778216472328563020604628373970650767477749896770645444500609058008988439597260853615472511867851859679368246056843824284881661374393538680240291636393191722708907347506350493187763653989129126320099612759183682191352943628957901124127563037275058932837196842675609134618330959789584754572201610665085208647978362023761437168716667054318195016093927400840010839316980092619800152372000375217423712996044487289324508210758805857238451608764996978137470164041603226286968962946179330854964657642401413191424956884575349881145186674882544040490581687933599666904737317514216599402212832907972712003765564871632273552656167446006151811315230713477845762911301784794095264605909977613040362371932202467510137928919744869534625647479949426542497371229691322349214405527575791935412427810201593041721126868232581041116107594880987748556749682661081367585799186738066932656129394940037410572922591935637097699411106723149952324085093425724885990599703604403086285328565379936091133595405092666553911064536794816663475259847991752662149505113612752332576000772449292509325936948827279792421527564199441112421875517286808106412407281526439729157397726780670816671077176150668522112834301316425018385173285811001547255767515978917927668792688512385740566502549721964022264948844538937836883301268314952044240806817993288166748870002736234850734102277834399942757453725201972234193756408985771547829149965530860905221867280357937175629775577534020020612642915172513619352209411678108033062037169218460309950995576480350271089956438389102580640602280590980492129222588505363452084504013527642701024597936336263584319921517764991321171533163495934688319163098638945321372799025288100155157061610321840190450815708283558779359812395357887433549708874929590210339879862142226572932689625751607513209242072378623455417219834130146551727067809283605903950366387982430959395226868902636381278676220906525016012763908512756098627728163342717724896758914892720400018568510940753189830832385472033620243041472418673757956927756732156823734912708855336581348199534507474336158298301425805134546683327588216068904473613296075161567598636203827391740229557299192430281176064715571153688107964322055545071071510232678477717277315517926089485969004393508074876716834070712470204765567423165555373000853497954190036993805718479997290503692466820656487957117587395528900710165874823537771088091054834867536978991344620227469999941691878189911888545345888765844680448950394832579724087508753621547499490323787873750796447521167876983678782414978066170766817774904966782209255279836522450700294262465113796066269873382254080218049707393941371443371428562615182436058226641297977778370959891124325972391091811646450751792614245723836786271138220809372957786489465813768215440534955918849759957441883119404762357970279418116726277508982630833534899070671134757715684618040956323197829816020607447576946591797272523415195685937227358066014677856137007630769705964049337152196831162625433409753280455351649273102726694522715931625571505463781064216448564157532483540475961182627907253624800477645762590482332713599133894091317791947098031232114909471836160888226484168198688329819906739605947441669615766608938265704122067879982764752136019211268458985208887514150237928354297199780409104990367492810711165052027338910824949640285337535273422958583731665546869422962478000660352985897694665440790451056736627827885886606247048884851877245113018124951198405966229507921715068467084831771305455081059939872956335362465432489407234751737184455889647095212537293239496335721731473429598319046365738669736928857129554394643038660582436021145261957611850443553692997872943999756880002248404925148480129406005185355574427604201533106401036704285821599574813093334979253566237953134613341994480091211673711488497882334554292482990242067281500161390768537028065502411393862837057050057232488751588427206899001494861527729791243324110678639430258967035689214654994547510489561468112500477541712050772777863024861659005490888130051302594162892861908531081591019833151778061937792776584943478177174414524969311171859757626821436137601937060937403176724064947130541863397002741161963192369723646159762368611493571685577937202756933675136375389859103890200733985862633740244615692528409712779686557852306439421521527293526127632707878526763646698612642876491005438732229167903427573882386586986185710650061609757960484278124461138981449759192727586047579669080730152404724715740769933502944576055045020621006957446555929397359183628175529884515865750178552855074363715284660354618588381727801199934649782958108461298466664901146506084371176877701569772478928882266658788524249874111996124440380202204290691986391151008848317463594266793236407406465507047621004415400241952032455268017379156599350962699092493144440318750805406116304748919748432821030366552747383871982697180368746861463568584083789927081278469267851178154782299918538937544681197911170438944641921123962242928107364144021725664778764349997309968559504212116980409861837526736172324043315422008053514767159137299219903146766665682144793942951648810187871706522095530533633425184862018602673409926749624694978893507646714367592929706679488762899178025488774863291293108049176514322555288461960299294549278478188622323926312094983022170413352501140981886655346925023683181916365729354544242937771889613693312669410176696920145169607625943826525850843769661790140828963567715204811629552122922284292721008402267001602785572996367244851166011456539125926485500748917860648527729072721712395356930355150864661768682136042500044170345713737787940450169951549967425991585027351390214698804199590375855407058780232669570690434164267996119851366624278151762287358864035172370941296754313992387818393492876212696094509809611665273057469999563672226732244194492295642720255410382250537250746602426314275747843180419959253280141037458718245305603079962805083108211917038933358407219419350256764703548229684425764308921500378228090254882491136733387933577623540789901435095551069628880639963280673136425274116432844891591225973533784982494359308390992007348727498323238285728037994555855912815152419479176386261013895401228741700416231122149510224442621671792773097272981135313668268615723469863947100910454011029010397112064048438395898751337277669517728718180605000171112449016141210541657523562256287686638572226715119517443070860275630671717513853713984810469893085092680177866560412118969468188280105413994179607944634117267352954001630872220069403901115070245853420866628179301275727751466752966597476722131990964729604531752125082922811299177277862132565869009321287453995580327881637391848282452236709894917554804718356770716464845800912062952014299204171149767340095394720405748331192807569326082417192759534663567134068354832684965610501492459035457016843588420950060408633783915938002480334621607509180207206703596411333949425351481261363020137862953983429129886917128092320456882964142765368240393550647323730521991580924206631969630792860323915699539759857197282610550166389014994461823156177458802707925790138312465037980552084179264873558242322638330410900920111317421526613629723111830102053042290330786385738229157626305907440634553225359598219534712543266972298052887201781959127402445233628535243221321690357248320596868093242307046132174088513921413135617444014555958125325361805749237528985602335277472875449736139566279074968204929411982450093478052961903542074153588033522240939427182367679468944378081326083568413054336922465827949138112275802459763452598504748235382793147388276665824288824221624893086986188797325872734614801634457392583744640029216710079144872339132711871583227198641337680460539198114332063974378189743109646328629806970959788200881212540334664156908887301518572426259888582856597429147401397644675204231898123089954310595088486301804778536815686248059703216919928865817258261825095355521727832320538881035236433205733513056066857169540627182269091491402056817527292458718057219048235226475221070032493912137572654245337765263199255926858947639056477065316058891431812246711566927142727365026849801359335156393435555359430622390838003501385296512220926082618864326198976717940621125456206396986716265056178371050354485961401113757561643889692697440691698195205398923299045847392567761062646773966999830097650246414702685205391250684697046971600062404788030636486464176412266139796095309799502911844305964529558608590241670397398328358198149118569866669414189423646827358092650902023363742243588355205814944306147497082105866222446844843909476629642112418904008336205791215402033333149425979298733717008104814102948197053759158178231782211196357335126231621684559870244554847128859182922431349492804443332561328692908251579607233936099519262509614649690296418503835247233388639499756049334436592218745952569112629250979038901841741708244687644357757888979597375041694491209519718935979192120511767944872095359566841129689247395543630546717127017838984942424673906887445393112345904289256235048675851408299981191681334986249258144357936253909224081999100726332119938444096479437874234230367943538137466740564921595929115085090496060612791300484107287789736411307123880914315310986544557595467591183567477088989231618917099507877207736914392792714372883885879211501654768286235742996779777860813056930952874828392251500345049958387499072050560615848575225728278586259235337704735774303699009353102199891615303486168371987784789517242107520241402994829523285974097516877823048909409414488931596966098601666393002515800042154820236998268897967975992107099231806435910630770506026218956608716410230043722297611094738477586254994925426317725771664741965379271186119405653127340995377540905930589858864509978376812801494226027453863118524993828729909447747887053018819750750473933338483844531312356770356942978169007722660419027357346363420981594328678743873742661355940942772720715024394683252360773033777174984515519693311313939183251988202420678804243241479534662369106966120533052979235394165420833544196204499541964385730801955456479782964052998768443447417483149816682456772150496339231275996555789491465560162493221977107727367544640266469997745842984662541621164128406853909585161481306845735210639759761344821900672006931196262059172260521986730515428388936465388165374180424296450051318735289468804403337332865465944719995626774700676481599539192847788125319517496819875597680924490107205653120737794617090542131552950435467195272104415051854053121080489828938801438169885561088506094618100475627487741685813569609534707418402485605524743400990547071121388917224726601598576020013665204822786643097329914568929260282717083142504758684753837774827757461578282791768296732112807333298968546997843985725404038826808386839410182683674319473603727700455183404580322204022184022203750146447581769406519843475675578829063165139866047677151089588502568632932812382318167044474075199832642198060065761774883425710148842254677697519899091674564501404603488957169691480708870406827144428149127580007980965222865253831902815983404907096665363463240509935056665867755164930318020401473676313211349139253473103779073397936035322368421012575259130790042391376379717948329276294924258152483097099900300980287967432358876049843871837737711660184559216882949479626049993865484650900491659631875656560096778756173618805100676224291211696531398734824021126316914092248055225705873061470740216627644977715240194970679770380942826060387038237554006723149561380881666246098899310918022916880336712008981600573285853576864191161663367362807373704263412811275803800876767560209856406389925855134233449040932486723672663466504688561956458473935203243209301798562261640390176900809067412001053086374799836137065723872473021381556171923166827952749829439597061386020758242932045788265765133203475247249626948523231132808000356185003881283967607792970027551142752509835892109117282205415873750157424150682349027255676349600070784489753991088280975396223016084899240519225139117477733928897358627320983671574136266542715611388206796258791441710859876730348623775616817964970652245308335898900920573630598846587541274637371142353826200878761279201863183286350880528483710430937737519200986250928685021513295329829401019994181081675629241143382079811636416937760615476544037855829144044722689363992827869671167588265832615027090538663272612742349242789170460765799396561097496058920950416061682374496711631322649349290189896522611327221251545488374162777074951244100088934673369534380153376504166295839126433987560977176684719489694785384495957615142615689824439950508809559235075418032868883270989283923027248484109394084914855763377492138819073511209152475710847546166872315219312998518901835319268774830292746009598332612598181862665571955345205370109889414384950564422330267167210932010976171596119651220702318543016291636871598847960283632039249625939976755623294688315115829613487843336112116266382718224143556406022722625596757250549815290562288141639096064387734738965796098462253868764701707291433214225921271127324586919515406349145773785120983144321866494475956422060994245626575216628483591644449184524030659310295467594662367890790500564861781831690249910424500288082998737225762825981142490970179993929580879892334566964289587622233753017900240553827702305171330872769088939101724665820353049714988039141393294640233952643797777350844722852479145749818970077046469734159756490501342481656951498388531699611131680327012606294668281721188219231212170273437982767054170585445180476001557784568186617869967087770230099273846195514275170854252593974822389108318923562280173799101990012195527265312794898618539914146093938686661255935590680342507054632135192598641040072886594420329549438714318137635647940609934767030070491359659101600015928609917071839939435926409228929467066637647450031258035299472783448462519896650276107217579767486370247026016694402905935875240802172994826495403518497763518635654374812134751736833924833723313158264390790086249909239669738075017254684227058130616480100998644845448335019772675333816728687800008005624390439909283779161416187597750943162460836443982535175807856375182583565939200550193990749652028275110166783312692241955324069068524655665902277984404792522578413609754806030428126886148112613174828191603741311330240169795070447346343033112869469739943223045876347862945953082486491759859316549686826624281104378099290759224552597393461889337265118595754803218299569438985245535959026200931296470801133843522142592894901215514682462917032501192963936611845970922287711108614329867984403972362268837176853339721718159032716239963402320588525231365683196124503249759272559950195492841646198700957832581117277531245487357121820179902533916245058993598089768727474596085990042415016358576567458239835292155421293824673353314136658160335116758528057777919745920018356065000508091237582500397529211108570295429334813096320476517771950396377076836617865427798797009277756742828119937712143191288542050678642148845243012558523401484072070367236155987954661849411264712993973436946605256480080280971122280125576787604881588482347078476329754505303735162518140970533071677991340058275231245151762019966565264328341735050479086240827077629243421454052070388055081024819848487205443798384497686844301798111717110801707024696483348370594903463253591220455189398116844463750725601544625876848203969859597395918998511041957552681178737864832964292113534732966889296057326239752752152274466471447484839536419196777921833821019414784952708673361006798183001659788083434024105967336757000213585583971091258663805744258428558153316956753642968034934228277761527741607548039026881796304223667924714681170625050632533478321333410636843969713353396744331255821724665616397663046253692726715919434881268716883537120711328074182345594450046240768636676375503155155705666257479568335466395706019805533881718697464427767456388983489074660100667731271009179153342660881844179977905038378353457675450768774160736158499165862416295451606163623360692450235053107836058348629851658532990618820057524996836541437120970940051804990990019172700365792534225239949791837459234906835812528563151953995008725045941704102341087429984202051754769942284265912173827427855691007548844978987558605326091255741052342939849204484164979784987427329778238467864218324679937023331628474973503478603796232102002322834755390070876333182321431105155541634742634158621344128245438993750583120388675408441410304466679741845495253674432640575406189240633148401658319165061897331309900794242315884487401879902557285206175986838881495106218584552784704802739672605480594186999693104184693637471808280009517768098589227701182481702117595571675532445288170812197802624602106953044918001484472542060447205006848465533126592368849191622026053180170892403311522915975293253906451854901701680889406347095366704694481718929668335443680160115708208918662402096227921945545616685784333538181965965104776313876324044606277550636616853222525191460331138006285380276935365750791149451230484975280709794562667658553751360624188603237436892858120718153541249923420277813421557167493339540537371597615345673329317208412057486132657354524739001678113114028833079356919962354404106721559310516248902432731260708158026680449462854382893220846995820390214466108005121167987960190805012647759907871301396294591392728244813615649150521525075048034701355000275257915646119231264598759023012138677537515592243662505215365189960048294327742629236931410956277892496381453600728869195456176516436543435093690356723836853530305485007197762667820736803446398696506872895601331490785339620011890821016505951788575403698241012477722115967413110323931554148890695548378848242959332828481576664595337217825375322608085903253848228456239524935600770305581106252776407492918450276974414063228121916308815008179928609983333929376384766310007765071789698295612981376007875236610424420818036624199940609275198622028893643194152751330809488741457923230843519058336308857634473162183952212531473908547818931942509863865871073414188682427919056835435262566791962280316783623194391580596061762696995748399350148987460907934960588794419081956349665930290894128715682860552325991799335462251337313677009844166124260025000049867771968652230775293938533628414765529381163363411702640860295656223445215463989370845887464318687824267177835816731398441289341054132120401991671202906822893739053346376488307535033977721008494371088357130762910997073388746597990345253762248560837244640210766212904028097415763323468777688650384174891152604891685597889005574260295822264559464005236597383361895215823544425119598878113217015597717823683374756031424732583812337394535217819665941956172433405326689837914155533606845439568536625658006290133089619257268970797794449908298905131344695063083272504726682052678022686970487025041699480300223043956360931579035462966120630175986042698352712121186230594402815880029588595608264087299056542723385224889134664397966828822936896689741512463203334150078393683356861972967065866489190978267405639663519298020760044998969297321435392073722120585018864926390772454239062524051762706990404857614484829319538848271272804429605275674259431982979507444664910752977508779431021920697956875486376927793746151392540034842783129205566849250931266092253847677172039391269548915091015621083570774916997869293007862524752155500522340660041459595518019579085411514854191335707277234858201527385758327536599214772715185139921122316402851515603733497773868107130272714047832849919557594406151481449572635965789420190543574952005483238126287436453309688287818207697142198632935086284033619699585081946481891028215988804095790353009764641336892155978482118157829820276396302376813712909638539340873786780004821732881959359735748601575593280180989565986676895205256433488981939733984336529725835636151521892620144954649552742459850575006672789266430143117996067491492177106356501085971620253321466410158100112015416257037554736173041089245841385804901634941959950928067881235843305520583820272232548758365729166062439184985428881675173159289848434410206295309968851430560034584116300661429155184098489940505220313958012869086946265534851689393397926569091662699777118253108222701875691613912504120752543898828247776280206481970867618215778123545194304440472306133462552696448978188367648666048702113844785741594139411057402162065441631843522242877974633882465893229586584272679597217905221917461024946045480180230537034397314578114913468026807539285084838875428012696227083239406689038794545709068787519033440382187751838772127911697573994427622865987581116583545774512314860062974712554773404818162268087360621394883956740862523796779195128320676711661044982658815493356278938441521450117290517574750961973147940201676467161262550298661833326602757533432353536175639591573151224271091661950356722499856512601591756812195959091504071394900332196286666253859405718137438664270530515447184841793955486665041921481300036625705805068548751476425366363965660192179943705965772397944735478899912582187072747281918063814379015920792654819598687524914689719573897789872754116031752305752024789716689845183034605856180006146063503939721412155362789133896946262231240260104402585564671209553821740263886021488265490315545226951978528876559039333594129006792445844258732503940181015788709916747534716852108327736136456414380230143127353888675368651477073105473833111725598813805110302237785988906348733787790703716460139857175349213060612279508734311947652464598763408088393585544030037972121380071548163658747183609139643814597660840654285300233463986259692021253941680792741358534615920869968755449330564535814903022073759366215723069554316903689706833273157261310890505388035008049011016388196356693339649969978440485595320784259918047424190344303320127454272657964919573110903014495107316924712641971511829071079224317828279941519472148301236121089695116389599939435354290341282770859187828828550069099686941153076129412111925458503793535072509146050980097573295540778378560527017187929076867273240456901682839909443048361268526633299494024200878063384093932634751085819544644850656387489439756505673357336581212972308682527979137852324001064690688131125279278642973727968501461365972288250606959824323939926540690932433381240775520670003028503464587196156489305858025939578421101060858900044916715589484619951996577938260692947694597138061179738464429406080033000950721255639627843504740699214441158060547645126725192586924058214293756008022747404821403234009010639180260131139926545171411153615997990436603081637921744332017136569049886024460507667912148043080031430055665548081636440334243248754296526074473809355023549567334462089908325261686459544689888143823087310939988306878360595551201441843975669275903290864212804175065352429838999045270769841874726268717700537449745009609996882297205145790388814838473518017926332130546729789950565381609228614751395262136376959659005516201529724624468202258035787877309606267920823985250953757160102657505471377564919713123671288701580948716892274359104197344611723032079938498581549728474938304994978921047160362009068073982213729669515156157921944479521642099377667584273996856137333029407397800108613376859766388450619474065622695198055041704252173617671309691773590826348481293451324180813165963812375090419799457387567882572637399629740955154847053392322472767206452228672082073548436386397685537435678191573449426390214876002749153262846120543307156429793646779148143451845405264142364907399095911359268735619708712970519336264368798214010034723519345677627681447143457285671811682945587376995610393889551645777943022250681404521011760604270662406212194016719986478519404540987679704114721113704322642964591459465054188289816714698409725654352077305456455466933929778445478941292316102975888930795240624195095753392165135891525939129191433802699743619482144262244353468202572613479221694047285695255944660521835069037804820099166745405097204421636746490228574236264840584428503610473718202304671503667237367047422611817567833666487192314882438390638411935044545544742216069720141902527887013333284401872270681889011556066337730268531509037883496150289393024084075768370101041857234206824764466283240728031122865348507991964242208542821049256726144560129070598429431574393814487537973531686431825161210201712257256084987317390634837228545462965819485582804071666930817169029629729653274647783638623351192105542496978013904716880574833771120848373485217022950706871482604558344224952794214712046276585692253062894597294058603649882415627802859162982251300120106827748806149483881517363017441395617215705911049476556047266613230797923521229024622775545955581481144458028949039909050584175667148884391031786009745849451920044891469651509833576970242614091812334374213281626225705628440257202760665026115776638168734805897027259177396722402129472665311342233258226413347130772366066974731040917647031423104456026291596629052395456010174204950288419288295080552756991265201773699207392696219597719261258738987673059376270099920063997406900058717696553786136514708985360892073881367243785155609544133923610139606025057103570118282027997824354141901886100767294269446756910786569057294940989050224004754068516078806942399639997521935769200052706805261790452537113944298901282979798009168579484702491654774132494903968398642705000627064382587355021971935530102593137525955299353609764897707421132203988775434365447090073464001441752114867574529580328041867630615662825759624594233766259046083752997836485031996472325689419942632048735595861112511763234991006287349468443762269265473955450029727768658670752098321124812626600719750632467713447862494807379558392713994705645452073814064420293550648391985619703715143333188209675167252839058756347584623819459353155682088854855452713144262296255391500920037523446643112142507000169520934596111984614396013289073365202607352703229119104821611708598325184291606451463359840657404534241959101294706502250243813593935237943859746832989050609976297914860741886083166873809420023200748899716076518957755630496123360044376737501014851668413358309931926187365402980337462765168870160945361775512114451706567490184270653003796830953126296308869669850350550490011454789298578092149057282191171636765530383569534053496976667760480578653708972551304456073702309793528060072560266132799530774099813559893461254994080480482505476920235993547087981977908471503372217725768777856436538949345680372415492577256791659500360896905535525137501534819923526817385199884132598119158217377129477538575298683321339410545212585624154552397124953701312087170567092124018600016119435170277131960673715914906582574473033783077599106917139430139321049684343324501420726063390111945259467728489562584557883248472282829837405001981909098958488069812731402651948174994224842186615247883582206562122154139216634425392330424412789195339090653395170101055183562829421021246693050865846292232543909895173627154967578895885990974598237061810643432375037901674214335802194822738409677760500880160208459633782199195287686925124060350063582628647459298104154674526966645546878046752680591556562464499742190624963303588512863870622026331456531321210037582431868542706331458254678583652243456476042940836126589427062067213452456489847230131361194162531953880730664999110568007767031996953817997795937408562067388462969708451880606285930848149097830165896225570650499956728894115236870574280454921220394783826129487535231412482750541119571208708226529160769350506678178832250375804183068704120286439279100333592611643635376398878043293071344165203297475368094673896477124584476908693933924980492945287766294335444006292638255570389914145193621471310894071726546377821582760504623790400052429053822129529984782989315260036129690842961465734419388665189398726191116326786881030381697002057329695674160563257353904670517328480932960957436081803931226229527158901128379553741808153232091528584588958040413069415588803365037925212340086033581970691073395045285150874722404448039466174916173032090066663536718242027261169671112599990263795813438590798886681328972979048958275962023377604596161442655803142201970131635804116818578791884830834704311872582462714311327183933725758186123565833256775525167281970369982834202636884129373290943152424010094649356069263855895736279307250153044904202061874364554054232042613634803819168948445771166729558846077798722244683832234001789011892186708564335412682348677572762938430969181139828237955116038761129908766623783060659617624268523991626768139206300541604793571543588342398509646895085300424670733021974031133314901786042734508682566933660799647796390925209443114771236613849923865403426607643378215651286225957835032783751874858662754273318554905444060003628584045570785647455432892054246090534202540986681459160511363340735643365436159482165711516192469759840759040729243501414119197273170981373996107150864230669341860229383484344847218484941880025664737773832229147410753594440942660381994440948284691933560712036192731460551224651407094574434618517317180357008901529710591765586919047554446880122410482932355983492974008736474204317493508509304247049994352314840835675883514843215309648908677935048687013250952959462864924085597730887399205855445738762410419879705712585240146645869280042167773982416085294790626058670593003247043294882414459873198234979804406728347565599591893777572712596336763075880592374259333238262086903032507144958349179844485648956087366690677570202136736526267448025581766471454636489366634506270596438567071405761430971725575855140319412195617218606147361812736085911775569482624419193348119467493484127330230014884952128809159500059962460488053177170014690206907214428104087541972085277281098837584136161326737620879561183070399952971860216171831717214209727873126060166856336190505980406943995195620293096309714301410345621943985600157100363325986672893801332108776187823270222870300773612021137563831681474260531741016139784538285343740690582120470077772726148670527941778467247248266594710804528309193785273928711682623895833295120692933860775435128330403265793841423900564495186625443559371750554094154486230280883755892877678666213913619639924837371491160751382170102097321089652812957509904050033609292705829175405177844624788573840118721353322201878146665420331348182540034711892013111165637669335905660571286619711340051827744061100030229793800509353170818271591601215427924111800556627015549179393149931585138615531355521375205731621514038367741145464413375800864467712702144955065127410330415075668560962491738511304012671260696539351787809493196483347259509176149318850025515316440425886187733405719181904909603212866037324652985953122760969613697244271710493234138870555613722012023302400754050667671839380628800202992787604797173206464295141633632343680541658879881991214768411113501743837364620418681884168464124921964073067424810277102878575750161067402256379518729730336643978063711027680770460385184745036149059525946778519618674136957574403443381841157816076285036986476491078925990244982511849283047803545611396080053420879357632325354544905834694981340886182447164861366328588812144330880334101935269325104830563811270429432462934748708729399722598411688153090163722430590664855757013438873347507658243204319557731483583142555749538947298288730388437668371077193467393219197430843414974307440490679297554155909533599267104623446172876010441713603324114387973120499303426623408565273093249389587224305997281385574886946330282751203423970722637210458022710957779458213995566156751155181348649307230238817749631929194406669369193446055339050140353246205395143049928607336216342177844187733601452234027959766955098913703784600209241105025221565216561672289947118032218817213355015326458835096172833884990279570087307410574679515119943441139479007623657316348704704416322338564714971412065971149822694630357516920465223003838947221129507419639749260735315951208713222455166273387951534520070988279408535765473331181101877828173229876995805368808550230405794826167449795350072942226177546591176344114862071015720534901228944392439028271998820859201251065456012243739203457141632203908166493428036405713347849490614954532388392894899140902848079054593267254936623064089718228873305678337247146602096546323564397767517385264432438724265038529259323742880989032123898893565025825464387052009152252212735716167465766378199173507155321337629298343225439906382965123806612884130119054772066641384314122363413835640640172155920323067539076692558707789943848320548801754979608455777025852760410971051762325588858869037642460011959571015681577392885924281464225034420216403423650479151851596260602931307539630818256130461764475388703497502496593575734738295668925299136789293286629314572623769870955820433432952824955455578438987743328041251826744000788964785960493129434267846561679643458615517119195001840748750401845520832930590290385804174401281319835617248365308455687174348311655256767990952918607440836794373293856521646875514848912304232971551775326019151408782377641535068986428334933144445339516543865122507333459214638262611465931554355571792185056006496814177872444598323983297939574930466119199704713137296676162433914208106505212631692491280533484023509777968834437487073584066687321404915972422233793266037964998278245725553912520655410823146699973898856149960986732454459799944476819241174557079944370226207355788728022000805176687738874458213070055118903904991825114841861391977397680269847095561537161246484343510999053244556692477695677292658996926198785581680450732920031657151888298321684483228623271650790816351380239121525632310958553422655807525672181517667158418681518263924243773270464914822341294273397152054972546574248673273232435057193166303389864607496584092221988390024023816040053249379127674131392649845965194328437530213287651927196720257763578032850078026118746241991509903367452531672746213316438742002023105062980657106255184008999975251258238011272526289570033564714785342449338415895261022740263448540881578326498801174779180354823907360826777891535872416947269029676487769443863531766330389249243796544505436816569069124851479457845748974726210021084044408827076138318179700377657671172881749872430955276905952513833560965618723704816619768308149275850316750475961048930398448372689676939062359566253875007233743251247605423203901161739619129945532771527830199165633011354272039878481800672882235021623570422763141360930250694027380956418418984117692810937543070765046826234408466892409388738147501619241067470101110859267222528870332594283745185008195394736480186541585612226612320583514036753459171391976043440136913063122998760214273257624596944033105828566252935649396144535413381497778383328520928562629046541113623144876702403611898970319971974594990953213437642737103928481635487620368426494716029701891863534597767744194226833220970405708094102558242273957647342010097068483922856980561993425226316705719839233575136193374659815514383244342196043777262721290558398769461244076095118815334021081226198452334146857198434693129021616305880270833783116452832676567001748810362855143684017209378407387792802153813534888040730915360281667109106537464369588432620949913298810682922326903050616125673758051901201171784253990481847331112171060177266976720733046872680934805809662036712905327689017907649512765961154715989105268677072362437369883666628985844065428225890041898463516617547937028528815582583660893164619229582984447584778629154554370530818667220896143770979298868692303314609366231983645179882027276367363388656884472568001556927139013319590090166458573570851189484773252442022322998885119023589872450735279613884136095340164393752971775140319236395632991209008932315172148883830137644313424838093233733118661045748687805037516363701735094073013088136519921022817987013580607145005538516294745791647674758683055977486947261240441633149298374608015231826554540632339727406583516301966560153944841329564388148025334170379843494450666040682051615993352137367293248832367504418811797846986209562566783377246635505730185594192563515910159176336358300703339479492778376950505930306502891331427902311317714722280605681982073859754428695297304180714364526587857439836020392880897564787522640293053878753375191237038873123933571763323275241783380535653819154879866767599051440863435010304508928924425799563032083451133427165903716229155401694573270910509803526449117836327369728754274379067463705011515799617022881598946688491781445710750073628529134563862135526988655964318284359497452913554301858166435153156187100880824938707443898856088152027478543998592198128696120043996240767789447523850418815481755488071289899002379756153297101358278006412016921349652058144916005715780368010857962897200357943403285624991180041593672110239157202666678234475103548720626172514059330880688434884304761796954191755558825561272606776681226971216225311101788151353735353148381931080242126035873087674866472406881662839014059656263891548165337568528167331696816092933950611879090942553517226322199649761958804463597026950505816796174329227746928877700362106411238859438624893898635469211238719379314229271988939661695992988456256319390083328109371801782798700759638993948109834350426937363937905194006454390451946333181610858283082074693881331535805323478088336232483320559877205697964474142307754916160847737588350613696398825520288726132013930078684951269182894143266360753878223961456450516553138001349737406985495758020228954454056921779588620241197504350182015622306161073376561253782273591345038788458326749830100129588098298717852378256398191313118071921025022474554749248820082059280850668359401815199022532460172075097886428895843251392064946065734654368176927836096980716572017870418646360362134560495615417065299494097409082739779307869516790458333620745642719828577341472061942367444315407489928802099461460441839151946999543164845193190799471037810115563507028104242705695386352184428205005203681433718780379446528895879390643555131825914368242336999864908678627147336820140734897850943675551692656861586199044832630925456496486249937797537510485027119284550875657439231889511425515871557493241312408444039678490213187114906808964733646871594972614874479259505907270868492862772180609090053057765102497248839755932123807211787888443467096936788650893828734458670685723627509290810957510651679931654583394317293903563150657293646533410189162571432457571289941257583795646203726755654431097814013838897798341407221791598283559294333073051924822027122014193197155552776040917536809628643368473915547283297536003885903275912265663676193472223383736806577854857735604700692068378828053160877567922948531755382620909727930943983906745879090146134383444831735207119816455181133345187629177330743065470531302260072359475788063184056650728652836662707720974271241901510781369446318751462344440076630756263663238226568225348181416963185347851348102815992736590432124929610807671576897528162302168236180351036239558978771451426260173102974939006838892728022767382176862214118865661544865917385886284417118972042438622756809793733317868514465940950171136293966238146894508191037712916482908090582611312077330662696338738838167056112760054811664786485491224417719390703231009549210419268657381658868895533679862053576564882934149855545229617250935951641708349016165836830402301168834628732806318742065766213701682263589181846789103424465331742376687362706368047185745020589005833432658995248091615204835687670650388826250343457304992084134647265999538937803198816894859102028337876523627172669447636250258388548476999034456733681978992990440794871191531109783712283985894541094052211414575813580171962904004010237558863554704328307697074622870199888704552295903783745454118591563513644178114691705398661392842213715089418952070034906595498113489345173400667256641509677671381137352528415626233787132682227078079382904024765130206292616315390038133742398129380654206658148028715503518712722678542985662976997694798205216844584312619088944592151339797352907777479691158224291835917018527411426109503925930009743647954091848405127240257821603695953762196379449831129329434335487418828015321445215994773068071892679950516785336263909080857272612463761336098463526144210979539153062562057806464289405475439017651027111578576386508429784150783967665080811584826290655715215748767124831610840351295462818566732619041503018273165841232895885838780051846998959851020453380369389194038111362146411645926180414773877273670533131683598870919800326168967073160696493878012858520454788194393032856560757145255504548595573955540541206272459793854125358810171054833939377162601576398005217983633496462644802085700929361959491601418763420910172783219981328737186171271350292992805872928061630722053223093242334460688071743347357153756696467404707808869700220228925007325711881746606979442085862204230262525307597864957931974646008011195771520044922167454459999283994324192539316339912852695619185325346129215947632309300417753044037449525919395077229900470158300781855169967453781179369574970424906261166331237032111216942512327138836504008707347751442631489101475264268827920652245397220454157315827052945782575299820758711682460375214614075263444155482462172107493216754390194225633396631005434337774102503575874500015466633925665698797916906521601027808801161041577593721965543542619225396801738656086418255522468760080235343272265009059069620550443740889099742643006009177109372760440266504876374434207461295412711191325080425910938487963144218156790047083684648846090413008628801332521206685628746450088208434029196945978738387177303573414962567667836526316335008860826751232882430718451961900683965367472889026078256752547646009661816573382980122317038664150419453347437151920530890857443988939783432564618168816809672713217587002213771770398610064803295597135651065469452805450958311484174726971026349215270279459575354445308324370817212595644825068056450020521925110621550032457787146741745413748734341803394680855545687625508186395492244112453916867925215956607160270211927451311494743334354548553973096573740410621218880477830923838233205638611824726745336601161714923724274077226751199502064839851168312307194242063145986440202284172962009676575953852498354245267598758205907183333974010278993411022629421470201863831170921884172259123128935355675424657964807949233240612403971616999986154637330550222643405097778520856585417135327019578407386298284585089632012190697700508570529009939384641599359437180406690718849206052697580144554526753745971844013914163618708880420827041065781158278396832332891319166900658018009186736814033180548007211381856053300606631182395238512384909208809396115207315009861984336900076140826210161086542444869540730486753140701385487182732933987288892665108103758049046394573040645555941019841457089343504904906183997428438514831883345557301485158122727768892249280146473342466403337202116210126197000336986776203506360816369703954566649947791179371303950052592202971722528414789681950194631070086519368110411484272879402966317241950813625081882602266004945665520355917102592452811021815973083262702121997278874362967561105153323214372417790832731630903827554811298687364218367103464096831581788179506176220126717198398668581107662242964954336496248760703611046131805066315151932355484973334091935948317063447805930206779432110352383590615725710566497599917884137846835466497454874166658208448839033273293067685061187344419630789013019235715481330403466189777023198732698578232823916670938840170190364737536944166522447878125767109327589844055360336296026131644926583244109745836052616677189341477906868382515462482982286226269496555206750348224659748593848184137686620984299824055178044636382216756592494129249770065051944674494883426473351870376203338946123583968194909894119980650503600339624044306160127135365142040696449220878063921229868474132404993421343188613835099417679880257138474605524947784966584145572029889313385551597367823361269148824303411732246825823915582036617416287375597694267038359626535548124345061750000611491656757759153928739512618905883658074495822293345153229633328736501797407329543485746490165341015897156363900623537640264019070049211039340048282649326170126878971593862464487557532239731858343355604290394936275856662348063058926516545825932565382375446294505162202145090740986913527172866785163318649685149676009425067674487486529452186311666490936067379849415903751287653064947383112802143531425452644726843863927756884318676206981723875420345783068515617276172646210705028960292448777972976519351516946329580138913587740243813765277829158823567403468863203824777856891067441190311915877880497570753784367340191298122369968137454839044625876089780169809617074050403366256147089306597107304577598683634832930489818459752662462270718738143742772196782894869978691318669882140088407917264864271958479022385277458617840479407002887662987902077431211267403865692823510922604802204210329721570476043684366493495819392690663920795358688183048638921119328520893287074855191782329248037494523445709497319365809460626416112194820716177078684601447475415747109589959886565313052039426686294860208203147402450144907504824632567079261636034799229126901091100084817722625574616572437682281480707347177020181075949196950638709904677538121317021682645958047508893074116631456513580328958537993223303859210301950124362873797310940392828429366044536038591648098626455271362602567487197802939037658024743377102759108630149560732515604229044940510042920317846262046054034440586588928884280491984190307250575501596631749788909395001390524784185944367055851315002412756243945214712287160808732828564064682397074494297174106886048527485677064087013007643161373135903272791461617674304351503732148210377439467306879000796023381114152831867572437479637620005140236154864582632953498211994295393132323162457548118033186230777824025995095872408840138887190897582898622494390188925524496400157439488082543167758413139190088856530005684882891013245120059882138258944632009808312216903327500537672145498888831098081181237021262459070642061274668074335113163344552985846463747942512969628402850818396414440982676212869257260757205352857795700043832478552166210480342519127828891795612669521844532079889990540321477491231999370817180500262878359319105069820894077922230791720516912732055451546882303286299219806582264591424263847203807925947457935450083634309872203042217348588469616549233645491848649776766981969814323449632906990903493938079508508951191671524009283449377000779468444201041325492275189738626046248655131203807661355574658074025515758660765469723981623476061026447897144095088215206871542300173486025275384858589404990351766845965458204801333446807071587440206239923848029265789467212867563243033544516825416471355695495403656623110275885038463139571241933766690796789605326716840930625670539753973494407426833001692972024158731654081876807896208554407077053425482354324113452888707008405680805379068578693948679946485055041732050427742497475234627186158437799711432430265168797566477990479171750568485895922111713762926693824092227184697763437613553049012808789106865551739423045109183185407177831747639597266021572556277942143835654299921005714875329081398749752744594626153659386327796155391858341421257250858944318741966584698371465854061976503296684301107619357795098000027949146894724763455986888501670113683000734486142355938433852409470190297101174265195650292078607175986635507125239508807366665960570700614802238838910369251451123542394537247222072832971869404979981442354215716584826939449687899997561053191198325637246559473046125041773568572234002313635396172815711235917900120846896566788413636137597134435599422778687639905431284049685389338566380081788659459927744818709709612219707185421410821932467439138803654532598957060640736069971292488890736733963928623558891026085233930462026936297534809859218023581354298217730691590067349618932008841265000377967099106026658553945611132620505016122578120137802977072145852975883856439616501472759222424276939992974403143754517538391386739542323267688650270417862083707162127402546645248175382556156326716805221697598720149616774082539822342818536460113273641859381319862563762812657569180723198603371016194563011819152482668930877109699853421379939476124067405484279973809868356238878563069126652936510608090444066399637353864019677136633095904817523405434539204368578691301067826465011479273081879264540010832949148398916460853220461085631110647268093551820717946846720231807525599426614587843728738740957867395930310838471543368897201011197540629619904624672625612690007570833559298478884988041092735172367603714502541197403618198665865913649567419604897591815572255668492095766137163263105801384075848582065798648048500851608049191384590664902828292773316800747667624995072917553289505027124540737659514419661879390108712423702039500371543131558564922627100774874504461722132980070863131760966951874301106965775606990167848824653628753170629638733892507369342618374782378747900416536530407391331742514650100735857629182733035617123958037526922968020534299563760810334103043560228430238210779727870550206934054255438682663944469070737204866636142850983754752160569145813906834649122059685032788337868174239878112852992228561349824166427031958703432207899879045262722891676870909197243472604576549058162697220406840245709276387453398887199328444735264873331817383526407493314706553264851832414743593369746385235499083753529281225751446769159202878898130569921797016422314012304329046436215203558300956310395083183103958544655667809856481134384114830909518251897795869546702914497577012373932980267653827452782781770843980064533583854070128851033227549192348345176090520378232516311439498938619165397959209912755628128760694977661505370900068509987674533737264734475626391095362095398152981069979554811233032608136030295110331485744136225451691276963970534245657986678869477069392337044621895998001462575325999292842454511221343198591825725116182160767488466093831726103030819375125895632407929213338502870747720636541792225658729515851446011155488494620911782884350963257765404469987878490433893171785928749346640782520722964326112273142363290228049878104850550258775545363724403548071408756146394926844582356247362323939024550900289493120496707913086143899317444831603584911699211580625053950136811646606443316232353221857364232483130688930637098558947083228507953499897100403325220307808309405312721036087652948989249787867845026947113730958640297531050190904984001122897677243142347208338027271306538831950560708752569701867930348180244188479147650174462327026310337184741907577234924810530248329960032628402555068603643389730448128798242907472717647459895318810007745601223425746776599980247210883944610096952636283477659932473398758214399485064072934621401115628002347660192295646511286575056915582020463290678611724021768607054057493200585614468641548296416614326177389048180840089772218751667509710425361381541593221959524863808838133113543124873649774565433801130499245345876472856526771573031618446956636763962558178273834789883117370749345036659869476058929881637825026959619418450694649041299457657293223216024904279340426670024699090868192622386489388708540287140178303622770363949035450065256292346982784733181350463918136281390708927536383059539934525518354641562300527822684383285861333934355539349601208457333828417579720830147730213866058626275468859763662912126851535997003620957114100712847122075063594941744065529774651323282331934985751230028610153030938654460270137757155318072841439094027948253701966588092275978319153938267771385352182980794077611178794954050822787160381189744068657697946754394291972238606121117067617388266448358922934924641305563458664266345014716432283262840459171435747593322657832951044427785439475993434996453274857262168585699607188237655027583598793418255792287653600974079134329697992884264673943308138606065292856812646964374482433896975486582090607698718454221144946245680448207332169083286944719137284142563897401985961340296479038959450821277890923082809690943421919945171210717635105400810738247407993993992768682260055670755974046203099496786552326206484957860018035990109279857088909135890187845991392020509375592108181701075909190400151529993604679041198037991907544030608712450813017820938563249898942101172594358532215028887487822867424742332382898178394442947576089417906390390167555710199782910114920553828084005035887225354347198545511333711104552804515221226013173600557208199868741937534824281803250685987809466245287687149081172144272576379648826756412895558062096654140565086578709640403022564561552791457066617438624448853581514029637225290186500696420176347770581719810592963814980179550329226063105881206125225606362449538236198244555192611040654637548900877407409467999412822549330118452401933920900292660337777609442224881779824845648916642482749274717650053025033546083225581633858975945734281296654659728326482594896893310878900192153221084002862444913825799895449193870034528032437288738571486159838666558512637445338668965298810771388269994251866075614898114995870359196502469797020032024351340522378139271517996760531307876836792478491905409866377414540598305098296830442857248495177779360082712096150076251586832663282038344644075553772165786913648718227108967019173804220884550905907491250623178601522475028097260896487361220749341690716255380969853959218640193967984669888266819231743961519462207415829845640637803835827838332166070020854231918371479104560612014334367545618472353656006224552182174016020613163971036388371897609726717563195936083995716221542301930479062162925366379919699669567176491769797653061420384556258493852292620554148301974398995069789344786901795389608333946338034308597940240235883316604326927423617403446403326968269354103912906035290024367840783705486512965631492357669889974299915765656227662152096578666102766858872615801503355176449768678757549878467605530966790642834800659888956670909671826710143888818985756034031290088484651267790274989610988152491886700729670170357870368640635344480531267544743111949392730373701365574151156720484844420614086362963656192160071962592153900803129790649401804285653037582115775256321313303672603857270313661377106293758118780597562590930507712756384566220372144468695002840407354654550502512924661457704147406052494104673297338388430613720780500745795293910844923573929612050753693336290516588920492910863800322581944925879931096715400425886893774133312624516111858351937778648955878203512347037722037991592340030527164173016120607102972390152562620107987523433567108714777367508508175643132554429513053359923245139132934074263960291614709586563440135887766528796574960843191630187951813755417256010521759527439348989301213628258262429167531454679098349959814909176331487514042989996858696071853574097117405265479193421592909710457681663124016796620879260692652266575092520141442307303917931916693052392083792768498018696975286810184933005610301997486266158072473448839204220479150699933346948190710800196051481642166822619929500592438560882942572427383388427204128453025199010824327710789713036543677535795467825264083195771662627334379365639649408445031068289663002525860711560676369204659402051068444643921306398711101746133964428821869408608983095809286612024563064334620501997615128759373296957454413699970345356358818768712209385978587374518078682208820311497856933698545530222302585343498197095954645849157276138239316675397293622895894697529220120037330819909433627901453993161646258959742867455279923094078541805502515198304724562570237510245956339423938892639747528015365181575069808023098046605578806567066948430717294576246738439510226632448581526484060921890435144187672685587956564158298086127509592137200805896538277416490658754985501184784417676682505135233142746654269782009206037078781063072449316830020564095422535967948475905832083782363849812277486381407824175542186850227700785671465780908549389751175807562897432199245425029743987368336734986712625650560275673802131391793025978548294279007566695855292071890258197698492891345327841566500703202544349415194529874888404962229601639761261735743985790897747014936533975874840162861337638116547012739788081040073980614447809583411762101739591742900060800504775027360178981097070044973011705915697273640000284169856049049797852346372635199556738434410648552160005357824585914641733835290357563701759682094161711724742810438562827422303803647295810228309599474478224398861143519968878858517703635760739516421181249470854664520733656864742214281365110882897817177603621887943689959291692026037921120916877345972713496808980273242896761044452341864033943598913980800941626372083298996348909540928523032307184993622020029476919697546156265167619485226951550542698257649655696791167449252925724352807085349858630169441463757829801208384430719199269654452836799069669653028196069274530242443511017473405951468416923617132625750144006304048303522394835143944940227515724281564095731222202043602370443973264479395307274831196731474707251909881701895517720997786981340705565457769107494993691314177819275250340092699130982699069048121985143202503249940649509063149061177257583446881568425189168113671937020398618349783552038474432100105221299335589652331894685936459796953449429731544626182787069372621451693012160940530287081113641505120748186636017635635913005838851225385231242204823536876239875160953349299757978855406739202738948013015550119843202681082008550366424658984950967221272363689634486109292461616489876080536839553616345962058443008312963766419227909547742205711773306117390672493082061353601079224943854099499517977748109235955676660622131791855262860960013750031531087940793423680686908202563374051476702651076684628555175828165848202846258698057443072804911711575770003193505539259264826213784093930302309757385295775990700943015917570721932798224011413322616837532844017198180516263943669844761024928672644031763147497382258037797297639335660366726513640249079255851800076784070454835250010116607910791652384703780219350420388385346051752358311322341839815160007726125092559289690955100246824180286387902581809581096612779142786298187390608835247181101016135350710448994524437213302482080772269318767872300468035612576209361509633209955583097646094044890142532891780417639811817593355531481893069861888834056571120368939865025963549712222946934364429960567562998821585652626259590724277360338537015297305438513084140566660897078304014023169653689934308056367220099564185195210877404546353817600905897903365068890441827284678699876089375849698107644755594483537025055983416653588901145179221446055745697102151400207523585472233595102649635292848077534926202270742185960929069074362700105001461761075343321661240488075815266487138563814640279763974944720909807254385619336890965819073046479319553761476263608865408425452309546645981272153960762455461514624205594359624393686578358707179674701109978367731049907920792725807387171758642841982143911391101560714143223352385759806546465676375949070567153764910977419395861664393141556635041522826825183357661283586618134608582886849291257363223774663841962644060326344208434063205559237725709814426694847571388282642733051147573460522411545581394257497289102256242263424558236781058775401320572648205075611239929805055249817356161219843793084131157381927106996826222156010173751832262351901253413109057732509840044599979241420724022685624793929582125275644962367238841070357877233972314868050407760904427937784363613994885698411171589363678169054821326571291193997894767848135950329568973999486533799191154882012662569552405792154559686825154712515438747359130745087045504955599494124967707896556672388684322898333371674829666813039344766435229920042635665413370908810851218829212212250639170010166218150025727369046482965343796827024452999796590218588002209292805794211005410398884810548629383600361849475154177557036133499906828940517303253974019196435232985003241583885279542460235712044022115736673709470469791128912678838958597360936121213360796955798114306271201955666133495660152955036657130970263619039624863137091195170167397688248417815917584162059448358165183562415052962025217463042701983618863007246733153875120237125013914215140304531656334627435549292465420325177084578653019865801151924213253514023220360143655150421276934682552914646754005433544799131094129638129671471477656758572869277924421377994929532115601086322573439432606674915264251015119419627483265421051925832245361677009653311729580434808939196901055069764662991170675076956299443165207944632891618990146155254397344988430045312753287419636946862309712901024292041800234009303603775494664560240430546619893548847766478478854147734344755469839515072660272311059434700609870926744229961956330895510005331662898399624399062167701801754269203302716918036042122667548009250163324961500645419340105433873320811345831937957291683318513857333400382410884012012592656244366419469282594343957188996981355284760492141865512036032533156860494095007407902276075676878894054807366625241163423175648846605805435064211253381774301085199604019596354680661329722702037221090656466572666057296188880683040070396576956100424995517090975925503930174083311291768926695825048803766053328237747061858560843585436881414698999122939198571402710778149240060007489181069988646169643916370527997167923857276912682700616244111259695118184741167604404268561860820876457369939909280972657338073025136960381221214774884229063655402637210253328126036636601017864034439783313858592115634449377685880958759841926238484913416193626172321052855992341065674296569622017448628746565665468155502302377496616613109904256912882099544364443697275530289502295458704904396671373484644976338261820498070650135502272477189068225496074882093057355803705296211521734141101779833516960894993509199762039016141656147019756740045026999675737418470035485759619029357121351425774010869735860742671570441459487107747392532150438131537861425599908205452547164563604084278094182822152117130239382324884002817476455213290340005295960944925769426683575285068206895477771576888334492794513801409680206651139546635021124918514855299011160901628553430545705936107798348613231667889172596537275959945525400849306676537819554028633391554850135884807396142898770615105740552187337676647223834080988235601814783555423275654278028557130621270159231680652216719173897275956637920465925097824162247512654654659599104726566492670899538031607343858093237705445319425742033209670311310124995248605661500096471695673547632027365702694639584844086223712293656527222832097616437719755321708273065602575393902827508943734689510793323324824402332984519738130469346761394172446744963856364296530881999335604884793879561216899409188505902563887863408846140619354970083783006244871807299961749500820007778124381588019464743239419203044117834670394450432501762915204601123484777152782063923872305653274344399650779152287088594022413488691277205658407758473810888681624352812286079934130550983916563840467368124278373432558148791868713412031034511737587928609252160250761089703644673224289830315793772785531928897376300431494772814826274154767561483351744233843142376731072371009845477296319857296887917453992959733112706443389657369191879697931979393904165027453808176299508833565230973228519108701094715300070980267127150543759585461951113611682768850019501557943042779909238581807103020121052860636048221684380176569777586776992497400096122694710505792127072113569414465615214106937848223464009758357593195462596648751753650530189317285597694019723939813143592384963096692763871074757917483180324684503578750842286514770866840928344729997085500079086936002681181648314802953047098041733546906194148685363239349055406428952237420715708280157975548140246114453529400057986083096944090788595513756970859837346408248265676497205666962321677033367398532930361429828226691522415414354237458572193915696941721483294798763283497269193980163065787622500912957151481844682471917320862205883572360656793035355472621710317124152008097886413482016955251973303049670909217446965911772789909475192128372955075478336244132443896035123259094451680333776440851802516009141228226587856509176902716209995425691273708265723284011019753636819472477702027810651743134118823050015375278532771412478018356808464789672431623567809588918165387066500165596013424418929501224228499981352749118332395582404836152693839043722742277213189559380066672432246508668089796449287579796948434495985598593921744288933841806454293059429868139832132975394315954804961733103427261927881643286362513204341892026935534145478724148871706799071750235953149856242341221876005707089078326883510102529471205845074153254154672626595680722893025553907799955742539227518098545239428574694622468813754156587793518853229588038685195996098089287661936580907739830753725270076746797349204690262882204622437196217932530056069964612491716882515543083661587968033076092418590971488104380351272148174579892034344866173944173832599796790602364172317531118923811679492975539135137586248470418062767376436136853162259639454385815995729539334968731408720390487945021782379368353757254857652406874373765684100302208655609672986946904925553219478031290008159321811090498213403774269143482781802375280889002358001068686803573768913624118141425892163864211143137734423914156207566024468087480166438683753198659601405145974447648663087001031136348306671021123029810436254188526289451773430878177984251441140141408941618614141348831090699218387538032579162534233900994769407674406924046451274219418228541067327917164373677139351593935937904846228465738814188571624597012012093474902778734553247752142551123591495910887619873859647958883341509583578948046041318405428531770820265898062044648933257705620923567245405659771864413853480598132058385218687252534558216693321145858157145859788408842064812163559223019222150386916033421800137916136297874625361128241863593166405277758342437912303559334916143828298928300372442126205216350532131632224371681812380400158533348696906400472776252824734407741855289340913074609452885008279686836468253419704557725752560713893594132523921471859424457566401029594344948669104888149535841046215462348321740408864910588834916924086632191776600191617087173947299408390532496584774191798679950231137634040133075713822406634266701422547527155850270134557644099083084153604575051250681033608441029578006316804584234086062772708939588080693534534972645365814162952395495377935433305447338691290322310691379532172350255923246812082399592628749586565071454845577706081101886856593925288379447684708992769910861948162377387052262263385567127591263076857797699404523817844137277344083613130426692062803592269522554735727916710248176779347766374604705113544143939376571738203892786795586976152340817238873177580683616218118239386364989925463674458134758532950981348753342674912993210079842104297644788579277278918385553263715019653273815477696417247030822169205647197518051538722769891934693346642886830688669088608185868887939366874889955503550426652618077316641456862312559948946975074274803588043623417193801266090652107595706126775714984830613193778060316774844736910401554612493884552932543967751021978643397865511214928635339371457062202500534077275160627047820380442528387991405579877685669677397587081346424707759739614815145685413956758560567053157892655258190275807423915239533727133660321338254588423318562569436354930780803245151703972659680185361175991569327920282875336002884445782192592670834840379299092259653583895531212239649560901995673363533126814901301002571392219235788958935794639885634871157724777103191224249052039031777616005605468946575176257166018262448862538878110216357472529281702469728549552271614815980670602843137069565699190529529931366980103560382213261486624545769977132101316228419096351912372834762130199253981398194230896276496994991583881398102899645693221053243533698720504555108304644665277490542044757711531047272598645823541301590060734990626557529987268434175155717993119122289528142424779288308923893994855775387649659310097068036064886436167400403501725310669636296625782253952185733507723300326802506402174964192959155206176160617767279046772111268006553228239587756232288402721929249420385526431752908539439318671931537935723154357497452110397974158094725364346633418629939635941733163906808265585341749505843068578377957461668584325249755865445022288868963392574863792107350043497459478696793029659947367914674444997586036080201163123827074936869268653132186823521186941659982752585030832308624785660145172553135891462186742418333447047774325895060094366526107963316104868105905047143480446593124785864281752426299899273683025735511641070747899199578608655623677342088369912807916372840012423436058593636410306032985551938612403838519988097774241609795907268055739016963389057613541704056416805168779363199328492434043611171584075675100735263715530115504246990862894108826745641949530903382582147718443882693693365822603511440223500610173642608463782245669413165113861352232460181114034917790056077683895567519681489716523545350468346945284389149288412262999709123974461008612958226885182406930782570505932256339786369883991552177204925087330136751649902271405932076519167957450160135843178593371501072891202459181162442795775512962527037177426913810596446274972299277505359532984478164792588285852851053720002735389875042850440364274057713217984774253760387105179796719106835971933176506595689279168100570216130582367412475412738105809464864339253189998867436397453618020170240086787307647557236727961913026339475664267329611822586552757421116291857329262158401532198131933399017541460508850466842128935690951693878245811855012466666062008468709869690734213018196492823063141052710952488770984589365923127057623101428494508491033712696637557929265576547357914145938566179319886748842471420159636501215683196233634963198465635244402907642222532470127484703831065471559557991570660553341162989412294484055493542244639525856127723310418476142896514435797668961040626759772649991904027437073048169015342574935874487220665346539470913638836274887268759737614458205093753215098807101882430276962881826827027969562905722467607382694232453201235420271377795920640757571870709535643165853146708778559976467314013647970780864032497050502204866802698200042696155434334209478446711583679141751515117076764100194137993758963299144388543497443141388083975464867264197952878484692125336638142378253280210260675479528570959000171556832536517787109408314723948642122540210263006347913558805095867759347980857359395426620180398795616655155797446636560452386512564460684004221072288614319368251880894989130895609227333873568281815986860305680671155181933226736191474386856166537438648520018762760823221760302862233715549463422911164583253258570698654299011380981281869043009811351067917891147401570934653026598561504693247138766695922234852291927711358692918487507284779491559637331969007556216863357997618301891181665866242898038981086911200695145897328421223057605750693082852458007144412898975988160585472444431124531356203200006983646954292930496319046722662001914947014643390792544934052891421473743224293236886872442399546638519450339955760611784898273745433096587713407990269812272311402063283582476702618465480507543760288036069288196457435893287804354418000260860421459953641630434105241403903077570952912762793755958605862037652786960499030091089160114449948710011826334310322007004872157158815106370296497094683104100521802520421906379117418991803312042766130306730113915571525706123979602617810677798925666450189223884544698783820728363211701862607433702462178946254194038300414103528738391474095217694993245481949004997341070919721439398722628373846574136085560634323917516656873000548758228681014373016905364579497642285030545199201983885196100806579187645651677707025988197007736540194494300205670987322975237290748698347787824795000306450735023234307739245332286546982953439484464561775936397710999948056887284650554044671373207177958138319312280298340331538028596470542592294474145254868847211583431015191334730337395164649375990245630362358826038731764803104632815785585080239087659624168317836710107449142180648651721655331195243393793805785860608313039762362304547547143562363642919614758557285650239943714447286221257070434850474023109344341741398018632992591457245257506794276501203487749835865272576722259078129827635353473609897864001243610214719733792163904775427398573463875561269974063804634110908804810653050075980608933921842123113486770447524791254512028825228911089048285343729247183758184691203235978441997735129775034008424269137194765332014079914739145058456359593181953100143269835557540950778002306126114781162982632287771275385348690127916019850553450356978431991146853651598794576526103250889857412490900144274537681424298316210391341006029534580386493058490275110397284443213361318227479622352776096936600304838174136672150336568252614393954276558318784694153826693434008382654959811503496602794538654251909028325452886544418656644838491862840896364590186866317413059861464854571863475206267097634585678242485764761887766777369967095999874544603786953104135977946470937988701900153912010869242385978572825587568005855102976124918493952377823066301284055111359482250215633769153626833523051059281004115432515451710007242669597698579461303148542205211891424809166174943196407079491163005143432640931941897894867810759473072200117072764792435030299571952854678151836562603059179383504323203213822702147695940073054659073943809841386721707257164325615942654406719650411087797842322559410980882396073400034396762800576522362480913165117329719575409947679802754210744518533859192653396429787355613704025863972780173232335751079908152231628675161935570833279879391098039892975270831771396062781975518896217311290138273379302559438581326394764628428725255979739474127217521643035916078225952929962084464992022891441231422083194127787501051285097001251027084880470026434952733662257510609954293140036768111998104872928380280168147159161377698953360814017605298341629996199696580889502035801220892367736134785674307608575714965146259673102912192840293129855517002727429090737971463846560408630727911173895355733617192810527840546501651875785711443750624027885817247167739503395127788931432767540658479235499699471167542580403968323868551430260469519578574753960841976800789057572207370163142730432497164099969125184832316815513844951198068218145147865712632684023548547613864339624820492231136527247066762686993565804006168195667523655080589280888163618850435253512869418361951140827408693768586090331029174083100158596190001283860855049085992652257644982982685783848188855375630175565263385791331443582811912557564724288455460257385946096379583228348304731959761719391772574785103235251562862142740754664003612516014477985084887444267708471776832722457929501193259935172725637238382050445193369516986549747202788902228118472127803940985790505332140912473517367528221036668626103118805237598666489354561297701752191452734089213567688626361649058120126820996305365452977392664744492794434864964903360948335662747630973227835357225824502999818255424990295577914367279320014430409406435112210201194143670451934794060985578596760039850176942637723344186497805384487004847147190259224280829979305880841297193092965971596480198073210965810417767387315277389577622253391130903309227654223864608561095180644124422132173290365961395980697352558288286971242191232446409091649264338224789422352524807130941644094780358936365292344684446670153339305534892966856056689804098383684346247509170077274579396034282236129686857083457319419196611636413462882711750585566108858531956289912505880489087011129646238584520662840646470518934309174848775974054967779461536232040766135434398093920313596261658829392110177325152524087836243485601805928484774022111261039801961404653155678032724597562978399267840601771478939077060134407051748817688229135184175819298516780898843961180297539924339656861374936424721241165927311767481460043511515715121839679412562163229295125100270352910186375279008861987033339264402075838346457557965231043137573060601584561368746950863595171178226181958460788384718925937256205053412847734044241631347287040886477859608877746830478081465357495569929463474143319616518750990770380092202792556986450983426627703962272537197494192994929914987417409377234358620528614045031235943811608850192978397314166194003540989491757447162164655320913682148274596048712173568995259662631086858836259220245428059334907573460373385919620408396761071969007325016480457617898842596807190017496511015217242616804016761133245825821827370113286139963710934581832859402341227161512692130476422584334997843174134720414269036914229341289680467275121450444558262783052154500760781426627133334509220290775570307134946232390267677485288687160530992011584481525701272075851934390107768579530410651424822654668144679046458412403646238738882608888940590183859728615408756086183359228206315920567561367723615044981316326429475496860996573804880796546421752096148942936359799312642800573460962838109555382640649926220817281914817813039464534323545605395770349040619791906551419239312123122095440027118662332991250613337545489706226514731842057153426906176941966243296297568688833934429281562621486509444264848965410010683445229265717808044115634075823492442852764424185099672831913284865072594401875973834227758749684456809532287244432445889489596878690985829799359681271101782773321404618837176112011253056340930305044741248688301274710712819229735849817469654807220281103032090938309693537648596133546329881232935855243596717389674070225646969292928535653017738229463490259130631671451652108182822126233994324324069940422904597063389742843458794607538845517054761383483078097194840268698124693530501137467766712411152197332067529959665984386785060964697588975089002932193248253858232030060408453566962762124054592277819102075449875009654167306837955606439427097691114420731302441644271484265911633145650614792310241000561410204613125957396736849068418948685546068718347734194665835311558143339475522935433769842526565735493123736094912836889736139664557226653354882875656831545833125878828692086375799889174492448358728572730840979831525903349680424718710847222111164395758597675972857915392279502827714755373443261575384076653663882115983678446324836983180301209840353682275471270265487809274194933200343624095181230547580637121240104167027816845787017814115608710600644781111497304478023085586959941241426338365926425886219425474293969434508497600071983121094621564380560704036287690718115903898981930339436197942605350428108436986335667219555280558847897517167767447525862762998728999895445935252540075032939003473609827458925981035531228750558549422692832699329732794218523414592966546254394539512290520481121074541738483032168209368813711482330808510812946808998189302903687465676948236580941459303148027023779940792134484783625844399828658822846425879975169352075775305499566160458066745267177564905843162634169172526721403068614115287396594269017187544236194547617491994946571242069720117970051618255568168847132596188325995656269996253656899335812587799377625553472257073202542388705529275589011936655969587767670347111102887472211369840852476189821065162235931618253826132035886283535836474074762741395181931919967970472691532450641574381588187647910425989514527696784345245097477749615843941800829155028006535611709710431568998294011012520367925536517852054244758102705932434455237529035583502622499210093946247959316554922612229579958888864833063281410455014703105401288933380186288111520620293517879110177998404555248328786914578395049525445470549361711393336253557877910681012585149492981951974003902097343079400880378396700171687985232429541466585563229469626483955356675240646048571641105644881795620710226088668599172638297509756339926048413319555968775924689264445702055009008602435395843524390410004137800981604776761566876159702362824044011896759053129163349215129434295952285227711423356825450595761213464106608852982445154987287592610248899187607171823397650738096226708668292080828690041837012466340324897186084765637892677878034493900426561508603606167598279995581299563181533226390066707389495988562188223768606174063045044032012459055734433655352605543545387467142255904110245840478406816403734246362530304739928446138427213511861383681538014765172184835306734087301407307188396736080171887013626194234319845461487532984120681722698715255030090856501628303934353920876086842319718030052163247686381125137540830568599258022429450758871410286340238551532993858225841315195573185207043812210478987208762398878685187484676348005074840530131486356131516771711921228640499642996986229910271616218968889727845036263081901510096975407288147790084906332418248699393871164428725706951860103411636759314194023237616223514088541346155954317533193332289437129156543771638876563665282041619811588780661443215003579264831856581622303346690916546894616146157131481975814987680164382439476414322144222747556264303420194920770007847722876943725838269280440069163278131868508867656120626693189220535771450377076473222523489397831750721534781693318826842051669738519390177122968542613960790523736448699336713034335052424162781816412551674328005140046807642519178916673427493768177281028269377399386985761208640642655390536075410239163088684695686814030491097932228325877556271912025534119805626136145917061615018677940021887782652335375636252802094864425519178680296978748536750396442576505453765220319680305278975708370033962445368368694047201078903613184813569136337826455769567159542057291249103610854814902775876304577543020384321707717403764074185285901876618642960176351973473062118596839415131836463324964845446968160597193438790187488513487307903059831914719932694127769467163374279971799935313089104433416767077212431607988714133323360784652301067954055254780025160900391269171335811124089616610952168460241657624520534772528819104522536985611225354853528422390548835195421412064616610582111664946526278394849294983425296673828348906041250187195856256940927440141688107851406324679479881731141345117840682247212690402724959410301886657804755090846055000378258959829297854960853821149748297538273984209754109464624428848328128637373008643583279691522275133222184901857351321911492374642071661261185051536380934856381634473515550763470918181706935408746852335060366468150796620463697236466937052185762793307633338737763163159880342221981029864216499983175207967524474981973184154972967291025228044225545305176745571316467014108933307819704022996307302823794217670649836984132568793556628418147490071660184195419750626636708475380376684177924136606330818784960045227369488624898987902746880207103111247569554671812825349863292007926439091305415111336103724639011243674951715615927616023823373322292119169569795867645158643336009924171281073883761227626483676936467749749133683888777029544859717708337321754160541670751766411528700706423067487217669587599754076399147686933821126767336227569440914755993728598068241742261409637465156200428523214611977914918575874321321107669899911620822503844564382867280116209185492877180187765799654281056568209273389341103057728646931924939523745580224973167461138253774455217363489685778012106348241965081373648392570520163909055114829181050416825724726317738298725545281013127508562665419055197949242415311364211084683335798040848609505069017201268510235563952771236089807511150843633818438567918485221454590756066964790504125135150117479669260619194265279105318652236653751383449237162771688078899337777947871645709643350959104042329941185245225233127132242326507921272432147086995250980710111307811218864516546850791101575177367254013027066220138429640916460957013013535523799633875431937789377608069691879020550155511945245728392124104121203508299701562836606984463787736760972722150434106371933683425122107369455998464953631309091164463534367568985754201197952547184098641729882288668358827830271892147221878465718910297720103183963091514696031388266342703100578214914931233533449399654942014366787549944830266076573261019189379422200902102963248584762840104566735940351167404905167418317360706803495012285506968855020803496292250919476235183253118506927461838476479982808695157376463017262193782583804020940054843852182154315316533396150600309168811675522300552728172267962005744563399553161159250331242879639781801685450644307576573271354409745893365544180143218188193424080142500562525942785605966606786746234950275854478129573912771584547463680347447547768177560608893309686059696021092217953461049408936917805827776534128141421079823152215293000234025107129449473527505520144351559908481979858877869158295100451500955007384209627821473942976680087815070169626079202350729401418494557723943355264693466780087305941509498202772458235515160686887574541494847336074710737662144796966269425610793831133215568777305737090193130043582656511701646173307499915839163678430606079561889245023910817795072213478152775434085993633367934283275191717895842667910041447227496885183838172988187439871525922537628764513156996847537733009544263452711421883110743751860535945725587308470390076000174849675542053209369298117736604386532282496210331510921610067802140139622519742821348610498534711670481400773349265196740779488453595943860006144222193959025959920120977593672376271240894658713316865640149335720711084951864067132178637719536526116798814414382630802394274133830214810699604708365701050037436915402370808394014449638163512379929154249098021438217555278922171087232146890719441946781920454531962206728095540031549752511957435121178127165154323754796640472071260670718757147789312094707649849228707453872670823146926109428798102742549768128346416875355879680343472769405899196376469460518176428187603161596869414461217917856704103408321389130542587182622185430957317443665076356219445038046684497903883254932459203539437992631294676485626870480667440888658889785164959704365778725746465116475219369792047695919287543717259129836488538648120936803165437929128352224189805902875982871030770934943529052845847153129127479733368417712632570958971088827488004924356344915161540070476361439892153162631893974276303020173396023124376547814975579958121824670260206492709534931724634201791345024334303004532354608221758212687397849274081802496172149190534434839141049369848862195916210761798504965472614632356432826796888230061417043984360812266765532150447643390786259876274263787604252223565786096174866194588389978958786373312979310611547027982760465108405317892737283397518500981794563806694557392677370565505036195276966204338567801610403756131792441052467482228575823001598808980726847668993572715909439000219695636807054987877991461714720731680783533911488699315414402937352682479718118980528346098039183941423245192282815060034192909204703888665047465271918204870297389975119538533096138726933240451848081611926035726204494535278010898179235739287149424870030321890388416516265163209239250463366728633333255594293629698185948912709065892280115151843410668563069768503589065684759706346204818250411442682906108384636874441808239683597091614188073501278643775202530011936736190276222213240944185040351137821256750272955080257080548095470208870848547550223266451268282961577104533240465968136280620360650758896699333457575466457219084673996098797187647477383182160509452754988060850078819447409043733326893454597105579743963899261458115430614858546788302612554079496304139215259935790199305604207141814512110793646432712563806962890593432219333290414528347115587949051003349284573490516553274201313683483569665495298445100144520942681088510697885152140512962180166258431945070763398832132978319518759862785660470667389933641142537620359361284287083222343627728571400347472251613034758354948672537772227056125310589711285995792165639465067819459223560033818902988207624189681145842128090170331359323451081858690816182473868928585884356515422211048858824647382184249289271066403599816524719426075420006655189556537371834391739933443181441959498314165855777628531331751956367544161307413342910461466581276468245103881740359964537351605410285788544433685383652584929064607193814296717867305097821450720663123583699685377831364157748089316991232133279784292084630757658861604402582852445961238626589855326388422766678370899461413481637327288834821339246875946406688554331722970929821557958176411547877394312323492399166371606711849908758709831707064254076328688765688739188252800270053236604362603682685941829097104373064382485220199459574442028564599262101743565895356447488955700080515034261142431652149975765709957683434978389907361621827875979900912961439126993807411779933123405474939269212512413699033629638981389814766353532089966492266133542960762827383342452836954739598527716015998497457286894196436214995681402616626923337647082487530692187457215636223066036166754539947951383445132656297009478506803477322846739850210793315596166228337796938242598941179770263985623983352635329914988072829217816685800384949321732781604659932917087772191706474603242925773070780816212100864608796317255943708981500591839411775240857938180732003428103272223585519792841875415641266798625176603302167357750627462758023158735264174066975473863836299745035065384470100021932110362039732147853724243862172404775609727528312709977218545122159683415401302955327510499807042727500437266785991424439463302755760533032200490081380929706782395886084391315316869594159259896403282810410086502093143535699442028867977732751198342764737834322917204381856498546276949074783293145122552416791694508399642263413319573171510385775835788315925857352513442923275543289941488060255520416021299616010388933348702581740899106803147736030165546001288998544601661180175350740377766852717757039894218810653658215513562700172330758012542882911597859233959160662183460750918893041685504652612133134523805233972059712108964147089293926409459847968810552381622172017184315198156971177280963070031980167106409847915584394849242819031443275217757986445273183360663514540938408400298181381584829941246114187782727443671955954359539083118856103542100430101585563172146169220251855724127143540269117474722583358214815083230810881098624710450069588419186541619742778523699623175324479679826445025283458627416504262345326014202842451529559153172440332361240222210755460978378455629805929622169382072487687361419359819054686286372430691871964123716373970511127018851458885653475176035567745943255478391777468707102467073834327553328399537551998102521824697191188333110672452637674599682505746593494557328625833555344233594071160325890243659917813079122634277041083291669495713576216870141003882382886987365680302398400011059799761873627751863783659662750551067937772371049006907607035727313696488899981256168513089465849951325702577825724649373777840291729073230989141396512827696500666292307946723596958108847977047895231182596077172886619423341023626524447811137803551419716896138740236571369052826453542712160007444462652653862488818329411086118988130422476146320500839459510084587499631107801940774490723272924329109300165341672316348112412926382576616890270427839903942825145236080336130154984184561315554475588759365075469073092823434093498749402810377368658026357585532619415137977476965582687259534938219325596332595259441371283978351420590430802688189402868636952681249647720999414883415699337102572959272737826655136482477807576625433517348018150539000344077375116641960826726651073916501413704981513614975663522497975194499861654970345797898510015358816291718944271024587027086982863483227025709053807068144614092125777827675691084755362158793200046829968298950661876881092783349278691876997980908013479553843130286852736230022139353237678888174651213119616687208921067937741248106315543450041324279303881730917418901141064578908345160027525276929137186067990262349027996804643426779058009840076899145723511146853115885693235752180806993035340198598758612677251484293030190124152136293706739603833303066057722342792434333448668030313116301704324084087967426848881305734607938067424069584683549869911056729303905084871104446113185614859151388527027113280018997971093947919612295715160479026979463382314542025629289506240655830956094837302696677477740230125103213596053372066063344807523830300235561500384464862542532167824346450627359700825601594598300165944768469659568007598791776901330357495510774002744640272090544549384007222689581729638651638543070035765207713382029544969683269426304160034769663796266525970019150004793923810457469277689843024727700008862243009008146244720757491656689714598065946123624432729337629485483395778240280826733896299119442398228404885836730446447883307882729414140601605676570276734257854118406815643864808077997705428675586834458053245107415987365466227979171803882984970267258134178818149373898333459321190485127727982117126797813084711220077453673079466842363781914705218461594354008801255691693365369503086553566653083859406154661608016412964107182636584954535184798379295766303518156961479319288496444270354384015981499811893781296712212114234153282675128996495267717926589621811937713442179232061434466835387042902558113927337671325865461794248138382905118908188938766287161785654712495281769851725270018115929657557419996391443057056577373418954782287198129293776864697461111419466244182756564104529756683876621334767583105341041896451617367569104902314113426121450047422061844724490258038620253347959098948601149583844641695014666970640189454398257177269642329595920316478226288316375489673770109023479664167397440342124670260051073434926665699004068367661564379594352185198841660970371900181045009230167169233636944466322482883345273000423191601126874684481397805646308050927631923582067874943959531373049451173657474463393664750668909459358519642930698564955363804591676693474888342445878469146979912458318249084983230696536801800946957962014701797499237567033030228441560288318456244916147412003172392514210550815078123863876941962056464801122510195757792179161571285221663700925200956752319181136645472310477835920823020495561652091064971030995229254751219929557415664104857841080259524634685263449820404316325203699412974974550824017815258558242576385996313386643781128725667950839153591224681453355074681564893505060530078387968554061545218724076645848030507722924581493556097351288181011476394015102877846290061475475211005831522652356658759234943196899997928063837951374422162549000116928795820703658119469838571028923206303558237419830911774266227696781135330599394916577942245304117026286416108731855097310168608962925607089263993569471926002052680485145947711023724857580425826137843307521107421756449072447202482020920524384672504498197230302617178781245105769633585025389021231193221648459954461489026310508468047973591077681165843968715766859827573634977767370485987439761616712540234580532474442207734107878411794549215147386974091023866488269346912362676373367180864919038593490411704675954199483179476272279462355497844590438158962669093069561488886562803567658923721543575075795469564868924333861291408721232162023631446447311395199820767080745762449421064483233807762879987870297292528575669386081452709776145310083191732251963460849637289546062296903262018033388046592120450205528075634630269551365159537460447306260779611132566749989594581470406196542505785662311142627694034916384459335040212006567450761597997047522422094170403609859528591941359660995394325809653977136574964886264693436703356741360852483025055196520678847409126227911504905831840970129138094834765444702285114121275113407564666045444972835417230399997273763790302238032310145847341604037129702201235168335487467903761501870109698895211953273299103359018969017211516149584911379049130374256313264443636082588064651587078241635725908326598365528362361884807092173042417863171107197467745718565014327266227347279467008325728173680827619786118463048753861910750271560573687847855588353624858144866892443841968205208191571079886682586762870874391968305639263735391783495601628493721457734199517989860629481607240449015917117963979355093503122636062724822290287788560495691944119245210776432411136322936116113780453318487549954363174044315034432708423532325458878354991553838700804736224715200338113873422743701107036827651908418986679865162691124908726779131614064257196227804873962448081195233936598482375780521081643054370900278587866735873602055909031885762539528586774152985749381400776516441800217640169859029491300195111815084607526533620266458940555634799589706684777781321488201182608764780964686111823410363262799176781418766537805502380022336667398462904202912749786221941955873813765495941426287241490106422673188960931031137470784357389741712864971784715946276294911439169378544901664810492728736858084620396952945013686589917605234420721458104502590019767831660465199819970388621351550693513583519700742303298408743990122378942173408329447799258869592780735276712437077778737918600498615390411177990759405224485762895535451387027352845749933096020820310203380703354901896212670758164930506680489862139088936495602926732315840456235502431642930591789666069302778657481824017116043378379347676207231976928273989237667376677883073525315931491973383301661450881516743748230472594499153968722694851651279813274767696317191881357652769917677352106611142864242194832622686694839736844317274790004968998174524080856153527574846376428078012223186856703762832903418398330271697804266388277053908476323220375362214573588016932076931478728491744206835402195643503727871657390455893548019361047524823065394472004755437829536668979103269663860265350279653070710326895798939544071533978938334670138719502588499322909854810299742265935845641482916236722121788976245355368071819604238089709374828217868472572907070170125407848772001576265730195245399085602630730035920240601508403132147619227946623980266225325494938905169950165665827905098712200157685101217896164443245107272877542711293895601857433533866857362027409832527618690154079065964569647245904150065413564647522640180989485725263491801131747500168685216267719149126888136648554640802107612716281325068150377325070606104731181923176099991034449886046354246010442236028414222168672918360359537458200805489503082617588756267017060778809343083040451973685344088239090168313129556902148199134446958964471171965460572844537263997962992738809005190399748242007718529662443695977199778076346647086826853224806400612343138784388966962459004069137772443811269442163651687143429224164198701559224181913736160171562431723202652615179390838532080896761822020705162288267009547540243251380995888784322410002437568693483279816489900368521095405022723624354172336982858974657105243045683710162919956362208021063635955860942779404701835867502391624126520351331013229899114169629000577298153217291146643218959661007079439191184483116512114483902198377021509645938447067429113593200184047368959382323390015229293253157750064005352481292252929601230924606951975644584791563241657722884091375699203072637581663725024100406899592438522996300286999141437537690392394955512032905933828682172531493864178513338801477794739218584267293976189639124867729850293029125073649473005935163168026763274826821344403715085864293336887121195760701334189381646779630790983708628299123713299790284511930740036478187702504558106138497464325680972586711519613777518823168421581217107594201823327668410113466836667274259997830559321768246599590605362535836043195774999668934639651201177047984656272585627969453222601915435918707077811858322032007530831523824391135346889372111894292725205592837444969806384368137558130853013906785268441142619659209138436484430115685917395523974607073836078634800312556979681978930327680650372025107272590522390002590207904384807758187117583380622639113152408382571762659562430724795737885809521743351683566862591773241546796798643706546092680105058273974266300721811001801502949237665378964497666436118602467300143516679916782490142241330373626360003455908119599576843724943730064757091750611646201239953423096433400668884940423447278225435699072805144947379291854141213764470613308032416756479517351553076372740183435369858197234645537883156801185884862221266772287684961488699933969997802837674627532598217048369954077119799280045874259422973580110214680956736453245997238698987731499469662489930557240427274785103615711737098101088293691579447378155538412900433030342260574294419793054501597952363557265125183087457322742191409016920453321875440095287875985526985192019964215736561714703419509814797697154722303981483599059971342264409687111276419458333488384626453677171409679515616516007989119620696681080337736454153556620349260550897962301782008623877110679113316221864084695583776860933209205850597946470540833663385666405763814691023827190460383939232934907725860538187153744667452074689868621727404579035715503751117819681600390384405889936703662310295204736451507741620746042541249182485422980423874290301359567083363414066813321914762620254458055485853570014631324423630886643999677340984482401280278191076671035208063291496712571314229219026323444453588091462134593222698067392636231647211519769344846141378804929897554621992990385384321321866947014199843023181696663958468941767054863616662225731988330631781993737418204761819300706582154618288508706285701014441172920747276865743613391037351180545097943545855598401133338065027636781214773072445434165174096937915049288114101435772411951610418323783925070285167436710194703528772209387523239239344954268173898945358331359045773240031883210495248408878121832967304273710816948371628995916620931945186737316486464374089663747758355867844016695991502163910631891190659638097280728355822133387912236277987492603554493151587409975026581331991519044863847834148615908423492433813321485655077026099338478490908474159268728799180540741853545251042209770942812154910917239226261806298786838111684906166358324525849728276005920186174918999774451469451918438359858005651098997086792211512678588351430447478235686452106951368089120065847174989734346876984713984910400650932300255283313551727506246929632824877056792469810714459500317074659549408997919613255776690144151271794505290887213371139882782060135401295621749206077147660032990541158950218400270097069189204728676562045226076033847815552625762586081489098513671004431023562684531042287114683324493109075850523076564799657413371532788723356756882073054063041761295791332650431145281506309869036941129777565212105864069693159559533188930148408808544959858120558363367201927156822089696483920044854807474299846204483451038248486152042901234474272139860779144603573061622492708060347054820672127168186605959733720925657913243686852796691813308717953147184466682792942515119594326377848713685470362661189207472372040455253025600732857645629429389566445924898626261117845151198340163589774199212510487368352013399612897575864117725121917685976544811341478166432799962789985650852369278131325139590914004529252151334685544571608807369256182238103081570988706102260175567892445696175721210239102861990774944230213399893027326165168382231195105981068036003697807080824284773482781996734869893283575382027084739760539122727167155423443985698763290495020129228535342324332834937165647768367807332389607709481734041735892065494750770459673671739272414835999989575260152886238026363980770881687734773028149376133532180593540004547094863418388628013087939589795134243867543351150871901516678446322587329114976476490354570817406477698830535331304193265360220997528637997489626601372664730425156746785111401396005291068694269262423614713844993391085531317811156062174354969535175481464107586239516796631692267049965558704003671748516523845321633950438840883408359939241014434845794195051070979582936050083072784649827629988486128915357961385990465084230083888494746527392515006472418544216890551975353942336436014843786891597828752413061558644082147828452967822688999458820534890609484397999142450175182201356485647959924170066371104914542150120234320730922331748429094847658267277126770232965816526665418381188836293637913966794098432934902539818967847023415341038946424665436776823122524503245563992641927294542758004815669108139671404412678042205606718424709603220144307244585121163187827620916941154008422304313357639414263929466986969748816164494898300586371372389674650897103122511127175862808421181985838367088372958673395321518219795650233916586618159962785147008257328960488421092409881054368902163710432063419944634743429208111693663023191224698964770512426560014358921633622432184669172186078973664481451245671667972926656138339408051430563970432522619046816413744110897609116272456793216383222683932268013039827924551774966607945228060641283479670927634508862837634031104367244081058262899165257465600197231359014771768244570766212710520477187037711524145495480404519721033660339818046996183303444959161666014829270327473672921548491494118235993733788748599500663769940517549674207096027791030425494843512067594456957903146102012521826676204834180713911277428000308819359970770889996407565641069228438938320662938135261508931218489084001080565183402576103024329935547560723833986489485647197183120282184949988508302799597226225101177528437157867236056249673027664437760093093766497972764567681495932139513396825662471933916077552190822263868564433312711768721053385934065059484222629994260836141208860085168880005513429988207198931302396531784254475556313711706408957509620162869096537150975060080439652091427204145573125476223672304847510525208323792531688382722544798099811079531479667482315255268214138150386085298350326841123473072053646785846880885409780274001571901289101126004318209335179777746982317001758069431050610686106986913403048622114284199012417045538878906545695999504036450416065635938282545989683200616093341197635051361750604391430582684356260560125391912912991102423382840127875641586526275452971197687945022113566446777622015361944265701896071221981073800499516152817854246747640183654694900625108678635970030835458303165432993134611611944438270177766431848729825012326527659926349195178608243665702558967919340722808529684889813302268350125592990696544718890743970044943218837196321774712740060147608650020492391932449581764702783190615834694422338282379733564367174112667113379070040038173251611050803447189765633431876211985445526200007552250356215829470856451460092482179772304030901951175850123160532953074087888016278767304654469834805156955752720472981761860885117805119362250755933583193626243517133874891465835288676103741056421001290634883664493133251642476458652269229248841314485001794549607243444332865314334679978356022893085331167585750043262186042770521902513765950328547098900357133403919632588112365997914888212657223587193785588965281072243310464396645338438664823818232142251789925597851287237054148215574909553850135608189469164739103457322690481323795067696104682606259007464303953030143796050745910472764154559089643201138607394116388026254039555239837309595259859998300608489270233853144017217655685106222215365669610020597354653239306366159341793790160282521995477245824757773051144017130329992325618675268542210365270288971098006620818682329136285268650084462968528800090407296830801896752895848169947301985709743835117944619249762295137184899631663488116767235945581510166588643485664537422728821045452641569593253028633012946851463380762612848961926973135170120071896802633605300161573749498748024628678601732471337982923139511769492051941056634093909568299098019434486620383785922987232643752173439834953158210347104830829853597726321983303277275850119830894708961877413426535742437386678527777727322929713292807827680582064158548625348172247661054068581567238134490652949696738615083873274198990549885478270106245047375543108233961800413186728841876433182970480213726203630329389096822105618715909179537151782332722284880981538846034751839333322095284608790523658041424199786860760223046164058421948618289455606386937544465795855452901505176976688348515152957484861125199016309953376589097744046493615017803494392146041018977958832576583991733934443797463610212025167869498711534112229212943983679374937118227623653033503257833070339609671882854074446316502820911785352307747447590025979948256143190575319114763429991375280823799178709677198402057059760197689190859654117116686233012495766140048021159185913145313313040742345290816084171916335162367276430917377459302869737832622843747830718000788532001685188296886362057442681145800136890057586349753766436285164124070929455394061642301372204249306211118426030301148453446917555205722223911462380200475028550859618582700235704327992971186700613096771604252386159420635376300794458330835162969948835574541267925922651135955202077559619294408627376694247180537537000860411608060084150095028888228344681407504973247880244563304280404422617727542944765232014610112620004814733752642309675578505017824858944740220875265620023691054296012060541269205570804467529060937604809541180669204234649534607754868743760242661359487509385494510915181564722144760436940630898113307972107997359510552684854003576505581699313876304906865050878317563016455643237713436246114607706771094618208042840002388023887062374184843729270608527731860617711318282806830491397718155447911773175912460588398578916772588098725230724470536585716634585294536825686872718172300911125494958188334047706652529908185115257638935536952480283422771026360408781835570686497175528518792061626781891251676471909984157178811505971185944027750247898182443170737267531018357113118231348528919075871346656934319182274173649742114321628216078157576404309063922416210969417044553831587997949121482686194129537465622525061316100595425540827965328864127433010645530094005877198033861373032557184455368426976070958075946028253253547851152065040552882446439649153635898656506816616820858510797223920701402569796308011567625581051050554239602867186753797558745837432757391675028658257777279353592853182716794111246629343923688849620963257768922723782377867990893891067785340251799176976025725291505263978841469621669647910694841816787250786759533287667054096344543884007261115685843577355340945875194935959048957085290835691613496518116094839940923136523949894775319400863493884725435920293674449685636112615347625914316850363724990466707579322845210188947481160854248220763769758397215815655131778213906023766690360968027766482690404858462310486072306228828621736442490134329925347265898726921630612936906357232416115614549784857050033639643352430474553865871530001294599994273610823798661933083911351263108927681484272992667064265156737908534001298871959127383035605806762637371275141087398295059310344657944444379424000072902318025926567842588137662081317167206742622175249147445840575622552700834670910152894060447515559976171898228478100186648307249604195600933935326377540573170771917870150259733224183847713961560956414051971733730273840853095168252450459466974371232101843098159532166367755135173629401828040710730147067294729236596449607635878148826789745363305525992557597099211180336238857114978650121040844942095938345422006303775080467464230766707465610517391854210846829400711232784573320614797485571704836966671379566449229916348440261176942228210421723791221015199892071372346655297355970362887747639187618770277612408903841366327383385791998767331252473830185072240011314567731260423559947191259488475476967872633466893114800610927020419893319177454956166729804354117624007033894952167838175866170676734295678284834210184333656457357903449695563310662306555746520639798353797966000325700714972694888615947595005239071497992975697035413667578324083710235964451539451004176790412706053940967452788071000215507695312030098477611706863999610378281790677511453565073754924793025324664153731208651761835519513823748276669030395865279609291070656820877007845868125803238835106658156521620253053563025273688354613295705470709450047956291698001164421103177353011621812551101831358302555230570762327461870412138355593918515238090466728237784363553550935948909422156360661603104200477107631403192016815599654026439462992296873345217462285408628399535966417630801439944854240428231603158684620340399104579125694541514652461230191009676299925818873331613533855193799968598201613695535135145877438617810262575136477768011921262440682060760769782439218435961149207160784162451843359640720709336821971150742330914318578104701545182406324618627360602554937342874453990019154479830855686431502468824406859266641720500811116857919423594603132674436239375707056994019764876994855676688976382990526280147716910251359802768076464175036434205641651983406865415051805940219525110973867851278789307017717912157904303426888235338733369688055413021961337970822309169141358392620343244363618004365463890976018764006469468298336305044979122606535188373229159088385908041334085299520625768906978907397262154772759964414086967601930828587826721815801310834505742755619172125010097701163684524203946922693694635671366463823937232985044934518599787106262471039436344560116746572505983626277891805255773122525289763009417490848270494604375838897284643233756444018802095164325673527078673920434721454532827017338327319700624391590580862287498805384762392389642931979909921664229650159039000852479234571095900898795192371349206838360141145872107393759676108604266667638630240183313463730633654416789633360985228065086570214407829322421137417372204892040052773561388536376854500358378863588077914109653144792851696675147765730840756658298410725512478254648308513258255729197682986840874463777093886191634302894658401889816863411377255005462173806421579068779812769681161648816864520998287664580767416211373024767015217245777014548285844727848399208669858702337304056389287783166895054972783328125280921064653607858414229616629186059512397498794254493835672839149342201818949124971913246135001161655221991043099475355060507331505385927275016668838968410284189689796578140735853164635051491318194585437051702722121691448291559930136592922012971166897509792866528548362916532857318619577423203304126961359326127935822496598291132725830354646129859993566526869520817497465366673537823387046375296073755703499371942813514948801850698094925451331754707813272921249412526508473715654609899045580663379130267726603878812062837622530919266243740347893087706395082347974327595864360661909846556043430613486451652393191240834554196751758314424197812219696409709206927725036952282945126001219948791621382205888802834575076072828857397293198157941457978210602971944774488097061701788597835424855093536718946812314952878150757684888450467778160375231330671912574115534271480149907322593173232713427113674091562894811145570109062927093560461874492057593317956675557615739769420929667688881777609397544143726857754971963630631344049587463915457085424458479472572608988021492209230989211262465563521967887282400138454993270572379714297357404329029285451730925120132255362139540985694893289525471773804265303179724810904402887052828608164928250028161031880812978106078210513391281281246265841837269015727996169355487991775333670749935938174733034401648542142650138271071905455406363479430102199075179112755039818784649441913255729249533665340959971849473379601609022171015036751935789426558192100544272879532433136986385170704467272437080566307045725068317594626430996430301715647352013234680777603772069742722437387037999384672047215407818081118358873368426615732639807030178090308051254152684166364880179019280685071768173882402002860486381468886949108974262958508593898011750888647023370592364743183127657357872868798800214212292735150640727018284403225325186930234750190884304206583304536886073633479764241464777424117264913496722417696937147578812392916002006257624824170383431972842703644991456238308375527685136685531404414984973350458206746227440290394698626937231231709228943787571422472995993375790385244502765369395136320615487288084988365520313090856788778142215503229382883339292202835868359698286793625947147890797267534708936489465106252217443613471857802454671182507840251804218823219779706079214700032432706217922811588331584714929702717433222755491555568324558490044179749327836431112548098197529363010365557375691689847475526685732753535376005184072299642774231821331596260665667957238714486236025099835773599064053961047978754387885569291191739791181997602733091394669627681482296265169125907590281456838281321554033238068080690078911887713744032264428816471103904258254051352554239865038978417016941967601438348042411374598220699768245601741443723505668272025186877358454852026055801361986232703363925713105267735059872989618476988603920719337411681531374864592972196308641426986573599526348160534454091382027450751152232388895139680393393979874385132811076587727025897402797747826177460967511648137058493346795768300021468940683258006241322495371995266428272469777252968643664859679801439529796148029784853835943726927943275317353125261271525727135546981255591167312372392058087721903159620684238546324976821161885109263993316800119724376303366655933852612545831176779363097083148903044972799523612418324197389005159049757818246177187132063159416969651024907536578835649412546133838138841163700985209018313985432852026223653380444613074331472776436080698139787409704596919349112176843760939642592672250681088309354369813594910662035506210538160126288641715597342778187341966275050079458147534514982925741258034050227309095787325189625252462905531239800952476300000818815089056277106764758293590551611976605670185373471398056802243234557311043424434472411342996879914176818722902249905029272166720386094205133441655640380897983249565141986001388200048488357245714805894184652129339771097330070094493825050658507223127092041905695459930121120671233926378488751982798108153581092003180517081283861334256087801615734596468809207254513674433179813823103090896353636708092435319895557398822569874634216958970437969945412378049467475003181627513856900665672810004369979188796814841487090269172167764148902089378159639971658188537543715347883598036072085318792879430417842776683312593736579817446257295204746689723882792114062485920984291850726151144593413534798390042173461031656518666168176388909875829229550769541152173293048740459315196352378605781851437220315961387343766123308429748347218551682121445774820397651618357992163122670351603946983310615998050481543936111694620624064388567489377932453337701051492438891912197189404135692609105868506515620461779257487824988655748526974063246567772711501145472786229786584465182645290070801166345471426387897988053019011879210503388321378192052432125659843669345374777465626247229036682703195229708764389926078929661608481666673065456698908348237768538591778765619572265873146223622375679480533238166311599576144912292422621874094436121891967580866508047955669094918273197625247163241576106337013922521392211643417715875624344114191014247184230274062507160778867257968569262014114962422911528001896163765905103610463669342426099270021045342995748123748498589622266469948885771608511069419219082743107267837762161989861018362057322110861113916947539194742585923962295188527623899558558602074449895105331997128152273853223702367955007188003321341003660655499384407057984169556223602422902110219510567605443287854609119508781818569220105848477995416218336601353822148411669821364982408324139239499756570713664314658479677472667651201997823694164952604923399036147694078876104257258066349543322148597585333917381618071569125456183294064172510983300944577856410983405505623656468301549210436032448940220637748888786612845336105248893644518833101017975110763645032001206854488552025621676773307350949656783881927794230185286471392794160280633466634122570635308170403926654653787769901041582773151758462873485323894780871378171547111611638185020848020449370327430070712662663805460720808726934477350288602564650081646208585149086899577742475200762744809280706701500764506685414732998235428033398583523550019818219255231733105920397526131047233019128010921078334288805917706859682975621345825899209955311994007999480130499636557935204996960313583352234355978166487499826437745114812603011696732724817168839895177817179205579806326041528495333476160439148566005382979000577885747601936968255649509121295370417745220371539506636585835647229705866140082051248685091825231307016557318810027061052269893795213397780211019163263458557724940383354407068841507511148215913189983602141668146443634902641646003098813782488692458147979068570397250313776405048529654599999302867147106436446014796237331490686629237359922837938072604635858826955157605593403294735354312277615625869547987111380939851590726763962475385398582242340692493200005098222094151347189539533066121639916275814550818067756269915845022502817790729274887624374588762696230040553587684550203616594933270510996163301259385082369145710158366510711657377935402497193949091209661451565162830130117861925404856144007202457795886066069185252496955719170909007758935718803319987060194587226395761334345482175424403151810421072786409133352760898056206697618121210134406329148882393748264772135593736851857733528988976461647749812120721666693159577022032655504502479579944271544697046167120066765366532946542786343298238329356231350739756053860247289413579693696485800444640022891047479953121498042217545115983069884233524211522267159507748168568928381986553231637376628620085480395015240045672162280532725920366407279999441515255415022524752836075625823234838495674621514862733529593273429622163753328826842329582185886419245947118348819939128515738078842925842948076041710902773683294345135685512465808184217060917061164287826918120063256362385187033360965036884724972291783378722661823120066799586715849514719258343822560103609181639240872364468531833583364916537101492314691313530089833167519565483503904494316093275950202195335877999294847547340690416136511036049336871579182643003851225678671257962038546731633267229953652774473065890938952229400664098821589900240137739266515408526722097403406329272429156277732844960311000665007642801591213206289838168446017104655121820120684143618038895641606560767171019233830394952114197428543188828102207075539938300353873242097848851472064737460304485417296862791726804865387485027514354858622348405077179274783207619201515788769300183187448637574457158566027491166816874794905507250897375543828727021026372093382642505299583582659589757218656249703231351881424402923288073307739285837485257513788799646610131475287717022608673485146284758442303186601441005545677366912000171731821104088441115801391391830524937678592867006370774441268315912286451570648613369571255328167083606918530038966519429852450024423721118808915712370947367615250332664190386567281805647672316408217161968231435210650860709198812454247275333702998262905772290896974464196166223795913472224342635310924708345262872196317969085152332921475536086782379184066132329559743754760708011707798295317721582040069637968928185596774697255767851786791007010697406634444920290342916417552423223841975515681475746138899010194180048653741976508467862103003690806671015827690142058789007865946509108955255259016801323820079533364226645552049032802038420106322725202656026961285732014392403961694433558046688896538336371299425274062589521647506150819405450845890579333395216482015636955632126716950711848851217982745260032374790710090518366814742260528916005606394664308667603976043242881210421481130008003363280848876104387532905901180604743472626624597171270757597383056419892457835117582778415292675968182596094713200002039261136923399904541187496267544011437326608094735114507363565169287587100833640274771994708674560146539851756059558505714997370850153698134745507100448856175722732959364885165257270191109525385217303268534423415881610610739984824356930213263238936490319803126043164693169799800867718199082756624686057617707034433506891063143299727984574192579927434877120353428355937532163289387742561030376041841668115287817968372338674541952961619460533618019874564489451855452460220324048403893848305778549004526492564996453689849141594673512957371671788328984430369785411333881659429435191984546614601810437830957492972515469304735992001145897303901157407176379885646183823921094958529152657678234393552271050010575696781910965367648968760515579980116486488858738132265510339172682811618763150895179810495346611716836451501681185599130971881673645426359163827834729036266908506008999607862992086642875203143609871921900615755521009270518733940279408992641035292852437858247903059311063687053715575654812589190823751588644493223329738898236927151152778508815638940671265844508152144196218486501251869250674981819029455853376487302332657812056165618965877233959815639236444015342932623505459777092750499093582932914350739993812108513308090045999511238048680816614896063993867155134464557423551445138521742403652122776043007671275870166614365606222143884350746946071476005242644056182777853978284100970102404073776356794331889113619312206236499346491835925380872701477013199172563841044721904289029552761763604723825065776935309719865931537548010437206872204725257740337732589563053020701393539921746598652217346034889038562013796162517250806486173955327665831785852829823520158241815275992189553422878852417853988053365029815087114255579955324291296029008426808985762168153152287598846859216116427371331074858454085379025223696996314067837081477740843251321815167482105512146795376539479176471489076639710924342737890174853631379793544532431446457815233354522898001437884969353937144284545443351709762178544261585157012100966288428472606638588432165474427108048324066553025866455750082568985002103727325801598797761759747066880174164676840119593728354163975111556551287298098861007646710078151525179308588395857618906756676023906726397214221357072567717827933488607400697149323470446490747090096263366406293581749105915140201616225004832166682625567109343280132305445184912032329845443594093535856873157794428884919912434714117126771184526592863608672359971940721204389904554530560892578283232213678461416429740603279529262313975756302859818506928094500802537668462495279852459602312183139650658389876487094416965516421806359708101466328296453441813280154491915153214382145067075324196866993967012048850736048691889632197208974220189460940921769789104826414220474101357952832980355672889767523014285130182778386070177239288225910059718455579228711883823690999971475692507769103643732526624598341277059285498222074386538256380975719845636491805660854894356152865655841168506008600614982602600168094835538221021021894448540609118108502927995617746916807359013558627190183133234683222333715124957104752848691336048540445359474999349354805385996402819875031225063410731629168122313556361100384170848750865121332664878688930906014638249732592556663981304803757150863303710319089708352516875198860136179772990296580804511594038225874363085044435611766439796446990196851261380633432051197033926908430636695932160527976371877958174079025918369104967956331991468188691262224320907899212171384430615419907771634623936556689787255112313558310006588656778571678433881257446341119899287213480319065364050673617326145688486269314838510593165001413905795272300493548062735691844363377848474142526823574611615896611941286461950716136923379892524939831930286505142999629787294883066528966486532426880595823248913414162757537673266989758440909231898017370585713286149199978587914869734006294567334971089634303603667635016879500211427333307100019921215579951687503558070670653097509689051804936790554714037582347247142611957842383804672822944661801173302494697626088024697620183794314154842936909105045068533869402191988533067099106093609686388517031559936995471272214074873124383036930532258826201064215058168945355435867241187317559205930439211468589824091714134942567827705625400612212416117114273104013690490441834216244129834353491146463279075930688660609379529789092081321725608486457974758435296121102479844530433397369718706679580545329340597957027174055555938416162801668839779174192291650087654445956457928233620230948288823399878305397851775040482570141518836834526051860952200756685654698789773238213794726977810965395213506519093401058776052301624496517456889308202820572127363604429720733096105819052789488322107123210533289528168844629217746050299604738128624088393216148967425922091476991907884857059161005131035201199175202274144674795150022744329632825261796110195430893870094016918469424175390617038238051508189503394250473536352981416079611342488518384115716904280864966986265556481217248573401432129259992123418535386166223866966625472101769399520604788668850408222377218135057691796350999760331959063218391329114170471585036561064233899596045009698946791163866479734956349529383207242570563841642415929553496888477960068636418884621951298282658774566459587631896718879248442719383413754679848587134010919565813929005944898735948936886818468817942653913550817164478100541664853312561100989812155252587131353503773523536469653889043498518919207089445964954490104561694982176907118909917734797220188112807010366433280850904503830747997981840193136129594575431719660451343925950141221107978093233467745358599153647815137227990863313011534443577148343359448903576826764981185786910210999333814849370295524339658998731854282034447191364740916169393876219833535522867747040427635263777907377145367560312258818363740109958821888378692026751188826131642888234837221500393993691338566921575470094131335071496838995593909361069199701979269961847082975741503789627203333526175744306033349550406672550437115601442560493591872401982621002971325980763356692293375863335371431948419858996793737852902627568592256088478978638293684904674815915084691318351544145425038946756630871295555419330539355447544522949263354183064123068268088958382721589711577094363942216903041791611509243268444113402699557411818763699728707301919917772165082545217098224613744185849363505544381194768720708865593210475493886422697228582117879363787907338732652936684203335448725500452882938988480097234815600463003403908150993621212302951358403059658417183002284080018507465306271996809159126911559687526947996354141399859948709755272591270701477941451322472890038077371352672587846580172286652835895472828816709636662315632144965384296651169031278393940167362822875490110986795380721764269321331450033090035582862029989518768847938631067923792522209823996745370998139586865579584894989616615734173878763590543529011302504193256631407748114505341256141626861049430419666631171151903870541599275543784717571112690316759066684130786151854814551339870924008365667150480868645476411051235971367934338805689657148560937745069659479207856877076423613264030984203075464715691413898640970159532200579548780872538817068524967473328423774272279951360971516343934535815518945516530804207652978181189355321147966677040165068725020547158799387084375346269355377860956406664486544038275311816394616024448509387146683301201695198691410293870660921649795435365326026823553224311105824448329988858975685344753643344348303234187801595833482096916648207870757456412807010770891599186761578631054983993283720309821217759980493636927074036534234296374722747757978338159236957777642092739451770107501361233342515910213778362187460099715706803855267230476221078372366286754839652869255644725240522156996027535363133149891558391150534086362397526285030675611332260555750451457923014605650100748267663425375333998377934664423430496319481487448949906837379361732387800788139573884551951724062890481122906632244072701292096519968295242497068481129622028618173411250082304024342454996632634704296480482915932240889103413198792883857674493157367667602200685182560878879858309742336156422879842611597636400567486966419461963453017445467730744320636798783174484485702559063682589072045915501326074630826683415506826435225641027951933410212690637863627568437870572745013371986386632323924272454996634288150397429378232267140842063111407792925652417769410119309831274143931676908858023121905317660499650280536824312099983812218187272133152590234359069398356739352861356190815851511902902197106257552760088196336250811194097891915351526992722817492765638287619385585860398106351988120297280035072558317367272341775053609504642503608243006084620259561695220592442233433440531582528548731441300165709421743466533398257615703822667567407128019886775764377923668258573366542952608005302037236114506639801256344384687177746497740377478269287589238881876393089357532199007795801143793956212447547097249651108227336298512780453784835249442070449055114292054423675113778437498347481754772548262266394775644746067763476255438465773413687200624211842642452839154147752835735703077669394945913539223634430527023423145885782507943467340160287456651876289823863191430321528743572153888302160467465420018672960684164372887655042710631659897545764397940581534229550988757075947049127218591258732088377275136590483176749579956025311960845312548676617932451830677620659134716444081120953732084551574666921627570475062824150682238647337614471485683756725963383914295728826891543305145527112168090396630325175529597372809023325884622621869635346406387115228468295884015635399698494289088157233866363419871160442693516090685871220895407526772796229266421933764038732936394642984229625760651247239712890572379632968484776075806743927940315038540030443606282586475523322017597980028093094812667782230895548209173868300248408321790842258369186813809086909386119951912270142726385862319140460816651559686478299654975223536952244806576378258585249338549237430758991471116662543598511822754890870096522663838992451526785019809263208296708664908366451686363767552584886609682000482402082332692397676009003588125561833668853632802467464016160573554335221033224487883904970391990894527384552643231497827933328753401295408725673312391204868112896621776482605970811659489912830252900886491885147777705357447334655062060502523226123679164009015136306601097612456587085899516466730350306649256908057055779663486774730555646512165004440595170240850762373186361553290639835905710839275985381887150984261213200276644526743679549286451718856613837243987834932387017782352411031661095261323907639349168456987145821134623786103689550817251702848759774107456806362617197564366603693277896758113085509558439492251507411487372291184037054108684624172222975585672405682429055948640152851344854948615636847465433650172508989115102503952534722452389071090628487995124754378440545526580062568268863093703497406437762090292002210278656974383319874976345190844448929838123058251108233178662327184861912309474387845985912663589735262429908647332528264491430770177001673701385333685935130459276533872736749459177649981361004010970836984852496929451929875171476350908929276922689441189921737595553768852808594732280712345932880321022263393625079019190896591455205930551837355949118251347496972267639999487741369330902795873449155413784986712490390617716341405459836866494052296774894848559053632747821722751889986136744657085690126540148514495918567830804064236300143743818549830390147444845327558727421082801692938767158413711678861249149194823518563476715891135413120495070198903302561784245520236086698016692875861046637972305374341318825280956848871180821645685633349023245100299970432830464101102952237169966330604872357519303511341887554579062343512455552136461919820453146650889623571754265305418973967721534127667178961524933150953115277431633788649432173556349411774357597043953060534689520072374104557093163846241508963084450923107475968317820457897692110022152453585990028988826435705005612289935919279953187637571238089640682235431702034757740570636961237046257054510070238009049804338997803840788984964487302629146997968720827008264907597573962880415672865544234556256745419578648616403420153260630795425240000025481561048978759360200349516432325548943284616701392038307876477262665317713484584382528244471967541802644485714648140514911752747157400439591345306361643684510545650413256600620780096813379699177461268988174702423782459860174082930254574241007893894290063819924519002887150676388975187498579841698515440526315482797832208431111591688581880663651080932602486390036592040122278586354323541896765920854689023827086577625658470568250492979273043182928160980232532576690749076425886849449250329331191082732145937354940272454913511635779118447296790102850643994798194891316495340842325147640067960157159013437532262520430219935350497198971959095894029228113256230697723024013786988284629474090895019634546556017706456928349395063095788375865866143244195546004043677736960748036474616483430631191604430669369716095497269128139207072401418745214549855345413467387866584428934959308627492142834495476631430189346343822185028078326659171730924321605568905119131028346267570276707656966725243541500968482887860637210381974055973244816097557555631417555323904670681423261393404324670231869262415378865582570677054702806124054757403226180889942101760605832088178072819301173067520034397324669015432996242316809792346709710220540943828735225365833248037554901483630926158892842692536893492406340257128990487718152996993442924717329253909502518147329271133494867481173505477392474923546434060398861332084802521917559666925155815006453357851208578309569305829828588336051154424879796997557170742192657506434359669248459852502454608273798348461228859026448648962255791335063654870762664881494102348443929561585858076890140065910036122025975881488544434970865209444480546362804028802466302473203246747709060880414356562819517391392282006842439404721018820229823990646457250652135783307815509975121111214037260696160320449142339105692941283590629083374173501323195284266622010342299836592311315610578433355428531910513109220802881358145046680422527494320724374699322999156259938790588615081078441286365725932424407297894540295584053998296847715573581491488570003663615924497174490731105083148422291538969719058668782380958401550381039549837954113056077273667274324771851262864853562487986224400854502855174249751754585404748116064547336033039485974716285738753040993420373850801253290335236015818849999674512863972660934507396092532497845746563214812925377301428500342329843908564778704653725677096540897535045017238185781610454474638438533800966928367356092929512024268906900936699303737803148801742248751841541215886193570565607245082323121603862827958207511382672551249169992914495159547274349391885729992364959147658286169278997272418182246566867113600730788724885230204140067740389434319749673367265118028461448365148514840599777438618186523661073267953786324608315307582040820881130970962443894867697371335663822694849843153578048556557535953785219883118184378778360407755751162823174846805834717535253709656628892042833969652009173941364279630560017374110561094488502137603896313236260175637028401623907967826744458159630448156672982309696943807689321492464627187331060324044659300062736056260791810329457404694038362959751079588428393422475769334098957912039764823115763241730036188534160156385800460768294179196955822706193500858401492080093327698436897062201823343596142805535491078333775312789635585002079271773155522036064448053682087924883885459373057965474315798131880596258979086920311442285195342912908710590925676414556391713091419403747623623603125882261021380760606424797177757474289391191099316863671720930029209142499745355464431236437353607555266479287013039596475435002856388867212941261644657405602752079170041685762798080434481749321345975416305723455998087711945588314929659075783316874264403753426467672110470444978663394481612017400011985695185144751675433242371755384621564894980320564175895079593453666172476932758436383786705466928355615105976606452321922685501699743224698838712271048720528217240181088246016766858219166968276406645942367732594013926056630673255999179865151526327871400524782869047886341741606388394201656805680949141769423376920470077351550324213440452181623501082147026966766372232369623115944066674351695784177453310476060546498535515761222841878326932992416678430069682389422616327517168264300067167310974815944044163763874987642275331595790514910476306216833844286178855099815235224297460028251786856664555179712133480418669693497151661795942599746512778266326106878129070783222481213045922846311118898455337889853108208277955871499826067113129032934947605893794961221309632560724858028664587329623714914231790530337151381908093850669516867066010236625843343669699381972358729601525821848816961862208221379258738340822799156029235294711156086259720701846560456712106613775199875234516935813163043443270561459104008607000148321256177392366895103935522793224159126328470830213698002512580024596123815791158051438918743808884463768259878597568553927453357412148439663604523657063396907228962060821356359768157913034262727428361135598106678629542130428145641670468634330619946203567554925034305824889878247419856928370104691722954127229909025545127887056091151017426972162578241705890229595564232061295879288219732777096763801694726606139501471842072910314897458282686466155454166134057115306111116510305643399124995943448055614865495242964082833074011246399916367096112005617434858369244013589528766338154000730767577640032848328502607578131362281352671389528358012598748295531125602693013393575432434622689078362912738289404809450565567658473571860530883158019052070161322398583595119746787073251952971604511120300955130942838922730900212890466876128317944772993213373355181758792237401450729982287571736886128784903251167321184604499274767937238221376528782877555676346178360409586019970296558280145469762813411131019182531126311183111574066546184348346167586342776335817925372757003996606005866799363321573367466864912104962403634609168542329789810413222595794331208875007652778203162737972861767013610898260195784133840668703905629141893728653492609968561450017689228077327659070511606107909486639569507344844194343519767232319525197899740776403429563062340824379157192716411935476268824434674175058437089569890655060852751223302921989622361112330558530863305590556725261008039888003701864275037435943322321569268024094253421832801901444941122783286605480849999609740454659264175266121693850294323364442171654561375533598935248448235745266360706179094452729743133912965323984776707002992654914780092632569231597141037643292763703594027457413902086738709335038997417813989377399578429189847796149081705251022290445853962729545739415807127384283462468568243618673538882056959740211126093893164737807295523408740541819560130004404818500183009536413561483281892136995372396732281037296215350974531696770486277514863479622847135827635450029483248056466734018871929093732372683086201458167179715810281144513603280514023785503747626285232061105946888751095748160272657870199549912266817552044652607145144275425761798215125509853708829540742068751220873173471529517332482859604503072466273041343218859207335034448579939078207528672568168231528683654117971656809203437200753900664837470726619616723085279755105623473257671450235411403049135280449115708841072887624532945290172177760365777824005500606576132118453470954836847303402261421921290856352149639088828677437880974954999866242880930162552994241552532774357543215970648080914140376536812524059587035171827657645372864798469664035515870639463857992020613520725981083839077240312679014701109654259687726627779865403162186854349769845407464692928766590606004045609620944756028542920811845474708039591524138606634064865322222100378915168630551149421802667519172208419527455117637987397460936321724295925203275378614054056289800411327339751482121037641204260591736723875671524840223959964792333544459401098259164601349292524432614523219997309657165244974184882264641647418123984136439452715763390704674739129506002381606048299136044821040394440512572997976489670239484091962188154737264045046098257509368043495239496874878598011483915758575737918580396315451243044177100508799488823757929365708077293526250793312443326136884253753205671044083443086254594627855648037094806246943366588047894689587925468797158639664151338409272867813393599368657241606203437444407804708559394949887312364124872373552615648706130630209244670709120881482288994504571283587844751246377998898875739564411119153335124287705577874088930919858207254440588745161225552410882677452852776706255230801666413928912449413348347458195239029632638739639471147878436201517038231830329237216362351300358277166621614746279662927446381932247889047550640103671908083800192739629361317771919698271220032461676552409293624444781075553795404213604955198586476127351652913804754037283805727104765496440572555940658614882066758193603988559095052759889744181816937293170676148769621746915813726583887615364428457665189108855423609076537289544944705385334390065220351499667656870380460897083635647313117139720028099035250097773601314540876004330828838401684016765898038470884576326733740263164469468332404480407774275965656194610906765114330030929070409694568412114620879465525861997735166769635971562215332412170108882446980654131308458510819121310678042834934045122573108378437002362900414294020207603714171453549072528894080032562046557849419220067616682972095225375353589962323168115103669350261271410280847350141311333689408163435566628320347856069570074211882307629592748419641639905678147400367696309004113207018287285135957013983424981957822944080112519145664729723519553462065604520429654421696191241182327405069707650964485860589349924647442539405928774405802986454181361422461437366137521060649214550241461521258370576854342821470375966452006241209730743464051737893529000484560081135410298759840922760226419333557102568573026965929377686258619366331803015919131533118983458978400138230958212226473858848703956028219035122679606633020833705512564775197310903306491634635025115727538621798705903222293705091648945518235890488807725276841031867758672658297530513558517038274780311810425276612510866424152883855874552967901242424657111256980345845795459972693423480442123987359692328550726723869824254805050292878184176089393753843263641567269199986389989233356407498906933512065764282412498603045992400093813758209987850890899972130176273182549432380115736847992634045952696576246031358185644773923105282843446530598507013966738815658858993312817752625175013209249232228661543593039723580518414541113968419777261769047617047061041958253591311246577178581865186227542069896247752228465242997593693625636962906112506282235607336174643599580957040851290690305176393263605409534499001462611455634292638025767491226249812692272138579967951364819814078456846812281267177842915607387481117119834968590302176796020422228801085902981221032246541330448558711830016893932624638732628576651398812741096105390441055673811879723394576502333967677813202037356090291228850764092810029000526747477660309735991440938126135792253768089041458920158187665938993415732342671984905371344190312079473713067654173400852572542815652015660766408381247174621501906946803956694446691147938056426864269003709479353939613428722493987504672392304581449166106851249040444755458969889029958040018147159324973638685607580181434395545871849202306514434960827643046535887907750852059522674068198567417140026415814492420578688985324884475436006894046698456566790245483221405723517005475819806821853743964292953321197969645482331529361865497064382594355873003074367057411926637190357539559905234122787565132014779351073693817176970738551270405181212028698830874496899458383017334223488018458928779633701671400660938321820541947656702745720828452234162143642596872013369445358019625340706612333019703781515972883194124288642102334629914001848668272683412470631283318964226284954559164854601913065796292357371916139607194874788124258506771734029573615290431116496320358254284385976275435103255560819348332569709898967778952053766793278588230195913572165500518783486660061835097917720826190399152773200765937466856639173435804594851352714519811748376637365265696016075473789579318751289596664345661210981457829349371140179687721479812019449417412556088264072257227782800085178533898992558929054506487437273123494117611951580338770002208063699122169927994032876032307249371988501529933384730541371482244598475119283485858297398409787912128860115185321629730047930755450985122509053413777753337503924351086600709205921576926559854337784071222998744038132391736660151621672427312082798658167389915568619193371338164322284941391117000263352166320798887827954367161868384091333577521102843467593137444205459984720506724791322775672035748727921452969819213038589307746396532094201793462664785541546952431453257051695260704680725485212850855152217508389195924721259591513438499482162245955054317657132399720042503678393431380667099097470625833468586896479106355190739286145458291188085808084370644185828076254604663837962226515067606007194293027138346640875330551898445851027419109739074214682419131041899159712186135982346092669448225534328675888740410504822364384908930015659749136303669708606417091246686143728959922442254295627069790652928329237098262029503929626059252963925038466075551069235144761286410895562444420791523608955696336890514144039687051747940241050523619152804801276484044086276898018673858345793943523606072346899381856892379410053053491969678475881603111751643272980254344690187275227908506121680993677410503994868521398309700573812197202980857915214207934702380743189289267051426619144838755932376130089497751467999025331930803816271957109706158980638120905495510548712853667643403790557641572768270198806242852106281992972468101409866916835518052243317293207196433344990814658694233401808397172446746102524730697664213362723769776251134270887254367354998401249016514945230448135771943266363196987959619615369817132640073817556437865893038050067990693027147744085571094716118803449318461909855594159976363776774756317193325847862681069037714989456107592876105087161296253634020494167287492808944423681576166337358489747630085501236896242947031703865293882398433529148918739089298634147290851231421070236247734708983262546971993610306789204151693139955635433672392922950452839111517694701276289061885606853170426484319734101406512079529743390128680563222220182435795701131381196953275591598100831874652123385748985236598325396266704562993523978249309287341972635890611930529340151145287793627691109431142822547680380558434886791390661849016733832976590126835203728208582230054336712642845309153778941600009323080515319017566420418411736123719201953030846902246711244480090953113418447894108301190872250784017189031255844255455005735503111574514597774384347812812948378771708795085494560956125056685267115476824393938886812639089582744365109517928180032619117627130083078872986634359981978907346297166361492938826070557978450232807664460812707137405091246523239907011203059437111363870104428511812075737718191433130652968341464416376889062380282599366783801752691435807124959804920260958025488675902840108219328570054130512539945633720569743049256355089140013829568755849903890924158826348892049782693308281383243424905349354201454829429845739631995343992459327972107325923787114667990497565708074345778020981287746909694230531610768013450622053478787639693546430031655096238770895713963783236734545241147512687014368261062251554267726786147417035210246577280704821854207321260103559719957061292701912905203250495666578393132903422918119033119122530365439020016473657720954437688915059959193530992655875429337540774538177661347101235885977941163695571388611867941955991921000379027647947885324937594842947564017134179374560144116402464531926211167624135158992184277300874193645369163545288992661816716889918005601664181878643048264062713003761468240024466513666420809299616498868430762740850020129748053208230160947841281928314611353425316805633589035299337162014073479975420954244871943288706156716741423358324440765669828415942588339122226070259835036544774005575827473947869531368960185512972581865093658582844517660014269856167275495401297189990396060430422508548861533491504093533130843484456226036363999416754951054875515990393987450669519701697814252066319569476295169677887032095402696304495014115914156630770348761669609850593293353873252370048602626210950609063552804675732312691859582826207670911618133916821541657130053554618859233577498177745684524989832698243044451921971878542265093205019214057334532430478991956015615503898188490284488569815854897361357044623038406008586852340685584453797613104994290447236983281452924668085056748867164990047071110500396168005000690353741245542493632850821754628498622028558405710644112634369650783861273536474085377614189090317634112127849510178493678915800802724508778063937383538800888180977772455168061306837865936804868362494814066383347192780224094368144962930882771406894226655137089596234806416771147989358967138926263699703146039003649695975989851379029452636653651456751561915057753331506673585615698491017896377072379897730227709147177922434423967891186094960150298299914172445398329493294528442229410182658456510476633391159446285387771099972462211441018687196749878374533093902803333959110580452428044905050380198486942872965107380438150121002334972021364333763017846372910071617606165461375536199258141387023755370464149974393731432916785307300244292855918936223662033697229363381019290997690073463502614985978591340768769388066728044073743072713141083566019535631634827334508963061675285591183979510661376219473145536798228605886496970961748680625792563704731888368491126778140732014982841335094493527140094604146650346009246380868238218411969326234339097776979677536394253817650881746534980777111375894677760199630302755014193267444015646194995466475837665997459205200867432363913376733514324936443650861173236761425727084128968841891308807408105344839954822913035824155965974810136656124129134529513403582280713868110696623100483181478580757569320899476530589563184688147498981550413464104758000596611594084311373711742537655840388625253627535628219710961553536848832444056488184767864211514830147231887215570887974531583498692524441901367748239507560658269142053608102948571843799960400292799701127610235468261585991674868449042288727091558862716356728880251408659039694252983453892845397386414868610801778467878207041479570937615743023901765084974660743583751315984467840561504348408763908444018162508463702531694999908451478049183213645467915375126339620270555726434065816239706945931372301612249758765964284482378478252350653109192165663816717297100718727703794000477913803473884892944280172111873012230618005265967506263893812015159779441930395825242239684799566533486129247689868136740930278716431479672121084438191213842105319025930473712666046842919578985263495948692119297548963549558519494774503624360612306016453267573629336671233685251842885413793423554064454984287405741936421864970091894404363217799175643490370702402371882393689349488391073264077987615656031873338683615213003861936446854890244854868956891273733202329724286833928260893299852863559645340286068379848904957940018173351755767596422766861535883788007164981853994664791416268664146182562593076497111537370908207609766693713965428867122262068374649275598267570454355323215467687694513737565254963817045310349044592962385668456467689012141386545802495235387891576382662422079959164824758998013090971699658405573309817770039305802030828391142038289201217694470613126509618052616414297018341003584263183639258001266780144688379711692684135125551887376820229808982159807543911473963160958798389318252563181665524780318110903089052962080048212960470517729670739662994870763581532981116475321228171945585842317790142295802353925630296891622318933297720079831545543825266185073051126433913764318125124878808213301748557340673019190319473888524636934811805832676320568756193892662194867206645532931977882417910891113004973385102708183390347226032980862474386553360322725564333669316553815852500984891772044496954625737000543743514307572278536050957418170566978596836340021213466833543409348715316307166738775643788227238346228473950791957197721817395932244259435198024180515405056487570633222270022630383097291397667316814723260755190162447232768034081198090205419472825666830797377526040412984077040121712146397992056483627165662838092380141730198728556613617555425062467951387847975142939204256704222902356563620216739440168651909129445244171509970200351450728140919932474737247479388254257659048890475558882631193912198171138777894843030560748813046231560018747867767905346930442984301256165115107126554535419311982341346447762608767987896426841081939483408240187732525889394266154930643860003942182853093711687630409062822552076423860060473018314900457091315819095460210733208501847962840469685020795712576903211589798062570850465769738073837539570250422492743523037706360375759636621648918164395730490035678923673120841953484676902668025990354380277787075982005053047930625807364045507207587255617080548737929977695287966776971945638622359940041322969257920454855164340946284772961814461466982867222677347378973503666775867686179925243262627910057037863692747525864871725737936715131394405383269746952157355523934118676055214121016351219460228380682190071657298159925473011091686947368773355085562824375744581632340701228231389370886853344521078434479792174280099350052499696494107872754363695703452170655654426705914500804673812076851110146389701553173554433953188162617198199962291921310259581736933178084516454984292573357787234322474047386034015369712118049920995131773842561517316303855098519209079617031993339474498009168215567589194582964366873087188197867789992926750351382986409425458888824342296522434453847118800657098752223107539932643225656405496688004712040297265558198467520599261426958791496646609702539336456953721797487492430536890730682632778707098244762965546633887537823712215945641596480743255131305714524367924929513003964994499244019995939691716413641010458892147736619313614009316518735011186650212071037519758453338000485553857995232415007688713982528555463968705403921295548449772739667616922236721341451180655521635908512789710112210687686012233817637537337336594832989837324108422951750746665344153569561435659164471494589650931128194501377322227587472671165973648114886590102456102588227249466156984468756330619142398732451412583316432123865666825120801928421958049117669813318207661900725198333459597875961865089578836649252290481828170131320427169338400269959170560532617460155297557784344442862827922301034276359782954245976904253729639859359861700885497564377411646293288529083471011767550226273256880204281130772307083124678491924081736383077892285576873443069866513946210662305267757725905089959125502427249833412304467734800861235857856989713796680797252580655081860383337650524462262198379729334939024712629617261836088784981980263078838909626382956977969887461951126596777945928005764625563012903433764324105505267006337155862880424490541978998492747040210664446550215383798559575112778849013260081692802530047167831000336153029292932762430136412448584823149517364514362575880099038823544892079371651625908115811803169345215125756150222966692445052006698141060920620440275501808192326685225832472633469111262146441714298890968461786022361395712935142488125125115146609901521781791655646545692325840338594759292507617751022251102785613576055424773462798588048289100498286927331792256125852713120664927124179148897254426489673419926468145001216494345969536994978766209462729961228077172034859389693728305690902974415190316381802279193495704665627630033385491042171522927834378826842334018689582445341208666518865476249043989214970164373833420911015550206011329075905533622944234613375424740315087327380225606990761121893143951603653146608650331566571411607927635956365221632578470945026755260205864380079438659015416313043307940808857158132427625891082739141672150044266509007037384109866316291607260054419696294945712492017518760274662043734698786726870206670005007203354947342585234796100089533692885910605459422663568295013306626406680486474009179268378841003912017683377800234504404151131912867978507286419911722891828277815675043814205507319982487943267350715954352133623706953408075856910532384570745264513089798799993460055340440236702474111305118871179984931718576299949622531159097653941442674390831572389119651245294408392600706560535723726837927809462316129745499371884995717371369429839521752582454106885310925881874555756954354121147186956943572201956641115291971118049018181722091324563886246075383735672203248952401028616105183746054608971033236440726078758862927686761297032803906039354496430978148163261051448669112409786837354980461690166602176122806280735544464895796572674132543972190641048623821921703370523375531516387733094144043473514124770162821250916096550187365555248775162118239420719305498598921818251500244146139744124554911923276993557828688662641145468743954760875736532675126678895078428945621277431995701630473498227775723835135128565890951251267427724508562312134561981686248920398921770148149596998231437657887270060969645907756840373153149768238456979007797262261430805578030292954019520773975724753989047822413231114348802809895383647196304214882218273047967242757305256404549775531006745769385429917744077663951924211016825858747558309496986706231543147008960463525703584597673056492045073537177078721872439061117221734019623918127158860989409537545839703347249883089267244562398699987241313663942278900997974533170124767050435019149122253712498232395919579749364932446853661074945532685108979109052498394553436753250741395400059626976761168973955673330871059928896248271207199377608444477687627522983219034808571717127008602900509592200076196450676384180958702944807392357276248112826222705933252302331126832040828359162841406314088975456298259171464228602888184503855043319035814072563614337248685152167472342046276840910142071924585515812882286405262918974675194509822993454552222211730911226176913217891187937860931684138537994793897281736016926878879472191038863042013160692007961635201497111024329160257542153040345512067715960474118743574170165439665730923674934221126935171899553312474362521030744537907897007532952976726249578014853570931150504145245553609315288820286557896967831802414936932244101572412509842509568282905329811251869016717054497936512530308120475552863170728321950358711125812585560085934092460039615904005239952420749908326821683275752447162916790330446445255047245879153111034922660141166996929624445232874304534359365477357808155100548311650806421294183210174221397296781433340831904738458181142940844773097435455988743108932551705095871473914682011322479730579073657971965538779378379967954411060082355025748733535583392673985201239593206764714531794173331491987818247651955724646940251296676813172969828572908863281112019376467248500400109683881457067064713778032337015314907357203010837980938921795022729368931235446721561990741849149130194276683659492653768683723003762773959768737414932246745097964637331448744343978622784034443811374025892180443646076922051601033861895748614242787115854159614386766841270935360436960155168318026622486651719014386521093838852470195399465706634081383228011700741897169487192833356979422170175773736704597078348381056539034573819058591046058939577380488170294584193218833615436728373575833238081694841887520714346733050928948804272010564828741343402378736156571637055605745244933218864697180557589522690643138685715024749457916910222029537322521126716873262832312932222879518312336122798583504920774575347545795419910138818336746836149320577465143311481522486073866096061914794166069111364191652522201239892018973330326336429153885449383600920575278646731548031071317387537066416106771468686381186632538727166927448723545480915046515477589924701108323415426815664010710560191456539200919149740329109274864659498289006562852058175277267461337063400257726885550747276352329221396375618818119768767681030800137414742057652227595739757573102650354656622128544555029424325135187756862360325003339861132585695729176526732458636505476767457585705781703889938367218553291346166685124080056044432925361794633598720879045422280066106334283854478828955342724132261627392551420591706337610984924951719121111721420874533083225939226387585204037716978407507398231042705687852548238803639609297356656637960909921534977254913671157059592313001341289451080666218990327388084597629066358641797671173043917933668403330099715213448072952084949891259397626215862192284593586922683840650079075038597553931077817588238904884015734616454388880273360987055586658413973853500389382574355604901520753798693792382114987524491163273946192849862870624295700201739779332479394500050140763769613176844142223224306981750787551917416757286882440422797983635021734896821738342651561224430278380659269728454314109325058080102216987037556687798529888517738571827883140143031547735644944088630546376145765705851748187394972605809389306181973024229664807120977411137000831492989789593509310116070896598128993103213269378932190575263394078480992216185297086009648697083994110380690250253381951753560924300566978553723946121701421043389120987976669930829685834597391415187234882908098809242433397957712198820557775927268500336681744509884513296288720478111187653114499083390954727046694689858359182019883184956633609886575622535364412431142597730129128115624418941446797610025679735593134336537001704542161113658750035039664360511091215828757239577973304551824377933098224239265463806023970038531611613704538574483629321204578501002147272426122386430557758350291939160435877169844809220033800727766058923925927069027557533310864327138756888836677801176394466365864866141208071099758263847358483611369293579176916907452535449018760967871233897366262845009609382085815469186909108541532742257673805149294936126075519043295946835590891608038057106698677167160556974086519775836401858366113556508700971692526079480584868235403728323007083159223730143472490168640589956977356073818255242768323848418005622899378110850410656415858773681884135839779662789483125597913119319490681214557312562667953650134221082964845239613382123731123171403419726584843571096410290146023287025811814093214454326013254577630960148558231545123696413457181104900362081591758131724510705343557668012479566047974825224367098916701420043992439947013098067611366369774926159410599829231547556796924949811385219180741426747830975668422283157415142960362749004393634035168270774988133276089690051499033830764172364884423004731560280623316159649511963988062429427560377863142424083185055438784216460530829197887209667960256518091820529488299199037454280980967494600708547281845831090956942106932530758797068674449531654749131339053019655781972802738339724241751402543949492649573188313375935803410218700240528371008045795502476512562524675392822882421798066566055826609304565528430780455020665373901036830775654541348588399654939481405149948415638772257328489320105515452376687344156074579404949534986706339943377462052194104648351443668033329724591283724851055212269370276705344614461650803846815267021639736305087191828527680206287653747970443865242179264764677593707498682906191381687811361296782051372258589849298171190447075527278575384857586669277120497281649149620726880186543921421721647960570166806497422788474741917018145846591530785976893491417234353975491385157078877848194970643593007478617921889529336313542165204969706588363906241635081600839979743127345295601955704772369148549237833526660167637440660683143723149433092094378905797248895183630549119851425087743811355425346870078335928745344613786609908377227494627333342094923522086875253563283839271613806586585698189026342588473686739584351831029408762264794364200854363800011348757404738012063177256350993938734466735264835036811891276731648589211909692545784795805439489861112529139998982956173839904776090080477353311238390553989860164893665539770568958653833327936348753469444132741313606670070095739303544349377451517190737940156949805754738681018770073561947075832809926510490464151070006157762273493211141414914011353658337880965341759380372849429955831406237575019828335340575751553533230957888629229136003612954045772972620998156588146101680961079430588146958192594738795154916983536791184211803204584745721828585882753303792162543356387155769161222898626722216391704311207010818504764440055576587414468898777848164997944169595094228819063137418091693703260545738140381407368463102005683390439922192728209691105125936475468345656411570605502844685848516511651914818688039621532572385002498710566736382233720035966820755958435741876748421411672061556514063854448115330722774402079017784029520936659746367671149655279899329504122470097164842175567535778320652314564533678173872779438759664815973646406272668414879952414917415779636168004041079650822926126348083457830696783619448118782209011522770533218160830482494955765510098853696367267988499031343980704384194202503203253179585922650180376223800143595796858869205598177289601828289443762053585683146061537963998224814738847999689579005018744326078044799356691543126761074980891696463687435014318484344261913938323809728192142265442938849744780143471796712035562612453312811471094242630839819442044408191626404197112902669178790149268774758696167855154952043140399792509452444504723668097025271782526104973036632193476470242802615472422829250815656534680244060166735801992217293646135978402041232628356846862062249817198216170565200519441910177224566254001284821290577346542829178461350578564585376427098229145474675003306997176513640134870204814403212439336703006634735731322214355959301198792546183632479323375224046886747060701327607320441361049404522207292217054242555149554418845898663865243876431463932907350384333185325603793634015195601370173018067718718382991917400271144825099522469130632091252963925625383256236791359295567657846988209493660496693426679192933997002909228984656983075055229310816757615912154464070691025861470376578616715206096878139632150052281918662331080438660098001279528203731519068514428296594557167048378664129093582181427150130674495929519623144582180632681671098627770998170059423958438436924184643711423437483185832065600715977865434514894705248604191973366903654320419818064141074960302744827792061107914826183946992884287667429657637894111695983873706991827025071757583821519498524953042174623282463024429168491345352126793088899186291385319206470460648332891212205642385321538824281382118186846597822202696173830428223954252548195071149106732505584253381271734192215926864304719907210703789106008867566017426968872465609317073454105112258493347819353406334985476473715638628635652814264192850329815745275503380375371178566815314738714814398976775712766342551580989362696608429072593518000249819499953012528546160047349877183387533812157669982145422962794923215921371522951987454981403553521025441491710297764596431398922481370476632918918066120150194899627507547811465179349598226224448465946483160813772078689908034892717019117600346065264245216133038750769530978189215888800229260156240944856795792098872810908728098511313288135142720236896188755410490176222567732284544847124700942354403239910608634101943736631289991762032140287519791374075525056956577602430131738469761985106901889912804599089164740534572311885370036577222134222265676725470809057117597751816254010983879450765243490578247797413616376369689642577317032863982864227048287901954253861850512462922676508370284677902835715190792814017158621973008960557878888661643981907094372754938062157682974139076582053224762346423531457000828789852273471116809907009207909661973322647050724520664886735169544507069575528590404101526371962183367667330898844241914299655158218929601925320193101494554472978318891385218709356474346109767613480911325688567861103958800683422418477143690403260807589550330471651838977909568591219045026767318372210324251486518377102376534962659272150023256579173252522385787385143311437743334623651216049837106293140118115987418537401318822164582511675886963901785667518150561776267477626474109278296980619971050719433528353173498521198285901626352369884803052433292830596357063364239678878081459661474789970013342062756158366550649573270480075204798704721388374550096056509810734651941988050920233138675886027492675165469012016224627624556655958320350827013341203630139240104912772084509614915451301509440156171645097855020758413193369313977328943249594218822179496772409353213901889084210750953021384078440848873473676404286918175066829826385943100988795560521436317554383651719758599931963404197490049125372154504098867684010979246984761608168198932758086483153565536593398055378954356561145223698630357032779976645944884159302299889911840521569959800838880298053135033324340177049089013077612919976659687085896573933951564038973426220242348333237305021031105675399351061042282068354016785422598918717772874286205159078263442934545742351451210567886345624673866896898622816466240737760774430556454461567928552463677657432695688139339764640232478560215179571976584853464569741191064650174448107591371516674380848869787969118375489481817948729893335511874106851320741526184101036429241190522763666436308880294434757718542146696075649620635641635113979160288503817811793514409605534667664706962139803445179945325255940814793487271505579389262322702492170397614107081190104075072937563407249118948145995269687368574554363846546811292534155651028834686193203848529464121310770486142993775701629052055294735211399909958816510638985203659648336236684992242982860249651826945656586806872273510782695528675544695287248479045592139424100839282920002468387894447998601669615433962047901240864731480498466851189185598000847663886372795939940471565050481056535076283275766806750705041944434147534047787107293894880956283989400812125853888222397362143754648769209611857370798543770127900553408078106402647867909662925820030538873836542230392422523124922992427295651629708397772635821645113546873936211988483709777185645077736322700867840811397344865087537560474066862361266956733253034794411799966812474964216567406619629898629247606420151289271427555517472667911708861094859549009662140223632836292157749136027710584881799656732548711511524611476786193140324159054100368221205436194753350943303706772619294143002151678142445959570510898206570371101437363241582844983440929307057735363980779569974288855482674627489816584269872172534797329669352044324740510941079071081022424171486620814504677262561914863149839978416158022791963324464297717467164918384936889241982968353920964500315694102232297008062030229673211172338749673796704386477553226051252152249457080090022994125439003356949215328074978137141678267714262055637046754856811253937233795644901182615710709658114571341764893535554754683101631532534897540087397645695543131867458198707289080406432808226297055859276757711784723605765584531956296661077821607846212659485789004258941075914079251626523676336657811288612566089869598322748466852546208113166661135315018408531444102483075252299899832737990994393274481887161482593226451572047587158075551055567724856805190261676746271525773506036274023899473272336052795729856753385755000534105319040318055583640921723090732335393955886805031045518664777957134175968334873314595199672062893543826352555413053812656927282154481239614182750858863558367752136281103814985814528618438781673752406549275939114542419050186559393488525427767471931256037857982135641099979103013592223153061373089468344882507997055315395320470063442388813419761761492225694867777261758290417226613326327781970357891476181295643311519698233912830066061964060053506944020206869934844460744779706504005765303508110914410242907467495732549765409714136584695423909170438345868104503896507271792398163914772173706402521419605173397179856839143315116312902209657202445261570969876821088714967878887359140802007790269286293635618360659845920370427579532639809293390016368289846545583992770514716365836923777610617606375130009174038149104658718708988687471508047169579773466543926166032751967149822997954503787750394615509646282876204298688712910232642112691859330112973087433796252618451564745467757962941389189208451421323850568964127283414450369794102918085190120754438626916419920497629817171045049627269358290483504529093655309556578855831253833804559314485715175908957779062758221767775125963263728877672897062663917100178731018532728601780374991028069383404920669237390921866133527194043515018402864923170856903034614192905678965040116855575341254765796426169014338569637222745110562702521395678761460496611468647907251162439830757301626133004786952047267024343500983798077082235162025086748978040683512305000877449317751347566859028511133255778011654199044606812144219459061245654474444252759455053245053191300577199776085102750889613026327905281436352847810812142299190874743486286539463876152923848475439305218005303664457061604789177794084611434346694353339797044313874725238933926765385661395810863437442019922907496271449658104031921037772368698903784405722254616275989295125148097272822160411959435715170910683563933762309182961321188062873770805827253988187529095452176801378081061357137872361230641972644487653353034424674534543710338506635916969932592201446080314025997124997954459722811636781408585375558141840267223136434496848810038821283812148144998552833355955660722368184742622474864130440864930798633631033529450072647345946848496663365594807834360109896549580068833008222794206396112450699256023823753139709843001256222062438998603597826269536179880185986172465875708265171960968151574955662076351352254268400851406252041016136863746536464735688690589965446081274047702421486423558114293415323369527019936336335034335880470763942043209342036467565253369449670638242595332373839286891049391099947635453229751405153036730947738605553018986514291362817078471089983562023249555348905838395224153677340476645666182561527422709707059231290730233873518204286035056948206061695612192315855829125727347305159585418835637531634995812263037953619302205194315371263717293431336107409319127919409668748067309996842456143727195773448660922690441220846457389355371908694014919404180004336999315841542673109298567328977005212901256087986322488021967834041057214439124454839365625513093016439408829160436605916903439596968346671081666640235881502417565233660377323687745224434232300677469879516785639233618230614279660370787219846351029930098902377077841660700470373314037971619358829390484616332774005463189216562883397127746624059558706236483979608703957393818450326513036623425352989597844623534906651388689055260537775194477203286341646411565352185050697194700658640147811871122681003685118528631754620958316881113373711962521032321067411404168945938559764821142214478823719426596282458455081437398548150982064856821691946768039326020331328932791585038163055960070060846659646820775263103082723359459370354710863131777171310600254924131468737350701068306548733230292855260653880325809314216811572243817163025650820443504474977557287858318111603991228619987450859503236580702983463995566115046306962252134792360758213062718529488732888713280884896017839607600714246539049493981187242637519035180983440359654915868053873207216425311875472499035763108600025087014022954730748497851071165219333342887521271300752581537347183005572209310469583022288359948331603670365996163884689639843917926762584417586623168366164638320885895042929550492989635246375435504650163418977512706802036582589993361143800191288981703636609686722806332022275215356413943571257683835117482398735935436517492374850452564330036904501515908517208002654577926160535923350958477453145312963925344201082288894241254559595686564079963055286197517814372303358876844244905518644177278428884283547295868344696189356389182781921429886329157033836094218899112654744310822383138477250792295820504623007940203168596510825609477963765839015427182499841264368799714854680098012820815823240254666753657213212654687036803035220170829380071250179823339119604920652312774043606312789187645106491135649511125835630508605094170735003304175921725410154554744343767678236091042556714183637533976890242994366400439148163069670723572468271821710627868843325633460666749304730530661436234756205332615920615085799350103401391470337645192915460073998657783294590067850871033821360540178955033728453037130216398541732163541705046455557611337438661396726726800126754667005872059287029557747195624787922336356624048460083218980634560728975852088290075096959613575488661386932770255148872984917035746227263635759069376929673335682579911361427586450905906064738685432490212576449376869213773044779531071331529318272880305298376868279296478770580229790293398524104912742791119235569922419512972735084734772293528416424364401239921977299326910391582298311398593245119031589869995596371289530993458108549523037198312083278673126921502133369712272706462920545735783669192383366444034340159659021407402199043300100810095968814329690294529749508966487170337857198578616557215593312493994222957466553552484988877022798323270414906411826425669944950311149295518738097103737148786475176625844751222282354518654214896711292852802056066905924188624200536215215450650914110835876018613802568204353226634226090076717790228576247715716055686169687395273662900156480218652404302588465109258008817807971980819679938657589041809571190500827259883462988092377293719535227092259412395093773270300316586529684281756094679635282219705842350908001727978263195023626471964886411039484395299115366096582246231160237476787075949027869486995609824673723228202361132865163424024645620597677985302206152870263066668607194531063046494949518069126912153226946187815604048172196506351224702935920567951155951819031875899252179701992719560484098609164926136209319100321180398235375369979217162039045413710873743196326349534955637804475629962430897853075190711125908645178073770055158241115870165825834086512657216688999538273674505130846005621107304272980197153294497775948890577913114074935046874214224133918035661135924552802598362717525575867944409837651978115981427647683508245403293787647616907245540223685245436048146975478462934080635920866581217440507240064233306548935927757898336896463745909076260793928416927904165186822631819544586301476199332854982711520353020667167073461135343819204133617871057944829585272688447257960322447598102131304415634073646715711935591135765966614161675112695868515888549003221423653993379496503370552292058985965753096584719921346376505397650947250979429512319997503190148392953889509412726953389067584926127621158912577768639702836912037555465972120169258341219216531728498208227877595845182744656033596395335865628158845406703287220742185433740944481825315171375281972277741530406236049263052395564063529593079128915214447556644448544892858112813377007829993339642036117544197564448942896906700590045293738767230447180145240745100108833327067523744708855782975085481866383435599555199410414037106570622250888819505221320122866768944146735734446479514230855372958861055099737076321337564982475638638287843370140454185470001991455783664634770471229885661044054527056053030760464349810913225868529416410826902807559110424178690531643544639937768027074134983168266653118497112983180543712785273613691815879206054499071761573791531607560680946781525466919314901228104875153498305297958829455209966594663494940329123891497596066529590774053275167318354777586776749052687224522230542680581166712839858971012584302032182209542837083213821470601257660391054963028208551703130005618105402272609964679614628656707297701432847864376018245247447264703507516188295374709505200645704620815592381345621635230296729266860555136420358854400403641805560825881363432835783290005376367171160337876981173026181748076485358759271950900945182131790981413405519686977358910292125196542330091675119317078926480339926404829947731227577568385812816671855841345741139744875595971318698791410382113601091560050020521817579012212457516335494793929952099098527807707474449647128213216925883471763307687958452220049600553327600510059119044045373846956912853196587761735598303514392836277660500245292238773509123645997879818284982780929934116744199684210237354590761198992305766120234501340583385332494690333709484760737687907001105117259502170847309167706517524514419277885114048555391102744917313067577158271231843126753413199008487906082396194445340766893529086288798187543280323284256415875381205325422551428603772831045851507369266927548701673586964441593992156030307646829677629418019948706652563830346210453961551937584957334062675097292234882627436008005995766280760609743054242898092423282346344294536463370783713477056640985631873218524978365669420662970717860515907799186976022778711360353533833920570252923144043188235506533934765539683706651642449444443889344250013798057905742827653818034180207286522103285998165959080687213030377709254945837331661684161086270467330622482961031515255137067899353932255181962985841014332732223521029280125603650407702888113259778825011382778855894979289694857650487063569817489635411967583515000685580915514593272904598923594155167512347010301044287369436899437175001907493060750771033001232424326906392268498152181965824823153331904150472884702684410840816224558136820346338838979939429758209492330550695071814942693727714950756338007812775605334648150346815298290764902558333382116335931725197539616934513813614162675178740092750993216625898105143987131305586549726517699058521087903856624549374977739045023693780122998355372527687183538391039046747198099202938385207780886585958789085271470413873353123748877629413747646278504989595717991757243390113025966960136112581314822363846203575011691017455512640647384426166953183406929797660624250944188905647368288647686340271020910944521874329379086085830755030159265139086907604587665379261062566920749570313533828127244387754552926437723706827259490214446642473062154377501420364423375443977573866627749644073994596677155005332381684744444413806689323372500496193425013341624612450540521046296482273092841717675192447633240901040015135144356578225201959542611438583820952609938854945288478614906148019830207314487424782390416909586781921641179162787835956992895876440677522296443883896272712314530637998962363176489198279998560576848538539228109952800001695656447713854439762761276191317439384695860258627968177318607288358974991195420441059858338881884857771087355961048639383226742963702012693542320813385417866357093996085504140690435460597064680418442854951040578389013623558874628218358426508279458224687730694761631200175127090010252365499923412162366971691207572889090190210948710173016059832074366723444728718978395123481431202701557811326512755522735753250040813262675771639715959828213720985987604527497679502346528080532403573983570901042040787271967992432137845935191025539450399978724601467883005111585551237465310806977558657621902966660204609891620007613947652054092559119170865754875462652125469176256456736867370320936780303688063852645575074891895821258502086825144315279525955403427435762627664359653072523340992292363185995526990714448607386815174483393162247012949447777754380378363695495346491874401195629295656068094461705575891890453142366819543553085611969619203950425849684160286607002617961229567936289885278994434224578323157312968919459281283177354498140643627637115371889776714323848208642060488182285973503916186839926462692677722172943838979828929499256984689443070337657772554464726070968870574989340066982832663291136264947272749734107146989803723272869266631582950157723265840668167932182147394581862894815044549012354944739215728450374718730206983422957307134037838664706981918051900759424778194748431003737454972595633154143785884431615765146997467904176174779031656594255024846264267127314374066919021183287452149128682189978706746276705659982995935258798535456296514380242188290805882521158455452424324312086374176914998073292402027868952360024361006765763660754776871548693736528007240972248006464297859112451956360117587595912843665060277276268555508216845169846054133031753087607929074314894881852158011871766791290501126830861583540057136234789970579478375421144654498628894855207187849087989345081864798452913376333047387046050269702362859232053231444797087025135972362872608062554542032232797039749886461065724798374283979164541528159082122169432993659764691195649687348043864150407375668766185943946705952325136415243707715344048550463638477561257929077624637896361621245339385922833246239229561559279701655039950827144435138464425873644205222476135803878676915410456950003945441246414162611530332689928569578998174638601945727259642905366869764710256869639498057752427617817448606949293685028967934047661028217829491724780639434035234965839124324032677370235623888876268825477916521580953292728474295803542816577397249976787213922484644079681314768740396398740648935064613720444273215045953938287335783686625024434130326110901601293347271038772960761758109044456506427479086417469855914613594601295505359772516083132124259178970361827500765448821116518837305228883363443640646532552945483532587408614033411713622161644851638669324552885885458004045920988421163266901382753117263612219776542846908925153324266088840668103148517889051258262716744412056601140988070263393677297197615909835034560981785730217336987184578047946407926327929555697099647690493378919385380322188145470252716390153541446293144459531958581102173393539878771899814926960575515697383473747097242784777975024637806239384832216924424913916163842287602899750452771895111295959640594014915791842511442047464584882628244146145856364718158301189087408491933545595899662965368632993966680012403006904902637230768793513620332603146385747312462891475423328065815572029493105655172972740022654502637626189455259526780952796681476179751793631912522034791496292504318788662716597011334709274963808038296678905195371543234879094094877936624068702427366390307094869880784789023967733532634384142257131021741947470930625151817949320826195818440549689309680832325083270564316744189729121096678980669102348473593334513292078428301940757420117806920495369654317358154598916749014323648113143126049287247192067463628430972017305915062952448759796966758053138415718027724177377108499545616875939431660142972887482126676701594627631543088061349513158550276595143545729102945629032823452869226258616871148352311651617398702213450384497358744420700582267791453005661221834817131923734549080561163414836848591294937432542178915337045432746714092247825314057560487023532349438694228197142047297861209987607766905127121272634020327520649485494138239049521654229102231080473888928301055562406672025905860799053938472611620515478941950012936369578403867669087864699707086706987110760696562828128597655777841875110037606293636390328010431473229696071342790477450663053861576568303207554050319620553517159991275088119392178651873908779156366128995974356819595127799848839405047382390057108239119248236273180522712047676521042987048517129669464118700186290923609795306338273153282711239970846528727806057723422195278325184837625036143808287731133392033664803434659305753025990033949488787207099639222579127730313571437515927084005281704300876014567960838101745025461484660321812923040228325536879159514868936453744470409589084662337038019622268976555383750091158564042179557955145369234164106615025105931334918709999247463790477353595132201725803468819122642159114420261201618588547814170441797587604562440716310142817450301911751936704149401537660537037204772949366690186023609694127274363402160484945418079623268206948760701173264649793652673460338989981723680716399558268592356601119547026488908460924273663683956764051224987077563206192968774290786417797312213959604154690559561314620609788452384861923674873194089674494057304999944458427590006653919647905760252684551329883480544651459592774622009655592086675228689086957148604176060146456960556645345457115326559688201615045959207173426373661734867039092802629350064493343048159301859251016678592740420300812742740474533527487332886987647273118098346440001571093282294386277151246924251730773577839244156814768146022281715454177673956472687509496646004058892927100792505936456224383798156889076781155837410935771631799640837891844192278005011591107730980688713204067081789549438956884425244352696101126187729662114700966927757552252981822504978718379679653270351303081193085980790050584289956912021179615284869752295736645256547285391389773600298760789372204767614138931253434343660264812889841880973467598953443236168077611480719479918578970193248577901820701459988099879006919833171662505004258970760215282763725859703814263006062684442332353677031466292728712099581417515379089322936404850669099097380210687757724927623474328026357822508424232499102577856858140112832841291717725344151582770182528002872899235694191335152476589281755354215326806456437777076814271046210274333227530694614155337758501864807354274342191308779297116626475662124513917201979295420902888836376953491539976691741195678205986731869566435723995238467042770376429519776374537192420875658033019114217561161504207874651947553417703033026314828431972700560567497481900414644251627686613000123215881743163343504874390122951957176794725825463587446990856995940305077436153742736764359563310342467584362081487076923794318757178639147871290899965678716678906472103768835630391365231151186162622067311358629189856706158679269529509903669127058456651975408596309701243279006413521830418600991849814046593631755448231895499703916402081468937667609011664784025780617664362284082340174109395422153967461677122242184967157670081391150440925835194408074498347599093953284961621911244794495486302029308528679439050794852544835937086513570163352419771480974948914735079318643257277251921532605298008522847567725778357043556561743940038850701599936126048989834231801658910180677893563146671201629759234516680049588734078431507266930388437544670919910106247130508652612159766326298770502448239799859603128331618219523757923015621583775416426470173609888950939226159033738485793668503241565065181489012978214784622708031744393287655894018144452856779375237568337170278561973877174153111638339932847355783422215737503852400518663174712757294113959592353468119460796244676854645851561308928916283514778065723257135882812556815033982851227456997324929570045917063891319983933394960934296945786356269061776758570210367947441346249813125563538196521957341085646681313097090668973606674032157314472688400282012598565571355447641827245320345190036586621513902521226343708917001317810584845100704989024330763039926939926084621722056403246822911069318434359474047503805516416244689041278426775695341875272748046947521735077238986431074814330496864136751743476756614450478872832662341724508799714927404145003593409356572051012679754416103154405452413656097078046303982905417985978644470651277246444044362666632767456967835548612813013717860607512731714265572405619783319647252458003186513245174345342727386875950984368769735969344752202726304825255576003647816682400482228103710551260057512788705876081654066594080376041375690154569522514933189838405056842070715710633826692209106690927911261793888549733537829719391796131482959239513442040709973781471121722692452001155827857394162116968548736389255192828711575514793083979980189188904020725326386707084305169265270649937737332609726421758873763032990929300297453395629704844485623813102525903978968249487113847838076180663074498454894693131678944406940004620816419128357637510328937443548892840075727079370879225999624468848781245484167371500005152296472532776707128496583778504684538781605224660894820336260770642864653925952907949889476024210106644972147487853492135691250734444149000601781052593174820727197855925614991296117056892104837371102963510425368672635831876452362764358856924617446403253672498449885815415726977534784203759115856970481747190974079199643925315942010915718466092243419650971653695368105702367137848461722328985991140773563064130231039147361281462973814250375995047744681843535891050668814555352025853711576220371545163431231892795995097153192634601380287020588278018322292563964148963213587411557680756307576196545063044660483420916979641835510431259864264324791823166841704863359152647430674330756561748012108963234724044983361098375374829704781602299890740327399570914094735743185120749029788248702439703520943054784248268122476167411551471445819685220931671807338409654532951142844203559254737928150178513247953399228117656731933555952271133592557326272746941856885763316131707114327204986829000383920101509550780333941683119391313451765451866742945144282742320609443864728533247128717887780571272801027492450390225068808723613275290053476288841333832165917588188937967842533817052038450562737443301443017569063041771818422405846030116761931164203107047386647002479050268209727810087599395008333762789580662712730148719590178511974542028329679527123891358287775493426307280393068954214648411987799527438344290491459443634635212211507876851144655269486553597724699660044459313968534893229898738009615082002300533631222668372720680135614960471873264991492678156827212334073762848690689150982670314246289162370388997543654176379670202356333047272997821181842309480610798468306232229883045978956550893801141435344757546790909968553127964584027491809247746441136177376399498939563082512212168700256905261047573597550308489200295394532223366503870502485417689505121061157204309728436202219368039286285660081887221968863903200785511311014382199949102446347128712528501566102456993472958610563726166198038156668809249536856548454175650611017193530566086859212124493505175870702717917979880120425035948731009194717773994353683978950614595540326568316564132128948602322356366151878490709594952930239848750809242222949820645580155083801768770348340007345790421096197506361741941536076576639627107241588976976619429729477481729656987043502132711730846951191119026201848211345136246342743612224274967186298379089406761773950669049832637748660119353437389939034180441795726826398847655669545510628785594378569530368311385305232809590461076269247164977284971210899074250279623096445884026332707164242441705810690463100197872904419993148398140893958222742126286243049650659036713104519017427833280938768940945785732031612528149047460838902199462289682314540445908973239206726492463567439185423079372790345815679928473247093506484218855458406618032283145517217994288980821828965718938179511570780237951766152961238032088329577358768888672412832573720587743303640218548455282772336847600066079135337555088030585125163179240007848966543337534387064926254571261935738894464771441527589035148890720812960265189218254487326382932516369633319334785002158721291528362499714427995396426412558103025704051727271569888708866827464178095516643026756326570437522652357571219758613700663080330025844814714635505961185472647165620834466639959910855487164762517890220258933029325071118632040650104385244792254281100718609283881647385503568391201639123287159597785738446024031055470342077703438471886503274315329178365388887165735457961133494262276359214054940524081963419036664027124313267129619321142251644549190619727846345906848303630511760835948826176646617780202373693517457426283520600622326662394047794584719009397715660916736519302062069733227979868729063771274007107499324705568096102887465273361788813443411864442396169928641797999153098106021685954429320014413173532140687302279985796889858833687722937117747432800386707460572554758672979490696354242093025032273354900798404480219244968169565684751588794435479937640399083769689541511675658118453299170447700428097046694755789245580820450171436336447113199031124966547414598990595072359640804935312631137346958151958009621657856023442225211908877888012400145650763899417046811811883673426619463326000169097554786782117969545258434702653256178602003536062003038317335199934775411413139433809116771085209272670558526896821243675737626203964672651545936545550468080626748649648268638622276367139043999458493924449162148356042596286679032561648867406279870855954370065287675029247752704814378078296465657079673143387374498144738246759393856485376663701127104735389754834687778277873353108674962737665374489745383565147277478929354570867991865366797019898724623224533404697877538661609156277230790822513297256981660778141569768152996464412067176310325660137308499487135710612225933487811437520975177139766506890724910561889546638416471368891236571261838780549846077407141520291179228705754844578352901652267023812198200083912952274603389310815155332202366964955901673352228021546868203755183784322836097700327746039498902849604791534508461541284979681273708545291925088320843628621989856304997470615232046469180056927706131729012844942968005515895782372561141405384231973058353827614087877884321818801001005306360857176278758661984753610112225162322378683560552723229264619155290249823501071349338335065704878532672221776871397275401133313731100002124919603451328140562997434527207992402700036353641907480377026772301059495032152259279475380459521438234261379961665276996613990735807144814793600276661886021103654361671499215576186219277543812264399464844680437552049302196318630383984810836125073987705337552215760246423974561762206932678725680291386716973593026065378198635433044470868686928580417469466917375734136376556467051269879507089276490701531002877300002550905440922729841755098423337367923544458537649980592681005710195266600541216396739509977526500131572674031776455522470528557547476075129292327909533641995710934081584988691879888223817636837230067705978827893018231746310543594532044849869934992992582750346196215365762580531117039561277881566256120956974119100888265605505529940084108804956954831225701057947996869760034746892473111091613238153523167175558001282776369993231371164873551920568459419118793212233669985711298228085608978127579569940078078536805192064914828834257062848371306016780449347645562748260188030388939330805410324850589431503245591473854754123994801178237978568845551751523358113799495203963704658099382012230246714046418425082313705035313543999804584355197635709125001292953072997985539006010678680587894052480113892225216087457965880599625169110398693623185379446618108354861085809931115141186767656925037858279435460703319640979257511542242747914356664561030328958980812972438864577665034874881627154538719124505228818761287767272934906289853611499461338764953445553825621087358591066224576085886284406909621411343721143422667367075891889056559020642966882945597402360039445463170599674578986107686324898581225224896068241277445265846933327354816431613654887099418272554786867495205927951532470026349723824048068658013524650950576628326145111831934701191952557440012063242846841811543465977278685053370736190884577063684699953795827741099363113743152401417646908792467327590582649534482340889995818996644554123111402340228903512155235305796713741399215174479070299998850434041183720036206224704754245937723870679355102317554004280948067858533750181968163570649315336827159303917173919573045526790041810978827586778558662540028474792854903246506890987676701571023471220721752206161805658718122924427002042956532170080982797153504272826262672601614470061012620631135280211825388819414461076136931266359057955552240486534725752206660340184992230125050334779512989369232511544552814276077123916538619998495173823662659573138740052489923983696712806269486486090222472324740201674412368328954963295885736688106455187567846811817874845971604693647005287921019482788866306170460175085892134279748995215231293105655499063949390093473613049433084000644060842989231105907223163202457583539969849737646355707559111758489394201542500480901429005174649648639456936246544798198906920273042902478983351873917585203123876270726295777877470166445110703915247100388194452390238146651465428227675410060211260022585085900019744313137572777211087426993133212813340585715816314217991971326342367923576405130076651678088815174770216736307350537488960153744315436142124017895591946504014106769728498920120532784280995137553017292382348862936617154054716424904638741642285384102676206151617885411990778568207064298202980731965535652740614132528826032050641682422935502195652419790547031484079674009491816974721978998443808070538326992791422693947722676376508909231808585822623849790394055128030742975849078899165041098525086445289747408729471452717779593869453622872864880475070315239693408326088396390457789924866344116015854484715367384362602449698798022278968837381677320008779507822175485433360796141755045463745075682603706124554599392636940595304861938937701810887499129438171601936067083727470501968492976985411983285437095982124136662424950495087525387423968692818349982894798188431020397373382858709128434420679334411573849405198737166312999041215725797854857328514348146755694268380967665550316488615976846645078041882739275606351266258032884210643871625609677533973398720820087960840582339858864734391103607866820059128091290065347734729857349212328660663335058009621369719149192010154248991608792602783605225486129780210661544114159526869809740379670039160146470824690100724229167318297519955588185240645093957631527866717671826343498745055893966667703957549762749341579006509804965594018139919340457231010544945996962901445132646309592309119842270925174470598946449631669337945158933603066198096830009043215509314451537203266267890113757682294438894331778012878784215720401070635329728580161121722351054944821592930106240923360022181744912451346559535615618314954748844959423561641051347886104922007831115738772392194092040818775542211051626793024989258324453912750940126115803545714021766267980980292686814524212602274556216972450127734797982840441101140199495404862139607842941291355492553821198941661693667199977335849058466371184028505935414939954328410799290906799371105820221809734851483748043742454962340131399184326658723136960143267041695019833170210891421038214205866041561792452223136288873092726753129841754371614126386754183094361328988901882083449663780669636793540045386305557577653607183463301944689046366846824667014919321330200923717535377525026380681884655469612549765247683337573180887811754100898304943738844345301488469595930067715522787666432054590553603255286077844920130939112376196636884722146893700837447838941807404984139761405800774815679304591711497003538948537836070881884639945664183275194014193600535688845179229775352619197018151644666050551891315955422073002048630921245097795520185498419588696605740823829160920400997854694481429637241751497792028025752608227343687790449053762518021147482842725098019315416825927893196747365486998446418434645137446626381835705185241673232852713086558039863878216527923508951339604606428561567815119365617302816767772213038122356529331255362417133675502431304708451464947897704959399354766419772415619721222778228627096342779305253023071233679912340163774078773056873098625381495379833825531435444821846987364834013282099054999713847058345144593338924427299803527432299238475765118032491290465856304459660566603670870661719069631504166718015198105132025144326164387830796850081467547688383452409455342808438831979644737158733647841719851325329758940490701491051939784928329025342202101999770559317278900110958566467880239095163434905354167169733025845837250067276654319479138503497732356651671171706766643862110301267282176280237297447363340093787365919411483667948843117918053050710460586258167129106709936158962094243514674474083466555872485478332266224422114831077114928803658098402757144339575147793697698260940546461410398923367183420727162634200314759279776547930366848868421343603397481116088972753931906684667690390202429162892553868738039094160328275671455909579600114110536458115791303191558682133871940299380139500388400425243723304951924259356897273735460929781002788569442762537960039416517267586723940084430422685143328109861707390679957972907455036025655509647207240486219726756790961145325040143538330919167204366811617543912996811284327748530024023687771962559113913879775788889440895572317113594052026976186204036216996660193646216657359267487024405498098094319428500890631389293944704095746170361422650885909818877257466900565117015500485156844052731810450215109228532365479957510077580188658038261987049695574590290661579920988142738025398980707621401873690752253612047945228988461176885512295512458913304565803067719719124434319958529551825403367726811077012493388879165698856249751587670925463437472920575895227031336345120815556560930825358533825774675539018867774918994876634392280990950530673887480744430656601911613486293532960396768171245554140445313911074727513001288125185045723691650514990495944713400661159319287091732855676796876769770390161600967974900729582541657615812165639541264449756536483829196442893544794982871859606616921565202652237875073421283623514245440588231533288314138013571957014431064293379341228685688465957144147057808322352988252217821857188071846977687543090090827479197678692642306274208258334138785863684599788344669108331634747136536994539060498574623554690332724323518917422797291189079411953697161772312167851838230209623239744869147154366581561206597879352570921367852612913729515990961101702041702203017168570237550485777542954217857417055317283137947832496080895033327529663468545736499836382597775219849778498479376975846899554983208590348750240719257521912105839385690034540065764125707200948005979490125576878828260876726075808293178831473456186182111290402185864549664228952889978598709620750302743749121924586485397374657054506334860654655780958241525427889822565776941013984938189692511542168749711877168750668906462065317926329912828505861973044728526469882824221757655591353293668451422608373072905661497561150961629293693281511722869456624309720981639087621232689315512171028921532009481911590676396041659405519258767920464668211661515789070791096768849781424366546845966348129293895328303936615163130857157542521385243922200564593971984114844017496108391870220653012621146800801722770940525914216270129692932321010621028577384493482694509255615908040583978758883506814481475826924714046087119975063007160423961866533185928475532932988317322654080340967287998129180776368088114172550742608359533832795243197294599703850676786317836326282908685579208659836151839044713290490578832697178190179185600519002082909115514603508403980301284136194055803712464200067842268198957889096152536775525877184096807152963560592303200966823538466061740470515464651981187502193278790145927228442762321188197256485804679834167000521246322424959894263260913330643481962943211025413242212108902437411986193023155065663924087472421835089654463331982624690380846577309871814458837636073631272939508061532415953980849057759815915578403687648152419769641229761895617192030378454362162461319641267791238996068056907777616479955570900391692462702729662844986606863482888824881512031589759032986772138753223891940842121839525444718766546285691622487175139092404029755875521330579669508743326389531126315555526625280498743567104748910383229898773769509283098957619259214103421264907571397277814006718127444673086914284999542477722278558785961043661252390725672556793744289806749462820886573412042244248274520374424866815822119255046913254275722270105559966234670134647935248921219369759079047355157369238634457623447262832703696685074688851084086569274270918602691697232726920385623189653423562268813688048745351670502157995648066094471687612654828659257597925679774080769457167579279132517749153034489918288042799728714299271181447890124613233141975310181162221276413697829731132307337498506538457969206757555492709261773710186373699259739584585461303913128582378916900826766537592381710681891277047963953891505064621468773829382112774094122179005637391128238838301997404947710177454159989628197483837940784540766789952083022043561807206058460173769493206676595975621906040472050050770458348542598116963229377032651383069847573246834363233055769435297503090404455374592500006995021627614215319077834537338823251609743863045512730455802333913211089587082423502987924128960994777103652598579943519772665366530136796622640294908726996733260212342812552556931072092354086469582356452040350390043084013297438674752977586102449201838714315233570505467125286280195578022192287243934716479235447453264930178338352443196336955799613524685690354166819909897979555644208771511081502230107736115179275532197375294775275548919986035573971232447401590755944708526482890917997662138810808088409618578807212008118909158313328258608634932260948028745455557910867562301550897130588473536515635272203072922128982837678391137297274803367569147451668520542410488743671058476298999187220297659650523143296219146648168416970802964647855100254994025019470958972906107590066935846593804891820349609726644421134011490029767509742618032438105284368791686402892504111612809268870798070721681056242569212545084182390304953253809190328155381824531122059838663754669094068045344605590352788885905343157343009596423176392815532225367307849307279869143086564391841413538823097852269985373348819710240709103436049306912158875172998213663645993230545958029687700800956948448623296624017786916712730088389283733863117664635983488058125532273804726126051553378406067999308812764950806839844962329221738117925899841259733808506216508565625159135199064095596960674028712727898813204051153205906940828590286162817959834390838494887128995764233932350999604503000496119179817015011188732882085321035115733927780753538134165152994469258887942593625072085360145622884275083432324466117048467441963401821684048486511975765258432909394134628086126235654556114825380672686456946903364838586925591247494351608061618839236291700761221148249502794549560354917769889321839234371076927264422293861350233216618787538073891227570712633025850352370940451915499064617958661206215269189958901476856721472432412229748173352736557620879405051063728966880823034360871471633415321884715065493609455738595857659730602262353321496133429307907328143472321814487300487724477242071992312582238442020320055986336013736150571257267374410980027819294249570785515970119448245154727395242049422848574707674078280949067137762708719940661230454819984913073177616341451304046022035607988811946701137520151042997957555126758926067812071606810803386540466587232104088667245227279810536380863233354474620834164519730220794569445561014522676060636612714427469710380036263237808631659480553712457454662927385064866835616274560112285602677491976326639485319553751721653672358002096366737886776073474438730225571862020956479786239455491186722648116581315326092889005962519688180690931769726039127725128923423055848534338485816142225168223001671453752787665327474622750885169968943163529562440515188222076484698402852878258992783978179770091235431713516577074626507288919352731979901795577487285969336317965907884521721402545543312689595440269034528132336476464841293482705614431053724386084692235137591526905112393988779674230452374885548973898681081278289554142684608402724841328840341618105246148088156388403406847546370538303490582741280422774284972938275599689835448330240697731605228730985122881293679491967206346710063805082769839244917265302812691799490582716244952852456054045755294231065432437777444506093866365116194910489980685028655643870958549573835882177286598981072472078167990296917510710353779415887298367293676714303719563259043120329149561161706357071406421200295331533490417577114580067579069782200781862834728231721370384357115696846672611569561594206256961762688572299006416159213745938864324829467822748932849804484839822311057194692374456940751642609021560176099211585995483676774313444917925894053258735557546791458827400824511729372283072252183208954525912304356218723323770638505056946725232344516892541675811237803235533472157638050862667026242272661870196995146997598479944622192190951835146860620495043043457113181505154971107814157387415301802889096114527768538523250321093397550496235918779955577994881669549990171868288944610788193430782300768458042425435199158868063789095498606548188051668966897696610678891985251984889894189331117698356613868423545468237890510297154033523172367439170144636020146881447311069317736195266993921482034783530964356659821078710308394241779097074765040900399031234425690932005421565173230537064977864400100108137134491399728268644576364888595608690109849845504975056649814390283322398758597870514995751399474228067126645789436586057082810793135977333574749738760351467706728135760618943890138402968396510115234915760069842130399510737581379818823139910704133701339915565715887672886466366252690484250367161418743688554354252177830029130408498054913872024741005749610619934851700034994867867935924008009485426933470486163959014296730936991920859862175748685302078934663847230476439064921224665363360868995912097043206490984715511242776479596581212424087953660265700679809235993776876851445051896485893287794899081129160091216485511848361769225936773775906309521473537320053789544370897350927554451600231518538795984593482479847807920410000653508550376183976772928748913121023947453926438335944786042253840698342275410579713921254557372532581686315994937084413744805353676171459825917686140119598376111325424301546726021558782328963839918383216748321795639571338219818829159847238116017375236963649864147168347487820476992948029375907861442749035668898202785167972770006605357821670284555477189562892457913124498587096730670455562953001906669590827049620651872181929582462170350211901806280008413966212439668806918465283358915599887448541685854183496048275627569675906965526627144162336725300080782024639822386023021523076814476803936720441290518577669542917692613596326053739410196364476030565415458761421086734038189813199182273324616803825305910490740543560607953453677521067558237951437860098979653451615586281331259032777851319110908646415718146179086834871346444942400788514204271145378577829680685046217165343326936478829183079807778447066566384195594738998725021773243574132506399706342152791156077829937209602608136811480497518926064619703466636679338474780007988660045684390190113576828836773652013390795717620333811103354816856372703682211872666770494890826738618800391553200228663214934683593850798191998685099105262089553863594260275154892774317491424287541971657316012770309610333943989390802853676426610223307169788517504354592022006689736647691158751256319978888673171310542472921262999079204166533509867259832438619134863679498582756375970049074597515078379610661692822598613749485514879046398374675649223755598244605051965574740358662892142929792618392527506036733578934391069084499073437957181129145734022886939471413171956590200801735703103681235180489612057153377285583240461389604444792089629094942398800340775002275375969452930517795263356879144266985722851123520438391851281409161260443847350497642720756512528315086738119562473572304843524005594787616225770147884603133708778757131710553654597325574738495955355554266554781195302887448659212616630504216393015836571245296548891362759709585886772785131412249562315408883835304211240012043106475194352172062989044704706602101288892463731405219957380970532540403570464387040933460121247113383523218067741893921100216881592909514782584116074134163599537787983713050605671167731713649141236865961731759252202827968396114908720694261212933038602266578637706680215135902446952613134636326716356408654071456017764308872767928316291743244442639938549591647675792575951693792137433178411214790313066844995409681129924699518762503351908877756699552657547965179695303613218759342727502449215343423922015598069496913507186950166743962042636723933492790821842595822814185335326502489711384028496403505474785118598665482228974263608497228012546037910394079754725517192731427365663771718302246964669215072152403991262391638845270778939503459092848910328369654047308508069676819560750812642396662014471089477647308599244147674963776723470790212296241168898727860482307899472549473275002672364378407737196516972839929478040458804690030361881493588820531893265909257394382893939837313245852226504331388644972194151669101418257831211614168736021475696408909214474403276370011907520240024835942390111717531145019198013732534327457198895552280723533098616354796769905558511369099288691399088924515798576508056067025591684104708162667474501942361512623895026305141291057314760462217926873774053703732386717301599049150062467360642891835057591141789157132131541013352060793357543893277064902816217828093401169562710750392612214794928656799250781567009152969787601454672577559119661137086318707115339199685482663251879626869924910733625679928450868296163719512645388102726852503327247562483169767678217884959084261929219351283877950641425864012210933553027515474026324161153922586129384612876323300196685540035437990458793217896043945278923812702412679128062858844507477599814997616993747232550174009599840845532615353962625887295911074460467767387531712313527453348497616942038029641075517661279516112023802770578768199743101130498219140386910379281605803693104298884910965986955596098004985753614193899615696838591784423267688067527210898198943287132899349219930668117066037100050040844658549899412652469266061222563940647787901058828753112551521133490427169163861806862450488287240813469716482205245395059230142150313445609529858160528193410327147721299990298318878487220886301682652053744585374283789447668824297096779228478438547773829280512163896937051396986006816839525340120050144661837378003186589258652620497674380525617803708449122887100524494984001719473713811355436396947257708008342554821359350661309840180305657225746948014794571863451046452719457136003056122011751544081477186743822964103947097719176361402878347114756347695814473487064549726889075486108685543812511910609747348630371820869557551997053216670282987284802983029221096417811063432081847908943182879762592849285959613819789779267223976058246706956221776315830440777115465898002251866552106952450976497835168042928754998484530799418618499534112954097913365717288768109411437976506003211643622514064842839623702230904478860048643665811972022745169476380594508290986507354247643517679659143560512544165666025425728705447393331587641458400825784508283881157267400211043108465059299776281993062680550158952706765858897396992439626471262600592458544672553065341863537608159429051223355548775752640343653707276275105163615497687298129848408575420470693435249158099327600387332652310989207881986727712534945320554642985712774366529393677290260266185059708107556075209869499037313801826572273485133614798731804344571279550676796507922240605976025025687843216547198322427981016969743277163215951484412391802919977413242485442151200135464205631852267705274978737388684873033570055602842843436404499395558885383748669563945242934653509703321344779223257677659862103142947931267289156019367924610483807904626563256695470153583605641933900914089515078628233478392281959701200695519181109245861764450602064087091592980434651130225949494842299810747565708558762066947497083466459307471154520903825088284884011585677577914446604234490772039798785963539965041960945379368011227501560464554862128740748740335522198329952919536304938993618991566816029273248013561901597969958838276266848675047131196984231297394555831597390447274090121126733408818025136112345128314607425424341124487455659554654331217605701318350142579585790078197778248864631852015073838492795875525555366214974213829338096913591153476460699356404692297397892667782408284436932115306791813881617232415429083939301105467693286867258674345159219917455552224262421808001099651076511363673815954446090881170725887827970338460079338033556888014346125553386053285146614061975682642263128514550559965637846104977850687327132703564720296159360874275937718871516639176453948811093552370799333763734435579127335492441146299120017745361473494109888278092980447245800639143448411569699721633107387127816491918312910178971982826638549032203693315523389274203191886241355969272531966501199690870266406931271550208682613732986996461168988214264466195677496851826676256585494550092032858756997650523508804118346223297194104680241067432952031125050155882684579056075434911520306306646983018899190810902967908038116392202721233262917057764608399421908430028254686430371985197657126344696107081922255941867917429240053274429706444111896809075962313268324697469785546577917455653482373668568935639369322098206179421811893406070074089780429890576873708814898168350095946164085397946624936118066463415246749541759409530766535910618499477243508514802770688453148983499565632829030170629563333221702901599766774631660845660845764124519946025168929192126301945177034393164174924106967714939012061781124672519423922926991290243914640622117375155330335264926478294809210054378307916500268135889009583949573118457210512000122189125089428694103277398969481899609129062609449764887001910279895109126211692750581940889835987769005872995498228786332156061734723569009718676980756582216038233174040435105929152038052518348560200483890549111570589984651219074372400206667762174867299860645993669092896089035039873626260008391335720096149907883915185064856854361649591569347147038009698332445717736982129905589701063492689562674207279348680233297125864456049118255541259550311787618117711219626421556936672349031688616158463540732677250144273939973423538773594728000034650380064713007196141081686998839239135802058795640903222097769734371764151203158668701033886152874055902502887257918133751210008645152741806124870272495637922314913413542660043937649527894319627925568679394033042783382232784709095243000184050635482843930561436718493308735788871674311813836022672989082769480872478616276342896594958217030315650676070963513484353363737927502043874645437104215109651546400834858454212346099717249163041593758502358337494320682398016647734670531926828097861889426932260107904740272459298437056178766991453173954527045192473054487774582311001186082819821246249968951544090297861212348911364452434852131895284627423365326446772278576931771568908370427651982849823283071869622040774352184113016425549350892618855352021737892482364448988918978583363053568227037842164596947088896748867275175568577009521194411601613995112711982221400564399288921129955441466318730717112703708098962877494768781923409680780176207745493377478216504727650680792099067336017302971842927520133679932574867684575144647367867693194831032990602470054534466802956282189672675158293786395457624746170938157118001342212042144069645789085355911171974241714403826656287034922951957681165900753843532864457250381210758154012302979580467801922703602551274020811216097962315493803260737604787219389547196626782115682573196511511003208382608361398851088664303610346141399368282323416413684235431363826223038092996156658010519448667485005222801625494582517012706915128981834913771081807954227278311515015953713705431840912165061224447952096682500940240027022998051140847337189439226472732490755064002730622748070017026426503332320906620756567777607901268258456843292163033702068480342576745875110525528606343507262980201132565349995388889759450296778679790278705106633795770290781774954432183161412243846972843084335462666941672014907230691020995644752579631821726366499160621893324064208363610350493661582882284312280361214658879898086515806880613713262809622844808597477180733897115003500032801129948723426393961108769628796021270119948267970463369899860805446648346692114211545679180584243088098742694011602841076109131055003091226680158905585888574784994045808704335372341358275408309827007984647856160020514992771372272154487058125541843224047727347910144593598155939873170154284403662886690841349776168125486523867306033302920188614116623863528591296744553535345126537427089710905855495364429807349140920987708241746976564882314754904644734659699478201594238789930107542207217714467199519597717866281800390252063163396320419372210287323472115415286424351825736700354086261927303277322423933218711866651105418612562190406445739432289550156774617638216757878447349547425255913138221160546162599508151534575140634587467822426438392295895632529776464581438084673613229905516446068701071053001622676772439585038491628432805815540090963172902658931821067407038453868354442241162790226535425383450227097918855926750598974744067962281383308665987577234199825795519806239784989114670072202561049906681712791671251105558046671186939034231017292902283533967456826127920304910469423959759497205839866946772653998570861377322608173952057427110244181746156696937626508738880503659760346184866653530286763159770806298538347269686941121479117543987465517458799685237758329444779994381499799034429483697266350898622792471189702611480063505578447715358064717590037210933343257105974861605312361160907280600521793868290030146037194790837988785679629562878044568633791198272337267213359654250570601498127042693161222722031124420832402052704177700239031808566803800703737564314510334182284497578479939719594235110480732010355097961343673152389232669299373489997484595372970068372711818153358899764184453733861946135575930424747430747718150205429208183306097700561587572556263601050075824971080937088574662416806607512366097289410799678309674960219683084872668320325770567255545740211902277148124246704148781643054070041966319682498379545360628950276919697708819529709008605993005231256489279077410872685727728518780074280805538073997139136842051776684285469798559135536883865693624764845943095060094032675062325424307430604942573152666357972558436161382872474740421088400271078259786678658920534350012780788245296689370326412791840468137655863152148485420719531002550725421599276994472633858273473590791681092921178335668303097994812420894730310831298687588421883039257385004558474801565500123692306248910242729949104525054894447957549307604520117064735207301462818171461786520205063530636120019728718315555253597857894396162960532205157330896972487772642436137831661833577049163040853871615844178721865084122965841525894583162939958390524604764519575033882105204148226650738911603859050761648968307488381829381604299555849288800330789789774281468790009097627229819086664550415280375469740410431737188985379816507228224073572561113539770320818114181078709337331512430136310133920077468349999583068667677775847065983141963335874887936622869470733867287644837182567655295268098426707108215396367648897551489520618095804366768188918423176714595598761058276732344612933572263178689599632749721034322490655585366374759591181162918588371972509574205547775551063943250243926347714347728904712941688723143434727953210009473658082459749801318125056689497789574826041962085142566876828129982426065817736869176680238225157448844246561431223850141391295150080489653314338776213356188224559535555754172320296404479545785038167443134167982430039541391676125912122568280396798964957205090487317081839432603875469253510691998380631214988296960064280738222161501105348506549461996523510047103546724419956843570382072590898521985331332697149887018958186884525125404990502828391590337928305709193721660101167656236498411862391433237743768516317580490279156289072443697617250633140154705862485908382185596465180994415855559856318753038558674531744572397168487966118338708384912860872617382568403312572953586030115618713963851368629316505335009664212658079208695884772474361666151056042214713296471517549801819266068094378999774745125419088105606928649278569445260979465127178681377056340521478094413306354917425549275736538166697413054460736335254465512395885187152274850059689446893996818148186115627440811122775953700370308927341490351256397125473238933868975753124269831484568219840759125079834464260546363603239967070914290006298568867162672071796485838706609303123085897766262133038403412269398651207049360891935541251361219056039135973399233581866292515410900188164646851150750263557357714117273876935596891588555977126554676458327917351044073365514825825974080663688759363884524062029543863210135110585192173233093461077831957848841622897880551908454068124677675093459831073450164424345010549242230923131112534927868683271239236097338667124851816304890514444607670582521280215888480601028066387087281763113343918747532821841482677999730012744334728136242761512518295784232395144569769347948263006487778164647796629718920739614226964774719663989721801934100013786550117793567471708992253824580658735784206478042124019532868024626955302258343266064298460949553427794191262580504533312885333405256376896909531564404162887004762184842218508146833188605937357002690169113130729332952271208838977036444241462128542952445700128684482693054775680087392668348203940289235472393882762231446264142908370424180287245265839197346841573039826673427618402849680025229465970566398513170738732184125050765299139281354889055128547228166765707671813043125664070693846110750484478020189740477300702416787419546731070472570126572117944817614204274066342450967335801161679464068493422868043225882509982901719378333856095334039136380489879114341598622134760571570864476825524465106688726113210687944735998288495630097532475996961613146550886263085565036426301197562377201759839789241698800838387438799638357285260312584595721172139360646554098376267158607990398753830545850564872723902077078821241642677433455400801079356630915556599178360093077631217773161122308982624243663653034956543415392181067176225157880326672441867858876831808797263500676599083790155786728633139077018206705734117165377106797785829154330348747143933019452047609669601610146191555144702851890619311983767886202265696415530862239359415723863349421289400993966838432377682530194116124458147589305997593115829423668555820364899905504025101983874459174086195451931745133750484170467145143908807099657941238237570881901566305500766663920820876408741786447592260756200466243743589579318573440367443962944535942474375578144747152405794082583652648969821274400963078685362917321000345014043412277844868490355349757127518205982372663586603333295217485336043380048716287626131305352576499886789891996519964027311448724854221953666300803733754091039569418115982752147914668973340020253287760515013617977879157452589418589067487497847318308238646409185280244957862486935315883762691905159569609660440726076421689605120040043026023275297584776131436803190592219761190539060090740414654138514421887176600073593340633499412264718828456546750417052068912964927558812215658850669592513959683004647786306603847632167233775965151906347815013434765394006949557528571154835428411042084452756980537192159987605939621617224497963199881069915323121739398693141200571425878701635096923429093339699351276845514963296556855812676836077560752788514394426848953700326350701226868879620116751032147405238452995367262365286334780401857300915099726501758038944134247233987011187514993804747878916450764234527272490405136041019897864812704135816950200297719698972857280814801804731323265600683035709056559661178752651399145518500175091796015644046438629759803844174328458437084414994238161414050196927976693777978813257214488892309753131342050314814192719142711260344330521661774940688626334728545321466738754040218332140926017248803854213749416220604667269850928149305886314191849113746041050202573698574252431301135735109517286312843572355488924597056352346260721766780580654569754166378550815164835773622741436922175155194995038414129582481115753116039756435711639096394854724829393840779092338985436649914548936161711853946592846066155776161348958449648095347809325451882965138435361884431739755726903363127231798418019404981576852132005406191114807651775184516995203800728696180195653741208352587660538639665743198263159819883812256696621905303310085529869155782672137092063565652965454095087219045252079026852153925440971878427371603823723401586895499774473587231171720092830492998093319482148675702236292191708725242604954514327470821606885534040689414766736058739876688732931437235418701022925213088251946532250123847194249562551166997155743102310514284189319119214449488880850500241157498551368742075062219101554326581117008765537732830033320558483591772234809273973157204931625019596318999093197456709844113483918298082458057492324952025318351071913015302003009832772812085134720817505014509258120339695268622463734365151225065548938006188221230193952902829578665493545578639667362598825003950038994777289834084615535402420125412800470343217718693485973108355068868555141384496013761483523795558603894364170910085019912866838417897308385674157437856519675914202735594134691792437437666287075005469861729638019475534496319547694593566633605133587607875692858758204946209649175419124382360158484843564363619422343539340983243664567353156021640073893062452022606818564738560892255091775747659613529791664416250384760937947282375077970327283405497881784140271044673421876332128523562969452166179643559158004239343618576362012962471644706396590221377256140460140891689486864625647922455630523604330566369903805329072965757941123061436083891888107764611648053440887217934022219113023988504346294505962796114605489020955219710366255210419534639781019441037294784378662666854898667575160028506599448306803510196016376812031659691282065310776475314335448848538331304690070658974383310867313148309026275696045947728170434642478323810782973333501963215174468894663617026076544336689671664108729672218237223729108015336874591656194152702459785774340081547453933842176994702935439798703690349336128796930007006384747159574255125805838827445544121725850869679893634938417446099019446613684966845042175053799763401731182884667905021443975351089596021225558471243215308111857035181489811293671338588523683504161229916705690550593515979584305487818605648338966731760950658176330637827677050117481414059861130864719738916502544908189763645728428652602283377536533587212146510042029607176060701525901116751936999606582891011454902655984860943444192215728933066642370611129962408228395398164654551291327148831961879098804937265066928805635206476710707035328177473357890618247708415159640334035429765261755109176758463048840290840530908058952891025550706196372697116071098881725330718972638820078778029640581838325536819262425850812792728411167677468193716996273067462160546188513463467388856896542362372942079509297539712130986923905161752974183973499495124799304173997694691685119397363800968403118607371641255417223374339410991798506969345407257284419467031229663755606926210554872172503182423176826123885432642706930111707342098405603162299589308168538541153918103044674262090347145542838084218757208066001583538920267969760098070210071413731264090254046584641810873573458442354481759311533137155068008372873041802454723664982019331753189879627367503777128009510753854387015943551534653179967759974999623417535400929746665523714680061588648903663673793927434326513423088554616020956357268782533402935541563921909104259737242074377983051394903016104662632565900370510376365585176247285810992785672426748155157754869079115272400406841707941145413448313335552374088453723954588131359948973246395687006581456003614562232386993536400094961350215685074430506693078279314664570516305061475879593036030579708299367700251212343900435501106500681253656283643028336141031297545231356802336700222395719712873636893612977401620935555047291799230973024955111557781297121166270090380295580374929748166930502111496227635622326006712114330016034197944363816913836807588655676479737572448293566514641771230985959603678888994264923690518318478361915783633482318118047435763304939180300815749697697589718916293141157356145364670831375454994068067136120599654018846839878780845406627189163220132506065826024163320553331875958657302650534725196031833922596104872031240656345675422082494417307489400274163963790072992495176123995391718179525314399593659457276794312171746279200094940377405138672176406293916611922023492958447916579250267894443569538719268325349716132570887607495297541186997364586839064415150980190977486038576928613347889265455287090306002430899684054600453744930776902006037542481757883244047238899835510433035243544972937325668777877394282275019847635551043224398752617714445036414679117329117306753002879286410297774805653604012444301128363114083788649478625162112572482375841982973673231168331783987391420315429496106549069691289773572675546086574877902768232141297782543440325133576081138325214117331744938923845538537018963708381696662553308139347857379799491840321599083905804011656515450821050566486976381378228117254791940934822718856024722909467580851132806303749057870265526924638581300769315175532948043977127065248332542479847536847959996003684964872632276768208191065560790707497343869427286989929528535462642279824760043655642376292460302057362408408373493299692166782241856464102748708153815537563649944034824824364659919537093231993671262906984392036500121372293387495283664440941200711525305975186587845406822324765526894036202932862263526400066976541486356243276537346183018553423812363890598188348808607265537477834761884086475097826009724676008319867649004182042564295578128911489064999206654136571157896367411881045645494610416503162666969453466522202612090619399089775136862532841169195692623261992730279920161329131756577190753141421194614411766990106056543649102647646965582228541484933007881403857737657391052228476391409863824483648815758713039686304967498639675600582017230710023773454652219785691833952435677306663730442531658891487243639030587522895386119917394026505609786203086200080205922754506899446730038938829656201883661451497732252513063972660151857339387137578318781071867592886527132821010907388214564079360382800258238428169341830737323993346353057612170779908168607123332174387943180278281657102809939005861548953146450691193012763155473485112940870807452592988861218570880883819188614448751626388001980029840396411447958450655071424435618125848900559831395552893834141684877863579662934873203451125993486033505186561821023196749026009153212736900505435079881551301262072759960500830684939858005389587280211686409455105325913817437210215575773153022048181258387137323058842327843632280225298280191654840396301642514616831060787618939807924940289237082065979099987023046627006114262954321812393680875908282900091577287740346480739528766978334839745115696229034923011862471497851682766089829130221415022837741066178743346363210235125272778239062573637731547329114810125300886990431135490111319734418662348188937992034115472063907003927059864753099015405061124043213202052794711931192266791917238924946068594941087696047404017024630170151642050493291035738828888766982130779877171836265073370755727526327814653948801183124486305679906704234290931360428661151059493551389191332467356126450578595384599500453150287540695334902554934454470986022370989179892830166795797645704131048531131339920455867637500078449888082645661806257387436635183460835446972057547435453249110333317928942153876554723841317108945347725011611749952713918940415727577697044496751801213823554128081848789164157740159942860746021490979119338491906286664051880516505241643500832091125098362010666970709096752463487255322110314691481867246849120815962744486188739892376726416418825020297968397633739580922109773917326970446365775774703653931149096491255375117862468252553081339753720872677312554464633799469623384722240840795732940116573584151184644934927725478805888703655301468160086293862308700252727137589078110473996789404759553232021088420899545315987072279261364833063426256267385062362314265827012010343664227253670438477541215219982292286066154506099526433525992982791007427369912584595662662982515068013404429648049385037534417273933528163873728125236193169456381117682074809118272703166472923540996430739436020200254793270423338753473905833617243675326451953200526856069905083567733869668036353652539327335265099809892546834553391595044636302243825931745446954950226074547995692063058315480605651161093969056231324902685770969311646082273721025578521504624652082079430593945012191002459970281601903988298346543132072286316066968565460689162521155886320341229818306994418661596610809606953056638458020682654409404977134892056569146357321081122971472073001974032102794669866394146105832534724498468140955767815130644699207943833558289210203187214608484601774938483607040160883215052972350607496218303539764798531562190638765854600444804603067561194691753529800465100254041733524222093721627747723352686698072423599835730284512058909257639125310302083605140920368744591812509955170924712302451951969245708277795549033823302017853394679744306307200616850691945540857453191433286943750682098402717730696793052550826257112079878194376695324324209807015222069778024807087900026951477067697244592800192289129087535238978739795098467416662520826806144333224805700156921639381549596249755879787194084491101086977415771684596116019458127683310025909399551311339205528682543121709189347416470780885702844865559268275459189218346012964803449507816720807662943952916116375465882929770040271799676673651907200433905181059256221913355681910090906249678010726629154449585384263813639442678398984098052744712701471477925303192731993782450494394448203857177788080255701753088980233109437269640976812641628210345243161955973643873719064663418814805977629520637896803179393233905668755916162959505437927941332878889306003625358719844626572601195449181830246220454197906709536017734175254910146838836838778542869810112995090465449379839975911136162893127454693234888650865195151007010864535514804700223263879472006968673737155413108414888199114649418289589024629981493096735105143152680914952618930020883267701840819669207090810291006415832857797649760420286188878632988447965869976319683255780250220840916710944433842028783656275736205829228126431537461093968579609076432007865861895100685393814669421669619571042850429119515867419842266703747938471321755548760004364493762708188350559290945691370104094683667932401196734354034103768045494578692381680747850126368426396855098420312860915035853856282334234379152957179355347914022959890439908352043318175316905057966276324836487459707864950586857478168339814965707973030436215256108683561192686297814066672605024332002413097829562817378390640392684889342169286153888982797258777519120672865037261068648191869700157296705409020921859397280074572112080547723486269428152874562988942045571901795525595341720426188967325723886950947987156199944516247276854243733867442500584732086293375410365181489223574964155150525309877703461707285216880351574740184679770543555836354044780125153371032749693265939526180449317321419641421462013978422841066125799876939554789909418116787029534171572331158500841278643017426793827719894119327253283651496363452018394975097966999566312915522953766563879338404787369217201757477298642126171021104018388373424334215114387316514532400796756641281564429810142615191262979701946854831239330994117632646099548853059962602159877474101994146535030131424885270614391984848605858859908559884246887081723251490974264463698271392774012875656181231962441192976394872636000962923818021528638335748124017172950380276704126504204941977047425047517965275158024327091525255140900004145480133037635203975273630889934753465820003588657112621089091944831074362076807409716023176073070139367299970157573699759589908398370425054291324266653168275886116266263680517027470141422979887915685522487057563657323547784203342032279711137868833362918102369593979286006776065665286597862153858447113262443109545567274302686170386638843865935117988352984481060523117523500702314139429963660911703357440347652429372505027824951775416069661513461709118974843456533285460049404836180264446102453766378259243108818026964808226037079096016382416523979019901608420795363496308675188613942010417609946596849859099965814876794250791557814573835500771249510059429945546303037422748273732632917963367730121405015804967020915989865419539945608995033822827018500100124697481112932035733708506558547852281240372293356027887948451322424088440321991768036071839121163219124426290480584915817921220561821200342827407149858636315195072768214236253880443668476785362804332060799888416812850363760583327661106622415806926298251600643501066124600056405613454869790760692811899917143764305239553577462347464162029378405571525937985248213217685569819116230995841016181006827805891648016027406620569578089400910977148563703973603585630236245019327145082443856956193748394678517124705412160074221908035778316713386355474294907957829474766658253983586735776087762698483987216984446051063139851294434784219932928745989729343394732847397601523579991782729362873765010576844491931361727193578327243150494195877820438801672548821608863501906482952993958312682160809698958314743298007371065923984250738415698973435903711452484626825697828388245256426590539673395640377318117097463446691532754835932058129770292005285441494586022830770888787068013304654154136612318403395380993318595563686812567928997072454376233665021615780867897184164971019993079745609136715127071256882252947541458324711279429335960530030012521098756091867729512427462644884780734302183229562635983151142314871492729922493977450141195601875707446199819800126024021512846127536833808725542847483235486028643520069666288680492965286438745125361580059715352845831946313163775016671994328026299143617733159274203009430294551040803853679500445683880706904790323879130768756335727299682236767542194860065787418418064347177860099204007650679123859844119190886918698355108212265437653565350813574563592780548756636792029175210458012177737995118959613222844864431111240162791900189238784516416459912718216732243402006311319680209194620794485270937199219596126794238825948637757487038581845931293568390135899678653939693411111798511180347367194844374628752188472116788110712469882810621201716051903689736025201672720029391612797839201227433677405170880417106775651871292633395831614891861463983344942584255657967898307439345984187933003887618039237431355198114426475745539624319747166678004719909264496941963079678654153445559348791980251025384978936672427399548958878800445526282739462638148739965460076226208385002969756201676139107915974218588769414384144148455504140211518208350108087792082158693180735177000380811110016296783157549605622217722677877823036964436689426110735540666901684008671391656896051435050373211242746124719488498797439596551884602792876267325856507481820380551075324905891445918185227939528523296224261246908413034452260656816396501541804637295095801631362146029549446839111355125259657280426658303238145856933715343698161125527636073038807208126154085013871155061558290436781443632248596652510575697409688548940221050337401295253546152339141558162556282314177818708134598035024182390804011537436369184592108269328120693387205602689102146037438085636420603182381360561440231853385537624703833889259087996896526270137898859187640924946797912117753039198632202118769311657635063602934709825959384674279266636736872373235428647713034233764227443183639181444290398474510247346354603057592646242287408098066018878438993655161991128955018808598268302317759899093791873469700268391389406327464326763358233671556996345684939887524360153272093893740101162968903819235183852984336519938367727096372268212158374582092439100402792310117881939518757004509984712997337201645373996047248286716073958806256920404254400229577702363120343720915649629663938803223579558328148693156708666782576710363543828547109598175166715928232669444207426305135797033900503610973163908725736890630445426395995697484593826011441044287972167727052308914205273050888184176217803498337309666294248771980298792552505111364761496885506212489212658403474383079122600690816662219745757249636402261128592350931650634343164896507651810509910751831283672959555443138220462875522432940468305592509699933713462570595576293268558810554111436148885709301591078215458912987419646762283281451589964678248186263157616449157745661398225989511207591746372198762746233947652991955947359701490335519649468826098959662772990376823100722144990961146857746363718258557309958752892802617529905577577191899866524211557809048450752602533991269905219431772294882495557674030831894890860075976246511540643362058336783539949625480989209081685284824141911969534697558295178201898988792709756833169531816812706837959748050600312997148325548132951592100497505544585971499237573902118519909450946635542583187467529059456482738525956430037053106239554372860901859666995643035359341760932172271095484766003162004853913167702369027700283892318136454819442387406794739665172544673771309711765664213639236823057728869507937595872120752799541947658313168871394825581738174485052523333500434604164723009828570321039133539065159334379924262500623936249991440528486734056990568654569361947589581704731506671642706725488684975279194242665285678620923969241095765547054801403497107088012302409064838653437855494295132326205516826296767170825224720497269035108416886947043764990520936854589394069066536539150547368719864169941647219405084235251627170395543497128453852440304779685418386923587888858941850325849396127035990873983396594058705128267258122019939157469042355556603064188393881072225958232166277672052613032459567007119246253320505325461246578812717020837113224778291387480844695235462974509325061671351083585323669691069115877285430018812623127616181523311439139484971487200948801110876093317012033154554375744601516928143296535974924837420295829380960761222906606556092765146806097367018234225810753411412443766526853587047865869610602581932854034352534970019435769361804166552988176582157743539324399138083338519166132213384739112845981435185064615025544960323764774402984364061004773445025207540525893718173793715791206220427581006712585902859184598917437312789666429961362454861245479593993456885333043028410302532869894240296028697473778964176847463978631149533953169938432304411858379881023271686930207032317726317928846859454828862772269128599090344943158105423857095008381519883167598266893759950002891612687624468957590763848593442347311076388320255786805706001660570298827189451885961455163279241376266432023568071975135330544147960660136304136960994090335373166524258121587540995125833468750488270255295551426432073551587952480058526780413197982064007985674723853616953413441008359659468399937306330416660648670459482862414420546350764572104473958571368121766960428978636925958220624794051488913829804054586371324502694997269118581928539231349957845550508385421735287726447361279533028536208938319151933290243586536575430983698401087690401665356502040672964133364110861979321040412895245985692198101936016068276594754193401505599996488931542676042460216588754709741575779673833499706844347772011886848355890094442860240008417053666461307191746597867964954718313805794519852266165861107110863764162707983243902791593111309621469609615343590123832793420856363268310991417593183945125380440947843917616316575915735723021217846917503501588286042527203875273713831156271372049781628527563202462000991061564050828836795895334311113781057362829395573102933607039544514849767814510614921208815900160559456316123574625265269888494094898934646999422065983333821729063166151860291379027054947240882893546354381137287115638387761011722680568564234424322362897498563904315353443813500536916276721430296073359717282085634441922131292038912836426608012336987375286052701998124595838982976860061218674788288514555988981196510267551853549317280932915549884830662907173373721552940216695057700967013105358313247666961064735641201428518576397241412788498704855539969244091945797386074437474766557579085194619304552240855338817584111555680358268664133664763406934627813123630191561967842535966158635572960058489038654626741374887802700604132443512474322375823044441484725633019779971946421824557654817090606151911834373097407651477843161037543730817637573696001111235062794681227853100083826287007287784931601215557400874566432331447320178833708538057655079335500117955506236546155380819415907076455070360592544047599515945119297365240337731328638163942302996401055383614230250041408027607169114969302454570642116067105526774292160924332278053006519423445407168565000897240223738686572984837729453749058591127231652721261222151532264216308597197540045235454167240153621966765221606537481124612251672216133366953384613057972827988093784414689709115465501402144453099082483390277323833180890364977092872055251452724812147992854910901705273930664865705113321901294805054658972087929925374284902221560274506421562824891224484014073821916461212857172603616952722093060182698721684740959544535483748907122648795990612178450636393263512425461893976284197861528513722386068635127155829491450091506687607353532971630417360854575713308349859624953329769422207704368086506774178365756839436610692715063200536157671916482906929942534511606880046769350017340340608066593953486845112413990623685357771234959790070293462234433855565716627098037746627933190908954766648924626327233341756371562311915877586627085241250169330628528351709782656543485687660752196855298804175737118087072340219390024247646910867573902846515961750520102376365064711233348999043249269897450069041615220403277573751638798890681428136556854128673864934080084249615146000010889043898245051230680047030209033249294127086748224455808392477624515711077298978674273564480772669420799483913815501355593478593784806358416485631990078663204689411831422819167295159477416210603195645193992309970136812268998818042947534024111763916690161809084666033380457611820024241950945979777613205448523835780813317739670723037391644961187762420931971705140570004641148598008074960377178564150458572348140092494770867747020805566427155527222925841238599504299161274698691581405213063161108493203692283912326363360123058682425750359071532897074359982343864552488739025886188663173292574898644580885284710973175417198798932972499629491978869789093095008828708474309121584419554150057826466547751493224391974182526774142012216451568897083642478421452650867288962966798600526907006666646890325467769940588647573641606179223655434127215061532992085043431071470268503432679747434829572228825064425091823425212922658423347179124058552565769022037070328322524457831949603292140040714999268858910099465086291202617110436467178350077984611688716120055830731800231245089114301338951986962041712343888212680299698532231932200405424313861778211030344399429274150562292029931553691979400467207583735905609547368795399489018144941096607686559913008542800640693945245143353916130222513035668366766413520915986804099646368662205859482944923352681069805573457800449595519125281625080398358356973353270944244092822891011033157643256602522316940489727031796518127679751159930023524149394284876740892274482364692380776997295720151075311833429900727291812624842118261446192641171207937398576158972382986367589505832502782374430084769775286637632148265261837740982269456199014781672328411932369788123523289117671523658266937958065236119674960792763078525249176268933025272757706601067872756299555874683375818489889603634340294032432133841950576720243789973881859194242294936565161677979814814025137193763776280234098762543569493334648738931490276077452801554351982611229989035805224304174509801236864951248063357487619082498248945723206871791543559909984690898312134251179255543985853666995712859129679048859977082474114866649797105446473809429404619100227043357986270446506837417790107030603974856661437529407907502254288076695600621399465713719644651453419154212640230901662657325999621110475966477243960756929356110672157092242787973211882755798422419092374520026532958890960288909578733869857347188886254215105734290558174510833032858786973547950059911262536316313983470176708400764466281249916349158411975546957570767714804518585337290717311624850660515729084238130783114915731994168877784478521188990193827698627615639550334000684858348270517105798981457438618100905711024560586521798309512499947137459708077317533554196801728326190627071204413950315324249083632540796701410071610805568393517029235338499970484629724003091864250855227479362170181831374248552445823745138701587185221427212145280455990349993293768482395299738530147406844248072309639505855128362724962628220181081696021228968117178597319531669299086010747681594821617738818000740857883607669321827054279753417615987556132797380379626429277665699187409900109742251261993111706050432834042522429033196537164861932951324482155051471603553671929068868909467976248150159157290369823541455066949029498656642310114027800050759888447413425669506756438919355298637765033737082120303802337239462050928474998572882584148985150963409845600216144495265068866668404323263337889177704397462958198806829809792847834449428609481378137675858245279029244175798440227513279487718667406604051828305964434832902440420915752561086316897785582321480304573694824402456047743090400062821579757322340303047554473243056919855206711194437935135125372437107247265409406624011367994934609502178180092796079741638721518523701989821178118629702289544929652711941922864331205589220534508518817373878883547798942874525374583689636991553709628975819643400148553317867774451121744751501031465141161952465060113610971837236527650671223239475065952340056362957102961811277818867131422441592220846487532508765651020350155186806325539560202558472564372047563958747159270634669501460768773221158434833089125789515244238232600227220279643063705606464211336786165351358423125325184344351600876224707732013644076898742695095973953874506313354236662419627999526386936254757973366449812308508392834279109620772305843934788547643109119080725051072147185687859716466865148172858324508351914379941186004904972458324725936640625378292468967314004752106146482676356646211073806525153798300579186516340178443400592388870248722797415021367260837654052671223587071703881048586706443686329645241338174124509195931872374186020477112181659051984872572036872315455713956043663407472181790549214615810439774550612320160802061073555918060837970789897598631211696198869994633039735257305296216081955913092629178272293059374711540241141186528737819628350860912099975175624844283598003854155119452024460091575493853980324880495064115903528044027794133724706042118039225047262886759249215288907237766278779757004621860011821989382589429269422004977323062282418493494457299964668513461770074545860130382590163001860908511841289687083229240851486482359927983681148119517005238726827113484633462475461007785928971678169588050429310917667825369021248244191905375070217863266758612551255786469009028659173935574689784995763746923434906107402781083135550425053443695670941466778358944757880939532664722802960520798603193290754551522084750575184880948820650577001492897709317651019044356816566755639091014485055192905043922353424627262890070932138863566856545934610325802347879463453747727398411205005983144403943069183278549559705293571743109948195360000831499289635359020771938848522002936971789861153742845040844458347576931379976403104699182161547711234816678970261623876600786630445459623224922914870974710834125636353197281859375387620405953063161425830250615275131446606878763568731797131114893570762105391921947725341763763562724145529080919331229672187070584581904415837948535753071616422003397760267350921935878677200421179477786700035819531042635173304131142906352590264867577187786880234496911787534512493713214776156890059325609039065227107863774009632423292259383490983098142568255814982192090166260754375300214207908759078873949508709901197512925075117302865630497812980115330694431653202589645970078701658105768843116744993515364534134694048776526599032036222790354718863823424637273412932357124274200077043393125552301636679571074584467201013045360491240452333202986734686751193337328056126470514225352063691633559466813199948953433310981214926266607761385573973349914155626244790984930170823898067579067963132826726739052108655591876103942896139721600064769035424198326677212531339155894911273892157854175150111104879963149719619258708181183769949451233542353182716165805253272676585352365145595665919321493070596225752877858576287638713385397087471829976537172065140650198141338426333705912849492042878619989432939312976380744143758768352752035979256251350877699452591870573868831875448415016037623179734670979576216128980615886216225086232729935904679595357103550514916826690004588086864811009277787139480892823454071280521092572145557473201324738064395513625318366703528836619974314031598771370350754862834196127431677820114764336842255712806440761241025552070967873096623075547523772106976066571944405481710941386008790824806604211620807235830011956026348773150285892487312500826950750290673575498212427240184886894527197547456295195301007133957991885172842325659665651897213119951923536174257648645156568404772542707844585410977637866364520282300857767082814742973027465330914888946662487227247876932872189701580625972872688734973868500636221598136698272670406316636351037418713241717914292418063940548663111714035506165722309046516239673185008302314102621600571591816472244489967333809787977854254025234367496367975268032535582760663691642002380045798301945558357485180568515991782081927158559134200234804242567817353047674551399292523520605258698903856702838675337426687589595507869746526545759075474762608020945348238210952132940008550094767427347937919518564952547594779643679922954315535575790895651756315246259032359104465737022580240542894646907975318554633731307818070185935794880490161121688030192585193433789795237964454278492755178241704495409090842016761097375912486030122702733445428282784223665528869404708875225397868908539528030683840750548986711089163182545647010310349413098198725411086369130498471745273352600790956010522182987422819704420115332498191402258556404863114246938074056159320786240347980205357995508397055142238108614586284523551525365533958981953707318444333280315788313260543797138421893836484556902934006868314796568450524830954218004415538377524770031512839029800721517536396703694972592553065084037343887471565374236789334503620752526789517386793877545785454297792407972663182829604658597490597316153128287505506037708377756052251692876619661377151651287776522795472374556225008528005921523122777875861663344984289842615960535674895966297913531970228743377626549334063402345936949352781293376546350102431303639804914376774039268401487997343531458478231966932090112637802612896164420972456331871424040134754855940937122347226477113221005018881430619913620780883020416609684000884916122587488994925374575763486878063907899812343011135775034826250630026768462180865308993014538027715285200912043302591244743675135335416332137862658255833639998454357339044076338597363910714604847546841465262336500445485427994289930676084001864808941687544930951561284742592102244941677538845157915795386143007249987679186178117489119121445630652116886991309481261749599992565241653518137167421309419105121155767222716368510274609460818682150328274660922336472628402464950436712254121325898716841816327727523542747983089287565183562944169576266557814384695068222009447126662480308659508389947169066555163322953289124852177466560096611986233053515496182883310388564996396673044060386725950850263149252955614567704593020434603728965623499615148045738483656298305552236293263151697768991172890118120018143012552932304496263676853634041208174330168000181090693615894256720446436072397062570053684389755078276809704327172393122744439267423823812860700231469676919982898446895633465853338375678510586936520556707922051468640712576968748897984800901463424720483373485444331425869129561283432698948658219522776972632060195493497661222526182606353240783373780090766762551341968484044697158058467678730100939963175023008652683314501335206951328424367675620889052880381998258063650492460427467890066354670724546334186639399403675046312442606909633209598734573769866297040571468438622040410875265474793781051209821513371896786137675825013876391481532134899291757404084222359563713488530273179415308577702934726433113453947108335181207077971273000611467181278855178045445516000378552365174784095111085587579287740501999740762983803561417895738068019915056934698922514015674121795988396498261304664493896227518284195043032369582649447706106551869871778290144747954767073222017827484258178163649299123472985011980112077119687521858122408928501092930017979548679979528420382175188527440877785868561860017362455101782289507485482365592613428393670502088195690381706749864648495043141248944109736678480547743475364232176363961604220506133726877791746165486065881399081665417192502397725629237681305301896290935342132813411187131062363263519145274247693265568933087039572247025233399650349819803163309543776519820314785907689130416682554214550028250490505406734273843343633271810596301225543611132785251281144234084649656673488958331318817511622885078289210990586747330189680805204628992372589345909218918284159142685165333653399853374025295923486341076042297718417506885374034565151938373921376320056562605183220806775029422979884062583607657513379734562436645788047530508463623116187122972556815381149307278186044328623910372234464012458244434595910802956036314189527044752425322629473084845488505197600181291276215449362786972095972843400838098135120485791635657231483111090677568786325341808545742612294525019484424977377752468168571605568537402146740590231292546045306307404899841206222585045304143147965322099986577559498049589747558900405540744306162605020746149466681846132861857829022527020176149435367220291970310081912487846978659225650726592812609461064553746719553404260519274728662757442219059196012365765116542789711537371104602746872307728456926025522786664775102668370773614037175739051398949332023419914694707069401149764978202056877637608010365909440693632961221819123084852127352881312550152969403095228480605020674422548875170655537517934895313699630906560571608408158761767637471617631851709998913318177778862244513221070913897671695216491336919979660491626478642785288770910224867744463603520078373400388636845445077266048137583218416663757438578199569766700100117223723977955158674068421857274203665291443063181936317780775818640223926418406603340706023309079356764029139117450127357947713703244626903057640287165530874455738276934488910188540484442906255331765593339116110019437143085552243179517103005575068209224466300007246978454560920532407200888852733889508366936090004003960094533106884173283012071620623001560175227525563483739436944325651220130217054018951300239187223814158110214284489976695373483740982899200586833637684864709835995779198249132984958445291949295651193174370546053175527425526178088595584101916403347703963467673347503754225949955323600253482924273112846251439764439710805709905324804755688179701674361060727758010897586485862821852119669140144738268919797333939816100938275748195659589261836944347200453554052157285538082627869250940491105597976648682072320515084983658347376918900533941196668707895714493341272951940225860379416774433618294699389960169994906639589184217670774391205595226052072602635882190515396585681839230893002946320365165844644164981089894624171297461273008653333808726193491306982790957309295903864281846774620339522225246183699395483875246264874217599177414801042439097814669407211897665248388471976868797145923250677185352930925326964253760795794127692847079075748019346649254855635557843727669349942288490993260725095776742538500147505829891544082411812151679393875978676298919557271498695244556627904929057198111647798226381614221783901648605846942584642781046265310954766831489608110986510712691983742709944837139400202704937279018096648307901190049313433324048958531871535459691054527100834552595020872317029766611366610748232423683984277401965981457888949082984139024415782599595147849287178872703763351012927158314786940648712385280611406886524720077668769272353061067510938280446041808853251261719687986907170093669231064530626803212869067769526413652005339797148063849986090080321156968588592546245782978784587932431810858241158230784314388042930778722222032511813001792944578146094920320957227688062490662612321864487001364252868565778657565665785664610307751970795883976740178363270050851193025301185527730523993144703389476719568423882205642701179619863430218740386988871975593881662234929643899882084747683090172661218819892975704591228428249171384614818706518450506380944024024598093994493461110200000043199142255036909172099858873232411056347912032085039490409923265955007300989223766876619204381834053684831532554410504465279296226264084118551636259392808902650831975345562276700957519166797571285659758817876194287287767189485979562150577148530901086816264010101244125270059501857007712971196052147727805553241749212864736761073514158231048871080987603057521360634775284037958559306558930379025591021836442334156461947943138930301255778651892490242197487762920482551419103269653735147935531728151147303629021369392437781165481545211390842888323647672887977823758832504512842973893182866082134507755945461093053073125914735510864780104930763998088770464101643284534910399809387714412956238717440556440931152388344505841304053607416306544614767785526730868392084671014080902303802062190812746478743378061019356016093110064629185105016162114622957649416586012081370071226150832110346074284033760539301565732272958822012952510407094707380987465500230040003227518338795072034670060498047728136729424169511343248043500052252779244670155331414659957876115383284171476463011991609383596483721244226480747013365528919102555033761311484723941840438107856987406787785452434886241201727802926373827190143912748163760319520914125336002510795133526166292465035096240614005959216671001217546566487018015136495856533629918831009167487367881163310875923380947584075768665255171370444443751492067731564322022627440065132660840856727602399481461520299417808564132135175695061283870800474105160144984473776331866402564890946054001114122039480708701319417015964161445167542979270657205105620073659353418553726317659000560794953144253108928287222070882517349211781917578593137431721689966644991181254370881493378174901936698272575706857911703537849705243459625156736167513917129100174913118604478291780052508458859868508200440748226603892173322080046156310473040373395076164415446954391198101433703855610457731591779392940013451446430153999442255435027156469674661040177755152768260519213170645670442375390072325072297588408975225764728134798152148231316491668815903753153665263690629282769280521874179741996910178775833531091161385227033438991365338492956053818851266969039737598171352003566339076713966524805381894238542514479202481438126280432404693291374314301102595307001279780598103850159147984631971642200915440018087222478801968612153217145663974273117044596632134383187639280921221226603944371064008574607922064322292696224311425229641832736059335174021718737606995860686110625846533805130056280203715479710338761579625843207871119568390251350376601522173400408629614993164817077449886208561606673396147473948379641219924821192234472481335554173229590085956286950558431674194851058383239986626973491195474782163110701070237491355539552677281399598465072131695699405506564079971008937162526161847507911086481427480168883836474559381400445726300697262505205909789596779106425724076351522001397004394430632699451514584492296648787737587942755168224130935916936301841177009307263702903017493626986433787769323944371185076728233611606743032226325738761942865397861393446937534245337189835229822724886857783382513858620225649084192434022142032141121747673288199900975007798546724222152606529525462683567858005630631338155232140980092293107790766618947509656113921163513878985653888484813959062220532908347882164830425429441791509838014374096442119409498678633193361383941479803904572395675873983414751742202393729902070420891519351298374875284165470518056560830590162399136810589985990906955783744965533981562571767429906857606683458866484935959612996443766358233852791400660939418738247884443754309373422679516246887388470883615699550816200444935483445075790853045233056896136782624444282112920435196162404714689883336226925227570570148199946425058802671204892235288601842997588867673456050533287636199001517559080468971603869223169552381158696728290176072361273305687961230483556817327698267591162718585843528674583166358381792465508422733014025466020680764823210837175999683995187914278300587824740629804592208687113548786680802615382216708173829308716280346036654447885164931136721498223776856444410397883135791776974140384757698847078139438033620994276678082829635037272439433099066045174584908838552709229474215730912038910534971440561058110724097881700804185917551874847408847839007388436126920193957334774693147785658773833557952430400075339040061340228087300890879035647886595710870587043372421689945084524193715167445507947863256212522891970891660914496787052084028412852253155280716288296398955872984805303379736126791057392441974824989862631356419658622237460544184605269664308629228405410696181308126904857157501595194989356319231219678470230423854487259653186104146487371112669511703568722823797024638800805666530044153736938537873430590772521282460233033143773142931160881436264896908364091252546710459704716513116269298077371720142028297930829404424002042660956735458706016293871635540576481783454821892929159913905626977858098763641249257558326651588581957199832643587577860460617508414374097852200926046002297724939449752314037581555356461188773495164877449959606192541460097767355157425964760744187879119547024560547908851104238150258333740698672471005099387312381075793238560059025888994376050941717665539037706499083362403495244518325484956812799495124186634011286636567353724967839091384635264468098384753039624096933310808163744286104056584387045504011464728822146095543702324450509480204810513361002082243537457028079211667020300079065427551256371292335728510988676963576141415094902047745473961048426445537572180701472229613107971121809379212654411205335482243385808749638143882520877561781754282025427534538400069031980380520317286301679527143939644830019146850040465387882272010140313219282930011541224547779705216407651149483190979217641994077182073451089249188794791446615829572150193779116603365942516245882680053173287719526407598562926731063034586359138739319327135105540533773475041109654079431872533020845319937001109436095597681272340420972818614085946909046161672053008797804157131884008312167315530768447602556121617502831226407831014773083176950638141722594009218105658030449822919472324799269873001436951862585511885386143496791250210049248824580776956293683436877426079705960637383237437408198554374620532229354348161439211289103345471361815662308981856037167557445351684496754056872502201571354082004042644565315634273267216407080180518511195749243403125857526046689584538836212791180832547081114535290282582706672217635387355933844414364498761945164533054045033180432472561557568827628381815490089119702761854559901855620388806037650224069215507327809695711682914443545729373947160953219560598357300318602543002541856120981154444307169585010041201244144522537054699308369014926829098018509013025484423732005412547828246334209713284051587829767504726340752694323071582830172291008308166932431086280819636986990339001981063927940443383888770639086860535824616404035284354022866195544264193764080410304869429464998327759284571812452508548382332042516477662108379919102449419126058605018148393963913365810920980177012822034401289159208227668323842459602092570562208676360281481498965969114108746636025989135400686370828984349189987381211587276617844264857394970450591493861715885546473682611173724805827621024662167664801638312231318626963499188851452929308985316944776054679623347922105149078310592811562954095037080681355363368452789630263986370358903065791048255987603409831892460276518191713530966428170726678982437150656311704417697093527754867845683962439405141020812539635365673953023368556628389450704478859463268501191134752626487710484017100485074616284096840234178712476872110198360893325173132044913501082063135332824886299392778379028848041553175718002576011339882505228410627488899796307970660216649096590690407188117252198999492059671502516346394031210525005868155102384698927513740572174072764677304338342530897654306598945286561806885192815077734233744552611420736611114792762236406483286793958533563456872306299063057404039396384582657375154371478081967816937452323517299198628028811051591371204040075214294178796164405291355776440548572714396409652369823385005371375632372407664425314408494999414280648870776830915689119335487210732477766878126885247546609433566338077466306122718534153594619273966200089946818553549908874276848216296706407238715820319976014215302595501102159618228174760440730369567881421553061436859034853138737280010642200398941518920547102024235845825941664617403446680630794550839186340389649576731529479940192729478948940682530743667952848928763871392120543534053674209018970343569026581897976716564995964140660963077446295591953198866423802672906267937988209554263623053276093636665544401110270027921529284186260197732357553698334239648787954553684759740114310700247435812646705066680822054653171078347169589816247338983034425175432300528716610977652565360532644892191208071593078416177231550087704895175513810240582016363593712475584944116402312290314513256761866844039155874677264638124329544181638633631410533652854710483828728553990451106573192790264721365445892588948153371265637201035900729343933898528245431838358898366173265540531762087289525129170007147419138822668916031464979027478605506556316028765527910748031763796741830822507823839631274818975869676605344445171040225609107862444034199680139222274242801363361240965618319035027501899885113777701762006959649662512904530358427733165128073068828168004728585767413840914036564316489943142461922324360415070359236422150503436429088641769674546951042685457722741255570376623534089575940922803735188403076679950575417493449608622920547820803323296179418260001553348521287265083422642884916929707213419124680067859176082871419288259904671749717430235721830755262646515621542471471269333157267548243517126103233381836565941777467912825190474197782882786536157941874027820423916417886094085255792859384747872216662450148086151672661192338937999121718686055078160180063643272630318688919365729473548810590594402191894361186103118413437216008337474750646255516018114476243959527453752736433124935243625270705411363996410466820502985076354516554048770044785157583531170290033641233288133798185645675072419456146031254797773317403025092469206357940511030725589850979435730012694662152189697131642010551790371320522660841393248349761957493978895936537147231700152380296130705050793476696025155885368266348002630628840842298234504115170266564796292469228182746632455800524320974249631158405990753106996992855573282319969145629988626308930563966746565475541114309774081799287866738102671683504682292435571967329323573370666047593169574507153948122725933925437137493968669492741262717405176022996810882811335984466388832538305749001115901081912273865769681306306686511253991664734024740063228312897328648370844724692314089919803405469949193644384313580461670435144710352994447031950573821366700549761312987125428802765722564416196389947076944224213651128402532290413337874074306779403627910133355589267372546632261371718136090104107318413437878411604302842973135806793601375763183362231472453803709451883538751963509523968019729441027539125545783195185605155742612802976905050383086462095108392847874005856453336349483184884026469281787596472846169854400332707712330950117648142047365827642491920724380966736478661077822842133930471169350482960311904748177441515337730236320879466791780542160785213846771977902778055610171103809243356287242312284979599928688363002416244880038845973741196959529921393950366811309691579124519840633045791474549105750217780054000069988873912591792116578354080563110035825562258537715994877320529707177027530864787722459638652626924362962290889588598114929101691584928841468438993629665523763511349339356482536538366164025047572644058576048094351818616758642483046303293784306086990558891626348806591264523445057617477640531429953804677871072258540850608585307354123031641805622139365645750739035711598927522807637247242925096188290640428111248107326710237439614732962186520167552554313908567916572508396744733252429140235629851012599996819555475170883547056048210953146686245726363386752371291752362295363094385741518502369513833366970177618523852077620455449548834383689099128876254859264247597232392269676000703549910862807854928137890636986496258917362302811817243044930832950897546948164574296333532220897458749380586797181167459672898649723052230811350271124735100047742082763495095329464819645137555003810479531793090468544566667191580300305331306800562164003833215528121456047779645773703582507797799169876089275918257957184791022942646058778988519912680890205082613395173780777796445282323252631265414020817479360339549171270735766227783886024776059519823816287329652501561218395435867135336089507947722562537826522088477948628700936197839537080646234756273159763717818007027955050993337286940461072357504188736315891828788419618281363204037944939436385844756724858185420945164714822459669812972470095775948552246013192950565400771150669716958616060236194353824799337842920100595480792755191929115702205466510930556949211589927366817888441192423620443714915608911808796137475082456964972485720377440847185630754345473015061505617215341684521950177033882605193811669460213962516490252468900421219648057047012909628027439486743512314276587537048158980546647188613023625450521996453034596182932873110713101450903900547759498916224878064946991307528309003883795480047669613638678359296804987654207527550314789405117945960500284777298042292393439568410758784607933144408796304886981675324473592439989497462618770547980005391543949446814120130016780390387568880484546813659813376145972540201175467220784560191181658479099874997584751579716280450413480626281782162746483501730611309546937045330887336137707001207954856419941216069457900309852669854873603628120483173967258985833616370596252970068036923289711758098332683604671921641466721501049599294908741322055852133563826143916392648104884162261796409332973481754702125946129667618862190668070978672726529880849436543491088876048211230044749068865276357212562158626555187310233899810891624797851612541370233731886379768790108916021704397424294208456903377021256603075763877171506802193966672781823244227773519110491559411894860996007870102573305433783771949310299259382059523495197767925806804234203046846100219615237718495110112385601457659607894756837205941642548976136971035499819340781708494341808030214047339666214032967448151048456007281338365065395719964298547213101577220057629559079900671956165888454847181988305553490988715223640144321481040394931814040176840742756781126494659818001548414636915384209162843521655939086698948198616404278794250114746504728392465999056145910011076552338086154856738568398607231705112029899256987749553715720398255243302501262911188567945231044710932417697536593521938125494208472299036993325595629898271515345403950786289211490264565641470197005930935635457909355796169651780440061837008122726305440152959361505443620173888895791123675457012936168038737980399694342428812473770811831559397478803896976880570866479486570307398773378746751294289264746552749025776180133611162962684655586511950853408516789991544698809438218001812818297122107592271269817125532487941112727642591703085407484720308374177139133360262077040018607594218296303566569200934434371730450950235999680219824800927619402758966511662238143047686148541498663720572594225623312591034531301811074156810625674770381477850912564890900880815678150725979662220738664016551410302694771756305331255473435258550076984443913998009227959320367659083984467653971821537328400755209509727187040009973820395304028504561429650613745472776623677736883142750166766396263575972117768562007532548011961015219697803574791981514157181057696187486753069053898620178279896286416656895788516067109643707736507440302639386402620511621905251825740444111573235272386760652884717159455872552686787617348283201480383055977480971197168759035033510199998514737193146497496903922896371979927562937502403123655882047568002503416217899595159886100034664964099350052766876404937406372941100605819121660998047379325231890499547804487766840090897204587296874437256766158097288659460375835769885569871866813463002321199060414290747129194024707334911065096234951771553142724394044329362583931968410894638033089119112767316394747650144124903814047336910819337805859418669612295674932316409623681002188245756291777111370896635078349966945002770152036402441493874823314205946942360956800913178188077603271904140349467710353223110734979195203579633759504816873930031356518564085080820472850750394841054315047460718787187005994336296391915253529755319629484103302251069516525096121921404314018362247439504972125769407189284935633020957885437256800896283309996259876475298369775362367649210655198081365959458610494942647811869527830675120831357932992152562433488224151051482362403742344570883938743066225348622493862314108453283473780671221998199246439250933744965016776687517385968034798165123810323825162727953161057493548192795445210794398123823790053516785103424421209791846078877853191269487813658571794147646293166452959215553444695177848717489792751723526116610357013526785454726121616527769080712742480353463208808447570683711500104227906069176962274114988689331873370773823575992229792765796163404639518589614189313836586869528438959272859977397037127842780785481532253496174008457382486243960493111560140310705382045465437139733714731469818518368274689051520146172460641628359631550271322391382038413601084662302299398173957443539286591067518106756213735632860188772648249153686009349291035199507303709588539768345375705541104756849242719007372988566290178637285783874190103774530413602192727920891431212490014760370911224836639622822853511831829484131076318757326138959960464483041006868501655527817442893330618230974924674812965529946094751356606776857986528391570199337426204621937862852217067871734083482989069431835874742527326284177668441712055250513657956733804164995437703618954483730242862191438587737789406746531379660452031336470062448937289719689015630061094807436158556624285653123063517817944908886960612076583437783699566388595055807654292026655561986564114563936649236361998378810580377108179820949754517845903850280186316267885061171194111815707799886823685008291136758692614537027931983206098684641830257553067589860329452477884802085336072383074307146237918297891861226848382616877862383774624737308228095558861716278675119620365049792973882942046016023693762999983305675564831701340012211608864887525624223963802285847040253486480049213963225804931139870900934569409299954731298523341932699100211660450026647321602178238982661066039280970516529062929123696671857259532056166260129145271286462083316053389263193193417278999036683126895366826685500458627005931814421317920365374483867515766841986179199056855093670035942902499481250073701752547171765423560809699874264537713590960166308550042515649898877415727593004104690280524104020425240770919540875731820455774067174091207132533723613691467881277707436944695238019003368326459685638581078459312032346702260696086559161913698687428920464735823948181304784585301168808703807313976013906848981422436043969643196000468979495150557304818100258705528328426959769598003932014841175663122189185502291266678096370624585053367724898724335672960054572468601949672567129786771408692853236097014760425929235397307731154476168644232247588270461732657311375580867814632895786338109863058180012334189538727002335929270894929771819958622119293562728693947164422541456476172169534860936007241235852000964474244041072765377252405779924059084726504195125722286236775359888797789462076563093975694424950459660265633135546383147653689885124734696891865007480312789962387796175024234672017780628987772175127037642717606204906955299203912067062405832215266756081793975001052277095660768685141041122028106162114559260392587495701330924457234795016051444601299768231241399971338823065698341000843589705404517484722696065286854078178711638956810939576253728564365068421622175149357206086113078705679692886688396616260048643995414597361409933892902033830741705157413705853934398687278374598556992581495528753230246661797250070616422702044142944314083613002361394165589370129239370090330522182901338856000856800471474728086957528130843765639544156933838361461117681993836742355024203688857370502074662453882154017131268034519839120967915439425461409917051958809842961742212854227681820411856885216402386424214462350518439936875793703237592792345582901865587960722201169756816789490094182964428116566951479162860474694956427829869486077878531503571362744603273419059765182754167945657624799384035232725903501942241669374260066659367342652181469755533256460489908009767581345803793526436704636884769310127066778140124531071700215994420106961430447561289481396700217977489359493892113794998378288334468958318329563548374774362369806158271761301166842438331422914847794548878139121131417873724409393432595156528618144404909072316954778026982998689654382925973153663981863494638004750327394470636944416609977676652277381003591904522209004251584006754077807480643593107668671999815673029294789240482700650738580802822714206865525615627628875143898750811889670522825619342056612884010819045859332278061324273553068394077194092611167591203199478992729926092211108168453982048086278222331004105676670222440946234404436623778658789686563946574450611994431009983322677650793848191950548384487677943577052155993867209338790761286930590976951187228387100594773395232562171225135308024631959539802238145006896897083406452121179321360598680709803866729170309790688410783247245021461017047832510705942857255269811526888865177783346613277710586955428756247813352012698522369681622534666114238078360120137352676939112896059907647219224706660527585227520019665853505006759831059419335349786212393749568870251607238637794671905483177872514231876059092686662165662768227697007605513388379336680197925769180077364351323451234022725216240670161224093364610785655995534795284092528879430044653266567427180644955689191164822693486095139585290251681605888172191160017038299086470544707943003990265843326186711117000739858344742545795491883388423118704445081468211495598044414475177145382785061223935266643411753976387914212812877315867599011517218756489750563388474700007392021961637391776636901960489751246846551818397677396342516264986847385193161524840659784175865141309357308788760423316723872329997395937703082466031128382932179470514155939210443489766158590210227534126564086833798531402623794740094823271532074053538922378296260801128800735725157467824084241822036609178056927487600021347145145617083397878685148716597283568199718662347735542455774543117180613172659504993717446989420353235974336211771069412210795452327608572370106746021178710269824543185516505732648979462686081673620042698105149840983619144614870395510218797667149059688496461179233925722607952042865861750550632306261158591686306361801656738757648007050267454730468712067075787304518388008319267859669131563607616183891128403799778838270691073084300409992322420750197414647631960859907001375989918395890362401711095789853691846624723574804469306152130386861137556923903936646107511427307799527475787308544314408559079801907320649350297595309515771882275448853803577355978345753471574134106248473859774382775274381167421149701926953382813014131184040108890254799284687013723239002474700680129513422244761720459840665446767104010453060457116983526480412329503786568347020603285494830591057013562596964624201865708910519501993063261082632436968591260131334906042283110617651970296027964113576608071216188839055554666456908247319563540559007299121641541804754641109725003701605509402770343019679934418400618075279251292395521602534272946479435141989743353619241562256077016308474342420046199620009793975609113721610239060943234017971466804502586898960255487096722706153802083555390858432149223216363001565274139709666066086856697933138658254658227626760886288231439870326695739377537430505677222626991890888460335413549617441774210431520862001301047036778720243856835293078463185082660124483556378898679960927283762495373927475041790326095946660651985215651810217415848411558055250103498392879953112013844800592062364221196372737102492387747476977131645795547446863858384282793446684188109584127661808189075825560257921274778798553215205551217227908865227597154083684114747590272619697637221853051544208856757028446873260730613850311366960868088048469953115525927918939994244593391110310328469074773479467741346302260446553223601964521328471740277804430068209440851644106843916258935282744631865073333903816438054089567011903367748456408088854953151519608788171267126074908726827281004889353992068761422240135029447886719867825972575269973519178410777504104594715213028066200387540165444736593500204591869111848401285143438088638212001944795594485968356217525921902078511483685692310508019883673668862713172648951900717896051429300739410718393149582906113883741271492973420880632196553975957895617279451347575727139166025052524457062943034775012445761946333277610763353229150228097639309438396565601649856183739147352552549688913816327166643556394405708467276806421492834131362180247006284850433300004214417036847806333900962901615419114008985702773971333749178729623020648190198006121746183468125430227347169823373275359653317340095110478424334703235946964274066289851644831422360411837609455557298442147105583502915137578488028228414434676925535168815171893782459427726229697001822329648620113103703821115012063023076568094245709299894976621115994602398128922122434866930166994303531248253079312529644489969743353833056330117217728331064765866393192375354687846057286753942249713865377026929117919876391324672610115863568172513605521902884801206634302462580173722615703705569840197015836969914307136568408055787740336309618460856171497566205042133296098674356994285975118805437585834854648271970411091357371204842877909142213838556382551296628831464516121277808796229033625792813115794962270067603544574792508773031097972864768679788733294071804891886700769035410743190024690155421620222603123653911257296845415728962239754579036820415740537217650462862693082497344692511212619846915391095440945400012187981339382879413241545909802160507877533397080437254106286210606262766819201357406213142128341729004024138844877483601382562974948258234364039066575803143185673978154116137819550392683518364223010464591583217237413502202711512474190505829027608757962160110694312861880382563325456782471071413255965494393032957611488396688845753601904554960554053735560469240207641505887781478828602664312372111333889168356439900458000821150146294133173782147545695122384602403180449178067215795476687205955700991791260913690966393233540684741541719693104432080162637619851996477623502243734757810972966975650689086139951567397762390814071815920038715743716700026342307028376777442310472285469044224676001132865897843477842189802011573212235212046077396131026848667898549024495676635090884112887442897462635416803977132004380935404205139173193454234847824967203302793500727917852747640478056941259954364215858959960622918301900287923988534854424217085335878143101651723846141590208789984715427921084916003595678171848389869357863145986912769771764226556354317732728125497352294020538251822493497161366288168853564910448809404444267700323050061768204823463438461128526256614471635392421274020047208581812442110647761355539756560423679588216450040149742809723180181737353989718616513264374698500209564052992526329641164477570063219301751438897190298608915186741713531499228998674634612904314093528011378802842636012010218081641584397395372779754042405285832849753721411009186264798081769207916319345844353961935393898420140179113275455829221041853527517827311388776272392944321677373778016820695382838324262848548188842605164032974395289464675558197095165685112563114582754715913456942769838995131955884701772986280522755369659443305833529872412709760576993746768053015675037771551521792000667086940566077154265451005398438515051260796565847281168895666012843281423386085606965734744181677103879413277769475122947108465546706362001629391827553642150110531493371351265685273562892524490747782555430127308001187624823896072414583226051604303678550764016036660544323852876473944775199852496887539103423652708588716663032042377900867458701434755299990528943607956614090617013971146076663677763770823177072421998857165610280622072333505440914898103363333457697774809046338146332033476731010196059112035812811510490772086412582711820558842316788398502176108711089774552647240425314207980180109687011051172470259910154516067371758940512340125012683869215831031497924355000797746354048409181762394454636140170606386685803456165372056570270896782696188669028284104824145190709174053908783439419314808217204923493382867300724727943136670170571586914283649879170518104951753635527269073031640753053815255053410366860659825134437101961774799699410719307634036362267558430835933361037462247761348769913354722145954664790117754742498772917149799663405340022565715270281089476651403296448209192280977069052475679775978489268726295664870007524973216644168793862916490847270769923367038522692267154948095845839649259585324355933118635389100501363327616332276323578240766402635873844464409182951208249764535692361552530540910103339894328960375928377057775752247141527007834909752201264731371785367696723868495924931856172046686192646762112124602306715013901153108657261452108457259401731068865279468048623253525540342655724114634342099656098612582603868333214575194304579926602029280239781348359366739062290845868520326386216041182926926772469440877283915228281150463097467816508463038552231838727386498448498824007145614725858126030145899963934872874400551200236165839253860891133322771683990099594716841264145352558843281161938323194261908089233476784123099031726416641377174976484637015322509002760947683799707536025916997436288928020969998087028704582704379035261728337471425643582119640558685192286426793974829091888027110379203028871182187198220413109920875933464910710266766718217173578169148023508835947344651128097570230583639077641478158708057512840187082529846943102706190164247344575563282458616547026108445835569169420426959021672372301939972767117082116798143459285115581295707094055507830354379683010558652915228291212249262564825575750208357115844430891707698364668795994389537450935788914798858049090014018511452853303048848542853136363688278625013344363505350541562124900162188320539145006358980214898535380800675274251631601999596936317463722005286683035727266025208518539677057325144724960311428812822614175903495410838088165806753682366771918209649217838889404158769518238951138018711062673912346521607387203392180865123961554178614965976882556998393737528958060694309546919206657297031165944069394543378946560453227742763477006895428035630724398132664455611342891313839378415510527034570414774149511275553744540213202382295076269416097827613741390590834654741901719392332023879378942414618551527098513862334758051107952307764876826998195296038894126910029022523009672223953478999971306804002669330020590757934574838979963563270465633523423155459814496513961755930282825212236075389131388753245555561278785197979387439985926503940515701321525369026906138392512544619942381532887713233063653443086766913012341112319057464059768710612132581731195844214276565434789340838004463978786422572314898026605753948009164881435348084433517417567687123328469578851199154343153970101824977840875495586576907775448779106786969173202523147875066753051076506143773867563693324840047463022302128822511505061268964022170881194165147538387729461959515238968008136980410556499851030811907552012755500501004132595555065602870829829495003957827067498672703095305578152423404984837155192462119407210247333485962015019235951347831450215330005957340140591364149660423856608002974037111902465161249900039591854401301510773238364744695668042392861182181557252256582851742127457594740931757251011134842200921871616336137199075987899347757574826598806806061435533565700542714754290665260223045639311077619229289815188638289745364195350010310186194531120059258538369821604921754020743471162268157226842327137482013038042097013875174276146431856540663591666596590700216018434457483588343314351112857224698149225125725631133968256631316264106892033467416037310368243226371048909544506367896774589743549327168122203930157845224327221223049557006961628288926104800231680005206633910883942373788243952596749401421115914386559649499726273797606516311776618199546774255689954597884122667138565838179349959049975112723866691390836687076029345732116308421169340802459189218177341559393264988132294817816123848606082595773003277257539332233927433910692280263442006611318278205982191305135278915796433034685153512044978791299681539782251358324672166300269349427877421246445917232482877468452318349963905143933558840987410876941128462409186582727234985377860892288066950438194070911663419769452376311091814603202815520718489139395801603340306876304345095432380675661465161942813374453999282132548413445874444678558738848945466933034160180894460512634116158377434604176797530438264588657698085249954228265983393532361261862544504601047119571902988147684065628833290352537445133717306278310025652964291200186404637686936381786907826785622671689668891000556272670516166107768382643712773980629293728506568511794837727957713487476447470537735357847830278161856752968777402699423687612850293019330450032595660615877116505512428594065679205836375434080110800936120827969173982614437814194603626944789031188914955810579497695030409883989035439245252406336606135450767576762928422971169608315006428616343141114851404912462233607163786180621748899776337976231696838986214757231240590224793946267204880680704907706401473266784460041561324678347973035418134929311535100457574265109627520751404201766672945675408144581410694530837204825846847902023865696814007877225828588497491650126541569946066691064714841824378208188161253677959667496051059091266687710694860605718838742958843709617161856596199491079056211652228164805573979728198956009132596867833778945899241626232594140348230990037581700188500115293294359263657302751612149475752037917947872429066202696574255845188796607377520325978456861587707371990834533937847046591387744619521807252199120268880379401760918104344124656465670024000301570224864038966460244035015852315886641851143955350759288715839628023039942351090818974315574131818312569968068347067519532797094749132243151469328682461930837908225479662345417691229898354650047688796897364655060429774832405716960931533255922654458245018732758877288146944197797527613298746122829127031991591717448014092022593499154625322128350677265159108559308607713795722606025847170477525371111083394736173635600267327741773073542442824290557564543845634392471984004925252051198729890049195222011461340957883411961137873337156726901831319392339679150229270135381525197592618328756037902294290285752646638098956561703125257931281722116959572837741348098124636377259872681610058733607282037631789601463417487272946711167446532351415298288124251685789215813646164740140607209426310477410330842940511573141720590939426719861916022776964803852938321822473172604681973693349234947570593610702405324810649688479435716265339306503620845195259622194218365941930166297049076882648458410561586335856010349561427360222032716396391860159720481308298772015997844002031590899285363619026375568033430714374258507340440241992928564919786185821987836484642412980025789624812310840846246337145307340062851428307135757064820867291509199060654704424231405642557792734980764676098257820892380139476058250057184257155644440183596243348506680170394717968775088544252031843574948932106604135028037258266733094441463932953169128132380920958465567680507207208222448048693074993591459906815755939710894732070000591200322724165705815302359491335455821700397703849943275077431662524898010734574746452498665935256419525239833396158641352233839080170157142793430680243906191284778681330851879340350929232257058543692717123966486486144741669956001708568258599889289231605980885421321865694507085427092981506621472285009777620089929781357082738028872027999011696113770599138028678720674308974728706297234228551958567867929844870807126293939807269105242517789871160585128519260559479311194166466649856685277490083605920214724075947789241868556855313116881606777580472518931008186662381627119298271165467775004988145872964822869843584641235234815845300213172993323046347388133940220430532745750674556729637508249443479724897529981087993098608846396840967196226197148559889180493990726994039474374092643918026016351447508687240339862054726541937096050759966506412710106954385292153777543847730183302051480505482910171234249029845050040748184149083860167094882997518561248961503209371102115826889622437894026692060111864868463613400028052366940726551733030394148999817555515452876447132359861567586045840683593918785376978316101972019390173758418082624672024634958417271947668739824718309166775834955667145087607174059538326745977730668007578662799235621881936040412376766024807428222260686887356081072662989016974451604169021558206968475171801167395783021137489774904672626402480999772857838273329643086876970497623375210465330318488980994522276795590576769230356550390769578658420408631960444949946216477827427060827924815675795060232646847605596140203318637139243325899345717993870902890628925863620833909447668480988355394601925240434076564050428545957100134025870043427525206458837731851616283535241803687572261933592679947948060866727192555580179304918482529692977843303863195620865076864594189090209061595041071953322723451996144704765912370711273831309983330345918739287545360292098020234123594063702824901675376733259891425455361813722709188861478095427141235258470364308696321876945283129159862076133723653808311495149376756886839518220983742898516924041834641533530386761648566194490577747090311066234313926380869007390695214038266628258098437957986861427323039495707006801138178602563450805141422019937603895339016859479685836632628976009674828730978412192673559715816392884182643175226597542618505916632427909535041753029780946077575615102084746039618126924233559926701366881065219965779009248188875232549459585068198323033208429985266195342929060312330582482505400014820859148588587020039650627590604950208810573887868177758752937152125508174261441398573440987165638700220472746383159947954931308226318308056766204564191083337677335891550327484859981249233986890366063839421323196756861750986813534620164058017564429297147263492793915992359865465641673572418933495063436771512470262631492871536841879601569054869787168497274464933718472083762315487463673815990278845467844948735382501893907591879277674398643888341589477021998815024068144229211975174928322273409538809280005651936079209217505608482443205421702694978298322873335975190630799638511185573737654714818099562138305646546737302259065817582220334706067287407990676780304303820978366076042941620730248414069785143786782856536098717628956749354176865093064383395821289898758971016483073005166011053547816139599255561636279371094697084284601886902380092512059492981603911744547802162929314843014083593085769870913177482515284362342972539398044285216919113356428835916579728060938850568331360724631973542160763817001694449053993566305464100797259597525736351609171000143966323830127863511935442812071802561122964556341573420248700290399771384869085805476268923028486747462033660605627703545307881251945929539572922714124574571446083512475832271992338743537074762644152265286201826431906135492947629585476076385151345066486037773187375556119915205299522168108874651404405212921154009489711657212106163542900522453587727188928109278856665497087834987420694922169616171630413951959862208939509547796467159635034965507947384266382976690889872729384263253525521775879947220500633887987822953335207090627114712156448504227038464470072010202937631852509768933318212120915292888558814602177204957624699317654805804682814480698032890741581690588524694395802809778073117029857239654186324019308677980637301962858885983247894615436812323400994449442651330793176886650718461400460028937809950469100313159228101276700718607775773351045834260379131315470033429491857454273059492317225606526708344334967132306963588270257948095614403085849686124185974013849838603679671352979943455062649560119565022044678882119456384450089770261871733946683118683613214946294719125861498619596648123579360635287935374336007122306446598740612689263543604174194970648913552533631364213987094227226200492704277976526709511028689462719665258306828054159662982042283580317590191704846609633173014341092019719417820255703129045109895071554419597407854985298780447761870960529140278859200691788186656904166623882252066228344899773780904574407495189477868465294819430878969678439277655438759318144406426693742381272874925974588657335666560369048122152535725649010308961653360087906150872127070813001365296568788728924625844773912697976171168786148972341640924948755161502604588394096189757549879473821987688469099186787670817317999550868637069030245990140362590392973089720913431031295293198819523412031795690072079861143954157959311488201918348554975289335706327862607724126485630523443488245582154640152558909816978212329533088176706774580442492455480176967347810758876219496653199159987007499645003906286398574342097056064889248805029525317862966170147749902918755286090474152868740687314527217044920226978208279318869777263320197957568669347221633886914607249633911135017735709996731042910720834674178884995096697113379094762908665811941406715964334786913204191775437072490584951580374393243075198633904632263185353496963443607287342521740768945890069648799797920096274032366727966519622310151288348797819247709286825427790638823411777382558245363372642494850103664642343992382325022437981251899702379220095088981340012635718761789280565640045179587840277650612904777290547520423790569791317366848823568184141416471130827745280614356374238269600397356546378014042769790070342124306587092209359241432707916687533822699218808583430024234504693336448183662508594851711993892126844480608457220685547684913212257574601036907894328027930693110492824896850807781086350595247366188343185975094017988856487319802870381292125961007589396046809067998864671108293755618718404047210652597465687796069537703690331654218286835701102294787888461402791982355841795948456093895546653381972210939863149890928055963765762984318227504243265933666197631040956338679272339191260109568492237391713503366661540568050454023626608871389044095878353520868654633432360658721169258345282435131352727416094551153802815993895995284956383481254036706597669816231490406079118555755224711765969622332469954455495531777886356330842235951547041945764132685072509564818839974785048839788893725856868417333036782391675767094213421872107208587741427111568982407310783575285321695614378627766190866319219703290290820222672091084782924683848999595445215766846407384701882721266112046034598450642229836213652415878122896984764247125202092369449372907575114803637246215084356366164002067652821955361871688737944518627802534065312587400348339388134504798551671114439868306436311769236383611198593768698267775330521489209321933621466542620199170860245194248893254757623009932510077262704348817853428348831190143986050380393883621860693091794734455409421190298137195638870150191892978575824048814746677289600095621306937103467785426556535256886734536979386621320674695546498883450359166277572564475254196280544479629341655892448713074051876809655665392383923594935896023812419135887784965230748961603052338393941182773163234145559846591218179262542658855109122388975553037234342494776105320287602148991442328991902450843154790007212899793117169521262893146083325090938944438160793912229918315755225683715546808274849137234772391001007616539956650197754343656145760523168352966725706955401912658861148343748536162343050587695096967467518559958388503130012682875009285150694943076993749990829783364878770783389105409648667750145579435421361502258873808435203483431767784501569203144121384763140843110122781874412990632150304266228317858558646283356491964503319526735525503310740192502748461851404820134152625434412417716125609375839466872577153744222062892768478229626541071036314953877878216734394194391097201755517002334000822073915269750807713638240329650405160970142083111918351668333499412111702290779323151574713250868191010578236396781766429892362366511971235645835173034365758262306244969544576150013087090704264085055067471955143103758006613827680476393869087320891276652100739485530530430543131810646062928429768008355172874273837862660512159288275526060301387605961177687417003534936559631156806822365593723611666914441690953286814347014878114939089545901894003830188619523892820823990316292579215961620921982712627094314094864627389657891280342346650075781683900467587954955241463756075070044783268692147791839959213583672313917641648649661743855437147421729881607554653984918654084516871129465588029416571303187767330479724106834596652979890574331378424037723388551487145202142564547566171230338456456127941406787536331135752583805969132879242758366388539443217722215125134418263707111437894670525667684394668714881886798939346171085145675292474693052648019765699425988878245027249896467371575916972237101485283912813471266892054398272348905742627942474171580668779502204769892228210979493337455905075560453525460641281631585000248965038935898175793385356409446791247004238183866704325620829982935958638624470470012827220858185802991387600661033005345468067614468637227401987281287135604201515241155087122289839140488180617353338010045677497482031841864524932649243546185558268596570654630199760042156715922323602631654812372203559717538536508503986622027144961260681312524254794703668386084108339157777875394111790847669400670950965735025934322346537777721567415973856622341022664468828815987778144460894420695554709251795219620295040013497173185002451884348670960272908737813115108182159465881203469613846083663825448859540322181257942407396928690274285268833917896757200598157593292539006270839183235616471118568879642197464114967621468998356972750211874744489875564933289968224587463889802813836534975148911966947554314064323658851050018977651478183931748501263148138204452711886344599886437841411727536532971633264133338636645143066067970863365251036210510671325051564228236618537321818095321880602364780583441032394946694467383171691448547743941353709136675722935550413395772168256796322701046346317915186983913344576603595708149575900686383837710267987426807292654761347746217839049828990337493132418354046580399640290164370399605377328803630851274112237309086530062820881778907339935556693326031112607253145348669762929960676327242327928456347186877332919390076501444420074413120656588202576645400043643058248956958200624549209803839972836333326382879505559920418220502514762824957613286061502452082532535521307565129228987712436702241434375905715687383918866337499122843135958310174581965008676449250098858209547261166611292574840260665819149052979742433153953245780103374049827896002592681349174418586266336317721376469081336278060515449570336712266072558282294294275075664096941360425831904847173621743559397364017007075323111881454291587968716622039843311500733421621802107676189049949581705364460212529143173041422991006326072517383373864247937617911199322131709960124808599670718964287576633688806805714204385673553535211885728531341135304832659540704868825203384024102571299843314972820900483431047659037268440511761961068442894187096620063801408813587474868556108848963011719562547856350265981730462803677422207829380069802174725604363543517442074031343388592754160782865213348238390803896955941123656786476976529629913992662857176590965254874699338690315361107050567623700013429987434294737181807983547672986820821675564288083307161880553619296330627119865812644710891297154345178546590493700259846798979771768566645398958542356112121222762205233097007512324176818410404864642817678115207555614528123628274063194843008549907841647314715956744127407552956533517139545663232948227287478528785852953029334918412838852101236455894592469406297285389187301982653551485128693137395152285684872652692059478767535841519103448744080394741116202856302723066993976841152263677369997758838774355657938238337312339418105400208415446908055703889204020425950145935666017597862401413821924517646026700823739387310980137358055221494077711714059418767742731637839781560067930256397464004894166168360265870663740765056663691937876384556357865189495593805586109989852835994606030220875446941294900350781732883788777745189414082602187710823412725782997110708928659669479852536417623692493035335981510120162210179860843775696113493462819786128686962381217135293155556055012427427860163732196227803434779091711679152591168249229753431327303767797759780660417888724642930308604145714802316117596128418661166805127807388042678159842439930832570949208829217911203603254135435152416476217686272684296172054328263398187638865751627084223241862634786511004223364230309064817601705399384501977407231028188620504269161494120247655779788385880273865726831172521831831538945486299185518847542639098645478088794150994907310681394274561042645136350832930712452228980069662395234774158761633129484579482077112554555501921343583719334212043104750000574071714283565851280951973281516894558585000373371517291842370870132524785625283908655230279840468202098999115721021510034020954420791692054930691452289249602764139974461561176916396477219642679195378941085005529159576572077321004138686827681520729655785829824237941619039850238463631025978814162958557319303322967902999657801684626936184838166797487087213915725526190584378319006307237866952651241939289289569252829205329466463518811267360621191469644972153207130932801356645193501078912208324145697127386031710144541275657052758943626872795589429037034928300647879505299597478955197959847424929116665787746598799041740895227494396060118499855612874191631184128184551862525538939771325750482122126636845091423673262223708154789684985631486309484142407688767828901271782148066665949710139891897134563712441553167024805696224676699806706073313641271765265553833172049988709650814036500125350233309320296312991248149994602773184808594811052588680218063709435041725627825310393857656963640878415221544296429206551975816178877643076064406686844263581001939093128106641456594146142496676285091710951458357710554539745909599943849818922763074810706461865387844523972634956477167940949329527954256528490293310002294942861453327062333997193872215805630953077890514581216013019485745944051927935078899406473040533167876806928061836205150487691642424429917244559104265611426975601279581482892399174926217789454495545453280622727252468988443666463117875758351782166303488482847002471061005688609847626795853932127282664705984736077881171425203909952751597172089991468478358255212588195121137416708119376448392023707464349353938935044830212222029617275753327803551296459692529634678232463127871097967418249169392874058413557948678665379966249002684176524723589771075993901920088242167756617131020627339934032808498798731065164000367891726871436411709011495991795003667576304187388678998555196288627554862256195947072727495443558511076184449615373289880309383388374884698758622188790824360166363277697428639501699542297684338066434691957875116867145003435253340644478985889737619166520184455390223005925132484152700032426525873320850009150833439015120403042179798014074984833250651676290778254173218764514812311299095880564219952466489217702853745639733964031477521915615469640776821451151407442708375313169023749317584354657880205344154437630108436883879846905594066793349462520390753489830212670811752925118424138295711729605295758783623766742478674640819041907767604898548871862524348439467273956526279737710973744945113916166198976140698323944794292504679380480851716050512141284734690797067721228661250494031563533127048574530965745931042100672580393657943111801927947650572668883433946240339959547329425885447867541225817290289644152542608929607176866786186021689745574427604488116848424526334249222063292475142017499422815749056939090940820587603428436804923056436829746848670647192049341120752761564219478049480432740999128262704746413407593910115969861044954773198169540898440411586790629637510910751332069552789859696106480439232784522337706237985958162492291604376945202635775337654854192517661122859501080252767890384449759513566271018963942751079227742474325105971408460964598099036515177298275729441945214106389041512999885072310297624320945701869291157960907534185562886291635959453973736765462527827777170873208267272875445220220964361291912022098357465444294198356101797458529762631755197398380732591369011177975748083059380713855215270362136105528879500040979603380013786783164368752678283459660019000607872803972515691935630238263165150749708563396098237400707147531186692055295168441617538790269378315782760972052929668188540789690042812814297162072984903169684849268018868268606596940790226990828648378703497613751264302490915970653562890231144920899284379196007930845611587706640310510121788920221645284960007382995447163705259792241517514404664922524293012263028551779589345595760279347799293147417523463411221345053553966814156034504896538918360883518137810384913466175496295055751784906210913451491471310891342665203949788721244045643979606456913973819236355929883080212331377609203313703615160908529376487020178876115155051927705766730006626582360867743146982512048121975919794354912674597912655581446753205221162324989011527244667177981717885851820212844066077418479642134396102055705917845965445964610959289490999349734876499612368405538377795322612237155323773769242017666194001614027812671679651338079790775816013123762566054350732246748966057666339564381720800078308481086109492247448240594010901318300845622676640384474812946973036975630160836842574371291650603514399046601736469488643991586656958180352958007156278073879001379365805682090082890283587618889322098795377239685093547716561514416623615368454035233963245524887760358215866987604156145780374555547447220643347908280076786126626025284037184046952441471109995593847967600130712687201160551228248676387853872767216942130882630390809586136461568322736780895669967869058668950369485341320967362339335753103321603990833036942678712017286370093231101066720490466204101464868064459709328410861454464423927174027291646011472780938972080037622996909251374118649118229297601191530837294520436937200875881126128502652812402155078569401785458172236680890390494782223173071967101764986434895303485933907092324585310795223414271137079091036378399358948314704063350729431909034518272136976081342765137679035330278561853982875263581952348447685857276909987426602532275401275101778992206884476280467725234872410194536563328594440772644537872909275975218591816141799953901393526029301406965017230550053336560633386552443768103712400896835423798664832249659140436778823458218505114794415883533253906684535083944145458022423688613458485389945076532021284246423916426785818093130852535075487631152480247295762554471636678337678778038198801304910672537085678239823967156657778697654303828646989248671927812248931888941187501238412494622497905630807264071604200032088163570920104221923334104406572715501008780924016774481773582315177618412788637530938294913709182146630884522278193726792812474363038146111627744164193450242864957416719674072143352610645041511835581510333932700221736024433458832387189648434269252502628051698659982043753032271708301926350537977608171892269256339137288420184723225761181630887337114499828631069933185485791759480098704630432900937415819961204926127567025250837635961808183990425706566452686633149622987827341982368252199490164535267873748883389095634703052352048919441428549607023260514240934796240417913523017777988004042315463968244985140658477969051082710984720001109255807761108113340492631689601234314810477869955217637655479817615482104297306820512033681293923804550175124604528377497590574943031838465591923256955294709249458223719978956883753794439684037450039650812664704682567730250923123804996034427052116852543158288146963229603854584478007070734720498602246939537150036492501911219060750854153178061453230319163126535200615880113451887092197410872995794615640337115029447342741955400243428732552438410543380435202148282226947148332832105387258182674735601813619482931122998781106299342984881145671326628581178612799501776588059839508933684447264914417175251848973623364673886702170135554133446105875058403949319129048070764434307154443900396615464848631638538811040147850563791948009250721125348901619938144447926867658227778947887946466913188862031413682184375793540080493067292307432531489285672350161301127603432996666438266578147559369523548258665131273012203998243258474926939500836367052150204025082505249407457414221929181710854571697592316330071144146475402161139005515665029828844397663148041884559780434664179472584581932263796728712054805730783538025390646685696081483449225371076363417594617269606995975820297812785351808693556063865936324382629824940879366797030036220824384656248668701305747570510873735446353000783105342306569104133643887789202419885738277205040654011782017803363091398729586870737274559885240515682821896395795434026262073151308062725096848889673635534454313238859888645536279907615707921705765944147991969133976414838986666029161165038850704584171898992800784169918556003016399974001917255759099486421064129318609916571929697165468303950402908806537148840483584858284750666704407701123007080453176317581932579966277021263707939034065391554003943087307023630398338572018140975984194493493365148725407823956035947482563478002892050169501557580229199162219511787603849302300732814643628144675985443219114077637998175828955043886397742462187630406261089642199512376370454582143480296863893561167292065004462350932880534642621068112917749439571439699844157981427340496726933758918777461797745215591837855194410027655888145351487043169182590414057701938692418846067088954490469898012642955265625339834076447382277260053407515119999185327314760011219225398266387035502624077129046036679649000968826038292620283336607298694281459849096881303222244464876252093448150027997928999693729872568430178314572844271815573166288980588878691048085639128099975490169130344511102729013867159464094211094017052274615749710053534385157001459876296274224920558054057934066288174709572512747695130539375937907951912947082536917784860395204677902878044097923488917774183968667802491441062011487810036579199792726671966817118407799940470425767418087008880928214516248897605387146947215167200848909988215611231828616540602737511033061549919481989287486437224332607340475498214131212604273304844044496252053988789241179490093778496179260318343413137056929605967470631988160479869750630395748311857532628237997025089956368040998639890838931081395617739461737507703684245398542919275093178695836050154802189115034795328736287911578635127294604725368573731674598300700654332330870988700219914785375015055116093415387194898841856759923616511486167135748020327200345802121596321858622885612450890960253891486778440080957748381663838197954691239435499559819230718876666102532914636978796202876575052620634340807759074028585341014062761892577603731934335145252624884751745668931810113677251328877967558249070476680049450917865283150326174091169156311956342912982755677386072246841382527685363412974483343862262640985020877720318232313724902592766688560495428856110060369904819536568572226659322469229457505105225803331043391224323222660091155313709765624682857668977078695960589740048523055479617452580389891704021389957858972446051176170679852993020243700326474990471670115719813055698554955129405700951889901740854500200301246860249030155982903780919657449508886780594508368075933557005934334972793629031957886892367546239383770953429394623740596868633911660145300600903602214626944528176861184160926707960769223523127435341370634040946216520355246355694863007764658916326297975884657365675485059720658707415014163281358146883005658170178268700553037836431553909907769519983796128656578969710027874340230786109626446966274676958640380451737023153216126806469724934377203654957999097524461643022672762087021845205492735012102709870092548715067731305972029020921647087872721739398548603285051467390919298263193829979687600405961700723231427971493903878900600573704778051398657209959212690785288088504034505601084096070345362506142301865162619212845721784754276600431998816916634157190059727948958747656246141567376073310949226791810575795848932824852017841349220236964405627338982561238636215906805760689871394637770526480266020282662558902231048137472804317856168983228601369219470501536118112816238548279627595441429162417169781510378865880408075377751178988452365920768907035532337072905912136335885513413975512195158041628224008929216079154750991279231145448138709240607167950800510152140050766214050926116433939699431686379190362515712856493025310920902170793376551274194753862683266248265083906599328287076437026663728444418975626282537284906904116291789335894985528520506579118527822115286143221618435398016129121714474022680028200479207725032367417011690159063871395869428806751210819216971183363621100306654057883497212974584103085020892602672353174039355365974782926715616782565728775580647373241122162259202497160459988692357316412459517889680241876908871853970659671614817467352416560902196393091277086090775623803396582429649234196709744270990755292539262958759319195959042196518822486338137318870873829750201767920643823514393628891987694580801241787032308301382739268819034647047019527730143361840958856702134984744501131397232221886054643466374819478231186609749777165496920268153514803845068030330265772942607047046358716437934122641011441693839152208838816978354865085303852227481290470457206327006938605860514405645580500225796415601324441284057409712205462962256425793460230758615803910095106495439009854144312662495840936900408766847707453922529574266153696553994928975045495622896589891073477666296736200141964242321297503509217124818878254065600703857027955189303274540178403214766509816267345335885008177953445303339114499884903160323135703252269279617632320183610415183812373684522880640920629586312694899224148556120910048180889895768887996284771120739558382101293622143867675276162504074747279580153695779610464898100335000488557189524329329894911042962555060561708736649860688937707078966720561423758587664433127368470544417073796849599295451067393816450123619921464259635650760280585283208644728905779378855145444313562397806898021967071836141864819526458918017513383610781880841479996098726926965053933260492611629553774826336959303287246512881930400050998258102877415354835613333697560570855392733631859510217234714377687059754068028061735140705389425800367958012220514971572159167540473688897730645443311745654003796604083480816719653537603986299388349624570769907911092363513637486375660031384693580990121398043931971119159615227282435261090196257924941831171980262134876267235136890604858989169427650357210505013853924784291237160981100211130236860147056709259587745205519764806199288617511327135102741077880508665523879071088684444815693401201828865815082427702515241280647608219030969216832431375379239746427215307632096787981041450973628293555931181241416142568492186053110501467761256097840570725847910303450679289692571399887977474093785453386552275650491150180062745657580890962434427731683929684992336793523567154302346550718951417352687815863049859558980002463331105554214254386375979638598965484697365342371331884476183088561115542607224345184304359156864628832719529608313685737195343365635188293553759674348607907205071010326084778863049542828873923101082696228923910738796211964458668008432177024033295074664660693409448351499208584906428367699534699168439120410103643236364942366699093518047674293969078720980447614114727876454449088635003946427192719194482023601060312352055358056277343673176208811169556588659864943095416617248705899809221817780013823336591070403999196123256250651303463791794238819071482009797447875912860732812616807117166182883256672429049727827869450851227175340282587204037928379143255939864801256146798707334990939828704903070305948697479645764412850038125630762939437894149882819798127435899738244506184495103828343303783618402804030649262652840083952318491499331816881248446613217905441091762192993947734578798340456683203766281053280715540304386674320364309956382780351701957415858249796914299645053012775201523760170498755787062611141143847560610228375306644209273462197168686004411772777582293077144307080747975378930038400391599928903070190794594608686962213437304763975517571709996396923224100115350235708167210886971309865170918838234981468171249312732718716586988003493749968650985366783500811326482267486834387494417395469003412339532905253641166762547167009057223671417057310966768345560527823808637414416931377341409960163280705014824595194646800145280637908191134994748970307510116595531588404448283883707318916319270254794567796283978865457874048044391397041014477432660059699102314571650475001832572228433815384592879998550576498237178014762034348776468317259182431857895895030036900383649982149197908800125969002121625233446363707117542454549017754079034876649971920886617742715872292663201562243149440351101017188301748405805241631939554514672747856214288318596454076746948538844984943846109167200224730158520851549149058271472442562558625471024025442657579841931249050652956595730497241470578274380026654530684094625750099313883185625556322314144461610959706099926263580315571010614465406559823702947371799737494120373802624153432507618299819884627795894966385985867215898034500314310012351333361919753965732933998239850553144031243336655186975541386185298557927534037502902167755062662224315149838553652884300051597544016299909072778168560954814164618723245002973274110575382340670893873411529114225039982451138198352190686550207834623133114620550807783595590803310734371263231633309974475714127117783307154947200008150482999669389476778457492783062054782084257407937260378441030516167789564295504365840584278365870108509809141363522798639856937877450306878203112368921727234199393904963047758552737468756872679603079059182313870709368951650685980967111594757330301769305661866978490914310535580230341847493636899472789752386627528356323214131447295638743969514435113585266977219577827818572688866088823720606122763773416654934929265778367798007804010684353817232850265584886415254903241979178701390770325822352586734738692591715754410261130082527685955957580665392939103148947308578216378700363768342801739933414399610920210974776280767907837235970213274759829426810270767554482243547088607833250749660513294092237983980943180905819730106126386753778673470472468478944676397550781309127388830997845846912921196173606600308637300046519069864926952929088053842322124127392882873165581742006637797232274444264929901172527783897135542907523931277234290014573578671842418317450846473391955932209529733993096109079713720805434356653893139041375868900996984225376783503204722397231811304392582099932474750741848300966432722447118803821978591830158241789416857817510652264538449778977297060642247990503915552903833927555320109594712027625813237851852529501104726325768134393050919865486723084632614175080712375468886071795286586446781919077526682020635818341764684708413175660236934155310223426954595087438712673557121030219541472178931231287852610530371169693549890308435073180228206210986621851991246484134673529949618531731801049462082859705548974693754689689850359287680277255947083278868168807428081512735217560198140018171908137520315953470384389654230888262154577180020763058385079091047015711343968017202435554926114602344755743073873357206044331810410560032967638752895514680725992830524379748951773600048757274470412989875561693236406757558228322734786070784668877170851054425061177160347738793179953182697831311804634699327606003626448433719974575555662802139853136727715022256995590573260289159417989975279216479345535885602980088617358341533857001111396430304235112097138070746855094326163477983539722129835887956005276880859221013162451789378393513860065723573598553015315908084787860388080701271636079141598068737254198177960966657043703437343420059775329459973760993029604579091454235727196318332750918785019094102617593943703027902241927467161156408161961060257277202825775591346487824756151682050594463851127754452377359224816773316981428447218947437351405493301249923225078674860613816903719693408600308009213305097995232688630107531054469218677493821265443085043890187555536618934328252562495034507252833038401339192610341420332426060975144069760626418973185655185730483150408906989601743287142882044130094191606859665885247108629257607616547199035473987924630713236830842565517223030822840479115123825530335998229140017181110490695999968816246843595764901893186106215493798146436954223503790553972353655330603771218105277613517083099388488077696746043713250220914033580913799898145902801013777048568776224308925978024611402883452524322418092661728222179690428411356091683957373418816184132848251990367226103878146613862550282265558121998090145878029548563668764040515181383132579167587886438885883671460846600958296118907089366286090804423778711297704708963548519340134175038634607731574960746935123942141355649746596728855647230676287706633873134967456304533917314482540305335640640065036069626997434325468367884087320319080503369365743561572237792060029824301115315092221941509488704640141024549813799989409409154598131431135523412602029621193602602550770483755620505244717770453202681629426613571589984037459996541278756178660558706771010003058525213149309061889080096021016744289833788176592111490288758756024324056044887479009634707023154531106991493836886426530994084100367486550576803903999606607510090674778981039093521710432467885332133222632039894069082984610071667487328629199262383953395277895372787293302271118198352740350959268989765713975756561456518747942050134607084598345697205413549646558452318248641701153714625363963936912542410206223038548013689347255580379568440416813414090115777817486935353216273286744397879620990316453522246991441158946815225577608518106916026429167633187779133218021600144682690310264963530681701441123664754595645883257602361059365088917056738922489710303372799247915186234307479110781146071982419947973320633174931844066373988756787367656300059235235935089038290229983148916785094874711875317340765960233047217637926638230713046743743342652824558670058716404558281093523015378308437754892410644802313266536791996740054943490986886834945588463718545957711767954209287595802216063669577579547819089724423161988952432370566357597140755280167282186331938869125904082727563039736686774073016586924775588868388774060584687827395274814243014847669862736753157118813482833279663130137457545760144304746205096177044134324226629984061752726067730930147847474083208781476069515836719744283995880451457928239230050289997664303692645025735049338301014316317870120790367196464611602167105749549436415829706257370115491668489436675624388445613986558738678562654449523246039999757229140664623821578733660175037025661430685876478965819560959611946131871649485365803197838431420590257934902523474509679677363615718291828350384309553794963443049634289843783986280131080759008630293607863156628340324314090166400668971919034280669145652929886022845625511410933200070981416529923939069265479676555579870312033645124545009582614220849344311564201257532843306721381037225868846434639491024344328389300257725184643601259927920416259142867605563765766374495049404946593229482010723530763122924310628844049821649617432297038891375832093832184190380768032202466481922265961261065579453874548353774949132629588690146638436078238153287109125762554177620062956889601824993886431279788389064444893672309575781164269089538197153690767940531428301387897914777476115129703461666894229459742200301655893962682036431154010679066630757160091400675635058038666821106224099445042333096715545544361982758119202976761476885061081774989699194036082809959912189065086234351532037020358008791024754881655043317412290046666429389806167997431901612715241003870873842453199991391976364645321605328752150961706705725929202730681143059313390631741527900226141918458748974502211023359153477807014015999432325102506591816118245314873801382306220984716900869705917219306563178717251062857506270374142238027194649186170313665435399192013656129120038257931199644468828995432724703057930193518575177321235585523933859101052321657109678203070736620776898564827647541181668677246871712829978649147698147188712099396317288749017751845656882258262096429881007938607102951769372999076562060859097267231116856222831086700106665161536247778981559101561570524443588244052725380778714274742278937467918510679474923356219270447397541077292806557609006386286114202241145732631423241151422397994967990451488787715273700460207276142515498190317491825105568409516283297292263935822707170341375792420163758464820192055350992786665392313238913198963745978789933206475732536242770915351737359386730480878497902819091834935324505939539404468346784941917134362811699405165386324045652135765963215673394337468079224761808618191380055572520900636135670229428967477342394340933148523108499080189892212663384828784003288475899130687506072842439523685231811926317744554364755841079525309084576653518607611035951772209336332017182636743792384170114381068675393334672860637142015219392758221821384130719244661429660317577895335522479547383063993862982227639474952724065492573699885164806326090714339831527506192298720716975408880708440457053898201944944165954248520820826436058621250758247232137743410121176686628811749753450703395664499660536383520060340923520041712001659636228123389443329822751791154343508108806825742222307532152416447720034120708733553552924136113519259865218540481060131689332328609903106099703419247290990625625292380724431398393333716888389531542414268432563397199198303983754274579827201638841753597368567036926169989738676365865921268741485746467524284900003029437751524343369673261634562817730931242984133752816551564141115424690562173225550860733594012767711545635967085882000840200772539285636847332203197085679489774249244606305676898993713214786862964959651363396081529144697058179165742891538089528569567857682215485003616442939849125217119064853065419161353772360265979768605596753243198023070550915278565860933746773575628596843106574392721225828280738361325649527089433676195893092927250731150362770363702959823663956672310435128004968642393153415881743109168790001985759773346620145050886566334958819738887340597245109205355762442233291933981667105177913806614955697641664698713073890218096159343683897363649090898524586520231879175962872388491110398224895967844305557358878009699507975008804656442157707492467963208694476391058829769165386676465210606056140089066428727850161432489749820870272344189933029263379031009527101468882104725658548537739284858138664404484034152314368773814140919533463289194863607826143025764717697659314533035184936270620739507173615921643944926542827686438122965802392088517081483197904547832926977070183509221659435681359917150160011392379527191441214021945008600661193356232668504186844434017099217226129084420568943196654646700862156384701447487191251686175343710779358497043590141204461073756057556758857962676582057865364627140881055391901146480951930998187914841428420627497473205567064557222330535889487000556693290343765976340779808129399885596243308800934252435687084227251718626891102859410920246033358546639566750270848594095108084347632202547359796665006142623494608540761636320694089354062390365798796192174982901938550318502567086969816037311423309958618116355218275594128841793378871040843394655218231029266785807383123246435456361284631055590688874936963946744366177389273840762868485168327676843290169132173501446999858085621791290506152690180323881975628260529585224858693017333941138487771008240325502853715144826121156596906831616074518124054700034949963094562748001552820571168516636466648858508530742312861380745035186438961692294715587724787859587400407261815452531312590910689900037954871189130647441153379301939465951615358471472410954804841401168480896105935047469366587749268823910773854888240879992109330944239379902273956495019143108939109678884106411448110174244324543918439312326206264062883419886820739727635697683776243606602320321600179782641290656460921225460676616835054875602145483390841535977598259521152044344813524040318518933784729460193749541841997671997240040455211147530997062025758646302162898214438501308301642850787108572943619885750632740021819303926459507098758756476677526400727968114876850131023257177190116320273961889330083409300536028222919101011952710665819710206424046362844653681665275796845010298106932135757580386749925433546678988549674732332513989899993603226382220297728594372011441627988471710209471703593154474534494154505016787953669366166568314720836603766680461929411544555255398677408460381558361202896735045275760834412986119626940244051072440078696420770994231397337110760787830480287297881782223781384879077621623289192451316979743810213132519252668941268970110452667594473098184880109728054782381954118468378114249283325744522508371088192538085323023820972962013714167132476892289089110268054084140224592140003206550463093119412217483633221311172671097156234021385977746929412997590827216498689067075507253526935454742884399754257139347839810313140936597386500159549047725909775286542422086816597706680669387487769004469317438744678948361978963166826678222426173132630952560880903982657664383097783835231399140486519530805630502710012536308811740444133672136143514002411313532266162402602571053620332511675263961496710100497562733175321828168758551859621406496042623188265449045794603109342462125733805418434734750080866832276521336719799751524802362069598837779657459899903099990615732100421339351645759925301375501822823226440862960377506591449649885805207167077922453696556449439834733229792315236838525749304680790673781551094219979260645070846176169515138604805792349136921394436468309645384861923303028667122450694467521975644229737133622723803904985870862836640131459383253333671969504743995121569501631517200959042018890499986861502503900266180668892802504452697240691375324614245756449145896953660651696157843743786521991112057917086987167992737805141249358382737350643013240845799005708602009368837064391732409741972301164415069024957542918341039927242135560742864801462550531836812604687362484707167033357633643022486935520978161862890256412320086302191266971062032595917564521950852515649810006885831495925003795484736817577820271916427134456347349762594843933015603823101117243530868349534556274754979008970048287182645398798789906600008197837768802376403733792030485170608811808716340580341183067574513330965158754998858144319590345423620316559253202196162032111411713062070137401279420232978331882477645382220241261390014530140502472891843377825887579043819644751559701678691630375231612131467631128054111320544868862048895637598489122100799702893460020249741497786910296862027792450081469942095711838032474020188162912124565964394100640694113010942792680951260535636581835257819984930903333425642157165199285770778410865157260025914972013866380611334230499911843375672033747150127044352237054809102521305145433039098400171109654118031474651099023070296265893093530368905517915580696674902989714462642616261944659106966550886589925745111191937004318214171833576963446518956954409207662635500651458745523404794388040957833237522329270476190117568988806762806861842081743029513175490246697319391851439366774546509422820318568337347798642917139569991357925363697302625875386628138836758807601165910497134097818684889202220202429580704411937460669082782352256710837926568098263449131642766516684174213954053183658764323973393309513924443184873236707638425954415840608385017666653963227256063337799994837210703709826857062113993169103216183097175816470234210511972205138761622127337686272689339532250927333477870789045030419443847445072640403046119951057970955084014441669489768426952530910526637031791085318452302345818122516938661739270466839974133604305542538747256248158927939626964502071931044206705251904408776659212192549429126811550238610403778601363206574899371215988279446114142216360292533155022032926582478441394132088001007438606723212736877444913006146765722260272777066703736678297097903411997355637263561162617678900729588835111477548183556351062178840493028786630156461118076381394358011850017556111443090585876145193290156239372464150114149949016250919333209058308590828084748233986232469994616864960819358512572356712058566872225839250776949937020174293086634972838163094550592753695180282998622085386890652656959740337462020530445080196231271362262169516543520880943153755298540953065296665913402781781799013988245612050768482639189990539073713148208660739962446489549415342505227859493042046526009308280877897636860887706819390339271647853782645175582143391237013358957676338809024449851381751263203892195273770534642704989893293635670556061628005133433443737120594791056623655823182926987320896159974680770742067046369337081200218352720359685088335004142492463517647863831803366213517255821426677268696483729098940334187005924766230133417595024214810741838463166497630883075625425841637195251263345137367339352242585387202439532629638484777421668871228918322609163803112099049277113329481703115114948290621954734360130445528779593098640881679673768228171115208510243628021203945477494078205289637676359037825236459752941817919008710913747832137557812119884440037764853130363215858854765160822996156409421084588515847593861822178167058803645326820134305593965048588382928535332667232063993926442894903542329711851530325316739275048453309950665834423789421903858894560389450336355197848304049643470682611782079428613078125423533405998803518693048311541031326834544843359354212155167839494626098637633224816528361596143713160509866262196033896604236006767273768361527990466172170595406200252646319523995098476249591092640354283271719097292436947909724391433052141588979872607477164304842167383096663796272841733357889550865369686825653219965798503148262389731149421402306455974494638744282399770151424357153795803614696467175210910901927629658729131546203685345119855275918531849785854703527753007791890418509693285703196797630958292944565111139946277702725589327270411567266600698761583167044732026359922488085623820353066180258983787329878063083686279190588341332029031308641930713729807828277264749371585965761412580098209980181260907493099811571744985344055882864105171095909592279146351501121267960334875360301125732892401547065909774440125653279966768335636294506961283299840135279517396870781990117321034741005891299669554929642690995663497251074341399824356062699427715024561584027479209080999610796383291469341234156554883959912234566219707578038477448330367233409234143828112944703812428023579930462957526515774441840709648055079734189504118533004224443816680412196839515961626000909333665276741868981432431412852181159846136385966134053246259206787681451915499716552720341966194707112265099148541383905493373243405350351964782508067119693038211153962816279007094104237630121482019210927651028341810334489277079007715242582077707395572787966440791278295030399765349937921778642313132022519012817780530448214233127097283691843363738027753349013954042724994422476528158452175082847196992182158547632436717057664222016930321074355647475448680971160863865326125918462252064174540917065406340931300199833630895550099796950671461876473723929026010634096541614099407615007995864399504734949854673403260064517581879866074066844447466007139825720057887323045449508310269016710445437114528241262580230235971370195483775952682534548706675960299065965202460092351686208756098727015379435637275062196729017870907182259947846865063367943968022383285579083546687325468137839027138622595490421394257372852496306190989171618198623933788752075731267839471903439202946008980781070076573310060867542439816342502106653092686901555124489678467591345011900938511471842060141360012334516101448769237343988500284113402352970989783961114716766866787436771777907850091551971839998653736488838307315637772095180632643960203743621583274002768797298418481459090984548053114475781530080368891477125277849408342503358148638792623290999666021925732726430563790768767740640791331265698312064912835698152657857895679231648873375707997991716050167331889761971378398268265761590473126667931848659939097795256860876861568879060873980009442174450577754674836664216590427395101405546533227187072621091546365626098799922813053403267171847557214338848027867993011795311217299834613599473160189995506555577995868188316919913670843817877265442489355999765466728214938719538839867577780323040173787372030776501856528748585359400214003613367006013617638559121655740068290406105312658810887006352800552594800469791309966287617547238304929458409922770785461292163027321520752463358814018349357529604680843758502312586588397322986929220779003132313896279148201540496492957557428499659815086003446748949371641249909584950577120084380276128389357511229360132703651212058432703787971240863750543391544221339731919040110162632855357208604510314166333814659267548467539055388327017375553507313243069577944842820262990103042642156839466650035788832441552902289400427734281161300604706516374460287864496620280898916200956754932497987155897009125040160419253499606457080620794895204960976084600901914092406980066900264616261293676849642552766189276261632319494819427322198756281428258852298358893393640946172299673377124444068790056956431839002119887558944508220574037691016842081152796540840446468172161862248509852434668394937766827215115936923036839007126266397349967527930599772610146661264789557538072108290211381276361519714529221170728734029285894719797919172743176072170902077911375359482714270316458000942753854468122554550495360749607365646015231456717452730610355532138772165011994659046194607391851473410278387308698368415161285723589582918081632525610990762614556913900500773076018005263857564086064868345050808331665721077411078818187066021446346399684596425374121325986889908312894704300371694791265258195955427915731824383958629471365543103588789673652582959828117466873308175134476201469039323516814374041435469444952229812931804473339884070841238255301612390323793164064708611000261635729907315465587057203890779769978741789733702776430157564710320164129457683874577398363931356306766401711809381474119592369742996648075343069585484887834495182826508653324146849307708279228209903229626211321970722139756692504326727676752074865773386773552184394422630417037570313506673092417410969271272868604840674404879548618675924060253112489631304674087507484503409293742947378118722519614470856765338897083773511518139811861403217929898974538995123818291491193731995888875817425986254541604064108060077158979333528257653545605367694921385714865192061544587285152778089846348661618278441559578800731494542506630336150369770419151831558510988097278088743460341714565321581916872599061728712433725780903616282809739632980500588221217692684488386600963202393629423567169306829394366496016454286629653051783591103361417131923287723718183099106805318319478749108656219629175833265590001439409104367580787602844747041117332908145684037467811072117100607999344581067142970473297271750363979159688392128523738895807354860560776760197687970176370677242326418746145450699031846701084640925572628700485460283358618189095531714351703185866371463668070394037101251922769727163494426651601964247189724884236967601469202208324648609377356006029710283796032557530143862972759461616750723454929509300424486098666133231980834259474742268672728573094153192197355152660394661715201066495124323358220051184380402522576891081365424709915157504094845328438450655534961138125947685311158806114933513607170022683094626821324085260974983361370335957865570747804983737807329130641947457574670201166806910288889688115698408627473981257261180501188895476105390844652264791446695142693018989810897234882959690154485598149969324497451032949772700287548410863045186937492494567080640373471333962343871501389876947650277646666252570400235297524755811692556814133786292604249729736240212339970049044189822840467887725116117982200860298094748588483979519039313312229143170347691399803062578134346669288182800517895198913284927611967966830168584507057312234123927661024803328666179981833706646723791503608053914792832144044822256442817087353859171083907121881276577747134132102829646826556475882105328882469942042534436323323683432820472561179049821647196846354404300114267818203660424152930591243222941166083254023882989942875554671230090267822952626392304398079018958123019319742977505039869369101674598343568587042796575442816607268712112311040883046978948956614867212394577394099524675859885266622944014556791833049066678771525667846027955284717772733283549020394528195558732683938616356472712019772756497691091622649577835613341831968988801003634760849500809194382553276591409985692803591549450489871853241673938571918212989322069808921521963558292018378423142347309382680869577751369695768282783218523688777704728300121191632208893243195270360820295354414677512688875471017424849209415536940208238937136083541033298680740730418850481997867451685888403491008577730158756761071159655870533671681267428027353134234210331079585676565109273341610780238037122919656013200762990275605000757199923512456990014707000623944837166378538224231048370724985213298916269111597458382069635056969464976930610986044970515461496144885284479107275796287002049279474497711126049611726466161930562618535544022844593816593873914693722633938277609491715202673818139905487785364349229276951253056700604535368223918403252972163172625639138780650170677578581177235007055751671555798082133022550760972001331657001679131456015079041972011913283657073980572794563745356414637124287852996713628179077857550833297532148420037758821419393685289986659602920818024890298356629712923438883756519981777585811733698449939240455851309465351845303427017145178811609658772989680337333027669683827048314208220984637957179977005293418896438112366021126925435864433534405736580367524666041131114043404261321491451889211537776967952010042370913442188194408242861186243998016555158131953950812994946253485175009825409686968393120259392293417959311617428258028310591058977895364425964025541676345004419311294233418764913266932735085206754409906587650665094354633283870096542413510670622384490088459096476263647543022835105463504331486098697359210345799738630740798090989406571536089715189477483259435269356185139493343923308322709050891777158156449643213778930145421993561329559653476365887362171122783891404451455111329395867246195685820859590306958661962635533709177342163618924194190800539681810708749701509635433855004068589246060288047963776481679264757132423495572973109536825071986868379973195841391556817273309701800240218727572940839066886029067825210115641607971599017550110091408442106479895999406130453970525456136628012715410248756016890997819559891853242422438709030985725215761623459191138331342422685433733047364724493811384597214064352913509374045036735483159069754212811199415997119887892975724454875506091010703494881725739135327353353141023889052936901525630247564885149198313121109954463037205148812159681377894729796396132103393073242736817155113300749248537686981644282963313250955682007377524435130468632899766942548728452077734530480091668966610310947947980353416917197390049444051635264329885354903900637905251273039650115028278621797400454231441095954507587720130003747969541973189609220035933776649723935798193716837451931325283342004347881058721389426180584001208058632825435520515639278477313418284715763830067329714825581895479576006097894963704833737032469223975114267488507085091813259475636521777267634499661463357788011583531417911186528993039407380369104956223114865230910533630400463523268304867637610233920493893834631553196384508263976138003891828309658444988488446483802109005456298987766194999851185140592387173837084136607574455281185987291596963908867757310954656689089773586939326926343039667134375522136051487536614756905360694579166334246069453275795704796292016224621085568790437168204412121535280095442879548777370447791156584464493005284230302619665227791917358386810433566981389786464562698497925169536911297712592528721847897276981138501481159929980601585988384517474851343965466588267498784380411036003535612794910019252250905030905835206696177999341994863369335770474433927136235429016607637604196562791400315539893665707123972123068568752761606560331021703013837421890664981680284875733021973905759365672333192921258223338516123167092556703947308955895448470121453514609468950619049495310995496983619010713401578392723011936805363094741516902667121278781244534628692716490189710344218411255432659517064495850387866808941430958050683961420968597290584212581246451076753309339503123438020365978733131046934549242178363305206185545292778165543319532025280668494479934519635378513274501541753831428231673297068687623180516599771205207459403460677476007089350287787271568577393124757590894000622167538585163062253062969144916843420715242227221536774637015062490599628512428483236531079596668750004670771724039017137232116549973822512513157652019419705431337173083993708084820722424812384807025082362344624806941948434946283936529263715308601833209211678774035893166878135075228718514151332478197336136577382808899202416364556244019357683901968069739815313683346617301707814592403080223290244264070494884617514627372048347149683593200623568012657926770988219102350696703862429970939842599518402999762848385707758735543473251224542541919377275316098260047534184949066592822501680629830653783637407360751500946642487839237513907776161112242862311185860229737606360678369967275731080141045980117880599120855274119859374584047990003571330445249279712933835755143709271999283978237029069518413192024538780240172938397236863479665451367856066501394032712812413592259885237216350340868883200100704346304047633094501440662400321010901874928221051427019946058781552918822318143213234838325901755982569204909684197438018246172437741707063025515273984032313887790807665575308343365906433014507066353800324000095233003668320251418927655836035113326953304886700876912672473832503970197283727204289293737916370924011257266536974148439276122544050846285109862939834223995247977909567444832028167072063621783155345465975134283182738707042155624057993929993830719482714681737801709799178059896330560114195946763139115208390361724489774354468732589293644518394750705828123471224546751782239536306088589688428941410683184322800712508915355647718251047534416200493155437382881046445886030959206190442941486924528843962529038468056241386451814711063560841980241696581817904157158314105626482736855262168197818281359505685446097460539453791332975231308639229703425182957107712863178468894662291954482935197649670327643983974630686448491191027412928655818734736450444754738998099854531068659066003868060978034952647508757785072959198358279884964193706615671813973244399103878607854765553180867029902383289023335545014288627669140656205730040612926429371404816280099172107755853081076839128043789255922698915089679929395170223254952935350591980123683597883059996494024191261898672119753849005204662944574469490139836569018882201653702373502768883167739501340959072552015394662655909026195910380696063399281149575628973110729896343323251735957802869003960975614850708905928675939555469691580808859458785205325692129871025367279900113516018366344824662951941739942424484311686906317261261260832258902544070143910056712675845483232338115306194398071779892331775472355602384520440945378901332387690611482032776658452293119251437515945172254619947773127187752386602492136122460802891680064237774840947387014857309379282277955886095644495189262812427788398993029912114103692571113368608555101115767769428917573051793948758941692472341490817285884329683930521144479258667600691386314359443337829721467368413233093109496023338051803575787634713954820955276579332924662634660754179533717188426009961800611954962916128456690868430687823848463604863882743878207204686616158114523946829626963312951912969919565597807618821108216060117935385045923401106919677992581275320020857721768697857660591057198797094807903216823483770616092390613038591894692762250804295544289890613020632066122159448803280781279457060460244787527256479974010455900409326490424237235740098525110943985679936342148953448594400088652778509022864621952201767718401736676258800432224640226506041511008212878025040112775933474042504377417654146892410323953443056294697715473680571464000042420014316569999914581031792736290137292445026070067767632343726608031731328972050789026802141055767413579844817715393692335378006214220868840052436320708082699367157315460876731721684543666159308034499982012211274148365219941214279936246958293890249974043513828770394845577568332947339880111878662971099582763010622165108966751555030243323678444759180107651530508042067258864633274485891151026350840470859473889843767666876270789373869358140919714002825189009540268167616410060540243962763048929437268663441638132071950812436522272737043159369492278237365662736633164509447695225327606730499275611627267837938687098585697130682932355244678941752768318375087767509696546219972008484519889023900479571560509821635853109280842435348960675193386939730661825875478663496059497231000131595547264335250734864441327458555055866625301809724703075102700447832008058953846157212930917004769916009657220675294622405132058490307438067084988668717251007812512255256755608484946396357796900632931107164074757172317106237581699206984148745869175607952106272484201431112179994148340126211581135672903842102665076097551067408890230110851773398518047068763974438985421660726817511499704073500330285406061020965657019047455011529080744948820821012014594294575506565406752029261660053537500731294071981523833392562407166343552084807323335177644335593087819542128905001172495664632240539096492518681474279842630782561726288081717150920809383498844875741888586625438162504421509870171242292613318836583752355296972681980856415394708845421236365203695490681944687855243414292637500230320063525018104313832825910384449964181619493281800111872699483902743877382816617664765914497619976527922502415536527750281706582506799779095965768174302330332779478645927604332221682911126328668259999378745108347431427939607519764458918833175684721392548942418015335706185933177359892283590181931124637239154218820734583949451417378969472221135517871940921524615569440653437729333459456952524916212819384449742976990114170237807533076966618959557139550317107927030629862887414538873262398722835021513240259949547028248741216158644118189798708919099525811201564844152022532341104838039823570232742168619096124559585309035121680475752828720233322182665063261775136502355449351364122580363634745668334476699312718647998730434936770386142599690585617546211054205838157537418419684248813259750396365820776253112171163485796413806264309190779075662784312935487239241449081876845494766623959346594811891013414197730800163222198955841452707718688812905309113001504799485892428896414957366983972976216939693642629985367020117810269223433302954237891438733286457713567642128985030388246027068823362684240426157182815129849130710556735599998894532599794856183885709275317581915854245825039862397391380445382136567099635982529423729546209061095160543182022684083143375661249366082225728670065575782083921514172105479506583209552050543618912348842537308923612034735430516604340550986687033728612813879691330052485861012532275550674209625494355385410118565100671520668974558120613026977460457141460841387244583615024721752471249443712468349110361298924816464057871847800439142150316053753695383084585298378967040491894099900166932075526602021522399924174760352713482143058879045932242184056041870908504854645234082127532587694372284564797175693945504132887569417951873339164335664247353101208406608759098268500010399096621184911213174697976149618449716801752241572333668132637425318335467729712861646563236066877137017244542648018650741287945786160798116749928685563727199241096239053018980236006205777300609776813203516547949890824675730775657069060542011585062941683909324041020169012714111175607313296935421701947570144428932789172372018347021972741755612858334666146293954983226228044816686921556834546295531643813472990579005265925113847373259916366970181184285957024219460236588578723174748434338702910573293170756374062581941637814885307477151008997754265148892728235435107475334318863397198530044532781754037848530893051886308704564967436836892217561838017833003616623253735229976771705426348452875316160556113664480299691002382026864296917901328390381773453318984940853715890405073769596050980670666488645552445050462511890529916733976865473534663776941898598372296338484662610371288777767167675393508397239043998144653323551283381327165907934158832272859509589320993811937575151164485926378324066671804704585654027104251346582768038624271727754580607952927711398422350759573805860612183656227986876768137785972305438358513464438078585325957169379481968825474993484035572783014709585500384316402458007132381226290064717272636917319587230903833391472973171615745179116491399083410169468788923282057271206626964533698795800823882838077824080639929253742599443054120349113590253526336650742262488084987122311826817465680986131945166899804104758430159193642958266225457902853530191265606685607551326714791782886417723209156357862182132557011157439940659263989793227703578092849353433391171387489529331092999768042622721288328220884100971503837091194280901198254262828511564057930302611971476457314659462610802537182619834610599838845405462456270131046884522782087395983843287174620282101489936724852739566792238363775120107943788031587670387153598774506122735693044603189257511082990702236683437818453382726440318918719757423600714087766167082885374377812544190747615773227596288703782021031227544425113623097128815786785027413948512376252167072896806293712354542958888309022604180995844214828735165528198560047824834352495988824254529024946803465244914627387806931034420491271950042717909649318034136105457762090856795246498346447668510212224072927935540927878365441716721654617574917907184635105716022607113062062603586402024693455027586119079843187242248969396754204587153523956115223127827567889979766982481896179519997970281317349154460278444325872503688989552247959653670399963800372270757662033703457537095528498808763311045278265564194617425993638350080452685321170897322106584003470967798570616087327715204792860756603622677709276607620893924007574546868742526694320022355202398067252572389630744807103492223183657042320889553205652319539191266128802985861054158046473929662498176125538410093328646728680203936998796929217547310939254656625528483321494208904620361026773739407654492763688256680282054446226508135798355689012120549916308196940377123351158193172737818879180171609138394152351212669539254123666843387871825426339773273205198785697955006052371791959836958190493295843670320203684501547366017661782686177865438168067967747972121073156116977901838326651359080974986054781475596124809687938053926760556752452686604953650143788921544110821252206305036699520608459368928302653838454860522148991032639684822024304695055217127769932382945416293307805530233270939786417475391402399544203558096159194836119462836057359517022728360371173790199814478941099140648706769219603319005871886957735883119946969696144119937402579431923826563254311813206094229916618032881582689528949988890591712627579187930703912724500494204677921845304443316521703059828417279982453886582715126007689588483757730955198062610302284269592747866436531627027045276804618513696009698813853531551357209095101328072211393889564140763233007264840827183696395223884088963501605745109450443540411701241671782831270425696869241909205516024141615252962159512209895735505552715044492216262042005408531007285536466979817822475899155003284780198378677159323148138039292293038218858323186391933597075265486060328274666205781790077977232037976017346435881526906393140446662913610644431579294828211616176955237982505811616423284487541904028013005417964721402657461568382449289891362009231853215421048316768112894446174370927298880036354777502756917139064227308610163149247424905135120210972626553163532899117605814283184288900435763654206027513155580059627464091746040104751710338383142891017261950144893315854674834573240109111586626743412858292120876244413127117229137101142408366491390336873375860307344517132863420549213080570415679039972102099177461005596316838961811008818494892250529397921765870460760076093361157599727374141049480039284851921133779015181701400074187673024212769588138681472096746434217741290219513609887548654242878686811641582361562779552790990599076073346186695057093680299465859917382216102000504619372446399525143089662518585827263920044882744740993546725856210865312098561323713000424292182263313555772371317404746885083547584105059017562079448188032507518787430954922651351608269571334088808406436933032411387018655759465094143013621834933504328797076496209879811518382025366664889128468212726818375753767240739444150824203538183988369428444889860103133007762772108020862738680632506974041178201590737091031502024091106237281711005957736267447339790309194230150089289637764841650299783004780390512627727823469001532118868130268510097421194247146387343104920306334635016696048374126773675905459366943354832527170711263205040465248641372747045532309221402465393540571226025902469992968629096180313451177514748668904633858902023786655287336879151893395888159534425491940572727218976128176160258287488233013102708430676365138723613858762480691481815757746172309513297044668030747102359945519209861442257540586097846239354857789159428638581949408684166125596264273498931154061043348993646023945776601106491613718117461563600118468175123200002813725097394960069181522396978256079805797063436323039237257070853819980495443435282849498805053557742285927113541907446101095596083722141109812415604678798677418965363567424404197575808596671703285906646639128059562690661247352218612517662796273119848380860375345767971071552798448115171383537299671497692612796425917290789672858487875709054652374802449481269048152859460782003307053289446530416947621167871290523906135378019612292684767021013637124619716508530749241780118563514626525561834377183865588431978059606527634031789159628946806386517696689573863808379623099700772118768590618003036554536058435169529994851378653334475162473757923696058036647036905522393715262798314169655449418005493406578708027972721488932037366097321604340671413718030052031558687964689082224204919263708818799129529137662482604386581010337245941022075960147178729876760154809497033041950359193584890197819720958782318163910350646399258219380015354243232197894136668949387519610655414988614509903519203165413443209375895227350787693709747875977198513892301479001092241414399678854197026602830759477904585038378215127590002862403197503202882730657301860049210594192590110538301367246191453261414510260472159754557684504920087407385552811254687305826079227911186533991357581159268364061058212292152817513821242265422449968096660977120461144305159872781411374250458715959277539948115140089395528082891837496613692800992166658109180211690164249040092180781208876636697780682178574368439463582095378708203857820891034965701367925868994715766345108918086148078769545090448303309621631926794196639139497468269178149654874864460690680936951355973718076654625426598826984917818614651786057318628318670110942335992975366831446151284989294435473109645539316308515591787726073880016695489398155280873644158184671739456578792517435771823360319639768833911536852146948170143326836776786747491756893499887773967797220513759986361387887720777729414388933298866563227646949123171621265401369183522388845477484436779195763992523019349230834238259422261144941618552302181527900713771406359914119202595901389070364949346547777423995676144826887750689393504365419156759003679538041580537120539318753888982324727324957684164079340286297579225737859544429908341675711195457540748335556752383811984880263983726922437755272352937925317058948036921147388991290566249547444307040708592288438096256529963761595245429118368988162082846540047941077168731936245564546070247801923506688277654104191358597171316248366440942800276236073284043662852692687904724606615277528234557944048199259551016764129616063542507647775330520047979436017565883206521200669143560399660809371857192309085900637545752374517067288950449803420200880283410018430548737835040223504827402671381917449224335584291493835307004820654557643237991591378290281687982793017026965774662048299723732190268952396692952714033424745505852239789512968588368104352524308301642071399707920037156466821068764040674976189619029489727574599810489429333558723608150737283703220916585226076468138549033880987792746824281392596477568090399912761395403533442872599964887551692003858074077583239593170888525880147032396120987362369126124233195767082223463787216194695157633880335419612765023630364685870306921834147701965431213054176534554576881865239862187483687932900337533792717107025646864899825356638262152160396426971589670904730719891675822404876359754268287602457179209282058997741074185072980220979397847966463041516352712378331839324618901873238182454867585558837971649780818817439377106200369463535078813614208448189584706235811544793679990999779517716979826947271181591417708392911778221401785365912477841392898717453410815230117596375720377003397882971953336876123191405903586072537026597467518946767204307869246112444217147469541281780489561271391281661614430935549849300099883315538342725075459364803295759113583367328031129356391191440074518947467181916694547174862956933597037309838146208793700395175796946742370904898528748079133763580026398794200303767127290265754595051691067455087629050788380998980137823558833515346977463750514200762917383686911515750530225225039282413237652193701775682438892399254705408129685865096002369117123360278722404022949719214950349540296012796977369190089347089038391770120992526916252931380683270936006748805537079365414874095606586466217520292075580832834074475864255859623704753183870236729349285064676385831864567667478966374120813785984115374606681139753305621936667264473741968555740923695056235724337968773349301254603957466401989462438973500603332540108740227087922212630557963353171230345985234945041481013950212468011148203565060966884858367838852326373524631025884387427106388006514776230504792771633717906914393493560532271714682521073976951884356868180766623682901743236037588042409532221333095216542245770967627696296198435654113074508328529832771488813300838993787453900553600701286350704909543840426395256735620799804851604719212444631667880600556325515879558453863635249096940943158819305188640098878664273416514051885958985140105147190238870664564151749938530144361271089616345046243600060133402127374681506957075053817442631837862950793608994117457670255532791301213658201833406000195346036653120203363256416559123476045356920259325432395096678746576928347916981380511554569646273875010277288685848907654341035712011681515214145323328762315776259028633249857029088738914313308836688821412241098339660763763084601804456001206054882544226083808796091121620683136858609085949913704973928311880094392298268133505441049561174918772342469766700623763381201740151344975327792214759272228717958089356643222929071237122992559626192178361739024411908851504921954922884973952785886244662605260974762665575637412749455314892331892592494999683629740530814114379382282250279458912281188431691043163417148203460112433734445155294719993836647328828396839976744340120309474123277048651053879120628352157285310947059918874538062943523685805411952193827574753516300429124282302515486457855234211744008260481782322603733675634600102049633008290815568464920871749178274593445973855947121856787014687932446050486396492690980715305902181562847707107087021057335386182612172364782325660923717503495073696160272115227589435748863267230089368756663155100521123099670913727324763333351787626687271811956386306516233094813027514480256522234668678509988782456655022022817945746250818447971551380086216828036204334599986134735481600137947476358660626114786173876640086117906961907693969578654953568902561426505480465150345711081684298622105627445227926196125323615271736815644245574423457795088755749333620068967572469927700158562019610274163669209722257033293262049443571009467697831080145832783113722126600741262711370275898289979983381818167578858092408245331645433009254506031887637525584833415449764237249775927685584562046948430882853184849568974533016250357511480105550801760726649390563984099429779773858300997245810142015314442569652380727671414137907350776285879282172339498009113076812556100046387070819291183686815064838508984531125092889047903934690304916837988520980160868344583510773473905932842032822534018595274220252062508775250510440458044650214451123557677050315569304197329870353763554065884359460828763207820062083005694374619587596148953156807882943881846848084314585142163390921145955369222407517317268875457610680402016694515577355234893466801126560720925568735414829230178785171810744032804728409272272507907286952451883300055390490881575405605631103533404312466027486933477559766200309881084993368074397367096424555505515126836436470346330298862655038636127221602280469201143384639746842774029531028933437822473271072128973458573732893071945403828934489888434838358738232773472209229483645495517278864162774540844893451901368686172620126339950386809986628867232220116360978435580424191485388841504133682372540027657126115202297347390943732896852569690349066005505140534974029495001946260636284848528823424780539894340292763967953617859453384903342279874667397543769367316988073200603455430395818495964927718478784137864457190292786968459097859656004883217347851687370336127476046888039366914676257419857095992582857618475914241325321210652843931382075170336662581685012833811408572998683468136841679987644738768527041756762499035479779824756589931872694831001902038675743666059462849661041979558800870330211730488511740830293158855601482957878254146786573136943488520764368603408303506678919939136581474831116029313317627856960983546538043434473499343744375827916520877347688567321783324040187066971953856033562000276714620713382428730917158865471400241502215617637442779617415803681044248018399952736602832091159718725156994558171966246064165601071060597540930768753401095818877239144096423175545156744139255503252845189165917949437620643154831860691568765799021420446406626004597833604829277497560937299817033077474486251395413850851626710033321003034152421481805308516486730948962947715849643325720916094593895424656390306106163933725616783155245852842283153458200954870199001876516093113794959868560060048166252997169738506530311392126935609956255344597599131202316407542641553543964111166076517095056993775668176650250463311428129671925246868188364742495190501750673051098478570639222241129125798305034929429152231541926959544147421601994384912984548964646180307256459616709311853150581277220385255588371957009050067843238279340313776368863035505847345113033905585814835978802547063178602021075298555679451512226864634129566752102782824037066478817119422931596974163700110006189304836215217487500200256257525568223505565746751903023480895590848624015931708155880342385356648497542250536258429603850706211470665693467564332368407231945370748818492529685794726367434681997654631687489103806266961537417027205052223418723865297093002388133347641310577164486382430709072489953066645511778654175060517993379667066149566435296716904208422005137773519813058297136383226763704340018815020543923694157711987362789012891591808093456586838840572466236174710300710672595611160077056626161991633691194183433392916358598007775395818516882313492520542936316085486826062902834370575024451255518680546635884420576855867283103384425743683219140883774823774102071471025479449199819514002221613203418485869749024778268771165661698296469491695808599920415418385772075199401755934028742025600281442503601594807372315748786552531338997430669083822922010591249473712151112619439063728330530232292057075836325323978201470158958097061385655080069417720688814983421486256890506817242581567181532317813899006059824715326659945278041383908997986904201814176666685272533097404490011098122695652948329377298920516331153577294908530260456901951901019131379855950429750915512204849458861159114360127574568021415372364925733360772811511606974568331872981892103794755338777754630091192901402454402960798832753913537801705542047170313191636283376970886025023729066045039082916987487217310170814771247154482037114769443675848948074778164015162186416270255275464757604770853170306426386906739629433876745653905693037644233924716676067644173154845410111955892707645479479264543334574156837654526130491087987615508086180163045467136530797559213662407907167549462265426744241699009379214265384003735165307733822216024965660346030846300360900288844771141364942278257955762344741765380623519028080861742865024325591334614152175983360109348148821111808788479288354575760623989416563989174397772357430345628997986253676941348424538285521176704429771979095649237944532277376367159815378795064456531102185618937027083114300125072764089133252930911415511228680041736629989152975981662140429219004830117022748674973160310950029369016684788737089937038703004371849626375984661090408709001899671768764290495475674698489641185300124375377139561790085270617692454511917364988808491926021760147838307897009470207066509868241736372356537031651322845542031893630568618311550744042838822897586269589531115525623642787651438388699035116767314249769913098181503417399882432512062248876860187968269917979070421495325874727418977182388581549145032045111795757079986695761964372017577070866941723319540155467695631972221438087373011340756143671259988345725834827411937616948260452294542638648913915169364980409608156720916201302202220335959347857304897338680202174299014186623615999726723081572997725014994560357176531701399180380784569584187698800484942173010990156639095041214838009781514902934244107193282734761689492597496757519752275163269196066658277370933072882443140511776892252540514073297046854882739021778319110170837347601182188262593539945274866394460186845515993506906973404085034520217997803091582023849175152124349237511963151544359052433490970975226711079076659068059177457539149095496287252839570885858103408607760972433386571829660872360387640444913656642438854820543321898546602424221954892760260839965933186627547306623911314416043816294188533106452087501339704035026906936537511166512166594785166962249726104796010128432455731753227545861196919444931992688429678208481134882034952034465478586251001537345617557771500737377395205642816838378679521345112506210727918074557575180912139068143916784995084878733320688881351277054962449546280280285138157709761296647235705290765996300922163715087166159342673777530830547238644409057866676472407946248539402740351982481212510124316438619773812906236911302522862838813672725678035690058164503536802082666541032940915329812222320540955287946817854105143352273213875602597933336617645684969721315915292286727124124347257611818443436437271855682957567109213821934773551077418771127477651275953862219447742324094849670591150793286232390745265693085111889630928918817050204555751226900029460779575560414364926481322238724244791745137583031607655837670659066653165279417491514434703082280906276425450481959427588950895879977141819021773825186356387230435748287671739832553406418551987234256995231586441630724571570429329752817996167991703248880778394958943943289648089884993703873544642662436881559109569953764228404725473686521496567464410806519545533870839834769957226736346154862265088700045005729602231238486816107791256799854750827048144219821720559811932233909807364711271462084613901739140976030580923004154436826905868385415572167868427671888914958348240551139817588038014668566097027034962229445062468694452874817745298700926247472106397467476377980986535573608743643375790550405816792530765797403061752439678987607890179894479359049595778335832265221337659511453757648046989679436071427181894867904092239344714400868729663737737272766061119176572369761626909295794710022309188209164802517754924977677762746303044062209519877168726362338039120612559119975159633022361760933112761321248011047831548936739087026941288579364998843057476927730421775690268322047579853121183617031478772862939863316565026178386323092787740032195816896863525711877370690645161621858714337389305815436962514203464101932346312224649223277154188033197411500479918472444531530014783546795028071102838986079255686139515453962404304491552822242696977674686492213800956689806121082765886448847021828141318563108253788470703503652936197489683236532518325866799265599871500621565267527354519769974795529906305976536093045485844195291849435117695999726165531955945219092887427079635991614333261929906439919823767143793981075755679259424431555410036162047353158285595098676626888679874847291638256789190695474699090190034535838773715500289833067029770028319398477879486087649916410151702259797076322326179584168212818561937279279579497121042454055462352723155778142705862224278594317869286482267130701440006541907888384195872197803930038322476317450266577015144440573840593406279242606240727076688430857629972365733418184295901138111197537128263232694223165771256178666733896057744476979469674368600692119574067853967020165501031794353767140543044012964127701811940381230333337110546686390014144069381759478537927032857029911564443285383050023440673370811323197080812324614331493747607482639182865936353156962734481332942785650202020013317415868841471345472164864258861951185531098115088067091929295062181022945735146167293243157099304217721874671091443949758735510375779712092160861346993917974708724575801139646050482319369014883254119197042220567492625457696469014730347319668045045450001226349568649269501067997558005867061575520372808197519834886719259661578946374307586593744213256266105254657884566393031293934317440574123088930279776522977057169236862635626579791819055723396657504979402480484955741660116995943534733255893583683345337275439571961703526131692874040483813928738133108671502300016257454127057680327250208967554838371957369851889170136503113548782145332022029883171377233681524536200081713820310439536195268814030022979318708096706037428194530653957530908334762851049849766332412808981648986663735570531447909693306846362568801086849246162407596918702012980386886371911639913259126587486560129487297177455609599196918405012695915613610373332708468976304440934293634000915863248219504363881390489210503753017856199047983013262620965884257680199302986806741836079084926404144329637997257846635855819042684288760849060268242479767730956651129162062026345588606155897397146746929693031817635769625548393375807323642499332469561738596834283993502501665216463107623201216209008054292080491729754045647251523448197691550748102637355173962721098016219803235930932387154807725159699764262209415958088105571699269894870300340227965303281235733714763515895746104363287807216382169096134805979530930830108301587030723294418001348261107002768124870758927490966572659221953017592153509407327862066458424547692770429071392607251841618274749679097996972064900079572569144558766816161705126342920062153888677189730053711152580067081082166204848002974309585738853600261109314095419771332429394268306082430783726173815889647912869749740231814536481062843913292717266654617471449249678170045840574660738854539818795992222525008603128024836180087030496244387579027371121100097723454862404360704410027212247217731737950815646847096543059844157731674122869241046743791070051163818139620787439307706972971701934176058103513481045518640483782969889198831148445478547686336830999368771382928818576686169678962434317002063489138312551225999990408370110121919740582975675862758428562942940596811948560532326517165349468470722448345778636475141122681180161594167949094468916567509211036764775560933817015473256838301124092546359420010235227958695007413251901847756282261278557394389864264183102478770426560331373910516598689546793520822003632806183847068732628765993450712524299472364427665260958220471132740099018537791894121875943173288293189541737584890794661528907033130936481474608067360757529127552337872013232836005934598621444294927472274196550201962376079914969637643490176456092326662033075841192011956337571462521645522828512187875118659280202198715671877415841680040381158980599777886968853335819801318689418719324980393547029245234227433083323369797160282648674462316173681879190954796985388403096027891086188750306551059957972437799771045143192459311510044735582055150514099997852034823778779070116151328374467761609659434981469245500582726932756604121795786867299137044670504301030754788428320161006725202679243540339416244821867104388441887050270530787300438606073121068080913485342591466438010328914232754408724852363210521748323511814948811367331673183182821804175759159031912461191545921519615556696098360485540464833789477599071496900902951300714148596703496454183581640122585845367625581071622534044734010708533926809143350721052691602404794351668958839558745098314420473494287557688202191920157989580738698133230625524013000741819788899889971956923046174987867756005382202032207082330981235119021035785181170936793666986170929358763173658841028955075777635483038862106456031644619445304879379355474614903948750241202308023055010255839670106841236649095561933825856388398160587553827038051803691527929248562167013033164150365406383854187504306761205366701299606006242056954715490228689778602228153524868628903646562173400226365565124025091809826001776883823233393865107347899372013304580382000972061156756078630461316624394694085237491618029147208279020428197627824080011655147023956562921771769932193378118305458560433965124769903992288954662202274776602013295623418298956336700179464572402846035176013905400823498875480115631632281432279403152862159730189454660882538512974859417540083038025029529895429438406773326330431093228149358636914339810650718432275958381356285579828907510960507544742620054999553100893303400374708068850844983431089305140450667961182855577464929966673422181782845451810451776082911010645338331969405142077972306372833334540228052840753286095419233861955167752809409509559379175163030352656469301400676963990274066369387900687435794920192908133587220026446998006616456637166168621186564003911836277958416899692004351110131598756669998225000578477042019389548373604615241583283996765065570586100546184241045046969534596938051817944666223840815135815782235618754730758369906610121735807049623156015180503886660126228933218711591312754737528395863986580068389624219432654905392560242084899712500968746769037728534298467790510057640241051633370358005369335338062743244104521457929824848071769569315535515903004608580000497275875605688231245832468099996796691325030517397613468356802038670438871220479948049761140139974838870950862098192865912016138553530055350154925021823406886361005088171189721861839694728835035086940175978377056241075187286595925839722828103997567560670195584900124924166104971136959610113696413070011878381426050878610099249314149384339566068503110104603777327246413612675261467057634843606511652812906812787997090370090175868404489277591481307023371128917756792981842860983552699453057377019253745907686777811004165324792990250007860661148889338386356070011878458967486318662698402818167316758116969878020050727675269573538457369460069628617220400927921849318974179221651321988518991384722571949541311827802426428462638593479425439705402665261939409250747908606179200936811092731604211771851541302279145389538277327164774021201632850439004073792453580112582640377978343043330559565216134676317956941774147601789883605012165458916785457377468527313467388804323451796118973109708849533717518196424710950567509617620139154443718261979712737504805947439967681266411082665820046053639169295094638639870042854160812050359904657829391047854150885940727751342828337420508954604518869911419623130460958301363637488075304533033979983393971247686372678092651244822692126481513959280311331711346387594680820478139153628893514321045491629336390454385739039289466626800819386481214805426524398952104497379615752214017002905905692278772959109597331713942544098379909807931779592398388591906183787316861381963935817231531186050846221289014864904838917132415563153271866247467797718392467571286385883231142478248530821595520707718971978797521705425480662323676925837129017257910366540509804728781047894479580771798114129464819752671500191776853246503714893277806787478888087879355356544823199758845173923832114236471462608213695239497776251628306494548506733551155913059292448067157733065931282470424515622215400611977315582360013348065551714590333754493059182818218012622280319502270016539090726031006449759369721239227639303668947415834249558383545444531407675505730555284088824928165183085911270029884272003304011471485815201218865235512666838389201462331400614848914848840493666481382890795947236958208492397047579122333360136635222263895202110449532323121632358555682341181407264315174528580401856468099581742318350222768038205114103395509306766537998871620882304428142748384507602820212352856964408419052011936318240232099531025304922227811612358654397619947931053370453521928378806273216722167424312822649696818859766358629105944499817008233884711201838621329404042937538349841245701905979015644241713853188869730105091759685020672420852602770320827259472760935255197556230859439412499613611441202091204741223302859956193635731957667975693267828133148149838495901491293494380712108279988633377847085464900875891805578915101966480871508280589857511669936950487240611169844562998255777849429253597713297275251591871397770563873719861758504666437840075084288621369099826756445227336824667151846011800364014037417845589427446730422213287266626647176535135103558635888334870257900752980601046282515068758716031007285169363238485786807159482184547185882833121863970573448500025299399389837139664226709785227439083906754349145930419937866517220590059613428120460752494191437495859459172066808634822741834618826511599920318274249792843144821695317278807979804856035251664905862441925714952293197602438182263717915006507537137695141346035343742827632044183776659552159792356734018651128430976567242405130869257386818450305240797638688020888933233733264866543804583861028410130155643461470470965677827884555362387807814277477901392822212858815708232507607232461766816063159818307260098093018478860203053387585900546376112231976552532575474760527556210337050801823909159764511385064839759468009387681868181071685995605949657529099240866110808325815656765433546901372178593939160568403737127536336621140781495987816308940647161156181815707003258233085237904893998030073849738489638276636885018547058578441199591606732017413866525072519489016039666042052774471082586721171505397696160370264530465606242189351251770624881462058804194096420172451699370185043253625566054657693012791223616353070068487507751520122384041059534271040865720919140061373449381337498708805579027104251353832611793022563619166592414712909660265875542833677157647136932081538112785291007217992814908020937730125431620656526977260437026380963287142963684058019560459153298166463183696892282517296881748073973752667471197851813177132728723009784232507168344927867096001316658891046110774087518840178611577635833350981783103514927357140855230273384954848726623982461004607566673677632143368875430458424305664408878299918456891286484744636997679183073413830020775248047197679664230030358720481157632029258459641086436974653139782868149675964238201942779223695682144503237698249050369505392781786632395837572214808821182120694152106675944071413878585607019912960706638089155025935494918215383351963079272323339447777272239351637826170787150175396991186214735705817078985869995437003802430264068853775540669668185150151841782619380043036755946400449666123073937355178510376474970038644134395401407857499794843765473782393110787624169073159925295690850806311081617935881223509592393091016944439930148143180638671681097532370570907333483498791184224470804236080121546277881421275771993624975074451957732728892086009829832591100139186524229053658646622688888241714858211409306978506250633325910109289500826793277238422399134711692678566603171449815305757096926547871313172946908073393520304441574815057503007084748328646241219594404624823738334398671210577453967306463076928822180664063573168895616143507525101381514027289996690685525343075801248982533747985089103223736737742606635333731632969178874088100345501370797895844334767111770067238637230669048640351045339999318891365042268240273488355369007904748434832499393795023658048137918749276440061146948794230713507327188037973139061280974746002391661692973444587594063676888450491689353279130118730382999357288070856705828953524944098680066136390370862413175131782823774612871246091922684524555146153493965565744448005179632404355681094461896767971771216478557007788053814856242397559627158661878027834874867982770661826598553718359507561505184149305913506777348343431140791758829923443449235823610976333438630133061047616322656717797670113200152513806326830160611533797505476681591521093229561466559901255212146548207082348434522840949198913166341737459815603281597488252744506170254427157423532497430006696377759303804786873936729502345805605303583694851125338171510107337340331807444262704471552626716257053249646561826143993541296893448670276195706328058405037452441051904091190792742500117986717318806618918329300637004814303280609884217224349877669304003545234673443347842656740916247488090973537794999116599056833824378784055549380185709545063298540876024598288773944630987439991144024831330636866769181387048288828175841250572158474909706053528744119355100908932333455828210995995694513250385240484554551206918894303090855945265371094363251707314148409780055835688102325564664498266349271792360516986210937852062861265970778054710808294620123825893784250664534224428532881259759754094231050401612135505986728191535984786007265515429255060447012023449593578937299226612218287139883801383279189982239181511764576875753491886067498421530965602118369933028905435774561168169027536118334211899118428117555302983143261168283642687175037385425562677615922354134001087186712303948575776198817357831042612914004925841196757884670149400305449348611946226598062295969580584636296624117611376153639082370454400200303972455878753158041803027069280017618187961023778728572089976999207071825054783017459910137971396839869486141998362889192104069232974771733573346546832716700197995688011625667005661799404270576175368088519271394359696774265784665077674975371595215360661019079113801452060300946199460596154383425028234341982487971256047167351801248313699539076469971462990442721001285564457611937224842399261361312839028118521066103097605784757334064296296723377214090608889749005651670450129011850184628670881754630024577504615997994181951401509830887240084410149940294032560169764765918973346212240385941628244442035421524735485841464978491183113477631954609279949385294545051645047223919419597119026852000591790478970933076464820279971934965103529124947208256675959018886374377592303070434018397125100493627856006436339915953616033605933713647225621717692082737912116132628711205594626583792421414997960595703054603393086907587571523300940714888156519358190544455172207504787091136774834487102859753069642094346265096494506795601004792638109344193686943993163398251021809141220504287077057970519212748220754336522210297544564468411398366917622919805299706619298428959570638332962532161072593211885105199827770961846782091913219692902843966435904745876204359347088250939862230426063958853139600479278033054829110094111971812978474238981849480403843993023016992439949846618810773564899891730303232606882619356099223875001411820164611990569093804174183092666371316683641671345475961328551413718058239728471821425641559635345304655744383826520234713259348314856878175381868432770311438040965701417821893623427092112913784689982193299514702740387972711783409648385091474681668372225395674836382313148242414447744109148484783839442413227292645637360260513744290209196113008350851185414606371668687831025894132461578916411861203134937327878316610555590781314224903339803222956612922272841547528300670319218483841510821089716014093717154119608362665206028071426124138424393451114822838910954262982369418810199582094490326956471912037926151840882236359003281581168759823192816461815319187869869607531506309373306808144976360376772989149242211892787235777989180834534411276501752463691256875036901740494645834373119957575120384815193328004411399991574424610945422721161097090452520634804499032751103367927077425223315737717240261711834638864688374385999095207001546079662701200893303222770119952073764802460738369267068476317899907823611903799579011762062760015558670748579125791733116268354722643481308487133594339950982096030459917041650973315704114557268940608679625455817567895783712120621349086525706645612023303313943797103731575851601461450087821499792124810855022050864776239286498959133460176378768747671434092470736858270172683948357181413742079089959884809889304334829175225420553479758576058307796072867067102273337304558678997636073278638191227954719417337229560269206027504559947061629421960864650597229838454638940206575479078782994976914809703600168154092212747347629160348459693657462685458336516715326768596590049910854644479259903519310794073068421942116251555599497987674014917195338618576668227674843776643627330055142072791318339657415289290535902784992254565562460141500237094872701825704788029522714306323470163629343640344430991168025571463380405991419027787584747377542761903284565425836929629893193586612848607685473795629249720915932790598287384357969265224095519069333095380574607736699221445269716815650253219531481490217214902008210431828117623277535679275343968554760723829314837334415782076900939314180810292905012396219540262073660124988463798604447800705282378324876150725261207486346269066241874476609987578273637172027981537509402555592994414578736234442983536036674777120945064821889186561514650456254907816807682380723227751674861048480337351656051728390235555207743466054219853141543907348746849922765225819521825123326289108886321718046719932089069867152755172216712452538397893374201998101837562696116843875186190668462444945018765854954674363002202419624028424852214015336994614017584220168850841255428291010808137629799923818752214013228348614420135362821866870137780686004061111260735702472181924628102014501990621238744842988838794849417607900862984254215929377312136359407746454874808876208962599069586655563376875473070624653988370290594598990277682329806993733307573624520522891232995323213438551375108632785856064038100519737401296614171199464171095098837126888309188391221261523758711636391576494838836084596583044298174004930719757372534828351525709159508470984432606744545616077341623759933517449447022462470209714441622067779818720346331578901696582077824419308002585850899184901198594948563125857019157007179677239007222099575346868026623793571088267069564590980840787426481915918997849870897615138031076606068066162717631318739085431285901695905120984955763066141283879479410555629330347895855340330882051307607573271878252678880086526099860357037054882479197238865759083632751774996137102876823800005075414316444155407313491844458772175217767816011970468460831008369942072258521079859490268020274682056169699115492065051032688252752947977452315206699844448183707301920843311471019589166253604146753641528357092789595478047349626157287396827415523781922517536414200230026065066794574189749736366236848550688481238245330672154039588914501392785740446593102055980594969316368693113786590663458142055513650446327018399516051389073672999535663164505766594305242075428027741002277883297677917577898608089211479721028596770626100558525105173101155451119529642888709745702963927477339016747256743303927033330131003919096892522808790474868462318265225970516547821449322268661601347462524710247583237321343883789879615466378657046095090495293994384471049322436061314697697395686289296171634881976327659247291003995440246116072153204942001990508039776308769108021728639434599907507818276858722022178213605225735941757180201830511883738725872354057964567163255861470942407057915456601598633971258214931301827519913394192239742419575668104703035850163018005763734107924087754527016159551332745056980302129861416113614420719009921402219398184314736331478288762639023516135325429340247745315036780701076180950641557717373270610013761086886509389116230211595503020582458136331323465330487372033183089854693791057127197165253236272241417689050830060924230837763394977915084770182646681571501635314057582125866167334205191855873368866268187986405019086630806042219798588400791347462994710195187319496640937522831661732697588117885588128476831640836943070599917174363808602263393976061930678231938313692715136566466028067181368446646309509898422273089429062210603592817631962529511348801600619101065967071126039218508374360340197024123377863569244418512814197381760499077235937349704766041986907902975991266835121277603055286329790469642874191157357725036088394228494652206095100998280216874058845671531541660694141461974906404539111030068668931025869110345290717117865036922244454749343581253107564912775419650201257365246314095362380287543515669608624841181546403725580657918067073019431761668109882789032334216027756027921343205753928178079727039845559856687774058695345026523619397329333182049779783256667307661218349250448090503477953519965930589409968112766124422925163454928588690835777139083323227185456171941095108213786470896649929331631197947089635814985726159019579788316172555932276533691427522882623719835554724321298839036233399599890284399758040982707500005910683617849928515019791160769296607486173738205959133075107541999422394341980360759314949933445046813471768500795248238374176188946889679837019363809073782104885946115809349949158678172355692447882377275512037357311007459315630667435604890747004321907527624807708561578934293446410723323306985865865433416939567808777312267943700736026337283343449729846352836469642852561582235646295675272157212658758780485349233246865138104797473412407529074570357533963116356713052351019793442917789847172479490646674737144973576315821817307018651971272056331984967714918558923834415540633521876080941334825324305952220793535021420759268429281766641058285811712528627862424681768774717101519084098478636075491779720926295132250573002744408676369006328094694654707716470066339895865371415009917851356332234551583027370480963721531326287095639399096536581417710830075333454420162309183055804651341971780796867722335158271214599518191354211122184830159951509392603520619838981466647819202677212596074478612834799411278093802135412403778204182991869667837137592503505372143979338713179585706344290887608160760774623601799317033634825796031850195458085105896956404437662909461541939015401665336567471803536795188802971692167717854105860389821733490665473830584381317175071172269666609433186527777765131196087086457492949660720270523696723424106741959461858383174489708595200518581452651525883683771518025973452861868420621708906131180946450299434274085809888272770974829724225963914367892472698449793961183745282890513358154864106528912934382655287904991406283833204956830582886151074025442064786161278960182485734251228602425952320998722028600635962366271715208029561995935299981193337747961232612805142873785062054389389022955638326574160349307277398354263345531127892403598917915235280238171833253744847631245860009991066848551573755090271250040864484019660215318244997542805471451750293816722739958328127972730984839055922307461328908304564298369841958128787616972490372789469219430901314011219080440023264537017674568661657388557041549971139732628934229744119496418527476428718154219864118871577432197476969127477121706761710155729451151858077855218626823263935142223409018612517111500585306166652813208595786021265058739776147102257561452987844688266025810841213984446648276306277881759346432355897176378452177827099319458394244704145348702344958979418587313121343449932119538149751352080844619638318578833258171487378005140461727948838175230169559529025477824760997217276469619714815552031484660774793216568463036972985180233272432650029945914534418571600025923059685081055761688484587199139784438354133375014541564287197822185523209743465006801764677935945394396295413454648605941565400464049507027878311641352708971069430296357205274737914082669179377603331156410545383094887129856251984128025977131169834379895513144646118438277917488575346353999975411546247823436526251814978356983592507444777595561508824192324184695614786347792833601656470962587473712351318194261748518978738979157133380444278213179632689651903981664868313757037896488510489345799959053955303367054670110472491623309353132677777538080800949730822957845899784079626178465454045643312290958544515905970742043851361648214963526222246536373059479946103468370655023734776440451281780513859944806686321972507615482484911111490957730676623767664621916955923147758704079426690191304710602419180315863306088677692693786987452601732727670502486237819298996018293408633502499269283082864820591058116338824176438472575281000001863222054269977114015303705658876622252404919279025719411209892111783966520515379132750733263335868099127470712416544145535839923322549610930248004609275405296186348664729285237219460545326195522077152123499144235747911721783764239310344918938575832921816936878403849982047610316140552927084965033111533181405119094925320329093110438508131335276771266743443530979690110693554718490830582174024782895484373126864637189904101400632966425268248943747850319910647853142725885851843546413140533062371484756636317565280360883761280773927785516850427185901651118258764470479844677909064082870314371889754989248411726602704845285104077613712628575921867424361350777235833942146955268930215885987351582108449538113342564405858759160947478557181038596620088118199178542028088801150261872730039928142746990857177512239701843645582377955756561446280437501761605332229103348497230619339310202315198919109584040496049095016589265911456471813688409732779907436079744822735621366194845128806541594316765710494569440462960659285444874970510169135737412494612230692894312453044673942404278212595556490813487746622486684220164384691073961608689874708572623502850691574543390772466955257107185665255470508766673591952954160500080566571711967518414647483371810509943779999536392668743793868031582014301033406312322216736151487276664203083695518566661267165310756690060936506150439943371616267655598019989183266494956895701933924532414464367976922139422235690854535178927331122903818069022319174573554486098407478802807240935932214333193943817384997939980935204435777905173572859574550324762430360060982925386265298200473702725229866712655697991226779024206770010615030764955984518649603877928580016141357509211944030074769325555539405034753794528517252338744909480708595715723105343961588485542726371272442610926805211974318157968412257602978242257885323590978186938634374195827023078914543791629425546904892084542687627145786923829638099699732759271858641073505491509551614648013019516574980363972828870437184502357781073819029799063459214244337913430325400056201434239136225011792289269071873034786058668795861369820838619281055817458819811996100775388055357672936804323371099992762426829628566279039987044109260978103822295350481122666487866123938182072701281153749531100460776925138584368052853083435534307210098328903493548831618821757500045814387160451436344923786470891819853970137248185172674822265978583333429961871817517960084019432650364554287688971309473512458871637285264675910979677825160820485473929543545644883636570735288686509148512683418202725649419117543303404149680883131570821322993050448376615308309315994164289450171724639021306119613089352141553260832187408576553172336622915837019108849036443949106294729873754018435055235208937589756538289065103403669737386147325573946013181563151513023947150424452397412809632163233119669623349403220408997935501555411612489605518779971540523281491547912925038114367070086785319015154953634343731757591964479121138094940090697352786663616472142312649388271077014097003923616467865886711773013540744788156988644686078716978680628510376271570633378633695609040879947301845538504124268590301138622550190963321262354124340107408155859811814162476470968703579914231178328281191040977020079259468897115381010491384990574821485491242180785536960493288313397473623407436594691412654750424037062044930602875108643605476771291718616965796254962381536670815753203204072812496467116908706092490902713970624130583129185803439939070292732990002435566465520559728225310300667123983026790936370325520085721704393266101513069808460324677440867289125873673696701461087436938091549950321743280574233596402204983057979348133342150038327658609573436309070162430975352081349477662581223276937145939522805087054632844980552128552208251271404461465487289840774658898831702083747777261712000104082981749336214574876496668454177455829708151617616819738698113134579174139241291435099040103846085460005266464157697591319092023757256386399515350481063296864545072061793436649131619739425205472145922636159907454985309056935170275360150127554205843183080836299851577690925839265874524951473145941722118879427851503075374433140723786160225303575863950139306705097070756159001614828807555194560068680396817196652085644309797052328936948459081692156882682977460477842594533717170635546208169459488776046914319699972695695773050077477115320880576825614172544461373847590707466126040261010578407776684546859611016924675476391987245256939502204393084676141859457058028543091794303895018592962146151645620757381827362682483150163795756957382859518476076626023480021082297920309712624435046825444737935925936938953957949063508003791795528034767465350205030173652838589135295871880882806706539485948408648508593166630590110661961967941570139922531958923394032964632275092791619691901772656650387967415163984047306485482542678622512415071685829756557198090688639584856062145211239296078707092197847501914080653075123195556643006069606310561612016970957776122382440660622093364467361183399574756621576527200960151597554157438497689962034566978461450114281291369096137965514745515541833976389281935984973742673717078730257922380789903893112822838447515507787191785497299298634113317953290356770855972373887922616057592843618199620316187895250709094968438053027709340823835770144752227105721444459603246854243917011220989204048507641605232971425790175669099587612710639294522911122143659262977423410209493096446887436916854906780681412693128736104263695717495813002552552725173561585632729407121706206548156976924925424219579784619732006009509093564577142007818389632066823075804832492841265226581914086528874437426800913543923929926671445593275096519486037155993190355886316753644594926945422138223714394410738353525037318512720800113495201786464914551123574961210178371617050957957673509973350368318697525477052250542927467132762769085252890530210178805375240368497033271583055789208901104626455640259750173592754151302937463945962927667493798611508811687460550929435032685284050442210723251699469099171467714102180639528324020555067915601012036247490970670287691497314533146140241133959951723799197617674984759527969192192298205187627931869479982666035035649792695240685394359910777732654896043801824833956711195130644078365045403875232007341568150623853211595305942677530346253132971611476005344626586065757494344802828240404513388678903790894004122744104487759793051869563927037439180007693211285368926735294314809299023660962656209275067010914011510073323756829284873212094435570470974579964923696451118695512463761497947988866408988275046390412175718063190614129849147264212388899754055914212319357530305118782165724042006831730941584202341637093736339895046736505825798177800683823913450380376654865021039906331533050241677761591199531274073772661361722705423629629687114513582418742077824494849404393688458030291961953520836123987921713771246169795298855843762736793818968384776833383817236041598411614257846276103910302839400635853353897296615009879769216861518053155003571189437415834264855175772233826138378600803135658191311957113928522570819940200059704020342670869786482359812295325957657547134064696758949222030882807993638923759348015641200973721244480593102687173096790322354387190074582282142060105274808960191719738350831877893894050003836146559063198962471048981523671855650996497674310405297048106955757242632714565756387218381320788126328933944631539715747838255149791614455855848151809340387478040272730901624301064053345936882947885876095038773389800031925119172015284164726961630602718872468184126824210748123367501127805939294157090042640532410072712158926696020733863140914114588466723153141892638902426063097217137959813409273186028060550094008991310668847362529761987224711311652038191861043681711342296081653100351587910858609750212777051924293147038055759083960306817625627704723690774320491916329999071808385663428480016576314139298091318236269039333380199661680571178927707796185244853809985867773864257105051486511998842321026573341237807021624517139827267806664988804405781145939059503706666728252469737114361299538400938123868067271065769468968517432165455855768289294775890952023126414586243095237977190740447295209776187611452379929273493962628125637294021474366252108007575395888286934110915175260064198599342824433503140048035892647660418428936575269131036188022558269652375582223997471269234680052548334808983665176202518476126262668199902054476986072613836104473271279785038509266978616141170764691012453592443458102667601249976705134091667963956665424344552553607939168877406038285135857095632810249610587672825396398155730491533262630282625678566598247744869120364259296056890585107367448343863421844766565798831892337348143498753989647336664963236267059789295659714756801868556796944901906489839750634820493031688086217687282493279644409866856378474013031181365293594605527194103620270141595239600550734484429535585353428264082898781911561420267912690310716945196779453263559735827663599416833342971697209841821778118256655827307302957344912569376390197509220363521137190877220912269276257262318813380866893514863154431065240176641020341585223716633899327710537945598784300928528598245589909305280321415898236413090404195123940766932261089100946780384380711544828514784475649298105459290549442797986747619557383788063788365238286170147420277502527140013518670338046595837866647561191890453323116886618292601524899447746869762449598159816183294567638595915461420469549959397047399959686022695424708612776976896098770788241957449470427049527983218754041554583060547938908360954909605114313817997252854757082914928820929717362007197003303718918465172968241510797441520166573933380787098051027465726768801870524380308434613724346457901144107962787664767429747310152565418673201686868788376763246470001306451803243857685112440460078475548086916486631676394445658250031828828407828300333360299794001640947667899031168783878465959971753695506223119553724173571500844912041412748443343452909027260845723302087195276295925488273097217321915789649830003034534577851386150613214532544798028127420525045440753805153203271778715510767242227043976744829647631775080301651390165056588167255634087717435418821926452224301195747332241434114819158415169924644223740078865451473633541713042920524304490827960657969771178097786505227969923572705324520667209964639763273603795308343390083786013086831119181711295076823413982063125253562018551364034103726707247622785584182499038712786801515534403314991994698344131448814007181400240890869030952058725562361152815964937866434675192044929204278968495219294068607296004315435312004150150956771813778816396000977723329450230759637696338722896337462380023101372740994698142623894686273225060216625607084986598663398929531087254259560769893545742836737990474852490466865236956223045230050804279353622070442270594178173648856745682271827794960682296600396673167193414157736903020321761630918020590366918466083963319672993470398809161008747277468929803782284010538391816702744577842966464439176937636740992541454644876915415743008623782261398711859609623616560283419158174082576010534880178503778366027273007375356906154463896856250836883948736631487131290281431291060963375560607135872047525420688823654233493499694732298708250362990389769696992603758220539386327439894905920938467659059788991679197113052288944668076944154185441390839366805131782033262518659813951000412065926800794927138014783416271925141086088929122286174065039560646698097924817007416413137190844557213205034540178462315118155087572234033393573731778643256001240995250747826058993629084951467498836427865838692010641699052886788431657198143235372766804201100420495845124879400137911419736985484215257092042332164380360585065607933551835721540996680784656821061647255116854202703339145797166988200036917707817391589701724793821354069587203639690561528788983331242763546600962725544749174401415885112558552540939000773812547543234822839195934366860726929002507948113291890205530934327286127657915623812162432471841894349714921239878196077187036338828270525464587259968022645475918704806137645926230848499451570284395523298482225564314080440813370086876801775252262813626438425867669051754455734322768233781972771060213445551022488231973366808265145050025798868536849880635935336502455569973036784203313027060010843847186061119264604990052227376452902888635825161900786005047277455714180602574620255392086721646486263056662356403491668902134211443931334501687427353652851624773384787646334289025459448105658967233529269349188041505831709356417451145939904634819902787255788096962376658227594206057739814617440044444862083856362446992356306470176135742518458538438114706969406887356574138000742986548984021588388406370847505945810139344549827723209782017312508952508620241343841468945528496611428876517213722422317791412504975475663317076877941664831742386526827732654212883105058499051014139522775031293187314296131100277000354475092130496130712096393857153699886257000136475537185408278793931106547570401031138564810939648591665485920552294755304048299638943983316849823865529786923668718571414327611467093153466924093205391595569078113117901831844204709054081128034795702975488196230659140492425668636496847095112769800270169568218346618848565496590226038625515132099000491460149551904707456428737272695132178089728288684315847002400120868934786447551185655667264806449988817682785360195968647894493723670928448766658221833798708368813093617723408401831890739326263355773020475668338661839424985879704300759972506489135996216079762892240234634676685534464942576097384430580834921235522878199815481256949864728993123398718277524101990790128142211577769125234929788907834820900617214561103590893062703975210740951276848997313305728835886447886300110283123546743364403490765002246461212155152940807699245142180755926571061111276375168029549370221260358602046412729616482405578804816244152255925583259647404204347490466889493213177559377695770139891351615775566972735356742692958443003163265469796892086399719841284679496324295920589536046013496239381337479481466991539506891496275748124343199981328169921204172501362849575338365277966222863956911952984979555676234616229477010637359652885065307518971735751918402740758170693497436441125437856533639963223101971323039198824091552931948387748763397948231542983269062702457968378302277763890214903550498740953722278485091639962501012414286717167608824486986699103593043827328575310162530573685402334162200499484629885835716013537709140061454585684508687321220911001983229673648595808249780219197981170218996760430267131254559352430999204254748367082701755440105685521922540429301148248760934820473517264948536465263089413595122518528170193980750050574777318001872204424382014660887666656755853647287267856852178356975071775018821440197936862105419202918353939605062924603796743956157110021766554774738393085694232400420624858723848906206694076945887957850820537696009839804999481571753043441860447414580832608198725017337189248727331075436824683854328928882618243496623418351910691833537218911093261251685800258452703758339386933262585819527742640088732917769025484172594075617049582812432765825916839423295605889393242444623111238108097724874379307769714136156545827882123893455978498988985217258720291995830749800664610861369630750712446624276721252942341116640807591517377892529248536241966488660263088728074860851460875382592568948283006045096416327543049143363232773373180648078378501652613911776526081248722008834672014004603368668448590711501524237060751336991703634532033537871986999860441172248868978376719337232246720476212942357656567175287792680132335257100059876921356327998401794937576312478852694297254271813991042858031002431315582444822073584499307134964783691787004337240349719851879003523844752343238470074701174824305237169941929248748675705684970896428440180375449523470177527259141897217205314219059200314369528150131959460460767803527595864127050903130079021509691837469217009973734337265581760841147905989427484286070309414729999100688463161310190669382213522574728727179915319106717577804714304436961534671969563587357918289720731587219388416886774513747806062721549575723764876569899292929393760601837551895422724709729782216323021279159328372819105294447499622842994578815227535375580888062084082739991723266310340773566665252999908011030851406223970116365876316315241383130450131250893861083145180754075306187298727930769380598196836442309424391340588996191359338680677548311299397767364146148322103464100223902328331926320289280271027187620517437602678098507493435015512722284809126421876766822187878379238727008898046560073935686118256772433073513601251981827508815482394591772638981218276664223694510431709930586814224873656782316242183731957956571928576802492134227252221411381892583874748581942434822162569974732279038154282584025161944489199661367330897818813268038766893589262492045847369649506606570017128493810135255421453631215100358219650351868938784611972325665793007355362218343718748542732642744952679516948352062706810210616297174468602677984654457175535143009982930277657073603131464900983965669593021686935070339121573811672005157165369490681625802596932539196162628464448468753909703598123495095478183968674213023265972702448889054859111764506770127283620780451995310925643451751452514812386729751354486657441374009036474633007288672374629633960678944270670541233576936353577176055892885496155880298832382887279266271489914080096651339129516899486744631053236748872633926451169338460510820644255290641258451037885657200606832395657110231327039426203770462164687706888695535179147194581124229577503491605238938695671111472605826545445086263099287377291553949195542374007378766901911554152234842969161462104802703390986158205494013697402915891887559424593528569884423168310434830028544459070142751496609134358181188401528775459480711478170017228540709200613130465554256611843809586676424125522180238856672500565188389171086697984118654780027652807005431265884116872507581678492961731884087390455435846354015274085414240001433602400968165209892614436773513028430373393656489161114610700026351628372682543996842905866137114133487944448747340024458880137393786153585302841790401507735808144969022919764901358025943868827397666720481658502569227946592226412380973862683446455890005922549771534838722753133663169690678131051201563210526931181325556166375501040120097288307861560311446456065238304781845691838996783835082617438558963340089891761268990774903347302403001814845646580956584287412898967189360938296104754235862111176871197128109312454971948454140948092065161391313482922946358866676428752304716426331312651988805954621206578375471074439406912860888313761098620736080777290591537907415044165751261986075035320237866543564855660609214473136191252509685361808839459534900683979876825431550474127982937901922603367064288186492596440727481156411702278859321238400545567852520279188204206841961358652269358758660881252044426937457891996510223776463125025517455981978640475311848635007054323061245010726882364203247079133940133713673194510169285363990087789458023841981456353603272755436933144320153100138160984497517140821216939667573008650334186786478094518013013675598697669287008615893849694097697220067133087031000264557595943701193066320774430897180949835416857725607122173185858379522050964774049498301028763595443531706274609843593233100854889409510998845656803392760917019358353726855196273819379798753747028179599904399400846241209673284707947206944734172228522703714685596372488712493751097502693204659895051584240281395077981809440386775511879978119229861545019808820981669308652732942043770283543774806556365160511787374329136129791115718628212162819965691377812410638247084331901924786914484098192494680950480377417860247882090281525734942806133871392794203528833066916413230759466963661723691773150562918268297376922910802539431167611295776111666435190743152136140833676580461072348403205334082344051005388834123564282520532290699715244435984425514012509867719196453589374719627594161866588715823825310827464455935566452889920811395009556519515280968263259544716551224737423015363646028157985052039132947524524539984818135244632626497979374198223500183942980023902199451044490454041503750067365028917243323757136335208018804368120889702035270128101164498760705147803307753044758516260806754738966268475583922298949934737644979186306030930132406215236417888482806331872645896838898422849028724003856360190666925164876543400438037037292077419506928735437296546524941995906468271649219281649375010607636212644386427911353681771361490260016191465268322498391424452115987849986081747179754969695407846225393553136597761931383676569837577477933079789038426133568165674447917662849586012466884865886689722591555174968713778119183105684110663224622307216841512534257293349591039208912521622285526953075926215184901553708731765437668240817499068203051428518231459815982997644675599251369196745022098716224845884443962997691167404706357239638172646993645333955065221650481055115268302101093686378070463610984751829906005079895984271890770858996333957863828866066902242084893308654459718771182792082232351131902388645321002746933709385683774468931906162601973386972731299627217046503906636371123331548608053505579470121949096418912882010379400522658538104366325307866380874039145906092793777075936945048191341823022523954339924123471484984728909046091750691973894705430906912548052837664797190352878161719146712974802410251673976500125111812167448964135793919477988127569398174518213280286780947835458795505389625381868930536722390770883641202282873554503689606579679567089095188879126154971104641707919790561264768450799814876504167733795041144959574715853683500432406931354407907084273977444083002815433225673229857503075158182379912937096334092975352354372476081128011529054387816599328137585902349676172819800742677995393429089472079791559974861725260407213004876763905186664467832554516470294606658685343400676163744986075870345281690748858215158626776656997636441341647877998259949127599222832830958789141854684426286171740002882142192247408847293149765238674094411744885564672893514358330452964080549554550396546585571401300599497278273034593072920277965555575122216917475737303422721847137505933413397729757151606680035553043188607789742432890344684656393992553834287130915150552014347981480574566424434778616925763084983127899330008266892456484126568056083740298874813604523821964452240721111601594496325154137209377897490699231498671850604824840385209076522114824588656790937221043631691899724263653623301405734192485676190053842499469194250834391405161470626520222743256869292744198016403361594609991145076332901805536518950114509258941588932377953110450415233952280611691874213094153622144281111112779922333039483550470160140431160970683649787918143174115585675250010343216695947700729272987878956470183387813642733327070663617403753250448165676579566663916408215521179426686631283898982687408577368864050027572473146472937483946012992159335087927221974733533686559182451347713552887862714112321431302093826612943717066316489742214088954844053326719007271933024768387580191251650247816189959278280531433259843049589299442144191244054321891440414634897186511425634806787782783441407232154981142612631595144034138213699423034912892288853280976857969942647103425333261015989543863785537294818592738473522966494398637487659292854162789886602267822126706688280576563738008146613834417319433675957722633646179754663459429573772002277604973995945427775774007497675258887029605806357772146028054706997829403136741461231919481259494639416984839865994924826045721186077625475255586153187226935932208745465619718907876020184745237200560166494779077719486515386856536450224405788842267437970776675184116351307703146745015732944486402563233081759943002123864978348107508941646102882939061936585518227543798886224030178158088705763994364168903052758292371624769680633636549001164844541118174167089725721798523842274019699859359290953850955177727757829841917946487810424774006286748139315123744899223306691650894280602257680848633514742563753698057778997683292261993540291625058457539598783512535354384834229193690356820975305121146076728835730938469658423753109104626660833634627971698153320357094259353915707066939251682325561524223106545738503539408844939002345003781475888276304867430728017282981518600363435571682607589481263934998825345941444820111079501269385309386638816094824040786810954532098642322703309320039578789424900116274541575033586428187265550698151472164676406835945264686118178750052233714152022476814410558332908339400159200133271517341966825289645646859495334915989579281673313772033599121623013867714790569454234814197625731195637553562265585128925346081287442613758665814850196004040980439346158993822667910203341796967030516729941513989536628954612799054606602259877252861270261673288238808908163723584261787328911274020746493068542321719173378297118539941003350066589594599468487759524049238216293372328215327685823770530665731242743377628434987702917906156469802389269590275098037919871499128279648409920903256090058795770198396337079417750560630063256294771984152601308504191911065995277470106754484044209110450051427053076431950266053189445963670160241399152591955794612128771996775876317870096801686527684845308490118771707282846187659471698169001969780439923934415423172267477133130960128093665212713983887405393966810210017341109638334324396169147964930957101159370743472783492198360360119561574194314696288884239774622853387142290666140496408947964415078468801261462209417090211504063109030955625777374107425045559318032741662570347560945277265745920962529571688970315596773863820970703654256807065424123240638560704336142536089834504628456447932420304178914604833780060499349755287316428784884501474206211585867846545502016629474772589630772385781738112176399022958823875848596750186170658541835408940307899478462195089724976436493336248929215776221668351893834594186897231704639505736993008276381603019575190446593771167338146784750876354595148999983105542926679319462301912790348674896196021477029963864246259852034180884981804113893661838198696566031267663006319808709981132507831390480490383408046173116594620986120266289710842375794766735578369767974148438690289415484730028092500914236242616299930548694710752397534476976957647492403670474563468184590562373846222663830810922092104739803351162014632191381393679266854800161623515113838007592276857387148095283151079836408066747700584638728084784176564176960485895074550336914168871977058254323911467745959547110965145902773305550314145688216257215483411443975519904643830172580803671578595092344104012671057156401963891426894987726379513500691460081063430572127174878030489232394385653146704759750762165782208327568845366995358267357949046527863070024426493328561832586437498941127860724938362680361005511713455875966152429507528951463698978010447751032361839562778646700972994107268195552569574544762182148028843292776471952753858752031415260783841506504558928059705810014232696532232410521126302935333962017366295961578427234973346457129810813808192660184924362126015320704711710509152012581903982442756975468912200370685004690403694027429113254099857388687360756756042863620440279058854719413364760647088118983132133801816279898416283513436939850577028939604847684540121310604137588444502268566171821059931629366453708988833797748693661912397350670160909815764417644849417752489303299135295170207948320219284514044468299034650018167905264276397109308385114816304259486172858419078979757138352102717994613557631392672842747853525708075768340879067708973885907146413063666245096005458949933112835055852757541610381888707479440437486323493815221387961133869432148199242247096069370068259894694526983169405930760986955873039569127959288106510894839031499828326068628185816038696645220639879555445125896847577822327087617500739960843398336422670851145246294735262327114704737764907939811070151462112564339585326535687979556304419008520799563483563342618972368627734300883360092839037207934428147823342796078596124929922993474107525689048972089884556098263651137190025362816014233426948273737236751585769372338764303944535646209095169976734427831760786985264868170863187203435351447966721771991233707282234629940575160294981562366870926897763093540129999010734848334555408042198250841490410720791339687349630785911637892758191729865728370944962992912836606806054698295993401024355385892610870239623118494903384419694722322866372673524369740125039611547073203735647292814300585058127385034661021983689142631858416949453817348364034173169291245495645054718530515084511740609430359941251908685474419601125670794778750138181974970313539081376416940621675525184868647292648874161355794978638038274053384516073948918936970586780900096933974141913768106203792932119525093739705317971336344510517770050237030474654038162105608431403923477978391466798712068069851869781387282853708868738773429068574968754928793896925781776510819650025477470637122657616373960723379319216389850676412504986867499761145739729470738060524981827250446684050826391915038194032500071476737348825200359357572998316437853557485037504252578384331992905266273896904904300799229089003589937331741939748219287334437256177265405178012851636656266383979815922294204691312107923937108666523891240460638678746322630503134163885730732325654882943639074230827931253132874100717399016091674632022320122483815618550452286180789486675531103441527024817255618253562655441178002332318325091484143489814542826706450818749147352650929424306074046473285786181772441689366578610776415471271081931616375944190648387337701335904782573761349397697569337209051926489174580608922265031517754220975352548715217132724551692250333448152904699849978012772483625301363586784688346243305951464574411028135134644547572949548257949577231164156241030374756076043673658710147017976097332127200244185214538424690319408655458730543139816830038608808938697136280739775361286454497595408586916493301523928756944435668247379277104827369030803762120225572326885317005294262256196567407025495516606391033794965608242123717757949602538861929638501839896258875501887941266020921233646980759025773840495400481107911986761871837187242084953381915895489927614648388079875534134750909567278902352914229008205744360424308400241582167379202682654511307627037153296868205599286134496601052262465731654178685648489747178652891967312692406388872240884522332642534691338983641783953015622962407821133560427604316667193972719005862154727178254733670062652272691380281992559696771713810229870016812756644237941121315277840909644143201384183046100003942567913727279000023531871976164381333174118048703984648411649349267088435320159027508629799032225446177124588827487362097977816511547607083319663264434715765045720835885910541773485511781131362371310940883169008243027242876076862657287231567063904988977876459289086025270443427723435889143255173832518159651466425434702640602201506952287624641590945397158447977879703467532672981727104863709776570088910397329059040764074308076613312299751324290372014605851549241769679767425588415894295199889535127779782007559898447659272251631448903882437056937881379876635497864337745252094214204265615139297129672306035875388306436315659729943984404166214805394868966831292330308286858387883176067194781870294529551071669677471844533795837889663116218095433395864922044804787796567904702934607954482275427553957000237017780578875830285892936243975583762692700016438780920266377128469241228526871584429090928042217850252740882134730721215800939922681867984700798219830090584168204119403925192457889190623842308974267804981966350495755302832220283199058762634653896699598786284891933026429177329572341922871986875636369500567137361188102251134072246884134865253697091769303359841690094137170974979341445599936794027357097108654005635094661870036010326708718954512399136795791418069830224563930712844670255572677091075253412466343575785604555200809976895616588199844026124214362141986250507773481295303504488717275257349881186913975652917397142465111726882466068648536298228932000007796966656879471879197026208396663288294035840429606805099129191480934021949998633643622988398183568887182654655769099854245571263684205563790796052834424832419025519504964387413781928525345687805007021200063781057935068119046101975804236972142587648871166205827391457455070223553567214443276109758944429767414055081791808342134141139991913989250136154266893790826426444292687219105597562989333008684958359817943045440061676973975937910241170814188115794944473893474471814276432448631962748326470284476040211968457476770588625617835545663656226840304098665236839726480818353181220875589325870812549488342226763603614472434577391841746574882013356425407471080453069685199886766242562826710843362655324764702259657943196041397973692964797169916744981311013576048866845919391906900734594466847155717579724998272961287938736216424562391550371737106701984804930239473347480328661926424335788388812366279542564875897930881607002501558360740144388767564315645718037048337369530608475927963586855882500321454588367620318326524767952686641273871934372951630255029475001292398432194275734484027924888737315508930099856822078745995017091530731271043440925458492176372016815262884932562732123319831530704726758623152108612746084536913941099033632314227947531252501655132720917671313415190373576137124095166771166408749065386243997825002266112062332310244918367433233366579454726513745411194735107105182920505314020633758423421982126205864750775737878661049254083857947331746149529037620585589376840590233032364542694048182277963211902398086249117851432282776251487956398364383626123751025769565724397562685310938770776013797089926292448600558312240084964587633625417561515657144190229166165096906374837815694680519556057089796774427673573093594118997061983385056697359762883180083877420203078678246303801796007398400397279187698187639382104144517094392770130395886201498350288862475805481834823893316123944861440116560871532775147945814826983826814272838623760088440032011602165776640831157019547457523151192273288563602707587552633601357077819548253700094142368380034730562475060982210342848648892884162566292685435008426276755039089696607688663511587360577111395706473992586957276384631511340987710690501617947357554743650500207929935328501236221326483444238975742532411913388469972758920592714938495647494194230825654158858832730145813439559899035502144132946531036623375046079112021784331340523331471541823812147008326539967928623633792319957683348000383109357465919437076150610282421032579626596183760763167581887724318155054242612693158193044248822619185639037469994897513825434932397676612022809443069363399733880685814442790994423858248419356734570346888172199054171486291521360650318166065217464498737934969695421824778678199283193011920592318352089888262261563027337900855779310428974427446077243029811327658435162050933362481268642252073700625021264814425131585953794384408767130019840611529174351309678275985728201590799666958919063651944471844599496418778532364975070321885050371508657719714806628124265451932457844871580954637015150468035903980108503869390245573850330321635276024873020101915189158957284743777003378632233267125922765371555478769589681267095763406768594367592001334370621404874581266585890890865411687783884776818570772952412050040145000557842097260119135955288256515910271913689670311945550591358472046551662844223088680698634188769611038170762983099153329582929532797531363989363557609586957794161922665420843839165234651481321116945747665598360454913642336433144329908770064838761654971007215138696264299417947366190488176732745051690917090026141389838616098305095359282738251171881649567867590240047589148564536840557451868748024846638261097561575269150023554124604679266911057987157402981666923420127083639026692094686651889346457795259615255667808327439747809286488632017527007136609981180080846178140743144904198284927785630149764316339982516890094165608325267866939805589437014155253862524833758278020254841118994079877271464641110301922821783966837109490063296563262137384405219056445087906405606503613060351596889542087527889870502047881425272087381394451762480206658423153637805523902546323934357736223843030887439773387752042771608078113583903596237250714474092145758206147655564004572394066595641104257866354186634847786831322866042849010676958355790316032647977276050562874752548578128896138712641611373505059779696136472693005683464120278419144642925895219744992749429849034632662717012443404515858469259560634051958348358740043378215052480736436219213530560269473702894874541119777133925930128178047700109977725527259195656594525339927696241571759900044735271922316832346400581469649945607411700265132599014025732155148824523394750619598719174068915032394336688917127170656026964319487507275647608128237213003154646744060941700844286114680275090672106413803609976078132014836862974926725882738238045642716108444980570095300480319875985581938776319868580880288370678499647923379179945488413866099220497077882805462037253925855694178043441893850675629546654603962144044404841997949579160989405163559865492482572536058059745816196422770285978188625372298349562333837079932734759593039317148913124642011006069094949141961251014572853493462601404087499753642780951327208826727370932152459196125264949591415309550591315806715233666564403078667542453960819300423820230675081969237645205673194432214998837364750444626669943537429746032799151899130474310734242839810655715893702960533409438874748495651263369690598300721519421865630426546370395837978549505924911175034186314227844749932070101782094290326098587663450852779230937584778001763381347504062883489759607972993529456909433539415955886406371677493452570086185233793353725504358016266407985267240418750582108074947394168548396025630908455192819603602742207218114295121183770962940003809581069991843273112389931068793318865518988418034315551871099209872236879680520523604192189214609892810754348268116640692261741682187936942034709862290292976678428076043537682117271834659796457223865068315728041411965663867343066575079961843947836880020530406651027820998179163252759499401327204136755759987798561902218467278426046734579717529457534513124465635145413490404585923879856994369607595290318394709171638810233815173381697096705017054756397202405396590610790904941979858888075938027102969106083668496594471567094941890328820788512754512529277386367270002313058254077305609598310714167945694664027410165690860516477651831180992152895320332114761117296002481976149433660608550704153769567546619655074391961376686656005575031176811667992088143416783738270019036715756206329726180858853327916782000378458574795241258488080460366300323228349358551031058060606086132452217884566420121273946964432169982696488835478309548625705677324908773524076231493499966701672902095383739370905945145083324925611735395106192739340309909116611733687064698942477250177912211109769357813135061805364838498779864202747927196654036570240979382540723939583479700939206723068687331588954787305716718547696965533247270564152874772835820959636776284218388675780833710110021313240069706979116999556787567717191372795646146860917099966456704307250316952954489835965299644991445484832688687699346169039418203287977308104299481078735102988782345013675031101795332719790370769999670273839693633585150369281319487951436763754972921693229929755872090913085040124437859991772127597037181811655621098621332599323567507716206245743316949638868427008987632474548115837881942238906943660225392427310342306371548722464678121163920379715242940476394919373448965482466048801171398196579180712999714003545835102568969510255628618770870552684323539035134064055837731358443496727683779751649866269698657618560769358679755975305539587005460041755217424723131926620739857131897916513316207586114182324142764590318120714145565480250386902776132865077727656875015992172096325851887060266224913027884293863572752743966827678984749638833043651903073677350027702982631854042837199995588669563915225782890551446546991155683990606455704014662542793816829979264184668249187116777491047741521336037585808482735951431293791070372490264943445467534161649795216186284966060040301746592855446064564071180251669091022675824247883227564453337036200290690074540529325441186056847482680536964131880175331186036904741274539950119932780329407031084328135426765901609124711735210193995486692141820324518528171273140223637732109153992946500853791392475054767694039259964122783909832602572595133240289005110189200403426391721462097770192808186574657115332547199346745430212639710921121512877721623090612550064522594959720081569142412600055034236323850507044358811526564893956737087822655346599276210426192828644189242901242854022241033235319571242410674661147503273480603550725862924554435835999369425767974371750306462480074488583465645446283943957701286423030108960033914195087470073187835528377254806090742617719263431192612663867362647648663247320045744971862492966111805882723502741635146805649054410801477687288245885549223552225697749870821016739020343035474801115543628314442324284782792865195888031113199958917712565698273382128330273231149267665341482922410725848593785308088005632668470820562159526659335569199116878809416834188319441022804892874858650316912211915025756737343888666240876716567262111382452150204688624220447842306656983388010230095423167532627464555702295859666252015336058126154445521021186982436988753555938506892220533257868153686037909226444306497039847178979565569496284369689130053000154581778860299331899809118026684654347958986126413611756427451112404042741768578408517581458796382995562765690105386449274184376201568814423958987095374236315663935461250062458476230794506411986062618960563786987406184607879168196605762446595270152134560107586647704176248429672866577862372448137760650007549437274384397491549074644538242834358652789480710809429947454930762010139528866732204054868290644930213293215414083273272190649020565947726316626142771326496061025277825473893051262447883068009423248735536295238422326171407143962032373494469444686710209151131914611774864816910510295059408810117557113020676783991208622675450501421642745363761739505576589150272756043795092376345274566967712806821357889303772330509302099641162882979550974358979160073790854649110088644982079876688322177622672461432198416621220945296754070621752560148260483500207628167048767509615970747418085271454355840205630539631448883117384728303749132791861253154216157626005431529171486314471682486918203315839083477733609314104622249705694531640040140156020574317376187482145601863353137762003172351833164116934785436753701067776479938978559386675703240905926720207903341970898966926453478811731304910085097827881254448485770845601214012307906799463291147528610182364023755004715726759520565690400431301857961016371758569325575152698029460253164495236433760115116490454745730618313558674320720378065467594744161375314170176665288971518327152221602155577083848279844266544996458628383889701696371405696099645112278823283049194187860069730049137495909605725980403926564421322188099927010553624666531278474205501659427814132644395684634849977387008593478871218607594760240167570650721374263312144745912510528697255508000797795016757916736464825523400314241320423357529409040744491493162722168415002804076107993749971824614941504225210615385856733937821302157904212324965024978164881093557538638024676161382898736002090094781823648774931689410225735032930273219546149784277123979783898618022881528432088063719385408901379430165494298895648241637927181003502323327931647294646661966398558680052947847662541320843909123821407707502151816748009022381360078369809857019493590873281268532249231365800770734554506809167646012722144336923213265727753117601451738876317620630949144424036309721794546110054313289136241006918020778776191931228672095963856611299746155846101653009094149639380145990629370473598597452037685387969206010224719899637627711789015256945350306025332521281418434399997705305964657731387456270206981823183660135410132660415313242170289898013356766756377177089609830802074743800600995568718771565434964823413549734206157834665469975131808445863538783737478740263769452072896559573316764778930841108806985079649909527464007825727099062657475536961824112966929668488682509275266972116953830603679033412758669461083497856566976598108419653186779183316885401665844996948684453503630749139640777894635699834890830271252041390420116632645227008571504451087406992745832846312040532821276969662659758554824009895423272034792109551835283206167312845931086828128634050740399093451766024616982451761226528400430648172310722657885102202082987719517732789717525819535829856784046599245331827615368533135877265937935274990408346761367843901993783801966390375173362410516264596728184303428506899454416750791807611600360318831595844011352269493265724753346300229232198051827565264307152244388106275628384645997534542557005837949371780652308719686772338993880384542916744874375550037424193688306267858492490472191639285795883079635980295273933967081894132394742329848097941691941096756815468568745933449914828518950048669895600377332974884654546825130468525978969386369917066543485780429968926925684926171718692902585858026749534856762361855499664376718369528252264349878063007289318114968266966862039604016860617760191282504791339564222965361385249124423978643274192675032934027288536897934881541651057831237927363346460721664201632506687582217244155378081312347444953272456886530096567162625096262115649133091354180670632034017940208343180326297837841765494371466731057966976470314793011459810270784222302987690148487774260844839880448097545661702481784510097320868314058561499052293328114016867812722942534706652223422488871229973878134184567412211887940403061295199738016490985916868607773477687938281960069664190108895799390214753197422960332273272101697927084011727118707778102608503206163567525948631970739661580288172858259770445353188670784670895638590498951486763077993328449083889839465862055348501591338326569401358800242946435129063111600403163599252271250175214523604341161475997404222774979874354390648119898046171253529127155954127211020480316848152598287607587545769310763966182962535589999690305596489490482347246901819977088473302751101243103990572212630966367831588609449997906491062180512994201143385417447642405076174510033967325710123034816400456728455271636476770057193667215172948566213408908165653414855572549003606033383114728559540781392612357666003510144737748595284123363142521198679597379421253556466035443851693766794943018658241994330517494031821853867716157162616468438337291198368000795508298466993290339806229609502554153020704436023671413811856521792428541502323051732429519349638513082849885688146058050113684612080966687236406036537991709071200670360904630031634534801956355127259331185095069125813048755004858181718147585310744837629250573490150761426017794294234537167554115149185532764147220608886834877788447032171607827296377660177468210019194614941470727261766707618845879441106658039962679082348406214211706255641964851316407726355906067686344424911409233306096019307926220356149428877513321086681433898680452652843128463621671294510265708173415611944335273161146183299428926630557692502041792311293248372556128188217207747477726050128684876011059213187677527693339922320958454840167029495983995385931715598568725794591528389326258815178990902196132519926709749837014562860793931274564075239202583953238029607027946371614249862443828591186521332781079697351687115117572980125917847152988859989033491059642676951798156912646024559673024551402794986599840730203017829581557051854810805604877089186687691241276573009244837869244033581189920033526647930148096150114094901789290688002175881741651017099029738995601861868530220953858594622928486128877874760011024054312686240525642979708500391003927856475436204906473415110521611911729660810969455934829941754721200860557957381304265382152116827959618761485272024873522715641159465052813207829012520286519708372535137927365542955771329073269753112856819990636607828427900151537698219224644939497140771281604887468891695189968713205236405796308769528632014828356041663293443067766800718438471727161217757239920267751440953287338244202393104036209837995610017980732821530732672562283124861433666445643733866800730722294929785143559055629338337974290180628066625474369179875088386581406869597802488264904064162201344799717363434791669774394744933711133409248041038815638949244373904322394232410760521806298524586385532789525649053571573757702530465722020277674951226162209399414543951853715079735070910053144114638635911540317805685528455012996206400746754407582151463987707433782664542322734018315682494091224904254166031271657068553587711841814843368042950206847756146647440290633239386714385419244152309038663006635538210043805236264938216190764606600721121236789539698427977370547692940436075208223268494122800934524324827802396762029301450576361753019518445054529782306030977680327383779529577027878163251149685082860735369519072417758247854780597975443927361082312239663718115733512529832055205516046038524485891638795855978115666025207839618743085488668327710349380841432752075483764938607826301695652638459524965072883127245216283532800690118175326509050201418057956908261865830834543341865190291560591655612044715529560592251592327403947445434756518368453365726608702867615007154088275727365388181018738906795474589920654752689036331881698214542999319271546674101644521320190393936184718121621436879433929160167257026826423036481683417230223204270156708920518991071881036919418405978872425699993696575571310107522301492567149654531804018333934093206445021493338602020966100573165700869888488965836510040493015086435957063004255465316058628030553255541035670761994382249616251380451316433377021832939318474510729049810168972103819431495541401763143730098207222082161725124580134595355366561976753202844615248792126479836382832087572016406472115271048150905270828691976619920722588824487050941765861261018844415643413841530836914251193612359524633844605448422134864325937972791674275783590767748160337244996745681442247568563613518718282825516209741294859816181616121984014052322461529458153762916426033842746050496096206416032070206620056940715349117677043883774109025625307566525208200600840942740252147594531299360360294844101083930416661811584150967299459783480978586242202075057604627032682886854412009275418247970535833243076037256176061866461687533646825450351314663757086128740009002004389184755032960774675109951019308543882625638290893776422823388008886793766830012119033917039944768090065309020706939013683250769545990470798614034343709370192745291448234205120410412328582451244872140570203891458488777237387611362191141147588398948839302395419364283263989552412768409137958095967058940177149753473870547071088401479813826500298504312673559474964208965537546391796470631098069144181857913845882334705674413820652123230042911136472899016595163014121244679365738946165551245590639508399729962011052615421238436754830394441351041044074063473474788879995326512039221947456871617351771002150901332298297091694110855899625493096264028570061453639837546939163091047005735150626111237955546046215449894386819956772233100704388749256753693454900264821775156007951003103525120592563709773989680609914977968492771823264381667694718820182866281847551657505176246439589278838668304175051580462489550888413407120943562566528734387658925468128411523337001616899857303364372471088440316386948662429816828757226941028766174208806805297808379846516896695531402853187324819182528838308455063036880108276966305246586322133650971558363882807997552382776885004346740374425724077940526098044923067573341532373588348286811619912474595391960443559413814825497685685002457891583961943764188402404528919734855343828128211112225657569122070430356078368644663493080281077147602185274519947280396690485895839395045807948734425320462867945346918815985871240988943684587354366851534227462930680417706448580493271606672235802298198190054297004065582841300825267555061628668212360742571096354948096008960214343904194551417802996643680515847367913284342883131473144423656560528472963812169259547867014218010273785622723927319657762819839473970609050892875617076745685283855462241037015356916288138781444688236561962454686852198969300740811912955361081546905966467025192899102721364764427654917147796434672118797240192807315219639096884667146436913415942244639442423868648972621194343999651747693508682408815349740588881727633764919409082547466264407734825391430192115599183866371244765364147868552607468065259484686758263348430782218691533362819171045260817912119016634259484134245669839797347593665497710305273528549400909278999941692284826829973421327439313417700560405388122543430261635225290568881508378733719613349547782576760394897792173092527708369176568681536894628446858469776611017576228917765194364880799705440879383446393510733654948164337919525265226770446903056232625099496063697670449378486998691490569300038208771093135454261419319241917602492495181490896355134081329570784755831126408318082788989560790569125082945383750151497963166700298463621540223025837924429642385946695654726197051659629365147463812863005438497063716970454438308479640341829823517089937031011108218512345132578044036304114403218996632315538381131583200815510998352555206935246918897399004113164451273067292863660276928275838340107300011587338904372938995758693277847565226305076219599309148978723166117060969670732550731086234513404756863392097815581651781750867375464147330770944506993492911009380549051115495300131412634591214653991707195279299938722458918535423832025160934534626448694200533496207556002442761093688683780348862231212193490793607677627124365141829779055892385229794053111464668371124035942722316103301762529217445164613654947849109265050238115191748898560698546669063138189990097282910414958033030494546691309238319303341792935414742849908504995728909944749722830352682111826788206540624070015415314603025458783739385454330814140389941831038099159768122446742670720490934795112000012292869242906412685325247013766968322311701433351237783831747007503254710625817022676703166684021698305538448561981583444297458258006109213600595022391016205799228394787195989819769453185915487731880041474411459571740506703366190786762209090858764046837339128624760049637826941798207938812996279966440458295499791522668130991825813208006929365824583206087448750875793944114122251882943494122751279257169444571468127994535446423375477194576903663279895335509601329052771287993637001714211257735828661667124533727162067020675900819563775629167856607865167930925340993537777107010410959146177057607047408919679143954663718386227695855452982874093693281812933774074218463707486978229379225349851005397017201225762700598637604800921179699971434863566564704540523383848190919121507212817806008088554217689073521465709635153280378729744169628462792071284664944976773052885876622639717705743719501587126321057402551826682400144943137659156616600436245671566075868538557251326301228837565563021484233218481038704096484535579894515029025009335987727531661801829652609075719735286925227189114773810888589976049863438088257658759547939515929235046281996327777699880336625085297620401307006273469640440807041519738712510430587330095375592068533002891600201382977244972180383152448875751757869935396705941769968374053244466311556386373327999172878269492977529802420457574988461792988229351035076187754123496740029536558535149263825899730820204125450835085135663856201401110888806678479527485217487886662509140977486741197359558474340941813772903810739037384918977144781737614413452938626955725656813254359711382128114116910197490897741633000201102821658411827428050519916723744980433188253196292178837430413483926558096968396675676514090386029326917906598504081558889733780550441301695232378652208014437815012772077082506652587535744417424170697844370638107468541347324974357728422958064525207108015832674209049127538666520480010324772753922814680631738182278427650388258730379082952947612191074753215164183582020367043724285225935402615532925572533833078401031999784896938740818560835268098323870359534690825075883247538103095206347340473766582986837081329478077835480956613283881731752395386171199400414894688035232600020357979836385282507923820285704858072855994732626679337027659319441646552420526098847346344461984353165326358911272069680988184206525217001725453016795829910464458984810053349118966829972964694757678503734450137382054935765699402193219566765031453153188918776315578900684543654912126964968891525988412239709337940934392477935210276827622400495569695439813107112441705203752501670337374860540005899149642011971826414668486197526826003263171791787394514134743750148434557648376932093245839476739149329666109227368592865245309826768557183908398503007394409687578766153258930960902951538433240743940742502430448269294403051141411638193201421389533040142770135100932441798992891526265699135226696090824721514997448548577851999614442558067705453776722741639648869696135119411775535619567755942487880694099476467707298329843908887215267716677455197481349795750686347615787791577104670097880692371178718624869281436561031592521637903160904803770827294844599048506501914663913074536706184999034916092152201424389999201897669812257494539617258883562341079150864525311492364083748822029131837049926058125998665647040817198047091406646020955753141278159706173870380854116384962374175397747141757188687320278462564102176491286772888213917767352536047187345733784408711261598227559710844405802131932711043476791080710547911892825287197218713717993901571219523375080606356881040050423689896567456652798015587247366623200838158441707295172248183276667048265463363387001872789138401452319955810329139632999594684931889696083447149480200954912625330154579248387746236242318546730656355689069309884291800231152537719302337240520009602672384338231459986096626988864967101534413288751171172576246177504240649408510599261829329435007409276597636134774992216384964649844634211869852504647699897500032921843955453343540743361962226028562541388387473123552720559061311784226780106359978552800691885982680019599814012503661935122730620579710641361023475864343022232441148537416713281733016302048330713159180643422595625659137250636652285866068759428381477625929308488308819414186950997038825797488383342538746679582149686050335949419368575890665285536782036044406701982192247151815407226609402773359470218433098432592120550444911631733545149047566421788830052965921134498354679814131671673037481169347139992105065383700125221114946559915486088269692054529645246513142226367444095240547003585469817914430467830333321997321001730921704186837718059577505840491720955006699279486081171603241139116981283075336332210068725330221178901629247131788094293577463932848681753345746964027507589566079130764834327508712153100835013212597807361863979408856439515468297075398277557081644976125554814819935226844420924403605935366357426259631555117382682902033896971029490545528008776198098027729705487528287961383789756798579934244149106261490221882611617621360715244830987571195563582098448429455995713135839265307168633363580062075611717325606480083140072214727922982014665136292104309172179714663208826853937292199242822879055129673019591081473960696372058215155384831484831785821931169758493555375937040055010871391682234230487894198986235870564782353065590030413664715399412726481905703939129804259089059235332335322507082406477201031920010866901117817088176513813618827137644069393420961912733410638154833588531718271848814107787391398344080407553273335107590767186154979296737809004946417854109955604273428029158836960388570476383487365262590656770372021821683396923427835871633601793653909906441077477873979273052097094407446685478532641696130282290043200621353333492247195344317044175088541925106300112453243355538065309470803959414323122501566648809835833308234413603811443217944107953597472020929885100511748770729152614395364351103575963416110693355685464718245953837064367414394731210980659533095356284409462935112251592534141131855525326271015697800499608891708347891142372457495045590268884716561586418407688273471500038604904354273432828953315084894404399398816108533471591058098969203836894521768851108481852553214283546028800335806119833731777876996329849141988540909222149335065154051733340115036131886159992004518312650349567066539658890832379845675771225583577072420382106005597427092699942672616712192125152710254880783303434137235082263366025794778764203372966737993739368249761089178687963293994550763249226404088231711655768946635876246092661032991727492055156717241807821720076967206941548303629344745163800248077395940838517191810375016180077018621734269559962047709485958453642676830282078067698254872494581500939939368062869307951738058804614173170633418776455815475331086191012352825893071926741280320356488317881777406187069828734242957258197195293008792870283448189810071824189102420412671202599535520039651785911423741596914843941142983580737653433340674149959353133076511779811299723365109029678602897626531088106145550895153193053699380957387731860571361120994550295024161541644990180717436057377796835512867871370116121214474592762447781007534472873044287065382435036430984198519390711893543256870742655516091176580712506266608655279332242407973429372774139799813116246397554793088238754913978926017957047696952570852585578005835979525183872691859890270789400598285972464110628565687286314855756777720541963065000692889146493727604441843884181228001593028753825627786662761850826887333588291152140590895507025909645706117783395824972384457362158224719351804841248386823352812362649179925013697894300111432565551321876398563280394279062173204329084777325750056014680005267242572700526942056261031961319238201182496859502911291206627015383353479812045937086158745825362231719817584322382109707840375578518570066308036449192886475601761841794815537588528459590552199549988446322548369807305242705968873935458024319855031865117853997869722092542561017036402512521503180266115306808328395304470524139382164974856993936507420966823685522445560904803829251908246315405611443918560798219128758749553910083006597776457414139629361358328808326124281346206639589901421510656689479070080084060326360572888578491228576085757029624980288297540935579849527278863057428328771284166073186060846072456954806153332581875353894865351458175653800373014029725488574332975684225731810681773590986880918173940534024408254907158066809564412796277387962363890569603612623717909010515652528930430982202911305107403543060215221549284437832120251757953641478233733114889149266820530273631289011269724252348575509202347484722014123920905985435800981825019750093914348594292867685079934318011858346218355183146002915212813432995241568734203933764135475618816927275618258215031953743874067145723080117083534567318654247420761538790255556433230197818406432750344831449397991721098320085308935396275457794348115223742145089519523499673929930723954764026631525076276216017220415460971135341198902486699810075841576377754456337266285331296323689303259085018521747121680676978591237704548306881787089158942481498875985810169356986234011231300983236559992550451124340767339153490131616715153534243427997812479656811057167835981111752556198325165434091476243211624409371330497380933402035289107088710379921626031528093641533496732608083381616172903955459871563034395944132723313217351150365649920842267357034988281902678134526785935201520450012930976841818842972581116283968521054597651327606014055742497349181305873422413404059293747789259848009644985990155515141044367418638678242996110718010398083856005699417975188660060630490224403263292618465413434973936137745941528695765412396989153769180555695541428781957559365507843828947163371323483891470394013264664727027137232640085831595341867106346126573106767566372923169088530147677830513264638826603164452028934308810123675564357144613594655267831334063558965843426475305058257238808325498538801169221252702428389419463667105645986522318205729686271899139726875983302964474331850244876889586794929458440614343427137282661243932028418893474495320300668798812988265853003458982928990117121171950089852768147778591950136299204506243829267053116515962406534743862156895818539167055861229339406841755194135102027797169595634036239258865384982992540026927442186977481627874482010306055520674053667947018851660976748124564406811716091708634791456935078407341882451309291434577119312762350161335933609765462312151558210006019937443369784136310407500140103448360527473403534998556403112347488316786066760914444598691059248784300693395308618577630178259932089075173350352459336978412670506156880544665610966344328072749859886595164719194048197542504012586363902573356602030358839720256063728248088942462691872798495427606723150910092944122822219879612436064557478357663923859783280079723079128539999835224985306573535853905489041872047006781748508445373448943650872654200039263716455197666384570114646301602068253752653216059639824702165077771860529486116894470046386819363631919341479687080224577268065435233883756922443740635484918328837804602338002101633696088109241105253841062069303875088682724860913141557426259481414639070516388023201442422602042728118914081236896314259680535925477845562609874415354500831266782991458641474339594933200893103762241947560623354709213920391792812918233178204738839839320112787076378127481515306155090595421085028094210956272792241773390720131861417747808979487812043161296643979389002179951678414118068819539006003656991699931127997320688940537947456642351265140069258900700035407872047626628370177713618227216452604700508080121257905790653344371116680838394015383503328418957575971732024376834128378677721042696120632968300004775461519961666077905225152922306001770694145903821860096655665809291497636455192564768076454965731804826659448761696780678756681035928307179583106001335575398758050741815777673508922904333649455686326137626140210548572226030419559512886396629929053851759676635716751574665378969867192702147238743478582250232553969731114929780723812086811803838261791172123438057870831869908720660041140723670064684116228120252743219559799753759350239744545822510728435702180757606591467150739377506964725857845330639369912307871092296820886958309038642167041579129217958795655004907063690050385453668311356765537956662709541878988189576182582145802251853801669531937170059474777745956757857418523950540837903970833195468960416635708054036963499720291000731406990611980240059770645024043945079343720496419255264031421152390986622000001052796639773908295875553458436647295676427240652423077823214536679654932585187842884086997503481846314283623736843448417236148972715696152603548263354424434236938732556491148619425191119850837963918589893238344515873023235739536518021432828188802821579593240937108286394567043285734779082786372125770511510694806713702727601573696508665157127192844988134118285024819576653060352954322094457760179163517419979565622438663848910816676742511782346813727797291259358064632554648603795752561189992187019066865525957971530090826884516932644292815285031371210478807667031125585900431381169427608245533431400236931263482899072134113940841837755886651630243441702809331086929328368130957818682785383404834339609083461056004451584036234136822131770374913090404884895240740589595947163815445977386207123700612159172593678446865290985543187105118337262145618386014847271667589338400681556563220968236150836961004856383596227271296885633426349652825609212207378412964059806261498941054703303689586209379645113093344730343795025041249343094940996636529635973941691646267703955335923895647696407153085993765705472084700013283590723173400937106739404905489587988014164399331189438789138997520393164477888159402853553471328595325893282813162735594807967760613563998704818533409378556506943698892920401837659147367210110049859344168181390851263622337713039155380434707064723288049769384725784402799918174782961772943445860843612918782908229216450293267664446125605105928605827537002864698589430937506014482051616118019143405305000921696752723354278319289695949064304179943827373482365027602578421657915227817342399382213678461502790923487611013947567666279934770523177613070330022321411925422889578550338458122241329961889354193580655534806199129976393341786089849729046277704701343469003442045749691887330195289535862183187081404827362530792982652219521617523664255831890583830750579758568164565047714870188843112745471758659416582370309742522396683636555269238049884442258434128136775378116691771839093252937251664882535783891344487281542326266784832234864147349795453457190032746979877457225704965516548942357030483294105869501382969711085517698786732835538884152975824088163651082101665113515857259462800173465448686097730772806477841912246098000072126529992412767525527617335395420541325931862385559685076560342372746533560552803035880773001611580169852845257416971053654305628379997699373472375063732581226005663210654078626457354957216228592407662342010533824961837807499983702419654567889625205727654305244336684621737479738400817836872574704668278281633534846774742586311850985574474316728314358164263031131476717930096985549803052944862693710630483566864027885489847422479328833820924390329017549398577446403574708872731589369247240100009974464808939383094341009513733001211022964193028899895727871367476090807421700990155652392341540991145864737747434788685543710312724973431748028737904387428892476498017034888958840725942613775511633760542629360605674426846590765001004119153944248355668116339961285496827292167296932842979014947626951305846106664084788515518545206972872239033688394645026830483811216758998432932754316493534865455463400436803904422686559781317954721990393547294529817255240610243814012095884088751891192688265715659283748314337235087778073699217625913038197683468281019944276644977207126836902452697101687129873891060508257530426281868716810238606355819225915246480415841061614802329851957984680524843870988822126982931848005797570202950053241761920695116356049134505815363849899186222366801420673517747674685074396654255516179824594589682305615735868952875160366143200907320831781461027131720526765748712174992950660163705264016050510256827792775400656304986996267887402175130276848629496500072319387309984430928974080848033958283720209655505692321777968215542099204269003632046921578978585652689269469420674290718057628058487293347852358252648017477786025507435552522621324758879085577729810595693665084947581145852957157444316283769157208424808841469805486666393914767626038662807864708812078809342101859218502339269875678876639134875771948491072895796063795313682631839300525260350974224560039376541680985063797523406783578001409350473917666155131587039159968601818975737677121391060963189591021553450269240915541033185204774086440829437013965408972572791890201245150620195139456303280227981471595286004490991512198019787012185656035721010200709741969366647738333419098420728280294693672195917805841335006684199377171999756065329546249455340610917757089622961822569774589775021706022060768306818575792162286659624347046521827905804636463319178537460126930044942099281248794718100578762503990593132427563986195232777168601613369302334195127327298410047083860006955559859064019555982790269306956592413939023694070046617168975968274480777940978612686467691467557960634999202234903668395266459783359738858953945249293674094497182403154083310063184565458671113201128674850718277406739484059267675823330364389218772668020508533828765802543852517037794513909231318589881070009378266898357100259272664650550648829056500550930598834876318395323812351648947247932039823701611661354693335395423593651037391912656740888750977260978576708298765169678485945077790835867563127561526957335305997563797904192428085279472147032963233067333123517462449536664343932237652500117705029820283968126233006109069697889806322407142037203226424770827873844046849136206379599959802846899324897140153609909859050591777159181232674550198728106110110702613458491130717477870622222276524960647719608138377808969883261357129984439562310162304937896942449611730622709780171830964297785766222302896566888630144110088024065950851629155076262810927210270142121694333319486617383053623931020016981895955672646745364024772575543773217203566348389843336252271054989412142056344626236288770804971155543044825154460589662006980218392330603950536512375903976965394604367142236083863356237264692070810356450975189100937261988133112555843665192265569803097797425956937235768415617103512346510164608184269228718597052302182531664713691851037956800702319218352158268427181251887120275430853123394349626213288082988104364473942401343233662743460802962247119250630454126997676742322154966072152488959362020921267180774307527093843216391853595617283449319439902248303457883595788836149477118409055934748217924468027256927153730667709149368060406928232321148060013031659376909215447908243859604961047530536676617907720956782484713662549516692966042971198475276574545104690955522065046583234847321950522215329105443615491327995100038882819650183729354123290954649557125244591072828895139600917986222714862339049780995407029182065984305931811107267650080204287742031093129550687073295775239174339325071636106095718978561749138862503188497867843212201466047407738888073925852192112481596808743403355120390277739610992829775081916291743741255563575897920480442765399474642814836989800522754463689160606393342018930334338707179908886118418005832762351018947258966389629005406836889181645286265690239806388062629004680980146638782869057670773868336405212467782415581304572499835976803604802336328491164113527772039875439507340908632559214674930169687402071133942571287551249262874417347593023845557502523804898545202280652321944315315969426756521914501462861892716975204888487488086990193974939309107519863857479002350867859189561497482143015190426257770543800913469123808580333539970707378391299856314628880483887815479883403316141145480417324223162258939521010291826004685908366176095797115213046803406374859218083111806668330129638310522529024781519767500439705154208681927345319411196263742164133249075807145650336930302050192816027549379082604488602678842693765329641012514088959077402028333770057964651724559405965388064625656560621253604440621494692354264048573179285964720926820479738742783882261722725761363116297393384379895930580372049615312728410822900642835496277948908020462748289249091526546183150113308519543760352438721205404715326535124087097058731501455331066009655242957221240681130906845239358810326813134009181506403137976820443953115068863512469166015986248915007728296304033272421739281731560547939164314532382846445323881668609416039878791755670436996651434394360760847969229122480505233756089504103882226161171999959266508800713396962387626078913037328142219132202088446554431180417326395761688548095585939143895773830662102574284288899350861041040647156652782569214945029588713248204368489294323657005945173301656213311417399574231843378695234469858067790961948066979786246749068869204046845108887579082545883360959312025638082486377458249579745031104708660828505493922163213443870125230404918600767480176998628735726807042968899377939866630225202555629269875228565198887821430153640859315170735885216528640142536783384155425500188059426088899020450120239622725174857638778805295829906275847202084798201567451344131499838434854250127240746210044727072660700738816183766717055156179902039532726716375616676252573406432938573191928187345500070498511646249061374534682478313321613497223221746729114168358955931884391050878325543727487132585618536183829369619740557397579317702745594623504100300880638298492968109740875727639154547111446044256960436399059528041467183684170171194941236007212264673790580070670059303128660015840066222539197176191605184535436635008593392484477054018378865054924646212948380157788979829313113106954442238815681275710436968174644119221895720079636417812131127267404119981004080360416151995735501808119856314183462007449993404762322480295631101027617711086701897780503340099358981644470562471008149918734110018607558201089825743965667069913990661703282407866094309302661725724377009457289455755091071377221810662930872597318419628696711078899882404385488592328528605560751960974897508567782805757729213605042025973908408717139029602403358164213022570534531388517811798820975718831032359946789316979527556055817674933003292127070635574429618871029951534599824944589933947674180410887035095505273139613492596136335137209718699944315744779064938203728544751389085148230379589561228770753271901577849150441749927845219082783392068721372027461820993808947956174465645001401346924156108576532660914123471786756123142373867152083284902675600871274307506807464458439880433639732177873336308650715420008682604085111163846612520741481627422570539843294626328853208572500705986754049542757443255333201516751670633485342291947047705176784067833274181497113853087498824224182650764420769462675525543963676405366314900590098609494516680147677499959520048554806086398937231106725693843940870770292131012062299266209387221184628231047133346370286610823092078748756754873195980249974117433086002732831415516299488712954739498438278815606519970307495430228116553218607032553612877415577859175095801328836904942178046714825844882141975889574129645040423572710681463279551203169958155785021796563700653684215574313610963061017372649350937744872426430496968402958828230127549211897470376596293502516784896677937241763535470142690351621736514890322902780107922720499074127094462739845182551554431976889590933227747964244792790273059898965273950221821491787365847389373058594067584818111650243973632993515925089354669016648715039139509302250430326834163373640599698619375168762134847785825169329996814468810617532275826303785727668673408477227693737170105054213370475297938850290325089323727929630651555382674201402695591945778702231828278226173170851958613162485234896738925896344985682390421964902262575276682727276753052605343985672157840707460460726543393034459805640067421788380805964710009814039968507947698344828407163871748574178332225844919335393371408323543844522464367264292617860225528371374008783851119911782674234771414678063449830348694143091918331600372746701455777096928940382012832399183829060173462323285507788664790368110629361336960256607565880333028262979721470953486693406969861717478878501798901332416344870565849996063660279905043456614945468723650514453139526408502216608170140993733020247147142914145226045170273323540413811264586110696496364387108568035684315695941076095511409343434791453793034974531948750589738711024776005672594428532454088519331285170164802237749459717190423829327296312133084211763735844998490222322453683241173568007787354629224638124969730878274114913406726171285945609390625314047690098479081435647826882673395681354667651841581269169543836535696557746350946620664941507756865203961608760618523717854817256483223026667246613391557892674197202200138764397668608494228313152295293478914488407235388064931809353025671563691497225758071720842699216204299230212210299098496443813589086396454911452792359661080742546601508372649939163629520618186040336868043052475062085094581840275745688813664676384182424810270926882926997332577241253355404661480168679813319239845050247171815352635271145638493708822434306928741870337970105051688326109519196769642675112579519268726546455975020384667261852107015214119315141553566190087846913828370585757642047046729055304691685840063105216160778581257826822026016365139839902940871232326856110503993004381950862179987856588797553233910142241163826118443286763910704885034479445805083254720975514236477041560408543955615960019510921386281030851923148413692938189596820139818090367250475957947338655955423566808933329824921815349688991290620760882387473406927177898919361168614725220387677742809348798565152712613306037176855225606579609544598669693113806835138749906525849795929551683531874929799235019770441799517315607909291606992060707417022428633107031515503905776376867758773822851096491299316310487542419449146972164374193746781300656625266081707573342510633474867387830087488710353032011079366063405725718632863213187880526338880913269262872574467460528779761338543875659280278521448875334895333816690911132355962523921087907496198896578917990753958627043884537645978396683552227588513374645331463945784086852583446166477401483983558720627759268888324108881851881683034343952789653552134855935588605605925025802778758871612529451698536901892281664662585877656289417336220277542879537977784804585346768344783212872821355353388076091757927869705131386019066814273875608694424416477029689932567464984567252772037920534119668696931355745271137572310954081635789829127989894987622754680273320591420263028484783747690417918476773303578534181668040555793038917156218168593419969958477771431331908075573416360066837347765981298105226415958283757216589122770355024117553370691151682136402887456213553389471495952342067588562534174207439121598543419132073944503205453296185210596752331063940927489915785703327388479852936811300875970323173192485216130071497705098238259223164944879979834290112367215499310531010420063619625489833900170578541730011803572910728587138045676170157285307740527231757094359340362267005555052471146685088866370875047477901865662705642398744639363151387080197443193517586221275002529715914138447299936789985661691174868515861016964513211703504306404057049440057771949813458386565289244732285080520692317885021529462818444243377262978095409978269479401598437882555340043265865237717117888725631963496365920810756379865823105293890381320427634966292700089586954756705380128124890738272259801328372563132307389613090576811141620843825729201791437994097703375327506415893616248761184470870534068070962596858771594154956510234818734284684670990649461598291376115877767037612369527000317123415693667608669138677991534432410842050355236941724308650554228787679632955434609286142309262957509975611193416069575293243343857355073650947162777320277927110468044128238168488387498542766636271458858671402240612140844176369198249874561791495205185623011641576004778103095011479301960171321058951312362738828918557356361100844857836048897382990654512930764170113400331442990118052537206609946178344540840572770807093094112254592878665359045415145537126592919809643355696647624818144870988513052248362968640941026769155150372764857946436536899236706680803014714722494412981239169295210845347075068620497096436973426421274660066912725946606361703995419301613891499454691859177065176692144110930886384157956645027844654817806661214861405312030646724517133374752096188638825312638610972592769451724333031473836579783442970693030531482593271560536087690962868952155012204157416984851668415424054959064362942434725480281061928835399248380748074820837989628458785232669083174258854085430091101620597531911819721744769417050642220874266320449438247572051293539035020326888041377391243660901245540627509940926180234922013541074525334511182674306217197883091224009905933824668163949929593563239677808535915135205551565728520364839678312949090734745137268234366405626248332487260296371941758123380334699138394119515968375908744579336497263975771021920939662059837315940254439461395677678900611261501931182303718103823495425042696226092343462774563459159911871127147349897262475701167704899483846145522678793049942947071916438705002836007057486600684459413798296037828111513473800770577201403565283913169367128173275790192430080252628099846125074912300681426852983450685592537810964222952156254925358616772384134857525115567351067705728826519468769847577905607758582281935137802684236093213535843833443539467526394061785618548755955746082573430957746876781131470533254845477041101835658187418351254632048141223010098338982213763261540719324210635445352540007206784632324008464068832273602692943657261798429300487194202959330266670756314128910067813453742589458074339351313956225266642039361401777425943948569775787528995003815595905921229505288184737878695305524508276630078690146194318429958259209718133554479525959090877829194967429739912153247479440548498641457612535190371343380696347209630414918280100622155142301838427761342575770409990698087613815770527855738627228638804393397008227293127498293908217265735599752304320193407163410631379390411913564444485470657891375023315743043939336947734598739763281900566100558920340985635154085741990004820246863273907749191295708575423612298771449302687871798435675404903838523262354256652192887537886802547171038902160042459829197235610372059578472222898057856706770519508979008554000934596642100692170994634161336142889853456752648217494401702235192161125214190978147458926176080420166139190370427763250038275069662015504118218597676576682252901093578356604150949871945027671138535491838923194037710886044937596850135419586870274528494137033135127327292042571607656969497376370389749014615071937230952015350378656073343847265004917044645368681980054559037084254680479818701423819070029200914677905599816079790956829461759549616209370051082052997855483438382796292530038338905140980147157388673061446655328473303170001974614744111793952312983278489629488971688743951875925965221511294141574488064205484228828532010440526483108590976514175522909397419904870219593992579639714940709283258581286203807335153306561810388266824854644140174972104181629622598280338253406891012641622730747130764886046629538439701107060061470904816761944481849961799206066555593087863643053581530487119030291398792037433998020929172590625215405325789293851024179929458000372459278472354821836051374937734730077013435587159598487928697489003718927295679188752981774810474147869695737001848886437544696919559198163158462138736703794342547600847434507164391636682267581058138153990060352048169795312572457257302161647490884640732266664916847723976171466061912382767656967149079072191801321733811973791535789533602983551320927119313383601499996217108433889505499454776259893134499391981440371392051189609080942509492589187229851708511054793614320484553207223902141979482115121223606968486106256623741770170110951669671586601797257981311655828427095966136722315299310138680885183978281375366227410785626468765386441612672270416198911835337376981425386504527804067542223458736174712240644119663376376227597571037566713999570672558334608667407818247970819344795934442491353383221119899283186950580109057387521312703963981857059189519647749193342507647777225111808810286993446170486055413896041144502432518887219808211492769013106702292765936359836203195398703891224842627994731197793479223577375943062960172315685830941999110718226227565584395359433933267187293805591138834693366343857784902404514995943866700605725752471161211205751528639155128596332584497110094435119641756092980859115721273622303106583616276184102713513161400437736595773061990266092387893480601280884008837768423637271142235895432406072328549299261067643484688488011248336562540338305215647839148030530715766895659050821853061042932091492428772273991532346779095125514487702757655580845573518819680126053032422862303590511840210873534113466118923585481621488315244766902131848625372157846825208307695962731677078648403141757749113359379600588081694137102966244354379554366804369476806367253808415797490776922546470506204243939249951536605773679068554719204429873398832512836361424678635296858733585683820051867276515880803552598565265620285066650206913526667585148217136286972171048206336510220472042584416498082562905768250683752459578540146673463015764738959148045121857390358513491297736472301583571026183178266969239496296346106096499998625823314459957115258992279050526948614238136468941729720416059550552273043792340429305550508602481683958485694315565799704283721615509365460013174166790745853060482802856581330947461398222230765595887288138370481934488837751003279624756383528984004119444265681965038902387553401946128400764416365182770864681531257169139873051339392569234382501119093979597062076780086247730136387547320719315444369687818136759963700789238284475459352868210195567039721127608537872219932945972919121418570965123687436343206018185796376431163135492441484204653842358957121808337438181940029339554714880453105445716393422006700831517053361576112898868951181957453067644231672222232685330561031971497129016195298803742507498101332914018838529260029081171697772644756209636920785938509232442108019244864532401265784860585944708654073093928732599749734426360068480441505441058231842885819693934950523508029744266367441734671820274055272282897468142196184387061958450175969632095868340973001051971913498780959413846364184297487339137635566495411008426004988783082958517817426310729134222533919359691685326091029010508894056129503075116403272625416606410124083528984348105208223489905763100694389382611477608346732275078603801933686432960962007989666761832360565942930450137928328515312996090904561600603478077833434376296836565143008535527288552918188332216984250621345254362338375200553241771112172530115389352479262094536587678483874277604996389829254490714976823736549880845648146367564573697087151037537617330080276307541812440872315224135332222442569767634001381208069694145352935215855902460260162268697991983199649445293355172535532179280270204045127648368688029331916962776912324203776574447396989437226669934744043781062132379712943613901649889285026322037079933055989669387579239734463522237233607366270333903843568347456295111221804454425533627687030028231326170281825546648372692874976432539172131017484987957482362321941011758558801943273639575115588994019060390044733162896915647432266215180616862595825988183966456194481676789131975933112437651161433756611452835964663629049412564358598996917514753637559075756383254566345486950422028823463617243210527892305612141151854053005592195544777068821565255886386752500947865333061536651869580501646288696023448163656110306183608610909127311379317291267187793627932233916135745847432839162629470346440887119915225001683304741340524171781144766259971440467472548599397991204989866687858844784787914695401106937455210313768894310495893828980639616661339431494698359018427167995400732960529601570185101804305986204937381416893409164964490906613971789617211330539821473674764035952957144382181837277631213152722185452140678503545828767971856110059516123221339361684177406736139348205474259654874128462962958064574573679585912573699853851307757370307053040499558875110610088813863366411067009320583489803311051464144703258402797963002098216806215280202907642962304469540507763332611362043063838561841603444003974805043856870768792258023186124840594105314043173196572788200156979967988342904673468519950813012162346211486317476123120817831591123023149388457888044301298906279020328237965341851947967921580322795801920705295420837230054768547007626918392896822802860369323121803219701965740766593431407506036409059831536183944265567392601398800131021950869252870510760611755820064349964264111653658647040365328909498254363778003167493423777149073298022936727872075926838498871629083442722735027456290635523157946187309980203585936291670695546390304340398100783894988567035930832608811222422615537827785088535560000800156240214216236584409667122798935350774078442171797064411164837510353746409038578662449971009783624292883570874813385442064250062139296023235905714444687291651655883062395608419222764841170909530396517714834029111670377633843458533752364496018399876830892929144660474046640531738230225709637347322930251036315297732942369379583584426180764524344533262271363241900266239682570811462984058332901902211920688954118058104607927946597032068812718482360169682799250354169298708078093898029555484454881393013604467238516905832188878469933485295618511680318259874063249718652313548757535701482552226694973585251336306509496043796939077319267700416537309375527027478977837035496281618855995562144530941764464587084691343787947517209672409487395240767650389750687032036103780748291330339426811365604720054054199472706202442254747524594267864978399876651144910329938737505406101553276334178239546302843673361513293059861659918918794446943839453294580065349857998464130786156666515641165300409344418406449248225045632637380567162668396131864655055569702090113933962410493836019977304996412746307348587014391680290024024682239788452007987717946471858804999459151156397769524216391803099802006506255077539622025160577100668325872477129690642860333831386287233661366252997563345336758932067681126785945108714896602710796499670046554768008349376622096958731632402358299754656855973311508723530843135438330662485497662598987541721945210823162970989604301466206097441590341573385275440462751538722199574117535247676415125399415467423526419056824846144254483831138915894327687889091890856233470848963361191957844592737828151130664209428870519216119192780871758612096364272033378660622787620065742012397504770821010403054542962842943622238275765262887944470271672363404671788290126790649226643807982163675255811835931612942462281732164872994583030208892065644441940455070786486290833560550135049581149416454689296313837687924470077456568133904304226663693497829539376700629035694628244593957784230425826575211441401930915077527480294704964009039034240355010612721940657208847554803717204416828551116092534930097831680622796133487217075210273017714634311897520334983211097137613637336688196295218595350418027730443305175122655568141643175604075472657010071956539632094528923194390665715377942486387430588309553351823269783220004063667782611243814723645604409657253065794395309994682243799730695982684747415888646985821730175686360688721641511273487279827074465618213230074464963825572817627372481945793311403502830942672454128438623855627169086014506867876466903557710836605508714779063101565502453053671370751702061801096037900012268729614688602955873173759243839330858376369049417821714985424654150678306697203784961028725116613140238562463395189136696498871733509505854490656906359865715233197760486451560770390197544794553522214148095018160214529515216323185354864827958345937811850878562268895771344760150104491881680132865327571734891367938227741500709055276241100882217880336075461335480320038763812939173785956484460646087890391241357962769048824591336973996832113295498223965329672238301658629991561541966737329683783618238220848851593060642157085715473422052527456601245161053162937384513627077640693494003367601810774513646667420545013376823436354367831252462140231817662813200267521674464262531906433878260829674542465847606428565515402134697227353294681687646541821844277164600725504552035120850577122858845777976067913197466114932518639177426166830527183647077738016372171002901664358583289594213795318814012222291839736630439639926120698638055105924935376111669392485689449625374014987095625374629732455749849338545461148775648102588909879620686211319888524965653893359470189718079008270620992532639564203449125219323112088174759587078484385229290972812990072553340210702862836771803773574299781770989295110658176845913519736598082496198840324113054998141589354312759104394502903217474358132915070114237319488311976690042955024690888876924731573316462294953898359534006293755501176404224730844697242859370274308119395915835189338085788276314106992530316137461992530027101269828556661556904455091308758972727253061737069196364303539926846307373368129036878461828553388850273003944061515170914842884326974712230082938247641370269999477187503619587017541545254243344827227610028072642135844783404918163461638695761239402318283871185401667244307226962439836357847535365454862100789971429689917004882112820866566670247119402837438468942933415762284276868807635815755043988711070228462230753058798515595033974752419732433490620379652562194706996366923542281706073712080227675194449954411374230835816197019683084026142497211377372147670096132201413640919216401434218034335021853154624887871675518586269172934189304942057135333988775521063635894065802875629861836914572443844425877304903298953706620831855525691093443847864786103799881408876027629470652012878018558433555826894326420158823719185870614657526288145236359783917768514756361704109055757898909174539846962862266166879652049304442122297813284440191255057352759835979315306583326234972625010042253181719040358571749978199151376436510883876094139031771123207999558126940924560119339689326203318899752182024669784267092938435596493567147045490423051106738681736479857516935617804419735325152486707717562621440571545164988557785705255907915982462074525039783471236374621655307705636215116342485437827555629308029659211294704126920479375940838405263780375351545846419824957407224661525698192290642284880643903668533342875345680299709021098004231739212261220004415039914755487838358896619804963688179198416112919561472505710150333819219478210390490423355875563054076216656030958548254155019553357543255147853440535153498952982600911810699373789539912555196736725145872112899557075286390994769338211941726483809839920462880092211203073214662675312310153641325164712817137734800301737128314411425371232202454804146347157689155698507320819511404951195757024427600960763102080067835217885276747714017594475781767327048521162938227338340451412256745574646205986289187863426303869365296274278171599821581550966646523160304347513270326091288496333829631998620982541941543317293746346335799303405619962014226174452818680047387269891011738854591946253525589182493169936365613088125071570466684685372431832763589154446663284070358819824721946173996091640197391450329850062211099843002227340014313066103870168746067189231481833661124772211305450772395989827675071509542714306301039214879090019586876376698889709293169490688686408065434704120506053850115015141721582793293493449889312520331353944234168792963920424314615192267791197442592511049142366675695762153679736506897906633143500969664556571716518466236196132556796881263540587792795750981180665958473632461493257683735887035610040852740929294222229012951184378190994250503708114482767922236937621682723414164457524997964064195480859915067971412762439179681081577807431219234876421234391484876324489568614022229533257373257982552392113492846625698443253629911653406001113103300843394718742566902561546500018501566890881544150127890681463555995532113115673194291941275362896315168646571303334059428161283532551549208980827866508795266772747508418451307745693983889073462242390161603385036780156209359508863437138128569008886369839400336362950357828259333270240022579487278244313496478642187097757738564826938498134411396983743620190636581312467550412323636955041350242690843918639882198122262650887806931673979471929565965481915094721833859494269050463440776016917569617277087581167669960761745925879924930245647215472790533175985092280031259530347785498708276819462927040730539465813085732387790549651123980556133791442524027798824259253233151886060071291428815031976008337828378652364118905847930870242581993399418712993787485879764263894286286804638471181135549465786539225824200531129715437558080017637259979150942176033787112682100682579321072275482016878046183488020569892476382597071417182118580711392592686228487799573352961295599074001876639246361457697367269968772140824861641702781693096922469439759433188967070403355172481549581012895262125497974735859197039802196232734436823044834231265107195336017130781779040043298612806159553181457360689724980629197996453193852359136642404858463171598603433470151755012172497936376314936614191534308382154885821940692697695856114054956661034385279545522741658350546801567290992279967951414365532404754368825871143449426263279506765746931931388706573975451727342955639947325396362244249011773975998386645349662499634129343526359525663038027208878473518258119806012890336968284760006212375878837826662034701292038761068475557433958942382446574745376588737793262754002737268957043446146647313692043459885666859447622351696397667926580511061311821792665096377008170132415228730399512643184199441994072052204891915258445601068096049822195291195096685665398622155008270142960283551953024963457431975931579174010812726427294410205292581901883320014558531348606547873877844148096460406677919431984601141689261189051739082274915359410510377365207267369829892725566728887864133396097856879842162496274772227914115888875718465462226791648884233354725364043494549746924299044300748741421600619293083968538738377297483231500538977565010896263686802498392450552538609300570192342355160887829991792039060773480348161523743883320691151631183869251464852495276535163320393817682993799511582393818139636889718874618279836988153861716782914312028756608916505079439727042057868315468610638346008196231876819628760592239545679476583283865568205129818499950500277740862180970284143845031598045078052403568293587248975421820839704331067945790044308255719716708427627212102052666799046843072467778776601484626758531442499337401564160085343860628215032479671235430850509976352681616204164856206178686506582774017118118257662689749986005562644348143369801160818060297761649353735183769549324115217135456517479499897028871444063157009584693402763497219899840237284638087370236977344253583284031333623817067159758755644405015861922944596977886472821617875081793973678528250191362566574398756201766261911248768920173320952312949642313860261594366667184117715878759976012494465573497058264746559931990510127531287990195482767625744739401499179271716432317726604344725936244393310330640100453509728840418619334593814803858723490250251143048864239078688340128846651777802398391000269792075937782775955088662248986753194954232279195620493245029520238305566797030788082256955597437078950173362583811704656675617232215799624138644764996785948238640849397834940597850810122307997240873496635580073416773193813721282947724949889864166693385560475843177988957177031771454457902945950822359524362087400054631879114637905602533805059855279593578780628313432269102675803270634273357249879293239086209878461430599594680488748997156530675996457747541335597873616851142242957679309797796196303933307531126730437161659758020616431678040360611972852012159547970944229693669012331305208077728875602893425463397264520176595782496813730090409694294987380869411975192265274861571608140630168113615947033984134873634665584151335426995267219777009177791881297074293073341437664591034080931111182970015800930088988677482501724620127321487124056275140757079876232653417817122663339796745229371162046100592173033164500418169162340747804224053611026060502680566685481885470368280425671591823043501182932041206637465779048479351082599078667986566098564200041503015003316056225222203651343864351447273812906200003339598217672034118060943371554436477953459003149730635526478657226947801941751350733478816607939079261593429293636965080465591325443604892127746803102913411273375447562101616203149175343659788311288005826326700678136571857592603635118111969414658323712113495062935652011110974712671947888333241764878341523824784512277768919531266719363771552833719847182716655126016964562472722761478385152859495012860014579958738036948690273839985037790643942479895663650666107158746189815363053198242503130877114868607444329777385347761978696775772167482992867123883406366223524308116203419251379311361526312371282479546480141962165424914350578132131635263579722066091473707495343653256476523296451498489997042905762986227730617847488956494323066651780134784883225119235497057552761311386816121076170285024479280668948759379493797035314908680521393315107469018253068797280297393619119354569900049525684504747122481253833404069197849043523063009326388973642041140869995634507039968429584358508951933737111884811836773000393108706873693986529579827906326662424386840500700635048415796237433746976617511638168402336688999605537365032382067267780878542638556113902971408868312853390092604841071160569466132546016993691624804259589586694747175767618486949855201783573233101612059922813172967815733760857260418387162180320838762954127640708414908180024013468183915846990491489614600531621441723311851984001186047577479771179606127107495205038397431795600346981820235108959515100787449352090869568613479563835681314126592790576885164029444431120011666712888300722702664628389649109169405505319733896320978777533886752889581457761487684518588690525749431551907779751577380485640649686367231956602581830516046953259301970802351577765798883911729363398611767120064547626716221529632417494422794304985432510768319567445631610095013710112137756557145684275127368956570107644892623753101346438177154029782606407358864063544623708837489040982811301952187541526186039237650131779301759049264800697750234524698024730269752298010675326543455570214263597564841005396201221015103304784927364603589174533504056643010665063117870038498205698073314058183425020472047156498611707840477267195156164930599900757041858181271790740505272344088695023411241205614058437272841421788708602290996663957071338659403406828151359519336968348381458381156632728141499755164380571858529210597229369863875022498371087705847951217227350021636476443223954508163882677612893055634753686752258597100211154092809215664107436372506630461998193394743445268420438104568743481363057597860494093732686589973836562523824046235262399702955813556625703437361804675816934336964290818278889103177764878730811282089544303566234184687133037100530309495567693325280284779442278042321766593762205429965281039099933572552112185772366142633803122989320534134161664658201145330540921357685922796309795019024879692891764129601295750144014740413159666852730787704444033445652005652970936944138647976061498458832624493269469706219307801916064021061971070467415646543677449456350332928179235303923645983769403657334714806842799364180738220459374828468185255524151615541135064196050528792171666731865197879586238126478211337140773545351345278393198183929815081369071920692081502412507431519035575999557428171751671308570846954195917820639545339573652651689127209478594058038408388322324853088201405134408512426919987317017697696236934880521845230616380676545531462353987038051110353245700106975085877557933183570052373381116348086607866706585391175208350126549894427443767449886515395294177533953212415785787542715795513071515836483653373780400429986713050651353745734737732894813496046160572163299643165544578593442406627695763202510339056337572504452036620632563788898589641655231042613606024860697279563044529461256506944396205734653711007128155385132099381451500253005826484452818920612459294285470987799776720026439265834926959049802517695029228529021887316029758692405914711842515237700088630544837794467251195476402612310330659233331656739092323230273875955614550413976873286893525377754378313003978986506999415084895607532454781313001244204179319802990623549162984297488676560206047575459839199104202930616407339928119456510199377669564750507468810037627521854240390536798532712047823353351312191370593628571839204869679348506602438827943826441476027591978444862882612814916087916694799052475532999306963860686780778713590126316743766303812637987006990783126937813564423008904834407077146166953908922436877336409212094376626760659985120305140109175201144793218291218271112900822854664832478788431317123246986341948722189842860439951861560250332289008090640269712386281869473554617100615635810056730554111097060169694867355330818800429908393312556743819525382386349366054061555285868330581596287119688688451218575583568588404451742691857509322045016495187456456699312861353912244004963384365486454767607392952103479978909687713818035777606336042365591916791986325345356525192317263916245169527298297561072096111465405017105592635034321810454714677792080964733954045761803311669558133524432906958629338553379145031238408930524315924944838759171119613263256423044617411259430387276736704411639333948835535442712844571799239876912969225083817426799822792302653205362987751027159026036079700695757962621019263771539961577099707180965634965920310477920822770936898154340719985251775015732036243252407489799569381904802428582173424340157316336957028140501263435597802565307437945560075672533737033979117060912326545434476486460743231368505433123530066613875159856467102195983049492179175425273826545317851599095445649360670484274845728785873189440936761106652279489322990423999037031577337394144128421518840293415483854331981887620095594205304707793689875755366870113541904782607137045239749732583560858659632196234733776146391814776490194225711521202946669430909782698740618196331987129961695991495756805107969424396506927746092199991791955977255045402839841719670856239387958888724849348168952580633550964425969817669111224789505810558775594095625761841563224887146622875946995945963142984155413882284533391759137154054202059361853275788571653729646709457929015823515040427666625941535381127846036425754311038660692626932794318650273777755752422077837465989796433422760691135410977179752494122684318180856725756087138809932393067203277950678279980029373234480242852980335712725918574638017257337533308498432220285500885747782570832675041381605283149159571401694369859384558982181480832694173907152497699319625575009860196896480177857089476335481135735090752860169671473752385174146646053774338046759228247918679448792867366606308673942805002403187494521820219262733696841516762009656881597712777407187413949942705074269786198845143748568357929881109785368944307317724321263053624442560260728112758287917153280017839675563893064186131555874852457282540948712007055334479191031625827443422433015294995459638129149501536848493048014307978513441330810366349993278945948980497606835837282311081131618186768945343283867914192324538884761303563606593550295570643284933772499277855026030042010319725369437772738671449296433044335235282478431380803672697804138201137437192470749248860963545032141760926704033193144950388236706952016303886256704034514669363891124885879064721246618475585692231399441533364040791625938011923046158611728061716362724656368717865403515639846915813448239388880840611876225621699233607303557274214560691207245566071653172605742043335712546806738254408678974265907303345907908844127525123097300211822555368176605098307534152392585693347290810305062294046487143142551027574476772725877858546160651286880147209528913269714976222611586133811975002639806115352084985677049593728759890928230300827067892786760010884789374216060322228484169768852479624311691552849317364386652695328636681419082860706013488470277868228042504297881734680843492102413388008886048024080130021757331071364129268814129293510823440009555939124208991906613280814939826012724349214640068864139626146146690151168547434461035344185308327152575995477479013203824753366863779934757414242855808985548332956713646845107414437496245814245310752479284913679576662180500768635509744246514379273774230583151048827712466079869469589871300744169668889801822867118912481568216994204062446474428978004160611622542794480062788589827790048001237535604598047538593727462113400106916878828817238702947988732401947072800049616371814960525452067635823874805790152204484259983081003642197797283675668477933379317772376661170781491148352604190937004720732585634731938441445682841786817456986960546220875816546971834876886966998708653995758754532296642133555742453539335822423694640682367761421175697321403621552195518679679132920970171603298716190741408546648405200822521568457274049504150975942994714999723380927472701320995798135259373135321894602803376941247798548441603637802337725771226420669452444960619839148584741522894465273561655841687656578072663490262003502504648866478140645322894728946295824419086129320579560328251748911948571226598011837834937624125201662174560288576617605943444677076274125432841776720243093804185233202305621726137289298982943537559274343894264069546076925156056956008125572059055241359048951814711082299952505156210989196355325514940703881471287138987782174186968429473407971753986582733938500101037419064689698072637496070886388792219043988017799681170783640985384653079544611505314863553747791819447296282008935103592426933451520400503640953067985593200853160119657175476349290336938114318280844617967689654240432074744566131416004582642019224911081499161681742269787649450471692510770670236611968845946597407139926632096238829628055771498514370103455973406186281382576695621345721877964219443983038740213783557888192960087207004459746884713893646833762402756840133152560977829320580733714874969542107763818723741036973855760866925761483837988935406997199532047464108373930764551814622704903794023371208052436756371245399386289296033845149251096781670534170783740188251953658030150306389591171608726822842916411159659051529181369024405184102997059761242354210113429659468471123229462848837512083059747950322024928801083110793806655523613000465185754803239040668011926392211193436574727908991868080675327309134490838890442623699864406403539651240666617582091339205666279783159804484423391189382324702226292542727644880392871999024867788722483251016218677283489707101023347650789799634547526426618103849823734665630125188505953679861855016319885749965861804520509891011421467762183319421614586214084486103577037605265073363079972381294555857402364512321694376664020317531749031084716407732222838230223582131396112791846940292904500617414299457872731277605420370746690975164122044474461578195075433743212708565824529128193409210312293298802071115746724279449412479623219122810050796572711210680509637046522913928735010438722460370452968531170204013049053064718164306282361500216402326158174777785094637458742272476178571529508491161024630455906067722946178517131724044343749480128585395654857472211779768150112752022381251329775717889663147827390499210125609707028391185968580489560132487017374359839008091173330592743235574049707954051733555819297286180838565407900132883333178870143093721436583026238791471956475095838434931782857968899514823802315567475064014384246702385897713600085147967764461045108192087297554803162279213165070657530874951708250040275299441158439659360717967051759035361880311284655849662213852907250379331336096058932664856859638993531371175971905913419460744006914752529270415817553142704138515224117585113956480929271580461160061542493265174839425058744132607080907206461105201472279202531053184440716845733143965332446901807013035822496628108322783504047387429525671125024903665271952605499105228947379950419074242898920472727342204482280881250079285511874867315514412663846137829225385925164681770306460886817675790130825086641363664006981261635535823919831909480925466977849751467657801745443952629595137410385213009031928124543200717352220245352061138951203001986081921217426476965517393328160850998034084047019980955647881290247138421638991244270537480116601601201771557406305206160037582342193563938277848139105532831035147407262056945352779609741445071748822821800283946099771539066816182538033425335631191842985496507563819591556798792351283826700484928867790959435730362134325995912898762454314322770089854958157116533164230643525738004596507173215362290926153648328372155080241703002922681930264941241121202496778800366424668380449145853034675512206160410631569284425321216122943671404803212556001719083624018289634241484329117534330152316626176761616226187259147281035387226150378852137605946338304952155298804947647423323197154032431942842199721838813012246241328661265255135057319305163311138137440009378648976287911444473105571766780287714406821536737811542990341202121548371798735177670158843894182387809947994443254679610160088933200075781040663967566747881537622436473874209924999599436893049421667200447841809695635365471327378538827368975949554493549907454974288865652623266269461127708460516591214823975774138798361375398190052600889575809487364304651710924652182937690289097264562771008750538954037309077050660324842644912748782488910872385784936627357649753216173013614081092190778345386223236179787827141288798578518053211604569209656436328955058625620248200073383687957660547879728904023232841437679810575469768582497266023420015380700627060033553497600540521977440268518666358533631192878750151947087676616429595947731223757838955672777888857972813399814433556347618045991598148841253730802628222685620158219760669114011652974778524648397120539038395176816977207845338978489576324531380061536452453334623145417717956455173013617052074050901355659743368491917678401173275275944468195324745493358327703600421217924803343500601438938679873563960616476834679743363060944794660331423951009342175036684769933741559792628817710921563082627826150054044514307758122447062902737797576536896522487554846539034300788850621580211917736044976982482621471742607742289752388459920276881900252479088597774557067169673218651965078633484021582197462729210604593387204891110991918692310172040128429945060953357960725605414397535328892189675456050742006993223820560904219143047163759812209259617546519283219188576880437626549417189703066846828753298473571602328848221748313022459178648172855268235357285568281934410107761528505270328708620941437658644896169047160220232757244903516990858653236893943432231149322408721662909202923712017100912171232929862749531801115207715508813542807425099722136554881653653147274177514076809485263012277177393041198216999547128248983278683077273467404155306585334639671810574897531582391845142554233147098560757957443785175552629837396078171750398929275647747859708703911091063238270916301504271104415663150222924875753007227580738479984700421689998205978179134978406971587936998341759682129618607410431237904491130096520581618550565544534128444793584335359747139718688210271147400566270224942986674968330285140796455900540731783976640483874209075195369105849944659946938809915871419411534554467906677751125888624822596976208013749974332121859345658122193764203725902954765543488259989577045044388225348867367028835146737382037134645351527246372696948133527691930377991452535706694503562913373771867501856280995597292847941019893259892241973623125689166453421179906931415799371619535071764702515907223526662453527392230846077974589309013268926669411026934585060785877650163734869771869133566908221620920605963869659338617074341305293991869094160803457692350662264203275541866154338306387679466869425840749778288476007490578312616885587415080745436954429075362649888243787447884786668786951745496924976603717259931571287338938927531495536225278439918035208907840174255070960446051246528659586506389958878715908975070504932239068457812632099493253115486929571422219675263640029560330127159199510810891369203776393959442417369275863110200242838391645238148038402436031334179247275780042383301788314397558166385438823501768526971189205431218860658387159493030454516199842169119544339165155434022883962721286372253950168862513500518824406739341107512095739573816909537629874213918261887761729771603147546094275466300788057150389082129021984717066923498664471193332103705790123296507995803537458441775718670803908711813670745636664381077173621390601051013771402123202097397885627687303541377088449909001073907467647105362715921047372479273439963915962589515954839521355612263588675373780005604994067521464611790278999672192789701144929903146910869125337711484167578879438682761370702089927267183007860673521359054022807542161372624249009351073824610563048351240529755140460090771425106233417409384203999821592145417574027990290705286126132121533193949646348940745410643638919174232820542981263321462564708652175522687106373584677074165896122093517525703391430284344054883701883649593068294861805624801205690469881344122249301529704782760165535723199169751739685474780542322758406543931285156994554872461532374041649478168250985821254559505299402161175671144363576398647938332231410935963901841287195462682625273055818525076351102944098815309617116486734686128072216453293671984720778597043484062017961500136036364333691001328805554599356324389760795379776577849432230946018442841691286738746639244753654009498491035237952383514882965408259209598302900182834660705514441432550014339702496926255072172550121070562041738460030206490149995200822722273960111287982601387116667190737645700006325289715819436252545156908044598753703976954223052654014116419854372589567185998367163211061066840470397569892768548672339337900512382622565867281872751781828797141625507808324439364047648823101905128451073898649262677235016376852335753052115237636162718096749058496773382503250471721748869314023763813745575775058500230968515677868481573195370571132499750066521494253918132615592982446315614490760162605658934720599743524805393933531325765374279302214539014038976844820950527599772835609156432863240234947319830807557215850016049995951329454531689934967396120117303099047271692424627812787358163882452090392653411575320221532562392891500633400123297402172649020647142192875478466187643999568245812641526030768531981798734584984121551403428403823549966426941091719172133061098418031667172412248214368412304701553414304767733959051507701405158384248233765052879217356038038559142544341240982873010176770660007953504537457697733334175529246599288885748914779627256790421147949539603125297183271558815563906434822866523735251886011824071666688702499424948533864872826772527747733174967661503833544392645876047491790623184204861946770003679856914904385385248513032926776693570346074874511437250152914144118840317794800953065199170019262990231408927712290079513244476337538416469000192302220223327131356452154094712599197480024150070210416672592422207568264000621268085814241567368835221332360124839066332742765567443672517360763472954577277356085956722569189561136566168136640433303216663437084126362280350420805377911812009411524274260652252830110593889619956674312298770744948791121944397265230257918706061199520014410587449296398689704396217721711748544341588411701451050528677351692141782395476793091668708127934823415593656456698150063159546934861305270041472041566148039917377132912542737302729211449979352422192562622777563269165337093887300275200224959936943878019221674384806550525393618325894375613172653672910023066772053419043267716686562613629401484652852709911938195064412784857095113998536837104858695235428293801938422635965928279029675713511178051348265135462815270596872740383809067305504306141607802224975804251469599489279470286308985536101034404971341389997871140881812140982119779671595217920724943770154829940636702325432682631286463412959673455907629803868806577533648883017219358669874696315286384765329239982416451829013235050007757932675865616109871940454249450186277636100728493727460071362216653015465920614491674418914853558606551794074843341911894587835562197743278423371838152860222509991938476934699676589864795315183961312007872222072631591026298422021555957625684016793418269245727376227234970384824500088562373731749242472922718699625083432016069972110575720194693194675690058248207007189450772406588652876424393226559354279295590762093517258999014399154998711050037317078957707438356144206882698422191621777406288385076576517575426549130661112301477959338806791054606525622918537479353856935477550255011920964559272579674005352102037905724191469132955154142848545466438146351981122261026335241081832891986116863330872986473297935576833173675523104502750387878582056041766859887172206987856966125439980966394750052979024317782870335744658255610420634211146065461592748066336983290192195115713631947479429566311778722560966082372704513520113340695872122793936521742903801800975324662269998035406725140072188157648605094417547603170973321009843931577484485351949836799335049983946739581916903919086840278259742389952050954780361103541421781603102528656233537942320420109388093821718821973471427237492616921048592573368264043922948418116302920380254504534729189714896720041356084979547944501643897344924183198755916942731688509132587061252492698072984118437413806781707410294848292095221651268723839961129385813599152048294322543645045000711155397989967092546494774286985431041979191845673552322061280870543073062556812181346802233810239088748103937482845331477436754269968126681670354422837058692603669268467766558797315591161470113395110962164041308538909573410390202629795524807849954382644320318672687494882412299843598269763381191329940274864927695664281377669576013122305401763508508447967415428589836774437364505657100097831064818108195444841681634317036347864519248320003185519550444493313288505378565974536957992991423755078479509682026987070555792231321974313016855731543140993134901332302592052409451564759453476116673211770857947820576331738565009691057768180784399806985860271547723677625321712894572662391394879387469996739710708129304794390534032774355727023353018355116575772405143241534209202971418264663270427121651529696526354741273622133091956771843832138671293444578748013220866934623829651596577668282733019997661871323167454506538511570880056838588856523202714135236111039286186783234909490087343460772268567268946285669045007304086102121120003227955841154411121857189766675813678181243517956055464163346540834871170206063140850295521131569652825692091095139178109786827028424629895415031451270142136036031161615070394362550335486799329768598104316296605564765041198353468650783971030060748242765909046619944706923301380080690280284076393283386737708331424083293350694157255469392052806378625492983587309640375106529862459394129733548981348636836240236935227472373057627964423395120366442859671070182015034891930171113653624931289691699322438143570894893954697518630532599706260641279795992516400644906652011912539358521419976338866669838485718658751561380340318256724731041732752248731276715073100150461636320245013925250919257526583812434816967847178785055719131515199628112741900027220734773826930490110727263728588621691104506441863360633078393772809499548946719416801202471196882421644661881430576132231139402688939586752655786032679651817694138332521944000985718831660094514331078677915239079955563218685057706556722541747225578922980966277501524344815537639261509147878484822106439534634382338970462605878514025782801318386756325677926221933508602658449480487780273561271087095128233406485083007828683102780940712834031468537480943294861881484408398946457704645205815117344801288857619342101117848621171260842083456909668064288591736143282658657499725996345910671736005519432958642145515049834470693543818977417504700880779263020910433876958556127194424691226195327690061503162249024029768001975106575002289170243650440602319716644780781627118310155058792597340992990654243122895369277777275379311237383764630032488112335778102108268725246223517594226291521483298387408429422186640732606582518553214601472346986219175470161214229597613329569421114597931584151680893923902498555680556127980253151724154600377619109211945982307290114245653791342873855654666746337505178928781035016886199563005072283066396950894075238985744406540161809945077107480422484628272620227886885179142799658471520807246331866173569419748320025566772524703733422332028708266310571997556434693077291036223452903083947178814849065757171251202307827305186656954194112891113600034464947767130822797794163802349863895010111974488250080479876072284681816978022805885004571298722952780201496734255556713216684026128436325971221274353253146966907248167735448081235336148979496846356559999632025669824048918040069235422286113816048319424303408961444563413804853095561125998657041225350576139071717000401281467900316812195842812470016467243799738581905981148696328025124417490762020223502744392927625067290213416839974730187135411341959752746880635927903788881455563604733742798170611126596015567488190313115069237733941625490154453149504152870474989103412563639338572362661478609116532980791673580843292143543470228363630784732858985014628443403130733421417815573727861596398668518923613272030638772243841577335731974219237985906142383624146000813623440564580400671323039577407287626791297205753203598020883286923892192176845876534741351416034071419723777013305173454287786843581513554634070030514009931325842998020082344914920663888449908221061597987255598879547796175259756200188727718120900349054347146133812101266875257646030276047695646697468890775578183410314269604454169626643014414805969634695327604477732610818086603047255041135102080682869256794278459004583898846953201325923646617173249690967046104427543305264810227096267492297052903658329935737850748007876430746236870560089498940740143953686959706385710992567505659857909352084844203055954139796977891934272142515262587315375454789799607508759735412429864969638082299399409278358870051544874124212660858537897704416818823809496647872788068672295481565467210539905840155034826288873685018261349557426651738014646869155198081239689024156226883816097448794515419185377037364487300450142326447731138572629203719956628846568996836983045615580335347608514589940078490749904637163506132991041634849507952932966008061962822094235649313576080873055070728048137530563668657949385493256312232914694280109245892490928608495817929125740631852428573809457039588379702366563940282387663905878494774324560613787834578563462545562579797870985163303979409785349778554287280037601063885431751677926718403629224419911862302510283529339397850241279581067043079218509973718063844292403190176192621264746435586471540867706423951481537233812620303106506699131095637498715691557121714036584030605864168264044205776695313188482317852905235007401136655453933730503171275522612480661754406041007058504967246188972183183456949377424519643656975284800480587176492069545073784460803102793796664913021976463343277428905388846004680322457590972152309276202510271529294860519796763953285812829911072127396212475050075461950435620882731143607374716326176193744663259369480857673745170863462743598731618142251816534480292809968960402181991351075386055554682413884270095503878204722858370568701048722797022376197776509650283350178542930309558776805029462717186955973951129478766648420698685347634325614361274815951295102939300656069502035321734795534028656298628427010837704894350337827262227237142520223106388602042875399840346286537429448925131025407209839454936684663861058294346465931403876480015651539632742659335817851151070777510447564169882703056152667156444983419423182364201106110066593363999151920591601996456788564735266826721146667501226346614702618327580516185975306187489487955351507509401589327476369721873645429481912076836172221082272460509464216937311859428501984752934409985454511274441889927197886759977687597572050158656874096801180093692428774467541231200868873962721592694164519909550704870554071051933530846416240038038113037967779026534023158130666320089016280828092422506250120272666870565927122340969784648303897002506021502337267270846632541022232319134288863045194766015520018371517827317278251122131704401110224369039077379496799467619907801686988238797616647040260079868234338331877210360192508785770883519991172595262397098658228007488586238436151683352995488119064897543198869752763162272354550129939908749430451816716511420843982472833771040751230887509110567231045501603797721110618771467782844210044315157895376141184797439344940551524866699713809455246700560383041551514171960006837631237789602670763818032758153289518006634906871293287007186906698720790985070060397604837668765134280576698426854463936293229328468301001513684041086845933492091679378070834483982500336029214100517987038298033104747479540200739852578073356183477385591020081926535198871168743961680442283859941030975107501775679257765775328704193626316232527616969313622889960090525998026627404565965369616074480889982638019667353636241165292152322754726450374419544065218369650063844744916217226581805533661373717783636870103765563159522975962072403898949270094862874836942723097273243189260588789446220661426200198731160016600356422915808112814239615631557172830227907193639818414518756324423664924312107254084111973389077548559704010902924180364774800196270649604487881475384227303853515261053182773993497700786928779295739262585239214919948079274593217736468174657139529862303080774027303452213990519420234015612590717256604361502315437243752211624990919225388623315933797914465876045807070114135609262095217784291369274662997580226332744715373325238005358253442536960765119706883276635369555253346459436639498469914257619994443296524342004164723500511201653308970316971388912373539469178981279507457989387075973872033655760231890190329395470282025927831244533940995922715057974604076260716794058375491355679106260779532149991264715813027796282168384766714605194943765194596066955499268815963417289382707179723597918083624427177100639007583236677514358420131789234863637371368219413430348319428153506908769045328241213567102091793294147861374405182506438302367560704918827619756915296740843704554391272027970970175206446001158779258041980508637910093577588862998519939831456410880839392371532531044143248907378111811787979022913840198619702442847308184162325899737384817868014428697211430034191866177381314381071053219110624569812048807267523151094216694512295701340796066168062171147298373215140200260714251339681211497410808210118612183051739997932174947246524246046364997476019542469246700235718394395883718737138410350041485086421430247372370513898367218849180736481358687843355471057090233369584103496001485090496325492022440600982306205427410820447015807618155556173608562338397596171050402970900984118150224859750691741832119596632938039600820807965271680614370689872391731122803865317750424726237472009327525826661756643638833734017256180592680884440258975830105878007157028147906996414902802302036604769532465819163495912859968798700996180746739076433774180276008102637390279381077613649914514269385079794506993375627951220334549036872456384512489462703509608132632679291888353153489050102489176690616305268692590534761920522602575861064167061316027762984243707449995164238031000955293439797360201083746524574973648289090303607614108388614289168448568651216473305527722318852080027984367803522952527813255046474108435668838157869581639286363279453176672861805713173344009086200904614644131419759125016787714552053161589329012561336027111602428465434759937850407314660210812335754400343732111818012040164371064494951867768439185107892077290883962724080055725364822833190984687160200953108880465761122597523277503997294978509638899746616691141277292936160052433074618410679849486493627260914642881991654918419852724571599313770209864914985682825479499184139187454909413621060962044217352368000515075087347720595017822890510060573348873539616081712581674374817018507990405004229604840547717405740965140678228732603718776981861435883028945556327600333555394314243579048401299559259997524587377221977742745456399186254588283649691422148422162809912906797478931875598358700636198268733569981811418598565171616021664481655065239828563711826351312903546681651345017980469929282154764364974825308643857619584858037709299339950407931157341388024664425319229471990259119154048260604709004891835493396877875688277241436010423666424199039423303746669127480499964958648518499316215939367078037508598041806099832814383103342685556102091476247121868955125719170757804374643171267857038936555983809395192439645682756521515216067896526670737742028174808676874915603479480387631277110778892869527624116365672429073605752169333978872215936598634180461055406527515772114159374796590383943611844893876028191757987293669803470380732026377681267157523604567403226244306131148417527172828399251055963411497447099772226172363566534141613766364530109529252565497360158183670145199668853986856792537521190169212565282308788791892566953966264274312270420021115504835744179636701671485223215825437226789619628461085770753008257964864526769966945650953601335581122092642380407983228044038438721057744050610363276303392669008528778889328734838796614028135833017085279311829451252514029304256722404332486825896800158212022829086312338452367086473068206957498138401774957276966187053336823767558464990416022954255757627797336515310441805099109936926907243788134036463636646648820845649020652665737267948068630420229444156879343619241841316129496753167687170791301287002437899453803877039169141145991160917594996493143059942012953377873336920861821266041453434250420884994126578963523385166278181238577758184149717456083194156375908461869418547577543472552986846742520350196853784583540363287609932399138545128524475160537016866367011035999356800744529342996708687842640943872602449821631560744098570868840083707800319787173857764696678289087514383304441400176383480524707065851902981024220269514506228149899744459460498288254461223876955182903006393901532870923514020838587328583599726820973803024553918847785272341478839297502283613535078861433722229779278534162235520096184834615222760881731744555445475607446016532822252140084875214989575589828035312760146699584038426979432433502556324196946084870165576629202272039964267459033146341865763434665201848377558658142019496994794800429565335002626363150409081074988031763471250780285184650578340646671529981978856910020419138352124568089923333898057317430120708064955016786141045935704149352790505839795353841608026580558530944623265542481207198411327369923211499371949321783304563751218518397896628409443772783358050779843153415125438277369686716055169361160775709363837548644235889342585878492883323709578045384301185296787022244660496311732389681106472957939070734254927187370174263679260376597803775015332749955938695911766273882760353346793124155117852153747076194558261481478472396319226160802152157067717229801437745200499231254881558225208163055618761337149680366894073433734395109197080451472665932899710186676882772409209817083438603361491394610235025755353349006560779194992531507495210266929544611357419471616655435479090808955866333045506102773481529812780702812524636368584265453144739782103075011194749297846242301385458558040300591013038726591180775254729095277745253682330700590571935167390418269427199120346667409216816690505618765123759546168106782272046934443419480172025770575215159986942845245760213512243699130963600642775648956563480785709465990641317677120467862955622593398864489641954306022846513986443080309591163886739741922603428891289537283116914551320144493406358997669331715172490196097652550897457258723305132855812878689389045865004725702350201543910059646085546156030430345414706990778597342858054855699872477758470715696965353642231880688844487790706651669758630329271049466450862181013798494370347498766272055678171372976344073644857887667378270666198779971555698191010952501382917150107797851186634503658334109892915435545096756413774092870099301381700650948197945945085081227991092186046134026019909431900475056167722540630276368338407245889297588909526899750410450716611365161561870159462153656112737520485599212682694116572842291376119490802091539116546554532047184741057991710170727063337122945689989734988536544497972657072147919990260167630618954949669980683198166557265809302779162270053054243884200884951674749298112284431379132923159438272363314973804601022506292473422042608030989204200596772501649931694158032838615371580781114338204041429113099654601030409816982799431013550214004095396206326637318840317852473716774335058963744378439842924402474971941508688855743168725099558723809966003541584109217548199480467022001823233223137128181768992394978497879706346607663565750909139162567706744865128894823023347095460997939366580741305191198380180714982870222451750839256713644977728437143592872586835734477332568332590339796295992023087443592613080628563227474376245635709418300166091736027332122448615827354597709176976685052960300584204252961854201492165219688678536208684598759769697188959094849555595279892104830167347155129427287590963535917787951927613462383343801168879107700563714448651989207495580019812272569898655983865184849596729977160942125292676759850972180784617184767223815805147558581542374896871859242158971756361171738837063478090005411957850945248385236612690554471568849582430886107084008594606190121654591975476265903220387647850604711592572707962051297698888248117348677066881202201256639311569517634573025785117279729482265407366803615942381554046092769620044378734259421364161765605136891585710532855068068550497273454851167614835716782639480960325839698322180204321571401627190447949185324823431454212296394666492791897940196379456085234910478450260938216489755447111150799881037388116028388180232723563666066463130655605087583207236134032283802884275739390822911569172511023611669677964489168935491033129937605169490900904126092698105888283636523537467093653500865224100424030563748956528362461291046113902650216565087119227713299580702395191998194008298147701758334876944969986794366606480564591916136816817690741831610332728038013467379238761494250053604739745979170080723855761388395252175188309989584618788252337989534747188504165141734991138493387198801078654386259221058755723598858435820485523766125294422363862933910325195671362523678948621100655162539570141969627525503885867494514160029731376145982534296836575451834598990574908968474073970983222719296372067376976465752918281052190398731147023146212107613136325554908918155706538360158557970032701291167183540297084628109277577625831816761774255375413373494654560879789053220157885682139325381629043396935623794042269841613103670531243312148834344455502492266077692322113721886783216299915052230609745549219247365885866134109615081368352455138748550476277441643150726506699368514126886129308833014188990254350760389274349356317574405009668172528468161026813899994634094518535635541613335976104600318765519806086827170577768856365182855933588661324965371703868401251921005563985555096548918845285852806234800595013589466523262335081815398549315862645348021869042828069761546895685494599728687012959222214455157882291015114026889410233548666416476837171102532964612314909504010522554624167478914609016228583387433909174823158538632236731308212428852645263279507090343747175203666247301882970312920757756976457642386202227636920619775257339841909329947781495112018098014797349091217477330720556396120629496944375126655312118980952675574494902408597279870097918827644786479414228400869909897867330106846544399140132414710227707144288208352793978383069223199777509630966540057091203598068826985908883305121089848792491894750747081298252909438757025902631961173105211002540187992492482272675691383872677547773992881044589521268539158201036875158713019456005221072888727112543861422124447579456476624654691669319609942912718787524614703994974202284612611106870192616275243703211164716927512235811463159454731448671538668903905322063509034299520903902490692292594669438404064239162635140524235397341042647610276297429402283806425136502497487291022420944811736162572679384078085783693176524543850405668151453795166424406927192069356752897947319162106902755975247428160006682669874817238396124371033656238488531066119100839621833512379344970438194775652440773525299174790962221628031313586368186000521043261523924564674660832734586136975986822226651810431418253135713903914053363036260097754503402137525580880391919943784437815638844976868864917634832621446485818814774905325807640656468203134614780670184713892064238075927241820114478920331061399989686043167247947069410191003734314884105517304623829062601356669962507117270741018930367561504455035121226613522045857241838410945164035929743335133187288784361370818731388893985756442202897573916828995587982370218326090859037204359323711419616190480569676834470781811872793682856236742336628681810837068953986522010883218698863512140075886565800355495827094365346956018929570552598825862642553126682074118840082407947494647230928707301422181252771239900513882393080185977727978025150343186842044953777945698225775800260530066263728984912650134622139815206674233082323738426668327992073655972006825864776922815861082657551185344871896732521208770137908232896537526385091591431737321282022300089552452235340579571401748487356517501884676089611342584127563174699669665853541163208230377380064869850705750959835775250871726367934802023744642820339884531966560737238800128127081459691343178216647029575563740586665910255028731200985109454378321701005890007943883912434318271724568493747503561575255309280581403157251591255828019916707373036170670597944137394132756587838679693088481827134888089238352718288378077715274813378431783639335961960116940643747990204509111877419946378309655388913196453134391001251034630266479368372404479197393248848864617473738407399148399920110687716458153435161630281771620625214339329279853440386369836332355968571489882917576456623291711587750520837723150862501458976429484286150650307427284456354056364318100622363446999368919979629385130356514669470450919286020985898222023486621305022364814836676519413870750780057271976453132760959601401103207626811102419413364191719328689245969310252495817420438095928376046338706364505981493954871294615058493961116438979307680440622012904459456394145764229487121423959226524403230150563721506689422925071105826889855680860027467810866175260171113927799344441971255135253556923170463123921741037668281014997986601032679032964237595755199810738600496017432230211823368086681745587242883901267396682167737518049582965262124946462620512711900133827677744279578413059950421828804062239346744210624205946497894807618886355648518862296087092158587122486989489791462764910183321723262227120812734616293627829973552105818377296166361542230910534305218191877455982373667227581698301133540015336457327397967891313747400223148916107996535687165993980760253607182146128212372901175274610813111350076013168154890639833875274280418711435026503823185047012122962908519611899505060121245088924170394870656955589237326860952824785990458321107624008460028903955723234970474206871842897677274398992495343025252032559858097265146851897557411863248790043842393158705475882763766367269234450867031288935809269401049810648878990088495098202515688728394913041813527116037826861455946636417369622501579137375665339322773788450447529196257554807095080421633008248592346354818307176380927376503385420811147097888878131132192208094716507592827118206227920176437944148039328131644557671152237107353958063324022821897062441902001727883532737724028035940273499098306859549082280638579593875488118628866582322368180627942040507282712138806139050565286968317379378027023882300048328908290380054290724911202618207858110967649841229167362356120844693049454974188030322088659971377290209590358723053307572797985547015746392473744767341006800603998612424406763037144851691493773101325213432700751224588289334270763751558776382784189891578905882442777869552804793470141784904562820540826763210424963875972090242424235090957317632567634736620494489439232422637679984699007359895993330159458860390457159362055627261611926480355206028436207331753301842343961091806576139940817674938723742506569378476068244704049457928081937625702024796665246605221785605917950083071445172512975037236825067719936709048814819130898073097738703439258556590853594694027332303571051458586428906291060709530600360833434852448936053196596718344970141699099652153568152468381077184822592238216309914148030464792864028980379778964472580631753960103558694795980294482165848411004643812662650768267512907685174963904936380733167762237308347164590695613242664465324344495637781615591383727410588202196201101381930391515840436528310674274078170754028359961258815381488138390086021429332789189905363972578069018607117010232593012071883861528047429065734535772346867067258026348057306901514769484748785852537607562118558993008205203367226420336583762064957028344330816435071413014899852082950258834388316018963202957975548860785974216265909386739690723678225865423972817731370282746054083513370889021099555314127143815793662400156642597874050776203788558635528048754922246842647259064075747707160756748751181882007709340359689877822530411604406191899058400207726245858258642892786605246792522867226031822830535513861040432368498855922987106084404767030742841342099460892113375118073371416294340054499113205791923861476450474049407840130676717558955786772919063880595833623742041629209740671847146861014883811458541013724170942217349994859752168024225346731461115446236778973554728232601563220318648737544159663111366030381302803919245175613008104262492983038785036345362742794501643650106915110865062290855263852296360690092950308659800974051336743110775727044291256315624600502896964485372207718913852627836731192488471235715238675314656571013712812744786341406968607150559835102624480036691815215142693758069098650513500462575504908210840113496382681666170334194159911251327512023561618667967038434491852253349422921242472625206432961217488366174704583476694119781702599142766133282891838096013406795123356606494369033675464545796732941580182318048753732542570898998124083274986344978546861707889943719340479896469521995901110749950046834535371630059116185867506525885557007473199785954330020114977376971817668670697475710115782412750925654484179880543298990431109229873942579784415794022646419086746024212459153257225836160243738288438061231500418690485280784328767699944425560990201687034654467150472946257981551579397792943446546207622895857661556339655768806895575835923771823484717938885935217050312694780606843946445100879627575921479089439134676173776882559336873704226281160370564040179218342778368192432980651232983449958841712891639151804750198720347114757088102514513455501152625999824957708662926882074044437335259597305607284336858027605231847234391012980667014103376639884817493733000638498575660761209124381706389392679702017257338649074999055390111768516840414731785442536012757018598845214300067213890534691228556803496560338603245567951344500412246071399764214569060553783029341735009225570954901873253912586731917076235131294692453051912387164647564350590768796664126900824131065051461294628344790114447198215498497320704891339971105495603014245359989946119504158872662338968331106489992985562147945678347212401217484137567442953033129396150184084746369040773469797753938714851183607824274337598784564616847521711092440005770347166007315426166847848320167107456983169064635542276162251951584524375738523841103149592688922380148454365916745521790799699694248107041253111223881769322840083838753144253468715624142070091471864851955568920583012441707519084168121437982804715259304850898739409812572731890883921791212439428278503009639171508130060805454751739564539392240293845352585856522519159299191207415062525987051603207524168849215809573846194854578565099456527623615383836424063931013360378682368065165968297224461005616028591817907088331627169203751770778413437564828459719332914956829080544595128875039219145633784740343242441603683670317215819358509207479985906941183948814610232042500774647642535831583069150729097905346872199025643501411076162518218142385134545887117149946225131588306100230213649225662175637615258870499644916345561526806616348222952023830592430764584149712382546636335463620685932092659210009290136185524395037581927525860079968716139761744947678739425200154571074043174537196732737991841471524198153423575303667833916266684456783710972248447864898840070125665137885059387450868904020435385827847709305706679425432561419954362738278217397804018109444568026919056592572781455402619328626387656340336518195195198725376040857633571021868925659126195121024716899429159451283036152596435247036571087709446765982882395459968393746720366307246671568884882517784869269971292950846081606306179467250735167489403180603924872341378735370760552572445384460959222936893455945693916531194657155437081177832484112689233826217009488441272407355664176904642416485620369903991296970667689953437896133799785164343009529938081869470971605765134428921345421329885931877961440492197368146825706298488453610104111840588207533035847116431222917028016140653074870179663339627524251377835224990124168506492121919652478870155118873019442774488261143339364171636475090896754284229329907666386900320910913238913517979834018640386692395516355666477840811056196898787520232065626695602841337204729166295273544386119458995573130779071922479976719174944878801456964257195742642486843063146570310443560977010757869698041968337821064269347711262487307078261024700420430020419546063412265661191312066109635415303113187540605271089955749401287425284866281679235413944264501463592043936830781056307413178918313073495910608456875919955651283641315502736742156711133896611518826488868254298614133986220599397146026261272162781970419139913994956229351613285641921648142977572502308691735081321888350245945179049573341551955483426709317423075678830998749196386031700458285140751251798984544919097328063247934002611207418491119081624146374603723460143780419669392905983932037291873382636274077969716908430911541690549459390718395896846668390182624412062719671694506069025685046484482666014855536281029597227017111204181945008666227357716441020530408530454674964783197941316617109364193124068844213483931841466567639144107965794176900137766334423710903022066632918208335889349363049042609803994106567698472322665823404210106320734585371510138848414062248811771848702579004525800927878602521384893535664904611602615149668822340339040012430401733001398508263029579271504122719655124444719897538134045047669434864992010779850646158779367474214898109509028997460424237758437767873253183332200266120953300472056000125941703874459005595307529128849698506957616797633919246705470095124059346432307866636548788850082148934525849808340635577872406887529853291339569046366095477282883249815995785898253030795177322689315071226273682723170003288595863138627852910293640421734200954339373438597231373487459317475540674000092505434517885875747010921828434488863387737609846001885858242007269424278567339556862069142090643276168251361018718529013405948806833605024992763669264546694267794874258963229931137276811610276473528420578597497129354046750678433927868720047406193613282446256527271464569298149172915362105225865603643144428395742778525240169440171982500832453982420506021163919944263275913984112585947142213586892053297199217720869536158663877818285187512325126798565432325842194178883767875325758111919608215133362601207876183744805308485360443481796159010921163592414546002048584893630442861641616859459984687279332128618908894876115668861259445309132180183570595227348909318052955425093485743851133653517489885045924623926136472232145401400100650506519493245845557461633169134169902785057634455572387084803482397461173892404272371470448180662333603481612692333002515392064151864587720510066672731178260688738726232510546121301495112985949516307668969051214586289362329027244019421632033391610097919429527957025806065476754966309379935906928476282524899288569109047824543245543076830730944919620414974448872478900054466267689029065465362100914805301267623841854310772364201955980375848125492497492921662051591603347562757044822992184225254145442428237321484438601477286241982000242043732564399526392129749442096777042568204877182366526042073974125876504957860848268441367451009399066617107271431797360429994029856567700377157824172347176897508792412748932868302482844153061732079175785937169439016325185962496786714495481239620470499301552840199988695460886990673730525106962922836763938871809933556054610869036311621802411409006352271700450198283511605885148073437298665782353573279450231761799983229491803101767193392035990635775367452152827544502797371603437035436011190192559804150300302097717594258373842029825771428343789381966108502453079737066697572221822175321089416419105838896389414555754859892476150435020403787325015832101655471215447160199450747854780277982904943005649183503688524081535218827847741390274372896603186267249835541031556280009487237429456201344399490118264365873196943650779774982186562744273655295902142294582503255451675298298715620849788671231657522023934964998781800478577680174522084340938627532552155008161377551004141508199922193313161046695058869307105276014977586996361085805525314592302789382687535053787272888343588516220109527633893348873244594873405725128682710327842339514523634060464109753561603116871373690231405952142694650202949197022799029078304089158384037245573972616679598575563148698654065260783694756475823894521254586729401070924712236190893131513689002114855703061809726421829135412953852938127614757892219849202838385111156804939198143040105458251654694042701159616435111149686884506077039032399206322468175419598518309640818369591449937371277728848984788930419549108662792335040851360370495520212111705169850787561034208661262887977391276451778043601264123173633473898345272143891461457911076989678322392081343634687701705159520020360332784588348027667664704129181373720337065500593235786726858253282071753368648424880279636120052470862293399605243625270763523535815790293119634283856689019319588426805607526964131732139354647993379870678010523523731988404886321967976301195759314984927189211922154924811659419810141362871919581549764538029473261547616180312529666629122084342984504511010650092566090534507631549436671205870002321918765190442438800648383329403617327298702919554492426438634511257233930146137995022802947310945602952113847533028445225458537543077480444355769056206610366843779180051591116813066831477317372087201859930914682929627330301264143197613117730502991814711055956976329121535880959269151332862435017408571107731700570897691405357496226597294706539908726599032668463351897065554620826206970342491046506626892800035744095834055278468369073435252804413268898768344758175096107552123359849502523243875664795831301903282706021364114938802156316019716612998012614487095774833952734920306543061862443490500396062206868628834858398786533445906406561051199665707174226977000159341134597011386317860113793681333193827231969533205148373656605959757446231232596110551892207289830021696967215579491761984773233738482287751449584842003477487465329350400627887722860231325981520060085946570773975549166379192589971279969808599499933348662646764137474223785296267407566918591861276850353497549817756960596407431745902102311803338424152025115317858087306896228480786530877053246737083856875216444236748673858620647152937422616045407056786037298546607945668736057430204690090558585179487153318557142399861263284051523981977385701178376293319551864410141248309724178746322924663927307743442099074251851699365113709926998298030682441738201392432974233617267735546385787781595939978399795085690458483490694307855028506122679128751104462961029858140401170704894101084367581246059315902655370341845831427735078891347433177924867968029094999368493491252960536770942903672388147898453701177078831840197614827810263304838556926488932403939473930091735518802150460026709081619976256458873649002300275620441351432221722671673324643279488017018145563899893177251485969165254964718331668355967335528288108884553288405199171753140061983840689563231720267931746380754745116211038109493044275976636660300770286524605253124172557550578759745146459220897848968946742459705716425750108050760014786124424279205901062374072782882892902405605081882417398853683465777925753138752819212238057315190272690253372967592495824600991262152011646151785846699733207533602343510678517872901467020237631561943112213425110111204574613354193380994918185824386100294910354194676685513889364761601626192687758731091369670961544583486424117208414626380209224121422517251816445210438261475077258907568099160227932046769085908188469872328680035670400007869110287873204305533748992646309157603481421742113379086315935090506863742277544539273243167550342772093767706934265184359712638213148997896157796531453422958064507111137879695206411268373074529217457151909363644323233466468392454712343360892775514115464196834828943543191064718295332861394459533917607401653962395265358666875680365669148819408089513249996204307557303253031513597578700056737657850189650077632051904602786955577442667990604347574577546757773575461552501187941380336333466906134606953187304628535341781056628173005238087042827105889819627982228602186399144339927056662676434793536397337750493456655730584429507234310327226824215599577470044814246850177711393521803931508534608286972458110833861525877786629891104875400227993258306274802571057238088685110181129018403265201892495409631205768670072271162193463161847485378443160962886086335853798174918223534597628825567913647764301858564350093850759084050082871826406106520275791385184630657564093206303102577575296430049464305068323341199566447323170848681775006434264235032220811902780685035852117732473557440803488872417231054375504701025877826617132596485529150350260356397054319273404596241716319598234548446054616578229482640586782590598079594155115072822575576167915442046620527395555455003555285762254458992536558586158909074388555322394992245472763278174994784050280478695552558665496530337995847347973623124056406794321583763102790923857326565211980037018826542519023217017968108927062286015951211051754605034916599663386057372264809144911884860010939435153274399463823168182082239925620020868969058491524079594134397588469973135649717238692310647071388345374612996006141471142959951268606611085370327622146913584663395874311052602841789204420406617470868852325307538048732883271261218163809888075179314311581111731893619994052395341254535027570264925211919733523320634356896054799098980372360465784708140986296362846713269325057676562171950691547529106806853165317954919431940002368526054934088396803614556934209041877894788141360138040425236790078602949578346483163224496323644281042343131689223605971155454766182841812370292949978711170095157230212531886347654761821669692460771854168819586314292456376336735344777656142629983617514453000899214888838766798075328834345899807104042492694400445298575483140106879594285586701617368956898472788727369609603727172003129182099452654634297865942174556110853021265842191599198068380508154733595740686026177866871405272541643505136797086290012456274579471103012992978107784427041255955317436485890674540247076723104590216269120303697238272378547629607220290004523738179282889211786687415693841432437186405687567033371697359816716081100005192300527930569137852230659677181163686597813074440771830793417484579003714268685786118066088072951554503575079253664188641811813738141467750472186020872829087547963692471219816217248281618227296718699030409900503484353756914918047696550992991432620690615648960157125387980836534345343603225287199333453842590394577223381276975097840509994611387019112717121379566864071240428550660363596324458446795894099741609786724643976525857445018417952225861654200776058452506403441353927942947835840313456056864473223969688543400383382936222093609305119691900651020562358432210300669078036627372574913174311903390300062412359606342790116170396199771548294561409866351984905520284230658603005837875538859018012297080984861842644813393814330051594675174727848016999347223294217519882889186875737417339688099022070979058116254998256437641509221295227159469749773770232547325706659429736951984535084545537625936420174038947991746228394025264551683195286562491691108002851144742089788049586745132405625088210424242385147384880454552762306136524096950050900199335410233218867463898506477423090906557475119409474032334705467346115399429117456786587698233407421712660980132210324512928284683537438857169498474357196123655843587853075328003776472142509087374274133946540346665735293042008328903302252330882510673645242091367750118925131857808102480499514933560872559675674444902223797624421236881124481320226869522222581789629654715809686313215548811376125224944986912813833222486861476752801593001737883630346004778992078665181915400810768259355895548180375088480214285792032039129985081119031145722087417482156569324439474329433880442071894012254958025807651858121280685986607837224027392206296473212474266607744568949290641872522530720630632637726684992013555910232053589040266349796101813293280998008389326369863339512647426782537339127379062391856216341697090898957849844418505114167541956585879692656950484685594562105163949695944787036259996390154225393521839716916430466076962610881392921730819825985567933176870911970565488060835359339519083867758999398613130080227527381499816535858564269987951461211031593826747830894880516607013882445154193516353260542890691845498491674510241424422789851256978358956609214649724578107511215543349690243817673299103822160708358427745724819275024920627711198694128146378869692008419917987997918842611810460834448254632708706210724062159246815085081185922993634734313527641500822194020123029526441572493313600384315578964972639939720282595805359882274096048476544293264474055850975512222614237177492395210861131385067756091642718089200251949543519278719212916962121089891414341966676643536695610782823189463932504211273539853717753396998598787651250406060279746856446352095514222330724743066181910930990154500416223888650727526406624724248665800080382628527344578015951076983127213097409507024273469555301357687230429029776346966563336314457176127953956025288851269974010274155765786711491910525932178522332956727064369461348837893455031969453368727581638345863473722274666711140402905462430031403335459857940529171876487105510130929305508354919037655517747951534365534474862768424652130397179672098039098437136695791869880766532411821628496756862171696550019282534498579705374991583580104360226913690220241382057700652387075197625007380955469899338209345231780525931097644231623682088503023085287332972427078315089162531995558070117348245262692626554634852797013817193286679932220039750216819943041991074930203383477884836910098473524040650169398921064856344981517728871401243858892962041750178395704815005562909206548598599615435006558294502493575086079946553496153969532959996901064694526114285655040625429201050011429144386130865475093221857351481870577049963538117531520795307929629014192385877546871299424110232460777783670401630165990550059906781734657099199485406885622180253489930135006890082368971573286208924202372628481551005358194116645920398176703282542785251146709486512686124649289284035603040844643480484110227317326851260685176318306558898099009976263515841194826608095116033335532043437978430722766974251072492244876157923164585388352068566381577603997271876802126082138881122889470520968652043671279683414699147023578885075078841945312441141035366229178801767594061356484861628878900145696347067341871185107844824896790161284835862417983623487917633912428684645770757326212692314131879064498817213521533204614666220088361498061033434229193315956255418218890220473057373110923236497752963709993417303027353610171808774268665448234887652024000555544123534119878543985988212591568544741765738974996636872385551013317956761156913415823509217532121218204013279259650408628254693439145140278484068573281316229400538140664257112289763613737893212744268208083802671901183439907056693001100474698159871321493553627253961747449557546683317743809498445722554885856475776840343944331393564235622704648026002047123790410062324018609129294018209701117836505333276159733547066547477841212712080896227191836681881318064937123155553052979636843847221056560051128036853953262006379151754264821036020729017688188556906801193194029278904674316590849482226618424177360484920083719322204337966214290957940653504207755372370809651134468682154555369695066829891976881013095237434328524915805999523012141952156510630974911993973979682198874094642239541819502086338426394108771455639907059130539289324050825211975311106785292126828342219673394450825196191025334271573968190979132588059646608110020434289444760714359542358671491262635979228496860290457284323189630460539042433846740746638054986108394773439756886178946443029262036232686851637381826489087736680541235087570579010055023784067469181515540988568012302262182928109847741984480801073087727761590819365884052147152434956263659477509038691637858040109394759116760247105659561557654134178970521914633526625675085483354029084450131956939293422630005898321836467384666724368941683165754582200893103715602067257367606790478923505689823487391073359560988384601575873998653705860587166122189124268354356700565287724190408870060548985018303409114892945706100422194760435653389977861876697849262813698808754318365869991957649951055320562830209515031797774589813136773298951876636235107285223391624030441806440634810354307724167359847376988319233593292695492398981545796818765869306610535362666763625397320229068017985333272808259058678936829216927167421904840188619087372218398590341308556993186325412985299545699167287215562678597797443220074252633156253866003699659993408024291095321541781501023047235209368874188994070237385942116352296436662917541830102529561496808028678067918111854737919435522379780193901073946658955547324736754640588643962894884222989901734443901762410590015269841461207972228551294695616832458239907060943610088884994931120146873138821227469747050414971320867509470441589684908806046119136271878475010328842593649244929397368604941864806318823122933510432997637732506991029775420923463207797564139622562827885835789573331096743443409122313893271931894893487340041179964024834993544927744062799538178216470439147836022054666938214387053752768216977743559124973073000874089080150761494624423600200861282775777753891537067169946300316458424151119489030048473375310501224533518007078455271594251182370138917205019820709677540925189927431089000027235504400945228376142298555829261417451548727235923368683919200064319651450603035235982350051194939990741307218828506005656744716212524248893991853907352050902312675076697375103885021017251309408401194216784723522131165038589122792101109843877666886431176835083088069379384375948015575626246343055121628359323707136207346579611767910066017146285829124248606637781093219279276373615955159724031027326231156312770726952894497014885517611276637825249324753237718842661823207007827862256369805532730761122849584933309793944664268534915604009616048978598167325247202427939807658080778785720847985094755823068362712327955928734269225485260631700172830712181245700752210844130272041969745761852883859569467173320511748937002378843240332898245120766991077733881072306636548875115302301607731640943476802657219160987555384823666742452241162437508297522174657444292339554921117204569129254225679016971941313574410106063478525850920018619163601590900757370458824249328482869864925002429135755091210965270585621505815279913359902968153980239001501422577534926325478291704252774764775599611629553696287652014701630762108719619029892553777310342280690832842216612910803135715719127585348633898837712257414514091612554383863228070953129267294867879903518401386125142826725913237320206884805457431469955991216366910176203770241237922568971324715542312947130504010226738229924562622096603069121564799165656900281419616167492894873094448988024627823962820562849026747988081068489989702617229560578383359814497777343505467484506643017823077823511976600533411177802452962841773139909927803274702078779848542954674926848313543757800415467344215473604251338018840682782427433541095519035313829592306882008583014054542352944489603750464312620704577467051485003217162734095233517810445173771933491181812006432704719132933236110504544968092170838373342623901321037117864233262030028264688446374076407306575524230143524011814214722935872608122411476174393107516966623200668656076987997837986854250436394784421073520884087649542249409898885940937710503558336192085975092317728410331863757905301105740972961378747774438711485776142334062415162580577097873782817576011287777554010020460930545680894546063208099105636655426342915691277824149380438515283256068796956962984632972482119455753556626516773430596359413831739368040393155677872421309359512452251880102952305600266047490815966966774340331278509620119883407085116294720136675320757994618470703636846041643475426199062505292904433534363491645372702705658224659351855063294359003833508661349407001004896825427327734224318922095037409107601078806462847000015297775377750038674160033404811792439542070289980788187866225708815005652140674642577272857800458417297769472054072993296645393143064961833458650442478761554325337957255489088878381541113254251186201115159530368034802423317090227441433016600289260608269899868627741006090035566586234313298826147029333230373323475357952577812203156791582312996028646896842962248743441826123685206032885132792659250137512804767599300190388801568481965769755641720588209833788625635324471649426505649839029592097205361003679309877356278024764734203179290865523675956123381980130206918751883062535526346445130046066823222279753895054726491217200981994022025457909294685335195034886539205936149163387380366771844169562448563940096898791456552072377926007063638964801204528965451634087003095236500327736762667766003120297972865241935971574679021929113758387745429290343361519142700127104436630824494600547209223464604633910954528162353691232685545836850791599351259012422703504821082682906414636706933338594444107175611664280847027201537169516624248076093216018437857009180222165698746093760294032113582087600542728963738159876218211022348730920075723510901968486328563089126427295518246476230110221348696524597503273330129151861621491083106625911583649165134367332873381592952271043705233216456568751760570971057173673741674368704591903255422493118777303716211702386085300993588252251074989718548323187285767913989787434755913679922655204497794872454879083806205046720030230088923658326664284521543060550807899849915638300279381992937854622978697576315903952854433355755290872008163966568420248303380784546605330809575933455955076661912716308621366298760588878944379201555498905816359440327059059205440485737114965488106260888074180489446992488098275582935559213145141505730587440399968689065424568666073187578990844952160570019807692095891874785453019210615203758514683896930315292894575282079100118919903197312303435592446640755120573741691423256105686887731820227253569138571641262259007293390865092370671300811597328939883935926275425392442476840277031539835069683588254856704277223738222000833330533158648346718878363461766457442030134264932141739302636631325438087917890446579350923033790865353762583069993678215067217641848635440740964837007884023368274856381642279462322416867308643672532909255959274136696034591685616258128167491198049712358548394187640823569451177426387420108715421778841879846985571812563393275866686678372999419252248506869404960502776458287108415840877404187229601670475442242008429432014726023054654030816036581905174956187842757595842046004257850800403073060713219345466927233349854806175704401287678735724625111708809718546545697173985265549769793215139846193871145119639712063600756343366069485820874472883430581763353695803113992725292769104485915575302744539197734602531040619510557280581016091867499208912578089640368157759313673216234792221001548942439917712512540558217464854901933856086878004316948324467586892855934737018943137420246405960608740845989888667728625982965700923229898372804295611034048804070869024565655553995113360360349173841300355737432860298175341746565567725541489952076243507627162266684333422138694667198776401294135427652749980106051675556795898096630693954044562140864907646563364260548532335525297677624912456326872777556117123504966103639607318522553024179961648693507328091781721984110614471948279668897551909832914780216048479522068025958841274346381251283315275043851829374235534084980908706710760988953154903479514211074443119971993697900377532544054113120457492885976200452265591645668351474877642414807479060321191520475747924989602882894707201317525571952955947946356734702570198558053411617916082138502988040256578073292495324241605311733788291903965041933515773755206071025273730113680554371837712391686487989403029542788260556945648607422902471066727907335132989666279650852437850233186335192818736486093017080678239531648887384480941652755279861907939401510890318426326784466758518753210546146516293221809631752363484991384064097265545949093490139631725348857299469092857980484325536234960814372939852130833295116533997393893218847653052111846895960681789566180306573667392638765209139886881228031619805209596083870225072338301892552462156975792944753528886616836179669771975290213955566353932216867303584391081194885072596145820109566223823737363988148121317997589255522773348297350267668297566961460875265074316145750265104545538180852157718208048102502640307438642244584365210960478638150315701205788444265768025559897089459691524940863123324338793570238095200495411439933227240355356249918949980346017636457394515923427438162190669148196756301931335782622183188854627720761693465657049352156025363828057517484947895192666335890689723179827808137332647871137775286915635739078529386277029985059166725158290714552877434831896701380868163523140962543964442204690672133743678598166897134468205609010157692275947449521737111123548791112100603125352572105938112829246009562061552774166738257161434619196142962676283517481539748256014389060844030744263025061278657095544342714818484849085947987250456643818932630228668765688218705419137452737049225159356928256028544106830719658983286136593199884598753215443741436977768169529799138427410706457112006357075170925554325703810989122957739132624556274312653316649191431730075177370071977267685135495361654886662262585175411438718948318843043256919686833022739398429527074747982439046437548984313316020167603905908487621974694291723697412864772913248478617884783656009177982209062284218547260442083472463108349233224106792712034761206681816000875885134359183878767881322954621732737773649820905502239610189825454141128377288687925619688276453581151703277768329731040359513829384708254387916911612979338942117486067736796423938393359971621091457276234670505789985753866360894617186321326519442906055522416808991187579910073138073431471132660933299511932296896690728638054638905544929948303381436711209418068186332683560910379777059847857034509376643141952913468063364555575168676355324127427920635751870271117082964437475294145442595196214446598166457083729981762403904890332921397197176342341618968512146535284890020054968688897275409011401770905096199682389676560844075972601885520672733548526507795411592347875889789331099615127709566154058530151703337372026667215212560145381298092288297877208115367772285012057915807549452850797221896834809394630353368724676148968550182785253034273468487789170510231025236711029277610596402776235230091489380374837630851950465964758613528369064006092206791531960508482427377165437070467035604063244707328383137818134319098555208346413760401053028091655078268639491617382117615516659064051245080569356525676789701129787982356865504268734559945058068253392718712205810465081326658213603981953923740322847095628695860214041000423340142103697254345290779313849993104760864461360304850465192200767506458496852633064809575578305523502128154577997880229233095702949127571822828772577537479335471315898477986598909536379917703760173262524472853604577563429030217866333825302439861882054488096464944050905113898093950970895623899170082918293260161925480351426681795794749048994537933237989035305101723644481121605311665825090831058150614703481560035833102636228413300918379394364757432257054208356005270224120192493405814412309937848612276351209798605594393990761970588498165407465806276988773193905982331792401244217846748064085331724266552765166611065668003120438848859903333336233583162253081974036661633230011185033360066014938616933641401474868603908459301515258111077286786877988065549803310634334473175099711696819925815828193232181491496314529497644256094214189243835765703216454388855919184306310201670002332992369131903958938854322625456331820110257706504132669887539394268683875876912588847859257301840723059849699562670077001028154373417335295791797605978966923874255609023018284244487333347135869860233120728336211894530058896697046587076096252040177035402599266107262072626251730251269650589058554920940425411191234431549619007422158368168498816032220970746894661270574874178504021354791987246365775356559116128558805286358355485544012742579294313045636382923511050330017207032060376551216311356772978514840656066655670722721261516132771816677298951006615331917449964368332700892326751218740219357285831020029052378430028522398095021588393615121203839205182909647839895779316927009398980898185022104363005054550468473539668946731616845337689951056475503613303585521171640224267568243316913664307237982028445744249298351780002485632276622664839777546965871526897357629332730154537376713073920566032458349554012872099164980798290881030162347550510575320296640178073350117451102683493377020627899299790420259540885504110408741637039474996776285581035614939567347327102550164042600124425302989541741552741601129094128694663191831956622537062257202654957527898246071095834097164335892328745162456289085296220512448109016273275885574713382905035549967520290398916326990775417305838425726819753206822833296890723052228850825229983132696673383025127601086149917801413008948022517104994680263364534021951581494725329162284270405702634109987522983977603282990532422561378528143924505125007308491881702070841626913718311730800509770874313972813674889840160398626191854172827388020864329089196235781258914876722398357815809523923853988461502917899621359294606655864184586438570907638933225379741500905681466998130852760668428797211905800667868953147286472815014161939163325507273937331597920553967741058978283761650442953721949186141370055048415261447651429595868911937120678359708110347087815967166510363586567199136918149858118131384658378885985698678514570685877375852018639177424566368554392136359298237806855115992351846719754027494838449619111886047945948666918418768248846422131594524487107801544797179853068824196374052046194958246509768388313444017036128115040157544574229170480120513269521176058896842229787044605410793764352590549550873192309761481374121634342160403208906040349006255758056399231421195867088267258339961990754044864667532909190294648525156591768383420075285955318953594946408877149532764986489525405031805892974494129177385383590820770052703672049357959240497498169908245574201494906353773269296478302417582534013245101244774460889212418310970420685201866341801756916234141780997114585027953295538932335202816371767552055539268490088875375159243212666190121536547294737512424905928288457165010751169907239739104485589572767255761433363961843375132574129528015723740362340079819529866097440399017822882693109818183916401630696557887286128718213732296342078246156995594894054290303352132627555149434409281077823270163459935840830293857198240003043649701805627787025447853024018599210606822567247591215769485995236018642553021953661691941274306052848761983246361498360092107035869243320729663147232405560268599063957652047942718198833695259531498376197791623124815042048497987417783808819976096660385839630491650020686539055372661969694079889833739347119671071486541459556632315422545951828477373688387212664001297308744303231579373996849963749853235415561315857505861570882030372828378585468147265335816390892609719075151123492395329317794682706297078348437005044119860539002400480137049005399548309649267788571083899787530861776150156447821348092719788512870726300637021796161528646466214707392984546104740803578809159409467862700984694561046736433927580386704333524712104941450170709114613660033220531041790030732400643645059310686263523495882162198362679287380741037600233724295245606544662095217243797965162235768001675067660477872758473133523059664026748851131294074914421877575749427175435051876543940175782636283338223426799845580662044386095255019600027734011738462323431899067484040547624936807492889980817924657822792674393879422477082501338270485965998082605772271497911913829012609308385443138955620705907647487757716113373257287852679678148512978744895634925329349562868325642162604009567187284268065001812990738114367596108333581875721326771877215698720444999045044135659709068734809523599046482134163891637662628676729939244306991519614089350538159363561994236266659108923834564727520750827870151877103505274365688595363560817505646914632586089718387183117391959241882601306539298563946544075957786776571873795960738347655690855184747854910635911274435307691472214184721218191817627006251338702767198690728289948837146813292541219667780432831424575910924662731526851018519551891122869191939867135184757820614848772796944858346104928111926608722658098069837571318903221088224056097593434268389923191306127413704637890718572755736154016090706541434282315954913368661243460831238823242183703592358616616247765753280483124750376558227711365426388893784808045662052702437596873200703993761532401336153495653047630847910715716557311485639501025687977828222586401432042132864641190929727015151234308219541344376398193873394572958478969248653739448235788005572279839076737202963676600749499213445518600254759327666809453724757879728721920116743543924460103397980462734923579565098092965128557939863497110143768054703381973571854448119245874228748054201221744549786462755276938276070464746711232753591838417895860306722253100043211940554748667340826062625269701233140818349739478686253666558939775267961948505806708002686721304880239362412023184839502574213379328456542442665764868100403262729089368980217073900436418870032221853572889204048493749368492981304681612349928975081509536807586336234293632541047672523549505964263771330747890331815879304055501202933450032670688711252728760115707102935841479077860962700550760100508405373807730448777832656103303283232251704916128495392697105369669215351360615344587439803536648884229381938425403991350454574466193153190512413983120878412534215213548821105071121133773594159448740110024313072788257906188589906812418650457988646916612752327744903677874297987779684420921671006258195187551050153645482773815096456118714160696718483096532635164740037726481180341016439755111803446741739225373286041804331917891206803568594417736809971711441150680969600991510870721241355169002806210745664042309518187067296569102156882147701673624848694072345564683782107033419165962838667856783512707220477772912670932181115487248870928866899314680849511354499492333192016301501684399148758242966274087752394041708505473345342232887394137281166855062743816283750645782488094133143375451768022483681734348117165793168222575783581457692954391857432367762436553658007141762145279268625784858116019191610380915280127341533757265338387199463442487662004268614475013423826408367895100584179034055921305104697270546165193776322012790934237460089555578721769753524541842878760986912667041529805326867568529236718198918712793285008573207705914368968837861313536204851341982910965651927711019097202398357154100468025347956220649750699997686644831342763562482676188168886846503924501036876004423833142734561298281965440761126083071652280127319063689212335232357614622601025312819307362292116005919232248488819562264236978421055655570787594142257914839357586930029394948633292814308323368902326549023233741613483490294311234067779423895735878676758387426819077203086068223692152186958270692227625546506894917733365649931262199643098736771706743080548119156958092085202907186639258445742174161134496686809106703367468761772156024468628318386544772505715705611969130618918013955575323625128973217240902000152994771084092492608445137542608527827742284753566720900044562541512328251165986176271311677575175433871620271953269837606351372658580257244074907691205026652673886323916623636578820367725235131924089740939351029213919701095626030053712328242557467005249668545563937253515552810481145318349730465521263221141169490565721637421998414215698268488386232282633617719270723401591551928134970310818683116325561291144590836173322667836256383689851946055137259483915695286067887471297808543117807178474186683198131740338306761642097816431038232430705983976279232005925416550124517456483349934300338058066455631487953090674305580576053626785753013930864328445241797813030905656206421552797544251680265052873773173710921608930868276893882598760774912215672674152889649787910298052033714893331547863119441353443439086792379300216781801910131618585892403198377441582236836202162417835866606329699528314130147167277837279455012712160113931385840726425564801255681666822780360340031973186341263006714499221593230662953596818007581724882850115566186616757665828656022336102328814296819689026838334292802412808144237518959266231848820653509638870847085289011012191021165130935860236572270303113250855044048044771690725137458485338187640914684159089130801438632528885497624302850109125248070946743875418619984356964795847696755411992266742417908250992578615483186583766207642917124240235195056532989780468613765580676610707322086370980237496472336807620944449579549014886820098264061288685194646830318471177688598985886994087179251831289714808881845869980474514723533192066640932909361984994116252057905800314431086365198447613693836108759370256148869275221470312943649048704213770060573039224184726556521020035727882685385744190572380136921905701823931631004753507924083515592486023221312127169985067393397546664669307309051444152284161744456149853199873297072901255741009022606626926118131413462353600258880488866924902481250707401970505632472830935981195282633697837851268931274643511678275803360805431801735766575225679696546873426034464725721026347627040548276107503543167425542245806802019328658696913538298438888965476796899672418665410783236020254010672394776845995086188332574046869777687600659716644891068132738184504159668108464792887441584558137476268769061557895617189759579804535021424640392685418803680524299148727265628644783047705388357526085969698762325686372153817308895270545670924350669501675455659335510570969142843604667059730961225367303133299363145571026731285585413264769245623306442355211228474871443637796753233572971196666662322966464971653812089520164273513976935783642786501119869962072877487804722960180338134122037677913159635103727245380401799122804754829123380278010228535583244688056512819318441959210358173350114691308943366882218664398084182797652884413681220754314236282848519932921830574081556745725519417918457943105706663846922209405820166178662394363515048345588708234844019292562709649074932820433582418312563549657713883155484627490180622373788091637008650095811255216937253791113784762794846415511451547566788809566279499284006817216823362604018691450758741089240927261749787620424369440858591142784987852492099953127908146685558423251637518985173541025968801883908677593270256239969321575853362942040589431074979951118338710438002839525445727068941380272333206195961397845310971543560592055502043697130746648408133038249920780291450221584134937394133433504325401013220506640077067625513321350800820274965005387044544249571830268591510916275561423990437269373526625408227939256357166705018791277865531475622146988594036953239515985457001955615810278770545794210915415894348720299242356251430928445838756147275031751960636101000259172480562755518169198298508614131662365668002050237426647512377948712454873607920527577439322673139301831434981067918817410137853948336451807565358669274092899652138223662192065681281510731990828373742683425795197402877311812296404864656866504992705227566776589969279700875884636567748057341576157339533196317333634274158080892347453852761298279089712986042030145484955364055401054433849904631876137312308039949945108501092649276209510631808568304216734574778071914428167859851628055149531664208628528818556011356636677472171743191338756627281219742537482282626298194364239710930886260154602249192476788624259075709244480318167367239088948136877100339251347023502746341251044886945147882387291126928468042304693144473165913980822107508146105488875328291829880833916460243199304944656473047791964197855847145257814271506888056996871424926323144353277200069137208619791064307278833686417540355279576645670060231948149456528354024374405105097062042139202955550958552225132065361412694732077523709966668848668216738678331034133922511647526459674981312322753996788934781440466338774543178815953461952424371486664532477925895521671080754796455974588500002924081877109133267136463054361589700060774799547290627772226215400878580755732841329644309119408563896456689804690559932111846317009724602318353810703713956596928353377652597229181650170011634965824797523719804348504919354677971385871490691346114745142419660256081256949003954883752372599164187874972007384953311018558464268094748933152743622920141241673475048526307183298454640900354571230792289107165616125027071833090954729885798233004850613430670775469435344895598161620470045131847212893867481795534127688136523083627264630613260354667218084181699838595134420662699943736488196459399601456213294243257315249178077959820275216549315802530391432220544174226265730622333694193286883782036776076762184460513056938652060683450363658772168738511832953933670033091288120337659765543283876829228627977907955426892143263115098841129203502205530139283726209579889851331468866587760191159437129642207728492210323360183649764805116380039060067663510284079152823379571790654310436534240535567973654744307877514084576055830916149674143285221858394735847850792058200864265578063343184835815806813948486816264443594987827589122719649171016985638770929605817073360623263548169068078650854957782154540059776335102930994453731078250825939294953906616481864060356550948973245147444070763221834575541385118474516866639032131605707214528138033553258391224917188026827691518690744303611643347884269263533793641523419826441192582727975684613104004254760445811318111134058281920496634137753983993117603345533639985056469849190905759260890301363395091421296864440931235639025488995377380329996112612436065876671837580279687888217547770412524435427348897500002600035038626254757495751330652983370641162117344468069385481258293899903097208140928260425302261623958975174091968330848981400009628421408686853086098929383959796366942270117475681125806729506927621030307997265495955969652059498280517197808539847141912857782965416164707563092719582088192449847378620837310770763439782263010591630941931882642871062019647751100822291260247430151262616369679820865017708311669156893864372886385438043082292141525119048671827733017386170544049279966979458925185223523562304974905458044692601016741694717737293163161197370173625721941951437416230668497011744435263398990454145519042337420803543894564012201012284840111726048723236923611485603896063113334396638403420786506741777572736332519915168628632537221343249967851966638558133742965844999126954016242599689015485699775654486763171288548831378702444061696519262460231223048354740019036344973244601017236978019929248145363698292854145133950896707226566285926884907509887253625384388339333053650715240331451958418910254244571619302077471434092237771237911653609149425871393010688777054486838829645257643900468963749845311847756235160965329631469156617717814494961212576679576026597675664795442683169942144324312272597638499030855873833279202348715476864683765068519928178668921986630978489768963622893837592979592460686004984214267991033131577053755300048015539360050294765438844788964197458698919927122552780627743815998493800680409060713608624379249703471429686829114549797944108197530272154399450430319567136027937382076259198591914832007325967889328457783944620328534510104392447451407546338204835849869035617599840002129098398769652485107645457586480097810377924047506049918173093633678960754658627733682144400642632643475300715054423040977044834476940332836575306929900863707428022685017078836569832340917964629675123342228131113146542174796023767067766866816472292451504981844616094071447861746390029214818385905107961176391857328616668714698755532534804145362658827200742952767458414850432120568741416103875761933452635995635807592305157061587602853928561963894240200203706566053855354225258311660796071796488172110846367654728735996837509755488882666013539028185809787246183561346614925070673730679607974619532972562206384045079656811375334202744790795909438737701892082342501883857080705048325533302207716053256819426785496561448553475631982227035968046203959491477843324138365270825892808351765439070313344893049826522816810681085372611364305161391828357671572525821983372278526152436219942772204261514599888803117299151794449741819076224542074553098234133772459814366195952369093923570434613167381781824037738500871125169506312564793912955915163860710982278225459841337049772611355790333306021401665036039739916712092479527498564389311109628950027848453536362674644181156053323652241824997884864721166900628721461644048234239872474990726819336833270767379406571768126552973366683542966532360206429283354032275370535025989726051342793477498607439069757713424249883497563740736233715795298235362338881154456407423276711036069620611394329280046159084340413803076339035909640475625561354056295701235395406776240015060074333155053168759611724890931780923851432480806049863065608683661307772291464467111879721554648576659615443111042307222678965143478836303501551636402471581271736586917131463280374172590131585613412133697703224613477949400797794856065668712989869430831383608175655815972725713569174609432279478079854448628777348654253297535730171666964485615505163497812716695614021678234604241816257138674294631179754391374465927193405894101949727976657076263234128889253597417393543142907934645265384715849371748188398588352444937146599297268236661774653206300852998313701466664691048374972299440426582042558138140739853210293459230725430386394262944624097638173040989395306397843279032922761438607384934506884055470078270948612180461464592212339828608257646220193107650626218413727003160634991391246617765752474823634911287471912480630740856458050921133289723299297369873920361470069995375478482309959850811271410881067817864284342170402633919619144695841543416041868823898125388650816403505750624935605084972121693972898645226197164842144455680083584580632070589160448945263416291383264057960629040188949916740753079741422272007504601951541464395046830846046319524683119095429854299727358005067639370906685800156255570150942064920432367196961454855928513698247194974446353314356951454815012581814597837820623257957966988208714683945766687175355325097863612447383936920770046271098525937580610092081508264838000833946483370543256292014323555549612778089618789832715848869672645734873572926037611387429734484299542757045537490203955682301607192468362683498144689811830999846983364755885255317037399124919723275663633404579757324764972427263485590235420824699780147522239123625571636515039136991268867827184825646314546079750816771347704686676917112072745306727530719010429868428489594017971243676387367538514451931668487117917088432951868851487464845310269083180896989396274581024354620807040229132766852620146412970265343452849210078910503948065162423905982171023614032911094747456225975605405960127581117337183730479291760141248739456376194518951133791681412820028863091494440894718402380295652662640547678436557197984069820739593228380012348347777952741928661783946435118888086677951883166087802600980222450869075396135107069453232870554096498821930077698246110818923928344963796544038943318769372260798305274528439616719668582413839895659587354619973514029129010173559535418851429670029913757735171634450078498350353693874409611332163639210182117696191588882824058013019111377458524150751678887940683619118669896552118988681429731145057142078749681819220540850803162392004710906828006869636862909419311514983550990004008082786532962520878883216001958689534391974333493977255327606667226020406974183829123668992958682373770531357087121317148005585240309597470910028837815154424399136872718139254270632856255771184399239119868429451464441770599604020772774424689142755038890949724510710550586982126918294712661480625209291588039430066410971602688251240920867862646001018237467380808814307820377941182767232214370512728110926366513226787287196972780149530446645985672127439525080338631683727106820850257959013313893195496945477613668769041185025595682423481776169790922654546347865334182168647470221384038665054225009084518226905774293910679281835693185405974018070438665813162707174370067831447564948396846701628398644243345211190601747229078247688798671018703850876926252758728474954486152471187968275650623407513047013532278514919100120394609518771465535232429723036935244961175766695807616660040262968471377260371222922509154485706195925455264704431929581489777806523562445647096898316187295999943539831013722332065591524247347907450748293945006509080572885642394407600329615274168750323445287129864743021426388772000352433275814704273025973436314347221949133622205613827351479294273033192081712589222856295681316861124598757973953839779827227383340149801755488330822852529179220886363110322064488517007963778047753731212848156190220800454152831430751587255395434909071137684269827278473604344977739251453045341352950129399675936680906922396938606727671473344678697979324591477335893462552043647204589958528155098880145566267356935159760797413140674820641862092413025852107900763839029031032507382018175212788081101822338775621159242010189355370576921194103826628304977247032565470234724899295694728383124289297480595096694098336193201638779266277076772723212289347034036269104781221777532099668528204925428393605839326613641441984685685561172411855161127142223661402643896689997888399867094468826848880895168181668289244759481629840675466181901889139021447784648881873391032231421408584402800568981401827541273667191809498312975524407560317222695657136098678023810392322200948901249111975152467288053306718969092206537583254598326357485622193076580757428502443273262746474204319872570949258810586781119678354365738221964687914598714401352641329894887412172777736032045873002618743800338842146132312669017635399175384893049586470073007081164947428162542526788226389210546340986072620168429940659712358370074743986766920949125107273164914684691928532728778560027769177415034317279616261509828497731650784645396593783081264953213121669646693157015405914625094141275291610410824386460642195626566717399070276284324780668662722232693604532284563622769203721735781322757358693407009883333622279099227779912848844974827745763440927702332084333063475584304753485788316817174674698275921849012131004729413676546821409247908774388564302700716931215340538032827973270731850036688732638809284247444823976890915354398519681940858145606182735024920730254759580604159413513535407459163474406792772026774060022833171703460538516992500311775208772025592809826168081649161892365399716393167109285869778957565262168516715891359583525043348773283262485611597550436106764112926413494840812715449838626848001601932949262899166386678720623418329867163708838656430754535135406279009463326975675781841450166540153490331016974219672472840713869578455945259780273020694717210006189653087901953769841485907132510246555887508911021170602873281688497347480173095962982229620880601847542756694231849979941508972319397202654956989954382863993372345202904499814362180055879768055719764563229567069344400780219896311726429355398153194243190898491728243848209076435322343624348870711821647931943811210684549259174733081562134978647512264004200836152256132059031566043837057095647558440280191127478598049458245923141216855098870890031765812699013539835940607889034760370185850854956026320109003154049771274462675178694581675669609985446430025693017201422270988819851681730224473351223633203603925598010525510250680470990717694174218026760777179483251650413414642608315921317306681114510588506913491389816047734509609253489130515296392490769593641919408194907596005902758452929689700726925627511936838749213683225120503943747768025764733955287218804651777861974615542315762027159901026780937389332198738985541617887723369878320247999223380648247307805594064735137974601844734177969533567834098269705878099869482201594292504175229218541896736013562357481919544573153196080702889514778145867247262758742217899865356531371840800680113941817661524497157177373079664696187060088627014468821850416571929687957121228005475848046232753864601513556705606010150042082413673397543798708410703940204232315326208869492483483008099913863839872710356889898596330692849092924841836077150599502666248998331837097579073419213674880988204689391573634962878828931773134728815514744526078200873347328239623391764540459644380148695646337063111728538680153763432622234047668090052582943289198758260412203996186478161038367321810108243171445673856236231978530848141318461752089857609388066279527923830081554371892491815657207323664121958522323135839506091407377245086344342441843691698653411311132685224817914946607937071865114090259846965999310025976168661604420473424692867810030056507029846846576395271323803160857549152072958142336610290141032101778654050789179482069162948149755228727420283298907850542197117657915537286648646075498808657748466794750191825783511111977117670404465818926173471828859855997759834059231503825027783971669787410815769895960170051342775425274809872327142002879062314441345486081445489391770193176830812895063372522235346440734398582536968023916547176925616862870100178633085940761344534393541959665303675230561473489560874820477028718422617843807889054173412579323540125980226060870873522424246324173363116487197499456200597508702248640200262049798297725247205037808487398707104705548099261025452523861624673967033841487618550581986326741913851024482479928936832259628223970944636160947490143253773179173183165702661397726468265821392434331124825952123673002991971412827489261158815410740723634227008866003211308840966918573814131476512383417288445075623863048595383185132003921301496175594860844070475967813907111157223407496094260431381787638607327741461658690268438197583186138481254665448465920538437905646176273575732319264822916716989160073186701412000683597204456165343365315332281703782214083885382035444427486080078273105122342212531070663212216626789808465357106734385370338475535031334940279542623030654985062812054474619809788617983483729237382030869520600864576761097161799056956757203135802996441200932376845343464597452283714263750686394277471928144309031599213211293832694671107890302606389938998095904340979566162358076715024099687241715248700998542855882522907936521468664532952472749707370675982385997684287481286269948426961226747764783893651683896679089498569981698658465214245917256522651509233401209609370664186439478281699022308856817063763879793904936006840810333686299653267996167190914926186715841812999266736572886132421490106784798036555261882668368102064344206395537336775697964164535778456489504168747601846161029839523465112020131146027558899007757442395339354067204966136131205892096781194634876813253160315267931299884632759966327516759034430746676860798053260193249848838278061837413531712525743613121565368541628348502814937799130051547208134918197456621833055995949940012262988312978082259458211482762568620223043040970945211304979906586842411107555675287424006803315698746315961812036136282091022855682960351690628696993089633182888756391706081350572361720172837980663306608894827331388609550231971099737807205575331242598218641717775394680670118734746344267637281816944915533800726468240373952953103077122083728549734803778352441631214063551226442664280934796225905202464004667027951310630345176881439178580844581731639852751551449288900924551835268339905999530246279863362889755024396600586906822059409661343860172943148161093298187023405264137302917891760761574049769949019266914036176935800941934286229357639001218542144768841882709245389867553994724164102238650049268008229478748285793650795646707831260494322389417521317275708600270850714185274011692717233737773916194518228494108132638049469720711615544892597235927478035062334149704096377256571458111801228760653043215640670255667510289002357149535814050349310071599057013372101974259807567679212033855748451252280066031878527076986046243233379304180911975592609904897562292758752353885024941371956975547590906781224203909588316279859250006838380259797445854718546998613084764403800317699088747742975386655236889193913107010026955742988738897612059605572138028052012251115665271743026446659040296244707227175632352332179411742729684573556652358770914332391216083719179609649431126040481088748139124794964456218191410933491098854678579294646710251155601288491221549031342427933153432002173481422234389715446009266145563948751199248115104468617602402900667618023239981735928322433952995316650284511898855365226331831415398044840278339141076138211103152679759050393488555469018020977686977641452359773486011575448746907568208785938077245074828900158555880866936227261024540360314645314732424824386553297382114186332156244174987628561716819187677792368387407533608748431473492574595244129250222078642005900186121041759725848608769941334201454885201787154519622598355169078339432433019926295942373653717221000376237118167343962160725854307161688589755301761668621170279832705091981306363327255080275879012821228556813460952858924813189957261895750665525932113616951285455706753946736692066116863577929867519081445693828777618364110515144265652743307610292264246587225460720221939513815204764323893447720426307139871377643567876736331813023243830089666369500166636536210169624921656764000865300398730502310671374389957087797048371195805881875710217787640516384793988543740053752906187869953485894190773679441866206489051539908225161073238419344036792842378761806492501228731549342462593626088425592168660554174066406288543055438060726944261376915713651751491921223074929968553608046262056679129700987195001970204866740768451919819431764470689637244954697441661378440585761874373819343916531786444780937360453302986533394172134203765891035719292693089164666686233471796619029783878075497951889538641897272760320778794883556528138859014130612344161051316772014391241916899572021484181768257419193692106335683355606702003132496767934355572067345300928534620490505556059983711077176614828576525328657583348653052067356145285310370210569008447039649364563508703285437418908846689728648622007505173709880801232835416928388364859783914040252723694923194825919991516064628864037133578051612912423386862202550951554101967682817836646326034094310442543589890483305388592557607621525587227237117362980732753561120701792075093959516765727130885637974282999681845717883897773537224732598164766610114434597110687693333272157917694312565384649641204046145191025097651252441599086983262484229855876964501325615388935878509686789098073008626780430559391868505243423489910488781098667129574665456884125342512882215362165993737163114453194643259058471588527237406062356160424446720722918397518511870074369404069079624012018812186877408950570455557223063283257187858437386606772349444207912069498929997940236258846007877854863543510958077464827914234436534634792520916493594353072733629383897463226955159588166278177900463163619638793485852576917801954570043219132508663688414373595701044785479268039761112543586952233621111149168764032634800228495036622493390941369543763229320734523360310975591948710126033293876198302750523849461644505645316309045384723954577889861952016808963272180990388675152490965212311738401350599388841433906195227583100711104452608967672867645091510144375168103817142051009371896881010829825887011446371588883273187518887201061843279405537016428770276572614317343329467223840585237676306743918729534372345321088252590905116441850046094458125310423534073114845768891754415979014511137059425163902140756448488772682850093881657379615088740115049504147068449343050733206781563596136948867330525927289863049012512350450047291553994696910910809257252469104690173661157955180093063830189814309856908018061426590736874349967345187791178363890671771703727019741632153754993393215279445573780144814008215726744457912483180690910691341246244474593319882127157554371942607495612521955039196737376365420228147908374484062149242850545155596328909480573505983116886497679682105762488298149872936054129287045101658774189146584339039572809684517801636700913894355101127677139140051637316868852713950555946411365143121118197810230032815060120738896509234816669376126310163432666227089155199296494120218615807644373389654781372532753972098223842667345462170478742393270828495211708815369611799728824117770873937749590744313026968198818062562118498108026393319553564690456228358828912381448972883129201917921108038096196997011965737618524752919136765099307069197460009836702090340079253429646480398417666055752718004068672448509771755959168567160431299358337175427176945358415646806536525391570888987731483625690780423101351502865628510436914130274845590281300764944505205014688299740638799656922039770230376692371926488008785709290115163936815813421853716345665576318709238868320767723643351640292205195443033183668739739698962465967451587330471601696411285990348797344317171701215750173551886466163623276206990344542714745875783719732310128373888767578826740352480892677297682392658104154403526733370025277211960279737131945568899348097324150981971053067674624453367939340435373934749071222974697553532934549194018236936173586001947422141756097986495088970249647851001466639644474173426755211220460668499930759758567630366956343516580877240983796400593006533623966634315319764093682479483975496257905332250326685518596769395317165056465288474879935394285690028480745100563889974482982641086762461476246519328419568297745889898889649205476726426958183288192253924232308785091409830718200778304669054755675068223290770503114517409067743323832957589895338848944072344491552769169716092245397077610312588355229345067944694845037104383579134281865098817549589149709843444348218197743970768217590864738215214393403737702819393771342685972787662300310601997461044076462327905568797761921817041187737036160942231806145427507911788168691045667709621489153270319193091155190027131838364441402746338431275846278407963760612995569060175841257558956063990179459439189374884872077571459455516532071498632934487032820084555068665863031901375857636771265070340362242404559231243752484995239577024793134555572166707962380729543917001824656615432827548589033695382236976449570313167224527521568399063563349677472848278789924580124056198516527476321619886324167625523026548268914413994350414453628417039611528149905363377084764807792284555606455585865138826445565534414197978588050038225246488742033837073686141590585290498318297986234155137762966711736528097441502291159212964849103183804768862876686800889815498669575161037933838313737902238895515718276899072255084051380399618995165414793340801767728616455330670705216754738199426537960588030279183931026474641757445909112454673760113185805426224891573409281555531102118449164679085023026670153075016407088417912230387264158755559788900392442011471706092223424397076511188936878165043901665693784223517382040925787100329943939720312228075885602313801138129035692889533108977994311154340994399438261298636990447648263237291936400276819538778184613498994714684059547491269916154312600623209009228866612343121342269898193568736899377188860915666903163758371859600621668348993379193332127523405212206223435577991329286791161809747650218416431249428946387181143257607080371546648690269341632091659871461452100711148255809114238072825483273854816160183459310517999520739669698740567533003064424510180900641618792721952887577361482605902200880804737196389763116546979871891078157335486763517464377060682120926956044989297082175867294668277882758855315755463477121347416989176458698719333535397144702977827884267930500563230097352296494606363729211093564435052298422814720441426506785756472875263505558630343803791926779404884218522503846563496063770782549427174737814234626792813163256220538853945254848953162584285118672496898118355272446676030456023645983867780760796563867308404083791533212445588827299992868388411334207093176056164828545452962005547916712357786438968865362021277056697238787345118164882142638919094759701934122363439160403003047070640888684159863275740973193685418261048288368843727446442794735500485197423500151895171997704573072766515821945518167184320906245675972977668263736941067442047749359775984636281673381448836528278377602031842903941311260357571490033835699340472969188178757377456198298106825818170571323744222812716923361299234970566949361138419511533768942053707797111465480354235629443639663683737998989751220990682956553297778942689018180157608586342515209758277513902029694259888968937076462212864808900487708856843251709860236570330715413325201898682252022408230062841526582552784759626306201603930639655687347630682186025625585404460652335900838873933437328118394737455431358365280136227807523308553892799361391311218133634918438593006875096491307340350379834362537655810142633769062024809780384812088424594587782779033502610880742290665582809967890741316151236609308241272018324823501551620951191105577117063872967470060694222265696239258732445662593660298540382888461641971394967980425066826142810727461025225946028837655787772813313923328265723253100476370120526647809234791223235405836986920048025013041094880988198221358401871610530593929118881414315308095446742857199521744987102590890041511534374168231606024444865751257850867899820728539314088762737749207187333633791431312750057980928671665834121437400424981260475668531840221453528519835889534273714603113509132925499938820396021032469096682088265238923656733723759869162289512745619726879452384842548617117075126184924303929744603044114488084247822899726448450434341439932326847540556422826177462763860361632321474747343429252753929623956284609539597201324128331622133052284733299901275572289116601722121549664152265638106872199336624017899958758003952108730001554080186991651244227107304540793705359221389212310249352937292371940494380344732697641400936711999810191767833549348590168184038713868037743620744247096858022178920295897099379215398109227743233650869539652156289615287174882171871630929520502327574831134165905040103718386415917509849803509898480409242928895596053194968810250098188575836089737676260850832011770613972059553643227826062709821013038049769300437193759493374174599134849081216773818316147224672845085889411754625813936184857753084623664770243379894632624999847312185201905294853051389887359073959152907930018983065503555270267812901676605628335748356391607685097334279980905837340944343684486142020641035119838747766090012944831588872643667827248029499201048112896708291736017938064977935922301287208343729682286363232308096692176165673730380182783089633193461533599000642130765723029013026697535186004589044236790314013796492421394896944118981659835318712906343921637403646193250421698448545629980677972873845429688958953129747267760200539606170407475145152080761606882679129303646733167030884116048862911456632725787144927283459916335933694063838565891754442155099608459682298624083366203635080650009498915594223684881920356874900035874184396899371836287602718957238545500943972571497932782079728349316711172471026864556563690647781424491064932662468662496145598179711850380867934139749984011999288883605643820432357338072479352907266421950859237545633420991526971095068398477899129071565453595666468241375020235773844597603055888455295779799289289745057869145006465718754864390397052477445415456081158164998914305148180460868381896087294030112841357815695415139641640947277413779494223549478400796570897678598116660636595650398946082007779606033472818005941333681171341270151449779378787772066918096019704229945871584629718662049749157217833848610547423925466610952620418606230065376755031322427725777063949373881980737733167653678227095959681715527766995289940558243269687525299426531868862247119268763560754650995409300408740849141571053976437695854455410201696641574924447350339544279398651720269696915924747602030880959930086666102316908727359331466683898220708929057723150837512843239378292488090821573679747453893846254448957022099462502129782470874307763628735648015151471308628238365640432131926522979980599591398241223753249184213040462223450356564427596470126634678279191007163445826009312310337078175765253841094916883584999022026824362017350876986953626847344944735894848018778865849450099633955965140658981184768623225015998416293575163078625857783737524002560261112310821129683738180814074001029374201148975637719845206709425677826884763200322283202891729105954628389188043862336717876157436751846874982493132685643998494193174054812827278165212274276602827674376557527652209581823249715579086692784625884088873053260288950099765753578558299797930316072329155931637492080712471338248736149835826430633269153478958031147749438084139976894484120198185640196433301360463382242501503669394394416575862215852852620748625590085094243796237093636905654083404855385800666826651186536112774464131022194110249784634508474019630762845414326039680435762071896891697634405520542921244699536918428368383750856288193921917880157329554990909435180568435385013416467310526774145793251594150974172073082257571471689105459468169245420768875725932690861657404319014024533864912183385705429540154855070385862418581433944729217113397972103409120393338247864806822166403594472117268795551156072862122622029195294506464864786199372544775982542571592500877644352897528669944763150306274959636681244237144426574138176377246553568820354524163831851732125049380772336871311138906363874410475687914164954998878597446912841811722600144577420423747420844622686500952543156328509849924343055819146095198833555967018524829238629458631982752039756733667013092692188150251154527005391909007775768292452083285219655420285003963041580625156422558910338062524385184156803388954077693589943156264664173025780503945266332464398795523121208172909088670790811023725541515637296893307360180133590248913866353340255389966915298674940396956482065570599149021205426452926561798115598234945332848299762931817734712131131502818336993678697770391992408532507886703334269021790287396041475675315024741589091253147916745657803779712754465202605753675476924684135018849498972752102390426775611519028874169069639551687438961299369279291520192185039645352762359986963801636799184991429358533176789926692861138133192538054497626002468510746649142676513393348968969945774550305655488510033012033175512484779065521379519351067009732379461104727865831002443809854026833181404009664702290655356451644593749094130912520919114008940235312108652351541960074112415542430057646274025621294666677319627066913734878743027455994998080026897209890649025012278772518132676462137331503295524970849059550747350645988365373452719629563578541131854169617644709884921193132945392209266517683662537008589384483161747098282941491987087201974622439831857587306675864667531726385986152289224771525006399474815039078264944887893589643511897914510239090453772174371306500388139897673983474272043164726046016236349880804511926538463529508731602752750887772565868519708112934059227899283622231568804043490285182792854454530795289605660369190272046414466420922275713677091789103272980727004762744951320495289151946424370145172613644417073271082352670559112512225637679735415072155999137017364780012601012075037483378727706266668467647713930952542714722745572697826363926324373672298669662079620862861527050538717541123574549163509476889729302803417797496828504694973840670978486679547344183058909931276201728290039390514402668492837016672917484831444040541919113793299549068237253568147343998458311047845930537872676752452914684191978771633726772562506106133728269328799275959213122637935983797196773156424884700211669062778354886132064759249385491968009973438585064007264933081133937501766549024975680558237680016257134088004727977636187748123539164711206388816978803888551265348422271490074636648688059847855904185486892982718551894946076855849801625072236211029557807595213278982421213760719565267150017193520482410114334153236527578665570497067919161952405002180506039912207693545794947740909204675838530996165380842475328435538788638871583345572123143715327220455796734310534681397907041195726376437987125052809743776844247384861888821331521814709381117773981210474976490013596924033075277643907245829025501229390844323542797371127793140967655630162167722204626995937256885560222250999158145387241143603444269454515955039114005662275070323479431150106910506801506123284365057587370226991894566117368437670318930895152787314935035411212801777307005584246472659640765881703286656597584839962712873473963275264476030412650172660137391641666072351311691168499485304441705495427008431956853407352566964541318557157296845386353060146762350217688860596586676491354759554684929731489912159536986486191782940060334457017865954052115304290474723712833893244580697148212061132022993208432750001594037031168810808579828237280810707921090372425716507775062331563974837982128714662195429464974660055280032814367296208335887384915898650505293241353249485282133900947055110001240054313021368841620334305961558984306080882548256376398426220879202846024758696643601377634966150002827437084031755855796097638704761461585369899162037389977989850435152037898168090453219979159444134722914193611782332752488912470622198023323931193341883684518284771868771065270913594040561457510223435987865791993300259503903483495401515385899180496662728862543495350258001870196900260320197229436803260558880277928615499949902665843430580530220238499680784530270847745231327615726677928562526398679237275888409371637378672227551903040296950478086966173383221826767377655644843598299353632275465077874584182350230958340429159938962383590519898127541463262397776210861269211809914134598869817489687295939585103488533877078034348826052109085784070536800185571064682702087106702405699595692344994856627061675103760584378301477957250840402754925770513849961143844232673243383968348728755143641749396617351633935559721098417052797002855424848616226810020432165957955414497154431315864421556111850620440736583863401220909356600696845965018036817378796793695544103220864665319289431802361124049054588594956725126550845619495141415406616011420423104435409574421605188164196934113352629632624919263789417896098189255089266888751727985374592606674654902365660168197102268459320748124004647083822738636235857604536344558236023688271551639195799263263897248487676216727174037834567133714917716419923293297736095902543411815147651092454811109206761834481039632893486051185531200013489278945970979810448862811190719424523835104223321450925498814507054354959365166631227325290489716463887742467604789762520566592771853717359496774439238817920241314838600654468836860526525998330089278679982474320130528195915204797730166557661167037274261962362442871010636579036675154938778054088766962963593610611219309864376518482563229247211076379158982053857979994297993686990777044731270973742467807887243026849491610551770461993660294167601689528343440907598794579131631251866142970547085883861244375263552463330405204539954359906817263575524727064879559276185946253074302698124209666535704602444731196165052532157032488507712372651832118800580853951051290206582030091898032768225975690300896347076060657847401188854995158853522850136937778917859214827612231394999275043939136840795692020666573690486372112016101488279990623896612166330102122278656337491626539064909072234657128562583175795830106446383975023348979457531423495463048005397465705121800331700482968802649867517817145929529439679656899887107951808897854085479493166543883072760467166062473464137022427432773442235644968073763925840215246643855231980790807540485922532242187677369605930241285660245693566907922002059281234192424959331973466201255796797244080137824089925482120385509243801925828484904821532577133805528162880252113987369312013168095461059609795370643775028381945476960672478398705249039105778689318316355056085731130649542974107852124492248078513744857361554473917446227802030718396322317639588964289619346325130461209813856029507491939911258795693234404731608681948539465328903977400604595394314674803232855409887452808256849635296592590203207204206512392090390099505059144046392909511231376093720975546425977946019534293150950019776668044432782213094628292564224426314632980204552150652074968852737530325983142810961920426369024939806568937292195827721351801762018062739946356947014323906068416341249688534512479114043400227346801105199093118630698919333293942817082973862596380668279084588798205083211781028938444115663805071661599900332517322971129991763112348771139970471274372514561092276270625615065311306306265766033006584414012395273192710978967809783874965226284504469129663158543431166479790493250412454749643102956577866309164999890147331121117220539472614465147015238926614360093653613698747100104268655938198765822706691889688498864289659301057818412678787222194169060182407556239670704053508076938571656687501980509384783887116181151231283961142311735821658139897173260965945940361698203676714888289696379598143081182278930065678288819300613871760093291019813501488224298982857488810395257012510648744995960177419046692540089942052049226985917423496420508702995104222570201472530073859472980125678245848302746100012713217917547333866100311494569656413979137667605848636371601195911215727889319718951294547822863480056758262289374286362037588528696867630066661715275652441604555033035033946061182174469989016631249216901386621603911304437180537594551596125505572520875395727204461203934133913803699754470484090333779124550917377423995749316948006639550793734128123368365053091835853050798865876869910337057385482429782709707374411578660876232285193243133825385013570565796292549656432655805422350153972560570418522487734783244087149225270286372733270178521343517739317132674360281415055477020682423739943507928995680835213999431036725066007824201242199658399386096832898528774275305655803074328764069638001301342804913901534411042626774934253770715708112267057217495348649532203196477188185086021898546049609767017793511297129524204013035720911557986279945206894440253787468748838275995503139908221451346475497096620794725753013297670672468977890129979254049034186688861874092436993894628798693316063191346337371307765659258458358563625710332612248398507401873978147143411233331403963372088520900602729271515235192138284977006808704401191623682926097336401596363279357163467205438078097173657826933349464260668897129924169287443911840620603734822727268100564084968910553146172474082886705386715059633274865678864995186615279729613908838729793420400833672117663845327705787117947671358599135818365860694425171897459819122354031196857048745632843685169111596969239334014175217111161745876950864115805547505315846283474132085125957143265443405247746790988799726375907779987697959773398245385834435737086441312869948960636785272220432639469624587840493015640107038060962377315683595331303640330248635040894006738411009156474650652610985299958482025160742544153757926152606649411900903814237038528259245574626783269325267921202880715751340023714965692528745562440383281067773224108475579497089307546496656737351967753401497047959362606835593506454590903732224336066622053851878473337268387388761028169928407792172414118694113624720758279900494485037851358602907952316564490569181282919532803208997263901147826350281707756080844704297674428921426827818805419654792269070211251579742070039869998244874161497743080326714086960314430559735303324682465241761485984721352852564798527193875243395767063911757874626219602916576350886340618143588280336623056751292841621465099869388583362290954705275089931520551011192560879459008013326228243671975619661558053376754041900437008936225335565707589255896099497474374023115567603421731874042225867833865115153737372220424388272445479973054744076870526653638924392123268151009377343613534772982622108195631621145771693919186815422126731677156796272530682707227250866129653485489891038624588003374515896726296745290548773965444926983064368239977627807872131888366284422888601958169403719267852708433857836559002700321394057270821732882829223946940333529073540590846629795129908967243223600861578914221706091820509236925749109792459501709012852402124594577013942566423015264163871504558877453947768051867788465458565930424009467471077488047155095573360012085520425283533819397339960105807392406769617358944606237223741871215850748409399013879515780685710762647935829674701555150760408584871741962091960654019888836968545281952316935382907161680494594950033689718785015494617453313499292491347159866901263733853728505789665154148590057741498444541406807761573997614177717875304813047840377044181190866021492864592664925905306434712514762070332284971080562820110813684288008710873804606841854694017658549613713259495261518704857727917374189566781133323876280120540378294089709612698250223057851625052586256911411421589247109923607751894835967113818578856372211958340718372395372674196005354568534944153846030814119271961818640693014189101273566620531768488031473071884107238432886068063273443982418701438334657583713305660627815331975346681533110210346364598493363159128637791021324282226638833717459598438200950411262360675141558387097842654191916088168831949901309916379175254428675211382418726542801305871703094019364132677166692128290153327255069408217293124896783637289303483513760558355541944991888483624265153166307886633262741076315486512709687001919885472879612374805548585993262706454735279833929267350026927371305651596455361188624498299145825564936327196584419555924103721846915163130826839464634623164076584806657805248913113323963632979569910730640875558393325372395397591465812573078958903221803229477252814755528851809442456125474931662614200379338604643059372409031549852328079488977905119825256555954269791882845631518074156086377263803956846246274934242085654598375778087136190203458133109271962846955496308998527752465042318514011288438222323967446751726767925499976545639655725747021912759892252030745969929722034013829701991490956683915814546762799546975707605861583701680833194757298331394972177295861215615907837845564066488733381700398344008062045708781254061327565538434069729355149458323907319490163702183127214728083900637642470436536517281648369272463029751890466731566242367884593159538949407573148219496212068746409314641620063507165974986951278601679024316706495899540365066426469887646830153137923997091170581742547915477053819043566176790408642232708303107200971963465337045107264789990711765774722527079944084260491819032812654206204055816092565467411689367019321573227442725447100824773636296510005843438075332986566707118556600675700971227228160946043912883033999313418951457474195186467943600620474057467274762695067000322111622798003731092509359435557416617847674443192855293749250474106706518445578596945228364899221251941428273700180024234260095146648561719345404287556796828168182098478935818387765426092270637341666440027746397481372873005411610495920416606336101362018520772821220824169639467837351810294756273042541181086398781900144499814371907881200417291785383473605562887267441229329186011587197440374531646637930059101569128444281249491440745175537751012767535763286775082189359127621674218410077513981036415995944761210038925698034789403081970181169810138831875422518606578625036686979572423672482890509182342292965291838136069139834762431865842373086245369363654070397641094247502827975889231206379395722137929289502173019531960883687447979295901012953654834801687186251765753530528920079739399796056159887537998951009450290431559345133879838359603609563781324582216329074663200705889770065729071039916669815472815238674560027464487896677311072189450201185609444542820067420072419861684250516738237048879631133860108572416100937456935907483160833342560087528631956995727681150866511391126574601627705862723113515346106270109864266413794729724779642933770085180254489609018161320648478318148915158988101327932048430377568398469204810046259965822946723903769508540465366111284352536970821704600847745230238812451934149390896167539400690320188872827259394715249626278941785725017703503065838324446316140093761108676703915501346503673430381301833664253988001645028215929962576801439615785493792646524041516058168993279094223972883963911176209474172227856449169936836043503495559395069765569117815548614257010860201264229725621510022340767552789795904163626915924968154483085707199169803709698904662907794229892308539643257093154400474070831229148627932151475493645529083915562643043735504133176932156044670890010109250958671893855005116961917916285535921222576128665950658256607335300339732937522271404661614634272263268607152096717152503603218445008218521397412024828039042438007314341727141756795865133677171513346042050586976931568318972057429175864807111836170547849703082350648146214786768094971885941059918013460639831349613607099070797724312297168974778623316962873106749636721920167807842679634468815741251477004184396366454813766840289388460952481247395965440883545825165006314900486930519164601513236491591266004675277034296659642922605690601550081528905436505877482938058915707636215420923464357440358985624591879138065682945754150742328681030727014521378990444733689699373530452470436698460589370056495722620212843432500178883797189071503488575547886341212891545565701733693790707034018203906009451215648878632510243920435668628835425271494793144780713213075887426461376021256606188567287061289826929425027816023474929249729574550265400054227132938567722860878481731277762079229552138902681236914439083863719337862663359970726608499763038155038172786843437654524322238585223126938176293746394504974103402699364315963988735690901630709642455956582857901477847045286668242516932695379062218169886206421822112313983864798683336827760031430311465304871450187507698566884221001865968801636571860728002555085078338524678373872951139374794903662479321990855157865029646511379787811117404975054288323598381058152909934253318873318030765422406885420274876805033461356387151512855048880003447999839352064418606194564943529526656158929505494116886144833951347326481780043422137741878151432056683390957410273798911190264788951791236440936389757338356984275104412452452941951329729569965463490042613675370143016256304996487135997143332782048531343558299466095032486294026952024477282209840179375906209521473925498900465458791880855178631073594236259772375658564113070557975575507309579812648202061676782873605051837728350457326293671316260044714818786114638330616670227438229387417874351893387671793070273026589291459747805677895764368290964376072330436520626931078391827445102887079519718567029963647452021534327026315567934357149882951744246976866080815691908851139880148700909479045616963654265560504187995196303823231577820927773780159853226660424243670215626818189953545042139311158853325814788882681160895108242322388861004818760897714268644009470794023003737665578701343614406028693570956330781942324267268083899923969341748238954721643944533820221733543243595023008364954779307220837721367137037250071722724189644976383743623410600942896201833007163681116113342147373946494420080066459628242890865083169599489839209962682111723151672358386047708177451080903804097576640537589910824109073402079410269259182885205682824489579045960006060930048629395771505973268322469808178677618939022089258800393836381657652601559422138423252577888596699413829291186018170850993686297753688037650249151747069097428534530737609861557111698402121356606924629181471041484547102292221289777906963388522329666012862058904425749585243435572889947257867006969833516463758214399259919593646034867531325379802827552402073815022673706729812831171200407759952765799755824496970028325011993946871717160985576267002610330850632680329932410787118612587175058869940988912945120652086603411552137354498321617940748903619250264925695048880504605638639373041493840597549109963703525978368848824084476810432188891888753630132521184131807970512697001686624461329247738508439462558973922399881208740846112311344460042854282904506804688231197037493890972486329380226161339044599467775235084958098787169787617455591775636434956091092953452591651421760424580691307069592073814071587118119522542585565311184933772078634488301722300196726422926587824254046962175406532022378952737778358467846080256486772876054319733061065709790204744081529982868526264372070926063639325124889603697782060421473928343954810497220171906512102635796889927801885542928688044514923023250391283667209519181233181852787106016895517294022085089346211691506973728981628121447974692481220367963654687128242852296713863175710494065898825229290677839655123727477098119186937958714442363340900364916389371922320726054734611427116158121234594156658980097685199472465577931225194664887381647600565269482511913493013416658266142915965147465704000738760722128279447765372892074015328666577991774320268774210863170296324347950420392464582937326535173775027612374721255342188106590678770395844683814651091828792958987364410140336864825031290756243172138980532139215945254705936759445861540190527918464454608198682604315122666734090384239046923622819522477761622066375547282588501469358178266970933104764585866866281384095139577824885078209238856016765452628492579820966031351200367405300495962928749012042318633167535514538226328372766321028489534695279540838273452185484423614608643447585919060764608803947248552010600107203039649544024256116966243314988237313488963688891103794749511165322155517571139587819380397316422877616593643163088738786463952689173478376026045697115450141839472289547486476235149459051621546557163357608022032313940138313610880772483051591565403709112435410607762359133785950735914882664990450217301799799034498845491282717390227044744514311374225713059763032954571602814121527590696249386494714937169247976193354817969109775386418606141472054722176846175217876902843027438443884044434770083975889994730861135101988490538643078862929015283868070968642011149507763463223662504861756430935012473624305906363210374339969009004094920732862652803340841986201155891233995505938096209939235023345679632591702499243204414566327398910975537671752587526815913945015540690854818169208935741938517964989372218717622924907462606739883692326869644373193503299314269662042566963679194148448545673520757845404456076310789073350139990669269594573688193227413638388294645362224864302603406842392502741935111143775939250127347335731564274096724236672796953088109158164313247155856086902483429437386277997195001009407580405891816222469521547011625195949790462952677271909271267844422395297715950377504591354306049931917131016919895569360406645038445402230844763825795096590493041332352306571812459733455843338052738845318201809927913624080720634500137763843828183857079478958514665884834627678482502533406711078331120869501374280912951659807098553559521114643135217989428562104018081708908927630453656738599853053771117176322344746810218353478604034843547115457379165948989060011960796256080094172639825825437837760087502754999578302574438674820258116364563205879291104907746779774324991503670477724073651864220194493446711168680065996318280549200324732177811140116252188724355365332864018734103254302832253866431958762700091166807915506599071218317285367676145918380022076225658573039431055109520528885536454869615804267339733986578874324250208949907574411628638101421636785003694783000927556027812518081931771916153569703089870129811358140750365770534109765813867593257205568724640450778033748353821116631129505166552980658237487739987205027888275967165636807425737613999129551457802469855061582671796908753695955461741417497908680633521134817843034794329752296460827345391225878138015670316032078295277726633296047864750863581068220202200350282074660023276649295696982485147846682568890193136270976412421223735474041002432349052001440373963456920447982354873052613887092538450510026094575197748484882139238239010119187836081581008649154423821955946644051099647652712612342050993650418375839093029664881647843396755276221147448839188137850640683451416536541932680506008483709224314741156253616186361486394131192186260041551677062192032305750119131940605585000599408680550026228016793692130759766934208704060449295672974409424010810929389709711247838224409554859714271419187064193265230828242031019886572864972925230453964610545423711204598130177203625632813447304186192995793279837222263293864300254685752392736207160099359487891837999659832147010450081370651040969039136548996735447916368959330029540814383297691323673625185026641365400852183046160089636796056297583254757487808806682639978909475884141859825403484785577540264543575845729243710995640597221087857303092344437681094319106347439421199104525231427381992192819316153407271477091915309934886098741906797477311176959829219191308089556853657945741718909958592659653488529927641540965096966674449718772243313848574465852038746633701836505993631143265113236279658382182894144101656716883592307243020500924428600965435965947439307027180455276715689550819440684223460777019741608269018761162323010319145900195364650922648544057698883798095329583927165954735103974472603389408113045811890831819277229018066411044548274414200053444303048979999679318342336850710628712465131591816692347527822892098470141914945059955746763886617673029322785567241387709958565249992237456113309653543071578807104748824146920422641672146330451377756981563027357986337776678145865350997703031903547679260505795747659135603283061662581641016575225031608206948541424916132649079378324668345931962911138986379903901831607932760387661418058670838581644133540930287820116867513241870557710314135819403887575373082834013115990937663623946738566058681065825455624672130426945052487901142150994057719058018093993659924509401883771969270942281423926338084605981964370232217051399364981071316898038688408182686610469004852431300263094142974045272437009515344722240365696178884776691300546750382153194825314935715043748257756695943341680650521266907476059295562460004827581684210452065789651673874662159697028369656171863412795049044243926184008967032894926424321677336140803556843259641849489979122036005057663848046259408204950838136808591102123672366626895664789987791175270191948866734572014293897893416245709842827136060941688947501912198508106716590556467097284576940438196655994175089102483796183545934645586435726717575556473309670177596434493851654196904150474219738607912881592904333359284904883394514669734416716665334493728931062132009620042868320974929361212258318336694428735384738936394081007244058265562708496952705283305427113409934456329554366103629084279429189232752048445667555596076627168502482653773141928515906331255445304340345195222055505296253122401106981382379425493137803797040845589515670442155966679686182708015266372159969193680834279712878015091763502615852617956556529647600534477488202193110320072625645448563282574505611165466874100993548901336737952104163211269784835030588994756690688740615193820386502706533000709572811923633377721404550040417116068695193120132521262239158672371033207230988399500340863063321956857908346517901607919419614711098994749694560160906980545720146844152185162925317467390795026011920403326021924482171093971864410039963894497317942379223922506519977672050056117007965085986351744445469572880134035331376459801709167687651787803228086863081007669101738352766608033082693070315234861657935801149359314474150099287526651653338497136735398830284574866688578098580736741051512762048471314433647131304566135011647180841271403254739460652780451562883121798666820602809884808490583167116729866414242542406909228065134315551240528798096479993450179987713084874960441933815010893560230924313244407032652945804869988208662591693111018968680906046328074306305331912855791433166474549553499818833885469295001870588276959979738746653869184659032610006283128580410036219033799720932096754472642859735346018305620440623759885746660150408302385624647660318556188150593353952916814334165855729696220654391029855866816763597676158066943154054218220317148771551437381855609867354512485557182338346571852568842620300133737246996473774922395504725901671449745968285260000847295830327989138060462776302907601538941297777877441388804773194979714483228785462555974406901849157124923523638751450549831556633582144388767553442876582810079019488399034348101365773677691909464733263205207155219054511791731581843554498613328050007020833136731220866036468369467396919837434705760738187735409593654485144860796977835977913495007933711115222344014013481034327731092557191420175349835955670726236057157485577150592672403592392963057485759954619931695812398370366668264058536835395189874306288089096965290147941086134524101474586355035284951158164090647590020041541406295141080204188250015106363929538467411226567679823469326863612492989827148880920771350657516021134242729346224103132936200959008053281113966757626367832573680233663834672110878119082802737283186315515757267366502288586967773194540351587040154251788100245608343969703295036706880233507408599274096927254889067458864755083079869179361648725180897365139876715936813423542844229651494864588659136690471761364397808976952891750712460391427425543487335383052090553289890857585944554854989542000328638154595109271879167776428828050871573061263547082928297028334564219381078246015097642002124498954459884174848242284890223767480150057874557247573499162924257970229864577776487255332957109513824347822636571113489229756047136363049277793942888047531485553623582736810456170774073539057206112135701294517505946322304209769167108533741231432735794974543525954920072068980034547659692308989785805838160715437309192987242392316187158171148655713287742849477360237853201300857475563348407585032210624414980126567010339419365509973711410998222279945964713809921159310082945714173532536603029451803009662270429899945996002067321017807507732183710808013008186712742005358558697496155692993133599001563556390527048600193347743185989343133758097112643480935514162030657110476330545238978842798685226441202206184107373526166171068230497458598512974776890508178408361154786257774703730726487073702625866780568862574153262656950489657134252814641678204494298029501789678993971477432429071638257560962218988190077299500574764009867798355363855000069841773581790171658562704343025553139959472223576023075391633485742613049032384706320415180380756036029236141571140900600092701194297179493427675826974031528009780537143526493245041752902835648882823265030662826476039929621430311199732375519096200765325239597681154466959665692522425636375499154307601478863394937400805362888285519481689545686648651436331604894476830492695288318894079524581189672264017624049349473740360753140239655606690668217534689759194906917734046295072297406962077204511721223098307574756689329333473799008489431055165774895942242986599527321095046571742629844177701733483285600100353734099621900044500283957394465273618434552372726175025491749979511478835724631372624627276918978144164616029239655900455095427759952741138397506381879207022433794407834089310713771944077703295238645961011654466670878061418421658696110920626750969976969662138346645117743905078565681843145942454397097723141639267463391612634365694091715423988516343973992609839771622052835955983900785055832409549981248226442793772097738600681206693464789531052285527367199491897795516390706959330207529894623794964561992725218603644461360601037455144564147168598481213648795083773520886977417243120561414374586054643689311685120732787856947291454462360321656293612699717929043544093777286755007479492854863212576693354617261701745276824245573082696370578680099449460934177804588744124517954235748491476516435275210309344883160877494851104018185353460748121879871001344912232989791137242897308052716501864874791719019173454744633541275260216054502547806993538269026207226544301576118586270643227285061641889960414508961865153618674442037009678755179729412765695413254887708860978629953303003240785227421851167430485146916094956153497892183620097269917311068058426431620346931057443823134035367214343829594644835480034067097217553801806661182552386866763052030623925028171094912069955771767862099375728658324183672036619067162972553339413593946293638196545827417744381464448443584333936837194159784201606062127357222736086964294724004561542270954170668804114657307022879238009208348335789400662135175501511769163995574305477495093383342165844289293230933535512835261932955062093385051630918966586214422474723236950675154725390087513758494171751522512710083869169506820141992203892371653340411795673004450653144205109993100288268747068630443363750633709283494121364199439358223376707127152526167369202721094524592047570286264145275447480058656967910657010970840605115815727396699100091485063066878932191511760633669983696134300867133229365918364272637502897101252423321184798492857185700225200891378114817138916120535770244472477736121768736312201175414150483765777173019194761432816153120881315891113773639110706919750893112844219042999120523966303179032302297177023665994085618011595233324567268088829585172665138263297754429458511301628270435445884238023323737868586521599616435097909411996443399119533963459568422976406888255836357769574128801307183937325352915950673136488444887603363987875145470104801365972047864660945460648389983377349343577964001705241693378314846480004171251383398500845848474222193824189867845273706143499599228534063220331701358554654504938140808838253231971451659506131779866939156869880842877056273772732501440543039078745251546065405580526176066322115071536518343136480598649743380322567231383592093005471853849104892962848216939144616947401173585018462746600018909681313386670279576904446752420211567814991239255588207341103908537800844053658884700264969820988982841356644881569836031775183024675848844778133039046475440988800986536277402965485639941015023708315851889999714466769797484372781005934535070202550355850724761493374763255551649336988167701368700894807277182169339860288565400101423242650211959498197505222484907480167785294830507917743127085582203856908868047960052639227562149640515755038247461079048690676493136424256157135565143733390812479512057041982427814673703876804579300992679059876447644176335163539930633760733501739523474935418697369663128738510682684726679288934151801810681004734341119542357340930068097016820208975796451305897396235640835998588538427903511227502930265260363773200006018274339679233981165131469431267049442051737636872796720530923681274322042510346913643927666821389370944176305031168073490726897414712797171497053043783660853221192998881058853146055617188143272943937860876157186967640823002229370854414298237548371269606081286015540110904030787579464189298523963342502130937961436189912008719420983251027231449787663847932934933091435150106921583964520010828288682529147250208538069163030804724473861567638282549133605224474346066123605397823255302535673283390926647798557525867077398979016318915590594741739905988742332536624346980544761290674036589352654845344075600598207392542901762145914384646276308344390798020846403762471428689226710363837560662358009987000940825215180770651102069335923968442376418994621032231585130051210801210587478053739802219500638168519785412572776159361618455312043680651408602857865811453537345423828742249635148564157375374885163820836719551750198471440317721891588367454774410358806766590435199375887632741783324178074812188469893190336067670025952744302943689195295168634237535056746417549698236778318540646147584503982003811135035162502190996050292425590280258236999176759227795670582376778852562195093245678360221308452017591888085120073168893315281245801162810163947817645288943208092105014577836835282424331137149305946049322496023846858041473216179980345561940083789593775124654340926633810329093771034680533693740612864457361813312632620753569257903360997350056221432822446482924891376834324481412296942855330925958747260708446604197102293617006819636208543435544249095609481221866309554390392627558395838392074176255499297098520060813118816345194740025667207156308895009936633894196734785286189319721107007052960369522713088438775080643186171203185374335805566768106165792672770626765118916917876612740108620776507281471613921806706639836747794510647169848893418456325598099675276192539323676147208381210942161212300372481026585659304718079079238123358230649234169797483962498177517674627258788209020976710746508575319336815039957049952997637851992931027531291976859728949988595119261020827799734527092805745843155404483996830838875862410274677237228452616860032900711988751246409686453231821992104212998916134481284637328803130391872016322806641001137233660536374862419281598201434786697054286892176654815043186651881042519622511199478596227279294781563208504897446889508695374884435924722377017635886955945838271762656993302520099015993371069587727672780601006716358883518563902374203070524113334850164866648462955898801938660400198891888462564700461959016126418760631383667018301638545833699010368310717795159414309983936355097285140852594182352324237533557199523334671468883684559557453087845067723633652231904901204672747102920550403498893454163552661474647244481060218193746461475508485727208536873753150502169016637305313064387583836790511073381210804605677185572673556021342964524605876374712310413093840016141402638932511373630981012075768554141485926538293458421133232327427090174255011963975438583656731042828835357642916826855884648728633761632575117551774251666969829486284737944313837905917700712159754238718112397636152084101001672520890315682055015670701328497618301034813055122809041861439578270537500546521495215869810474734697336269606306914692957370119890169679535171088188252155646587016249398200204949612545790808433764843740753556054862652243107736669555762201234634974970766568109865959859305114535412345451957138587708110992037417676518708869810873834802460256882374564638610010826839738710707481905756588618177317097578120874938754652215259846802555227897078193240963169127903166897478321923513879887670245483858160308228287898790611935252017773166828961282546812391220214561475933479366710226539944619466982704769658086188219633710231803001669709016060754449498368469162991248628712490227150047450823916334951742398107524553516819736991169528414964931528963033181080416206768686621237268283746201923657944487260391116596538337664782608448212292095032871654636928094827573686065419635654699134055760016043554306706649601574072567664537128330243998650091307603454040655732754587299242266938048783577142021634313200702705539093956740640070545101853310194354630379308235407803592850954707419033950783815244045183565943747358497643400288843004303133245691762443045311497698863705594424589018076296016847525900013168066307816003755494848651539816258475173762510041776034317685048927812699101572301806725449069324256276814489952724523353178387127080671139067448994709695320792053349498232204576383582786120055088520927026686461357318368814567731813057930519135551891198444898210022124493781839262544614143314175948090665600285362768593017763099289377600032473258771560121254718768457901257972997203684276987890568007752522879492763322399673369668203298604507032931142451792870708199401884961932936657597249538278973859610808099511100400228198759338084025560633773489295663807866696643114483233906428144151374292708646178816999432954859808362334780775580318395621927081122055216811509205308626875111580641135633388431230981886647597958810859419950635970070998176516489672877698870552633225856681260380322602356629572301521805874145814157799665948431331701242674677021052597863442935110839640014498618505960681789423331239662789767256646656108731617427495998315257621025614702522532008488984808716338721411143558446405683313330696565755615243200741162475399939267181462531662998203834108564387433282740599508059638336285105307556090900644180888525290623272542242618032235826136393055009368792102246995368824471898100673221683411957350591151901494745796053106500645404863020768578121678443583858460023529011471697128287453138279177887925951914273233445400830787503098804671815242093633274314289448332618271193955083968875060068049349737311164669373664151452716928993056840448144753203152520454904319298844165488207237308905545089533862956410263284219410528571636822826173980933338690076975818899677231242736815364958181360519058226553130474377295911776806295541847824361874343175052082340403539757905492605483034006530246499690778742095119002269011340209236819644325457543479289572759118232163611793933402559373371064362190983649739844286110429715350929147881577028147454345780239327047562674582961272430687977013393598114295721147692311859810461851901751907636601147222032540071585574352331870987662554140763080880349142441857598744864646616686324156204283685216756410689510841635941823717058063358917943325290591212361012206755047420440091906686348285554861077148817933045536302294354747455383148467724873486799437120870533294298815088518479652078973171946073290883824698485461677628203314186717718926994617224043507054795513288546008571570504862834977604475990534460972814907398723920577567771568753981758188162217555143570787390684703451545891020896017072370233518766240098698029893058493030732036931578245171836462919737995389888770789847834858027147622569480045354416948166626493866991480460984635484540299564074869757075573325310237031688245352717867779823427244595965368114605254698966654308877644719755544169584021755706369809243216667437861995702491609558402906712848773259004694441918389492693444904169863334501072048990948263460204698921450466979645994728692864305863107543043704830686157312066384249854814899668034037198839422108816266382828793752073470547517287257324892488915860893127363747599852354648817123294006279974074651865393969847509506804810298542314754337775094580247045956000975073726423991817265515109036580430324510284862984281036657293573764807196417383116923704908565210698596330561070708874574131213315917282023616453410198048056984210813508726058634443771172972897547494308332546122718205341240384616983699342785605348707845384373009351412966742138519947559543123247866932286941805385184687710322385443289734417256146044188752099517759270844392095612717552850378467095136906248072271744555507387192354384551939913067036176676818913121475236771145704002295421123936073390496904290085271116210413012591509716764331156231125617237307683655073654259620662077854620358077702751332269369528986908498501271675602082495737462782041632170086037299929439314121385018344250985673321124639771738022346758524321985103540099087381643690800058201316436305508623974388789709654018235617617306870709228615283149523009790421311031333095550845687340359904112885285055779258688698604089058254604749967007273503497282541038487248623203151598641211243319133126185697417472632140755287765368708317950694211695852932602554533258056652715360343104808216538275212843568907371320697305270350081257499543702299333004147463876846179449905556969906196352555834808551621880332964333604077384634223328650484749130255087351459362802143807679852322037003151228374572864908050613468934221079786172985980973039890448438442322689406325682687016090236810497295001963730632450748362242244896180442546118102734945407403540565989400993261707294284710145240291107731993394455902235623279900051244180266254426139377933808895673078368203345438107274051499060830429335526085529285866469993066781500124866974826865374313313868301152564662822071803047049503688007591544885655407272051093691621961184672554430426530588490172473989851476429104811914502150250769205021499300020034009242598327017975144966252602496383586503242165740426262416953314575807640466301068921884935035499145720519883751500006464842655629253498368223684059729535311876738074572498767579641600393472860040909571499935101591287318078207401045265165838519428100143881609635609016880474726372839711857189350370720103645493315586781329440844933094510329779590376358591348626297190714672037152938379794529902650628346067694384958792588879351307983835075282660388468432781284305355301847576558408922618374377179735004142801864914773347305515333175058870669854211139060132422565888355802622749366771437499519695239700236096384703157752805035752812169062845431908957280459878508206121262812392347783042258551624124200630077971810640258979026891292629935767945802496090910702528931614787644762499581723730459018561257102874216568665134033754697802781011495215613627376387541462240217457478098562288650180037161422396519452170537515784915310335639316853193549785465133799355519659906833098620229375250684796519148162899245597739562502310001956044512588213883285460314261106670584743427171081709500509524211569027287453851911994375515149536113792280348501750828541814352936139077181397436563004767105262703069206966784545055981326960934371079870211283130583516232382295938778281056355426702479513679795777300904318744690257059407514062420549345381003648382993548017044082654623670975597968398554097282007129316024562125646697338067077640478961849558661297717496668220437286609711352614313464864552529583781563304801118315741717468468130732432511167896380568939380279884574100757191969264446683153443453230517310523328136115439150181798038931196314052877268726458178799234060511941883160658441442017387844074785412441807854561973116861756774832732532045446976506372441761443903975676980615392194106925785595483881121396841230252938586109384727781342272087779368068006902059156071467448126544335964943834986969438469673882863118026377942066626898954678706166558861838796258895536613919803564077443472990449583203911882745142305936531321151463374102684388407487269840817589006493592269984348018448175257479496108834524993290019984259907926298085371493745864776175628561310751126393326727526320236822369750570153280341291484482718886750281098228473465347175598034964263423845107511726810103484135765673050420653917440778283694967444028477675355575426432860097782522021175379300586362482522938040027899737415999857221947518968383008960005734418423540493180153403500953382233660781109909872281735310761271472195867075538110728726347844002993055489020122233961931714062216849918238610568374640685225804933825486317390542055782908976470339498855551148777303535723335610596689623232186817600177655796455303276977543593998220981071112298532163674197112560738962538513504035728336257855751582583698535723921422548871330246381434770421205362458558573225363519167292022513834967992696410127421313702326786865966147042876771195064455336774054719708057776865496817937640137119592484491102475059571336227953612785204083296996452004876778791455213316629629156160156313201356175607752519073750776206799830307244408811405259251468721857665233647704243157956716274784090287255113466365187549995207272119963666728065684219220493347016649653026211703068619983274566760619001179980220765038487141077638323167761101347383395492273376693373197230169114307254583235356618401764643196727275669582711401460790214724148981121478101106719225848047463527960665769141939225957654096816379374577246987127709408685550952095518247546025250764690693142377978022599114842751702620993265218339318516508483996786887595699288948910369049735207432076884787580783284865813003577300436140908451364510080808790860832820458231186520153797345873791363445383199315855599654971658361687125538337296702263501988555949735902169626815979515639307383645443292902922817480505165767368190735915461989259431652071524187964796900223707261042001042916958260212898052067658669623851220578405429460019435943904869307471206591283092524172689676141207501907379699507100052264987322069708329464353767506763143839609207612076829255902100048828716824724276772062234620902371823510435417417292020814468216642965630192618860540709510050417385357713118339632025869920260064550722921285861931463870084739392541449770777925591115592746722801496889808993450902485591674854785743024710289390476067144600563512402591129483316152722866163898719349478723570545450166751028529699400416381826292663718793870140954995500374943145099323801610747194721928280558656663250606431869365495081803777816306100466520871773789793184614594219058641858906175673584337229574546075621710050377437641690725651045232095261412439738942610718715392498463878641778072991541946478883651984615750822028763780099340077411139335147721708354781569865534232309844665514469802473650369970425981807598969165622579281865464422529763670682979397731825444747919065095819180448389908659451680035147864502405302723913188661419750933952719044135178802705289200618869108081700743651741303003404088760200396684895190350771155802555575232463318578400878306963675855452709557586263679887505047477316002906665975274645322073354022516738620641440410030915158286004234744875277380739152607792683089119441700151993161653259935201192114369371778606171262215861938539498532178315506661939337156805370595122907768793992863074421236597262771415849700727547955829721824110152561394220866880812457565939343700376883604043515977015655610310905281383338233878666500529157521068243947816048204157330734961345236755731775614857900917191280792951746565978524613075479202029988971560355653492868050431995186343026397489806477819916046235084176904148240866901732315123587905169813858555236115415883022867846974245628514725956932874432324311223311682031233357308012301672000448946785777590665250132811202788624151762511658112883657483497554192837011869624199996872919761228990412452384139340768131109222240282825277836817600605430662356036533542814192778257755926032875167649957453049624742006739713326513100432886402257327030785328561578695277947317106458629372818686386164778837757864687529291217326749967562878926180507384412653994047310155816587459811349396969712625110352033370108396474967746619985658667109872426844435412857415757697995182516808153348683290307930858530179764480344652698255451831864337409350226961040473370395542941006037897975299702348404169066622201536960837731960292535333730377594540315993152740406728374469855467277950505982974856935735052321223991576753429898444601686856511541300867167942610453168521080630037871796386776444128819766140736652218379217922254289862962288852340286957482323653433372463102782046190040438746374304023297591417695449574071228705834755233423525092020162750580369275340641907440371955669567575495101540578056582869054051916572461767068617458506687483344178063151524714985793274331377694649449282833504697887129718911502018170101198408112633545481939062637389090289043986006422443925722743627435951414810063919864768282840962371470874048630324113044872000541662956338490353883862746421952169492005525918233823210086374426955558702346996734254687473555527951824829302784150436713477297552252389721781425859121633892847458631127042367374717180670112968648426624652642059247372953607306038371847018706390781234255288750308689917441083730354319789687212950536620586826387060254915818143508663251116790821164743434856534379891636667310695792148901835931852827007257165066148369187156716501372323572561197454733590311469839345060384376302342381881649855652399593992575159544567075866456612575822908190929584149365984634249239648018714264156530626789477222631037866087837051196449446944498791663869450862767233777700662640481993767416582834471906595914303747560227125338350961864455839924757250355800898066598459503152385648919431617967587843884052822173693192458897915241472727357459255612999850533123522829105430666962234053979431761016026719060288239046485177162474691452872651346563579928462226657231877613313063694857851791326221099679005895363395488356879021273222090356756357301189527731182410775990728103879942423888346439402630390947067627064231674248339490895709590014687872019475706249319429645571999740479755474814400981148165754873901727557366562877013578712302775164203971466465338723054371743997632807561976388708246598003128666929941264739363783660067400968221332070326917578888289120050664208923213319740621094974768448670547998769040019799883945828001282874288426270224905537134315800953380382929994361219457730104326542820308606863535380204905316569911421112855148562826794687938914353059189394057320158517842313927913342135252111275571329893486065586939120723685866211563195496112767895897336083902660295686499007192387425940424506732054902909714796277750356399904732705956281603557676981483809244272904819951619097505760968969806684221957603370287121441717645191759774764804583535352246818230384490677250246841401300719220273038518719928268224476557948987515193569058178911955662000860480018043732986017141274461194074135854894014066762926619644442128985062814261421571232092942472149177998958575751054348821963483794293255354109178425820275865452311098073431551702553999489128070642684141039494705850456098197474796182820760616718737341697066597760526425545227795256380102621201458255599081418412776625036601643491419476040025351989500175063386882358053134921667409655479204561574693933710580582880347233885303132808549385553445617299912087615075407148016554665958866454776776952888075988008534147802652537042895003622635551697320029587744226132122161075280947388740951488887555389439817466893618564821906746001777648161939548675287274638910491917144765987986734242310989361195996282515292496486749557452606248233097115649632296032514589362977386388121315849531040620598374708058632986101810377711711254744327143860235976852152002101718643553322514683083462712875129906041561361082294895421891814531134249378814656063792930695499974468765006668036215255133350461586722109043284123494161851701131991086092186425089742127504902695101349982202396280524107964437604052992730767697472390652960725593975773704195715129473344815725994449942561889023014580347627049198151770794145376007634558328400799491760694274547168341999981407124130898865554414736175250933833441735831828320651444622904892052653933051014575080888812794393147301607668411613678849742961323158521808860354777024993359659986212469333605540328267344704005499098415525049019997415205215312237980537755039789255203919768314299835380046440470134575181418804927343709352942630941733672924930723461458705824928372357857432037447654812669684018907670525117738015375305117233317968506292594349195791763223857504426706548750990374731062545210610003641570597439314144938819337860499663551080571799982082091254368888735628793281641879058144185211189759237808446428453089953642282917512939634710705517091455526695581416368423033381634133835973369368859208506321277227988907076393576462465329035605733427249620454340455653248883375425090546177822365814213026727415203076757025595613846043177623983380793788516345750800929792610902737776590381905512285893200448765437101917889583882657292206170923642032201093448385580765725540382114472817395833331006849042004274775922729923726844050251830478336497276981171182970460306388644460593864780573445679967883356227526891609228314426364938459547249876076393431784770806395249408850939911265856414285955642461936658560983152846562696304871702691673150170532029040495695177547567212311559579321180945135619635545394623852785385466516443333798817623546919298073694761376473847244315569042726564807793567729122900333546308806096390304099293338491434265650400644855876079837542003655868360749481122817413903642713459374753218685019166097074203709454335443701884720248881228281297255907288463850367966972049305275451906358311865002138843403113453315812103263360666648663205897071760461178042864092496113515147514571686493554254634688565326107525621894940551571934499484012459482124089377328247201559578592840059404102682984481541090068586445279185227614464725065375995315590908368207343244331927368385966303690062206010347017735678021820337298976861798766047402962323150118196176887584454303431548983246365755040063588219218280355920783035554681183492410600901500999388119840441622593276167389781152755345968889220302424656409026453034897562772553940708119815231467117920710310842706116353142402887621304611310726587056634358648034524712128090296403936087805729548773116073611069453703774237870512389833218395829442567059664628253128413236121331239209464016730317589295350482145168494749643818963042201587243930559328024431336188116354483039843214271392838435380228379970729915201766429344539100610745997210609898907912026057607201836452097545595161067418008843833849862197060989376633586965343212908565295020603406743677606925952532483832916129606220026375460790140714974887194884925976910836040922973767012122638034404252002298213764498296096184276195927212334266562231559192122950631838423097328199113955819452102785704896896467134629588580383266266260735876259162582530883892172848451587747501917488256006710684804544500457315122577522998659353692673426674122611384231194039104045143545281426160157934535700112606382738777072570629070815658826536199547587345679124851858402909977045023008543673626933027261072190514716922161393918601590788728559645861835853509317494601643678138215683159039548458519137013120863688639431693946957416414859466101838277686964700082568135967606084305781949063732139771820363283150505320546398358615581407692043944757277956482360100234245897110279890136666785494358697315387422019020814814176244668570497402123252608113479125182642726119815783573515815078558437655262567987970108824442543109042329402771080965659922989307250414093708535972373832722372911634510213670635300617526123376774125627869864303729293535206607620840686913213942430729483925995175534096513665111628689165624849229599134346787680033772448722011200569694466502919569095467528656126111639530350607369743744797788732420191562697441582091868321000179504334985034604906679224020994188391020614163445348435590607781501970393432218329336133572557249588424560229791239516696500327461571748011921309889124283473570510442032004998050527264481155318109828980879502803210868148391736164121338529892880337051147864936269872897428344842611203997172248081780844933058101792530432148565439585189137896376011927421885659163327862532876793810624189324605682873354467941496348249921163656096261547419843888315675175946199489091047818396276313331112164044020007072277418580713197581516103442568633765912919771866540187274051746075081427560767838508337890680677092358064071664689362126817595825810648469419582583920567174269715970550624386919768135655010204017022097217072534055962713362400875738581308086517947260054338848586472034611332786945805871023364101994594427330117423701138018389480066039996047755081291946457295199784598287708669367500603505378369033859348951237875435966179107836250725476663858663458022035348276543602630225412917385813919099256544276799435643995996498553757471380179015588955068138401457228416493492260483601337158146538849008568549001342624238510171311273596308536739251307577976756984452108205389368212848957921852198189739254305661988779141895394039674172159948482101192717455716278239318559900921335533462129709517480604195497568692384698075040256970274118319115101610423553677574045951401463510369759361104011735335577542176900911388557999973844869084500344303334606660648683767009583255161502611831142555528538734697498749696637034834438779922980243704219491245226318957907143063098351999747750228965203695738568449560261586797870389405976417136647993111965947533157285911712323707273326995885708183012990336098296331725919779093876440013056570559225945066470940507777159314215799572608734852537630258604234984622813586609212700484927101480795436327541789432601074729420775370625750943175874879849349439520572761571944294432131660710935701216985782598316534071375453945476736863503902121334689825581256625152479307380330291860496451869551737386493128531989726865241493649885767943698598322166072821273528342595827027159419711055326866432885354275602771136697206810427368241929763896624679345376790424830299568666561036237252476739504575207967347847448055052317167576531578150817604819348577047047888352340643364439828767327495651400561758820710391000777119341360590390706630243395058578228651906654039198482378063489468167699838987131524938456394821290407867327714736069684272243915796651852068793727547219371255565686813031141173900399930156383002192592439656334413858321575016889321672298299604673147909981662656410501361420059709058333085238341074111216262456082533010120833625689053167870756355499992742549977001154415575083724019452009264823259604807671846342009062648271225018600948634090415774122361404449481199674528538933712407176123226411495111972472274352365720400135339869058495666238428789307653619594684461814833369149274917805378856266117762813503725141315069559587419029395985211950025150027544961512724852577224197249185599851096532179394502362770900302881088612791824538407166273816215021282103451215568630768584315016484824272411627832918015660568478081774931983936182519469892385408723446648405712221593913456812346275231362903388799472632759493853756910982632721994975966367625143358579628096524774680490034615381003189236568033416862862335776842068606158183165287867624566512580923290742157582602317600749034944719765962832508901618518140977053523551299907916993961546983634258392675537337280539208882266054392013833376876534987029730840702190789122367125318054917870707390766296242647615032941206911396255468396192841221192774394296188007542599703818652441092212524506866576509049470768657558427173020084329059681413619104814566560916553505467092323437469720181560932500634790387228332983338245747356705529952951645953285090538146390144996331272042007975220252805455698147697951728310134248180933420418764955507592777149834074971380206776682524769156262551007410547651016400277351953707633014364424474973315452261772344953994845417230423954912530383903257078695348259321292376723021446867797631917691017414873347341902864619180443826190161990164781926594544149202665420566117445596722843364139330711409270823094795643945327313939483974505965848425314517439303367920744065986396389529415797382332569653785498842535587832584603051374448084167202609555900202277677808131571446817223608466027268341799027047832773570219095831894531160106568410277018366020049944690036720254484085911249639656492650375427127270514473581297449845698247093147194580038148245491448938443263727951884361641253666818573576291013404528903617035428039805949817745944885101522123185267300456953303949519465701671233273081172608933126870659686324167447868374881555048240214694901121183465656283369331133935909411632005348419893914908242083797683347805059906842092744928860717240217723237760590565791462046176498641340031109108247326266449226369600615647986614373487246353860111771120018222619824355443625657937350322977694451897063337943227439742984527588917243244666740395744539927053033226402549696452911578205355570045125124594970261151042563182548101566234873235641409081054082476044733454531902024217183377823159032686487978608382661012221503656504531858666877896526351063109526515829169219519749478067880714848346237851056598103350671260940184187026790617953094132965381504050766098951229577640183438699831992417999357323149830716056526143935109820866723133667338838837429489991027202022833126053339098681136788943196349643473675447285464556856213942231535697003338330701620194174886714805359369842661345509844893511569272229621001781804784349289671793567672612706172247019238317630177967994757333978908661574631654223980499180534056818521433231275129189921832815691825331956641211022055386823831463915040812044813336126491996266080139542041508035879688615511768160868831127289768268370735956851707632859438917694808365074710563126163626566896127938762416042557346460636915781555838352704126374229911606242926267695363336022306098808614749004262996957697934199267259923982712627175951660053787451627319645946481406545465977117410874545403581561511495471019734736860191396224941585678176616138268751593494409282177532467208478274667201841523877107875164237870711954162945087829235628362192317688931113788359206921675296406842819278954205856770846183210943048305615445363572356585386641047953327654940607342969705592362679213660501050248376150508615567616317527855782971034149088647934000028171952319652666051426166648328106074912142751903369193640997647805769185607885460539837846553305204820694221974941607456198602149877900473317778261725847650532966705983877863729872465608458563293649097006259338669949629142149766621479191997823733353360431541965149139755847130572304317460394891440889140641970120040087093762709449640955075917159213951221423428639584689581354820262852013062396957151411304331930150335297565815221950250453518947957421230747379421401790102116301549838521380802733496504526213020116159221337162361273558430401698852267233825572024729421724117846797163297430976125918671451429210533649556009685362100790930761847369256133665312185814979499310067701814204427359388564925571704128130918038832117706285691392186968213207463955628130000985343964702599095008256294836773647798460652511196159224016629231557175209049519047408485535633311001218332596457712436357693400478986884877111878072188482530711704795091831679768886679081304695409981111416256994351417527157288706134497203083176873196091439118336644941724151423184988621656659316847625777354820622953643494257791246424106784839214943790256559868633219621294811542054022773519838154168416713820851267801649543489789249547312220594722675386005101081780977684472160864005470478719845388846431590051065537213344690672802612890603126651668840821150723079886162005257353204904697627435540238676217355118067723041953856516686532815300636226897136587116680222479776086280342432444537573910322813355664951607859474778008511150458507193903996983319150535154573407345713295199965661340167806368478804866992724692551834518613791886176130964897324074189761916486882602273981217073347985712391243199204824012824452001925043898589336973527008712392791441084818415633356099081747551537959850563928291776641132487580325536132631275936299204775825257066490861967342955782717481188969363974980501222598614268740871973882930411592544221845274510973832738154963802115069023506174247267946406796561824729466713097904471450588162281820383350064575043667638524015286725944326105055037233186456394539931370254293690912556773860726557806346613691111531474082007549894976136481716864042855865156267367228286651805034290835050418750010254564569498296606178968249704117805300912963937757153906042743745983489763741849184699500173151293843028170149620430710381430184441286201362595123605020659697286203623106749888709260915338890342153765350796392770402516160078788900908296221234988469372367922169396365213416119024643165063993056615399288536501511139136884145300927959712793288658001969800913931261028468363985814036560923019042149446093486616236390517742833786151541927124436864568434560112286491044026028484507215690571797089190558071698410481678800394717306475217181064894896314375306761494344324265881621972579007265809527940826893328425634999818571567882517489400554149852582458770115791333290431172487837029806315977069410778554649765299925418075475604529003722251770237010720689857841066671792222958725499569688158783285234590942075626304053426253578458173878681809655780624983026320673635851495845254920350954225349314988096901168273768675121430945673031336723231837361774424648118513730869254424494079612994742899819689786553735084676991744274171100949219450004473018207533532345380708155093627721319976492392530871947019855612073022118841761067071457970153197429064929021552702655369288577908759741547948436160909783555343879855611763494096963777725611782949038917393040999167793955735663322433238177464508296955605912067436421360201920747369170063027201845093300948115357981479017316013437571008635484668732467373695971987715302294847259548549764080583809177331307305534100101737274374367322291202338207122929375480396269733700283847967699064790832855089537122284451601427390898331337926481824352891491622555971786621512008155097219820850196360813437568735149163337500346770896877753163957345335899391832655268543686321721268703401475928065699879016290011688051115269839567145341567095400855041877806571470806119206361038007458087529735930222244587554026716659800234272013348284943507278538980412759046931727849882731160204981279436684240943228535173580871322567470514281636977475653800775137368309555406924980077963060567756928945714653921259457615111369283334763760065181639792193084260579980299359495262185569016511107779142092603435617033519702704847581321323800032262417113099067043270807059911538444180819142637195346438603847802504032113276208429057173544464365359372798541675744487295932960105893064533225728411403335503443619091870824108654038426948656601573420953995656509445532276206104296796998554024561887355565688980183031171402441318280885124425554459095193993029290690285813374405623836792635691962203108588059082326597703970077011490506684096300699299367569038294510641377454687770860053887561579335786590942972692131376907756949925876924770357176461864635892614784156658870470444338697259985138392987410192957363757693142499315361696093816727649157687545546102001938271098659321426474279250750932547006274897198823725451887886912462469025447921002479758140932032628775748514966433294717240893089326139868873195500223401870467831321040486486276942529580941183390527548597041713351325465755794915591879833463110058762795477674664338864002050690456175132309416684341659653865650466129718322964564079790537179580012676518395222211952428613611197672250598121430491673417003114174391834070130807435314776422597315628577307813519753906166186504551647080189701475519005845408995371396194350281576838926943119183561944499745664972113278901950176408776068193481233399847755972397853322961031702875902049181832758895503689362452199367202890756305420555240910305503415136182347357212949150325163144486765379912449329681115356900870477066622020667709137812674743718560726914647531282420137946925712243932988482906301890624455425359890539197625957794161869587495900660394787627560137872894811928797787471814073017386804136132390038456074996752433040980404560368276882940847486118705826410714850397726234226514161323886687306065909855970113383560040328424039561789572644858013848781440086118555861008842902475989017368564210080360124455558921622216088005640020089265518551291302551677256944045290138218934396723156088267309918271276957894063983222037874404062289128006294160347565858477214910280532143076605307242767039141434306079968562486135375119041905020297061453908895814572530061931774314540910577877723306392392288506068927544814930370925677785682511357325318729585989766536554186796982173788558626282583247684358451258753798057231192055964720581918068807399980029047957850714854162906010023608121806548257312713027128390400442683322439444248238806678316346265215365559547002464952522954500191204028934793109836396368908619843394739345945387235738354904139005694933272432688510331658375035864818588687358532156001046270129321493619149723153011008084812180715102178152377772404331681936604132590453322491782442270678943705001882213488207388889498740361849707775242290895840380715826670181092139175355557261927435959646233667408365094942565767186850458777877747472253988862350599567305614257352082512512561414541718674072482558406371482843264153439352281735506679870253473949664113172765913043124015619171284716985488257236733883917276094852216533557626055626407979624480039536941651843370323533305493880507840501628718080484023092007646453068016482899662377669545174504209361546735201389023333557047820772611415755998145869062617120748342013631862507247728115019423792500970782519276829010350207730889360874758497567804558243992895830407851097019810171220898519677034562650768616105658194319925109692323940314386437370629910223013488528647966584208750092323428923010796282894810783301372014044707615665523794511324428893920342783182387869202233220796941534997826284161726951257316065588199060471397943913546420244018911992919824010559728357846910526731112334269350550824790288450451837219512647123782226516152299621654078891194227249947142619725647143842968726784400601293462316431571058309262753688441523008234833467437200779425150308650664220369662639835820863767599793438704403341704772010603493792466408548794585481147796410528818670364464338256687081718243464023991393548534449233098815878520478205324766711192220214853241964528789139027547785303146740369158662451244225505064433762060419177917841028769478680635806401715200689283542516699619748475211766631635394256246815308479204368293868182293811406974379784692171681367432858602050637090691274535004857234031176209161008186158960297134927600061798042564837528744071133161786278413374687377146316921588856675154380434130123572581797645212996764267376893861418729844151057634590158369355243860547987080828026812287196131596889612706142948877289017658587579297802466042655409755977950072489593622682471986985479265675913345056099625233766665775942468282398693925011081893210492396864018793318621255738853043318944827308789388610443511167043113865788397280888620673685387468430398980740050766013810813300167234905481947966193412481531212146717329920018081763942325595596922301688120305054757440798322081237683387317519825227222101708389799679288597037954932184995807982554421280084826859267815648512610160360011260004839280800919087589429049157959072247855168214177927996327569955567445556960866000453537639261303875880610146221899615947627525153962622356304233328331371718328647235049367322543561945999965273538618009004375330739928615509904514610716882336193055915276218521394777931687039360117306751193366060248933842457724454018129903151238784416353332285794591464183676221454639014509738771863976133915363074748885617417845252880221524996400191834034120825033381612764667922923187462088829644063779861606668731632672054881421989867616435733215557125905090010678788159849134279279262963353361058090791707516911835993303747115914523785234353870828257595737295906055737979983265505233288532483831823898177543857177305693193773198837927171890278072641609452923930240986909271520281820354090877246980289078536922609766844063873009919478327501400542267311218682431994566758515491969377300246497241966716834471496454037961502828145380126746589590865397051894726238424412312766677702439394474154450904353614655746607841878145094570356637627922077963266250049422749970958142457344252758587409449267253231954068037914551917403358376130565185648829004417596202746995630390722703766235196106604820053027085732232989493649401674427184514175738560632484330233736402382758714169606301698712276044531999720387916074811534264621881269669131902873502861138892226766110794623703158175813499344037185456277244739877942246179484296777619577424136227055633213147121302245780444949011242991498951439484596090236285174560657376496171963656382467633698025876943434859553224116121863156103790854317582751935073710681381214628344253832544457687950497265307620027509951803262711321770078482901165568248568614082710969381122847659242534812493774146325205220038846042245626082358211888502425604461523068077606365341301660609132363385363262668992486635041329248526258294570083954821998277992466762331239166087245410718270391038266532777380677379904381560147556849415554629685029475720700118019087084956356170016528276504877763155340769580044414926568430041320170865700060636997500903947064766434094806531721172654731020472548464849421343719037589875299990738626136968138439015651987962804635663313503392717111542387261797634887248888033925926603378665033400512084248679511246727863066415022012976708736470885842171945279596376143924241560174462299318709203259599555897409031230593232013725267085444882057579244235124496470118414587336577491302973563197708950558398439956126254527039508269725709774996986873453490766980957408726607098773423632150625052510517164155779337194097094343849328321898209174262241328357820470635928066662554073288283649066680958890918372716505826226493903974810195538783467011136342810348262614777785350723517917932023167930265115157179421797821056848767320901546490673313081027306428771049497103480859255804550225937388543281052896487609985685122623245459551044514277272290663798073774789960657986407974920329542110542173008380420533105389708441915462373450114091947708470163719880505976549098488285329268216783891621646841752086592351421941389321696345820096787771974893902952743251920429402139029268773202071080735871208700598465707480247821777091224151419545172859387767313772209349337683528007998157336259208252997187832568328644919349406020953726960547194515525834316279333107915586637839992541337177719510451689438282829778012833287443043524642165094820512717415505663217208266137178876324774747552604465004700515501872486207814772569680998720748503821020597075143573600980147298181249852437999605436280052618164846038808473828021226612161744782294533166952264591935032924420040274791698301424010987966400882877050633319428604923186797477621657655009843421945747778868923134429825617150930782119458947695525883516463686825410685389892042664511571446877504654572008798001737159283725308941579669965525615432876074845258658358231650561797204323118190429903013737917424021235250362177066585481337883805124915748221555758174209745274567963141782089214234359806108850248400375821265180958946775241038846879615763782071753324626132738969832907381150034500768935636234692155409016280043501998962445318724349300108281294526038033955967560309429160854544028957775675486097073449629206453530388849938539927396094589869810767308886026694507651789249617113767927924852714638777673414144017026346805627637490210064136463336149399663430030822354797510650927038734161060154736075336561977030473852554172136033034079126957444566272984523453242739562819478196958506230826157771834088961807870689067025632953249301948675965509119798366320542841210916777549113710705264400365903171905343400651294814037802645486444692755955965337356581429477984998414854744375868798121799475751095365592712264793128324566170817195872792834877696201809071380525638915308977007039138576654823670311556393969136992153102648621237871206178329432510919374429682315243000836382303476996828043941389762918934302834839946686033368476962556168247742192443824519213211345439007538816640868636762662941413325078579652683618928892914878686201323151166899286582367281626860600902627832889145144680780560336359517309628541333017160369443170904837973192723223845927506153725255505088514755787085425643856055608535227946559911112553791277102180918740078898653921192067899970549699699479789244514932097924983365808010523152635262902377451715284948937504326996086627923087420910590475624624050919330970414409105581846601374967283873752569146372794701293348074694095460950181322677105944774795096705087062187326110556675058797651328443885862803408161414564164372908881789564309940498097022913191533648969259644607136617884329531344219564245716450686172850561928994889968252224124167602573855967537462751881311171035219262302001947462434258060489530671374184907548799194946141676878998848628383274475889756796147116831509540875314362809037024483207648645960092230703328663336059341961882632894038532902381269926179222995039873026404155673125153029188219443453883240258536417170876018654385324888629973609777785746891676170028612885582820350621410801933701898919287263690197364290649739730371144440613000804891205129150185843266225280406671598046373844366811186101306027202018758726889767042730394565479474357113402901151779364085991841177775687922397684662093376256622964632598966496275474608730834963470967042423919926585518088318081396467100043422160200836180214562309538287614201192279811486071468493190149105276905220988593855948377240327534767608492912525624233448592971865429763224343340156089078856201225083934639775615408904697699847120388516862067529358361678164198173018750025572807363648453307018365051087718863352018555666248151945809300195885962354884712548812299257282894741455326350879892938226243154618177685848249762257013017176149525832193210493006077808801296616115955579753837933630161954154027934677273132857085334155517122466255097324719870909012134608262002054329492830117324514189503499677346060613598003035103499364541106841428906665618698330711841695058063119614978922682039773678397263583136957359893285302679110727759829344510271733980427065774641909433274720135344497516469673647346861304423174832231333697928960787912370203666002420780347232807716259959639546666675337550449825580928988270007072714628622811637202766206919672249743768239842990624628364398103825651937089744961766671562903669971648277515858692526872383443172214637551217146637344233984096437322118095908887397525703861236519624811496289544062817152635576242928797328040003565247332514559627722594042722195144011091365375325295100078928470797996740781715212584828349140561252605497553666337350346298195202786408392500368283111498217055946845314226765898456238792904194910265497506443891667126471607077119020681910071336325662885196130392326292464689787113882351942661965200640973551191767939165578784137625599618247828476077392512132008450642103150108446060547286283895597451501235863153181961999782609499174273023125902410227028287796638441531473645762981463390894443186823708442755726795510976736795963393524889174399198577585500089446651186039034370892428339351098883347885502806421563712497238463154187726552103588866901522976500604523163489482128465594299855085826566351600119796188778026046841826680654442378004594318098900886675551724160753332065572006655473472042632115514395247901366863327853537694096904302662804959916930336713858301201732660140409463808387150683220417752100090324235728693699389073283538068070396735628627907008404729745830698226489784072337354935942252874609521081152002894361622399504990170965002151244308473442187594087462652782084167130584240401146438032313496693699290965391569215548432991624056570119772683861030868328591845244106684305466831454070329860184428873307643077472575166370539711894888275008305537586595040197901112902040067721831223083930360058482375060708720408582416101919281647660736051460489139205517654371982121500626665605493095805716943099634369690726975740585963102885568059730335583736810829159807035537664268844146049760203709663182160234573878460099336645024827564778571773578460479164361703064068896053193962401753928295760218229020583411231985226145269271061397658743202308070125145241760944436996970159505271551634701747999484824265529087493048371550239279238636016474951310184392126153576209107799388122685976788217624109329450683072521845799179354828532653675841561162663160816381282949582260456222157732866860995861914165368491309189279362692051019749673723124581249818092643108656695704411336325627022208153943534755181975203841611834894646536859804129299445879770896458388457178704758439620209571410507865149357680511376835050576548908910529154933628551175872328871928974933392773459609282747552941993662137116895390115732728191873397976065458250245229242562352810502185961618802520798938596342276736705845886346819216516789647860710339660237040225258656089226370721848539296316487324152814912842607912075114932366250231094199703179556015288584783564992876049676144400529301392855034821129094203336812668875214591503074357056333155810885026650857015341444245882677025132171784221616339997050976794888254252866253172009966069509568442337674215106472246100785905200000137213086377140097843941134284439655429695852543627947436645847744915090089292425476743911226129406921592249223551081589085549824778115788379304662093641745941201143438530367303587168349040036905997170550020752891050669840424121417145328216346994454344725420075130426243199180540005626272630848558174105712016048708023093365266445908644398917015338513861497211273063822548080615212854311160919203918343670065362641590077286080050503846124964650258371433993184123698593350955944397312093345014208188815845516263862199635707058080968174768417150367378967994405835675031248006996450736334063763646018855995397650438438533447679952181460838941868468644644902710541384024507266616093351067973625630476242680815437966111459381772031399716004202404662617856021532525598801011404771505328897670939101784245031002058619066540589293091896637168375263281208115660205512754425167746354378938513110884131205589115148901825666318952233487747627333321705619149872708627698765473367575603266376138278669896356781684086584696020760718075391846523829167201346311609493915346967155140886546965112816359676440831553271065367799902604339119097329836397051818164580188491268894902652340333019925538204483920665236609720119539192102005051569570183438962919420564331270919430144272488108724272933385294644181641530374839403846403687684154200395687686432928013794148704652604534220860850026471854641224043768210912687223540291862497765368602324928494075418065539966122294608340894160800440918464434005198215421493377922292059020311416993750850451129812120807368513812538701034043118373889459709779074847416098358671552313555588520595550595245413269450772420288361430549149496022890092923046017727622548193827694604391647173775693927131639044738517998986345211307132844952034351389403339920145363370597374507595535049378189030270216746695235643846560985867140261771900081513291850713332000850247111550619021628485134230679974747283796771658687714893718001931966232747787087647952089525036709713203541090960874879795736335098939269289351500335803572880532705056817679248678208509362121123806528502606012802006735283295824112059406152127111536332565058620285900802813201812715916153127236536541254298609939143311926833237900921241163689689999109212323421386644489500904310590891230976763816458941194340614213705566460762192149423088441459210359115942585754040702891267104304886899332682385719106900223808831651145833304676125232039523761663959284975286840181609568425254913469736968370459938132229403508712240780120152267139996588116549781192115496866794898750022282741018842846102515110663190975103119148151255442518289468856255813938653637472105900438872481951383710374239013942061029288335699845944303921750106916145006986937584163824406409212459934515280588433310247527578804482062084092621146591619944765134485747215362822941401893472031700472408471600206814736823605367969398557798343815620415730687347541530470414614240019202098069861268569911218323544080160132645643526489940772069058404313252780905487139123966307943909565988492079298700557415636725095371792901310093424587642779608646558063964601870504075634899569214666955736044791870575560617991362239025252339672649101365948517012901661121258880691773733053643549734992808633536815929967028515333463130978765767468138777018288639562322655281134327781416555229318044043003307168155595994297543429661335565238902729456275476688789283340143872242918180667994705209899598633281656615855707617703754267650404984678735474628347146161107009625924298050086396747490141934892454117388018133146282494383955595306732103222244239696213118159892248050730369946626206039659151541979031440037831373081024438723582614778215658532132452037384536392510579026207274496326903817576565261756108979335793621582327064801944414764974286574398552305514283254107733698424066737196771078212063774501833761892622513939387595044896924060965506550129211985990333585073214414871893751424382274334500954757039690979535178375346577851935164498729673578388376893331704678721763807494693331113323738171142942519819950820461933908427280770367917370543550378601511584678520692771290859680850115825617757829331643054684186486207495971409865439525276953733764170853096731485190782218173039265103885491861388183416690896353097566930065065980870518368655940017249275962841030281265084733031149729738831840772952314572693402288963143485279093203657250378355471063220613064395186770934395579622537629031516653921983181408925364877077456317740836534325802980182764550287756915759478081621426259668192291892989264644515963102107236797908649286688379322317028061845566713379547585116253265407343182042519547179968123802310464010381325034842297385266130778201660252845164143839480059162868749674854489322880746467833182963811698856908220122431608031095962367628546724268132795238629009061646457152196530362750336134424787756033723536939582727622310529697223285902880983445969363578762114959921041948118600943174879769916730762633807274410163961746672552350606475869803651313515707428656377896433386733812809067684101110250331047519817054011648292929243766026602105626740249835528844135835286851406175403180379599224340867540913538206400098906150813801237730099251867356264124149683839803126637218292100951350730722964691853363503876268928380099519650302152505965770979447429856832297590824085607497383613387155526144115583441148624630600579411681998425825833374615547900687900454009018567406838476071258483819989650820961952658275102894759020808938023967488877857538532503499395123757253515027041792309757835862971416788800805856037616100132764961679273715505166372413593018860915459963888112729798067595445990332274787797431614736166526854685446697578127758737481781192810057287547850056219321383175928883859416600361602826083491068451672481968876926799122490519661876721229928606436177481668421151425729766145088947256005997007553156554039353926328453724528227724320254614019579829966852065937156105208191857681293841103065133942951259917061155067145900810289044087545506538376983445513337315858979994015950835574206085029165449087485756634861038008518183792357402297267751818949065954846087490738368426020419841449239065626989551888948061313949014535548519407784898201887464239437249088466400527944234131526691195808199089918545656789246285339528251197893126860628832855633459716966150125620461399336208935562009495842597635495296307532778828376880573845091745873585311947963972377472342800931336451782484760160585920496633250194781079755388580297697153107936979613812891213479777833931951625076921113545095650168903666531304981863792716068104873801284222290379875477076657068435500650386774351586871276780233734214785698312071981557913668547861117236788921158486931982534517808271513423883092456944417638050947096073357841618197218669425107478726893234407462013152826035421514492943205815335779136082604720150903936635207406248634621556856581529771874162480610266803549445592526235834489226989033308081226218966372331822598774232192867635795764110060605538543859049626988261709388127350674719554941633140169383740443887096813879098957549347456101532509510971871696808838433599128984032139759296528010432288034824645939622149928278424124784797869180593456483016399293253083196921973843981200240142910062218840972597788223905654598828516856542134093995220093989032362864645432099153890736769367780457197131527716057123446412449804904229612237750331194807881685578196386873660641448070813548421049819234840267341326348863908233101058234062432319748175087968125184580659288019216005255364171379297125623333344779218327830977642454498230396706636454279858851684465871870573831950051641665514654544343544804788387422056415927567030064415248462217062887837477895752049763009247418357010872489416548901966753319751859017109422141618949394828559597887207373778226093361164278099312975353745180200283920495669913829526281097984296484347806116864437918227240664971061567917613446736293203177738634879619372427023837291701727525857040708765815498151569899096876647284790235014917138116210033772468271957834878392389120447894444781514357556546894949872962007057465825941833537384582608514145075758947141396109486556086020825309283509856148602953566185246071861526088076238809306945992759434593771609151738567170510708788876398545480338234707229564464055044489761905012438100658126631064160575464459684760884206840139882312765688446070260285114894115450744479513025477664687178595600121857261703921113535732702260184023710439675019214983794601886222942302493231733353837586689632126291430156518288837795356631528519243475115145256273300129825366654817882717927173803661078776191598619579213598875104934265524448738360440148369370129488176999405365879890551476305867095991290991926752707195377898974990806302113307370220516998147669970353565230793851145825527385575441366761537409226915711158349664430162318596969951899780819915211798276400984270602285591063537384646127615190175180689345154095286977494802498041456040177350361919967244894627240393684919587825687418482964548464096648040400083619001170728107574831396317735739425032519238763696470637268953703094528640581196324249470643748418596429474600057265062540445911437965510636535084890798855331771657072579062940679151864668445495011954259295486324139879765977989477531744570190172797088013657690489019272356411359597418724604932744617263410988904408829290784178021668465894170963156073240556985237934519186490428764860994319435654886705824463549768833749559329459303203422423335485349682656439419536397936065591290756427093368839722430308206978973939322014460771931104594474848118421825334105312878247483616032381032967068038038485555224067563977385981528515908561844560806304847917987549214344456155053986293939765284238924447924790928029433962215102520233562744653229254048689993545052494112241329168159434439209210245356110549640385393538456102071534627722764393154023958927315645644180423116486585691748135167945018006270677474799329159945179608625291088515248823222129287023863456934271357751617475689626142331651796310347998519259268022439879771885242395257710205802526889629863154913897283315586256396634108188726519572559313089613481521523690467631225242677831800052893322837310157658244333903468882959617371293659940846050267756910472228529066594481250835261241903089471513752201442801620618471358789656325702939608503648312138692012399196956700318420269375936647928125478198771877169897259241996895616529015385954754572718285404537958807019378196164418894463433423652754024212833821640238809826908399825373626616747648335626141390633289599204506295499719392533537048144634046069155805001995741383104770335220700152983495021271060416169390637752536794156659382467432719368021821644790641695389056341459762697572203465406776772574087667163462099862479627023365057417173839433109387756471346794269569533159392163084117627543877403069345773921454514439313196993589782126940934485972253537870135759867242476699973076851660980021142527405587657540549537854998547195662289158925915502414091827211743151093106525524445667462221170145329082648159944819505338203497747099214951815648523013041491722763804308617572636264748728870833540092724049046914711593245755750571160953722566740987822305625103028473662568087977579315045287977171022483416008958215690970732793585509460783175814665368443890518905529003748753794659952444802558545621461103217875646792600061371426656222636549931798071911810061741723195478158732869752537932589937273553265242702019260736474418742599505536131713666672732207559651700163561790112145885457639790479031804364319515309360329001693254193776896682968125894962158164609944057831493121656794365388374029807094557297065384158521398780289518218859173273102988577416821677323023574789925281246762657684954077821344138249061211081990131333812496455317977431948159132360999602875410635239135555422520529592666135558534041523813080342415960776654708319525235249257984556954201990645484329728224661852792475999843276665276570231217398313196125969447976774926873769986145432321011059927522252844869577360411668419442284015985203025429681941941136035943930399876454179683904337131589109035938768780611096843134774141306767535540970463579154926696258193562133868951846019299346748708116020161670320287300686160833644603711035611515934230924210637052102267089818575812558185275625660273393943804181164887945734829706108717963869041895540599155884316320743786837591541117693468145461267323332612132905773698420983469290321014592154902510315713814993187697298894569185350133449321624375397546616966584314719908844177455756158459813750945219630272463798779695635182988102525552464638166499371445789739967789555197416025179470715345702030185453044266027848791399155829247030226515680267558756795331900591248027324680711309049494534630657614410951841392328424960775527478460670978166955201837764878047966094485451381260348401579057967127245744176649958305861112300425616229683996233605305878715184867930117014281579438334378105182547514386614174648791991264164833028575690567831492214797505299229164385971625489336658578891547529341618637534872388000315117086772988270263698836919748715144846000218767790894353604045124404939100623713776360447113093667414971318121758751701956768455002378822304432429609673881835074545908975333119777197575822939010843162908911725252575780152927620882255535776811909281598082200109679420121960988061761608414012672628177033558588865052798774178480645314450967120464774160352920657379133834277655695316448474358181190620568511357288124718419925369145352143497676523885557271520408141485233326941137322201319509566041722341153329898033404422290667899223671962018854887696979654747291166632590206390556055483303467477581188069997998368380538335697370595934656555430663290994070862196308590681343011655946489237908991238250274126664826863914528402379910705349342639456498887606844820608328577408137549260657415312872791260408445677219205382547084307673138311997580967282471150321329802542961391556815899004859454580064121860101627314865353792844051273823915142836364677372947244131445373771681276178728781259212457824344774702933867456226737881492241672388625011860700935329887352539016925409779391029586490326290204397874876980348536645933575562731138260547087277496797356144789491636860499803355822676142111814730812417940374526644708746169436351436527205677577646497102722227478442433661220405537629766165069007921648542425757472681667866954917303692732100668041133930847784730546283421215615461830291896110450005565834690187572620621883606251237549792043450393363733079966180786658040379420289239820924838961060016767893469560827567491364952947887699356610632190824438144402282045564787240119725270863619380964710211192378120974266711292613118872895069896142395790886284220875764139683763498846466928718618242092242513190977040845814541130756637518473484644785584899129096455277366241541296510694406616288228944249890335250481575382394289008611305779753442717584950062663455500679120090543389491685932897334732117387303006600969954561802772808107448951205657050400350514902706116361125704661927102983624569014677665880987882738100383739198520367364579251070507109866812769562969850599058470287801132898500068366535460592586778548899262039521676355845579494642298513020125289905075783451657233391260473987584830520448203346190516316952547001875172279821998264615035354211343672862833516121776034544459860067041183919356462464027207177128121773370503089779908191118889197893027945734082232347126742365222174396479593667244403648259163837976372357925006453679345929382513352330871226985262638054039657120137774761360250519973956252911761918940254728773219533279094061860916926325061313454340665606626069997992949719657810894021186167142725126077965349515047699753083833540419575552901438673553485301619333729072417927828483347435917092340994238635039917811620641476001701492560828549518016988119414364342920100835755043629775895928387764952506666818649293503524223693953912066746053875001391790513895525176209060436798539515632644853970924194699403661793051805926686376085142675736393740283273278595072823943004119298613111200031922208635215121216897893183609457544671234730002176389160626599203788947281660953175806034072512456104570682951959747260382182687937397973463768728131729236380918403992012605675027896236600582802507215280627932228000620706522228231525753928019391433728795048170014276360175272340376441835492216220814816668216954091581750300443774750450799953624054756102582723934951024957982429615847974646991419880328528565526988604364905456976461888157630835084829534798994849974338088574552835308628518102438253075344925673259131990721642148684548260131328790861206106014323036552444973127928541082407970120569945823979474780442025840346083173378027568248017490200648331049022582386161035533891677552395329304650130205936381309636629397071882146061110645673206273144270779538695462113279663854639360243951350864633020754818542025617019800335633358449427567895871399700635528593288329758134359745922891523389949939300919988138025419706334129659037549713268109433747957891374723805185142566807980760461895939403033267171697222769526481245740512332289370970869455816180640181566388012865905472731996349807728571015933336689440035964707094712119261218375315653802450788891352584635195195437995649879416316693845739840084823134520784942214303963038032437745257624977606995453480485952375299952798566823689885661488231884925717987795754137311566559277362770965716979280111504613074505257001190561703536271515251654292197441704862127898723618046672064262727671379493696929538098312097091583116694272013467691786088550880477394792145488338997781467781962199823953707497912928859781165761021636783674886064615861804511010019401482736921643682821982000958629748171038507339129785940311195087058701002672531117598341475806001326777022298829783217251601508839895312089014765257107727197131392547973945272114822838809132511024266342569692212704108132027621563147982221038443831377646898157694832786766244094908780742405696505945268263306745476336979704205359986849646698911726865469765383058618214550702650068444202623790436782390812958320890626566134386269111093657460440870789323847802178223578654964196428163130257435692812635965973894147832415228221736024006181884573584514903184851333540317119603805435361844082771626318180845925396362698490465652044539031410670314311465432206118921406884592844342416243867207993636727044884777254357264383266023219083228335084498867532655595368343065224737454450369832571625107381347364304499809602417648611882429754860337759334494419236433092821180530704655197506690114520871673506897083976134546614574179853270957876486535458913087696462769903929405605463920268931906798341994225683759073485647871916041259046532429465695151423494977687399687638055617850654214937501572109196712465719307133539759488910350265222264280415727730194624867709421680324672471006161079267496923319993747726376019648246898055957345139538950822550177156140132014866381284093572860282117345763627352048145072101680005639918509853852536277072986057356980956928719886825414722913444818886245337633177405836602399850407118990393857400390840496563181467525143585315530133608550361236698870982579464766175055017874955596005908589961641602256656653324262952907086455569579007760973528163713822751660970144498541355038535555203252195064310379060623613859143599648730724037870530052728673422376618434472333765954809283208844537820320910672469710810238274888333064361293561096585751440436171884881958963256219669263198576601377763806912677258589120372167416628034556091315569955856194049914682982077843388226278454875601130913961433572946124537664566482512049480339108297444427848841339861053448639165114218818924380360022607837503863493925563176507584782237457164216019552005192855332962816829270112085758390774884479173994059294047838987965332106833493101391828037321173037598774988278247491554822767808613661062309732049130282243202947991328112491130323099878481675712709664997044140046734076669861070364950573214090628080235130035628050706630241271017670780968096600465510846023346647628512226415801573116358816002487832434339078118082241100802841751154464923693916570249748305811314961283195696884270450411671456291637461057957028184306930692595038057550792744148210513731969938811173727010425759456311169868917979365701010120173797184855422191077036726172883624184108969559435887001483118487710103722316787771605828733228990640165479137528024795275346434780767193354056696485368351933964354980836865951119355447166663539003060734616613526054213014064061042957775986161007421396799908684553912663075750963492636548922489461181821073550857231178468909567298020685905987434684887429949682888368588074890579525196662561154722418678758136560215915413708444173324456517322781366172943580359890063667622283004004198933127707390774065808388430963497544717442528342776749916485571374259917120426108837803937389789522853336799677762539423188557935214807439025263303288483242862762666722691663764236193164110974574923374894283475733210015767945489954320448942626989924804713600917492504334853644946264268958817401722107430575363128312130173929728192618018131334646123965494668685605832498016594880321803688839422394339043502624864535997129642435245606404526742376650330989834728317031587628227684166719866367048240655392192437889512519921846760169013489744779440277763684263372036609120984574564892594309605609934426356433334943968225485203957694096481771649141605897636425642385913557459324354351171932581851318054589476235101323997418728774142139163804581329064404476988344273633052252495347335495115851940868411104069883320176654100335560942479076276787770800135425164898798039283366185541538670401460706911137420290860972865148916393134886810244038232770740414952050063778245645196063459233018562648341632429420669373575424721581700740230242482701436127381084295644957743265834271746689024023579903786564607576053725703283434414798969842474207539205616679765763283836640447601096028387977110110147491432691664400280224426634002732620103825313271671242306361638234717201554476511707371936511900882879395827111485179424171516029037003747041150557618907504333671737229456734220312185980146275166628587950370738141580017727494777128497904131613530301620943643524374788239992666899294976948385621922777526042480878763244885320279271132662764831511773546685209471531154420802138789073085947020426962920119452388881606231925637506989311073610757078920007734310058999502799303168056924834814162443447722831616157765241407237405974365204709666238425594337067167433600318351251498313742868909170289532397697844739522790170248522005753872901382264903673366740551311512279816392323577687355579897344989004288994891584877788801342335832825580443215756624341634177678927979229259153669645634156312567277928219350356706779380437804993540308549638330470046629461703261360314449769013156998407875719110279543721733305081060385447966640920540229488228333289224973497018690344544782817643802355227920990944775703471868039832121135751618507644698347728759268085247919438669279975291297565838890805474016265331001183543590485081946473696233943481101497417103647231713990390830312242270058673672434892500093445028291106547430388200187921193727058069704843313614934205280800047466446335498980203267356104983596785829734850337811363844924792430698489776289206550339584526443995106095487792707043755423397137786531600767366515468793301755401269162425001457608486260767195560098593042083198009131852672319404956325441674007789115273796004605730847383598911008697854290685704247601241000086657594532491870168576453141092837044310428213165406324236487940530862845886682138264763732784706214718813790757350583686948029152404523036375902392790958532890443299702549122045603136236895890095870985367438280852940253942399868149158468727201525755517991243236615805517088385286303098640769282642078759358786662924031689942059486095848131875210350782549355537592879395192463286858025658160729082644700360913245894597795360841434588145229217144809514419040091483550553172200896072231548234026574542715375684731214863991882581441347827805813725092742460439706388027729452791302122043871934989035609895299456590962221524687532565771490146565544873135860086302381323909095868392314455016675524939024620892741737828697488360551488606517949417092980656385677901779498129079426750173487825754753021814259785026595570092409328496203785577537623306696756597572526495887685109015669855288325886916676397169992850686266543950373101364445384929636757496463180347539082498910535662564772339128789046004415679810718163861742827469702082139021046058982475227845739491774127169572034061572406647581502980167810163058503264996289734545509370902548374757344107707812232773711501609303101171564121742875590100306171184904920689816793137210895750717474862435544451410511657900536815166938791113141036956754317248022442662423698134122207538875382129604489020631926196677892463097210724350662856766883044746808668535651087952790507434659296517093492156240581196368414386636795111966110617870008025097551664574107182393619706568583478639149877718252572025626914834900815832877122409386063554054450548213446769090836722447318648775051657032563495218568482916865326237198637238034239065303422982476295210622831890544917557821480272283679339100407310176748689659129283047225386415472193663455066014101753882028932016672135997845755839586488749200971834430985222057040249733844968311277921112402316387633750474431768230156921226077149873063187874713079032575700875848719679363584348483162426319386797067250209540059409235295458653308714042319241828695688472566162453256703821160813128435366085540001023348085854547548350364392707093500496595038722450111979358364351881758389793808635999349930253016582549839148091511453810790910615780510560284186700805199519272908197343462944398631846659891539389817072606186435995071237664473396327425501579788929807812330136677899205756457398598233317018686295090187917809765354967563658989664157670530830579983751665228465651456196343010834430971915556360905408236149437786125016725172008666572817178682646673218022835849905315341087323462019771764422050147831765494528059693164112918835772224572434206267201556363858840394875163071446697123883001787939823304521224510771081128497258464795782453142739116047910979165574859519419361167906466530624698387840332158346204306184016891062262612978956924347812670422071390151916040263254444886717435133834628901271184053882304539414417088679353952859781912352140666470462806484171530454857959917742925634912148059686155121944463306389575420224723901163793557085428649997885461996127251397406522857932927093439650600853738987251437627601879389531937492327605706641985033553898659519411271592236604926122169391574641443443337098315604149691654115213186802383485725270881915208904334332165199499317000584745696084365674845578331656672715945919704330240825099877870989046396172743017906033131730320481276228768051029632114747650991371483314992794356263321917876161999783000573534379091626319615629973539019256279746450370732903051301830007521318248751861369228206988568788973028283720053068927091684183544659837015074101733281437908327774623177238463963652765881224908238263566720366910531549571950736484970703585208201977937899378770683842892956371015173135714732479922713471991206146557716168706936138163410958895362646227509757231507143873204194671423732467970859721543394951230495513983725084228113836533439282719233187467956364982089086695042034418222230844979460803359394680486632463318123319290566331608612309530607765488659751091636439589535227227178284627820253571410036880117507769431742099710629966129710665327645215121810589646406205078117288940360822274510492899102708316047422410997803759366202410213618957402425445471732873546541706738144558195030637602014025253097588208595097106910323744302062265758194334863181423975044033597675002415979053795578098034058731280021606452771639484586467446989647862480912033765142252262076505035542152482118644528067514191202078687114603301489258802869214235954150481712380592465975402852235864036985181150058685613499785961358194580518028510162011197202665344290881310061634509291033311576532195253728828853924234622270320779428913385122978269415935969254048689321998347372770487268279189653992310560280939864257519527912430938160314348806271340053665687500904620724668661121631679493654879798604924084607411706908978712657309515693443852747526280102670689728723339651922028604171641071702730078914117349934620344763550085536448833765459401894130872361522782675020691682201171775207161021810416783430736509195054980715498172380655151983272360530417999417973936822489387348231179041777833800958840181573230672996823552570853386619003684241267922137497709246241343528953291239998649825697362111615765796875757033266825573548934646989658982100048011222891668995419235546499664195380325603349702922109797858315195310012645852114857042252197242351996300503506225935703991727095540838054810560715074833495555907318222044976035164332429290388106129979597050407953742136260128012822501399510537911393468837106681601524785596149191446204119656920376418789995628776386076520304084821012419203970455259554179306749485459309850497756107893796063831656104993567427837696733278761225691999936321403371995182822559787256831150056441118640053940142655824132706893183495180803807737895351926216175301235979446708082485367281016628926962773148268112527473307766885480883947161573664543128493633939877417424667126361718703249686905132098181505660278876015100786184503567856025975594285149549876736771205736143987974766464734592832381095633690145115306018533178970356371883306751066672178334523437307812358109802040772622534487270572632206882514607333743041111694936367730018752580472213289991946633288714207214619603119613969442411417495704441158073713084273701281633037573934034783595112089720218561758621439293708016083159019989884274195883611183271374236609791500547069304504772474802879836958308450794605148492940542256533437912523409052579798862528139455668205256424246487182250850344182957105863401646661357315881495525724947741470929953722127340289037856235984830348388120588747513775213604849645171320266716385006682993892689929640511627775119188381753213136379362645610687012661826951010904074671127462508743966414073718935100784116824292625321285019902346931497271114001485278034007632289405090258313682497828274487793822127809622450309670997095869260030897846617390210695611054469102266154785196882069110575480532762610909926193968693492273594497537717574702397143277297287420355467441706106212458759691167447967659005436309967182321987761399524777171239214427762094625767200359460892188947865084125711963590842675797609430800628515937075419154618707499048098653205480716150435027519961621660824404081042800919528247186655596859697146178061603294645761959708212175675918339661231568567101015076415612887481136815856643082620379110954568649481800638489195604268152572917863817587991640284800783590733758919024332016080358858071870561412117953156488579563069717981909558369305761963850317741152775364830530912874563415714823436381345307307398362829634546195145879932161380200892879210001979354030354081383342863358523993479122089437515020116494686170307318782507588210942704363881470633441518061376102476597873556790874705854236356527362795753809035984414407521876517897456289091967253398708500787598670489207996555217748056484589329970891638950463860780366830450064247650495400994693098383193872121084010277162046032012878449755103236532507506897957140905737688316782253597367965637399587445830738707022135769437636243898160842673771863244988370668719551265486364341641555524255583333138244118040452619515917564555090038936672097922979173039772283986715146119335545023670497874818893426201595504444414171539419403464498320126214994562229277747911792546775469389350885600680298043428646938009974699117461411315436933215417808586729600929283137863957150823489809977874800036078583003673017544246118712766873247074101795848539037875260021209536019818601353806352126751320312092610109212886370944744498923071309373321833075692690657022073043691029359738984329172448995027846307707312174410998231464443274641956190708049556041325830536200126351393496741939108894571567859099812559463912549010281901739006556658292603998957206682216339577950159097250634235059130965858361553095097657246159259015920648409009626430938952838259372495304940823864892193808289071738747579725084436262912617699963674843861810646144265818244696916188900085098940561286559799257954315075648152236896705634200059654419603220145922390612227251667189943115690481226071792711541938242700364738756220488783023942226117731253689799433649643262208489002039638964931117657528124885420383107234064873104080478396852191392503699888167127586782298159417265261502178944973249150739284135611202937938039872087415492692064822131827281769196319677953703284699749379383733763868655767061768421225743392984950556527162752590885600812858828305563614200868942265498846330226480579432548452588930652812351860951305675643724860554612133880710040280297129140008535118936331769919955622522880853780400002376215928862140455498613993523268942523287480828331993437744485545793461055610931666247975953718575848113335121185989992620969762593324401460042633000613253455721405682924650937743262302948846992320362133848758701918459940146592434851669538932436804865266248594185378517139353976420754131263609949285352202611846330256694669719387315709264149528677086933219731441682266277854167233301060615888684529681597573273549379900801860441705664037489173514228892719133311098730202389435557314344571998583105811471006540708304694569102789539903891574811712119516689845657728573948860921947800895449957665155051459551236226726980017992758072470238622475123857314405264817573583763663439731229212335511570302440726863540640789515589715805931370527932052886198730791053244156564778321342368618591272514864187340120174111056902015700029915621850281372983941052867403435819240286737746254694888230798975992102630804815221264926123965576515518876578500852441723211413335702632495485538292874577700352417888041695006520173628680901867743795189556363215671280705396643420845228975337217650381357361731443615429611505547395288886421105855063537091092371088664443502180025965155787979702229361186856450421742412078823441422546096092013429492276860019851727729319610138151598206768189643481514173693572360392123641606839999901010327164079427367000575747445174978158156554592589524967565185108683513817328322485385107227262817322617216295388393790438907362385681580311096943625057039807597737477335350682368853969363963008518907947390251356965395844864832053429872852940230864154082641813847722901040281445020466399515760083994734580411035028136441359638802956586126880922870341946851554478262166665216091366604521243958110027731520792925268260622563815711013318495607911885503924456760247537128633368761879638297470469374075650874913447024476036583210429378968257991766206923197071933967217154779749176583608529090956185060686765177317859990316047953812773673731603075213302703799722202141314665376141662639068403310054199437226217606663716808195760574676159721083997127118941860859751582675868068720509845255421323532100973518065052658870985228671880153322456956950492604403169398826531753040851865471455786418898580492445565759062190765072867650277186880546833072211656102464829099272165143112137614016907068876942183001500524549191562019645611783208713756787924249229777292327521344979200195478697857202211067920336787160323934864860959185488557290659326189365021561309742666000757589482966586252714237535528539383563871284881450851927332471566441499117221571674307030764335183131077370817818465196827521154779317773210602055929949251766367767485955440806497058089705207042926935737898196643228929681586765507963660282028334589060211421632436602144879847653707334828915776342753623342962754820761987209982766670030695454083738818765724469231601186167310258679298396286282772043202611328235928024794665249179805051023644132097222996103938246571008566586093007836751733027217861009039882768183909178347657095886908165547673876311120291059064531105124447256833873001965304076474764148763478880550223521402985782142795389449305415060848988800878441496595179908566096789317148333890458615006170144147691322259683827364092298670205366777551381916298228251902852500244057719830133348495483103016992691374500933121821944664397098756269003735794066920146677792773511203145903393033315465559544126874860453791606197208128109584196165297418212671208032950653450437469105113065913685832339630841028905639881066527448317081147063228176770742856173844258927841872194399354891318645423749485929788748712405483129829926383100224132704505134044388094693376609876086646387014482763490448055253164111324074416801865809487156953497619816398730297230004995397102159547826999101146865785727269590134087555685787397052197636630177652656343425548240728881501463578126566978681332275064949962542906172254921525171414937932222575092913357903990539409298858029156419477946325053121098472891307525985361328825783540015694673319673348266625098367912247213237009173417511622710792289382876997579351368017758558920710052075572788981603790130357053380223941464951680125522001661334194800470237912202631074508182188398814719829864307993731323786391753662007596331881442702958569682292747151666183037087144189370241110124621984885135915974011574448420595084589437393527116232567780759088892784806593384317286988322092668791714597353049260873000275298618273203385733833954488294559624796806941185935880014953275730321247898346085804001840607428235344486903195896277581663972542515309769560596661508162057443680230173758528107065752294803974171602404137407671055081362663238171503350918751629531120960520763679925836208552819743735063193163502643953665329683061086812988362736093621797350142208027396727412868723790397372868144205086951422434060440386466819058083519173855049544170467383639320934121840931572450613583434769947401008916962215403435412491807598840204086350570173672399451336240077694068071086454527951676622969150193778380404642556333773329882497728686807663361134754676393656785639364034063160423928845542897544473329614937871403802544419244270077724756551710968050972316436085209935622526349361658184713269686433157227834026043672358807290979408845830986838294578406488438446018058491285671365316180747617136528261254112610077603688982574144928589879604947971556374381533221966236840429951341377307431853214949027759100903601009736894965384620552126258279572278003791467936518865464098038780320660863429225426978155564688341765586703107715092037429919285614843986628811507232233027176772281980245939356870805188777639101740628705151746966852140528927826089762804377452098497628491280009866444249024542091237204492528589288318114160375852746192616291024543003206985670368826143589422210797169535151766786476506223034563108406766685600516069374145106511118837943012501877734912505639458332224250912990435071171256284324386675573980845008613632753214695008757495478369487158660612686946538319052679440683548374341256721577016395869341286935439111581649600801736274202322549009141174556340938475795615256336468592633904953603660452558362049039779914048748991687635359723546910955823386985476076420567220241167152003523026478093876113113816285370085760866977574390681480947273641710061683724140475239608907352502371927393297722753960142857717347931369054113568972895564199080384699281037532547961168490675289078657870326912460743645179706222327953392601984402027442365731287182281480705060522566384803234424384089300556482097100250219540580109747291498691126786158994923368041903141628238796996070925795255789572458068839989495234631744483610141181405888246101800097219559835072034979705888742574079036089538618375569613894737307796275562251374524575017347066948257432895393046421680957285056494862827698635806955855214332090302166097304526556223236936879113026946928740617083566127506749905814416311557347446391904698042037895700109910834986220951079177437059299211001404736234561483730573097047837414513499231620314942665128018177234960950488836075503586862535810955692015681225376500987808834592775644914738445629881846118317705035036939499245874144017387384614566291009288823931352986260482530946102549837386173344992109945298317322520158163345119265835226481655647895665010881374483032397087846362032138986229072867777318849281533281638472839094914718555414062946930130299821940559763888935358300645868474594452110377218189224599503203793176348731416424715697722051956536996659033506018559074476843159365416145025725889212769231160010053539938538032046995504018314954306447013268643869692481430586507842387335290026939043406997378239614866885593096725101858823920636679655653698423933901218981509573489634338108845759309668875889415532843161207280149404103556642059259664437042694704652519307419166515275327542066830936336913256380721382013647029281649982894440740685987477770840741727888388322637711386833489618704703246456360967785095650593035153343798250170687218036798975766359589884956293885852558772887468631109938216499294861025116671309513395423178873146548968246920771485474577728734090814892439587068697779157785998083110153078631173688723090979814050101942747701617370812382156982086630507465029873898057404151416128409342595059417626791187806492325526218092690045929942384817717164586701825266160496151121636173231190634054586407948808509696460105725810364179923748436650436896895011677879558757686212983961201948651690896757532555295167146919783576580415052385809601826263508673839933723450969723890764422503679341782204488364955613417100449463153296044226148378251923628805940341254362904398604849193582775163247408540811052216731899788564427899034718637662239458039581316218009196754183125924525873173326875769517726641894489884786209537254682193485128553260903225192113122181811588976850469118014683510848649910142315508984629167434972739650280104735082560286571275357456498214990721081734845230836343240385606916567255900437350575883258824275822506399288772149903619630937060013079151218921069633566932849951864615523372183112530398052076826399536233391309078433215716179714164293826321313955829295547896861136304329306074158866185936054388596795084113992258726507599661357621153496118988647711211549651769860771103868647738876780367689025099503619125355758198498150686276340624922623695525258322082576782864220944802577416621965535484076113605641856695205221607244809464405441847460283528317993221752661689945521472877127221042559623302036227954372141433575994953657929615960962885557692845768326298327100477740337786395043230676252475268902229709130201445645881602294985740122943949904814169524699798810745165065890630040772917633852129253127467282982117419257593861008654507985774245004710883895819422618681516910801310361226084094411632008492610858846211124283018561790741581290675214512555633938522171993801769598720514645486159527984043573744841573342352514084661772024161707767591365306952627972561645117649957044073349586101741020614389458487857152289364921711542866460543147472471957100009109365965381551360956537481458815875748649109896830726203700761906057385229941502878547281730551441023749477193469479550508471769048552301019008749386171494808254368467184984082866108411074627905333678550934265799049784924991119283791073674072432444348413754930007631805170978390504949994924288845747663565785166870613652639201919899233280941653170067153362889886005827814898570106771668185604093703860344426601789076068568450721851807268129068596017460321460267269910774984043018652664548534302320967796666431394154911601503098723753291346023628034710398493180270630365420084887304932291873400449881926986139841148317989077785432610334657089351356517002892949675662423824301030159457197619516519485087884345443217103108020037591456160763976998026992379654786345615385483912694522352334824095038005704424191977179599470988188412173994063291703006694871012537278115590640760109113724179145232398670151261865924159820607584804108633060883729779677659111002007507073578157492950459764619388929167856172466863216222275823328092298282939187272143332836656403637527734099042062282630437167286087366041742782050530006900447202480477218702376110182060606293363797409224008485222407289045487372779479995701688225543274661310038841400912545188454437322058362514616187030220033520394068568484457674519793978971511104466421430556075015877526161824297360782651012018596907414669836856169800150493736596529977930602922528300756878256717108047618962352779675135155203067978557347579145473632832760440074374121994164958308696502929004508722202810313582167853767620195832651155538236965241458969404552659418729258793439826854416177557810279440452014364525145184268137835934114418792981924347259292368419617915743954373240189751856393010027262138318750508365242988675504352260725835830903148252366566365559492318253734513677508632247443027441132805802714171397745217292717380363781912095965178977028252294449008333102835012765481796367323176428029620263468556574083324744444910406814253935485801785332877395649843643408359415204933057324818121298777378812198531840340687054094395450043735556792165176785419064199841749641545116732896459538426092643624122532170873860747533556732355516229771019014950409319848822741249438070725678737868325387296195082671273395632760265695030444244472189441871400817658539740216504820031556523696037934416178088883865754853586200931247310037238888267246072968223594794396031410673055426340722477316146585256863855016574585982505116009321092126659657303944630508006850850739451712757366365630839271987866013419602095930535669571357698069241457770934594292097283105132923799762328859745136725260416115858490217567242635920318026595605121194284977675650235309911930255774864999253161799659601224841495241219747549920269380637514689580467005863525657892974668867367361092834324122446146040659141739003805012364419506878228629408698810828283733255384277787908273678168036035363045169218355808861154282264492910711082702702853652648479593999197236214629936030799092788392676909456421231723549834420896506698381789934927338996090868428225245212814114156812137182089089747574855854969131481855100720247083791039542073070774227151760284107787077906171018669101601180780865092102147688186280554455614947710769856379840034767302905597663497908407337515131088586562279101213204667709577384745374218588282891692267756854087902259500922514457816246629644107324928366689952561866970192481660836625867161892001434526670145811072239936785816685299100482872401317814277430469613189322992321426927400885605495765355893317391886718474621242984471187103126290787178421312868995322857445517132247156082587102071357699942396680115060332367162449295585251605511845593388735502217357364172122021291161133784114943918914480824208278384358354480064407409406029274736411484859796785160176220048159281516030371511778337280746997783193852201137607274666033261827919580966016086617210412341163756160196577712085981505709873180715580694392846248173616743204649295378619679286685520054371994702088324458483020610293238582929174040486325576502276509353344585722233470286595215218610764251601011723314562541013582405700937919195905948290083763529631391486774724604255412752597882551917793809250176838630980308641958537649151360706321381819232745099796370098628716307004303856225348967268497620517797717237575704192549409587501024252367531169798058086873268363457761659532638863396935372937411187046970037886607348925645083431986811637483115682125716490713763840306664602015906218779871155446949479893623738364413384025842563001998019316938208516224695547399791422408835141923614981934168109551941370498229148589448373292743457929560774063159325334562049499906856737489292017916374545885753639062928163379262831270872491093294866349504465913502248493429677726645339101166948865946626979261330460830330022456133810097201660380297723397226144722633180527636755193292635254861768384264433629976293139302571417843784760387201273818102525108016377397314023065247543299024374248616724931540785595662657496199852065839320142876908701657329173935877969074343773179130541266807569232001318357581136865999806923084744072496056868775369567111293331509618088616619592869386155773819637382497381599628479929252199398944541125521943461717026716147511937932550681176884142883088569688214773755151541363716811982079354483998995606645600428543868091096165270141889815724790558348054218309538582257058223242252203744091516381284571372494096629790601199895674398779283873080043317353991054851782344372560513234187724409173427871987786783024100791324096014398751711335823637562222679297846206300297910847837370984970270074846070741906182062477361139483002073681213885580563810263274900259757653703658517725028282856098283747556924183021502377458382090089241855399610536632083559145252729374816503578501864160362831394178299939370295230944697246484466139052254452223136715252423758241444541001535111781137619628369977624899355568920624298873044701772662434008335616101184829782152645048933948048517513098732392769179169344763737309914942138905476565687772070454614161491759328584560022511363018294286722591395361599795783418876459990559519245644027840807523052149312343801161585283071707736974450097768132241074034551915072545148947677715825605166886130359399966942598809931238021215213491936126472158079266000658512868356964651212000431775915711158870754814450421656638405393547868798551436255262699417665518004068110005312400981506385905146537521953415369229124331705014976086989398783460256067352482213311710210683882913988865577970029195843905543743391748606599827006424834460058021441869958218442792041004366888671361394786518162128896636402194486949144031667880796211912403641670050301288643195326922785911133178644100885976797064234130427759422044584559129090267174166737395800635720790158241446898841648671931480159611801559290049647188977052635002194209198407455982594450185652270510911213655457180246706215388562224115684555535577966189642858655831853172401993547005571312691385505890022564372225814719644927722251187420908576832825108253742324645158123621284177027818737239512091813628839333074713777516951358071090381483537128733025305951204230345241341327912392492385603566496524869505382442124559405498558581000242905625600971498992260116407184631688975466285223923518589583925982096089410474694064391695889489322476324399228734923297594524068185415593341960784990133129315492150076185640673844195119306076135338680147087365931903013979047377492061830501247080337561137568788506343661021596181453695525007140926611095788512926048022538498403252185127388634076713327511773371371895939191914250865495469809823542241236196023835736832778488631557098947448658887731621408379366210909143595270041961148856955742877311071779828564855367306533263521576970769349503009543344924704436199713183452039416616147605508867842774118564286662240133409641250961207440472517700233594130572819107519684431245497511147211758768879181518432337141796623491372687961755120001989677121651022909989667115750333556462378071467862141045937886550431925160922924443232133914648059344736101994674664775001933698993714694496621641268683994017405348245286058313419182907751312517753985127520674987436886474384536044480810898584626648153335441021598758242030390301425013506454548702576916092091500852715494564883210086815972384238073931277284956425064997227924514070831076757534914356096305105505306311815635704191243672978620025376857745619980248321310220215155001191141481057075478300145611791070450166947680638104217581134792040279279225552347109453142969497002016951235430307668690264707160343462783449659693080503531586049044912572202572888635977533431741182008979293870898171261342616947804113648295689246704600302820789579936939944391710651620288736246747103701938584635728423861974048046587547670448021598314984092603410206092801225721161731632859599238364964355062435842001771636357346237573172946067277947305761151780081828199369364424057321012536858367896978580971524705977967819323131497098205575901171535697840289632696307296552291453542199923830646076297353136280814631990256084971441356546122971798921979975186421446746816598847446221537452953194141644848302660787558291122983038588260551798974294590080229726794338833360937053993110979057944196204637107090467894066426466609571702631869416150109119647863692965378522686206652094215058800579755650725558924305457105705667649999077697967110775963881343698977879558927497424676680303480799011859672162246514698488773976474149048364097410369546066337133554957775034128432274161104615081823442013365614428575215450116086551602817158205556232520023626990610845949384015178007080566619668786267120812831515963132221966922673333100953949670537475351759701023891201812628779427972805857892166910652913789958347540055828450766942913746255724347276800527936084374739011536758788979066426944098335375234744852320392374984582165577651138202927861946609979668799879841065001747153045982332775790524322158487007475087267572066369749572135559120706070897116052934417672835608934956726430723222435613745595854501721814939901129106319260513756640930599286733009633250842781081496285584043599622758032972881625222464028746417299064763868557190328132113111824571644830782539480200444268485581048418791254461644423668755599976660404955447528825520647816602684803614853666249949188638455165393328031425779763333429407728644235955308019298342071058688897506785208589891307841929736231829847780301791342949912432023379372112689573976425401761757047251377959831626855808743951393723776075275857096824718274671101370070147877930677496215106726705783053406023338606998370993682529866946627976322400338979364104386646394234652413989265899493522722842237167411657483686652083376514775841201002282913402867485142528057573823445286615947545673204795112500820991619643744925187737261231752279915221848512339701327625792450525443351031410568707814489336626826128359716756815811143593246832818020860200543708203232213648980715168286175065849948863798538461154737091292084490776653835614870716435848013812178314727592903338360167175130167654883348857492774252392909799279026394877777170998637365640930833875312751620762136332879499533295390786000786129386883677765073064157332772993845488496344968520301038050840135613488675497213838403428910447394300844188206322597390632404688173532968960167569816270176391186773438019683513002801016552505242082790227872996206892922722967569460261255793465596048905808014423821820924443118062949055844036529651342870342409064527689943156268122044534814761741187639791466839487508663649924643406492693454766154365989101385137656019784623092822683418432036836303289203573392323038695768676918403735384564382537366760363635120831729697007995786953125283047507055650667753417663311931273831556005823301216709214559727960436907693637866096288211767893604102004867598639768068308171736315241015943866142986397377523104788081861746184049163902204972951257035158911024444523801543574682516022284228954691479807664455559689839047230023800872492056854167496035644920393871936470438489339958608239570447493588415103799576747448099075476208415075188643410120291809621352933725064067614175136444623891283245239441347619789722324425499180673694178145657801759190934283841065243304207197077510307117192439847063039839458952404923236174268090862995949793752183537553378028228605302595776589563923722319453161998973113673419270822931386176652581357155158148758865688745583575941691512928052308105971190999410963327061381161117864458706139613799155239020256757626389654693900735144382806740875320575630358930668186530608432944236163123681067217878042194460960247540770981513794584615143623445213135351624421256046381386819998118464181617257456563225339113661028387656151551768161464012122433567236769983940013082599873333544877994155110433934039310101045593041411885974311847056582312574014706217252455989139849114473674575571861555248336193224960426547253111493087718525997462035086941175667853429676472878778302540890640810448377438798820862029643080909155005145356499964041650278422948702276326691132860459188759563395061282074855290310323436267572897266044656284209352742573099571409175912045345024459954025619543003917840365342249143918360187840037426264709342595002770982516256364448012748773162485338770245335619767805991314855757240186613885776694346711089031783338019099968031525078686955717230682816596971362371921647546052623834123853671910013233132257729243159318077541603225429925853383711293547327231570748256579280520102702050209238543472291877950663173108660671976135435232038829731626505432604287651840617457099476460171291368982063543432981356739661125072678825053286831913414548124696356334531120249490704772730944611527439433918744125385123810506914040501769062597062859644025973867013017791115536191338866606918068741773242543054730677521740508914410778951032958733232042711295774760084805134435089775053551014803360892037028146825122700862370549204687274663299778491239984914386035448293297012947845090087710616365854965415406500135819179026392867839130394511361670421515738949830305944706077013029350132658759073895072920444601692745589825506170303777300783307160535500665352867699532899029480475462148669617390309487500828269603102228750453982494531985843891330169090560017799766853941334433240093341672584665260720498535596010472873467887036731168691747620862127308471411034096959228324146738572285237080940373048522995498606981322582195530527980228284683077837369102119699909839404024805747269249073579883101479448564299031403891447421831725674937207710459947329758510252635961750969459911307536657850227485827977278646874856808961951151954634702238582558086504848755366284486319809483182628944237013305943112424310589282298707209672587415144994332936515804438381682052953417157075905807571181436187066599922989154205958342679305176097257332265910641537934868913621912608595490597164910370201337559719895186901637422437531961260825347637524626681103582335701565901507653659089595816480089768067946956758295694533311081654312444259442997026557170755435640271413023307358049507452328870688555324878322576398012873971939838896823236647260888843540023627748209714392911021748274385491617040594954441414930159182019180694436484509575712370345265557765881994953411276404510815430432476162805469529110630702018764249044584894206529235764379163068388643934662054201070376124938365571458319727183334322443314003617362398548863608183428632112118189613371409469717582586112094065445874417051880595703333485116195393472810597427934548373219891037834135154784256247527043048955273056590814318412502747850082320067676729462048574454890744420095330428426956935902036223401786602347725717848978199498168590842811847183439540806035532499254392984714764499834946238803368049553878367010080671940502626819005184030545437404086990682324571190956800777439610577732401624503474488302954594593972344631490638448190280669288172407533642110911946912577830701635487969779608240312819854275521794239261366230239074084628617242800560025445269323519272805591110613321190750192436091573049571366254696043802789805469411604646769603919625893217230636771718338905153254156605861318125307887230433140927344195162489207063704137048760517453535992459092066803709598549397153448083708708544702713052737495776764606876715738689525815358846658390102517096249767087219401618779740792424771718432083534918683666110878398139204158782329032426964288157243505280863736515808891645015341905004588617655649695494629317196790206079436560883419680403978107496108465323123152573341655130432385235719649190245696296662560928918343844876034745536903931203319450892782966439859055448579417354529974952808169730863025725823900711976477733287206419217726124972508998109014347996265550294652250155011655898199590027078036235682239483447052510302242594614300334367374934899479261247761029817339764442175133880567963072603225839372851469219538147682691499959652448789792282594908989670848011657657889653369415987105668800536486923495166251293435525596307707005987636203130607366910701058306120696036236202555623723781252532190936384478117943425256871023487979641355498445349286076762177686769422526273842268859666707624275386742375223978808119486977982631993854668104178773867351525649503008800718408573264695734223948169433520896690854099329912804889232210167019406820370068394430569179397043568160207428316469548746323209830353561690413664917535152694718935926305370241853582227957502390849077782126864736515938024346807347653273588467182767729884730712284853721607050318751982327725676899886492651058561503826920477285485747159342140470364939828125665157629838793517866582348730143249930504813217935245473784790544986649599904642266233839535282805347311207021715408567078617152773246484672566361711601563382509724696242042413565270397011730341861117421354948473505088668077083817309242844359111008640923752269699048305212705408948437949208362832733696413066592802952691124344298896343874725941493932479707464129838895497955270805756808589877615838734469262473637338292152827623171906330442454014993549799627046490869331232601518039160639570020497395358350634003140872441529426017635511521819618609433781728926011879480915296252788558382716844561394259762763994160232970553699154206339742258286484368959771018588258281204067379982668339809412706688896834827138809988513442741530343520594124996786199297633810981518436038221701001951032516180017440914854642761939414357722651278373051954494677896016065146484600159830037959652568280441790913788019823301812665977469200521164174473744823856354155404723526329020130308578765168887756314652831156410044932505208037245633574228013152499343715947227878876077261028441896476710868655065697743458612916481686889467077559973920170656427628347534348820688797243335675481646505486244186945889353808860279126896523472525918520932325872047960494697760739354501737977854202583738340912504935140581796907676573290757881623894997443486597749677389095708199834636007362755713298108435144120811636521349711121749190948234121719575338196106189089961308263826205343451660069790790904661581832283501367927264361854117323835886388163224069193419005320526933209290416653546990273061506839584367567362596674376492428685120484093405121510781958249878267312438419119812830941141028899552074801198281752358350323666018980202074150179364622437635491545359116728573197703775314478108922115202946367845809320531705409795974298708872191553583558612092054944230734555443022262290537039170526114667081039624864087358778807618712848230397445601159677174793877046936884634837288108096697741492950358106392637775785547445192498088036143245578775175876619653405314258429889591102964888688819103261943502037115612594712473166248636132712681524540924344711625842165566748142162044875016494711477447700638170056001366840142852592488177182947195061767600922169137515964367779587237890498510947958829577855028547278509432166452109419345653465456663654899429887221362672365113692380057908287464691419766405829871130290884757102801876679775948645967687678079621164424654007730405486662402202473235784802756075707820727188651127243050114422377532583015103337276478623366890011063612924346663933705194428884692943893627017199926553252605061359154513709617071415702992036860473972274756353348842936921278867115729587394157158896163913199756646003012254697256834778415714612741922243131083110789949598398333165402202920962595170072752811598684487461519273373989353466388874958619643284287915821253980143597636407258557845527593190586802809148088419839310927757542617901262847289644361499316048243081012266687847576356355632390243250825607884327235753581329516389736049782934743714169688295160691560086722613563228023198519981974387894937932772334318722639397943195025341371495951010750905470013777552503495646309480839154681897542752276562765024730503275961515093880886326169661453197908097682024546326840369958856801715547858890009514220989065838104503773090430400949889395662701504004783332363237131983309376448066253239300351889246565759087696733458551911412923284206849807256446817130456154716270464515996023780014039782265519258928927195214836829701569221358887420081916056637005081971788970954607456513276946412236914772866286896239203140699653350727761777999569888857860850585337076044011118887803519573448141753927965627623651141818057570343289871493475464796515576651356480843770160608471793465765880327175739374324470687664356024706864699415761052078312720907023016013184974421865046954075230242835641992350267689708323918920104503355621759902441183733484307861253541177547163616441552488010892578018932320380978380051234863470947575456969935387061379855652655552826425555723081637779294178932243568168006977117407564043059513857380282513722995118104878279977729610307447660498880892985318506601293539045157631723620901112375106280942354403967862749161596725172453581110002663861846114835604988955119985792272137256089484294531439380947508489917444655284638579110930976903927448352299427649733629638803811870498068075967787334892187670552842262343029226486770780092623153454852072941611658625658260218135654121722146280150633756034957847094404495979876631996714186495361860418638269023030716560554920049780864078386213823197519632154267803287418234378754293013198404087488909697667105134110470466199790553467955242205244945640402871500106438267430283972503901189826844844469458105672638206434875094134556276413440736356027783855877531274588111048751343843698886290968496051655889361778913128014583915916759840612702464265342673630887473987039472344037689403217374276918602785316894563529446413914151937936437063812037279185119410897524679730364535834039065044606401293657322396684612457725785913115151184379551073629241453231541577044001750304901345462640502726694226543517644748376333718639919001336816416109489682445019328212387916371788006683537071527727856734943365205161031283023992820007831678516134716745021340596804193521246503268263802869092595713900686207530594048610867757347435170719277599868164288607601432335597927171967212435700283814542228219418343620235783187282191879080815062821698521084608273058713320146130896532075066119118047651969233996628448559564438800549620447111858312037879172993804388528839536214649718967856474844542311281331035776797370122435709433691038752365983393448975630824502938763222275794725227248875257876501309673801858810883231254313608387125173666947471559349936260524019079159374534464595911061333480043572918331305715745271201479357030447496612387088385540086226192341655456888062333356612109834680948678373253840947850861464528854087854917999482183171635534770641887729016465708670486571882831220795933257680768444488211193110154064905077918113320563255079125391196659382137002517333105200664827538553275784480323964832702652559929206235286536808175208419529530515964180806338879750915010250395104423127134982543870311625643214032012538874504416227437848857159541946640059370543561860713368092150162951015343471693753818086311708463916810545654559183310890946697404814983732703612610454582245765313654371732505046077261931070870382362258841861138085801466289477469580823675643771525455717294544333206897563921501392624902062929325413516479463046194908748810518818945485381740031749212900465235320324191178995387847351698411940605741036194365542884873627848936857780388086090894891471492240639766548028431755323376996456686493401532348251487850553544029684387960493605315730303952927410910243567562837977616327581929884124715881016943005834706338752383966815485934078608427989800990775876467902951717446076974401928506294553384163481505069597274533279986663884293947594186318247116717437011851489871473508689771127700828662253553195177446348969266832224170159114431521106428040628060435250982726034658121841463820374356459550359477584067120389565529328993166076843454231903556392613322967063324399048010821958349773048549570732076239901308169933609116762764271776029958232817281146107048119042269407950083071195320571193612220035777613325088142926298918865989342695514523624021783248161820160881725390429870651822877749749366474852559429296139362720272777557790707094477841858758497433282996720566618730708425616103172929020706925260770194649640801982912869151742996389954086653972843833652122096927716641656817570031285256664643156390946088996659799222764915374075813338209202924476493029811040534230493573778294230915294904882580776486375799031560763485948278523484650540713233128179101243109798561963885594771399991768335356699326503076889836406961184979379267878145686636360571519713197984568364133978196388053323572113587124605262252726704385200423570082467672087407042384354903031119493025066869489723755417579505603352002381825596300237230592603575879263496480464798720045489741457489842142334473619264960066515323529250115513535028680635692023171421371017254745454630571576684291098453879050702795743910031968309253629598484302228432949909547081209694105823695424481279235570629559149514264348216751004323548133901917412570875134176450929451278180358902517740658941190260756404957281322471398050311212159369803786211264667710525297570371177464590828863211188425393268871837700237262816671917056839755222026740412530505141580853021254529781951124481372310093883342893671772622369163337834742219502235678373010939238643821783356524487397503063041564568350780688958242551438525404981416532574635815349282532519746616400754182454332349055669344760339601367980237047973775890799955116016055570154778250743593946894897149582831294557857700619234614531250673788126932577691715677007374894180625663347394377372577207951507135825055612675644882039633881514755359318827137418749180742930642289033236276795341608795778693912999399929974273750748374519181087965185038980185321154338357376022468186791468423279304506226483567239451677812072265207619207177410776011600478540969722113490324544108840350038767281830162651531903558368246009336309825194916891900776251250212701496815134587528971240232548990551637199058794157541778709374601433102311370806339863655836198318040700865413458165456191566656918218705314945681667614564702359312295831172723426370008161556515036923790501340257293070101499286506881534011616038829270310399778897762626572963479596376418915527462813947108023784414111651857775405188072864196781269561108595978642750779753255260649750030885247199368423703231662786889254056545430349335281616357735492766409332902074163511388635467325816265284903735612877536145735706001603724333747989427075311602701672579084002652668823994745905394068899680390691946906882555780062847995789791930052568884441354921532434062744592438085788755759857485850877158260698153564712285412245035858355817544486519079850571444904210550029387539522707567297139729000321246085937886153694862730838642374518395201526065456391429350719002953317838986141105932680768592729081176734584816602909263454314980406590942715460631708223130922073805531344092752758067310582762039854263004457972251454697276528538264474492255020770366638067195390054580116967246229745380776704609695535958688522421760291215020758265961859589724493215454179018333419217568247917790221402523743152177566599250796028305596088164077582510079189393758139533039504632822381029630861752885560285866880801740225211349423526940337821280102549241290236861727566578502493636014164464124305678320900123363348289553020202850569359518373057785069917460706037069783426789578718463957988604379403650893894688839319579391433579818628752614081365189959023689750906387351374786806261279820790929276267916599728612517541698575171470098397024161998939549851943271623085747757319027154396594834053220860935128236676049831564295295285621075189353436579270300348712067400574246897059162086858411816291182897109242056655210132982283491010604386676999556155029474432618824082843033087383857755130003314172755915616498976008372787107673388042069109998836265647231889021701608449937400591779746055182364119014640410646006429056036489066545228773435752090941435697106359684979838812122798541712566751768329849004801271972139390531221613998534994148211844817168027488616606206483520456102624517385055322670063884519092217680612424797002039118540096278717344702987546806849831367557971413427430756627487441162291773302353707534494423254341012228318977256189225063805754757509038488584118597457679472520320005709959485092074478544671539310645063946306747440421209262858254232130357498895362430318512022314173508157134249559445500107080547010724457118557949804479385116160138051057549585195990384405179476364772276601785095215460636022524949853407841236770562355698270708855935971698150660748780831121112328895789655892208475836329281843065514088986643190145095704193743683931748712173231204759974147558485015704743339488260732640639535569990604001267949336855649602271310080186400240160873847657495355652422983556668917001428631364389496856541071447044621365122688733645966259988800597743062038427116746822580884561724850397851623970305754210972257736919663557943535912893632102922855748672375233522077170532229791438365186454667573413467069496809161508714738875996339251692203229095887384998745864038643869266557882380046152285988943862999342854655999075622149815854509093152959133406531610533745999841364185316915115910396941715249824175013392915103147630716372967540708486019189314245626584441150908720316610958495085846361920155997666480732621084367737993580824676190688483859714611998027944371753239786215129970813317065133070449490566911075292925580590945464371108061950937397200676518032570082340936094781049345965671577170394723011404650457903038629672924233033805127729247745982082242807204854563951607877092586924934811791104757754117252942086985167449973884460043059201613974148300168248117556461904984291901384537682978524009469436531678512000931071456018985049932980952883094611033905950930944742039865116563872605246029625941878718775125173611946177558711892734212482265395460520664494278541519707210266479534687906146327985219184072319838815195127835232809673516193649421531042137236787607878260833911794556943610508370012693883950492223244608028462449662505993630643055221872050672210633886246367958405178197196519963911418167145343291208615979718413329381438212858124723266699478641774938239980877683204298681792022753714124779047032679083346950454853699728613901798408156203174657186845049193261220166486354929586836887959865353648712761924980943685991806238633874928042995693074240900237975368423736591165723285817158119648928770311472508293798575624676295701821838617398723791213073605550205185447198761138973798872197459922467339094660423187802185855988898039401464486456057342779926828853164464459545463488768716943493406471289943865254447912717355276874882746064201289820522362975093406498395136481869685382124816727892363506326631999346736698065000462956595000034143966933906092437758324418333530572448539866403708003582833544230208633661665662720355325335229493372902944607093645422291601761273986374958992945403297937046334598715320139666742373247059347229829755779325179332461533205466834969964486369692710328065099753195039935682790900808622919305862002520724269764702844608349467429603446671040905432598015541207367019430372709762757154326185643652102695356323131011665118892924291653046563480585681051878701561686428991632818457302922728287202827446465522314429262861014508892976109324573075517933450786407875882877141291716579003061242921762716888800482159667750135739953351059088980562995194217480102415463399585874612636167811203174598374197588680022206795215318744129182532736486259530976897352377354675548607450647390314889451822167885653491925721020335647015244796504509102611388085782740015167586703881340567758982890243597679981167796736967429371809328588987088366916375289929117969907573429025987290893731658884023619838468019832864336265588802789202568309623449820262774149508637000383056316872197564314485940593174045645561575082460318363366273684079356706293417074657420221866719897267316529688930500424771506289483344440929220049920379625012236085880414195352528994640046188378771061444049202526371454563837527169377656718094351605433113688123530030419892276683733236369189990849806608840083682339193973107869241675074154155727953414961120998271650516252929086050611370151316780083922399003426033813954176618477421831391334801786821967076030740628538647118375312836234686291801231411480593320505084234779527196915002596197239228907841319038043856057262674968480390407180894331008811151511690265057867829306723183600088214993679673937211840545098722205532602358242164752504336281259003458201051934965484336973019513641950417738362813075567547512620246228329177689063625040114232933833387282823465588381297619906284196777258170514615980260719349863045980282371034942159372102012114548416839806076828576987573827761222456160148289292473355977589885595163689849535486586296380640408592980237457523090087824102809838428396874896464242913108573852655679409086776481100680309988770773433731114774775594982417625091815119696278304310522242027894918760512920978842585954451984533133623927387634427622685219772060994609866073967332645444398150278202494811772942678354761075417975164211463853372165023408850163056443228979313020436917566649495890534200591931747705880480799667902072554037601758332280812742953288328617291294080330439280187553145449348488774588544585797120414240941784952917298571632311416306908376858845974991183955363680729977570077746743733052782969885437466122104113944531312491906971458538983696862876693573688726567890663164112662378981126222505680618864637132069569400190003075961204025279252967886394985427113909250540637265904968440688965905110974229219360283585878410919824012621764781751163633417100190597943303641175213163696655680883224033539652113126758245073099313605671049011215494621336036161976861241100520179297646563299696771618801218747083036593575013870835562915293101316237991764742328579405923148010193298619113778668561137624155931286081984737456948608463020120760435533200454707007201246662928307027403177210219527626572968205427152916496333303432052892257664200518744549501189359552103582701186446366889823374949798722280137900339177759195188505124666842867742057811989696620479217981340597252479628493473010634178469620932414308438600387428004251881386605339341812459404893307849460747217564793393383379839023159547645178141170305546179501260848302969925919731438506678016482706135660653428674898268166483627253801984674180979210553394567805607946297682828914999106134897997690060844865826214613922647405601926481695932361636887882369177062310010818609556722089730436298722327087009538650688628030343180321356089039600621502385845516278062511255059063855859841056118435601402553025965781386743862061169887975270871031304232876450391068812981068680894581031964509364824499630230690432030072154454017676529936184699321342169087797155086419735460746234653464094251859806936972117620201200337152599985161366706401473349855232205888819296765414988324689401401456350289061083159429654571280021470166665781628262612579491540840986757842954795144392322463164626204057346131755709397317575651783344342287291749413645281276244186361887288800508098918067467886184768730783606277770773151388494588874565897654645283315478908195065565766014833880827919927904398711927100956225020611344250729840214063862242210865602887192166048690760097482663400550105284989565064260572800662608573102895188949156545738393456395717272326157874186406507546790530330824020227586608433459154656328658106257902492995635814288334248232908365092489416535542882994764682827615761587004045424982076589713855052878251434432756630882009869677463664799841625325202617670943583336004601153763832233711432457400973854527311267422346943047507720784368371974274288719661848226384552172088745039527688497060664102012104618581075122476067337671116570031639372679912764938795614877281637269398271591442476603676791818616639949426519633762057449247305340600391461123551847191562295355793514115909431011741331476415931174672977242024263889719156006549888493829627958169713338665974483887035906903009026026074135542946325497887894128175110904907142621700654664365914249727292123336397887804628299027658344957215269071221237545461428379133731950759742037899778994367021488665905839610643679866338581562461271826752346036958656618902257982667266800581627637326827977267004467403910576284616273003229945930006104777305504556183503980587238240868264751433667996578107806264025232548818033521226658726456421262176718072217777338858897195979674796151459707904219912413699799894112478750070532047531677869520700596938063279494523461818685976406898134677430813602406232778295121908281122233026504784358577757055551599119169360168503317833584062746718522701823755812639058778256600134671108620548624556389331293758822115700542397238211216353120289958746901171314869533160106430727689003153940712201791384009137323813659947797906650615641463808784329795259371150079110896352357313838799224135573657394700629786783864720352034111971682726687286313931329943072597194074996085560655273794724120457314816464039024435726100896396479435547218199006260040313828407760624866292661619781764147410418339104299116012835959016306672592793486924117927737196766132750710829169240053438656238584735914190116283498111138965590056040358076517516658127576753124286407663222010915828785066676872993915178597514202010039318289259225893722726361527200961662860099711271875106486747031083321633017469923500969023765708568543509453583425492888841977336380722200769745784613707818608991580290022014193484093662654982088010331623782092132647269374884777876396922673291728447630200915981001044322370894146408890107508048508786520647389845594693119178445834557112905616370583907038218180741662383304131924195497477971373532587931808462365732635054902054394421084900369133597802103153089626707899597396997220879674069904728121939141977004462948352559601426137700650511708937539831088330505366692534824253168358361811001060762905790238517086091627251968032158461914898150366802541321003970075389870549962908813426041202878211595518774140435598390694308635068747537845701061750970856608033485474430021648949839273115891046765823644441407579487080176875128950018588543126220891856580128098235322595975535603037642303674999607462540496779093918755255782209431519941802530304751363557922683115589621163923158069450785030251965160002795557719500162536394544447805496248523345439994598166997099621953899164581359290426718232313925229630147956668013591688374364495961298267979160484809385096324232310804941227860275090756779374741979526966102740702104330449949253886049709454415121229986361220560066000727636457233968192047799936036392270269596074744842004676566484782753303960265218989280291308607828243762843536544651907326493536079954962719570329940985778682506855986425936463988470877504803910036242642651121219972277703017331640671526449020408651766539483410656290170674569590227347828829781068775442867637943667425335300105686882900484574652687288439051747294216846231652290281559073665796091305863794222663123657389478596318301399039680702782079378175449154835215293044740149569136391505802961852223173683203196594280137201161518913100991962763671462963705901248123619095654860209498375186874200249222388989420959861362671441798159069551438785307376657683530261150904074353634120522669056655320059482420421663987438740424833997727488545993964607373814884809973854204576550541309367045760002637081262759044876508905979890742796377527087900103284285139035471772806901592123532953715670199828544547536484501185519209144459406192294475598868153361973438147356761639393719228163233255546758225051919871048247786923109477979849521067938064872098148273017968932620423662083522867424869435071183601745181909424752783507254667310271057068065908296416768577458187194491939437160149661217547179546750432266401123466392363066795219344240950223852070987726492017685936862900365545745944680966787725802060078329094547873578773854297049587858404813566988977461178001960158853050258097924369652441919474681144841645292704606263323453074783793663168183227979491148523308688791438160291410844895865238985396535145986853113013882415756011353225887827631740069472520909304016086896685909938097605152912582308094747464020323580818033604108367049742516765500942102058043463997863550918980056030229880557910660725696795128595956393177446224850928217969344317655066307196432016730566056156620172758223409702180156646272766531959202450526684291144114964185408332497402139696008181048637157552015476852720412401203250332554967823055429637844150723080804409138339673401685053664205287769746812234073378438905746007205966418931341417944146032823590571452524271540704391324296960787651387802159358089989555593003152100012600298632747182992460660643829315015681319482352351915284888603178769311007545797344862360786545532918622397589203630344091076109837438020293908935781726783613480105245688580315685659561593765652277640031218193253092634672413872289110466677950824786684048575203757178724377992687407516475389966143209344318947932686989588446908912932107395746435639240361095482990863809706691902145644802691415309689883613448246393438310200500967410034980476677125195497306120283476503796547868219546371113127908683239448040832619039371044873735830920863186921634109587964171719831268385599492776605317245996739616695387200895265812005476109048471881237971410480225269599147180074623760328865271475257716708589301587435120733020865506738652123719553042916534036887789436011189150744648371213023796179110342666587784919785051272515581031974135700675250590331611133535204238375843893121465573451337322840447219551711916042022688118901504950104345305858868412400392747687187015571878471163587858370645954723015124262591992013164178510151541187650529116265918986320080737670319228796717759363942613266265125375335075152017580999622271797309982842828893324874369857416508146699501967000587156623644820468683690558904959948890047287923604896496670622216706809303501700702661638946620527626514307920867929395116130480970023467693596356625240449391181248165015373452306525416368816518459000226429882983569238456431675654208807810002024222641762633380020405725028340628501794988654436187093377334015853306180762909948376460911623981714673004993311387013175685605687036751678014671493573256648038844625324166915934987988498988241870372871064973426759498397354917409947808550428486109417893840499774154130013663892867998566648901809711363427659498560070534702857056817944763574815345684329016465825539265504783062142754614714524654172163320619751717280135695694517949572402703796044548711645343597083417122515039375883337993233387895179065241039818900846928182476783954544848980350158194785881622949101303632753773681311934465311245662978205241610178062631833336981116047456988936189798892918154106403254876789297249001826406831581561235470043630182429408705788622553884311176319050015095515168501980023018857848561741274140910160965167153315659934461350859219185222889546432109550452813707446921328258224362266244772736040778770906506565397242217673249927670578769760510856815254003820136223879547861324199087467330756721502045344272822115786986199762939477063667244932213244271807176801140798903295609080655930732881389258045896982098071021446371026794532624050001552124287434160715125658451682604475872607156855535533602616804170472177709154024281020425169165881535197360311471307242553950555621319351972617244963018556772403030624957313664916170682213480052389161125048515551375100918351029964626672238308657912488457108246685274706162169912552881248482153514045020405021256451950637251966573296028904806979662345740700955185446302353461791080548540189077215657716052101075288450814157483786406946998504027930106673679578311823819597932705605695205780320609187484900519590813237930096218262922074827633742158912813898484192401658553057127976656285962317789153641403667405320628662592167683268974144208805500415671777411418805758276117935433864846431172394984333945026348416958222707373910304960033565657086756362187232033527463758261539696119254094251611022897645415152434099088199419722659263291871017325082013079443611680306647832618196859922060368578372913620233093236946825922617419790751992436719645559779666966808023355169860782598248796781842509663809751888936136158041585312936943703873440043037361226900484504852306776165737207051946753948239849849374238735249841310199291889373010299220686951665006666876336671198350641828899582629195732502378717837600100423615564774398096823655567762133105972747080919536080128352769271520626504851646811176884360467983189886767067689609796670653895072201567775367440890606599535363397480607843399524439069068450390360250645785368412726875805503708930075007415714775477560251672601951024635085895485599021433493410953440236561965424467318581987517578613447957531302657858973881701317220891607981714710846512678642001030626994549822241156130402747303957987591427079252550062523903075624531251039625878602111450090528738629779475692849412548181748603236208548601370985257626031740373245197932194861849494674646140670970549100596313081669551007118292155507225350489153568824014261515141186642678038314676108902324720749412808497537933948005034186167390543703115289982554826096997253173922903688805330848853541174829851349868645857164996027670197014388390362042054736061781922146665438248823577601056290430418208625677037227065796193971193423101273580145671551565248805040525993268374424952342759028535459091583475787223748738089327293086218755168190878803794331971007892177497310724168975663767687640446114540422761999708381671935067821444305169451030103697941745856275965386598854173560423664995272149221885366418280440646825086948727081083247815615360054663787700223210551542479249295707642071476143350063096979842167843679903464310729671857109429521920906071047941118986768730943436451078842395765658760161642028541743397249627799246303010296776079966147572061574826908029955149891828034931927200025651684630040856454606216376390462223741225798120694234048013912698744809651496918401806678658763445427899136133229431046836043855186062258819347640482405114631226909904686589874504502321425741885780310449217630114200771270537617222177527308044232039788087637734789848058546122646007696199776621717811293379361259889202982339514274572456645994535249498280524424261407368071735399802808559076768442532249714315118296495267398496914603797086930717818616351454231546110063324155035192752518277426873842128840438292970394372327083000731795408856411298117678641307332865781033126373018962323015382229684730989091553546104677542409243116336451948469549829983448825248552183579156536399889813027123923439459126389400472009785684631968664726792180382678499409105671923860709002192992662310647793646690409856336805430982186128010352166859590587183775631316427456187187490091863255660174539011662260805822730888659743796687488478542687659573494123240625942370745206348691483140232021547196040006310958318060906236196006113460648058595364033375970783333959299115680581862925619692582525712631340731486608930729501905862696555446135523615581820034259894147268115350246321016370643219345844283868896580634211663631690875995999004818726944598627344836490953733382074101155925464957035360245878541947372804763701919541444618307297568713193817070261298383851108336137447904665718592017535966162671563306253592558652036524258933400951103081414195842728032455542131214427549125528405033882913785152826092324374085589349536876538511272741806511837909208145317555530818612915979394928778001602539779888161718228090434686889162381636882266104144546286479632789662617992820952114376792005901209366215908773570371559715890079801412240051219116386365637062452799986484898941752557746574884840593248218006785818996161571771552775552804975151706514751610765391108682472345246495176817741650418515072260359678235789419392595437447561548057917531389541229061651463431271799019667392541281212812768308009472990580300141843298892800407085601901079998644770673512750345405740457042744338869562483230673952175003580791197830245718963368771956767689388796211910953723251444740113821087630348436586030299929740935568692837426071836711112033854488962511017217074164158410273226359730023870358271377053957839249356930028168334569915849748718559238769516262507558263557600205028292032300159806361623952474333396330268823580627083624814353167355671314903660321426157495920272897189956245501831163109170664757221142608781270276327101056407986940323024773036144021114410919247574184391305472400498724402314022380149534092113413672860813617656654008459469776515346217280496780647465674080285047933853040128136983105850641283119845666758597066477335874103337845155599034759576268993953711617522115754758739764616197403055018282851071384754631651808795566487300386816826507209674699293522956720681521520568341643709199623587069984694056593488513941271547472537869454745667091323044295653104228630902977364280597295932814919413557901535058882718175711988831669847404328868067101911332480138239239811711929677426284016589507365029558164430345338688688409174661560519774401410731083338475875846803497202552654581638707733743122763062901332776789782781254372623027106053489684071371039924096842376239755284335122849949282776328885828738283989271857159347534168917395103405790015264729033209992775150121680782772823547912596770275952920695728387678840196870545197325637730843192348236917963461383052659987476035391698288248086036111543653158230855330196144379392370961202989134654370805931878900591014852429772989267637710264682894016541505530923883405335667403152158246439215813042571651553380335106263499758603285147999066610007721096634444551764131563933951751319780764678332434761908345861591255416753144202287855488368652440423762128291417032136271453447456122848201484481763772343836599659710794982879414556304415696045805614371758145458865940003291656981037640886538127478932591526995746828562917473832186242831138726918348218002553270045588890938886192985431091865275955930622805636506959320505251949589793264903311571458757704261648298705930252880613229585520217451386748747156976143444636212584178618863916497653684307160976053913419394786693229771668680383534773145297168535982205749295375490082013955841344848135887036931714268647506352508709864362229332633988165791709247918855573898085674681033315248756519762820928065156106142089585266898290659675196444432589229792130914565278616888616432758990809273857951042963236184942125482752314259219831390424040024186323427958702027724504778936342248614862521673756560221965762121342700082186912945108534136901807401847705713882698493027703172374137574860710939268011608454071986969863810462952311111018393339343892905969498903006001265587209004519752446714172940187625100385598218637805670470155456225272164954027212260070080661424261843996399339917247447625494195396102040676986838795745673747861784022728093463785035855071059377881678104427521709029311072249041142797960749524635582074989763253761787698296546683758516606008068255378056609433824126272447708986599834092336822670111929396081994778005992296887622516481779387629639063145620253230397299126285552377987734940802049826246255403497666694494196180100586725521782860535101900117354044024524174875518159570636210713238017770515476746678083308511216282568697012630036528205585534415520192160119204549569152972185570657237021216768172650684126981290306801663427681315957262729246498087979140314563759794843303022966435103213263926925018979738839161262932186657935258346670035781412796292509209670240784391481272520874327367489329532704220759647018631543604774712657296947141363157672211569341975646293758922447240915395904842066305161384129971251363474930561296934817087633093503656277795073394035406728866434875770811768559820303196571574428612916160448595630912718975054855680282718344696191221655626655788520737416519055923193780398013841549685533324658632672513893425674866657296051313813085133731042236209780733655785774134446384940696032096305221700911969413799511231746419124700874092692852384785624649087468469078752404191578621650324913838503459565128408275043398144988563739696161787774809461241187595716609202000769357690030192044528268148426986846731336765712114197628216751966370238107897933151965416642102122495412793886363035894718715610331430916255992320007107699575155311294686664421038787659937566358403127480634654175974289924975263762642123498638195535448048971786523570751026477321069416957864995715161183109452384608456375285395774965235081210006679677739190087534155933835079365588255022619444202383607968694083692288567289355528673592254740944295949510270772380619304684458149639422712871997440899073538538856204546083710164336970765595622192866679402987732253039332764650009380085053765471458586348412631338376943637402795837519858642128588584011394041382252875763733256409966562754017898969634503491995059218944774529453551163115842452145563458244643139449030248773734190889139965753217107430607670198894430015838387392709692839467385390683482419733737495489658424348231500898970320667081351946424651388063256479152941028407090563127819922983390832029334536046490102136361753188889492998026884574999407040258922730594892144540193222526622875332973817887393500411575414035515114776425053351524024528140778036624663801417891242483836608637351803505485261415240602007312530503792685174919215852884445523725700752942633544653953725189940188304202999779870805481434966290280488382787381991271410873364463312263000240049344442284055513339227962059504867768453492698325963969337641435044280377275731837018554528860434359931242867484550007252539159878565571569211174654311966661205957283009930780756428985557548647765280877363685325832739345117571071805250945750978690315917474749568382793999314883965049065285489174067835526703291642866238955098582097416955599540323979491323638196218125044868948906135705186546998556443059784712622957122952736248473426824615450657447006478805357800974223412690192597790770890000863810113373345814972510036887644223788550118125527907691087371410854244260675794956250849303830128464922650302292087604021862227125750558836639333007009049598206137731553679324073857421367320439613871785377899067801828755935743609554114555077295386769515088266854948582866101899561555181334450081193350971406891233457340291334581356637676657180294717829204922089986618804309457416145956425388857445400624568392087450875924265528113617135204914779603474578352794482731223480914173742228524514659549943510177041654061446628446950256657815934473460250386457166358083693418368366024496122780595664258913868406342731037518714837388176340003443014834207604743718761369454561987712299107818664884222160688296225155822952159613660497212115170957109513884808503300644129933328027078390698959634757593727067514629908840026588263653099420603031200603465098476484418482443972453415193485427975660941537982164646538504884317943840140641587783467905744125947644459270973425509070200103909993801777335581885819261207063497787305993737279915492208525195248859695412164534217635266259609493287729943256062284147705344091010049270291486529194892188794925513319186189017627484958347735625836015594471465551276802409485837551162414270038973239324526639285475052478752005124517032110922876785414677668137583271672776905759825544050406398535332074627169232741249982882946462072495243876781863323154431808121346880463621635136367990689311497193875967240552812342601203265153748159924340913000790661803594240807983393387526632826429322257324062747092350334097441454373063398740119178935317269475103532805783534044041678946951013337718719150469723674740175352216923662884623316336043396613077783428630935839550391925170023325104469556687872437920962784656396497817548845518456999871092994157224317068871825095208112930919783013022294841893374151439958238663850330161936652155728994319299228104788304790328694587554323899228249036726084135372531945195750716105906116493999715756400237607715859857713246900665730311562916453573602645136246078447939833672173320048991348743803603869218654546951668885198706258944847934546525465994772406856215995128381177619186694035205016061211107138127668997122863253116476624817572876893864523712500535781674571304143128353741307531761548841870639498730407272509697343682632730278691314627219913465871617865280030725523951972834788059061388850789787139080708189873871869459953665897665795035179991254380410521389710893351446132072371880912990245716945262062233787022450915443160800980429846640779346964970376561047464595903347853314982938017315743054108729912859611231563851257060154231186473500976737183380740621219356998354963893175089069369443716066525497623542184154307145765387730001729974527621020858235066952448084134215134552554141329857059431603570706051450693192525158284457480730887549363804032857385487610509382150245701230832788640161829340690693192950004282789710594121842274905630273077426143206784841768287750331185128393704629085200814109472055048483700126389654105569151735802837341776252658424515116705752618981447177920424219449565773474339506458750054887919528377260227645365515907077109360715133770270204091566899927656324627216813514765139481119795203935063668579295687512221296255159613509794210058053463197623158174959008225162744278392226343694156454477268708256684089189890263022130041662348096783444277537436416054286218764160157539571192573930196575837620842393087078211274044196631585439525644176723228289122699010762736827555603826658396309585554207205886033641240523696761542654665384433854080375015056913635551894745704648001314064174162911505792315510132018795614192342289787990041761712551390808742311094846837524121399794148261665518053803297982604831196295032357834506615817119782199548288275031659287355874693854973843413324964820471208973071012819918843687802930689855887656429051007785115023671381464019655104634316986105615587431849564941275380670178839552652075954440587154631747634831629146719707389379515934839894280448179902218551539736740062046240276898784816881753861989039954041386446344676445028432196579649617569504653355884811457836904236378103426585559363613563511241000621985466781672505442346465665120874519190600320585917413460474353303731783472408619444605786595661520870060307011380491120063541946055643427203800751671535581522177829771665519208967331501541448133014460185321065246152361600001163632810828834130585555559909542507636702021596919404729547043252748437151828291962287316967339235640868249269718974516605376317539288635943036622553863288788009192271553688108127273534409887496348465273143572372488298036294460033582401242634809923469090808614706706877215927959354822872912362522144414789178850668528288779480981016517742759148377294065403042636122852699594148020896495865681422777527851573991840385039085890262588709434768601046689785889748057158195561057518620646835583580400863260715390576337502621818321601099066249836865349833409969243124753247273313397338312292607461971557642072428901295611953926005540874171854336018741436585861124114986149811926894832358485403151250423601635369661324880811480709091464458097335826496839863453933919097794765919722888602665256637451936020262231281757258135672820130562314975441355384774504902288639944438724517159072979449913639533949396105509457665487687090482132139018279808344821408189848845227153910163228952120037394789864741492986241527392868395762532734408783646593073538637452256369720033812153682622943398640976106351690939232936253241532668669856229334011792032856899921115193123453501578850181599265606554705788012863055826141132213258376855667323900215444877987113686343875076047378394518669107994644491719225980574896462828184388814910493606404389480216516067310856783985595844267653772107939191874008450583059859128635970916279290107666969917201429689111468450109338302900463968861891650605525113292182645377644328663422306773942830572351475813426642207573425393649409537397516627228075832247567907562174380785001061024938329034366273568742097569916939703796293095911250133431422831835556438237782801942524987713260178526038803575762358905789777899913748192477140505380192213593760837729339003735223464401720237789314906918451869336577026078302287617906144636037568487294219176706849866169211117183044797434894961239505154425697342117028783065539621439877861006016269380965328733860173099032627216907650580007834840857981564913543473777438279760856599425578628509072587719406927499222116584628029455066988158959912012914865774293674994284935917623264517809230366583153142955183019822016853260261432599382219795306855845383200933692583092555527488364735481239979598029705310659094645749820612082876017968654097483067412652802750752244899322282627775199207577364232523940394250270888472507705307322375676452483279004828511903285984742143055977314270939192131013559028188408010444836782007405996534883423991816776166592193645029543555125618273899248288356921376967201018095245951357346698573018859458315102288545072272166033016688952495448749110544554128416387090056821625506145735335523162556182973721514041123080567301306132735983442421817552912757052127445807828540135953300377919991443272820606183432156859723995374419819682489571757843156877387834762488368280887765459227776987756483406172122588500511829255162267590490001292704176060669279913823507835292984758885409778310205762479858010636580323709579650435034413062963490242383608858076631892948741353459388789805959083776293017652203030973839193140825595381210327092557157564686825559098504116475517590464972647182243719049944319133626804415743197454073171732248740607356724965310187734648683813765065071301227014141218822456493186371240547629013709986389757184803556521270500095319605814837585945403603142266756843079269288124103595380020403795339753476537507777579633970811102893813841249670172885412437656110923224214274791396579369175559339198729006943401968803242341173702202849450703647351661810351370298557517289962020693079098636579947861262067704577228237232831083497339476159997587472998343783300375267737533026628392896018533281115417196069727843523483554151190215643918274390963150369798199045498959742978571839769336258145473444831424378696853875713545419701215594520607009777305520098616866596128500207301308987987382046767458172019808648747838622565387969320310637251027236075225735882519047755191667151500360196863515164031270849164881311845283252748282368023867482288379105181525555554042642096213032543478278664160201418021797039105526632100887446829145691933760067891473336171192397464778580402857818370169333509377867923482924514089112897804663646624134165235791762041967489496982556813091454916396818561412367264600506536608608891835136374585093910396232674005145434448618375626478882784772995865765332123445274682852891677803384973017627455496201253843782634578893201307354618401003962552524036590040420906810029995155913183061903205844464011172422180469781585780946698203187754893251302171138376330607541126214669216529456876700005369260956562955989186902569279442620937209935157921283175232214333052707928536449021924419475202075221586572053833036313465208895279139879576754472296531183411203059000518008269009060610040171326522839113528949716210051261946043360029106041143068882851816392523053886943291475260808065772796235481721123405404688584634402521492585110275188267157742938969610862367905132628683728904770413620984625388625230403145691253840524472637618703025390785282506887872548569426149841479589913693797906021787933803445509361926114855756926664507865675288577093127468089755155323314260990963942416981476277277982881993501743868674732752793209245238608542833334475923511744184242078285023912059497002538454999166904980760642037998836714437262265589499384577577306085129103553503010368373002562887134638436987316570920149994025306795355723346118543074991692273630347712873490462690537073615597898832375432602011452906570574051976788553715672475219963087323384419389656813027333398025596748919206534045080524959305292125769383591459298923575688948131216071889875299100007350558782618083791467627901015606958703919933026881110828002679715163424036869471548203106020074347021425039068289814509716842879946996865914687846612953898072321277171845365033134249690842811617933872991451567513873686166792262231508965409270465010823949388757322962543169635077355082985021715420189881875714005669708879540955558860356452797932475788781439279076215493989173510512154359877337117776798726924642532689351174991609270217148298754989356282537606896892067053292864444708200203169009123419375162412185266501308995777262746229495730793374936707919579239541138300321437465838548026506642473849221177723848515151559409594353138310199567462117005908984676476300964295179516291619433184211511559298829859544480642839589567302660633697831505326637516366979716726219090902305463730725638203176693765430505518862472901482125282603329018816514997414865619620892581694460355615825674351495183466567302976812889332587609560715158053939603861290837021972963341414513742926184585074699605432605195533897541366443398671719960478412603485392440240347154319598840541156095646068596376853181970433337401370867553954256327653645602937758738108365890397203385922733392899247272226296635105818904387643889765601056835789393218228837633252751581999406842695679975542993660825466471162747279053530773094655133082349957255774780505453093990347179149849372791600921290298946110964576343169284237513717578144175781773717251119310874493308245689401827993094776222325017665037820199436177316747153850517999247998734382906837979450634706580272478163163639579838941436286208508426760019483905687360852403600447459751278401028238704870234291579502599006885558045732256045282998527308878335846277637380580275464827178678620058482329047523132860897418446033780479915706395083562962657451510104695434233971475389863153004769499931358231434061432816789185935311679625136025998767010047870167074847669392712610794196803291115439190058532863196325861934777357165909882944715728409272388983696696102947257019024771898987031512992053698544358558009649340672952946449688588444044840874697657532591084417757263524414554802318517934930721266170123507852859243760942171184529711087339192330176453400917272524210895037469032033970746671846791703957664469513430347360049601606676678620928416914567316145740725895603600132880938676590263554371280160708306709365754885914046667575092014842749461184493980470681830522687368288910001107981150786800525845704200737232850102525775041639023857032119712273442683298417822178173421060628679874186971323674251807203714828261985769940525248026030758166577610629732509601862433707860195141578689761064664611908768833469056003574725923087039874079947259257991352128201562709436912620757502561847066925341612380618743848962614936677527200365616054155683635713193161049720625408665676438356539846305511040814744309344467632194643223681673784122659278292847296157787915467593341611973040248147057292218132500442214541126433459442639520851726202488797100275565161006012871933038126002206639139583031310357941873521430131887958562129961925225060534935454473590417936659282594678358965441778715936311684147872638319211253220683672441606780018425481434752428061069261789262649161703252162723621517450110790130011823277870139977073268316038397949614562280510160641800553556528497901219568797262416302343252668879519701373795740765754778809683962122098035685420541129199025935159686891027886442490474748160256512001014012184290647467597239467338891627480248606755895162829733583712560934130809724475938863413319558347760642939118645840182643940403532629476448144789511392896362537284648281390830064201908745861781089889344912265552734802087644669165241031246650305076668249727435211452909115006816651516027188915747802056960711881244481745164704317865313195992168803339139417989586132533815193431208580920897611234275365322266891198414575797533705004909789726903979473264056657364657046449990708888048228247506302793167947181863471782688030248536071697017561272543455429833258358879782603228505832444161549843357112839630142039111533418513165088240381514182274417424608361007899945278051242499137041541868024590539473269920354377155635005790151946229468785545343114182625359952335310445833148212675003250169157448738554443658010670875229098909128652098323730112527532502173614092875832927770405159874861648452673766463445413229967090246171624954453161064118817363942832250928822425192530196968254416163123135879108123835443701470252463704841141945872553969222228401078958565307534856556829678264695170556101660995405427588560812188060728676902975874517575186410172646768262547789193460136255851031770529523864877343694304162992041165260899476300357544748386030216193061109048365596738678945316448057617992219837391656907448318760483667350812838319194531496958686833140531510899453868264768456469666874710947985599440136701828018862873183189403572894602352343590085558563481769349379107418500448427887887830519522463867199215506316319696888387832772339398088158285825181907478631824180014796954720632283572697070694225309772598439753034330901500052872945830080165468473252662242478627456113794212044367301679266958501002901266227755579433750868395789924919902394499200297335249355967623893178275968819889999442732471908221994283520699490998869299797733597267083733208721133233150364754082021103861532290803192510239199452319141001329878733267718161564965845065544061736015840636498771466397112292613396924123652279183027601224976164535738085224040919489145042500909848817242240663319468105322878845601435968104194188434183768346227472259474447136265154298397105519172602058472308421089387564413244755837765394071514821158408415300488219244805086596413233689929479238806969197332458962284396391178585159351054737239328388027778100580425192230543841196171240883515433348286742434960340062599663666619761812169569987639429370680771951856839134376633314904317346205789762906988490080542893912455630494350931034649070114213204691961010237404224651089986985937131172657999192539411484827958338079953857535991758611304405721167946190621682868467675507026158634864064963459753503631663719439622912211018172255248021958809727881961904347573866533914561892449107875076659814200252543718307270917904570495336844555250639588015509050225105300459659635933356810023212571060335755608182773553847229083048312243378580302455419140234218642440089046396154933715623157291964955934993539267999465696678137476586868681623955847544668880595637500388165506900162032442628614519235311742808523631508036523230301178843450299279517100050063280499643189034153347296510432478378165803602034877411421890499281434894566629940368676586578098640799802529497980829678198770867907731638591171668063348899318270053805480861672037610344321247176454577694126812289238750710552512803724835743906785573621266597064406679600881333812977431475735749256514980168225054913491456759125283241501944612333015315344216625568548239355351036644554653370429636089142118126159865454526935965315301679227009204045297649437127839077443338139472563468982506308824281324457977569109768135836189641323664558959152200528938408951502321838248431099627355471350108010381028976725364222984408077983632377108354390058410061257264497063346850000295794161077035555063117425768968996911041371278701751043172673055457934465431021947849614895099314130838466145579003606475875047640640509704394179475432417609858902357859391015971564517667779887534379207865624555027943507906881692195496288428591216628124956183523116712633002060386113194526609024201085277176842566305394955685052957569817657639118760191324688352641452370891866716811366446589319911594157418788745781015290976723447146643149475555835428222526098858141498227568380013695954432935116045923819687148741664823529419344650174733831053357919423312653003852256260429637290145391726212253857850272820564684523773173359922451775225656942406885835047298061039119307367858876438984915907756751316269505932279371732587655793856732562327468693077159769046224184989193862774942418957222315095243516743147773032655228329129856856432830577178005587432275072828703645924050011786743500198405813873945608269470870353000529465166476847509961441764195913652403709602447921329923778809134653070109595542814433677006324281621007618668949071090959076887447549075399429940874438206782642332674739080648805916503131870177553866483869063663109216702878276595755960576814957054630554079667079699860762714172473528872013552246091302042418904941909041666601329052004949565743092897980773929503773143817701930792254171652721619756963007626832396915822329756224390905489437917747495157926566337683779940686332609583287999130362520194326418043114945507841956832359547703459621296946376390790431139296255919086241614924167386932919757037886628686979671424481206586457338955479960019133934309506803601607988927082341114405686527755936017092458365944703985723500778272274258705406586927836217871312926243996135333321572550806674231529633184172551236928240973835835902725410201157641592575313651975777735013672818792868754779006353619990787333708323737476475654185145129671727838285628214517865216685150833198407357252181957537381157719545450259306759888479072184278178400071492982310414730720332520982983966818557174597712940622446046725915537639283328084343118691912636614843816217199553084414237826742376171993354667471886656973613544302743501921936240841601157314397501302313346469358934054442812209003283171276915667175666015097381192711986392118753258890080646801287267378631939143949235375675047970811099953933080186635747632147174981100358993838199720889843852263225470874076131087940290147419358600258681365292831951391437991456536382653143331563531888591321172768316249868369073776967837391226590183143919623778640123881084913201012477992680156857287783776026500643767796056220557151802154499030037158749392165852225164060916836927037083001171168635492942556324618177388639822007921189730607974031692718663500913177873071116294822556396657005391389608134630785263508795709270721188459056738515002699594246908435116353361382611902020616665525563379628243639548607543067364886262492155781845684802380542139697668041259795861346497368654003023905224844292564430969844416316434088927252236412730900940257662554682471328204509407627815393081841166618268883483414812552777979466334921170955164190897027830860691613796772212735559653316362473703380026393774326305348523752203183922278302938233475779720162425207296565369374201409310250367432652764411666556504377747513241226961295943946428015084416995260943079170949781415932859125239566124302310756968237897603765099141833935469500825857141365914220759161330216293714659738316875096931012483459892265128991390431327423232118323708697114661527593726786616767171450830402636223954185601839934889623287427177491219537018168115251531016461484678070419725911853533000233858304469124113256147242501285218641444668166950146381762271480705897186164915297402029236258676469931391578330314694618529275681431395247014624193395746434264682880962540169498985951532316928992730363711080937422001331623777612724294731449344268736911037516502498662792144079190416741722354721545310341015995734409292667189699607105425524281770301811966427041533242976177911243371224287595064820475040485558574371406985379423607838902884625367422454269707461780324393138757038317737264067059278797228766962876576534783630545602688350539107665545119822448308099066140947273007440227235552936442890874067134209688380979953074039571279729717739715624305884028159030934748028899631032451114915238304213598163239490709114019987673977158460549752537921842885266578058049752613511928530736004495136741269900670753941215179333038181726186016844107762701238080848195052619342879080821637375110109555286439696258810437119809557279852350709156027279721781519573090237808501658877496315584867555739213319554643092627665966699945178193097640660285040428510281624413296631841178235448857162612737507299097208301352470358139908235937062129289472969484800603134986766493957460921070687065841964410252795444126401164569694262346527829414822677160356540194153853554090610371859705172842436797304236955222714563081305508998853698097341434379096874362270058788518575942576593116398730592865602955806262236711652968531265590100517111610083609296637084404617794693358764282088131725288768948752702005757236587098713612051401956207935624133642611121557124263209965965678048862007252186552170052000680413353436381103822951279216740021582204641252329991754216402199756588010106628210313599906238423089221763298145991420176894602863343960907335234497036998870241038178741435776281121491932623969683313258724242421785604611469210557904378649679447608247329331541886160439346163426048040679219052297975779326439115413570615528575495152798348427898519174765828504295348104807916486846565085244446977194975615313143586368572252870339111723257056192886277282434227334479498398216640030730919293920922151738191925548921142008653465499759581303359652031008298852113486145192218394632473171309696310912745206335199618709357576943531221039117015190179330858606166212374966442953888058280468373529960458787742568347946177408471454977909055774700372573377059514777461347879539867676648933033438492934577400926683878274865392780784350308924931618317991523765971841766988218572755531204402776902842989468270772530874188524918421346056526609262407843637287389348363055591382258470009635065171695899522701001414845074570101747456772139405423760136723116762399606704042228976030787911711221204047489820122051813893420814702346081246031166148178886786884207084961721824327594815647484351744646721396913835572006980203130280558768845209544313507446414546777762161940340506858138902508329249744524644145659479747866671241790226754894770997721752022491822372820629392176091242784793823900814968929021106631726643702880702744598878910435457233681992285537512999829441082342781753757918522398291382584493390410600963838571255674724518600502512421004916938401078188213628941827764785769967081672868266324449689994677398036629582209608839316297500274873887763622692513063421592863588621985019937808153771210609535268718345716791011181401109007653970857393339427909927278321792623768544983014412795578612872517388236368188668894697888783216867598448861677834918877712199257234201100338727611143859794179850228594749058352308978325064534629266737896061350718298555202180107178901774055737065457840246630964786496670366858058742319072202845212159152525650794173778657614905069963841886184783993198287777766464452415967997392032107137850926472385436406773530943198595343772891287657477476030728163654222833348597066404087036626656811474665318883780496761352073295584201195986855168285579040665948756280154611580563170639776967640993133684330492165087112511599269138533270853238598424036945484408606109368409683274974832299869089926948376744904760994796929264207219558904068701801509927875698746331150277228866540599359586212167882161399831507278164831630298810943411263683089025306398336944003035336479601463523500478511636241768007964588882367263850558970943689961798326670946006272444542882509388286290631027161635820951694793372695672880163987553397952356356228162416759769705907996990840143511513943406157985487823073021949621746212188817458524586342271335543724734020393613641918112418631194329482079387170191972521347177239302969506047285070269167558542775987780141320837362071013004981862116991037089535520394500022300422076238670777863784239259482106460391834983217829371486709113505636019271615722217081597111185183734792160948869987754523517734085189009841427699943065792512601728767820651033268899008431644137925943724574289536121852426875793361607677344919966740003778883868708925545413861980949945355109488171818389874121471829288436381535846387542848590950011968652571733528482186449862092872819969410596370642785742511623691485074650135129875714921970517803767635662815807871342829899794036294092956277170950248284120692437526905394984432189553893238603735292448259347791585969106209383378116105156351701811705202958396432719512015770739960488156725637587302577147611934320850184243600475009372959557064151885649817304145108694936282965354749836393701237748856955524535585308982203961839341306221108806229617720326109213445534684022182065358801142036519953227826083066414347347429869108488522061808955024379303250973472477701199713578770692412102123797196032195838237115768072167521881073978628243219870850329536011508537224465227743657211584490484200803259384137357872853868465851837199551421420876424459954917215926594365631603837495281069234098601629742251480583706546277555116833864174413613935737528449463953878294715024656262783505508004409458304382765914910681990946368140244538192875530737500255343078525154472191462629730666346340600355412383503400563971255240963493839187213109822051917587641413776031784557220689388813907412487594392045787718748425425747248306889969720218501643241590660445710661156496015424514027098095084422150812845315434920827537043776800969969717334523385459844259616367049799805906074722066982754596194657374058241453915651264505303795974400420320643102578769250426687646650745026077951199152722285736872548261343945959789273920413961872466364454822597860575983236597011965800105896005324390861700215194061859713798153935913791530338770521409882911460523364244673823067697116012691183968903041104958355221483549045214131933332756231302968842174391942520413068056061827745834508672213349624820725218135624435440400537523723545377384145269425982244399269588973129934792143174625699240445332675384413345383263483492877944551182539976519808090772347465469265719691341630543891259262521714885686429312057919971776594191602516972151649433786540488064631219603660165914652422818944060777238036500603366555281414224365912828183897957387752738137495976813429794352205541386910904685410732914713573942809304479826674529889635058763691854662154486644701441126980249835435464934751549302898812052225968739995085008655115914097923514194673756508584696126279647206200940526201319145545375649149422366080907567695951225042967437263119111391264141943560894469849037949399243684942582844505968423225444047733584996218901767364717195061780773987443400121677907881198954581584976439645838309959497214535533286764042591767509845568354653236673579611625594776374525605282786542693937619463680642703603293227105519104004354374175831523649784316002435616448311256244501651042803831330764248605496616756369629305480761994743194816772143903348897077302579810960741366172157112817309191176555013085450600128826132232233952162119070645645180193853243380283819293422028450131724043700536055278341893840196877590704741558905476735150990935601996190823005928225242954661708810744229321989288722224895346969598066751085070631522335151694348691922466683204344422775285931402107140943162749403914097794862134032842182032512525987768478695003991580280864048904672287554575436327400529077530576296008638341500166987151403172442547446945722440975685833922004127184866551344663894518169100747030822025436945786813455024994303718330648585570530748915611424658847094329473299435122433108517736431382637600197461741304334916467144901328003624786674780466783498065084534830645703662547899145220261989920276046265503541140132003657041536241573813114757660066636818066682590828785441518884113012619314836786517754640931307407127707961710920403346555963171300726579562041767759410920980127762963426008724244056901219419974908575251417516057478736418789391052581566637453360885765475306123421793890050354775250123522232367756456778144520945399156665960189005667246459538078857621087560515684212036136902670304403662543014888312076026153095210418233742794658745665211536354599439684588630910850820127105798390726233344717119552951692994256168446950945481865666161382050449375061943103699839322376974154431659439632802247013968968605712827791549844916526506885975101341419104208790563516728304483251914859339591427637926236807818856569335742605669056136562042816710776817259615046938460918278758511467735620804871694561804325634009492724099502694891581016211726808319215067762877350998107774767038264220635745637035437046482139190653831731501189889316152759823315294431206915576468343700870855867672902187610308393782945845129120774003262577235009305266057500595177885262574108554914087092544040196258798791594060233989637484458488610480836677204936378772668281027835976671751058200916369683038587310755886253344494008998280157929371154850225723380698254279852399671659233009240811340256608113980613843820995982158124978531163281314594989336103708266163801731857280060687422975252887856049291002824912116364520287017283435352734101850668714039291163505884845403167640564698513564675389086434529959463393001480626059484273110576975446140054669885602634915421363488483577557748461151794590900062601457420605292667869063128725596497637344529176945569013733958417922324529174120959230270147028880758982758516286360510585971189585273311935906886993816476674659621981340243345900715220493337334610086742988311470287555220900439139806072741969767291935772067046917998271486479947890743319823483142953643970877122406984272397028683284106025930750545463006803529431305212407852144238509810857165657632837176679692303153064101776416936992079619668862707235753265142856934124463669094872412817076303934272581703330431261860487237956336336634484498568785953795614184507718983467498975408595492266578988576157736846207712104924141869515037831524042687111100294886197301994637632846671471538741176274390994410614344764481673863247344032779387720224219137855271145547276091232798210573953964474792165110975825886651599493339159258925766976782720725856119522846618499240819442495975111920837135041107643822035574376819412246239053913891297716725044745889379408166920853899153869807837848964937230225499969716930849202049963374010903088462935758771496543567332397611081292832393795438464185123969921260851956873927642834209068365140476383954042636311086106714264979578933741094661238221007990980986100164099119641096183712612196418468830395590177445580324004528793069717490315933069200843803511535369993829306321491791932290828541794605698557649600925783546715546033156353756005535174838367838935404198366636047370414931659687062638897035194098087519577201258559824076009259056317049449087483880339823778720732510168605502650951724616103423673988671188478032548250881123609729562415170727326604111390943998070713649427996759917227836698457189043076737431296589795605420745766424854642261981990560118545303585707799701755045930493408865073950813622748954221300867623084722931814922639358735999916890418119582534343910873028363718326813848351049173845824776945568211824280056583242023672882838409743541248889892850076884961317297506001867221163466512165290213852452998037591879952243852521410068376649527943954446780266784585811842437999233865698186012393569331007317382818783736116273333861391858749448469401448099166119881542096334983277987257266219099015487765711156241406543787882898861913348097885122025311996650782868671261720517652774596070458629917341336671613173536980624373928742067611974576698061396127087144325688005858639123809102183712734898179100800140740631370250935329879782186593235437297941244157634179846307297754422885912234656303935616732692577811672137965237063412413158073862007492757233581077696258334830892262132213701784911501776141641871862079526895922155042860366343356689747356333868409631782830024146960338476739019324418590115722234737687515562111189998854628703133385910979938891230647806512874924142664176588898455136648178022099220446378645847632307993929118180245686776253209884645192858301207862279042110084473055861763892243321246005790378351494351487818602128242567792249373232085677417648352849306820376739600872750859952072379265621501483967793796736361118260700349134753780709647391428910525790612130970916876763606348028607703746284406140781932389100687099889948231314479983213004530821602610853181703551077289244252046571598481541812007460535297978577467378520728822195968318012067116325315594814130576485173388227724946317609789156035280897585979299473155042719154774840061183778062904068851661471274144084712061998323910807978961530524703937166005703577208682482819253400722421618581504162024483294801492485243593950971791778298684394894101803058147937770239558421005799628476413941573224540757835742747532990988543202148359697298483170043731397261738242713908058163665442820745817330266676783555263604077157282135414985120251559975592380587288178281708426633517273679764895228504722182712923489296389326117542990498562122273459732690390200011407637226035874807489620984267136492028992545903379834246956917353265890137047194793055188543121173065640660609664673888538925066066914723852984171488802887689982625909397913541384449801401654219125538337240440230748008107592456189933068687839445106929427052494545918109930406614970143982352927788363463285253547171015936015065924484913556047414056125721964017694442733320205992441311751900897414971638740266446351212290058648142443867260072728214858463569999232293147428593321931346045113164841119414360010911755516898760331512447862694201131575889541942298250759102800392511906584424172770163221573010263957844225497690402318470663456941785670222104661234964544739483760093802883514039691529909430124381539941449930508145532140165402848927224604487759956718713883180147732235668501012543156805421276280259127345173654609574835489260916484112450531778197795006549416084356557106099895261379202637354625910011277532976125741339815885371896876421556177791692552669922791607801947471645892568943277789489102315584611924745296713425382810860969876540029899586483282664085647171118412738752267226018831841609805064398237846174085753024268377337034282813269924465683053000020822256561137851973573796462950230852406087356492818710721854283341093438671781050721567923775812195095116766520006077302843319902126516631615904502527487935513210867323512256646770246623875672638230721517370769875893772872794324865771950679578915457715800457968608765023972133349931968165994769064207702359254208125333234053739877265093278185694693634066695387133746217966225744459776544926381179223208850907141664327193299852609336784861533737794141007265617182324608579019716665045177682152410548284828192999798263643008671655173162657767860343548323659088070217556955826922313367010012514749932090944077957044568028297203969696630078020917117962891039709323289387239393163766776463866506952811894152555130599723796572918649469781726569249941157418365443280268425374982692709146523523774844710525149737995250511981562095646456970415315996929636298473450733849244130679341626184772073983181198694614611830024348111392110416353256965575579200181716891921328780998951280129434722130343301193534119316398434817391079102416232046890581645667019148757052976559077600521620403800884279339231872755230032373575285629064796507610276676701431857096881012823946596256125574001566580483994577825478146337602634187773379819858056373246382108042976136967410708872248916700189044101196950263180254364533448358074651450371526966630900916758844178150793566751213244962830083729769637810792528558342481545097263282193462979005018675715572078002047406900129997837093654630013913543526681859330500805638224123985788707184582016243006992155159877209347812329005341128082198053689543587230138270683268759236174382521948550039111328094225903097219380302201760464373350325838658188220531136303277670304596505972019493101221101889335335994626812702395008623391935688981009079819284652522009546442901700901068510202723334540093486977155428080643829827413415375842857110734242175198441860166472828028253023066902134527139240368388151257932229683013548186133908356622820124123932101717947601580554866920551248842177270118534707508535748857652493487879355373564916949203436869909575554139644020530815736878692699674500732176655860757477016406863758737309041442802489872518244704599191981595334006438609670928968629701149788989951452295673829534852816332835078319327063870403387261528847802098182531801499149084514685365202295697963336321340218727544587848844551289661071055251370877732076589273313188065272455416360137956511563878122139616386780628643283367289578429822621482051768754084062012212840215876428695995197568798135955619405866893509784495243960878022363383449886630366008908209906377309520907269025151324031825391854281296242446636035515585227043710062319524155672950117463534398332135760447799063357333501289703602229880769816990016380215799928851776534761754565173808870322229417776130214360075939013853721018036018925255524525832235183044965661067702689140278767174031989721787932649138110734505881460935404794207012915543647588830022442746654419928234123091369276500283585537814038192489607766575647792677193155465050358338061223767509337457585923909278588956200838513974720626115715411263118534284275449983699444668343445181986838454017205287692679008975928300451618186709211346096798250460114119413335989500677163436863676047105324793363321197150584720043862000345291052949991250893188608315615896908930185573533327157934748949141240441403258269635743514613872580683880932277543803350887925839224021293902257215963469523839197963868883603119658781020937089113637441094792000150466087826162793289934484184437063966253440202903344258815532879379057318894567412085570739250588062382191092093812787347398778888204390105263032690059638487882186422042671335130661328553820375879615196023403993164784271611060362321715901756871622947509979199391597363946195721551010090403477916633001000615872336790198448897192383906497588801052240080657318405102711842680852176077377167631002459976848664349534623085720064140956096926086651137159574146420294446199117019190802263689717727617342518719692661064267032512363969226477650812272167369347557116684736618231397394429786050493107674439894871650454743536186522251706695215889671621435620524894089174553433688143745909558585505965257689459862720259013911729746551588397370421068571023076534393187220105940708831165332809892666964184321329144602982312309972817682563563156592049992984123647172363609957608705761088826265221399497388507976805721589451172129690692283411317912022096201086210112551162085203401680718481165172641389492498925914774889787784337090333403277701337389878848637417815371062916228391197868856195757400688516304861451647081381083987030133685479644660031268228186689269770534403984522266397410800826947124100893552468631430471958773618443629717529610130130731360649998241525032162593604425956168062866394654739774038952145017138745363835514044134058976328321180858069018431935927036478451428301278225063308994436423727146982528914678205704869258501816261642504446286281164364651409276754627147722755536097999667802578331451954133269209068762454657445835244316749581350406465304133722073507731788333187720834713220365470242479396984591573325442054799930819901282863852835279789896147653779002028145817403360133402823941238583391685617418791683706355975344986227314332208721823054915885992570634963008163994455456006693747651686995463013766772275115239790959741704861565477715552235797435527084800580163039443613335471377186094637011827041453234862171950046057330638490747539270895429501365425815970209067718633481238112869377833807180337678212283915954627822566405367871404018685227817959455940459530559129744515181381242489930818942064741153993074400642557363574906524706036409409145406899958866481984198346320862951246002116677835727924565347726168187826144821993058710554818805642843949373914858927562769244584437710988452570980677751431481340556100731275026711924164692810620898085908132437233699991411001505089995615373026057508556660624671388118853662852947537276354114631478465594782931945959328027582535355563523986519647122337111037644033283978957988894947497351444362441413395754082737506078260165034854590654884070279072783071085007958020302452712134368916551120416456854551818856003570200210712754204079058275411195170427821984809375516321742789812975672699616664014069364103060598575476435261996810195722867659032020535344075511034012493010921039161873553827644622533743268267167222897552757402005034580902239863497460689600571636457332429965286673573828420664189947265193393261956430024589019870277853980319702852189702390321249068925511230325997812021026774110091891137343819027817699365406343937192010040454970674753862014609545158713035344672264268615084488046885748801347362884132672249595479461431143022629503670130518836774013380246432542067097154929155257952361658451107969638863321534978949901099857531848427723918073450075773909292870746878154263243829503332343901101275849784268353770345976811080980718895894684043384196285957682429381391493189031538833956212555527095733530990040589369076983457560423705506538692420631017495180444223760682656150406389184095672901616442155245602257349561784825892849520261821462208648511809403793070977812295755679599435281760159636237697928515062389922342946420441604337980058458534579793335560637409665954176964297613315197357748596825535524664282969033859853030662630330789590638703170573279376619490290278901846188354232873433688941484573137399194320275556972816527685719843038773475579177673481411738376933623252750110425330514669531965345054256477920093675646903367090804405119319642805855168825650219770929747285334528371207822989186937451016634100579498096649120612835142489168722669658279299523582848069826660727411213986528688910276322833169666960468689855981675139390359104370278270262182856701631259766975240436717556142481016356000215826822213829211369922414976706697336144717653390117230092706794237964182852553547998734236427276218930310105524468245102608220445695924450388262605149162174845878859890740873963676166149727064265983602939243597382341133557477533046716037406924861909468496783169417337012665019765150814115844010792775630014456472692653716660735124444409628834681361402334003707066938600664684431643332990008732596988543827750458066395918608165100252302699522141292715762838189531223337259802543807930842982293287905249365292723502498420938848033433234978722791840510239176050105057562890907968264691220112292279626798847816219671949345394373431618110720366817273144370329176116750873003448302113431576530280838401786854460266216490661347237308234694273939677196257575049868817886969660431811278407599401236492461677575012951291910483556528654944524163680404864531815697784055190897681648841905567356911491498743908442168400040966578835159130700117993892343725356302394822798214813038832518474223738765800854422300939760381715432610903349007667926654205098689276861134195887258096880796098724321205247548032369628469119595397170570895631220439626244935571165193581169213690165309400826109988692547805379195229740370353954481958298848102471680942603844700400572491157791470637464119654361624223052645708884294212112165196938189335026706174665151259199259706384324820349783250470796174625255054894928701647562786777108507720167027872911920268423281743704886618077076618011467287708052769005989805477651117268730855097121529728313422127304016866678706386431962247695293192092265325546958458292660728841804298372197043601921689640336689453696103458325865921950918318640149501727932974571494416435393903566213734567882939882949613462606418639479041314538080646526856502528644403745699214995850820592162480117365987320481840130345574488609591829778324860283354132800648603567998256009847067034327733884615262667854902456200386707030183124159778302925590991363083402107775505526320029623139920855832308220715561470545356602226890162869977717185867952769759518803608862132957563331847780823904684935397824991951297395528006618036605068006902698148235213853458705380371565642995149136023986050598500716446316946916220601431930422033664398715158511550869058941144499132785856881501176105256037583101566871637243437549550640532906264629915632620982022578479159923032217436428052839197735008180307640173950238142775702439004778979080336641870790976417740263065656488657443294478265461449394324083568134111558607520102726057516215009785397167010729139922370593477657372473219550614141684992193085097424928962598054649434584471981289212111781071700299383413540671422647891759995320797460665759186818586999142922123583824922342136647162402934665494482520707233709979288830150447106840127601841392348223925257495181101125023255641892303163706890261787741433266892747741340731539539299397626855093395763368798687621052886585580334966121334503873187791197462197203168853862211203476566536461239722762268827317842254071012379407793111432182478290732547639586688880190425350679264844756122050778961351507967402138096211593424356011886258987013377723243550375154740916779553052065009419122921492596059488747246876614556819837495420273057472690919179528145796667830319253945022531216798757766181609879346558137145170161659988050693952871441644399061244227923114665017928984499778680154433517823699242320804352471575300642014517487099016610746706742317258562861172467818161596125369069839470977272241624795776090406775051763497691798115816694372477764478463936139074217383216520937672119263498847189480766649454087420677094662842269678765968085497640687722544534053951558727485668540255410454876413717717103752392388769353196633999469824381955939679223775934105041162933208310073651421897086767047678250899689547430930554889484778148318512050393258026838075375525173328907821908563074273588934463344984681043812223430193607657880986209957403983424186224168864720734666333963646264965766453956519650040876025823009170837546271745869675268582997376992332180002643879092853627239086442780556444456809446648662267355552615381597429040968148617725796587337805778319074566646120860612302408094139736067084289361824043748648344446792527524894227839250763864829587861978227972914705630245653238175683699294554380634276233632029589971189269276555150326142433552734165806728176227220012942691978816565747973543549999926853977545188381354377320569717094672534376806380902786162060495880347701145503821568211643815737791929648110233593005127513764399039010062083815223659984606894944950624152065303381400769884110906703352457643883627481877123835189958939528795468696581529178300281829290160143948576214349265226790974702504039334279683031524306881232136335920151317756729976919563859597025942141767688076541638073567614627252839774199267276563415728469482349094090119381068836486957063814608882748558866439431284945523339138895026942207774269958040162443850102782091484569827659101444709289974862367955548248311971740632317955460194350726547107003642453874969541778690392650264361796655544383009732053826227007285163793769777567094524276074717198764650545805887059375255617706440722514704050054780766413946483866420783149441388548492770410847143305034939072099117583311089708066403711750306162121375136528734196936387428482350376234193879366729935074047947650356593845168764632863291407700565033752903230444153505293072392584871557780290363518385341998081147490908993741441135669657521907941899958946276421560538790196703969791760290807830513456956727079504306296338270565208249016881327777053482370303697713236686176552736522069232824682762560588883322860658512007738347784278470968251544809118517346174401701792531997762204591839651451416230255834586896975411791278641773502680936995477501079200043784647448283702706883590405810485829486376726839918517538452579542695483776174959534355726400014391470879202580680878298697069085348218756249835777505220367444019835857785537423022378180924046924164943986995812531163091960714938916310381330995514680451141890623277264264620087132586883945026572373732559077542689422200791735703269671794771124426104467941224306863084690876467356697286688143915322260139248619362711634712888366907919109957432484397483056380514250104643741762956337026488486506862392524185080340050925145054223795641239075526282427908389768232770088961156864503618085547949052278160041824236138922090968837105777346539208315728269565749796514495758147061669764434845236576329191853133842365565109754707298339422554856141721606722991912538062313440553343127926201154522834066124827670804304704123468467621865476318157322244052913750780778067475109562590759816242414042860186712802174043205014135784916720317124919782210495580997186651203967591838093652831407376682126905077542097412125903509678765686233682264765421548580200798502846014956659465770203895278087521532750751469729567214440766085341512273689223152702654061457511115151308202295887391296801762983894012161922811205749678840234876956455537178169758702920488315070165948348593441142859880868151165335279895228487681092305966909994920158261016699012988891620419240478425734240388512229673724026905302875724686501345658726642007758288784595967247100415085705217006426575858729170150176222767299127321434574395045557292172110266299441427927719329732700378671523887812126596676142544281288233608500333627442994499523464574072713591035596763905456337600786398333713082339668733712506581357589538800115658928015007513064494617555435809806772910037051932794318273650026657780489034970152963606217512270418786956927249547098822287822233792633054128857963027647486709831615153237808764302465350398307702017683086534336162690014886745161029304707961276621646021008685353101507352571544549998893957912055504296772766285963991549488192016975917250817926082316517609275577974327822465302995658095733284836648137159107247841296726784256452659156865235804574298512771138073087328038658452539340158108996248133174178687339307009597698343125163018413678572043025503603472527064263910185380912487931069611723553094835781744486091769526579496311321446031316471098858676364220596798302215858702825672948489647245501565205722126031338804909244141264270493561119408789333202235768743054089837194440194873522914511637567468689203758178119117588241419878116232043136665543328767151659371583077203888720240119182802671386906925261782511090003856230623029121946800843732009699129428807490271920705716225049515797843533221299916534421423519486034732769096364864242688197881565655172180104202547507746042247223706257568903641931978928675431445204103343364680369596457413966461843021469218609983731419596498050680031199076928833858742423936847087841171418995110334424394977278330674833591694319120737318809242243872349401193215272819112922295516714145418608477238303885438635215038843271705313662442073438493233372524112855817648818886010134818365852593126287139387351431420561560401957091958643500479918376221574954554866942516931510142781040370031430582561153835543933299622692839717860720834227303747539460310097003025055040953974256755911886328529735475359286213696983307114823710691901201031021300378270019619396890547493654094980203495926361521039078896353888745316895607577824798965470904708645003190237700984663451054230067106542979817796925185567853852496588294868576951612718045998442619961682210736384709193275643231402838065714512462970394313163378685500432499732216822166488810555074234589586079766501410211637141944146849894564425776152391396188235808622200875582578915818676469550342577609211361202616276813914491284767432151917559394788599792318121736872846064986852832528014412436663697077726907796671284031617021885273537373737797642519704089024305378910466601293683347505492550330005660407601453390364589867756144644354092294979522270394253013209780303094135385841976368755986952872571060578348000876034065311402152286240869750018140748502342430301143208615084313446886864247103863846830903095291257955793986441147481190541843415711535361775183880651521314531218059400100907963303377466251656496498788001775363055700178320218371584014924966048161159035579387861248407017676581835005523574206805332778678568921346648612079530164868241090321271759361050520559217707895027761364183881222726388478675549331506180389729529395472444845953661055874712595693493247430821851894226223699152124681559092029781951232859549855091792158115444356065058740572366919139914996438875773166920661268203100307373166808805679424156775598954001753051411972794385349571479590197753209782492037020709989975496415996088977181422231201959633832125562207489781411903759798176654914821428321001242615500793712083723083876899539165584781822967617479843401755789745954696316956365987750112241032235423687677375111135040789194432306871458534589379268281221430477781870835841667654502118397497386556989505424134627587197509518046420899132661323512200039820105558873473683313482499524689463160103410504889935938906615000582003832778211544175331319041870609584931165593479584823981990256346847445772552471672148173322037647663384604989544212009411685871617619729075482588447172247847131789817403414428009949501795534861392055185074348707021876388234765129857457750126037665415274779392674388307779476081546860829811631203954894350717295929682222114831342468456064451175106521186417835348469357870448926020667004353700138125803490678767021864579284915272264763350117649300346838227874365468511466360926259638344240592245897879939357483422500282779108528786935309941936923430924700337373236002464790340256578653753208205786007644503739088653169980943685168207165178028006224838871537542421805335174432618262643458884802136018901212155125731205569886938528948117143745519491953978222126427527052251596528336931810473039497562243871838804060364889090925019193556411503692249654096520090553151315226298605987204451395342939997805871722194790130444196887111029572286328585393141694420524748325657424240199818909979580291559124297677854897440521675664226236857663355714617843619254391601699625843926864505291147419141078541533054794350847093211152482388105901776134685504580054157042575709256656625681986617506018214913046217857452985680680376695790652889949043342693705548330489086565368790326615386432272126595204397368551523457839665803206610641232688109788900990337208896874170065003805359601929060764136892116029588401690141357607687241541093610633155341486567061107851784164186245918319567507483607830600055240540808476129705878594922026740551267195363596168406820471723021530617543549697243674854961566160250870571988861138297728501273505418585705373231216566173084607321328804824302848807306351818936163881039060261815015875246157288110198698586946699054562740027343161172896212121218263264571719146444167884807007461019895799925513383113500017347294476784499509124659301863690444874729862263534692179884443659472085424427602699618690637198489154300356590535565264311471973059846729987858612643494384711851269960780432510722093356943550179441668376567571703936110798606835943710987687578140369398273359873978890539517543764674768830802031379542693733879429455442828540664212617634576462676096258159176583330280539739509373077741955425708830284529667227450650790138508683801561000560659962870336250211167841813636062671706958542226034629645791290306637905018894862625617243337817750642952558370994445244277648518148159285840089507007240517062262801674417719612373660795023896365431580828984449548634098123342583840284574795006658975504561256691269814285957451290385063507433417925327393797751170166203057383190049947590749350598064436255551586225539785107551017145242229283468635577944383380209015314106327036973154119778573505093335999800637082446825591871228199509148445309523870396557520781236561297499395707456256201981281721008048091922158644713126850061520936304964829587417593448290828125795632481955802096289529732749397232266256259392545230188717136238426470060361490425340093459916595993214412307767119274224116106027896703314787406543474738400303967882430428394503015527661068249005423731213257537000245756633921303839322009373934654279033965997456083450684288139898001079084980041678086295425709501858653360216415819232776424668684286733596702131553971292240112982852442727096927961045151923231172014504150988940173718997645718169645783834297349469725603932419504283969968771950225811313724687612860384324521816182542809561144278870533116867877603134613914002254214664789089142225585195950152455277348167337808733730465628529585958870962217381240592653858577953786583086464556674772859596877532097220699832085316444484368265573565882219547208028012196183581922453904804088696556318416206518793269247872468011253076948095955734062541466481626061665113747015431334659340757217865863521785805092849956318753658848297450775649110980069551675293339118215350837467868904527870435404522810293965499351449356484227573000227640786365671121317872839870295957087795496587167770022370268904433399476273490104292167742193055113971941460418543915956098390733743862967111030998120142671332913603654668958470225046480642364317700074413558979772381114680805197158657471058864849839752355902566636631959477593092473015967886405990129908041455113488297060177901929619427507918741437429538570666564711290504402254707755555306323838298048187874994001883228254487821844948422502879098995409468222246366291013839014229106700929981190780957064846687869336237778273370293684509755693966916918454513023687387890806456316327885827998652591090528217085974755567274710458833886728699034840302313921290283501444845612967142697465275401961130842864316497523120493639153655090983525284463453972597907861761228230062517569206036559447758029636989053898311750795377713679139870703470900230787503701374838505010985183983725783901081196373892344632025456108942774250610140201693967156842837077306678499289142977553271311816887283727934804778151065245993846760211040866377305800992144647348989111158480257982522153563965828664450016911160486275770900691851343644122701222412857140665501254081235102818190956697150456584018457426265088387967001165126974699448448681641030427993833135415811291822005002692165917645077036051960966491388534121313616495372534438181417885950241275567630210039997502929902886642668734179550101740894750890833839459545191117611050734270226330224321303086121257381225283540289011700339362349070331499837019401841515630666664450863796451603182090004391706379573032235454008639670325191724894785462696651364219518322566410735014789386470234552745263351840234591434361648399423970124406051374045274886647515267867324108235006406985803764807414400453866949668099444436236867857593641120064525737290988023898112891627643163607333421313805520055243978830123574764031679028876658899640043513730487835319306210386800162798172561124287587944655305020465480912718346144490805980030413117154832088887456152281693192394526164878556304418952584232705692956760096118797820175361060058421093681684139227170485636203356123926712066828941866069710961699707372333363281268656841267258742008802880040995128384988774863560503791539462330234952693247919243025328452836466676792487406110630379131163170821619340800007245424075380563621029087686002167802866374070074997365960108754165517479721907948274938057793946622718586906225183868707452291011039102771648938009783914635237921415349295926692516979197825977765309014135642939742110665395419347556332363136971675891081703775040036524321895672024291310526748511364413286382454668784942761759015624444913327977067670318178350886262360417686895028404413266574312023665565728078090714406213818811671495901813827131331357424303750050940774728510268883440886002260036380603275643081840956926389312140274787867352056802561623005226513346737748326513665098071693357946898824838038566135338341261931168500903766526215495109795884856317666092715634792649679538888582338424498658049666029331588909945382617346033345789036682160673448110451904322019435178427630396532857709733491512018180330491509684588858878419531820931029965545467670278389070288782883228923509449481814952107317851593588223623608338408136133620343284743184354961097686647001847677007413406840348664630633838287216022486451301754505961431264904603369733834620219819393384643631164605380039942493991846654332529808618785267877613937779590553786231873189626535803224555498235559462400491357948670440275797134313487820980930445788937651429188235446130163860181311031415062677441405555674065653873718015155606588557165310499351096983173392564365085735798504263606502025577962241403480899865894219437439327316475423717755633432392636973001769919164324914982282727370842433421754456943340357718997660121828399205129033503008025995408356450972044221231339396171048115923165988692294286145400041182032421474145570352173098631484513356609919674424715610381103833557656879273842612181933645533080985836412048684736183995383155411373170868318616546020122748035238124577811806786849265870544587198539564595066009148537896092867977607538194971776336026006147838446689999124896109372030351626147628876537127030465665652783608907423121351406407126145950023576459263342911701963432715189513587726314964631669960047870849104023519673590995286029628772769396122130627271243857668378466405659935979988390764392840642367086011044604692636240912208470887280722573140868837783058912781726050978722043753070935972713776756794304953503765656110953300890257867200271278849158067579417085747060305917186419894626170168422697600709887692918578353438243550099420041635789892569514791068564318343362340403638011730376087842567286471066741823767146898794221279474448481111472606091813291991548210663715611670979254745192086834409648291153627262577007658210993687205963639029025514686675621918945307143226890715513551573976804568343006619010608421201384401179657364974109915776110725141183208152892962085785504356590055306847795645254285525605366002147840998469372897480738913167710772876604966830372515070927995370580676950177402548384817048088659993021388190208312444824103704706088508255365080901163740099986520207411972013754528966116968095721703235196203471113256519288018150252938238434017890640603890598792684591130419272212468658126107940314980920745336294199136810031101166369790366000268689861662124487881856508235196232004997781869458612777041499165018720201287131297440321124454823414846210674738399452020263885812157548348936644651689636096023517870952924166325459352572262935179350590584586565094348430234506860146391070526906149998129457090180578309856739138620432753491548089672270101361226636237964220231673947629146200895507667393567099929034927556215435491425343830596584822031003927970891739103130347755318061033739383467669248999700400337579694852903108859694072709156023545695786079410029889866891212197379512452990449787953530774194195485387080959230328614783249414203532666273892084949454491221502848461805422157614603104641291711558259052818003777606677187112408232006258234177974155058535206264301662864786673974045391692552949535156252947650518169898770764611901586538578237472996163948594583369608866156197739278365968200596490520468269851713164477090147563560573385190978374357965339653153175577816840903074330640006637996211278391649760463917890820723313815669573841482194555229649742379083096476003813565974052627918384442093231100691833951400461746399186355217092298570441098440126030664283176504310530723956814563348288979111158490612158834352341348994894107181732404099364542420747197968118714547389393215541856143665519872542361165670980191963975368302138819472494340816608161467913674221031051671784680211759347577806474390060422647514022885248979794596019189397432337146916232855732229526048623760406786085779504430678484340234645920809126647640363116169944886975358328228926129872323000096229487596062022113245503099303573307278680209554817271696420901608776178134717559669875429008552520227030963099157258590605911266097529357317929822567592527758500111327726971047716221078307932344836348531161739453050022570462422161248857238824948555951193111174257690625073560476532706692060814725373320258563309240682357324842804691095046174120179214934998962071781882980959258309233203430984955347610998136015244134245378882734759182857076881111440117774549650240899642171577607811188076147931852993464341298157785785603902715512123992829210839942571411083362811884189828237660419273862754534151745903688871300651759743329957515960122487050154969418822238790125857417131007452617751439161630434437767873456406963873523185218951364933814255080224285556414086931055780099949836314690747497726760004266315550256353281298023337075473090180867620139813365055425577764317010428238756998405909014046566904485421706941327916966968865186074949950054019443181943153640611512159537717987241361097117976796134086585918933288479483424840284728386422873354997387364832311582003781728231329242397272437552831123229020802248463281160137455045008395013214819248376464400936783973954269989955377952655342026193276473991384752258171567294009194995604745127472391958125645221781452260185084754967997647765663294997675545447075602147497384507298167479995537372176312029369654638285723905307799824700517192987829033853558613295682410827264839623285500657685356198891318407836490468072039009010859472475888578476108854244705109806787970981414747935690366548528990410849660295379151462186179305310845681782154451873343914903321718706139692607585738676055760097303956831969858898504360519516860430670946507526454178899161413627109122802194665600540836216942373801172432341751078713589634771660801050847699260806424591963640158824319913176942255034721040140223016558576097909570547876020315964144029516630194008164995656297272212111706381562407102276125580557262597314173547619654023606503832424777087405629368668536252103205928249206130397991394517846166165186277803451519591554081173702180438506758091456833197925049950718970097784041544141661842663231434825613174948464669824134561443458148712343136126873827039733074385076688886315053851744414370459473043558271992079024709995887058439928332381824305386208417067064996612073930379131087295752396215502715846964954242170094415754640936562048207929517423757980805665820620227923565933248220346373878277414892493536993816642767769436792061983596578336510298263858545124429610609708499468930084559381114554661107626917277525158481927069804202280540887897979411079412779861681767463700888642562012852507114572715295325122076235767941704326606924785384109644129339016259961550715358990344964536299598303187259299455952913866973116549255116997364216782915414248159339301164619851868663246963828965210786376683711898545168557950922259816565918485127428786179752588883423938217839052238544462921844321035047450784767549902486988246849883969666520627316445191952644077906085922132337589665186260691758310295054909175188992345424668743164460253007955057797108212965326828595648041649023762107186598128368719613572569008684369664575877489881718670280900448501015536432362274377686396037053476145337989261586144203242110638585240897993509652152687515990064265459223434550682092070216527612939292566807479334833561103127727108058192335910698085915809766811265849723604613295838721465118964631798377416210690303041310823118096997430461259104957646382289841761608557222382813617650154197363884233504632893322413578393670326321907732033455785661224784748273020343604393676460178515969469864076537936913105701673909220672612297455780415925613553562570219795435628682707492875106938760678499298146272184476572133018782658889526194879007692338787896177031631976238987297975115162620119023101604714720942246346105054671172777834015869047531743099640215057864333188900681073395042738873254554985475608557826391660483409161965860519144812508745033195423621074506965958366414193991105859452833964670784289449128381491835884591674037929875229034793899953529361362557458271361381893891395145748339496151440402681365228427698661949543004397296429356017351989792175522205318586591488711996504148870616387398554232182070361447726142989001845016160288010761815604411075464947227013270783570894345722136425991915708294612275241759697228564557355902285363289282186671277960026685922198433486512964982002235698020510619593781766633022999607334455576772828100150770304242211552130585204023223673226647857512050633600654888097796427242297141912871766580783106781962850283715046300831638870972823727218318421608001864057190010346858833976853501170821289992335766572593383202077102774915334994909977414753912191396898361701445554824829320827850823457622073170320374214339644979058415618832297347605047797772507626693238099549154518723433525425267710058610349924569090440102085352601457812982809971556071772671018908558026386151301262018726729766999378897381521425764883104292260081483746951417354318761506110717630391262515222132103257474953285100305752880791188701366152073591945820065447454075483873938070700443824888433760059910442166977458524911631608403302264102860639616993548178529335926100013813086478090531872005579925965736378225433134533677363921177622762352308854236235827129715885125728008011040614790575661119141523841082968422621693212885665548393256424181390324242628219142455700458419020046245702184142552430806815808211511333427862431143522796584711442207733919676328280827332300951451980189635221187826000114333318904282508772191996827154978701553359716891574676722901594914290729208036733114144390516858288969758885614501218307003844397744690853062941892945688711111750155229588554257030452733413570324440940849116979974058494501306248959886915864938375876673647627659963112468789495129692508778119976563446569539016586873590372180154385627074682981347352666297094995886116711703304353271509885914060329237019660135669336503977974085563413595912047576340372099349207366686625932194425335492706449517758285856790357463598127567815939898795836975063832088168033156359679671229714618946859273244355062324916786888973376980617932364804523925748603983825857966545387372182948730978998644288400375543762240398159188394476980186587783900671583097714152395954379535768650461415374666608438783037609486035761110966748102649064584166298849566994879194004928370329484566345201776997970557791955433195586299630612632499063966708290873876042208994692765877721812507155374096772113859906027930096663535434350001711320697053503278446231017605829510427787954518305516151046692180569685814635183272205935639497823496659604431415281311910364453711312406852565718494669031719233227919934583897085853688656210262394795792239348576020656235446463864636562451813861548762872773945026280897455902441999381469190640374596676393608108850587608292043608071257183880370345303620483049415473732401434377152190587084216538962335164638508799673800663047741086646052977662834149719182216320164437085203866853770477217914006250018399528569424433747384678084867248472557108743115408230952567978475775767322959773619751666445437389663201209492831342696333124657919954267883869865908160953780771656657525808416081547294776019298279742668971730103398525638688776026698362797697078790316986598012821185903311579330590984881088367199560471816402965550031478094416762528542296915779542224290872769158640659620449395348668220464961390718925319017120021444338650850512281867492026320984959139117370685931529400113426769012026297891394152802722004235833250044737109647820133142709044691208383075895276850570322122615189325118031097853828792923068687357071879088155317165661561674959227015609626422744295662342060625535413747586613407868518050402103600543611549926840020337983113234507938595551759062466315624537061404357968302717828497358148782485412098968987888781298700009419982631756260126046710623677950604429059266613311256615038381066520692603951939691714696842186874644691826479331001977826269574446617428418035599670269406135850056845712385302146549727674243476939961339121705323031528498030777884829082711384938009626135102343600960715874410488538031560530013816729183289598982769891676437795940000022721671288604914892719904694141856178974852493833057885223155847921880285750833553546312900479506886712727050035166666717972368138383853088544676346620872719601742430226455819851127927332069503685592979277329300061155379453567030674277283647607601692918541553629618193215464472290603141593241569432748697669965219869379357000300036030839082288350879321460768563910336963553544749092305413723664382019939224538660318211422178397141847596708055953953025574120748517751961693788666881093873966586519190407275487147737446487794166210647699167058650970008986658756057566033772866235815240131819264543077659945151457629568204685200822235179493062444245354437155491658345445892906711237828153030919227207775460996181209831814968280959113112546212741102496254886889907380846274183372162629129817995259566173612987699960712666219214741864692461908936850512625429332409737988598682833762624328556074548744302928521729612867646448087718882066709941681207902195993142813035990087297874469965402524291961835986276024673140061337182201241992289470214261521263193077882845232859045710254125045185256675792906181209769304114700773030978548999181622261872859110383123393306624245616041403628234317843047266023502315073173081351967165546259783583335077256829487809350984596153491556186024741115507335378220819181223389385769068112638448759827851845317489865715160596408866232755185339138795796714284002998637959422765914157108396211252098388050908954245478936842550243944749977317103544995991406339990930665476780858831698085034763917019821665811241308227607456748021619558969371150312356465922148223971936908033775417991433791589986557298713753328787399754796770939849814644396485612645518054264126824354431553192730202934826545537485825459347474826093428073890049466437123474225051918775960920764363515588399403684664321399546975105501394787966998371110476476203098839683027521197122575023127646933977478191047305100337358922918264611252236543531751417216333663628517413108395536660854231922275848689885876776562536578348902682711213890717515946296298001789733837044427007364550389724132539505643701690084845982526431585769538175119817202827439550134503835535310621872364136736368611681261659415572032311442256994429652951138919111552841349687891364802297429310682146223704462462861630002731909046592645726439493297607744457629522388695005972719796917195963720830476259858151788062152457032067042387299799835738828268593535858412878403863610246281572595485268354226330271162937142115433400178753629015101150514204326235258687694089119755727239642712906384851497345809252667164207289126644095666738891838277696003530565363653954120350587523338431102555048126193892694658667822148925711353535745507600988598047237716928767756487936457223675602749813062724777361102184529002796342651740490992931283041626585004131734311574601862784337246739309544449480475292933547971984300920205384702542511803828996948202181606177686715994495454733579027957408918041511832984547381283425318417160799594077360127766892551388080501061376433234545404538820070998112627846543790687365866847543490104401663462684172985173691293943125277864702208580783646037293347668562508005854113651541134554393293344050200832698617879047013543062567631049355721284537115313773561393027081846378806653697880606921377845878722363200098021337523135170161674433689513797392310840523424484345893213321366400548576831512678557583235880417163998246708746227539250971102354583887914705917745142603604861411812486480753769184056910814768533898854573746910781999465334368906436519263165150636541970043154637359089423082844521353297545791238889754146590946790774773898822273025870916971107821066251647387135038141045418017384562884079423973989646921976300739117186473011355203744761033491887396222380740570251715773149677569736366480402880497775756639343277669561447800038486140608907731498642104494707570976084359076693325577741509984039925427545426366115548005729374126007227569190612674486463864636125388747281541951667804865889941076937495820565754177040432194857533833256621249860176147817444164925377366049833997612114871167561086463030922212058331973862796801249597175480602884758686016939625644357581019840555927864282168571921672853353901771694944954579365943515562073742502036395672924605670525437263846109929795912822204326880430140211862890626184982608908225452694183246197812715057504935900415122936425318457854803218200970788671934620978811948728992094968225956432133931580864718753674488886023055466738006580480353396490284621584748016557893845641415442178181585370687327740180590938749435572880262524089449314757845864655897962016429952754960440478534588730820767179053002159168834276978028261259877569673915811600696069067453389060326994333097446518130642068333055719296532676736595970165491251707984585834868817387676420392664799600169958715243157458091095496007824743239075444181704676677234453394839543149656128818943659390961830201543456329930625316512713378831095572470665621718646003819754986191746573494718384327208677274441485310904335393684559727022575733478242073306611198239596395644455034538867698389323250712849089979009284757333547997894577858200255875065755665574463534167536954766527622944387187835448454916772986708206530532835621753747705264939629397252418975763698602231638651400931255462529946240982707801005239519095639852992262938628933445665756396265025818658063775669287374671086151728818022845750178316524277516093540507884414452004486595977379168684807839484307236527339344001045473185459880876760397832375057295322777207022250405883670428002688334128576485710145754880068431960284729654366797766215596081536981941910102695909849499083990730489676507056886238559749638187340665339461382126098057057879825286917918868035938365980243639059455678754754004852115641788874979833827024664010921611259027620901669483041313071386055077439083429175346631290467179077090401908192084039224945753147199866378423478091357648296730539880341703600124617274299396159200674885598058934517453448213981286806178008332900565992652003945216569489462841937080862892714309709155599043877202074969414445602867168434246597446923911136368808224723440554399522579229175877141089466511687434552327032412865331793566700139017669071524542292786303287839573349395108510550825748379624376612748743234162060982365344632584146817018319914848225878329195987077221192256954188049882510346415310251249837797168586493698344453009902825208152393290731522911440661093427731405136998924787679871726728627345675586333650900217926845190485369095484512921837597675365272879610860041090165604931826228210894666097485069474558898900137317995520394608021729732001677642007460647935758715986968131897918220109152489706022180768497513131183285157178103900809511740624282532186858683132500330815340543542682604005350650347825483821450738239801909914073957347362032496083128806396193087209882651402933807350342949155773713806789244542094750349990490235372572364072464537489878442132943473194179890518886259672678540730785758111066359229559003142223483974135932987903549752861152627211659622758275469196149523412862790627007652749381903934304465067740438092785957635472036530253370325310741181360237466082127472355966120483163683988053558483244238131143867078324090317894164115587248723586313785640868046712209447709425201080243461487125166325149223961884771078717983939274392989540206404180077616583442271907657216769501124568476896648716828935395289439167351892532274603437783355997242609437117344376538249831475938175793289203037403020803265700413981823647483759006195600565078215332559895412408330616456198180099785571448323718201064310402659853423429798377944653344528047558967109580951888402842184876133150330723572567269894659055869312259666663172245651650112345644859695968967621920241250487838646570458481434905114839148481952725758220035105942675907472764557353584786928870053297441834248495930270965497263428037894830045834468959231514972978341567461512684654854205993120628914787428395618388643519949849589162135280665119340266620795318233193177942590801609036007209693420153411014918005674354101961040449276029233007650553098867027913266750527137509302159672142115099476020799811159905616249698592497735491057422477338589129756673485116046517845519525025619037898131963335179160132061896192610689520334924767416235585863804489261902413423219143432450041914298501384581851831394425824485277687586596296074945408657674370298208210924528627093635173197746353794791419548293042758118384729008051164481515824171767107776511116996104917139314197234017356516198076641149395351601265042429464146372698745120773484647642764239384708152903374435957749508190593086402922548538188981491776075001402018151267207849014872005943862796998179921337582708054503937951944842396598766902546051885439856748450135386461495473088819002532603768601150053623732452584812576078276481520848067396949950886828315939087951491360699128509481134318081427285828498961576440026172347666909175424803154762766263285836983378845154344913326471023354664680796520593118280038880284846134859752758212030936984208385232579977769131315164097883509510369467556701804626495695809692645521180166834793654754206271900559991497059858621492648229577175227975970379102559687019181760242492741493071300562774435783106329287590029993617146861450233536924918898831406255827974979193768770348544794336939423423466121115550963693635313044576547682326067879488752844125150521832744804225585978379382718416264303092262735428290710622446538197011224374626022079249055965217911600534392429095044427218418998548308488571167034118933074253705871678145721657701860502780609670011136764996598529618718925254510624844557015282111669800007715215608809766713113794747518384318979522820685679316681843734317735421417095659043003816856596863835523581627805353590819109506554581107283393874740411637523407690884094125419386354137445501209134928768836077946314960754179655580052281875541161812940164607590330150335281799768365914284953157434375746136935189868485366228497913629330282155682256164493176738308959406901923835458705592477514580474460542619444452707926519292112956148909154730846389913387968777512503831025492125773465308382447546636989152174733567190481716301297519159693114167099377351384517768630257845666379680511728706508824971225569636479262288913048986381522593723433934099460507656957834233804271887614907682340216719636495305863724769701258870669865558872801213021580460461222607819148574732153525008512519618224555100393329384941355418504022585539188458860116537284290998634637106465789449640506556651270988285480385700090410987157081060993979528606483094596072173908491319614854651250392775210815130303602324615121049120359916347124149726436811763966789073796352534652179323170970863565390272815128375892832804778836448818549803375642772694338871238022823038494802471628134279125055942572942169784265664118874574865023750175194275423452561218106135907968248733498751348241527156199887691022779173531795328463302513598885052932883344101125949382761403818315949494648347297623599008798857282841699117084045049023311441889059057797697441406873865501622479542565755818579691027222108871172012734936430069166144647673058308490232306844943162321464195589642744884286981991308392253028362998199130062728713641641056201278382874298044051101043754576457723570419334101774701265362123779025525641773824688455960694815242975678615176231123582457731526718809076226785073810271651148483674318532278998982692178098021341404655290778283341218742274434906749748980122503657467882121130283244127508275600693656349346961895980922747276275490804547540775349015285738021903557186903357891140727231517933756305906408213247774760712944555771034242479705083195103876175390240729132780824847856868347343837916242182085745893400247414207485757210823151848276343159003802800887553192913221079740650251854158238637045964876755584546593808072467270343851693134930949275625987488702800257588161574932023968349106732206834563167849118207759231989634655153582283980253132452197297174707378313015508379319059089419862003384212626165342981366044460491312827875702510338484439025177434918592885034589773266716462171841046370832243763536237720425798386172391399535933087384681113707493578057515825883933603088677056836117078218656636785902666953945182873441287977959852218765290351352991106987907586310771618935006228995805205223339852732011302838848963191915407749822379830022148913548964382066821735993805180311583416688110850167991213468308105266859586261019093600276515505910644944141706793132647057795500998594482316082411145641799067624459419460440460450723526074586872257123000108314847040880498850666779192104815197031915826532623084676238120466151569256072540944258786085677468858941629677423358947202632014364984621871603871272316160932970571523385479166453976657905278948222727017236980175790690749084065199368837153275031238402712815593543369551576178664721555425883005782234273189597490983852957869895729089302373984006639847000874097566296091632363514696332826001938224184399021863326212183798309016432045895603340911834023475047557462855666747512308558759364669698535896498298952967940050866085373433796354235248156419883132823255162061820842514096786239502718431715407359195175749826860626443603550771901944590825325785063674985777304944620814001159193012004210057067799449197631935929404397359309250296548339257686879260639024730289862866250027776923968019562170412326683769604110668513641670192225118086641016871959787950424454057879392447415257218685708694991888151608685528769273268414075767576849356126686313187030559467499462577973297754016355930188799253310335416396561095289908324565264137354175862536208197233568992995372782258809926111778928431274793316892971301465990923667868120504091236952720933928613687858007532404174184949596095943247713548051509154478633260603356120328639934482417706438072778659348528228673929946593889362916376004706285245592507937029325814967587986786659173071966208461633228280560106996197801898723513889767325439581495350634869036490041300988851964866117900586201914005437520275020519862306025457850475034304547619429046430756316605272665799556013578640788934100042976858915302231596571344324951904127011191195279845511976336566768711836729754591344698826553641613469095907017567096794905097084598319563948999765163142718445269007217289660038790189147218668469272515571901242109430680534314281154400724603096294144933229568407027494345736861025548248457493538053400226284887174226944405939774247534008187951527234309061736622719579378180741971880163303224396168390621359998140282161318273057546105709328102525678400834151973209959552663904901337435302529070230850835141369359409288006518709106623123153915128632348297723919051811592776336157028856551996920753030783534065843063114368054642323737519723708264201113329248633789824967862861059992875933943339252681192880808316714715434833341438330157244462768701765280319094162165961974958511946786917271843050065272137566652080788339848481107404321299660361402772516389167369574717736841218158675627417198328343014840844832321577728966483948178803787686238969923757169790809913742408689648182982435796458633216289996506910211099678974548722160873402093351283577943150773396462502785639546016811520801872734755721746686002524978573883900703480968811472793645799540397007442274919619333662629049056169480628151142077498724221635697427232842138967916323586208801280619339304753863340393410322934464435975784267715013103194673990915713059853813932487167884585347301345831704913558319332760108678046991849786497878491592480657933050090024937261934125563775440381355740423499188032735606614244860384391873000238676962037880034772948731522764150493702176464664811902489795044849302933638492919842342833466020232828231987078411439053826871220220570494847673526038876815115820958291446990861656455775298961028806379018125911825935542674961346940933752163615578925689776261206471712235199534325471064284172395844492245511009751179136532867846679028481783936861402680113917983734415245330173691737614457826139927266508400065377019227935813970022981246692055711226704778583754409718803798242534869769422172506587249525617676426638787595000011771589126240845922570666704741075316393056016794578842324073261183877947395412201383927448908264389363846099365651797170919013757056533333108790759364892941216319188447023087252290785662253887216460871394732414245912881934127640915621513761596005710987229143643295036134616832920443972361483861910391726591136082380950556713682845680394155647942392916157617820917257898959082903327812093473035189745770337120096789248211539526212873441590668561555718977932142559430916269454932826781255334495191935381179213874569795134490428099894830808241843725771945521441009888118354035407015129407678668728902448776189983756001494796483027070132310331125197602373947610713433977993815148281052119738287993472657222402305805490389461766625908143743200052276204969306619459779058642030003677881387484283988514554391378244795291974764407372306360960922929450527077950963771714603231646416751532930880985820229034869429680179201226243738580514589278315425353241651992351219016173023575507396370961774808300084615388070519108215987072906693849073851690650423909263615027333822777686450627160482174149983150747556434974350690818413847784524880527178759259759513674529359750467725165793042707735679129700156319646316340805269437017061263341178777852879838884233496232415353292978265757571298001058387550924341144151771290077520021085338543432300034995790463744493021114364560831920277359534462513554804135464686359855833719831129318368220313032286852430265549331006110351906803449649571430934304555977812899704305937858923550249758199660909003433917009595006935803375638137007120030248190112362445548870171647251727055465503145666529157724762037363266111755741487106204079350598626977865852618030957766193027018201502460410961214343501004221441049101793865011139408220618553094113924325455687234518652890445614027987275279990045115622037618937325163936042264233072783151681332878386111466666385783977908573096182131819823978820728182185629178940250493238746363490353279931591016372333714682545796125864412298818945366822434391769134354246052951898301588817087886881320239318560505129832001180160318433685200299445820256814226565493339426095646527559041063808557871566921236365935208509075525436535487229708851633361273005817526220520148477261385049757237192288631157884174945399108748090714109940874568190968907959403403813317031997076762921572846350521825988715996927072735255331815061547595824496359662788208912531529379175536245832440050699759536598469453661507333071698324344164521632208270707817733532188452269044921421907655381237526283481895719141609611488260177839618384812684473409815078010501276304656228791068987254911941268290932730720192759212910189268137085195918940114179614336928005949632926063532797439028303429146357797272781464775259788325073312788876502966767223670822915340426138865591882800080402514129961453951150692495957658876869519692250338145899221968207263729369225899253980543675364308791783936628642384793024168935154532149898924778176307726431458239698336263551017248096568044507317004395239474117214817727904194962147963684810006479914912435519008089591300743626959258248833180549699620825641523539788402782818667901785546537995603338137151654788716094594759873033503138957369024666368799692834598800222877181130029528618746721312096128727032477013424064878620687182171283690562923722289463921139012968619452056162299304663850457873273188455587320537098090413650014024478926427492999809578142315633898686298248222499550442411230074739332236448180697531783606463437595876003245194182795066224306833681559245281753303426172007743921583369580660607925963365151876264615624191142566932361547520858264654880310658587615920972566770171899539826214044552946185816388144016576771440731036987161601139537704490585567286340404918861918203551263557208262431919421525105002535918581346855197402815632576694124576850309336471927526024590991152103836921801314565728843058996130641907504209525573803964081877583870570686441826676357835742093217383848891929041984415826054351906464219163541121898454084502343782341054887939061207414480253968296171863644923595725696071068796125525772799127464485597742436774013133920491796487639107526477098319844621926744290698204615709244425902439442364396340351041066922899808095015007166782389744651615852701526244902164834831875037082066318643295240573313323336686789816064919619609427236741050521044582905198013260545606460288587736433165642324477484064655077648206394939644450817741843974678005808593704430952428119432362202850751793940299715495649996378426761244494772269002160309103283346240788134359101266814252746365494417107713621473532922815777305393028133268944584897570019096998349325021922806720200849010697306448788843045959568866510512722236992059903819596748609216892339440821261325744382474882818208918519170840511930782310964183413498871855929017221730343142997988939781148579503074156828228655973596478323109418077357104874067270074155193108816163757460931327266491410307807398291597046337126061133941090837782592832509249128108791234164951531002704333460412384716813745147506416558175395721188363835747374148739599254715994645170935758601191928491708134140040468841838367175089839540909461138172042099920668976709391559093757559361975470695413206556117995563702060174412948594308847432410392236623265093416498700627421389674736026284927973759060549144525318026224898080473095865871426634094250636330523754844728045983898985686535112212302116203632582007297858166764956868072061974444332063437072787742453266934756434934906511198223931663633106925870586857004694806222633299226554204800311033702428776661696557090525258998492000258208184015884367626889775711848481491600061137792574215197707114736482763124351955065745502729422377162388094519734876313932591481883241274026417888811356777460754201362071904767958276517066823532226718737953186522214861938229901168592077548226533753409086790716813524301991184253238343751866640705241914149683317929863005341240087959815991737977703460828745032380606557945796175321919238368981558969173601283412448018723337644102760436931067679948095458288626694557553460810493272865088386829015393599467613710063525348968993133553446012137539394210235475710580204423672737261253574985201541987356723088211102577772945552699494114499497748159166180228785838941278478846271973866850783933754057292214165950874250252636713465344359783967676784972561430104089165118025729970106674057980152616771093885618370563565064177933754461601404156106648137025972721190046446595409951281022591871187128114789575994456231696182559624218205177905586187823043605160859568714893699169864641998298346469084096720935636713487496563223818977056786023822928373351238018640849466719714988077693810723811215639909797203517968077119724863850168731286475229739933592827996773760736441725361289034232747213510080444371060518881748036504656657843410413431525408821650338206821842058001761814689030407720747762313375328144071432578261947968498553842354655401098782911434327755387590780814820738002077951711412216762506066021843808201988457156169870313672017613732838584372584718683220300598195043813830166657149482913812639966523036022792546044809737530930200139879503244269019796922596440545504504908882354971457103566498847184196847356282192778899558371479008622740523549252762674689758960462394996930042427630276335588824646327185294870201664536348266874843545969904342399589790764098081106715166787519901412947766758063763195488299960002806654962295476711297432756463973230419871264974562630927232057791952881760772776084616947198416491612909359698678899639554142786249510320874406262569029653821117816276502122996412246830635449803032225939829243440312793777471921294751438963661318481180322295847285217076787949917046718139243437722146753811337532793627899900578354167416588247901574817179111568710185010032358831055506795449734579994662207778946202923729834549410048865350382425884305349009903494633363024118093223486157583331324700002774253516557865208278077378571446325215448282061154062157263077277369984958017111004784645968186388585449677684333947119415662998661112542434363360500475041330060548946339305331086426571129623478199536419491018473787251278255402865305795933836157057416210285204571916832247076507811949256760698662282367254539300527668787019355195317338422132595882178285006572608890597561144168638015231630293302532531404761294383200902243320244371223496585704100472149882268562394931136783280922843586620503637285518861318767643331361549636952626496344083300407312643662823966573810457699014612649142052117040310946647216513577279153432673871744579342933657591158638291311285749737634059092287854608081244887011802238524394455932769237899618364930364092316656984221143689194163109465637966651642435777142795400746183942695846822778118777640687059612794892837067048876139001885679731242308207836548700388347840745417773729374713331221264827774033556324726925320132578404401003204991149833850124871893785154433601555510426994532771191743220158473345327234358005694174195993424352437158835255939041406426058280521443190020352047033006641652228935313866787996765988119495201947688339850898669909030546038214724862767081461304838718231843398031290909441805317425186952987793965984726333592527576364501016085013544307195487135142816784995376961518917701573153804412620702056344783075608210104942339521896578541214353539499260711002307314087122514131958071225655191314455706680587675969099180043715357551660678864486670125038744152188373284378052093464455316868037992979297612464097644256464420229689544953696021434732019485908753895923140880693910251644071033916721277359781406578365140639978526804085587148546506792286237644511623513461424371462475106159682558035002711519064666917596541983784728238970819236955993038759797975361612688756405140277335052660082592592149425772698015112070120679810036796775868990751080956586331750718684083867743274990839318679774671538527902362828982081312864671277768791721115547253666662184346414155220374340988656570450197891867398540898458786056558506159289773869937568681615292424235561170183297299536044051565136507276819567662827438672353225602901977127587341668350963080857160605134523293084238103335309712144981677056911697551274322693133455263218913128972061193766143001972678469700925379484254930195950269562000391788373431614534732769094792677572399377216934059773212629167474895326585259173166042705870019517784690402021311703574899042794048425519617010364319635398556548159264649294967723040071039583013548350313154397293199298160199004895238342290860035016996987640850368884444033343571799498231121303576599994892195586852481809562869502824241204779698493308138504004045671960999897154821604556653991412691805272358075171847184540212561979501214523017388405695393401186323842901614640804079115021389427442644487161643078327853331020528699257826534115998136954216823416559513623394715344722886143586479411844460246875153482217740384318755131984598118835357276386215898916985316311107536084775017353824215111095746089659330000312939175235445534678220392071844946745467706450114463748604792743404245130044510355771625797606685164167793881342889464309406631397842609501130957124277729263940167696596235595910248482373741785260413474344536439862192225663120429239847280126285647522540426082050991135932306023863519239103498330026683922865710163177363388374893740682915199766197478590503077001759388835208351003180218892485500679662796291805978368818250371475426780762628694350709218911057589150252926197656667427599423926465666380994576915287952408936324672868344507710114578840666909464945954464589085852824724880166178060980520560118498762664017986362894962689262398753054706111164781945491762697533063240185089935042492472546086579717756909761414391946200289691280890280496757129152040788282626306872980259849446113099774108363084061836268762453575649696999416431491550289781932043778542509406415564357842882864089052205587379096905559536779519302366875523399355345073044281118914818254265974182757981322803967966172107868068894860435999126143121990285899726442323066490258915313558653135576873363311550000774290736886353036369839635115060687676288526285139876084251407669335929236499694431480507535451310142180503030356446498584778125289939559459168168816519369164060765465144804112424507698826561871755676808619808978542298202006924677178219117303149857827878806528383576085550092149904514347403777900211161058727765018431614760689949903880905482183806900655777200044310968462394723454497273002298723281464162631081820558734791028940071443808498836932135184404858872247979832814892156312597043000570818978822128108003090648082699421713834306287987430508940798222749303723705419964251266560560083271146819392741410505894934452253008156563345060098546811192785238443436485854779432582568144074212418905362045547860735924968714828325030750568258576451873297526920066479606292241296721768328211935521001970891444416996880048748341322531388332289248327978287908195892584984632457939411509163819423273099151636024141189270080070828878325185989359971175676759373254208398851989292225387483358862310709592506150527907223106923255310914500626031237039340756748303474153842061189924022582517950157490155406596487357090353340907582631376077424241364003043838895405707286368022016875844310972741098557526544946244251615043782529006016952093874790895431889500180695103175105918527081783896384007392978622066619762841307760240851562590650826819415325912864819635337369379342178586351414519735005027820185022361469671113856814348657947048640503870633407672182870140178835077154113243861436569407433731043518640090367409556775105356973055687423288279341800795335688564890987034969027368956506535121565064238862697212217504497005911559788909071456229918579706524851518168661740735857439051854122860737435395548558513013308409103750061238783794202912160666348471483253605674007697939836059222567160904564405116508794217873022930861215192412403714490464535862765027516268658728077820362803740440569284003752559945866281707740094380969883419013343366795559233488458602894445286336652645434745647114432989796983617055947762112227819985059972883137326435197136899612214434773068475133921935506732674765673948996523228924701526003865543262732910298121196374692628054825256249344304690058818178039924528192109789380056589430723654356011565119608169567052545916795720707142207731722317166314215438766878931018123967565768816178821455137072321171968160829403573487384691482248626879141302083484055697152325419245281914939450141912985976140867457667795204993085019500168853735773948400940740724950553803689846255029819235238327585062478034661710603137015124580829474419418240732131282768086439794927931786548626622556231037750088961636968842170215316753499946008494994546332178255584770393003656916000413935773078490623059073835301506489214781970981845023644714448265816989788247650268767313481830139879503746373524791408321581808363658751040220388136546441641631723986015621371484869085031766074048159361142277483798990058104692547038680136100367743771864841203891464078695236390632314517076137964874648781686069638315746246935458801286749670350003029563224119777210769261989358109814972435547641780609298966975151699391383122098394900298702910078831039799040621524605905572463001186826087866270029898060059313696983684623147323528435206665055915921831004652078409896162008204281313785480290132454015756513379085076969600888318212100087647654747968888208165172124419886213379415003868188743241142583127880713117429857978573753210067146692467480731869376325536857433623797086345654195390136498227102132719308839385217672533553334124346424383367541050946777403017464983837855517039099238728125528807163291891003767901313730555388324953283775273408097906490502923760831536011057074675817911571550263454092685672340205914506625273937782412169973326696340238286903923756795227885979609717328813756398396813859669993447252746534374373505556032284598688359656930564448659889357109012029980509316183978286000966916700575199821465473943733907871347391515851770826634717302907013965925279917607520161905079459209465770931654094580365009557923219949727358490171636349830127732992388277464725033599856876086808316070804017675259577306732899826618518965223295364103400801670131050414184586255233847630093833449207014856963011333206607817999144939846213996942788619146756524910407515229464882952957873480908576527394359760859836847066045825184539164946863939915682229405742885193442598519055660142837852739336851340726133936583159984853043805765088023356670202677466822158911244870285185164490723377430909026939840224772845840198177888903045252825528872794341485772888507503133163130409979040260076061316828484706909276216251908160596956124195494326168661028608113761993769131499226573812483685012365449008764159308512636995740335912746047314224793534979669846522855119128706203535537077811777794746665656923075985192739778072931545169875175513002847932098857805068233645164123684593550799969091222521104467738765967723415844655204634327534325301503577332029939812237274791336111203501066210935042749538708786731543674729285446986582031657555297536113532483513611343467204640544403453571751193281028207522800822721454516333980223710730097357060542352577348080168924516522481942604374716827491371618965741129402193471076504403384029087296054171721374809863398972847959339172093423737544330793305681328490744721152881125759361583212516363128894069974383420341788247053280826497742987000232111611169598876102414208356590513224583396543307491124868782549548901081095599106705578355227083781237230946702103601085892357195353348216867291880036515045545710507390296049666919306277830521792337183481615750105946002765964763552971222065165967028035653326680631978808407378310157169543607134210909110411828485602182154533951460847926828007639237171355914734740349794625355090726376641787319239060725505163189599658587548769345759246029485561048907322853368936768380244838707574033904569125239036036248036083073044589352352179391099529647184426507739114887090738836331797242250022457605777443024158728884823068324742740279227633409179082056638514268962585945864170298345460579489702075655599941685645913599596783724273289131039483010720287171016192932456668556582805392792629043760840023485699942431697031449551683136697823447065235901439111076750750267797401944491589843413535174839310750963138542361191895303878109037651080408876159475402847005956337333770946824953408833659739097686817163268176587147104133162808899592976369357817812374602447906550335573043580969614645251973417660780221414577298553511010289015397145686303890137212885480624629101847911455672293784685359912809636655675451185393529035423269670286861221767874254831386093920027441157618234039293245438413673238247737196669958760602523725776053247305779778449417907942099119188944336102238030723699936672786848090175743737753176133790085735078594124395963845436658526385677818582903848766003436158635778954164468941082362497025633248597461463638669646756213718254584173035694589706971556455279078184733856634860989338428673756682690492912024554207643732744066720159662990211198610895140268415369564575963610379266487889804358471021163416317605372650612470958713435307271425257951561222588729955784321799079525055841346240091178649498990503895464753313864363646637608671705397178656376494788807820697113157082839830314853234238698018579989143697400804777751036097931232660400600599412122758490089751300873234376681786174795173720026165985972615000492783389721369497468522212763244974460686589729044222905882388747657935073426647820057057419280324122736126481839312868059503223204774459620286858143124512962135273361482869708231761729150083389304490040068933852033946428801507034034502157574466578261309096243269609987471105217129586331655772318220600226941337622069141070211396691153371578340557568115428550319768934615647473671961032579412904802415030803444030730605511367254475606689868196480508944960617575038614410162192760257139889719508285338368761509579328473668159778740659730364091406491663532548144389504268251656944675833312997147927360169170401271677332868632761108844518637234363687525976117058672428152840048057148727336995533408230758060877026184458456320145503074492978677699474161934183682953912306520115089573211814922505236454389131102063496169205084399746914940422440797843686575781658281534162738697202774049084460201848233306449387336318674470839794980749883165111345171479081542238886885076555162005573109348301230505876396637563382636759761527456537597676838065098586755869682186007592245991796566878605653478942752739646211965223326714144879416824888403029812848565042553153120806812483295599696598832058499508625211083903231940551981245098611514732864393769595941618279516218768085340697336837776803842016817011868450912918848071895118398468745629060447576886184762672035922153945665769302013690041270378117962930341205269973059895236800281566110526150683477615199276545829639963918391730473182014046380366262467684327254816306760922065801732071239821158151692776265025024945110662834836292009449487357623322161188665486891110317957477473900183241258834648255119940135947628695061665910829116123935032639073705828111623896609967096391634009183945166956628117673885400764066016959199269918214386493817761598142718220333362055705199747812953917738597611200576013120575164026025283186500646117207721070271360221613433642457189993466938086068050178673596218842437186071664400402925342993956040082241574807850181638862065371851577676031192451100317025802164774904249417614099620638589390460646507353513627583719457537668521265096729128162398908816454418128053897508703995837503176368252773289298051251643485888828426170619221765352275173216912625879229083385730098885692417754400260373870942999791228142699320171624442221747663586117474571384643680544956062052544731972259225590637597863543567439168207078747394924968368900866041829844008684905491133333619041501388011255256752883167491101596373879220897841248980076804336290449694910847582633139227415129941441196650690482074592180948790692958553278102922269739795307541326314824659785465122313349549774977886787947368487026715420641452337195100181143425214794627143211434738906006174838205577141124988600684568251373418302096071987073749008743344692347873297212313322957174219521551998051197174092225196723209337742086142559364659835096990708599604041552720312618705215961386401171178594954391195305113418522596269583726460068848194906500187785160657413166631411816140432573955370997007044199087462823508456637747223825013467738625203244320822600420100111778850737963494464431538952949127212872863249073084013229480236434411287645609638420782942820071195278365479100247224207853846541041305922551959273032793021898985241732496122357681744091196423074099699066613347552568410341711420910462277071539263313467022992853165199044700358866668476473555430229364730544508337324462779116150598900627805228390506733037797121111295717640869103857434039182346413479453190307288231430070463860599527905988837026947344401339682217623842534894988269815633676529247716224038222165238889632970462047643990814311857157158177063054123290133025759717315404011796560335618824009326175381876732425186932271221590201620081142193383263659552945893785480372437618222361593429470798935062865901803363535312543133116578875776668537963565855073732950901551265810661942498659446864726330400244155319006596718457034734765787992251130558300100110944549386640542382887789431667025172625891923184725540900864301122654016487403615555725354767361338179729429504701350529181140973012859131299837667830302622887510438522777239559655927786145888096447148317794360657288289306199700937953806703880613203604649255734830538548858013646478461291774440549585207169603434437342477485637992901042857117103807254603719489615734280018842453913009126471661527675109105199426134320745766126683713095970413546532252030728573381994919071987514998191222378669040430046509548583540194444525775282006403179432690836242067121513142120038659367057851067588508992219374933000025790609371462324970026346989363983804181604056490143898856173333944978254485726356475039772971694355777870363323055894274331299685362263473975376006701020840702350586606264536589169653486897871738650357225283813514985004369082982924029787810127096416525353081116143326316733209389031319868864386581913430572067726604189423377542150169592135914356725097087949102378304920585426959592962676840673817267012669658777262578652885467736467449664251514685879398572523852736716195867270450228711751611103812745872974906257105849878624324643345717286700678020570304020585533384919232320823333919226442708147529782993872709223614452823562517380288680806886428758849148921086432757192853305536882877455860130885134173621720506235913590272811097020324844390785932615101215599948541486074648562219607575065141769350148013402437498427217421508370119555198779402754462584442981604166904931563643832797130100081441312897702599809878597832114507282387580860759507357113130599582094549710164213395194917288275603791660425733185980879814009995653104082719376602556530274705751302532332565534000686787703196636622925040041725839648150415116902055459905763038241717575759115860283906628898180229127857995884564486337816491499377795249994554060055611090657244468349933372771152753199588547854893401268044980753268628560698524081331204119012553620179987955278592077758661303144866269915547831540877108627521175356261685995061535074613358916105034010408276535433198422073201985412577714426296278377324170226468185615617679705265427604750170050908789800714988517604943098491372787308861861269837542891053462227943277718283311347057903235830068714458655566487472785521278172500580331307052632283983382098971219642511946657251065056954757185366558334649568453022816201953062573085489888719779560451943068796709966642886810325570016410732621717961454104245918947131178849025573315978440829820121662859699831564810490665626320217365697571900269500480729647600018031722684487157449974789688142209751242152887583182547129088386772542335916692487303761756619586504003468823572144134889740521236206376025598390925055453056213012241973666082498450729334247701199311501282641093415881459669233234996092068758388184902990641689564674813570242856458630237566878073307815621943026516283677532059929418483777272781360984613956209682485636204593785629179389229736206514793585108019501920717034977435843655010514708762598065848506633325083426650027595611234844780165847195458816317108431779765865374671609045318716106827144937948041163874807072751715080227412173512951125978503205143048912819959817239673498943904071498943155094903474046508664908217342996241000739613461112044113390993276449573982466999014745502518202964068909729794043314016640986912802076719194390140934212494614863081620274169194496271319812082237825999466589620628445623872560879182271279214662760316525362064220707092448070857142332492905609687892504085468525605772872226100219995056402920961054190557483542325671499469569816464536845041228180678306669533763556634342179801036458140850690444132075469139025620469511138394996837609203353062441313788980424980874578440075726051553774288245976464863444134062950112487624909493804249482149807653693389238390751624327737590665845938714689365609888707593929782486953285554949977056463270256369916367273241097640411222761943772386323295021423915997955729681458245416312402294967783988702559621509889500038983864048516497384031836141245974437331330331264279783300809162571708811031524550343056830004956780040041282056238594971172224970391562371890283648843305470950732179264905144609847716133288166847813303331960665569525111419052539256143159237846824743865826457992589237705182692786145733601185171656871849322363453224542872607014846845737584110815375795740138860184162766079142650312964276956175769110461569266638599834998101452088506484002720815669235324338093356552564688904012486687417856612408481887594046070996593005943296358913719910105547101033280340203851391443245649387053239277702199629418419040861413900791823331482300520331485903130492514332003295287577791746445959325578008981755242825915346242449686241924395329400198829690177170820013596864214951461224663347236572982487582920524285945342962146304586663820160911743979565947919216520015317596432081733008106131582929965147861468948868567134719220582625611708765701279275777506442043652358428703318083490066280839695296167181131899973461394171796174376350560938403796963834803907033185527071477472214433626878483373418116258527194818891746374553547768630755478973718049767304423340542324806042937589750438980976689201547163678764127056092183856666138504825571249468479626898726876382028757770164168452134390997532566422487273439035309899379913180944955172321515014188422173294514759945850398031464278292328588344603247833795228702544931124758521048666867029554116666176966944760799606541565878045136210132325320782499022886175090487124450876066595046871542007746970119598788632690923391936636041658007391760585664370489106128326581623828171175248443392980131148280293885482768512670207972133414857534653186856292227978226345564902951022388621306547494185706188052231062199573057722241974501826881322265087739052679028421087437644320059328986059711411122163281554142891995011258336792251345018083182079078747520851904340511166972075999604364709231166474564890343955479398611307735139599094084789592954722252053007661468854941247637625924851351851094199642668860736849836376476279876419415303248085588437514414277276676108914783930973160952484519759631656264883163375405744646023534499268689100718289581205042158956687395725875735483694769312770566641730950711517392956462082299390536415743599276647646245829317191363761012463369757051647304072923002493380149898703393667682373187921103113011225286020241015806994239591678072696891694234103083768159835663153256650756368991173197223764927753399823837145046092128174446971689063033582348817719257711295420031066757646879282348824659295133818181394912849631614810005463862781325679144550311928429830652260748242023709740136186824289616919810849879487979272425909112069454476518477719731977274743698681719589370166162811106418857264713003454301048062844570516433111939907088052714655026290358464179772407282695581000906434486154206068830412801608343932775114432574003000776895012704402415102887187127376110274078219052438863752637890564992163189951593479376669646588106264090966390182061681221007879170819975980537860864211043344570016331314863302442403508683242708588565840686219532729842346475333846158892049781904305295804636000187557621718757925126065536822977014523293823259053150610545382784895483606194466499354849428531778282428899454253369605152303252907584434444352975995594445606635202309329163267150924766511360006022075613867200769969038479571103895689834387058077161479695197426115770064968899668551552003968583771234616445056982694424654446561130246323986621228099140046349772413007612596864454948279553764711313911574327730405552661617041535300951595649861265064740889748896506466160864333228329971714065750452133279774367587217807931170740933796900803648887772028005260723163128133008813229111100050878984916146376201528324545143254893296461388269702862914594912038997204231561822258802795606652331208988866246160370370094987162255249696089777553878534935592215095769852709075401081934439744051276579852034081118195568407147906383391567198123197369346629140931779895600899477611677195200661332058917899250045627102180063032381845205065569120924051405357269546289663086913165669091786969969892410813998760557540186212350518807564278984108702425085572439124792635647762225660526605420864375371872260154653487535299695118376545000280185870978746268739140239875333832260780506286435469848405679666171137349213077772947854993885051093855299214877288820188040995402066617331910456996752568014656048632246689118410727423205630484048886312425959987979318527959654629498953967108232591286807235370793490856147183245534029322123762166777543188318281600906786745083102357725293444776202149336015257337628540328363047377980147748953746002265015800461177150935560992087518039603084150441144210880867655413642163905764075732619909367510677649617871232150298263879293220653665845459595586298514694999176570048282150230598922577031068348505443472721023409693656077584889446164835325076797622431584751844331193104447350680017641368637365678412520693731894258386296528540018299749670611409548944216591933780410277634993855758863032176279895988800683545467341503358899273769819936106810681127884175261478633908670808690449057437758600282758755073723928590312616598490869615575939482410224726241160112129091973550603197460954887668219922775715155560879599048843145263942648756744116181795297713858901884014217671277020383211322274986865204283940045102339111955237809751690127372080147680307583783097179205236372717233567865702439451308351820299826352186394815405549072465995162020400803251309043301258385296237571291352523869076213303003568033973155430707100609066144341355296220444887782925927492670231870990028137673722657624779015621122195474900551004931331061720776660223096978006858916566204073356696855898625033818799917972421553753845236891845375711186841164479947625510078939414306187244925650376485484006955006481988381313056219757864544374810481428667899893046183616127358280090695090370385579376129057461504929321446754535756142350032748268890089687805965442855319670901131074195216709247685616821236011507214415477766887017015938789878121049115941427805537206800434326680599598827240805561414007810645307842068680030794725319295134569656296268763704270667195265000319617095699446606003946006308211796594975468457420619513407353334666022614396199798044542163882793658806328526249234460474894167001496654344896115412178221708998187316443250228050961177728148563868295263280186112920293388384601589521888957005882931145915485562176111947330473885690491252231659961289095095197631835016279020908760908206774962245708562600740213902530665770027335266237406201459423000642946452714591278528381964452328111969130687127991277443667757900844882325917125482453444061031640941206446338100895486456198686879269934223440062474918738005706883154393085388929780498471940552342607176090871076095851679193847656162256453598721518952705383594341954279972136785012404116429866066836185808129551618202129198142090627914512595791518693088362196582246341098596280517737113099134264030525712522075191427536920306289380509459532815877455963604979833424178012801297076246329605402415878282598605090120913561252271026643534006098629343664018653594648387650024647854491269011359805879329556887338324555270292180580048603940702303379955933169833427611356284175247929981611691543305303396985698554999959162393247806118168948870947435346100487930247940438357579994422745281868608381342057257019259103491076184496505954955349466651485744902237856199890536580741128513260536931487923773139042780484373313708881669876125836063025997699246144487426451681618519109670287926169433522881580633301857285816023580476771231323259582125739784581333307268129933517285255721906856413019304891857362109899342031747018750148985908643758297505629554310717095597489234527609276428921249661146489635773121281466886164571904336812865706518071654092451313349933295196280923398866752576744535793126177668552133452946762873289105193368222273983112677101922056481005053434530196329738930809011771427221088547411348220901810295121699185176061871106171650469373421550526138325260952080444791858380995446467681856136272228539130373324848704890914280842050054102600291139612994731885927518444191710519583972420747278020485633760438053217981552644882981134293539824280217411741842724919601604846446380544817825241748311012622370076877761766129289082748408357584798578959035491304039202465207837457131297957984564244034760915541604515109321705025917018120499540043990338538823762660048337292778091863236617577474816854537737082960480414530332935509972519066587903301940275340578151339619301967085110736097943017258551647475770032647771062995055552182692097243766528540260087135557585706611393066271273740545992948722098823618083076592152142201373334665616367107444843168092055277632793700506827767308357277573310142046700728042278118837039573786648928821606247897818362711679788716410434984721454858819309304592219831261966469229663679279226349196916566758465549370877535725796941370462427570060205367605256739151551796674800076739665667572823820068342147508299914662487633230790039788025962461840374265336607284347809916025610776021592032371986143191655753660110960355206643355806371030581492755160434532692753730834819293711670902477711008122860453882610286665102681935690802536748393597887937587510457009222010374257219064498350617465024547170359803027937184418938287434470598474485243050360666022400277048077223609926644151153588394351179061309382298281101701846716014801215455589970247821917539109518124142036038120469026030892102632001479447018652664440008466758469067649558109575433072605357735471257794144086631468068932672557451012243815168013832955548462729850594848673212828288526984507616493642079191845910892784082929765064399739166234714024441371069816501578873818800900215640319586996469501012077908024649242914437898063872837354623687566007284183684136056606025553138035582633361649672577150530751290266462512408703343134197267084751675067124164644134388344382118562551011118932267987882354889668150708208444580719420628064665480916949683675483274858586976492758559375009016503808922597633075908785683502089880160612449984064153696450367606383141471138717601690077536349032726133628464653966417425015666420585476403963375314592425604036679004194796294462015720022134988414173539703214561440198842882482831649966740330505765140827077617468267896524860188671549695410392378755666427701621133915421398378462226360076170274269311937982362333426481361765569561553970239738504254224227636816448052879440959041094932133895762936036463187987006968524486782301889740021302595409602324085251810167351079079039277112682047455936805095380131017765366994526034273157329465886096755977573230372455460004121192368189102357084637589565746667842133134342145957106105684605552183969219448765205171294762250753006099130509383190258251789993643490038388973492520719463235193202711026300332252557455103955490691667344074361511959443064971952972982238345942141782313805024092212304998445874680631841848173187062690232492526367583980070527087163467581039463897128830005086663485552533271080047210959903143853855983619897242221350644802524917966639599249079772319014504006045559483663187557548527273051058262760070663711042856048745017667539774614160637745233059500009510565944181207001079835394694095311685110978829546299114751060202830953746564220710401754503760010002247189021425812458725153097992379485755684701474503039648491481322314535386810268763706428180213337662245619619661925135458320194857440680749864176858846687662197124855096471718480107561112953200958859243774834456608206844312210165849168760093909511809559105161934355724669445925051870013784178548768843239936035961172089812871769067579570774436286195502443279671566198583272716903209691482468357188438564950810528759971845749720141180613602015235745879754465647368668159242849589420179093947816812886055400194726605203276987422266697792677289022224771711955664702110843895279641635401380025193043013826019034223194494268977006911477524125215343719214835755221089813037356318144975189753886160877362703306074094971999215803381468346425747610140869291788526584451892707228825028266730249120278394945489079739845786290746713609503777436083011175015322421235434223912928545019283780633254649003141555962664736871582707569889859202829022124311994360611176396455246547830932573565566454467797455262170843760318471011073977974947011520827890609781631623767637125246403517847101593076360940963009733872404415509616016248902339846660758525572494069167623473633060591348798861490918500369849476556136461135876939653699810439167402015506071441999506068764173077720692979255194605573526186830955019692004657282061577870493249124991739235144810801095299596658887051301998592536804110906995935645053983895985463553981651188429021362424638222770503210392615592771421622174196744218327200271036732035854264563433432937463054763669581213653613538983310053946220792460549610172267043348917873942557898517819327139557477068041841414456905339368423868575204272562534990273629768685615495659990499306158123261485328072589868923014185198307515125870881372528342475748360465346168599890014984422355013602358387202530466069691132408661049955272550474292339829889174643630166188051660670003565451900263963233650773542307531308665493604869638197103793463897627451942679395779907251991040234067355470948588690987260407307666391438313327953867412698925203700966752930189353562439725258379990462985617079438377840507708304037589991649830063932965890797778053497067662784269254318622497546255094883989225657569455741792057227384979665833773392640313041524309102385354738829094514566556888535021279771522950351011614845406011420141989748244160275547484077480929532289751769975876286782422402130605735914071387253731594841937077723312197900688776274331603423300633689949937121659979552604137985731244460646835233669283081356336802628111975766736841771392784270434844427356167414808825913697941255753417189441768732115074753072872880878704538801166707183781071730166506080214356896799689667188002003202460987243717908837544599709666868608935724955625481575718835737195171440856679378952902778570452493623762327238847044703558233163590309418513450154151992283424100848902303659380816406840780843340264598725666252277872393177487628854681656742719344609208936484467411209149504892178393266400376097028024609089911878217304871123896579935516009379440501410196409372841365420684904075167072451603988236516138107194726228733354049669492027187876417028188430625844821212034999954847586077778741027764266096805998901300523077860027246480388876353923142611011029564449808893349767553547258857278503885402407607008591917749937107740462580853563873063309121649656998664100518054398934957310836808611865680790221496409834084485081802245801873979552933208466630980283920174401682701231948955397172751383662220617202756015248603005152152596768528999946452923147906078658451587997821260918795261656967291102566863874525304240261875549711626247274273731378496144721170496577699000869390627381732944209174272786332329263500948809828086049245030383936612190215782174005469714295901582067882766241242639453687281530240382120503040202399694487393242934317480495850495614467375969770952314576225431415495427628992214257997483142108868826390129130019418275943799324727518418586758207634319516702969343920177819955648923971711756595288648759533118224624317323318368122533731714357952073770729947459727969640705119527226616801593859060381746995691817783485640410283849228736373162434102903233300196848156317318885782017636075049457092121908781800719890440047213155523278411894232104426119213884302420773988261123849616037695205429327808421496318796803574474946269346211476784765250155752769136571391342177585967019329142091844870548046726637436197508509976273268188876854002157278541393112001247900285683747246172400755765915055971642041074396233886736130830407524873610827863545543081339680561539130750684833613873314452763860194188328503409793975825713720202172473585780544848161812178391801566539172124162805678576070470700512484919924308929456829649389225485488739500922413925838512134694463575990213757648224985716031863259237798088864492007465446126802376386147514082733971803273826475855093091426372826460762123573179119332644884840992275241681338539458191495896532503190427249303665072602353676944740204400111572534522958460267467254117800645661088691467127242967193437624763708267704866011521229182545862678701841053468148604455906909696119277777068802183524901581056614861550429112468505115934183012904830667948042673203849141070369308815174856093968159302747453933102011882751249212277347929823816811288027849141731708691307981878164768824075012749685809135509178615803471287330062082041267632507311497472805944718882781320427534641206001477934596770871357488186608070215907264207202277138282999791413924065415752577597064761124152137646335750053896575362345631609919223757172700284711858904644927709934956791505422648485982245091626249257070343417000809376901344534410586096681617045974111714210374619240011213909152676745738367263552207816644573454861072725302166065715527399077041369034839294387523871937440708872901491651340180133726012453040008502330846294384102750944883380181359785227717443900190457126609030716796693891061875036025862147478281925578580814280149833597000290048198127464003014628286868623095655342051592438931699833747971907076433200542964296158832731394482825024686692451199777807433823564598283567078488440073100341193099192138961619128916578734180284485324119267131114161411667814416683435419711896449144963231556369083943977590566503431558256746714171975209466339418470968714965521723887744108351766067566425891455108142398600152951417112539761834520025209168985535520476777543109040988478904494584540005151499954672297229595105333088184911697117454220024782454031442904874165093648889146591549272400107016381729637509723650066297171967974167343405273129707829206542153149474369128456107508973875782978032829797016965488153382028688915496621061749636433000299520222844411389739538687643571618845963933798185963925911556558308021452553288421417288140534826406896683248884727475448755999632601915654257717830202380011195070184467134735453521041898607081006235957937686844226780086852378043394012453158429489309561320648561109932682641907216016469581176986129371020889070939825900415141136972801498802586995083596487697668245971738122897006819038899844437683107859780853270962105043849926462981523463760580265396034268523584611730845680877201425546056277157413997369211638107136811430618595967596789182645428105711311706659316374090850884139034521098587534280958356026740071889381201492594343364974775369995951790626510807500705763496965809256792997663282482937141259368489361846307012485715035715923366207751843289359667095790716687971020773352325650263870768932476417958245645829873312422097194577358254214957225368892056190823755706204559640434637913023371685986732498392843249487735251701296118128229238609425714087345506270027499262159248559924858919111358221568917214333259763359032636296280880745763939937792831848720888834019235703087463640470421910465051312186211354124081226142936211443458107997096971810680692947309565620038345157092680433137331331237446831062212336534946289756770665937596413135258097366425499318487853543796918495484146979776514045045877739098973198026626081030655504646429818541012319081241912188256766158943228323534075982076826674064128599540632709889945108012963265842717914626318304349444564300124311498006429329650890307986067055084575883517894830270972727181593807663801356809964054654039310510079722973878796899443206543836705792065005298539441164477576742186293479377291821772294600734268468357731102191467522497803051642432532617660441533625638384384502780094941246374935301149480714187449581684869527557972793661672732264077841537054217718162887043135895809852672882455096059692141753445891841663955802269086723615004595195894063760126672321273902009540222223182599329232382400336153812378186874753591677464816702495923731976830505402526484641597279769624394113499223043422222425274922064851488640129157496630382728538981946288677322344594193408915668073878551377753636959247681945661666463468036769101896538110987952742771677820069200265605517086223737288379380013839026069714818815653935412858936782391404200115739667092986045518158329611548699930017196133650321007744382788601293564326637655727063709418809184784602671218570289167928437525086369376458786153036791468417669651718860142832136005890515948881308496360087714818230339263137005359713027805261885563669551798894811883910710336924826226461174305800373601372551812516801228321809753040415284659723132104061764279727766743740945140219643476282826481745248970658321484955367173096207487785612498685175718167183548752111413640265457087629143715951359860603471870085094458736282164210655609394986665164133099635734469434363880462544406279729791488834352847890479155422746719290822369757495824567305755418613328541759521922835271281642824224952622149253799260919250548326819781609111133481969063433950361338615301394750063509677677251933511035932254023855163269651584284833715262701532070786763769323526341100137235833671823400791967435670701474574899849375800167473781201179323843959136831553310832376766802359863326496711652279648784412831891322634472710182051127589065855688694457216835780783213789241717050385417537748175323964355644667265281569230307449469653175653972497083716774269992525858554519478406875864653972258521229087361007150608085653176723058347866191805181610732019691115698331524860568061343532298248645518943688344349293928653500171675663160593548663845662350456465567965394053504371350461818754934317248695855397557404859491161698645660253088092777112198866457108707456381932699953279735420468042828647914934889591738175937391634995154847189450716126705064704570376910915166704080274660622781120889505432868557813219990808757830288108933760050443360997927544081269476269514485548302091087648686127440613895946346755121033948049591493435057592540461096052088311975409605402693826696891875186894079013610739587039115679355432073612248344425808755414698982905849498031470783027756854570439397998668157206443672463495545109321977969035516190101852416386979743597590936990656529039546260593052903875233007947944179344399299019960179634096308219130479279171092370473097125818529701614959787983131000827202457106308642075241042057919757417898256893024196673130239937747523057795591745641026371324209427184381791997644760990127088902805082560961974132703135888891879738247321940224836308143843280335594188675129127702719493594469962983839287808705519158800808541445892854162495967504000061256092410722975674317388960074818576794216706141449151190892755138679283467608843480522327031128796851779327782060904161994633201323712366576238334212749832483844961325459302031353576454906117394821745808401609195299404691807226823723507798752460829198309552516080392938118837686764168105605039454604418172973128035645301522741239162040096440199898172372349694777439288202948137123194066074633504558936730071910335201498957143368285562989619142034366469186013841717290908846836684832880633251684350184326141094898410057213087959478028649987935128155499721813300456843567761108129223376364132459527166474261501884284672813040556928589672262388755283931491381273621179934633356023579221204973192408486701984227535965487274532859591876040615845927646413984928236272231556425172772404810686868996683849980868402425403053008211029224346175613484068024474715260996459947439479197687633717304379979913434722501557799095523818069987341288820708331818320705423025121067213555814064718341982070106895638825452158639604027015813470148728623607063993462027727948519583616197858341847817035401094444137480126088762928183149590797050805521296062927065358369330491763162262372397745543472359913698013769622986050568308085009571899357095445354543125100633337155330396151169819209377398369768422475501354055613312630067371039810194230753876766427512433061160147143630985725016048532122468905814246809093955239852152475148955163780946267678429220902266752086905661742899122435689984045867530633239436663906614195895155411513416290621818356956581433557697554464186345423370786350049281772176768234747355505206052469585615661528432610022703540772682054709739765656228903799468744592584246737139962854058210461659083002096750554476389615389176839708142707703682097115501770706748473982894085222068000167451916925738969186378459108021870118794829432641512426761767381472438449678929087966199884576674135704832141356107275766667215648168868185951288315728095809758760700619469461604313409510919266573809697835246812473451433303033681142510702227878910930668715894128308297497214019744506183309340466925453917214566638139164566313353049098235756001589358662147005490532368248973403840795267994649221647943058743299307943440311636858428942993644721237800267391560965987493255522411239527971085683671490389214215793920065787404180361978961528740503704170059500501036496171460900165732787965352985134391587636737115131099543902683300715915203028407420147424488172282982820002640505969932699910528819735830522914386327468853760797375620880106267724770829712044163287940037789001584437905395440795324656207005924212605948714266973132165839212813633893813020211850784603980174945028364629764982750924305504507988396214200137287983407074738999706502930235291823337417084057724771748304781317364099750164689861612427681053516210340818157868828478772006257748529088799520301137231434430755268277160580376095902371812658649091297719032405510760550318746390972093277204852665847315910439602615312756730936685863371192888237595584306761013222378127992243309942185195909466547222719534081966527593846159052385082041820867482901768647784392813584819238054065272725858427655623410614024799079774823700589498377440497417484597539256712058265806770574598323151984161690646405527717301315022850108400325429787019548351959407889480291947361465219636553352693711761268274315346378244053678041109443107562887928803634641602403116775029416421874249309303970019567692552313226396943867976097806252183909306056287574064763533694851231731233124589366928932206003117199991854834364992379026891389035231440377249758171867509896007966847571102772100975217343927350291599125286976827017937662368934498163333062904478195620261926639950947276201426459032760147311330489434532388694958865710470386733536447990802476368036569269890073280615992545059146201914555475012329188747991507200547705465371043651031782719359200314912387752734524637452045328487368195250700611325581708933285689817093613267178040371096551360354553211178566055889224219428733844364336020213359393129690646080205418345095621258982104847789266477840229628656781536666134929160770691656965453756013266739012818160208997477401121715325952934055330153044018910562577647173403878674844109099062205306764741240107310896343765763061274772650770705860104037054501020943261765071232915531545535006746527347099971041531220754165656792858712419844062394218998431982085789005226409346284504439243809167766676575969180959827660675179478383901092670287305768702570220042019893194265975051291956999039161957633620205600652131633088821051601718547827761017704565042178459800423415938295322314971817660899025773157006359077998355539689439179254248500122039847257751309765995787947901659538913889197175610708104831627587420970055419904805931649605541303683639128558138357788965031483696552899147093189165236690114130086276796740945219804789380961565122521709946455970811675924203951291940962333672474788129329355137651216939959377686677175479617694409610868419561369403494464980611785695810343701453420122785747556334837833705771293372219675575760406758609110706036648592661641891615110607665137019022249258579086304116221725261319616447382313720116891827417343128958290360577081004515338691719520398479045470940338349544435140257905584597434098356564202615801357354865772793407795794756683760012227722879167685292611589919784536830671023844713753119175056789738966898089298590318392238735898680118965154091698992180623723334635113600462992027025991810278504614482547240892127262877929407063317847673458666247245466067949853215768635958541609243026783427512463314267571828591985007118927370072474216094429993476239105349513791018661546640299615943487518151020054589031585281011733988109989762197219388340696263945765470760030334683238611507622685436760056430789636835860292883129322711110531547351732183402116165672286725975367623590919139490986898917585072949191960192279132523664452453179690037453071976976139271423466444305240906840427833537007282828663038831714046976534233728976245247883585251605232353425177339236985381274283154312127961843417516315091382229205429274568896727539939561087966507621485546489115528181436511611051973015199556133282762605655190601609960409307865057758018758340406818327262308057873418237843862922812831749891979094846467150096254310405467551678531748320903734964490654143577214677330012073299303807779171914479260625082610289315573745617072907937279841038716758482526350235381526361278187789616247242595806635699834288827357744919655553875302522462905749151059251545070721402321653128700077325704760773013943953401540203466974522167167517541847141541064107537464648247090208982807385116044534517817366384612139916881289601467645226902770052025484401216148546006183279079937388909507036969433532480633843951856014961448954193943809015585802048385870258944101703183584095235459289164022304818715440333344917738779196469712590866557570836869437146746790462259639621906680123186435084967136654175606974807863370553553551475177222239162340717839528001654316843968138029943802772821919965634703947575972868493521940670180097157460170312630244919141266368742894655293003864089662176734060456154779599462455911256021136653169116691087218783228376702938201529247117553415606080660620193749482871814364495444693891395252729705183133806374264783016635177575048271151713701135781395234591715544225157084927597137290707586160704207510803500509278567165474934918225482939528438101623309328715882205505399622015704372638123845368206609232255180124921978429912991545730345697643675875162202306018808341312595289608854616725932886334851956819249543097906161800539547321736495737272422866543749080588943508453201670650059338701215703298777939099197498143935539843400520227150059401372678421392937405789090067458901490276932066201930393706040734097464241228791143080677003047818613860223466221957416052062873801119160323676008902303997349466739808187330777162763343015457152093138246219459594205950923471467332568686007507070434696951768148794447668151794813660823324226281619127912110003088333621537261884341127057708598930060928531661131818152184240363938502192012222234346159340739395679489860892903840435100377771451996806675782518279746781485986325601983755728742651370724806196386287917694636600391363781313981351550664923851034825003431231550925448096884487063962378795499170420129934537053534018380372961276878959724894253330406661762524134877003781082602230967369345433343596253794084189531375247299844413897260941571848323326141236145622199256425289460295879686837706752086373458435906619716057024486867431482793033078823928909808211240957112101307248109200622875215714895042034370350470570321354997609101503538363133425112261927058818589756267681136905366903391771617604644490616521267415157500013401531678153258841101329629205448964855861069387117872949678873086654484600584724706192577389275086481163932163337644060217209188332944004524317937621674172041014437275068599179514479122459251727452895812152559229661117639981685616054091478933611590747390223084266471319525689928078089527683932230431151740109059661285482730481496162573714920123220940626061921417637074918259152605396354857975577977619132682300765289002699672801840470714340618532350773117240794349357171046096550586100020980450330963855751201838886005752790909031439850431549325864242370369000360686812901804474715405282010399000598113328132162640470799645697640913497681485802416676449827704980250460814316934010625716895848753833729283205314283025230419917962802867413954795684019766172764087545934408304799946450937148433285689790555661449658088683003647558174119551315651966105413936417153790087959431418905423539545003120361116354822896173514303999113357492280065249601572414563226712439987601437143825388802366742708337435468785031171811451718648650464349020282689456305365340930638918678217367345803768492808619596169523998519652461936821777896037790159586833147257686428660273466621848008983717974838050595023188204013024315048608305271467792521198232239439815813218380130776475180886383081574973404804673727313979022844760958490429485004816973124704769812211720022478288228803576182051834371475011150540212959795387106789532873574409400391708162292986768799817114527705352142530114977373690100627051545107699184169304803117643316883455334855522870409749769109152089646267999612362137717899736314389258211422849775021572846826796953973221731887624248285366286888974559324641804277019123714278899738940836633618131206223905071676667398806371393658153285968323789757666036742308867730040035205660769846833369865857035755258485394499710604109943198094558830884445158359307284744552512804714141355974512365444024519619396050684604406726766066662496721733706906888085385959624273200605131101192807457661568267407785853903346025251779262614196936449368142385973612539418681666521376834689709595491590970927938482079136828315761828904557761669398036302904795865142705309258242759256231563287217016116742272798110751883010371225829037259269966124931016826904190483283599284192292606888484328770291373730699156002707449041448695425536005625468922773497016416371544414090481475436567223958339029479731796024511436900746699975852588311675036627904298745558428412285180524209745973567785606089537798347585436862259902818587767263963560720790995496625610623899729447701178131245998162229895338215185847420605414050499450373834962352043230326806481033424383884923476786888070205106564688707062912521902275103339062764767472259273205140559026338741514407610999840334750060183522558354153747524627481789304341289045112913549566974064085233025291919585087954684095352073391830945040904566313215562525411798213300348529361113476718787014108609689618843971457242511038041645320523801382113055860141569831373636350802566162060727045613915202821937518748352082566029686472008080350973840963175153166907099635200628315490927910025410103831170779704567213727145365844858703401025247606594117778475240168704332522422019150581668254717907520865004837262468298630417769859398281828003523292453741944467593544206109630133292894680883908985235443245844403568156486972077565682474762170827707994842503570766969465731276990181976692385486208385591414693176498686648979863800660611045948019192323974560474494427012886350025465333114871742723383268608293868325965455074283298802340023664368654118548968544684574242837012321279723268841865505187385565657815647418677484038298625740601036585431746095461707058469342409954228370520221214178770412208622231956735190755484141195268362613977222692217495443310024526873025188695224974618205365919945501805481929288033147803375688049998803665348761093245567612892679954811522886743514332033526579231747439809978028810861320732056811734647913694822250925544918107431941221160183945172473739794420010618694015850419187074752452076592002499118697524480208947026706396968503358936989260005712794886610851105504569469368010173274632875640387200393851161487148425228735856853417901446627728474450416609820369910468709564673465164919804442640197575870857093154057570384717910651847520012593899000972323897512697462774417845557362443536402060612173757877019259814265508858296660596249206411172698617036389520161781502606675633267571010234211642301082911285983494733839423281027431400264223911912223935390536698431766549827794518375388868411512173813930185822433841891937925738848509282394592101681565542936065226777171033039400062657581224617069804450002387992501066442307827050826181406449406104461806953001084936806902870477661741796870404995065048330722087176819504995381180669106466671679274220016598296917747756650325898601969989629271851750093828121439567007942871367606864204795954856942315436104496927113854756028209880487009386999040478602742579373052726211291725053972888278031834193531932375314798388082146369008200666452387718256534357438286312349628917235442791020444581236766693350498228854513875509856577061237412597752665994742811118055783400418463938291161362864395247736456174782824225977910782287273395763373967809867048517215067677253362221991965768150587114329258745776979931050181400880552518562301562412118364710919712068148587862658596105776856195228427285195870631021997256454535559036686826190525965952827055084194278870852300158212509228387001790407767206249207013235267281273542651508663527911897704581424075278822046434688401424789401774367735193409232422554501668397674347562795165672098318176704782025566170206488662439067092099795876216715327393650570407554134423227984250723708486993645610330862114713067592289019566810272414692854405499009807530938390753958444236254933059599220225474995559177588195207435877556069720267490944491703041514649017374236206238324577403046198858021915980493530071644511899674079463924714547049343594250654608417390143662486131406076599992894841202498497094139784447295195750202037839969796799911206337570703449825457381357125696546161095315177428420690147308690977096386164935215933096864216174166254194332659796595824034197000150773425841315923944544841708913438188104380861068242846558228926527297433642147331369145383903326307616939914664224213745711845064788908957969403066778390193934214904088180372642910634337433386888986611179074628392559689384156315520142638568068544728735328776707418807828574271166651046688719549153883367638040242591726421908481078450284228626129471364581041567041372487049081291155198297145006923494084104796212724104589384229063113761655392760548285800171874059293511145694300859783569040307823745374753319166602311040677174700815237584082296712663984743409947710865171050927845777748450174780491508525520932924397759179051593202001164108356515091130094564972841737098127454705406356660132735414819568203866114399372750139431543840938966576472383198361285691018916723344834650405470872657802572527619356712393079648736520295850705584065326061583175539431686030063739743045595457858282431848431935568590924875257235560192873372747189772003365001477138910915357582453302655304238921417939226257097465619862491986619353625549917332722316667508311661655577457942909098969579680383618735607962670859194585562909343146192919262369565826409721120654750701026769821417140037591556185223743280475958759776332940091687983139550573378164524585297711815681461792791702232759650962093284007526572661471053868195509702075931689876409594813286706877930230371784548395318258041901641678254926802334144276562864043149336916485913575197512749016642357327052576024354251018274250464276887686152610267818803369977386206618882145104284682264381600955565187002889249880721313669827329145855802296676710288472881674092938752907724841175642200943695052845427353156693185092886562177079875197240197353469170797343534861500906619513583606012073789689940881460829322556033635424310367177942760793308888206912114636544411968516613039304136002123576601626927794572472177768890529116983425412859076743825197999505189247266323152429078300980845706449468669697893779602720592073150764207870413875392746007830067860823831168615031652169294322826475423115053644401074380336037121327370042586773369588998339926551116205411739685080879905577682650887629320099769139876664471640576457398941781821333709690292472822214740951605423591987378769888616101301266756610323689274750047160284268308038957100275232529170980140261231033520414837517057570919294409450884242944070937153862666075140544113769308816957843015561204601590587279862338952095015813612541516076350192234232633635223615342580875588678363297511950482736910115257481350480637419306868531650292138132198735775603580247629707313036585804684727778474161231015749743066403234318287595674034089651515424647496036463987062703428799399570521893149690103696877333090670710337894121832844666810716977835643912069612139578124660555579917221497934729009930656069197388897358442047348099456872172010118855842359872004814423934958751115986559128508110717187444505354049286443468835293234545637732188239291798615114606820697006601781905604671828356400375848575328148961562856032255846867645290740716326354460122336398004754593407288696574337671724027124974456772214417296108387214252613468540161770647573151144385227946934223374096733947317943407885472987537057241313734755379829086901286556730886401585019173476317055476263257081838377383094090263595760888901950854010013977081592032315675680173101397116695064037546080716824032385702860052943858320707070715820154671279584493634239439277274225024568941334513596985509998098087559663223821675997925587202698134019850833279824924278372764034673449688388299878248857937469120492416770843661502308216454522256496056697915707172943548245423185528982438251010554013471344048453921154563529251584243623805386560503407404325104146863023592697918645349550927682164117272016025492292933032263658088951361211023175337090704197912395413726440402202353500843849459577130240386751877663926404354702301129565345037111355663947240879722778958429087251337015526350435137246310355177348270690523921051616050232790229952742475633188901793604409199138088385173428929363197208122835973277854645416452899745521046468186086032081611557527321523358678416349929449996732403133421623958249146368319314402696300601523493829187379498723008853864683879244559535793413626746328232223167163932699910162061275121651807310070247282474280750738235985336184500054888261114297079701303525776983328215507620665134241999703528765400729469890329821378782983488032154644239579486292035662666812260531590998099529442441107933457923490288044916499223559170845338905354338366063312626435303176268576927550703035394508910492700604871294350634491145167323130790557212127407773397979506358924518777124594283946704895619714899601794522332351060749486873068301712195553520696789582675169229013831167048754132459863384628022659416686143402081055128694817669217086732808875069819035714408587684354621643434533774542202312290996610668904547492135259810941135731944204753527136954961266128998506673062594312945385658214843662507188892345421473956545455783713860183179395848590768500636816439751673440353418220565217480501394150169414848661672504588862168569399317787049550287614381217921582017048708656369519902636215055313502403381943554377791910807333070078785000412882451270621806978040201018019960538169343772273871478651467724284946873764155560244379453998897786076760378943717021206429787071623424193285484853175648962960751793580059713148770503385092386237218204500464618433960290133197827608637495413431867937872190480550383121448391129599224538780974456250084030513010269456512296634949115612438267026637803008077624840720360925121292698174322156255223500621268116852772023738666255796436964883399248389532143653991554076237902435594427174574245908884029573014024817265474650242952142972762957500392483832688577118331681496724586249500394265975367389614008636841099468629079303347336875610025560758919442979033921420626197275648695002318219098938372341332010161341746986398216024208591207118845158171898539134733610847112600835386221648983117716879286076564849018676453149170355735050501315567875403233404227174374684261051057827989123060715437834910175858413636222309137105850919914485783911609889345207991197181949409049988664615630025598859082308831120231257019201259871383799483185492207508102619669056970942458478861029801981606195520523353485482065917399590504146686240581419834401653474734938478183282012633055730182172683340029258667036086147884952537147774732708098719963430614682821730550969156640490105649154221535470322013982812716179544526408383965422592382477627054163528432003437880506577225984895719712461984372766104431522735118994843030226702706463478453682213449215686740780461837427343245530335327844412566482804570239127124551643920409579777646636301842459210520535863850589544124744180138563194131960935212192963214712101908092756010055811540217825271380811431515232060353754965433184646570651292031710746300080707326045246908819816667010791554706495790664952960346962537853969298697940704290872654464581204004118741519589109933393041314848840066702935097665040234211255943448328438403036338954689651850593249894016018773614801409506310695917486766570451230169944030890205819602629864586029423614807344649575234393226568715642733965529960622068791170005327899472530639368735283694290337399871508810850016798535898200977435545300512273948650044372898845690392638408354588318545178792200158509615754333758411329304011066057021674825434697701864218123778265256720684405860612192767608954987953778617680349280550908250660044906813087327604737579354722324962577116729956545981190183948141446121207418252307145596072157323760246951232495294579638033853571768074737685555763166117454372351820267993014756176799410480115271745536108059754648630420021802316852687386053453076157332154854906092064453724543696951002604528574939383889544126561746379354248017907630379730833147040690676481831595949876361381456203394914264080790179424593188873797557014555014736071562024968869472954342924146267829383471750106315568155246818734780275143905448268383143131138844993165273397714692048063574267468479970718197504717265039195345738827061099394491136895973852705963578379958293728156715460977115713232371335770622065980708722198378806030342930445197821830129768095031983594828163438194506501409450405700821878976593773963793161048917146697771823969930837719351515651368713454507275811215006306378600568754153371893357683326462632876187163544396609173528249746784104326285252688339465120729215555022242268285068039345507290532901905895797738174421028446908286851097410318166535450730897423967687900513813747360841397830829845567733518996076050332304030576506263251582010537215585737819406564193534965147818842257473088347469590743053209603450543066311080458629247594611714809325518814233554363879949739041999952296864065246922200227508192450900651813144993940624197465158984345412123972287150772885028083140629873801954573537249433155272007588584605001794592652220935689016207242690950498467601510077638195209504946265830560222081812802515383351694553979233714922318492805978187735299341859486485769406311582508627323216960160536619770788440678176367558850679969755099731953421853051336842218458814050537990817032011079743918698109990754262294975661161751089960593573114961596476703656357400757351808261264691538151239638841805102400987407194791446737003950216433261363535901930270741641384591675114895168765009763918092435765881705175850042414301711040767725580647663302740735794521412380673040917721628754002296493743378451843028690709556163077882383078650113789342996085848483985037781572497503697673102591052022421064716777532072956070530055466222116524010000719285370693418490950804590908617719549367366633721557567630329679827184960399846002190434812855353567168487402238528292133273643618950719259975541649279544177477107407239456821815424774203555963804681574723051556910705502021175185074850769240781683531093744515237452594100378773150162999078361803921889903708206494194712457784597597732648750278929721684584804349730202227116166119965731259895592082052164768337965181603572383182040736334381416786963623033591437513464292676426502222220689643092956635975368570588139281988658128811807028969209085344113274239884869535847659157218313287486337533729169863488689676765258807080626758199401097789698121174214527395127084957649199276658068742666749431915036632438717604888918425536058941282096556903933823835814720221114515429110090479516191945363862614795270433197153409209364545747423137148766723381173200022835461424345590981333320351963398384086292700669155144371877454070652217094726970968806698960630450749725032241150128179582543496482857386348523948766179510760527741956235949511963718588161477767481381259314644021572633459470941808777680360431722872761883199506563361060334365474470707288927766051063282922220000804554417224564582217181382886260739565537101841056263856750038206078099729701694404586200024583410983892062415699880258885271990144939082750602376498720354373216515465224362692714466725446963653892364274159369962465775754409754762545863964657713186080050169334018206137865226563538273753857714416857415345644343940784079086157792001920514582832728407982649340031907483242909155599699978307936291080875966282629559526300937982513962775541398606955481472916434036526648804044114321045329775630510474720396197005123216778952190340651334980925357662233098024647594800008849731241532905437136552323148322816795008383471578575867102268911469301548615781396432922508545580462753712941231819544646370371152008612036028140266192855152327131036830981736764896771231030209898943301923625452720964175124748113868373953336289403844876182813502544923037189638950498882189795453570304286476761446289522415698042506415069518181966834676193715042595835822159830685909051895040265203050774004545390323345994572370843314108372972898156282992607444240679628166819756076576800025314047079328548575218939760729580369190994166304443616564486895734494065321523982170123761417858487669400794688433781849412719574484104167288198667657446819881775239309519480472110418312049319676419227006698788869322444131653639538464096594810155854230367560525545477288909258192696161493394231182462668823936681384403178523679362246271890096886570172286790385731771139067658426052553483693982008240124606752111919232883674344710357492994170433801068234846244721332643469076336053627010556035852901532078636913518528232558628251595218125779294708210729751044136910404817442875973852924981447205325307673734827456919301531359869418489740305402373519574991489047608815718325968255378291969213933395315233037514643972529379446036679294685051903439053611784996990585225488543985331545471649980274226220583429420780352531586706798205843019331227998838192455269121197917993261956627547133102257093503841803146406688130549828774939050219255846871012759616321151270833490095839915796555497127941410031555463776068110803924464039069417979488286809242457120709858600984795372721180476057219473982203966196370799583762388975812899631476662530990259347453554114322095306005314309265312822738257152110007004542216366283593259076421489615820320830671999583023666159519661940324299871024776560935489466910242768970480089641768880381244036087384970758112295014596067385942727258849691921859417272163619691430654519558528922895809880569723425354125308401218209371103024711446317501405634939773754841491939261917729629588433376054175669750621039858084266516857702587907023456496250728930720646716910800836171533144866875299042260119150281870166259460548470367694201795893556177751561221246858546214068051853556659749900517075244919208455051793667872038388842626560474223955393637836863715557864684090392971359840213305945508633830427522881883237074471541332656180786681106238233469227130326364493000071096903097243366296891456072456444171356115704058967976245937985119594880846900489640483487442838026071169189395368700974362422600544755002319547162949606289843407081588300636319289818990939784006713568392485015871700363134752384363645622301042181850983336158702499049260222988213218487543553432499115777065211283228733015961973913638378153158139932782328953534922438441127293500285739372665136264174530496554173017027158165868053975530672043974975175968776220773781298477774843738096058306054691156276453959843042974276184256933288426597786463448705084523742225624783733218376001095291116890273632524377072591511640966491761813938589351938944757256282997796377473439598489373527151910141851491809692272641953964675172698053976775306647094112332854697607580252851654973382845673373761706713360314277104677735787302668384492216206978513916279549985216647223689342738270666483054037500585223817735032017798803852626551973078069007872430245221146609134121808523804493811380530557685058772090488633435417077685922773283448098473080270425275122896253519501493659881201709356131226003291795743221085975245042272955912624168504944880520865139053857642864408517853283883222394048889424026123928517171978545767476067404459552616979729938251660400416455573222044372718199030005931065413268085612738646036434257397524803946922601158182317122716052638404464387510597783435616794909872662169623591540207107060464242007371111225250509927158895815058002426906382919589308213086203257655130623067636662657525154869367278138221952093892551862936240868957451964382205277321763190226106461478450387840271675236406810347746101438972206381823450470840599299058250886120050857789175596815644155290375654139308140220982513991117857472034201070733597619809560677676281873410056175483646097532315748523152073992283477467895059346852323998469269231641202620504308727446655393595082601182046331049692052622693489381403370994761521581498088365310413101544044922742411308666791855663451259911785031198605044982417268022269867629002578975415951051983578924964591889134530042109649187385815858831579758105459061283854263451793258369243422924617176540318277903926066326420210797558964531732225751248061366549503108778782106732768570924891673423747034524183111002389683572697514836857479094807188463048763253938851146081006192259494470595036171048248846432741370230409048871241852921799756725736695547528148774845232753611385513615568299594817161379948313700331092827017600379900587698808637813740618909922502801618000472622619067339607760746297121131921797403240111126322669015337199042507340654141287056400363567317953570454581762023825644264708079002596311435842065085299038105673823845468599168012353649952671201956090637902307971383389420367763191148486050517688500046045082683348988257787567311040111191816068994850295641875231702226307821198613550525246956037735115348935331923311770298612593092880655382726047283018657606526222613526786517324976533963454927251288097814378461723563226488156013713592468006423160405459234407765151575655066572741533777942839374545340792545755273703637561891507731290789024228666447011181419711111613910230560136309171835943217015706783573249630672200106289398470238932739247332219656510137168478585565188070979288471709755769479991694758986908451230532301890323987761053338798521328160784151629002391731341953388952167688544298354517763679647032232872179047213731502347378228818681644312203878411112159795188593224008877625714687739106756400476692787715965088418806797104790345216301093901463830799266862960416922773630286328020996977275725471605999443967614982140363495813466774159655242592056234640927069858840819711067200097211778967555599611283173824830959071311910608985285329070568813616997018066307595942323787751399241254648084175543321570438659824395709883515263351872732819397197127350837574300841579459731484385177659681058933724771812852050190410761874624219711377367430238201308662906044352618889693314110136328069298562483943296160713952983442769605779834479560483240441604133701989945279818388410974284267542195789059459326460969746941820325267694564619086385624131727935798794312458566156413316058207375805630991806506595473607861548511642127041207771776322605034445861720850677149270958978613160723519718261352794717881183812568859104049884353169107604414122721989178843377605631470174476544728656325905070253204103673047390437712915184684389695801265497467307447997698848946197543391506158366310519666917185011251569770973066209720686347817197624514080978010560126306327638684562207922835456367968679749935594244394568390501057631936695724082403375232283315310148133980215148241176278940332392718284809631650328420048536799894902536811851900613142286292667403882397773169746816647049639072249886925810250941293807856014519683234220024017319544742228964004301903077290452307383531259062717227376381836639390377056892982690137062737256226547207845712488635820290433743548997079872102471504106646509674818859812348745797665989473078145940686744334382739686904057212253600638792939696805832668889677754623349661895383297481873947309453863124032027353961479470189869441670501943007957623287428065288760345772616433555279783845365448455587945371195974652534317261996801084843941135655156445200034352563914931487425970838617081369496573828343023822754277794348608168465549609341797016267135874174417059129942975397171378966787943291439356365165513720218997190411402490902050914609641507525127433894666233090445384408263227324348640644004618646560097096972344004331984477866786943946154363581507303685481131203233435828156932128254472568328813888120518641699759764764865021100482644552757945722230967804182785425669901568030290315078751358031931850210292155005567850540508187526446343468628204581553267871398283319193790132542622952784358860360360127645935552807832373051126688608455992467787529019482032405873330354380827278009703985924421497534275525629492194985041695490063044197862307394039543946500621225165000607573788010273130925268946569246042968624323284635787926088829375015110680020992981212015978597727839470087445641482273975646003079698131752154063879545161801879597090431647961488350665549864456138606233450007998104562361450281359163443552719050567117464962833470734337407059723046593573846175129021215528957708641943239302912229529191877411017179578846907794422233094519719035752295377987795418108508837946435854054422787950364520076236495190380818206702709214111652930853890684650480204037615544985611940544257110074484101809008650766313329153646605284841304154193945640061068837783930665230818378380977911974616238375575478472004593141897554106849940693960573040617578558689882535394815910443118245050458264449148852852841142412070789751504829834871314235823839010754404271330131408699549916746345543996627597937160737490611112007479021171770047792239619658512694825482320816378214901037113347677146657510865744308290503511012940711430352550878748245129560272380199548066152517298135765053520158228105169983805669184231870399519814028860078758173370852394601886324181255729847641040392944239550901329918594585926173125206669992648455375603008484715933542221879961063119374715387876965065315953330917045761552660174580870816708301665509482336986630300420174561659531368472104443293401616094832119436872934002972051379740093701620485456312411671718405984779431928305736499332009455471342101004307683923010983181682723079131556675097922052798474887469645015951769802991473191317726511163206233416185594268157500597021103967067236071110526606798995941463832072097659467348413555068985562897107245477961973930619982297008871798806196195629939859387044532703321195360678432596189981332565000244437548593447973980354401664136780157160803948636520444973432187856036784073195482370655027224461941560478610820129411544555315062814543849748771228919871643248821560489315982175874388069849597373169402687725108249393483948213959375774361848614414918409188028420918019387315615293087585666823834352479188043995735098795943834965236714506059925637524324503306185952187927908242625477115848381042635702438063076132059539520277094330364768021201586386790323384246583012668530709715440504265480576502467708946773428732145132212224212241499530049115967509302327538228118178531136674364434484534976381847418904912355369997682118827959541652621566754574133793925795098788138700617408131950097007494989596703465336381138241452833555679749986148700537845997864619496769472843073661498097832500903428285757019528035266138665976224144303187699364684980686651341968097562057098999172685701862977976112604104795241143970599267687363724518517877007543013165191189901114085860770800451155163504222341970097596099882743647814177876666900708698786023657892120558549585233929428922491171305413359631746340177009114507168235310767700758997667824331750988251943478174455614652309057670163607183854974086418454131405472595980725871369830806394762646475968038783626255633722573861768005195670982724382653793999573938877425522316247899507705179902795598947650686916796751058671780623241683888217511527036882250125153644597405412625700884812310542188178031031707388263158579606845005920172741739601177345211305700070892339445111511571204522782255123784307576957393759634223693916303241012800064489785600317337056425598065742538828390984464904472666618520560173808606246429244008527971869401511877290483722479455716780354727255554137663419790537212404956128514388842508899100774370029925705255320189719503244536753451125035879094158458243823725420583357812628403458595039504393891085877018983793972259199998138959677580411929525592091749141042564087363409989012748619895213258007216747092288600404917795284192088917114160182419210554571529188884449059942520954196526302145421717748590707100861264146196812859020090400524984327976297344643527913595544710119945474684294702179848932013254392494576312631008498850892566938128101642704135519430450491457397837229526025533872117932048007029972854074581269362202076655471536042681740205605447595307710309961773238493903224959010289475657767356698655782203649902641375871022069320322674671955150257662183040949105397632295376083930524399653634532750812262949582024645168227926980710917576934584679302724984295783011723023100596590161209221202628961145016122645229694749291144216695924629094954695173576722231034427900695234777155595231490393999041262670720097068168339860368496329745573192917661925815319000575049293158156365461863876167501535665628041706950865665043266503134759452473939059259685893135195397836859206818692566209666536140439806372453903965223381026222023666910625467254146164882988946186689123904624409046176174818886189799253223014207269004922581501422977481963259291867597481170772491678509155887506618112754942008653528651957293202260425646926653483755394115374739549766628542612539292239885913342147519983390873103035359788749834654550079656188131179581941396235438718363139307545346361783475517983804754135888697479029597114782582471061825818435632367938003315056494047181790230644042765426142417711350799543251541485457608774573988986195701094644994021501362885366985572373291375978753815188653458700454845854223799566717390661787714695568301139258648783127384593196595323195418805520166771415156220514503840098842280059326310480657423065059860812884923708543086444538504001431791501903321752580057023944979157389624039814548083326661614494916739703507900998505765065446937424094850751835904993640193302582728996399023348506088743811040826056447742670009258552868208449840656698280291970033258782525410636368088214630937943384084056994068672001058082240730739078535065853240884690700662964727496255153956333754602894387957314655411730947768085332580197324430438052072001004134838134067992453201043760698415313007531538251310861151462625107316457294710851506971393456529037853221938019731320000809509812395318756671714062387317233936065791942894313400827804661206903266268750098612898702561783870456482493037346112627259731426184196520743863304550529827824511897498569514011839233306052950663893685707052701940076956068781658448096205061415862538815018855996319550647655492662457439732139744348433901041316070455396129816160204577512821133576954932273659456689473048653194588638870166605532077148784840826992123048581301976086587211884279972499620708199194908482139280188132377384245536532743548845556029846974335509560533373355515116303679478259129915992976016711399471657903721793781386339276100560414712670038697985396612442494793450343613439108875451321691521194211415377316368785940927876316093544351590813977180879728516728502635181379825939185480472767138025794736486434746153372935914211529885399833755194625001054034384752491297612860170747558394466879812256542532936891227791668171951305554941851676885294529211207221398751946306854872448386981913333608050405136063995624764642250795054201218647199263895911653834827107122558862746605598891768590989445233826787263917487289876547225226204664244882818257773768388868630304975681845101596292726767293455574342688096479717440783489373563994322725423847744290846683990165486066497918207130475808296591311004302757530908507684818636250277651972246396342468534921904540673634834109636280922810043423416450363698946701165524016682940132799099144366121959617857194858552550927646997147754531310042461970784545515348815292096241509079016715226093921616656866897274412949192217533640886332478690694128191140471824572804509922083396974435242105454872720533866353847493367702377947743351892559168950184101270148021144990210282562524182168657130057562776936543370351201769390718215654725830396729564118477359076747514071455037775947386637788431498010956001183011696228056525122863795962701147829046596904938378622182804236254881433801504641334767566762540259061084754367347298707806085522932393197867833110940673560313728310650551413886062641145949853559330327433987693621797350048343227471194507772169943237091738527586550463005923202392595603691217428788641246780625524102330030292683738176430965256205801323414581215925666615487986548603544574309793966822356387402016002880614985800324232563537938448337853289514150469940651979669109799742343571465276183826540277099622309970813238214793792653582893524001983679091263309880660876358679637826492056757330303869545188623865549182003470199464634766191855302798089380054437979899394944991434870450018907378222872737230339737347489268861662271176990113932053992132698821198190452635892268040463129214981191609525059457061749997807303600618269962521471064485688259747522308215023527391710164640497710697146168446991346262317004467283051521695853916085641179944110344394153057544131372850736205451935296153994731154391790302818138045185896316090777035947018901308886601656789097273197064532949382697369259324784990273272965897635912557020069465177328552801731244454846841210945700003722670607450700744907329653287805078430173879467806192110748554913473338196863068033895904178570342321333956101300603287545079410376794264877629843815402155142117169542020886467721573025206248599670828972263472663727824814847642665350894909504734798660478690027329270802912881360796295484136546856553717984226728622919501747726996017331152938602696908597828382375664646052949915496395977947965937101223325707477554397328245112995599726360486330201183374643680192551180090964419055875794501493072364195074129920888754598127855163259109922489688185032225522262336390662824995072072118293918130805357594284405958692275832911255862961126794712172901076880137674301432027671931422777850704793522275109674673959875987021375414455518194953728629550028324674999895311551899080323112444703828166699891065087937462278457175871163295879022421072741674694343926365846834363607758427152867122422175784311523836947782123085474009133827249307329014754884772190208430515449286309107144446228819404603067841747423191105405806423596570241757608738261661395725021275547780500618716334880235290503381339816303474911869590578779997909128229217183428909427163790713214878562073639831080045131549892517722709225684248148627853961016692106070116259683609001148690838729736467188857627985054868295791392484256490244834832136558744705066566198735166227683893916621367983628559390509941295394123262074068315065175419339269180258585468103363710188295155526561990304861580492838995515583534859608497956522411969886406667317007971884911018686083245209476205749975157085624766236413767010460376806300514054043487677014988368694643755337484073876647920333138252397875353132809151883450127383926220244561131801473023983633476084810387879422451083610809744510047364578154043156891843196907894328584061602246551902566528245234027880772448489989482421627014914329543690419052841744494291192035133938029086144794259915025381342998785902174642077913941960290444868332311223442198351005540970654256854422755317918893550336132649597986732447704219710108322860506635381445630453403835722620660673113890444951294382361022650637524283358666617356868100514079025460984628669511442641635951256211156542127874843456327696500983499554290990455761760361790904342704853484120084944811431023172742508522357367924677537023641261335208983949964458489255173891014554519451816226483412489101388489529714183962424580407275648849329017215905699263296225736031698041459733575134653972923491314925468621911253859305400358759813021409050610454963347778412968710573736634626486424140263094083270311937031583463728916575374568226259987284999358839597594634687692957689934384752666016321667116311851667586492757110014756435561254971893457843055755149328993952281327210607624107047452032694555790264265948342780299809638144978584623688008438845640862169111583084010592016824693501184407608728943853358483612016111335948967847928257348341067724970099387573914495235385101234856863611138368411155767573831358772649636374250488556933950918701786406383432828121312446153746854658592445616014241297823006549482197708223271595092611283637283208486666029228646969315958943685014399626098807354206775375716267950989341290588507733647773067217522403916496398171887187068410445869028913326965862416044530680483576266502819051937075090634048784168862842805102127488597959269978173608807838984891159643008267601221926661047468509478990111996042014816175276602764402157061355563454203080964698609271208248949019904615705082054891252788960517516980812364313529915755553773315643674209831056526165352819682057050699818100041310514617295932738203450566232810381491177660721432181710427371198067013165143986749732803181487424774667892229346753599143338778445566899840500098919785102526884060475435412270121416352614469872752054010825988203493600467572397258555298662173384991404764652719397032045587918640841204793365627260126719732407659453095195704255359797959185320688740043417130094972728008809127600794501397871621467278808559610908996608195993506499520122746205374103616021108872106720885295673350970889403365853082527412365131618503453978460838147072427072217794721990758730234322767790463766459094494291193343968197743568695579129091281837318754020392086579756111730136669370534921522720964062497171725740990068015521695645364065379688377656881248544376558023357842960738022951202950240397737082837521447553370154706167431457297193839778408921889376287781357323862908866966837541805106634779400185325571266114497518354895131167363536893668695585857323139678491364416054537848852047088043030880790502011764608979411814136496075339132514508932012612476664852635101460413777544517984824410101090926695539359506094225608589660214649503028080766580717146791584876432591886200833372916835980961533251345552874216422954487404053278195934741273924673166148682328897062396285934808846746144838589626161011471223730745052680026505148114912745938220187436421682233907485144079139093302202772126822672596576717131191141601245088140114464938373489098324409092653482855990112377484095514625864604487025389493166886187545546996289116868692523235664707090428592003775071261172282445140248311043603801704267154862109868739932379512708654586524418131182802680279675167812747220004932784382031612236119067562446885442536439438828510960858649054020088497079200274166085506897340302269579581827091732461804381957010819418923148342964963636063281088224051877191260344111885529797586919535667167385244602588569287359735704343367433775239768301967171107852273457546169250661936219245600505464863107185467981881860207534487699304324012746549120871178217148135124503882850237155923417279541289244563950062463725364325726542110211685375415091784458826447171151323798206588722831885993957273493497258396512023050764209264575228788689641053063785906865394469815698404057652925283291488937540642342716038717195094755201720728741772963732871741686189097264643039673457827392520446719590101905530678973116872506395956823131394697807994958968998133899127757800854128328965442529902465933738344990659161702432064984256455006693209420732399134281547372279710469014637445573696880892470003951279157751444774776526905474724367690052521790045755262955022047601399703554723332968375086635509760338281428826824575296142334143614345490579113387003782770822523374034310839312699843700058586068865006018954057821351825819171791106276513958929609200161789058033375830566843154764897119433540211717554182643004408737651752310518396832182526623561514102100874169006435797737946085432858474672376083502714313947698170843090375357420553007000089704257787767009203954856781836885465088338510740513558676993270414926775869263425539041280132893911493299387374119334359190966422731972032640428042230971300666650925355757484081731632835717671633645028628584191909146379520714434282693346078574953321969007826152827286614604666826526034082585597561444097952140299297621748500329609984638357239656612393948868430301212253626569280650874368330151440342500260623477624787575220270669362323551055801304235081355517847069402485393592394502346978388098215208517165251406295230326367254890246991393936131345026655303038862216408077369833555878969105187185129469881495222634242621504668614121780665803341799840878602358270761341884801106336431730878719480033314156547529452502070451269643752565706090613097586633889637677867661096011920999634909104105342897229332301604106840318008852694360685585557602050244007419669169729760814354483277112899710413293719722151823961224524658373318107846576567722800370894171526956909493033453015746425894598267020253606141267435638633738492682865163849882047588597838573089275748544120190379920321124166024167315220041634727894068008560935484878210279941206641455419991753741831355713037048528398446987360792102272975487653113254760621238605317071162373803278592946845976050191848909154493164766113767974849741215544405480598663077972820613952193934315565218628484982907934494930659545695515344020828050169943323970982330956871176945647696337327151786716638555687269862461730089970079834729648054660788831173990198929143434448199583510412261733780972785802958454479455218874362496532834770612874609910678506857546206160780411794269845421062621605161766255137422909347428916273343935975862191859229309599978050800660796022164909382406552467959477856279319076188530254931592296342779288759394229605144559350343335304151590014683751333453962729644045225541047557536624227122099430609376824253563107278333107852728496716955142391031472456236394365430082801626162391552522151060140424959253065614408153631773264247169980271659202144884032572130985165487899923237020552406990812770080925419549994615999253241888342425417069572604358745343332578426690067666504763106106329385307157321134635406981342773390518532387565443374659066076107668240780312543708939633897680394600057660097863274259883096871548911906267467858105479352055019605197543222045316062052943435268950959876096600471200896297980411764367424109099214711532495904035877012721782085872403017247144098857855642394487657654504897019731507430041922449986221330736157605135926399168468437851947293915788338493258430612384900009988731191318829261244408856391863360334579834751676892351503228296208863380840943409581729178626373890902181082522633348188762067781654160362303072051729172376939948504112637745462488180698688102779186840350405294491263459010455420853137244519831788399220046545083167590797115071614535785250585504141617639731447483968484668328702754651451977390851175376824036413596957703291869280973654154136161981914223353286650797926460339816015687888864994815983269546009388501823918928380233592839063595998004477310712775931469593131882918543457422794698468762168697009244230479765741277656464461976594536276015769589196731565951483417904747208949196626393627229960873759843786227914070544276135684911993613562535030813762733522891161222426068501775854566427573049728063146200929785229362002567764072837604739734237134909318833324505325396957399167223211209385855565236398235043525022959786530580108489768936531780831636508289008959230059971437029010281385124157611673275326617014743208519355937236312187750086412697353061507784395624554850197307156194275576929081403495741833065636521643739929471203873696300592483511836485617637927154108191540703453468952269804351246257388312829589996450407452901519023375945094651742718097350317013518693818124140574884970770071145019778587789966440860093722954031680157731828343150785042628444357825874498654852522771089280284016081231725834936495644623376490580514600290431821639288432962023521391065148208430435013943451323763083731431679420848510162421678864300811781784379112583120203647065980819868851240138822018884866553605451255735189908762971235889383277182212999148786333259836321890706777840145162126583387326686760072209112951561450034381061419323606263128165042351684063015006362875504855775103462492580253374078688505142973342714744859451482960747309471623856188112887831000711141887377334782233327982192019387603106349140822555357596588328160083502360992774871225179799056579490088299741599425884875617158545523647468244921923673389422693922617741571041695756517248746004666963437235591016566890727158989855726718502911572747543748439687708333056023242619120965278735402380611274689656412256172848910964633270118767503864628882070992946106521807157183649194960743422470525614000253596406839529280282476359128268061035176103162800766198617917291155112105658791076190447044968570325615326086460487043201574294031772464439394806536795095577123337566871058692863539000655296509803110815837882097179465049695798209686205503907812731090169427445841809437357377337652479980562359896050649150103390662532497640674903112164054628153139695176000297166858428319106282511325360274436426696996708562401931180269378929981265854290784980706516334431043051971496952879782397108967733472739549807092510329107539081526897536890682353592665360578248762677391873562201347901405299367019877757636383121689383222915224192364876259854334227136815719720718668836063874694608577499195842980400385206395445953884584766667740783391854385584902047158733133265790365184483092624696822963643818022893069561581967675367570921916784640681202002370822802440032750243101090916116355139792103184640244551379367764420095900266620776111320379267897701836520969656698593521829984216350465195465937339711848633307682090936812678265496037327542084754980758733659954661857731159964715316138717059641556627240894081340244609756733434842863164856658853972998177484741205465079723362130663019188313809746874970371584046594067243528834175641141339801737231067778181293323800810980264808440029086662969376637113140626030193096995661844002887080803542901947818544380217539547294967445588863662701819797093209780314455104976009612068981406718282213480662405094949139220586809832465553349762320930272680507522956327153992011723732535339778142799190994688562684263552866390577224011745072274656858638113915839163546357044233186973754310867308542728830841071386076221255717448402410553132838779027143827619625575979191866509223842144252890453178119157829488037886698464051066944568626229396438137438466718994959027619000527298356643675546697570281568946371635101057006503876462188530413408056240566074979405755348863909845359867947984199258500241307863044799830417107742096908149326053849984891233478525472109891832150859924798824655384969048444134964541941442673217445264879380347187775603415070937047270506500671771156419361713392811092843328917169335213449407346224385939317709902669396091834338571566212775173776791392900995669759634826939532552767348652854738535914694110326294741058714062385523827911210312294791431636567614548854697343953235362446275469890320501515516527835634804339733244694592090249594500271950971183474683186760797509272465203086939891062918793117792542088104631738692884735758794673353858116621703813703260058608207299943329268668721721055832685044345779470977891161314381463313379458773718629561442351779516968803073280384528168534021559741397391385480118722630515162514336354493337037140443639751355968121765298366907356663859906855334455149945770945314984882852927800444675621698613236937412870569742176522784880082436894536771857878315080661032262695416529363577638731246621767254079033467161431906697841916347499648757939267148173087242377713107686520714623843911912188426593535065549106380878446272478785211351823533055972374697951369193975117318593829025515000896080515852232075502413827872734087030174956773235666995231209029308797655369736679827073520461714729251972058628241867555937112563752791028605166196489164480474663426292002908896550369704003073144553197023697773006194861787528003798269095638483637907908720782853781384965046906225667152999928003224178190682336750483471014448212743245232802804766995602846979677465779829448758517503915518412777464790446459309641518659807002083003904101013757322790229754366895316415435188750769517045781975878227929436234237760944172020799536973509330542457654979133884141043701263199277967531968307362926373165326072040859337121805657169865032492427909491193150419413038155914123565388958175859166182537763049324298882871586662783916205389121610495438054601035525257283090530519077609914943965573519706322432497087235858136789188378602502848180393169449482720165054954666465549325044039827556631224758827031831300186115766463670618997452540650365557975491138458925254951210775443822993121225838532225598155201091417984985986051266650898623023640002900690379037544522106595330309351307491069568094252400614530343285752577869457812255459800036171867382165120895603983404001095735343513084838076605407134323594785309820739857592724540344922245176786854635720230277639837621601449083553332339297955302180615586665769298084034199726874177183879502243079827080232863272033807168850525000806627946237244803373587524113114329652693238590017632004687541179240314649626983583717131176032850118703476355736048738767964861295779620097249009835153108992763251132065656326971393528732043956554512467701546914203169849105790865006751410911433250144106999128078574433120316559072272042653239960491882206754632382194312979533364788966265115426202300201915700871439703969959665583043060180207401689135370936221163277601427066818676276328998354594949032552696993937253193054186490289081288078317974395329092791705642574806472536233016122039798608291770892298065051255108236032872285807632001117923547885897844680152013753420950896542268456025839983815415638439845315588037887432310260897997569391253684005552962237338006029839105118529780770647961988990608764702277043786607597982927818496687981672244213584847745932264292926057541162736095159518398787869281597224271857137739614072226552416255747952782939610073586420422142365217979660135515369640474597856593614461456416807348221663924247331708671031171836054876521323599525707518703910872422573649130427629801223791589106266143945081514330127200444247349999502484543633985946964385848356417085970089240942177797281330150833888424641080513175518702587630178072881251549043016261211379684031886004711076474021985943961289501421953916398236255217486924070815360721428944677806401668736432071419990089965514591922883850080113137498069385090954149423527413271814967563528223723317267104998539857308923502057663637672132210414299630823676221521992449785057601602731474386407414477353646397637661489577816156854397517348204070067491624745516743724145154725778637899207877730970354618985655434670364764292519628333889011753908047099231740508577635956438918177076737265662680803663617616685191648962842764018719514634488260246990068290098183363449913734336201616475141670647590007082521367245782332857918123269034655323927335645567724425737045160249955063772064742579203479762481750093078846320866208636345123032267023060107454666924109127009104742175137369546511613461568830612984006215757788015157068527616059300605840334858139423988631141439025843680194159646163680271277353411971930700959790174222682816738824004644144812072001465181058325118743983444987340059674675886091158893766228069799135411795378226866435230994416402707979845490753401721862067326808514402062307422320042877953483568288789509199312134586016534674149964700461708043015207286893946799435127737579831227482510446242913852482443552654851644928431710638087699661996978568667961635077388673348700142780545619260572495789095853346179054955935799519290867321437755330189323927320059210789097749729257162344886705273258762385751099300290369727717406519323360037164360780343491231052610185735893331436936357086494143206264433468379865427475363093830523645212423357004866829511772202692076322746979629973298029098365702696554071576872272453031855316439187358620297458163259211263592603192544171860731924489416815216528342058937844295351301882602064299256182654177207253557165429447041911387416679319652507052843190770127608916092318593498086054490371796942910388485668574616841789291130889462392259090124525092973550708007864610869439314593093055804528987681868354896685015321211055946271357594819960192510265072401548228291488890887941609612825185277128142108125200685738384924388879836605614583651826135820471738150676103106285712564367132079964003455200412937830840886051119840635222843638392840199884167790198626780218085964593218911448469130511906431398488016194389687256884325866016174992427865374806646765428788754262536694689783568598879398079632623311127340755646337260237619795518607164947768270426189727056480781336522361472232056383195396259453919329980631177200197505995186638568035196839547715857850047151133530258324620231179763082967152458461380840707697079438382539450404642158425685690186749061789629736290543982509748485031478151994159213327256090960863267775895332579063308204819435972526300710965465105327283942624061723081761760592260708129568325558993021034413219973162042541223651824351504450222314616712878465959153788220695235081418284468438594184515689737565766730601959488320762899337075938733974888099016824348186517028612112226605088107771038096720597207426217430180526896174135858506446485805797855849288740189066535777422594584313362646883502101827895482207307912176504097402575689752732321056061774530716761749069921842769628510219261310513139201377011422973084086865784218738028140634070802351548620143706272702512854572582690932177398268850693780564841215547653473540424007107540382785211788482978862430561537488744545747691781439350878997294043642467632931107448401683896665055815554841437419440360672308889658562572117686879367384552524346486342783030399212667509423751958452259061723777014138530964861865824367003631172705959378283460685354034293253190089247390554975976441572671741705144763137616981185637491930073822965031423271491889865722594113689461959973254565218268714830256844689885484340253785720786147030843340198145855734674838679074760993567110023304260868239943078314987970752766405544527630196023074675692918387109898838258175028684892611180160736462151203291184707239042230429666063542812383105189304265591467914033543439734014201424635943491487896238359079556439284326783958597035179752662754518004796048100993322783279068835804020003246227559421977735400872030146999949757126423310301554218070999865427934493405336024971011188604482998458742692123346139775823668263521113906042215582237603319669820731659852349798645765385837103769561919104853775018000998032934008042995517555035993453972190878990310796767040404332909109735686592367483717750615733468142348707129876894105112586165125985530719110328383714618634860758158155489763834670739427094648719804464892155072904151722691108971963352503649665801168834603830063888393113012080080520582711266368948589557665792473378770672503116019457477310326520691084787974972909758842762078337012372714351178018272961527340442603085165970449611394012057604793132310280057456215503610744066072709227010619024800306497328243307300331871170087053917549005280442097590041835030769989104615405259571151367546079045208363156729654735261508576605759578653343873350452106874500877901509775757816038999187608171240516658644433789148268174014121415069285156400498250387743607685869827257894098457250906062642199940189500468014860349301998046564770796437108640648482035982943811183484493014027961120401481150919716666083138712693602827914716157622147333434475026854111203920222447491896051923002224343561915672325799810237488124373717896253920388889220896427429111027667187586828081539944036253633435795436634916409641694841089400116189593864997076846755713478709859899569946697471941783967674958272723849573793037860109647162708690152506740017421029269958333307440748326396568336965894782982078038576239000396048013026483499090331626052016436721564232292892233937288394626707274202157113785181922378440038689429130510028674188454200005993266272658444919198365439885099189138412222008238886821906201048150559553227314753146959230115686915445380849025764304541151327939015500914389838982707490045454762105564841956292701681824473972866384255707617570310749426590812908423688216240754738179019872859266864997528529602163913389316067472728211941662356709856594161950041275218620975108384716379051595052191854345192446798947511228672077959807758129232811806408925526532638602124437968011196069537098821195109404764879907990238199595494364287572832407578141434788144989982908518938401052954528913684877881324095266861571961963933431185164640923729855165190979834522708594665569126277295938977916347080255696703275370612704910083866197715727978316790247764614920144622902613865008364122909455625749604703924428518854689720953277140715057603825150307842409136188423038076091937406575221631307224109619002028662684768478916438879293157257243966410533339853772042436296778289889996779352685986740850231156397199288663240707372187967955307187254113205337593499873014806752107397481302740686552436520110810715868811037758942881439027845053325837637949015238292761790704974114016446946309612763079937765693553779185294074856038747479468934963840866868414734444336141594155249617920408336615936939382293163365169050086921869781459537425101331378221622326606674621833111557617728236221359635860578930514469378482728084728303506452853798148449656322946155921846433443662016349608885150279678514510883942348355587273984770436707782813002407750734128499860057516919136953765675193872527687577086076421210959442694292831738595967500792427206286001192105269269548113114334174050767411319621857958020255954830794793781825066412272413077398569733853644927455432162880813192859936532271252633792045975129099853730673228381476439084241134045193646614333618158490036204853449188084163430809883833490228688198208007863019630962960075693690352772595823314678144211237754038293397711543108794390381751432744466283560137932761881318984409863046561995322541815854508331842372294147066550820743120536570101909939305986270472852195220310276606215200929416419033599365658252049464353605536454932475653316860638930165242436136206130672767789276799231671733227312606736413696503134362387702560011003321441729933749365804101731927361255116325731060159678785991387706468453793376237766528785661728340149647366774253154699889155263987597858904582443056602007636605966058826836249301736301662305481171355731980564047224080167384838541567377780760360966717228823240652192089963249746363233928317421768522729553304808459250374149256584906375966952451609058336010104988985742426456564863930201744384874829939239701580898268610239562079803859188165167036639969027689797507078814416924650137889917146176691559322878781413087167912879096533419646126312153622836618135598504132411732059285335151624120945095088546759447593894082082720299492599735028093264129945740977897498137211597824740575576595992352851300880477084818150211122843572525465079924922094901342883365950284466572594023237859693742089370828546750705620945216834093915806076516265498953638336794288770188312745369296280214340794256919347990603652746999033118862805886632535628204080631350955458841264780450221182421375448645448634495881362333391405514455829549829428500213005705889772996945973619029201329067366801882899101512166796473984051274836753546860333427378755858864837223589865342382913590783326545910833731262410566182041167410193535221204074462619822532091467083552589848868683269899648100541733349627750932688150871567599633405051341513346831529505821149724771190955130376214719335650100373857350012404515003022991662761332391123582887164842017623566338238016285307723105747397589067789694331855431006033539729302139601400485100731162250518770048110080933134160761092520918012527056589381034535258211543939138633438753245536308985489709438751462404366570271115871493352708405200582400744349629076716804860836809335129890774729561969714636091363293494801765848304732947034527233050675144779422238442482651737522349005142444175601654297877119060997445993465942090457235228359375002867930718842593283546057584487627326534167263445666909170969763375867833337906542296803969970435445675966557604530667239536654763643699189723588940209726762034030153284589926883700159844621850146610856484610341895423956824677963985042511635619911890446356453781680255361219244413196362863320592209639509974413661888772223264708597635089386146721642605258872882168502436505230110433010211394413000648828648714929656477087675055355646295297597523465079495826216506138889654483124083251127420310994845175548331693884745155099090036852021289209899606640179847497843790868033990787261298866933877174445344544487682215150518123016878791341013813350760166797368049072386282958004387768324671532204885797050463809005536961833819441392644168600582557918818780430727713355322575873498050624670368029946855794677025813081435757358887564994353962115408261147718148847238970875678047301058516788705768467306619046769219827971024107090369064045861597301203686353999117364068629356408163554906431824078707635336008799621733859975269693189382843607254210275493058593607868989076442456888665820730697821802483124504118571997506604555049366749905557775013864949639018605518004167090477670746379876389610029441300662998429835558857852158576727115581320965398501083926911684893809172811916384472732437005108342763750675390817719534242460460678059846592574740096762216398216411216972596879286930953468183017179699772570472288873948331570571407326132939241402449298638994011162817084814013868545828142382071943278826891532694832591073067272533690298213242425055474225344684643699121078677476612140483990503283196739343376936842588479917962333143292946351696505548187116923083742466515933246413382609998690139053785862820721965453217551785562871137444492877732159825962832056727762454446690979163921247470686960377799381402219392961609616492268134762276186896211416591005356056760794766065782225571591764271648520226123720265987336888925032535305472136202447270686004392264400872705338428343141101151229019033639737783563509141557224513159083304709958920056821796884098017408155267936536385182701606289381687082775591728775439106048107770487391203716456429811200281323061304448309605715971539939714040590671119016403871241243519091915887132728326192427303614701647508937572392465485578568865387415015181165138801332122390866618671335411832639490787149065862579151804715667954335749303755782925698558762057580413158030008283821655281645415722879196479881784584246912607310935259825339987594350017084107379382213780887503777834654108531759629791757858936005985615835724324194595388258462017969969305455133627186001272831927410778940654931655163278612828559109047527729867006386472316894943564294638432836012630525232101768187533744807856601738641465674144987854755189975655315158693166282597159672050597608498027187619319271319605009532562978904795404706826106657746202640308456210382008995774072804533330241840633816505422174344936327300717222823926768682149012231898619523270114928489976168825826668234059265822575689129339066635165803856571254148448333142973590461148190314913816219909063423020905206793755469108617875661428597855337898477439002019784712894588157864246159782176205868691167490633683679463689221343009376655127672981637188528151951767663779477590688363511814276439388947087255114967139406660291658678323681226399735821193056028385495801243103952508018287358475973505516205492069502418630556712188980375992714943344054111863842797762047342657937846851257730409357660063656920683446539234600765263205725763506333591851967350149891962999728953568734950761583689167725454726543221260129812893041796340365922199891588119151092859844802913731118846164041352811886602077396400525509533694549322564029500874989857142947725456567418470866040298774888658512680408604056063401576523676361702774017537399996433074703141609606978798713070724345524401553844663195249381268635989477705896798799081655780243533713098138693334861985081605456743078731729098672374257978107687475458517049036822302814728165044292562553203029950503820014698661543103645076463383429692225225312268118200327887903335236043644134507944710809111159671234039678006027830808429979097180336428738466669747988848094795940085889963991209883809745996495490294019155235236568734596845567804143561297138220035660977543129681327391915071255936933508431523368984745851333219016864730845314396260352850099325660593380194402241117679086011071165812028546671677687960632368237896471420783953607046809507599730155647694413771431338802252755893037131529134638944043458956351447881416468528968222415202475250450006699348406441104169686280021883106432225317346800094977489339877531277799176335521734035090506529185075908855254590987338702391710338601465961072300875489028495426895234766870046301542257402302225398071405985351605031379926879159337427759144195726430454663602685962328022990404852824996259931952544661072312004592192882236396496899680091721714066748406787436268488648598969766200335436976434314246736120768750168210403785534102886390605934400530654683057716193921621664788143685287703518341844338477723192156425854089109885247723150723549823600547322700858559051715670462091585427459955125361548659362525378679533223514365815491620561533958796235796187452101189986283585934983396182623047200301202021250982782682534783151592878134689949545631000569927290220399101856946760353754131430039277110066467256109598853408342921653431079386031293831390480597720520475327655091546047845617118395141384681788929744472941874130029350745865251184285932806668864656152418605683273863284138222880826304924942564491760191887589353626125745337117833041701015893710071632365360432144013125281459581868381543162470296210795319361541612984688647070335656193389972744320756009857226981950308926383049024696668980782159667904694426044412838842871857027329730433509577934886143201756315772905110652712233553652164553794439657047055833025978957690553375805067289642073859631106672415366533017464281257894395043742546812208557201859208315700711351510434323585394520810126956680102166234651167283084387028167189269256061730136506038475633487130044850144281862184822395409198378187349197763688709906919983408919155030265104565551773858181764046381189546755447984340779524918917553694244877908606909213947866544961751933044257051091635964052307980821829113822372273051276151617463726305716782078396886323944111208929660303193195496159849006481390240174522649118578997827500995072713913475830182836658249533866042600107410684863590889852777933578437225377479569170777371565440940211615507713296109305936448998478045759226482200368260350751283734794309827471534729774279021971473061864769957908451619765137255860591049386298752127596529182716701177664028457039215086446056488508761011391169088464781813913738319460009292925317635153998419999672347468156449667603776320507920683892801654942760807893833228105659102731079987856749464593076607837572310187580936873620023946227872272352408246257136337235600603941186078676122491483363633099763131810287312789652468720594600753415277116947993237706486215000519459542682945282303841326167677385566898005265391101419218670214380177814857837490455545740111239295577144595882414713351443807059155597215791675841973860348996620051398548690635656205789607927536310565583349634466637059581254003228012413156494639515266053494191761585372996526477000499405540842397472742492343404761162321987883596182077978698369159755821612474627394806647287961462884181567308176728369821720723853135699229464202432178607866163480620539919307661209829633129637732435681298862850828233725771724034485087150589817192677704599860206957362241355147782227204124084795103483578829331865472306780149983113146502986335276573359293448457319851061158435846176056684237619048353969167995176201437329279318600295260731516620448450977018752937624742635276120542131411942136352255349319108171143803380834904451645651105319973509900413680803575595006080976068971176339301612583270718052864615488459638567221009745268391127446368366767677803889663433260543551457988039575819079003581622866781753659086692528969795147739084869919951823694985115114816433302788336385911044521896142237615384375781606400727269846940550055846077820592159980119730645258892141677360498515675276096303876074248694702900211687948091894264574378214956306151652278036301522506666613969278255511844582928133286115043938846421862274536488929081199917999815879951751300439172395576750738709491167625124202964817116075927276883629043391873874758143762923857361113808259727528780075695174723942132506556662336098019444183012154202677996550239859787883671231063911867679995523941322006006952420314864260240836203392396575019681435853975956783840441070741574318173237046098534227107889944674874424036032274160460611868201944286717058676525383374735986756217028786367897370632316681117331929773304322284365985446080786306029300951301716621760770155966589379374847281875120620731391675059014027904169977700139539918308238893848960075283776984599237428996842034764121181429957119446752648983365169222774486706258782852498322850911192409980080456252966020122610598537461965114898640170384172719701557639054447337948820191965917202026174651422713931744670873236605645706207115706610975818529852159728658423259986036694128731225268035923148718791693951516419951332083049531651463491170678140550686636120644562784571317359521169872561457866545162155511692202986810827342890661346046466782423253178554942649044385612334304666950157665193348495393995228333771779533070328316169166661840747973834774395684382163619674251516531924851210454678232848175897124541895205146357693816136913499251737358878940774899824279972850188557821321971888574774889386273021357293288361000534022111146267654380100272672530317183457253929279502006395017632662926616188523546122391647307529218498112285926233789901318496211117280818640653562630134624715074715713589152454156194268171677099975192211843578196424288473617087133247168857640292105827337223090528208004754681230470555905754322550471237468264524349766284263180870254587005864238578038555665587099869163391884392426757903130521841364429315169838079017569548899494090932519560035821631854122350130036147968858902402934568694530464833350814076417100003637024549528597328974505991489250446707588270024760785736769252314294560459608185571629415800086364385748591790518267868205429838277351945526946767328099097800161575846656310117488567031388442732212365571212518036711324989709790989677180435959625160423191179373274023953119807759045569433160722335041470883709995791284637223588450543563767125567847430035571495603892540392575309972374854602244543372219142645536812184264148381724252714750225094095923045750674901292959149969129634673785527880727872352265770066354533173416359527099470730218615064041724331975480543896165503439465865384750465196668709496305147457526127077872707548700098122545888859308324595528602641269697191968535569505929570480791308694856046579573293228300813806501887852298098095598696445896325107468332586892088379488835714002796565021110365874626358875839999379804313728240712803759853599663323273610085498219107998717585958527589273722453837845160476147222166555270220391661062007653256244109641326081744216585695220549170783771183569942711664517406691502911352495271541871520404639006749835423769281023763964624209937833491761220418461428801198117070004727329097875966594457906388385679190097521407106236358205606123629033280492583444160628572408535929816726363284624712475532860037396141953990125832447294541967575873427352931720163258302100312677888275698308384184410916611501940594452704536741348969015066333093181521907109071579365257815808575746736082712208278929754221687254260343555622904104360760857574657433782247136144928551433469161995590834622741668559148391355105402141061389262119243032453539187060250566922296027637376238333858405391684841220269120616067772925541991112623579608840414953838118606549652691705592381844285338338251958476053909010848575475297561119976137563359614804987116294070617206781856022306831315231618491280283559369576135272130241361728277560020087536642269630997177715731361375135674162667731656218890339019586671935664281911397278119616976361632810060418749977101085353359134869537304466197685803482231117315505576208008985300830443802149725162855523550133585293146917722797811236484573193622286749508566312556505905883645067753416274047992006325019779141248796756645817964169556813529105947120307990445563975389476170309025010097790911780294756309743682647781769731756574940463832259942279308691817356928706629326372663826624892314092446473132810708728191747483790839145075398039311117706915341617499381836153039778441137018580766168610652088257605846860827834416890465944724872634581550271841170890936173575595695880644825630950220136457739752207065060429798254787880619811587141886821148822467046053349098458823520536376033494731862732794271973147922579892710700072908266980601945819387423974582184144769741331067439383329546509196517219212010996232151718314123000453531042542428565411825163043429157857781657973643817658961351012788204421669826651925475249052924599362202727588231974610305251123449727381970828896174784704308306528253359409607560488686278058239963581059412916243534824758056887379936784473526472704810555594903500874059550297705035251981124296116900645975688126687826878830343563554394026472939898909348040078222332937389767553112376595183063727856401600333264928138851655271775697981723422776074215362310049355524444431786905867324328132602759713892416975338764494243814300225016273840847685305171539718047456699647305510627509781797202209378060742416248287298271472825591804217422129750489045084319331706128373063119094643382837564881279330073339522957901311463118746934605276779653946924800028489742616796206935306784948221199240691884878028661670574124229161311955085814473131013001352384089021173202303433082937406548373979867973408365505600182076173252938879875412409012595765445806748395149336438899930385520654243076359345504509821128206661933088977960834061221766649946879399885828002704670248294348827872158448566892097187704874966763921136893981057733497105591223886198656334429963038088564161807232743748864945885098704701682447693335346810520519313598403617752373863032766038080246888935881670922676814232812535210164374918499687132633892873622899460177844147547264400774662092530479421485430048726268650202304150300154477389679137804763418528426637826810506551904562086017930307518628270227549765977530443848737005753249220093692576365352411736456571971765604858281241331738789166686921375015887531564944794503727624264748770937900726795794101358907008334253588688927131648959586436510765815917615394922329796683771020586566210785108476720198668479362269950220868028005941815184697820682055485488378241255068787012037239677042986448230012902877672084780501800022304134966016586035529663549573431540828186864934039045341136236330214592804018027208362946196946591558570256667873987012648014894542812784381896198160048028825100611090400754086452497581982440984243359768656062934463021166767240982664475471286034727334014575657625333466687307489321214465483076415112353246889744345300968136946256033667550428024919429238097508215954508645235338175274211548483371903287627607856630499271137596548908696346471883225319977975988253799195399723370751867665131775777992798173435053567826724193983166910927489421543501732758996726099823646037793716124241736711079749225530273006296501154194091058023908522743956450273232672169632891342517170550388628779058962729814583515119238789544197165111546798637740709361384700063057381141148420751570205015741963281722420867448067038079767716557581170693818226199324053074857035277089003466238680579719093818587179790724269173513042894600088731670114254120392125798473933349835608954987147330759194890645864565024921682011610191676968446877128179442248035628499426463444953621187805598851126474464089285493507450916385351948207441299918757038084983439794587597934299672051574230760024128452385885196625907502968846051227027641259797207194317390761172695542676665549358784886493275548656907726864299849608881395352552927378627427174590109560136766098773563690650582763006751755184995863596684068647484000696889478507213201057905433313873823495028971044411695051845971692204381880214605160689234708942381212670416191928091710308949253544492365725108057507386683506577167530098284006524325960354626194874175500205788046742260981877569134737733309397820112711944725026150357098507193239734493594090285569252231858805300172198028829071969029535537639456725349967423806857202806052021612632093798683502806715304364988492079935860239630439641161448958364718771195417753422061590138882880006567324898069442202879643642052072310641852771232483456157824346285917493002225636999168176305465945098608849254143402925584819914298861943434341816947079052223558295916513012595928391459679695793167493914138449684447054660728086010853386540262963268156730495592716867354691463460934306618596035537690115319498320615012354603905704775634031709227105061332317808551098764297694855181918867058310392028754391401421532192386639868335896368837777164400052353583751358244222008779751716816585104297052254680219629637337084498278472151459896318800547214921912010672559379608267233642925132920653153623774572454075367395801663612287332976513457836948696210971637341039796659325137011319208210567355215107010786979764150381187924917157640922561946754388530018637919985181027338893118574938884924680096844919695758888855941125594050917333231746826302501224027319009984710650933271385607981502152793276337750459985457284605740522521352865539021638744287621933523117427794446791446403943476215830380255250588222334514058159627346429429539914422476853447013432903146203603713114152732735829357437357518421481625793892444600359046663746470457357127741030390669680560595971927479329334329203482347766462127649621525230043724217134717866713470032581945663510181755181420472247915540595946460140993561348616640149039368017226656554915832739240645253931446857834002849923465012665671011721765108378259768836552589320509769811521652108910058176788082571315243088856911206640793786341736350431066959070044232776212112329087224349814223905596621142667648964179232250829356991675521683278105304484040472348091014472965858716393375828618683696524095008591387719150435238812321560268276331753426867654031645060097906711825661603057215469114479278746425934108454455091090139713594028712884090365498067086761674106538970949336866783527336154316887541890764229225389030386694816082547992219667476674600960732313112095135649294225669301054616326454911615627204117444656887987401810238128567072063228464031303678924268597410886080298102783386325510076934124066521828090923927627634464022828669107076566750794801235081990107055322182524716654854259824183905430455833904869331257972257669178973678614005002476691314678429746918473498020019572812720796501599962930683831888255885996349717583726944989489473337969728868797020216243703797747801061547341776515871353706531005596449527094933291875125716957320373066826587889543529554357666025515140596724148516429994925072473799177950552231287065761512176141651198457985722811267508457392325236977447228285227524969097265564012271549514001100336773036750358628033669619248599139059322190360759631616243975687553098036541406004663122557251567971085181820237159962920983104066740467865299733901131018307910286949243306136174980859659611447938454913439712729102087767886580075762615161601338718424402945089208637101250736605027274906611184071815352095386739002445880315781644950977800541447624366614812221307846572349641841450438554873512761435563835163204872314650327458892583789823619600060778755778636930218526843180572921269050736163000646426113715467275983135961722437359638895402000306004033529584452036416377863936979193938810369712108124708912935285804207294144447052197968263458194403011765672342384335358613526163060286946115153972896250991138235849488596161127005604018064790211288533757629689425927956516187331667669282294448753886537789927003574488897660215066782918234487190428600947915616547238583458967685651220238804534426069506384549903176763214251288706973698077567290968947940319337053858050471760846373012344188418713744387257424448944482928486731329435486717591043185974204801707952587709956871427116557535875700855188174050628480278524166521322200671781771453449480274601057565238468130074467090029845390261726308605435344103101287900434311101553399918793759162710844744338899544035312022216908592064965678504547508216189807618570971521026496455655222648005252828848582481406774565410981765357913479085882821495635546752297280375614869524657765665377101916694102647588255959984350208506264497580564427410911516420811027215919425828421335397715503494788734632270115431540948556115894039725525215031547658446778769972730030886620562957105183468417523977002963003899144393988317761746133867468178590006194952313881843586376504181673736712204161632766246200942170178750275232154750964363181859878810646613946191454154935640828046688747116866607883721251859381391701160293707430872013915225814006571470226351511388122092849503190648510147349707834970929056108021455495209009320127873806598539507504732341116784719107968726065995995422199007991054871384133714368168585078355546479253894049233240564689534757503543657501237025691530694176650321382673024365833939131994033383031546027475243289699070589168645803094084458761422744543509078135827907942287819030096009918457840813684416247836726774254898272488893883302814405004890961480650510724744873100417012625201682965892850159700738231714827324460826137559738518126395424215306622392409092127252587442315994620024705644853968614578013562828410552816562383686662230800726574365101792545635068329804144670453667682903614066977235130535757653592138176750500963869141652777339502986049723143177316521107900713601173039532912477141314516023669837373727640291670799558866826892496181349133559681814947490750451261016396349604753919032168934951442072483539544916609554720029497605401029482561260659840141747457419113157601305422606561717335861613187847136949188212761052952448502663302075117722560070320966169997577602953539809602750342047554922026103825022224424477447903753731061494265998473470919011691879254244276419251675849846738850036574784906562941938018848797119801714984998829544089786547494207888768539009073978375394928194790618743095210540752533335471731422004450714000145929213304284578260217017308089018089199286916661777300758814039136344580518293113006197390588593675394162736855407617046459366739946817315958571318042561295860110739622524300537502358310087496094282303922189325224632943375379513318769050728356552688109138248651745271392791787455760160849412077395283333389814402861584738552578601504800039307725457016608005670578714794132021045307084916384421088868181268080967850030987302303583669721277741536967870233621334567751764400600415437433257443658506755056803606692821950662437889022928406779614358806261765778417849869911448869915892073993559521685438278007821282504214886094158880758870892063839256909251082228064518739750430796497101082301307237379033179475475401154214597279562834633375675939698997153775948583347464182770709482174353084766700346431926933187946435829904351564791029038470465222159430090436083916764514950807524902011148750396482082094039671201049679331017361543028129490418251439027662770786453207998040389369581440468258937452441937286339974416463326998873252446626503910799702840948158226194727931461878452270712028636955302229250750245432304545184972696275380146446803401886293205565448374150450023898488223760390510523320856601815817609464919587268003395316854576104848994802182711187530578088550209802508517523843522357798041778635692625867260489524382857142609558334445096480215939702590788728989821012516122037737695037875006662593424205687628342150000752116069017237454653540479920697396736001062735623636483165660454718342582942152853813376531581175625649139323158259529582707300687404644532101061423679452519062553586574298830376868638807714788066496702986088196362383604840600311558741190111632682130028177669658140855160221223987976714375124593085176946869924165261249869483702544836726521102776150063601520221139474387915551549756351370224711312345112510197797762239879521328698405700713774205577914686510081068693254730113690499400170325583883719775347833304313895329554863100139395666933154956128464520591379075706673083262717238533685811555781854157578449644325903337131039147652593738603799513709777344989592008681989910056564211414360691746078769117306818347318556762360611906261313804000384588941113908293950541082251235204212402314053710247330172920961360182355107233554324864297213955492940583654339636237315735637637654573402154325564314947199884114746089900824927632390554165011259183480353401440855114639310961303481646276494935339035516947235492736459480649947099794988444075789608386695487288733347245447131546972507171547892856532603310148115652632294640879329196748919763963232345946617015324368504529186465312421407183280896157333219801274757565824053757893000806598581283254080561337344290797173624673513935090997529904032413728094269663155933514128564532666829007638501563770355506181485225083444794164460766578817236724607367094887527738059203722432454284854010711638533954674768487402387597383197495145581397243410650060543113250652284673179231829358688516320018905386060716971376624690887337055645830068882638092826747389078720690280131668323426098178571994847141497945151232229347910308340412848265164421791036857483824485801085323835508958159961524856677289732476039675515806850712384458703211084370035913364851965198065502113629645172335863422147616762440219092544912421384321542165843489794461540163733146382424230307481322540109645561781975729871286443228010897215711585318035815400701233407542941805251769369015398947431272001776132344545922363063003666697640713745446622377089138217502611366803409319171372742718549195903151014828643819017887566110475526171056266215592418166384753735518574008073427446158325578455135417985090637628233476962251251858852060910493209337911766776614756721226816941199385520851877095274945251222771601663366704168817711104845525186036359694319614262589345738836011530658590461815455260744890298641860932586498104008619779771191122190986697717931794286248429583957890493903961355838609589903478533403575548541425345363655132945382241312134382333268448420765506805164151551150093918146226626658764106186416552865454902292998569138133486658284140057658837409724108496862190027970812832064639567479503497966758494629968668420586706517723186864131418075881655936966870792259278475388948884743277782963764549365018840479805267029093527152498108489952466518080774748529251233567035828024110161675279334834479623165034990071666317589395433048964500137627222233044345398230697849778245756229348719938729539801287868464052616637779966115600473554907010378441332240557580478655875679217962860709999061923850075078690882449847571153999882028148851049687062929502671488090111512726419736888200658609831733061565937561786262190911642504749478956389979723175762322591355940101863697498328499489502993672754604384224108311615950592730617465566569851792167810056009221513055586492433322789630290881369752968603974934775476942471204411238125218978641430008709331462381513280103136306552887850978492820918688633244730723953927773232177811708588871710920908311579536013465352413055280694721937201605198265612576670976679161513628332758199385090994570413264097788446025423026775403100204085129308240167690366554997142587260403138907760896235270928041209640713062447484228455489868165923997832369450645677637786861299928149042450377646575410165167191368275276318372591197028657354392542653600375835299268006102380094377957044210932498012836085734017592571349194536333895986382595799134289043499307666721561082684566247905352891726845393562505836078419784631664819061214302217110109872743850835579306222366480461708141864831135101832465466177413361616303335602454426743281455202571901332364746697789440374945245182381729721354703087511444322845097334173356627363505186888663168547980285002782900737309596627968390045692363730988476275456832710525836821298046020525870092341696365073697854413212907096305503383415219500473141205682661554596809321519841511149701981126797536819115594463619796029200238692886521809441730150986263970218066916009395759882433799797746738462297167858252901730140171336034116508640653649862669005918873787633323240144527116496498291260771925438238024705902735131507861980133461938015579445034579855759550610072283560141350511476504702727175691250134627197948997957822146073689745368933755468457126140196748112873297951271325609869134238890383250860067335090048998453631196103587960396364782291553966461437889204330710919057318909207450854289422058094961380677712720718733320516897238039114530367091399206873221603431630615150069290635208072772447503591933480406507835477231322350200884683182477450139553254883283401395473071490325546164821902028930424291123180547834984038518656432232616089762926178153524222532181267713630416983842900101612810575320979960052210286978800821046283815469336377207904112565194553302739949152673989313965322872086392087268003294179599290716404057469085248444054862292367988760173848792091204305850095042281383345040434215176853575678655580514878033133634336973123487202090736295559310388693599072085136157020450049407126100689415394263327370859278752382284999204814097976333709865265770747521059852181319003161848519032861722267225553315165642977215090764840689271712316640035311992570125280580713810840674126079880966051112588750891590462591747685372370131121331981050577508437202186444741371702309318082666089344217830018478536268433975952934760832834387596678121358276135507027580356732397698915569236803278284984277722691388235290995652351103863825889448028784478278210849999892629202057217127299358648535688461552977045831385191788487776379663164184928452752641181078086608693350932626209606112584662580525165988155233313301098333948514174517428597152543912738491515294820839057294013634861834537676742944407225708096363887519212932592495693478964356647682022529460778143876429331932354384573452878556962034710669296656052519619353799242575393896267406569087234433341944296059796706695457197315865316679834132329883728244929190296608185098200394667396162242429622562284705400133337861291894002891869504839070097146417311465078339181788562550141105643632401302177429875077772250463722998528619639579960361556079169703298936032639884409967493002835097761492218897017808716956080237124955714605423069153735411045803499634068469119097869546622927535593052103280901819311340301855546623004468694472339675265059189764216460063567982207483598656655526828964161676123649449386622713587080215230823447235187364800268326838966308195414381286495060118506119089493164098855565900704724596922659649766672315499116751465660505954967232641373616956898143414560941482390892687339494472783393123394018829901994458285081896502380497228757312215137916663644755147782669231577802728010972310294962763232515740231494122637070921426532562060411772250996000728846648376369601535732593841775283101994936975733348406530301171778495823287503589005550296079339998038529632202539970435006699943196940706326529055953416276739835302335265044520888828842900633751753415723479751218394149228077888853665728513149282385015108545465545845635913068098132343752906388966071029996153953269099106934609826580186025065682270426819176939535039666684017038664397602156429790308578100335106304651450419667125829654770886520182136556034863734151514702055477007642286516100383522619778767274841804200380916791162145860212652722455696582349019703171711599024952604790008633497577372356410108889866993896129608616222233512568717596674298859630938629352110604633280242677869502561040647728509171392294791772861333437762067831999230543886034981233911989221463848996435667408159654143338680126978720473099451490764228103990729608736288615412781575108210701706040658766797021466052202264511847178252074269429370668924265858635212045147178729840082357137096783283492367915695712150354936444433276652736374629735631375424405359016716756312651361133264062984471174778788206537698589429012121320184863679363282012465472453195293148068229758342265431022938564013944299553713210515694034806219546387497882835232568962411796891569401986161291596018178525017462911728212017162690385102570421500417599018641690557933901685937423292896824405049323460945912850340016374740271385937540038746837061311790146967302300813934487048678434600566484391191177184015053832198973149285967421312814798778597286444773325466883104693360102899173702014963435047252693161064301025363162209486445485434431796189349958236639443235905777619366964901926958375031227668368446671572207724732575651481086990930853401912906834760920204119385039641364064547811451507357425384920820442984892829725399488976751107214868376497626087898709417365387348801672203872685989371760656725735247474742617320942992174714302868959637768990091697807763292802633662952433181588662317254037735543383918398985244550677715601610619351551724170179473230056183596220443691811445640937558682184758135893745564070617366133682419623043005060577538997816510161938999824894201138683818783584974673953387322013808507946119369938582072743218946763970566878277503589182828457830766615753779946877383419328251877338262968116482964437798269257961597730201370698012215320541099244451406316135448877956815060545976720070894763437827448184698930773569455230361425056782187087268743166218095985685708545499858658855611248035378167200779596369582450811754744164970633980220665269574721637507703628980973234382260498636761849729548882594268080700065010328741460110661762766654437117559487977250980532768120882913642367472299205628929248675811820886106769731538735784956715327200286615982073683270933183944038789045115656196289462429709513201456701615117533476827753474492522349723977570672354085474838594676842978629374523854281144135408134238325323651757581389076032269222958985214939585721276705759046017263725372287482745109450088841633637731051037334249169529849490123905330374188355361208800213329605083583931315561887438739910866817075209710689963157751315535715911373503470804890696149212982428351923639324752319270679586663965119762963439331096117613589859145919664381113667103592209390953739524112095048368633218462760342907134805881582389318973624760650478517912623298204729977681303937872513826351889432563585325291018246055709671832439665381641379783130667448323115433883356343083500217442677545450643879469575621769327395615240617974332445017683274646323691632975058343993026422137716530566108722222246201459864578348064313636541702144806287913531476796770255081758893052093894091206222478386147567521641663064327783919257500766992373623522371422494214901671859158950386046102502681710303431336929309386831593236448877527288872832132720450896965284387250632463256164294487829888669468147744098981822786129844653804371826095998774565506016599908712956496854503234717667267099273779155438619953738394394004857372411696075447115828991153507127144286449687730080318702179533737058778548291577245381474009537326573818378353235352410172371933253431421141816351239117986526431102593148056463344663821896937843300850174949363535376240986889107070133125665853963584153391643275234621815585402689989872112712096595337236721215274500868735002948674950132658786788774151845001626973789081652468100851425880237940336913542911169876499307121466756062674487017017308647640563385939602169953563941830211673490171315847963097790010507701938064557445977166358765193563536372363050555872810653496993666488292532681819515212019648676061614880686852396266216164547017590720369966553344310164774927697975385190185912451397023559609247886150128910540580845454276047254208176590988436093511293895141049430546772440708974944664132937446086725073083103098836836969193867818193817746777681994126160979117941395625216339353861777759971885414602312701837168634362276490937095281752699016971447445732861238909658989343951295690793254164037312016329523385832067619906351670811054166032207752958848386323807848362226135489723795566321089456377244054025559824142959737663201365719455374545126350087780876503458134008806779376909639931371370557756662510925553237959204240729226019938010700618431430689843238683481911567448790498154062705117669879909656500868498007817619910548961442304249796667561975589325294336735165128477932272361316333510680220511318741156980477170450379825875771146335179402771992393541537749342522012450601624691453037773964251129958879335451617050722569396031558934515070470694427044760297449666397297088340432543024486707402069522370155975546175973620444032161118645966340481309269999824260508615769810894142781185183564152876986003904245638368709012616727300377574098959385357508536191111437827355022394712336641306652623022882557022250759112362454902752728402283382289484066836740505508673962117571944224669201862134954650208455364907774197359790932213961527137295550862273470514668985865373166666853433871360664219366140956434325180648726299204789425405186064244195669229950830050970301006845279657130703605640449296396733335632969726109006322935060348028691132938425010714829151173638647461644319766763944082731084303760590531547952505185835664361433399263051028237413514146656361793446833040295628000803181935444260310051690716067328869609122067069012481615865983742581934995271087956774841124563050352777539964702009759027616819061063336506853681172682543696430699728121845566353424606582508758165220642377143740085840652674942360048224479715282560202954781187867411125925527264887946393132070747208226331339744717713324583986901851533234403001590034999950369451645485474568599760551874245498997396912981950610646317756715733186077078441058512109131343697603102264297384218634165327163797786831937379041787878918493688402424284516115300125148274831492965538999563127559493770451701641134240013357831695414434611796617177725611968336050536678791316217795852588364556900538850282355292017489094108785796426080914328505119312572558147317887775780241935175942083875865459676495141080456647054612887703713334466594264837407804719229757584487496098820938740150377708840626258942852675590538606057472714019235106111398657554181665220100624429626656920608347868295819457483042758256010289057190915667767679452125614953201411867714911129744157901365742474387574091780426012198685005627352892716994120262250267622713725431555483796950728886846730462764088697866793796464216909066900540046942487080658343760033439188483205237277747243630760689434089280849174343361665256745112772449966065766511634270898551686294020611403229940820297926608431808685026776898011149445377880726288991763425991159440581634200377389032778675870993969438477805042586672391585333252321968496403816918253256343232186626959571668225660145503009750267882973559681944464936084373671436982207943706503961475834307541256411027408032140911078575646472464869306637883336561965329168166267791313882942551545602388912954902489528264774885272141455891675489627930181563062768598735319072405727641893149977409549564732067794020944685981189950150935680363438058674035575403833797139173655461394512310041242505360250432684152982859239401355069207843468929885702435018369288785058196560939047595331997863154699158553906196865083498076342308915760151313491741216594404006528292318998110241888429744460744768285100265293616028673379117941716777851582572513985637997631079348655588523901594002289889918000730143633912069446420146869418450831770905263862714553327872690893528462731678901827548510952592871475843547208588386068266458837933590318319784847510713926345088290269716982012237420169362217020534504941923050329400544771814308149008750534638336893408587772938034731914519403299624489525620824302409509342484504149420114166261048508337399906168831182402732768772475165053425505155293913738951326046572578572706837831011716013640925242599590952079930375584591866158921602311254952181413236227344577168425529631309436298108444651076694781918453764987539489801154252397298543281100695793576984450209821741483504079312047795795103574836883948363107329078316455731787705170298213505420217841758208981077657242277081353705831270229683927818147466843531036743839550535494026212583605992861781698477077892038352961022042367241251149084193252788509687093890848646871074301271035865150839798193276929989449353703842823004318714154383508232602170314162559337787348628122932428515978373598405586402339875309134001509634126309012447193981181094713536401501028988686931963104515267535352555631959844747205736363274261089292229157594088023425651021370961294588661280877190954712442384700778654060534581144983926734828728456305682436464804774773509434249902959540206545617355028864600640430737922249757445376757213792414981200597975091914314490648237911806124768333160785126793003805482499313024485485821625908741713539705251199665370555558401254758082846558831976884818108535999090186990768310105820724734004159312756502146822529030246388562781470874268844572596128580350791960965369212220071732050712755919976634926346977068498577532792795474192135512090799460124661318934535943577954805323498208595065331265301384152524514846004988979277609052077907544482192671789540104670437465284088868129687411196382045115334656424463020070982063131765100896876669601662333338600658578642798474506785549823478582834276475166904826516993821057455351891079992648829102269879273139817675435031024665158071554627378025908977628654890130914288168351108133265256398964072256795689869434619674935346142795959743279187236223785495232911219200900072374180692387160808616481097034164930090175519382417792368789737409987776183881205713573936235632003348111516039509535645173242271865846731292538884195383307884206627122369540348538335091064711982299972002736817148560111087474882268535726951583769782063421844118495148432086665646228017255245953014883754511537702877759839000571806624694849198273824523519022923412037901300754856447923783884575953486137147269226996611858916328493095353639047551530744760804957733107993312649623365910542300481392678800413698065788390628228758110869364772434992203098368010341555857705985299959739699864682748646537516136846015851684791797260395945725043718518699080132011278635183248159105363466661195453640871153949360061145308222182091287833196939026571595933669611195035330476439414009057166563857857576966390071011007672678071320311548053071163744520883174226973297157065128606828745430087496535832944988925304895354629885783110815192193544954595096616795216223264305648932521225296601275614973749950740333662324493355546873480735311283285106550093361253944369061631713221086944091019691235884332466591380455172704876864929148993561909224841478887860302375284724670490538466699014362375095916840802564434280188365198667751784763650281600041713690843917889754421973927923208035044744811432624987876882726758537590394127264280773267881557280685330958040232815514785869146516176115269505240710307011989562898280360482744410992214340982865068894479089251313290852075571235441720813718025980216619387823951663349126907333699002105203422100235073489000054008762351794655447666100450238302628843326111607708276485975581677765450118447582375314452925737539397490886349302484317201489822363152655592545243062313460923960428117216754630253996025688564429014640799409012800065803401170433333034748577006452598626525570350601873155512726884198303757151117343028138576780266105405531732316069264982011526425688955400283804027846443758620254364938101457801500279706681940333302018589975362743144916072521195482693205659332190210291097317619847080203137526781338357646957460496283641144236044028122834796805616276168264072389937799290150136671488850131858981332401306433194470664788075061617796485959440382013070561600748996225311192559218428770968337897645982063252672631906835708943861049160236508723452365982722738217216612242634550753334476892534757732527948965338188954965637836533973401562832383008134125175371036860682358720594891192563132546593542105572035756020260680980492791709586370560133980828190014939326493276947572954642992770041318121444112418000407718564117217033131578621007603161673657748740038332790337720393555592318810681837898927469119078797051333259680665501022956434781819576958430035263701955085226043914591093513015749764228745229199079126420433952618205867530122183813742725593989165826124920505784485275885905842320070633751937751080333187904626770387475614678997810894793875074929719193747957038042069411334960824225763828457531597971839620211975784118312815074803017706708893898310160976967917558730332449165536202772828093530756481476443743759207500159632526261539103117718487860107098907301555081947952478863111980892838267632741029968944663181469187924323214407936388978986418052948062888529062408454527614262691178401429440410590798314886495176737492839164841293056621007795292341012318626108029452909356464531575049844316816553051216474083795642794223949246357871086557830024009578081781561200462464453283011393970760630719136056831753849872484577486614054220570061235285250281882459183020764665844347757299347000468239934150977150288007228629935542104093066653085042245994208483656121479270136375952831202104475158630421597950313764782027499254702557319172303252747478818887486215605823327809773692324469217893521937856367031871663708712787920935346351111486787260872621517060844598379783585602892086587232935065541089343096361862595573364827318894684363069910422184788515318762536677055365017472962933533835758880091697223716943138411063405792541221245566147955292665726966695058137157165462430855241857317174467996325110343738798003691079182728286613553357167859017378937421023072725878395079661625379500136429223836162389448322348215870330663552671869193663603491940206573430140254994075387334122336086324314512138546863701204416388143704813612687133701963327031699945751397808393155896939846771521958924710938553031736393380527030565309142611965613930791308238958586894155528838079192679868916882003988125071555899713255070873827571931733347920119310728421163171078246556657768983924668927779208639120463874347982340970508519383197941944114021176476574441690033133276160725800988442622768930387317118226483985617811385777772241755482995502549730227996930006604809535079089705268892914623219398358212443754664288572117791827144836616893544262888385126324205052832009774718576144537092456618442259286281240326211080742460206691916024901638109715954260326628165529361414779783800432021486907127409641820195103815493952488917725975390158385346685141718917684843542328998427931973127735321612963044731425524176282635927376507493749136495046175634380238880664547625317781616875390027048299974909378767521590692664146702628214283101966658917304241578381036482215391632435126399438526095465413047782200008916170627673177000575006114014074635394212771548672594600626201971169438867042770947669526855192421401246838904284146413820753014020543894355967282746234256112196843175947072645108490068524668176553844338242140525624584248284391114364830054537986651691406383195884109692097006665640506173768511484158322481522261990173613194646307519770519603352959456304769917152897925130883969481971347246310312264858932510559099943831327965757995189171296907684073954383858560496623668163500851982182534971737356081822787362254921716395386176174073222619406046440018124717013084082245577767073902997188354209311392120750891829323389180346592239936029831067662892505593304300758166911663609088444646559991469732746805315144735920523436021991383898954461968954626846819304860070225217647159655740274110348064242048721633655704739919354313284814292619464035245426401644181133632996170278159883902237594335935746652193681644514972883127841449760295207378953365006269192471007694520317918583869196202755046881677019959343805678153718248309052159770611014267429918385721867750273343417854189505422349955744816228144809679079320754275497293503267149322201865760689648313844503139408763321308765717734400931360467940310231129714396670764925198138316841841153588812561210643725369844992494332810552527710426375638287254384746885134682752835492340764117165143575614326092675166366676877268852894234257672283565159322065013579158050394480824776266751382391408403048596409839162427777051839226510785693912178957095192058231751061766007558558356015039864201985569899869782494233036020024129734349498067614008165558200390875837016247211798002974428645363718341333150626099179122155575523626791046453701628084220823620480014102793785456412240915796326853415760922275639102914161503070577159197016711144961639767717688721810765639168846845438853189187519263928209529832149454959859260641797902731769744179001466974471261314167132882521833482140145566893374227241039410008645814135394285523320046146850736037036225459925930465451162551996234589761372397417910638526350705733042375022123623214286819925779342646620327198253884948874675679585609940984292975601589160610137613728169165004452342150782748751903940489379455987413865551753816599743173454947694919679602230983928333873807499338033023351276428709170018034239447704395429631455917459709547029782122425933872405026072994733446888930914641524585944451646642559716382829832606226260931857170294110440466521083269312398345508405103815265859931471697907688353482279481671445967080591103876768165723632590154521329339964040677813098784958525187500743005476818643298567714236144344569744362288330675537722259420904810314744852641585762728364714760169921146619234617313114908126034716456161040118695114412940920854695597029480639081337468326640763072012337347006754019860290871290750973396492628533665536168360336348086335218689837357220595927964146138724372881074382804528831448075377899130364971926355293115095732344480378234813449054820794609644013471596849882120232560237620424818563269817115130854724241827991655141701075842087996112577568046629332840720100349245307580515805412118333158973866279241400235729180641717288366236285888223371002056829404084828240616446699876442166627521474832222723052550082027988438879086930371452463905124619017256815642329429819806264087525476638281279654215606579954454654134835005963374318603624873569774767871836150294639598159168803314999379655899100393618735569501582289310530837927842866739220912151069305539814860961220539672349328179081690882317852609473378862805869562172551972609344754159650348540753630331395598877992092764686176928003595428090634394902387707710128661798333780186325678219490511444346813165553443780902897129903850063522415360955848835621449062993945196660037473681502627153217983819412698700632242955726824479629963387485808129042099735112213300279932833832541115977808871842906188629424327080430276046654589778341251069989010953237909003464183293675037043715673594913054013538426041292106581427804762535432033583658974529059571316159344412144679476829590926042909204950548058415530530704118831719273574293555361343497595956433371738262477683838786633942747740843362133035613767174372979419402881319527809709051976996875088459617509231614372341721671410571112293263770229500692830884885342526329465930751301856489678923595212002692652487048667341373141457026899948837152238409279630396642678421927118006889568431803623812413007093813601189469391767004259258666299487857232116459210207813128795620390790397919012156037212512690380342546205881287445980178706392114837489404078589821497082236418708505758865943645998419919311980415883152869729118534608719610804612349410747703692256209733378870621541607790721621520809879785132735834673379532361850054439501549289054781592802025400606726745948034828869453540086193085314583788727327348848939735411328164481405168525132094677949526214409111417639564673838965009597454315605529802871540633510245668859160092106373057227651809261813918698791923218394396285075339900362370782952414007379594444471531734952307673842361390632955615509773184891399967320642042968001953978423686098221162398696507643124344759101427498240651297667333852957170830317969463398155297640467595605420252634961014546844034129929247657405331125933474391269220308292093952078619372507358796399915541952811025035232366770770082252776201428703403841669379836196377119634626367967000751788966110133273259558380247872209503990982249332127659208930368472223280777685540810809955739848083236734345161411693212304653033015031749164634631668838744927402671692903657877020698594686695304793916156249666328679223787991109045967567456147300550350219348639240171678232112362443995487145951653076809861246387844001929639385855786109713881397759275429815877210991942209821879404945471501642698142531407053995687511154305337795455576214019566591674793708509237777585319358297085966966846177541414405303607654932416057759602226405812913263932582457169616125489749176991965564600785269678417464834215552482507923290887990442903477097295530802822855267141590375893070511644171276572873405384533752607071265546054643817099064983917447021832941881373898239419245090502390997883428413416678351609839756666210081619563689495950564711062071261604160023121171300427567571308463051757773861712628572968196396284418360593944388092035334837009890838679578638694675603869296183952622907883418959814366704801196681766995129205277378135993386068935514573078126392270233501804822178234431269897979258956896820428651499422538463935853349380560873042739142349837653325441866124404592008808888297813046083404381183211685301970238306327186662889306184949500662327543430351664339245163135382851442583731253496587671444497955097705533439356955204179749556291029630788531180578602918216020588947665672487543608616499282627568051897762097479336110248160620898053033086380156845623628920891037581599013861575758146419722139100405013404928502788440619422813744098957532307446892632619758486981815187455104712534494739319458108695133200990042954304067226118061356919111289137835818580560721586855249923079651081227222325053590004768930712866946037053544724898040985593775560566535889174801569464500829217853968069317875905595394516604600791014673067216543096329435399535920132129269373452908465756892891872891081964350112794840316547501448587346876148750269082984298318196597757140969128908186912119225941836881018936095685459908204376780866710549873401801693805013852952454126729572053020944119012411217121778422667664190844900395008843927271641580149409807678451539244088014318247219479055502907220220592802899850171503596190543667400925594912511618459107245694805599131890778974786019931842703555466128487738138504024996353947040523864093107449009726890156885541473683155627920971476903583678493715291054699009504065536754390135956332183302314381598611104913314049040327808939589769101903303036702211311005338840210249024516904518029087056606614119789473299620477081996855094346422272609884734764718231831765587222551708154544981507321330698068273324400108676476473708284815177914991840182540075263831779760458535689783227174669536496559326494053925971648980264198439339664285877883552036824435783563785978640243884395600334468048398393529452695803630893417356404122956857227175729070486374910336621728283426781897239485759608720699995123014529445699276360593362901188076989190492953995218514244642484684935376052463339143959506834726397892152774789101736621880595344974670216707040117612896465933102092699969239616936116671611829232068977611251951382204195916550854588512776719645699654262139325455127867513119790313959888223523861997399144691523620925989358551316858694624125251894299858523048101251383426654071366305439150498947353011563891177469952896824109292226816187210157246348284964869226055722467752864342400261782837154412196854321326060778295268306843954792154759223446513005411735694710413230896562809402650025388481855160269360971935246378351226696996051871599130045959617236655518591459403722936423597333752171767340780093442846422943878998696816659098258545310798262193959451281477921992253087777734112498366526230053625504772240065673203091006920658638895105492927961963656806670784084601465492613741801399501878924244498458339434716595621629354909167248190140288626192877402308496897277082395221156238995666194627302792433619026390554529280963587905098668232634237371356469795109860075730920985116811574323917576119929986276378699656791306369023810567323050655089080121571892130188183447882982956125182371254259931476870975945716817879153713595701422258944044443406010476949215962418013402720372055300362457382924732077360203941162674037075420489170184714777401930985963551285881802917364219025948344955437841805794721516526446552085412468946997628048395399474175081013624645360852948099669663135893725218166819597627799981445081635234757260894467154734805617654088582695682329711024281904873957954015020491544815603863198573257093461079375145274337248726613995503603748109453357703903373666632009879567764455950832585047520060059637050891248741145279583354234191212488596142390319599749693234665027769296075940607424382107746243731709406946324836286786779225265956056992357739210233464681482089463514977318469587356366288950872226739553089605056441845616543160676789389824681850044146421139906566146949742746944069181072667340383372592989096632863385997249497054456941424963156719495802251884364242934666089095121319594296366547190103147745895573459098666969841378543656671520042435703460943818492809881952506752161017800935301386601135457545078508018513676843279220983292824341500647832534244079964861132145283100924651442948808308061124144444405131859763549431431600517367076402515542391823168436199505273632037716807563440867267699166026885355129646082336490615055749617460193998973602072460100233674417892442521313432473901609034295411520146957900621688099967238670923077531083353987996986115665816919511089233283167728805700755890173322690244554727158156617609325619632782636674798093067594334391456250411873815123063443661061244527385561210277497980447415642712685525149711393093498083061946582384449477624382604487756754190478763475981401856763161383401188432255907781639014346799734922590654596469270350288786710483372468908201678224397320169129182326403609681555320861097792749759271546229121332279122060371566743399849173175615063865447897640853220542344123892876162337412743861729142583421741031764237976437929384474841737917561782478705091005685978659110941691973417530517289159303827313681433301362901427286548501254278832597184976892559851489661687509067155265183459105789752594509981465968458324184805250502416880375628402199150672788496377587733347029041079477957069169234389005896832274678036275593230138713740404116358741905218743394796514437758049075682256181387671399687447846850087404803102177754261756074962885393237800044783082425140652075132936106915419278050970947648454594303870917564246007580959007796788261889579822072838096463237603233494531199388487216557428569059982771728189515338382246119338520948641783268880139963158933581493108417775138553333183540197186885035883122993173429076523180441048956202980051678430590501505131560297328816681512264423602446849231205195316469020754693149967104670351472197042127783072761488723470429479547362913260274661264940271548306455528579550813952573744415545620772867256814446184245675282527051918767479031997891126276772884389395229868432202239776249527747033677832528822513990633963592660397814339570223080382391059679540650759909399420342119266936047059091599766349491012175704247804278520121482619602218840627453836746908841705339042551276492755361748135157029484634988951303032647754022925184205438327795636382557737168580820407681077614126661826941175352673865964342509713827048446868686594674731122178884647391442685550003890371260146023195780498764565451912309189833581442001619128129716353121996493662780486255030400381253308593185448418299187234188868642726632349749778668274840076978969860088560670568806549213720103102389871659839965654585784651981853019833291646117791591554870571090945269059414577681884329255777541706796588998643471915132047368179276933486218027238709912444606643867070078112970178798160937768090052160285320141088744090288091862206760984234040618428539533866131141088301287816805521440205041924546387468040758675368085267447811112991749368184958720326550677270006978403863248127140987670978070751327596903564725790892533207190359719832286876406588984782921614140332634720619424429362156467108059799098732173835237370530334734764061141636340109067289272178880666301772011658958615528304982554038916879676219220121912641480335537924563876470850460616761295818886765989565562499347909854728304482632648635512978010100217081627939322831425536546132399088107779799168702814835681686372284998325039986377303767443629846048097661915824139792703998441458507409813822683275505197279298833821079573953415713400468283719029743783105323487633818073689141440577902176226119230956533952614013253237099431882793149381919739156300005824630375559239361127020559123168582085741725552476163363109836478648723477997020483290246087023674079766443086194826872774214613160816538810830079025521363146317795086786620685576373230453925218715537734837619889931103663962613610328153664750832393924275739510974638529290147636425508362220869214148733080300209932122335261979187023830753627774407974843352013812145814536178012513681315494049323565126303544697897705185064652955590637572113656208914548088304285916085144577829015215429447689301696258620749158108645364122272776447604029071357967198654870264621634969701298917847510190795297891808112472618473912885591571445311766143970852894521571027203224253179680364801366998123352151023850418095733379377902232414370365361632726864544162733860010507385772686521222382016576525897121215364066770649991627533664805510134608799019759899991696777769609278641470350783847930428208028406023554155725833604954374972278390243741561035661111812602001662443419686331491182041836265359749373830421794611227277139883211183471885581010984284990196427339808661584568495121973210782734644643063290448011418140556047801879533794344301052912456063922024366782282064078314173703059685057875583719046813726706264546294339546529505050167903824788508311221698415759625374692782856728439629505393503935977468962394794796229628090026056324226177647300240148060912338643750212153101092172677639861868743230938227198438456495557410019465804999633886482797764427801999927468067205664661283226876869244734426010817129943556583890509131535750855750408639253356131012167472466808576274560804600278767486895784358701351985686386626782150650512364667440326715118793846772522540427547451384118017614649588416985456393103273694232950659424795833818653000354754770202779696124974065817711463767303070079514535005561383092872915076002146105656291794887865763090629390677780057862686188828657636473087108583608288683493449849363925401394928767069978915681320179793737171842061264398023652984218044207607201535946048318487452011353386089533073622643833946669875019220226858878297394409718671284344949368656723693580496148294979615229559102456218030708222593105830906947484676078013769421848949211395155025483834945515084860237895807179626065502153745247171686989225544192441884266475934504600065894607175437917375444548270253057833769456868444027434103140077952088365958041693777784335466591623574465993098444637668317078852978343227769808224261910850022581690549892270658575539369085195897103624299428704679464205275511322294186459194757202449236140085542824565755675938477980473626124901681409018631407699567883059965946770546148061807663723600692332537657402846884191233601208513464377373032930835585799816308813738734709049417583792077117138045716173439006844420834927915613213225508731965900643045901968612188615804609076238394930185759733381474393275589719524461571168412138570462808782403508886387996992589751830702908294800899540569675127369697104191139704094511141601165445779250580794937448026313944301994199860288908306710890321983454921532319016861240468584597654762610967818476631870891711745112714667658637241968936449076608524031092110726598318692951779893698419359808866977559622045381070450589333187750634103796493758900134808099810078626878844242512789563271481967529687368417634731350323492462377404622963086571745748698969789089984107582464044813229491945668955641422185293500742134086362259301179788556226659542784517685765934485907157124354605585706872001776666611716691964270020217443786729130006288008583018574111526265441003425169249096296517639816426520916429616769341679793427061817433525821486698779138343657902932445986444054185270494331344153768509510116617843981234986213825227144892271289970180038522216630594808371142274556910652665903558202032014126166638625945139482742310185096072779373067964541782336280484816613113621183358783779721041486585897602108229165668406672265851404556043555463289578635251816329533711378957483211885268614570958025659085472899935462834931784406416174235335901130964925159530412623144246449341904176917710035152085502674194003554850304056460867462713498240079319088081365960470583796616058686087051066342248017381484681832216049420357486335720028981565806925863109859119267414260311590728016054425882016582586875651260752001615009969561349443604566650346087968663951221154660160219350791062686762664252536980953451104485037397048963301212967252474666584533865684095307697497949682044588610135361385166095981404435671155353716830728913384373861623181091736821337353699538903921207237942101379719995821492965373480976822723137677537931926666972975251040051131520599216811407847499994673376907272743801092648626737528290298340753559081750430602486283791777052400457082583860543593820146164760963455690083745753043153902088701660128573284918131167422577545925480436992362182383938976845847848376994950983932042477698750461353253089515381282981112985280849843700710609620463169244379754445789768076446153764789342534735389695935149609302879256022737990573967335943561787906083107239832015673252931084441025214677753937699489568847316646573172623976843934036975540845614602178867214759808479725843416654363374713055790661408094886741832965599196055034293386999360711057532359073650613076576785546811804254317884309682102984492361622785185153074038481663105665489643949343014840263246334132970230669341620292155637003859611959866216907643081173622993481117669760206321977925121881845510024656112011745157256302614388970156893211603800910144659565545490253130287744968357722903502749203724332650348430685572911357823466290208454905830858440564871243231400056713932448720016412205137673393870445321866159057806601091069267666572974925911095045915518795070873287744057232187565404007229556371831737450987776813623041451118501374987573311422390099875031545609090343894366915837415363177339947675283368464878829061858627355220620157086805820191362765457969387038820505601538885928975341951626423861409568093277871373438447299437810598911443259400018535078679072088683778278541349230178583841914263071333123710241522309317304596393198333791181241219874173651134553141995877222558132647642452668889700322613772822698660355818249998352918464571733704794913741128259247880127321184177780442013223269557139909672439638212256254563385712772085714394265836992896680763524499675737493691784356430636529220178519104078128460461639932306557634445374390326803045756529513835225692002472127443205889794543945711442331330638597814121406658734946055088826217793992196732129846280409326906341809240773291700848708312553242199377649198577827613407251257246231651188436376073433414972724110571238635256585068198248860807771292164430591372279857167237348995417786930308806501131692386096674778140058537428921027426480050689298914879399143384842109073037430534552967848880138209072833204099562102754320546562804427634734910553315231438396541851029869585515337192180369671232750966716209283615684264684629882815193480150228563277278771434722455144321780877824810935612946407239083993185751100931032587676490144287965084987680885118374600009366513259284752557056050544642015362325121910784298321235975820337673378242100764737260043748505386517161470463765727898916507176772136693049222833871648836384324209687805367544452546961464222132584078035648297008162667035287885482741163279262126971360050396391298056814304668425679917818650607074948607774322812886644556987116321873194455024015934101684375213717322131263454979198113726066860438128750496701307687652499352205695371606994557528566790008271627496854300004780429346547241476453890400764805608147213705415759597296181582191450102334939731457939010108928475980278115213797790524282072453211351225936617785711345203097068731733579056210380365545196221988266791040442384566977125525570981046557866039671590228996977424807125039768317304212830695750077503194285664391594767716177744527327259883340230229227129191536425788389825300108276327474950897866777310189052498592591442741334209954457168227894071238294287170052098196149238034480159165040221874303998801921007074128384654863977222394817634777124322348997026607010932601880331540657460824610090148239314558177547247544014878753775790612102464774432614270172948452799030887689461860695925775646836798610351726348132089659353192358547544548634071545497904641535053340630055606552755794261981042653537062409834729608567898014739678729048516431055300416811052292472609993249534176360718561990490071095306633977497769422085518818975120362814671900863779595189655143575675138488200730263017290103352587122537062140000443137982593919458073550708819603256599110647921816336560676198158972675121417596145409199178205351215149718343602027079238507827903801239332895480191703029564997050983109162349597481301193071761520096767282140783015416816093138873427874645185503331686039588936236187291067328598189295553958345449400397137410871359456225800172718822723771520470778366124288284852942551659848256863587499526276816255142160640504909560543967537305978111281255945894811285635769067260519359581892065380450515904789394206798399344656452971633372777285639977715813416543356268163424001440537432432243063594558472958925608435518980661708999059560604519950141507167522865384180219038167420020887739216213600655766608950297451782526043736374950528401294965500577764394795300362857016233200134714443964969834834867812647240043172060385589355083671021152926857856088826359905649981206981310073255906588975454292113939228494081431625696900928507023143243562015028045526614137561299562469947416185920940258444891644019810485012817379420842812897560684687367455653774023254918603907274728274118044064394529728385809380609271004799183277718678039141188041110532289965966021401197626153159341795467140324630469824047823640852454975119577505879302297398967743593582636330831104006110794011117186554456936271459029608240724342493143657580822490828606063568968013890329686526161799774633450649011086370411442907281237619267788265302668404991172641591817081208722530876930971040128257742816265297698275396438994365663971904088654606249164041991083585315799553834046830066106365253054461483184369994615945134438315554755804939277689991017712753158229367420056603257385779588198616270244787213492083571994515004935244009544719490069395540730672660654351469072677659877935461044240711762554747038488414477501819607472267351860826940796939081087062546859954857786079276162546195058189877009477935260898902339278423656746926780043455938583925523645767996397367295638787147230246445365830324833913614288115916048773461447599365798453595113140520330246189072269210930894294458681841196932187517099769634756984586616959792473370206805730661624484302324090035402576426487997364346096967360651180144747149223238689242018962037959672155041722849115564566877053643817688471501705197974872440439269529134792654429550334007796359413426439723143647301279396735533450720996824081824716810739266842668573786533835483463511711211369613848642117594151204860946396278052567846334983581484758202629037754884354500070582452242386716442692002588939543281710559812527336964492072292112976381926155011612107969236126478280750472342865730964627947584583568696413167901231798699255584863252736431349728692123358641815531031017494525307110310836608567305537512039436576131308975077948941747758946926909293272353488987662645514334474144834799779356386894415746304392577145550652100533900905993449503418818379586463625382174378632519008815816012701959706558308905471315096553070085346388881065562779072956206620528154045153050722102080320197470799256658881075637588154775567944095117348545620937420617363592361173247242251522133098387698569904846704142636693818393908828573180444035059640644799896967288163568590527998402114160579491059421375498484519173000877929823759708827629986374257147453361568234905929339518934584181307403755352184640201405775687562493989444928789945432138492457957547510210656791074997700978313497390862142729715142661497501475868335314586023289076278126109316208877755848302735883838624482187377417346675852379356373717563088514844464419515938492152248902919589511078429835270955663056207255291976880560237882876325925879939064530512541037673240976544708991819324270814116318804097162983603701980462118976851894962690752396075968023905281721439182669365713276128090923594129497105557533693779442911560455928087030238646428931094887490392383863014789430756562589735397043046558179832981488866281449158412040954778821251867535968092354641551695852468001154311709453371406073465540709866984641653047419755084495242459740352684949529975673310706474077227831125622564535837795755865115446196163553281310107692014340248323767956153636495955244621260028099230826562153793234205653317854600939221743818609683877411111124475915745602439705718086007943895083351430485668170526007520492843725834871525168726105506354946826204917364720304948665664210627827774567321958047817227295746017076689038201678544318281758338341597171309200963861655509562566555438465223160166166677589774429194334901376475225717933673881114773827148921575759178303864505287894712377246739836320969424895105873713329060685316617609876390304411187969410646703555827478624915835065935205916133017833735786022553558463091724060651286829440267863317725662424909966775412637005221623882387343589705008224424718188859306903007839370809001197400356153053718521206767516190778973380582681083420268984599548085274875229448283194922107617041558942118342893340709615237490754836744196142270058004435826595375719784103300396069289532227140235688737426862777415109298426242831309332510118262461414372688851046114606783746289345280714463966558623949030580204959424763412263516699744574032049691907229071486223631189122049124710566157174250388626610165790635262835084871687877915826532436418077496689249776136228779767985906857564797282392170068638258595912918052664900498667395438284043493494565096012876044112081746366728892502690623654568925357137109661002297781772543182451890987948565899850466831419137299633571441877211896495695917582732612309876050555346247592951125497222803571455741364912092394983131783867022864494464424467519427224800706772814841757926321005568796664466092053276782458903125803966714594775466356484638608642484839615267611775341290861477689348102247959462073150376958808495248283092027145011402067334504880577342184892007386145216352245379969817283584510835062254395721264264587961725268697911365373932214356218526552730142160271734074021874666743080237323606988240565616542968111096638042425456011908251675758107663811337085807236279758740321965715479904235672861219393812110216033205602245642041695136493883312652060552440526773002684752579587922320254182584715318179753620240555522769167667424553521836726634018716048947871617898973553869111597479495141958913953568256183451670193975092663686424135447780627291154579865389157449023389446297609767993251520925055554213780860476228247167007757250617025285961576495950989231904105558250512560957836181202901267318151982626163676927092941279602616013787253532734051744823442551257568474015763218564311494561222258480054823646205734092387186457374808132185261394238981847665841869061324039001793253313468730685107884237294717091624287013398072126932274321924617253232825293354565575826137656462362199687831648182831103832774624988410988291023471525443140978051599762938156142035623051079168567513424395544722361141397162560214426047902083814557199360333117530882356106865529901605833167340493055318919993542292285614218296448288985425698556988192035863257251149517168879548558567285721700442894755600647753966340908108703540451043917448940545434357239129542884350914635996081211564944634756651143126318208137565995448313443796935626405415454607814742906789437373877495559034389519428462133087285709043437939916897889734098383451960115267681651090219377228449719067410937221299543516081989615453408019529762021944701199923639011116520910843116492705573262102568525755251881153928044921761846154418079700852264461640049562120185455691155772666050353624370440250272380017321820863415028376788981620089339630380849000959863286065939598640013662668328604279519947164158744553251138796733618436101363704938579493972322003971597118122799370370238918993315393927054821027181899321928265678620101599819121290571729181332681942958834953834695366059815597039626864452541068675088160016778960595084840920070802714472574558993434800259251077861884443482112273360432002006328451049349942411446358821707204089395316564552246278529010490738072574838475105660618032861898856286798458586143548308718918915278989612999290878132345782704086413648797156021068183596804492869950347726177750557797359062027741415473185514871953011763252245410526032538285394270933807622477333194899162253356666819605970413724574949471803131517024174965139800951547405430831276607808361566817072155884851276503768346604130643898341636032749240059763252753935817897901006130990424973547368261110194968753080750279690142692118734942569193267774790417487796188271387695972752790543795052484493823778047103946834870494170819818438564670599031662936745481759163136433383905140607678397830476395558078512727229484432011932229569192444214238300903030904467238500802040001387282970736520165730275503526420875166132214553350181896911483469907739743196532258423507040989277446671785794374402582158929365240544136225746410416295543624169633443329547222472444290033410428124021708183011745019847991536071852448107301819517623999095218993765684816195450967245387513773507446757056813160834837370058261752008883186581973331041793093162040170534732809136156436047369643803389372015755818017868284484914980149017631275924875279110369722734498206152361326057010713438957354348973980764216256015397771488879497733488791400973332049927950537763160457972921713999124660391727661238688827891260684489695911711935051747037537197049677482798859651628055397054569952147888571291013585099800010536761171242388666358195541317556333767804862604463454533245063202692974207195405245540404324859132655862921536020659473675690852292313311419300102550653435934530662699803072206309184191158447445686617806157712409992649916820499125789394554674128827840704572437356948658538506810963725070039970246278934466740469629358657765173754506650803831987448951148326374559276714564764490195652681616942273229345034819284061567024430993359677481037820551150922195412070140194182722861378114542306482279454318801341305163809796334868973000884880855868250365168785990438975430393543201241554714313240575789933229516225442906374211618930794348705902654672425225079383785660710840410121968849148450828736411357945682227494616658869754100773105230463139828182874967829875486636526171666607048144161584998625445877318312522694720738592743185687522479305696437567348031125025316009719390582784604322890203389613442399807133252463691238761839113727291356688355755901290981529149658409936387382423568720404613815346337650578409108259100411099323433324138402209973326652468550623186016086236684446739147147267812903268699781687512689758982621863066706885302573957035868131618664145565949127384979621015591326655075074025212113620062807366879831454612033924568938256720233984105758844771931462649640889001626577431829557825175584923511188395341044158274905390646845639180253948718644189416487195307062466732775792887693086899221207211004432654801406766422686271621588355651032691846767301804007104139549317524339509580410308355596013176305249108580770401823068622187430236187553096383914353618632591951492833346092642526042299128855913619870354749270183744470364894055970415629057810008577352243554187975752994206612805231221132804334139747651838412509860014903623406499979294849498623730195213486790623437464157893268283728333154563305505518818081191975606949879187421936659871226859662062291279377270965271129304883902318005704467390440200876231160887536907145403828935491485760418683338060642553574137789716938098972275707926613136335409155658509057785776629347903648180546246825731773874659178773613117366323721818265193962297790887417287819080337312936679558006842629957876007365777108296485612937155476420556975423604903106842365097773062825185382577037826437736829754751362594120123135816835272599290114673874539636112602170653350072054208712698747179979908922102272241469193037500761012320300342619043661986748007659836143466266737869244301943351996379733296351115690947283339914177650685212451374720964671124701013068815874997933590228024133270931350495030655589777764933092308238070295239061159869965132955184345955898319238454647546662595786075537623225374708128725281317599128517558472993321400172949281679111427048657620803374957787691398581695499075950112127006717272466475015841783334662900732922858828365402181045101603500112740956037819868028172154102142390844677126004130807131158044812875282802010548576768035239346570021395362218397334387133214149696296032265921345484529020147957636102294485797001029012254670349137462863296009592122153736085574718945987609233379705695155110128772288300602747385001914240761877368399632270898139711485395264453339700761471906487660902946228895405976890830351327382652238238633391462429053440097210464708450160988488461450704456972954958886961052629427138871041385066205142625214290888377190447756617524120852056169312336951451795168799686752502572719849825051332253437224156185617250726630758133820321365231263058546543369244122142606585536291829202329923585565033775746760665227521060601014134334814607301506691691022792171580175642345536552064121920059187019273046696643762427777087418321074098062298361358122752585583729278714490994905691023558027014831636905356368675876620538352471706647820652665417267527566118250654843655711822428153021531074539872250061318209657541419634625538893634972946096319113457622180058789338722011133131900611009720461440785152250539601921570326950727952091041933617504266937009799796508890498981166247356536196366444840494390694176796739940726752446768734411525901562380178075842372528696146592623042721517359716899616031191036922615312119911693770484742362206592963066653022831380887794684858172085226091424612664524756714274850989061818567219816098246677585403886457694360275534390169434272870129913930321321710872503096409685341914085829969940685132825570125330085692855967433542770457100032008403167237823706602823721362870839680268833035985670118561767223542205635210902531472106901281919366181337255052918605417413878613120531518335214042841604440058889390672294300403633008885288082493544262153995621697367032032228982357982449644624164715713946973871249362358494071980471803360763680717833390974304066217113860048467739364210907219646146509438537701412745768514614095278144799326246344348783939672079391289862346296561565846716455729841585008497506330731638483606708494072883200493823170281415700145863343541797741846449232601955688774437616197473845062432380770338938445266484514808638021317390232430046084136036940186901902952693195401439774634834538952448954424052006697098378791529066130798827074041967276075373886105501259297317015925914538105818138708475044634058792623532189395916115650892218437510729811158164762526354060766665017202006529814088273026408661295508024982742272282411151516544604101539926207279743404739805155486796940490960819999675150276974132683700240650694464773793112692436780264566811434148584957962734477669111171742321285980420196042371737711601358501448462992126697351335244413162536725854609553584123482579854321934598370296707836341358885546731380354103327073101299548629987252361732692419870151984703172753621613278796911438979418077417539269806023061715270452212119094392155131557644881867707063646863574664063375029635007448255414892355117967717748956239965415209573939034460468916604060774878558713024398801372557679153391985676073627046562195177034940277029289191407935582321890054540513875641933801717108601282789450469112291577214778942142071414752472271889163638522707078098199006369229633022878494645081673195885653998781229090813623261889826430093945472587672225859073869726975169650667291143562748964607727888253900758366765568882533465774362703032649075384647352635977591560428425007537248832978445407069868215991225136163937025685155465925239907276626950592295765998655029967848837663610753351947274175551578684649361166765581877134885645807940880367335403597578801258836149363984691961780606227147300695466741841661011951125382372062586982080308711991990164531581478732874130805844200567059934677045609354291818670283213111678147056404114561116463470831752585904487604514941297792978347614120264985700751377288253533538593942471553628817546198046577606252460911307429755641404065791229603800311136609856994910092528051662003984789327745814535222416379936694613703828384471257534867463529483460921015107121969667415139162908123235735424132173690325128539171833315770955742315492545886020324881905841287527164436968785358127008176312297101544278053086514655322892387956022743905205976074119188162946071245820317153726129806983000431164036569589595309894950557064050354183822138938766885964035460940264219400143671616285557812272656269457408360022265797522110339735251224363953441022540903313269493907116884274332687631202758337255699173621307154302067898237666641154585302119136278463070276937820775257769809498072838934094506419597903438715464841172809208829380378443564001401888961039948516808229475419324036591430327369007596337400936909064974175487198470448278192218648393743781651233982621976798765849972616961371688075938119119333976660368544736679687623867118024530669638093996142738759516150876602369928712474679613237615645527470628765480854969166489949965468810756046604965807271425997304730132003402455625098204186268684285701292664351146197349317190749782894672083468459765677664906872652213140166645232221469334944281634646997810435332586175425939962202174521710563453724296734921032353027753339285467241397564965517417234463289245539301565782723129781200864696106197490793980987206912729803573415047890132465382804798429627821971114908300977398898836996476436920619982271744209764652033079200144350351560550572476520401413971497878777611261016458090229680267964657169052144639222782787597717252148581059915316929931531469515648871611826523191798622924002144752303412950619300521590204120044773438261429580713834490216848230753147219217466742011226654066920410164440797101929353922018953051680885487231495795914849088269230276591791028999637134330322315960487616460060719534174689034132674340152367021061329686595153594453132547153073065757181779476670748134160698824899715842642025989562415870450574875798670410215855980965234450222012325929262822974428976774449750566874189303771286681308764741394090147548764615125002364631333975646755163049968914071421163063957031570878175069063565150131954221762761590006233412988718267022986418133577770771374034873163135914363209707328262037746774207258725244768587962717765354226836620001704927081152689372303305615622857923283511845055394951039854342170656509990104160972505181581646304133183002970252803897107502497172489540657100612997762796184129996483688692989023993776351319132693599298179118586516588276488246713010123674897540644856228618868761930738670210646463927122558758148971618711419013496626068329446606165115732843581338842558987447793254981955045902288881013804186512814900159175164370757497437058944768246231123110627294136318721520745852024476077766215417499134956920145975173390909022654120666839745194812241108023945498939479813297803993547722994962522416551430968949729150840776512460684779681291768156461520152316192060370995675654415390143384990560635304511539675471998190866891779127456171169982296997393712269474012848592140396149850852719403759154118196369768021243752343883302983340439948101790536227164781700884551864865475807235153312795904881620432524088278808725691623776778027235982824750597329780772242685604442217852909859738739181504344135931863038028957955555828325253963494103654197904136355829176760910510304370512225589035839342183389058818306174983714510519935560331277064748809555472027175875229471350136254508995165385935015022943633850600424482251611785777776094008919187776270080989726762797282975999945317786438008496080897231839770793915839037344304107097104374961523709616825208580820097847876653859218784786008057054169700530625175133327077056563324206585406759287125594353638120581492131208242454701958651366129282023971937921332667537403410673033223225239226387504228612368910650047287370775957290480014809464929227547408168052063194140554618597397926971164902802195325286554300934549449677305837213713280547288839173470949623664580560094797906632237115983829734275825084515475534574234187458026811100743546407760452060587627708267146466848270903696484307674452510351428343076738089089019567365238055597848598331824224595988477649891189314164445347328726824078627295719439919271457456524987736519898738413476170872239755982295025730627410404560338331983742656066814897780660751973494734929091063329067574199225687886066312477765887803674238021692939511362287751213140324879748164001353111053772905960232579551986392293527308425393771340462188148782190162691090845659820072575822639639587336512388241406763983075748747993198645381730918882434435860730917389209218762764081703047796517101583979280370931589183603786525913421800400500166226319163644129594691801212060811748743303857018788371457598742173308505277210052070329835402379000178254261007677557166965839363076058748570370581573336942223245614360775816353186340486362349515011402275316039383431356605996030026968895099836670151678060567455231826457156402947678476827092624970582217222436538279102501389397160189591962433074298239763988884574865200004612895806507393633341142891899992239689574585276972261182665914942601775086169648712624483728589124315215261854190097658012154649962076811059569840596974119125266904704111507296162506956714830623207715538122052926325947985772213435490526819792251344804573989091485562180552082365713778199429507463103329800048691549089744403338820815422710094600656580376555662488692102312449488722355316790035377254511142253381967175420856614370936250978170102727795251533610323183723762265962748215898624097929411347171179418965991604452990599305214489893979538118144957020702889147205263526388935093220388603052455948364735878445155358272019529894484263596012790784345968362062837889196079411853280415455454231851621101596171985860614282344455560061492928778384114094573399883127961789545232948765572605997237032383765715727361008873632210038418856015213297857702159322336266454968998012456921086821611487212795712598949222113922341997996737370399553341607144442451330616584549533746988384539507984400690327228675389050061707135861199229386807672453182447312603040348112253725100980691395428621524841069013485247634797377553294811555147524175095830268836082125948483390884732549065194665935807748709805383086795405734696993906513101664512092749411521625306446351379661569237058706483617401565056691472550901023669676432227109545708470096314806353018904424163173001194440487327076056744071225258637590579298390415186909492088482337745821760107597630508657318226395810586157911702103642860805100074145927947675002953074037583565240571352276525209369587558898969264153752280486635225139774809306446648357976532339158318700953412526295590067667099935641559138661992667960801810368960836025775069819813733357272378999053093694819809972220289778213000653553068180710304444559897990688005026297470991440521642049073119487728742446333963021916791318091190630543268082178658628437750002191940119168202265392282360597371446587045191492977638761584294160558749863368135808789274617168776599408691788303723487719075912239877558818005853987491993363222242907413425019529146802632485158626840481261239118821584217381114834566407893732886628089716445143904811960068457386974227686019840223130568469026122753962101633074356490103941799254434596370297535874547680774261710207318383119550625929982339545523467171886051664611398825700489290267232319020278738398272606861917518160938859512278472770114326775528239329703605030800504932952750923510206130081674548902426898120330543378246867949748580831905652856785015293627711338388424892559570293756636830529425977074643205883387459458499849267512598017084593810084073524448959517472312382941759429818605633784934755132304344246314788536359295314012062951687236739642951251581137242499818543526866462890139887265225809622114088633096255381322043576574427318421379270046750818195318105568898979550901877648117939386151808602756576115013582805445640725425535939264665436655110079965716580292346540508436243888942283127864403736648630578734356870612953020678199750821064617307364143803399718794406978679697557660772417817320698907145898104895187892457322017618035742851434179251095534459491938469269201076428929309170577966874702170482914943169410576939071139218385201184660659812213755859626925124910430370965054760652853262767441945314736242891596634804765606747059333243244439042079523150885681888035330304854942593444004721472439648492270040757345252987923153692687355712153788598261900770729423320913315482694393648167913517951211923209049187575766032394584332347073877575453361695859768211860712221839480795127195693578505888591400342812000053357975457193821441011975279176102937212960406467326066159956816014796926806112965014212196104806806135357235092254352809309953723649065540112751245184644033419698687745426262801077760671475109438344310897012882135553034302401480680700612637719799934914001214859701637845921716383033411254600375183419869241552897136003492776231773232675393325706783666257946349948114279296604768503019602516818820572800903452060336691102494657321232049584429330435961184389009566228275464000494619092962595402145146375153257240929909486163454913253968389067425819384847831604328725418227474572866104290920085868691319645515146026580862446757791647463526451346524316105323520979424065687058722320505652911656386249477265910960862169878286008063061401139518228636677259217118608861415947175984777725233283989462785641886866642161192380155446050038812844736202092731999277494029063839187641574877221954615215566888872704575226062254343190954915992059099905300372152906027345346862339148989943719348796917791994060585876644949592404999966554053976465931474210644592328305680669119301105321122355631466225990397933361684417189485571367851891079006293625578181332924349229833526296729367354056961671840639466534016425799096459321579359542972447015151146816608605459941510757106614579104249049750993426207803635808925529311679844642333381232672610900817873806917317794328070148459101352447178238706108706466615498496006518903359833562240992044189813350715405803804723855614751756723702676198390259615214646927723411051557795609478862157615845418209965410390952154863505614929449328288299617129313385385260395611591062350814517258677511449601156053884586160834976901521388457303444432229295715347157697490205995690853006655765598186563084733474296170393281956552024415584629957311194885961609033944002376559263839502592995591184689201829880345203325021433113127993870213554180180067202246054487685055138803865399971208923061786577735129321630368888389124846897462606017354774085264127971400781124885707046774644416096680302226738472743659239415872479340586365346407010686474966534592179263432249005173612439286041478911260332356713120147921208164409934334012416999322796357543406177911796774012741244093444666155464714656692245330314581152459968096796695058282447462439996534311238785770066963059590395215301747568045474051901665378549123133828883414449117293825252663057076571805903023040094493515000485281337383725623741453005270490529373472609625239374907408191496537343669392103026321116288645620430969069272378711147481011410685818119014355203523744783680650173400627449767171293397470406274976090145637972662096605649818627600728822063722671817657629938969694903994494656026186962705160847041136831837950946009251148818974841252798880271123441986987211732905547080963684580794693943102972608733593127660313160537759585519546840238147385448070089606215642248808360710431285107424583452908091240640623600192219760209295079124294649272755841180265627153579818741081176032919037727386343193097483417042973578625132551792912610632567858520117523514708978134157589848819788216383087891819059064071818315042577888182231439733608374922690494492900879129296122821978777739321186491686622483631608800695936706741569087558841986929702782398687424182741030857909171190404433516484929186451225734190405874826814953148432091351118238419323950191902138411387196364574009494085386277942742647846113741527345601735801699646031498126614452096057107893672480018783030456619624633832282897729274587905830128353158332895000039241506826811141429176178150460541984128614447642996168849434435745679046066123734624245694244339804302761314515263421348327051658385695193942811910194776125180822796952272246437472332296165098101051208015240065018548010356350456815220669906354600693335800654021815420868845729138108705861242775704020761520624306905994161148295618531317741804461884180431218334955194545729926832367044982689656084295855530053894149427794014505567384388795402485438370159642883960911019535519104681749111443237213715738898308918075265451608119533399148911760549573385164071419748663477377636625166912969669539457846234906903110024238974899370792844622095978920707876576784709541658751517638656422389724447755160311069649080434964754381654778744561001442846443088844597954862739014557800397751653680999340380383600051335848234819251942090038091030657547552927275402632413879654479942276178239635820000168136076311904389133586568831342894355615840913710848091216611814994280511405337328981480986833730256966362761421854105763144923934962324224422354359661401027151897914996233677408659896895002798138500511840079477197302395374416761018439734372182603794976919784472590652289813007855266342229700178766063276796395213798945684555973756618736142382865838960417998516360202312232680514160789601705248630418243477569521848620892005692485422788855624065696822193811532699809461849021706441085251147843661197311389158286162352954571106561590663389598793570928413223648237115964018257867346085739294409723850512777405199545683283235232171989603436031280364357639946605437369225636933137820403135145293721488889484514984619248278162971556368179105600635175819716937168213909934176480995405791948055832240933590959837777431851413479480996989421183160419235082988843208330216603581106905775597131964673034528671413018873619730918673469122001371968226995572161054487291423243357253484140731388431917060326996736481071134738700974011549219203471712506825125870549663797754783439139092820623811534232981172372182207679607423235414967617411808892436627654057230934585218292434274270344332862287953470111379317725321307734097522313326380639028248776227012854829581506877058084952762784821733691396878586507992058246848284079998132831368731370431568975151639656258200847029523771341270955111382377653731731187166933660701663951938920220156678809683888464663354149949691259544649498478845680930150362757697937082561503041813035096812395158750513741294917595512197060793546437611337804784980733368472104841495872644361840770775025635371256606995430119691373546997700295904646906708336757370499099921579128777884344431758912858843373827963769014670208878320930991513295340679744015117456254199469730509452649140964431605966795742537444608340754943615119134577973949106875503500643962854010331970316628073984968760978572242104402081888976643811371211208923485980482423138291579519786493861864333116584631045806590273889271580617948952291268170155949003175090812156951613173474892283300840006973736824968256263264962657147718972940179735356448295867657116650622473836050483474279453806010555213301799936574394200658878079596306431656319265956459710514367251196778642443537863506118961141807514329868354414774646211950706815551424970948750733132454657336384616181780207740390290084147793512303209613672044954446317998390763400565238455697068743934710741354369562230328505927345205037747098062104390751578264593706162058266772901967128129524373248941637386447600794815160202277686356908601678597088851652684513669847030744314559296621549350035438113667051689279470823713515336904732091443743994678005564320455757212459094025509952313226069744858402938424596769831667149075425681218122314877278293706963957523825638544375943603637402643926166540258975916398488528146259639444864761045491644863603838128480519511125096466819012765431702367732956036264211471784253878560223462835115973517514588249582230435352648703991302789878223976523943441735702125535646729631583854866328149438793474560206665308903586768414490845816269039052324818851706176510985410334627756857509645716342359517872805924220800952003038915555495277775056100413538775317118902584562352693662050899604016330048819602826452853214842427767027443571348728719925514352906078474534354596267261780757405657700168690666042160772065755281197445388183610954015056150037690720337915961825501070612589386125560465238026078699268133327435354034286498045640946385719941402523777953039943771984264381016329296575209935390185911069438837487784878278578172628315615313713855848385578399778540708913722938405694274136695565309710251200729414241717323843909859116596386771020372038698116624182049759257206775002293713425532850557404014456670566291076675969337676230371043421861369752081991300502284815801944366435768937813030995273119065302583886588727999509849846595626892830556246599505897975776030861036462910671207477484386029107191351054492480696820567612465520181167755562573976644377400775508931575050521977142204756298688596310162470397577198394073603980813718989995889853059339737334263274171518961934112376502998603950751103270037515070739150072506683658001076038014516377791298747520340950430076904216001013889839834179957031968128457529510094645447666259987536295675990001974589050283928160597789516307169998484743378427368337449027968661087737926943447244594169095121675504286204115892844070437530141681986436451341144404034227348914647822383065165562457527044856158743317771964786738170277816730339868458907778113452055087840335576503296803200478202688622823122863708710262108014886541077627248432645356071441938330363116124229808420741047895119238397380114685686071800558637614197884674681761779300495753425056557498439724170219767717963888564348765714315202528599745190755814577161381352943251646987537048214580620969749670524201638206018248924447208077088277966208656776598142044571754937362127375670281922355237395721424845369212800921767669248297499884215830603046761361028249381702644483494728780697074977897123770491955756850947753694356409710127402331660353907533689803939883589313457626093777618267004929723704309851767469054626329229802549976511758695106919236374867847104758153977924931996676432255918502434629706718127722577227601983780777850615628153604401363824740199963534690785925952257044015144455240054012449855614376122402974764044797160823102389615563135921436471957230632239086306198383484568495187127750070989616188680414880856405005762618333877944658254158346683405167574251750779081984630951452387955588651803871005385103136779840471935046045602506427475069228147813462533505420162159832696723266543205129000201117826729956027118599723457797532779179828330002308760758523023836136618932111130825764508843274934090958941872499276671973102162602767585861735528483045131469099300597244545715281133295000157839024497970031290705775974480326637692124066020016334781675846795553731488481500664140536796884119089373248967998580449576484630486513652193867517539089900538693918281317662701856433821079241837198538436317038792471807184555798420610149922269999061064893015923547139635983034373037204321564634078320799196772986383399748086298751941675557326130564945756164612847436392415024611282158342970085487968125252994666977405144895102136749453370958298985422038511330204185646733327209877693324484859623925171908313321939362176981700898081037835772261579021659234492339381408511830372199596110764307543208131482973344254526483886185133501086884867503079543649933416090349152723561517038948685205390735696742134962429034330257818380529993944503186978960560984967851442418559209374173346905155971710414031938222987237111703002545550166971118447513074709943673374765215238667251452805395952076036367877011757566481417070010503166622570842111251375510111731232849445362533641339925571018885063244256087869042403101441900804429708807904263428563153207674618834363229464649791026529181324308861376142032706659428574968239012640135288598644267248357783656704687029154041095750360021400246685715551212648591421417143007733743322377894013653628317567314292302665240750256531242554260311444318408267974871698071053626878892514137406079445037921014216661367455205934566930805194394256831768496506146029086786222145817175250510558364153628709102024366716910830059939240575289488600916741145194111760921396665695070457600652672995976979877197946197298791049719231401036324410632689250945547900380172726244491690586317027106923192673172333789545046698304438550564247427914578013742735924115766426942238696288619354011544219824989432789262791143237296905418225166322159704271279728773502038685447287295981615709701067346289284641332340365648069697315788283422500432363061107008164017976311876672302515289623069685135162966078080094536453815111358667184859757882029286476936959572117945599186039252099491712286853954902523014995791236464173129127015292480342120501241269080574841838097661093021002460988557871401819085427309525981454638234570885726418371099647821255001180968844647067836950790480127573508444748153204140349381768689605820735286768262658084200078896619229718290420941157264296810446793254668400955330362723863978402787243451213547930780918674942049577274196081686673513813692938276828569935100366490656516386799287150218349691497465437279324084631299339010252732184480485317525756368020014554826255825190303401105704453405532620335598881652508724862400537558001046945296322451729349580495958670667034801266917904937919865340593797743732306698480895337075720685703730522732728056694833826127463413385104615096027904204006009143686710508123707671059904055661537466760005696898165211868568882147360580167186876770732122410010422905011661451408629292870894356397642392318820710439552291001796760289740649249795510231924967171309997823729336790072499113669273273267879575875174771027781349580536298996294948244789478045178740006614102325669449450310752644693201811359479271128556504720641469537857086623300353908628156413545634133399066593257603063405440470164901152800243810815910949643147313142948512740686278607086731893023957136960888062928474409889242834708829376493247968841912778404502583496890100018372204833255446516166075650967658258173172832649286521374976561544377986621851375549104689584726479338517981285032689815548683557652576599116827039474852270690425834333858402207052995816697200803626698522040607507470589804840889675437134005954702921281575611877147661118643880029833319219089200895989966131633008892735683676059485746391739382372002873329122279267496291158337485970482155067313564483590914559019059064454856359685109320740425994427541803837166050961088933732432619134107787341287715111656222747612804026681150939013462100560042695153228239961619367404993752670398069498570124010840090310392578227800951064655890759795792979522622850612421026419379401315199425542767821979548670318753933875243237855541766581954047557181763844954551272412495940077206366006407084424869140191102056729457753296099324612202225643309510993729949988373929479117189846093589377461038798965497758161584365257206267001371293138847766176230973295112339004900062629511584252954185854717996066039859543093926972830015332407685488478404233415979949749714121560033840754200644106740483641439020126827653549971711225080441814263290837413899554100961725175347572225258108269302822669475766435733111176158703779121556615930552288743620418751202455768563211074782212489663651729872865594565757510280858381577497142685230937803757877080725861819192541575428848810907860252643024696638003094130536037419039589871746163686770488064682976492832167264492576978989542271332172511589039827775960048454824386975971902046719989685926902615027116746522094951659826282040771817655602071118615387048595842931111111462950742451646836398605889433830246895574100094884265564886175166434617006803370567892185501999190676131187856514376660215704677990592140931892227005853074652035071419001605867157035989132493111531475080964567084729784261736594349835072331069519913199259754500179475877290178601717027643267002551961038290990047409138405543281428504580817870315632380771246749247743188243814290663797886698102656101039996912857176406921640676030384653302874393108307541003091044789602056436527178438025488489482888832915157495623369934866941196138790288052744051297015079867206607934176753058077827400896394283562663629948029036275607004071878365330369509552515625085250491647391848238403230207877250798821233070189542445408624453202705963144567499451199228666655397410540594515171190381616656822808347542540571730970629342909790570921173888562648292570513934720054569639999262011192362876841837068046051217976348597297081873187874446064138972871743541191594986395171884998986712939773258030170508899597521921050278971425731377407003921562136245869969514794108528919464678539375278340177044313363095995964098990211060363034818977072422048511725436732416435132938326753358957906280182193269852503220729809105415001659590704764456810649158085028108837761678361745829243890783754485643969480923573338284640511919139664850379649398192343452121669232257365182730234182911115515221696633282060565984824038153203132241655028478982246554900360424212940734946780246258673198999923023985015179582692897368471176497799515351639260175704258480612266106834463458042134022615287470805113794312683287264054812959782760698926720392778099331937135738112351822891713981565005199946997793438042120225568216680719785804688743936703433547700645368627616848974196671690827903722370191658127230750817855552558085678130017421335156569557474295027299664514214561298134487915648488215246141307801074080264377312682029636376676198825557554380790505596198966457394256622841633872671689196009381382367306171151723816571434076319472319623006688390164638220426940830095334279083795300662510972405593033980557461881476325668583738890421618492537768198081799739102876819148712061337899666599373544255648451054664605154389770481360262485644537921617107589233238295472288145982380333519920302143439325119537009274803551885744532501671587218580187284338516676970378685571252962630199678432474061515712834461190014573335553900619351522417189235595394664278602527535778799844006110686441456803217628521176036825273634339467064132662007907556196860275869101762650594603457697020825707732272227201168957597629542854108685538349782300209090867548342732111048951987548958717128789196202928559383145393211524252351180071359224639219265313425874250199524954529178814838575318733271711098120877011523024869042764911113927435414388550154814840117855088372730344490593306137770657285284133295785212839752488704012268097043043858849293757744185407049194091418944680468497614719667218010610149467975137101972460953103419925462718299188300164165905643572239440253849885250319214066765460370104538489476991599323467549413524071258940216700799044672066262334061548768203522514021265847907099687315901056695078817020448145424120458686416232815892525182077068952230259448156773553465485258423825466006358930800825496678788799210840125783283213038162536451459741106137628177702606320737336682275977441276894867458737703735274736112300853916832067669126463867245405509771162946736071494400498938056798926954838225270236413842778172585847862891652155812737599655837740694490317182764858026691816418318342617820370948423985309114259959924155942457944738402301331807317132498317148962340105981492537697409522544899627821049143328253598154388013637202572568314169939422372911359044520182526155365931441942498496673138360514106591824587419403989269996141500735776472583616104512840432339349550969139355866706299468240440265404771218660446367688065346210421057357372107752909710679092424881579719914071980783320436829559148083158975998728030152444721595301973049990630412117999489781039294438601451792928140865627160239370005985217198668278624159352827629784197975104830843304239073188449376242760430880946424332716627302860334796004338606640328933745989443072705117881681514217355614925282163800117789171981161173906454080648208988472627736747122997464556373382591968557932634711026703841767294182685928417375005409572750821786575011403521827144279709057991980952571634036550681067504157361331265693525957633586065197317544235296747940163407117028031636887413070714038801815231600865366361246350968478311496586413608373511780569943915086466848948173801392957792770170436349596533902258983457148114953126307015372568648014842253575822907435076635552274811437677603846284515828561598472294890381765523162560355213923336477226955480076451822005841894551144835716194599741729586814053600292039265428327707798482956069708363619594614646982118085064248798206541648816981026939464711266736160753260725451831947516809521782696252846011494585339888179824606409873296193849241397642942743865299275397457357418887742708969513583879310850030010914348402455294407866715483842101611291909575025518787933281444818505074045277284325445738966421738272768062482139448672787031261992373017720038521654902651582952782946253274997354292877362530287388676882172953826580729551302093228913422927391911357338233544275306307148134092010547395013910225567499671655768604063901685810159759608729906590140998647917054344509128942618893889178728713280604813292003698800942785701368019152456915095562759888586831327822978167687293334329420776878879446110700374307791101709965221041631426867972173502405313635960039931532740377416183366662403636336272118078620840592065892127887438816799245068398171541320992088948622813488750030216427832215468893880691599335199994162934604033956741609891096918275100425500912737607236388522400593963101862037188448174310536784074814919951708630644225884008505446746794322666604836982649360481771267277688587780534415064051977798106863424116078804245235841041550504404396409097330192763190275795304263336430681664952732766190653265139016980843365530494415699303295416506686661894250731943822711395697645054439220650588655886943119199589422970654423105128786255296930462526265731909827689894669765708503528488923955148986319449501400444638483356588271687772315760161356134527540007372379069630360353521284196659360303683158802034896572847163035992325811082612975174771519999405785153774781446284923690300874593995152615378265823986253746718863838335327228839632468483815154236650971414280074463166229510827215826460241522590804594673013123112659316155879401264925117310280136934083183774535317161939817540015867219737787891224378459362328984142483470304407446438002118364938350201587872688012383006242363593100911424109284679945885583030002229687933221928236711725540715534478860206033158243831148510772990707383550374659156987668601147837280094830496316423566527555519874665818584452117677019249828704591199363486431393293015283873198007775821702818158339350931999915191749016320076422480015051849245574933813490807342823632267859434432613569726641768712200355617466740000218967083528087665809337002562393685029795031278913641005853303087896025668004546654546365795584638215780737992231529293508842224625718918374733413062793622925080584718888955073435247967113919478629477643736507432131877091118604716482843800172944040076646298598677357785109976610045558671814115284863106089842457120780162912031946212339451843916668108832874008001804276270402502904570322794946530917378314562465240554420875303433569126210189124858774247402772572950720180577790538197074472666643553383885315875796748208906666077641551001075216915143337440466758186417868684359436015410495067218440010776304210555241887026922234388314297537257777604832762659213533822147073811425233916159774822119810157507462606307440950001905370105344542382914321524835156700855884041644237103786864982956775756012503881767522770315498069688107889056774604265394114119910648438738969052808922399107202011939180151056434252056425250013719629599040976707835455963005866425439984458649239765092338851314521163489171792621871817638612902052707141476714803291596851955484706488287541397131688169105777414746239857221784605339117987118651138319042535253318101345485848857318259784889736028461900139407612806626468680353954508006274910347464588228033484703577786008480402999812676316664320685163935441293648270920671713118404868744408045966341171034168112166683550843134791510470513660510147493834142818950504230880461337573571719087868419705249550482529041593641861158133897716925232165181540804515084424959144995160805538661972917784214649956367522667236430048321403944340410945984489648656187466973086284799404921420714831213089004932635907018153937086182733153005543882508936970132023743675387525814323485994325117213100073905996575699462087459375410266795261479544561214379227854948652631472401019158049565808974882423874151397940580555683521673800347012258797180311486733319914897800787104831083092498587141853129290626580797613382350355815478116405241741753051249826430689021032651998206795740985890898022528709195627847262748911553761816887651098680374360843560748217367142675451556423569657880776300429002230537611605192373952654654016910716535581898810588289498108415728835338031773447651678582809880901766099904711071751321827461618032460837322449024417185175605065130551351627463764826296599280319505726218795168304672497261192257534293332876519912312735626180306659277707030203395044217292914623906257848557753913154291833384349864446809455108019383937132158371681941486638931231550480005305281728381068817593205568430118185340437876624364049756432828693762129884492652940133531090508760162812551182142952322938293197077809033253080871616460572681898308309504859586017130196191411556677396760655877585523609572486554494544289016966596387351379532858509329370293474142339720491744328965809459028105294032097666479334222785036852672458037906319536552941723202640609875761422219328994999590675923189877908447479814449745084125198581782962113246552020947970516188023720582882347291386812257109023563516721444512900472214957870334842974992339630627000072018776266625974431012193052930934324363302408575422340818638652274792913295283978969829999944718018292887440251412329540360553917381754626312702967687542264302931029220476062664679036004188545630350238206592732929724846441779408331424022272153984330603182186427035503162893927905858412591226420273915124734194544550561409288961413756844089073803398680146468744344887253368805711870895102532158780368662661615177956717562708799029894634540140006572422586787110458064058574299317934418419084872899560360641693750593630047235894093480722335026506934573338537912289500707687250157807433639171840696781086763801711052465655790606922958804138242721349032045333436513727895436018625286615472934539045293612539506690680082413825972793387746416340171113152592549923488807849897770092827856965295644419698189860930969426973039756984067098259972081549967386657831791662290361155236834551796676433545763211796334995310611027551541838829884866676907463380908113182959692414167797857511381649519086976436602240716182483727571095404561007791367711575059604710591920544626136970897525410850932974122445471627994077409360929027756189441756354763813727159430496733638619642191144241915524793288897955975971558372784761232067603204616391759392041788243129309873769248614079487489890817453862965445367761121218766806872135309013761149482063265748449722790690687047253163699457870190823445334042219286438009017589238281261064846746145855683162705877596120021845140746518146296199072353073769359155619619795072214923107851966972891422735957030835836619845665832448113217763817601179282717113133119434469825482677855550980348099373456134412717961919225248759455142321856126909754170406821289616920602049276824123092805436783158222625213845692629361486240759650963268767439791248049784276093370759897632599069268664687514780093758374796041286348368717885651876499975208917685566789945901682895493376948806365233323490201958695448516096226333835095281466376292191668513406208618024803526878561318170442847644783331844492669632021147859773000278142099803317530191359715207035267587607140930121054316463887040682499904535896225794834049346325405479921533319003005023791653998648966555177024130247891514475231459651229773793732795298659542486195354163895112139693280915334492792986491777650035385541848543975420980468173175433411208973840358190858948220555829886160151942694673901274292640675532364484683002380806265584013242767167743652112323205226164265086266653272655690431068975602813126900090912599859096570988347504899179819222575839821080735785407700119354019009860518381944298645391966675025238483951061771553363787336170777228829579044037560341594995848528367567035729349293115232148816741607907320166528979615432710237669001517828081443525140824835279671097863341475632873166950454785232745481465604714910747389751731146715769217569621334862535832636048583245774966603574697113289344655546157119842289287919222383454340270964858353728713137842324985728074840519652963970047556466093559002056183329319018903916605650806188356531385565256070776149015282939692838443921352224366539519377679375159531439787092302485178283042498828342895619790899278284996222216585158607796219710150865606900053717031817205527050597673551695171095688081727859083564331435510977508649412018645193044259201610255348106701437199951392459394932388945662654202807660598860321423703855956981538449581268706764994832201026205757712972151392830376298942727619747114296818937912589946130286522574488840338351617915331900636768533088691300887680510764874754704974956053141121588845434690312868724736097649121646232962569094811958541195673911025128468689941812702175055594360641099435078028910535932781487611987764182156635629374605081430913555996414695905702571955673007384405963576881701799290979035596654633560511611611534223076435128699611063049154297623663791202521640152757689477792419136951719082295640411867268146702174318277847814063468443774679808652440422637819619181124747310674052594309942179126617692740994798074026048459181678762561403290267635635612713839833625713514056096236846830108860389042295827254360791148368236935677730247589866166020170508794986403152377715888290979246639893593723138735156790455752450109978141241450301765236967178957238289855609628477318143497290707976544094227040044154788164433265944060104317289275068436740974429835843951644823932266781782425946982060099588518180306706519578171484506878554981637236150038816564068525206708575064819486986017925264308275161880617996143558371656514082828697325767019265506516310853577674947839709971600062479420329076863886450178092268208196252610959995850542329547546354877610599628727188805834249889412430733671332953623437932742739239816107738806960491241306983953341168593786599663560975954042792553678649664483209027911882414007270393998086159416001844167557717518613004720841998637417712277319171205379217834948807054799044822589437286758733307818025567673593409127012018354198700275423079490597296514675767710763887960144380393206701698988603467698106780564058119913403567281223443434566378725280720496147324055251413103239499749101949870529571626052162515804628468356812724575152722013211706837682794176990641687244167302805772368980679614689585400119081617629066131366092904580659024159826172839715084183545254012072404055950134227776795626699904554021504047760175341623794827527931960068127920597478036652566813400153788462883703301510547308287558698775860297219065857029175853574936697437819714092828911332948040142791683792028237947077910875087397317636802893680310811587890470081051732059383536915337889800355004470571417633483832508891110144101430045330110173441649793850673525910352644020391648688028075930311930116589192668733216521995871019175961332829735896599549572359347959710382142773197598413118093997716412777881913913135852311228019556886935319327282950193409664828007884032204140486729436749984271926513191515690107079682781640651698749275337893481254177045196964393380400196969135464337123046841565899373060078752635972000216913393749267449142351532648082204470606650800741777252468925333907004671328606573913922253630965143426843166328209702905772292395360372486220814725349711196194052011593405641443128225280692859796945786372305432224829359138086304557430504363077090431971004074760633085701427232268998590311683472645048657896899429584025895705867740422070896406991992075469155433621788328660690571919353249983746896924558757060432130699673961887559743540530634097477668850488200511934191926003602350617560577224562464481906529249600747500085003154411971207342644805877125126207060236942047122162451794621979546876378872169255949127644454766589522690744226887677888576075381055140268944147911299952453531276229515473518089630950724672265707132442090766233990401190829185619078488996642790369907336339944271912984638852162999169557840879122805539444467338275897090184544076854155321200613016427109017372475105992023509174475264080237030664541389771156727209179674922698204679874157655742481697283903343981147052527794692413323651232533657234158281729450843150087478702310155792485647596974402522975011069865818528864658784848725728554551035263964444636417685777080397727452010674735660894989296195178699657931480776964323528477217625363690184624877049377564459621959403704113972852628509405282759693930468301523179743693005758841909359179699167015818611167647080184517639121492079669588900286725505256204702645862747186175697982930121010282693460171251786904969079713180695793758235662928071046807098940215299813256603694812811127499019385675046228523230406842915502740796510319617565393928586212826796189743841977306578672857344498791083129156279609001816362332513699869477716110598049092692636130594851870125431527154873067098893030878046233668667583221085790336890336020517377049909021618574492993446725732002547923901813053595904663300757692913199714928348478596913387556804372954021744891220898224348491235967439074514993810842514019167801382560231676350253809608788013269627119840439572306094896134401489801368190686793850320121473264780807114450773089445697069755554681795801458789442213432138325604891267365160576111758757805732507786029355402890645589033430613921544967475163624041228106190654444661310623732825113623604011809901961149752175013325989749497300021707529440088770384538556578743885788681108562046563521221727302954281218723548515081095602838914136868679833245429105060250394641205832577637623882970119901987343055573454176167414584360299829955882799822536226415752398729651085027432506552412787966767828465159166595597372445424528737043373258514674793447375104574308050490093442046750320286754417247673048989387105234354199861021815256687358084556563469175471154652644631546477585886214396618812536551271130283128388351832976870106712401488971292273291119115818990424725189934392563646302032408488376972023398149347061152828040829677495049450537892004876532257481121335168606535066923678273565159408647550765589360660422935449147574143470812188083611342364175302389432005163640415771826739000121003674959019493203797409730858716636309298213235690209636585614577307331231621802403820400869886006603100873711527777383002948894264702778034591791663054266680109001874517314347520664457153897915742033977319785272236755167875549692790293514404882286603481508451858957086105220581134287263427548138143326418457328253448385589579056864339125284984455558319596287045167907211316875205298608013005716540196698703456489865737071709732355002596716764103607866367525982302796250656377816890894763279972085429120830477844618871086007738970414469304822244391848264362112542331445482575700349070771654210435081676611410352790044696481559220498192174888390444872165236912789957810070815581402166434414859480601647763304682043545443874524213519647910678910669333591798319593590271781145572250727247011827993632278680653354489341587284657631880398794798034214926703387067975247547121715475809774530053541752222404871875871448777181213304443962392331162624492092433424485625534402549438127935272328506246166679844048836041553969000759375367471355134249020696897948796102995285855725483213446764798961288317782307294342684071975736271398782039326991194328480736259490117460829023048538155439279010823856799656041853553959837072484849681015008564061029736897275597972423224165159646594727833236777898262426649472554085468397356194705359437610924709254685982403695022515089340625496679336733134808454543637281678157212171837938039848840895281527734896179406658381447843846493909837845553663374873357032920495948573916625669503090522387310176671293762011950108953219868011019765183144505954183890833760444199551434732643602649519419001534679099728583629288298293210939353080708483399979158539876191170321095303510709189332777613319273909094773200362211875258840138651016845193398413270915685399070857978074352793723539060802756842364823076023991514021049045395776365326198428760267592462105873904848468203532646297502034200592853752327812587496350154912503471036100413337875186565411631242542959393928165359325299656914015342138662827129949690707252011523780738493564497404851712532387932841438257112885132364907691981148570387537458655438294323071021910061792216022614047083701520923135394201597027922917486121496239355344108578062673015054303373832946944993589509225398807782919278436683857709334421161031172326856857982656109009409795766443815011911275905362254028338870512542333106286035532761620884798654354756046609315300125867098755954495709928867586851526928280962246824267794870776877175183605525682000599552515385725677955138340398976688030123342276757120240068191053150262930881913612929035897031673596590459486771853231063223913242705928071262622561037693058873856840393979527684298096872658763911682683227356379123397946674312553582458211669992962620938521420114555849748163530106509858748148604316568736453003295416004699630209288105573926213540507681532558310184242054362834945176032812550033388289132634997197984232168139569712110698302394749661074824761679647550631197139102115979325651014269138243406495212650364736102772637490359040026887028627167179648822384711760944737856464576719855586770448688287848606108761094839768041331910523784528427452033217664849032596711517724858376783175610546589960959334056487893159817003442830337453047104488318998745634792726327631716930068965003235028663525462651323827607750669810368864820959262590922788239664707509175824728432871727508638912052759664567486820108506757560320317745900151271678886164649783032466579314838262438906289203792615232673441476919688493478371648964441483773304622481880262311955077328055902813386030039171085012661539546768764453567860960434972448603319576821887721244504004615471415955522044424138804463936255997687889940126317400373981063660940084043937910118217755619593474261526038688169717500198085158614251383730878039366401754840680469659751003539219805736067323187614107112816572782060589716742194383667695892549622538467159897635581337621669474210715800119940658007586191041072015497371595502560545481796422547877875270871888756728806128808236831599343945207675738549310643692888712091026721597080438071199109075968625516269119569840118606335686779711998975985180990514536552606372256156842498891114691506898471214612316117693567469152673086064041654880341352535002298082327490849223134242372940610868988476673895944355881460380785863670514740783440437405479875820914312006328087499420602120767823472722349843535721040992715856209883643749304425492324973002130609825227564892894518404957157876493686648670152464582914760571871652771743710317819226114692355738980507189076767466869215790052968431196022709686509030846334611874179501919232695404049645333459723007691177873264662278896785105225261351789405870725902605969921705230332447070922279555070076065838341562185636474345543536809292760095864768581357795688513227974506189471036071338890999014141516545687398938968624477250756078876402252390922772070552463978516802838228886714199405664620763448468107034586519761987221547772101364588346755391374931704874004792828549409998342621440936004689604915034189164272362263187717899822017687609561670460271653607634552859674249468221363565681828737313255143835892871992389339218422790033038236844467431000768005104253936066122135308744354000801159469750038433923023310888584333791167399689583200597316272042821344940392493174127805543828199274944473361500445475483881509602338789161065314944211420151821026773002756274381363909238182774878096913030299736018549334223798548186383079939650412619941774449552579559007780831573601308116359103014582226995962246093173270703138280494437366157225337528321151870762610326045116743771952865754830530019363831943506288775723632462975689248765800046855940213989369704426326767343185255157525186303355896312173569911492623908537696710417471006049748408415546313505590895431883821076613788284260915873955676200320989453735302900563291466660910695840735156020498800310319733983733114668133120070895365970950400678660211950044037487716037452886184862621432233545636778836410516533308118971624830555005452468180440769414707218800975133355808477936859397888156136267133380049990088919377431748038482786945954040301904602404949648165259650860310459641917118844470181379129604987333805358543051810471206352264326028570687225628130997759540640414206884465361067735619388217015049279152696978180622478867584165960212766799630740575370938910595774897235640680467269880181856399455258707793692838096305677191645986675862110433911272981935858683232543053700888337645472896354386511497183894411126319285957087413949747615277934491880962961963964564103141683785540460205211117384654276124736941524886063601486840705312945818005714852977838212048851711829148385441480485690862099703369071413828379340740005874155869170019343104713971565846675271354847175014353408597489751090673737171565452648246112076010703177760398953350730569716062170164824744096596963569809080521368835918422012353744385575091504529480601945840393983286175167431237687023867422047436403519648589999765696115251614124680830618924468705705533668946978175769083771954477919948928287655543664271315439257700930639628785447922176479949930054948608658698678502511731318374635450272906214828330970683606272947587256657124360627224322560748113984138704966687059442266454983877696002458983691328095960719780699735888825751553501120809443036596009534612683998461101836076882760828054455604033989142426821010420649153848302508561100347460864009080093827607474009776055035132648307480023237910181698823214254318927200802705386972060804898924406561410962657764718541703218909207047998202335817872635744468741688285584554850760371525182034504930336885884479005350352648069906023993599990239774616493430124690055280754363865713972935881200536823545842562523764758511384232356869382254213384910758301557943828104953515050097542032255158182984047265630438306351436991731889015208500520688163696740004522330016116157776507028756210202142979590703028293359171142921939128380667720264575904730944077679978874522224646985297553628155426662877743469241336294137453170434619514776816984130248624870273032632220179144059515433714636720870555260945268829827535706009252823479756429840707068552216817444103553805049921070985913177193644841810124158255391755885879460602112756871566405124974990084469177058062358812408352071283764056210511907586181452397418964246196050224407647214005109100547347161532980377052350849870950373345867337213161483916871514876354494738806426090609726375219354677699916125975631282861562399380040462914930272915369759540982727569474637650301756340297828058061911384155775884930173775458069605775880000859214592610771237716058483538506736143611566220383092478762359623818733026042596022180735002585992043214602202464830066060910720434780556254279419516877593416034520858889852657789821658242992404099017805946282322246236525930961160355141728191129687027024919066629722407962964302611363777512827340075811328066149142264228052499906697126579842856922619652069424389517915746547094512845073193419963981014041694808037395655679537475932896406143849242389956434448533835233730861608455568368743426069397929577703417151340634363215593348847231725830695603066024205209162196992022291570015341079913401480683872059355270377869679626495968638916114600254295758400275386927455575696337377591020646280719737316676288933174899805165966368330487296060839449559229284256466325356386304671721854616679072782711231570670346541904055286062936007745203865164708695431043596573770738842181331687465323093155599885824803334839248318901493190060714823176597664557878249181505377312486721513939097285708884618489574048659662283852209598975846554419734144939340488986576488030616550029044831175451210640044692012002754576876535874524134786522211935528486299646075106406041407740524365489357159306346932719164269663155038127837043558833731940981468768703079472696896543833646390542547241711544027252665678459497305336613197513825376160523059983636708898735347671396968844148041907921307865703906009978829914066823765228529576644114544968058489432415811094348184263506002651851904336832848393907650927508241195782266306273541307009297169635579954915247841004284850184571529314127667536423263877249303853884574444618734346784623489560749334576731024205654061458162413890929806331757215209215869736707135430877799117410080802005440463514435834156442311792681779813158370252435326472035230542797609187117162027009045303111296917092120636223250261292969517365401925278472682813193524117793424772371544480523001755119690531527318965116102132778567028018249764546502957905547814496183847002073325099299518264875183424754842208440535632203984657788188917850548264967430825658962710397127138594561809691117222440551191095348939087078349597267711468645523830192130784316286364578778309198635909143509358594852847657724033940642830691938769609161033663845425305165519045474919378851101463719266308923978579924982194939952915595479443970434969860798502642642345458086759960286706256531281535176686402027784694269518862985832278761214056866567249231211155920790500038430063712745270053193799099596603339390501936650771529288368969080134722603971870085697674721049488378376505998527308492128458522466484526044280402464137450131264267876943793528793026226820641199649613225594755183836062160751640846483429181829811946534106822510877440614419178545808356608812164336594481293430298948103231724347571663329790440107532752221285966663798331844810018284726619134108495442974381182595972709817557963741663385000574479843656365073881282282406656475590079980206987306539318513843725343796353765705079941686126112061780165029308308636611696546697056922573350687041237446915630911179070837768838157421446409305248306015576130218925884077529284313793043245081778321722182847356037618929907099516673852536895776455976858971317605039201158918529084866770569206994333374364451291351459795134829125606789179593107214114086653517458833586955762984312336262245301283454438665029239940544560108572260199341261038600910117142865192572005100206717082454506493546009060240436315543935343683617320312018051827256362515641872074701130491532078002285217761872993120569599307395528572441494335442691653791826794555249129927117715213405508154199237631477249960199376222437454451139591814422991217770126481538298218571904804885785479755804217856807724983492698369892210637869343133627411433260368645667572846819248197181813009321907002873567084396374501721214839178801895669718897188108756440681927911418791613384322847262358010901511739884245840977122721163853507686309342863838375906515830222038818956949641811181690983249726772307872527412719177834087568923913070471863497340049010897550993474133453191237326863424506061665564196249604837575839139219667042675033793207426617780823315960742910092721851332401724914306852752893022341134866318234477372163511661668195069446315095046248130062476525701386336109155915632570703029430910075022036653151123540487290806458875389230160764174074508134695182344664112761884098012818040942152419608664464763179940398086861797098477553943042663860263770466663836103389219104400403702021909590824404796085063099675818714538709017379786793325786846369109961141760833644537978520154309929072200937712577936098758651789001114084284982511330110909238323800845325098969374790525070756617788809300537206027588169660192731686716289424604820556489581641143653078026289861624069230839625261779782568925139250614873469805354674355168945687819901826105693230267339155531655663288336536496188754146499053306217571306216399048741803988152056988464723768278629980453169221355705349886863727752701892599073260540820652417698138339857350752331328464436629597907495294984202028193903056321854009966644556949703786772768865773074049806926645500944459052744374179736367384126696491289962609774623519007008582179187235385643504274763461264755726118212610097271306901063583845293626346512588656858437387483892498714023640118607565951685523418004952529231474444473751802012686987908509269856204807003335332857359925615823130322581300750144610224765019544213820633086640837125562846944397724572299585184814140371378403935817529524577191917610256757459003032369456009966899513925778578631067861297687322226195482473082198491775868160260595269910760320753264551167246606616098177792211496778108761288345137355269064579403122924344036257236591116771300900967584757824512821201784419115849306355617193648232609468346420553286193077346502229875099178950051234331996705455567567517872354415031251373769291114281208016938924812405236413205616542076390360321913719940617407842892084374894602747512612800136495898111346823167900000637428310136996168985168145568237769005573839168269256239799749354583109999007167467619070795661172994228699971208160922138762575247439911756668660291678647051796024304696556790239959335328450992518919009975785517784009238344727464762046703005876474063419617965194736786033989039961055912231754076762613831721284739681276506269176175086413794343526301344779071784201665172874566318804927256310372587829583555346093462154472210630760294134969936343685941540128669063646911371281733264521101030121876321776128453107018641745070815574779914356666671075353706999281946955034270931253407858901992701329595587712573742329041207619906112123795364335616335118340935503997824199358640554135806035639464211833389285291281393483452595188353612134824796790842862048013280292841790994350406828688527975275863673753919457251685544149939532159989638793093093302404303068016844272224302937720198631472130538770407902994034562830782858833476095194862945354934230156027978410475953110158319987616464116618042366500918235333616421196759947855702074149160396663554239768610058599425174136870803846026468827227009803139217615022326789329887090298922445570215248782441538117257226175779268811200521231384398627479362248306307046743087155158915704890444071721186608152891419975854298503654177143775901427793369586091450344112010141305509707352693066643949229538164619229602148395560130960804158893810411453055132206309656316694576630473807308524337534567075864374577010263215421419773730054316304220835008855948432027501945078574729409986989083070967558776655256364645944050182767624830885232741898861661790427769706571994247539758798396267092496562655385157535367680580976308875807140543264533686543662666488904903644222002550941444414520277189332219162065103797438999541434815023710587519771057282900011397086877675515528554243936634308342676364773175189361665110547669283204422041311013597860518126577244049085623658652157201374483745480343799030373782984176235066595763978428774923213785805687840814757087859589358794396375268821373046052691346069278558669560473015913407261422274555642198324258063336542319801442638186615393486258555642187975005103825837316419011796005107939630645960418315323015483989280898653028103883389186289284253599777029854029873158914972847508532972809742932287559846878191090854886600620869805826386346060762327869661924732740799160393630104298567334298740532692156997154326115634792090829573222637002159311321190726928110075504228031974051601419888513160996652586782252722351169996890885355585682437643792360049601994681701300262534165406514751324723066879919832696582683151646628837846730252719516522573364101615505883850305896063830501774481100005026123365766041178040835168617653464775444475554417740507196068262166222312496908334176032700400759687966055450298458856363217458306997062809610190294418656203379003424271871760907595866365473022840104943664810333472404979295778142410276605415291765522148457368922429824285577318369899969586608496881204708175644791402518308411653505647186368771554154954027168522724204809122034240880270889445906076229989766669143121407191395851357543722902822206966871843842387928204277069805769444392575824723339109947619583280205771751712299827186559275421334836741355812825295093468125247673662481164580608165364082732180583587612231347331105972581231856169417295161105511351615550409600305203582980026316746281351721207092994237831779127107520283339143075029885849337571839933037839750201058599916333817284511886801383614308421788045243917927558017294372653411517125492263511517488911732104991269876589388792942787899686296483636025676638834397408421534610028576731338145079952568165189099974595141871515161703268928488187922013555929906893405532960914069956764414063278717424770159869697033140773862225757320553469159652946467495676419912676283876859562633258293185418534490470889174105241888503706309997518741914217794127121711747765188051696501484699345133240397752034985859936612124527362819683829585984416903364428291915797284450049392497451544880915342920028886873994158524108579236248406145208962337344978308168433820103783025936739279500496199303326850362300361631620893956946329776227288861467920099654492109444336130086275729795437805152829371866724234209665604748660391215985263712406620876765890372324969473839615838386895529282395410907107011654563197387576407069375528940976433843298295221022968445169472152045041981859607063339421507225126141405875061029981683361673190342173145014716711530421535597731385285844727003766093166281221569125371524947550061987548315316925690507464896849238141975079924812573655101328043100197460681054870843533956812309092317803537736503847078050808886099888969371557075144682436510324726618622947229677435680369066559721626573466513355733631637806855260361259973793063059675339902986996134722131418646168729521203607052811547395016441811791240644001273763545455280895430598067114069484391228851944310742667819130699875634217077429512870235447009417049784322220286067882903324820185563831626761131786227113909219229585662486236645714621103052559306029036741649584380424536392965586226130228508519410633512368649706307267419911384312187526599806616635473913017034497939866774538660936257854329667948140222135525425944349115340381137542782187487827060420300581707285880482036912056002946146479198172967208721279398784034410234265635562154755707978436024225906755426083791146165775756420110623838792208835364879143068361049988671270428055924687644922788216560471148044983998481702311634336185601643614274946006567121196285298218384608014234523853881317206720209365537482968583405932069476238700761208528704392952015635339506253404757510622044549570890589477937881509447110361997870914615280243074019437398605318213101397821178351693232304694858341269738744520882567830727007349430498825664838017880173084583699329167047922542221044019819211947750461518929176329627966124768400825377300836342386019153053420391886568042485920503603674856134996670063006832150276034594392312068248704684981659270698688851583357079744866378391002220450257264544873707733939658485239331784554052380807886327044335514561831145874413299889403769354301194492209213000190206939211593427658114997817078728428832730812977210392429151965397792397844307803053676512915287203135831243921383719641172027227619646795390274419030289841997461083651862871780346238635970769525395495709039195582036555745570144950326837534749827562427585536084116323460846344274196839891906958921276998852653385988123038155439617414372801850413360202600794259052302193493701187238126883834315763532663487932308948060218158399548492319004838063994130712190069469927032911578177506427944192053658969529959082474811202626192769777807822927564748525171252790152382987714644301837458883741777133813761999524458333471747433561825102838473605080179665186449430191343571119314736183353730340441676811036478834191810680210822167094211039543694489942748414507307723736010632038290448810168892226912029108289889053240543004089322895864622022037229708379683149391100199161987821301496274417650871129940077262809819288317245608576135432387407906528128158263204375027467756115638840838841532541002350082499134352528812445306573845401248983692402676504551212016199955815820968899940603077328309618615180826836842595368300687324009586424187007625187143347404014253155183865635527662526579572990613486341171052732013883956328061891446691678524844533507859460985243591592408599839819174539733732245228064451915319087793511418025382645344092584669754577947505332762772970693804984539862226326727140452085134980871519465531078309594370244987032861665208178429476711107870587292726679992658176447690708346388547262548702520462714069548568240786294934576738660772267288576903761890188099638726157536565207561816450202004007344499323457782615603114157932584780646325057719072656278905392112910120610216308333359504732125971237369053544201263654150407891699987624767754728142209944200908429357470442062374707032518961655846870614574718816138922741486730643916840320071480980495372820287236667301842110736692485624588924136260673648774375159237095250844081471893771644662453055369283676188667411575885249698448223212303492550253366666808662142419991256891458122588657094765805649586027992537096926994627218399761144651621886316233338965832111182625178980935918622068559855322209108072349901909978615346068704846514343703760971866777289639578129811579850855162011420139090633084881015028369748186243098697575749941815132000732253801440559368188069851239484557678296216000453057443009275771253943076825237034750618922288586149099228418835764801001839366155850888223048604897754668562640754175767568367662647301065748296306368347686174730620279301770478497608505903826001401598900511380751962773656754828703178191663699067110691251755862644082014892784742571226040431242464338612017589018247024311617226499170390869295152298939018056668221180620679727431670369136146899403861788706330600437690352748881898851988290478793151939452112183829012592900485912244314402664986666078265673183871609495752847737843167750865319949278710029983785914767776778900539455837100480679702526566555237089737043171820337198522399048674308568376131669188116583731911013044145422449309714765968098566415743447899679883970837366325384120275940981956947053248267886724150492660922187354209254287332938058580399725603146568572761054071607692967854475164099215405455556359909957532147396509495679537726911693072708617675843583082753319732892149221640779102555485641274947558200399936491328594939222250286491149337266810073839313750896934942563744628937549668842482492285886850518032797030736644530597419969682792226095201926738913483893880675106000339816244992794736561421930904162164367717537702013298899969164827271821736262360457931427683090922794771881584698899154949417324909545638685547570235113301049103535814877735078883498964315485327581643500833043668984234756557676871950162349966283579745469185268970087700500874854704896654748117285723500351096792383227557020349991481762358860843105880495415984432966515238317833345885360038562259169024560501557666179664228407684677944227812272382602046904021177282389882766093035370387831685986297149112922308532459042123292981695711061721875207430841293753945209846558734138436910711556422081065820423495744124458195502531964656491241914224876871334369478950246855737996829833138880917850295547429506688622071002741650333077825705510410864226218662042453345521038482553401707378422784527266882254369949000941191347757312732347924993049485705103701342496672722523658393768255675571255338637624315090431853928079910021838623418408844651160800737756265496219550551872186796802778063209244622914086614222892555336047460020714631734956048673339688583207280618127439949891250943886542820801641469294049590253750481425603331693289083310605572376848938121312966020635979712025026296764630598592467538492428848067062976535307422530626841104364426708202406195089437095359069090566169266609032557829943148835588066167481995456241465723754073928463272690137661506375625805305242659680209514880844884453979524279279998903849668240619947445141145750702027379775687383214648889868004866383586300949653412435181765894538019062053518604192130762976362111954592365350524583437633203791141593723392432904238413773141958709236913408513269817208746018393296285662412863799300058040058335704172675566274557913927927643200026280378001663776896695025266537540578842080849543627312190135163866308799261447718286843974552441132358481874881178390971813051792793699562472914774268362621660941004872747541444487573834640962528009898096423124518949097297948013368236320498738244839094267775447976179361699525853200266937647098202047458001484973558747461856756057482932576548011618145178861119426224420642142016364710995835502618186981555995413818879249569047205160695179126598654985476678223315853395543972981892335306761541877992246874144598605853661144104054899922434248099687007661864874039720291495152801124819900650100565480528356055368174952497794164776438094847706037977465444673370736546381487868695634609060749160617411832685857586542489865320229846791936945327629426788307116152601433345474979232085715540736304073878093076872159421077064675906643048003094829623334228231661815988538891970430317874101747743948647881192926574461453967651897858278973935779607663904962723294334600782324047292168958284221508138484629046172374336996924728908655047955989248963063780700561216704400534540148098881340377606028687948508283180634584502550538281032831618936283524183453203036443451160381587584035276529608181919571149470621172575648216444075870287012737281822240947249400082646224418079643405590014725621416117558531660927663435410539356632613794933060864402406512167201692082812492288080969540189855395368410142159744562913840231877844588647255781965468749872987382688610502039703290020087731100090888580229270525365217205970946457281769250733546645226677339407323446852226280616170845784908147845949746062426500498679074941390776787023713927772231808931584251529345142029686887715457600871478924074658605579947777511532770732195607485769719376845051049959217172694300229228863987904411881606767306147018952940253279023839163754831142618422854201633872411541124496478734606933554734876106793212034965505826972395783254718134960980895178966083712368229351491285178525937598974170391358448085992300827143771352506960176794251705339500619512540985735007935637309811585506524735070381926423590634350526914583726809994368236182648265064671791454603819607320705992937734282805726779297737385147395146028400371001062650338133634859410067903451878206367549328897760615321599400232163411924874842403185628181031595562863437443160362561649686673073355096962961617447270980417051205445423806391217690484247718166041360301246071532341504281750532459034847324616827552405450917916186866255095095923816863224489587904524198866345854281756378080537122327922028526801364530034123541208982905416682399654030968171656775232941628790104984383461107484663701620210656718158566391793726817451135719472036295384166123955743286255352253100459254425874142191766646941966374571608305407965537630914810920681134294385378626794339786463160677473085204958185777234353105367580923792454604073126629024931730222225019729853397163711872939869989014750120825386647230199269151192534245691011568083449620660536055849157333761969286094941197824724975264467077943804667991687000966892533590580274232802463734353033866144972423798416388659167940225458023712808534259153306018615503138559401910598277672338098244297579175700510506035237369330171324074644784645913699862726869482073915916635617532231845042953309094054551093972185884324579789820421029581340740548979250801073382224579358072261043507155292512560672512767300534833052267238447050633126381348078462811200726096228097882199011818480841307032870852598081135309970299794897242793536623266449608988511148360098104193925302572290035480579511660931309709426284754358344212186983289743059656574659192569498488675483770067975614117051777194278871831090265821330571158277233469168642961944905824007125177928364453386950791816075378276762907957462180670235166390798128594318883613874273801150754817694086710652898993098554641401487508218590197139311349786783228171866534628479231758110323983484135243604004567270280032930915882638236065539894892149952618108846287008682762176755136330777419526825926448236656895945005147274017673641091906857227562431797468370555656130253722950989259937911267464659606817753945659095782108554684907324105521289604362370878040919544442816048851147413212431892605557735196738305587208983817855243632439712703578381954862803410322628751670347639515059833018176053337090289131783732638292763161849634639015497905115350853456497013433461384339866885556935088715347190248468846321039695507495772475170612993367861425580919002215304436646537869407391977915980020411507205379627934767256811149864762317750698010198338504041441569744205643797537689173421584251322022196634687067436473602606239081161982597015658922792908844329126472259987506510148842810451674738501690641452377114973434162961498420003348636812388688158887821049572718864514052194053470153739272449751114164162504603248799139950495086425053973059004420290571007547962175183050703171786590811260675002194358116524882521163255498356254182885572625866294917395291838602375608052813822163328665967742577404226298257506899434665388102436380109300900079678839874877680700592199370068344859628168103067002073811670912934846585008896944344717061055587270926895836382779256854000956236461930837388495094964555021211734662127703459476660976279022106059065190882147693080202647257486518917945368376182942908481402714568451259374325143344567551689951676850488215158822763763810990103535365644630808379700319059375227580050715124610577703332887063654136450379853512488509437818216364550988281787271140852087010124019898012661618206705430721672495922507976872368779357043065014384683641119972554313915187413499360636955085229277698218924758921017643706982466602557616923826296200076424905447827094347992324545774343828202019949836617471153979572502626653608738418158253512121914305483292736386228467956181005360880503971082328445777627153125573826562226519516579910585858517976948634840692845289381310908197314656910121359882638422852000030476353082787520539312009568125600309128227099991219524577255930447514847913439632006678953335012759103669388260626710242195301477451296562078365561416283473976894902258567638780315035718831911918442994820923956411694297899527142703763948034549088471180013349789659066125991123054377531619283020763322372438363406648931502275528042255816059673346135079573508830939107129387110868448070384149570270312756854911080894645082741226956923068782653338203141528031412601916466930764423245210249285440443007825472928505965165381849862959592285964542234565175847390542006464204323871777631778028409741275272552431528747471361611840806583250684488341740960075131983468031487418103413613409163761734410477870653748237207846904994641095549536825532928796608527815695058518033046934938025602822411644204098969936841412157626508458573618666115409318040438771909963702750725706799005961417276600297104312604369356734475664627145236769285240529041190163000328876322772654666535612847044084490543583637358060123697278271414273488654080237949138903509554942014177867119199544462395356351048770716443756870536235899929109254150354690629631377042026112066918403232314081224781870133880345655359415990836829782713934315476712551006323728751483839490204307854878505824479937374314551203876569321847664434231936778533598454093790966415271335393375531471911460884914558621521773200808474180310867474920580399568697599164371628810960675630644932555459517206857831242961430663925409186784088161319437158456821480220249045793565823375918985091689711733144072158626223076708583728574951352860461710153976526756417225225060945884677239582981300341883206031549942204215915416511063938209301447960232516283842198494245429582372258311951701990901288248267656898549225151972997533363480868094083759827197863428638900278185922849451729621810113178101731330571515406648555845600294634800936626585842758824616123980669678589901269851718262421403370826048830515129479525486253052918601067004077407900550173658816416996517051140882749565439857049874652610872144071823069972166282065716498443104133862824083923463491442508360651625171001480320028271009388433665382998471527842663666543096762035688166099064081062378793865196388952197731998136680974195809681745611043142005354336002263193060299713995301173129949761872052760692862875357110141354011997905862252457795462477488868928563205274521069380778710583507834918119334380876806959951212332440828679987333784112850589834655094340523691687707466006736509179258966983395989356079138426999425155932023696697238311903269774313496202926760077682755066941842430619673970829899483892368831521867866416142971369425438765927949742389154707080720191565217070559036465201365373454112469288681923876815004417128787050783281269286292777697230915418827863828912803108875333111344539227311623997393203327027385100164954441547654093093419887572583885840419425251117303638577742510874302708635085573001769354794011793018130017547879614678554128564852266304675761222113764510474983131804719675815837095304824704287582261536943785751925876543551327363989437423207991961521404397320282517794568482023949490456745941268716604038628691684092652120503965015371437863361715830270983558397828539039439371048656036972271045105856375948355118055839203619424332004459440342392785199946663448969904818978749516502902407351441933583781521269539868177672795672794081281622629998467764628663170458454988310539609688946664261638799700680786474023490518351155584898687862498234145570846791454573938851414582685429295163673142384825896551163519405431438138676603674274787660837981492654067019063964881464324494947463265119874652177460268301503669842418285306200331182421124543262452168978323126553745538010342591802389282993363385115135366182945192964170253727513324006421688105210363938901454391011078608797615214908578589485503391035448284223286905810004884756270735454423472232818818037758775112615658060280108305506566294641719650906578132738166255807729919688237172495567257041827188626946546045762170321901212835961828674287129584901248337738621637421189016652685850479623477087371952011638939918814447903335807185271916464157790483918279977964642195582132981040159470311653821391361357367419532986274921716389910049569981380618868778682606988586489766380832242515984411148613730799814050183934854924317823332890754360226021882739411901900370273575279664091824962404424949180973552818879274255126556757437047184980756805737646685068511429750487169425785712337541775960418228467419202919561183557407768259509302016657893555528722896425482466423029867539824874694062940352654886532140237868813588090705749249955126922902997973179311883933719340820173316379929646566474123419236552483325228744081927567989036711467838044528295501008025221215703476769591777651445108140375454116495897682679521787815111854733974468399755961196977892183850524069085532963593636571081006758722870848249894617243350988013878848799275166720602120859364408260619966589037875918954951838238444583259838116703254792737244125809677380659446839440807590692822974248433848535466685627494423042824370047086959058989249449229227340038193648289801973828529756230375640137387743756531086914392072702123813369562792529257541438806824667082869048512168122875675988827639001704773676325508474564792150274153158640741747329358125293868111927906545895373837927967306157332964390894661459111859653633789892601940458101345501670424679832522166184170366530540211018134263322452248689369235966591642419635746365532377169068637167373665910630475589586444194689667848831089587205146016290284796316955413256566212924360726793850296081355549279874001449532358460405184421875760307647215360169286211988495760999080492097333337116049832004584379796213352148757772408216354081276192360056512693714098949051578517150378563270086918512507636387974104285486265161402771912996349336591386351153835552552346786944523992468478572781590392061817355609228437622476185068364407066802442544107863366604639085013709539615366812996884378847080669088102253327440879844038126004272157421499570827572152087559630047881398171986611598762740200263308832085525990465785924023261265886976392057799268825969832995986477507801739125017688117701677037023274883773161984252327824663530809408182354077311670385651768911495949142451148665260812046994880701652058249731521626178052489462565216552627766305025319126541202230310939656436107340911967684702178447421548786732037719280355674606862505515845392581980828701542474655136478385442171764328236004032370216719178455192967746220750125828722112704632113982407976945802298596698591274184397613301353068393717498130483576198884213352474824356301750328339107798943718739693820957606107001060417092799950297962279978645846842218826099574382482497180267325162198103219987984063374498268407529151524734624402506835022209582561445835671670572903586462821966585295893768576678535936228639383306412846470270536876633680933388242551659699524400112921722205757468904949175964506758534814520833061450368287073391765262623729068081224852799862504878581018175551581230763266246462841800810490856797774204437525597091154183771835392856395513544413912943882494271958491849732525554360115534508812921226642793978754272598228996347552656979547646831545027410603896203844332598163471698735428781538981462345505929479151948191660184558125924497764966819517347884280794165837825475654764506109821777962237772923970252282480138129527316898904740298311522339802553657413623043295530128783926420430831866459941786166967626775183975886170804958795760696255884376477948311711434893672217907616091546223737695096173794533208850881892123272020685905556880398018039587960861325292887165758012060689735062187438749390951031581574631983966409883331896307661982615309185394376861190637623462942554200885941668269674545776392495716925254821020440582925779874481372194599906525533957481033114486464266745651036780246689531036339715236084587878889560847210632473085455855018622335719232231496221506107934085074364213005199024811404666367126090279775467704291661325071065377130303702267903543789373614470008454277559642285428488806867742468288250151202854806799059479973875552425948486654462355495571101279771993984497312841882221116859892260288080740311413142186542874384408682042466181101919898355812407911581335391468225347764004443604167369618628979074726769894171090700163118455482638329500267892033335962516488890168391189703904313264612435472432876157595072864324545753715983437249843601432582832974720579005736800005284784620506229902444329961860556646842907445456560400216165718079792838268669494852630379403404484345103777933073157998173907965310830989273739595787463051343891853868514116067867055717783466047903470206992680509994740034008388951839490110617089905627438805894974886863987820745571044985431170915776478917524124801196270554387494398334917508273799926821911036610272553497542094285688242256103073152581225638315984002331362341481700019105315494549695857475180749913270406285977607352101405602437438649992514863384117852128638224869330966219243638095879108257867288804758204658359663402135531037021438247976923606490239175803184721528569744104191409080380422361005168522654622691327200148573472368240985236994279513913535211959303149723230060513243498968552207613904413030622406950035537831756802746510587393170235266471117989726543562230537182780832079689670944988386975765054786071104851581720745237394469520645179610327762548842762801387922801225935956988753965462672426874107702402093494962361991545014823784553391683664822814147527584080257942425557909377585714656435023476237882948635228497430472579084957377807497535751349647149968035073435039541114967666266942562714826957003689125372923619942581288164993267961026094435252709296799203221490613914003522866627524817427900863668915794681505161391931137650576536139088026246625299344675128667989087223750051132479902267535377680109093522941916226502626479276043341762614162195344337746790167445646462974416072485314686553237643771888809737325270609649441090381021617407899819614672755578794451564896953766561203802421301796282272370458298963941534431868566971070649955102259395159095912741307287722620851226611052963052369071011229048777518833790258333173123947373936922260148039085778683085488136159543300588429177782127674569556976860170731210446873587214048777848445981819642660395694604115489052693295183566140920951820877569195315947229162302086772931522161901936897533954572615653187278260741292766284923245712734222855015609303226734252323863055320308247523452365661005829901995978459764890005144260637731479601865707140426762911417223636526738145097456914502608119539701921484563877329697717641351813573800824592706482933065762760559806620781950654141881397907471298025587037061110209405698747585369193983366612072463462813849345283630605098143557604842174425197795452003789160876834368051980850145434191627068841901849130661978216951449598592946711011877929272401804570735614985570306717277436758470801552813714401981629509558575948082369214079674016823827182267824291865727327308039297982823441089723295178357726817297625660979853231521214736210174752621589303496691128254910262562823180979394839134247467999410009641733855125232168174733065312349298006815046361357363631910886955045677051408272457179694536771667631448856092415130494277256078323396585500789860842364045688065136235884629743687402051418026682630213845389305677579738902707522343462043464463086696458685196657613244451146500392098811912393204526829680911718616812185663119159133731426250654986114448541754001816398028007596263388033338001357238304476001779982123020121635649962687006066333984447356088192297324863349716112210587981359382938758782817224146194712086193346968803535180725729597263724532132717627339019240152167522372335832104171275229854353933829437715418181482330632249694608534229132300626693987628449920373452939594984619980087376925974480257046173865205346149646143337449590010979400525710386852993432858181002461109613735853240129927849139757501793801100236044830677974208789997278151529297858546040330181846843869797573976096096303519659779716139137375444332994479171879584259021278959102045635247990980817004466274874890815698239064498032879490907875436617013780316458447486935670950302476372719429389166561515447408155143296599284746014549182965204033408823565697325295670036800055976276991819694870291048814785603283715522705838666988668692227983039960060588444136106313579926352222897406503592857243683395078802316403510653500770198239653752219719315545216828708405303401092611029832403302235042786032442295157644530836265667182903766375183636446141305243380720176791992342629652348199827047443403343169431971078770447641420343792162952125022641216992101603281712688112471194039300656273523741541403599403379695753081164361067641962731335846209286019789134042488983317406625792804018220781587116049992038278428282171332669093988961554380309093754098207297133170711481532296296548434884882411884124592981035883463670231073408739928789568624171237467338760149410008067225223933975049926885005449663132225787074899490916510966618563927954937957089939386428180901652680613558743780635559274528276697387282246022934386060979561276877875744899093035125152566489046499008829398006703689425439516311072139694123287144474305478188291197685608783803045802379909878453299841777372673577792617921117872860535379595347283846687101312611303357883585348978856894608187976021699642788371358255663043995932802786944363903921833137009983372715849645600155774463992264898231908720541607047478757950545647218226833389101395931128765978595019833173018164610160179433919949024240599821788063092409580322940529310539103303359867090012490648384686597885864399844340137735495266253262987319848579932215086095316096163287052025823068964886707999164097310174227892096967776128581491655744941847022338360141922296390119447918306198994728310035106218317172331880796504645777093021002946791690776670150041989913946116138971733046998165009251248383925862037234970081487261175225489829865140487111991610194806799252804076277496321351195131981244410265043084192741441829527764364748623994760410043092556157132774252854021153374787067487903474217746396813750317006885625446339068400552545298821251674864939222358332262677441626798498893707008509237278760309528171389261323926841802716173631686426315503673414985992554146955334872711340358207762891999172960900495548219719621473695886750034484457831148335567582958329472423585093400220803892847806778260915921410687295800550210674503338189175360736283931480058604147037949173409874318866608330307593140830103034403242170209558601785588303737791139453627294782792146107375337621435757607330745768909060505249921037686220244693013576832786031285238752903962809126805806099081042544698133755299436984765885909216956485633470520274087980901554025320877834786128427170562786458248938432632407126559649685439842791015819403735194365950282403103864684957551965926174047046402982312434184487073564189806761081020193205405815192847682508546387055107882224101206464970444173240028790752442074087144089691985791096004802091580132022589320908552467121994953431146946554252140945393787582616095865168980654339647753848362888419813073463667189907998010406255150608329661387313778370571548237930177821134395313293472492942550536201558022670802057525051740025808445105315027804032935208418460871859430781617844922626414604999641915362259856919727380248470813900732925098333587270321409554528365899924525552860654089369809100698016247079319330591774010539388922358142996803927915005244240417310443003788243805196644833921418783720037319315614990875804076955446432102686530549562664962706382694765894657724520811875848830975285190428765616484659294178006592338923334575998711253530480969350856120589610367790904454531669540538766630997060385966257202925348887408470020387036129220461621846806318740433172052447245687137805128429515517840967616002853418463547573279374531882123688189304247116238264313878967127807294261712971266110832909268289466631894258459035969802431906710340082416114678979078142986779140515465622458074214039515003263337060542235374830015011273819332904806765512630720547419216446687680025387469608469774039833356899508664672135876745657142869970733158627013698107015291114250234326520995812308941440038389807583258592196413078804462007763921260026380445529781701733250328457562977378755305969271638542160137747762688693531574305018549248070957119968435242349306368974269698718199738666772502405632924587241973179373826345794924352176219445362189300427265275942256309221795874010408343110655417163023692040932680655566790381327554073395619054719398804429168872088014163751764302792463197232041578403917273122573222252818414233408555135346875513831589400991767595759686102436222410814933726697006907630719130481376306018906353723803553694119583043110095703584080667391118989654848527838483370529619801280905985060467419821165303124913834146519541639657023097625727269524553335318343800732545148179806418429588785040750178031478789526184517707140883963386473441626497983587352302995038851312512089574225744821173918802834191059286386558361360814477201010183808124433695000449314473871061227312088853500486472147301538676419740518127627009678119609765978732173948009960560961558025375059102428465411866060055122263854251914635726771758810949019036392279609874871703135867889757738958982102058002742106130613864292306391895215528767895553437905199088900978826478008894048528708734484229654200273533088594470435130579151411398869349667608816068388555056432796905680254644629709313351341843990302532682251532988474287337939964199041588220898357982241588007462262299725094535275982301617063229383173350946531405878890126107857005337546987503013646285080963243617408279720927260603671332839903353458057495234568132586038493319351462545394430198991452110460627647154733421786289970497896057608481016868656697221142845003973559953411201981500591242954762584291074569146987227232898897509717062836279132220210007804869922755438043950219303034270617117299179505613107076375699530050051074451959282404094565371331689470579176068281971800226353148502079385290914267221467661719218088532515397104587746673850743092967696496484192702236634499920614206369982320016340297921096785065662996332125315131834280631012719845975199254921000387653758611721396786029928793415061871745167650927400852503802205882471802566190915498827936410046969516369981768762927500340007224272921475017874949951975051892720215948077994189271449769756995546330094440738005870036611658770711927058139660510791865028882552131253736564211831180981874111011449157464396521141985426928318394562590652135170842842891642963967469032184240517651408359148661829915150973715709855005258229479970733541344525175130598696516401893739717570169668051150446236729861153819789881104933386181241082432772124480137276871621454454052754716053786749987300143122600511385089613958218845966020237398234870460630335693030793789271782958204090141586020880560856894663049881394159017710186579467106830956656475939172393286970919375587255096857628883475731380382526671719268384478681987006884884924894696176101650946525527798808370336400513065022799385627280852933261581149712821517323398467838593346000119837755930430781644978878296388567594861326363998122546611613577699117804526648976441981411206239445621824612071706871744677173395186693407582144423873516242176704350226930851608704422463644655634818207385600199367441033829918672546892405526221881085474276326833336493021281305262082194270166363120270403034180802220262885566806726312638952799568990867733849655862848395370651953421351032241696671439737183888097848539121633927465823304256687188716293248059165186562475212654193003287037020216045611930770733172292158238039501901046145753534012260765026823790993794762226545146254233417301019886729930493086588411017099360933746711208620679950437827644429450340400747452504185600581811633904007323247124711874414513291081969158168639657984144577946885115438924524568229706056917049762998540973650130609665292241668853682853834833148470724809136598049834386177735405211661970405695146650001991849577287357714334106813240491683503645746928711532113486753174571180472585095802317589030414901529542044618819442775795819985004887929140258672358646344210131246728378004355657415753048713723249528528031829448158104754871115431480502069526742486330716331809389615991184996653320130592099621062554877765763980383821226577806155971474152934851605467342332561504413265657673216457812696764687304510990777195879972585533241685547732019182342490995162155051422097508516187666186174762490652138240183258371876443177183424796233102559410142946322182654190214636142815883136151230533167644603567330656037986569673399130073195621685679998609655670783633893174893356579205535145071740925928979671700673580992857111884379874158680952788234017076860329280591832800195692287601296131054211613293254275247579029887583477254093086926329757403015147791975029162782132955536807679309554792743984783068317000612965364617200122569690961885031435071623410847356801064719483106699765051670191885172031233870442196818903257440185683677241148880825826997033411662215278853839396056045782611781237846883776245720615677169536679432395980406893222788479255831604512666519885782538336074852413741204147362367729113620481417304542526464641080055242588304275050725827718427477845107439934494352310465623483743123741033094390872325755783262936672000763663158714291218903257480939131012804546969481647717072940363357843667055531129945165378280729254926445315391786137346557516586813169738376940441123887471678185943214704219567534491889298772660483158906608482197566809800109951022618890911252780448735041981129263976341606215489109171688327670688531551356683198465820241527380697733997361610692166604675913111293719237316467157205029826119090362690139300719999595905265790588207900737949356186009415120671557285532198878854288681964187687760807193773516100273976770962504139561366781482842459519888145631190790220700870580429553643045260296526113704072296545175439747234206479380141342899618885346155404508528656848414114986055345394396729912606880330617940138488822264394253896667619302820194856607985511750243092840893520029543963689893653844362807365774412528857044409657731473993406228887609499488157796274154129537747143457195573673321415344253869508212561119265067508326281113423211861479547117820771026195214735905120476102487891238146675392161350137754716646754843696933973612942610392528504983052626629674114359103649398271485242827578900186188662769537161426832502601902841174711788281642309258062076549257174961329248773420551434730005252192355841022211197753550079230102812678085929985644933622254600275291328766108433459100544831903953837526583161644730447420656838172938869858243028129871626945389501324448703034540172529479110376971402529452695012517384923397013369992047184983640681285108167834566859124968316496815221706195844029338926508461460389694864208142147230494855137646282753823192689650785709221286941425856255282118161899779176439104142373231909233416857810995984643188511771688376174063417152181602022997482539899247175772950966140149491729065580852603341239745071640016543085728445510385146019139458916541412836098442537973448388222510137311157969243325972769709010064963029148445690738081061347685862069492966419411884100592959066779698666382231748708937134117274883174514231873328070760692193084402269335115112207240182680950105981130916300589979547331414273233605483082365135544988611277519891292014527691771514558395811472320446483972007416227253948263161591050510735945749915014399545599629155456554347121569728424055277059653987790358349675043868120046603138454389159192202285182539427895445550464321848801863586280070736148009685250016411147808614304837533760708149410917362241412586631997903972320503117596202583482409246537445342492080693499999773931205080971705203783157403104825518186105205201878966291668032033598821304544801421731741902166745126709943650182120385482883035611652647496591796093306670364923104704645137049971731595513010306617467611775973848290872913760884762569728199027115318888700703629115489223635767687663257089060998432936016243934695342082954263187702489017017555442707734704989477268493099659987494840225979773354446838524971704825789574138368258852104098236999117091056553738801976706690804450139432039186428307487353009151319077907331238576649537214232818467134263940880832920758863106074442678117535178727014675796765571397628260585868550025798821221282177917003373983402908458871540723366335597852904777777963227841230701368386904820296870402272696931014128443963549045868969305539938318138261963334545806965748279770226958753820706262494642878377735910376503011108665701060475469983085869873157166379654573010567826587729584654086048727707450317029877456762416955060376450358973205244068215029385318098804930970901740991080449109200811582075415277706897184788325165699283263872557345608799599861229773404360224497694391849756801701071582914753490424510325355980681390301901793734620778139422837495392141201973877455824122465954298398297404988560934041525872744270983921265919952560076689308053919077968290396925152581272201618766860931654477429301547927191167699721912032485020718537251620089967410732938425857041286762776836846378597616409816216353607025034093754068878755250885903164934565829044567142840996594252337539662355664119755856415921933267426460002431018758641299298075904916210196287038591216280508307565235695187924327235822024618911235543648714007809887693741271670432317736775110392756264473723360329860472449026707554690075366553060776783017187826326227216471400238819407143440672885484389307899132726161190335320197054577986970819724676762968462722559459957295936366304175719328821500678674254179969860799770019349617020103091381104303770833648515203130612096602190778298255804188232263883773054907242698382157238740374976007095008697009764991272967651816368657496493148567859637183150190424809250874263565640684159589784746108876006515321240661526477203135024496507585875037241319768907064673886489095506534476445600878135828665957470053814319753140997396712473967045377780716209940584578700758809641130336529299149261406131709866472178608358241684251816453048134195507898466024123418008316829592855820727679729463290783297520924479782839387914060123672980757121055206005258484650916715043958593315364254787510412370834085026032574926798240136264337003652434096775204694965849931862972657080473033211313039295897208294962902222386588465949945139277996720647806638814085929510043579930127966443129837535281169440447947860950013542223462503661946438285088060560927455482313042404559330621921084715090936569754750688645299212585722315178445158093038548528422434064844169051482372707012458133419563977368557791492612135284577273465668337493747667618440831761169460761266111126073274047585023266325918731959324052565689685084150696251183355402744453029749671051532317706565815571400764629113116851942120033039046286402941965205616869553443533400563336595939786816585724357437050737231715364224981302416202341847210445718553388191980155791461817053863656155752123468920423608647527872341001604261962249506689075182973597361432298738896334118664871176683839998484726011221270293635813029057359429293274357154187174352962446932597756831000984504488959619060970799826982855509347671576039503739653820134204376689688051627034972461938081638152069111542287167500900721149172940732567638592590656214704680053778358022807113560850847030404793343838570039763346130397929628373212483189379691912203901302962507504129643361471309508868480604179907454507939753173393748900567067340557195114758272842962960603929745903266764387285430208470730497753464387479134557945173735919800983603642436971751892241542185077164876965127487913942967710355897808135180535148103375472189103111327538826932476648663156122734211744205794540311700578722257979430329888967559330762450837320495835201737001824152756879608878472564172171515454576113428507545317636597432644863391789309457194677450071123119360365822470346665243153736157628296394644525111862031774128897084751668768569961693024129020214437534366611097651753031226601299793175102773692319876063106237477169156131009586072432930064210488901663532747640185457458902512717165209162712105149762829604816688106593453363523751871124577337016552170552828856158872017596527736163509700988093232059428744622080692709334536652989692633540937536041914515408997383166279622314775135962202433016045116067850394124762647775516026376220498647688614437834411721329555740894372140058708558946378607783378503144881360327085702530907893198233762202890269493418233350998289590222589814464066684239172702864656299269247958700296106805384521561402652027134356669518131065752382388684136407240555902358326689191470633938488528592397635585092044402954591935642945578526909792514318305474748803248018536297401552669281977285479437193890076040031018960898000858991460123331899901402564983265145556331227741461758196193658446590803187265187064283236658210682468392652301583856173062661171689055171474249433688363652828485368759901870552198546525914032967166756726303318824205261227937817903965138555313105697252358078515379600591538860903233492472756478602908881848806106146391812179290553843589252272716570695239634320949840528434870575983633705964568104467911531243471709022386197920349496076095255668511992348974066023572769219757679545350205609843329355944502453381027772702457821204584461907988553017018155861374342784437503192389188471534786566229667595325520208106244313859752605041677158952684605896674254792440995592191903768398831272079552754562313814988123817397227208668523305632901218082033771947223331261224466243514658450281111661997398941488981635988184304555120606514259323618421283061346833766795092249826391373466549135782617926553997613713824750560601050027336747246856463569268112903688774541766487057154979125121701246824006613809324905899435392463132359843328436716639608496394490336756234148457933704166567535928573401332860207377587018636759107548066078143123497332411131658838958861540964552041964913655725595949169833297548129529213498750475482973101912022422717530060768655510876955120680979925697567649000816212581761745297565175144605492634900911450548707952101912373662329744459063141162085878727250906149921519427412806593599472599744890442525757203334858677473741716905977306938015605738498524100917274430575088941816156910541204705428625220294121131706072126737220941791846054068386390690003343054569708419735516162267666122128480649061083506799618671740408527124313460654304424148167129942198457800837665076258845505516374740609278390511557471116758242412129793551368294985865578874588540275736236540096272049854933958559701999034566898069975588634826477876045732403411637676348331679801948853790465701321197308977820378680025719871429831936386213414440297089923727155407319148645232271265148208071663096726378633644600564576845201782735532035173183953978744052044898272570310879533980564735347327087557797450015996608862142675710018020190420335880410529417068427249533883018292164807340735282485186836521353022918290273441112286500514426220017898678916154777831360888368195991125906214970974054829397926135600867072643150112225036327882641459186785131710951848810966585837072153252852338372130080059693540167039572405050674096463229926931440657321321693324874864660079250577996584484996702042544547841948181132939747822748934115458723404885592097570581607543715537632736577924725145473231552367271840411068749682084510986495703712763383395157420272366482122589097173008846832420940078388980130764606910069665853812445609977643558477184983302159319578555518211263654999375173154937543659705118987439933410979989696499791817302847137231570984094526991379839399962570936012548027353291081154133992095119961788586043377230115422415028301526126592498806904369139257963702464208143006257163065214914824834242192944210814166047758538793907920669331470678192959784668903386665169573547866478468804449962565765525366581094355366276704555741523400082653291663644532215178157941553497985176807191254159786223173975713876282699714829539797962930490157826204421740632961397350745933825129707940855018344309718693132450776911364660051993814319160393813357254429627284956734821036635475849182876771954734805425784973993252787709305881883694740590451418946220059403014111239173285981684344570714833086430978370392213149978205780398151719226396188976067814489664548897998192867248166705718638322645393062523012584347129312689830781905312685514715728250199752152410231898764015342630065194467975760192912750650953074093012241610984614069014157645208228487364822886005070272160276478300339382779134710264054162492864622142737745766225096170545405004877572164146143647375754120275034743907265385454099812077547291320845345712035365797752632498982829471923001148744930550748542847184239497439427438319469096253570216982479760648162792908854831687995291816744898219779588531482222936802339062213403682821328632766159081152139615359297397499381676309873088271249054677265598514206761172044094590101980838721260939389159220458661801410840532456929536733106114190318835211336762906555139555813747542084030804705689030353698460992453001324477514014808851263928661455990632636837723791674518775837159763811914974075819102068993173816448131190967906269421096313686386163831880970763683372048195772047416883526873066655275922058175583465648508464450855351286660070685445605575055592467352682016030731796702656417352501287901712369850314462240931398155458271362399492998633283075803084290258274179661098246033775405699482073324747634771597030991849933594050932450610167627837836163385069625660294166158424661584158427902989604206640779740538996838374704682174942400596861215993939909948069530632250132539666396649258688389525173449280826310900851478857244592336955181400015319233558764021733365248787777520573156827974673715532477650847122456708817373418635455482512932034493502416361910259528605699955308934668294526792202674253033283744313591240045789742342449821423445895490335936781844404835776006240086995043827077973856851077319852476682752502390617520616162910476458231864006639090655997038198546560056917587160966436028616312727489640155302510991300581002579372027377617685559050399368256145845401119710586260174989365770578660330625580848473272267760758933675730278274566811930204600851322214928458100704835472302695990585890985360496590105733678289208167740305983331720789158493008501626013504755753888264151322075872977337997178519730806079953359481108624158176043644464101239063179833313232225861217869932161405896409773602625478011950977198460219722249528741244819905611314068222219703448882562217064517579656467419552863849186045993997020920618637039476851121085210773987953904592101722686834862198958076404743726659757396513938827325916549517720896849030380095692714726051988017581078697581996334797376064545678589508723693372212834756379227029946659172145548471655006084427691675573450346758345111239417299612934563315258888347264327838000398031400157968981100183196230816573189773245876787315508972419775912437210589608664284020783511367610614193072106640594796605546370501729793541588690458253653212336028579329133599941068999192484597803364585474541813053268106230952298574381862879681739218374371800262060647203056933867059812159590358889151346456004377960164991150295967022602878768756973329922888314579737116666954546990878888644648497914198965739896485299960523990252518320739397710512469237896018918082386220401842265590617154221230407307175695031848453404735366591393810497304738348235192919974105601930522850957198634510278921003103757769293956835980798619086304866078657218178708366879310082571262855157963149613035459034939834970362451031377018369545053722744380624012837819982605743454806283180246668264799146255387449588300529577711033030743123303041471628587467522438711770590129764988559400657290574973019563899782217090759404529219018725098260870913562397441810684499964607979608490212441531392616029207895249822247268587850764959117352835778434757135395844131126258306970318761805201582373412425410577146180541419369712172804463303674121722637650844829072571203271235129011274932821534004272719334036636882832050728383220146273971896980150290668337783627788817218587016350349405896347217367320277661791250721155780385265642326205540418701831152089110670303426984103763891377914562954218341264111143995462759558961135411289705854733103188138423763814775384301199608470565440666529394972281658816296052224076948461451209227570403742749269892213352191149244708740757815523542905958406776148954598862563400623624082023213613179622425555643366857487844934600382932334464594274748120093804597879135234161349601203905909727514616025406700230855440893467365732894425693328102606048922400479168297067863900104864698512555074515441084111332006862484496714235728194784690296402851103305771612069236790109343090826243363896297622885864323865357543265741695628042334396945987519064864902553532423355183245015017021209211464101880554662647206169590196592320203758472998278159174635752682312361962397995551889559853327259803042709290335475865548034091108138147813524264884728576714306400779629533835768907584604764096633522319594304617325359304259950127502612946356036015650135458498496741819026688683065566843831358120987082692828195307474877984213646843259567460103654980816154683872778029220801607047740901368427161510719167138009565768347743346249248527651053591655483201268699526123150091990269236818112674388425583958360604614807004089480266095028475632983487039516076078798298644921274644492994337819380686170883251803678653306356116112016559785299166043909386056509775773079327850601905687484758866003136013606743485467519344621936432312848320237260454531599197115254386877736822488749421205405681633443432293864226947242067181143661757923003430383963050526143818337437988130206377570647204437896390371319512979681983923302487277928042368352399115517941953602136215036760126089725515991266247783765807860176503737588212438570386834823742831604637202050140075135509045290456834107628392118123638398570941077537727862419173161349208660279222882896708804623560637753682673627307514438114040535345858014159919076086337939868676088066791968360594107048333835071034926944568489540154512625404793390146510308315135738154750888734722814756832588392713412727172443393788618529556989660005749168217769285229239198124883716385547600823898284511271381807046062439989638483690685972169609431058681319587401127072186055978263894785019637180514889600202737308636401408946107016308495491224558841006135118057595351083673582934904137707388114822853300705849968503342663389970736118665558544469320133431797114767907305096019916734474625803325297311173489323374940972390346412079960473509056538276950868288519730498472800038558531525711861670289406471271285611417566969642280926296757219501595245686466053144891838953290521598486265335162884450315409952084737599664818067113473580607314666663730076339939127942510284793784216234496651976017387945030122838460626854947558879600747910892456928711176866152860350604997824337549532339114891034507457450651208697972570894650729087474649665503109454816721287030702032707198735563584679211869485298500938398365275792656899971806663782113096900764287365005156191440532757012472585470852093371215992188233695832232173489938155930219924077960639100645724236086959044803224701557780149503899739021457489288913296826791567985534869984082376060652612429062527350802724250547650693701438993544517231318229034382680350786170521699909144130813967372346256793454145340449028735424187613451077817262223548836572795645700481906360010874470585294520075895602009635223154919251330038446097456160213625810420990961580846913664151938131293730708715613305468152162605523703943062185832919344143015114522416925092678336888365111494630040133960845373404271692976135467490071194616831157510396909935955484988121044074265682224700304140583538344518233380587575333676755722205948514263853394444716145809376761880875476112015577574722799247707153171896845086287064305832939201120638668384721830152402004113161307261654820534588668659866959911780767879129852358368095424299555158579504895751069924831622966681930433522473719951821799863043729205561160550986307049127212287215325828079073823588354986543996274484274530953459751054853199854704267387677465946303929562803979159007526731872265459083053181169566700207936953018979710318281530063421365238566142533822473036810460732348659366262194553879735359044151721625666996866455708193745779654438757343089408878322273491274244588580047491324547867879228167669355764082405662218242739227687237629829189197597748745248453401150197880816601057735606809716102657601493387166297978203803868820798465270239583044333311029509371691900259352481200998346782521980088750086709384011628146605710711503437454424422572557843181125875859953420369114445076373952603240637564202150816264969971480174321381386127932876707661251084638090626993161659457858930844196733010201959686853831214100094223446137668498465654684214672302268736007606720291668517025570103546064983106148554685882793558022876025067229866980356194030616365347261436418318631415675823183804227338901244984323930283790047042540088062342505581523026159718868416048084864192094522888277250743443093144742440461164503728332144541274245462216954534416824488975405138346574458150666689964375165212180816564294753662354748991411634912302363511854684473438665388325259853634714645382508086667772051939193091443589213083640563258709735581738608606059560474819770425323252122200527936575071199522936636444691923936411813113043314458268090764810293182360132141651930948373334164604456320143959473596318655798612317506197120512976326882991288212404610060174685729293598549627343472170820740958026260839606789315149925699603275405575340736457941153582485095424695484362889255059971955159568014194708025318619184838438388064856524095381737545222029428529193335959759734766933014824464468339242227234892327345216953921270339147893719039147777723256724177310416887601428405728503275633861918389931908940261798561239513791856625366482597855062384547464682373049921530242799368505088427952477605081660671769689552137982421877159530222819211648260752167233435600597005577114875757279551008097246120822494937180366305066437505548631090970534140767670358866102351462290864268401004435222206155569592605592160350548938642494217375720420654409994302071949087117407613844571597670749818896616886717081236057867780652008956026007281301641968720545814729570551249155655880771106062204488374906129040985521936476986482972877037525495884397745231748934884914761726645885261833759557424479244363661876644818845562461575830323736765043193389435562182857685710589865856048422882688689849370460775337748995643674009214306717287503606856048501894390208189239839588964751408999071509927133760350148345971939315642837765180238295812279998922017290609777419482831592581749145370954179777008224546545809522196201556276180152616250928249842140279529535006744591974383494045200144419828370096287422092575104752266615638663663766150217028848221981823958835613351833489473877712118547387351196370562087054407884429607237437748800006920829619123203216144835295287351008681826837927258789459872838866560393436699431490778071158256501780951430090519563566581549196072250408952668490383418682343979091046514725285255853381637989103001084677457446278548872990231134326947627594941873721566053814722014712744788088803852496982968044065740380569098841814651524661448517035882464070440321295315545373725732088782348323446760946046844654922200257429172028422696167208482207955202097956430320658859273719307792633412478192823188238742516357017103776815604832033709076649585331573893488333997215734541745381627535429932508003149319831216763285791350089080632643444113723755298679650070148766655874183895825748352224597292159449454744024505012937118323756923541839056865673847265830084271235463226483181235765864075369960841932497468445870427008476768358935647191125193636976340537635547798929941450561615963608203992612608392221454416509790245821815001915656330087744105807381794935945033260212297144189061000317663949342311818520043831680364351665289597839934964970859420326011491211518073237107428095800530008712230105899964055322918598924496865008288691669415548040795779796788114798558964409811824435686722291956120050722502950657072216552067315025316897432915871699472918673279390224420491512483648392515685898292860181194584002280127321663684423404735668735359849194775528484305011704467531144854718076459253265002610933879883363798633179037858691560519015142807145083378426216402569026454995927239754067575224920331017868569197993321529588016319488570567278560020118893893112701193923228804472782871270264650472894466627168010790185428226769530782063412013605370477378773170163484901356115098029852150974422354256198995125675746234863753841456460796437734320887714469595149248384109941597352034399944302186573268442032619992741323783821382461880316374006567937384176056148202014962615179597296888037733818710600620225035816600737772603059869819198261446035015546715902264805934111843675708068483155765174120296924840545564941369444186972104471315776491340458664066335735140707855153314486357092153962508117180257892088787654652116080640984387265019715645099366517147038126090435588544631183388416185527125303171898252488792056342436372914334183934832570081397242842595786377776129845114181224761705599599711952807315541752649281839060004385089251421335491243091559922850030237304804145361685171136680127273418651498557535825601262827514258509381480951365096896656550619466918918577957033732075401538166425216335854789949730338277830512453696468411292668549843759061471955387970118419979057072406915796945374322305639495367575308453194299602127107500592410720695836633260127928118677262844815134577942961271469663361572344283624964219127590976780767891033753305816498496966231416135675539695421519400341590239699322535150271788822118612786614344491817154739360109461848949626141677482872539966434596526286842642400991220836917134943640370133220126044196312589437785034061202483269804320188832325185764396738624103609306841115364075376620865313029124253691110917286039628872942734214598552455549152852533428038475079534258983399170503900934818979865998800406840130896925029303481343099815523815650609025375815242568913556756965133025240776740070151938490870019231644941557034356059945246254492433953476953274902506892734385937254535229591105121381319187824025102681831541246195291667770386798836416968462847926176140446761078377907509015550658999782183343410603960907211712303517358289122910178531948884773813995860044715886346536598778276758941512415928228679863149182279816432034019583944300085045316493695969411215453142067154351776127878282426295269992612414307457554857084034179372961361319823725426723532964324804719099106426977797152359500637975140987737979651218158192993339272012622386838895164422461341783726051304813681340241862283295526129833402751495836718025570863712450091820306165347660470994949652770040337385269404119655233273541993461475765000439600711395501908484231837856448565312083175267528118719317978287240081528102774655755048361045220828335098107672505428581421956024384106086464478507977904828379371262390341926938099082674126362979520786735828041190446211766680456092818945302920617752256985856770045408748082400652228110308317355239856113470267703304914198869600317248614901140964945650367753543685109005287448903285031761755397418072440846058369708235570636803035847454192368024237973897396998584813646752897404633259663009057981853318222620812138015851978769278093115319330364053889105409131435650757159748356916721247139564443229234450484267898426110186397547290704228832914021096646887701802063912854110586679583325927551950312922058830514764200230292027087375034580360730469321526228794648627442350180571774142548787421292628459840663457413960667572742198215941279802726308489343248770745759856278608607548030340754995166599489959469704892862334716400057954287947082948366889839270561825100964440519817651729276707452264211211760418467631623210963866186882628153843630494586185379689454949771428121227029377706273643338383777712514220134682631187704385806243239126012779106505701744833206114573732301712750576494551128595699365739474650615401042049571842134595167854923446223833947618321197071060672199501602090139983312274051317783615104187141902054903576409540476838990352736979375592726660277749544363983536788688315346383169054701798261700426247650333826718781946554739338050477082497663694370189976480928452027772702756588736117332919904292926259242612151630919630936202180727874225542432449351572197053565728050477578042062784948802778914803060711035112729892641513146785988156270980870900892378961868545079776479454645860888722574890107330186211841420901521159337405883583385651691836823801047434607497537054211289549783053783533220409348712056778841162146687866805826423830834223719676713395858174382695623139004092557386184420200465986574484718670925320400310715089731074900011332155419528587736791634097426954909148195804032484769926438929402285170236585468502684483023163217749799891200042394320795470034668060971074750588077912121978828172297306794593573880857196739477214155596878008353621062371514876286834497013732707378905291777018098025196165777714173064022067453928485015324509007736535049131156885054340651146923672414416423327717710719618067446781212265992529998077090581555063962681957277494559586361060481001362853243564959721870479348512516761549893072232572173681690405871455955372902398601431080261814836011321822657783193078957425541668719482210573205569143645304657788957868869054527845640774934109599460741197882293634379449433635282441327192790868882616197129606188272255701463142569612335071497649593496376465694398856939793778431454470702926646470485068105073299300868011758381109529548324219929777212630382406258513210570254130871905800262338720955006130974980901693106923808497340015036101608295895978523278803303234664403524010666097425769041678197713493225340458420142188643548887192199165332932830381024011181498510895873460977541142493119766756614452372599320878897308956300609326546602392229951982039063439112959723219472499491911183305274557293765570070528636970063626239345547903319248047244028009409522749188206037658103319666096947124354119524086669794676842081722455203851625816799127196742828068876489216210167182112871372799512235405526965454717020170906456676207268172608448808082552986039694125042778357381260678754589096330967991085459735722145904141673067376622780685644741001612801272407188012767301654877973984527647034711714896367988174761192057687582983574678170156721956585462958757223975932351804426258490846137798852165364522874286498769733225096501685674671291025033605757609143862224985480923680548903654927179472501827178335666640769961265884151443967148103362740146211868823988524934182820525395725708405159673987890681888329824940564247991762529346687272007966609409337871222214497386405258973321930448869275294277901617456550024594364977534213491965910988694568951416628975739974811452071049900325088411246566175999707229095843362210985779802550242572565130211955996246844246371882999288275242311633702367063713495566915693283668834137310329019937387922468027299023253603459924719427004785050024583763311592736958673597374040345764013252692232307011406938965699251395405085751486002005083048286611574238998483165148865832056737376840748129027880630751457185875436390871633268003004337047209936324191120928956822193694643190464557821966229289299676087765593106746818230519559677753244037882340910569806885608262301559786889161953400916811281869202721728857053425601965051091270391125680765966746151064966634415163467055752301569849041236058370411121992897363320688989020316290388330164336606093102122048615723904671169232763574289178023028376973429687950666036981693571865208792727481553698185375140642821987354015828359363998387283649127424043527794214962168297723712004555245756043207234288629424557429707099650417104006296784122058967388927064572994966226774195879578151318178910695182335467419624657137466109521676562046829098019150625358951390573657846696789160704124090456554012980475890382843253775781645035413542258365104822414742812866986928844879997757080087628743952360320340385930897634960809742780165648918962386685815967498781607438751166688115038322389524306471056374918837903894297277972107069359641166447208108041127697876423370130190135281224395180281846687863806726538185810307222190621496698777990201234144014439835143756127797979261976355390113026740733460588025665102437964904957584870033289296659641808074970910549448559785102400688523283263450836062962952733811839843043199816065043882917839290304388410017614053176105953397254532587297739410893062643709416880980817288175166681646152354551574312953201460433613678862179844417837851332134186601970512355105058914963814775043795538492154037337736176947150465236955103167318564806183980819173670720813973301819925453706938911029891870079348570868134025224942936704944923125132284522729636245361835946311259837251754891945904187792940271466828126221041553596603327158097338135596743709514619906696324224821349640714020285898594104123094085896628722009525533154316810839605329444843994899773449589548097949249609088756622449278855515131354719287449009918003524875215465112925512059990186337753120413057488102090077129079289015269236654853026553135761068749553171530451658495250032046261308269849770747153231073973534063349392119113130227852321388369888786377485141621595319305912272338650000723581254149244417135966464419893726564239590342621791142559865210596306480689839181270106649176554772171450395398310659181745389283722723449748351525001086596003298677449656339436811748204046398766625441975889590415084785599130791821492823258555030813696325484142664303485625048615757244912563950946796691433527109941777259887608726548374266059840538529344989618175041008963641838795523666160082821784350433690479436192864046974363997800155087635857683000678748090719336538165622820700003455383156994962609637294833662583124825654691049768799055534529933062162390706450704235107130881377797658736316692629430117671751813231208109630447248322682154391025737191715600487873101185979482012671691012734518392290961852995233195119249440787605713451899963756719141169592199026615106736155040655179310150061754840505953897450591467554599088793025341533922656395745539491274250237543233564788296788831779163599775641781085863777893184840803694614123986162077857797399183467024719742919497833100190767865361483049281271995061155400306754357871648263099862446336979189755398170904858689354391407981532379821131824232100600364129604816394776548806565073302808455310462281951097826742308249607269581613872557150184934784448753466755433871664177639648819860769874083825703989954121697202869625508680501883848151139262144434957051642378557471037437672565977302735513325906162612310837076190715066730219531347588284828206713416395176349941528297017094510629544369080638647073793966981150112690045332973161344520485593332338575885982090457355327184500160512720222756233918148521535539939376594265684194512678617400412290694695288169902145769933702644676165302480520153730185848113052294853137002005594309507583767850778814201731294710099962536585134804688398336646798980379581623838262292266892637602303352079167525326246410469900014575369321435989906175781145468559221609171671449717363231299435453455933576416455545388399633770776483838471128285902313389344581459580995262858188975641693800480220279642746465904710154382765193560808175945177973175168390372880953700908013639430369308835045372768803470485797683303054591534732808991743137094175919616676745472669922359415189182006634884145057154137003168914476699312117008918377114836012903965833624356941057023651095415953058076343885949273190869296105695486328394199092410188879504550607791439816914023797363105174421935420780921573958140461810103560505231332299926800132071384553057053640258532366085544173569660778460430874211761403034653320913370910174761650508743263074676775640909962170634325475380528362338914350550477112845225082708233749890521411829715114704510335376026362106844307648609481262289893368421807809586885327309523367125380371742963115683501954791556625933397786173823867474491177082807840588678499208041438982504058743159244036092354838398976526458455556922957285802488382275716286000425844783522808135499127413715936702866057612580940177062078219583335569476286277873005814723633577544624372587784152187727662176336668335110243273487897678587643297646290977946325591202536768398026622687371720613855875519203754682825279370425995996615370495936594374393853026732351511781179798890306827205771521627015584563547472441488961233296239931583548280543270854602208693967917017841224477093644992945020340816376186907234825325288345934387183227205333974557938389452812824305439680686693237373169034795975011036607503237614635095175068435511038463672036803842152833512184453163214935072743508453549682567455116315531114920982408775053510368146426907673299545879558515752897155697159179634658583251145549824779289144482923464669724461004534238922656948809356633904921101639628276527615154067860911218117628071627366702307660794012389871956340580782179635487702418450161943185773896689321392381648170089240367174871808781517101804133659158930550325367068452193931618405609792838344832385850937787191222365418344584229590258739836302445094811259005546722579343307537491122455586841141098112818516155698975502698043214886046470448157859035388779197288859043404051290237515383090599387224442399587333373612138190718281093816188267789047881920129646418621949533268038512670745563937635636038029261908491185695046705770006513274528523179300551101556907512382249095937980839139331540637963383084657700171771894574560855499481706473339895657688216189873219904621977166915753284281676290246736876569653483848221866855243820179711990331551498101159634277759363614660894304779098671358151824520701853273506550412431839632323608327737932561840381868696467722257719261063758407787117861237388600440746295859731468224207902064624777065504315517728718009227994363896733077225471764798173563903064819301031496662866650658709567761322223468210101911925292947167343072916577163883651921540176093663190166515205369670890661987023140020728696735189360933440421110472162454887493704199027857639483251504529584236660576988421261348992276637080491364170713288172965945413368254265047187433682459274216747224192418211871465502599733919809619968783213035474435151581285102088876946668534631525549407557722562521120233723693014827314478589901207457378288033871136653688320521676784121884983790237098542784500451499353538762328204379705527833045974497060354538236053059753828375498263440638669989225175951005358381355345153648920313591286387097423647329492922535534644998176965730788566024946755602669991596019575511178877453780954974896625937147221328048580755047443629122320760790558258453483357300262607478423064794508610219361385255482733167067443320856891872834518877210699409245767591385542235254700816817176302256704376397699371796918010575517192748089176952770319467102845846757081592176749096143144023317317628138475384535871353866460987495949388271494537753928343018180906044139624364748988451659164094117776332051823679273531130915947762345731279247483535648128098349449888755102261557121723182305522262893992096569569500853121382285033743717046231395985766685932541368330060248916179142139029948531551677045697908646598908881396530723914077459427304259521900467446952237446905425341335261788016801487821428844051822348929765901547945823792835764864214956912954471959194039497366695441557889697564845127910335739159190922642262320510703971749128080050699681007055484504820655144848961157601488168663626397761143166192944732470034694149157707008917319040121198016563485555887617403183979100891856771473863923724577397729395621906992055015969829331283059603853958871159412018354144210959454389682726932985407670307334484920597406447985010396793069265953022172529696559465039078756552208528101301616553026826937509182196449633104603608394485164659412697118768933802126481461953562141239169154722584552537578276630657269968228109288805457525581702893615934650466433287221752135356316478229698552155527995964589365050033953219186852973314544616268760981425266475341503288942905049719045459603734921343891918638800143432185152049559526021350776371534328558652989469994046167699588744357226655636679636744140993431226683343068911258344741111379296644249013728304129664221762423822015672441542044690709691836395476966894405319696772241972127979277646608038868669065256052167076781040386327396349811009021636227591008956690426644223419447598389877871394059728340254366222188162487193640178421494467799469128535124254542854211650611696833856627660484702993253004322011797604746956833022366215654783972380892951509639436100258457120952234759270232240696480542091814974133893508524920711768944389285159865101743285366218415763797769153611317034301491068703199602018828939064720960943209280484609082205027504454970245468044987547923760760010734584010514504554419319984345719114935799833938530570990547389342588213567025617870681460684251795457849101207622182372175532756762119414395475408499961860302031994541438440999280066964135484088788018557008462373631359884695392933158354983653801595885052813209306689887801849105656637748799015731502777422339789982534752114018181081619300729145114833251978372558332850620365141198458358950444077583004116021503232325583136119754437252706312981508591361456026514849343631416054847039428996287844272679048294959967267526711694861460146145137780520616369658987258198761596637687552496596566509193850849742162327556613940454741815149325179793879806723844013073449269295981298272425166963323457127909109949333020007982127140153896011926213116127487657288150653948239107289436862649343601141614969472444030224271016504258316675204790928722732532209029708524438504611700902831264970043364873226577084608713659952358895232049248868086215140811006385965296320414642667723957521116664627778951508860739928882655263137824838312645561204346150464987403978019458041410148204210333102581147339427427327054438243616357429553512619219192106196686937285325471383785167207159703445066360667001687397096980225337451885957112007596704958877845717263357809676724709770868143750288487387328688092476985383765270367691016502603569494356998287108081769116125585862734836764852827574203623614285864114410736777442176018321159677284353273392038270116963155801561616335976980946660706945736595623218310455722436748248915127201575156049735675902407091485835292225080514344463676458027425592382317149471331977559997461465379969470015102145552580057558335287529355053852901629731610514184295534051641522882638470038423346627573045534677671163927739121820872906461836018854983684579118934663858366082318113601813663398105607304959029729546402284307924552317579467871650114874896439938920872831533550022353617350391036439140472095608731598279615488195322635331121026256349611132953591549408025457718943235571759331973167642517458497316444070690882724524356218397513094019431237815943911766507545596246675398072174960308712474975615697416913326374671860341112505944544757850281550811505283668261604639697528814886616519006294103069702926992039695998600255536988126635520354715983316516914398944632681509062222970107095003294703039955066701769050057874896398153020463808851397674365886281347516404942925560387153617705135084325696259318150743999906035816841379465553362076785259021125541533070220616079986300853398704488990484924895181882731256088750079681842302421178134736969525502597821435820654300112691387734944249121316293340448597377707716219531213089352776141405454470802411681494427728058780710153761981068966662765454555501125948891653740267334823765463517707448862404443742992184461451526115309900265457812292458513571267002351854865734177264607059694571694743504835282996654717998320082053877028181689788917380045691655192000786434424629511506919659736143577814511622429352341429473962121350684325001759665554145290885585955094215293981204612428589356499974385667152778395571093248400156932844726844289086022927052401399511311270015613103159691890069765701039486827545332786130183488199975584230160799629917371160763529959891112093138905513507623450225464307244269250869163904699744123920349908422733803663319284624308980950133654171079366536976047936853253228614737222702062409239558196014640837791611144250021669043121089201657241614656794061999152885019610114461585909229560856213718117846313884381628249513614742229791800949502726640812202302623913021331609809973079734899541351022630021056054948990600830046355077052059938830059614942715114783190033708396011800574461333051655257568540626985603780805639010158141646150125851130686838697874030084392662548777302767162599957783835877627847551057415439540689358305312494115809142955135704855384109213725891528690529029848480561046362042889527140235181810902740254605487891048937729994640232125649079316048375122260942110244603559959325030597894787297997232435225989641118480841157269338911760636800963584893010857147400847578753909057354077431189755557899738180659662847105459407877841171497574792345344174787104081277802741256098221533789078786847964810562527885705175938187028950799675537276379572279181252754902229824077808865293161847445908488677562741106002722096365839860915796689408802196236685571532371112609922959678782667403660053283522462091399360722200152022460670925833041565999575044619684193436461724346079163180496327934145164611575399005292280253248054900095556787611020723076352544079286905965015188167157104787050794157631624841856172699457369721195741284247470374017170408370550372800786284855914339371721976145678861766063266999432291595181017824062996084282558077748940386054902361852459762597653569728882059915963641063520977408886798984907630013889187699969369325276381228643428518323437597160867227713040196329276820056955561971631869455523737281030914365834334209946209096318074860099604718757613197811558719691889442526462520386308959366783576325595747263440126383396651455265443044187035863549475622499697367204012900668294977891247943016857156208909008499439672880807671930999861960528710611414157514301947102914904480423793931113143699281908800959392665003429866800529490065780999861855291746915951661702219830518129485090849024332704879131542126876178858006588323961195706063083967519550620784711102644753602998202461842677514334022392930010578830557130116940869964725828784686290972535855905642609583167550346814111336711545717618430848340508044884025974402928478774683857978353813298802453954911776804562825181747497108969619622014235717713281070725316003234684693271901856342870333417453108842504422692040267461343203896077434419770153924952876521019437771243230943319304868861557507792294088614173780231497616804413368928506845246331216041134121860556024855153759795197467301829940056117736527861315928033184421581380435194800921502004558502140982926985530278173261184541815137254227500653382569682982630286471468552254066544233946803819950881221886812713740992973211100575986781158175270225005199901962979348260662175158521952995517309209618737194420109050599557080024571544295312126388989491671600266989102449830157489973217672670194419026055245989862055935365606876554787563133633965730299512034689651941050704223120631082713536913192505850378871572429230120432827853013313558776076200039805847840286197639962172898445226283444050684929212897153990044839209932115625542538040653483896647669961076161351783956128803591775754545178358998327903602225014795309898374618958505534610393923308067489076026940727715767818575675809865417285390376944223334566163081651930691012362951241688085757761375789449064822646025034417682398773435104253675339676064056743837853384785009401958108751463021975533747781705749758984665829892770344629110579190907438063761644301582616208619804731249760050811961240487616116696167604243220890005279858154761302541350938754514029807615878122122592582481936419510577832121986061890143063874460351703684041969760871437669119561583127287597233389558140635512318319295497655759020957297745263437317335003350115975064517542319359236097565476156030559376454759807933639530840677944606760454731921314309773059257401690239400313990565819396011422886243731091175733899220315148237683067136770726161653963827125784559026062588476123916559667540391029553223512618046351411817539481671648091272273700380910448446098991191539226340952455031400634108288544221725440545275603596962519694628770799574983491657481527997997316042914983130306488689654991313477780270898395490159964290999656054743842678486856851232943142089568626453643790619781361181949576215983216625531347679580234720924531138330922815650772437122208560013634590468796432710019588024844624765638726092634506342437450246627272715869262925882074760628297599153846550437981399385768289322775645786575923533655946936377013925213153790070543182796217949148096390146044524453222593603495446843624489265003807803453917105629164429888678039187867269164431803944347579079373488767805358572900552308700392167389438517870774016038910283636089782285842654855142309265978116559194584926492336433066618280732248020114718276076093453311549446304030332294348179530940867148828169940827041333069710540959992447879801143390870582398852816005891839457953659725932453280543892484287379962981160170553138193682700582666979923331229345108479714124599339799878213859851118815942279715501724183812930414035805942509023670769276347054174845853915386119901158401177609522904529711005173673862144057081244790726318655689983869873116798574203321832874781648529500365771367371647455092791432798930023861709943737597318879928266841390301118186914007568168966168651325992078287430876962803830079630443436236311685345091131742546533318542364568771343840695223126011283367999985296840993606775933300515722696582292842853256126000109137961834479389932220917742490000072038460209011390326487405636492695665191684258638423062288984324158434345338556713539280338349873553123043896435281656821086184907297121693180105948950998875619988775083252600292595829017282569819767760535572692393898809737503999517388639289811728222744311390190211381041717814809293324180688048316434843033580844756005414487873643375637785785105535716159124837093467871504407431739674680967209770071062242340122583828053797212883111870252880528790658641347870954799152394774583316586591167781822491841744814240975788889761026341784564643318413500786075211246686501220916355966515863179615805798396485304696090811024964407006385477548893251833649025220397051666904056320922511699789516940046469443202121378941498616778183115614202468212127953823010880672991116309623460238672515052436523832027424800287493837071393993840816449901892685558304034865543006560839602288991764704936274723246996689190722695890851683152787652733989421150021122306336438152131188798076826748614177465989723476762442166457187435605867327467131956003989307648431506113587982447253474415392202486885532185769258320915655319167371678224224120220926453986166348422442202619146284701763719140682022914155023248825086631893181648768289660307157846071503767695516747306431086786828990824938812500334739047984505955901825534956837643695773186542306811837068302078652720622515208391865051682203331459680454920002941724520424657259788835932937500963632134814735512722026493057835859484743821415937008841683930316286922990590415162600328222449842891550327828783383251596065588057603902372073846084267336958676422043220499764358089856500531337968632913834157526542573249958165149763204422183399255592138003489124051907926697485726835082773724462832049671693573746349032142402303113717449779580802660886149878304904897901501674327317380918420800573173874627401361095733401714739774784595323986615556102005420546961901936154041070480884841440775276393542233504577497451109233879081920316673361453671256553430696096386546621213116596339088237211571810428073274295098258449039042420421425197826270940603756577150503704061499393203107583145988420658166818363177061612022303864975454433851478861716255124156821053096480361480195462526214445720335629858545600462991874010733730411769088721724036850080956953727310706349172139074782148684325725633844716289367165412218096802798579782209025972281179939213069583317961038811495628739288654730037164215339885324241027946313569324993863580910939379109155488953290870999223267979413821804248321155128750516102835833150270666524847873941690203686892058788498884567006023823691421506998586813576711323536371136814714383417262200983898728691612925125733683202129016976177132498496287660757016266949086347426949105398446577841086907285552838098275322074531697188684405365839717802767668253853407507467054380546134993700092735347141475403777014500037433913090358494041781385840412512038724866504177679688058238967805707330723012155538846112926695918116953867627878356000868955758320804399712636455895816957305647440132541586502931415792429285994052956850686763638320039874859286606028181193513203820572751155985351825839245032913510891078159705806851322450754048479928998089606629770980009653138237302600621554175744344107725694640673024829874625330291305372372068576531614714108296221729567624914882902742373879279752501505256052569116029484811665606131554312624469452231552309579049350195909048989132516281949332286552987029225455779129874156515076499975007363979143898769608570257659764962324855284523943803033286455097849906058779343444511295304385724027164852631561985367708427605549284897334653825082948000113114353221892889436125963446293408732294014498447945996537498309021908836747545302803343837769926978438077842734903800661124738844544148960043453294383781598225181345497509461008962071664978905457262153665830988715071022469970971397233124722648061150853955639011821777820790632809674238176247010763126110210363652024471820778204687369972845690874804273597764129212199717487545989278599394655602804111683717560577026247924178700039793419504709744702264413724876053469436100484225632304186094776172616796400652321566243272485939924371466259780430044035429146391316320680121159102591263908390553206898295699799898685528488801946538029288084721016803971891599847482918945997326273769908559549928720838753535988645905757769639109372862945225834307286134562865464674364228987470580038387503981899189620292133972520088901760627777435207792624397790930519026885344593613174287476462407701033988326884431364008693425015360647716013212340764072130706074231844369322067122667818681809634312448482085537324543778654401108764367377601617223838329528022698341955801329049717812354775810471204389474150343930191713590375305270706555061801457327749692999313676487440704196513911307717896248554396130706019719369498725217131456955246538461473327954138353862048332212590137955566854097898541366810685741102146740519296092344804361032256666731176450216863427572563579751153076260612249161171810855053548259241133604859587338771708027789869617511751243859856608244892330850515718312542278126589056550962706965252623043706256986903887798432392454224932505366270310481643875416759434455734985224794764632704840247957794445422698015458886874184710162440267736307153796267079564740058745514590820047738495404824470418344558719736910197922275459731706864879367283853586886626027228505199439564689310259430547777088196774078705170721239605600711961004256174500444980153879657213472539708576897788185925913514909699103660669366081160562865090012674911127334051585757959545679296048854238515876909596791518662467099403309974568402319906479920444625347153371567461867930894029758636529826198714684015569713101357143521246618967884848110060489194967033457752911358958749574805868222073331035023091172815106482366518622207211877903410073437828963927001079936842224566057053284372082441773497465079630728918592017811455750555737970799609800856223522309054807412110102710995460906294703233558303265840048800530171169425159768494410289794991799781796363328093089102700002372312257516825724848544468867336909692635190639851744562762061544974737139626857179786069613149765704900521837711477645122441732569359278104736498988804688598889133836513858462435916687834713647820906478228591588913844304139913728943961310476072529451711261344292525958839321231159396414251438179563784144767877771941934869614664705237511700677956516042209467633284597708434772224446559507144880071988435278768574325371592855747374585275512906678808354624453585251289559745461380956608854518179483610825142922302416598371930297704769134641983595925798996931686713280725921762483399593715616376147083698659868347430424479240063821323935354957228473683319389231592655143191614676657301462524467868425597164285157093564343411959142181971554434529431480072396933557625842013813931462076549575885459389476095522431795220456377022630585615309486974131723855901099995521172014213842172829581987344155742291983677696800705314863923933914264647117786417260143131621705468918400223860733292322820350412668820479617990061287238076769145581426843708996297951169017818437699216511542408197543992877049477222308254132452999669227572578966860262534465918064142723325779511197131149788715508067326371636383689731505333190884420030381021387525966797491447943258738502350859549879168920531001571213652707271602105774608500252432823449485744289373339973653207105302791813194942372362146032093371296420489016098941869661583219776078810837860565383934256306143851384742617002056182754508326168931664609319925485025891513092238955006298379291290450743139521077316327727471002453961050893195260832784736070489411096914104262984463718806113591089027294531558504905292267903192008263586975410329101610282376169168798078483310956076997580794090379497228818159685877656542671202502731544008051311229971088765452774832725461015580486606652953752531755995682112395017817835716578259662451545140844414789348587738596075145449725478818338344703622636670195718897862187537884555124339553675658349514929358188733017022206409529783885510929157221318066724000711753060243641962290695870847918586671977473235816230410063912571563661371915249737033030223924143852017312448439608252819135824278424843407312691098835874267954744885772339596132844188051544469582759136551134463819527813642581779028010954692987615240478912979000852856046946324146626782183260268717029667702984312495053113158565863636720990269267349522378857765601205806049645190929869697530968747204457692889831563987071647316099980779675860941583452089257923485595879717148072347167083447910719586044362243227262549341359260470734445598860141756452503400542489695016144943838032493837652953222444111701482665802172691216445696766391595505045002464164310562636391873760845476318287678379896446421356185223456857563183959687171661621517184453026102077071959381693804133359848984609179615521749546320035620010237034696688514244876274791433153641276997057338180528620075820532905263727447552405123602961031615727032991280149410317322481847268104469599520747649461884810957537717108152213046972995634634033262931228863316807330416660786967764823432669465192323383534945257001263765919524899846577172711019144199407989160967455685205977840965640561694882380467536550559280667912048135112837799786900296112877916528139067562075598930926857627939724473374157877168587688904637088381240292225770820319847136898090191277708448515935926082129431687481399602346082600959904642668586025683447278334879829643831828860140920998642974560260506966341983998393416830020627194872701634956993929811206587065381747317504003063043556075596301874272759525055129719798072215707413356243792074740619648441259175962683354556949201124825766255063043660444975661127012364745534656290013604192285729768936680388699631668592233979504977934180940329432137195071748615885071302676886136200811569108218751049036108967487246124198270290547870066930947514405377261135700837600585204765088080136644803192654051156236681618131122426652107233466405516876941201433973524681458030101102951897844484728808251948597028802231581388006013339893067019915258862780138138945839185543261974476768045537354642221979817557518823148255820488501188011135362838799575264889735338569082719914559934316425622094591354899085461320783651753847389468288970060300907352212488441016440327363227705741230813414004964758202307530669091857784581746774526302889782880683118791828749695446196517901710661506117859723659921759787068613339542157660268860439151441977783421291505639733190943823628751879868238511309958755596837517102940293260457999150278782987397771439606149733673616141881771805232241298297173758560690349485192817827444774916727933415765148600270013840159211817223316437925378101579420572557437168036004596748204069838139395681834934770218647114422383182348964355239506812474934348291370228648924574899766045340181668011331819071738560584948072682908759025335101826532727708902644734105847268331824110625072653628543154427030233295973136428715039506349972118937929920633223450910964862784714812668632147023962043280323246141950340589202979770066628754107839814487598345062752513268435210253626337590193243698228800576890996232945951001159150570534223596749155162198059356157389819946015859192163611137281928009637317561826964576839713767426249552127542597984864395073102132750334319083829373409979846416707803760314574299887296866546511323639383880126466899312554615463193648197308471819567699697989972617013015879379314721403072868154344665296365760291578980669615389628178334207052949425651913831412316078289847321407856334309717894504577879432783880140949063795116829734468027530623402976831795200445605497364550171491719291663466667532898283625511938576138279331461551683068023341543551251637441722095022701340842295406637791967264894568238501931980312624875292652388729336446805504981598035216140898845016819316031347649047173270769606346531759190640185349196425439202643989841756998661404617239959340793141566544520467903267833909699740733126534844982020638624102007849645147806270619270808026859750604048213436411259041913319656273202757175100814394051938068674647591192073169711074854457356384641027622416039122220688476002152578960904599274447903098447008508896277194245649009078805467879419860677912696943458248526253787721679368340194470690956674598705484171150905760450854674333858970084211844971871024316042181852074255103449532705001212133662354077776519421624602562684016600673556276984474461699188190507362121839733415100737063758148112667919293316966007490563982092016721672233900258399805486883829447887374291071199522612736197813313693366514379767335909211193916253304602645808031648682952481733619154120008817018620881700424049880603479793449517050616014669471557915761780919655592341317651792004776545214789504614969069215877143289259620633862513951827022650214513100500955972847591091978672079614327386684303761862050054602726756002454756902391347957617296448629060548410977730893597133558194052290171916369408628787136084546625714336116795657971325739488513936492399769591395024916523295086295330423534451417747613846668379421421831703939835149662066916611539678259758502401770174914875555679882590608611654839742171795432272476911603527845527097240740693151838109296014472193952568320511645684667229085134839283659566152908073899657616611005608636128709219962203340226865351977238280496896822786412693124362573552748187499476416516337948253411241574646654704526533965580577652586746949387937489331208441068590374251481588835427063890763978349021528746545548744870951160273107715791913303866957230526268345256408400654192350910173652780845786596644911780774058303095095358147807122510220022889990323761761347952507326287705031218817963107355798151687045449088752964456780197073514197186731615397207702950560512207224154366454894987667103197520660472402898170412476404130975655597650424763473293759167792910860653084933209576390665022628214831684712550967023987661460811405476853032981175745857520433338231187606642219320627224409120738806818530568149775816627712347643295438737647903746333320185027034794051776513748514083491548778146293017983871057110972902277620665398465387402259055012956312969100342289620678811615705090120134638885654301448768272487156428357337178813113794404265116712971798896865207322843361300461343626579499215210199830688908034040146756028377382283149261349739890433543484950509059955984926994773865236284141614517640350740212288130548116515208636331602354442593901313780500854261123434731513928290715440911581871788224667557192337015416877898146121060559537983292376067733989500859737388297303159857892018130321454488246146131794306781188736695794937134794572581382715594672671082150095226636924288226152849414832299313351008995035230693392428046858914890815657151987484305828725528777445122504933960188033937389184005941295284513220613835657386039524378353979399080932809017507700185907583850264236658775745639993118978404282928776243008500305544665510108163672611491607603425740857842114115836983327181954382340227649839504907430706684072669526649418012592491130278543313913086151955858844996826225535655056129926110013431704639197490461281037316470046723853637644498980699421135331053417611570763829304668553468326677052549938746003618969753991764327918835184842743568310653595223706338983229688935769608582770798195108875714079075442405342968341637020764967557133222431624011910409845790264121930683836540250009394254409490856130492745146555935558896507813937101510497376197338487990341631108158366732643268837538588001192083936707786589740261680339273581241670088058954266625557287225814388368310268474010114727408063358980905188544944013745183498311905908631777436686607172987099336269796171490294397046578130270866505145259057144415101613127756942460073721534590855007544282146405611977257528254941951803609534641876121270813718673336445531819574387374962382721314901480193622275477547649941059019430623914033601194533096152564995617632080796807911564054620126697556984567964058961244692194085245007793344485965729278988430003723246960007706144504983733189794788433904864837120487369200221698101229914448861847140145234154711414852117128787106358147655773099688111506116070527485349809622679043352288681807428201657992758629455569479462940369805396571711017797765228983315746411894060000464116739270242030470018382656297830202964542180570331026308193938167793081265533809612638471751953897850379491992799589136464617307908620958110151255130822599868889516526613921965627959372315305827758546006649118413056032035849159719184429841448141530062361425421631146038937567654600686590233416781584711387873807769610043112378151987645684154279684783671545279436740859942690230333501944609265281205486023680909909298211748715005416504087818170668350331298061868921665698825721934632992791677361894909963556148393098781071168083810041618776116828715944668653302373715894964131805934998780573653485384988115958708774437067490796202236682561871027175746474155603860529003584863599827130448613250405854824983804404147248515969088011058744938195663201141982839950665433776320926806694770422282672355758844342957741492974795391201773301773259290525547887533108237271332583946077744995936680865729005468601794322013324635852822745168916185389777023881372915404663738163089316429966627238003202780705363566337410670737954330827752622929505407389588558003697003193827403954654097508653325591061811061318194627612334049581988320937107835634887965583599752597003908115454390835089896147105320441191859772691060661895313456900082923964658363987674331461330416062173009792099015272704203784612630860850455761394048578177209344366900417485121480631285254693384670917698507188247022095711652026970854970699210171334252052994867913081161876163441598218055328601418165653409107006874091160103851151487634178381199169237090313868769366723724310556539809651288132106027775861145536436876073694432326432195439653932920093266781218215147184858171001898214131331843170146688909987818093055272201706137145440169456578405889372051282149525154824847867771319040275708870948533185791975042222859684940962122296325128714108193087861427034888294309106204590218192024993875359249642976806696628344917124856532304632016146011781272151569666267834210279857722145317983057850201768602193517084722535471217277945970512694570176476094783947533882540067784646432796298253589330522830649914959950210619790315872280162440495338079015110700909580839718756450945671248640133550283759887355946731130864887360935028971228308862407706228670187545507855008181373347964388991321935647339385587146663539000679260234344668872175648082410958781755596175232309778137404600650584370479771643603148615357196548755362632542348751641881559974116386307348760054338857864826756792105551732062073421545495519467540166510165403809271111237336694514520451031471382977668321165356501011474433972826860042177767833894469489868188166286592507628721561553871922966521294540137209335796264474621785469232088465114955780154219446450189720680146783905771830762477505748762032696428887296903550065372064050523671731990643562966895261079939080195653621086492438947901717638710181839080016973442291099070772544026897015702298453207377520761106666363919427837670512747259856444584937848048206626567434653234378169625010544073589952911746473545461796151388099407640787702712956464546305356718987905330186606250022924673168408389517942152525566044720343745550983023521722057056988908845333628203763569923595458468387376295330098828127027941037970968767047147289776250748420353340775680004085221530957354327812482720075925056759671604966226091286909279200113553352434046145126532562475378570095039752964166653936377355794314766416328784471942521187501530110707933549297582351628938455248488218811327383453499156272226196341528361167735598804626944981289402351849914397736674330543869141920339335448537762937312083694843911513048187256763174134565789133857933916826170800668566096968107095641913010359663944184426336974330923604359506391339963647789729383794337119939262732061594588027993097982133986967088075540047955598470221964196465923570085549430400215735557168416971020165182383423804812565518103971930316775505847111724953317964545474095394323050763324640935546430499955843701459984631569059071139105145631334462957776006730240524457724586884188630644948345059869911549627540010360581544397977183965106764465158265698648814692000463288449746028820888142402782512761594059276705590307786993973476309515382385311514578537581756853522324566604588254974503641699908509315562892292788050192581778188094912264138724850109296384897983272805909966755999375234639535816373431146650119804311751149046684091000763797286882647058630236871353167998049899481475838932311148585395283922328022553684266438399109321881807662129249230696265007431186369971026570606069204843568771967129273783189173458193669493431061810642963374717650418798886429231532376473474835259269617056219823820373927557822966368971846738727067155393104932984785543475364997215279284784247393377602953026895156914567232053047032727197320041324064578641354012877856354982873105043332381090460840970581653453570277024892190918983659211746620905731878732773491741410451657714187692843793162431947790322585410596958205997844656286075634504360238197977897814595488148564939409317806144998191908339234058618816469485364233106350868904927698941250106755871489150310218801046198442416478060018488628401187800667124845438458302822885986652894026260007162821838428637963644839139515725639824730578048217337697763240231790618305695512262189857402675663130917506816113928437492131388581676928456856532334786630526016608701182797583547650478030559870016384402318878220696156243774099131226104651397036464417540628072855073184528988325610258692204536605724437543895684351238663788839578099952296259683124977857692707056131720544020034064073218537065177336170315316749198378069271495643863573227238823738833157393833982135203563944269418613503402020510900936098771208910666713470610481951496378192649091063770206454875076312545390277782065424061206849967714756830426118744101495889212328145522050421468904941028254690949391491753164262964297457159145872752459264720163873012168948389445897696602659734190916599981130763899439783906822604836669953880705691531935631584233474271370248741104609276937816379216647616667387279875195284930118444135538279690980902273647823610627091170252737360412876903906156753197554632119284986588909543643720254500324668069428580553543038546890571469262776752903021772277283170385597129568789872069870309821557448262055957357351571675320957884086088411952429182941637876116259906135510068165524941969913509943157719415800591448638679359587418282983521315055478955113948393713719758637094096698403850697566330963755293597612392152500261998421383608135360872290111284471689744367044490805054968678664607250947693288603124106381991026380989860270648254529640219450277430467255465966130636641651925935198349503694790408820578026780359138365539825473153123534271569620718754986747205696876100165908176409805780920576036948777634772072938481070830205820182025202126332229445722051526334607675946876593922597888670983799979562495011775450019980751102636232881850491425071501123883166828295642832266516236858251703626381526328631482303129589039260874790888515535335140356416515403962323630944333429066249202496174892404252468092796207928033214425519668756551585726170892205927808058199074433596323626628239699962104456380478871242375338812703891738240341576177756706980929366976417678928673678164160454512398778641217072232018789214865044345197096402323305849782686911021161455485282620107890887610007858671820714353010711547674757949181094616045405886399736720491275232191844943402430500084301310160647837551621611490670845235445927104459080609415636820678610819872444563880557961958436577903429541677628485572083555939314209483567436584266521742362727151982207189770425116654215801023119371974524125480187443958720214675478760551792620405001909759316111125919976484691496651737090493706684491315739510591614693877448810731183931042269903375215772643430533667289923947426532785229970324697352093759396144229358065014382968540791237708509267074337129497281119248846598209244604744190506278857657758693553803060364880920330276863871543119709556152399088821234460999196648416452358285419496305216383137793518579192229107631377356938401828557863346850233296986054790471645264746497082362807523617476609114088178697061326621243819130533225011621598996211610587082848914743701826845262685871913324486204271626199968063341103823348284610189196873327190759371808387133106542063874019386072495360784773624359970125989188139094921982802932161163284452659198878915962634448919380314276852520894641343390510580715714145320051694421747907687611317058598725897898638164092792745731532734396855522131445326122937697773526909425404055731011496943295590513423147654208098320766924322251874233441227391392343178137993651219733647899835264033979306414339886701073250824928811088766123532448636000480428526594581579305644896372315160116129506887734441062851229330589734593365954495768192775812813584003341682899635159765526398578980853441714348716132625696706164066165910595068757093411951141095511137414527756458255641756059413525282654281300118271139360738784460655828098560656463397428439447539895643476708156098792909626011528113034635468720017220618410988435473289591350155846722623662449456177343971347449691195681292585304857677420775154760078107376863780275877663423901998552651164565962795158300582625773198174743932778101703254387687392707710431602408275391223702800965856509399405008515915229775679938175134616239320744347649270674639404220921528521407185983105888926258330054128743001844167719289514593598302634469085126721774346065739894055582079612293231091925489942928856477607847010587347196238616919514615202847077021233144710399679470473852661643586667209831189913434918435704877790275456482163414829683331671848906784354696477847395748233985420427278890154596388835605893466087025318443213019415148376918235338562258087568222052095854816523188616936738525724493958536693264020647043198764509549405800073886827327433172380450881542541056549441305114078832087408069855442930905879683939773996692417651900059376180117681328113206408541117145585267738160424521790078563068639387531785349177136488879511803292393820857429893012094975279162760052516808074157817232403547220222158884352934487073973701126488455535324542833787007215607398262975105308405664204549232101673182469308209958795439559105152791695803470837418391646784951116477316982878161520803162912965439840657604199702837673376148358401372247455169313082212798890101159529437015411950061997307084288895929471726351024626168651694120297916162993031274252843492869004064002269957899348333121352260509574651282691177230041471088205400444627472715272223199217655071914364591768331606907068592090536732271100519976977520469442636290799216683347645356197140150064096720919957764151374450189349293076430215476043715411687651347849944676973926080026849961575879163561777844681684452305458576585906720975967922851061611739273390360319556334042836772575686756265144406295105894660813259109461208344686059414229436656121901034889925671404928848797088679651233699316909586341101776129292883600130732197036255945988293523578967727456949874660131779331788651920095740983769511502625296969678151600626545529454644635089798742752131240172028106075644360973979637106964834950780739802754536081939644436856961469896076762123242691024798970718247533855262569966678692776693030936372052293028764425203815635444435688599230947517755396573727100746148801196488397278277459458672631246113206250216106184868068516872503469147854106131342885508825393089007188741973294632315521451068694132058064998099125518327094479712155673562630052682123826405680708968524121212621710064410279602802942832290833690364616037227078215048393902782610084661099420349029304629527310392197214629332227683459922810286321462714997905647409519239792292284279783267131678891828097664039752487466481271436290084847484205088243230984782360960960897887049525487093160258296009165259074325244356955044234085547752565596935047543702410309124911977792709582711605217410083524045949379694783883611935908408869543189438108299337600455865520262237362271955134063189463825816118929087202815604987072780778231692023585970377397392750787549211867562645363546857182111711209906946524978225186481739078773944076864846079784953963843532013292594546617496382440466680578157317390183744282473308879881398108566816524403197679574706034639326336369303938672144108188894799606793486053567372608667026662298535904912832871690417419013717745810006581313695739103102472363359365256360963999343791434217697100274731608664233642592616792039484565620956353075104250988253912880521667100799029825754959286954275685553838805609802321956933598600499671205182469709054791804565143036955775457975601429789839359234176078487521926623533223414244302707942619114524045501820999393030962790900084557627014073996875016366546097244519203331482234905590702424748088128973285332037243073568334344313168842880529054812493119944999328726660351593117251886301932418360549437278371980538416623260163975478354210894919231224892709037592544411256468070268671340049109988136636327364567774174808371123712468595572121444311567734087324191743150311910851742187403659558787869890383023709794311830834552692100680803786424361155499240396444754315674291857252507794547609303166745480611822460829132648219292541366906221749164309469821750963663125369350452389590736596148251389176401719697747452867880597342102807378668243654046447662850136512408647366692081502434488500133313261976383704328915487824529961851883631983830126780951442863025467570052534758453243569203084045215714091982370622909692149603335320353402325333499472127567812599537451795058176050859089862723718253004229206925488151342094918615201339358808273219749789671034204991383267576192603887344546427017150849729189119110032684913244699205046298560063334370298325665402997682898122462951913144290241732648476500493067017817117842879896264892785712399697634581388801061413826489800558420710736844592845934439698727773553195917946258878667745479603511401686413131470081782875832704159443126202799773609850155621071493465209223886060847531019375149552370876512709760331447692263221845654223637146443019022866535601533697492435319584394501055334287603586929861862921482626126084254046275933730165648550895811684632693915068506038442188460856769006744620573319723943339219135291302081925508008519283283950640858768195037200587812375814692777623924333585613433050045585784898214811393155969809708838708653534826123403915577491170023226575582530127975736602339298690742846603253627496315036075098899379422107709670021826072900083338421539698140071236935526140472597852475225403724864458624629672976612229787892885995412040406869667346013091654966746978404502623595839411242916773062003857233803785392364722930293051833140685757708620191782620916911362144157315662460655689791760461586002272207930891198109672859735298621061457293560007004742411153087119612125963340917065730096848226924910815795549364043750187003681488837398934300810853588359218616399720428982159591504520777092211559359644358343042514551469693693247538315011111311328564744588524818896286290434519578220901037238689410663934755561063158433409605785437943922654332369079640616485896810277207868978185185869373115780618073530185499665461556398922203227320026806717340188125344712329345711976657058998829094936121629196861714974899458989421232497068363797371146066761595798044207343117397943761269682541880071491597831172345500456848716921584898481564847187778653248615625367289550022447701390995342080696204661983573045472867214407679910607429096553170639169132727857863333073078660521707079424436913251510123555140080004494697595844629119660783347658490078775492670661435064498809486051415522889097861213723690717773991761291341484830769585376959762517902363135066244885887800872573268113803058397188731036690275475277046597367861731284012881025549265082610043527411908316346172341543849546401975431103389658264130557597011675118017771714790133031756063598373048040708659478435004870424599330521831011202772321315792955532050868348325092988852871838698044417114455567830804589850828691692512694004765870092681185319351621560459639166618262554361059085949855938256977238824091289779974983275836965887774645388939151437656023237363611161540743584997662102718152808836660422618182930442811515996828998324929349902351439614296446065466675385303616336618926428501523026204999327933269179627582537008506838038146255058868918689213887478101534598892546873795969869114670820983014132927632294024654709385125234641091349115826278330502863974529636294137390806577232816406098495037315481035172427451738828952230215119793496805262663620868486500170713360200598343850571988278945356866700557718587074535701004557230662806814194902869547501869544275143500974507913056540693020458142984243967077911053086185427649152497167572764440649742181998102921369061601127295451852757407521487311989955379741761723021868982623695922660024338046173899630675998173703665431907922876703022676348956016170025858644347002765173889138076213962698267613201715014621941714539278641447622239370739158989274295573749461641882486731016734985307514980864875076919935281352441240500927001897243781514398065982488443656810289671725182894069642639097647510139651164643055387317025455255827464423102985039511840769486502055456203924113067450225365097352778325081507305341367086603702786269209991811513070124238168227681583081910866947136496629179287840363368255103491992275158984780788872947421942903171851163053350167690410696349865867503107579118719974111200382959590015732051011131760439992662077020974545552673330129464462967687006528988788451968571027237375177485418758640977023756574655554287359030529556930251912910193862047958768098863850702624296247023770780823856120795714616711861880544947072412165557812565409307894781318530464689225111002544642743366334410971513119995597023544777433586483664288815509509489212817045376815514866636092817243562433991723401080380294952525987282376329150383145732171766781950648422719602733586688428499056432449336265083591033844244008907605301068641312013381347927613989626384720092443592733863428886887012036613922188159411731599755635083437351096481476166930670724126584929108084634170278155392554715666251895179634774426298454909875613181820235000095848196400690599930271087591974673102789770943433429627283729181405433853976591759033707855124591236646973552294640497164410615123613159550909338960130982871321640220562400191748294272932603296127760497266450503063444297696941348483709209921741021959899889697961843663865520534116537506188481916263775868766083559131760992034937564296910116061391348850657514002256729719801609899722089300056176351834972895013617227590360582584504405851227619021397372732186874771115900687521525932538640329457919140031007206100490480404735387395757101804538293528117109808893801359497599267110668917686513763083420834114018811705356027509132627805520614956436211184320472478518943459956044526609480346248981478372615463991963870334376466776203672408332741244889189113897599967988590499277043513955047597832049084255615149534254214968942775412986522579531682151036549575232953999518747521617912725558671548607703868561341665812771840726070942593619196656241056045865445619901957384866288644755807269293401024304422132036303711507716677451899202325035677642989829312161085555136900207197299049828632635434177354772978103154652458537932784658127471239524160868696798547352757415405000057884101985496112886163903439431637982850739262387001718295110768670059851872977644644829389775142117146645137998402310141483534912006803797359824958987089730380853082015872268876492589887184409309404766607770276993998678764843791071640588543150404568181551989277440156148045649569026286726891837494553591197818463855991220766560618971198993158894240538659270999191224207359479426982718715762922434567760366343588905906305723192806836260190715362991682833292899035106262324465998424335750613537162595732536289991231242246401868578972722631517548061282135790749086432935971477844604623726556483921180211125048173288860980289629188964690055537582925419024189884036683647574858130510491753888342292336678987297532587218145633030987230407489639790091175919811600695185755685106738564054839843500491890832282970070581869396601134421956450428905339673368345248912341217050393481850468972317249980391773466285750202197157475640149823760972560248812190895274937464481651022098172697438668721353832334495937242496279595281816830350469545117046774498551543888572469457392977928945958474126811908381193421348599197232146067797358255421379122208003886089174051814856127622617006190902438242265254784687497899925356967817802547130354718892028812334666233307990699169636241676353779275226743849438990008730902292244347603698961657100852540748756301614148146909872794625563730705961977719322155992248951122065393162913038891558422201650429412003023393970604030057542424569534651709640246173519803040196962927968237214462680900918831053300960067857044057155698978192016945089221404047502934808276092183183082119793053877478115745377625962597585476097216709973596677831011967236360079570185835561806745931280463601503434863302376618237370938141042374393946425022654658716103498575036421678440991427586684059270001012604683435670430477327544291294342190071218613485392323905998231591962532650610603337220068238409774999026390661349573072114991148759560628254337438781457643388205432363366405361848488725743684888470071722885186795006147429744266533151954987283937606869464211845570404849385367864913083085249405057125606047870874390514771987556040854377121952780113764233556808721299341084710485092510465060493870985757619341029785752987124844944140109838488681864888996807072705794839229111069938819838937939096743281471887649522588556404937202664625559436401620903253715477468911860674696685185489489612508325683626804729973179155025446435797949932702488801245572580934142641866557399202687708843520962686601820905059321908196057476753848428996243679428681264128349542023585413453663711936320323896286211507620286856171622407017496089185656042660251436063195794507135159687568433239846000058397047540514102179284340826586302964906314471586490248178885575890560028631359001629464898781827715434963559805885449384011163169596782707977698977704024685439979764000614897658755264184087842671399661524291706815782980491554247806381201494087012350492929724990511617942755560272792572827477258916821527018890452806778945751830405847262962705838735583992033603293996028438802863388566610240033816454875685040362973882918786137900468277090100714031494336922263095427131371135286351976829627091526585234399278464039245981379753495532562610280007333342825918264019596579275297544035504571007292478465091385524111860562647044490534538762741065066377219207719548485862794664854238061105461358637358777466452425815907180295583453230850724011118374149337027987979165391921530055446600623529203144359045446256664628696481399353392210928246089155166862179460206668672351974934523673500744636493845660134951525034222780356390926727115911063540412367026004097676957552627557236924265316841204091878140302389143947164947883471906944580993977913021950218982454880966367440189515526662507102104504158504103445902858885467873736086885776468650180220969368569059564722744839719753866721268752643951155553846569760710769956534322700094595023644849494773017994774323903833586722898037799823095433770442488650058747384936693465563748694704004249339159999925553062975506773012469516677412581606325588730841063174261622676729298238413821827836281109752626689224452366295846874179305821326711307012370698014296113393723671937328689032526768895335532220737754454999212832547103371349133980891467314884975235143633012837171495658263994430028742732354653582245737298732275114115867694721568578573991828582186037089743281280234813303992846042536936117288221892319315658061824168666792114982251921521847492090661640633819028146763663929071963856370674153359020312099602776650481272398618985684237390873800908103574698477097268034191188157030124991956335798416069957908858583292884590707132569128752319273349340964665863611083069768330222566180873753685131504035870929758090906802510361519158330063166516424348855161666489861031203976052515402527550188809410416979861061390735160733253313247085751936086202856123530737919722156125563122265165902571889489905220001785020159393835666039937619302201815168773800451310632905065182760189453260743498134216109186304362142554855578408215360867290384417420216219227332805723896941138961861366444396060432256652289271691853476618160536443605190083037984377648629271905855951568910327031337644741391278811772393198974678024168667437936562386952120862539659276116517420520411045391469965997061061445083388326180995146574529159669820376788921792668851285700502244451058031853531243972234180205141998384274168525331549195182547969178647175595498362304981325004259943050878647953340379960989940966814601767191233569342735888900839486649435418167294048570342935208914762150061241541125948990504813615337970297417658921261165318680338860349958546828978929075821225424506268880798583574035518756943314770194590201955273975914693120256920655466484942840413685716872472601348590169229650199873104887975084569043839384710253848598802416474929650415757521873514611071538280657039805100298104906031717059113828409143858648567431044813493819200493046215972476893007577378743325583706761792008302113387979620671264717359341095448050631834972139357043452915684773293881771539989833966856788163468385755185276210623553101897186909789254436301966576471754231636759668757379647752311569477094827134733452042986137260950999929988571893816360059787267873968520415099480608798518461322095842971243173352312959930086390256208125164400234674827075503518191740960553996908060638581482746985096257566676236431237065038432292076534850606030085358181770430621898911446908735402160768675060080328539825672705144909554133976192387809562669458377899754961720363856538454250791609777496112626036109779248412909964935076190515203366851431731740098341484817639010137669091696013163441235320003862157448126402182932362961354056751698928786214523535781531858803355490003289879525194644041235413695432592626410795612282760397845562649652591905829567818473663238030511013304171945291509572747649552384941506134415500242874930439337726722777961373474100494353262145951113298530226510459173666062521805796801730493560714034765398358618173952574213746571705322888478748986401618547087317026381099272459302133434639333164786360097276813666137272669849337649394008831154882321564266767879020621918053931270319256359563787842423023309418822056749520425773209997911032317659119098651413064441303512576512199112244211099894216518928370521497014373612615254948191812684378213122466610170654087243194066613417027348880255981544855922078789572868569054978402075327768023744327841399728977146593729468273772341132759408973048394517715053883675214521876292373464132642666507451000097120247581272190052014292228450467528536506674361629663651957974962838736854879464622349946443934280336716920444237939577051381748132960178177630655165837070989461266079127804768701951113140506137886971596276597222825280796433105292006657899256736436741552395147860141386115216593512034917123301206534725879117348585450407492495001040290021754714016732961572455917083034905674704281684882426116639383945090714893386344507087329378151873915847038438291757168102071142100081141183966229022460074222416417642261410901640677542413244096841202519988953492250132982363112718864224314489007672369025901614044916529389779376819023655739100444351196172342836227890791250216650567314418092212789579064362458820397136790236929293914228878652629104809995754335852376438200810988857590375867990253616353892916195274008012968371256256491455641415500171746124578842836481688956949436230527716745134366520234355728016699074489046410978515884293139644545883540303697746092844564298808718523667810999953640545610354551927522461933253174509144161421831988747152680376212257583393067924880231511551867717185674171103691895161084734025038628829343865650409141624322600425139166525667884353480405104349452477053505563374120321965933786240997738202590172581457746575206187040165538591906290814389965935092782669795476647165066693365952409748275954451473406929504181584104344349586284994647154363087882622309513150397258239402653702392798381237320599211854125043229384616254484024111555945382885466352669622416263452077022290429233531500927138635266007153119551789569892939206856056976317721011435731866431673207402249908789102991451198556071126067245628307240653228126173029828723587953611614625668153084666868004310668850390961234604472001806303305723612704329339815604702507740615828437464319117708903215783965514485321679580338929280441897530687965067658849287219222616642126099152231835836274530210829210209598038914275855140640677692419753734985270795220736738704562212122844212530300345315293941480513137585158739821945235606483176915361339884480129571760312862582600538748110180524707207801222067723749090015428035092503874985737540447437834291477773392424213866745828626328360396624778822690845974246226896139597741386175919492952606084896009116994315583998798774747900962465161189493507384126883393133160654700499272715351027876434772183851570378745890522466825367528387505964808393255996729590837460076482434399929657341117783722525447821914245596726559395182546184859824635844005147807287834902845723244527201477110277769074908864648445060044512227408900302078330751838384773895036717865084057782997077782278059630931785832022226801575113434325379896155830894502161892488154228342027544049864131337515506653204882851544296782259320319107773492110451676348171858956081358081615747447020816036586150192084083290316810466824434032425009878651686885049108647318977399934161502392982635123158697263503901062603339527304769502059980996294396717829690298742506889268654960541473832864499877081308130573490417106812999173878776877453026260873995843550952438364369385400656619461138768410745523361598937352675515565325858646483017783899290276320825622454985867996736592234567768289505041324450429769381481636385808978275339257131763495153220936707077255651622399071493945824734497692542744208839741288078244124287186470989115215845683272478779502665192276630396719610814810736885174249357632051356393539358805050314010175919044103257485294660208475964749707073934030387260177139545158504979849787262735509211688006833830992972382546782457770890825962379119526053816537284954193559915680553173286673093024514680345469567616827310329198304673522495782031670272391485634538287302048836312257835134777788893886661066654960373343996119073583031642053404427178518646418336904159852921826417544361871575894701139774955145738514445838936623079095403140157816266189124274959723335632830828541084188614209469949542355581319874623283045367743982524394360229493785448825021214222888569422736999069679459581328382261615698841730326564484302905968672249637940661304466182066551634311256674034984626569699621201507662595972970330319961324488983597914926771678989974576253773882808525967227025081205868673699164085718617497318486821835389371460198936183734509747774529920928719093924017806527127133160878132754490188518860099068101934907581472130448418221916454436509974449280222061082748709101599389674578408026984339906357173253059742174987720288889102158926642271377851689108059166882573121818983894817379924625958645289984360269887287385121009019304001749017841339653624826129401764518447310939898089989811406657210346658254651549452454340000456516309397711111635033805730244886080117617696229942530377330173473871363729918604011130866471202997857829575322392795366429917157677048154212452286839564609457835731995761059726904021778162082752958618541732510471372615234862971826514498359047204843354234964634040313146023545735883639954021745360503490346591166909400372240743381206300202048174671369995036730497142593603889807385601880133290541622437457766497818609625908414469530259273141220030854107972731827558766576762241131876500537883002886551433795217423526639190418712504792879678094916666706723068276421623189642997446665526276646197004977807054008685981764595095729201960103721476955590246254845216222686025160935768093826995169043136755148264708092647096093827972357518922985642161828113492361246160053144501982335067239079137094617691270263924277714575328909374645389670255698782017086348190849282838402537816615185524410105706310852673152756753271952554773395618571423457350572636770955618911855660159746324124977536109542377935768922667834097401019154110406048357165570145225550886622028861878405502895109511543494206975619236809004146396958969474905739054872180724369343850378189287849397112372488245031205059965976288175472498110845558975777462968620199466723726523334918021993990853107389833505093145790979487991761458416173140252646215120379423406402601944266129074708343965786365428229961349826095924786265661697182843564287609200783940921806676108323318082856105132964895822074214358463049649789703826183287849372195214939292376966312622996007057324792843542977808844858663822332296112216187667320842619827706175162038380309988008277269486287532369850083491272504269180303953183896469678308147529033744233050519293212510473102627110540565793370264085207167392174795182650550441839109800445945569283536393462293792921602817971356332439093070282323344922312488255963371708245658901327173658291490179983708508236840082629307729682693993212311463263941914389710400815533004322629985766440730651564827743771722653571595665788784068047964616859206877947720014090016028204768694288584161724808833228719518490001526212146074379613083953266747869900464271444190278169514248204313566702694274306415465330442938806869987229277444411643032727690585374855967782054038792061190399690247763951963703425939524587519375457712293010029489033175877752635448813048466928665247032124328470900137042460045394239329251318102758029730383439902575661147827141740477192552524990290326143792126998540481337400147243671448581712526779508860106715158238892888896374455001323816999280633406032206773893884681230922209234053844362225193533976542456250319469078187359403111433336796479226060158216433568165076520750998935279571467625798956720016155010327733709716960432054854582517979769769642381245862945430402418735394589527320509033468637586081491577342378731861130940989142842149173058383552494045216987154001921513985324360546720005036996873437441129225247670676279043222504578644867348614799388875409449645621663102745763194819171032806738749259985146083492385466747914570817210984490552892073223986009836562085502690992569388024996307853739279168385136517498704470578817001472454718617886333824819486805271182628272806788423655323335557791789592857557347199182267927135844013404821712203798912068816993970253412824721421830239595233956363517899924038654876333770726665197501441386554301921818323583064151101278289192634854688982856287774386822997488726831821130243612367300664364492145279409387882363415576023899458105471755920206059903462609701177009851561637620561312225057906511228249065403711071573259201980021022181493233098430484006630742783066790997904378665418929190892867676476448589663167398975639422648314116869142585906902161673801336751763375370772364722545936525985233223568313242426573686008972401893417084253769784136980812361338798308988739147405452578750562121302137822061907383178079018226481386567148868772372052420321516412893726119954968351461189740198194631000475204828686959489776593849305700075854961566299861378655851049669843394324951654642055083451550639816951534061805422032681929501547950789819387330837366590743466538581314634101911451969800692471746927992339053686312655178528790629089847077973144643997818290055834996840631055756795889099048650193114925682256063523816042958428686916833077812051309133194131452870444188996742174811603407957594256096139638641896754215526906586741778464915350336328225538062451970952012116354206255492341953745193165050702448773347599678211584091698220179304033661509835920731306325954650408961379357009388760095605468257981774902198806561500820445940167165658784859016897374843355725562858449970990511563518410538195943120278841059462935676707114802090066958381188182465642989784422909832865307308269706512624754364021480069260563744348579345770598112750944677919981594652182921902884388914556272515907359229898287951167075877301011183405101663444289234716181572480480152347210106553124561921485382620602811827426451174152970640666071590455689045594225649857872619925377724836070241702697533388068375007334019843146864214392087095014927406074714932270977281306983182411395689380292658005297181470975471363077078969580292112352824562777828029436262859743684140373574992080111575225737233294151390170004931113444501194702819415243886195158052287286203136918508213720628319252813096623780505606867330853656841187564695575163013516583319134491501042911414210909389022206079531273849502526851486744755838518580374529355851269495875821461355295710438729891241195796892786543378065927011100659729323676317036236454812200357931040391330584863540128397614039669576763642612325302702540927317407557600950549126784505076559762249014410723207035490304784585443307335908150162928660421064940959054080671374106988933311242292357591126957542712155053333870636218165536726874917867187087651328409158678930492019715708784441900720499786102488214131914534707344770236554213191455085075107368545144696100737980588958137843594907459430470468931824109659559009431683976758384419277046316752908960851723077783913150494208303644343891112609822988314365693545357092656687172557022032737612802803726634309903707177544195639060602141743982101521763922685690671373627559630030821852849794709875242441633431918092663874172731476887239886625159959791814137747189029343277167921755388886420327966871293997624635855564270455630210782829451686383908898382210421111314432854558752403388602296232536015745025027963442087372791808064132694799293921978140736555426836734021590927672813138150697351423866276781259006939669429068758860015913598757518187348915328350824148642895170987934740471532950031864165568641796072946525780463530309734367376460961848275160147177124707353132066166116837352817076658180222001769933316495459590682085434127390769683428300942278569459834247943254132988106558574932269073382868276318165114546531228047600278697706771231074889174152814694661021636677949435027030927337777106467675487337154719436863273031677396405587561975819863765971476188787647956829120399652180122993550604265335134723817804573773036474840589482867978941805191921326011208516383098469346459651097901430995859746367814021137942332634685167530790837191616888114472633527371852118977922934641540126446168052688984650709850485246185176041975707366104184270367359142703298366509878601112655699726902043395001476346383903385372905652446096801196988227760994957072987780669354287315209647085277830855690817620170009311224216092133581775335359293803263914262692102622497501278017909222744107530811574015464599335122444646861896447540202646645319102338689452626546904237124998700451715841013792049781142073810174945065593161040056314326148868799682468804908411725686090498528756409538026985481708619591584979850113071195839232940522412379595408964800289566150099133875091066937452123805676455044415049553189889583008749680681068802848883428814411919319707726173933555287816946873222285145571888012816410612001193503982591724883997528099522672684179154921767185659157580754283878207375626207763118773207163026611629874725139807582955673711335756961070503713452896481289510771840509441274187838281973391741304703614064848952167997422888726103211485809485447124027275413340560797620200209806534700483722185265259017576602925218506343267622010023449686665438881960735173712909613917986744263829989871040342270672944332703544666775092068191804594494982479033888659841390714870975433451719592950841651088335471475691426517594898969636828809007610500242077076086187580502869466923856419247399708665221594211033840616433172190103514521885101461867816722977981158350242535722436983605182223350203499252948572346340596467237390742899947578896417570209639838777056072345877480952899129430427126366481965941684732257678895821349526383808232853369824358484013571268695768260703945543826006414636410799107893719959745959007133142977758338724876026870791761439919158461563423594369657040687448147282687982021075335135785717771807206892931100531012923312342296705796071166497248218965350583012892039040143529092867165404759675590782629826743388027545715766228332529322097338713440197181295529079456525923936975377740011663155401406067398426080623546322480223495835985108061844870653693975839493343253019948181389898952425325235311145199102921537630117824934826220041081471896638715997605022675486725901743643112430256475780703119922534830796175355998588390813913981243128944528166620315949977587929465479122697776342403745356600540341231469776687517812577446498979781935724531708667975772038110288648306262377092782898344708732079374650137169625017096070253379333850414823393206978747445527209078934141488985789316367045099892578646828739298115951974551840490587493944657954214679172312465317278649357522083768732763246260142173989166926907710948091840950102044191610042099206892854010672159575562611696591055089091892991527134398612494921458159297679243592366705615194226608847094667001955998962808342008952570718209702426490874713570564806597244655028775761041546859196620996207903272248710268178293339539902547109750697997474647380966134412442683258640454406066683100592508488333821546757196993176129287997829553677743808185398319344379449565021835892601254973719179213444459763935421504444173388817302168789368756834595850248380992206328870492366617974102322101285301254324769643779257450394669060887245952739091265804148392580770404426358597470615452427458588782675542557018610747253013825167283090137171765007458073045487606538172488436395180809591031763727272447577038045307086096849114379751763207944053035316128211947307239931730256209435148044429411047595615613059935824707313728519308430817367371299013437134728258362783690049415080704653612415811191548653715137883627613695577100970130709435460209777159219245780467941338927524270665529035574307606064677235601592033231710490021696610900354795704138656417363705510796089512674637920876252303731695297387996390482346910500378644311498191633198019477834619599447216255916451336936735747960484117297267943559916742308951075774072429421639513298070896603453758507601995469426732799938566869576571324860963735676503641905429703075797376494839027719839395873517375802970601837150121781613384229202118978218423405265293757176529658736149005562355277288115674106786478135505785644766157482976781216858975495255245741246065435085222494748084511655963703641208599094768241001714151335098350639085192049100360099411142972645805119643771201949838872412248463172822037223542271835457148295565560698366553697911215998107528522714170562409707226222069533934477665485667090871401164881989742339622634568261896160851740578065606619946156061892310227978829339913342133961453417646964388605062513812352677764556188448114375153318456692010580728649831575086164869918604814058307833002341672696365990285313036127770209293301861072864121162561272786916194809178218107421418125251472655476902358594416698564878631358758966415748470154212467231877002927790960002418117789193250219762220425942665724841607183094953232837780321543409741510080736212004857641943597652320379786425355029845864855851686095342532367515424039595131464804914006342789101338797765082529663129018044220703632794895635825251171067564866817297534762815368750323657842406994821223857635392642987345071264542036488671585901881806968394280200813034573292699732821343004197547365325669885782655710475548771718998297495790438476308175504341910923781633517594752640348611210091202573242876867052917314537082354212588053194421622991700583757875289672534295080878975471968440204961325143484670952314279592669177080850485995717834746368553621857147885248301024580330244155857594587454041369235300765784712588798623444639782048505337962511922188260484912852450238370451913669113168877856944831194047215405473078736919159783961333585993127497317044205957224643140187323377050574149807054501323812934213047483076075931527549518361944464027812632953932530302512540118733276785727342211740390840836436717138229851630497787512476667709870089417143398032217395528743022023500215470677362442204115310299809872525030922691844346824388383540667316613690825607920137600210919966202112995150685849480273157689229035870302800215647958871935977180898328407218923425115505361327091203777411965474111871443822987996238798142107568502034655610214087260873156960739690065125442869739761125604454251249719558152151432618697147735406719856024038237027757059892901961817109331997309333590584312554805398324237199132387084344321244822898683790192117070970048711023157630074246104281914143960368062039772532986562117317856639130753573467320839904126788305000110561092198491322925817402080779557476989090047761947761716334338162355254144591690635018081382277431787384322057773877759275262385779592005134758743433792372926989745646514201992115118367513393454054749291417108676448206881972167311280141714296247056284594331794523363571082045613760879244138104069177091017109651613986100953027329698898100060987290636028594472907910429350125031499352621623247268674948145524198998512831368555372132764762346966861930514649623819419765051831733971867940754001905136719235165737832327748814687044877005583526384136117333422986191888015483014115743881273949677770384224385834581426522355033234034040653156069709616380726412417670083440776501154461821978208199193640644371759459845979182252843356754585994265788084463144223987978736146357985359282618392191840714199459968615204969279954394033634987453342504514143810133837598030962010319559506071746831090403145368823115190882456317783122006706814240466298779552144651929637462193367573720455525687884221993071936406125861977762727834574571320567564218726411942543786725107780013428397766834228558341077252837771144850642928063243632190142546791324907717221957375855977096961865687430886993390015876648216723400391969461905402628079484079955149572582822635004696696093883225270602291884449646724433460013875302458104762098642689718615021927602658317717648035481249382010783168667382499914677144208737461180834205855149341213970037505509248811945784598611928673029773351758985569832160830597470488912896661773403842048185892493304638073654205753192417338383849090220994986868589797970918706237020329627828976660265106458919161849529914542969001936641553571191737255158254853145899971598722500488486209500438204329743589336867058375082451357164419361392095729327821160912316170250339636504097524343379185674572129809476806279006729356235237070246318567709176770893537001241702710274321055852140207191896200045014812125149105114770708563557921542064941975294499499780703117992204155725847202643347596212632448020681741632885575960937369802345010028052301905579801174748176012634457622149025803354028435601659651794442316161887021777543053140933833798876958174873551645048998368269888418885338503626070071654935771420314351919324313510504533016480166545832772903600216410189560342974266656166327430176435318645297697030894180299201331130429436708423133392816390113706699624943451985119898560114565189821233180519673446110061721060729659385010438905825303004884797955581707556435723744319471767524741467605693555905998110476976631893804409833396611086669859955389518815851073782149185799487724026942495133391704493423752405339807464755565665271573961224299795604726068940926940211712095436667920134252691663529436877173332941147671585508062640926553067856504859757715376470555873627861089852284166611869837039868749472077853021154245147513756903656470436493034497567871352296111929895455586948567313314398901860951279292766042550679547074628634856252534607951646780318890555330036123642611383080603112964711397160794982354133055493087849636000212480267698922618879224522710873636694390328552491203664552443644054569002485548335429910325766763125701545231486914371309160561999185167717546781431226657415742928273772156924585806302161671477384727946842572797531710710704241048848607117049033205520848949970099467800923436417654729821505870672217319709667738956604240089156627573837026054714066052750304752431740672713595184574511963000526211956727686899209991812410276071418908796134367374252279915751009559771656256116917263204667084805304077792912069479617213088747256532288755502803791599990048585606349108072693293538922707790074206487307081802324691628370061616217110683793384211312738450007460975913324441621502874728877998166566101455665547248920801360429384062813904684088996834457218175594040009956615445730368355535785512059693491840189796263037887165959241350741431715502386863592700399342413659134960055379256513545745158534569304826509368406186313684978746810722058486815939314781280444567892278929375679534440730480804221700805427921640018643990591539588070884948725553236066306984291849109812343356462860165213708307354287256394473099766815932172564822923360908723757505273519311550027156477833183980907771367429338205289191223132966342344462628812399172640100544564958753030203632876912686320767677339084885093844094375568712882553480110309795888353258850806834336672910676512808027442415081951714611982049331673617314627337331706892627910906761373083045779325186319503810866404420107213910555145910656371369547268784901152544260302795098811240884527764126173507514589090196621539363044921125916492618412077291557086325276172920436239544205399733129345095600035318462637999564039117199632870852454990359901016482674965256910614578029747341747220924524221955482288103560710107463332074770915075519213036722026559072736418442695073148058260343986776726787416527054272430637962926975165289078169837989323930435157198383851974010806381082333293207112468410356016679997254518502617763703374471334743553096457402640639906018035367906465374169957854865802744980986768825703157886203694885871167026773170451155786605058040308439834445622327491921425996325830403069381337735403554534475272020558206748298970552864357856053644465880483584302582565845637258045436262409895052346087757925027852441281963239276552496857460233769649794482985969761494007000654686361389191148492066338970621230106232432860815601274045638720756713479729890771341973718842543734073863901944904717341579902061422795213094498758483460278298362144146074027296841471471496988398534034554743401699473564970851447996607426112265609296290113179217954234248012926196173751388343295788047666184459419982581542607586248693684812351263442153975378757913643935468059991994907992046115188362278358058051826217996831359983250931529958987536790957895484666143833434281924659013450793621252334859162483560550148562385913550203765547974224550587568447327491381998650734039231069122669874870219296706137050391805921714340988406031523818542235609742822804092593364293908607947095645990776520428452088624663930334063684757532457914591425095471889699829257919276720261773571762736795950036583203636854065900636614544163245254114867332430582757894351763810927062291839633380416966670804204237390411466177172510434547340782771955333005984550627800013886096857354327026845836902082398375410517375653369193975462977297137726394233422499848675910250802152608403291561619451912191337671394565460836006131676734899902109601020668626132347425868317756842040790653764568154128039159004282587323450810871446386706473378813134691889492071651135559660183792820945068810347849680685409281520805718021220378072269597460511636000203882618789881993225174937474988520903013742890062843761055819872290376997644418499067975654710545936876349081335935289413792709866095816748879334233175156836103834927421687309584039828220531773218982063738289145298449232949971293607649075573315919920273935671406500893796662399681235220752604680828202090193302011147483155130965746588382326678270145506055975544812958695272770719510992019802657827656061779850434556855077071345084152280547524758776675673518821023011394708497443072599992531292901999303844469582787989612617696187495287917848053774026298970141888366068072569750645457607138129742031637927431263736504041966651492139571694598868702092300659369192384128726336356824997812721814828312699689896337912057516298338171538650884936021126431947271890760391336475406680684883818843855031959857301704887837428641408136731664347884199963819878699209062920271558084548076597548911945873206151848998147463134780757062778412634844346685272479951631208462902743670488290277843959150212825540251471052617533040161861371660670205618172584609280466664942099645883945150402853666975589195590150887658676451382507625940153364479410462184767732516119408557188727900729661374224198053579588680769464340584085701319955694561417713317367225075957876084642938210013373035850449175329326015993531481287294156435859143457755480023724298547147596955264873147112832376140045911347847028406762699514160031781490234640231980484633485562913214794277924581669027278167809804927340388329249002805151724272056293306531050276436821154233004691706421125798321253742901104636737725420133787116035465492169635856188952180591112837591337338505062299154929039057717278226313280062810918624233130574374849027159749325136991063565504677691752818736920902089453548699074687253577327751674401897220003878803179459436207897973642739736779808466384327192105710366156155236493646019685942248425611965666622444146319806364374958752072909177082422076867039871425895363392717712688217659599805764853113577733016131237426718953353478337646796660322307465306821295183718107119902200011629718700040715708557565317210183566520557528065844961139969130114758532097853919816513877681940594155415224811295124296271226396476061424857911306905852381485847840326662990983734187945760557027007228632931268111644135207887664108085152694910210576273244013617326029096530406745195752179230964891778638102192975113083352041210792441840130361928662691402176833260844239517476326542030302599616983739737611197799535820139537620205664001869965140409448281372115840527248633812641364796048165063460626710747359416351648261489185623742056218390583285551030713872474376080381780641821934844558031879512760353320094581475543944760878374932822019188904912979419883448370130824840050120142810074407333366219491639854360894320512621054574019732754545780989986896401961393305660825124809192227998713737494808340568527367602167271210708387241122922872306745155726923662259730044612673627073881355072494639515805947247666357092288014056253649812678156234224264487605078603299904545226354219976235650856733713363707834755259980031251229401942025755305830110573170892902112803134592174864128102736299421008817291721559847410941606867051810095862725766294913371496649480015728452261198981823362382642120051228470321902737668661518349943877010574843536401640800142748712507760971175586031055689821143187366538099704425927816034450505035074746731658223768669946818401905865068230012896663242437515555869562791175742954040410746996997274450915375509763721820341004470959704350817354779587481527521979623404948380055879040946346679034435453703834964393395100805738838765194552900035006969365630510733839688288599290786510134337300751584062868943830394888707056635566442359167684326001295726729851130399705491766787662065397879609602327016241433612594582468254562229866213990671847878337857457040889341912486375125876508391034660158708113236243963561721717885029724348120880384215582877204907880515884477128835694373750050952332655942592809178555564398408956839446662133482725782989473472574722932231630274123856355510872843000498456748610538893134380917689626367335309553816722896205651480349257750106162552259186219847102890984013114525708448173155315701772143659462473523815024084556028974489778740108188589094248086345791730909231136192884294036170126649545179396497573645133240565550749674556020926369188858647098850306264375438390984833023960289723688660716428593915076633678521512522745587043736371819381415035432182130203794314057402463419017862022316717677403668659949510651017861588342777260768438976173602272323007810574298830183055308911207084439494948521300228619191242623663197259254891584517415200754143654572920436898419225852186847757411819529871447272539247925740207782182020131126033135001360566704767674947092200589832824617566583779632721304253441652823733840842047839127141628633081251209989279066810974312431899387311383770897423991396783615774276515763058709755786090076004505366432671547960191117233098327360169548013989145416360967819963298756145256862651388183650881384680895996092546314754839198862578108633841869115251959838503806563669523032114206667952764536224942273758718724027173886936680084389864809850911567651557198686411823562866982796478437369324417305643605415175934940594891773495003214637011586943717701370335338671549112371514696771209627525427582132735739532183547085944340499230443948216278642465960871577956466894873249980160181608870302599792001708994615201992344098952505999623136526776126898274784162954216619602886271985541555919979359499433283706588219759410654243583151102053354848339650921589522674192679644942517887991963087397530670724601811653874403830736388133842380559452149897940424431830954251089779754006994546629205664321286449089698772308850429179049243970743051226673830274003538267764188672928906587084456467153244268798066419553320737729081448839240699840801876864918057224143959650634223250668916384329793954684650979862677672627459642691720383964062519880237468677194234941837336240459670306085047082500871138497786928353921904170664188057080267437039947653702450102853295042468568421542809534410061042997446058259421540737780977802245844534048016856398808178899980995998569905593402814255339951549438808097009563015067872311497749902061610990662430864598641223119875203058886679405997486239459078872139717340764590455468268726314651791641371605450152124301699674474912391243907110152352951596971910057503123944200049738454348788552407995982832014345794801192350650696876348297916165496231114710329239219405384638328627260025453842020917627099996621023013657549343288827000471030928376284523593355961080302206708725293908004327023504596992989075145256581187400575332909145695357378126587018819489091685063885310290160308742311500582698876423272887805078627782562717831003391160188949439245048997875149129440277348994040364637956024060098642592571527148471545041650852104991829795038729893731170843149925952185571767270515534607539303186448151532598595955197319491213278466810035399073812298761951403488314515868443031706433788000974889341048155474747774524305049938788416860232870945766849049857954311471441188927435464607058241078586783210818783283756574349563960999231595882341421698476112327891375948769061548561252592354895799581824273716308783308389335861377986942723637339988344071195982992518062358034424503321371976484401296208169370232392463431085068028390298050205890261515134642540471766743047087423000891340714369401561546199240514670173513646407836299253468443309924658165100075602273926518252220462489010720181863316478895005692908373834067911199065565325187016250764174341861936221575398169124955703234501006863968250712099720510493072324388392267898241266717690023744985123964448381404006135680490709840915948677305965590008293806612867585112280118257802616538737199853345688928760204644449186343153642884792731990007802787573823796928782473832837528992924752938539453685489543899645636747293812825801787247531622738823286871332232271260921342974222733686415398277326126001441053190436028707125855289882470510683770441782465527329376114760588616420511149904599260996271418927068822101650254628906987968171660935326420319907627740118128102064500063924167528571800550075912785504156693042212959908568610377145028599179180607377545441548688387177324677469561200086265349967942732256756222121194239756016518413698663395421722552012068024505042065590410729879715833471652812446359300461613174114605543350044924305569103944823919486100878833553232913999809171192709289979225607471506980738542387715487721201652644204129804410798296643147305415151316971546373078666305739877637632652756768416896273206197240168131701366637817101325239205156900406073296738303401851603605461865222272754276076029543750824669547484635180920133416162102413045851064243915914762366515676489481932205764425877085236949070520281679722010694080342493919553256250661281799036477430988283231207215491673803622684170736474937190140530511011739040466375450396325456979622008662419244890501139913446117329711649392380718232419757984181222579611076736638673297881719814480292208331884624414367630785661586018952254633212150767812043723752654358754688909725498662021352140948445777191901206014847296689770545146984253157097214194680724849149647276330020591623244746446595919495193530255298003476390423238819246870372681417083087932539738485348925255177397148151848841641100531449453549204450245940351690624930593187260396674788033298152115917559401128313872013968428600069871483495737598858720820472884588185913976516199431379451676076596975247352105720641551346299579025349657471227032579162226112302493982230107256560367295423953909905043467483199507537607228154823467845063561354076504039575096972186908902650835096811210382452912220988990017199492818882270355953187228064993362023641802806355288572442261623689782476407701912676190754602236950199458032454448715267254031084278817990375942989665493965431582946869099222814375497516572527865085201694133370546188568754339054595966626490205769170416438074931393819192447905248672448152882330255864030755789618564236557910578273924443463682361237077773521209688893395766418060569126139565915259060178368966130582866080133052742988732191730913366063833284792659674333784262404458392822673081297175844605437740917937273738507006516817750287066471770420314895311043628031483551168032214712803873437971815341256161283553717038769724626559338994169022620679091720261779672492418575113773791358361243585862678166535022644470000255745103693012995058548552638759758874335311261805602861195891443464278008694521660735041837825095570513927983612657910354188741931354498098989463693272087689102698218131514053176962773843700219790713954843715899565807556155976179172763806892559797680618176827417921127180362637238919654515189639117934993772047058424310785782059902406007032768572278237539613985051296352659640978858763640403255272711476288460607629757422964023221145269753270118572980158488409074866907779797869913025648552358228814135704120700979096006548227787588330543668662727504245430709375235048398406428664842706202026243493274365375279899278734910710465350517523913822564444828382913978533668713225177740603995558545491255382211908231218484931378727050692248314174345952768375502078701501689782456408583005321500013298728448349683313102034345147539993796312596329389925162600395022326988490472161544733331623518681462717474257179860989914112138599173252723159559351396180326580910962719628228270678178615536153340513736216414694647865625498922165456997028566977525546465408106071949254105608393263474721298856303209056942267408167107539283604800750612016160373368811046603087655041661956453604329804719236249051474075214393545728884759930148267875988710633399118340118957370053800300845279635438547078829381884481077443040685265650513698635952521449132590641674250760671338767208917170892663106301209568827534395284129467905965643800645465941091676879711928313737329631935397282924832417738274716812941010387084310374878700272036055603113446111742800293893229977374430524791277995459882544745731997409841047293487664488605572682878462260373605465040397351985384155682044181278537568583108490171169995176465586153898560651056589746972127475391524418923870759786076301519377077629470258088233982152063883424315569934881839462875067355664665777262787655297796803155350189833172852292427740496336093109569125568246638642276449597447731090391846838214143695072149338393943828692353788018292561010623834878181619506678609123496383509763358559394778693811324248792401452519629994868265804236750431250563210726018049751976192801912705865297486179025305454201692349055798040896313538293078219414833665318512512025563937302204576090790365471608038721274461299020606949068630398787995769290838275068102429243146983140562279272379906317799214597865193682010323282794600020176290789408162067533028003842234208250074837191903982069232486321084547377746189995605199556100530359775816341399424505124090675859217022818886579718508759428487752399171167384302272888682141353377384659625166136377302353251775851841954611507757421377397166765279295034239481860591069818500056942360907089369336081079903036002067497036901755874490315156336348090194620287359778962966819205378472753321983346872484293714532241473901798413239203860001656750419663416472198459784994408395684740641244108860091158181144477774396852895774433821095321767792832086542658894187034434361383017103522679108243385792074373872112868206296995372961367228851191415208912465706808693062819552985761224140668621226059894316117097343899877947720293507034481812957946727904981762566228201848893979693916303080180931547548187571802049670536979600949867470684461920937883835240323515726270163897712239825127230501831064477330281279381283327880383879719029004421308902754306888762018735049965661924550706763690655655703537440331689306908465172611709664443016660243348464591134640287029132832996843617718822788603150030537865566786041099991436099630032552735976221689107706495161779280822345450900791910036832604891915156890724805036832981630682115269948172203201286945561241162662677930895445353216226548913614986920255964231071407888024501375371664684192712432357012014748343116689185360227608881047203829850751678820550841540802714436953814717172412617990014391133936917163568882596944990277877381621551459197692693475994975748256998027182587734323420158542609828472631722394322574504070054409166449814337313447087195166812611534492412617194751324164831953092976770269388883472882436955767980202592935648005070298115338857159322289599821407801561062591385784181227392909162062406979871238076937543619135300337925427312174953644975039980536845760638891616980471540116424361930997737940411255992521658371262097791893727775579459562858812485896921310319066496061666970099509262963930227802070983170022876780772190851446299098324806312232044573905618401851061112630967215338193386196898397830639007930883652851367382706288922941872437074811400206748515940973719158108277013388146617799245924439328226153769409610266304734873503605131708262340041711957908563862831349538005403405206983584778435058013164431632952687786744203719850027533195176903361303393488715693080427844517215047506640335687069689635240842609128966378208679858453569471834010398160861937984575186380744499989618734205978043990933421599501022369838127417794258114744107127868517449507270935609077111433639459116510536152586780265544026512377941212428334712982394588072631545293001924283805494691689629669432797628435616563685235658152794002357010182334641246471707607156091672476547443325374573662829419757012124954058501737979808461580410373651510298302058472720672150013278480080413587469033631039853286317837887010574047529218146925372606633969708629360362862298500933842255409754852954037029805316446646542706138071288324125320395645327546463330581108523594929771016342794321783620822950123826705831723171282564923777542517554832586074333948131292042937081697794530853092677443469193662601187191453629359168872921938272620927546708935290499618475330363344952896098702829229083716987358289089028813440773768917481112938865422184564463933089371800248797878584333377949267500040031992116776655918685170025970375778649500455695440968812086051491492312914828839160660357097287590616545018015509725203142982667073313881496434117965574038693004090866272595236259418357351407903403257436756730917673530596896031405433309841952213416397428035322037432486276277639671117642460719264385615383823778796975734673959021191306693815287830005641588413683875548215087697867367134396133324653432240143617194100939889597125177836347534588276188707226754348066573027557402784458652844289090233546567215862892439564321719997606739331060130974465828623051935610297229495504506017267661631574028664973340729632182779931670763631051915993270534255377751293614224302588666595321787507393231838291755954566423934255870921405189566175511282576911128047394113750315690503137205164067924259739967352814887750571753973565202903690179602042350798603901210383568906548916741255723604008824285627330168324851297215400509876559047320173676286411829510614041905984235630023637910673340465985266181689651798489090350491009338325924028704758547789917907238084067469457090403786845313381325831124070067801064177756538938259308567442392056716145913433998710188277409789106415807180491591262526731101255834628323804131683706133207779250347654698616207863655727657288485344640031187872681149390317235652430239818056493859536037451848496084559083869148694302411838847197401605748753806819266350252288519207344002332615259244360180836659113107671624686940068436249124438126382149420293412864213884293292453136961184402362931651873303880521985180581050284248386273518649279223356198336050985382767927912961963063293519409416378850593812493363212076694628138792146281215564903415145794267267724771244447940957114318651103699738384767119016253138168051772531118820439554612383809059639064980618459142424420894151579613251079568282200728663712596513260242581199734367188852523630002364131481371158509418340739157912011974120407779302610007992720129780639020751456164945488205817781714517455077435934962609284126376397816744342204998341495348112422374074232426563291011340538987915850707803801172220403194741745950980641203681029444965959521884182962207184448248854607247300083649026153387479372249500587106852773618093248188571598000016080054254947405599736605310945898372364263164459589093665222355481727489415891930395857448524864505467421709714862307136866600659518875207401145145248118128818766207730150630885302823685184974315415027207796682442014023088544448658310733556635042157844484421228842024031611417577625773708114733583775098114508268816001734474140855742353359294279748547988126089864441205166251905635878826457300046368031086831764870028257889478539653973030851793933072193382843409659124718880295378011757639618768176968859320886897867142868283317624322722309551796862137792466522302110578863551226314357304155252864764882876992215156731675432482216265809511576189389367884092864382137355531968651388794851858514586887186104195039611164300464514155650693675642506659807384507792074347386125348041037176161539962563478497583850335351000268777154535487030957487795806884455918375098083239494515236990803914099678182896977049732952555020688065569517144737226063915486647373597416115463088785964038299947149954619786794942474037991682887440376672614309345335435605332923694519639034651326702412451693522800311784216196231049080047554388475857841768276411697737348577393606442680058142336446183949152019369302104197680312735598366649524725867852773619264629710768146924267869298756575626734995933177598467879627701374508286889182401845310475053989028523717194414299284865954726330419824118755356817564217273093114697909578085082699726410162088730310568804359771133576662380248463443983358679309341397634028527328869623745052125953597937394387839377312374906926732246957487485765495504311744423270946729933784196971138280499366708798682750347286563193410087725284643296587553601371147375591720736069199960983410802574436265162141057251434096049961503086172181310274393686363633939521306974230094678185928269194800495148285840792117886418096458658887915251950887986748811887320036899843577784130448728711258123691686198066517642588742645016694358113453725797238308792050349005040086572198421895258516336956122875915636608863787307572307293505471409841087928849017262072418433293715242146622398783116231709865881458552004573527312781852054814108062323371753883243658348660296657071260433061121911708564592097825581404926346346932132160773374696036391814238833594640180269892776759047514204166857731653898411744850612752809248003156754757220806908763944968455491375638530442339984087540163345590930399749735901548251230632262034210612934330896656873364684396741011359581192752212719751921875187558782041253736330904783767436380349465350571443146112220971089636480298521709337325300316760669613732620103843759693939004328172119439307586125270678699729390328335515611835689857514423007797569482901292359869022725008072094869936559214920986735716504432281080741556952660853316708571274657814096909340380152662007502592149186830736125363841260150705647076874564184586310101350746017190316965095710669282613000464518301318502603957381790819698836637690237264661029584216529513822723914415703938102046491152710603913677207955635982175273720640580556704998839431040296883357761174129886968290369499364352133402832712460122872727095571422687646745519284028578349411390770543238510161709418370510576170940066957623744260662294721695139460785785143006538161701823276131999025342237439586787092509710535645739710180362449944047659477176512135323559485105105619196299285549929869593346382484603392084842445578640560312522177751833461626507145047725509659794867093052538639569234581084104086985512602098315001967469300034929845635582302953257045892283578155101595726345176556906441166002149296610604904390397915681283111323746630857661252826841255932716441069143764448055658710145711246376846733825879909989102832475528096524223659217610891340168127031815143453275816259729198901683809445908090217469410814618035136796590598275979143929706248498785528497255145409286822325132405151242670786982398800809546220719085081247971300773587310948693821509874253555122867331938499317005804999767679171402535213753847598610992760061379637326019050780490361097481290001620233959938523811786299197907223096439288018632641357872740855331615233551556152519805427155003534766209976341780252319291401731758882191200721519662576829808686992778226050791053329812931076220215167146595769659540032807249192459801277066459451996946365353403435347981375619547818130406146312082174022517756952909244065473566655516413419131117809178437398294593522698951603800394998471775943520733479455094492333505070384182614228214844751373964002794817343916308212808393011596386572888577411048288232737328656643806435522188386295919395502231010753671673653777503107104752624053932169428412187284033424509219570505418263130932572856066302227354121800902697134394366062382891630271978142950894131725518157061653852667770047968441514044807322543575570223561607733161028663896486592003207830543465195977623993465370019883113164299908186296598763267600853364445034922049347337449672354369384838281080243178350642454754349669646487137422310765125020106136152248400825687683605239120901539814540663330326204514750214203030635596252420463843212859801251512109910180541799131851261079535706669871078801052654074252946587751291786966170307805743485002102819955542928716283936546561242317570488528217093722188068560382606727585737545981604956037496755393607538732703197941468712086731417361340627888530352127467600734999917136082527800605079174325480811318816486307408646711103593402848670984931601455107845519399819186017184826710497358693519806733767408607898162876126719527258793085150917196996588580065600692080234094740427779603752902591268395453538051751600370405339011348093655284491000121081464421587214021970477031235463119198400069274153083632846435074819690052467067955514237252247417913245691729273863414211404999957368700047550939181630585986442433491954104793702963667741265103587817021568984358699583453062149627061214717316767281451783470878722359585723461293995150763245943952055599978194304042183409636440177592994916309141136318743696450568463676485439592809254269310857599043268421873704707856658260400164243755728124764960070417146812700962394316938462667402216200262330605989198750342703955079396652223084835477680384215601932762677864222403830634181601758793956504650891411584170566391426833719203579350094687665095759645024950803409359835274219329931049398216524177193014510451973744180755543293093018502634165702959165899217271635700228999136748190687239017184436978296453128401137676224394347207694997813673404192413668841174834138806678949470496289510523335793055667948592483227190019536427266667535812247319449462680247866928057645165948532420255331846192860931616009011188152097836695191998217364606554386977261028206134503305979502336700179325793593146712850113103428282424122538645870155762554018777686229244875852296859140516565376430023129309000321103414957251278167498976827748699260666686669304820418024399274663946519918689872166287691303437090013815865037622228202614109967035031751412188826024904869962041407039296312850032958610848134341349314975304060659593781289708484817212706767424406392149431283722225546808846900810688878463578783105197984015252721668577657121640966270865547117887868092921685127992671148259375048742472393810564004790400076615821667825801818637861641309378964671175809991844217291930060554889723841172999284819408054484458019094448844087663313228000419012889776485418961495732145680197645114424828934925600938638679914663143835905986583358079818579772866660841096825871260734965383157288056230626078688393415047116446569141103157679857211306523217182937979602941700270435792435891707533487129045710523170514218503509440866527046102602997015313373336990328267110263903840259569924482276408808110841199932988407341841688708726915292849838390540234521275132007396424063668311740516986561131425408935307649847176520010012215539467526069537867435647722479698049460431963672378835398426275800840146527021490021055642449026451987676674814265849246269282157217182129954099605260116728120400542963795839114099045005500489163809254285574056171736667999757377475344577221683062581189962069903157638741272979990139963681404958703830044131958647657708333088731460193574943482080867565955298097163655690765533038944356154127454989786229198413165766166407859137532968435246834603925923570569946604202953043144232763425599488077590972151623098081856954318386616968388140466842166762508274994454440208802308784774957226513113179913067515805628126940412850665472379183329890919432726713780202039982709533744344016934566742528395808563612034813864996655372353020000625982531815235679255317427787567033659971327856773482349460944811634536316378050590414475052979845887200140129966371840168027369131515611510999943214044467422190460514359763520537227884611845475620946262416599287740631745490400655194859872436261392895269826160058882854686439881273122192026207976486875583728548076510033381572697927320950218760579611091565157685127970542817768404944403787888079216785261713853612781348933831907811758625899592622207644061389080610217261334832639769738167891590068952605623135171022951650672957585778704546128435310777325803527848179566062873280201760807886848222380753310080510144334759830586273010436882975807189791170105815935091061458636440126895892516651279388147903785595987152861137907161616867837703521690675583063788073580693912718779560691317590232472195437611389360114880045087078442287410509224758207122329730752920470547735552119485425177441965789468357347582828352675959924621016701699757904035644111892542005812276143616494180887910935666843000433792493258753802514940757915172501492916586943754768644005701355490884734701359715198808851004177283422200580246656268468833186529087233033294034347345563125890212288642592030560092633648242515486183518141921781664773459417839696146955177091930145964746960632545832183815315329836729296244443623146509515604373176684740328140614598677039261857112250616599370879019282544015223346473429434978906923207254282961362632690660263706550423874654854592530355732243543603890051335826279172966284797638498832994393838299162463460929831824416857389973528268747657179522781539211324390692004885806618683787220765777184082025975161277971567637141283589621468556117492117357144712860426291015005926782958238819031448297210146860435910135903459797541041564945662596013468228163652811989818643927074854696014442731552245014310489398606607845075839412551501977090301104883160506390023325795822616255493926652328771760998482502446213055565134560293765115161875027586490866174782019810419050898057454366337787555315808993350276444382244839121941877412371564320742793031894498203034473923677710043800091149823332390837768054788724253473005077375939563516333229243187198527498751813828192948679011963300621262146157688519327734004327661076130201933168241931959956343826645243375408130052277871964359373006800843596972081658216895053070102354130200714162147727398808710729554026535722042402896825407815958454266296837394476864113475561989321688661791273968857021165319042754052115700238718727203684384788139098341441359860234621352349901802634718057169222419390689910710176729677161162469151538105222366408940833256814908798905363122311095106617913126791956605708845335613393262806720667226577349635269819058391217137776585269177638650080614949902167931050878102935779335061289610345375972508600401817365695861971440142932344825411605349921953117261894518620834828764966443162247420234529371743129861079421863690269333141208943002284499535800930540107975442865124193625563985623591729321364193565540420802697996726636349107473744581952882130838465608688093095335452452513567678883268585322121219606065345706238211753123795839404304202745719505949410766656960307381049371381442709534226912179057743150389370893506827844059188508127710758737461791719653518432707277586555895497957477028350534125556116123046029621837550171110491975808327122447498675200490447255401853357744847775307954361585745709411850627252630068482916931423635296494477886310461396569795200597260647184302044958368639653511191006601224702439349845884088864897538619653469398383061807136935252105505781108049591671721772126885422387554664468782692285212213100533983093498512618014640066825302261194948790286328944553347822232111598181214356582499569946202434718217213286416026885626005033650614271703830808016067840984768441763243360410707875462915716574940982231661236090114965224200228730478381086940115904216864155692691763245221437078568374372098788237628138062125036004621603707761504536648325377448125227920124399121290028498954345376609119659020778747368950990606084314704214441267524317604700374974401295551572091957694352108862845214185228344510865153257713267219706071141927927341816936954623440425846710904468495510994837177233338794324382996335070713385912436984664067678420042050534676264627638093526733846516955425586077951734241554120931809265909336101850681982662614092507481805573236541382038954380881462806692138604012750987552756024871484598563125795267086111036499755544412474403428480550975540240570111377601030463834347072497688303086497631828919184863794648497168601613411829751139640991425816566258547428008301384620107888292939215678952827036471292363534152146719014737536677035991088348006513463631545113207511135003077442919438181539433788260577988414425870343436005844042986790569545158474294945935312157011888560039343612222110544283640912920751595430265393996701566219905407474904345583512547526816689089438736440104909388398478250721569724519834234240515905849454608987466363460379450443101576059198780988666162466858028391020503986884152671749626789340287463327245123590111703909769261264606377367367484869899898657480461638009959715496042423761350496790522186237795838531440156391780476338519737345796140901690885501075700379924208276619351433753206093633333276108537959735322302857762040021815014725339701006200654938186512227681309050195391661561301916161831134526978838001307767626189773318960414586739646349485583933183047271310062895836229085085874582142748473140445036523776431917694512161299918964655727628062449495503465584236213762670347500354505909701720036713079750418987039070017010789117504199256566259290488256350993565381526378409103684590107420555949349913586765989890397534141581430982941024370017286614126106417142817714157928711607998488627799954848034426710213859959431545193505547039272525448994676556997278392762301267426665584983195173787269941321168193775048361884103468428525231904140286425222461816849139053826247169012606695317890006999625877776176105534296047805676876120890817223321954016794557027617197087207833109776217148130580013522653941515366261979814600939247810967099046735273972786727181968289402472338718573193098366708587057934662844834673697661145367998982568647523247185237059977382384211352894639401594190214540848953477964784543350467762172618914887249721911363021467322805536941885800275069012681467162068371690233020532274639893773858814123175267880740134984361771014091024424103175927028099881933857207780511764657223171512479069719964611488917293602810281132048153441032107947911981197450111294128268084265999527226430575485129173941467510967662979479673274974449389663119513841090981393493380574601067644180745976261639316380215216879485140088316791048747191090286005174534528705924265829141837479663501753024929504298223201188673830384883254174601454312956840805353541418021637031835493139402109134701128250084451007942300832534992186571476532300303769446639267788463712883849761396503735906038597098144480466616166038136770487012616788299302586292319672414101062136884749683646907022716205545260902162944728315321690643601090145469979430873373250543083268625587888308803406792219765492066406425450999304488652242854283144821819812750977643588339898408943659793010275300016188541322860044168993655889232152921027351932503064142459586021910358676720229311418463912216700737551169354169206214986165706577524147207049431482120472416191455710414185390544061889517658601281768671116044388706715265817622976922972493415164219744579406525248367434353657633963749814050371946043980999016378490379844287458530362546681756867729839025180161588456783312904280376482513765600971004328142663552083658727389777795443466275589696351937733170637471619867551407572359810786134318783536586480547304761237381537467810464172725797059102368755159298173848375865820436009464430606774221136818723408208255308606253827442540149901801338413734072297653392251003513210979289049026804156411008581657496144709389506307284673827913759389973355126331003039345827338832916462254517920798553197034406257675793093057094431023541594508645392386067030342771858291834270940162122929102494933578470367453254232185859246821204665243348420559942014714772558372457468171879832442514814563386524042724020610467803434209313557836277515109803784664336460887209622376911436111655284125585133956380540578712626611170258005013344437733594786411875347826352494136704446177053195954722706504916791248953517121388690068740572556021627598964625898321783171553905806181855750203893283321080807718825422587774107608169434556085676102903814993784282323860676369143532608997970547843004797754517249097629482230194119521294150275466123949598013860692152897078849864926870857615353320369517365696852288299030386606566580884648164262612373206414326962628494966418947177690433322622407186704157025272528134751639712763644477808438780219557286994034926552147361285304876922232886537038745277252589496632988282346511824593147565053065969745103410589017146837294164144398526189983980617330125571379101242828421338104106645932046470063063713765255280636261509211912393141936858462032951485825611387178099740280840056847030613528696910919360825079052770839197831823895811304929237599301598537932889170838195443048955366425968139284993003894754644618902207727208424213868309607759976532119714546143434735968993676367847190864883029927082720500141398680730077572038435975049381201794760965580927816105313645026156006054548233811396351625082354896885257356615044145638284786500378938955410934900003027009564684152405611269010237300495583029763097415376927311668179666124925317067367012526512554992816546004684371871143463764398678607405884701172171534649873243684509318141671519972657118746589008757225553697264310452155778324488273964138466685370650893182686924628781597320317076273460515681232431014872075187762860063855719415162989188046554742938846416444888676877557924266299120880011944149706307814825512206386641467463557955713274082818554534540789703070257931985780397784785535757713122207345690192550318690462141881189218779342967833306528213470661188305476956760846147837174227095746534033264979831321481455447124293955084780238258970793927811545901195850476345126214653446873810619253962334932833697263709549695139834430506736023210284789117753981678806277871348797352398444767124611230864158390375805925599373605147454038639353078601540035025849189785851832446968679115500188985312121004700238459831834706156373185457128720256384889774306588397608274749217377971879980552825310577152926289187122708407184884425848099105663594160639628705878193078134433360214591806604425820889362122540327099046186314687213105647695668327224670388921610356616875310706231324735507794583507339188846131065416635034743031619661339427401553367337773535095282772210770560337540662034785872280530792441266800564537131741673189586183378438175817372948319162945154627672204081755319897368628648204132266605773726397107792136546398232651986299477649315478783428403935128230867310677352660861836272755294937662342829209215013287733396270709506664465687605293274607006002897159785770684416256410392069038299665930815530505229928710134209882978319673956751905027114066411920808421234447650806156062659612563943419891620868841962873934919670688782445986125764460499931682827740175091787743158106040879458796612862881776391385312858742898861128512542914071514987415667350507738240436190493240841955621924137435602192243161004446082890652218720712019063529781705679247582746911947978225481253785633015549044753471117042164627098841412551661120497919976856475326439586542834724402402772644657750080676302270774709095984802372129494096978616639920630569934894164658772589093274795112511621149296014240673899738518578900746767767559246626112998781660999754119828222962918013841891010536579271967235465376816745327807996382640620107502127343623233605774432737689526064075827503165776865967262768368510886008363048634831588406346936611698657486012585209906692000251366062525224879702348355806429529158116354157381699338840342630038020726315118772871865573442078974489789677689979281132486276179217541988844001567855430469694271642655235340629818670818694561937540695641109730888587084697076287332782164802497958334932958467323859690750605833632097710912038120791495391295743503962598234970210929705233583802579231169103809544931461988201856614888363309172718690409960351881521897710302408088029143499392523720058218706202883373510697434045468919061236695334817974039414333083986243502194463456984440206790861766712536589625395639893985833369243298199456810822580117075878954928407607740841966276469013171718979169095207538898235938208757814519932843463822925297585483229221764147034988121099234569700576905398234482652128971013102690919568287462045169019259653741339680951269816026432188362749853078452254622568403145016046718429225722703873112642187201327856454081980864806939006434123322131141732984281519152656089117897888867575924455748457480034995845051390130220669922679310565663756463529428846555426635318503285405506536396839177065376695777354120653306964543391556196829076401880537237636859898534291299371354783324774463429183107208733948833399396370219675941900465011410098286908683566527352515993870475857658975609546389812937038694549295513710756673974214953239046459744960645953911348480334602832878062534598806029278491976517431651522278657257562435301822901134441079189227824297708511974489198622285448927377807056285959346757300997920666530170412522671546826083542541783121864747353398198155660444156751639658568379455368399090282940979662749192269480329260082811671515311122942188888947371985303879969230594917711553435996171345111672069660224254768746514702078268393737520810682375594280712573520037793526351821383329797900106369141628628065917179619818810705937803321396634691384424256013144677597218419074556036327257740228876731359837019993555632447991805792930151256743347797996426688505909175112053116336298121697727051296989259220734302205002746666762096857856302297991440656830883867229365874504816409376351693298375194675463837913912821004917062827933709224854013943400230581856973337408842901261845008810676451194304821324139962981014873217820102293963187111358928222149733923420298443088621240348181204580230832159965881957139569530760463090745160489667465585281212594976689053697822831706652791262847356491753852333340412601161025800763805150045382830923112537110411708393879042225747378748413707290991440624613744189218377387631815846640893343813949700798892355458320759549756802044161477041290772847407406118497976171724101352744139527961706630888715655649405832022586636896814531660144096262536506587191057040976246919875208723913360601189328914749302234449143854490849409399143125962133985330460412227013511710276125288195255543178099968770276205326460380441518810430196537486089382458224866664542866119031524513174885922395588324205164401254925030825428868850977402922659680027511654170787134055481625714092639789037708746902724251120276149789420123598211588546189382292208171562861842090959555993161902732073951310472217115785502401353049697502291205891860062685684812847669237053222138422108717377598121174974454687605690624144966814823944199473945701971202777852682749000063737372892241448651648673991330260474695064691097234110632846810445103203584101908311689486396608902559121544720342989734743554236000622308859468247332500270213152354351328025644567247185403725480863513612504818535571938730388099951213369034580331244629216807305969053919463981585514728378047229174638211034526344691036020183603197896641704933634105861933182044373652051689439973580260983069020508432873212173437727111145146402890933168789610530803684452234954039620055307833762292630166430949134749048460857410469699004573954640832269057263563892156879341338764643749498157549409957750767902477683836675193974776612982204383745124370095627074911795773237603397013506599156893093078691372116859638499417583355038846632823694898233132627398732788261145531125797761679712378903209189921153566033763744670926762836935339382811325777760870016150356634685755533275451114178644703976023896331367199149658230606912790461834808364686545507228674449134322767194516280983513383604107159244284062046871349963936519091925629010474717073101434125624124799069944629855527776379596925922741466215968525131995174645498040897341737416506044548053410288721293829961406974378705458593734658649220553371534849913094351286302155891137125387399204408269287254263587644597108133886253472171667012678821915859699815430947650946786862912109636893031851745915267130622888128754615103387582480087980935387685934306483943670796606679927491787195717098156589797393778659938292674775006138334395729772723150647079296969738885911930385548357866654829304590797022598309730074215834780890859487609760212538760458325345086284233097505281540808857825226163886287453588561807118769409343366790477967645838949658240132391105069278061110248971839459842409354528692261775627632861608843745057630463350213450194874874241983457437887634718632487003077582972761087231635504804947009178693458101364135549596726235775006879208793568363123747012495443320352792499175785641333061153133912978254507207436637559866710645304480765052155351876763806550154060844351931856347256881136657785065062651118743152811223495294745446554440390291114476384185514582096285871985509874485093844174897743251137543705158357313179411380965650929980999845926739019673837059441292844720271356658136107571118573041553721362497656193248188608752144179936940729921779400499157850593838876417914256129410690164638549157097484221285952029829091574142182565375865720235438726313139958671215592873532652914275565993154506453076297585592600414253311676160670424163420620298899652377111590931063142094800721482742778096434672780183867618958573297000104605326207917908065288795953009649834019717064406470529028584749482016454101756769879857922619650032626631898372236586304749164528759280677541956222982186380875520054944931828426303704325565253040086557472273549822204564718697295474984493089909324876156332992646694473260560307178070641112597410469940828279059456328486402885531130560913237880182710254724516163051778528257224447618914891612661961044550258172716683607891495787405206889254810168236524103398802016420792649276811490790475387766672336079147274010386929434883150009517525839198536381420936944894919339349895645130200340306885610337317792809851839885809455377849097945848802604046318445134715855471032509008233883114524911358185196765906474426159926423811590365501308798023788476619394634286557269517852056665583855583118941468265161106083859291929355886737005655606309508297995867289097282286561461537548469941801687247233862592196405020745225571814920768841209654733027459425086627719173367836188326065365645158723060821626783874990970164465276783699388406876985607829768838112314989164857488617704117779522665765988998979054879336917136823752359533693739004467449044982542151017247152443198204632639457657672173992872548772555326790767773940235208254343678515077409537962357251362930829732539339777312992030371576651025583668303313126809669089849684321144156432724139101832299380307332688816521484943177989560285764176464013377602717432725766798757638672876409427743549799520305709286359304621580137314511873000556749010868447129745077614431006610336910216191223920600385940800988606120040717026243183532933026849448034202424608604705980418438285439130314267142403633290931790446351591292498995012210326273379182274536613538359881451554218061750610552980070144668976932388252483927732950462883624243395570582506042464173441007098288240143435487898734322244210071667538789339474891159271889821902964874311250339588819023567005520472834783212070661924020964436062905594047232387363134613858697254577618028156259070471114291299822982180590341502739549654671454085021879304136056887148914246816142936377300833684438107261872610162446424763534442524025267611177694009661766622470918318532834965984095557548229184502247391411531239887502825230196412058899501795665764123020492821532925534403899681046605414568736085267250043726770294399665241827330682999850831202118978435900052866467281828839431604566457626053757118800994975146751144660958880402812618121459430888132022198911232565112780429390276903137062630775079321629239869936868341107712235700606585345935202024942695662116825976957501206322673692544205952915967572914576533603310362717767432566952990106873320645699026675456764792316962250484308603951963451674798695927783888455938853940651298002455295705717601096088845723176137164403579965052051180292454547217929809921903638368733279373196992498935929606179082831615259281727943250414399367156525223383681674622369776775622520655471101715909652915037489808550385376055794875602979127303544611511240753598685696941819708971037654294559568586431892829311680944649788936131723851858312638417936802395307382737807914610328040410749897426127826473919283624627911154522601318762601250114079044877627933969140182073714649586248160402842387057679300471830830573574559306773720940694496392474936972918180576779899213528021141338167864781812473467290190325086625847377388884931582005725483374693675718074257680738760785211487845137810356998057971171816692371682215026119772208185324166745937956440189457974683178226997553662579275517861501224085975408159774573590139906702999411091806875420539618554819878823756895285473925238730751849444320953802234734883087780854722948866020402628412249378472869152315043552892555944357711701938702751835729664286214947350618965168647493508855802072636034352110356999377130382796080943475653038788765314393584284960879863735039731474775149138611769987318036906041080244701144135614772540472556891017236312293521670964904968422155383186778101995580892289282782893265258833498071084786967008697803735033000672760561530195941981116667248633186258445135594788120614998114818556885303391923373031153212434543291788112844371350616750241488697342049809254231660134609234566248899166788726532799204983469775419049798252971405331048282054235930114855366678723486531595146077150118609498098941666990605236477376709859266018070060799603310904101849130550562481306318231388485513045892572732463898751375765077267411282155245612526067990490240472680348714200707742370624544324574841828777785405747774286148008512363737557569443201577253116636136402478483931880466185101533817794482642135398807882525913373194444156818723910942019991805736097736254648929524324134050706817121022584149143460055313568038846020003590031594211228237613763199197725746589649052551508612776991727780095196155742117359232107245736239493476157753082701504933624949489571761575294828296292672079953252041089632422205260293818196839437068205911929512843290613204931191395795586814255631077874580822744663606499083070419585996481452499061939183922969534287842647888186867724112721128799085245262181063718548827173664558548865876546906636364051189896132330101090399622207076175573827127887533975737631210263513902981488700303754310891749634310925726007274357379545847490050866780794433207861897523257470391769762315176595311303645276616867285635537884323257101762472454984388055748030224470732189608723841236489953213782803025067167004886813601424018533989816691037792088404543259279406323277827751321870320535917745553573622189231493779809047736527283433689647987258838572447610016235635762415512926744803428736470749516124880996419469273591400034433315391205198593647197655207195027493130048627239625416058583294352455047483062453167444833694646003947383632130920107747473653300574159021304006286215715707010406757987163066518035379130087411860689689189009893595873226556550514683925964220786196825555795392163722433095056187882722758274418640161451522037727757759514528481216767337404331201387917886578950427999169330342290548508186157833064463704040329544064434123973018679416905953309332658531266396095308215431510803865550458641571164642312625932051516956292770670963010341450878935946899969795764230466339795857646725572515279497826019828559312123898431309012524710351355896964648449751696055807304313546953306131068594810366011176661097575652546474637917753618056707219666665785549832405964157378659829882638096947635435695526011270492624983939667955459493474149955776010003848594168788824731325121363448717979444966415122539077824446488012259600279442077119531739040935826633906095661293652516026074611203159684988480873394239928600144690050922210679002372202868675330238502413467210044466057883444635459618453045932276983011021951549473862316584439138691855275547304023598931293674043689556037773858135720776882181697123333006730305400904862277697972997082666810879162497681946638907744966025381315201505842111755607935056360013291416377016312531501744799336237822117300409635112193362519020519799869310808463969510203129236784929036509152634105950024499004883713433269236635576567436634547990681337950487649816000649151244871737519569624042612839739972771779499057078544025825545960232435060499952517399800058930783900153919369679828101185037896371909342008423428436781537717298157589300638120159535152740938267202099497535648324712055811493838971093602816520598858245935944856608523714955169543314778231062557575667150956757940275050051970443721630133945897830560427449830203492287742333114546130245221219887996789773960757140725140681510956828073251439313821374592149685138442804034224148141879441655877383933407958944997749191604362440883703572763248507729616073056348975952433912056396132803230083463561935742746079303413679972985499565278476368888736234198221274555003457362819688810532263734711458346100760936290487903810142800689443490640913516771425627449253325543289875709904850338285184560968862196342225413658891594470775225951435681535390939706159059882644435146936689263970712787065558065888205046556971386591380059464815900670118811122381342011579840295728869103650908979772598954563043044883307603147659441975153736638408264745075349580681515007721284126449712772480679591042471655527726600639511631385628810971464838140529502235719727016147691116521899484494998435374714539478143059529053625770786259080323926295509310217426257442553717784717944144108096333420098811078813413151592970288417086914695547830173014256391001441801154704129889420634379632912547302183314714252958478732162312605883697172195429805388917256190925465318930725195444669800674760437751446640931318177304307949855947191306394309092261687681088652762962011394851258064917128287734658022069400549969582874076489680084677251969009856796717747935123714609942457086874136980822729476869667609283128537817854338722652879676484057249672534229222761049880747458927430824806377548834226640406183168185192811023570007726776048100150883846554678360409216372230428767259663885459254478089106476181627946335598369479233443489754318278222319287061344216754285932278487292369851173056407607421882122200608415277987343710803425089434556981403614554274283421641781741915285875297441857913822595538601491578863781771125610769911289879560609422443280043355141646815146830979083470915328328406171833982290861871311493440936894482889984922676652802542496300719601938598090841005902540679088101583490266724258735656863474744614445552785520154896208082003589828774381615387430649693205336503811803117876412453298757158529096223830060288727578456216531047964518194582682942899973604205272631400030000887610925827828586506647129364247485421392416501641507010873350372793102348064045332592875603387326929613276156539541047757645372912731672158513592954307736264442610392075676446683072192572767016055579269876281360641776916349362678924028323040298555451021769244713995889087127819101510095551102245586028160458255677538898632303362765971341038329470018643248493547222797852495784659235599645060265050315906522139589540189879445345595563337606051621962608545066865679208425595246277439466724310517770146926920051145445340973586515246064235580196638215854160758697665170742627693864579781636567444267585183431719404647591923068369393225588092588184764149556271880360882113749031848337447044751382502885076573177658875804108789897094900888669466629854143426613334448238452347122744918212693181920586513064012210409093121798301900126369666816902542835882099587994194145663254052524396169596128401420684570350126199818661919149799205586644733047112076960058120111197540254624634098508014535835814332496418421517040345421606971498066866251646292126990026000665523456793646318807099369861306120440093203330828217750699704092395116966589929824018531578271196470944309878739763185058719756065411614993022715359910205319392585523331810273835076376607220611275658443575535442513260338303749306548670728296441688072497557222283971314500110236630015677931938619600549481414953726000027293659042570395861575470713797659231864660283266625602288250582703016522065051533803637297557570020636394796607718659794868925179713828435091260085139680269312887193372888454860447884516041163738465421491283758398352149864441940507411044131755649815408009569199489573399758071123289719935693851174470918085788713557954396236368579612826276988051370271111335919598942804868476463385488512539640978777654019447569051885652878099376329790740618973082706895863432973421259487857997957414972923436077296669713346116243755060090680292944099640950017930009291684753952654241980388831650480419491557763331289275873223052158680231315832438332719278415832716633379487735566937665721499059732341355951442108312465922370636938990878867080630828932292011296041373382546240551718466842789972929233325105464243551461968619984839247219970867561087915570580859233785982148513014180604792766630063791979806642555337939228058908661214383836881529932225220424084201385436272727549243100907187408016266598707921040469097880842220490890848052927306025395960797869456531605019851402329181914255662765086016981354587281267521217278014348413228648627795000527306983503594802931372466909436959943598241978569571660969118020178364008008232530263481345344059150801514793281290346786647887373284657937207556412269967005247474419820662259163188301264740718457622012857499271807487446223564196912853871948309973255383682261215065565241710508049500517886521513421641111706451533982978475153986471155424647473269246313457105894803840616576641226456149617539650768695459760141569210946743240837647296773902853048602966682211647504197740515148746887758748249651017122002063721092288098072414497308793691853114167388003425772611060683074013495636406216233809325476800642372275579724771657530621250028893801822227688967231199594729082077126502249287209047267771769075692423697035173577376629951030050710941010050241917753272116425040526352043264512404797484509741434982163907197669220117510094930229785285854569177908926640515537148314648547625369601854510851021668433511486083087485431107566939393030040578947035903132714868852067365725014381343272201628290205417840230276363391235405211045949033653856729346302168374261271432967044902767843972704088976418527814913715983243549490575926814581438564574427386448469682808279803536640542402987473034322454409901963382899380938234526298761586094084854004325954084108503222676771039622925783551605647679319677023664762584601088581883656221230071296624425860737475013815048897106477645031071503923337591909301269333952872031502191439885753005644525414839599224191394873097427112107127091109401120081273556376514387887171208792149880617068460467489252709093325082956027666124470496027949496521955817546673936945117246685374017413502838505466257139593629601360969735996211428853673151202322240256211484309236965641774752412166600196494741072341050947914627449964327801896829599168627354615902999690752773874986493276998009303412863109504597649324337476056217311304851281632240600021773757754287115206358058325653359707852786722731005392795376245463683266171177786272902613598646068893651986199595346733142487254697315906138245564974679265581034242801805069932759518966728373927926434620836971129958507784566009239152190274396803390055842774111428466274540665932714953351464850442211930685717157319843803801831497548204494057422596289223106888774709638855991292479007187102002220024561743776035801579970178535442484743023070820357312598810488457609098101486192995058807269410001177524141688787145318541347318222067595883607852230180579863122001265342399154860883622981117064162285411243004353350513465167651059387332714961218753184042820396387899089949211378876361745940113996501239446037333367496370501857781296168243240824831681898417501268697279471763167414638342508308941065023260035917187803291608219122921737728018773990662588904599469678675795793225845677869474717266765188085299714185554988145869570215513688782366383121111992384336571997638391636981026033045826288779904441735830277994298078988344713888912528261858170380070614280471720587070869578662830962990091992675516980712083432791690671967474300307426453504449344601373541717204554830455451923516531699145377468579137213532963751873873012754770719116625045107331599407737736981106602933443424370225054011813613143050113536888363397274143139853426667339128456153730207875090949732862792523677169533372464572017996003980379684739284733965898734152416716798543067329359860514795632753765795999902818240629193470724576118189242009951978363933765443985291616510891771791363356823350282840568088844489327067112107279662678309770785030141851909025589153485952633918610483723889027606310029935790049170914778374090466652798545819217388308370744565617620618686882645720758061860804773955830677049318419408757634875174424469652671581482003958863420585646269816075174515224390712078446834893392196414170800835095330791261789363093143377855259321386092811069253478020454699783900417416195598493675053619232316157270147359298567303185640497102941968562828751630878618866806340834461902185196356706203948096992323014813723592206050658945888255535618743035301028715742076830038422732834146019382446392176747807208534808564961442210742801145787554624031820314639048007999155254083008254713344836811982136450592694378840819399433495121490170300971125118506431503850661370024536542099163958634126070514637931856342828439117679667693424812154158149258091568558640321289695600307947365546059285811998045427514972867488385593150029852034024749666343672205258922320318857474934203124506909697516394266374911279548462453771364124556473100230780442360752373570357692638368699106310622347335511524156562651702813830294471098448727670324328446151158533664928740266826986681294599742440183182841744023963065601224109163793545370845191555882783763519375928016554011288187779170994290114944520729633641180827447871771846259643067173174860392342033795970571528505578864995785150013928706221643174264946887961607953998597094768524147399110680998653566027204726139741157337126161788388989491382320857413131431848949842469239593565221673534659536330381312537549906884758599806806252187070360879521281397437631311841049601313154698804796816243986631192616690673602896819908077373688194161080401905561495823113194042625353527544958157583503016080067214362662897114195842992806744147415861029869144111883112924052773648476561848651910974875302858864802332745180332020058600514686681766144926071887971259092970588651143203971604788119553200233306058180843881347337012236252141494013163087894823794627733030818177230047982668777123904174902148101656387707655585130786309706580035421142639509952044530430112195657449203270272417378790400292657152285428583860103880983659876544324867565608830815949469927535241657239458419608943525411480456904306186371354751923408283081556812385573467412954165587597146705730410608034252085696619389618423001988656117437748136090061760731946984117309461919052385530746093300455140329523913630223556391306010153626023172703295825715983731336853984166249626892725387090274200666875041116436103509183094283890857155997648339758781724951771636659377818116432303742809766376918159302071434343987074914098273645304229112611798532371142901508635123574221157398835878912422092650839143663307217337687816970719465595021364563235343970475916909343078465895207674170329323819015205797992952272161183830489419970360350776653568874760884833552983368685373653153891657448300438210029708814850338488146632799790958147173161902817858468594994952148644490080881066050882236109325663544233561115783763658072479964249943321556042847993458770676278200239520186998154396059556651471333599058768740231427238689852428496691320455917325784689125154595432981317633409143667497924030223788134962159807848882222505598385779220517080937851715236483471200961383377981640179737469435100184812938827730530324761079861094385155749912027184400194250516286387763663929308481352200857175542083222596845133178393792165451384681061464664296979839061228877796522231630787954148212086364338852687527579231569557694569818733915072236975659236575112267377947878233814903170474680642654420930732467083653932077821462342521151509944802004938391342701735997550564117901336678220840914371314383382091084028124452642303926652934740522523489234518358603966915984301491627057947948680003813354660764215429268858590779248550114392941682995498356955042681665996069455221894577940130107105224066089497610619627518998707324137350328614834489324174074819197815964829959998738411051187052752112958655048946978458007742271501770566610971340793068477161659026729810911868258764162674698425958856450968044835699771291574875343173506578452237601725187533558082111916028867463853359243833442802834181766096612700956460721003252833429978863036803533945410556204238612774607450632065272987882820519766747265445769730982508557556022370789475585981117656181149888488461995411339726882153838437530935143264182955393308690697600124062032331869580354545780673901162414422998658829223090379900565683745819337963907599565581185722682722878698609823753442267876079711311997838115395104662963165601362977818228036954583987293399916160993219262094387379215419653098548400735324003114007119219963238833130662719081587082942826577898985416405157780916705639305366769674522125762574976258353033221348347658717771558810408285169876210880692726159239216658720252582306268287782930826476890184899680161866149625428586078234047021787358782328196830873575824845482923743541135688180670873553391457782361465953711987066354362582598944945455864603171738887601568906055856032764493210888822031986995388773374578083980335827461618745458657559085463792371504660106970333313515002685545629124154357857575025911913770430766168498419280804492561412982103657925851813009435929282294946934707618416453526685509008480711457866923075421984643081422275026390311690746474036163378608005987737568849411028470457462336067373889357043471674948826698485018052765762216490601532362186350216578674588643352417476957862070262111666270850590373106240480800321051923411838446739919155314021473000708279000697231302561923169383296578793114509952349499961790646740046723591784409336591821391466639921829668835249590890045838870927902055191764552165259742070314790853269448464027571151657264342611629516294568260306213913651312146205772610344810182612511117732080168035955058938623733444410853135256234319207537754761398278945937223926191231192476386009885846331608017622753871279851225981357577072060496454189331216439432983740787886069698287704410153544317627430804384612397659952042422149398917561736538884796720197963711182443996134651605261588678861800027902109389331497822945300180608127937668806683654654217052802257320381878418609208360146166064386805670862541793258270234824388436787203546093679758660539824284224187102290340365205971001108838104376333289139638084957213247709080589620298301009150636142898507906294714900067036850005119825597764369520993591308372993752225966720964195264626701968619217465252223855105568875415543962259813647743187332939821970485512583015721631320629453509795158645896700606235674520883843226484851950559197584669813504390836626837855647387216925996422892144226188863470582083655127522030550974171240217311193458247589900870219997465673347624338281780625952959269463071977085799854325046284871638173878168251303601978025265231500500354639216002604745702182348603215437188294722197162289503287891744829323445557222751164860805632105441119054073929634871497363034491099226993324699524583050998176324243752347959364306530033319801711417116499897743749513753078872381962166098878122568934445025857236573802650362750205873163475406470132883149165172718235002701989168797448774896485262808239786490145288147025438767424690208144442656378760122224616534759589691262259784175582058304915203867174136558102130107750364859338149488672156454364518349017226411759166709649810936063826268617310700845304972530230848377639349025945298712443445038410089722582166885855610345412420611193024605903480172837473065690685638903143272861017914750815260030911299977079250260555151801452820878913605656473703383608959390844431653513206892049440832237479477639883886897373777503136560930677547102425157632557102253689333816364677711991085954816515920477153110506016603800022336266567127383616843609336587026942404534305635904350945549333043350411479929442898475514862884509715735420283619889078876403369996371080028839897194938543490364599870146651420245445750435967120827592077865350426997485976146360437715077029645759075278995213871293141289454731597909144446143285582851325303120293872125597246841178261894265015168140923015176953966743784347890457146098913389134266071153844609618862543219198985153917777509400188674865294799942333598963227310427331091217302594117996136092356230257568403100938397906865709848906701002117079953221711018962715746486831436854409687157052161049134278858803429516863938143150932008281455060344516438181506054113334284961711803205932922310827279183281920443762707128704771514131277331250622651365174703074359962884420253384338031143040869573237598005638479776826529646412149152176470485252885895012037140120469847126407126637700763134474562849543618294907731699534757347037424102001638183306308884884377255282142295182229281887226462542291677636152712557548240842619614114799142873407468756653503981433556357245980786368648414584066623100374085377675015716066645288861269451953217589193093545198383164264374074621807285636958967050328060465958672999370875554478342873926108638575607035789937139402155232354297146082784572920435104470842392354460458677065755144359968122750854948091955981189772366944009376018948288674360494672179878351691998419542812271537388141633618104056058027435684244090049764687822422878368618651463130246867438979311956978262140890950229757855433974057702758320583297168516550055600195598553297790273463199149151459873584650713907210393245327120682713096057279067285502693017448994376170710128607233405174717027497596612956325310834262441212952452126794693771703021429312641035810432330440891564488134375314130603349418362503706451455038097522046321822341116655351583000030978685348168152127998273224458003387508078900824646751109787776598065187768170389183761981448194577917317456263862930745346085587821321041147317244062530001009765808285352702864002248798120629499213871195897380615476611144252466304850421480720904155946779167196033228821793640787828532451084664539513624440445058810524887982898873235412079235003686485631800126389964226360681063013790019880706207432067759441652670047325236900706282736224133306253665707676608936569360631398586261751486763914384139704520189770801963644189674124507607481675222088675539126722773354576643172579301014241654796587459034161962801201590927933652797279097162382866033437656296013756792783006945349676956868783674368262570955636461565030422886425806654589336641443703837010613466388954544307732053482467627585319532134991573792579464334496163060624059775924342487072187064070445866147316570905359996466413497352667870952371633046943050819786937519582177722414686968760246079191389097251378089697676335700592059438541703531716212732731928712502039663239968685019457270454629470685585400836789523856306015303446600658458982585454463723940722939566917065222795957288597428284936370039534298955376752206998727593839603568957772435877940243778913622560686371588199750246061287637366501432172486236778419028483137398663410201163087187048470313630025439959083536960888157976013314296248481065387816848312133924704748270237832099658922428318339502979164419262167963283383818226085349091716946745260425474605182268905279185878839658916100133999667197951708973892598982383174343622498845947640403144098817496465614539844794511370375910353424028055194303618078844493667906570971127535879678791999676918122599453579334816108598048555466090408703003643269596588438656643151002553594687691618759584084489995814431919354945460654163240794811651091737018984803688137964592680027913877708474461348502067345866559879639779394777734566652334155087365608064045156669419258837126579424662549103103191745551272012768553123317729771877625280707979726111446755411490460444971956101963264904353014209429361632587423863305487713436371071454592058629384508110855961559294360749170435532205013861218287709761561726458117053514727195820534070823600251686854929668388309468137444389071603836059786619606186211164281538745385580229793366790300726911842537558701136271787931463289558148329035024280415720527333945368996026128499347211522460854160218811354679956496211601229640866261416109345460472729869409675436206010676703219841838581601748938358350153169212998394692979400131172698782112792344698979598963255413026644319627978744476717281195132758167947714848020543915095118596504757085615993907662630742173412117205656097860120671109893391563069362216323675659467189271816196724644872748088151473596320111611317901639506368941082381993555009955705185112560872457815807386896501954698850961949564953906148531609580594118322391871412460319252579319693454850787557600362096319620223120314463693933902926281447926417888041073046095105865028264043181901871786803418890484218235925578350337571028866960634488772208008645880794367365319020083081619447802159235675840843252124501706390585466356223457389579436395487918877102999783486308951292612423582067119774239575157804725152174625271678115182144119007476981663952834235987708929244435333735153052868979640687890247080546011782261201480511087394219284173080538104841957690258583060075295242020427420201088332970592514353770433775398524053405875714212726320455289621574941770784334337484693726298613427965337090739306411183430134651041258799419916277066234961717454417877649279140644074924175398474369492971829135273410149872234271190516164575312340119293820787628894392329797055458470329231777884866276599787258915167988836190663142059272072229901806096775437927442634928214681345232642409630753972201806947753799314207876948473708351658217126693948360261286791155041067403348336784456612282123865566640692603688045131451349040697622676552708802563410372295675013835439226715130212424482901508002881283462752274535352818535790687942078149669227726622333889731328436509864532239251344353212298510712171736076411214023740579939675205639415159283157624927829689855698894891559445041900512385048827507168480385698328668347350467405960533312858286048176020949798795403546477850378857445751024126773808077959049082407117210943607670797724645278557669280244229860003447356245931157658831019049639538970219384514191193472192762793092482524962127208217295843093393203765935410875502276628169277213875072979704056156956961398577427955890663288396412793776148950161837755627584281372146932448962743332758293595214290518540001362318510641862477076082569673828217962171960445569617497997401869523400230778867787347421372390493965521456779288612282867530804686767002759127644575201367905831738798367744993205370945792724448056164284235878630659971132680041036630166059906032834749222930412163749356400267951093316048799531664773980020825380591678794324624202066167362200962248727643938155549090439260265565648346703364640888838691267622754239609043029443775929661773277440129651470623975262725129661646473109483452802224057523475935934494532793551055536230266874871351764383653414901508094746152065435732997659660940014817395905669917234932512280918986761310024222539954978638468962079835109892001203982172631484417910024311215077640439815759530208799740165680592609197421534507866078106308596624808733231019954712762085920431421289830543799542791633827486921726194547619204051158413252712738062048787696477174196814471447584395365988981797939302402713629546842266585016285532992775131884706989077364864333208600831293853070206173702707561955381465057359385194898728673242042450409464075749068338768617008942211890219218188776738109318773101156479255774094580835701163822868116065313502883831675491593805708211159519038426341328948490301548801667473386572256544709845327341687984447524164149175907694221310037199261207137364500977205263671408784355022935210356258873249494169555563468729552785527308521864934363504487427333638716685711875550131106035142233532010519865058958346870639273152770484650154227336369352280969501897178126742653502064796289198977377070609726276267220801395702965444362887979101060433172342197730251160075491858254695410715940648012074047885354095191123867381995472322821621415269079441879131548718262794221827610998364252353927879312251976409064981659522630932018443362589201799919141032748438968111150162713966472913690219314534269218092221665211786002511767710165625372779083537687910641993986876816209390420522785995365689257871393363937086452406767475794805599435924015654683109636526643344533422953096196757734254084823383007347600793294508953573771515277219597749269684846263748848697960215871143865045455109013299299572478782211375554190962146511062706507730822567793406876376731139897851556769805641848218779088527741058015668493034087893506221464934951334829060928532108142645189028975840401681691371865912419257293984542432099346218417132650639511534899686448752880366687452529842151859041259605283746210284732932633714099993282528094600829826980922730475625984984726035169590736946108683502798730508136789939481309650168160847879774465064061740166048831284987438654263357048875548591983621271110831738818037632342286331036545810990995107131230496414881331426090215499977337599762915123236738032430303294936065405000096039527154302139734947196759225544017500969542385469299169726385113931211848056347453133790921337970540044756891261999268626185165772488423900049083275690220897201923592338656134941328060257331620027715539514861079218825540306592474259329752640640121617689713205291180759100019738303074752946385789560456231344523060515429926851679520108414660580900418940836986387252928023679488863559404618056928581665938652666285292046905338225825360410538377464953830592772361549967924259649088415111922214551327268934633994643211202930870903551466724617598113374527461709349241682942591979660172834611950345072970580037469191762339492320717046206881238227168693162629751199289711511897218834592166427566729326747286415991454803941557408224069841217277612315665833404455237007000046977107042862848214179032971898786964381166716844569870163890361801270993786975014707446988060448603404484616179061247573092336817763887663846311617615186702634261425000989250315659994552188473865634284565543346213744239983618285407702079105830880745023659573429528784371908331251391763990250364098191287412594131934720485387266642319977555173061482397315816322532340740797905964206193335381137474521237197036352778213882478247758726115965374731297868936862899257020681699144175119388027781489377696234038631218458619238775136645252821868588456915449435757058521836401912857802609100086427940810797178346748574847449355983815721940300254141054605313875198328320028136172079059220355484185365808605330086245751539176239703018916092777647524413328718833573021506278416316103748311451310274189580473942933188466601395279336871707536956294581965151830032762846639611062337918997501598327749530509639945292924966866917176425373595677511021395613591881927214135052215230487774461282653949776858877666450404174194876034058940108098638378920365638688363158522329318475085285260772172415980889746195019239156654581146519587971402977752840369050958685492320870397282331388162442124496732624237510744973615982150398102035293775386420942387388688877337152072222707481669508647951777144908900912715764913549262204988272805349609399983862299717430136773867215659576652324040971290811538831356880728719825652699493683465002526661597312455589366783957664016837416553275194816454466585148342275431202100294418124309797002641911035013213929253803519235509465453189766637664729939443711378987862785355328559208232932546249442219479057697040328738559094764455745584552079350505367911493569595457554043691218520245489664044389673267637440176380010597392389571260354304376299964577885041495085350772383364563340323172049606124588591121714893560193147818941009026226750320739863677399288584639028596514769534592670437105604115204188635092056666706248722381510116069396510729284976581352922909219992651937691772462795484814627961424480389910879268681582323483518732904698504409362073310859344820724885964968582609151483132000962313338576425569977858521915600599043550581835707905575385735257163053731535579181498678005366619417160137141496987631678190842968470712397480570965611566508775468501583808852857571020417807723862136966302754381362526805557961261756510048752157992381344861458157489536769668967929309507632405169597555217064365779946169498002040830011767718918576891715863647249685645984682504057760021729020621485543436329411956651455701819040468872591265961447571655379796788130868294718950431468989664773998484163234906292202653707756384886070436601403671128087613836688116591629090991992793290347359140451385652099395340969491562921061889028102250781481993547479028270794407198503272645245423496566712689428584194763681782472125419790424406386828551002742719925426030988127068493511112857286214722741158439335131769869260995317263088891299728034469905867835238762185120940508665286879455066667585557065619077870936227483292480353675890047895495005945030716860024544325426208264951266357765658477486915701000309724900198081632178436493563454945712841985716771095373731760626546303824933910468203577828494836281264017096235330378910531205074748318034178289277957598222124792932116495721627153246969630401548003415507199606672892480792375008725741481635366570573473955238521095953920034869817239345149225486153347805845538051533648676905210116841000633005256880621770403035095834115822913603405143866277769265825578539579281643837237853316369326032335211074668886445870540761117143114329335365660782582571231266177431673245870913542102769235627243371710811192956808060850937248465603985709679903421227436695598525774872588929924745338101226273149752978213554133338641788348565024311797641525945596704750787469083935416919360402081295934591059910419226051685133677542301371637103021544095535767081293955110513100275045506293079704844012224088923959430521996013194612056588152789887109832498299035889033477379763116900247711403431357239621933356630644064447742791172062652925125577972678267478628513439907059395992445868789030227280001100865321710765062194874042900781179259351411250904690249053863403607296944224927681124986692179939687936589981903216156606185381393879543008671172602569732398958825572156380332634226509802364493181152511553682702660453660831496566741694098779637551244481468378600122106070935181326079207004096018136479221984761836892612850063055354715028346553282444226282904055137181928821076317556290006785793245072300512205860506961777992671296345486924471454891773321633833178812873112065408466080597788090823731871635785702967985185944902936181739236418409899311294507865240127680679709264613528619303717710269169652643640458317102521019465045636004109376086300481375983519681443721034139384055009607826945805645103384428379703410211054603643620007670481630533499341471848837018054218279317958438487684005844959085440884790828135342245473458446737323821494687786093298696490718306787728818543860289377024042965177743097369608110835861200586929261932095264560077312063188579364492359682352823729533975575556890231174254890202639620802452253113814699727102982471069090912758976279980081355560487754711456165158896197664545583921192149338526101178339158621490955033524475874115246353447621729289040094098230650840500071625868243428399310380370634050362051658062542242227271776519518527522908215493061042476282272827912340455886516278242385039746617605268577768548697099834924419916273675042307230118068167853599098228222650629172679499475309783062418258823420008304435565821686086645425026665203115640854501038584073261623569737357740850466339362667108292588435392667500940595039456657922332745367383810686502577119298531612484904795927364322556912825175181775429417541968921781404673919048545913566670031081774843983797673415301894681747520208508858944414630553893687748793776318641203339528973061373341407041986340134112374727482595918063556700771908617057981117612647113816672644530711717393622255694709693017437022062895205534707255370920952170804341569148992896914351489201163395355959810318343071977601893957173874622204676374630589955621216815403669844550965190779467814085679262955352605362773765866846417470399980306165889395330507298502413485373606540452578591976944798495983883590489658885334238046600886443469725733721607579534844990800545407967548488206250481258209315704261032927371640172075070993863244841078727572867335027691653315114710645110696385636163216642672182325580129478837554762446836635381385526735987527090209295723861771939333534331973262637623534459078962722439008111616421910691534995305402934168697296948476306954061547563202732442208396228303967284100349621291566074788966762426182786917737582170064251289979598053709341964758204824226246001845264208137216603982980418845319331719773294568150414812355634924270102644221048764529872808684671935045286571517321180914763018640835472176251553180233450258076208463861956461342670385223024971315195966364921922737430629953327689156835256848348878927721160305782967939899395568232676228624574946039298691804058885596589341883325655237553607008469009828496436071243954323757070137534837976942143766064549165042680378179560037919655041379228295541384032671385344014928016978719566091426464356128100238382640052689311106858817133750782669376230351464617072974956165471343421849123326673143906055547755648391095720146513035542061252727509078150112835750604864198471969893318193457522238109500258756348084017820438058473970530607808431461608686075607291423449259635676368996812980539049830244510498041265993011788105300127555289840400569290647803564684513899691079739668351465349006251229660806991306814797744089420549636563729314071470898697213540024940680354838814401189754279638680315452561108687806123052154405836446058650848071263686184703037420525606994971785508626045216730197397766485086762666775547567956719203884279471826267410377333036429261805118501320832230513382533419536666482514312351753184918415662187746591960064684118310676515614282633622000373905130905225956144250666430656915443434301301520864712328159742206438168090113170301041367251899501299701922316435901104589881832378958916018732823552619154238846899050752751815179572963948489263663561537720899615859799877875531011179187639038445130539799529302872592871542740628709041787986535159955479619170791690862894295907664786107144264500902787679561321166429843615356686986204189979524541728169359568999451417351315261501786352876984281129239850481120916599296067150183702108970794156631558858104373051260662385488823488572221895730532985583767837692600688441355678122982919643501495588336764314245493729680355295200874092976871844204337070667816832033403743142439736053360624660806197339030306601959975721028574038456175533571181710826273809243814942967529212903471618629416866081673420659700044894772350644696581225582064885038041134514381973811891550103537759509716701837989246176842378744294258556081690834673247173791928456849937826010975023281299874321113597619079123208669235225755681198124235769523001916255805586443976283360345637783637506806738311120304051455066009040225571389305243924302460188267105373803873172345582588233899221693145852838289061185562035852195682416121300289489451408299898969075781291754280573454115014004118448615409104274150890371560029592082213399156791462745811779599524871566408044682645520489608097094374605472371184481932619005329186997024362753872029818437286718253489418430707031767603571692589840180700189652285927030657583707735513917276171639869746420894596010808100506540852772149373639982757685932014287380831969393053988630806179932356447456384810887858380979490843921633347206507268524083630411373165353019123567433522694913828256273318517492543769618364166119917153201196907589656976254883655665890271575582191927285111027504054517068194962822521755526126111480782051003459430735195116630600043164912118228393255318927896756346019679719941190169042776497730153698043261212393314432590453294414606108246293540764591320038600563187879717601847928911069253623944060142605211739059770814761168322361908611313313319614300255643495062770870749496040401178432516144887876037725226111785948023705302649502758089137762359675815922060303638091124483161617341369286659570432379436872263703513192576342384571484408411003123499881575104244912458841561333788980140219574817652330424750454476630506787307361008685465268948037250431378114181901266817122125569993593328599261452097666036380917825873362112161196441742240867337662384478657797166548559470848382996586466775470293868704431994791646529522889787263956572251177893488513083030918426302213815504315956127487445062756651358779939325593599480275701597165732082414974484526149918872768864778265745458298034006322401667731102566374637160181968199091396898122239250132230544303379112998193207796479392734419099169448531868545006612166034931481482651468219351293289491792225119503854572361188282344713662894329329037388548023905373236818307692105957999984845662763800459993496489363576395967572188300850015472123281665323048729076596897250161598173214078176987634810069669711864801092817114175274625416343720762424952770938907795974832642897787912442944643719320365574565156242059364872894235049784295753218870316000456177184764375918977635850213998847327528021592044403295331075337568401403011936733935180653672149894318680617855029118023871609955317273760534468476892793920106494822238515366660138950835805463963118557913777059010313193127965858616494374714841777106721983121582427282775255397633861546349177313385154325063440798459002330239958594830788545120969867832784026757822429702437021720950451436946554551954157613519693189422113117474294581792989210078504815760799371463378109848369024982546863213665564569056484618093593924540931296618804866847816912768419264626022339273057347781902020340509481310691038438882602837297411883128202681941009106423090848482991484600643785420042341369376700179061159247244837145606514081555527806620762289569481857126456637833761829685885229144022686917562797452016289143338997457132933880196377567607648536162422280164151593747087129751420926264214382943475757823211645707443107512794522523270450677065373306774559229395840303857375238306817165152506473570857405650849719847643203175139910233286943932619238661862680430699837172274722642695944483200653885440813519951890109955822510804396664768228565348341802033631508325204969383903228639334425837020413062691467007301489203880681379373860319424146789342060091229550466888046874953417665311089714873875112848891167651782092069272774581040746744945422903207075348611204517256303656765941541358524965428734057203455951886784876584044756949258381643844548741890847754286641096614965029145827988057688245015926429555421971045272079198940705346182337347972496435361934514077928050231684581759900679448579785576148099642589259446546901899099965116826606681822206313088349153516477906648523497166122194462841937645016173630957197030331072217031287002117442594866717160145957361052091991837081397900840545994254328083904162502975537020480466436881518189004449877578997072541009384496192508024663475834311320063191474822347762357696271807409327964944807426025901675635186469364656962481737819037885879118399539479749472339658284929239474119582372146790431939076282708892924506261259103888294687345922747741029802233866989529152668607190511236798232621865110392943603229168452085832359001575077187377260575335113597675189577586553463888109135249300494867640896232765645551952722278911670084600321421872269895741882275741422054318033011378138921926323455949131823950778979808857132530039967674944280407656481429370460078802266940039998642953959985506965974811800653385948879433518138432243398565530829903401819827174517481768338015979833063115945592328036298936182256783793225713668120847454161502166319456561078913676266863509445237348877925498853508218198815925579569017959453143569946733160375533065191360645874419063914558955096776460997604891052318915391123344282627920188176095938122338764583688269034454754958510240469858348612999528164451431338711119686161212218144605880386616745739141733884111913341195824819475561909254747259318674449478863193029241134676840704201733544920317751024865967896661253680035202044121300735988724649634423986559349827398581200582529146179000276906661670382930445582348345648813620599920530416283423607517867657516054391229410730614738295656998591224138732364273903346849018528488152009705193878060569297767904247693212783905222151773299352915605377420692844666904797183691560661354166217387007875398559359822056119081254121866959742467840752784150305262950202070143802070262859001560101509396928996370539732464152470096370536029326478552344385532184737775328844511408606555666134402695057897071202490185005261282717410433633068094064986943122739878580360003260739098692980993105898526945130481721334471916824441426167088998396560475026512852541599455644467014192361088892167136104577916179128750527847842496748410855629558236517996770101371474627909632590630815944508133592547745943858515508477826529595014918753708386755734032676771321219088175655331620083355551003788643611208592467557204511525675521191151833024062039801012418961620394053745174975651554407668541885352852140846380338713799485888750797484287230927176129866262417805160740990591872949133729176573620575950433797246920260661697193081027368332661021778479689646640328213531598757273479143507048404695241483040028418952970021433490578721178257840792807417955161470055682444574968315991904654611600204857497650076565874344363125861170906885639513167910192096710884870958424877521553965325886787766778085582455224758020618532937167887714095737248963217716560908315205573892786766480987149340054696932254910054916255022522819395916904524920727808709028541570238476622800748308089307777021466667541112301827483698687636869977427090111435648945841196129586755348284222149475074980750792345728029452028577315565505327284396475134484236113334992912414765213272802414823354827973675202294222146679511899337577010496837753099932156456554955315151677231525877924928068912388129281944605365529419499981032051048979518654839066419220356808130632116614550302593646409860774555594038638109105112194520452315785065052358389076010680684023487526283762722704369885661694925248733015480295631539910674923505573784437809364134497948951555379048873455199054879481318701869032461888847009308391191089062586189421264800235181145198850606388377189875097709851769878414345260526025102564127060324882397598251306875662773240792814223446099461388436482574145852337786747371956172753865281966953160504559622584655221807008501560403014686865870471542942776950402933688322905562501938917341823889373864777001471391304529709460296927459868435828083140791448366770136193716330372526408665752514822721209649039321377887247952504546228863487803631582432194838647257588572979682840081911840490519215419758057499235074016766444308057917211232357115201390768496144455323738063050923598798228487760966096839181021425834329434490195412533839587026060522760906917647858428290215370071780659047419304553319891397462446924336179154832416670164708940030180949139430380682617119975659892940509787145692548816499646120696183111534739529874723579164294220404400393164198608408463206427909602365575712747197213115367911869942245915692954248054758445385475282251100273882775530940306149170539929205642229462255407516593203567036676187233611636015807021703143582610403172113221338565144366922074552146314442799678113050074972842026832833681140405816901945994409251993215837856933429440409848749686321807753758727297387090765595386407726093950807870647521948609418265084886590566065289384441488962979711523035989015525830442289550338982193701422637452896179559200774923089755364814891293692622059143016118093021372844667691177296595821824290892971410139669670019705811399237688787334477788538903301982249735403529617065041672437870531556652070212118171737227133440905367766076895382889419030114207264187005699623004140946084899572944880547544486627561585798035716860495943457143446459319849737813329183816142775810854182467693074502601702585350408023390410521922218476485929579407665327440069731163251662427683251446474796892466718454798124924393314107457796131148122703050850967542334361580862447797757740473498330519653126102442066791610653088920207835115226289610354915550119753165413537264998357688930167790056792791078440000544541528793921825017722521487043234514450059385251347136461326472592408195713239886703306510755996672646394291375925354972305040756072819142457318722778927450241853386537525832456180049749038827501845414860026857967754884881861269499081693816796181334677634707062171638618549884449983727057388714344682142122146623699235947854877496742779992665538705008154089519388704963439583935023946683303545495076650296152162888651069204687581966711718536234294695694377436015120702938466275898076205801542006597610334285846850136837085667208252942903898534240279535657101198495916704142403541794042303474650589388476372506525247084733652017391273429288604304812067293128026142954823682684552325475223925407861671719992993851009749406094817528983212132978599875810967555902629760511756068824815981687625625848294773431197073789663580054363781897893520661801834988652292197103816305725363260910578213733708982136150121220893743215099091474799358173747310882150724141028755650147577822989826501533099371207030535549591861154598390318623428639874711320513601131732154962276181889910758508041947670929760205758075628523211957187999585541228517254966663467510164864355851411759481396651157019091678171495263713881319610772305377053499341739621032967628779989669116299560889842617685009900765399744676362442079556075063687440526464471932952839754515651192733860784359751725918952431471932884225845727781596787984174917341593565414581102507363753219431803407221757085143777994183457375719809370715889522869504152170642719625865552375085567933013753961134535959480181373678651025141682110878828625852816861175431856299364775300055127029235628915288366793142453682678582036334703106957549071792530305841004502743144412639163742915662805436484080311676441661289724388329372305664867033690503972280045981566955108900682896129717368448897474672276952973520712958098062061671395717075209415541466373659468973497028117044107242865612306423341653982836021548057636624248438872533424704491946599562316286163765126282363186576529206587539370837853098279279216165019447082777146669273326808960491492431443412463383209425444384681346698482444969726926696127796751928082011515735066693763598083989300580741770088099844658879998663134746209229130996510884442067479440777210309642374185273276047126136214094171315899199643419777130716659829218438793296389654360518632630594807847261162147331274019076510221513654018932982887847609183084448459328962897587077359840815427073290889483009075838419585023067531896065794508046333787566380216336760257787947737108996914484934495547306690081500301930929353927037429264524430014463294300313699644237246606638136684384340618147004501083136454836515844027401949334732938044141154816303632022569375236909070080471499139487696397451025596840170187494015354617753860903980881076784023100569736824873622562238982054540453537678497141692751701720595132750141057078431017430078446016033457333844433113029586312256551990167328789742479329384736103252426447452266230975518714701386662038046593181820238867976440353910541852261535022439409280377109772536455882072839846585349464322565963590301544909851110511858204338401331838546491936334090012009373382072762199140344046072522383388322438750859749773318559888595297738283014761794607164173225650095143098176713033714302960190820195020190751527128173859784522836588448913482992756010461646110079286046054613239667934803901572227695343661714037025842380288314912492622473216596892928640219077667555133546560419522537939400997922391786577669456154159640868616101233305790344524684531171075507926110098995793762434188910328859058669840004796373190884577316793165749862139909499767315211777802865544969301559450312540168370505762779812785882447033614456464511810892648683849116882331636327907223755125538208152803822764074550450609868036911828560644579355334486581340268301759997893019554553299786944337348035088993366348325573834957783890304093851434629276204166449505229702377420600359835022255575254155703726741983739891885490335684647449887683542609798712493931034993586464060908681287272886163577371465393054449829742159821816279481678246343827434541390364414535752496522620120439137578570332924976819443360877484355465491337524144217349566761064971664879099979598221936166739524678476206200330417187757731159270666721997769498380437705951837020937992454976133176956401264570147293854492406509992131542920273423235232661332159627649903144107295919327716496016251212503484647894848022573198670770298664801646190103700451321071876060666055265381016010786343070872834826111983663399575168989619297285685222135134027861787822001294918516541627827975009781060285769149684323538348744474720573939269111703521190847168248296901259115217133538269304677994100433580055159658350063306753759317262498120081530208056118313445929287885887665684787760615020358149900868439918611263437263933686643916467681394682935775637463601745738943174062859510002892332874904434873368978628274270208384193926841480771778420592018428708159835562853457661144949968302531631212212425315295931214640432740776977467688142513476996721853094403133062141061910892989930453763545277694671881299820374856498635333047809784634631444994972261409271808867184046285644553931678996978583514985995637717560104841052342868156835306825041469303286897173959845642291233634307194489689390767742278577313628178651824769842755643475467209419130966850072624349502832517127871409494356455010933570913202123975998543414885474733306074533723973749732332451335514494417422625386161776292104121899139416966940058336841827667166350496234340587094818545822990314067890273707944050903702902478204473631504492283686723566381497513962856734374715127144063069834238245123460352141101792951608968070214211806164080432214159045949396368176695106485539406041302286948244767098053622631063921791825267094342293774264084091814058835967269298714109959798265170769245310897870073686178409196689800358506385385984237682581610991928996000989868718986504539572453838475271383427511386710583763634388303331015435865382372604391870138320029364412055186676566208727704037774363845744761264828727553779522385635810356614211646578451659394104698742908191764088032408919678737561032888600815848509728873543895906458136117784615323026822173484646898810176271927616362047375036100959586910358084983122839242813388954895587274142878721065696622840302685642075658662161542639715505232002521694555321037644553138114467578837884278873644357242563726564815425741715216374586707783354686695875889093872267491566670419898953264747056606655466610201238586565678650098200047551169274667037615054630020783337908124339711952154690203121390732102168026997863837958156263831090501369229044646013153278788801438074025611470576151602634566006501178583093543597153276452150970736845399359973840191667277956739256588195325711864315133529520852695191453764454545820662231067196030386529686816612781501168084116736318217468572401815832799970497216147164117054114191026340992205132831655380081679352619621028815721096948910636562448221416152429263289886484084355012454625993546801831609482091521333666059364700386717947654694707643798284291431851048952531015470571427624492976238168876021849137157912537024836266194595649771383831312537815661904252573785250813461263758370576714257091649788968059904046864158923207082283019756302828271200306919369086587464153327492897616797042099416128859711994758618116868718759684309978547261661833028366381788066911624230886077485481896845698059705417489318458401244601322810156251733888966634923917444743761811672208000523009483743252259838602522232769742592451076156845743319214890503854881806346036784743166078196114199625100713745215176471420861637742416347707689059364780586104996425298111287208133483671766497467318800461355112704340882500693514959656307685821681452881309341293656129163722979388079274865245788543182242105359127335937578095513829760953248740775895474001364895925122079407526230320789187406410086357862419063589875049478308802623084438426347465489849893474819774994731075725299393055710671735470601889867941598043442314656493179955695801751539789891260795891465510050495269488946218598489547381797868919801419109981631804697043748682756524862746855021061453865689550470567205136864538618957124545494088427326340765391643804789126151913945084046674047694454089718682778652503725502933110099400653409577212288999380644630281240958728415334828975373985533076721287862995674130851094514238300116677316173050043128402657691584587479377795042560834846264094432480099323043908092242476774728089150577710885075769693931823120095643805845140588542399700776960251947580062248555251591908200091626722544363693333580060742924698241872024814604004981175809432892198648557203744941846302053768759873398295020018681240085232352169738414716757225176848830696148270389784617578370437930272079782093372543176389909045011617839515362752692689437649652349834074705298213320218083996523890460953349797579306243617622292939665842414903722338586920243586627479424089917010171580150072332599445378430407408345283393846815490433892994991885350410892403737051803507240054218248470710197583302418591452148933032100663308298072969340615194153378134729782642165344386847311457706701647196004984151496304242432040527079857206027585132550809380003108955350884343006526938775518502335948970279331169642273452235485183673450803751536657202349231250737068829449492972992877234940278957057088750618027814545734229859210168028860922387659901781634747000600381783390568131215434992016141024335895208444361744470421832101388785597937828613124900391613281222116103465052037934274784020820403040268565457024368946270194585131083861405645319658629126863435198366263228487279890804498063039046091309810526139889227522673113985605910215425310123951746833795982575723941029210447021952054354365268379675957936903008490604289832109754076698782134101413219173041352008713136638467766811013307529973097738229172848423840139210639833944714575276483437313662413237668781889229345184810389850701242388043611246001597741651337332233049790428449257276943159846971573646129848385225196457493006992859327664017364619089445474845861994214672372766914126487421470356790245503772380302098481525923583418711480960602569370337409610441840417900018273768077238025918539314592302131124443829948658203694338443188772521381679550951384387049474949078095610260488659364662307069855518344146762844345191958646773843091088760236815238327598164680569407540530521233476022778168197170526928215274440393144674581762614827931360627606250172784004140699587928856086762099682145938041349950537070355508669780415960508689977230995680943474393660420301405583535908892462826143851843883856352497517392417341029307680539241093528024763365009091109831713387938154530554605624118393129034615686139043576923979029520671652924348547923028579471697101689721154005225187863385484598817651487608480020277488811172589172887723032107117927498347203712355893946423838547756149728361184542010676758730157389951458908236896937063227643432157262780861465594761245595432364492382409905930950002751754045436325892095575869127747317113691251888979069549881822740487980683521208317255405081500631726825479764168915988372898338778969821936989114410211184892352482199801576590927200086249902282289879221544512954004574235113985500968418060930777670506989738751053407712044763344832858179501237655857070013177247073526891983746350265781222220563345814156531192406071759505841360145979966884798840970707289861103193907643289824776184509867028662514484006684172907773134448089062788555525820061672267107139648055061834581731252368531945440208345014693460647495431310100454826189443167143469949466859634089508318736773254085969471601345734117326933952866990723568236253295112973238115909199507209604054172495564553534600579679211643233842179609205865227877248445752507358302437637270585540671642382240218298961018330109755713551825986241511210550981442486830226877635008375566079529914616263286008338470091682012177544270363980927745629290937437399528666615817910193314349911325215036667309622979280856818815926899430513340616982212156066885933358186776083109552415750541003632217851554476499424782265834657216468601772685664442652697085127263665700735364824411952857033020553132168813410471844742147576594427622370637884429094097673361523150669508357800919957227590146232185378509748444871537557841691096785766496868110458441299897509696477836679664886818350325926650785448484811431186516474847434207639341061247127630548227128970168082903346029665952287492005987543353220633524301504663038709455137525335777767243129442277049807340080541626812051985223634812644866106934153270538317684576945887859629603572046746288457113315108392035418505061574043504384458142772966958275988258024375658087831849144528098552419784276129634629803031036203028219296051734660137637888393742503925107136146336752471357152945685077433652386780745845628673544364312038300901894247659951218636022626322526314876761177461276465542335195193711835511356110524070107115617926517112530727586405171673952724815442941401115666267542906419671915445077222262019067919467927307618011080817163574107679302270435859683125405779159961716336468812275785040304049590209401827596383617260696527439564461525355837796617905673953146007779784152070783199148180948121420066061296686485695099131627395678049524686736989377875945930196956843626502478957245043539168066130134866187796235447470179805273667539088011806783139052773679438863154049050689582958382134735262020747626213710849029371691413864041837501500030965748298900189167261255451717994921914635426259908860656313052474273279065393627657975532343281455282513007129221599590946197607048488486988027790272885053376897357501015775205427848400620468418814005070385416141657432681650917929907069012438077072877829493554534399245710415849233973771187379236393816448961900332551767156721316338430821718228973802671677533789022366103955504256163872202746308946036976839047195802634953237723821047840180715808919868531329578675882627949049336113145895870541334251789708925068485347479438921486309893033958270088193242146043460703339427801160338450250089866906746123729615171469856502604210297579038612249842224033739524995925186136443388187899507060944906756991837874481574670021244356437308023456596801256240990462960259616418812671296248545469679810096122590212407999297154199489597153240096303334871029687317936346982483755719221603432067017687429910717560592179723132660263230422499813237210579020744034459765558742181896716380022674582776677553358421418556530581684928713764566279629410418398131011951475360844766260017282584596772506209417812871017813137889842225207714143962810525401920740418136210441648402148386382782001084700997366400161237403162410656903478461580954116554626247906093241024320423755131746543430367883233728758269451487418490719371726721874506931653735919189154078819210326140150428827236195061319370379036222609472747392040051139962114484308779910808974665703326381591635084979797298724415206305410513714305483285277003285017014268064252618598459288895423200607862384940570789506943732211141849853331036363424936929644875867083855611583317331745297509310937676991533387734315967567609778552578508117337999121194605238446272533043666259221696656662525072905426654709604882216247634003359961258707294913194786566160625541287227822976219771764732203056067548117649527845443085018588020733388981898192689108384332500590283977990057462570513988043769008850398092631962532830114674987778803439101079354431872369037376052178386833445096250361383575955913455929384061407635607553336548799330170007553957874778176923594697206517044543593296690933295036762986232397360069011903973281539293085031558222365549014804255895764361874820200096763021508860108157687152221752853197641192565298997349589131180953250656370899468199710072864089835528446447762903304691340564835944235017418549711241885027730519885641808185715330574452925364761841803589548434615252371547129704644069057025831143791808252432001697247445962133688334779798626113161007834690639295019721290456538086758252012785989568453209361693949772589829352347843726381445385248315411432604543834395252157798114484960837314708226941923164253538683545270002827659821587564714925411348318190415991783938771890031265373868326420756192537124610585848452740442342914549189682393338252438748288528379437885654580725123759182705783428236792828739845950119662896053628093357384906606779921944990467414359858723467761670124020727304619982756572426905560984958283920806676970763802746640097782282153997486816281743443127843186883215491763258305672732632663894828325445592673947015196968415494419224262283519616822896926482141970386943795794791027291887991294715939577782459760900139587130826170205715202383110131111808190171553488342006781984183565905483581549122660478902067390464407348305026561656070875997175987744814144848796426576748270333367571063154289269639579912313996933761857076538470252392347026505364123654710229604964690829714792769581954343752383263110995880978114466935644299109374443749501251810205769233544971690936939908507435689669902116794716214274727608826461599046651018926208527322135706176520809921886044223051536340130241684555219987693657532102154928252010236355745138998461072219901267280577046782410412110501281496365141578372992903151755415087279919848919880857359097456858402619135326831529546207144967334114669535358722632609782271257336743169859313408142273560870350943794385083618279514928064986521996124439811211496080090849445003033260902236454458100233358071122352714683363983605844369066208407130861405545837790493323128270714671786152071265970504324130551715340557739532138429904507320811973333873051059762265004004958060478968518027233656009528651901075764660910721627573568499418681361423960627492786450772623713596126479396634397314363115694119117210005884682687862297671013365080210937814103223646652131962124237385382680237331145598167614841776040574767885187135180857455894786705668396600743452602225281727617702045133817247838406218626550202931857974500348764595209538428898665183808982086337494154580112072333922745957435311397107447864309195023726393190301250157094346364794903742444795397737763186148640974230560326300918304049769820701729234346626898921344026910053708869561148658559588037003000464367733425549061191887366912122626247051008823037830783665137606790305799783057286023440227085627091248762111260851185505966900580511351260958849660614202036126478378238852324593483460311606689615281901277037027351658756667504335932953217773194965143489189892284237765557749212054928582879392000896662146730732927463873922868935838278193335586488097122508096661576615641975795213472566748529919880963136821892686992710556946661215900894673839099294967796699161079366400459613410326252794036621759255012970071554649088829507382158262901043440899507920679756238201472637366612244982423080502157963132682000278209040459483475311670482275420490346909480593693122068583757717017868741512653490433892280802644730588369694097492108657908402658341167953629025902811409286691619747268685512297840998517728036967845715897226588885589655072246607140676091736570718731392562746795503426920097969678997361295555724835196333708983225352476256115495388669528926505454054027064694962431429907789440912643197661790692170495474980591145101853587948985196907035638964140729353226942960502290073460091955321191379370171284961925310682099896519127950906713031717756868693136129086364896015467819933920638436872038471536780275626146060738673005886128295707924299202449935184319450773540949522356194416281890209994431918753449090622574354726417823406527347892051212008952321157794901394333517835195949281453748227402798923092341592410274872611582746726228785537684459060421776996678515543934265497149324059251787535051776618757249162927028481247973117120261985605582868864703511854964176186753902217117620611709442894914596846662242643723589079605670079713743438259872039355918077941698796720465570745567995321853987371193417045673765299306746893580726255389946403733733206843725113239173321833222277404278252267203768031603202286782384006986550300719458451787927195188434392276854709488637553617851116026290480425910594092996220138620893218265881445285867183755471713178255313916283601954443451789572850050038021326518138328020692418328631122626014298756984608016306431958608691698402842337057385477182835880231155129020488374208088578784273858037377917514508288044629065076570625269003599770100379809328575561491384855436399828601392497332867346690993150912553786185491119244890348090378950876665742908328750862600327749491276242638517393338224600631263148283499770929341138285364595124260321285731527288211878220370772201710383466392444315807195012333047607718703755373632730674684048247551296602613785493963444215808564480335763851488647277094030105480318590307338967080811709871791718757983727768721015372161109658996939920504764340805096131951578892906633098938063320367147935323215385059513987696812556722611111847005946510965946929123457170402534739935337653485657565864020044978308273064056424263255366617514043454758392642156832721508209578150928753604253646971764328021993215422671537939256880284735413508073955782814081831087383536782681426536463801846266297167586167700498218868414923565899739500973442245295220718208068861652127104687590965967840959358194708772587702244313851673559163836608875056212162677963757571757135055893250170190886651292551279075545131598098550891189496566296264539340710958752144122012605380678377312630893183982190570917380065640758211705728473171180932898604855109354718366438239142351688156594261239698840824341728406837555327310960186736077692052303340350051626242924728035063225816489794857229677645184183845665658761929041504121082181935772820396305951031884677434183368330707794946567311774653958034314581006187650767538216047935210414334838820699963102031646933206451355815685204899156130290093615279201014625086744265371276555026099254684702167604998762901203330979580137440852960843632604132999365380944257960923365905006869443493020805700943542636051735938952042501624275784015616838665227864046263448318230575700470665583872352173786356292792094718518117508644505864844661501398337924837766063801862365617250624995714608291852611214988007929674811675964053616852510946204215800031104821245244595794664288494278690181088700640849379917470740488029776712693534564558209281966491301691654730113294817573020920411458767167733869994895336615104690682769156196816994211344498093529607841441697332468824453180436996793405294993007799444681985574384807268093580680897402558627036759693200850443335113588410163958895430234524209172099001928817102065275174379765420113445112277979601543832633037505053139070281459447135541397094570190104036613045478518084231198363358975608533743675547243309127249532365858493704908324319538404718686315755335792907771456393596728910558247395222478166363873231108562461532422861663486080760715605589751090966347305819281434362018424759192287372459340531607321964724508940590146035019447334876120493706531289404271807920380726998766105259143738600891443459850843462274411442263363206676252753321080147270500900286118661661226860640769676163066894015892338617568686710571723027125284595900629197219522046796247585873116018021250651874876272660198842628442804126833834726786654830832358154518677173716684634555553245041353579462828089131904746820862764183575710230419716085233832873904684486494559646632113369845444151312827186036457068777788263046233652096831402110294944071444341901582495577032838514314850974312424086205217260686730553938883520427962441636883029404724005908929905045138286126819909902823971030232820759228402264805411861665369974286742346238951031458315107635922582191761950715402028573981502744685345379160911096677957213871217530154066608934789949366288529926718961176780255477597105084952835265251525021371693942434431103870027899125225816071582245536570499747504504525791444662025945152795001588417442659037795934126346137279728382835154672317406243973418803179457302533275605838270456915590850646195303543597998980325693372950120453833254825666392322120796255432611958989622429203035647406728867673070935448023059162307886353871425851812599332246070153387024876900046215423589547168959692243979887393598996153144431857397709192758412643640156867763187995755921442918501312676184444311377040984919360794171417108035489022561251867464264735415417998994207178417988554477854768072698422205927060541818595368397909111693158032012492034496710519786459294009519316542675428296346868217173209614358014665607329998273228848189616225541698591336160575536472894823829381751698053810545885265220650453319598280973072359571126819501919318554456658521244642537727083978025030218574751522493238811007676023437622321493573370671339174737008840394062771353059620533872049223028551156606466060594453661245077717648520383034860422067003722878059065607478719373643669975466465098058176043710139966730949363136678179412384372840165167885254909920287470931229522001379328801951171722243298733868289092232949361219916991997220237670104093169205529236694966422622415522413643991982067417258590899328214358689287278643765298285529579255163355169890766030341977450441393944370153450866161302836805187841597188344704730429670189481329053757829253549543076083568760866292330858695358145413608930002205244306509857368350800540119806183692429488342158034879279855044617880681005364358779254961283551658783511395750769033421083005051845471789478180440954207954346635661173953232173740525117783939675469553604744820465584495305238237939067885055569360180907565865398567669661545018817967473830610931297539420124420504126841904876457086550221716542685443683558033343702355514066857847330386138750366380875937246227880556174418712911235092961476267158219385192832139672202511002314631052506465103681480451838210531344333045821222028239626484370271002003909619276984744306811086154235704662938251109074975228758977640052238175321038257493166152688568744149019507780355977084604163667659644529724754874739275325371642544202896023823353744511663372454974599020262574522449793302811492230508369265702995558442939381162032090354376535531656188853625970078910492703724306942185754742386387181935871151926266755530610930300671365681956215672437147559714421334389663381370144284825850076513379631928648522998630214269878742595829291868082837979613344616507972190602430941356672631129293728787646575226451068449661372864378238092326891574700893666155719929761495840382364513983681835926121771699064572580772613952327053722617769872594108367697644227065298747717056449896818513061196870268378170652559991472683458557252833699352009394667666577752206116625449321672444202538655095347245428977894557052868562201928889146519978397863577743289607676116384888979220909337436195255261480723335759287546858220368199970782047998015618943132025427058848531504698031046612327861048594632852545497821905164711228240304435221001634850857714880210694935821928903315841237263196438423735406864736415312349226628744496264516995432681686440277582242077463616617759709216387690496882915234491466219487124520095623151127607492391433922092089908537423924161144309928249602354347091779406258149094448617261694794679076394328513019343123736956911056789689015013192374071042137192516391032364534549285042356153143403726459447029259580037350288750896228458965341986913834048881489456872778555604673569735111375605408372412691631998810484542083985513868789670820686408328517902778666589424551811460944804946933466351356303525080104750154173162784996551628687709517342177380614831816110454596919808976225969262575020481252989754777758046133764780179650826466084769161335078065282636028360218167419445542560611438547520689758756949254793448896145392836107655208792638661717125713759734235738234193409736116671035754831099380976610827273428466416564640976318847031831826551442952521045179494077468527363676520996025322075972376895241925282643618821066508393889180918127936442507595783172825242661486997768488357577570893523624150126705835185789077215376817810299003964849718644092895013485229770791856218308656012115671345897457511139418500392445872961991516655117411264567706678180284514318442119480359036736807260076331286595378254664367760402413359806654660705345580910812262916816004751488609592035579164077343789260142212100781421844645020587583835385909560774650374649790986698561901413995285405426086384440477537866649698993209791977831932530458827376893515291111929985298262796885863919193975237500386480227688668425100109122896575909755203329251442523314379115527877124033844144500034624098851523546695057980690445101209220965372093441645226787310551427413878316941848144905121047851291294808026223017425447163073006858792967511062271508812435633135289083225822416265052396753244895470126797363160709325096241106881821179546240660206554713079515341220587298941435164415315439972728683148072259570756224408042469127175865780309949127447507805352550979910345048759774163681602870335354384206735949642380447361861451846292934427483947024557273601335160186482880052281950063994797841321199237759420359270072100530957266243227848931138756887584928407879806384873832557232963773147249945470175414363606571295048466330968025056611522612577431844961741653401612623526490562003200291741448595627874996348768018097956310757043966107055696366474816370706378889112184015727488505838492228374341753799168280573222206841463172818239509647033609511379542673986122917681701293071951535332548429194147646791677162128860129125122430151045709728775389796162873913282797596249998177088156901659143586530431772091062944541057646570431112364869037700129964956924790044810712014729144330041097955572293819193341364401355833398692763407628288209736481523670029749077338938258249429326256242238994514776077866521156522222686979901761712068639010666054217637040464408497649796963311144806515863989871997470539689952086626063494889438648840779610762891661093911822258300448098501566373182940911116287494121122240865027557110307162313168692281989831864682262351300608589938001775373073851435779123857398800205716016679433418260477475007897486532737941324395858733004534325815279569174804585003023253549558153110870081347615028956127656116678267598318146285882539511867504653676858619250415666798203533942312171692279717927056244186143558814282587746927396429760207698052922944995387596592057001932985882417439012334125900492786472427416779775034200995554458868717051037141062643727234966880658205677483524268296903622026323224620348175249464407958450969403747462237905253894937404345691279184142932066801760820274262729986352707687554808094699713996762754488714297177416681584288170755063536630168519604697358015141870376447289988184916050634614738554232335767525052635184412445360958394458049305654380023092176492024872240003283047758457280890585549938912210304840599086007810838356182253959157360275624895665082985854961418235343691465610253073039242231980512777518826264194230704961191001784266793114912834148276436144742475689457267279285876399066319084738689983213669358434668789670643873527707967917016428544109454308023068194130159800823946014510451127118072619531206630393385107944769013612372497099657573742663458312664669623807444092396926297784735543664206144381067523329973370779132265373463410138201460141479532330019435672943884324776959446331907285245128149824950516645247169235160829888392089590718151597267576778259720988005294287021693580003348480439747701334189430892075920292608577918809782872014143310166939431180873982498723464690927976997463821191946529791615078553753317081811765571275475714585952386483981581782948291006955284123983870773420089589929601787011186312980048349787180129126591117225046257228557253049652915732822319116566123465747769780476958937002105423133310149304391627463346936939269635928970839465956037907338954940092686087724391493320426600604876028025243467101484689377950366739749100976474061448612708073934716177133071666762165071487718023999286557655779758821166555663820693769244628701806549536257710334564181071035873872254914683168843332294222931165108890331725375280168323667990012695705804236091509506863959509350747307458221719163100421244187278612018980217089430752327151331429731101057678049375745655366180927808348639060991245887172255844185798418900890118705602275338633805605992500842626873130634295229739020713433116364707283289216692657238462580959393765609911188732335150005765319125861802439380400536482662624051232414112338741096682812539968711580276110321772590071559253567639461263786894672809289392443084609934014757275892527284862708450083087527920658835218889593755587214745637445126242709742733848666684371058986561786820872070539119998505785248582849790115630273408420791596079417432736814704371895914082822909137243515766264406485612828512264591127751958256066213755596932160458237886636892417183130915311769488744454894242870902162939104385366465365233314724477822542937373813344936786190826789055647324473304454113661250913075863623983842775839181357722043025610078523588202075784529684562063996071719178460555995605313709910835799154328999266307075158104774654727444485941035940715985135442399917245906053777148734764012751629041053356456985139881064411387079497079306602994787208283145377834071043450599165919250289184920997774454409808556472576471140173479483053851054461840321828079124509318287142585188209140453450348876012796357231322156116172972672909559316230282044447033662503277351238097863040570391980091643124760725474161106606128588309341448495977148143558798534911074686130730736146159178343552065798716025057859391100428478715173251168550606261315574647449815909830555615034207740273637613815629581152511352976141086611730894319852577712283494560107795713830940932558218702530667355901621928946433692307273396807662104737969269849298680247554354539457614533810308551198171514891736365797168379178742777489249365600561937602245351007393754045899443708894527502944051233158951521293865610464313464252897481360941779666740637990724570567957386302585242217487692651022405750238025767511130829417989449012237476396609108419498573875290418679742727586441991457794380023229717489657332217084857516108748922478361513008695365627398202195707639883786358127967741493001726831864368628863788042212231970160163311932151538094753865455022728853051048614677345747603989634777736418739928792094234098551222971609149629516465025929914025277915652381951329959555460698308013866036810212144249771847548667555523616392178517932979026266667326856097900182768242949499044324535527739876299016692184696897126375081900496356824166774233094887782163930879126959415621855145871320701215233786848877854158498920460816541661269639368138289517414366870584203301099289052598989573821929087874311382285979301982754699852479416270821650024653708002676159597043904655259472516388202537034220670578001547069104975524618940114675558982470738229572999112939492110779523901036444123961752648157795859422708255543142240327643630916949695622020343173593497447653752169147733837430970010868176861164454876427952338076765517118855047684934561829263981316419858240660580212170027355845551637984594154929899082021856043959220872547614694184716879534162777290350091862329054614274742619673221561803178847139962051927462954862263533122644068161905759717535688979508192632634500143566878441867071667639334856115742975552811320297175836572190081647702351263027211432542520073321150751394458157467830437194647678044045000013420825065221396147978843456157713299087984338583088367028214237504368859225036057067067662581098062101224379734697014628440335252455430517994636929527686243266498690170865684700751363583329466044484125775496415428463299937483349688729428399040950289228763347708133025010946695336644154873569618567498352985112950156566335530544362472991219301807175286141700693022664390012931391873270218634603123638947782612707066419041952607043046938899919429819625005507763595309029363909767353509171198578296215238675548190584060780946042607822612387176549029115649053932770371269541933868787721140076731655952884810706847475663098618986003951309171396296131307300543926147423854267040317691318686545940601427545763998456972855589548706506373448586068535876636427327820490004923432032928682562031651878900162064760132611901848166779834348072696906688802812865470162823412085184151460838382469220284188508481492761363027875892103102623537987743193784733796249010204977477930643529717041432515903589374977104221171250172058117256633668128253920093267768767775176535859647494300542345609897930595062396789043385918644212128174926102205090603559274703836783732070827362851224917246217170701931858298241734105412630715651301428047935760819076250041323689620876559871764345332648012990145275734799518886494825749938204016188313433518617719328354511764388243723027890729928955567362648194115909857293725293944297656691438489025294851507260595226693213867099357066141889548803557239125453265536006431015151324444730390744969480738395019150713401832341070437303772893176928068689967759968619286306020131508961235513308542818933522593700988106658453864052574582842890677837158250138599941774628733485275877218554338823648146639650561358936440312975614225195416774977712693579026957229190260105231630027111166718215608942896330542146731340659967560657370896143992143935885692780084219643709154019079589685048370269428741133407885573347015945420246933059884725121811038078208435980525990020126464159845561364374669936037254228052104237025460535754792426244918892021571553952377917851035961027509997364694720699534239632938522581465927197184986271461257401134171015229645553170116214654313775036322352865809795178553710803704789619593457223506330163019438889181525808357350341819725789635132197329281329469371856614848844096379391359045517023050901833276534794229925122136012248404545107418980725062220653895695132925730053879671563006585658525409478693348958719807676931901369862738335073594304098641016203238556231504919517232108285257296522829469556286446414266772601009754194152115590318004017808200633697871715760411565703129733016527711017041953762593977662260048558709846891880295998200057107240527410646344235565886315461797070496331504921791556258025871017132205610265172935097027463158701818046695617841457543302743734740259062430405443713220615663745248844588803827344819819760822288782372581532912626404240004585122943265549314022511896971526201033277034961299106816612639704099981912973780938939284522402546633067717730283989184913063593033678624035378585557038204751114600367840249854786481670139943730413038680980372223800493409183657025887573375479375183513384105470635586351000769464212375371549083191554815059929885645507704177466761864472249326180936274464890005490891129955826754538503137661926721945391344851477174611157691705696981281445296248421830854349230927547456699975549883578080233611044322078024613406935524162287193740592291948025738693567275556515872701270483156671632574574130955518094074152096821350471011274434236423036906180093757650443677829691235456756098365522068085903043545188885603386929699260920592891100785508040987022687570966440147835773274095796397894866667256235626130626736012432701246573506751312427441378787360839898301455037502785084669230868406656795415388586142223943780949254057746009540972529933571114119056642608917919754197195100630239915728874946455734754478333333421986521655746988512192738128353012541644132889903470247044609871264141937911763565056673728429663327464861349904172911551597539513716733273898203909448884174001489940896872982516362628388904479038126096901780894852208111932704159122453939443420296143000694069006923687656873722768202686905506488690084527697910443508766235970971367451214664548570793451161619968249703026624776668611861618374301424702153470170891079344739348066110405454141767398088326251668514348244902242800524513047193709831432663285653906937107388538224866719762628596826634401328234771781440119305158655599995150420666051908957783056297844728229817662455011812012591868981107053080630796340008318519148822610323305224840667321614075902866216487060231423045558279097101104262971852674144317598972250283978190243057104880765317759259003920284790771454721649283207533864108051928552666430237479964285019086271792395512596361484326228587428243108885676229305114677090880449828228434195759838586090888591460470174105680424228820633484554273477256601643293922509929520117643434805777484723867158043750494047381435952596300896793720056703586461193119512699737615127046104425095240984849500377703366000716612938977905481341956768346534965493938077048534249137263369195179920139040809715104741121461149586846295294309220456856211945662075375924391399361332869206249033357891732013329266397452933847646328520174574651319469130963270498946222011224338457295058246206843127511610029982351966041659313002191566259345609587793215556460127048227731731086013071734880132066393435730306679956732745654444996683346720004367624381209338573116040269226640716133777920561555478372874647301723659544067080575622985943411671510614934029845527651324831847403184246569119257536798584089677551306470591036760586307407317666527863597361413968433864696924600556154316320806334420579558862482797208174522735098459860178844268292671537701317784470088244867025675393010084584047706019157982499651959755779197124475329142102963525723934984999147653898793973034947941109655883535277727984973408793206449887526942915218683419903492985726490552101102935217675859125893594833208977796333411802128531314160987035465406393874307664663299646479686932644844999502453240700129353645004379650775204569820400044483874032697796212459164447447752660146736599159039555939700951110624403159089613495669506751365735978761612222205341556349969748345293884320145623718574974577375705943492639944511768114286546681690220453997504873434217465934776419177405201272633552188097010022325364564237076827258032702908286692400834659260927700910215669953938431215807473614481619141327986541363812479533859923611050446825061941450916893439384538559985352771703188619993384090081834828806330218383246815647086315794110872766333773422692010059767735741693937507872244301755231308158578505608019933277377411538265454575404870057644118097737850983895298830714242877561026631040778483605264439517783685523638209749311010139574614349916676562695491997418107442993437650022042254586625942900612838397215736568523208610021149698127971005566072811952293750553837309917002877854974972511137922389156328197124541839613182071234283007082778722577839155209582738953904710946356212424835941036725974341633746433127749425552814006010435479826286534827254134597861578859303241808147355454228973001347984971874096779323606647460149769364827599991561332413255654059889430393994236536965958923901449800429248790320730371600588691008986616713122470435133420491516587871262629256256204029158022505660624083675672101260817101652993101722313241218468260179143817550973859852622348520510202327994076783037887878342980322978549995717251203346464512118468179387874047345912076093994938261815403329987670730820240835200102857245611561815267638124864744026815450642444638452202829483775214862645753409593043060742188255660959266263789798915852661969264232043156358790511493048340034837991060303349444642213394563176909906249488771771883849500812718133055201214619733183848773854292649935814841489844065468300461559998327999746119898555079517114608232151297597334558075111003703541795954389526778889517270707457778334279637139758188484411379440682955215535455001483917694029155291867167821106160353491364594299599482218303412138952884641617475475697216094424263893838266993402216435655613319066018082134567708989584708764608581206283530642556837435708709680477224424623613456351541784353904758622554855525497043071203067702597249847113539461446060360351893710725336249132412090109706176819652800731327235731003221251681134938787489240820341720789419665860818460793229757431718490788326345905363373222970172038478389787193222817450414282131995711811659957764559559761177542246821732962755538204439317213681449833013185348618243249537670457892719958439805797756795196345534147843840476153806842057239915965682359498384233445176574563780120651839647914799897849033105881774394521908661766672669768849520328031871840941489232962252752239574901225776564883735962732782348785916770561718591571722244807178024461794618196502940884913527154134777230514361928825240951892296841265532880439813463943496148548405367763046573453054388581573314517988317208697325783185642601781819990788862899818396968813712949452460683644660493481280951051841242683984706146934301417900505698327716935466647395397512544916301036571925131156132771038983615296673089845524323319883130863473996551156859511405261912514371251634543146552741538843400661815120741508029759236848916594957591345607618700748787544889852675709110037354028842528132730377383988685793389681058051412388836621117087041356821455240208341992010566095633952054737461200357066605184479264013478905906687373602292880489988555356651836256657232518531782481847717302105553360742306493639216147493294068780102184747447115539780655231404939532437804764201875655028307304575556046529794208657530471552872304154078980808228733068880140455980682373565253736084170145423602141238625911708724093622481506702914688828225179497960390695278648538576770838187168447943265299541398824308867542950183152308626470050353987613527475864929570991633883037375529441333720238029958129017574676588811145052797662974163840386037189297053334902806296734338381529968183373504946498493762473142193351433973487885317884978851496842919643980964376426503746524163708278123258349712707942721481189509483780457156990131039503440121230864889039327065471031308810255016200507520382533705113456953528203292799937799539191709676384029553628185598218581796421057615354888088183677787638273157283132839985280534216208959379379473256639828034094672249629798458596353063982576434206270209509822728764927759061019321893567214650766341999139165408406078112628932029790301407072475688602139024675020765377694732455813877761455459203911626408175045142991472635411076617052561253769564996430875526217026737328649656879384383072517636186700979563519688292265160839392110829522695910884704880463982185195803496171828043013350107726179513711979142089066181092321132633871227910924087759085093369681820093649516138283540623720084531876859977629742537028538498881967011789475862486162919653057411552507359181294304131876221720691043840456873135552055675988685196454090474641830746762562445793498101161069605439968776038386301757291788111508457274947208192785859861052146280167096485228184171009209010806300535512324155625121424128935444514477430667731196156972173362302784185492116781394428035694934733480520211555603865019863448120020160637520652414030602054283413727324472530581329755207773896051711553101403112285667529954797361147183768369579118041172823992388525842468840729353826982702816573028939473631001762787344514094485103648982804961245148961477368616105248642775044689507224571943922526264414192342235887976674042574083230210009733006382034273591679123964689662991383531130165206573276017109586220054842303769865121043257807003935556560971650060692348829072733258981083305598809194891568530310074477789854074598894154983838860301123488029649294451419950530640188721316545338087254157342853790632674686830378496956066518763935636674054474668047742130804376030184451765099760910620035634907209112606019225319737938189492259456490486426252036362990743309992015585341608663616018579637395172773804893407603834377839404286331581541786933457271359700922981317318296279572479145097751559511061567250532857046233349901477086907111884574756814165298283672069715820758979768901733222347074654459966191563774966087972928554594879343746402104440111373128669011136592852404521485707971272455582240483213036607759159339682140455561551944464556949756933268021357219412140748552620914011333244640423841042197882589678006581771308184133903941203754812888556298322081397128620972246610991673478352809333626271691842265329887216499330819483285050249065014171874797327852571653821033345365507130001519854934277792579712987710717826493446695664640651772990296641389701748170671858873645730370145720877471542245908576364084027293568461970967145961710144037688168171383171494083968312517380794931919175555370389069659425349065915305504969782610294010612123669769907946037006935757341226690958839521118945575561706176417034342758920014213391843322721826564460795337412727928348176899355086978030628222996278216181418679384572375225985470176381660958428648045669170213974386649023157500170453600590970472347138096928167855178752756734975090473156091323409577232506909644983343530711754366094612241020319998582219561793874248666368640701626473410456732622968003021900798915384990058072184971380907493099644571355953501861878667993635438126022345223342176065139686237549184529177844491224369411206965023827695030753900874409648886245638885524522257921045171740195504223351626652592606110773067192585816358436390758060001214879669746471548685643860639508020964631569075948737242020719037332169357448306996040000289754348619130136336918451454519676885805269160404166148147335482459153690028151831931677324309604032988822359729579267783579528459793570539787306162492725178430435199123351555717602045578822980547326529094079300258702823320161475985505211582596028712205857093134785793382731395377167897937125886569578696585459199619812864731468730471839438719365343170680263492820749627884230680798363163122874046091772367218867109086594484028878751765999314265055908231831086631258996942856408157480457676396534377915242370137021560482730828028606222014379452131388027062153400333225089788808180812783551000093715795306932323730622790076271042693110833366971746351320960040212920261439970385389647978163464453114498871094111747151989167545024550958996238604088608149704393756129634938966669119820817438965537796192966381220846507354584603375031297403622546686717254949853679129704332152950811990112243099118179562221649774815372738377541980323659327251626235949653510409989379291691997774053096264665256459882742322129493936908338516342083656101432334229421815853690609290486847246921653647767293643665537335752341619111783924199202601920524493663759907553678269512702383535703899018695098325898855210203882058237390172390640113894999490368752154686308612838862407997682895303363179334533992920119735000860226502101928981612721926141716326363944844670936735338413302061898273846471656137209560434187993654514602877604715572154839155483647947509311583941362220492040935466817005788795993079250306575895135768912517004006387521829157293010078939613831544284720919769274087381073628361581887101250765367074820485072988806910519993546814498792825457899741726486174871535879233831873826854676391721911958744143500356276045660445777284968987435844840527535135312231153015133773898188436462334835932081523174449733759536407854395318704389827764935206998120740445264675750305105918920403747699673068783389397651974851797536678864131720439439879672665206022684377204864589756659731519498844032710604934976944675463461628475644282093993518587140114121997937215176404166011653574099247540213518209685115718217126887512278695730742777616385953910835133015605129195438681724977587416661512895085288359752097133242594965192034771484716757778006405630440399669119459438566514883532493103585244426919375110113700856751212817742806320798149312815639636266294358458232668007764972479185654235170828396400344098393370115212046022920196417187543532961841273644791658280266180588381999175814324860746058483519282788341931891463944935283334179309327260659107896404583134665980757382337792543404219257905503083182099699955053313778745586903882298516492748724462028342926485785091988252822916815580036830987690009188162230397849288516880967415979698403689025503467080654851541005897505252195956689461788817513215079095657568808329414865222628015373374865736177130622452654900768106734255732415238327921292688778476787957170461759264268511358120468808184646269998133907593871415570923918046555961586378560957122040673470483547466437372633837155733029868707534688199018929633199693726160920713792628970177817208840411160363988461704846940785865843676654861781187748425170912431274772868157840163345197388682848835423062270476479462082555081127210308807336792261773737988629089757407291460055664064129894398175474287968925303275803657496720394567347543940301330169442587108822984761399877301830854035051940117492450934895710585929403693495365039327143384500779369089661896019288284612098181781578546984844851114327056104163013969184411118692222919128991077260169736072605851856413355425884624296237801176075471773159947508386902824657633500180772162899064686698783645307166081136890712857980954500078575475429147762538664197878024479298985180610858268376407256732217289481962712494884553691685811267476039834067874242535037095338387651223443684014909618432603691600848154576894656913038611081863696355729875820933701947414314259386184508081944397674447547020253877628854908201273991963385628235622614735866583521204497969425676707571241921961440430949894768028749195369958201502332415152640724779016256974948265208095088200420528821968693312409183491323827851919587743807495220035847773197462151737906581128696038704144242782860875015874795375203563120320145838966979975425969054012635582271501155169077456528623198302892343148633620356817947535417079881665328749294170496684125876585836464409791637234029296305447707278013341100050341794459279371861300975149617208381417184745598099522179716769165995317450308393576225159426870802109264515957081254666932371911942721960411800109983813898861280329332277598847896276670956977939777235356922120644636469832409133809094775027016779450921169790486845669285890569503136395870375079837815545517679181924754590815778678880067465604825887711749690611271457212347351473092927700184581157884612069299304255925983960204374996235636742093190865685605102840782001859495705155512021677697648637742796384360135802499244556080414357277239199137288720467864661312635381127710936250489810378712565828663295745121137284491299974657770514483730405527425316076431949155754898409094390452155641386374598237405456002185930498267651365848507557646464362837260631186609499036885796282348459466953599475752388552336848936789034510883372808101498005642486282685698875095459656097158048119319775282571225464036657175875465914815202839178119608258020958518063681490435037948524008774818886655484644776996118787801251347662275877654561098491193283904425456509544557312462959818356334113723533513670051401610081957808380979407184794011317003069349600859507345853406640201345689690894138272605740989116894062444733236272265267627407558817577807767340377330463670407800168759515432627656561385405487455968254414267810892357967335739360158842929323948330717809566884621285760006821118784499129782193741029769076006847491225110711204342276014131097135384987540146170514098181867966532593114429457239835515349153315970653664368509426427791784759475402785316879151995980030305017072459245817522570262041728382238522116254945707443195407910523362961092625455570618267210091579904573118595442653256085004576946936662487140547477718102295897723971036130410796308142247550010699143922130844801914999096205732382727337673003003969207419998837273211545510376383909537127127802695953446298140022241565579466759361866504899770218472149829679136939927162369592748169258481597550724639740190007335182967710747423266915669242954402661493696171363607533299074289167737972965441360035794339115817542444643295747731745117527404485728671277685430800745135034791579393889841889700418352645438908753317149325940960764029449276810726874172962028079975010386535628075202347463229487937124363100283968558280949053245087334404290858154909175252365821262661882814570495207941081430838657686177889832873114439871640249314084448522901348215163631821471594391873580869535616759496342634051295801168019006295617649886522600445589045600149157513570278370548863083017723263995457985462932243498060703470226708521732268142615627097459466757033449058417831555642741769475304022382041132438571507591253265158172797301262459410703358435778747111620313589566712541976537099258478951721448522013172769929245101359379127186689103102617900277175365100095052681655318925023649621547254160626427258280990732852085905628355413614143516038975491836336027785993794370531302017006481537591172707077057237370259290004088662666837746329973479662003383521261987285515491363694410375007666487008140690528571867090445736801809418294602146108139746735454655514897628526286858981097543168309189615567594657854591390253316251562209249436302219066396134526565640586728174832503757694603407942983374693753695817092488927299484807973178464805590725051497584858879915792466521149139251130713195779815831971968183077916622242273758156485431660244830918262028116443581154599613642399115388091496731155114620563481209501031902822377419429930365043825525753561736265530312657372242962891278548406645666410700398816452207326131279857501266446224949256024852965586151537395880599042512683753662021629946204429018718473600681084662882658618487444042939093195817182949282413390187177378631386024895648715652793024425523362007776967517643018722565845292262397121876056249476652117579312631211510439501671177832547450389654694518355633441176213181080886286070183769744346248222956207966080899001255711650252487483297231689838484682884534523332091932621727838212006683037213685028330694040721986233559617992383519026739640214834413187428423038598795022488519755093158654009952355028688847485103023368665832661965248469026468364727630937755518249277834456160024175679780380860930941659335653026717975385036397926218140113879085517313667705137867757114983349431547606849496356191831635741065289878215896999982166293205815726553883531283536783011616013641440296471432282477609029653279701697854733302467488296551150775321859779787125713452016310641461482444866925434350343045606253406115395264211160602552569771151218432038043208922435226675767019032254284582222927046730334021771107134503035626225152386946235235298390746943651460297987808091138714663015936166117884120816154552922896430603206274792141691709560871114726046748405046562909114426157153350341588350016146562673288199382448173890585857718974649147971420156427810453589093663947923596532253835469514767709870693982841753529854133788966277484358522805915467172161503465233181465182788693819450689626432056391800527758143082989177036527815202978939141817319815365649926338883044834737408238008788186722255185925465490200495493815875985401516549896305703121743477834569290370880691685760462219359616149120417066209863479467661732872954072276832026638196008558580459268261215180800277863386417365730800191014220420578541352851237055052745189477652605148545441947328998189198793709687038337942442202685638207503340515161272039412400506505389108024749018856279103530353331280555935986645632812462185327876471259850563663207790462519537297269579959324405532437446725169628675339343793797163277377423204537813083316793644943757534386468590091085182427938647919292314436548454761103290865018553088393777430425178308702812542541752900927515983129725204339701041445075237218347454764361897066182964110551563748154370224736645097338874682788234498970584646505801924243108360683857339973037880703475125423432898391191662509719821508987580233801037043621673470963175124235400620019990817554748757780538736312828432633783725914091233261777098275062105731079064608975525906224993828674870230404218410381062695582695010139817798725638541731879101425488166296801326065789562248856863360626636911133580613428107346286194635380079461579854236297377763733468720884549915003723236108257093173313687852463158021248572809554707832967930455507699094257724368991836439105263642961534840238269311039111289957729504563132988880824469001054547514566156490911154633090925062510298802785711542730095664386298502429779473181581521350515211486384346756039386416531535629834780207684649591302517264923404162568775478830879125970459053503954553835416699271232396654426705262356912485197812126940567285393880292858211406258568475997358599900244262361700873429865375620047356819750322249752307870386709379133792473161703135761559367386229124163840780052380599249427646850251206368674060638368868375822136167446590326418731604330485998110654231206607727767447165560418253922092883077743524628215595144213231651881924937123510808108151825735760520404443740453484516541886829620899039223172159373881936042569626146502362194893560780845049742203148755316029419345497266868087276966883731361087770044199419906628714092364177168714256875895757967331928845131396097037289319117988889987907198035954665526259823125019249803262425514298384627862891974942684981024791250146714947610131091953114940143145819404856232660066576480396375135446162476344881623991068296048848337328021123413957008245001226468556652128826849748349899345864778110331266218405995948422501945615736731260871137919200413036545435720450328639771871214241631855364120420313800868700335350706996934204076767116472662534417883544091239954339615254192497412242696857998070313794138734546616604338907505739711705972246188562463002600579762764652596322115699990884531559694242932627428276037301589237688278302675664045746460773602581988605269787505390518161226035068385762780660175732589780733966886167271798872414091272216878859598915310557239610478233936251942688570374562149321161727871842916681178024593540901126283266424778806401938367785332971400975730519329109691979355446448758055704608787948965221085980852408295440289381147568767210740957782952344639335570224748425662826183620128229845445089835598677684845190278084184264781696879046400900871246183382016677621818853028096342556523971376188723137559025807287670079702072791798827084826305416437352082498417958869272337630599906665617462704167757329911989514677384502420292844660207845948558613612327563301054043974939638985032982298927328684474143950539481432218207544163396279708567416890240399310600043714997157867470242332485678726214489421292623191819229832570725397117774432100256982234802818676540506495964944910251855618197270210957309143225589738827991851767058482978063848638912758228761622433110570447709577209801316431471112600783303475564620754509972158541756061755053982137352353223796996026980264359140210990002561705155543957673542481733689033929137840292860792163492330600913424687078023330613128096722988385228136253372445418630669825787598329351770356708319074339573976776505372209859154011862236512196353276830278664564150623922228355659212638871992721019198695512214142749873011206533241080710157106777990529189715371950618467957759581083556920293440580717210945186469234673476818927691985752344880396535895293822126439078308097779437772118651293861825453005190880604309498934138124115210075730247166447321629292316070801378318828671861495753552990289647585379019319627005188767582527324166595422312542527029147053944951520355512252424012553726742559938016475094131868139146804613874294489901770300994543902663227782899411168474299135857743542201121744248842257358384051589516644569065340150530728492463744887387794362116458001595565594998256968718027751082947585840429277540101965860695445887418213783653167049510503990540445062268950264845840688159073077595883105169330336834176823007352278014684614257167445795474435773260028788155726448783408361214007056846793088246895577155358194651204805065499281478716913885008565111442642164304293792487328257113920305405299790425688740166160574728181628600550547542420816660186908964670996216280666996806322171848285118653282280918648195389658732882131132423205771138604893471427130219551334853912796570705641473563658383859937563795679180776947104962992124323434418049974009958084323449916589672805096479690240772927570689293561105910784313389158045759559744797595634465529601580721279919566410724876622398496295252452994605788362030612081557189367855124080322303640866448143927417175963031414670575940576767194858594882504067261669692827077839211497604509678116234442456335113152920770581911984587086369063247736846405631383128396951456110817611120019384480220258305325921177972223253991906802741195514347605757457067024931660724869117836417176612114621841232387560595988066686801521359965088635530926929479939782436278814420262465043847535266262236914647143217957678326925575667780881823633969280129061032990221261051196610863435935083982325204412154923293353737302718778561347316538256169516060535896749940845304187014391245510157617285788653722561567784970633518841250845403948021137078113479009613874103979454423667714106425809643395928787964806910357017776519582303601255210713785728305288165013706141114142931673786656024390525023422309577316716853319304079451532714720845354267513647209916848488849381907051281255947419992397430549431361485407758762605187618036693768938231471651806809391838016634089817755866975506317640902896588692212990484710580020039557357259073005062849109927954648052762355873969117907091208321095217542273103841921006527694083815231276712723848599257460430122871581123100222620543590839977282746926694590016478247833651915646133339457367598582342295657798868204356955342056402886983419618171568928377198826550940460281149570485838683629686088098697555565328509877163598418948153614565846625185763050282189210987933986970349808992055357875969819201335362087659263141312327144094852853456797506494926340157107634916249061554160958141627686064898430940860286659628782060206181681701459448619573044687180082061278677806864357620870393602008558423796420231009222779919947341592436525648212983404911938914495663877632768054353694193925137981174850276980518982294134879163931869306556144022514188360245990533862024326209793525780324519066791779080506829180168834082895956456623496433033385202178702969294619721104982120952235577457694330080962757904672402050756961211222847128943492293897726605806188364618605783581567019037884111045322444360844793695754270393396364036298013187914575162088411233704929976587969639613351759516646451923820552911930318246107834755721815712977111584082648608286852191673305780547292977205442761429317024918907686175447860206720213102666723674548789440197198863472281639574105266313411826271802338743809052292632193710297566645577005540540605345348173258954586215398291334699126768816378224276903546835213386267801251026640795256382373282770082917442317121953604527233306299796650053341226270129197414086268464501671422886296539009130695264196331689457400216607307546494702472012206980063915704510808022165831060161783506350248640835707737072000189553364920071441970443650241726666368742972408605888479935172240807593188184683770141607959005832556036585924381583614837721361569977645654274201362015018631476298495494084398029563816915908770200848890257272730202064068746462018388912534043320793137895021747109214003269815356290717354094865467167602803769361291495856920860408269981137726044368867981362652253418887018001308041772905054326387316622766169885141395779485106667745198949955322140019577762720773499548866941041083486996837402678921211078996350144454420424888754109174667593931266349513183011556340306123677791116254138182702680837179457196047733756930205729463238723292297771618831331342240566003839127921682295969575175093360818497080004462703588112679567012396547686381712426067335092727342769485671010323716206962211446128283747918201035274946076354449750826126619296635292058025464379016177135247416870154130073399399800836151164130927840360644152275127542877356928742884266708815849953834075146116240857647163438985348403382855456473036941739498838331773531601081065071570530373049717296612543806153454302877296650384795325006459245583357092011842083337166747959868890130694241468848041486856037482830297375993345966320564587227260112497248793484909499378564254010255526400175557039017320224845133733770932890179849893141600199664908806514198052662253067113882398545016182089148008653850088473266757967854348118648209835963618914453035909508933885092297688756939587323412042344853900330469921272311167751092949318639415486107510973599181473934378236047829064605334667615682707782354349585627423042912394599860576904429246228887310670537012326340022139627505828059306130852415066660143516602833135016403164694180164366754581121530984268235848335763050904642926249287053621556008013741287650600041706633202756199209586445950699063323169452558011718786349090291805015999041781952443426774760819036021055231766238385498326399426023038640775796310822435101758058529993213724620222588212244946169097046736315482575558352633045162216948105292415471718962308069777738225381151353377968308952152541657511932157008553142532086359442508997888716737629041002115948177439177028829766645549331329814506902017851154255172606723144119843317964530481102852119755334433996225027021836728379030327626324634476765810666362316233513208118883613972926057591618350201146300371046745206570866894213197831514298168477859071030602796512248469268816174553042830564748410560561329923991490906756224877633904092687002194368050998816041612460867109792527298694534478200720811319725770813048879735570473953106538051001387080525963234939798806925179615076914018949141066949836394554436014461509329636098492585690121086633449358903284037805749347421340564792992824774282294527149737233596197789690758162543312481135405608498062123142370139373859138780779648846060304671549792733457765041199838359242875228875223289981135532841154674110747747441528039236672973095512259869883592572660888146629181391968640917172934753106460454625015525448943960095700571160622072785329499800846681477483222738026178483814100739221138080804677916399778898384182562291226734199739788658860439605820284850197749537059342703903331315108461104355676848652870878355808235686895201876445548346461794218557605642208410313134293425714021196149684897586767520592026813270815769127672085718906698614616697193650235701835785324629381109119964726683310371061803983652319604175990620125542835492295738913964435418853441613168517223373452495356356081297339782330557464202364259787400460482631221427139383673189253377684382162038082649067292111231104105189148470050498957655676348712730545260825530999509928857945409649919884042031698429054763549950305094994328487573071013750831051590581690589294277939377683290423674308160574624109406394339758472215285685594262043299719142661379386205203222681695082756674249979199753017110961746657789697874406798196047577230435185128527867369109398757630243361851760225601975084503004765429624992793053641446420094587018922531678687855063596089736565842947202719265860958780068976723641898731478022711740067293405317094800300614225793299286212476699661070538573518938632041991743738077711424004969799833536991857399733507812110336480468461741404063258337469405762956779198249289880597013159894917142587589353069982858121433357598979719033702339124825279682213313437440290612876775685884411952316665716272958468551895521622216930385110119104265730675637642595250233912384988904476215102132413952216227316296843781445677989577670739843002098351076440269632004534477083074343918391296341070389396798593439434325585095557248869782702165519492123691258328834960246278303480988688792548810757472442756753355456790109952273129288024863648401530889440763200188380191811647029351906125319222698769527635437118010364575760674469166099973624240570650884858090146646087908265364215505559480155612688825696209608580883215148415223701321474689365925866011513348361640692327755795110526651925405096051165923628270360736645598296028666419191679292885240374359788259640484429849989175910559615193961526928990283991070475191781743880216527975546733556050260403738679463864577681665208017825796782012747356405083706949858460567977807075239342500838080973566401309043486019708896621506490970643061143750356226341732537491623924501708450443109227983896224481440867805370592244828124315462289940613579984443894579844567094679460369370274785019992914332159386099041066923278110168130390971837155378269333614032688609553373450651984533333062161717254213576095610469331089408784639191349617379705653216177037221837090404182382303554978331933333781875182252513597797123340579190032296873991283259176067708788287085851634604181024685055140694741712493219572676902589318797196426253053955034478437949207205529104311762201908208395255101074062583630197897643561990066828693747655753634832519754661534820311755423402791317767427589306161427164582764087853402500267221982344798337519512501978065052293978626553029832394941011796857488079388079389631391009601773291951575135027891352806335875623003514111206618111109257565674713027375990710495648145937440268672104531123901095708718811767636551147473115055379447649050868132071907489775869861801907727762087943103069204387689363286844391072057155879595495733136108822562951566055413058912319693998428639223959552839626677343716449470002003465183263474945337209352742606651105357719808557506522790640652423475986001754895070155047944795305268381404191461081875786156890718224926012665059987263653659415106499764207337349239054294589977424979576238155645045164267279706400880710268024274852977119856358308612683953373778077668974468616059985050970119468069584985733745483361063478443944301072070626168060726602510476163827636466873078791412706604978748969676407731329524722327887372709786078170548292694383144821960719096830276221236116686401959914351886793992770795820970313753749978343944370029446068683774449242084276852290513829316993445518275321087915541694258611449077200533238791405676967831568499559079464715966886089254941716017072948566982597927972215143216389316397207786422043390807109668148763607573762923888582007201593057397818670265405373353822315342518468398350856304189718767906019793605516779149811677182444023995219220115226083834468653256694760319219498596664807097974241320115091641542449492038922382018242705154846386869932420284023815144302057639836563768546460146544996845273964070374620879578778221513450659874146599329287836727972641562400076149477516673456251457395214314545061657672934087104144729761427836482550337667352567662207470273766258092818569422476547936671675881010807445223986784739623544694660009010498543542315871273761009584221125593095366204281616970377210063635403371356872896223764164033562812988957031021946078966366518571176197147549102363557716565612198490399179448992547626249808523486390713877856579897295850717631956056235613635324747755511232550869508394235395911942376114544114139748309947462698660312074965737885934430006751776396993795860974105113615190439334710535947641525450409629410205848344811694983119486624176208993323301457691514333633217208690132915502539572253184689611936413573711353106536324871644870744928027285573724218741348010173329384647426540594944961046056525742474051972122046605352786799742537838050322600244862442816360947092064871142243745435871500889619210272973684335563992334157345962617542535438281270702154600092195565667361514916337926324896171253553830778232142322704562293223519878756237917779501682220472097816743377163197911301190842464139088481409598680581335049221636125816163422361098466845213386020558698605716171404066204538980714093919207515001342243303006581544318330494499570497194300890861463450264837238882839502732537422951357947944264305639512205824571001617495345885700034854337153223135048597731723061331721235293085483618573127461243881517655348736170927570641896571691779612907092564036690960719597833796213155968518645822331234472210943619172579758641253926002381303506049044678219299167505249251422859429983699986607112614125971597973648742436828758406769578767266673105776203697167749682832520660636842545077929173111281686108362027635801956138008611485938316724007420203126304306035911081038155579084518213361008063894218454891225096789382915145400385844378030170338591244793595863799487760672002525148053755252311989021804543094714589458151083397654624979248374824501831504444168278631791256146693528564053089764035040423499324041369937172301356604956345351464054870508157568189435036917690518499176327042289324618505067231668957963742765964155922928134838831532593871134120369852231251362873980199982322296674980386381385362096870441543881110110610649775547191957222444310958779908110860036788090782057611213796961787907452059068420320406943451423816316972002391382803975404873490362212965466246774497063596186397517162554318429626681556236339376774696527770627565368784813291436650474610106707968337819534360109246316499792670494642481152578224079899713808858907802169722642924294861888748345910002573543551580577790439621216283831545350252863610966044691083161608055629849546878240161682599104284106256007622230285372275065954326388355762558275869445660819835298363213357525010793182184166698425051561671764018946960073238387224024177651578696492547866366919857818436806995475817239745489663087286303578885090492943602513795307952257554564670130292253685779859557096532754075927157693977559434184298504161019389305050853141185538297771132646010429873643754183327506055194909676274338127191727825858338971204595815076404554557435115892668711166523301397270972417254668755930117881756775281717364066059760524590218317856171291499006897230058539041360834232439139651678006251664216122393270647064016701231196102938391251228032382113944708104305905461751701539144961595446972674192035705793111125197565317783128476917267690943482850844556170247111973430109248026018827598800222760825630307103325350298978060691091153612023570273439111387760704003935354270540930502181135146349730535425553357583600131270301897447815450478658474869015656272036492683178082813643559225851952732678757491087883588398552155188463591941348603577717401878093052921951312389927163492907144814714727851067943956043847623342783479477830536340361455676043345628916767072037330573615438574333335646381021295277426466358887786657409733764660966352169113261788354249583308325058972031962243840176976876787098866482809763419962198872953772714049358659376104645515905262348816318600885529341275775193899494056305864951769999750792610092990338024740212352831622267919816895902850356750871031649058456763524389905830717367846765290816615824083790280554844946150740616162428216270853376512873627860977098145048445104553659564853681249590599978026557450022674193922526560273287123838323139763837494773085834491590909695609536722892034297365844125569642148875307402375655983898384157022343151042440645989427487433947508335209528469859625482776143905432068741359881337787875040972090189244741763188291452316823163918866698888349185776473726826429435135238008628658146080793853623651052801745865263153816451028197663745366608801098567354601502432579955573049805066227348090737188855129941926814684759031690301249802700997219049490430764096699754648115060425198391085999603839100308131593010141607569000523466415127654029997679068439402019281298300059771747759632358946777723148574843782610202118660963411397859334002244293980619501352198816799071205859915067299462388688717636265070313228897749679977581520601331047563043963336292420585667385849738488307270807889535320697059618660660478495969396966113451061385884887548293259544608345655405775128201516582374776429002997421037511201158779145777179320641511893788360781379862208479086470057774977733068056898764193227298805049227519710780916818597287256868568845807197846261914439860367210636731674975641077738444098757665024051902782279728859987326898131909312760728863528097016315356572841477406480128752271304588005455512151877124045013858544607610922708092808093404336134188526707938718118475392672264794278977332916022487549273114836055701376100745124688210322785986998970496423308875492784760717731038215133645454396461757198376867078436973563213090946764054582241781720944675365104416990819426452685607696752954401423042107601217435071025960799898448809946522468083860474441216326024408338812020597617452284845211102276093589436195411901717840184272299827190210658235803552051433811903755457005418505966146408236605559868959468185245606114138571623034997383791504165013775421892360874127468741225596094995316992365759386314182455694609578769440860936919246531822408502669572065326381629821931979778019752323922664646852321966681110074000586384298948744619218285272530185129130324372731101873561908618519211010165610419706979381507823146296153359532094125791264463136741143669738405718603074112529641232074761907996715019441964537077361575523004714823593279624425785819851139888136067680422953153479785013935810680702654458083241766461276816480701835135220211240666554847922807997168982302427153829878901962153980029143753622084718073451645466833218486201558713907924078778338003493498790946937484743736137305907652182461623718768026738801792477297843695871593043775420599593169333690336140142531469764105837554379510402397441552095947823721204735894200113895582411512237701593294527745729004314773867290390434987508622226678653158721460033804847070795196526631642096216233537660765777442694969984650451448324590251745657372688131442835527044331472549368295950234049070588931345923759049598623075098391555001234411606082568599251632003363494530204594243014715938614584244295150465636745339339149997237916496681831849765753111597816619406047993895409569662434616419357786817871473341224741558569331206768861614386791491940530525843721325264133258096402906394662731775397979634173679409686083061235597472295268125482016003452806573677932497999309688150354625692320336538529456083733275123572560731507948009380051634477799356872542638907187917736691852448812490816496158020493215181350767355689872635918542622379228204834427416771155627461582628097384772599834094921008774902508693177579620670556105615484415785181255408748545682414404912676681836121248942033630252456688380281458673723486096219014989874061763321651061558022641666874561844668443588202458977966139640331802439789753366376733604054368037297484573835989362851758651779821382685148189059066354592324027746047615022153761317650949201342462871192393294080977622857662819365539326892409145377678886903619011496634167944266801745053439780913982059369084016371648045999633850333616034327024016163246226984571959529739514629913132529291701508923700764074209572579049638917844745617661056247259723970082878454132983238936722358516990681281517900038735819726204296650400253600547132580172623131083686275122200761021989897975361295017723196725706909442524866220220965284429902337127985182991603544618875904291737358630557468190511934723105104626034479061541456517910474243876513615924430987135139388660715495346892024194048764006824738463773164497109249617865832211264437713210783848615387461053183337643889307084510709437535518861115879074184904836246252770807485824795093981745737644744126350631624074216646208041804801282367926955245591929766663601558136070044880280152148758706140224306329916552711800456693360348774572622855733900706699333739773842549832168850809640900841810905591664400236756633624000047034859326362634362397565143236227427127495359522454849474476952248652334123848333313051762622709038148520322221888053321329033551495878121025490488317288045760993568939377466064018822586500571215642199343038163508897781657185493703560808925888868802213673579951204903001220991922016847092382793982528565221726593277381801977090093189146099503608987427666692198958171745445762128105687318726787618837764308655519784698264875597956505910251166118223461775004746496444451542925663390000545204003468358867261609949420897186632006846482239870534112838180739509999377975019060197171887365982765187080262776198299348811509068301390328026180193533029832761607570879156849473281118002277986443797797277872818606765681959891833734700487682548066456732070747795801534751361969490310060255130229541540346986547206975491641796118083228852900182126807809347663072016331776181328410691372645676316057530701785320910174180213446693900188821550835842473810215691460384409637150554423901288665116457274261232715895605143045332495425340937268091582227829105396229735693036097733225259210472511701236707262169621381824792210015236477663680330895466698316811404492727050199599767674168375914134562414280542036256126053357749290039402084120442878260702158931052069458415904390944249608654239870865706147698011151757843654691373770534833497102803636223066881879795643448333369181630786094032169333613400339409526751417914726375316252724427266355626110028418500209815166334281849769352892397663140941360523124470499942370597847446193794276519509064248203672202416038391339664485897214509145493831388706928735797649775117925316645775526877130655993602011953429124082276496450423751895102516077863895946406339938665757395504702548817043560683089120656799892406225203286123899616292185502266023621146480683859371523690884383348071718646605040449374159562555973683639536197009407690369617180342980460824023365606892465717325496263791703420441043336458979759373390348803893819158154112822494286950602566052832662590969058959034084903978550517132967010900409991188364477707770994722794140428711510215587118931719316490554637496589891188116773904429322412482504528928913233700412018002822583132328883683817694450579044170729011325981591067027000655247747908200045187207137743255137361852068991458748471560910356695569553319027393403447828252512263177243234436183470187382160485303118206866104002127350253526571269161606881653231668909472991405061002644390500848311690506848988444988344037654262444540344343506156369728371913533805467374467538520650152647719148329981779049171858839993480548468812520054589567827000995477543082632641246452813024720725507877184826139487784154197991746241754293069301878485698449876543675916693795630741305916607643840449139518735628762861860434107404684607207927388636325578959942371166540120908998502103566872649196013501818704968994328685951981457521408212747125135301639513471821922243521802763458183939941118881713224601312724114411999582202573214245659799174684579158777900676581816901533255515146322950236760704418522846037488421977762009304014087391349562239109159907872144943679924934813673707529775183576994765333324017466211140368910307125493129547982763769402448875012992967849797663191455262091166278010632478947509371187340412579471610577390342457671798709126591018230595641377990514117136945114141730779865183469412878666920468606864042078978136284422854993244825981437253356096497312913846128366455750809906734619961322810468131279604889889728276917739491235804585375825751242246497197174804216045613804115293842348644514738022930452295929068945371540534613341095192543614707941087804633747671039453162814652538755945375732066605567726847368165615993476475428858275117820243760762550109046114101770683237915878517482497705697925945215172955457367814931797892618462307618051010756862189551262423454900472101228010982036090866869348603388475845617812452737704913752035907935029279774863823327569833243750288536895933415178936995048368092625127538963867373775264749820267798368572888377711031991829016491844766453573913145773645470591607289580017605452395256781039626493797888122594262922962762513348546955726871544384521294690824767084622210319093743083252344810110085440759049115701394426625543994047422242009020706163583249557001881217879624027001655796903062524693269243114409934152723828216835691424588794176801923539482509470168028740706945161883233411315619327130767403889400864324117482500641568775510454103953089824551411545553422546146552939520784243118353647904872095453392543990757258310861467786809092749218869022093653123750536631042295688329555080638050435102122355937577631757688179525463351883734545572948072379755355080718541138695043119727016902164238218727349218318549547309830558130525766089845646973121554460123011900569389065178379024896939369293364716156320121789665831870084443991010714666601355188952264419693870573195317669247776715431790045840232202238315151214309430858969837868772541322638176465137061651863715131458318971441173380146037819509181092205140441672815449412976327433368626517201999988200078276957228117252915181007519588862026877742642056526926907994434688183402844491771058058275212249278714559970795254964577924165934606337747945707235512086963159701794725668163771476884597381729254648110778833230926127337358430677345053872080701409761815981764704449427339654682686364097794936130128012224220226586758411371428843222626945615687151170872460939683282935890103822686063413021096876550367251983468834533271157418764056954689617089034946402962309983988310631807704915812696885417590211012283585174891557660832485104065275814095747668361118305334718129996259258975994875531669820633308947858654138782009818574763332493795115738144473036539023266117254490100475169634030967153325798964192222315589304454053009660877175572828093211704072436409557227319317275879141027364344180306749156552582362114849863418733072353381759164417161476811674853474905710706691024293486808596759739969845564544893587473731129364163614494640036755240568268293522038085381565627825448657849369254799268138988296630255970651392647268206521783099528887604434839712093783850297915549088891574534916944340436149989296742442514531205787486677826991430645133173672178293885737969837220839769900353145257730905406560424733675603223714094452898361408669685849925392477273125281576431113670372129776194175249121274939345838649906385387171385123566416971840690133429181608018844347102002989163532271894711006205863600295521272153064730867322217224861279059894024936244788129110154584889068730601819322782310716335227599328988309386857815611827027830846036510804461707223454839164061339035369097440998319375806363742321307511542981057518949385182026185641636838876226880277852868735173396775234489211737907806885923091313963957452351100333595058367361818846374880290627715671566672158218434200882150717869708563608908244585227136179192376596537963885688262733968106750877719424224636324699151318448644439371451526102897015450191462180397986500655910183633645713053116774099371094531743538623116213568240720263257932665191007288461295841625358653771265940828694837884943676558895547882596766459894325622322000975834799829636305378553731988488749271574336546340015193066900865874058322903388013679085716227888163483441711138291895022716835830553127244813809074247980091435488155481062353307992378810456541188867545719980937603088234708159708704064311780605622902586897171952136097696188924408912485383169637643572553039937394903349039708394727979828306224875398825074404144565441634230345425095967798148090641303621977634878597537370094450163971392358844003298937922012869660155470488199850650325565129925666864266242262855792937530885016450957851797706516445230545972869858028999704018211025363054283084449765129463895309187394495246222406509720527311863507413302971833570641989935538379284548380021209105026695682744571813092642266668856941394533315291187400193438877558203787798544891819990906821231353763778703970453583646591506934978208515003404917983864386737795613062682860017017209585848555370683264237896016998782744479566162360532716844214910478880496553014090964400036942298654031774119731573684651805573762862408485402250781832482561698078231738871866075680572537996203179619097230432247672988125364830904579869366784514595381093724785797866987484379600662886765634017459429329627509605166950465659036143137104194511773161050269099195847737042823871274524002753976463089156811876271551161846288670741950643306214175725654425053137636131917160782192420972777807635365646427541735170386221222868852334896293099271852206560615065502681038023174605110125141736612733950180340999377951067300718631279957376060330578222454809335123407096295146341869696644165264553558459490595208928193166675976146512590833557108373368418630994636180722495540303480128816882212651251841116686537984429043591050859921747605500684103000063601298480972228491233483529838593158865521394226365514487334205423980535632843958326898142573814456444880087497034817395254682277833346364024038680461927469275436172036446707566718600216767837673446349429624038304372446305495228260522456835798775554749343518272550716423252712496104875863621667752713801919691853749441498448750898491320305794104976929962885884894042926408859646956079562500982182381855016510183893722879060635955454947709029691898723232219039421904275987290328494060144532723578104752032113726823756123480960616385271682412466670875618119834852787388687194048980573585804697586034801737434185454144659539207230578457723017770569388384858123511608127233145216538115968058166103914200912733097709650838610391474212018091653734979034317824001336292207762397154694291723019181449521595927905897553453286453835624467184558361120893637488700402628125379698540511117555180335452252301552413329436586306776685944993611540525243535621831347412110719676725069188301038030535615155520433893611744045815426712886209378386566622099283119136247928649662620765428422313790012945127219504636622639647891658782385543447743188894891018583293280058214953963038832065607692660137246897709392706717689108494822994984244130290934737157811126684856422868790297987663474391556380292874211861787406808486198178090971541183610691561879995843072633833628264381911008287415314055138317400224101856316910562727626815436237115964447378095318221494538091528658371706154905347536630855779088359446952263305553933649757648215342976702062063827462602356894909260504554830565346151966126760541899294590296281438077942710077596242068759858128426482928551947376333882758626390394779966629497726442454319845900375543091864572296609670005275510623627888154270753594348607448477822461973405172053218363497635730190128219004851270365064629443242961637404639577775460826673194041853626810715548895265309278091069360816701079433160138158203845138439550318495166275852881886157909796155991132591080064624697296267943660769764691352029029224183650440727647582207298299572600231141039264994438972867540548428884338560136855737883624760962707574032326380996887302204538042915647830327482678944012453709015358281164037275189980313031509219425381461317008223431656924265402431508889265715395348074875194578458013366928119764575309679551233696079604847484895096192413689550489639308532401778247165086128413938374209251457863797472541849505255849117066816105493154131228025263745543350569501567455938559228209570310347737371097434959851544718196614225108584047950147579624006397079030161601724878380476465056253036226011459113065243368441174055795876928451265399013755385330593849853359778347963048030363157956438191575538428593394751731885134539330688984396130556244362034950782769630650210247709004171945474632705787543157229162918943065215532367024821859923633287152184194176796328965063047761893269562283294945322747496214509085170002120018526777794762812651451954492045382583864166293713254251417938477391013869765301691502817258251642680628386666131125623502664800352371775506852838516375948746943737568607279752694118214107187812047172806705266535646167223222678084992267229120036905528193207723550462221051584283081561276894199694468126973848930197287728717320943839319263979944503687032520208404351881360130630461918959478539630598155444245086744900968155258367966445504771434019671306090527252941652695313739067929351628661989342651530071123376047337911800062585026781350942527967079191654301972271452621901028424628666256767061818039488241436722358785421033580507783675032647092639556381497170413707452466994124782927223057831465036990319647236751445821146450254414870810077786848621644238583994635689255279076335001705141556259648203562635948794208330482724982949996468977815691302981654231447859306249178340867901276406011666910843631305297017398809568465910875089383892042557632674384157889956779295692841728203494133874994281936635906240273717317372172993692056331915746516965009359858287466210350655177511804888013113496677413678527263545339208942894433932009761913041041847111267370853127600808587357988494480794733739125933602637058478793342595733873148929360095432927391926109483022691707040186360032332692538684349203062944694453211445346191731676062749569654862590280074492045998330481888500416052691925557161874575094002206856391304498121819038296765234226055555707211427754309253147414193347851379031503903910085924819351606316443017369370562629382762319272745894511278885605269273402042458471889260134879291939976246053930970659936566872935522169489968691843823962511756722910976577239847247486395716124194781925484708328773116709039381545081872666209542065546395083125471614832265782160848783576354881738327296131292304807430542622840962868189587484623108757716356386126481364582337478190545749452642815171262123724418412788424248118705536595090578646929333977910367481340567310904017436770766089992669344784202475133807307366658729810270635650977170973553091727880355786745772150694596722454801507523360395912074582101533631408766455357125247820610224538588595875876711273146315979840876938255863731001644450237745614644193198113686438759791593058676846755888325971193827311893229100556587413483949266038732849878224263395609744465675863375578138014037171444187696048915945742597918820268492639776838093347256171868406187551160343381939197486175952956912945227162233221598862575289183558630735565812235263762411839764481804531060951910806621973617611716566822249850816031913597343881409853406054023990536312111567855791426850189189454846155326264112186095551749773883456295685202463573473083821100078594826703888427511411863493400003561516667043915092897965288262580349698370772570980464218269870974581572888780266869606316776132995378512536396545551713312329710113680738210919824134619434316588834391945820773689943993252224697664300701078474967300267971538338340684304062043132938013737427946517246601167191928815925455355698771216028992579294545449889503243955876455058888176483060758346032531933689529159752774096340388121835925888812466382679142564041715265567957010315436303437864287174827636039512836323597782344921593108677131670583504914423722994780008247137830808859267634324090580400352878020784768189941946762184171102862754749446932544311654118666050140752283837239233949443434347653772330804179731916562749839760534917721122222067441974588383548844346414515877786562123435848013167050862190263184267466609981723348177304295907148345371068877500243312572389586133739864273110499970748541912188626543011764529763617042703766719911843738333460954262223295515091970825310766916068488160270798181306533176643198592060299244811396096031379353245893925871538464046919469858797210544876782643242460440526715995526316808395944724501527940162486664412627339618774251617594447407333052855797531568881434719658730524677336088551801845846050992237452554508748998989319971225661550709253056691340702790476893739962698689144741657243746210954924688999694161137634890318798499032722827476041557353709802716804169876495245209171002758715194861920076871825806515376981209253036752607941347983395440770118224677261294676540362065819016328630170464159950771262804269450801189900545571320059718740380449837466334611162606768082054219677985876046711750986743103592479206854369529760966507270825946564424786060810581512603027125150451542407032895044595961274332603473922550190645143420983250911260981391823725543307534378010915530320840245618993611732012409943522673822753972413079015217711461410447492316060596588919039621004270038552498630036674950998274352706755891157438935684986282958027086861774407485141304302667793036564020179777990279865223164181510674837113267324312387862917706725916359059296097938207293427906504160812651440735600346937951699516706524566423310021426125204761522593994152270886622074753090153493709405611630935825303560253463371923910916804532271592278407763820141118583103014812142662337261953627037926050082146960664702434490616050266604967287573754219154126240449447917449515652584272109059270622651682476417917332399706662679350480282699951853347385957657929052051565680488610644404592691420227423167594281052244602743050116512062410399489344025283688233941141984373177985864473207551621072988857824326140948590804261528350553269477713327165822349129816771137654666907753342478742258927211396407555963451484353825985609607036382265169948463801980509756236145958013075693172400753990430387877214096669073877212017323805711170287487002463201146567682090796871748069477819240347580006784613826372310074843338221648784857895300848681124662857936298812867677641510021525154891444709657319077472498607927092721461081537505415736131193369808915854532582668283185891059746855073886908028650485354888599496535382372027487390701500566057904358615717756272086681360414978105235717944828211951422630342856470336990288013568860848417565491248953712380714798197339127782069864973018949292149822503998619511612051675742475341664298944568175389854108612393019548216908901296201185115419104965654779943225842556562151043227975865336321563183494604813746113138147653887609782055643240650703525075477958616817344380168772260305028534959474527748865751582249493089212485282902296287338625260050065527439151142044359913416869770625712638777774671126904392417544925078580229195455846487583120184823328962643248553843930906122491247181284995352273612985423795166644494257116861635786578561522398383327703411067276606268996974913590903358604050775887094874765658145454988590607206606498693485187489670386797140116480329262171548319284320793958593921740311951901477154658985304069944095681228733429334407820319618213245935612148826224803103256972721579879747920246242051533392472718794648150910970688654157723113064317939712622045404997203187434195746237985578533923484822558885202169746777813604625236503428095698823887614296779489392610567401843466326231455778216076790368625258086926634011518011369904758110928296784031361089327243723024178477214132306598138575727673170359389944295744120401223274767473943027571073596163147538441686078886179309632180786203553637631816441538743646550118715747991549814484772361852434304128625932592107407634745530076622674280645400619035733915624647513306036138673058457263984400719881732571990942411474545407886212936916636718136403214314718191264086106834497572205624369836792650944991615727719013749506083896546921805537301160279613878779047357104367980439544887837779265075172645901586003432013213335293503618478536647851895548072407169485491017292641258951282569379231384660774814469772220525107068857583276436293360572075977970474317308182544450552215450301441227072929632242701692730344184216074080245753627162435496266482576318840433051768624771807091791799955407435036956698895014686807107011140654051494414413344948813998446179159230092511015645145492802001681975243968106255000384634341655289906883450935118992913119027226059582619729363561405878194115239952411437492555058232767218603662134165763208365983600830288680758105114211942836271088739571756353283799000772573394023519157590646578422288418743410582854425881384863841649942253169104718688794420611861046284082061509434506110191759579468625327018243060495077219941154983624827390266847073624707409284234045476571724325953345009848993441159542366040755383636152625011833862695969821623988428512678287700923589923853568626151506051609077405609361537557181510697920113857208508440677272492429331197627432270135096191482298403666577139938036168221218315978283885757505609116766208662902782646625794770449431493171026567220164905126282231332081402970444272012563182784694627642118389958988413341398739567600146201438609596080139748465183726354308489129407163265792611301692294688307351380379391097054093262719755285213896460472420740053826059546924387184597357826046838260472548991671401953539515672745071249321715791785010726681178063188712842263348741817719428222040242075777172222293088345229546722262450870641026583130162944088299799595073072111070124080035721616964840235523471185483917399350926151371543181320919390105414637651257585003896882322930117036460464955484312558969194690365744333270338100074311693824784094641225189961838775297300343096631700268710812391649659287603712556249630789546194721551206397375213952930368408248964057231406607759228915255541963350216406016081079854747632871516397507678754998255932834280557152046259325269075724747760007191703464855425676025515557538574045961770140573932588525795447505651623423861118903210023499457410646634876022153581243336537553313221739674754421455678317850860834346376859203190846523112345564924666615979110064768534871518201732787733879285353089610611270694682027995635038092129461299414956381343200172731648553506682320704791501874169357868956574771817918776245809416142459973281718804031919421768056502954647687599731140634941347203249587409816169242912273062240939199322077347357288826959338163267012122117044818617552179213054860883795990386556919367040410721040257293146983263930033541313799485560509853042154965618997137882235807870523001118091892581508370525951462926070108658735734796627240943412920728488010247549963218279872208319552955518415063474727858289236362766819170181245634464545509369528025982298569682026207739217620011069474015916559748167160188871406635084478681637915199705375808425052853846692468753327455984427035881053152092811218372015633148728722114168578638206595170626979337786367791170059804956524332923209490965805159998126873746036131171595159231153418286875263740748943573980008370185932883643443148919562647211681084666485104810659002204698139693565625075208772473808001617234346944940736045923282266342584890842780696155132957710881627667681677468409628625168120091530123054029894596159535840417541437191191269814084193604153426451236479265142852174990609862863509935543312746291283624915772519783931004223795158260150116307363909176655317344332169385758840073809229785861793820713051864328174323303620718503675113117796761520117890869767843006319314472891362307011577097852022373466196753267062802566511990093688703574766662568241212039773116461070964321837484934049804043817381424071730935664429435435984371911288673493172215579205272435426048397325893063947401101193743427291219263570043466319271533123468401915386972003178574297489508771721288769787300401446560643713641330513022018426062943344597627732911854486193377916221240472113561267718182896475942865922749017084649938518104851964880696862351303538485236100645072233336201454799287996158462504822509692835359752791529000533254875587254693956971561538335100254007319025899163859766659618582677005920027811796583890986031075050916766941191527327781011338894705770469472081474933006637016543667467349420443264678312025131118579808899857396484090839228550895916262876156787391715397616762678901298183320739188305468348252147239705621516886895172597031401958795099972313874142923590229985346676043926089603150019705746732205153942876206550649205423218862119027094560331060294712942111111600281846829731046377292280165634845071537340149864089283493131309181199905594249949488212775797243832459000247209090569567546639728970699887382652025032972046021693525629816848722022194923530321641920608376265242617005944409535109235968229996362059627603736668961079801004348014543411393691681867052060905023007282869138988438347296191722159320064268275467967215819318492420747454344846666933225321505809003499021475200357764143576087017989449441437002340377235919126762737031122764869118722390590658672336236943647060230536121358140256399579649527763081153921417797594692009758417224998337976091788583383136290717484266069979225956211626681226368899282722335351408269342843297986449507171360931422372044879661443043928354077557447656430883055632522868200842458079192727467995551251286718597171736572112924135797403187798022411415515206799914450592871504251669575938125933845285051123220930060652884312528974872683739033371842746360244324041456826712189459647721044216065343125866266735546431007186692559948325427576427081942337095232820389873937517989708243278181824109503354156391953482214978680140660958108489189565096319808055394430088353893232907331690413304927568005009267438486329258638841962633839957550506314012453502331762621401158884098986650208490579820714943550032819328440448453720596478168688842970853281144261863648194700033240324741255231557558446408471098317205137734328311298631077254870260126537425824565189642365736848486377939910339416586685686382815937570357527786753960017268573331158767983613722752855239830606325099381619504522442850689073955128490594544300170399442026515495242156132593597134365930622669858246368833555414798342730179374737555997093896272231554337377915100000730799973522020054739242093997549248499484764150470787653376038452283492189290539946157471486969132939055018347101801069357561603338627180573290978153908466544885107456541839611004311976891794766520289479372963015679542793387529284536619532739343853766126576597517726067912187630027057166645381695667635867132888953448952342843606701079701364587005461558965118983878256853434546892523462780497195889260323270805535855265813551197855586833033021554347201390831286009044361036681604241310770740190030561090455371874464534578556839007334522653789665616417217480216185504004737513536408460344237697717659659456082862966219502772014948543483728877964668371297961181392545214938535380026785733769939683404549435615494893800815760402303389662665537925599201760385481521606195667415670786403925842943282949762360408831872147757445108704488975659678606984848434788100833672119587148733543318444521177356782095846129815244371931571690158438528903063697496135009001938400472771542258942734431359688193135832019726846278762328363891567785543039265192268643554124476173671909686261472599973226378243915429493487078386142167940706679557292322167624140388534505673305619058836169376277038282254234727624258801165849488801532977797350421464133705083254707170859372992668953744878289716791786400730751468375319439768267279364965815734079891403456058492315284422020507942947444503325773282456095827944421172149838461458686258302909923198019488268904099323702739676616864541575239135065148105047035471520597616670829222771109147694998838571170469881753309218364735714679583139644304114221648288200921301609099317215187896137341393626244579175139480298856105569298737389004388994014522818714965272208924899036939767059958210263382501434837381337539179626700055434714200469613067727270107596857081538270078575035547281783641118006364008353229665165091670210308115278336931039356082062694443963553900150268218909179072624662231307742567267270381578283232826895078869284014291784509110051676886305931420332987448310203325726979028848489337821984295645976536243830585224027951737661615420297766909671173946629471761065601555003535630280060102774516217252518427618328365580230154118749799684869412666809059644511535981587153200934850775039590262582501127383459692942885232888561027136653602954980164828523212508682674698196731071024943587071904825644913180882015527991117072139200604432513510858705525364511297576893273624776610906769479826922008262362062918727225466391828526937711453816011362393117624201085843192931286805173861210486084321686551902562637551819874554293375428645354094319490780229878024665117948020128099952860511693387708374038908703392022513529696688166797699674905121054946793218431650522396787107554810305791481099081669111340498319087308298230787101906642327057272237875600635705948131396191744958438853666696364251666292064487307150336723885120780467809785975986050745063104048684579982118738202338013115027501982763953980079655857067987571884068793804640660684659401989752107230751632414614781295436579485747788225061190833686715548441127318681029589691924824111218895605398584857705982407832503415600353977891488640148436880381903023858987203572692695341172925413451775243867369206780883970012371532277171228662966044717700646151831339193219151329727621758584971902076233650920781752640320373035512096977006575655218152383505581437932123218897353247036636713737573396116296998593463811646193179396569448230232045755983409632511536233272563650640598141741912799181549980312221621564518031730809364497204217625220771058565763311710433937397979615726081452562453341770974119899619837377196631320601199599180181415656365868884538075200228260973186185614274731679674770149411113049698071971580972871493997461570906754901249162995677657517862298138856922415358927869506249606845226375199798149383497936411588090014702329239316710603355868639579042217302855487914859803901990019038798814076486339997428617039131813633673464749941743458371469979397614412804733635873382640766109694041398832039470248488549940531190519446240287818244192025767466911299182560835428255761196160067778303945914246465522604476748467449412826376839761376024366560185708373435960368978435863711163786049637748653368920645025194899823347493985892112258887966355283997663452780439219926711805276578352949515058036877289706744242893884021906851715889883365896138538400421731646206757904947364795851424912345560847567163834922960079815750509071505990516667997138890863909259847561891410427306006829576134089343183943078732853460131088347931388611661977723262547005671222433815583269982109653432297792431276568803006958196551729421811610954155202919363235171481465800765946557431952151819683841509711464075245614480937934640488093545179428955331407398371377381145410857188944666172166958351251895275872525912472039757687518097491015323707983615428761709828183829062662571286137280170462607154282601983885527403179447999324860172942519387384730095249311471335675312526342972367883345629013734143044891720923087257850326735694364751496359417622129438489706791610602075547986327833189410099654972747498891599823174119990737428264396732366572496091445737561126627051290028623493005760878161749246568104203779212498415902936789511304650628974913226554704409233539112632808758049553422394053533625714645750597023909363479231300440074584186452256949027817306934396165993640914368439026201217730407822090677415968389686199789545486257607152757675170526886003645784704054383901203347548291284891355020074260414675475488161792395020748213140872265286649064540658840334569448485267477189405081953911046933072049784324402031908213227527437705137119822838442705192350785223220115060090186512321023580428987851078386653554136947841698497812338914312310157855524738485498310716500628454390772457956951129327646358988526782240701296467110143771374264356365851044657551149383094449529540643998566513852387682642532369247524719074077087938892880128602562486668845222904302833803272842629588834215899091486764177603333771641351818688016733415278222283663532523921536817181980628624463266922622486143915344216994005459596973921366870795799707172835192340085983247692119248533934397209454037888985046541216689039591248920592247159145338823060036985247510740601349901536761931388814429130585258951555093586222238492045374384349437018905282504857735047346520422601137724828997201444319826560242600494546366291734729938864330889683249851523007863033442852705526925214404766960939404527913350042411234326940996373254460186415871071726320823761422490496152322027740196223497890209614703395923819364473029409038051444551015088810298259765253866664236953270055627490614071209984525660411678445381312786149940851688715128322170303332715247605584767906017977932370230748824052840664895161454163134863917233097428343856711444348550060948103916629226115897495865694472342773090024892722285903599102646081006016656230537109480025163403188965316223682203558128749092384731599962849266662933043578469676991264592163080259925495355024815261583645559363410007273328480761081515225596106396502592208384717526117134509872804205657383608008322197167316947522439562452816495617851848041232573810285126393096114126799544453539218327666575055965122178099803761312877234103946040448524472543666548341922136784477265635304410808751746572169441096094571554321706900248315429991595175609778963854882286408291685838467305175077113578233076241883904442288952427469308097420395907834085880850095460579661418348856184382828306671780508647005052368931861877304621846103867346568674519886790695028846789797809405743636882663314559110887500805894565783879472244187739234136731467251428583243838816458078526322275429133901080653762192391698800009686671205583818931433981109509781783382662281982619595847439200768697485745737046990179168574194563629979091862539250177005737517459620178713511370008103900031705872886711782951369313035947406533766551727897938452081006207070036542987954218329416393232032427695743481249828395134566050996325348170179298316176836056437404066774031552021794709549491802037340446380502576711386939418318158830005021540203979730479355744260862712089202832412752203902621140679080020623631030377303390579805809024103372789828170949729430487301540010606893484488947071537070471078770599319342638118959957726009635999594662365798012866563923472502160239217473202667609277480865995009317758028218900247146983361526033911073921815568900902741982785052239827408104556916091635500668203025349238778963754728315922440231455152036812556613087510506111050770320723604115540190602164520973391526188541248091310584002408446452980735433518310754164451433165815241300154392515336818399785226241321997162575905551975569300308027844322499557045629808770569200397344285312684563067376349994534577040932454767567085479824564108923870310257678354542066789180674432413160304565801955102650623385041502246650618928918104942111781957479323273181591306395599214997303891638441016016099396323959285188626574073860190755493953370977613990868015079399701349161464965795396970149235950004174116620512371561094922069682302332681866190450753826923702973895844899430835650854444152436679121400024167043371933590985493976567010740918186738007949323451790341081742730458095629393397835661277617659542949881601649481096593533675766795830819717125529273317476617232074319032732530315756239222161249272413070816461220071964317957304003936757657790720566436835000076058473891952769589816210943705542006674286900218525253294317946832814612163644603851807157900009165853187316319034663899761499775659414329743226306522907125181602434328861030000316419842836883741790515450511649117548803753739432022933893138223481999103295706608716807451086414480056486122552747785337109715014921184849956977492778500154549113028690006284330566017373262084126060885214224320586491369325278312595672157118915150021492143339138534936832549639093034842851074953657634054215427210749633535635508256310137529069620213526580921413753700592229289694157371642220320775714084717692106364024581304615101313150177656608254118631060414183456886428292864380130946446875492799621461648236346143640829687581122715723591333532479704241195705721806861741532523353195988066141312392637172372876777769322909893697485156908170362309064476490420312401403090137861710618230837984736691648999341203771842041595214499021688836220076597430418580413665199141196736172601270410160921297107481611573538037475013373495719521381369290391672038383700173282946502773068175518142206281744432917808259293223068190222751530467601392098205229461869485645444531939022981398782500996826354183740794259165125235262998127756370160101683563224211426701675397763049761307653289021735891894183217859337965093840574412801523081477556601192431752850346284388147516965612738037861652443507064619696118022036840362751376028454323152382397237615004530360310267371980523513826675804912982173191926901310103786500321208352378958908508393350808305610217894874629223746656483813743019363917438929717736355320140008242637587432750166567898335203165072466579912478040035270219838912712714721083953728389326638695691655144114490011653403232109465436504421145116189363982147604032110302246126371362907118262626341000845933390781616230917112129765780861853359156179368513321097951425169667091334732366343285794407702361007140785801930609195850751074992920294836434507142264216937044358543830059868162756213142085181498170627449320787552137597398374256168206967811757785973332148166158159387945638103009263784559047332190582077507495822886238557283990913314672522302565362585050993695995901581582552703288192533592447492793741350854769970687693579431200580323182238560698788079360262052474259754107825972015166119799192480908796793965155405055690420973071488537237642934763222393866042314271700787684970896271077210358547332497196637098016132534074020380469104025950333670338394766261454022802002490224231119179461802474151259893037989477670264241403424384625132330189496125770034834754673050808911705983962987968104571082150993785456571405024459285985793505935024429225890430843145094317272111215205058302346926026694262277468496457979976374269300848300041098693815928617377385308083037491305535666236221666769816109442642885037828170504905189558972484941137590908507621856857834147100888788443042107528846374790249952670621893868931920337467972147556200365668847209416661387241091025205179287741301698100181574257413480870336355340246347041155032246586554962888201682239981515540743747081985253169206938562521845550822983643956009755468643713671796622759894240294734184804559887577720109291385391155257587569551870959989360254985212352775595250100236883782830831253278960265726248340725283367553320911624806837112956409324635874705329425292147836651081213637995784865898993182828140728379201967489515118480177800322515085702843273297579704034498586941224377445115747005971716717997669817810888964567146468209718414288222203650473848698763285281162882657925708055902026087709681265081699130382741413801630258080038235639918038252006270239269320103276471973724031782351492427089603080564667596487636543149503457926442862997345066235101181806656709279426946252409329708183558891787579951593752097988297586852652481756012225437146863302662732115299854020359889601766551827570294500661401499656323191529531146289249181654957663432355579898491309101117927688442575227116912875420655325910327653117755036116879347474779697715342152951192243165392674848115333844532380924283982863008081318034779427463798769591726241382219295836576500896840058955172753491132373389014138266557856877691854427894487948180390581085154146827626255053883310969499282083232927748376050582786645749469586481585327740183465586224412282985714376598181978862024615847004340110311437713366243332207872886738149119254113506846409333181980389608633031030668359181589001147043600478376001713790722432647686721825295027718738779270945330105013972587088644351445157111978679897828899982395240563633625667563868026971267279097851202266535961800076052668884158561706323065750532389368745636040819186904568781855245062632786713243161312171768944919177139170446282005530128616223505550031863643459334717566407085973236984335082577361179637660368681025641875946162527512301411016983672320140300092802952551547506250319277699223427018206743126997420146639504501549182661742103197459449764193911470434686598482680019623532321485635700605570795807875142198930688679781812178639485182167533357195151732235318319184248804423946961412987311726160087959034413575286385016905612364183981122104144223566957413582283895995829907933569490635443144717119446580792264356857748877354994411624601428138399858952107900117349486113807388414393090285475978648299916557007818905598662432604816567561148196652814748619797889671983425878391483827283082069623626002262829481158291701168472234005712569070706604850207740945529030282724969108510003326441558132800869561719570206245821891071039982971234696591920293040751813881416497110812192778068127655443680627262927300676890571927099138683731494433963074338904216742898556457885055890455356489670787007279265029403033313593774836529741653549527817100500550718418943009908612384849569879378336380645480186594399595990779538362707920807745711622716333667351989633007571834890771933385259662523731989186456618738774519045186565448712516389050843465955790951227098433202060085598432640448081450941682372466207267668281471896653434519228254331095265538866603719805477488880121220133789844456340634874741179950057854292557049458431569973637019955974399657179709980429179068394327840477668795279522083335097535244552062029430941411836873741790815737195963942062898281786597021522243382711946478752895598723014079700213098929594860602744735750234493424644842830979961624756237751324043478534349825431618858606241368382766243602880498193200588306049870222719347201571083254141527658929621184613077297204136665393977678557996260405853793381149620859135283534895132549648539261785926638086140251352423178829091806111068682624320709244872573565956898838674681298583411344963181258290691526012946373384453644723572726238683603029187886799224788843263803398489919210820244395634669356689368171527073261052495712038857414772095395148760482038464493313369783849739899817105838309721805392078052475510895801371787679121155906888611356977945834917620714919042952931615051131039126794382484361659970386783579957477817599167438435078271771883221601817246514656852406477605837755690660831697064372741643207051693043391851764293714878299417877956312265012321244466342871804534281629208103747774224399829196700559104946290664080672357188621147331778443198116720864212853666506386476962503178268586336541629404497561728852619876624534506567630513616896502643720984296583158082116465930233705051528410310947600058492575339840766725085555174539536479467036169863359619063174292193000165401187047797734564249152121961782283341933232488394189707150587235025473339958139368876196068261481042834211761447629532241053389704913790187117872831478880494170665081789641580364455728783935955425523292960392460850858054971675505026574085116210866567811379051358639478360822719615113436428676935407963087756330933788149352891170890457655717475902715635482852791360909335066602951328618683466206995726398042526765814522019128735812844362081647118184347593529295720444277113825069930810809637391451858979058249582995202929027418658710425027364997914298220631215536972816294065489144936164818584542048971102980141158127840418996018454005194149415954519446674346962216684875271355362895214671154991906035529618104026375840174185169361933435864968523440795424951020363499304516836320116457148806824819937334937713883687965580142726319946286787322862824233412900421392196673645547316132451666355085499705067491313752980597757056268480714866150671873879282898009792443154192812747213114736780804029886282629394702874291879213003648798224328051712436039658636883639386464035360598720827449623015662534039241227079953899754922198314556089177194937612544708014367578966921819128987225597604942312163360409117623430575266040926666346746842155336463642400359467260352968279022623777666771298856862986526354320215827769433562524276422756969663938694883355982222897721550587953287284029810703875401984577706306619153459183153563172332688442395957971901766188376453889365230674431147300993554905777328313126685377459728722391713955720435923205443487391713880750878846677958700538274985832284131439515105063504776838497034772074295858506799255327171266968917597130650107067309296833357960928073922782707154394613138265172161218518408707544220287623257070843436295131693819309859709028801509115103621639777857513202246090129669986913040818707932000289492751511461017717762810032225819774521399510550260211530169336138983179867795228822825401071577884172065001687122395078372131302661805391570282520228115783753673919797106444029404341537117237887000582267540873434189270924297539054525702440675456014347281225988877603038572318815093581006531156995450401799343492047526377137747847582883124398875104412323093175848101071826775718467065050397350348894595028134996882779616113463538483513891989679284581041201943615199881405630972661259675602887225154381726249699989946611247284491660063470259732677813231808400410652427326504411374450588214012827987711897680635356140105242212852976858804118194992724111161258277739132491160040038161046307760882669599535607479302748548539468558799582434741674423031218733034708057185497945919765286616365608441722848148767914217490233372579564869975995890372944599678068396148248927488671466527716811424657566793339053924797821769684412313885185140555294465547461985819069116046629120080878518625985451518943931027764048059329163845304184186748307324598894191893925165469302379906774779727808165158615698691334608032275591495389510704438417076247577950050015591081240932663487239343008960607792024287342760139624355027495224164093397871762975800007317707712704378376400440333428405695604640350183372879484272914074772856436652179074841091697896171901108860680278443138574658917583714208793042674937539265911310740958474969378820467745803001116965557326472017994167419380835922025515887753131111529891721301508198915744856276806320659839149688580952150189635723088680809378330153940523144973990152994250931441900862935008594252081008813627599519234486404426699342546473387357064703330920726626486901910783953321910391810312399448882780365368631474733688714864171970014490023601112959036625699846149361016885594635961385098944182342078426229228341075840485903697506709968820914328746771598563061132469235876441298064201988160222268658363013656604750484320088207334355873781505037337653688369560022040392108482090566803919889488327488327052000359025258797804285090925487479134195196927043311251061820541547034228754033383523196490175814003116877848269392445671596199002488602278565201298048161350237872812002744911647992880461083547648444424489883825948592524052424680115776323696712670937152020126555894323647656596259858167712588242881216575595819645550733386286051984974009255695922321148577056113329278000253894932557661818907202711758638668074248702908829889861974619106392532030976747174508827310159331522946734580351342139605895957226867973170811701031444034283285378183012476623872644262240996102232026323068120164477197782266114025097242954755554017005626487141127767444812867480505066907780718460742091530742198191943221534431710739353556287348074963629603162632737504748961055826819122955249802818796746815975648542395120963458975386247709445801651799536275928369367982377636722213888487726097483560953030416208137783861999666175241300382763982646543916879631606152130385045558695114268110373931269628937498534164493093695239529155142574120442039120794937562688922474848821716106323656078115570759232847126111882800784727307974701110867231865748404879077732742921557545856533734664092758671992448623223216916712066409840877216776673728333414588841811474519727876871757768036379256061156951958314231048953621842490814735109634181257931613405430429547464629784098400161631950567594013946694008234039934465188082083333833763126772301418555283120095304695202802831491898637203710935498540676474225827536728283288561609750809363225037821072099053994762553358627013835444214737571164286702352723088866277958911463988491557448757915432892024353420227913427504974358686869945669113530690559446227053945957498573776894901980134174588958603293302897185681766954131896410479710836929664017523945735266396469521513294834570332619546369938032496044984447634432636807489867707487242280426731269135422156897466680412959204721223218589340573814143615060034466111343920288246861287186693041484646404579466153172626692377512269214233730593613569310833178957122001692341022099668450381583141567223513749559508880824740255911374905679249197948848925060334094217233733337689133060424856218836356483573373190433041753304794111975148364084245909339987269291343828746596784193436909518753898639784312494224750681392426199198708061365873959227563488879540518830078100349744816445932958603956511002109938702801335791371605821124292614019346591230697006361029873097949282316623743447216138370752998255522546380930275406546435346217644256422013418211164570044359289305721489804856459124639601941515863492422385763730166526189842859295736139360091204202038614444704773781200518271921490316520271216825285363126324348227955586093341216299292814632520575604394961063301898555733996185663623600908534043959768262864371925165523565207538599995224889188160138437538176147564848533389323297962646194831958158251275115360925159848741185519961877809065236166276063243694275095320345286816953786818203830325295949437710342144984847168299510887824783654264722071187302588681287774908037128055486682315656084729060421313326446378118890540982386046831473313612035425174875886645548577668008124730611432983150462806650063095882706651031416747242358272271287787683964717573110397865235731130842520236067378714020033847046151286536917522613956595264560257049034400496003342875758171684304816091775643398984411098521177292106994959643830792279272459551326945197851805285193506544946993374300885650523939353856117254325074993586456522489748164778413940382705837424177637735539367374815416870342614677377056410975068866255899638417725371208831963974609023145919829935743747547124525517859336921934987380346367028539275553123897295009434599457643372272824545783049531914799505624781152480705060147364710364841336573003840789694787255403231178971008214003857832645667362629905790855877523122515703534755366343606363192042112358481317869535609067227920848354485570417177353353384271063950289836954929729224407681831946953649008439197615999106857410363303579779609565274906638725916313920942769004887118737177595393679325739921779262902672912984119970775566677387742004549971855293997890191008772532272576927351665587050011330725386805685287069717002013308918295721570764617447979816294638996152489955794360410815208868243718558514116929959986442653702701719704082334848815276242680070306231506146452344062292667191756537299120167668962124897438715893581206119661783817248300868692097173469742727600761183369592220978260800379354031675800581695905162354625196334498892182770490195549758022943023086124675395893259769103935257453512375216084705804398614510204823595463323222648036568456390440859124129354230743131770438698349182166252155611015364570209722717794217791453423775353376373281874702408512030362921460207903214476501289010550059104543275544590216754117947690846934833584115032419692424034968338990592844793532417664882933848214858586175369655767415805144012188811085983140945026013844512127154928693833321729835962893727852460592343481922091515350544073215572705221521152511574383407722766721106016831729752674727912913462029190940533818560092364160283938003429917742003459959141223955664153432389771619759774871414279864563169144385929731248038443729253224301417909572964524664164695945663439330004091501634572286508153053512585228069400019710170307493727231877156931011406855023522575631349576612696613551261560824687310951482473666114203906299428321194197754752293571837885806375953595444764271400758480682414609844104626021535929069931933739834572996270520800205597613265070149549443953580810074855641328962757329945088677964240718532821968322001796051694835444932688350019186302842334117430828215682501979585377578563896053028705275641929236838483113402340873966121313540743960764105514051014934552527700254791493480977146564012300662645968939322671935428322575900040004193654778601698151343512221740329748370566129967757557071333848757152740554868719385706515191897687438376951513750001262759330400624382360378017770602316664689404232029858787624949928968876509033036873638478022758515872544473633493368504554665386803231196597204250553272345708406052868312110377115935594546430306856562142234803103692145797581138662786343619370926066927536034020565465622587260353273311297035413349357584944556907583035311749247400700587236406778447231873496134793761274269874727358746800025125322445201564296230716654789615069440910320103275772232041972488165147942833262446439063293816831362747243056147197936573767428611387983118342383936135222738657391302616495169053578084480394654463429294990373460525800514324787127867911338035000405576784596700622551333093604033437400226750697062989471470502039191438744442859233066687156120120527252366174765594801358681728629138226310524582342232150212797344324484782068925883442462629161927196559832459249199973672512794323456234582949855878006895286914844667495727683515756978763042882036120669455140972133205810162445549916891404763449806207658786778775079146681907508020847322636508837243657582292306882789905489280538015229261561550575150997532977116998639189285239967462836404269389000807387200697943592176404489581437040409416285654633813728603599861015055367291285383704213461388595795426154601240473607581244835919568480715227976942691915723544082002235931192635917684767565558119611948360689532482876017671412013743590161057679199791547404000330159387483536581806604108927856498409986476791372040509658720887211631012289178898872298294815996421443625076959576314856299172809517999910315154044329508633104283673976420992109154549054928549264908002502253783187725253667807370060119711181650976931221516803127844152933998501203910135558912417277422247406065466802640646883609615132133524912486399563823544955764331432933151903564695271656669244946013308995265094963988257517802194582648650353208093574610605223453621994617410823285251111110341974448290990178423980644240053388996507264193109517507643722803078083005012552350416392262132724419701380809622246387027398707018185330856413393207741975185033105836223418354600369351199497749165832617268725917276143967465450071142611917007774244402390220844788559346937859472919637658305622300688167373388504783617800678816877086072485348464812143404641350690528942754858176894704321469859394650372046397506285909612785519837433587099546911992283271976258875532919502852399257665411184890452180909146839576266403635211753502641294678818774834128991889839915111316285460164098318192029339734656381499242076996216938390788444765980493685525578438974945663923376971998018025874703416800537231920839626040158307795318942734800849733429879944370906821706031640301191945708334856005216043720302283556315150696562315970747836410664563564815809348847344893030340708667322507662215777626816801615170075170035366542143518706997245398432391379497179701226522751768259234340270645994464570437904433139200503057812110286125586977454491014648672414549956358657561938947535436425822321017417367227702412445068514367334206389854739065502498625400461268744873246717531538228878346505123653053797260396876246702454979279562982630059911139438120535268373484647246359770800353214413952064157569799653438889150452447728266079101093784224999398923874242651533968154630612748077080106003874455286273255954810170736257043819379694042848375928484384733349877288624400306787043876026965994498183457855914944470339453219385816927741326169762285527567586817826563314816247170931073621673710352958545276307861581449623276999308881757506461354112696832245202080884048226434598553386300740073351884234279600636497060902639376060805117763972795312936797743816052566127935302374764419977685490266298252017134964023582640739381595170005161532223625228454866937141017330330605347099198131548211965518935142534237200617245783709453926762988218306634597793253324779900396127883773225104508622066039860481377290635012286919818327912244408593364360408626958095632097751415127158480957485897821962095458098276687132278687605994356388526799601747607492953966561856606026308751427570941191699024030010564475038867000296500194288622170723598744731203092099995823640944563552017589719555734925290012704510179497517566913482309678098540526503474778309772307456796581190463486754830762050157386153019362864585914030005551197001173821161206411292519836843317447605913525882409550281161884892631408511863269933872978568116513972068401274168028849684043161008381346340870479514069067422752279414293369139716138050693248439712156541031620193885563166489585096964862847112887382110645469545172438199736266905085396910132356671287897978180892327464901074807506290995308662576678175096771891827192077448478647386806177186283412193891895902275245108304474176799010591731734300349921138954354654798674871258674834243348411804477377039102261230217805812123441865805941318256293897682393800192756883850465642999441677070411044708507637035581194435158414229599149038857245028189318599520877176803543769162389784300201743497605549248181762888068147314024512705007225212270661761651383097255514777171649197113729041154634847028375795158513449272856673013664806405999748860414343314315201959049753285847043469286701416529773847481582818405929953477125793750770925218496217466393894067070563152993150935567511140630949453402687425201400106440701124426153981771118984970025304074892204845765855743551321851213399117302369156926872567116501485666478347600193846576745728669905574989563243714350408936314524347066180713658599466417968186616923914673869612831478004750659118361481048371932738590801411400118655400596718596218493061262123376323673681580384500426464247664871947199070605587420614302272507808146709690486806199644413926207621044533749088284541100696980377863325853230340204571507438881434461721809567665862544371499675392408922658274312566687095125110263078891679778599451228059737939270977040715644864446711109412239290733096705447485576133870228256663702292397592701822065275731011485669583403746970137860564301269936467841272827081408802776970146751169204884151723202241722026173826921268872795187493746806073227725885366412474437417466654404274314636190449146141033364983062483535727872733635616732172373549455155747181634619132718166897008205602932340153983155902693299176214077067355243383726630348026094174005797363614073725771473237289455576041309667990307856032261482599949544478132195184981990716068373961432743192544077772329286761075155816239436533297140233675741967519336136659765222236583067175723273657977558501551572632468070110990081094013879790228583432138073068619341226728837643692870331267467222322140881560759388032560651429777250016591842479369315743855719930611997760052753724428828175041981558532832958387392675771148073286198203901785424737188825608825557794381914030657600494795503138266383650894497978147155261336257554861257394210610051190537097509077394621581082582870090580161590292874689711226938910617563502476814337903061821847190009520729539102499537900309504740995117189733296368474674433374661796300052076712419719353048910114383535810001956669150389671100352442132414848980853609151716119636814882862963273356053356877189446848892851982096435519189327032264697327612247492859153078421489520637076696380443129193207429614497153483393267780814683147449036812363426493433002995890938378337334193169716022979328140851338215994133739762388484404982715580554221970091388138049094674508371239977480205946068015898131310163987346614890357073178443478706592049235048399451304039423877374826856661588995861748018423602390180601472128611747628459617167187431414025801094807667396267186126556709046369392474793204941987670260837392009543452795441831717502861428752270294135411054213868042370573437920169880809823456661163026543705628291020460695448249359149199505242338796292499742154957385996057799164924021647701157195504018829122897465489075452118434149072902302671352109275422081175873423941782640385933437695790881397449315859405644773825150401672376452107796242900821845872425673498989591303121727120911269296285955820133865110844520468934503437484492190821758560766005984826914398513676429328788230459398617428532044871213127164495300670779735461468229898607582864297031381900722812408247241103658911600626433161454229422903129025148075216200899825186463706288968171913558089166412021355572975522115425805566129195641195661363651428232595637736901152266790238432719781298419315091586383621327711527907936623553226744753750703698554702885709187291348222898676946222373904563338095148677703209191536512060728349121357047915887544855641259208886234845550577742678668043826054811292829713639741554258521217744676768928982686422235628144551633561288017136500153926853333895625894984437291394689422600597914724532019081379925648369766635891855514338625541771565866609527763940613848216471833024620804986514078590568388772512565817454773346470479616468078494560895218921949050015611903428722212316911429162747139330851191430394052795765525135916954130111373041156155783473666029716032997955796681286134895773753508165162271600749344830731186316627770521228125449051728366165987126566518714359219931257013632386466891481179751783237318626685901677022446887925762548963294068545534569579476209829792915035507879079948436894158584978670817136933716792580129251801688827144570514429500472209530873222076696199796821001996673510779883686752965796939539702516490292249486505374334932831645687187427952306803807502114576317690439996547741589682503584010206158889401897782224188895112149945928943564031768282050442178399738024164623557238715964312478324877337593873759474799663153256833432662696989628949169041239316485649754900840835814500454013749793466814467530012612266409343631859866797625784946163044042702265003427163324787477312670667115054920510825790734822486636981788289430575931857503754245335011228990329249505444962933066314125834715340507602114440644633868360264209510001623303878971253987213256505454802894365949468863576874342365437645044326443724156328650569560998927830795301865531989299568624185412486569894688328905440524398424155714878904743918892250451433318944632288208860018718431201097436764036665484041304071910698520045639895910948401297960986784571159729892789014053541741708436965233179884237318783573494048901446452916995370480019552257210271514962048958342097164557453389320452055732381981972536431391270719778558266271708779003977772358586756840136896595019790996699135762997621999745573063484417157771199432561040999495286633747939742902044353075088159335283630921797831121084753630066692700128744394060488754144411605338245141018647721820585589921716089632895642476034355857658810861393771866410583386830643722968570856377595212480829647989597174002823641079424562138852862582270812180794971118980641158774845499902921639535114280167537463566835223836517245507839161051857882890283142152535479264602391604642857701970300338760686461378470667194949021556924504786167489150446562825382753387491274951014738564889049432838234592148322743490263996518662508829697757259106456124535634938349771772917961475430875493731209363090028311916272902732616115812348922429401074628095655631723805859287480125051744009819878494838767289215307481869133544192379945308534883953281691844133624786175868412351354378249787008303960815129213462279702406450492448104770277779250845240356193108134470833385678396465522543151663940211330773825474700135012720904959183399345081271260835826626853917747797683007799735052122080577462079990179086646835534843132776322669789496678194720192614754190583970346586749883684153524540794635322798563982876196294497670168319178481519647421798237224748753872839273074018528682532189787510238584966985576993596571282320841332575421207651064013339707862655839575755166140209051397524926018152896823336989371662980605696432330350573829269976871331117021778479912896936838437991590420340741874461505034485160347794831417330614040270956498062440130943871585309814620483239496266072627799519409110730593711506686096876915078033490421108183898808985618540279680074884115540951086367005452268969904278654668500527337315266136442693524393866962097231692577944642250289621401614052379976362833178668140793574706779678420052514811017594385770756939393547361343638615916544649281880276535978391856141706727896864728870315323526861023593465222019735182406553429086617863895438037886258583901839821500280717435218062523138434734693756998031577065122146820833522959418577964785246377096746389808659274323395587794526043084924350372901885469254611040607719723891163230728539718868471222129255968642106630786893288651207616721855929641290592402982196056291858183144161713538179283378552736033944927265016820394444334291230232960357948439136867156283629463496086479083621860870373573212578489565818291172117725681361281918823584282899158695423748370381741606197316825180368679869289407648911467822743050071624244534191372410401510672172192962471540333572415583609645984489828337592078456614822497743665926158513205628023900209931518085703209752842803807622320126016546436672722104946461611584983248042162058233490025747492321895506961795900013021965722238895095552380979730800533656859833986119669829481740800300486001435421823441025200302734362608509205829091466422481574746418622767313557873258919872200104927186577263909527040213371299057148451197339465926950209809911878348195542687244635545735284962045395660697070810585886038286773514320593149081570340437391293869250032543963928823169042763862798088656026938300513216498150262845961079417402234906544580104910173000465575696230871414444522018831214683048375458397648551327841324875942007943434981231613203709325230890302229269688491009080758244283957179737187250139418188514360735670312513989099619372831594623383617575733128273057469343032917455367561829935788530123395005828671734314539033142572041808426589500669589158802679822906914569010109328599147894542698685424900970744287863115115812045410407775808018618659339623903682626752202732036920410866971931131023252805753336201674552275476083200952317367106555679623999136099946305039360217257580103110336774322503100647293666675666003130576635850357541302479947002968762442383311260052073274145237589727861385927425453034220246789039655719333254736981961533896444946579988424851115002786761071105518943868429587544161602356694306195525969118139716333652305726760167469584292286195521859720563123132929958873173328564549809292952995622235218501038928582763947469553734747506022331240500156307643812824964125121821171308607803642365566482515770315584822382957515501195196870110791626899342340802233800926295292179543485206393986119050702100795421501355157503410582663867088473773763319702692307114943722478643771481158871572721401045393348693785466689919072572291397360227328919394131353684504288912821186837854536183398471269229499300149076786492527875513957964816487694580884471854539613148163183803169495817027649797023088811175705196826821219477436354464372353655046435792197208824106483504834467024641646542190916900703347055484925807880909393532659414994148522574552161360876372465927524559859739654718415369518408171075078110995884975485367655732692127211147554916238814847777021939673266389938988844998040635478151979382747776544476906560678428034209948925208868017964677366387827896171158894508400578332420352787532901143825023514443471648340046351961863322357383482828735809503793522350034424726335909132898019816263814782007935146976627717949879744537961291907092491455022184488783164204403842410017405863130133201525221220899936096988633709247838265208568226033719523686545586765362546657735068813396556611111332724178568672689912323597850979188876501950760559916056598212793222203756666517396234137920449343228865211257038893691571235069828510272837954264210973539663085840910270336850601871294644569370774279588992572116861441254509519044221501732691616170084104683658583343949858918160015971355762351515911097856991632076855088100823373099531200504035992152752020901465809433123952624501973239646779895413620416658458370606107237890940204875806330219171425806414082097345310731544314972328606077183403832991530035793404167835984475909589286125262814005420179210068972918149326309242621302769744135423541303488712184196362645874890850840553610480995505172226295659251544789742224985655471629901447740441507723360933268581967635603335137317743486389710635776995779152498770485509761373992074602145202577476678843497296510662856478367192162855950497725966701927147369741898404401080110548673917332932835540898862275014464192717087115892598478464550090169862366281436775983186061541550847269734606876153774659875028540309200556728473396560861989854896977948993837358475034777845911670120274622500134271382096864844535609194251154970875088524457363090897759694718930538187092492002034321799007529676957163051112531403123395653165126325731059548418016568462102300641048183039611172874227029801742216098635003665992409944642785026358875015825092128783340150591407143407702088340110351943946460513081479269247548493850906878891034606600516864748944935353341385718431307321703154803520639840524055388450712801884958304003707164648478063282590226846480372694890344257228911956584542786331776817281346160631440322336063289525176207159184364820707893690845426454648468140234322094758738823189032038811261381746296006284204179231781671775345645818606356268452008036296800322481725576211020388202990797707580077775002883238707809488383801133473081182471966030105498591654180018415239560930287784572411760155459564424889516817528452629259222472852497500400178483729926553486139087241185363856622826434883877951055716465267333706174858295612693147773735802839721274322549772606556252531993457020415583265461998503040762970079540794491195848971293057400510009504255576853462694900852083703374254368329193209273011781727979971341500506272701506612773203935094222280830401387902853499287639387994461459325002735995499997967938548241855347296841893466547457419402289959535488807163393115481467940311759867936753849749613276866709280701262917518776385992363171869562913076007885196397912840147959165456629249783613298802460375023340898263849809634599927867697806262972812480303424778310677277016996859473907743796074625737444065347672586880030262626167481583583439326214578671311879573275919755123379002368932798485599449654046593460517938575251663948995216605291575428144402495498267480900084003286483697065123046699651509517692501267150681304503190706978074734207163378311806043406770913327085667823045231678848484905953838682377196541551895258327275702503296273983117193198671115065327670195658212632503649743811444437720410314703513824509221600070715215028468651371140258947110149558975816909595844778577786737366009884444142739887243997474485494476175395941510688203986003638425188333928156693241555589340408241830224118961127445310547782462894554148980491310637632786256433541133483926836445554745722563707844216387812950690456226577449760511815640455062200294381999915143155178086532107656057462698656715528215139276231551579756072958800318770588933136675259110577643686416837432507982558585780422117220035070374867155254177593484349668057681294965859285492006744950766654174423415096234277498599602187208078558112973544966198243405308441615541811670133778612962019016109230066961951870861428238830453727608884968056644708282148012623079990898594032500158716564930557076130297762103947189777772974212049179867514191201477477389853772316509709007825061692604881675888577549904661810537708678667395975758812564688814595918481523003783451352389716787273504321830063153757748488485222465045034390050124866470340844018870043627408961454546169617887112554595810269382459254651139309645690412486962823418636997880011534833968928983688187201703782737913950505485098437740424565551180151312451125462992588664235413403827182703874207545815318371302331054968229029468029847448979376340185514880377737166708269773683776773075787228800019999071568881280691892885589432536564942979375858853795252285523040806539450810679342996376313673283547989601004066237103223340676414067587962236695083872314413977017532890711418807493946135632492750260280521335847756577044932166400404097257005015786515939959125338248755285142247728516481339366217685094701153044439191740715481885444690584791708805544239934472402384187797136051343943310388252825054214927623943597469529607703047334438532976861484488585992969591744240202094364597270413705662334880284068492528202898974622493794332412956416717821845575718131571539465199310686508146779000043639022442219939635385218304672504014644350611712008839308583193293421361782844893900583780328193374075799738370277971435581653960907667945987040092018633497070924278534119604545980623474176201006829309673730204423999296364255568659339995559563937880333394869063830139730476332515291316754150201821794679208945091253566369864421032472591131967833816531087930201225656023769925984656394141871170627421318210856938599579212489906962385299146002043011978230642851237060960126022487639158523838413086612676631203511968360316084153627495862325066525165913514622718615466967963297792783243322113890034095463363641731238211595148859683807746703869453424343609874246098129536409405423780451817940638964020845257812029952760938389557864429503645876352806636122090787761802607932233673073829513324245954172506856805591279878668488312545480455914334179040914887061345202677427928107275424735980733188694600769571714187351171180937623480368391164985789942211135770801927099876102632954073006136615918848128770139309119288416389179307603780497251802794343757381159181030299887945171018972903616799955231458369876615812417152467694741268011814411842777304524611552534229360452562876897709571827054656101011286183577558392508680041452795884913944296494074266518560449380459453791679057578366690855953300828318840096601730127073821618324994752143223721383255638120042808684812584565967223227443017886658604970484374806694495096535069723382369627777907967193812541476707933476958699357840272039791098046671962633430325614701179592625057613256233767946212562257785753884897460333619254745176457986975967501805599627606262517840799221045735695313408007611902089800901320502375565332608729963296939275870324839611625113174484509643610446195686645349661839089640262115704231023820636064354201761232201258863268905067558445994134275359611738455834014348774247540077129453640538099350726650744370340367606942591475865201880386803979477104572086481738173032680468162739264464805686651615287631775296533309143000705199242614696794376676269631906837545061866862240064918427608153180928342472384763283484321543310985486536590805909317729423363127534788204639474655463820462480560125451885792440493547283619735443039616704434512942727991164855159422188953838671176438933001613352113728735585346376753059368800404531765816033221795797922329029408920981416545007924273234469120176256493052870150072154414629218520197257693576248144622923937280917445243006503974763950927970054250176641102255088496626809889046547123128313536332658790522197259476600612806870389056943560290749408975509631827839686162852810842118870380741254937910162481986719479015870006740824099781160855092465138596246444463728261850748517897248629154781232508898743475466773876897318790373043250702934827907256357356916283094278389085632967358686072297419396475602070140973708216128924483776460486622852468951205336513536340564057222407879578185488420343287344810206231221342376983236485733592255941781048199770113047709186387382929507794156990399373330147870277030677983505856224576557327738188437358605559573412506469058234852702004993736400595002361990969782207822848522629549697401114870057360026906670029991570553881542647246554254497373607054020434059445589311438384357267997560013662128336448709275431035547488705884650923810362443152795684934635960194110861160500322412742347661500534634632035427864718740339102603361429474544359664521530616409104830763496844449755659558369748025591863178230534571886478430805485825965503722109751010348306280646443174307740763735593186011890651307844103508683687469526343422603505926560412392213263738611378220714823434896649657843104725173319098384567501707597173040895271215209827069663478874762603404746685998902866878500498632673186909984105691774064889787486196776108252811585168819577653368623546512776826956677188809239787287856736166936515003297348732641654790768844419346561587151419874435827466311499964175304179243282343067408462852646114397695556944091889434918973194517277935283541590097600184190735682495459244464492943295546216844336938279086158260204568391162697562157074277026308453865615766242026988485443633423325224997938184430888734887738367466724401011910378514477677473931377421625645963204060849319079428576083338680043100554405588487047315596704147077476914844317560620125580155657394555116545904145907630922473182301584978298405434592488982662527537954227089462701668683021381999382562871415345412858735309402452746412447129461130458822135273281104620300403088947601583437197696843619416348598300111534471614870525217046452189209424344530567842379383399211932689857927770507614250556143481856013841873792134057031271241107010168162185897479032242571583093024974811038964557139032608470964451475633952723653966462962695463600015878264641299217577171762058635691393474835471401373475984200998729208353802830866857764719827276333015128388173907215595444724944457154403843742875631832584037486675326315734946199943237556114164970933590766731878380914946282127218821834664732486470527082086355112350470743080489564576469134462209796896173713482438456126773566137800743750589372616524536666057755986560549690415704773086750950196873990342182239463349914025305171530951494493440580139775754603665917765933711769093219917728454444436675603112226624657323375237369987150747073065111329754706789223832931674529432000674275651545460378535951269950244815661338048782751665451370439235116963407931395971035590509102777097889222658066347119973915803842984785349233899121644836595289841649961904339473237397979359183922265312303861771209609459492443789329397112389918883932228091619381441229117947091026015375087425516203042705079660769073722129933177848313400775216979017687267819446439288439781687810933703029572734668211447828716401738372503884010270740581237090201590073128288160302366744050476391675617032137590634152886345026697525993503426253098401731002691101619527701444631264781183978580525017948669205989517644445514613754417002160265451697553107350172621997768452899482324309590129612785430796729941262297401320166473023890795025083240553149352225067749155184322840278433104916296535157501123308379787878344980238825841772966605535926172804392363656421719859126374173569667123974211307253628015942415202764809329058033371250914941809992735405116619354851544474223789818713993547881643506717677003734842937694281680252156365372402854868829406042280219805603193491773426521054341195676780370790224366075406732180083185809582437027269303261068861889542530698561635844440173542843001460085339580655881967373350268999110834847116708216149613359690749908695780797648164944895396283306021049874026113887331208892606915006235520051484617755935748637219880929078468014879196527297465229763841708292414223144146892968629813787733712052757012903180437770412273862657390255697888258578128545805650040440981656007419206288367416980361909927997593862171877448697038178079327933575903895400180035572748511835294567194310316320768790055834544090926288278970056832474396950656672943528056042148726240820438473145302364143766168523134203396624877482973085581517495432292394193762821317488984367085958383484867044246557216534934459482510431400765648548747225243397419270476167132810411851986916787214186500119390157617428090425826029905265236556522217122050264168582967036695415577094315478009070357968167905027025821936934575422031981550875739074997584009412159125916016740406990804294635763283318645087519683409957367187542951161106869878282859479819350055248242495121484858383328970284191694055281760673377731723323909172748958304087998332327007914279380725243462897910447024716936135543380687547115256508082052811421849586904891748937541936397866630944606568808328791323257667857534612652245572999518976759669925811542267693338153097671506608369819963557975576076152255617943614213598741105592171944922273164390493487308222267011180530046917973586556572747602113061096778674979953094096524799130000799449080567661136086960589876131098583508218551128086041120473285949205195353485792523892901185668097947083313466207879673109281674734641570517706126650157786804817115273952430344308538604174717694125688712476745813154571158195245702265564412464912351386764995590838034156778958937088283233398294352550920191165931353180423417826096182093678402715305789388681362616082704200413772464851276263594208448051966583180210781022918230567527292359740351273741257003373328751106340399758051339855984839939979176524529063543517953585310103174770900290923439393148737471030452607553018217187573265250142783689602740499452046900068578792080290321805487669322490980640081432267112969303309482913538456432667335459164084599728251283066218000379173703457055197581039347869959334050895841582772318780020521476504959136812449963133001058427862544030941761945922911817707736080417639875833122733845508572258930200499372636534683193802612943488205651306302645047011944678798369873361233702313143870234832076560129173243758449268618442643670459929303424506515760887092826008468841883237929178945973921207114266333624899005520968988285515580987259011521270600843615108675599709353890587610666189705615596099572105840761446290070624276235644095627860861142726098999670410827400819040787234609039658518212700403073323284282856361190520651582562248072850252502696672960580124369685727577736761688324489977621189599931899554937265705805914805708371206673707633753297015985978124078750804580323880169739915421734401933022319868646236515742762478711394427785220468784205858811112821326893114679514520137363947319835250820965191040926969004106521819366220000583562825701395441858116820511038136845931026836211783669928954025239684819908138489746828516367690692072794853402994646208580791715611604280787655964038025188686453969339953784705189816745002567605076244976650134730205846564287868568171598338069206876333061813010651277132569269608298660047432236186890119684182697532808390767050751518574256678342431321499192712558755845586118060094100755596362418766317578035492850326038189495592445567845673292408003720363141531375478940081011133023372976040159542734446537212465854844576141846415165042030193773914130510982062918274557863107202553448632391483247574265363263083911686777650575304382002907062635051899825427902950026104842054753832966033658036497370905361258954853005479181367666132274472924248270086475017686535841394562532244694617439298883056700103846595951439899125540848382757491528557072413421746742336838750608332346459707887126735694912176640417892626401308696861980031945245305052012550777674844954381089943097562917939582171802173894351680550123378872219902228108781374789146745251527744739045927287257591365036666415661221242873253247650756970476766511235401621965126014676312711966030062213997804014726365296453372863799246603756876554983412416944075299117592521007049967579940033177945250076727178689517762396481452260023991623060551931791795282938079040461706196490660151937074080113527130558744221354968491423206415413382308769644750384644515492535986562257853314452262269848611238282057577769507991819838310125345865378082674208945593687334823483707692600929936009572116723028644615283388150028896502433007136491334041430075831445642050869010554988587340507959752529191995783119031222729011327111295815866746954024185207522694790596081663946543022512795309472755905678803211898204069388577831129757852142218449169484558710644411513715649146759560730296223125189501052123796620026054935845106502523369811981879823652109116777571024987837343819434839159254196271194333626542021253924141149380868991245401652590403050456468378646568618738988243133955061429575140555647426781416435483123165516548938006420472427003419723253170324358237944190688730357105742821047578717539286106931265259996584067952572581558209641948831417190325437030789141821079847674213569753538203619096148613720796122182701135894865837627960325759350420475844419645086456540929094739241568299031001660069179082616848016667307228736703182421343824670271432022518460268284310100522873512943146858312187198269578999544512443895726389104290377256669797752892691227647384050115309102753185805392225490574439466083544398518160270466529102580907046537642681565590200202585686267289223675234219096995752349993700699479178473792289306760507027525384326481844586516847793165714322850989896388629788743562324482546530630666689669683042177081124448287356953290629321895636116165473323452928471185409216965479538577677390413576292779241650712019175130960515890476959300477456653870823352887311965224908677024374295658172178681819786187406439850691934192963923969447121883055072168013489059837022166042898118132580495017042338909617940136096800981307523022035406807947237462299551030516272214414143936704369351186608980287163996249189260422573102999819701829620017562934592089807251801823976268111192387349130944054514244626818435413439890235692122150381735045073756860915185701067047911300076094108890516919112364083211623353700456259830218298097122145383165387793288490998215498048940486516351490678090053547199970954754586698585080672850917144695833251317891637527072056417768961228107042423421017801276041659417163591934414131339311183156594449288462810384077610463019984885020196556090306235225877006947322185956852968272499875540994804025150383288775004311582777463118409606870979302429812594655131517058516178395818708993974163766508630049692196195877484705981282788834987398504079543007296769068965065479720820394573440666166977384208601876427224972384774845110575564495383702300871778591784533281927694345785376137586273192994506582897638786582382641702856239419006134330381415996766057492927271212717078444452476853728373362891084582913953605918014070063729218253161459267699818571431326056390180675161263473854577442912767912768944918475248430742349022980957648061357878981758947112911510482383581450273652573463479362889852188230953710139185703369814994958412733195077519055823266460675181189624860668204297558385742768925902590901804179451122897359610446691585508939919023297550096930421049501429849082175018158563894728893559238429437183393338589233504562770796694701210585865790527608172502342097076555341402920318582100157767976720936373783921041929527261354107206049736323044585538096388126501253359075964845642573904880076588141020847017703759722022370883253024906526289511730888875564480012849422805891349955990553213867629635045589785748385112489769165811863032204868618211896713428575276086532451525701756640033967067519822553192003316954664892620839185796101729877383854100037529354097878620431321890189162308776323147947370278437783660039795166032268814800009264916561720335248311729161777573973836300157298124926968149695895092228079504220863950118376551684657597369159318572631968355804845223994984737710431874581647491233318758118367278193532420193332798060194021568243839995598348642262479919488407990047460107268439566789004255420033454882025478487669018772922602471383696421444478688061030359460401885023043550022626392295096344062303371760400468068612876777277792688839941411101499440823255584547507777994695198705553657847347103705049191203306465779985937749716899055441809411578199872461189357708888304685358789948882507153959223042509680654672741358865438055712214596508381724339450751244528462222040658475689438818514951136282270473684344057994582513665236875947476024942876522582607286855630131022296048087330109021415276632718739172894887465392385592309817372156839815726034680323819411377055594735575016451617512900879164840464717046462371132388042785585574957550389615585116422409452822751196134528199688606062118897695491042396794797062463885158681753108261679402594796266272679500632298504316763751753979942014363577953793974216192846955919924234492683244657669331236559994252768120980025175269545014786620792487567124903424323306308774231954266291886606274173990126729356059326089383739444436911615592077538519747930494207207856140922293783318952533148937340427654663158686840266336981192288975125918365219814164388016178419491720018121425487617710064418672340991126473841199168572157682535005377780485140399032132230572145667294124789538982745321231480508588704988686002557858050601590309424137302410580779112925784922216980728428939856188214352525898675944053744488940250968318780773353760293479993241631163208082675234332773696568078993476079541059087604982756283564654375887007874396820073958301169380870674795620115305841438604827632304557844359155900909707055621271141886562425510411749368487268778458160909256292647060434669063074887144511480286924035653201343192861672652372622715753724284598961395116441895971023317481759332496424734250223310457936738713234984899803852983087020705049042797008351302656663854554550192080545419596874376321843684848526656272626363892025757281907499240330255875204509077713153677077949210511349646355161521076913024590228734615629435448196869945208245030971903257608988740202426140897044213654157794007956587993396104562077297183666707573800447526076419443052763664004673316148963462426990333525380766672525894991649783081388619652544104483364196715685935009997649270048605474798031564553784574097474752317887066020986040155419790065384804283465870729277741618865470429510557831953931354555911134809715042482714221000945688552235095000729997599488354426143198081552791251307349781527159921259328301733548595883927150035562587695305176783490284403107493500971611808767348627748345409908466030159797466429633053757781665844739881189026014439400175403099217002175893134331256760730698933582965023847390556770356806907678010679558288252962671021406030480460407504190804930086980368706168145858272946216522226870017952116846420656428738467208695700992520663553917003729759417363112745832903961134242975086986861961970311610971571927147359281330576684808402137512165949942692725926314475139973139184166870872328647273414706367796306716303216933783678534781565092508049084769043222300859863960857783404320006816085936718651693665063776215623225463452473392994925873239386900389662254979042261612515839304168342474896134111111732773901888578920632370622344100257001697586871536085783166346729245012061994232319672037621497643735015247439687329480029981844136160611219961049897259801248026368630498802753862467077212138296288950951614686993749545929669847838365235472559701836343457355564826018762658362579830937731301747470840884926808942411846375149361271711435500132435899394620753635372278220020322866899824050633523285283123539796040723115127709206639619965694709368816058164500403272247791248108591841628584797995290843894837370328094874290803773342911249466991168787104382846363093503052553111043331511379315733203513643788584150565975380571587399588454955594084740775592406477515752815006484770384269364424108462696453161080259657423928213172734774996154043543890527861796526364233589837871211435143854856918706357406742734465854166893872215000555098916470445001741711054097431607858148834954058547108435979193519218037260870453396354306305187363176427529396402344140738936176267629749269562678629014806139431925990022466309500064917451499000392053387248769416943048847753082931189511667374472125388427386243745362641751150996159288306986358793982542941944919027752036462210250492404848863776092556128013778360344590348012535135346500639233470485585720147927805896921469180518865606871585427560540384428703954508208841182393700100783897341544880830447782885703926439499432770418788707691685994400735622808325220716176952053272375990672315899532313381649156173609465305675586003174159473189641865426711289572727925822829752408351204727319266731525378510683524660518285367393506673800551277482220347988473158249023556970541048377725744184914361506035212713496848212685556598252473454719734172470745831375037398246537985789979770605212254771219083505743440567611488909755801400456104301250585166438632922340765267669901439411374066846483086799628869805059696139868989305201517083191844955577429343153389035316904799112189358584490547623914790717320566165561168634759294580440328349549542938671104835437413628026798384353141311794248211518422343997760577284167290118410657708016659082876067279139112224403630919407677036167815398757917651064762343326542793534287014999948249794624261404110088085221148805302343153761693131827074924306064473887315538112554477233610064726229614873626655523332591184421755629764758355068682222598646914850451624305220991572101478263493371650715509379162729122815522671405400798815155982281839000878582741110274775915759712568306150981492274476763059543708887057537788863295143426506780195944731882415787174841693708737266253771865373728390768205568249018067685374761575834581482120761840094618483763114210329834589383871317617687143868486503792343293312007663388246409690091650691126084511536539125144267416806666829134197846532635693603596170096473852743285316318591008368629789449352270079369922914105882013826813627862789402227034669247967639238634978204941736218339055627298270683945294102092649988945533289246620892167688668099886382707269411101334880971994487879870759584634605008449791797822778629529392900392338767178031598398679251823327083745863094824831337358745870609535904895505912618267477673875481509718126494239339708568586293237953967745647228456540387346424984619546076588709690667278246701852285314322061224650266392032179157385667192028794796770147375048651762128817950684908406085380376866729119973165627273432647609649266151458168506950935430157226675636467984826554836896133524759970173146307514891414100915037616061618963669391636753432681002441094718881414560938474744559541172242643746582095842609119046421372216188934382900280427469690526686889738405320104943697622985799481442523147566653293983506845697697237802452103461319494357675602973883473073224104882365662177546868892639363674879800008910927746754807424534976240383843820271707560936383687446479610851764211903626874186139638643342086756138752137660624255655941107584294583867230385773719919742310358380495791670651801097675309502039884187385359319654055099430213595362973578420394695121637511405696897522755716985004142128203967902716829234704569344339337021412012261079581304864455841655765356965729356691772996225659175902133508266767064112140320765153185708222271086075480981593981365378697881122479353595038739635799875537273240926803474763369181980828244469944945070675322206844319145174222351499596605364826415758206552509145514837728525275318102989705627200877198863985933723674359777150874204199757441253362951296398566937367984231918434023945486875014342714547122573075284242979668316187894058995830387189830286125267361181875268749462720073739201994246780809458942411364916014082676749181157428135635067426841193361481652805758068483392269989233384829412699079018208301033150243097892948195157206871291549749098170779191709002317540607569929633575768566608317454776110698015204791367815416210469587666503475787947644770172917912393780382944971908987767182324076418596570728249509816637147576151297502989818487852138908934079113341432903945589391497239839341945740534600917154602087746919581253372001040727459537395064777035086852790659502116438347618409250109992059164129713949952528157336791207712722799357352046257721537865746004372949090692939614173252577135555268442567791571056020892600691992997568145905853121438152195376065495850321365169279335951721207742986077972473356894596261541849089591740521327656248399083853014619299529302620356601871564480691229894772495216611603479715318163945699162829283217493738679896520461314675899460903220767802658070709145681550743522097680615193650166723297088138195958685061785817196791062674118740364583362790185204026615833853798499430698802703597668908123515105325582872996273645735820634068573525882572055579611475405199506716941557467698014907815513741435837440343021237805548510990497358323164433997549602427554530596925884631594122121392650903622867441378469852681659791485350765623192793369381479628668726521933024743444576345229579512895423937121029145615906150962328571945338428509140953337654547490671312676543364244648561616033679592060111755269217344846812463141712231606887500547910533916989936407939067915582885878769526603753980530206770936686463315332912346069785899409540919492737017224919140517761253480869850344609708778248841939058372909839649569974951442343413954718899821088332143101220064461855739673588925411200747199440671902472981062737398195487018194610863121784610312575923686585289201664045608029779223667988551315127841214606933386877857756765665588790863787052205569730898109917817623766855672587283700042038202140403385627260007212842500248857790800058279592088581499366083105885783730256774560641631234941457480528280967855373760807365851572271216343011644775620370659867057888488851953371129444205621308281379943334971443345606983861090512658654153582569725204072716672176740699100818419877882126365783729778813211110161991061730605460039285222104765979378434389344669854492153112737936700386539059809074161929624793873957540907630411721885516396797482883354407823660523170424948955748672405169518880296125439125696060845642415598637264999743857036374274953101286500541931862334599921236922997596071220059376166761182534654715638991207928342067073275695432047287223399835284561150034854043235976170969600427795151885538915732134101079932158257363224015875375519718654032930787192464500881237924020632076715014462414153683100102519960283494388660953913491700593232452768236169383762193324576940347862520637336723569668603039041290688818802601578191198657952529427183642125842036718941148407828269245908751043560169054282232147875809762704425461372995078471959842166645306948002350043721215311727225772454406367478164725933053661205210383078514155578492385349866028453166203801459334302751676847209746475901547579336635571324905969657447990485325690693687740957455108427124420603412987223367107472618146285715034166952824760820181017119043602662919736045011061942866694541340924211699874426648794107911714975223591449349141464698451890143854073548040937886015850865273367918878183037105103772272245853567597591905544589894141681097950320595193661987253993080094105278743462607623885150279824678702469993407297575314857387617328228555967814662141367191320713510057015411757646744295120683164305894266156816228800916698508577154106516267526710515719691306717156990573984019323114850009946181406371554375032377853032303624876388692337549086240082971350602796314545841354183987710960854355342232833324536979502957993598291244485022109150595152072658159163433074783861733174617652719428815070679733761024217268886973677848127757437862411455162880301589610531685061606491609510956224982798316546497877355177530013312382921117253169503435766233967871081910749719790054051843809805396796731688149767585433691721083232980427442284774922956386218062592833240462259982598530283800905150449002703172782300440553952301342778852803097588464076852575454526790981014052018750743370561250516730994800361243864331329557759607150610042018420561764370332964982074243673262111435329121394710838262370963853225094397027356909950310682535868616422608606798216130362221781259677377176060705933150966839375062078129511828276679332567537290960076543408972717045887622029582736433251397286699881285045406997435608051586355616175489799410223253149223170942311819330292096305648181076826798164971758920947988810463145540801321475927258847875448851800547875392418651045307532247517359016005607411246088955135080089307050892581266881690086134769640528525318663071240654205031300260928819079905346200489384744217486043983831641738319275965321443930007823441296852051303896333004888140800053211517716055333650254931774717282309356257004571795493806393618991628643881740589980565491355869287394343836635546223406108900194117475914597709526613519884999210390010443877373096927473104106824821797636636999638848517184005071455616007562954201090411186116756565297722807102020606718223740237072895933911553720801037444217711623615156949160025151331879287868931507896443642415492963418598837537630851269212061465838566114801138504824223281194101163565481663862172842444379897220307109780335570766202571854242667719627359372631706141162470695034361833433614983069438934744820311066029396347284359388041632845900471850318127396439574019302240375523919681473894787816795037862464893866802122199296875952129499853605439916413946602541932246846864446643104634072298068158199797346666503134983391702223304197865698349505383410874200841430185599289681102749422038521983703319810414181495382424017454318174393028753859427749310316137957546960829977278515114915717698256737485573482502307436416940596224229955618690598081968100874136149991203542368936368655791459449494515328026636599706735965861227253754229727583308447504247383948978804988564956696882435056407188519952584494117839301589548227023331417348938192894639734284389346740838455640035397481571757509529860523390677366577017123175366033528208463502514778922300438908259528954165774761118880897731874741089190147470351448972454441352035478821098964322057667990089195047894028079739756294891965319490399021578784904755085777149184136313450139861613120639516505422921301984975923434346193474550246963785828901440988124595167707935670585471220789100444850415330963884529174023437190672471539433074125205748346542718619384891366126355268092191287110885520868671188323738390457841436977459634618161175628020832313879477799615997056804621288213861026093472594411143777555277879645744561443997583036482237922209887479143003679591123969935083826508964605691853279322441144454021875983617145269598491007722730811453615274398922723179651328887355558079094808372960804050260128496430611152452188430016522391206769354578195026595910575757928195293593036317748483809085399736480304181095094398642841757063689569909313043765365216168851360438999540419843787315963961264356757482083569439500581553227965113475727115937453324218315274631544032942242857891167315405331845733934677540227101255613573750225131702301796110553035167557429919968558047328270230353870218176888765950322102179242853586724045005996750632853613781371931050562014799856484678786682409064547421399377860393476359579995220010669724049009675477442978948935698911566379315635615896464726008143744119884245095073603371666900954077686028537055247366903925012664618765622132418276068090852203409516747352850863267487095052690133970502070783188936533138156663015175319686834160519616769013757580635156691028301562136657344229960953474199925682838760871658009562139659115667655028954056489493302551631815807692131884325257577789104692571146836901530210657297911289985139296967503872491770017476694921402246681562978559556231007590930245059614506820307040695899945341674556950173635099532245550728715233363285665098053980784644015768478581640607880479334669354735884781054593027927863158260274045913222479228788259139784357315294561601431562511732806494271195403198497637073384780108500176787592790905289323743599083975595090579755786329872259329998488996845390637492788256835068314129668668382637476260879560620849713524329748453719090851562721266093953525147096844594746755874863666876696944348058156283445385610521852518461195582788042612790596756860121774056353902380348116286410029077174212910908124938933587898633051715617201104993591260164853577955369901185876656248026184990682413446356557610061931694367710646647719578061945311983717814289600933457996407954139714994627288305114566105581902971061753533810520019256668353037121233646927213007917532931206179628620106639717411192176371244805891630473894681488189811820599529055913252920476537775175844825462922455948353541460117329983786508604199772965960798565965769267667904867676067885040141266081356179549013228632322920082278058293442335796666344049423014080325899318044309385412061822123453524175473134549974609447331863538087820178628356273186557915948650562589204013341777302371724726337065118153513728714882848825652297759603376559561002925957076318144191372479685607788022338828192534594346254713984046463983696047170646297460834146855007641168774845297879268316574461690878210643796897921252740924970962930260410098064272494428617006942447924749216605243840697172353563102905245752426211540721759086663043666293120220240029615779442317065787452635175066879436180736045245100265899934836706488332751881055005262572170950112633856362205476991383391425535520179098174358283027702999694305250510839625917475585049160003308867917205173156779526374182881059067863708228718182985334459863171605716813731327324549216128020541676647233424976455372526567659172939742094639331315251538425643929899718329834885113017876921999015728492732997542363104796793086367512181133401685402408488420859967641089600789560153051787787257982445913657337009583241821379867972348831748566751773218609095812351298955772355182725845734339063266596537288060260562531720272353424734900826391380395629253711195431865853778198869938765988067673913374742512092131476091374388652345012570663346586615086068313485458790317276245704892264781547615504403658341329591292197670781468853216072872167969717355794210708766347861670795850357258949226745555622055561820172908949941341306737748746381676500981043607926768486203934867519361446978387452705821228235220987941359431151945794157533388528432062829472172324153860327700828415855712857027945331824315981007955352665157341505119163504850553562103821923150109361309168832859547992926824943760508825301594772686859285966994436878644268590707352422151291849291651339048874082463758670602563039923934898183298849598674661791439898287431205809485680728720255876245377638045568116368749067176268657093218491861112437977402338844411696793450384848476515358755286933184821501084823332210236675859321894135514453579471890823725880545252830645559680485020554562738725097288455073129018366770671624399546397540279659636026926881246655313590322506977882048946944709453709630079884432753771944640073767491034241204250627031306078136970387338986279634567980521227800645285519689504391659538822898197376058659789223750365335862072173067517017243843806795168680287529690983570821953086878462325224095483979080449508519846851521975477237141454338863965314935673627345322646252615062718541217688940975446069198080734927606515267595381884135232817382972848184625145975737821142172135448598572648869046103969055006976470067991544854281695189082805194801419324522835212064237999341696778951799704206650389018963762243376232172661592824773790830942696885813489983675466944956892388187303397122516171925964028954488169507878684375705664283481461324050982535871153604984713620154850786283246721807967903435380469172198548629953704219731389265911723691799157570042764184882117278895606599515638263027705752578348992024037277023411462359967921198333090934243075400004095748387284994991926157454893685716457831294986661133689766737293823208753448925324459749021911745694586959653035727863900305219682908828460250565450675506539744180977776473421532689270417605454202311620711552226707678323868522695396154813778248658869917346492363594567754301410745043968106111434554100488523750651327327005383644753145896069366880482504187033863745764164911424264962894074818317302413585082373569949085237174970453721669928708892758412100664156773774282620629887336264181533590077206478477356347449308536693993674603257742902298086753117607568221350361034752919466145335151803434535115348175677173328491847294915034694313787984334179111505194945432362705335885384131416857778376610753589638976134031866720511432958842570453637103843218817691147120357373278901835864352599346927751568338107884575381150289925049614998130280594060774852868116465046934973243871130442592203071102419756543946684197447070358543075741272986731824572469450751051997529883334426447471347288809264774426042840721917462622999278976100682469190079891624008971950835239508682136773429646390661842613974367807770603830754890183585103112354967015467491900254481824582014090887283415023340042079944864927500687003684039636760762430245576717195450642995570005982213346206234282618191021074081285526021721438988988247011258157467593454436164337352186375725974089110502639445637119440685001829773093506586703164912256136222788251700965759456152696984684378194917481704879989837784267737384248170556376996565490761353253843992147566931292768865889149265425801489006539427928056432865986928466414823405689345716798107839737789378980667943911489790273962835978349402391125345210526226548051331799760324782354252041833521521334557782376163979042043084850881464164656064051578794716590520800433876913504806350834942374491537863627048852934383515452254920452128408476100064703758093446088563930143309194374927576026261541105155491797705563879248590864137864161614633702424398499810741833023473302597254111677303212855068823290177503885606059476138165191688331118378562356480663982521221313390042593036331603819620239647832684745186697442892826921701860768349289101184525405178562894497400780010887510613116567840517990719457780254312648059895300175744257360269858706754554148272631749287291344854249493251952085980448426136643491529200957642331929250171027049269991887921063735796349967579281368723834340638797574604485982467737370169080480679237947893828930075772998221860584291478917667152889375698878572646423512266589968077218384740575513428614446356032125994538906098108323409308457865136462900687502996510722576312176383120093086814266680448009717790093162056143186193222697506107269202375725977645443881663001664632287022754323270870392247148263669943119162176357790024475454152675105215642302035959029284015407804473520774982672256851445048211836534736032733239644488831839771529711947786360828679042030034611758088580455746991822083700945657872611949844560789453528789852254397435969056569137471075595562526402803800911015425279582972168662732450051193808108761083656443691157617263638403944910280461390264829535591863463061872706160014579282629004376567557586339087285039925437413007674091409049540451510812091067029365542009437753355736322773303046090699664900182253164314270764039654985899617848579142490291855214486062386726982663314554509256297708133456712432597094918228809520678992226233215119133659602075772635486718599913562600392949622120617465210668237518326770599778588083730547545323277180189209630431345608433156432671793382528706721309463842306544348829165736177923430859997355418625239274757382842679551060715239264678440131457829659540838356915789929150741976960827885353114708705501462360878207976977569560160459118674769289712211160239924843162588528871473811025431845380547143316986293692804720530183201285530015475342486393089007991848306192539478398274028657376827658420764988153006104361901477025671171028125616611104192293495779409443265400078466132052271874241135978600630850517877325140783112493724845954172997496965503018696743190324525073236378120276931869777987874195040831049523941720377939476689622809125919395357832323281315275687916752578614729599833894503425648423304613707537929087217087032085947848483606589018513484579515394063753516491532544167725351868057705258995868964438907793535645036423242259296818548373166045087073083790313218054320003554025936222356320818161377570789908609551142215925595465916215796724671667772483613411915765058609422552678659124677224912784566249108404791954937375988605286832182292859701100063461176331281652757265371636368171199337867334563837576352866455814150228152899542616411020194523409753776149110462741675667953754301794585110014078222106503471696839842751670577652915485978016070054298861569115931301080512019200241861458431039542422215287703402675233869578488511887445208027487300913474173118685400873832693407892981776959005710157791853205265614965109239545635247486161737126638377266666136809381665115180581183671525249798422398297980622553708744262498777412883269364130508496839186465391457647539733831725314037412730877659096767262714315744305552380940760298765358417461133824150962741315277381290272559363293370939309772586713606391265671258325613237297194491766509146427389909379621442173205288618323339503293503451239618358921231188172720326059814853516713175298190765422059157615021898000762420348181175695885534754492881895098167446949616358248949267639093919071466422358643894446330499894705132397003781634954301022083822587246064812809351599119355342082082337525611780957204754741774622950599371386813583557403935892378482175255380610768053697904231110375207077857537313720284125523767849545492006120657758649506941767074679396971580770520614368430400395772395113800774430747756815044249544381870306957934369904730145959959767514562630822182249336202649851856691666200291440258688767813414882450220906919438342799022496586624673863336584824852650586983733683758979216732155967552392919824706542580817095423490306099235734341069886305074878188699059252105021588466293216997614692820230027338133254015172664545844709975354896688077371272262481268348464737199809054446906049485790237918575498808013882142536533149962608326525186228859853881899475296456278995257515974240216462345044900113405926564976748367523713233749397147201052993316317463064581411843973531056689822461645682257775551502173923489787470816852550623117353847447236489694303696497890534502072015182075103353657410587603871816147165478298875113651039098242531887509274739116508316398853269417328023057643373241989026764996145369741336603715815624124441286386699235890792743151421528529185231978936105647610930623796170976465640000510460796376828223563459170878375378654452154518821221533511282880951845386099247690796491986199423293853957961532065291262579094590550698139503553973470740089700794025972058432929241126596214069799951795372438613557041011586458800145883879589502767519669202329945244255474246833538845906252845719335016156161458191636845809247871936941201200961741322543991063894642326653075000283336784459109119448729340955495232113511490309172086455928856710423190945044395957799344232008750966771502669224336169339094051120319654364234296030403515061366087448715598203795137414858955052311034708530875868261922624348362382294844025053206145130920606562312438585592663321412283883616701582117113459648383189722515419716995944349046829343641182182317555028923352517228972379044740774847415608696982690449216347517596515928389777338235983471548855329043534258646695174158653582462863282565449677476379735192714519630704051889944856966340601856312120640883612623566687524432152062582191506568417802064538016592025306133442143163001269343428707557228629487126490859071733244552317102199726930718402965060817839163686495531263818679944707026456375492880299994313932787343699276854102863437993916396902018188212107672056848482060744338844741727403432853484715244565362073868792470898646119431952892062767851349390878869558787743441436137719076900490351671035068905447321079602480574713862251370914681161033254612217155974586795954825518171397190563785753293415922289723856755691650169813579037740793024156430909980284994150064536966358396825882523457419511243340582620374250540810531505777657753813778287349105871643833630975253625491542794967355579797185937949141191862394854605348040739133301996038305136968038754164648329501912179133060199494215258413743482605726358943851034896366396426945756885574722286654090345901585720361074569480881131560703661385439059949401167506199317310670407244066507551683100187583293245269779436636802120116384197181290917875598850519410200033832014652796020096599166605230007065476830608071338030441868693887752474655893493235888237967791459070824697897146689568413660682033183114584192338206768073536209453797831224798747094289625791628599480610742130664884599921361400213175755298633469765548855735728241584774188560363032040314346317583418222075887257190136835702440476935188006086374347225226617089730059651673210791176997731549473518046770679196366577469635357609964626126567222215866427628102116384613332185923902326443876886816643063450756042340350110862851745211115900274392188368067232441284480016173759884673831486565934918000735367729278713820487398133938671897467597321036364716657273197293453542009007587819126501891606886893698970283033807931633009120926058632588641483803542997150495659033837841233799446696174608993666791769324805616533204144199811716113662461570424451781804497113070713620950674669734576109334116058949783988558882396497604626903421594235917629489182003170219696523654274274980397688986443535334416115262561981996996379316627517775471903490623891104537162519151722958261897446352925157029562060364206709577502591926334862675035423229803458296096274327116111743598137791334476410437800913536125705848245259977061862392107566532529574064938163483261912739652202307792047147477226863702927012597146143850695344142407795457054775542575034112695367493730782481851234160611139924002882097425081549125084560520315810868834826266464618457002057164568169179097465348872260613458817312712703966877554884221930199112106668866067432583076160360724801926987469847585373479371252362738667918798640459710663195133321660461261031507408751124773812956838967843255039598477728651975700940757805920261555822514419633744323593087123659605391985318557087738993490390801633686108490814786164917108666632497377572446432128921438922542905812832313753284180869612509568982904138221501010304463661201739511257121359309702492544093098708477514757367626211547343061318296377021110715809558975646463707558306068863978864083897738972960038456211843302244783593676720809114341023308782663352535859161884703141671704349963559853662753091629740842312943367232525455965794457369519166290821861122766994026503450159412295710283827591439197991319101876014491499962657201024825478587562241885185904931579049453110766426519745822680919291441167907831100524627772471073197466415493368266851510863447041283605954960115189276835922653794484077600067355302233859168342738218504711833344413543723077387114691156480119626128174530195064664805320862540729453705733823002125396041207975486361129002362309240232841879770997479736168466336478219517522820515777006812318843659357083366266182985786523640573846817242893608917444186551028995751229482741440099079339835962602928342919112502340927188568466337888990856940067583174031322323972008662719254532546085110517837983220180206647921342075912757244014908087584662650663329462064372634330195976356069173654437655900035216985945530491380143320736400331290117104267731632037607006381137922954007621147317711219235424743612799810242427818048469486707075011049089093217838541800343302911746597854243875103956949015561134165507558487970798642780797016752663937981728802156310619365428765906693114649169956840327573836050362284863458433262119753498264523945915671797008256637146951114405181039366347688522755502403558087599046917332914233066666497629278301212357913760491895835177751272147764403583587481203704516871379051802030929543469355997194679273099629992091097660516836125404098309111534067132663390924432603317578806091674273156648615338702310857673760259593311444245765126558411159844194495226620338159413337389010143811023288655288270104926031319412989970814410923308641097288999877029846553449913185385437373221458344771172179837418874668198402918987587151781183718728525358468616727753219692514764718816042010227075330105538698136216178959264049086169994756945477584234661605492320572002832658383583646069707950605525189857516990187397661874767181436975596081445560714494483748668006589232729228808508240075565629302247699950322540745752566835148319335915534714640495922823301832768628278595068874269963691522632916532766179263818416388650793453615598719712556992938835667465463153020782950656853078070331324041685565475083501890523501631668418783344116213549762042446577238601505471140464535109742909556694144439276604342788063504594244661674936098698634391973244210848238000989977000282912664468551601362212786760147373883286260580881501984787036268689522829390917129778936836146299795795294636462261973812452026793460449967359265331537732411365961966373125639377026947895574879747481682393317380345398143075918407565948164087986380565560654906889986926431003145964362564797993122971930733169487673960574246545336375958521191616388401076635666267156614172881550476357128754016372501841804772048151285624734712065481674275497378059390659355325795574610146063739535421575611413125435775291543050575390877207147728873228848527590098651394892171232383296192563949121842628530451559492695501980894188012335034141392218797978755179897382830555760171368370521825049673839069399056114681284704941088897361666578928905011746893182584186188224393683782548792356481955218173735206289697992906140565388574764253415279282112621350884511326230584619827714262624945429880387744503695300652602433549415849880536519857356389794456851267927035170547789503738761224179245567135854403639483068255803975769355556372393167169276985056506573088774683731748885883957867510271018449447276418179259114542175379445223654597793560981288649994670548773362903352013622370315257748609874347381204045686544481617608911107279329213090303877505546056883056220504630110077200811325988285204748861128517355207588647997718541147006096457180513183232081703141430926212549672293062801061164478818542660996526253152971741220714200376913013734855145060437650589175137680850329995629081629227349209116372592310704042981085932036387338982782465837661845376394757355309217455799088180991018902355426483541895606114368087109111756682654371250171716603338168830542881336762597316843122865625227385041379243574610696787406457747835367627283364515195419455911188350869699875239392519076497413972198892090541544244957265695331055396174163852135594332128922284193030511227820571590743881582351282460095291110419997341373967619776603152660979406977942883136773653401227204842656131568522099465099254580591579475586000514815768548947769919875652378821076641122724854194640493832576986486949414929487094139033742295071484892451518972113491600739572588681303793156161440429193693980657778101223698965445800103556871049562289228736823606819574582472102949991328883069060969074793311115718194829778454702732297850312167545277236820199821052383277540455655567029077147038322304946899954973861834723677580810070067154265013272600161748076953240381095823877440654489441398233000923807351684598370876193930809921662928333475094356250659969518083665845635879837616180499896514422957759073502052264958598162992470942818607168127517226185683759268042474448502245119642153418230732724746007957447291295166017531934583510817265030312271572390531588960235942656767285122768542102120916547353665420245907235787548255064395519742494380894124915381974409346520062944537758739629429522231508433584491501903792980340343472068446962077921421191667090183012337177566724543541334951022948151859635296039110753887918019605254731991156222417711315552245400998832062675141596396102956252434209388428344437008316504220755651764714096050291591784188854201002478761501370337866893385112085871262341560502699862022896191992815468792757742320738756189840733439815118880370460286001348229613033536098558663878229308169424464144295519214736773579548488090151360976904412875855893344838687957379165585134174361127496837578546588258566162465206737925286161371507770140997174863058724406726095840399948524544725699138385360894013098285519923109824570137961741257988275877211375765908329332299405614644691490043208263509490213862016888731127097370395028535615971426780035418644384085879956921044712546724870817095765064940754665722588850812984576044569008849207927565144763736658742860966661958777023904784757218013408016278478306074570929348312524637617183210730195079923247007512636777304914541447576957500504155201102244935444389465568406422072802941124486219440397075153698247708106549330200354703316778696207904404628596989970041646998836181675612499800590822865637940696877111928996765245532023493948105113335424082678490815080555734156188702630135685869919410029004615833254561724420151227221403085214134846775929676150259851575866921515392193196487453105877356740835548004981259146445206536109301463823041872640307886548385105246726300148368010661534787357847332082535215762094134915237308526388971741205288297424652550665345269285333014099844381124742392925523055973444649839408168051607480460554226909783603415292913893475950392878122295443013641581469831692960543229897723318198603588057188694952490668312907370256145168894004034964153112497668663468168351257264741594801625787670567510687508813853345363706221834786711547637987077215230322174706345039968588603436393855366730892571164728777441244604587731862441222793667904888260516093080999451922399437415935869551943175140252623615870944413908577421113033679477399089176465922710708289247646708466288938913785052633569314020024228820964685976826790238220465957279758334492220693846015301545892627979435175702164693508072612383580210246605519479201662228059806224080119034916429208660908362958805395973062606742374220149734147777640183707761021796759029031268869656562823813292102063137792812066447375995341843933886462692347537548030887314551129441824217320600145292414961879363557785235465082481796974270185150418455849239818994833099709472655192146274468628729742832791412514797804647124944724101930099263092990480690397559327873876130852014574870108121717030712082975420849070012392178668783069885057451500816561208117565817299024810273823499638427623640998527952679214766871567924127530116105662633354362557213148076460165536541308305625623099077995885081436992370346501623549939426644279037856119283593043472150283281438691976142196986157231432848341765511633600214669762612025817357703721035001441631570712102233818346122535039623480851644962820178882772277323878377943704602960643564931716351116408643873826495662045288457826457812438083687219914668280974649407574360985676773047452032401550570017809563497040741999425011929114584164471682308872971705860172505990011633777668400864245153279254744102048835211072223443886733182451957356359917676029604072464662246330966218733931360478277213962320659482375653238534058485155039012118423691517836107631445071146203257412378708602224470729444406042633589387781452190430477081064843544277395758865088002829167652222168145106445428079854613866117331200347093524820159093182370443429728731473321693321208041286519001223961529549309661484322682707390101641430657083576764661004111399870666992730211959785084420113046974044585366757783539601864241541204744049353905055325082786852464036289684159381194370277670101646191813916091709855649580534133832935687610772234148542879848848378672968365259024841057945059951666834107324233438399892411411007283085100108745508754522237469800916761593337194015106005747993848695027719417865782651808452385285464036539609405157685828731603346277986970594877722938731824184447709314602732109258641632619137092472497772323278813733369685514446448032485911020948690714815390840010395017571524727936262058225073602898418078502178926506929353352466175928431562371159184438642289781568367098837499238528017574446988763779307271147265765144948488908428762145558043641341285738074096145281558338735470603964441531828148581021556976950624124827568386063422089998959137718424600809629400895744814821006447574532929774829155823948696806268889088845821971181192940271623331469484249082537413119384042402709795245259798443907671215969540531881021524840425474858428517860709208176910699066457939079710173939939623842905496415325005244885538258948174342105326539009542329858669291766812848738063373635541106651624522846539006030085416892457936282228971697004439615679976809639448757585425886748992221823699788817366508995896998107961562470229723385640358971520164635062863656939637709092829194437338573545666813071436658465636161867613964519073678378496822899605945753056596640630256359127439693623728912294282295677138007692718094915376911877204942436401076622485883497259172454173099869115926257193006005076576957645683879336607916536450193844420482684977883462823447898093443528617347436077686231364846347501492022588060508394561196235628963355979743986277072995825336040995147060891778540883913743950371539582597214157382962632998759223850222845956918542921910022997736379474183987872165026929171219717093911324650123535069046722126436134327023047811092974607138258996916392013712245822038606789532037841128379725200614751509448277233339585564763401925776149197518487728855600135588026141536949097678543848824624151374078466664558164442618447739061603160838726839607354097722364166482521358186628054041006929061866650153549264404590614846639922063752639677024959410272944365559735717386788730719580319845502432798221744046995768497777720018010891488624354409307008534745509299801115858105909160715170269677343568790200565525577401317462600468553116021533447206692490360003015456143302929165380890985132205743034318948647112846687843370048728134088227069467574006397072725335888470137479117583545976659963409819517939129031586548830420883427813759068146334586515618717868971371901957042668617896233552606780754994355387167900141475498184710964780615907324229902014216905556843296573084471359419892662923623226646341862059840098308234728421001024521134581602363145445222784217275793035848966131674866191796524128057326780777556537122552728056704223438937550683046043707754430259142662488957597866224008597756968091947313451996644022275028191406160428823239629806765309239930797495568319584146024922715449113505812541957289035478519489276774190443959323621847918047055979775876643295987648673606567996527395090252465731992812407919324264482288172994493853818913110224664097441209832149508469820408645173997290938590470873207632017333963686279169303583045340915938263546776857620939210990575376270932979401134517781246739484466017422037639931913196482135447457476664624814419032642519368153522565506992293665026215287594833236917130869425861748636446514871272337410084802133215011241236599171108816487158292766531146428455779986079126800185236223118517269498263710098108800620532628353122443832500405139359538566846911473323830215726966749748571497267101964602555584144718266401862958355072128737753062450054691267671893793095148039776347322752068206342885215513622075621199064690032281445790162746267535383910657049895478264757954298687788606825275779985441506475806656958136682553130879937739715195754575169921667263560087668692497306899283498244706089416254787761111396254643198860333990539578311198256375782528187957968793040355383207273244353436429915707051625235787420237598618340540154508703469508173164870197401063092478838744850085103286921228466000237568531792919148916888472771869949502903924306705961949152521618197900748456450464042474727620636966043913679382618723823202993920940497405402522068966283740553697343302520056650794215462951677026025758760727924939941252367240837474667463562658136041181211013961898678873169271457788896836982837166827417765683037184007578908282327297127777404606224127177635787319555284437349147127139006581782215352424439638971283011950132987563833683937692239831569132874219538823383668826042889791128321696540991095678056305162895769490650368951177680977047354195873030753869143334294048622895416015979716683408516694392697473367148650482000590384452571265688899336939706983465395586569687906738362383227770682030125695900188050196379925758713402989059192933566761927091101314892973685017168727622131596094329662576987499695059669961423878967088002043035729904221060757391247216322568752751769385222626016558325684499614701927443862154092344789202470091876261187354899536016723664097193075877563088144251721792682801524792418938356150778998301408048999065768578318928742575138248483058343456988310873452367226530344844896103302499183912961017014402827497239926508930196694737346999438189535600530614948098313405947651231995986697979187197409898838767331462197104337108165044017203735942029440633573871012617355788195092846197150097802151591485873460503531258873918658595821772882865321755501534415417634671240933144243049197812715501193907179148263876209873014963024267993554451983055481904467792952869897091447795884872338441660652231618023648691028650833325153358137184310028021454813079913889556533487154038341259137301224646681077263949442858800654361211980783813989149043054457754482689427264106373708252660978986489832067585070138527808107208216034985915290039785642065689324070113701681591839106240938617429632781908316168554899221718944744126865674646898850099996929751326293685055944328289095098961105760235252206072857908367110135851344845545365438580665595953232357627856758986113293750302810496688433741281861118634904825877103418922557504907421414473407950244870997059787931713388655014552482382813137516065873625652588938221044407442469767673623045725266518872812563428221349362975084997622750440602535679670418545993460360107333118393626249111892626038703964389788399784699925800718048318919009148377374377222135091708024320413987864041830838507287312681972159958630044383463171336976010305085764839253457490879014909115456837165798310621711568261712192626145240865788567386654349736681296317391882777454738160446304759152189795989425352345725254218927854915702910589710435858655328614220494750944879781659570442877011556090976042724403225981648077177494912507061449965123488567205287902480652928364850897317656626950476223970260494308543462949498222073893030544635539976143700219351865335041540068325304871887728769783326025231815069118203871768980015957828608539136734876678205948177722341637098074435884912730023923474345809898341080156149652793489419050350239492128698072613931489875757179279610578686573867933711743747419623176068698535472533116049274376798369488336464839467450508721456648014760992367147698105891944047714126211622589755479884971624081903500762952587397504827930811172733405490636042330381872223547353939427223221925250192372314147695614338065992290944106601815598713945717000887701559910725232614047277787019267961250811997462282280259695542000860820583079210770891988559869671943595922352869569104650574640568216616999644758448002578483874529382003932411743168012017327640080636059809787537084495519443235482422675465348503404695182040569753858406995667210544310547916669963748951925756143404588406909561575773270538536412808407377549330719077882286585614688237419780897409801958311998865304666567084849406777892661703566638739836053469944915676754670079682313370051504884731243189299724635597551841017506336811689539027540850500201752526455714691526006452911236964887632584361296030752366175145731626761028383147002376217254109626497568896489961062140461287817336405140873108408168289263147208721669270993092144665064424702780234706101342861977833150599287994180881201849286303644174115026776286059561393874675039297819514262978077192568433619042228303487658355992432560261605887202140555206588440369218569594220651396485921653349038105924822693663684173945816040584331680968678363279091835744251474256737010550178082488353152685194324416955301712351353166279873524598285987487396737795329609180112295486771745638613833118401673367243764168877944453945823075973859174669245433284590566977877777932913408651201365852783032054117477302659422594482336508532070171278966396289073848840777004798331430268314412889856118647891115838445155482485270136444656056932695575761773788567669177561354625543191550996543414468303819649613068503592450454606807916692222737892634951197602952845254229793054693222314280126086347743917285860813162396610013837145178579994917742876732153639814740226031552860930330983866394783110129420381686744106498134038225719842663223156934190637250607328382989793101513148711665035596023756504943207064626614604077919210864173434116626228070771764897259912608939368862502723711082059481363529489639761498241162975935488558892286198969245174011973077551814588732642352218972631309270151327014628221452976106871674273168591888694684776696166848360992569034892882386283948078504889620580966211555083110393824811840900120569992586927614440853170231863245095506588458384447664496489379810704612926449316172462030983866606970036881058606541531992159770843152095347956928784491659563382283638562266939194920887627070598002361004741812163263671682656113388858449657002635158429998615179541416802137235779172831141690055419903313655960418744731331824969296801719642143744563338235224125465197638397743269434872299801822792383807058953130217035719596137351547733786567586197063312039748636817408789759634810708649167077858613664703216309157335362646590327425048876355017105369085358531612086992233151482010801679150468762966929043289910582821242347394321786706817093151596874123877607945350195973127274181054358749050713636538477052175919675445678238603983948767389419733230689457410968381417250396855860237418899152778822042570033804948363853032913200402391903785977731876400275660492266216960330503571351679487534015701507359869714129684173463848404409212999020004447398196201466223924932669532659373895609053719568271698725155671611377221718929400117268579866366679021778329480932763389935765786718900870777190673769353413870770634255771514081903632451560746221693279953662183136698155735450748257504330802176296291064694464952889142687603335029924073223233235143802123174686582328583894648141672061673915091619233520963554548784256176124651498896435068730279659219137206383035384094549636072639652055739037847366656500593432182889173127586650220790571410162680981672268949399506784536583778475367112876491918366771534399747670527780436733816904411991106369801926966288053694852015609091406262714691638866483100286030062206504265673225670787581943634356353446970964527497204483399456808599751824595302612699264707498357329024419940827351187543373092110950360964850729511201793381056158133586725360265703140057622854884128612581098808436354714097127647769680234601034177223386048240801373551993023371289699811918762409351044994296765690337740716205242428629808566082257239549751254219755480576262985296746293967198398859002908861669004505740303101373128033227146450692243311363818974510575472922653855488561461168625950829397154200462085930650605255235002858994162049096940590137899451985532802452270277411349292308621780174155922302967872472256679602602754201136953888991026192833818910476290682108334600979809217147971680357835822270663707145828356268622077212578435549417746105536323585732363411596056312569099869259013105099930147737389416950278514755122263441491770793270999998979824391770275110478168689725410278492482157140391396184503080941371221650787534678427767837105575910323038198810894790355052089831127669066038208747163234734185401138266628948041200416462713232641265180698385874490981435007247245462533576567140442478010445222688313142761919680340916567513379744737787282698218535525642272689406857691511799088759147867303627671081810066229782149617642381120186296525059405236125907643657609190730610336108785280094700711524855969121536558578202530430375970582235097793942412169835229640316521201946153028179610037046966155654637454625878687917852668162991988333243617308576718260806270955250144660782535667580926870407989159080468308694270802222697860072276099885568407119236712424609952470063256158969491743065790456247665521372433801386006258785052271081723241555968710199969140773679494231394116694346443880475076881662166478696496389085672759839611238188644937838270914043969562501080681112500215163260588337490890210672310057882157078745647097327680361080445530699265173565277514978963581774463749613982433961730513625172295245376118839289766939470661749640279206525205672611190952597217033255925575833693619986020102967843484674228422653525886688819032618936710408612658201521982406161237696272110618951060919880930753816525971438945113260905192233896998151303774534606761581129999765517767269857626249645217597978734233763731649534231532673619079034393781185690343218842857120118001259936558727171600643994088954148031106681142367081376699380658389693451771839030036636573222423547432820321805552736443701579653492366340896663199020830605938788895045486444166461035177298065620081845758937149671343930919491910161610914824837309623032035645016560014935439001581092451271831497314088493620699500547815560203146181682164446541248976463724872828287796622352031633222890754343572502822653849390427364940883759896575512169448582026552144534997413369026659623876137702811123851252124546722585138200573881960294726580581939043773463316040695697685246923805943136820946926045759605618861654515778955411351413278385766139485452338985835396649159104390427987761869419615917260945584506766758441547352742478390522183003023538235902294214677735539999647355028756735617695562215148748223628844732009252945309777920419675055210440289186926393777983733177340872762472735324028256389733292047326129829408409649785011816379878074950970587630813540803872859756337571278092771401145395819074811409655827805664463728344450953169444156567115287088543069670765485261674605938818584152840320737306882701771002648854256803615313311029348759001085269539865443990660398347727673476129443393826072407360100658007430727538213460960888913761077631112604810065323634200857960115200499721344993098371154180424877927621492649224111689989598698208560326121067716318795547725619522535129630859160033471281704376656714738612218462664939461826208422025991355892480993134177048107007511402700063087801988238291930568643253480622444838061461430514338040675636254359562446903558793101936198352483858192475786906290963590643606358960683218547873714550862418752606413679779215413707136326943703808151709754807695482378080425506789093486169931296397920747007654242117906570740177715857930218301790079642410721133445541050300413988910813354555953152787198063279344200922042699764300964715458256027514443230125260960716847296929792379228169511191376740202984484804979542146146416482905152383187188197962069373984823432724513923042674564346773604642985375085139275986903870816809412414068644346381754885204869212718599647635855274651537076787010406318188412190820406667034396670967033930713111205618300902708411932979650527778886052468031148549498882829579300573753250278874840336536211467436452019850336923941537722214807039298279209451098326440557155871783176851467586731981776306123886801750360309399820451860390888171279566503531812444931434525239592035869482968980462047432522420413154007274544690789512699883748902225527363687657265133543804179337504114553737439191361686516959424442188575663535423330638508341732949581499991812501347291111770929366610869458261901001852835143063895603140457210774289319068320856197985142235120855235079632033641628969413495492538566016043211847402964100431434981432163744035739520815169098638023716599366394976575906705233899794407020736890077503578165881830596763143699774683604614106998779023310371275660564783519540987929615779599468593458176482584053549177980527678878485898689052472598571728895151573029844894979641112959512838872924552100120296566635832912101653519244464056064950462300172786412519708422425073371856990825522456215268017128372874358369790290399567322602940387106241680674945068514604418491017037854515203665144311332884893624635194650749583300519082955934462577168779414232951738176524472340219070807967817262146257025147613493813247031842942571478724681743973598180282978047679607224748882517205629388920904148434785875560569020419425230907870257220213294014118184294658827185161943200870993698701926961929397328276746955452895092570603124315840287255682150334896022745632818004067498451490605596953117022769428366270387703636766967933451983997833592016825695430936394762518342903817184085550233660707170497240862911915130228796686402408369122039171224330910680579184430828098505280744159966499346819663501782568951378733984619624436781507342827630220457367580550220146420512377937897289614070872793130218023822154848088268548540768323800124487471312990582773280244055986573803130708127825202051599195468671779540114622094284212187740631964409665022618523250179598812992149816883531305599238902629829117035514562079660301748082334693399520414431836423364874655540764131638115690677555373427014618113411215991698405713556393343208071177602495563137949804600854924561212725921167067207714175562277137710321541575475843450846419010670014066138555987584502257619437369807361597948723865570722858918347959365559838883585366517480414447086092346270477772772845475325700688823365614637195130456367845250350656813763151710194780512074644559231453888711058087648172944836170060915175435945722946276713279364127621246294557572983202536908007942187801310163048194548406716751528549695328568861403967945481659512245264928942149157374367266366709209570942733718299639871708160274081008859730787476260441040657404415560995875862285124638458870300054854337885100740597315231966608211986465352114634926848487738825993195646477456655813397765566810177154593800293938962683283584055532114758079119951843609027985150136202992387483724174699286023796471417021961874971058622391127191689218043036082124467749631745100645879209996011701935896706415168630807208507797105265345332552048030397671034240632293167834594317854285095514561843612349550313577422533355720992539098691734223125318699019407042562945407132178114206273196005738260436990392462115709544577263104331723832295464992601103168351220529293563199721708818775976535655370115974678594549570528732066780048666061862078273421153420522412203615908532174450867161827503215444625185264669424077515443945906110120632722657579487524049555214251867925829562696548416673235604317950189924616233982738680256564248018714793009893253888845787559222339374484194740706977233882871395025960825322881038476125922026498074573804095959876980691966320483745475020977953392893097057281033694031867801090820428285991669069888296741308074622214013497204881896676811936924670928458287578737699616861342153599383916450032964787891291840853632922365440095271890122202171526114814451968233662655726854389156369279534049119318216756812323627513344877984052308900946019762569740575837290577456264272157670444136727646838864205223214502776432452939954123037083382033346938120412686275635758228109920764102677240540093381928295837552593214303951585188620347238644483706696238082626065490860655396364191304330003981703085639129171510163944405294794228825780156968090889135158987846403100333933498380266022515520933565407953843017561546705351758361372647036067977600993166514985754761528693123366652976689688149780541093390178070277584782777264279659071577633200903140670384682839189859509428743378178549722041647113759437880121412080678694784175162869153530243199077736715999793125773680348224192905632025718175878774506695803373812249167146983959913557012752037298169412245049411006730040427523047881551577007735629983630246299951943972639655416108394849038945612312436731941035617328989906036401529493458449676780073483902610695371040309710460594400840375419907496898298404958294882181256972681932447261058268379363456557605169237684315937097968628479106349641888568467844490936879291690486223944842561767180063890862538436353733563326131192173966218678695376929982860818738794352612886281375185093895751853321213243282419571586355463443557797966897478345628648937421005220723229601915161116858602225039213791392109505072138740026760186128518159596384968228524483685122357563805269009093509348166328017905679393151407931643020523426496342160582369241255725450129820060964544670149973126522318188036924128029601927475160760753580084163178135957548966009227004072497849636725792598339763762696353562884316837001860433844233543054139108619289884644913499384790811182138037531699565762531533380551719314189329208357870628268563537725024275951952969570192461494889017487776434694702452979552353926137813971355655036188303637467323194858911053429600602939598980303956021364282157575979836941126953316880244094859671411877385980392566719323298127739660749494914109985175287483872093954728089933039886993989178723761400616216121813913003677865323301883055437094625812172984972836944442691422358003058843686057443604476768270477819370617606864836042408739532030247236921473299465662315527366954625738203134746227514177592649837643812434932963487937595024635095387278473116842471066557118342894482983429445430466567329569859613704704854877868094021649896433663423717845996770448655531175359267654165053239357607390774640107724496228258805305007936064823938991631736139706873248206195925466709014713849524853109813663740335349850168338522915303190551459314374913866211530771585045454001399046347904476599333564118250664431385424769523593530535866169247871691976666700964113052721728230120213005635036682094417569643478257501292761042922898637024813996864542286399184412729083582764593568282644090070049538165959919730168402579266652672318670081113049583919817278260213325265011689474831421990787809621219784669123913144598977344152478970923024736777954174033438301527266921829850307993477334867473092897769380139513856187859338253996185301602601727951289220234735766370598284691537217151810726826881294254377710508195130677829324865549870837111126872201400423255812160900282806787040242507144615705851669553462702461322730183117958823539495757452899289701994676861534246043071922558029960250012791023155197661861769402972969325226712808813585268030607856357074073312538729163650308239793760228712414779225421883629873518081159261419660863979926629935566513250728485166788606999441346751930615167504452872896276948862412679145171272579760505519321234860422866549534714674415963680033994982165043395211118343965673814731231257402344793771655126733846032036769182342223990422949044489983467149016638465700634580407704663556374455637584085089502625926470110479095092954696096017069819833279442522939980096630042333907030568118892346721057182135336896542743517238611057030261891423283777100126049424120032592233902813239738503239645242354078721445047254783736388657978302629135305086263383793299906962278712392295908840816526574599460602803760147198269703461492242566816205003078789544199213557137389100090044303672086842474519941087515298943784704124571653977479039754549680376331292243665875323015531357196574079267517191461532882183468535893121495087562480465643025722744750046147436703862400265814171637920419592554152757823186703547695512070308271159187844309330802118065850679909210010627625460190336335887619755879252212219661555900817965747027540426215013796873413884832512563473999840050335735794022958758245692423550444276503909117242540134669030361408531802042617467072543052702489937099457921256481517628095679081042838375522159386047743844550891940206097660592344755482942831115272443728086917723383451573710539711272487776829365096410684832302154161609250950122529340828792667357045865605253014746991813807403308194102462746371630025550056295828249117052476083657711431774995638418413257142439231891728884588442368267865384602666567490509153674737886779737166195560894964385649727860407307609896476174847004975960537648194391594337182774600705489834971267902756782353658514856431704477035405738603917478762613801267886692725465702202248670412147836292878601471839909452330984690720947077476188067379175915573152980390750683758149429746117583929776484954667300272082739327376748296137123122095907200491962534695794145176684732990075662931472807344993350971646651136781922815094882955531951104298192821810535334187796917595898590378718736969021803896274696537696843386649904322431853633435421109715677137932911619079760488760588026295985754846703940805273786153410896271337162561806718393228817022534690270721330761651614028925449919631435661490807133016616177834989546983128354017909216354206005975843155699546319095355329670822439724196131324120606975941854198101373220541043540132344432011479070200558845328388090583069602466209549373283773160393345855607553744093981393099654954962557278222526923153380132974019738562123601923851712141784864476831342000269636591131578304887367038727673484357065855376704546226210909259645591089479492379419274089901749269897399368295240929070071397823348013702588413441970271794685678009465395889095557658761546759695076954857810616733564068806277725160300240853472950170651949910627462978872691451133554584735885825059793410722325250444549510215487424738749891290642355947448291131487678895655597379169337900049915753743853091705762719883632216170660284247965060008202675673004839372370508596924861904377200549199924643562882410253789370410951541606312070761559955032398775719595558149944430617598510204865987563838591003943757103551429600771706684718602151676142490303758499162028995274678095650779435078975992031497584209958194344259029631577406246985563021459749463975030257900076046574261903485935927169611397035893342844507878259840700295846897215065647883096258324125613586163620114253272407568663835287887687592882388448742888434786028403748091843418845943786939687193202463677777914980146025284674654468364511966884616524115365578734029377189960046763711332526107314032911107969747740015687897719649288853502894131357704730158722489904586538639371057623460720544452363217798899847750662907901537110317844419137591131333039077821389266050267014407794352427247325661691333941546867801793147822977633940072363009506719137411828526728395270751342202500684292785128962922036062845429217137437225862542341900876084493475620600093550524809195897076457678266918073467104537803706194135834159736837439608686066177798807380760473225828589340804805850246591436719995333048295583508707087891609926900319302034388380422756922798326136869826525501618944169749581599571569461541898055566139996101518105960413820731713554806840504933837649495651653382909533795849819052762993236875022365159558204647068136208337416975395236311477972417933448628059619030675970941643640676557634566004530290318437235231821680855690581959440808617809868724339150262563250692986178565981722202131778198719250366453374383993319212199504060088322863355892503853924720215926097383921427184530996955108869467552357037809605327736978909258645763305628849302413730797800293821151543874413656615652707673484637627398818203597321083052584594345836672711403373391698393376566283918832437629042034086316353692346179757024336697770858692509001277901328736841726864569919037593768352576850695015569142651453067837162541337173371666772509428314569835540303202690087815071050381886937538336105094195221863250138467785700252420180839350672640225813770493527105120315737080992455392582189765481209872806924684873059306179423273090028598848326102466458800540478433748825619982618564501891324603158381471066471135586693446058014555027021858023746079948993745601048109900047275192061911337048385085245476715728441395323359049842876266205648400712029831149061861558980014266997606673027450933407501089453039222413949686203974690729626381241943159190962905547511998736522505708622721506804551416257787035574303317203255423915236047990539586592941519457252375930756213459117674666047812353796472411306514849008230434978235570503541225072951081239963588693073008831992157488764190500660496165986741121071630780961419562906526640193224677046111314620883561851001581564481378754639669287330728929263666019071218509887521204307058233435686436507386498311424087195531448076739614486239359144370473445991096271804078686722386051772126031542106844340615781569185186620483126387454389653967031664278346133798188046584055994947036428200208347380763968626999506047435712087537880767333179395504243223065102889645497718583207669295976968569973960266383535305004639840091318675613090679440602041871323854135794777412982014947619056199694489841694678406178859965104282671708519892767999842390591286178211884963898920031880746788683873826189851480938937039496534143869861631258635158726924651097621157512170664227165163395965681566554230605990476511700764198639748913541515478461641389814419830128113427550838011796994414425318976567665849126109907369229726478070486894972064961508028720458203417619474735344223870628719233490310518381716714619977053955827902269948668543431528732460002597394764669320641435354364519290889608348411105631777187391685155258153241290648883611903465547924228871031924698011784768243623753811971300019246124406129277245902119480958877635842614847427975103716031407963737449869242179089707644876683530653706900626719117692463936555591943235273339755260771145263536018615924683217459841852883684746414348562482057424743214790433455688121876920447582738784977085371427075429998584069054894781339423495724903509973051534261736449366159162979389824900567415815883883658144849696284078024584936287306279143528924639343613657636236716866668010136422134101726445856154418097004595646107791729172135096776914364067489343225209930891302147928395270850675852198096750956025462192950678830558660132301963875764074552970191032837957752720774190425797372519089781188491991126779133809122781232122777904667323341994748805654825184159898573594352564314969560450784814164840264396360351595089848238248567674063834025921974318616322728230051920669990408369046323347589606556925888848906865097390973218702403184922350379452732123257929726861227398159406702201899253868621561269570915010806669511123509059741866975769979551138154008196084999908326088902530681588492046554389690746739519294979628824905859965809316771811483253962362592203946757607295280042322740178366819976526009524963539058565358621975975655375536505706972074533900958969918263824339488194624905161576121799113079223148391719849800847279240730176377405626834452533043978542103042529446056640283231102280543560624464946908746437873670263226397310680881816894464698991577278373203018495404412713892087225362250409616754401188752422096835975048322040307746191832139896402714867154736606110158175116361153983098490054677756925795730070348298395698750094636100332416782034314089793018529456781271569436808051880594464684270318715207049547109068800794747315566112368504480672975153902766106008593304640681799471194903039338455298933072379860431143080915337083998213952583258740969022357108155756175233785727081788914610395572062181811238609785589159202461493715184217488976929514876179853666420152563038615395740145118853114811027410467819644280477060473941760589467877157123144854891690311607970250700360825203213604352796918468103847818713596423966258426313753083392040041976454643313244722740924999034466422745384945842178165511832565697232716226020785775996063398572487099621807308312259047508876183085640818211369353203783984289625115628191149277964853746558202904410245655291262400311401308870370378196883453003994338686290927230784659296332715978298734608188177375143158348031424976938705282746456920218065873890376769878642803547350251811629960776960971429739414359970027329815571185299288456973113047851055272028384789543963056202687768257273135661042020528184981937555745924080637027027469871476224653922220700474504981983151846977028887204094962893150330893576680248409396748766424893593176842869617735768088692939325946585119224086617038064110974986465188853131587777443127010352876885076106598268159094372227188579796493408664173925010292354614045814277504448040643426951145332366762800689590901716622275266192936989998241382285156331322228621592434321044920957095652729929683186435955023719710702310331257606075958563853739395958224321053569003362808139652177803143681980565188750860313411076716424830160297302053263839761452176736185882333026694992645608563487301256726685382812136844819120463520206079217047375759937559627148656020802008699819377166959133396749497874939495836699303674276899856644191056237528522987096948839431167126874520665052639387817776638855488424137408334971407618730729579517958698573845525699242836036447428165168460601991832024033890000101515828397546414405802037898204611796989380003181378931317259050452189994830989145423769772746013876347420802330201820812793425230087790203429158671644926361225733281361885292224307708361476267407958637246837634234408171234793668386609855278498560556223232064765123837726838921740418572235487212260933223119354488048605325084095448582150920629903566545952441100902803012526654697603090674299826521283911466234016914633802635943962555505643075025770917520237189237623462986877984143725927809891591035142064153197416073770846072840141705286107950674629510344366361570702684435893461667247670453469649110310436194685666297322099622034160185146159364470894142005013467663252412648495798818751855282591757696372040465586798801717782263194360361619795110507498298836862553721263208589703953816041547803693827667518977323509604686285217782939912310953817879034378998758368454725360720249738519968945235285456449421296499125711402101825303848806563936635139917792578086153075978596048645399237786486451406307968155996984411591961702277228229484763406174968693508515039158566422584528198514496690910629284746734739186191435229598513327740458761038980920199326311551606381315226045384491842043337722405153259593531216469746504610879194112523648914441550934044777351425568464030297791438203659400409700048613288651673880622258777626882773953089026749595879354080355997195201532703726203722735834844904951160540984220550055239273175311482809346194120074504707602265753770483875856830807655547572472195690092534801656778165873759165173731760903713299821112047385978377154837100893595993832606472203535427764463824147738510783378700750339736690629083494019388739208030420520699153259398326727614977091712260280790936778746908011410239489742825834207520007096261342129093285758228777217214708654348741838113301976750657640285095159929053637221265106195786517042117831879769328817113632413565416449310629171327768879507715388424757863399245726319730102258145816691557997644774154828323881655670513388689526150564427764638234664933882327505366114309181741117648780529127987581492041654371510057319726174220663950063032524919276651867573549196623531875363806869174811613650648269931808653916618402498339947778142321305334705060790431968264227849714776728268138055205241082461429526229549449934878434415612023090503718945856255909717535477074850849153707140946649040518014120166179000930956012674178249799962888855566281248791390394502020279632564519393512898007087767216820726047227154026704187024647378021617582938142100951474031455488732657604237155462859550771157911078934889870364935518851921454564592865311108426190951729731091758932791377488140727546598940015273164371158670388292766668127637111248799567345971798130454228176640089626106381801936254914333513656032658494747110770821894203298744406387226310832502127114153213475121399477512079506513584978543925123656710836932049239623713994975525691012514900348649521113524661399254639968805084050656786360360965555966509812221705793101285890214172514689495923626210237671564015420733782905867348384722226397170838896388135940387447450521618345342907233063558148070449880511505433664914791410472039926228100759500580835263394102316898175106355401722885709335662533537305140645592577465358433354861088137611987321496209376335725038735406625560837542084491390493348798031204624606199187279445713119138710545148857515166987846104915679245175471682163188132104249302321185619624201464482249862900954177390063161962275771392912248621565826442978349148119238181721162651111827951097646132993842346385659037605385695001489664589151105317824185217137535500790841174117739627021302628114381351429892760543299848604969424880845592050769510081821453121665124427571302612970484118382488923083019673872139064989766665190462565561992695189391993639238451854341979330165194891372591754116424532008888029701387169969380898001203000305102060160914201057988485669714076744885236805361727026385886504177949853392933495392647216908552815841725855080129634334828915421713555099049429799811448707388309008083650988354103154090835589090309248699734231911091945476895185973677495918200115635721425680252170105592875682909128102868376256878876693979273728724972968655400550017603717108510717425598482879208894868719425464470123096584819777757777287920596203264786587739928014526436943670751663698437582088329632290276728914566885470124281592647395396088854548928733877434412032976757925534442146582219953666842018301793183021799872701511861571984283416204138347132625790981477578978323883717194039064544202679764069977116094441863317057566888656054047232170986421786749149207515051840850387776555023594999880567376855036713142850656018443678437121878421482929197418903908601454937973791747260791188085695720230839791816722087850256358699523030327549819547826081440135570424576892927365238853696616403829793820735992715246620551306534897759244271286090964272699298082356282289720111444604353084829243061059250467498443843170143037049236963535735654350457681764792501587314000799786173289629103120638161949597154396676207452970876578867341148528485601791629454932715178596159242064123305846987969030167195913601258001341477036790068722457006355915796414573613304690732572236372675810057632923643227529052155881920761035217899386638785554880814387902796959110245874053203732967877803079082210498910637394940884191896865709555420989083005476180269078213081065011069327526088248754183541752041809666915717872939881739620386749936101048307992794506970328667837593574965251988531548167905608431993976803933476364129019614852355767799584024076309303050763261446978831832976819904444141810160880063117045202390872515201214506241787349458337775439613569963011630887290397794638081707253363315150540425483491356151654232494856585911864678991745766969711156220114109403363521531794415051442232776071777722240960478902678702893546690790207187950961098675797047915772815899553425071338137712023630671771756236953466633162945289342833821239646099906338750888844854045278994626708250685794476719002570844064634324407957937486842869066858876770649804491810519524635396235537325774082508316414566829423613226209591675347811504685137051443274126130499258491505224429031326851671990000622808656901306401919914052087428057312739454723417689270153072759167339374538955246357886232259278060133230405146643068389314150588811716360278155860113640662233958296010043460876190577964138865463837766794548557698464360524077262800140834437316591162379622869418058538559314647290795509329379566277194941057329729310412590546511419708100637915805318655538879593566605519723912151941807578952350399382511773682530655353144174238955307557164145080615721036949187196034088402130820545917201575746363121176820805351042591978508504444913010573573066195117713938268021683783623304447055550354918049290214633409942022555835473453914614752989429004990778362632990676938471116537704302790193673053392320235156456236455888035962802839787621288712097201172395771091263389685292392844605936623963860318272502284070857554154692496407694000256289643595007702646020041887339401856569027942157421154096170827457654140720665435405538383565183086783043646178041664163774810935986947634191022478895730034131820870169273841173449431078278867467262671471828698537141300725767572888151171029092677991617986530556748264542139642208784415078385285476777594080648216362484300182885756734034950930316062721405542370890532286224299383596921509709099727664234105095296423357364998182601192943741360286160432073816614646766089160863867864891116562130885989583949246992459816859548969117402931889458484865025662640213987033915386119437025542535196675649818562946688120363712524688605132896854076634722041416276807782538669971755264954856883274236124952061261441329602088259780068546909256547846456823775223827809991677183752358171438744432542921868544081404195333103135446772380541509827007343562428653206930173565587517699804555248558532285031604471419813993268751051573508982924226342881751825566766592384799264000974804989365038886566567365556672692617654589614904727925852969369408492628136603100896235832003425097625326045748861729849193091419874210508981618680073183215683048005188006561848811719105268614414800229808944670995581946948994480587069678479445235642771951273970953084337060132046866696166203429783912506094480429694619080562535949121794239668151003945163259815736356574534183686063591150481899961671318651373385563581709108819551562835727667281652141266323899363463672646380094888537633839173863513766669765282489605272604659563429640191111609175719233647226410872249969238036047474842022778924503660258315965468386488956704515827200365290785624259313089642226808642087116139715346385144369163278243806937046835228098465319018837951763100571337872422011017194568978783354379665865808463694138803013072411466295327788650896917486761620909817781023834793161550484246402791632931674052632939987604233145421157905400244295552041020042785340807048229507013049830924566278727433164514854967889823323780686289823269277228807872012648198898064492620974738337928153702324714117667044856654831426181348116393647728907778507022604911191022914647284135437534585697694802743473312322514284031724369344313097160335871270735405816260614647827684729984347539187452808770339902267995530083655474403843301442361425502058088343338763062270137682407086406876383421954577931540224312424728365008365521100469477102580947162220439220200675379555657780205837672284554324423368261002729338799373094255723227811914979724445919034190225164354906815269707632523162712820070053179752478079721210817827895787395451044210125837434087368233228486873106797451291163240752022087493236511626496270900664842283169823829922995210028441360015395895019441869246898504217442644306848122054967344231111960015639161803241418422746584062613738494285755160758420201653350078348957426815068014164542532001154171789385940134303609263697396345244394719492680844174555391483654786460166763206069130876298565600857694613328458878969729168888680909155583441101174140025850072620973041404969892960436327592556282308924965288314174673693650119693719791485033148521956285203103351780629264701639516901420450252674131770359514794422754116893591400634650360735483323044872819289419965712764746194295823406194936978990644161355497827244653283380010168330676053903450927330397714658325415023480354643599908068070304246619288956493845768814737039276094870452380363000509043272243057942103810172153091139298864334674074533558152379048655628496319727332809723831313191486683144486651166269565309247957040790496591392989237377127950574562053551283035644406742564062066679574567092208146916492143422629900881559674972450910737253653888919731409281858006877544507266228830168486091499525113474108654394868847224079413154988046071394012716237040554720575260883872933105654215053806734223903596560807578137924745232595203424091673262736624429944790888415390488565928137226116683263048396274519147952004056309545623346547282380823955237336460139231803839922840854984115881026413393469683525855394272291127603154762319278269348843354451514459400105385037468715708378352469834141473367531567954323685695523900379394710494364122803131966161374890656048244868230606697097931684482672728040085162293209662253660849913127824028280990382698429817005783514570019322192568939760572880625313710005789202470251014326071282801664809817126353287855312646807018729090662611550675565078170956726707064065770706668150336022011751769738217498246422680403979447191234141283120342317352059297821631941640533646014825937462814197235006476386854547116681590716885710440337961669806898633737438730176336247108151592792841432076976698569411758526736354023647170066363067306079153396513009446932827223449377488368679640923361522026550659799894005867025931576826335690295614033139905571765929912684756032861486558323595280936921386764271261945204942694782750732688497112575906111907598156314114632038357326086892759408775717632854837244963267838226967590367330229478271520338268487900218918161450615089366711894767646019897924889513888383805689922607897152837431638521223625705802664900895467596179125857806044198861031819807864075184701424504542094149805633209819862944506677617574893694359200124988605390004608336612743516979918759689408663805216750760036896712957617995530619287660069268145828974864885466012218491333731187154275507450883307563137213432811903040387283688149599583841171941367919044653225531975746676851957411010389833136670071756559438260485976873380398948636102327773368182294464656560948670760980313415207769148842071185773183949282917371645840463311599855492253820633077338388351058822257526740294090112905655730986786456590832064084881128568269300368314129911545089248543103121426843094721301780220405727051337808282214928621501419379479712369477995788135856562465487355214336217076437897365562123244221430127152587495162143353326650173990388309101832905927112670451810899966721850341625197461682677638343228127959457910128510352601361570084048720536802054250869818418760179429037805316025121928292836062778802175778065554794100539365137788629312913767160296486745101660413987411950874922030634507960879587391793189024007309089985046018233005598466267358105174174598989256496779313810605121789117325672344519288966106859190478734866859054415256750554100932524309082883385532653109506357229877421213003626409267283131815900540170044821240922740979771402931906245592792631281327807767474209342001029254092231324096687375245444181029073189976551672740480041851307819465829718271887427811829875278448310479568726520735307432032732613049739612929158552484667685606748526831370393218969752572308381232150138540947760539426180214980871995476559676281181342690668731066593045514290635681458853651483738810997138879388653673274734934219154934376781268676356884675797837020948607546544641460515201606520797768868915633746696371063351351487002511811790918357809946394837760842515530069349617128207185368085038952965923312712192613644438374436964420487457631270052397539763858510522778102517779491957017082310480023647722588607608448086407101496781895800910781534086228902857585639762244988836415362481625279354082241584055188920843140841575254068540955597402475085455977140913404350419452416592541776954209248229430469210689502170964634535188212409686451190606154729975437781450944758356149045695294885963960332277875540022611130342346753677938435176420483012397839852801335746080788132922027077908435666586794581354806803041616788404321645454428401572379421400042223648922018015899516778530357033210242140380250336546957745535497360032273527313284235007306157255595081018611087758771458469089847584318878504653035417634372545952714247108392733539635646626571086622943690426886293225100509220934102546833579839378301077071227379857722611043446679923696350353651704087718482232097296890817165884173896213872041857971820243618212419490056023104716089850187093490828802805509407815775510690896910311834477125378406815077547192219601704407722047814769256083294823850785536183090181162339244548891183441874895384895671165270204964774401776547327776218576160412755030290173632150189523322625925281747918060237558850302759106744417539264531761637063760368673729681866095078276097964548901442587062865188165067957325595982054266419818225763100586615360589050526191741819715952258475199811701964673374247009358251344880109353761724081163416949421447349420015670354498013687389954864322075639364725863577784933501341779443729462783968896314133977064615781157240738483088174384409009313550280539429786354767373348429673431752726359663410635375822452285197474033469051134749022471433401703015523253966299576625354124290365369513296501397835675481989530119592590070516727798191443814553119562637083879922603430035722330137778294027882475318903064883665852699678936899691012026450688349671321801110105250154125671719735169759904729684332001785386521380073329184529667237835024185049033166321486494079592667511074767666545847132774432611720650794447248802557514509565085602029035668474108159691628739489478243383870625438471420307963322518770453449529621683016286939970905620748415893051169008945143184529585235915541143258729366972120653716521671378249377059763449185161185130462302533579322601664553619906157002571628765655916759743863800079268910914507017416248215020774361009633790144028780270628108275526649199856949161089347920732785785844214890295362584350877656786481072476942848740674151684688314719627533823459761993151774755195172946534555753001683251016328536898886989651752728245149083050464002573531361963097383705985173228564489273170562965196594543562792712630391438045045352204458001273072832781000587579775608232275392490802998068479592428050310407945137815597374125139732174764070316766674737047085022991405694765486891355684909790609840532984392249620765240905888868178735614643692873746680939826082213483880043366351034071514915053449119261897866534675218823156854387089503385219849049819084347760561472040764565553099761320601089371937203347913308127729776847146155028955807276249760760923121629269133534496123159193746200676098156115141650478831909117450546615098926514434852793293572919152079320259590592711598574479306663872109657110024432947271030204914445611213173353450353315087074065496636736007083107089012181678564338604531034778446310676202925801787017223183949634917269024361746131868678949134717155420769945528550947690268089690500680759733305885275428828270982622961128637672134367449957049216828715960810253313221748330190461880678813080563448010774930626969345608206133336884134699467061493402881531272449827933562119719456363569055541784760347827033879667043598109058016724681385760383515969108806601925940184948957050121704434529977766644530216883252367104369425476760866231221400059760429727495121863538476178563156248636642306276328604947534833941331512598859658661799040257207581177578582184377827994578111536704024347304300336384462028894829489783940821443180668407171394343358164824570293405018350401793793953891971245180648696409847642913992705261213493272009748817978540846129423722001592467006206084694199929238380264319415172735335413066392377714867441743024478859075607801805858110503465712991269054862697044881154455067200906558972254961266822999543949135410296388548470296577201729936289182098070332279195554688033170993495456942329787946768087663506346260495164311510622728440516981646513359985110382307812118532277695139664576869929607641275231772538060581648316532035905547799874471361845611903414037787896089093811597004143998616421600734893254541751532836599564475276159181535938822907257156766307354465766382362441225198721976946171131782642243373486764424816235414941304282869202021869475239636964348748529147618043816789524110260449679448303560900642352370736647075785425840369446644473661567567878041132093343714110762890501438341643166301474811400777116041651597278386340757331832219809993128494112406332237124332819072688420923881974538845935800883012738465961977587312541968700237214633214068502647262097107775676837476392400048046582953851773568493483236774575055054579025102779545754200940054287408717715570829987777217868267780559182107962459363376908918785578897275506056264731453070025141316768940727333517752011436611337468096576479305990459496609440864816335287417610437203605017201424422784641059620112736380772203199300131922939552396151427473445245095182757836089366618722772959314515925923095367390718270550655694984184342080803005361802193646078473626657192686497354701787245193034846472249493560213788004086100389108272484322379708828300557471218467636924198447416850165751183919355478366912515491708092969147698388904098561949410368790687560401728613320842236878565057276290529215464744615773256900662161891420718121561340058527639026003765470121201211148485146657161871824499298497641557393777855027912152272253579305483076254386220981991538530308719460593022337885920728127353161138164777086604189974256305434785279650533504654150517439925862678723966943058561357763440420933420839176369561269393883499707769432176036912539435906157154239003967214731418123432453354936846945026055929744627887177760987211454603387716822248458991324055675230441456029724086041319161715210862730992071050456163061470657332715320712702185684489117610944865238993853093298194663358501842534859667782551807875340148191031432313187973761942256482546785651815007494005717754895437010190864617025408794072569301556989456567651417054521821112298651994327729878782080586440167532215911755579485662624881065375405209413993807742715372456502716485604087437178280977619106311842205819717320699102401626326696444182765200216874495054019411962146547702351643728421354489537657230588337122166871779035364525309090562875981414639467006172336739448114020610182725013377215959345846662995484452268722026610442674652372467305761829713293796521279546974935288948749691020325335186598732149097376182864595110296133607034527624645641061198988631064546231423114196545017667992191679467702828780858934183239564067665608821784395170399493386301548897978026415381648879075611841678120908130816702296976333356412151180301237693632034782495929158492173686568056790611558342985934223422921380612696376065565217811668339970542511164793999031865209762355739353504780469841629726816749198496844555960342695270941669979897731520971128711391584578973224221242223008161450739379201725746741255483690377441280602713147623673330558563034713507459632668753777755076080328142198102133194072033403164004293656434957022443333085499299173023071547823767726521324540439564464505871226485556780099558505398520226690093928319973697492008069267172509513593089404651002185736428349107537337761944984892055816022669069945375446900992215411863012644555764884615580236782979530274202249461940078659016812303259223882551557911641076990940805615262569466936236800637814239060372052916089853461607412195600733539365474279151597020490795479720622878816570808115171224521257496332901709874326900083895658723163977087271751878525361841996075013428878497092596053915156518439347428794829291132427707254457436035339750556623840217750404483073304369997959983161139649227262523582593538167645720311183718788382478378680959857538467347208461408828395728013263869908173973544927352582464714965585752193355492616876434741082073180918755096564486910498584778104887555492248422367348251467085295626083926206738233326938495998353372396536314791982062057186653382974985392644680258414879684979122594898430222774631852437835637328275747302500254849164678852762961070949368541133877817791125184824160511906076436964988377706092289454819679369411141379053776604938596892476794429218055090255898512751233174045896433182483717221558363830455071124209224392620168001791748250031014892332878882282372484715906189781077895326650770749727237606285762930516005747303917741701881631762139408673737364702385798307654259700275645784917240860735489234497068452153774742897622845876678005931249886195488174257641523890351491607773285531290379101341348496822612918380798612584745956218435730243879892950772341584894529036556951056082839296669004303471285097134828610157646570609224271208112753668891109595833675550516030112831344789955139764642238363638934108811907394732760244820158867612106560982789739393303053288848436706935262810059910147841764517326632748073701730100529002807816116691074910741219565972429094256217732327883889502730324099567620576480797584350730604838668706082920877385327369629929969841581846998589669488343919136616185207888160321878488705721480437369920724866650074887999690556993217515364069293978862239138894225668786859683981431871576612617971382012735211933084221149062853750403547864485598660277812097486529888013053155374558905339347659553129791052861423760147793502252485919067206241375913006646105479127511755489320542717748412733853633925161295465830616404738847137351119324015517204664011376781221192225033427489804190601696060241382427574511875909089704261231162573874397688057472242432922025243894886603330614253281253220605082198865266939831369185110403102828534477864300597230561318088146446137084926711745059826966873620079903546565191564233439401614760210449403761429984870585379501217939050846296367713002986087882441396371088478079214988450109375988477751694927244860501712622081010519242471848610432949475894340431396330272886284365103587446158527513915823779353203897685479673316211318051239781092932603560300749272284794508549123304097525093102363389239423899941475591494493628395235140732803102772339731297481745611100505151806046604946820357794149519537102883627949056316349320860368381137906181485129876817302075723372402990064711651517599465709662026984069873134437690498021573101439947448865569613013804463771737489591247552868402675092370967420502515917625848292723868125613728654898061311474936521129227584845827822926644282636563549952164396756063207275462586994837429905986672142963318727580692581014406327000348857628556926797560039832518157757669308765254363460563672201948994699762838895855723380191186217966404152756305759736789420868963702884491838971479004361554393406603584100576674061998966201083621213976398533731196821928457765075023623971400437517622281085007911540587019607569640775293695085088147728665221474083315811965255348478738163702191772099577161405266043264646555200344994426087179772634694921553131476224073717958922022113607122785866277029229823155496642741100541383278797252357935771963794394177632618837188771760068944515206248430411418109212897867295169064060187860421900802859320421156630496070787452973186797456473188540540750079794194017494138627126540266901175801174757131611473605140878822940980976490925131359678351346278202043146868264498700079530909648177733827023391159419468090174481166152866945244366908500427940539738817949784328797793682146890216533323161585247821460386504705123981961703017788865085055516167871142245797487040291835312748182255914944004361479070018869762780676902673404873249096221660203562478377514136241126286473112601273782585169415210588128165828995759993969044523749837638331207044980000510672083968593227348796321907525623157552948202481959866087994963924971966841306861858589695294553662733029559144708250519775195200162914922729012108815550512949522981345483873570690108625062694489513161081006322384676994508141251793334188587000410230631752123635914805180577447211460878457140284663742638110513382379943981909286705110194938376914423316532196210097209438727176911104744792844150718254044576689456235627346077277801231221355294223846744228391073255702321713796705402248712312993796950590315402484433047234855918238147823023520861667929492464522541890746207556883565678920977392745332389342058060535793854490775399389046872958457210884149950389652208906721996333718519941192851515702584452285447743714366577723685378187234854649753820537892621225162577177019292690588601004331060761780450360366132547964810176713018007789931007330302180296632745862500969610230190216596621704799718414472272441834742306385988274615683125990343451763086345554074687851054442946168078921118291715810783176116772484987147717627594736782528366053190180608523162209116945705970809810487745814099580669143672747420734297568849884040733951593740803593250482150702719877821282286404313229840009535315230578037330293520730276014882617102575723698301616457097373286735147210218919750676799663293510314148023051489424152066873060434813020649741164725272896705098735678496238729584274049013029247982837729140632031738066652095076857443239740475620248194603428118905109887180843415116377381394109571086747284232112585420817314205177304352276712015121819625791176142866753186659577189088624814789051311289864821333357278757190948172252039325539920052247004206327511590396973392748729393633497506878651098290396879105323958224857275034367812090380556226073833392806177357877979694063056590230350039779565354117931945329909610521633729582306071859688242192530459625336684011635744044373906178182784774508906992224373422243178799912922597028007530517029529730247722393860050900856679912235838644916523813296780681227066737867648372005212080271724912679985758260649721268995061527972793106554344589666082701735421775389247884973244558165675593587910143491956089983897792360057907248620292430371435743144221455725318567542220894502772249297222217601546274514476515900469104200799631826510500293222834246000007613898821414248451723159858217691485939327327370602322255851207315982054360698482340296582489625403120499659741758169588612894114768093354446996494312974385244615763290966919877710369331987286796942964602508890684281543533842932103564310908679141567699344374764770548516433024298200939511983847415661756351546671939251665442860949672888287772578865527463620262809005844807092668296796485905058326031173183872108181491427074006153610719604314561191108678290222721976676664232554143117734864765438284073150468871480869583309044669362614619755801059133382811906566440116881079613793696873876014444592704531893976047850821069984813546789249537000235462044112505631015760509508707480436516574379502846708924677200228491249714482267812813621888852486781595148357563332090888537986382562365114468647553820624167821465744970983554599027272379949999027328142929914975358145208867692468087136240227982880284751916483823231171594031332318999384255841974106113473281258941760774327527038276297321313508968710282930869018782279914020688792317155145818241864390925355831604915605011446188364167380007457322960022364320032389333533966109833728624971341319927528619152068935371829697216112966728564769637959036862053309694623976841512168214395594075277707506845053748772039219724291850203435027558377225529820017464658916699241161701601400324945077230944670411031929027384024458184023377104560248893488520122943583040324958492875102498100156152177008841155343493471468006022705115945200380351886428961467949871770501744153415067509594339959156853942294906682805075922202793811758019436327455860245029867831429659276646467957337489593618296588663926657512090000938213422378216151469284395892785984278852345149578225647175670051747180980503740485350454645657372049316968415799479186613593818837646605908092184030094640993731193339909685771759998724380895379108334622155795230251330693683320239016002422681022623069782802873836624533168957794989428205391150179979921006667878008625675261428006612608621346398604878980892887130548056620406094803207268495831552556331545836700032647390873021657513373821193103136549487421711679312442209990945510790736489417959371158484414517746782143720229407186982409695234584212931248032111523860028288286976570327794517206338994976255931600203160998784450606782963117254193979214534580396360010673326684953348041440668694257423005438311565390186617783274076453875648373628421617828253108934648620633740975221686398290544252228794703209846462210009697171803790863411081227744757145253051043145674514463654375451970272725528198336396238118614914789495524947713120014955861351611803307175802738480365204929556846216642334246470613624108830039993148810822200754757094625641831820904452779970150045258650326150232351713861327477027233701052936344899384239771009106338629145248061665800391280426480051583573086835739929243811882495197364486686745629459849654914133947758480831911463271270257393399368256479185970445542387387432243962730262588633088155723433447778707367055730388706526898616919750124892555874019766830176178622642119634048166991155473396620951231399840934899409765336006381107440517325796292670692662777795947549015855579858929636001301349019628656189179827672324962027218089938956862402941633023522365999575725623551851266484487118908464901987129559983320091847464744527034541403401775708918117701492795339543158352252768493982357904927243852715131010150605966792689937877594143387424188568159160168235571815735737904465384303449111624072709613597925425087739324338131279781227280382455143953468978863563981635270574782815000276645450050103058549234285100276165262088462171439476428220295157256959220026181951081116845709100009252349805384600751794616659133291590146401909339782471281742152974297000391922930730638557919567387796546619353966570179676441434130952939415283085522081794955563360406951425296342906668158019241067276252767011264180764029680102449529163880799104163658101647543747106206818512447075408935163396664458850737200178991396991185235951125602877997211960448585770562241696667504231247559738863577534365891904986322212270763167503631257285941423019277684913282734063218700369120831630388682912515036045425254987523175272330108271033445073013868585553220525394670452879306013129486639731526794914283312497798253817877649331336417503965625749078178071263267468767793141383292459250509689170923260241389763569844506062986624927266989843194348988122376177760587818943256605218500720126852161865297515697731965819208495649527086697558177038195386275619812056910550105588206039423572081329266537946154302058825663384531551568654903646598518689013561727924355632069235438542811146228100250110087726304776284022135830443716401743878990961165094953457327895876443753832894289570102588532304279446303792754164723479449908181405395833663561850484731884412856058699142019971928964782670478681586195710622261031344523880183544149628678745889243550130287014819759420006274711252027229542359534014349039089562314887214622931499075824968280405454195577731086896663518607991764553159156830691252886321662096545389624742201999043043834782333799584775825025830023105773091694747502751557261509759504998236029140410546307006577794593344401088142088876558541098070193435256552848706319547561852670108403404574283497317724485761790263245523297984092911581972284476500911357476143173183354047971064362609661834914158883806757199964573888031109192009191116926093816989316853858181439551189393008387867741864360406621969312443697741604275199186092066428497707296818965240801630367788302070693718099814207622233621688482961917911209758385683922431492874343767368961897196598001602595000854132711836105936168568685536034664807602700028288263117753642342056786756554055625745446373923829409766033285912412860948519452912649210972134793736678122845299663518329789512306547340040471091000373510592176066736532947346281823107825248750916437420059243148897476297029635408524730066755904484297809931275416418120469076868115597493407830166285051205866891926724931494330655781090537748073965365476600705414757869971869912293859255815639008763492866028073284597265018479729033606219648759710682344248685953171993666895153404929980916382810368171216884693608647351902455598245864768307989331893484261271290616110738286777931542960012755706120189918947083628319021934180161550772419393059152448106625637798122905806630357174743521562807278452297076107962274068356667296467888361347668180046870959640843698270063835391480375401313941542467820371455677630583522035032370562420508731154187765400977394741342767138892230078941896888444808645005811999210167518596817829176517082003032646173681016481876667882877465055365196500119724877447997109744995337188755230121376945452672036070864501764428463722246053121722909222251843303630227371815474098342012635033155307160711339456863985535914330661326588647448725030618891747710123412943088270281172650013133462249391383999178284768214866074856321410795749090213488736147195899981697545635996911402234831582592550711884675939637216071346489943328295875299586815630265971597414969034545180439206286653327730162021559640673982107901693671702341071807417373657674502043145118691863778979353743873597311927547541504874853979827144644157014812203161889075809177674192954486946822268129411748790948075350410074693644084896118617633894815207411496208986164141308224278808681383305455961178802967875939393735578847187394643623812910610258836651170017123678070956488923213278210466518672119273837005911782564255828125265631748149840334208463687179383401636812331642547071844106005285393175496192302488264447083986713896319817039021876912742356981001701655824160805025879907498674193582704601167687797498451451830621353668716194808865670164627498322325068678778521721588867387820579111879878257915040664198444930846370690798728817671296805585830777406507231000763837793673391241281386085557964877830322339702153234765502620326457505896487631621228257840770320262813394095431078984402822815937045838139962794114525359545725198951783044707291349365954084612568358017744284160471413345690055518941533155230664669027848818366427879305764047052761172713945982714338339300383252193779477232526291157569192148953992767190732442772425609587790652221027363544527194645151874001657919009029682701507795711229141624169281343889498625324703665609189751071872529369337211820833971703460615922646165668695407094694742047873080119266595396245503682885767863482580471062612392906287880512831083087553931755359610085037785283473105056166751034823817082795590925957092926539482065008205013388172276904894429686750248834091173835245250669519982561009520290163377900517208769236265599059803017690751931026549096318566658552538815821739568887429039537916114441751869047850651384288302406807567749715656670223828182531524317813010746036585121624902542612238454291082927970010556547243546853539592869761158017075574898630407608412258893768910919237327457016390328179002188652884692818131018859360201755116024546480631119980431641296222140837005586192480011715136526249531532350927743719867554869897390832311176552211480759516015358945249333843158539396779099536524592790690938100170012507885990267331256391110166282427385014524953170277045288636109522740830765235009616973826206281877967605824622361005997324778667181093811014526705825971609299817749795408733563227126963743119686752185208074530429171370098926155619066529467561535528825707485050837722675650655572114102876709340609968623241702309787393348629137991250032503550877933998597990951052102240889413769384684374021504601650862597858359483627514566382336574045408861009577907431758556138104027629926342310959063819437404140355905695458965868864984018420387213350405971147830558651756061465917421655446392345137151939786573964225893508271596767715270424658541904670602185605565609232182672120650886518260695193549680849467973256803257064332974326807872505285684935258481810633184692333354094419231780752618575055688920590168383832885590221712306410785660245344377971297779746008107187241584423228631369252638054552238333686934223907860985633733129571624497176735725608790881709506847142660755829501721087135112471595586544299202730310724668832441905905258610685154505583919947325868265748759827367613956707718855005884854932936873564635935033082951190074250915487917034907732985856184440086533882293775152588670448700735787330967476324359023226160884597874992077869973321755432214156970620774459716387285061603905004465866985505866290681974234300812103325130684022433281089814270289333575312913875960192937390477663170589294359678072297307086936061867403305422298377803965273904562154787543203779037487272831701666510799224621428161195969915094349475620979217158755229535334485378883988917879811499021231358603806980981822553319512471858987336716494384071203495020760571961983957492245856347444309501486738562885452656670232502079640354657628779555776429834555167670422335743517557817459593263204854002940288410789381117118363768263442625578755591883900875878294775712220532991389215172721100347129311305286262962297777267182282312285426125173117802176350741359277956900152920474472929171088657197678430406488576352364725599131255082757488593081968506170824379438209108542325157689000909759070643067922384990405768566522965974062335870790564231735717862958187492830920498264548105461870814913328833321479082810655769076519652211115896252816105890045191048252563714371051717764114828641403197608009477506380100144222719499456387142591488184967090088490405174010025063857679344620874583188959689183778218977839676831982342381252096568426272012922802393219639862729255556856697499985051268226127076059266188319579368555319474931151529406615596147405951597916659788394283661169329456494601542630515520248035439469079485099765221260772973992010011066579940822414623983633107822095078541580907927750907879681079189146382808441581996660436741488114014683119178450948167709212628739554903422118947179622411197469312929385915289405750569360139000589005371398182262927193258538299208986547411937425294660776021477505183298543550351043710071660794260806708496022445362557914486077992201365854429667026309651300387146081171994464991236325506858679893338197175197510793082393063317718713166779492377200805064856126063059022308158163098610084656480670550822612666086803455226496120622619375124825305989667355449757970094721414864522501038355418065805773879657302931909473826839953673568055992037672367533852707049520648211013590677445649361985381715998011531168249150961285218191197848709918475061184231993971197866747888020793707940396177951549479323323694763306153299763013602469079542082153992371054847205506166903099545701958459916092503174090735796475145950999399855303052374412353122457278210941492334474298030304834107327224901805923903568920400869489818512573520364930931333744314590604323639415772924438031446283939797933213606767856861782112332073330958773627565352255492887381862409056340021363887246947178143638517668256897640773836475874745289044104352538873662415987793984045903062418195345254455782750284878191150107208127736828431552033089455989771981955560449900866589145716064662161310279439602383649968222817968909995179543625644329139023185402461015552750977642324049616961574355301715115673216832361679389351498727859514769284516160876571324216620945472472156392714882075431620649672797185003765615163951440516769851863695557106784182239897108037668366447028499683977689044782190893592284111184078221231842065574536681718697037230652093439651799595333480548437648793182216922737072220051434639930493272656021348512224731151167465199773460947852933179794661572993289681808747824569578750780215362551279266164528568697353610973732282166364714355519281571293257965135689162681787730575613733617447913426854749811656032119187304309515109781783077622378084500033145667306747470563977220661158470483154874661922263964273870419832613888001101561178893919829113532202786445838161578706788710869333223347314279187997926008412664448731526208493025944594209727088620811914998338400202464473458410747240166393470238993454748801705312505518865925335470644320638835066073003092227965259067727899713885936599851163589841466941875526412342646604819405542297751335714604454843858744264091860007353293303325761624940467276043188980423791530722017765589514590323622061925046346694992078920373614714227832541610551660917902412231627309195752318349780528393488224479549557051106560605576897329738784617615180400947677616467304232958792632142586923402700370837554473725904062827809429274435825643643912040622944684454077192512535585231040346476144098947063913140926896401011788804358578738800588000320907770852052360476124479614216017106672924541816328657621007537197652413856248502471125991913730946279762772630378107656295889677284301217942577145243078593770951326504064731644449941993620428115360359497491101677278031330006845581530888081748811532654564832282989087576322827800539279915347470593207011505028690122032353401169609130681308511096391153183478647339846670999259434344477048760879910571074736543897927760283462997308481099038773863059311773388557165648615010033976277123745925848563465529699280484815018590767857336310918404509818160377376137915636986035496710209403452655020155431158211099800329507272343213243395009751942643278398948425933221901081753585178331138478540606130598736306718226500415395617956949683856019757621179393635550276205141988571805977134970855602671584516757939305270162957773945048274117111095091931029968944053707630793475398405063505100032825909699178271629047594301786994309740904004507277541951985608104993886845388016085557429858695657058048703395024445996453271381244476300169634675719118598947133549796584230155045885768015191323821289155974149427797963007944626094610809531967820201231283557349995976269873955600045040253404246842337534752544692970996960547805283901663711987401116381200136966049888876648676916774121651565827003332909751607626321888095093282067397966562696051978733723059918895701879589472474222231183386985108032228857963298090044825749609981274666083626374559074704596898890044752437223488242688067242279924263944914031764143257732571864393033002330098350655723120588289371608957716836553121486388126771948034094843847375425314411419370081010617331332187437336177820975559509195790261824298692285724605114998393943321338509472633471004856043610010632357171061010045550862862034041112401881256311377033867971615577100302288462102005102326829636653811444072278401396579234588889116932441074739814257955453488647790556610480735581763778022462944003170758679262837744779418381604100106254884009928499968629202236214906392239883183863500465022881695721300946551196584154493427958493561023335127195499512046975940958549319957285328867703060923682071930122966299752522777831679076593382245111631612774385771235932923402236561774595980962822345943773866055647227145978493916738798232230502321560185665844801179308404051721773850305563541474635523271107204442367482130227172931647163429233621181474465912833359612191553194407292353591193925859913955282676708365651366433212353160949815789490590860050675271230511501607862857531009097285571623275728802459013745204240943550803174678157501455573960276465212473095220286713216943064497186266510700469293572885573012024445566535401146187067833638817120618059130196410709518359337105478831414898303118116102950103188519646616245748654270620091362576678260133436681651089263106380554680871219955470490963156597849381378082349572163306024427470852240088221116186301295693500305818336231642075463935493775921124733270393489700180879674582653267882749249719708844923978529558240141789012901521339245537668103570278706258590017023344354375689102269836461741026165927104760599850934433889974840647421611608871130726200118291358469726881420458397453867993361012175335350506125895132871470049182971006420309827946649392943603124449417796049427636915932812040179597347295577327621759679349445282145629250518745017073050922196005807370571579015892555633492447877863908146047874120743458624510011365743060376509948331967080016440388385496701954963279291138120116543790219324733623923680092593723096012021205392203909451798440399981437035094833200840401706155151308393144716937522978294214602290579513775370894871920613033677243625335692399475381684375284127685260322313653435434379685745219992003189423064103874320017394380099912341672336545500244130644892576829945677479269600913335287141830806299315149192013705815195255606941146844586652551781149727696346295712073409718139356361700119865913698411412415270541346229072464777810143533282192135196716740000257573294711358068108040680637263777775619429996305600068537238193164867061370514443677001704369675335057825503669874018064205838973406273506503164883758738181112924378656888515680253356620261298768410188228061496353810331144910108082006256753429051675135373662680281544461969712866628776328227044464604775222227256369577125603104707773407326111147006981954615423130184790861050434936885174726197832881021540244500606884315341965059565637994906637059399433771604259624249607323889758532974758263304113570518720733740161740156395078040791963728251794552929621782024015067311262830614862411028410879119347151109971332450584038036926141315240315429316606992519246241834852605867056824641080035361692591814804334064596336004021652700282161852529180739046907880403848844371926146549250552161952245649258741666289653068228310098827835801640742146182984543989871158535788300452416505496697938453982092982434451696025686507596718864797992104106484565728884753465664487074351316182233141986433749651856726454536202074648269566667334939072953973447607143334116581508498650467864158414930009699680136041719568879888558133115776742270428814452409191942159427107272926739919715506795255399261260558954341742701313201137478747881371494762924572362602240495637726603531195922425724149428475978617200643703783355155630217191087601526978660062652631740887273519293767390719222556115719968491087053058456049438879112383980719426707250923180792564410580601712861058782348978900844377315065216739013723623177417474439203171385675486167707052824208419304347553603211436703766174745213763817742771347780435436511661916563833389189157010179106412234581495186499183711017055212553601723132880427327731815740254448260638680035260310332723176159024533269502666868058786506958515705982013274465288553373883307796971161475683017308783116067320514536823977169835235153680184837533605009576374415275291092842199063574939044154267904555229295738646962840223236578479033072340537591853375396259643343541868370110915569077030675782024641703442985901014658290752448003375949021675470103529038577611312231523874286182819888091176534145577073357492936164116488282659046055393351034750419210486562707304879093370556619079132105449011246631637459873518837638560507370078769613451499459005606197347959317690564921979927147816246378976905053726205236830058437201076740203715359754258060438609593142501065201467894874943854252391366642285869756381193361352263315408746216873603982698092301294358568115648177205032000788991949155079683277238561889820225855441681692669170633403932512547277740779749997622332584118475587408945425336001282267234032610064889531231777704719739202380781091333402727425878196120703425892943615380449401270683307511648997315088939758349079657214598043687182710447536097328057810226784874876306331433032541190910252129374739063333641336888056915874786938113114563264787102069469658999246386788890324603512617828808084292640442742056359113889255867709476698983987001745905471773765450951038118384953369379752329670954729888629301562063799597964848659887193848626456133405244880549743178776651468202422961849891202540857688566260767064809459142928964357744243729658454661101778627503620465952404915119867979714255031639107597459263640969413511381427064368729201886248211578176232770938777036251079545544136261115529114926433604695716421503433732441746253797928555835132379181663553017193230973179657286820934178192007154365554939587345593680072443093877022226149547693950453115550703674386795133808861893398042440338310668259835889361810484822426362643969559498507980210706975620972269415724337210289472320490899848020126838798793928798706329011856168491928016421259494305138163167772994492013898982722462830326235156852985829248573201534078237791089905194427060747696555945618258813155467514347501073465555634643040684348782542656883537767439255410122517208851875508337439718731553231622381854331637733158070717596607828975131561427131811442117817261957625218245027169899870255277999676075539522351232485988704438479939854643989002311899095737356940241023356973409376878878793530679691052165270749944445151183737086327286132079928567944655267041130222585774057199273874679769796932283912335586252147657046486751546725459879105778407688101962411361270481725136516177702140050877035772609561256614252711273704429762119908808382744125051587260949748245562973594375991477994470643374997579816688070874893384066575387147736590009484967600368943484688156346863793409328212899553934016318414905387838645962475541552574843168911324963701308118062980101352723598392425851348865411618369539509391628943046475161830387314609784144797705783239327393627170450492762781243536682076891512393047066845641103511170570278389456414316057389049188637110992710264689904216093564550415279217772381300995522164585228635654308746350004805559010236993846736558565083508594901301067222813676716243426461234852394558531407419149427920032913837035610959857389761998471935544841387516589447571942107359349426099780006794137745618009957616347828423622926316442784676985090187846727312806676901230565342622946702027019319912912208680851494514792802002562235193332336101173020080339751640001739084665784143180239006131572201014466633633431539051355238177837000687213633761745937194085606244888420983356442666458186514008482774445824967762733578120496897319861884828627951090841628655713768873974291795815725095100605570099509695358519524425727419628019758717954394539612392144338172989820516872799948472383273060652479583167044366579704012743940783783148747648634654466169381307867709628894129566050439104422649053481479465138241150362867491951221105524394442147637710664930464366534360265403134267291970254467196971985357756542335096114015477129715266550991792113840117597623162781854956765514461036033011437821551499110565744287399257364842608956809990367330230514620668313540089053692112298517872999891996695860161118608445319594485088355940750697075722677297549089304464880358167801643739092318544683147331807952689579316745984708202558773646532514566829710005916551434552283229054067550018557567265589559460318149576241812428447569482601755996121323455347924234788199531273305058488251720898079675323493793253954581574927850738287811359601364372076264576343426182829686384937141694936237860586203536241952455921783985675383596466206037485686331102229352599316148199632753543889615100375718292855242024840355786324915140419072267472404091384149421572898883784712209302600123105780389840038008042355661458163967906281345822483044729357242955859407049708060979918789204513230229784582214309917673764164779474902187296518440795817095714036505167713094607660220435965125174546558656466121529965754073383365463798457994103013978324617766396480777461162073088929297592546282251349862767844898436760961608753085041283243242970994394822373217841318082893742534252514035444201278975117670245791846655902983625415652516316463529032211978490797265379688642469977673059220060258316336216143421402736060030397205610163045249456458412653034769798307750558865051493529761678901951843156647653598487699461890219894745997503527834034827924873100541613467131808329842463552595751641895556725183872241394680475843584603877934605135817975320112511682848270754823962598205356232400878281997934739703123814108253883196751131247078241262924580538132543095701033195794486574575500097088571317981059488359176523311791998266645338892838326994029235607832094571911054868121757618995057023923683112349085070873102707046379841088863334532859774547980710720567985184319776140569526128119172135555897797721097672068900481751608417703511503765807712922733285753351271595642730012329852828014351043002184125566859652496810123763927859093867863363946946295567557443046505889571536515051813068486133313442349572129007296341016757476370280980147349019565322868157880732400054369605186479216729211946122202967367067841823223977787552108337547958930861224109224150477226872815167177522495240988721716007290491403659617621352338867952308287709963549040530479453794767466399206161284403973489757290621514904012938621271384233220856505146951052169592908620099438162118932677395624816965739188651595942060838464625425016178956747240658663742341760087893780998059506697399412158641598939058851283468622696815014396238488838530128678407345741055311590560977650038970297418043035335363657397443084696760713649926727736010479090160312619718549002091024344179771221011103982023277944759031259408507671508622543480057550938444392480234722931400715721874307837542988006812836511578843441720228873550981564833105107074106894635228118652889411139960293588078708733020219556238061125355537995531407800577564375199628724443734833493356313768148027032567352362350214730343781274008823342555515312357951950643469379077364864552679192601345579110951759696188229595338417427667786462342297327189735116229595725536206544815623614384989304373880005686578025078353705596933389999527239104378526380956184444765280481259022362315589863719349836443455496483043918027791038468610202445154840139124051124221709934711545819635993672333244472536494845558614758780328616444368498704814618047476367968059598302013581902600313203775447312079028030676207582083396343127836404847450376260560583726941239418908911143560533498019047386230145832514295497555358354273093530816104607000014090102670348572115435745550239061378610774937244013884656555906077973224253502727506911128068868291741100292663958035961398389419296989073608782893677995884506601404397000956256076917529198151689605303414761787822865716054396947481614541050127625412301277686603596805852078201693933667509157243093052742073109636473197519375211323087180294472885940220877637551951579984005742861605901908501968731900308431109204378799453398980066359486370429208995610510068887258448313394724436958524292606459923791140052426094662301449843463752623586584711814265264552938397542857762020190323306579930502827288393678034789974974151031309036326110995034188370513836660423937070949953161942253058331391483314192223690811647443879815509730236689783410689303548849360918637782431059124719094192970676498642899558371198133657674452057043816747410727739887256680281426315298153255774999015625983270106307527395399584744145915722076362155943523847632345407151238274137426145704824472447442422696742519789248182463165303597062931754996692489191389241511712890276677149760855323826768616413563967814523961489498916750095017859150353073912015119053145966613418060873798193452404908037264982194152170916002457350770607134656221466020556312794663462316738619837390669710018520738833459622372648705907873608326153580796778993501986656036116542080951917955902284486109404237897031068247620862114114844226238570811532631551381026646381957305064208947156861916820172001184853996953434247420378512805956603395747831651581876601598730881284348038047062835149762027756307718782872284530929100485042985578115312996377523412437692066270838099053931061025177311696650132273930687889844796810265211047270332941832113410154329667738623564238795191248326980214833225411875080103581983069687613871935131392012532864316302239592129415254815278354340317251492368602041958342657773802221810479061212051171408082039480102412434608007619529209423940233719387433329620101431286706691908952026221756064238228556937832453800506318211298641810612704502109066066427371592429334862617105103478861649641769123655452764581313555014883600705692164605806342745405228080875865420735225876693157371294989958303122903472925954099791344229208520642393669472806869233684770704556857590481218075593964127470143255833147887427642890427188126124497296129320775116187636936872608636629470722041009325987224347831570002228857191078229937444351498554043423529539336699707303649211848342883103458668606679714445224854294228884568597486124795401726676333485175720828928197574012323924014246754072916326521918436611430042645246910123398321560904675957841284339173149670328838804302042380432681126158847799256144456171158523604563371635793652194643889906333863116026926785961458782158623598245998868107591030850064602769589912708603615610493251173120561970021960629372879549740381909722714559708313023963751912111053988616713298627253947675559149772338796408241361532881013864665586182913925303845216571688125808619635957187099305800075166393721695787771579333954206142179815981591491067274799260817973325733577490881864380886138570359960884551270233912016365092237575767167089234123151074381295148278194120997543429393082303002775517753880182835616753453008888520181462306021358657327199834409079830566576253195222765819894886904657415567068296650384263003162439701618108544917502121807975007999557339266345330614873385885589367562723266380140110525144297556958929608937209081693517538621705323907083452173490334042262550419830974451780805925546656657633280603469811274480823695850760621891134424734359730879336963652142033222703824592222947154183672234276764662354440134473301481429650939126586853589276228138910283374246947141673965911929369694458407206900737589086367971670617361655938548431522549173946128941071940610072546633324644412986170054985005010256132721930347633813082118911965160678825766687884929477433908609558583679089921765634345151336396836905615697700147934938689077301068217365840641402263776798681759545895759541268173488417650783778251799338580362957388450428666535038532391678532562574347816164387186853282757790417135658869013283039394817157172246552082191573101440037391200496734127561951197791060266603849648414491365134835036783561797275205183417116154736239688032704393283930620048416985398915607770734723232624980206832853905377738453156523067838812351405366561588299432547832748422280609017219690763755029324739744505342031602399996100427958795037751655576723204239088986327736405528610783695832768787169595605030947742094220281469362108238237273278392131025855059972891419079716237954529819752291858154370779386376772298493484158171367208651143165906261022650088107320434850575762197970639065838409285017152316090183018241141216698074862683155728838511019151382935191495869774713698567418467870180281683005404272741924556057193119114093201529127727180171137728395610492701195964124396468384223437196930810862143773313552458822894265870774570106438133244715497271933327819504481315728931012203625478229657715426437518029545414922589518424259962429023400206794300385781065134650426142417550218723792294277402370460889698346388192390220827757758084614169113203208332216956562194426184739752013949343651194315055426707826570947780123195143961096227881402949646877110300363174562781878706569980050968335840448371157024246648292129160467783935749738496503274027744416242684299837485192286201429390405454905170682052348382995685643052314828144042382601715121695929298151698064991130707605306416702264282136242033719919570202244831436656942949363684252186163378005550423130823461370680278805914334726460638099916169878144339453325122437074401973272259366289388954138013344664558892765739060046958850693220784669647260535921020871843057416170987617385187801206586331080100116922157543567047954050999262483675365502267700977776943772283450789052669691041796604508076778618145475131797568009865805720644797194144382138314199261287330736881862155762865566444455200702653925375712762361731125452701885912428938752785785247685691074448608276576959568549589609432362035602781696105211962055969802633749738302170908320821120095894603168837800716320113955528958613741663569714068143801015335725240169375208293586171051348329881681360198933434521754370479909762483700066559191155095145517793296665412759188822650013972376368523229597274550631461245502397102812580639663998143186973542512920985759617047821157943053878141284513726045999265926687019663625755640329153508298653846872888903905133398139480349123349926902555877646566855402692832664682165894324571497282276066547954426673027336108310731951753021182279775606217349803699841424806414181272201971254078331517240257820927151006466474867166845657282477549731698126657352330499615918155772165913295437537801432449143846810989944512625064347193011180400891924990360535829091557987143275784822926362762023445014960443166815691042023109625730668678693955342644591342554318952250437684341168929789135549417146602367271603884458201609596274423183453379089834392577313452208079865010629032724661627640014966982630285993956168754908495486942898292949113547563733334285855637089515097227793340571972940222247970315170779962849125262832341030181109832592431970932304340640912101749994728354684121779567460356893056360786539777067831491800346836925231911614648523933516354262530543665616845309588581299909058871912630971017140494125305109176452404815211246450153961540999179342107086488406205219113634280516561313082973125150909207639746498671034819079854041062473635579152785768827070197709903645045408053666535732273499666396215948489334738007290851019251676379441752929587825059868772148702016489783204350497069850052208542131280492887728272856013559024859971755406537711078162213311478095897239257729504008340544380556761262161845416762137444681834554150741533117646840984017061543900767534274725638547907790276139126329175000647673655412555091695878330247923960850811341415074532148303972157777387976899278190544218884746441870996755568751133385327541857738124511630098479904904144561087439860953114103041558747475839609505079848169385272642586467493591224253709278253406929741356986683334846644402683162399874905932429967270038927933195943485685694895674251505935696463050473895679779077297032995633202078777432485689555862319295098287450410937257285179094744956989378186689600352809099875865225829448116699320681655740217942413288165870348280117935296935307077346627112091465759386996163731238627368390949916613585854543926510414604203301437217817737431311110094891638617879431018305217173320363404194631514107231194464805658385333217918758129220178534740074748258679453487971042566812447287509007482988006168955741234305193421708943762813660195703329270872020933465903446751095783163711882973421663150597060456565028083541021463205740486595821359971856252959494983637098675552979621384805294091586749694573712679239185888401360761292569521036260874800823051072451978905123105057973687160646792700691419791756070402237240561172827716948312693404150650672459596184032736428374692015548207842001413446522023639001036574642396130401624954410389658816581514093732289445230802540429212413926615117388985134054277976819274757632781537095618104937800451325366616966663598455654304317312501548887201842319653962565778911488818373037038424124970705266545771490961011802195363155316292674617302522489638157505862269926471999202922042829009063260210787649504116443145127535773358115922706584006663173697284681058005711384431209512197915970306051142721922855747580456797620370040871146395187355951077194405895517933582865506878399304548055754002003311078585203713005107458503481061201889988769410652546997465233159196687349202126075051137814845237255358317878057161531233342405797439082140571621052071034140297566075888136188729261293715031569728676990491321285779943009178859775564617678233712571212243987956466063744409768636123643876128845724464919168119485143453970044689931062829685266157096053994649783772192047714553309593951903478402740832317668253905654132277756950987013274546683621422543722215577039619527331572165681979880206192381724282801073242557423789588643675815690604282305945441686624892402368495490866265723715330961870540058214653472281423420835090392923583463814636431167524607414216434941819869744241688757073216435028934159658728651655379081936810802799165027712452118357194568457716370817258522654358891377119337010928451280281064817444506441096259932666036942910312643314528895859159206373378397477802378366903839051635791949699665893085378706068011101100732529998726965844702730655366744250543618499041232432874730698091477058264926573697157255992855733993190971080496877646477164198633988414213658453116569988615168349870459396153995263085814043396704365690544206593721202235564897032603695563091701775821154816618736052603289240354930911770061491671177205323302235401651609747695184561481336196290626031757071843777668246492397065607577056446609258644093458436952445772980081956760329376887877900843759611718533180588425509281013690061742111529964720449191005875586138896037464992118974405970896591077776281684282451804612470108689776162657872203412578290169090489222173571013906250142633509340310873275287923140949452116966374788978806416864450950136639185152903660770700406604679450157490432722445679457538232212109376306377012328504772762639103411932601460608170965289391196311959088082490067929547313474595254666462719688692400263696594304454824654797291112659387348213213526330065573487425559872868263269316144956632680316222303974338151134287485631508730095351589476511759524629746929567892096878590028479063321161027370588405918434660057069249080609133656646524825983935546377260292845526950659964400666542088228579767758980980895950529400464305884203050973750519801577674748201171966465089327966920984632054199434329967202800710039642262150785524271477928834913980127364373801295202247491496387043660113755412871725048923564279535290305742504739374914540247521456088389815364627912023200554249413142164943497109056623131910079420645524917188235453445740703495156651696021635933167072204051370691015563506594193363613716164120372926403697831573111430225141603754862124197325809154271117941750842999889188256340048890320527653151079534279815412631562187331774185664570724546233664075296860137924311638776388187886881078437417140206532204935920810509484019086191915949600944103303699909178608438337211774708824057315824207269673285794273067317078835519540648342929434787160092691592620135670112900989765034091195966393464992869658218685780355836019629389700554665552266724061888747020496467750140604636038847041852093298098998492711327993879091838661533302829230054571455369260248229157806037646953017967622697951158543315388305734169315237945628516007245070330879996090510013568234502292419299533119920902449684214547524689859731407512279633620658569085954405251607880723185452554305886283351466843201895000079832965033109197291252529459428943191583611384221276015042323417214143963568136785124764580506725361776433790972523298889655166916619924830702234173357935320764738255191752583113271357026319148789821714719812980815755084032710702195351499663358596122931197002996352600502949669543073731826808848398922309563032353940435203387089670536773349032858680843321069797626756772535226413057418982350392711180860609459846620286079312074770183829204062877391748268915704396777544307823532361309641782395044704351528190172531606186195497089128951803445060965090008314599295514766845524633502295770498939885052389836932246065033418557609723195541220436589732002351894346896425650292373957525627755432026914215570937675943736549606074694111944241822370062607226729591795848490696142933907773406445272617828656116614007394623228007139241582506187336896517210748752719023024588784207995981965571724653352614092388609426008859986095009931932708380621405823738236437526338762480183983421247907767864060432585064678157123862514017944282386673545936070775200185375490490375459395657601655298473587445412700202600033876896975460396675716891154822302770958168837461959029337383161204728637974198136849297654454371250623246764879478671519422718970022428620402574098462555319892991660373207141479417602937498621546632816759356561259258280347835069689437808523290979049456769890169831545961230846489910044477406468900810577872155311597901991644709940872310868699374794269921449696430586952572651983365790047780729495531093161899147141160503364136320772988130660205426287760002875533995825086178040829477944171553794168519282145290129875600203986177892372211469452277375347292977229628336460381723153152039654580086237700229257534139077781461388836141037392429002444109980294788579984759640323794123729615962774733058827245510802297708138647451767704189342797656722533314938781322788836386390078804578062819136098347917273732830154689658976370732713356603431539958999787940170435209069800228181858247856695611277467690291678999100330263386535801241155969279933162088776483596528844407164581502430701297263539393729850652822319358513274696604156044075809588375979904268623026343241915604070824662857390621037164261605254549857406835118084054794196099760893629578751799230496673166342953024484953269405198762908028982281396297842665602978258252669224654063357707872166959830314547666702532147501493200745656435883536490873179355385624766435961392889792172707158189904908262578538832708807175330990246528688695530662461869655647433576325873691389278116095213043911054232545391000528978153996022898374604879538871261931544325448764781674442988602732865708026914147681209668206694621119150166326974170823353091580372033213844261865125284447578109721617868311392775844784314731338256265385403507768699540901934928419202039658331256018948579914200410785760458348995898222096139567600368916180817905635771237032205592329571702721620432561563324147575130073324056684101520499792844497187428638086460881595146750145343221037842384391670909139565688528194086027471116698590121909877330550461996514420810104397326238264929301808105769831688974408787125419254318194738509763127218797433039340704103871012131399460926779413783869117799136693682934723034473005937477680727146568518177676672064950024110130544989345053836039465622467352398851909060372670357251808074868224009761743763066025439824211646222577874492759033964707446499865017946349737841604757142356762528736016237947244324536125166948152714637968311568728773134575252341512818644828712263463633567800537106924360288981054294878913426214077020515298654473600298430192122832085941036400696818744906236037556212553229634885003791913267407598698558857131875902880194847527002430201043965480642897427328643710517571683545733830720014360195555703367721830089685514038729241315805879290200783134051974372823531868366030389305557149102437175069425819666823435351336497543350640133940664301509944849871282593200339323003151656294982253544260409959679625863156573968069235287620641048195214164188713411162785135851539716516410182734613261185546915100958844163060891464515139515790617248050110776317600097613294121177590346985205713346973900861890150090588750433445235455314951852939819239032441678867216927103274541360007466821215186654529245776777228563306968071842299512352129965705059724379110092629152004384585120899351763037873839967717557781102730617705343423752367647476568553051861580766013028007834702236029168801040126411928938224967079076388260466567741931450681286157867244599610974463144180951849881452297939093460880795453415544845319074277372845492065572731206618471609854989991471689530806246313794898872063699561067732451705312653988760099667797478710627869801166980711816765879710893177982811352747245703188183807449687679792499382731530477866711444037684613925961848340205937175232451340982560718123835703488103745601414694868605671733956108454884896832807128805342319369947790450220666878773399959950049916316884554192869584395568338158122457774570071951878620970405389421185832273488348935726720452765481269193404327080272404535822088679979116296373928902181345003693522264320103641545234531329281521271432030720575189478069187790971229154088726438418135811271243806651854889166413437163596612899288164067079414365066820626159271540876485280771497138411243095327053605967810707654618785256141124217636344707202189682609165417523155437121209569813104720564816796382084162801180279259782636279117104020429682636784505704414589479191422108583804415342872341012173115497587147312639979100424434469373486098951521483977279503457217793654003602667273282625846523721992406258702662847188677478913386656623810238750585158687033584491115194492342474794799854983561027801802447984671754536446774969811901317794480856458646826483571083284153261778765481750943054670275121439041018516476181934555457768659044646978610963401476111963998151709982317379472056093811484015576889512985029207656235511419171977522024135188018888519283557115394239179242660599963984421922939690560896002438094946972659926425143832459866884940514765376082173377745608160205666372235744269188398791687248168234008124766830206013603194785223899653004215758938342175793198492210854945879746830050900662409850791182257619514294584222758178198110391694320842300501448816906169218379763422533751407876177835360531866126330102424911621460560373880490475917959084656822919929024638658049729317533104088648862435349123963403096243481109247686697782372591135437297547362780360820291566350546942006870787528302109231852428511724643956667799997125744824268495116144339819741968760258257188081418619434480830006812674504384302719344939528260378942413855160774014166533193734102426640521106980389509277373988398166062593430115779046332346215454241315086856765496153413171717294285774609748510345785205156786496044576704453677640261429398324461467225823710369935782175168921948129341161747909764880488248792048867388878386811088186985979902827556202103968220496756672286534088472012582958487205608089228603770869288659151657879938228424252260701074402378190729495540889288779696340570319948060193195358205104652370508666773617934685940996028965645477346739338501073832821871455713732182819646538899078174976981963689369137911381203515954922173691497224899243018899938614959929593435261103387736407551707279009483512750554636619131897292371436068188977030285862694523386237899101212727134071943094379955008756356462502136600041571413467569591347126027778989483939318770822386375275418309245018705092102247286200963456711492813445151761125870780996807567168803688928213410484620678316445285927779002497830874821272825089326478296058983309824139178691593764605920205599349445944961525096276658714879108439501750161264481572826213427713125359390660553036169651809106641277831414514023411929256113676322648455818597872010514787709551095297651103843667038818095362337790009828879942372810474136888384788546859044908231238193409154353921560632647531992886702000938913908537800351515469302114420005323802514643870619599829824141790259846653192417683748347437101947266321827130911142001806058288185416674706065087392738938805129708691471136199197122155496939291902667283223662991786390374590700377762900510788875520309574750139055919734852012220229075150355929854727546681521539927251283318289034185812708194332239337993896747783693468030725915516821870583755168662715605532479952452060602548237403284223313595778564353226626311152025949119707753180886744159444126039353626708945010473543951384220835004943080139075313235467166447844447095813404335914316709678048796128118636592966653954617222571728977631796688439993581278413893651397972755346109426953292696859376014927531101433297772884540850436667980389920534710361702581380022470817086365040184155486848285263673376074357941557657537007405458355153585254241200375637778102986714506131813692917062359471786726305297414204599344172094705682653358936921504763926653867372345597618256560993517685597568887321970914429629123815209079410714361686404233671198723709592127082785873438842447671922933326413917337642700701882509075077045912730291412861233615140669844342641656566345999260432384132462491792030669094469980510141763998670492356779071766038436872377470701123612241955412598554397574775665075683508489902887900989928525888430857303357065893196862539192541537221298044891440116557166560524228636721761939728996195486737610615647178873314032749039238223865965899959758126755487341428180452707457607859246931498992130135401414584860825942724137965278608456325949132495401743491562590289948682422152270151149478778019851352708687377909792441465793119738105948492262807280791886302102395945113480994037923708285312372387717930457165100454940538644149624106603452789412742066719533282838244514277044466944063623200088884986358465338925102458896684800803590849599719914366586374026782111364396588660520408355034765202640937306510919664743484176642902606748309408467770158884344561925060967752980586859092799904562510648125617882118337657527685985043859805761600129476100139416118557604549234160944702142522990070145782437203832572723917508001791783004763611519663075345792628862485237321147987376720705672649494961114955069244616803509820215054113384842590275819196253422881956886549929488431258534633903749506156402399876673299766957310020493425351619375071264002885118161152761846465710028191576043403161156207212938361355254025940706658984093025987540367380047140124037765527621035828630934589498896517760283080964950844464006148134549664839528216590792339725232162210007389231086877294433246381168853992801308755537035276867219290305284944021404273252571692541374925164584064103661516360236312152144996254411493591997676582179473558630265346256751968483419082167632160315320838914220414027210782816450948593403552061855135273680875593967245698675223497700217229860611219236056829657561076140846007423039718526853062758380542034427577011711334474158223305400118736935039396454071254146023393983553137885298212434298093355233361115342699125485488464622977291843128137300081959530175885996004392573872484686519200812384943373011438264443281426826184365715488397057107986255578928080842250403496882230563631247806656837738591198788263360953858821209741086872516963617468095856010810672542477823707681334135852427129119228553564948470825863315108293935331201551393859500570934278318273422478115721858752333516613259628629212240264197273830658462738571030070246976964073300871035256925010614681073501564725876626645449113938686182750837251212208574594262710067053163142394413849243358431224216713537387550755337339946044049432837385244081631715513803390014474767590864306873439142832480291964252424059319773403649486231804905932778983488343741234795948346987241012219144611344210213798132767280564640992625501876784962489009950958147752277831117600536674266571162424343781737652267829379871203339420036795865917045124601742694516965878134517628986104095507666354291708840608673359385272053768358837791503954831366030530443197333048809249510529042961561541051968510140527449256623396882174251479720917813256787002550283528347798901178639564214588026798457668140546930981375442818410895675230276725154329815876083637433120296444754402430837715893572864503773285404629346669701564616923336460889550717808334005749849215564217065813788099440878625135020608835385583192687456460247551607632492042552775524041094204965345055190712078057998803847545677666498651771669112382329648752734006102959713607086398194381382036371707826165288540062053040916624692314425086558733734544104006745885913869963487513139974114998524831949199989721527292511946952554128348886993160582114422586495627902259718641351533192400795048032046827151646961622333237109949169649778217720583723914990753946830532701494166472451582739225399789162781105213543396886466628718452978561464943973653686259910106554490182522041299439782245608572023317651529572953307894263714478112225213509619157581029781832347134875348231755356205585428917144788624665881684991648790242111385790090229073393660718993984113536643021018397973991469164609535358789028971484537811040748821296362344301727824425981672132613364987392443270812241133717267766741527199702318738231153184210343715058372759416646845491382463556704712962074830584547063376348720447255831057128665153400690398825765645517080630196095705676772257439974341751111407964491997884686215366465409600683475266457544396257793633417467169962911590374121624305097664975525035768759361465482066424941140100300164038887925939050669418184638496901453716606329814326556218351295453449020702537236130908371110932443598285548840141128002198564352629105463417204518568707734690586795295846483467473497160074294470122557136902491703680662664231400956904155434652481865461764624390002651708319344282776429416042356070941241056197273846278270488906035439019072010518930848098489222349456552880261322803983569054704907471604926038611250139799044675468939336078043520209706391693334369998345360773012271955936156037289735331294708612898094166834571836093966205042428940522240746260415784891607557480110874426373830781080749542540564354925743281563620293866062735434565083763417828195346781984726153863636298402646147431218002117181055334180406806977271319795677042525384707549596903760108493630119153389822576304897393329062166517156370642121095754657095458018165787083156986864241679381963859134329274959968580038960381826824219469782316856045407577130461220153604297379055076355956850128277238081393659314272444714731469190218633762233842156630200273791463132436905754993072035413307164584694280233554705612095594109654176112964541491148351416636169340894045506885290615646270304654825642952574598149159151250180586614579497936396622554380559244258319675471172213455145589244616550733487374922480217240628902305795937245302759175976142819249579071650222075415134727641939190773175213221407567628072439660773155930764118653589992782518273679231593097627495112160549140362193827584021739922493240516782533497359964695523632436938453783472937343876964787262069145413020389748356259320792663306314561467772724174530766315695430178851460931340309738203489133094850518820763333684005954254096784508358473003601003710444983709587015889272245731781785300773134243409430495291916231411135729679033565142790351502346049316617934456103188959532902192831284877002667940488696509127563639634543212169005286680362502895880773886863550314881186095203511469685998449414734012227248002717645248654587755250526076543331930096657190505288831076593950585431489863210013459175124719324920831665682230318723359850580512958781529194946727370431160465215827796741281902005598478647794094857109917528441142273474225576998880820625343845525890978806601853500290870741469844250333225520354945907376217274208367749202584602597896778477671573744771743283389635981622294212023164387598933858674437798067952082318539905336165581013621225571422643090745713375660777646258809757203502377656783453946762811052511135315633727074148339437743115934114649310740970454762661544101771965099729288199461358314814987837984547046132129366677368094613494720898923613050372661030371969590143993319654083084965560973032782277554061495083552826190643540868735888744842218752678717851601198306925105789407547310308638131485874566492584545880145378978293675003708365719603441287040847560849480967096019698434137393968187008282157816563058842391439932870087922165454639757935642292767507609749259522929007089437139240658559430220824118162363609393762135564697677083080636402873478949102394039358413072332225947579804530327954962156917256705260345949346199049099392767076375859862308566911420161776830583728106425597096655439019992845720205313876896248873446634706619726402485585058388115710200849014890580994965576916817917593927251450383994740479764575990657431627995860990874335893317805846996481714692493092519686459520781706059274930670451309149203844199185113932036685693696217065043937059629334049723302664153220223153460644869385065560348606732618155556214169357417188914997543763633992227584376062498263234346965415269243326898533013062620980351706212749845136361008672861712416401673633771201402758588367275010659342422141360715491049364797434318612304140807100458175417716183982941650683128047191050552412638032493623347359567038191063392244743348610002294177183202346581194688565494416097323829968361944738735652748208718445347463309242898517946827872746636502161511466656850222700412644222912275409601695836086769501142931823829128021146463553047322978919487374155177946207685352210375603559497666024508826114335548524840482395557746381526513049323370204230255023257527413522508072002147626645245793544169707758112506875062466990826204962856607529560627287587062304054957299430873515570985571503777820646050562522738491740411192187303117904490106017123503918838089362340070597454488534067680752929579211234500071431375759038801853094461667624705529333821597533367297434441593092344434661166442954305196110296723514978017566075269183116656629076956944399479391918144685963964868692727303140626114974288567761180642299535112988487454484418570544070730363835895758163002752303547444506388172039245911231520391266953320389752217876206833393583533708244980088425831768603926754556185294430414743447687699518192096681965914449966222959847509767840480237988803609224121195320417327513464615176540179420198657628397928549779475288785614887420763961527271277070817322620329226175280399421431377110861858857048070218234475223811045143429486168617237300111627701148279531647017085553831985650165853565622787548542673521542846584863438503205265326052134780009322223047770290444498104875524212091514135297640319916985864768077687037164201607033967355174773376745912830910921145541628857444434977793469253161305517183536997074200813793987105412849057156666948903078084358219955124885853137904050954522422086427466001438911062692911224214103934474303470071783786587204598995433568050574997051784341372819463625505956844473508724810426649571821746159064053753422215090342537917591053451444732922598356101975116120602823434876183980977500746189552714498063291744092587343567577475836414358321664810265942629464291419705275083463668610990810152614797507499164834592670878540232240520682555105073223048466658574252037695946463082539834802269043110505630441297074538061728879222713692225027522927772479537605873091845175177936291678235554120038272342839537793045896254337416117131462618384806653682115129480042551622798364535601790856146289695201371389889909274007150665655064453152355395663893524027278543729180976008524410624802030224691446130772601538584617693497508244543762679654693164607010958246111182803432294241521293069710323280417694194170191121372724855654661905395836127329760506880754678804752445434888610666131485620939446094284536011744190070024631298220018274932046147705805866201835311574337155812771593110931831721431186936912611972720853915701047763422646834196353010315399424000903539302381805550736209742443539859561503178501473833685860671345325172739766656397499672083164544541009552182283261936317315409800321375657134948567489607708868827461041759215378620498602986529534946831385525173610525458207645393923002700963767187851266792923479428601616822881915020763186081182779237343164270044389678137111045123661425929264606148447122776545389225363783698830213251183659710728938233498338873842649824310318286963138331959848537734896020077329043938927247633433193822770545707298941819700579623629868982091961802385138177910498777326204410961123960754980485894639321932920889712641980070740399038128873474926921395528701987370257416611954083276255752115427545320951696997849833776708222470266502834130147967135092765225528679638105815646131097120975494263837765399166225137436006895334886172571312761544648137058487533070227475283630442475573651490529681351166496033794884869652269195398475742060942442883803391645101624906029327568328898539955206662463262507936332545286737688593146856437783462750445005710905241709389888876177218280495762578525094261812750722264427806150654828445182778339552976622393923824575377937303091828136593890611623256155137667945274717912641752015064931115668266072518189539061187944591258939384007319749846087964347077315321999423836684755269906300328414528280427133194988273985972079479266641544085401667859337418032412874369884902497107087416917202572477430667754581594290613658622928351667107723578770835996344331950605424835870426016724268169028925603949535384128106837553656084033954939556063879002144126486815474499068275837047846188120499779051660668086596056511951363680170249292599898209256508167072210839899151090873944402172803174681696561586523684372058552799659537925040079190569750528909461222063562847016037800033155590031618397015556125963325668190064803563548389293313729501088193048567298503369543075100440058508816180807217399246298874553241333968086721302420773468704577486361972434077396570210518692450033813798482083027832577338699097231258124534528960562205029070628888845139157887298048272937388198162294524039445001779097301705689523836221465253760613330897113217031056763957423023404102956458867379673894946427446415524687385704347258364564621174067512092353099462978493682474923582450220982375614256338045731809778567121705488950961478190420373623172485804189820756936238207255687996337731270789054627156547213188038834464916269355937779103144534679423187081416973585062862260350280523867666316955511910985141443568863083304786742944949847367003017827384397878616027583008520936442874032667612339865154778725595974185489894028031040450578427450806646300956821965049538302490215225648763709981330650398572136368928058516318531748049201787310330553267860573118261387535608517526048604076603163282229873405223618605525301715056271904466809384585598652823888520489069253602044737888621732655979353792731856640938557854012907269856370570628881714033105989410277473668736755524030138765273551454964162381859984449680560686132122097468766648690246525181706117859045727139263401258187219397840016469180069025514260735022338334486810939713201017792641854740377554358072426659458494045110377042997402603874287273688532583701763797466149412950774163673919669940654641966288826841673349718630033516958052589794576924978859870703304065192598038024681109933930565995632138276448185270464049417728716092253970807468659848509877350077652713361526612656565314230895564646880000733326210842702549896363170997686052059664441959536598726924367575698044670927833877114767387846639044762767471595939906903405488576460522309759445911287040487277646598958502518843588266076947939145961257182936208977935582402566015365442522915999884067163824691314617927264868326623524023540301380147773837246577597561449185255582764178803623387714781901420875867655972501191368209609830668628490503595482986314234745381455392049651953097027290265117164841418588710043353308646915778000074063362114982872655586705148142992169302666305771897690533571338998915879334820725672967315507939222355474580028669555958388498478769758075022382849522772603399231632555367517198943907952693482169907738682435062428822487509227803678895265562852704733383885151430442822340343708640228081694609568088754435580491403040392940182939231154113063431184605523618602724395812118382097951291598739144806312473347439018186052140353619551930938079302620040420229199764044424206879893091117765270819917516071844716817151494472980845046764070890512361964240215834835278290564563857876698488387982372434485739752261668530659253550597638857907817728702827591976715666206529710678394604656405793199621080677582263984120395078604654703883832777718967064066688013119187623546475258941589667154624662486132059977815739555815879659496641112748318167098233759875039740903521896380298718902605002392941308750410959407166959162572055096668009775430513941862437338028006128114274027545264487261130220066255608756157464200844420216985881557141257253339783418245069274724516550473108923887146195159087278602766949227031955724160531320027783158240403380108042199601477082957176810655426049195321865081879130464678920105694034969654094992652584251630886452018216446485570700109039443668467258188369290919824672414388700596615404880198197433357256840660167274893047350962392730944597670986320860277748839572153013305405471344008633135265264118966830495947666378570511173139624930968642078797691194291615590817941862463645020793693874393537286173462635532698841788077715850598324693225535922529792549379437985888178186226875963260693477495424609407033721727329109619381792971926518083371419592045333792923938465859594061656246250733040058937699492753890537546801042086748511552199451479523048696412021188449800692929141684241193087455591325455482582420997336484694025473802270377313592558242873848139845165872791516345930248319024041431959798215982491458189809945887580525649293150264848429148655864283027547316650454122769577782180507110642480879484091434919542885601603659625848909098032291246920443181153314288247737194971685464461337830319832222738982409232366416542812822272378083979202758066400562807063143401191543623415762531955004061456531748823306293157996110018079009138384520998731903023668605115109879077751601204451415784597983547172471545985304605918437413417612666985173450040613600178272846390171023828243537765510859916904534249248997833043620764827311155718827546551328354114737911512988667941047458895537727298146034717681032751929549378868098944817250824571517598527020434364055392893639332471230631677857825503250691441885418721906636845890106232580178030572418778797833450045901658173254375723791759707197414817395148124637809507164318686491616996501390716921582299508333221505168500079608555861173254545794836380947207879528611703013122419556999407539944739581140589169885222987010099780986443482550788998812651677154151079942067494850228118335757184636600602746707678094359228247410385510261520948797689795930449404682003232109118345745931833476311809286485563454928608536823123105160581034690327699355734156547633881261108639275452837337136470693606434281796214786030556071934533289762085021774100549716171321178194516410124978354229055660333801704032209508740165614934742251393233232947918282881068375875285165967160349557138838041981884399834164401137911305770973823384701771219568689337946630119555366960872408851326130761677476473759230839789745957246760703757915261776433081405870654690124078140357493908532614344599635556468881701684292240906705484409959964364076505914114101946892223898035596638844674199982968210507362128376094840556538174025755138278204343962558040026594509160453975375532090263787939934230843625500522917405186735741174707623010430785975997878436459357308350387294686521965004403062200206924262164425063830424718928728068586613036058123860975973890341676049855629445832249902658196740398396071464955829410507238995503359252059597372186628913510594025561677434983178832205705043466325922506283904180974847497334107202463683668144872540789515244067801697536849238280858977460910672156261593149558552011931872883193657365717371023438072281813408382458857007541083613799386550242309395562912777420941250353046303160207311507303276781723989125888469655577613647967957049860983699605825117724795049770951522559879424078430678673843143678897564562227419685940317487561245036719395026345513375658832068140910956653022118028573673192950477981402140956464231290540861808842997190596154134146437949770695495543805739737659691790890963957600426317618614907597626076373508470785464455628218783356828667230170242602119988081247018147005029719248317897876489984099492551353370206964264816992499969342217623315383445561384633202666964517950258540871334685667967413981475869721929235621473547310093644521732821839181701165839237352049582107145449695327357783547939663179869714263716218400048922364128057406391930093014931120489648698159555139613055548413946040161443828771440195555014833978201133426257462246767233943006696113377765897468760797872053423497061037619014713203102223992373181675308285530982736426100009219004269730078351371523483822075944558589173847146509782920949192119084646852226487088296209265690440790763090369092748878775261863767152174346200101372361409120522956611335229269793451119325025191058399922006153897163239693021491461593957601075969595160616329222898003056278792490301900273086820070871855631362012742488520429354269331246182313083668455066593935883508630148414901415142357256308606238130461119214060599112150423800868841895885825029524425227684202445492389410574787561745270087657407253544801947420963875369705657090873029875464374730300248299614907017086442014339170376377115387311993772417790232562627357788665763104466945800409088450213272143406918153563873623082214920647118812365153647846005476279022056890466471792363663720046307495646783511332452719060872785993431845403444807132096298415809184924224569657391432724392180439858678406817009766219137178275307633216044503599697725015104303483253671995976404676722190762191305499301706645163643391753882948486976113376501716698037209639968133598044970073860600871984622430694713279746917674011630310457149527757251193812727724145540034842053413430033832254576504064358352035213269106051436070306510564760150569620110134568699593630699632961420265924232104284525574975250929843729482040669839485753958258932759061861014778395529208286140619995683348197693340361423120392511716734768610712691003477969289176425481638073327495466760162773318679795768847201567930280679057336392195172838044695656475107659673928335151608273132596285423647130445047139636878699964842473756142144962242410631164014353841687095210276713192464633010749479358493353642583031936316206269331926071270296593891172247822939076359979519652082696905973752102189108808148044024295529842126041444489019442069282146845246651405032243875386669513342712652895062756257069929902303860034783257393518258240257317728539581069190794469170839270971522088855146492489735202835734368840370071957060032524654694303333132972898332651342010422214072643851661050942758450117185579150864199476620999672814521350003170902832885268537564882521217504166196394489894514907453562218061254287489285313366396927806523208010512172784025560568103791409288571701304560605825348925716939323014666260025914105578681666479687888604505534300328772850209149277510159928593946521696828205157447388531055716376820387779882610036063973906565357098005369472401049928752167360345344700637647283494105556753410468876893759790907668184128014171163131288778508299963022010311311792351958035030299767760374046579059093993537117533474975102215586297170204136199449106705202638678586557509438672558651234604348566114593103215449263281149743718933789293323029109571215028987113759246502686700073455349899433324846209583607502282663482044369465390985353790236928193566333986695954791196479265007042857593035167630386612495672576799232411413179897528104303992521162809529748821998107958245228862463479260278722732176596133751238132508544456067902317183897384720253749280014943139707243102141779575369191830572404817638847256457270313517337998137400151765895798226409374254432692954044320153795262026395309160550607488480471070876945661480583473817121083815203590461465888080241438234837652548202373953357720222335673190347394890298315768023957172410114623224962775537228642269511047831241821139520031236894623223497943619135713004975700027933101523002693826254869781845356957540745707189521188993237371923440674333282436174944989491250890779601359277673019029965005137532600520447418154548619762765203208815375909402260433319689890779518270085473632017519131581448360676900672057414651885739275996288545587665771792142170770417200105356032930286254545433900189005538279311646769069625448890235414651548107821784715411658274962820647675506777378448516674433549178427979179140327080236705736585418184810850180511556688154211875339993238418540195932212277040304579550222493090241987138350518348945999946951861035051720728393685188483184151361904910043075550149648416299137628399411874727791573407136241171314216732273238061362677519042190124509890421107976403520915110330074907744627748454971982527037161886731396587599584214096324448418043206866322748373164019884732814206160151738115582095572594181238565269533432663241592796421100086833346984303206781163394690271376271501358842813134843510462953651638932722831091192363642958669115139945558064108726089136966248775378857290464747735175706462822762531831927500211385329908564547247520304365538851275322189525334701320555247701539839393918407986552590850140155810579090018546419987086945687181407217350069535925375510235476599386276865771763977924110045087710435777830545914535387436113982122413244488659893484139515998153882297196306379902779734603955909878980496428761355685848535993000489417843457366023891923732349419290823659330138574121037942848773894611716042101042901733360926704926979843977353764154615218855040841045093780761900423702049394911111909444626582928484188687946355820607880668740864325536000912101403286039493297970888399052344759365696931104930949403916360078024222626122772813904482991571216793043690031571568164447218006321445058126319652332384909287788295838839815186295299033082880835133500088522853701642983828701298360173748928330209556272904878359846648001133561553007785642195175521104957274647855383309894410386172831616007917302854015582850607053510678001296441865123778712739082638823288982024022955638210855923299521469620554659044615198207422315769599539838766232785899892390685470894608167302637943255296941400177126294894880858740978843656509632880859849540425729096552129534144891109748977161600062116548912747698095545501782674299952843689151668109673154707234675590513909520728731916915369711527763317919272615767858569388866890320073964886028511350224846178499535545711114982729566583080144072328278858563786300640102554898486791854833444726726267707772314187782144186831662809303991278790160791381275399233894594686855840693530051277112220741945029281645584544161552578020701577067549779661007290213380415946059098437189568135044208313338030154209719574824373234917115715647944688125726990413296797935534877402278393529598437047972643321877427573833760018172613798997716778907352077759565203769414835558028070410215311948085555827624534157122581975669780720772707336083971359137915808612267748730426658834804466412996423237468248003643786656765020025945246603909236813027346082396993506861187090648012640800444968925251729653592342796291413224220882405740031426913259852482471043258906037033389467429747376714875031878601728802361019057934471090650989053252886671010920323699813476586352759351314651024725856213077688608150402894039795284900879651400328835562860317186036261190074137328263463324639535540119159959286769625957776613743005792704019734871122625264040209513692309241514622060125678397675735820001401339228025955690610671236603269238532898461627226065141959463763299696792657233388438000436341212596037997931914967821557568584889122126393690274593109867768117307446218046150384677635473180522943449200407944845822843254493436396884487984986551593351461045226207182833001689068288824553095875508770324526296937767714533729781716174336635867504157860249617747219770456267817695100859249096096728885562642809213163625347556723228277408295230001687609658825018882696408558212105803105467299796745777897140035745257586528261080766069603011311496467468488714305776339931599355050499192436699664035531196844115101312041751539730335209595250681964078526035129279163835026017976576838281808702123345045687175990323185594845893866568327843499995233622707612106762349261680895149315574470483984237522399698750948696200889240201374080035004382588557874706529225041761182745831555950521954340138868200048653488356030017976943231892981305371593053185102961518483527505840568129537972465391660029331142602386011888599621062157169428453911035338712772255803763228256354806188238389648394050950676619063048272433140388385610080663254129955757192589682905216075198953098051855879009028598589933516026601732148809694351155078397993687885346357772345741308198293830937144035319398474971823507715730204007912365263635186532039469627098033418420556602160076344889513072393391623779529480270971592769832838991982188600337822992137708515158741431257779690735165090677333993128655969561292904163716725803146295168219069760479637368310116668409419945620311580526070989946358793158731879434059316601563391148508564451665773146577472249816177569871711780336718124237311652969192149216948042042643418600186541978539793360208763814665203596799388049605963475994792887438666093279509847528231111373633197452036726462325601302513642095034051332417228251928570360771368680156537129811131967650196451457125673837394920888927060849794441418446605108600856309765190348730784071306590694920901224877858493067760280998782104172641283331393028006593905952436696829076426484658264637666729435008637401917519038962503301370199034713038101833167442444444884887962909663255778424749358278412874630860324196776838033371505326574930877231141766196406272481692198286494143301397538564869845490977729351823178831614880521352249382419250159239590815179496029509674024375333639863549821564359488124856389629525820297835487695061752641419734192918002554561850858841530815228362745087207274365519778427411602554397943408001084147264885905746689695274826914004225437497906344512192129009825715499003497499671175574447902504285906488033404277709135643829699856812523781712618708596875532079673579444353326922919177331606198649420100038850984232701647630025703068327604762885322170765526989888452996490283494245701155146266749434839744976799133344402446103511217407593118841180924301519588380017621167785318367821303116063853346051306790927070306364941347071772907337487981403101096983850775370125738626325977141459446832600167542442859406284609370383530097375761704018350675476348685576866598385841053739269343400768808676846556684185998388646771446471284540211900539165968655938789782187822966414407142894163461546431039867928766117469347487888890309447674031695540699226349655587630034751478161643236765537683374380765923132691672526093159715408179056069565084660692686227784598340924435532672953121701229939289584436189156608893415916704489838214171836544592614318124134598248643435307813655943471067032151060632443376581562211881758432499798309753018626611737226156806310920935257313919643753952920181517194923707600116293043774949872510060994635006920184455705813484119990254592079595605240967817589090140509655846959827724835942105322944352351440559924867972826971079898887617410575737333658868384855035275163913378263397840453268626003934639896043494904761375920724662773177000349732437629259602759011768210585531304173918075721079206849171178093891238819082335036227267438897952874465486361097208643395390995764181172633434470588904539786506274954663919599773765757073212025362738961946537189539129589080203959984510552844335293823918020961104150693876265361621794688190897200864411965610578265459853004724676600533961946333645713877735939947747003691008573598522119966692440539434904835830030511719060504340650530658377866649706187554270756747227026221417298809618097884937846179137165753655080056976894630529480413136972116486884886042186843854819255924524374980546265830627339579146549587664479046091061032047802661044214756843359925667853391460302046685978746264277228490610919347874536586911580120780238385796105221318919849735453869868272787928762855480594744105304066256485721975205316426837783824707936697425462429478691636630535533223010540526499355552693183439463370578708556979909929982823322046341854696075321375613083393595899247173108514140239859707263089862853053111078692121104838994925454396725267587056943353359952987536467804247992507451807669043850887907837826130502809342270037635963486656571894676260639764521819657499301680648469377667406945580079435359606045404244564661648998878673532328857584440210671747775224368724304037346297821379237431288312106477094628351711063723050246835862599991351310410440728349540213063919973701571842826327340910125938666658669024579398327595858663586945487996674703933379465263184516673489605242610272049341498114222245225509320735044508256985635677856013921643897585536417071780914819876826261434010366151025298143610139122915856017421603506765024472236494953441875381290271877832791606118017328661813877080315788693220677922499311209665256551326813665625944213788802948999753380856125093927406766554319983432670191948351940242000516334248832407011963564409504899500087225436224942424959119479474859598553156508934408069640762633618042359292575476516509268042367416173432583501216290647035641950965229631426854967246903735487098639381735868995452578714801026191105880748040490477654357942238216398455134094088376578547384395213074850932866930824562035767646141661895453518903307800989643847606110966674131533864882542551863456688658420661080275315705137878462351309683803435801226490788596078929309246148322180682930927711201511201119013487250667489248190840292461648627489844111340261422400778076220342786418699988365053883658665838102077599888459393322743737687267931655098936679152411982340614765133766320450015683392060832472217575204241357886447688375633591700270512812116691280223005968082700689299080597262461620310234040113365102082906224027621381045230963922939186334146201494722486117123242307609918005038928177500634302725187284028684864177085351446551409914650574283887464713517943482051159173675876637673784640577613216275654324156150002423514298315963642634741008076417985888081675255904305825361999060723643248646410470506442807023506662885319376275364624444853537277969378754485487018325268433191283211681793722148312541543150783964897506001045254710897452924780574505656755578508007556362604657423484661977241665929472757796871321454737707052570462257501437600743358303389395652263781638920443778641797359842204094917071392474784637173993382692936235062471306148762949289362073883582768233742431001687321368526574937817570442541648062041408050336196348078232332744971311787117678832433701659591382635161365099012826133574164676195236495358892268800021501181551794147030450701997913125915632263553880675106607979045109504830271894360358169841541216719961386454974246810373081628317527716275484921523500870431271222231107301709209745619412251184360197335685850916006761007147632407906274065015073192440480820151664657272137422621750509273206405305142495445519885083220532617317675331844207439902512172529327633573135842363396897188503817453143669255837170152221340924656386742549166435659809254418892317551511487606151381422990899560344154822477661252540338154650059402095358952677296307069700330223047982637154449890554700960082166845134611351506601196175167157547415678285188110233171758104830839015020810515827590240765314025114486399728579281636686027469236583298389524239393153408586696337533055605733795190449953819838082188509049826382107968249424873442434339373570382457652769526536547396561439638681595964851329707902205432599277421455326781591767641146446788431334350817433120324867329934216168548989058883474180530090498366872786369509996468079789446699668974541487762722321211121205569125466503165686826109408102798167175450788528813979334350322567667222369197930710359084412325685906145472694908055044903961471066086357208448979389876443512308926868673398364212471693259351707394084510242959291635377304703898670699605839852594362055276923108355689579659789504612709919810451225321135687794841436176051406359567332545353478521790639215752545274927317355134184296535968204519144418724547725279462910630658842209305780989487627312589933533835799247152644648606023874972017062272865066658744156361207288125824906149594739077765541779748145086235958859072715355277901011380013310883212452411068962996069334601124091596383182187392001546368068989025504177194652419671085077718420335442129049367315851766685725798989198685771560537523047013267071367710186106429400564106186303204524022827775114095097050284895896211483735406912558266378859368497100394434200914937377045134514935753986296391242840293868702010871935462157413233797926729314222617765536886570267816883672998022092997844639314356461548887727141924058372024946084523970670744649785689823538785497071721431957751851373570620735541210002806620624446788631924344539854825413472466133834373522979165029363551787631908812657757093970238486809832719462576148994329855816314827243009352129288420336273183061726857525473157342374036050519474887304559203689428018483055072207041965252198065048437077966497991333741224183096969910944854426064841644291211188534923491272632577730720545831202270188326529540149628665023038059596277839879230678102091013631416275798550512634650546089674261922228091875798078408596120348077905367680811569468487902562876236454975621281951978449498006471016983737994867253250875227831518198742625539662569492845112137904283815582588095106648519673733629783246072822391649831547493218125552131892672410116425945684729110778594024445186099777155366043116963955316219640934403935065217779458385501498418061514964198028313477690105166064705738133084435000429106369087933345001276955797611618599694909394363353972119393595170129631688018404524452785481083200318999751815248534397912650746687085294159634914622018918975678538763185501771847477277744204422882965883679304844326537555918050776413673065730618601699203870116139601463733469248476691118111780388796668632359181652881222246153313321948129135025227476724339683135424312167410682626320000988953954181675165024651737006043230151527015991700106222474078688682687606053873827172504860174126303559849223699475903349491292861457529033218513043123874367917868763940022816155266930464161202809303868219085003663214357151639976703502309493296046640811917897879169049929533645475573283786464059020077819216279481098052373843326374392904370274116033250039958362248859119184217290956228613473651487419765017564264288989475583585573104787503292839385972404731979194410171911853318310429848601957290545242343222848199691313663374941014208282741372565888473736760226883240387655594104245123801255173419204836119962649573353018895021590615451063791753239368197947325744234682822652329682712262951066277358069574692542335454407246448151946787396102886587988118263313717724622159032387582700610217204373863529392649597387597068373436649164131900650096588314817051172882390694894112232107140901124144746978298763401914341197535869487963778440539321284360674937389056132566092687201533605306219253749697557024716514288304053554076577889708467214658849141856250864356049378530614086402056889861284154002352249817728184485673374452536894836253090015751788470333314974018093937180499267308063880996171486783929494188151704628495171687207457748791574271018168301572397294977619362142146088213366562359461871096006789261670924846687470787044154574983673001036864577828409490724133714831618825054654596882098760567937759643952827788832880526531409556160310582038921232567492074946963463749394786008350157149839522095924112046271448981418404129638091038228285022436308775818046841381144820539010522114607088790938796987366514690369458908997381329416306488138425868779925580631055312135642448734917601084437109832551505516566973780078256860695955017347705367778519642088222092653846099624256929872180450453307650049780126985560042168908506900807789432585609421836988270870176488818733911081218731511381067213556405207193256993735692389828679395875880114171756188444362418938266395278777563745288128950797055332683691578052493550034765513030639511481215254396319656052450200209707888124696528539934449834099256906435589874013363964350662863072616463136130124261063041854899865837247487782346602832245868847204721329371232237182699964082803965247581961784320249101902807724084617780072060193380313593128133078965018583990460714871656557071561268763212601882451115728162198600398926598799526275970033846426359383237612773554816749511093907090968404337059754450691652976805680942626056991793567389734828873747724454540006196055581261082536254700528229469654737290728566532523880940208632212124012832621318467778484175346618929352299795794933371657929960439255303123936756877157097564272303216205201011774446803723180137034030481589650066878269959294651841289865283375816241377835516510831216656800232332590431470775054595957773443409522986407378540958750237589999233614195135179137846872171017075796480871591090307421668142277320199575829086327663276916291099283570762830780086132501631384574336824749352290367232366278341633623615906630369413691209659957508935556409002626912105120942018262646357080936774161937315837799305846894146288559116750437045773552057458639140241158715383590844804814814102314354699199871247446389264042961430551261649148275703541434871652278600869213921429477565228524229239171290218456804301968869872439969266134740287412686625515366797685018298986179985726726972580653771945973334064224561612664502233675244908020906916955898657509808046738795632750123206454476458927070825684774740667368953784885990828550947276427490326038423715437925306001130156500679329150954589458931199686243359691666386264266959166763358306713755068675519058570188697256711017538946630515131376383655916043684505283566086757825444723433932310490402920447650389495877709766041032177276797015842156101271104489034597812989082509931116169442011800569518166530347910867070611814716533639241909399194788449501679205626598856882773768807014092714224953450419086067748985586977107786123238354776240767101607187342504131837886185325806446970435656502890897015749537958808154168899999818969536614217943615417791892773909947317017287925696095176228398177839585420290915534139897835203349476423319044114272625231205873973120072406143678363784120369866384590390246535710306607724905453957250733807303082050824931071400818200569378234103975301209791229269322803644123159021533093353529196132439413503451131117445158959035810031193087387376110169281852285345518225060210614282769252547011052098847860346745111611453791802697432471145699538019587603609679370091228115007147714571823878936434673872928766119876412188988074010524480787819964029359179540910127598696365472765774831648406491392293120644355312477606789907494901276535096329331326333364242089122570573493146388957266281181230007764360266623522563449661806185050230483112819813496216509829149381913472980239542919130974587368572707590305840267359456682910226311481829690453406535402645503673720805971125112418374217073722355061720415307279770287208727320522115879045404786514076253290550300768962536519127002797756606453785047926353395643397937529225676358694647313973864185580718299960432470800252713372791723256897646946616830761626689182079671637326615893348454326763429101267199365284350562002417009589827902655989219510385305815537136498553101022889248995172758248828641950559571886345338445896611650225609690289734569951889825544319398604539891513184211974868182222865767132984140339864061146020479427215601370723199598887256466290137471786753975733189683551882689029391464709686818943798984029424924809585757874998069268849269337540839055785758171423129194344178349018280871835833494127583800280162358684537000666886676858769201128338181451814272552672488600479141402095849823689211274087650874430166972675262942160136902336045559492084982683238310513945482776844395015045829284422214331633154911380704089093458087691979301630114900791870043296775103526861386016593862872991639129292294686239199268010615223216117195363325745875884819904626651522429968567150751312289318123731642111238473309635074734994165403438368503475739370733009986706451831318511438489262156093195087307715219919230069475010834473532053772977147194817042496016630693568465154032242272317890548634903841999894547991823154385293151264892065677594106022176017794964052248653870392198612125415712233768497455966231167012807847522459130467123321726866139515855709316977621442964419747139323392343702688630782947010791998985700995572005255022230554292704428298366904071384790871607249582328386239496928223921518734208190625367998482991589006739737905297141027164265941676858711317152616557098131084714791931134938897412003148746907589471997361486199480984128264512761932006272957353931954698613716659800858105833145601600614552420649408081372749867155485558144409732090200037777588911088065719080720903442446755809155975316315839177137905030952924356575948494671852748696524907062011285398701710550989161038348443126721954768370492717168727404039212281625816626729385202948864998155810469357360954980321399013639192409551794041472181758364317624300936159576178363000009067638739405109066927655738614506427881740436107320383210950396718878635523715457221345492533929793497803763418731485182533118757240526545222440900917855828896493085601696240383205510281361288675819155719002062119494709178744541900582819677987639928782253778846440060716477667271981120838320386494591786780213024765854846384930639359055305310057482066529479965094890450584254625468487753504152145886196735249811657571586220915694504098631821644923070497493952455421853503362540209887818986867313090322699853080324687416842541823127224513407877909277194664367792266353094103398774154383481703065936843584148175347533149712194460978725917855210003456430246794405949996762402359118578792141542778524456044998089124723104501773557161118674040399245321789878318955159615331918372524921089433455158113027150945170745044629258499030870606834724699800157312263822905795170925884222253245459766662493194175073743745011695343634085231609894937389098186719785862431183446438732974585081422877951722754653801240094785175437130903735061618213776071817278538569858999547356923218028155444163921230554277173907182651037816020515768641247040981430597692282157618181854319129456628534496342275137703232358239822040323411568725348130800478805861780819069538024783690995033476133476571614880123589087866640978623024651812854363541380711661587570669086163845810601443533424199733451267660118493437795665346796405875632684735407226276346299000540862535727635685240530862958086775620176123165809213604941037329390259567924671786350432608206270637240918957465408590610974585127905858328464724640737832507790731526583187620539040377041665322598535821563454194483604244407576043499560671965236864538890583043332125471624119822342502895954099473825909399978192773670885538394632556702028392759368160558849335635539825518964820623747077799760305767304558108323967378257492577204755975128128990354890707418955986262822104491085360160899434477541618351252177922612617037754735565940330640375884242859892376732711919592829589521422401230403294515725779283768843650337671040588942331860227807848686266172764467180048385934148175715097797951678792832460716736667350159161623111131309416105465791576563585789971426070561669142188057129462982864970207571425445838986557180849634466550652308407893108398876767796778734373918563944119924223588214648163715225822946715819946732839339857607991227428655037043301356401475953699920987519672360196943344331939995734940388081943233331206019285593567421892351865242623792296806661908866966375247087680227529277056670658479100553885709399481219056377733299352266795963750979134829145156168794740273458419616723261784352194642155524411263380710161175904320361971923389377603919574011578557284377971548648019425329066098365436707023016170842432347050289985370864951384731452953237463272143026382286857278978874448101738739127910985345968610831441989157324622754950406262542983896202495359813309098829702361469660525239578780850542443409558847933610936172532955592061675852206553472888893533900344442671996193358445107249462219502056364433686594936694054589143617721399206750521854866775058698504559113738072504210564375158264903700260775348912205990695587159669591546885074820072970298635281888213430207188081163686673097142006818221688154929653726793279225777808335788315540724970122974164527459071292516808552527717393717447311295146431143665267119946780962197910467393688207333430368826588072775323671215739299620231637026776059326079879660628576434475840233073738283157569139726079423975944628002142938285728356010996125896244913976572665790956201522985314656671741044710695649666808108469486592672302748365711122901803364957370992642736161356429410709538749413347469366467343020606613718852173351731663345795674624018478317710854009645899007131289316487545880921980947020932990760302763168033731638643165899837132172716049736255528098525433370838700591193417412890161408459264070053561084244400901272149172072307024248875045881874947495096441562045327088043045435314625847029425948108462494621725272327794674970921616955711564285376833605753905477077052102842282369887964555111282194564950568696926668057565874835560738572738542137617311039667510583871292083112708887490487556448333548658830674149691178745486436789076945339096443141140910791837353063526382119639820645315749888284284014644811342197614346151895181942140821087260245894626757754439049721707270271322447328956875064974340459085097529861576977769232909666924047034098744358598754592573506367926230110682663780185420247178726381184243951322400494602097832226973402777239039747951709717345323397913424482385056222636113523321981489709183870378776301963521181078804713817518138528201247810192527860532603039033737578923037237121059757000002088187393447773510147868380885919266568738713190449213712178775379764823635079460657607785721255921870065230413630549399758621162044306863443167311042428595754781215030886605329275127853478840418027596151623910336043905533735563880614974044528279226823011877382734307136915809970689412672264002565945400685409608884097469287966213921376473989608629258454535827042835989192005695216037485532730826294803730293852688017819109965448509399179120319852670703056438733729143285585152104231155439979991704240893836427173203524336569310513178490323438038793198333220592249117533324626810610385476431319325323578788660323065308483363747928713539875729473601638627123560365515667423817703537169021283071319947394351240111871641222895806243896202490470738218042755037315786768187956914328621881580186381242767055820511997882069436879461350786158117119632536024014350771580771085368645079386620137509092722545872476783007268099376018744744394672083376429490401783494863112621725786237941028559666716949178182471251306934204108719393064061410612614129796184431974584130038747261786817895843880124071554545089114958207390755003539010050074423702549858230531100869001689957733286285153029091463946956402238685002156564688470014949517097307486020362119627091025629878657548496191120495254603150685246983170835001782308003652433168571429842887259769794363837970064574901073989872509982485505293708825938766366525041548740584478932784024208822014692654082730962751052229657854265076959339310759272971233581506066367069658344261210511466093287507948591704943778274851200815158095125660506892383056619458022613588820987107690669380842062156899050521844213903300930130279580167471557796893709474718255696387095847534859386522574841811231354968841020983105616115328792470893809909976349828521740207397990985570345292042033666403489310158133833592637592118821162699880901478416807121365514402946397637814229013207508646896566330444820924112016584732002881028226634120264665840887832500473019886337081101012798028599666990493968309769950641457108952171056810837737264524056070206017177277005384873471674005150622139045801610385041306868264155547413177561419591113482544526408607242705498868981401167270558601464361687474753643418841334069677002944016160928891928148629719632854652145506096571202322680110400543903676649954295714090035875335284737456708970808397435602347604119935450585609153732150848814133773864329725468208356427757400473863688834722015298993130443187907029388828930291509491544732203358195003638299951370056441645496909433960196063129973561846260284305568878743716554477209932777230803251866106291078532457513675274390771146633874326631107230865710118884431679472250582571222939261761671236355804213308722098535984885236669256026420020363216833930672424483963360412295200187071944575093543915503089162243103210596229983364938255023450847587522758771358003651811945205783634568563732491389340620206317999429614751895202330003787497257913214199205133911623368821689027816392842735480217342986948151687895199114029676871502573144276543018257563786498765545430154403966747056481918802460204384319238979252414339887688051606777850329798466528754794556308927134155980217971254706608239314696268915331613742165423288676894651350442546458102530229842673176099898951503709591528709643354774568327664580249884108987479391180575750563353745244234673530659470002003399283575506338492629488854499094949078169320102346104303196105344521349742394987911865215242890556287076267441229965506933593036452888615366063606291727886709889548803700366288901993426993196196062503642995692794084592854499267431357304867495338459061464005496964212369676596802264889392959133520136003957677474011990818644117320383067254314063222768948511326688435835939175890152245039293770543884334488815507158652866736795651081263263007964175799512644438766515402900339488870416091929718761672372055785509385118570226848450802287988126036054994897593737117072878622419810442493473132678420024900512760546527053011886558407189421858999358580068544564736905343147298313647106891468132198021817672568633206088874662360765761091854235694368343581640042359613269129682714588510960380245610792915570281230703378883123249562786567924886840805941276822504608801254880583176733277432783576587235381624953745958244420875225983803095123717013369650776713568545099415593024923136122331547391506879234267296414792463328060173511081130938619880947197384762919399999695873617467101062962509803805348872956851671639536479860647345839700727116224290925688195723779734380616510913885175354026409431872601162261941040339599045600883820764763261608508834019095322282500123514758424299562822793829035782541255667275186135826292512643963790242578551373189179628649751929143285532161692057037359379345157825430196537277736297747370942050343854664061966950138451294888117018985276291031444932994488608941242447403040300607358095014609054348833548513193411479809737329686471469663936107449788738592385592196977828241543885896300661331556257636614391101510682803241871751076312687629794347557673979181550885713755930024702997392070897919705232722614866293903194244959208374790201159345290133946765130835312185347474033005827652677450619354548960471217006004226589042024024814114690060393489445376160874155804469286464588631911711090244905312780525709712770272091184679652012032065424716128595125562865371194661363090297181738175831887572810810696349250883033564155195228429824255493866246755676534017632314950113862993415360000126982877856826766842140749030461186599239062460309926535897996132920488397846008358428326905271762844322068610456762697703677478665289112476497186250777692209268706780787884811951707148291151972163609031516022317823720378039058058272122168763692455715786114220089420124212613651852293708424989616283338525466102180298159521308492526950781661435821094779409121599806579771393186828353641241767014067194715187001970156794508108672914359226607766901366684576318903581007215034068299002865908349086692370864117950491058324224995016048073179066614595087878771641789735878790919471175175706269845612730152734326463596660280255755369848879041223108762100526575940290137638054064003901274530772930723809327241948172516309925255097524185295091914838538756697055707989444811674952440660218679595061026669467466104564655893436295639939492228355342411096657381078326120682234001616524729790187884276064495675172799463105293929460564770841677055329308432252909372895667446040472008997915933698563703184230849695963429422684025829301954273427891387548687893499810173018033966014408458688645689404088180697164050245372806995845792236600122219711773361505684170249390186027734889851020865543575033702080396247818276062126247118613558245473299651330553633845397588213317564882978401278726167049540997304183538725701451144673448086152123980167952589532891109016144270938937728688971361727931423723177647980759608441270728198771349275336759693413006179031030953726061503422757218658169003271821744917655771048392062420437604688862216778156983222531629452333635400591344872196652809177836079024219421426405840497228878469634009836243401168659056310464078202394528804864801484905782315460392435865899969545897379153144955249196175122805440878351529632327847286335557491101669268492695119118253048551718838516756097025754383428470614999297218241968946536490301301281731527128500559585169667260557312499108978377154754109807094038016123628445645980535942541130956745080348385288008897297787313711134821914399331746999961332968234963833914302717403508818329832652560175248889387641045050226049869970662484289528178756895152165983671450169987641680675357791228348776499866635770836261201146227486576248151104218582363674532278332419976959503274489739685929885580807468974628227293587113048050110907720665216318904207966216463846702693078173838522158353847878897018544805068951482316524917251548938033422857450585423301962316416977344455029127484601638921048651808551419145724264679738608252902465493944506474610709035237351189375142519722203551166511843538366520105238692187203348162431705099178003475146292861192104426264623245332370797078888270553586123482669912383409912085457147965545403300444067397342100108161925967165529682350983098862148972314370198144381351934417614454813350278715598740789222520572299843426191406440211644165190399457140780571844709131151454051980784002179705861769689261409320629891197581042227293106884734391752852193246964527544440135520427435271935214660732965969754643570591073303725524655737283548818245864196284350381331803871410544667357409899986269097993381285412714020526793439088016941874002574515721583843859472720198055632454904000544824176489008901057002669005481925200839009315639857796434396226784534988212514539874637141767060597063180109425388645496349531760377250675903025031621289718127292535522644362289727414865712035098045855966986241150430857028698230768224328184888641757235915344132111873618878927305544186971217068567860190139649593069859127617792185256245235939666997744412123692014444054593337692538337883476173781890406616844498816872746100741156609211634390868519698029204543641957335182240372487766917389857250821672368283764993115633108044735323373091019658704688827906698781744747744897202753916473166327033091585551143128063089103305607187299479361692971563790583112666456441439809218643398321505475009094809940177276530529673339052590092642477004664749431388142138622385388140475915231842789545926711034769476116984422835371996729927304640231902084023206402679702675228283985818970035594906802501610863170213878243143129156781886888268940873429627212111451493280044877759458126872759297959731488405887176298249521421818836565466052908913126350140109095188416349012207693710189839070662561968490750418474124285806281619258811973686610312034389061177815126824893008953186639168286673054786966984692302794003751808124494492009341133267598317977067122637743936044511642063672931908371922988481227978042251244917219932074935493178411967050904291028378467765638390908409540580659822087193167721789990462979600393544730507266663006974124915868307512097468233395905463407505217917704403801570992191165505429110984760209961761253127253332227370724669691633136426238580595158125635247331703662706083673000079152871061811763163421698588697292291135618640093555588925511731619946706827738370368329170577273742387231838746842258499223126595118825744224931703379249603781061322460013559670977278316471257767689826104145560187884308689204153933880790797847716567638114430879732081264216023700128583980698824894332605487183081518809825857550722795774083977614997124303468344671201387688683957448940578057244546910407639206904085469125097942544981323005946072849807345548559868228457904906975284626445355643840276407867737247811985860802385433268546793596092130788853750763547488394114767988876560292385044340409256937289538567288610682460364315097803795153109229602725155540693061711252727175513107397234728255537244158275097869171769548268314161073242767862277976613215350778292596984307776810366354202935394707580861102571434192462077087907119173757139699583358197842031589062890017952824535537728092164844620813263183687867261128378481715428089696884518277375752119045653119886171133241270153354196151987065508016977049101685899954114643169556806621778418890380601901390214307429807357120223816654598135007876124913841970611961668744644059641916184919285531000196380215833078909341350720868052644965048800960666096231338994057374725224870771311734123934643335920612294999623529780671426052169695040453628173774484637336409788241805118708504299683425142397723023853344022754416658432254506503243711399424929780953753865156676422020129140953331932628355116144115120091448108750436370026868512809705219596128333928092687665276485711487150068235304116115675374519413451748261074069324931288902071343884597490993392282244838083790294943898691338239263725195841647962576276489640534175660884015627163101069351917812276430212262780650269546733956053890044209469782873074269103875417145734085304171082118390264794066984042414395454756167952807827851570010965021709866137819331236222003090283666818012442365035174916285538538995624612081983484695902440207758084774704300489978835897258143660317044110729954133866787905771125315604388425882185576100856016288366966060482997588961951328242859117247560096478989989032476401016379173061207426852980215242266556150826112829345648033288210977316803441218938027470807587739680142943536548352409783272807789668404210436846012252004295311368392188916057838403367236454488602642218100798552894876128293248952768578518922011293132782201268040957236588643276075230110073582670473095160407804762894419894527591413892867289903057245184276660922379747322619497800585238626841418035610869853066628425022992315417230814996183893500724940269743481749650623496646530129867033638463572188561331557182289602881972696249418997821683562237326411835709230260657868993963390501021200760341761353868995059239927049868606074523152861644381043344357303793882897134319911494391658449350417244496278103796727450342393588721257661457740298508325404524214973182838820177531354650382908929986334629229523139503234230564800625564911365013582760941199803876093574194860497018580095631657631185766585742303193068938550855263349596830359884836642629519953834068794649280752600938219426761885433823169820966677858518435959683981039374123879417271886065367103536114884932446940480451294176382344293438775219485154134510086420030873868489694571222719331331489510441857627841334500643032709493670854683586256109372699221959366677024274477971504997413939454921513968974019967135137521329161271174665666808286594391779044654430081690250526333577722113037392958349676721973429501482518668723774674802002307842619156866708818889863841795792930808664474368066815060651553184268167387642852473887670659055748112860240348219927800149627857303023106556872833344174153433520580116028852350682096895064561637394104083198099890485427203714166492853225729804821430005216944472879915325022917705412153460773557650051036852083560934738125693234049395033159246249229809501036009182405409947608639630452919413723590712659981817725159621544476441957269007699646502705446982009377394637174226851280668269827414651171006934580207359608776366361704054792191710500480109676217962293201099084042297013406520222188612280741794209148750384825953885962235662362623877911385914251388602566524675013190498654141554623477127713671021674678086219337204541684835213016596925487421379384086846841707917632044069752965103339754046034054169692600132087089446279902753354949949629244543952048502460515709537449515189414494776936289866977898889337732361869025352261498670851157180498476073476503153731120525993509221170562884221434949806347191031260328615030078923038769935079852755956974830093275144209888950867545934379320985467826709816695501500484465461763160809234688319290618219824694440185039066599124230432809399370785211763999618772646415665186728703098140741961224373250612192151940903113934180432517651780436184685845571039388795469518992173252253402568791035965230158526196507439185351647389829775139874547500744332977886080015147887405838383545022438658001216619261835476302730294927564957709599172776455872423273186088575062474129102528663663364170717281760599578969078364134967240061832450163419479150615068686353100536624432519311269116389741406286216093847965052441266156813687245701200417059965599264821080328946141427632151118696601926468124816140207051458605112670215739283319256084909503450930698531152659454415893748163390820133608320191656905526389744252418708162000044606972112602205098104439656057537411220886663141868623060296382947522527484263648029520900038920670633007415737060362815263436618733335035837409806203041475724645146120203684732835401799080171297226374838641662153570190409717747371175073741093943059869203185142333508715051216528619278425929158901960821090163757753413772697974058913866333942298605108026394066989700604100548861800800985905355433142677352526075220486401392258754687380031784447525517696127675743309521402748247651912574168233602957309234451262350475365585142226090910989491555834792752748526339424830603381940843751257175430407430736333363668859324508900121440875790271322770857230986572117870723152250242935128323562103551266868083966632382852185758506230933311780118439372499549521016978367825970126495802876136366137423632846238372184875806390801819424187783356999353577720647414871004559198997985151448798826009283415400816104081279456411652499919055859566551868470119964968770032899303332676230771198020551820266428896799335610112041618159477767794049743473529977980077663684834098297409268066026975708921354225739777934979918508178165061343757556889098695433772941698365514270805995332111832329413248782941266441368244086246662097596057365236039384262903786722331113596352501641831775140138336242672373576804872457143215369254677355296307649869219172863235153127779390698217401042037050417675505994956486137918804874410084162053225336309975541864290888492661795699663909434586379702030540623598885042694672772582234974025342413033479747674452997032332404570822035661993168285744519965328247878841278947147825701775709926553470657018069278304652817333304925856181062088113604943677002643812019575943029011751195737656241567797991914398991095769060391343848166310212340050755294228411627434520335449736528115248802910290758557257696247355841281520627018653339204500215045997886664726732544947649165984839798962328162409046806277309923908953858476199648772399357821283265900370936798594890737155542828496092469585063744025499188000703450349486726787391266805977913327766305010734552829773742391903489930360812480618302857070463497345097930550933830189785390052629017688508648600020767894059710235634227616384685217876265624241120780280166076276832605234816385383788801729966579139704607641242604643513768582035405913636171063985399322840228016271806984027356281647135258610137678824929287549552677549747090693625293767267807616777368794977018121808487348851889505324152126805856497351859500922754195650829099100343018964344930914708530016970838687643375571169669751184507817160362056849811619159740704633103726880709353135515491456434752698494964734510518200385470454773037240864426517175164506621123226276220920067028537417299495380095125384507575343586043378388630149248614949981815090015034520563507287561423981858107066747037155395828279886476008758441079501602679573801582648340198857869978969134704471842501015932993472046724087034345380131201709894941327173513213068864638637000369084746454391661092637447273062916633828719069435889249991247740250376294313049700064388509387611244339039456010043001752968388001340318749743277252375477976751029594196104843433365032554368883126394678521392294721055899619651688582761582633004704469027844793496374209996461325529087429240081367005626597420761400226289676635592900753093546153087742889360958761743367940270481113996841606880908557880440706745884991891344450003415815184670149131335273525301497567308808449731250209489870192150552702878424416771900544988919327038044526890676367143443070420604468628895484955721493281561204890180731195939850847078787394645981021170458839926916432256334600499808368885217505851477813399577494388209437206596272435431582245033688321036947238143378390242156031551891894223698468756550857267876046814762212551683577941384790480411948192538433014914795729152351032699114716239716342806186829331680735634307347317137039316691819458631193294791738950817530783388602066851506244145907307680125886568847031229238820921400403200252622968138460229741568148785638973776691209193043564895111343404325127177790525185292674412854048484475857614315026518154627790161313567112492394698513960837124521477728636479162067662464754810990810796382060472250918472307015209459842586197840334886538364638569482703390419905010566373633158813685220441354556216731220519305568784055584470934839406896557052634313707549143505584200263908002024360726422965290130417759802650402081794875149616228447902444145074942989955541812531456977410386479214048023587130017159422962187060123260051336012188879772117032190883478583914530070045957955102311148247187694580655987161604014086808060609505552280411471645234530755265531923668095955606122927041613571624896881156476177769788551946440770043282124419140476044992362290455410277289701484950576952029307238236826548755721212802469645932123907985530648073553361684254741295898752121840281117483723463658717657487268989286995948581022604597484657856739453642418058884402903737100987588287946430199451962163484433376966254984776350338996492139958143319145254149668653042123065842071816901857337328754097868641251431297757648344988814180486842765004582568299969568492369480137398135914066850721271176183267171386774484605559780850804470792286299508740073715339202871680605719013021067593592810806177816534324862062626965899139149960213873232998442711305570826614353668695638687972438840904610759986126871292326350169178933304683699449474285333719117855625461592414850870621965539212311276918017871180474416129820274720916753140070851490849063690873355986779019085058966473853388818144985439556578192602085149852035398631353651883786241107423367529747309652609210586719635287732913668425796488091880728251321835962867408311507234999989050191417015219553626899327921254236700994261633741572854088266517014181338593014156279712752263673951548887243208842482465138964510082621405811611560824381265851356086444329162246929709939303048513995236466971462635218363652244974209423349229879434434555407960593971109033155739385115136318909190785127555246221542583405509960483341984756723004644719139664264355940650175031455237209477168615615274206786327995731120564487612682430002740839797168358484352930434262086731620987138781621386674979625180086064471176737370501009643919982367823458248088579051131086658878538748413677793890603548779108155628259353170469644581319008308085281081263393948788419049884118125332886444474860884726173605304636040870020520076086565751071886048776930252861149255660374006328755010005174698931700218419441848272689108742860309818559753064223599941722803842694277694776475153731753652548222591477700943197326610559314246365686633186425610616586220506483911608488236682644052624125908848971294238817806638428979220720024164404405625971169012806277574928409107124975052157622533111913966967074450115360025785753275309843676559323912593114470484498739043725125257014085937199944168968252849554396742160793880212164562405703907036027484192565327684455346501976481073283222610203825067738904872027167779918291190862646698753500285872343983252354374638558076107856247521950856152885345678593921882870063564903637267945027738928982077287333173500079603861872259259049593711873248419380370865883830333048511009254689709301581105006188556090773752000496670239451690169583737125619992691514414700995517033699358748076461792872156879427163666571293090267580338967752518347123633594489836889767507794492931221349252314505889264752162606103884482511099914329930469449872247459546336965336802993630555684489224170279900765272302278049569512367283341445200750195400416994467678856717107846154354486361331723840358183707200242223047365047097011226717863954610732821131405056287362320310201227028824249504541718836920650359487013854904463647809853837857013042604873030247530226158313254390599685832991374323998945705794006819432691590479970827493922746707954332391847338150685257228211862996169082420437671229536828575328198802709794122227956617277061925269160347829821964341301044669699835336537042898025224952310149490841399893412446011462474822043605010521834004652635858404437022793519760699123272516664414948931562728467611897710564147751268673252203408401510227911831528570818758944665878556403744918222341925570748589635320651927005134818804558521622967470136287685617012281703549377093762495281403182194047655169138005049499242145571496776552960091999063451353720381074279271438913944310244493485223978335919385008282331828109332087824517561635075862039995094846232126906549594201062094718170573830885155638353922073848725164035159933770644177605657460343662541499850718891502846403709245836758456270526529947181755594879215693036417119974688759665659761071894946447036044867587821018302857780596218130249923802463218891181755732513491459209827430805712133917396038357631943924813055305701802180926500094112998078640002730271949021463780671081592092261965458569197317104497897316877138106080991585566125183703525051349923861884918416093470881956880695465488134060397028597567318294719121200395671821070330673181021546382706693443543724100718125935432762194778537395488093608511349014286837364971190995358737316679429507949371934462355193641201357630423593719332757446183628319158793951711118884873336271022787986599110654495393144606818479429297176160162055403580387417186578272126512452128564042354664210163022376953574837410214667895179537563916564752403358969042966991586441638918438090817261596550917284246136896674811582585633147599254443473163350313801035159526314021994987122651771182046153530315325778512956890748460485769751609514223262282900851864276748223981202439757056865202826307287906779086982893609128209646751896489315280665375905331698985032520629403086144078506508298002709503174842567288926458119818711579033256573802159040574680710064761257761718708078238294973095262225376394484639343621455183334894763490547731052053236110653478706835722537401509693023105813851688188957368780397983713902896373991923106730810019077830277559279847575285074084530482509680654970735808048472869743434920659143884702899581859991709762488458158903974434978969763907815472609102083547115463429908011425276854492293846171325867289902975027823012441736632822729724593465303450767896968229450041927904927149159226960813508949254242742603648206613398489201106979479186478057056996982953320354083376685525384365059489628199433475365654899652294294818177833546653537120528307890760768478447646484756970498400034926511922196961914732552728489600132708604726632257432130545716200109554956073621442454723713844931424333741498727369021069484016335342683168270108150482924752320000826242271538392877472935746967771149304505230787934960856978224869103080343669618299102435406410706852755651274152447409888799825609874825581009294891363092635364906456178823318844451124363675027886946721201339745771824435560454024167439579099617647297255503310432605094642200789601786918691995249999042699846787244346267394847801408802186976327278669452039430956206340899736983342502340144802067177284480425571295647529249947857332409401194327468417756802789530891990575377657251990344943085227743433817076103710991944100246454768960799065207139301750823628552285425244963783241077378674829123292607138911133023781525889539942230374332502540493784429557761806139595794147536377673304180159096588242806026489098789491616927470548588826486878455005090589041561743501290977789800930949102092983018330501248981037622981931074181166035902418027139930403736095782126485097553591832547889325022986548135424476826820323434262081875923461703798643640728176043761164715498428664877990388356636289062795231583386503953444325853906388978956045028983835884888329658423413536087573516230583644295138532043143762725200619311418244500771484211130671417247303865758533992609871062876699334104338285041618606097700320958752373713643880375627128600761445250018543088409763116964134604001345503481682664958517269529306947471520889304714660873775174055032036700186448609297590186290906498034168734044056367419286653619441875551217478745093253907176123128465858649041625444200066417551313734492434943995386014703437673154050768402631061479265758069730143541832781541920241291516306399335296370314520054916987506269459142951130918281493135864632932249965040602107270995819123912981716058508129290129067108489639920288031168131491744259545199289134023796223529809950319308967897092870317399158230492079074885760857683797386601873072896129581852700599508789096597278867627971243038138428596924279457063499474212801653650752613297732125669738077367280834253446890418194177110660516938477232254720814626074840823744808778363603976105801130904484618384263036804320034915303174458455897955530205597578024544545646517753043779449427728447077409514155912316044830242801181248135380049026757901686499048378283248091097952893085761863806611458278688104384264145392143352631142383996649195435594512602044347555177226668755145810165986214697612355337059003521086332580922095283557109299540430839304163820352023423370527080386852407859582666227312247056110061336166371699161734840719316864956070307596414978617306705246271402620982334126551553503831159292586939606560969353604895852844934911011272191954692927223678719835478357929505583750714292536951229344428826336900614081240834689791207113958704801397261638990063880514629382771824050123572195649864738332279669812713106097532947568115295726521090028989314095226595786079863521893038691867662984856519421348801863214971146285275105011444282303831277309544053003861033523249837071836602759705888677741032611130539782949976564565219816314780932046367841424331811619638495527959104493547559049750971517860240506980840378541009019160167747610939738968215484273655228568775986800005142987152889893044891849080847751271822855394451809174411620575842008573080353190916581774734784767555239422136021659908709922940155933123556254732175026022076749861277423554089399058809067953165131928975673201330955084195329482696187543926636278491638071053248429590156735748537549549888368136735083613118173425735702072670587433787046630670148161099569727245159907955024674156558637349846264827531613603990699304370027783484851541767352489710021378933078592947994782415444609664808122472180129842307639051024509883222751377275388415291974925478704004238315143246917489989133872825348844744617508259801768238500370839303947664819477005573051264097793955455769729203075017276017445653356793272744397897449266372258905370916021070811001728460580932423961300465130197741226801335010412043321095608023016610840546364540432391553701352236450371888245111196762373224827859229565771104958336295881027365781668227101934445028953838510530946885643260458087251317822770586714531232115329601951289616035884555278268680274337524121454177294945521819891956161856780286577329528005703776792278779153032820606573304284708585039446201434442155503907002036765481004196520920273612523781225573990215177420290477663652540942152781832008591506608354145718106885253157629063072813381444082406880913037193689827838789029719308226354938353860440472918988921192798234624426857675713379184547429505892014816226614144826571406403430064121505012504139471794910828860122019921277118152479398163790118156915229995704727325125481630334655079093469047687220657831559067863944674731477445192170910525015802594119223056908223192831636762648889332738134360263060382645557096747854085196126995793749633482131091540743012181847705193690383767377177466329079427103307472526433237036468037414814234454075630472829114932330053037817059690804257935901274352083092200547025910731838133604804691777110807401053704502966888145321254062966452826338428711605213395065667489476082711597061056215397125710919460420899541586107100795155383687963380186007058211826881892139771016023729989975078518062698292100326431676714133056111788106178644457424628499179901620035394682475415734482169717314950214132974320712246978704043328305376401408100852266810413214986998198313339726924634169163248567666525143873153784445344892455547249266501443709823210460824687116779756445882698648867915751603305161664889914871006973506733314608636531004903753060640706181741095905347768829260141659119571983546149621043103472246525321557359767084132071018901886615751599976901659117757240556704380749389772631902861938542993958872637407779107663419316340009561036358255301499591499807850190591615674097477097729926066757053274785599368507152303199456476927961708713617476754969107918461797740616694980295812499666046748428494044478102692620918405269708286185516602367326590852567186730225863604675350399221802003455535009323516759883256348304810532639582610863167607471630906179984314070022866943099449425161774468142739760520022900044685872329931055231010729027928852675368095413448342744997340456617450448018146494317198017473401647500446185055987497905447196777393814554814658542132582344869399684529693365232970302959510362533844098568175311501064363199713338130126667359887057827480496037216895993970860762209908033557153676406482778157320948104067395399317160119686691519785722241816263655483398108420688515489481011451889975319370320629440332382888201837624488782828678824406081372557940433038753782401444780340461220372622067541666088186379661420188881807561072408959298024350861493748811318633913760406875258988617244779897259025806346121983977302863707905019330631194948626019236445753593882918104222124474482715671396667848542302081560041952478983340135095109571776481686983552013954744789411413341699888665319855268413833629536116730033104180320884486356434211381709144337129352674037475660999047910063952403404917592183804850913111231423051845129661380031683487282603463630098848933422818035913098548231350018267813071254243244845692010774053764787953088349094262143907592482680050023217708063350496882814843513216195385743434176086940517359402838075623818582800942809550924760950707513572464718747677498203187946972526326091228797228114806762401618582087999033284121849004616633970980375663867519503580226711346851332847661807094662086026015091210785769055276221058759938098653606019244763298749129719993440396405753899933260889044193434041651415541156550563805946939952421629884719500500471981978387644076145665226703315898788903546156615062830519081156943851998865091552547038160233704440857162587507478751283520988625844598153750083709226323407303820458742707658598331872805307080337744349660839673833173892206246177814972082900999797723903011658727989404954833658584927388019280744795737564224203312585733985091806640200370145068064544796077420927568050050695244156019837945101013979335513454101028368398483054218249783600919159314440470193612196981784149831421622914644650085078725307373518349702664036799729019470602792364646458181041652627355927865745937068919768340047578316349997238228490698960413552478048124863121817005763457618010467030680148434217323499621846774836530954145814104640813907449209441503201855862682298240050741535002516800941366265148674160984186532624339683784125061422404126292969439140146268826216722960961050816413925756921142994018203766613833441692237634941316824486458070979388030288769691395942578843026147717720952342379653007593848283814249587422876304615092056727933295718989446441208277721150278428160620594862460709011140371420155302876130371253111530801075384124779952493923867085565629801745130691127127704335488862746798203372786844816946468251957333907137553382899436631510143896521438522601429122777064713260053120884228369935390122987851355393376529667961213799888939358684702927738585153847603226489004266133623839813760799642777916892991389408919885411428730045458798291935841965578868043717781921090112938303448812822403517674298564948681349851171585672740427014923105051768223356378532395549007225817110508112779601085849243172931262673760874321778182139604301436103263641550387804834102717781400056002839698467751954837387090058905195996466359458047080979826232539266113103955364710328572350911324379440268025174702465756462652285170406653545893239809971009626166376313220228316960146783068255689289958886488028673149026458400607335061955050227617136181257501041598178359491368395369437391117512039673653096428932345087483045349944069476999100209718339696057179370596543625123917554969702838825823999686403605476600842082643449194997023170775885491022740405123709973350291856861394583835150977428388877219023552012305935189571429088654865484167626173174128204532202594036490576189133856364075736991206817145674519314546439020124082320546548555699004760067220713782377713623154521624605976188075475860130683020668573443971356399705405845858356680544357412095101327218208876850111294386972240492846784096581638710123189389792532231077548073252567743157500083387899927715895445361577564067608955914679157459786447572648553753482994996620212692701651347074899554349426045289652047671554621725753643931256057728352865207055354379846715228444858938649463369344174332614569675897283686145171705350908404172964940755990477493108272447736805650253510163907633816961961897358930078722997149377363371366167498960219408259055312821570733147788963284923169161628053914949451256340124051778078158242076555299874115914779429668899118086171525205574088450501094052715991970358182715497515601951066653808537669822743832092360877265292671150099623717621005007543927671326573156378550598424087737885727623501265238146899165492340097759485845888062205434294843925838253701333382494247054518133403284211374236105273851481121789725821732614659691566920443462006251812848961561294447752465666143214659840488302162389695598514493372020799484693521680964991138106475500479847195596854004976724122058304457856234997136014263393059613084226584414050838954031016992422108082318523820279021273402186051538889529658564626585481856268510523929108688361040009373256671275327450973674437187515702005948364864684238673873876762676806381493854809032287927029804363902350616087321615312585699427927348418640560910925540373771432791956112772376032798741330741403409282144332750096805517209925506867049549431123173838131536897393820172468758968862671857254919997004513427613470474410512103358388359080200374171373249769129859936408227220855972571051910479437806191238996966746008170863990550339982287549612678179375981502776618128974202579918298638949227624743954094345756852965624285521821039174463598935164068168367947439224553859908941240069573543794947921075584064016363157155443279367250460245514562394997160513401007131690461242742572819067616437217910514285954346487733633426508323604983299111101910399469657125366421020336229738060262817146177842621370833737621045619459428660132584149950998642093275869093121209772548639797025508088782801716577025171706833886466877255803269064053785498167389203070280233911329099155198575086683778223466155490167738307013346866610810915225972642118868599484070805942851831769205063835094390054372485091979674288116059251230775667912853774482673308892221353323720082774469616742788994735722675585718021193455313829940926494464331727301433422604347561897304522460172575058676222383159646797513980284987860554231503999906402317228100254527494490038204943951454933527282796953134002830013355533433096808763293956921444545410123968693298298581137647818342077659654075840085604590598783297388568065623961601754790961758037470864490233797359160958642865718853306953911536533692655090168560457113271662432333644489073723680374840201688474838197804582579930044026918653276097972599349481462943387704154183336336161443644027660003375915368103677224555622054683782473345360011321605347544209890425234065766907889948838349631345927600284838357584334037244579412320435289774083834198446639158548530193168505005644103546074716809235011335555884141933512724139078848824867763522389116477342519033963601776318906638182276695537908073710619066082401305615550737941382898689538690312014056921152497839429414468053339414029856776132595090091516479134803832858980042724278127731734253041989683691184011468658400740346747657672297166395240619550668338808993532857864011885262992140818154324201547662909370349952317125965900594033986106471222553628209467338936862427061882053919649944354573738139790250985558833294043295823262191671644738876174574759897055795006060869136632337870715396114556183547826607745724667758883764604246345195655517908698979756701389894700383137329075388863995660277697875863055734353884532237628954342526362139376113475647394835628925889336636499864506478632601159178125513989075464066329903487081323140554817984832125537048985701211542964565659094943913512609333952812451113842032135532219685063198599484256689986312952233421420433974502126666030787326129286394156644564658236350891501444034123676074227137369768511494298566780331533627535166704791076688764758844802036654813817357721666066923100777668111347447249385641937877818038268932181664307808615972790439337740844934438333580234261930621380371319391096465549662621800327646682467910483232570553230292431785336285355582416993966917096546656336426757195981227727509650323562221260785158600380588765502147730131580300307107975035527778442828812976646012763656501049137364307937933815228169033806092040735439478326181282968285562478398653613396075825262569734240430342038360952262525898066522616881315687540122312530594785792051956356780427273704743374270983830285821604084155232671228925968537812477059503501097808138663566639319787871431977944281540299904379374728386102968640164918921073941493417113749199339693977126272678579368658221899915099796455404794903434290538554739944712736485961915031678913572275966036438896464031285204717695780495714300128179461649184678931543307748653056908072938177996856919327399846891694677907204058471263179510720472136124606556114870333378718587193970184160747660133118747851588442848869366674806804509849265976257606704169951741395350196659510016034054658091248791310022961831146394488385687838808598180193814679681348239059208258738530189455788077606822886144260120541788138113111450785381718872032325835080952410334522251095264754386699334751537604108226560128015190864516101485115698647319866495164284325743291169887607560013808487698263012700999808390604621377802647812510874574396604141974559693794722193032803033850019270937560949517274152415344279254184224563049558599471807804773841710958489637808344591169285245608359525930489784757194740673438100894426962478805381637032182981112342994946967273782170463532527704380277484603985034335326702452599848636483315499235422287702689956932399811864255211571934979162565159905001758998485503410970158691418960756188633022939333160780787079845944200676175012333077846587863804107663516842846085844080663741024036728796121452926564850011791233304229118317694665351270090712718330008105408434432610720733606671098424615741539724332539052712444282632866707367646668669053314154464363846209607017448159105055472551690206590624428020663023166161967534246582931356134049399596824576959946111519536863507165065535770695021114121577479773759663033716974352962318388158713186487599984871237341559769133132980382063040722094362648933034846106589727919479723449200512488863641558629391542445676992575392654038863017423256979646389787868246057248675330520047911761849754901646286378643275825393398306610800903508144843726844176567235287576174061693302028462894950171365541900271432995171920532942482062823785302195796514049282329940292651112265986005659142780498537530942748151446777541703829800957787350787492072318397591070718582493075625307212196582579206923805633701075123069684620127471740396678262389158462519441189229567315922808377210353724810142636489284671454859922766498453495574509967031876825160436983558069134395385177345908891610523507783012313840309985132106089783861397661418444018505556299445771444153591036389947445752865310421071943517924549686307221035142102013895323444670381355161658142268151960883490075153622805762568494499564111659896913672960260250911657913902603269017130465404739209076537684131349026551263748074727665407467744212408356371310306470799505103349262787345788597571770513376512679246683199277977184252700303999744433110234089544318698849744707391929017866096021655631464371603155552445392148941725227918689901622655296417414903317227683112949006861934405881679955484956462601000133686111847327270772444993670698313968667567836188353197165328684799682797641301746580639862787586710108115667897312203455792349861635593362812181163957975002536523764439604713937405706354282529673588657173785418400514680332194465779678344365360516169246018891613982546163296484417577597004335752180266582325273046798007708864883364447173053233486216548077837394986462217196352168609027174774096006516150199495966791527092431951462271175999309791054179102884180976126121420055598879953206404195240551018723415446334840640873097382089409466013992025670397653090703048364025329008924695659282361800067851381174008336227479643537630507246161966840204401238903554995689808120798602880566269628315368536253714234892820346839003557125305625206095878043548713122597966307794144001834811263983995281070669066854553540172921046549070425683642531529643181289285140313330500897940202780524473251275733728300732248298292360397036236676499950704760652587678552394196095726578907815976498162330596735248572275655468974312458713915112890669966024491971093914743466320467674793920195289359647629033339830049251190428643527129294206374080148157125314272500863593677005872091465823816756471682986452038546560866618836574635992324133622021803500036823209883401430799315262188377880748904004278262488724145311794099194943742689100753558690122049059612425422378354916679543499729583759031112744293501830232729209821190974588499172858275362512254112355657334497540609078929362601341595286105248927265342326713482925613291577993835965898576649857007114036190762550207597186971102953209046094093090551424189576171011905936980872907538781405923314479432973809037344775051830471999598117503928863129040718914028403328454096826178999443876056735421950913659009019758542383917069752634309587616539071199222722203834508858336786076869271006636822033425384187953435398470794063235149559980299986784861908836585152804844404351311566278638751958075981840242255823111747132862141626595179483808926585462902087865926872116946032224986124382815375125084201245745538080450311713675134182187306587050769327725393429770034395222601185668359257052858807553858849452927357750887292022528482713381592067060363359629573815240751681273162102984466184973408247302426858299150227486235412591632811616556966688736402432174836846625948350451964524072797579671910256182604871051118225378603154701145482066874345446783021630461527262597447659945402062101199155783677525602779204418299416864442135481255964362411385820744094660584193702008457732611655617287632723191038347324268099206993084415670608639908348503493108605671070611430556345468917386735362727901949609867134596579275440188438044182468103662791669844860763671919849651824483084439585796535417423617907567951891744839954721150917195263150041099259443518403560701516303850751336485313786261517228670487256070137684897136725988731770631423462401990762207097021551065302036756650625239189623999787758471352204907512356987532747589289289203466960479764846839897247514733490168572540333747264978782572343226441405338581997417399733166591068003337702122943157254332171114090683878797905881199232595341223290581135136751408085756839407001355438910052227588789136085935816229266792047206749560354802890775490994111158302246973447161733556049843280917710538231045736884531287263758083904779937768303852123094505647343846133214997889115680885301864943352270498824400475450611299000825652478245432634498736494382319308659139055876465609173135247744651881243291024015929491941779723180714590646751088790842587404350335548960056472835037217112799206280625357013298953188786369215280173258925976647792887396985285629128527348121344775004257037611252455860790745524198198994822739381778089806869801446407403847748598065165232545043752161537325785877526909192707425131564546156196459179476508373652318269363703767679791622593857491415548497342748049438055448360031002408362686130138856619247406086639685030359113684702970918520503510442268434660628123215458472711937785525225363188967344339388291832943263341657621970947236126971105907196900536438785181570514974867303004902213152331779172708694576928020304097410601876429054089922971997611767784981192370793791282673096957311600020165028245421537951759737584935361122641076744385327002632073345229816880392519725857571121774097098291117510692229450365671392965497846275163123009552399496865838219900599484779302302451268264942472738825584633253201366299161853360497281504171245667297109106993949369559699204540769246836887566047883917951009510403197677261321448637566577111824098787105688750210882727134943349900423448968182548101369481540693702900666921698140843779581848281294568341096271238852264204114862316880384898026665923513598430748842136295127361980652993703416688448606128664088001337651220592404921012019976993984235333937341061184031586815065690653271782631800869531596125757304020173703041125213036742542977379342914593628337792667935856410979270320658031635171010761100362139331314710622943305924039755618865512843413942954741934065146408011240947081753932537132194362009388007516573373442231474459642309681788109077092421740487110690382912999152555378862564053671650415222039564518403708431698647407811215871817930902495052327349102905339465408658449419736907904363379237145053869238968250220502627847740376562097948516557257117359909878117696689907451452705669825375484415075859438333332356276583887037041348632548619309766878500478256909651003818371179934304927637163130708419530184344851911740106771001273699763354713642309601820275366240607276655687617640632394051406749867840609853822257746893689860728341739122116472170426484039694694673306872101176136599072005889929209642069490718765746215751444320085060355804362580030882743563337078469778621134387306337322340756683354740008134589054044270808831604941385398570866740128622872186760231359381257988234537629354869935434548445541273672717546979195489227577756144615317422391762890512861618798655737595747243975195455173887620902158058969468599584986332909333107043362231013361439457263542297837410195511418764056351912917024002567508506250498639271350579447284413322334893624877967028099446731195322727552743739339286855144561995553184668539741190532390416793063450326900633215085579524648120845762289571317308120392344234236523548267122749869347017591138045271777643594107744204227358422220906101983060738031603600855027331245755729808656850686083252432035010538034926879258941592894073221995766122829056337496967960335295472791011629545926369080034493915343965456658029753318957418473574164484907075625990904629367664858697370791084724115256352627310710904438580542903984139526576806813700333389622531996379277893472824524870614570968525070462922138841635629607281399923218581729371704573720193490647911498646133128511083682725098690949716223062946559119834302688791722734730891018957345019656410480347481517154595232206382387809493738197788381514152811314947495468350693157320743484208652078594576686674444084793203812268848680616681382315933703474519909668813466067827691051026311794668843358355413506730357669972292929129276608644859748003400776018988593678184959020432216810525684301129790885181543124449417178564398126982199486013123036429492020567906769230698664908897834765513908728262125636006867453467325506352536807441565055033304863727960035284778044686001184508261274598923111110186407120485208892351000966299496388605305008362314261319256477431693473861952265486744137895185864029331893641725410065400617542855006100426333947262828766635485107805781298246393950376288051859995424371197176643721048949049876483388552377472186546897068424736956949199767461597628461394001107814744129545028761429232181454705382695990310601373891268567586652938539742546392044580435788447640295419099500978064061169340075794059049100345556238778027987441979238610288673598645397268714678739080789990257685398836775219863817417974959810277475457565060253165543579392849005043788105358706196386778714132036060618911810040966428363811208102009901083127298732161846701334815801096843753887163534903669501629459987269781305418433350023465300795109504402827453053339842701636474735609331059308715554467622576361319471822294487473908580243928428630617585844426716952858447690756210783739920224810443445958669365658752834773891043738762220465252767116088053364352152328981797689253182762315738135394873832755260399543402739690125837579942917369435419114650786034248156726129234867300823711509916336538172197536559382690024915563413049977327926402842644805685433825527530260304875979432518257865520726858726869426925339212496776107909511655505168934209528717503044748934476718839696996091256320575318418471591595998185084005152276219366207533674561655843436833314585771583028752480353849428597157329166388299661299848329225586950057272996111739765527979367146155482963915111147577821192141177581563514100507080186861272431186371952745600004627215947407101654710958717759344183065847595146429764576489409743141711204406240734313712296184677927162710314110220998381958309852142796371797853247682723922421164959305453825958322044083372368632467268020682077753654037268302803539133471697475029368679978553364035429278463728689274276659922909729284832276945258971353122968756017379479580751014018160306508159771331731386277857958904258346108786960439101607183350581705994300947694754761278807749941143533525659258444645433828141496787060640004528126410780711330410660813857191428227553020651548405080287886367901375942770843214132775392992891374809314779419994027485058614033525867193874405652168972410828056758602336040246142789865235136572589832547208834055990158984403902256621605739864827211707097891514544961026290761860953183886022842611884922360698183845784319213807609684172708601104110564745372085040643970409345140705452152598517084790405916547304409564195844187041767066269499422096226046220771036113342150228154901309357081879150797949057098586151102034344100031744788938599445232462988929834753174170546658955705732698133395751579757390043372989811819002273806411191643246742681101345236934091611412502724670967566121153515049207178382752990329199416019894564483890730222685199377521147274281566605233106017161897398846787584123422524303066861445336037206807493617299497894656371225571403762790609302036983955208018741641145047945205039821632596524930000479159955713069006790476672393442834227663235898202617098778524303419118076226512269028305103769704096955608257194219042865245916961381377938150904981753599652694829891669158759082585030970508984516798228533057970701394340274922789194355635772189514224713637987164882475385152097525305500462730298844765411251881028258366991960440710937903224831178608254738170915751062003155855300084377240322679306192901434566293835063204636428609345415042545827714424213779651515250888609556083456754206223792001254474042077362162142347807226977131600484005516491132580693324035007427212556870204204008759275508154546254793428307453999292959421553701860462073567310940187333839713035896065040375904253510536029070326778657459625184465252939325337607103680529546774559710197426843630013603053667389518745565135374882749068079263312937552575759367325580291550411450740692677305753229874943593732084055944172986153836510173326243417931871671474048990407824311772468794202480930614356105491930209381293857001036199495592584699320472316572136493466449907962231020559216570000205381731493996777069522850233737637291097901735344605544130619524124553536546228514960569957434029975151160013361781390378886941736799189261737329270495218331586017625567483931032338200356149675803383712314771121674923676157411205846901373587663586189822263008126731091199873187178937285342537130393321736321140943687131122274604871440925601954459403521423704723246242900413421631262492279652008737378444610923063520776630347269792767456993154477475357629220923956697511308453188003963552251000659724346406171425945889664763759932400632803501589955286148384814144675089036980569751987841572082991495863183780975549270911990513100014206407771483805827343543050027605376175349929766516640996580557464255962922734954138159817970685713694869655662865142894448224742955614442686449088237085932992442341000520303325668708767542257984359499092996563633664875775564028864458324143411753871580360550753888395567181124078562053600313771612114880637757634026762530283585675577823447904211527548363669001108416218011481743958337068416141993205802696755351334930423705969845081636334856550950286645996951371099520634331875739929157713902396429977676156977279633226668681933740497815816914471656708025829275669865596418190539808238129494949868003911915901600489773892639615920749370933766223691618597085100170918754048972751328645926373053533942939899887046546401426287047997591910097033683981685159670322542316573846817033679057727127798342803233582761345447723746295281675259074845916410394964309372494848982230183965876145722355304179256903130579032569012144065383902766126032421306564801269924716625374318273237522132906831040458326891600107074912578077011551621842150736841704998526065932434204560228350613056909861661673447327187507844428293564634959818962440275866196234231878686091379147440552325447897889049547873181060852777321512144107763837108809332136402237067535487203361773025427417537046813455974685434889203704579428612854885075638258171232422008789711084375470116882747113991759563147604239450388588329363830841664250995339394708479008148606535727339411314477729820846771641834320536862454484203070916430182514798039641071560968445838806957797064281318824901804081357458172812167707501705378119769970174256140559964247068388373558413921784720960302654991553911560704102435809046727734798070706974764357416524017020321217741072082008017038355631266617789679590610059967349320878529034409569800037997769005262847850922233587391371735967404524468874151502431612010704283747384184060024426787832923106506527489174738540986076875779591676896496904737871932271392629972745037395524419010467140927528515362456093451553761151005315579341529481473239367535086190939978164014714363236197476894439935650931769497888172087872465178173465657702650108944934385965252883633499890101340590504983023663926713244227446048192259384209067269442500077120055146194344693812666365406475553923168073972273044821860499524722227146764249904504769364025212810069245459890857521271435874160956109153333885219234108575042792243486696965748082370548929172741509754694643903646643911544254859878498213472996174947108362903570171796434646498729529596495838167708449604139033194574988993468599790560042476847353488138952777457848497954786659188177910275876691510426001112125655666145880088483321718858258113076803453062043101386599654189324786284286743872161860824915770862838567816828087911672780930964362034492965335557805388754665856433981905481319699372209917514677138973466914114559133386128931805189745539737192179539024736359867008979399673955295944365248561186984965782336365113560484849130222591098355235236448557094676417877422783451082453334903257273168199231415422419703358755819362637016532561499579411995943114873733586887585170110698824451821049438375368972476917308723011998680812964881436225019501834665970343216032840742418124447988659393853399755399096123811798505561880444565926513795337311125696373734152258364206370652135376852055979134600888691689085376517805867716337925938009790274661702987591437865644668791545065634840605841136697825695897681870946493496438565235450203327130424626752345527456706179444568184422259792198875286799841897025269996049615722739174994712923208601868487677473666662502572389828116097476201514713087873097366148597449047055632018702513095015714545995719393659909761272893150959897477452111645647996548311181108289057577830055687904134648318887380787561081771585528454361453529198725393101298591835833748370555194729536312295101555782343038173770467686049968418418146291988153852659969463463250812822183042669491328462907384589307256262696090044243643669459184316847768209976360970705379743278129927569906637714254107521595210674198761281811182074739260400314978329106447820629781540233982295048512364222575739941149308769894291166042259322128877591692523774436861457651243997129381316323081734069775618669863379541811548095151572849577137009717916033188758738188097836540295790533244332292013410795003244863739529989606679901591349610462690273437677739860352829857091492219677021047268724918847418992343276147345696490969194896312131614886010927341866367751938656505709581596902009718507278997019060820716007738591086536933917198449680810163782290088717097662959518746143885420070136420110410645364277129824243155367368650183824122967335791165571606941815402607934678235202838702068112929516912650849062724708099381537654765517860796893199629206714157216267521971313553074359932995889436302528797086235665235000294273096215780063793500542227628878301866345939752122151589890545666438214453788842537676631689024242866242339668922612084226974960333168878409711069702404708090215203054585990970252819067079884490638135403307353367336017401014343498144964537740159810364824201292383097414626521099190976971159738838847807600651176964573973616025730993824620566936178535876577230781906770256251934223041984643967814176922977108393566735834779136854299751497628723913267563420636259113496939486831494364961906418059515945328203475201071171974461282548328494101446931289556810853045396733953710477648103154285465827853396541101265486312864007190281657793694091461859844459283430906907785894394278625604642806472646076239875188849498983758135578050151786975404772431490334516788325743493833887311933056854630197280428535265257146302254096279579692061231778353104834845805878362838439128773379891530864889557611535181336130624130287903850120257498001801403768406836653082614646093297685319672288866155325682489041637293511274327232734099441511602500649843565805144056518266830155227644814869111548650648734611809983943953568325846678666866976971886686517811156185201252506272509989020646594979199715879571923402688763511103143737975771415139130503343555831030296034823528853280296679352282540430294281056484318794902160022805788612336881912535648262229726731698318147965830515049199887067733890604141974193312561473346682252601549694300053147054636414096474069600176681354000205616838172112321113099225984410046621719736871760118169140894599910680247614945527534168766364544810669861479025647784091545395148058010629050893096977671499527674923820033947195921945587924735709287438621820791705752763035531857706054531794789813787058334452937850707939262650579220276603393450853908457647070881615468658993290622371001359618960990818491480795759967394131981628309817525682797328781565548188651872672649674975384161281188350019557147486765048871210279731348796453725642549578397437256231928387166385746223482972206618512320119296508662265932694055745778785741104400065799257287479180019933018321419899766331723438807424666041490117797811760270830239685114712712138741509115261034312958355717836382578832300315225861664417533294369614625662576160095321532932338380132483179531200159398451764102229993485013837201705087349777021380560169858603744334141495357809643528285549888633333464796148051080709658177249908648435481901202602426652175799242975901989452015592948844507530727961522155895923914847712874627693891122434209518917124542703576440735936257915756916689267221699458191751649809473803675479174647810366630524087978388174747421787667763346773954267888159646081849514715443967453860743700833720659042038672385055021670919139710036596747303942184818097515427565586437971481250327648430931065747674610360187394098792693613040136896236503508571802979114094922550244688654982931886983738115971637582333032037846192814793220347121953894073857266562644323532361474284887568068127165286591417042711950604104795902590024481421777340560188901489214341598902668767620026098905077614573025833393814867975945985697419250437798545631873996991932183949980515778546438648852334992044423807273792044110568703646475164660135174468773629288304409121052485785504958273684194269325757404389985431511610996445568148437351383801698349263746783896088677392669272406978781074934654374489074690897927650200189142947816157209784463700145933995280704857793119085358312795625938859791224301488350643609680808830005326590604602438487109748007609487141786007938831136051488144322614050359549401064841170951883405690691048587458884146108026779156333574165186177398274633398441368321925583842099238667600598723455762067029025640510301250328187943796140542771330925052913731908737508042472438478260325413825787637723638347059926235103189334181727764058581579946045143212648123300948269665899938930798241507830533094762557100022139572226286439556836504296102298724051948776746336251517255975450917965871014135434930449628768424780897777841052966651421520560294718563859981095774351218116433466050222807903898400657338553096393831961793395385218501012596532031748474163990280270311559032441894018944237243133338539011907611665152305898892822063399920814581776491632670063913652575419160906518586050705030436426578793381858276166945900864243856139146842739714062866001247620234187409664735966638182573931364550410266335824474098862161042644874342770517672193569488805706257054050601609820437332071837963943321751827282770988955235592788540875142116695198761488463015940635300357922231960415318602316937450749907566957095678291332613101505438049769662742482766161773251256209481366037938039742624829873156574401700711905688912664378616444261460515273349712188535476542587971850718943528545026030503740515473206886035234549336010186905579077752699664908411649353956169774912399791552160355427692726695414962382153446513943706731030848237411087205446721475644735013970820295728592888267855512190995555779078806203573349861257094101660081102830318742316353469949841570937825285959998853173442599084971395735065909877989610991091711158453328558524061267338982624329048402864018210108909882319360470396529349854491429285344512554719539894117690079274088287209425371889858125839890361557632168199758144222854049919879345419727936951335512955211082677051630967603586199957286540472721730409223825793995285883670363310375574028130197401265794898668391521129213845331767757120251630463610608135596606835063107340236513282308767491656062085947300971798973614449894991956717594994623262302872835294182997245646571494767560894737679040702894444785664514720637714202911976547697765991176165876757426464900211692636330712431460805417975171805066553216888647440755446156140495622785492607462432456162577866846930086414711912031054827850260597927673739197746156847157062753792748468698569920144342710425652292842408411671382142947846099336858607288102316089957666424699322787890779009868465474521861689072112742536613697630656526278109638388492114887237766060860848470622575978857110146249982547515954202813047503233440421129522519811515847907741007199959833387313037177571268799761741274535852116775794334043847134967756089032876463889013871359632510830697339395479992190082532208757402668077492135715828729192103946149536430254145661880478606308208432098892718838085261395152207049914344877125392399393846349517084768785458356924364779857049530908090088771939236709351660780955478115404242909084455226554839338649644516289815204214673527423407487406928723063983938054929859603757267716582271912068722407238843118263955302533761325545615293102911147837505928546666791443238087722988154805954380603198666203174206074883102328027324779658149948002161659285930633129499791262694479280347485265952975763260949794022543597584736570436352343465815850054095480955747055243712750583114878311368087297820084721112152145701639880730443490786562174289932674599632016250144107100375553747465083548424997674438205850656087020153717554840074519620901136029441870401054744519234664636439064549165419498195746118836694913221530666155632950246324140060715344471558735926416740981378291084153084214487953367413895021122006094438650879096343701261987418831702900961341631498398595458810630398416035123066747879484511785427298236975457099948421817518430826649059503229885093946273276170482301000808339691413108466671960554358128645437562531989822453098563109918118311435275467808811297785357589667702687825513087932606543230126023032966994909104571038900272926280004648200458249790639970705123168446262764257300674814256755006144676497768082024451309176873223608957537991814925662736591241871122905447117953856807110121125319727044420917260891316447425383255719496999625981704882050943441159260516531308939331098330297826152500668747923750734668201836351986180691247469285322771793012094378395188703926921897363897946235224922812283910164431692109976808279765026708691611545992663866679451194851635078202929792880575936744246736154305228951029476278189055856779289310565256260670929635648699122230185960307259235872192763985786115295128613157112681933344221922333841147193781742303167506923493573241423937224009596349227319462824903318628374155223499676064198555103274530559563903052833607306279900137061925598263151766770554878848761420531967060735150575650179103090532985303944660459924155600036229486517093829126728965251646966485688145421258899036082431036222605782374490974704882999768217692984814064405306562604857814363959174217502000451418186414226297748618082838570186746756822027404899994068483918800414462254399420950429677584983509500760985316325758002742243624439792725932905660988938899456707470617946086255334147414810823871837597011702359403985487507569830503362628051784521504558466075813818219512883020244643892739078896181130519959852030897364897843207916620767454594382795779808290353163362034358669282987840169306134998089648096394490073778721844312881595575825830644220315297546647545336544910366916136839291960233734015861349766376510940192245287613140114885085689576779526548709254309006075671740844389955615583511357536164966314847061483189358345662631325996304998898430069318593349774291286810208738384626786003195168840173376541898571564313666037356965276513626370995640564769132912816675879799333804675919413342930200864543365120981650077653588543541754188162430581346493256308413539733063622642099542757184328425625065295845926693185682404658781270582693371598826013414870926552558485349869078923940820395357158642614199987999790421148460303203028224950848642827879917500716107325704364026596318750407076035597153274844517684625197688724467228518259425414556191066119698171378535632479870111164298738954439736258539175935906798945454997707098584564346567617820740486679912149504519621876212712096946851564385926246334055286524367462618629062877046319391083869619221828441973732690791235363464216871967717529019517275204332334935591749418307432310560987868805009176799065523698616564198513113880938167835261489087930407572756792983749336044838861723823911103949665622615593231278920766115386754798423295385234576888949773942065268723661933913648671189679978728269706335045165130839215307800299333263721218596156051044453294523019729363412677550253370085487890330359733912934619690439628601883742310830901491564981039274923253234009353797037254500305135504335389464971399065725480828003313145588007072952170749422898337167231438153051504525125048446800074219235575880484509267312000762050810898137264093250831319919036950928824885720187266621437178253490466465062218993566861403649029060340169780356244393607401653675885521729418132450907119631245542290306724276358717677950461097346830760585952856988127494065162467325029749611408809698527802646367879162200078305382327850918764049374183055370245402447263912112272962595962929770855215346710661655358000181011223386855944890462220292981727131083104639523028291795667696766321079295541228966947547847995032624211614302488659821637700208125167386052776157317217965407748688301247689928599720987205957385229359548169805161152264076395460173367538902361088571227966495168238906628632321094950243803862510055323492006328996200875180485842548375089337994421440114973591233576106465924355891226053897410576596887425328076003996353385668001035898976202157969896742333773753509276810237413870039603404110399106238545756596742345880099940652976221196497447785554828095417642441059737862079942843662668410201384409440356121609529629216887275247330594292620826809560820226122863633979996924378645213154908106849142498583010433035980307312000168218913381843540607806521510238323503881677082301671646838067557162196831190552288771892028773843405766030686587166659259256443211301951574976641905605917746472411368519893409801092371395993153849251172752141188249215194163162859494087539084892053780385791198594259768552214465571212733785803068595660041518864434611933696889473913919100410647872306436736479811253183699438055553948181255213330179841868243637664361959061224458092286921884960613871878506564899685156851380192021945957726194618259670282149551135268720823364618822295269786684694745432876454949482274487497282144831184496969418311858429398369147215710472305164720222730528565962271215872872810394355276355083032282323532040235089328623639011070630512240460103792572306559916900868992839596543245225125930860486470745113105764192855442637540892787454347646857853999321227807327053074458469235184903905551901924015197183026611839596356186980684172425725174313461572419927575202105283266040751762496688562940455364811178976287803448939295854079926004253787766095797361196168289877390054106455996078209731207915437515335727198839820934251583122569054503720928389737685544212674020680070047613725877530652046554606467626628175811262011161054139437678684635071701348853088602402670723425904582188000801605067386014661278415559963630360925613551127274733674792984662520129231059306384748598265044919885097363307762354892223937265968381891509572525714473530406047082413327002440448875183983513518429649635565063862260456742722444520778346720481005079271975467766695498567804272448211653534340151230690434530856086156874641838550777405947892902730403861130623943612059812497167664667658320820790464661530356276095467631204686393180802721875301178855915203727133676654765201587440257007373678220377154065999013577264405080538002610169745182807408396800102245103638716414846354933692108364648492164419987160038802900518596420877301320297291110576364094605597730098471909592219640423455116564402556222422148226745617385519126416485980098888916590205597811809067495173452522733408744021853523021903612658855622180220380871672289206692679637919477414182073098894520045325157016164495134677882671123391659136387767765046378935271862033274441525825732579456356995159443654140580116260253066458730631765480236121485669325695740819077114277031331549743228708546193856116994753698905708314831341606650500286503788339649440573317814133052379519830974776548169035976062681249803671629709296961729740248346834795652323847704861940517390999431718243231255468906479849533263229081375339404600151883141783828691984216330684114678827947114339459758470550848756470387077897578307987622476520167091433063312859535552506777020669368096952475567303091785800132245477648376866719046398660323892412358671421675684483471446997906140073516727391020213044090565920384503351252881345002441095077527509151673747985073248332313853507479174759883957964651484911195712322568071702518528040818955902864316272429460246322867422628927476419093388882196769229999648936122591032267852063595981961300082407242982419407006477472582021244567591535555012245460347760967902146358723617717277953580932485305105827432980040190287408929503174151549846663215493604784917873490067759541543231594642532637831068821749476847642877890151700289702625860937532787539230535856170178150004382614385710101737775665371568148513753489764931971411114807136392506843818160583980808753900315448326407018248433351854704691919947294103433284390451332842476052519553269734045906407413485375975766964491578525101044452583272841949507064921218765715523757698995967593260839492195412461001007985578337182399833765576637634745321897859828704036136915996908266582229340228616090557012484450315993701234567167625224212540393815306747183187982910549583868635553814418987234811336206387588279507753671079392100596629511136018466197257388668947968854918083503722462737273771773147698248763700246552466707852911839839438079460490861080235103567102847883240793885398305444521606718228778893779172136939963946188333556827120706135922492249209276316504096208701872959662508819397763883570510033457602142053751488382083113366354103121378679526178339460928404712566807763938834405188350404934341973150639342358597441068783772552444528437990655263377954601032672666722571140105653883790373267528492219371259049763868728132519360676274532356961957562241528806472249279079524029946157193695079431928398572242310218579692838433750429628714111484353290280118730779477245276372282120083523723701773436961312568563982967699870445894315459911580604054924280306673278071921660011474265946611784075967936848081262585246638860366522289368604912784347387327333173655551511062433452991745094350945665882028078408519931869100994666969055554855762865938266294219859549950852618075054211109322058258796350632260141121261108473345856096304821553101254657539715191176811469854981821487628160096943497789432121608364632817853796910746974384022596069576653886895310256818614439999622197628323361506403127585655842480682340833850176512208000524224144327532880184348352991001575921441852797702004768330992475681625380770424325056001228708725993953663632916104400076688966273716364055565417577648865574017970218870844416920568724804798575350344267256843468886604100222501333428993392721813505613797441112880767305781480328924348406068028466910297139836843685080182978466958766454662857714709616162152921594933075169773596933303788566115738082168512174729893338610237888170390684545258539889278086553243686560483865602878103758767862512353622847609033519349321625547609237906253504417019005198652648847212126022899893600613547265704530507411618928385686032234206961969433079091752541197316448982352739382225985116941798369612424103096221276035760957644750283085245085148245191935506599633990948934432366816837773818926704273540411941796943929891528309625156654619791362183814440225735324488064275855341357139630744816950966164841135553257978854254254920699856035189743601159394928112697401200226807176913937706584500659311819398658140070105982302150483738134706747811723333511610223197477730657451916580907658018375222590992788352858480041233748927387304244165108268870053013314405693368005599919457315333649208299857935067527675519543009960617793561676920841621580734521695144054821427277973337380603353367291778937116710506357756424282086420636284303941733837315758939795893873733250305294227364632494066875836710290861222634248555638961976875516596448749991500654393323008325563120895247256617515364806651104384145625228266111875019636260421091018658164011314740293514173060923675835046237197879245056833025629700910960711655905844055750431997496502750824666095331276365028651605210353355065955366679897391616911289654365689372940221527474186766154092266861132944196679981206725358458876959054001887646635351643665153092427519275571969535191662800227435342172923679585937010750449347007834653638155233139588501444278884110520802301898787277528730908967816140324684099124264917037029743330217084241079864965846400662349882770321204334659213772883696040348372910271402724167823623209132957390903428310909236737727965328093091833333013224787218476794749890218254050214984371266571380758343976553118779192835980996100396392835983164844192933503706442984138915970165352185113999436778342633814889309932537759505632086076645298423805158224358546243122751063668895046648999150653113240414556235358942670353694875372234869834879597915567514442147715474393534984215476637404032412745043155505721536209969426507097521702337251935596538655905827197693412885840676553402151915794015211448146284412294411552373109865217014026078691520505088918285433098802253004737933429304342784874652963795607069204784065277849765573850065383419301937845111877486821392056882193133590140484042156386454028655097700249121391813442766801138899477883908516018639721234486083327947612545066254667622439829675782040352772022031154149367005906813537703051493470040806425973949407395045836838650986794154257722774077138702073694342667165362921166651097969074857972098502470344135927205788586588021725190881916051862440633415204070615241094334214378096981746574977210721943498315510394983495072917586768147384645176001980365331718841230051689558130072314850424749461447450879781006862191937333890419116861573178661277846654099526629923196921064567969917235752400685256258024990373208523593777373885375093421236645119787967188102003300169456946552806281540902176141842971893106368409772550384623694909638634613746069218889584989098716035595453075963734586015159284263552553084530786359010953434917455015136599493200084849016065937302258379799687962991160458446384431282053217242276050215106106795412155199293958166761028665708275707860239043215311434054688666996783977191400083822564804973893708625168041850756646793355663454676003427753540279740106073502957781184650116964479425035307250410662714983368372149476646458241851410887985852281466323583947077194891468554693710932225531284508653086873436837574918755426731562125864161023235747939206788374303717218739840644617898967932897241127910457980128329588034087946648494095290405078445338612691957505818863503549530620485471627813780260897159339804569347138445373181868970464856232301085401049294111042779351144100992829717399901853464165859469730539714706966690384988243108325331965399788812891310233098383415853935523991770832414403151301470225558253638105258292213115823317756538347692749046396726127530377474744457370185636077292255740923582765427402498255056223422627892463687453186144126180341112309116081844654713608455333589588475736010387706639885571789938549517959422545806046054595388581374322603671613527480764582127027780521486017760824069195617242682774238457220501318143316204196936678576964526822624661371899586865335376731772958385958358539770760354699526970833680002010290950540100101643873405363948723794156526338903749792534701948480679627757138130553886052863531406973713949382961622588388178523371461080452914602600988018771993201604478995721440122667265453150539024351040699403713478811825610426721309213465003498843991285897965553605670502494752363404092166563227265358848820975662090000367333075199289844133475473864452142515352250187929961797013865157046446328279184848096645072535659800521283224550357657651998817465335451852181475839378984733290585046503540749180610077681026470105959967465228670420276325619329783364060329573081731805980632840843165384691469210544540318427466575767788227749971255175079864865619137693124499848989540019914410610280288698427131253656049685989436131574099408055051535851378813460805090647081434603557673021298559708559595588603072165097622299838255368220720111167065667292261897735457883123133510231365925996607405165603300085072918847374016307377972325383126410058718705054997209893771795814275682473332498359295924050924573633618282875331290155873484569281613637403970388180277293808225219846776993251307973533047641295246469229688399637085182946286691240385882641977856937058167695158631664418727336681684414618792556330977093778076832122938760188318393449784344376186331103763172509990005436576965138122189209868176442324895480690589442546232430221825532294718089676134906548592069592683725767651121638865760809684468174199498703196006570680552774951486296033735312693925540283898217077596173042339057761340274971585189213516408310170696403260992762622679364646667366960273606765320025441135545953594752574151557720926694111423872275846641136514907885482138762315642197343184023902317918927475703819950028772383421442786883355644296014446710900302497434651088772573203840996265530061111320667395016991347267826364484048076055493629449758064340526151662913423034429939787223104357765241577897606744891334429441338854213690242882184112513617921875956293328365087037054483985720934223487936340171891157015639933014431443737123396176323052326581368474166259184317569064130055847757364528714984099575872184210068866679938049981972121008485848840124855309866926470167681627075223136920998887372462362681867080729100458783294448465754457638801579281893628387618386345191060637976632972341065749204818451009490968689664147133639245209469429639905414548129945576975021802146152775577440656290283525998650212449232686929160048241029075197416448832755614174594050143465466468305910919499733702290862265154400810624321749876667318424229177620265394140020042896588253279538617869096518845458202601120468525288831380091851846331073922129599144045874224724055789758965958287569155753968618876056604268150482413087281301068680287504779042971641573159254446623976394548697730159240659537405964149322554069532477007167935463372179672745191517938249289232343114132807778514327658432882498795021243216352661801073087839573529932835271138778617986599744010963182483490726312630837524352037425488212923744196541606832587904074345842023373714470712134296441993157312398636781278378077746523268794999765943226381792009135835850775796826367984305129314600390921953139469214816504910713399089021839438102464632468035022831194635962406200298053486838520354368529184020601907285027423345271176776562702419833471295052258768870617379818975458937491566348774964595643834697556589241986517442049542448223919000543303697220632119448850429791784608691322014956142520908838701890541212430206926575404108738281290760754387488233390328413647293510901244233129909309372878636249832158247712355553829389365116725323522881054950426422289314537379127254255548058844058099830592827177852036635384086240096768919394858197755382159125288286342300080498199611507092948320861408362757208641667708735870665851923565168914374617508038745743088991781798373940294011896451541857969081288737827767675036656172065134723292395211656133679344534220156948109605920879638296079871320668748486105112481950302870053505169859850516635606491222574835082152597319485740411862213345836588075442490594215396189251396662648835245532715271490371435930933680771214980747145020614717719611650510216678776682993260233993848189810782378362965778605714941735410365580433027017895364522938141442150040665413024607039980236854624647941046804522288454610940140196101864277245072653987031985638746660313386415718325246182134109720889223506653420370313693094814180969461057205034612899566063014137884738947573489270774458078539095251768256687356027245451041082206819651662858013444472475091200155398657619252406085456018724606322259606177278562677171629026522423630925451475322652039563714128355229606215582544148410379277081728906017159591471204491784631502773675641113209547174547752599645551114199212785351674189326957744635046533165520108228419589532320892365684056149435659575006759403728413130256298285232263107484350744591148088912154406217408514668530475060561595563570757198433563891663214778160252347748183563906132621769768389733603623946971006561150528700196430346535944576101701884220967127761088462744235272881833030797479760568615667461195317246620908708256498538357217815789208713806113772882180686111123717356479207506823267107180950900595244245640840749785941685712735090619632895230595324474083112383080191649211256538742357150896636736705429044852921580024382769099196499392210266751404587185804209826049299829018334552298291285128556635443134032659312224547339903796905592682294507450139451298154560828313401588568602746897792567247058529802586640236673934797002504059381239894165535525735716518703745026165769668267395119665571749116342703244379034278599182578454372292325531926966909055295437698111848189572682677138471570472706399204886073253241868908006838008147219457613239019361757221205503179206820831972554532235454145226337093158522785858039693434963628731798955712924992310904639654831109149363276107376911359893348000955901762085116994879972348618551399617419635513783277680743767442303230184047101793566413508397170070231215369497929347373165634104611796206977255562416974288899853809231626309447424496147089554253178085486262258915384669383768326426126312715445622546436327248164970869565692296453072908866397922885371375345215738147730472132106532854359699301521378974035770897585889495240622166612645535663389593210820296133006068264699075377530810694797641255592435467116082569623562287709063040245016346602010745779025377937956029524217857766739781049515130461247702997467382587723040920090476125502611354777475968094557645891641844442805466352216224019435272167436872820929547675778140367768233620614735600643419514880742896950459883484096336661763685648644559939381864336425364313947920037668589599929932627181228417221146140739562421354242142366208783521656839057465201101674611943221245672262971482296357910750551164285970150090290181400106402913975044665004075852306885519314364621631941808977551161389901954395652973742452305509949615721913658212543353919327797030241217424799815406054227946597775941202054978896508023924618112149429718979092241850529881229713603956168131433253804615177032344261417995289346659746180294252549207307784490774297645526626960163367520216374344742650080481537055701966534697461679519429318534472320890608644920024804058599345427998930786227504614988595255520617875648085255199394405016136088992989169441590812404039261362332239972357728230666696896825313670429264470748878110252962811174008436167236884110486252426214379636366867741770369314309647933545570823139172808516421839259168110370342690341370384323040620330977010844165944297746881660200592452565567881274020248351705384594509812840716813307609640658010882605529799066086867975231122268464642197324236378211573006699738248337953106548595732609508469200018307039513905246194428307030017703080663208368002130872180501840475728064762178426580367263432079590564424574470156344955225777575022287497056854016036136076304387092179570023793884817087823677063695220243007617528605570126801225289477619648042826375199888403127403170607586132279700934587377753361253213483902438568376001358504884794097778076706423258600038334790144048434799155809332614025736377407617427324708203676149955789119648814756512618090592764565604197622260027621847793547747403834388395890512751262184299763225142394547457437364443938692816088487449846323730786116979938054240005018121899256237127401884598850907863503152697383954606865490949339930390291963143106741376982846987958198666854756805092134420701729809773868329090106513945144766710184191236117606303190530241289067202463817397128639405987720846808994223605498669629399922725266074355171512326669916458394249004708615436873896496930271721994059496129827774042260671592547655723870501791990801720188417466034085683527518025673576069596946588186728242849848507558474532555901092248570181928124150379001235192407063214641764483568527562751646779226811667317356970514275290464257590449056668146459816497355732121308154249162480550908645350672551303756300959251715715917134693273931286259934412681843662937244501426100895238051421504437013729582881483286455431975106387150141508543988929589158808834070818919547508585261210149846314001807981488755798674014898654038916723947671087321129374205975150507591119722484406346389774699048831531429524966685708774690183423427516928717941562038364495727149870809479896000431092826978898500934183617839729874018994196490487782281458419438173018482840239756679748502171623362537546593711032125789134435183289235014798326801246215850233820208394019748936842112040113337195272265897501160622474351279327972347648074439262274778718641186992602879084295887111606949368771114544311349175576109752421107278680766143389608983119617477277253805135241866589928263799344930929320860221298412196147476650694997649107761329402652793817109248661210078193693058596030245360903380892246145106807429335998592787816798850630363406860604738042213996144110814665284071084086204532856569957218155445891109576832074524274588514343651271589122365054388463475882213850178096084243371906294784953168832057007733368004997262696277238090699059312377805233189954526209798610514174408783407627969970604212901635908230414179546616088924651669680423468119131121856960742849911847708527750122544727515863800664687651720105692122598145213002116152544709807460496721676749965144846501762326926016128561419467859388675758475399010215527812021996781889591895104872411510699761336531772894993815922778384689480884368191271379292158215280972030048723992517989561247391504198983035236727668888340526563532630152770435122410269598601275642037792432313118646457819367130914614183929816005535640618157873793828444821875936606459122178239849505311383100679162182495593227466464885514359848745986902071774946825711045022292571340383200337504232252494877177874330483992710408924074512448227764689205862298371246123010123914848231335478899179026817013071740079254741782635213597308010704789181169838366246777704086156744067289489914712719860240553305583204925592304766245079409140442266898258826793133064152453622179843101970721756664917838234507600636934541493177162071870126528935043671452748466784740415024754697197109020600233051862102262305003544227157258216883294766877735800676484468946173738494365635227986515813456521745898551475675073090023536370735270206454840555949439175372180955017243213106944359046367940037684741392736899241505254248403728706233560943482757249259305534057960203332743873911114527129189749299643171216766893519134230912587743004167669609125472294455876822912118668686816976175274130658204162984338793137130018363843232781753558176253645137203288122504838056849129307928935922579549883278507887643154310886162224503743036802972186771224545087086319910151443151096518061649625061866995151186569834127933243558735649622642007358694515347599351217097226602231009203935633590462048656866361951628967366517939187793070476930179625003064571069358692023261578483545375355731234678612740869892075266319736829134304073645196759470344659981094580399179495609081375848742348315744321293538616335801926008378040223381767304027782227135002733208546245469203363301054915474676322662982235229251575880117837457963987954513927175530907568785052299354853369774893828123108904241647458299898526124874839874338258216743157038274639756750891976592966069110294916680783670045191850127985414749326713717182656828962828245993249818313710031684782263344269967225200026003217769636717450100935468647683423775092547325667433508559933929265069717258862631444246341205224349269471770286781192784497437727460803882438165015246395415920487191987489350404444202916092477460879987712097534447569551247785482568837157502537279958755441761627594906698175462072240080956703803903506265630963737195952125452267349949872825817954563108213647177357771243824046697873977996567334581525049168820813357947854041852113641276609891377980213303993029687606659980073554745017436815857172422754452236568478362020574040304679926904705052170543466531727662344181377332473089128074637032183145736518836903582766640276978865280307939909090531840275545131043399670410334053470631172551125327302526211112965663173997314553989817958388424465264993358380047579282411947105029114061376938386085431738588463905070274639918789389394729373245002496723408244075596073957970289053054567065793516050820184421828475420705690144413911471834005453320481135328672701709004230794784053761064906836615695047923057807451365514490381694012771842925080264488624587173600080349394201974808918764455062271366505297123975633325832310917387213818123797097233670561667020487108275741983648578708214015944047988568532937938355611696273736450708655418143743177809460499691315817391064694487093118147911977272167670718756761317557207935353790859719909346633928397083378237769549812174348264891605541851390919231120344632103781551484204457444801715196688269856113735389122998734628066766765325237333486527231315372664157256973826977215357565905244885316607198316576958512654491631325523705182953819897653801445064558122938819521543311304486994158124638097830266904733437008459923941273817786668783381488031476761456510583019711186424715391670232318781300368530055212273999822113109403565062397545175994818627189699080520046587791732011070781008084388086219055626502830137050547138174496497696642200484891836326500909963325420605681248929837527318333721066610788173995030397060083801083355355316102123320949484436247805490160255071363567045565282402225999791134696072158761811426022072935086382991372014840056545222637362903056513204457385816101966156078901636166276969911304449230034357380859239075198282390412366926888334353240505255191303694005404791164934507042140304052903485456571666496726776381092933950512931895715252334239292716458328616452712232386176170778718846290331142814722188056319345732751234074845124743110468616737628477065416920090932025191683267951075688637594092117736433769246504464613682232992743453922514979296003780486388765234767620183215717552491721914186385683808307966845759946142933115271999722450252136851167620835748376234402589398906069309189672810502796098248452357816271212838354183103449361308669449306102619966164331747619450620178483505745992287073290804221210445917332370749046560151969560026324767968688011325928180524244281744495245183941958795664748583262996755997424680109034048510827296241372817323202845795516844103035436487342026520881514137702043892281023606482588160116744090594645799131224499701008331191031572842828923833142499728852444069778415933340407740848196860040164233345755455326610006860892316146228037988896208525883077515294739382321655209701310581213736294658724001570563137471097778144840283617328479070466020643105359772336261378582639274206353504595868616454154551664810990700004385246541600265242955635682277816388007524126229230811266869009679582181054858587943166212237492083815977556380389382973182963318188879928990676845687695462533535918047587563033942398678585648231176547449096076609641000257958218538678172423952087754080636228977444886269461421897168328900421821175231187518697212385277867045459382598043583183177135373489635436039450230089193742224951325412666771008573274431855675030051707856972230448683539267857696331904192998691596164853114014259549463502854731795152990218298037050785816666722551457575824089673379831135270971516713641900312454959785374911789602316539024524094049216750826031597377909800261975078519144032734746558904346100744169998665441630884797324408676131638832283203320610705932403783294982358893270206149381514937910917795121702289538039723359341518228281271807733532328060169656888649648307743512282657882376808436961887485585098183519957038039406943377255088099855053846429788322786327120707601501104674542602011295061959352870749567287527610129093824066004738349422131302557079569207884008048959725967444583382642532612707357353369820667757670567936097597782289586745133051785710967279636588917890251067300958910633833707729175312192988257431886142282751064145971975198687221118191894457972831250399333403696048825710690046887911695620602468178360209190015511538422611569876498536940583834780080734345198748534100050665645246295287520396441873342107507830926900058931182502594455455821216254662732680147880818815393378551891100862614598685396921384842065687703857761967620629376260316678289655279451399849496211450095435628949853885094783609482381487215005333046732962711403827192011294962439338272452281174287409353100112600381963890118205349477251307576143386494017662075539911529126404215973163634352258102625473211431238308935826505157357087043881214152791232204916633616963393402069495354017070089091272897321133506954231012464298299977454812431698152711384201263166828542204338116645795200939197971402903776019783744296677898152449933060715831656379205884825157543696741517165549064396998288885809636261876403367064234939794434462847962959646451783657348601991058605936683929577668679239866201390220683908496319151803787030398649360007850277998762669233157248939686976152154425848983383210203264367367187554564058961730264772647720382823100484528954491068318404303816524855990318266951355081746654720669676651739592176215341890034497781624570429455197732762477300577403872736995443973986223839457025210757708821360502262385853361775171111872762105615296226404706874697125965216596968663291710040386198837855528447409405767484515765040557976069973340575673742192524214199148323567807487399052062190015840545475703511802509663414216811292149157520653852150762442466559453996531755036222974588746573491946662222798969057156346356788335988207816860666401397279105803346173589625417384614638336684026960019672620809625718818477127915049748357942431552195937308635279234024026679354789072695829096699788360549764973664722405362772193231722750901304409020458121012743763949662308245278094452174639968750900417569838248467110124703240051426726446315677071989997550162477765115734914303236665443973011013496093497717969278955071105206592242505627602100365346824041894417893421013459940768713702152729730573263105902372445198475954835863784950199449637597760058471216671588836147861267549459299747909193780255300620514475892571861407991246216088684701520313932945313004008023653787066522808577361189332106759876254446056333930249830238659206747134627519802568509741826532965789729363491127571374820949898029941594488041412848869220546429109894603112105881401284634870395315498236601216064582245709375623210513705497780093958478169668668646637920892181663416328776373185388749714453409611288044716651007419351469557405197963586499136011205522165667683552514205334755664229985054643853300096467095437184564434614598796884652804373586871310003180810848329580325621125150789148049930188100393681728757728911011615993225875855651571397630481573499694546791239636619295376296819189999488455089127552294677335757072367697672943686528032825707410235452946531430069666011794811636914984967700269704348562634558375308254443813619347676375573669657211360288822001152186272644865435863900844394486090330302638835290738051302157811513310570235152808611580315639894529393406496122546528636180178071596496478607372441324473844485122243653475778207731454335235423832893674384766421622186639469240887009054259448403977388023551364866765328460651884643990355654873693232465864788249348037814162367609218483667921637068151719710635416346887700517102369584695030938996074417081070287221007677485686799925396423696741264939235485810987196393707325170511510234746000462181675409519907326926016480301428516402147422611884971032801132819012273850119331022040025885568192165143610475508950238346772819779806306565676781501818328679247442675435607300021602793100519308031215977408749213419720548044834770905436650599175386072289182510961778367044137550521359462612189078760757522846003303883214733660815063777844098331744855100652960154441080098438392230478141166366376214365387512395417657290885825151218161270447856436738131544174580162075246160737185026439633799465985137900669375104662895906952583421133023150205830437206426174575214158520061096496622355483896041690005244512056350465965912335945926118515924874650126774484188853337370960441074414080205550384436063788863453918536429674247874563956971460292879441846696830848149645370832112157151773757177390010949041713347207159461947858896660381708832494443413848504380700690735005657298096876641172756355397631078703354392094334805537839613095077634280711672401582719512395856761844912215383440833635603427827107498634030351117712537057236868898597987464546650896466378965486601350672254610051977666345425072323138733201978591834885561996491385343622161010134164557608220561802713494479269909312382408595516483272139743966991537131368848189249944110446576776180731863664022686519525110297524907810198744584718230779913381234943691950934017950590128904587317124026635954988599426877879766962715052974655495647076467249729261006017681330356264774591824496604248010698013614145875654049590966291225448020229362260052327568343875634179170328675199390234833229526582141755988976600507641677470218408567831990664130949454021925528327602826747267305406524189334551799048660430301086464897405340905094845775749579658996759522004987494004642410445488794099436877235166066654699060385331790202289471044862117967298751210973685708691319320985033427114558902324166456514266570882591813910881487701974453280124715473093723809092662314411639316039283169585216664790526225604463022125507764224013718329653288227219171588238665359340082358588655617498544027450310501314902865124607140312868291336222169552733844213936386914605425541658714108775026792015621278559456160263027475082787225097002050114784439958676949842351170813680166161753114933847784746787218029701373246913926389401601227199210207308868667247121665981076104564747945175669150595204371489298876430881504556224063338353561784813364942553910149678060777416733024406026776904828892931398819351474440034939760262470452546022760950287588903059038945708998113338852327958460360378149629541085543405016594892491737463128831453220792219637013029847415174513619727569756997950044586003590454910922952945593378168648121389341021092670127156336664014394297272582360824400301533707395875960154428194334232067565053321917620563684044946941626807947138032368963615340649446642507216131749797980966720145929905672707838203600534382297283269708514205267497756440522159976781813909285124727647379962089304469937564829569148928078611902053691015906622375904503110167338930724886745572374794081115692063551664483996962659021838093563606142938541223319055984572387888328597327934258173737441667565192329443821718165503057927279945475779190462340134881589441016211768486873204387277186827114094049094310531874515457332849739218300454014704451787942323551135230533205601502472067787131341624654175223560357605804198954806272695988582283122623872315228487837280303617277015238810292792366817332509411631497858522657919491835560113222255279090731145507154212667706384469243005030611757264177919868734800078172678996144761743456361287754495256354095204571676324219786576795829258156810336328973852116940326929282151578572723617675254985788662376371681940148257955049069717699092708080646041847243519305412194997135708524024948232309698262997402611302838555633874934552304241403597106222292602426903870165020800294108500435372051885861368596745700903751577648474087561763122555908923015507056376569762592569302366008163140993103178185117995015875347707553421003967293212474815892663578383810895443683675818687018728032549545485847377369339771917987215137633847682983249458366787715477384619129432277099458099536709266416896402746711975601051678350900627301065831497698045460767935414469513019572401102450939011824506213286144165427622451729890338674827805133951164286593263982958103308245220769795687107165820279982518507848195245737947312607940279098604064371010273872478210377831332772027416165434987002148846807269031917049719048396257264842812981386218458278653797105697689138529442415623168737862340077888671497319110001103137719064027101366087811633473875404998764057782599451194100104669028189677201419958891967344132458031650970440077227067889509888799430771694730022248716089524935042378608372614208406751639764881494052334962362048161834329541974787566006324555103502650038687997328901707893614273456711035115256682395553450415474280187493985562730379607941122634837573668064748238162935158705600343675618225223348265664348424139477331338969949590292466688287923962913707928702782473213358381348799134440987097579138143552051553894062254239449567685007507108093717686106137401754189787900758819060737367250044037697083816097559438426118807929553196599480967918624856803314685423788045150227800664441904079065587162935139008220495444663148652758431445317445079166347212248235249900907563259986936603615000003321940204342442636059237955702786211454682515480370682019100516410160949572412986478779582397552502089847118202290632109520483474673477937554872047955650424663472224880487176360507342545055608294108625405196768318797696954035429369625954442939681445911179612728707172094624728572655755176486135665063791429589442451249991365539305946474076710448256025813949615539377044052386760065281019507327631153859445461482357730149470377215800641147165433886186902690088004275582726096828038981460972062981873057017805717027033769939806984018275737311171857456626372917627615091780674415075544610665834088383031797432539480822821504899812964454277863172421522464414892505095187775766087799731003294299389176472423237180771134573769316840977375933683124293461636217100892967774594276813599441857367109846195308570190314035059916971338891937460539375404192714412618185037009499548940313042810466009109815807363124729400124033790747464213338715403742029446233869569590506094311528722417075700849085300687004299983690612643755224482345754790624135355565856090224212629354057029235859850592250014243621177712491380346405959579733125913547856144384759825897650946411419947437212017803372542855195276564148811891878946693128501270614873093539424677963025620722396789629988461423376475069553752109506191603817022341553337983726095798874958196594521505031698463597547462625079958713696503136943245664462960128858879957860176102817442871475585232488356216545725877094926797311877102931428648775437275064027734752955009115571491388676399820255793482134855031177072105763505868090115407979808754719949259619483652262452477532968126209016678862480413221077611318427299659630251994911733382590946516110360506614722437629846725382987257077760745231440263201725704148526342036218666440600348447701923957755328540180663951983211079857590000818160589509805641878693735485969117890906219919644873688178656315338822066888276326642214763891870549893202692985692852709463318416533185018705655867207785944821866764656837673543235848127874709853569418723877836804432254771793098744421824353193400952986558695240833598611760659086464594718025180887296061549364248489077501045498912285674107097926929678389540340752781718125252980715657725165175567277797041095275995542179179761245189558454508014162806553777047626351707424401538159035372165522567446862368000471114902808905785331588651977907803446400954987308664832855250893957575898890485594233582123322333727208701614410983608724011644489505860559778450959124455648269974692294155747432728067034984182069684329587072192212695213838647657541292523447986932668032684853142061175810477318214563683447534318165233386836090811677559589654028292977746770271218350010897791085676636196355615548025221463480820827181467194946394005230011716170351211038592552601726691559602582284219588812864506887110743245009159235189486753593551885773369121269852221744837075775609067354736249669659406749968811133328005963045394243315779988585571048551755749479108021708536121162561183092257499549085053836869736497141106336009031903883778956232437045708182192231770993456866363594367284747335802489753238684418366794987422283882066787628198629260021051775942523583622023473956188036045567837213234838855457000924835275593912071627440715438564321793298075193720484092399939937833625515274696253264301964914709805805894176454770749140218432904623065296599861004722718439512740162552979430890701894173409607360095442626658937597771042923489152725965780089179027066599490836874683419872094769219434297410612470014546434372666205995657059844823021311646786611261257950249549499174728138082155342793766992146865343309568159854485840834807033372840894473589510027004428492036301700440473012258357818344723690833943333264178745564641575961120431661794494706555925984596327568300674811890487148487051086478418980520216318263536828739787208449343684206936122302664317331319575145101880090485480062529384931450600152872159910347665800350789380111766961232630152255546474149413908142533090315196658328537210881302934908760470702150608676479386794548884005249165209693824503428317834391434125967581827628371832238354769672249428205172864219191402312112288170590911014363162069885593221906936916035459117160057084103636515440305310634695113450121574076168860132796876163525031973557268426502196858885799164124934075940545002622311452769533705316674641181936878195732694669824200358651526202598139976941647387483813951317108511978750736327412680911913772492586102538090513601287204966315666582060171533026977118475510477809744179638273952811750784729478985286299374756931301818351240654718281038089500875505210061791226991569992561894348001227806469943257579521336078917082277799855777456552894450909811906497405356544827316907267737989375117403473326223337873694436907059527048162076200434301358833767479346478878993455005125118971179215399361899760140913508238213807628474183225732051791854930006857404953984738320653261066346483386854905905345590392856826416427830739702386825744027408314906889140946343905245197813549765356453172125015900332275561896009515522703007787179681526878955845182692326647343192542479205265235116653095991939135768168553944171126562921547882529391635423251840978455817060005524951481499705315109349735931391556939904915320689217802898366042557787714239215291095695797046869580020519155215048935062347954258375843564287605503559331609453938859899153524845516829431421283173687425519399961694776904770822441102162722815380295599808266516107927019872049967960662256995052795597016868212118598142939102776718709658971488766987386651058864057099932826628048752146672045130597735471025440650892834967553578790423394494579313399246366094695632219797193590072363426728653070778869308941571209029227930568703286263260729295839335455851636633069867277956435620659540292640653744228689901710204990860213420992651790267221701730846210006026887669107833321959961322275338105745380445784690039119535452072567221582087516040185358898086442209279291008078798719645352288208396036895799286914897431110991143171961718692311342566282450595017072698323001933446625537093586014076481091216470953115395812548757842216330750012231242263411470480393699167286449353088997499512272241910771970939964708524115594392717455347035981447420263741792367848211011543541819835043805415630452963718592811422366441212716949817176693459569774262819089660283501800861634242448045968129450062113723472505333072765884751244800004659362818588186943291020844747242129227483793799236743632252343107155941345454211837832220484210323417288643502590133044322376692182936236090073176227276717034166148208752836117217385830968923477817100490706466028175884450451150682066412478147186550922937930398725246738416096078163388724296024916781148908716603893464532414699725331703125558828557887729628588901002824920611173086168187964116189893055354778091178593086189702462402511530207444258486766128020259990197277009506907652473167577784286859709717861395198462599216678144633301880289590591290449416328618268490106824835280580396795472650156864242723707669369989136857528360498772618402831133000682833424994942585222018630325144279580966319837382395878371376255671633279430101739361184012815191959035373745458450949980720893022568336193703130199389365615731962351280993288435008119884307869110230699025063929224757902043053420906179302579076536889426822309297212708887557078678034258252138427767450807366189128658844111249433878544123883133422046296542683479773907441247354034380653310224592455787226854367037011276106616694490990401215382538519219641692015470010205403137913601237044737314239053703812726894976417138812283669011129605492254728642565929703751984085346233589965405847432533417736866391575022404597525119828106853682993225069325602775628213131916858317745504455988839637679192319040820264830379934584456480493216546502284821153479259179145979928858066471949046293956192590171686433534252578354788741019442550831245204363736748869259834315829874430911440966484592218040217396454407790707933475609776706231382029190450639992790392365203646674782104214403069699858390329365107996970956598990825074187427538257040924339901708689481336173494622558747015252676505695232186691501026164684826863595043597778062914130644485798351041287917564993634038953924145350591868756907906010417338644043749197593973133868670336741566934172107606207517717471608640861260664052406288717862099112348157724844306078690352087985651227147170523791723946680204113884743838531221454825481175178963522015871209801235186235617593289117918226603582600371501688409562361463819140910790397502123074719173580623080906010288070177667392216159734537314688152908336596500495253830886311780576814820051781077732283608095580268426097145822921893044909257733816362451354678068557256436062313954016642229710536048067682722784974939999004901641318926650139931595073679144586687409402162967441785523194934459352003566527408033496088139714959720106668412247368861573109366675194300422443593045864696550231501425731749624647228567798633601343907185281721943046666997066582795987862106820960581564679951543359927883425982766996039195765911978723676250122235105010936528865829939245489394375683224332381091095370259767464411741804014165682917971929236295270352060452790744171120587461960788387952732885834625451284196212503670288210477858099781374930624936479479943321892422573121756057190287073127771280442252157708032155117939129023794310477268611836710671062147414449360872735813065926413650443894259457332446346583957285599066705800392367092670616680111891218473275500715973171551071182059200913753508639374221138909746369761064068102551677455667245943787237392614853132014273069594256981241518834780561312496365402997476880985070182400608162546270354316669221112900805706566318630867879547636807778415761480072352187276259767616307856246843983210311449633209353230600894361138253217666584963665053685599601173252574565979428316411408058246946447719434449953482678082190066823967515825212692179413180311701483794000184286490770894115502176553740818346987554717154321686658821313919067566881897023612220645653076484455619722469680757862916346602038212788890159680956831970537797292051092132569556905650335795076556144123766487903459950260758275629857611375607994509843073484167003637807004331699331988048490990213104183808317918189351985546978208392906294044001463162759185319153855853832102221493618005817288868775773145129770539750952603693938882867204486696738140419051988066833188415693344129979821320531437834175569382705083092756970425201588957876966865785867858046442241332915794473190667087012580873753263892461387782819635307082104918214250799635767823053564929888197614627058417297501390215709953660300200834029579491757616517102114431709082602884717995525853571856627606667009910709296236544589932816437959803845203848856184037510851680219794213228708360957222295462552768937110852235245276750055801548030191808589221206508891570064468170733711366935174075059403530471190419514478753586220896241535891926530315654735491400054502707846608051258965485846464494608338300963949165197796867786781468525794923417411591059450387999821423414816175601124984360071181597536109794675248093136188707917222663562760135702848828681405930981818058320756475306290917880489567550243464461554525619451142418849183824864649884193056081722250945573490957334492593340858416119660638049807644345473981277933056399881762705609001187167196872946008340899227852804323116153933269671010043935133538583517287797104323216658849827759439614538211983451039766921221209014924187976160784278447272931921915836210165721560171827690497718095838097298130081269600682575500451941867214565352026387301804095181381599400959164684469113884015022993867510886456303416456663806597634832989268136902109762756776412813333544104031274376372002754075123756819218645653790131188822460186216059987234673376654910127049391889164019554003116457952409997854016306480645448463892832712598133839499248213802264921784796502680498730811692838306510150689863183420428326234857510825683143464059129936744409451667521990975181969455923844775141223286905433096926078090952210758281775419351729153373262590838950342021884011437484417996975421873356588589172014481517338517675569136003508320459063779718075003202677024926009218636497390413335691279392229937059652884628355487704749217859152495507816049946455090929085711124440305215606239063000962533627386166685234064740551995981715263084260917488235852562130854364311279331315693832117495119383524364806092217481749198118843911309945343760550183634390779176891099572487928458183548890736180714396883088284007547123873131100179201696050577807465508523356072970871879913224628697550774920093724579153611868459926033383817067331560943215453931811270662675785317690881841094369423285311990953708676305550361044357176849174066838337850908351386233955710098272124767499442551838280780042238609215178093020897446912544622257174929386504855413461802639583882266459349244677272148859246555807545463596636641615377374139831758834100083988990035117010075004007604918335124641132107603887919839126301135200634181207815507076741720898304518504808864192618416656541523465209245770859161455597848731419258996343500953436883289723110620007328659650519217050631412890841485085803508278278684636951287149563114089416848200288215523268523280981268356828102173396365596120356082565686422680278440044292262684223211093166184221327452807061338682285723904492142284630395020067164561809425981861280465432215930831203279859222820669090247360874700004280139085522748077784221898397571262206245485675969634223688088752291521994863233824524904746505750914813491472397310454658403284787542939469788470148939428478137842773422988589751371506797608942884113146996253900297541358642678547008410716764107399009998748728309136744359951076188194963887205992472211359138248539403498883776523199684322518781801559010604595216389046773321558987348055240480547622335947215131723684699908104713739467549612751709261640424191706357289423374310443330433035075404012710650103978660676678352928823093514532289041833181965984325463333844804386695475695844427211867786358322127196260662894649801747352303995749147834929825820404215906289714177478979341508044966665473962573710671213143714547592813829048303133466245411872455541166287455236707867223036577253787813184542675899050098864261439749211653225469040723254423898632719497628229677136877785162478995461661229910530353458874174577067366811040814483905810357362082332442486640387647584730842084361130138518874952152017123003214960075376499499781447044888207631245899644235044531973137278902369034359969448910561599680807144574216887487178444066203281513996337071218761472605183751199075892320998030665512946563506555120766532798781782247848650345240555432108904793597189940024868795382502821999421227772670520274625366314532179336535565184956603434721259427322710125587339247975192393976121620410864984273400797993690024135646543491620140835389347303522915459668944767250179016482444936443307639315623268613127758798586378065633865002022580061318926079101486865306239286677978990037837456817928086555657703296777351718782434961972025503041209282376410910584681288492852229878412494733134618889277732040714835942306763953253980809347880878527728073006338077773881970792295969872982039050941352514163551709512694555527661760845063187147051066911794658330549233984741652256520596140264214092556313878097734779240129421765175522813847929877513205318432470655299765176386674106705156386898226806346966632223154028771304797470736740164869656287971500616064838506133528277773832282595714176412162135349958448852241070820696207302809663878249098210036889308138667564282908335694766943255415407155487621556888997128567811986305428654909289705583222141098482465372586649294912651207299287744558218688947376627504266242086774798947359912031795047475328279978417717176238330428534038733727092874955133553197985929750079982224869546958347716060249676766005341069645100636240702535207535285913794564556102200781875372139619334931445623334973246720218506790307032999820756121327295178226146829872459523308478533066146632313438467884498255447108509006547195678089178543392399734296432172376368568202586783382225279530254029670735308390685300166366400112447350263445074754829181677339677173167141209577461486432426110017362055859538073018849460453862693783101046406015420551145221626533793341808849839897906596798051829457217663136472985927511647998798852309549878253333431747644983412728086343833932682963381613340256127868305111297631120978949641429819025437502167478001533011428975175935546820933024731102407022840398280705199607975724848342475006251377911024475523100268085587721286071787344456822206810484635109305639828553115377194693234428016675430567303452269588505932740772690138530242387886980190426096644516910914866030178257084317140315951490976583664094734091501780302299552761759343240723825458579621327001958668365159096050494576083168090197688191055084898202580756583756384352521250337535049236194688291332924520408011277052410479182876518046295461225483905480137401814593175513505966896945244209671045857126287957391337277441184597875136467216720833607059656872739188561117136323826706757696543100953316798883816884464625470253206589509557792214634142066709649833746944414403613871554893222706967996152799945773471462736503506800577987762223554624895216302481713190622315462790667754668405539237741104765858227628912152470153308675390639252648748882757649291032623900553081179660050822418559869115764346087421611867751937442641837068257146237828426543546802654500597897212257985914453821335366320628752669562076919753812570435328391169602808787261645662074391831689925651455474645369912151918294973235012871275260755994206694190708457133399474303468480304900520914038773540572279489419477988000620476674001043509280304139019916103538918731752751085233945413009629644324561337414768240749533764211242164860905856250382084487149666731824569275723501622095975668299632953720641068873066712285755281202709639790536629850891556291151303330075105642636401209238963508635587556120663481221804715752743231759935966964776696244197087880843646213060657648097925665677142279384865802729418356609418702280218668515076294161074789465410495478683805267877335838855766789446100420715214635462513293344983242045958041901174113243880474386047102658353887705287337726810131570243933443541767728580041787859171048573229840758778383680274995986555718306433149502144693858082966539403357852173372586663444571282538166043165060361223774126128395723775933469428853180146152936480948598146273882197201625720106309002036370715692448762158506630037155973571873653689696192628496515339301968388529012564957454443562038127904139133686296745477822168272052415061594529131365399890225131968902160146192843368187306631858733738108966472663117138229549215108177573356421434168803260308651866291613940034065494618720687722582324451637181352127738521388471250546483076592517568254489545527875622067499596796343989088055965749395729695934003593883455706117049312586157494702853233665320920660472767616377738265937543494533129087270273881843952362028098361089422612382680629148831791207556731347717077768500582344266799895417281501614009801156558794419160923333550573832270022047267209469461736927467771860382623927913038883386306387758483752275912257128593574219969995761074768480981045485113194019884368942931645843737693529624794487628247114799681568639435688851471185088420464249716659500633161746458647250052662158230478823383088343416152419538430907063817354432209444861229023599190732888476000963872910947573737074496055142772903271485554642608308937021357923777435918463560498853563265489717835858461636715505323628031835574213640692874247623441186679765020114528170619223308567255901976881355987782996106715331770666732426351743365638143728836378962066269538660415896606166350472669461288220310020589371005555121919237520868023599312012410114381832429094421303335711596147075044120683699433830938305538519505953183660639000581672662828303198189187548074968238621446938418235225440127374124909774624337361210831159602789225986894225184934609200081337365501794524477050565869842972169704138520966330491456254286700568798200733418479932981402307918982673664125996655399265683787800304635197674728087542955854335478075120983422919945547674825223937588845859210829089435344079196925490705053528557060630277499525558622228505151830861308952476304631800401036418752329462169299311936961906412949557983274788961859189759778542253415878815517681678883014407714302169209937515239054108638528168083051388205869654759536011978446246317563831017718102469942576235360864782325492814197102229730010108446107640775113860164509542826914997842034935781620186237933125774182884031565761890741924104912940402915483843106997162825359907545667715729907351095257002506581154308777374920163594641420950947593925557571513924477031408930050346346782217309763519807465240152066807147371804995748286969607473929708958750237503001631983762470651827043112416841976887985858637910585218031906846758303869716305811231122600742632804192805159137056976674072420468073582838992793277911784193064675026408923230013828186247927556609520789418521933143989625358549507132072377088192108872778049908875216928438393816804976857108136072899630346777387737905409737454810686796234908909481835074766078798191601960008393274286495349639019267248351388057973441043314847021345123274874672826858243437947063638914932505129790384498074782706098338775169881218609487915848321668400327698853005903608094256182838609617859593664486548513382200228218752132626888127922207469057100821131202057894645581085584753842300432042978637112792429897592439981326740586787376903108526193903924335206115896335019033500034217389860790216947969372063430297009048033890729524879325719836967077453746843264962049284711809181873447603888258668601076507844967462972190396066108824206017719232134865534892103515852786099836123269798650421085076945718988040052080170885272533704201301945855237668349175742344297934440731456539976215381911041022478330464754843052416128189991441111438032205139253679765898959577873179425993813238958047967339975222655610743193559169788821980200365097368511070157143772543769615000515767366122237706520225398316038169722321703962279448181491436004376683826002644050557544791757699567372965920193795151081802148720639920670395416577353835004642830473403741487224375682421934427342568621226759017869814553392737062728650618872032935260699620512732694472562197145121470229013190946546037386167362220576072356683121365065173935438849481622912023190891507551921576999333443923935762468720826264526400221698039497933782570915059607961445298918338634790092808208174334051825529409201621664851482148906050015990310978406703239251965882638358926785255783761075631495065629086834993122061361374006332750460462420459129975856601114974983188156758987723912861823503176891553194060100432032607592073450382188733542193812455593869632566403826375934612274477378273022731870703842559853739722871017121019951919813949361067552543279468163884244870965798767582018102122154772735290974891345256742177211447897467025669689835129579586243383486350306867058742338323859623372391262123505616051880270428158622823470613554053125739412911160340311120884791856870962680546655063465092135256578385375834305101147110192261211822224638923757906009135945216812904643787769210087028516238754108076316917174231727975142062945464787565561919054225278993897372089214698087910501250039305244553821499637841914009059659558439664306198948683467546999262144591252206234523123522544763345507701234756070442691648772035295236423664038341477514907039681033928096417287114782833011784565253002248955299004117096979453182832183821406224069401893161904617915754531522141738844614955782253810040838982515934737497417184241525627084530187701394115684676442981968909612924805590372407039933069091816703463881362274529470638233235412506539735750529720117534626278086926000708054162619909389724279474959474342024259150479105439963132784849213114563602011555196498851048352293997973183696015876901544765514013334595122519092089608202712538092685098791827769578368724907012703959028934944363773582586662737115942228014543533535942003019806761891879807810148377078863391885867368903967237065348734410888204672164027445965517742586385893612479343064258017703986700496587339930289886208707016093644244035803431671473393864731612422316187928286770827589734488971454176204826363087644716667900638673739365969117314769906090025270100193573057942601843413383244847933630787519029590578342363316462304989512171300189816672018307954592099168181840313541864545820502446888465822259939903532380249857163010530688060196601043540624567717891354692495218102449693577572203984489546564566381553527874982333467644438124992644802138725360797335363367646979452801169994026820353386294392913298888699897151487164309818607752691717803300377263155533137205762053874230105074120966001172421789821761084323169399412991744146413211408056230630663314616916602348266454967225482658090231864476836916926957506740826015297947640186629940013913654390302315764070822468158546963921083398566884065827209478968771299042444756738043286299205906865335311785567246125247986714654407070984583068793530358710420590905867184008626165944541455790733923184278188399477607157569014226671011385740660550101878867917289268752656666283896161356953124347369595710025095167861652613193494173737634194360962172986023750215212603033228742307604633680523362683265597579665752976310558247485156537702793049759966192332782954647890308291328001532582265708624146328698481395778567878660598145903568860192111167736860056760313661302087680180678039682918088763516065568568369842161864561873459435205362244926330814127596683082029371398158841929187721158833692500644632099663393494357718791059425053795752393046735776188653663885192105815187173272272298639487961877013612499224374018732683553772265708392806263769431685359744475997568905773057455666086524976163271290962344243135700152502745899227861095866191190825285667484317316677983559918106624515810082345967904654164408900561800074373209062484291239205792123145626605580676246685797961339560177616497676161473364716490241340072458179251780980679458764312976389006831620530087437099735295132429212894288554875336163053616658654967275199952721824628323388236076960445956959949704551657649595034017888260172697890140630808431276098626641936806903713789601741225513502843030217797626261408473135759139360354475704741716070669746799034053485487609764932081855836232057994658887186675452056747945606573337027830283425512612853805028086603851589218479642021817111708427715542459288516865212233498500722799765284444116673118892744593402958652185073565616994280153448900127895166038761896231792116353333787663371387915335670448870673589769135979730944515858917664731444858894200979923198268726962839133578635512307923513685360579295832609865713980200054740797416697573425067687275222690408178400456489866947450314358144576954770321215116394980470973709751868184093400072954879633883547483120169985471958442809436905780434417240331025358822193484791201543383139702415065441769370644694622328036763216005833259668749777549000510267419056449793994964242124355739880356044677240737004399459771080694093459645948847247861727223354379975540661770421756898328807792495023581541456749816143493700296920597472341248716944125452860419395474468763064335462777604240692557087385194464621500787592383347521723559074990823412228669320437919044887710859745302606649236802996088053483415302679441738484521340656758176326336707998258210466205087549661718665225311082918335872284860060953070770629456122336043393975777467998231807568818034572926279257295600074141689582589921757285920118047417787740359231544988295438479354822441673193625087351385926056255796640528176105830270874630349866744263512977960473606118876184596024844485997496905090014838820404566339905478625650351425734818388549847198784366050977532935234046232285220849410422115262588427122229347455468322377986911273064060096703348951875411794665958274226903563643216581623728295556191107283224977299468838634949534710292768134072190276805594447006170385368928748597268979858870047521100858853632583343378822778537677828178362028720995490637158150872649823926792664066803927195252855636923481385921157221909609543845469237598528393075932158314792432466009579016547970061896370522603500209610430216144264740569895689901655370429066476935825329281544646846128017527556499632591467862325178380743211241959495037194083950990076175201396071026864324325520321989935112558491238696554394218755603717546972913561777164862614808527279728209060700789107103526452176493697248850440409545045056754422547914152823312725380457525816127692543584183095632670358438648598633622703432970724665952878602265531044083467744834438700686684200058955995517247096560668300816245662751606497458052680546944241166479283069806395192810966997965271589626653087911686479849207348224253558406769572832098045858972069151234841703490084900744441293385063647440368644300606818368933801663154058816074291128895520195225426401175118749924898142715916824941724409090740205572689786945901464949361841409799945955476535470656361714482891866806267117530965066923815470967384445081126311303404059078181100140180728998331298622347008415087738760486976881955266024202718565495847151407628105067836458177511700811567504061667187573798554549440342595384252436510040221700436600983828492893560052692641853433816759140153774479745716825061671367718416884581813341148252685008233289425518567564000862283361617066968098402136176207301423663812441898669224391891799728564044541338582816190624885751653470844760253579296026558244751143746515975296525177653561771029661203265759879511901202709475583515736040856232015441647070885296274205193086658219368012670855337539237436591878888150410671276020478881022424557868712366642292322866849385003364463077180499547658334670715097955871613267863732619862574551770822746503816187014404431308235734325225583076057225359910510172822550573896946141885122191242793395928020245288869465380448004017292419481710922353010116470684400537906289516566689383518442141251063734173697089415998896415790543045406895818105600043520520159489139614127820289630326480136131764024186714406364475384386731118914133831442156169817841354190743925469844529750169080177023840021607443900672470320285027349337134505252907945781505888883878953803357539782602133552099802066385433935636178874152234093535238071251713116735611546072925997163512106527023404312403594499139313510488390555990674463250726545164240806775808296613130980289766061507593196571558887710269028497689834431927439472794610534709067736213871135727598478350042526969023037055270723812652913609708142330033433485806860858846571190981830809937747509851830436496403845765761963092872693203067790953072000575149315970904370765816375075853664010483171439886211410159665367688795058618719526320688462185989956600476669644443345971425936891603814866020195204912697774020302955721938137855568952232011260738273195508497641152161401342405209301004024448385372170854332533769654167872828650660135160511635719065820131394906346091065278180797993713445930519476157649109938497003675806778648272314619638223345878950800277316709013938511655643943955380286011553088322278304417038223729825933764517849638733535678075041438820892926748854924186755440643720449785264428883438684712292751483290724946948598963528859718916659684347653605850334294262794160890301496465056531403111947319815166855671566890749165389621717531439287950548670022316181213176330641807777828597472254724218444932978048216438415442661023351586297185659690649478529810608855145858518157111628800359960843808741229625111569834206012706206990701805613261852528379183552832930243584269864846535698021688556315319916376119787450038201374566569183168814027121599169084748896395136451183683772739842241426659011636601367155162394656720723647560754304342248020542326989239137231425807525210248279323447289946865220985121447838779438089723146553899329914688214166163507256261707644624205856357561352718165499119642033722131283283954680700756066788217241737418529079864884415084086752929805875272088296828316668101844854052957700612661752768316727632057669447403138326233426526706854065582827246587672014143835363865741955316867997378773781693978807816782807535003229670233614120059352936045480856255427098440613346020332858561434891058950750293684416434546301648044325581825629363836049813686297923190597469171780940223373680386948120862976483963734584218279453521822145164641780950069591732011799456920976477943421558963117948890578953718968066724026791455114375935591138712839228658568503609315478511194788464078725540304371403368589060799097747674973948874030391172455766266447847437509895953167694445385280089867387677548163632573802061393700873531157286917748959008219438634205765079110785101031845376576745747621114787969226626931345955183660276193837027192335967774680221197666866877835710703793417611468651840680230211923506695979664562403368421293020020218375100722432653372475758429366533584921487174754444662579387098673196972870923916296030272109342908661388221290280743872668323553636432426950192311617347664054094506521027352779135676568804612040252970649915409411813535771986978574532270928853344561760308206573202170816272351798359704903814531687352803642629833731646161978162404337654223608897202201696057783135753172172757677294850633155655747096516036064940785168143491282503745921907060487429779233590765507729690236631347790175226290397910303967417646092360346219180387719484238767623916429443583533026510581171998319816673464693127417392306012985137358640486042457337453599285757334718384654721133435958472642791038315457943735178625468407327358852929654452830087243182429457482174474659681028514048059544700111091176965399399467261303125771523309871940984820155363825800950919590986469201335068626797103696005693358441241807743115659034290110725703093482599542276944191087122465421286050091194455528472334352141071145905046083802776809972235673687463427903520592937790205763522133776488927620883469214918874079717136541351651160825889913756261308779137429498321887535068382993877938183028733550457943440705707197945697435613804856447964413674466709290541484413815782279435058387652741870508521231484956411992994700683596194193944451597110296814439026858362333538714336473156105205428593338522043009867807368209786315010854666965098274842222751759270176434263413302869234050972376427858621229973609191833055915359339117116025141344370013779252998881494852945608747717545623623881592252047990304331435437049086047055038367711681474630176174523398440953116814503332471498323694742187822557862236273362141357575199656967241541410614066629920615911030175376231020437960906082818431898228872753541279732852696473961134531931622839088470670580746992848080368393229069228131690124014619494533966692738183096360353475736965374508552443976134550250119154268729799509197062051863435673173930899318878954430592025626301275922459951473475512323639857955659549578938292247786964151000537189952807170084750592502288577841523263636928142060556397449567827608002738097332643643702119196599336424862084274454912015201875454466195879400702279179040349312596490475110059040904425965795757847108630302262446155898408409347436626275527867235135893664544850063144859176200149812929449474345106816813690921181104445332457967660535821979785296612260261243740185080910504485238373643074396979870487323329482329305914199778485385002512343111483368693841332108480299534100693520619470300989944876166626483043427905288837759110079541723259144021479301068541418560407126479338506413249481355422373388421211070928144495019102676598624378486187892700153166130673493595262746827625823524392944230341246181415071222349754933649648287752430856459654125686003526002976537574869939214521450233135535889755613962431716729678607127735251345206470271369461816083714367850353908457606066210496061058731023903215958775068409762452146228671168282580650270628804854369135305912011965575828179816528416524485793538725438159707276530582358206285413539297854409031126051843478436936639745903374285944863854334094064922099545357554501680842164611881994136262610441017348582847660540676095697377971635668102941702105391690796847369511865510485195893415811030124219136444723194825718451270054717686910501020832563468304558078995987392953499500838450870451217981589644913801452607971244732678391096142985561752103915998218139573167902337768252077079739894401634078050401100516304679130685025785611725902513800377880730476461572368840878075273624643981971001715809340810297760286986941376328311327728369963870735705877498546939982879597565176641132176596988459922104401127845418067333633297130748611134498810806973070729767825456804557196844914967364113746472742023630207283280081265454563604022286233765836058254774367543566183068028353935575485122842318906066410369728641208660188706276195967629890652273536786108481505508018901827864372157046842146856411414183822606664722388149172456173118338628114273108987051128450351355236048298986567668706943921725488936417464765564704076738353768325807497514932549137080179201994916237381479289035469567382064107089564601496038029865294806375894514398853353381916952669009102970137561770706436589897329831821034945555968347683430733514340664965876128692970670776587156815226731070077559770132319724319764583028868606644839923083608937119172016093123954079061197215638242333048307585150684705139724088136228521521764909202171170710148789342513831248174713071491917434271948990234266817239351833087735968174028254324049753535536721430235979972209699633571312969325034265896346901968994331285654908840700210497925190273593003939983941295831604814021715794867031587292799582147378151812307257455934038018063979479455170603043275192517344108306412162761876754842652929848568061783501797337949164090795947620747254918988069549917508630849467369172498033182908403748779384547615296345609762605155516960675145590641832343392755998143556230770785195224000589984064925984398180620247298031972946988020648268475758224868842751338352916863839128189866183915698689754409683834659907279789698782341610558400319259033226269474333805712825348454622793188293353857085741904279939187172128629892709371441893883410213309239118395088163214020246707171482639247744770511540527014472199171632775841067894696963480210393265021029461815996437612067221257671998841106958624570828815888792635193712482815082139772748082155501914154946176304869307628499201930225184994759041394698108421557518971940014674976081112979340580788574168356981861204648881872042487259147825668197205858402995437734956189162817414954543844812530058807455595667157696740418583398802989584262958888611153382081123836561052116718853753498452128567931416692551427414011424927967531790401626053135791142678487889404018908229599138843107730000916580914987661202641730636996909028398010464175748481014928749586798566000949330254866590732893549647627530459717968618747839602433512590127977242529133694598024013372656609846710676510964666707088439635477621086705246954704479343057937172149678484528051216887370785275530654038219238714400475329851425846260968355648239645305972157351612295904239625028267483649745811433747126606716609348757022557630243979699809028177447028686290280512770579924898863197817989395359894021134266411471398857805835033781119093338777508130566361247988986778392672468763236431227318328381978400727842992560624569988073060401442217454040244835030667066596544402766791162029096289934223055360289339517869020831604215710830488130923311201426727059968940718182938201836401385813714817761326033582460404629483456856981506348518457165674239290768163635992334818777774452552471553677028935169964290484932506562127043343434051337419006471516513357564929885931200937839597314783078962626995589975240632551652000303959508527204895878592563493890472474032805745435625970528268641218807849222665454015455191015537323710309187608824982460899782132194482778835136645955794363585562326233382227693119307752206153008211426776230664186454588626111662221068121247776375139541796284107445685743163795153557678430087646844122817391218949310802923198965650700784327419990669533532077671027890532046050427260205419822277155839634070154204966854808813533442824515630894438557719870551583715300524123414315317374309457501735443781090060996457413287557530762189545584112503421558043908838952966415049864759725042335269784748573043117512419477731811998599115912711463855849520857976420293645425825724007676168585289281697867610459867316725321729685379562878629381396325290339749768696855805071728754927268575511885584475827915837379193573060405293788011221098656807424783094840375005719824958045313542469589608501279839018877783301170359544635259083785363351360006272688303786132364727047611157738845918313869367844448348070675313895878757579779078075923048483788957163470539163795161518733853208277607527618010810260042123688727765878979800382829634742828791655994752742453579303898422268627337729849548610072656601633996036457885794076856423391354549586261344182408619718049059649797465927135171568700456035385543958214353544421435894190137874708762627804660108207191886712346415995954803161773886005749871979113707503744653528525793105550461636320513811037009638058415784657278302151983615917434062023606640172995640368163022130106567919821275043299223473900801759998555592377785500813962250625432606567562135151589362843896532922848392844811281812496590319715541492638008207834636318092446802892995878125989365103881451685526632055338227362698492505212734587595848882099048154003901033779294083915093075565296595430756489010962228093580647136762109510812253816678183818530394515921291793924451291221657999140294727831616273963074580090286052731037880549340817787664491256923155816790004405151921326705884785926501036170272328245219506942490692645151528313756680209638504968340580883615570488496825914364774287589858239373572180735122466311600259765818569196980099186912281710497886484805418587046842319290731210525030324864842474265280815772407323217595590992889132610321141904493389244566338267181004005120238329383891046008903134834181314731145531819818625868380412982404825909575919045797915586784565452976313315418639615777409451379639669582152992626643983212083593046715557640510940758214461115538226519425610163945718001380513874092243031078388914154747192993112521980211806899757089687683313226472831963851423180833774223930786654983043714301719154915521250028446785766195502991470662272779913393730572094626817608340872340932263833644591961544842252534038253562751984270863572073890577343499227122302952676964883575386530187769563571306909657983904086477675407544493246802032843413223287119725908461348084977721730605162032559899665067853803236027962567919271185266100260885387902522774015871648539348087356909649965133417489224395202138570710444155960785088227113746927388230879419446301982558553757293521179017137088567092199254583673150678085323581781552919542274307955563802709448652372902067001357849605980526959483958556755165103727556675616145161440536795306590471342586822167479807182526876759229278308026367943318938794321372529970433891498548016046890173886361268534962254854489664662539360388622630834921354205813446139357262302405704171242796395744469249421251998606428562401342541922093335064359291033705087076637703924586843527327906837939631901549821950722939977478664655813739576231028457511185545335521404713597277426758919712250595114100868585749007146573042137858220100402792193411034639328192885065310617910742318063853146672166870199040986789420824255993713556268164578827839033621022008402533507035683560239560346073352159378643441039191822266615235693138988605505186685957381218803112415653835126764355155976911670695467595517226620819910214297563285262537082088762191329091388780640090723571077692196073447329386388287009734802510242868027235475478641477657220369929723768630021303473733597061752671552613390783872280526921349771502520644463622171458775109728598254797869086047099378720506954572510125672540315469482443001614285178052723900354719625509876329627015769220366439337028509510009371783487441549191740257818265004886679895744143608399079451153197656514858208862458926812911096268466623340766671636523065652821495083462235738091567682895681517218278011899241225993665499665203884915132222973384008448950732434052235202546665290749189605198173700412199950297723325916150234529883302631831867012272030468586089388528897044780424507757816728901948715718144726801840499942658257591342240987298916778059299293500354936540087381014852845765878178213324147982205155674019440139798629385015432885313260558624722938144676452937562720247538596395622769049755312773517402447755985845405593296446595690037001467921275224569637145869789861389548590708185742630244622433240460951402668936558066152614408947799258387961537984330966537928185923373489027691817260770982757038623842790921215706686994519742940281629153339749470459461439204941336603192675769923562643151252010868325964525599226122898210567884430767238297710485398732298840374814165087110921873223009203752210067789531988554268161496368344123175454102268456475165077572645207196125338285465311763386209805902570756590685692811389372197364058537462688704766714859041465099516136295722943703159622649529889128980448999637388946688046045774310882247161850303816896771636621417265239831718365717199437461081649020394937007113557009773041764972087629915196175918425732197985818718946957007787766338371733090539102364745257206562516953753261745474004650576405257934572563311916639656430170274578727657201567970619495030725720401216789845809683480613962020326268577616886127923778527236165751801434378410668664247201617494907756200154496889767960346368565951891984402967012653023850686779420342817286546373851388441858712892004654336303795037915034478110856345033838365715546970171541677357176957537837292066411125393482137142087549684713332216048580538438092297994984068175188817701057397452371846134539036564664450312694650149482747803679384367208780225703273448982580532140358990937116121820368251930951197879347896802526032024506530677465514640485554061366205953092269950579545126324592441787190194575686134385774924689417044676767992166458671611803927703742554368910403893563938846312829673057180025535900393867282780436238064175595701815852985627779141508989278099339704101211316496482192857680976632845816426833359776746285102124811544516394922287426105332259530188406668941312261202077805612333830810264062672802982759106521310142670317671087259242280430762078693075906309381430394978779725444740843523186953976943862097255904144143299912982892258245697308876951574434774604827183541019287922118160536222545339551776220349269361421472128374618052410169159529695673253600205817588771359915402453428916685559218274859754544706975056151361023892118738679582926949266120609073431453145074066061741546905630610547359137585925605715921665325193724290167569959786407951239593520800814598727852107831817727043260823602336606928173626102120993923586594949411207025504759283132573113987063772268019116286387672646997165444651030997334865580122402656986027665981380535069520201662252355555745128103837566362798780217286569859836920933052368900917848809743002440561093359441919463540935534977214338685297122575547339133649233244704727663920659209606692653850950008700807231232698473830556726122125936251576664298834474904134661268884590560540880983103469211426985024884249986868950641814772066830382403772040139905171098652299779047124642231239038018231348674493148084612535649057862105574752341981781630151079480158936958277807467543571343732590186906903365540899368521565196235026323821224778620720223556200486842868447454088720343863751222710849143692746576980754930410535557722179604905891033487673714594378834680703770340585045864244662916572906758340687148285710016519503018764226092521524560586646834626655029249270915620883841249716516780775756975717870670866366906686948599195648630987280534612624229661719835472268252948480312352434579798032139241629286709461444407664866027308013498134892060872546149644446667258345540735651282520975449753269698933188198732107428534889381094893066689166645038779828730908513427334138152690904471927249905425093701366716475454358686678816993872064455655124901825358570061317693234909134924570761187228426488730186363882340717498209262975907901526163482434000910332117226518600560123051575614563928327199235733471594552827532911238072630670025418242984053425401050437584462820985505044205214831631076378506918573702740336115895354633052885989881526250706555793384450001122458171450306383663735173481717909374438124832445239491350028736148374428839131618379736584503593770444820913492871972910682722449930198348031464404909773434068223796006033020756518106740557501387233589502490360162958045084491491997302010700594199295034164527745957778199431227877198074729394327040964464420519321804206224034829474648720760268863625947653479695833280346260688357742275228595099081791359205201215734273863870688043166949845919901124442884578258521066926327751906773109903727129952552376828283567828515286989609136569557791044474756380190441688040974552094901422733981889264766705487425904296295805874778087989988165463505073124897469313397644510766606492465286819028257748841652406363908868500970468483841808112488181000267752716706041308768481276564831685324358890395642112079296340301644477481388894907247145192639244211732083767030857021505352405302802061032791629011699166916825620849262485872547506857719233661362660139384028791842832880410976246948813159925462341196395402540544201718948940136083907196115270535612300851418467016782542667911866135077752874502272623577004120352647120918640424764966425266523536319409790103873945587299187932685503206675822284277495094406185042532749928173212609398517545461333605673151135985324937864058364155388128598956704216321874414132204011961805344703925445714425625366116990455118385391799656311558790590030818746501444723792774584289581019142641093689551710429621036067400131654799693656382787549248410679686694754603968033831355042743612948377753022684103116207838983640613034212843183620060957414177387114957100021180064738128229401699611635029091519421175716459316551478970250323455903462871443828669454417578609814637060467133620417596414062256668824321810900713021026859097843444297253711706459241843754463502125193279368946963962986702837883550254674006105997426804969758560412543746502600108524695111107830725482964309766784434022726827328608850694289795752726143912757343466579390689483090825832269961825609228665281129088354665136594260509458510784623915834353791239555733954520236631426013830905208474120241898145711279180085219020581505869664551246333419000076358060049030262353181275274005682701181524730590450943556393641603368112791312443405295321056231747753060433916626360005552227253468474243838371884657730440969913436705251484903817339357820926941203614049169038661194426250137708199136681142713745255301020236793969106716777122699723437826624571805411634420518895730123543089130010880564811476747788223561949227738923482294785376780777473922453018534656565648228516484949397888431792312380791690823014965877832045736659757736398942996051373418864543355077820825362352858817174708968262463761657626366398321599371123447588120752683042956662627685510156403242189144520351771510089606163963307079890051508359737530248577224170831815636174811491061008917984594342065336043827193525795800449527866782227323594650468519311625233783105024310755246546398596554055165133525468720598841299026896558948812399774838293077506206172912749251257971273366604170823170106519847071382253855912589508172536752824328874839703329939693634217659993671169504144714769054515257252822252370762527262395419786786015862086573298705693257072179734457044052857494653669175219382680690916813918508015297460818360533217398484526771962561395593964026467145713261114816007457998818973265536075511154982411788884763579902345593470762803158785196114711686461568879783972431929566942709092927832357302130632697673338253733875106599636259738848975623810801530280796352037522567093947617365331234511541815359299449712103578840943210622551797254910998723470430440171413035588450762969701599406327109463327409325352707407749387563043659826839994731015243558976672531366726781577649565826166069831727141670659500459615891688417753926874598766012608877448715180586327238475032834878497079326896313661713302947045145620102602918374946086297350472589535070114098845159044878937630519802188724533694441939884003539771163091651751237734932777209257608487483832807385576911222571286562583685598300772594919932213369849122444166748031650428622026864649825675628683250040566945427959422685197908451674585198701498104893305604173931409080833330259061624975114053093793268408024082269216500652178981495277628750368894370630676868231869317222701493303109232167992860417262740940490273933993773419331154608695204125737148521386676706550676010882909584798400161117617365696408879424679604334847459492866742108356023990798390571054031782387030704939598873573202079609403609711447129047235736778369040260887305713296499850770630324650978276587574238252874216330217615312862924978367528829750428444734740018455480736488773892346189463720584068227982652905913377488298599205823689005863005319572741949646336466561872739038803211423200486419106286192791908115928728406869523525517841861616171660579068662542364174295463077629157431164818059137127734242542760178319182107715468580173739295428068310167547781136722495056693817287430331615177728870639607213715173075686647094712789848833911003189083927695161295231515322410612171075763481369786332883807033252564760098385614282612262655014116258495785472895624413307369589718305406590063235316805086975904029866903502717895322280319917033986807660432303346146113610216095149006546507710363338028133494624534647932720793189893288455843878174296978890424906472361466313425146198496021656935484556844985091675301048992224332480927852364215256598613298421477234207574433734035983430035214508300269402729052594022879093307079049307294041788706243008789650731951987219954738618278448937517727702314978367412610666402377273015329545785746860133566191805458601256393151030900744477314610557640732029013444492127281323575016654329545090361262469053118173722401668621837508599680853268416617315968417588873761801074950153047723532035503553189830009704785939914253905760157376262770050034362279094902944268147710958766614991480110402348160333874326174622721038055334095258641368958911105532404236397656554311607390645033303711671776679904430662324178312629806732044434565387437111185742858681648512507697461603507614519211049022229190604801752032932227167469423679309811412626828243184189357270640072409530413974351099455865688020852648671690550397169143859372926486170062817917602725993363852415135266706023262506904273328158602362858950718475122238783694432621645599759109311481638900761191066687911582378627993783811445919901320432754865242386292423150141161663166189026560882567106250375746713518274293676796240684893261963958370918475316346866688208252269789008253947321248309685860006391017442717311719610215156956740235970451060376552397480718488716078914360214327007703391501102138920531852030556957515354032929531315808216772518426093898423607798749466052994581516759434675327948452594391937100612761833131942408201723623413007624265113571521589940121673143020699202668791750215111532365070796970330451997610609769921223780094398519487177683334455613142896002511954656455409757743799542584654804816783110404774259599622994720645374867187115055610072244632509338491740035681473492862579753451301320954170789557766839378183787071085306695389103629727566738366016206321778390732219954336944765798973730441882040497326296463759502041846753068623937693356257918925185558303666801994992662575993281695818338201885685239276820563542434356521400109119180938433489873864642091162744879288936201408603352923240760033500130150934948515181359292842002542030954575637890311406485253900070096920688309182745034293582357124764779006087240611264848888116617030179007052132529244946798408336495093074761410335129287745024146538286300994344390327129743599123373318111646385603329276717293328989854511205941924733735125726486327886850912272862649542522949456606493186929176319806823669883169491150617998168883361811016808071683697073536968656118512800154216198057161073281817742343851006054739698025691265336706645728622233263754923377947786638854864051743679753782274116630136805609758229115713379240874790077892788787811796914342150666514275364165640517905307083831949459391156651806898486201533161945912966010598723569890533124470659675977176150856691615538332442271487132900618580198419335182560433753847089085358234118059002695830962223412712377604709721209237579443476236212663260516099515155495566335201907177426781727267469248785329277281827034968749120745890014160407569233361347920372705846411504735504895863875639782956454914402102879013097791234423760863936406436742051857295027449252442357883103798646668045588492777544547417829953230945337447383004819677016139635778306465547667214050412714557371667102960320969599475561015158702648561562505737193543657432542326831944354918732637774694874293365863805755047059555340746879673342129807845988881878512152596048065301729619973666088756652127738738886126841251652918389401628543812367649214075688140956811627928748554405890887533802368892709644106762398207025673376301189947939967867632558683971380473190979961945553006100203324873235807540929343026801272211858883473414149328086373029560038571433539875601467080886960305153576846917643010686619312297119639030154902765467306941463144255171233843022095181775594068449382117063218812572599005782710727312285672432838301633285789678291093763890660774072735420576364941175225681019246592759695897706989156817471854222196940845955445217320046000213060805866556751828051972275602499485237405868329012073767967405328518568291888263220983859787362987541230679532925663375853500307878210057976520747008955015724249403340788327585021228821574750145096318618512862460174682445596765023372339674603791489881755569819960748323315023643287379694115777696674942847793341307280926799473374925383907096181720150082596658731372790326808287797645352767565730518608597116684355272497692114352435937605964465245934292311955930845097604684531269459605915878689011052897766004370404317298855223317791237709816362995264237207103716315672579458393468687091372206269180242015880924819374101588664563156150111030882312247264342031436339746877161475376245613243756348973280794884798403707381400900634154516438407766573792955350320562769664440881721048983641430481713898650561278202727668369228056145095393354200681237895323245213871090385356219909263149548947950935121878837802850078355384273555495373043880655382719082250074300640455936462250377864984559021440719770169145333676204744939341529968783444916318789933166880931529977691338422531685520908663344067838543974999105012301396307300722668552120537700152524191021683624301122590079914753819393513244616631699081459919948350070473834670948422079659041185389868421353868427742973396256479371373165666738622686024091061943728538897009443493543960523188327471080786102669371523130941135524004458435497768636702397126510507529153240565634642599533436398263394797900314807338709986919351732319683782354321249130955878708403498532032488196631758155131504102301040142497781777532637543617665875829646956585319732807711305324019221599619908305280331496491474747260302626781206207032718439507147421888629323065046924991483550545614116521434205970750541105766746585977143808281634975241028481149283120331995745055389444327903972781255549058819980045996574554047015722771290844677870255142846184040160019046926778265765796565443564092937108518715189178402433007299030846539867864323628992101577877377413492504415912363210556407333947365494132784201342299685264162759602837330163174157547373823263299276316466707282782319728434306253337337984533562392799473343735438343439191094640082273975164879385489345013313761373880680852337547515904748811614055637396486192454830979500330415994211848950728526721151171547416571634199547198289210785009857397690722443640540502999015671982395659986280225983538972739417172899820528065721950484048603756059018167871826527623153393794471513002824336506403666547895248841027315083444684317327097363830811267953407900119169744417021781297309253950152297098806133808368765641492443533060751388839807167993030683305260723372724239381693231345053662190676332631768302416744272696386241885404255464168811123100123071121667792381097308689557243001080688239091622082319510838200127032993487624485052582570644151661233731359224558713324589686537384252905453784194094125062343603789656360871528000002616846927896323034592687603229181250722886743700791628310525251988727534779991778782732851532618222985261063450703215266317860151920408657926497774060117817507567337749679950874350752746070889876763219278931632441417811945501509673937057996649827773464256506104775681684384857695051564252709036961436366191506700519667566144682999731602003398710584987011038708468182744072206833611924067373591714802343441874403811832363209254745993581852754089894244761575407527203500936856189433313924482538172313473924048796331802289194528844146504054254463835219168893158257687038144678779949706443499624079530436872002671543376551762500482825071262464941907527283647741169589431394190552869664166877128180746775014450400029874346244651420260601790969496798060398887969954962375317301967338927894396669017312212820692538271679780804475396933763326527994261489627795489560487693610474900304763120596353132356589176801891148867893384631507251196826337517785278094965209605789327427708782259772515713520893085598688736912500103563633209268168713797116710422140751840112979585453572229839672738072746959424333776261665191681266993192250496691335276199767104652811230526382849279796974643067472461527051206436565866994966466197251773442903306866907055283899059540064405831206433893118661720239825380699711927668729672228418322549983940215311229078117784593346008455400676521735708724031947497447372957964917196497766882976220815716548948853254353117503403588562323645578760184497917009012791318790832742790874599613692720757034900599582734618527788554457331589560805192948192172473748510286371372551348411109064457244770635759219440050180560950777233251470268847836227019973479247721427961087452232130466079614202030454769716234249691825181966193465743622649342090809744038951346536952798333234758528108994214826208858800451652384338657770525634506866652300541532942506867383969123137808492431198535659761697582427597002921839130291579130811975007853225864730732543268108515195547739888285235945379787024560297281700268751533288264983704938133433287184044049030219361154885797731902818176119881453703416218140623950558800889002570925873223355801746220830340000836239282273758577545428283096520852080269573933020423221099851788751015249998262843434720748113481285225859822162407530768302989609829332077403773448196490292015372841694095754710738695710418199803718562696533352926498040737676273566332590646775167711518261821497481940453184232637308804344995712410433321342822839637967667573256229591536506574910845460114558475368179209084076394858486893392005605919304165400575953984581250071576245063530530581929096413875078104881558266188091187478822439955360837829105648254296038543285553157655213628020792396999792986136447647890369886030564740786020173844326337879578858619455417513624501701477219238374509449580711565196143257098750729960362375419405383321463336591559327597909342476276871402617480089890078039923052859917832597922973348916160329901575999739201771457698811548384512226363200481745281935373307036114474990379517920202062008083903824651350390876148824956223533668385023702233218787888899459647535683382706400774561780932097198712703217228559132035510803947556338198438472005316668681935423135909881177005169896215470867427247819415486383169879064970777542539012858717741130581896921477649916759889221985674690526071061263127803436084576907095495057443328568533653537748769913624537733243514414542653224035197745992911818534982186635400209943846054607208745205565781614743534341779251237210520079617437592750527506880660297276311305509465987921901218557139000025781693010311234078630269779794732815402070383408910948015394640137260849206602116005711605125016775923986241735384641732335451997950314175496702107040009429344199295107833697588431916526759098707158141215888469222182461559559684591442587285360027484551402035878089361293724055915305752372243535053499782238233942549432005321545693968392675949638283372578063258726715900580457177610996174843286815561997087381054538738579440157840291302280729327168294232682111639136493786923001127505100402580101110135336735191349253329445800709280890167658497755097293773565216465044677522441176808012431350431504841957401283266193919590775682405986662524286271299995820003469494280592401815255124406864393549084962951028750656327587539561040227276875499554457324348469736163531458986747600324902572173026082819081477977496076285049824102155209873284493411690546431210541919075787432071614123283715195863782524784640994911007938067782295861340695947038736282319282032063009187337261153800430877347323790334858054353961195849505944079910977779574944288995298435914122103941955369352085836516303723565060884489409264363715701841772501412235559387763949318158640398020125932895590610696465109226233996356134000287456531590701264258426074967643361800620169198313075910877853024503704761162574112516071599664427664186678165743112717562404480720859749443308405693128813471933391023874058761057321997116450271421730045163259494944254386666344178616207780821420965663973678817597142895357696076964366753538860872314661412622390320580116913023996059213527002163640393310413732656208809956237934141369195591146953802293679176673247834625697487265068046489159333787337942265811546139899790651406578113678901816739030913364136990424185065226752941130191241802924412617055144183257756396156980796644184019354144793789759191442050021845158003901412924778957159140526662639798866266266373555206475901907448613281474365236260186844402840867907051328285744871434520336982598700166560080048997051257778419453071495940286053354058634988999646723869762525648454014002896618124883529338006686385612108759696321498721471169796104290402678285469896305706481959340404219657143255880850129501438461202718280752176716296040761733055285876794299710441117864476106687387921123372202568336482129397683008152717603816531046474769991030774608213129788394848593243887000324424123747672874093448431816372388054177537248097098331272086934474845546205877132254818536683294175478244960649967547782654882998988146006387017716545178587374077011501036072771624836895820845532269228790341003419388386079249042743945206215501756416664584379493584147944640198325356855744396056581068221598585032218819827386860911175576961224565293046204998821161379340152192255552133359709859222312793621266478715132487527351346828147172904556370408260978498424917188529808789143203139226881639061912038742868853367313497099040036926646704168948761361619374538058032242603138075962504573630269035258869502063279730428057366002341400162837638488879818419583142562528652661719615059795562817964203704777487070431872950190998906131618902229891167933217717083036489523911396630073748827314333399734851163344599240506970332754100535451755145777640746591878003993873770267744364051888494346675595751827720511732852146973986982313406552727298653108568619788513339905089955059529421887241243223508594688881965348310155356649598784027724492634776300386247310624213085847537770488714837121322183881496091387053463960402459823401979521549422873030227985889005476750860953963563636695982862723264102331505041522770150851438050453317693464300642070145098773962937829603799595114333728925761900932042157266569716979236992897603123748247840735880992895196338083208044047537557431899724875188842997479521977323204397592422894227264274444726620540618420430916606153048509222981595488477042904936573676718670763503353766170825978165122421990043173014562286019944763093933991535003993058154320767941811033027884477492434231242781660604284109770088359582202853429449623537596897773354726798672882848350472757633459582803720921995894146860479192890446151453268186939349108437930385321284199935924190266687867919340122837214162685267148163103002030440055566736310195772513745835719967579827302259905438868927573686238924066264961702001781864074336535937650814283152866467406719545811530482508150913560617226811834628206578356776585061010192868392917371269852951612009997252963214801599228331957367933535504410661096029166674364903654995927597104252550011844475616555234656722662173619729227381492498488388025531401483047192247567978040643816023517304211620642249030432623352231536924680179645478800975877052624542716877983686774018574605726282447361021133538640923500425502322918691433054110732450813179524880430819186569712369840097605029143546621677988067784484906499537950055146851265232981116939399380883616949726704216592530023773855107586812586675257002926845785692898533445112152575674557882731310481701670613072364436651514966549141226967353868443812560570249034491952388290098380967817151100156676277425078119547595384692244738339583957736134031280102849222779141814945534226713341035483854328290047581398292947449085923605242225173290408571173587096353399146697882121673328219417757609288210373194440307062161685350521146037854154170311223656141688803982376989406085676934513600497278672565123056383356100073403879451725781611333787759486001156857158389080294782861151486945993410260524223409432520015555551142032444001639648849702343337249662518894802049816357976549775426881356086541885611164413616943122689169177384634322655566531367274636189367473612961242027067491684627351760846472163793811372764182218800201660199355012689187061891379863182638647465092922009128133085571975880604793845207412619407895829291394845255176764747460167413026405354417129803909673972831270980778425446805598631707462268364376890483883201437642043780404096997075759365430151093160203324010981498318074111455428641770414610552922328095728985080366981442408519765355400521529116945896221358002200779858144819548877709332475323169474920932531911858597388617208493557732963972169953282354255711626330394040996590979729839825909506834901735533794913908160278716250233580848568656794926099418390964924568005599544948045748433914655848742306358437596135824966948891975347806961758689830994436648365621409837127738861648175127932653968013802915806137961847644336426568676476402520998948839279806423167202538668966245272378976945937746533547920694541304690802465787361755786207157144808344676401731993796755716109143398177752692167444318197148598922526563479754703495564357598205618053320447570310465950653437943002845611175128208034987240049858870018937565594981753717690519640804920763003251533954969709807033974693372123366913372926639090567057492724765284397769928149122843226945685491250113975060234289730501461008583917255810599673264950547750562613467496859273453023598412346814193553922112416667398678683851670072359824446754166859610017643599265213968811400585576994461561735142564291190158043430527524230823821182161037787810239720047298444161665178458275318243362177422540593894148995462005368241425625585916711448321596753508020546365592863302878680656085093737085968520347652049027076475699372091517598384869695897043390649938595927581380108362327527548587295214238344760208196623468825302807423240302747081206601013177815149840769957397614068586901047400711009882939459571908053804794466038336613405405368954881085007175257038029308603070209956888294506807294639081652571376546219993715491680976384499138225473932040610486493004053493253614214967287535251514295615160789968097829932625468976177393586533473172416611506419768131887003082289768570151385422994722054601717019756276910636439705907381659635038096009041663822849976700729984982014992735519962174098640459419224482284849659126337799299000367833072579552701978948312257883375046370538199058388087456049800962188351472535446557740057462047359145809904299799342986861390970011825630017343410776789379921134151403336587617958620244880101140288454980608839422079193541029053290588365580420099376149163285575753290935438039080555220647711740334540044596503410061312742895885400046346592232846003636091483038274148160543012997346638203284977858522592641457492198541521351547105086224725713418437049972500359442252893455368668720406323060587362046415983351460000850378525038813029881188107671949522199850158185126910925702068046448707250550957140791413069267494581615931201169162879213896602364893870105128170171097961072467376576271468824005572411624298657953741254535668895116450906021408429704186644086645462241363417946218164169557359106833753837580841062554312220856524658885274911256165869688025251897125216471850660471557492599595556677191716347053047726656977580597729413486350361478881610589180222424240512673548287283144928419609177494428300102899992863675178403753066531626047886523124820264525997873063131974342438031816052201973874132346117838508137323814340410924148175778817824070858781153655104704463025410464490497022059814994241265220560094808660628993488219999922270995007487218567344048767805519848595173088469623994517778560561197247545868920104247465462552197526313902191070496422027918388449914971770525929842524445514684515622038890256629805970176388182054706579712820960335443399914002718812053299970306746438269366865540715732533051627201226349673054634893468594606790300392372419710819016279087335255370230608424589910332499389790745349186433113164232070100212132447601037744293722076478482630491205183485008457445099668387939264378680765567940131093761639527089846528062123376834754093429570218915520190375862637032678433763943646405928485234860538481768162706222317043309594114756545943433951419414126961038211311032754010666088081649142773771656959545498860520818973420432159101441477505800002588650727840980699652204224086380451324556528503698512710204793384029044817617661493869266155655249258767910930257913705389310127475636029919778907963613002457725627688647485539267649758575945775673459411993402626920874172146677093511260824680323248915563723959945533296258568989250720824377784610104641708472650838949760611696021064668519918132238231414745118308086892819521679673989329922286546681956164694503923844927733846559157281531926313456831978342258518573174778962311664860691600110065842128152760413148615545934083503228914091632546968151312506856245181230164141739328682988146663864640004975222834572038446309282981488701876099150035626572254045774874182365130782473459613985767741122798867876813376368829057571281650957741079331252149232465611193787206525039222354791186853156121243898940554123521090581526933066806459532676627211966862032425936746654648557779519004446262102096963120886172784057845514982228999764728436624267183844085117677513243454937917966359728188113491217763997916820306077780758543942068550103177217215781367796748728376544257284816070135075843185210121694614973362012111955293337704707093013862899282880382555131718919827409240663885432605142342526089190700708505368299607910598633585734439777007395346616618433934157729713554739777322214525963107912606413564298092532207130760750575205744691815826545400329936802968494622811484478695432702654675697835552732041171231384037854305166599686689593034638059536577866095496845656308787641575438465740847364757070823105165641948166958804000198428263804084024870790273333740568648383645796163775775763790684108770379990782392998557205296262177317409157612703173775528246441398899913644939234503518069285674064968569847390638706353623640746459348139758292211930629077622196307705100717123564591935228854048282471373008443872304333404116224038139702440108877209506162817220933940542228317682788026417312271257494826778551842759062596237583694911072110045826595787412857737209571585556369722483982742583481376418967011409118061523948584662031086677415263795390373608476539324297779797139151707788045313959288079347806513912459650544683242386298994562347480389785937677787880416701211622653985227644150449627023272040239718655333616054075538253985678408181233240016236013342441932803298286231147270015556631375695558002343805976846608553113750436027801009365638450534855555007732455649826652183902763381654105654050207912271648608096591742270161364151854361195049390004633262139666396502366507296877473163498489827421613599752844349356602096427489379880528903462849020186254453127737455518793115574985369356838796755294014843626249318848353353450044994442706643474737059445994096831449627910302764588836237767197266169495842075744712484213616018924271527786476248700999820501859116266426598436611649312034487534222366413263969296353362961655493708355321985298020734366907091277183684472706543877737644466352277751884721542429525401387312965367665761469951288117093517819426160548895099674126394659038404122420619888791652914917491000387504642660407644638104047074992443321318766332315683721292340685791432393378431218611225466809978667292247966631786682523507994836443034762693618766373711168450045531553869866948709903389454220307143424940084347690300395851085661854214440883922461181464529755055375925616593592382043543272523996386554468878853434776937061749299474639811100164776015162935152540858049440123476841209946790738053004569561699306111765434593053734816372927213133538763226329828769447681858000544869034755283427301566746995030649705723115018577450045533010531349478607592919387135612335344147700002877853009297959188219725323031643690599607190187278862015712479508491444917178760912697024688151943795560584272214433622618618857701879483483720501465448651232982453197640170959390867230761485147406865644067003294389291046593308472597014474788187868788045416999229364591092717429710782026795601027371152148364153216643526033035886709487411509489641131052107989892455469522946597034217496683930821863954789025587206037782078718956032889428044673153477519747523123991429073139322549359015486100522241660403271778335608095122013727893007249284661942792388953272999130104595954451383880657406954096746713750164523594889206288461917659614500294075814456036607990412589042355591365141129309085213024482846722461673814077782865238311943221718763131306535934479908924772390477325036222593529211445426946562374622216209851518931967330645989257856360347803203001654369809962422568769804501866774525242514799223221343199609555045553171212979467320610404658090977033558615022255225489114887967319635019598267943039742840026776350748009177240546437554284099588511771461133562084270869712533403215749185122506509253106777214481541704289565336162164400919182191980614343941807653573704947258093148146520868290177434692494325913825114424190163414526860293469926170682153192721157562214257233268980692175449054270433635618146426917631335847194289076088876357840545719225418323472534081772573865216739898458441414828082390691715093694983758583198112805455181491845769574953443536038755487083041946869963783310872478039788801990234849231773630565514093819522707701148262809801953798153702109307083685815744675577137699707764797094514497988400232913933218018299114381894411140840014628188555794792807601946169314637633027154468544875448054271662964299568657083910823567882304577236546837991125757040039498309796309008006634810367810427288689641043775266993326419590463951792440592108082331948677377444393054939047299602132514566505335671771092927938933642089160012297637665108670286881077592428909722237295505777920763501593750827782521455276131544450694963176130953440779022157854012001409435801968083541687445944914896639242229476963332827045080500189401738078495026545886709467614584851115834719380282380197798327700615680731938061715479347771167620909784600233880971684026737877258166111252074491333353415389707074323012098760714230307376282585665584982822503756888969738229461311750702636368195666302945711327648405948764114747312966825253134098158566313743399780670224191805525858636732301822886273876172386116635376981231560712199494154524576871408790909217517076261113305759650114504685761544700927057832338519198486447991664177270863743015810593527065498838669745019946014845226440750164363032629717590247718159610345928749912396111175144945287081284574264128818660518350606714976009840638112536152088802819871312575176989673210402163946063550339650010141776619334843517499421936973612660136084199326292570360306263258573081195893746647590577903639813146636212951805668038600657643896763279992448559225621742534479965132433930759894723153709696440332575644546503673814551611982783591489532839758613473181282135779180640232188818207210094450725529735727153413659058354418856342313127898903084202867912469738223188987001715689697751791957190050613013239316784470031242855231949195627333414806508370972259995711329798584836257180862182152857059864855619884920514401759056256450673197311072165038134403125878026729349221877632897970919092573834576955060585347801520215908869591111868998849153831803910574211001157819356786667034855654131225264898300732701027109080059204440240672340768351627921341245847774412296161636861925374646488206912254084215542996071101550084253066506877469065499759529611125229657912316282191229874923396961880568166872759553878335620654891638171328446908729063532773417094040393606237128497266225296987736917332966090643690255072564195896490943366977118995702841817623234312466574921955426962318200156015268254593013516776979576065358148240745255369198122122094151729254192719088867304859391540111010730674666587328766505902560937755872607009197841577594133924706485830435328420744068131911077961580560082109927138019040872812353316839258589948132409316478404936530241608746073477933805464727091955481924739074959050148603409430497897681127615770879712281014804679191273754676076590988313304138491363287031008209547374793575667349671993391965247863916834672707038369798566918544418809650111169589779662026837393759364693503286436356377304012887860002235145978404045946988446380992193941757628593443018981547781447683151764273963470245334026981401199856339952559113284341828202987957573704004245859360656932466385654429805772584008126374004059385009294471078285419548090546564409020643559165765740766990654227710549627565533800750360857516402079381411964947301672963265069342775952146685670657462094619861221212671171915121756638957524805936958232486823751480895476536672870462925806370340870781706604166594417280012202768303306138025572093331965933681085741884063242495451431419451219398388813298249329167365421366852251077066711185056511048456651538788500699959110930271174567767436664562949194173720358176631446034759071623151742939640720959178357143455037853851738361184277417625531577921931584625714976513668117523834477027300483561702795135275258390759901143781364971699791810431925645925197811812256821068342989428100636873922220033211832376578068276076730974665546448446726904083478307643610747069654384708056945008956471823328802598460876642380169980429468542646178758936265057057178866910382217690441377225289219034675361504313306393884550434751096334899305530308983471882573820809270891011480656360875625610155738159492821179788058419153720080805409728271126732842195615098838357887787445270596355218438632782021452331700693632344474466259573236708554892880527715393330564535372033898998562612595284203922622893371544667613768322037025011330750068095719258790977698081711898822929453941840903455243013751560075303108896072026417525050123251841194318410188041240229650928386390539580426581569618191724125541780350693154144743828442836220740451101279387616571924353447478319576869348669876644910826826738782725022692653755943966001891384876168289445167546335694050914742433637461694674889285778152623544943114038079436950330132134146175869665272841651362219239954719794310592310446049838618437562737679104786857949549205120529280437711344360816800383484729168422593843489309572821255839932281688399105452110293526425072404115960330309983967619063612618465559386180679388721618997571990661252097272272154745754545923856574726630995904942467749253828056492873422913189810666763485596940315425570885158506938137412250190169229738529108295733689487331343211155894653122240605111399188901790795209739687359276023159712846124678504312354505591211343161820831471493318705088671646685491926889258726156870534736357409100247919824129989113635692366200446499138601278606251805633574501409884271641383484029552743802156160194052995437366050151457656372201576368883697457029527735857099158496573251251258621612156412631278480377794443162574198345521674403350317356388816715353073335587422747087939917162672592598779025145745818872657856337691301073657326795679805538406975086132537678931345926705318537660431464888878226590078492786136099105382378304785217977181858409430546409417668724524984365408561944139536614650397076338387106838269867411367486758764865813392414007187489026010006990167362809849286654132319649092898162264300032669349220554062227166844292177160902306914221088738583561382561245407219318625922181082184719534953253026661481219137715406132758972596554557957048183298395324149564342866434272893901276583887174212529450709123625231750339069019623255377135184447053008814843365004602112215887294025600400950379386421336953964159476676735216178869368085522313222450435039093777912884998175544081705906191931853184031913265486585962461971260892235149746238369474816917534065098677408394130773475653388867431659669289687334096342075453959740827146295130746647064355337308875379830677476872204466459497317221328277472724141971642027423520117014422382946750071839291300183461684686023239194372115931643242885028849823444389794062011133737654630816038386290443986384899958900756737752414429781870788235996530485559406061285507551569009707152257124216956464375323165317178711133920626302938607501281199964893052311590655700651230711059868876028188919258759537133351662856837818052687766011579705530775567668186012330628943265881145162754315854522197584746236182682725729324455722516410823162279480583067798031913779342266962840305382344868472952224850919955274950634267824293439977682196764223759172036538483407650279865916010584137442685334109522476307341506140482893700490499256843541181250111232856474486976186953150115915080795215214822738102212941579125835774053612719529215028555651588189089182643661608670451950797683004612765492724954773443738404618625924262191009848566649030341671962925853056680400344413951217842942237904419166699699522779842649828021785717111152918223233837366037159501600301751707972687141444439038367687090265253537700313653314667055121969517958232726883528090784727765466157694399194370079480765949393654649943060089167982058174884264783216564339105572187557103898784788966919845948731161768615200893678058564429290720453061655311312177246883083987048344505259584639188506445725443042601668382009140922575574208496162917522872705324049760499153456773151104477361806741987937021620677513355772299441866369520320007146409411297910880831227266576102822867881710784097804096445725311160125080894591924426282887854210982023296474973557482968037423407705334983230779896403384620027105974076820670623488481899103800775755846787929268280199354394093052875457872351067684516046315910646607012566165897692029712548271163739324120176168729777255289366184311192130080322564420173870173292156489400352137833319244462581799466219759180806681522728193378599437886008752240166453649596416599082028871350846180935792476201657899170847345725533110495503005639191965939160552540511035555703164835837203182409544999632817575381672314203255798172971050221027851634036292243762266934361093991868010459464338688180373458230345595340799070972157888511339980660875602519261656157556915321450342384294425138887668506141035155974509117416419357439652758824139090654983408858350071002344100878962047481527015892690366684158422499719188966514372405337554512998546189438599425065058706663987317552013364825413346771790682414650805060323352309504761936469959367977110249429078268937103047775134207430579672594288928899824661256750836711992411520504289616531053323189633631922519570166606672600353430319880869277101535557104612553581245146458534467658534926351772710905780468987983746367223351776942322670276535096109556641984507645071526290278986611284773586421514699489700453364319159063048718062405256937529645749452230104964769096064688834241017368786551639135523229281523586525677146595863287880666122903131118616170138206436296055008077429885635902148427258449198548377139992446654143634767681346485148386312482868946059369418051194903163086246868489460176554199955477581052536595213817638700404494416753105687696663095357724284010929691304655974890492064481582555765944600973033695460120719776591587486748537502741725712572751382222692394983380259493513162737136111656349732600111049768574306562831171150433912759945944481623421648501099766367311322476079037559197284241370651190556702021872751492251084204295039148154689605649896206376368941292743508758649615878959971676933797951141401641547951459273916927498764379280939655106877035999257943249381918182143136577165672514077157892205796605243129320682469969271489642954043021261045525622906784159101756398282654832044123564869649797316063657024373079427789442471617879549388011030750932715028454951804828905603824725410461616698300381067595757176266795107797107382548274616557768685189571849840517158633912865310550563063248775161450437730059820815312082732198727045319654104803957542851888618825764379109961297543667860730858607211422052763417467791131508957622448618982557006784771637574890004953967282342103768200906247540799066866911440308388512235611214254570865278446634995882385171863048038009515787149021199087947166569995035084640276570176129043249944650543843782221095277815176761328644872751091270527360345443090043348030272517038946452474124879648850552158555080177874584601768685837170832556592326789268466747136876916877240984396195141313796377866540306914846461075408838197167244996115209686909196652803659363279739149461164914649950873300230689310792914244425727154849280528005900835665679314435741793465800247111916180911275369893166838996480991100817152327486622462390783916965994339532181414027943594155955677385716266123851465367204136565257607032640760881576828059392005448444851445469366511314685728972479214274457269640642109281649772685680132329964740671369391522303852419401233532831940459950907945484564778771507061498687045173447182567949000508502363558606810765986063621975754606097673925283083445303248683198098661984664084130875932379409030230973316342732814502500732855514590477928047068967508415328065341168825594955820484749685179923850639077079462579530607628005340138999347552011697490828753630731003275307404857683233738951490342648153404663340565892719422687500364661834657566867160103629828777021064949086251284561790796393287759091521537291818596588061433562399668373158115754208968286593749821592863014592940725396330672318275454595300293550366253169271836382097067122763843629132199638878333271323593062085235357700127688103189303895351239728201452549352040449235623432555018626716969919290516183458211488110790561132792122714833806390380499805275338516497183387853267269498956611102361971285388733647494828963507792046988382201124306435672402830159079291431111253466741516105411608894918596140768694068713228933644040276825973651498403706571133682446573079165290920928576157840799108035357128510303059946829941784928466703243550665105835525870844775544910159665781668033864364896124992861124230623275502133503752078908148403589405374452725572279549070304561489022317564490098987216061472628396467563807840036169397341438428580706425764447018313528597645917247841083762126319057674199765937151078249801343285954464873421909781300164488629547657026137125031882749500573303370229392369626812238418063101593696057449736999004238607935922593382469150933018840234485316865315159166515476540998119778129196267198210455450904713981233014589587218672935434679108736171968526957605078337155181386270980283860209675535006071644632415879409739560484341850534146841962864993615542974785272765594627071696699855035751157276484871813877468365627283848646418650168527956613105204145927005685973808764457348479330958618692824208462656285057723083867054054780643931718185647841286551754212575945352132608668971931361583623466140471641620999280450141149941751046443778746570498583503413590542932068364678954728306442843052675082407673851266246718530788463791830632423359481359803569752803115090291314176193426641701558728504647368489686101150676175486605165610300826581477249827520562866845266109421913504656880795766799265292852934383959468046497402462948351561565156409790078348925636048415176059593025253230605243696099280289717403750654691887794126699116616776531163656824090103381985044267259832467248373819888912797729696547518031471068883552254670399254555211679475540780496258729007927133034450503688265440185696952282795239431980254155561521880344664862319379191999759624409344146466151654516099533908428776649222668796579796367580485988882926838590700224179405587328277557682446599732251581661153899567066977095657259633987226133237688859024498092396467317864590529670371256371168826004941827173414571198475030857325146462467944281464574998883762593870616174987250453423732023100300448763393645144730227867569352160925378401661612011053537088834187262590539173646079147164838745579651001993080745407193696616959931631340830763939628860324547628096260582887774349134143178113160748674166300606382899700505239209313543864101084863940179944069647722679644860889978375069318759708707280535602656609586140011926821015690783370716430756209846133108582579847673934743782565915730652635023699008820431498551756732068995622769750671598098088826367245147697476327991559954638214651098224233928724788732163147944408099573543332282537848471378276474035465787513966142517190931536253564231228061284341485724329297529941542305482984686624004137196185078135896036658929881861365958542665570123769541415172740564920655844190139363515158089958421888694766767952287617450775376711684352758841885271380750164895256410985503464581900646544818292017762888181578554403235447175604961733152939960218837638928306045049299939234238912634719565759706078010020239608236946997222363470876959350560473664567105702769409190992672312151117834421363270039892180777086984792721691051090167655656476229661860733777785591709200427550123828824050227126992932029850461757831084823765112503278608112507851038496251954241157657372915976468405885784115151465609511683769734848622366792496200176902516714064442413894589934887248407290622644404566347100895427716099044115559251374817920960192545222708105347593629422899065368259932242883297780523974392733727431723760784441897649368670890641274447991570360214283600910579276642694943400284194784449151529662809822688890055127842911931036806011069105752712334613448065023796320352306451925770721063631461469573883080013160539678582663002383990843732533210705560798100717883971340571117060557066223250728005180933391563462523891933711943260698471224468581886010672340973193187592857409864561190355660668503033640986516347896091720536983389810619342878892068701366907511898668232902680846793252844487818647671849087113713834097616461485256173398733564568561912951967578554091244280249882045710164834317265350682620399105009853024721859029247490944432981216054398372934481161258219360620937299677642560259966577075291298036025282648372123750865378966518821073350908409601958484709195747831264527866710569417936666027293875367998391968521114346708734142207971031725616723470817558020581157998359774796292609256835443556506876305293195710607015880535068140204271685266308252781430679344720563968658152272347722230658840088240874121493832318842217551294017985142153589596016969935542527122654486614964077988644000587874480000174942227478546417649884183387082422727215028395082934134360109214894355438998626886076317195201708678071527956297800123642920740569064644737421019616869827732732532819782729207020202588210963783712759850586364469352551669750776962647827271133300169738747162289725196736657377912480691772601600060429519398524730120660381292038202149036652700257422210277983848431038762933762169800034083122105938182417109075896741484051311298003459839645328522968055246185582047368400959287114628385091195834878158622081880307104244371648420938546539773378385916472387300244477613671130390724291147579832054032701307928881560925601692101554396998217664746976130849203870327369493069416718783384965855945012385187027399187663163634301911220507507459802479626647205976719104659064027838839917021813395201854065351440101135247088959781914802586179105550142030217827310125948017349765611014330774099171382732387382395604941936400429161580947195755019655791814929445575530191524292211338010085644328527024695458238181529158524586717583499991571771633859874446897659097240371271669502270060789950186877060334275526530541937707833730479747892795594269046707408938865176663876156452897858997267876847670562049212294495631942353228657479867879022753987383150988198405608470129554148473021373618383978266691710743329746672105970884860150049065260853099188532201838488067238683356875113749204761526456113513897948889802955647520405550090098075915619345716824908910391143066411239707136131164941630769371805830260843112797314584084456709100508022102066073370859407343748087060401757049539485676618917146663088929148335611155539710934371180250489839680284796134011842898506020540231846931914119613238012951632471828275198856774811157708428656488992605400922253341124735859586572913847111534626522903065988406731332940894780864819099482646539951370299889116296499765991226488331310473214253176742272094860372440143189904661000307829265009901254494888427898269108196962947640466573391594510586396859754160618546076135120636829047343127876627632674519824084852698406405473529483093395827400270325398111060562520887182919082191279235778477082770211051440967007091604357460793280024367700970249843038889452110498892609122252921574285564184329918218272301924830143760540610176357467711539753656012313088273926268305352094024477880395415057694689983273516910521764576690300690667907019244498897932757934217316828858523342959401654957713714665065852168442866699912044671781756539142401859392291235938298909908952773285738241912398179304480710217569490079251643361934251631874430472719001434973765963432985447237650104569558785338206714418481759599548452969747349852995036170049365613044166089305997118894033649729058660584694476234291583193401160984759429991674090394220435835324030119095111749264314155914338619318482876828624042829713262114780423422600531341980020670321952003519767854429712248604236631312701576315096380966895757418595422206237198905555577347864703583893649320909804825230674896880091883216314532649631475423335282198447446654019417914395756863820306754450328592508114732168339665238806877268329187721316838205533359121762220413097932583367251795598954498610921384305845517282296371943067261518528825464939722348214547599945848248065964897566950417938429326942706302985000536349529346614643094217332588707038185398649660704358014673310918745059199265200418825801164176285271705023280884047416145745237734334370348108448643935290136688222642199419253499109402308016149276356259667029956434036306142596787133723696803845910854836809088586258735465742960382666852505427017764595772739352826892241844897721945615920098640187002982327265113858020251991618925190698064068257551812556697258469046435504999505937491508601490927225700669501740167615802170420572567174843143651281699656849400565523521505324988235880880043363489618871271932310960773087251673885909839543034111912266842854184866292792495453042475308302092635635613811684081914634122178514800998097599877358772745299475328440005056996994084578271798804401912679831494938147658360607855370645042525575656644679699496005009552696928796243405663214855531579327671751822255169365977750100492988069906164976788359612656992713702917845365805137687776803525930754534345991767512031009674789439018156477592695927625013332940315630773613484070584288453555832422918447616369469655046728875796722047367932592785020325142762172071093415559548899955133796197137199887951911357544107173136064057372330636889558133310654859743316635506535682428031598008069074494059105882115327791570101400080125703392949607796175164507120609164073785561799702535255855542585719843157061936266265489076854421456852441436723706240421943468374766662723390678619128691895304465028779749512334427781651418460263799743277919284393417595304822651185242039511409931055186602150662224291941722600272751894174960453816211033510470403765224712787201764470129841312504090467172531956215958122655340054481571975529437543683245939067060078610604821773775677118933899358727486573841429833702695844191486372227775212004208472420819749008541303486570036173768359664142782215477810469242589886140880399297283562210184478332551957197362865244392411220586525151324279153208404731947650211979886735302476516831141375012403937107475910587376196364882799335754294314558507498015422911200679842070372586706005294419712157363630295491973916194123353144036137804975448480534774000861333680635594293748974760702805944351199685832352860322954383904732884539114878395318461294633764515648262835693896533107451818608040254903937332509612504749291057087081807735616142714659621687581344824986021951470609246760122964277787658882568739784854431075972802691621057344429717803644541550539457144961553401587984385127940105576753846982554295689688938019153755360407559965721159448937294787872741649536984644643351157307123844757480429720449402897190446871102592100015716714310509624238672695650377500413033363097100716061711786731368959923202438689845405524151958990835393643081300048613741810069534069336555555224896320636308345225156071693999697161030923993839222857912656335508921997648826434365548206780241400028644039928690632565305216890562302998742130978251840621572942796756950971162190321603473920849422614913041313085838277995481273878619121177756965705360834855820171249462894144880230763526359373070112658747415058574163337631922590341312486915897091058686025349432530868789600067472404472442050730335984827807174667425764078334347792759413623300959354230908036995173308018895337224712233115468292185487165551130518109352712081767636927826477787170586098424534381657838723392869352670462996607137697967839487170353920770739263007170006272150200184677850281395356288390334082192284721344070782078963857419374928786982937746473031419407482009601000906049263820589080311167174646247582611531459180249702848666504302950358979705198352190974780428213991982828757807196753702946062640659439602322598062408581945931532958395781369657730070008355625494284563833071771195823981539328300837874036605541871667809538989975588253808608063781605071683943847664032954371091628697875328404707498523977443102768569012693420009376149285257018164087940755579591423683277127490434238474623620456938025302290410775563673155160221471210088123703852762681775777220872699410871594239171123585753823870822457288239072781238914961267236000572096866429310692242637078298581053346470921095855547113903071018074791236755819128956759203548466741115407431749051838597733360105035801174868460403688701891638670058024162927247790352569388569054572794586046847190422279585173367118485030122724775702272925139849624507903862160119919522474234245748331042228569643502276504079608557824455438533650162724567944658456024668576823344639639254679125113109724170567438221035906741486943434287655168540855653428042748213681894196042708754910206495124527617415707637724695917475775869306753671584775396910819138885830368312729982299855173586882519122497587720013386141007013860141639411065272983207615650866210976863858689752838571369304415906565325966844609656143563913566350995948717996678543192110413369640391881259875059183292330745690990947830724364247658994070554399646063234650294726763820457656662682725753492831551945029227023475011293607254923355551177101586795659108382387133288136713670818983146491537849927744809781870604590320032782328603140242600398834827330003823169090723903131530132529445802701290662234091715819501071681184136723870296827028823965774085151366846103823238646299711355656691179525922408993017034638803885249398786274543477974150594431057557412001067062918566021146062271361313751338833510007444626653138307049351954938894391908578282487606369596397723612657258974229337186254955058698169367868833857236197158439012553989739031262305947391562481300765686211882048918935575006947763399399371148735515287851112639242973520787753306530706902675019298748315073775982311964457433603703085842801300306721241091612803575312416180408615675601918984185478200178757157762365006279754979850130568581495688428908534323161442646201994754108186995976065283956700866222628897342239910851690764591311591529822115740148321945748470726701339437899795595864855177497262730891526292794264682948982649444227956333855232952375553010150663933934986165647083656219930464871981226881973674140963779825548122551370967866921929963757572469664741691232254117845959688109700208392126200621975649683853683258064407781016479917076817710648043812027384833314250654812057281571600936224728255640303762759247074654220776776234720970550424612064179713973000780873581244460867699685035751424751121558019671258224855074695981284417073608249197234439531351218891685903130923694971143255431230417392502870459078462716966239736021059572936832638883369582411735977851017233372582202619692941992111582776561678960567548239107315535950623669142231429897998884971765046824473752905747565216142197164954834984693821768816403496305324054004959018072473816368908885685060119479740887884163130120085717131002453478761243587512339449237904933651862141591179031934222398714926431866583513416633656792301457169862132192405999550068699815647380407591700483049454196450632288607988447586614868430187142478662662286247421216512740751512148184001739802048391411406942805913755644892275391261619863214915852545511247445330699488676942936017725575507811665868495587121699894680856987108686771332902179798532623204745176752428921797126511772660944154438206319236409851477630025976191926311783248857856481676995079445029444965373348954642353654777149606701310880077860338501289981740847618751913845372304571422860004413476147625849822005174130125187921624299185933093944331166668837040007247232090725885361577091778530455484451599243813946453660116968203604971551707593826244150031773582578288728867378053483481074604523723389093441396940222847902809956510872590161371677867190160719923343693378868287891716949886022512092241173644112018453175822704560844798031946065160015887242488819649193697372759080835637483932533893566926502514573799272433017000562957056759044817650374427025320775352223586122826395231045554771405080200446792703045048861640603102117612261704642850485106546467461537096590015740583863533069920708121673390858288114811369194063718053283674396171730522732827329036777468161456811466730167453037328009446533955381507445407009337116019444694574308450911024244027358231783973522455584669150316325125038780598459831384751777779082652935753360888099634900085221371035269281661403259292834141230270359386838529606940426878710663232628202125982772836742795661202791676984904567945514306060196325305113539601582680769085136262628681483077579055313206700086964545724241694607852716421041015946165729849082011703985308731974544007676182265583132977627733476428719960619190124861229149211013894289406592295663227737391780113226967188611580095359453674964423339630118920017589517805088172326768896564258118258120643845973896289367669141736391610339640473340532209420793385598507499436317795790390079264108167384306038874072407421195854091509853158745683266962306830022799515500835626045650422298992461228401843609675963365147979315473899317752582465974784418665140266103305311135652138120128394812943116318046974950981718571768979558517065777326424754647628409254269638825675357354624246334247063745121812087954572981722675050837313440341245719309403322108683775481250814892181555541528002016943751566361407255439427347300563056892924287979250948278320099979058640241604432767414129121681374020366584962014848122378116643561403170651697295662948449150040843129369915607184844809848314467807811325713798803978326967432933273006613630391550164497567067369290531816376674813267336779913913460142641204429705322239041248219766079110626358417094453861747039697667855298082978959211506926161164851865041773593180954042277970240969576192810238615696774247055978121919675246965663502243731761176245610212502392756510655926359034452133870855613169090415812764028931349463189512192336273024386470324562579226031387234806729951946642156698224294428129067873140328548521270040745146395358571903578884287814667002482872335687729616890536600692859945545825702764488007364975210252545958429030915516077749942948541617504415811364736585494149291643706173876741861198080756723055172093311886737217409840516230797955505553990117248787658739186703219634081038564238516508029812372385360929064595084629463105367334257642133063344920563226219294830203211440824782522107478514284423050488228375393557797413963334067907506045836057932066838447615155638556529022818839320519687444063097490196823610061289703740755792313814980123381511555177991778646009834619574938529221754539967980342832074696018522079969730504839401899056482677505322070546657405711960683105900445926778545655145782711011014283658197846987213160412182937857079745020332888006153557466503242074245718624231777912656405268333119255264138356084676663491882752105720521038118064624897889890954109379639707047418584797734589146868995540517999419664411775403331564516040300903906798495654383810071134409310040017388686269633147938884178795068902123829953722271889051178749462435681946753703940836087127272437673124020049346383908805243247074265697760906923652512926353317879752660518893127710589385729723640366061122510343013319248441135031920683387614614208209480481948757887102904653405734042270662197282154965212807036727395355302019759122491764188783744238093793840381460848439232506660492645060501848811792763056127956953536837426392658056319020375253972529463950008178474136316873192844199195338840887847660453839275622389107737273252900512747725053386827527068396254160367841540508589817726853269053773562568197885137635325622513825897686233841808760413843582078412831947159317866486224348221044913096178385643499157020664230561418948134417583249604931835513922967104840577013259043237510067152835263025209695144906626321337100862922380365535461228369390468899514318998050576226803254545635541447584795204645262015895481449996852702121314646301903359459226504265328685638029913829588099519729510191034986955647268324373574709485479520128244362209342717502394294217277889357770303322430293292966230056264208641472688573517246910043466086685378308278023770879721371158532847575670172778110677765855947930902714143938391811072008770433865314076494191176603551130730471884252404758671990846527443440942367232075780540826022150175253876698419456568001267747877856422799234809330165741666051924235177039114351552046145072369835402313147051164036857641658597862699916492532697869094411793134392901190514153300289637360050453219793723669961468382445892074388086384243305280701095193860706719644192509396028503547970609695715371310892948478255547420565634761948869203823579530609461541162673121721100731553849887209411459684966115062989055486970447819472792780234516879205719101319356989659766987033441577670851563540036878761889596256605487349692573910900346536127800608757140293936595907882490652309786587293639371119247598429187608432464592305943917140324988735192375255070394896787928292963287337454345522703572074536585365977488924997269019002718321574670822796236309417718659859826799522134088832767021468307667279973255864950302374882203530585240503516945593832657753599355518766970349193605984893810581433282348388691462482395195495128872987195630213016166972363098152230584595263828574092228706670188167015829959304168610627529827697961354438588492298717375295896029229624749307569466451710069804871108734117727010283280500977561879985016271522888943628891090447826458981762517479389470003231697715785285410914432586833601779129127948482741868187443749121146440390475799831980159082540167986020564659965243664238012885860181950790045189625837753865733219568246257024802327839234597543110882827643278132062766335417929267358265267043735660389979569749220638776679234936634144499343132048148013365341110458270249531180766529041548960433770099132122230031045852413096916563407078101810633331618341598115541025254919295151828290281105271332226910355240470864496013409486312818803058277004547896941114324480300813228696561099376683638851359774937216265140176146593079079678100296390731381738269871259911980451377237741056486709124396881466226235381763031630477950562888376713639875253380921104403982021296174879439092232243729337164579219769011733884452672475814859059179530216311349750755971515026581735134108022439513330679993802382992109050880565923957417894004057192043196134381753446952662213941349233172292063193565791177627720797060484858354348280218609993919846785476515062884467230288405878730602253236612218191707167292048569024495415605296772410954357522476532162501379605491680400389817429340957668456604403528677811147096409050967075022801168246116223176325093780899464225169076291608080746977011544334036883948910576099313525799544247285580885810532241296093917164378092733071642778782079514930241462936464439514226437688581118655478220039428897711283069284694225305091287497937040012933739730400003075328059470351954841159878373149896363140628550386807840733035045212762729543684781354380751058314042243368187003917049820133064490011750365187232172170526165528084659614078152825428057640603212895755259427375059076737180594877417495129941095928834982907997474246606624404653872933096247748115528442843498775827737957292088045007294919035739156717308810998490060486715590624313027825347764505005418574950108555524441011317326116844647943837189162815219341496803820725308130360709902864583404004491634562506963121092592951369018010210816378106072410833343206928576107487576447021445301401226982191217126851833886948833849740651953637679745671117632419104008517639071355856450500508238032126609902124546880951951260873091444809773186791058268005808165309455242701058987006870180882619822714578252796182012825355370861966091067937449476410313419015279086343939250349743414964617157075030527717976432002143639306842046633875355299636612845111443797875306552937664134166511751101129485887741274042046584289161647247051847469115657731476974938001647128943749008238350712057318070289363588318392581266000670986439677024005348053758391473380660567010335645563034321389665178226506990239874110852634661842496494114098964927580289319873275764899113658648702673088690455025891547422536030452254573606443386124774383809506809072035144312979829941378584236920157169738365001685784744804007349512274636396392123691050323794996718289756032858417397545108379804051977505071837476763072386359192768187259647548716055381405767289481637500084159765505550517928933343987278208076283937342606868583134672495334026212868912920206138497024408629427759656974557318868330918976864768074620501087555623749752251428219067828546201322205787570548984737582192380723134166534465028977882455551103889981214107987142579516057604003874516797413858425225973860269263613921125218914516997931002987280603815655331008669380445899409464326530732474314481149424898233820755647045289710779114056523808259226255335330274774724880919963410364577972292666780239277591045679584949677373173250750208311232364598860944972093019425848355874432758448761386707206871697127673644379583064074263982317584676520447036284551452274068618752836056692579235939173519555694883288220353500717426013445151018974543842238425764388915369051264312739276253148820324015110381932503400554230505416777751086363175404407626097917688692442632448412842467838774328451790427754152476837758408139911206845126954256948494197624412741306806872680369237974745882782775637724808733022347515717409476636001842104782123189031127395276466885662716215572580798576134610119279144689809599478218955048397248530864763236561962296261333306760575171841533174213484762629195613962382729985694742037824313381066088679530380828106407858721632087448532011313754903512393170455479630950183314790387361983353884029679426993553883607910929896491937096318379730091530177273730948992308295589179476423258302754475612618715614665842963506170338831107786360776248370102927891986307687086667414248381248635622475152666100829359652405236883308065578733078115589991906050688538122396470727110753342134544808391413438310764024710047020493585025900650656525334166781590007590260538191635899143550002712975419829380276251550953113169534202096852046190688117734988450995075813382291623967035677841451958504962577813187770846269379079520453565917612398734006646526509566269548627859026379640364469036954738599339320993515737456174228218823658802531862613655853046934962775048829668208790136568193573766511911939047754463942625511188872503224813696151856920929155025362698322903514549253896557880541369275239045038493920966065335537252401825969294432766113050192049991585794751178731640113033857106789679595907138712274791463793260301741064400361129993368894982331733325269374919779241639549065704720402433843382837850206010958610513077994232989663342112473064270622439775628603288949635797383154158907152405846895023599120343038150841271330484488657994059638185729581890717642022080561728648178972134118941825587917361114312042953839374094152677661754037190640972289463377844632128276189153034543541766818547325469031787643483473848310048275420775105953654946157129002949480999405176712931282627006888333333392008309941602710395831183844580047778357620077030890216436337386301269382290976287268396554611545451425148954073301301010213475517578618238576721288720896552241968252146264481519185133164139160446930607305535772545465141042953410149817942325767398026378454732120787552467656963308004566699844571088098299935936972612849954499849777110903193863317230015024647985610929279417909606279584999181566207964200746423503528817637424298672404299619579128050193349571996567878890525583901569839678894959878024997087552630403444696400183519236708017927546919599375550784291327624262915590456793149642415718759607298999627967458682448859852618842174288547188009405576052589569556824287697353006256706460338221393627364956757091687977147509855832806992367887425218744770223715042574381086323632615158008014831360175715259505488353564709830454255534677503751201911326058591082116895109356516391397722940587200672169313006606819355610550619444720812142657279733090845651682193375540139252594288936177664640733775921600365302485133496721348330758464941584423199134394530607845943902596678491817940205231953327212131335894829262802801804225997010408979793630223682525420230367128115681730684341256980272184760433279514373906818766678440821216730181620925576266608591795962329412288901313077235452438758781953132191434193332113229924448529866238222634889967137002676705201319161687479209254528487091389662885536321796447809987715553528053829842775113670299106839868881674157472319577713429205131930756832281616186177077720583725536084782186437334467741498279871584201624065539013493601100622745255984840677034509306686162211840165628279028942458957613511939440046803448511901902552531160869866670380442425001748901793746653065001680965762745493458536588792715836957347217873545433069957606649413955971688421430399507127045755946005519897555819125919551641485895207068652082795035466796650212728583061040014169012774759691830413050435249270812303684426600724889770952095476940638407917089823506287923653310300443652377603999239796533035829188411832936391450090373551211382979275248290556841786983904080962572065751273476983670372342808269492889502502456981927628678793537001294202360978767825272287178292689128913155446355848766796228619618768007328284124021777911259835392922198323245783962524899680562512333986325457656664722123587159674799163208191981385637238824965150890831975499513806799073968074798779298915929051581587836223959812618108905829077977112889884619342761655216455507881823883851734964251687574760211327703913814788038072238912418417026038473893186685872948062481615008117595045124623082235209104254780828371132685699013785009877271555167084434296616451767374684929763774791081850350631769256481216361700525229342022763591019415747891193643354112062444587614505848193788994262529325704917028765522513464467694565300752487329520955672065019083516736662933198120987059923750023318511151535008327260947673365755508513041492296425503484276420638054870371486463262333313220486001360290852795409681951370813176258672004359763565803990162701205546954512892049245158750283802885012176577816183305587157522588508217347741731474475912209983024858560310692532939289435106386452334838956396281790980264686579155591173681224935191196582118581985600912365481781245419423178485580456371585256046432011885682790723484042636059886700782559068654895126145644720933416198704102725377776146758199011476286153383695604642716357373898249906322135544679359973178356069523643636956423512044750310092915799347827841980697280327579555497323437453450704845524406232936782518801231590697620454341890954438238557454367184466778057390395805104065656438438358604755849254679148154319654944579068835613033175736188635467545855109187933949534026445003146672346274651157482200472420789159228034140272514280659768248959455684782381270972144855439198931554251374476701163657648204620245815824574705137850166402313046509044756329220784438327101765634494552424046164444902188114662214423428956204203330910016560127872415033770673542847799874071444770599045282741337294521906827215981804540456372999843900894797225239425669934705671663726600587729940110425389705979439511588209554574894970175852970884004877669230969901100057537593499851612676311527723958935784688910359107251834436571351034840812403073264526261489328761141833366226209774222913747270114956116720723361517893267362834958284047987413662708406945641547333342909262340821847910697778456803628076175171213391096975348966093987425786347656042154381816126523787958934690327276373104922534217223070797742681557575448882389820127670553640656937704697950068668905218277420662498677780927412220317182422940564303844707829287095584551185967725014549528062023995804293626055721979081660374985718573417866598094962892521284578468451173818389115978259474779855285461578078737771645682452776005817016778333390763256833430399493104511997909071301250660584836241608879683844505828034158134428720689768822790072477255844643938540236958649727215930628387612900513898586414419347385894261018961807516774227053182902925112606475225074462161324739517717070124586958671529079970481438859581117650514467558808210224546163794319043401742440744740295388854116710597795832539456636036724448681986824045729757499066711558651937348123927227870300778166730515684961723913725148688837391826671094482547976267880800914789102850236746666824646938507673647319162995300261151828802292907294902705334873895686914625099917482846116505177980506674982604743299440292071465460793661419225110068385718877091866701497242626617076718243473430453455915761614438527493474901816783862789616082497978158414520294979976461108067948210511009274354264407711175399700620537982181592191779620782931176614980517491942747719673973260388493667708972572417115580860838401925157492084185555389134313450671671972251879374361807730698633998263272979517482761289576587498068422515653719628038550366558821920755650971224085785486225429366380722419032556474599319479352734874103274100243720596043653558327333669725856780973984400557907999330605170591954425088500834593264333091761004374562114058914276689519716927639162211850650771823066050851904629894798984142399749372293340463681826850358739036411181292055424548420858867220531330408330496034424135267657081803320353095155278586890032184977748216640613269806521116198569894040580621750823466607820198499747382769617717426375959218383229174230336237234850947774246851647922989769717194159673982867630272082654215243778749338163033594390334591567501275626703584876570967776758074242921751979809997989661298301579679110366110117470369910864870762811434526517834079550275234632401108458650812487574009745771673952094752067480936946407769018079580995169754134413080636638705870632443558234071622527285163305930903303894683566170736973784957427298487182565567781762613098305900200398776241896459622708270365993571843137792247941152647425801119928328868506087966396990875441617057206350239221877834211758290879558280500034695549523052194355715964738904247380478539638807128097159687840685248647980372144657485116094858271148503834387115506960337324038173707663339632208664428572196293156404307862260135637281907603122895180888884685193684708474983364434777486044699413810887125231932565694233544689632341199015557353993667326825635111674160647647600296801632083365543552723467517469337323261393650093485547092322867217372703096548723511407940320212135048555273559138957877352726657487262830703200068324997609623979849379131878705249557458455878948735412134265176558952254357002608202004287089210465639070793893247568835449872478396394925623133282515865844744549211940706155980320094075539211606905113992487424925461879647812133885175348308928500419582004018974224359629688954765114631355628953735320901869224917444811305516261478954202233032683785362136527839789475143902087371875809687204626960081577527008569964140181592907152520126066249458645727801598735646641453702741312469665025045713729367209294100419041239847867367188678515230304352248537732980042175517890804529716776038100625115209437141586888772631481308708246333634593120153140603260510751425340842429496614519261739883082410555615759865008853627365432498973011491816916073427081362432223898760826593069373177406235370305143236096760317442407334561239109267457800346941483697645361194704997026524921414934229872530868527530381665172520424717473939786778944844385272924044089026348425087541697344494319859580118451837949880484695227564106580205642379234735560733725213655420254536681884191454681184776242026350701966133495015025521610644937392771661457125214078511714638688704277100678654345788488390692677515129082584200751483810886505583345029335973955129091776722027794744353884402200216888783924899954814213559587969874690919684552387240721798571980341282476024838810433024815750716671340504739240871327886539036920840984338255861765071801106657733686354666818357874295575653289886948142209352410119087412931613235378349767079937567957887043211023414453841117765869193047964876898358056250889091449907335245506680750560262851833969515736855714096380773761927764718545310837505974603699745223460660822744319673193970656860510647111303613621519779833367531360209240780245806404093255898323121340263968395829016862895825213620366678696866516082957842477597946879738094276174763309147657737431918113458910231231305505768314705891391242893514220734073338110783263101768894464606767313665355796684309718636744338064770819079605655910222574919759254606212563172568363306272063303172191669500637044000759366138538621360283076478425868589514321600897328668348890666717747510572314934897618795851757617559839824470935778036508375373269636947758501392902145599950823372934742015156176836672126414983811125787414625664624726172914282941244762897341154712113393763976363763915007139701359705248549954644386038736636360463913780896080404776856235903970038080794799685191616152225514061377919335187601444831380960619867222937067891300984328632070639542905638100069052175431449417067978275071274848496646254492992914610403159065682433467892251087565557183953195481127237812859311391342776954907118804860838333143177171257858911034064966986504966288393744253298108460083907300495142791582667789298434098983791861843977117378420097067355253874227173877563540275402164584448083134958627360082567318547038193139276956050437576390476962506786771118186712397028115548991992879521147547038435129462675936768545054206812963158996397837447254829785652165388223498767872364948212259255710686747897326723228245876741695399626738857897298868353040184493542437420013496328302435230775413549700353770105822966575999778834800923110457205177044839441431217396871420427028368828725604094597922612515249380172492600740471944750168772101023760267664293482990633940977587845270104815943586681085541635128367914495121116684357158124598249032580794552318226029625204710459209561440175663964105880150281197100726816493266326041185896862468378817990066130640481860653281799904039739336583528509665826725794771814934434967210662296098213746941030902779271250797337317423285312485180342199971504140735257179032261623354267976972769579493173045953671306858000031628828790421171334270270959979745887011471354345564394690664158587887314640833612627721843397217409317023447124456941863321604672586715646789328755541773067097781406432438745274656271534700694124863248745370466098144743069167743408470662664610904422322637971507765379055034779209568780960276791233299525103540243588307026885565587761441797407957000534551085572316545925426339630935983826489732537385573789608480505157850477816685970856530326467106449144178908667224857175833249338796336686647990231687344056713359780900161043550603480748815349536977668360937744106737988356353003138789405383366086253643414771511016983387106345453272696949145411765652948694383720345779333238145547704385796201556709369838741639426623002937425501783650918724836997937137364387540276722800405494526987518773315776366157282368607497685481238342336803708187112288097107596949424535397408916983264638702255985826356091519402035900827557037540047614214244464700518054811295326601733676269156941603204731264188424560282580180593186749726183269737661822367439317624702620492286563691806594167076059064275152135137335645574781673794930470961691607999362364201039578750434243715163872041498586802004587202397834644509846986735450965414503439111453734053531996425552654614618960605369591112422249261037304924682434935057794421838302804773938692204411418542241151986404837457121371448128352967969491770562161818760580802212876478539574860437358304816340277470520746952111660613303520415915735748333453936691595386657761095781245176183244977083509625475620468952595759220106403161161648020574986903601192938592691132124506880111281830918187624990966637948583593055132206137805322024481479089524441174129149225581036448634025596172651596567233545946374657740731117731448115013800711165849738848835123568126091571979472333550682096269041759559063142090810206583720957256997586243195302988544978180819572914612650355709657156283993343683215268745401053761855001189387217180265323259185761132279513437960656882628170436630530037430648029752969161115438624516289560323031651784846000928304967751844470257994271518109200157099403883012133347862832964166058499150741903740056337821954656014779339592091051344581678286136398312626214398051686237617144307587394862115697900818551588717449380832764156916557511710566170657390029640747075034401414192749138580444249737756096597929952454585354674464596784519808658984252118077701488968952095377871042814956727614996449905367328187214930367307202028980918070625696409662002248061731277410772980707145603731296949451214089218377492210477668620199068571173503732795525703898001996446206609319157791385943321944728167286478515264331999903624882890663758134607405223046342223068364908475612772430240203898265356951396052930859421898851375949239887469726958480820725653940213809414191069051668972615735986670628555210771954505361986747216908739017692596287799700028636024761915722907796237175705055060053204021285785323851816711093743932201538410120393513595161085288289156961924513761156275571733095504255158521298545024214284833425052193378399573732169442251426427982953977237979651579272440113238171353997873622937169051969790320688442935443947984918548181296348202190237179097548638166082573809348033769394751981736223781899482874737192059269466073120810744799563896692311495543073693326602000423404355662421306362479677408342879374188122525742109934650485610725541238755531460370846883063087664395912396283855087639537027424794072365332825800990163357953685793148344772933274528826913054203668335686205751248272473942019132865197717455383113366192473606164140605405728554912961458902496327189280555385451663714683900480694903891839506135708443639086641337083813541746006027439156822981430604909459360172665336484426904323031677656751231356586322215057794572839109112175316712033411679015374641274903994867191627248678827535180522995425127638841888183864209439682340147733581390205062075836520440962285873434114537783862364423574305530023478226657648302991725519349746331766184674964457581042826417833478260292957213346495792797947141236034714555492172879126916373522678466627065819738700460310755036003212984518278287706817066448972301264286294693907850265269302762873120159849034606667181238738126712128217019875632677337909811993216626184491007992883719922799676818631612268234222581229989891628867126508193611626940789949942383631129731275124701611658224222357721297246036290132425682662321446695580715800125651182902667720684461575877852448814074637839127191099975082246928875386539392873229790936332945157741972097553972887452752046886932899795865621777650480147076326073078804042289575276723366033227937673366307174240105230767197822651342848240371936383477963783804879077173209901449792669413328523262842253629619499921352203608499283963560818278577279307366851769651354675268209985978028005131144319856262762425609870740705960692942327284552655940221469061768883553890145453437649209497341068775956172470386268498499985309541465094651274820639761197066276350403100127416895045033180919925266391108122239193593834255689719665140479836088966245944660984842474995464892160412610744497615353148903686238031428796190722651082546765206907122200066883824869555183461621303842414772480162836439891946407616563032681774153646624175318567903400500019045417060965057539597952780832535341539130598610624300441063624500441032255244714456159645245957872688498053916353639534989376219436724497036515418487338039540990693590146574631078170366861494822836687182205009928445194481269235829024748725893386815269200582373222668451634652136240214764424562130436985854256239656094975223969693703680428374847664369346094819973302173188785749812375225028973712157348090449647629970909832244554797320442960028256499685165014614545894591074387223644909518743891909978421640722117491002977665374811347318098348806682200499883120469794553124414960646991066367012132128919476085868871280300655789907173478104161657031405430309473229669278925592168229161448626147563066766593290985583201748176594362898957281628905832218535603271372586460170255522425909689254321502976080876349689140822054256986188211050925294836142188175780020036507351898452151544305563203009343495598261213937254885288108061959691882849498308605275874216199139496551702666857186433384506664874958170839372460797921967949545128633293581234297825632665572182076841748946202478685513111345517986748018631492404055771844266084036704675494332098623735636756735878330527378905484998616464654129403183543088421803970215808207871091556941297051454031121771293961030402197619344981276635820071189605892964337395568262361016105678945461362227935505601965912255464179567265436320533259306774952070656976362811553458731689249814737102972001428961088107529262486435670466671759440240428871096765155647567797412565137707366609156093668731019360827587000557520540229359725329328875141387561554989671404380709264713812459049513739670737325550176874353927567904818740366123488535511506379363427060656279604437466667998370159811575354228621200951379448424368753711121228752868118830877553541964974842376164666115523995006123900301429991852517615584607651237397146670458468114586991078484566458489078140715597434560624277993115211468714671537283133133851948571272975595054451028708081956063815584623443683862903920810865041490574872670897230545028170053663217665398317432465649735868989204579397053355621977624021696732634734718595350207227746411829291767822074846316077755741163754448861706652350021725448033925287458869027895269251618255637045868614775331851185926166399817149841859583408749714821481382730891820363251787784170869354085809014569912469184280128474898234008093427068026610380733777983091874171370132158872875000438738604952848567428902797354226569975335986827557700616103185155433973032747740272519922287400670777028306061885036231744612613590740187072316254792339762971550438323843811860313530622303476932350348786612187101481187121279415273291289814212311454134463324894094662174644524663189710924815874015307471165395593689808319263329269933504884676633747623707148894124174846654172371120646838086687374936848130321125208363918362042576861835241707651134045050409505191751648111899198566281858534469779435475361261071190628969986875516631391321395019807262552667346215380696659271549610444496903725190457368176059045284489946647631519834998622039209752700555669584636199213661278678534145251160152278318644109414555005479418816362186578767837573884942546736284145544475631923347305878652576467754032030298796380732426002452907930974183120966652573990017614476354597691347038982520811510730371138426741463756020561376260205496401739214483457987455076604196231001431320546621585789725452274409064485028808672504024427506088788838314280834139665111150566322270863738568953404958621031086562706833768729132075223614281218732303442434217802771503343066443452082713485926459491945319901621382452873498357962485944585814555824422770422674613471478131753531759941521975492051709646687777603078830234145536415812697707085918723718336199201449012904928219165441434080367840486936623593283224118359224180631514830169274728241024000887115119377954899562022248475514232386868033775685583033402694292916819239653679672571988867993953757918646700556099440262516861537144306997037562950833835767568206831942369148733111047968251149379860822668157649670880102914626977251898513455061533690921675172436850089927246836925578124633321555434296112008549322567923462291658914473872925471669011930079285144676614039776638999222407218126000244782012346389182388774237965340981604398397727117565107662642838349904615353577987939618075270552111008976074670127360477472096807637221899620162856112575889864506934713605485867683192298811068719778977834120081262590567504435343812698193759945252781290453400337405995974901803087597770029901078410026875370743194939547165055100991118030036192722318939942895632294567569337572838642277084113614160652944099911533206360702822289409838209226713269766830877783146278067931494692178743411508085924436916953269318402781685105303083584558654286744183516281110420610360870663376427916539584929292531243557846481866279296414043403916265876881837988079412922753877713264952234894604771578651268739180650082085628088912245562531926607240430133693444011021297490610503638585693556127025224688112954483013690133245726641402620154501629167799596418609958389771975537499071805806361945921117743345025279806131572793359446159593242168738301771944717948736327101116464039669041902483044007335449827504899776141920707122970869962209095755254566554133182577097098939328748914869815692438624743566508102851522429216625231974795614205882530002604048358157220309942891263200171459752440741708584264702596866845089943703802127212998557617810234279988512840502462801049108588121171199737950999753811962867619509400587039151621271716920665744591601635109447568160037710322030599712973411070073015007120707947187832262306092645792290259101180552901166875587679660995890171129089003164298062999302947643143873475569528113907766163007714765241562527134354879566845067643775123496339557214594704722318951928258236898042946644663733207951310816127273327471498904118826506688697564170803607815939738632660830346485587992179922270228080680729653197229491687704290498189131265670100038185009900277236599100476926490257178415558347508473439116931579321389672644647939714783366139775890580707806449736437061902326407133697951058093196858460759779006670235501485720975161246978484355342425193147099849822940596344760677238505625609795691190662009045547310476970322855938774276899549675820358051715348957954030363446879253678909992089502981632021388828071548649734355954155419332290313938553174699252605008214392290604642303849803180117298574913226222542194059234615332898112881245223557408230738311524448318579068860932146007871320441356420424759153735847394534118023687439409780832298230051363791076575855020143496254056757294594374429274142704206353137960571811751074700638337547669985111298407651848599136073519492634024218511987151551429125334433362588711828639848939879052656376522798884143786433258516540729704554505552222922203785631056281953074868493572150833838154330323470577179600326855942445924955056004650856231528085122284813405407794659987633954824932306660166518356430628604903826169889854316378334965879826864842217361862816585356289997783062836109024779631154480550979539771829507689499598125197988706041783226855434751630346478510475083154719791222530442268969687872518259901525902878512205235822338529515376090283890066165215390889652853016200596822746846645048091701933047944529381814889686718239540447700762521653986007504956087470721952535272041118396649191905888145605259930119833273231219019685709492432955313751532992278799167105131618785554356894726133184141656511583889292384358674482537966299958916967099970023225639649866005136927118153959813409589627830621314743973515930440136491683854908760501076661080294145901456459854936728235783574494833139459017085355909278670958433020400718714231713977559866415051507974399132889954294595436716064431136266334340777158191892573688359403781280146403810764511517272390655346366890264316376690305520186421375922852550171916054199571877950580510642416391669825718287058112308910788598788333964203024288190463017668324858313492414892721661560243406259156404268482569064339719780102296541529522735688715105410718354095543426348935044875888631055924946084367949850586239204453410127350915292314863486048794707959761520960321232153868123666410930841241569438927188400623784403347603306484427766875255421137145965826790056915685326198774969965258681799714278011621470812341615852294229424836482047014423086210797497798471013421226819627902129908995623275420667002355576381856232532835133859390283574847989954364881525736477876544520485831758100660948353329319304265019228390436287075546057199559467937001639063522953084223019857122310382567657950880003881566389156317352517862043374612626303353046152785052924737782097107749679466711351209983284831189567668622994605945766831102058952755108168384345403369166549651217272677871408707096619072307047084187926077614949189344483166683524164302332229137105037247387188175092817842835828961510748339315765212386039466075913945535746287171389950133960485246984284220802971361874048965005035757649974687525152327837080770916379995922344961971579139029495162775269808385804175218653987256742247495983184720374332129204903314077558568595718742925537760206602065243425155769798068083240641725035627020334598639354417331372867424441736791529519480489357826503106195184610074448183135923715291683823508327154531772915192482230803718127341472555431463681077732642557713696154035365222742600950438546717826433056033811801891531732997229822038853410699311477563280321608669820102976576084341324403416158731962116738976445395914339827410939156729036125778277278397267564282549026095304149352281475594671075797297487243794203068231599109765318904704017838600294144182978200294108876477377575115865432813036067580060505163504787010474028713716055977570058718993326556660766564786517645820342783916644585510438635218059562518057167114087968108541453495345899390547247257485914938649783410192281304564066517341177680465983582026805455389148171850460915669644689384029053331577934979260467606806948711450996713869498627134828422557110000540883205369410051562886525892191252789751029364005833299815448468896017836626401865805271203086964695402143933243547342425121472104606176721637208050075472236893632386394442178709566732131659922667640168993207480875475365609139581072257093897223277456057374419120136066029104934898212801870387188176696647626237855825485989519986868452083042556289073333851733175403244657427528175392214016647514447405564788804994959924866537434269646170336794287988568969729163067967450651779031422336490879137694865520583017625266448748675206149548435526347603557025991665807030338886396622071403394720082004505403068122466533881941892418490989019588222326912124439259414633109369173643731297149446397273190702576129675844176883978987973675619647894057801776177383392799309730289218632288494061801412526881620272482262456254665198756830275323272919565884592180420005317746094944925858980852066137386034402070727155907659087243685055412526330498057247576176703293007175249121931564613913797058641407869162052786861075478107549489745234440386782503726550281517386589388589534976440455620131373378952279950712102860142512722292446669776873896639424724728963245249139034793113449654491534375775283832131920403077175238053161664522844913108585287337238420558915128563195448897948687984027702746300054334617244048311214968048828983261277356420354331405604807288152187153876597205190276562263080330051666291859484970427915754480677676914022264560033769553229048927999023722360426927673842278141446398200158900169466421049494533094059763571315931884700520942163295184205321487681522638649187792438938652777011261721083818413824259290977201535903719873507786420351451573958924716976159996244690514643430442559600478606047150538130980469748772290187246666311568356616475105994983447563709098607926038244550109513710609890055285627123575005120686184728926136132636331647542287488949366712088792208429091862839860516795421048927990141130890629759194922126836988601703186561487587318879055810858174660539070198912263519721534727523094899550813843933658798515385370238506757091417692616050301268089939268944726091966902872731529490539609275898026546660789800271871551162367735011844557978586203382206362665816880878956117851939646489203742764179013461362133162181314566985233821117704514886541899247319820257095902713889222535057434524695020457770100847978600090913686158774436328260354161809115114716180281583496171016962374483940047657121217874502544139642024717691817041118485194682723905960529641883133783152227228050292231549879818281995214714859855162377852406426510116340556678221329252024687237078719161604233284861651243442709002597070250007540516000285195111349294587903069976500602290727782024261352768372161346838835491238263378724862209423153406793848731150997884563537041349185314522549355444940086449523322351213773228347701078004546160006728073665317967969093040116524785922281741757784303264579492988399858657284770817688519412329633209489627761279816187206884091209791021866866937548914353119425595937578835107151235482358144060873994414141302879333893308554395160300141864947201609224448015346627254491118008127703623733643927100758547908681458320955572046644208200046185841392189026909445420645860925930299128138561204805048961685615171892737322431447790768195279808767937377353908544514628551807958626260542664848158564091382029938716697036997097938807580672507544239758708893694810927446655006751851074766957039412120470265581740557375832101214899187072546528000028986738612924210763761379237381809055709115354234733503823429291184245756239699732160888251938463804798342272852860480269762880674512516462858936747853133906339238099064575445340131315242770338332696331729998926963681794572066258369198309604683165021278732185157841328412566405583826978643658683591035048244728846817746771817292306920343713579331451702491015546567699183400095070723167421671286612554413893539319631611551190014698572670478179380149237632550664268501080529922185895256756086926861003244045583879630424226572671181519099423293370365724796335088750553921923641480859081257434590540671323285936151827911453102732814771308213921556810778528813053819340207664194048030689780364889760065758518489357236958824886466742710665752528150497546503267675237398863756706093362680429289581223002376313009202529529573332928373515896939959300217501102373080467005014409797586006299726332709682333584025823650123937088772232303384470119411286005938149355950537314042069476654281286788252021733572689463122754334510053987553678683051679942711990932073858556880790903380552001777591947016687811577422358357954582623569514863938446185809747818136477927478836890790243560827465124898085592093500764866992302133402779839928492211612924832958159639207741026916521221071608854297272376611507996722670247653017469857513411688785538164466926551993876178284311715376984151969892196622900947680002196164501862062272376505720749540836240593357564148750938918342503414047852340439512551672117004651133057911998742408225468100442782094204957070251197621950363489965110723645560313803826321804169437462717173138841803228531490949461906203631628045783775717702601607156602774100568031177517711999134534925506428961328897431334884335893530331913623647498476175377066409097413025623974836580318351315901752395521960225513899810970094919866916984280380634434831182910347230883175412171754157514462488304661365336483657897215331232571998773329920966378447880684364468430231157832155380213137982454295106686778130101565138899915952453466746172206454801645118907056824559444510686708316830354615769390201703088545124718937718750904338054872628841383030596603461053787624737533471916480184409744177253460706408082059227655999446244666727384618197028574165317225692425660904246458204049453287131901523036605024136446409649678227155530792308589331419460179978587015134268688240303631091454808436265503769091727160519514782414374875602275835175545342936688532412283043373573942524249131469450613872401297155016607629781881679503246070014299703693491723676435951635580411989465824465025985599541656019329020659055985983007720569800706610353944356307694585125473881496618274122586854764231566124815911603257686850009476863843024515897044935198545274843938680700671008890784097378271597638675038216387816677467859268881921644009197467711031598102416684989401458285202093278997223808023329822556061001989431339116581736920423037198147296849490328322020649172072782282566551687793721038765838098677496480957619251517328143109864681329364564540455872463645029889341891021084219043138380799698641772005617225594944287616983529129479792701590993207324957316137435907159733814041565497625376126094441288514636168693573626434389732422451516724008876354781285832222353752451680493972431339941703518714056404920182363359441613726023599277032324398840564298858784281729020062522817275557533187692505475498818387334916773722785040479910824030171004983697261226931068327316127691500679034416555641979171084673855942964089167618287977443558597107957546808948679383449549142561214749660889989844672736115571230311539243135653312830196925317206125625813460391302133947527641321936847443072137477366081490170191911211906513763768979182481024673942298829360670772739166345829043107289699279919620549672435953962671710218303384812504503782822876956065969185985117087843444924560924883226785353431653981624926571679191210429752151478823991218497135207308944659812856738993212312515435905868210155254740353850540982056115702613662783082495993411921486815604017086242283063976916609011068243462575665894092945425214969707543279597642704587996182109254497077065903036113457656948245135708950373726792876775510756900384403186997899574366048189194395858159153213766665559535401904945168693971253855256777159914149110650391640820035692060703768082609487890605765346274779864947335507707584952133970256245479185447538820636055675850539820771587155340022127069998403811736454131474756633203982487164603379969818919730173361669335917042489245060407009486743196487005013319159380884325788359016325556044359175351814716405152694107093588429083689946609285385081427019011323961993136352454479018739574127850300403070359253506662510082114054102453834380875099621628370846579797291286501731196332889302308595354541375625734604314076470341178178983626850818441229119196936510822673984348485833581471025764412025393247168568647801333876575848057120367022582322747101028106770558958578881121932988477792673900930903406383025686049219651920926963309232332783084669612778176965511432304217207717398850672840116762709686297316949756696489732869997193498340704637353493275738000812255250158470360696050435099652010501293211283218708562140990495417392792090750858860592844302578693276487268737998622195537521048358234762654284506022844218063220820391030374751223022186705901539940406386702048216723292192396916679804607843993092647666012005286691575374055299514307253068376646578201610212110587063050116661800124862568184350533171077129971873825834230861228399056475352607705529919036421921942520739144347906186813006799685491752808691596589265403683150928059908836397013716875923966908228618545452729967855768274097996678796594345757573783340666990768677266888442719987480934797367440257287818789739178315739557547923476981404748446535464023194261649384616134463953471962806540684265929673636513069435860830994473304462164427514068773065435080886688337852960936235037276800206787029766924350317553129698018365806713949082194853364581206498747843597984159297553219261674043974832312111532658295721984113937228186517666877450799851618437998972249021143758494710948759194231172121034278679623263439844501734585625111004038781101769979597888844513802141152381515031440757643325687741277538140513074041312076576959124110550761333520398998600086250229855850131666251602618926489524974196065923064157230206015329563633657669413219367742840871223555715877062401454401300404136299515144621748154671200273465739476838213768255155195878785634504269938239682011294448690364673296256560887387300427129953712946371108662532924707553068633773121993956788010111829834348527499652438441373710232536318754446040926646086931880586163942685348807562184395849735954642364807831798245649724398211710236778403457438173820577512041223346431582456915057541701103048370659110935749289570768333650252700045505717944595450014269910026968670887697374909595844044967185820723212941939313431685978993341107748450096448037715587563011955091458651821729602142927375996357722635243810723162557498197092913316003608270630406278262034149584176295675061891405474484664663077326749568224476763554381296477651195382880838265837983681291073490555085788432689426672047844723979322362095458130665014546628553877968453767709657469023730266599843106525398534078657359619809003811305902919671632439075278427897126430172024268189957778250886331018380504913993006382867208778140509694518635242329249639214689496833164106973723938139925104576227219610810701024706429236330743334508250257870459297896200804234458935994740993785214376104870999640270880639612289197480465942645333391588879991440441628086084457436553534345719705060600058220910542158519984160990338285719223615677354948657785518860921047755295284872248992709488252389088148328232532291948354146562924729930625346362898743037740800620718767506686624835186955033316873907441217449522455672348366215592092849216694848391276169847581847378091035572969862485413131634006570286686544638614919033062870967609330819837530889534779977946280664088397995105790667691562535846992707031978896320681835024855392523023232010543269539839512649375746161291516965065907730232536874066893860015945973661903674483395253806846780815743480871564951090130367451014745223580770200878567496636523455570261651666664049516584406947270977289712571321779513761218289787330518481773541412150050052081981544935144978300582785914347428250490873836043476766865392000495024426232143456348852356025585596739454823578682267702942523413795736366530688566941998498567300999275889967422152413635231426746249137118258029941523534110972796656175697676237365380129516392582031323950476864248841946357270996378598319236596067092009151686285880218555673366113663945509789005340441097825011594254140718376727459972416488440370029624293061750551560190343700592273599650153968484209110140599377993487021821135191259991313345793515357808798688726351441288325022925291444460282591061788593086597337661869091955468184229272355774191801706705542824873358091573982760979972472166183965955917992138754359058588647280370630353503142434396956854385556869428472184462866940054195290920175601818164115018586171173575087403761344845321633428977364070898120241193937352114825888293629713265482539263904690410800750595599405161474307450860770842977675332214109879613091751835393573928330998946294523793395742910663676304945839568533295894366604744223398825224966099270521279964532357488152189805767178566712863511320459957968698023637219789385310700725424609175381429968351557659625206769848320156356705064443683876995394637406869445505238235612020854242439054740857917814987119139981562699751738550227637970699168050683455470935240274412533897631384508092044908496109077611133087473745508060356504875553142541610422580807146746986152003014960228473016524003370642842959701432623003257619799634603924073302819622975038241394492004862210579162496535590225099946025874265124651762091082399892763394406222677133532755365543490465800061017516078478651817694814314214626613520076778357567256154152189609354750144447837508605273969236835975367199841787192407492082404905371083381092693089442547531211679193685372158600226486015019807090300630552924594165311473351474058124505771169847835231872687576741947460780716531892314347833791821886463961238425773484586252410129094270239127352412077981101224600061750947986010542786407412494179039362405481417848661557864422240283272663739346615773874279527107619220856237463983165189933886491550044914281901333229053769545755585962527382738573093735479143199091866284835504424767288634853967198579343814049545148701034492672359846693723950205869420194468307072523324289918151093399611296220534135089454960920502501105224363289919810470274698672273330389272019235854831452204627347034834681332220944877654856342476523104899307978250404010158758711601734768860739528785951105304009515292093165592875099539852557453975098917412649634969913225197575614891618545580538175742188783184962299428943775960320370225385978291407680574411567545273878894008194968403324479998740171767934386988693970617777692845367641652835299854548563102461569107797681900702926627100859914006349745085147677339884254312023173779547188402609753129502696322375048470907736424627346510738013992425629381253474859909509811639784422758521867400020550095094923032203059008176722745940888785254663477880933052568788939559841011379969090646436409338871363342103645014237118231454782410896462390703775492405307908717009657676730957653287661590355776302348981648473342613171069400904724964913889859342104302054658871231558360633975158470692871255990468215772811963483784532472766844577561165557750213683723511664640120607826106839665536293624928909442259813071917890557080207277616806489661899091674556428645375826419106058123257443406515702987754809651498374757701291285495412045487221264477151297616518762468070145043876864115658687635768700255084260283042378193387731665800018015586546646978228737910705041548228647227503291856338003970020378280224888831106221304203259660545930767748947157647963685891294099483371911774571001567928651111475489108898597910264308195218578588283715599062895892875011581167694751789637428528906913615852736265703302238854922227129410510160827274940313694078899639425890363949104325276026412412657314017016552750226000259174392994195787602724320502228311545872694878994259528257687317200960108519980403827492889693133628874662491060023786120312239517238511592088886854465356371946279352139709802469138499443593008304896484691895550453665346382555336424259764564476778456168450473619239558141899346914735846431073481423899987220279170563513951369360275754502240089175135735433949630200326377106717781017996520567254157830199542627790223747022857536554135329722955136208361012504552294239178350476615944897706242944868867982748404735074354508208701647956115735678721714637067779991523263757149585184638866540218332300707369018044184388057487842890255786352191730557782871316118777624292826352616413498207995845821592656939619007814305166224749150945530535613531935467807579686184076845591673226689873495202368913485709069737359102990250183119462531606791527858211433967331630150527848216693269238257848370467459466397317137608149044392687193910939947043879410234639627398741364564230953074232836389794247476021027453000263125846825387909745504588318325756864953680015847299809189576376835827040320176180842165027605965851444776638520566246832769158092808201340387158918246101650628429431328679157294374341606415461849694985776817022303999364672510834304114822583069523890651358325287063559427756375189186234697133257743765839875926056377524772140552538464183256802741033694536108483105758758870414120018481428015114134772087150758659025893160362816521022305096100348007927518378643221213702185585001877706435292285987774116854551982420309904301553111862982484081529355429096986245529445695173960080678579229717854008794168850746092443229521375669192594446411571101105234762261423686311986334046650764355230342584312302047662205997880112268096111435563197967454428980791661527683073837204704387890635552830904866605605306134060426402644587589576166929370057187890296273749233588060456162131556104791323217827176170456545828363659776027837436607974499884581362773825437441630346639909360405799041637088769989456144547996869345296697527882151552376745598415532175272459059329584261961656887889432187627037648160710888231482750364260625503343611936955899822861583370348276793995197026712236001930769275093390577363677249125580516422065433929556799492228190682862700722862789449742934906323420236733168523134177343924539054702404167540504387804567221683619532642240908032679129527946645794007127719932117591649381737160423510757163284519753519223261896573743710113154236200583860281931069396009516593815357610074947203502869445881772073073297213881365728833115897857455084334783547491623417459549128436756350342018456768821392871083960375242687410160942115614006184743225689673058993511667043805554894652498385944718458016465548560741096859138141244301004561033756642069380955879372575507241820980982030807161033849549245353690966050160631696498711449960194217064216845540802644834185388009131509450717122071696674435652780163585942286293575459144861262128682099458763283595285343749860195124956661982973642965855479259548317153073635095608712396119435098866711010458197820037254792282993796541794985407409016209405561942005505311671894610539910808216362767705404839228253277825682784699810443979180906519219344402546152843245052367376519220721374146428089039493027317182851014901228083728021655087528191973056044252627698625637234544094118170148881097136193219000351344131901500005287553221306437931875378227132410044056579420204288696701311355419715529003192427897851724536477331269788616865089743124585433405173040188143938897286691484158868372307092458323916112738208765528018967646438321626115698315276570794479752484320287135882458628875355097297215650296680151374163966385906827430234162831031344646598591326834590380755833896640350802266384984668191383168780998401196336749212723977965613969773373225988816702287115276165912517872844766332876391152770686870647724331579365313489231938651766940357682871332629032768192366604492810819695513508931113585298064514065528504450192588539897440464705933047532991266126514996951892468730392242818947251381075567326351341670693023657221845013973415754446216094925866626740018457221445972312694305369915987311384106375620772390720595765921352437685091439657997025427302575355488730112207620924109126569839218272913359620114914022227877525597574602657006708236743987113661973797478971433165123521271872942202868190688301688472118948048401149891409250162888286736599428851395886724820340829823318824666758118446787940499013618817154397150605830403670102745071796962115897811481079172825761575162032818513414637579150279251265470079206599301085124889213902648822553521955167946040688576163870845433814706654500150117168194975924925710324665910063800857382508106839300207670762393949029379823073267343975596808888680844174320620496564272219996221207704417520478436647022164077800902432249174876411988855504007727458939938989727220830424042579218596708576337871951907649113346905727610204334053040549499029402393760753618143922212751199815273245857905488778258581158674505811485274129308405866192975426108424094919350979419251122292130819235014270913249872418953004311299643640987350126998529668980234881944837264900239405999573853206988883558142054671152534151312127194741372257270404528856469790879411765419370182965992050564041704158120210147627374397556407038555512133365411971190974804695062872712592444171442386649579716064484708975287999857068681232867522366358822701168501256962430435233333399368875283644661515551917994540598677658396971134457235339082418824643341095797573838276437274937490366243637201088165186771892106515694859415739713505127662755036791357595836977847544267831565692415456785533159421493780126983598995877637292484444149922644965546231234942868242752674354739224917964579225064598263050398906078839459228996480199142695550815921886980047194719514492094487478982850387119030496585873677547380993943216790632685215529675780926906609875840950504328753565824014374761433092880015021410632353537043856571481963000129698822679954554916519822826593276855965704476570439085405889154229326639873110586725475129563091613930261152165815104476936575712199335649756491733379775284417445857743365220888676438225189765663983036796085085911964868335319371452069993398800980308290896963177439989782052285797983380162771870336207218256342209852656814526163171826669867649210811626469642829002374496333034892004969977626900409655060061868558443830223247837013265505538713718941116493403153765169720287801020150231150850894354981118128053215010009063809937006423511864541538648470944251691960269142283734534093803006354270138705484565587659463471470744044562749656745479831526309416334124875694910505797274746864992660490230105039145794181201569823419529358742855969549033577952163221255000527476733907441634294360116537065363206469645525135284258346506558361314573265308014766843537527725876769081641958403804039928674849041112709957258414641865977678067039341842910571968067641040404725106953647723773617139268464732263128170673121935096061084360554082198392696271770802571382248496878021475100821944385936544551747129410268275961097099834552444880974767898253906506483673055152297451319759584155309476803348065778195873244203992537417525717272643162323284171224112450804315539020546218838215184445419667042288668924528855917205587629888630884971905317664391169466084349497019095469960031495359127694840621296569966366879253291659997790748661531627830791551339133347088177196593619383555428744956408299403600453146572351147847175398764918279577726621017258583013017245965197974117699026227063782989368648137973543591416337170831603186177865742027053471992876339084787449932057244920167796530909627039620301289458997617974547882376862049788940260603822880881713248370791986585756576021209361818160110659429566988298378313822074873955206171300057417476507463005018201728618647743784348547033543587388594229567593344871348928872448612571933633768563626870642241753284642022309781058432087454967764092280845238044466509123077783570732061535393332893669091939955063002845123885250188442835251480869430941450903895942275955956300203794198764159247603743505698595884283110732483411804862052305603476768121762927419091555286103786114051987951857951290617614685362896611318154363913855831108624669277426578296188026922487985560098632121770817957879811098130154380188480987283088435076407525302170305717387573749321038734930871742732139551910298258716786242339186002884341047822687380210206748189797900212400995433827262077248400954793033014210640175810877870446808797720709513366247618387266353340811642394261929878106213214853876390744816667942809736419392836441150447385268636709978844625423009168532991704393215919130539399645222352052314515422545867210364035891145411306470128428387338704601770214759094871853739296134047473299509741336003055207638545280350895964821376474954984754033889149607969542912668431487335519140226759938948052608171042536482183542441710258813101845844415340796807652519627456374344497510130426093993907376375196152393320185700719524880538781730887161931822566200014974491606555720454428244731980794886967206808445033716846745652769403562725775473207716062286719552478060646908532733701509753299905744909939710953083260364577389883448112826899397554276673650073702019261564132126306501501470121769737075479160596738154222936794858797836217962466471654610735275879935942460943434466524286015536857245933264447782399267596804204447227167796083467590288429349457785677449839172734921594250169301972606052112345031708908110851741987922712993597016202279353107363722356003562192383520202227715356590934348849816050107113636101129552710865512862932539513077876121345576667246601671912643705753069160102442593456565495849469132624387835078774667143300499655747530465074201845813220751424937438882291038559932788097726010008842818804381362554211858615815552885332700882504213599166030110267855426962058200460663659607167838022023293908812520406045781665749268838248038025928651722161757139797288790025931077581080276892903744672294673729354242422342228908460111928231229201071861954519135534770092478412421266379930067731265440172150703483515883343776819596322338452866058639547148466524929037112219828492551604737359227283759954689288273577467172780696011099311529539185043983765522575964252898556074643230702755607349633202297825137808605398136237137652776500466323619295023800196556455626142973673110033748952749892611958327885482453376351650604197630245823099305332300728862307936972949754329059962037716661125754157048995140566927079929326471500142864273607161120934723321124815472508575041591886779098469716538959953594727172209341405917596413961156933561880716922607079786978332076356805600199063223531261674069599568892260165601310678142076134873171283790114036549024639529927900006240413730656435555972010275778103053652159552645536850815440063683297185552446145972406649065985158325881650653979848190675791485303114218068072671167917304074285098469034293206606253603622012724546143851327789167145746197066646867516681659330824172726405412994733945792078193466798250146781849362913930316872851063353279786758404517887782056882284990051868406723135322376364488932809246077080722141086473492676935458100478874466106139365570508846813109332858121372552824067640896660072541454008173757254620997702608351086328790174013175343710415425118207491280473483629997492581172461560824250536403464472364939133445850643659326115318595392547708712902253996678219467075111920980790224547891608039936991377588645768182977666758863721458240037866918672159219027834395698228750842654931838933758635058499153587546187427470414928388205701042421463279575234352725562688923680694121361720522147206207093667408852935568808087127748603141741702289614395274972402880975066153218138193390290781015426514772746241681626078490237727611749970244423872857072865453508522996213193796259920605270324266341108563266559706432096438759828990936345880781997498157125882749066100436567897727040390510394252974137669985230439461069968171190982915715336199229582160424930580996321161640381791641494412894691958842302575362561833651825809179240671196438397653698573183830696531659297684439505309846067737910535833592421549988460269427734570663768496171434180485193332565797743153842978121519597558981028970625407295905924411986984171797026393544860029026868903597395484481704383368697651622884119904184554529789148502438665195503952451647030689677645563602487205755035276899579130340863882439859859891406937772380879734487259051034368833977747170317667801410786728095436042862172317933758918281702353358952407083930544912247078707900406180691922817328864606355606687814524890166853697062039995939236375620134598594602169034986268299080392890277804934057291097315569061825218145024620813677799486720908380186029480152497580000583945963239367996490048121561562179255468590609007295930989941413303716598478064929640586735698293449514751228707420113621043161490243238847469136735605005398863682546487243161562127815962198271793940253820045572240707428580014193607454209036165684222759619048344349246899088513741385222954904286421605290188372628787504112753963209128520714785381402465459037731589591650533102116589784982674325475290362505857431732627827637938801080890981886566054066874338216070181314942981610264417725285460380940722004507739866303170920492914241830955602541644420472842967261248224608228120934204234692897500329184840307777650962917063786341344863624564426775475569062061738843042019942907299663310767798273699044307275148189635453408401438391584773288459253391870086626301796509883682858851584671863462475668870211782769945701815630818197365530302692489761074102552743302186133450904453180751109673539893111350826438630894930370809601392789345991550226483496124576348766936380593274718682367661896042594275475300863254248976940083974915746898004767415187101096038762798757453847974890118229803032227498572239193437931153950512458966951429501101699185521381247286093862043237098997359009086618840904995968672979254048446078647692410370398669008301422333626396075436777482864185407702609996503274937957479651037178031583734329105111352856124843309481575064607187880163072644823336371744046951021210821652103332189539999455185417000327812579554835267236248023938926486620526291819983502564333404876291223831112610863213126851750787627444017604220039481553503874864814647506582666168396011259073786169594707314143404314344625071404692128010863178752714857973271399642816644359108345268971375984428063490128041954630998789663706852476970466930330471710237065419331051847999423844266900934623844650636271680405552209739129046590469693060100223713255168371965428079531046965563517969233296453136740297080687802233802673186210617794691350930677911746825058860947905095180600425544124314603873182751523682071994217829127493472245484545842807656414602234691986829587223052275464060727314346169409467174171256653931936970674315645197321796275626834828054183144305577506803153682467213167692083075871733053908642865694355794136371609754690514568268690018767319225476364906130882167501803057064874111273106162707157391923470209840712060152478369142857471590342141644865372736035558956529276255171507661455567600796483428200022029301189483379307878394162139280451437316639214390960791759958724433668145774222798354358723543294714092925307809894253956383753767607859916269093437010360360000277382592900015406253721695390919598591498062216096753150969960827466460443158842134600220339267568704519241271780592681301395511992569065118289454177136519541900505264769039397692646420108851501284905729050763885839502293030065427926660377139126911453838370328861376271731009525990729384059723586960427794114373910150827145858614147161033105159954006635143375253927506944620704982215084466011413352322420550339618225622730069598395754826278547024613884923803570264464461926521102927425700793251146466227208234026047425182283412921098240800097999336634745172325946813099239168264667015455973813716530926985992728999244965714717025554983381122890007656172254563427420057185389427189888784078017700018972312518499629601286247360081680812734452063730386880852397011840697062756548206905155436881878904869513463901941107136012966829268579061920290527410154957060623187513528700138294780894855756690642765702537523927905848074244834075852510830888867065947423906736961622890147906661060787807285708527621958857528671925598848556282504770475278319284959733725698538298175580930261530819209611765496479686588195152818184952101100448657056378521482276020315745240055226611039942340936564434809108203928990795489376136782728517597875022684916384526652797633159864070625894378758988622875304809922469645127923231843231867543390373728277220739356850843832084333285242702824223983788159789167051647703294996201929758356915436216117364538146954377467662907972158785475606774484512597291478303930502701219016677328657830139762270300176234321692212434200940530111708163122949360837105829609854475805211332486557034729622315699833689970251980733822157469097870143870864751975792477435128312546676908499410055672007739562199305532216606213695261250871617932265144897055350298097612170292905808956677791428294407944588774155749255512185667498337240474584293793118619640995634631241483068827287230967946765766188664050850054038635475237655600567172544880569347903642866687494333154102274870246710429936363769200068782177330675484337490071657370613414435534050121332741254000378159124041745723980555358282519703527826338429266403477930297582492688490188506012096051957740911826577217119876220419443230117415309269352024285371785438433075389460289455862573262330732114190190813441283664815412512467243281914454781010820352393585150747556658628658784601694315691610511406889508684420760449749486204946641201356924016853726033824564962904268267230203291995188276831067223318060957875920236994735346123857273036725215994739782249201430733560591450242161352686245308839518241494930714673722398206336052256998002522516711056639757234394833147961655844383404169838268268121469478800378924519553043578642968387671256845521026441383442106799026072542292666434704514072641909473880260741696545476415420644473870992658809306430503457511129741866510444708979873796377850576878499911900177644557700490742788314280320707679907084969783814050574427583493461177174001089439009993399172937982048967462905857668945380054613639342536492408624693506606309814946833443048300785551752538540451994632303532045510221457617137865976704572569679582204611735985119682559521581880146945319594415558218160192756322226045111775159125457802781042900110826550509523121281240270249602408936132443647885948692266336167193744016132219322086419675926197152688916550957436077814405904951840998141494807033569259932206971250284069590186616486368812554107208752191862915402429434693079564162239211305271472480289903187807428922047660772420845178138041612862557478740246267620137831080860576108639928039149755193491508259286104647098146545915038810167227780089368998088599979029425128583597799145834543758809204169121113720331667840577555873819295003779756996291907621396520496205724444128253099132704951714009366469128974703407203286439546274504005466976313574820673984005662623986460516344803455690653839664756485679589927885884800902764117775696315243305052168589976706573797506276301015610436156737013878190184854573027773251478041913824082663674541111539036923067022772163753559331493114343755481376277958625240840494061181195195366908269597901670240231227041219192930132416800668971632456270828290045876483479104082811733124981649062279002286079611877109061881553591978398605182525970014999410057843451359436545462215965579086622631692749452853800995401444859953578543973839057439613664749115635473511500939998403538886372923793576068401136004338828043384378218754032478500687658297758802817490115512255812204303354023866186708846451877653890966222060175037861528067999721309797591534578522664671058404855700869027469989547942984939266584324968985990832679952125579328967986383960637491865589615227572766760323616507202984053072126987947991440839941079741844925538136887414137174798020242026882437635778960999018397281950354150348671164934530431633993326071336110733194700752239662835700597762710163445627904516713343180068330853111883349222972877908339347260055463195797570004704335528035141045587970520046924879274084167007101908257025519875768525899916521917139112103487629882739498241389621191414185056143445875869122023703820478190362032261659161633464877323008832547509381662849392013657702237153163036840215997222583966694133088239214478431018920388261324547738000031538770896543106946941446910586809385962724177698273824095072472595411716380627052488944604414249877326978029668183448073236610067790658435937693811646843924836556445807147093029636232567650404319588930399068281502155480667558488783640005431658583373854708796543119601293052304526057123170631508474344994656880513669159953784762806549910879540204902280085832150917928330211334423675806730807948699732340608635701476592524574940321108151503553138021857475729291729301231693871704741830422526780661614963129037636315293876715034105428752654595474250982663909688901761943489070125882701665483938972805706276047077033921599887235185302740499176422616029786212459022609058123324348383166854630292112970899980436903796721233851837884233324166725041449976415983350420538212566924578860817286162603495473172598108998598593576282614333946067297701103620419825220950724477679737312741493412833784153530694447063431791035799767390037356145375939445890673793679411295810926141301493332687193175684688719899607260914410877826951050826331466975580185408221258714183844115858833425753744040868446118820795567749998428894359466205388080041559333065134502823422997382560898451882958696309957165002229330139608155136385738026788326812309139633565140473120545812648098967902334373916788115175381090721956693080173407663833775513294639594615221628808321168480921433918274674961179166503211635064293960528198489835408143809591303490816468499616782567036541582462623918674428279287098920704918754177986692925446741017337073190437153087043584154125545539654854539070421632584004062786187936478165081328799985803255428981850250999469900822034616171471428564234703303403816972043071621782998427556359246725085682319519000490030076019140031752899383267394758532828067092692483539691456801111249522790695329024714090548027679291814472957738944903030235015113285519906371936764522297451161103956566044489995305967285159059303112781528496565652697735525791725567964426895976060319777561418663140326563147337592162380831295345324892809851108049916113849207845931648589142704032179208222792349238655580950267905248229452138244379664910795089625408473879201669298312198772928585662101121807494221590339138943603113340870703939435378849947638202575701395179505608410021580993266711974476167317265964747849544276305324911041808681934472104580277085226905456232647314478646427833013516303239808705960164124141426336318752041131911787451957970880048394541358289402540840910962942472452038252272948206146309591778533851048276024351308039043651519422160032301384327273566794221394701701685284167934079937897041656514283518888732546537498544982583970957775444923839407054281882789082666155976489790933048125437976779498220041563936942397580754168346298769644012639995728854584370241974589358046327422055126619350178830286631583404849288433749913020202352093339862101003924111211687588565334925247233048583493752215438064965036902216231518949817849430757602014440995981507391712486922671682254113148415584839498036744278342169087725599196923090299725368376642031966114653789997139740877625172385187216467962163373203037840040657440168750794937104893736623726308055689371454917037668654887226162553382611092192199497543380616808997894518138883434403554833882735634619601492526985590329078535634206091475196388265656748543855236830019064936635919367262076006377837394740014989217850335491739689648343553015263029814858555275899466853801248402468852674777014644978412394091173515473559785314269860716999033336985636799379429059754554528561866319203381424995048191349432300975889440386222227134059261560883203070043635971861740740794167935252938387315520166128411961584197400064791108322175625286084229843225334190670663092100486724633410193939691406697881507014755931599536880140227219124755151574495493989820945891096902755781470654910424699801572756233582365466390358392889456778871238381382876953605127583095905740879227163583242900592147817180512966792560099494424666602047396732443354774646991002271871778637376402090853456821083590287403259198871033649822440282768478128254423033980848336592544602567883624665047689333464051847830727887519169641536856781922047981442984438983984348983999155533355012933374950050144498990231620894190414821677487743941715339744992608665157990288960812606290734287418980710877949016335697264806977741865147473872221992696582084279376205375804444189412369702642504701373310787980180008413453746841506599217651510630661218281453333205908012229029234734319250339893845971045175117104937390631341794222761639471735900601529001205694658604598800122921766089648622522603101195310616487606742668884260139981033344257438784141826816992518761371475213769135094719608425278228141863775492989077346761600050488147521831099137651763421529346019394726466829987502568420347036773457441558037196120037679948321720041014705744070379402486617903757264044213416466637154300667026523909629302641900563314890648842285014434836639066602345281853604375621604274531587764600906109199415043964344005835533859680455654121989843777756624674822352272870995379711940921841665362091107971798661899734185109178450932985735482689833639475589326154828687313710676411983169660405207788683270021706623088837727278127134519433548886751003287324197755097039135211739350298153781128488995436839403970257725444630417300931518115073636570657141255415299152159946236610314634327362527902896692661309146312645254490354994466709327551226338027739659050416011480897806758881668374928662939553511404770483557380133713320444302433494282768655309137466501920990634514850536025783357099102952702262385942921394596245238802002146812333868790455228763625336166924784202782864052718853787735315984495009268359439999163230429166520430803533479310460602476338532564220802051411453008227330248360860177770324020078941111523295713426629645795534770658451687056467338580682714532684766348017660162889458763396638823458477124606423414032615911897283421457300903892358180254620267238597983532246042018758231859039059384770731466350208028267537365646304071868398748131017083595646197814274370427281155966290321707635018569549762552973855289619105600538942031583678653852886999761797473864943376815677726493881554416165781144623734149569337794435589518391757583043179613620752812132795191297289228456997464277346894429990907567871218042627699072933455704634036795359355407176184898110855465934783346571140928389060188194958221034323738417007141142652578344720714095652568429668969806799572889362968685013096693146098590243256283081194602695083612386929068812305721383778970083682336723906340644521656227920734349408019616258070405778968421485382701697287943204221031169143572663009646104068123725123322320546526495721488475229311459167370457345432673997678961459244280361840281899761151031949214615853051109243001243673366495671834157474891519798288386005587370750011351714562798899956098286847326484276400833336583609998844656616379600187949098488385236497748171621864331913366980418384616980698306668183379515499221125454085778641939834904196696607099268436160700030110780636592216005412306915966799699046625298819501455761023222132218217312624659064903689370327641181263425101315376009288980992245819838702786003167206742760224839216151296490221626127400074865045920555163401988344079326550974701422964205391561082924452318984155964023718442677890399392480487884066422108319365973899327167682995302420797806542086467301963286914423307518164293236054092910112204534135065009254500558303909980969254766546120933642120195008427971247783882900950651517964253010993321253619735255634545370271909871174291276236932901430501098931814323063982059320819786806774305888246549898116606634799034508500056073223177683591296833387019655902789245574678806069927065945919504154304254220167641539170227818047832561133193227178011372792523135005278813890447445000105166704121490003485655324234891482506459880976560098085621394465808695873709853172573292474168529780623901159089711310252853626719881833119742954058827341772910108828313372955377840572114697520203329017608560445067593704032613817558267373354022028198575211820906825206555523957916765401230956833060768878510523255538356895026231971217271102058802440251986669506677233892118706556987433626717492288623987997214431072897461873825668504153350389348468828264375594678989217266071001285375147090736324906036697233626788662431433614701824066268880947944493783398031236022457714889241615085906422675229500787253441195121147375113385141094529901600886997150571181770906873120645623157581942530813847990055191328703878775664162530362224667748743185085565064530317746648562862241485122119106895571423170156237546949758851901619015955332614101213611116133570789700117008150945786326914345438403162671660655324030193847389516153482341467131619258255242349543477429765850150824709945343654619408290446880645247261829685535169017513681259052873806754675548047142822555014500743827978455406680570510249840832686082745033744489574929117997012330343254206834749535013848311837867667624940120425109474985946657545266573705262567174393491946804585154732153767107930901354886932914399616706178684897766053676214282997173746092962371855331461672695721715625389963969449222045159506683951929426632316885872846945713685896389872026017576540833829458184134585178404021974235742665640632137047956239517833095406702656539633718063746696466259762561773909533084965152075614478348409584448190277752664491359895936023785134012692636883407552314175825223918817144156090802578887138597289918328497651755612632176321769830053805644148947098609291906156861682354862890245081485077516960564665555693660045456613558167076246198691803478425472022226768977659421148016235950582065213391252280202219639637012519489334892818270055509168701041759231990549738820517795833445696864993778970093957382772775257715104820811634544555621382005778934419691535959710721962303346013368684954655117900978392243256113479172154603347482294745209642343174012539256995958456857746870033235008973839807623491981796585295734652719475378386198256110514242024495191136152954815442618380915721029994741771768625747285855617498601058813659197024350773842767078144855318495523486923335000594344855932021592306034600416611642744216851001354875935911934588329728768225385329947742079064760615808241456454775833547003428899285257688313261515676079823591767694735346790993285372236112835768373486124494930443831386433843364608144353554997389116855079387219201404429895860382834071283633361013777433084278087071712704616548536613703740842474591863986344441152732465614740113472777228812729375144736760542147139718089066702329602083998620140357969647863113069130710964562770260854185647945315003965137135093820959048099414877274146106745365948367000544264029755267287643244957346882985234142849710459331441600614293993526220544676862388660255166031329427171618898498259234547311524075380121005299946645963556403056625520644493779955451629120189571526650533215756947224699549464830843725250530102214304608355992854742679829431416951834978584810529381272847680419345116756383098853707346227522336685012813806927290110742983092105491861970114923622874563790250694580296077383571294954364507277516382857584125452995776634073219831785937478788514085441147769277111761574644880958163529969070843009169644522496177405264280569873007061531778766936097102449287825821611226211475814937651091438334366961321087778414354947877555799340600005761958765342661391200589377317991692751217150689293525802711555001689042336063409078118855211774360945306287213723960906870415932789022017859451922154008954835242298785751511546037445905535398568190645759903525101227482327921543475374622822572204282261785692828339939740062737577079260177342233902565327436930022573436344176815608125832381889405487819641719536834622869948039919758059308249942612858273337875877256760753362424379107324534850428043569042736501329127756058795588034500879070538710575366004668717385410748355122700179383463958427973955163353163626507902324455942785943137813330080708872330433802186233262230231101581901119294854635720610526395700021109671267431775926236968691549427063053148064955341703297242254259965885676750764015961128817074060422745670691692640754497894112559239665586850077666730642239899956378557776430677684138372057505533339210284245373040972616911732012414459768089180364011833652534989470421979924969695496397595221521652162397570841136801479254713131162535285355829442796132689507383788327083520957894406420894272103434686312674646971119171342633827266022423256405168403689271438669369450889642804216068197233087000674383816453965119643449063416699606561497549625754322439507407824717317379193083876866985231216710806684643808819990509851556680725614035937153343310576026285939239380246155636089034012672755675877329536130312943610162516692107088436593281048131115957306180470898925437853979986862198633345754389073777164750184583835234747249080821859507107787115779556784051401449520989336734279566657551228514463736938128762627719601507751674975890414732065298937493090388299991254843034061408472899132272180800006308053699995652679636132178081290628810829103902870154763840351319580530857973020863755926968688812609891749193772897105506506844615588659185588367984961149278266308062594353046141353615543092263979290598881518580154381210436914096112222964095283266737046424513006766519413552463872979677150309971065117229747357606416716023272074630709855205647011550780076790458260175617933209905873199402112435124596337384428985462761993763981808464568288168778247896126496916665123018956262254695699212075632578154030711950041484665018319076215948056414026886928694411937102722545618708297765298572591826039114757940358249447538235197811452459109641764428324794350148027903748414261425127010381884327767077286411653798607213660959271447981053206049162981108179210677951917249445333657814129228974356036340451213810091359331576247331743743714337027792973488216891558450987003419091767026744424116694973414275464826229238630443146252116511605853011040982548467340980132915616386551894376659096782510871486432973298044347887007538835875399808538555934941229118296329131258370682183669779568823405423061682914292429556285299004807574724142311392614320100261569661085384751624413171898809714586604775706070706794682603097013510070483869911456092605063773267517394737672553844371032868948524732013751839655489946910070529306664485697891056267021930933331270372854066566628204304073663815069931502264774549473599255550597277561106618551919250029037486142077371216383200577640321404400164545502669510972255967825878943356442829130707501370661964562375123144948670146438874859760964257345538510489787843510645444522586928640488194251162613912312521173528964493205922139685431643328330943270069857447254708801499093472609136781071580535794076207858628869942019389650755367604928897341010774352821234642977637085856557672700745050370638879560709518743764457656665306665632451655737685592058817930399894839647262908301537207873452148672239697309352380430622772904233744303863447535291610281314554513929641333145492793522798550844814099184608401356281341660484811559821311140697790369469102982825215812988614366219160058723110658739492117444120890448858919058693659137886768349561840610651070867111091322794566798408877218258497582677077781248487187897229586276994454439729648026361026135857033853349673868438338760164493034863011154938627343162189934068204026872006854045760110145552113641949455293145536007400337984516898934126179653219292466281263082428410873730048334756989842389012821963068239312937307385100990622085773825307374733581446095760109100897553141626107433044591117337741881917705236528172606628568310680029917004297064288094766991815718044666553216128628273050013185848039864638588879911424193790081567497978090587104945293924566227325559323690899893567930702878044858465140403740132879593593056060528362278975065883811388346503947798609782889492401688324785063748665827153540476679687219556892326240769426678536836404329184221233258510049899385304026047282412756872913547103014857111094640002717513612310679119970853129744480925823528214794150603986923534899306056810795651455422330293948836725314134575993433378376976220915013635271867924731538109611426764849029186392620380120637517409510700517501834698645567601308465394831747955087546059734479374936758567046963830971564921134560510761195659214592882730565586513854990792469398988612783155003081335590600192810315255969623622721495983466930807837125943857971502230241017320241699088003640521366435601978403800782641075944630153157229163523839738968363013126474255212412783201801376696734805771212455355528522378533741010439478061538415134872729005628002364495718080125469314825162312420572435041716594831411480004391721639842539328963058283374672048249608711762657642471482191438447621113073973720796926680245384136183311644641751626375977823150482553070771173014492637920283915317788915782939854849318124151612104635773159539531897841201382482558398275417361308410672359349907734313459921160381528904716013050000957682884658810785523593668145281953718475910399759142133787138126447401275010520078372578823828807037152839688651335357247989462775843642474707172577783344667326755416818093755043579893628013248849971161295488256368606699331585170565188606328251735993653266170548643499050516257848217477281061312655212940581187382996072992307278472760436036912702372091441424637329809699823159482441580126725229480810179102089010738832990660292419599057186796278055794860551916705918434697025383003789661248692697797548098022953383316713217153780755538691974024783909282434239434526700146751059302923136318742815122979344545450890233195399980863745766968735133379773523060453714978779859624675716691832345387936247682930877000806027149592337406765170406189080113776349716210433869880444319693609243289335037134162271771322198868220970881353512600548105282716093366839120741442298819942599814175705142668244418210693219621847662558928772679029714768170499784130075201961725328371041028242236495037225136830652467520092306673792904639840120459031082829708293322679597035197362777750406503615201018260118533680990420329018276950158681450958106839275211972531036775029570830992265990556939007781197746525034342625759395339307579753790749822456421605682658572069168762941126009798163191828077446090443343828569822061552321900962446989154912808653314962790788109153172493782968346074851530349453478543142857958705314303755768487891066374454139266716338329204964558257835706727737359751520123143357075144307152223601836679447078749374517417204399811155866186386581880984005289017861777785227335651548920615021631188805008227820397521534477963370906213926361510522312025462723721202879646973407224897891335487260110529581373837658582915410587133258713096373688128723378651237300884602640188598054405729451261674016428528020110161812168679942993323828767032928402623683808905495242902696697347018812112338709855098456833495146052211345061104075837556086009114014408846099577678705110225547734208979031204569867426633335832604655997295216337012289935386004866763537429062450053338038554386477109972512924341588258913704641311896147197510955493052357183007092519249533595307232270206800312070657980833450383589802387877074867126646686521806538332360377864615332075783802942179376083240501378012090501245343113629698143543678572971244659865499728654651181784823185946263179678525585748893385435255221372924687670553210045177982916572872233119910594873388256120936993730548006740162059528808812707978205509484135602000007572260231886130712081697999904159624710728119369765504846852918068207324620218233330480751063108659044631182159851614488088009494867219147406977637429971930582265042357756864728178739722349042753691114166913983920953621525415040206629723770791535647020402526518421045619954201515566572272198500451200753977827507731989451954188943206833792609040951534592333411271856568860056610174111594113803550935438924024602443694407148379026600791260960616265151355177949123653211733404756427007524725767073948355080072082103532273171110770100288529164981619845951284325390214883215406003522502351803565953231618227637807981750054550400744955884269197926821136068130591454668201316526408266881952563134195722528871992315789259089112526582854368224138273681985793576752323489028648821691593341951782835291552978827479624002729883015219067307653038123916903595414505122394660505487606567000777951345753431034594202344830072474228871616760100624403197065590319210150003836988286503227844468380590315975791554469955394603426328759287832508276829096206173929999712870102900671176017815542641405643755974238323933293341423489700893484964296167215491316621323930533735925318966697251468019103809654857147310082202939939449380133187529205947429924786836204841868113441969145259839446115610710988365264203562350197767865988962872531821267308510722703409607652154577641240742481741229000379520554539029421031186902380427896729516036858636180700352784044800893177790015828959371078462669554733785029894660252663931774292756978905815593064984322015642372091834232230484966336745140464791091634387104447234457573828780066767337968905086203250747572310136923352444202766239816367239243784817518702310204281975174589532196640415279444062809471620632775507904671068649619459667656396540368425494052579291463704252269161544729349910815563250483579452260678341645650709152598888990328627970987201443751924013167147210168792709323714108955876523141422117951532416827112633641251341226550983724981220004932235411892048943219984032396145237886309771642363879222437304203557951873741580999388226098205840683557106595948446557670410741310573150968314007005691019612119228391319874005053038466550030817083248699670764500184273292550274712791776267836267478744637082191914241158604631661463638483412507894841403678219387993321466488610649012813642179599894565806766307775331860195352436108033193591566014810963267716031019986303762494440031088863172015512822827952025040132810793468841815568463898137634018340831079984946336008308448414445376308522882704983961952429348984526504282332819581000268575532381964283755390532930661837191255485126359580538569198308445887977396660108513324398191456894380723674460048601362899856213961693191470564048845648874873287347698155059533211130770388427983230242117693469013021219987953554885298040832882087879841741717897738532737189157676965080011962997009662758676416038933112700990801735213586185196254762840264472652718533534679816178487266191484928496189472524998939410718828160395803206497985247204388034856730229201634290402932753149852479606125025929567445116688363899552419422912162430600427971219886809106008767200928976669675718430439491676184529010864622442400302902424103180587566609439536577108915920724423960293859819133970421889560556672273271440028306268001824187998402185416239683106895846374210835144959949947267662861154665085123629166314752411973774299546227576418904594459823182000270487725040772941651917792606330683255686707788055422536544852720339923036983225950676532343964499159912110779056726318848531794241047759373388320622837913642108125671606934925093403433074074997863195616767056262340363852851941046169888267523600003927363819420106232424861084847412773735690043257723029655123271986354572680744393685407329069719023541436224134979339939182932545896138405467495791803650465487238006772127848718390397852187349021080519226584154484392135192602205881640587200584323994308163895282989699054340332892055743001022729910419090790054205465959665402107160784067365833409826800775146308454141152723040707924283527537566446194078490916602198327917704110886420427532105213299644662764724307163740167104284112970914908751716901224008617316423867365896743734361386181037331108251231763061715460831720567032505409469629285152544533785613761159659990208387850073363628650473171545784749932613557400115586432605465804080978289332094427886840754707986910906809664237363023480729929935409166688156973967860563159688667481434818979088306877563169766570448501591185488435864913416500178480212856992608819638252133696536214692356419097745148352437980604679495882719915811156241914986089315724715008773322298870971983486774450761583046222118785897343892683043047270198055634295897659518701087682206600560794706384742643641693822601455951735648858798281755152671834529454196858998692271831706708086767160781630050408150639213806647829458609100952525976102087476940929889637685433554266908016104804191385909012934021608251439437864752563146880189029567942946454199303335755120265676171589391753571019820862903805546016713643906332777790523923169975040963365412383211167300435658443872326397331463401405694764114182569746877043469339973301837354432514672813251555004532698951304344464779943192700589809303591165574804689732718837572559201160018652094493913712164740245292197263983853807849686481437583319502897666209629706309672175495125403483193297648417474990895734793819225357139932235737097927069360894028323065916468895104707518521413709429682052679834378098403203650978867425947433260978290583989672441627562544276209192859770927586093272685636067424554062149504078809920965134140120815678574015107101331109011914724971295332263020652881328764898493659403616331188556651368437752776507445200096312225581300952792825717017438218882807670915530256702066425756906174165892540872398854321638854068621316203192147189891530606182180670108780158721836606728645094976385425776484196264036074769853665498685382021176577721549939701512201762808581474562777075105129527736169344071736075761692411068021768431424595009214165536552307995442299466424624893086714395810083209522389129949716478257679673444979204676739077571074796241522792997785268811732919706543916662146208107260091241949873038691811649089403159894682753880268309538872563792464548923521959070809706127518256228845292297077719792325446977790330793626987429296225285257464886371290453906055229883162837793872897295421151309301863494313860601792113707799791353081127599179290835189619699938454902512481218982177408892771904092716663990043301186665606448105509809871824299116608491903907578711571477382878661358032486089362972660677199948827953083689650097341577971367510109525222864238156976238031729374294680156477002461296125191644989808322918564571529119795517526430235138440912207797572297819176934469407376743049096562128499035706011903640709338810807519229276704985765104849598443473139107855996025205717509435336022737692479677443180920644394210526434242207388754507718260307855932593991397468141339877561961965491953137406985265392697051021254895292563389303655452274703779959137000769463925047448558161354767287061526933244973816401027156474018972680929787461475802822221013192202205002240915720061602556964698887669556340351400997138549303753188334323298076831329489488348258773218188464929501489366474929436607512886915262113460561591703061286768367386181967606760820059986986995432867511219106014041028759661988785565121771055597094351117494282668662391337463297935469562885295524193676267895767768414838138030039380662533914971920903849191776689817246695279469503690474956227777781812651231056717325729504624057780916991624731624590093515789302076825462671527565988737094929116232868857368973317281298633663212544839293004691883027947285041931095648806656457010786893251420020201452474783609791179768376460144631405798834349074256555486825048354066483108228925537509025100655261171457028335351489499370902509741849545219715644350797245684422823199254469868805732367030051638279753531847269324073868764707199661505804675118834925306106958921346413848180272831478991671339068239213406956733632350098454231163179913844786005737948428012196335764715829108217640234574565581850756997197592430304828328265538650879207848824410475827794781837803942640919585727904750849796706048837623775602992076680513382367545493773777093858020792793217119108072616517832966601657207597617554504549797716064726693982273240891940927489993584023847496157346371903599150567238702460127019661201743212793440487731027677257868572326136183112134985959760540309017152933973072109063036027557799692128082664845665834410270521096292625868427921920808359011948827021702918246915775583490523008610042280720608906569945721363476009999434539055943915512672425742966263371207165431505889100440328214096428477751583804674917349348620071677683038727805752642123827285566540865427116101091465857664169141482040496583889877939262160229292887937859666488882276948023812020977924240230977427652504499370274603164028505171102245045850204564883110869967282553437189674418591966898744435289078467238473890375782064586055412893786589628173095359632918117910234828247904884194172434988867707650390862906017439771560793738473407986451302727597591027690015761877455914767418109305571060028771960737074127713957400955238575787636655897708317507229078580558847579386031073129388044623084219917087407643950210589211107440465605236766320231210670101451055734247387379879439202810058213654726159756187480558766253053304965079712095651797075243811715266432131301205159559430773683735622580950731310434373178168259283407977300466665448122649738225928060580542943817153171644868623126266193759200677590457110954454207321734313517969444531364410202946316349560829261137225787649176926233767191192539733187018514062340996627227361327030924279105131347005831773770890783199199933400068635430154249191407052665171481295075164483896918198120477851305307067440149887121847948366536203097147462845295421048121074983120752732600043914678697029627425608452755244972613862203929503640620742865233844395902076341990695353231285640393632134242546725248106812794651373726865877606384981237267856798959093375790522762510692607985266722152365502120142531840933958258800932765609233262921045709053152305116220479457473209632351821708784610033617815000229497365591926211151549840054946616597127636598669232013945536270573075786736016391131974399484558051643641622354724778437319639937266056175608551053202800101577464893289768809245361420289324687671570205427676459559335587129591621939272171494141408113858300975445237404658897152685951528552846328616664052141157135839333431265371792014228745095131355764638127241805232730147859100818378150618672707284731356021163063555246130202053344272544173405859516957779906096370860412345630168694644731772492435488616267504389376858435897962280525443961815028199912323103373057774155693131664319340781119031452538748391308920602022509270563581886896430943709308295481490311812167393128022314358733922910086904641519421902437025661180288759254335970792148617600607551338416732766921478359122384401010088956457915415263768017355337204557794438751931061142892164036120604882113940726786008867781583193359186530721399392106167302491616480989081754771950875577840681138420833492701777790818507471844922738565258114685631884556416817231772156618981258028102812330961680220827184734660299742649427631950694337712328683784752970677688120273376913203220359352696900528245157855730547547010646657895622012340428591394989698355119393383885448487295271020504951284978551799686321879429510878595134975369048190629975707965288137064554304610947328252405606234820696612197748517221327864895459717550887820119146920386528300080162410425156098703852586967118748153279925383789734435090278742753636943561758781237518900972239184164841367904156527906440132776352095905439576905240872694858574609183012342413229730709130161087375160164848473240331279490168561902350318989490051040575486304485333490526845777539586077218747932199583378431834810852821462045458419516357782182154024786825188754820261636454952101605920328370854498901992831192196454211182011314623549448625209219332890317151593631387620813207772157778138716359754704021084958191503551597327402855711064893008947075477496177212483116975235193118733933280948699029812310209550389919838609798449176573628562362114450835132096505530873999246509896548724861079759960655474383448256523431203077088760129201916648795921426810355690997609290666614084258699344956417551942217763377566503083363602062444553062817577319475650528881324048866683186450096056751837171093930369842495340085717253747731806542103846748459779079108682908459474376926024374879308745032583516909564862785747571797256422580498591707471422798439829807451533513153938263597473440262285981132214767196388222760099085250301001770915766905241677270388057458250428541773435225448393867897559974951481322206572777674406990614802511902407820988746174272419510565506491942932012679595768953765220480315252487200309303345482779790991660007177504710997701300613887242201628461699838694227148293782307840162313503314580939198304923971906285370741390527791157355919977386034983337077351138431843152045274529152293836654113429159794908967960245641848466262160708090526511809075554695984823162699812748187408000830169493795641403954040755988310976878328593594034863499991097916633980864982556999652506903103984627687080197389252335497096156410674838372539526739562175947322079851465373737762788364964894869222593401883009200236057906983230326662311811602706791797944585896923347812388723432968136780387434764736684613215586790186103776209171465842774601440223268051395081437852990124590387134750684665328151344034940448995125627830748994264302273802150086345670246568408497014601482822440287390728737445495289696331159715657349561001247134833734948870292589369296378353704407971388937837386302774664155951268332894237739067320376252215392974067967772417309757492867396137266298028937999318930308736925145579168322424648375157514148456212742988328122106712709392890326570492781695275489445728542448871794690521259263565019857605887699975819371743290870073976596051151648309755805943661169110613687890282580866784058400981798960095742927381540332126446710418579777354740313348929086109771354219254548475181204406407698872157282927741095832872037817256847048520933032377814655245834230099945018395342320102241643721839725416706550229759215894993886887666458422857003360897822092143903173816743425876479330627842752258114237301220772841044528618427081673944914173694754600690028298932060367800619783657479068297886809026506221079135324019533169051284836996349431283976743971275285499514125857316028899545054654088510175950244297994719114799562455333107754213551517606987554134444252101406025296674111653481911753884428278916927511471923664820773881480298668765192723080670400992903178318047177262490223897927027585190657468370275697065532845974691265746532967752244643538815170520508864788948430561252722466810655683668243492033685350996394718831245720913675614927643815341786276333408138351283146798726960516599189129762662020730615958263550379258302296412672755475331533818037590789108614540220402966011329119681242944519549054623783548097004514077372105412013332050229472652541879153160122040237155691716422604143777030955397905958015722637558784314462898165716663550528055708142884390454414152989386202494328131393020391285041828431865323590839683204273017000542342739013588550996744523514111880964996456881446320020072552985468635406645539373313470217743304628924406069527428101006976250184770655334004565303169990496069919170456090260719966040142569062464659755926899517303130988845784791713135300600088542932472559855715004193329005180839307177815805305914670439452949945173673014827399418820876197331263526804294658376058377800469672218464234820241749709030136603816670320344863151230131187221994196814539338203862654820029725011241078873695797318322170446765470055492315788821342535630923636758888785863848334450758499522437131213883052186750570830874150452746374158395059509900312575422263092006691110393765739381844497434740769079300827978283709904800634013515053711576537352559183212877963126753031753774817475442057052247466973490848027913030611343358727218336066379808747726280318808281301232570994933825646053722521284885314037907095666248876268623722272700808050315211592312849106023495403683765068411656212888526107304671626682876836536408697383257556981371044649186864975492265707566491274690493042670871847295695161680853553118395766601426812786640030027442772856897838516505003805849174081451654792979779564924818905729733580597117696350904487448787416157275284412189320872452284917775721696190874688655672363299695775143039195032411734227966939923830670011946129312609962092023423067481858948992666365967832620190073067038697344913618158247424345274976483345993954454987465230989734806534086931607700212171454224184295705875223234081040271811620289010972623633355073565014373264188685443771466217211044691990009139651371209381901854019562285836528904600790746000949479652518858744506873953581633462701917994289963310504433949160353909830646996361766928335060303995806396521614080855503632225757661329875787144998848886905548858264042255811026796646505962989053414189765618778829399853487341436747334032779455920123646151306140191690332977595175627833816044307766974976110670456982060122775781627748673456299000549079073564944369296596221491873209060007338461514973858929817576296321906753316388567224334335805510226963510620868157847934346267326092645869247873697775327356817321647275566757129892250401570481272125720108263924476385128493659729338589117227356802654263004467936451431466957635096571253595162301158354237564632035288406401626036854854035922118646046557873678692320423211502805379747403835837732293086245027801189761460514388869485511910860903130772381939346555108328104611601826895789732858328959308897370846313621947422688626064765729263078331390636100310895172851783724307551581135873856222094244746058454233774477467312986930024184900997053014920116216624879842400330067265981209856116332322375708980004650093787846243534445511102728621081040886914785550809967003062317585838976638801350110238079430281890154313275819234405821365611910997446116811100403180352027656123956255332936493355763432681071750613895711378115415107435043420002599496260130671243192222430265918035426396511667164720189094859405885369718484566194909000598913901665543168228931956907489722321812844594571369633937849579190631255208408094410039706071604545483016866277078607168098820869491852880122939116542080573917640900006814376669058164876337778817700591652198704874950869336216298243857129197473877529395619639963504838659104942174493605661294550868424296995852041247819060081736632114421184121070723167530838227680562987401131414475687162792370421370080069723114475662347337956410926796722585370886834957094932236383861727571309075416638179825227302362695212249443045957901605131568876413417336589598861837190112884709507548074183487857340649455021451337232026390056327017670640722271339038175187813196287519277866439159810482418691340293702294501387686771535294134475375995947158469888589988727366459055017028370510051820355140988859292111799278192296191692815650658527022747595818102737457474268285883696619292175739474953664289158973703527705661073830189542757094299562623415178093127912697181129134828007690699724751590497061274450853280404491541965787111527075769121192442005949553523668196534507188889929712380323570207802975503224301514837223344100194472030994670701528320401629151928673485771610437542782884371872612066519459719522922199347937530223749660685938251320133303584748090689305035450999572178092567353502573224509284564382443221681313397152536594369941022364351778129552363042150547182863580493676978839370570003132750648555978397843305029699984914044822981410743414780151451948400383057015543397838696675951003330627946732304419572309003094489886685723187668102054699467477741575817077069733943021575301385175548430786427330084041186736882868006849585911314072206389851016149616572429365485246815451664091762874548327940170597380664206583387752510850143173666182732231623659398981501335821735929489307071884363509660134061015219296328458681793080736715112346962033836761851853520510179833580580541244154773538674295151665435593953470282792765100500829567225757704368653447751739703507441039715366558204526456874127442260850615095887758381192624097904025265225394953054244672822267431062540192868071499630317507973486312673758006314953742330654666050781430980477189939228549596240329624433969413364274256726820752690646899106455109687997285395895871859630145198826532113640935810169766446133703522589241470996049356851987280548005299892194203458442708000938107765531695009539948003563031971567642289694478778784962308324409171123425293706156181067495678848983319432407217928155262827251185916066638086927567972266570636264371847601232750541060285657450127124254725779447185163817499639493484454354932731577469138363921365887214176128188686386290900130976302578225106148082154231800991387825468492812742651149783945860582080974786807782193934486883086742479004584112787094195153993584020812997686909383051926212961081850783656074005471150625499283923644604664244642870322140356526810947197529047446293714435238207178656399175648644034798602678608598291460164255928945925870313784993472356496760576442551131042717217811199818353005720006719810670607508601974644680127873778246161057074493084496534101192226978305884087089046841799738170123156064959218793254410766420871727563661192426027081783046903404268209822904637705096488799164682102039099906121376241158065077445158183174962624495933069265121523230449876023554026027694372019922854877772709004025861328463401811933648676809989417438056988274545113092682991168068922228549186430044896268570348685956164931327295954297840522577032244944641168741779176325350177902173071010454762519880510509295031109666071494088539089885736626179558677433147161989963889462667813339064729905490409093183773039782459910523316461141087902429275284696991070687102594720375767098669424278508164079550484973247832355453318542674306113306514247630640245692413740259259978812967510199314905372066337994436986125443924944919244878839922091630903271362905882556130907086254030295182851283021464194807655166889183620145484639606141707088335038149354716010278219344574825017344066576264765573068136312511706171390010216283363093470375808466368879322319531066210256357920292573180392429625675062713376291188278879289090753467670451277031605007736901140564279882279289911755268704232085420915081550375444066536108403063820113466693467090039177728940274464226975428060792862764515020764459728881831962228379931727917587275849137883928733924280300387052622161721283699214644641013746570869066302559107516128688901338400708369745103435064662948978033657028399329380331357083978888990439801014041282827509725072950133498632123004905923470079338717409949495777694898910265689776579640399117398003225695390250679670460558360733553882558425890327881024051074726640172797451543034139583994254068997546174958584475248693535326949621683950976776929706812400000975581962455166649603114162030976939346603286553548638710873441605110076765409022254262886365357312520339088553045245157543818602104825875031344190452744395544272354440982607318710143993180574053931354206130409548158513939847171698135616641153097139155271550794061163625106768377088808799941991061146553483344206638785540176747233366074605714561291375323157606837829154926667816003891055835604682189339015781748879327857475431354124787176704559440193482730510127876724627181614576981375543219559235546414742670021981856561256865706918003637173749660002563679805729211758016399572713701489082681179505546623129354427057489008573605108739260612155679062565458425258179487605130121230294975470827310762639593898922804138801235743786329578388446407021318480501866626809763523428212202920707708330032306448505573829115967620704741256485259254097399047467139966981989625474128446876553361802321095640920029979645287483510105294202776950979867787434056504490313740560996130014011385857106656794927308054708608546337739073766478700205007400633611915070517052448165713067994233650858116323870428830682029190182115065481591362632110456977100255152239504375856012895146398884741087832448322104607656141573477400882585823390293367139291199634043454364159852592628878609850487180528384302555245675292076333758051368949601834975401209806974798516743349115605606354127211613407297497848240707488398215570740547840860287606814821790931144169218282093097459793984586827684158292339062649992955343850174879722002002379133567535285243898508350397699549405519450225876334160001315878600135322013719892568802149348331444086406129956324439051348113405555251058433933665819826503536743987247197515768643670890101874566384452199924951710921725154572594533782983299131149120762808366676716248790235070726715544348504417255013003203481872471391855541844173942095285938527162229066371373425884416490756395622220492723363245615545010278125899481343106663335790195918215524787661857984510205943352612441838730320405230566864930516085542205298850445745966473459440535082092513900168765023609597115743401595122776844229070398627179128460648126721735433531117871676964124551441846562354648207716991812425958052210655880716938317433496774533285540547820391573351790179085991937457920285357835848474826529717664722349304784635077580054158939406617406095884982731322589880070362863483148363278863671146868170625627132844933330095750627179406073146706225631423770364845382537256668986053110982301734150415112162863837473736408688192010180896626648312205722568794875665842830556111995616869912033136730624085697228867077266852416358865847756834721924719835511007480311541030114805664657211942765690731613335892743159821756156277364484606920890536073782250378871615062310246774535214412655166624712074361011363036174362907090074652358047465472336451096192157480883015553537741440522657663600011354728168255431871256853059893232366416114289047531835444549904777275443239879483595394076228638942806078682580268258097144256163925135107138253162092254809397472797053250619039534378867175874769946931520841319458381185684548654158321118204325757239467821112466996708352920190237762927990975416292790873079479819309715887074894833020937980338818872321741592793159987782009246860680303701991937022438174114184047378480414699885772757699472112707043214132768865701532011963785919133354973243471059473157608787503862962059011011566683555619429276287510141029029091962594832641369029722186321229898877784661123597181475139782782513671805683291092004662605133300840559341648650648142643260937339142375036985787043045864093815086699801723322941052987942635141379244300522662910460848377579594275653938142881814804716705988053199404689160989522596232063250471677051996381028827056853277920725374032735268436209052980646704431003713417612169052544181468507341129417171210141702539556917247790264871213641852397505909306329825651913851833449078596833170084261331559545839758074961768657431418483180293054285940585288220461949711187819000273461411713475543267271382991142754665309880906133922616882110911666186591198234617206857779080643289481180509826457399716136399156528661738757005317226849402190163804810344380589241894337213999639471592162390185276988776939673591809412774379963603022986302474801569620241171885235594959119731717379682383842820273502181541574819521264726601880641953090658981007718421591968864739659267572260860176891893417971287445665597402069963564527285892858568061934876028382146026484776867945132132659658673620693949172631472188812951872184882206188259979923139556599900560374177124256525750547122890237195028999007284821267129248340634437868373122746428322905288886231162887385601257034686032057969418378833886256569114287970816059930515952724199038013860082507077627541615615895353975443804502010932339840911472302372944726001525469347541070062542367833708438617413231547059355968243443888182871651999453629141811429839383067877403260017166133395800373414584263394650547597092359913716684895873999179472611541146649450114240876170136829484793221601394083895862228397398737266984068458066987871321911475906733690778017202729512777441186775284100482482055732240602844344832879806727816315923795733288100684102798042361467774514242006567346154419132674415503195005689503565877968493635002904069918114680650141853947941589988174791431588470024298547645424716902003172088051122631775763834932045532284981518547956902569018995112885203162716166834781096884502444771292361553603815528970034280225613233390007162064569321954889930865750755516033320268964890917734125239068654968660307059670701058173084519758622717240056454784303055131725305966073015844740782151718532991989282108546249300416363692005957812628811731642419825863262338723339957151431241346545883370937775052453023710673382559700215762778620962414472307921044686105049634572358621013556862232991100660752309568796795277549388588315662756227192426044187499178335245479333274628453444867489523136346997057704130704181996930819928907548058273640064016948807546223861605764695914688336888549904380543334176119777023711016167937261962979634436021827427150459474437808455878240865447852456519344009100232839248756694146642643388875044340816721729872098327179457227788768184661319429352774504645308951138301759345856682714038478651789782479984525267140015255054401166545989847443133945129175572280818224658223804345770216457606799157093552857273762322821200612538888948497457393158258503289855053235558784901163403221709740248616614681160073162465303676711126798610820095722051244530482179069428739181273488742759845681233756025607074640499614385156202723788441882528827214825883550566813071168346466840709645080317299662364132053653187172289731825624770913395422000336252161436605128416870418343372599872578932292515891002765410269160365974104269564767628532404330618546269592011657778384644935691906982040849656239085058009352339777182008270760419405205632369847952813431780622300935617720478798367007867264022366977121205346639347080494684138007447297249527800122456404236806010951165991548738555228182869702145564873841887103921035383105662465425744352207367176439596283986398075587307400295775252079095165285907129025045253125946835167882641086917119040527376300465050074635934509480622285224613879156380685172150708378846918320633651636163997034663600813785885978566736130517088360753884403189376903198958299716377439499703872461073648325193902277376764428736748969487151114998266175339531235795738469164791488367262653834781957901270706752062188813043291670149923612874605218828739461272525945693958974355502180516579801756368615117033531746358465021566014848010586640229989392842823560789041101156636744816518209942910851566224900537544633369309269476658906650863798380360761212360387732135084126137551180733055086022421878683711826228464453543451865009644491728628755882375983896836192511182108328493903966202741326821280855120576363697481651147153170504626124325621867511381999119417983527928985046247636344916234056050753681262970211738564709900093140031672942852284062037721693515400788223945410987148436442886167005751682710193626958008058359430771283200056529941666807727300993297257512218535129333812962115016866658288360393458721801787337518235548772643236877020187039760371831499810759584430196270083635379741698615983672703712575655028632218840975303662653515509158781823552662463757751964846907170473525233407125026256755863022813021625027274118095039001032017900360291095850782402747524176661406225481246686737963941237911621633050313502695575267607398658198834647884844680352634555146335514767175222998750606485530700699838833513688507866863208265901166244669441843243951225178515313138864648197600565845484278536023032524022486528768279706010408342644408890957933565687586664897402809802716947695811398071578224504783765944867780690965802127188761103484623674934710061578359074962710075949685798604569453126622660178472272797580512630715985538012552631785523682318232514326841218388407635001025213420136219638991786507820403940167691453364485966407977560454206487114937097166453789933963482074992712436431788420917679595493025387215742156518263959006067556282791581426211017948714819308437062944739866426243667896056269506214208792814990544791552121860884698370498984240264437043825156739981883677452146194626079938462852393464660879670615067016053694721996618519072885210038016966131820229693918965776652022947698814605214889030576684079730386994514893646204064306484899610438651131265658074994517872302527387277037112623502158353056451953198439594648133612300188558292549252842077449376216933796215627744196177062978353187983339489994807100964283367179854352555344504027248507844277748582838981369427812602449447899871074284424737971341042412891527352400372003754414512857784795195176385498325595641473274899460032468727101558802795736250241732078337150178978395669419328018893388899802283226662575593682096670457248933746085739691417862833629646932834946674961175809313637093629202318662338368302623587405703013889265081964993407755527326127511865051278336653718598474041716242186159033680757272419665061215744949912872792377574275432102683409698447003440473670781612844539450122556804120250990090753142620835544535098908163907192483185940860861409606793401675633107687754832828492945451638367838598937576002825750754282689956303953572100840308288924963155128013976811802246388345041928321092283131347753736627646446111102293827687591937768779614184054443237844159016848681624404465616715158983051658382636295589453233736724812699933645478801686890499101044178427336859562026293917867231907085459670070253736645472271937907281703627792729763724869590280893541316288990099928168597825564054224306634183423388000257555536260343312833688761873801743156934403390083090697483144755970528041830426055629664869757748211510976447194637208144977998468674310241312796899017817945598945241252911867951333334693907137931776426387988581632023507995567976640979529694060839576872211485952458198011668514796155433097663896885992647738499783417479113942062951260864519661502510353914435229624712612687071142346690911770342220448754815826205587136454376776208614636640110759402394281622136792879495822408825918956491130683710087599292641705166544991052537599809778799723147042155560818707232754128866233299674246166335315178620889452089059441850073930891236014247522637971689093880921448353770650706017682648212961735847175379268895038457838888714882519234618804590464330308419941159074352323666377035749926976847971279560336398980723033518087961340571926839807227393081582877493787091837497247293756422825267991124136637024994006786736075776104270174603556577247267894703616453770142888606356424951101671356621576891688407168132433380143612859035109930152090062958608151416584961382048127130112342613921454079021180450101811408912811961232327164531973349341246100230054162427599819392207270165699797889768541820653349395015669109072998031630936587111949541841323861906347075113615781282884731872323934039786981197543754374836387729396636284315931071558739120137029216120575938739260058959989384061539570885310191912720104071788737090252402719233753865481220826404405621744975381894635373961054734184072004316988531336674522431959973040232599069794679520738419547752615204895126274806476659604612222803434530206994641474462662365644094234122153823610610167457993023627654875799454363485772297012677719656236450721317224928274988524333269436440294778155609407790263837938350879867791522708039906034468194699469367657388422897390880571367581574112118960139996637677903285060554663121370706028223714535175252377919048740176143515338962391072455247019694382867212325500582673246363973393637735156047770760933020896766332884985705935353551875651941140181299353472396652893360674047315623705488004879640061924027497305161192749233224124131178017096846965789666197334702989612558485664806971474557277541954870760352269122433782178522338116585679029029282048143964107935251878796234157265340358255929482564877123840503283175630435219837596831221813721316762811550308078513012035304417662685928915639873739744436228480998905626436986308004856659282116921500403075247293110931045701774722004279139175982471434351212621259096352920613961825879840992736296429038229138891184201084942978691352477344323489183167577576252714962780174164662121821122717308793715603771078740696505859844504884725916171247346969488420533844712482187004482100510396142074440817880186057751770553440082371538209600256607205586653678503815688727434835388450222690734764828046007182343279305045068483472490335874652007515929850790335057255102597242840181613889104511680450481566825897723396852858241738088669746794096553999887115784702649031724137885627297082287827426974859437525068968041456075791874808006417178402276457051720583431149801593603862048431896875247469816421026417728714625010581800183825804916884915261045185946883226274316610182731560649613606474436348435282390722148540720980933530617107338760441752642664733746585018041140344858521997590798894447504205830079851435739823184127285499351650744028175231700372408568806251386948523195867703968707539468417593537447513839433542362032733451137494131779276825539483741078904117695589288161943337656614771658533867772380648649336575499314938604907186069098252563482996277128980623845013232673087979530020777373161293329198384541329081218445428439516882213305332582457471175091469400846535313353504263908901480089046072620435620335615082703352223187712186618855864698445231427247227421961140795607062264534310278569895668929407122794066171928221754856418019964062271195781540947628471797555320446876842102526731691404320787175215096977628101181185663781029216250162658795708077587604457383177392674099016217467586784799124541014995284081610020610644192388820488455551279712103013177185844321060013960933577849342826767352487810990719696674567155204161978706744886667902502701646267811734152664410251768977867759368949315475089986434452024065725176022681276830111964754389273551081221389573456978763335832312040853911946385532012322342160989852978141425093430000945684323393148756103047727372475671248809254355452303493744786238058643359160833570982066167257264309453094429237161196139279350651233468982884162802431394242707069490769246001277975539601413831365703145624732575804108859935460267113611349029274881899797379391986384462712280462107836374777977477217188480224570552034803618217339062186202946536524012009032495369818656420905574404580256898614570264914595627079688191113773311377535414820004798793987403851188220494594209059789195553309673905412045075116022771632725652500827282506133879054598355541918658602366729906849226233383938019859350530151551281892890567694987761777439111521854690318353049110275646690449258231531392296312193820408746649593188801157545215394499457765204406548943056413946685043754161506330569412908651791440268169122118450867309207365547010327098835087039823017199455794020644308097530202241889565842020853690397291056997524923965976957517293102111213699193722588455645556545326363530265370716904760774454297103042516372893902591673337343415567159668744964876741277622820384854382692550264677478902504025325669864872478267395036052147914742415864862790725126959391635095102526024214976952135777877530859955767354883674577537424136617736858471944819711596053676555757895099896815273855585255419201704482329013369537805750853118017407531232997968499458119467381117494216069231083720536987470574557071222778773141011906171222377772628705751896112323277022850480040744160830552847182032320078943084479866646866253585845607807639152963905032159855239292400177366861105571147141924955966098084813809778380811713980731847126020885163835186633854382805906807709397017993937792952878634212305373364854308749857111080254742583255064567214384142142236655655788469129249798023991454433495774391270958818142573359719067470322116794647514364151705278402707521686938084637068834359458431784983365450399056349159537567994794512596392558185352760628049975831469492973037554707265674640193584099058177044752881302153020476443811565632720160120846055053802483408789279191621739950287576809563978648139638855484734561222197258174054450259025882121086643785036160958204458811203115993482863274279125200910992109394303814502082634374185856637198287070961986918530814246138733539550349898964110336828521228573489493618900260291862233273270895884972994821092988854373338000045011983084246387196214275286931190193219841454118569656974315954182967556499256309248529449249015782271024445527014333397485500755323363761803153137831274851413397130420379670766960375993104928403289045900273993989007064490241732646363816335629930054569750357058652044191437739210810988008845967479860068636352562695608711300514795372746283800717681334215215805001575344036505114359037013534740142008134871139774691611181219092905353091909821226648878810887936508628491897489228295148347045954540757242676482044375518912153841968503182150492686391672487247530843940888449659328040401892368194499110564664802879177720129304057478567988480382077865577589126896519588115302198260148668171298961439459830449087202058745506859986320473661259716470819302818401916804846234422168267112883766965863125172618528540382610435370498098983571982075765797160615105411500398142694280654893143998898104787444452346068922534953616486262412937515555990255026823817502361971924398172748009004215842742029361897438397621717443781782466858370293562873813000560393543229415707869668048424131016228648230370254079804604708599978615668218599092902648359340756816058268800292106657177500077927571550238564645212738910290219299360158936808563298433454130150241678101144643390631077306921100014592116405104521125187749409723442319509580962838591424133227725256887246949839777983915984579244136238420492361426724576995811122920371502643068282117880780322204441014893614952125698437235984436659119389958440462539739047774251712957204255300912262787833859757123147808074183179143403160799741956403433684958499442752513653329460733348369587194533878223552558528012990361378883894618019864461951205573638191901467375149778441811667942241091606341136944432303065613880837003106727938244350556299052414252529327439271158308041815650258937108569844144272233456364161730347721075087472568225350362503258440467816395371260742692469998239027437616753257841057738350006219075107472563170046260012477695374378832710172320234807460081528675056574539385822429082363926992787028890653861745403853893572515031190656987823919828015682648268302711155263000435953703152554836918456774923292836579334299884914716578542154796915431330822266790203978062968157035566659189485015905228161313364541599222139630997517817185776579025685485019978962946153952341226686180166623596442273066039649464189646399890659812647746362810721381818963052190595284270849919355712569300302280656362829565112856079567568388271665281948851909015815546027056531194547128905336332004688366964395986181041035887360589913745471004218603105671501093317040540843148056416001877861068425229025287617720656412198259896492414956741212729847829447807535065885329327898557580535202561456954485667893763169941354809814807759191714106822267817251280520030009983843597648994943139206912182075413418510681725351249066501946254720348438144708164460433212058951126846058416759041278864650894848832965935295499278241879761323264573351184283437242013266868166500264732578912720771904365891718534487205010822518173426257503522853478759860068634722606590188602907804768351216300661251704293764183619119862669687058790721059519927209270534449427548012898713571312442754953810503738891119111688413418783318218549869589301670465091922712244825577288478707369802736250142948413045554025861324328172391023021822688717239372631217801396748686678205654094434233650775025220455470149575701965232700897338573033159764928650173783711950465216190085492208664341540239547727518211065167201089510703252730829591762163305076059548058456206064218937232592302839719177955989207531934379494663541776844051522678225181912092364373457237044986157171716228386402745604125848761601344442463851854048337268035944665367023292368015111795532700141442153953500364497580326599414523060465575476913613734833661899040028414810093458949935480166114233866288684765246365412369072881016849486242044474397173881652435747256568551083663268292162325789220855557866433830850232513375468140466142224092117189870843798453538837229883034626552317219617723797508759796403499423138478940036830487231661257284705659570224742309434225124442090102658883153816393155329158233210956333189399310279282269629766009905607927227142316905321794885628457071507182615195319811429035819378574936427894343641123950822792577019807311269231831948949365684053986766334251699811033345612174372149405731352099344919728873208730487448015519058320391499680991114349426882102342987034855008164270289780771078398755645336884486185460217982878295723640089972343149782063368454196123894610575671663056382206404376298098080003303346493795350822749141798211667786243097976055631157827053231922679935928815631774156253932110794772924334429615726918095671480147566545158566888426203946418759731187680066282500973151350882044141791802461801250619039613165689762605265144776908784512086743168226276610805659376332512071631863641607545379204905274344615722809152478826117312713855373782002107657895932466716847502016166729498419527405766752029198221586728171223623074467886912582918972064083859753654938660535902754300225184889320062107648442414413067922359742807015152722510395826283715165980353025482697040754217299815213603135048799297330722458948061074463700756180671813956299997261612997508795996860568900005930974089584163174868680885060035618042006386792579555210553233908842966703000363919738666365486604624650277438269987477122136916486086489565681905573312976916370571230070625060792243126549004739302653933788376889280774959377981895022642837249458042118026880614522328670504111779898902790439016757041671670483871129219240751282400461685635742499612563982343164363425466670033596300160174177180781063362179849860684005444553823601979703997596657415858310269672974349450989163426947588596394834240791690227819191878405124918822807528413418062409576102904949085197208209028200826092003608562087798667416270247134587804139170849774038644390607380047147869830956645737142915427378578987400247760051274136037337612591566863942257757517187372144219614979261120788978889140380209503820857953098087701064259355973096278609419848970799205562102229795343381358407179975017254581113567360041679404800063148584501813820140474376815393673155070630951343818470191117213255654600059985116983715322933705233681901068433926331412061569001122773218052989927242289383181963206290091416845478408929861799189859315221732139468503519872404885625093055551215078990354128855260458879154726005733745067300262632809820623001917828511389196362150245074595705118688532522157684552640171763182068642718593203754564325714010983396140942310433716678516616101651380442924592054797934686385173180200744641918059702694048245313815081564418649706653306422599888381423636616482630625055693647995692272572990841951064911814274694640438512085199412766510527752537770740067596586565001008759846047033096791667777824283223816623679680400509247275294713847478920240701223460857512524623989345504494683984879407732721972647345618196251871953730719918204115658319446045437558336623571640014802604886769558950793561120632650776149288126003938015200746693589089644236125449322933321935794406896228229841861740303352964124216052821937857426165696132891344224416867418273430437458626971226625901567865106995395751537770287759350296464432381841601878341558286638484876197792227597607802257146822327276959570557924234288591677515428781441185982822171258011440346235238486220548602436572292283145035658189287530074212894960317572914222321573045990721013378204736055153857296262286924630841253095093842514419950265463763277279897518403238182646368460059451999457147792279425625079592829604642431947540540791044340849949844108930580356689628942116741678883111395579190075116199800674205452305706600362273483206423592834668579083148822996667744267881966705983132252781330478932421676969137219016984201109316870488706478712838266738841503510760305164596332939572076488409613297477028406681288152441184885945361130793876916470038267029799462534876049959080679445468705037559060495563987646680235032321488215871113759384469136855528036395165365702607751558112612046287535179872658371008130036556760324307385988667652324645183433830221332526332535719269390250897282916520856425501656723828026047916715198818872715791009864015360957574316164391257456816073586569957521013792369172738234053021265911176489003198454877713450961398816879740827682732355828598891236483869085689150925164370250371843081817277704147156496176544048174997582812753450223410717616615690033186693651285129486858232457886104674861020505506258584666420988219980285191413354296380350373990185812420747711178256397525622628836480302787772835622117358667898817140585737434371188882894285136857339840230787873622977953383737125646067563245390767443838709076282543056607223845413904991604922897136967093917627761373980278063209087502848462373188292714144609256967392169682528884834869148106928272301008683367919946561473569967551891784999914795997861376906934424997221134514877932221491348260586026517115554057359273473921608477953186083958611534279078189434276566685479361983217820005680008856778938768655623427253655747187824189225243437082738129137185170701717827301146065776890634730713160040536905896648518974551782804050924116526445453143019934980323175284090447430162847732715982822519300102653453098059385035988491101775779938699950290709260074097391786959895830175227677161375190113580548233426464242608110725947751190468810788520671677204126496755941775211341514040097058835610807361020278294438977088622800963125172351574134765592937563144279992787166426933613468619910989799377576319369673319019070168072516857388228335177907985320878256598286110820658388375337540145089082236725378684241081885350993076583116513330845477108066789882541925241718393150978967775517714615028560173979323423427105825666249306842376410199545225835989016548638446295174171864831971314071474404168783705786671271428031475824947061951453785392377441704322698168887984917725229068294521334242913576234578215677201899232079034845712041970857480347982381338864815900320615387948755494712391012015259039589346205449611089662389150139322322054106780659561553076563240886827064787335369257189601988776658068624125315053046289133689145485638464058625065071917138202090494365937726836758300083263485918092011727380271184229491937045406751974740215429230454363765022086569723820230272165000756117966520448018828406985221483101181143343306393678602354480671541242226534411280142437987854925456885301042800649222925910004791576890018654189190807383278479564743339553140788107809417123098997776858525592855968931657499438244813196588624270065834113574653244245086981808798913484792663085420505825546226491364153588290259201469236244571985931389281869518496453142746736711472679578985023329998309110938612093720026614520570413885435217982484043038981938138035942282158422049299111805475156705521405597928894499472008735169134648266337250454621129655930492820262622453018338901561733612047193723959079721914161800662892833267144111461546252422093029877028063983383877626760159552668379862910174762586262643637431851364311958998020643259560419141534813284512822870704369489796796416145563808991560557677630368883361567648809151734452205443853575155548492832938802247074275495091767789192649014227449139468004674661798349489387055007663617592444391534365914948375536074006192357920041287467663816477870577031117218344057657043685040040704004745763066152174577876804411012034717816725211429003662945539856969863521681996475174886411096337231211336404542075613532891878608160386631812428741454663675098444691623199912276666585987821164482897346346371701870461438876096508091025799539740126358933421391804180824008220153926863384474291278480088989609886079835261193625830030402283026482645341672805028201928653137893329448644811200531300547640320514776576141224371760886174708056555386801212503052005352987086634700829534374164112345549627643589228858205435234879834820226010995702707774430750662529518821115994767382419022628771645364817176806391790433757531821514334600432015442196270688450085484359803320384820666311136829123530034850460419672892922371919834989477501914780891063498697830295429262823645465593554803268081023496414662590950020778493066053392308669831033143774057673467103700264625332282734738011467474004763747776987714812327339640804697614373083979266293213790376126956359469328592103591558410550350061667244157788441670403412167680336819652434963461624454870863435681586575416831090702445369529413139131785176842020257274950855486131384204372008228334973964572750991338230914246747220462000773237538793062628174023219539168036090368850553442187544609358127039949575134709927677749636862023342193725750523982669072994544959232125980373827013209209824304758396357090086114912761745485604655721557405549681850292406393791163749062287809453943139274573535674008690739805238512650450052046844249874348044958042461653660107292623228945294449739664459430928222000818843870978494544962787725557210050162267211995675369639586327500782198886515016160061401876139095785026220241470541788828102955333049041756580396088458238508411017272535735717665071909878051277515362445079929792304110058276480446086466988028827955782469096998847112987095970614094048252128314668945799117804972331404680794767315368985204621162520535339200148897012576995389393253272078078195449627579853579486960013359676910652559667603536839189880848915159102104166400533759784777387971774625689911975726791435018105429154132514844318767083542938693407894441750888929064025569656787562252832981827815429014332590012238018194216520454047851503014577646010692855238889034904885637893779148752808738260506419249352477594698949450245005817144316386906248733863397243464907737850511182778852881132605959962408758201154366169435516470418544932141774142424424700063944811199642994039668351789201493431314534470483646938691732538389643289840907174374096500928556827110694219189097950105891154898655548857056700659206938658076104829128478553945965591287717761096856992304758821943735198948164603887684705570356716123524142421239362906134583963500084688527880234004020326030564235905985207716279129251999471463557718425895115665910558504653110886234848184689564378361646335106786784902864457033704915208540238862062167966475376092793106781198541312057022624203397032366799551654640365453799242595635048080974750242528688601268938276968625270707557864311609132861525652062344551869209051573177847670216620517214478506877633251993120235973221626029089856181247167642287032347350533372720548177594388557032780663626847507534673143884842078362521184153072600878615228589124784564778875052393798061045045356200890209901605624022372308357950648311996663083682371024867972308757588938216185987912991286743227534106197737334125444588506445363394910726439178307172804261562464903652983271145908129979710275965103135018756391203943787366716681374505710867824841124651753602475208094060746590290573034320112094848823226578589184744690702850803944193396137035438896256521240119705943654751905407741901090089767560687306289691850347704568270553756172129146992254707683402213577056718377315455540353404905468760675921054333814195812311872401381546043165483862909577232410260482886160452691516324888685908790904523626197091908767071336453807105946229136296638389102714292980384848319107600147358495830725689714088159196195316809180589472477090038552792627909430839662987669122803406853848626820958515997226946281103979055956769305853229812913720546099820111613579626208891787486318185018084876532096231868658055012805463682221694126007340157993639768366297784006684210982788436157714858037795839536814109400154159972695604241804642575612711407284366327641308655808329312227762942072264750771847681505281547360424631191462004918863058927902532776330830140262067970067068500540714952100590296796301343141176656024168508648060092768212752046159114743031765594249510730432902005619699177017169609237872841331664078472810085184778814274773578875045422702003632287337024975181770994248806722087342128083241239374669904255027721743048404766729124256399494337416225525734242772835353176062459158903398921758307194776714713958769467507827209015691387230332713865141012621405393607475255721182655799913411050654380324974307170234087696158876821067194279933017089707763140082465653757760544927844118525502247370272408216978460561285280656217804800888513990779897186191962876297293351518605002861175219797353459982371666015239176587616073686171559226790117804483919783007617844518695814897248576881520392618322893057323481255539506454105545179132058455925480118654296222203386776151730662162490646745771199144712484298835310017345177469953161448142953803136858093679928651744028644746669200346255191454195782489468581375340828385657813903410754152179840397113587085153573410631519999374409078696705125047657769091488743349478599698364331757879921024253787550090807456965808437065203271014220795063584391796524294836316569128173142312730624186672332392347798299361054572313733496554336821563204674830788131764953453472133767718652152821997653836788603750965431862037507720273488793074728183804925905429357899365603570865485964724211774124313487119271669608850438142963803368506513040142981550865778491113366013185377258594043611945864625745913858632262950768567103029290385503297375717523919263446863717402430623641757762576445696227785852858683912598978386937776418240621513846617495636430946647881323535039674040982106459939532027540503279089702512022449109502964595463161456681067515573993480742878882543481001861958137004673274742806240644541489107040116676536512813525039927705374802033937995467215569899446117515343518273274826577188044152726483643509674258115683624201176174205083709336650876385814320152526068203015054069272465616969751417944591675961952236564507658507555508678081825426561093968675639371405689730960814791320245418580798109675958550868902486687465015464446149474763391383353888918113837817581126376809005908082254603772835386779027016480683593732502469962303536829263565563748246732236571908788302844377325214404621914006486748508673753407473558422917704580516932987737714124834711718165529935324477324246517399802958392364125076269997708644595778281675410529261229655774395309774197835549858209764067404220620193126065860734256714448013666427439844556632179734849972581623012193526712063607741285050088043303061454777917991446137855698608285621465011423823154905596026145933836620490050978708558572164228241402626629425133732500751294249772729932258857163991468672225116550000363081288875952611765403625435017601524828867975396786474844035552628534021301146249045674561812768136341116949553311704397662279940173682910191519326945573969863765094231297455919998213836111707944832317487508260414548171695803165768582866211774082197239207676937298267655660668554107514528016906050271713456446577715202084610037137301149403552049558789572533102947771555332673747113640254934950639900303949106424559457072446610106683094673694293693644830137723552855446707266447260039724316354579063013548849943874953039403119788357726313763500590190264190593400001506860629008320286193058495955103474601663905826103658136525408328582849883488387415493512859939860919297817095477896999014676753594265833240148966660751700624671439048526865287117994474736122692698412628727904341148047049141511044643482858739380230987468336514718973042793690929894971381793573418662184750615092904639814617547844210021268541676266840598039698095318435328977409136690399932353565109846796600461990007968094570974743852100569794960924586750356095895089939465716940856785846913097969310655516326796399959973468940043496406126570592750820778088363545490365472679331210693766330631359374778977478365114942812530327699475696820151109182135264241299444421950056970746230587026421012780993723138281506823033355490731513064171899801756585640249759300179423111363947733656248563781580487573604025315361547682800858951621597316672752611746997150186614969720331893151040448074029582545557095156536702412886044016185903255170885227650099217188836579265432267591689417275272637959578580832880683415550271487435462816400241516499566209172235397099150797848274811981770357013639921186832580438966375563026546015995092861231180899453230619256172583534931109259890118948621815010937404181284280359763247914417224191014280832110169755504208904200178501903402117278078239515926079067755386041420861811444332281685107416653934542736952571747562288127913095255090750312020363511068945309990788132244188884078216567843035167352412770761179420578659689489429131254128313193561550157788001487172727321457353864450579136670818431272323778544512121647106467618677241483841587645145725505032258826173788736272982671679671578465088580096149352866851809312121867786801938998694099276529126374310227796282257840319632902160549322109951315119505610681422807481314656614439745305011234823221850781387031692306042716689895961088783534108288459669352549738848317301330786912462026410530896716992504631474463293314022901273719676096982377589933147329799504967057899641072361678221356814118627458103305995905045447666044935364995473212440630352453360200536910172835024425853952465535580632102022584169349010143387478476971859163801077590511614522097423828194095054451513844013177928104440237885767488627656926394126362465877056405900346413597270786560839779763669866036463328474462041639002438850879154075199323745265519419624055220536353936517454786788273237467509809680610362197821198461872519748650019640307432839196063603954447354139157150026744599691566554474258375834125271026424466311898828154635118594872394518453348084137246694092007229586555612635088520442996554216727332883484308918523492648253665352446086759140706069012901892424112068371986292830251962533168003646881207892098492452430741631921659083693610047440353373643907496331440952828271134916995543272856401980540943507144431882400999014772584846126824647312865373878835049614403085352349479784413548559136033167331953128108012934174712147634120389731886257430839244714416950769457090134851456499405659990360892267357832485159541993140388182168474610836381117316996897726305436306459243571027565407334058279096490384898912836796657381383723155420100654731012453949073891307877628315902924568391294587890127802560497485162387513172850856416775038575093069309447686433998378922531569651482159237197294731191065399061285415163493864757601756257356947356793055041516147016154737234158072420013026230751550673718086739488367335463437150400665781365699866368873077656380169226633483984320146891114700268874483486189731496071216730459317459428892712964034361522748774020326979749454281780543894151245493439055292564259262252300375985140687092608686360084767874503644215705911915106370055359641970396328460179450532158787577604751323900942013586900357057650520136619971160443460098919423085093056654877057683616179025766026028988146216793330294914862156404926715633506994175914715863623387534466180784906303611574868404000015384171111937709256129677512355344287893515559071717432730788604643745089391766241174816689280022004462052118306339278442308380006511327204034011734038865678529882106445028853494859536618622607051826259211047960955592219039267000135617601267102724550091079476625646087684747025153892666857394931732866664829211838148030613575652476062912635466662082788848338626770480158624846214809393972143601378059010338017200323267856681080626545846787405153595773022933675439183991776236251311842752410630945491501045290560715402645181907161274563973062375581473377692031905302609720827410644170003575518714663949790237934871619158835440576736476709880732555552418981548610930028802671969559817945502914542021853204417471481893736856192820967881646226606838836286911016140613607296802114795708044202816552344173197017462665320921786440831695322064338253266236401257507874752956446500380157281367817620346473205033860504081717613667583697798507377092688014233370576220363899930510025758816618067702159783181683452482991028766213557753131803586716918224253630239912549407950901412634049555486054810570739552006920140915917956879842538565356470649339347958591310779188603427918532249922192639118772009498139716951704358145906628424440354223584429582864723077089993148842411304538321568535925005133705051869243610425914081277516088476936438382660947555255864466612713449326449831827208140918219000828584641331678936312696448404394844735160252820417426811340386875878951731822956485553550886504990501990665091537744112168883195025615594981018707450531071012563865356532597533405453833199257261433334241124110654750166152622806087003444902330523828070779003994402658992702425204203110746066062931878697196539516762499908907016388415915382126852814343475464279176949918218509472237029570429334825044373133080536113605828900330097642559483694724486910284566939006799894795969173473922237902561056674958216383112518266591121759312784024658780832016445819335670105928370881166345250691495684485519665907941296847227740330425571558819214210066743291413899979803993571125227887502677602703477695241015611498408350529850194485470905038157286381344185487689982006853719270790750208176906396273068413595654838728256755162829611694834529199889805209816068031201354556722737679064098266869630403997763254897360270489534952511168284960282960580644142619803704299689320010623555925885553991947189090699729861800326425620426168368735598801880675948046382428816377428198908372046018091364816189907780531888659150356728821772120812070780732465955200700283309301110828078442462666846122911910005342539894279251903984098080888190604458684521522062058837634420318075584915983398028482306393066025514874748506784543183293267506004070435412929914237339989619741570345322507142498042606660258215427385514782921561390837093122865193171946428927838855237740428387197609647777900890761385475190193629169378939446552040355956713431977915392221060823242978916097700953315717076259675342027090362656838746826073893369650157703404563097496121974244622157072718883245880257944383239872798383153252102791591721521958001367070141969687894728240513747951651364612584570799502688707351248523037749625902722463881899232799331252504521781379274723178584008735340209789673084618424021457284479753514331472124170062763656990785649884490263496309871199635318236616229396443541941611020335749709177843796323394678101185047396600842504378774274827361398925224699498194936939212667063934769474997513037761615045019477807300274612598800914314246675277495089571686221306286240072103492191089350950362416379217794737045520581221719213108312305178609042805833988532609448251077964005701581824879700429315442635357466815438021157093635837805847167033809149802148916002355005964576390495847445314557128612933294648687380345323997297762024015188946029968562650933061190543068234423469018109326968115744384693922136920226870598565834581348109857235669680696063993683735501136736479447690860692222873392268549081866379987001641700191954170656998175226615701496425820643415697006599721536539034756785045812099507847924480004339605615249447226261417358698482161167970397085067159494395561687568003158338509555880700204849686326350453715351985924166197928381726098474762251161667807600786938272575766060124873583324349449941938813728723598439816467752095450150200983140653498187897810818019196580229411732942143712111397651032937013419152834630741381952321802275298353931286911466035140687091068923482289530773614197207739834148332340982558452495767395819964877632007354545643577850540519239044135183322444822199219279794824983569137701627960884590079152118409665855861283884758422708847305522886044444727073429337240938554793246193542303220090845446207053496358507087492451345097043839239864942530888229150691577684128051862528499317416666247164537344036749762153643312549567123685399358236312066341612315101629142201711717309964302061840057432132614366275616422895471331413871582259126958019766947497770349792642153371829801534471081448181835547163315862354829830546879085161251804020221454893551180981117874092950891081454466672094924907784364689420207722006405965090068042979593539323653910633067499381139805494490153121755999705098212136344777041965330490158731394084985398590947838324930800889816589182115083897119553170856660823004267980275226855092455546700812958633275476008825299878635141424658781829781549370114052082777674132643729768585348288158132974222944363478240374689598163618275975832056012764957035504477138071869670436653549493795865705449100687786312812352044969840645197957313855700725875412267077271988609678299596105886425543261522685202211067631525812615513987770861405632613805217168178875247126692001013556139596770784547933758135918844586166084335975763242470751506124908367695365063624637959909660900166905228528694039044324597817238468373208932863629346346465220616285260139649608578679133423513191964058626634326694265583408830602879436438537636223431426918738189377299219888955176501277986264631578510649829427480373110265330923744207729633424401248802664691840125249134913720773767167241241714888521843337342014124583139166689318432529925567170854285089491975249430370675629024539684481885907711778076056943321630811847880731654025823256724761849635086882832005010922211749789415491146326678571075077625376309134116209399230890793592969961424610872913590950428767828422837920639929627358404523264100775944997252627166287540955017769863120536114807344544939659282150425584076311057050740211107750033486736546696102249500266276114193082440052668898244767471445433120771263054418878331684873351880503071727082532438211919174033913530962767329937095556004589235810292116378259490130576599179335045215279031533210694439672032557016291839313572130301466557104997331939941782054310365697885533087708938540564865798512871167168180089807101569973442748280708515721548548770691782293006633340663328208627069438391840241884027756829343775061099535847337491488036681518668953969943342371633630499157189781327086585225296977500719043893885933673073359512251053408014576572358419644211301932779326529665723253061968147126255536500519563540326279088679445860524594734391497903655369646220721591865715890529754762483992560865547549599788613559454600041199733949833308964823569075036163548829675624380300483950273829705066916173318247442590263651006350938354136693681205187993199914649761611133312089353786104629171171022205197727320390895126648901123948411408334019589467402224670034866507650568025339947700985116910966535908795323434586016722743992857125356087424643201370335956334076971780605041093747831772522191292156580268808700436166164507480484724111231833142172294314506915327661203329299522096162770294427956988465002958590187825360671342465578361249074417794305621658080937359627683848217326356489159121235720782900518363912669017275236293941794609243963736281530060506733031012788784978119931448581776562175889958178885162615700348185094866487305108585702067864067381106325004603825670836698818385068418695322438150937989568755867598243273039419228674491074535372678206214182176303252156299153745804636343214604571183537870242605274505723910877278582881670542956450415151171218803348001849189113033468186017562243714240208723369557891870905743646533383911746339101685469873217719141937250081988952736259070650025999225564938222101948018831577947742556933103571517354326544093041792448862447462197226218979724322484700938448818761832399114694611665471872514320410568944281255047880848149868721118877589441956347779687826157036403170586270092456098482691359918710129081939675983246607275054667863697068319181486693138648779168571661020470616192372506317090914092426454694228808180283204287275435268427151511584467100295099096423840172397091926080539374233555839513725861534411265277276578207007844645182212692415307777967841646730526623456851630425463174916364879366440440344378159864900660089550384398698653246117748595471370903184228026228367386909011051184972384761235952003123256543173552458654400475050580482828696121101780328928138455111194289485952272025100932886140783156339893512285680149461298195204246651896879560715004831389408776357144469134341388538717594379681093925179072601837037966539940198200402754830055195881444767997105210958178098791151214542569031373459422030349863259525984696298431385629905870237144206038769311164933634631536933834745272898563189228482158997764894793469692076937406841638735994913037568396762544300994321478237870906382951622901574754683802924685240696789944863682402494036386822371816491494504932847041693323576084610470560372629322643073718701444852503433580573491001406263713430931431152985383255775024980388428729995265144656567966765295394388023533185196069213753553703588737644293267834559073404648706132853606574561652516615277245226209495824233448708451195912492233225149647252136754832773614371185618727005576863379844705726983528394974931239049694163232620035215079582283223360481732727630148316051528135147569292262041038972238682629779039689152751403515002959150953847060750697592457399655025044253998793948079560796119333130724249139198971940479361868097723590753799459841600626050666962208128337107039918335651897813901060414185966145262317449150189702012498791186604342114769899692693350042433304903217824535292279538893468200443449917437032988267151048304598276249073061342792925232018790159292070743183406614607962632842667410817833791508479338913265192886602057801338994578653327998963815150627034560846950627492790114158057366917318973947860530754476422463793620707140327958184614038495234654418545377345959427301775183821803548853869807246468448795358825495619687140847985419162425794110635108697262756349002193956076023249327622564121540361998546077829055239793533238241848634523357995842043463649651755239296059271300469256562504247845236757275937177933510916965301919474242001020415810162729614256247894175186260304074711862577276213351020844710119746800726272336895711534219540614645955253497345431480574625015140797406062748724468345511971635994833997476375353333943785757116028153102302111425111619526415790761585309292631394278325476026517880634168080431206517361493071235250675297715000074061388696242826418144638420289222788025617597149621415839453604630791305382697923965236642267720630306556733334790148904254234865925796109856302550317934432635241645739002926962482567108001516051741178146743516066328152966923723637647322050588598851211827981385193207949057890762020118282992034673720025273238766727145446178667466296575736193808590538443989168356482492324568825978201049566925508025581671135476042824067356362322789135909182386531420695574673591452210609360110204190653280735191833917629185941461756261324455243826475095409556165788429858118280658433837115217934416508803095923595626438326142236000768645847695287157836801467685238953747399942069149279736929323709175981684064507444891757817056816847794044670488780015014821992944053769022285088487304442721385950944124832288312963842734805297668825259172587118364258960090642489816324013246147371877957136381709485525152049595177210988071033244620498742286607340864665378066363064460595466830433040322294039241818631933074933597372434850560427933801906807070785560255235308011489790652230316940094720697581974456022008462361507984414561554806649404356990997143364713579193450101443328629073251277295662667227690865444687947139403586327996421933000139116832291574572779676713070055219429669450952396628861968887958431647600952330966169745877099954351892620232865949938965705238960844620417455059298379563646089983722737592372106700244943254831739824641717288175976781895849722675584956992369335597348293580182930718324616635078703026730681182209476704229082673313632152001039813368277739321430026092140048622574258993760400065954534108386932446897344881217993679204728548304667342660313123357557159709378013368627311577612543542289632162276449655844704542898926653697852284775251409463187792407944620818551605267527391417653356095907232232694063706198625525303144818856862820557557181377380185954588573275519964126412418746210055744847187287584872270898585168997336547183816217743750507935640863385521997803518539468630123928344877412592683730196788314638766902613505942429446475100056838507435856208543426407712158469519161380456818524810208280529929505712891378165531615411638171524465985628121722509107414065156466457465289762867050291722015612849461550060085436007197903469223742665106862959617098223239262588700892313421808246513253474142551280134468168136716966181944324138331779678593837081315036549250474912539307414285942959697715663250576201567486437925503990205528829916106252129968239067775761359702198951486728156576909059213524136805412200329793553403597921512999053956869573508500518745202861565481058437713504753851551034701224681232319300602128157318308110465919518471395228672202159992890720920566248183842594820534602152472597484935241481903296580103673992076775098103183811329932671408718574861625609451544528980338313891376328839001791184990121674586035083026696504521929734329797008263839471147815196739211225771654594348555966156900713267474080677580630403769212942384348846201505351617754813358341011525404300119062780140062540053208201676782301415876254192311394339228159297352444805678753466453525417091190420599419729913343697411384157936962821624478163142329113360121226553781566745328284477176009327848272886224665125115311393527986360092499414967978378575497241209842386559069386019206387066210212878503850973611308685532957595537227624591828041452021071558915382586119387198234568639736353616638504236582779478222706686603192651629918531695515908908596706318837517119103985158658642350245470355463582173762889764872208318444642986612475244698721242485710981013793654337833251007120078528387701851472734633613528687430483599730501538572487041698371256601645971470919801737253233378486038769783560846963311523398408062151235556995553117768783315345112174151355051904660103747559162310476560490519874480204281990258954120226348879660265074159208836408797114766360108525460621046542435407354461800437797374547983480353462313387029740882348134523396231557107072645041098397212005845612013514542178686160914689056191922294043700222017608085885063445823484246862636289714203361151858050617364162465927210289356268026112094626280641749016078892140479980952885111211530076957328591321268241760780639191595659624309710512659855385125961068079909483429319944840677707985622203179026958025266560531558449230932774704520136090471330095420193362250497497432151145538545207328460110209448136735966346956609462989105603732367937631040058824280770163224517449718511400639578354974393951462644186825289178513543060651514268984414293511030276974788523580181189294283267822105104921887698335375506499616342872004102616542467060090983068146045606661080040507845347919308892501218885986347194364533428091376697047864659062296376296468986371737428698869242879098846348800902007443197359260400438259246972329627920799530809393515120000490648416674523843629055712350637154921720862941403285666976542782017760086735962918560211559107143993627765095080246733886742921471669778947623127224670433538260829500609007568655196467089328826109270859965396142521501682470062626075325553992075834660348045416508124833019998075605681268642216219644087980279241795087161608651996276482883622190695212288766272613090143199978926715755270252060246670165119618048599588702385050647965351132136715688681640548408083008871830463878999091142275374733357652880080391334558733888307554598677541163925092037321157934291461889548664290386248861526234774646399606157389897550254323017818803827138332857594859122914328616433122359742171074084046919261164714910417514080584782331745773251403852137679230123904488585704594861388594061930500332500532974950729345464041819483306517015237137966097208657763812601030308526315860134105572420858132200818541444627407367203587945153956846361574047266110214446213766219664478456060609489358640825619342208795683142385979267846267170221545603228394154785252366142009361779336557291036059928807150056872573195928005619243447966069399318930658815865134632428163784004116180216993470314557734465322100144323917425892533241012629364864545012941333630373389346659262170510686091488195982892067943409523248581746917240777736122090423868581927480134768267657086352516495573730913474786419721873268897466984520099457000931189379419760125331741870726582355678531759952995479127358488836618315528052314254385295155671785036084243979655186082535103506546215760177276106491180961715809501264821193246858683348768467957674178832689311623279469058251167361791976643816707712589324095386472898812046357993113021740045434774400608805076692512548061403973040778969391067870544716230398903491892226099305578485172051627210028377811967492077936476440687555513825268295123046153697574903923241976920485192893703184662559942479576725101612325290615347093772435894714176011119894354896965278304050244040646637094036335357864803016980102789618902523846256664908727101146441202533243263309789176391568033097058417774309387653230686298308745673141712029373544643108890119511867443346876681983449540095139906413497390335856389518273648073988172787590832176135911938543238348135808611841740551718363658861541669871682605625283863863922892628918240496459393146851316474385129139931680176614342711256383070845669837009935882231067611664169942979277703937148969803753519406431435798961549125697277737987833800676659458739823895968034662183983437290234665231151248714436860946175071946593973064441598718868408001656331732120192215659749300957736365346386527303315785402206261934080913643037436851521562803606261732282391766422613522585459905867704455312219795970752906718470532486171994706158136453180638686314895892676805423697255891829385336159588913166121028789184836647481258717349874143819846874235187692007896197903101932795189841779341786882173928776012399722698588675633392121254515207701789013961075546995615766727706236396438774909556787891520830884146908806546576945407943045602591510883167170068130354158126535820233976563785412296124652632673472645596797669847960788169919870634737403713582897889222934562599893335351157636852321148716270381138201284344739346271207450238723097425774719339563278596680138487294894930915594924362995471460219614628247700393620620665865477287663376544883946484475063608812262770830116774651087160364460827636941156623959974167367246334729259228401861658876382926526892234440811116492838670989834626746750773060289495683324465669047809466271047602226095577911684825514425474052255120397328472618655662288533702910595811928035758464356053213329038832877015680758129269843343745740462190477545976929390005951570730091305776915501040754527734225681466022226417236543915035827799617447123023350374028664836057281131679389867938256506491744674311135301294013604765852448529495317642797570720413343987634245724859790267974808689945538194464739111555442498879026227023634248640123121348454054467913798994317697753964565225446306223246368709728955731234744417051485240726810727704496632747212335037135778209452617182890232206644409985464911344047411137564572810960155333715827758778380786411219219801563195702889212034580727997157236478528854898542793663529688417375253475537176809811888014090257474688669875979073767033512947535164523810096799291075699344009166199843059077806247020527307853718646878488666976422650113077207895577139733880155561649047237178850398382278886948839938052858509176324369432321046084992814690447407106167379838872755355224574645438346828416538874276577212486694094778887283592525589643500690796188940798251196308656518437905960402358747476048257379040443474489608384659092311739087717242560438726757260793220235986140904480687468547939066212161909708109441474183356344186606420728024129707294150253647289502855819333739523422003780639085104347275387632989527116805959825732008168463679575883005096199212755646903097871891742718471661762839643723456581481100867615038738810271233069042888630879157073002097437511131269720286318554356886828003440523738161331753909061025735651940631891788736687736322455094258602128256290826139006146392728558853457361145420141815086634078115066582242156574545305819247733887554166664632429408155791995394522338114371159123439461807029376672324644613703771569558854679639913634787798283853091347573251705832465225636378919966970473321854161452577445469050442507485048481337604655445647655866479535371854590961366537863156075122677948220620709073891947799948543311502731914986212353732882150716804617443293676146986665597286159864091366507516214717836925244586050243808855556122817979312792900984602518343361997611473966292408284418795456775630551154422870874281815925041535741387838812264896273692560868428441380615797121980825013692975965284622826510723625575521596849588994325758233603038116584315351650065921559587485980337498199508020661828939332858106755360959576889822389007233369294563503747141897717173391030570794876855986901455057097237322981167481196663354792002102888584300057044977923752514012922325379390135253872828645336278607603786590213663373678540842202885656605404560320217439237709282371910751902018218129689422874388489954549099400754906549532453037708554492234377352061090198522873418379123408199568165270526109677766133003504448229638196254746716011782983594808880209990901794131287564874477189647206963873239169045753061161617788144197258423719576290692905333407249184823425015083123286609282913714324412436996445223713466161439213867943157194950499972029562610385714546137571930350808981080941662778841465659775721362116185376853750350699707682747023741934394409317802111230692392226569412108626815639537994014461267367737428780348483859033935828168650267632399109419569039555875188608761858874864939985930318011700648594257729881990130197834501194241034017108261250293011813381391040339551898212354974571336506357458639299535653463210636816529968262329743407152476568328484712581413363084918207833707172254209998027820041931277677598320653727137073630157815964477810598373625033373148645100630821413908660412194987852574049626638399774381821183734450256231064166857784634877801090389970241014123747605557865226900576252869873383139625338101535834878634839112380139936613523228894831198814261844004750822922968359075103026013132477954150424092584830865181920133032768636343097167880360894875793468784511141393889765589493719054249882936997038073242023306842113185335988758767676484721569176635778431910639376488348435411885405035207399675528426396743477936430147884810096930526975137664780370011062310093115725363361662084214520442237083965171932392252957565367445519024348640595932689306843391426368188897916983409840055763677883995258098717809171891734160354472887466231915981471952743301118161800710350649008467358231322149700583678792670383795097936419366000611084273389129787804923837987076107606148012350866181141700854843615035351796779321456301038788259539293113055998154575718422973442937668778365748874584826929769268201555133622732622667154307239049140041387829987622248926411432923072567338434039098651538248702326702937762524248553159773043719366514373694800982602404769104180170385122591486451810109581964627279975109059603016054684669013069573989553355886247231235088272351223943596611581048557638283162082656880303347960980010630394261364058440886009873106821068679886519658784545734084145142513329267467186077602209674307441172905509134777582775368493886648459382397042001349028833433370947358147827600772477800640282414531732067337193879321043008575790620341835627143181790518841897189380869712181557117112180918595460474062419232675951534658396371238428639355085337461703269139219587494891819070051952136922669840670582449078403018652951424717977722368614862533627766899297383077455416993836395905757277403299444118559761947080557483497057329302552246979414167008051120720388826802067106722359268469811832368258638276729303551161159190090596498539643750413635269447431512820877621991148245037635934818467448684380550492857420197739423299468995164374094117016785108879830170332833349405491504622919232774058762608957603848085052401314905863601533145182141099425800617297733807613097029786372941868185713706785838603053339649212502661275671911117212432057701697438919797361767255255546809295724889276120129778357679085977452956227604201208609670549353699510177741238620991959095981185326857212571637097333454281458638157834963176568566747239834703275236546995489834994194752091477897254953094136618920430011768874914947813550293423865840546293286230697048524038895988004958054964874721875925359552788377565820772702241510214933132564316230453388279525272189610532638918098761833846076703996089560722344950136666060277979331400564491596460254866933673114879724948623318927158702159451075353995874897751502054596307593702821220566704300753961714500746916361005175238250818016006840310026769190181922681910455519178549749348103210483823331540576012773074693672446971636615465754090348614444403697882111966774169642217979175021564429197680624033294143259963712237178711846226516309108299257761116438992080435244013648421423170594825252807918998836582328598173425183371879534693418552357343435304369525914350197426773283376157704010220748752464188712956762495778449895835504200828364495251852732101260244845171015910839109215772215188655591292662087552407778564323467958524816877153160684969303137554549430560065477142198910831770535845131917784859044919438635899978940204897272402410696734076316035471820149223363934972911143439440352564419170087867092785905108167069464437968237848039216751866467819126792728534482224210805579804222167912328237045017222555290012805433346170026628881911626509965500212226849810349927214795769511664338249129458050877559353217842799878634609158445736893093124973019082379539362729857412306492193466165771824879912973387647819543580646463030641811931200941244221145725794639102195231010420864923000101380337433469244088777800772381358213946567337766962946147792547664184646521226005911124215599457669351681569010829840289680951841314690705845915058105780352038545978568058969058462250351016705699395925340177310626514014916561894152273805859110181967036120835132762184840755725458125399389764419757022836801334084100302580989079625550084885792881168230958359591325839693018747535404820350403764832425696608450212732203517084950320632228223054393915909284208023869159277840399187931005334476045453809390147874114909225628296758329809861838946596440522653493322866665174200555509441059822256503402493279709769402501550484364954924001887320230954053608705060788491188282764944025841959284704671868013300636158991437767130357780219120628689564280588763864052086644667702902863272114644379554250266857835471356755432432244407658385089388822157498885139300834554900632553613392236571671261748300608634904583399818585246497356733606702570043287678902778758890550530745210008957407002983109050768142406406632848089572925401777822578378973408747931229732236145883729308393588918408792662183558173547598376454726774391309772522119222539438571733775187362027038111448037968285700949086667608642469387638661418690543068489712320317562421578397204864619558318684877375137002529873597181334451525165399509450539172554032439023624111507537127476740986509374501139443997682411580126141633911658447637461879398459609810754052885278454699377404216454205826714941899076115902146839567350969655455595484202595525899545564936719145789826184664762291823158856045946129626215959770839121211640086050650064810995468534687031722362031903423389191076645143932815090917985155394486035572652420355089702929101817249296518309801164833646287382449238204440830025694447575594040577126643577726100935921188232543863674903229407324160358381732158035800423863696508552818608108039449245532479350742033162840802822148400680135733598900744386400082001169234140128161170536601804666515231522269352841485665503393834495340948715845922180128394944607545277721268537908777547533667309298070951702404536132201064503748433355669302750621000846106543369649471568653930292337889674248209163055300226860390534055621426653649040549956001580619155101622116691336854020428134436368898284807670383574284618005663908470884268871467785957244563056302871073569790226730433626747373997277106309486614033923531993142811223568924261111299757075887259593226728999353458346119442635231483657413056394021846918714121812934350903577285734410762598942889119717038063325333044099206814946730852540520950112173310589197965640451874378994306796120042031391586713484587997049875755409932152881477864844367154082462020636310348555176258306730099189571333855812670778174772764882926000622079903828352581405823466962941384773642124840124493152316213263250475522085139558423696870128902359026426798697705510300300230410858274707401061454157144014111053539848305462266533025763824203130514123970705600429836687728283817049221154674626464437616305821724297401026539023678539846126269652051879605111902898431467566328517938956545264175765416336118241514748948133970092567566835981168705402285570267201204531286170159303371000958341415038740452284739688304240754600996988697272204939986166623600054138420592666428172540856865098521780684103214474501364714032288378491651408560373540931966022382716669817213499687225025378413510170139732460372892306857036666439239222154273721254633356925089559974335920723889519920211025953870237224454667904935185974831407531683944610452380564974681790929428275730804240652506279302094069380402345890253656090611797213050206044025516225796488012028511307474154202742500373448121496529806490689505783265565429526427978491902851735034405032849903316492043498066895389118077261923408077923071335337765957982989813063910986372707460375365371142148331058037757362947486029249965779060730797948770627868548199791668908279328290889183820675241226001787997805178647909576635305499641273626266503265681499059442988954492235970329803252132019602171566917268244672593336433724155129687119197987570768556297350217344793781647076330400812053776485100274877797346326534619198058119244737496723175833939106454767740237478716177930986516654064710444697234508975900422148230099779653569540370401679739643512938671138134486875072684439190962837635416504647164092733295985362774139392645152057970074346240510149804680745067472486986695893973362141126328804616515242387573883011243205607842271508906765529829390855485149597455018236500710746359774412988919264333492260575765106995754090654522063914825569316383304897487132569024624675840095780382326687484047798339764256306463945248733654179341297602854595091662283878815297475689497399948858638878737075295344317861718455323079668752282539636722857926627675461287352588456696600578773598797832460992650063552682618944798867875242496423204239619522358888741510945941455261237353491858367512701240605177738519238045465337040000710981020662043463281151410828443017597101387909984102747511471995351168196961415804779498125450437728165705773972133120163772327718332250695233353298313743569418471773038203724139554237723776242177151977461584477458557516451688257166696345068102474098381054718075086635560070820548668987568891781489500350532381968787098671374211213810515860370740501796809165923683137384243071803006801719235985734202989009652731273387486761163781763382019826304909507023426449258644468099981667496510693889337543950519967481907699160097208931104354779971051075837805514856616738100422103884795242317098031785077022649432469691649369141550938912744026474939745736146590571614322436684885286350629865954799042243460634618337578709487053502467207339894461294517781030894459363747950462120305183952987353489098652365855424739950114268247772428673799345700184350259657683488384576498880208265573448114877241044415070444209884396530782978415583574115722145464022260069202903482107499168241926779887581778470765017119068594455083119315900864086596020731472790480158109384991606711246908889153713059877926622830037060122727381943934335700948563777698949904049036675782922451082264454542046494365003941705106948306677660387213110500787460222800030853105007395706198813729788801063930260980706531408050279633171116999437366480953635710872544736765268829682396818428800603426856959650400059241151024006529889864225174562154811051935940375088433077387917395137538834868736848769754336285533254835261588497931999929212210437250547228880693924340089229279752140684625167949544422547792358769917638311288508578336226034144568702595206554415565925791252229186525905103185451613172769011286577876423305729984291827428457386889042386375298357099616787809536806639411584320150460905445727597157057539317714239603763642566901371657104786293024434780566762740394979895974023150281700464755752772625005476747360964491640960626784595442608817109786074698613826928402816785888682502570548649778521246116907847973085625753206374639081422067068996949829156353635150450464805416102141332276521774690019324554375712278035441824004475916757265597863354011682750332638550075759763591015431347044868580162943985254037892491337724758765516028585558922899230070873928420924517426789331805490011725169389554247425082964937372047810151494909525915761025449214989874961713385997555689650821264709410984614541150406217960185292356341518907158199942644930044356182729642395801499786453253025552414789473598801892143669004272424142477540850708714007247092195739986599726282540090804687601517222223900443621484130227033392524439075808992372759194693834939614538444814211741649645693472524392695689488654788638582350291596845856481020787393959812539082868293310903978065609437202414141478562600510029711233628566681527402230065200322125598263634233704004512909351556990406018846140610737231218287798043806496733453829214341870907822316668032477093050281060960870227860032895906725346681012695645609708746976415732416417977583585990281723146141695695609566827650228944868525028352059985791420583294102772041442115417388293465931152848208283033841002780779541901473207449869128589059159968835751027767089100192561504863398567612130034159864457575213068557096934278900404009574618567198028146771922826692768763940897264168783549560671986860431503888547695595143395779825095224093464169919942125884584736854510814120404176358385310228016151272850434107396121549525583969847477367795281129021284169793360138287759818898206307354786629581776867282383610499578145649921135638297054337538606003176607092197629361749248552616185036729933803890028177301134783381760085025323384369798954623290294796164999816144681136590435352226622082786937137212367244225567176613228609266110246684496496177505117315604393552908963190293106486752456638581868841958799290496592394092368083986940867171413888909422283505061887577471329025935014483291954060863899445491364266477750672665728659871457443978836886009479257037352887045910462526315463962763530905862331104884993518900989323700460788147510826923705320012273228610234486553082039683367362354598896833377595978817758885197108514544763669408691313038921285121124252986447261736803741796070769746060599212509746659632592401652128143388804299166421252961960007527890368625826286912272344460838641452781627246613820437009942085041997796573973257326739883695936194336816632294665922897371431023475835055300206185523796595296097811530356950456803075001619070110978056597812601157213514444026612393187056533899498728674461480648274373362980229862631070552859459542331853675972112286769681517460751937321169377211026896105280148193320179664486556093755600523330283790901757138500323368520316706353428477783008391841679443027721826630155728038519244203787813638862180225639709440827722789314573600258403148267866036564100409989513598323541600113280885126014793749422105265162840944443825240078655781480164583222546998938959486104332977684303620837285693201507880387349363020940008690382386676766583128890370856497911365242217493891314996718550417039858421118743100702569234716769414884902156164161869617009240270407381012206087486752097427803717450394258844515833444671249001797293939201168112143520278873199922763348843830705020030513647950243744097711328334475543873178927134823330469853810640095194091927876071620261352024945594832605504831978190783447947904943640313772764498222909063552226784821469348782007229179890730987671210528052778541337635632772378531498122030319295533827517937772541471479707980785056974288712251619008431872535781234720643691605422507882027355366006217332861693494422732767496109207333920792869331959438680414282150974925231353999479746599910525713586365061957480883059419167409816108667909698125444709670451721122869566871972869324909530709159247782908123543513922825567742798395347543027190010044354721029115339483264340336131076144994187975469815224841603604592179677783416853855110188880707996240559833585935660105536016346884810874724352842861883940588786303232785841975881572532362997201311520156471792237164754500249180510766821365750360107505595618176080529153246577153075579723335015881158997718206832796775129180815406049199258512585819771246778855093697263682931524950659485140163433871336057499094194069760964175790155853337784890831812005416125751087276534150467537077318562464509714141838272813266917001871987193766449865750385186557864209581300412574749889362605616532586807811158064790547446963218969326661833015042112659569569574610810009962075007224132410682727210447751708541217049273986321764249317084095091360761569104545039392062552304652357174720589578012945099797823223448010475648213196874109335686549251669031046266702390565733160503024612902610806936663692480199505118812271488884694390620036135731356581914679377555046064100942584776924947077828432820755443721818979619397265881947946737884081141665575115331930872462024888466501943160371875822059266583798774708483338052152869660259581785063244982337711616671899499792811190000150686853894591070384956427549982621640778184482343963239876887159479850196250993047447620016304130406722480992159231843118426939145385036271177612361855143604130790637710542116613293132740446145961773262646205579963248490731262457749899376588600107246173164948153352810335310378433901390998430303486435317249741489940569852261345410418781008643159187441110254464311641286455065553224269190382388213858956304826946081923583077872889851654867658402865432996935969791181809574339380902530249952158878669153396008042031068377254852067409482704688076977027590529826440748832889946673395677800945694169019200691247715495060765410289664631010946484423508358659158213406531921171577425097956426768974612121885421916745983890372939001123717916573795955266796685692153518003741319879146801548281038090254258197959368115211662223013526563366401552472192530092431211030863629914407645876919964251682020701737526255723910035381025502511638568310232880952534975853196611746878935777057336858615022570523875251586705334086100640678782893335887110613354949730627557291440801755607846015239534066434535610134882676245765313849604759938491561209034806896825800437290691242752781203196985761516796265507164845511378640226456815420348360231326070682077106738778664010789482137489484164191549967187757339749140642499364959889163992408085179199761999468047768870343352229225595300429393067108585926457731723691055904442029842288457431008365789680054899199209584428256480912270501201822934189597900708796640917692852699131013328149035736075841144776621599753461606705277506943116250027310206170418017149873363433627719155348843944142166241064500301366534361870668526307304015350801000811652824845413966036034819788502812122331746686662347522787075373473779051249892492223408368618711785802126412336942301132763452297131531996758214158736488912624578712616649576487473277522039152639870749699663752875294444063871551782143435859472954949787303756316386441628547290683269356271569523661205327579125872480243977417713516020592317246966910402914016159174365725146540886431731462136175038037423638645411529357951041274854379568962618435454842786618600301726962806890170801029516349768572992768072876152053951677334779149450829227541105963353838178535336056901378354786904395222555977391797085078465998205285470090710640631821960519631549571274348454614215302519785009643306357412718287620586203797121064553693910918688751760624422989575448382090350492193428678855740869227766194627843817829694533086092853567276237600468169728110784530742982764014323528890817954740326278865254281277051729076099165836072289713626586156882520706563850651741133475257669079320792986575399826163718906124837864133372038126183667239445578684060450821567115845086707435142770554033126113525267223653480171363427355814089328384037823039156403121033755771878599692792021471026673766985169589155436191424868944731844944214719301627283459547665332653351675880078971654822343575020946570431437625948884113565287041424084408129471465726017036201282439085950027898733351683685228291804398664546932826675059773484810954139926760971512370517810885512710530648146561658633016409898643050396473585718459367009902985990041120193291595773056197568346741098894842727981358560875567163979720407769224538656833781166267823027606018949911962561647889396182069097431569711488536418398930208582771462466663882899544082948834191820975181792518184982311928389503593443744186329869767662541401175644434600708271430783706928975457422480117272488816924560991555926266209820098895107963531176096731453741146388620290430762587757372245921980268931622436211671987049977811765580919425988798663431285887204213096437970492368960434743125395582941420276988038245464184037441299765049799190271763371444622952331374075473671280666873116463886999131613028892230400827179196486141323067483746138864501946828382583251601337202821898132131372870967355505076695058624580898094565356713133183851822125859518092793552028559327827464625557610465621035298943299364048861846090801841157430206676733811142306312274113313234150124106506666856003903436040414935530879071664569083210418875902338592521948832308952833886018094575874255760855793184606520576213811673562742212589953570362539561663816325908939976297020448732598153333039115561025571682075308380987980444860769974886987996267498935781089150572162444931233192376350430599018574259808655073786468000811106207822077540244061402732129497443382732020732933685931811667068266707175908712513222963987470591358522489090631175042845179094825756222543476548100371636861292308960011287388238483625640943878256523336150923817067770140341307642389495277818837681431621041333439967392214832398135650116725821156184825015841565664720491360320632333118955221102020875379253630509488012853490630595998210133901697273458124615615593635778211084344794903897106625871471742572324533005283104943521805431845977876743864596387573785791916091482687523998594709353245038076680452507282305756581256010415230172298956177917118769095576433673672283950308833608866920289401728924835066617168301693075698222562465115856474388701616938318730296168009768097931745583999990588773271129380684980992296072823149076160972301157652258569601161402409250057416524645733213818679871496658255478210274440043003285622164194268359339663497876725112040285896090456569451894446445660128309726432189977247211280428067776013731457200260912416320679465961451922699713834907417926714279029649400308083262570735849280672650765241301057306561701952125574380519492935773737195103304398164922426747734704684726289087398025600269901535089294763389087491487757364661670957008096390843629669829056661644495864197745312707775765015267127831205591948325147268868801078014839705923062661473700799297427886583210531063149762718873217891747832745102534687805677137400168973607678246214824234547143738910395692751538202872040346527176286299936441432219392579567810552237981408643731068275720493545431421230585051898735120729678231416302329872231338365584986446343854105696534101390175090984252297436435625889643293353145740430013554943495106543553497395225533947931265569197695008288339528425070653051956483024682374701580192186828471741418234588449810021656586523692272868805185914555216923505753247247606714200395113287165989736087585556786090978667290459651005763176184346139640137647761928098366903083461947111270224035108381424385104263730796752723768271629889168303377227527138989532028468213619210269220765612751439023542997914993091214129590819734018041288034542310290197843060679712814802011820839455991359507303709721590997959020959161740501636431659895421170929235200844454675548488663561928299896323070645477793228624555222645498567030365808784762425772936898567076416210104003451095266864591605302823617823499058582101181615125555791374378684478209899675104122123913424294221267840275327119038738077847966388214529352849282652131074546846800382872134495842727982510321679624279800725778799186522048220607415292564533295550823559142886096688692722435173368107628123847532424921808607486404002095490798294161414416343769368553721409310642254385925314000422029615121436039773793664080225313315582521056092147598828109300602796785731613478946838886027993091307699620461729490138456560478678995117014638759969537666653462601656568747363246167065225992362105209276045120006024277034088232380856113198878958566911869589597104234408843904086435437025591093359752809099272227254590490523683639861219743783548348821549768926796051847681608010996115815947343165539717800667674280915273855104122978675097586771450399726038396362137791591296379593030065824691940920283800910679790038773470463953868651762822180381740186447465590462581315318482418108492915125517825672408534585875903906519146335945157104849480194578661557448300392780547924739174396902965653268852299838468557987665581822787799273590429469867594904057181449217638228235209892993822076961058882478521861598286719046704649039811322115383652675024479713682882572194389798750405684121152673532570509472290537963182113220654221802707361582909675384565875124837458846205987171039480269091181513939647400990175304018829633950244452657154237803273351208356126016404946394455744925767208584957368466865600903857461207877680377150879645713057751107677989028376782009240591693749859208766860140847493280467650342111636773383359776111854661292444360581439058117778942954774428259900821019583055257182008223838676200493824878188085956206293828920488073449163479102065574245862079415880351409112773271335156079875052156379576597517006094532482871407656561237010997031873075069802617138288708859733600300742519073651331827648505287107959371883183052082121234821425001144919799574059298437627153179291139214872948206464187598580058415062627833160874192610932959835140379978380701015030385964094025732654499200704786630437940110631699761552119204036754243759820586115910655890580021940926359632394562925374350994655044603422011402501918780416563804966817137375677267211533007028409181976327828191211556836194858041115688642394483469904800883689782467976692830892108056609112388880940163704957936607077772344247468679256908976676026840320503955492708872091264681545674701054480283803391824668473090566636707394190479759862264675949555963463912541173371248930175062295761785971752800162047254653384530569670874718198136023592561107719759097177800424819395247500772562460730431452795418525780090810443010073333705492694003448760006469802892215438152202130965116097055139840887440555396768062291861151275904727487340002799416552732491252193363449644498984524954142218920042383397277418858792034170284290067728316032393986651364199811422521493738137977597566666345974143153098127956444420845955482411417863700031519280542991836483203472000893616245399561644905853201448766576448886255612580063003272179069557813794809817888286623948915953842908575127753126703239620138358923136764641210208534394083318908706246365119153368096310378002656657987744249720254471325605619534289181476653256875802509019679699731520555556339675353698231826859264930324406100222870581362202656048753327693217189422155649474732321123193164217332179492512062838214849239842480927939942530031097641181071480634875861402140294173152222444618239560611367772710927118992803096793620976494323231199979677986305559953878225212058051047975245509593129484135087782142884535778400810389456073532925976513752012026875143479725710780105054788552631905220614720931411792343935377378202079294626279446829354927202842239227330058434623924495055168569161940079537272337513447669449866944651263146460658227839902557997462273473484608547056315024708706566967868688229885612351246166656128039219877042159804504638807408097666656208956664342969529586300582755438511574823705390494174254174727100702436488785236357129605735550226259174127640668452889083265980367318764359628756387596485346289165827518529944262224103331077584383953482309205188789405804132882440949073740695542362801376720683295888294852955892987002163924976475400379448132072178007639041709017012405188862739896493157134871842556136400055019331429299904461485154153625327638907285708591681771014012154600485734717560192581769907380817501204639034956834369165521557434767187718212215693117232792930583819242302386638188475395397032932702144593303567772810492849489848131437668295613100639347525968402755989714794498881142885356162973554917706727261949393352924517112697717830847623814976841692621948061632471620556686254372496976166148885842260950902279395498016843652254756760770903939689480815722949137188080700142560777165095248191441727538635422546609037910988211454906306750895652391475387406144102245069559662970735589159116789913584637213589265621521918594655566800910878909509359087157682410518184510029912204611859768269737165527948777913648381335528016883422470365119173989099182929669502508239946902331117718627758812034093611559252906447305090390430868108033168162469340620904239456595901997316443650135015325657459730382065209138231670787958220939566503400299861530366918617758390033474312823197877748117600985036916466383249504298409757580051639226147972279450447763809563534182915627428694884605678955004489728867663505362012712895744712593597137841384462663545965509128980664903518188753942870962024926903809225755788691539366432008182947109191079917600684487609137998637591958965811664199128142425721999781092115699430429957378998986615718606111235072384896585114214973557858617143156943921158482859139658215849141361332821143844043343361116305067275812068219312975511319572403536654079205657950991763483135228960264887764636932594063261789912218269394646878613376997925843476439605785089321990064764424611472276352092310132782502796974016864812156389021982812736496304005268992226475025468672794066687653910487209639531231437368189636047910305259622066411180749102780147287247460115021690890133964535660813829308034866805051716588284844450708878433364652975974270735787790210743224936168930769729296111674998392843525562614414121256542732913051911345583372975539764445149536362069999744218718392980614960334036855583069504580903604726859896009760456902358377920051862560061378894227114636356702201469841814597266503526891455811192625838807844857723324742524036532125492367184146610366251795764503571619774487136707815691890930754334028765448181807681668103347195819581581953608011006257438666602920161763761260166295522787706907346516556248141200741329781835076328272896922742551538633573756782174509532325316892077342173249374750942609957199525013546966499477335312946694529351807082511690301792398851665539135528796168508241161441062071404066640350463806894951783474710751676486059822298116964729456986031122376852182464291125553010531506277957351786630251372484414354351397290699421041727226140282398999393907232162147260468473894880813855182956133750046194518812286433926116352762291315408461414139192061777436152903680305836633987475993891553641108287540386972020737599821523447432835226470835708192607167494058918664282332334091763502430926076826241238639768369582001543022648278736852701259441530942580393468357360589280063474687392468627650805940032928383919457707572748606177476917311053748179956253738829436094221145200568262660215047746647559513721003008701516771803085044860483954006873937330491443748167264667740442313187082087934725183535524941242878121907590712522705535169542222983054330682370328361182601416879658902229417368340290544251381323959343405820456215808467802292406582640539796959236929311723043159293866077730735951765748346607732883729931496589575704590352142211228008081296756939052341977085960662294827257381183653327485631078172565541833212629212084621924263538804628554468070334412729836510763007949940332452145971267574085145497165677294677237400692735351506590954235689698257793577662842343022581539378491252357619802062368323424202464782694613613349751827053475837733112098863714263775866702022838016094166163146195901748838348487760987666865410622094675508098108563723987496162604374831852566797403169718697673148809323994756056263489596162825106583935063067763279537159190639590619641775052181301504025354180923102127305889077287087612025941624385409379711009563620986653638224304461593233686827784929914983264535170010393632982922479278510801665012751135546344458661367779948314144158437986497345229516385428096907742629843039984953694888018721885819284762055148939247680767529462098891531992323521032084339828924597335685786057781560726703586026424928904548738242884387897770986791441129058559486904462165678231601885717452530049948129378232770061389799384878141057558724081027126383628246682237422497441253027881809311223533215821539252520572483033326845360217596841547835402480354036237015398875041336174275501365131567283096232680057818977252237242413817425798017599404096260253630645402654434855684682628391721702300477631719875289597682083242987698441927877200686354164795521716076553778695309708077264148177476071264640724211828143743000092279907601943744955422610429811316491284205172311147363996392925995217956963466694051776890688760686846525066902098444538721828843454313227627159488928190440219297784498860671420197692891474518618233580818078714965950151114917151471319195218760742126006256813624044656915420079696120937769851896296558641278116960341436466398525458041110741474404930452345906702360888429531055713541977965439574053423845100678446321251701672935365481785399364485654385812826195849918246363209451453011366210501883922923732683678264046921193571915701589917155884331883206492732347439147864205330547630004856754156586062984547809472550491216831635669464071797644426677391688344672837313337305315693366516793442877011427827064671199212567646184579987980602549974239856721386897754751238112393932076622013788176409993170207277770350813467224695218856929907097215223729917931571281034420028216976701011446628299678974729319541267857598602354356444445064024330031695399223504614988120539540669081292416540789552476075059208239641108768552043523633429576817158377869440170848044247491890942068419645806451289133402518265341176701799515172483350538077013912682724514974277861156051635887699059551259704763734976612395149806899601759804129164420374097029338522160771044850663490965985798277243684968674258894870950534575348126275371196937657438298939791924680747916275286325309492630547909594292358546642360906055165060760405893438898919137887201843336627584760965869993402638174989001818738630260884053405367652817562650516802040374545378268506584597778336415718546008763056790986495097821293275649673039945502879876947176759988754666335551869996087778738984315093055549131297943955913487129504634847200684396545546736213898674246224910601062138260126431387417570711272649642202320262643009877277657233022364184498839881166621581443277088488534436745385933581728140411122897195129570302576182424611355077561518759227914792309864264425223459533742237884367215834257516356551770831195836245343610364069486658616421542308110128071665479602584426644503605279214594665108617328959098229153122508285965986016211791119501286220107916348258597658886884730824551363318383397245513724968731934253523723398398588232108931570627340175701163231204288114639177719517279065398076860284280461275243377889362597789331988512190096794220625607876075752123147709617996801893231056123716817684650090749315940659257242605470001314672889742602669644445286803322688891795562157617965280766579031097284031433604592453655180784134316123994309302103184279119158481059157901037599599027513926483298991010497459564865356157283571455952671891350740724180273005088470261483207097010072510090189165687663182507609590153526204366924199657139630351743492385212207199109306591451392530085271912876816440072787304825503764687859078931367847503863348541816841055098027414333030010763077654442742789010869457907658623411625843170691690717765820597004318514961838058782193064531212934136198755271274871871998598253609266994045370445690123876360639741626807321670220406324105424888539641333848078618649822361894146443706541494888907491756201325111740089152248767784738249072666583752279761485600462733155327667714578053162178680132158529834301936192424113716507692277607837848060497922939838644797277239665550238259035942884988882354077248613090179270393147044702758176582804903375074298895150165000148456096193628699815068882583024933228714988010094945587622077209429644436893899596412213618801952610008297785804679025612350719131060630183734940492204845717589920265230702323629341342114822207625850093268764180735657787373061459489171070231632487226545464693547584042287301373323343954052709484184935987593102126826153748595850085167600119263253617917043822374827314239821276009697529085428456288699279651103683926825849389722828609536604690347490871086101130026225172278647410996429584748889255003808365767465994826187757630636380575103586393786711292473364093320142673531131999102617324986290737377414580133570464002672507650801582051443961974881893977883739714304569972118281554554269454964247402868405290430908073786299037733101239161854638805747711785949415624903362424627388092512440845782696226501561652105720234889363405904010845011100677333788537831156877058116934981986657239048637443276138157400638230634416740110550123489863392133242614697270529933315463210566692677853465650648300225592109500069489928534490492680756776955045665494504919576726988015787360389015354072446279323972917002177039273743802227789819998908002174119010020146899181600550927299070375226647976746136466715436814188966844956797666496921907276771679134795304646866172900602519007433834033993982276879305773116636217999418730873616682668687614486325652937301938497541288304920300885746805652889927864193674911112678244934727848075392921362362620055213566417382245851099086060837145619495852343044213136449794287287479813490123405684954291233560585937346050110762981062768148567411923052854663431713847829868394501200608170673761573832408669905900971063368240871269883854418670690638074495235728586341905608485552739979063335912947151712797261000881209024158497877204078232289227547619445317894504558980513766831718471407469226158178202739604893885011329561557096069113832151625814328084015016710020247336089299659937639367247197230855637492358077762769080459002986330042664715756268288507108756463251791605618140633711642259651420695641535497353264270051214227786051583806371706445662527283626937456940352137078328855351367181236330380175319991390225098372024987815014090810792796348062495874299052101446438482106215852373615193477016075176071921391391427864445540035452187032878934523422892505980540340057249610594220881256465980315746626965599196919176617369804171962384494123092594996450410169771568421427618164397303526524322760239390866396426681058169219067718560308327146003589335161401014656117750466651396944017396963695206891111235594340092919439552720740456415134999680047187687569982567210618214266503462718882082116858123938520223582054032702568693023572569430894339027695578337061318490798616785659896954354033787725333538874590148065886299293715210860978382041208122463223017537222760098705350556494637152392395765000653720016871813220602822674849896853015275104849698550343478738673721570190774716215006123190331513605847026409108861201579164489111612273256790538942928124399417449282079282074636148189995192992731013087479817865169337687522417401498964416600711382315336404095655884542891904169136797539170715398292957686821078380056709370554234861062790451717181453829093146284492454080310615957166260769982099045817029159914729579552166559971883579060729345715123291198316375931652272806473783651564388447546997751376991777891155601479534852331333988150329635618085616074221294079396797744307780515906061933760079999332273121026007344176716203469285127427444207194704394581062468922809881123222728369143882482350615007170525095567019067611400972935199718583044251670307168291130029116651954516212159691901996902733017225425560044651293108539090698625484063035843170595654579658211884274032701757785464403942777360493747030856958724196133416483681953481837949353971378996793284917803042203849266593867063125427238003022367554994557174091090277193015996473564164022849018648739739624856644536171006396442121209051646357058378184916626362000034651764559393358359136403664059208118404157565084803197309388528768450526182315477295880800145130551263319009055087999553175348958254564857924832876459961079270626772014586421860354239595564299367157378646582707040456475144934480075492046571068989877657992048492286082551180520616436436748618706979810150885428964654738022672085511282040812408968725649883320001399607349276336020307572061000263090745391608970721629156508176654860365695829572987061047903970494044776231053874652160906020241799510324080863779496523600482088320896315155715525833658609164547486891176403930191869112985032966947659568047063508627042174047762193410433029977997974128686482076474689054617171176049480629441376145638963413287408142732189590296283381864052869479248166169616305774813809626095921381812034288250811212712275117275647135443331869187297567946439412649943163227612292919560791023405300099011535653432764015260037779956297574491065412650511933109189613873614610896314995910884827829341097493289965626530745280990438755387127526080790108535676387683838284733145569480505576199890807333037956381207401959135556575417796211922748629817744866064091980471802796154550231434292291355030548926615581566503595441461072515956181138983842395643232295826868979969401773795708994332183622726118740873297032115386945873815556387645977636428729812879480970958423624467988104716294836417972583950309063535945674810795466885341133968197067381522842172232925862117039519308888385151417953773289899769584499482685749854845738102983599867788312048747883681501959940299263842500100416007925143638849382343283599535795819807423218186700013950542259991107087543183279693923276406004293291618354952653137212514692878551883523272323661645525086621350130584905407159539215802701550315131499649062642709033317939472821884072170559329195097092507972534843059390809632318380255501333833084627701642927871741796760553858527427895876056487912897276353872139393514043954715216921698283065386210138132278145811176672485853859216030797364064392701403257066336529939053320669079899140447455826816089362461743694375178501803561966573983280561395112354359589388269118982993903096622316318500642578032487289590047646728844211633144919392035734795226258627792477059278562871442842562047357751387688538929110373782358163227096870636080487264338360299077713661016746650277552464586617499614466427528400863271048570043486900262173652551955129642610657222776495067082906530457382421488504279074645389410844409269121946242103059734114511735842623970340988419070588650309634399055885904094716258474890114182137689289779809257788435994340839389089795228060913053768296233168525418920414961832811767050977308477296792104529938499776883168419011786323836102095061542573903376587203438367305590800517382780159230548548112333685443645394002965439526169622091779273094404700823681906688278544171270779160959083839439188496871573470253321960917429388764253483085235151205188816274338831330084105232624743007224673011792258379845494323995234738569969461704832402493555965194013008729252474868721629060167425406400151840270535807698598877506760952288757907301345990183608371712065948921713302389277551271943742846326758440524806398390462920620328284893193384388721512579523416951406463840242201400511577672449836114594446386875413099492856331996073994817900445734020344207503597891862170897992430454344132702009271842278124943608891799470047635369089527520087253616853088348019978081283177077497049242687808390074215815111149906849395812141812116604346147213190971392405174130598238006120497605583357856372868553675135763064387092283139746434204739820312656861201514651509183454209844932476616642888411520972847274735434342263110547267037229449594646465454041003614602815986301758117630792598518637210649900947851397365238298255746044547136758238613710103722689429252911068712002534606538953920718081114527265418270862232229691102826327101758078564079858461885475042379558025479006257470647126929497754963620566617816675434449799031904807995887886048128829894273574066159517511766468681783089752938877566705266031118217433835872801719047781824662474911653921402665407095595466559170445463297411519267943173468042461856652209132519814921558665554761893743953840234545220155509642910242863650617940074785908241184031686247088731282295499388658724878259361775642688835306053917812740189246394025752255259470755834653902687443825303838749762901896357747925914751153833323662607556658059870938772211081559963197038919575987315672693582983572806529924540204577670327602411728803058728407527100190967471764214482557558594905443035688841973401142990505913012883998085001936773990396830887853483833168618919487013077987805971119888914571883608511091360220558632525330321791648687818814618618335618295999078995690079349683533479487482212969452482174986823092575562289705302884106788856670863979506366346073757204863149850909042180842438619967381312253039621188221242377476075842423985233497358133343396659052232521608073574024444375035619272519061832181466113604289820982538180008368168244417284705639909312595753224393180020768014325303375964600505415249909310311755851007385828271212769075007798924006559006953635938420705676570809732852461762704574553082473565932585271592307075638250760037092918890533036884395747080726732609702822938026504018723141663509057882713374572889724360692552622084295424378179757281697564407177681047861493515812819619500490697730841856175519992197787123864738208019862155204824093242070282845137941135811791148785595673184350706297143710223615936726185354086027477085393916192640730529026859415668900451507231260788146941928016006153913040939250547918418916021508317492850967438031751358646783884873083229063033404188857819994332015066066156071417812837451690766877776041500919555098461539903263127030079989414820719524255343739971773335493555927230544577758403135086129690828007852222916503683734057128084958025393029599550453974136648882317775753282515283122594282911427874248003040079966561489624134308121196695626613057183624137219280290334899506058557531666542505893040015164662409922895511737423650954051559568440981002779184385598042254164022496497480957182264175362904873280700778612306452422760782675770839005166295176474371781495005982580329877618287582341655683393289443627303276803470008184977706523992926013969438711881247048466950739897190035210616533027578883873791322391233590168895871877672025979803556907906728272016601960579399781711411708909786252582456052724500617072407760218512861266133020799236944618191011593800815189663454882317475965746181733478152339908846570017800380365285440757910006144510737616419068200664699475348733846387371942827560437781614091696410601195906597245257620010994153478747678259825360781495269149439623964545451650145099476859394918532648491354373752015465468474096847439630389093008548677048113059118267188448552701145088467923874625842203163391812866478727193823737305733531711341054620918941229319832887824556139790832441277553799357757092351444798672082347159737248123723059283901668387635515527834901247782869342118301603032118570836241301269498082887312948703457309826097682338898055489218630786700177857615829706151970023057266052316495967332401082154107452411574789867179466331462243518301447677912271864950448143156925187474368905538519671543910311197961373769505742004740864698442654709255330843006575689084361442378146753152782112910058796608483417954272770687431301123579746746627222232399491727890192584769044030265412621813361040099003878932257600885033300337881750771262628379128834299519085523201574257081488347992243182671857009556558641504577367489518561905159819196086015899095768179692185450107569641383415389355370532684648562183953620778088015553332005083099809828004763433664214871407964094930142714161079007302031431537619469035753762823001372554610834808630580010279425657658913584844980478534102805898903470598248367064899364483537252958450158227682026598291741165090717113603098416217020580448056368404086485090586104945716011723252405546244560861289860575562719410456602948132321696952653698183043443828815935931650509647604005975499943696537880561592274736163675515877165819906292612887656781822487393734627051446086136887131682473043463262491237541252585663250427314760616563838166595792954347786799867313425872999427830894344056830036912702322674207900358837304499447237233971683276004338424916608507167742338964877396297328793939463155893398875358266251012395536697039730353940984523549396802032286976116343568298847273429626887614114819197600816468112792048419327210895167670629398706886875347707374085133877241809293823150640353347046103685831625579447705698375682882207747686131913290535718280534324024269470872862079687694531820462196644665768275338144185459931862324307204951726019688188723972672332542103103248644225621538627949634902043645454072719428225280443827237527309031365398987671617628860050747600875947229548502778453034014503995093586076988080591841668063419009258632385284828526812625829024210754163610316529285190097083647732041384404757067026743016751544269357846714401726281628046571904677096270733029693785003684762061099804424890232907715303466326382028332461858356788573329522307293421852130521881144717317755215662441928401535134882414088126200584944835782490620098078330008130439030087992362529974414346903375811499370717622179343053119716893432947922596961531179831405685349406946175831318079428108711358441604404935759417191929357179832451205498563729200626271783463085175585672903796716237489191693993343645224423278585094205788787471834585633155123836100514015381298288081249861345764328634225920896345597537442336652524473287657333990091574696260278229330785570185203871114408445803224329132265118351069759525906995968271393978361358081767750116938899383760619152492402237783955243849245424754174778737017293872417856862613157999406643035284243894304599733889237691380304869963328369481246875965291378946270423758869892852771866579911927251149076951156976548042693335923781877549980367952373289594013218588094322910278409909296237088914685418266281872773929413688178058691519803152575410245060554494472389255399202545603309523610383200542004980608106071402775128684825827319359033122166421891695397100580188062430201647360548447869149311085285331758128725793733516987918199895169856296008006480588688705862640626698570379114716451442895312902265337154338604275430177253087262151669617588298763162092070067568963585747885895209334118647395491658264013902834605175397885342661075716443773276723896790213080386212109922243231466296608409766713533375302888349975970739346837646454142455991239960312685261407573848122364888827972205230081907984708386659632588951500373778899868177168530045058398149642715715040648144299299372545421241759397379336540967188671247195651874722619186429338211995534721812905038273782542166542554962985108171605082349733354455928134042792050388430958577559594770706755587566910824547942329010470657832727620307081951790426505046161760864432385998928022490660239018891459408908075174501021517449923277890670193985531690855591784213990164418678361693037306505277639424082152144638685955177243799737661502852340582115708101257183371217191875128727807198407373450018628761822321722512028043078701006614922979213335535828038275594185203685972997098911383585872383894712145683499582336809207171475030580706532069870474175121806968804882667247415053455895336258175906725128635223912024819930242215244070092488507563602635376763191185781323122256771284450828050914684964566526727417823851019600792873399062680205062079800853987035962658226707033236293630635176825667799798247533028192283293621609587158209412572105331466367430813118965727702371380178403469277407724096038782906049913856057989592389142843328888973312135626810946802939285089197567472122034649584983455865518273413678595409033057926770026550586403978220387015152501411117432025326617091868081720075085726943882909779980897997144395467094772904517048255184249621668258203419390053166100520968060794051682158259318128929911981448352777039191031830650144759719840107814084589722469044546735771379871159068827013959079489965180693639220518843675237089835366768997231955557634738581157983623785651505871551339539345099784871450508420330072538745584628437892124712080379401345633538934719057644216179045792644159172571411396656207645820353454476271037505509903188416898176821312761165211765800806691747751141454136740385025189152281980296173715958080757390147233938590537974881925900879497600103586689414473192310902393628393960150233235332058060744815377824729550311130710788505843419652601129270408695508770151476037652315334463687888687650832986606551444112548168476960253813414840161533347047661055028739008984884904718975023251740027072745944182880579004845341367934242155620020248365591490174001617587179262395997921469696719937729771770528762667872948906833560043873522423783638198429623875715385929107073710324479216045865663189496705798556824020084257530273845170979845579565600766420640455326945983903528933708348803394132157391251810422930315430710422449665499527679479094894021681657588555954609323647979074810262476924301507526813821424696524234126120663214148067736890098060719999198473015777333254726791213766381218064438994385609056047411618387643657490696629975173756003996879232558592534855452844514256751061056419630189170501449182946692234267141077409855849286944873277539787980686575684600325936130171473537603011644549959534767634755164412259234028060030976351185424139595834574385888530146499050438043798569703330775924369791495110700201057777041804232504444052627517504669107261731063541149048043069557064396223178201112954068063196707290278886839834240063278849259427928631900195288279371851710768194137247271491196792018994492670560686620389553645229740202090781792958783867881198704861634736105548385719504814979340257722320752321492915247375494867306435083777634163288269679593427982391174294657436143437215752064785922633201270969064795660591399882942287654442729206424599320232198249630077985853206327854836848488032830231534477545101122651389748988083983045064194353027911589525789934387815459994854059830429512255977968555876305018787996743107881102286075112464102576295730224215349412403757824769235971292364000006959033097738341462272825170851958348506326749740589572481971737565334018242948562777994344372017495938199663390276252128016692253217970428797262234310679320893507426323243796500430103595882760165334337073225820413223582315578578770166681424851393713306739330920355218768854907509473493979434080897213516059652917669212460763017445563290831529290529763022789093861272956651988244574407081036522588866504287387493854137848060111731478866635154768820547865751711468525752963650607471696608946141305455644515791049169023165725475458622416364176522099878646431100228360235916162932209815295505624524271210372891195974228031571104087998874949958251824604999890375521492484608327549725957465490993827727269038595304348524721443188849519555629748076021696582167659784922325229562626305213842380200629461757974966993602993633254593962628782614798504593144111853727757671904852454230356478090509111636927563329547697182614454289729508889166244755063194128211376162196555590956797985230905014560907194261078406622462171659045138526183645697603552125256389917069506218942394618784867349838765650927538354354182211951420255324170169886390259178950440415993881328038594983345891324301155189307932175875127711984747764970578070416195491199385269162858441634935218480087099692862173638046653562364564936751065545459283040349055419231251950546111217045602677617441753115762946532255962529425399974651868553878251641662911458644739030342973706616561134328506143911516134226429201956932742034347275056384269938788750183812274333899002701530875245408671126358392330936057145520651697390534570991094796603645500368882502574784261165020663957298399905499289075121099346676869107635927154123866645049825430159443108994143527558606199671909414711011510156460467574454007085434711216003825833479596165546537528217852057255925590477573492148255070293306220120682005470558244616671433147690887909650085529926894070683154419040624894948313091179616017959146672314199046033942447536738824994622799426515214357771358441610810957470221472709553982774275147984772851666557605863134988947610086567688405090152205429797126749040113777740318415487255736551478236799253008439034447731916451076951667052397916973501621123305855758478568402800802969159618608027274952027590561835912212871591019639103226018766925771209458058253728912014149992370621156302253269526123681206291526352594116621833023404659335818062418891357011342831184997224605973443923980817334602562824736770224469216621807817872498025362946949414814098433331494023161746337214941970320330906145429251579502841971771390404428032688840973790892062611730150451016379458244580215161016389213116645244974016497956295281220767758407613567116214178185072843395354889883864119226795284123074439405412007434581157400948583356482723098498189869538115624720273957125617335789438182404858506657438645215277262251286414657100003022634301869059960405862857866754856136707254402228897284871334317811649255736186480069040448019803377879667413341577420106818125313536190898799623020347946417223869212792689711961105972519503907754580359972769694070452663374132665199868522461582525120334442416834224669870866127297451160223949419688924883678373465772965738343545152116144190974027692132982084044199966976423993628873101550781494660387080675004700729500136501518045574805734095219328591820784194741345464696075493301415200670666233992156568139298396279587703650235105694127216092806082118510155066279062539785328541542913032263879075434229886705151028456680943775366251593069250825150806900481903818667342765110153994642099725566020217735177815270934568650811526606651247595396243248528215529834153230352334104478170334728562293253127007804296497551052148610786870037808078310422954364119209159720357567001001333540154277943751699744143012998178429065507559581030884158422733242410818732965308474794927892720839118707104373050021944958208608491145000990477552970412914544673832184807802681556351083451278518653986722416190073000661625010068446184626694984407521613188675753814887130874415415286348347716820097460956396565904044794433154025590429961487779883064116697631724643244908827274946085886119253993714262484514978897243847504600866036018396423067397032168070980182729902227959494464707174543658710553686057187223154698368798952674536742324429114762502807988862083382210743362488266864406963064181234644138815285788504919677867660184213129477206582553999567991343673820089428246236742939501801096199890816327801595646462102346545172021020971616661660488356623098971910989348828756390968330911172515441922344317819782704154789637764752275400152325966951361047634339364095788976957291344415950368762479863237692973881386813873636051315110514392144318740688843010471843773962887294304441729486966740073876802207839955734097107280958453806029041647618875280258088737244228752321117425905881800656609789350481400295972431443298003654445511909567454051073269767551991879776999751029995657993904022493944453738618041498229535066382102917189733061795423091150272277822585640278889391253227138593714327704696215995188408170053375588385824502637949266422757200136378726895656633887123683949107767649314478710252393600655198347824318047860193289972045609364073892104842247570307916054732616163343639412230168112309643972488064983806272413325161459468728019795050742671291800252535008280569775799608651510985300420204061955003037611563428932061552329029215661767493993833595327720388025419129762409944026613796298320534263551553687059976271241377861644248027795997489501619193258045854162013473595610508344619802799242753386323084439539158606030657805800938659750571913116189713033900063041437163592212038106444559221376950092261022673202420634623685775393652190743431417144077431770486294669099908953759299638066659994795328192892638076560224408226369550488879942734185823794606117210164615369993482097600380436478397399116031218451159945275527592250633167555013003210818604462818863258426141347330394751285802944403954840638832737050515544244643283570821190743364305454041086665564801384552744963713637957123605437554606684519801171983721455146604743009712929394469142793308249749539050604865843262912753180377330136679891042082078924441233902561972549231912285587426346237083470098056297305325960473058882757520690029901723653797436088369875542710331810304083508752993603960888699957544269320652102265467672062812254500863052218776216464893148096965786683886381828519417047645797163556347836566508780532655780547369598889147472547181172254696747030262270606870841233349958421975773688425003611331850456026855584497415393680843240395624635005698069474633401724451823626356724802020615557942942967674979584678205764118516167548683383621747072255347142602242444009051424020001108594451472560406330648675918843048767662546443582387320963510325434961826091116358375669477946929075166435904080923254514519678760947244488427256812300156743867130041071048628675384423290657995825935706707463004424022002566784879514978426688075136557027004552209984155188863344027375705588684140334921188037762511488161687272811873620452675855696026350287394700108812988725533448030967193618223166990085732581942745030292211625727451228609236795404312464026153442326021316110562302950207344216670382831012732705145346887636813450890143191220242423260169498391690670101104784804520013864518692375719980923378850404846263612373021485578318060372587724105973883750101365477988667117977002829511887406550864812445406073794441568039921631932815620729946758677695162539943914393544093743465998221411238469381305742202310358377420455333773388080661323742095337996515823587931242575097111813644762033766505292439422806706212726556695243692945472682746658967740297693657742594322573290125380871102251312944346414571258806575682187909157215584570067530268784317792085172526013864800406943356100274123760310191653459928420270195630881642762505353412352320101608192422940693504415671962725265894156449596109200187659274440100245298313471716291635797031792951523032311706570032747198013643902815372850724116517738645619060352866314314860671643453828686571057691677838052432518947761566446070797233675599583715134799371234059688977472449471884630453884447446489235592072880808701153985191628337880247729892951846666744957373603218033998109125104994998884152078159210961899701691308500439248875820973395422602069047706948973901564802311201768951097477929359675156708464701556285850681115622500815286179050653733120957753071455395569002717698257286343836385379916447160480996456049455832141934775268420913789540527609769282895865917735556821943445216705160717104312339460783405047485612832920721854760930556385686309138651878264685842495247691012396777995896935724604769243256619835324889573325288981068996350667859077374712748354955372758878228015359880023055133879298512464237929160502784330792492047579424038278007002514318912349794610847025269918550962967105800579840315338171334658410442809050175833773643752517176161730392457920676197775398853970090789786333483892782074969676583262086940995644457277050780480470434565718241747864072996852984368212749978380913887702246028726389263555974500231509412983014619051391101728300357384830714685609878776258190837238074445197518318724917680600496525062232288763612902431112947401960357282141140400968831545207953518512795408843137346866968812857578473206147830626126583131785098052989917438325270781725292935884724425885683152789102669464447726870006672317704593362295108076129491739624405334216810953918654210016207293190132494131515740402426568656126466588067334416216059598823051694997729821017371670523752280451423831215914632584188477596120919096855886287494071994749426244113984498967148383157776067449182560259569045852200287980249067985130014764876615537925055613788852911040528899021725099513561436978306893887903878858965094823298379195349224534086919718758897363494123537149803373964547863496536289905033584761631872514105374506184790181020763795543688662274988305471001056680034932000593244326033633869167143689667259189490504466247623380398266370325133505800597391184967182332439980229482368916228632156733996297935304447783927719329260726432153388967709085121152017226460004730560531540340550421722467733353073893772275761186820736956794743239080921565239522041958421181124563126595991214146112116791715523254563217200169580357927086915148591936703437591980650388584176666898190363308339259000351282735689998420457652776408401719618211606519281551429695416848386469722112191293087649865518894022410370982433437284485476660596846630991787062611112159760000480133504704883916115832644854696004321225178461656683763804744202321046434053534802275705650175153602919178799158923998305045554715911784323914315789414309514844973109082711129829251762835409073633304724734489049886078519195315900040413617134102023204128255607392809256942640085435418551479594896190739202228138713323830504061504471680791199054478491145283587898932471237613946542087554178195462049625019389759372001476712021213944856409328869617333295637136672846970773323963817124882594140447457339221873179536261731535001093084122375486232473085692127594205282182170456800415830771492892669324528344456073911081350106152235378819643222607908181131950999261736693088512209035638682639546854706455270408778839172912412733130102074238486716719100115249677941866085438621499914279992054109058757591384077424111709125462805560041728624154395191691033619548535146810542399929580689008637554701295456235907419884783616372577617156355463577166652362510221424273378737704448188805323087782841866682880236388918420824986019423764559209897481086770514738544997762614094681733701297338807849915061431572078792134243630676492383202611540156077955481723247139369335853445114023820314265145592159068482291302125667707443244630971260397977396450724112572748791354563132028746903607213095298272917932774368006820109475213969251661773489431939693947881706127457438887454915849148469357224033961465034912751823966877339380532659865536806063073929965121177683068622989459375003997954528784624342719375521815731877484378167403624620728360429308657440200254450407805298990888060763614623230065915738812691621050380039779334089102285889717108367049927121543744059928693701918077535942824076108547846933793925003884608668088848747412774453273203132814335208503813036533380821224229318718782640234227306070213818001837842650601436784881312461309020000157139234612359344203771647739250186648056459728256790178426047600588081974347934454618458233165630929088648799615236876415550354311196246113433928259075963954880095632548575101687299141203886651267061738797847003038484427327862626269220938057538670829179974474928429107727408744986051270114132403856754046666323660016090281011322899047702213294311118934208374711983121812667673733591702676393542509492455729524872592774475833037415597281972021707886590151648934799310736724593157738526667383242508478682882162232914620929702412217246553377350496526826362683427931278453863604328570099010372524913849987068082319256805835792172970947151314072721462529848210328392306645098071626568722483813815683631939358051400861789938355044580406801715099296702417642245805498581510294934072426754564867948767337704124158548058695792204309824675517345738392214253029857277345720732132322931318858822284782942434756716823544424333508890399867776558292453281387387029772017495899931450196837447421815864809755624630713372200199675794279683129335769587992144019522621405181347704416446000395169653325072649958228425572848984555486365791983246683178356875165551633281916820747884990104838382568448374999331651377218410056181125789108291059772573854977702335437614870762429605145402418017306311049142600967735297708410790787340283070349614039923278050613267352290984813559806576313101928557441434796204388992469796897547868388565216659895680315255216800545481804117195811628442863425164373321408367012192076705413009584290180860692840509390405401503105207859843895457809644011590350604648294347019919594293275350610837804185384401176255001918326440342731821424276043397985706283659353842790097221977164426326211887023496952950366682453948170964822149017588113248896564563095652678458410237068917372130374098719939013103166500608337811454889246354605059363083747736675609224108084299185012283244235149538272823152963907087193439527185650750819835270425783255788974687781114172628292156366879925704680577804313839821621482707242463327603981033048131715975844639651139311947854699231182203787749334001669933543944705195905435523727093354798106903644104652801504424855155002074620758705470907501496828017702497726133885449835402985047341612718799524691462339689006486121991622708169848890330742544093282395002364537512082117724299403231126615775931627041670525089810299796558465743535147715053305537327722972600801409282114867094206726696907283699275265022447624118190949184101295774487081137696652931131174387046040350170086441288659841105907886346393677294979016997326469996080182465233304611436374783878634259749855990687669504781194159421692698461538616984413689536532379032069376110659319357384836754202652539315022931920668679194726283419898689655002984172808238166011342577400956441374470863628350309762542362901869987900566011057694290532923648923595736097249490111579672820312744542583497760723997327625823904667474660140499051608560907643779329230473290330513533625872388963694407920311743491153986085000576860310525613525825148818668046279353129403169989231657277513314181372357478962771087612291737194946398311782732094632716663758610100057524140638462283114986196133333370156336924176287567185289721996478215925066476812844962248961343933706901949936029199402511983287977711914400726489254828489865788247122209674944962001925524864707606941839723199150854491804535700763429719040190931291331448704534640043999936940621664769626989084705342819548344646307679773340338341186702463402982118764976574693487216179757749927089231560713510966243602308444626227435813410692558209126092439081134149155365438343083121942041995976363787943127858390110441332897003515085188550332542707656816858045048787774977736107629255058548053122632271168125651634209938217151557094222710366060652458125427549242547711571058383229274539973345226080629753497029920619947070391325776925614251036911512423511421493056333994504404431591325793518894365816969161583828327528714027895866450668159074118199927407877385157038284987575668619483275909939781346108106053627332049374221282699272894414600073080657681393896391936160464818881075093145897744730740514253628575485425664279839519332488218887479315943520780775622006389779698370274236399689998436111111007066418727415873279134356307350328142497939495313155955131733710673302744950470756311525102834315093660785090341322076086062971339703684669259623758507118522634882235889183104132669712800509651640421799436697758980295473682955219318569673113686897034007471785497299971434316383386828818649632135415388156447962239316035145561381972551524307498214526026152171028150103427689036536322278439628503803056858038667981456164706876003848680808415186873302243071547632338162572746395831272617790996235308338445354610005974392289725984459735844372543358732215376437552035920202223568464900401076252237544743020797713863678958904389035054254134967357393187106050403728645243529202802950327303952809167839049537709397064606120552225419739207617836951679257027774805868496179490799570934916241454997269914075810421896998849293254863190840612824484541602012393178178735458525640630939844099944810448379004906577357265758140441261919892804408122547628415420600563011688164173685329162755930620225716908177273015724879471550150378881333151880589680862682701316533379598401697454584866142857425266348962577445770831906473353261328443329974473543804227092655035923541048763847674718248771465146018957147495427278982171354963499260284884408701237154438567037656783671409770787732617788808674711090137316888813087700650506164450483125484390054938965496351542603181980580834334889830141309464274072465374455938722779376276622354183432186237585893627663520404623052357022787650319638061003425082894046487916981637655413099067978529522583013999402484703261285622648795752344854938023046098334304299545360809977920523735449278918311433261824642122783853084279370029282038056969158651705549610799062750901647372004942679421298455971021084133171189644074877164525738957821507966241023585215288161523986228411906335049885459748316692213048178116116602062403777378580674377547054761512876851221552434462756880256897496325603245105845819289613101879966959394507932363667676049010507948876179731774935121127205957747297667576591437420762124242811393985476561734431548678024832531601534821277285020888958267144599703973706697083272561916888411987181149903422588749249902433457759751588756109044757836718924042121595687622997444466360208477232121453618494608647963901763400827780423800938374964910026754424901307585151234603299985869261799410078103139375675189326862092735895858211916074194028718084362312390619169179612933719895127648696385271498934811286275399609843291520502942181977478897968534678991319480230700510849627919532463100184818134460139268279198108184225468290291900285468946890336271566605420779509723149918122738221945100339717145511683083887277029323848987872019688925965582101231699564307526658244635996425437500719364994249145643911627860927047676501217846841336491795841556672246688301053382536286456787351794731898878696516495123011412974295403285157891639722244072033245470909932019802901243868065602678994843326286286585459362664258282175855472678910272595143964639036084482847807328819309886767770847843796547860607527280538591727124884361195016688852532583679532782628680834577195455728900830862333552447478567315983921881691400592502788408235459017944361263580604938182693816546545113166727875455155824970667928833298004185483840120475908750312967026284312453991731893044183551987669698464614151246095590393521036313828289790930106291901738240622815663975579241045947443848978153706129645589723862225249588287950606992405789268189153559506517936343798948039503442146760913826955414784723724678435623033378618198937970690115169735425281601854538803001334721062210517137547855467829043285897834593166994500258327202695408524809547407579572508243673470259142951207285806075186907930589117058062910275864404736723164548835224326283366753614689432309983041443339711458780572793913442998435970196761416679700219594656225775064570362697668651378845552384405475963981574109310626035252796742047236772857090773535317814047645412462866509611309575094535728475421582397807719579715629830162224499407804887309096852177632342651128402557559169772285842434952910205152601758331041372424790076208522240828211409248638818401249228322872375861398048542115793136569181699162321645010912164512326704985099170906965637145665159640309581512686013703643593437199190814241733851258246408176420479714362477701069084066575366429924413526213574978899766757619696747752999177437652757114353955337689532960399921646752523525118842970314171561977629472040019938467109033870538905240415812486622856809194675482892935462907430262239146732892311884211874582059443274925318543309104996025032919111735672338680023169797666253851575373839778050675091318724073428624496931052329189657376398940742375585542213885763014751403529694739830341512235419227897768308154051263434399043429809675090844132698008781996005615723055985568287659294492178470362433698685580796064725276320888904493481075236975429179513434419041221255431923520802087024372696292484224507587685254779157781303295905476334072902717730258733692950664222583783929758284655207032481901834283484420053909517969354475465901356707910016942935235738553453602957609971706796590765264351689314672768439003892378679249912808021316009905310235601061730966885156270671893230203911155779867497334932931568509568208837056644770222978437050726717814441075912418247979891837237388383936640769785315130502875238913163187606727868243379636878928713335930959292449575006432983576962129602490363391326242205062255222297250346516912142738545497918723358032099638201104319334583037333395465082069167845721267759540543989073523020185462806716261855700605035643462569511132327533703305597227677908070075205780123782250952870734371253340326287800391704744859729136275629353364718526950928071742467641216420032000828457129725172566774273317714890774193443796629341578527271465492282628963944943534011560646639423014648403400520775637358178956453478609526975042235560523281904800607813111972060242875905757421651852074236548186832486986940359282484306447577697569142297752291258889144158103984433128710234915128967950347723771934422145626525221006116327139806434101209632043731304655821293094528520687759645201562768316715261237854125356003949009300740881268644517246427399194483326968387071627719475002319159727292173971229372206189601277910708454905707652714187069844932492392652312722453632645702154765265608642035421373514547410733777874106376058967876013415605116733242841898511688077510212182439142716705867656821563141226624577497573128440998057560122247092022334210498639261399116662181131447927601951725767408594081390622496266233505804033078369832614887747900897148814804427879766449067013625967486009378955015227859344120476037682964214942305043050739588991781477749589365583808385597113580026474569833606236119826859496011201078992209298318984495780540608807577454046924876587401356475094387832960643386119600911271922271578551474215823774384519681664894032868355121369973810306287161821641269754843243902336898146538040018906062545516063507385163321256456131023201719990018555659985387596217851575870029762467337488506273272236919243281695613254360317594392978612352222554900561354513793017536412882951709600160521938221440758746442108989043067777004940835843704066072403568087734807584620419404118591904057986775311742656514965163223657486053426614788623960435932910156363548799954775641224973693919413045473151625826322708843036230426931084093217362575188905206002934780100445111967290988761643423043443648752043629516338551086586150758269193690987801716084712990672626896788691494488291829112454827030118132406458537532355724413609601512789520433890358058845321421119400808900161059748263649558303798387275879905098997310637601268546010221357403543797348802276633786472720899036565707638682362673363443382860718806614072204605829857884139593254346782485109448759821163048786272776834402899439893776844574794546890967579574591755910673433886307204229909018099988298045762533004272044296818135931481440270566480133698865640912264433813375016211189774503008852808482325247482677757151925973132293235461885384718565810241743740257385194475621696887474612806604743239933649602836252392005784531767906743527097566405406255563016619086206654229070297443666859053230222850173984350519288325540161082526841439791694420949544502624862189594239591430892008793015270273742665574101449500248103836962594454969545684812425014999399756867932300899683763292243840522162844597131918707883312156839778381165893788061871928667992973855933934353300887815430488843269378527808231500088002541663240443370615278928937070374309037180009783887686083197718583507916784930040167911167021542561171756959081087372173469465753127694738175234934714355291085594143876194118188491892494048988935085016088285779220131258531468244144552360262305665019403827481336610857911588154482602042927470356247941443936514322968321322885102612466145269106917186091426372585973945219341496888965739652522395166941649847791228531977765630641960141124891304981397876998486923913400250717563402948213471020074769498233707103341963668933252684067577594578192175913997492327275101657061752718590065369010926542360063530066718838379094469674295571506003364473025213736972422065392316196990792167980065818322507027332557202713720914471581509521244894856096542776358073988388763443800366692106055923833729476218925596366838351013146746023146369736100456531082145907791342371028673578500679564925804449197780894505435166295656039493965057663088396728603083470730400742768842684256996368127069849265644076253347238576380221985047032309448131198952446798424335593957411138302408350190281482894437526825496439318046041374191110526992511367632640856525195598004458441372935059429777509222741895072211265975258956649398803947393317741985347059315074774896078404626763680505133729812823421334179774704158459750060637211196440429750230651591392423016472375760033816768936539957570772189237675107025666475997131227602686784817352037243254631375965826757941981021411744107241813305761001848011661900438537319119698161759409760639033638968382507154576415534236934903776534212314950152539349165431232608833245605310008813985129062701048023648389060140803578053507422272998968269783285986564605890116208110090968019660526899106316158508987911573770513979840556445225692252465571081612303964939420791033623497363054110262025905921106129985512245326486791517514445437889053204797669297880836352972768558851139646721818096089924652602170504177629246406941768641575732148750316542689349010155377116771259450721870811692801562477136707412166543249515165385897330410361362563663365209369055731413634497762429619776404917445836694952674212707177736599166844793674517644529344413293455014307625444114889896824823820103140703540056903822595366214503966185442334987789985923262684734068117701120362738687456607105797480475414447892211813858973045370307818469955863376992754650016764722070210371209716264869074850580965313596919331231670479020186628865966501097447414843887707036770353461288972990740983714691067725644110591553572862677386374696128935855684024949516795187095792053348553106832890476431393131210278917080260341226031307081443467552524415292759198130492327320569690009453463323402638475111390698810481811916317845512554111567889733015194496564843720733220218445317195174040343217618365827283234317827878729016300248748086107986099728954134654371171664347022769349512328814819071836361811531715416884351613634813717859917924439019645992480700844072470443721662855599791316993207569292688204576636967584228249615184823939758062227619342731714341715621773113482144154082044355010303633573889968032318618360016777571431917258352324174919551216784328625394834442479292250233347724704349900391405950147216195129872639476983540358886990726539640533726102668586485413817780306790189425330171429031192335889789984706881275311021448471314125490948046241769579899180753565676998671361801345239897034086675324322154726996876894568887462838003037239564339383912620307474286499636382459127285264028228336464761937056926104963196530135513945221224267245474512218583818023620591965308101488964072588424505150205495480235489976052445197385387704628031197167893286768724877002990438639813895095525183859965330212004260575626770463638052654043194939929781213071197512258695795570513421021556156329299935001938846121068051702048274974888592690318478558110851142162257987549667877299938159061649088804836242487626374207790290944506434489212792731574264316652627140266680044923294257157286419304689697137722180082279181278106407104539591723267218573746697560604364957377275847947735354646754196101476872858549356468245588594575896609247315671920833617455699336612042377367466243326921094956312172729438981806282089137706697727042395786213875141716321209774956831566680902440449325271222106975339000771315799809206880892686824350939058262358333558827634555400498909430911083704629438231777201712176134126830188748679287241828041156170272293166086702306966754691322779294285490800455625626266005820630492462407234650044223242390922084345112855102463437145859002025118091117065861526852938751442939461412747841505741277759822025836784020510031766666869772259563023046455346137986959487360098420727763413388072496390432255937225735753774659152549598953827494672179498594063140906193768102706031941318615173744363954907481422782437731994619601708764927419496479641403865238066967148874091316052529944721907213390451923881209352581650816776212864097402426156660289480002129057045363535333833440632956934626712496441386304996021298803838610209613195752179418070749780202363372348717278356744057716425215550232856663364188467616087441957941101996275946818741829118735989838050254209291065574569559043749613868387656779417018708472380656235594861658201398269611073732676146687390714585942549311257376553236552985865090912633225133821868265048048588280946069296619128034517312925527282411574953305669382519180547941028733247822682431336086334966636079095896676156138345564201308137395415825320930848116029402860490547591655997030740152948905040035409586021934463489564143799383014692196987094413616985830298504357836804283165947552338841061645359155156995005062104269703467903089501448635871155712811816008265143408376705611966671908058729593914491384308379670002950954932427347656781288880008908637659734742136206081220464078820230618692794635157952033918956594176440893214224926540922479438627414255110761080954703148241957352577617698756991615809676668490575614790836653189803648352061551719701661763188536470495995474757189856266655484829058037400761130469562970672491381366584295367735518271238674452065780946362830574222237276555603244752971170715751810137716577895881104091169444157898724784155545788367679875973686309898804663473820212974086393851974380827433549831137875215563533568806667219115268061527287864634288274552146486153725638080983373905846005130920550832890106098120479747650396439656798816399025085736168686463855849537034878366701724313992308653549853561972917328223627763171579618401488070386423995759625437145538542055613276310500231884998981928561887926986695720018934356722681725045043031477393098289581308201800094117275158602826059406019383645099448211757566302091368857863907898479568428021778736006523737081158367251720194582470984864795463796296470656128499419161670851342067120556790609843552208711843332225058523851062964149656262907104131393121168424955136078181806889610370701546149478532570992896899363958087593305198077472582517397043490132492575009943770781774397142558231613935524180165403545843738937513909854995321407640804701543464459404873429110245206849171496319319767780075797084850597150439053718186149809245360151935990557729098223729890919729117396503113381867594155464226306905936252183368948493643688489108834580959614595761223387514637242542674032613866790350671364357814322304840352194780358537543874150514097749021442310362284208546313337489775744349924536479546579894898490446201751639692487160630414657661359713283047961034232259458889494819658692174151592243653143987887999686939738523370705181055664268409829273012062002455099682684493270634190081632214219861272903542885386837973544746935737591627255835801661164868936034851272087143271245987704072243048817314107857974879507925694284942025931941683472297540708106538125951403702447726288678740476477765056196367091296471917642557221199981021894856632269650009263914924266264570175466849691989395762658098488381536644579376623260994061699074565240868393185940467283638134170775045828550532147940462472488505414640765217005250946654844835536167883707631475022514419591830094720533742495044863178666371945584506382438178931592180729651475909745683045851945872853774323999665779838044060868528372621843882832820059544767070999584028823930331111586123415090491260966952164049204102036271918880713326805713656355213168673657947989946902562398458561055281573368856308241077284245137714823041440791974713104194947206028125851579868965015218801023721304251966538174272250506725295976988938952324198872623795432787767580391066797161249875371928000677712790400718125712660569666743681394037398691314424810935779478083237756080392499168634162301335863723698095198056854558987338340837628260149801129636500798355113009830441656381857621570740355515240563169530657766141958884890487379906350792317866239405919467547834105067621643551079187772488952377539021157613307816509078247079489797087237215908546789339520257974901468331547470374445968839254063304891577440009208565847798442916657467581090893912097119052099543805279941107091236055987811161932149846803516410605634460664812515682298941053486175743218736279263512361904641161763518010986029931501226283206675699437099297817333922918419182684654275399704424412336625615728143351372556378609726254063506694210718203567116307383197347645569753111034159997116073518489135100998105319949685979462544870494112806915616273168203579575273397135322853687799749458582209549567602347540919460524192070051788041966228028621571613638602615710135437779144022412616577856558399121094867114593039965934170350800670661884239565917931151145004315734832810108609524722389823250959604998586059675596712011907811046004519991711603071903550507926651816443275313212399831772655946943784592284449807065267473258009940898375057038156009429518921460191315306544421369919931792958100723320403550564241536215903692180691572039639804452247353326015232739995427705918482772080255986101691854067367971251891956088262489935571652113710598135753848106194101483182251996632392806330510034667430765504040867126634274121879695101560935886964476129805053980214690898226986186113711047785075171487100240610945715268526884911520014432535707483949124726930468118639637875025525513581384976478069620530952806910483297042098555924638282059227660545668037197959113376861704710483668891370741901003068272583742478786913216771148004162984019532306477856466529222597732655949961936007949017488658525881662102567078267476302142005169733141700159134784917869657162672977634555620914690530807604381239509910007218251975644797119627892583785836802406364148197671148465337921164975763442585607836311105708727517637119515242104295928376618119472123925340828042465155529343290985529047402067192053914617200174359366894664222787972326634474755280930288572552038110260700612061417779245427159957046398895288491242221739266704531642526997641473217987053511193796517276079810676392224503096277367866640495464545288062071516055684477973031695015110190506984680676167788995422962945153049636014604667066530431710787210696062849925050073437901761217813723018606320533326792593221369407116463111123661844336505410355489429686382595353963747198692375002339130350177431830183797881283606289498162892692104160745611072403955081635755000322462533128544766996204805484259159623927941156308347640428284184884648104608765833825449454548136149958500637338877173189959838730742228881432232843642054087802917810892821995812754327700731117272233188258533151638632658722649360819835095440135559019851171652841403921821692971126245941236017164534561952850258619551950076381229373392319214235368999426624023197890643447627140804750418664428549070382279767317189684506563478230716640007570566573532551419709809184486823367097652433083506356324281864209616966710358474997202674785434323161378206809565977263152586342126640047859851607115239077035335059564727411194449908300056500185859530967047817956700145745628773962446106242220485110022536390525965404749243068449384541724203436932396899697575635021400739464889180512207333929604993887953462881228705044492593948009366602751294877066996731586796542561057296254216995233405260529962839035890362182820023059047358551005712186092647040181304641357306412115836855983458490982115811112422721534761317857655780494083640217208985214593773072485759604644612981165933103249620757957287807302323876685671972838500683055058446789731960505033406323550733426745579177965881866728802566081089426143155938013628034573625219653619883711801519525020043899565709887453333718692698094870518868811505053338241401519944847998941922121953684545249017568545946443174505666018400687393375107810444748212048865178328701674282338979653402361805111212380015897497698205053910276396868962403242994621296546057404064348460557917908583466992278736954912366909655790486902456390703182903269936081757271207629206574317829077158007678339522769292046520360073248686837835734824053545649854668405283247391891284335843779071962499760835085171776007900306835395117134875303091986918804478341122948627409788770174733375119880631658554862214536731508445072522789459760463669209227730099246169339006477641724516938696462369322999537101284030103258948839499450498214478836059040417857797871636635545079448925660718771384633789427217765109064134636876726358021110492817998754591321136367074529419691701909811274237998476266589416754746914108893208575359136027006798587913923470857296665603223299637443758076756657855289054386551483595048192763850040703583373708004893592660849418085887872181016441646360254586144874128951041527991318301250964278478003411438212036376826132549254659854712909146169253510435952788007317869874524935736725966749419134281059721433908170025219528361959967395020619614369288818171054706938011019502555780397752109124814316008416004179792624598528242210295847388961918706499501451652356366281440807092291851020499001604452176126243876346245829779228528231207844377244385150148336646477702821047780534765740996944972660962003429690212618577670087195942514788357824417796300837647780065140697761486342540402115679829624839527837027802963778196598146368644005576458170018768711574940056603432317254539434622291074659521842012320853750391986676054698897711910493031590063959865979975949972657367057568792415005253017620342051930474397553563283383936740906879828577752907486579658276906520549902799320788484214979050425962415757563270970168105747247143015124111115236442226236962442457928225854921405873827427277506177437153874255020514076058411685796894468500005429353890497310250367457205012252683895293946160963071119577135880277748380303344902627038639174520859993440747291596033911179236968931720377265225934275319571866624808920982002444087879375138090220418907647567950467719984688573644538665019265144443558205832603901970521550728751011396346512177620455207837680813845846381537198532049895286029168070217015912546449346270575800170615133466985508957049513066426318098879898381926882033418005558472369732488794899190390823203693981697076116840468270074664607001662399962030950710050948575294075224531812452435935720035508410351047288230814561109349152419211298652288998692056071929645874787740232910826549470856511965996039740755837415793810957004227846483793046222343611697544373854065920192699920316244748184835160701266353119261897199528246571672503198891122235855435134273397629348425331932177022745602786184927880229763091446485469983834621295200095608280690546080478882585184018900683649217109356922476817302186667741909017032229764662244904887237660546930163630190730640198217894872282341074042605715288641352047334527404826521106326973357456556696233979338600158108994266906564135225334984475383420459593030200700743073385642625263973197543757530763118333553554785920442356082107018554143789247860265114367806505969562296345259113885165452356800209358154746748484143593754276334622996746030355123752607819067704822650975396235058538060286109380422913364236790216054720991907953936557078273568402562445919140948850174837213247316770689128568371359602446748326164983853363361834301648181682859886818001070950443473093217673248938609095682291027773543831146378206442328086980772062392761099197849238257666980739741734261653479805608125689489296071021564999527749279065775043692916394492278273839256436030887233455938765689051652867310358971059319179315363873746848084428816042747419137139143621326630588742118918123245005767570481569361404939962845119019576406445003621285037794182875279556278394996507606986139630457864777860499827368646663969408394948263675397867032988523931819247212248622285725366334259400961074011668226564189278936398265166408493312443886964132349548280821639232069964635839029524185533085365333901860343021179222023916778014470671533388369158457867157977947975777557167322665655918092646037416073267045277952676809659679952486506538017527029586044432466122041545810850702888327450055992004273248534647210722966451149276285578912368907522497777452234192928207346018239862158556736460847867612287645078209683940804956752870720444515962924623511675481460903608942536807263391295520700280464465163583027099219119293602881177663886072002276831367642604976756659907126981817056436293133998842202901323752975079423822095676612940096764352671960943184893187210621219214483785228063446129926851871553978843943912028077969521547681241663166454759594770983413327678980124383888034298366600995274253291543561243412194593339426616873332486285550399535228548499879894962808892296443191930851782541625634954446008499509594630886655147111693152460470969504407946591385972689302550566120792261568554048405938190577326184150227011986536236511112439278196571192195665756220015329634699350956423038047132985550909268841369409524677020285258580554250962776087008876558602576867223908412205280411260663844701067670111512641034841235016828109733741491028904712943318079813127756138526610376411948019507056501286723971837414032195133918959198703804156514611765528129522687614237947856636853303040066850496514511560584601394346446936541961649744793485367568508695321868644563324578732725308818671191286078815758717190409810214357604438486764799188972636191587878121548812611299626162449403021572293302598193752412872182087936878581000124959081943348642361580381871110193382804568067284782627027028095712689328388561623691182777277429878102766761072611864642544408445813966528635745670382610111903889281008311591358501682405153919297767775400063285766072724195781719396288101702728856481794852523182598017937660423110025622012332401795902029065756823722341228286419007407663323472076032447071966514255947131029934561910229245088306847623264720840809058193303414882593040975533545333648428152535997855711617823239468797146358263452901516503893049746414686682006921599347133153123040085640316979145500842373120797412169686408433716824372872725645310415728156261352361578703463147516697447874903381173388665881284986150912867241923176721278167698925071330245136937927379414960069516518085912880516440556244611281877345542209988295374460061799265056806135246827843551187349103641502226338553649450420521920668898694744068750950079452648745403585731439782870835803118519082816129640865614491060787018770374413758023147901391896501059693098482414901663328082525622164720001464019502118017870261873956816156205267733887580588348446685080646133334523049301103094787077941869434086077772891144276460882510308494913705806477831075622061917989159057316779369020433744564992171982140267166599001380899225266605636574688072078679713898759441382985014420974605206082025526005841093429572683079589306700940669464277366623265205505291147531644367033473994790986759462522381059393170859682020076892536216996623772187286329718439281202475265829364231622805603982351462961050242650117402969660525881092284039847114975779953271339213987373886773439261902020499347106139464009480177804968176961800354156784170833225149489340963206664647525161051183139560311356956203458236314683746940549256021653745173481864370959801073813043418181461723559906288311383174080020351326872689433312846942143819192416730058530449741836331397845278997189313420962821630873956737739386534923560160916588253698263156770776122109811179269225514971713549459730257731213330155391050097253934966783163647361834263607198132030475879344940426209119656656705896500430870821597375377790272974090034846406658121247562840506375444354293587572795636551079268242609654583207802253233403350778548369589325618416398063978149618046367103002943629707957718010429774764763913402819775063434970525997577375538886365562755428094498641982316134783644959931669559866970601947396723717634713055372169665659110357333796468280699040841248946427764643474294251368898954944995461376799534250815753959132461702898853641926598395437539802551511658235074071257306436580098394952280553938584940777765682555187298025972423232404844455449315557237221692446811352355760934952496886174729655598927039632827956077493190462465040546176426588587379659001585058342530315233618348940677163369890230602298257065267412990803016031759545003471393223538289222917280144788304903279341436262660517303826615410836977790855009014638680498303486548538382761571974122313590730370442583926728017259672172572861016269159977674606262089609413257379433350253254008301354383214911987892257481409401477374412161001074425754238150050013980133027720596693282384825353731542891507574731757675948628840891054435793879244356456712860650474055305960628861839589956796967030703919797571172682730108580788387333685414020255498306793322863543869850303919345049920466376565623033890014377166337022593905745957865509203252757319165497248304496150222661642909350862341076860691087051098335870253439967078262619040250620184426697815746723347032207831035741608385617611067301526508110417080245435515662009467561140594523087154335963842379380148048162612095383082048034374978805233042878529135459158396346650173287975380415919600670781324985533625329147006236211060227878334553522889565206503676016565727560956688256650256294446726274987459129306245516958634540585396367040824297095178342120544322567686452952667413622595164762134141727453097489500984127754343610578995523808215128093442301016463021397893700508992332730624427763770463112779332075810600765110408457154429250914048390508748269413320346863079485544988420452996370200796654053600587656979860224626602728063154281983139665107284074613692467186231099911243958742395965225331683471311653115410035881490658242557449467368804435324547720410584349104733611106321363908661484296160277284389852915154379200546034029607309388030442026682487824981720248495188420558140100039806095301640717665349306806996753644273081145737487000326837142522282534738474088057198625915699571329322708380057067094194390686995183997432718285565660279824387703889673722348330089728526806466763876305808839826663000395368915288056755334549724484873844535724534269714124144417079412091749815516284960847885659103719846328947189879768832516187122188778160731273647705220880636198041549927426475662007789709570719667233765646056472311066003457639104344883338606480238368092501240507824256117341810475001939198260173998677911352570587728044875909681828520364025789236489314626363268349820330781477741271307186320728311319997270202739036274176697973418102052172847915623839428673424035681177587547009676301190382481941771853278704645144492583562641664772645894271644448146329722369916216336504137518613108554609483662314550228267005992037786170898507442745349128736372693802851107717255484556006783831407345300032852200744441484331149819601791108778359690345002378351550028345034471421159261791555927634193672438928506234186274060312744758057479377825586119504729795223457337832566938899807913731179322795068565437266346083582370607002625560490949422685542756060336113262246133575071549321409815503568913341193074649877514913455865230154089524477119691348389304351666992008190047154191232041486002401822543522037424647510853268295880526640325747147465639685098021748376361942672457447713205038093289403341568044741129154466602041716612996789927906872845572925227834318687732802452083143100191702556555685842385930183670817195817805456707814032551675119757062165273682021281839381244938783338383495549645054952720455647846320325370059372234068564498024522125606046231484982402180467995483263910423166764170054512107179269521362766442806252531645950778344522762552951667548454605519901570289951367702394869070946400386145322082809725720304941363363341683141050522609847788682034886525686370781993091956954255430197723759021095879898024314668295601745964087618099983669147438671955921097622348764156153539623641009734995092248630816256267194286516964242168813143162105220732074133365949570570949506089565647754209669711969609170399659205121734163605959928198319337666592320993034323533558527551267182173189658355227407870635306541028594532011570302225283233867207850661312275006147751685000350997597826580415211150646079401028042718485159107287436188014008298770448306932100237435714124042356878934320007087712813219810781460884766438157176688391368190730671657441502882858991915704204779347653370696509350073623531897529293851242120274306795366330920734032724161921051957309025373196055648589737881178722109554337939254325383450063460600405019451721509727051321850314990270336091131403569552950211568068508864724016013970373142744807198800133028879644478454726850843543332077576904129334063686972423776446489809396613347703732310706056382899031296414558353892689112741600551854035983413797430883026963328979118662222924672621228137490291819780417339262952548659287040139306573972233835889723654093189111517585684471960305006851067459447254584287859585731304942475531702704368396982053139598106227995412034918368113678290682576501960288239467047475893962881585002851028628477837819259174776070771518645637309060958270646194091778391854760573287666979969547197583807186580170600569856577870614460464667266447319927525891931482167677078503169343444407074915073429317965487497662459795423748017981801333778321426694876332850782858133106167073530181490444864904678122488923724745602706146878953638654073687559065342283320236664019206729152041087694800515285284404708129717387035918703466010210955438043404084193084223496022626717136987757342720793273380651119414109411502910671291188461876735699522891416239204796081655986925313977865632411314845958687418222106333865780417051671552256151789778066241253740593947848035828869242409964115239830931414185076517623565282519400122205010866667099538406399066502593595300967373755981133232143137005090386193690444562932890366571142121421986656492883739619910539986429551457902597763163221821808558349322489372745626539437203195258689279054790197635430409890727088764220763680256654832704001411608769120262266446396426975952522624936038224484267195402164733005263048463204404865041646033437063769257228735040702835684924345690776897048840756109452925634138304223837238940160640840027874816925631542875951393505716536944090331143914188948820786263393236236867968542659398836197254068131031243856901235623828635640876194752396569277709841825363879976376763596224422096130053851967892866594977721042465548296090588852031834045520554545858313451240608986054208306508683154138884161575829731883110789566758069169795190130653386222528471843451956780090274156034736608205598935957095404882175310073698878795091639313407580819502721458838383236701911162196146653333972746022943947967694456444848005828477537504045735105379003965687267783883070787795975343302784608472001528133244333072871420147694329283286417762790220209463573439663526917699015165154355179342142030310408952806621390120521499088817560176658814333556496932101914771393606960609272488235880625296315930351276888268793022298929456230114864763667228780915176496234139188126116802957106801814221478000008832474622492851259753354608468078255064344428729434773940163696352889131025665188875026299988823162326225085024241209458525860424239325839226705400674946653040402619769385126389431437509445907076780070858141717267883814393497000178139344228930184161759113117385390349124554710099699230727267991932318843454588236756580932550106787003378006180467486346392270139498067154381924856730786805925624715741674630754478249780573432758851387137381874557092597613642009088948839232458022853788691340632399551075971458692739755602300835954440641319513068806378759376579690288608813668607278254130903711779498255137950031667379199072656882464860260798218209438500865112108289063088877413426579155672581113531782099819321217794785687619504038691160921182493016477997646212360100155259967348620562726272015840244688303207316415104023202339211219800252761141721970605653213983985334108841560033317873762266066251777471992475939466469074545129830947031314252000451900017773804404460991988250233335290954235623255389052363857082196334579365121009743480046976902091655256481239286484228756294914454172600108198098936724568586832846344109963024570295097962121661529622049246047432827808911476818785114565832472737806621325444772512576446519636358505831697853220362159868115583776353141062304550592610681176253440228501245041736650442791223802913698527527592800714460343742850470487817883565257612721240604956746501957547169053113493293810039424977489923635998650517524629416847739902380271787945899018672270420141442348126386661729478242534775235120321761170610872847942630082738631326648670722361001198015813486695823030994581391920219160911888754959318375876555016985168253409040028841656721133678143062489062581208901884689548271995808584511672003424275820159970919982549967124349468733106510840257350473118951580519724215559712164824068275903646375573626690150553729917460025806185077981356458436724857616607638054365052225261708113422239874697570213207442228054557932190236596830917013919046829256925637071187296437204513491900783811541884340250223873744325202451680362956995415034107700470738775334759644099732197754020154964456275570193341605476658542844718551929201225974588554926734321224863481786890279376794915135296875187650074801811639869372036208143867102763383655838080362068506865796020510110094785256995436813232888703893585825740672591242275785519894378736047227145340520136350223952928854496501653516396181546512858706109437188129753179362766037882844819459364383498754661495938854494633600539894823856697944358670925658367163932955122129573958284754748881655283091254487829635366006961360437741963937786488735925058707048280623532535179451411255266871473986741453866389776172139710989768071053376251672192871412629268681996935196626367684334410517747633669603385004861502511246884133456084689746396571052495223369748230034880514463595998907215930268530259877877491983960939545534822504410206925291199264610046891052769845908908888197784646699344582256029003030186664825720711367217039974560217231982014795777606133675911281680762177046076055567058350306535214703579791923207456758802333701612186788061349278337632889579938863510027809619488573576390756723319627314934978011222668989276707269909442158075882255461884260781928101215082699908752453118445355698277239843835731298498976716803420924821907999505365478756980997500587344116252785184713332085438770358274576292029055258023397698853789297309197163126749589804211647262072858167645027423469282794770645949921473598075801931008304124907624005175128286140731841612044239412962260935592256008392382012784848546136594504120568617843403892327596945624050293481733018589554588990141037534247315453667683328832933809147865161150563874504118702163255815830512662314084726130588707134101205700180145596771126418159221796365229876697591017278402535504770982177170279385760572639462266744065441079943183484239318569765832357217496452311742660460258384895859882913960215032243980503410496581273936004626512683322850564050995859618769875779129482504301904276914456989617027557725472042100430642665101028001294483892093493181739632728282608145608806749784770031452246525763155067640628348548120599149631614491185591137761010081446596665138837810770083960968644811653016468838706367277210117553937560343563133542944521668264684097476870754255600102847228491165225376406630687791006653911822422729786147784923182235832125864713006225131285007101016776702708312169012367790975363604301692822578174532590712912005984526404199613031896168354690070185996867953715913979233125876544156781639467496555705521224742630091818948650140737516012839473776964921090582643648348176535337734541576455700379664110839516667862462517854600017046081465927830663787668583813450460962181350787325674726296436420806121523626387054180348316071848341293853922063444868721005374617067289773573647713637380902640648102402430574389989048282272427092434743890169690305764718499342310228930454732782359539897259665876268555325506740164408904480218318070768628813360913572507322789974544093531657282271080817889505926203780050028621343078678183075203466719447613557185000267971991100031154892933616101758862257992092124407884721957497932297473721586059408585017823721355519991041763238233697189485662545219293609781119358539371970045777213344427112238523894720193165024235382092028081832017977875275482461693815142954021990224421115278844403519991713308683178104412148659077069198521505488207136217338824395523690196942608357773322276096542028919152315803282521703172652053536472044854983341389590295736059632096200104782125725342980855015571647541347579659619381746375898116255327430487364488074118395735340720645674840027032255406892009525788607200507556677234106915503987305038116742850123465849520875085966169751240837816394773245553297632614153350453268040269369031845478723006103618320703543877692288645951550163890761946718368729950055230138760777740281757279829275818770064167165401504896051870475246419692985983365671306156574016420939771778246833849824933512544600774693178073847687283809845466683453381776815350493941393236427156778931659852360377513014190402447365110212869016816137983117432826262317806533527695382115715669555575470774017900255390512227061756506895228269964718788011697796405611480656073592853025126383115998326172370064399207027083465847882114137872873099972258596744376367535925593746481335599379943598641270146938243980782441263383422414113335890015055977045685681045043678003336803648183615598646157311544257239619107289100416128477063236064371774618292133680779375007734328669247813538359576072645489999913657446660923166192196618279916852251462886148846244522406789132538147322874654194908590227142648868939512467926807389029637048109641354106594327152465523267573391304047776538295927370442154952108331429174305110367053909852632946347331898862471089243314724032119338187029236696669463601997035975737206844357131275905374393946986126634554695649011104055493610824118862322809216350979125709920483882972836897931003076577210733394876899657824875579993486008885724135268239580109458943055237630570405402221976077114467813786278998384266846856603880137188178622304939020157594123558070032149579970348376155691770792736204846204779778744880611785575510269587545726172614187817273094297906176030625018806443709687751145159927887446773956194593762979020581151868703766721462256577413095987849388845267494108376541886700543548595127674233240249992390283681684282344761289645292136043515556468965854024587500323492193961279791837364758651845556772131116571959461006198081360427212768142306158605628857542358801677983507046597921206063179670875732366736598747387477713349766507128787314667147716950799582813313125189010566132430750132553667529244407090452262829194511005322286404258257001931715810732947352913286410916796520598496398760071624465578217284946414237509009682708199287233209980904480800189346871615052658223683688545692473850508764931571722777315172082849526350411428700405277326494575893489266165937161963134585779038590503781883796227451026152031343150068376682542884867411229665261900867724489227795891444023910786561178086664756895816298103681098481077275809421643438222281271575267585143515268438381902659439328852893229721067265659969032039737132249265089014403614986400026266839318647399413459274012025682238456789948934383578095287365542621539075034311475202895637264429395336834386140990217324968397517168422474360609445200216204571196356112933620350752410672416408927404535047678316946294580891693001516627645626592129878706849857943694554838006723656036175269405901799724503329955190221107557427145569944849831451822228518101687774449337169788172802379900987828844124453157891498784434890222129074338156980906227036766178228719882433697229613437238843789152955895390939676947260619013453598599522082144239125156315269889740057468082381553892806377616947717735698252338168585697723053812236881782112821568178708470763499802712502716775171937430954606294494185756643336789176096899135272810567312458231090569949142116283027011610188533010857797350235585861575874313282008782374999111339210059555428666163457741589815745262211453369842215886225589879959393953010386951257460816006443121086722741480325746309299183864042380631904245546299683170542652190916180699842110565465771778446107529631729293383463706068044517000651436368800089452154113817428331363684962009377369539553208409657656430969814209123738236595469650153023510601144481316238176975145661244014956555170781553658518511087608963307118036796947289346588322173873378247117095145216117824466844037545002533513031320815356360792316020407790280384500488006915876189924930134797457395168766192936475717808890095182740142120741846918722542710976252666099457660059064171264152627421718614883325793519646551545549805517557127230558699802757911606027872128199708735583105680164286360332557290729932558725962205339875428943742129630338979492573895620526322261709712803745708930797679228916853587278542327078647310748777754622200873605829114263618576316677788407036697419798232958538421607831640915818928360694162535752612033726409048515679991921706166183374111845076115933922307142998325800902265276604665006815557752485811884482755126291444493231612718960472869490764320734921036065424772656877778020260928787726192465454355105289517824218530338956548804454036444857835735879754742738235728143003903197423299076287018598872673596229216003182427789370825974613362164494001898611170060160723278587021966983149517231863004045219178493383513480480826160597302137683318318157122978484807269422972919690995403189260157138721956164051259886366542061169411751573563177970921897132139042053179709628969084368170085924597944496235112107722867888367256276148667548934593184506122911090102116310177797107436423314858236281164218252762345924968786751884359114940012766208721615739539183819611179242816463772713516579392236566417496938646611921347350786852092847447559908966204752865048080730804155635348420062037147304540521215210995037614215112608175392821380117114431073640381808837160736697367116892311160579027564240119282287912185253311212155914498742450524951528994990142926220470831724798973660565440833544529152157103567115159881257210798335032021436626952021354793563337699322267158082364760084790253074578092172396470516688137973186725750146462012859931536721128019011794601804446197101635147553544028970925236222794569460225074771387011453377720221494360309650294710335083649459972975247446236582871217334062783195356170623587817053720213372980946630112957664510251925213199637745854509110845489695831845035026062138330237496488068681508401367018477616552564711589453021422496144279782589684001554017313391726653457455914011651104504645810529154174539022484993877757283199944238694067139314721748847292534042634230103101190031209794092615633391581940062507631005252605879156045271643179421858473389945333648192195554937618283441287136139152435516813891206019683399162526069042888538120927498115410198307098174081648170235687080886698415067293697093243106620895048604389718331272850493670894196902631076152788253942877045770791893496275841376960336889571153867479954626315607071916401092886815109919450873190095697701820270753028158960695319784157871712573136878049686441007419474391089062917620448848250827434385914979006772204527438021384351148259733414318701576621219700138027539065097163669771144410170062256715879702229419488342316623114067172621589404790890395667495339243113271829436056431782386922680086555568309513781689880135519685901781602338312192164314070400685776241815250055924085249465027470846060827114394224892022863513127237170014253376596910900657475018875803778431686024014085575332296984386823172080239130404641202938723698794154642382197004045346581922864300601439779758631171414209952559437886053024833821323011359472223408451170258158216502829409502016532931118403257023974007267207731069139008226825588424943665630972105291788603820270850235450044290820444180728377320393301582176000704480767736942114156220782417010700207476980589271151540285961311201948214835223821569524895409414509702951929938513224211996873203353348389856372256895977231612802254067636825573661141056972107721117721230022318605011128251887153755029034890984904400864332978710356634117642312030609054634591222649524131527626058253943102661135580747052510473439094287033566489560653903501046510403409469024620501913859306947215466580657071470191653072126753114359588656190529159986478563518053400667279837473636491453930882948344153094072713385242217473127171734418090289228616276199894271227328559512201824209652918865856658890331389717552473136158670516025156444445101998400918904554846338953562925053388429497910763694643101416481750494468472773350966929198700242635272976592722279258884592835853548345177884269741495846530576832144858170958203203072473638458081757557920125218086112509362135025868653072065160840358535147848489157532324954895150726389865950589715510442273121889906375311521654705965469878689252775949050310316828723795863588232270488889336820865936761615558623326304839155509137655614937963166847174137801237318611670134915668316602910535830404771507993149515374254786814008528918951856354109335660554247731453692328718687535387774424725811759436565924589459658673823239409809889020055017148725608648450332182664495960961598012994877805643793701536103356590450715708355577781139253425736253436814731411663355177897327467407568923430260330695049737337386490348440633350544653340151619527075722315765788160052537356238404074901504645108765638406706290337500029771249383381575457055766747543677981803535837645173093923190982108437512890923456506655139976761039755621969944181840094144439067496545498710083974950920783128490949071276045869432908241281240398172337204018357942936156433348718847818699812367851857955244989987592213277509128640189405032669704982863211923816955626746610020744455520226711066099499985411845147907356569062091427161513002053380379700882501366354948283723579959814976017994300442168859358877019024200776476047556190352123476639289111778245527693068411056900706316530441923372204705032066906770870468914743094382124740761318682767643026879533677891530228192840814088468169168248432947153322082763215643216292382077982809447725345737261124921530538882507190086064309515369593715720850647749335305800045242009133049498070946711191106508865466793470992677036221312031202345191727981503518269016494203406821580884834889906780527071341588442333328129031714547050172306498923652915362231916071230573467480631910934333631673348934126154618505973464109977937295650666352154837731218911445342150241459290951522082014498433538475233891365058738087394707369374677622983454081529671926981905944187240302775258917765028833384872451209378083763418220137093316970449730971899202173776142687215170731217449786527364822461855869509493798351056954555563571211995161512442933852897351328817511259274216556000125910546076517918435302078033727593678690369335454025473317755155029271993601918475662669922339610871925085713820877639363946906441261459826086394147353164342453608788816989227415334331070297223967720427600324847550886352206406804689869766970148493572687960885738154595416398776244310902300119959298529774539497518576360816863986497076906394614119487916094856807311839623691257171874282654798882466309944828394113503767565748045085463755268190068005298091745360809183576927205698013600690215294906332965005576490080781531001743498931631625194347854602888533655241382933383216897235810437009851842903735661717463992064996370571750632051191157827708368357320148636019920479004543257650077835659686581216490515431846139800415968761554411650019033986130863954183434503439581638792269322228636272804414517402859535744205786124804161379430191136846649024841364679531645533560721252115981868807956323387061418476403742669563087424687481246130355325337283507665456149961049794565692028784644123505712578837154348684073398092863707997040194094376633821917572256463713367499550703296408275110107067757690229644494360144405331833937159327267500869700848948237498598900247523504265265982578855867542603399910789783541295560560658340163941056734637033855916521163879581169322470787480192518281851474854816367173050783975406785771602146986290574132548546536022428475433176146991486317404858970658693071151663922273578647389718001574346380949438040609791357141982320024057537824294298239466383042825811851664414127989568419618174638087845131884061399118184126758728767128558808617650892393266975583061781888668132178160032634834206522583340951242981117024667444468904972253662395890397536379341985204583512448213347416086645144945004934771139634312853816478977461076303635372134515881155011179482847191321683651133117753450050803803200245438742290870542409594052286193008973909287191175834850616738684147614992666193377046370451473753961769564069066786241253181772922154026712520051535963877674849896446314884527204927226837368924191796422322444407822121667887810020102979559203102159113892643655424147693427867589728342985268846532158867284783452345054498707795041340511004517960009566721238281875310213290673654761976569298839989485120691462591211226251360149166934513663511360734470202642049326214848221273212818841922469538327390078318132707597978115430741655693070234919484433815105557925591181838786458094751998636863661276784968827613727360614292410307343919039318131465527247925149918944406120815834264460418197047957557150695633292682083732869270855954040516029513465406900892972488005407339329622900259253858927455891652065587734331694058639422166248748094001730385923317719547865306442636123120412960452050753494049160975573478680709243713343454536934572222170991301109012526710562658942675404092873730260110563502963218649192732713542136260278961649929747157335907093182285710155292532633179168671158595132582201341235944325218616872571852501649345529689383494385396051803036720712542477230595622824132826003286833177999082384921419474918398658109549429934114559648493873565898342242716412577973451776500632632301345812649595476540043529750498039473985669538909456489119528728316365213737594483675258664363977848997453917489980307687743178985127417428800523547554415576279092633436954973093621813322509561998176380726272110596206575141918138916720869107412614743147551028423312636716462752256537067965105413068962750619129126586715716557498458356913217263493603272181089397287673095101032077825770488787542089856530478533745599758749989597727578121943060046143948612214805742436718384389752608718015217662213566513150409588075107816962968517064908562179889949218387918394932626700179194667690715344737158034752770195812606476890997960500010548424391016842646466716264148290111773021636462149779841268107313631843855536807202114308950491650958121849540604040628994732800350156192946383403486470050265942311556549886695031834497497072305665846413021596876477136613072197972442259292590583532144802093887622436746757287029820895672738676443848631701879473515459269969416523979810101139130931134304968255937478283279287018719323196885225539203401078685831832626546777920821841800345822219460845137384164810661125717430616546897106183839634782363586009296534269851520488612798795319805102341542249159774644183308654253792985106390186012856068239036626132348448862511744429747992359925478967357099643424796928325595172799763708402339717677772458686194782935789937956890115860803907661510849161861999299163373360089218768320846362303214327557051747129959908935752234292029089045953656261557232996394298483547050375472506487583411509605579376211401383826213840378716784147565102736643126454292493701034339540916652636010408621131407094032819149341314299588929109794846523823990704786081036680970300108579882560029643383031867139267583523139052835127559818865335235105124268814046884448109051597905482289828078083520250454536435636847886747833948433075895232635472990345464844193649218085129704977851412531382911626418662863239547673969778711735014855625921299013164441967954027703487144554259462523210801320657898695700153571802715682006594962285744073084922925138826887098372615938168493639052815793873549064810718170823051038881529552157725786211915325975423779065003119208782095074750282128173379885871962191146464458619291253022146684142002178412579408946532958922846755289280029314919722663054933224708985200405734516818994467707276624237792733637070930864949282913304085220076575443237911311944168844709202841347462583241086556226189200740661706253867864570799314387201466424759432029225659389072157844247230065603857760884506167710642606035303173643528612951455187528203997001750553302470074222768086619228960970357383156908427797699712015275453258243493094550156326724607008548571077358219035612883076873440858121629127156914304795633795527718903693988788973344432688394463328166443332275967956839861612870326796052711146346093908335478258510840241343952826740974779882605225913258049070797060243544494482297523479388439268810374366016652951030204328394077664673498220722085152263590030491269300075294293987963523384527305012952771269907910109377759606576475953151084013124688650255985505953287469658254596923235957030666439230441404860406353972930126917452668437929996669860186988625010187161829817836661091054383577201068305743398388117489714921285897488880786011150920317097097539765182938571719156915416128117234843678225876208121931714138516541675542982954157519734705737445579980417646370254777932829957125662734984332926130721625903286446661939599873722409341786246396762070631453070398349117571118386767608479148142652321410707082496796189292298727223374114162698668165425609179439883764506920452136508620506488066473970925885827162804714671941413360247608524276109925893669839293121437591024481062268546192262635867866078721302937129226128908588974460272453907194935771157242508416862811286262557341869620496965733362567005635006735116577043703951802351779067864750849581233115356857041130814385572896182005450925758809310132113096383043516129506971930409142694832097740750607862112571852416083543023811943983933819584384342139945057721411418625725146467494924264079491215878953083804784774686076474731174881999748603822593752336421152120114992229134085552764767453326478514959490452496995444338995482574136592067791435238846672857891412385549419489204368510537725940222924649294473286526886672837022484673755744632625392432404058871620929501017345090593268331488228233836155540166606954223777473553413404803267314598718474329338427289061194983451533456661430394562271106822984905789015213041680052635299922154171731849749003724865195052714105200294056221973450177422245186041545510429709878760985865277311908207024746144572908244940672608506856472680871720752311454938800340514944972809317494174046876893450881283200715163339060208518628324360782342293416063214323269266444636725845543447980490081382819491036321524619420420956890384366490188740861371976870430511696569012955107228879496714370608581765954826731884949396967364103631496159675483761936594686562462491570267818217111049949326658822693750028070083383534943201189547983344582614459342235077205756594430563115210300193362152926648731853541678806927621800172033714713862944148519689001056215304722939742298707644620394219951611897366555161073609554682859237530723750347577755934357280235357084429752239567397990650959918415188075092750450122396772494023799034768844566662297661618893923476931944097544392751081234806214267705615280537604053817271125101742485906557775620249587406856584479359123577410599009287668947054645770754998660290004353642190720965829414434111560728463005985630153390840882018841179966607804883991081484184752307363312416112994699912851087247968343278947499828902460475736755844805938099882917626851549969086215635628120814179474632225043444896825692767626146774775988980952560687634862186440206564589047681202812961292995206630100783568494830135042141267748096644030682024335242984671811308220097892243042763369966973669227761376753908146092464721657873347367540065747171039454649267882619796930135290407607237901986206160592140544529273761326485490724411195954477488238390868853540520481684452096984908556907772258704105257270026561777223029415903585171339233327554826104141841198428181427833626240598675902873100435476573334242101962946906266190057675928899389571771975965262697063340767472276225280714897822086700500662157288943659487303790595883190962021711078749645888365472118576845098169653665242517527217516135914363333888582511863076109586980125411427323129627236021092074478487603399118628650324759200597439989261729435884429117050531548473132337980964770930992554753918382519432668454230619385849699065923924905105637186694281102020185353333311166520981549252788978417395640766561641489335918849098635446849135774414968288336585085708244817259751924652822560667827641884642149946164429312829749561207242362266099824588260190544912868428398323082296809613245578312573305583454916788862575784305469223630911842268187690686017912254900058018916695999386104050709777070866643522641301882432520857237518634834643587144867669141600044870233264875367746365406552277452608198108332103879069170381535942188167586427773036407068663716473674823267256005557963231487734516447320491889784500405026520742247902880795828542914695894017123620844663225617002920119138627544858068965695539607938239566272522619449371978689703572489717724461071227966669748788097204946319189232539389942547380355518821757200999667980912671649059022141191513847970252852917876475337571540688884907876938461960408952953091080643424670429635767928969277658268534300638397591179169321342804513530845829202776752539412686313045288149565311491816819646799733642602523121344554264687730461828416599319318424138045872271602314861102402388987718937379827241919878928354363930676635798362812412514879082127868727323208982865505458839589161857443647068824509457844969943928361838672923524480139661994152680589874840218466712096007590752302491327884350919049974971266669252947087316762074399357054280342212280370221775242879413906854641783354222003842542009376620764411294362922175535028753922509813359619829875449615255060271918196739525307113672701508150093689210184205468254510152440796116476190753820649743263676206440137880778874938178476903020376014167064585788728611346178064092132880874686015374725598962973132900928473427854146912750817847254525708861007739250694791333240372527200300812799803920236432181191154721865731692773059730969117974891218951715486090262844085634537929071743426012062126809244449543191349586641330288674040535138735634465476636743733042975505528676537464888127810654790018055033703447867532333796922269684599499838011570755649144726705966048179614275249620309146609810237831952843279146158630366590869865440494509704377216081778515907922957450108119112025225008438805206801630057822809690430161553054387164851557286825703814042332883754619738439509492706932293474690056130979335028329224030419632825552352332167204841945162319440861060864423304402621553401376610742554404147328751889851982581306544146910434883842686427563346330805477945962550972149434993897202735158725964255338388515433914086532392278591893693589060156694863506236117044551533883776752672612489354729861575100064548743227347244829379752315199818697649209843070077794697676125470890794437344633883001563583675957321654524707302484897854051299486027819218556717561194977133963463736631450339457552412089782962779606926867248614535988853380132962199001824680196351672810685985796991307725052555270891724292582815250727814174072667535049466496961479868379032418641088124532640461148350347132851634417046078171497777969247255736103891625915372038687154737835638875523699591458159950194474344812920030090380771915263972935605352117199311910342810594939311977767960380391666140853397815225269989893444137222213766818106507147581366112796113356726255100008324531552450490487332946149999549141628582586490302876186588409769572517995299926579359277412575985711977447778548600649504193875192163418425726823700095735561588594253910184891192614585899214347687845803873643258308994171366993151646850398603750574705870865679686457163194168801941502786971622755867545910451470926324180147245314730483557960383550455731015937314805305090730063294113107594826491577911412144596618719417059176771985106487536573367340780983691523260052785110056681032862551027465264167428850150211534628399249163054888712842952753125881715981905879017767899587976995560179287502475068201009792960293371055811646374640752149713224352081361980604811268274215487257907499881172014801085214210829552084968222254022204780537207807644423906148493261472364194791241739278757095904283680501107697899658500759887556258231183484335976789350109627140788900121764925868127370756790220521159236225156330362564665472974380210369617337115195037967972588295585379446916784134934924161579423925270023743639964924698326186964791200151368366229990135247499265340035626194907071627386023491789703668580115723923530395617432091551595506233966770524116575300266343073765370915872329051096214367226845711759599227961916961938025943124374280663105428377206116257544581688822156838542117054633235724467072756464936126118283084287982303060971621206657744676515418810386779147556041986241642433269431286352515358933854075857714176963481750297476689667464741425689527747812331279191871998790363463008738540520631122190305020331850439698712072482571377687064622271813447999972604513114859937541953079383703545639383240388832935471871584125337589734498707790867182650819927155392587846955337198125713468987791078817045110150536100016966844677153777562878792219271034721529489793688195134728389021887780580673321931609641363416853398062405772581875174025033471817321469397223897662526712405532685972338252643141277248503547759343965306950943405759627352751884963998452684550411062868582520120037321287054566627873758767977390111237724031279530065398302934519134928559120645722325893280063168441768704191343211866701113886202221905486710036835404206921731704557669272773002567125378390257029226013093975139103750848367472452535675109988746604095413416669923075154423459103784901961720777411793170759081995335959466198094821696121601954582826531894472473518372699163432134497120769593172405635683112909069432157735241120173769348763190958286792913563355380609369617127124872618033014282134000958163743022270203540740218692604218236424408788230917951909185662097052889327191026932118837821191029189467675435535970442274568718048483293935051229067002276598545220532094607494024242909480785719389886312647764147556708746696896673109381345306858790249423814739877750844559477968137615048080755346405384773762097867301503987457149873968096426198516225127982406636883770802778968585418488472305934930880959740393720987498824451602200544825955044977396552890282924859259655749188579377998983026027150866758742686339586570475184301736178786022688917265741799738246185198096444935555469596428495827102831943456710607888206248592083167916209596835492302751737434876298218151102236681216713555077676413211572643112126120918767069293773415724858682328874740147893754099646681541109911056561577921956565658827444540615903790921941839344903488057254733803349217314593568865531082442344299720708740287420577324381824823571244989787182336089551443906270933855199475342880409329755012545020759722851115572656767752698377104260954146478343916928735171371236721403397768909000500112340379905797129606239797781656175250202489599848952823654726156054557351935264845467133039219750770093130044709470512433239271284887189647357385111706274999521602592039159092405542957184937505680858341658223121270270951634263538979622848264525466499789682008216814609582832925632929249719679183760902526006016550375233167383852897638440735984035441701021351441789949981938799915230603049682457836933828737457384772723506879777120294936564194610415633121547363420169423896267914516028876207669911657686510586955504904698374909652804455005003879696903178844593953612244342083702524809775500794393089705697559343437621467622092570626510717607323437897026954618632467588222738935285985579177869092467108217494633398045062396857672829479775784349361627181240387040866335967711352100749487547595143693315353846375452931993542561152636041540704292254853153451212776974043911619998983285117595610461272841011550243747836642585222642276094222248390764479881397846764991278224348772256979422535030905067168700195055298688721556972211011204914724275384140403889983333938416500069761577149217122755072773550071718653083280524998428239667370591841141514725522402955343425526932659091720949255695868771080879918042101257747116183537208776733134144133694623956504090041038717056587364352736064554213603819531664735136480848085373228697618178906628576478353154469162367139263014393133736593155830666030000540166772002148782299666634431400840265649260029148313534976109079295421209972719613173446888505419290938390104104349077083553197027082537679105722953984135131629459906283913233132791714465284208171399759195140577494621748751296455380676409756067232014568683297245609855117189145001361557000392336127258675351805422020287517335674091982223716714483819115786611430432296928225539888997852215727975396589561381040377606036680221928389947614106874885429353274581896649865529694291152642457456083067821491590916149897875926656208217999371306043774776625872115747977515375002297831757333854562434936360915171332053426243032532231645085059990607732033844380975501242838934163012787916432887921487030007598506723137327588306935213972452842373550516989123466219822296775231942137082117861418108028023300074954859872264853798932293740139783469457396492157013124096288961146366063645338751006471494018936658507924273575717812515585389083655100929524056802909443551007269251654036118750831074990147431577614597956913077429155173919138674231690750328740581357063511634071914306177576719157221384428956725754770232993034163007270895777839086050986939626567704842178796620650230233697231355599761488960450063403365714049187076825842540428464757046529169589131186313602217285652337123549804105112602808719277293279972226921764142430613638920945156466303187208033666893034892747018776249378942147676102131766903381420125125757493065644740353695401427093187797784655290579601256393947060367635012397052333807888143443367866882004458772788984455846598266113279709355825594906313544573571897976328817921860184410359984093066319489238000567214811211654317371195070027549603572747228561046996235054001723020328929212554618270507855447824200289133675390961722944384128616540877689642891892720854048114605640484472076985748577091368818779414325320075502228301622847555042730883012847175750265998342549291078988221199027235299624397732938625283539381563716231392207967330249956001770329058773158740261347918411000955090674442091178147813349748235740487807063064693269478633053593353527843901822934607832802316508644126993528715933282323425925260552265042215269072662317225860422586281021950489781948805070618702680254560820701480408982807429754235847275205077285611179411751177694397416275713634270989012544401040930398115615800765333362532887178631657387481669265937627879726834418458807085113794150522977020138919193408105250951838869089435700195847153394047857721099174416322192257618484094969781025631401604174939506944479512064823394756509114414818245277542553552434933536420153008054705229692040741118632511615563278960808823401923264921851416161286624788393612876687674216064081602273926950363764890656809986892422821530904022110825048742279436821987063428032880817071774443664685655511840093760598620640228820428935955318552678153581351547312880059239501568076099744676289601197873605643719836179693638068330282256376899668685661811232274808736996779208959071956278271475723375172792072247453399161333099391272748880541780147891944978143953933064101443792976683523151918217357170628271957565953245103680256275344106648222249655676787644516573602853540017919614788646452915224990896512247261802045132952821934567967692526493969324131244228473576435087624062857307557323715661952086352771285439217645492787254007981186429345374558867148313124829846637204164021210073499549677159068296359953496022116183441060410773148138881676698562787239730013926512722601896510828846514149434593744123394423418107599516536845232523888763963992230752092293139572006330384622612989285224351782701847333973128542412959791008946385354726884653723997092231764578020628753021991381300848190480359333461051985416811918354272331298447710879549951944115449359865780565526460094485513942192574103676576055339963924883890677336101336740379638055781047537012948729557487522918191685231824943433856337742268447543526949811386620453645341276556528800383181989728718576177755575591922061251997293448324421710756820213254599482915928127866799581652464029149798472544178498634450266108019604625984148356130520915486667338105786812727419992936156449611235812388094271540307937542430615904278855609024048056266531327351630953215949408488571513105477463416041198039097834692546001722737700892390285783151984892914532051081367687812795959167466205210388018806084641058254494075527828471377400756495485946429207577518347184794555790600818220055602991455984356644767090592623710085490573827614323185334758447180599513674271765117201023400591468287803722751727419367600341855173436771834206386659156950900299864680734167897751248031559254651398718707256291420577912465868552727692992525998583315913330804604418121440789130489527271458085785654475982548187923391200719691260011830976211219715701251535038572156265579723637800671034224155795111940184367752265711557864944408477596690224824569036412015484742987243499960337616276333068973543916943315275839869607747570232072865848085403490739555388486610327688117779927996161985976258558737110219702552861876723500031074924386681030974255611897529572061750431225722631055051125397319867392302781988781222596549293940666501195540967796756177276820651049243039379458769446978687205206743498612089905536531764886084823274513138545298550995806886194552380209744881896411456587403123774314555842222053891999984280841130664953932467881332671503862089905357718565352950281322077146279952638821925967678552385512149679940219250974125638492968793971171883264320082490520265984351213544094400322343477991673913531052310847085520912585266767679585005397983017620040703233843903807800317690090860949412303208975990734627968351525242752264129203530193995532598107898051780516731111925715469009367589259645627611979818310580311024063710892563532703571346899144114193020107031842365019494499787046573267185845428490240886045561046463252259567764017772557667206789172595683662528395987005246485968109898886207133838451603437590462148368030981477869948552857591959370991858132764198293522713915796267220250297191527731384501494017745713170353042368237622999869644049771875569740573775219927159146076790803854549305900987239002206855045183622555287793595015343548761447322976464274452744776522085154319467567216634954888564268964738810876114623300574150024602002268205330729430265129799147330529899064813350890902070254991393689707958620149691663697151294822630625413482418597608343674548195899537722293022317342767512055351825498060059368651504235074826810642619536917058456061487297222185919008835727457364062247811168989649088327631291754963313492743167135610899754446213002813667185168268099688995856655163073875056663632737673814788142645587871640685430592303308907825181524221010042136087743470026319372782516604335295318963861951596214085748109150046763403619243554639413212678188850641150213968931495298071849102664877995094221360907869673928882643615326621245016903186232935960092087870453654885435580439317818482559059015785987952984667658816787241731745352737292868608041754393238928096330066716454099895008916211476921806422416722645220509064433141728353655742536547260785288609182290498279789086405954828944961573766972933895095719461626972337385024452592766535861470930006866390872236751859629753389228507916161194365422390712531903875769127073599634338316613971763884283665855370672014999728314045944082433677183411763822185097271621635655182288063154858470910291673278047865621958809266770726954672524855140702618528049644852538690803737277672502172000601053757284938316794399735208223670830060116822528259879934400031435713322842907954464744267671229271996747934412769022611677481261061224025123240410380018430219578686046634641161651293987453940388177185238572973988237753522446449931170177644336418531669312321798360706114118650619121006964434236965362440909788428854026849141827439443764253796079485148430124514070405428569921182166893040970287788286352759697599331120854138100296422286353457880324339961338994031059864426366025462535582606950962217107049766706074245515167595830102736535548559298863983325094515880210746700191632252308094822162617791408514701130831234218012293916794986730681512833166159014634942584484892181044551790114675342724342513130042462657140038084940444049663339217260642118435601893874522849833254533882544813735487094822548595277697272880515967546056240991512553241359756919338396743233610561856091356661515634248824676013605643680849694280272867057948456480397142678568930886881026386288730951164495574579595008766527293383857250494766554264460374944015197197999289702099964640715293726492897583840970027500568757500357393964330834496347317253263223413372936252304189496629827818547024615662906447468337130411907087575788869868980971237263672692865800091260150348163286450684197675232203458091792306086147580703346814657885841046421599723607740718962931293623938765782050976877605224480628574133672228890322711141017725935227503550958904684480586245545738764985388655342203504866806694470641875626580168002846712620364019913704426421813178538780496928248681795117934414508403683347998284401561108305247405147787402031837643574813803066536789410693565376870842588817850504797062120086213568496069234824534489401065420667047036803547814261451340085356344456195185860378489575812426867434155732246696880592845923680135692701654871581446084017544854577294413952577214107865352384034085279226165437412521042452094142497800546166820855655925708277815853508806898103912524737562213475869359147284044212610067718989582662277583653463925720797687669465509971133736063482391569250024326382844914538652496641916725788250225739027218982958293690145630062088928923000782719263542536119513657544016539754589704415449046732744315300629029025717548331754437505948771775888308242202269275054899881693640496685905133025222961737926851152584965706736503536111506394882420200344250040784252900126939470008730789172013245892665245961812761061061848478803630201721928417414349896812537605231336655606657493794589110473733317884977884734465190549139075115377073859137394332152636841994996456318422472998015835551198745304151861675933907147274338204033654377214361771951366096017433390234316182736144011076654003663064901597115220926281538072008368451501083000805735286365629160309907241899787088484154356070850550582480539210567139975258230507198309497118944896517007346311142808335923943674470206143989150878823938946920939712450758041394774608487942071408444964927589121139665104855411296776644224096944558550032903109950980161920009554277986288593508116426665003195245108383835542925638536124800359944004988914247590489202538657488411852178645792272506956979464950496833411880650932720253288382159609111094839675687905535529728346371492851975224378806903166987921582399211681834133855375579313508150330094767550018424464197166169950184611587939813459228627572192305646374435333635321172122653933943510531403390709756602381821731463890348255319974610825143292549171307997226122063948988284097118742840944118456164215133082183135866838554226354897656780437004428246536061137225056811132691531294009342752100433444528243734532000423476218982088918904178948634708713066224743871365593941968605610365318071589855493824794404503268068342206243506249394787062532470811866414243772097751562242620014331901182494967981509289471553767856653068097825002800060563211254855678737857925868601338432018173204465065516613250879140163871457582122092405265207197100096320587404935008717214275075337736517365193471190999290144986419979859591730417588392778876271232912269300548830705487294357841975646380615048704128803889274073527352198668821829259063490427079896100375807552337476595794811604079855933770360798841882570721329184403203314305547984607885956379139210687747669475977795228501525383283567753515242153073113053076259397688586748850454103930431774997435214704526572660704240819593294679492459744852803282520069681475197995078674581442126366884351802711167579739867144587910032750220663412295557274023084226781591329535732455258092571978936628922470475276457976143267319146068784397496874202363213109104334768913037813225574103470071175913138389762667481101215740663331869990476468404287865153913192036851386490817436667252950728912892470577022547281769774375048177298424868501116660479841758015872223414592750683763769665277851913672170363992824593886384895371493139801192957282630084535119804275263087285070248411250642631494737019850464639484117042993602027000171344357417735628370485888667812597522580339129869915566696154702804309006937965005907499642312030047588164518090928205955580204637590954789640633584840469788167240114092027092742002447728116699811436875440274872812353335164103581642562845558018461504749733582646143384517513907156509134259372870115784085661911028965618991459272196045184662924111418500930578065076761991681927215821888429396113104910823847895261709342994563882755206752052085022025944476869495177031325838587335756038516813977131999062879690878386788219249504436624954004504588186889771072551153356361827327718387264208108064457851234113063322663540501045826597547702312829364651241273359334507669890980275627165873904989917221043306833532409097453045919926128321245176954677448995427306440929638699940872303609839660282078195593108290218687167951193191337621446552688448851627164712733836941069459703476453907192006536078103906492276492006934529495386879908582913890176202056019398655784389120431905859352214271933506306914505229496884928760999799920641305653368312260846678049809221811575136390200339972083303164718240294323891440711381978206977541614880227215999294826752009842766303698665496107660054525960848911931072019874515479198746067972202547208843896587568737813447901880762692576720359583064979440060636855536853086405436931591710567005156305757092843031161457553056559600486088545147281242261931448356088917023094511871554945902765296517275839400223170484873362608244693082323650368581953924000664926001492138705624266131462369554364456510832624508536261502965734914424592687722822913667814711666680778150234904869814331810176123721315794057055706803496742373802339134096405236471083669467340910563321278810151111342628226036427200785096819718524420197333348925412191374351860693172341712239496447605527566542345366679855420529012086300588909208260560551916737425674902384429433258184028040795970830435038386199652190261004528705304217197800444253663205432741566833820498165937142262786579663104032436384590667559190695261880146035017797715239282738762944295494431412922855612868839800505653866145486734169677415854176575289594023337429882668694600134890745109538313432909009070633498667465737588850380113558322129721355508816849961003256696013865341518574517231239626838016472748473358960230864911244933434984103104783476360180189469452388520505302581072994064405090365641996068495524755731542434518160702631357884930375893594501892123347218054091272809186166307234491281840521241835978443897987570893031214376619538597462778572898904706672785704142919049267577133610732482002657050052472524839228986362413459998689794970917321593765459775644172322277396240923311367225772926819464251360514907408190552701970105878516916374512101992219855760105970461620845090130115589508321761045722571727935801339486104271566430216050697373443503576604560405166006248632968858327922838029347856243867050450306079151966257338760587497791307216104368553004757109429909579288970981086604588930419523978465932636950287451434369145177455008721040843853770824935723097638751359985803018397724666009644596560319626765165967639136751987329274403331701925093239616189877312767430663548134662844361391705374345014027949967962120600124552024684356874886335578955428579375798445297862346738441621571466300319841544776924808925313642529218284068035706530390974167385025750495826839596660827473615060886165532957056164901057237784855368314271157160476068143173808290462659613285885486325468563489176327106876437566378898853545721050062264448274279222842801842736560573074977387799449890296340980512200655809270547067595472820308508771168712721430245667450619400119774909202131413480963054192448674588791351048685748295017162007136409379952513718864632548280465179814308747692533966702765464663399031305874894705374104912195695586110310395857137937283673131118050822949465410434039827995497750376767170182313664626158363326527396223264347689931996963075235908359539275969142005066293617897607628936916046128560591020870999630229633412349704081393673548847607187533771882921239224933426439191032631123338534774566302518296920447997409429857182643335323677334690559806449694185069452391160136217006375098915266503373691527530164457945220764415270836959845342398837734539250921698507421040114979155620341445177225248364115801360206531938482037395019384672200042253563324198980201471875734732694011164047170812434076593356921666332168608933489510788722477515271743737229757825223375871686110243812844015785476548792143184867650930425709660505782441591667296104375718846606189796306456520367750343546982892160141672888979361195412574206947004574531131271995079174738085485202310941798841132694758205072275316912366789782662144075223338914725992926698975475680004819300900496569251225950937555557697425925140132488036825129279566953219938132961906280086118689434844695967295895338539642895340911406424892774238632451686985395061100367232164467074335082145858150319005662994227732706651616285416048007121880642906559034966319195750255100743863072958979715079523423044372365485954051176243078178001627047634581525902429324252807549214331418380416915121858868557804460227411252206774424270368745714908980117250075537503065781889575638992556649554071690588883332773329081043693694347659175546841634721999267307877473646007238566798647697032303881529180591648321255518840179042812414576531462202939812935163022291021839841943762570524494632656275234638373167186614870190336694614190408655393628804704311077078810221412299744678271758389002979470762988376443113573506099301053486537895991891208509636731188125838754480695651186598708592041389081978066888865476287227053666586737103740216780502588501645665884831289793215282327918425468312492007865244710983270168194218097347473350243951853768773787120710226022023436321208518253952656186857051093676182804549419253185428083413492953723317680408017065341189369015581048390806865340149798539302485031717838314361953500279230584742419856344315810654446111806397179769195783532428089683331383977190683322945562071544564797986004726786411711474432481208622625094048024571089863058078600881276282673024005675431414215673326902141693126631637290959495478610696259873904697741139785930307477656702235766996376551750588661089100889826525194789758461293736611635509862851783348089159517264669706298288738202501213097888185805107283768348518978309661100213780057965872382456349172004111789602123256952522125996598351121817302715841521460661934426778444429468696781482380019366003587386419543182639820528288347148817929710519323161592494112034043411333151726134503994603763984744208173285194795699380647282173891318448007169592072653844528507158708978379897148534387109400369528889104055799294941030102788209669106356512679318029962496533808718833549822001460209319498075028064554121911547016697505606203971222189216695461390419145617350894300385357859170253280497051510831190905183377654972860800164449839660353178590493773237869935640740285768349489700645896898376790771416228432680359016982715165562201846143776327638534991043566891313469266303430224242468558811261671115135376585877446675618422321026411488136828368850925929611005052725341004386438147130025380441669368759173476428061295417406072478731492050462480264157456826285145939289120810275545299456473703053114313588803807525715487126316536077987841011372547104266553497050757824543258796406343641510301550074680048320548756389315838838339896412340855260392137049948989359955476368123989514708797232505590852322165041593129253999810385581869139961717228247997336677959001675685867919986156976363125419999608198288757672248861343237787804024288398972110101179297501721549698179083293668036016356132073400165402052201742462866248927872267761741901647544648579363382015091624108622029550675600717877967684713676491402768938599556256290701322812365661053143574818086935158151647654650365035302698286223481626817002019473609719395874606108250394717571011633262387683136010477495640902838838562648584389991102002171477008797241382603873200486223143937588659947921068359764733545565800626032685709402486439253194687782989636479158037326887308840689829067669481047639208400571825418710894973442705079650429846377090948385705398756989505512102843466103156440465960291151240932710471132259613417101886350939099849432135338446702394999908585814236826512480611336430285719084230864685844122932934461603279500831696246641699783472466649862570891482884631554449121274332483119068066193305286237696773774040393162773245823487931444820119948346071250752444187355029759684056050867632425563303759665239671315572178404830824577165704267652601183070810261964417442784911587874656074152048027635952649920710003638453381845800201479533396147277536378612263064905730554352873861579536929866741021019885266586508210185828173279308498775304465871448730033326168927457093177330373941931986595123527964918716043268592846560017529175863063291099070927684589862874652451049280074672722609264116289104758323269176094103066028747222420139353650733358396064536567032837876009215991551270916575986627176025197379463813848821178538055907523608441557921283002087507417710457319016254040596987749433972390408236426103986015284748127226375167391552785019340087107163113420850369911475048674454706085490865741055596609055582030874042065665693598693641209688647203184874707096773826735880078988524611295684353030832289007992464419326267105373159341597440704684202188740968405852526234270659730062738316760537235040748697597065322244810266645115880856854078992112742418267500856860784255017226763159329449966355132173410331377754001184700808232264226297762790725846527953161847676032482710866170242461653969617074115288405977340941519956198966184539427889272018298456246236582909903610788947320922125808160392938980314102808269910930187793661811201055980497620452985033862481991801720346916170092512924779581335267208810475794336459398704075891996782620120017815564797961103797065812010538918504485083147701952175605292923277603446767286781976229395833279114961590120340811147675366023175671105470466792472837210237496669744710641824125519608460162483549697017017370839610416147009932847820835432197407463737009442746601330774741126247541765548730703224632656107268627074503785838782508192709728919675875563238985020315881353856980439091903745220426836797052157331635397226402004864762558890839756013418924387373370507272214742658744561546721753036272430867568162925681293466283115249575818841581219198469849317322540886596298377526772876970178604129676040029068011552923170762954575505023775583044807521815881044957980358675271469789111902756248855123004379760604128607259587821045432008716973487384290923249146746543554212671304842036513526030707944190134241881890579168936713312331816243119812686282614751872479249231713702240793688210296026888467472620410429353395506881650743231105800168307693184141857937895413514844493999302603073203224611149446543581277826426046007348857287102029815447036871332569792178559049839177616784737591267483230287987782711189026475734580477527538548501805528786603482954473209255203483979314152893077134920872553586705179350812970753278091318631294083377601670320356793194472985873075052680848142537581834143734388093637065234253155989873299939939302977965310456799627909040101486655589035005625749894882112530155791264263299326560611487003108564810869004719355271537560274210477930882063173189041387655406635569184135645947694115089740297740076135816945183347397176638818422367389034781014640015726942894885816272915887854733254196651046828572993058172442687091719797492378054459890415184257189845074579924923625439308625986380412770720004114802743573106767844519859310879092422995507011329997836341959222336325424478184748911235736313917462917535866314667533783563593716039066667223771215662234343017903936241373410509273944119071237338016364139147742800242592563784340680988541519976950527762022475636349331092648725195579258059046064919960681705309003280583869562325592301012638077119328589677569677436201859286680427898950465367815716150441074710364696036274019076047959517219117676823680852812028661308699104195102554535143331647137394875920496469623763317573695261080482752383018267385371631218334510403748634111916131108306695406373260827600273147878524946460211001106587910389141039149733549462702178376584646821796945321167139366277737897135702602114108886662375799647517202401559198423190028471114340484944424220530227114388469383544945447884483172702354028987888939517115440718766938626066556334490144959236270524205843108099586140227137184154462858335764243619043354920040455245748260769573092270001618105896821201959530662945620065989368623005703472543400103912503334173527406703087160264452393154605047159644975569553525583953829578440460924655876875546849818013479131303357034900489234844331594469802244971551918416255325473304566432432995832616320610956171132062084738557856522008712942371216794369304996426891454945161940760301098509299153122474672613849796057130059979912676854638012484757114883904889688954173395254884681039601452431265636781259403321126352691982745861517875792543569563311928243302740979318023507730057008394843555955644106627471496099823520871073046531985968187572667699717252479840177488373709888902795992558704061954514729627052270777359739665933946589926055781226777672646375844870575692859566071366226419437652791932930815285212783233402086280138126284844339498384689929845277806375301332478491633442135071024088143721407607803181231496558852536958371194649401590756657504807624832197779700834120838712266660847437579643903680596873743697791053691907720996928766639088760450943106512002555357705099398948209628977796893521339152400782381554544380307264811996774908860760011469292363104505731301928194526520360391139705055611765253786552785808256727763814559884854737948537751065371411729731724922067917384301995922228862076507845658584302772954982974668789762028850104544519901675376624505097874596358821369912139497028811413252977554708114417435441551612621402358547500932020290216528410301299869340160978084657852872015603334385361124680549437283495013236867952579740991640473639276820320444441332216388847200165360254423437973207379893762520582576162921419923590961603486132927084066977341839991366863475862064696659492354102235201922713694156746448951619259114476483619280011307368965083290725386199377816728222574906711097152848596514768019974062574844777629109212479799038026583003135039533086207539773279628517979439706008218018183737276782609417502107365027891525779129897478067387207508031845450160773779354670965626396110012800401801125881892027467913544068562924304403440413168238760789692994718831459777989191657650006991094485489078359138808419470191372786856059998748435308912712496831242609184650438785112290029244736198285259270983371624013030815400016891100534145413085735923911630870986801837563777682088589557640576755931394599715324089269443579466384814121225997410423311679036807483785337181386030179134057130603330157108826617304418190359435194022794675390442975571236270447870160961762019694799109571362568398099862714216777435775893290134146013449405297865747270437300851793716454991343063842163373436022852584530872599394349735380910868038583039373415718681799330890731231871760385810059786294306460887355131295138109498031843303621404811846378261196518293852695055964998519113903925776032037035292307445549186148578539259769610747209284814115865222791014598689921360838081201564556041687756558527978153075912734849676410352166885367521284361405052530467999761744304224682519369778813944026970654758679643770458154917883015304959861631280495135448097519377262455170944268267233255694997521738748235928024396012976931739189237447525262496389700002854914530106179131024329150429789322529850275797809887862758589697928565567151455431085564753381659729284825715879875155877884238125307160779147366526302715548372152550108290675283730236307074791861078874022409047781057490905849563479679464758281280794954535666972308507103953467976210219395246009235307618134138480856337918474271719165753720566663759816031906600047714765775342584096308393643363065009746555759714122850235883425450656660178540350358494268256803203022578548507552402422862922185338124619323352438282217497993587754483370290231307585255839057491738065828804009641657161517568084790657141384934741852374212145052258580784000964013806381776433786037502149705329912291604782417841074624862140397355699561881337211204304766128105937627517790585639403542462231521906430892289197175932925409227562778518353761055655909858725273510804218218765255085270789988488577004576711574695315613871196946726078785625693461071455082859167922460071472340908542172802853989423676364175541180794811567107044801997808675536977775604075844627706804415989359209571812498302797161435665476426139188565970310659919861441351797401404725765405969876073845350850126833434609147596462940535512447484649742685317765907263862091514718146675130109785714181790562720675306092963186790673816207712907213937848103615535616055164412368223659197404020280244315937839107495480133287426429545475099457825104390343680766547139962229352426481567532745193388026853688016982751025644493305639902699551115151369836031342984391239445909912429105260691090130454743449779032385488327677854819853731961755822637344005099969165231858859779909989319101985202595291883836189521722370817546372580583574778207286072339408916812039970712383781692419233268922921447764692490979316468130909154036281477324273079171531357941274355059572671641737813736904499686626120409838140172242796679479087502294720943860126758193335160563312990685012511567710189801707740410097753347949673452587628819737764353785051438691748510795216625899755737441990443007242864436167454638593243570851949891267237719180831410597466510699640665009426768991126294334326250527588357736948748873238045672164298722608239798374289135470675741933752777463897172345050361805423921102980302115684797552222789370272421122780853199812256762548723009440523408041600740352832756320403425442514229223164614272604402524496263152757397494851838352397160472787556479726533578194459074236410998562895409701856712934334410650710389113990947988758849985596371959492794255738063359436900157121475780661594652807149721556909657388534395459021976420369793950684528709781170141929369670384466427452271038261977529477525303959845484374732008781662660461220689949707277522469154293298854444991812025820623822528301617283819665745319411658866539935327616276806765371122751195439584737558688030110430523340879492232492808140285490046137348088142707912063747117540921619132620685660016752026049839953592826666325930589015352489067755953695565898492488366004460901335541659919698654627168619778127607772817870261759286715017741505448518365610571706511763436201159438168535872028815763742457329209426010255578292059572289593728261845114883717501475245613667876491465149735937821722791445315808698205889511827080218903482442343734016950646305485490591925380569816266264546541310329173048246254886248115338161859167229811228536706909974525796401957265057717583000055484891986888480912452662772497717311340363757956110132920097613545104393018075837687250694812054933385779778687837222736359469321590614332503320925037770610017666441894655598657196186788450397090127895002946169901107798055968290623763105653238451417150457778854351640638323975683774463043599085534114066734766205757885280823256467477831103673536554197175431324862745871026515339362790672206717966172661935577120442111595601649096633675745452444607603225157668121188508437868938948235203234918221107871996256641272046306100182382960130684765900833491270448482853037677203784039928655824425332202456952044224097048885018936432076309112972953184695872975097499014904788854889953734488987806652089655484727596794489573530159655061235079133475003046099978463294662837435403485336138729124311890997964432769379764909164704168050219286456959109244021060509173002923518177339205244008198595949845820194827261322334585422016532687403833097284379501574973048641888188622184341174290176936944717460782398374763758071819670034868297517955245454810370423141338355070254699210483525528141233795814424923242327096355780434229793753983114875321778104787014912756212854159552294907402556499907199786755162313901763317562973628739308527992571702789535568708734564476098189787559141493140667217302413928054138494323873942661518757913775422339742570880417054771395393994950459529623502010826614544650197842952648141069046432663393123491944262891920999568239427701767137557697741258523720383381674155116290013030517478427608432465285551382194250005547509642663981194751439960642381287250912049532070716633641895553785780758788371970988804336659101452443032203059533354961056824690148708256790899630294427243987826262371860698090726985644414807255033202722252205193726155664537205333459062910212822522547197247642186801099666624233535239238112113686020283865180287507583039576279497058143406072828643424316736853934971976553245802734306133360508031635026370665789865102607952016694833743136831188928958182518846644516565169514761833740404954960528850426861304365594008882193316672669872717389582771879458169329585432844093086490419930978540642091872411970146316765584909910081512787078665821393763566065090670176697284822484612023741777516848917750829499916787179463306128988495143179741795785527354279294426482516655481033356106406927589625948028183603988967630774404241975159869864694421526446245367432832570560963804349809669911692943661309161979983088068986153857498822902778474195496300100676457822222272968762308463382606920632419185957185693187279570394529349209024885170262856058256282664356688384640624496442525915943068726497054322209509236263527786812994206623494185344279338680925142838191579425028003853628245077602836288012375333906464855987871758071469417618497353825754389871397279321935906797724058146603943492950361302802831946019569978100531502677603875577187874072609145688770274428782320932001860166201299068948615399449243041774252723267586783664711012628369626678852945825563449295300085965604326726422573315554420064160863388554566472325906722186636595496982821252470384484435272515764612149013981272325728518647690265658593837028829066661705630954738088850411821038569231791995670981768969800789140778035218075529420249955367299218826481045378588302648976197589488290965004120448079577040366742098939360818328388873315716932629644696658742928781464279932616772085313286828840294988744456947891403546122273573026193820679281558599069650756616072141688181076541576107664597619369179340459989615228668787972828627256966641020094458038918005163150913782250081907950276350292380408795015684141834217096637938248382540412116431768072728690952728641924642895374067666296140652982634239388944475107499459190479214481230518570783355265137542417751481445911112478042692825377098226008663381158803896979207778794076453691476255910939088265822633884086147131197295367354746521847349036638235454995340097811113839443268301535314590701793148580095000803019132402445751295458136587617417311639248528826327565780511918757922124184651759799432485679599584328017485196968579146880396696137993296683371280753735404530285050850189850269134949218775867514233971850062206176896173345163434029766403658999026700771327933986191232486611129190241037555510087219717458340417116088320599919392414026715018899517929883484978153787241293630506564182712672530123139027419116239586237534686759153304937867574444394999589840031410190013536387302647945464082689255213340286786249622857166551086606909782939352839158551357896087592815531334176587981255911000394109073625516420528155096746604893627474263861797387834826393538516554418751172384473834106413382929032291486460070802885939781498700346483432049942664209431713338221814748325332144054420685798290522087885148690122092706694836874558001817483108916281997502767329242766914786337899158118138222422154575528754640739316048580115313855322423983879694636532855449230395007389505992166246859153097187343950439884716645877170877112064740238692889115650996795820822724543692083848686163262948942526683023376848929466988065791847683554165268398881778704974850583886981727118967116119405261941493544972730429301895737410223079794131061309391664113421738972099174375289190337957346737314713355177863449806841640511209226755118806798752432644859927844715633714991194304018063785574839859683001985372757241775724902255037713277240722589457839448461831182885297504949458246960032117812324053033231096064332093744740569800397363028177798309916551136172082293049573203619022622730693004404628378111572573021513952829785096397427140032927918474621173880071389472993788187840735302594100923337166586626067472303591884633107214386139931994354848350847262073408176314983732096229472491478750323230648243009701996477891790500177117819600382571374324185214533054078763173509335288681828332516369145702289803967071791470671306595503185510901652216031607675563920923027008683445764517317846830365127075642397756735180286514244031319125223887486356620402497501749132043022009813470653011685189575902297292785642405454031348731406631557238913123235678910082868677362832154377390614365733468004088310571171932043021853196264105482898272769889751140836606152004024298459172586590903934454419921179295303833576462944183232952431050918825220536855926133418994658963492880060235162126083039700564234747398700727338474003127065627766584017754421797311078877516822617033880812407101631881408337967315977271628235696418611804931170907774589481735026147869766136638650852058852812398918528366588147017831512587558699794256172913357547214304506891697738885865411062922872718889218877296707201688203003752955402749327735336453814443917611631197763029784306631747471189106346542748694477191876977154601570128619952304464565931961963429196379748193708375027810469640301072734419335981649353918169636509028592578717428012723379185152328833718699721831743929977954355354033274778850882569119812145853526871097920707095758140380101060314755947426093476168068748908850472582819623268545586598750582534651377501756080976765055042575172378255237609185390100654825100032492961403573099931106675609314824305572007802106901522967938286998961231594861884821738116054985023651994890007263865332571854568494354352575520049155134055735135862151066198572640503095384101630166336487548843436884725728335447263249511152808971158300924627147584128446345972735218469347763080005046853762906950474513057909525053861161468964468814246454431102831979705410549008968034194327879828116445590858152418762805977327262973035537637387996686473485724591007640475318992136820902649910162168899407366740622762233543000179201938083444326881247834893030473927814667497935310044619664466908103451446121464947027886084794843151435563131458074824008752340511426889753606194889658709627187333084201312366398160715592306411154560608616193567241082586610020513154873769587257550336387324123781115349657671896334325733742084865295637950237525679714396045873591472138569746317769368280501018336420995231305995379571769065863388938130832555974794741543967381503179552835704606962867243387686834375488568114311185947908690388820244680475269268679763673975902778593309285772256931928202485064353441900845351682461450239767462970990859784304324993241043076339396549290990140485145653480064367797685654764529261459465746950927959980818124371825781930663728444706617829486218928627843892620110902270346269620480567022104187081208781179472396327766191670674307130818416509721463565774707846095048824552285815853068877554650017108830207217012482131679567233022843295344945131903342271979313525716935818696760670934068385487110049843598609237953387076510520393467660581589249238723435427460192424161035514350201648758597638080263018263907090098348831165786801677153251177255497076718971084784679887860515032612114722064240476581528064957971010187892523130459374912149682941091553878564119706330272232421767908586798367287381290045330459769824106532575436720684543794553812144415961177949641578940180863193585198979819979723708316820312840318967232889674216094404416096506488460553121909478086813705057191882063740985116663203252869885552328627216411225241632835875667815309428470807094451982886315018849285069495291307502278530300890492277015995643858004275174905223712276491713846450533469182549448445931927431201542263633531986899147771014641536581007527970757689279146221230366763146155503069788011492508784707372563153833143867399461962029887605680803954928611669248312910117444696841648234116290820402127089764774604928144963699434888584353448707490759938375901908514385008418537151639355400270366009535694855482303701413041013161202991012301790985791033726865525896696874144679931548262147894075215453671084434860807630195410213503537302967226902645959411555636321616246220906078278374891897810732059735791339235619725227212963185782841974120909745833632725928024657776062463060057473046921037717272363727937098593040836698466905634675812406138722761603886449940921495298903054867322596457229194635819948803950798870969703538530300221343068931320612934041428207062888939361663338313421956940647836197686932619910856463837285699549058615479634903249788228135713799621275375975925142192873013287014820716597618731130425727510774784544394669243451134279357317677634079274175660059378969456275891798638847399200592456776750139582974264164837795155036323328204155010364415228148756267064122664086570983199652320497938443487472917660860279500799132709269851493311699241848326252217187613009875996551392017552565624371787331473362620128553314779717915468937906123012962630992063756629914428513141918912961608017885810231751883459002755652896716884051002741652674995794253279763442136620252722910105182564637649167621869483362332007880214710080529311671063462502227301539698072362093641439477149732013112533431595535720363495985980021386522335467267030478222992611103752727324455688737462780225545527104548861588377167872200895535794926542679409251745324369978410815808174880288871072270264814673534639616549072060751890678611215606733021460296428165316486593339454992550271073021094794745765403195131564973521540127241726564659853169389493651764776330576576495152632137383472155902911218228987056634456990471226980821651869456775165626683371250126921995436554113284800481203968686534483228373119637941289791377776975878054375616112617274654150656803213055234533344860899050048188366024181887013068628803616274046560555876640059769924778724596372972420187033617743962544966043397723236377271872186797880683602089289017749723311963972505348550245033020750006809838119725585402771230121438704731992552869355219712818449421214323237097376431770277128959984549068070881170460460702744111853807397600073125037880678662818972725127813575267423432305538490475762326131126981627757635520565392729710273524850309099118316990222767163008443386433796005372435102686362350662440205310137861259295994231961641471948073671004059554060619231992742782120896631762456082849515665227118037141469250944635828771113684399355098025226962690796398674138826834763385630197046812556256478907845560480931243039932218184599002361448478921910740244554489099958532896607293886926409278171199356766186321165219745797634945502435938545923634993490915978682795589639234153351539823658424027033011435702721062730988561789521871720919078512066130219112621985637602296594549546093946381290502228593369198368684659490924147331551505470644595683691397341128011377477439888995711199006274672691860779298274849893453870073877263223495716765123947478654760305942762722503530900603159642324174911945898407073299562243944265575144116489366407110562187864816618536002644244712153359764021790116937716206872762993552380480236666738286657014047518976010315754164005461502978643268684299774996566626193416687016039370150744888655468109697328412327003509881438266370483017487426617797061231810394058414412684486921539506204881417241142402946933760904162815393232831700875609597122569852090702669909090695592688084799670796534457625272738053965261788270735540318488277003661458426982571561612634007839565875909871704401758602056817253391003799734411006430133903644388509765394094684228236564600540509076395047606419814142279378061858603349235664746108215353886198847595654582215609641188624972554690859445471479295018065303184482418202139428523275047807852226704588257499923964935649538477442059997948114081778201353809742378039861702245934004558232940997788462677678227518877671449450544476461568495606214937973859591167017292519058951287089502937031339204477988677440995897067687885244721678235334065780465838573823871467052712684924543743041198351865648014878461093470584442873515640718270869932611150855179734189166483849221727974925685128880106551971180187282001437234588508177023637514087582723728824813102966840368834714916103378196686084592735529354242989913383105089677821061085367036028916030075223719075675690545173004888150765142299881495086930134317338200785346923778493889484972196672652501659178068710788009970886793991318920915173710281101431894156968948843006121804814721696094857712634449452800395748847207157194004151334401481711269803402614392297735344442798129979631475282650677188220849152747156796435738811977565489970793866686160881451768929383187505984312129197406331467858738628803985710370054717812858096273690539119659133173057824215824321485513559473511673730734481334112550272234062798594842092746190185072609521659655335888487101162235175996007665701759748846657161367684391116320051524646841573122635511885186248257874666209937988176748891764912422307975991602700025063138073114892085018114810322458036553660125399916561533837569734567615662867004368430132620479629552772095260328324363763734160932229214323816593632848423178919353028171666175453012921476602840328745254007508851154027989276218090110268310253181582237703428171084873191445941066598897705812657458923020590419736291597984650960495845646993622239163342327605033061921099295529930113217017034973720227359561910367141148244844093839624665511621802143448636431503501758450175849492702174693119608759739142792285382352772858789655088213302199314331916805493647466152022158080351008865268933017695392195565090743767188880431375369677770422461267944051902022912623684831524211437777556715946939986082549908201552827180082262657306657736353220832882364400402749133370246906579601220636651185830518670400741689364283058726249237045818235269190035890330069909680707052329663413925633299562288778023356335391223222898346426394074906896407640741040459054002463308812493429412956637235370347208752808870608888519810332800574343964607431124017892410582388989660542511268209963889354013718878845582192942362669642475544255659270651354940203312165643935837867292307369231815452283042343556455715712722371083908033754938901681927323393838116624850888405684112643504731004826118578873085318357509006871056086924051835972504850775406206620370815336930213511393791053521107322875706534037950632995763157741034883536254573662818320267692344436495424915455613530292748598721473148000690145448328930018367218164448081393746174709171852087481112489368628316716519420307848423450161193535148902413711086858532260603203916978510859072879125246404774776902527442498305922076635262562613534098427214882374669081244256276036581235978079490880786575595180772516520503367753000604236730343977888890241508083019961242646629359987745227954888744085760702176234531641397247199111144681650049610383603855502863863494130958303561561131252102733313049878975714473145674510584138026709969941867855152607513251832581452211933299178376916243087383105365519016531356420030845405439616992367689525930280850816550070380074310418597468694922506514208809895565189172048694540910185259376654649304507763935883134280475161260293705927105422249825869460636918888674310622369882302123373258049432671852794020717551942251689063550384486274843949150290966495225092148341009435188999283681986828103635883076907500264986405414345293202632348444231350873380421793600711807220123277542270908731428804520048503113453070984272507527765250979637957294883532729512380246669297668662174236192397924647558581361894253057266288483196332879328792571869694581830094527811929291283495163853048172810329119292273863753359533643350079251002254083875480103082698113705879021494334687663709266880271495596164459210805114449867337974949882267387544037984965820042128422730665767030874792518771389582264903886697306085676073568211962037640943246140006020205982380667516410882919574286679360991439691599469274306779288079578715724061146912294183095947287970721185465304844855544010596847631672865788069457982158616379631637579465792698175965279907976705820190210607911664693213586282415970378687677037548418950606906271442060153168787709516187194602615795752186365201469385374042772113163809349707100072673753664343901929802659382174321634982635727662500131522994597039965042701223441100815707862833962521967190672313336567760079883468177595878866912929238105117409234664447295411424745316864111802339502526895468858068254136675563699250133975431432586634714574384184230297109167442999110904375862124255084249547723006010158430196515911960898233271250131808183917718060721072324246182777397108516215128037484024479807644956706857363407288410205626213930731986128611770158745208890465186956875385959331893441089642856568347954227912742157910387474436483178090545818788655749054755790456698895030707710127637267134060480535409213733175923828713361199419973071791088865938354508367716440021243742272376084584217825382608660486354238536598029105202977158468843675343518676690265349494704786597146919432132430920183485774725218816465470534497024805454930185323248338406454815341515986600223745428420896995207268269289583483368346181713361437237581913187995137408320618530439129723531082918460913482392037069174666715636283327695571419614166727691729385448628139495796695510720360458028722948988325972041639639859541514652336906354445645344045749082595440967755676691695765838058521377744398696284415269626221461189494032840602455740392612433408225107969647911009167961770457144847466058435350946431322256435220578603306587972660909549115222627743516756229702007617576778080748653392188060130808303348675194649913223221214925589872179261494931271096340798474365521327016958013514175637791838167429599042918051620253965668079693559749844810567954908546194335747568233934858318759778461714858206373925842569677210123329002302874799472372314337138119120470066178139115899959039227335794230136337293451124263359960305726259878989661410238381631939891093070476395911546092176484354692644105415465088608127823388943726134764847779752046076548249075381754825212910643852950599140835941257337127706454563495738083459637504737012602247677736653465541429378512012205639440554179761175137583683655520764088999925423843239213824608419764391362723526055368504764029667192614001470202519837888623338425106065666709691497517538812438956606547881062361050127247643507449623337382871504524166515428000913905487890834981389140389602946685610128912823723905355672153623192682985351952571345774239520613544554146195014269445683530927292089083191971207306368146119260941754085715888235561673698628908815367821657648896390699176548480183850758498063159745614422653191859392948100962673477086657902461427360868304062759043676079715115525368116560528601288109365307793620197165613544065439400198411626844599797522886561026871016764823255077665431098215039661356949542343071399132661625205050302995440397593035434567861749071767798367812546047168228536509044210678105235761447119261992017575350345628646464708900245250665252629517701027887644398022167512682948540794147450439260030914604841344317524892078910037880877988252782711239463324716897428539664641442656499942538943711443399851158515696154166603423486064785388133012306846813133407607424380557316751288927525930206395321511544137968535747292921653120877759588954997513643769864770127781426086528044339432884952689061160324207031512165041483445873897787553171658347137073868095294937438660259402000583378299612602963177615711579908675736171540382454098103083602057446252093868387153047034739810468398214744542736907536404379684872575475042365897187826178242375795702594458830581683849957634352944409652359534921709045839345518839287025043575961376607343932641979710026443178411622332792605484068189315144021919354504536793451902750859649103036407653277008345274346377956034481895527112353507244304416104144593773445425930667971021716237199330344706565960169817890446475914811215092415256937815977552330198038759012895045655197838424203390840596072664034955297597329767093978400020837411286135101914827499728691548705901308192081384078636037111228805547982034130622706036448781151484650097050316777005277651316388175045344870963633081384702661519633345117411129446838424752656949787860403187106529108131270872999884460088320936231095036443137751223986131601212809857939834911772731264639027938785813386530748040347519683496767544991812187451247897347619661485653807203080369882663388185498195956561876925946966315176117629519419664865306078461822577300081096853839430789150154677969803085774104414701087310668627634991305493290501527815224276493700829313610890703109695830682394907375795238188198884644608922644542931905285238644541211389276504354048477655158053398779937220603660724621538328973391193814240790841564534281778916362616836999299095980635297821240629983196914748586437434329270455886185019016958665925800956261109164436170134332981128122852247209894307845155444367648992566374249616762794246225426021572647253625697593392353911590950800185959520472087855056276211895607296167678546793502941372857908559135707069744141741785190815784198943393653639944100233657333593779524877266827384809128894458252199897440997271869206977043298557636693458292911868876493654682200699795279167158772918131543047508312249145835110129396200982133936334111224725336426984155848491509359081176513083412412856897118256170123317004793987042941957681705076279666324801884999672745360108619769634350100543280227120972144952729372673821908240876134869150627065482920624008755659789678377703992173039639609433325283255368685016428222657857279821085024961419616029326135496426679101283009338848800676926692100133996331108095756251973457827379964848737678812181307062249168709351549048793080158326548641186358111552648910091832690094957991563785047701907059205768219219440002847333319327825108408347398724607290955169139577518128042916305483372352433964838126283007506938998169655429705247557623896213558764159008111416032223860172214738593177793153223047812365020554846270559617476256627848399523579794282033503944691585334016300666221527918863081959557591183567561669244420051863354356863991587106335506716577301526052372206141297240802798308650320790089717646827308994611721508910756497271989302450422307704899779689566785949774625136786368807285940698511989912176729528420930773043302975044937668101802400188082470762037582536576306418924514754627708177313506577218066502858755633430019062493140940195948373338424126882663753909476994144328771997068762979014859655351186957022415460528425549918348047246234392738696527208968288843903402204745999055979479000295541139657459943418710751430191892062652660060859789225277849010340264504197702660299038996212753443540178440448801619372032548943255366300343552816026715082653431886470304623291515799654683039000600197882420429239919195405437321772621399898539510658073373829701341601728883187104062899561891688222144343988964944094300470612113623358042752775804621487603958245219803395937561443838789293815036866301995496601150768049906121321429983026306809207933028801589635278570139713447907524725329858853369382980184372800999235019624429953875906070990168861172785915074594963955418773947478326756152683822152843173851112470114456686131703115523910105357841190151499870337943783577660660740993067509481797165905737532759230698124646072877712018912303538778742674856360176657863409651999369740346695447495690219576858831176516560437293799942454918084819059038542161741348203965964325247174356554767464622622824161247909408487043256733223535695213278388013011589505225044086715088795115236591121714234625924781440967582768251665957678872013846369068027462453599078914065300648786448869995887399777165036354868846161246084012060438750103744499089750372683317080820840654483740103306312421848007220546877189634350608644040461774935294554098763217355229369742664237260303881492940068298164440805128362876520603930417446613890832552370608055583687183502389815943393537555250764502676181491147756742712684441987150339405873594076161925507184514972036013685717161702690403376072870855049294596652798709790659359405928193092014778806193967453651671612366048351160154188621512247526189130265875452990140359809404162232712014434163141877518781262432050489502856031102206755989336392587853835443576999428247694402325284955376705820850187730499385864684044006078302987398758528491845723198026253800289811322526113795447070076279509919176869661905999058175950831345239179189751814137526760237368498005649291770308054720796509864239201959198851578873200264363441233510761913445387676209544460774924298053811683866676480769904989384531459061196475669241778824875294383571308018773142702165995655512159245945748523670772301169416282094900581106792648841617209394073273888658085631512404207054184496126495551085965652195529770724792454965780250567925175548981732066510914797141425013279649371254930097188298655967289211138341845381735672432935383822239625810190462199658358033237550572770289879215375423163087762044229344073683558159395891746470666141922704215520002364036227488457591733800820091077847501863472947497535195253122397036520622651580289859720098301593301000889150059281388804707823804384478020490897428905081264984071717471040857712162831687310103983749695500472139302760723863004556884810938874067600733857982169138425591057130617335650058906322921434962744146665992721986904935421292132704025061738442058802292133837677640898417638771480036649753873337431254441820075143647212390273818324189397313077751608722134079031748843477852962625704806758507165514920976270455396320935185414979654960264193094126144526099421177031121118049011416652537344471948240885641921902897755083707531157587999204539034443013149622955151230491521357451843535114453565584787247197350971022954643443973437808209470526712729555753102145406664887108696051669247075256010393131110140851406398293128547718636476617741446834125844701237831405165924226690775364465810554930591576508098854250953819603789195591297954633075521685418390277775292575836248619617425072824334083346718759555517843909551568238882716715026177850081705278809180645237332320440165098715016060665424071429170298135170122734647667722187946050723011529455803238650493192445511365168128893321243493855241618677964439847002199667464175328602475790882283978304849775856603277981037745278452215035634984507376627390111698022466234664867000013609422049891811155060325757488267925307373505249272656830742156775870847851965476462296608811229569703171379908951382731806328965632100229543422379516281710249279934224008575465632891376502659237530500053638701226861011095339571021621872576134543294465135915414516421657935290727450176124835740352192354542226507992757243875785343447144899757427130866826342879821348628979551708576062303049733563936678269547231073097325485425610858292817400446617780361233988165883900157259836886032876615414318784646456397387441455174286740160116542588395587490561478509665685491848006828119523181255681984809249018598864651336936663838930206978624152975423146495969076280008793062517397673821656429480510256463380309776596270407260400021728712976312692470476353930445810771105239683157703301438216721210212168199431989693886708534767737848214790441229837433399945197115251614603463309268768583518847033376206722521374785790392659166603094030936731777600378217004499945658933387818657093509379718525277064967153251504721664974711133518729320956804748264826987697223375774559839039217414975974616323837956742161905092913796519001165028799023759469183428493216626811573612790283797688495666310805548794034912606222966522253960453802065115120687120091599105905356016539430885651084066493237706224763665536756157476296442247895039162385743149025688129250259808745617129439605060231457261026498143324901662371764546250580141272970261226876822893361911621256139801905466845384156031487092044155067929655874050805320712942544954593168606191957498792311003190598846736369795900042589179744742368124472255507218188076917447219728537760205454278146104054203224485766543281247380897103201900199847581305341117258253668386478279743503555125064219546247332349220244304375942841289910946915778652905579641569401167096340715877207003737405882784168361531883544959848782768646458714555211558615140142225182601418786027620685487292507062676004304019521895903628483317182357968642931104610133445704320263795681921880648311487548779275995388307570472231455876463889722683702370954143955186851990321809780366262261660319815992875146385459233083869882979660791081705237791155378941161375970960587079378868360021166216617693860629167346385299389777595005701710521763556324310466602619004957199518825196339249312382805710244519709733965224703143182652458824122881454869003643971678965619041552199938884415333261517870989050632503951543874807538364618908732022331116305654649227051958929961539002642214406701032498544880042711881867170567697677148472733792299113264105417073070444296040561185554035703746268122052593513336664281717681971933346726631161160423377152103157328115126303544729926400610370806460047163627685665301609443473290730262463560399793171113528136526567478272814079295670912742836585342671676183226756969403854017843971725643260322288313607560326322842511919054592283545285460794441433179712673633108689420047592147974084918185384927403386493118763388352725885817527215549206378889315113552132424354878386561411424341924625409404596090856524819250640063582556520856123935289613332483852062776824746994336897209894764742075090350807393431609832657252777975631602989054045924207737204388301946538690735437971895414631670461466108070558945597283358652033567787914194684371913172302657577069082272246086860152239400634124238801488318821506904553858204860460168234332520841515455504176587540031264022863131747243374460754960667107146945488678067588342769831481366864177911922627101358098031722320546209976677766048814250506274221360508552957809052406179042833832200626957066856666902936048680260037056347907128749240897654063732005538243972895065502187740238573362305366723441064259686086206491912954593537737430689707948912590617660609383419045152862046999043006344209939598654172368222086871264801105097808635987739331222459079526276997092372561355671890814972994640848011176235075896252348790919245428925402797121215387941499808902713161482340273341513858252648081228313142188628137618429041688766803236087690398026852959682852485738928182614818481430301412001401581940629039143109765728383717739205497003135045198258935163204782825471747667711858340375753078814201827590037068827109938662362187251523466619984502045353898293581255084834827769544622397837819783654359223350353156669047529931301208003153055611857047638688022827036839225067217266161522746541067385416736245812409075282642924493505610256017296204744127820873215758903033124221058256523762752442219710863356626997661340002613287545534212329894293379098352357184183177058429070278340636470552547612227530432475475703279659066669604983832052639569499957931804446174599302740520979775661910753022737394484746273196956107291565303324754766397561724956775727690986674723306699970045200720757648613633349333377033746925605046201591626123508684529341934213331265811564085939301626424208781074751196692733284253477523678192078773936302830913118556471694898906384256642936778780114373905913890688131086393079022081110650970566438784312665876879556338926314735020669558421093952876024489935525648520085147350988391287990306631983250718041567283722592706490783050022159717980802935978046658047832809289785006987823864773882625160270122462999039899897027090133484627981390835123355261102213759730212439624718746497696758511032547353625456932633768444954751077433988686339987905284459815335456814867197745300648624643368123686471819130996449635641674678620507872738683076322077520616664748472336090296432926207004021979752606722559052507453239060460641388300905292936579895833502220263843866475793117330965349977679821152830322221391094096889592505912800921109608109722662628798065737344880030942144842127017211347272913495376718420483594564221966717170392901540041330677948019418277374534302684410576097573247099889394297161760469052187741472515187977487914488428561680370399117574640319466969013159136063320431439070168185704512268032143928888962493848824438088866926143203065553960033272329451316082184398829204057370411540855222245328748651379552692366329436195996909502063494518283872377052901293041528698074757954046832758607837994363876367012265201514373101587220724242373266009980599966494500293278343708598352228882169140600537755140697678556411784824821358408174212453283456199302261088749541785329052500792321374434615672663005871064827526809558872357076051445798227135411146751759465471415183241884750984978439888438279669031930877784104463704705529994149595719390301126639791328268739187883562995877516959392258539311713210444256563704562466059625459094351582107386519090290562083008491358780378346116667953668489530594849879212865735456339629611895766483002581382790808147257947950030340666787995591690860872915654416328481186581691051431936287607743024028066882393176671505016509128494882227464351161032865069137561356881022975501044158846858790992916039538858872896170152507773918468050189010480107157145455045860648859404203419479510403130950234335870789406956537047544426548795304690801951177920521111752687862342174905504046536587278162261587079191410710591535774096359901795322417701618387011430263266172124098740573361845438447726897903408120039925575435217920438113248086189652913940441535737066143793557081513263868414039678762808602878402281141621371368858921790204409723222590848687544456911817418286228818648106139976854501378548120230633913332856342252365128953955863254341595825257046257623601333930808494130735868000316519806474801194420678417202517779925335637908628238021910932655555196511350408104890708019744161239468214799721912662979026393573176526953865014224628759910709148942575727143389902112101042241288453415969247993869166282854998720090958421271121517887195289608241657698181590175729417858061677251994782332497766261851580575464285428055242980293305603260202374985831596881443389177071007402187461646836974220263952843635255450514283781614785901441919752321851896190985042584548195593373499433504352434411496841818764411648634369140722847916588302951176136447567608272544776311910592945115537754215338532550391349190893651433105186426455516506539354855732802193196137524569466652586435782208904940273502835081349944189598161501019816223082804194411058463951637503343048551161826749815234962875332528341894426321433636933153987555405561383490114118653503531314735843397043921069513776969480825427052586345183402460701364150714277330684504577687879849642507496681973065700244128356302060679681854538085969213476136127985070237514337346512331285553495736908818379000766334889557092507887969887417781502689114031996115168374395568106707646466062544983651277843999174112249220938487610754535250340611259002342281994642926362310426316181970230575563047925912759769073313358694088894462089875425581945374475907810772256973383735883207748435371850767211113798604109678081412715370823444286438694159658065755680491652016091182752383952290973077569572930986307711089647065089381732244573714341453171056562724133995493437809867985776430783239538156983097880317441818571568710066159295997100184224098872862172580481841600393946929136245787325257916188610297219766650887584808418945736789071718027897402047869129110301957241289716794880433167570621965343093440834288597235088896399096462770468678734933813142881292033616931216470992022351700983452522344893843208309036759717007208072922569446068502778342180950467724862510964803583200633434604474694810725312829581837672731060317817936239016183973082894656821632743933229789859241146203627253779227861370928356511118703872865339249120719881094767747672971726548511849885411831665688756960778179796277210213163086228667282038338930562686275765094223995391515273844818904743538621591509835112616007646964544180878133096559126973097776529126364178436055145000861345541806177995472118241181613669791459105426281973235402037965518437338268034858384656425099221895721656753704080904956810683570019967698347197609249490806909253917275242291421973624946413982355488636463579313156124150962748198483546690332570885865185242507094545793633167491473819501102343724016905159621167612251878725586737351207845144736826009170760511024962631865805704599747393789217748027017317352949058573776320996596161594712651603132281617055437785707067875708989237392791170934287655191780890216605722428284026816475788022402405878499914569927435582958542949782744112107713982592297862458097669373146883651236832984426666182850178028706679776511735449642249200506975753917139848834290868352800569627208890558915085428438026784418520071477550508989092545539399174615894471894492780261282066307822720850541625417669247633048937592170914433481186147555262699081268149987539086775719883200698399332524152305111118784765245983121311144464537415785451958761002303801926860364061268964096920624384598543100594154401616761818061938993352777833645124819460206397331235602834125579393218747863873104798818274026375430509038675345461668484963417912723768088361604591531900992426006945293161053539225026716229101603899631526371353546351724155742430809771220678119935239525011131396384039895237428578404143100292707780493590070464800339108070200226016463418275321366507391128332341888274804963443963927070382808445937708866745378942480077216978390339188702263696456530717727273461180572792660680332175471711582278990695329914443066695792224848919849334882565488937334978290808441896184094257887767448012588510159092770387776491673728958421684348489038820695574023375254686617729074316152334141599700876852609499738847024393551636397398580634179747891106041708365640856429185087831071737191459932112155283639857095300713754298557219216765904388864451419601199573978699508426227845200914964498488672410954403573760079874774637149479645291234904369604965213275588747736021912711851444411725014815097097121974775666977344419952824010648411317401954627197581371452165526818366020247089522793643711478824204804975681683336219474556849778460626702383967272425958101166112442776608488564813203935177535955305455570805948066968238523922960256603589661135316087766347116554501973596651817751247592147849681082222663854461241572487439504222595246078788311292865004959550865760740860215187451175801853783671596472335526544159055674449360382188669488633824902494511942338406368535511997850801085426357506944262751307948098712455866831975577046162759684504016382297601862390272076691392093435854243118620171585532415899661596621826815941252479258316264364811703859630010026518103997276977020721301212622056551052046322027582667621449557793855011884395087202039781076603532655221698442516522752782870831616280265374246880602349886517788116526511513268310218558264415435057713022965019456065465949361744055608768396867701775371946376496344725949743428503602108445148436127152387685863166048668345709512949807493175974549638376626898613081463906078676700665475677632766351299036629891125622683595912588898267446839531090550496637586194430149718622689475672075077452577686158353411971083725292895115390577403445681257918075857317660043209001582687311294458367123424546955758783287594758428950867465007416592448072145066594496189695152132420977658937160232120641740415391278620815329605365690735572634952711582206126182114479406647225353300500557138572276967134554702901951219537722183956280080762957549332614576445742889424677167760464715412415194834124432899612428873301822437412284097851038277250360638997162129009553433481147739140783556155171995928201461582156092541735175397610340170913698527658902366593599533072509150251897841700350219444499838389673087140114897719530818373554500221309198887555297587414177205853419383133897095574307137948473909675036464916069548012390427557896308114182328294140771702533762721443315804342490123382471741907653602613387792681570973523218317241888520054766871351461954605272222228500989490444622426779189903565390389174228955774099145288157997802310581899171403554101647943636883545399637992925356859882359421514728317941009736243167408919229195726957745575773724738389968667891647194918714073434554768721495016124166805437167163279988233808113763734121289194158443514839954062158100874903178706334249496240226370257768641996804286357370498803879462862028523184574360001025833149602590892992396402309817970527073001732193358252641109840599011546791507704611722514759238169525895636922949878862577059527395385933177191561208739880311794728631101462416894373230797967772163398397388939766007667227605705048660969158937244131693329101530729416632250880629868261003352161061839995250401123945241462606236745616585424348436938423250416820283608372369185868286542289980911694253780504048184554162044458281329516226643123725191905773774494055456227522187636967840322572979316934735438839500658750264540981632229840334716238237321816149693202929067765597744341546409412509319093304904629703155102863631356088253703624634824651381776458557499069738470114705631343684322235729245237777214797596447434088397498375917017305544340741212422155865092652416020009956837979374485977497929587566335216406603783680333481500595961121734978891276593699520031155581286083256248747594978819923638507271953925958710597206108098469335103073436057000172676720623740084716864850677704212309138327964326980800732435185020532792676758927417672656263842426355598227552347040381855619629676005643007359946563817491977624090948210544004779877954413147070315995080925250115935973376221293143343657179595593122735971953475007942393827917323075210063417483987219726634549681865681040102873490256334451469479469597808498118247151205759693988480152196229727546762133803382985396340858536686565965637290389630776212584351857267732548209546574350624810326697644621961542845926672852609767337267472259992234242273507596097180825545424646649306975122034819385749574681321959444153343455458414093978486617201626241639586030323266185398938118168556613124203919815562774553380992182974279000047718618963556027756155926790005061844085571136005581025472725053437837868589203387239139677209506869209426090913484228393518827620829168169052645175358353968034951982468068971561154143411440283952912702813716393241551675232264040929726585183928816468662421907945793487794597056189773398417296625823381559699563558706027981703518481718909372594482495555858111110154071821167278145589728149094809374257523491939325557273069637164704593481989718055197169548953142165033225536696453662275833204775982153352761842727137633026669778442007768977743273268595076655795031356671899021017442159909054131745511261878208536991538549919903395701707336063200549657217475113964233334871353893833805581973731781971873830655928555293062232411933884747613125940046386546313689604666869058380484542251703241033729856704397340209686142921129543678979741009948395554059312368613219641187796816252504736093802043602347952471422949440510245472205254630524143616924681777950512464198670586268094169349617484080566967895842843904644511671477133894776019714567403906546427359262268716824201796268745462599443743054286788880163103754764435725180341103090057688944979422829044856256830769716672569252919881467437725990805509228073229985935355116582943146066974771808357470022595012014727919212420739631472961185773716073590692003114072114980587213821023003215640513296834525156784580836175058948291701848680788312489242552458611360930427291052707371495537683714193338011565451610558459007579486674655075448614434969565409243359295324818162959826027441004470236250163912701977716833105394097403786459190692547216360867554670015067748330847946362504617030191424008290228398715576237907203239667356297506183190692048956717001431427650478897286006720846816237065110307156350395947664526658087201442872626196848913058846963329870580926943423087842600331450706726228743081029340884170092824794458020578958629351458002904552188083718462466059108343084256244898341006934342045353169069507899755072655754435822404376617273268240661606534764712692743098577274930853606527427443992579616368360015939016436215174260958138654504653267040332056214508181344413922870870424475816727678732632336974392539379077030554689622514954756338190988839819696208263035409846025698721001821839257533915404771407694628732841356610122078581476613804716019600672152254572900119437338008142646452440723897976404322784875417462790385026648905295461627655544998809359553844926648037987434995603370176970381476615725119928292698031720660898320430033715449843882022926066417765541546672317995988930932180820571585380771114633947657339045101600218649144393536577922844365075687303971083935056413558438570111045520251094469916668340075136055878918171665373216606140928529053173624923020484235764559571146472608992279316890883344174308845256974970429513383491691310339737975415849758463293725795919642762142765647548134880891341355894634612641076767012989854643800660570258121636385808012530203700231216755022729514949945259418122620965976361561055769446545632219510449542650086633282905437302868801419911087143119721392620271475504925965458153078564314906176172008755035725964735860112540849074297992873476506743225906171644962259201154661236602680103262038392241536425044586593238345402758821707052578983262166029015585699262588239973237742819183371654479999513082331000612217437247868383266178518496471019361791126853707032820668308753605923177403828861071242338098988135121639748099907944677146668947374912200165810383669953652884821257696096305682201130167522827507917049954863606228157183800363418729991754171536524847230652044751473059014705300946928057127790417127702682734437609755048723654396955809009506603543348574825395426625608659949115403363301688375228745101623698819044308721799467057280327991697557648408440837923715531412881239219199381204045833914026320004085925597004561553291813923320702903130790659456005854117622159939360688364013094147987869704555413860830496766945158148845651881584044297009599753500941662349251832634694635663039156323062497058597652356713264970211737957473959471765307471895521888064510686838660359500108896630065459897550929887799158714873837995058209280256649849439969503182401595015165719741650723109975623054926921674912987988710845825757337800141716165256712801461775985741360826273094250169766152255511299710865939315952744219272232761086208223944838956031208254276930527011452290633671617083361417394485772152754111627541955785317534237308511056622604134670870566987218395961232487165207812774390301561731365022570086829325017898320382515162480442331002105780433721567358026210552356968312173536089727203092029642303942935924500387479340275935833474347641418363987985417484611489882346790655449606283570582890325298375725387613717728364217109632023071939486868713142034606099583502433575106945845682130062755240398115322494335369873719380750935324311852387842296439028989287723456686830261495911380508193034907842613383918654337892230915214609635996574427041031781735875980690127980740780893201219628366884969363416314324857372497902510394843164848737290433175960702807069985003559870656359196484179923670826402768796409688556568759657807763220699220831888943739392723523527349439744898448801507682222841761183349381226519539774500771375405546672669756365321634280528165048095600170357585068044235664313511915543345726463260095921272777770515110594883900364727875875960521784485844803096175478180077998543823389486921616453895819127085981729080170996091753252199492136995247180085350947450153859740302165108830901114556877746098800636881056936202117220839837690569204642376965501379463130333518445043768852290467182413374807178257142819389459467757921066146031416909535537913014300523877896180634471723238000886705321375506734259102603089761174512466357665574953288863780419568844219302352283023161733085880338711010184339115450151356102757277113534750556981421932346929546308622575872059906686929596971694485046136978436319282889160140030282423295447613794539847301603632725969381037903580406720926822450539379087906517748209964435264182566331453871702643474961002197754832610492915597697947205933104391176993069887840823063642621510146540296135368412150122560623496106901255785942842913533101992880646016676513506518228307527425960637936094450820239268346290133717140844043207977321500055125767966863225851997141486206129467737892052284993586343461855677018534837044264874543161417380332576212310100303798306240465917820814280525960190559201741696686986621109822546102908789607068294639046600471169545843515732876478042732039807787931290560320753011086358890032239249300173087826835981613004579874435675576250090633965659912512928360448580240442975107606053587448197285297380035753707067188556811767036097963599727418987517935898072530129265450345194652303000830923337114724247702965782312920486285794851691779227951512893342746838334646507563582781079066738887510212883582798162489831278264169243705445319910503240607653172263397144300897654467350312703857946474808766173499905939885038195306186334540830599548482987265037731482356706537728089537730261990190062654092650174791625148092367458857601373412643726402472687981633332310402714348316938189921469877267488385047223056492828928251340405555847638850980248717975713115100135945209946622644538057288443354527818071840645196025258325547991045191834288588583518864800693117546097086833530923244794251351316560623757030823510689935104984735489794146992848867745929378741868879916870100554334451231836158023931308074907522564507487961918029577026207854376545755502387502933817151069585687706860017797136126605889420835510646623096932482417191835597951281914018921071665065623754894834787847676289900413712564622074814932474172318735096894756973339881814375088084011438450552758777665313791816179802316307824413008675472012974782103619379624703850271206306768182760275475293082768557776744898140723072498218843368857198888553328740394613696258056878593651364074101756655942981949909951340606717300386509385867328313260222102250758626878540921336613309877168332178874502797704952431719875175113458936061802176570043921988465774008483767267195407854822799149456349361707769382223128268036746295866620822058330561090096920731567055977668343485310048633215177037410159395669672410277971870075632266134799510125470105459167590404572534103444347104949739730658606286939996431583336657420103136769715284998658135369494393970935078434415753300910303977065666143497771157007842300713024964477893989147714757753678814127792326781526966579052627496949189212712705291793311357364540751127684458583146128163977203337635025871040911109854173132783661414650173070991089268405468619931239758992328154337402606193467379489963208855072541080777192495112056272787309877179289688410458448089152191835164204873234494783021147391359592791152347659211765212417463999296995512804318476460174824102907725028844303383164358375916588417044437618025796005293587264654670445461579261594463013244333786425322105156652331346773847516847923260480452330888014548857580075150574669280774105617130042644398621998942345962208437780984150927132269012028476207994044983605871408979877733571904741122308307231260261799390391437122081431498686589472445985132466676896587478907852416272870661736269933215135677851293580694630516461412297116699540115841106197009078080614079388462522326248259350707691235544337323057935183090543499142595851570940584721464201473841958581480162580710071567500994908260279019436870622849009928716896244364856438853694412674450713489919705794850158228959688439723134536504605961713249371811290024482381914607787016519101496672686745878038427957573877895514404789287217083491301504331981310958334220561784753819648365531465551310515893759129438499158219492498968667250117632792806211451189394466610719681239507167057044221842380255078662354964145490872619962156790266378110930865898173297636378127703096854073754883237557659190541524436452618943390926470149645338105078162031697968124214019503432668317114600929882378566668861253552201989413867615974060238769660605599316175864884040024727648840158314581394670008800167999032808459303014778058054111333431441892203046177164346679881400744719815377900711074920848816970200491616934435530100338830313956948315756445216347235541089915056290306578526233937672056387811165519167446372291080868660943227002095393740259460834622983920815369484096768380896769529924103929486324807268941101737805022171588981903580140483457331030895158474001855878672549633548379756518899362875606259983123528774968916919581003690390406349456875166928469145801699548959041324765581581092141043830675793114042380003292518838425807709611871711325913379148080078678723979702789112536341435097526952381899645565863835527441827377841611711652783992556198209815637739850090983550759864031695005955918117163393370459220123314423777894607941562282805642210888006551501462886335978224786844115141595384808503411824513274569684568392402615499956055513374904288800218798584169708301762792444398014794097966917194485431272518614705512333385749643355954605442238726482364793952687551737092669423724659010645423211397912634843071474793143556743713743381469579497719157239567321621972189509620246437744226543788298848090025781726905516311491386890185993245275743942471107999555590222901082760644788539470080969491865785809204022324678361434502810383631721123324553930423878570224752563386599581893579269176106997354394598546326035191344259868347268221950480799934457750413704859096856966729026833029563033719922736972799081579834142093932289021268616930798588889034642183285005456045956328658778073720738415186034156515948271385189463723094482509351037697016929630645591434162817011853649479848213758714375247725160884804958259092699504980265853583208210573506343147190340733005624909950424261739241229766925079281401980685399031323876249244942808679266401600698437883330672006412183119712485537762839212761106236576355073006167548664489263525397759899028696603153170918858502348489649947091380815203961573512297872285219579555747226742188857821701208093612279381285701994267228605354809796972531139771976046719053887761324796344222770162998008429046228299976800403436841556267055495342663263083554704437400399002261046374947823137702225958624959846901962261060372531679377436879790650981930076947671173677661311936657519488821411568547906482950260209927875683695750409023912687373559918346371099457767917123410575529387912099152510289799520503631424370580275479115060236625920380255794369038105234312787629215867668872283686223047506443285406277899763094752773762877400879274582367058869519906671365459015940812358524227239044892321482631576076261683016621824397064827843468423327492797859642048117489037941115816623183331594838318472883389961170266856724704525297322720859073296084292857796153590604683697029563778477274943962842215826822341389075555378263464610908573406409380485398574875054511902584551926157460812784348398897437998676799210373616386667052435288415959341237231296677396749438832076338088566133821544564975179760275915185988193106753500699349518743606349775432761785803679627804750433643444573806937007763156213497767815235618579072081239923080972356760761462905028512414541187546521270747020634207638060285175666738502896429980142944260617861358495729621471644200820553408025774630820935605153521958866141578350782109846113791779199595018151985803271867761853737924127928106622140209924635008531931944803850730162444672623121842773771651887635778079253938567507309813982244285043978440469141862228539146683583922253603564888355353581203696691803754105373156076455328564210762050567989224105043228436719913202159537950974800981548795018076468264053486994221782192837106540798419824660033835974785134318837839317073980727179354200696072129800697093809017635604537390325125133435523579352436870869042750428334562507494061456560434204706196440625178649953893590981778426362238770677458539816655338488752893596524958163083575883307589372593082544953390574421569394943040852002894745780455407130632712545043243879545473647778863763440068581329585635032691534831415811085290322476633422148683898111850027130080965746097483047399723476088346993582260803338903635653105827439661691525828699111812004568292726384379332112577438110705076131455081605975506427956910676270906305522657061942068630110841591367746311457349189064157414484815828046478938178470345602677649000174372945829072673933765740896215217884757125338568474537965740082051833010403576663399941925472785538885955848755490306527602820015398728309472613362376327166585187937176556913636987003820657750854271755720061429779340747622713835175487868607773598600552287933639238435531871533438337445726671103151326178175461959195283901033404216958633819274904396332016684851527822256328326297627334983415004453662980146901968856238221007406949631463730602530314890127637537471974679412582471579955697282709019879840491945774019956754332620059054676465187853126741565493886924340586030739679644621953020474496383663401783678527724297949674825104038518494347210866275166203049583730728854667634084550837681583168015287842171813276052782557709885749719506835807397710346644737445528116184227664655366707678070216598318722485226565401249897827533816115768511191972526076981903194303051315633800727649628269158606340675592989836942106830543863723847290744028847943208246608187019487876798199100215350738042076960253385404455459294429691701102109830429269394404040562305938364308426529682013937374664737327722054941843644332633005950597421606068253251542500155581851821712592642073960181307169656557268930945873311643426964139378750208129411171158560077012213382531172268732539512897139423448510574619843151354600315942026315500043727626262086746476229941663672509744891463482929642730785785205068036972432494477124129388190859882682980315065723511048299578977009786639510361301558707384608044342981714228417866543439634010009277358121641471351757854578516430589436230668573984922708385923971506427306151140163878448047648940845754163433036498205322626929234559448889675160867720453577563998584432564115601210590211396285816068545619835561166310106922981128852247369093986546167454331866003376588114080220850878561830467850999860411368583029557700775499510574465166320392408353268309705252646048042037978259644703693972476242767614859460318012544075445318219821402871972782870873276661213822901876189500392716759692741743115791921781377416101849468800962209546508995113988587035218880694272624461816811876158373838479178505276655185076513936395792234987241618402247881126350999003129444782970589433568033795726027714220754931067445653189177015587713483264735134017191120399198538516434191623494153785430496274097648288740034566238991844580040239683634034739367518657929484710284279080461771638315002617160138650769269780069402155674990968456581827253222258443790525261563020405743175657674489400689426910657879577702845369235472678472906793075771344816641977670833293859152131034140051620803962041301636108579280573596882082551128238728992281502111916857421737442645855792438730468147932449455552076078578611425820996558359833690320379101992419048621435926742553198163007021343476797067601564238677552067252043007294802815437653581874772709384832703210107752070682068442262653128411709628338716969856135381301545656456882406852776550074658173927948559802973361119388290567572390565820070697026333475028838915557499392022247404967581454125750334351918604251548630332005130311010768886544298627359560544222153209728387803645650521947102484244270476431251404948677619690600409985140370205189325900294528106447748544866749596071389864644253457415852121610755229712467455394046156711426768484159639271608385209376132292974996237606677928710312371054284650921294456653551038429458406705020058740740228195066294458407679458629625515278012513288185728286265123499523270685536518232328597874771756793659715191042574503854099386290355162074751135215939039329619300382619436777131505275435915799713138246344434464037805261673262227262585369164948736925830290265132750535830325298032204490881931027916360151731985968241438925860863402504247226480043650265121561404308719993720007480860512122033639073449104659770212232583526234390428797723918793909145982327087560513601456947859322066282864262949563730193846124111000287333128019216333790426662819248597892277652512851037773479763880726157488550566638787544118238708229783512067321609254371381199584130121278906260533696468073056525826825424411390116374093039604537611269946505571549681808494291131220210453194468981569221652742271516459119884279435482579338179231730333007652372727569538684543904861039865316506001804541423038195438426164779626295850094551806192166840702551821840588843825741977602256924735913727069560279992459367218923741622899273780779513273177861801896777123420685421554361643499989739922252159006851315884561223016905372786390931282145268501637812962345648304996311294428028271689783130946311317388989937161268655390776621417253302943227138652935955720036828315291315167931621381403840425246365001806713146811799717746865965488797607740627273232513433366572265488386803108236750711185347472388269303834191679207424565295759675070859567466772835998654022796050541766916246729724204150173693081887243512406307172138655915259404318162831228124233425214072453992477995564438444782736306890493887351142341987963526047465613339935993104207584958041221655428846417856849574274643242928757147739370807429007864277772979912546685577006061433210009659875390185023370980492821689631098797748782925013467944084729292103228414148285941403629697344225405010012472679088611498895551577038852523061550754402487225063655131279251043344944093946361390091343611623990602934522567250900717913682326996171210001996158982309801630629376979605383956319909340858429946575799802572839566157112203268617271198321623021070535912818791691778796195470584410766343909128039355520402172559911844787313831489934724065762553975189117563456851408893985471366186674138227478108479797852541222665168886775885540860241858203502454422311475293207695143930218780771592685937991968931920726357439670529106654121524674698994470150893830718570609241068715130516446672008130309024270705920864752703460999234111783969763918381400745755469334257064922375176880113827976726394793155389783721373105794014949853601671960659464685489853623521988241223634903129102972559415874661093994877610889256757865450876298847231434750424678848854557727154745365640159753071221328223982941576133228203953940852501849502870918258589276678812254576314243323853625428612846888858555235470162407448611686571187009129639327072264808254598463838985297358454778879843585634886834773529487180547478985823574519408792436424794722210500994758007651883743463071156388781211624834907987025888298865452934075524223221361408169879024851777734179714336888454818615727175385110692104247679546029471062280189231071022476619114558556916909450360992896360586947574725554762068512092720286554023167259810141295914977371012063539408972923904285643892719457279228531185886129299250615745151296375686439857889480353333302050926798393693945816707377491392081703278461846633446880957887858841428552666621449596985234833067965268305883424150825547563162666947920941977761514612467503811329196399064774175729706216820357592255549008716920958639925290270527102834194423265438758883100144224477934809621932636324061697559616333450859170187656328860022400910494559972866726466491859139242657055612105542296163511583597150008361506237024739765050770945030168697093969654759137165375149583603496149276484283163575909764002583407106539818287513830836042328819158270841619034469303256621960489550480460702119884306271902413221346884216514923822674689961264862758556936037280260530664435997523034558899370331715757324485821173563630878987702703536775537566812133749617194061864774528405611965832860283533501924050280518653105518150815852051402367091054031021018412009058228307546781959947708568960477141260523790109141777701512409291367682500059721924000741946163141856256128806845302701185082360974626270071756972972736125719632023854982288672650198193751253776485122287923280743960699315027860818276554931599544277523523121563218802786791165074987184231941170179880445632544478679179360324434192835477337838237885009981858124447929129114016196344537086538667127169512877238349626333744676193248116605541980743962993554917233513545354445822489518765861233122617112078032317754800131896557915399138412075888673484103971459055660141432363022767262108140707016001273902022667922139235547162064017359016201504700307117243273788632559159797985475861132313827504865899308125228658455539595040705742734481182266869321046288597071232992253776228589729247848576104675571284364659324276720224047760193793165283794523912779998509390864020725114954128678996493909399665411399797557624324059433110207726426827072978171133886319894989133248106757390789794247346341933256639850605160590609397842993474169162979183595004400106898455320001608151177662041314663135796551787934785820472794753899057524237595271538514932293189637396317653672168927314700383088307199443571819080353274427971339050197925330240591450344225212534404148444788916628894854139126844871554196481519176635524207414009103818754203110247242144858407579515730299146421128088883349833569204969212128556105747837905471697797432639982311758914698186869701897369914937167000168513128592992631249750053514864553069426486918854400005302136547253319555435274244907846898854586712430368939127243135504510630866929312468715017704258393112634373507265921450098881882473255801886670985106687337458495181581362326316720242571753965700074122935768581650027510864515737255333272572168220775271554717750836737673858831261718454442047594580075329496999903227976885893817999990678368956109959731908662555150516877109639668691486999005812046002052267853703163956158591624584745142232131217611127944754240514723204193364928382875841530722538995133837483684650971627340683108329151767222079006503572831167976655458376383229673554204654422493037388286487666667214335803002008277675536192269748624454255262168800823511444113127599085084755432046620649826498009807399627918077824035435821469910467099270769548749001286764645479778351912891735271266192903025298726209221718463883196720248953576381882694110453887027103809850960639486322134841715345670480719342496633491607762177873951296305710956545160818945460314506712140274052720652772088717667692478374607068422410449866549020607781266473396659710335674707875471629722807526991260515790800564571100999743370254882276615916339453598850880200233629744030288368407990503290961301496156052869228900746531523782596876150175374676083375997387416442796361768676883502217495127015148172415339606331634798845610106473473193645006844435293673948088707586370235861939652613132091904608608559016928635618772798532523474867373935699245909716190392810311381615044676049432011100658499801843931027234996195364929664629321959866952628545855510787265701811297763141229425019193723658888657710556195367848355345103427259497891328544172035775575268423460008633048110025465012208979171561380692646481887230252583210805693938409587806316829082533108459449465153761373666453426843755368773248388555436128686724887945112917724686656837138222762406801296254230714148822810613046573654429800989066975548790978403084816590300960966262489738490038208558145164454993989125262164668440566940950387241154677456085760583096615721767655448412674846108928591129169266500604404613728160240110788089594697867131756377680921626354623973839539859371623345905675039385237497514536561392723343031643022030351105665246168259276099015179593351946722371344215172565544806349400653010004392069519451653353026369030787410645992838566332444029230976786506059039936444579257899891437528260016041351149722730190317752793675521400108314245456029335615068935509793629825592612311685074608684045927966735802538835681439484697657950240939907362935098086170036432536557833945404933744248871514418745149651222248013810749011638365062065963005950730734782518727979893295343425914202528636333048312587750817698085233053085693402732063202432424317141210525391478994961875558974358487221405360091998851302227912703946118304175103825296147094677819643464771077043394060285734517345671562391297104831924118542086342530795012227480063975518689988403301810165980609374109776763715788429131877162925787730829279092823698588497702763250380623937235383910605834891524285522432322295510267936635973131525654935535112682731934480213214613359235776177412730801947867167501145911148196162393996009142525492927482965304947594043328318693097041323914573517712935543009700236329622729117379053473926008899145682830781180908223510931111401394505705612812547362381918870289158213359683356449827665109935472541074118422609930303916886238486908609590336999632873146520397982157336364724918689582218453303736342989846105950514150251113800650286037182474947425304606570014840975873610957544849842122654653199772296334126257649187939010163879170606432579646544787570926917919689289727931581032269571390439652546536479172950113033817508433975284581501502981132675460936853511042266544994214508831943225464913951786294996855676472560270589903958131924717882799472799559926592693451381957140114912460271670579929631750297675205074857696393149613249857800053479198179298889958043979280869130724882679357786714395084061511792650614962187901701789879695478041872537402660691390504752454470243298150935420844134958236649085782737497294866352043728851920898258739583266071810280317663502565149896324138309316191746848017096372297254177825459396430241702847272203024101217966339740729714141312639383064370726323073080306128635387523949580933410854360528687036959547149209681420686818011928612649648864087740890055981973311019299663051738124082082427399905786846472644685599554889763148952849007981630206519918116761792399715357646209245863638945636149835241069707871240665335417856918680254615692875693265641268624961039426837832985835360028915084889324481134221281910653066580055415494567265098298182644166748828123306194403226132799868597315078462170638566929500266249401216183302375271315643637174246822720624317099572522401584028291036105610939605106938083836882207264294343112881101197440435876588511538662091983838575868327637213033362306005258936140623608284939460840590565884644932538954051889296340953329812188527881947131031015989279296682889003610345109901852570553882122792008929792090518611528762977703097704357249141765165291510028348061115571613698734081131984416329185600684553920990110773616959964689010859659406653945831424950421744783575663662180136533350001569895748655525810002134020613727709398113806664320863959590229345546574890630249298266612043478074636525980403313006592380005749185468319312227210349758917162229104875665760986754984582498211844868093002249374337128241994193785396920614603940769280450600916126013451875648666707245746299859917261513228487954027923917485376999265362590347197971210916328191375394437633837756099684570519695482863061866436448030804755217207895274375183293531186279803561196981403845982267228597383656956925649523212151404807138758065714279477483335764074667903513872315590139232914439915008118886120712221697460319028207272321700825967151530544199519750399897655399241583648799122578611913437265686058900827383208822028879757683946760513736563913745199665541452069011923708208365757969587118768127688466666045931216595486828747063089678297510851349463381101358451981870785688384559455570109627206874326792512467701080932032494245762403659092899121619033147480934857568241727997841301627560944715205623079476106159829204021950548398368780510716460717114587485600322014993011373836763023102024454102403106645431677430710824359989538755519694918137421777691063548633359891106035036685843075720965007962807242351073368592207147692251832025889801787755052463880127062912749590622919833567135650689516521799844764260028586692246141070453577603417776890694226461838000870686890011982843616552940097065731138289977860780640402864691320903083021779402936640203147233709663175927345733090056831837036261200709147655144912984449809392904255180409142288292558832756302291897378870327103356223921395093992675426144966071608395736347819861514436770081390373350783153448412036492913465799401638073814933551604218755372049708859427056080633368878484677602957311209006744555523534133790673112996915232482279234549342827416167126343844852903225770689844562792447710025958473771783436667744987920346561884632481199074615395631730455920887369854134645861202723564472811292602297647817044591574732262976025693806202165446682047384995733908487007818575665754789394518199128247993515990684758307656002003770621847922917932078740174123963822941498472217986206047267865350233076019089735693674680293623311946928414199736735546075551143640264050000182556841903333855795151541117106988954492154516952653753723178573640755893529806344438980745790266170140438256233324084768496475612888499672840693081180893115133450362784108525203084179969970346148003523211221772747680402336405279562621087898330958660823015688613468939322809331844543265737721405394253373745260343873323844802073740952209523872364551024806519799160926939485651773823090022036149429064394914216140345830262693074334359938576420736728669687889919323670696136546475269718391317941590651107261979499569859444643747202333856045847549521260037896046292549604760663309045055370864971552787358468936727329204895725447013809806570971363023177049261116417762710572526397383365582059259628028749798840292770260092371875113682118496389325021545602140598050535046886976892426913119650384963796907766834305309150590446679934625286994289861908876341068028751464625529265170221337143327008572363613114602718094669471198443263465579445016409460094396972639996204603831861287130757596080252343349750273415758487270017086471501703224070614990348602972275729031394301181560855800154633337724856959582371024890056062781466096970213493364921651092324501614595088013834700402627735750676193487641897751487536594350573504228737354180166470361670757940508625006190479934761886220486028893432829417419189647020015918401582437261850699582195335954503239402108556473929037388745617465437463091006868143903909171770713242819134346198987508471867148791656751837356518501675049952056565252273726318978932008618991419876302672651995127000491821787233199443798015965379280129170313244262229312181179561943251713365418107159609063187932652423716822321576266479994741752516864618280193991939503972988312126649145055844155217724305175121093260484680332826168384077114810692622330951241483242072775741357709328997965628399836960574665869632699771663250430766143289673444183738333320501060642443685704949787890145979475779212821550994631460584921518213979218026079734861397074326697320339009658730444335636346222309726016532168753175635781245578208674511433259636783424971986692437688878285146847734730576376615235903313375603984831383991423203928483759573218012195632809804944523542361907504974038168323618337620428047012438900809652644837317534229802474680092100946788384931587569363576502069314626909131624824491791542197028124011402202135454955966260883414402327634256230954498895204498035202594086575135730444477499741784171178079033724968423524667711811116699010018638451340167035180504329374263908690441559927650718889089462864715958224287609787914947238890377531274645911662089949148814607718680828064978633700782699342508759569244785177278979838629147096442778871264297557999687454422567114014679756344374648262666836556883112499722320766774857951296065451262627301944277475303110806563059640927419115499559553853640667065808939718262446914884436887348374772709856537183832655454643894476475699906815142834292115151508847466760368033584723914571299641831356700342254304996930928596306660742602889566666973289662705125441186692851552069933677995481899776279242461147000344713385696902406047830985766215039796458706825985969261637460786561255694835248952370718427617187673850901400133019571453308284997560039473492923988986693890959567675845239356681149098824688986241732494276736399004758604213771099946815017815391885076046453880760916836162237640278384491961949558665182947909597124351904048532300023545144985130418445571951649496844820954658067868762932089905982533985424879002394128664919363384745333454635299743880583495070397046838572424560175410255856185666699510709536404158448940645321860017486199513078540280691274222991820560771725858265597622340948077264140532385618754035141563023122434844073223246035403859377043858829099984856318629740282728325784932879655747594332106488015429318429007775574340110127126160748286082412723362163851874504783656136025088605829631614659387941086932293526272206446272912684182465377581309771973381699077908988945336284223226537864409557380466668725539800706622635000427683507756917507680068138396033326767038039498438795608428499094126793881459015239438791932924764148263483082393877892964271821494201055746739913693992051845236805140727178224552504966112280705645144041103411424684931027970706051263993681275569734122962213959069546833786471670876902590650631370929659716759475358240051639103015845176250237355551164644173592742609503919453936834314172190904383375513891096349281496766882765100418096847246189228265319371212399734869321048214651973776202306887989184477326348754168938140520264625452009255461423540603102467567212441458693836560184541927611468649144212462405820238986416590196892903948947970121450896874269810928360881585927229544375538979599109821532955665855560141808834617700488405067072789329050319498344381288374326890853378787010199656490776634555101525233068826595633733837751405912861474774098216614647206225802538381780969877423212897529704754850893546955219062658335341642825622075413025179615688848398603247412436912329353167964340065954717848395676758589296268004215982193133018419833278686756038947596047875274202089375047741326772360367483791926466615079459230109847948300320324307213878462136648554736699073300028574496515071008539552435159855642320171154028152165662148947958963572179063422317316046877495017587112234963865065179913742716268484292138884842433125315611988834063733153830706246881681824593029510855328900309405125526307181854836472399195979780773937819586612313439330484871327172051272010813993138125269412449734199754276752070267905319022621584290642916456731631830727523721728670592626089721356135637603636827078107284317692692938629562583007262226088075462376520949608964091813070952350497613092315610537151027168335223826810946780612115744090418521649568964573707891878134820238534916180108152813238160654512432293196306746000346192489077086917003312534979728971100463679079562408786046796669754592062301238897954827844250768608201241122833265651727539919729909021013089488157037559169045424269237302911310605365460166706024932590430015270545814902965254649450399859496682151693595212270253371040986209436105102321414051235329192077178135128221472439126263482162651225119337792458853473477352308405210020690378586088835054781682621375403587079560085582229464694330294174806299596309410435100878039040977560644126775898768528966879784740095622348833975826266630343968406825726244364417707475399631023580904305532298352696234720250170166887398351481537591413323523076690115344196047917502487177104729897919051795571961148191226918639802969457552614401641172086536350857719637684352811912392996520237627989027063413038354687756352496926216450417051359398760050218184151017929624602647297918911929454304903809994941432083980869656012267745905720587491572160613817925314426817579606870275080447414387038114573106629889830020196811784340477637983626700687827701039799122632950627719441771779104072033526616098084385431762944832473629674147550258228896025120581424778326468197095594843320087184902581352309294130971256174350203567048965135718151014099123529556783672018832298918504836462976248107759826613370636331299400246891553466196073683265396079734424875719285606917169567496449535336191244137099315713755860220075392916163399515647432342503313668443163803950758059205916305935895712608208217608515069125208432558160019387593858750176729598907359607842738757731563114906980648899126986690881564921214088562094942347360473981461756046718297560201213387215786722523287300178926229818513684150422397364222368406678090450758037933981744505254209197016888506623076968223645014225828564643914289544739194270867577521901950847735439657894385753425557887095348453949828029809179013771400232303383625965564091621939557349882083096497734649902569944447277491900172224928966398090250327155589455657390383492345863653086432197612613481967174862455954875788017505484141527274208488621429963745581866883230819772550142261252024661933125406851197420803623000190694984220571037127474849248645533075963690112677322332411514894272795372223250834272708433346185975089569312546453235598024219694738063196925399114453667381961681336530260618475962218703594710885643453794939179264515114852031151253950772486180072271508600132274623614679088531868735285425855381174161394082851601952339628460791296131862438720285408065690763300949605580660850394759586172118491209424690959368935827578617418625134823899345077637998652016281270081337989878848595993547667450153810317961133491481245110207640590760147006056939049150638137293292774489920471911402806744201152857079801792407834547312593506518234759216722612613027476226956691642280243342353280162752096782820489368717348393961811837875940203580766387798245067109053678499231866073877535377111901583840055958149901250287693005704135053837770380674477799865763848403784899786327568178448479813440571070386230603510328602635434923938005527622837418873188254222393489621903344027509886058208625080088848148338121247994106070846437946303469064116620789359685127095656547167845231809539186643870228839402870739825564411346561428330094612520524365404204123120180089633276955518992352276754486313207482737070234976533807233976753835013156831028426457372784663610658851743070866001294659403116209839830490367455533751401814450915562184737604302870263756913190357784938477781226990781400037500829798390933894988974953639918095210471021941207529728177495076998598058590408971381721638585083052318520004153907825830285557465557160491507495110879664599009077361874392570040297547708023625749863036554546721542460619177620932379262467348199845008154097947820909627525373855048636478987847370129525187370720398444918869670835758435897823183041974116917893811656578605356978398746358605410582570682989673706328325268397705093013768496762619275275298156690983641541480990549337678126310317786982151265611571631373352780195202095601876482709000335266907943481164124213328033422231187496509066395526577282605395377131481842850762824679380242838499458885883996342764649825797837242140494789917118090586859708096360675685371135131707770456598761224520989888945781542094159855347905054587005675128107958787912552448747751458266493324367910243951205754794790777261899247331101439410425889796219187111116360860948364518019171677713240900101754721130395800633044941513427992256128443336849325183761886902950624954960108542159166410718986720500287855867965346392696327841204051347428725271820365672785188068365154364486079332158819228290768492862269327982741714795512787782656583655707220796251527075840359091093923653211849375405394496083799547129561094702907366495016023933659550469190751852827772881690388129267164746567868853186068729790141500474942126446004804321409291171452835315825566904997377632757880017303667463576682599072937134188993589546718664767180955699271536771149645445712491501711592380963332523623201858513228183628229371032702849605496820488833218933267124351789814439857166803233064074695379183557092264034653839014906304642987066663026775683054850088004004611712278933722627368709295171885876733372636961866480507538213236855576830698808632141465557091121620910367003234927503591748832573518847679824276747168934676205078040559101576725753814734456712512587084596315349799382437056109979408600227730134860232276884739364780366860447491791269188848276328531640613051949703180816391898878556499605676340400584508859063199742402822650010426082604934927865628384221594335891226765704326560900163449717596220772641633623566563138810271182097096724697172757500669727913607833638369380887390110931726130880054768466925080799265898033424469640290172942280673152857229293371392612766354970981672167055106908470326287382895396397605669661203094656908477079838278047662348591012840305789422359766942204513966560970089462896107340550254584905324466542794796150722197832939959890051418590761382335780485644594716579516257283128151822465071635200937656191164483330447767695887321849721390481058304401854768719224360737474253838298515366479946224676777628942879803428977303297024039012938103602950172199566034764153574595965798938055180009654293119306019331168538233634499827015537450374929118433773818454544679587847384958782468356491994123337117730172299864866737056319658794070166911672401594910375709595883923298956179611998736600133992355342875319195413479313310879018432252290602308702801969844436456169065809281342667998962528171770877031530780477261468477870407727520482614528074059583336960253472410935126069832654947655968298578396783575667398179362596392460550516222166945104600595103617653401337375153419033052345996434569590368253859070492271000219248087113100624409169831352812143589144652328981042051638945370316326880814875450738122747812562091531284154211028929646388965115260232236925917348724438980526032945598997546756233664814622672701769856979459980446141728534530085721495889473891405939451802844293623643990268729369737594089530179654467019303366059998360998718976144679138688405389346833117932058189809640210157659077380672414648736179111473308099295936871617759896062526218706747332187787795169914947149691984061404363845338124962723317032070995783531016480816261253753280881223702937731230594623061645167700872476551106592137309651291129567425045723658400337581700611709793068404308524630118070173476460544166282313942748730291611589512315857529508661309596862008410942655906924521126030523820164915064475189493927961501682673833943535042622893987954614808299332701006431148303926329641882030179575712244205064934036390204132887822707092913893353691966804051707771719015812739335867153274850061797742107381480627637822102233793241750467844744260491215234308284230824917805893489562209221101165951551020973057207931947057124729731102531017304385755165894962924198533704507137844772873691364105693487294416612629795777299778810097618231483759711881372440198482132063167239145802507866013219164016935736627214832892746526843444854594307821712556815523896466398283568677764821430343311490061014374817157900433545126801829297220869738960509662203313728821567555082418701567813610079379986353439218477011170887734060496779103444025300027653452088135799504700821216244023275485576671839150566276579678591316484446831402479527903203388640391990502505413985399731200182926266222771940359965288265743608189562294163251665060435013908510182432762472445639114383251714922465095903334337896376147738936201968658293384809448505310439216475259652454188236633407064524937389105541126581780951293959270599068158286938369843452117433143164526641028156269701541248836957747144801149630190620920434424303119978664548871967259207355951032304281994120497711740392956661767212803510477326725791280010383930382942019910440635912524487868769093495813725329734321399161135999939578927574675791512087772587581333963228981378456191684967861606489149286408432096092723992289535309338147239443809166530481103792798829502031426519407654005844245214161173454896935232843407974173110730829335503650913090233054368151901518669490312125452937314789343554314460128242984802234843314918434488017208439524424972596483401158326786341519855812576748934195368638008423367449248039177572243026812194784827738519127193649941500229920326262601281156476448340970561911416213344026948614053194720099318099686535808160460366357469254916683998001565445132891785786156270416974151437680832073919482850702818985724770592392080749550171142299733426160754300116290709906709521591475627805451992636316743010746081238587944579884325272842003175613216581683145113600978989874835824229667692770560859843058237094924802435267710705236001674836364301057610809462452215680708802904164327113259127130822250371960289244401499733706079027716381617675707605556508216529447305731138133626476239996485399529048130912683693367248179200153961356197485232766141006602287635332144906231469803638231556686589247749046799282154892630907161218764916004474503887978307876627027490270277315555734724438339877844185786600793874100551021683924190702115756612573785506856991951872623112670855550186619052169981039547593232053895771398154118791982883206586417761395526082799930475548126083482628873091578137675000636992883761614414148333432422779624973438945949701385322057387621726996282393590251298926130688193739428204297557942443824616939426333335643950422142343222930419618680667438350961258715187866044726175797694823014858696584053042914271605602037363591896448531545871993855780577200734347547377345240616467248548828561718667040839128698418948627986890478646259625444583682612981060023299822285403932865875985907603198219498185274159448909402347378385858513696697204681857167102554942221155336731522132856851418882011027364942097915508395548696910488087158864656149580975264952681581037218651278954113969760969091954582553465739942367186760358749211833383129194104847487091541509420560226990797753128770985682355286865820186084499926791701035056253776148008128017243053648675375389069748720239798516688225787756103045347371116505846498095959540680628389992407224763882290110107960297203360652457882473356658192650929897253818822154709570474865603833367409690758107755895152662146182405835390927395446656995773023982477969558786685931376359662656447867839031537775105015400529456630856834317956557655703638405299267569674115759882080750187046884480430806969462103942525114252276490194977294736212397888702337327935308445840979966525431427212982634790859399080964548166915679142369143487231725526055282276136402413829199171135814481240354609028185870695984375479950617545406711278460035159608554137611805483056143983782674106536083973479497044301888483916964394196339850798340907780170577064232078478999670569237066863156155047426206897004179743061632282121890803768783197382429766842126029025690510999945255128825203714033422793565255957768743609105154696345327771648130669128070833424711555200422207403621139333274036726828441896915785220311172345161426472353088960080613034886123221568138895198305467883675359559528232489746867703577846000880574540019729924295371849168229749277495181876235153301383024496914916017811084081288397918096686427877480155488570408062881837955315046291613704711948869432897219077936680670382485176432674147977300373883619931589542965620912445250993200303289792944945498033463445201330728328187074110064493262624871868276016658583241994309777787093385014094012982529780357222640660906120961854081837078891106630453956918296396079583705838728214475794002669684701607059425539540134269791363443919848183615251088903769869648046022810365845521650952354311777088286649569888485080094947843867073451456556577736072707200545834253766286485121484242071554289275513238839176880425766944966407751683782119704044445912930387448025596700600678060456822981016988658898578660704262031174539066309193971846585995312462476930291701988367292941405970603959269072546660503879960816647667084134923487019940729737615949219357323321070478043740216388566836001689529790812376243639457617166008754458588875252548283371859937927141018547054814300065857651697065678449499793144611168018309141596250895772209288919037245700845300900033747721542813849766456777371257903084394040992241562777419615562753582302866705798539460780750013448290120785226178669100013785411198082047482649136782924282894866283891047152618007378856238206817511869115556761211196270143555132916339413447243480919272386757079385527401028215507953111040343889085401633249737395573462797570730383463284277929929542872823499857085779179809040855570253160163827384842656320028847991188587064599755639746038731312545657199836075826065692879400003249068067323921442453652596955156142121618629925556847585869735474181423082616538869383742979882475378368441722597537159265605465950510885373573757531604982095056455287655228659430629343285110190133612286009112502717844284976940990407011263688619776229620755683570486672749108752345043481973837893885484744640085055678271359886355540993515656230893712664915149362109074775047268348958751060790215786941650021774447691186823563062740000445381593344211035871656960804078183455416799661465560547407275206462210179354164386951010621582906240592785780220981324362359241847256351897643714372560781406657389237605255770968464127320401074347660910612243029790510535747623506874374958399080999379177655220562017533809120860362151266815240642256588890362545073931196386000860921597440784662861584386320073913888712550708202955150086891537618569994661293393254928108586534363273546135889710437633272201523053039568987493725439244673749274294361533027500327534828005106590370042741582221661956349700133483215132474628145997113421203538768575630634160917867233223809810531957484446314195849016898200524752791506227571731812195784284572510939046323365014388591286602056729898979016883250204472968007912212094743634778203566689798775313515714868346173366437216288327239589163721146809568367259515177987818728351505881701105370203481072732216156956492210619474683530599787813278206178402760339019426645321175008761929874231817123616878397078754889960080234865818745931387022003309956666652367436550038581957264015366703848787227878897876937646269736001531263748779924769450773083601677699673285042013006509295074021046012762293725010264560268309496660576035993544448148534138700959868428390565456179305263499340928654634474284963116911420599053111803104344240875245075561903286417989592575028994426620684867847525307226767683626590866063675858996718448510577047441841877769703978914494718454807259220230583089383506034593523211626488033613638990076978032492951907182823019460438796395099023199123308181264493780058859722639315334046616253649074015986608928222361998085745637671979802282400902891764815561048267125890785761267031469571335334474544220300507080248941477319763339652175243907904645254786245993385633557817915393153280406545135060996912565959965055796625632948498051093239958960704668661777671904759682790204251918167900152479063383868648393381519554400615507869824865798230650478491382681132488474769048101122083188292873559871925969761543930215819324125369334596237485059654825326647560174085625279652340792404013284551638857416939309053985713634129694775746623895652378012502249309812447328848814351361883990656724555165337756066278851851981040197842864406764169843301474161993239586570764054167031228544381517765337220173651474809053531068311949957212142390774433611278016042908404378135015262379254455960324130852565778801937785398017333942800948904037818154704019936659751349606593796680727837764948369384620572583397368540007907389341848804507779764038371130191282730359504715755724725483277436325670263786897194378040241376751574267581781164625683536920678389455373672425068741318492564692127111868876836418193888426718002060621467696443463856172882300350316050694893682373567006147593137977464417601836560033022308403311738509477194547034474810195601172364505833476340249781841145210631602506091202413758660917907879257485428102774916873021207937575419679842144953885505973396710189834198137628485388506583814775656297011080024226683887616824845399633168738384266353179449821552059752220387702909864712275962782133200025979818945504672318027945619692267065291202129533559043602278144263881789024608122871691744893240747986148965981958255128706188424088825819912530518213208599330606716820022601250678174190800685683155454037204708878633325904669548362492055409703618774285883901045685028649722491477310463372619478827140187140545592035220328131788347340570021394703469924313930454803018945986976821833623209898476299771842651818611770095560904482654283255465325743904357378237982164950271714246737472466228435209465394345391024706175106592205692236397011763701506234256788187992174482343567488885898560979853006834813440596451886462990399988199586571133947698700788207320140148911428014980923550917236981795996944243535166236582891737975560699736440742546801477799015980610357777087582266568949280611694045117761438195356115064545668742380650036191688854427074696495944806099366528383355300550159777752047000064143689653905051823122053764177708511431738901814883576729354596833824467045802380421878130130871915216559763036972294412666613572110515690362065675648955171284562498680417935213089989838978924979758368542726303246662749135536242598781768729880611250900454094222871373885357442833096154948266202476111832382553992306714157171516300915221511327569991891606917840150381261457462026709158335068156895544287174154014265042678367766648977371225869713663001889607574381917271296319352495784393300819564916380573491058413682537139261908770215052830503180042264503379019511965748507147277580874698388655378370908873246520090495643602784756581480203933911207833700975874557677820431466219782650391981660482318029404874378042281041692359652092842830565932873393644042671175155072163298872099417584007881585703011075867334286783234350626290048169774158976279683927925587260742885529174060775932385827499202040246833999579799323494586403002929041837642865814941055799612236842760977304188202725360463177424868727812149795856769876618343038100203126155156731584378387621121957050604973211118784731143125566239001306867502732208431435290355901365200838646523970361957517926059855720108377214527416315852826089478229648069252469763620695952002165743481553867957413382488078073519827890675643330515745584014432279036255242483418175462838963012939060219051948327573310404576449569104352829986873463623824321479785151543179707168124359639466836983691501806208086611276373191958054865060852047055851758579142238417373397767237356581203775902335311029310933801306447891569407433207633836840861442097966986734455569041245066609019819685239709665750331695542900896554263348273751235860292481596674903481798286329390250109437557947668653176417389515153321728797944606294439055966503104992016054124177821497540629784758484593307348918217903769178026368602650096100037360232874826570958892267889118534743274140226125933481968833781576354219068484506289309104770851271415551175903331480192462534950749611122718320917076956832922539827603678214109912809190006148934080487349413520127702191805143637121970099880568124665420149374624319623746757389465481180052645860875068135598042147424498156810380270320354266760913078035609628517572581337665788127383912252470720241970642273353843987361934392688626661874411380963586002588862645342344246135423967951354824675332799889777448544734187903079316018093981273169772526721123670157469139808420619418561340295506276350695815543589003935988999615276546107235952469819880726983469269963710111748111857384821755889958562947926563574358851713164070905159097562048323183287079695170772309907804778426797311877966256406580465036566310741946983947073674772136137988798321670994264882702199904077104146048708385769505068884705128372475955573571884174678246113893229863296491572836386540470608019743773674580597853301865200234047284596888964668182452619056371274145907282974864428679563642711796995197680816578611637520176313169833235099019043466689599329018791341966548249803698536671466996718890198836831117925068327451893317193428800907185935415309781512540550460069345926243664360993304697610224028495386054970313266236020833976994435715223007732084944665345946908722250251394258047939647106217720339083640432109891093052158385355984383924102893671452333144457655969879745134823845014719023826554487135654706835749172737275857249526890873212920263915564835266558051528473229516452230892019315327181021897204545242741716302109867348957372241507557862737442406854784273095732011726431933809132730178402038404668917958839704001191738940921540381247028832504938303442896916025682104281372836408670151138596445540649258519528391457640574368229742330778774410282931121620391148780602926478588377596700358853984663010553330187599448852024351500218258534494137120997164307229096649498404988329433682644464673911656749976207335659970396902605240866297026883849442086688155291984508763449881662508403578930013908910402053248756746041967444020608543989513346006366977927226885238572434765718667330842764289342313533353587481046822624407775908885823126313814410772735937277372605265016727071866575829817362852516729270598402312150643011410667834379507513554805690739487287988077776297631524716598921726153591306924070814331904137094090166790077658666996707945954446209117358626682981620271492212228677438736692469432307217735043070627136930891199955784654989580074474122916762352521262001670494435517137450712889776929815900190804055402703229664437617963748378761760937098155254854873502332113555278854344667871440473101093563733393171440583999418714021160597664786233519875281935987209465259540463595360684043677863216872148504683335828759769366150774040417806051035334285715033284228529520016148529398237945029775605479512857292487163253105047156243071346577026619839511261639605256938624303967228770839586086420924240871325575659364099063555934945930225990585041569539274953373283217714753217749624944190471747306452027988875165461034089817695145062692977595076571148763290683992710172543200734407135454298384801146682060774393973312655722471697965233771270592770853025095119929761024935569072290934607242067810458057513122155149220521741430396954561490537780989992618339002410445253331745132272061216735450951481199226021816700886815971752662040255244193152507790088752635978513531809919960359220284100508833975106949829574164070183584336622610006950711639821393802531331472102190008990891728854163535906357228003159532093528604914594641601182807241809718706558874270422950833456194131560890824232725978410840355986132091321883014645639542298840158002850669871111704743428533116450263754422108147225665142213813339345075057124170922702513374857570728423045801045669438022504744882875773967361569491993805073085161788235312951775044154283651892310973280515876617953257645533949528302255174698189444191312830433357940907564283797510999543061009983634520703914672987742568373295678416457703504580560434201857040598879808259600879245887146107503073447621299145723500850300623500329413717934413969587761111314394177141423284204821658093908620056571399499423265825561632680288815148564705820201477439689721354231405518406318963594136752323793573176236222955802690429466541014940533821248068476324849092293475657798158079768485014072089409258364917367570684058603045742428025227564387062544109566559283434737357282738725783111542317203539353076775216579481674718447101027831695657705509913708962792197972942815141975111892393064805936578957866374207301605104326722617975624531041886017795321760571392430598199059989000293050716590107951099516779291088474579417486833274168805204596778307043886208376816065639567588366660941410319031190817909094216994068889684508239785532459344768021509942147502323342244785133796264688439093414995410771512535212460205306664705198665176903163346810634825581818606357209553039589177715962564777843390322503702274875968681782280110673255456194490659081638242920529260406064144294780078377279832023395596825126002229319483819579632058259785675883457851191402556477805341538341519251349295924942911777731153312991389299048485106734091399836881172760655931136939677870227671807923589284926364759738701001399321527235224724007706899364565542373405453653156756494235345439733046629579895711700970130394243620412304673882056106923581592384047505976144626977020044762560082756804650659195608850249165819134820381472001171081488816146613594075973154452131944516981071292546451630352924267248712932666823024003702170126924103593028418353761390567222093106413871283566775030922054454570904075258233729937399046839361507139628151820982069270172855886947875305909938770554069727107552168135952992373252850219622524891508662043771154067123102106443416038288336814941031869517549711935047298385037729081002527556343586375299673021080550396894711298789532262457253699721147806982942820778593063403327250381394181333978385773333505189482282450086997776616478176982598432863571240963192367913592421757167861048222618545003221857218930888624337493984023079201298943251209992151947724253275421569354166100717155274312329426793145245327224463779652275209990128288736894021487242941122069725145348473569040807555535776486469747132459038667529235609202234073148132070724717275335401573594557511220922143302981575539548830505540263730387062957961771059392852180903973196849601129280595113725988109409120420235780088268966646428675284153853558281995991959929627541843826069052761736082227291856658746052789138164107317631964009115363755526511848556454381583220895874614028216890699443069269863059393370773124628059648606639206164916679251822935181557066600980195665379790958947033662868222131285759498114634769659536710284646759639499538299262980963906660679069594823855983052097311050208033385549854195512186633366491129013530903212051632283682930657919354658506422511050074286410313098745483354506101802001671189340886175836718968065765280952904345819773125738580880430632557645287869861843944213037148318751484570853315032339625170565513918892822748183267056075769180293623175539448750113322334429845042224120974972018500373892640597556499182539955374687473053832133295775226282784877530276691431368437849217516812836681039034010246113935910115252195992206756723180755520776803607998763066203687729668924238107329772179027197724428476274612266055781072314929342990391620300538432170076901934485828516684493166209528820772844691650432054550395461768163068026886389348505155827914783526704834733795013448515762810208574083945210587406545597076656857630979743066859205256702345561237412827421839809416705351071812750596205340506351914747135560023631778617625108882923893131991096670179887267407257076690603365167008305853567473066382223335676980641207594679986114187617189454961090492760185822205349941765753526214941044555356549669240050343365526465454160154827364145681236935406798508223853170642729613122851531934801287714157875056567815465036152239868189042155910321852612387105689894093694258755293940426956878633226027988136481400244107958506592973280074643140489324251234016137166981106773177724999747959584067160131105799412522703019919721406421840162861187933394537502613337267225476414177545594602381704298053019684692969555596682702751293832157476247673007912667443778476368820827291667720782169046559171562263373939177282394850677001488373742492165111746724303653260079374655007167988167725833055052814030124470429754912350735403938220087339537034108266009866699747069694121489539191047054210781059604117763233369841803856676337783315888651723113640511700829150071707570557877552171032036509041698014102282749299609252488846264139786593879927748207188999184956035235036000463475792796618588682544095994188095872216382363485196278938724136847654797491564223541298561130875559005546280273296991051397527018903561742133370229351778017350845413567667734054741294424289775735687094868823576393409883098131275798104486744850594651303509659726854480649182903685884849900543207655352284834099610482091796563135151022589561092089986486805262581023043385807573275946016658719126446059732147206440440348375584361947451891605847640603801858960858060237303010634208159261779913493035018034574086569422737359820663654003422540232292452724200455366565066492823474380489716599196064618500789119297307762542690036155084776588217895583434527365090933018689985264062602925456950296463222041292131425128900665690280763772460250538458401901121093369121612101202391401530213103926965621835431711284706611868066761278254895094436381170759492412418045673017634350636375240372443906056201722785550442290648125599337491621744424490619639290216290118781808281913175968117161047486145439711278609676050647835651425371166414945803347072115112893668779019059672940211711778066779911517796942931837946395248205984843430592450600894268179961993496788345788807083775567900025118959071289637650292266387746852459644997173321700363912460646050724322346359396159338666047365906455042064953725986434492288943081283261576235017724585572642064794364669659825311620603043465029562350047374939660001148108086539550453160677429641653611159835717651263923985378744104255830381587216937582390152935943307776379035061602666203644193468572346876197351369112497156643492312892113533298630062499619969064817663272959038022872524919422425359221236393105085703062830583207754512794242700210898225439456308427161569367750249413518373555667555391855970389233906572667118767616911286299313756764480790937092995001202027656823985466513442563950232672883008935740428647482047102094283926285425816246895187534883080476733632432738705213807297149500175867993525108172525133974118297843267768201585091452930328529382647684912091002173658934162445035410929255472531414524156225585481657911820785928447996003129101838676873933961872602895993755098580799058638800863583813969443489960497421555747460587277502360754581561077048369085597061394480627194310268710077086147259007164646148227734277315964007137621444244356945571344996135952079662926726052967524362279312707695498324771151261930393878796829515065852221637632047367041072579176203897049578496566898862483749763807626303099031530746604449728550172059712450519827347445601622880954379817603096418663296568379327616674907994510320080063592453109147536138700812556049598096173916292546150658503646259897047053135412550747088727212672579337419169991583171294263185663276447634100851264342666550799591963540009057455220599899657144482061152378942877030538045095951404770899437636254777200182820332499810197663715597681796396205942405721432251573579931400438539354860572311929098049477634451240076541697369068858921776701458350476208666734258835113768850069497671915023000709105428113136236578436693630860854338402300996114310390519275075547326086697007064649943909142034190589068547589258233841621031359684558756305466470851511132641460784508312098041694927048548829179507624900704342720247231132693933190453763570995140432348640878363629255344206007058691863616088665220932431365096358328495468978056854253539794155490331352250901080634798196040030329912137164066376038346583627431132427235256215710791990041688217367435501694633153806941697765465642206730363530624398678828633016005243364444547995471020447952775381782885565041811330186949556033348994567279259522140646613430598280084300181958610874596880730374615281447364093068009979338743104136490465155138270208691975868635896210138847538924852693388206083564236972498587036970269420891201160260594335123303089082074816102016375397324239252510711350904734317487274285066616793638851935613882077940483089217787030016456307246835056295232940845524573659548197772794178086187295030772766320599376537121264805567149284078806004719634089440948551179004569031316168184614986027362179932109793936375821201138948835445394871505895505769144246052879437896010107756021175451078062799343423915777552530129315057691587538027655541154751321648172442953674201184860540028526631023926346290901767988605948001811029599180375030874085127435984349641170468573933906118147866362999951154470502904636044541491669966608041000017102575284565071834291250305558169173082161431064642088754296226697375935741174992002056294215567019691185174096766630074544400322673347822257395545607861919409642356156035335029819282467565677077244687007832984603621169874539533584645411718935575076859351259767986729514787142572577206844950988415647308383564633414749256379423031372082042307973397908221800140788444867850197513582752570418881117974634737527739977168379650845549273379313807777580375843098266588233998898294177943971001788972987124362263395130603621628943694165732427385606941105219811441491629534373077508193053232682808245580904038268415212906643060845825198082796928568600028381882090586680038140922543396908679465599976861272508472485533130793523213930333020532894815822211111118534927211687538717503850383849887621355708155635921960532031005760940959458933119726220467684586659178070779102542312174168639840013591519044028525724536313000983631549857564988942765191964287862316521267447448397857462884104927433301685752759527573818566666898738565614301285018704654424786500908223470368586050286958033043965345582134975655018712744587558908785179981123481176781437627969260155085617858781319739305988155437105698290017017082574262286253612583075600205897317963466811966417706130489407383645353157640271029721716804637279171657799080950696251391243468544921999408514941853104280467415849867914558240123084846240180649770810015250966346544052023079996029869943547849982359778675351011523743917962781207998201811194314771062892883720895438389551042639129091705495390739580498846220364877453779915147386162010302187540552585746444652255132034142240473126183726777071602896536096001800715963506831768557556034031538442903048705149040058563414643705059832489725797836717651383948641068717596882353539826936068850562618542019285295145948904590223255318634312494232469323988203936566515563300612256510771556235534692535557369476949233094754727947302732872282067455843137070974308842657275426410184045803612856201702857482238494111692399537160439258052253847713136256661867187238947292944141602172693509858954617691194178411003353476128917789476422795157503038900122033106824969907476508341727565710918497748239125680171819122259884849327696869854810995604372620989754387901072688334528299029114245729718928647567525407999680636952175455231531908846274875336767491181482032332999449967478415800638179841101336846754289075011253518044206771127743787294508738902045881686465981848083513656534125425057013189248721592531035600416872722449484498292889792965615382505707413539334502843267678358249475803854475699524512508453417252968357748793177367208410407874199818792904637657346348062841695210205845113429195348095086250522777468387035492321673317262064051155064803578810791464550393287979257280163865419494094995497977920838646755312008434348056768899482923340490967910976822348062509229552485619523591717009666526297769551759806624954056537556688983792747398778645412726160774906696653504059227072292827825835123704700022792566767234158807863682742278171290971322471183272986255342464461866985802257278653886720839183003282928948717722588529134093271919754135938639929328394863760885466270796395986805373681159824854367762988257445111857521283343000848109660023006119260944683469232345127766437773417095097481016248081277154791480118208324600615089775514522066613596991083112289363294763105755262408998740286589908792418722367581722774119231512425923528072585290658233354319206087229426428878828130270417907824949223069399424130258159311380355698249667426062440921241864410935261210472361207146531551302409596100519011877421523803027398546532297624450130674484997986618220229346079280667648834361123210414561752561332712499691542845166082193710877229685633775994866044829166047479281517025067346065289361260027782587761239710112807428019008369367021490999559059004221862090744745017181082289766492027474370820307403124422563032139875189384920649809717817966340158927598553422738946205707477361614302782425441229794256013482258303865907462658100438141923732172110281199953271284034856903118662414198532350361457573894102485270049382243389586554664118779258531257909508344731953733360091647596569171869896756337525769163842077592554167918211969296484192293763268937079863757321994459542107989795672360308985675531366019554374343029896950481080837558353219891796214554924998140111782153345459218746541460494246818415746500505966912293646380888109235670342344366924562069613745283120320934099217136573966844408816584629106719912638012913244816293085471919515137164676625702332806820812639385883034130855882642286318989409461917894499650730505196614369277595780305916650186211172570369675687287471214655910731016395435560077797984016926516688080232759527145960433258196749216197454712314312889924499601456090790541211216519145381466822696982219474799959598782337451617272733638251550977481422078551327399101614253813720508754437842229934069290900855835961940279611997592160184271508577359647621195423120263162870452574388233258020633672416214090231435204927878376519206331870485592569983819641334495741908015052254077455148297335299941544353205342583527149707773419601973902465434878696397570207782503261154259406867634342263164444558738480580071582760734595503418969183218298815943140987294842049843814143337799828858524362571111963557223169769161739167287700713234824157448060868976398642592550130867221460859006859636554997539121501406468433006693289145329552952333980840524151186200384185047553663623781576948831761164911137199654229956208385230047683690421615075371860488348358584999723222162932765894679671837706876498015525037291245212071628890278999529049318093155051640077876131586402757119843655820974836095026211570278059354221718522650007267560890020772652644614030780111592925967287665446814280780658140177091929917260683635576722619770990896724745843638280489747004510860186283918592367284827345418458633569347292769198319661764553217412594739112218033725187178499720644284937984400024961663156739700037287372292478482973200966085988268982065160643105093277305834091628297683855900978521152939857365945408658583966068802378324598208788078583049277463319327083481026474383177428788075932979873767920811742744291542136988855847255033456899717815919528181905511485192950407280473653142699571277766161254250006999287431081849584273084980885123027568224578031618751812932286439111119861218474208043507171856065059249802887435529122770760616023571855934202718023906674640718764129748544120610683379360078946958775982223790098089092934973480334044003924729868523106934828820037400848440516817865898468103302396362152694900833623569682423534905523046376138006819062223828464672395472942366123255278247073342877816799364767416821684820596572774598178733265055681109865385610313350865741977566501816708314248213310676120108059941064451444023574714417631408492138269306855914368919741681786357878131677337919731617606861488434900342838843701070510174107620709244335747435981848212511723396807449026791800902077365315295733976786691124526599884181811926389634789590704693907190052702810667192029296861554374012513038481891890029904779402156029416827762378826310722576704760787576690018294724279202019390488364868414015609835075990606575953595271750217127366537308864122333553754787775402998096325231300184119443955247482090056426294717018920341986424523911502868698088476390059979729755362748501586953349736202356220873798252787543644778457626896931918052869147154972953592910389698668634426819147947312652877864680344722297281991639748436331777999217236961251812174224117010546503894180867629422171137938207452609427425787822081797249466851774106771892356082562424660441131859370998822377221707995789053697799025296721280312927958795872519901408789983889445530032839334594200017704731888967459376549513215608493776822117868038923182901850738690235748316458698675336721219323981696796629461157078005049826167740435665029086161526464627852702186741936299045746590331984918935412097252223200978122981983558529512832546749220189333860412591696334166228399709145204467981512216679936229995991133077325125478303799882187405381438383660635484259232446025139250765722890730493622722515796642144269012803068686986996327488996312002566502829604565755361748292817389382825101023357056848739299170445475124492050553693756943103473105026245648892589725130127772514238852864710757490393179037263264785963757407430519420148320378934106612849537547993096377231269933471434184444640529134745406195191027941772899874167178790985582942264192466092273275472792755008965246560850113184869087271906483283013210870281471873438849378508989396962732315874814703837193073571413414825810622288474130976020585221358316808079668158128719778173221056011736847342262017816097083124920578518654420965619330161134530517481700633950327465447784562528111494774176127760442408483387399755182426408488560311009852333688570536379378778145231410207091868827730949436202266073313695761680111578440704035687999946245378782091182813556783623169752931081863573122213506303312978886835796723942894205011116462325927017203157577950314729158012975482861408020414238529495929655814937611777628785493164540728472123519927946649024821594790971520960029311470500445550427686877035063226725571245469382331485761473393277344246461703388109452474175793154070498865027607098788648080203414338192373850804239545775793271450003463980865759050629040753159943328486117653065494333261178559990474134529956358374962622333175915580072532868942800206288249433585107122019871456757919889756209772270547610194348477993883164998641054969238248544052829447594843941249414834417269623788146846579846904000099826687707201710114582034258340661424505957823634335751227994872774689358238474422750444783671019133682406373795463465605492154207740732043033428142495760792142818570349260327722784495417356217865738209194537853334523945298156657485097851055446159635534557532703874766302926189206866376647286971979806680927776146928175551167803883451090582440675130587807103032793893844719175145267644497782182594563195486666622300544584653043376087734804017928461130418369463473735389424251106472167488792468526294732167549274544659237963182592177546681906346010483833449482566392316316914556089364657432798671478875520213942093312718841293403663737302926328188035529862635775178260763653647311636412506486323230410183710206396046276979734535236016653280016998484285240491778554926385818676410582919458752024885380324493149420906467986335514814407356134105120603694791269102891838840414049670138857956673496017214578894912057222499762122123036482370205792993024210056571171800615655004081492977444991840625785999773564913891444008734153091898915708898389156220451545456338828896739377086665750048712042434902809249815265465549514380777558011063869925926419098613568116051743700726475457992204392755096167620446427969309529195285103023014014160099700008078811273952230952276075371332995223099966254158772545255375173221280850270230892363456129751370420683650588517793640862223267074419132803503455258494068679703361521876033546556365297302015719707887228539423145516055063286677175028013272408210461975347659998190087319969760819740267915740539544299493900557318436620268462263280605785931812622106657254823144769336256095421225912621005662416089870453457902027488962817205688684486275066566203472895787869643351470408066451374667679983010411262921834904966911846201957489973509889245607762966183804150386663246246954337049526010470920474736962963948086970682066844362572330595034558355029146124061304513903418197396672107968534387406059639477406935941231196316983791840360273667228952897959386256804322558879189589376109526947113217858793361914456560830546296051304601856304088198489390811359349858651274900754895801720952458182323734078891175211371726839272198455251553056697449184842345125990000085692443657120539767353379370210598837086407789502636210994303721645435112736218573021079273840741083427419475882428522694523453438302568165768948514816473228709543421358654846293014501119570694774832468194145630902390634633477260892240010939589575281705842350627048679263909842477379177343911718526446585311796901887108194297502566844319885683919908517679496541507229236270894049019564219125011351109984319740063160198172654375736684116686261396735952869932312488971068371878710370763183176030920741892440446765263121910230846161303783485927267697362546164728005988129685011152270478698628648661994376347213585297758977406090189580055158534198550061058932677814353301614368670688013024890262532104444602795168473181899483528558285104957802952363195660432418276641538539804107413374560093163824767560228061293149927526263225532777582113338981807335249917305510722913644332385262820978907087355733746644699385410903009788489487842151272279978461939882294321920845103549164673343223216194079399884285088506045449988930229157088769725805420655920746203472624496271993363969434788583476730552964153415429009784167573580160859590090476322387080520811120512433304898541233931075294010430394666684384059342860661502746182847146604432580296214026972790086406144428814607720539582180990225643362504966384631219492102591524819338504709117274869850505822551093596022405310508129410942066164790005984460066468842406071245696062299995433312257188274046645164886906022927442558585699146701891978467094759014156853963564342161724512857739720507803667007959900415614428657157943642883324160128611445201638702334209742128067755832160530131335616815839321967070171438146504337139495344958782130836658054681680120480630731032636403088663970320200604468055167626007015036926730703499715347275090915462527698817859505222170066421853742262704730151778358493058497312970497744513883946573395984605294426166035804253321494499516823046319226239781013285772478871728871671600212128479660709175701988051579386688371258726157874280839948385356866836753404293936297823180898929124410109324890906080579055614681953297360299332079677248558857439041766725655346290916563177878762528810773823679358595324284062409132664978752913909000680227346387588508781650898823344566899957044346309756011149548597167936741482860659726370539956886014979641862899400501766671489102157528076965507541622263120890105483973652795039517895525657020807928970401746097984601555443889778905716088151894973003039845022764342505250835232972689414777870912907386014675517055575241442868586969746302266349934581193350741522672297444719557270811898303853831013413724844437412393782016312226689454688557474723799429308928175873763019154363537341457946736574075110437063956856602332921629881551697665665467727640810747934748998704617565749222307501434064776771150914317238855192576332999685417649639295393976025874478888374812780767717752695424785618749700200519146643421244845279161765149753682919579428801305920932891122727248596369069770155582564215672395877878907326404752088051516181245082442610749039061026829410195165769348407719287207106117634073349964764584128741035690548023173235675405179430964868984955093491112193398335558216385042467526986709055485511516676361955529734605029367739891598677804711578690832320745856437770376276394074979188703281319095096174427435553330984698986870170414003529021295792223096577646034474269813624435581270940217111170169425778577087581328882583509467718080470100221813784967324001415233696610207054864798371527878406460886639877918970184944750208192794782916501406433753721810376267194641427389844955252358492226227893445341266444460782706571902261267283216961679021222105931691247473066039057468686951914750571945509739214768082812734852390440346046745221744768550972099555327569635413008524452497748566415018840342187418615220159602957459854119581962615919834401114224206670636846624270461920829863931439830296272090997645892509537959262286651875810735198223582934800000445215054250582725102433543050182085546587760138461560584861927986768727427596593593752686877155919629194598913050296840565019403735632415152894265377539811318190270368107683423207290944445030962431529632338244077249976166080652723486741057537220053746952565063517711531480649402041441568399796341089207254136181360309820132320228013652336577827373422760398781481057068279415727605566451761789719422143911952346524554579199469574335917201517681551954035311295951344637434877752459397158721590023838220929204952748155171035514940751900807741845896030287256775071220929121208347556124157606922590222062792645147864346716136336281443195009703716034353627549951869136593043177470587313711938557047932533081644385737824779639084111853890941440460488833175743334475763155589016818898156418924446711127554654901516871720390502518759687511792245190548307307129264956571702889802536872258771456933766744295776156183481599189321718700512104632129141690299144932174360975309368704695021513423208592930576476853104083550220373292147861784250949478284423986814809159753954750208674961155466376898718962335487489336064317185118139182340283780078285161765791745841839122337752311205720638042532969941393824360889881529633141478741040847568015073505904401421746751975596199831681643492053992056420574525265907509161696247263029851150743387848174903555151319467053380334642625004614213994363310402474913636154472709567211154456203406105943879757890757785130829654050239381640228955098024308780374387471422789545706206369232167376458990066970936506721933654614016447850129250317719917335976834620885945528368821006002837268841667485399005693884321696179774617078419499628911303769282172887211871585699650803403728031350427137319845619770663874939046105090146424419869892738459341651925942528650144533489552271651869746345217605004821006018880754275760481342126348437724763263422187464605610472689342626303190627916944811550661253060611553360232346505313206602758880143061899732005932984597035343710630844252253542797720444644048409570116677372173897417048165524261944427252574940943712489492255046057172091086564218364421575457738867045979904245273505160985371241289699757932804684013437736158138083687700754040822155387322998025028496029855316233832173233967370128728926572179363922762810866764052134768747395599637031875540107360190694617582866623815127824123788236465986337761032538489954688826081273267810509306122231684609311777042973380311521364449948990190257638143693496157986282538451751828698583238627056488170760764610768635109050897104113327088282078813994892719998182610142976963055431922304348620442108216168742827984296670148374519617022017949954884171858186973077721591001074946698174664392767857116269020144712646133751305693952158939241512749201200418146349914927110426554572696878002142517138020875385185337544664674864379371459220239691571955975155467018375898215602180356983693013268037353642197905856065570584010837100292900817758206486431382073876500943629339040067441128392214894379684168942658539658231513981582014401349735270631286749868534080354240080203809644919625842482747076916158696393293664022435072658237153421250739655251007700021729666012415489733064397600248219196796236431342044596237858968137212103903084212140999994904879234033510335021125969039661568672979070892803398229713336163020213325073942127790558478616861458432636153752831239498919219778797344618872251533001752918779347918466357672763619328100890902142072648725066587893651156769473370116523306311580021049469014455159186665538792449500098312608693323690168523066678347912771122666950460962769813373173061443201265645931701515147035252548183103141809908788401651960534144097649479305169445021795278509807619964128038149387013348516318936047173538060074076439328100138061525436232436885780565050716760007515185895916803178264102139364047603792604689728293174516887354747572937919668321407811299831562178465711576717063480544061186494192200038964979135608221610030208007626704678026861734998002074711991481454606994435327884819477380161028174600608378916625613650532323361191625211446102155438799801236873227652739152932167934750026355394296799893881624888547127966672056206024507242418379386780120333720735434161073821264929660179276317082529680219535002520770907064126194037678765476865125583197560672417437946704558525652950935028218038544531106215601311111110741849279885163636801811676865536861349151320088843226833091675562005654892495677773179686046335502003959526126817114975104637897322976792830624555887927328625983689708131463113420226539148419897422692311472721057893172336837508794002089928953843490864924814624198458618543565506963203175586780880873049129052798189904673057415614528550546691061810554392024923830930018573365525609821688496906486786889255195321850764563728996881305546505457968101169656464959750703794833191566680556842874913202442901744716146723149016106114191076227926710699888997535300427444689344530436019977046396747369677677834718192349123715177647057502474964265043665718882103724707638063198843626734608234179674751966588510802346681217718638174657855785501767563659311037891385308514559956672580214317671617074610872249723639002847439281474975533003954959834765591093584596054874188492282783163084034601287486514721299521917235364804567569261244338492577381146256689125713167624062878557480512339991183254967342311321592385113195956355112832536746563896322872802533035978733520459416902039735661110411609412895054644252160443582224143963273137346830515997756157342654367095272797518837940358461860485479118387571174991690714689394119185878275144189558271664415459214894260881978139635371485362704480279146065023388842883133845439450140774041309829979920931253787786367003190466730733487480104040608164447135444924649128975147460547525275410126915265035164131773941795568620589221862213382138214262685957201654731564738895595002696834801247167380514579284702544870395849043235625328613554603739140910036762552839939214461436220634033130000996675485083589938161964162787907859331493753032740686384843434600291686900520749741015087961152763700589420995460836830457271815568994196336827241867833927064018835830333089011474717044477838991180737333935703795989355563741769012249507864981833251889499591674098134331381972926628768079505752625839313257015944265696590679301256433630400491367370912021743090091992169235200549027715932020207013808687359984178212883852351755591430654009411007072463384150491774033194049895173863106787879535517452751521008077536689015862272835501639761200182960036825470509065558432469887847594498621919436018307831327366462556941280356692246000195255418639282256084193779328887582403648634871091739458780619807427107519460477905859937801753130658267341874476012342476371268013726239927948637937349653959702242789848101785400450759580300627142024374753888774507732365022862972564526425985756312211735456529024827769800838050052003521731455743595331550131558032790466470440370555013055724279727677281790632816331530982673346199630403760630360690809440267866894628609221603455130800740877661484251857190524798119699613929331464770922849231754220524237580899685386960708633164770364026228147806781908763767389043657573092657250085998259326253451583221803507364004476910787821502715201234614983608596268561137142437650091040414643479794038939270190275270075055205133279320737929108867552073471624416460954710660648328569325408131774493622923863715697149044556201266629165368399153399195232299534739835032166469574563838052192889311394885982115193386906989016454645888031153332887370702859820773596545916439593377288868065220362657802089280766512013139489917298173574759670639447543739695730241124707584859196311696291430688635294380600367864884838599073724682589019638025397019426399648300282502475777687085108452209531594781127011640183440648645247513720840163318503085626435801504116679081281917183213283523277037356080971700590861305269325495925924108687971184178623415728990003390255270096848252226451309336424763470140458051019480715280215605287443732820354422460433076477982905556846676894577149731209693504165653321699751191482398277186631197917345590787011435384750745435883932054939288605943977228459058377164239380344064808838797798358745549373236911086501884810424752158861954506127211547766057091618215176255866791562830962785261521933017623299184252568712289613339821054213493720906760659925656775836304610526588895049546076755154153114568390777992316502540568701124820423188433520725258721531027296101029273570298970488589445740681493445262123445620486911645451932752092678747327983331645883519539490479706297047164040960430101771618210387162948438202225158751371358956184972548243004075199823453528577130373886333082951954272709198382673887464681015614767369067818756221748351081536553051924701158957880670181281380164141951480062598934572013319386056349757398449400731457318283370193566888596176696427645085832022566203380337125447611214796835193548630527023727302240611196689382416585063321067433676461702780494989983271875640866832430195330560344257263049470582476143298465098882488231296150162379171348841285890818064077157541077959508315808230610668545891733951722168653543862810533154726565053387610178258429005861952662503475618656447220658747505652672948188903790089033491988987353676635437594830722155799286969871753869423073017643437515228383494722628523969459896327713438650722568070793061931883477968293836189505864661849085000489645810486526093063220108908795318516055811993448069133834549914084229508272981149045935821574522828090767666303529969183900372937804666775328927094603451192017923630075610787210174682964789912066018067302804586721845884378690586809648818437583785442262756449162777180109833425957557351457542120825848223294799385704043066892459730344134302169590200784253495451541539010328709469602302784157602490149251922034306933802050200742535394268811796067072056575585938957329566118021299616425972672206352851217267139730200589431647740256294103152755575541218665365602158230854423327613395439481806515174910195228745258892643991858521379866536626177988229677233934880245996852909235120176946745330906590688254969559184479129250893057996079665463706751465019877799227144619426134427343643183913494479800708804659949523171436385007936012257044244675404928002022502102572911812094874478272856965743158818397511159567614511004984387949519722437839603250876673984969285359204938782215849553550604336459776036562712651739400226208251815690109358482325784176942372819085131465835412938653107124167335349332675029681885400808140403592795642383055331399524901110428426161628123283810105278738148841537209825118914200869119472611722545446202256487289931254654549559065773198674838188004207384445295129765111247107310923918167676808078950258040223078492425770567048843465622882160233752806220349372572492318084760687768928569562209104874005745111449675995937745304381104259023240108364565864128281027232413637952733698817829077241354133245840523360696846651233791221542088175765554521754635916750341475622452945928697072537715423616182054601463847049985783383647264534066661753887310560123553034141538321863029755076999354410011303794427171841382999134155974867871235123818477159287902099454388472680572600507644315689844437140441966397749266049751597860659050988916390789986319074525239733558994982593623230144416108204033432777226992541679869669530431412207051909681442328141828032041212353138737689321979027694852482776365011648395982135112827684802907112738389881408207266989203800373181208222784636384159105885305125142571915276251659520709938727802424654436275490138001680462084247804027908441437490281070306228770550833614585089640441155024613082878800726102025206034001846214661424358537335980742675345012393632839947001774982094646592184033568890355103428306320507712794223295982224729096974771209542759054639213334616068469380145086457425680340003590618806732011199283653139079947977474017388838471536731835380559456267240640028413548121566317251917109248160183530551328763237372969203617433873014780526998345189805687361130813701600940667370444306755983019890530443585668960411218662895246221360307923200879162837187233470670390126619452246091176217470261573305166201662491094436454558253626906491125915133977726367367898074740586881638699624321071910748838512468232371629356628011252509129376283208937416521445061683871653140759755314401046785523928389248640457353639738877178167246736812313180208790067724185304187667759944035580778651173623936646134032233453836680840774508339845164332197306105722452957292191172302209666193795203103051711564656277102588196702347783728988918094262551040997326388019551449288153828614559670756941135168923700777739838106092719426419158071083509067058991725293030277068849762256825143555083182221164147848859040048257598108464930450341398763736238649572222014886640752847426065061874564211769069358221715839871678469184175534485132044290187285032436955521794122698743315604382610563463857320220938544305298531862094244972583949877194855653908836233915896111469011993229211978820818667364864099106799100988029282425161709245904694820000970435492273115771688040673852507975291282631867661882371236484143387194443338870805647273092309018373161096550108140550814748890275671941781587615382840205252670984199090852693515894020649267598448154667578539930531610169359669009201865755727743287079937213673081992245214937253842645266383757138078753278901627766924719380803139402574655688150433610259747350718631427664815971057569586378117013889122868795381540335000032393934321640049339659349641336669390046586048735775339885455721176104693869483141147715163165264222448492704661608276575303747872466837014448643381379213027219499619000472824923355839358828397821666916754994251052374513603205798473611924540119514606157468670549240727320147667358001279841704808473004480940510020162448890701052818091090769248406963973822297772237819114268276152839929426653699043544794416133606854322547033651360384274902476126046279589312693463607533613832759461765054301167337380594840548786933231351398216451809853475934652403601315150269115264087047847175796866366812460716094232553074015028161856672621932472701367308512582167077826450661495897463579636481322725067673897069130535902838431743648384831892799871629231363151789027341214607092195833887593210608390915824391450369041894484201716586726661131460521607260802632459246652586982772505466188336310575006614997984334035461290493176109694887950567677744813183425303150404923945920040827409074526456740946315804687863721874451346519838739585725143050374716035086575334160586753488614893140138598138400026427531741911267989555381809280330482722257575023218532309225109805031116136898051012240929352846894810739510479730339755519974978390759901748556395422729400594630267511907485024746876663908704560582858103914339440860445089465650644445970536811355373216271911573936515562086312244671994629194373666130201832441261800918581644595645855505184830887360372708065569135419401689422457006580025882682545932377192953023598512044811568589250586398934290261396995439215685730435927879318221605221561473693582630494857865080591417846540026825310389126181030017497570457488665963801209550736623104745210814353254483191995539366112361898772798324886132022897065250055946706618958984177861916701405021016138613149854785353329735630137047193708110617139268285211602412858951348445745348840551611394078160246425052948679301906040433761467247871992675100545365006852663491379461382228578183873920281419064558829727129942875182852329218188995524866598186680897665536245016669407741372491435022357203524588578341982138904825676614365009054695657714987257178807710955458220794007792290029950973406893383120465179332270191560077718695766582627078302289164335993476746743770870406420133863621652080478953386818213344596640654195158366695675003082120125869221818967219764869477210057816551012393477061576852008300654311012712962934098444774407844872037245657951242060542274164195810223721713463683328622754594420242497178269764601235337627596981492185336758704916569742068644786421524632223615062982582813182039719873166455241265253874324017763091774996345013445240884531692021598917799101130653312652867943307763161582999673079961194917459881733199554225797937125405544346442042284756526197837212161347232449234637869850411269463563162279311975417858959634777936952912794621038564405061953953385370826488753967821703560263170457176088984370383980064118990097118376879489668220377288828884665074935918019814614687864648467620191447748022112066063717518943510703531369612898677395452471081950093015971206119576658845972977319937472207025445113711248348590077913314220922116462383015919237692237087654870908929685062211952706236643583519104955664120442179353647911509821749691279598685254628943135001488918854603036486965172349152951441040897237675717847413412785227489350354990658740684915475571330815245581613080724965183447353039135819643179155104109995475603723594493721263343315743217435254780717517702643230990072927543277667775634591152562268883805830720524177789861545703774368581451244788532741184716384185552540389901235965436932132640054008292923653908045551222125179813325290481543992783517684082935655612495035071957501382141596930403908353615080003711985344851402012988195478330681903721393080373722008845396594059337288939593381365729235273218301207215887022031493854364192425332342789736862716307665879181616963448625370456708025578225812535318613942162179726071357695324292799923724609070301636427266712200811152920309970161326350830884045024172040029080679070960280652744517100234300296533974723386667009236198801635451116931343179308297312594705478974145024921176502984834397935760459863911608922797474100865226294802411289750499544186867843835764289264701285353673317841845593397877733129055096189040289804658095951630753599205647122640219676938406028795819375469753537619899310687017328546516351054777326198464552305860920293829951753834790159604561741006704932292165698910385278962950754434363705780416803189416428790572099585206681825564936308755559345939634370220334141212854245605783172421415076288376792145998947159417798294458743034842861677726780080763663874056744809756241392592022933814560263953934318627652587814539211783655401662462920513179180800022314451946499538718391319638321659468738572559276560825185112291358287269686089133202871493392155338423481865329412809178451370241903950633648686350520139261657810334436263748207928513538168996735780423417349641791268151823180715397797767628722087148077666872169084028409104971814125062613061396284332878974138567735694385722367116775488688746052147462520693024354219201490821738137944012764626543415787354102347029390457674318461701662684533964561927242792122056243428175098621089467947811027631113680148034686418338194194270291091784513502402084583503546332890660301808526899500322314541864670564903527573172805966055965961332833763532890836412061619177513306503826587231190846976071869467859525210621004147011338369398760004790781549780253864923187867923127859256087676544880741747849482963014106568373825709474183742813744350849619524128801395975103173449860241219504665193337267893378454656647615395130903145083026615372052010727371546939128351203577280917836275466512565006811506831863490625088935170598988147764457599009136237235523874957933099494563265801349178649571538519999818387974661592381130427519723717234522226753059221066693973382375611733800664057690260443531939408339144468289488105893623684866757277132948603399736534114721952082844895499817745654483294009761822490476689961025166114242391766600135243848344967748419920510329114858129601927982275327261886830584235553434191257397082467330409637829007888864114437364501397824937881767070414753700854132861572144651403787705807411479509227499746698216345615712698810612806220208914796035040355597469296827513689618801805615615723068414349350312046851376464164211720436825718936047831233519791979217306297403979238984725777537130717383292170211161146195137022860161414665864574646404551787423848082824822734320001824943056926950766961865371797844167210351828733798133562980497757012704980711163117547119619661804975777970047353654107256238438293638496360217084975607238207425313496124434536946402402928555590922180668436366761045120822695178728443265757515559179478260633351040564609236788444590486655770436588959858792639793609442956692293879376874816156705669398193846706715384439356030793592776042206611961614889566641711626298403848042862724011511534387549593669185446618527883300076367747094893610416229259380798945685135724819635616624859261825887424823897801965545673327337119653408260347505372145400403551946869372171661549649645237144194411210885802460752876845087680655920030837697145058587419252855724604035207803581752949605753697914888069137893926347306695601017986048760254272597523450970336723255964555113557676437273435137764864103289684363636492611495231393511730352366191904648872848542243841409629180847835168617434032625589667060209878718337726488862376796536255215936212016234562176459428348809121597653427682222673984630764815546851542855525558595409361141449233426087231656058242167786024632207723172742196129108916309163663633495108661808413302702745682224287394792776529507286558498878102517394454113934477598839979990102848701308173339634197750932924258223347166628838358104993824287975831329574242150080834759245821843939110843261491086557428221194475458204874847094913207453627369916397931939966944430249394769966196055180420887753448566977683856918020466337393219072439769970909766224892028320201696386038973981833583725942500721929408127851030612926742146828614991020951525271021315071702234205942422878282031435662962079353619949107567919592849057124350209896905352798398516890189294640280868876667684768497197677124177571873184545978294568930531612531657151633080544702129456387606699155032779012978925377580070818894086156007496845112872779104784368428956431689092481730728121651756938119706716610095935968851982334811241192366137717678848454729344771427267851380713645986777255333390232462677055825818612147142113841946566002611806305813634817191202139620428377077031310890946152475850080878951141903174476230653431566256268785764652475017881542729049259779062818938563283253404413216244763002057521000335988304222045255921932510950953757791647695779770028275734178633819836555421360040538922218159649849376683402602843693731800951012176561439018047035938870862597942664662247812928121839086154709820855683998571350638407677317158876957086750175701084376019741547772109739881488738973341491248334030331956833679943065047614926294073594188076529618038215125500529497475425054783539056213689479966790522007671330125347134040314138115068795111116945173575549077310314652483237217719054764015883836383808364460251873222248964124806448877467685369095545115075327750259870738900045838850224569492674429214744717219201071852541931258938448750576034787518303149488247179888010414001379716440619154854857451966400394332924676310436106127373441137628499790062125401518364796037642418418519449899635559781681579873358504450063728116389418518670455812327311211178171392959024901235603296197626932846369062397915363857069950494564119511772569776239523359453946022025292560079735780121536081314121670187436904633181271400827692251494793588912615174391355094269206429487168221845344259846706078701241463074401326037239328590315810969973919082474432538962079540030755511346332263043025056212100521458881965044046731394161965299754296126744269022782703604883036205080661332766989543114774451703418262474713325708522711303359327641135342873539208943344085764599997795815662999573705815116412661687126003885020558173019567772171512535707381836601532559787261241833915922705034029867762693763292730756807329745733030018701645575563036702283799719783832347872378240573007043664946952511183514943220439464083815449012012404123479667769540577435729197066650486370669860538354495955200318109503365968671173133603739886102129033040402654613016306620914835365025680715840214387028147001657908601014831607191076786329202820543566043968219051264551546330308317168997789624908225909768241333202627229526744310285707244272676887103914713497832146724805447885614819138507242021524928035627008416989586152950109925797500063465233574813701873628927982560795202906303164400163698134595618939275607572175762927619918068420392399213243995063252272787995620096988603320722844201965511318418607602486200034111099739270253010916270112003383975924714536820323111887329120848404915237300037740391574220266779707733117244249785131574489039414716251084752193179934840047680514528482396343430888257863129246952387567749498320447717043366859253500941696036301224682546515165800084879769999848482419964975959153733772164630153209058518457500920929487547867160524646275880957520269784292306241083654649150540813554843387987959190251491096132960845287047069506899764566579063180514080566948586981760221958203414850561973210718210634472500189048308376123516911605681722958164720036568855233249883260913699657113767908674693963224333488503716112526073058554287989696750377833651714670573747611247717765944726635440464200734403157503024576597687145926988465470700992027909761679636010652535757808444159288700584648554687286398368871538172743611357795476482230053000088815067527745588749704214065328644586633041012902596448101195935770099247383612184574851312631421356356211229631708454814087821707561052222948420812789210090909397282805004254184406078581828124846461592039135571615757400351893068792903801835340687432147385608412028605517108577672310745385098667055541933836589018695326212023817778007658016560563056485944024741109250401790537057160273531412567114523926130661308922130005947905341600659914335261102394251788433595809838872569285934887041478846610186499741954210344594132726793618245977591816004909152486724110821975839868679157673440880705637606155990156995484564498087275063915005210985402283642689512603048874078687545518133536588652316090340029575490166819058282497632110816691574099469066607614225906132897048185476425473177914927751185306694525231717013361895732262126110948360266228823722552313532825164227514817850063134174864478548473061524858340875030830990190538799899375686623133578012682519694023120335279843150819410011926530256568544050073275902129096901198762268657206384011815297919224585632450041987701165508163966817344075805316857243240771069897957173479245279499276189598355318608984959940768247500941607555137981416274806546482870604413261643914117463746980827806317969597321802662213468231646644102495703911404362550695205185055765904211054053300456337103907086647339459756902065233578157511177073228073641864201440281029256713435190738710244534497410545910744245315836489766838761257317640606860856073409636818748493094107934932886032611282659348976560785454038551155237461387654843828812473556062263207788870028727676818371957436139573545426832707498317170965765375068170618766192256152627478086487009923127596023399482846567056832033339552285402068324780478420970021364860077802387066034652599938539999916682841388469072707296918903197399084385949694333729095791191646878177365457403162825708411851690159042594192096064220436000544714251912712096322845678138991290664141409218478926791493220837802773758753415241797436197030373718686042512369132776018490444411798137545706794196215151012566174604507441920264725259393285801421736841209188493595842240801963480206091612450269381844827010761711509179112538389035041417417692613836044189788049343259036491793292099353611130895810269225437977361946153893277340474930237524914247332462691035224332259796958914373191487855907899521666678825697913070612241859442619189158949316881169458360359518470339468491528585472853960866336393263080691746989306194672821890819909248359301508306407832326273640503255666854197524142561877088321480758116467083339465343102698131803438437559752228234724261345152448204230580782804026918651752554715314549462328962716091110271405800692646462621347237564874028516655246442389638542116836931195497682751356124583831610909455059964851969761436209104744013352906629571802678005520140376164951410941963476699511550915431386197929267903869560623089301853430268416268206091290419212119948984381249640848949175798398339056763523997593240362641890462947493265915546740373785692262446019139582636561342794450726900017072798349480307110843627900117618440554521108602041039016668259096436235051091855865317295311459943522400523082254179959342733258445700113284164740038062562280601336051102001405349541567920351766732767921890142902178389696653754014750708266673005117017902925355637173409807238084772212025371557175288538200029893990211814980890757531445970200307829505508749653923476992462363342015426040686533075617996813794785767789334941161393147425626943961499689971087507355768685650275180725247909726831563526022877429073864410042828042692487591981869237754323128378713912143332364566392565177599839000603339987786913170282757623695211716039581244785372173904447350311619385200468885454935191988117366300998203537258166335425840096172298049910399422216535444966936950049342581092597236420074411460690896183217448080324905651444478267617468152612212843860375936632710895496589243284657817983542012159639935806131657151076802719145403401716423885397518669180482248158996260813163565074382248803726840707435992635222248925471350563272311969230647444857595665426457536494389472601495557526037342776652661321054425402425927235487065548573649067269653360339643411951551912539587934014751057502071043580990093809026353986577182729710270410865282415989844973758453041692066075016877908346019228692885894186502854996498052941087033027981536145403563759878625418099493567645007849431741494001981449766952539617442602958831627408969399801692711830014290336381424848832469697104253485092912962997950770954362986871102556205724067665745774336336216021340086684208906191622234957813354967477680374631311450947049016707186205559831587560539294397560405308116341483639657164011270738118718651664764913336480695425081367148994256644261716747924686998815906868967322701572999060624084897596728350609234607538065963386605528824127343991785914430355955528014085801058206657250911236898866259730975274346306832459085958915237287446591845680428467395683344061595169437176176783088782081679317516504546168106846330829360206942361145672956108535393503245924074052570495488243093342891206289602952125500561547713267118861880868988122598437827327963013263423332394348434467699578162616935962102609450915786619012187974493093007850347249013672635493893640232383374145048259985351139865589716740910204773414613015660741493322202163578826304846529997268705546403741704515674289696820185918596034109966289913999793577234585588001575978332105592397284082786660747803298280676355509946416218727349030593106265861807604547085917764628963639463366633107795944207093196080939750464464773918804182691268389769196295360767029731238529976630491971453542903146719697395905742123856065553958676464744749983164147846603050752210041990574555778637099219561758524405323049219269025306839531428270009234436167686739709295694530855690134284115577616914879399581127103217210309720512269935047643051700786179968320006933907236192016798464595049824734899920552736041216097080896946445792535306476760421446647039780111091382068255641158076000442035427039010165050416344617849156423526027965823317466927444631145703840088477713783754489389089667256285342747531386764564071390343803422222670123316855733809254440805226472190352916624964815833231657713159286635238978370922395667141823444962639039877782565006409831303040728787346433635806863147657045264644013175815910842924345892569733296749673443304974547456552107437836456330014431859322029181940901193375020084200271148300676221071270624223245303750147467174878099590549227487665826304479998932235944888103339394018997127103425149586863654557115839359649253105371715562458998817416310760437690248734846024148132133952984743604997442139698065536481244355373089083653447273484222868069169568930749754992708143564020526396033664462114050804826991311782462584219710999632899102598714243528377274193472246216520376024088470619529705347826383832304252756774385793324845138004806940218043902600285789629851950134348946829342765205382168808953135122507874721192604280310420840239312000081062348521878635018678322395681754574791113496274054266167526930043768730706794496231008700021560840117010120608920309736078922332612167087055031203590783672353602563035985223288716921632585571369544261421873658388075812706722681204940545994751281835569161918066858874157622861238063984945334814503100751585495640335413956451648753769531140688569661840220996677863350349464443685159148883111636832345590378930738574289252015460584878367507874253109132421536266719113448389039101763855879275553402770526992892718795032317516805102400879446712343033229043020097368829596986576549468731181714197017065495281632556049527370738957257618049988233696291954370006844751762465208008247969366929922299422732731106455172639606034613762382922928971666479673888812467379604598357635891581762255367520132908261940406740550971391019386825799190545945003978577188179529334676561462020988914440914644789719614035370373483509141258983615182411440821516838453997272076954003663903463075372864036252825489662171627628085446261064378514080117522348702993687789762626441657747204650940165328255866994631150098562464620245841717401330731877647281800354826143703959908451534563203290885457296674488929983413473153901489726512260353506282479741356871549287222311967471275551285411787802030508979219736824098645655264271223421693190990717465747564765491813810298377646835122926698436073715411324991245062624279673071565902258443401011899061941570865900557485172923136792036611794948734075039216608009214502581272867231890944963308652153811392239061794132330309212283437063613493596707787129050506322373425872457932031060843872045107465818650804860865059788798541779955544719554049907807708205500128313822986438612076832756225540550960732049982770482782888364699395970825462326209998196304787576321817768079266781600444824589310567636397289867158297953960060316607343219186510058529922271386039637784734999622644333334328601304732553092933620141290164720018488805161747127867988529590019029163810029879707537736803930730077630202956122758285311764967169644402819006212796137643801901363509736842343122044151059345036718315670091418458906867783529413376081578130377788612267269245679869199176133093922622741780043329830430805212995477306530280752587268273785527252754619879806285857714560555562218566852789225600394823922045871960673811868190693278973246983527658848398016185825463706257400439711747572168756849464423926294863200513716515774318509602503421441279016341459338030953330628229334633034507876800772170588128850899603518125574715791311410618994989908209762063522295975588564425294738870775253524481536475943168573696221567093776602619651684473468619319036958419658976574235597109087116031154956087754892799756923873549447171320948757233169551572845632046615281973880549212436773901276168436240640086273917935644696680392826541098990654109178859512500510037082476868716218732001306091041779895087736648299285563640104535877892792886173678664617896899334198047418153235437489137746560202730316042914730196475498506583030760803519344218100405198612105973998921072867261592397073249761635688715658594476878500277208811474268229423906882286123658163417691557556703580974371402213951321124836478081520086476885528754958144244294051899094555019553550701452949204062441125635459910529436905326885599094208476809993619275443168813342827266650866230904002424131899556916767448200400356683837948143691505841272506704497138061215908528919007185803831060930630274465520325179533063388930862015831032631215936112089391380764073803165143290242206892477768086407753843172206921375275416728671199939618640005033214414887245380288187254804887601000540313079199684281397357483907933232142846956577659044166363532620009268094181649242635906136889515742686500778093633025646584100519053088098393077010089770082795760258800812872887391532259401521734956159734501243095222062518929847508444690477985849545367567542362019530655122898989999373361217325553991369313653677739452709527180383589598129785103972541300067685334098172290771012076714764652721781828731057560079700442521385274374853780680608595220038067420792511497048683910931849039889565864805771401264254250509745975034899504251039992307694238314476999612234019173478960196540353737092845902175011029102490763100552261438447197905079544692273441919796000700934792179464374273982979110968549666990883192206181821324352662810551667531197137729206182267998375462155936240085205364976348496714503753375354082702932522955390094646504384887392642272220672221502344613483503091920887587123731655015607165604076269169874948551273192641769891343644024936409649192518950810249741758066383940457530170540137284477245114051863037846274209055807054271515502507827030137806189897472656918097008839786196310575123111125876507974927337125478659679449971919009396709567359755642478210182510827130160298310869399257911041930408640593874390569628736530656770459802181863984550328941724930895115576832720970616697026827135468500231338290945272805692220909246382511094639618476093543069002142647119432386501760160815969472058133972451012113130567138659470848864086945548586804906014934015976836100325905424554464255298880718507093804656228061124549717495802270671477126709115176888096270458346810438408853805959330704892668641099876257509506601968674177152031300546512736866759450376862590085540957663781450225119895998920097351141923056939362752094322381430856726052905318752306174934702710434259093978277697859064355223054179488360247957884238624503592779554030527355353530349645989804124142730061640184956004175307035541368718042114863055344515525595867716091950941916468414685733084923920881189969552028342051329620629864075073250595278046868220465993523671853675032061989076121165951808315525428113109210820181986669494157200899464412554488246187819299396310914142069505718274940789039375518838861517012233562799066142117806080987539965065836140101421463134478232498638758081535365888509237544643921157458119711489525174786764732251702065276830579067959959041192756474390896625868005307417501747520501332424310985200117131427829538448292449360920512655486013828837477123441158306412778301132187997285138901638770997779439058535413935598600752487252608148645405549288459831210081453911156965865640691000125653380001289185943293726770780150580155224164121903047991303372914590292307510353639568544434330552898199309848440474521650949717136337468238921841321183893015403986035514031905428814425185921615245689120591936388636701620927426037662415381795260357538454238755701945807227622389103848191583629052910876897032493841756874504409589475992366132177976257765861021606167986756129513818267787437911586006015089228075895831968650123616879440699971533459285577291226772542186760083562523442927819592092503827996091265782869489150990650804377852498210132001520963615714465448457756933761480471211850633856370550137793163936502635705919210644659662279179448191181187697277844964905696572156979500357811029243116736062734224799747364729755648089941302031702727926763899468839330005818986979952215210654918153302727018256238716281013186893145456855942870160002237681173608537389481860247151610479768097148092199248055400736655222860267667839195303431688256280937435934757075638329057836420951537248448272547224120445131307701334079259337991969730702499792943575088093738497192528473525690279011824091911277783814103471130490169346100025973822586894356184563730256578989161288565817819856869308918069780472239715874441888629569512897045689153556128259188304005006550078798125668938557186026564588010978057906987819222538524476316828021483577756105290139871516258652065447238643546833445043921649278143952401777459436660603626065722012817891213658042290886911593402839676401977028075616934715348954188415980885880270856511080948402618505249012416833135589938050728797214332772960688685382535013919800280805759492381850851362786152767504383632292530849411332736727627261483771348610058396302209043826920240658569625050174310864535864921615856818101311322967783172206986943038273745864846189629462214687455075696934277277825317838805317101302853707527781436072044801959021899542543254468500726910337373776235398172783886538972997447171496545315207072655166502381432318998823553049306239064764032373577712274972580223137347924429134731024662721465082156336568061304043526912774097300755290008851555898456694761686601846686858296219153727027695089726654612077734631709872953957855179899583907517127080656291143813915750725008187269234383980633845000242034283276458471876781787957999643519150990422681003610979849845694118545985479742091585412589634888822258446171976855703303062378131867087195210429806867313404010506574811573669696892806755378165321655094845521232917075422984630410887508322421928316393208163705492132077488386058701479785173381957050713217247595328219802584269610199880043167936683230154063807017223756668311764162110906214696647860674341627033398646735921226503610954092788742025040035981071960975585034187461677333024626014817009313549805811959653748211336696356785456104271032189568957533645216114479415102898044733658993270224929223254607664067684279558994252865856098852357199604340503421775797469819597147162775084867116409309934263189529162654279291051457147793795409270207458558445147730481250863406411331161920946700487967269235590477349817120704901046431298411089241630253090644079127428548669694916886683600454242607470028627326323020754484299989021663719265106967216636392873531956459589061154032557370712131810102652064505725658045558428668284740766853464950167359711423956713579511495526836891696232284655463641696901904726747931064630295184418649047767197465667747410331600858248775241130452886755044395794305968222485358252590134834238869205990785111334698358664153305498670554273606687271592377002083874210505364731969130569931818627706447025442642058296412912382790860454080457892252884089392862022397089481813505257432509183763046836523193791844165551938545490928660590433694186233620676571898883745112790026257712707803060988657664216972441370314738489214776543751971475795692257369643737804912850110357482322660611201940640123881590608716351542906070363278439769934529504250444819134053239889437059501448577895573521371135359315555666447343800338648551985288020380883300769511040027774800686757902309443319692781817330735158678267983385233334338071320978602947794421535537194119461696998814811691418741829027036622112889526331209637104570811779610009521562895199608968706694423512452584210242973097173020989914529283673598914109007123932090019430713170139213601157256407531939423437492209676747716956680957532573325338317897485424430947513728290520069531021735422640844010574554826220655302225521391200878012347556665266819675432029024535090164799268673107177610149484198241014582253967843985435470293014486809205834540353227585534036405712234714857414472299413404179965586381302716286166313439027813090380928067864225390814882409626384656563720670031526336946820902405989907038073305629596096581068837640083649387642989210395819202050580143101619991726223337289529386428282491678822452585944715255704014733020242519688967651729880885151437404027900285783100283394758121626791026267158375277642488377023713523483083890761102541852692288367341568681199256262220141724619300383386629401255984027685031307202181995737909872964526826252560497408073211552185542525409036928287867204382009440841522859395998841385951251122871592952330441397150548244231239724898231488277835171294521031299257709723598512663699281254628668634406956003156877200778326362867747034880677354606526103248380486733756907882476915561609506858948685269305477120593457088855543913714558088742021748736911855801766873701381727343682445490400539892592467977288641837110443582098145949400396991276842084272240761761421574516761783205333240607114354069204449673986615578706557889427911172881261592676525020235458057053681340776044570912268682637230929585408605756313121157492599454977639012864568944024550261620883510857454886743132099979176476528215546597143374340275172773327241050654045923587566501606316858351368942441173923220117224264532023658288851474760941397080009555784891965181595778714220253478265463870826329583224475955516723955367023859664890237271547760357507670170149270590173234841376438235984062964157170629621240285571275572833461887666713689207195933661636880358054323843990273661378153506120781696032574972928429286365612475093146836906001756045700020278109030738158892738432796307080451157577328510927538401735183908438825283053500886558423340714036011261975996831404761047896425530718543954062770405752210799165783299840914805083564126619100955292308167680026895772995773520763982281936537977287213310383002432299674522680340101887020892592484470102828024617773703235561547348473289586200798443793415405996888695350253377763677738592100217368671594012864013760497374500798634923394840384482645234961221459448780561367495587566635325795818611490749549169132492830925501430369485426840360288651440524652607626291582189475584788198281168875602022136881734774312861631417170496661326406372369233776977620238469727321111326554241355531230046110967624242785973737948440452297922568974374403749137450524682681397722615293381912389766039572229866971993389547386739647286763788903903673523630816981008422071656617875319943791229519423748815239272482978777140590119289925914184430893717060707756702476168080409633867005878961225658538245781854863018876516106213477635062249363162998694402156289319552690169314785688042823579622930720020145103840179063824131120620432386748353957958839368725427132306135372986218417191964900357410486500451937928558721678003889297958923549403356615613459782410244680533011524206605798965185772307259757548345196417583986169507208770480431620689495390021535229991630035156395877146330060609207495070648007844243473532492908874946876286920545968100247246068725875652745512247242380287660288079856483717001720081475108124919504778860984284232634108487657087473228701212233362649722772769903356303080372279931196411244277345987468131978434791695217045934685278674380677814638204340857622011928979898846121326246853736825940590560723839405370260760262811261354810846648752481967752737453305232206548569140169015275358212864395507937192151443349076849748688534415343412301556129988397603514622626672062880835338755218824844935702098738698833180379595881278186520107991585694547183294559253170355868476062939630440830577953507692134408137230268588283120270437683659331108564464804065661590252758123328898122082468676321767426516246396332654953410407725323072514242736085122982642818625919623791535891745854671121426662924837287489567459102004185345864651914729971662788789983964836322034888190445424430178235937661788148231122826118870901172615495630903059495808522163741674950612645628217342080748802216970783473909402064634078560603759237023327948911228499568708210590248461060150800382287833271027794229668310032361830369482073887489543726400037752396929343571561165654434847411313309773692880310892476239312212436583075721845202851340543712018281900187351271562927288958822496396191737424612839540309209695519512933502203779051889281470691353200506119992810072395468914790411889862987402432868624049034802805495813693405740757466296815326829181610995795327270984686212708101787132493817643412418603006876057432907840849036476615719453898654637884772869795288149294616207116335851808153179424609635951444418572052200325836372208940202949520461500626166339646142669549748240923807324202553113086561138190134303089299074527092523863392743340026510038908413396092231403985732621345648990864750169600555346935678357048091660132513215656037009807627887039401781727738759474973092003670129562563937603950069154248942325099682765018912033162684491201555673231490651993536213276615081021998057782191068766039664442376619842459402830294293010482721935499657057439011028045067958967615469338631772840230083493957712726827636000062656267763195239688301144660363116378667413541813882873763491800663039493259677866208987988221723989054562493715653564939890809831659111675896447560166658883502444147583882849741157414464648574378316434062055985746343102309793623532651212139818214516946116911829051669947520056142364504508775180541724972164908877017708727694891244340425219896126007467305681893360656263226672705718203792337725904422490441125920129465075317096059445911291980663256240882681785447430672921740447721440077997476460897389651299826663273142824219820493329110587663233951444362759980360649533783278074157651388830504952772082956765253294818516560447160515818915826345849008074048537348909059114983278265428372066620888707406901857557651727492776166605663338045761404991172646319811477975158997958950441797547060005557479703806311377384499379530939886303173271205214967982805388231809192957153706845687789194281766049440036214062038607495495995623905215640137775685136109677848652358842684923000263344119858327468475757688698771957073994875756621423842852107055903676432278044355374553715745399227412477995521249394970654143069515484531021909316378161067180113916988358495317133921390968115223565646632837872728967397679066802066841700016898310427913189867413807994319167701763835759773131592587579868379781412730956856397030518271774402711614049918074358655573289922682377803036161792629078034122964513245293023782676293876744459884516115557358777655789478105052308075657502176769864957559822300954976407611017296289486467796173590768414102740093542002266219198717374688023058646650086362571935913941967186483646758298386849252385610065795893526761971201854687947691751340035026611507288907837833919063591100719272051401504691361891862627298720491488063110469323877548473634182277093275677636829979637766537868304114218453889465154687706100285747668072828242366451885486363658024685139352721783262939790947247362394604977557705724717577251089798277291797236549609289512434099924361650947816969140078519054622403527630218673605764190563136447136199215957051595989256847445569876137545225490245069844679043950485123094828870566307971487677657450240703417107187072495313238974119347839364359795963690901828321040169055714763738746310512287371400108767227417560135956380562555963988276533551237655789472252922705826050376348144723857483693862406796187132216136818965187309438414243877063146740986680554227783337719625621293619797651314004152129463534389068562551704887257458662127703901157597779947312829638846706298639024577944861142240190972585331084313033754659198772602290210204297704713238539328147675178667683673834295631955409882007030167349728348552460678007041660506984489093307358207629404095613312112448616746751553469002666639287809910313268783808658712252917516519898914925068265679490820780178471075150459168166040601552511937040414024848190619396168490929259502381265768441879408121663395049564054578049140372408871813320964772888757814021831926590946418916056727253673829371745915814765364446260019602653565101362716627108309313085994165504595248484349720987207016589807103550982737503241568025783610943349747210948274760779121463838321355880438509928732220361780305681072172636556239988380894613383678228693822568841184899005955079119073811793438054508595420448622668698605793960209142589865085281851265100613274236516198020581724370375278600022341062143666421460609046145692221604739641991704980051734430536565040818655415340405205767904225907613176836561383681222667379546561846521947736791976225253823337381814256527327217918521610761121641082414614025384134128396243931448570375192361482047274884910881955321022591477208952187378668659194641105185189820466905982913632940792787867147311635246609758186651106512007969799519394701301008552447679110244960250228511413862038281920723148785925412286455104619483237809936920905511791425082343115711572678399670025990551850432351537241411653757210558908689257341119925274674813552863537625845432708232520558143248360252358555633296902270121476822021321815553842645370888368470241988242006282177543974513619603539607125319204851736383298472850901865127277937175270548061756907351324493751405922316585069861829598815624049401109942685997446041979608698210029679562925836875802605903036009868955312260107430736959044354450338340963696432561691612507958810043074326469382907545631189834041343393248682886623615289859512112744866787798312133246685613999866027680711030147933869435726223571437955104091018911249708198116662107460406601681421976375106360396763380727313334378726874833846660545934792614929880331175096507147057948468465174063134744470546756291129039392650857967828526676694831382063738058792965076985186945441383125303175763988135326435284201796071037308116697728965465158366488294753521456996916602961916884876285672916049776460482195471878786149564134809695999141459572857297213784676882593035276485463111819824377351192485154151811119815507932544416133990712345190551971343699599544475076001622518104916084421528578795216376203486152203159619383664175477380573151814247037948481945289952378429834029990884799590907078442051469268620527316251813265358961904110186220828976680215441745090975369524122989114628831504531380816484462142843350740730945912895390620984390559667042807395061857843196316220232770520159947810103812673543717925738415182029649338732045213450362135273237223973657848050720293964425259594647792906296825672610288277162562118192852934014035074211068036988749760864253254824867407074177074555562002146207988699412915119829298870913904904267343961734172999244329688022010215568284587067437919615087428768330385576561559642500160847660765305166656324572924585074531809584840844751054514256438000476098677275116484654199731104076070750037286359901198969742792060742556126382304235304095487182853360320944092984689151132854966755642514139562030174449944633108020382567293533745197072478369536114176380066193108426862855253214015872298991363212758581497405268137336506959076119180966785375416630257199229907996253491487415249697801731099297850469256861093175721564529945457961128485282197897310869667280445400951232532653698977637648707507338442141649071700855549848090895775805464102510910180587679823516993201575444844030340754981441413719252566248971941787633940182346394283890920217091369995112504981327296395323493030817506219998305490531596298627453018786448359993049461740237795163887444308638980020714560258622175365321307554887099207365518305292132312374666180857984665446016400685469007848578257780123657403309103944679477967280044628794696600407729939016549721491536411094472035081170286504792770859710459751389033062530509653584543798103608799422716029654269379371999035820549248716603567042265719675443278118503720998249961986176119884778540881925896398228320475997360506304576832550748508420231095624468290874893269899065476591107503126505435943951006450087347255344657428085724234530079617177149034903562043121316906649228135692357348566231317479235436009511835496422275883077648097981764712163662049764160833646773972146661049691935884650373685656624446844143662044228036628335019732279551648189480033818273288472794547798362032814737363190660822523484450246298057722390417859908122815697624471738331450599817875758025119359066294244338307851517909243015384344611663250015714660262063789009421654041548286116504975549219232792779986327833094785422105437956102821649586559772539991050148665121092419378680657463684604213389559718049653387018778139832585339922824850670654480953532620772610763466407627604800115043119295332640939637890527952431855124853869329345887920462636557167373907301132241842332546033418584097907327543139801406740348784847928230295182394711902504833446644948612066950189050448958757920607287985041611785409033424320255411524682247963304828231471758513890723331388980284978131863748528974482690579694980027489081568818733550683432032878849113053677380670995377092087951059023282248972275147330406200756796113542304860986672606220017380949696156812609298323376715325101228771002210990761860202206810219502376360709767665689151373488693128166967773052003530567066461624636646721634231731215312076787566294778615201491225463852518860892588785436059841539453410641172187673632947977818478907201180351940739938272176199334474837450731076050656245426330762139410406307374517095151575427276532988828078918797150294642921808541657636650699084895595611710426901913818848750631566773656295525360324649032313014653977483927544351252852686606488209184385254349436305681912226414119872128316115842955952697106159141209241541690667884128748818668943211406300413107525375811741760581486539815545272421350956999944187253518566602797714935854939730261441046281283948312480242522587594044486282338749227690794252467954436663927760423209216549390559423784335353895081489066526210837332071876183457240962932223410115474115999274741444291699986445270699122676398171559861536981299989338773550039356610258012238963713514041110990748885382319958204400677722547538098498647146640513349874284128346183950352052516388985175947581740960969533232629638775389515036612886762384143910359083674382393023012099948277220703778710069552172902691691796139579961240922901811767043704456872510502138543229605293431905673147289863234123337276979762061324239745305797989198919993257139094005510003518704843080899308640731714498187018012492207192808036704736593453770208188343957047135676243415963586131625485028446572204785252110443233617637490707208144422633924429402303066395537544145329559732414239158927000337173761487570067596209334476446302672631765224498875240648270633066920607904137344086428013496744525542472727753270478278389043025583060731126004454096741194433845706120126719503849064002981739852420157859185207176988157099167841637395612232880686494335314278079740031717659791430348290930193738065748713455886326794382166093929940244369336699096915623646758664132313621266707157118896671595579304232797073877901414589734638301215337113695708024459896942322665373819216905076788528907835695592135405850754662319717743557079098080879921530029973149729437073166784548772121244262216739228777327830761954812939668988897720520487004418565073798339184709839137215577132306542763343025925466375424151574627290433020529021554969306119340435740147408024106811978292580019211371997127890692612099490190960763050560984951000540493522201741455000477552561484837019409909728552489647643627048385576376186759764591085770217318886134103599133289095989468525205081974258918540862560578875360881185814776832479899080322216890251851937366984102672787015163423232326061059489008562324053919754325609456289941759022301995709608635746967896145961233994325780880108271967081799971936115140080132613733944515616735432502987966619364279546857863593159493475652416194923344153158640661306950661339864953647829590850371826969359050449832860292872981283867876910250046419303665366253880435907548100254213435266759385515973310203870797667872906725953584326849744350946450783566704631541945658787247169261170351893918447459073402428275742497947828571473452831447919848594991672369090357718766491835048693906159827803213765022976509523246678200503272640003337873335711917408837082971224007289610225096510815430182520070896657428526822633299715499472021616991459588550896501520186396753569830262872149520181646743566029948495713077589978773435173455576242809075547787547917281914229808916088879312046735050398259810523103779566474069384760433117342119008525613626564741402969148169510970337662993196692822582982171664931601018473743359893774452610679602404672258377926963065500029788759985914924491735966992716779317095573632032417946707721010011340412136048611406096376787721876511547719672196369151588244135711734984018546173584099498831524315938437200566902301607822564447600902249412547654737994871458127444201281523443446974505903944463022496205183288193083045600419875379498696579490012991130604503954154157306270283219716210850496028545869488487109388146859766697424046178022241282849471886842462779361741460911674945212640893733860954909948207708080288318408927988216368584176078080006080575415015845434122152124818637132408777213567103407352221070046556790796549864793141577180982471685022636748937213715914894230667510222199915884012393559218428483345865564150620286573312595118341249271752229851963937426378990804330253134728701617122783531318554330403453077554118997237079371929052024538174940753401000594644619431689368711066065810195496245816801225251327052902680946231938512062660649363243669355909158221868424140494683039094678969146701530531585225247695518137652935800917515602832706155229138423888144212158039387317405931978939041665787889909010196717086906215178713286052098241611345639475921428513603393134179228127059530555773382913572042779385320386175163030825024479364510604271455644759559216356749421770187203872517624281589379796832762841811682255040152825994322087232096223199029498506685410538771796400101388624257457416407283780419821863349216080252975891639863308926307900908337671622451755248734971057352781339768530751561488701022114563307779276641553372914009921589408048747685893957167168314770827065519744649156733009540156547181088195026998635549150530869401150233675818427906891729894444220704896565631156767187446603909998739429627063485159118015246843412097441849668641280366553226266647985502029541288499840719465779058324901128857821762123424094194904615288549002385253381340849568138740264533609833951306453339361006792534490485002420050190868464187808456827342089684760420811722476642567713897971177836265033984895511917260830348439865906805244726524294037267716694741662672485365724900605528729560741697848149209740328374994201364171966352687411691303057026849197840442517896450796897892414809342719715665434768800328540503681603349946857684994224275246799425061670409413227065618773679114343186256566089571040609929919251536533684794357064304449252332193026820610536287731696071585597955495494478624258319704941563173363282262619371893745905646942655005601054331096499479026803038658445232365444891036072136995185519942321935368809478076416370543730110210311897872553837484478555162174507256878330130318723467495224758350024716541839785716190877494076514953590694291636639579572614991973967137156582189451113634672188668373430572126227519973031515522161822693651091757486372787905352994132818645168774255093279134171017952524860895898115644593415077847896972363648387578444930690463033828167576824720154234676997644331139954232284813796870741059103317322202742588804349027088066988666540584176110248238660309745049219862672149449257804660204353916436573245970470649842557056859075756083461182366103242231097757564872014868333422341963117657591807364687650361216514543098325694875762719965342706530345893168695146855200706798508566594626864479940746518821639579153230194518621670448259760839544468081568866711260244460241932089672098524829094488602131591769680260112608687381203721073097844850088346314745457114260260504283930093701893183155334412795715735974359966937389924350653893898721575041274391031408933813838170042561381075284241960570587570791000328155751106513982757240429970638678402151835059681234303414101046881701214752874786495795703389236591311919130219849152276328585108211168463378446802634641630217510652258367916182248547527438987855729870139903140550079599729466416270711688738892805830550065593944628705804618423789747828671944503173562038171222631172191045978264575607945512229205958748478097828979574648747547074076145768948358937850043852298556042877212986241637403359920510558361396683082294523353778631587083376055842994863936541892943354684670143518941698924822603316758809367177656334763150890320201141949692434311912972761199040504671886616630448635750840413469228245779276878909289241315794678066432543525030759077498499530315324215559770036167223562827684302513426762128757372015997763785674071446724384452018562604137713866262601520087994476258604726003670350144321448824853615303889134533420597623813628793413399057684041157617431812173349147601843629258684803993490888796413434378394289226016859630344365031225652029395389850860583848936807890035536235661026995051722681936721619993506320871822210953380785067977697521869644814112192705850673664045800171509994644181719306817719511982514185195662459978446430946096169024097694388109004683371327295610586629965886447877654242259108247025921297383198761928562603203701393476203219414164886061181192203513279438454222058723507149613477408719100795089925498820305078849944532634044229186604816531514946764359995542240006114156780258260857417056336984246173564531983702540484387706629112883418269699771973797976327150636130709381880890481382424141607168081504122016027667540182393558738930531242653791449631069032801482478342643649490455137684942678151595886523387306852835318945038241642145766395232041581965560654026119945452076318653506506505167472517317950221383077467035775370165029270744201331345320215102590927840686317883131061826133057687994571380927208000194510274410603327870715573009080377142659812721485645019766564098897412414977228294600398508328822516304590146194162935621093303408184258736331267249088307564320008939994263408017022823535395795952199225712723514752814872052778815275872019282973321590329289942846412889044666694064715321346438497793635793602586199742380341633680740277690350474895746174087043886416750608240370024019525436301120945848523238955293282916720151813598841032213606473996276400108861985136272004614206038402800916347534142718485512025471131321731743899064757200176723904071535085941010796426507726290778386920605505058873839533784578810937733027560421003022668076315481671945429002620059207971065658180147486414556909796039017473395381860617973049870110094842665778810101838814494495318856519965196058765226052896240422878146759434973645775742915831529573107683058165525089258433775933843033132105697388600289209267247475689446662142495096237800157840690430725196627268030165242272100983614268070706385703378199588758008610240634307990250496748018090003909100138875836417407169930112870766099752773188729456977271882465562950643523535808873695376903830351769841521602065168931690274327894582187024999902365110881750709239665428256702499017366384934263426492409399908352825596993519551197875465081072612167034918220051885624458270476812728586748600975093271346895732190454560926230912987050784891997258755525558074699497086056496830201321402624338143580356491471598205395704235435809639477740329179607078811678312664455990376691347105644305254408848681895798728590707559635763315639195455282212978845268688966400318763104140964897563865625681524782038381848343688689753658081539807358586633684511420113820259217756191003714363138551545694247226990746629397161700130208771997784631258535039749603861450312951780965987274123539398360354871052368867717084525364971095372397669904383785612876263670271902560010885429713634063755903737294304439743652085262737168305222083911617094803610173476902970737325928741026347801564936796305857903226233685342829774349353176320955165061745907467345782252646800263940689627964635621096787897152962728040525762689649029152206734056847304650564588782515408999561527920288144032549785558495990397536584008636903444627453193086376811060912033583212087909115985597492945654710519372418717122637317378607311859727906380196005120671896915161690666958911580861647508162068689490574512657964987714028943857202427256138426020163397485798580695658466464576583800798313789955332547521439428395118522329604391599853592408281386815794088275663056977368867234267982359824736782895363570726527921856534685142596703567381064635401323371521120415979315456161051198290743625674434782355199561958550899802111351885353054084890757989694048501979422452202712568759918107253484076135862172393084399349534468985978785056683088140125478660640039492374249570459926600339414308076037738973936156135977353616456488857954638181679052354949543092325123838398189116997114153821576128651265773359471342685088955458119906740367285580039070794461032325349574523828239446920654284730846962918448001365416430117372812056897679285376028188692681654401326623545966904583087438950800541627759256399994584445458510220242980662034992368744009671795825451598313614214126290968374587898946496633384965602967495060081317668925421135197403030508377121990111566443239128726016896898798678773029980319023308081436305517793389843907764566261680266793025316663802855255658881454256338915901627670953830030118937860391878930794573094610159104970910941022579444898135656957022375108622975077862875245422616765729161864264011629037171528959954305681525963828692680604238555837639570591507640168750758521545837600166950630212565722919144512009835745654917665420266417312218797354809144216211722121572052574901806138562357487204542950162897432797909379818648014252079647107309025293178567945280948330580048981909811292316351254152925228613957354289720354361255662601018190962730262848902226689716660456964216335387789697914370399016586591705165493020816740002223148186144107296955921517999406284455892827385380691120656133927975078540615436362225470389665541012360191008332158460386012832150514743438624023591578924164190213389986585302072062809347732989940698175669663611088116966065435869615025755276139331633335862596711616282109022094144930428923674737896419093768921396772019933250388093720847673377386639747656340754067053170335184893530044190009366686652715785731559210186881266214883173682180301167163320107018895045837556961279257542102174639152918701518855060208721261615165494256856113620833523485839588610173408017483133617342386198104509675783250570699751758239412687117817765212332457590486205332242712304002929708252952549183093239781121834954979613175836269033875134799755115076742082422564082343119870947787232091682536322942103306930196789028800271899106325709338715387091489297647264368643888741946634064272308504663790995675516852285444990588987556926300109816474168731308674803765265559038650767624004809197184839281919085799463184121615234416656848252974774605137376117209142832735207214481527557456299823337959407550728749040463195023169275433121075048744455419931163960337635410933870007839351746401097368368945011159546805566568718991016485922200195239474456356527010723372429474059986649563515032904044057671733640352046076197845294556362424629319895717071019967932118007277835154257759169604911503705496619849639270121936390960797486254366394698339672615527466390680713830591580191187661747145435895876451691923262686964106508763466695451118585127515666475632327811278903198461985478951365501650921809477776030595526425979842578407251665750855245315475572984177317949264160132707365124152797144631052874703915003657986766933058774690775176779880486014237960926234968200957312144456104241097652578599688949988377401772362588225588537468840676652005418897767323523644802654860179969697511330302551006135533808757935643825334740846421857401744686895356829532990222598261063165015974591559677517240196522021964693772289018572120027630976005382012874773697626074717741967356395418290860923837489165089758689420247717942244430543594136448870309715000847693803171953241136563970440444969969854047112871054209929837725519268689857172292635444385716695529086230913285573504990314949840131562780741801854588498736052976314029802748800041213202987196577282419381047573512605069446165189227687784982459128264087931094139019789193771340369054561078190519481436697045487549455783273105410738191723699786241240078189035711322778689135627098068798477110198925991722850763737622817854859549771104901223326091535565341522858401346250210382740493534967290055745855539195156037258795776930931851297399451955193225765845530433506094567609840377852285867855896683840153794836232371367261332710516687772530698683607283631790654169623603235973841445223020737127402006424713389712949009605164974339653586026723904013460774571342623147369428129337344634018321222862933133348045169477582566275578938788367013660966544085776569406177582031001717358785524918299433032058171206825258800061756742675272573303585954576468328378380736478844183368843430027544828811034738438401050637808854368696169319922245669263882091603448658970361122670392626086479569781514687776499779724837882519855585443297011609652862838051251123560887024992436819154829548349926918927542425125939672253965735961179121427223731242329611404992804227533783261615915342785418154821236789939367430118927632604875113935985700071460115301194934238380346470102145410132313991311522907425459592658900335820103027165176186179069062300848151056584898051575010592422721217448540178655675665579337453111633076517743023530143136518890060202111546912414674362374816272826955236860906755122679692138823625930151498025406201625581237003534333003498982583194818290386928130390185819946519170973776973685273834817982900359352105326453375433267364245073817163433216165421133339469982782525948978095462971226040595218348045160776083834221940148921622327828779714540178197004197484227820017423988982515933109627699818191693064463677945550347597852690473118856240366861997041220523733441066095604222260836369214476450027062200900026017010724844192064208982348076594814738888032173342424201732490726755790574823594111767633137890670515253795995956423434200599367820189298125208526078459046299763284852119483149851034119267622227507313267840129289327991951806263619104004793762137619022632908499361020295189570194857719749657354209656010799876632062622366569659799918675582740896274608126392944747066215289773682431131319934838535189106784164185005182212916820516562435442714994481992059916879461556012423097138230758740088635600813316067359717410843570905346486965262698818340460757084235064464775413162033925704859773393125120821891690533906413731671635864334133229324171004279797840052108997829478253308256610149821483396953013814937745199076330340102003282241624112445945391296731369962201362804920850244590093426313266568605754756301272294366738220897385304749555396532791898601657112968265500713905429562004324621114570511096467810156885241728033645614491140057463655998071195208749763695568788858897886265297762189798234559998813211590632561510950299476287241876830733412168298179075388809339681209066549440940533668623762779928760247111039083560037853061003196116891669871770319761594682803757146854997071171734599469259987478732530753512656975656959743280650324423373732218714173700252125206037998861679065596159649500601039595862414947805783234252913854010970219717393635171907463996099816787154962584327699428101837912955298004070784397137960100210390502416441813866004986377033019891107006060535137351293498417429435455805918678109466662703749400682243545267088561280756736697013796343948893011543068413287946027432118602122961162523291243051978947903445218684452752556014966746733043013255777906350634168246081236455324227830017691580423934177026816688193959851416296639406100814274190951520488479897156871836058829011164097427301372470976636415144487260525843785529827719716395037056401296979845061575136805867656724717366646428932383281822437280459408368355187015048062896100022741139916348096337635509720939028955050882824964452449582158098872700693315254345495292152542971358481023765793525954996821177096505884715246474836739625471383864055435929153077203011538000981681060608035420002564068159403677268911059333339094828895229615109643145220244974717329633827566594667374824320232902444284257573454424046045484447473249308675423346606081603874441660105317187980064913208959517321626983262420994249128001434186597990504689057089091405264801570566276424239533495617236486594950569943668168679291029313552752151566035660333584800896525867483633057654971988194542517930120259206474975161212894205204664427170734646781528725931476409155666282224227775655309894134821263361148135197816432867024813370671865021164717696171279851536735144436136014888743125192092570918630476830176591531026629965593060815908027849131376558212164448226391149047615591409388948112587479740084485428796311211595563011440986606344334534928490477890620331668145468508930793165803599865097505997623867280499509309760127165170696682057410652420879564532824116568434237424171923308469545819292169688144967389883153358608806421166270724119051088810645378533161427748331802458756936136940389964799051024661689557160986473069960266116364565901813080193736269259204713545151864823430229775153221599645627063457679691980542499779356219019506991561438067149373397292175621319010032348401914904711169215903120557333238894228546509962294662202833292703849286107120359852590706581517832908256680993412246245479864649618190526985092146000699779718572419729377549285375204362702108710618947180107458800273888812800804050585859944473740870839684492036362656836956391322637877503002014021716513166211766107008842844809261713451676224256752720632877631296437926676879795507751422577644530517873221980462989683580282507795929035454171692393410663084548180921676901500125057972407314107427557756182228215747133562392125883743270270553908651191552397754590217509681622870136994072722594169350769931678937539334895054249341685479266129992610827225246522711152788174831578151326557121390294908133285242516030871233297827352618976669018705438831420725847652437404284734214055352347816478678570533498593370720024627697777737038248838801349165022490438821597963908001860891953589703938736631475010914607688401341387546886882572965617465701394885231089394347056695554637944243516389080123518925436444349493184301424485430573002833372947530967041259427051598656482885539197983809706587918678866814259809393561656402955879539285793934655672633142362158516491918957540390268425048617107319094367600959989213549924993671040564768179471128743466766463860033152840320514437499820042756910809336849943946311366132774232167691317708881095673102744833896850882379979899409843676363137077054509136722727142009943413926185376143103214051623996359474809193760690194309924586617134805447580009591276974919282407648891941795948751758184030721344797550920499739108464150279749058477312859306290734979824831495781482462020773006000883421162785806487086660019307208287922474285171252906417725287974199628550554123279903977150268736468590114301172219251650503861750496598647985635760985035169540169512435538947802400399392129582954801971135546553872122239137703665136423661166963899860044818286615387392636321583832829585448760262147832587996225721164145805630013181981437664400948775063794813793505968985305284067241954766828916591475140348047388042447517538416911849534149993158532590148857561715112264297322291807819180655052298411425265589012907397598517897645086689356996871247863773307035841955600424201570369019662865838614355975448450882770169041884693485491021036149438573771655646736052386325734580096837989835702754793546823330821517501097419852983100104910435987363804691312329812408937574425420781902471407711311745750939637314091031875668513792744335057674558197546810523537786405862302235214967791171036965752025557622100074441516179595812349046496781597297234012248290905722674263749328271642907605401685748806266988749641938757061241196428447337242834378891908091614733085576736655565194551196332417425457749271252325029743736121234834652218970470982528219681142555600830769741573050235911633168680705793063608218430072554246447418324630677362596836138959140767623826707876002170891949075974214126944381511876214625966447053043720805594033853771713948436168328796559531255670377801146772227422208085908108821587664519682376967677882147196179750324872410186978064051554227911649846725157888214179204313420347857853199876573658014486948159607284673529195122771503376709888479972275620101180141578043774861194178580602715601060036778805110664997312966359112409708055746559382432299829512573432125277803398231946922681957146021079246379940758775707327633833121107567099294548018596028382052999308117228736011880880073500178474682027275271388607781959624355577419920113910139207755187256055240658509769106517320889558066968885945971487377944566971356798255393799738456452230744344264609511273577553952292865919733318038016144878321767050019832096872512650631169201409513392503244432439047423857672240019465651890490623182183479975118454509074043637804870242145184123361738193774545166806688373366968645535003409632686081411780437437708065020170662326579635253023531258770352813651121320542967951737137075883272657418928339108035053132148010006280180841733561732038692624318200535946515142162816406609600988753898087062023923886060925427730130423630772786539653376434678865950903705509932174094549999270351062661181325994012987469470882215091606946696201165998209633135942781923312636358097128170523319522957717006299946795572924803017340586170293129019692295988070114254093248513745577739347728084315211936408680370154970882420517795686154595931690590165994757155289515020442556591893668305140587776609124426013189218093818633728093719502548077984480898274722447464301992753099383458505292859325834778055532164335186995546131311854697781065632981913074223160112339112105999657829343786577222608620349596195163331465609755799748416391146026138813745296974502087021860585323355726414327164001240607106075385753760842145547152772992670937738248728965664617671484892797558419124640408731474615630402228755536818133256713111593743616471315574128702228491206278979107086277649198862529109020354834456985899701967484886194850093618739142902582257732059689073081935517149789474874234714458015244156242432494427340655142449976340494992657947432069842538062114007343404481089023269556073529769872501410568367420056027632934695953410700152112329118255984704127943458433545813888312123615930029036006483133826583391326165442784721766691929671337974275570589110818687222438919178583281762197687089875906468209975353866591942219039195196830410562357272943937961201720882448588049075602418746156862148643647394172065078261194798608092043846360640353921703472364661174882638369141194211237293459290148618086661532875040766043872277893694572117175235297028679535777501331028427734266448523854466922886314397538016419440813974458856723640014183318916800462816918296016452029220804607321180113603482070760663597925140239752085376673857970533219366138492704362589842565037638413663220268124854221074101221989782283365277394493343648343557036519621599781075981730659598523803033114414825619208974635381114524597675961858046153125211774733071754176227362438361079604149464421008416003431349497874819133190306796779485099474930922430013417802600132706882485385756632471406849752250323708742815389262581905229260292949911596746326769846149003868593989697689926614939534990521234236670893236771963584487362579248127562122529432176386207383688385947808742639668354033851654539897263657511387786018540249797327263137760866735219162672206712366489144764088481184724361362989031277610564543015998923089811642706457043880186702363592785086000469581844614010222585017141648246314224269380217312316656882039961414817338976997348749732853339272497774281648176777004933249143989934232683188713813360433016749428956032588769323155493735592146274815556527854252213117381203661530235167361535325179366409164332073222710066175080990816373823831812574187123088755806876377578961146063676188872295342976916543361162128627433623459243054051157072954844914746510395794462337978403160872806742550804684740393894142092376391643920304220784579237649856425442675142280940626525913981268377349490689265590245124737833101750581442017336200215485391110947210745952804674686897617106815325383764791130564324458001605050152207620149473220496567538790469560227245193821651345809009569104607604934608822358186444891858910800931543757321467397269130781244767450359676684037227756514407921084003312393749678685556638449638371547242705683523380261056492484282499996110903635827573175509659476496482994843686729725193898151716759435442577379349761018906540559655968372752059023412721557353797810118398747776115033253686239899466793380285731341622701607321261104592530488796527617185174556443541158117142841373397470111027138595781240595736152243949064050390291886452559494486963969907357444922132200205628640793662080152280016718527751424960816874910777178255772175123504173337742473268710316549925679028234873848894743172570811784546955638982268911910957824693052390153108342968304305139759098849316389321316995420533423886780182816956555656654181382102387124633294628411667603421997654641992070521439850756911470584568422619000082823436850257690974128215713157057554853749598900013858059520070739751215570879028704677597390527982069150096662081239690845288306788766268114894095499850647153394340909422485091261956325777375521180087057706957090816235070211215994341344978888001973549226279571394693862984928968242061881484002957935258546609109991904945613921329098596211682544341487485347617991289929246966859780007486588404855419810715966785445537947738353534668810357755433517913314859817929055982588827081292627860260105867781792520548792206474961668390862494991925473819584914927667153908904190760134385968666832873231445673642977705193600075302938778789290366723286399778000168881202636513313767830879158423999931513602966314047732721567217805007418832930022091782059659055979766947719676367112194630589099513377417173577092991649945674606786539264468844554621188176003688425153030105785361853524201577530793896833603157235538155457949609028651560115978545771488682640336137096836214344294314593880027957899643078862495641989494442079964011592907638938350391712767142306921706737529871201655361211514490372500236927363855204170890994663680064587384521307906586759408000050026442752310360648145242393626176860195563178291061046380199814314279253687239718496160109381314237914442471110718906634668291493234404179485070875818250414746371879035913057079386290475535387250025467500406076814827909155054999906674119113018777636709964596107668652957403753458078768559934640917700436699191975161213386647718822779149144818559053956123537882301263313145895736767898335511824910297332979188170333992487075631785833379831251657789144754320435058697757135901741223245850774254282229553122100677527185459386107196234234476938844362225487878731310214020679542704369551242362604750384078944002691218072379745750728098904833470034348428384686829687289033847293389990939546715808447456512680264808603732892380449564670730167903831645550970819386541200954158433959848683644721620049283958388919590247153328034374518832215307220697453276753727884011613216104593011933253103502105242832420420103191155830281418935646782308850038319797993057758288909736770775442719518046232539114305484096170514248691364701546425850619881870813267060499488073856782669605857782956393521883568827567957223626104096653224506117521816603546030415639101590650288470894483686977529796803723372025813437908093692108762136018488768064313816671789758319640962680405459454458127976265471674483226276532135586128858772258446217212536246685589397777781338991480682520628636692703669750253300369491199140132694262926503592468124001525383486525271261522698190717157369964529577127913034578008571225544077634242740260688026200590595218853831834196955670194448960775605924911585934044506045149514054946244128039096541402017840149066852508847453892850007564029257480275966245837593240224810739940400983338859107618611403494360731592976495706803250373939616718825345606913457200637153241690909391885105785298708162460549352823966628622890844455435848203331757918194495701673394953276178229435498999551209307785589716396300370768109046959444757262319748293670976520690598025787790445186173817942504526250909945852517434502735517772749239991662595041961314693835051911365760683952885968489843029791487398914993877876321830818574180813351167569332204465715496529324859487814087780648373313606812718604616101405566395119018181271966514338340684311414509123239652172277085064613686398415907398558291977111482443960135363453607700584486579910860301574991937222808882094924889624730605698965597888080432338404213813480822253988782276487552447669091706983213192654956276540203103305677949173716524667618240885783261263370712474841519582576981099182134409096964308063543007605286775686754387199074534080970504420138171922422147245620691037622155959436411260652985291426612739448915873325467945095817773445797742741654692838465011049195999069086789958902057109006368533758624783881383246155823473317602826827979114706081379443050568306826179645204853323975038014723856227764610179206315700409257475605831895433049684555358375313199216643396113707865335530645028410370875496896961869145734104472228361272440190078179210656973244287873188903948291616301215871645989574157432262831170182721703488101357626468718998703253123983437393982653347910601577908172152607448972515848691715846697891229158654643355385535771296876570743818250198026822528623349581389610526669558478570939308733403949489573128159369287539417557017007999719846900571628022222540800658686001764575834930473479084720631780864901181314793091910343970477113969870105498372017125645367606875521190341731856521720671657834673157049803868565292189856543457840299680235501516681050141532116749749058360755046061445710760102849221907068715242347758494018459833122217726492972216773460906754287882083305844140378084436500358520746477736953103152107528614623348146859313877781311909600321780775015632249990412727461961816423605334720987792953037868418037044189487540726476486695043880832748125739689525785644760094473973044082975827056734531977296520493033631171087106280863482234301741095234015960668434571090024032767738035676660689533189214990394078004868000360127464030812922573263048360125626284623736681076355778850888670280384273712654619227352102662604178018491074034268836028938634025090390994653055235633132849674442329349922468391521416573779881441357261996696112896819293817199416680875288083874356487788652326862031161687801113761791317521936807013623235108479449637329988261457433463950993366029476285922809767574623787564232328406515762109473040773197965299318403559054930733637934230059578179333794588377228048674843892736464561570746173667212371598073374287231331884936630779111161772626729567266204659365325631672275206919038268430777305934078778938924223869223700178535363651156558045279161772900174129778792936468972132964059823147837058716879310024450972001060201861940436909476459042923224774115005126162473620477261717246425726392413367300267997021532210185014546024628718473796101793083674852372945368081748477310964927284401118297181767194534667916120944276033378166995799359184456589965260044370382408964201182349915442181163886896156592810093864294893766713835550690639457641307424975967392403305892715961002114943325409079400927331610236026076625941080650340169967584546224427249301086883929529516621560819683080341687093634160618717105900779772074502892698504937542779905859562461727670664181605695813938083184161407410403634945665175093514734990689792008669829674032664447705507626379420919568800081832580629423025099749336881611013872366111878819947805159011422248836979933806023174300149168224738386854210183015881891145240904832295919865695316227526086501042413425806084933484381943865385607030359879098877082359827743218344774591471446590936845813177880582724161169596065820584001476845979290116491713244834318800040885017161055822951432374582511424014294787711222162097450397601995588492174348168171761503316371484569398674905885982032464686427216875057603930894452629819649796677406362690833725004385660323007910373083089228420299692273931489109216496272875724187035878015778366313064710517156720322397987455982775752809510912853704669678245579788665684608034513111097245553942231614962390225579500530776435947844265382397685192539542964558574260677876471885868744629582756360861257601008361322630533928095785015016480559524340091013054819252063746751986994044027080539961944295508574873294721374444240594552793564022087946994227168312090612411563260776621270064998079357412922980604449701322867210889401270457052799254854388413483198400214974008140552983753370013616389335423487119860868620401011738737257302563572029484222703347159687483090323907992731381988919891558221335968000401974388300537363082633342105805358567752394550354733745283210255774846429339503714920387931200750323924928466889264994492882717009324856982153991118732627598317493972389065534341014134249937781305411475411965735454821096250286292647480543493912015590219190344740281732011295913780725011557056853474853176240699186825341633031030024114302325067556927878779333686456877866999521724489139364618889748559652583924174486788445793244166250066423274195472493935168578825659953549615389438701934623009006002397637209378142380248919123289872714996545453872047014754894128881638365380754223995747894312191347670557771351881054453184078541891824072128429054510729667135769862860061911206658676773546826908455347068428282661812487430796280533553740772456636724926640789645819727169973847916370936049777559058773779273582973984108677129119574224150288178264203665272703636449329583938685849863518866055865648432440399799662257057321055070850990398873500545291703306348627815511375270918069117118569305116916966422779478919499490382719216234201294759818019692195079837888235364414789661006999563761006736881487555824422098241639095081237726400259442888319848864887703718890510320786935483277638071433493843516669816842737293530058885944836242431388892128762693456163081551454840571547929470964607439220722886720236656864176127261529250196415026248312073841273780087541731526401496577150086931049887017507401367192605908750270697940438376499832220205206910213536737972422216258761565672293877078434452453015586972160195860661055526299740705571653467116096029933784663677434786386296153454269185530761499590843691347552090661582984327127654618553373954599830626813407264862629458706548289177584499236595310411881691648753515915756859626481664620392287274424489827984033776420897105552065904340362610763500400407350414595839681015159414895659430238954559756912746894560601177350675020267468488211126905944745603903796661857227204445697703483477652492724124490986863147437804954186223256442680602637908310556968453262981250684769710890173385870823331258630585175296573850682081083997244855784317130860224328117536928173953257194233408466772172389173000690283879710987256648619978821014061909638204553381900941606260854345286765952178125249749317392553884741003199593380117551033305879492256060544764092604538871489317347037579510715761916689612357485341668099748039448501177736276696266026266664919048172054204833342057958773293132294720938815458069488697742524167004239803636549011050345154390894844392226005029340676602476356580731331302120292891730264234349334154651998762049926287276220327542610212811582974164583625783771525200039133993129445716489756759642381332093465645642132842501541980149784902384028531473607333317343085915758597736432481108183616792387403121068729473054163544669628594243208406667126959489657867224958624624730427591764425469009858939595517900125481353610193006202291551866835186200638079409560274059084453042065507714126498954141708004011029622479265726244479329237585097253140062605679425655125701943659196923210707215924479390550443189422449934104291556126494562649226002406855424758157018380042964883761861252459266140887190395338248219981016934990838535762501232961417734492064375717379122483169499528801293008165838660643963729955600097212047128872888090766284205218934758991698151047941703154084421002407375425318888544653849254624914669652054620672962642117513689834520696398704628367478955940965509093707532004105509913943140097636388540142530043454117770040857180544621970175045494383325930357469942076466529836537704795660484552052174229484814278778704088676809873032667157344660184987141211510653795480937670172753118126246155244798757098467323241694569878053598733205412961304753191311680404131954464657234709039301492803544034706758556450526625582895806497435845459438017105181852940159150245857718356944242194264260050223604272797152518135205710087306344042413843742523395170040365807503511596526297608358646586233408551901396365081224954750812781241669215816566463360333275155550430533751282284205677617606364752504134962872153212486989606332392665522800464068837117225934972498673342969945790783709310725625027907366907166810920802751842532220805801043401801618417804492659961233861193146586804625107623212093557293956279182592646360204755916855573839433850391127391686035256944868447298441934136847500371195569507725007583859289895204781752577388562535687644343218037471928869610506921786808889941466762908074671517258744244574658406194808489145445139639924480589688063508862275920640105194537113066735247022768871669531361652567445476151116789951112870731351522429701621264648403052949044374029925472375419585360183617815843953895217630398077861708265551936080653591385759590368236115754029711909886700738394339180179504320786876203368953890564084463543026712756574076807690252291761205480289693132082148337250277671051401376361348595944604049436034228224212439398808678717474490334431058738057827597992097139935046979818549856428085857081257504632756792250460229934371579558511629337010541649443333121819649514466217936561253841282279388451412283068094025716675708891450518937413284227915715094834308134115880183419671617507098686887724857115582557164749438305991526284525577286706184916782838725785063935790373421722021699489916615896025926729484276968924678746867054345687430029136869524206933364993871384014509562148496452314613482394040959881850341907225562422915313367087712456500145105249367278188081527531531396461236294107418790663851942076259600350322823055141349830589354062096661550429856488722291599853716093225716118210566893576232850914012154536913797343388590877429422285156564155632503251254479081864901437396683006408362895636025626951863270845140761119503861275131317234399014123035446021747586133248889697454360004804745810356766942438577817007446329371257234286964593746975397374100689346167781868218169813784683983777817659646519843890553243044595256161027239500666846484157423335904950399337107894876428171492441724694811603908268899061105283789835876933671981255465410459124255497834427945691466035069713583582116524657609078526650407051388948818321341708005092351597569930108242355858831051329299051839843170072194486544230376403282333254242207166861619915929591411135843838513709909941683814328486608117751846189644260431740733289324078473853925483805611037408898907842918388963692982761387138339873430982658703755366127692702894993725191359230250389822968519363573141330424682337730806554265766462987596858383171066689246786526874460258927196535787572692790764191597482875140055978229352149026450984554802520016810448380299911161475158305347714423499419368104319403114967585141031098491525022604409299404030303586163210874930998954584609754560984939884772179593732561687114625481519413697627644672063754451289073079736860194188101614243226522346342320078791016595983343746313561887778995741368643456237922958928079480590097729211692008418897417132193279924035682444557106857452214332432749343839317924550262937055139403264376378996819798659067420785285805576272994579048920117557427729735400365436587908767709248495754796489166559403255595138433131189987887089065195011136872417857322211082810920578898575102968067902667665998043614655785510095573443143901722286143579975635335969580713571535046996455413281579131204509401433523037523106658101754643977878687876555106086310591040237004004160843151648428551433704338340464816625780441170811731816346206006893930178284177657614224679460071756666904556310500912229632691420260305260892013842731684161752831914828570773488332747357350577517443331261561853909350757782648124217284655786847878174080038740120826749667564436923373599976949224248653136150081980900699435102891357194726199125665941419574222486503608299096908673107910521163858901948021868970411058621234945522118380145369341412901300203855087977422515470671032503065066880207332335869746951502719917621120587920364775843949806180237310646300988763304605275816144011415011797975953195301667112295666024851550089733990785865241280756505044606881271275899774753879532475576488504529479207431701887306788951291737347154791807866443465843324673677178446639513647676558338913426288629612253703113432139011734213635450114312492065051003127259204914687215998243952641428029637704793581439406116860394100631229330396938608982059376103111716088445897724151432516369430657331733274902954764728084985347530421593695974963346845924990632213891838162589769992394199972213285666719930280025598860627249011815580665769339356138956695786538724985085583885478141570064118759672590452311839352255184066711540095199296677648779066298118541337123688158213290376273169496688326690094793077397929286692121170125596372699231276251117755160938007582073907547662011981601267464456163810148792285121284486632315086167989830987327150656626871913438935102313768943677102170148682859380038580526321692958112528427441190242502071741245728599865956132316970202403725144152903251974958254676128003495170121696088912459950140232806508011957408053089713748826016501306461139318270322660511873345707993582789507016144965089303654206893851813274362900700912466576735313250022686183927134924067235824408368954177032830463175414880941108642808562386971555185260631976821478090670436527343956503134109076007926350068381828861532798512660368025447094965749067214595081172468564757839406759199857920533338790122671737142487791913528821857224459740206122143396925568792294102793928702415761007717581232823234214274885972751165969338027288851366721518441739138992403898794352642775882858827972907069516870324633134924418454827167602370211709161154585384263157558775794498522664089598037864201136519708018684536058785242021023153072933162289268367844851878996670690000955785908257089660583386960801362116604130825822324819811165549186357739873957309220605460384828387225585554752779003036281397436420827889374632550037416121693977526929426685129008970568534641380730370779755858637486986064585458492290023311573191147817960002330203559706887985033942031079646203612436124339639471392859214795522732198443691246654117372782773969927158591174654037816978905958284120348816063426534579146281729277603229000516641757736462696231686733411586783720316260966319427675506724082168975667213327970403764863979306509377403617728796858389830067944486657461501806840753451362559882920858902129111906962814029899095441280247419679324026899935519747974649789250872269262419261244694867747927104317450235293934585737078833591714775477052001129479361492829753143428839601463319036347100801329864679747839738534909975038624696793969901143096537056721548857511848987288544777064806422280680909780185609635751513294193813200114712176526705118734668750924294504575302439441317628296964076651752736640167417417107689810918792139769489861556318929227279158963293711083705310558313497350303361584342522628117175817307794944033776378535479348732335224724171216730485737909084267282075534377079797843693416814657094931281712815937448316758251427369148382727312420414397702819157051538613906061131990541021256535360629366029474503357978298673343516230591304228822897146560761638232177059410065448289620648423509281851523804210929183639108664110143488581646590026240104736893189322623945085181186276153339024855572483703840409227720495718926458720160769664228763999263060916791662367624490672584657235646093574783127172364109586362152324644028828196620576234579351069795289958496965578849998166877859184599245808989195871488747094181018385671478075593968532585789371325330582803763710667351057095537623649972651557876856109603549191315703359074459240632835962934625749878932180911494467976686388691270861741292596038661010451714681150886111051751636202325303016425373541527153240421155751608744508170179585518055681389676775466108889491615131472558450054241192140034631997398417953276900313306247410089046837449059694358113002118147354299836940030301613475219014436470188458561985167332261702379553783054787701777471669234257194793491151729358820024047278352705670045036801147391954481348828287615343864405410118435505643042693018199533590336003637030907312865657359845485806831938891137647971103997703685513952287719191050879757144505249037812250808281385567107031252923061218748909640956847821500667902376581466077031226514546928911512575490451162652024135346900749319503834109859174490907596340264799020803029888670521664222488453962104418676899402890156348449921336595960723470998873948434190927978652919593945058309404631142526400540455267689712557680964534545079810536981598549724672281459147631025237509835669137694777869765473650562201712705419283059847164921282218915040679918263620066591990153885439978509550781509070783228369004352311917300800457313636983196927838389224738616906931874537330832531382012446631343266515956664511118941273563116303449107341640431049418432355634294823527499713702198022796663683271314732143917200729468914262996386207504847400983721613578205783547885819661351531005067704590678731095814359483792277857862052160082207656329050308381584023755476977929019528039692409905961172914880688307978134190899327910581451291597495312486972874536854005223080114216073515759926228500350511227366137782717285565875453421621554469439922096097874554954044649735709477455701202364414630990414739281934041672061519518611860328587170793047652657524630758281146282234524096262391553946472193223133588562397643238197155536199317283286450355033382958075455723835509379996124326388146266268621178635661056027049781722416646840232765356538382212538902628860301807374434589795568945951981562408305508410873673014517075892321091224472222674949189708402031693168377250798097693673128739981943234863387042929588904864651743985888766479581366571959708522281037339671917264922435936875432267757447554144324192569237836466930811743656273708935620568891983772408966737531694942580353954929596781656784788662540001089414498226479733121382454082779749297578948482908791173080499834579164719880085543913708200198515573477377190231936226292799585862831777348408942016198552938369817983939277827669372774025281136908103272776594029576483327213501274263002531000393008888828464179058665099412761437404042424811575706186330084466292835696132751758517204368746115101597491189241457986800109487629699957701567224169071163548236765507942244475706051071458098533860494114891249796449400806665911483279172382375953414668739963188206328737910221839418253252445020720239663243742374547209487136116059672278987422360436609713243906953252869479358054834931487929800999465611828080291729659568590828782981327144358145138551750045673309580332345628765627095662260615977388484785220065864911812057790172925144506505033696063038326828088259431424301487816583711617289998668796800471435379497159881377178626833187742078316520687515762014406435402193509626575450242219304787123515522282229590774317538554891688878162599253443603740048835617994672823446062475809081826920905578350030695934618060097389888913105894999837192303672860955140663035785596812944904524748150389165010426396802206899345203387023607897517951025031067774575546686910775584497041844638635743215159437149134109825625255956026674671147162363808404353777211266870688748496068337852245231438934051330020211150680481954960994428258750958596632558987295287693330905065110743813459361119432227294632248021060600279047997595514738236565554955304902875875968469927228075231331177800371864562970475750807957520488755390320884579821416943183549558943473442504721188518835039127177064405494308828558213054123008981661536304572299660770031716742103417997184137470861624080866559088309634420752464446718354151584689009180326656636114417211673022871480054509366289504796559145457878438011578359835971864193237358327981027732723832433614535873390616144358359849138308908841678457770179777710720342315955285347090627023045716192205773096910292359654088714138183017008855026923293650658808844775178911882668753784033618085302955119046136681840867804864660345019863231376930498341403191858324738897644869380414982079596803615156715884999422499736888648994961492511709292382042800017636919535506046700861604016991811137084192140919142906743514902997652227436399974705553858383888856062300216689879055336815018987398570465922772214140407565489797673777044287292231639106954767458629059324755233863252999133736698532166366453326200493498274747736265257259497161676879474733848880438281034750944613495470780762270853436499664659367561996456100992321308080678551525149355130175726571916292393974129510333187932771377686784134754442312551345950358723853769050645061441354979228948710715922377036908721477806055955170037202345695083301534949171410154801275294426672410876668293822455934570184354602816612166883451450777293803556396273089224847077717481469810449624085656783079029868501825767278641669447762091244223626843007422706030306561563098137913889223818431974003227679689255228649809264084351476571896974828361597904323745977013581519859285560039837910455931964419913058914895038615726182104072004461906460331154252697094527315616476411400399948455487241155862870685562215252712365815751204630392768463574694296845349543068101587736322596199832784092673579035812897817889780825642839232508172969773101534831367921812973518811805077860970409800634937595845279815884992364898470976898149642232763299475173311857907080743365729241246470163282384271521114035210044149313776720600816845036595558244958260327161792053511913228375625443042562312583753243937202573805860031420729284888352299100675593260362630204958289554320717510071722172208891962403828368568913311661112544630192374200833807485426060336566375576877963423640482844548452899706691498619293941246931012993266754637980566369176322329811361491170317495381926520243509147390933167501387221131303438727707212612513056810580668147409229937733279026926371915665831747331885349974219100868766311282444186490039472789823304458664882840725782275402718130213935988175882682751508705776886572044585250199845923299850065705020283241161517577767520624309074286056339614502604311091857060213833625084610048247115386305921927428787466784739433236871241923355855208701147765983622474262063843304541851478863644965311043132107826764992794268150720284722728856243626553284358332167051919616138754383098327090224683001625070002467641749888761923935510093515446926534312376238644339837753688756271949715335447490781524590658397628114173158169559752271916359533336408654747633631577379040335637692878292872468314477693443363216948907978511703755182341474208161425087816608229350324840763422110965950358565149684607887811348017397405840552878235053755397843072058306353022181897386565238178989834867863124678785892134104156068642227475226311944874760230394247203338922485942170912034603142591447673930146879166670257754949018370426840140491927218254066277464816094230168309973248982021792783169253223403010919265370971412645371640559403671783620262395955029759907691379919334485758299094611907714411737533403558396168481870796549405815809796627057377190598148512286852147251057925617673602199947597651109489690003859676871885433232314501952357483144315684877006529310085917312901401598200854965408039797274823235463091607280478672153605716234219507525112283847820626051234428258379866406312021908857360076756945933092012797830884484370536148742670618691536431133970492227340643894246005534356818192685557182781782468138921576561816122447343863810580220358516376396853059878509983329733409362799430320101692534866378621143645146270233912486176293667772227186758773424005307805015708173281341191927145457368055912564926353944199884123752864094455331305014230598851358445002771921590837376177371399735140216504562524073137598280486919496035611341734462999562991478594033953238035811311887262965509968618323131770604213181509908717164965678832540361633505355469338776413972198029927345634200911176289266399663803896081918386221257716890209796438327703947200967671779507350174987515512561398345673412464858975783183900351907661769387723525736313914140690857495204359207302515509813403063314923468066548273785155419114441889119265926378916574420391322425655382580438703212498798657181664649039872256409038909915064326037563839673292620253309783813505179953700130582111246735992635166398777244673251529780576780878099250586037537354076387228990282278254168674634750576504964805668571928051746429664890084960577729310923299945954037689231212036752107052930625514353634744591144618163065953855624269237489130502298317291805139985051459215153714636333684093651811607088868880208963367383998635106053007164185376019616934211352166701290827847589909595616526069383686642037740861782753582924885635929282668344482109423552961906543767489736150687550645808708767434611130870492693505923423372619150049131408666686118591402981102372576978503489525450465443535233665561854085176226537413908431193784556984018630777703755377937077982676823598545927243330414065317068008789593565418169660541742985265742461588708721376690641367534321224817552122515293540466523518452765276982207723752693963343438854871071144568325507580759748642876926863888840818624820643445496489049962729024959371515295542799818012326058314748303734304248717207537734867948180340408988693958524548604264411299729227773953146786744050621799041182515322448819606377024125147144773945450843520938851291090891173592464855088507669052932007940219682336012514020439176563756663690752856366432097379613079784622525288023433893004284758138752576500546007423365627111120363952354034391456055470459941533862177185828785401828936527414176976464840290028174125117701136567956687476837898438722946221479963650318919847243327431070023481939827254526533882158512051103757270773781886331370355226668278121516835999244886031490977237943267888622772010062668959282577900760601231096931598569023788247001862804888133787255268081534330988983514339684570708742220018024624111762765338271969241563073151930896292434186379785525442805464932630161527016928108244694901418413016218446539659860744500444940563716153735981184984470049540356104601455023823511531122875604397215549833716090941827051691461614689728021784729056770482125393758717338773450655842963462421184646843684353409130318935906015228525338532856403608406476812194181122069876702046628634479684659406316996930144504940864545790745138995401595081105645027338763512619523431638532409096107422977028659462279176873187013949417408599922639540641511151149402096325255490358027524488304850969494262190738518424670110159933960073511786060951924347976477332030246481828425561808267591012122749508482400143498026624339356616535924873032958764069571097297859462927499797783723470691226165492718454278818392524720182278173358675868352775709722401084181748949305709443582374313939238237250601099804738246000468128898480587982514222360332036169256639771427737534932189119387200921871536265252819616909170314295974918594641620945817209377401764845572213874598881851121458051275940126649477795490106615564587636856665816950756718840514635681983141932401234322949654227501775981804997170973569571583454509063792190376645317408916720292743316847202541636611062553497850640087302498572427886720599886536293559126591362125560786292966243098444451593725003173380075759826723890348402985222786690621845499936724463236168127603486909849877040986109419683193004898591163790864113293636752224481143326275551398064943594825107327118216978117658991157793060372259971473546390242519420868977061727845472428936913077757856452535144568759705678581148826730671607990963865356537343269855859001478905494029853228094113401121302376667704631081160962969590907271787885741087054157083480370107581016299341239009601206327746655867656924866362092304453907992808020410030846431421260082310112988861910044385330784669428688972698060149430419674373675903971459827182705050283383007733916654268965399077155716332750724270069303104919933346455077949833651441234115179551541292898301971951927199487793835764316315883017519819624027010127463691623131432703159030070728526565878851399260924463233493836611776456061505710992674398958547420133330904057887274584404339230191199874850692095154208525255633829255064708368684689495455213093781401031928769375855912940397492355828763175362964450933169956002251922752797449049979855125728829160608997659782844740351553335259970690806578734537200891842187342510257729130604899912483883806811302396320909632798322347384627159500097374449917475348501577980095805066327554304055574459265210433486608215359747051120223744805950560114548089324952179972189561818057187562319082793940097429070047334966477503152895998388397010608452097208225945438879687746983196550013769616296681766711384980506432086805467016696097596301978832126338122437986396474362966931218825808407530374068426485946046190718445014197948871702561730671941755650550370863217853843990847463933231225390958364119559739002938593874477464241364771329477747805340846130445736350903988568698158122383274592453602847408537084897631122577836172358034996634227457011323686489277553628242203440556358375093332272695241220566125958445976341642222407760244033134867248552431467065778773430331973796114030697125655305041547347046824011629263027726115968320467301335790119550222667458164683602555626835740999817381453944891934588623518576515318052763091255251933959135104094751404225302526682993535427411042822001154480245250493809759147435324684292153819803303960512059033083869947671967129483238396143469123724434723295126833538833845231461016177183096708246458312314422792578603729396558795379217366860590955441811386593023335926884561589185124295676113083746590049165806041185723421992021362572397718837091036749708428046166845141173683830974886581258621205005999336884205566230876643929309194821666252394155778359466368166712102467882636595982810928261618697782317962320541256539628130640368212181591772236695410437601895148072873603586013966635034021917369974989758412018998142739217502569072107996735669003300300381941151796284788545763829325620129608946755193446666638044142776806201788104275612585001283864600649469955269836761537763574102957733275541164443523027648187694686102650828954851671465764585868562507537246249297363982764869630655164129290194317429410091282200138793775070019337793727375542856911202950991268602694731492085484735471816937759571501083089364025378220207680935372539275516363675744680375244167029223373531213918747042441626242452631051323849728721300097834428265931466974357790180984436135150579375747352776261735322503718619671461944502214939214713887727248604092872497417710483711528443948683045768715457871632301509414321598068341328250619213187894770597394575003878471351991750457618421499644249731658072351853248427667300432415529883140793790408823747538188591487899209084075716759628639317657044276329150912573093182634103976687430128246309599773919650148498613779056446140388133199255552171260556886866116159659370550253490058495646680331118213895718845027656995214554638557638364260582794980808030625367696730351991259645326241518687812215685156380949240739684206832407711208023453293437232379035092347748572170371273106969759136208054916527012447441939978591681841087626675832278887584247647211698484880859174344280110060901774621201065378070567085952226662696954353745181300674812956373840298896391149475238147755848805005251766975975828454987331859142506100634648103060871294885334037892939952489407209737413363567838917969157757945049677458095685093308668077243771398881327244836396663816879395049321285796489310469624741137490007855784695208313634071357576657375361843392216214639033367346329343202169391655930944546157954375164319997134064654980411763058292231573856742173430644900546213258787050588171500979480408160016380354258079422191572311825215211600921041937066540871479591162758208644230857769982559771801026392329780420731888717579646129135484437287248817356648198478871982178837905503058575380709852130838900980447588837812046327098197770501458425800881661193420393477869592260169664240929959813825424349894895397284546130577933393163089741463545553019548491976069279857789918890557701951541941507181800521766140210964387046789977332756233921259271328438563236992143448699682603893951042039790390602411482908544789862567191887590131762271235145498507048093674394391162413596797634446351089102021765288548189213461823085746804645750755908625458355703277325114441402093028154623242906167367819623224299143943127995578890425814801188855559888280129569281682146929764495147615893641845730795844627254641913199013504193075382981209283810923492621934892387678852672717808221215341151129037123891210615864623736715353982680936702957107377566985824446288664035398791665243549100440262438931867433403408605995471466547752261026244735590061450017066233943880384584935729583954727967841751628480557487500637818774043706335665529446160435499001453034814883061944691380091395648828137877663215786213020364196158109849814356702851627568525852180220662334954017021124384901015398779104536511764185385631913754816563737801166596285771131157283647335463400657497547942160782270364845431922326732201495885252985072290510145254774662437375815768349650598838366428950136147765335791942527639393499968352297923239406104798321647682929069560457995206606527577805805895149293749631929849658742911010070540651661260672971635551577400889623702735666049646932674766389340902072897838589603994425530997130959635636302489555969474659060375565169446614686248775247203882536310358257637751824291786174100941415021078669571781912061591512793531119270692388400565046951834228976532675042394218061235090542069019658377285135466240128337854560245741671536482035014731146818675892589569231919883917863213653577805462187941804444074448629148529179829631864010358038301707561468766677017745583172466733748902062515184572167892866761963461125716315672691524541910734980157705064985437051659022310234231305823753243338287107316707697035424935527508350053460197806380604061885972625183241067574684144811423456679920496046042203644635079681485581118395533961123792947555440816562995518354156400920668479349826465186553219141492964031514551081601010577638087080979342525061406032763210083985657281153199199213815618296721644529897918550361701332013166263679166102369888519927626712073685028654036873085093007592518347122119540720113685844220348437888195487245542045343962253619911843567143825814358154558565197881449084017518117649971994965643809896557268495087340141729011480472977800120745099119989370094348275085230651391332547536836626165221178891132687901806203582445914209625798848985552964937941532845266159363837454418388508097372414010580729154982756381002976668009654509415264990195715927998857567160321922227248906478660001282690920588716868488643939755558088453584716050419989945617058214074480917739656506796277133446351494546453538222024025242596236209376315475368374214496066333734376879651112655549107971313453998230109967162837499361664444314487455852045436135811536897077809639740617107984545320748607967389557008078750568703463571400047265328499132931666738372588991904714853319688596817046525324992116831009365944115260590247954802940350325603496011472078497546968748417503388291748033052255308681451319747591392604942278218553097390904389437375645139015106291506148207922632838184496567245601662915651565553809635651197135769129761093068857976332975381356600788848722249069645466087320177189035117004325104364490451520933806719509025518583415755365489632085263959511755506202009423959543503521989993963152600264439141145038474609673789935664373560964238011955018695980835124077021916523982164079466772154913563677772529935386283693523748195438932094387231881480876086505394994581316275159076501856155204843031986897534805132009142617546468628859086645602926904080935592236368243464002068132810906265464648261360012360685381676288958111529570185882744251531289159102499787304703331554392817224528908660557710989868847704969955074697620501258938988813695292998968664277434376374902714146073144613596531806653600220231567328751791473412177546414440939254001628776213978117130473384295864907558214297470345067700057694942422188589796808104439571877671074413942777094828184050304073629243378475801550614167034292449024489902043153489176396474402800819602500100330900615602558686816871436281630632842619910194656409564216763946801567831255673985887515878433785788901558755940292122489918334939765332513288162107249361546637781974642542374496112234406287892476031726857422224191452071192250561666071432827693048147460640489731830373258885536984709105732267081454516453201355946908471899542057725354896067907922453771106409899322732753576757462308974699419444453386553205037635211130152564199290738567594406369508032502326751428422886686956203815190697177115154189855434716417762503903898532793237452104717879402462609669109364894010057882265704966332668679566986795444543383635032471830854174629569717999517195102666722044566951329316563602234895611371415914886778071616650840971184250358636911730845742176674756231320743340394766690223598942251032815747404335763727652664001091570958612757811333105482512126504226704916459688836355889227769961261940860569538978021532724338772507664269592419326476824389394777879195030560744439068461251592235697404240495763652303746842708857434679268771785921867018834453059221224925284410134143366329920121835817033049725766525318544407443290212841886664220874630845605311187223451471205506908533185692130637040979719146189934850376373474014269478464151757133396368686645907798083701587282431988275238933021801360005753670657581968602103310846073080841742931382334746320565961245550853997433689624425790322677226458281889979381211902797257766775528593778165101058828198668508146665633317400110468632127084114800334189536807324416631686140611955903204726496763384331309404199590810557210685453270908201362218696562593410048037298295490038157565072318823315743578263582775492899807570353623267845084932319998047703066252699411368240845130447118326596958875000263961546044412912994399707125132428246558889351672965743674907550972098158140957422521122172880215759424758734899037525939131641873400348375604155173561760077383998676794390530838271730489048979995642665366104343258226168647996100299555302863911269244690897201072559884075539714321064562449757178203073104716159039464527706783054648844465742176280896356467597974783426590688017211503926813674897243886148786329006697758207975099514429455450306836811499506438714460165529823286860638172323253089523038993394296502314429895582777806931406503449555040381925534001775676219610486886576834186357009170033971864056744692436843517262049731535545177190002440850567901017014368739206536077339169732356895753345857585681824660419700634880452880300586210654001752110277289899317988442803429195088057406005614682506092021038277816411820884668232990796446330267368806801889819832846454342900225577161014413239753161645030681745694779489572282575070229294662959524181965231814397632071480055874372566957956309769665744911828829713242335403073034983189309129311255288446610593111065674481265509681222942050554495123082072528391858377786798052859670146823919371245544349962993647852045820564973896165568705457337301254350863456720236197422830478656711592466547915093756201337168574504385642138914783048503144735527239506079639093208847446737829069651732578855446202723145755947937243890591282415448603448229505029289967315503451145767397452949713013832647740829510213576385086035977116390887261400381109853896894305577137719498517037257026697727984692380132322561659398741610393479511384235247216693509023175559321785044192905261105255369690668615344160953802233281961445920601633044155687413540765819675307820676135354278363707389927017264203254275838933245255693530580536609856736090185108023477169372918033559105939515805755950763225411101205310168686255894302372851409966693892513054742208723554480045563394377631887945108670501327733544097742047249649305065533576885133863451812839602309158376013380005818807483681224722918518721028659048683476974208315198509008456269796772374995429069958759838090221340866579133739936591973703372532383356840885341450185449258215896825786702693254916852111987377286280416423201786883405528114870250842809086605303424296298484738800248987725841103986531521151394931805566216144599553001566102945657677465003893167716881730446405403259601346186958588460227746915184781783192509257827547094443283255012588043027817557484761478769066784595458393947833607064391522525595790169474610007386921216114384846961739965247865217350901063654499951282645526490651030907580103324176026277025343440233746469200835636384532735527488920481609562593822779154346322187334538863519161238664614830238384278272132589114559872969437387069104793842734115414790940675681178218572329298200247432828809381057380631603604271243860098591197073961849220911718765835088127001687921704655119575468527088422463198763845541820337229711374718249035477171459337517930487250002269443588385397972504933893238816976074423237047599119465744105094291459083655589089392562251110323641435149817127838679720117300420816578245501093179460085456594464752484414029344850178657796535356424601569640538218956834811541600543780704737660168747648392788732580776281926272675143084370048969112254548138803419056038281856400970991857732803632177509357003394529367737863798022684782596970631494585824554160999041841037263688564827154024859005560340944571741318957933292773950659997977619504427785917410797701472030704062699198813533359204787835668177962198581510166575926787877774120735723363480296428755847278454901481570488350421671242876259304711685826456179176322580446016434120070090499602382086938298066304321991315017772938180908070429893530433072242928107785267390283726597198651447927188158797422766937971723307327845706089233882744576975128038263024174841851211535343724936087248142630160072732332184617772330789553206585116626504116285692434371656143595876802141726159786946390988520395742794245006350893820910761800149077464188139573524231701375363902690129937752036347591566564846308850453347875251621058666109689037811423130848802292132542840774452125755756303801675695461402620923981815026929653823901100750786385927964597454246626049028666927441399533519522036167259201185905698666518455960320173130607233226727693575906538883481882324362066194115696011204454451372011272157193819222079701660334051299545449548687931407690726236971115702747088718881811280145309912183562167626129891897133043556484314542032874448834993093748866286711632013669127778262363343421808375054250286681856864576157699092558317182804272286654476494240549139055113486382959015583327235306512073532288217751776823970381382607200197200512419087477108008627044830799856665013990819361083199937252374867728377608641801335773097050435247087847928374186445735548256733508058793239651040319360835759974173620400606199701213462178984668690864825164442325743394697713543839506658498677127927868477204049299271336841617920988576332682469578818506959267174200939114823889456794917076235569438834306261033080014807145001953847643190601196400417752278677119632938630835506390643956304860938648000892907675913591275426261269083019013484208049313637124974038182109626826887782910881866959293620270140044302457819140647510805875676475468241456113692119467982311978403903075665392560493607973642516102419145706333651410036262708147670682044072854031686743928420527086966099982966304533634953664399576917327540009881993910594692174959686317149441136327799222702288497741889365281123453351988933181970581075802307454596295006072807592354620118209694260028093193127090117112331407076946605517385313869411881484731883260677410086131710172805670488630683578816096243845841944328223900316769779160703656351762820126708797986228724714913353490902061535361702399738473229829910107761557083812558405733063223927227667984539997371711104047470980220557154803005848519210815329081022059683552230824037164328837015164848424638906905340957763678630021089317445733099036878796508120126819476909822962994930927996218647627895963061852212977331974826484722093735750886202261017005190366660259074542604187199263266233672306092243817156218576783855549953764714617315662196026776292128614881805732558457986820181456059448022638969294998856978573037713882121333110548508746846882106805935890421783732338558069336474455698852585347060574070744575746578430580084299066765488910502570557536241149793380520290884528402784428300937232646683374018931681609213061208503344529644259895497053686253594101372031268943928857277400183565765395276359789040958517853509692103029235475724521355197630328737861894565000229720858600994449329206997565937945141659121421064733087440953449564773461440678802561456030580416542146512148647243446769983582041794380429467983753265036343769590413290582897734997796333457218034966996270469621078560084718402470100773304129209595842551518035868791177316121196163142532022826340646627182654590678037378848704899303865300048023904324763993460682150872760022106370532883452559317027711218755633163733370784187404239602421347344983473088746040016788910881907821404295988549116236491670023290345880144508011113979517711436282127471969805548807317270230667290356288537575170653910146457601471624756591871410918191234605581118206438918039446672622213768440627980426226605009489904617539971619963815638667102991931392466621952190335771636930624944674506918110584570999360055731972759326841199693581073167829898485777521808350471630736654776303683062171556048075879258569705187573816108542367291390599432905121679507432976236878787833435155237044422863966837484183793248992014284880912152732592074874966121651795650522823908535580326652994787892945505764331116722343508807861094762387462910706272419825097055325942521406737863124306754592425611708114142673462538061554656420565026787358943123508364145834088732140281616963372292213137632882290151243079761836168832914415522318722473589742708031536684995046090327505195296553539785893223945002135281567409819558535479501780991911509157430073271367626164409767340836597352724201695164925803590184536572011859949957475828903117818808968107001214038974107697639918949858095648893883154769588586757313419427971851875302592969324810959472964059532191723347104810887763626172564602950329146112170545972815740576694847967428936773636384867831887930089434605193221193193927228976542095658169094917811552083812806679766963930002121143056558514109020487296908387670718452806213311613278941374990776825289990294752108595337430814232084200909999681567429817781856375790142355770122763344867825933805183683610395496654674380639845756542253372068193890699210881120262537109294889479908293096384544331122938353280177380035714104688850077941009143918256060120812208744385880056388074015099904416565419751947159064199482286310831305449458686809475214014958749881566065511515332835057723690050303614772121332322435803860903640625675447661590604491785201781559609098432274184512687984570476680347889510090522141846676199401982356743718005459373805659830709772779748874419941500096798920724140364690500098097560795820190427922838275933357082743874058645628599721673509078379792594246976885624152523361766857596036744872111897768117553021015334939209108505431396869314688112164281559440330471896378133518617222713535194827806812663539760539174419286233820935057244628965404974910443683077261225454387152204926489015992330784673302097202609382837884487131642298668444146378153384268200808160042772980959050873985545684056008658585117836314137122703453809021097576088714334610416851398865090101990973062315387098702650491914524106774794187304057479896645327105586790582570081279427521911086764346716711319788352033049550858518159987695250380751107685981069175421334958276200720492220794001458695355950071586581841104002253560186091269466218954412124643043469253080501106431778917207371010069509445166974631249272453214784524587120197523909303705191897083835276816534446336263902152949044820384211529718589950630841693373689426156888357309465665828108289603153613058767732211241311595783161269200814445175724055248840176147992650460727245776731876670688110654075164144073651048111966621327149075472223815469826261382190982966623141399088118304011832821978466155318578480216699040909610185403190743563254250271520022768093844046235825139595422745901205359882280388321606576057387883009629031628143818804876516636144064145741328064233454040158806473633039495876189036648319745845022091620186569965737537167030829617052514812032454920799691055001917278829101205748790552016653647854823629293175657864482801410720526277793203748449214729930329032854627366744685257330810851027684623556831379812011782924117089263310777152097263819640981391531316813557722253568335408127719789984178827843130263530873483431415940360825252999447368111747112010539463402963712233794142030121877723938855813370032661787297831817720262501328359478003191537899248491707567124457019031202951835335587273341130497185502972288305001794072331439876023524831886091257474614101572123445904408797295146996580214952134275798081701472797142867671716255115428855854270611039447667640007066201300038315760953163996643700442514787996716714071741696824722451479662379759067616959737495950172418638259973385955578928234060206471012098974283852010101706451820834579140638598570193673182759947273797216972297308450979465532877291757741072725162369672006094372829314698632734660843000857411138165449997693084550865101203498057665416136870350147983719630897056076876946821827600228026417594781289718447502198379829966655025032668707187594285749583108906488105967646212358775012934975474254406165607999961268455895333908970035931560066364849082592100034640690774689753072785578645896471450676702974475260805841166647766615578069653758804895134021263258002050668711700847643453383811063029542727464335937894674969895359006937024219293318635593145037211117475447746888890097001749682614014865709287023197935623655017094573007598729234735288469016271223152846794857538239967557992530299466107780535909834309321381653689735349692530194296469511222515359910806693348710533160660969567474063948329701947812130395272469063872884125237724376082121589974009399997668077841045888388444736514933316274360042066522771236472093416022855305638413971221875827049523491619116706193334751283863049911038667342395436752787306684787448622933332299812948507971853273203166963615639516561152373472760659906826166906402856370554793021840224058267212464926560872090386770966943791306550896765755999112084757325619289555325948989440719785606767834146557467208645153908398506509005089851546741418314991597417145880443527452184532653919291393179002164155364178789793594878176154279444803453843874832168359381400253391594885490717258883047640516942790932064554805009782032877892116800386455222821222588858630138425094253375929491684812155960385530720340604070274819633788840318417728031188150172383775522025722814812521826219588404129866067729302873240561846419846088442843564129741524325966916880547112397348997021442962662363441703486460282353234309893226081320978515614746390059813333502401956650237545991439348167234093083766906257416489309694708559957005457505001498178673158813957415604610029112079840482798440693521497462505771347008795989336642757933510862196711413400772640573907262745081699679322429835818208470129005224587144398242913484159365685187238381089900829378802832598250454157313784105411818882852890154146573106428707180070255283232183562979264293617210780555352165741148340984282190721079566774927029630048866555252036416430999678611950233009200985987036071750166227660169854611524580196559498889995937189418091827878793060926084104719253055562242485446093797942023556526507335081954780576557199320943862918486017984865201983242696055029284946666191513817052918605169537994933164568709675388952932607213628571409889431718000206312599498586455387387561550892879372228847429895573152006997792176006291462450718498120656611187625649253203755310437399228273340102969290019878166863463707295749363435664923485356756522378739216259999608270958964685371386547672811738491733555858049791958894368201150091744767685383763560488312626263592753206838212440232606202279835297049568466409722305080481670881216955640971678862034080735382305496541150572490416408586877108601775852149415865575739779011420987291782235347642747118184519307084131552851497750114144315208354116989383269496301606505214097800855531397311337974402904220349346934390894148777918923423411259461660414191328660664993799746142454371563971885568502263433694155264225518643859612504744130908917908528869719017419654690341669916068792631713988555911372326675340671728557166209524526829731763037055776615755672340588228306068647905089448278336762386266867263084104522686667071148186937044642545107199370398992261027195431729506774123315001658359829232682154126639630612611061063081910864497124025089372768763406274141185859520652319908925323782518772125517006122617631466634655787301908481306144759025475982639375212818352335179649249070625169673519213429724925541634958277294398486171067241858173100724103925131498470175916944527022805697800539460352974025776721752534590922338690262061543977348766925988200647049764810317861275670431404777924134957320235391327251829579847990282169349424362510749188498936335561432617888319672478802346565072252138035015023337544390161133666265098803328673071464103811831706852946695005638372923248720272299748836737910250102531621023527432694320389066873739799343086553376264223522541860919139520075073375994502183333930507779282952973174268992657291742545338815622887550385935158261868591374170459489809016341734603669936033260239611945542338637509777639087924512625814764210521795067253157047425578032066755111285415592491905069634928552144045556361955448956896034372652016907171641241971932309071010434319375377702731346984200148442678673939983329402909216699486835965429335842144420936768495648712406577261222019733647777655508574112630304490260618739703319544301050417788521080286405427975899692731277149343099088667278345927975781918592434525839327623356890731634291938679906756139444363048931987625716101078929391077517772313794173825052464839590463997452349369103007876545398877578865518765131628812424920240744583736543498619255419376290129103797908469479568727728556389576570236647200654279140146304510771777775505511311491483204318664316435916961028375573625573602930897645488652110324532088135568815968179511046574285083150889450684864486077199007474952732499478192848803530349922669561144325566857883055386225307378526247087527387362667597652620165910041614584543798588734209717498816528645282356095298993759191709342952157425887382829144003503437346777708920541698803404790034408936812979506956350597254173202385792513252989568127962181389010684951250408157398472161682412016840174010510323687797384156864627447254635428120306004741326679986961307554096274460225656548787751613729762058286086483897416234642558947586404175076106703459674688530244086514936245081268022786226070501105719716183906892420744280115634900958131943272962105154512542686507826395109164529869659249423216758701298905389059150500920308300001087480077206393805536938324183096804604557602489770412282449472307919817946064920958287332538884937406812939799596705002240229156020234737441970938131484748538115540526484921994923030626344951470656050070927412758626350721515309572595673906297766461335760128905165132982153998745799023577521809495351000799512792349599390702364528800285400544775986935586725905852128628978816553878078695221201595469762049122660102948297836706826878140282666404221490306354753591284065746684514199658889192337822759078670564011163241405466320775738438092191088849156255397255643513052341660588393861162463839594710194988857457863658502321534945073769098927750381466138680445180811124915069039167483338625669603557807304587808533011220553521040876348687203190285278682546007813856157661009121546776421465037596410135115398171274583396096145795514718017403255227791610283680541224466756533904191966304605645756667952293585287602104162149004862971225172960923217014853630778563562070471579875204994487771132161757082435269752808763592141082805893053092777511885510820713102282643124096486567835589464652427642823518824666084615951063539140788253438386764726946725965170608557122964730540952597009283406078260388761399337725157920773807780536695496182313506930428557260152031293714618464075137167207274716021056085469093766488348740713803382549178000313112608909615318067767256379759999949531426154878284082323421795497443661259219398828355039013934770343745088854584806943551893629494295322965215177790086975298415249669725521830254605715981775200028775138193434153784266884938710100417225064497095475531590869390254972496382785820299884642174519720234689106351072010467388443801278550040016913231048687919150093955054570867661374797397363206035487980454617978583817601576410773600971274192767653931064091465227906067872566776566696983464661183570922736068983567791221520005708523362732881799777863697639862341945784737429854243270901427590888508247749294710909966369497893512999163888355024283777180584302785038018689654875964239209552080343103501492612681443153934162460230772901155100998115373286736778248218683943358786316177912476548784651026566687941973212650164169292634968391472040425532075140945684925586394275921879238120689940803618738135118358076317229879176225154380538515404661155564627784410649976395149780286045918965730598535736570988197829302020018609105062185866842807670601587454267299776810996858270802318085227540325178763810316702025047433893244986187421504742104164696169465208958950484152793778667621344578656687946458037239413849895909624484797919027082858266153649035408943528458204095440906785339450407090107929757443301884581950756278823511260851779106909796421511425111971435614291272447453049074091836450409796409594835724460469170768940783462430089001016262910077958356604911256683879435677097796144250400264117518346402335337907156570469798687708092006583236951306040030354750015290347817900062699396950456323175796685352016206918893574972926971260984276792656273957933050299343789196488963093989812450461554324719977380915597395156807817169324800875833816428869533634263630780725174123599255152148572562192900100310469879776691572990842241649929878354731970289672532028435631902488998445434306895678919687358693020484612600863955549241082840881820913051954928668012179621271462434082473722055641662000700677233076748156154240452047029071711513958689991137111203604804723066246296970227737881479840353821409492835819729784195120374568293680175004722809228607632779512212272840155826084643787907642939518168735052632487374064172106830072990235604171683574015429331335857509427132578487809459882629930797891870906652142470554568814687163015665803043891458698996339533447653390256728334362154489320677569360745846823097048461335367134506315409187019873707619823511950862602920982507923629375132243576910770581890136438641796184430522957597834223016837223822019212832483871104365716577327427868366261011256280509831975027345089458201056377806887354963317310953022424156855840514186703914726914763951167553840804316891678802001010524508306366123512598911003503038226332101802222372358593078519014281634432064555781402455248539318717404425976217074283657867894621112553393762932336534441045290417158929035270073633728213071279977485970674353025463879582878945452520653159097606336337539688782472014021741996596482656408007566628787633794279848291339882213834686649672547458763408774980902182518780275267645753413246836796050273290950002234018050430584907114602315272059788704520902903613388995856651106360990582600152428517009623874882753077196276240465357141450232571959032802017347942190559357477760832741817689898256799648594227478619534734860393713432328466529748622071925557467360960097020268047129063478073166529495797187827430812235146586074838641267650274985666542554120490540402580261954468731291406680114480790751094615309688384434093841544495086228284354806008767341952479039708318913530483182472488849005145373711195689166601231940771609877024868033074643430292116059652115461854091783689228936287159661624129884538282273177223784580009165909608524425710751476733130016719849125683617981855957969445138561628376387475169177861719064405054768352667449043319647440487869802193345619213479328656749135065862223552595182240641522473469735472742025658146859527258435537890666961294746844201268735923931971250559623138579032584600397033674159390472590578823770120330352226090896096852288078100279841937472416344935379836029706530002896220180701663453411671058545300355121310812070952972788832463210528338734221913113741536092217460409372332803046615017132054427899301153428401641708083866965416723159580963325632851876622406934599545525181711650631823917062327339562597666151801438042674531589182654403311309898706065576195372615717214810623714332163498757466317883017645485882276113572461142636242454548213116646914329430087086008332174064598040688637664234293418537551254914882900102643021203165348162202605660208131651538742132143027152435604094510338006947585220455349049843870515435130571844176597476149945773345774890846224366540434162898588749429863762159394942218241301371706125105322019153320737271868324591686694729511770914022653022920793768933588402700862156080395152067970230926446741653311767221279739115778985751582169285837235037971418972771367319749751278151481546100684427695044860072881937495927256403339134175182006552279214156175529403966721600864113325574767865748652325380670430690723062086421407904462575236212660676498501287268844116140209973538783991908851054691121525106300584031270910647736709984163040092106063099241320030463304984926745839342341306845791811261275996102630631540297340255179310801842392658715911199443669054333813976595393042458538448474547385723659830561274547541817576755558456881958039176156396232352007380938938540805432932825291360612593220966371516250058827717116711750890647080052173743271087815020811752437148761562519518073125106158869185133374371714092323035051276323725144731130690366852319515354821308685359010448553311667358119150141697312017021281162036183110567547091536792493900286786454489814430948866760732149116750159948635838693150634462731118871793070107662275667689144022267652805152576912558617777580335267150473470298988064503982061828729009317493267412103036440560775621273167471891858960465222058026913209682269170478811234116805978504959753775446442376959261678769828540828942714939157303857068919498844848691629790845080806220441193410046998744772301966695292747303503833727087873881683899041601960743807740214888189049789036593513313827899837721434744498156788456409707840960379158412773800794623159915049542127610629172523275932212377008634772190086719439006741318892266377786237519769568250187572473296420265741520505852652605975194676065059206049585565196955487027136961495843088372231897912655497739237021329243405463649996789636563976820125842838323535046170817258722703026432755254226392391631045413900103394325599235032138487611903737462616040396887887968140597027943848365112262534462882996573091840790575909618047070361783895437481244764371342800346527674408968839017273697831423872943504133350382304779028909859941792751903871589316851329679377755144269825126333026595729129541726478280539205497405160416051112177715016156926242883589130925382924134822841869967736769159090552856862735871865895813695191404884396397683338124607722050757457607950365758181156061700278281974835902558176068554762729323711944566584356831312364119198258331387346885206124421680881632306172779908410795994329615863674740303003356458353855108143475705287917859207197582601918688080891362927221410571797733672908029419539558361979519331712796105453501824787697867572677860617482219636581855482024882763131475511501438701430782201939247422220551449382791978171925092557841165679317046143029063567663884296447046516729646307743439870019768865463526129252887143628789671713855008811404522307542860991871839685696664744983959593698621881115042562848307027477845054874850015071772510284402855753745512099790579207512852670687282639795282890568661639461105782101440918533626162960830610909760632485133082701773938597061354658001664147662055295446095917151001652552027939527891500557079822524893704551907921310171150794466391237923312926403326864487408748206482483702646480919834684027967900063739312384566520813222325885763954917377435633982650689882401293120160881530827366305324224853979547296248688331871942774842806095816582724568130858966738537330574235505646557455453666027305574351140553040480523576384580114029010171078681632778785240512395979964310556562418259632149696396091454520327986396047828894287606313696166325189272512727632462474629985831256242388125846307895474052707285482915057722172498570074483492704243641465731309656496399117448169387890544830648986871770005005211634544030130271796533153088465222153342751664262142895115347724570721121893208331180970952134259206565111642216696199712048471409081094291465939079547992300809327339310983726015273445129046106655402515982414222165248476121102934262934774142338545450657299339744815653948977916912081836354729073006131595704942734411129472843209217040667673547435989186838290073810857842122816558926197308893731502865545136341766662062263064418168993519842172661336968440136040435014048252503617239503524449960030946394711260870369455863599328769794835043110467787873946179411520479687889224323663451410695351351539136354354540160156732550205812253931903544911015391217732049438045077931426293922468659756663482287686714089450230321507828361879017797525112432408065328144951730746166210629840910426042871818966841815955055315786826233170969176381633345680677490915449236536736714464405859147122960110199105648084004897526902462298577107377120854762771541586583033482760406833265464693359875402984937738312842619953983339239584959937211226097439894232589793135552825527188757778003194231839905840065517565117775227612629580073076207562181395466305445685644019408334654132311982341529488902591307030363934722326772192463605902071641781027918051349395407922764657979666584299565739616278140722055980619648584475119256385722312004636396237455737564635648070964170861189003323444141165204556206539476262736658390677858398558635570918967197134795464854928335569943716058470775455997575760668269001901956804904052853750476256462949588909088699042318268381949820747598563812843844200732304309031446969130658100407577156448567728606034143368966007491132437469998900722942669814164225045920119779243076772054946049194016807205353588734859236092335894308966255050141333769664282516849090301365467182824133690264360795048244603207663201182852203074009352976729997156237498100649713624571588448559499310567437575613864811322488644159057107416581110895451965457656911597578056897452974750490925627610003638590718904098260428885060610540398936284837166809263584769489237270923998756411287705659023990533794813096584803688126117517737913713640664522292984091384281687667766868507142136250179616558826657853651656708418421355158031903043686583661528821904600976039894608170637317169525153799933116114416400485148940939896688372284144347186952079631231064573522960812488700297337615794902961816170647941735481484014409180132440559078546554144044414925443894101982944221111052693034806788305229575679992800141339275443022576914001629297397076239810690427181805207444223269130019756861838918195319477899585150091128467709385806968476752135979516869421917537206882912702541873723230709091955482558500041180811573895076613889323200957925163451982241403627827052076177348823486201949665363979858412758440158859389229379931700923724710363259363476732054104278484131586620089945727127604428186768332279043788587768881414759759904766753385006508211129059185019806568340312681182949666719726289289824529060490355590329484469186939996753651025236743868339913719646418348277465875389477796580906723812119284353895955062801714964546781600276128194108597483054560596186089896346760275818627194377324485850323914845643970499497934811291919193342865929375416832319803911383065294365102983734494448860745156987940899278102535874044368092872011870038268985132905749312922402983039417632559812867915669229473304834589502242936618768693887838532253704482929331159006408123743867885197826973663985131958740746595462620743389781021864973694650575679235733295676085527458687616231242206712757533890884846360047944930931855121268871086055060872535798032672946222625763062476394619406544374979408188830307802324730528010277571697148798711306455532650523812670608825730993924802806923338185670142038717661992476359025807168230851566509743683011831619505967083898177795198143388846532555738393779010202605368869454209052805690845462354481125961992174475987954084333153429215382403052216557712587727769522868546354060870100700837677881833036085850521064976957777660469558017422741343216099131218681557589748311317647892788921989623844726906451200217068551785222351218152506478545752536452704906198189638553836867213154980695118810017490808262831968071859104766316129683502047842912200469539845879215169466686870958774098337876972973892030077742136990147261833288716152593486068346228229876051726865788249663849865685541968163155567076645616360511739101445360567933020401338457015230920432916450431357788546682524110240429518688950680319073339378011350753602592468902757827996009175544311621717903822605975578989457394531468277487173118482184856637434545382366251130645837177050116556789982229693451621569776597071167423175559987835551237265037233431625520501456576350896083356083636689010563736526308725008507314842637940849792614672082278055537182369892713860965671557909728610956437978772209872287467049085902780834288935212596043068821177493087452641107992536687050689735323488525522090711329737429013827375464306039170245234452790161702286711621312010444855719155997345257623256623048906703909607405463747549767499726337033971374798474357551398073502013230484994774866918849468357940196540272698023265522072936531047254802436663461661894385841257190761625471919212289065436953172175632900299301390351651829303514713635936469622245998459338423643960650107271337278006505237517995861379051788838282408186062436588960360904295373037120039431871358151070620618162798379143898502892599777270787694115699078858314913437798508406934951793465648932360822452542355566430790336937886517671458695328168449157285195734097131576260783302845519736556465426108639315298480441277684388838791994573481790897649201755323092023593131122968091470702389499581773333627860365227656446376951648035859285991092596697655660187144902588131083444120037084614959405282567525678302513707808109697943166629189266294661453172119791241972042055628443962328773843595741735179555297655385595708651888709603218145451855669227347411152843850443950773875738104148106701490982572956799361608313613206992227265802256863559318190964068719632817274430341113842538155254847880750925709321230124521828861781012134410970077129357462484542928562411519286820665189799128829398600616801691628220277651224137810910469300770499195748838946227761592786216072929857606931286003980234029007005121475101725105891494501991397089652435892212316449885027360536204546915109366731503693267066165859301407053709172770633698921715087042402486425664831792678839962549547857119204596596925276064510958956708589715337125913819084894282583834962991769403810580186171897619963352534127588943786706883871636418726274480319228403898251691084143871447918938356108611885769119001399344647079069782972399170260507403216445899982439286988278250710033072045736824478258908201389478139919003624328296418668427992458006488119723245246166794966193352040676089825218810635641957342148753290205034294164878833218572102767081632581862772887251913010658843434402459384853499784708095442794802083684851885293196094596995586421481678583545045743594967660812161949043139702091812488257917723542415203241403278204454646378681620312576536137921017199712002649249328694038870913314730712122226658272878671666498437976785980820509161476052925312327895370090845790952311671943081033819621672679677913924259412274147248713311189346716037562405091188825008394096340604655813110884466194699139574834603283698506649719866279394626721827949863393318624620960570305911912080881861830036091988999693547702172864073799344918354151656127926936384943802594616084155106617412817980204727059761517619062551125570226089690210818918335330326587079742987369884167008352391242535659109781928198408492826800629458525759371234177899231692658858408163841612789640508630359220255055018989320445495299146791883020487510329554984773643799704760296387474219551373083314188667247509729067450592291037573993714222941814819298814108090461615551003013588368142796479233100937128245611030839380780836353924353253665324197173642212345207584464753850061466669837464524484786504138139817616838121276815368676202115137896473291699488910941516434041028708780234471398859425525517452351250375189882739156415068177162831720916445730117171137524638257005021720114414307249067849659268165822089584132353806484413152521435383276473692971360918543386391090888934069203747855993150602020897934944052496276816166965252576858419928838922374823042132094362360515192523528900583681026204501880009867917343872703390369778480590855675377412744220846127869324076726492040220972349071264097729278894661493383591978940618391987797282184291056170878230620099075098377613291769694978965052479335251259503171123292616218054949728162395999541625367590038862084045901434631626967418109080470685511416290189574084608790231045607865690597654748801852423025775407778356969765622398186535596782097096027075515970582382217013287560518728318537478984992613351543981950163313740523055970956220011944158294455018858806755977828073086440951512676105437995496517619901246267162409029529329892399942860633230114990776148102818351228098927575318346564891336680999179614414640728607623253896811063612201355212601060139380425750723405603591724625401991595587094807867255384484620149165649292492568673632878551103482628667859264049618142360982626387796209428006166592861025343643254957207640994407912693534499516959546322906308424034863537186599847421100244468161271828534195853373381251071059249191002799465548161125020676371051233701649196471920151745337966044119708198767865585272394579111355431498457307481291840592508689335122447370119252180938208169505421257372614955228776103523180851825011451031868476438963177242637245965013590079114549833861712343459448550022625050437145044444753011847859511555370349528366793197890894756296839804141260818099602271828257326531362187232631839859358422206633973621795048938977817103304613939645673976945151397931250016688744812769320556649806623997647530028099049708796264146838927716234989165038063221623009038683703815269522095843127998245129031451766462233464913621474554300500984517573854735791332852896338570100818858565666440801400658585331584852650305298826662807656110684493022263323354836844810807891115399912902874789160804745066132840305388455957625485089632200189750915638308664074270760174300382583017715382774785839430701615085546515937789149397150110288550042665629973592475612217223182583329619288807678447137235048222893166993664748656366178752219447461666735840625229926498513127075418207914269395938773273408954096510751406588585129020223771222537941655709156448028064154288361956929073680808480710919485853484143784540342054166259853666001059055100151987201717500584059300275774321781996936531041795891173645142638292114912619289958479732348430019223019688563195927351309033235037235489126867451372857187958821369689801270702368102517431468307164348136296398677086197209482182606303595635509761572019728978284225730375948578521838799194029427266147401481787207617177558163190616634168817191449796399370063683913140705262239818489914755621324194833861323744845030075435048862612360598109782712880044295615499491606379722043471514046753040248945323342250946293069250388011514466373559479479136169871105632470260427904419781191692018580944844168211657136056753958918480885330121279466648472708980631595436104848769421076815718320872434289289127504244216058892936642702646310900470914473282900829615731793336866463992714069320525439266440218107168907289500740121541508638725345661101122071306187929971210683420551932288724595509460196562883471398980023598424115737876124213341211361080615073688143358860560229522078898120134834725371235108640107048857760942812069175708530003799698486353237331977618052935402228963113219307891367408191982039784362119956073161375145825594362999285212499140551012426377433092930475382424014873242859994040387867010780321599053603917241273175566434647934995845642588628265331201473743365918547551428281146727936160837096509820293458296642973722571397476669100567631206860909761899960032993923611888775409486560222765691461876342342966034858633753943920873155577806315192261718359574552665071121724706932888477754344280485348952122431630897547611984525299499925434793557837283763016870653172344693017951791159942596718649425498818205332887377458366097671508899154330449366934906392213405576671270592026646995277285367216664522477310895331168859098627003058640221736020336828230902528889410889142818703606535287105510386227329800233433292596686441583483187966977088924939124634653253109642246939871870838058709414079284998812747862935386304350618505185264572386534490077427163646198414603975639735713860325497118125398036329883741909440337006848784162882832563640209460225508309045329232445358651714452104516680501592932074363333387326236249760205117748733389553756464520653399477349085968723434731257459465315156606458386867745008753725027251646725006559028379715527986234540938829603613031134386209575812351784589479646131859444457793347134436196051440767504204504640370039551961043537622677977489613921588106212926515459369052547105574599872350157950497386700183827020224665392822190619001166599926458286055257927289226798587076750202039277610754811920167562401054431240015552588772391845590302711771546235718905296961211403711246239706497591513777077365765748948322334876324918007109855803024181989300445372307263658626211362780452919302797786816902277216971804497154428383094070771276642711847573273036216172384003194864373800685668213824421151521416486545924007107478258315639651180401191089838689195760465182972143100737948538268596845469202929886896410670769689285309922029984439033035043474685903577355023783621201976016817009214582549510557992931805056145874201291488826578936905865808574347470937620288265698753268531025770923522112164956451910964632581888905457123709362432136777750981081127329427461377941111797188846543334473435242795855787413451198544672366165281987876222363236708521577032061902818206840261574250277553315465987001798010044644332024709803577005289883641964740860073389578772905036584303452096948512223590751382267272894050603354568850185194748303850976680995846566272496548075112206875249069857277598099912258990866920826419296608067544722861624504142882189127921004752167353879712508392070063259852742648745277971100925070956448626109860167724897859281528146954269690963126788780270951091689172766045967673510853849333609991638035038143415407037420806592369895033755627770211698856088514972666638734412372542337214656044438973882253711958841687088811824138763542249144532167779948406997440460655750138769784495322085933848517279983025708410175506114855577888447133234179978687495912878638932866119888393567171974443808444226594223201614651815975314381079940202084726174831432812363724755433481740144727912498757720350611385682067722322719426799970856075263417259936919742387382983626100632127491476790229870151022481489916265326164572204819013456045336679682662305944397968956729195765681750521610508021634479347098681169060428900427949932693642380473632787869670658603976196217369592998078011394798224476022499566202944075099431919983158248103119302264771717536027852862490453839618730151424777970071412429305437244871731125598089415274906054005009324288077333497253307056534495768379662620981539341266266180010228308949063197040915995731670981355672341961966202302142443601541887322905558670475084047071980850764981211404825593408536674985197813983199395275213494915999649946363548468794618991645690146034738639503609032876575630507240857498463048748999452054668375018984099415497430354009716609057104888108619075740800537793737196408532220775740998722645460588127632149585769180388173550546950939643537827806867938385679393198076582396409631502100688524199867229076164875175250015110432059102527479473637457530817968691818598253465453966922053312798171297448972935240396863650900883183531558220921323172290270471757266055662973899330368014149961586374149504975946743201528180008238323085046575774339035775951388124571145636932197581103667703238811749288516192551385151263582836418932107727609963157793221372659355703271762641854836146282341273308962166391462334106582129772249190230259473908205314138862502996009256819556351385700370020848488496305373655302160590486864717482561801901339239235798930948557216205857146882665037569062063314853754375650642837568798355457132065411088555330304879107694999022933608967218745070229488551672383190140301665352885439614695666802719752371139327674725465051326731191126233755129643571869302267192075758162280707957337224124705006895817649760284852846925371073526335643611669624323868939972654522293520197609659554400675271003442123778243763319516961128696757396725269236081567888389460818243105314750298052535455506037717647409902487204363597328395586551146558112253278404339382366169943006547484890743387779101250176477707671701441995751897514798088466691071459203848665522270523322342935593706301497096675614847381891373600452481268167030349672964884816496761259650744171587734701497079811636554879813083322448404086171959849987259204239698102542928452715537324343959808684247701554477184728569437194856308936661211785517407760248926811574136783650929140848251881856266598744783602872939491505147934685111560963580140650955111256449518673222036595543217948372188425696617879089709029066722903267717766528674699571436627717803188604650627191117278336820928104301342682965596869211716148438613038370694832391909569413814128596813893892971649481237929674449515911249919681919307301060851773814825657213179900443927179010063734590323591686512469181148243369714815399874972342631254580238599605926330603424137780744498250945331464975035460149089380222690646912265506915331934586682972075705516829917314651203823280422483998544750965391505777945250881747999961833440179964460030463230764408631986352208876561711283342589615485960658678134704521740024728493450420729939544759408963635999191656941420844602098184587982288336625921694905516797007810201819349738528059943916452851221934814178937073060780488618003964485758483096699426586150788600922859074295412379994917120776155393890805354078267874765322556235167591147503634562211703336832364638263667859548028528941855411515686718460732471286041207238007929913250709492558949639654750864649425172674296955757084135320029045596788467955463674637127996005499431104993348214762278492381484267803175968233098335443087236629175527689651039546480306037033523868865325710130342333223599851933850243179919437546493151961402015594771877787012016916660359315880404718649897933347987353833485519808656193040939031749605076570105551230317255896857438734145180226020033835574092361661130870981099855312586280693540872799696794438177797614374742866535539796269885376788148923221529474234780979831898909944059166545317924795583464921050308889753520673571662805967317277045561753057248981931887045900958388083024515492627308581136476414929461852246616985519125856629656108579482321874248577109820003509438500053684069545855520136623586559644747722840157485524050773306756660172539316207967097147826223431516353315345239296420940648104127942271659125428765745723952237085694957638509410113632194008000771358530120594555528406368874778538266002238922281754077781691046270035188419146173434510227982559227642603147750612938932143257041060696911595602034222282157255300161300317085991283899311313671172073884527988057927766735526732053127566587050678025354440160807079558212249605810547675127519499290773293160411178179014760055503581091245200867103159577435688502730826044311769177890061399980246728575639224803039037891120780266316384918783748351309840994618908416634285658082720408713331811179218620651672466619511092083489012990043405834295980342795223477281357744990362867246598420798209555594970671743161191617141693882841941977002137104568027578657223018531390360918801912212798807464774101321645614164797922342853231311326095909555433186721369992792714434545807907304494783822961541558894518940646128545782604321240720149802792915582510001718122276717369176675877442599611068369943777404988507927544203637004148706443194348857518988833993193237296856050551658497954984712491503587035950952633527432371699405904054025610273021517364917337851815181099025027747185282510522608449569359459085842633291433640714237967100563025456923896972412621907970466264527037526732007394989834603462664494863925354428863611242905450627301564862078532604906754833874847135463205337407929035955010877305955973989943097581065702638556178366650223244291935793162119345073414475460139772400926992422464543621625760735445091315271891097118446513757373426519384308899882177369358604734384167987786500727177271021352042600096395659438261160659595457072475700183867661332813957462821767137502689661901417479141375713556151863142913744931672967829508730945162038485209380404608778183445326166940036443476808476564061113812503441997055338455896515472256339420068852233348806532844839410864994958592677801071800072623435361854300630715687187409748901727005188528756550131237149751237291706215493618911096459541985570054913509654556277208007416075465215811791721927976202333369888683818427618740618852101677375577558019431486988282675474193450791665102331561576781144930010258504529373482570063847522529479191897407888866889100168928419496380888331585583631203383014079344274712266477772625319701287425743654866791758568828960554150605772739791674332842266007997209191048439422355814845681066671736975087259541475547634642267956673979863043255088577389191521293499203135235008870485743250346137800917417234693379040255478095889487850426932327077976742022098139446850763493952090441539164127202599699824599994904719831713822271916422459027887074968867670554474229103233849272734894750820188642523100645179205491038579981333078672469138899021220092565071273905432376779304614622850983495937641272622007095079896832736504145468537078627868129520756511752661415065099297597145054058871382338999708698133708112732032226952237169221753171139116586865680526949194699320910191355176012454838869106366551428531644628132995974645702111075375847552187056016162057498678231957586838970439135633763789594582876613646281851864315447123790034513419964440633237810443951925322781311720829438796929959098076067602580305716192974029428937402530987744775069253139458207567528753222946955776381578960609541384583541018806415840837330069924210314469731572520216224497424506558687981315356882060854850073024892110829807164956626477783719234685724984769670996308547113034066371407354066880396977588003591243856263368922110436008709285443732259446423454256641693795647483947537240102423922205559258031869633558229521386360326086521954846355087951785256935506441585696954128156088921290637097827433497138813463881547987203368834471645951059157347230609861614308839447766898302920572943287456771412817401067395844228233932437789070804685001471653473514951962574021898818157207155819972036405032406719265462625288290304306334434200446122676135907681968655038401706033021556875978512576363743904234931855806799638334299043761751646109486568218661207439480547637362937207347023381749084021298680593157252598794557884632694841850815466302579675378262800904263813587034012856661299361460049258953888528907159072181052701668320761369951032930332422698487318246183409061239432271438006218491856783786642541210770673842052923645117308773822992672090196533901275815887478082583672669770808128025633251889499960886391822673165135770008120767947519827610668549837056231463110967460370975020921959758921677780505220136471631433503577656525642419482094320666898928962850690285543611142584808583286527362814115765892315962341835679886880989046814588960290955497063495746524671655157069219973246840219681721809084391839034774514336965034861985596419007318694163871412393817077699690883462512242382084221921269783485146328347254597247652654006180036842743931552407574043701629429016729565538366595565903297413817222478580660357336634193116682181104819131356716215869230960492864015467086581622362321910688728333644717665699773855868656707760144261502679256418645629632254657726026450776481108456285387258352918151421626186735310459499520363608362873773477265977847434184868841337553846613549313726716560657379967405240144429521828316351905226519476517646276074046396892885245254173332271133814190740201700735770422949591914248251674045942557984774351360022822186355928343637175179386016163984897423275561786276892459497335107485983209660169067684472896296926782768225818123351511852881671621440735188658291475201254205834316663874069209409758199832093650069484772948097773082582812403550020273092639669535052069726674546680834663688524718041307493383428610603743833334206895774639589292368100642423087966293398738753007612708555986278641018178166032387284801135910296896111110136260242824215808616441688323391674055016209818151679262248265233363641826801668401548616284946576426155564786983006011887909129330762477971432019678550150854172564410345999110455954306397121079536206733168439534049603848902975688803710751666798446527570815201388505292033129474214853669712803913227259644947017642297948936989410184932757167273857432464845811814831995836975048809951762811376455254670794548550545140728571314025743407431190399051644158268552992586250915910145681257243878208360387938326582470375345157660527507784508473103668045299968256153280807491667751347017417879858515384739095467692118023451642050421129245867293189785288558108107032779257650596326638959186602837220720534996766898729990247604981071602230463300025699661076418829168296970454384075553590580271416136410824980973245845961928495405014860525194755972786379729530444283036772892580130259576015456598924171695471234836180510859504867060103017481659191215966260457697078419451466212694576687513330905595965584795891667265044957659859667076159807703547748717841093563884222619578945571089904199137083686707971141373526508430182440778865949702605491779678922372350855754571069071590040694522264223820511666167018260228512037602490031037759645405347954472256508729191635084795390238226671606923975116557513827974195717622923973052900016541317243805831576924560630680969684493671087298479933901580395050482030649966974527039789642845106606027043630746376674032893837188285398238075088897291742154642302044084722045716947019333894743008066925115847311294829147844590324013422452147195870937011829073143200156080929362638382846049344244833379769047478122808761447190390394404251083610519722979749740122435620785691209262294374634312213590870754430463234818814130499834380990839671792691415014960537228147534611472380724579257681819715074396774161181931706294939687363921949793953025894658861409393534359637027182965122043863463387081019816314338570195245495520240973989997010444980753384631288139667140018837023115260389627305637238820480181059412520697676301166891085416863381173238617529535102684395704213732027602268040200025416540890387799185450219341243307049543990030780765334016114655220017915413216352544215774520037308764422401845800069348664060294152171456935053828896327340224172307307247590065334772157972274375228102975384711912318553928299270359633603761462605525142317507928400773991482799474573870130900190635755107668269444958531124103871810821867195042590493261232327192629412249881085696497140499162742245271847246267786766131461606502566666571932750499683790368006941659924956714717910219033322049328792331366887853383378683082535044660894058249047582586981996916837297658796945129728796472679713707311286163260150637898895012882061881823019005981507502349699029167162138279024917346953385619909586447450925004107945043074059977678488356862363162811497027429028770685772913118369926492385964551943796205353234346306256809649072603150582072264377224037709429542758560355975049385866240505640693414328416318884839336217873609849401898560901537407419857767445473877827360592331872612757442356595399266858593106394944863513895521392157292779992728635815825527918097592850977261084033951097661697946507168223610271349440761269258562030727555384034288564513303394199347432253769416061647464173164929026775579415720724258518589237579937071622512635159133728314712346562529506115575793396506468875110364758816971055730715043289217868817756277114208488992016139558093985254416476486078342463921735186731066751325153361874839127607284718796976073881399163608056427901720129779263888231949980058711017047526925662137368672829957089684654714297540373242601628784470650026345534716463918591849268433141230869052111863778393244262570463734859163547198539275200089800968646138957929008389519929873475172339917231179655937853260148446532121060220964482210435642147559959965824933239373627309794301654687589573825556601740363377409458711507734377364706065413145147177009292509698387766184162894234890810994194564809215964494573295217424663492112505719938355494909487768705210250740857727030032104413341271128893126059852711314879752693934267825344364890511976002301968144545477116425049691638421947583637368258447195523427527962133962142405733326632572686107891917753994984622097657928062091203399596540301972481531288536198131019835058910980876707184879449395058663677443997856502605791518785202797861902834653775611377012538919719144925915504794880387727561718482913239932971468528311921374401632249947426657983246929095047513807333425351013899772292570436332141022137053177410984015477832295165392346085645519708458326832704308240648377608198311612222674542783293157915212026452975310648738301166754691748307482624647888587766449279819049318788101651457745150416795139308276730077894403397492234269160681019273722219044949905067345382887763990693031293197970586637988270180820698076042160249267803969732284234197002371406021793674511049334998875934727999767179029779569790020753219611579381051321590009439529280554727219311038569536092674659584317647306363298669084241963986302375768392551367982919371790302318079822742725567039854752567333826883284724027714319311443920454524503441398236967736118076634785220944089941949820918928469755601072294584559363994813963309302994337621898791778082272159638741602877448456147199618643406731319016298156505283111837203066686690857769565398843354304624130055868264575934471222529157578927318802846296807470195562496250250568321006961871169134574465004992589582346790949301548364236660353934539128793672131094593322598356250057225507682306880732185520057178620776704608323995832242618035693273043666186887546598938882666890480009712786323453055043789746083694913257298715960312039612525539541065375338099304588740999398432988643379370815733101688477583897316844357547676917577350422953369430543225281634998333221122424709497562100056007721576990332579711633475452262072824895249285821478399233991917398095673843090681298390879863671857460106779311928412396668027644234919764381952429019825635446638129526242659636157082935492644280822046536480386679499705170539443371685945558406282370090852588004869555412809496963903030286607837821938061841908959928741462091315881773877687148756772353680556747105367143040247975186164779542617647048875257928178589989450610608348834754369219878595845105422404747457673856349110012308705290144486127843231511083628345342892828279926927661011147214033075239557304051701716867388517048178002737680576899644308610117326521970875221634961006687606194878324066837959994861612590351103020208244087442759271958752875814190936328802484620612224841284024552187708491874576650650686448332096110370665995837498533513714924823707320048173858154599436979059359988552952779334339514047484600380302920833555757693378562831652468460905807802895812151977306058508360758142980690860467342511318448495271553943672395829798452200053392788028186921464406639144951768667204835627769297893895468490096979012010879094693707929922532864718967800380786622672271885971968940168881719733188100965649030154297114417565164419083241949597321064380282163189195994957067951716765001594690841923287341104493292026154540764025504714402792667291861406844776627832932730461409273790009846967595593924630096493883554992658216675483034157516363739747489032941876481128307136028278285289233334654789685049675613328941958806613855887165164083540884165597195142485927346313445467010534398715132842947372860195937467125465063460800255676232473071458867472851099684174498928156810052075506345528263158873055111922624001909044153082586319869922779838692505956681232304020293259103812015360161235297896038402049459259362015585382911700001201707105346985783343370155188677320563458113304699515140647811704401703431806429419577384376499151823721847799590610833366308751844366552235504009973039857378583351810761394822771807708926907586386304202055650364609158146929191632245398802733910598267112996273365521114658115372176746332957240723614740421886039339242094750423595345813786260855663883229302109123275048769203918481824836308121294525176981872653335844917610142039086099309170947221124274340478679444070810199518522569958221315218566605541612911622622994494909762148818875128121201606531472995586717323047669174584815715975489632656450695496158633383124886588779148216864190994786783274614000749956386087824635405812127898686727504697346179726128191521977987824006844906863443097141377239317267894656533976607781832333247494973088652327185160875479915977003779483488838259850659731856099912039316461924823836642530330843332936908192810836665815491226080240107672787374676522055165428281008706311578417735983751604221953457834445092943604005567901409168382413885482601125248765913563833554452752729776978777200848603174635416460386038585622599817408306428111551315940415361390483683188048021942083100713877972458564142576080611183657411651321785111756592400234587485928141724623643039726969453830978119457974092074819328638974943340549303029401541365442653243646032717442240396695051564188458748991066770752582991695110878038958132879516927276634342821588980639708971480754884285718380632157047357294481932485432012099010652654939585783664630857776526771053909944501695395728237827107756159277715991704030777668327216143118907981965161845460335684918024157514044560567494518125189422301527024976912696062681779701580773375452947445764636204941282910920388805784144360746881628347675373609412865093917362727524343521159387531224246461666418528764799358773709949821719924936765687306266295085599286448807269126070316657819742557772435388161066729983196046269554400103534879468445568291059704035522629942121714750984018545159344742626008892216473385374902534206097669150369106284367696070793016065420549401149256117355530689363501066795825774976431499316778475127251756348567287943419632054554780735603438894296372344427648361884556043314176476568702529934338183289926937506580174543057084127148545897006319373123401688333558196380174325156171255850749390460880226669154730647184685769605427884716030540858922439430346086700952578023283028784581806824296641746610102683081697442361518831292541659436548133968754359043260559041981152733498000663488588784843142795191619575845926399935642114334846851194353213618427171467275227048809197568468407285769453317396420659596528032675001982260710146344436640429848732239020730314337888695360038325590222255666434290260915876587595583916892302211784474859237861419277743016589256523126955389562053127213062540667862765668506456015149947394930041404098618550015050395745285800344283036546717048299281148465232267639924329924151549842677610632614994882914917250404780440597360028012466708389983429024984208572533016961301794447353521298988744497165195763671914008939994909766070727409680247046800895724715799323289053776318504706823140611457801713857512362404177980921806837964834702976129112576353594313157842149304403931134219865031600929117681971475047531283321291215769967451858548248053524895096132834180161874355048970422025854543417936229058551183654072811810046187937217286617173593279530403899800744180715684675285037308108179495377894245360428657891165894103198634415607803694236083159306478741813583802865179671752223549907049414528056893635877526403061043011177249075063700386430785429428469662893607780084932256127204228716394731877604716350057910127576016678241824428261517856692338704099076819570585390451499197575557688277956830260120150250042134033997820518347004734557776981141654228329062387241616242090450440169817091214465172025446661632118427386085256384651822569674507157718200707873929895166028008686045387213548800494323254960475786252602034172928353916789803293244997121622823754597717929311584160165051668985223007180632472729926253035563834014776651240140512205550925783021189433112928908818125453437435046912193835105848463325547469594339385691659082437647088842606822056850744688512808920477640264633120700254526726936917552675327063593705374401511645112547710828580592032504176333918105615219885616777964029372581831387116425593240693031145341469112318803840901882429902528494247666559205912962532228760573006712004088497517879578012406953784499707066581733107447213298876794040359192433520525950835999530313961959716016382866392394656226496603538528256452521622703648662565168991754670755872559503719607188212607443726687465478893010901764710423576686316640611536104177318611369280024954312774739752680382989617063735990842542393684782311161397801218350737476969185721056516182401101181268831896974796180292149988655981469753409765361992621252850065910128370590482129278824611413288971369585425891945524430903571675110380351097360212751438532028552734807268081545742885213030479895971946105613011589139097572799248460809244492069906090809201648089660190703733224671563092166582170594059766338126483146517257253758069142022924847183159421137455330429920670025720780244701014308975228112119776653679002687537031437000287172925596308007588242201996459235325815929630054864323642787474561036312835290928703329910970096829215691940769468761060882282462102447902097699350349284516687822925527233781148477926688874018490002508108867678751691780143518283930495148772868438318986642435459466890588771062676954271816123995614771058169275152889249370723115699526795430203602082778010588335793624699150019838391004321700955139096925179141245604582650398499067213213899821706248604613337188407838805480641778786521941925990040927780671269728065780997361375802103810238052652781247915330339689372085072400827292920024991714515996386701841382275604675200437139569405431728849640662892763965645342358775616593003331281213420071080177618838740443309548364199266296139950170507381988900185029333329750838956534041145702137646505975290375550691680761287542635324308090373461523729605725631808895335429797916272672745689169482642286472105563745046225227971233595550959899727931511760627655350336350166138739395641608147499821538307505998101843760872634688585938451855678345121798449576015989581612456476439319891061143431941844864716106507857186648727528368372922258479343590137749998168611154302477836512291198863466186642814651410417136413606456294486505279571918854825122973575897281915579640774710428381119951295007987397319038504396422812222778769663677781567295563373971872731126360552930332012930897943863047995381008988914171722228812165591556071262322839480906001690066759474746596757438584805465115468947999578108214596029605521475731630291243171187982044642237104134641432750091453698386858232412911071195437966440013828114126787043804245615449127545644768773899623454315703067962382124662409178098490592455998927971422470102927451611507337410596238534983156350382803002717609214198598557228151782663433649618052045074057454722922140147190372238178528383681526422433780116523232030660566191236533307271044034392530628291143263603546421941924637370738329142376762952596483999000328730261454664331283997826218164388691383058881850640121074623825513961540424887707328792446434303512610959403194940681841624513820809411826832326790304934181353471376132167325915554726619274703240761413755082883936120790934940776242338241135075017959362701611090544067309492629932718146595580080694595131488211415539555896228092642192962688332233757497366064864302478644139869863338280452841106028711794194008434039327580343323008129393730111859748229302552750418586703737610745976697815355546234889387894183920827656476242587713177296532926627019369643516150376197654899442774743267140133427405143673983912730223750173428619132625711497573835217429521578254909561110777075560649918564552215955321333474426089355985352957351134239410834895817195039642538440426662694347789201611682670537954334557482924078975628871657308223788091976984946619348870048518301591872796473681481890041717626185079511652448632305401071572142302271237220893210424895405713005239360916895499419363659605402896729062990042549986496145527152215442344774397068860139801571171408460389784831792118733569081492367787933559038802207290119065733939920916014561732789866124026268586146982380973816267331446659451579880693915446444985266838677504974234055527663464968925561897902071424982595950298858509964834283889402251540113266874466877506993812916203612906370924385229526028385227381558012283649307286960629183561632237312182076214057613435092624197563992235146375109443614547283350801795705315664069902125953474986641033189472719850180601340078875244218100858136522347870915461055929363825543725328664613932147875491755057537065706609356736267351164692656246385783350266297576691707113220234054021500792080235307380690438014189570433637627827577493711580975908526934103679985309648262740968413980593076556233720994736703626321724657864395397487951984046469841365957266071894863268720632610350795897886704766164579017707971842230862547522751023994970252220973839014984683386888896062422838436985390817644414370319061317241422163101983563978866099385174919108083043576721566384404347506633194216100251126318142369540438778006885952733430497188501458109039218987252551949161571028987470391491190189426477985804849858688916497584815559468115293033155898593802465730516434102319430232734768867288686480168912475620822699059832919934228497986553232136128215852363716711734635844012672067565834352763820442108956868586345938461786281049387975195293094621340189937913264291871738733740849036956826318163860361565744135023922944814627018646667267597994795822550426259713825764350593417310489094570960258357399895016520224455417657435041334878016053952035470778029358872835191403472047421274160105011238015505239631822993878707235837957572371519568822365505960921275314176132042032703139048060018104235749842826423467759694010609336766950314902948483424876407537400251582088325614780650724018020465141903185943908395089431275969214473502874323968276916612873443162324836479929940926405620420461892622981142756296289364013266896467363915387367954892369145686046972956227270151923605816831861561628628569531639210948863426399277885798247926566373970760568575951050717004498140072775747563892758142640410032858703857585598255936273607404093406545567934652364872699972424246537996543891415327412063418829246626354665493419314410608362803157924443881631393846663198502987208678179755563878253671768064950692512344370120570494051451280375015600859474926285535599167585815705813071347027442852243609996945715520638405559351062891096964026188787675919796387964219592118156984065775466028345270326696051348807629694266158457125897846974330305996721154167076174075820750358441790787419414666461958885734973251874588462824426618547285938878863874422275064393530421543413331041087466354740136119451194294092613220036442964034232471721437875008950395180263056938932482760660052297677021515734100121912022003268435253443240403308824086028917642612804519064008220655811364458501264760960483698018163363020216059407140515128743966533990594363689089127597179709577161498852610593374850921901983368181542014996567625135323753927055442666963078496485291203079145550456373485760630325302912151620099952206066920926797524776251632150355529572273723141080643198489175026612287953357743709098925851261106003091739475309890385266791535581862609658277116567229586794411912137910444273729988848476188523196409031100297836645587855957662990168748653512104308097371452728884604016600068909801444832660675625400420108221869353254290388585560572233084892509047402297259433202931376714024430721560990179132490704169834316019834354321066563593287668777552683655852792067247437280637082907465116973077461722681075271249736260331904425178234939064351904471676811210867885627234138137423992145060214301744118862250183659075239626989270114655554309808375630000731340889961760410366220504118510115160071277164562425517813270648371439228566368813752092741968525693104963441907328847978538768027949249180386311727723775457047742996737003902421817578682417607171334695897484234127784785405531632174964930000259017840375695971224525393432360749096593645893396313861184816016771524774127455190889984792326501829341637539101630138556600762956000461408646426859397320914579336663297806921383160319635147574588057120144950536963710657342097896753750466978383362509689095146873714197996692063999843313172093343641149339121593881402434816776841376427754060215322922460113600365148123016493796273009802994206439372439879144544128700394081123534423230873164837499746667185143008556135152060773323143281433895417682927319119272724692678075446092145049411703551474645437123486117465545925269430168312617694853215612207631260509851476137284566247126991672610400112635797265086342255752376268047530311647635942285469318632993090914142668464809457582612097916492720161002784804123592698889535401414098514651136461810920654331051776101632653307339829243752560407487049422836722487447276445211585378963275396761851420529530614370763933396477386891818174769814765657725446719619107032134776230841076008302873472507761320760257708277675698225392647507188466943942653866148919785278119968917123096111195553940989258211543798742397570371549217409836691498029549618139635300378522066283841796336340409520349478486949136978161885748797374628292449896701954660810126752694935930287889351095395634745648409366421841931769622746053318949244822305115400693396898926012845863367229416811434467656433718857229655793784867199978802218006337797846156764701215285246360039354423589327487154576294914095733901555702870258945780873839174999007090281404096954144232492451921692173701952690753974090019452043783772368025994541870358775149488985686589384164267549793770159235816757155558176207527034186635572052694346047965998090674084569328635513341778247350600911123004268674132144352313949485916708228576641438311963074361495155611308508822718220410042421684480841783602016100265208165627050353018396049969177099710921370961369242253456878714998652734487332384120409756683060872513224630705666150976424585342483822165260387628882577930450335415298234714393470658915761161542355538917518806086517871950820047685478045256949135846640330120827104666326077845740471399763958881521539496965777905264584651508860851585390390830663450742931025715742399736478193702418279931458571239292043163068629642792060643713519093283015803914011445227608440462032394403944411689736676077237311502933088003767976156664171446200521938709496681527134837547333139002368903511795167988368752816110721825720495776356472018156091472399595364039903317517307062258012262918768181724379475155683223652347247704597262615454241155603634069606890363420683373924562489837536910790756178164134640565753947200832517965798876314239664779100446363585293464215177920587320881654479014459223637031481409022628292790325167802788422648165672675647702259680999229492167250078265859528117533131907404322656554787219622880801112051947182013073986870171241092319256057773200298872038563766184283971356581393250148548597961629806284463983290489738288469707738042636426277170950953999036748288558004484515886325180461354590066051509762257696431459312640166974011039197589528200710128543386022913996062973240460434864440628722751451171883122779878186408415429157748188747979998254518411320515073411009809307292648503663784102885318587397466307263640663378700938679663611574360701912983751537114406970631715746422625381547268736135874479691881873373643245036229683368606840960060500597962962837380871294605593254871111714140697080421071892531721256225131410189187642136787401639236628499982271761040859048547540973887665555908953052496280900130020277456551077028354919777779877208711163181599719589326758033081624965931787449490209917050836927703679001778098560953690956387353247613219589106329313390682187897509164345878742392373990476231957651985333971871967273222574952471398988080448991390827140879402872762428954437904054724812170807422086828253386061156965832340569495095656713145856989033073119378792051862186067688485873686312259021261166283114605157624667204772742674758176894408599235363001444119235917506537216639876781834675201764959635526181724444432639159101479141950520163999835792598281783642399768980425535470079277595730091653008420686648305454523546307413789317014913275575304259031229322994769414193050300867385572057872815907495397365130107513185488282508744139935429289790433292463078446392238673208985716095912413298901232925866616058083924104663025073826184118734792895563030533422587630664106226902424212264049980993897992301769615864085463555804107360936359074877034943167516326647485771168296296329621563118976675265658614397125390198921537795113462180497557639301397767201616732509493291855121213183920977774803849610110860277662093894545433041539206937825699509704326369914497269630180380632076973743028566169100955725894365554837466731311380845662225571934735363046706066598851597341031578307049730620617443886176534605104185204953250815125308044253834662495696335306783860692412491354629242110289862993665116175698698298068710829829254028028874766286205945247528473834959277931318697530379082662858129732580706633204487381305705767354991513444178804609663193442876808670209198907460038250076118282867351330640546733651879598552002809704332660394686253021126813768313184789584618219371068727054646927867964693641229787907653331600034550183050641951726099283726697230188501217840787195486605764153215328034383177403696565390465351695918881507202156811468627342304058231976107113684613520178061160678096036171535429014605842718601827150554358954089859372697946180512815109208752886000673513146582760023121444448919611681018669886834492614641516398658593828814573913693376004917621935003843631237470097349608410292075141621887821676921467756648909982732938169423762514836335914001826964422793516378981124890792347286216211618994366257753547331576723012296756913427728223206477360723985790454036079711024556856660756105627661136218296123534931560056748600677745197574087799220418097663163625086150142608868023434241242695603184239705430834658889224380061772761868579452484237621574419153430974765574043967442601713533730679513524203203113664248967219404999304782866120323027924634900666409682063797390370185457208828727105964206296144043548690667308182131522719588999286126231352283222098981787472338633773993383812361275572106002067161559065977978567042805652821500853928131288778131423324107440884035053419232739747958753046952368761004961233133218225490764353674784910273835254848746527986718469316351532684808755027276411288114168383304093876623416586370378860344440285234569222590362329207723776691965410837024723212023024669094316597509799509160912119515380096156200542123886328856661146591802213163921004888649151406367530582853994130500392843837483261558713100765741276612210272438339788201805679773039525586512177548549048116000541658342045546426725463104154433646379358128597329867767050912139220221865355993979486152832166522236114259927037738492447269018506514761169607876735174672670429548828667207100389970745120865583154292085588796874092938315077756627128186472862168926156977201305815690652731714360387529343810474118166205523557395314367106352668936019041438428894867371524869359915371947306228963125655906751675057535681367116772746417681821165568075959495772622614481670093303807784673821761939640739179413312194779219445696824285609535931721665210719391950601851589476966704037155547628361225840834189556738009558547655871765233939848755896424587640675078809030515519649798643421266174178879556165086418461313920644838413652004115800476122112798204340265070412571527204799093393214014432166450795975012232506705624073239952412756175813102086364163137267742187179343612605598152649682635476298217578967683774889461260001182607660360966942905536304434188287378381324456317314423766343151230306446688340817137495152373683230272621165148812506347384932900400718700339700262851906100650882988231482659890392202288788376332736399088833243051229870887427566408761371912836760131586362706944650779615899956437458340824829391742794663010091913735213746213180475553864662728638631033436628433451805831822293864978911865516130758858001646581655627199814585199030247317632344574793896771228001551822021106854524096614859462099104206406871098652228323242457693191420542967579174807703949974053891930331869887236795451666803731796864333564364550757247842041164795873203615692678652338442221116496453510326052500441421148419232766191347345461296555750102010047161691544817510456319631176757276286194996284977744653519160747489175523822089201802046408474387076334110678443082482667166070118044103724992862200009867066874318829332899047845911844224401306311816085705783304652196322040411391948158115050298268451249462140923632451830339893778809320410498268426705829463715820396724043732466093083428964123236145473178641148420398290656881139123722084701611555205485837760402054992137170716959279160158617912689936107730713131797447839724722674626363650845656577556132341233593078633811078866146361886710976751932275316735779678369183949817839099855157215705003323018655288372809024461232856117292935879228744782089147122200892423391914248178008157595221863752219039463185871625038686696991435586309727959192232692430768036480592235830584686435340823304092365927427559519571537295693781086714253750599930814143110786977401528433784754806104048375150658786051079715885433541332541264974533108139854556702538260725272620695025536526245454634010918631469435173781055517820607613089857622937648602196632381705130507998525984237925099129558024440992875845882882114024404514093077025113927504632899470641468995783048411944415850103774531849662520856222847376057458892884977945958903583322063906823496438121001952228899199675321526342237939163834662368276350308431312100727910738795782218731008363096775837893790987446054865104962195986093422554170179996777909529851152410204655180809955810262122160749476647214176957975155280423718954615696186496822349149449798920662065267583083022909027824500983836511901759875564238572499212635725857673786956227731717065447538851784747949612891797011454777674719084135411884404004339317031461266775698793497566842050352991134396080462735300718254729715909395593626892084291493562059281508636602764440900114043964286517103615825521369136186726469568645095107611728495256505127254947547337447454809470064969795928047745209692302635223160673761083821439431382050754567761342661366409862011968000898315492691965221930832277148152983054464394528920965916760208086061832634100789129370084038894596589465087594095441500318634068720807427582322259794807359884578275633956028466593173424413637439333981332301589945277844878146002629115718230905501153105821060643812633173197369584996594093801794538483462983517333679018800914627159200510904668875424494870304153397934460298507065218754377868632779026125764307629416635184944831289341739809420028035655215284146139363923416281850453952161686667811468400726481106077246970268025794986373968486316126764673923318721515786175687003326489891410644456210550786182589747645988154566880069533949902051049151602466629658753966827380816035518214283357774681507603632924122691155991803730481310424557905127384315612480436241508250033275224302728217435552046000253278544362602052234844268865146055767614612225968629805122754346337732227810973399760569962127499265261705014770555816379226631746773577803787209423284701807948936615805248233255725417906087261495417762771422641854474854856317969205352085007045539669524580093924326937638149799000440733016597761882404586628985002134376140128175743343434550835294258284081164001797225243476522067248030603515459442474633256379357911341716027608414235332342996038574412858819484291153312618647119872590927590545040129051962287218046616329668506361550572337197896344718543223047803516313934651348823801769538110967077603129923744155202034484283525280207522608617474572746457379766465968713882275563037473089255951888429249274379456277787394036628294408241426648803891701523876870759218471168043334758967032513115468932591346514530087128279086347088479722089649603298996780768493867177707953886275055421075053651800424571943664799700107329696426020860479908657724197897146982859885650717905986839538640649139318119020535212515685756732855767328613245876410702152945722645815669502583003831205407259529404507609115392091588338373446025434578329218884795603036553137602660942836461099830619846565522297147560919342031491753496455696930134443736886117958781714902129290127751789199909786384364901676806843873988395712758060226302632093781523140021698195641767618405489056286572802591545984225081676019835037518433886696568705890862165605076207557896983288057259152778616846964683198099483356661739585712144940980251780807550626502221690172660445093478491466187934022655688435807620427027276943368166303799259361730493076167529149864305867655879473977941587300460763245016671206232689043354197111697905976996022663947013461013362911321304510334104931014464654129276197279245614631141524156472066942674249901932659433391919138031557613851880010964414051838106784831578378778720626354727893880655815881135132720376859150784886832659853675086115659958147109253353431363125384204572170452985781460798938219508403209088152661012119411951539305013582758737735229762355053504508612908393945118311373704625482314013513259394469890452424291479184682085049576921376002021615164087237850220567015972926856832517629227600574956400889380108653909627360977563790043927797011023621720305757449056034429659274907597232831365779841384564062052004061013582801780705492048742134366661684168227673381776806931598992168985562261722685026075063304180556495679529733991528138845377290140323836191929434339015915188495066067431668583691180788465657215470495650939611087666049282592668568414363785104786624716880988678925780350870378848336127537045257602908869198462511973762718107009935485100958869078867891392770110834511243128440772694757414871747932370172081931051692254844874187413945628661395501195771726678417918083396644765576046350398699717902524427150228098224541277449488620215365580483215402949667465189758867153535475136861710758687867668497146660551945004446595279317636049198370092763748033827019891256641620669373151384197256235719601934506134617940138381149110173290765317555732780116042249157681812944186317192995834512425823850225485610320280078048297658654244652507928825063633137650575031104779164084983395423466774599555868321415523550331093375754654709413607937640738251582704891102001330158282081848294352919854920109958742097462354154092135996386122051851655022244884784711549286684105204288655464521097937465985546692455227244517073716453525068454433285686393615845965694617287973333943665499199742441804675529933832704854576100987793965592691453316548800641158509098864142922633337268140205875141227547953596875695829818289672640712747133510280327730096931264873341641879123548032302176960146337816452363785967928325359183695438617566860731391355911732311504579381290466394818586953119874788147333727419180530859094717004318202841114555397798182587125362070785424673885537191778109318439632120562733837897154956525112976943561929983235677475667917009059761443232886792722460286985635964704363120114953533754817593715790439961337984643581808494402994925499186193544140826250474341532610776280727250651169820033192128297580971280217100473033659377055030090182033790864098167792540086174116333258588051828703427719643010440019834906223563670164847876735836873130761853317431156490904226470964798143993298572046227566211744181746890198093020080806918508472167772694718043141953619725166748148579582578863752674817313505443626930513135657381621468233120437981239739421887798572206377632599574594741375409335846712392622332336944217183465838017086473886461351140636196493059456489836159851790242151173262333078400803682644229766856592854144380421128402766965876258424429904448065171102801793173402174823101325431493005801290719576744385496303651118839364149947117438766350919859203640373704216117345394610143564915036006880875710158213712133877658294286384676187879172548674244836933066556124853939478268820313926216833283432597815605090787547501298486896051963728907643845926517587467628646804601304186321350370037098886430815201781455624153769564728420293204926077144174547964582715595683491902165650360857965349137153890147521077853064300671723521556298644720900454755332539547379323535126719362232148812803764028633125724312018158746415734770702512722916635252875147276143200904546589881145103283767204434248169525492574111618574966634237104124546128797984128372081443000804020330764540770397946486156480087150033559050251790587166411031638323166539183052566135723943169593559531820138747527490540749224267331542900280430694981297073575922145993717907323923667233110582520649517948577036398092389917595311559188743093548927992866180673642358222646430532594995673676422916219832671898297896925528045558723056885129345807100089484508204631273196435943015470113640895391137112809320022397136709956912320452098376237210051640942539428098339272319321152923103773452907164070228213690178917947063286405240236099162988123586352688690913304828667220228941724732715456225991027326814141050713974555308630617452211135264059107369350446637475082265666969648000447158736199666146042841550593784660015046586915036993944040130061779666966010424749803984717844365375893196122171630801099828947931013298322056578606283581444823983539249108131633807616416168985174996835901099348007745035274663694163486312146460201757856620572595879731053702469834199986441107828089915746527121838267895415102224663048935187781589271374639740762675802027753454711362792838083464485383490257452121772384783491294143941298512949562274739051183557959266563708803065822548268582933519669062811252950535355259726613423697953784319314257079196173242644670380632587364996769301015276629439779428759296389103443617986185578717868146076460088122709620768164644877517663628404875647263979877761431445001124062120658723934762294250844932331976638447055810013990200956715695046341730368984523675231855875843697281223246928356812730478314561333459240880393435011383400832202332048225882227315448608565415700869279812692708603247880069382326898094499481506513430920601996906519578479419450446728929477059940076468208386622316807277239143937732147344380312117175522606425162005986240751223738563456187901359631216462392506783242370712759859547423178588637878205397919730481483132576093763905834715535956267033196467250236181246957850744352278518083264127471193635135157403356569691301240132980563456497743743541625220578497250722984090409976099956191277815713133869185985328923143921339144786416449525119607065932611541474533964449629399748254126837878594427810417345066559419755863487195252796132769389229275663847443353814269486282721556546525089192197755696245836554349016512326628220315160956087565205862943672538169339326406032193087088892080695987538615959374902715286502047360813317970340490311110499677159640355639065278258583824832071454724281408848727536269751535447360155879833811791384723079294794219362108170460236903510617983031957416417664873164055156666657065179309205945548128688964045517962206551890622606639243955337157713445645693847534753363634291501584013246551775207386817587077304369564753017566568669298806314906472576933536096205596499764530923344220566795832090188158679830406727473008580251888991580839420166421020502444076142783995031704013953091267066324676078446041081534479889196655227477475258455416230259320345303711631820536316091630977910278896765014670917770500145411172806079219901925127471595359574443828550606274675329017457378120751995130628494222580349303654620881882836154262578723418044483969347863542090086390641842861838498068603654689214784460691162813604328125154684019498149227163910467616106032701542016532474520757074499399286991182320108205728864732351393708368721880141596022457163532001476960864005919633692812148397454387739169042933513294320698394407164970756016678067565749446284593059478933221983998166399108776182804652647429205314359092685090810285198532149068970221228149510138605897687274598923399993010580058197789148138594099602592784860472337461653317905882215076969597783926916343520549211152105270169115370812735051355699005889671811463396896164672079873464783590117027172809449042570280486785801046420946283096429363063433532541304855984965412686821414533294497556181737055377732375459067343585904620180242469996803531486234954382685414750711729622167472986517416741974247640640309413526597837750290400505145602709989244620848065737250450253015569050335846893853674506696906658999162234332287703952531225670784615816676859319405893296961324570602833326343023189077782339583874802542985374359990232227672425226705766460938048719888090928540761357916080809611324166921901009520915083618345831125204308363890737857963209793094072553872695547295811475738516257387093985372512806890213769098775840233217975420923169154723833133897782358452308394237073159348404876218972101433607254384219846839048962523222501563417852786766386918424144988221436783263467900416318869821934806404565119601655999855766926064272217861236974010296911204287222179881881065382487971243729734387327898984357249019768227495489535691431248832608082926639649615841970115169762636107934772426899079412865598671432278543135736064955577015872761451557197877364304263245318370418892623054501293207413421657273466404968306266083626154673769248329962676542472103093837063522460039589149858453427749519667064927223552708316029737163281006971298399887917365541435392440115503232180292167418089036959142876597976423648756126587830548121198656085799796417092344759484413205799109568995799532547572136941882562259351593473270512916691505051153369894072776368068422050549142774007221951788177743933976570047193474379443398081550502801048146909637671521208049623127804993510117046724858469441960656940563085480997417441823201571167883691314481872644922241847925901537450514088903021194329046497266880806649973851460842574715139297719552178458503740403207468634259258995858262300436173716637278190651797495059624712802828133119326118230457024499119165499729517468008274570328116418765033580164558158180757545300084225922708344305292609430944747778546749801213151357961532340287684073506284966032533108865010686273525134003550095576651995883913884583213133311550767387380728932241528799430107095681572281954190975454038818805718381005806529405537215864220938840124779746549877276851516522011703378819674142145021417241970560209345352415830244584549684958743011677763430786979362887004259836681427696670150749432035739602198275807870873924611486948127367675649814944229108774538680276121063974432793081625081190870500337246019806508592396677329223036962302831860991076979779629664362520194873376299202546451633251762604483884337080593176810309074067591115967117797780588403574217622587342260698137933773521648227807900177190730145019429001377630310125053005474119189645053486422538792519700660977413858601002861055607446544033052519681708093682812449501784695226784864430385964281568442772558615521559730993631409789784886581060678559018718467188847473718573059676564050914212679457981726200251634270752528907401517604920200989922094015290535243030437053406967637630081613443898127840476634644611215952723695570989675832177596165557547768267276336504001804549670753584889789995663808225776475447343806559428021853950302113084396398215084780647130571170951021782061757781822212521200226387373892878232407079295613060472822114918090501872982342211524724964792384577264946995446147058310839755864784879106840312745147561261465209064257745797497940815426077194086249950249398705207748475203109867399912807216959810349868908589125493637227143750277122592744264395513238523344102056846071123164749891536350916329366131930523828714154424826840951389342754594417536164966310457554217837369804569752881003816074900840316160168822653082005577898367158128525895564703565349265807447694158025310754711562485250243212311571693116273188621595330111623132618939886819845917113881520455602207257830938539291663225763152422099669934715942375355777871223462769570196529257570026988241537235989974860402417565802173511358132528633270139224251373622450285251199655898470561174256862802450237059258727170622473153081904978318842613933763881053760972885135298774095258043160882250216336918422251901775162577430715678273913402626962934603609803773966306782960330453015607332673044415936456242923829662154955325053687340229956198929325410510434642093091862655478089294606074890190599749601835358503171885278598042850091251976708697253984811915734063486473209519333484685189790394827921018717626620523372409465952626015617258377803152583897794087493803568924411785304588111635911908482985085769960162583240529543977059656278335188690348754791043590216727060243391212165192417102622505440077578577741261440497228638686601055077835308071158446148313833908294599390199618262547136199880347448697816113282858636395882079508860955763459852992175182185796595032109123455640508793975186373648030829378654695944936381242308693441189803661196656620692536931483272097964810613595098452657520743421423688300899047228465104399345334999808484682489478715083579143876169574634387844689451079154563818315404652088406904287586990898096107328820729116104261577071130075949136818839924162614852868574462207388503664300556913685204698539016548742367337555618460613477848805797756118255406624879745927913345181924025726233338188166362689797817106026273715863936348085247639296292837859152186537914301816341862946474577479974885961362840368861814653146457349739860761047420000766878970061445287239201657154985781694433996738449919398031699944783804062910490465244657132784957802698789663138838561647661937339700506119065238291379672731936513364311721561868989217468936265242786363471710987574696590113347436557174023777050043848679150192820719237291260142839865923914495047360329475786144331172482953201972059482640436272125670490342564083805395920546882372151831994967208485399645249285212899216576477637745047947047628517499029120763641818715992625293771353516722752984875529312971277461510454372563719607563704504124080017918183410048298938027752558237563068832929018087418906241635912144221994324586654036896041957584322705763948598432045129262649103219949020221762651037629158703288564957367750818576958700187458411166696260382899962569047620983866151875718146637430149651402347812010600194832766591719140792841247845567667922591270102476469818200618346016593450545390946589629548554578601823029337068962134617345642664940501432626366383716277241866864613835591195220486070636122683176422851896156325781464770481346963373130778219414565111870552132594672181586023563789575724861740152152818497471100158654735505286470141926679380201810672824932418141994361357628336322873179938713460392442922667278825347274026109109539957744091625872921415168782118816748384414926616429782583419629064636349108950935007232549666977629200066080506551637819082493378993855097094631053516263063245187116655572663048313698221743203384680109443480468340483015909755948532586815467262316068822047597018421982021196592417971240475480383059697394550611735337993494575153998326188725734048716978133706860467982200626248380627804846818633344327802572485690349708171096466097827972139860779594398744301557299963975351476418070267523236278502556103814367198370746942234334100333058907653675140187236051551926201374703155206513515767174121815461283458242717319999706564805591358789695957136803468875531207901546683758542670319197714383063654930693088311709965219292807307767557043919600169955213047079122261243009370014999372176500773514318375880889782561428447287937908288757283937122964113935034750749826209888633798114828755918347120287056199058230296430835655210251348730317297034660400289057720865178750920097296277748681633341360839846689138966226837020243493566787754013012695406122088057361066099737077685253923930702707432365194770195483291339321820625262516642387070098436061442701617388879585665980658429996315100440414619633422311835283239894972548230779923619531815547324754646353603623138223756140012085735321460265210009352189169554190365358016141644594522073242515336308041324975145923433817511666601961899205119687287037919332423381760813133714876484464919334486700427924139442115247516020163021081022753110712567303797870949804264506620475408462479495611668601262757549296462327793229286634099963408038525652208774234362307581784549565195492985828509889943021794046570908586549352311523898686281317374744089429697937590509761535093098789647438221821937867270681322289615297766609843015201444671581455844813280520052418803557089796581876639106947856303432194114823410811952983042064766085630072690097774001999449683615840911891202678107628742283271310403814029424086353551033247874124457262542039505630771878990355773086951449002402715841540754104642141720166068418921915277402362554773045075311810874719117634716239776056250225439459361010948554879938047338854994551687695641517013371819513830058488762649036137956759209902902515994836416631953023894297042206755857312340301858210798796905282846202990286752204986720539377295187916203099872636913779107554804469284801006636969264425713569731684714801090919576215852360238148675817886688793759394286631660737458554676449921275794946387976506048020700266850268737437759598175863822567766823549395290207912993871927850863782039237016855802949073756563178096220328716353817345463894985297285743289316665051210826377069025048850403690513375563348326056832259166928457832716582743744614264473529689194045860325356060717711962122983330494053196754613936307802128332157490588387307206533000554948876644040994548323972271346592350853364494465523029209014419608785635905099045865026266608737116358703473134323148570319562936625223715215955590274828885251581624698172270762266878977024476593722333444100904273964756350280588103009315128814215565020126343845395707378631853605392927970269966125698975081202848700149724894468679475349904229106867527989931916359619229463979475502190495199404508530872211764695067110807830175537216757280254227203347552562239584254464004133689326334054507758672917174463067921361325273076813877775420088427811009353846684008514606795312768051781430294485055431103261797422812221063877431855884299118407128320285864579994722559085205625622409982554330663359967527908590404926091704190152162397371347291915194472623434750993226563642367405496595830444548519522663905360229350187734006590818697726436790715757015475802259175138673041928667850890674763197395183255906321170945244533600391327882397098356617901586863076473501854737592279237980279336382044999174804390572022874576475143871480538281614685457304722775305070186324233919691107476333156865223675134521685185451219606614001841160330103198753968480014163436061879930609587111683226864650145785096333014217877612602349303151673987443021150315100721368942233439677941836808904949865186350496103509017885020802024370271150431347419342025198012175440210746827523220448466600159121863645865593882416227452270724801397902030918428064277009487847700792869497439791899379680414995027597240624369002091052146213805469365697584130036181943297894181426417222618161796412029828228989474328825834774062023062574702456150188440647259278599820586238771324297846761590993251765930318277256482241537638043676635750532680934939569323285032945890912824417537887161574792511396407729741453638408610353261631439537445952305683456226071767514068325079561569553845735061189167227031568206872909959777944346106711340082594527837669237025046871593478276023812285975956011839274154339636082398413091279069193227104679224806005482705226751844297635206364832560362508925083511405509392244819512858573244432468205468084803386000663210886932032828166577909455751168538005657385249748488136816029376561264521560801384670263470566984804618542502515705544496241388676687419047713935717681738104822884881039944649617627022308749946276176996305856294014484856061519166004227309815791200307943377843581120388543485082660562839860061945480156460038034150441902868607194769412658698714284734964680456244345919657841793954497560644109421860086103937460744527119365710142705709549854688056153208295527325342324120216951496262862022441023945744058814618491686744636117227730514704649071282058906495872875890150181435893787166497648765353897564678345542934844114951966313723053302745793362059755724320372713975815351927254172438387586985830411024099808860692775419619075850636657682832907212464151747564373329559191440168860663591187105189836211999613569802694637801537668710897759640554035958166768969820928615068557241237676187365695075405338786652006254051569047536458753632101278318546405256117407000488661458498107302835085294315956682442453629339359583233124957762051133404510259671025669914009148841013098999176305700929223507545314372207386659936335976131115666207173824474879160809400254229970151730001780396912504669536627368170698651557693690232466964289227810103192705678899132457317047598955823879206228081141328723639925281297577058318457118185462100393101413299740982600902835238052257887395772963408130635640971115730216857692736597492068722916917025843795919766177410441228418667460422411068738318418871212844428783382008149471715521539561193374301955045595714886024663686635627381889029646507763431630043184553325615162313712807713416919554310156792102333086553598763790677388879491487986964187510743529189744399448735633770024751330325066329665741069288392401828427695489731465213778000653084458049916061461264663098498934940119631766503897874972951583879682532558522388072955634438071358376102058190669187583113569130535528345300077603209861435168160016990115540132600164209579291568560704809186913415466224531889776879682878996837474079878076326210173195883310140337701209940582981457353739556542166887322595190777885170900721280691972312548154937404515882529523933335904314642653110066845413064694939047607652928018796353048852935708332303790690463575080325802846903240093819773330020663985395237464923661614998107566514169580853632166279823986257330597892501465052706087244236345052895387640586316297267002172222505421824773965118731819460366631237737011828008830002877610784587266091149826651287791819134577643408121556303315921144050949457158269921158499913313578374904444048148771671637915526765834260316413314282332286640257626045322451895881190907938834353561571654707268601040636049543728788282056330402192130856312091936562809206539662183444806693522960473102275924790887044722918896057528478383747008427329296810533533358339672354492221635651541528250096442338783007046721901946100304858979021496994027755605257722785340519799499618942421628987585989246895880993294128793040024927351880006726110396237527015992757544773542227989457547693598307162601237125837159815186809142308924000204187374632117142831281878857724437364012331457433175744029522612787791260950988990547920904227609301192101507323068781012570170698153236083039140962740453151357522514115871166024832716692806994709661298248167988322921803126569150291978729626625998747407533602098047881201398563333663972874898189264616289759495602874423852708848446161164589065809201822166806858901033066261064780347489566817919913671859667377167873692981508404762083956678890821159567045362280313574068163559361362657969382430618890105574140468557030075658536240369728925683386777041904819951498402727674865311437332094361552265573692520140936341583679230004443952566303275988226333619112460097915265257485511171467462681910983805703474823324068210930120896668662649321025401446660286243044635404836297553455274738197672817500465769866346730795314066570660055853410235479799313700415973048594774829469734967422038573210874554615633200725895930531294090463552550943582517079803981065639418984922873868294695655539414543846282934578382508192202824078314656004598744293117722525046926273885275936335633732826752321135753362117070802298219505563513327827712129003848950537908298908446158916782231529791461591303900882422856411343850309960018643183133976547160924522535784962707088829257305158297490591329719791892656876173927590324676212875273895496197153578869922452863087241882195979155205580445076455949225328869599213619640710429620493304116867236672314548362744078985288274410739016710539112104533657936729248364171036408870898393300628287178322917687523213291707879580408896433335825303377450871074743296430458474452452287577839777561713776788551771624750166763469659220566320549288403577257097196216992779080786002310472611176082511283128304576263914630703512183752692902528952680608714512224067559179543922974861013956573846711815404927279630911826582173204545718562426750178886795478286586181336720052649930374654340977183551426854939942390141479428541331846459709942217769957335237978585352146082738423094528580203901365708914408746820758579484150967510413833064652994466191184847410961414953284987814890778932491541746745243104123955520790077049705907680718318963520575957951185113634320341047635511312018816944291909214778872710037847773891442165455550169510059711580453814984870281118177602195553009502443249449548334730978794153748665730319688463001037492738667317696852866793686986178935597140144849894461808705340229423798648309463523361425835239527543840256507011945933315935783024613051065258465795937965644751737567612565383037339231325240951480144483282191334482144046142552961625682392561319753559720596370008800975786163502344649224197140636729658438733367245696593239857130902530955060571438965165383589873011795289296769834388577719390415028664848088332876002149046643579354121668319690478551053053273070970037843956180123595589888072502782571878606620963194433377198633519999067342280954334129391618761386310444695487261993505461659681358164020687059597304532702607629608795647807730786431811378081100473870315182717853313446971722462419916743616794371415000670927558145227413415334343445153747069412307161609729065774095673486535327048615571730088354879627068974169756224295921077397975003323581726906458751711060034678225160694208191662274637835113107502853018283404363763936056446507150650403444910369247928448065875901450271282230023462612654876989857554649208782268921139432583210045495374128625559288783932254348786808938477756623056589669937293860327895717451225739265414863426254328023594116940179020594193973076257945098265982574899779170822055926202368854223440338566207559625435734144233782509419579363500782772665893925226157488560515213940904200511421163971818816637383049832245493008755090650254192557094161287839652273613904137824442523486579574096497263836255167563547404610370713355349825722525050384219001759334064544640996325833022515841306974220143564716746125333596780610445956844632661746424148276058063773337663692458638401855760251003015961664711609625965361766997155172991893674255504475444139608925117766572723492356460504327744473345017155530770100460395922260754362686809679974740465807313434054849443125749420641912464693492328448893642954164800612069583828208468482222155606563854829040975858198809043923083507407978036721978319337455109447267538245014637508374225285924906195389945130883968727139651289048238900837331590066927757641242376547418565530957069262492662838998739666092365099909221988386446206498276925330139611489515116367532329768013719219521067494382865267361148336064512770515255896348836841616712930404235099030799424922367862845310549204968851742910341397523837405088959829392656905248567446383598720050982866696875049365093156254083944479171298378353088580252132691390772694701159522752693481354999947247895992638580855421445342170736347287120581590706038379261663393638955276201734123410310637215662722296273234002622780402449994554093722988212584016263275444307015381197914258042601744254766774799106268880399618979690394819268175622250015514236588609405051700347485974060194019550464958071323988867557436317973537104398498183467968652394349792313326703102757089159663313751353695545816501114499738067564914928934983248307647298692925214931622830166134701390797455545014570111801777886079533024242750145093457773821198617155841574699654549082342466955363937247305773305443579985628141008153166070492934171346082865001203379630600186483746663415745093116079714007569443850462837521922445317866121938212325897351604739477858130910701950742304867610433304225753521736565114079520198822945354206798636129936904756243343444373528625740945506787343405674554517553905564839958692419672928483848521096617538545880856099603664396498011788989170599039922487371819975210373384903308488325536917505218455593722685628230044417480710911719832801730923380442029879566324277452912399014488376064443528045676186080194872810388738291739188437314633466798992010798793547144905257355741163631447817236647205840330418396659573671988995294106035798479209007262566028966414603574458408809221533830484266845481206475204805570699371077076974255289308655477864796701139357645061625106250337489373099355588302777183997218853086870491812426954208915510855535673132768930038008032968195559169605143428713498810568062163273002509414808142265622040303607248543241123283510576780156424436779087238620530646871777097408436887050547494733388098932519976543441428244833915397116262401008946512415098444882128051801295137425621027914248319237424538311288982581182365420678498135448610625859789894975116618146436439233109409837693468960001059979778143248115646172054064797810380104922625157897465894999877322356522304261619739274087844127456549562621364988081578464806066184323158480489059335295881399727051571534776504173442280520828122610703199499046424535665763714754976837843474609595175597631705196817731044240995153221586074236724438275857990838208055028145441007951818734683185822770758611506704161443226941313811612332462739530398210941161928964281138055517480787354969796829922917190565459352466805598920600744781668235419443332776204740574838313724339306929404097145367440322322364839890963062504085759427328319110720743640365338935961110338891002439410734223453965109840084569538677358677793965345509770928166726378942040110264770114799510718239658232591817990652487223497347242415208520026684261461378274755496317370550821903155869896163744997952407241941112325126063544320370969974678229935460722244884138260799924475383772120109714895465737309292690834983636734695807032962957225740889911692827264939519673723704434121449884665150519146454300747369113766550192055705289620379356909284197399143653249072894357610555691460900916315306371393897974937724614324509204102080699418370540049281237190912400473163049023613036547473950577225302723722133419337295182711778671724027318663153675794641979644470473192016999032496900581385930468463487036808400203830482220909678796073021175013595053217815900414614094380907110939689228704743384815269894911516212290296419480831286828597161393496318634785436165467303953346505640141707363250693539064903317623025324343853655164747368012456998858574540129410398760085510890938363644720574996412045286159504619750657280848652838420052669755668313516710448200752436894871264098058883469606736111362275368970058454475081823161189280005648307500869792109998100775801810483086123709788583515901055786803135953742044652602176493965796332998198368379001121612682045480622685554538129995700970305667833094734001465806018212552205154082584233077720007110467519792915198343657071303029692705269270708445490357830604851346525469874111525398773204785590254267171505258819190742186119774613834437179970979662828363291943971204094673369521773151131140597867068919175413941339773483098253410954069156448884044428652239310752314374663442443204519620129999797354000417947087906297869624955821585401500433585796713024626858460395881757799367682515025451144934665624901209099892435500740666859062592518072354678100595141281854583884890166879363646584235915717358202378559005930176589248741758922538378763928483445909180479922687298038325004029524466154449260441440303502583038125267181496752745625047195715253805924290173873306296459988558276835904053045518332940483346618317349065652429969636404875897967164938206659444638922004159745079459619818792867751658496830172979201053997305395684604853448581156153650398591209286242360910293956211982064355487909797602492657398014130008823062647938960185966072519849960750016094319968139446247031100935624480727991751984700270540201207301785486198736710531105500892824049669391296836165035600011792385067493628028193559386931436066226426707531548676241975510650922852368349235029205247548558233565033791816420411822873756654475110104815696841422838950456323227036803510202813497035142072799484825488875273195656419836782896203264615087464201133317126343270998645627893867084306106775841648383950906147766484230012193732285540919526055240636223964966770261822760923772423469833124756506817815124479929843941055037797417444679723139832898572252571720477309540031211439421282168128399735954699638921840016405854380492372279899750377103010291671325100100675622423222702117529387923907888398419756981923450366530262644849079947880006767050950526244059504963816295930758187846079844877890678651551367549895795907398163526843473918110610097326084461305672338419437784582924471346923479451479634798273991350796570568235234407139084336965363242433937651746734010697689790853474530298131553336960412618155449731432045510149272326450897068214729996545463530905717990083348689007466873340771473142610133829942226157645801119662555949959147175332178478748550830301921411326752470293816907355723664711560355009137472953840958311665784550519987218164834999750664245476056993023843844492850477440856593377333738308622872731339209334398072513127385088916012463362222616327141950502458057815183579129812566872621338338703493742414807864997397157991647854254453991206590444152122501209568693589434189593821855256378620061400922503019643201785734353136756106638887737331193131090543421978272869650744487623581084593928465826115597493044481475192271403380618707588011411319863273059892708767283213002099704784776347389725585076812507805767181673408058279451416309747941192995876369895001601188681209394233632568364850196359151048467530040024751850909895263218869987781098891641969931297403097865864920420042332035941572105137076466469106840476584472706144548897105053080132598245978974206040264180499702685009702072559675673118603077589436608104097279975157457438530596765466418914298789093287919207530645391996295133586755189247535270864053970279662875268113633813034287348251697572545614845772521744004024623919607688549800562553934625908872410207337495106093236289255077439263636599537484201868239646621757095931646555825409709209985821168256042608994986145063639651303305397325362604420635910969388223667919429691472352514458379413296610347603563684839754404513357878649343997487885970977867459853766369800129938465675558771892578100895302231484213298825855899640209308316746616296804440962500479676073061804101587042040826531464478520601950011143516999460243197889741375217985817984581851729577053618910513229342117736974619618786278265211047766404707971598919082056383878810268855240306939838892246814829203500555000944646558773255215860991303182047154335624530372351258914946132281173985286161998998541406508790974045372369703470099748644042879632733242931654293009044588997169133383752354973211955050061041152989433528855300764786284182290002624673599660409770405091579069722162818767845991109670959178403138610752666116224649585035092577763038871664653883002834007716399496192569708478337873030880191224583395647814810287347438075138710986153716155625396371696008494020008756626596352365987084148753664030065342792926930430244484632028702567151557480377532918822437949519758207982947021073321741550250495683350896382391698250932459545263688844155386344339284243955706515085888868160826572327382985012903396385725120417650224591132764302504158705162745592481663096769299738532837245313042446927165422099077165310577879841551304230599967762500085420978584930030603518429820234809224190481728998176169397317604560118523546094665166106976389373243866369436150687619533514114671235765991390229758700436651209316607436236015318734705942006104989488398694945855454202836932497136711573536382237736807270707231034780240024571959733619890661105474357118307919032403598059507115180753485690287458859861226174598724422879889817028556469853321528759518421646602883813237501672868142926957327842610150002100669443135021037945091329622338030964447918023804621928894690616604550952097505179611039548324716934604733304031018629377335343918153482027709194047534840568249956589198445758372705163994612907101373738060576502669664660723131450902944450404939062570248531861819372166608054299137442133659246590752606490926850348755236781300043945095981325642652270898830727044240266282311666505237052803819637569223530934725000334227197234077842205657884499242155274372756255005183101840935737733846400595794129193699277888163746376162580249052434551669091808775525218902326418322674504936859753011121858918482266090469337437731040204833371032272774503294684758794261248460224034019537217794250675754092580155467363019243336474836835001236964520024677783439226902720231529825089293313070501487482059991499444409599393558853079147613179004710119520906566225057228367658128404559128069332188842916199994627150069641129589628036996953996620443963585301153184389666951804778367351933687684566378274662844640184138053949768006616425841505233625499915411426136274938032821350124836896882642407391138265282842221713590409185554539899929475710771501116217417529905308749766140330186304776393302744386306041279429227476017735466914746643233281861202585601808263772680408281912626336622491033180101738148780783327381358361622111643579173573874195498426964475218048239276608356786182796823043852070522077064503048555204528637383365948380666796930494762492020207229834634042545745046742829310844258930575945525952317182140044189638480552759592383652903661600512976152562538116018171789470025544549431833912326834777123311785793374060463567242673611114783653408548213765344630671271624975716496061613089081035507518927320486742061542973700189840769836689742224443321872436956338642688722949163525630393135961672032478543374661530322460979388609649396975554043764102956427431321454242054251146663238167503240727757293138009980022587717798101428767775112251996564674526120970252796329409633136586648885566787494116098623059844364391894498991865225865970382641679328333226313075992225812482812147706324564021105337296037390659059273323489502646740193506626665981808551780003216783417443938752178930818054319599890245140972199901127283408671038655735871177995623426888233937054040152426805573140761833509512362275366675814356530917374135191636679443126527576437512841340286006882903843055710279323332316815832825584322600269192995591539661151057980090294840462698361229136346143298645984021508537762199576390909586652449193241384220381869010792547567418971301947867181011423140519964631733208111701715447698770474799397092904262591304417926877132052444630009137203315903134417354196680726069296026042566354203219694458134797550401158168609798440288475472709383833031741526047263104577776556274404674455940179281952970237937379527329819718426240080533624689687952723778839517902963976703799927961859684317530188887365224380723784336748624057847682209047453376366131798607167374455630760322693917582672382144065995213164192794025923086081236187647431542225400548288900466269687795236146046941922984434877009399079827871865989515855425022449767643889805249104996602200045338847360363553540184642191280170236254233022685575027811711110703347918296826126501900779271084834489415265179757326987167059398343860431800357910195595026876775631817826113981719068296639373868191434058246436219644217308666774712255971483250947098365485398728385241081457234699470509154808971158843542492366544929762914527288908104409326013569204566305657467828552365510659632596466992554308385771755306033420224289929210570602231446487939756011206495161941253263461046490611791257728655510712283883972151741016294712307123573414969918507481790014853818418104004098105088952002307330966205371486967883041566377480998406712503727503295192747538069426328559089527897468656040754960974511148685825088570393577096988746848709003111827633256204672001530770816950491566390814749460111248241379578225615209860876428101700266319390898493197103099353662555472230260592065760019105204198886079197232962516353978055459005015304441103926133756981042766512160349846156052338536021241676429545366680661062544644631465349290122334723203006264420668761191205883505295750743030654472311390625192918009566182450514697889658599752191147973395211680390802792579887737990991418992653358696512701332776287975821164166628184867864909155670350673937202857247360552562901634622479674178410160720526876739729850197503701997902640623069641668609790889953702170360902415348537084923665243521220646401040636355592865999219296468187118833581356910210942304893893780321208377230496805994718497542255057219616721401502304759042442788775636691210684023302583032886056670337922541146220416354157259179561424856737356614295488523177123208677871667868115669094516274019095559000509933371060457553526837503700177023548460255713940015383150334965926956918855024389008536297726811022427371957364134312031217279123061580061083463346573193861836547000487825870021028070367232973573690613038756836579939158366136087544212153669509309456187224997388565391837441867145119861204394402604032347649482463007786525653847665689046424673229742507278921805881946288019369415516486111629552939664068170473250544455564387801131924160594460088050011318507861519862618653898105439304098509730669842569068370653875069103867274300423091691832008730749917580626552435864958114635793726696615313844073734993378269138965549448817096249405817644662189922335453527387551979182924415619842032338628375906448698166936289888089012712079692049212207931652410494412007053044593383871667790362094776856249239613776832639173231427157254979535657925598533848495660912133164202415090331152737346561610991468027198199311033828368567638869286087936619667966668654811999814760948484374089028142287066811509790088344391555384898258969626624307996982709292732653569410747663777424516339072426402799161495854906157055864157705083392992864878315812783953854268133082126997947707147567963373178992368613848215456347941265222167020919314035448231924901519164883529291057795003891855045703241401944306007455671795299390534275257446498818709975567300761519267460292099700846681996970182581429492320251474743391492167440193434540020581539902144541365750986587869679247572951231478274103401667293254917688330835580523503611780741451430493165225253721696435324467396953278611807907450756440086554053435011796163494932381770323393764073839592327737723411101345371554150815548629519240995735435581813620760667315806422766591170017391263821078278975724704447854277043938676092594987394524479315619726713768903061860661103389036572152919794356419343376625946508412275482338337757302208887773576838537674486710882313265778288242119146826966304473290378231061508326430257806865250043799672972365834196027131664332535846316379948581467250892183809440106451843926943798765386156249197515166031704964585956598862267457980741715498146136723170585119196346036964170128840744344572368156844724245979579171020403699897610862574483422775535472943500284912557962143446107412821517927082925556997434435747337093776925509112815084011309226024421452443043276062396154262130716770619754293499986760350599968283637954028572544974723377862483634313189727357565325008144055888337358979190504376606535968097681670742308768389466144673689143296732593874700528288068359915832561222345309742182390951920477112169041110356846446843993421032095712544918873404962602626405998396743681956853690591386065865128840322493023413138754168036484054657705069642213180663094856391205110164942498473530495971367712065143060195899545406654620090434747019363223195787471976792013149585079272186303875437971094746766244943273328018926279538714716605512957953217468084295364147424231624221238226664635383129645412919555745057898601234757429610061399130883147280440435389541349388572022951253128775671382724301194875617219332110550525110101336133080486563803585406238036955713309203725708118465228756434504469147860604601200691958886813695719255234930776987733143564628134618204419512107467708606674286542438906743593081335954123871736564782625710359848501629106624123627535766975510123233603328980217884933354254258706518329233627919895106961734378645572680701637268773095176284566111146106932123675219353432693365306452463067642059705928049618065095589861801837016784292278539296243902366961404509122488092177081718303842085110827368765560542200349700143603875937314330562070952672490012949195131424267623555180430140440563780505839610571323614883762331994716795047950471029825414799910113798336526804136712015389270046473454743450784578688963991307164529088827053236310118664527971038542914902942948115845932716398088387109883509643395083233722647484798683454515904149728577533018562403804971289995797345876748760542974999946341918723324323559878201837344558163260724720069308071004609804865209854123818191629858354664972049162128189492907892755367975695036140062295120322850663880049018638150593854251433630057077789152824489473687963868863078643556498878407869135926941373318941650204878971248263242580149322047749720411380670203264863052329364218032396596525895678449990702690188052802599419014323638906281566838509163551210993028181869336435011712876302978985787318419452497843464492108221188743323236104474135229717403701706160123853785122803272637157944177571702687473254992886854654288149963285892524981217786955327132442462980098576247263063016468527941988124695287627525604903143925489485537303930238674932809920212611709947679103178670366729397473875825022324969757955493373060284989170400239791124179956359017304827726861856802458234258505256759471354549315905111473867555334759193344744431513725626214602047576439027666253293596483274575441364983176458826354253900196230738742147041369021447708308537905000358664479184828304322234895321239633730937040222500205645979420236238407336424506239406476518525040032138747167499671686810676596440457554164111264778463740636581684903509225768192437225458988196325840158410299883199244950673764163506719172094248952737466456650824263318881259920234910241119758349602959252470895942281527639064686625912658133859803937098543632152091469689635200964260239336518993250536226349842399025114133681782683051667973177557346843002406803897662111819085223779764389580637602335961564076055379245907991315994789103986288203460212442874874719573554872634008158100451170265520469533433168539224742103063398132925462764586097541343276787673954589858208580640673386774075111312049228134219583153729135624006974046358058133099471928319511259544645530024986388869185587559826351546445566865603750974336857261951909047950719777794165439317866976091597367844622661205983246273208377826979853584895877054971355869456341702485102221633333702033541151863521131603748603222447796727400441809315074877619566880584440245019653119530815307809039104190765719746562966637086371253179762674463258114985752341413376550315894309459256283787110597498734471833776315602702698460263588239275566814512867050658039173950987612047231589245517329578775228049022280496080881275111861505491939736433692509131454520504920886370428941929080011414009008734951479429026316508042159344974805302714025866740385571447171049531259181564207450096915803165672395028028793561405580151422321544628821011734777579719987927603677550272904922299013376403807519557072518032863335978319584586449385331920133979685759922104135583427612452385689302299394853971708807875666471783516375173780192574020533407094928477116142325390502717190687889435869372529935936959776777036478335819227281064048535845349180539436522794910353465995822984967778223953347725243109270079054942673830431790337383654409291661994076122769022797236151258725791528015254177069087577994259104518890864585855127784946329216965681036424106019258606514367921647343046092356822558652443274754059463915324723297043640381539390218063804739321739497663286463267698433159976168079006953326957520007031327872992868424529178737085583046087597147343316611866916579490593327846926525533801788296354936283427349557676376970782735548029824221982158503248993593804831410575369656189430612147309088985426276714032169351762280134058638973924190534089411923309803304861000351031214609455044736306407794447830386833463880626277427847507310847536747936791200187568641805058530384647492518053646878119032113899478746861507420729145040422560275937978929547418401761980485941215162754855173989952508668412645833670621251086218312042967603464959496004963227858243877440634928970882352784842575140347904083399473638208606095111480188323087082449049088641816470888744005393012280241498454206925986696005459245730633565256951524023936643746363518815424009730364153505049692960739674948115960756767748009034029880160853227979149486572723699669187793607596207262786118491191563395237538207120202583066051380506855049616170356701333928912654229028746660422885407371644437526785618873963805679697241933713344176991283898232786592936209982036864231076217071160596842114902278175181241857626921898218019217128540551406474699617628967340957143554060418945151329654560725097966165621867542358766934523201950926009180343867138569082558715862262270342280768774668817016368077568401096935797543698197824393765862911035756573015141135475145244369505654227237055403608446341263928485572199375093796688387231082576342159919701086735207070004010345051398135568230995808696975183157994776214181000795956263221494836350569211905520617247385601077082981082455933679729336194739907353677224369487701976124200549469346380721254357926987937623143686459114062861840994260287307970322436880723882164243836211452885987315312512832689096901999784350011012131365916512549581087697541942592986554481295788877442878952218677577702998842777102101972136894408254904884466524941297652687200793407096743777283496297709812768716385853235954163024827134074321523316723314066430136888104440292166011455545247525121554691821518203380378214806407838145030042271115565959721172659157341117652886799068568041156689736327413171992057766239124962438659274185236807690456415895310795181823867785373394725867496787282257377159980560596906227052760314048354410630973132875719375403138323481679907338075474390511664422382266616299313411532139339889486991877998612559261874048306398713753673133384475582477349340231167864085914197440585045575969892030366597807612001583483020705567473926860090229851680252861231296404305391520896816536892246687677425540263956080470454006155638356851725752888930971489901122125571549189650211424601940068168410661476049143748310536424250864270624803098429559370101586809420894990440892312885721876185466936091161898855478439405021542005962153396948061753477918132299737793083993100788426966726949529387958005656962660070213249728995372510600289944722021253218842564616115627277092786452833318393720159463657471938852052240151778467360052105167945009294848552887062733365999721774377799312447684375335395785969319859261703751790394676691092148019730924870185669971005584259978804399686718585479885858487712791690743853727266529911350928142944035181035716302614515886017276201907954243843113571152173209231806505902509043234182241548740082154078556744711740111795413451504048536871654185369640218559608786601455611888893037693312007186269348409597611672628475964599862403540516273529868618610213465345014169222427837379995030320115987565039646107699651046100951669865572542000383106342610258290685715075280172921135421928280393301296521937139610599869674385018274349468279934386942016253399878401557486960461997884592832901497551290357533822700265890493219212494181738665587189226729955197208859402955375135800246206879313578195672681738189943634871175091103778610513801936817556574693779144077423955581526580992352013487892798781065613930880996170394170494281954778024392281689533794541359415699047572524173925541881712663463665553365834684717268424952780169824153523230299183419048356492912930421831936113293129976674975043553109432697860179245387017516907651660471951029156335092353370265547239381119349178564244982920954101368607592823369078273792287671449457518889848268993716316252500514226436516127408407410101527741124875430970135978297054854887417612130482258636638713777443890453706472918915142131916122712432695245990352344589360034364440866949480521602518347808685848571937060710994631900359806272418996367154451361110035310237403366968355329238194502465153922930390632926932637734422321039633490494294440545235373480840998239686576172641855869388744041236941386546992513812967473363995710772178035908822778932889051196426878078846290599593230073565128941294607492559074352743283954241423968307348107562530274378875006382241573722226202931949013711962026164408400344345445745787621163687652805786776869235289971607045172665175099306234829519133836053227915623691913593190229746257708748166251610859468768006650195678793750500470791627968247809906050575060410153188368982946167246851766194614630455226477732834320297647696677420262615359868637475960696381354995627280602873027182173808934628158003309665746813103376400559787319636695137718035028946999164151023815936881704122004868584703512122916437149102495747192329312721896784264989509710163900225671849426163234005887871401383795535370370772464275987271199286165340993882533254931487702174225415958760645996905658875276889251492636754660694111650660754433189912623633276514312708565085444666309662586454791236351000473502361999886338444096168343113223351355355794886238962342969333401201851596538077307540841599809852164136691571296891849553789648244078615476279724070043973997465243330670436920096497754064531541806790577769940102989353051905804821271220933816137232874987101808107901119713190062526643905520006336590617482868763456340912811722201609931078016504113816556181638220644454857019552745956265520013311232634458480733103567811666829462981138628651377310658960461029178777676268974742183166998308422179013683671070955829741128197786696538395356137944294111145098384128410518572711876531046599469341471679391345438529993181700813367131698491064675994256544914319519750633289385635533828258037552817326389348241241025062015864628028025737295329606286732102715285411744811608007444663163489753835059465343354821696342132236048007773105103733621949051403982893195843933799448702799392099030368054843044197689644862678026791257253684789355602986986536092513476667575533186404077966503395840797527371845780607461552628152271397657776372468295027862991118108150701426319674187124746578572999783514410414527245952500232922828029285715343540394273263495380013559581440196701024216543183956504230802696924832708086037317126925080552801602138528741003661142359216249783942748915201858340622658945683602841935326272147400356498135577366223556541860913194307460396144109472953669381439453440573300121133419627145587367898626810121749356544574548990274996170623404014229878090018438539551371867953095348333106936428157843134928389194108443041155183414808837038910234435089845418251105696390815045687661674266788208246112766765636695466022508830917320147242395126425970266846028052215469130496801797553537405974959496623731298248414793500140473458277436992414724037999022530926760341013761704412706812673387291172603130665088044941037050738946141630093586376619016353838630304309912027270735325965287776259627541037643497044197484595359989980246212348864350364634201500385211745933818812293971188725205750588471401713820825870302358820610749976964755752674047258536105001702528795067065293376197259143262292988122180421227611131275228044666929361954746118434224060565898013587092022524860506232211254835570530289612012246314616856988628286476209642806576484256875965716464034600239597988188341776416499593228068317559573678011118731204561296308852431227221261040033059954948381571973813147172132153245404862810074948490825596374596230979136341048262429963336660231412221576093758557971436263773911989100187945177977626732850294494548152427977174774390700671767899902872496370471352951069084944118944601437889068899491274400361446710256552616579810179942897153971369510862661131124327298753209190651127827171226335519607203968368198670292963583361986383708458189573828039709474339927007397418103669380208169924791317359926146728476113804138082841187204027834748182301769393813152169393610409799864651119828505630380867170076243805488712512856011126130336715731153903457367784260295561379006462797983454595100314031618547977790609006472618138039843460558534378407103462123407509961260968038650161002883585703540465567539793640198621810555535664094041765105607129928764312934994874517505810157142079991660070830593527441945757500378591114290968986971295001078173926722603135522336113434527847108844156775768110577351180932628322288079711326025254453633522299704536641587223981460496732142411739930620533101962331885528723140260507622201455225092275457243227200218586115959213293296735020943165305074310463924305695468391812710624338230060370765652794554104986991861553916629495170840446966106427255400849148669421246095201755189999457519873443391675509415202095196595362670923931228716877726106128298406549496412040091316708712250993358384839419797980772020064962538166734837225126965722454364436730088794319726557696322843253935800645225486277016868372131989380848566918136440982893153529748900938818794379538364649453375294596453746319035806333120675201286089187489184186456686134981579095943025135502708268903629759803218133646156085517165101137386627366948433899819866757816423338086474291392473439011077838396810299985187919114417824276456878585932947899954344824518211840903672518182509609068833635355253994604705184715528650509899616926625191867988681055979308902973128230480788971932302862451408079665841197102465170043238310853183100956197687820317267335495713545235332226965553617391353517345825534146306850034556180157402947460775192661840974036905662782747753532427143168737832873944829400120597093920268271442656834363340782527350401119234960788957966587099679696126212547605276977130763676279116389933456511554331126502627068833691266894462861329146052471913622565880233890630856463674584593289130036235088497472712929855271752600620219247639305168154944910710728773469901681618903644731486399371926871519682727015651763810266803694351634317232094654468540454943512049399691945313557859896306850377653444887525278754972711096121109933571438914344094437213922701714714572483584779668910575122667283045079394134282213700211092147895425225931364321054193331623671307808851383277240815775620024802586956674836155465740783142461135124374541015223999360483129663786278728078743545265872662340510321783769971262514595374135667711883393988534232286897537254695777984186351060675939460368409449177665729901038808536573453859315336630731437055342986592124243145235424294938586160654357307816319532547987091928946983409942172440806690451496007072604254959782100541560579093575532914853254841347313156783897879670583886978246421846266621703161273805837566691115311863149740967066216843854403914949910786705057695424281621203220817311320228489046221502891294520337448432406057879189875502635246517055066708651656288813988723703136045961545573280180601061427603835684260467368397876833480442536313169564041924830311877838942928856109216660211543091734779071490461210554374726100735128550013666867464748316708045344679899898166894995954185481999046665869433187267949479467234595651960936091215098025339256978713819883185318023971413864623694391930941791635472306539971857433990645979975968814055719557600327708902554950843885905486275934760689064740236509193669227446294040432050121144344935098802793880331709690335278889232636989650017956098435713747063573931996129537069814380745274201522874062179978702242820293734972835806961773318547161818014843653929203191130599101213941708743633471353678285672632377638371362499499193803245603999103135018418750381155541662837103935731791132361659490061561385074339092756265760179424232398142759105570144015262953620112202305356182124445915021107692816886364896985666543587985638085993063387193500262636003186355142832817022835128031381162024524220438853538262723460734044973733051098942066942979794201646623955464652907185325155904084525921222736652283101954818898195819815863070450444157689842616889299490464990816208657361814928886230003735057847160269251390116311005059495486963981768412401244212110028447456942338133507952125667803234524188571679442895814783729359677458934689490020469131552776464333317125655986196501652489517565323808124035534114071569808068569630288867264773216960322041671500573321350486948471041536229829929768316187138337232748767422902347927017854348605465308160017900829508960726567288793607807591523029085937238765884754548377070529001758583684427105404183410814722669617605399325317035228277997601492140383208434882783995232352564293889698387082115229771661305838216728888991592439496084129405204676869373339332686222265749112485141547213356377558925612911305022818645450521273571791914292947504871447927155490213474796737414487170009452265160783586007472213144706430972220814326250592217466157658064793983732888505920192381019925764315973073123053155839665073068599505091214752267811887145541833638836339680903848735275150059214100236863714523144222479663267003100999067092962529403665065165772695333306695829721309046754658893023793642482102380033635321100070031444342887628724764387718029234223712697537438192335304910045473374493998681735672592672593806669822715496621449418091272152070507237389963831809623912893420227048761305907740434616137221201259099977031609303739125184931077255433985364560265904217043818815568248387997460738666134339138051362876925335394338258728034902541357213852332951294756481587369418473357345149396652651874346051336455332593373951119001492332327303363832697799040126772356098807000019376632211956084801339399800398706309872285618037376117960026865424284823526659795728739347831966707094632811043069213914970157574408351233529260497869135625402008325406750632950086001661315684781740452895055199103693390101045784694679440942880913192881713066934465616922439242129740224453302647349780544827433588165205063674399887944805851101338178269841052900608503612274397564776659679383703225071272661578037312594761194142039386894278988975826178399440037615427693123781155045164487532361175777319775818559831599988254778062870610076154657226410581035863857314715777317992750833291215488063067127856981819773057019968780601607713755881378909779476313396468491563641902372241302275748545539289163896864868029474235107233488939141820235346898584056044831538977564301128674259326964120673343293422116418163392485506920477574333969097927491289974039904033810506579239707112808164834580133326790863526985912331738433817994381030633336223595943080929957349121637081180109822499176751117703183442048084377570904084825157195550070989149022165972533485582294093561297105054165984362353945207564404664503455720632637934367204773179938642956932014068891254999243054727780629949428215304081120048497700747924164047393363078979334305989763519030512133063321037532768471869352969163679545009134973861212733892447374684660094684417313684000129476080726911416230616737078455653505305382126240913418729067544273779091664298881801774717569882532977625537780750435579287560172858538273239076801556668656387075590887035001989755696730041130192806789086898285830978351231547754907922908548729614021044504354585222415822617297042339801316897627917751436002711252789483600673155021628322506908659830089545777970970830461785424308865139752576697151739791576531033627403933742235699729305928998609410877152332762768410956591635728117103941831573061451347667618722448537277650399154796351821224409791324111717791525993441022948461892582286737880552926414822641570276026090920753368019307563525799779343922124474516913394185053360147853131149940225483480654638463359562209047339825949777598944372080223157310252862031286225326150727831921042893222994413170931335509274115033948558449407441270233787788950350722760655953974208045977110462245913856867083601997562777744310791030441407543268504398063270220758705569761236342888047489226535990614112925518590743676905921497647619759275383576976316049348330073450526534127609449738276677273119847100373544976432020497849672697080952000683702597723057883494449237874680573970040677542340729616049888229410170565615387553509053981804380020990880195733251624931572593843473253329566674273383051024125505453476500436446836895361052049647478526005035013251980481725936891051678697862870473179440963310730560351592603368007697844747311454883584223103947893294055169879525883642521390075849684086986877635664539420408975519887885898701488059869239136435638314840831360000269103626837095687518210295754799443239975915628280264391329085485725559109173270011091917601302734293378592688060789017914842396599900616432343038274462098477768570599474441308256283401859183397082673292868357913425562295106961593486485952477466774531027062132973817237382455098764941593728270057077877372276643163344765610663734489788459230371419537837914284262249111126488007768567041785104154479944572799120820911968763191406675415996988684638648398341062632795452399311056489299224907161255555795032759232124470555880030028196153488136253947290745598599116679775846498674397869717712252777573156601355195077492221639988823579615367120487932110161233074465463010637183026838697633685080237988463337826886669206896173827354080874848297901727097668360920937960019993298263247243851806946371391481936535061446758164392889056318586243237109088945906804117268258871487486459123854824921499425375877611882519891071280374957228779141626940145322949813730513606287853849905117657682791611184682754960078709655872089968189933545690747487856883933923646513357695301488166508721768595470728437242922337639462909812323629108582440782592412517776728351813469140037766857707690236321823330571412691044916794171685018201347297266451394106470770117222684319978607567496111874203600240580936227552474128574501727659954633977745178600894302922426206386014777494726875493712853412671708860636751148453881177715288753303872281567247016875995572805088930614366904752033084615929525344149387092229424839035644222421906342491113660725846936401981433255323864022572935648289428590539777397583308271492808602631039603360249697312250090101864925786185678860147085697602956113718217137164530435131582828183143215362270178677799385515841642029544832850451395923817129256905217486597894069592652378462427794530393081958717964574239636401201866505696028165273849235314320847967586392630927927624534144196677111700996960268591948645028154118819716775697534446915157799978528372513914959230067894673681371803329596192068213506227456674566144649046059999800159942219339428757058014899941335765792374266033967474526321036990332978742906452465601738989225699888690002578339678358778202495978883274206807670978799273393435446960404960394474126771148763871529046157054916492178018278747833971355545999932405682980287792833033700887124863046167741700089059633700217564313853570308482140866510494010286255553877205531693263892547716997638835425878180213278359654772816531259924471189880847851124852075492840859614932806753493874158311779393188945309071416645277837108248594797929010204421387987519606850138596179771408356624442323109200972846153602991009360543352078291140732994275718678211311052226366725785193202771931638993905945429396727406802573191324541080166207808834773248935754182325385953341756725864904442787843356455688448624609007606526648938547021112662588039376362181950491496461226574043361765028228273315883109521566362175492335196027496182034602099738536791512869197564361794776185249836801949383030710045452478797266653764368786532572699179605723768768784202929723884469897190753878840399128556237673582213142792967665918784772059356569997499337730951548614128627926177802898353259014134508959925064749199758640800692487836589519692689124857499312222300032560000750979673759669734000971108420067184784618178734989034093200099634045604025699905941668462721021868805864684534378035195207405134963498255247620728486444423444458331616283732776891520004934840452496255937376586740087402419767903015587008673392326448265700825615277280927533730867207271671915616057613729335936099858168700792448728950716571144180789345900894230100067509588741835377789595986485966787074800603892758986187386426968235164545349770435838114920812617349543685750811938872958989778986764733360867097135761495865390903061692577976538582193885616436053927004043179748913334776134321651424830209604903546839653366216901358637790534556587478422549521519006908490291542168926412952601922902997995349787878468307157490746944493736093202262898038859480339062350562418418065913954880203923039826403484759416279733899355935169363381378541087795184401613403571952143224867124845736228090121829828022825781306408006016263652538353783575047913335068996895876993064179036528666493568171161400359683550016173944743623231712316515480770754269001790495827294137534466149437246725806511295598807609884495728312546291510417094063763826277520999065643189112746426761652594091789973328993700007938303796608343174024472951145742736134664824969957967213067573818872052149023097166450557073631775180241336530168591634371945951628028055145423014773012612978471696834869651350970010439974061882990438394568689455842198944905263488024311953555755894407366893809364332838175017871138694731538740958697394651058245630391145369922879631434959356111892419773035692728820696783540891157308380662638412767829016840196175191252486741938851851742744898155116615742733077637912142149110521133545873503073179896831739990733019634675398589622259163908161462099905826247082321335757744067115040007652009076691710571411297762014950875941871024014102288943912759100234301215034125047416697945737632116533251805114058585166905524306649090358766937625582997430301531411590944277830339852341527358808059752536150401062857047763157249397352293677536418318703260071088161881049403187475215286947399212394976601251657372593905327930648195455156748707263116799957158893092883195523965516257795525900570240395248994240228726674716619810338648154150392929858331967531200801446558771075613324132267300682005018968288121333177167648689304231154721809636384399181046430920535215454894229341475071633906416770290474885604875907741897649847684094460042462543673950375407312684697059783376915015526058012679379368473360190807809651131358765642455450957809046827593887489136202955198294999066214233959594661791290424866663331712529179614509455354616606257030428843819823426958171317035538108339517159313864509866857282997375792765018214275101720643288241356380833548538686320700551995194967139629171649617507189177609329487710414911262522264047550657268731301235035814416804060864355885412877155507810073389726817953703559769179511316696021263623888317541844889429992348435341690410135579565404306870204805586023783580481635013570581223297293469778118903801350359552253529577977432886770918829561440340722388857070985036984489037874531282404854591390201601766164715241507320628589862129460347688646281412863027911383589728972648279025786354596961197600301210112771815081496529574814823537600601437160579881812405043068265402644290433774907102237868947002117404197482055346001295867563530648495920142121378042516061859352921160376864172602536072544094788775850079762872612161884372064906609398265413967837336453253529152736118201054688517445079494613310315041164520566529305376790035992051514840269145674539849822423290257710894673854023561566975538402982706556552954273229347009822840165643026939427800626385477349796142228235445185429461367739557274345367867666303699779685913139785700588336410092476540624352695940445962144883062097382835963328974770923625887651662132270465188492078756905202347375722255799570209134186300854805575001888030050864693140868846560777589117952088283020466928845302926699389205478377753033678917066571971740903171773531220970634994390821290402041165479107921079153548247378642674291433636132368880754592373666175399251589532072655075146354622271480761923515723683075854188920888467209984100418462163134818512387358164508889918135505093999430976054017590551802423217136970667955239533673180599039219075123930690888910264932261559440022203494577844336351186171772766632412667771611615682415579403479832879941903020500406340715313382905265073387691732051738644441664211624128746630987674821421391767882361795367173991311720661010189088089974238821427627969398061746571419403302798622572161524493578724423211058198909516951243320217423700759896697156463402541495575810936299475758457222656721705585159819801334128990561401359947548985431528856497623727968402137270866499729779055910445140732372480795072358726067074138593277209492207566668371054796467308697662703124249705107850801630626631447590788986557406160063436440366611893405925915065053158677881802745555978243571285207538102377348504533347556336161310780885978884192007357092035473152917690023170356485190830852896939889328329840623404706344280850157591414939844847703772169884325152198039295541606440426886964069368896240874599776029151432969770010718497019446058760093753439355380499653332794948627983994010162467867220549446916970723706937124070818093604475518954077867952420410250354319987237067663843642406100458843032099804906786033954405535026902291500797237188481023475036348903708569164193510450372452930266790846989095403561862565982523845020588377627950116132941382604257943537597169116809830377224764877892212978714703085420462130424933254563026611657326033421183013133140423760663931124686248159313155529566750840041793706664103114811220604388418835888922854367518282573788815054393506882622890274273962178973330033083652619958009224053654774841538976375316355954246004825034678582153432353062180275424957771040650987369734867180457158183254759351295791419185514280809696912117423908322720625014305489019925379645730322947472533812651178377732642042404612987713287431418006796237557860371448544595660863474709856237102690704762457808730059901874254648208358193798533084219435725769493318277876170376249830614952180025879143597648078502971484857481081494826639455920297518617110928624245558748944225149000158059897590240574501638845068807607612272912217966352147335534188536414907779323069207380774972393851523934759026396970884949728306222012833106048987799481311903650798367568250018571486058731002008308683326152479269221534259308009907282370157687026233245555604715326330862056003116162366866765926898858672170298833179863626998690602971531956324605600840665149268542861486175524633749028843928361068243226712457203900844840170479939887566282430989323013255438659704365529360574610927413341559056255453475891825080158906952993551062175323851576736277268025629808369050763881766379292937042954944235120353139039577834257901282628536264198358165386340584062347265309021935674964245176648567503809382878486779031704642289024673041020647529303176491159255212640532881618349903519815637010685247205486117031071689303314617041405652384751715266623682509403061851045665315286948337101913542493748905513891673789686936211651005797677657632383073964520479030090627804788182130968940757078915623883764143661059814032333008039020931177402988401966921461794596536217562645324525108606965824320136199881597182171088302197869433782534531629846316074923842933157689782857484843508415311022536659662130396494397743838252138968817445917022107509791031364069383252428990512166336879371326327607831204320809901387306802905119241225202866402333585875672731085335659588438936790393181278202180869120730365436871931089095471234643287248678237685300316987301332403851536527136028284616651000541460498167802607195255478816296601735172568778545516927268737678569790021376794655276046328770847779836474464200488818243552106246157263098912200746505680664051755544729504428508743589909339848096394688030898140451930537541376751030486813561207675420453031846588788507030814062956789047359274575129968192020763927926574631903009296213937084360320010061436390439576914231892506615825063678331925312212351313089952877519107768096352284732207630057726619650292143734143217303247506127098029677131336242761578823713579389359902783952850836446404095192508748358992169822000633539091381259972832690088845693715791811265127184946252022978153680487195683673000076030819015654942249254022918718261091149215008788424008891709632542595619125702912136147594668572503451863599637771640646324900416934454191197807185441104767741569495034613867752755497133975088027575715571568664374252647063002367206830210276841530152258519803091801409463943862356907481479882062489335924478931201121678236886501105343613999398244483709576398532116768995393002795743000650094565371905595784860312499617526202251535927914212561285273631014703826597502339352209226976515204258575592067785254177600435661799299671124070849806936024740526192446202978686532052201917333488901657238779308242845289651444597656641392019667826667988779903110975766031776938433269091987397782549703984490273422116361808270647363895755529658551552469231108426661424556578850712131952992496405354790319935962875743214860434896322573670688230957377358160681056710579963181312910930482132983655640254627197106912599252885436687258401010872683854248296379885129865653799979384121396680627229980955648644215081927580000266474416211970145780271781329714122700450311040765491876561906065597875288318248705391519617146542846799833835873377363068282027159562936534410768438789850296086639334541566366721314284832885151143842128369881921520074900192914412197886542534599827425690258941710452387326367622099032191978574872618968271099206200675482403749309465967144656152693843279831198733492199731915025632719728413898077478964702144840813714306188115314109335492783338586762428764596988724600725068993848242844217143546974982021613636792982268085254764642605580107457072233254804076635201225415050235721946025405176370609812055049032539695525112536148316331286737888380593417117054729503310882036622179178403379433085610712595797760880859430030041861848090100819398953959449364032119379488695264898311357047215747552848906432316284050279760591557420049926216489466956688774616484003427068122803914511306559333836159515625518914800441994502736229609857050092262589174603378441249585879129367370186089787487804665157171580007202810300189467005015611984710219938049142166375775876780587527850548756584800087844638198893805167358221411799130211533501154498195293926274725831558583701097388829084234076036252715261500432922757532932200188841577498750300027043193952540737912529188656338076644120347682350288161268452710654405360848645194472773874621112060859135213247000943961299882490175121489227552901897549483952880120498185068559832479204358983568868738203020419730321569140437418868652206232166593633696034431474237001837926651027555591669312217500443462691995326050318186489712998550784899755373241030103456384120696074546635717920279707905987546588870925124035359372122263874639850089910121118499537042050037271004626519316141248795753158204374555633194757281790836914242794801409565492556337881133187970552396347291644806758334664503068181921542593554453873584129048907430754827295987341161639120936292602121067830892205342676696925292938706561909490063333568850263434493411858480564945592071334359034056745790827150997021953736991421138601854362250795246963191803817528804895431039327986570285650960824976793241361297653817512296416789350466895458225967880095400910761333137538036271852775566708547363340904233793117612994213536940757022041607141844247744780350954593839289781861562323560012216493884458179786542694641698616347030988286562891195381144704978068528400839368773626335241576246307157232906309539103870785402911479404925092506519506664616440150376265072174808379810699245082867415890002954618618707958771396010952688816721335683443177811389129056387567724894141863936605904859406049566461902635405226792129300721646046905405787864928392099001828664520966788509033703851950190602552933453048103384728668293020381811257809941869245896711975044241431762841686154431976511590665169640357459162448486655645965693781980143760080069169426422994457355837573070053634472769382412313149233868920702767018634865985289494332417594038848208069603009998925858046413370154647299968559116834589662108173899058452208868959650257870122673010718016205941095106926938530955499933662134193311004119936463923207895178452360855470349551094007304948887791273506072178402330614840437338151062277068342629078937061206508879301411668542594286910108071655441525459603411414491289233127748257244116019314657831178480790486781189009661439390327216590252901002556583331201113319498237690566112956414338391166746112417023054204341355374528950005964783347110261367573329991725008458006966662591392725616851341211763130373691758347533124156032057605482918693471027941512242379883387733395665030702072773992822912006818439993048737602595262939605318772805786710095067905958955975983692552572649609649339982386915678578659276325166373857541828230072991580259317889277778217473959999077785070400418139444301717366631795926166242060371751253906306069634856359984932587763328419716774826932176949336468376028894430046748086293467549394006835454988618831105267424035060504393024598676047058212014030238905841724408744009724201733243611049524244380563179888265330366336567124125213019931873917634379881336371686775520815905832046080025160220152708741874066266877376825717721318568044095001101688676592059823359892151294634367273086845508907814308322479020100608030832167061957458965680548902735706286689967801411726758285091029259200775858899304577304101915624373349951007311626818924065367164935669867479477944396132123399156159174701573871489050413152650272306551059566075309014024913795047177251626427645903020026890208669576575486638298662385377136731055530931165661119923650285528297487456770713514739991802308257818132530396760509052899772096619105815522714832877230496618310608046494289192017544343622489374287357968066718280855170129751081633271976188033005531327979038607221916280986001684684429151995222120450960561766765425485668110443670938963831433023836749276625384918259426471874532366271910169752602933852873559698650139928058383988669150075372652784786314238390532029199194506139322098587869236670674299750647524006078276629781109572704801050494923997490305377921946894505260573710667117940756115666611505140275697261523035904978116520308018919654457223639110868343536922220806042727780300517410196603428992936599991148408707126582732573689916907439921692979581038397490039381977779578008775108701678056916644511538865313802159098138707522654274931370420771741758116295195330979747901932163835896255153674253814231975114556902010092684345086484743809569084850749799587793113240994518806484539842564516897996204330641353922556751232343607993708083644556741291397476726962709159372274233077031552510662819792294357393859318718558375471292290882640662413773342262776092552716448184921127388530350124232992551349593962722584754897265827852069079931224956447554729589523970441688309596494341279150705404459145250250057270194318244969428548489849197052810667935800406340269237513483200771222787676210921435751620741918978241148472975894000185023810109878595745396169408300258045990682197602298699316202779989123202500189090143848024576289311055838933277032609168371142576301839312062977271997662725388963035881222922806823186841244520230444576999980865915907660605432900948164397368045293535953750946647907206499123495203793488774428601940186080134582078243083450711601393999956009515872007631800214709774166112331634493398538633642790527604228909215570210313436053342330899550998504112186755312608807164596891856617715487088675142204721414108914378834312531822780277340372091726823912159372917666081076238601086417427821791373931316927935574715425688452066500232435842142756994799553635545303543963065564999975971223839971638031031818891542842781253677104226996315421941230416982955575370971321710097807537394951183362652652163425575791464739701495856163012497252343244993258285110538926358141544012654207234936546781141438766087216873561263158184980829154281172759240592393069277281737063454209715780218982930701647027439262307091509932118585617623484337505018240846168750120361070125050095808637031407951604191617871871476212498936909568892417755795118231751327480121418737237473657807337215146593827904664965206797161171712255800822961099847510348832954749894633236458099520919895063948570080189785323779713554048134352634939394838613588794124526774781711041247259441863232773334802173300898465419017378302828044196189629562796807146102057578091581825978937652523442452688878270054295181408495582499526448106402162528145261604649154894371508308721075374487974086910779338341297301815892348945124277533230954716571567263504247308627106233382622292532933791119616460816834925724369955659255317182445201070289410854002293691079477300197393873940531693609536735294024839015752603603172866300151210937956797842307663490106336479300143673207116914501384127977926135174857138973520263273643660138458523439416502910242575760128810477936991868301407014563576726086898394792318139109174106424350769517211235555010999215429984768060081540201254752225427352589613186588422802335631752327942318442843141141121323653181907367635190833797885083458966764556371062330044369317374182527164243081123884233334124439045518243813983847333725993832189408511750577191087109588133531111429824759602503390008102590353319911142482077769141881450263556403741190023300090638503618270015463340035632894675442286662854519480373667392669518335393959194599299684007904307469128251180255621049040182706400066566118049924990714216984457732735487383836678595994383425238493150658084121567028807480027915419541629987777445267907997119942525111480017403142677145033375158424306256336956910528749991608846233370863465343715335772469841793778746567385640957547667718622373685934551508880853408741876282424740052790575109108899308697310136585734110134099036823969287349996844805571932240021204546749103379462347543221548699432806440500937281921037154817209210649687317022654152260805765551129738629445033133740448765400021796250310898453271544686868240005799289205222145524942929465842880831967467495076333505210424766999793068663158364576025635185454737739273138749008281447331953698114479918550426669533422110099188080380836878060920941809667344899779519213192126291723406233003568543206262507230635525452755298140700850387139076028696069192358404372755224921984086034993145362561012338091586877454256842109330326840134535041228209467608022550825152648847732525922177847178920597939819489064371959984054167114892622956776248823368539602205052816388535373594293117218361297683663060009787619559088175686477010126622023942427648514727595867233054338777523846415776915104786779797892090396752120896452820006709967247415136578103741991867975676824701059730806852058276950652752931701036955516110508932844451563796424798933344748345916420980515747261476917210279413854469626618815257158161854890186491081533565544585305762540488783589726341866715731805471925646255379405437151932012116101655224742849347786998191354122324551628029600076329055846235613829617550942981092760708091700204200908562054336828525280799809039539382864543168889512163009232215265996564044080347418250281515838362491098869840345580763814326523991767656506486435197223773473943749455377531334373129512194665191996292703989135818969141747935678105534215344083271611294178226962180336846882275771668039468570928908272943023117107961505463858526681740485198099676816761364845105116525909772599608738633382376269410379094873825070679467688937333513961150127401021204876205281469626320514887225608569707084674457384120140360239915225641406993358162493046168900601543476114131649150405928865167642000196491677301610350849949114740012433504854752372175926084719246014830293861238176650239056409271917807964484921368750891269249253694694751867747232725099529128257223533713709198318129386229746089127645400016017593252502021212447370229216062231313066402600504816890822339186569096975282016433293745655285048272040940327412921839928478388139136766489238934111555822574241191842428268003052809908557006925399736602379716235153804983118266980540392539475848421124158695183850783410045981168393833361160067343344568454041610457309496197313804426613600561540510793118412221094243275231718286392508989130471620826790154619023409069354479133883153394135283159347983572190373391757841273623276382880147650325491527178249381976566407100775359921361268734277177615517017115951380904842452971956965792482123782302009664700461920117590991977352575631047207503663741830078083125334617216685304749059622342986433222281187377292884477929773369922958925547422052568341494840209130025585435598140429645254467968911163420842905224730672716443517399563739256025967300576277964573263703019852910805774593651649035564163979091730150878606024780729701480923994591896226960871869109349774306686517185148793420637137064017452449103538919600510974969097617879545681543698055436984172495575339767845281090465591771215161551834252550053567108032869449098668714312544338695805311472288157621732356898368489837807201267919157094147167015380618366303799822778492987673739735637782774344759010056063665624111058042861212466746766578230265075671130689823518401396667373059597260069316203465880487907436528296363397551388515651848962126480639323357297485671674387033530562038834847420301391798067560794308453671999149474185959129278367446306382473359565745043184635485247270236862680367327014969199867139569829096631170864531259292686210262254510296663612416030502358345508560524565782711351627906249291812207777585059448210354396475329331565766680030233108794944981770490878124917027577516294603239089529959758615443880750965613457776775773354516156003305918811793485162159467064430887088176368211487135874258175859759245397190271129788180291398241065564328093137367904099805888895846791832613193391829887995081895014798862724369456629960080382424833201221958869954508908561464150540896885903986764368954009331981971289273093228985086574001529917646564904645016341172440137712592927835848808625649598918021127240583221792940528374282117220575410107098306088484620348902899817746644437884243072895572490270315738681265226802178764020844799911830007498875471899980361937053952555149446613309679848744256353017377981284557998431728154518380873179507486430073588902735632237581016655135333435324803467626477875597507418417688316727141294796846744682624774530724556280126667706761472494956780841151334768148921658010910400239904103228234509396085348217720568315257015862445634714126286211993101700565273193887382883173997016826189427501883996632645200524704884563840577016039766061606719788163405885701077002551071621494642759756143094575056465253943294544289049996799340448356132383394391816741593313383973807198550142729444583594837575163597396294989083630379234340449926464080827539282440804349812732176002945800692806682862446252123612368468261916737440878680282799383725509648539685107274714790268730403002912101854062043183133805182179768376363309232077712996531238970491241276576140380531284718985494332322290516083274562624499126656370681573469497133753473147404183242234142644789493441329807060251168455933614289859520867690275097028848876975590717217527197716846517102692339704856103119049779516355527186929709130313106125451410311093794157754899381172909672246501375180660967607225191284858907967516815928430346211233045223760174623634340995799605798125240558745290470175066631356249018353850586624343819796599575361127346037126730529928903911521670404870107350736306634869273661830876465120091885784696643636943739839762597167444583228929041613073147716513149354512476055900981842896071343556033997016571798802125165122493167063940259914332936626813751516478440168681468711353330164445517650285533092254312743199735071624542871687779825576604694637106037489573992752466669613774826701098229083283799332076702222023935376368337416528769593466519987143318046979626062362210880463094455116964495270016371503796719719987242622121920897683223435598302985745178709430699854785130691976548241078373934713260166310658313988324948484950315698482275198082785874784790815755234758999482447082044061035507190259191453972863464080474220259724681753088222647546941658025806551797397811175465335545460815120193423422406194905706874875627489728190418733691511844948475312800828885871131654642946550300387807740417230602981902095536023593687373152519994859571502109148578728271195846244995572506971487071312936414467522711626660795723085337942344232658738415866335188997719712481531672350322980393707234320289857360544732818543753493528336124313973519516153123384124804793556549345484453146519622565590388976403332459966130844007879469687230839011245795282872329460810865654418069616328771344257882225332565798558758162548439023417588074827483930070704383660631184060142379377222545724224943314612798921410436727868995985495714484820167549599997848341336641600992587842275523826255756227242084944926057222377013712356245059929549028892847909878160750073168455937185024651005706585362133462729574316319375832409173306605493084634749177006666565682001037675751816843715992891747369555402023010233957248573129647806380174184319192743866219829597132055358837353678024112047494796435706179445001643396406272553339653392091298603399586926984880898586788177684835860097396956282162008287303144956066545459543574431315186189450658272163428198891316671365110393130853217911556700760022959684412843666523959188891286432637751900853893236422976836138658381708036299036325494795526617616935270488971955143784704583275263736948100599640859735363673577513111234459042590474970043543707198279291405237547854776003830951302567349031540261055636731731075795125650878758889198832769536604127752443984164050935033121175015367582863118275992794813653284875462188806262769594124513483425860779617367023440626513412653618037704764310099410616153035939973378215915286660834641326213032466187026766902523950095074404805752378450977929351000054631353789154491662477693985423681734798791905555340449713813717766730445289654727867859453719804275079123411844281324111147668352905943444563085420754092919623634700691321821563467820856505236630404083335385170226481539553517757538191098807450282304684094666240116839076689930118154469216456498537305986904711985156388937965978942148639368622657355009622528073667934976600360459494067609284906646289761032649179043738309686221852426385853744908099983017994171573107963260538874339073977152928068043808264867851306127899776431691794364405569785920606058896097605202015611260528897635457861925898888571765829423747634543174239372134881421093511907470081113881647624530794847467101858517493317663717691694094805820841580487391334060930219638738680239068643893751334962338297543069893657902704713777612051714483453125245372582363864885209417581033530566350372689024426975137322932599270629968433977356039918206802779133182123290975398298973913452182805600485559622543932527607394544804445058643775580572702106076556419458266205518246397830149691214327760514325203392807813129191178553327621765068613411175432416359060909837106883843105234135652603090998981380468052556764173556521353938938912094222147330964617016914003282052216536742248348663151051135952817038527084570611961535549701501737294373253257806698298549296315451419074507728802751389434029206940061008388525513657982576768014562839154806133985099152149690136934233580737404953448038747930203131378060160517168178691117097393532574948067663970508794921674081081282876397350999630946857687228294232705979848772758285312701448586861460835339697803369994875279988547272828150808357212652908759207854252537100331175894390364329523319932543469066602231027290653603775724838840326416337924213049969029776130865751015738306708441406812097348282692746046368942400322048032981551267352827013828996761673734920504946181860884547398129693761243094065502950929416679064967135607882548103601004957861196103114495194406712290925591001815687638727854388597485793119799986809456556246606816934486908625763999585262799593239556494731332132073597817329435835466508218431053981125121536782573709357694035808044406186757049891613974428215776389969880906930080459132756384086833788508411830058756324700545389730819107040537187930290284925265824350693847583647335134619012632608331547372248917055237423250220959731320760495988828766148797166882681915662800690637134743123464962466897101131167572605599499834373607676406826953516433896222414937703260887979389891763642716060166268294446296369486622751831416787065684138792833124015193306110371908597066198690441541059995913619567743416182734533509925288805578905354955618106061395438057236852062883553133812192685895676243219019354420378641386044779800914136725051368106662146342095480157402465011605982546466725211739606344034665152270528335117939644534891716523362803166505178145894596592198076715563384619886886950493083103829996687421325907083660036432454903206394113319166545225233349832907121087763770442292919436137806223807062669632569238281899903943842652429888129530359344345139572989083149422863216709260001973007536852575340031519935045435870293503036504085319898130854771845715262749169265840331837984352162498328398545525197624894428978954747551639836369923688455852072243819190917087796543424887144207212539980600484747179015518778369467535743891913260702432388698169298716174970945666226593042584241107018833513092610011291799182752203131784323070164557308364452683180845075104656652804169190513426482777228267655424178667725311895805218592245748294201318773368661351189929178780308192714230167523826739717524065646237482959880273787933840235114635719273934884470782164448212877684691041419793243767326427795039399011195961302387009347247378332222614300893316677025519057073217256088090934510405409250611859510265842164023903316918419011966451794337688544310956105791617250728666275364923905016326641653025004967569715946333061654595703426244746802425284127880888768524781246793873590796597938318686045793833102662883510133188409386054497514355488578151111754732749059210197577247263753903375605791403241470220340788469051024097490257835774830910026296161730619097218183190508905832237581307918612788378492969562333789359951657163487110425317080363102685034034226859544512345666979476707268467944821327168938293396434460538303503094151297147643076395406157638547409623408929499803125262511333688943088276897601632901654371970829329722199040889318059512583715215796327499215003730750542055275449773782637232739575786330977326208295983394484740293165401665585730943575616177774829071771199539312765068629916057647311506039183679028878281070473370137768491169045199494171056152332462021688533729134933036810728736765723993140987816929607930389828460981154710998653088912901880828734018172699317296696996685182232365574724035859265721499267122312057978881467173059176794891841821231090676619601817624187876812954559090696993559183555693676048434870822896580821649614946588333227803892877047291949102303852798274146416215679238058428651225517117121649116523039810123966522002829008866015189571173744826928378922347371850754152182680850899113258054865223007456362596201721384852204619213035438394800740737098401819928788680854275364195979673307944689992514164214989672126811047020548853019590098008681407129168411653586234410134794084070511972096806593563398013982928022426852768339867421454074454181812470162829697727745629138322051004023383679380768954667080682386053593137861701992344859949087782261696088714653949929282271072641867226976646301338969433684537305491122010617699846157505996286374362493704768509650489821919056609141877178844394720030241908311813808757531669996538467823193330363740309682891528562495062640852294196303166729269175965631152676878340165074017946561559608661981880061360807342983187764526573377839997812170615753053640452290236933821692019653882367283965296321412173062863031586753634313596310685245691935435148921368873419577976189230124542406483170698040734644189572496502169604400225946389819999291724896632772067628630441619588525313003926096593931155081116770867639179131760637796591216539421480313517663658473576314777842490586553597215328099601641347903293109356734860513901826031721685913790159136525605002198341629256116599856915127762621977276436967091399904801500632598463418264526766116646615122352176487442063641571754825386599008848850269714138102408163220961410633072634258294724579938807163490026465114299550771458048240162671128917161021484635401363205700505496155314875398498263644240482414158234117039299037928996562024922234991263837650726268116801572942168981489514056321465735868936948523456912258749178098439762192977399128207579497608423787228602271279134295820775681529855357350952020473525855097818379510119619170965488076166140288601760556003999761724430921312249252207444437340596260417408271924704031008175109906970173027862250919247131839527450100225630197313521037452775146240620428698563605436482903200537992073626192081978635048924807571984750434384978170183889099298440224890671954468898213415729099256949344639072454019129390735333107384967142099836554101447966674852189648435004634552420235441494987382538772030009805506598025196584312225859077821935622594104112286871511193080334201033509217572214999024247769237751848733049651767948727736723646902254379599925314315348438962917657125124300129680447093172321490837269579290088938613511564463180034867471316880033348117112855841122781596503656423349625371963557924185530025454642543458905137303251430609375274896465176876371363099331840618917277916238795515746365814846712156124135249366660002531725039345692579405756929092613659875133416813930152038277705379779313846855945742286656490685904080868030396640411619250871126509198654405533879026774769434135677285249347076529144818645419560080656360055285318066108746795088202552129888894214523568199107645288945767226006398227207254609175756078214120792205866017051774587068348902902248249482410774796377620748160017466780846898713490375643121095952655956299908936358886274665644637890567115607934070733077064002461397046175912348840035220905328427782242024052979402731432544658544235485493727136279211249006331471843096362920203524076267150166249478089469934943520015544027937940678782767788743903482822256388586247699045421119778271532338631101544381682148619024033533804236663728633941860256387538364672737376504815484583331536496942018811299445281165409891731692375372305837807356195146499858535074719382648311894726330951155551764223144580847312454787039872354514381829954306774114662633362574841822925070801068435711909779958453560185033894871296178144053281356596253500780025439440672892482996361718534085862836718604459242089245322183127695294731685054163725773889310572196914530937800182255078616260129467573461095922711400945942911141710053735787222721412900235271843061157546440568663108571304182154017076153108205611469736701011370364029414364819084744267838007861691899945611276112771362774649792884386673824793625203088183043137315776892364531914841901579075591218085728467217775860090061974770246900661587705705050280923463070469615694951909384935529568669775836200084222644836777161957553781297512195775387014802175776048540254903766791567952217154272804761730458191599366733486634197888200216158329199256866104509395222708016250307713629187443742523073894759686059994202861320824765619800193245272014557940170943910954942855417640677921717216913972622130980652126924026563314979732209930059624961258076606482059849087088789922992892877297011387603038665281421103772992058078122227248325049550012438495618110688828761299502968334483624116707256756212904478833090875830002407299425265252886328276484158871242163385060728906198747376086381021639809562738324472356899676053167000321693535275159568375401792013663301131143252464222767417099134554306950763373345128520491340567856312617732366377706754796472266576280595717866632105801802695432034134578011751093023734520534840896902064569376347736120048053154763114169532359551076065175244024746506715587523923473057937444456197711166968723914264669654527715168336273343707592985662385246658960277669314666365080311806197447732293040109165916108113670787287474411242297842916361279014690564238767996464805970395714133167674234811831996389697712283389233713729813584092415044510159197498208301450519394161787812490254262605229506776344275852677112232538681150044068728646190320083414710747127134670108043490798849656556705638381467188580504225520440477883239954962228275794413205758344341494845546369547141075006586625544061345981339929680114344448971578531187392769392301333473111293495114172981815816862578546437082090400773046107081289999785232073736856019672883367782257537715215252942868894186693868152830311991488627525884189947297171073867726500103875010084950963341242489609028350132403694325452074303944460323315678336426621445515335075663920128565954067411500743191147585553923143736482671351782321819402276115171685425461097283806530735973595922881128875144099554518122225676370265994764671577960533374197196930030659884732171369415729493619732809428511032677953335785064590274192803460272888431743205408414863003331797812672282690793966242764958301433342187816996580430293352143866481588927255165139662207415446936085600411200384928142644353973901619219088897646236889935553134218486418785574164056020059691856235603639838434144404310804601695555847012477229157212088584170868981229036221098403298407259286568605379791398507388015848922870570174786242575277902737103077770229793542804847636488476490515132748378266388459878624703845994666717482722330296104655847231943597051050732846462504086280781615802632668093456946028620902649447573576372107526436183983370511487061414668912842288489448019772857456002788106582860111432453646721754932083843722796075404918020903692240833468193163043164394173058992309565812494411163671226042125402156592431116406406903165150521699785099860381927134858492503400074085183432541545352207684780006638443360473553868059859912206913559554077208268667269238557627341345187281027143566960706151975065755903318221468218937916484091153813041960098169902723786463702094597703210715422988173815392270812622703012581745619281670422707778747157495625540501018147249703572418788877332348410280037705686461169043632084821104160803030575898860149286592687398761042993305051552820785605405883594110889939454302694845674212642941853574560155906312827886529488230576519491059858675237782645972309346164570543625401220423559931641240606692192275928318392564057162512705930056215161915857311121154606066719370975925220333455920155330145749930322799919158770402294110218336930758511711693618693137540427527392970617773962168202691306789234517896007296180383228479032200649651067467188626689372624280370439593868649837735309649479495453430201033271846509354246289263612934648469641288890500105496955540742863637263656056428327144413834485003211096377582065405070785239563020473988215420685392979966151858449151067912764886139952368507263992264911157802332970786596628448740715854321339887105429086603862524913391592503701244313240336797311732117534596255333112398189846671925025608943674118843796331455933377927497857391705085487792617401798883779036443957587308655350109143624043570108499482214105959773461494223107780123573081038748118478801934701659705707713995218613480731981585557103620592110223270723656106569056364953731454257837523518686947673263621720914173252393718818321417812039200283518030309983751588518797151697891383595985209636213822011209927729406838086936282224020081226249577249920944923082816632698353959456658624236625888756067064644214526281436774577524432699089204265168336602251079610618052113328462530032645438203371560582327797676317749281562904858519505348058644895961975514532992842438062418642929233800131998716771656519066946716117938074217032008089005737608390996093658541726450805348741486973525630642226550693519965246642983205451417704756313185867383397455038294433924652234120211798564078081810156615193561626022676915255555779462469469468440395740212302613863464429091940679100360770342660463919689436485701642788307934075894392599686019222148770942998165560309443033024224576868770326069919985105160526484217446838647424289948295935164530939975012729425914718888167421832850916293193391110849069640384366889756776774776792793017241271217755922618349431272612136676093884542807173899528526563399003200559988140276504468862798030245256914870542915171252898806551440537272445278127312651405566762827854527821911513292745435893360875992103529103570502275628916088393344529537442988676075756285131317772065492228351660427435279159855229500058542329092246288898196395008930293455577891955188743971531640104758298916731574926715662710977746261743068133090420156596187340297393406658028439179570254682167064463624120250256786004735926449470349335277368147355475971883962914558614596326361403555524113518255503852828677986214036130962688824880548522726792533667089358241404829416518453946287089906669495171379525509109129539362657200384555546717833746019260626019433403323691599863047819593577056073204701568171016627396667055991197494800275376562750830896737842696184544629114242859983618451038834559414795356900733899291550925765624757880755640245767130757770985501888838189099914130729914357729552445213072961072250515915318982321039505611486161653936384447331056127490706401154488293873367158533846169127125433015467528711267669638118450097916052194272049273108442756605256190643186918079883505662335093254146340260432847164745091687506390431643730625259053011343983443887771446651727401016082632305867489903767969065473810678506562147153832692177059863629893626353615424397556979101925919800631878860240541568496178688342221353678421876184054769307478764521922709260127311258643643346382673940105133414424787402038344231343253991503897882174853688167266617241532047336485934914066290058037619014261900312969090793178138227081034097867073876833915883414220573222871758405135083811646230945619435246050692582855939837352183613046524270267293964196483913581842185551664213369751730768865141531131556649865733394309875632025066752306160543765619803347871730861323333632074933860621953492418882043805763177019499976996145379959536560240158145035944560054497861343652883046602595172756243694399502169231431871876418226755355842111325813642891686420757707450053905832135037314103076344443742052749414825862832936546519791750755885219015349168427624631383434205967055786978852648241901292740053564752999816103592837904052884338853329712773945705913481258162350631459611278878937115620265849441602114988345546018084730949888670249344671840141504172918378160289187377169642504833147577484992241921169196724010461297729959848694700645277267658035047637266260058088202326479065651021710359498311307167834831119895831769988443093581974057406587971962933505100381019465119877112845472060329837184996984040408896396352280890509341960168740167758332669665715032171507793424199528180936124676655158899637419604563773282803027080497028725316006188168407305246658660516745071146411105751996248766790300307303337795459523730275181500100240628149494873477502060735546602526293269683182743254826567272276603330259027071563758754164132208112828215138415676994636101915660161213332060094596939328332641878470740422761594280645062790683400322533847014135038182947470652166541597200726295592738421362865435427406063486018526264173842033156208260162063568889722214464747316121703069973423826875187356514347110189024392871849170432266386901129752963560979212576515207216101501454370628065384527266868667466787625039870740946983986079395955167473035089707740544766731499555431591294821788714715069631934953511348272711169745504120339982199377922354631169652657367316165651851257462137468031357085200759600191440532645917624759608184950469449891230216675862475024830474535973656089086874394086272471368825616514743850925073665526453587214922190520343495830149715283946804005062337324539915697203513380744795472875123214740522439428247401382831275013968477189479739515065749861470505496595737859618979960698421755775385824258758964640750964438363435017440864090783870991359785153043744950923637667795037375851249933021011018368008706543048564365178384972408159067794801333429866184842839414391282777309035109592454183177895334740234159293312176562133027389066665929148826876238002093780542128871808932954855700343172021103217798130987032158030751537385904497726281012722303060423694176418613243180012851376181678729426703189568376606297047787873936070892199135241710617682031322059668760386129281106932045413333651401824012864624029323979330205617447111089060998478673495453091137427971121595022358274328983675646246150716175750008252214687100593286665949413913741166279357701387710679861444760315682588182614156599802695339073269301138976985506772831411167686563561524276161870400581901971179768881064352263100579700872865349098400259565744855674593204327818495125192638075906369459521870445585515278309779597774796348460197715771169412716308248204813919175399473148873010650824449983420507488191474469443322654149230517730284934524083163148422805956814472212534792915969722991175568860655032212889057705722332718478521390882765744731086352736451068137818623570824890020195593130631501424420728722484708418044263773975358950226765237866127177978603409227873577304942407860227454739497488205636110758536973753655737974795526716408871579784398538247704008419671128401301840726090489121684408353488987505078999435090152393727567529382574345235107140227198053100046019345915077475366726674864552338601833171053851453768367901331883290423928752135531609393179997722587628667708591982820114091875888729721034492151572705821285842741070325855485257711713045097846342728041015767686404260623348980535136860119476480579168604121813286274709317561333071583333217870769003036208501180344243932030196771987230598088956795408639025832897009063312544610266852609766161736412668607731242947082009551404290280628956271748561693068143360576290293003099909938662169884241083812691981066840288207984638959405242347112056387658795019833920920384511653776739059325215363717013542146423086342547590951293475185678346245651088924030827906805531802901396552391473874288919495482886914484718825684453793863245015257203194831564972931583547930664442970757552235839932733287843549489001240062049651566646494764844349000208557568102877924010771931508841062586871456659585632203086129300463680323345927994383352521668763131815469374324278891030375774200614415651281450177262965212862402741721232635955279606750136417796678673714605596991993661656965011455312645716420397135514365759096315749349037001984492272469309368498207526977512451445806523714455193307844882539116742342604943686659263070555363773157705106256533547437425649458790957976125879049135188487433799925439319578836896012712764441276359387922423738764195474567320018953323731470642083467195390294811472336397752447995935009430502213180132445532097119638015640921804805726538631251093731745446447698682834006291833509638491365901819281642165078192238259380200352569435943495585124330664049615690175372056924233979303727197809770619186208660675058851283795768233246856441698395962184614238977749352538021562401832238883659475299476989376680893309062992264233278226663728926724786020813306033494466657470679714663606859430156125906703600725897369177607295244306211365039600266196384442437555299236574584293649142891660265125967166713139787390685636139800167986767749236774503841132129419261121839870001899944315057007773727956490964327673828535290186296468598442139955676549797934001463827672675904754961411595235387799367417957468063041766085518796582162080112305950880289156918989990477961995445938399898947655870425101396539264266861507111312472288723323790076891649902588513007025954435153274128252774298764550520530186000862941088118175227771893433844004920030084185447915262773561789190845098139830811785620079956939252179841860156850200343139208201517949607811099900561822719273305577201541737828411540911520176180157116415166411888478392432193778761338648023606436204620556703009030614421481298283740569642917910155248251782410772391317953711940842191752949182534644188750671688491140897747782572719398062746740109086692207873921787316888581376940805195386793710666176904355454709216476477177769428311600254718913363868945728385343109137107411183581363608736022428146312777840251226397482275566899293081571756921840924332569002220482345609315481857797781841923490793528171202265665996804720994449145586610250082265251514675934456821272770311125333701376161907784462334730902772377315026653198038320734822237428542646421459093816517946014329131635632336096059570163029503983300460072050792473712247417996982418081378724381972976968558170953593135683930653033797355613960162887725955442465307435916950205551844096753862790779979450455573482702487808766581249223420312219474708273555041178019156771419048810641344021770795849103951930596780154946512503517473989899625347591615697018185189697314763724123820228593123693381036815895223743792730619397375279811014980933723195472037095679669143926886514982533701523688442758609881104904322856769841674319356819758774126667110652404502628638631405521290550457244249789184840744890159506428904895530919002812310524900527863468735421527206821919490836851531296529269899712908704549314600788157571232567730919346295826031744478486369339771247871029848999244751842352026991541767571404249721211962999344677284066420624405572032636388445022770538787915097745606327355052362178717323496223722532968513477381021232491015974262422170681215104171352524013591865747520104177437311164832823556388241813279300614650074418814131468207774644073756757936096572112475670902977529842711580752532329173683321208927783413785529847711888718987663891809483404968752940969693723963162902004936040284365844938696143028808882363047706139019868699453224408639871020533014643016271811655875336203801045242921705051089228099065418852152722858834214806392151258481055525065759694464439420523275786500545518640422530810925706560434061131979007708652968469112520651126383044679705251371579637657526283883961681712331049116085164903949055304331338959272670769512482832753386879299599463140239441211963556774459125823610152277241192815901420963252499952391237731007615466528254934840079680532924252132832210913379183842760591374695919910923619610522078600787074207515220396434578283896303571111356368730686842968392726688598928094266558562678499733730846284071390331317590858695775036309508018614337759703721311193888830862290577176395444268835530862943522678400812924588284332697612165314608765893544908120823194561126729129426296544114921889813020253709114335029149487181360385078318254315693954385432411508373483074161427930265368956945416526899743976934650276809409038492609720148074233024814991865794440130473504589851812625869507229977173444016610795135049359895864655644917153833565506480277612651114734711190883742113243544863603543976825752199602506094785981421329144634267991392473812663747153751822754008277188629743525654126991011110487551973752588608564088352170503728875154270552951882537890238288161259390764040588435128186826363240130691259077351272603110224148874226718107671142496537115432053327198859168619252824879509188216562753046867924018369547682210515708242728131801235069013073424470437584715990603393034261997125686927795844697594984839898953696309838807248101948075316254520100908114872404587907251399216589791323971534084215566120347558207137986732685495089695179453001919361146756640801832768806611000022042901475947895774542327693122233305351834751664662505473880574172845283858436073208197338825247166026818639724374823056297743593458492502596993519131814417303588220931965247648131948080510007171746119555686183541015496064815614189599284309187436968373063360781626481909510049876381407156602062930553630243307215834526168327605191365869323200924314236535227278268067423525203098610082256857179202207937446812296471929609807400286275392775867887429665509334534132333396901661185943593530955574647785946446548627874672043189585792567940766251196127744711281576448001330947793118126482671206684571959883342423829818592522377918187055937365629319611476879262456464780998594630627976808983021119721968462726217461069131024234413210341389190632393587850804286681933731082712566053064586002003273694955277870037223044912887647743416150011408504689537416216809418356337450421222659242874435039011556518975990624628668903132267814252378651843679292581462979356182155390819698711680655533838686152092961881216070897351054977499524542614485364804821181492698162838024192969554820871294977553099576232405139562913350263196333030312010822843369812420020872275583177531916378781990017407146494600628334081182020677872813495262151391386440062398976789925954604196630110855346832155445913903168350040273119946312001228125184458142444259414252338269724398554601924691984861008706587672370667069164874417192598786902437385816354690527011047615948784235277177770136457314547708720565830021774384189297284139923437980966537339571571292461573438280997164948613607812978883895407911512648938726612229379407687562037387778109509969554683399417985524612342559828106977043415460449513038475897115086125403469160693677827540383202380157163645114445531214309756824144438043894306482759621732505519688029637905351056440800039876737204526166613238482969570749959819779113714972064390216815731559501374053590662065736338772740560942318463646633681524546488631264796514474107709766848712738023553684930110477565647769957188983760229463517737863129329789521346804450400890828006610427805018450384752773609532133613057685841754180545118500728855976791025913490797111778249691469036858615536071124602553794057141285924200080438713077387487609084972707052170550945853181324271544333084820598810611249017173610155356446313029848102014439106680052741489585066590616115729135247155841979859977880874437540948922497335272594339397459020381290080424724935966908071612919919779243907416595543254774522241561219260139849848514328907178053019533536261940615237189268657425628572182591883029315550874980591591690210329901146938318834952779648833155204876600710086789426309639055530038755128826621585524026113525671958590464243388925292471373647728673881974250227979904616708340500846408765512448585502988473173538161392262814961751470730250586145437177515069225809980003618746385205743991333756463614081804474964451172317923816337406107534379232628942625591954782781798698981707105843464045790183816754448668478622988802366988901074912305071617443809294353742796063824766477815235325594234676004894690203792523537571462512962758707636138569158517336319003246151669178955139651052744404290154484899183406997128246932553583000262290054875956988557178010699315792476157287236296043619086420287941296223674949887797379578622447716576127576032237186641414248130184994624198368817147120918888442064477496286183410626020446997656225221309546961271972157768031792569898773386658336427996372827839147134160059425234599060898054361841467432126206661404153716541575351669676076973575373221010035443406947590824744124848259079871839623772842905896033708670404008312409406308393873660675031816432389281615168856971777817668321475232953369639829519842124158487558655914722229205411706114128910226177950342303460077547855102667046761404096320963457914854743351495160698790978329932102787313439498044282961722469849449730401407950878834701069570595136581895682526849281444941574217731758970535422815304854981551137139348104697952869177957909822028780131054905531578646105079058176132492496932093575743360960585069532573495490546528071192897127407001121006080351639147989557889214258957467542979790809429701156124336947872542905188283941984404255362419881442807829965310603517027625798116828876725660869489555481329832264202561791815475774706290205965433904409953255500607453521378886415613364548130359295380721042805772712406322597440032187291742692514703397265383636595692037371890872632708985076095785733358730921385569111406963729919030255457966972105109815227516358702094387798774865694454239682081077358820040217054405837755631941496307629562068090534142125219937501754133731687036720707008106626648525294942787436503739597280959115936651748065594749562066598368730080799020352986905860482222901438560963109029656223355329994968039319538728828112129797568256370945190999513390474248200689067602096863326510289455547205744778042936460249819120998432626840952045113354725241757279806732679437758168581375925561876089213099264698028925496425049866917172550460890280087556623078464610608765163877128997479114737960686775569047432159474534575864974282633483383019785289587908183725890841213038806847900419880309529330353236098719269155720488335842248764646281589080681917191328168014979377238936218352689842113654325969741695493276877364972127708720642042581948303331107381577622645103732268411915033019379671268234098632029109556289886866628550200479631453098638404836510547389680956246274371758914995063251806434418575318909464104332967657950830491417347324777173653716001435696414495290696900620968211452154426418776914256144445960581889228021224896145486573422264614885216288991326131140135098438754711153350749225005556717349407792851065041719421117503406204154181846699153713225413722297685305597484653491491226708764415021725324116071760631570728471889650374441409576973720757985477531630736722413779623538932824762297356405840349642778446285658604386251215724111751430700456274899804584525904179554690850357560799570381950821369698057951725479227792987244660199255329380814069159241290867374146474472586688904163390173951455603101417798485443271636786404196304813826358119305989162791745563807362282536988975857202611874128581827346469248673928638372493362987952015142050776147320824919828503851948387343874982635867430856751072508272679222866703232018657851674197632451442865760933400487941811495864587760762755171526168507001313740249074084501975289714947063737107854851161913609720222110214385103580596235601694166178050206655125508523241982145442914065462616366498889267157985109493581107993551230891245986777622907251739387832025874205060397571275278307699874530558556906959936571945847479176691470664722785670152039214817303625344004800089202116848331336497765593239987408143711130488466113625894185986247971391252795158448837803555118570158205258732519285066826203896647791502184437967231349067537416262368308869551228780840932422941526841906531150454614078502741960422565641630181562701443386207338823413487045359156767535650018962941239487817596027756896470308167041484861489502051801649631002485831332456096057640092702340503826794858256976461572403477135360599928765956132670644443895245517814943903882114276069407116791352856310234777499679051515552055829303413178544119388278919676867445136055757527052561684075556877549752853001252204270270936370329759624357889865459198956731966571504253365850658695285271605301876110446304078193502977039633693155504370807018213087181057025510253812306207713444238333804731857158750352540088878857444162914050185383680348838938891186380898199553605299323437320235935454337826439974396063675095092204759998931934012974895895440804650065800273482863020745516913089071181789411288832780061086693036011721049765409645037561909552677353623588363568109660437660072163926567375443680858595040098901453128880188179003745495736348177144381598191861958978578218803670643190143214467417484863086137301032315870801153496382765662411722079072957776637696894107425106230919745943926675348519433501069096998162764258935549778583989619732197350947948869910698043634378074517948820348506475047970536444898097298589481833249563333596712206239305458203350110753068715914938100222399620253440816540065693950847111821838032065829812549692801425760521439899987965982769639789727127799067380006945769247245760919723165772079242001191879311633936556993600382981614161534593617375037255178046986683686182911409014674901463837143415204353374636484252590900088359840449850738335148283728456917379089160342861651780497156933412925118582696374010089710276613461436177318809595639242529343594341259027942517227278811076668906795197966963400678682390926370286130339471998129198082767286384761571180453626233332072234485091004469420912101505948096267190355726343196012698174786911262827915066226426833075945086474713216307994356822202412117702591515558670078805585517799518757106539284296894131703875997169858568114741554740642850271389237809123755025135686359723364253732102515921791695061418936215589681940708468957170846525970167689016507162859086570974682721712943995451209067792304433793568110226832623560193108598458600734424521122221120038664842554248198269513330751298813700299051585383390443282715645985215025649699835827038185988870124766114828156245211709487699513143860605618985561492226215393725237110472854537459117490424975499141171793261140893568832924270070904362883710348609446842853984354944392817162209100249443647517571892507804230823082828847131904608520010806993828911061632879679573394988357332349503231655914413383291477066026873848241755242498179365855523701174183458719762208608117849835402831188462580193456852534761833719635019658100200635171581802243977201276593443663466463553350360949974780993336400469680989350836410326464609375765120153147901926973903698156809164450023026824122216100795698270453273138315504450900448905179466165816777756763573490246991260501179110353284204688078633894598370387686617364640701133975057553968916012083077196299474568644930080184110897447917559719022792760507760132487761776866486836379347731705757677392362913449917916012999499279869659917378984309958036931762443714500848385758868064268399895094651275688906113572677702171772850704802706699343307592092933295395646195018308645940956458551382334539380949254734296197598292326901453874665771334688161796863889174208666073767725254027652119680705842080468478233707142452961500708934702351662050600033286089613127743559453098472719032392094098086425336183105960814825937918060338860562511845116139968001442161136375307925640831483120603656310964012976977752485354056809752717808861355197126408055796524373175878273724567790546799430798684222124696458436795483944943628963001619906093923098557899837455448107314855942576433214299749622090277211686432244250861407010010578192470167403623972491225035170600211321030584706029099245346404770819030273536993570187899399577703428855780732158089534470021026944439644658093858821372476128666534464840315205523372455064093514089149401688385446588471167239311273780743649364527268330007798971867195847220047352555094845713162496312164767096680192136773208238879998096910860648894789029195566346181884361776673900262385259566593594195134030377497780509486508050147860588098584635070973506000258861395627544066921277127577925860126616210086221664027330653154279243958071198395476194664474761138279706510510615378521676596533008922693928120028893271376490889056149865050270509786900063402208732925357400486831728167720127865116032741063398084299312807255025011888771474981544752272754876530397824159283672049188897417548519316301275464606760524355216937163190460205710840029664464797401142092068904387612119385792363711414353595917535924964696271899559080369967170780045314024190066092726397045548179091271290343722818263959371021751640155520301615052922839823092206289826039610316271720872445714830488613609881513782462737379951085945363958586953502976858871662800376382313459609141237011286947723850361924439088731117716782857133440036358646188991617172185306788359513866503623437574432196324065912574578328443117536797631667496318661023585705685169879542071543286867983799372563829978646466817481921015647283603850824868040778759741444467241258256749236592093683623381935310284887684765642238888931706182607138780220466140595150179220283439562741225726429856945713478260813650036902121983152827641729591652896566458210102946133594408599788332605538859798526156020589190475655207273700818276696608624975330230975368740683514705743892782933253610336553405494127232599315073193839630044078144375681025288216059151211395257726454012371088344994303152727968718248669288301655434491507399390646531376493128243754529964226365339801760398499390909341508143656931911264393955527526601467578985890219891250955394500803480342623027274472167410753092175899670316792642348159486335068183619294961066389116066504865683249234439131836174089904982118040505585115514025966576826113600365426096052566236825217953439856105964930954145224639035396460807214194381726451438638055007050389610417297461607459950932550673354772451400054773429092137956870465226670813522807358629929319003694125374899311875805182602008007020536495931488329073167856223424762232438527116669746742220090553561789252772705424944317970135979381032264639120225588905000659796251320491399281861858614397734095754295369787325290843100610862822127295573721760328168271033526144145831193596573439108998696514751295896180572673685385030962334639753489975285763540061159863381319427558319887593035398781559208322136899239072214698115718100960037295470460602940090731589212752823441925328878105240489694689463142274651941717947047853608709065915079968608160045883074083074011987450310299991795934449944120281888003322064463485612370136851070982761111419876491975157989386106265401727155164602741155310496055261249405417575282134461454492431701817258835998333949844013310555707422807941837816392452695037794133516421735355015950791025309607474563895387255991386719058946086383837081599643309529864962186091428919354652359317598441253499219864524700479676005252979742005792713337435931941312948198337648087482990677110874549803524094171188231377080342889930967520872954068902271770322316087187481799654463469189175154590949214173651284876347372960139354604121193317308458138850515541477383963318728916491271510315352590672535326715058692295657427936105126845196000946008712081217338404195302460537585522212084117275213275171918633111742582955887896616782814447000377465404662663788201588248788910888175900358176528068617308001034325066138393698817743712236660801857512624049186523204397543076072987564312847425287690548926403814708705225585975173344665750551210225611320329526067652458533733438161568318237352367917695029307816326943133248447754267208669734591592246876433087920358368778431487961658081174200149676309021553301130021765867725113584525447455534102450550413446421227607956853098842592994940111488624280872582979892625177688111031249591857916919837420289422953200507312968588454164137240138166821223435590096689070420299079117424525057243321722341359694923635555229549923960632553303815539965604663394661388190378247930611732276703087214486468367023861000013202930333414333399587626033614021893665941853665144087189446288560495564648758267591927535815759390781596746849103106719663330942964911854484627907605145323310113103978660192349791027034390357914821966696294327291343222691859768777831603741147328964199962041364902062576720685889996525187521520319428683261843847078612588020066772964728171968412545676474794771674703439815234182621974065474591940393863181550582728037525769018827657875434543783107984474605583534318583007804848691256238820980710507562616535754810428318146230125806195119218576201252879043633549085086470997857755868603966310746369638535773854015588400797406933229220342629378255027670247313119979176664598272873111701576826095177222909255941559319805048578390647588552103086734153096720361388602709532792551329313939287384742000051965197144824554592773290052156558555751404901500836767928736901264649983480445020027791573265368389834215519049022986523934589454042220260450093928575838204661814502967577183119482971226233969173543714801204325487294301357718851504017959399257246948536664771350643481217392155355234504746535464879122806501124904599559316960767993590967165886709886125559053049406677143862573052352004540183422548558950704363463930695768296585123265704447600391938845490264162669982141517747668925842997521657322414011071660943267745369306361727791833447843468928363519812179021084705785095284242681834804503940209614874401395017204148608723243031098076975476738486835514740055551784570189033203914222331450032941083165414323147709796270737094215735780304447356903847660298733771795328627425377137944320780399604268758618293107071824797389595797609044901457856449851313535980046821752641479903198934785389301000938337589483495814719767517309556575036662393667817363559732773354916806243853192047509554023438923586351690104307557015051430568814029874774531179697450372429277492723020711111449606749745171342811581619274616170203234898768588915666731114255171553041760793967976134769190135376381146302358039893491725437517137657003023132618596137950606589747568044037411529065781070735676401544029544872326033055080202189197503458307575447109154805791724177506072608272558493063874761208848261927897104123623764647307044307409975360833660160663581474272478826480516661615405609424994935175026717739186478981026892040872624313882498004351992644815308568752887831246372654398937708302337405297417652961391159803741897169571364770349723529235247461997979987036901012231477827708171736747415285864694770892397273083436119753811889636908626260646073359803323957274735733514903193493663681204243361719239358705559473630311046524582634733416694537665238093917297062462984782182620864527962569673735162161763942356274070933808780225086300858434918471253694329435124976164078784581127731546082185873204461924072252596730940622937244386221622073716345140372532305279933059728995170988088769717636173653930510496470666351329449179033703775117606697673644019857773756423342839927233705201153069598289959267839916047244449775589231023565926183524061923900391466544985157105267182077592225856487309812642996167304772712466555641922798733237810048246080804482670956625051581093540592807212138477252553082389097348172092917067658276932199045133598098733659134080465834862529537582985942779657075750436289795501612712872951463215663321865900509245567062850699834785260493557946789949753849053629902033687051447184516805280634706734792739075797885757850098295063477816112698284026016324740806333379805282789441688232961354490526346803949870527653169591293457840779773643639736722665395763343613478916211824048326475921352647264763975199650122260084303469993596233501922789759841914465644336855404424008241513179196334173331597029210017730802247013742408566375716822899777593106121028489657279515622408057086207709709904859218452705867195551358887534298474744583846006368566070935588506874560614957041772953552901267718611748586871193396806266771713491885934094636753277234386343042369358706337378680082695173881468954883128205998233548814889579595240306571823484687249769981371215529667954420710529743948922799621808310813380548852375892811530811419377543934171735356671100144397937160123146164179329155043115014451018845989252907219132733062618438729938009432888721932850287166084084516122668594680335059587839417898377880715365162431167369489888224779615363933891279740142845285920714761774553495982735669315474012854948603295939473194522131284140055175790523770468039210931380739881849803511539129934112475018076101422134125264727352592523643784439380229119809546474987320208234985303154019145096713893756051969810817162701331619639076198474868332778979806266232167999432424550589653600716800619508791031079648204818241329432208457469935830505790142590217299586489776952231961568912497468572931708684237040111642818278321842670584677042477223350444025251391342660800159048055937335605622327212274565144097633144024680843894843190643606055225807410677134295753212009285566894675858493204263107082157311058963004897426981509842768004506298000256342632425309826749152955332351973550038526499085582825122152853822045696122658284937343995481758016155003219068236457900566783613381053398979902401840497346249009739146952726948981962251068276492017056167071503726036715025099023391874261317777288747114544993345928873150203290185123216582510172737041799526496601221685261109903764880738171061298128974432110498425540923312803420909549058484435665441247289180502680288590000004164594777922678714008573199761157352051201574136807658144817005282945483655915507777538205714865443867890831189213914469886458200660723035664051320672690201787440148202106627351669926584451019657125597782029097117712002862332926201237838898598103408438963467213427009561618607921309407840500290751787334061127393824462063441510035925131123950482233009347425996453896654984304602941225699308320846134115543784864429084121695251887271998125249038472455830766409054759930681814632352630506436132630150667381842128247468800774470251301113885402241154763352542278866271483674053042976566667551474440453219826683617259312034819312854091795148264785169791757355787124144117576267191926598359165084875588616160856755216933326175504438483144612539281385317919640362170655772021503404129583307344390059636453649305113581151802119461210823731473350712498260747672602276728599101032357781189806305122216612507563167841200394551059602498660939707785131417535568575128056629437656280496034050978011203401603748652306343674631354149439268410580022511011139953208744077725020066766128676984726102483035189513627002440607313906768567326156878339111664007245159423914265768909358791456716295699261765417104343776547980828895970770632903178160869627310229021138549044913210637412613972652227611222637661349916251286452474534526331104619941102293904631656682212691941803807722685004607343976634382207242837307903907881961619323756366557829374253757793622922035967178858399709983411668606721415709750519400215902544084793600917267316843219040990646176655290280121488750589339108146117253705393683311157495018276590740589251407907664199325479014847624178877714396184083669820882515342901524951477707069878583571416136726142789647150404001019591546651038571696970262288882191294503770175896055262095321773275948214490228193670124512133150974989157229819565468130822715179723106864131493382335212091720588837201999365962912480616318490096589445394159923878494162381183914386896448034705785008611120745707395515070975666998691143886432359384908150962111577876900913734630411460511160590297739735716279119186533709283760850469739082906580092329715872638705962933883702318773008758294432953084054443579223796023109934968353491666229701358644665165514633040281524942039092719680127347682807088947495924114873415972352984574236103666100162589736396783725244751580698088417710361107981988109405294970987083191013316360264452886160775609094280177104406148829140115394114058195548208809361662621077895221677255295005661083437474318810160767629735967038407262957442612567698399192100168081380896658431680769730307957093551811871305236977180239354334587955594387811742791182863792135793421281464717359692283884778055822216719030069287498710716193026881031127151573963830952348441332571449498150177968374410786216950318057365177625464213737246400858637404867582569534022660138801124467600698778630315337188119053475800766084676930234079251436495148361936068756403581271726785974233923915181716489750225086437899274039695483505369965797202486904476319161038990831203537819286298147571411719402111934283464349402251010204332798820881932707548993976202992072452128706745488575735727232838160466157611409088380001567473149834464243810496926949582813616060991359308755766225557361355132373989521395081871003749307298921250090680332235859187930158978772957966139239186079565196429964273483377689270915396858394487553304592510416303310265195078875625837390124967144773508260863158188228000339544406279646776900683182647486827104639225993724219739786058205206143005744670243657303699724697499167485133857780292180146018743534501249330911497750110038627684881040784323308221835887482550908481000597803419795209648352657920788847059881486569281010053522588064388926820908856444432467343508968030876496377387538102775767332275008831691872567428642694307427293717611136421239607774291986491168002946970200691146205399347773299293457565911032256471064419045529045086522137265940882798707317154755948560794868616883585143167304445155880910079275234555919677735675591626746163582223752573690038559428775519870196558321303065365582385239095631810869059263164912347182233035940725292661914670781745182730030637808870125533006795873149638598574144080063208239985100143845404746855384394162502187419797077673185976861116591150302024794834170101024758895305201324890644894815914790326882357014757273513850792465250761901786305862115732694531455730147677378455638568121934631970002338487682608172188610107750407885150232762348187937410365857635833266369909571481527491794319704751948076034938684888530516083109950219654898363118014784892232382568628023675535027040268536031027209521223585351259156600664411763995445652672216021811421709643485005928575590601378547075129107136621991441066807239649638354673258990962944647109648731941656822760384645072628370853140960948803930439744231189721154296486239911904067639629480844554839153374958337628699861883916790037708357271369073682576237320330844404433135207964761679822091979200610683696970948692491177855401084399786942116431960516196311547570370711550241326577985993790556855395323809183402072488913703358655707986432475574170711208575515923487820731852116284434953834474252697581327899421700114448341259311784380705259872289282962457139384496664437507286545407217875079879445481860449380738455923285769261883458655052228868205773045578872391014580778338889272890800731470528648880213487194002154839196509050031369285152968576971423087050887732898943924346953842923850634890699613478957573493942138708487464978602095940800660660451565695366515208535988235587811946859863980064949699935219063052494199159247269034548858434531644089485663857635843587233091315224131227181523004757633329015699652884757532035873678112029456665499180932799713879271048489531845357126627797257915195518129813668885765839989972859809120507334819487304126073214463193841700710605098382087702322320990838677982341412318392868136730766374694664432319675611980064263797337354367402758740782515103813711078807015144649334892967950353245096612135778606051341708988914101244785268056336640152326199872966638794954023893552564383436064722591775007795928426930491304961537642779088869539799707627733974917114997839890545114651877692319745781860813328173452882478342035869715165122386705347951612128659550065363757709924793462515972868924382975845466396705680712522299988936779567760757155287465473954567626782685723605409913802138852764356414658654510383146492138985132631456688522931103067673303580351306587273292589969259526582971518979569177145940034109665299851035023321500010505889811945459570687249708134028197571607791336475248270811476838296665956755870705666444484661556718122809414186834637748510742472810229949943189967373588927691710677154775838398873892650489526149240580521553863823238837392283590223588716396403327421789721792751598404967259997315652288245059865121505298902235643964882636647300773374686352361078160143153546558512032866771957619392371234783570161116832666352519418897826785422719638669094176777553109819174903925885533054902254776879049127206950496258055654615419664713387087529128230849596082096194977736245342757302912377763028241335460630489238795923733140834830264128544681352237974775741688096151005314359250185618382204151417179382489223409479215398960624575656219904135414555966317821581234971817432205254091279766750163817508555636312048361909121197969940017350159217486690075407168516678096205196295945176890180731515272609835163606839658804141974343944844879975481261530250751885326910708094046311110557941034139587986576366148150008561826034612299136629729895457030298193796030865406844591306544585102871426467988789818794493041615959288166355285854322307932506497807792051595564713662926238331407302890109858372823002055977019952275934855635872106509539593954327515767900924851113463132244712673176468384705051298336687375388136889264172680942380463362197862331139388606053365934950244100773046768753004894710665774373814803034723737022748122308114005545172577210099716224459709423666201527227880968800007137416845614673650486308446347132319898721896191075970793312818525893099905101640796603581163901643832023973609368357417765199713608999884731235714396670107524445830093029049745992421754836949280187121203856630749027749475526875281070785950445953597166594341189128227256324410692899481492195994888856429095246789879467505552462371393917755843471761890096202637579246299163700355488386496897972586378858979040125365213609741589196094030609353296423805781125873802587039415263842985022061399566544214742723282266056408552097841658573128815941988881461643069770753921378524362371639197447916506148917993351484709412819804297530890460269037118220923153073269695183233439632443962386662411613417265006789977053417925308208756499112969281920275779713895801077962065427604292705044681861653739111984155057010800275796042110161991716359094186394973202725850066428099085437918945221799985416315131286609819866679487548843414826664133654529276539790695055837299022650732856060157508297033187318283413087207020016425386324731749362989133486141871513858285805445931435458093192354782143864099814854668773891081430549248523592571125151682051932256574233843973002428795238119608994328968339600716725769340770637899491157045338645772304041861683231829349535508241090302485738581812600288454482539450012242698679872360713825084064076359715094676725779005347016428767577868757911885284685015770633703755030079707685890915471960009643673510825368328390581432453270450108543649343763041064377603490802602496339966052448601311781618993026949291981008461179297250771326740772610876475362685153688707799440690358322355899421630616347800398904255765955215947352035572521517532151499699683254594090999259340907043614798343968546894767583548433653457999229018862749226240283518742140304242039239453613016219947060602237950292054722294403055444304433387842452762231022896846943762813605568679985084649279937751756410259049189486550783808582288869078224955202456287722053017379831355023992608668460663181662693649421131922320728038442735332690942051600416437356585958210102274691533191796668586035915055212972819231889323654841263505846371973688612711717126461994231087208260885008135877553020135660249275693315065214154219630825191728914996226439830683320232880256092236187068404037359434085357504261828273125002254637864199085861762198166193949668694319855800703641902994867405561240372591617914364744662911487511474801517372274172620257689049487376880082100769904544406851198222684920771615009477403322305349580593747483564552083819845152722032337761751674216566068936600707949675931044983297201197123213267997831563522293020573625261825948445473946377462004994425585665940038848163062411742344921281708205441662530498826721003263237111288146816123566478868755702517721569473322017890029177958213515018235082545280378177828250951101960164648614654107780065585473338030090446933030381943350283377055001382039800060686408366865149901823485472295584133992238403870321045792242463273150210758271793543561327451088278651160988416940701953155184449065105952539392213378273641321906613622959992033329188672815771135973000236077952367675628328009976328314179970362923708290574177105457308894509238025525245533340754610483237730397305354561943180860290570200809727511388610716929963056113574822984665359166719125157425449856202459554408572202878565832183825666038427270308573117952167802804653377402597621640270403433584031232205122705108758007588378655979251718075060617974397641793658867116815246507115172707335280511804362434888357987286023232588045667881137420926173409622276557843695660470940010381576493225766684972125562135462654078306188474024188407008974437190135108070786617324934877557291355868028679670100934429430340415406887628610220386235304381862988301904964591759658540553898001800985994582461044380192041026147941929275361666427330335710687842625618592147835102444784866652522602120003807675298207295205690855207457302974920947279612163050430265395619354286669453576948831258074113349485980835466823448642775723346167549024305203625874348296271181402349189372933278310267304577059540562117524923868159699759460069356707666027771477810716702570906591241314761935482966964679856665039753768908067821036091024287070405297545862985234974826892777788926983849199241167270382614458481850254442225502836878822260017789813209701647584582468505594346963956590140314486526507713538343348679291604222394721862271968737372592782633990397812843499709444106452412010136933829019477025247549325022516351952066820580501950665858397469528637355107084794094330787468816723092568212564091317758871299166190296683344043716407754202331497764477382424173203799797261032628426894924652226526510780050428190560745554567163650752968730079797796333528338061477400572920316917503732828191468380553410874472111123104479944387601122014794631160804135040007090999229570935119376616885901817950812050987343306744855003537172255351728891986224358355994339410367171432414843608599203977389664913823187128335180158630622097127628045142825578031886956662297355228756815832959852695749451961639045270582849364721609370192069626401606285005924289502551448064139894252534077007696525669638793718741373494746452180383098572129098730501709962898045660847217369333510982101131790249482903773298540866662384843981603956481851936890589148450514395553290511985625806367546861528374128473890774204174658356060151509711540926957292192202010726837742968375380976326665963795558566138649062367580701946569534636159876467959072908248951233579223083967343887777857194643634026432640228592643940195023825586383047904467726492540761755011837244385955743590116960053666423398552255147598514560511932931833782053783758680238310870628166324361052965365931646854631019288181847221806049074906054258285731418220499978872587220548842860955723508449342268744144752659385997993109051380498921647199705820325457867398273418044895188727724504623079757068956046016004687087059619823808102282505659372758093407148438245131709482931948418809036954487198963915317304295368242863600646171629863031428067640768016572406048348702002008817009310587439458003121283917502715446235015285894401266048927812966019617972885390986180456555462955668007386828282671986604970654372188862956175510572934665725604708819545093341864980855904190786070655822184800214270638210983820203500219181300888451813690221243337100284393921613112554119450641493842223283420565559626631442908820989676398408765664795029216358787985909736164057296485523057847012334224767050336996323287881578582277619649259016074592743345215292546845678228781896027053259645656220423301265918187838680248159263106686065105534061594732305954680594263296445316983873864131746748325626542028961294249648983041641647589303376281010832130510227382284261982572277619783941478644426341177699501539752268053443766905265775188808102623353197834860539694318661382839692161402345501961071202717688977610311063503935818301133307652410016678635907637982220413712513588774776444130524853436298100666986353957813174383676545247494367327499148800883798386994777827443984613542512541171227435107662650984700467241913434373093670138016220256662542648236143823789760141251203424478864220179021233048361996544965082629545719903136017247097952835860396909064291661712071945085501221745848314189482660653181983347112917834140329784741878872483339468185543746800105136241240455264057101178960348938661132249906028525793417408906348350776690345307212966610742096188857548934304929593156816826737874545025908028386520167997220597608694687860500881205115980981438808106924322848192168382480576256715522590247287665323288660652064908015053705488265174993171260238435436215084910120927106600343783247083584287296563900812756386356787938247978393938920478391895287073393330996849474776953114106507872211050908816680616322394648943780255464850554774735148041864897537351960809695832096282363667142309121641451388098558648850847301523080727570153017174686983229889574289907097511725011823866191185022132049933436590432038806227875963794698144219498084640959132836008414463499339386254370875701515545006068586966740894349774449293803867947770868774694830193821468592102243962461377290931338259086601085760171955191209064218705122526379076101463848574516148559943951469760234618737569108069550197203347019932132359960500589187200216716510136205028794950980533596441562557906855782704001400373875256016923418999443980284207325254726773483136025692897712457997898507807311495690960432640349558792302912189756845032216365458166703013337888548579719560510376756350810317635609524774109990325570532511564091730029067356279230029619246444164892969487499901297991239073267008745076303151083791184604660710097561957125552889760282962315405549354583065666190694289872491649070345194871635083734263228767982616679340725582822789974250426506619936149327199726277082733684486239628573997261982442476927240040107848377584599020095282573307652230015174692434108316149954310967412766975017802932371811611217399885349833388077280345321200077154876362547962422430204806063598656718099127438033749511202420316095219423321449179077834088115557436860780681561616555495271679962115568463165191043828104927135271291338340157689093113042121526132621211554219630758293283983294170996129407297435785597198187616784547873658212531498090392571135316560032130922332683036231794586459842256725933435095281174869848865112581699376875353324886820450031592984597600268270071458725468749143563752524730459004377123781561240266621283758759116450323939404289685805870898327781931169125094997065112615155802130281440868132458962078938840279841932757449916262586016973332781470053541811451507055063015000187631915881985811479692179064389884396188354033504112952401402660600022601622227024359679016522243088530603254334626714380177247162216639940227277749239798489503558155964024561272422765069499061949888814630828081289947224396758087874777481366531722188051136000308064684086508486526478729612005600562983541149125263363952846411964718593332732979934505951163133820609530653063798514735197640046859280427770521236143654245780883968213444466002876442700357654327136996034185718878567719252599104279723066606440720279246305446499894616760200878945049827957909843978334202659787358452805622679862551841891047919831903101637100904820654172374769945591691901075749427697316296731555935416873173665129537248183609364779286864316468463817094053273777093609563555104883377184626359782935954228321401239003696612283656628349943431490727925634687469293116627598185471699073233289500877098409256723843474137842536505141848640724348417263027081415428355365592521693425564768755208660584667720170784728497891699679050354910779455839158751791676114311420348861304378217400318624020049935764900674062200313075889842981147991598318335776096934256148121392862266850996065894081036991166660543684757373805586366642755942720315921411204916198704152262636809142833238640535096968725783018882648580210784808547645089856972600800561200533546647706029702504742074743368017969343611301561247346202100685220104464348738098017177219517261086406597219528165465917182205429282047249987540854375258334589460872150795490464687949389468624349289361064648663347004382800005009010786987495383647197544162179503653288726946044310735094132107694732105190788170078912120800516323068754896487071481533138007257519805183030472022567729000438363360278146613550763949588622727961378444763352776207998853708536278223163298372762851699308233556265175750616445990947499937708930887784524121875192894530886800161893679613221863716276075699740163702072998578059312819493261539524545202646844198746715222931326621093595230413281858925204817344031434297503470129049928770452071762677704104889130100300220618873463407593720986965382932600567324426086025898376893889767742665078955054607122045101111584367973519042680437919147375319787120097705506423440711233734672746630509180295487798449067170904233952147752032027950927249409899009492546511274651637052056495973673174981348760722919183766633167979984528805652892136874517291818429411024225456066058285417658826291270423852648869690488656241644209432968387115106203634705153716242958063971229671300932326467736112716502327656873536803378133272509995756132199243430832770361656904244515653548935443919100861950020001441095924011825233975612901875021707347888603270934872731325828650032523037676386376546644466157149461900555198807446033785492016763313245197154303540716978796214533601565579722652024787593687952848188939499677427179849756613543317833054717926715999895277412535780194033434015567030912050715471961765820075066786920030587838148838527752979692665175992202241514611211005074397895642569927727146540955312004273526649117225395379759708004317018396558702408851980460995902806784529093413697299212696374530051196608519995761530983314738767956741338248068039765007336317376911606538126785650329744390811969438703836073627399003432463742866282289419605878186146734976749868125944904740531089905709322287964048544799537079418749280312018317972523609549693684947859501517304006427576754306225914621087374808226290268748920003982004260485726279267478161519387199515924394441317632320425437116051346527767730207286170962718523398002220973311125058103849951529617922063905870289256789359403749779778296591543879133597902650816881803443466889228899121196312330947528235068334438562050938636571451538427484929197802740306718374491087592112214819615522495162198794417333544667071927094430130051908564933436582820015006274310372178249641559863174848883091477278242996138198809988544126397470926291900044858948243122175398365617087202446338808054772056136414508746135549516308047943395076544908739217251416873650314281734611986932847297931929429421845444099119788075770395671014267156236976707730430615089616777981267140206527937256137956992607627524930664298016503275561640850829633134146111611410766593804420794515256559343836160466325227031423790700546929371548763554914442836424733468155262410889341945171300505915651086824960833883333783040315802320675652173526819600737597066886438683834311830193886414211459412063926780619370973320628591391080555977612844383143193461407428058529452186024214150046977387440695134742386684778693187482096699002477452098606823498542679337764125066132484210411746944924457114193461545779905033661002426919324517920433967172969554058761902547529132385878784855814845963962248631419659933901315701278787911343280384432349622844737549911775953215156037605725331338670489541757670589847049916930980415415926210246520283717726895851689178477321195344737600784210736331878399297300926258352285165886659463448616993274344705392549674887383306689157276911150267190194782910227117322976075874676275110942913096838677265542720853741135364105455780958492622243209150526884995337403904572094031208406906110427402948131688869128571601781337126481732018109544596692489329346267301979127678828259338236691983705760387170320236975995374758530583622007903001076540571318884323896755346952418370454558114646335334555127813938940265139912363525248862937906519418255305212627064865731299878241716414831623854166500932327508042043817765727756270400588336201927422495837307091571009020063803803012183370467323831700344550895861726844247164233815047768787948215886359191533455054958730048813150585625133270751383178715838639782950156515911837934738697204411135503630018219044746048213248894469813573443016448979732845426393638445738394494707506767284248761217148318084867488232756207575141349686778512890745591217798892625585504025776194658378286822327451599102751918858117216535271933467751166084288153030326066682910019818564619898927976838709428527102275052349079213488808769471601377629830045580119159244854297741960349371177251912483232543699523426596052994653338844626183111731345877307148620364706291210014888187688575226149232070380107473403424028244324877992669490134770236560290803821220057605610377822189006945980534374294988663727086215853780164065682390810285990534810103441075351181671389789988667585773676174151446860632129523447796962773842468139456088784702622316208576894006653238108770839402457172080957063962262050617357614817604103915558230741260368491465649574324553575258487120742433035015251275721933021454011870685864985428989900492042471291999049424283561223658819369550645430879254728891542693693792410744231139195394913988745901203272968685910703001751244306980647493750504966317828305829679386664967742957131219186988696338380013806666731149715107990751207601701096291141539302973371892863860874031370056982441793112874198729138759518495479598680908212462796876632721194689516916921367375399618499405876095179670195081106532172239438685430829424844647906831379450580550577047826210100029306770686846990481993647514695697937719984577266534769489482361603096520836814936759467648325535871317992951432467687523178232452999623950656805550435094121141089362205489552005774381697034028517370861169612540956454884808177888555104093090098358662413169375805985818658480555432618382596680215924821905296200953014416978835213691028098994643639463650590103900388914920535764652665010880164091431180441157794333514611981823285605318435866735491792538539201570820616872440246071796092784570131039991302961122910701296779736114647952871554424044356171369526554081158451292172261611292197743918557447282802830659453784412246391346070574261002950101743004589455939669974156677860679044542161727930937406931838312697203911833316805690887964339122744309843895964849858616463860683793511454776755015136517440225335447473169798820704766658084576552449952544848538150853189922268368376098868805122868009007877628109661676146579662023870828997428587411449491756468357058348649069304689073514378642080980450920651757670677498062364670876770521054700048817876285104734082585271921169494518805460457005856057267285745480478856234629594568445606202766264227831004704029482573520694703552614903315084139108509762973297168242881551486467596922646481543960771696322574572467416038897058115049989053957351380420495887369561273805968626800975721153145395145088693453337249823105439786593373641928767362720401715577829324193132390903276221876873122926736997773721743299175963650428873064583982940249272088627582438510266921845128837426130136863513330069948595838248680673343444561810976955256254242227145889860211670829505297549193644454469292254106390699998059197714536481531592984904094301173191326392266478667848237317991093353881171457763864796118867973465132232341678061182108945177979500976885833110470156593902907946790135693048404367600381626499560553703724507153307111078299332847758044359599680309795020643239522461738184531296910058772377911698882327231900185901300335168975685589837915357587834489270524596404766777087619857940914390641285053094259022166182851169881240731404582260566422458469870842330330347315875031716564637649838984324248054545732455400797939512044446830013082606974612122018969637696824375935054410550605191585365908443592062816792906304564163356435908714850838185792690621068800418055612857689517596199920881818361289819915768781165481934888709909095928312405764747376349091800435691309210686481605323123216689201039760241340588371481583962011939682495117056723154598138034863569945673329219206739498788940821733061884030620369601838666311050620720375384335222057885898397287425582124852687225647604513848171465328248304595630048056718093021764282774827376792193547023082842277751127754659873081557190073284231819351691656503039434334717581632056289834103735848050635295511519398248731866642814052801104209280814607902519319038950691045239183301742531647210414052846133084430811142608325223033585619453187407792619489292433500106835025755004778302578110314542415415725157019585964539448095788556314179891467851317799285530150574969001741112577042454978931909516717096221843333728231322752017007036216269100904387279643128999279025497446619401169620789142169741042041349323181070829967734625106706039868551765754002754242652210419270309096910196320330805980896386755313058727376922341948845984281560740785088177197298801220750035384502608827596914715643405793095571892180403114968161060310518269053285463199730331560941846770361740473243876616135075587105394779036801024606096087476860673274693072325449845291053335437374916089132491580246901814725791437716899222745106268639060872685904199203217980381005930588721149933221831874835353834015446695215671147364003861100333059809747338632936362801346914840800123410293318387149026089257551824406694838223054093317655522756855785364382624949550935916974712488473895693764068735201073457541291895065287722102704858215676700806292801660148136178818082475794904356688219869215289361697883517473538440690845465741319888836636946043612893883860462327102939613144326343324547080623468397319216311630814032291274671923308524758967078910409097104028308537861889573573425143112942942564728445439754257667479398665425506279737787433413446597790707215860538122834582252163529472914700415006240742739031742856934177779536622823335561755929442446466191858950840048154079482372333082314821989755661948286088370755190905663395002298375814424547134335211787774019373858354076551597370802754665126820879755196301079295641956402325870460607780764273998262982963349710602032472449968936342265037836591318809654989285368772952889505603168675934151954881934368616596667826402348886944789655312765277256892836754566630236624682551134951000792758474970951471629525378061049329578751522500266452795506992292712295562478099749405963434544619402819235737877186824422081209113595958030217895094055321085919720318131827159668534568419059362160360269620595329052500088540119360044460068182347320133405658468920007016070716159189903992443470000638183070920921147353191958222132593037660833887648880843542057914946002026152626546387677178602697444884138212071137711735337152749705604167626686440390307714274309245360002314958885884358727641555648483660126931521998614657297853103131229609155339122545384483565521202680946000128452117487549762641997974077381835163882682306017277563675457008846338288993732746457268458512474595033850584342597030346598041433557355126966888266078234364541495412694032875159202138758673092070410279557277065276247863649126513712177596232467050088538433558986986081755434239071009866031502316768194986201056718401872510900073355940799274126709648289417042740401127250874220849783386533489752629874717763299249404771380029641800184212161871282719419838254842357019791391789377529237216847503857004869533174376078240081040524362368680086610097086663547397086130191764810443074198043096736649982077961115555774288166809532642271610427394425083425016390666703253220433477414175316256315425791982334128052835268522061990808850449733927690283009275949687305338659304630035056217569973925813710986324764546997696277684289439804436185807620891011608638255650288565659020599681732707776782948357214595275901850684716133816621688191941956848752097160977420359864616936061429039067739083096385024355658582304316067157458754469586709787616153921227284523999789462065078237118658671444697432144629688814019620181591617448736968602058411458973179654005387233532627047034731475097711156075730810063057642033229990704020410344351214171027640440740110626473521266201122721714647488313460168433717825316076225866404692767114765439680487306550291235976902516334902479667693500906067671182623732672479116765082509658070409296230489072468367295311790564073804018591279237906507045674447549934821114358091297261799607342183437353197588690550686893475370899351593118310054499119634652617974440215929233339805401580017280267543267748242789916092326696389651049900028703274812547827314572872860346337687170342537933845618323246024857292879404325804057864805792443953207781443445578896897236862242577015152012757238434985096098516780584659056120596195541273595916845154104119369974707531653697132137076039235030925184539109691496469030633495536628361553208568093233076508713343453757807235414594891359537693603958360998973888881051388010629163852968006818678591983831249749610340069896108393045608460505200137777832533663386366603311978114517994140452352851011573203146457399790751691190684467141484569998522831457097983473698418221760569124566190866916634689357137898267271360852965225963360018415414108878305988864637295463269514817480862640848398442173488037815530918508702208589845005270001729623215433998724606853116567505237725382716595914930426753573165264504079258604322856136198865354554583439395682726748501630686619369608886061054806194943963371452839827517707500056188907378346420357757336629517662575137138633426679911793659890363976313808327222315550020578470044278878796421493455724213818381081558545359160901930069743837990783363232257344277852942650601732285741518885146119572324995423972253229728825631868289339827261536053399049132100788605043681553362081508072073363917763517880697386528290099829468847485689023541071527888051794028015106189453029708182578117985020021567627614449080587812060500481068815892437136003780849610239106539343583923515542951665407266737594872160860746207216233619134932729914388720531236101436752736234881805909601766742354919165797652489400667890932167163252928627583291406155695513624119866502084208760640288222095948205562487394427638306198464755851975815484909909532824769160416963939450587291426342860960907923988975963660247757391075469810483327635257564313217714694734073163312107547700261317858457071530111355153313551322380978884584545577319714143729631078821668033424198886149443416456617284300656888973557289406806481066217756231224565103778742294856416769998069226700133268299173114010443112429214031052442154561313273032352917066707550711140330208729455804324989180064353316140395363860390197353339244821511138435031783163088719307745060279923953338563711818827215911287063113607882785542884994079881748136833572006479749418483279279362445876862295306565995884977229465996219736224619751634898570783202422897390382856285385019831494013920995633337346829969108609811117845440148575537980128298330753505269757196757058103662344881247509191141304321303365713858401368757537368128667606465256531905001764776319098256286164241938230263347483721170799492539051459890144496464823201457186581443041515277709798384254194453667799377957492669649346437801718513228931619130412759182397604096189857661624597587058871689398334277442246633587078964717775837789297375030053259666797143731537045998413018827511874127912595730955360772419096804514518091235912955865262211861607221453575453918835506118415971498743213659558589854414020406994586206700585603516442177824564993323706523911040393531911710480889644588339409082036765536864178646721256993268318889194805963607130018682150676414995822971832633455996786182341446080570409573836456808619410473371887672125569778449095872386435925861192579733871488028690156539716258445324285961362095857618286602279981430410351004849481321277982787631184370948341065366179338527773022766104485846966173897859677541002345235567074450859960080894574514593436743610803715807476955978746074296587489821995269576212472109990902804021806306844444860035925201786153782473426215066856669154037060222627411594048638704790133931856266475941340525079197700935860744916144340202498303077941721071218756963224628402764662427140864108168000274061310323275101127442330068298472789723418066039713273248236325478363390244045924549138473448617214001320354640647328234429728078583459608698477804535668092219153779992068570441277796277942005909710162204869243142018518163948261990470376947397139395487349242151705496033887432471412766926539543149143897610715229812698116306458966512851406108656000720821418615711565847583055916601755071503457745493561993793366998395149444679641620204449575102306444245195208668647341728249484223301011091232768862311880941804240644666020367943624956861042810049474071927401949525837494415799987117608197442749975085872544772262996253202841847355649385341070792219932601626487761524404799784383365385806101337266975897519932422694395327195600280805622427412669418090468421429934062957010088382446358841528781719805506923478140803282775612217182053495117893756927423819945027353866612752544726756744204723246336775323398769898956991327860043687217239882641331860918992527780457681663610890653999689187956582990268411385470593351198144977944394270022734370167506881184563186692441738894934414884976103530173723377011547012671672076316782842469504389476860387328083288649655567465428715364322183516753559000738734589405742127916653833346505249272346916416423265075507345593790312550913122324895984669735880384529971154334063048227229745348466270108902127608660567958577330035543196428142367683664206671464282477358284110864025571311421504828884774014840399037688699807741762154440974086359175041381340906185360144476271545369027693647226966570783262618731120831034763337728028907309419328529721762591686598161368299928847719198936498133048615328639656944738524918144551938983143262200469475038873692305960205898479984288119290395434928882943244177765798247590895083687221010450981572730390428594847024982761771577882182544641654435782280252407622688791689823504575480529743425117230024333707490699880141082524399553450170807748616629853188164965735209172402288909951619779015416333162975542097534633127867519505803283423234659688077850933792580738895700030251815176878562047269105201224051963357541462220952411406539473698631158917924664540752427078554125023322522471021993145369472786289405975803459551751777101114390255879904550320141381200742609468199752411290606885298109035688343957773588433124977547649877348326313190902438477927619910646805394062627710104231763214188491890444385424337055137489464921139258279219155338845775251472341325053531928787362944529691128624005381492592923468698594643325455006710373702673093552920592759401974815236064818348715486923782481621152444901930949987744614545175191300267882606113538994723388247938565975850579558246703060686773490427902703658369459371842903460778260693290707533857977423215792981337925430980154530316293882850919759256001199865498119099754188630785457633993243465753205102229082405587914860232137090301581321885740136507333033522766639932473190937654036057518332485374064554387540271638376315601206814660232191833607312462843932760581114192509698582536074331942967883782975780620872069314695183960909954455097024858261994265323520379623797387287975673015367550839522468151120028962136948645259998312564518148143345693048227489125548046263364381222467849133297127156646326132759817129479184681895944121514320420051165962305108505983548091735373555418112780958071480478337582791918212073592619711748223127554554215547029694389959457289588295345214147275925249217456263244997400866017782747692329180266500330759108310171425117872648302990004827091392633175285000101652029636343726372221060564125498841027126785062350486173369573325147791628827287161014228123189818495471717516332621480540362563720120870877617476426475264054904521077812501849202188518906788824752215859261299764522341904462956757541197886468382449196410396381257282619413362527493358357924331030360106527181660186244646336253029887537746679470079583246136179586656193010272852210662810717696328262589752902953413860722147845753517865786442006068424039168325274127580269735949133634098368417770117971194986824788540667450505924160551414481238049066623207193029998738409966231241532667628582461755925261010914150544645300016039777820684677457860314578692831194411562362558668672586433655907249444725883756868767774328488126477483561545897926931099163891672521133887222018844302873578293714451366643822251003336309317307958174436062099582935398169916886875319250310835364220193476726606406810887835100139622558588312418963771202634489690157317292066857675317945171920936066895178133078982650933385407072219165002824437038603548422938126617361029578671374104055460355496310203893287562816104614907353345738523445862037047397403009880992198426824579875673053683645483096728258409421625448427971421371332306806973313820594040403092901998701456452632460332273441138075110910235058226539769673992635673609214337189202855456973729580879507708219445759095028184940208592147595918325610722865644641163822546449497189846909817555124837398691100573565087461592871412939666706904448880920969663604929432405546483389559006761163437954376350878052692832876056846382341206841700123287355705733755118544537226982872152914155205033143136850589660251661497144202416785237459530233994223012942110275369596789714520207882092812698382152793160790318210194189391140708221163972631181162757517213431117829615148461470229677016094259235412829001721569339558938334553690604118363562222942372378877450137989279718621134483951147091213681772016290555008376595043005623035952390303184154378205879488609190499037697849097840681012689866255665986531526549796170266554482995597268984053414049915341275668839531936280757291919539691182440645154026549602694437653314617618644293502482463239538267062447001806652697204816020838873602807422776194630022695736342473727962668350301626159194761602789369362588450734711212643111786216848177671378753584490186642385237648252556933459548375083338858724440744465444683957693041140188093449941904211436038460235984758251162636926702823057492490271911099884559744210480549075743413621706293267850987473353568113203140005407559957425287276241774208392652070453588323777840147149712192739504103964864257155251589622799942691445593458000215869818788742065792531707663481735561930437821130120372144202045372789154499566562692726570324951639491749349661479468148353774852617613773153758222659629029859333126795779270195052434583925263755320063183756000676267066927238032221279059145022900791573685704150378970768877845205642431384150848026891549919563743762684801706426161023922232078071132992685485769399082725692300610279151893475000385382522762312111052134700194712108725349901837354746689447433258068594428893956601472955021677387403487914059428558121859231363868944205167967140101365878867510216925053609260621910271536277822488922511864065915521157713429801647644302237456229988727248370367465534195315001026594666488822879814809814302154779492242656598248205607386500452694556099495595632306409510698236567309303306059544626881342812071472569437519943904984472439223067578104460393384857205677880869503039284614621405293148013972028963015313746563484631840984723814799625521249759887849605241340957906232982934687301264363583305553358784532274081341958786232923202755022461780406250625101767154734866613308934603325664072937195726605846749578204167614340667946919781288941293147233225510221696973209959536511146789966410290289099217218041122385454153765680153233170735234892141187945772365951977671962026309640196733242382073274846069134087155968948372994063959241464077950968035212879320988549457643014901078862496973713992559404185134965312774285913476303003281925024061492509745492497046831707644715230965846600273489984668471268498095334039893461292104892732111882123805701686818968658882822454840428030993186271468989990639369752575115275388783050872239062310766527028688842370551515800662392274143662743094816342376395195635434604793637977174181641391045831651725327165035973009433426805607199041166185377976347757838818354193149759189039564507978217669495475960079911108884294884251394893254430113246412299953015532806212648582806740809567777329842101161372026090798865360877059509804753282991714342188547632284972482860769167185669803019278422287649413533646727251206297904147124481133108257659103336800440372623137593765045736010737188538603105450081624885181091167335213849594135563288848737111220382415190881257911229164536179994481795090356741377554528652181957759708488774913977532730630839828596632344630106693210084686023632206954328249062582162769061192809767662094512306875207935383159352443075327137336256793845981729792723595486181093830756795199839270329727724198062237958590718246866377959464287315221748851262594369641993757993223088882416267073592671462628982563260205763376623286846102644770997923289906483543511501848088554407482188789133126333265480845646866078958873360539504746921696357165893710758135295063296946849936455917379772321786814629240511273034786792626796026983602796364821888471568985429851588249535499779880440865330158275304730055430544640254141249456001311192502513610899271403496774569706216208607244433004596581321336041143343549545619555041734771890976029876155622875746472756231672957669475788239171810680725040555135855286189258097445511310823934537344622060163531250064623523748301466200836248244131538531113048287933223414699922290511790672191524331984498836123103198523203025164846994372273622917962097707848376544302593562264292699869526775258685166115446430294361190693728394094317342619586672787111996938724846606533501063456661580189505520116966688134532067282825031210307656376068967677562628671822805059351103449831859679674948692887250039171951432919985150925158577869776048549324477603058616599179275037315349618793020221910460185478802881373581208839619536763941587157960115704669399111076922279478246928689130403552077628205963541463403597081290317597622303802510245032978769350467258244812453120662501697722136214514761838799840778772314474437237615386417244407811182855721442443557158764119176676498586496641842825193503019323913376499378768422902682259766251940236210557706392473813146168405216476848674812294467640098111943573622531352118588879593151631762263781104588105134583998747053584399253085115006531490706216263895432386219424031333530618876808872769091482827359391587885418445243095482171666222023918785276846602433267598045428573416768108731975034066024655707930998970912597409560541316481706083194573955610957088866566804597619029609898166713911686720042884961351117325816949637899477026762355029274506463539921191303194479475956282655178817752914196379767530969115014672361456158513342749787213718922433975221985582679529184090693529602385265640680909737976927234010107224604645239819921565486241221587056717440947911660684028624890108196066072731632300818904337075979802055692596160632275033815619232493294282714403784182600535517486314739776992212229001910626846943337820433895203413087158155427191747732003055652761238513466108060323454572807115316828679367118653237012170871995421879382071716059167248855032019671101837438033365887025367060758987453981252140157901299051396363683415560316016419080339380713365224784792926483026227420194854094009609392454307474852716238431565583937072199431816222022979448786821054951446715997988278217846072429513017983903134367293922390477643392463796485326697562301708549657027429555721267791335377718505663043503938978446241114569353580232896914561726467116157731359752668728021335666799259917497438981710453728768726716208854319484685338591452374915325643026973531398837304372039205975238465376696868338464123378543419930563418101905877909195793562575164126067228923832626617985594534673867105775143693125236978484951540094250006663011238456844474262206820726884882870913747011326883352314671698033406655264348271050365423010846076216637201434684354091836958488958787236325245546568034244733335642482542131905240791954729232883578696352463470310182484490239996616307372199427646006494642283055511210394142318521283448768295345927146318317147517009764057463721619054412219501177656595063721922724747654894609383907768550851834377754195170064917869858888925065970464653957550866037273318357962671878801050122400682199137053971218950271205971987466237400348059073095973076376906776936650356295456163222433190072740893480891560709043892079578148941816679209355514458779489306129582215215494893608803360915888771241362707437535226339949792875505142999326415517704248670123247066758583849467061033908804403613030859908963683160729962958650164164483278864776239079325785312077548046653281409732633497415187769294862471265710448713650009408123847688160303897825719572349180336231813636480771553945167411964753679995057392031330814989522233804937183974780603207178780843150686313492221288304721353900081821582288329653050036448412717816692441904186620010015320267933690609164617007316801770463065493796680120286827115001018821164696187404520428693114172158563330154450522150172979978277817779448987050420793616857486009697334585648268735570363171325053772502838214731276932671979961123101630670839361989775874162147732620736702475131345807375582330645779033635629715013941038082606088323427202817689241648975682810239950210452243684143936681878060785074062112935319407463244912805921579187648725502929108491649628893799776130617686512011017591807696783365215620527278692018452677790059695022661406774771508290957279901100451767181250824588566620297391404427438875709194107289984548357353343455317972556223311326166673650317731175928644107704956763798370464590330279270887660781395599736804255611355264810340662894519076409019409236926509683305886614365069080608871743946319260945907972350213048709064734204100243028720531789919322635549786962224507808574317115375346690040894865688543569126601045514486967144455659992868805151515551170120828584701699283263090003428041814314618223230143446683922473924715473110414172462458132993082002338204790832542837506804195613208815398444372662922762019891453551331794390480164955196019191971767402293260086552046025708953951910702973131734426277433790395838408924350198513267091562038780836399102381530272489516475182759606149317627109898669477654384870011320797749067995567663272822382121798729703249542502852834041212455023053455911813440979298901814543163979206286821284085097777031744245769808030140996847472503221076534072825789325492885329757194620746740750580345949060592974553142749777238427933038615684557150630346021734821251448460384437215262571398565028270913604983676911951663946497909091024550477441369947663136596866198829152311230708513164927485158035041394912494414098467339822075693481821154210048774712543417186012394037647704945677539740094042141368781914009252511677262780106084006423136181308065376389509332146918236901080549366577404176576098752056467824172663628043671527387648513785753471941883668922678972750648685808148234645490503578501527450955705541433637276522358648339302827583434295196328183234025618936220164091349283148085995837078995538713963071028385051101393583390748810155586617478827496667439418866287007563759077258220586971980549216995791215923951724170557906362009057537625668480488772472057052781601318615657449275087392318608879847926655260829567927091293796322013925013159744200963630621742958090435584336824186727019752407221038117342197482302177333623848103047255304859100750976184649690239342174828900161695834683051154243426022728634243176440424671814922925979062466297481464232986679631448381465616563473265683495950332946806099543172042848271682995366172989452421378248065319833764066531790293427481399655393125109148757252319201821334457443371096382586476059126227244582183019038396142176840657270416571104927663960821957066683495148455880534453656992201280741164956270698998036869658912215359607617802713648473726187944503152091619493553574878004001231001849602257383098183742699556258006535050268764397398657003342436565381569405644551096639287301398320227069290724621604717474037627216830922551178658371170208901707710453623430839479958232842469450722502741000286867407375963992638000738571849200393013708917569825313833276901658880862984770745350412329354765891434892587556998678603361090313766545967290185466126546582165324105740180391320464159568160807117151483132451136084657755955664073962490232530594189830333983012906175018381598938226129951395870554769057611634640718404389344301195451604556135989609587215580066559932849000912377224664972307457793113453120657054157540658861860929078408179260094808625356709186778435294535260156613045197207477790231405266289989677149539813353160782538242272163312154981296989182824508905492175014354297381847808116659680778376628670916732212918525032252054383725433000069096023581399248459577288123967841051918697917492504190986938664580265427428314388965156192065549273378962575491312057404840148858282329141430770606336050757695227707122989575684999136893261812110067988290300806627216233433030635497575572795930485112218326280986938031732515927402920324325484052307257246253137160756504207293494169411401126739441620089687722089078628314671313453064828714933201005113865765753118006226407449591961957114998048682915955385015932200356835151947735024941585311824432574139048313585127282286347614711708428294832418141288349683797328353620431746544038615185883761782378646595952322406613009143629734485571351455163274089478641289244622467152115487344674189869956220505857680308443694986897841672813133223871484754260301011184109253870847005479846275054338341534835673311416063216033227085299746642984111917105519444887573114898821058226098815356385840478896966038005081678068580472428050920378060349054100920424654624530401075431308025856724164192903252522756238507644149721377495206988808451347530793854106994262607544617499739838383622619956864734518285961894785577014080475125068509266550294724789368284645502932350183902815170312502259338327139142820824569388313683966664480585978468285201984721738690656739105099906463246750229263879821389037233982993022433754181840624257011645150646901539180471222760325268762296981148931733463449731212145353985195752801371849500262488624175802583111787624253251716691528143676057062579632464065159174020286732196005717086081709693501110113761596778049537464749740851440227319614525144180981141342517734706151019148057692161101673304584509610861444990899415291547756830938745791698474209458837852256854687365310359136724676009264114544596375460164273261507955798123845665242439303862793043124893067002575515375584894609874846226910865929697816763649800147010771700100318155053191308071532201029287077669712340197617625112188794145507115898789724109261487377656075306073653923732385293871653376395429785108448864908483191943501297137550302705579026762034595409562215533070572068558738316163463636118180122519963714393729910944337245673099630522527081515339994636436353784824790760487077400075510725160568383000072787728236806561492204435980588696010973307158743025768394319004645568238252203301924130031037535376971297708142690953155926936094147220940527707095694681281112959565156973696988274268530430232821620765709977102646359119092152980793858965524821116235490502546220059962902209562106069020414219545771862618833021281854413208884528485287628736656853437335032065439805840100725015047514601098620162852203848249665969662203000578202050576102212127259741598461729271110274238165641007482320592951242800486494640124724745442045140507399680610580479931179930928819479324631202132675485288137898327420418209281256759610326803135247180986059206079819872323166368697240029851250502943520157901679307997617633092755111105556843730107005780837382235013426390606833074739915275185368013570929652908977602012200094938494139212004877259094078747785841650016200006750545311153679980931183026547917056367571963396394215319021861536421757541146106252272799147243743008757247989401369102569508670997121406438166416916790287587620344620311047763015676966742970788122768691049340029776960107246963476717074700275091215971557658356385871408441880261193573559318176105162903971212898784063584379971050742561973984974333119609647026772940409225686882544946874200704518143077422621647225772760266904370372413166347725270764121995958104868135558915363791991585404176558387012183594683648857587587395181779134777335694355054101048237130227634200354217595457641044140410926757211849290353698162262434251854374474512059418275395179276813211329109252245577177561240786469343186491872188543456527748086934412169436211147160761307268150051359031133612445211693498780164326111782533930406622254949053205237534942310919600515878677561925195078202948373741390995915038202226105805564179333404145267492959567134088329794964436323183965260818047767309812401725372277722199234993305846283860094296551803380625568234884645249032820847751483529308598372123613859163041089256803816764628447732931932737843783191540268622812176217192815314378726665302687021891899466016481159954003618276083529733738019330389944175234734492762906444083488736404889723379908076972677848355819373238813545629247495942550768834499376968270803078806104958004954732537157303019655159682526681067296095513222744864938769238792413667248300914636349772930516271925964991042967949740335600906090758006976479892502446242467986337781216230787256205456914705077899153519342898822239191415386771286472590557616512366754290348613957227752287118452471183496183451123793618365771262603055997266161953859910574579507363753829838681568413372809179414631209917877336403936153171436523053283468907833538426176711213609662476988183288783041845984432350200581245743692368677161108742496948384010979488114955930038694483492340336908334504085570511071187347882170113596362516241361069105370648607784339547216628397816656505816020234355862741204297235071936049251483062431038692143639256523824193381014030350359536813158029899632197208799114714314887959293717985640873096954861004699173869261482519852000826993435819776281547316451637723577727264877632969879450185969650229764481897479702800391968359409240180413811403753223830318274693171390823398876564028352544788925021711803510519671722678945650298057950365529440546666965366939570004384144040052380055389723810067673803556525055512426813333001786946182193738460887751117403851469244461351554534407696063069080735046685342569911040272088406040771967884332800571609683021145597464320047495132166584729947979343717245026416497710362860483448585622365278678446624262453290239653428394477940357957379591860540874176548121029989655476942409921849885116423616059354470973240656566213044565620503590349592164645221511270314134382984467504216068770404052781258387082597658182008489768797096342023621762887623666316008160135837916892988154055946535133090057587062412702780823980176856847673915715959207958811563288031904579248166154326857398291574332630978719014910560594639214416538093211913687510671767309722045630441034342928514507689043408419493018457275834665089689483394092529232326350146972167686083540302178066786198220876728400001296172070596571683328609635852942125418340526686585206395103182033894483673119902491015406839515837252589450637978561506943321955056847654295730489408186460950818517359261597645822730564709302025185222456545011676379641961290568147876541822975392051141544010172779749831523069380435417340477891120772496293695042891521638195843590532955391028165214034093705188433821963333704015661098543534906590537155301418546191553366257672742344051998944002286939858436299429673154134890796562793342182940522243102777141047277762470811431525710237652218121364443858149779028595788786626254316932270362943191848588140399577379499901208414942367388549735377701447562704727936505991639511980952837153179111968129077234513131904025134875591063232279157777734866606498474237431721781556209592791884383358730157492249963793757487596154192558391666644990333193709828351997144874518227511249770383046852700633397645093386707896289747030758352219778291147452548301187485673936049184821511791528210903093735395481395829980923882358758806715923767463965440205180588349822773746230359264465026745692065935721679413165023464494396348316987840616773054231078915672022436578453130295191876535782958584841889647648383876768832774626322071089422453425852899560909281492187339350036713310877361398543628821572057300718854948459317256896235680447535786150012269960177326973469909665580787452752641839242629765594699869636230242178992222610595420444343403441316720627353331259639382964048811257158253309627830753125185882486548437104689213260626570130605549525694049282176670597133777401921368994477847220760510755847969452903952574140001712379253978846261292761088562046576541152167415645370818036676853603691494060757468491599822030437619263631240308828389734958233542160756220602296318556455505649356096892068651045188663706500527695348720854448499129000822900358191264476745972389448564848175996623451767475687383708342331165090284182514976627858744849292222589285834183840060887042899875977022321167043048000223637175644385841892812098772517752953144209313254331611125420999875199475514319676069079427645151544139163746643802427053473052016123765018681228029965719806953596917228809833766478406817445142165417704206797863857841386271932455576746872472952049521206531466068136858405094702708493253998986302803671956081074918420494552611289141913591395780400137525182683827621598298493052277948711930277448579193273092359652484685441983203502795014841810537261030198835692313436060934851887833576583908421717382373663238729752272002684156235548941347743846914479945979155453550237152347352520499613128330766337996474004678582215783294878211597158767150680834561544340592077191883046101323719528638465620847518323358296726040498140928783483417351563418716089755001621061074023555364912307212049252884978387969205495050307176391033648984560104806825860989463319205442200058799215158741216349500003024798540903299822756635679996103737806067297658868666893668365115833110202043851148293270158149990437882351297558326215554532333526507338935896908760039404423703787821181550609002337098469653469047442084773868951754743882149749458961342566362067043067666137934697110318177009490123509847812219717321370803170773227082709205294573171662528717884257883086659835832332882325465460337067352266409046507855341565702032659475260593317283135230337552405515449832895794884677225909681920465299377059745157699637015620222432140022559328082367870202084928806509843691149486760672001665948949056029331611685058311654807493602958458488917024615318789645179087474932762959991770874107721725865204692547768806206364168515360271780611355843303778901135456775427246909669436434235256250688683287675130162393473846069959328154046479975707776217131198518837085889176491017287285785986495842973042877924707872546997403316551335072015516679613335544824570796509201237063348389816593987578937013842048515445835272895681157999788236074523580875336573326244849425787006612631896338721938800185582838105259499826325231968984201797625125091096135810243783481419273543535929649844910479060371970986626832516537816218192097118480510464121199624713765348796538270652286793305785147231993853476913257918483252362850083796020308129483555962801564942939913366154449046819261302012817735154148335333965962802571943124493059438901401012303757272266045482403548413250031894912926180924509793612096726800636647365901609433068598057780418949379909370127368714762602564176657973882290243653908610303016507993065729871522984305365487822244376309394565964606252607788984151464695238736018748389880123687810490424032108432642909591088971322763518935712021511850743287186923064746191565144962848969924018178468266917566059192473835248029264510409540825861600339976797861380280367329535161735673201344726716906016506673785036422212468307177662891755400853965563045808040350905672352704311554170250897088417036923737937412183305024838327317414176398905755389718235398777523340368838197480962667533274819475325000015059721173129165156282937434513431262205413614829832547685859114320045303162646864184901134126136763764061513966966322921715474095801355213282546000370994714981470402407629679410466862061071868751968257036594522986195441419878191210691958130011100123892140672878598035447010567312481508593567339504044183476990258653390047087688308197492522070660540368089391565654219869549345123324896792996314120904272144824826149871188909749319561140925398754521461355958879221673442357134510238449739161198700124627453450213686841541802331600687276089516363521220222348176180414865438885601620987524798247109686278889993492322702230980106538616234442506469366562822774115879642335614222564926069932817218740437231829458564638907035195540485598411991792651036518743859195242947005454051019665408143698305286002982075821732828759808264481235743587128133019672997892247160602407011328837802760127300816685771764105852837018235859797978097557083931961242231852040743810733036774225037551377028646018972200487212323691785686595892582676596691217684716320361534712914939221657136620203812471188750823448659156894547612918268325313235280915275660252674890273865440443249843463074297629768075563114824886808977208592449876338417493026350281855484381565363926901971179486705769044948864668208957127899488541872578393364424725593205207633735702774702505642217657933306493128767806621395511242311340621506682303513820753828433317122150392931020155444912123563623750510763547849220546349590801448289254868648503377756772013252106038310555144790858755218166457668677205847740427303683365458653686505345142792101625019928985071206671196457205362004876140151916446996157493694527426144165338661936160859322123975953984769587653090944280261753940539847788926037950405121265912843499071590178225422426989765203890643083951947234132925230062990887093219842052351530749022802417975987555729762697970925388000135167998316172621345029524121157209340471207673663747898371706198698829391888282347800728075987359291825489185325225463254527906618686459844788896855766999503605224103274808607347748774767670165725300381546364175389284731622371389207286981722226903305974101677409692628991433301209263181037201804081364200324685698213413465270739712625891341965289451161492747988318334005630306885781914245807507750121644327449409422217093747257863241781485192468044498359559321455880686324407750353945723071947341520506074191770166649192829393616613964851727510447755720519890000742843269865236910348425117906707061206228766381276805469810025238056235793950909964349414099437732181008604721018695522200762879023412869544785091371807725786342694143927586195835087496641226072474039446027724779125395172175861466877853887424344999984716317688497312044111882883965467002165937128611747895881002342133378478418325785736447857842889119401108471295853523520242536813396613479798160248910629842865117503359527225750934587305861961970528483050489468556812406331735497884377755489923880950776587797968700528486162138899029675991454822199928951456011509098666069635715871923319273556088346332415079463914249959838293728221786215073588525827884518098968532109094389847510930781269175149290858081437463858456679152244102987175253208528988846522449680312671459921944938622633129627361595012396342890181643132965369291581555351024133794667690581382002234152668171329361808877022812257498568361221546923810308128181911555093239625159442343360618042424856350629602901064162833881176304019590453794979061382479491848724148111533427385751274881390467290064054744715950533598601626299174140349445818477340334765530336026826611195328779565795832555759584617643237595703142315422654422442069112563752275016162887969567630287562757112065649914187094059334918401030251464528259793796284094541936864374030579795527375560947647069149714664791388432566803303993942581038820552727953913556399400945864464431054036314380840032857021647791974317257335579065788239300266619699897350625185563057679236743663932247742302884539470393120911994399815044119247619902985870991650788537658972267265898435165212678527696596637837852946212193971606593639319511004203936786206869883902406672977158769658308749556948874522897124827667622139411936520249119751235529493090603973806144670702972401199410473697759416726964549134285301109311831135430270594311944118326721085837971172985433686123757899203971826833028483888865168406296472868701277847294583320524872440804475933424274245433626585744043612190997134353187769720887550592241870588390654617839582049057086658392108570981535622175575320480636799723702772410071862106482420018447872854185498335929535465994319199567487881861520278740440799158240093587635062422459414037171139691030447283221803059321372705383912895411362915854348125549420898430904156736364584237416394857468378305963259540069880135812184092918392110228048775052254318957803448002944182579229874496365017461011315497896596966880072473930011523287620974854298296421913144944130149572172267696666973876080080132113437501620247044754902640434712995924261116521288048985394980909627879407085789051901465594116288435083828222250791150987310949035293519397549772375676479419489071161374535730067010116924900207026077154815590229843989193060431465510774879685326583067233314194999628294219069379363768496004808300501835603253477108332735584452329840973273477446567599500831322515331784545972133332841435228918429702465265679767347557360927819694947245056777983026718004323046760000847733654734543845129601741942914827131740530529727137974514958185152479134597025517955616309084343849078645536915282239819673576055521463937632596124106192672556295217008884041157546401615895080694566101546856271346049249171515989169594042309659655519025270434171015080366536786056021932852557905036371129699181827229478342216398095804967819602370798490508900335990236619665610171079327911682675914716264813722306884271345855080433135121929128191181955085602415790154993907309768374880260573629837203575625782820155723405001140139200311371309893952268296038097464055669296336941254391689494560194576482021699367977142739101223033978625549138186257535891065347923265222837491208214467279185488181856233553494670782856386357209734081884283517799465850987797333393657670982557270194028366020746185583261731921279537012626459407341702031453467370707769925581214570501843474987777340876625702523047029423183431415973451006979893649956164284996513818719472927336006469042779265244223461376106997896451843972861535608073290701588798413604581945551201924913268853932197745947027839166803456956967595316463749478161972034715100944354129797607055770428275797032980377265863521144522526769118807747698167336367006949795637424542281652214596888549688180423064049245390894141377493439533565747624512525002214815152563972920494501291129263758739620878741906495939469377871192697953942195317040329682717418651835131879664236986821124750040148596179164522138388014952858217471077879073910233406172661643457759720666965442257488045324510161227983518008646077848505796115631323251305298464284732717306569476809546570945393505994475395327637683486790300088678189463779808070857718632227972821553318336020774651958037134659800433818155835137704004558926006478046965550761333876147361437881384668451011907685297926387394133802244056745736575685395147730162404379981489606647896091622745008461105345847413938988348243371612190497185839736503764359105333985033496631301327364472582204228140893177974402546183020490289314071127399626860164074833966220552194274841094405916074636527750200765679792984235011656624826839731934352980415269167143755386600026704132387023159106074863214824235179159805433949929335802670255312187933557055106021019811717109757472063380144578755757995799932530900480115310593302198176561669821489370427594735178915242115776299129063518870938923017892468147192661849865377283400172956778315631626501744549793330732230896763055445018805126097756222093284927963938227612007978747320434986291524754103412761488331968250590043206834714026462487764602469139025360225633592328251313469472558970983196096008785507361121300165211305856315769228791782319766242419109106484977990044402295710003270881459828400736759349835132335500134392890194134989477205082530250486934308252921109509600946051465177426106915417708062792753050860334512850645342742781671910325226882939153810657024820310878500470798407934961097788355768954217163118447028808771931584157119501547965926110165609278122184555150010950057453224995083132573211863748855522168651397849440048496351824652186046075045548115207170754008118116401024191394911932300605764469566913724265336762406566435629866456142033136903754615634698947081167112742252818948135984019210453935998185007556408141525309097498929098375079204479411003677763129106629500045969548929401185239321258376398370854886411152040828798739202625982306199620880781460762035362040615385706400141245524352346991606047475641910287013514574841082438941339340200819847566958606076981506635582507793104390012738490878570363942903476848387008608390748760836067284774310983848459238498507426175798789120841670616588678400216296895891414417351585735561757338252000222791252963906104510361224966092331278706696241043260556763837294460149590733709649241318325727582733460852726984827588990178524803270983193406717524628510441710243173287622342124230911974974155685012252747556077745634532944106291859545508913270495339484075658607902627891312417943554366716448787712489924787458307641021287996039281355750642409365929616942916644519041205647181608882983134554985094411352933837435620855434202288666183563588528840344554814741183368006251422423242894683410712515448646156904687120116597804492692856819323313893919414016477010666965713383911113363257289349815646525980589974122949370796774179370777256984551180875751011636823991385819348630381543173705994214690433708935089015757547147158181309771239663677764821602579241971266022687125670276150268009121325838072790334082650753476597194532141997052581842807770968087223667919121280233436425976374543052236163912411817353322324272537630497761824421807363559645753543926693084870943128982232553059464320070210512885321571118082330047149377273760250924118228398193744162203253635173407227180481003747411378066744090778103318792005465841204764548544726618823480207399001564340938500664863746282388925977462901427046065597887242613827225851850571915790066319579943616092864196718205051740489926239162837258661631880356249478106624762586325362743616528605453276362312542942159749126060763252320874825421725461878700392056996851324541009738580132699585439454210630807364693722012437788299942621172784272392849200472178660489912448803753171604267973759395641903881622702842806145232387360180029997817639448178487423779589546917501042200923756549307482620833419075131227587475109734558062978180357984906768828976013270643641599742182421945141227536758873005452599653514647297990555918627298404351310692649120721172378115250219441227816127351987805521310311592399779819270613403376336368614837732811591607135334464830539551238170117636135187185445206316623966347918979992900583797548093407787585788292978196932549043314767627965605843268383295607733919514501267492639189024246015775841716307484279118758163982936796548912101628038030418289245096699246222228119874953787325239337248573541256269601659507781062694249986868494406691410097089123689746838292186268641430494451421681788318843234369887651536605920849889330448584351624821082465036005964572248382890428296265691311946649043757715891195559207004125634895891551820419810169629824432369199059073638010582524215817999241616768329129290546579593750948148002594232221212462442791716170920820968233199360302217657322593548390551505948062538964173787762512763785021211908426803298324075043788847851810474152030173431688519593040783957212743089686900854947493387604114058884235276136598590451056310363889889543729540522016536481398853742441844609167206783649614897693520513961752436560304867854309890586034795394871774450666521934888574199664115198677453373962456576650773286857677637570275192575848951188394099580562904078135413647756107165372826028316271730192394386223307453327126925001208070604305915293349818891100499506605750978867268203810697282169411338038126123793071187815567157746879992676997600838679060367676187073841681476091212135312082561614659443801262075467788166033309279315692159038291032767250424293835734659147114077903572307697897351150256625895769012916842223743227319512842085771173578461740017091246969607338916465339332567569241321064358573502019284336380473615671249310973751839840499074395261948037994724483761205123301204096430171718178143241838080669538445803610388269100581908662673508854032268107576875122669958195354115257795961606595237971561793197958092634963429147852530861168178995076944633960927909416686933334804160362001053338019829267312393405714647478892563530716855111266350100939415927470237851554012920413568202852052361617828566713817470600599954442941344343489793068465918445454197368274980522369495953479866681873823405037035187703564437617392330503608303051649497802610956943890338810396316635009703709608561795039805092594801531271352612692189874364765293762769744228453479875492619677435280900015221944965947757708716964253850033509993971485435345914824291410284807213487253089479918975630802264710617292341624343880259865771335492644005585341800132192649289895990577127621440096782393463645720139290228045084987749804038772728205949667012925966754756076335074229150793732961205230925561059515575215993180967321845822320126504520899676581092069215371020438820662907862410394846782124808232265302229348783217707134256944181504969494098724538128888152465377917484157998963296603084384555633929810520509941715528553774903490971700943063348757307109243827277002842713543384088919590838560349906143613495970054387529922252109420295594930794179243140006718472912300407498753500426310773220511938420152246891418981661287620726755402337770260771585324018150204422767692311221501262130387501538750799311233819773188669591149189547568092911837076738820684405931794499662454425736402205972874210127193253850124007339851316001158889293173199352305348520332959717331571863626685480430624134714661392379567358707714885887346297322968072709931486658180522528906970080082087900736801089116663280313669466555181610583210617443807272163695539273074937306859967480606991546461301972999636393268590877656351384233583401793025298053027078510418542779679750226387947140747307485295081258353472887057106165563597023164568972581922679687527912910694296146935523874555280787333968044895346354681487629190551730016074011206556902037384480532515178690945063343474139429777073060730601846811776781626624622697947920973404877135242973450280914925471171113152698160561741075964287376302072210058467117429953372346622736615052408010067229917879305651391020564269124392870280450266370717298797010530218102183175530441767613402691710951763583871423426738716639643998331866548114261438912289552127923196999194990759751430707904258757774978424921039461992872067796430049922087974240358798443489154611458727970340961760535606574979600335008037992933673586383969630276749002181984035337769190803547977093826883493328095334608966327621928493074693489544311860400504531694831413662023228796486593896888619485981533891741320411643386249989193023408743876539842685537480062920619086519043931051166147278060121140576539313879969824388537780112870528827039952767125451871961647769603772280370555837414875880005427797747943219843487116731275934163206532958324714391994433256905376416351893532257208380285551555791049940236993163744107925694880620930988351197733022741745904717554989087724196114652989037411084764092759667027152698815522747838515596067610987541592359571133181086400913650137199939624446636841824928840712712373129523347627874797331581168805317682989560108072557630024878403150362283740139116200663425957490885139344298172357825491751715150195776182216124501707583366221335945393451620912781491024571144130200987980104617274935803569924537033092841253703638240843052028856208896483166821123389232806901822783298589427765327172581567543896688589738198727669519772940780307363670146207304627060155668923250893723063022296299537920962464991863965036524424585799186955629171530206516063545068117705734149582629787036320167147011976972680162444303962544420923674219276792396875766662181687619381545954307764976850872201989459332808452664757165396064889421702414116418268903431253465966271134808161471919824996210038664340845845544253861395933192296453945280292751033740998689425092401014073136025876959073903501024196658546501551901864941486238114641646621425373490322093487382929293958165333868265566797231067279375966699216112841677856956844790716652232746305420887426369202321182976510540127681177983145699025900903028931572413209119559011158038266390549825635560351982411266859908730723002223711267898184379994855139899053444236795958556471420808285113817713228707729166368119693504237470911226100644242106897438109539035716658965847436937863266071962993246617323763845982199233133497351735677624593805109962079741461183379581661134327015990993166320701816497449342759033699224132963299898864661162429758167452861238552128910724250145728606964642326122099821838713405668450281587028510517248383914217798116795864937778230234517664883440705716216959439176134648666581431850898081803991008340354827721301833763700807603719478767405085009991134551836104474415525243282565618344055528758725232289495557474856616983931492532751544094279752682777285992082624462637222875706894014710494155388060913385828270700853239572548534571362567763387150426963755869616290703141551416875979039171339207313072613011032631053093091875785207304133483866566056778224691093632851431549433233428340020553313071328660331283363963418469288108255010285367927696313840384593538949427704395407696029755221729321553146207385331052763962714596569809513003699992176596109362060990103590923463183102497021336135336785542866102838316997949460055032919698803478370031035102181531744061838335395391255238158021712714661737025071777080626975823997517026462337693474144061774084788593595391421244701190708237621203069020644560381114316024940894376103370873469026400596795808638419300534660504207450444201382940393129172721661869256680851070482356681480578131701834021131235183611482461965722073471643335507623514479312508796699554089641660330470321807535439543548953638938331667317821998479659853413572827883927697504926203777519459250723528591452723854056802826566855064106621123355336270267996772407841706806436568957634760461920124115009275382584447589740888731400893779021734049312301133658992021553251333963361915574908213561547824182687955459235213208256540869967895579065349191334198337764722650367799068851122494334604502764274258142448834517282202964304382708953996511197034349103264543907132932707660673599124018205317468511211916193848290282927653911346132691460838830523719820154588876569143786462931993367065311108835816786160263003382483564266485218455694401248348071237230005581484136513114514579701837122277651390735026065610347674845599377619609497918269515502157440612633732610608736564648616211428797149144075336685577417528768870334000375864693947075085145714477409205622862970881073930325556306476434904127809488266233975304519884842844709272934299640177045814482940491835911188646710330394130211654843312504442366227614394877552480775564327442495585187100979424734571393620791520850074497115479696417218596003234934668799650205597952736849034426934249015475536981641613015149237150614772158811812767891436148731282557002494060017208989327088790427593176117247616512718629375187952558772256893086117287385081444771250023083872168636107013122766745047782115566723222816528314598688112628801762140118622112078975719577601728896651796806627354993357603393944478459526917686546574139355779000394102071994534457365321264685348354706920695742121807718573913607686824484393201781181596246203601194736235219683480207587686364799931924554859118082823163417375586618118841581161030029650484169337058857655591290996015458505751146595896274754551508729946237341772668826687597898021202979412618679967303162424794641629620266621316149686319591536787552983916505227552713526263935148401928052052455626856923502322439251690921113620988064752784657543959256257569073790479575637078182114322634058298539544347480623411389189075165551386634564239105196958182024963110572248121338338350168566625441932372283030965916953713126675911025077175778843655107141372599383606135393866221601400235791264807916173899459088193768978576680702867206102020674096403851165728145773563630477599003509079856928892139904916540573683824930241225842210954595665715382439254456865624332424788429148359272292910153993877913200079579920044462568931909335501936597621072481378699642135745476076357024813368641182435217327996858117809399206477908741398215891992308936773118302032777556990810904344927785288715984803174675193304324071386232832434338979787559223768388880894430864252924564964778932715485888120679555973202677695055723945376397595452614989048354288317685380388531318870668470094782946662611886667490280609432814373320867477887769036092902939753686522711478824887637986450523803907984173740283047313295946157230459672895842746165432600328578296985590928332687487723587574951988230363054575591894783719335472189485150456745295437584928533123747742292792357189254700291923544744512530023604897422807021636471097943837176636903746657705474686048755663893210136180744379967066888761119324697390508693811474809942791549300345341902289424555547509279739955961752515000361238780405470209882054945932415264922651394288631158713686775811744285003618683184487715019471030496556842579114710117609035876490793934365297588913172383666440179023066115981063118655776620437470312912804423192077086035147629787056341125343330272299165052551837558068766926058100275296513063855413066214344729440220057744547770101229051255847781169445228122259903300989087044959298191992834371073842737099615422888089951074029659328941243067938583764125881701986719840618034802182930526623942997008889746537772836224458313847610923747482719337078479473602075129731777267526462416909169641879853723843727669876137637706638443626522417138988761675306961537724703262785591474397331711246701853632190060980497777511990914231512015579857221447140691630515451684271030087354836653226413548748341401833657710846152837308250749213144561797258945515399100424039422109079562999293775830668418305942600975611623397987048592381328888113124573075028651186301522253070556929742833432593975707554443190419900405084442663897479122258695891923692643185507111238597210588637400888874668358155032183429599899703975315105697277895749520153211530185226320598343590121869084898409987260351370816050083101470285397061387369361685635951560106244155845059225637079748475091175888708409431516215128111603574567240216131950219347353917645110957509133089605753346425116352968107872644423190587419682799325102924772818781755125283402751679980599371423330061688462084585620759097160434110927566347116315872017401758377138015409498303168364929473374410704869744397749030366936869476817053942325867280808408366594739372313888720904127094301035370565157916532302324607659651328531505921790873038608184694505112703205786810771824756772986381177906554985269057399735749469781594186297278497066660113095382367010236049703248306658445094450105764762418233507065088412598094137072610312136530245320900213631394835879477335754103490151674984402503912544069335307275490157023314005675950909310133926028456463403322954210186359413059681745453843397984017633947842604030783139322570688115603752532657870124209852929428544798413981277877011436060949486793381893138121265021369027309228791520580377703415548857582755891756314849191235852139083321715390351341147519433567855991605557299554523819818796496873321415405548706444960139855542382474914365396442760513357600703581543623692454106293340328190983972045929354423253614329476832166419750741043025775580181530390851213037825527652411644018325007253710420565895856450528117088819481433923497424960194700697479687663356378068861155055254889006103522670962129906375328675168720447688288167020694744663967514995519961544671335129078771004681070319449816641167871839021159504517961864551897172201788142404773020734421061212528043669074535105149420421217082522857000308770843471238409885574285294983944107211247146333947174112505513360794786455171499415728921869213763966612576252795008558777879161705409846496005739112338355659783448827113365247512008159845181064261542738457152700057575965946297754881703080341410615998747218465199213264499048988526665273881224599710169794309052811056021829105999449690013961312906567010082557049088503452890975175570027925078851026177935401207292797366868361582323963957769278679751434231819057250386556521639380293202041752036643524990570053509527694999420947076870260116103197426573475771896044384113829861393189280625441597400544740646057418977273989605322091124233604003741898759260933419830963947381180173145516962345571037649706117955258078979040277806787591598821039634089349393681073614081387046874863108957125870759904524740065510257454120704164749037427590704332114722849905468362864285487714446627029745284014916160576146328566717430907051359755904132718955156480949263180666143397632524045381417198014948571075334432519360768047103836593406194989515856739735118550122622097653136828814978058449630720237451767201255847938385936137648892130921391239975783937452528355926877926349334847925466236350001701905298813842439016652158636610334378489118081770118485732221171653226430313705416162138662004528208414161639659779625609342221769899319100047319275718136423285298522631076721664822893380623883112658200543398546716045271788606449838239301764575465707843543137273744678922288725153920841874672871435323383072392423992377962552922037113422985566413524688585317117498254282732014178265231078436373460816212021100746955157994154619462048437913289526425625696674834163624143821510763603386150102514208653562494708900167605942711770463553298597386957470460561120704310316678862536943470773831084442573492244612775119905870799151545053908238961411755648250533964751587893508662149223257762472470960482295568326265325232892904564882779093281766875076683685930592314931966656258818960193208740858894496326748413047834998587584889688862688134511859840003349649381549204581934093746462740542452302570288465621830497163179850770034723193266781927300572582135218418619686109902067558691904396246121454536722556069068119017615092327062781848724957135332746183103231763797638394782031043829467064977085550669965612850078853719827221546654953455929562594485932241626763240075879375124594449056022502616107950244146271032916779449806418463555296396054077945515339876003027975887976826596713154497373405726714489489272772499744611235810909760556100171218263533094453142091270574780560251498042898873594915214329667885841754462300807509963251562757496968397394355791424194751442287087323776655194652934063495696263228658101182623719375542570755446005229480126430388296084752583299760727213362863331321684091147942584451315987040285363102988280547941089400696040853063817609417493816892465190169393180268963477188371538353367892408383128186315830793513858047546392488262041797735245959644774802013483307810412481324494442562580541445250457578009211565943726808412126871947513977436447216569168840901538392310991352022516657539899388265384311031504623862500884471261388417286479577948459866445621816188567453819543803806048053549195801438471206972405279549056689611437808540646486820306375384257987015038605330663451507593036629374378771982048288424949368689716881957799848641438708083982087116793922444736269152789223313082058086143806729149434261218407593058294850405001083855771155568398601630841326948980730484052311886363964243724731181121874468003788618594959740239441043880044252787679826992225167015078070937546683508051877825764601223199203740364222491358343684047996091577796129734675020738706801736523387556726226276571769211579143914351884963936863204691424362656051095282043342451781006653304466293289579766477444260157836517598525914896485001847344385608230789854094064786491697288664927128239262481923122531604322027221920427414801324920522785181868889013328784795702594835090060953905212707101286541488793527304668358703714474911863091351714062517582166134405908197092714539355392692274027108506341277904808634183425668926012020346329973679576303889274969487312551468314948065999445171487203997979498641827585152749452452534228368840672448012122772877130569347960849383414692568549009030370552159612902646709871388234976266144417068420449249940035569290532657613680217896924635773159723335450325317547179696711280012317585316892437361177514275632790804437332717040903524825287485825154566965070036031775738207547470983540073075673559678138695353745514403336736310203405833400055087109072709971745531478877248666595143753219986441091435181126596601157070638267155614419295814909181329533561232530728140181716325953465873967529708447432556641803640149460889898742727417043091388678117980016726054372063994939703981515163989902263202163219224845800101104195516627721112768561613106574169619206488568373727663898626286934537362249656210635251619003923075902135421277574396178389694428206518240091044135018598768512194109856731790713156093142493445267853272767165034765346406631902460896442676499067496858627747663552295911816743616797474183097592609258352006544224188834028249086939726817311835964711673837412106997109206406476642210282104804609503053890997514230864797468382017471831600691003979261353500040377795933552424329119464679054038416875812261724432044176167453960882860553073641230280436767544912609298659186522817618374585356179886060054855270701335466226377488777793416329896745346054374047239795986194193619747484259520309792570769922050320231277899827377734705427982343317458888027086489906711529558405013421119180022510458965457459508880965551041615308592243929267568179834836156028911999990426574935600983694437415697595246151255702280918323493082390752825704436140154022906878039342215337548227087004053452458986879735829085447795106877202138577259531827560256216989755451862189584318121229211512069819976876172991417722120433029621193626936287616690103623605304715080626161865661661194142222460858283432515156608079813118468729438784214993254892278672597039193841810929157521926492722104702549931734132062297471253088600805133835138860393553680516261165475232376929421555385012167650479696941694013432501812676803981780781263419314837612171741572307062423927096665166937262183564590744004669998893611767772658055308277987842284080364215154871532969417685096301115828567466451361565508146873659616024201614239791537521458267512896237108891415095467183979329301513682816255368151734456044313930950696906800638395536377666148840484505908261925819847811654974311375086232803750146642453787344440305146700631656875410252192930629999369264080121665598761287225254293195174097386595232201069982170645267779185938133107158322177171060928637848679404207151900278671614058321864979533569580757422409114900779344755733985315750450854153681221099987906557418602000190926910751253280720350921590306033999953899359750752499616505708266326733213022407724243546114725785058686340524672357301184681019390115389686847369585686423434868243970955903315328265271260667364842298891715632080483005209146203354226912718002900683630716863592212312108446967919077289769055037826035480589421131445975811606343447157011441025513686344960746532521376736712192702245285713616613448578155311414639771205880660334599060556903659804600316053366525274531932605014556861356976199493560860284820253623239529713489639818778422347066070859789577910301827658692772034857617657722171769720105594235512875014687082141397273262769336621097616233036694040192420032620399429958514109418412854001374197232400270070973488622942190537973972072133796580788090374771514101502592688659742665539994404966338840532337839280869326385936843743989565595596085781304597689711614969988276017633996815848576436277536479555057103729395831034736710164168198238194206451508300392333433531741663754107147849844305525401641829292265786231110759006326484024035878770073351148605070887882149858038254259314754383773509174736367804566962371897697626209588475985968883939895198997355037346868892290339668169319013396972077161234852940561411998614503412489310384028748796767154184322816312027981316482217257672575979618576317210828974260412539994187445326654109695201538855381118728346028085635135290135377299230278811343605735494697260782110452371042697980670161149506141133884452320981596093292984340024980491779467271447856345013061897169692400580902134501142429280837520657750491527238429352146347625482009805627293639285012650896689356353367281237821828606391739448579036186935257495466707524400186082103714652208410389635429988633833474461476857836713975382311440363038140131228153956464205914180858441457904106829377496774700527377193375690798357506620522271333700880356593931285570614251572931320016571538148142487184824684945558436626978648067657176199634800577538783697615514135578947935805414116457641357558590020353465838397501978792269499259149711323569571123674984905605084755816788421799686136834013530110426626487682280731209077736463844078439145661353411979753524584430219987291746374899899201894591055714062596116491391523869828214894114826549500594909633448321262747496349218904583674007196184956651509205456925606480066402801560230385223287970269798055939674705655406358934207711016375773338291637737200276403506640659219134046234135303196023956206029561851583262112562702692485513227934156114312137013810335014055885257566073320028768982970924476794465647138886773009261159609270785004348019832911705873197107322144651790822707738649665230654165881635398077721936141209315731866248853732434003423351387856356418391751910929750241176142387838037654927625770516694335292888018010647745021097304143874438461807057950235147441498081877876691746902122568464059579187946953235717978405287512272690087979928773152645656123167495030325710034915450039203626844177165433619758716258002237547339193487553733021877552483160644569235142361714880382807408094502210527919512748407279611922061730153124706003324036453644721530323501033076015146968754425062928416332526632454547546656385500813279967206880680948553296286969374640693569939801328157270539404705871188501587248854084857165455235102526267985094770885765731030621422206649100179396528789903524361846296276752555999836942408667500788521932332362543550959675970800557781203384692876081887753078242368234626108515097423727217666413964381988339252502216330701212154785439695305720080815078519574424615064542198133953443466071728572973527775422195457053063779239588620037157169819865521652790640846374966778376135346907651510349525783273499252740775058109883142216018267196512734586841845996564356607512013896474770783854253452084829838267139321866088483202276506630183354190852665671503090795588132298447767978816699356162088720963204628027900945213666529533284174090364977214636411375823020825550115585542959163769319129764447612638537127792032280182586275675175862988592186453644812663404345644867167388790965122674372867914422756225767723509554850387500572902545101383442369180994917747483803507910892909796872089998889797029039216894850292315723490246133935070921107887294027504979276185282828254610329603853924099355051204284808506178341705189369217990246143931864375202936106826764191185868509817346851535713581394357899502594030906850560329888510537714851691709276273531615978955570265650316248433786729103159219764822349796034883391723902955210036481788777018120391420340973494776445588764241032539163190971773931578285340897189881964019467479413464766446367272006534145948432804699709829133213586566874651564215699291655057860593549325846165624290572063568336985484710240411585176869500988585124179000178553173088166231893700311944350904550874851408248501585965455575361084663901065408657974902461115021871249372371073455653070244362887413527482566473450651852155523847117371007366678712861461416218264405316450001828689509065530423543165901075826329880157974898328379815123282073128364906342677747486794383310950461096758580487480937138353607588823431112601872889932864487066368495349802001557037268254606585743007498424749560285956096352500294129035256907390920149829730268366079464658519289281879091681739959613517712980199114642125704763205637889684208698269170834728334982644760275611597728035504984232645988277213622709876987634216773574447570098354857187808270846192359792841942768066581167923883583894094144737156885707368323350301675261821734576928421419672866742189492953826064952486703734020850128553819664182889743980478278283678872084302942134658440126052061291134998212131211960050575615374219257990952284033162220065772275048885616619280337628755845315404273222740357015506328782529623473791819038068550700216081129294531338449888518379444446970820540837707487440059469127762678785722010068246795320885028165801892812690424174699620088426324810789920530206850020287625557426228275341131450311012922970341382292600823178119576871242404805332273301937309634964396408242994793077087656662848188097351785944588168378798900448179956769203168628150656983481348282563784477141159121876307603674310182153416531550072283045203141986526573371053111142373508853331485604008342940833853708297496205339224140251134815865264876256595458378854323522713984620273308937099947416461742860196524364205090959486492642292815490804485125786386971338028431013460051710373381376441316019528227861083403426831814441788949752801240690250903093037578203644640947964117820780995488659477682235276671920214242584150512899401372428060830748534862840866842658015985667793829762703390433322956264478605541381918864197404283349072729923731477510791135286824378052433323962573314565568850929080459439833716180340747990710800946571815941003406000506442063938859595900560620779548262163777521944921853774411402854225756299042212244068368045234690036515474409317124418349488065022881698130614437324707975643700957209673883229593386429693664449042380892519380800086484435973722937644483957341999469774538271588487067991717982419273207703269125928153861486454427464972948292934434278928898167432643891149997179703402714619956211784871344418592264247970425448586401207030195982008632964989289078619486337159981194381823019239766870795553543752729200086690198723821606990530660865897223407119323635075571711355344893586262193099280851912888560221468522655036683790646063798323990796959309504220167859833605761205058224526131007173812028128244114150319153017512857627625593951325362619949147352219872160258424859474075440606270614706000761067986253971298269079970265241442872199079578000035463682655754905502539911487738339860266242430208212023428625440473734963744324416822706257728282775466282360404114387827618739283696460219038017808317683043875071767964474602356098986117427644039344354098360704566877015705842654478003320876852510798044073588301808660825070155249178871586644039788713140879427330234436247437711600894641668627404531365541735694109390912375396965142661970434498095463491005670302860031328957259582279369214701435291309479584013026900611627300076749745285307120851183203304996010771032254325250815444343793252934241976409037492771157782546435398788513259289236897986901030817940855747156192226590586598577717583307247817361413216247912519667364753638688524596632840335909671448344135779444405383787050002518561587128424013273615932398986313784370296197312001249115787953224468481141742372487740398213826600734227464858987311456196713279304588809178144936525762819676046024593974574295028815905836679091733768789119233087251282330768630034244439183042144084878354980026052614304814917460156690679548519588145134722115569575621231367691983981958101263327628296191997254056507339525124776349576581572183931187811498598616402699121062918492943794426999763671158687990885108340249871748090218460708361404952682151613258950903972677734206480162485116133571258683110839288451862400129323162647525659033411653379025747619236482201997805005816068903711598861621034556936535935195310310285537889467705069742922446301782545183901356163231452361328425478499807943954779934919714366538934696939720513245757562390613972514244402832219272821702140790725125440718003405424711484518795978907918244925955708135561112993227362953225275934945277676163125177056265608147790514728870398862743463528587105611041389389114656525373020475640065064368457465659376401999252428885565904610634022777491175390956538686427030869066325006526437079155339854980731090751605972144854094506292242616509510111157274313265687847847290516918746817885594394041849845107504546583292163088124300507925196058213752287304652898510912373022289966882993202643132826295915971344836415294581108440462721165808916774165793426521194611461062452530776969074101588281209755184305477841154293913623152749751565576853621173703498450906797611351986055611142974941490965846396474747308209028315115334490711153830559691761863276032604393810327926422656170182010895366361600511522931246588041711151595085676310914509295185344314050378117576022953889610298144826856369060556514313212219053701197500790882931328909265648697971848044201974553482009360818240065887531770026600028906951014505027655298376363768252802544383890905144960487332276169718612643582349700119090371923317883264172097915225341609881360784989041297326664510908831508689549498859123686271552585949271626077565767063050906991752925952892969878996310014357482423880400365109870459593078998048655307268005171927700855159424103682431194308637180791650610108512888510099328729285363174226709788109319890569515382659730886970323209918600778118345328903932916439977821001491975377032541164663398362442136122547893029724666151441477639678415018468557494484155452667676523363385454796513427865206588319107060201300150265673139697976091461920357867336182537235511991450957155576745646288335638883795371604014418507959859226693102875741816044260333059763981539164779955266564378832728888448450853661162030913860451926728762043058888973846339327910700060251151359727749864862058935843189390008709200458065221431493446393765167890143988824783966046973063905829793422053972364228084022182950622844976341676927944702627605190666179777452785253984366228605103167545095134020875376879632075007810516176322554762529621595767737149362334576290647876807246459839216837325171912268076278928633765924123030415293341850887463210646614850037447613835657955236856557107823053416742551980297332378781271314908454252738446789425114339437210214774092017865496312115591485579357438513005861377104133851028808446926508369841605364441455218639741290124220746366362818433158127634527076017385943788972209562168352934383448889580497456016569044017333833411307877022777339679090702153617121033791166559327602420399682875242929250981376454751437717834440908692602124032419190784447580904939371712617917517175545725340179518055759783721724390530166466738042802721839757432047306470316207101658440181049360914476829540741794740010993786529002352584703865213602815040561236750097050705424301708294641369448791619425655793438341677219709301384948695510273091814290786386221555422027651197739343652310828159991261850597768424172920182821539330065583211073220303079618076036595827345472472381531472550470605771274139713584785705984386581720515319298198240808137762352359974314256785469879053474243328951682623632690227785392066723638087239921145293429717871093727883212327805055929425093486938641676465254135837439060548462845387528000837402282950682534095707889082785802933224203717349686404716208331661108851118976189863900642852745259811272864854060520023640587244617559219546975835790544467358038547629948491824831106942282587771850730681621775004436249271181473391736309352269153454053980188239278122118926895826356706450297882327971865229162790975849843048888353437976262009572013753331638280995117663329729726854390285877968618734076738632435146787792737402423495286863797747694837536960360915551160627849359388032363987394440099150851431422100504301327517602669202066092025456758328711861015145652636575799943958133689842431337271429752023171723962706792640421305472044997130311283668077528593092204117024396942405557107002913325282999902993780873527910495409501076141385901604885368185593809542389625754814866768831544707364733047603135008764567114070572142455676084725380572098864432780102494600585574856870206873151342299118364569342390326358943127181389664331494796619933501032883873786327949381777336493408357223385827196158988415855726080284321060056286047509205668657831298168624814281473629546589581082340693458128670621899691345523638638366392347953742360437414292992209906458661497547644722993281674921055582831364651916636108132459675773382515758508603232198381568977487938710184804726934413522110001039263611258114882659281517508389774698640931633481060472244139880061292934881960876120445037251353883817547135608398768852489846624361223731114463452691668553577834518041434807378375607167277093468414846735970221696695237436626800299025066161489023950650019433641403021310768818767590275818288885120856887721852246021235926760310810689289888753967777424616212295008312691856162822003429297752059789962383923787813096892850758425871184794450373295177233291023055031966106028334907437530620692137507456686525205680302850525164171020186830963765255862427234362643202788481327522623937292500141812240105586799452706349055767274402435927287597669471867699895435444755146002200673687409741972174190196710549683473241862629459852036903978258281213394278853352252552278040553109733265042540769967152118327085261687459556578115015784792036862877683325914078641780113235211215946636557350813751842882893777744684753204874346727435331636097705951583648366228104180728038576279010895116227422334419960258369696124662921386426275478134108822734554752601936527912361292886729904817695458553261296287482957184336602701666677609057706279454821598076639531527036582072442434113101401009000377456550336570578927633787687049451037352446605046844252870786424326393124752156155021299223379980822765408803357914760717787315813676553468892331504761646690380034771469672854877213672269099612146639632712196807635589864823509070314101563974227154614793408747490651579114474515024833775775237119887717996162365487133870743006465635882374899680923823532453467853612374748841163469700359467205769013286247373426603630485484961434086499988675939462117849621614274971161749379180285263662827398306518865069472784550912827852471003025244407046614464889503586788249764139942740666044167014924503073866399353111055321346190598586374091039901934282360856054842918587360778646528666935375801534940863791006956124337213202501036951173142753244093287115713077651004697530815459099077746086780492081773040989827928400467438301877251404956059285217045061135887004153854411714316541836260214746467994540523575198469562932676731323121021618644418778570540928154343442340801743963821615324479167852423122626876466619258885255039194461047024878058040457698873622758401345394524012544701834193283212309785376930636946253035809101910712705572819801721707479442785595766375015324125622425551790678949856710832942147834799252774700940572791670893671716151297134771898177330648066900744181839418326473281461381275364238758117490199764648413562692188621430427320991225559572471572893074259243094988928400171215028913825949889253803898312326704746989823005095917470709398164429969576458774910936520821742322805560908164346549205540544068926803340896393334012504380671113968991212467485226860643952650299365248349719503800786424291189849838334959025552747721702243135151022340929397502611436748733567784241728230046047286066636047682469984859241700320820217570148093455828570064005406228196980464630380422540189567682021652608227529025301871969430859055745765614376692060607201193838037492890740090345583227691650428297418413084892056238032344817915968342052207402016646610483541322888001530083617100122402729227517315412745577130498582394067558336930973004152765088354037338704316664981677005581582847597569075995073652509738231171790098411938434811695895555607593631142518453362354278476200431461062898948342725965324600431914691048379468826772400368705293000113642172498588004917383662538789859290802449857814666035348923616872843881202759039607444404905774238670913804147082835080320164188321625206075896577418958927509407578147702123449613038060928846312143687711195827812170194260642502281739044795139282714718130271705724763202780931184482241672548057905279359479813528857460427763412902329030675306052085872521249982968968440603013101540186406949849386073268734407207384538067550942251840655407595039796869135528578794124139544724055141927986116622791115463235021966905845320221768166881429426050738135554042510630374346719254199353737077329111579920979221812040992619717628816102257937336512266883699189776288547959276579135186538394656694374462386897086721554768081963211156669936838573345368837428338539039407920008229149218767468793739714922250624785769597490618343074174276401313846932669791203339289689463141686548442880351669437510710461811465300391368705446077756638564064116651831458489570831040111864223908747043154211406158210254626615697996999675902859037247975958276505352019661143180791268374579879535298408470018192923558984780399951988984583400575593328315823271012179681107375346685435884921860190227602250842158669150418193785444405231433207159236888918686016489539045631279727640783801080561966317703398416821832817642378563880927670053604295639108373654110468465301399158503948738323394523086669796955029374453293195842322963178975937481087983653840831737289240289152209998076104219427943189574454099884393232524258105804131975928866743052502300359795041238471902296932551612611440302449679883213808170577299635906151231252002680346711694241989950680765102491454793812782590371352093061641315324202801869315293978179001074630456576985479412088109218889127938477042296367167333384716686452704678774867384786059133770057510815770097421198612714932113652387588245138926805570343715361452772630427956203239497698867173059313196482930555590805236032090439413455637915967890050189792247259817225810772664256407391085281797418722048132511305805428471746643701691868522381771226334073261413914698106387652911062471801601720611485469772014603901472479162340557184128490394241421125672740662024666334114993378972720147215760409790904079922307883737456865878194232397211818636668289818920454999544312519503459614632954432464084717114809596154311204165403845686614177505588857234206778467880712361604375481659614496286667294190143064749557817546638054073964270510222011534661032892828519884715156823045290738970716502241364433855654046556795898068123858831745434636210179878196867784172640467907332864549337784719146194920504071342663180040445105623228949539297171891398751446196467618359931776334952863644053622530586554055044129238319967150012752355361690451943721755039949162216858162127827278798881014031644438731881273177148794735531555130289838894834595708254699227985341236991322110568499803092017212117905907169445124377699150935382446114104908446422332780145622436210184775575380321560243981921187006737558802420718195039973945396750966111915656656516354376358370489531415915607542707384234709903151911259753346678235514746235758111400737956546953142634054244182090145278953009903738358508506721305957449941464105778848374690294260440635990422795860971057774502654156521609567196264782164797826554063437595072707596770385996967536668692055452884323619502740469788595187322196842888746111236119236122399268157089666628043974163384330937924433482734589281012414977199666286309163536292758014526444752784457898288219434930266313015583677230812416198687455016841909140296159481755169426450612874603891771081415323367237988445570935379435510357472125093572053364004567428191725413065869635216673033045682068772447509071084703818800579681515744142454117259327463156935180955288081660953839435561905392771884679567477233787723329135350181246349045845990853272173768924973007288573695972937629376383936807496373457032086309183256335077147311178915667087822651233546637139020989793970552536038336571723815729054566031969008046501350734332397032019310434482396920575293424614520021912103057644985058175219923310139316289331570117299898974030434890082618380927109663892228942961157500658799193993562357032378088906091932185977402243615555159469069591840282303598069135922123402110122168679146154861229185499074033864668900936639516465563621421750623373901849885092487651876909990427074189245000260884924841612379002872541465991319921417350981327439727520726130164603555730293059728251984827967855289582594096808343173822216758287104422216291245458309697152157477402623572004431815407870851565457874830938518805911692877589251049862931580162606804308853092457924530717979017795394223665797497068929867085247776266058118235169529669817346389865517887088006622045280337924348718704846796008939243539669197818537050812244406622784914023125076484179620915505732931242376124736378191243900839609039298428529124384932954827097059517885383369770129345141814717234098526024906146857661682129389419417280664657670458032946071652352116633459500194498585734608304207983954545238605336479575096081559271392767334991406981357840821872231409813077726276311210741699683275079001327432773892675845665091804113472735177787465598700136066027746968504291372423939696313225655203986693159836307990355291838576785269190234020293771385867446746520473419190411070651144891072778501581215006298104993844980275601938346842174681078390591463593066821375965190538454719537525822237982893157568495775687163525980967711006041271545670583149295362792424662278710406532063505362125770857458463959369206033364402251349992960635936143835738203554910645791264142578619960983952966508861518712006496351593307660630159557267692222362038696808408409248747174293425149090476420448498450674721860994058901872223483977130120533079375047054002009442726091514736410028973349307540907051079619672798222807147541270010551915148131193676775369585182055084596190147833334423510472372580516484938071138284364278575395575114014178411432065089411094820307625616909409289954389754380885523990513025050723270599588907638496856221926309877697518927831637714109523578761805607110787056014202261601770707786351097012464066907552132207531847989167390750497188398845254774040812697739526757553758972574024689680626498114821279429850815987808296825538380876859680495495763569740097690011391834016400524620218016150859789281418776545201901585972354620039487045414915971498661908105317925139508162256816652993181022693786756291168743220891789919858844810340925552530908973412336974436454578856351124048986334211976818313387900180612589090826728088543828587092829545056451710209605341572708011915149228379974565698073700493177964930402140099181530661874121531721088651934181368705029514256325993921883913638577907306089566230212796262113790194317105004769508785166553780010728888374363164718114940758442030411948914159071197162924757514816573785638967503757795061641034415943850708138993701504624252618333420990329493796266867279759990333653507630179326809740850521029699017120077662625543965491530812202828577568375259319638499715169025790907021592935598709059744918699433349718422352887724123943672775753517196532337122087663814707273812150404812839887129398214666947490955038673116943469546108943811497338359591930302632614533238959175582630279992793334651920383576438149954090158481042088232821716735812764858828462006483769711569333562151721746993958715075103343181066198394156778055887200261781484199144276270450208400365986348128795381403189836379017237512989580279605804854686977760436974054106033218829916900377352361665609947247490672358185103057670002183875085093438785374935162645697227272294277690084710472143295791809359708113351823284978186062436471345733951573463287399701440104198513268515976240558328828662665629856306978434209762982117866627868802299420804918844738949053008553481190914138178332267701583551893396331301285972279341200045678804414631101601271248008465178814998253872795554409204611753534234412596239883505896551247763570101003595192790595235397996894259389591173818680500825152586534716304828852251536581488925384784061943635923977343939783082025323231280556770380222320696428480726638404768575160100929146065976957826746635996989033003877032622199115345871232898797268854879660263306556376790597368387267256774504707489518223644395432059599759783268576251371673230655826841435251476299735828951214600450392568291694661691421663132240079283099478907394278864844341058314249666156514106166278561786663091801550151325730202998765728087350097181833323537725427083800762011679378292764787140024932232108749770219997034557188788826783604170091497224919233743807037323220612142167424005775375674392053800265243029524761282493424823233207939171066606402713797200854991159418641847808943134712544856253096183392245833828558780207467060505365692667849871775263228292833129562946191958344292803391886352223950456070856327989181376303436291338699685074218993288506024431112052088172420286575405992829510728710986426709140911003572005728059233506166841184825500068135300000555945448246052276250086621720056043432542667286132249654324556530853992300011961649780169129703671866647616798610026156000952353103577114707753905627971972561201408461970989114917344129232254665668783186269062437833761166394201239250630486485829357579512189914014270852562829774202832633125340225731993907355938227073036648347920408975682677990389113059972231146454427044255813281066276175860779263172589166955932257786658445986995656273862135337651894036859476791212353971883275409290281832832148240464402580669201459960723173501882430014205453099841509813802423797457090310285530892272249508301779347180729008608947461663512683047001268639781432991181257327901811481613967745333902118609528020950061791962743043985752175000199768666183090692125245486376236717635785084792031227787494548753215339764036295634505821582455325411504546371379721806752226542392039689839030016453067218408076689616869364233940848418276588401235923134763748459127616170961631565465528658590461175844052777851085491329032491946601668716958939853249106356627161150901476824927695469147167833554298981608422343446246354094308179377452875871748520738832597790362149662567109913367789543366988078213065858988565468502784308845846759213390496033482191686302615402341335098478096471547303091198263866909549641176672111300936509989295742929041337120993206591034392820683087189501136186347785513182289660484389833607010649096313558815909637977766032961008251118495632631660502426585943996772047447259457203217200021365420916560245833801427024473984296027900434743029584975160272442661557286436352710714075424184019101460675324363096938114087825220894080588996615361951435281966636946879687003217920376752852244356731063821453400798234292288464002684851647717854310125244470891992041622620685537518837636719455547059095380993067794812684090725138672907165506711890735176818206050497882874605837965554543445841615285655022730620109133943641009966767246435551102796424599759292731741803127579893760566067295365425831918306725231949511440168316053279202002444096863798710335408291639260331303767171740466961936313252041303249608556270614240072497550871065600398544285094283541301991220984329591014363165199849388565146535225663324533854279723609539773160524588699906305700076182070170177513847246824723591428048636198342949627275995204729621517969113693247955540816041441313543036918773098296434968702254552001007507938603225462513486240071061220007673290615367408165843148303535401627660605298029170086563348441294257789722310806543723472431196411140924715439045778905633957317122817683781260012829797956166859272314197201416119617233357768978966267698946973865087807550227097183782622867446246027491088277480891168769102998392407105115568616755377633580361947206844756280960282869950563211343594397692440599546758023251455783130631817032670454991619112594184201828534878270839689564403624414147645503972080027117274465483068214791396531235977065659380452879600744563442509720132833850388121971555287279816323270334774508335762657236463049672886707667616699311861808006758141818104822130587396745322048576891331114673562851721356466823007949554424837178405629397468796551799523494886612990911657595596294552775649954735561140650561305816426094448743291587068883002141856479359643339662386030665787945116339702885626033523237857058524419227240388599551849250117073325316530598024300584652973407381302558982217963327114342708878452094267614968182608227049260710736544006722235125994048317527521288045461696787185458697238461998741434444314647242859046656406011530009271035774685619061559313340406932614538232630089527742893337710242072046108431365827795596222526100620971411247470225579206138037522890329073740964544579874530604005634658884797434334889801781211364853310137969797411322551578481497659635721104616317736023471639905328144868580711080705614791849306065517151798643247501415229529745996471152074552303404570981285172705788712380582495640037185006714493399014640342074957228269840390603112001674393440524635229069646544612642020408238424453510037206793777816558358992791047019758416547706993431407581292878132531808404381579616063987951036132209081753673715843497242843064053979408397769259534508538990065215284342488990498426638214041229213132903760039785324291599127735035159628973493241129731699140598919062737287671847369241316153223036366528858527739957650704406421069339896842321885126552510623236892396408009674289418279821267148213702518478649047267369890957696423892412165991144946725488194426619403084070004216426230622806562778683273397793617859495785418348270701591894207681384508809496807461962445055458872607045933457251659561003631667794847779714692085563541609149025474023748679786231595155150793401512204691793343633021808106649158165096243877744534691096347297136864400006933335574488992326680569229091065136206326723695142702110696927918182289117108045063815544140419650785318342178754718009754135129935226538756923546788600295521444622393235497092141315814902001198913027004219239833659591736612434743362365460903118319736011524005698965827573739323569567101784907736430711644752264409614810138762668287248323414754091460475293089715515804985743432999544887060690035399743880249482767864452063048573605716289506599823934379796413979337147824164266612992431565391270805177395198998930490663775292227105381075580920052676361496595894915764620879492673707967522201903139438020413998070372746233683100275027540915571619103977023722554480732805799350318150963723999018761344783909860201177248348176145270561547723868471317804705772667445165919617160048976444407933751968423463880113305005432022840071233396851706974821483109822818877938776326396059875592718403165452506496090179701175625322052394712092760197510112817719412847243910934566629044647016427337970682736793309640917241611656982125444553011159037024386923451948537281167594189969019747345561475007346414468040109951533079115096527204674258059644843923985504127975118855613034548464092771781598887286232483273363055583007309633770337132074531599101754769908135825376868796584537605813299239380522904798785107677283176448565753313222371831884829898219144838552043319780624102226147050616908070758918649391270526879593283259090789582577873424233211349162175035760002768214377914909748149027145848571122200276212460817694111291827601453231885028762268462203034538817830696490919685351061817351096506093824432926059346774916679375083095189490481072993235752516002402128457607906018756208298241669291529008819447924780805814278054841634398283850806972264183787629941216532512368114477711472712818698591915912595192476722943480360082796486282420431355585896581773028235681970663737545169795347495130524953947590783940336387562121620447313311322170517680324320180432102201495380157737394222035844928259264851378350911931722175905965456807138081990721676409676195734154299220360753515420778029202535330140178600702047334535713344572662199097186376294612465446368742493891004983160343732813697128900849827429848963047679173517194111619299127696634049427379801410941028847048230164877389340204469625011657221990797080980348728989520235463063497027701263457141820605943897331472343016969409960195558628992323350160904495144197895892932985081788632310914783591144909972838194176961618204634010837098442176772585334242778668162380113669841568007409714190765123971708225864402938089506052349256391524852143912265199789563677002032409608980731381877265553315600228202208262719049739664315172420937265987721461064529140015011812742465577597124985214957148971343855945057951397501955065031551807763426366938517181602487321414014929245660613910919983985527053033745310029424034181039143326708999314308022138235203365755817485322572300790298633300298820825011463945754490143741424819872044215744738789686521433848621779084295994948788614565835142106738188695478818406170628499478810525500465808640596384763241998124815059950724454467961834498923966892260741602354731407923969274193038909163812761766283473250516890016629989515999567094493232842094937385263697110061255190269706434755004148251832219805848355448438382634910137478103477658137012980657891758406251374429462877394443298980852610520357503689604044943813359610119963073411211505467359589309861525595359407340276216629496789068671474339358480927763418683795279338466909622771156703884191887242617809088510386156104465523448881657252382162615696983116310344517070652781813516954247402990148669064936792158205538568211270804109622542834758427741754852943471874852795305590775186988404784990933235955690644307509200338069149087052065982109804054103362663937108645308414579956173311324249422708138699805026685975927309389079380285108373297568203543174198809604530775990883713824968528626468468093930967167422507459597006272859127144626244660123590775132906519917459049876624409728511586550051183482578470974736866947500579979281200230941153707892719763018944742021059090677468945128791594356707294988109519804453140556850956815193429909509272810671767761644412725444318309246920729681649760870387386538797604382029075672819397800043506779753982098173081045984002637281533365101536765229275731894169993725923267904965017193916137260317940294992930667988192591823412269470761259493426399418779851525354616816797422803749215082677404038593667754411979515201326996853578138366207789165789049135095523530832109711973930329357533021637540043413068015017670949822688311233904355865805631060305959260404418789099528974706365031362138813106339462699759672223878920427567005910319859417906608058002753321900137783265720373797726028900117424920258688264914535736255406567765271447964770736388831349101900492470038093750691803152017643895320444762672382529716321423300387221509240346861042283724932819398221976733933940064690667249653277419571676059450331887171908131290746264068170289412722639056708356411267153728850832728654375058785997311015381357145160885806182027962886290442606733411689939201551771864921609168537195051838963178950210648382526013107552431867671263317318468333685950369278735135093654431197491809385052748613293986435180122147139839217955314515839407310905160114513447939130506008832388680627608047639798016001689484268349462024982306164677987702116944426557868179578175356941120265250861800764087711366701710466860935440557904366397662914739339159776873163159659987406985109935791562800560128830311941836175427155518517063604684178011446146422138222993703673963872775339388814233835108663861501439728829810379342783288709967380753070401701571203419450334789070788290016631436496859140455807150200959735932772087242923675618173861491968284474635417133891816248244587168361325006549023230938542606970043582534879039059887038217182661022139692590098573393609521606163463242021598914126606357663327619311389432334398588906924847717668647193282467911330839522410639377898973380265300674311221697344570750655071546513699152536740982731203456284112939633845839362776992607857205673862940773490766824938784363134753825613059536369587270801565946857489089101468365873666125055494984587514623224406560713007476297397066844697655697640552056143042739312519506932639355292025275308112093665133247161617530330644689451698931802829353854884299348425089709674473569544473838340329752954315634046109117525664570654766468837342922971072540896831958569862435409235593780967006097933294365570722848521198623079202106698134037079585673845993783515425565597574686864766924136253675990974585086866269439423968250853108473126646163273154061602394792746500811791595565909059964814329447152205720504876912075092446211792386988714131458852115656731856459318231070015251285079798927809033363214950690864954869256482630643723652735549582559259708411186333187138754128066541125466853955907891182227539129052698955571121156250768335763753721485387532161865330032780134849582790357359454622881235949015673341939877872422981902689361010495660682356991577351541936153190568746353767191325114311060042734644441144652749728589520699196340187529983873143780963971689847398607225474126323736916620532443440379985570293688357772159575060027185045985545802678785005582677268275340167149822317037467918923645336817960229476288040471852398424949012805536611091760194437399697077727141668300964972651164976235583883969651261797013182748997684243389560055986576058686018100460172733293954777517359612613200555313775500349403241855298223845783715755039318516516125812732799829050102747553465625514298536340005114841253056441462747660191016570940467706284861270331752046627316379529358567141049851199865689784792594650128788591644598849948257441566729843291395857330809485544918608824301457116245538577917972518641551714835434434825706213263071666546562088259986999870450973968422461897575051932648286539279603210935163262290976036375558024466854661735834895404127947854116955502859799584254723321616478843380183876862180115506949383526419340981021989412668072731698974276632135677715477265121026331225475869907714320885727761751731039386863342803679172592485088181624762487163338686201279100505352490506915518807210222435150666360198494137232122718116607594319892618592347405779751608302267571309919103157326194973116505374560504610466753131861889905270544714149850951927957279460349380952598908789793383801940501859426159692054911193107645101700706908037118776050955178798869932260021570305848359759515121326515457333157762349304351416619612548654488546485932754143975836168116022450748879909831595318056130358950034924799142460996618434544429223670699282375866474420203361495370060874652925878999331217469975252775123790188281614365728594104622899159551442105963103486291966991622757217154164922889643854632903583199898921248353824801433250082047251394603168581328128778863496238019631431776295086861365143629780957847087250868480440070908893019962620639097504682147552857207971335751559585020683510607626513856600120174293709192715869729116482428492022894214470495493709131451916442622846030125534797380228981365423666794632369047756569842098612326085387471418225845975317292186858067224133386434865469718074182191316075238759687534021008202417362156389700332466481768611920108972828521413497209017587250732942114875436860458989944648619301899518937515641014004934044601696016765173849357849337480156508379907498458284907364037798342708361735490837634263067136546738526514898226419987967469718742173567845890389675542515539796643239679672447983722556574149207324387500983082539968062607040655732679625672931637098034533241746220438745736400178647352861102793958023432873024626137987665844901394269379643535131564194152575840078400146163148091947702788585082274776170762955019977420507590356430747196028374752559409825882161629682424431676104881667629206687396193180251901347599493637070715772801253748241379750057176188800681659224704289685120624735351897427148929047401113563063218222988001418660177823657504063490771743989049008184119310664234701228730256772095855852701704492992795032005937445466790469105977836724801266349604762055493305818565887893758193581067142763492396162080237398039195347302375059810930128203651010613474121275856354042908638864808482328786109464520132651629321415018736466720229770706337991260427378342301586575416701043350098328476758083426226267284617797798707176241664908493103688193901199730590674097478227663706385607532031642502785831680379575666300395225697685859451446863090735400655634482348235790624460824668231926691374606896404081678884873540698828575256619702936485434889250777054291288285875168889342782311580730456141846848675563294360894166160415131651049715309736692103259276203455813136864716411469808821998708165209136548809018293595433462940696979899997171130904405074746966774556367787472822694997566099918903143159083496661796487321091467500348883246090319222355177033657783044078049167810274475510445591820998423346469557187999179020755391039329292261339641591128628714587572086497027280320822831297685716399220538572998444299169734344986333398519195424337752364168375285315470633048549362909361353081114574409288701041311733060347165204493323781282054880561737543115888212693835825552128060910800388254583965049770800960577865823116837635820172107643656759824945140209763857495302249709949532112381796566302858834303438412850227241356314671663470213490919110475830807126990110167643827887193398490288203168793829272347868997264450048779957177251698821062715746068847715150145618943707222113779053064515536734719174545010641301214837969477330364565265364979310323295728519264181785059665946847505896694548352101958442600210857766874381045709567424282721225144416456479780280427336364821635351432471736105079147404857806368353364133143757753484382524940418165081880564410311385962240813720414252007537373714558201440469504039888607564887252979573137053034185128144616390777466631946485800187355580448475705587531499936242005814381622887260350575067266192328265009926116117065954215118577593833181474286307472954516736703219766843807709228106953835432148291759723569080640105323745164410910482638629748113791909506847403905619953669862371617399465392952567521173272064271052788945495068858470896803488103687178237363237385991412146287062718493459048736506241090954806719663472897330226898629296715061348716061322635020664206317147283217666195010960898415204185174375688679578423364090326792501315808623622328730716853218453543547873563394365176109508838570359350346975633303086147109026266990184275682631569095270910935505096537306302550735446281624636200449071982473957967750312515093788580637649102623538809740767000247475646741799617677384213538918843176284974516706847938130915992422600433236426444633110692924370109321986331433714370208032851415365016846255411293299571971602074318077406931866735652073494163494518932495867119537026054866132564596795205508855019696159487405263234967373722879199599768439646623443279081868052524853583421480435584816106163605847494918318938903963200515221239725707832295094851211234204341020569784144254411933915406427508869654626519890559294012541682790599093708095595339880737461017796365802016931607838351879499768932597761774124092114896954142595584871926086283024599072302186358350236530692913590056595412837204843483681407116961006409082164657757330479853214342765333513159721286073528623042392460046015035511093224876074105976459290006855227353553181898800047237139817735108261009953218401410393991040889533075347574123331210371305899746186799825942242895642622465051797727087669025246051330380474976446914063116030058268725699796801267997094825116523414166331558544842652205648756634889227350013557050126547216919837711713537597004865727810618465205565683080727026365933142533981766761532008641949523630876753655619405313331668156671106077572038194477141694191034160956897672444022069426284218754712896690764534779419908006479312320210085415719437937995022735668370488044416390964474152732523816678456809874400869250010999319438639397147744713077236709762388148185737308464330725410198013919551449378020372612040975466162956523274039934111252109760137375028353996867936255060364009078480997590445756968157049988467208752713221034061817140312124778525786033467886964224652116818107651625555525562258360686514430407431265929291040795402899608349646114437665331351040233434397576207717209307141524422407671138654436726626202121989225361054217716605250327186721022521941101456515550696087773047291124193970369636538474070727386543875660446456408718484319437822006364758078877400420107234939950132059973927504275194831938962472961634389923571806508841403221843040688392463654949065958690458495006482246449752268117840778850255659546891931203398052196609474430298309691536580674263829345933271744885022106319730522767710626278404682359672322696216568564475302057978079484051271419526285395446834210989391136698165253602241542554309801000750022392709953061888172853703368246651370646125321802913500973090181788703716832374337718317024786027645898980265793042073334208733755640618967435090123854715683080215208643236322953038628546954244512721985824413620178720037551976903513462599299341889173991510730427336474034052716586618591087336880062299609342218832836200163681292760215141965812588048344833307911094206836271749316587876454805740251087512055059340987039679436086579538683732580900594544199588692714918024085856098783739534325623697792776577678397969922648371712358164417545999350401996232990055484186892256045759677679711281886009135298583741079236522090977144089519862371505010458529875790400485509528949416184913775547241204499969824941964954684582050418004720498371151307797984060690961599888539783773565784228935337107295819491426604263390836677182884807208748045183215691586961119694301895829744875560546861120207958956509150674622445222905822147107462322073296567051554833481792832297593647714468755337803354802961568272195974085026783207967419674120544543095767154828306391977691124259698304791676083737937871481373058156250038003796572742393958262325545307091402144774292381363473441038531744224122757198225284209763291915847992457349445256110486528858089292533380280980297750709463012930806270631499782302042943914659993413411901086408963799008036016122886685898107535675856712055716977435603545179178536190648154729183031186726591765267756846676085640349196597090973181421460640333329895279067865662408189444547503472594572046068994358911247068849351397723349130216445960621056996688756354655889002614520032205509827711329030007451404518867047095364285179779462085106483177768796561470915720504441925796240127079342534259168097173705435298370091987159694319902282302051984634472634341061883779565572713699424906274210108981201773341387425034983899172595820611548158228159747141876779557806443640860348134637395805080412349836242007071570788070994930370274946184126467885783920808759177834581034285228318434797989475649375244864354033810504137379597086976598801006631519500568489151501271840322260921722680778913936556847263739056294733246055237621824270616038693555033666889799387493737267408324966138851773353112481367530871324013133708144522745449645405853457269038999862838446713301570139597851988639801393667779700290778682387330488318799579719984883649981257329401003578532838327261869417792691323519325180314041471392955735901953313008856778019846803850404394376474243324592417562991489702054976571455633839979411409104387685563983498855956589453293973704357888572732789868936834969841739491189703021104661548314142682545746294500079765126670225150569385031793399995829122049028724107254771489391266293922564239476051855494595069829691146103741514058562747917485423757669516761156787648934440411615713949879248545090716519085679592545260443388852588390497203631193668296127362535530708387263925290651795996885098727649383838096401660475296749995091934996241841113578186520622407036541452046003718954970704455770805471662437664289037564466362010696742198863114885361500665278820374207602143854381361364963877644745606172064415119883021118254855482687891934224218698555921203855209308856199209071410274419257635783895535696661086289186439590184198765607844040942560918737139462259148995541691728386365452581916732901422105762670497318841489920563823565467895955083786226433238013491969931643639948511957662076118758010902457253850961832586786695503452916369950969999504984394220648840083677222486649557757776662650419265182963078398599576096400148098328996144622021398673206625019376129702199288450758100559003363812472426529076909836593801390025011996256960572085832461283294868792290042103412034551453724164533468156988815442023566718290628815886272037925561659555253577651779418355255255891867658700434789960529625476971539589106521205681692047724862976431957648476546600773963070767643818880591086822211400709074645667866178787978967340234304672534183077630140358232963599600928851437298484354568121843409767432984624529301247858073373565559691160538458054682263515736333175143958174047480974725162690498749316236268183177152656607905144445674802088776753772797504188428816670564158873835424066802564743731179145619695812854749978764374121458533651487424273220482409987451277758380936023708116443594532281871830771067683750234472749154553564092831456270155255736030685857484086567641017372946627393209787766361512306870792439212770529192761173912470786044995374473781851905377127165473677965997475767181084725061556171672247432513832643053483035942779117393105702239513948389995041156231944496926389482813154155580459037714411354974929181362531543645124029875520475266887535261321158744242063914460657578698348350892755435838380312606997541678852442141969637544874528998585617065458473507096969909858621446125314398981905061081513057675532432640563519286010470063867032896976021268957813351772720118915875919202415355558236853289526260930513758009219991661494417413626954622717176402459241530161559414180300457382550947204923637003664138352858060722887776006411553057599351477613748817814677873366645786989461323566203124276404926205865376457215314413821335290140057550287761625926974327277120745862213275582348267728609901382727371835870261253566389878880749910268731817326083962642512287217135197265211256477249809286273658576327359718860567737120673758814232422830393005189161327755287455303697779381948496789386121728628472950595746194218641628615287607923595106766969785291438642192206999280341143359045889086202722002073354261376629516254183600544820665789608692197180952126811196848606868043926594797992746396284326137491391910215923651492519140458307149331895867456730507050216486304185593738339631317593913258905554683722242679803604993528617787190877537739100833504926681827768475533664522057727254000451142625686994110459629261228576937804794751856001597891165509655993907857177987929209407084909394568271884065556092997762866876766461003502941817461845466571383331997504492172598137681366627165141333155097469589282290540897606031134338490110848011759430467497153697517347895270994095064139151650041937011801057855317556956772733305238059260810719698900089204047474552748370790266853331776975850977938733336003140976001127864682324830870609819082779944417061338159082774937572767427802227765554606612030838154032050746824005457928211364115804434225840055347931982610115639357763233160436709806213565831923078492594632112805978064264263586608450522662685894792015262502562747026849077725451927339562940484362767961770204007067690819027048002645755367353268926560105175048474809247708816643432466760076214942713014447290175245284943501772215320032859324578409734731377355258362600143086880474569074166876442516144749165761901949638116614562229725197095019187508242273455960151295591300937360107467395230326594607059942808585833872214024459395297671226485977746918391142462702553934505777969987236977634973325477345153125844288105820593421269195235738094213086411260073673183066875205042588882443479412702421435960251284076170459490172126850201040046153250658363133551476770080069895688983269902245127095429234069830304394924328335439662577188615160553589850171771470059311108065841865799337498657650936732932966013071234851534108534712168383709270258492376521064622985193619636976327348478598437739561303849122162991010494702086507949392401434600801347744662919198134838539161872922191073406930111167979032540210108071460309564145625305397259832056063387014300739029813340669290492140773949529342476531902217044052193789907731027257382484124698965303494916693016451539716740810645108693965281292123215235299261723804373653436092459027351329808307566449409454211921694200858695393627897239226850833293192132378765877373926108833452253185146525735331319015475666380806737784358255172912875955432635676411421723865277502208802740707895950205708463570388091213776262853254325535750185994676781913415429867858231900730825639162078019871807412926873601124202220454743658489536259463679859171610237167718127208865478126459458718633598536248274807376941157507134014983919042453807453241346221175865797730935619367729636367684313716562519029427267628220641985574584692371942235942381845887547037756565229081456516185465879477453195357318805241042397583852693581213002209738825415295064847887640808356887982030943659975439749696994143706101841251723932818745776857017940451786523535849906200265164535677204770651048312823862722628645603417338464455328497230018371628327410442262137098802579421331886964112265152447996601689602182463994810459792792894069007116299975054886569106902133078842390189653055388905579345920816911713341399052389620386774879384777544446283300731508217515188583515301987799174138808830161302971380074030674404775618384114057110597170987510506877714304812277448756031898339325519361760364093039010361984089719564723751365091257004326423435441790182119607295654453086129397909063651318922725854646808847023196897848289299688879187219658344103916322928558003684790361434641842194839776616274091145277542200938366315566971981437600874973053051986076919119859475054977325187036535655360385340793837652553444048462996488465359943987707043893495567319015877301471088694244484795592095959324754476864716132019181144491380335203225093959938894158523804608409695764913586266097203151378787297383048407397867246179664542182608595645054302889685255582190096049478614875528512535055365492358469099182575385763418714219922632944361679919086295474376208281337853081108070762773294990354747708428253744216528323645090567610230053029997006198095312056754747291491813841301203016779002924906520331765042514496702199696575787423728649956628908136856400857105726176313921889214811685785513133564023835008189447077787121450593856139767378553074905461270365779876323268109872026997583062405451429911300579206226081108057953596446737815423362647164880565786897547570182949930523496803977761797591033073529743732491841336924123863366645764838296919899462033171715058156749994816448640305993876393620913874909199326939646401413591641582146733871865722402848041122971795874179168647784845360921998280430469157366505016623559287778637796608317030343083461943749892978071908076294159738709801059576582867284370012460124228808050628093567555125849817541877149249612127481265730744730467348426043455892966040356555216844949570725861777806424640489757144490681649178268956671761278872926364532911608107139725038037043954947123195939341159834395560708675139928528145346551019858377906296108400380491819478960711500572706010478388559637708928830732265269321915977711661443568368221186079190473190714189281716381050993346691858655521169602368006985672629578274706671141836273039482378117582694336975957727105931714603514678807092603252583128511351506768772361883526242985581351064594502586663236638097348703596097843288073515103824454735426011309015344851119549750337254165728864867311676931374613312688534745153791583837313614701676427470726435574286798056732463653732105771795812485728874869052011911931986908572376628325280121287112873720135432228388879415366058982425590236044761194975714085533578749542735196791802763361919624175101441285052502104808912323709204388766406095651770751899382628385856179101720163407212266793200454385847519298495571480734176718921723377926583167259252684733418086086317250106553703945300746742727283492123819125329007760057957964630770069204458205322212244464928284631811978751848050203398205804260949058835751162874963000206630825107853105455522130972009664395758531184908152730396245714252393339328643129477541907554662583114486610944760715460917183682797288352464680878319624836801413932915942158614950233081256908385556169601578500158895601299699301733542410726176049885869175525143530551131855706372815980161139143730730214076737287599316073247147631016780782267012939968430748000003521271497193239652253761932491852097023931882903967102817490848901535343523144890615898238551784875841923901871146560517061585246728415292677001917320232341049598239777655652786384198858253239165751322159747499090425531436816198498228437424297124669975015452975334803889209750687089982490303095953364587336362548065727039226635004048515272102012908790181967881184604603490669936939238129442227757762472493486331572561692153240323671472741958932195009029587057072127696207908365226067898015283668117565583653280470269487537159131061486065154226062569249285124347550488464887851747405306015728423262097614736705463370420130833097022473583696366180401549136708755049207743499973020593968822891252832120506933766276303913815820141628167408449195639774839731959422370565683696116568025372508829805865814405857331100958222831124902744979124709511391202938701660642205228416790881001066896098384030421488905682312104040246115505299047850858251074812968111570716561906107746290913259245594998475203895237600075107095054743029220607949129871589657406717340045389465186408083207889483524216055273832810614461554327678253333246320993447699367396203513642291792808442460974384529305975200744231088429853639692429857353564813525875589403785870671182924481626080562117888038436627759940868111674429002952884816716183334248252565098636396147388134914815348971757675282289920250751026016344306023831619735503188480456052339013096471973739761476175116928741216340823553368950984975202467896463129008673544890857980524962070720056864808449479595136193482134006090576331528283763695519252574960057768672445018381026850279018313249088927561303527674624771373878886964886795363777489075241705258210236150262454736342359592657186780929127776946486877251563023865878057708501577280359582262703050792171005814424748503460296139936715883326633874965666459771818262070787910487327144248370164082695370474661228070541836371484972693476264932428454255829011836993287501454503854228085872453165475823405793243338859794798825945347751785805931636695117929935086904169716158273023319065235953899041962354543894341561260564179578108684867798512190090492124467897245139457227948466018580590481031878368635454574528779772618663728993527206630151751631882659868362402425250500479361718851491008048051739071367362342234825154575620291406468760858688784501623692132080145745182430657724341497739103373044380207905195744145284784649905326961381133572801724501078055352298721737212214128657659313906064487907722175176265522546030415376053707086567523261211786821511553787531359671012406459257127667739270194453774905196263591909867900147909293209915401091670350755898755424218422711119043114750013408294050264198770332989939745749779646487131339528865799288640888818648066176784510568561932387391138653127361293346675255879202546972334719744536265709745388398955062545729471625672739776933841905707389560944081604477424273726258875770290546601918298899043136270258208121149135116750153426786669838952703207176323939888622427774147753495637711234038701828099962895455452996188011249444850590309974295909708478484569884531861946391031130283055467061158990600516532591419500815661893945664214904804181123673738325943078279517673838782776309057949342245407070492544320482512308669561166265828874023479354899613923161435052610138007888341376134878799491470479212703098755211525224177205143299072986537993861226452703883577996421204623935709445799112642544758147016922769828780420165659161878687950287431946216103602590460007512698696469768213154244677040843278731503271156344170570466653980829767686196322307288615765697731278783274830321318087910172877637453622608978283010535210302680649504960487969400582132420023006685598556198208195094931184047662582486192040441998609594093754681032937159054273120430116843811584492382900338746682244246626209331122799844823303977087777202664263829012251714153612739320175479580032530203994923041390435656172865573572443224964490602670762618487596269486938159384993720410788699270338663567235096429098838186596990653835055520257023826338025994833117795519838735258092721500174753919711096664561199194356407402763907044045360932189236237845199013502849654667234970798357679703425012821873395443594263820940112361711022250939606283157786147758594478369715182845869520648293890099935649388391650625633434550356444790838677334939101507201738843155738151592799501242161270821256500496150299365269799445999971956412078071998268980352868686390118199267234372624350657377902386987089843797759441653535285221567268778237801510327288745626889920900661361472605938692614985731475554039855619104758886844934139461352522407768519682817647779631516974170037561435809481089658003732234352302246623113561758487001776865496168530683777791727775007602998451150716683489085224512894134933092401394196911200914790638718796311483830610681364818669042004569740442397314713220546874390779407985312943962389628400166199587080110201771009915438571599488119139276362332805546843224528752184000859782971562979095509026126213192412547689005905162790688390732380116547081226034381168442011350559461207142543921544260932711479490084470617275297144407117983909196950279610913572116753282814293866150961197360920287580857543022227552479217045995376533924083014282501200022788130436929677978508282688889980666489081697925569368554833955474596018494278197517497543651453318618985524611442323361544423018017418581351876652782201103414382107648577265266266337937043210642026954648008153295686136153420187843174191999360002268366085634907705240563220866324819745024964389732722157317083432348044364339397059445037433252293409467668097212231233213251543177675875783825288693037647356660732968167517459478667378738678568615599245328461909217450613130446341658721237532345505874002616149495469421028535524253059420147325213217775845073396284653551581924463373530473754428886004841019660336220296611269334260131667140202578044186107274013813263197227258483740555670305158270816351204598259869940995871572374679041345015487557336490385017376585232609049386129068390393982424820096222550245557516425290219572042630493118925531841299735022016738123363254876749139728334904051822949301452700974827414948835921040124984577625504198364760581527577362196071578495094740765315004840739466046644888497489541618982724450116412378398039203453259387533246304673311403437928796390815482702503002567013245518435559173014202398676458279063408512946612046253391540420730369203291778951996465071804336932438847778962300639632414189464966551583706013679346389228857560778341938969633018955754959036402518078609013116208153760983108939710173026670956574219033209654043562823668051672446616616808379313232198228356908713351093452182933429009485588677965767000811537788243628809043483016492273113271999748537131807574203025486616738538192028878639082911282578993052269810051560986279334213856569767504577037791467577064003857777465330141514716424472508248939143244119465282453951595731502089252527807089897955603560572666332924405943347011570438179863018919812692669370370053085040299069649126634983290677094986704094444102439805893632358610372369036259181733306981125036826653485635907933187460065363236885282982228898332827996442848762667164749298526489446986255063297339167040241921144953200923094488307616365728952529170864942888821552761697593221044370042366307707083571345978257653062574669453547584409223159472082465741242660238887992677550909962964858613170943932119283602835779108991102036332220098934310082954862808705524081860715621321425124606363924217125400114486916694076732798480358939497455277029693223473456751799650352489310221032108242607001210887476054754988782106085207671320543198556413150310416736108625919808121466494027759133912703589494843720131338658875300420960655390667044559237583127543899787987478552103152758036611128956726363786399963387777852374263594682040943077575994330495914945975465959075739448579979509218142051451512725992412546121597040192422733235452735411457950602344561089684690509461852640151743904451010500940919541365801368708397446882710627347580477006328151552790301921025978701556768175357827204006817762792153560587611598288757724808764478171497308273436095222865912986793233429502223381287421616484770317476114885735468352992853419033042818967139032421267626739989106503468846474048387939478493022163937578033760755297931081042560759308611328611733629054776684101640838475823760701138368382032354116439720088720523742190826401848114895778958738991359304038812026227077068886441672507891783604506031596157797193379298044358873301022968527708143747111076564968411492808027205098504681574248280955654473380517429707489602872383026021039913620708434559786426381918136139836138286353835608652614452706613368145156399370543910400214514228170214760769864914478810083077424535266061754084604499935632154318750446162409615176575190931076302701859068431744743818378233522744912159910723451660905646945397745084864884930888554816414182739703031652904306827419557763283913057125571420250445877489981349709116191907091799709468632852409685545690832710567633844085571650822222152904901493435130496747731013354437575730546276784879689784327216846911923602655931125250136972758979559425645748457847609601031504787094577424661623025256655736489496713900721160481639309768427414923310185453469610965048511044893372914687908260490105995255970923722607532682969530596069327520900469357068723479000799742652944479060815853252162801432865870513567338352309785051773907940898580439760220523208398774765049074530660242654395733388026875261499699771804013315445571638609006325794022919008504425408023213454995718135828213421331144936609586837450504865776921667707834260982456161374152877621085471329678304926343003685101684042115183949156959245063870472263429138349124309219858329917078390391086115569690649231757958461967725696534508992915973989905740729969749212953127819586643851983690734351405106185336998481914713705561800300972488378133697547326252205693000707369078001073885923024709871184589325398242361767481338197539887743713115181795087801178536534224585758196490181969456739709070481956944798412243952638540662027157701167786207602730184248723874621442142718852942813134571763381365709166832222179051961495753276607569365843393018815253780208896407036865975345994701683678806902195759751534915162472906438739887467404696711030178068826822638615960116111570321728113357611732192632097195385385149504591716073623685913064027253705019646192367002817454273467636061703223227892361286252174326370310795493788780118470795190283357499459012797673709214044870844229744422231522052655992382602771915528748528204805178039734956415910645149014133624344067562645654610739216820026916384975350674409518507281216273823453510918626794119030778475547518697326356222241457999112151827125723871234816488617396432178860980647201161831141089885256556032016358745653083754083073641419810087533373333966717036245045708239204872759758008719230889936833620983129397899801448407186378937467663391010157091535307773808780630066150735311781311112926523629131221988875596154703817612390399464550611841281474666465045254510416651321000469159885223748938027066801746119598289087455628922481632440889855227253836268824158709791028791037045717265815602270728375347147026503218692617472158162656774378581708129380189779372241479532233162946635412963152555312480064755958125903173139249510424594303484984253414608382895811000237888235178891622507705305597217135246603283914013122217857403386112548089539481002637086934020374382958881863870804140733837992680328695513520344390173585493207480599994365272191313715887310405880003372385491116672713601235141373949008476226287968400969867909062894289227614443965357568754376727406405590851854958843546613671919911769009680880958060884984716065762445889367768501229852857189199060287275144126757442142262315320135970310691701838145752299815142213558076314962087742237981880404472014950827846721868906015094387215158403546021887845765350024348063269292588951644610327839866336288957165764588372188217755154112129415604524110272223956151296359793327192215009012921533136357180439538570508576581093947475024815301055951197110276820039219194383629981005788756167780230097887751454095327567466053122167513323700201989602764954446609710231075996507415021243516154255472270648146530814453104126508397700913989347471008294033019691382804789655168891123986052469609475405518106636316355331521000439946442609439066588911400807235879020250795698596371520811116901137430205989226554735421566260428328604467672852075679011720271277896484164826249385100073687062324176253593219594086714649554629806121013828276577949745886939226559428312719095697711226532075437644748185410994602392694048139185881748097495902788509493763609173624548687116033432362643457669074109199086835976397297497036070202558776102472274215887894229840491004259652835991176189138315934965039254890834400006547519995532560090056333333370785181173869222100959782569455555836380882282440060890747571182500122346891902860671497030416116807697098424359346744663106205715502278536123443949921365049459803645671325299072994721961662090267730211310314646538714965511845369919425187703436179814566183922020967890889683893368198379749792312988269493152354180538249769769346033922768800659735703924632184407203138498344271162648118041846616565277298608448924909513011787479082396316733244975361539567657410643317502203187773480134064834652575114156278856236606745610638689061396075217086646761717479524631317735465206732879007221517647687992589012693376619271450679316121967644809173355326886032691974055755796980639269646194698926624008349093926038181254338127686764424413717906906041473223775910979852986055757294991499965719316225732384440185891169307313989598396545931527465752084566669337446998501750664555991879148978721867239754806146720495034083723812364574182354147871559716009359935520584418546220688580773575566814546386142223829247174681347543434370034544708049956771866219553146705610227774155285064635973875940856492657682665428255916388161257462770622321893337467427619309143656984869464737440020523827145409334381747264361843106028061729241107798132381828212898771388522515454713004510946739185844044190869627142527936072785769766581632566698262712891971486792063652520872780313689191230476422633775668365344195692711302374088624196432157940023898241099864137539244877620988746160751946665863608380271120635843300535941933624481313326258651977477543134179065855224892751822081769061733266261611149846055523411298032348064547841454286388198755442991135875414298531639533254984488536367960523823287515282126420644547498134868442767353054314054232129799952725052232386415167063021997839859887650179234227467350341098613463796621903821061803585377039097573746877177023438404076016761167996783108840045749447090120772000588107710593623781058260118192696941069864271397074419795540868916053283356278788237479787523512055083563167153938839856621575443701210793619430110699708676903175818312999287477713077679106943538889182004437614987865595936242752490596835634092691465567554054144521759793674115473730820108105234889673898795225715019563235216752300811163160634775880562051906177471391544607952772314798566132653217731476629220390825922862817025878176449041976442836582111165487172399655469287654585949662205857904090305443256369769474000316671065278557447319495010451580359334257279215152826187554297480206174212128327162830868840761188783123578904158691230696060309270759624937695447304925278822963878544499356301372635395974647671445897082323853642622222794389488710035362213643623728721557934845752823281039676538011885666720871204926769616295413795754277117798144146977485738424744338246660956240118485087630435870599656745335131227333054897424281600817038904597873595401764212959877306161021011930900885672207941218484830317372194442100679349734559877682408450201014960012452011509582265367557841574207420269435406158985444601116121102846109135417064537164421780255031265356611767720076409803519530818148632990349118686396047070970090642270072553504816493475289252886937713774685185830569190731308259075570804127686045001529647128178880869440983547866087177845747627522126838077472977014769857481670132009080456506567303889534006070592037737225758924573433097080999687888982624207063217752301215862529785916619799939258618002601172518959270605717539634482482349596566700664091927124961045450253218382763648102423331599163935400878473451350543625864443012723721184828957503803757017976902266802858771487862199018627021394411423661915629904347354376561672770880052755957692261413464516262487869801480748238655326298005824011585777641908598526315923278573689012077230821670484581309891415404650110993400032991209940558382050225986828440407350100800198207372127562809820664365058228006974559695130519206423693293595472406813039548704248004490216688784612273910138666751585222587619708650590422551343120870490409667469249906509819558945333118747245494240486032668940478756378037084820090232714208580965358718468116323660256035251899636357510225366422703720481759939185148901678408719066138245993392405424096672974426492640455119177418073237773897839017572738712791551362187180416296152171445026799927976006973427710965547726794004163706925209525832373655772633353610461659770732494937673971587960805595895881384313653915950954937109751992838753149858526733161660549257469862654230872946565295505122264810934562418614695346552085609557952063832382465780352969745043140837035739093065201349542759277461924893801721186872461863608880529317129085242376244543738392092997501929140803586942875000631832351564642534547144075213293314926249881340771034911481846839933861231279851998592051178785947307814437873046763642828290584486516562772004115748472627957244007910785705834667275958369455104005992919056062183856684429559933228723219928316910099959680532385583118155468627255475503604843667301563882842680776341192067679549329968460469577971536631861060930732633218828072935784848374223054713280528730021038949392810529632939024360408145259158145139445863996250668650787636367618268966277732031430181125482077102286927898593651223888524836170222215694411648903995834035759252647051084316199775879176430373498263537508070317467280480189787280271636129556910854826020690272747775762798043370069108630326962026741040285672073893924644243896839062462706828161652282290075686819499091914655711676521535219184276339871354655501071475265221576416039986030001890043555833407119511340303199667903111269088042108389599503060747200749085814339218322743380551009256132540103289233214920974607450375665940574254775721238065272050254182353396686673957653500440337317172613723028384985258814055752426413809008243571148145983115757953325846441487285670716125593762867025105318872405355546377991286833954758687200221150491872062141414501812666610760425807276411749054679559936984172567968629267807394300780046953994414133227868104851556406521301616660973919066975057970738902519561108331318794949320487747791729377742507117550190652039025311580194427916907463633518112500384730388824488491241576039067462276196837456985182876237727902975074721363673841832554186775862882364918688065499616492958867702265758075966768631801799466954686707441363468391143514466336230813088342937647464305781994176303640536826522022153556843124142458898873383142333387649415340677005890094835786106255275767496373660736499158317876145424394507571919349300010467854972271821094943628872378333881404546691144891940703622840066319911780305340559789781698675028570203829421108232111390592353701254699771327277427749850450992970973345729315677931318310032967208554144302826284764984908732741077594238478960515777816794433903971025496923204349932171737480593732548604134554358799469835620506512888099994815343382350829113166405721131621124065135300570169973941343133899584723858536746081656016009859580700104532218557310753693450294388929390137449191060850714085751372118926718991983934604332641978079725373654652524241411543287257062376140952260678235761017507330150553659355915959647330716766554878243423195622758168729838118113128314744765984324778876573467796797061315084608624922544584343812745080108821080866943039796042306937367803168298943525239809476323256343513795436342750772260282522795851652747621335548592574959424311984792990434843243028993213609111657160336325945406458911784870886497310567759890294613167582009977004086128707490353908365439620427545268980932395275002665106138793399613271995056356896743215712031336429769196371840139459295408310198442666223352784072621928178685647835612243966683565603233247248362499371401991634827406309005371610619964367084315874702130851950500092921650030550312315699373827714358139442544957611977882135215872354332725525187645084839586411702901923786463631022021686076063927194417103346426408392321839529192531707171383253510329023540054723868091522677476162367376596664134987414458934750160112610429680735902221123102172338949451006377649610632148568747741682362086557890268604703495619767327387437916780637689967332968547811011461387969607478370992826468525485721451966249979355439812400436904448161285659195394296187461627361782445428871423491422642170984109169830320065402065184692750733204091498863121881922421822973231462219288810634200335740707593061228340399881295775507425141733809849758519995302345125230193267062238146186399204235228028501785873957931317247860730717856429539207675666208687025061838091152746587177119996755828593841259016018905740139593865680448408918890562397558815285092582844137378765649860030489802235869782804050132510389273921037535093409950560928792547179641116961072105494055597034913280013206076040288310799744387523594029586988318890902345259019836628177377885544424525721400869921297551780816423104377829169694410931161551210232970855653327376518154296767848710646109952194931374839401908960414708977742240926171929790117548442774193692292115913773572207529329594676188644826317671425628453769163102590931342450376169952820248053700151127848863661642110605450689042230257832511635564845861406136268219954287037205013151982330678115669588464663976317222155827262303863225306700442083062241140981766430722483418582867485160124939420145587206513599038317216063260997831358559118258352294830664567649968244795865504730763674004691131858385651673861528337041671205045164066802227723762140718456126075694374060422249976519072022214385188039358460013044712608595710629670522882006855932674979617917058162983761317888512880801389540107283164992486000176953932282247338751604185409316729571911891501960580159500519720709575681116801384057026066105656247039471494894694955437509137969282321542592721564063718261069332227398849747947252959170837885768659528495518428526107126882747607175411093246597907273896470482899036795101181728067148796442576463675260656102728157844118002547716654446973549338988135738485467258754539862466647011527199320925345563692482828929811458066293164277464278794391739568041156973454279714610642883395986447802610693555283212001924158276854179875635243577072088840445793133145120336849059183781186072476937339979302193097246992926368837493448867160328068976239108616287092358242757934994380098228593515313210255971661547192711786661272256491840179906378596366164555970521265428446942032701396524809023509877234967025409346013509436165872099483318181438782465625615635913843802047118755204021659176890102096044609970133626901313467807102099861642806373269091529483033334321147698405153522683608899815833136150197265921445143201612950927596796490325797207382229487015853114026522764260954522882821115006144181823751390047049318359471946559431112859027795647482583464006404340455622848374680905836025380353046166808941134286148548078558941513923795231308046047612312325088857237665936212876205684620276546710498533610449843398564286235178596769984969722929514241022772882926995363217237258536924532103085101218935138914096737934134486321550347764037856677121301588573733050202044828399792538726789006551484156019508133369560680916847421450263823871769738889850003395437292972656808609536268874183511670531094419835316806632801511515971564347255541327901014714308633532676228926346139599097730212972823195783844442769138166904643331127173769925851043742152651398092161111481177072673155312201986038684387804639250825707500179594584108608589575158036596041825011519585528983470521547609785150399656322634765285490228355572326633726462411055041801515866491217652924961624519932903763131480251883776344802361449370016769321877939263136118112962759321906756688635992441487134002397271156977765950332258760852685937139505841700299764122077489367500858374253012237588263630616633485841337608799539148809436634629407751494996110498081713305728198067509744514610658724410063964680413791174528387657209083625623145632137668474963982247272036218543201442183409556817480393320344563642017689621033657031246720749416419202079059591265936569030550863059985001825573650358427372401536501028118507567904516711714365105747606903579170579097651536998292613363628619681526497457554592094441169154524420559596164941618731688701537719575787609991617565500941773633189157625041313986859030065262650282519672811791165918418224838634046358376067042871353330173253274456615202339295426580347427514802970232399135387345398206441333139378110503683194786399418650448086350316161366876102454580518951961716066085642987606421802613389425500035204188266493067776150547605682508466104909354029468946743167716476951427593744271092086802053597164662393636328626893824684092647557244777025345607338653662613953897286835114394560025845217432047902660761644442714186902591310413028701032741627986142188788567274174017905574879933743171470849800451220201109824602004962904753747017625924732929780522663551049666452034750844759780762010645756236592029735076199218292619732777137972626861837065884349705707347196060918484987399791784464458503543771424011372008616461065855367735639026538572668818770014431306679735899816888226660094842437428996335098203635209933356597817151368893601374011320279893139221321373741802152716769126303255519153828370102557785964823998606069310771619796754148021477645640672604028016833915672271695403283264081190687501033859275166275241066276407564681859548437888696902958764210054887266837098988215935956415930236637905676772989376103623310880730015045027323126753924539677430059633045719136791820008420855151249450648318224889912170429427021960912670208389407494125322828671045814654690377728503027061564279639524250667859159979953798881699387061191445992973343896341444583330392859972041911026688793518865164393703008505646759424020565811453432391762576926025078179992661746338305838859044245228943301343807938829852554194089510608188786104903011658698451974990968372702417163112387137759276876818996251510568786068204687121566534976535812319464445709952450985667910607936741403306546421652825480065780410107604448350587389860466416798873476421082798668876019079759103476846757162661318362589153634593386043281183887242108778921337440218946429549329985712615150877274113774071904228685273988582984793051278146988317962083802299131006931579566631314717627659803234118463174540055960836210927364614239489447573778703141703605968654445518956345932406832448423123313712569152960515521802592523124286968308114845265766372291445383831301184575759325370815961578686700000875933859222730056543503876465486346108888594430970772060514180202242474406617680668928208676746536433582330349781773027597097530622482870156093380361564683718779836638768632155102564608604851336437991970143936779230996270005025490258547547573206387587112301299898708151743279251796189113444218928994505141597774122915759509492913780073806685435278877968144103288101984573835855998003790053236095061470697212135046559723045547971282328296798984504683190717510255382920979760997139467190047203399180174196473758418445429132366401051384397834646787393549574356050553474061320699941430556109885139690697591144143029709066372256745580289608537424905678138958920115074670610563679111050684871553619258689057660335712462499731410003466733925811903112508621172676419359588109968927623626793572411793446611389247729573113102923913475060812748770676595220853972178325571912112691188465855001298330533960526828353868426320109281830393682639266184206659742316724061829456934940518416287991485980603236712108046828004316414559070744756323420287505612022412603427717477354294453696471450537164898016815651218430585390004458015677823952764910842436928002561719750946318376550491968473495053692182255667188805941578927009557753952807811475853464903753014079367674737366986748868162785079461575793255208871971613772732627383227068441815148316323982577207853091112974064734803887276860820696486515712946336034209341389434048323395498512348872967772221554091801792358553025551727720013222442643249288023852311275702728580915873557498391842249289086279437498799962829857303093990793161438909822916582869367882965079906393669134576743854291421377149157637478039405415919728998764341582537735792633964530163260404811846672580177152498775155353667491478628237592516823123903241727852620287208072834764418377079400898061729854776368440551353036883236196854144367815166430620316311269596169624775286114939466001754634794529528407734648486886951862696939628128193367113068801460897887168537923661821551561540428662547401072982392110933478231810155436488030414226620380621745438541516999680919527736467878021500972603236129071013911230117075538421379590306328398060584900982804560481517234745911343292555147361356881577560435642315819717927525862200017474433809030837200403556232911425676984937433821294872331087548908992432087526543105317965482000466854731947379616098875707802014550030525087714421751609387297491846262371905684091348153663914874562406422346052861479806316337602003865692064806118000732824303214898233090464628570835357719684650737037777956581205082414247528721771224140423838393335603085807021298365611565844011269560739274336402423796011517963829635214227372046106382357088391915217806894129009369615970787643027635039571677571846154648038980629670896057192839227457995006850569281539793684435147646970100201911910061976101228027267416708613680801241428474205976949960145890159596344732756227295675821962036366295230938039929304569944447224457872040735070978022404171538020726571735709498503433485181156854934302707771417330699820789113395161772904075652478848989154516133889510004326857003178706866532286851889846609583352681976022334889412686896655264648050539316772092732113667546055958505857701607049005868826016695245598280450820198545644533052730732218458791508281203382127394641305231366523171067804397094280087453881755636243396394293753484099728467248686480841695642503472537927500060290128587019541440566792781044208866389361301821793928953038312601535271218706640965389007880055472584468917797643752090326094702585159417382133112770892861543444641727358874576164271382310888612420639772604581016182758293916894289388672521009355147777122502169899436479092805412580644004442312589971690287516500794795981907740297097619219445587326030492832028917656613847612045748351061039192899292412837896370314563382993355154973728919710155519736604184742474257991211419334199154760242679417589664107909075013777339504875144510089770419752393835757086537623427359116054628300576119173157778765196758204376200585516029565076379889984279112355456466332685341776775423018648394476352638726819873197753669502813475927233114994164605617322886038350057128450890932791509778466205705890096205894524416180315753578524458968654934306169509462546596246183828206674661238307462608026500313128724173449723404250006385239471168135540975167853763637949131141849391656339562025776680989593189060014175294736199186770027748393516650159481925036256524292785386774986599149397105578900483806346486892192114968605282800448446339382116349905587676633458767286466728608430751797484432026105111494744656002338332239559815840673603355649929977156597723327051804800440959306301507265573360960236615776553859979112583994563695375482209126158702154714252009941356690911131822434075937262702010902418515041315383315760480892257090404782943316057749487757591472523513375890354226050123992501568371758266502878243113277206599589997130952619643098590072617453701872146647862901602374166494972904905856040040519767573743571021170949619739561214198477311335991618814360925722201411379203519700109184769386685003267755144407518599605042430735483793114957222269716474159075709477995799802907211010030050714874512810195489750405305899112411307586183448048810973877165583988671772969609961243697394026569484703400351178024910615876732047171717923495394859145697522654530446941135736716071397591532727039295224713830281835366350637868244250725280058985908243039989383585347953502074215751063222885309529849445972172039599709638680720404909438820038670117132822988145926675012077535403880119570001122429031393761071715064432553044603443944844880062799586773554807939173919591345648510824418969486989881809031973342302482626482179206968885470448928293757618440019206568505294515069625957728646998263188345401362391795463029269946445203679806024723443283970111581411998142391446035447690611874629539524275587757599408222585874386809223414810258742090921297529810059803071140948627090177013613246881177115471841152250703543365248703359066329934082218030386937011864764533450700307809710425737517769886970631111379779108134304280583485277213467558976957017945079924567321296818375525510882049223630145910565732108130987845425834995146403399329042564025040518352782005961410416082348117524060244917146786347601635302538857618528592412884070476280338053047069857213563754264535093624005614705076808592531021345913156090018994809688576710760802014259358418244713363351926641082797610170693633483298908004255322000008245527862210709456813200935146579808733385160638142917287368883647062988443555658743154556031541353146187421799281583128853574527604194702896033039072297135118979807213656133668951010595764958927160047583534760906991835425456374840807710664300283545602543961919047532185695454348700867492717232628603030476780127068483976689631674482882066716132393592640617366648918857598173002697997488442896613534743373768849459302624451290295887466718162665038642669798105165144021817292052487185830061410059476311293461183738052358709128057774638002323609147942924720437477002073047267962472031141791867082187789562057231693180513386209505922363489155240773465797674248755694706982063332997923672726720201471643187183948311633563425481080757129298085863516452363625977192654336222365984182232575104028719832741529830435144303991801847546820685843792846199731765693102390421663284153218802450509402915100674072169857792847652146639336524668320074098662791558838176434224137181720805465519531479433405782335179348263519605863012163024448352339837724710822185553445379772644623904499920832875260613030404397002944866814888499587761297570797763834185272885245260728238902840853239993992245347086351432148765601500613838923466391918842243579917902210936760854434004309524896844885005293640342867218502082081156721994501679002080288058769599626007194514447930776758171773351505186733883561450629075014559460018468302117495469688780601759577008104044279880497104454907943058723733784069348811403624875147795946306983059674907851209533675005488347600641380776683479251485633641283293941362779256885952911621972870996050344764313372377649570555786352840076188531179086979075445489673222068750745323525359552773307756801677483980952216299562349852991562922945825729750346348445422925877108943303439538718878003254478266735176409987734011518138414826384718088727284759308586906630613547043636934852318349203722112784395603064195354483914209137800298460290770116461611448933319185118625150358140832930436265158659505660535630290120276685365556239137937103770661312616048288209270933311653835038917175931362166059612176293776527993817186658821886865662446355835557884210021820330137338620248383295244927247945780404858478420352845186690706208893288732967109642011349753582837289838617346984756446208579587294463316499894976784513097111805887860630056933250494406739280779085595334162647515484011966938227787280345767272924521522909489049135176676120763187768970584531327693785272645262774001109799705023430240344689374996051948310244877468742475584032219480615940104010624171792864913770041834316070706057425724899600620113467479624139534627892302330661387409809518841712622957700657995676132210555631396568717127677447266644103244537938388536264927624778943707606807796198650227376969852963300955634718979725032607580033078738357109745525693488369554206420987507664554431721489762287864805028103289738462923180225833773873955776686712250226770818486220938950725486744272219984285292174572385335687408655306285682515867521797694748126254730904384601342614533060164699112175682743089699499384462865761611319737047550448822614766184574113715143584568005706663930756003671096768769768357844500819888377201454906716218998794634090300277063706028704311336025874574663438211803965559098368955979679158116852763355609191846276851227716490703561188671111797866376164113110982814991494245306446807202910898376376739880076081619026865658443061417116401716809128823556173291728143530369666903472113309073652825930457113649805958984420799910223913658766392692109643588100000557262872655400840309038995469999146029676978558145344440276207315033740158708091477958390464257390720254466210767306385102489425086798095407748718658943461839421959410481408297986944926611454573825106955899765241685524309722143321662865125689825722978823592290354418661900154436445643594985830506165078127782492304811006147886899856689105469833034280284007372655795792454737492480821674449633933142429952834328107220576142069052530680761803284616463396601580462085838883412815011387697979947441193371981196782575745844145521848063059890569012896431045114697025926561916461230633551448001002139169578389078342303086417041002674110371266988812311041704790008872838663962063052916728560755398788403623389054877779242080132960427497178720045419219708872460288526190158620432211390236124488223092478084172865988919670308961082199576946413497529690527084286336113733427624685082607689851363451222240875914113583359912999177917957957729043746940819528093814029244451680326263036207622221873776369129789033557355254873961363744406553329078941434985816835852569143003550606536536685251578871711529162091303695003523942749682008001646630382725769779932624069763112876967254386487241955758255355335746262637130448145658320119576510212943542691708290668293742720105902735112563878230516164315334776739820757907851308553893373474932953337354717967354284017984535111695819562461238261804151943288493227708973391557400552648263366973930213935613863075460494877767899750854158892226340354059887857391469698463321141422410671359219208909026200220482640202470722943079329041394916985019526940829026078845120319317287667450857566210665258179272409223479744399334768968753358485168904963479785789916972926641366780415405534047056752415424571844174453991442801056675648986390477596951055024514020735228599727356351756437588387891935445208285167054559591063088947375338832568842456522730197781280462295800989971351341612531550591764554539346928057303590499613603544372714540919943327231014684913498295657941874245983709796400997576443288080096789843320202016865933429627036489884505206463277410366355769006791606222991295209747153843807902639700483036436885195090947852773614136826912076713092108975798830751147753548041157414391146684812773500368740675200102698222925031690364438904369486800594393151852179280306443066106588495431784575357967960628952855064843627657859629406715088166277000114557826869845646408023430706234160834842728404981802275974728457123362187341366278090507701850514628139292963298235417606365305925543089978214543706096207220959078436294347012305031916879460985045671810840401539193668292063564683419272991966236343297743281513513861659609151183276200430821288250096442239094006634839306030786507561565681922125361737238355638385445440151458073606690717491302083484683701410742314957982442628408631791813552800231159115251251872486530257593299094722400750625559140367159428684568632929966114902696274933318072348733350649593821701205924796950181023508266895281985354115474266123935568500543758311446998839363420656388964721910385903154942578138696880809776581312394139478865946413998541171622101351031078120455416370037932847989744350682894962729627328308224532231882770911665879148693519768694978251552387940166598596451123140210982492950052969236488942677117631728891329113150658022329032973648957673675597867995371511817118318485846800619757137337428060129927745678763282641900376405303244854624438698528420354269007043128720169118629430813919706893994974270164730931496973036194170623731821801977405083339711690077640584070776518279234701559703539470829397483837808361347665098208459203230878051220650546750444936071721041797663995548189263432497030511200714965071771429922377092617853082327530365189817527714267212400251531154119060527360903127083704750185644204118917035707631714882464057556976668455914642787310858021202998439524510760782693550560297429988572215444025886258798921491963073567924890252945422940051660483345012321842011620822942970618557653322977179488188076878774415105753543603823002559379329884604283079036363244620007133016052159338523536447705390272693200691296023710290721110581111335886045393527986056556366025048308263990637731446557379999143398106903284724424399977875121642191139097030974334524433840856269291112146238665848227262302545243780920146970993687360122702944034140084861009796465635230753404162525434644419586198758084837538208626919273489461997839020188466269431234871466860207649428277118862291252808852262016241848842110681421323660381644884675652938719873606792615527327566208411957429952774927343402394042599977990160966965125254596678445898698968174914746089588050917328625922358576451895399346681282300950690856121517750406642088173852365381869300575428536834082269800807262957015076706595220649641203500419251891308571403888467868902617062821379380945563859447494853295037513962854789130616465198421685878602526978767985636877072322262383153496254146926705464063953252301249600095146393118495697804811084053381720111051876341870347438676217897110033936117620032633646189870333102400104007116284145195220070594402747069220666716557200856827547200922190544302387126106801348183483522098949540725558799834510379107101888503651093930665182923057145713838378647482755000623026650790827079671442105750825623353723644023378729898844256815223271877069212025448654319421927190266273373536397720123734084623707616759219893400575175905510863187027901180982896999346050305979719967388090982481651060770267341021683435051662444040665139929694967704100664616785341430413234051996078359239135964017951681627642098060789852574091955620980077376311681815561778437412171219283810333388367370899356751518240060122625122045582138990278410968444342962958886038289450236229751024142206946249141563595906094465836787434090871618903619977715777107883090197348499153046738517413151988143871810012247949009593499220072077482392623177619791037731153869324678725160566008062352869135458688990008470368542615970700597866738843582195349478476504416106696191384668137763867221602978635933113929044973885984491846083656225810203688462295001458261455971076077162317625579300442628944556757762320989604307261449585987238794973744424102143079376755351087695287274458495359158093415317935532586203467286499940266913958780252937843123736357203731620349762601982865529976657084243365027454459422529445415319043173694722463916180356877410094299139740919629386290659059573476331873388581498724371654966593912706188178928617490185075912703674477493147794388279955911535898065331436995013112985840910413301937033688361911837121232932447096711120452889387405880393355959894925794155847855798391702098364190256859759359939758808181347302756056955480580163871166791459120119139197361205860779860225985201460694281975241073971186743859096859304679469776806162722692837114523343497967904063219194905643552726746826965884542009779509102502248074770483365706583041860945403218837438780361036788837135305562407396798382388592477471981272010040154828526584065002788428297036815850520536811902123509667560365456935466192668268658817052409791658865410430607475216645150765090062095248297421018976026004932430150673671829976030204512775131836887851766408206038929803889501497590001489568812272045560297957450828893818876934326811791517819519363705365102160928279332893631023923226142234746293190112749303176004549558894057516464232475573134316496597461760325712533342682686528292341009612775877558829117527281448118685559153135557972116731285125790140166704477604005587059030613848832669125816214467424145345558973302501506513925321040153033614731870833670386972824461470764052815310106568007619029078958780786854762814592877949171598939042633161792960336630733086706177458534930543963613693186974275076506074197952841957319045917186098063014184883663681074847543115132567374118096853425760602672828088131426559905551885405282399702968585507475127409516240753120114578072091341162323975323145200232499323584427090568596967667220855964720648204836358528029166561712389508763860732229994100911606256515595614374567007125483466553110115972150280414917746292962600075034789032164234841001521071054792218905084607474039270650099145341423792344473760336955601397515695746695993358591038916005902516446700871014972819226212050859692184531304633663925174133091586651790624249628841876651637628136703880347402114804664574271362367357979440603997072526743718630297993517323956897899683813287317763014359212058825008962660745916461826778997994874291065600958655818526030961618425567676925262718266774225421344257385098402160218553557422499554265977417950561055622603934352744889640001577957706850131582437823398281828472570205914987608689643375664759349415246123560124228034177963836067250676006626397244038506545512879799339063601192030760106290296557813242465061234941199834872599710199632772420634645006973577030453250615000206483358301278071326938453744964222718914874227657440120508375395153060790970752140612461263208861812140886871051603203458426395228174062427415555374486435271913151009308906999724048142374028949878789900772013420716414520310409829850002403154782643038607814099818986804658534790669383878428523904337379428836073418142085538107087244729763903451951297761515477313507800831955897305232499586997472655229841280616247637553600442798048796188287503621384663467402534356347385241179758307040915132880289381646692682390563977620396789098995693874281959058216791427500892085293883029544201282635498506461580245008067468434692050797733020438495294794231320966307499726392556724642839678017242059269434096875902318219472237875472321386228976379346463217821042889568983161353123814610878590403612274655186905008694552656952713825115059837843659442065545804877912455123855663105612617245999251042843942165857787658305967276881485674519986067509506785621684786350135607490343877925233927004200410666257610886738954805523437823672974875547364700416115128329190416423697668600409239010019906914943729540324002644441888253922773881571530705211384958958747027220722145153468632043814016691934296249344080548620059869551585288941163205177990351640009789273178656081738694241688231779815689647228041134458535729327794034149683851215588141184942409669454825501949392618183140313708672006299816834054944244277905465408603581903320305324348291210522661138877638744652052782814783747428777069786102011386648653017206618513047714703372771141805189010053956577737415982920229087603197816663661414872928063574753129711178255289920706143364599243007313262220694021809108799791158868745603816143073068137157512296528570841137309736707668951622475071877340870054553259751877074157629791168049681053149667419041137362379574647948724253801870473651861035438320364459265325342062626799378761377989019535942791795710856701705844432439903884453814253652856816026177937566268384813149617575582252216488280814533783126948399455901872899602995713914647868997151480076924156918254138323650111143326961562960273289854210505764247948215647376008928030737474944318227589475765269862877808385330541233239817305872982904559685441578964673685107410662479606703826928364107749964123994939136391668604538149887766789092350687682286618528558226376166721633761338521614857893808540278193692716339559292539554516779388593928209521088585888638909521015073652559842461700690392156075258264114251223108951822080859967694909454602433095459615844865411863423453733972844418425450761351540998018720045719110367759905129798421209405261066667045995031240479511868500581016485126952244648913796708246667996744965490291015076055475401521760015484505056238220808480599903200369027592155873999594176498539692130476189583604533747076385264277766926794151220563402324732781925897205518716600006461432754376882577156540819020554933448462155432565863665617313045782888898238638065182208990820247362452894424935137670121660719711288334234757996916255939961597721966318623062986044192977878469624845700662700179035405504413871062855153202396060416236852134442545868491922964607281913988997837240521226139537588709728438602064582939826964808204533981775663784600933042665496076546595961638425239123392256679402431588483693601730110091600847782682691097320586806243825186756948552734239941296167184495426970979684695770894772012457169336467495674166959179248010176038058223985093402758313045833498576217714015249782973581338373185242741806856550068803489850838340328059298417417386937699205928473339770129772876109702921088741334642153053193153854104906299065127967837093242556559160340665585301598133264218840586265590939661998381868177249863177225900170756551715420505870493920812954234096655075398251554822145635432121345894363642103281707068772076918841259531389767844447495560337073082279771955775589197318461038119099001412199298829456810859609251323777297366509242246723784796175968423940106629968642431341767274900504840172421169171675897408210957502223202781184970921548751039887687773743920515553061684065971745028307810948198093812503973095186878830780243498527404754932020057171566296151666409207347254479177173829875246590956206061750460531200040578631908407618946289204857172596671344772482406450532855629339827881410941945260220313793833853324102637225991891116818154410694284596919879662705492316541358474577937243255564825769699876523214621485660920992464041066443469857934416275696906064132586388954880707785515886009556658926154254377590265286222615446527018644385316521944774968667582384400841848171312486049630493332291308098342888389868193010265306325046823604426197317209042072973182789314750065836636837123860460194025905274301972161277922405186226345521798603983830745867058083744650590742376850463533693959890550589438770435145841813476076112805691827569317260460393027672513856142754480563188659413952996756188867652276693768031460594602190222880513265751110673269949588753009732059891699111642054885371744949490884520522773208132689064063264130828982365629331628546777872611443698756061805899811489521875576749518766104705287549217241620054535976607061225375274139072018490050349934760047727998684146302352873426107079974697679246054849753051925440287120492098613079772119065855749379798680872065940817957136946237049280441867090598025823452258183039842837932364416841938256496990001039251872253767020113137159749654649493771317305652535196939818781812462470551339188615852567261351878978099295568431759685077391395787392912762862519395061984415088338004536295752265080528403759257969805653797500611957247015716214459792151088689466383186379836917774446387796459337198175704124527211353726579115334853727938152871129582319869453590806060686762810326556961841332721481693059002848115990916346248545567008718029314386715611554206624004511311204318114297244291719796859085358899368466956996083501619545100660320751002307714476274243868320433422784346363533393066000740610009260423393583754655665540877103011321930785197672341191163771230836131090022665413755541176190482586455303446522248294868533877343304325963746968726951901658075337196247404912373492340820804716105567726181007818401998560052767877334436559409757243863809385198557323466646402063360693767715981316227297850369669608913945536202465099009675456284914404521595609937559241529258577041604149689573218341686134670296196261220690147278671109446215513163223040254661352699880444413830023131878976636879523063350805094352554543985782782479845785082769711903997134958059057142929799585822870254323220363067735503033782919124352961107512912185444842933006868364858722884027859636430409795899095895668378100216961324501863049641225039799328899947508200713837966461884162831426275930541645186729353931265942998565772256890005305269554902358806434255491025027567505246962894585715181226501490534906520202985739099613900206965399260249664848797994945991047117031676904569407122076328400245756440067057447230900752502991379738320975163579266892220054632729039723260003332735907406359765336269615203961067192177912426015618310686553284060469186396986759397154163449240648004851569958327850309012273036201628068190668272853393666875953026992467877028869999193941888387936469029188532491134911750165587414358193757791691621453182304679582207972407831900290149994332042126263087205137302076302221946342682242413009244443637144563813198165043997114420422739069896083132780980147309581866906851719753736795504997447248924682511675765747812589308154781168785775597637264472598245796208844125079214596618088063065077157160243991512539281750648200990794759640056635796200623586432817713375099477887642979638716397047327331545755792472207559680044806284829336294010570127417063319329596861929467172455789156865192739308917663722953820213796814047895947025974187356781147265403508408777674565147743807465879967992917421431210330834717475047914534984863230984984420904933632211783461355473579894307154389141607454250531650625344175939988961701441244014054475276870730961747887416513419107931749128713196036366156374838682752114681232044107153377592924598275886111985671509308449915508169751418466492749327248737784242413799906129180531572338520485810868117455135901215129050048239023341673700063039307660825647820379877777066078162762692073069796930249658095969399564039235786185028402684471946157431372548303896249825544339948556106052641107894725798925503945059057020284629841527425926084466695399949770922685142378400433872369845486030644640175425164392339077715837761568586366381821978171088011010691138564515194130661827609137657047058130047690697051497246828025099100758086650404567695796866274421346647950750854522960755827996252935048031717491815126770883289133908519180078185633124400581673908236701528333142413242427506787005631284214979785680737558117211249642312980740965108343608575845999798038914326611537345050068578846942556290866529249744417910806584734073474081789562309077321986783400661271540877878837040085049895349039370066415064377255343743068144985234021538871330616604170411484824044394368636338111683174549512189038163991796855204163123313287154947392531198680213377986568691011236699833708357344830276173772912426957789206174677042965484228208458136950765098920839836532340817105558572279176617653041063281239870732831425304605660852506584893614817004654226881190428797734880175824024076262331293571505045154531544729566593893530212773148103873909912271138665477269569892611725184779710436362417876980938555897333857949943845869441869023707289920041197689520671603309585433577019808830969123933964763611698178417222913923367750141603988497641436327619571187306962148009208576986667708344917934566490857560309418409163272921347975671804975514763557645565321022095082035196292600057922347954585865591912939226223739144990405479638248215985373580202850200326498241011404866648153047984110059393150675643342876242824522931290964656699394318315984540250401995651878421848450712717107361091118901072850277896256332161371336888128802544736143355452352244976039781979375439733007417980678561013977148777794293586174394916077239496027904202097867840494761872364998054600839734707416945950733967420320423063925019736941985346343620676802439990158817193230760989818741206398813649833375686787973849593126752868812888875086071514132402826410728791771304835381633580564378978920418315257989129425548941869241780250499573728071977093361135736154944596604447315363902604892493188982522228336149952140116165462319066773234944302254808340936343501091128317630000030214004061857371566588450477540646732925273529066153034262290380992063007837208441134071839365435955796932418143809799915347594502273728100730806241645700587280522883861217759522826651755964671818434864417314838325618580268166056992657727783945225624522643667543860668590778170501365079702667713415249039271095281960111900654747150206952657629683514234692971755432146150516103838923059543180529191754241257863536998271238055397983634701437097474488262809547400184704372601250152586688826220492210400966856181291625965724191388554040009258997295204743712453711430192278388913403720516825133425781993863140418071238457809916523362116729557116750769958685153588640603781103074911534604319412759139540466099495511584461966196249684699076025325364970938547313853068978499869575201355319072671413603850426726629853775215699908504774473194596376101473515981197797134203829328699660706142007544833423717743433737275615239864120512049359256187015183292663442209602802594189834852053791080273043183505538635782426029309744861495918624000513137274448960681011508072377775326473695368341612213903885315660197623328970860503579900159312962516748878128887390294345798984767846404984097111310432846045888661339392002568109474106833840775619081056496547694707368566204310689431482494334270177658028337565976298107048372089643736087466687040014071492445718161260072387392854588994136536993824574863444762577808458748906111476881554141702357722435373268336107635844143500007783965912956656894172191955630595338178596720975023014235080185517549823684472339838758067034139520929756022654675466062173297231198214713739964864132567164135736977302680975062135008004615293687282175033276226647794675480157337492765315439830027307731423761874006169417275687579318773323341837092331726224507444623524566579741953497848447602014518131956597219431429877425167374178594578590976523191331008125662720348903861983611347564580383347546764755330890428778877389652821661902699107680531742963886680593755333025793211157589661839273024640519929252041925034720418384817074182835068418787188831845037274289166241881006591069286624420044184331360961531555890318207656266741668181215465164711417909254181445621282995680352303187809570581913366815896219709955187985803627271607465220354870280990174921790260059263400646008375620985540771266706169435439083118407619670997635534991853133015392979131006554796993646519840239578375006093412904931498404572617284658770962011856043737704175350289960223385271048011221383946760525412481395399124316532563668949883766692794403010214041312441995287825126859575507056515917760711832919740877711568858735824429388885179673977903062339137185470356723587232220985062271751894895206691194047301725438159976863611129354247733201367724363842069581528030587646165913240299306999824310109045540086079796092004199023085073773303628468782525435090182907248945649352231945753884265263492735321230573182292418752276280482852443549181115497486982375893364859962408251706660683464998298388322772925206084122389952295684690621175724824969190451462678044066251798283380513059654117425169762394206994051726153247692195730115404359711268060816995968348858377269744597127336430296022618098720226944269809491311501551325153297906203049111603489981346031660017099921665457077564250671246706945232163869417296422175011591977764891358475430704743506339730189793159346527213168924311926861715858795489182338247974040793141899525549389008052227629482245685732451503606892172322811565438756979235020438006054410650816877212278906091603468346759135179078708019335988924396831106245540303241794572630165914460019672007579755672565753164538956359009408496299480830207121488097983848008587686240100760652690363153320880129901382354090695528373488666657597913456679652955603685964078205368770121950520659841081416778863640361863499903852279468298205068147546537733108294052261723145086624334208512064267326021373235654937404188397849903645980141096088753627905972161348964946783434105255571165635178218514273237544036704511052986197572632689470081231266801999172009291725612894164371193315899224355209702552425210712993247658003711071366177859346633127903316847227676813566754532280633028511025125110563397010696209241991220419420006302816479602094485751975548913215983978303765403801355290145790294902126153952649246565174672145435263962006239409019094785546173777114758949777905302712798454927766339330342843532622999402374050212011192298664744134294389431039124769659175788474900104783688043622948249340405549586791699979920282024377815201295658726499472989071640161126989272487920663603689374343157651855880411921863279033654424464868793964685468459463102326280771646699554937401305815225482632822690962785785331520489044352772709072854526560349335490986149577867234463381226835965153627008402469074077047749547094864814263955045828802712763319499573755075889759570582125016236547052492976305677422287827015972308327163523042838401116293844835979699506099853352209927463597310467969523490254500128897119245974949588494489831900898697207741050395431129813957276455804494429852525575773714068914447116151358715627763996443904475440741337720183162516314023766153320245524429636680850366426287114325601558884766942460757266584333874026240910788250857916351361855392830965710800831931197224404255070953146869749534576204069957589915250161916284045858888199423916453692276951131349290224717418157888244660585397375343816292466197502426307227097368810858446185728048429456305319660498974536153486677899341790318576304057651842784067349088339106408871021285195105772344292126561299976117176274037869481898753509790126064599381259519298435705797116081355238263182134470427972699875478225379221544667205852262241972370352942176850475636336294500685509229119876848637288100032508818028134373821687856695086469686012591455402298338458495411405073078938614437935861997008971693124154466199195382749176990265194580323049665529266094625907064274053184133208615249617065184227075778734928538584334901625695503047576239295195749302516531140645000976866931584153359127873167785213249484364204821113809809220698626028248345695621178908996579169798370339398979008170475754852872335072703208508049149976471135818647635235529953707550061786697714264388695064163092265180665349668293588894061962906772504127036552619537075678578433620149291434596182798601168118721764845898328332306274386841780035655383957413052773930353922776819882203457306674612320410177986462505336336318569388107386692955194002968298113287163955195889552468410295280132018654953919725189179803236315125783625392781643140894217493206077359116537603450841117852176469038709213031258204078182005019993309453065673927526753765621798786540481871502109861825277429059114760591821084683390327703395166099761739453370120556733288344249546027007784215887613503768747666094125153521432921955543588004318687296101311340166936319263100196203952594704964035316320222768399389979518332723821020229488791791219777225330793355162555192505290053989231969850450524781004983073087465328806807201553517962716077739952067063187019007436959233348614494968199566568794827828427154286600285087047460454792398231866696651669952804335345191803484799355660718700365377947873341801277073468582477764811460029343400577897225518981003688881478370144991471962406382053059170002759739153086417557596303374753537083055889410797953896456371770580959658668694481363212995702827076535879215434764337707493688383703290360402656495687014979206893775268690441605204134438586768068872391367184150520808702110639157263617272664391823705203704786070391291887644777535433126427534932145998384759473637880483192078391888146972147121537324091752552694862161546221452632880322684113443565758852398921872165120252836702155585144980456821753459784650070418209369606817471084505090247266965426746177361915898193162212037803377739254882376677736409503234058052754794216934266615831843707347321393547644805727068992809159514750612646685651191431460959344847433152057458328664447794759024010491153230358829571707589542384011075491049996769107544887768926923780975784769199579810326654322586961177632292270660134208931242376394543251530250323202117809114799240978530030116701191948463273289638426957141297482966646411258053627679137608214169132047684989032233720646997086897456917704347723092511332962733941229531274177777485102320108072547214747959315837903999634073735585870307589601822125941022836079430808459387498489790829815933628774072164873999590366793340587292552223777297910467951567472525782949934837965092160422069543546454333500075360867491573902250253778448774502850418820649786011950770113589323921860319866404007512149693554406090643546030570043853930765418862443291878869499991107431460026058622405125525031073986022465812412274279055797697930835315267405825929007697761188602252289553978246867808948934621104704405663376339754786814739833696340586453678681638506005059496871917650883233061451681950258318321757759510165264658213662580725127384262227691015536550461923551791402060110002256328015988211808077112490663452700328044990408724017763164374611694357071268461096464190481220480214614622037013241050450272898921826320053940291667505491168609328268422030307970429887189959231146188230682406430694723029827349236890236695732043513411247435325364972883591703628362470062766681175534639773968105338910891852078581222965608781435127536776887174138188734686939403852134804613827184722274673409022418765281669911864571153158379309055968894159310735521356968953822871995887709668499393914964775511606440087342983816479138249344926242847793372901152470113155649881652194398008966788143444656074441722580535214105597205468771147002556756060823258739645227158715495224768094912888777824088688805545939896939888336766035941008768428189266151760653667295829224248755789447421530181737344570239992530355663476759527667777783835075721406133466167107254246379016881190419591992090256325537480289283789831235544809406041701142337382827018893549180734777883128144998673480341870702108553798259371022806544775216004729303330961145083458596908619051555274104024870522300570285739847230313929928613060400170146343477005129254130129501505793376574274287765743205250340777962074341307888485876183669789793035293401069849302449287785386548387249837333516515086138660881112790806516928912132770565270044357086882349316917941010605382784725794273936654226724940597789122588122088604636293860908961706693474312611543503085121531254808647460420627638315050205175664714588591914124814895769971017488053457330575081785602963809316235972504775434844914204597265481730811618533330949037354757446826450238776664793547495377525493834034878370312504107123489052143250765337826335493649859862954741237724882831862943599750051624530239155019998004187530509701935155534600941897709545897887632873820980614908045029162869937151411772676005011606647541187862654701890014168980263583129017013734316503839048823915235648435734929510878065197330155787742720582429325623299338381309138027591701543787237945419783687069724184886890771366197523207911675574779784937526171491453237328725370985032367687105451722972859999180513084429240768779664328337346860154697015062934720128264061854204684687530087752558265051896467892490521594504581365562772753641240269903421102401296836098768329261673190396216645281737203797740212286809040187026854536849788253518666026189927342292138643065636011899648812247241980853470778285428854880529736600963249786286575833076282765453312584165900540636533605892235439529777694401351670964135090997577360396322110300670651470236760780780105445308272792578681645653823741317227441918549217930751794559139663257395029117200873118335589701542404788882520174232286829145206277513323828433211618785224055357600681734833134411605244936441410882890386181447628066078713485391019889293923729838271384285878159958351103479569724253216042546635930336635088041964526373904123881437460566510663106572719160300619492459965628699605984842680317332262779231778259310084449121425706270001075401684251039981773327637451138616661638034934355028762699661431278778340604833072150981194381545424554883833001282309760301764312054995045319924769601240239816244836100366102760560943924577349458774954466227913223989206823648854876850206534728431071887554082274294424940179320680336068649306736650307382089499815499126086030598343357191684546078165868554645214089293850420333632785490502865741084065710735318142788014134097454578888067533187612534613110709977923864488010296146901608957203805609491347875065595899548751803723650738466182338947065109455800632531503545277791842815758080792031638123641987483458161538005427554277195672301880193719374916319237418288783202940042554378863576524905841015248812566672958730898199353268533438764654230337598239496360520496395675587851882368825145684637383783913597908879557207161140986317222032823808574703850416310580223116975094963190906806265043000844782160610644239442812516607551014795391619815753709896785055076741087185128048682807202943518940843546976033932318859962213444780149250168642335312487305757366605993914278634589645845542579243113269972639614631627702985036356557079613827075409854058653329650725862742142731530431031746744055371609323858986550399405688686226605304564081631449030271507766348409628639723016598204641068912650095662382154130312109639422159182617479905535282731461994559179269162251023991162182996959436826520753818295443321893687324233577172352363930231005645859383301412261929425503796826992004553257281503384067685348435262368373787841104226130802532431123569336289591769369228134383991536374292513949825071292627157874939998791081719972625665128996597996086741388248602896745107190553697590004842851955663665871535304315830167773904685665561712049141339895439527793475908046218013271449223460271695989407992933580303096177631510830125599723283234283632429635642777757176324026090370601600618082745743510363199637423648275324796104222013993524030075204028486092148556308182230381120929371927767254129745049755873180031583884776488840759531331396607251593410262317999294126851611699428843393767200224882842039161547567523093669320588837641940159953329797373313645709407826737561822611810229940781933986489557943977456748357808579138839313214323310120483312352133169452280318942615494849910367913310816426801431267671424873085045668130716355141193900365045397699831531456336428347633958323050009637382409901696125151924734963952140862962202307140862546384436277171025594904903518769633061847931150640386573973728601499268213354824458037030098194319958937979401038829800623899674204605265421933509464210824639319669834378259227550327519236611149091225101901113630834057591927665228748927081097282565923838420279312317345944450676114587290393670142368859740113906109238858409244755213627336787259898632285489427128013667969158364256551480104608727919781290329194835124653551076704898358167012969974194239467965332438651068611690333663570719525711375049174913515450279070385377875151850775373652815802922831193672380035490156661260508453680105741322861084658304319837571283950310419516470305020698582294122633176333821993377627798819819652182990850128895670899702880247204149690947847086941502520085296741838655582981544118098920120617820828979735282393973584208903361509235689860093166734549167871031098172899567021819842920468739738336085214427182477240107506493975098676584074530112030063775557999894052052394675006805362895169366483916839717043719509697644940696144918676501454805652275147296451199370753943760983197031191780643945391392839524920406352169664985972890394739994372864190485477125793921380136739079734633335037897540562303594897082429267543239069216242505007916543044140017328211522824597481181276219699430123882018945939359286731829621476292788855326515905905782922144709645799161815670927241180228043851083535580761511808534584196141835438078321635134060753744292481047263269935901117853946106329747036592659456848619487163071521110176617557794536898923126658893806165083278743941121257103526520537290035667225686386312937705364377108726545464853823109302058783723518780053423504874734178628765863560893325940770852609935732120656397617571159153808996039567376703468228218234975206214194661327615231109865396516363113576667465158261835841485324097788955686839221033584539144853462407612036447484964242659849588828859110048653708280401043459681952909610482321454372465530968087607119312340707732283073538200455923813383439808698635266311100871830199998957797280101029428492502978510188916501936019112948195201247903869884917320855073825607463011417398090077264889280267415918748160356262366639054419805779282806377521905249423892290775930712900211194752926774550563681767151708287629188750940379527772028956291555544335898907409663407589917121441576870296830290753414258830702150234019291522839977197696594808391947559034250779449497620393165338854098629389711152055085196681759420262698334483345559122215579793627734246760382636294487874387316292788415279348551052293656308734979419705804184584442823934901753338383142150841674696987937692075260708872934814038571664330416244117718389495446656569410393079897954191141196085445062608430513106291617400142211431877262133681919066395367819133354336396197485895638876245763061198634085681819605025590736494532142455531179939796893819841929886815237637916660969684325871675642093846329004539640289715156467498868785064527568336287583971207447032958906566170114170047340240044087990488155775825888042198426947959560107089883172117576782427723947772155005341113402536289943326815132796173636322290424195523547192776875882320630895526494396956461348439918772573774652561337993419521507526302548236943363835451266822863864030117619135889553492784482347799132921859641048584286638651596166066839528814864040986518468015271102807561384994081329288271581878734224198871040412294421306399996205810844779253517695487433919102457299132185284538903676189753744599645026993246032168406923931985285418528587498232865930054552176125162141557900080934673350070245233104869441447965630867222504921232292923130375658060643884049780660413970555393686718312127501096286438449793014251917582951669214921865122892837245247219284006605602239354740279526387487842681503297099391062642520146779538245587285981533084046016602514701315506599645509713202604975121590837710989405030245281175903979336998334501921032767197811248056216400059421898434054605349500653094081092504384675547299638753140841002634069626965325677709129565495635410652719752834109216508048981856909996773859170905252436081540003721658855688346494961205305132718834241362292683873815115559695263591808876482308801192171096044283430313295667699646915473203826357690351082184538876569672030230534558121280324504139454725730075974551288746118333484150543158339463709885702494581874150443969848073712737471589499847591963434326423849136873047278639908364104779827025627667393318549648647646106571041742096404149842776394094002701540642307771248624963539533568573668940214678705260660554686133090658702852471788906674654996214178782570211150157488926159266335689397709535096136153044397694483154947079538214744569817544533401515207392901433394662418252870414756730797216711881636972380596098030769732265776002171577046329774147898884198198135694101581813070546758645914570300435524060061994649334599232815026560321893732430366264023991637842489319293374980396911526136370123534264563539222936633463244041997135472924900851505458110291486716844233527699739126702488123222519550328322094051716719503153555623359350814945087678593453891934657447226208762891506381295887159071803759820774441897155835486929563068299257899350781408958688751303865607789865061313475918190389310846946374408003455356015123497809507727007983335610840234080910733820229352169567479597318374879465502709502932133960226712371818387079849262251974788380791405095956499436120296231278779431185399188388062552206573898972320908346120791891639115909580621756128494139394854858964619704932993407278362129437441343049676016847929044389882734460877773977013883758847911995928647821759453602020169283926134371586277503998712398197535311874716073712656431389486960467613289517143199860068078386842125016674892671110374545467284820649577462990816105524880896664834456311098922730213473127061741640410426398425951266750592665788413309667818064577658524590122144265362963268622614131960823671485067879099817878726285485177766553431026594885495653207664962926539844064033672428354845850361422401114214539243150982644157253682897863498074663279342607022721394250969380604994083239252733158178558613126755997043157942730274829244474913778088900402003776999117316581153877062007159588653717255001883780080991421112773616636634021266484636619097633958484569932068573882776696312772258842003263900797810202614704291621379383058816711486637769996936034143706539969799678015875494662435617915595226358852095148355809684645722513955415964272033897536697100257145735002259214336656180963964372873542710550910721899908330374249274757568652494434251432157410165800695461286410143222441577080969950199802295367022026123390122107932022806106214598093433260082250254472198470029823212439692700054734696299311051743991285190596146655694491057617225138716788847153005526558060040457726448534455723912509707207502567689892118691390626494531465508492979201603810611829134494909148803537057314306957703900614745534002953738302722975060328211362419812488881506554685604790797788133901194516943566306608955031861417374613708621755719015860062966457388020980744626122365765449200453500868601827094588154911974764415136615923502291241082431543946018873328273350933969869724315130244503519050614181229167000173716934806660277367061295001650622776820688268248224646120593620126669627279048923069137699291614387198056559512828595881414427371915132148453536626267811350187797916115917443537545907783317626901754772540035128348761836504370949731407272279783674433023095721505449701334901057577704199058672886495642977157861489289316644611887852984906688640443511811447687245714360881764051658841760734535227615599888801663879977450056821824479904152140466363588544326849391582235266587843632950417641834915273067408163599217451721227533687345587963702198464500530811737633408372518400144958544875083160357574414945191057544018886854155342124322515625141223114596569592706770394041754812316354298406122959110963095524051448425216088315596757257503393241841059747293671664260666316370500419692310981298747882768348234172183891972621573661004441936831811091218759161267226498791522882976393947662260786656359685602861080666626962036757378353919043730106895438670698950828215359486205402519655125805778199162924754597937984801845319400793020565073760959888485690442346223507276481394412424911873471691989453062210483140284955112934211793090735602644035622097282287109217601040869712082977300411305163963311923304404661526184240872163307575487398435624755746929309365800024919821944007821788650234347770704614917695693981898672409147760261588363802494131853272415678376206199223647303186324249059290821740680670088893757100378020684080917165916501248514314862041609172580964107656389754939542282309452755780796669064215313140509697275652049737785135629462337499012555434840844978894285716434164384309645144547615083240392825961343341716298554143239027218426257185564334196616028613034788560089807872995808260064095081933648717181232012619458998107258478444845089239120455519201032921318808085124396202274137852811529746714360401981855825118389060024924185778116639672284686179764664199828761445157973535334410998816085273018963100024576607494180180695807315934464353066800622292837997046199809618288796552175873944350506211202146059251871115083353669325444328867483407575265447603415505258616764210904179975843157551343822206112202100398851250784644074491739069140222346638628883232841868149637227869585166207103119543634784675619005595118563182627078026282360673400461023587139666342183233715961717313800076150071116117893300350099838099878488098832992775542809853265881475942262524179674500020331660509431313473464991790780103649528031928035636313636401793047051940615607420027546698986179979983585174727544803550870197617736981613404746563799281484894849812271511195993923460398721560449290099838660223499006472725541129166090145364251198154285625617825374377582719893196241101065552013084540450101655237164068796602427615123595989014617796612357343271866797651458447503447486806909477448493420811164145835632067583822421582501754949572726487923951926467471496773241396406541122021040419698569526155971079063073826415452611025380462432557001730489973909499712829526130247622707771642366859418232916681255865286914772533933686465726718295906005947480739440864924251281247061275901667377459408650489429906698456591552245670127514708715528489428610343675799317863322576442585991091083978729949502061219835899591446686345000997156032218328245002814234698604395717186929209785706175539443832648181865039023960064845083166650376592468590248533873536018652305246965626750407130098579315111970299963352345045445433253260850544894735604329975136346105046243662071131747798321324118749432577508352157699962538290287391432966908032745461691043481823140089638102307261855396112401320876171460803490952757129130139930351396593148049022102129638833471581781164753038838555700066141263802817433209183622357444427791577299665186484959216249992229980495565083987364530967866807389985609402250661323131435313315494084879735209583789871152039616929972223419536666856228436705198412281043651706885770243158820974954974289688073574831411533298869177575898430363452267787642610877877114181951776653114424103137692923481936402655973791307171164482364993496748902507823069613053720304872063424800783475259954902754767975782356580355741279747539322419556225496060155268193987442423440515031537334077447633702826400570438779876128805993612767767100505070020825006185080450213480705463704358074874503993187912482817249908443249796918817654135383815762191802425256334608414770142880128213203953533748404639990022722356273318832427271037556634956788197417979116607076048827205186469611992567530964005080871164384698696023494682526439622945041502310388852205516845654354707009674425020374941261680986843613741612252636015045914239960816145799438750874819700257923087266071531268080531202411253379730296710890196539827189217047610244894616038117735971324808045006425453725335980500192621542991259018191092008053494731304609848776958659331176255033883829785570302805813397149427845059119168393023570783139254344270699022496820794768160521288262516485467247432182273332660167959534640273213017561143828935967735270118582651339090373658534346195856044409687689549583000384450983886784078356910245093934475374623794238090739845676489214898729749549710607940329284655273094720752331756859449876909325357510721415831054099212708051638776908917369562981985297608668410024996529362114329629232202823661663274777362690847792232274536823575677323194823019665098653349649696710236321714339235805519350246990210268928836056906931718161577247882468910959008499088831300906957652537387828883543058281397356571568459584615570278632325025929419772702885834674921366179533575545260879335376422053326297019991392285375436615428038182807402821883171674334666080837123415569939247848053739837825962945722736196357711011861042233400330568403922000661108866988067376851769824462224426081985719085266996802462878034508020733211324647978055510974817092358868059161664656190521581582146166599876523648936860583941320304922569085962968190211017420717286842427799157036572303956909163563553018499414784438380331131105892965047638136898287168683314380838755094046574378216350232646264307083646997110492365499573433162610633915279342694550279304872992579860164685012458636828557420051609387763897490018059259298905537058938649875075755265700649036412775886328924637623129556051460845401014711535749235213427283337072472370149359154151939565312492435836188729805038820599077721824117043350886709806889381517157293721875803437607676203941472310927461186809246798693202854027879670171763576788572525837483269798040840167440767796216884920034277524755156922376591442223758361684149285621647576368451646181942096335465646956308602108234359608305336677826398170386995762781613373992042238756715164314790442824195086070792335660308283255531899357477261749704960789067171916637841840277236214705903854805763834770375295779847391713459785078572779430923543581307127705228678253914634857494567409540111426241184004715692606769218047293594811700310117316411806428506687697749441910525603578968743020120223586063202950324047363310439918722434623682219638371386272023815605815323337687371364666576350365928862390557057705059547738739802537668585137521687278154455203948857740007822942404507223158913293048746537899652774177299539532807756430333793540698090109045884153662240852325854008390560088499948848074201613516195256513641128800089430073430186096246317639094379354411138186512406889575186153109526964795875128799514168624767438160436125092233734545634333040860922836910319339615286218729796745168892554166534254389458765588667391881221805086765121389838510946202983994318546159012465961887048277894991480660083355837768999076272097989651584519622587826574333533866914650597271390937173719544390794551792499076002852992621411117908528248299978968866685419593840660052601247190501496535162530305908002427737375546904100001714995483993568816125569854240622419820377933740690507429711677003953628079064558469634664149938201766126601878700407921512285802910580574131803920447890154308485428217880340346191062544306603379192624157999024566600481157095907564190326337114508062622841139630632076525066179688597199822019520884207341617205949240895722542771061295615875692650419027348694785373125595761918516016151353986946760608459722531208952092678049906151578717706409609006786892077103807721958726109268170232555536786135876890578395075242299749986737970210110018540941207804315909890158751010542816196626311460309258520133944434180219241551125713395863862447999194911249889557001320996342005636005643989000764936150108026984857937560909507455823370316976094358971105545249076021214917076489025035827827087982357390575349478322447851084759509415837365141144499369068604424841784478540262942383857292732224037404203056701993677850117906115320916280202838373317130583651804831464602492597633457119770681997075414591331036468172308362316993552212235429470238173223198146386764797162358201583218266560797691691552820781446605692082374838771380384092203207829128270715127426087425814328518088805001713494170442841680803570536118324014594519509339415925163194094968051965411919067561302756526465665560991280532016885987067614736662248011342432927625946373290642756594179001095436908046227185763789651331747758061869805655210397860466031600723783265677616135927271487877221330926492598306182360992734962831699083239441883111196247338559487570006934440816694540018848688056422997585586362399995082580102426616886745919711098091839644543822592998028769928214848701605129275419081340338308885489392808417147912047449684887382195808694869825062704030126794443082616564813507013871396916583699067244205045705939058553531156512862792545198064026020386636321687801505737205525451638675629716889839043511552534457415170015032176670591526589791748308525573145247069442905585210889292980751810166729311091648568634997926279475539253781437862886916615013304897624424471481296646413576234485127190087637534778397704722788826569634332316896740576135676039194334619551096218076101433277754910988000414892477750672376400099048233079984015736216592196194924242051275599279579814308232464887604053160226211959567278240368568629207895361587519457775442996777087944046825051657935195579543236307067219125426416008849678245194293500260402205911823846245286330071601555658506340867103347853038420317271656318903422292330696997059206956778425618922766618651852071109940798239857558077790823145307438386508110900673670619358379652695824676681697568977484650712072366795423480772313379970180229153422668127425878347381539170202825944895014817870111953867719716337901675887650503902997950254332558864563022862691033750435310576730017292233335542676086674333260764561325560955298891822653763901741106294793608804770805196190983458620587130083318993797236941760838586409691925654518926729643612056334351350906371015808171533549127177571625137887308224229602484321835461487024723934805438240787874391146246448115862028238421939851992461748397252258589735696212606270357526348966785840927680259573562416095476554538398338631773799435746905940318449873938263865081218903176512136354253177235981598864215238376262845518130037476593357171999606979496485086059110699888857506985314946450505217243774321292398241644018462423971492547117709783525794108734954035051482083541554181062571146187982743370923007914375364999619345777403112028219317608192597413416992109361889275524373474980326756323111426216051800387896207427145231712452197402546457252447227398386704897742155929566732023284802367110422905848072455863325847860855603348589072589705205606191697726542333850954508311709225126019851993392958360003310109870798986890596641929913128175341671725810528044751076680335123381730886289945725090663256854668744050150183685724844611209359167975524530831413846979430813816291330187029246246381858791354256666568522914577794703874756003621968036512393506541571550995312375986679457295050073279134909301947507178644744806934221555858518135780980557543492559917061418923368557150758299659894371880388799371926512542319919686296038315847822575984152540256747886528318390707773817929395585725224779468727035504348425793022372366223065490230669967181977103682061548457079955308421183508813760434767440474335473676051433075932789457919714290128235256357075512716999912064206885761493339881844735364954313890257543607717356866767872722856360756847999508655421713396431561381413787538226813481020273339908850371485328834398629838834919903332489482994490003129820421971249870765214929299752882414039851643077995096280738251067406036314234177462417521358720004930373729091728788437800506084679082823768125647095884253996097640833803690514344056305250948746511931940887973336634377782466058149201445729403426139572818645259770041466052664271371142188431277707495763468139516302463853396630968594326026251143672362976782641110912837782695425339803026314580988003218308643883171222867156854917520832294596124279072566734003989523637040829887543227374469555098543948900570329599140352081401343369231293162841190655887097825115898500466071497752585794528651955047466481835982287560244641057695988878271891925203914545145683802492415080420166149001182420840700220565749990123352231457849282439100282358373433335673825470560310756633201558867708923568563252454250014061151237221150646395902983911036916217314775512229695255994815322482769811952346271067414077533360946133938445412529015389115954164098951560194669457438306343334867998926811448453752890145411100035317924365476924961694409361999140697845640460317746450161604383198218817597169803581195475559930965643770957038229290260037349130118541066181536341399868550132364358755338053272858939061537857610467503656052531767033953463678093594072106043421091467576840035858414315747680648921867979722698706088865257900569697960113504050659818809220448388026705390302946176805022218067300576416711380142455113361575297860056828690279301218924644298486240402879028982095192811960807000891932422330088832774832716700836544575647357929742666448366186989327653533497311529470574009232088394996249920639830793967997709655678286205980316980990464816747879224939880621435163649801957907709800356403413896682414996305942153299917154406775508662046966472445331410468364414579698561024903236910656710932883446017779685524841999190595427213107836602746784996896264035104225648909652450653555569077819949843060897393981929937925991617423155463818332959009378353588205252348872650163088672845857652781735250124925677605572765916051168945482117684237479209091043397283831399574823250243718770260049286500309013110616637725576741533583567865898202772341861905517922904413000822133144676967072875265996239345508156917129623473828078374774923720074922759924471531662167242210605420947279129582745725845937261117157142017391702873924856258271414635185053638891566740241873275120374616434045851813443311837509975762364716042435903082142828054327816075860467462406352969010450192255574588501177904182604134318772917973633739375304271219836530634730430603911535070153250322930059718357860428288371506423398536351718694910735126171415694150836469226021134808825366988986126261104934299784625345598068845207888819324432345838808762930363365352406269862816380146211245177409585203927214651300545661683632560876501595457745656962178855632924020228946456846275700679903986738378754848588712274300266688612425557134307382460658955130369376022356609438368822024735516422766266041311167583933470458551701915513708713056757375427432124931301021173149349434994184036602205183503848474048209233536048623384959073372780037208405627913415393475430219423966063930734263569215848404747489446712581844389818401204385984729151474658733848392844787847807480091507136840579158344852393402686132285162254141529317263612252396802244833213685380349506135671331197663511200353880556193462051705424937113455792785318968425528714862341703753391165208902288263998023730988160730094854511511899354550900173249966804836424513374669569122545348694787647907370326122135913609672611769583562126425693990036921146345751510174845156174112628283021175933291427435321290694080148339158753043408241743364965652332210156732481460002596661129076077879894865773195214785181031562527025548168068171327269341515907983337288091475344414044347214433897389504749727375107821444934475359393166961370131807327030609465770763360006995909859845421464003504914598755198812670886778888653720410829636721109764480759530830540186641049818007858699480194760509731675779285524918468159591123693184317769528055953239857673970693511716464411196690244908762302924330862999945499881698143276131828036686608089792035062622338922132343698141701595127020186593584749692310468148338444338109580931388888134177685687488657974273176092720860529044959756629002062432665013603861822714655807801417013704229738115676180487095553440105309584260464247876445174264345553944603977268880634558314692730956047360396217269665270151529075801909453472703981601979612493189058574853440821667128680834926406121657982977661924425235600259439401448906892330769946869080102443116068700629493902484695953233245695668662802367718398059077035281567176325624161580304457722101152313447794841732743718174200026090974151140176342231645597597354171511805264462795507791715922954771995591144752087365935977903656316471745062746093460464253855118246688762884116522219616185944557489941855466079347191914532012216298039918627628967908997962494324079357719473015188415684604768537056833849546034279536904831688635752992139098966098386782723377055351478902379965849058674173311611565082960997459533266020609743864756283345014998783517298174660134464654336579272561813907495203158886500216870034665502894232599411497814796088582428376663226260776536109385056324196533526842363318958245320470851210998712148137840734578375816116205099264415146094906783776100840263469649805569964802676394767886985957620181920812755245880895954163481555886220917331707310083072295155812456827832875354008442365747053459308549513505859263318715420187059580132967717319578591316492948750751650302742961095680543311047345755475478676721772213266060046612769066123649960684915241537643313149453308290678798343153011368509096545457329396891553191645708924104568163287147297208099519157965940879098371106768928694061932692109437538173162416403156763644531224206166499187895171865220486406556424385572079682492383604771482805843657017537633948993911152629027957586127449470068568607351609398589589706001390773888295496990805685996544477329276690849397344534713339971959670194177592942078037103839942546650704085230427035865584128873014064096432441259987763281345773284843323911727981221661259716157135839462136302270573876849632799191031820064423403152340312813145354081128429250520207239547896787221283680599345232114980207275973768455135954366282049614758615113930052622684599258330305033442234837523242506037670092720567868698914754035022278706266284644510446182764992168201992734035476196726180960973256232289316245412637890665306775030319607694717850031964397517740230962268611370866887330365377834337390799991841896148830467679551767190498671907795766472671100313536827425086551096835895075713052930844016383870487072512049352666137314620370912734062282397760974031878744416646038169554805575154270179445091987728661253627849142902939041458863691351385326015389046024282068074878955418736299094628992650837000166400246949334391620985209566801989565616146953698020478576914927542855392932660323207007737089036789752185284656992168861184003290766026623819353088826081903349464000673843838106690880532112662840971598732718510936243517496832025450172037842026423781400180478970945645305826658190273572557980144124310748203225953315494148525656574273974003363649080433027427577823649129205597252429531569263476609838720662915717977385854803315320889870468731082682162693415133789498527006312418470834878138884434464883925695053374923585906743222593465582295886528557412046058920337926515678183661399389035998326383781711751323857109987471490321986459646711147488546901787640912745618969069974014595689851305394357858323718676251446708085657784600671962701919693895357055742111933902186647580183480671142058818025885542168971028072484588711450993909669687840004931051003061241783056570637727983053333094981636598832967316584063732394292378051857515805958840190526144747834196110120166440024425938011072268372375348783054720268785148048889246575429596948184644531383681839112558060156116955973822631376523140979956132782854225203097294966464593503536449111802699087564222579428301005696182276492057064371742082056792624440998080644870833382364933351013526194651577233640415262271632618606993296644290259813806629819169754697995809181334446319251374130732027495012573850970680513183100785225542723490299803963344369735843130619925983130126316012735803932166096507053228519512019008283881617071592451390577621210993582049990671963649396658562112701883526535534861930027838600574121513902274742602340332871492776205545189502798871374045196075531362037067500522227496518787754141092262550365785353438754405349004976434283603895620751538705175782818384279639963491722736735416151954027774105654137154209595155736714968890216415951286390183689161949028590310095733660537511747470112691745342824893796629737363506583243883148943796347935001509823714066618102277667226424639996905032983683966322321683908906497760741171605380847401346504031415047615507265346158787066045616365510314125338113515324999108320162047678140001383519551424127120376695393992462668956040887978924610820811094574107365991915391782034933856105802044758413658170302841852221036031824244030561646345184772312465094959754034880297522714659429597943754986388647593078506092055712021167844405792471172920690054828234875205840240186581124149860246541233919116040660325689877282637799690758629833505575024798063229323506012842077414180904266863663512811789521719779743166662217951799465807304769002609326226945870031349382296946150629677085498846592160256833057794147934004154877430104665327439851647272097259829876884324709015460258292877979182720217920971200751769152470903469819679680380371286744949877181517051654114923784334743947725652169270378318579977711391978523423007926655201021110247793359233208465645799220703245526647373394900031583171054211712012233879762210226492114947346765103178494965087927418746390104499188207883133032697587646821600406511528295022943626351856402902865946355995182604827122148312053751336001289696950227580463708251341585414735490384292945161498423677977241961216592031460695374157532726275532935371268829197404958638405971823902519202195180278735673541061064135451306422219761481571867791829234035407692755776063007621462300561703675719931460664705902142543331341648024346465232334286780393090992474726792806835812439007001701991580880809377213286153163610017085269912764534603866166636223997928754013502424253527700582621162571596349044565381675007262351389269363904056950206351217388559280304626706729631748417443124174663605132389347617968490447886140021144313454784168183371089702722954927252545897437418176537979856072746675556234537313931436707541159708304115415596497655361191746782804497734810930034980701594387882124477815424025993904533688231499578060015763048755581687064266486189279326183466874617707827224486020630587977720109029146651138877050359207469221545133691186646622009849823385301030131877205853838914165303608613488685159935083515925249377516506241131100105716634972930597955116990989584042157318239103921493949391752494181896089634744019335402289449015162004509717346653892960191974541428605798616795998453942931216025680234317604471390373078714603648580998296127886137087842069764996438074344804711120216271519934302681267092682431333093627370164234793937646574187734491174822184383821560035656392250963758673410816677446549723096307993733348856591177450856654282105319771178947033613742539188038252945641171507197545360037113836300142750551859899802968115835318397580047541029576888167894323489402616438095511252602212215833988450826755293425593632068448220273274577709284023340182389672339778176044844403914184750328910094907630479992100585631292571398210989822070313029351639136976063068251016339771765384544123323747005215615340776382272778363113418958831248337750903394829522813708890876567503534578691045189661023800507689699031612588765187545024196940437740322608570392161983529881969315465276528019633573765002676445031759862126350481888688939547272270169263678481509501154299597495058157949414644588848291832226091015793520105933518453675170382583554828757168285449742870209413080431116105217026123602662914614381061023094865107465287577702337341351480912335189703091562082464839595031458379033657777891606561074874777867092018171478492188423765700769366951036696756761909810120601414206401435408245370189951468301894345987350978132887166554156099942229456790174875213322841808566343337198132719718076857313524631507850938477310952309602913082630380168290694543147450848622087634235076276310387829779133660427613558391681532454323627905095254729557954273936430640595400107367802175062097764966217362028184417363232848907693754318502114649938002658105256346097929484154940707156912541344057238345211197066559408994767031622226167008718541956982505649676840989836681787702720879869386003418428520379406766283039682440255510043382660707185354064642801433695523059473252674880881016733908167160378654599901781069011676952648788865324202297971302785825511517046945717281642381343159151912514990066208166866227726137709259422468999233483239448112533806995639604259573087356376983856123813364253619422857242473380302806757843040083097950124350627463433856796224190445586127280273722179476961550317286151822581601469750292234525405187701020785427062441313306095142371486118859787678289441503469497540543426642501112445627325517856890006000964742201338081953245126921537234034238748410601331335344566898823860032734268754213502077413519927049271071187571505297517800290578483161755761862144027597928113414276033115352679905148634813258620093352010957709872966284997527317017232297155404290632214703075185859599922946931051972046480936705887820337771163078245489084476577400548296404990472767113264318969909986434428326949747996382517503328186243348954956882629365173444647221920534517399722927904835336741123620444298254678282957771615037224786870725905505849780043003385874049314103253830751588566961847006539058728662428788882638499083510678716889811442769102221457781145996510513156984043169495633069068234490435713665497825624267447534176960821988052095784675135868364219130239171943319217932908331230118146357204200808204031392314104533832575655279448258389661616543171138190557049973229380207014331634013924706490327061723280449632748939471652680616899773150916057500461777119621705720439790897397264883486588128932213519685300066426015310336251374027599314438016947339918626898600407424386959651167850740045082915952471394099307555407445637247068145132058080979878513295268635142504378242848422042910642465601750500933607138117996770109117461109102356440367558100744591363542354852299900625779257932552699502583740748191541132268731695215081082961744968922062092033107231757481877917356691565049564935661740489347844211380475429573761243613431980014357307870298992979118811161147426562193427930693310892556549587579515057271291494934240810059309997324820963896313045146481732906680211267923836425289430808669936161376869669053461060920388229725846544481783783985078203764522555311935108019158164208093883323854401143179641771061290042403749943939084809161722174886063986912475398343053555675130937919093259902337537267848955784987748386937507530615620165068959824883376836560679527189368256603844012517739420556970644245646026591478151415588461889697786977469356754969432144072140245847816218195639208633675272825159839306604841413711364833229025667045026139790008086569149532365597378603786240923620209521219229710462109348302389998689260229600959678443869868517927319076137124389186816605995941128480862477555274121001316234566820304977777268667591533920257445705071189046354327495987713135983096353968425700348396734903716147888238276736067071623662958476540197311388639750526409312174727754752210538191006834963583622820050758492245323242925859204237875459237888683391572188897761538274100009657790401155185865370788207267179313140344892180599832876611144716633801919068537238150869544417454267160149909196469781939019191644670829246862010750289107325263166181865235960956088958846544000765616737983467025930521335048375957055580592055626016350062233295407893913010612068432616114205093154077029044675717836691278817707072831935261553221203092297913568752143904275343279551746734667924363063753798632337683662992505627298209083442552765027442288990683386845501554552583200006665370060269436247693350263885170482522304859955912574969244063191105214854477679667058003497441421242924650703473566018922303216091974666733072521787591206014358556336338175853751900016704404796957250653031306196063213120448781688370815974255094651819879688464478334831934274710415507145981560548667273882601730457193816291799009397675754655629784367971486311624464020691781082666110977475148534598684345523202276095583559415081938292503729114624123010038647803688405662572675657811794654675450773373257249589524186714705502614052088086860978771847418670342966502369115876759249944818184469879196234820718754218587523350995538447857277565982803887221392528989694894213779012999649984261533005846074596753243943911867619235541274132644718361297998693210218954354692890220399099053318110417688271122907296676460679381618690509840200847716754229989078254426290063095362867110541578949240510453209113444348944176590825073680030187236303266846627060356950695019242933157670864913176602950983267529027278800320203840669876986239930852713464292048724210516991928013563229221564733349738454458690533730362638097417337850792911444579933185333059559270372465492208464588979675233037598898231136372468290301662598945645308035850964499466632841214977401063640568930490454033341592333288784318340562881852731041759679870056229202788431725447781621784505788672791695388578115427994706005446662044658875497024688637458947857619785522344833391698819295091107985023778016987344337192897393108843075056734614450062853225933773851791734871488191777362828755198928944549229835514901252007765587602525763898760809896854040988539794903635265668314697245556122439353534910480067721376752547286942606529923848252353984572099870091662954171004145632540935695626415401134275831536139401434104631495156328188577007622383083055696620809249232734656082966341751623001896721227019584944684649887458731621910235406478459550526922221178485431495805647585395229836346237217386400330648166788188347593545043011172993790760710441487598352927757042917004536193300009149919493841367873658245601892537611895629085208877803653600988622031623212782669105181244159912835701289589229406796638183766470340516876810331156861266258610246289663814266914647522951483090722402346756273760553566554898008925305308468197203193777560702659339550513865403447816245859931616138084029365756869432542757568427932037585010145894884782053310971923987328491192895645469737247041037818640829671060902480127073921101147281874633794223781663154063340717286310051336729015055845945142121951306676543143584123090962671512599627241146721189882987424660791003134689843264939474166746526842425768055068219079532170329184305099724393738500375920474555743738151285425844244891017916582565750861638323859746599857038876329627914038340257978087051494546992915744129386622734818214320084189856965854866713020677521618523589187640996081594893538030479850062148101328423940175301031639162648155387145208435083355204997596060886590819680445246923126163066469254946245103167841939802160270701017238425656831448693112660543210282308747244759348456118310001550145880839911546724620384098965646915102366715119911082686460362698672471297183328942845169598429034064977136251717980536546843596761285323681079986170047277219897482660173667704608604774265116871142081331691293544133710059423803349078601631535880439646338107238759487135681964604046321903246648374511497568776494212479081889001446214563787541271896938082834771311403928715171209578287822720643551842336877424380797805975065614710199941833343999852501063914447564768414410106502550914176596396690925914819561127743040661807885710153554948755242280264417949195404438738773025785907388680480495657126442263294416571893185188439792533430996613373788182051573463017681627076678313897255792598837955911934434799659104696309025558228061171362086260524182764232321651926830545132384533627475995415957584485759564818611439162102531091665555622757385240775876513158878394736933815358835802862296047204566821614185218630051557998178742345896485119539029670854550032309695880814458003297545556770965112073921182359460992562043064299729853171446861375358712017403162741811247995034185722896392817729400839784044478710703819303388365001757368640171324505588274173710280128974389902094119038090818575736088267673166054356518993224810757083012268371829711280308849654814339632874372704885994216250026469717554507878774652546336170369182151175142431172921028935315596791020285750140136292255826269177661342084566482810062850976634958063558708540590784734712320390832253793008512343891185376021904020153065082582434307178660332420205058660540129813270498028748227958662264309899576828289348134651479988275224930268160832960746138770250622766056088654449300224740124782903222959908000791088604155295206359584659321228927372714040491771800253225844431806427475029784523738322430081093709565864747563058079750157650930228762742660717778473627941676767425474019231169312918459664453308467428721246065458004094290772394820913949343869493953154214932028196365182913301561240259877303945553809637015221455338294969452156632623898058150611688503024123238937647034737064024625199772203447628721751839868735244079947842807348318245484691476161999416121959719758036735920491518150754499468233213177912804321231747018496189354244100440625535921373640011137377677743110347043597705425263903764565627137163931060957846334463181122140176814221380553409325374203064468727006447552538708058912729691650670048239464866348255929002756789391078091313467523031107074670837299692207622069090609300549151857972340877862054984040055637852065175263534300583089936774644651581877255245632691409811440908099457711663092255666270639162060925652443466132706968814002849012457389935608364812265950027208966652057735677221033570658189658854922835699215835739996574660227675838262783649203446748148489330565666040165115311584183466497655070961472755567054620894028489123231495951762079049378231206027250908863971426813514533248514699829320382037235423006027666850966566860558747679583105377427694075972604611440846025339023859543904349618947517520277481341269712776785305912012071693236306371590349392989745562195811080085842620808559157373240650756183483907656114427272402830479006420782918838441392928941202785869288284526169141740420144256259912625344363810746082227761235381360327187807703287382621308696284294701134197243864986387722055767701406548168682987610918388474704900350291105138810797439827221881485024752294378606738301453658097568863198373120271706084550299677414401097725823756985793323156177264846518861176886298138727038760991522387129373609006543451107167398192191923026008749990048776584190263174821094692472790855083872812797589570821920745516275168792969438737120535391195939586824870321813749091261793305241157318963629427224258309905323078461890383859280179294065724305902797980145158929928917625604682760038557993500864451310594755604182682184697893779702221455596779771914234592581910517240287093632958233113683111227245847808791956314574191257850333449102225389525004446842854636056203261476323354828724873190387153942053680609525437578892316863211273825038223969668704621303733533282273211654790662257738121771021579061344225100670408243278251576575852289258799271482929338466456200765331132967259616360962944385631271742868580268870969585606200947841760239971329209636754139841503902853974103911392788446330705348910008490880924878148177142806002872937421499916967083503862311488941019857253840035985045077735691674265620721889924930974632287610640682386453682683216517907691647388381963190034202025830518529824396998483475302431791103721259060238464054704687407878952840490565377702560065624626224580614516670891616531284972757393184965549782132816309554032793691702489279574077434647527994965721223644673998697838438468194962913429173752926164258583574557270656340587154721756208841641045792794606162399514802352771684984931117703829010546993853623302469729511321912681336048270752289637728995508537361416656229695343146652616606129875403437711401282350981275713084206984993805701977597280737771144120915133470699119849037857864736670525978508232432457386488279137398103758241647764479701023309113077919345773079116922787278891663466831075759104646726422409224321247996948240709746352258493090709105971587252719456270087968343597311182009839889441709603757272774324123726054697583336383470274408391362222781458919380590523654307168705325268383963358179731354644515274783007773612806735925297679699104453570313882147840090523946608650042376389557664733469787014895813681691830041769204945444689520911818251704674808402795398675908214799804999082131773641997307457737295904278202800857978064048695774183965817737724361760197375247258525954500204890852867424094857173357287050278982396892825843873862114142230977336453655149651420085345286554648297615131311280677203769929819677180011566430308769663007324532561689903690743937611267835285355612502828189190693779061661158475473295695686289790982448130457351029401810962991717965792576499674754011190646955998802441507901500245632878352449857536455409390588825273711879315748072969164484995629826560555926633442421739013290849604881082932924437188107969671797757305848467511439377269602742375326883206617592651735186600096974926815596020633922965780756817807758773173308489840223286919338320203994908522544074450229617705651640945358819872884485897888456704519206811019100306486360440306552196392566876538845939921038018879964334159338734527635477961729370407374289270491635426031723613993860288390946371549784694042662282635091955634611392407925860933554813183190940960302072694275848878617687763379144781912619025752913755392617083389334038509309968736413436000047010754477592914548215820805237945328292602568312407713908834933805013451906137633105298189966258170595766420423636712113479511156135658285449678019202056145154074586322825640540128242109374127516068665958200936454525698479350035973206727394316030320363633447874956902430848691609552469443092651910299964757769778471395159400940934895192206356732082909967993043863541149199814924881574754670875969043726044847489408783836811346607799899050712016691718368664470327433200312677271890091230652937640322008440790125583520319998050055900204034331924304660171328769226127860869462271669529562666046991671261118219348706778396520031080739815351389412959680452928390883004502726494399392117092975102040629740628315170256847143288949646067121160879305912081604754619712223761709178030790077691720952143182212809908161666122969502105862055514888742494856915142060180630327405464700627728051241156549050386966486452923904134733266287496584392312586468042508458146227335447363029356223724317379803030806366743111064313835040551115444862767401136061550377501228432515675926522498911597069514719583395169981438829090890270521130747593013291633685755130852580352247276778843910432987934547768751148347791655473545310284870671417712131301379959241757862444858336843354522492133059534672299414376743125152543422539484416568358749285487587777508412025182325535933040200363888045042034249373184079348450272245306550717897354124685404843394996987761870919711045907478147979317964364645638381508660204802060446649357602318404482720867751219659173055917478328555251289536497833965563902775569461174355799195585946199239823511884694636802866347791547813697103486552563563147550235535541895792749509056002851485703073473526576804891042968469710694121428652240389078375734065473172278890983086911294028143270778450869860103851632580134024207013867880763373446679410439366344789327189125065183982078194786238789034354266469039562489998184778174063327242174643821757830016198731689748149593425390121413264638405413309972690012212803650488623546403533657905981918273293221009024708385676262146539594561799219054512138758060698850569043439740724846234538248506371638453112611535490351002123376512394023664903596761674161509557142645319132247939187368575559909629827496428399234393432267637693490688064840820599211415287985040524292428036670811260921738112560515667959441536560453521983153933487926426907481618292802998763778178536463653182531972745614414186282872378871936752228559502080612076467762845080245871245329695392709228306487201898401823773521202764610703644465060140110243140705648368021723048496245544939700076245952688491699200583587223833329069140500374806803975973241126882252509905627130567252318110992784311359658482209760600890836478759739714477306481945684467002845926433423871469711509458753657885088810505423600281692049082025498016125453056280784804479059246862317097609854511863879989716366907424993546084160381854899754952723961236257249286926302041480116298101437331679204347096502938814810666349801675517149993229184915337342913342829326492599898686299304442313706293454393185930338137646707192773949907812827963097912645396059769475754457174716153759060163087983764332526841858829806368662179633986921405967599370232652471642861733247802661087454939561942089057071283830970009793297716281571257837680038582268136964245293828969358151286950231715648249036730838317755920629078438042980573950460488365918186856004296102421300029737149338527623586412878994393901263994615902834346008835548729446179852072433184593572941619174979975034306754226873007859103959398216051129320010344550193614264022605823998871422457057818628503428211991152745279392484592909117622676453906939103441499793693920716584141909018677606575384269317490044994346385064835660690294302411667248486742258044487952769961165108912080602706022569918446461597005098481676907655944642458845874853835763308664297237319742500247564857425972434195348597701225964086013371159248326985249252156582345622874804663173871566980243182505103909117611414234542047734499659340282514389622859060503197931359860109924016910977952943395269989190415900823335159083993101485137112813877243262296873193226937081097486360892989343318531003450879131181355109604300945220765873564106412750039392901519200312819460073255633045103857446925770014614400951080404274926908743719609769521710915924203811980428619234617460848630900492472830391734893109158827694974552645902144925647040929504613497429374987036912887656392333433606310461783861553697659559454864192253590941660235458551649622700938942076418687110498920475932438830863741058315843341021056211062412786627450351169538025995244762918558482636067650502362055932252428361907296012779227478670086386951206010976021702750825025850938616779800457591107705095513064602124441937565875645736083017579062509648002904647802047331679926048303857877360571383319420926609141941474569955322587713589035945876934359167109123477027936359744023095322386438049718615725411732582804119265269886555375956372862797996184436586565945995623893252740013745279503309487237156663472989782990242874517937690741681378310897347722310721708314220442909647531853640425178079760463047195055147559589811066736415750704964811065796561657448285170109454364047951909165819418987915570345213083524649597939513139152760548592769206137446878576079691485711139796676238206397205862724695446905311896558939624101623033492720459873879399013070882793047190012959777341356831294192633279255185483176614306950248528997168747188781043810956476013355758819893657978780908116218219241466826867287605630966152423234525200533496926556509348536059167473735324926873836146295967039906732823681042630467911397062394468911763109535014091311117587605909391356142236707326522842102601618452391980461170322481551724957750363184354353866073375562672543485638710171425815273429879789465320710238386550219025659058690745445112774757156655923627888151568308166549460854821557204765012025467955753124520742151129591426132955722301300191858631646162124417044368115410286317394201355686998687673742551031385086228426833331280777150217329908885161923196245367583665268841086556266053312123470676370969412222585301689563683907255944321347346763602943710006115892202151006537686185760325742892585370816888947833086874137906505932060393784899544611206268891099687388764435888494072241610849516731633474866610490411114174730619916264039764433006099419794163627301370913636367966808510103341657518553840660549324037068879201414471090850426683088994750977847153964321878361207316337436386418446304216060426756708527154967980016962558468074687584783312411681581074112705422160089146786620778757241237048150878984356042441997920266231836855341088610285296324382744961484545908797536850221112392720602334574082548208241006545804464103491733004786998417328114610927759448107825062024337138894016903814448108846656735135134147514049271803385766280045108366495642612909657904974388196093010845636449759851397717889702635675125625438110648334249225806405633848251827379496907597349967225372139583545135676026085396234501065062601610186182772356059202845487815349867382111423354584245693960098909723844588105240346251516026654224259391230875314178569230394246238280329184252955479082825837454892666708138811849094698024301701075744107238212271284653342760485048640213516257065438180362663642640038721382635921302402851927211168208196261036107237897252312364857578101198204538366465084043941687142738055267947223895354212033239535036339434615082287386438797350680951661501825950103793064496517068026429565826797032013177509507680823321158291442145041134281755960884899666566767209180809344509472895624128045529575120764297061636113412725608038226971973374435508278205040217698810764555076469398358740768056898491088733343814247636896936221352473414468511999025947844373202643291809094227875836880528327543960504668350478346544923569335656099605778592378556628438076081098126684523904019244964242573475328100962369069373455143391409142466269731739598534294799726687084036604280357387635214525543043628219811594258728464311488944842399192123032969182831980314016155621022204986117408974123009110533892702154969687318352054833859563291888703926767702131424371947962344318594682954330933039272636833721350476133555493567292493607433527325454423081028687251884401520177638601511211663174886778388447480612500988189866513140545434564875098119387823328411230781083544490331877945709885885515725216389257446804745541572534893767809143489736272676956177248672630545859726708436732753746808828398136435360095649398079935488372257127648724736009135575104220723882709034545340791402022696905247440644727107296853393460517795738847609446193140112408566842102586766680441703180816527156324543476795573057309422157860117144330596103059606919267334780844142666184331100157081194707352670446024229183644137332637694803200250139693725770894734372767704047818230295501800763004479686027184551955642073031586119873573862359052580516106080112418231587159651983035482604462586698817971407069929186066942397505479301078222205519566025905841184512930802604958938913086393714652811239028021744689633115877260596117229031335337688407908170096667332249184284835204970283685554237581069494252313398883977704340706688655657568831185287898480556064201411621712099703271734955700281011671248408352422893638795110483371852547467942356830530088530154812441232552437165580514713180419106454435487053039463641954434816070073629005329892967901399564411303203909601336214828918233091257962741046090117304066148009633310515684092226548472421880649119237907868376681379810377776342995287703408466606685561953402664045207549704862651676965899645375989604780422745730308071226691989807648814512075117998529364173050928242419175203935519956327517462490012763410155191423083613297342583245034634204816940133795353379279806991400381533707837696661968822074587109151700453176060227985106900643050944646132098904851175852924059972623985918745283271002229965300462646016157482598148749952941274253476162248592666872680366592640320600898768187891695051897236659439855683195410530957190502843872745346879592278280757205450201535185920740950168212237561193444709032401280224300333278289413419330355717657544789867271352931596799268628193652352309262293931427638953502971178601083943994583157832834279802725573512912459447615559576404713765386637820897706850837556475920322390512954482200352838062381363124637939562317629271013705732974699370244969352585692260997709597846235638302710667627725401823501940675957133078668183968300205086770416493138669329146263827819095044580535736382288327391175653516460774204830441874371973666937194316400976215747794126853176366912446350352462018459383235992339561012772055536569426435335770780856373375465582481459295101162611762064473912770569120248358253564670092432856298788659546165476338443212360237483194023133686456028897089026519441730731211406183964266724402614468123538123720414857699815553179715201361396870004521582967569758300514887992368370960188313220603698153514377552737048704079496281941405146244223614774365713061480686861091280939399954675131903690120525048653570784235428069003473578305195926345211195422399709087512301758713895289164380730542355115103377510485029955536328163732397627686956212869056454515581914583228193073689288463362601091938006208669365265414291524800384490784488813949343998538035016279604024042304125836392717231188675366908189211231572746069499333870174387909055354658586562917980493598017426409410745289250577038967316968898220036032917720777183234702955367796431332244868008173826166868654619166660093444027176864998719821479711634908488316333609924663629543860787148228158942145711542353364452776488512068027728165024925094075870825916697748918087591168234406517906073138549248328696286158396097022927155079718573284175641592665024818479808341223583569512406212787494377408024875825208109289518403402027330579161410195037425257835103508981500520302789418370678269510300754289688394075005945420126627333743777393128194985945536624935034600846326697114906335991219139029228756874654841276522190033372953204727555432156479732803835110947961707558746497920946709748468412246900104756773547536391186018163510110680625122714539596073663114512988021371320872147527112620172252667402809274049265352618827158857207463908065375805831451960118403510164132109922654827130874635410743885579240528212279668227067436078806231418971586567980011764387156831562683171140378888796261931570068190826606152435929562190953123611136042793003000310503243018326360572374214863959074307174870208676087789047804909287771909311557167121414139413917420757436433348829216377616240126440302430052436846292426155845910322388465635349480669584179957501771171703840808183798733135530081737983751772754293733824648704941608935412760200456267100135194311250325678037634392284629853616443366476920992094908416470471708719790038563069999739109680440326406172272760370322275809062154675164645089316714461546381221561306963360815006742976323441208950075103603071653725918691154821575145657716143031711318485236141171303279462568864951075521176330717132801518771551189016092617533552184074377067864182641325031733373128255695548703230481823561493239398835189153866990957842609438296049444150643346516769916308355949781319641413797646968000498856356391712882021490827405186904234157213853189806896592536204216386412694767603210900496345220362226741744344985391757769052218049557362310239020633174120208914873513374511384786627000620294609370238555971845185692573413152266329469690811226752010713218300352266924859433919638464430988450206058972521604607255354906817114754833794527229699663665611900278539340822450107735946013155758153789779489995709270893169976053677066663330423515870633743950205260412250247564826680633711056501385840133114297391982390402931683207755557750644392312064766925579227379190774825326976120508473798282148572271055130993860565785112181307634023824128575381070785792606802060372584084257906678336225211126713074712512312226736080682026149427529034087936695409185156775593783966413273566689143890984149828095769906862820262205769267765727703387758343619062546567571715268230326636553699604081684063679048257562333257908841376020601623410883757236581671898324943310144608348990212945179732305949888653746841491626388240825185992864715758219784330784894727881767567536229307610545013994648251778011720709701093529433708215989140029707669065058144123770164684913262506725173557730489003323186878745614057411487373173927254235679412239496162583215971458749421629013207049554116481998367184278706304111973230726517707728934111580507742203944790329926284409376126213235697361027127946638780663522642898472010887322620366408831974833630668152681835106229557310035705678283263774100222348713963607308623556801461648385008548931716420525687810353394361564046738094636161399255191283762965992005351141476212115902189879011687639388105279239107519556068188859721837489009229253567124991005171014146086850292805813722502030110669004777444169526530316318741488520359263820679595390514616540221621003663687490809580338791461581874625259931464538235809223852442993035950810806450272992710127497212333611105984307692987355549751373036150297307341053847601797583875946069335873506645476718090141099978001718849256017394638663253498143752479555767905241613367025174696517023507447521120373435268865664058885376976803044439895510625251998080143706706585179974049931896158376180430193370522721888398722271715743283188656837356422156523997088015057875079002790961449576348738855511290152128650407321798588371090521318295759670631443056930994777802250597184144724602893782359008729025315473297614536950939678805460768581216160322724934229960006055025279823487856436773334858155120649441105143964712177237163165082316077398650740448991380332457005957124970766537334715216803408455606070282746410802488674556731551803464924356396111374438734662227420026686764256025420805236194961983360369617633621195658405929370156882946620871715488860757491568935622298486451260154609434753515113360477197867407749033882199041934155130873328439038073693121874398042160618114975480221694402554353227852790723922391482197001144898559934367764669635597255055536557338998046517410225480800316951032227770964767374304787114668689550985531546247859205341815712736836459660743674945307248497777260602740553315057985062092278813423736899606151982269116668605483273740720953305493966139090353378585379825479074058919378322561402928615524953574498160519327140786130306472950624780547291926077347635801321178904538146201104117428887107188827996534040892094269946441504424248202167713929074127008476896791476364563423314037524682573385191048975857998668487788987479742266144874762137957863583136166485424549058165703315683783923459527087207324707771240040871283019896459257419689427568743964080683432824550650619764949231621585381600982161398528747416947944080913725640722646718723074244271432453855400901761953203632712164763207487086814421193137219859730499238068721292877540067613575511996907537147418636811416097584606769617047888180065456712541826547349173832929272800207066351442632454560547503701124154791769004283907410984991716917646268130898060400206858345891241126067097043670820287206088428087138635365136007796841406455099621563395218630455571183993035641580116101471324748852563192654088925861208741397604640001105454150931452454218297949285821607194880212909237796727573481061674537181363469330049979466675738784725336619186836702960524520843439181209889859753715700411678797073680135350288811686604472930063686396433812697297827852583691533547570368597078814278901155693474862921566285508491162006631446629521419527247906557649239416351630279728793615798206640283706458273028025202923999993657065357444337002049335999106572071673616233554835937080336445480247196636726167340887955672642403300604932432681248951946288803783291051028191594230951599388245135953608607626750835874128885895337165711167180506772159957539910752530512890301450852726121396149877215385404948930855717174547680734172258362997186442252286558573144779954446143320984294791921053981546001805138382308098561334026736575039275053562942560154033639126367065332237282762747094288049948672710597366711915221708074725796847692602696476716356223162464195151462795967949962249379209028555559276220482687966503811591100196855611313075598705182494598772033857637677149330418273099680793972479805570955568469504993288465259766861420363840916483046767707806710939381534118363448006399033568985339363435793155274529570784722277773437607441398255300577040059460643759587555431658746877967686839219126804324801780786211924080856238484111058507731914650211422625120027671705652052949257066293791712789885055087663808045607226509447863595100325003754540551559421115618622081123154875105020388800916770915487111261413930087234629147426650564007083088536777480949894158411894319236243154941542978536626223064435106692467115998876847864387053679811869498571379961151748304227852010109644543332799938702813839170721776466131220632998267164433680083131230866002069117728398466492555722909987555072003179775184514490526177949369854143357227680315005056931757101307454787460411901763384492783692697817019071085972237482779120395571806164064821672614045369576798359861598641607091037949089875703619848680875893660170022614186815423822182890065541550494297016951576124550510398619426090163893699760697149306992616724398268986947035795528864285232425067849491416790717234943255911639731866242518136933290059114698611241702476413057929943469440568889253019358126820492174355038187086507118275546489174163323903343065905213145128254946714612485076069940441604800789617181219140067880729528101417054610058621312541749146215129509892027702482782094556406316150931857924916268610583026430717873133498297515338818028947952248989898263060361024589922573699184277145739373752413328042035425037712241014338767553914777337574102650239711856226836712844129759590775878954381881743804947527101410889787750201964898741257700874007932235511233949252786134316952415834930910351443787397980846971043302436746939022425315532538646093913909582660905933687505928024950986302209725569350973210559903057761354865991068099672117419682048808874549717892915021139707126181900560456734566731402120539728672695591677817399245246725669532554589868315743303248477010827965841027952950200817848793928930265657674224513555882440998993802919002360198129823015921583437862788624609776577498402497207597252853942729013248614763630501839783801801613967866220695609912479801345278537072390430905131453112028363485656668558698081607247567462419678680765540224925719438643278805522263215781894392993023490951398920503270368798778614645858495661484894832816350810341872400073030799294721331844091299778596307191691079125525643133767670080666829284941326976595898966243511053257974959388183244033114882455635522993947573431741843143237587351042021216455282683765048901974091377981954241014353444136591926221283253075608203148854182477626663219313603573185102738813822846333191397662066033988481459694253879899592241914173116475017028591299336885105412865906160854920767702294545314708444935666116313900213677560599734552333302145744217174287124242775858339146250218512289355997784733888769230778064740166107696791664798944740998724995021616896632523452599399920953948808268129700166918490363062427533777235777335985857706742547829072521112006211856798040569760031777967781315678174315297064355175359043603876031117776979433220987070719074373240162056634264595048910224991075251474014812006172926032033145604460284590811837867418609094808506288176310666157761071184638837008415339417734857330984158063613632088555396161409860108285102155743704617751352641144599974069243260757314321791138387923567430431536350795929292059053673131843551874892289448714326233282039806700378896603687207109490139211327598253395091379241249919478717582443998035254574521279134662763345171106075899074208292656392796352094326938961610901064327386739994434329621074153898970799299636857046423379267501780837348696125527451696328884680130858935666944080064603557685322413845487695171844514982959878845867652522384954288432222840350384204031383248000302221607628379463797661920322384458267843237803880753952144780480073242082672928752458094006973188955562905415882414965477633466467740411435546322475725252284594597586657052855936372153061327218162128018480239687801878055097062279249861407627478280419910467256373117990592094389864317146834756398137285958176747220993980438262737884983546138918295129218180320922387817880171224992316585333528943679868832640797502212009817596081594834388335298342396241553867446367031924076198402385719519397080454634091296484065704313482998929227780217015523218938931211183756883875770257206905887468774566712821804115527488769401513261862578890622627058767183213243765272149722136155056126454281463527763134591940608337814788315401360347839679246596299374257996541585728768372498605213374723531908558108551150872010804916338140319438098546404006519514485046607390585531262892307648019426390070041516360430510621418466694212906640310750845601842347303685559965359422550779692499541652610248754898399582541726862102155155793126176042944074777619935573247060962784214192262688366986259982297247528621656655830280723104488071765045288448722716306420886478208830018068045424880803795898604949456325119031040768606855782316909599402330810281717447465900829979443070600569584934360182513688480587185501635518207705867535280358360697431619693354439027500570325677134716855732823988054757701690207012725893422213814322354769159247057419011211560158981164941591088400164477226208929718596007451702495923988811700042459122101062657869984893216077971708134984167929050753937970805286460725784691786591841377108733407032068782895781902382929185857423841606597643896790851240190774180680960510105751580476106044015309821994778140896423514950106389258988536098276600497055056168279410901750233507125017835958364783491389942523084453572582125007198427987182893778094426713867325453307470108683829889791076439474539278645505963424400989038746379377860735915100510098061277180955960254978521557199895325514711105338386978089554813073707782300359929088100719886680496345429117016038763356382570226982154094038407936385791856570571119893175584829130389037071930318352546971776393934679119573699003730568018342215734320022185570673555590355938516982280360466180595119529112562483401516398650337053757712410924813488982517473573302496561673944395998731239479146805546535889208047810973813114645522099079989789731484651970328244871156272223557049671265866061784360381897858983174317330561990016379506823524251729802697117427907643768684082617030681569976139064081396641710222797609268027938121016418700300699783951660872954088221379812160350448228827879446106751446730429971945071361213776771983807380479221466384746168607640873765119217011613118332710776440137629618205966596162258865357882443875088027674898047048456231195680388722636173675756594281036513558065403428670678929621271999443603426884430064927176707420361112532473598789500662280899531511222010993198526933993236081494300036402620534954446293185572682683866514910739351225898940666537660055991089279643465865815935634699374051453997020921633703688887896119469498413810552838900187448103857213332433843999988920017857095534013977039001929131591743467095092901349024654144444488526012749119318671274953881338164752217344886874741902144759643692005677562503504085529656270599302657756750061555448899823942589547069523196128052150766458821844574236998847974811275749764739805800277941447973786745680443025638189682646231040203978077587640589332045275299626690296232397349848814208506215416396517858379501114187272892280313844677858560138894637809537815356438997833755044289280721192321018401408487414809363129057001689922986312112496452491185490689913188364671187908955636829935725483138344480547373973521583982757812146426225863022012423907167289632890284391949966550526038607089538975581331446872421413910260592143663170340372448569186307288466291917998509737685532805479614605495159909595670675212698800210526250508112260127757016922955408031655940042135569046876786357371334491687193157170191888441463220340245922873142356399610023436741744884222688611480248200206550370464559420572102040578423260823825007111812812158934568830958790637683572598231819980000806531876664914843565433037918908659015367342100969647995287333723126659155308271434741915751210017204828592300889447765699605168191698010749705710812937911715832012961524718795501718299406740487095511108730123897538449286144215478106105702627696508536381581264474054426567459387945065112758505046049245110734456584046311105940197496544234220758182192547425725615179411492671680638530487165641951539564115624919994796450906011179047800651184544890353139146946799962670295531379259933522206470747864699333251090934684698208685946780182657497150079946281092478091177572471974628986492737134022840373275425813461948157457430253847445035622134282044536972004580760191047274303378839192018097262809886565948703936735559338037038874520840425287036251774443351006514853277199672266959215162897242260068234081816874991384641671911631298864735308133234100445684788138810068064149854311120651073897773447118905672826407596389754720477013608420606136832425393474733948207769268315475389438037185403604606320486078887854204842871733114671489076745061218728183703416981978459159407577985933294240836180369606782169752859048711688832382994531186286896177405968693279450669504798843958420829752566901647186874082509532415603681678019438489001110387993868478923135718864381138501490464564174435942105132673649337368633734379499095397182307131526998546021367561830605585645033882917396701376849810436062022593062242119086143738079771431390423768908465013055410388088298783253550306242769330339257461837773444232635179758748924351200796380400051218040592687754946624173861679257073023373242005469501718020302965228413204103256629641387879898410404789152508570312685736368248802909258922310393916994315721921827139599427004403837862427886215969002937774634899884438798382394746447286060907259663554578528518187135451935783857887346813862731393063969673584671522842866970651197192624155896877572098615635583028150483992675695189554659889279462573553359090018807567068140913653079231177049589974496190346558650532954697534513236650236472647403556967731759423064007324542935192729370903852611506869955230042656669020303819691164178519101969003833525399972969646642621166039400515465481853107087649890649260216468824648580118376457161494290858420536324180616774191271388742833299687359461309980908795529305713421618144851683638905347782957878740767847628234225925058033992512004905611475737346198085926270640673869137554464710562764241060879148006446669529875549014109290478010966959727803304884090393232149309664995650947820033454355824770564438248573720131360169963162106810332523668671161445724077683538553624720603241285198730976870970626801422064615067463405285407034292532313568360543579893617418777508247806090879141284090038625856156877534480648055797325658475311811787862039942138496354651326744321537242832581231115557713215232103245986036268147796888123957190383279027401428883128467939760018708452995303415347420438265941961569901867133058227448103222416505181146906922895613162398103557908180464931121703285001871203112176692646555971448720877557943567339625905312434448410728912267481405739588509228990508148863746335295878277326344177819398127597445856292303691937713069246187740921099960896432336843075377109812490975867034785737874108996031575422712217491480712023971703881203371796290541176393987930147514500587894805234620791398415957493051530031349437269631923926442812211430284785568022069663191486000975331152829352021158861873580314522586483317433465470597461203423716869061896277148453130890915891895223361631582155745304261999027794465781435093881729049706916125096837544569676399117646716119977797262658219788372453078672865633481490152312085943067460379726385065665037393437552356660738139164833239135849216591551152228978234102896020812127875445622938428839176684498620633476955314974795000854441525214633608097938470782170644811866268754777013198497281313631821088780892094209086022959464499576722481333795328343117028285614537475847184800468944553468911485904003486512485951672372318090742493672519061298169191919549841899573168400979603695854073814489931676336237888061415728839186945597352341551993564426370549452578828084766989535748163942799759525976900019481815322425398916556660925665577661614408195921570983881848436529211964482904303640056990082099376790414908032776715096346781259368266809191445539215536792691835265825971035960892951775631210779296864748766214252206445948868685847467373871212458884949789728814334578414580201113485186110358004345304789659910092682166115638965020097406743404630192792362205585979754088122083453333957958203692469194094171577546341695764094472930011054587096640094051771959668119183090277488451652918022391979215216303512175998157040932795442695728487421066027013782017342308729855787596932193910259671121178938604423444525513020996216532216748666490850006163606425920477461791433310809858786196530308401370322325572020472594607263352530933726508454631222211159772698707884101342312046311011395618123404693110622046636857574244458520034710856147348047080506571345316731125183291370741827805726110706276227101610431635329421813097930510556295326192838477599207608314852727755857686450782572760269903908246347643499384307678564245670858938970510974234004322422202851106456684241832791975061425453577756862464063079504081393280729693990810727809518282753372696769375665017131833677776746719471761570510067216142269476414626620521293567162277909694834027032465585654220534562207089097924599894387127774276293761411379926612004342128433552838660406317740418275914453229193352805911949506485320420783197905048089309569515849367834774241313514264733926350797822000418843599354226856367301449885904750375866206300620311201258072375387346917195813160011011120926634995682880117266813469414075105836552396731307635765505280679487291669084770982029995027276582560640273386643168683024382733979004447314209858062444117131182618787956518481667503176503508574831775170484031067835829859847689727926689278395144065455238386299026852134223480883775545993297602887960369744937263407109456570218786153259320066140096092900038738582943284999673445325232539426456409666551569268978705813160432043443581206903176060093203984185084438978479094046568474502228517115630758715817593490165800501049509395964336593613940896095902376923187487438572444048944376836569424732476708577138620937661900033145046792203014880045429374978111328758377804440335216269135808081119252689602962547604928608621222490846309832631851655356869715580388991744419278180361875675311142163599222469197500627172366016549884206186028756693119312204282161912213774239023423094310368578386145126380856238490027392319042267671596161735157457752643179043074269509816010469725255328119379722663813706039692620606084526690345603978539157526290373230607924912654769104235380566078164909445048783283329065828361110428887250830148049423250195712609002102993790827652547430131130677131873162558755984074514208523988699151319016257532700116242656868914020381331707262718783642108508283941505099104600850809080757250727420027427044952664278473935075213646345025788786523559200033596365161996188892023447783719613083251961537226857295344328086842509807370750436379269419136567045607933788036331857366329328334262678660227613016407575776207576615930963242547851656944095687856901844453135965078995429931789671012528277855580846338570169572587857582026419555179809549151881595807087912841605760742555701923847812192503031648570759459014685978368971087094169601575696821904544891923848849614015900276549985085304313161162015428267490765729889092539015302083235964586065594322027178516114406253828898629323833776482193331098604572566714813167805175492441114926005982466839971581532319477405553890234029763781773288658565493127307013700657638964399778803837063245831651937943429755132838476060534117772554964483362942162694888649011736882520571774340927096718782092733159213089743839793685542844101182545490877709407526664477977673410086725626389480987432787934790425779899986341402367364328697904621974110940657869816273917059058600369913149452151990606197333364916914626526190017558502808374174201859536258080175716014294613893736076449417504172218338799948712352539344971111525505933766414499359943375546476086268071087265037148018234714916371705167481829587522174785231490151673325572142370994180024729640467327642802385606622366585403965405148788570906835891945399187662706154992395701586038261918534175513094439799480221629807989547471935092968844572394090230183172911238267725333989386408883114220724567276542265732470145128639312163613928470100608172723323221839834261664310019102286611149333188794631230610435441123441238328618300677654391986171270119705700622150748999591806943337305811421997203569367350427484674195080823060218509835730211117782047416349920120772549424972223706192904794802841343512599821310464803068324850869287789063922732106461135193811370726402333685403140373816030632693494479042448036504489795828135138131887967955490946344468605796907713717607109855562684995650850036302799172832484357448678917349848848396862088891713565742474379311711634534657158092258225777307293467467696545563812337118127110509191641063020521264362495281111367630481867298007692233545720328491893184356104955785189279561842925336835172526855045557389923482747321908142818494640833934678937139233014258951982366268004820338661503608957473525511847641204067173259739182366987180154309175962877500388428998871496165696240594953192808187943646022837613028266984942342188302186384305086433149053014082374061380634475524491232345403426703236100888102172452132661306944203132390337645948219439682942655309669675567981750882229225658177527184482572088833514713645947799845046297045453736727532317944481434932987073058416432785240530443472801884211364883881738659499080818731820123072894041831297725904867566071459474776060614055214618246697588009452160187015566397274003288071024675363641802144597963187629325745729813284374812614790834498930753891151971807146662289449593527735600454686685888296997320301684562395407517642258486642268144495007553353839937897534050178536844695268319521872498206265175518217720037342278832329546853607907519569267659987628980054441774961124962091142375030027104271849584330159726834518733836983895582132994217948967754196124596113671289490972422037370824758515613179584553673294831804693455298418044625677009841283806003029755645154110696657931499587867085759273217061376447717539808293737432069661225958864840423821020506441426299035734660845916747116400739866852293254361051791994533110234650362806709640815619690194504144431171142338763351375051033448129937842880474551867619018994511485177446545129712754832747227853189683118337643090624978159997491420307016368272137983782928120762520632112132545614219667845237717168460776696216102102326510847103034271660026854136028826297242705958114385460678889355400630370122714488820592537437948140570963723928456271767620439401624671537872077212452007637122425142792903237659669219836189715135626514238426570788176225042303388930827319384845719841080289620360221383850428476390776587783814443122603798744280096514569077654175433177029026184525921006439477125169349449663121571863975613201870526271792243168172690024621372916657125930633199615803940580423584429024480055309426563248085512145780381647459545964717158850836612382615777650486643305156804997469460210079277477935550397325290107064596148442396911953132074003630561293950198368774562191235665870768086927963959213736027618419150420823797792830096739065518368420396059918802370619592195921225770781103086468098808923502343083972380832091666866013665715403195776568624444068179628995156870870859760142628132901805362108327040772639673212826444237811604244924043185763015413657684429266731492497717946976156087311870536292402348818104948440991496850214725210811676366966834661840550957917455557822998385429028641388327409085565120650820655638098439346954959326412863039312176615236924464640509528934766428524233523260778093846601793921997296470870982815552552870395418821506996337751649638649748547872581080824822052992371355643407559176389979840135523401982623907582829804348875741532570729516779851483612910791514745732064295926256709360496695467781792952188385255780197373664067423623098722256244424468115073249729272700406311904227145337176917554947464028912997818007935184698297878496366230615934996963981715544542277167740014482399809189520365926403720827397375050090634658028025439084923551748851842498216273453943421064106092097885896603713395522568111882886775923688941989803355173735241867203900852083554256997608069693584139066497908050093645429971633979634969387198012040855865657188783810297342326701818495244718974734062578725023825148461983834969602975703222188917724423376166311409982023525715559237056911083505307595169294165421731201805421674228830841769634783161270974364143827042839624378300970662595308010049170126608122579800509817989253966082959269644775035853302306673321266884193546349123467793176307251517710245950184012854422882713446201014190881863168181563569807259318617197624024511603856432605679969647020157262063718581408218792393099290170623991957402739812038248528114821528570638293289695816534267783932086050519546324426489609859922011443886421926957308515315369291728257918343075581920816791399072311756192491039823829770953218796903208229712652718571611651109370757490832658189982433380498715691027323342461252997535841119413555107284226517141515207436798279337435389871072701852214015936357157079217706657743895259832939527772543500273625741918653103731056800804778205937581617782086235488734537173604245292739981197191520445234803785973012177036926182576507020650469899567421727529890438610602800784563372421704679002117691123603127731477289569536315626107545984921452224854945682751084753383919427759157010693707483128037643427377424249336391943976311527845817726278760870073946511958406575318963787888775251706680975360237443664217251342635852554087428948580295088721154708737050075417428406460770781266028716756440635460048723984694622521285487779657831497960260124201550456249411508598768199877653083044192646063871486390543848111684378153792978720857492396423682846740281426849057004834604342099365331517660332770403013983087385150913167969607192048067456446350746602839239521602721317514007278760527599476487356682977690257931484926911175767848246335143005181475741019203307629836344187679173512526497182507287258973599395093560756412640636938407660602392683042542408021791367979067095054875352512779777258356101026385076080802256481160700016117947254659625725167339538038781980828545065844758856430788145236563053109917129929407490532036299254714365987029953985312677133537584388945743034103611992406208997400955875972239476076314696046419903413708858488475668381916673543087913807518646752918613111506916204469035603168099334404160910638632262248489144192537498382676734388698594649064869533488117027107116008003357033709228124391903436573277896922494888344225732053435876319534925431944382547879913591320152273734123068225263433991038048787471679971426697775271103925899551205023958851407865796127973569001447699893062810590974043487082187985297057287191223400027094101575591808335030830733147297355129699801703935125148965452933315103245709673234520242397491604291299646319392895215006266930369552227719431762887564875728883899532070620002572494071308706877246577294994401195697878309989904330203303923725206069164815601183380845530690428879548639153555775157552345938939980975485223699889553388787709291345054387795153704159973333604412096965412505725934651056767366190394825008864638868919802856398185527720777499043705653084654051798224477684541986493178940444458572857199151502819155590896508408260955621586676663284399489148058456741702833702071365991371122290197556184499704492323401061358922053158669884365363817938247916637280330087917040810032114177316860098101436973682391688048385973728125227644235817990206953697813201414703927731948756120697469300980182871865505319431776608190728592785391329700987396714255623105858757136661061021849561410934390720887419620131586634391687766046598797007804578943113834984801870694566983080454726582173769990373420362606433106764777581139925793067957259261029069794301148320690790183831211826094117636980265536253327400814406646117066638950395038666840843764483808502503017788949946723404934458276757872199452591382487237896887959173267915048179753343553434008594339058246433324052846433216118189610158315471592828999846896488038292718748073673891012769455712279341801081991007628020844783660449082395205403297595315371065699194036502268429047740607948793120890902096728501133552347083350297977748194687976744501471912133960423767705410483627450702214010661240945898265089383264675476498200000105480315205783306005681375634779309324455129849616128755101526888314827619898040602352114135009773742248329521278631498677932973740229084816231891942693600355293238192796841184755802639372425643191435605173702144919023316138374416484367446868351062724709825560390870396583995929100569181568999716970368301067965857507457451532821894105931309509078825174893132908568892917176945234457835642963274916502811454699282975392797882892346609822995417014525531819437093011064801818794054877459087850261362661701201156936333344734646178625012636370617924060490546268426027646974757259920550009604779301614127094293883815226375316550098869511470985497959968527474370609518604871011454188528746333826584349330727585218447880228785826188551091195368918898417626595757684661582345760271624460140485590544572950928594321218021992060074085359862481425841833852272407868536241894479570560192630892280810404873341284177448365080152973942876137190110853494203078973264479731447356439502952462716435399625830859478338715783338281924288825491555419932528452216522478201082720593599237042240971006733245021100749295084132868910056545612619395424213188790033263768520893247972737993372502614311015074593072704487635479186404740996225520660997391812922179039530587038035653170585166309427968710879472466631688886729807278792083801934330742195767749185213832208902929836707488976447414600223960831922171509047101107358704130279653712479969965308543763079504028807942061762133167636475139392709783536550945347657652865661100201045763583032865470217450047982018293585687729964213821018832622622384722066175397059869637356171662739663388464366256714708966673901695390829180456047561694095652908880075143812053216230960856662511111658956083031175202831246658776904682275023859218610360712201665732735388015117617317014600317774080850770002973803814773259142432873299131526188706066965791641153898335088376406200021807717403482613825509267308793251358803885129146883342577857456349308903735865573253888727404603653468355712283732727678785840482318066810133756003031430869322842604250617594298665380318296805242956099264527693357418490397902736528890187555890855507109404624245942378427848011368588357559842101585670985277091367575851014904064369972727154280329183179831473716362710288526009384807361185910841696675015514675112749936248698840519709701208351656264292445550333677550443975501533962440595538929502954655734307807747807061940094869174725217207148812767663502260755283074911960909291540350504937571041424796236635231090502871721323266938240464141903089173692625044220600314527079211148822481960289790040503041008968314318414772369237906444900039097772552901988925628445571527518268342575359109896480804720088812097014349787928322027868995625101577106146721774003651837788981371002561271398707762568667582979118061935604075617002322172616543403185072841822258713148472402413330814788839725764064880098910705812652431556710115295457154356097992800683299238650501268117145898294876015387314623679533728495816051724640317452564085058890218719744089505511924425573720918703508464521982007087547626199812345467957086607431271507567249039321079933613698062602548655000053540373084703371924216003137368967971552583963549057806482776835052105698569051453327427440355432674157079741477342967129250754063992356113822573212523846296396058566886023627668712047432498202981080556363058367469743842796583639971002312915686060771596362598982897917252311489867701982433981788039685586818817490544925362685153498908917413672242176323322529736140675973436076815521864518858206251636765181185467472254364405038488238216914711309005785867491596172453325259545798755692080566742260859614452867301651832731874423635001555351549032470668633248144344736068284739781495458638906593806518723179331530864273129190345138490656185564363639284010628487740387990254314502337799827463540367784759068666340639479482112026891682024682062384305562367393927306223576227709527014509571027230658156312834160144353905400421144754713997282581168145350370138702819633539312488354238960514219092481589233722196923868889852088464032803881978944036814507136892617862527579748209816140119989682791656519835205611884885748021434803977449811224721528875993216225786103824161477532762686095943400852534059781414510726215086888508940752355347102486624762923013665597992459437578854263843176503807514584732724919777755610436160747289463443431983529861497711464995901580533202021202433439372126661976323053400806019291592863625101360600664141523239352985609871353937668883052262127376508769621355669095901831233258826102716224648283446946115596949441779054264872220105155283392787284396320032681087945662198717352269427438413988234919510194922127326217461224258916504334249140751035404872471584111476036237610379164766279379400973321306260086531554650932910192393871392188844820360583264071019384153649029400159658341072407984864981394007249197488581015180673199779238634698376282651336335465066325384559185704508636101683964953204691989048716970736893412495013361994180644980389447254845983119616154148918372533001580560562707595007514829465193211046447183461365747811842490180725554602808526301477117748317473105576144346254056996331730044079976864944630747407933570473563508433070661186041894328770041066033957011435642660847430298416423835913081853471276786068231701433668561071971571233721924193380219929557917722173412483964440593248333427726399304812502035605978961894652322638595319269819985281670153642063936907886416513086199406533072930352159998969477556607503960823061924292498506776529078720963125797277031311846709910730230497317833984304822597503226366754983752343420817350744503415903998064750046478269015037931282630190581754076357894167157965933382052585788632549024617737334552740692962933166421810247880579953414024187243255266233484006380766242431518380210873590289420057079711940491040912442422051609125838742858769985958756686224236322887457696291195498257361370514365081288129343311590654743645226245670502663966872971741006029280109726184960396059121572625020687498536258129044791139248590880408927781073417593994954457326790986158129908203824275600714980015562425020729595041731736354393014570217245281187461330692168569392748962230982796094022412634306426346357144906687050003009157365317874715035775254333774788446593961033917597188314087547046936566360876199422675054680418272499350666661146011801047024313200309157799179262197177944174042509151808000792687608891567694407278023552748136273555569419166789295772744612100142332723569126015422147341772155912399994887453097399136294230752769474470920035579744945738450029305546513469307797275743347583101674199874107580553164943598153295275860811895765181873591103398524111043947436730683034581383859465087567198940237226538487846195379508537437154789252102537224849869837052287331174635907685241336492174646757407380466192805639675201079602803081511120640540267437509755201217615563972031950387888777014763303759816915072007973163019997869436389456729483554083526952595190898526464285671474675395951657817002951710602864189270235586281460558342980115574143098270125834773377373073638318279225214314733849011577809152680540202047806586119856698101566395150013515953454266718363355709839673468952382245529096954287854453473293874051500675473623808917705136786332402422819846586191028002550618042713582092183216694133709647005598882510250001754789911060031147452977948107318637169877297076424267832908420134343997238915567948895710743674953696545847371802043605193513035793537358098979748517791394288285981790313522025819362841813572347758405914386778037517616648746645119588032723025632557633234779910578110022130633402428460600386114008770848006786898370853958943077501305668120754978387833493419595920347630502727710301751284074852402755751450107166511791971304978214779174516893183546368769029457446148706172763825246674174499863317047123944542707426537638566082304050387552895683228913596465599312930032079815395705510829470040869274050655112566593970689823061353974035849333229841332093998794878919743350518782685321702051925196058514815918388116101423824478734709014287715540918206993063815658776560592909370688968716668543891674543660637266044412808304461412091282756789615846700737140092415424195192189231274692713572760832526263121598953733662835604056729933278822790958685002337785155085340786800595494953493111666136768386046238963880988645201141158688874229522929353944350310138971142938094298772138681805640581442650069703939455067553938714936607725229986327371921106500848305285305965218077844060718208251634629311363386648590428632825600360665511761687737558542245862792810697243326851464307186062411168770386169395959545108972268540768366475269970519711023564097243774679868526030060021711127718569863830692573369157542733804979247987955043254631586164414642384734773154843603664369774587075138005336622523065696946560387408476764633336718088567579340865244470492904606728083884010204698819294774366777281765726632712005076006562183741599270590603520554803042740478320536894102440190987120831908805576360801019428671973630711500074244601203360865627128244734706287281712911534519115517426849780881964894932114197159853484921127651877486508154163488268639398164584171274591422925009664069923553359701700135850079753044426317212534708958777373483909410982184431765675579356364729311452100382129151055748644251119180284508714783745441369006588925244057088678576225206186396454219911426018235003838774390741725867835843305453606684574991198682585436457155665386331708863484804082153123580122710486059892205662337250903440013866883124914741026531732863714142052639230333988316439948624454784090490852756354104638596634374808448061986622281054209054452908313464112666719926271564143085868560430563639151052760343147676234848267314351819885456358522607714343648791343748539721446007357411095230460708584543323688980202382669711485458293190857170235864569101555662527020671972313228390307328339298727807644555863157449137846149131505930036564492010555328239286276508529325924520952885609191767170488863531981370107026950327970944569772048217373728062684824795127251397317977743446193747660452883715209822577622302689837157775935389213357559098984768333825355625860406263893695332318449580088181577424464351874005787140126296500142086891244881634713019114365054963188124390121962754904291478339413146899451683263976934694204562188350971436043401090519117721748337858184299908042285718629389998354247189044361500263805024194085371875647745977823260753641103280988129817050799179730446505393370582159867047507889302994384092106085231662512037871694884661795259659637828654816545094841151504788402279066805260634399868686925945954084612005259536977912514339882112113350696666041012338028079322608725631036312177376457507356325453016958305382680244909332425623382535179976556947504403722145722242903457978479425386432857231299687190394643377161921370291413862841597860288333007390594989293313097805036660819848919532193392068383420950020218072247152669588942937180034815330754363546352952594878490230787543588741699646131578356536189491691434199788329983224225243836775307212431904279154966812849474856036833527350835466353196860956588441279179959959773450859296712777088683401393510298570374753488708655944529709155987899742162201200325831864872231499928636313923524373939338246832195263418073729318020562271302403677496829143690586182458406484154574773199337193269574050764750567633257722792294709497833754751365469049344777100967374210472229083431590677165302642654801896695265281096396347633680737146526407888659366324605364348711744278776538770396576872920698895223604138464909668383681304982900154947813272659482785165947366204043446859470517576168051984616084343075559502812707528065700444663420683395914484613437391027973267724985072961751433614259114772836755806829884864113615579488363194657201866497323253708135297276189931794440947335031260794996703840865210839845842075260121317383586152532278352220580301879391925130309308576468498658050167099179909540526661149555712625943945179246390632794127265393939688926831730905901416958235005642103795826994563490571693908451853219920075356490033795041031682314547204921896479145185621663960388816758656668891811120624289884847633557323682274902541828991326087729713324057120667767614343397488037627837560787823882127634561744447745972465780472799645211579772009125407670966398218269504318369598916450590658342670296494460289145877721432027273824022273012817594806616461116507705569543876878972466655519173005716074394386146657645407358782839708215144367192641508594174745118331888013318038963024815195060659653898658793437667762591351134659043104900040234081295548278490847752875835445536980918839245766320655514298745558534091044113624184846834393751850769615425013780209612249733293491298702706312857800652591535274544743338258972797754807656089335511924609452099505104684916622299962941434794125064086683950700553977250452811127314918568976325646729571227538903046017070407666949782605629067131169233143823572918244291403494676443946860582541853786171384336714038637935401960725992890549863019628994554985159532960991264113300775173787475453195694388160368053938629028538095191846599103352856467316516394163340956236650869792643405337980408037351418449519498067660404774159700240894989573195833594335973421038190916046629137535916681119233356397905306605903784958019912258028466396100393561030381759834260616494722748004560023848155254899802850222856141593243836096844024738409984640677821600936905999937593743477870101760669678203175930339326243312187341093075699204003627246053364232605849320671168339841865464185545545300494895510067243041440591316315952074568033543562113147914819575825969178559415793054264027179789662306003292578523380041384902375751776146849314113195476272483366784007338671189370366081008604980881742105095026307908996105931930907930998215927283079747212173935615501581903365261232142697948887989653099176603178135847322052675170495677391242308209349140255853162750669648939819329631267526558671540163505227148197047467465842023991509369009668287043931142551573947322237011030477365678409024372465087807742014363424632603819086487142667324233855095482244370663927307432097041503182891335793954408231241515013732222609422030565373006983034754648258320833257018982025735831608977635470064892733499866672385090200174330742053744561775471512807155034653599062792010323294500979019350496704357582080448939765461244403214347040510359458981807459297547190299161244195667884523033488696012447730829440584368876398600217950600331056468196985463427509470896955115540879764545226202540056135730450981472341127443929815020496171054035077369642243352820490814390769548820031121031603513345361609766898641497956283809989934424223148197158020995820279968968363466699525391313680227421630227024246050839260217627689692217678537515911391602373764696666641691277362947152981389796705781122695622677774090667033338892719357858205759253905192378032259729629253480553159325006260410820711745728851291406985796526077209393539964273865958525993856277788665462829283236113557575295344021012833371809698054447749452616597254726955787413926863773879313397586427767462698619320577295581357084588261416545204946504842492073738767705870952572071228153977305037122933153273621713618692714023921478284245640655406636526005657530505676313041565932652823728936364991611142457647855116350934230296007135540222441220837966913055356587263569053188128226676565009988022462633993822848930944007563199307738435414830766385064818040082047195892032019998521131816038037123030956478392079172339499399663596525214151388534585238925206520832475647013333949479245195022500329070222910380499720299169590927081415366445614820700716631327230541615857550708146470160808304507622991534003201460098702394852306563280516105827326069161985103386117061317228424031244897195227434847268962866952761606562598798532579174785025158295229385608618197976093904085941732749010840704860343650252085278672529986146339886108504282260819772342871456545098987512612902408547324258185692806299514320515724365070927204551913029220987900212026796340936143857517480981318798038177758803863120221849246745742062336232014725658324021960805628958414599092007005201083385371493669512940683510883752451662476847779998786103079697690343451502090077415103866025411689301252268515302885401482276360866969089382898448709144405203376120982534627493632242291841807120704264626919725156371682042671506772808161086721583012836955861257919818380075687072696148373507559924936912518523090026974359914135790389473812947738514907834645386750885517462508794630416626872642181245291829262685769633733831708979162620474316862017054599212557318468799672496267072594770651257402761001539559196958927883374517841750388406603454948591524597926738498057013198662031965025116060296903705243617001154434507228739144591347632568383740434957516801668696289285237342433953133349700933082577309853083808138697208373157249994946633928358860627821742651973860781998755590326278120502955382561211626468016614456987767754466623284007451842845023272480921531263673041352259132367837393781272813269736544565161912281234684380474258092873238237236506973164682142935959346002311929948313551763470339950748099677413277114994121330047294908555483406214444181470996186663260466689761927572267820383476234258109139550394776755812641184485753014257163413813188536041411343362019067219403052946878281958582132519854891015862738272531118122374308489090052364667214713738278998036227810367545911826941815903555254156927335142875120688672467381742983955922544591630054833136908131588863326963512298711307644677219086394786325694267457311749501746029887366517940077136785892030980726566906445034161569623939844311512474723828328708454975242632823366131481976679001184403677333728906589705705532458724615417162231879459170607589739028428144764727017474016065806659542831244756292269444967645416076699669992543754197583688072656950559705521005638410497515712521172032619478674253423239381762140287258539837466504617558842822277546292235702657729782549453388684112186059928145172235671827072998320903693083901804545106665508832208379093938786551037018040707922171155245615462838798796886789914653882734162688222929034823512269004950001488796489380626226406952655817193830878568935165274593150756440028744022065427385608659892392975001609097548309213686456625470443795849043362886783949184644625442702823903499004908681298147188160619847610934538692052368107407609166330620840530476327444891289137284285242013137392970139947855158127291966423374739944925590138470499857430985738511350602415658705650609762678291360619812760157885675442932595103715291254291100426792680750800789912569999625945659563960574865105279895982311937795034721431605192490935529849733178845837717074030138263092908643286717158065434906421663861032697507115977820586795948849530001786970794898109016230894019038782285996241671250583226984502141314711104887107354259433182539268106951152641016324569586476701082699671553071539732305998473967637900085298135063674350179254441313234323383434661437255517162328548965911407872790257502134988648847476962687342097915673263904299505778215999262766251333715042625718511697560808542445934628313402843997356749386548017868947116980525047255667307159325704900393551811318629225568027983706646892907490842578381735841349429925555786892818512742375784661946816737565636039419233633048312879844587961043804959322841772609586626676074591959446246284437613730014060558892867114902949226424840407110189671750455423239032251904402450912482275454887932782173411481452801574857923912053717986977200682618357158741436514436045131366076225899737517016028722084694254160664755031532771951773220859141603300537349961543213023764772630690919493146939022345180638773079985498503572618969759426837228156591830002113035439946100663562728662611120620548689562410592183170749828941473830453690791800209522531959542577038879565451532358222538855184379648816009254362356390907441529341679025765070879788142891874175514209775753680178335671792513483303461577207222501396758794338009311732490596024327771180508785801219108541986308076951344348944426279558351181309406268133698816699904555542066803414436412078395142697000615834308120054451711999045889085118503989191491377066190518587887353830130261248011874830560619825021297171447294629154822408105334365413179689704369828321758114485029952543131083806744515916582060600388074099432376175566683276721005852438995273715356657857859883828798489048708613049282967643545963569205535868614704861027573782154484133779435172891971676067857253290262584505210245444885138272959257215717016932315732421242094792298345943958081050877859085105422998667895418717189855424976214665608818313347884277383559400435162469594158945684939728720944282079424209897924826839785591237152552955389672084423951846713221535894195259023538338702303691412654027919381154248307520599918200753736714383283048939732949093360969409739643824849164114565958998685936566030659660390705179842700575801285378065122484604160825501340764888694659997263533744479747102282440981084406021428609414549660807384616364872765129757516869045424870759458563653835021203715866310994443740453849837488897366594636209077441266117854668726740112565029208805224047794100726495657779899626984566236507955380360033823594852167526327793640469678526020367289131999932367884375215636313672495481521027063729850752689814627835824244441512478394616140673213646380351579084953020387664489356373323286830538256496910589908825276158297491017501388148970281539138788101895455186840530241308155058351641187488560902436460902192249547961856628612733536111153391500005999831199210453982466359974635873633814821758324681246531939839787072259712793769667584867409507180803824275430123161084713335520848024031734892936650386396262328795931827078833052904026327977279316059430268731828316180008801771856865015989873868556389337901398157475371300536698493816722022657917289637176814002605102306611709828426839387405194491135087462029596941651416617073844318327642530580999534160292015007570836918898639196185319661826098862095086199092818082657460040002067915629745781079435848181793477243865995179369880710669109925740337589620615208720281676164325340964351054589326388508842963355574148479254088204022444744669740749995276572154118190175388477035654771571114455294565491066819264326126544810948459967017235129949438789717223916539641195075993162207173769208370833236534070477545479860196998498480366339373251778754559442113800298123906748761069393818566418394782838985286467766030140695990507042267715262242174811037696847037771834130015607802779002818679682037262193823801308708022444696669620872826298129000166637731901741779020380761387352290821217099191162875497285721439264241049698944286228515842201921589393359503254982493168407427184516920343910335946542410577351516626922537094408096773862581697000684763039575302730913820893515994812922646350849074155209585479945015606794384844243498330732513486461619007733815409171948749199791105061696024456683443979148924145149552154221263331737920421308560973942419098817619889032336901085047264457823624014999269614258773327114569820279518104452282873949730383147521097476421613113339482484917848890033885959021822951550850289195880836047684930782028000779904093083514660294587049116179129261963328825591508376372975412588399166910529537620137402842913499377321053943250701598638743417578607557843104594982954022161423756408549942531839677503549792932629524624549115240610316286797840401307035014162206591286589595988956428709418792301365833099086451093445911688787812048328294161742143567547032593244654607208953522419418281520394533313315499292466307294600187583008696236005895339637427409824633708209414432336476685338454011128927910613602274697732253220998513570647825997026976299584697516900704280307886629000460927898709348287362749280303556732952423765911562857221675402587722228252988812620484630774608078173568887167292601239112339885528206037350295160063580753191452143107215741686263969883401204227080801585163437319435919355374738170527208350091396339482974621189618573159593659734558713296033286706024614771582761061417660986359039129546940579691488944714883082111049057020827703576796349796852763827249420919517376540775284094994488887242537293482984269472506730772486409273071661835996861358654380146770178313433681556691230153473767302131408399467837964532629147844663968836108707029044993434772442586746436154465527599002091392485197968495378111911315562107724811209227860454593633830218074180394341338449558790249639997118454334710604935913921949471584543160607712149683820154958351924296059982204955715619722789086172025437888664622987749277697420840386301061015568519578462490477146574167684538161890944130566261371995995740955493941630421860908638331105573873398956907699122092055999020792668683695031435242570903228811406806546076897616689023153140110963040865059965213542121172866900038565901165754899505154841161411454198019017957811815641668559450674767564213178208406001680160882358646614926933344868599032616460734699805478748998476087008118187090701774223509945429678634681687234545821683171898927397438819667853018807331423321849731113423408370342639194795009212242038170256706205459467186174423671952481852929555181311676408790939921810459768091625861299333431806617713935034613754810091993494259004492320992134889403233271659213299427500316844546105363392707966061025720175091144613323269367925799725239917404211657102158018767200710465528961143621565964071951490570251943729268741505311202631436792319507402051434594768981198375789014237403595990051423202047028144590688991132172713297054550816832126908168845446289292522931811068744730158867697098704199081721980999631673831652787919750974732599760262970717756083166512350749563848224234459525108555541720312431385303933299026322987443758927801529937543586152643126980207029598275822796860236016450384494465547567095984809585255280622296705057770431137973256511697251010006331054834986474021175689956008194987258879320384934284149203617365695608973571439700125376331747839776355890127427476809989283891455734709377504850364508826887596807056745034300434083322097820387523245490761436460186277612138492728586950774608287041536942750584729603661877553778967597606020678689861725783319810092254433299522612202478359777788862793545685888867407525703528015120697655432122536523246112584924203744156412605601780174908666686595377058167582059727351893895094473445804402953685462665182373067943454772560812738644181088091951106828974029394585059299232774442030216637948676517298518300455637194211946524700582345481904919294559020256083404377849815141755280412399516791516657694891029568039201701675082346432587859230771205667953051843656535032536370135411340093792910201061305979523563417968223878661477558996881051724926620789841198512763524814394870962949880565437374581794332165100790816026651457285651107835262030377504340261220341724845869090971349150592612609777494269489705881723160457588111942698744225800288237716073717838942218351990179342005431826514909741934729032850641473574708907572388542859238197162068791248819759904891905549499301371477718161506502096135925018779745712754750641297692894985818254716805422927515256021593037140606547159247449445927684613770208230967677591143827555003837353384593939148156441628311776528155800944902764066296970901817830848886017066518077381938223835665628247954117475513474582492937131625253256762878242780259981275364553058767508900980467923767194124315998187986413348166844357441787300720173270870126194720324378278483397964984537469890020663343774055516590957152949774938886637817703202266003501242857427896706669609559670620300365237538714431724220484160790030356694337130645486240429662490875930869190593523023365352437334108020979066707651208067827041479243721720282798865850303248770175687614785516617750298526628419626413838076180183941521396824308204729570952810989206384078406309064162859201419192756969973466549072333316978663427459413508562776229796810434783660013543301644309729510857255406417232950816883110484799317285360380715602174743010983885704514485432836697049407530095883585359507394911987249812655191386948906801215746798118398282034590727262474952039203088380592355578933999398980929564404928592768179473526473421604586366736905797236027339124079381201164505279005624579417108941773180990212093751503198376012474077608327003336048135216301245866815766777140506196124760275322197942561598315169583721575942836574740178981952826085890182169541469480214913565867323069636007264782750222598357573420604223430910284066504246838974529201906254206439520531423236565445785569744346988071792432889378767466812202970800863764045563615905241492068691439908796027018139190817286113824739647421695714113112677129326944990620280070639123303583536566840033460111567109781379075712839542515162389561569062370357367286863161927570680362196884188025411968650956747707162593060860173819185454469629683318396662802907521338117137569615800778487139348214849167298495368833419962220559463693248117795248581302220425582841257820586086364168154791506238404483800165402875142650476122718032374649464356447021632341225473345876119156533424738902620492079740203073467204408106721152529871999496284501043985739375681459696362863424652808262358251312750514082724012882579000714694703627895934891739219575408319869292321328030611395390236369717048948200581688967703532031212443454715299211046409171962602284815464434293286155537262790844629355126438529271855519169807607612297653574201922577750449332812278830957070160410117888239555389852110124228078193722903911773576559771705897066537487705963593538574315255279988387036893242072837576218192718524667806571564189822740172938107312882609711985358386416740255506406074973978493032376817302349913516800187883917754590101040543321095002438420613021417453632882470466555519357751649789986837132879021760339031734801319225376677103510635979211438102230822877989682230105070079696426343049891474151920688877763949621344661037818305881788603019738940059323943629615901506179988417226755701998502110652633913605816106836445267161227146336043914477383289749065543238160359943767577657434546466755809246152906248759904505154240587089500257921328794008197758927774214856752067706916562277567772752642033749016106961751290985369821689213439297692266615506159162050574052266323485055506214597706243052441817979522522771004414512372507738194450826782572224693447419004201946025186224391601180380792116042146690101385679596513606616515032850502156313041730516223363481967936010719160623076112081144512694727394506910901371248447967324348643855068812375603229105524426916021122908551215244605800044906758309272088440043956298392998740374087288342118630723632075991493076812208374304565744177409065201336452997904355191875728314222578491691575222725159691264182959594758303721172861911755079501008191183872320434036602449298308066311295665897533960767477223931669323111839020018454020303340430076404920483697058733841005552165893561449981251455256317657094843319075772191877979765638465971347102397489279020682989022669445035459695451045135759003815840779251122790206517749105935202652612451372854408696135691970067721827637950338861876004610581246651145106187280254199126849637231594776183837978305406981825058104739215648122977695269918499192923660488934988716574070749771590631236799452339932541413419373537265563596274523470914934396505076110176821660868912433741560882511350364662441648259618102237258030216965137960560539848213567491093426856329937770692949967003697303307061075989792257983320776891323752880463358421496865151871508326074266003840176662865816511734769556665414253046000423375715042414927312927268301766079657844094325373653655462052050014660579468296670560193340026013462148873541381095544064363104436584782740355529085972309390817798751401631780370258191800603726908252735950852398841939443272589823429365852367451149411085840313902505032375815040587492946180316087508326893832912981482955389721416410960842406907946926906143058501394049904050432830447726324532734600158911617524542783547006240427170511567388863172181333345601847265249642218622532608762183073469531252904037602416287856783962531937695879921561048351039481264551525847744435717262514403101586850323948310921121238511031080082119468071240808831800834355962383293649275683460800100762425961084576866711646000195749223604233244530086644472790678777443259960136549478931932197540294524361124695155285966335299585439416124974706876464138262717256346442994566141891161695726780809207646960512102603691258288576818878041913353193920580295514986809469816031504610030911548597182716229897057698709557261229029589715261833572632204302348489763788020733320185680087721325039648742693400987544257412314461327903413392490513874251690726263105504694715191559479459153100037559349805495319256926224690647312938648378581436040723020159413351038419574966063787857870431890384620063506081903224387735511712021498826004201569646761952814146217435650095090152845596670039286818514842084628370483968259610425351457054621103264839212798981242396558861226670497759084536033699321107713472170356273818848971683922558018413248172548246796278095874315554007655223217938802301144095122236031688795351916019397118071327805549976300570754908953100814758049771117266292404081201753556190345204445475345495271264883037030698844006027526979791728044184649224981022639753694799530779056842730235275737454302673912028881282220268099214056248631876397162868403412161658971219729979945218929013793143316949479006694494047057638883557082920247321315236684159456796965786526993967479015212085423851792823557916350290232661461516817071876680630898430887489356775537539118093298159516536733024930248951772190380577885881104261082157755633011927496852330661178405099846744217069130366688583544068792072754442844774982721542676893078342662855698335779292339637675083986751657120586955887625943175996953044322111076593492683923986234791682964078320984274210747462607761827921037138965771906511474521020606088855196333777350470159689493473445548440663057764788393377252035606329751513072783087766909915069314382347432726469836867774973514636039123405513820695731449834539947653564152337682793559336276879876673065262415689912722755600143430021286331926393685061711644339694220896985775470608177462119026986184280590902602145979337931771143939019740525734355635812846718733524466644044100161900946141098349151060681714491094062441099361426390687240686902364363638862182674806484905152977252753833671084999616711579571537944537267587941288502841859724929740826857178471585210470576133495736156958102900440900955191070754649313663636448264178559285207813506482268871762957151023836016307602296151703219950855540603191752386117347214585844757742611910721212638538505092370513955567863148558565258274924325073539149794617345192425379523732705508034970339380903394349933752734255821954402614222800214897594866656777054360688207861985786931297576518834562033220278547029144047698108467441305736670188002794440010139742024468223534271437883869799639247061790539229615385224684305724991251462108711297880678949804688776988030522724826512947919619754595016306548567340785396668705983454531517561244684054068346781668310849042853258791194772885928648936964026493684357635058792704998532128397077919689842492836448244487007513515331187616385053490148965100600119113443039049717063315544245016341927848045378323152752815155116624965498110232720678713627824061662977119048835046480528618889088653077778143376276632210065370528183071885053191065539584504588455623294900657704696728774228916127613239731277662776278241964351429411695040733756923006074013584464425835805565858364416989803321088046182058894521722419925858882158471511142050781292251030173300214690439026450243249668414707940588085353004473056913687314175514593184335493445078245349594204883462252260706219113452872853673162540829162146088281939330882611722037705552394824292284982935502618571665942403988051230906812317039974196064661041448595236114105988126065633346070883980642652909436111515375002028361279131568410199533527917180425114824614198033852744883916654486626844258076772781455623308213780824247758562382288969198180649042378574860409120563671660853526757628096379837401285848147775400628714947783427981670675232053555815037075197671149240457858668002850585327695471867428194382941236737298448057885410676771048263168813684148573551397755473278440704063798473708817935852928272713338697819972524797728871092472573054592701901297850987425097909863803369358018219106096840085338852057825825614816206635884893831241046366915082978407339550917116119246333605610481408340343806084025567331588303885099832899701047959187272487326919268910981498210624324853701361796076789064590469568500309239378217810157675200087090657294263249463254984463308003297231378498063742254435021454212640241767832523837671330838128388691706364270161755640591319803323521491299911265754420657932824433692729144526814788423972379914972576484568604721839531032042672831626226380681892796106463349227768298470350530162199626302853340247523939906110691629476228191742921774194131319798160535623762885384047657463129942456559505567432242535599479921671310641458475605246573702933986140098919998751010701610478404244504245120747660257829265481935359946134327610944728231328192701515522527554201397824114859037138226358426163722581688419153701326722949878061875175849190632162007237907991819273528197745581288467098198563607027228283435520954010985469984242912427341514295918090414740946721726641474392649486258744143171095353371962203483543655064979924729913451392234599403812593678933675823496338469740446330914200623367942495565391400706273389578788656048873203210024696510246410977423733475908548752947958379325150604945116815170812306825338567669244390435854214383015190669878375917252226610411143601659917253115179052730654613618581139627193079630214345624356330450027788200724804354498534361892706798101727753497212986359663171417637267559942031050095665069877031753493820621339518054268656414405497592299972941340298384495154828495146565986242981201054822022842602056631431658827904560701804381681387371796045942830495309237140794092327354297627514435523255659640943361451330047938310721199940839148788803606620920853493805808503976915081325943921972617446572420829773736710786280331168062079257094606688422492781281077979712240743315011404729249406344547262112948334782670531601279801285179198237448252280904436891870959374056092711292900798317505183449793026392321020422225725353106161824093992316003968846091106074055581878359485842231375548699678900986827466966227644242703012424694566598618160813723773920600627298968068805882273850075044784267892081902919551470612819481335093573359777880196490375290096909545297823520476363903482209367035746677649454337383128965938223750622973634800200193321327410848869110150583549612137952954639844037617346737209257363874242873413302361576546579395679631764123282824879908662408943735259387393515119193470147149427794341918006003278072716556055908627945685156614353609822711871144428813212088795247533287857938245110848213962399234862269739606726357919783161955763282277378117422404878797196444046156902549886438715631270848397757567665848164545289672995362436634500632635900124387573476861749713245019161725921738847608903006753247419419418146266334030405399237166754633049108720938969849067465149143135814775433349463412549443425051833481375105634767324489385058773993790286447309380492139166180039166848041772860613600350406034063048570767703565386622138009609999506812808129511187255613053158472867961699909836224669241740200740789560835523147263505888912851900397011865773402368133113712939640909019125253651382739571417731594080389901713678407620896498773054396380083047657393178508643837480801727432750947170439961711985438984405908599442735873037565864930585584949709088832155599841963587466283597344627000403137752129743825983781212622211822630030415868816594359204429352241568580563278091857054007378511461604135189027947731558062701144813725148582648792359128527322681970146168531276244207480880094888476738187889121681846900250621463548266001382805842484834938726958367183336557522648015509707643303267114812611161061172676179336950912762513465414610185439276311858377542187053429244475004429744641531482357628747323083261900366740806327820547885190205236668879355653451167025897311941323485596438840591812321080028090533516405935689266112944578098743039042042862625566066044262288889622880710572022807335242751048648067135357693164718800167433982203715295562164790847029010929525905865751258418521548869376028073694766348258976109601077819354980824614674634692383977449909294738571371943782187536862405263506367253624587771070427041142316339865360608966846996806154166308963703165974337717751075496335020582206900671821737723031730725562517053028541686628132663113913832427761711711183159711101055781387231746371272652151888747341773985283359617709359580169521999817030839266494552253630851904449460342472007942468039185626056722141912207799664335138635752282246506338364810316686666344983562937151662721653028211637445868893990212701148520615100025240730013198302488245915094490689227241978288720239140384384542674508503386342228877751620632022692399360973452312713300931267189860667532878595981488147162085769560434005341992767810635929512710421134009254983793756872312036890730121177937308760807123726912317114511607603168732407681067490289862844363996871586320207476478393324336127284794282341224186169194568571660126273500922955274725266574131955904315501737884186402815497502957221172826355661822509736041776903170299724838734290935313589998739222316325324922285376017530533351148680906414930517144146252575893437929557685502394133931039215162724511974691486990567311919949115748043794542957797078893132049030537134637852908544218643115735294563043236150173110534473039792439263393423964750569647141978255707340105468585872488940409669449706170064880144214928966151018656779774503960898864174891116905051822326190030521746338628696283079073320514762456137998219970369243850997126499812491204227585856675199909715210451437646410798064061740385414540963309795317183823926890407019973775454804263713886248061781760262135502704156314531317758878438413663148278291476403962122717298506407420917852265181864272828353551935157249963315979525870742118763321224053427943766424264253476336900126992431135190686399748054798654166901094727780778365360510216178526753377456325634339976848147937227609520942679875701680283981851794394638326421439547102562769796376222488672962562794281085118545247588234136398347971117981698755586038501885758811068623335703694063679451815241990517499198645564750984548699196031984188133988079874019552881912827686962345377482860827541760872587225622184711907776390637135738231620422770733657300855578265052839800227690450328529765841569476374582828772002893882985044956615114274966257295971733115304469554865625728073162614601580241138040004425552105021445531113923131306190479677220599649559923059042383220577261647580530105389359965497582387522038481251504095698368637396704982260624249029850912137435840364176339457953889993103278106999004021976403364339037931344910846383610961576137823702429481942408144108217495212466282478563603787959779554035674035472773284635096602907775240470380614022148937751360515634535659016007253533946825488853865839610124835089306814387049286679939498991597679514416590748905130703913337789745285408091503338611499736462410959796925232237550734384611542032993990236929257360739949214245668301131242942823303563134557011882792137224073579098102861554719174571701910630334878918021096719666446164078089169396858159329051825351778468579041841115585051317055248665065311924146147391890035257425212241058391925145370822949938718214654403468864157479085204360792958690521734052919612991350447142640597346237200542725258536645361309341768621369158954009730290328723392785112781376691660301791390211857076928446906491195099894727716099046213297631457921585106198073828644300740294165353361363774737786338536792214141859235938028628794506759619320037880363241430966767349989853328502673204780407155065748861203389593874556945064599596687587959393422085371620201031021363335711535770029342951434893062770455850231548425622427417077059025685685707350313384696547628803433756076978020893752525875998632941076847498568392282852455506390975026270767024460915241917521251712162132619227112851217016289693227940779529365842241813487194877935635896204311121200335557951597289850586387570626755409977156282896313903536749982533505915385596999742444261814710282756715392037594814249687533990494880577702522795698476184834417220843024388578500139369590362087967052348905332385129503534109178976924456640020797209717620686008765991160878327848335007299719192248663863681476473329240524557988640352740305169862922509146652040888254344455475634005260200152187141030670976601971233705584237035359376423009251513755735934430194419137922374724940323373859665124763029754417981141222718466414966716310024735250830317936766574631309675246929404068506375188424234633900243330795727241248376723764852727187318354201224471039657698800019328862365002023434999927143256034897744140241634395597674101390060425224142088569674205703842276630887512333275279538108372610731520870297328280313298856999702853468589019364992432330288676995434468560764638982911507690806705172466993754950475528487893892739343044172377977718670716657789012187845304387831847940736488602576094744920907490073835219066362535154991248559754672571303737878904985841417023024603835580138446204359239556462360890832775729104929035135324220385424152435341995780736803772932664831642608804141622021298520391902461478749599423374887405941485398229518243295490211235731362901153349545916930465637615655107312851227820983643774708433184680038555323367021061012992009609010590119315867065878335312064226087176434369298990468370284667216604013418495662151425046942229528235684693175503677668585795387135972780480275962536958608062172927449201187602816747720349709297027723201817775102442664829208710339425466405424827806176196037639879978011064216691207488035740983605643067377132967937067503002135215067352622066761600943106587443185495496548780902111497931798142679831672398991800950359636770587582266334447467683738257545813630805491523591757002753435349433862646698014496390592626328882095871426777671746178459680580560036639104839267250822357502926874898383073204138845774595236521318189552019752747221013323857996963725618070689796773862430139468196729384897386676074940824949865290736438003704125875200876074293422843093036576079319905650825650126377294901460016902887189197240643921654549971820421448274363767708273864884443645091043674683014474592507372133865000137032960870368956191084258109514374138228649137885239765874080116335804742581782231705583272241660456231764606480447104636037380446880662544301173687600858918312218603778931222399693269647419453263365031782657463821608250258494660445564978779787003932120628337898475015974311198150765412050229243163670219202866006015300772178313960695768691488957826918767041947964936345597469624861978100732597840909196806282853159694506402796032420237262576602581371444409247785643291199271997687944974858386363401384287597116236147480633242779205719993967249497694525966708576834888118076873158320860658332582106648657070036133692525100490558583314441816955806533254832062969764982216256822614574284264801780667829677116036498839342293761262456753627224899656581233198027562034858142115926194467122889618997894520560427247482483187374152883922622088451960875337352219232094589141809773215385108565703738478097055174724532925880584710493689391939173655904085593123738505859023876835944256010577670410145115485583329019119101932857753132857820739214842762078783062631723175560087513335821940168254578751905813761482022211928287182259594547337631579128175136576559941548235121460259385894511717158071008256694740416786079985100871895710822314662853906733541072599036562949545500966723105053406193562090322246526375565318124783172727963864321314612973005250267315566864196842665385212843270771736439381094532687937537274760470093372979306649490440030567060971180133527498451095258701384824145183751240642569899283428753486467254216798460033506027056317371467973434511584918306659036981660844670481825226576354130833467128363257293425848911179381248831725769584530656685242038607953491917789889399133794793618705397502001179954067051848327657406393721921786376529258461924141717801300974779422031722388479943091947098552288766290498058648420557263898306992992147581390612952699620008129424041499863972134270024404609033810450974021605035208509163755733252407677828473907905889115688226747996598808944963301372190473631755650730897327192743742994941829632473482802033246173100158147343927805888523138531116490158353861783657000338776503212210694799876309392000690025917726399346871140429841420821234063591748682251135648121739537859838207050908302352434564549740968125354317992994087849489578906408908993908598846518095134892111377607032691541984460795532377100337114672104906436710460514501352240564013990904189631943527436149339073872592366579233585358557713697207451447081311995399954580743170751402719577635809976899281003186056207506259066399540907024144022458721192527425057809621610820224141974668898960258221473742067883041848436252557404684493578260407624519266232146482812012427411681390554909623681734137710183731409590660968705555022877751860089650840601009709086500040561674671218416559419276175075591071929944114243568466771369860503796222714074417698819649888374093593419616081533502774819101341343199050714680019427125164313007796345619462769654470693751105637398645339383346121451440084069052151475256340722672954346970031298503678522940276171532362064174971341463360419618312998869278344315073402510158411078226051255691284217108172623558206521856759581007608905438749102294650835874094301088693363532757759358482449986384516666949608070351656120226792814141812861884054585603630643100681896316516016937299578808952586721638322162127931608724156776812301222426175899513367933262197158666585399266640340869685927735590307314890539376539152562258088532357458800954278881167130076211780916206094319984506280367209048447009119257911629217611064004848757451243135072300629860854707866324579601802674646239416048043513058868947532933068442623477426142803749958230538561310112486597201354913485083653795533753455307881254638125534559978175152794125590670319338364094994570884085458114992025070473196934358102459522254169791081764422886874761408205908164611316004675857856993756505346093264376249342825009425700745624269992319204436222636672175490316072343996879793083550588084598149191503036985007548364086885727965287205274027009247789670048737926456710551821100539620572693588876877454042889695487307194957612025511467584365012067926204375841828543834605149066605043231783155661633625201268947980197447949438549049962168820987291300876737900701400265528533223891810205511184338417452600220785279145926460145854089811768222746107644348303141198614300556035261048364820426732276956628549631849588721927069918409510747198657337063572038509325834157341177918935140099836411369681877062013706100892345867159957292163454975406993041362349744859870995535403041607257738527411110678546438725040065574590682040320667442008487177297804930740886928421448891208435855448403209583397168603422198984384468283113979166330297274261316973552186168732612633623994978575495719406629101800678881495658057859935772893066919598121685261741523345752090507422278258929377326200021661092030806338972867638775283941222042796567960187354449083756794818740245959082590143833870291529895718149034283689589415162355661833145280948321983563956779730444615965960231695668802782632975972057436449934250527385454087414988267086270075189389559868608834628517976734366041868146683152656151253401044342513490408567833231576658987223750226161534059710646456983934771585199567726691043672647746705634927328022544863554278513555700548021494793324722490679262727148380724926139347701314620287964136469279074944853906715245546541053883689403261009832901269093250635667194473673228905835532787550572652113310691957458829563365774806039272456757452297846197566968366432632071038836015913623279968607394812806378615306034690768152238969739159011939476713190457524485277862527574053623077464216505012127053137365400680279059294516990269901176259053267315277931912464792390044792521089603598832597365439180230733819349490052327704496507472912659340359405918014435443392549600113779339097019106188245487189944777869933804048323896258597464451947019252245187595633180108269300031745438145577672990190516210755149652874884534041542804547033333429601271364989378518206477241547237308086572434241019764945457526359340385595746788514164691193591704757079665300473418763661812552387555548894260866832339693761587666776315932785057592637847804951878256756673919652766006531062607990831808939901551203807197883091878680082281621782753448071815125485432446834396158423698869347437788499650766189433786888798676280522788464923094664643682972688110746121341054983916288222008735376251436920093764493430188615577515210354940878927683396540763967550238943180927694835724022784590251435395763525251655367673990208189372509981268135453174724287674014462452724991778779284104575330487077377532824881222293733019667714229480892924119393359886838616280450007181928554269408831619302609666641022929138580262258307243769820949312782228890370993981810939523582949839463991053326158499425398223791020931462552491140098448318952012547457567416656389969225744609455820622838080623966781138864840213899214669430602866192204565924590846562748967416900525262851933920034080305330123018844786586702536221251793290334480210722773024443412880222336048480858419330843902795104342652719071840252614585104517302414062301136138168879176933175227118959376521158988366410882747586555659496466649415940391326495878150034407798066709800458579361837320421984786300559186631724675482503618844372302105377149283115599466063914262796037029896477747877483695556875478917012962489496586226161984363588781378610261727653850465262953388560884183760300467217898766078930065436474276737438578003290899638895978604379714743784868898820292164794526619666301715794537538074577798642479800212240877286670489538887774345796597752010325781342271407990098527612786450373652150759595240654464910188008051564941803460302075593554967623764057298935132804035160832121122028935132323345022528660765856038611803727530431521612703640625932706824835548609713069537822589247835404747927685643219167436316034351810546342254482355545673397687330917999320206435203501551405501021340416414662966655310810150883359970576421998322002730211873640169634577512153671988670916553228372923586598343186922349664522464532776255014680965628388670295558625311565600487533675245451776010069738839207837787118516733698616543332225418456779123428702085270769106820515828755384642226786824998262862495508899579966999610155042645486555886015963702350748751832718694746341231063877013171713718174472245727646522642092412604868070502269500629018728296630677800980473491516324243579598707482645230589403137363358183224723106309707501326795048336734195557140244606140594871639007655104454838535378663139656298885988753643700780439620949752886169739368889387077075422932254005253367230823559879888773324530159955931385437718535444738337711879531429415375974473578443113094442712615780664434517663530165760618593354537912691120047105929629987247153981745577902393915277815908912314678765257906340723850973402185668858696443934534478537935174021046573764810383075666188706419463423588407421711162138973941854762807554075961850066310285830300887565877988130287145575321100142682295372445034612757487097730511443052736942820645852922233833639905408380217349401497927741840061659645731141356487215602121850816806989490806141649608301612322997780790858282674222108697924045963524193641417468722631083476114922856001288457544275600606619263592427799539121952750619891651129730966969109083026618544280079938070235111125406869091332628736167165883932029647595271080992026926109324451462837963940362429093782027633130828021919058406113912174908723115170069693884014005678433247585051375642970033897442619099750639837922047178269330648461411817129900575942397436644226675531518188370469990471030082963163696171922618776650762850062472908185522829214640003822113011386233839113154080531636815354125981079011432313776417479017035394830995737916066469756808704056050093161762866708187133132277697673725515921973336473679255401942395472855714459939572240100619047929823492206786766981874742530421888082791697844098080565829062728887783745792067880025035562885541524174959961361053211837440847212350401579532096446774931307111744895732488427895700683416949322951503317856885896660205028512047097004095975433027791536146762173373617000116528989409050792419754265056869547178072478887982881893506616613914354163332698153517195448818575361011241468708458448853704423099530999566907918988746174272860740431978541719796152579610274218248247695663126986054300288686502318867228292672264440625890729642625299178754730760476654870573066773315301284252705452741655427680372412001132673538641962527613305014069141439982951176562464277902133329435692711806957946525535338100572526702261494886415765982551908764030480318013298588896133483500263368395821498119672148179116847714862074493423576957994290714729862699799423846318113374089283386640941368070247488396503630826006369592433608681290385742201836058116483771512194251535254857775520206018170247044770565358366675976503323695080345935783437152288040784059775887674596521681095888125267723656838883830856954727731147791947508828083593867156599206485594642553303393809772264532506290058184702629015170176530093236809624557544593354112975186706870982040164408504402394276023351564118217120700608551030377992839496701543440678447349680182562212605160720694060239239118690719631477042980334142163070822899775447092080727882047422677711225604689659083744807188388601511779902953142007652658422816076363221398557795394422133588164130275322519908707229780329926991780312582866211641529412895810525157815606776592787486967799949640996066458226560548626781776856884531536714364103534175348392204778360972603515899468060422459627690937490081704415504803738049281015513627298871713093792902307744172939200798683162959523532721199953719590789252143392708546840011660909383286202637931497703396985983357346357198661150739707357502143418279484696149199034601068186582388061669829943187623882289337479406352547335387503230639582523169889958513892589224759483079831911381841660264389124000064410975216716516108294564294379956995229801586779115708073859201896245561784457100150664399831379845483669312465833095568074186076267387332331861070768538481412811520416995788888053811047664481015723073839164176868108741685284848978334814863897311963241120945148104083629055046240678424134468031343608260940326267470231811905781097144383168688491909168470995368944582509914662978049876205126158939289383854235145149791924619728596989233565691643480401622149784973975954135996811310418053296707103199086687655232120197981355876769403406997376463293186148964138786473835030352591127772059721040718366301880035823799346802116907671517529278536283260853257014594504049357481113947984356921512547336124872692054562310516003955529699270517417778836735301685976783958059744811607642695290571790655618532558863332179887737980986608215631648985288780068701430519254333849481199489440692413437930157351264307283203280205468956754307049509594598119367580779818800135815657759518308576634799970409823141407812414450644724513361701219013172688946693733188444983839824588403024795262029124055858125455022046536871929005915264757381405036922022635808000735947358317232972145407538382012958054639241377019341559467122971654801745156282294633446088360455013309441616530987516697362795647368633487213046781706016903870245230817136136367062553394779764673539768528029976845072974425072562161416479583851359622693732601326711908831366912666326944597578164709747936216392019665348060844273146507248458268789841748057357896244960000293334591330812522431116427358884423267072483080535428288180228613288563368914992811683889526983203058648151448191297211522568029136187978756133138241817565920525971635723152520433717492067453972938235080506500789679073892215450771018148511074069117907854340005319464294456474739921727524202215071794635035021974560996608753685668541327869816377969428265587032994130999345304417391430108883494204405099792324529849136283910780513073692173259635824318047699998011466937308437487978889376364038013479111759338467299316163393103597634835196016375572836007580798722385336703958384363724724962932416558408699961674177640028847619944897644250413088845921745273227775771327901981314745020214247551052303324854212691618561273822505040465311561564504560718978101280336088818329405535482645356971739258836674799560604570683340356678652566329629242553333570051467079730575397846635561005544069098634971957912206718449783751898307824167131327967349886840849137213972647050599733152536800903820902872264014885412704744550373155479293411981142029272075945113486389890730329669688031252580242666120861173033528385611117624622278361823681030655358431994459786180341191614415914651649650177053137904998653340575896570305722465318954350247687669722078399914651025860343341490630388921652603786386724463759637850216214402116486425104014983479727447239086330744076217337439372629026145523659061549931260189424915436976155539291745148011074579761936356282317114651323188772175408790600669877374568540714920906888485285351303651089013736904873514347307817132380954209156529261836704638303682614261492190639429211906072224177396768120799742223370326661259862197872175141126785643073681187040253206707352429364394983677334387687183576102928348780840868181696728707184185118187543429731228765062254894425868905424719888068291690614999603034189487910167391479768376384265683559208528180214915567000181784021677653047038398185269606659580440873888183571565676018160831874876521081727335472662853064780306970154823179659105232251223879315360008800242799587815756648582032173432509158039961092339251919202527235281281444987308610926573975811230480547736632703554027173074593851965367282503566298030297752006879895071281347052632813109720813604334538823512439202576855317007707637677372125853833765018349912848379803062752912123372723138579863528305384546217353237480594181972045241295740712927863434580376317701298495916754849201683502852501120491491361065684947771479341220511432502104357317145536645881098484353373444886958684726081842056990246436836336110006009275985095972827839920088569513095336843225277373031875648807600061976956722068798897381523319872909115832758704479669191734467553783180904395694473140737286959395372648485934232155809752035449004758780046695501547868632658936430055684116742065572988739150260500260938539606565196056995878787100632690595880289207582787584274053770932550218781960756567103820324572145845466989666303833875629666476293735739654274783176849049244121189766203141422430289904713547521130833232892426902376531832694839297914708144029113474554594334281391236809871549462514809825057799885863236791998711167367164685357506169449247411407816267688530782057203439157972336308091306946115658245557253830530033570923461399782485983292876795139332418786802208725389505535340242972004303072821446096612222225631092664115089607592246275349977179266442810017525310509408685377946357872637499611850307427557792075162350732558354894789248626094564027141165469216688688222039995801913435290990914799045947249210522702166964975397181099498549739938408646210575066880834682768654550181794058416825741497410886922291606730743123925148852046229847747965986755020532468685476748756073328980571549282976300760030137727777301838862308674780273383757196358493239368270639070894486952426126315605354269171954199543923837006765072008297511669959390792754713863353872797684440025069859140822240977620153000096639537210667042834178287391740097079287724904365125673942406841540909713683995813900912586688490087869527751199560334152874574934439291888712796989060111542784065882906800031150185177573461873419968078920174304839089511706520336188347928094133007849408974349367828291462106225444472491193612304594558249336355061881351611388613236882194146919354730777119405179360491693946776843666025242075178672244307877214460540683921205615207792273648330129444832239614771937532005517099930033480528083767123317935759194681184513292652790467624427887683768267440501482086462277653632198046512396702865235501887700630882419995403953469725238437444047155149797589948634313847780864806259894114247318062391404753756595360839745355528686684690199468824979477617442298480254943755699225086655517347391982435686888345283039392568720940766345131193726892446766793539818702914430623527369779745438855319313138781279038819056905856851454517130847303449241300601697712667907125788819754919324563153654252782549457054206746542966779515146105145337980462290178510894829753461363042816306913793082730553965349667589307448585682134221265103083576123174857268497762632667088537216729104855522225879063163172567157532220735543763053779822634337472986601086103599350611480997945910824007108574637389753785984695093855495721972817604044408634650015405569788677143097836648627676133011052333092510606664121346428305481672363012047391088549847694591191740859367884921936691582515442583879742805931583501699786782917993321238833921581423216382990128636465558332447283771654502143242975773093038732788049524205710888096943854759041019463666931554110947775897132495818857063085433458125204012562595947704076812742041955927801324030143030464240864174576286647215790180246452136368829868186698888391281635629423187513075857029000565435876211833754026482122492459818679198091821290680230062069331128557280985573739927504426484866642962154111548148959214201741622671673393938507034584260855369267543106328479125070810706795509365517602830427719620409055048602983527722743091425832474153322238818392090167008674633019878293759712140866678582171628344911196988506497843500609443897190604069546880945852091905765613458033515474377577095085306267015952475335853149428978149046786080342808449691839812884147065149800940346274896418298226528853874487634149939960678287273474826793021256095494831463031964818810108748832883724619121923441865994782088120564219204985255927812233623514958958271601031951547494236274972940675987715953287704393224028464894993066438729216365491439432409662814762190879364971973364626941508598536396500138508803232912923365871655271767012572723007579917052164933054956883582651734963895706726615418407969391796443443570314241059996207979237520653865010462578977427728420662456586636766213831478968479257071617029043024675055926501178429870982547960730515393089349238896839658145205017173082936809595528839458905337226315632744195774598284903745320549189176944713251428811760824741297159926887480733386120182499488334727557451612256722623210032902553588539612582369590382902187250683198752040566748730684132308880623856424246981568665485898070219784391150376762269689504148244752793030196972548240707918821313128557377479971467192690269234347371657362189195470004867199676930274988719890768964549702391802337676688633327534184905492602887970501762118675529590177075252891819266240957683574047265793311075467677855969043965235304288103967975293092232148097692819919158457024589606889693588781600164444188175609176741328405845726656203620524958909903374554698478590610554685299084110669641851549468597466129809188496218767171465885723100481309305799079173318211076224270189645485236992272116749885343274208200650008954333572421738544317716911368314015105051574153851957230635892821811258592917190377367043120734641930169433256705205149402023953652637812576996732144185509212802745533950282361130980512727479035871827632949988853258820389824643002965854201523434175834440622118452819444660403047036886852622895798156261938893142239165637441102196457770055514903964897707744711182259450196794803511535888942508449346968050417963666337313218484427512064070450556631755890226519396139434302580060604111061855222864173124800533203782326795627628933633588193474172415480063947980855568654854537082165359015356162904763623225833877216417959074106196268519918792078773491120648522133952586151326775676340300669018987417428523308514137833553951838777784464329981480883672178820076914974862010656724536263341787894592229220259951167620486878406272903531439651283501391611621720774011387283173735409026152270404270476605198558759391425063054151913668317592017422924578246249775327212343067198799168542985370332356470348359178339396429241865509943354692024945158482043035266076288547605513145983014763727519868451528586209576736902724932927004672495501811954007048058830728226184992272553048148365548757038101651300310328083720199833531275611227437447402923226058319283141018534684357123883283225546231356328902975767328996527048852091070522291414737323057916703101935889421781111767608319414652883391718121819137595577617755048052770719857295880349599667401004855499082393377268458078573992596593955898270087455287847695213991617429153568853441372897824495136871067943701230929215694352437576762011189616026506945418201000124683162367218031591721052061414493925749450361548869240825833579574594558590578873315418145128769434158544298627735389006613932638290782854768711060453860572184022750683304561634217005509833300147280389414591284362780714973919244358747295413753823021921003086269532590864554707910569770757064246307012743849314077703428533102722597372233024859821765027266637771448297393122144143381152664643838757586720982783526753349338083794639219788734755842865204032258476632809871420197877643891201529633124072535600471831930505348629520770363857888790340405876573344119560125608611444848879055205558874911902291493257393331312963540781125931163649302080127711203348347446783615777992013616875297275326493362215290944892623216205812830546122409741692503530091563274751631898207481405722976983604408784137255803156045257190432627431715717857203909135724518228059056320958581998977962520385984888311882184393027341110854410999278454696373731739208160791653138879016849897325461128371384471699398328768790460480630376783017207330711416906990982207383978251678085036540502541951963417847372659238889486441047873548705734253100283473412655701142173374544826754795396325741849065162634134048653210422893416969239654061446739719720110499133954520247810994812660754386472934000109227450987407485321367299562115280473943848239714893386211312630090028869229971344087158096470445272744829412444737376350485229079578553873597702383234619128526119596733848519489855788542663496560022825034463100789181323585867955525140527890386224491452760366696906005384181497246942244755850831899423131696747078247313764500268560556506738911899440858406488689114330624910083226308024582909523037170347975106913743661943145424943915202383017784927268406692862752217679829886626573448617446245409637730585909744476280379136559471284734811169292794054298836692886114445363400626412322873098748063613295628938077752116680289084632571262275193527761724341858760754479710475235400567695328624149861729298018029844514851588918945199437986988402818484128267266393608919786564530894037342462299403463140725144602460395179974512379677736690155221441821112598319933253379203978864256690527640850887084079663629268882858656690324574261382671804151112941327349611595744728239797041435768805797987769547799400362749259372354668516760636160501163771433197357524653198167342415100203885511331941477508002301780580103694545699863400315225299309200340422821883300175833703624951023636325403646572812553396337421080164872403076254753332495998533719945458498219066489302036282332560933132889668719876351179211524102569115273071163793710087528555989174569942591440972136252804871064971003753582362206677139290158775782522027394099538827571920553757282057448538582923172379678093388105554992540160970146407035241921756813489463443154435421900624189653667966162934449708213697825365313359644420180915964345400740574261797727084249384579300492837197200812547909402327395030791347692876797795998109665875119328874159060449027515792614116279478401967379185635553047281717576737839796489711736921505109597936416062767474587547595912390853675801593794692777039871696207709673522395695453968900218737991300395072210807912626156994762270931270956737554626708649908422113463497226593546650771534896893712718581837966100314935956579967138472253240669458050604106548572516459612931698957701160444290441437702272883228273617306079405541283514783707884146362258712126518793405215569849067256030251234935404028668152073535843903883366204812409010377744491459959090680443499911300886115819522618364237017759836490791216514993373509098146137805022309431901027777659669374283810243301399079322696279372446392284102169037613860547316238674144011597188890716017220284309528981150154134549573868202221852079856486800453820219833865096596809882229145765298544635725285768299061488914725426946285429580868712390888884237079141825727412359624194127358244776649666156032844429302501030144184735605588709301192979553485084706213890524173198091944705625080589778034502088043968671678712755988487812535549816839469510841304741030884388311167717483692960979238228840841403836134220785640426417608510079922853368195842193087872021403060879511777730263720483898930974886162403603891147969082783765160169523665509032232818315323605327440212557231151195347458492443632873869336887136571063836096234643521599911503740160152581970405350844350680655811542112748894447833848074008429394446440311115787311994104781990513592449785952102677363465942220219682492588497582481717152461185783796007823683075516204572778919732047407125950813902000823043458672458074932122278266974396108737586133671831821492948214803116063970584022535343631918141836299116426906226766067601769708961411628618629318639970434850755467590648865205507415693278863902010233067423387974451518002344419366418468074412846403965242205733405253229238423743413512303732244672238964311737912814826683865370824898992405031477958025927868600249112275019230174568086079213797655282639150379488711660246857584296811675767401245456935525171832270143274282253130283483126854126535510004561893747566066244039173268839647612562654739114132789563983766095132448626638363864407772864756300166307765167785072594351848601847579582660146447606316952568212733908189525315738153344414723788740320443872771321455368644279596428833877054797445452511209741716946446736014146631402873182558159142123733711113946135896515931898547807993879968003937200032179146322690843175942920513481490500176839153080804026545053183133522897391615887859109159780330212950866651146253453156366471585211547268975284893675568724050000068216976099521799924091233212051037324869806474350776559551338661759005057624703415502116308883626847908352868997117145019824132916765983615496782688919744180711546728363470980414130508870320523878424056397799317492528789713657689897018873024723560083867627227925472289817698670381974878955840137964200272715636697294868964039104341831230576665273519681785616891759112480384427560949079721737345435214481513610534765857727625001017986189096420323709998661907399338001535479656551420088442133310310125230706749432687626839105597118805765340308641832719843422745411774610487270947897512260016711472727997813009680683475177949868104687219158232212480997632793055210328263222315247225119133493130554926140637178612272329568037225593976777983363824085180406957007223422813523263201639359158247535054862942560902241672638560558496130187552406154124786912347133231860774387699719701184949895536379095905475176317048865006251147555231460228704817651668638672016280003157589250487317281108956515109684802120970867492546163509115876987331263298575718384895610830818159651249940852300716787005524385019454467071219867295307333923866685831776532754044911952303046245497877706278640833178879646658688779046698034999891226621331536899991959576795154865864775703987202163220530187687753725696852379909206481711811049600156238940007945982783639720450290211151331250442483525729777335753993013284621710334921958644701527084192794629443543415335992703729816568371702149956046059996094014392751565889688432387381014674814406215331033873008306568297716262789315761713316548196130119891721810280794345124267378474904169074287362169575244744395238142726692995704077963711324435229848433474968735817745601685990459210804966083364266781601811952283832484438392699721861341745278860058942584491474043004062538127554331918631779410207124637108646875738638185747715701476562773217030479493171175515774874038144906295356087033599931807016560053789573946499852052288772913558329528027673119504507659850666910823947591803319399464796117698377058868175763095539551456206071961397690882478942667423186599686541134004232845156780597812258647810515529719546054847612835631425009290697064109202663140066739745212389472070705021289336057073784819028134473978484265420739698657714898707931262044475770520314474606112973419115547444196760373242433577665718487974899220557163602083256716745956631882113055425182139468801903736981626495386056245309103099564901140107369895009891471874560820653641806035859715145648126500597067544457847452919302185111676146967109695007224140958157283913067627276284259353183206063062773216414962899619647063484401567387599743770711132222420998676027812988739038250411011971355961778629879661396494654822138786425041234973222287729843674331672368074000155225168385803963748236077219042457247351002079778626590224993836990766101073155991450629117098042596226668945451126735949470993357511705054527309413498303949853938440741810406283823944646318544567846114945903230416627914518886403912100255580238381241036261651106390227014592459970638960437102267153173317792034911265983035618771017753863528199169779917038816068695516971079890246206329665536704907362745863115986772536194817180912603686627160483850070257741652790005317640785915444005588572442778275389827862504242874427410135699663966810009322081575487988377992895178430199956706763364601763343844660609087921665339519412364235598324351013046584813101078874433282121416491198004725172378919485630455048373610946006647843239437895250798360141648151574673643174928439353428612869142989847600115350289882980579434663320882024669069381902553024659135955519031289782752709933202734736307960037568836507959397958477634752452795256934634881998098147138362570067682197170575219871456926311537980276479259031025618457546225357661399379444561898100667626060190818234304208529004049583680192271531392463690589232767229899658183057885434384502087855054857911927966860348636740927186891744433580320813391811863793351324321280621628434808237397878943831571743911087363357843251492177221471205324598239202913014071550687320446331125722608781233166699064639987773283149319315383620422783944779380391803264136654691495620306103274069832600845903270994696318230949952261308010438198723128325257795202278469758013367677728720284774958045945526203590487858499155066191557052499293754418558183907410398792955226303138427451350565622057432421752068279851349271728365849029798360665906734745134723748291762778003688386271318444521090352040783124060731904586545187107795208776661506931033668331273018150839203055691511543159009790817400576628064372112966671266789327219335157472953266500867331597694390913253821911763819954494816038778325551231858749304129266323315250701599746616902260341127584259845234681361869921975414790585140629550566394297723726976174345549976246585953326750487402525117638558739086190589337151053439254404299449414757086006442784022541746988669462630396054645072484270350437462134610490543787609083368530932063399258864903714214396358150631216914504563168299839929729956611525281662171825188762181241455166200349335376201967118292574407102756642844690004687135565051360712885836771959933638403749543797103432045761249443274837123575468267905825941392944854786031317568511701475394959715511446679979814970651339997644078576101699780787943663597096306165016180038471892760083450786917461824555143310562211064189600397547721064457730452766347173887478539594466256715548100603499995845858349057606428167205593848589054959999996141919787506464756599010445978179115315955640857442008715995773202717240254752149904065438692734371799694848294216881350655508202761565681659237945980733876782104451227344652093540986507813082309426441891490912156358178551436994843236530410750000819700667999344412433746186538245603490222132316842713376451988059976801629345883018316627167430045780600386201577456954539297371897274544263548464603619736001047950532469985590040900197044741634749842230370337616926715462064824375318949532127389383599836920022427422200662052655465807232157407640006024050297812770034553549323072542277204190852678820141997098366726860157763227714063383638726658428060944924318244071473895361302656087818180043134119328256004454025234975858585434687363178019382962753239995734242829028121853594714320564011032268689564160415221900734887774694670287390484170975323378870599062804088861026192221435417475184547433664047422826388745234624194681516187449159962597805325285366832148933401614704959606822401037078161509450697518642301567783089634153363635984115187374827014357887169386056519524541870491637422271122544314671306065378805193431100492490493180325497447556826173245796577607215451521579360514329172510139823682448305810881580573399948419988704904847868445693615544477848040858888979984964245659804635530504983356002759377353912777186559922464849002835369629244838291081793366923780623184855635985426486001806969668171574581035558857224877939611600298737482179493102272515880872180328398288379732240850755211916307388905260485297140423847261786542145365616258757109106867979030646880185856361328561902822687573760229733730849427392237319432801815178491141519150354786615333023779184357164491026684597847344824930175422510970395718016430830106468268896464117148279724344301817425953055787704835394933516701406280718864767058038347025090527280686713833689947821942289513021271128913519184901170023392600250262864415761338116137293709467231211817726961351143183710827447054865427567872049877973998414099624821250565315367265828246768290990374002621220973609343674943826157546668336681955161260332066788029923728143110160502205859756538685082754430073605346728295853495949425928377866073992979013292277327535989042904327510109749586158639694534813306978806228181638951377378818211700641489610557279301052106053138515828654825656117587882388710878747296714164509759508454051533146414016586956481200343561363823512532775429903788437918466853870454551635342352769069808948573128181805516375768225967766979514892571575278359852510196596159038391822730403161218926998181216833822083015126710908001414101128123271181560844214885621311813060522112469985992626684090444075643662721781466976037657620821479012111556675002971151496297431893320140591801884480977249038595849997261466041988050147647066162332724071555247346131682135363859742505327419278744630524035807390014145170771158144743409187218098497412495784888758719970631452532206430143243490038830910913829148574300186305892066634681091872489461512744648405238032953334081171280917679076449229663592661063004572051417496033452984955753940553317342863226785434254812237987550163853281078155042671235019310589298523995189743052852932733338743243413034786137182547588565336804500967217340463630048916707226623612173051292343502918921121745997567559957344941857308194379953610461509933498978581753524984572782660829826709735487240267165438775451099421385136190264522311805046193686062623962603094437290634383063656705779690168511430820899253036811852596747851537414304897385326138315756596548650407590915195852767570578282979902005512262162971936859549147151259339647265254091152029481967839952231131749105160380039656584902724762630891325699218480847357209488606253109100292312038350229966996270408892404577384427675912892999837340765169592865498077773178090927789756986877398133262420219134334261059196504037813037561255129929164255107351889954198528876410538475441953450682253767195948970948225278217355372419986200763895850787298260325480477495527395911656066597754992953373231406098940378862013037147477724024720506374343705944870472127191212074115681227059760645880870873268186390391659440998641299854837727100274639288440869788298623325505293395043569718013976989173443246077608309513507312958723709151658518098959466937793950130344055654171422104807758993140413858225462636197004250577982929112473339003104398228155214199826014210801560514859647101028567094528521047578848798759791982472013518373559672521754835443177366156526192925712984165025007737635204695199284677688962656383317147152167348649359484870701091283929302583343472362823013176701228875643376173745027505975908967102927193439707812539761674751942674570904756174957322257309889846438150561909566717562787602529641568713758350226138095536019483466631910437898853755294941318512083330986176973830238744929233562304029302081648696481678389012381382264038247582155336495451971737258151945448299295551650678041124570601581498219099235547980538138050596304380883945603186516228344944156298758224524921297059828810820855161153260090215660412071201677324601005626266222574765624202257830674400456941440758573881592525349967231695338105918015566869990671762407246255175841475568187550739422273751160841961222143438469185014014205948151824646020842843689286230148071600084401255235744000875858544962602494440977444836357327395939877752563481274433735723659140347052389816168211822037039671492129997934945587342411434836626294793239511304986490437492730842239007677943364992269082205919103032494404078433999743972391192458300578550503631187460973815640435104538516281419051376897750945424148865692133886892291936127824599820084810532461294071284672902527084816826780884348918460861485061048397595598862053695282395425099414079066654256130251052365891866901888776904785869305987336767029889643715811263994631764106535451673745506952064486988052298252102270446766490011858675549353684307482021174772678835653791689419735110736363258161941309767738603277520274390711601107050658162052736194784340593563751450455312833059467962752276533468903057167963627488710991038890432473665994133438028895227098462448083837361617134833761386305006022968973654913409773871134591472208180862844967226268661911594792774834457112227488146996842087720145064735346707436675402651821519517411058315163226835160483437284510873707081003261942081880716234030108990647174391768686503752742781964826477276636971961422741868098157980425608868874468083309500395946481161521519549229657982811867931318918376444912120751947847575511844866803653928547968728965108230186438604640280626619922500480843232824963151498402498811849052781923907872570973505885985602328588041932097793659330318327167254309719598395533387216929656980023267163675993917513043153806840242711616451919197838301370251352430277489502510893977326546304129680419628361389455578064005061048043607935970489470638613750578200009083354627531738377872246475939064060340712565605404856906662410413211033019079816639146832670584326679654861131774897449503308825782246399061133200252722390013574391740117843316278549750170621720575212826732278240331048474781329848877374427661401597456971382343381451949314960449863416441215335612841842708127537148893080535102888784627775880897883468447888094073870293253908411640432863941095200053620757486901499061213093771772588986137144692086153061347414184735658004967249351322033520679130679553450073397913793507552315285018516108211448331608151589874084415559167538671720083509037709800282805024775050376619515699852945030796968986716682150481467991804457212822925147348259102138300983620779287415938987607381203730946418975418034299995223308739339920212775976809072378029561495659800991261164959402273173122481810533685555564365898478215617798727041497424277488017404484930684156656058861953520512036957246022250191999792758880389722581394442089271140500218570908459887413701217005437452615331399836759711449143411427746006230229005375598738292414969385168485636813463900125307777566211188792056913292657081688625822999135272956919371895317700499531312689065316646654279120357910691627525100650434431481259430766124755611822256913204246015706898991947763678149149292258725721026638914668221531636907361539937713006366018609098455641741730123763513701644707718090979330466896740613352664737156510528560423076339739426169156813015786484294590935939808584858480418410129966794409077613101357495513341757547142914186056443870505972173543182539563163265144389812318553269171615253453333590805700981030064521098305184731877284699487075545964310916338976002408162511157031799097598002954856409911505620664953662282887044624758479114510369263359272632505316357109543383106128472806936894245285667990674146577502183529903115220652117070398771438505477442359445646535598991006693639167687884440369012802333246700697557337347098643524047057665735915040668429681843476108913997323784789547518005697919680401536653230136991231565322633359756123477021373518304854766292477555971662673381211676859574856678540383176079322754219619123200332984252436891778299097241126061015075994699487667787548003844642746848712402055693759221775691482761155432880803747070314914450677869107928771491938745078204556400210695308604421610144278026325790085388622679173400480507536053391558328649742134877407563904425916053669279796850004759301444677523890032559294115141370624120764027226303856752658333508912336125619622714541934750389271472674209544437116939985375995571547732057904806149829748721258790483989369670852362862740714207623049797564444720137361128880755578334878633285086353208339969252385659599960331199964975204241155218462948799906092355575522970252268703742199687187534319924785688042609300521524724326640037292167371430672267853239567673167518697978216176714481302863452088661806592899233582492927113273519314047468014193468189202592570748617894329773833635178539704166612939052270493239931265123681844667855708931265942449500004392489519554786625446688139136773826775391132088235795698623410149704803768487286035568699715934114686366819084264846344121017310948978516572134680116961373866835573407793811878058227872519800393261220160498540389963133196218680164184054263093634366332904217883141943960475111712500916552603513080132420077495280809332291614323313044438797471305006450373836094590154298671480926845596432916012162018496834994407590311477108351648109015928159376800372042953664955049069933896620629700769431463769128917611540319703803315666737006345820777139188094435432498545461248145456241454373983491873364313619744132634731522366728450424723297782849377223720742030064551199659756282313832035201602839755001593919973590200502478256580402436757450588534304515828666678625590438400808523813861169952745660877177781829602570515289715673921799239823477577165996967461742224558369373851433457284804898857342807100255263379835437378920351914813931533346063159210746087016238393665199925619526495273547400924622237255165669221504013387012399647963649999207376219850935221387889087113925504299538484080922299379772769246641937881541928585378590317685164980879676132253331953067895477831126320279277793682861106687388791847789097864147592641878050062811918698737094653343630683232901996598441332315174924382445127362956496070748490749521041376350487850125070634366239189983923898678508649532186491950196634666192082193805229124888857600863883858179659804908505574536742094315113145931837233800390120270835813988262868193932385651637070678524283732897275717606820400834470920559660180140638241354239398606452660951610758443063460158717963054584789551669361665219947780791754197713295134484221913512610955232884469509596319344839808629883250793071194061621603602907542873608553740202857795235560667678072550862045427547913237474171263799092897933550302838871873138544261082081836253932956836356515825321544609716571198391213488998188115686037282570686714434698942796751142084054707300057979245801878135019365358357258184009575890960562525168557263968707989643228901796578730208698451755654399554105838250559565828725473032811285105090779194979668760895163929976562531838759833505058510355366680264478809027001764330954966951129173214985736086276850942102498940660835882021996829475574956274797769895178846130139011350088784207385333238468990325495461217831748472581964030002305077211560257261654421539549321139967739483239875778418790382864180633977163542928664939884506948430021883612959424029690569660471736390657435364681295717561636137603125101473516934043235252304363981060926509249836719495926557633275013159135987743848673533733253725385881802924336908352289573334946739330117576764562575169723616197636921131505261868898224898201776142568815790078524309787490448805445987150069159214611575316214224078629500720391644598709915726862183436843176437863073516707622274480434265022504068890510587071551750193571002225442471990713200890636991998208732197792708310826579298144890912776747809927802681190714907097163307573326309818388814299906346822097849022532220409468249667297630506550050552717225656487305406993732583203817973769852792993970040240064566304691684128335760670264945267650975925719956989768133003216177165915752915209984065949448107392502138863434884473155128090912240516070265744469771992813965003203418225612049738069137479669687642124144779280083446229869345648290359748711666868753951131828640837261442941001154899876134307065636736981597273318847962504770617058223989179473924629308439012627448503586807101268536787806673788642320032544767329527166635745243877804157950778430541963801861828150040181200022019709557466509014071862915822293179324441039833985803811359303880411659325182660650278322731013375685542962061182303021906493166834700139265684007004174173151218162052605387664892125024332452375242152864720397358813366043872244748082614338881404445014663163047350352153192600047101835635470848745213883305103622523690516680543602588784629296068622683399796071340810880146849412361252121283786114000752748967667877228730778698723407403449123001117020007642019643838132303462488165194517802039159017122707047747556549610382857016696476703414227073560371688461386024107055035423932980058660320489718799306801835508148915445790616656374706511385308006100519682090334248618272313002739973560329981702747464928977453886707854520743583153924156330778444980812820160486926099364343284650631140390321965116889787878794929514186441379562522371504375154713920584168229096067707807879525845255541282480499022854469743112393680641696805127945458563065491424590914467938083504634074667225369946499003489755451482330383288164056071931580433751528457525184904319460966959699402284407939777575633876043449120139080798949329095617383823401564437644079239039116019435522562792788283263131591836200216796376847443420184703097262814770314287738594450234876026922447426697979743094071128059612197975836042707383022680715562625077288669334379621825073092456144118698959638412632466148501505993199971177250044249451853272533664968745893898260441520952162355985064898494829307083078445742763845617158809186474895214168627987201626810101512949175466647642329909588464104222248318462538657316019266408334470068067828495360426981022408172000656761479890055040551678219926142880105965030139483137398713642536590904989869594175287286664878885431700547891285700700886066241764987736878221718688417777171350751532170298823811746161262581138033519724964650867257714725378595367459568529135163314016045680765341442839815492118177063228312870219974916131613227644320904402767779398674917039294754436601262136543611795897011339946911462330838779648356510812180532888573834034249333023254286771103302073990218751549958139715666390953446974948628887943036746822536675126705215768742778055229049921783553557628831353561016305771224615202228321854166655612180221871480961800253316259748583823745303495258563480315284347139604725648578646191879904089595007838887139552500139239752838304088629784203861831466036225442109762268399093514558510519319085973327827932026654311170445213892911534066530099855906827130614066448067964789635795174455588120286026352858734149429840394923351416871890727756835380452110329567948959414649831738696750131553025284169236275529526039240057451355496002165451714109556573132899172607214042362664862408680883325399150783529821993270255932604041575934832590802771869619078996248601095668906619587577830269493220522286214289942167158860843994673294066582112291316829753271728803374037799234931559004546915627569467064635772964609618619978741979628313972701872032800263667873773934838582815585458769161933655671350991482693391335342476026993775974030567014370149015422370072175355244541306015727749705337992246142336295541375441442366080984469594962524523094431472332835789403818082210801479356479992636461645811747281376962491456899692118727561622825512036055279718449198746854405047529653868217634698318842497577083596133481648114921798118773798879480670759778053126027175739800517394674649303822081848946538236762591285403410392719406480716713491210873240504935418721439098480736465626278267139601076910776977919864821540232051493266575131051574549728114067401743636606912728397607085626465208315277081068883729208723701106729077912547632081112022972462755323595617657968317462508514527941982328486089885973882120550584820495908308397579401348623731975692657896026402534189926958692592805935264283515968374441816920393359022465018963445178993207123101648169559889291647529579423790412100582989451419226242960338277213104754877021799504629158864499875281615551921508516373578642097469192114862065978188067896583506312511350775631141131083571166284706038260792005918828161216727685649901789063732421587323576281741930678677354161960537886191569231703063558315020822864378888540558654653972227530353848423529073330928214069532931778001610104458618493360881176789936517656845455114542239027366953017582194258644664300534802303362060321254937451695077814335774220042636590689775895854672079517982838120406538392286476214302490855218603847735896549187699607747693512628665730778985795133702724503978696029689833568202018063694554580465544990576909444810220963268109394204121774921132457838772296899822769699999491823039696232613791872193060814958040179316719924894870829484311052009567022701149235138984161869783938530867241665706130634116665369671824090450573019336970717814240055057911151136047171040324010284885097971869921262098594625443731193262010490788132999324897008810610711093273501846325476860147324951692547101531174342940722797180989035727686174740130622167202450241789186696710413442626211506162334291374195198538044510401923875482623649913907294598085797543396586670431570409980683614669417643841966158026719070288527879967450131966439882292203374126836094935780270406122685237479867405385370477477435294335561201616981165145929502972688268002317742925086923182556438203778145087465290884820093020265228758093576040307560823524848894337003216794048180429339199265807380022773587537001316335278222465410985137469905129268558143470183036487344430460581643934491479249052556657368825601290641693632534145544367799083767639326739405822975372966323120974979200074713638130845542064316683104080649773574974130502892913568311694438202946697521078785483171354057665811295027381041726332057332985990371367647639359188901464667343800221851405767570762666225928344202651912894843968030849397800970531639123706525185836225903271150213220710476099382169383558333746365334582798781470568113536731166338621974773172892192154630963804493804756404751301558724147220051046133878920914121320328988996107138100305031446337897150753280226353074793580508298622317819515395417513125740748963008439618100391810974952556694344410644662735666251083987814324682070980256443166487607356037644397723003137463283352818079870689445403860714243254188804143754371115551895284838890906036138717878753732120829670907837102904762728619893044294638855653763303834189292581116245548116137816743776191489951198400918881749811738233639149788482750941314879531440950413964210093634386172201226684860599244563477371499999293154471950957556758469060688367110966531404133451665872106373740316690162123128551282978676100269130093671724797575639387170222458052177022530356753662700062512853388144463896528744076413975983501286027702206621951853459589289494984332346537884847572861375199004415278242630408389220659133606091223948487489065324668488171323027812287122276334646374104576674764546065309586770625518405853183079733424547477163413739565694884436151095134413950052261465844833184790469485525158157777428018215917475175894727512309791788463180996744607249588527937780404202563354900468898681378513663711666974508371880305188921054634191846639578574355124530249139102148782401289379897438980033323021285296209720114521325377555754564889236684438675096900593929866981863347508260048137397654841303328058446228251945925844768833050997644436963340165505227513628560601772105579009836095691123983460406725719542090727049101325973601521196037924970644174128684478416945764055510049002032518274723157570116019856138695296745530853018874880559430599019391801581592051918053647502462958356909936843702698321121729757833089319666451189640179074849354107218553363851783374625106244349060985076782723120901245052122601619414370893780759070120605029783863146659474554445164977071490833477796617508737845055516188515121812055123454961939975715723685147025571966729791936079995289279650830572994146528582060720073488523371171729848487043271374117615594846973777580531350396275525483940443131575233585838381464806361753919627482349685700943375828397675335554364199738142476338784533273555968896869091563061820165671773880483003256597974753959822336994283092701655069067417308110693016102859236292422214036162862184152998326343098394849837255357904240248017772351222679222483952287915317630029987996489998165198267549965578378201056453116772277820387401883264853703897717289081840352634849667637086593046093967008512736530644320888190824688799583214959456162882643290240627146205058760209933635285911906941491337102700334745184984932972728980388139641521380430234725744214045051098101980046262733705362707059249179054748417282490910287510821810054704196362683502528608846997404062457634484406511872958371656191474652850011951992483736452193778089409743621622684307077945521246329045599569976565151236643203942617980035054767881575421272796006888011632107975987547540819448502130677393444150853111859154810691853884030924625272122142800169650069274039886243452513239282731120121983890471395794631892791823438384020372414874337904056256225116601283151584567124504435692097459538296651869806173195092543741565784897659481228643089572233221826380737136600016692140956671462988238207338477939745691680394099681187450167024093967811987631646236227639827673084405547931709621326334558539054185617214674950851626627850873384389487522489919063283946660714548437979137412305167849231496320429269078137685162098141462413118050850679634297821365343090769130091040028392046808988729268138629821357235180641400853460889978162384073663237745155763233051261341661417172269013883466190710476284605808171667330918231437793942631428823722847948401411412701696860399506630618530946734837024243594601428369615458022835813685687682094039006064892681483009105478837989329855273698680309671717456844967550389650919944434366279413015428944729931814076595327891654254379969861007263103222112523077520386993445609271084630036696640496645415599752246663352725741332719195413246139303474904073008541612475755049621940913710726080527011342692337234511787844653364025956643333843534859028843581242632011081330549796066299680787567978698413695842350297927499859543352736060220247564459004597761686399532815331654918565780814969763753009775880440961255415844738646878812918630589619640969584669122759356006802520861968933539595477880360991314539695568911312403882214151108077016638487077718320586712261837212590691785311886370609258774128666202169283471627584481733008268079795102724252909391402452300172041028399576110913757447030041215975247905812235573733051462453205944841693897460554886258346798201390769766716390393553035550249124606217720751648995432304069967916563817655087860979576945111079135469368697219922559185490691123253351447908357420196522655555221431664205527853623973119249575033104646470979083937900492246171819168576850863110198406847431352369428635208176004476425161035947858472086298958324914866454397422805765395359099275766870525270828678145990022053855368425239353563192348140658125480191684290414183724702205954702395010225367567838647987510342278164995335947053847415483565635295571222844494749908526552588398202593944125865223174676447992890400556966855257356931805011440271213392317128030942627789987515310121461965812386124438125930601308700322782027397863938462542238723767026695236070363254979555171976418397718702228213938257635678092739795987697757672256132543309697661553263090045618455706085661970764176790196134434072916709949346529757146872268464004154221625303967318812355661486266657880967859058180874689670633990647264508038606384837155875535478278480785516770435048138416053358840850860715797275816981652209335237689123570368272773297560177979580839975388940343432473142533526621089841408739968054608343089313829299207445425290977703774274672957481425678815337409439490594344398925150955669034292641334279988143275718095655908037207867240748703543576153277127566976582069093491968364832058316065921121442511234371542405917170342844274206723176308949317578205404284602513325885786297265814503365639904178229156722744514589608068892684795121197632628304956820497972770066214042759576064513608666433611297918155469717916952527810789490697525159831108031418792043135215284230770854359619239883415115592371228541882918809654047345026979615668635233086436020708145979605461677249630560421280717366094842917209291591187345057827044742789276040590623596644759191160184286540439203257279656234181796179801740276860585944819217873615601378226640012624417995488857148337852276342478178881279959507546245213234573093911726351615084897812827287904187064983168008456475084405229637228871981317670908070842945763855619743608263439550242536137158420331835504715889095412366404141831093179969155432114089946380241181288166656867975975331756582131378652604898847448015000678598013591184476577384623602238131736100150668149898098833021616771566913671694793268288380905439265908682687790459357303317893103842252209490680116166477128874938273111082663876079932010857777933476246943887846270243536876233470406812026921612011870260649164126331272177361030185632827978309801488041606381193420498340438893180482589265167608655735700295418153400633827234180698232786381678495060690001869092594943193274912179372545312844531458702177171274124166796570773675795600914991301404071551361844333882671963043046804152022555150639614848182199948449957211745730481799278372933863484203414261546412510979465190042797603476763393978540368522515338140626398812814397563892272664157847612833723807323361900879797340123902141173309339938283639060194441976242681179767068069016414629909190868059699055785199205956410290184719866114403665229489017763520519487749371359207159040859794562608463473412369153933928308268421716736615161340875752253934410205778065865838783692181341250735309097526046586642344580788731864615459670681959738570133325365356792370826494873982219838279415934996870139464102640347235579748852084513625485151222297718993157735185772321804883531767379853090016696871924894923545577709536832836403291873332766302875549116417674384817583891721311189037448247736954125320149670752303112744960606557605901940830707259494910495698904933697093241633927200765359232196761850016488566258934309440664208159866134009393274533596171952309330861377760601413593752546653148048834761485779767310545901150943955760463191146053337070939336143723753353978463813729408197692282273922670619401422383381377644697084279061917815513648146259983743458188878216330926504058646134058261078259079488497415361065999861902314660346965041379014766704549181814257636042547540822090632875817257433812978310148921232100689309287927644285553861280481561109237170056444253106597666737376646918892148299453458878726608022696323338842187908009327416770703286271256874697625075762846312583758189697316886367746818416854147590205537381257770469252092425719632303343076301767159660973322999113902457692651718264264747602426998826693962958576462737204900204575610689370551638389070255210971920097794694041204752176466800851437764684139313320342975696971988570606286337205527534053793600116020572371067542679086053820066492523122488868903563767871176519282799071607941887621348163519581257980960205340092549074831157717539447298124789933023728068413473051460602693133506892202150318283820723310415117616532604257825099370070924421649429028710407118879060172136244667701243598849274065487899461992316422784004808374137687865676653515313106135407703267191438747622950668284752434797207570170686619917427328536827768191130249713917157496664150246321884026562452964412574488426199670007030972493511555811035997020333034705903159866856758291181833352424156196126033346437443098736860425822951877041796113672023992127065139780582090951573496888261712768188219116267536465085123675366767285576940993321355868262718721211570238015661094213956482344212606043445267786509937703953903053289835775605712333967198424025471874551802870477840657115937203181121321171006871654223220848286178611775629667170108922581963382825112398987972158456294290767886151508302691646493412647468169715015709873812850926858633074202655131980100474652324568106299283731720692425873618514301189078085076265738043441307438901817841701921924336730920034235850077468097765994699537794326788307616595023831405800089350785436784547422108795395602262729545080900830835555304713245584895074326790770901125949636343203758924975048660065028208451639250360316941730473144122744187946738005863233450937961303007586949722974092426083489789487349548662052211924491520058439096959057011223353751706626740214938619615452505237673665110676768187727764682837407827084994431346323462890171381505442533729464702916292856148743134398637803798231796870724150453315149542834923207461795316670655944059481834936753076004619996141977453763568159465815173793134236524317464479439145562069972479864742002985258404370176783006202238784537957557269027411312711019427285427801055655143995740563232802615127610231136588580523362071497799762196283060857740294249851250408099490237178740173081048078803466533830967707787841054630051329127103264402047419262584964936199752034888752838087427484271068693165895913770057540463956518941649711581063232408822645009124942010198032165641953706479881712778414722354959604860068517684871931839418000191994494715307227763100242454293522138202581527209722307704002273684652741190345893612403661729028593103199009168539395966523469761170799483841200791213472034760728158486460740446447206930643996192073888629450346005618578934280251244050258696238008125919482981963292451100930597574700990099363129750855915562532480979096187229557670221514409699814044825306971403661466141035497139814090937306150518921971342136093633639194953036353964926536939649517816271191372956547442432881314181516588527871870647794405376982463543501846618184689118312314211570396150285199022938696436872962389166119944622319430371283040462734439877430689537923766908732730479885562405522760537551014206981993809966365930262295401525778503166869414636765852059842417766914641795724016778468869142903855414108772226252701143568145331305843453350682352208485715807487497673592203775608784450680717551156911695959039614305564412265737279279666841995762899825718623728191655107795303488901387951044990736671946295848396012523482865182389354133627738536506131700681068765357485107269780742143990825446835827016880081427721238416093001050114138955212983381212880191410373310029460641514722159336542324302410153533402259844753441207670007694453794974385101342850742377721312877522451466272570547840418801372540298021973322357460422925535635570699977021318221286523960062120466844561140577750581716546281327588597205475940274235811632327774877817725230101801247346034822600513670033344991939695360863358410384328196839760158588935718879782319257804420309509287513570712591189744178943472408599329091260806345100005080522117170233181049778148715747781023679971039670679040242779812427858281720587640235499586610131065639930277505028558630274487964045163331386912287331009763109571993146264710434651085655157083664982043781245652156040427589476992693021951794903091472647609909956187631994561736493112932968554511574749944556392455128110909379450244118475015549925579094104840323292010470095232665576008957001501757022950827449572607509903032381624343954309045562411540814146112208283458730857530227169769145195486024110447769190768699244189032605941160126205941849750312991208262282067812083644117002578310870807226853000507255017284241792317996737952082879914834209663327146815685562459640375797166052076863387038419141899592461899803135818599358894847573299372932238224568505029916035236517054149201511309458032255848026158256073186380670779715144877962543370116183554352572198867873430940420620833855311100090806566235741256229022683480122229817780873441195237745557833479643988903537729218131976880879799193676607871555999055596234590447283839643202198033468744629947427188592125841270150568355674672087974395330819405013316425735950800516073707144821991681834951262085643828008962890635288063048101929250705904619639003150869243090818998044651358334469232878709543657345384864516073938689285878311845012959635337223423212058515786375613415224339051551431598374751794480592218597731579993366954906157707816727308997403630521751649166499142929545128362824600473711181637847794349223399098602342519795467062769155712369632099451697633709273457691747892920691585670585897220600330107051262894145090258108637117000563164646742958540697870198003856820631797831065237859471673938425045625783873666478348421500416291837317855866575861554715888750823877652030424498200899952580795881820905966099689167302084633547380510595848945581193469076191920481874838978959827967139869494656084553460132101885487527770537977854958044635932219532935298562627004840080036958422755139258387351072004844121812125439497388735079136206795311381490605145953011510306782924917025609563597677333796387247974060306224258841705880478566168400243263465640492006899608367254800072570508865296249748722349822167740855327200224712218620307665192351083979242129646274130552538827043064021538438865711623008493297970986411922832202019578439112338440912553932400093399576824361083496482390432334253661966201540783939524549345312781719037074401546105882000108680062685470457154215039071962604115756337451781638614896715930128991026899752386561062954236071038475432527652670024359310864492451255494849453438901283041174710410267864445352346737114990988080094237487351259015195833860269154123138688857426487440175121280460417468219387073059484348562159107604360674072400070822689989308673247299824986087123921379529904402345425593611199627870075889982701834294923370185135827687474113181871780972416391760372653622743337586033353350133836721922232191397841913790357151552792070017047357156913128384148437813083457780203986344531032555511669679950818870046876422689552171633695572582510542252872111331303459177644870776892984481409235299129688679291369755617406384137528563904514760880370303254166860737337351388036085016980052652400193780083630135648742835261562244795254887195232493552942490610726234045288478663128976297458871613203239872298646971371361084369924115099959379240057543354113748997512433721183740614790072915396889145855902044978402051313507641579819716183980265191862334693536428031868213641558669306894155571991261007513696837603581652005060745778197163465514687983795259276393100096661482757379781642325575642425392181334897309115229003332047623100154225248950149756346163309409784412683062574061146068988983265812697329815677671538958508370745133361034231766756330017759286440540497683695096732890401412577134591445904890920777628113817031126893319616525702967013356208754423777680067309806649814386894051675090174388737911111233912558917857851905268939579778202905004950177966424983267083437518118556945866726347016190714114256080653771177382091438510064768315948302151830833011708251599504433274998749146143427860907648823252818929366131537143800561291230344626189261285628218206675638559603945074555815558284361359158471248780888064803920845830398741689012543667698687890755409879537351537974812853460490677672395881152921928331409016569885696284239998201887391972052173661722865017468004194380794270680727576253067385905209708117566090638941147555429321375499606065968755333587300261961153870120324773806028759497416602295407677372987260064676899444593965390631468274391811252077490407984411733970360891855844544071769385144820450445631523193462668571747459649416677376111125898200970607487059964517124276968724265044314891168165966499693261311422386561502311482553962806266152468097721086472987416334225183739009224977250481295435111878473633881417158160134383846982853757103171971682921190885896892192560105932785341530862353729640207865298995879503282599520573591416197838553004022057871596930987238625222566966454584108503059636323875030841125510207711479446996326201249646914977855470821138149912810358135271258659497362393314575528713440727329141382123304608638091381485311998506456569836020956163255243466587383917616832910106923073620367496907044075850653581609069331128355105498835505999195522889088271407912055991594652928430959474839764132195134544623971158157475137028571172265309636569564243086265597121508882918922485412907329639751486135462738669183111983892213870552455976790003868407593733700720728474454408621388486027569504451139911900324173110585511424740718529772262673560466991383719888124977570425211536958443196710515750912045051083891006454694822559816344136807854564151725882309793476540176745246465603148972121334013918705421811624504639001391643145779523518571474291879569559470502565636006966697265629726289823879815464910205375769320651348797097609471476553214313523435750422526082678811166659829775153164157015221874041956285708522680633353807335257674725871978436920628266995368435890307569759564475028173108535832616762085715710324871480358705497603666518110738244193591674380150479644223395779077802657877663048951318217282533825042979322344850303596044505741132195888071974660115531134935015445844195105524128037457622339000794873767137319046162994396378936938926301389708053002294667914856677315198451393265713212706064621776983869266217412593798267516258501452826486379028938362440764935943120226259272856935643341444690850434792943169118398472417091567757960755281940460413261088579916925848084733198622237529621487347635208834866375653999466332961376046672434691590354021491152356590262769304719436754770588644890475399339596846500115166568005698715458368283028771311376732918296539206442981057108736307483061313247382520352045347516465409622453274771572477997597662126232633336360565578870591440337410301824272995360930061298283132830086015645942574815322606321055120621511633375578094669386682892412766485136508510857009844281856256684913514259751996662475640662595733434401381573287862450954770938513220091766628947405878376306563187667596337197076119502894876627052102332916045256058414334165422154150382716559155967325704103625292965840707638179028948592496637970257610468517629373370447193324744921450330515462426049414771853514077905714914540443481624646102848493160773070227046933605400773437560793240539875249368302178444497492064345431658020254050562709771042243927543529408137613006679756721189374808525372899778504064958351564249022832082252085562465174988652197533812218143607159549924820995793501389859312845594728371016227277385680875351927806863839521762837061695085921471557251696395881279639802701524782082648415109639697392989099580960340284995558119383872795207951345040028222264242758398369388190127649816364380876455649041101619249436264612627753449676340409761779919288646284704311350686430809349239965056457670547371964957759969708560320759827824576799720022304055288520354327606338812845204363381542405163724574488915599772345944911370095294492063655892445497529884113285531627353478525841754184613586051487586104948362946935567926670581753696594687138982318960113887028100569979190806362766465917938581991982037678115836373924288920445844663300678990399859845825621980758180377738026059679848341027792859455819025143902699673117209874210607659477642717341996333198002729323781593566909681582472525179128170275408712151849803059194436761681025978071861114659676759951946228424419096362960946713282836256132897563339874281317984727264295364776563062849631183940988782723407066561069060066894916323271127398883013581650443834397808826459615123141400891320219435028646164768475026789187491888893573956356753374445468786560091291539570493301469653308513364941570073772905925818713548093836999876512442703762362920757435010605124970761199763364005792249162503032745327380429321038515192179782329726762169799762581519796231909921958102734275161892224380776062426783158991812968663725194377546200270388438452513888339825074251527947564531578729988630222513770488649179647761348977162313121724129396877625568542546485522513072140110332480861434974055057864313394379353945456155153077337375511439831472534939156149093768432009260097343794775787035423809827317507875370437306595441200659179528319638763670243463604627401284060276832749023385963819910773683211403483681935939111062234075208765635387823146424136922229176404426799871451796819275749633725035901221520961136376043857464336381487685902183815763216766446810794314617843656080795853806960610483412258851241439021988580703557946857742930294883585021896690795282755600327264197530922961482387136217559072439568923187894075886407807862406837688962505475824323515611454520436406136888406517155969249988092885409602441554690659033152581253047984275290585820230913373347206613306740358408895338462911083663903744017617978825290716189839455149078495025527878336965148847048623165977629484767409509648013602025479347165741397353663630570081554492734973274224710610373160954433298825218915482647664648785444513932905884594440558554609251819823479931801560109825965220672283036858051168955477402626626238497477054863569725402102501965695253998330445508608227166722447492604267013761013797546325432233254217201506914351979249490280327952706052862287637082371291975854405306470835046778937172312618421420140848032477989380621916096842773115777208841802406349325575527197162592559124018610135250157239834927648050124169607188496254511745079853039689008650883410882140282409704309368956901120228873594624736657655795758027107504377761986096508081224375805996028818461148289985473243824869330563425848277612529801408619780361803975743626468257698560147819529536607813645658473352406427320803219792426891391206090528838945010734751786632229447598681989833960485663508638573949726736582770111037815348686368929290514429285673509180203090961815393039282710625115512416626892574395462144249488790527424899081769037228066581832762027045950692685313236297188942538544149533881165326036339404215975245817263875748031936130719771229983590368612378341922371982137589501803388317114491673701703892737332977104828997290282870429696643870003857596644234925492669908360753145342830844660252647251985323929519722352756478945729915904343476808879754445810500699434058060341846013751582610673038761619160979621726213983622308126326218681599338478154871023587895756922238243613270050298944825056730145510706700513167433623123024859404041156383773741614232152402239777330464057991269330259038331899828401094672565733640922104599236429904221626996569490806243369146094263889640189937376844254185313791985050922486221948082430251988018301598817758740845625299703692530296355989188619030075541223824789707300627968232815296490283349142522342714115470016784199189491176012177397326498847859081726877238382273703590773430163234860127759802596566617727750324028234877573352355625761662912854722383089820057460114194800831619374995026623155553416150594295412631572089507854038167597088373110163841811621080682995805471382967280352270956036969166763392301487389645699015406054480824105176203149117723846900730007382555536334127761927303539991162002429367065445911847611018066555423713224415297876203936351729532313869161532580834152153708195092270381566030370585402233408017218946034236800345783753464071676188814035732630124120062806861611778636412660345093527758554626982704002703706372129570798880699039341426906450217887793333139846022368446664559072314629932156678791312661507250326966179250980851374213802639699341184651976828637016949303027266147843056799116949051468006092143030389474294272826098587703304303834629199661702711012211034797503822459679087606795505536114523478797296474597121727730094900189090108614124311170279791387726994718872125888922662637453421769556936114792802458379873524882023185230211951011451441361600137669370924959500051471672638758213807548169282877700601985842412414710580555613644324192210151139719768217782260062067990784787406620209231860637229290648927163259660948796314190767076368369607263518536875264942516638821658413190362444398654002000590960600266343889015128456627846450822239836373328572160355615257732378388328104480301896894286016517179113453895827902892420253974971222591615257207696484148305475996459905425464434926457299743984562641124050694147259939528653176902687592387143771078279761858129103627153989586951679441977477896605392503837515256974600221606745051542994974298455109331582510989500327989719140941646242221425748808587674390852406783449072892015476910572226462922000532962492864043752471487675886014754528638683390040176297703326446718649591041568284812665526368213805864470369457091490910273984876145560652143307611109193345332055067553322988521546247998920204607290958019363109317112149565633450694676979136117097605560532471129142024776911361503885803367009208670440401084711295238786969501330302410744477911480337071512455252673261526625737189775428939083053803215387386008048440466594979083454605177935886656031446095528327802634049935986414563679515273940013800615946210716490362427137325162646399001723710916750402098202619045185999453389724073451868491739930673439089759937813994437264529694113609825755534480431032385208881870581641134976771853334992796657037008366583039351146486042574279647845574571899377065760586933733926673676340294098159771313783739666756582148341351462836489517438002400715656171261579667093716149529102177173616203328402781032486500540587186722140643654079094137524090669189991282661735231412814002801552136408586173095242562997982793562600128703306990737525356730188804102264487970705016205966669667598186435216950438158148454281335592669380166743098155292529008983889321244146885050666790796512930595664635148756225592666981932479282326136809165586319259961008662000909712873076941736775707702417963081379246542925880109129928340225765156138408496916874674251562016968516484117723902282173134076656215494493840818854711620665469102556666896195177581602370327189465570991886903433751209159947285221146070697720273980711447798610677198054583272490696248163090907341676637522791775213972944164406315061529177896195879222012792520799812557632113663273045947101225186023828804111514876279776136810043971917492437939846064313356779920212400280120925325253656934988473037676035856461136758236791014175007271696820742290150225435608325937249345348274360816107058001692026526484358347265838494500778064732579401465520363696014652897469326132901426161577044986676570428277670800776021120457966264583856809799615497667631638499729592075999798619114861828282442405752780222947766942664243225489221076495697591811888372774887670599646575813182070087555550381806775189133960012950738173527117348834741907821550028019306819660740034267302235769995160198060028792710089520492403388022709478342116004545520956625224986339408763610467911544804007567522382366541067277696625250401652470006815771234860857101556543765578661302483170556174990722874901146155799985894704258967454037442868658070712435770312033671769228833606361411283446316187813285162173570064226526712020800365260692500327797934686133907812771926377121588471718836684217646698623012999899310826195600763464976465326998396337238214437871850314351914684803573939372709515515739394258240483126085632639745900316382643668976169637808408667366231435811366415390259790620511539379041135472016148323431034726719158305966598181014254041221904917042001310460239905307250458467274216157609052916255869525279557047426916136976372407017842065706830202533742783569502884095518025916793550733698865591871465347638112098343960091323554803105462944224474718215130250080958313195950684796380649009015566164886781032280195935723882075880685859305827048130498344583093526243006801376567824482729937761390895934904256511276813992895440268216265854908614264069062178890266496692055487586236076447883834443428780234649578775026366618125798004603685271573628973627839381564382158604642986984747440658145613292189027182909034125914487298143034110282739973593191738751479802223971823760196188611154333136629552433130122713855897446472236266467885779875322289776270931690043700585578857449946548384242830690417627497273545962899719676134048458352952576898724062482042332097292703697157510960301044853782046418957743319509409175108631449170112415406231943467543933064348433416745492147076291649953796787486643937376886917844528890619639556513548496777580538925545321313377531881541310314736187812327136739042206479609738518579581152051890493881013740829040640845725846569237708314847939834939972889414095394059784661925597946387776495298391899390177863513090604829326493582199857120374380336202601160968672157349299667297088952509973378678869865923865204716911901221789920129767936229682202794437136029963951593038009102800651484601810838544236604385689579720641475901265140614723674787840506555554560808417730340736580224055276744078096069130304082990535766159228450995541670322150816802436976029319409545741339563496048022635976149483899957555664219892172050507476188595161350493335179449904139955871040310783329896229657030605938776089954386965020184336136495202327033205186393394891639508587165667725703393325605733755591271899807292897890882539202526219998115684168041617332386353021029654858007047350070330104458959544158648199741672996198604965897228325559738034738365939618016409557862953917964026064558279902387974009603346809106729018551896938530120543730577794686061695390166932496413151230110838616908664974503935864121732316121829994743251208681896495962256327869794638233330458621915326424390897000755833329558280964882575053250834243139387717975055349494527063338179727190390724852916455561005495017435677465616632299446640587586625460273621134001081385915104075617767090214065999084155497860385052870667317610568498756537430962473722277493922732611688250696579406271572051173994679261088174689562139609820374170184563328811752687086639729644111638673675612164834663728229596026820195027202172174892296952289290158008942585683596721990727604416139871080770172703055361356372462151051939565307289137121965941256552170275281340859365954914142295737602692461530658259402924522031489303626667246728227652267889675377028696584947989823438660470492419687268464079835004464647934280907587656743985478373967973935398496507400295911278416320386024248711929809839864473342207331517901226395568949950396176307346594756979162588131627896685108572589052683235669849312913587068202011559756165946496219968852617061553633818041843335950044478228812561577695650025807689176361685982492587653975811738117084014937064870524374267905137288171768553214587260664665423886703146648978370684212743174436783687283009543369018297170692873088798775802461511678661743400961986783227959129422758012944735792517962586871758398360350856271112944871220728725306488570702685599948456197801356108871921791397287926418393385605519181774989277198056635204494130828840374123674303885435570461994649081667721702897643340320013117813515387099964558219614328300150564112449250597398282445405678007425285120315926831257539134114284741336674210018487767526543778463175299281963980382314902831761019813077556629242252561668099873989373401431664944924554231465767589938622050727323395372540534550700352297328918348294704338138238375592260426445204630786613220300178001693447337776045205483112680351237216291385788661865151816580397225726003363670542886589601923087887326048834714418008309953138249318679227386082767790867503251949725067234423030180261962170189785707357506090298604265285254907307446038654734074994639823075051583695482947436632246172478747388948794366023479496843480734098041744972520255741994995962217020479965614718546189962482528344303416879112140486512822634294121064915287132691122131925728535591641590648402973311232005314282320718248016841174330984637765423978149074249689930985179892855264313588703803210563147010539915656944665366258185547212008946696449435230552521655137391562660586874455099498921605929372439110498929175713150696899242368031501010297370922783554606088966741433247347417904191961620954452240672668704131892355608588898077659184836708657650213816029428806825893387516969575757768552724692701257352729652228335255024980413460121394067666623138720534812907544233661932599952490306134420084580439605564106949845931953765610502378509197491734064085468529808033043175114761016676499240906867197864104028113948475077343283732943649862397381952527893650869473461601284488166440808670070493137630883182028914321503334995184307606907391523836561542297762742437990798115155238676986605617998655243801317564142740756400306828007492089412999014368411091537640815106121199231673515711141939910234640673372370061212269351843098399278194979990431947663816387222780305463705717243681079134924639489337548767424038531117900727434332130896060198789711625455260837570406874446006275475925857229755478281107472167462891082055964996004699248491495272911657043690695074500636200791613556619899494899728523856843099740306376127361453345548264034810549135393166089145282913589026250583649103304981529834883098226954313379294996474090559680298156308400419670535877219354880137506770486115247377336080897020701180931477708425676763232532042116894790965382951641976909619218816065271620734135097185454376239147547508354863279548628548324813212215251177090506553339553912821326719393559294126475419298797532001080548953147983451266400226627751481095175970904962702042360104892333804008720513560747952121772312877002896282607861211804908630503085698269626859667342750392939366605973091213826284149820856228790607473659496520309935560400551577154781219485199057359055663156809630272550069986978522188339583786397085706787597201166311962666744290162455767778018737628394726616158802343779604986997329507846509562897092545744167559289955176416659639280315513056483936565860286936982783598973736494904609727446960036967190737955534810369154120132843563440787544428916867995936192697597369569990982549039617353039924463826593898017060817239421728249315538325972699976753821959666392551752803741686331430613220098685367979402494953718955624483109710185233757263477880154711159956398123059649959439333786319744026660499749788069787839560445465259375210018166255265539025740287950919705834850259934744040699232239086971661339505057714407464670760861203471267727270730358579956584541901297588493679424334692237896391475300046284641026948376610913455812083773580499911841648665212781058413706192665433603795406319602235936993686235168944593381972536071831418124730593510807005905025543021694954357864904136834580504691705151364988118526470325042193269879236529334329089328373454098628097833836241137980693372467843626715812667888920729011503635047023022099840212213556432132559885194744648176573110868204133807599430616533045504458239348150042963543831455949020756985001481813787100506942601402232724859822101916457901566191231276096987793776547187750119700012524319848409195329490201005931823800290794521415199503930356775230214458176775198257745161425945419180239550538627592313383295812054402479560336069641176121252375884822945440424779902488105370628795151877727116867232776963711637176706993487602695544722347021936851044989291257266105248919526229781964901886390973699809433383163444439218571820032051660294148472669318107669556620036744057785834698162142569052123639541860240481009409365322968726701558626140417559857404737418468928703710511923109621883760828406093800389175080986943498243997868484379612243541881423296311702526491928765727515088424559776698228542121588902236776165066032957889781878618034022829952872963243247428384586803120726111081712930141570463929229881615712298764400571068505318461738728859526530008552815973348609079967474377953072519335630667827411612235565073030434754672580905327906965933598324522049825769099058342513333227199554902286266091434287769057241522061661140012678568411868671472759498049506722779032935206996865644014959234978836470093207106392276318782174876891126199530048246372914090292417483641805066214474721757278246053166405218480874698287635019688755749248284993505303950661305930431552543453731188566681019120523657175260302680601091401927181253528756693557843043167269084596853560176602409516693158055337214861441130490957970440352088956450253041885171353935152543689056500645132821708592886024718839222229210996474528727042428479991067008753329233195027909261613737602204788471995776646496277091342347997012609512182130153320188756432161452787491487257312878744942545478945213555531813220492367341437874748310153938881878912883128889842614249271428700161880775817326125505274318378190448589856622702996115261106333546550161542546333078779260708148973147281047214666222324508008427219382430257227161339259621339304794366306268484515018927012022372315492732111449244366057191503541286692373944784155027580745905050140387625618612321622744102326092833740196418263076119729853463052696617337622438235606442711562830709734238132892021573443056970177714504845985600169830223124185835819896352058708166573188373427676172046041949710783085971989473423078235283182703581679467891004128534348381402142644361279946247577292376872824474501758651330416932548160619391120300740385061716678715482942778798152809054505182266261027113439941995380695288001083587220620230688521863970939217006126357649862433200668547078083237805915563280071112969300065035235837600544925294878164844134831859606052754664878500235212086476469026874060071486612868295707843214674064387460567164968734039295436783880556874112497225861437448883171393109232305109667370385669919982806734241189031930475236704139461613687206041270846810145973022614158427145497472380756143562798089702503231817047669592439095617872522023952042290557384260214162230838773438259784451345950750811350728592943537266127925016362949317177784406327570207586925605943867638012484657567775406084188521683907362426635386416654235652260084251528161145405932685081818926492422830743109936988677639528878834091370943438901056973470426161573087627857279797580086378697791111909606671667313046884011554941206154382447299731001764925382082164976521581158134053606414749027030445866889247191059485130402570293387998592873103202452663862258019767626965280770008989097075815349904290316720554814338909771847700190266671098724582128516898664479446178684437547076657681197866220792830723242101789481244624557704759395802855176857389382142211701765714100541537877809282783612141825487648790691408572377567930464394611892632825294072622102068207363135346423900825881824468343548489914977772754382845509132079107898723570666159346058372228375623895337913461532715509427303923879893826035408226629227977314110553965390256905730409758888588456630307589307741633061054397377686275410247422354767399065129665181396572455340736307006665092743644184241383486402854090999827627582641669874678557670170402488392621420152557653406417896663648475454867755137875147312149647476479565008255933716851563379550641630722232980017871932281840042976705566411744980276739066159528735048078811156429599910532490642812989808349886264004825573776850284496517993426047373560984541164131052326648209699298945638939711204818642199410621793492693952379891103824014943905459136229252238503977452651813244610095425096867082630879277807561613069078955799524581528536632822574963838373093874304636248517664489507764592204584210883253825585646304527889954946266529283787487185401833244645495695279426597598255264261322020917579594138977482138687877195122784230743069757245611885512233789346288117938769325520817047212425701469948908933440879927038851935762059597973357233478463372989379884650748717399881933408143604482695850463073849170014036765990886011398856288322532609558498717020162473560745415720186641824301635878533180465198464143125648589228833727906431463386834036216148179425238618135283719837280670175547354341231354376322787287528399657872164444339452396075295946083101204153872665584196586962972241269734505979819267181669942012394719863789760270575745945381276256089199933633213343611088736353381588512862795799435234729618688390721144369427888731243896194281538153613597046199472485110925601151705965258058282750848403472046703658600580575505287355327044896089137827171574470529506590944234292822872398398877013990317821472562931415715232570868566545499188956007645159627391972886255623569714177827220398349610377617133442923513034409648033399189853228713260849203224951977637040955922263792217564396587675424115806075483135482667119710845072425468325283605282489063167022995747813890574376852854164562607948160400742746307722391382740843158483743253618600027931058389726439720737071960863877931113665190801792880812816637891460996043898194145404510941990100876576558479306570252147549346640865303430024773944299936930985099750700932494530222929749063291828647575838623547126918113215272164807245407389110641096674226410715576559004165635460537779380884812511644195211528122972330537313841004095676418290258791757118190512715449070056474736302820301504331690904872431611070104096002320691452533612225761199558899607898364858616902791940258316799087806161770798125842586951394441460238880793794235533604213259932750953472493090869369634017443685105877867657617984355076557624642796025860199683993575270636425580666802065434056334711759507560640915753126480922147123451036213709104142307708069232251011045379734858385498276994382595209954076395086224158492451560073313160340392431235047309739236799490696090071029035798688269304931105138293827786157734474103875905905462262564297095387816183207703124684638574603021279450345520369847324897593973027922150316687332503336480906220242590123258343123662904902657798637265428923051995281478135065499080956328442686509100837791614156438595742291916647556047841038904464185766729806645364884399505618925697419439353178934801093786071304431858441607444554583117481646693685179762475248741270373537896628404488817014800095622054169935988860534938919616364476333749997272972306267600839318152745553718159609419112720028962375863964877915803840499662823066980295858227174590280851005635955545218368443902120665066240876998367885916202651275216220202282225078434225150740721496996444456426243737674744953059631511621616990459103669369870278182391862821838964570321607739250709572073488629086364387103455009043575818165425423121347362699176334623096365331433151807571454682279497391402758044792673098620230362189490853142752769715224583434169855416441671596828321006611392575731030883224299569141477729150390617729654730439977865236506841845633098153721274292576139892824688622981015496801968501416398005880520238099110411823242824334997131952792449796333919307742442304081961641613732211751907011150176586639391054028405387709409241525568096824858171565482603924209735399647559663038488721441491342313643481411179490201375264526674833453148358812675290983569346373042307935296079145621016470656044776059203458639618120630758559466222668873755116937607329811491973454623742722344178409729197586000246188471918957658178416162759129034430300487955955194262220473381801581823192426091631289076056283788560724069007326936915974415878241345899609721673083788142958274935293429889614027854375460845605001028607936905602630109002978751363500210807856206279120979764273093807341405638353854127082286088147345802425028596020138775106917735047903193354055559259747247568513171961465509873861636891326284806690294454864343965363179783629186986637313601567895027698650904380226056612136068401835467554234541200783523778235627359440073011777033242354443206101692182167473354933956483569733566772056662602407955054388776818658333592659351019791964506344555913215228950393127230186938415356081178616264212690671157235265074802147406240483717805658681749610561247651020717086074735718037838414135239312667766997572326352464017016133698011932009968553386097395882579781966700554286000580466698959834809482860013663876156718217157828683116817359674752015974180570921980393891005475639297931232699761726697515053012863517802231934058167126579603529123741305888594902433231880302119803244746082841897893489680059400969268515319907744684475856010414417650786713433775777825235888072143653986407197799654446917982057760773848799188974397395458865245563845227480418757712384025738127304721795107586379734129967115896242827375343489001761001135028270458208318722258686087894935334262616190596442781589445649514833766187838914511103295872492618987485695855346052349025730552528084256151046612889738934503606719752062693019401356834284772007067564313951044291223036929113248801453548569573069218548710622207235798665002554969882312301272777056355936442647443031390469965463429352577387753991134176008261894038430047428737940883483474425404261128104925920744686710790371973678469732462072292237503957317628652175335389770489974812277156999880973092828757195085187254355776024804401264373729194341425658490449199143498097337528776779952015249175700575520439089024239299357710472003773361350362028405761082903594937643427944926862986301246336563081283653064669935281287805770311495766014448061025871347119774694773051692802918712526586473561780746238804585811920729177670666949708053582513115937098020243604540227776481020027971683446277848601309022375086516313384204832159023150505240964320075166789311129892500883816949804509494456414567881409829223192089567836874142249241380692153524552196036328676284192991308331920792817929422337847044361264443201735387689279438264059107972822580760909562443166872734367382336102278862767155460394797685893236314562464593286243138426802354174170761490148587166191186489587042513327015433786978298154465746315538947390373335037780289875194827081511995517858878247689159644655018539586017390600307582019272191120237501846094304994122468203247820066654175412548397207707213185604823253285790532928895973400350107007999203858927328891292996482771110097377597195471065334337543772723824675125352975106523624296899528237600552780808143133791490049009922393146476164548156064582700616993982170074724742867164977442419882075124228050420731832345458337592996100955413999832836597509011083125726715463703176546715670717412698742749272827693105146955689039012819836524329746111269165958537740731036752110725685166789191528264361114839992540638215516399490618807764439903903684954495710507958323230957518081692958384027178028163644212356527792872464308010913438420382126446499938327798955141318123807382690582246214927022480870269848665568766652096374891637494419474280405318684254462726401031909836418611173259478881429757955808808458972228354901799738649452897517327761911121694452107837882459477670360100136043503998442067423453987897804532217994276992160977761902597458783138388539748481172982442142206628188011217298552780002943103624408456235128009295922935953406020085661686475037718031928091620239902631620365677574668902372867327957682420680234365342486976043947651092708884173030127406337106423132838649887742678510959208345383318940003764385063186831665582789887854471936311228801973353113828720024078393667723035052546606591933578397348204168614024427064914328899002765844633238780053428685956476075300921714917185598483985824966935128403904217702129305391236454963828042933282988754233097169785607533304774163849080165879177151403315318776395965025379859821102621633431007163234914780368264738447272365687863990027588685056970922014286687761506113618424451315940521883974387142222645526541295030666452696011792446601305407312081768902284001135807374041891896265448456743817930348003552878947794712277209071695107511129186295150426555454073015448071339504243666579501520208704416242826874587278480811613904116574258274302973393711414103544683326666534079052524863486099727965862631888518646688438106828252524101499423264014450553265095397925297695550959100935539030759759251400546080752085427287433032571547397685730800947547631036598530872516695928467510682416988129887574904482944298856298389908736527291304013576221606272590098150259789159548710866806873663202634636935682072627726166749755688197701321252319044434483152348532027559602587397470342476694219785094748983943612393723642685040013790320875530960011471456522172318489104305330251934881976176900888187762558500106220306587475058983131079236110237646012832667498493363016280411841304105590091271220299899398998297994532429420131366101054194067541450900699814590685488186242945080075343118198737071878274689389007928741153114052654717213353481262043348572647865382090061123139896716162921395985064868048389098151173039486262209951558269582665320121582742779614961438500089434340056623000902430385516664436778502080517194240962911137695369973476711269926559872855648816995490614296621759412858690220639704991991413502876254972130710228873982040887174119311960195828352570224226720505346391577622714208631901894436383662176785056108038543551590926933792196130058336594316542315169047712558754420620070632888588264032543922279623915053273984180953106645046931593816161868496549726447045423496355851373115602013583073233039375534025084162085395049973134405506288169946061981070712575698297051739771171439803469643848434691524255239841150203370792965521355989532771057963219791686715197377851011592778848882915545481112814735183722519475848885648734197428674567542407993522755259295054324799485795545606305319697048408623567044967255728880128046319230754070514341231227231394267604492914377255599246451762772146345672157549383511647832875261914201650238630655762385789011505171052324609153102031389723322118659886620099187840276544355126185413085718195468664327823771604540101754579918938382265403316555700433435265845959449297463366259018767090856143676673151996405080022419296633872249615978268318547631721922404064035354073902257522866922589752323037006222813416830729211268079445885729896242108215522600206738466533266244004063290235240239310663803927241835161123322765359545496108635882131853861738594058849055360348233189459140197778219212837639051903243990122772397860670966546317843949217557647451973003190617165837330298622402321568058079610519344591251988690373589529404750183698192209434285797984098780670454284151996419544304752755321521144468855228949070216829871222075867012946500965243750987679090171725238120819807161563603860071819033942221144879208038913575596619791757507444793616297150835655614330083965422102420432332103161636065603069989372040736789930624315492966318750658901728700837510258462368935805645743284999572030348629605409756384671238475701481370937736847644533329328472122824512081532872001862192715959290664853283852210509320176615765260726976647049370267529101000752377345815164700095194135721167321885931367787587847566726378618141766697439991541822561593657166710926290832892681756760225106284751203999502313974299637966852626782496242077157531920411235723551335716052367538891478892567695405940947657193159839692057401685594374044599708400606039373009446537351802408195410251708860791996721063474789480797769408465736305597872813432745138690260864188704055525104951700540067814362496164850883523881262415088773347745088987871015316156303498837026728398060178369143996402699953606212916680692850558473120649849461118949025853289929345963673743258601962686267897479089001054296211349573314801945565753809407139995400359265066950508975696471331799325213222643021579356613054930363213476718189995400932084570615608057583715813073025338441139089440618055858139160896442785316763472859054299914833812604815897900849619457367742854861926284742043833319087562113065920326924372320096418695270801120280608011450648971041832202752040691930054196943504464037825178977967256970439007522119528148480346155424202563058601247982568118957459560657845890692980396478626113414464698572666750788795625443231241145160960862615322380102193592258326884314793209017116092920953879418004928125333808637811020314274301510983450362659445250783633254103395742043271513851195720437334998433691520876618762188473190450076231534049534094501854595240505367443575951703190634913283245772576944766294046136005807491819451091800957369738302787678784322257443186310687055631142553844968782666294129068465694260475656352391001196266537338504467204166084850197113847334077356510214435964915444994506451567519274108372571992754720147586665690582826225728471180843252328245683155573144382158943062692120497290205403310728140323089445723584899592195745100036859023264570559033613111169380261590585667020827652800634597544780737911426745449087679921986521458560096508078126239651165813952168484370913417667482585902695440573152043370203858120880651342909992001794517944977026653244988428216634468037110002611777668041645041940244393542338853714062544218690830038808380431347165179530995771953418924635036575924614311062221446699022123250741962071359343901558882752253693601211089477246283239984948092445359504534841288579988101339122620796628685332421546075810941496969498861275538679310439331148002337511707548200830825914852929691636943063278243105546972858630104472632643805571868008112440481852065293206239736715432166628407604676422655074524415384818603987413974517139809812030139157983411612213380069671227558800930213846556840636027396196617908299933256603439266321199525180956602209330801234599326758955494530849499808170366814962819096281510480304811394887874099854890159907925817593261040351453206537551807342301298530491289367990088682965566518679706153615511137017669589409337152571850928917111002922620868833862838185712472833836468047873950251027624496684787914166200396380429338113558607394712584367615494470768665923555901358925718180975637094725270385565306363408578385870812844147374203855210642040576147893333944217008073815861999534181891302428965773965894394065968923113648516627195588922868260213853837115579270328389208318281045270078638187578650896723504084605077738858752499543491605724167576286451319201050613685285334565088249211814520014564004734877732937102428149064685097092731050297699433763297168888755874071807663892475609576083019128946484632448048650930678401523016135809491689546890492550606926854554710749578636959900519333545956198911208323725269826736257237256298198807195150260257466809791615725313981514543141910900345829075537691803898101236568219494181471684405126471979916404698411668619392739552489545334597881545296332173378677998608599451505711494903352834563569218687882235634798449578074774938822707246165996801096731113088670215281749200250669354087411320874529882643452581925257486757056126037462263431335148455279351242609908554745527857568267673811914893231208428600896829940098679706472044225000662423867429106112666715110399982689267978062592778716629815256815180970976364800967398846675706518954018409774815167221290788116087900493411000350356374186297315880933589155345503640426001135325849013360487866223897090277053663143026706510317708762401153899749761119986305457227777781689753615119707307125751533935437960065799355556285833244576865184466118263502040660194130748336736824221685708134087730644621922114477917328634939651580473400183806877042740439757754153969841024206247406886745343882399948576029896966641602945715790157151412139904829233493676195340423871506770012879461394518716832802817678774106182692601526402075235208271739568907907162824968781798011808583779622128778096583265198677613902977191801806419737081035730372359817310978439454891610061363736394661130290942219433621426793134617005732770240105145994107619345605213591142305193671931698252039832775064910407363162767185342731425925557520184025349656013226701051160275505283427368982068723233889188126636743567931688426286492113644980104652089584184339758728579991564655299965812706580532368133245646456523882374317573849985329561106097344596512497835085706604659452745777761640476209230955826739801921778653111622429602457009978225620036128654260946247082095283790669467012671145378140321584741206570744376397478839378811801276810804452184027108387524290943427979874101744463662966587486435385537503124067272774345524660371596464825353222605165486958351319221224240013439789748211697930107888433655416085425444014616542736301320004809060408609434884373053995763981999971059603903882109990007597409107989980347178976009794843822510475743968063172840235849209283907017925035485228770843540830369257493698182274902993816299620280524778726412946259189385983985464072421975035476065613510467629462079538383063262799786074501299039046719328007463253427980491061064012973167748861285081265232661980168113164219896728894689281983583690583969941574671583438750628989988289711257954734363496682399482897758786869945013913581621778135543332189474871894127993262048103421487478161256302509888550084298836285746650958154654602872849084522515733766166111927231815411333927492781562284748601929664385844600570143787560955223249854721964756808138681951189210302717590396669318619067277762226790926278976750809506682038887455205118188026465930483850920428290672218235223094367387222658780859604862998342095176182466944957545403542537273568108088781142310001829597499914472268487188560503166337406337248351586946968499942309148840583734259296558915083621008389076892737613029273361797628346962530479991190017382021320774895326096520466865732076104560061409699497678407036600743223146727186412660796873615229255674946645391846565553236912540454818192506127163771189225350484140903612921717579830903823672538698791781097416581744036635524430569367627277238590330685515090033884077356304398768848927887912645615124095304385606855838496545461083866167644553426154533168337922703160453862632891670725524759846756232876134472862384444590258301511918121695608853136528189071993618383894460395997173748685414135907042083884203465303168638337466354315910133645988470231038711848688839102726310266985066875532638760110712689761801241883447380462901602349917664599546018359470405154945694711874889415060218477276854067179073229200741663255341441600866409014725803034765924361467374366586293557289309800560480320545108478719654838726761971698717966228568256821011242711857517576477256030255695274142161949894894554303088366908593817697234787146177972607417204061916021711965584715584144594928885733849073207342231988317385803025920201786361783201030151425282221780853106833260552779959011472646966360595752822083106319017508038293302457978672050788458654949558006487867710444900917631604244993489665976241293195612942775125947665874831189819044926341371703006411319133734544172678587983291842305381037885732067601951633586439454146761920366127999722446497349982318398276890665109370804934172739807070834584953762441243652079545166879364584389229187911800200578181198474977830037700420632695477817289227808126540095440576408367917159798140667512853224926493713480802139991926621647670906386491701941549572776722885661908680252984539201974364918763473712363278016606301308836407717595051538608397666207164962946542827716766559336517520906974689320713300319360076901474711749640589336934988452817257259045236566635587734170892568040122568789562899747549974936165809917814184034814209524691112692421323805430763679932577898617751778115763360260922727226781779106556637999754526680038788331701359018964927032787225153476668393512955851682485171887160410175104641510828159814071546442464585866153909508064601164032249953403712835274834013906429719503880612595031405638294203815934643151365436447109896251944312456055692277533080759041882708613260844420683920857799272416925846236317446311983506166907933115077385688734959979361377632175981431759104000470648468959658771217173671826648326857470452063068494411756228019830474961024983227627014449798147777588225499036575560968138443169705432858832638886844783196810482071645825620646809785210305172577090344940010758601238571844141205471726383210227145829309896429353907798991751725698974940668697767101086078837383319234892400392424039760899726276100775398224346955905743123819848517506584531858968617687287576603476047140306726102469298895868353409903376073629890955962650024130321121322605246412778482914257938774160556669893159715866821059591685600848543280008843638376284097270230695420102995651181071556722372905232660186615592951818874677302120603392187842818452019266943831000711039698502581507811707245031490895562013046813763958448054097171904493327484146517530028257900177507765933706742375568856104633299755356093572529896183329320526551930362131575507458416513261757701123957178907086379894251738426417583147323539189414724986648917307700864547153876317704886198986945429357078828801019809011317469975044674292826015438086354379029525627748351453657188797111015747146263506251683112104991415744793639795366414603698691372028190912380900112317175456742319573192809409135311828186430261718223920812727766245361997022907049553414971432574682931475112185259971663846110021108113881213096832193761269585460915572610052247645616833849513755029852581279227805499408250504430755853100760987242542495507258930590031313430989802729867431021893170889627414549765336512628390056454355046971139916500439031699520949359237405927650246630580440458589098150310972251684930986959318450844491955313391847312475476717367210751724743414394874355712213122436238707635986024053606613731478159894667870721905216012505835324665209777235421959058838438990710170528280078064695448957876096295340807403542960562448273103237206364633301947351741017808234492620956961488779059630659015152372587451309858340136027028706872666551993035672605745592495815988653562517248839319988325871132549936444137329927145150196959442288528081854294295812268745533654301870928276087546893989529819514736983615482343223009732827267761240373177049132534772514966741412332815048995701769898044667340855461551033850787497073046207574619466682525713180700912314733186539679695460166129939074887710050064104940282766815745283859459974455605116802949368776652991202675490704752319156302256602806691214111406665345562560681046341525216826321865603203135738202994744258022105537996872173245941481817930517450599791924715284149200556544779712692179498226845936047445962378286283295790981159056600343746859499243444542679631122196681786801141246982105468425016462702183988798517200036287990653836665375523306866441852205484032433711704462410163929821278916710841100388280439478292900203285280115751084671092474603603292071535615408781099678322943208542824943327828936451635415071610372726502616272909603606677332047011097897182720045096251981075245615538731192809968132321030484660548102978061584552645601497095238522927668335907517626749226025403852162252345740846758144491260517141161659239965620192721022716747012697239874736630315757521059932553881810132667259912193557012591861072290343689803120829039163559047761292074747242899683359658863875027019868045877225064368580903971525105340773879972472303904389076144121940840730482816514499825689996987921789710146575496347709230213485316649287228177396618038855167595856859217760186059034824121118456375149491037395139798362680643531617589577556797615971841708739415120824532448230120486379192753349358972261913039466608690238239900438966134421128102532181486916150039730972924216368975138082783698067170598865807946141921001445318393399230763915756946324679250024759795929741573133273557833737546565571761656443328660501368171694187630621179627840747636559496833278299625907778366149791167576565726370090486978742326926129404356196458511060993344993787662342534172664855220611670692881544427332495721399577475706680404777056114430286202629031385126079759248948008163432434770987140788523616675033062678663455563901507546673559262521175480262744266626107680510635273539909133962842461347167491129814100583404404282626865042576524443342571847960623217333772138201988338633181601386383320398105828722475054523925262006966055901488562809032024478576706147185524198274157152221872323291145115092082603097229268772592569970116122287744234476000278793251163176958777350777670352415810001340404174905505963882800572914953251372381205718470318261352294700770433664537849974571881881248117200502744848663088170177944247124215032483008964365894483659382796050333487810056833208876897850192834485180370721495878582981339342943982741399765736797776568036956969097645106651804857236038087892819296158056180353933420979649156165545220330091584379419953877793390348359606645551900347581483304552405042213483170009504103889518784611935544406781221600624001185167364056824678283491131745265100725236883136573959196858722322290771874287096584252629987059021300754765372664222436496246147087042623616516112198170365982388709903685050297116266982935720516449625487895831168764811038415460819424118082913098790537105178194739682367199415649829963792457604583135686479644871867160667553437655883245776422371474738037512076388781549127653199113898101578156237762111065979041732775032987932473208107247081213791372159847438423920795040866256827710673993878785539506422438771567278170300591346863478349993834675653866473952522230137574736162375492394954946019250811991297640806648943279317240207208582903758434892893509581581525663809144886111978210195601342240318731027912972403637362371507115258817050529257449612319779230612630361278351307467911606142819161521897385664387460109332596474679409758216115776496204328293288996101985010746564284203582441667060612174898917716617696618873162951198378387764715181519785029526076888498770417523778260769713221797455531061492182240745529929761931321372285503843540617171735807436329632529525300088268275760428589357827665152973104942981202034658700157471948637108448767594482224793189068546120836656016204264552451288046953789432330578779792993064842002161250899497275158090718442084561145615008755639771474624108343911309807546914977996059084034261056580662113973062737201333335249476765631606115425168193977226692882177152757736362224292104226835407571000394283118670486983310673045812838743607551895424287203224857525888711688823916572474982153895103279248522074468690226769626346269528448365318288714777746207860383289036008378798268226465508642272443534724186936670208581762630012288494503428109661766277037208423541622233513697376276789191397450399474554215583273704987887890182868647777791131800194450002699988782588766345485217979603791014457278490768991480980650431627177938937280970095563234036493800060651226633891465001342231478554049099788207363754366229141136381261458204075529940078665846615207258837680599776413383126829574789505356963961886066052167196954000888658165068154763516155937337768605465999923213191172967623004729153742295788453828500335354616874198045793799118168618108515394364064654527001320688846130820927154012987295455593912487453361655989858890333137925255486583690200701475607447642754015276984894036584467225798260952523896501452072810559347288428651742862889495100237886229290109731905570462465150300212136068042085733376722689949094923994913980554123702469438328733720527407738939003825870203184432854268687080774134056081294945374575900611570608803829773674305210336072917058790764973521963404650043247015617792581145905945800338183979132721994976049781767030945871600489602720757845412135677831884671669900899379768139994487893606744806660961555794915200177956573407198758947583510111574230332301266304825552027060223086319098879785027650261938655367563555263849794961875732644055330600633863332443450568056633595140185968338862042916873304422077609929981109521271772467947185418710083667210255612581184768799286257789175640068705156172155947420982997675913318542768677307259783775829841351246653969421636714987624911934660840633664963957592269145158791484086469739408601524820975363360948950487266544198692620289194479446262411085357794817460034950476500496094792971181636591989836677940332956651117532120817083407633678770494084580439631677683773346130220626497941241582259402549520687901987887033126725574978244707722575198969033042257229631480557654475835143512287727071892936816250119375030531892193627019440678681065075396318292322948816785458761266194454842784711810512844367479341323654402450681997447636568578785948496249336572679948947146030454473993665569448375110324467774629026341157906509382255925810304918292063657765288762276895753682348065935189554128190141638684663710706452508918150828100484144888074597429074487214622647284442926780372731816229756618087649712964000979366357767178400260364057035927190088867125621419781123448678335189063001051246313080718505721879895776874354644451837099502269624465934702907730044730787156770349567500523889305088795331301603447145371629020187274469544928286221858621331304566738088688223454099382284570045498679750683409844981547500246872491879749392634679023871088416213811192909967414313153105967085832348637432995451200525751848614004429131063606937868102280922204450054898272295978610619409422402324815069809095596434734400584694019752554962674044428605686104355881569039570109216176436484116889176668559967511747661111868710648374449349589257995641873681450554314754960840297103456917946661427789970447743428876840287657264092499056738025904115061971304128127177004772603008104062150428082475442917091191371208293029848014293036702677483430575662614767215309803885768445361786025023993919267512971583075236373226445140359213340838540590344928247010589148524478609778339034968383456524068903018633121031854796670517181029677602726133043894586688820916671794639228836870223031729193983349072736882538974537251081549178214839854090377666744869409364106142392540522771491489854542791229115705673631533582468489291723274106093153983712612941973199587889048618283291777868810102537802654449068963663583829199446240561429604567488259468361554778454562268421055797475341639060123526209430451668973177944494465853634357072332132223613035137573750391105368379265272101096937668443802419649503242963814899538947665776486431704945237643708271857592534112754031496971658926685264974839888756486487027342985410256671383089234798763457676303382270130201748216133864904521067895260365170774338350188003726642855614890760856870968179046539780108477065688285904715908988500687929847197769602774744839097021508313627981365852742176025596049761385617971303529537640799219994264215244065090981977992191068875949421919655372185821165435701118098463712758833842398355521145017225992458078584088219463471022992636184644014393587238983211863267836270653103497753259945738134556826304232764507077824488940823789168053315554778623352152235334952224989601227331089207970364262198608430457807403841677655696555190549280831900700072679346356166836087416363524150459013945267493095556437644549560117879343446918411755533164320659717683278504915670284938414481227074885145206438339040678077490822233864410502608695130436562135404711105367404250465529018108249290909248339838578162364571985722244068916308589215092772083085694166224702662500718105739983179527060145263479746128634403388331072374802926095980403982115642536482575354146709847150219921040024027899129089350244042892557856749505072163304194315465760687793752684129123450543158498843374621855565396608244342632355532964656365069511225061136204080136066935860610581443787290649173663127223642575733913921643450537604996954016545418404944228931204316812623858025639480337548143304423087649495848428051207948152026994642726787416217017322916384293855865444130522196273295027976569762227689263189164704770997926209834455144967349337036403834192833547825162857677090826669958048664485577806696457946087396076352420522739760647034592457094245674794128412798391663453443173348165814182622312632532529025438687552990850649651354707987942240691145161934300802922430569861960767110720620286464503504252367351462095980454406887909927307722735609821663409349850044277261097946990770838423792372955760560322359024868786862215255381809855006337478519824056080455040330744306777057658378925453958596639006792996900530011362718203427765239850815947194400138992290271857318916108659193949032875034613945447950918504231085705861451089425481264589825948292211331195049443548804104638750252670472866004361931283016524656966992565699155075905608837217768345766753410919741384031452865962188783051151692478771665819629734740950777155085938408484350179064291134813661533777181325796913748446151856832635570569815787042822883398018903421360356649880999768659334290227338954389528967810901245637146710090121832982412470096856047300969560080411610135352727543077001089022004510142590776696010712746465738856225294643309830831492210915246880387343119896936084586974361997275485618803285247610380392180673926038503084570603988646323807385712691610490770849565252535835616136702192771964108292829094559411011955195005315762750329607498374020763406499198127556109468018812883007646835721817102239040855762719323891902030743489402800589815977831768872926491306824629452508053329133792514454846608568067722695833769229975133674868209584449370791949774572854977566529021329893833595092955039037048975336607910703894101634870787145897030951529647056879828620550408633594186997364811915136208409489956471718894511327120172369960541789440147663199242503964962315047907013910215249966050291381108469184933439713777560103295942918661118736296539406487724409785115986817947810321756404154492984587003338823711809080866500102431676428477380814932101792412208777589446757972291633464368934564331326280651987569116616732023292365667586977827426550322966393041729187598537846261821922536307117976050589250318337741137194348599114803420408846461614962246725719804974493152928179224936866965336530285109060484223562117481501422039460580276153984945579571068364544528173484040851921159966391633648418298296968114765430591136259229210820985862544284009828372414292858970400820537765716815518968809375805607962281408097750427917474278409108355167014474372047954935335963330599280437128087673285698154060959571973708406922993347307353630573145870548815852056651379356381554104606407556565617109790847343681208124870457364532874388176130492215520732055523770469389221842540636415825738044954849434391906742257966302695993637730213950712969285488202088268800897257032834868257985564739584300150766051336787279010787105604864189768297652471246641019992589503270351205471051195320356982657423741863115973077181637832652561330941033137876463430060214528521867441619930815708420219494527359157281876019661944824503368911290013364711985794181696416251153484733135854591919248805771268271902354372354012735700749689379648412147560279548219258954297600032294707439608748059700376816586847452391328790431690485424896299964219826818355996094718211570657878251232138335133440914858003654238162050995553566854393099050336541914438724653446527615841677418460650552831907846405166893377148051111307475349687457936329980617044941261685898008036458795957809116786749170330517881988161549425520647979603657298157686377562139422821796062507072021649626780845816286670396988747073874927314755132368294555535637093580884331616244504303213920929950520766288050775281161734037919095262225742380135547443927244207124906822228631564049840382529560049975031841219532565650974280361187681172746432005418987808410239927535400180651725399290554771202655542020068638303258568423464980959519283021768857498805799766768227325944469941175986043477768205210508946245479577765319676178684505627678931856714639195256214304925373856777547835319396013038761052679293946674381075612446108134608842734035874347734635475295183479255672861336243133867462729089887788017857587941280772918129148098135863294528302428299688474200987972681095953192192433434874428549952978668140352390760760794855203041756377527983100976540964636502171262276188153228781457252793977156789072805669523074420218746497654969891234183284125381751632964241975828818804886353099626838732902466473137905256893625230764161707814195656380286404832202863357793358249594623984758370484672903717938774870289043745809769908680031480235176783188252951346272139181196134395354350242570162118387764486669703920791666781206055857032251271673204577195940563221305726210383614603868828118833108587173042919335838227498135953669372863653491671067517986734297793306293076791740700361619222913352288421921037484076791770838870440572575421266955977280743162927952499950776746331549657444519560277342121393502557049891299950793900733312115342808619787466238331454649596425395390678602557747845617701924655991285723291112287299815916402138129549843190613434147263512959566963480013744028917150961900594750322097591066441247487719188497433575324106926410166968413116196068016734776934764365051877805650378664636515593544391163375828375323995525980184267736769317795554850408123502861285584509093181980779734420849381242512877402817925085269605772989864204972739048345730731695547884635585774327871879397684841325509061669317457684373705808281717506405669004171693339272457068899553727617147922192095894133093424576540075277022555730436281985972783076613110774163397908641203291586426457131424758703452069682422963822537812258945380738660436749056888005100617350923629078668582373958496594504495430395469464107762037168694692615646150390334480691935943129124572895674275656873201595454475349555309281195038438405393805995206978055023436403647398419325344676661222119035894511051655192779699111678609145385838411780840440075209864048026308884471537293069940451900285851127573971375385865288072693036176579176238711644835825001855814964654315514323336617378412366252228407674068887601771255865432361967968061164731910730671082892546170136318061167945627748563114511106263591275357030313896408186155346644994937665933247219143739746739497034357691848839018050652161041739948559851444860855000418837500541129855588402283361527069124604475490390502107687313969416661541753299068107081466519983781569577772246112682620001014968665455220339742729306248491309825607048129684818424893842276535655046433482780729154388182835774642647747666867813296470567180477034925936691153727029396019452971129677857566124275894510180946795608994863059222964709477987198346249641829737678449780648619220823683471241666983764380592590766473460408203028059374510037698961386778387885182333710079735339357652038392476682348314176826430930059886513125910898502561955563898088797669044702998182998025743191371483795205051467091425271983921863075646205849223179050379299257854214212268769773221524661614012236999317662090800677983254163202135024250515102890903030798335674654087587020326416783279023382631112786566597792638436900934503941220040693927050304989458654039710349218711111771849837036084514414133543300995260636012262218064986008619444960209349221838946147097556452172395678124061748613169284330475740105274581887671679765087315223137112389551392063814538085457407437816487795988128792741726001842620454974581883098281077137930553745611053408099774978461858676135879236635899192560576755814635339569105838567097534914457480412641721408311609431688244629081653295026758565350767191968262862238781639250204319594664854656435926545208745521834097440554396993453067437506291116405020727434692833576001440173029722131368736758625026945288169361213040697506117579320573985119946258412269323094581866818438930544772212663498277127270424136083158132645949930326238217948767934625328707565296192162118932210891853243845124181207245708851684545320949647868927667710723201284607622885146742893471375168020437751947838331509435105354162948299177407857052571141710740587981038165652516387677412699987237356356092145740421632549620977509816757674501512376707903564687143162917542960243085062924746553697459979034872735981209503987344288544773080982588643709395145665955430559104948171166297224152160329793153480886884959439135986895674574222015973592895258373284059390485610352126222205341798098875153051468785134824531251856522405778288366986974643380416319609620830867633396944175517885657325497403310112390383359215718699345939389794258068408634989845394734262473122373323228540968290632186623682442618781055820775306747351088302506891465845416613697651467389192326393426895715432911446333922149990768510382377079316650548825503274486762633624718765153373125441918100907044748212566673960726894199446964529159075640086966514387911790812679800083551084734112803742595890321105490668435946340226314332217022261361985529567299844160643803109746284331082299307555203692334890102497382649164103275024277631455226968032067117973953340231677724447985525795263765044949855031306767082948524130632849201544271132472295878586507343402521679114029705189946515392846833054745618792542284229015091534336233935416711538894027569110010108734599026934767050709359308067498468212635765526535720961925063759651580100124199839918933928507812842160149585292735254738735222833609502862029405778735647978181122421923599768205980063609321737780972026555489647807058485761011055684031721568835949543782160593820583964890280194082415860875346430812173886960759281972780052615455889827733366332230455396429644167081565293003449206749600344533917417000591396092883381696108716618468270649944630981655473923868418919260402938771991166773772056265759184480370141707079320719028178083170850524407460203910459898935575131098357410904880162661547612749426634211969878621180728174702508619833350643745342711171818922483907367011336810712585072482547087208359220007658893293908517969657872602800814797425404076117316468425935350057528378195661468302238853890030515562523643091073597295155438692484283268322185701726363148775400026536719243955351560837732979170117552218698871883266279905692010129847833421391799575607836622728940980291466822387954771782859356959983123218780576255307332255349274397112691152880149306758184363385854095392961279115345852011924788326952338366476316600574616445564941608439464791978814644105526704362925432060378013379966999766187988925455119237523964354751287865273205064861226404616940763590949730442267614899203827379208682333607377052216607587906954343613655123110276737313603096484387825684669703810203447122468138455860604038477052032267495297678502436394538980255095333063050274477533671935038619496988764672828266088075479394508040577098047303629372541960084620225033535123923758036245912502547011397134750214615050325721390616764456686229671012418699753271206092184689976597773132844501235197831633891721989906176974209045553155601698093149392748552775994696658671018957194291464438351477937596395504215604593337866112065217211411326738199984502086892907843346367704147164845190357201412281493273803841511041352829921722548672142346481832618096198087398723187951746058485436436549914947311787169281472823531586546729857692450900732369872243353881126334910412770718708426087222170157747929947235946489366850189653775276970196853244165235710331604564513921355689211788948655766448999075255727519619400443862570888884161202879898196534290792301552161338778061024985167320472554659093697289427529073277652337190002987106047515617779825365082266416417056469420961526548952322950516307594012236222504705725866337144999198541690550692344718012752405317925831846833785999744735761708118767242628992847911972169464408100281797733830923592856066805844798902253455967267491522553528336721759979730366679566066912487042970376123913236848371623419588279282457672700242818953677720670527411547555521525058845504158613686289938276108029584685494669694733472335793538252732022338268885028336523270409490218647946893666620691935399660535677432129199800096816589647894940196194571147404509758932171381858228610116745047186691871572131489837817727104050930427210584938148801181154862169483625139637582888487090639265953158429346628546276929801125708827077778355600590431209893527760161941094449358486855624357041832597260484398149301120305573480619552367240234161649502274807725306842328820115413114245635633021031707070474310246799014271628124696774657972601847008174018515722287914035881030368010406497789815891016744297285898110639226270987404105620453678958243090150451342507122577800446358359457579333517714789254184690166214328164708012281815214064108317969494698890059174766161796469883257371939965390493203718749926363670639494596640436002768435740634158649758215983239365454139300250991133867593492605819407771074536803328600892640143956578622997838489599557005055515283505483075998334211875680890194109194537430239878536711943517306705755860941865164599643368417469789133662400049771337817898677434633314521860068866202019963590510543569022038362011545061580272845417182646930453491965389022656802324128066226781746998851311732969645061744303515069806547276772341128200318914066707726167247329838550437066398708651679757246742436796399943692287522884723477751288736283112835847487892632371946340129857950008103150696086397754406707245284888321300399179154580184251655370429747674195963992741060493767614545199743557943382635364476038953742060857434531142426965069753137463266135921779038912332163869665542044451893288487512680577075658776223581865531904462595728763874118143142185426167446019046711128837219449404765791588107133676489147678203409813687276249633980465647708859416558003518084596148502217054083555101694380580274065443033432511812986142842950519847184731547870108879777070030780566365078501852287609240541686889472781389699558226096661986375842949722072665405297687136723727441341765071457547757605445525637114942224136042015891705724277313867672322142459741918965802205244944545557128073997911729930295312376840537376598831188316283143781526545749986607601218341967237088303246349409926256694965156894845234644769321730679204154119933760053811945562615939081913335340330097273707696464119773623347031755347840087579698772899258520513685797702797998776847973834296282777464605142951761595285450253411886218845881400413013310482320279708757537049803611448189269192144551678344083331678413424078354834120864832267968807013280446190806355469389706851168303117849465306941186511641640920093231708572433493302003042497998899777755213770766824204724615244978199277142267930663966625608946993515009467803314249151295702180197487034085127708470858414490957581114934584409824151944071938412043054558358401957253859224509708486147608775361976550751453450515167446489179769709219218382940338537929965365420290785423214622005797417107611523482018494389495961763907063009061374139676560179275272984084961771647402414591392766263453792173259029371058750556260193554417971860159269262367980583866568512904283390015287752923044292002801700835331895322498446049696524585077403351287766710458418417995026400254592986012472917016553305469859460164583911731868393919434220345535053625178496381549236071164166936104564206654673351525186832227822979440303043411412957660137821459015672099207740213625848605894985863966960111136790734552305694630349347611995917735583043556095284247680923277833425903346287695900938025718482050482992260109340984398659733950163001209669732924289285912557070532578652000329320945692121350011150854704796111972818425876699895131324396679319773637306707220102428654121964095976117054618449371919377581583752921654466138569933019067168256819413178845279707960963327852729368085280913186369729081392166807794164207801908839788266567008409518461339141630523984724824145310819101920716288070144219307441863854116080942810866821914003542024343238984004164511793946023973681275735228062737373461767454742587138201637567499830880477493603366592388452175420400728266586736569738099396538943724916339683549480778209373766809267917121434294249722238561882591427373506140601309010075239155333137701995493879035938625452224049830611765209739881103123528490298206892524633550605535532071639049771313955002517172118667552746644117932934451904266856594848113297926538379442813527536989887116652308119561913138988149896305346449825567670141072643467258248967332873526818407124468228640554139979028981014315837400105751818164033567902107274343835695295966216679822855757356889551801262209985856024960246213684403739032468438512296240941814723199178922224881110075573731992696457077917736711746577090753115803002472859864045515844137143352864818721099373796273689440271402161151735944257171762322123521519500871341126170725561652487591924202940740535562912916861954587854536029830237887491072773170566010159334247251798872063325935567448414973451225556434248747279113532420528625314762500598016324389968423229959541527167902426839752261512571014227684774933637096763594665337730956489205117990893156725155525172662006417744782279723893612400342640689579021556136963569601888494798025122266999085977814377833232079420851172348488867751659731640503928478724874516470293993433391780402675596542830398903659914597590013309574867000266870796603178895749412868217288100707247027673672190870460391392105815322651714929117743717759261650566061672587015438372123369308047762190610265163925109759384050955747131146273753223211403539351722565228742196235280078825436356852413804576441201480162674924314084587959691035627702845974406683204509866812296849974921063491508890578708973208811368980304342696438279709390315927359732629546119431681000425524618905788639903658424422208456227851829831217546128980700559830730988795954891773261460343257888979545820298806154575698889934163903575641804414058658532721165543042349508060354057130366022451561291118853923954995463962182406376123264940434544459148869268758747008232328902883258617699897384610464387867251859468363052132018690044774235928783116612802505174978583032524403847069109793462038731838893798686917915157372256996994259428784617578349806933939994296497495522866872998845914824745275193885075784817768859527908160339061786307504638267967812108603429965866925089623200875688224495482919435151944561809174116308838542133947141077594198351741959601298943265522789113796105406999694891639291802038652456016651711170854750329344851097359308415747329490768120863077736118840808336161040615064430984765463451623796142368710869222131355111794862117022705218378239517716200479473046001166271918396956730792077063960247367837877509817071445813332501754487773826777490609250888327781296542148756734153032015432324429279615786217425308736128563158847736893544784178964519652184025732838613879081121857632834030460712776701126214901871856254375457686075634156254640289851999014948192008697058206521147966090260271064312478158414440791905285485440893043327586837235539313840317814137489191444958907676887386252012058748836271302851014230032516157688542514597674038481640680446091343663521871278941103583484315949269127767131071095197667596622814102503089839100486973664578104817241506839765596919231500884571754052169258886634094630041283392738787160365879062334154461290794057223687056084287656547661660434497564319088606489815712101521337278555592112944497871203016371781561060534774153582876325371213591954398426136057326345576072120552588089091290463187489220928971810036119255015617446749436532490066121611094976475216360296994829442696287692214177089461495619894618608978235480747184056996086056482417353566828189288672409226489835904698186003609686009745302580062263136137027925293021918949837639024937774940386225827855003014342941933866997054739342557913615122922515863376044894063767410604799038383110557413167009542522764278522863504000877480723905801946227419899487353234093824286755661668286185450810834384668609527580083970954913301603707485040663282008940490124136062757201860171415068632486234682158968792172965733589884071962257071034743189955272776353050238533521245290228658685636606204434113786962174505750082829823073921045328030949966750529947400346189216589871490566063716768131129896320091415432474059884593239146400815621114585072268496141444389140218005178353554278535243923548430209199768243387923048305336842394319061316819327684417525161065937143362948436623315110496363701918099587403274126245629960715986110491834728372493279440840349433645779892173002516413899315297051474771854481831756584364397173368328560973933500079608804297415759323916204518788866698927338553443016199099142697242300018757271217925997008920686261103572000787418496721785858213790026067038678697000090885296301345214509673754038837747523905860511188291130852216395077461586498470795588035024345713351481859519507551886922956034560980974133747478167870778103470280993523459466717983736282864680626228971870301696687887159304486513645251553891562221937709571441442656522332146091724066580558872530316276916104942550006668546406510162676488518842755039150828015437777561042648073150335018989568033985756012117908855793526973866715030627165767404014909144041173798215690624093011968767860631147176925139253064690326504346862861487091345163472835227624745575418790674305613826851246599466940631809490412790099089623059496709033692445797587911568293754683050449643992915839322855014921667005577868002688366036156436283989766002954175381397650063242569818134500163237868660278911205712508053453790711978927429711992911396963949403630860275684681239597876752745448692181840073156599624810455398061354706524378899280573702443955232088633345084686658974784592304047975556806446511054314498349907308945386954211377887017520731150489225511282246585386248470270405398899963733892672712795208968475713327697121153221867260806403482166423091814916008684525249991376789174453988533572891453611033045887505490371888234554781269268902138850610960891723649780093891628045148463042716623750623919166781563657961805057833757073244552969383670582061058012757256350396540563713734140731433579128452953712309522696885435754269128333594165977907896990512926438601512832493983078503455991312750631500909084316975344195558780080417955210549674374138665984378105531919116439961806624550734355324064408125421852027530830879580676938491566790323110647465187416904851667830273695488418248172474213062332111838455383335233344209425116078208150924427190732881924182322972328745351944418897181228680146274045480555747771559988605886288790282650711842395956919868668194124061388388530545267987640889128333445571216561535755668058749498661291224921676842779799540400051642343248483965189162705296835406730622625212147636129077567045777587367451081632332293566515836445524429077370133793236540471854231334555755565990147669534357252024107069563660025151915336372612919037710237513690416457320624062134416458597406565245962088842706735947553976914838188340848911131969412574277017358197811375108330928650890427787019477811905981954361239912254556059990817179910914582745466585151757323299040005275828918914144499958273132881143088904161104267300561292122958743493799004570321055190758571576293496456392266041519298683952019826821491537345458523706651446591000430595220670014709395305184008064637854610817490187671142237216675254900984958198260388010149127664772200646064863813758257944740289636974443835292929820240397347541516854332541263906720086848172862024625834192650055271268994013861893990718005236087474303081916749566920700836753150625430966829899153038456030336080141486126355969390171566422608003530817763132117115280312241480115727973799379096503292116936443706536052348873358409358749114492537611595708893885483572395846859497139426403193123011437934022052360295690183137247632319580801894112280334374259428860045301196196950021536772976755873291784442980985601658864444568017761918582834415749276017501017484679762546360539869624035319624756483562838061658171543752096690197923394963178273015263271270630622987965004889120974817490506676437945495352373259458007103105075767865871794486309154006247422812987579803220697959785422814648073306418129753407099952829200345278015209084045460499852455399750908336845037424528230060354098420526833562610504249669658341325314898201211350689971346497293441553622278549879501122230549518071541238392050638401626755055579614433283485794658280327032444348273378208687385345644645639507851997155685645861416341884906734979208570153168384574782958566182793593308370976747085823935029385274341344000618718632938861214752467305939827562104291374419670879660250264489620972624400553591232164836151081550922860667156985918416177962763063887615419418767830070166157869889909571044057843032495262568282057527057309266770908311498100397953039091222554160303085011344812598533940400135696309196896319569637544733330870539445432879281462043205634140182375765084703836347955407841684084358290183730459269458433923909051264297313941420531389611184227281777810423257452288069360853202789827872502964570051932731987334496941556765176393619419126908900467960339112355470765845612530913232103486812510449072270706240028498051014991898805842386683586429571765971638108146407310205882553094011470814326535824319784307111932766519827084006023473833225425766438633451761449596822282102939054392188515642745830341038403838260416386882675262181998454921128894629117486394637888288060889236687710922013539497932200033302382628786350636813804466365358964604233805550946250461795241229734276624295901406721623495874847530675707528844023292261269061206391707718804676146370860024212057587777576510746963526260918670923923440328220675539087459327779330715491776440340868735721959834264045806241800915638421007713747937323939417140595446672358333146906859740189384194376658167006266762119309665853908880480082106353549626946265828010861046854317790215193151137781683965939484444823342694585397648753770971208889729807781498746855596825649093925437536004735261069722275377400379604742997408080085291327397694646395920808485481852965578395401787006634102489204981269023164163091356625103970289685858203691578469704836620215058938342296752915386473350487713511722959556849799099676147413280235749993630561793972994421261687962819920858755991294420796234241726400138539458840258476683073645967491297526103403108263199470854753315427006491935081514737058193146672369013589134381354477047278688959670412501780672399387684538914901365672507128328280588077848542586547119307284332714368977724012678417123403390093197534819603419940447690514954521160744925205125650219822724248506159469739570843848137625236032368460551509583415817284329976929893360851338194074093033117392350456012880654338039922542654072122568379648737335374404862781014969489412806029593221652458696178693300608085021268355191644084733339650770196791146829065190198063060690924064102021013330313442914797807567516362320103648485034812274347121668722780336859112371797341999818736886126659143573926309226950484082628203835767961005311478313788667615774169514370084176549668677289281203739987980637684985098040292682318735327472206203219734160861470579572183657124859335676456632079234871705517835727413469798586255562380626603917497482748289904452598361311809938051769456246677435846650047390298334701073104855338208276532760884975495438015973838987481100903686382005939248380155786285866254311259003542465371543465423207082183560774047318883029726902907826745274963605201983552416550462034909256623650335617101131024952956132093103155469657269094673719608844878804733393763745019431604627296266308799745753783082651456075219230313031984127516601132147858709228756267274163255556603939833647147227113740155706324445936120820118512678620331486466809468545110857756787608947820496897315554585460751287859007369541217834277391617529881710820709843568236291177667428368434330274581157699864138985625527890490109970931615499941588137076232690085899284796421793714248961481449909260002534781519316420793808429691532240193318947868733006661889039826004546759917799384000584083452142098383606497518683743064295192978092202039164087439285138441406436633817251014600147175870927962149143545079583141147095929301681655887391855010422690461948161930105755242644128400963117003618651097059701207132254417200170308877586290698035821637009603062797351990798064015987516539494570925645786190762236947893720427886206082951755936727388927328855250953570224922942304134719345034601409771790253406922680524288713265807762313928066142398862573509492119996749609237612519427382034779456968096067770691342233595174197271196194122042070664262285771270196735355128190182050984358329173458134877280411329783217004808956108718758052700082971765173963409160252310132712725219987564527520329616539477252954304223839155984756329854822783141935783516914155414317109746861969931295935915367130394915272951678868056549357788740776128968291946395697419033542180709599290893355621449835997516373392809023388415263096626191021746610774662533358744584979609746716242232505227080129856422932684131380764086404721481897144780388816676178793068213356768564572328418323567650814663312708075629076584229476093591898302587467595476489133024845120580492129883424997999832031896723169175292190743724301938630533754770304760308644240117353120064093303255525976161462915447835225595396622527111997228468577498093174010859457354397564629059236409260173055285612425031175273831378145875158031147416120583628844103389888021075288324269653183921913345341623941303417635934543662761056956173568125695786998535920128130493938857485879524433112989536425577571948735232868691983036260383160042495815310409679798314419098708975570891588744021893192696991647390485699990168913212650643782295186887511674063096579894162263529767463040997308106573780533322685610645820441712338193088665734539629622838256838456202020114768412620300557693411276964298301705766118188425555719953785047934192095551798599513042640808909869748607624924209899146296450989084225576421124880955986845084798021863887956818728750682624144696034334445153251210047972697412027679586218451206790428730912867970840923337974718745173222208909856083848717520039973574930442528005464176791056693383994618563083286093307524175114875724473807427230145839379708276260261800525754211875531212557097911471663848419903249485702645842555728559757719830495618404459391008383700497215221837302874307483127441743613150677760902826078931442325352594090908944088249825580632887913980164313805344363829087574432091212497711994815714630323793048226291846534707175411944951443967659030637220096325843665280174126059360862290465061166702918124862270689946181944514106250346875600698233050598894371438945452258989710064812880108197577302989590349202396771168464740761396718262727248108460849294772705628340619674976742007674401556397318797752569749954470858744158502802556473672644113569943350833014463373675249970009970712595968819789415793524016551444345429485559921292102451270151118277380492819116922757048696182887621671564555566741591113898760369696442055414495128832490349488334203108983478305597487579090402237831906736294129558295854829062488661212404959206630854391581999701621752037094545255509727555435466972771533285722156602480345561051586754831292156016135680271034777749707041329087885920156701813172073703728876572465612374620266056123973309622931542178879287969685619981237148214672983725717654942887622820640407385865979637218280685610129611049136514711399978027880482265888679283926561369664135985353034050717116689516755566218545972999276887127961552311043709663274582326546140016221197989301568613190049477319241547865964676417758494130610002183661224078373170694999629568905792895747391387894740386753963505501822258741987506741572485240252208000198890883973294424590332236013498421165283795817650334637253221130571950287693233096347484471439666271048160709938040363450566909943228893773384630274655032063803242610113375146504411442530340019775894663032094922306103011531489500246237543804742703948405883381578541694773398046399426099355036213782713695838717017186434301369747375085574901277343672734953351697421612009506956109359105756716939196875448864478333934421775717555379439176210876655795608677531352572400265100333629116254719685277721355879339805067180199568113938912013916536023767352907144898665873949014358324298125756062941731679669963082134834380401721911236523010225565298938812541474666485065732651683538645640367309652125514291877496688007418585726436842122457726703987497343072631655817489004436280604676585532623777742175680116461203157898515900773632529529107239734787860794453805796186979892314069896824742955702546507468104072919714607268615315802210498659301373065697818407437331358787349891423126806099110594258079670287342349446906790134693233491179285850812334953484257649134707654171558601621372783458890592643840707490785165366459794426901206381627465881385740760804882839788485998416325803275338036455894271485444877843205072407325239515269658550076113414971993033781437957285917141605146254473034843301813029188572065016281338088616082526680063303129691819287931210570797368351903494000198611229701769911125334746358588372972876515567932791278709005013241295354456382532900992206437669340296011152971248014669790241933418608511613408956173996078239761785866683672925699809413981353141789208654210318006814798369053541213988022146450340634405645116198041118111589383028457758248111793665066783483301996004737212447637494664246746218289531737243627303629998845076289083059069085079660982260122784635691605951621619730177846188175967099714867674477935202253427689211734115930930989241312493733366557505631955487583998316785431791927180197326054338981701996829716471686944922889479110573669659263329554352682449504511256007571895759346300702096103699603727988192910881118237762007497370518954238166432819873620319331141040808137900077080901733138030453794745198351399222646975312723814476515046637340325091656792334778512461433890462324455536310095612399743878646145047586613258857422348751492473789628946647159098339770493073796412118178892439002190901135488268470014096385486138891548967522438936035274106409298514296699781238122439000740775553748699794169374577436848811811156198545205660260525455776249001429025061326901842098087610502722825975617590828309349802256403165001999761302941677298078837825793253267886776272389007166663113538487788568457473742986509345866158825424594196145729098540114006978890069575791701473783079113039229394860888486187575544153640534943719324983774444706318917127245421965463531037748283838144075149221666654125666738255846150095271691108219371469784420241477648206844594243656321393822129664957958971897534145217353451147531119445534442574814247493545909421330391148092201569136777248688330252374464513675956451552031237628062319266588505180422507336381553342910971171211786807578657480508776745952730414675770411846996335901103000813123658127844098421765438821895157278436720425821022939290472413007021098604157376314559163889454183320903735114692831672246204683486212168612274688078114928312779029331154650032108918792832354787737776488693542931542186586202999766426900619521887786893817113988116176085913210543661172010950053045291392733449808186781896460881064756038821518482621564956712728025727341125988363476764181605578241431610461810538071895073660787413068888526705192839637553330854354162227386386670115383353157760072675199606299920455039432724126957005446390217482261517888845070304296336065281702862508335648170304817195453396537363254634083732132814837209462886209978068677501045541331548655648094293447985513292837096955755438701847461447432051107075588838009065516877095893541151157361612948938283053230011224309306416861566452144701253522062242022509773460173730530573814235648778730945523850207768406093402352335086732262587979860598855556964644037521350332380483110748054475009016605437931763649967098901936059189013207571283345307074190100137173481103855610412095860741313394341037658748971421040816613987787308466050071735827032366058323701642514557802408259804359819177965282661397369559620790912165042992223713804366505125712351519473566994055147471435305327458555245079222116400974162024371243651991330004858640995698307563413489646784329720959461348521616990526440890860306283881904119907714310908501783627237862043879562112424964553134781370782380391919640767631646905257657622875518371611329382322635718030315313148347718802111592493998891817104253981610217386481730827358598603286155074083280043937260754515697265752351093587651203406224124362964987173881771244563628317206406890339537804025383305167178541183423125506072005414118863110591221761240184345941475979374079616070842954641502677963111678429805849221469378401838917213393329375064945609866181470463976314788133058728475342852347576805240766249827534131595717249932066479091286021890277985892050609666851387603039143381587914320585720657162205485422178042247327014076428016761262010415411128494575548723395027507531565862873348272390201670878973568590100575621414128473216764517649751594510867576082707369538137138662755164515867917580559845169460553665094251017341636638201823653663399340416770225482726119886641516546265272534468223660347640977463854734761989732170220103770550617423281149639987629158395620464905591340977421740727093175836912941201199436576959848740103375877460083647927480175001381081901515408571639717398003512339571687756408129025110208556122074474210138275693305853237793125226876088069318290544779487500925380589511181830731722076990080368470883190337128863323909852020012589585290234131057477036889648537644602585886101172437372327240298133188506858585841851971307151616817669496253723862615337045536774729813683935063880563240435730648817974910293904124387212130935825525727923880434358967947301410481625263369884306191078214329987231753579139515309963653936101978255021940007996738231910364966850608800466034921361473206092983780477735710843846560957422839849283680654354457124048635520681554112975428109243244598954590217639819753446441722009247865466643306941561291774567236214258994048529460556591588776520943272902820859119887230593601285541791647926519760001655034926381259902494954870981865538556477735307785857145714562742544004521821140283476268295757881460239704853723496171871587372944248400072247075533410663259475589912193218797366650500627357590610614537691688471966582073399642533682557846602665653424865964946277839554871948084615144840059381040181865691934762288030290362995412467926261048044498456824430620371275024658818327854239898605785426632811604238665161296095333860369632313279464111035491677567331127489703670107647053467523521671809846388319085916025504731866339547471465165372332124347495895747876272220228172371196857830187988589437074883400881254214206676165296652887004576121149659181430758334567235794455470966127202651173804010172878741411267165199494214531994201090044943338825344083323775782061451580460250513614300894240553533282904334172290581183328107384299074051382692368200029866347329911471750460122569429926723031459988541447554602235642375463622082821750082478588458337629867299461144582044789018592970024048805388817352707612636407904391653902864966192956415213664656284942896607206817124898812058372747249514156898155064035245258273382124199976593458021865247589444369834203559661774002105051154037715082354367685471692606098134279829723411250927244342860750851716899066448262021082140471877519568157407469052955634196475090326290308138187921505741252580898106202381212780606558122559864725934634549065465949835947404116754902516220057427962021227150729747987654380673755915137043667454564833154501736952621014003986512268221013465235798397981778810949190656871530234713746973902368077596718472991689169424097260665337319777627904867765257874734876125317175661386628091045725824500917451911844801504348685517258753287846991193060638023884634348006976572790527786340137864632639837133495778808457728704012247324664693130692157582346231116914096631689139247212801678056781782810480519458819558472926813357102649689000203962319515201864346258268413362546586195008810633726053557523073601326884063868042808495410167519887993071026282869953078580338788425873581804802530319946910027883311667801040175458472248501230555937349620031871419273561497087715221690323538085987891868720639458406169435374297215322132566228565209343886554983202726276550464072423416736736159850603660839354788278876721120867726647210825804073900672169635514112067972625676766806866471035917588298564765393244465865014864664974932818579249633003965314205652201201135209107443385522737757381956576570293179630886274734478985726720865060766296294302585605905669525378706845972388466407999219520111707303370923283513759085886345261990167774679832611507273211124159221908411846528990876155296248062252270676533962337935018325975541595287618252556572300476739005455250224708193632116259070882776520245939392749698506666024197515266793735481304359764520528970611569138310557111962022022467990263351314532650923303461560634188051099460262460886533547258351121765575252841257807344521629619783620452896253352586267673429142730053587058629469592316415573141197822633532900225916914620361983938487687550571752974720692522225075478695920854014994832662608976415284659219667453486200305333001740597179449693313811809528788827118863794364609889441783218772123501475752581302203815238451168059664333180735052156813816001572689889254545127141967463167894054285915954005311970288030251935054209651168768719315896198423180966783866799962873343225406199845282464600060871808225844830133700580576347723299425944794014679643870735347621713468631758559183385569806187748314717935192065358694650540239581662714941078079850111305013922740204541859331577372066915416120316168898627596028271898671111600765889038577072310244106334987366802790533449721952080200849556865556363514302739658426972888326924526885146398633785993306232732840446433333290679276841587603161859341228967915041372175084281389931338757812901105241874037162457058199827902481735173751707144537896837428243989447772894086661058313537942969917989854216417009767502562961225776836908295892568635377956305469908810421136886101584560357317305738461461864356141968561410626885653356564985237400456457485523218885122874516843963920824135934622839823860392855769212244302314068430165832261260952618857603064881090091781833351521822338673797559957482304177685696635957009123084936988420725472746295596300126254709546732725190833650735283490976571367151353978853986018594014156501773552598009450627275923224824239910706629051620946742431992108084092961626232590457087232360864375360871376444657597298410789115027245813286045215631060876938258760985424626862785371864056180553716151864458637421555927002219749166574576479121165415504169238964578601873430520297225110241388612248142219134966236453130425880688336815839562087183289975523565237934139097719219293987836352390769159813203351501358234878420658908228843153184618962406611890225126877883703120193508717722904395890681798228995250730318979637405673706923636978656398549715168693878232950191247825497434249220067738533588389362985380602793661823993212194938215316593478530572448845228289057117230184982374193329827629813844318572771921651178047120331947823809232517842512341681738332149707885240400756743079335335585252106795637672326533144046438907266617510247941479282360366283594730465982489896836182915478870494793792101719957218070961077081190001350829592823900244761525770045586308165525300612816277479563979477700117243945743061670291859629476609310761786308239457338231023828514307087723036781078793473010905498006289212802172774907143270072039890498511895964173417152708193684760990079313991934311282100312381700657779427757488986878311085891851781860948371243548869136445901865846677610246005543488792003331691589746249176280897791181731519258553381148330569787923712903181380192978916345234828084788987683498214879691839242913553652949847371929825214230732201523369502557775969892766418844380176058136182882556713120864157684168288721245433552008732809180540256058338978669232303007915384631589113571934841388461941589353050441379237311430126106122652920730931470774739935489519755060268526066010885621138870940349231906435430183143601559007253768315443218682165160655083297931184617396804520597623833844989189418791795379566723802995201075423003378650760192312997034951088017467750500019935535825263400486318830872398601100070147165355430170500322735738662572506436157436103219003711683464192141203851799282811160377856916898162222185632627535814014123156110778911892268802719635766930389111883222133482400446785903965675865572648510056235451141195606889459297805977549661938482387165621307835181892538664347181756583906662865743753936829844013513550192611625437181414043830360604481096233745261858761712798991260072038168312386301447401209048343031259874581883463748004031226667508188805084073547310124932468579441360577323374378730860203241152881630705272060957523612112238217793331314618475405945159816406251598152219941885557603698952233311154836913451251658728931405635151521935738015425683185413282915188039185160675090471999924894616899006072257178580925224186412472708947457528274188361455004242029700992872133866665822245553795809348332782948627047235481180294813845393376979048305686043272059748723931892111575398779719439952746648863021901371432575861683170622597499493929572202809998320368370428704152414789147478796177858795479046065550495945604303285014076192873877792340473967633351244846706367188279565903631959370288026766662167760514889884865646542928395161111468646877965812202913049290350032195476823361110556046392558345396685194301956258529308196165404695824622424647294934089789643338850223247792719269071260969004254005985846574327092320680295475463104404217826521401921279896765708194368204745669900829937146632008472130608158398260654658968346424117918505722889853399319791938736080586317910947629980504175377644899366278738952672113906457538553383835100488999007029151177336502141920498610617394717449486319375982276636389059613321224592648721409394777639251359895899177306746647268393304543261555957763091598603149527880647801973497960993280749557586426650481461892497630848984428915082705849379275754633691360822315553381332584441001142591063836812944754451413898157643185619105055743301065594391945725503082033684128662624394785819598858268103940514046838976549604311467045935104355860761336045103691695334235793609801448019044517296620128848445699536836367568589315063780120246921755428862182223349031479273497078978099544270908029061187158519731229927952462575069579824308005897301466187613014548435367555501971928058174830580034277275722296217437564892006912331312622701613586378045944286699244584725465086761556227531592017483210162674882655393092127774385351077844944680358745031818421207540553345941483014613986451837945321688560514372462482807605679919586797800789560371592466079566306383614843244570467911804506091328664128616246709951561020248749759232131042641595322361771120654886123000511263620491485951981355280207767320489898954548768681706437838356015439072298477694069004102288955705614517620626614260824867289708857671382642945079960837421737903748710244232365499020217461697425045010873493101403000112377251031014303290839002463700686497672085172708499787852200779036686314046492871821842419652336908502129276577517406812028306665221133409506770670847444660815039437842316889662525069527554073111422240023708651349409122833648204091384187140469035758913893790190802001108954281433188826178848584583361335947035623844374325947353716709912471680998002018885102930974442022810182181367123839079766027007413247375931088162603659461747145262871159965579450670601778877926370634110719577768956100574650282069046068044984274506322556430339769015634993333058813253633230034193608132045880752520546181787977819747440316835173580833076478354959556052100377588185136186959429464825164719782849826094369994518690783927954856204599916782974865150127202678002518343795146401413123979042007833687205468473599392968963961286141375498763832936999064302057313181169859742398221933224176191562282088213115744413525184880475161050499980563459927226865892620154447703180051963488540738189590707597229523232422668389170640853907281454513159024144899335630942478307931014305319551639484050585387504257821672026342121172061346642955574319483999601204195039578314209813082788631050839542945023626858563842333567012024797921263899905965930502255288538667377722342747538412296558163763416132190316864978619346733519496304688151206739918278810217226799431439537266725664409293733582773876845094502739325450275686715049225821265595461276801134682558938262404456414884290209451274471178979508610447878838789961946151358870163353481188011299621460345925753145244316845428309411907560244509657465913230191933566665348607047510914843965655964366546535624354233306591374948498034668069422582003139706817793261250211797206617940694008436604158300867827731339326946813303441584143978406298604239267908310248687334626431591002877798180110355993372537168163816987900042484558586585788454651289614687257493818073731963691342405288258281322230652275123660857361086102191912652206485529410296426469597087361745053397120862730236759232328499348153768820473394114558692678169544298367331012997343565434302873737340732093146777101138651779703192420518788172246269081219412965269180881515133880456949329390930273788710694434497497024399716234362957600358848568819767826363820282927081139005808863592159320272991590207760271552293419751033598812982659066729449802482305627287932615455245756500080824203588888309659560792286334489948894138375613289679291242448259360612581608827327257196758101826757560396397402434845912065349901861209508525358389353686686146889347372923230473731990353723525458032164975408987105453325779142020195394632892797107276294821924835689432276937930855366307842048797592722495353728558633395290774702206178080700085823236800769735295555496461217668654971470100827393302972638626873047068904392170331514933962569650340380688768298592495631051862039373433934462551087021868075292647744791466204776449724618746725922417374894382563709755700235003097871424001061689541825024674688892887109953052038773983866573466368152398046758515153594551336442009866110948913360928223785703798819975348958004384452334940319324106440503982288465952375217006796682378055512476561936130387298576317603449577754404263725264555848519453463693906112511056266742938606136550348720890268323360556440945930094053062021901728390769362191379844151646817998576570067148610989743263429173688654802269154431452811607647486389154686309590648670767994303082255968833400268224679144800138435165990610729217900172217525145294598358151518534430260479762518080116339407974888726683752478117862162316655169456159355629822504049523783036762758789510311734888102819116458511213559917445766191550499993505849984304620281382118907647500920715424057615436424572187486572961943700088225033904373482838822543475271861122986025839711589943250686607014081819467364766080407301165644823376879908316547748804422696869851366961165113089046748634561568172341165050527587516898050373329991544765956689224629988237225055708551975667836750476231429480605437739273235880213323984987230739033382907171566269535836198481629485324373219061127545775041921943813892420091124600650579149404906681242808607527294290282183564155619974614493774927907651125366116376135362499916111473528745767239167436530419629890486989363403588047818492492730141316173379359725945727153577641442801531531806365426913067071993950829107372353957840582850416151394769440867315287913485877805799087326290880920505426056994597538393538802270477524797056742304277893955123297151476151349728878006397490068949769911306992953043907999431052034572933386853788347114342107537306021357250988603830476225470182884867717389185935280890558497359497176594195663288352664535970709702069174714282476729637247870113738733169330458423198692665185134564545332835878798071537892166830609686856803111280721057925456267430248950522315842033956967154402377833902225521474757079146940670668423509781729045889180688827080003058048647170047336243023943785130866393332089976164067684723419524254834729168799835269772214852789304858232865210404066768595337043589208976676756552664190046937767985358868523752512030882515435581664738539666327695703193273508667077180576367487153685326297031036207786450262534628921226155879075427189101393120588700160511520623095838102064487506061607660860119705760677126392883913918450277504409361067078233112415862763529704466681828508903619091304972535918042791114727878221521893952282331182562461837703626825185471215172897126204967174677726154689171737486543775436927004467432144220298459133920249061955488440318403594816296850761788207409187327719869977193078636392817585276376419052675169981820468425977116792044372178223929784687890070829221300276175920392855621753473862303505984891967453217739405608029187198807014500602161395587748311873367068346233912117231912016843722829288389026566377488308857310280904425120281714181979305463593847858425255663330507449907978405151832488408295664249705927171071720576830232582243181826086325593055249285781296676997947083270566133196514553462554409362384507585491540251518600157418136635094955201809823272696707832208535641525026301746853218664385297044080274478122193758020398983497376366468685282549679838171756112478770269442542243435997725139300824864513500306876134865621690690618416218158804626362617959430320140671090966139031425677467413829109690685794576575724210870250767525564016002282958532230043929024924200422387983409969334335186770559336367690722407072249378493991714851431481279651932509459267553218237941597785197874092499674334789372245188230949250881775234970874165941431811533642048234477754839974878641287077988217593520452733508261100512440253373622787248851871095568587632213415714062649826111306528286880687700666406212577307253130057969994998567558807702813730364929332383240053763330995864184582677058786229726396730079192165573440079934789655004525928320478250481270577697775368427215933702906641346244031644135174349922380844561356308116327266576251988175527984500174013968998135885260604334981747990100127010291105070555307678611901362796530940752110221812300128857612499956676890871330215656310584169120562542139367673457956060746730320377993669906962695551956370603665167320689605425776634636376339385612327740574416832942397706055647202193312471233788238915404902011397621066590632359333162170099653748139951371891362516935144345101410672906220797364297405641949042509587588118450154425748566954867354333640916555316929120134340075999597017786403164678712191900745365082829904117012527491403972527537046836831798119897514018834413006681890905381751720356584460480301955810922678210132430521826144819482154658196786208895872752632703691766691085068811256572784516116914127981290294140966379967325905396052398507761634728763756091079029742834465546738171141407737955923427307415362884165551027161902448492641306144817198150059043988687802896500625922620270346733006086214144637764153814662160390828233100969395341589122692219337376974229088651031236880522764633137697045673175797203292060441433843052161104007910861823388865214966278516490893211143343146117557691834275383855189187687284444916127905751350916922112105704932899128365973250365914355371424182980456699568452924543268531882949047048082517704507863677534405812931241552402941280691303005273270178558873195957792582684527234727093321604971430855642711318280230965487036487812645415184410738569278543118319072455011575597475635231252796246424306398597476782930316901472873395124336176387666808120293959313976808566662731057274183781605170468876886761102480818023480630875676674661167326957985442431712452026625588774950036757642688129504921724379481094524695326655374836068452728035101257608298142029647369192669659679618225832071769367492993087877620249306328633049970246526705305164155899259727513532849400029192498754613735281692042629497843266337045766609683417592915140936440411741465996246983198698577496656873014236248533874237605447043094212602432364857288491480171881871278012326277601299811944243373659024987436529483554219756519734655991453742363495088565105783210753815340195182132912299228565440838993599630470134090874512410948635467762425674409791248124045351599389815000749607621954988333818716100912097544068103759162148049591110790008474148809906966431678620745632185266266321712488197447025668501777941354386033041166817382182357573741634989766812771803219823392222248499625198325124101338503514692750629841536922804033362122261073864616715827433949927446993164903925737730163369905103332166300718690881442349133946125254802221410423290516674251358085996906135100826581033594670220321855257191894636083892207551613364066618593620243206018349183014949317400910270665852528686402273591189393011162758601957687913850473915648525511223830514335178681103677018941736116753332058846152847817837567323752133618089136740079087044991000187559733585165709898621183709388290860182995643425822187545178593353833021578177652114433349960888868235310446615302212227787108190514742375859302505503363491979271344882298542867247071496629489198362129175809238392687621490601666692287011110120628271267911472652928086230137160224128919596229407785616450235636620149228466237315991716485694063102551425380641834500695373867364878660949851817200557592566610377037570048691118688962598522409133415487643023688689894034602011017796582683576875416697626714290314091543857160112114968876540473387778390389106838950748806214037471694645792547373388043964148778425677683476260274989653903515524840539209882375877980851705045349636442884678338523613697137744688077811346492048085549450183684715923132392941698072643457126010539889592667344781168834760062898398286241102076452101807378855338960075312208959445091298914203429645106529966422018742292245465847991859160798593292223286772953545528818648221675454382390270862393003077435036751420539852339393871612564447532030939929441996513163771192483306628492993189307209855463227278502269507094524610044846647718931362388045118338582303625373306961438241121809759850921189059344256413918563372696919278320763931941257084148420428921918147018015523166633595555797224659545338863677701445610524521605442598388561508742713351747182094711854235554968165643352486508005819878918539193466997239906091402272543510216019589469613876367113513235332321299915341135581701926340485016262688590402423921464612587775682793862913089263354769131932591198614338267336332647302088664418170726096084054084124111069608066247324391429315588131884970027543063346449742865112554832743037154502759487104433154466850433159278048868395571513678419098803698500186408583651575605077509651372178376864451691975720266226263610275976948850371005587815519426621205316796626787130045594715604751170209270074233984959592457552488725519980361413385229365789644376040627695657133260493674615514945110538600095327815181151814452027814889753739150722169488732921738293293941400489612900351493866650125333252058083648259098682978722435606110131289068849465656359512941789958998686442547739799556412258529445112649566623450497577843270492574691819448733946546412502616674827926391831900268559806702596809175853278909966734011794175779515356445677989016717761447631173016959315182632442116791596104329483401119261318397740505941848089592147902999941415912468740614388096286799440991699684219316055816385514119497530042217163629205358042738341130731634368405047364235620685129195231102237189443369208755220162662018169996085430717041208302829154016422730708153002360460833588580061293175827940211307926799847169291583971003109395600683518747857568064822578948440448918839739014585280234202396584788496133218993818797103631763940912699380996243044336581892503139965313233715781885331225828034854948988942807706723338413424797367366602871451116356525058410855331296202044690184105063978028835425494242651604779545702675197047677301191299868362988641789878145393977298985251458330121780473842283784823517565571417774380479736821345595454872511997908243592551640693326218461031754414131365761875236565054943040473648294406743898355458283725505688688595337713310997679451365355320430665238616796425101656254969618014948594535163959615461758531465306155680957439502995779023925758437264292584403294939017736615497015020408015561575356337536760296615747503815861367224530869377848532809131620457237693208979765578314391968457554130646862450456589736562707282577420661130119936025352077153108829389706816509234197952757535224980692803729795851253304002426126669106836112124664386470609445810755021562773338756985441036708953260154337301172738166358030948967947930466442483663533945510173823392595207810434565885460761335932053124472677730108713925536899946002799146955483803893594808109313765409597926036475692961326022581734313819527631840941287721096915241319787047666290613431732935060268455693210494391781658688839897847663885798458685231245315111096633877371516266809378793778812073716706409002320741091843751629481557414117934681173807420142634759196684683620001521329078024088808437402533344959835970556900777361956415146841738786210440304722221899972110871297622910519333231651454465855506561167542546305884111444734094686209920659804855933245026091021679613616261761043052567293441316487569169427442210313296285902428086314716927904589613644560354613506068006250658071850177933719237970111768826292764122005442178201244607887793816490129248262833526985616353302288628876858185560765518350550617837727413912716400682203022440617376542989104890959023998536050392211722428692965397687188544420581290628735680542761932854080213275501717300011196748797018292410289260081368372607358027718783931947337157149341031091029141001711748583118382496399904570245250623421341957521574565393613168610246969823258951951024509160779873063729909124691894308792636886428792767074569260671580870238160076626466846636132612423730570061146143388663605066044420760677528292411182296328696308846419521289770848722655208635655512123402547203846183091102253151708868676829185395577896854256942767682076466403172130984160048786669490685138063717089803644428116424307104203630877935381619326904219921700466344280490034225201765587363421646631922100661706615481089328896018287723532319163595584460070137498001974581611944904497901248163201089471650352068957930903732970197075065970620624052143659906695630610120076900810568534163051666876990856797731711740289553835919290054351732706879924873557050564391118467050313506750291759652825133792580513804972746209405985981436586991644720728150104941735683536845611948333608736538699511578119533886897621397725727914926509038310044153642977277013112538620323766545169477929882595003425927838547597831302118999085408403783249194549423008987542920313975104292371602214842198791495884300012081108721385077628338268434566523403292024021738821998050930542188010546868257951528181085114915789330814996618817681178891090559023537008208665774525316744122421933376121802037816762063589947871445446014761181327624720460580523644883693157143332138720209231651576110197863171668112928949178945812284215979075570224339417572005752914810537099158115430653018121731513114975790571667194154232653942158661206691465150405281556968275314195345308857377012342411719778348621612913644174935332889011963115405589588061627138043344633758292328022889808011910129150177206202596150131955545383539258713826316456801930313248799831371943267655298517401727179025296262347860260275989354880151175163406786779417787212916216907187064550960799419222613498179964851380289751235332822088677648512314759020549689153013103740868164702408053877097317960855753379832724519850326927447753858376535043060751427754505659546273584054627466884126736692096721577718212829531407666200249071374519225407900968479911562904864457320908025985353044335078985150804161930608784499932442704568971586275729051275846317985380158850178898033438092441794144275721419650797660620113542506895696039361357456579255477836942217849118412874210739155623370767396060535584149995986136914617775455934017280956149979176383986537977732928311357925897016629785504809727085488281777406473573939213725938929699108066653158117094933464398071733110831809601932789976541647922333501735482267025586776331765863737256995045848678125351935031394500044644211667077517544987824893020976354602763448993091161001139679837273334682218627741720522726463378598043032565405886034579197933697887595487257070593840226483216383039321544450932195988454060210887774272764246983810164375063358674140331406841550166697791813786217534435129068159736251325759977708358877487228173528533841387410889183645118678519295692431491539671373898678453001789359159086943928008937189166617640638034038120746150015172246700225044829499264724159672090835805148264122201193316649617179921419287000120552327396001391228345408826057011718489116778554347427652555538461084276266042320603725274944269931907076993885526579518397678939855274657925244232749955018006838985848370997241258789170762366602218973970413779756463182188885705861806962205927581026012620988055760441161398066212202582075843628954472659687520721058381784898137864775943257109513579135146081170480760248199251474598146108045559877210522489715131942008190096589198370945748788612308205298921335259469425135656640881164357797279481810141341974918866115102952169003986014243630831178859858474762507771904430515046778672306798601560886568799577308247270278518684538444660221129945005803123161348356588564044367933273734261360176945018481318423669579269983374989997379866300377945485736601697090268312248110242194287258521624776793328363101254645989205241029702552063725558429065084338456382601184629780224851316189277128222729724814938128516162587230154906973372823698402423628149232587531986742317134309496491292895952291018130519649018756370170962020188267409456975079731438658254872300388107398439960847236963770544066468715314730600514013433512816157753650847685055917396246334775521937199828740521958037943355767447366514217129367489189435828173936302787364781084140265497802534460571293358033252218105570167590262765333907730022617678610315916627623492453902492408322301209452159849681104200704289739802509443257861897883116752054703805780067622504880618275678916321201866123584076478173310831322953729523823797170103555398053814362292731783546199923552894281278957665528785928152590925640660908703423468748544405341175552645457868357195511586411742893725559816511123015286304938342074075303760734315921089458434822110724630877727855238378110023371185875078281047184069966527833922922475882714860048609838206633090045559080438366828507641981057478166276579696575984778749544838655023785234478619780296664880186374586937343031216888872832186655153225822428439050369594967130947297417228617213349019474588287473473990492143009291894366611531554904617448652242862640082961024216974146181227572108910317231000184661694173467354428606613198483035560842326274213824975234228253808436057884822356433850928265515731560260718086403198972076885072973416392776470411955193127447598179697694370515209139843406518843332214099785694369433098841787217723013789399037707390732793766637955239028315104537014117563661381094097088349290358678167169594672321583038375157876988128706371546554836020913562641262306727619904523695272147853600728602660583304683022269539321428221173711123069806885514314689707616385123346953546657068995564024223606389536187873144348279104925190687666979476392778894529697452700213644921413859405735126950564891142560378745941680333820088717501937080438632286329271443446470692411523908147207706915017085771665422425137635012188597038214253639383140058791716995277438686937674471006471230376519063519875810134222072825136194239381513828402904004439498739708127204296885720075591962690778513307783586110063761829291323316112584477596888471355874775371241369485693537003957026255478981997866089228997432554093039947757140654617699373926067861672405002104533715839241821543888091162121201742255794455628262430275853752854025799945647035241198866297273554024470880050018094713651505365143319904683837082127200802346915121443792468455874961107246986227042638578049643087626414093863739509741512133206416962797500707939120477058367775934489756100734213937535236504583491805312053825787552480911714070050874940887220961640835942199067952159713351099325220186576157779961820397864507287479378535291746209482573881075313336345997968808942711844497395323884672656742448754045576469983474174131828361736604530257123781251995276468218531347834511926223487666244909083394187767219793879316764154103308680961512427400143608608188366714438866098616593665525235195600863140416662363947668634377211984906070752706621115801259294786542963202482110943889329125461386261108434781184558132189028784362247835131679623617857673837151626040502562653087008747287522229254575018895662638875202487076962968634362918375777626776850443937197805932188065268700395186897146579785500531535434245895116881557242059389040499867939223888227036102012345068963744307521339206343531987441545810115844063715023908734022515010629754176844831953470772821325829189062234916635016893610474992374518112666428330447053643061671647504567575573548386771901108750478479606826318231711316332124584563225347984778477812731711433636570588540553108345295952284453668079701931268193551077111392478593701614124042808779755061905918888049189565231452567717548335194176869776382857717145718606926307852009684507922983896123810808609326507442653236529500082028993828016131769775832321235499971492322247750207385141376634921947842387788994203837453039212874388107127189025011391812675397249342470301460966624675932200348582148033412578439311429351164415408218057426192712082805003409950105032961507243896930885026804368379916542288104949067707881556499968780609343362516911461700950758961144873795047372930978458231806436566778532381805402112179873618266860124574190677430425967245684531364081538977108546544720808506188127223111927885542237926550645451949130591862217552238005664915903368336953563977329043357717393748147477008600851730587010783692302263137302072791657181632651002003558525926394417584236329598555070367757402700787564503905816640022541163357129784878684588393565155263739087154881383088665319121850315278814324588933135000481717982010829549121986162324094165305796099193130006874830921036282073038383096072254520316015057477866692130968310232030295605053248080566944912164517780641513537762271416711813968630628313064106878903332528757406797299610843219217013974534560532394817367487014130858557239831130291808690981766124337655500126913880049470834228547809741861239936147461056176764392593124950541439749172617858124326685095844678405007364165362576870382319280184923741498901392389442703612776822957233268885589122042735779764086063040494940044962485127660566104286171880704479786584706180902399982468999754461011907160165592817957119227358650398770935508482689245958635812442251066179086652871825928876941115007943394834382255142304981957562220121382962171858594754244326449821432216755190030756661723588308833465236278979696002331677010183360340894989455739243278797318727301460457458826414419592789415905808791393964465276471432512539885773838700379477378121345684275325163442390290905328869777747729509053084650008387721666707260538460852102235729022425888138053058780228540194314433419622642972166084759955896738845319006926677568024985041068336859421542353729753089270335616647742818260715320370388927724711682457734360651062520417503723804871355956843213436033023519381409780896331222708130261051244166278322444750087059905508622889329994583607300779219364859925117280725987882265964929030934775439993142161862575141790589146049785942852438932124056764844451033713312314446948207086636024338228189961633606506020907549796103140666331318487069078583450762398780685581655028682587061171753764969536031221692670303135062460305053020122897177505523066005358657850261771413879661415556482801715011905834176188373994156256626196649607732525131112970084342579544510933714330594976462619225924181019636301905912778971899385282992816720671547339914386397381416124505228423301578401342332942453437318542281085634668719158963024990217118041038761246498474638233920833625662658033762983667685984009121325575314212837214032854105346370446618860071754266078647308011304132119687058803050351928883821736765080453301837487621219862644963479869181152465616247392104428783004948313043428483198026111779484665268688769931857728745667257986698483533143937074474934132405757037172764001922921236508923064227818365147192278705443296045433492132337469465561555497338034627061969789451025739289542193843764015023048489102500807479701264740051521238394598684258325871142144459641255779877125789250440181821173207649582206919366311972690191365920808509363886051802311112793389816433725303183769712435741737443538891066405719215644987712291834532010418474419323423187890007257762841949872588871950089012522575285775405037782465490370170865383714179050862013520409211063938068452940812538612236636174538841097876945661538079728584134244424683502510978960869942447951528104710395625066248479744527027526367602108354476031572120119852226248592321133180013989512811064154371563647829768858608150394830448878189395461543915182238405372573751848778797257272295815889596615703744729046711260028385969622492731361461348066895755579514413868714513095003429008435351272883540944010416581929054731534241490864225856195169900415980850229652623496095871299818888025353351688207046955076535698889548030298485344248317171680882994084189465665106290965719601378351091211404360070768210122310538580740793929199315223890320869692176869191802770574728916612597607246861484731568226891762338295524022935749725462901323056512371341256117166884210038009037566646035904857781720337029246297421359972888104904688731089700144243963934469967781549036450443940858336585163741842743451425545555936528491390497322559758367433064749489369921995902377642370409584099318441299161512698302484898680723874236040870461119066953880375691586213533755624851757088843789882727904526215280674031686000420735981139866836235442695191858844707775944332624773711309247508863427237954980796758129144946983044742973857940825566490413286281144429379689982367154678734284201254746074375484586564479579252424424199902902366570909152982675430416306340210501920120737878194215349031089434993898682568359212995050751088395742909138015394080536527620955377032151297387322796271232922203825842226662939019014743516865408810336224513518194274246579354868057173289502347546912345026367215052366760394513510141689859998736284554023221174074550157125727401785021284856252909225333377243770807288971716136374000534876626225548355865195578185882779406497739077583925489006750724959023054818650085283305946103133456482334596253978465659326743352464146899931109896137594171063278662248582989421324802026277499330533778741414638443769607678773699221124026454797347014554574066273294622931072545309822282581297664199824791839501625369946456194440158491928347387901360000191295165618195769897326175328205250790778977232927673919424815851548326786380316127034431030602843336215966237416273541811655753301659865781694174558627772511263658214519426658203583310536381776454643458030273155550795865023594833602369454757954162834703096250696559516514465052812551305527310037620788948948930446631999348234491538389526318798033948253400289046514303992960512477996117091179952458569863546302617139582234187773988389639267656295728778001540848930153716449261541354207021401838278137568759267575318186364252583440355211116346622172761030052836468214507538042042002075265864754981239202192186212316243683058219665263323336205290869410502588747824562953348920034922811133385819970571052094006046001887255815680950467829942308815277858864115528088594452223970790658631629590440642642582749985666489622093729751722091101799109668431706053339594521923930319345696843148100377785425178868675059557156821188195258274195373163980908125353202209502632291483500065944376538401456491761729579371078964248344022732953531811690646476001416339633267307569407522875858617756909899893317159903184073309477242853645215036906890356897965902540370668370130679493284216714327990510757900566626444616022975114412768191137860581994334511148970915283060129324276577257080737522205189427990348572744869048796930379548053340312267546202784929190684800729211375342258273569292768162223590571735458435250420623430298829053426724011609632908807701867949533987076223171703381505573459193898548489820784043563246693118118901010889253103976788442855214176655481968661125847607483509911076713251711887262464283660143714317845364247488745941623134694195675846803248934220166203793161032683013152002338959664087837542337792920785929924019473694912085168612573854348401563213980797339231851963712621639101389378900230746890747862236473120259461245623669252203827419057947937513046533890470800959087263296187039902538533680498802503575909091986731124880961414294903965521740367103170152993464398770195989670150200043129016132827591225965252971726264931156215040349116805201409616605384865656002344535221326374202614246594356458194314451850130192891466165546184641783445433041926769075980057450166081717834386164736769410308288266447300403262141793870795039140060125812372265895604987257957606309493760736744372640061229496036138874172509701366817941010657995347339549763752271442501493354348120008544299990339910529842052138351285306999086394757308868287882733374689000587181881454566387460804027725301989570985580527654042253722369143028511103074429870947162150547813235389477171034356070681794958203215587993279625589514520193061984900776025169947370581216542377729750522712573701706042364175227823421445794218944809215036354181421381434262414817160167050246747397808654245246944446120521379298630713041056579763973072376452867884055528574750903969700453345045756063980160703761968360720859910099660588151092067473219607604695666856393583562119169044481604637886536909368334831069560309914159112452049724688721686776966963946118846948513335908330366826934379670397330090713858140911242415610645418077012038179056167038678669071721874771867820552540917883722569477478533483175135265506291622205604081875171850360155714884240325750009734932368835117810274190720154443975259284617430148791728032785018969806338202701120698989305660109074350813994128573802002388981347767301194629747818173116095121067828502677665440253989281785631678087013994876780575802067898639190442199749353470869391402358077874827007457064662805317763704885658914499417416824482394988579902788078340537720722182281996684104051880775081801892484400417248764909154095449359714299542512887976551754472219269711755716428625226573281620913650226089459650371163188241283839047645042537625626951787595663683379208543990183339495292222136738000125767591722893537217686755328916912399355389072248811617468512187631028694442691116650826466252715786162665814939035735511404083017711990604674677123084127074680744279030800201818097208851692915054806023307609575704663015753214107464050918806323772847130399389897008869782942876546096114007698357032656412799106551190465038296898539928377074046945655840047409910639167552443788794751791253207253038045736470595224809383925730759093598082197520972840742190509374283538359351883661696505958302892107603769143013121477101968794945981967985192811548820656341216242829149903382277928576523409776206122705525216068305993875552987664396063709692502108047170041527459694458983534505664847089088177202448671113000114442097144655640851265536298679287631191154226156096701170382304368497367248080874362636251851192435473971543559009199790522653751797138461108675512509137202753843322109345261369261390308367374926577535684660148095955699025045846096564530838265220344403197698459254827238943897465284439580004770559152578409471236798044738103417220366214510196120957378485865554588510981159219191995898418251472721278823836210339471738683966696809155648517964493221853407906824134095669675972137360680120539319438434848883185580694849709851685261613237479952271576818815420808023181847125387025039319802222062066182909593242569349579454393196560882162778184811304671990036626598679872284172031075226037433973896355816735944637279743036787166006932768813155465572235918799046679110253620855007620923552977214798178848126105042674092880996868527806446759741480244353490811059363152446222361212440037369583045080540279194556420052300635465560297984038192654647288661159597627278516307263834276813299094277239089508395082666345654353584000221876181377058927846079311437172750578200429062008909498301403747701858587210116764936805586436379316773916597794919779925542527268720147653613757241311601646349853137507444926109486995853123409684133843148438553939482788244721842981212308931756707185024284729542829395122222832107381979119548090328018428125984943367648487856075471589634160018074704914771350596389667584839054228876911346224313107867652592473987169922763645605362898132772258712523910560895225745005765598797336179918316011492178789233263796675495943176101807826699120149058971835757725619807154157424900287692767875249795526972581640525079421903942312677756826617235813563621884133842849107114239653414235647935612623634268821837556524889555555258007913269499549927234364488983033814795974431121138393783500491878501738760034415560283093990110837544108386778771832477365860781328361935041063029505434009537485325629028192753009130581378140821374852179727402638073506960328636886460557976835283708125979968010357761061187483426155432645712038445049902439911621812425400918452977498951695718212694633947823751041980045703322344778578701121647873027629690448862185035587018461345638373283843959162139343115502038858025546516252658194970049315206733755320145430943859842705592166082708943544723521368513403314155541655367146985836703708264540259747788326453378492266018684779759112124450697862742387413953331620732352398604749125682767015289764354972107467496431594743130832642937234868380981195854980686061116670923362731976940894707622522953914454379832018503836559706845364752409048766070456907166412929729053815789582818655632525880102214981184356378390315929575319723788282580181737885179393938175212466797667161684503157181555039600908525249510432936910463155778511831902788535357942690393435051184661003595719476517678068235196748295436523821701287011517814709766828060967891122296994274606842389195292544099991533077479658875538698963251501610954377910959667886450293053813854103275582487148712236665417970977174890269558300899877008296083293721919173243669639126202363515054528038182896723592842496946617319893726986791800416985046529454963223677223438033291567791006342319386274052628721915641013768881194135011784374654137787556221252384348570336927218543722466851271383993206828105403632300722349988768838000596701199676573112959317348034198470260310388106737713388978845669524697642142779602668207018534836870360485316370824987594652415387782434023045988455617377585383620129633257263881375309778705582689333788978724053193691238890727487421476796500903059706115724471573964282637101306469197389399920827926232228230487395092225474001737257971188378091601945781342909787703071724534529242980158377505772860280102411120210791387725754092276240343722544541262196582592151968651283556661109808634201672398767710724608576096613446810605182053592593894049064046267400309680766289707680914956055944264807368656475120315234664703978821062625357030734632030986792784698021996190938425014147569807393182424209431160007825523573948905204754988740347537946549171659114450921942679450303702616086734360452061972143290562107620046857839119871566277988782516900531114683152599576626688012614423017820296444841804193026820377410201151023533947350979798519845208132118438931082837607427545273877982589007899850678144184949213395276980763542245724421201397843109451263244551052958790262941569883698479784200099979368445289765445654208485341426602292627186943837179550796275620748113368318101402327097805140186982994369785711539352965717219121898210537803906668915437769814968134013623011174614834022922935824242543607990843847229780221628119562618922418931345021238028082211268078247414713235819973539606006817126835468478499326696747074717507325559062287953270334001278482511039359642442793023387478568730421324065518888552298151476758603841371472548814028185272600432625195779051901350666082952753626406268776318037554225745252497758049841031600319323763363527394715268083250283405417813665353031465959019035922198507060511950600107171614182556448185164791367854062289914635551536985363048005174747516126435126055184401027463276413302978147945864638590852476646624687658691581817440913040352068283109744085488856068923869816224383371036221057198314217664923516634587685512050845517780513867948084724115941684259960733208322685824056238840342722681400182702481606834897403822059552023154733793877620788085194768017485267365089693798087624114458530114171412235233502501329184441427444003051460631487509258448457270340513064256667403161751479521379261048641565008806640076322551287800562974719539786437211126088235800091195863022000975907855234223060686129030520994546742189910191464870823900443384407288997117143388374760098284233405116944239344361724956195341830452392737438337363213445730513084139452623006472191157271231913000932205468947501904954843376265285103436915242370144137959562440362728739549740673918569139672507195694342109436159335248850186349486639503829796921833506077117156648256893581544405432473356765510807841251667391679115377274639246010935400745594979060684359504427869718148905838338100902107135783385488069820569769979989561751489728690806741057710090985802657362566416268525428379202197007279305450259343134219960156567529327805678561226787052907963998868582161965586794086420924792064785667980543234185178365010843702233380915076558409122993193788939152008364584091049918547261373990026373006063963397139488344826560615639918999989801053514107345523137316118990353992927197526409350641610202498010594268855522306575607723729718321485927653257207229448545540590950790637133251294528473846948778015663254349330444707495548923510696217223106583402560340922912440413311283783534558606648417882519274510277915260228268104079948408662333503474530060173617950373929246689106185669060629672538371264976640288577870064582272434522427758954127455403906775171882124749742076852478490100934007538206915896855920745692252043072419660898831841516677203902506746433481043928584538390591422621285619458430430603639469875069568188637172307323162740819541887314278784354053237308603592674867167851600940956798251908041256521113657976903320672966323703023621241734851342541306015579111966520726014933373882886288590596580574862110946167914591961458744937994845614297700922374450919920874665420532264502477298227360172816709762834103116810008425581159108144536939332472968916709735362611165653131509638049529360838583051073117783214969039325954828491484208075984479438570588986157012991662032028617623014327925377499574549488510947770028536353883532796147833654047736697580486063472149664661014494729671290567973868684781594141040640058808461645765024068230919098560935038947270901687520581801298068701771879015337818254882561467779690602193169419289734730054384768430913750367384795008201610263753276633189685572025578408134881145603199791473629463303629115448392303193621820113308271397631526063327077243448006501183806907943201018187963581974960539975742385996362596921518438117969741968915400838581458169251471015631385597305539728360480242056530933245161715048048379849234637525984418456040974861608538696139918336738339463599143737584608297258181074783560036706206919982032001867249832378520138599502046610349266034132517609810337779627845558852014970815381923700226967353609615697092917571241297085676424918771446366018204055413173843623109491223045329259313172013444597348639441924360689119539518996062901159643353714852713312539611049836612253425406282045408495116899446338780182163123292017661020924363128275534291126160566051973561547841904131484757039763823782631948504348094215560883595334931315850479934443023803803534502855620418376274277490614772455218706567838654947885219885385535915101905045264435172215923851659944356248112311354506638525735829467229852307764954886804799953518505480296176642954550195491315659424470597702202580717697509532233550793959706325679851796568805077510160063552720440659748767719198872913897043188464915250328707343649610640249898367977559230696944204246601471940741041367104003795751938626155450233882239659860897003765867609007409427841243852491460014556636226392216016194564513117303996317230802212519460507759672350244099841161979907153438193238926055259436744613971225693572934092594399515120557109895715869398226468634048814811311988089544061218164071445285283299409229913153368499987667141088124308754084447573232239765373415967498223225013609118175759826974480805869636234050307169751326532679343591581499779368076466842502832776881341861908187666492653352081948542985857227046997910925579635651555336042928694921674785784154101802934560396199907019377340217573491857537550117608844496965579757514357104820820031365060742685230756408742859883377061955917735248505698157441646234145034562775516110309372672653648372816417467089211543175556438999116921695865435381517629666400834845998468575579711130651719189496920023130217976144299785709623388429281118139674429669327793664176206212288652954480277868255200181341663590861375757674348069333543772133137002505797572962225175302313185508663768175331167189399001333155140100199019647220874244266816431299871112393155268290691772446453473534409028244601383141469888565761360203358823745483961712523602661858550559151154100888622010888263755674684551101802618053445806183582992718111848557140202065252935934816991813093710060392860969329567928554177482265840005075635868384938382238573085032178261741692963318686964544004315262166378216420823404613114012884709830115998615968197016974110516488841052651919744098278458127250760443466985340356561059745571432376014923317041233509800463296959080642622590496690590664698309244134807210159663052436262702329607223128347146067501934787750066756343293863801550277577450377110484141917062160498276544718295397419666277601029428889909034985089869132068731998701771813370560928584852238730942994934959403645979219336565214039355181763230531971022084519152756767819436902294235823918873373800217391988918117764488519098446239231950790012477418292743784212452732449326059422205613037355642722212630965349058450357974544400559195421659526298770199164655066822156016047566899194129402782410811106238421688611628509045747088587377561572539181370144360808170227934605733294495484001860766902470190923072283815706090991755407738577160463814571388652656148100698201947964180214883986301253611264203107384974830763469143080213858768422436937050491851072658497819949431582422430725859190909190136349476685171752262406568046511463647619532052314915092303133147765823848187855867970590349441874892406412940180882058413316980969230224172344377901886813914652050370986209087242072586702207706663479400092659016841689138993982212070562935317686400532696509249293890917970071726522984905953787671214301228020121915544308427050971526185192348600904284343186280150495679026409671972781642824531065317206344541852265835847772652873748481129237480607166687616320055289441954608474085059311836650900407949815454405512313465354454384355194863973802080712545012883811519057633048082404002455307694851225628893459458825231395235273855831399774691925494102147028906776818647034106235741951250623980872678699785889479979074478943823442754267836288507582953767691691118486725272561507827378675994055928568805019488034846389544704663702705043912022565940826158039221148275505401922728242317737886741596009264729521764336931496414210283074613585601194489251782169624817511870314023673165377146971916565225472934703251883816489784537603746504636593906680891956399470105745750122364624104610874258179669121227896492636715876959525997733244178383898958810201574596745340977402480002223319549232513389491755786966986536854589001342583301088548545286773088789109650832529853063305199234935161971044983070663407077798148354052423423213771467362080439277659828481922343939720058901526117362782589579559364605596260147480695271725313458312859970505247381795913900480726297971559024012739781577213927079419108546337728280688225239947059394507051498725725614146038039228377784844223428552498861447473948151319691433221470465888938837459521519638173864023684320237822415247651269243679513904127675916911333819563474499438524385124532580993437656919339604482925119488836918123897662370773888881015415595171536320781333152787691873143376919703381237780999034537591577754553572993104898274360287037738209956817216344708257259036345210352349282839498732522720464074728105418306025929482144305476231922093760910762556805646538809136877371116231604984110334649784879140677168262710194572386472655554771930980178477000235350458377374061111178727579130571997499319798833350993750610250290959472981288370865484158457303116081606209335151338499212366309919089770254535706687249747145059972383516112268688217064601562482866204439000430401918228554589212821253222513581834977662440652618691972319577378614167661217270795133869553917796691449604379151195599008698635306336650282728453679142867229519521629450261665442739267097039668162844878954903380037151929032393001130801423535561707323681917374245797597595400940922717894768834403684481960490547486366032871004492142724579512704801865734841221753248899817030167681429206863894604121763897077067641243357375338096490905365619312393339924890952503209875826831136968572090564857725774741256481684928997397818950168586350640198848765148322555101922166199289522055150196536558832986639045406204852694396263085585817212539172269181407987482552324174100522664431037415425466100500804729820500621680728445134956180470180923666096078451219621228204721751352280528646025074709705864946964736265380945975563560628380449672836122846773367534521434305963319486564572037817591522682354224944414609526134784226818364817782494214196197700944340774047096563142303554632963705599028455722999424985492034854446900316792471749043804862371434744201994741940518312706939348645941975761718112091508169644086358719673308138305348643085957392487552738043348377032555772243306980610172484593511778074370969684897665344398379303188045913630897068630753967109328383860392242369537829328820299332314292124915816608069103611921799856030829649684700186790850468304597702600075494215828066688844492235670458073885572981150240824818070024366251963794358609685949358386933771028973911300405336676101229385147253698388463595529519056229623297306459053735761218721569692105875575158153894660160338201460728291916929480002471439902576583251982105432530154444503787423523982297432716347000668043519215465742796197644643182806634536525528719848600013699819387172475916991820991477663863321997548557853269512675437711490687570452230754762480983484359777602555100188512944516306365126438668853593999611729190771285041499604621793991128051204791678084333679623142549213702384553963210135568086478468287563851906152483040266036815513152179951917454963778173764964573335981624014454223951933554322665852966262418873595996638471383616555100062449200522315576940466747172859490640256499389995120466265358178617356189102872527649299599269989943578455004328914825354970331671280186453630447985968707677398132016892679647926394313757116065422886339788288864774707763247360463413517168528838812618000255490444090096107289460010347903493152117119920130458858074404110395650589366722452595111659600045145772484955905724670863390959262453968036187619020902138439315475696006657572966711190026707074533037408386706696623203283707464677292917971228068686329638667390593601262608560508618042826512438347031723283295912280268669426226472366989192215327409694661081722673737877230678094009226944569845719957508250321262879995249493681538254706898476006941899506959091241568342895273411190075974887291148677597258148863153552898196410766835042750390048489228278689098133110996210696625715637122813508178845564393843651410459864681358063692047030953501518411710497846430028382696223801173145809097826918551250015328690516955558322397896069619841530969096566065963839235143711305679117498702115578788363661901092879207678959175200344636023506181249665638433017590295482583064826217047837306650613274342547996724834281556210656203277964412927712226816223842523106001966915788680475144358095843022795970829339162327682224727168213699285427295005724712010282299236096399047187554313268202923158492868465535611649433548144932919458710109996807299446964484022151883979778436114956062546774872186355551484426383210675743577289997074500061366712430488768980613243876517332752082367961205517610863431528200102063089869810943802037613989207905230527608228481434184288143498402109164475204476271436954640653892607228072075891144980821395592311616767723839337698523843017069853579392752803956138108186815678703075513085041665948355760549386346154258663389421388545619140875426996417589293390313840493485090356167203683186392594887988049551846905939389555291489683928042748841559483935249178169252783213455503223627343810913124280960591230842577332108350476721049796156786015558846852668252787178812047181008438754969023177706068250443785450297639327623657296112056076361596943988172146089467679307211357932409492798865604882706821355704140702775244304067567006644915029159062544888168307126052414452665981252868028760640132346022816188459703952094106860635240942769032647502990466893931327618591019322472750546538624244291634334999192501121971534839461263768283307384700180105321241961183196875337708769419894872241016335368909471831619428262467580208905117431097814675190753521908785977241912384730553948372303660564579440640264085511095680008053779443216103928750963143217502846263748774270342685050729924461699379058510888171855047118589066008372648813867878209184925684772311985541742588682710567886604153649839411802097109710988452865323819322879785312575010040865938196091292010825200808518642987385538037159770794695872455615771205657590228910304181975406551971430520700977906840352842565051507105939953516129612753637008995311364146467166612119541768128804669862185498090602385211009343000663221335469002432955329461363962766631000518586038008818207551305861124973324707997082747904112433071658548679171974579987533206311708423525192193403884412246673902158408674491379511645777328354116421649413177509665232168466807341212133881867171081475660190556739265631961139723756985580048547909218793220642537411318503840278691727374863505558316754420312712594217888296297006319518460161343220598648323510249188875580659420028121562755153601126774296277248479376133777801634922732685417440397510521936905781350767282076096912233740393098866277289552178528991181853377603213286717760369100286658149823311668300376379203718661265351012376179466380523967911862123917194226950550995818715674302124395392883034789206241061220954073174445256488464739814817710924358946936881701718428042895617704263239876668763247636997585599298153411771441494693555732204840224544982561089857494524504490385338866365980819303182437493885842905502046167602462245125708343202293812888828158777617985931843588013812726606917417020045185235493920142990279748624918653708427386351999163371245665557538597524212414383664027817966580367356181404403217936569302126637345053231133191736584222401745229967596689383512535407073857426733216776358393425275763044085524131175768909765728676358680046205667015781216193509664231518416255821570552586375115004328776785110647339111322089725630247565200377100009947037663826046634647311610326739960368150895507805693357836812467103036702239462348409876797024142427117945161886871349299854010101970016329613328210936778033598152604132733961989018696372582931928318988374554250104781667824892431097669602678917540887247156856603145061306354112622295359324232785410420638149581836739167594635424740250025893949229565209810513902264631457372431499627669972939158245136117464916733642314473807157836176806265180477697970853768806030633003850408342691384134369572731329526297421980520747128348739724335207433874384314887280329469313890605196133443395264520057995720669107835892056875559439957534437414592452413063182699609266952696400358321328225432989794820533428449580456336382653773890896894575581505852861963168523800641526146304308136365762823910736759967210539785946122455883376426368658866941575582698947452265590657002930950638260190716913201825152747121139737634065531619914319190925732886988313780756034688213744624332257594128101102871694890843233672527173635979914099240601625206620077127525699652859913087374359134111245958848088760507871279958909815516820088151413807737888643939008087086091737908824541861726247317867969247461219350578219847960685939003841822949243967490954639601323497396516765112840845426864018124966859921405856997997313091175163935949158405645901005792775227619774382447858735560239890584713914104615913315601382647772117257183052986128283577241786780845492358481438894470699664636219843200971537081152707478814975024867361168927371558522563937782243959642298986964319802698320796521238334383228603539232988043561806650793871089152077853368329908495575588384019689897090405554553619954413346168711669725168394066563923173837997852811908920877887189335036979142962775419327157030063944575503627160267434405384911490961971074247324566546606501137759356849455499339383846875483224088922922976768471480372943107138454619216514378521268368075844506562342207310412480152386414798251226790152978900735310106780247384173533342773051548802907378468986134440131442830826648742577392987092724808472933914785726887497856430681620855457622581385348736336331146540501549986659706367933633431281985932979707252603730085659976628159001869400824711204665580376084032585771434770729765848790824484580389684813210703425916323582618278668249262729990430560727707728547644554089695324109089644792714287542138283071042900415451121751684137509124480371785582427393124971199689080198662897264484106288001403421274773603517439129480366436184812113484110400763866107372657032105854706360854051428296415717968468894542778802097289215588551690105488479620214507727698016724988046224403099721871714753198022436288599874903722978751266163509572230593037983346333816480084788603392243409668320522828165461949321769118369649342293177941008329127609714027858452076220455304237211890024278865797937431767317256596077389043560814769552130276000650627272188750634544697049764831926992324054850641421182835155129356010669342748622994009264433833000879484953201441939577472129998333263549840192626636584872541609459823963408128325697374293469774768499664763336408312587669982783013150005288240474773899616485086153816821005193535548532029842856509735275074056300236811643632887361663443072419977135853993763625941996160396167349029901323834297733809770274420687176011858089927871451518034166753400131240775118127051499230668882041840418047118420265210785720096104370077703860920592287704270198798694171023153197533347606435371077891812781717486323865337482540109643024894215876557416051140881208229960946441266378646821913405944165376044360238230879236895903976344548833630094056790862480634060255153423532530182627216456947493615088010117083435251351607068424804370482480977445299728207546144939138795035664259709095962700333691752710581965320446938827668756229571770697252860578092424816695909445734547123538328797355705327981553483029791569789441536926735768811690372056941242145083626625936874253592804831579577967924015620939781738418026844069827968644233438366375669290739112832616776290068698710409820627502948561168075805240274617560863929231183361186788969579920259430024671040933713126583034093917612692142380564516257331031879358177415894221287938545101960413337714577795942666075829998593942170317379762417158693666263251391817197351758777577655549094538786830869759491527123106175727087317439511411745873253323977591902036640544589422502439354032550554919298604332193142967182678667025242607990996933864573082043375339656089135879895376130383124332702481392000449055343316954920290497705116769121377145374392291604617573864688385434547317625418866302475690060158623472907060360877712108440083499315616810391456651375341662745167718480063450085159100787416672917593453214231637779257467100584105916034136704885013188830589095002245627909939244828759898561284277081078787609152574718267395356634140996801704231894429312678318912557678869641581555055700078648841913167701423062906528873979044454001675658491844561936081040670953003619209332098040595811769785782605878676148088976697591936609539695168877199063068504156576709779746599494475036901697015418242547030225075805512293042850454113336935913524074100359286293536367043840025480445364824382510064631410386463549594414012619549435927074000221570280143671281607378111682969092896446628543067594387021620308776633470686804128571495929473779133283127161112604570583906978751751132113563691188269814176691915842201748137665154366887793578759449056758236975233099398570113373945802947680453985765950050171178055115667126487055919125732613668232166582400991303030617313820207663727973921139132445857850754873046233384353029640057927749287431766621503517872050011520354714656291852707692494021122153607817259382529813039532385361084723086735855527136659050036554480172895044128619576176470679790330558479130101979430666825935605574059529982296404565390691585955727411222384343066183976300554722569222876315888026032150871304116837747212260583670546629008234335953706389204178025439384831303138368801645475108629117442514784657426737276037487692223592273068732897162447672559232436190418319209305661094656273429915762801179087517934528837069626949301425774540395238431845320752643158492227210299932172460601351689070387547017336110858586225735420233798422640294707621592146822519945021526760591661995294614504296738859310081647930234940999225452019606221390855138715434806483505026980610924283703132669886345066030540012711485233969014909685025660903738172219516192829158391710533524064453436763511329333362209132330457335360998537432075827951491688804642190238404982393101944919479182272134817830798539343059895424073257938973540556603862789621471298443150836088765354874623649689534595252366249813021584055219634717459752364965232277836828060798963812387383802497818598186761582073697154832042009416888462653937066361511700766396007255014236659789026345000145029750758817056998247129975977834991001222684225354950295183783123338235868275181011438816712545864876482577647519215008947678027898131552486177136295918299326460021570654089605406435884978996799180612339989044551842236007785597980174036479876503348838270228031577997924591232050347343013777327811971355249446597121889808684853337420279029658433849658775391848804131172873055055294728135178251935913421289859977679259735766180617354361676767975893547614365421633840304616455813859319984700703183201774602929829152983277199604051035297631864427704737403877535179675222560332484912518712407423145161646338978453456875539980635342591570001218796177123585106159013477902458866834311486657587664988948885764593258860416137350207446677743673617247087276337180117150582840177869477967800549540062221948324639587145035261072608559439235924568149428053051278901997216207320740044460838560119401613618457790681600471723893191939838103113286396787400101248507304910298928807807733020943480854406483500273999714332324056413247608864716713979978249316149304590227729761882115015025722269984331951724833943817999206926039998581566055672678343285298361197856768976007674431475378941593396027539905050715142671193659883143263842050829346952629789945510218896028965100654312268145488218627288534719467251997480120489133025157507985666545969734331011625610765167965409454408003818134893788597304162101743625771159221557584472152950506107055561743952564184031345992280792021926699211511505813088527944689337406906216090155656668335298255492586505068602143202739674692612019370395458907865026118426468298681996815676931856509456457825190927488940205127376641145272283825380906357432057302425582807561878895954097467283359044504747626458705669970006425229833315930631047787018401767748854289344976802056961600900939070692483081825156943981723646187231285326569407102218067275529138782277737584072962436234599110410052973026109685787702173197752045314254904197365689880601290087224665757288714605723874535503294392267474004090750514161340173042791352384121264331846942043743814626897158685358597033766552879564969478767984229911757242331861113210107261404858406382347092576877909164969105088256225658254321600388330256521953102454183336427650575288337201692214565704704306701728827848765753762483122932512269505446886651068497814281520946060145349057330309839113078091351638431485879102093534273962982822126192346285562581426875629653097867216061221741403471017608372672241858902186155677578459822002281004872656903820253995550727998682600737305662335189233032670572230632502677824850606704410770021039666963067040048323246605657094924077991850251133288400658205807311146230452429874035952768059202741015351591899415472657776530531300063221022732880030935072288162570463294715391947328865413854191058678812774440412349902249628368797284145235129830866190814454692666694784430882542552967671903345532561986831153754072194598880772854312825231678546913431746411408302097930127708629330069695221574616094126100194492391204056477906881047348240884800193935567592306794804794464478760606443806445542964737011430197737892220934681263164555907252941797145787109974974319543556437716268498438635036366762770118279197815327129310664489153274071829696338841937427865875705934321913679514330683376501345921831286219094543986690288878589714138349362470467339453530930444791892549054894995712885012789811878500906273437819679736279016575962317827024622194896303516404953021141037281135881696333882870392213458645200784820503344266361094609556205569150046827120961080672433233637593417261489134391056141493901100052562171023792724961226895682007053936909562292940924683039404982947621609590879050771808594462121983039247245635693083432198815592727953885673161343100865836340777055514279213451792159239416147433281975046828736722037619299979491018480153247554997924189023156128252990661302453362350149550409466117615560431814558778958642772356406645916263152415066613785403083828169931165200451046737703792831221349592353059234370964069654671569177003356730670145554027587325662110135810757311764297845861051901103340437585056097344496421601087276351742280867030439031969735034670923372059071233574029172166920794379032681401042523155842864635951758506128643315182793435369569769275530635415760654857650185604362248100367588434154766030235065018857295620284405983713086769861017726167162080325281595857983611554584224189445361295773223551047350255612318863282418368695943131832571770931877616688180226315376323664012727999190395815432867977002967897459611975753337101320097344315294062338066963160134732962127771993949454233716136350326231956618201470790701290622673424146956220615533380200321477261647874017611220673620352228800876752104638178368556422387145552631818078026274068571192649941478059611560821508630524496029197472657126533800933161196689141876410596249449978163853895032700079982765851862810276075292240365879291881084113390049256427373603058744991446820525519321002960243756984055913422807157094295514146606661912600971034719970901299331254911644162500897075116117524933879953602085126423188139496914829959730984537319360446102184693197987487655605827896190935427648426482344348706527424424340033394676425832398594716430449829918243288369113876978045553095861332418517352392542372043232796927340300804689912813478204169542159359467742382688371446389080026421503563221928007420438922729817702664214876064305987076726568278696937063378179436900281761912213844496859869732790273817839646100567372094084732059514171774111343845608765495314454475260455962300353592004581771066639440683320041895296299861846146251320886087348108844199720888017314215333939309694881383194929589485624466936927403975883521731776340810632880913636968604441391963106790303651142612656264785065764114543499228175721266145130987594126171882206991405024748557284677763933121206225937322283571927659035910007810302951186009235507946368213562360836841355366518715806645015531857240801287889748043654207047533011370839076745622375434384357452226488173231309764614475668355579251213474504611018359943200131200565722380055688229032562013516943032576903054870827112385461046271159445527338374332971426222824209640201489620904414512279583134246464698348523879425298075153544562000644417447650017687677822274541997079724602651719025864102948538223735331091518978023106351432875455665915370085187582510126552691469807571035390452730595347697430436722324602984276382063690007000017823397620909770075781237813543312239316714197207648523228367927102719439500724284739744881332455109496025215978700609153746318966067910822813513431613243908390478990074028527943084597365950388538690336782318639573997879625288290149126011592925387551494727331409224952172354470997243309027779400883904323686406905662512224052806923624407844501419786826536389456651902214365303853700670318291570249361604217606354110071216450122949239617171843986883640904135051059844470430057016258608030602652669480677201302132729725375926126024550111587810548672084953491993284161599727866714973964782968542320540804536861533437705132294222937652194043613889655865311546316543105045908473354251567039487340156762364135262390086921867935889065479086474682536826866447283934620527344389580716043039978600627296848291966457915001838864721509970720636009113666617153809891561921182245485761123013822761267059972979628663213814525698502236562666892873995224955441621424388163353959254761544736775664102768834916235828116703135381078364157400567487370885692195749557135693547220711332097272266044625517531997299309177483768316953258802570816615041285184798675362319704790193295816070876935388837172368223967797012011736594803115903583278707478236461270728039337991440213972914192015605577025716976216201863475044029606243979112191917492635674056258258414292605183301713150110364969193848102850958981506885835438180702504923753704317567103657877065105816210130918595592044773660328277896145914758456432152243133673879918927839910936954876316775999525385834522781703123490419838098390911559958262052086006827010088859571840354502439904707754919463666360291006522767188144591110334249745988765019342019817234107950780031756723185694576091409818705198866991495804213194224175495927323670387719649679522423057498688594258817734201256876547602354585047809024757309677792977918880777574741356177028501969764940113115234992401320331893009209956212504970082679403654166741112712155342197465507559886472552168574534697194378929153577924931368101253942674211174872699787671497148109310918052233951127729546097061912094192867974916833825555647994442542259379783764396411261169782365014009015707486441346042291233479772068996954108091097077900196571326959150627001317899559025504038845916714031737685088487288379173951844781559363479253890713321955288010581952031693120111130683032956085376114005046245386860530091042851348118161740245296379803696885473506152319833467334710023600971825593240765840223111347262788361707173368260694132555374148258083443238521384379407433382960062440140898304781037964164568459015675827286726427372670650636945966363739986303315973918034630279290145614256097117159482821238550520400453560872626228155209144557406242635424270685567228986984448899115738739174642165139316089635706962117992333507399142827036381893539423202408480440233707044481717330071667068060604105484704712814557615054437821473019985572338658249511229494061319268891421685342653251306254802008295860889666225360214489698326888930359436813124351459637231929834370278050741764621321662609420593916498689131063497659816717740870096113084911969654078041367404504265174317334409896677055280715433597031878113121608857164613736767227035257854182867349063982725746691857812696729015299929918027698154566065521660730412599139593158432852634040231835976508032337746917557953733565936859457190032323352290414566047079072832653849357400155380326698675660115342517132065538008238473251985300707178162472959921067028290670823736681203281578998397004085344561859899699955005417077629796238562333571928052021388834865253002025815239833144162043294902076885671606391001481707548579518205887421793505940080082923747612862354282549270820832134391919281273655094705087398066607313334757416595039909356818127866710242976870437134678559375277002446750126720403876029283572749396177711251682914556039725316968303441182656527956638464191987871041531166872233297635895916663417066705320413098686982523776435117715280137683027446610549279994786166025009063081026999826056227320585404011849266701500897942818946150484146236289747178225260153728430826068980884943303889075705307330883780439511545822851568976844967757501695175470514013414851921322031210948704904416994949025810940485021977040699055146891982208922302152337229221539544637697471741320121261815103198988703292363741499376191304226410554047290427184020397743686076749264107963645443135836145631116108475720608057450509004916054451436140981673127160118007565447127026328563991798397986986823687529939399863771571139260505996869413218326302730705705393782005570914639052231121057118149822402796060372101473790378919947507715258039839222373311467605476084175683412870424204938734354492319758633742063882579483788339191733090108106654307890618295340844245728964728728276316388441061061032176448719792361248959865377649506543258637376164809086485645044582723339465640866893276184543828953854658879360085337779484493330098291265652937448176729348125629381761841468264339135790292413134338287968902733298473153960687742525829803861791758898367380828237878352777478888972538325227024651301675776686855852901736788678513400955781836955369371912946096374941837432260162711334490741566923341214562324490807288530389654877486213245970880476973600728767138146427463653210240052826168027362072609204905509079944550971976209235028473013189201716211565909909369254355100690323611200905098773474420292935526148468065627988037788602214683863886663969379149023017461813769951142199641201564431329755203151978566711759272232112916572068902564156207290215277372988339034988574665863546757898662754088458369067549153768010663642084559284708388349844695566618151783294399818571746601919052069393919163577194697109580284441918662602358166138176659539592410316906827100805049409876981893742293603037556162800710940448327662608073118254724588232545629002029700544540488786190921302947046552872247487132743783520901780883869740229111616881534151574716815601183327944544815527116323423802112922028516453031555186662862287191113404655748362448660940739304460736261790587234076616091952778685895025507409053246063829787890326184139386949553897323919749838633952506329684073981117117520784675898616702319817650208743261074740799851044275348063805737850821955966911527605871335355660615961529077252166962192292193938833455556835487423088273400729692951737381225626928202564161519064892767777044630069810420352890418165149566685620271505634656858765650730598732078170123148165281215509584994691877287732727290246953803266627956719520157039907385819262116180925104050132482337695395814539832795383065226868461449508829111619938974230123907278289559503399328268022228416448993911443909042064872319553795144074274573260988405598554022350654438017910248002219676569192774112666037993334943314042629132356555488424249533107934500648242231174883242727591441631772005605036395525742904967873095654429277205445226461719195726632324980329667258026766153446610804441330033888922351033514735101098235116489832502750207322823624415619196925449137803712016514280510013523888664965395878290858758173431513636098078401262640448605685044268701797285746446977045982240881751083433171389614074518905174326791866807627036215102121270701793096467813451723809972740854645951526616439646205289630117312404083248642989319880198320102562409858034060758215695052691499889753605829321035737254344991073854167342157938089613324297475782824097396761665216491302352331717746465670134045786919026191186335647972357589067620886976096959515030032510672638836050192929978912945931716538326201472438408947851938892585118444528569522353279053035497633435240136098973192942194248474094192138536918440642331361442915194577096775179440355378578856087095130911331289719696079534494218083013138366567067369661059288810871466403968031317452906286922924749782029590083801050920519123521353155671147891212497902357887064658573770563819098147041481013948525573916770114940117368816776426686334875191921852724484834663040917841595524229321817620280919538717477083091143101459528337597199723991147455699374929776825160962923570573899213443549262548870759124666847061339463572054168538665358982696840766962022412318711108451011870337471781161459536764344156823054879726694397545101756683047365281134624587267037640545963285508646276915721177350451326831490330779566254062760486796868847230530701757271780658783169769497150592421031889629051234608333076796171940914533835923928011240171432520510639851064864738801390772415468847492758581485114877454548388478185491107520880612510054357918200697103821507212169044349871748543390110136030431513416717349367654150334504803842893685643186627385741641770637773333752006864858603124364838214333610558611355353803591501937119196150958630819845089895390013800671571543878893029251207271734139119316436418226731285458904229663977087924955772971833349263954248852572336629818229428547669981188608671192382190353517300981048139275760108486007782217519947691660224421021722402886902284644820809392319381146211048261117683925804058464614007772428187632237235530537408734111973427534888982285203696337865953548567670497167156774068926654399162255787631398477150287220304497010230803070575202545052984099339644363274369026011011618056795313979952469218106341034415784079175511154627371238726613793446634305412451174755283475198165579660349805250043836347152876039800084205238073932574904534871330700145538360706576420425606026581808128577583130894201415014881977835461135052958799539356678996830049257631379741523273066541931949709912694188927824446832004978977822240045884497613029574441607390729213479216699525196174403796369561203115208553188198111743564149493860484459902760397422694881155551388452626406177579495029747682687475147768429832437589361939665833296859187729842298668914240429340574998646330874143352348873497787337057880369338076909025487360861959914818668776707215682678444387798990102390708033251370894509551969314422919287820684862855704997861215164862299268692450894349549766079036546485290584159559977565663809807163486556786498395034691161640799538114072082071324532611079490973765113371628317534417484241305488626304405628566145459218973144037955064047260490626237105151420081203461697612999203321056074377676655295347246609752367527681259090697628301319119438369950880862732670625871091375496133705798882430459349002410487300488704633501545246882062802702922331727287354111572459976009146912232330019785414098931240723019234576681734457193048330226329518831233935566442876242219808140388809540144639646117279248279466366632071925438325609972631329178839027578467183448888843654023182618622531870704575803550690372138450278814977422864053471338867891248775136811165763736246472196379516253951798692869295621335385643695462836820483591178186591315475856139109504773265461320116329319235634438529773223317748257191611859941180414759606198740332734312056130164170030186376805340856977466310523035797675994420831985186499644883597660916824403452030821922399708036984638617281473025500933914754466661116168400141901948871662947392514215684815398941618505246597815571270328029921642221379965699611668996049174418202474231975986206517426426783569822047243951021129359542852571250671840400240409159060361397392271812023350563783799159373703160579775496582109365823931484622670454726123637002787720529933580851844068036535753850275352469085866692220064561724532296460574338156287927243204106091365621322452074989568004324658199907894928084374763133924892323085027799474718440663127046265057844568284804910459594508650703231245149406699821115985473639560954210071394452373450084302218670871615686757375043199556261946158873899512338567429274122739614567508549421219509183827659229151461853210936519222748854548853661114919009792921578361301144347092537718727320563002020528038137557268506594500935600860314828153003343953519133261708271858286106637240190672320180006604725676163466250590413960159192990728558910326446661123135892867549851781150038921138234822825363566875955129818836860573566634567798767417632429426759478626187543796359135168051853422876104420537589247632297407136548624611203480141109348656754495476172774083033056871721455851401396896688949092450361659784626199513384789090399560398138103761321642750921514567218870291945763716439933971896115813583611595871429769397941412473904694195077775760376976209042278132109211628593802144818309515460880937403098009165277123770839495263105532840211222534046796195824108529669154648057045016187304131465389050426243275682605076812581330755703548093785325126942241839881500240517070410377813930571295340031983598641999105996987484601393711335880315642147942354063998288050930680961712482797431998630036039233486429719808255077831403381147457071920288275195569700738958755488088952775115387815173913930888653150035444144740767804756797144326218958196931121215239192782858670692376295164177128539756916501271047797890113310583777245097704067854638362806748111528496475376464987810275783089950436385783405821619710658187849710356596503001830113973592983691513236013266419185049612142333080741453536290273332857328370522158895519485682834661010441882750435869941368288727575569452607004394686675171028671481197907443736042542884789139361365360047451167913555292036619257911731895544959790502281120692123402709874260950392187852936156926952356930023749748641190158490078137000363628854173951416479543782366755125719146945990760912607782795377111922719506537424699003054065654437893980238417619076617100918453261064925027177338949720963807943835948173365800581049432635276104005200868556068925925620807337680353280594078666182522252815154354412360362422094887576061379492130538994882241251812230288174795795994156179709259044469753414224268845063000486688521652803967492357192971720837385273339552507394410209943232724078206690288726058619262277900512308111911858263565049339711428721951399815751109390097975759692047666263607901167711120007061653405533091782003187850107579119328556810798209229522214466921302375714869794439866189332567426857266696238603274626878564288308740941238847806702262123411610321412254023895402757519641748388387321420064764518301220060437417046457372727295208587908815046710183388221713188456153892806936280417013101061813703364801474850930620697740039409667065326608972110252271521475775471467072931730245938488788991180034232706169555082881725043852095038701156428887979993556549730204217366537389292577352117847277386376838802669033051515843347457883275557316529006952859974958594354722622715322176935863637074576666009239974576309456333140410748062782950836396685950255635770257736272868050228926629701254657034908513367402411730895064324296228846797755444894131576588752238120453501997085199830231478377235551992423575515063632523216945171187078886713557771567123675819900073845759677314977358435658770696249579871453716773224899271087783409623957879338967933905857174521417722132150880722243902673697257726679159425045799366383281622399169266182330346929117118224117601173900063967476032767879944579063585824436327586258982649243494943183959389386718579334843028838340831319744182366911751038193900111641512425754198152686779317611487875512114741916653259982233348214306658580304912212113990036742560154080059154946602907300391339184429740187806480243486635559668653681006846317091206063844011084520995669099416790253858683626249474750213832274489012905828724815740178377064423282455405966936771716504821959236254143687360052140580727013849101989906906720848124004256012752772832169378918844106811872829655421219082765531776048623742835290224823655800932086092840285440083180343988859169292269421922815309654767409545126325015096135448460167681443162073746991434251483096965148364428696730875559166746991633005716442907319956362563210037260889349997709460507277381197450304319379610863288652805866477421836052704687934916743631836572074334166919962577015675037419126883010196004641486150648001836328704735224339921620285346744425293200485438444144357497002874714347265569837255023159807238854976511662214244851620264832050775003120989448006006451906832180984774720570884424645306736618690751524979594020660274031578743996414494804178879643748698579254188082840220890431215695136145741513983813439192285349844052689078407469051460360681995646772917370582823215372264254815532392661349773400399368712921476786911118777199868268711238017947943376987526072333496382429633808534927613179402920302695721890600484301797964683262174621822503913520266354351493749232152433388473093339143100184545730395479470152702024669841695097801940268368463902000117061216123620117815989614984996986872187387641305292498262071557575581647743585379070064923581668543380728486213157131248325099947647427499538874601126633119259603525522725206175128116825390223519577657192873070957987085646436151408032996658875913006879613396181844587187954765721846930669336700008502103560139902955562662065971649187109679188731158415208831698816603066205647728970265378583338132186826357886966006954210342668974588444371240989520757065781596573484541372723114894753813264431360174051732276010876665603558386625331280208188336318752205771020384131858304095549512196321294411890562667958102896459893256568298214779823609926835508770223532685828536479272545017916412873071331264959756578192808056541079905002971713890900948830714848369257337498010806939854298886020304379598324991089432626839926388204399944312411067320980997057337892778684931484298049260372884313262151690298726017370077704181751705501375048135648595532688510924061647791880356100251887219716759710280003349957524059110975266584718107380842381943778299707074046276116547731204442996631073266546906246681896612914115371304542814514008105538933799385644206329647777236921124091367821021729851794194409084096502209200652299382805302110985608047279218806350369592282491249519878718785418671649873273060436808652021794167366607582590246315191034097308875974930241908758007595686664834988743825068012550935267218909761141936177044328924206962475100849595375803192718995037294228199722542404743250075089504220830727788361362634119682044668547889239083708232175055202018755756976032385685506019664831280178835072416333883215825825049213400451767134437738952872399000992241456285783983119368834705697740544650434356701743014088991724434008745798237625662919239633100734428449173720533693214307743735626528421765843554750962718467052375599438630185473312515087158343481146306018545357366882964719175590083606284776145549799712791741457853712728138592694380162270064555331883567569765511122963947053555954833947970355124400260797392111869778968006313779549879630637170729315778494707066477793369199016979625243607267897714655708239794670296015495038357215367393588475621896423198368451557878738372911820081287182695877579864477623900076025041060104540493753952526002244956631017480042996857692726132341081970677760576200933743857808224939024128905130883279896749469390577393670601042217902397823963410256070551341510545142078891873694818714041774214204687861179785528892290168723478832807602059059903561302574702867465584390884339545204538737134809322767065874283438239122421525078848111754862727252785737789805575567141415272619176731847963725705118081232438379523860664362349533544511521551975746240597523648931303506617793185777933424924315651569261967692755563413345087377171556171430814206832312951237868087914813451298979393521406001562328864947304066459971605373590131266818542465817829530725181569341491026144772974843712583120659509517382188279708128998148588983866772073300791650353462605592098425118076499893261215106226541340132115616042305364250669724160645053998074911510543787897399643348769653386801800676110240605685437968718186367582909838122758096289818728695942849451619779008241334552120515066842063520457625147224176299033930308400496351235481845235883902342613623435288738829061019647295260927114647856406949461483087575707858955917065390795891782942208513023919321124840387089802344023764643173074238686965560675290151845939212715698832709277396289643151075065920520337671213914366177382297233281994324212099609051266442208534975554097751469023088884598920275706286396141092137387316930954020242258735732533212631832445395996122870053229139346777260480736963683022339620196886405017272181365597927452250765270285705847540600438766741697871685763373723005737451638184753811193791228486964784485881104626172480637784898907684301306010809784143483539721174494475150740261125204383228001597881256777538922584320565182503884837092699635220358252809184344534732554383396142106572754937007288873864300781876476537220055073211305480517925912983350680735979173706110609924340135065956057882912176309998998284483413382771459553500780970688278941236812915023426978961826019830297666658043592649620844407914479700037665258718471345536200376014378402550323120519466869017017239840268543720630997179795869198119804160892431582953059300953037819306560984576167826507120313157452152351069773896490413932722655104788395632956282801051294500475651180978628899561193004256173389845991042949781016492007760468803277984582005370486427437101784941534068669234610226477882174775040858255718896372814117310863275595782312442988313704167117089706396637905881581026675881857009191023703407609427399954893245908472567977781237654000598868562832038972509666813865448259263829972770653970555391645269002717380299219175494829322391808489332730425532436978152516626730710343903114513130450291819625866543839200535026697723786491321156351159405882165026276018971869123116750314104091721631031545134894505637413343227740671441819609754039313922021950852384374705659758781205228401624815954425253056973637636054862551909880545823181301003702060009129154768926493668579223770307904313357924336758633021665088271319920575657259839001646134310237421872936003368826637592147929486421369057385853699231855064575756178621816820804380110495359547486497632442557597903578962685516306394397835726510867340965620228326105883459058764505405684242409432032534253266548198635146937493680713066060321721711399038133280458145174460451122938308842903663545737441684616991569535436551115726903951661412705403521148088988377466952769086333255400316816333774752892481037398118217415362305360392197950902696662488814534684306925106887450641623958510175455749188095457796287045137167593790145331233528799948237411694409286762994226745989728789141536976825084824123798171597589559003827416745900950632939941699351107649959638581577375507037932144865258168222896506331319538410036415228465801519975403761132381125484513120877857757723365001310616538078552885082420689372651066239787917560992433717582808313007795603070369845148923736889507779897677555952604180390773863011141851095302276420901433396662032623060767985385010619218478642125985026472052252861200234762903583105024525478423503770399367616366508479689115301172802630213004076375060578837747358276956561731510761984238586069525434026628547930206932340117190125113664725207041034934608350697051596600553946469673834975798118469238031039921730673914120918060181300037452892643884351354779684497010046612337697127360919291346959327134328839850912208246874566748771504234061139711907382425876018943887596350961374472976330870571194417293388780522922174591652713895040117790385099549727546129596764116145524490419300351296568435289408945189385078790701566382681036102087851863697935739170781828209152920144958606137161974117118781952792645438403242246063182123938085604439883727595327093340265315605570338606466158974378127974558921117583201131462932266158584669316757613609162184266864740957576422102061425211569623716104986010469877672025188483161366160766241692199454900487091438472498371359771148447304315082133827574161502943175642881680655323574144025257079576241414599930722248819319770140406877327903738853078742672004582594987626079886532341406332100569416488239702997202272563127290770272895927911417508874891232005787707356284046798598150031001765619208838784545511297107671339707041611483583072097736488534400952651642497265800169984197638889165230518849433931788847819312124579904659962743774882520775962275422129869861111987468028696589354823997653488134027590798154241723293540345486547341666371527940619175103760919631699655037424013797240174782291642756568277388136680176292724321835682929126017633262849298183486900746126332454480411248467671879587383556971062333760491010146242733414066119092357927176538064933558748619550834134161490216065534526531500643966492767192551717628849242535393199411965470906812215194482525833186841391162408944272032713320604227006521300960978800906772801268710447628523888612569967593539424786586828581574393072564419950848220811304564004931508734677999500844211663108995510762145077561854272543292638647678811737387635606006319108550074225480673999569961386971683269198155921812500244590848517100222321935853700713163871984823186621497802524663639439670939155900131924052775410084469589705266646466059129345662626028335216372451096940812282878540819527614476849838429576165331301096585461556915851576789001663778331844932243431018823985861117536278640397358797195022265266403459967743499120318209858811296431444419637935138387370057970851268064685148195997188485158293335194738624277401508015772568379218884623976964620313548803407757878031340085908004912647069644879342235108444407385013834166193571232765454074095990890992811501192987455500572583138306897254056823359129338690233482892360075087932126911743456327792486674075751837897405229028327178275890401030518637316037785872901214455704570294848370993147278935151185113339250452813276863470929555033945368344760748817079073725222559050136956500302699310064888468934061640539461362715345269004686100371264979034519697235103027771943341640327395981640686802112498299072644070621732030800224327230768011261181231522202248409235575518770492790121238841863122165763011500632349422462551508566149235826689932065095556624062982816875467826203198788351999742546163156805817654924244127123453743898593733308967590978392910892151627806569928356044363396961602074129392706867634990848207386307466356254416781661153178203163976644013371421523753481692900732932864745474840300892329589732991738831146840507866470575343079027945337289502357107281456800016988943565328999377017901267314003134968633897443110417601845940558971865312932338627885823890403433695594158978650921573748379803227827002664110530264593664719212209507555301897127569488015443762926263761613674357595229249374023379574711534012292397722517538323967694444120645260813691411068350965989205982902950353600185243747724908765226636907696154840175908419734637872820845419174538969786769582527952563090434312708273683589621411315005603688916356631940895631368926702048792341874901795760828946103394714586976440001599386060552654267067742366724071878716423455141689229024250349572107302470409814465390755172575009861946936101980559232588647014884144973891906797868113797922907233843401890897121293165412925998897713502410919984841395902262040716540925333355188943687649966392503744804548863655286654659312730208626403916235936657807002236330946710597952070276658560275893524659594814231556252227588068832026981875525322194089945633449744936148616159823640586749912217178953493478886941720876379823291106943274753817719272977436489128440044148848891252699038621717083601960693341208496131880238516219365428466788420449233331460654682153154714024111691435310443255697229540024654954743462153337545127879538381194937826774523747408490525596793790687395680750531117975304340501761636785598004152178502007092290505105939077509664002370533081368564023933834993107736012175707201090121915555655340168228817107816725458481728891517002576718961488717228665147208624400964346281968032643171291468659277381485072649956057405054418638590079481969172071525637727075287540886825855788056182307974314101997462418577731262720996593728862967552516800070384295882008810232999800818759779205786288934814219626278799392621544698851359962546418339044147691603850133835227309109116306342987178593790506329417054840237928790800818112568122124927276057755551748854719174613083479798856536151362545697873267499435540100537280766656938321418904401504791653456560841312144477452056827011414260168466239032973268300631747192401463026667943447521823405478710077984014178753603097524749906466513931052307852080665688211932381648442509245910230859129653466917880043618708466632674354498760375479315026051535575221657143016614628420232280465452678613779487461012176594186399110323214987893618621778454035885987670494848222644450146056189770253031659818261138758996133299828742473538861359158794094818558508845262509653801582221391950455651166979369335703770599813289174439530913756325896281553526846930664149928366392802716442006751629676912541809806842313021424997658559984578631153946671727074501807021459540441729127046583312280712677035117988798933467287733295201496474663089367857531416236392070963844516891233492915958144960346596764842468204132456896326715539252677823756964532806527285942106477204733783919472939959608608119466880641285423983680939829184773428913212582123569319826187543706292316412503485257034285738189296635034970772311642529979933764532905007814045218938785008907255275318562796089726166215068952830442977396799964371835873378774425105337128965879759788573775511860637480055442654119556192465079902035941624888627973064907632322489248811932121577143747747280394791294582121872255133657046667800746309436708530908922925405947985441094009286921500801598745266786352924919194029287400551546229074829019580351755958090346245274753836802485401131766041468625517638765341074783753865747027947727264569388017250621723964211959535498594959884405822975848072479599071440386762978965062461074697522900830707023085560815473079775230446855990341305024239290107014271182708250918437171527168128234702579267692284202453443639462845541028875820423173276481815535847798847383819496392684747362018436441734200358342362410264846911372147202306250440945821972947977532555617325287494104470546946891266365986858333704157657949609485656591239737428563013977147754487515400206720158238626491410736323625496094689496409612193899108474123998229833589232887432114710835940372827298039994998082780992673154432402682832665709110202669182082895937146590140094107040124337554598065311811839585666426755593564890946584613833297627198789315027426448345091871972788571803159541826031283801742555805697210692434516906465396290871628178783887185877720474581405062894327821998034279603013067342980203386260448474077438423434899025660977408840391975884639449779914020994081967263945984948990506747120562099355979478335767645811007401684709779583731556672493053557955002994072669784695757473126428987490416535399639927336578465462308216193417135791028711555889877453609926743042070899935329449324315632711105032058439757124644900501869523084085273600446779728366884022673446547297211917060171547013115341701627926825091678206165721521985229667461741886787123300184275433622614550073051809431599430256960583624469982412705074355960959381120536522443241887770131501434041020960822415391296938751328738346561858420759521390115119272797399364754634273736547536990286936702239446345642104171220001436120707830783589936645275592777247900482680229708270612131210132612003810854202598655714730594609550879907386901129567841030478504737834311634328259137775900791233557771222101717437336178471506311219768300646802705553092571160480138103583282803503829429300026036754345035226607215033360181354404500873859830107197431675915385823272234780385500524902129687217384350637735958059971674535479193491710573622666065497708718704949340030922881844263864665657894355469756494142136825454240355337340652637673557763716627733967828602575545497663507351155070469315002773289643601364046318049023487194711018028574931164136173005804177327349326739873503459521520956245182706253951964642744390222663595387385229010929969609651658631739617466830170302250188693055167457356761204030102393065717811391203413296244662140890754384842195817030032197845281005937139720626542056561300258629178698164142490880082132759501345470207383527371343796638350405930055373778105626896710041753064015218386387392637021534589502673675901895543182539102505674374896829982772940360475734174182725150416719391109153442418570008710442948353336873405585424988430764977561978407252759467288355322803949928166468788162447668390594120643086764407515975861080852873371616835126065750630252543124069879894539883481470350802880582134643940911811576650118152524731406917206749548085309238582574189702867252925374161450780782321285854870250404530682271659234132362537530564769806649163181946876067282013361950924551125053240706285995617015793752756477697960189762099379306042646302658062416910912893824424981523475195115295389314625848998140397592825379371409265938241330977331349884793948523499234559242681647428445081773906348512874782330210186131444577508787297064745915842423627248728047098164754620293748392781773005391591123321474848489278343625329531432902326746295090828861920846240700440570501744065373434379447554232017763010771229613055288487184691533686832239760565059910181193013243475583184247324747967744355693595388961563080296178736780203782623629321636969038211014465793944001606369846186385404815445422679149181273602382420167541096187145733239243927328821629372210266256444093007276000078114493905984158620229152078403458975154783416799521768409690717014539822889130299690842484520048586815935960779743941505985195354620963150758805002264346584845415437785994442884447797311601807626026865105346447020123203191626855851288275671536351378247551415274747860794284124297248228199600243872620693666509861809948120827001364373398242592125584161625339616297542808073114474945708997536284347669098021241332091905067141426195614260266039536896547225054187234269087528443195926382827849307902751267341975277053326607139893781605423553488973866728957859026159749822020974727474200410438702177947628127462483675707492626992379915821274560513489082710758414261462581209437686094571630704325797052836177955436925818938984730003469781380297515361889405622504286210087443311144508600967161556352167086208206366454185714447403032559659687786427691472529086228791941880759511658240283668019589844394792764807984317202097007876579806456655789555194597039307542573784190981946827700933265239158725827473485644412611903261501480515208782914813154256569499435748060994982139651563736888437291053337230854087142166591368387427514831904468367515933457531242155868566826428443590865555111534661934260550956204023867026874663271323770683268213405540540454728884032530595201638261670025828047598834434076729330139878134145031176307738699945002057671274259314665709654615555888004224393234138352156928091137153529000036662918232540333924435515524027990220594706739719458778311744264952726424381813231589142541278669649293792088079952208013225843479378834678302114740694258867454274941329946636079596904345748436611852622855078091639957968368467489037899000622360217927248363139925178134005042114039289793402304229733923036218629616343875161770901268875183338967034119491356898873234771645784938351975533297310467359954158451815534537786442462360927384285443978147976083456381807738121209117473390044876279666403784665488496576795837851320778039179084725277604087463925374924535055156148677428887686076522438011892769615957916100105568120185778897423795352105593149054177036508950946878428273532274693932734577213687870222203835312425244105327955550479618279649359915880065080083929323374539504259714177841618183893081441548758516836089980447371696705900803444040904771413658624931274142383078848640103207936921291744619788080430294178806526436222742628209572704148192994077551994193630400605026950983679681984244242862563369183932979575796041959778963541145053191541169585340369303369617917571934813109237783561156228877677069961399932791827431750717569197668679132736515269939461566991814220362649481439283678328495488676930431928350975207181816512667927863923404622223665305343768077115530602619968000100466987349484033586618219169813644106550374734905479270905948883502247219393621297449761133629760387887146257321637247397764491045880929490299731589150264944724703594456296032698353907455355452349129695906996847730591689391307445365527233806924176014566556416479513877626396286133725459133961690209914636658236549992143609234134005177763716594378109439254716344319294360731040884841602170417534150523958446565044532701177310402462146732126542190114245176825512183128150212599859508466144944308302014041933664783809093003465277832637946237896211451973345707421612757075217650835934829169948734031071023146219578561563210856044278394852986197327933023721253413617614943165093004669926433031884930387580044561609332870597570831563740162351925250061633044737127711689296222715780970623704126603410722462876486380735678709456505566373334434533656013394958670708261714507970760503866739476579563064439002088946605049781356538880051225544585590793972798290992064940552920943204408829413920117239417620800901831557569233538590309504365578584736562152414743654384894020571849454777612939484493644096110268816291834551171424418927047142277528210931861965296959395327639417227197287826722231866785598697836576148903960933534703516215015393742148246309478428099153284056741969482671106879712279050090391977692668654141026259927444181510761707242803630876761406829924274456656217202010588245690563479977335473251827063173483581773674002926157354548995151299036846580573263705034693301369388274016292866950230088207835725709987963826291140321655791673182280333239704934707439160353609062147254843140528291548970387086005228739324465922104337241128382835509270315579647217412662124783688726715265212585760320943620751014282719152180395738510420445880840621907963724773752752220741522864179763618279035225971149481657421203159065948411785931144474187161892216577715626957625997889017843982337394843261691767001271648265945167683667883543036495395953492456682040043764273711636629355210504515355121184225607881751230944491633943355222237271794108071223870884328519600348032499144418448077739778383353140239121657095819568171212083235559200942926579136847437990666594029450521529885685079296389446816221317756149801242546978997003164846928276627524996534948471080562686694847261306824856869936346533857467167075931897875515164057066963077554531185489449816126449474313512243841050170901516118937865317542389655906273740185435596824162822078547385574586360851701599714823388158635885565509729339755620153884168215610812988494169473433225631896369406091095622329125434577654650862843440149532877476134189414978853582054181620793826113590228665626810678402206827081493103537148835362547733342128805354032213628062280048151453725784445326452065490775367524268327600023228150307355076052767502756526026623573709673373834684009556665895870670321299473808748459337313404342263999756015009768289823691878035518841837479771685354132047761543998535960980291301637337460878985296543286518840268988758858927390941663119013117910873950622386660553444998726438488388258597313642896702480720871420140219304720061613516751382465979083425391524022365992990474683722415388840535563278793584973390418763457912860051133088681097172101652375775367364051890586536601518634964311771588521948439647202824954313421256165574298858976521581926964095791312815287238341754355283366884972355409956649364515812089541158384620184524981677420276273683787346848815858723878423162278455064580620710609063728718822292597307022766676558333311568082400932783191608690233520011244277382905954688630979360935367221578829219726563563568819685458318950061297260530419587794174293407073213913888559141853313443439004498870761608882498696345912067655923675666108985303189390885462675074320421921216709214678090377085746500666790448587363429998843788251635574984432788080029922772482989231122424430200552686599229519215945023429148351536430675665086759627650873624863422396064613745046893635559183014679460672515252326078899505962096642187981395809022482499550994904772129451443274759494238893819495832387903564984690597985138353888451515582862481027051353429953989465734072863708564324855655447370534821328395179123470156684455737134191063043812749413079594502385015441057303996967878313436401152430433463226107482861048589458168075996594801301724495354347427651046520306816312706697213030799313065381700341072589346349087332349439648850980822329663477425071619805954149129032872145830803662478848506446467342433484254615723025985583881774408323039784216765943069798279319358935367052918282592689696019342668305115730568909165618711947692790934021667835458438642052546400121929556179800280227731951501016986090818026764766988356354878597832153403642384749587017435976078925815178560419517306594200905285989723010875001842737045354035447750744146013452024499746016334965079801137924729350885456162117850418987634491327304143453621658730289384364053134818609850715790900973270224366924886192814299390101688473609057397994483463968539542791612615541512128618308760875874931904574166464611302170915678031440356503343347106997769193250990725738445041543846579473280450067101669762813859199366689173313403737552968308530293103694947934085667692158452256573459870702872269132841536982616049720006451651865426889789773404938731046861841211023559373048337133122695985177781093183887893751259667644486385731161667665777385588961920432529488792104020518345822169056484065453028125090735150474756078359337370371403391318282304111610256343732624187928253970041056195667236461845118060095400787874447775129066194771274162677424336357178083558743004837948468370136255294764979689785121499801810147376657873840005859392763436707720619622107096585277143302491174917348678790844262480375350749670700554482543090868833213211627907879676841219805540971898693626961533180340315558138259141102996038638493655615542875809910514760104585983981082642130767740869476922199360063943137719396186668282989783940107805884343351244001501926814842704780993303070946084686147917900159791873544670270501609994788507683749329814969371980899386776892669661112424415002368241132963794811033241708179017319759963066986705179519018162075818636203290268871031121814778446260071642187919575168693135505137028994192636519749183395918529336684791577768412859649674112978110328048386409300185116463905090679055076788341742992173751795710563600237917489889122963112566267082795525372153860435008211039287699145297825381462228072484207821368190449429106967638664413372314130062606591766584286990894796650811041943744918722607869410105002931891254080726457174212724770902928730226071694205292275304538484771019700558477952582566591154737089530837990455509930512855304481802585123936152083725944810185478399553679071482108092219233516976529937502542741067077773680669501542780472135490792890094411736235452934397451501807585435711689702118386943056090736660804485094947566379397498991350833969227294640798423328047221464183084860581023898716163152216526553766700699815247842071189259936137936921209685390415907005448274888537115945662931378820968851749620014627341079529188862334601682877285168107493083395361216487929343963324880862937137688341991811854444542469411034892565256697848030934099732688649292002733536252261770995515929227306711618749810766616916261356077446907791525687711795323229264454891059787908047789833018692418859006152187295572393065045122640688006836823954490049757874582849042127286340563563811368673650546190047385184313573970446001255805278544099494752025621328197605274329851611293981294443837004942975575502146707241414212252125981617087870339866060870410032628658265304596352910537476314248978830820789948421737411151343665553879337657515084741530161749363820352824633565464090116744877485990285773486411684988838447409767746938691059467378882138057785669972398028679604918681714323255070510881620262662480259553681302254207704423730948918870984647600075716143469906951264183074357650011606891131592725290954420692053894279416421836209250766885218697239783017576827030652361945169025182004926099846979025327035305476168005873940580126116061073674868545998223454173727131336266325499183688128427586817242941121376409284210653373869641766680016581104079962811805223017202626517644925472408076721319405892159037786939173575696563316386176499926319009710533096010855143705189029682650224347493964186822705800417401464484716143737331360270843373283570986901009293463220364899027685832015707737534586896807876803851652963281612988647291819972114448692260818267049521516111276038074412055077957312956796624420895243994648914447607226388230708859264865713737761572678297729659040732463010422245308393312128034824118502373598901748363289708930945461106331202577599627385382658362217608856603374868157316245935541929429729548003471524813595264477387387800821349346808711151659017980579908992181303374212574946249470958088606894022183367504180700733753790270411813470059413739945934447980362802386186754357883190362418914571469878109368700626229795886504210348895227260068573811910589409907330328944982878409900691934921871256086693745831542424987324573087097747280963941203780949461689343272872963530289362135051882945659578672735064315275280927235039700030227325489578778736231754877854891865471057569626262477497338344573299602901814973571431638569120035280118453594942845894077417023241479704803742805547393248668666077277927722883868920285267850604916293329749408042760671752912435160308697833763740402311752833248686484329895179169173876398284254358444849392002206942712131891807247490660605316228975748657005804797063839084968917555823502973933918441722404716847157855295733890954281312870345088599482974407634073572599381759651620929377210914613338828954230260792648045214296583163277945611987927170788487203008908822108298556500117173731902520815682831614588549185471420161691188598006657303244151266127545819349831608856488738705579344501009046842863044011391936242841037159060938313378482963789283030457890251583673976556443711392776172081530992766642239372927203121948557098378599845879779639968117770597206605105632639643514174937872346849242734113549958131238923827998346516914148130235610764131923845656339440203142131980270841838492540100548931684038325466472449251177543128782314281934836014015062364715184058997226084746953455303413616154236244788976953038642761824092846133286390435090314361954622043419451961850230935312340262689078214083312944408775811248134605837806924178291704779152916102601821285708705544310899055545907794722510582813835143384862405121758831927719992818991123432314934625521871966990050178818778619106290071856593417593421047467172158446790601455404071629447768003152691684913089094971893818241561665899847285461639495383456937733854505781121851807816669784012258998565074436312630608886293831303795274782652726853462123993273163115706110928369675631298062408162452991201808568662466265402578265079964309242206926839197873857302215546595509612764847417031763516730976642980083680867823823621025399289405764058007386062265184667933736386680090297439987579688391158308917579341217380111858100776188644759637059939007998542311864486177812113798269956294316240854452285975995491768224100470296036176004114678828109592086303308364784965593148251488480523052194211794670880743994662959471029310316698359452407595605254036914112241151649203869961036279847944653854922475530699999378339479720631845678651321548864033459406039259707643330765612157926452449887855395210578505482932149172856160074680384983687375802028729095780645514246513471967553668408086682166604154497611900372419131993701253443608652154575272842197740334606973687764756523206076856618284802031542115286034940881591282410584749618106468232150392726987760246841271351354273016298843563381175151906886219737937072618244311558361913776156850820529029521356636484495857267615569557151042636124693631105249142354480731458261117267659813591537237305049053385301869362501650094580276430650050514875997191533040686462616005367218545208138103678466885004811940913262458721248362970343008352183094301379230519218097622016653200962474323145055594898789728728438036210345475009196714045284842907774469659553416509129216922920216890106747079507531030109956234216862108475326403152259667748006390231989903868231881194473362277153944636346313000905355457659550841534681879941183157210515066173380158362023745778001072330174531005709278883920721312327361745521154217936975738173997739429985630327430781915135933216312930102205344364435540573516463938603101429309696369437387846562987866395991560861845421009308483046768725433041920997370647607863390272566134930871673943877692469153397047530779351209881505577414060370423421366324851938298454935061757143489127562165386907706442620732337090291497915124503399519929684456492217727961960932865500777578543210360962262398262185939325023651171662923352753088168499106409400037892531846667575445681979520102127030052999502377933295274581514626168111038756609219326219422480115647458970490870788676852785717461143282687124626821498820323301076178990838593479646570263498565113151048637700481029104965524005014313126736062146774630618649556018539557288062899688898124580474452315295012942600377979617088903960001072945819877009533145727820087790741935567282584907085375844734721950515537231508033055100641795748084332978032557134898152741663486813279167362134757683177369127496534389109496481175129599785848086758669199219471117638190939612393566175476890146732878886612885267614580547528300266789274045942559256709104286984161490800996692259619908787163641990885497859445962261121058591426880225353736881180068434079000738770926848954822492015294243517135678604637323304320858263248771426099180681644073123702501325225859374243856134761664845340388323953777816188394770249137603928694668647051106875034521836725015979364235508935957790801039842355548034891122613107537220166113011390480584707812220818639624937508217417372882634867385599101045481675847465539789520573204415089056161559272480719195542453842260487407774198189548181566709779842945516915154056055877401646587842544196141298356014654783599386105963860338562928978978787043080912166054706799972808248091331614647383069743130078548702747696989089850494089882371679474811239214032634846436799257279379595358214098787541026955344627225503938592189107907748024934193459711214812085471533728509241595531908240813849243494529084892566545804637298200160680460538462261478021485150951323857480377440883038770887361635298185388542909668497459543502223766109487131727244725765974276256829239275515223057681098042639987835539732161753234188733297958623694668481761505948340079709858331694055479303093316390252135941790970210556514178358795317689424188070803504831281031073775250256602243971335705580453516965271567871747583096415277075914914356461774604267813367332939158964488554058899470991198291892419620396517780363907584550967509309155341975454511075760993233597960693606672494324069199392302241906770728059680104492254975432890303108613036859876337924967591553685806489795548530501871344514313696680749011770463556644192324145127852057483988799801817544045379555598492755476405845886767047409124104032251912699043558973267545722533680361743077619934741858826855806018411217919591684295851805410992111034752887309226190308615923276986631198295584144705811520380583708077302940005492923358326642279130547603660254424392488976237876503678585247086303787954498104920892737549573546278357771444222747817298743863675635151528153357350252449421212700100375703791398061512396008902234416763704422757317984147999466194396662913016666613459421184039247755981034662163021807365969500756874733641322079117177362797070962943669096413785983998851026128552650881920449546560670553848659737568559648358222068718586853216873284700069619389276993974761328341821821327479360255029177147155000493277444163094702225508765750545654132321955551552865023975640770271545889949910182704616477750506761107900747741300547503677198990199685506307340181832558383184477339521005665846143982071884057555158873173273812993550212973891889157519224102581975589576675457699765340110569820005840801593134948267853771822666931257420893968673424961474005298113685527390690525313817438665117863409922716162927543626228096653917894428667358077803440044299498403484266009252958988930307418050176951254612574456520852318183578306654521092571940725830681774981640747031382583699843881911262144840675151356229322794769118428128271759927262702541674928730929622086588361092520355499121528275183660153766716148881613577312169171119044307668388763995510024168735015959700997659080899417850364375538428031295152214401989266025777522803913169337773706181682985427785313360021880747102776308836685799610856036859645732978841115306336965446308434326248863786397980400847641019493717213970087263242791599766826668693668487884361527983217160186019993468862932614934937134733738777781126739668633811556178601776040878238174029683495041307818456647542236662753997921369344531940255496620313230970289597090668269326420675135293715871479753116651225046912469129782080220229790316973332844656721998096429020895873852724127134331509261789672522185592533681879873474296722513122524781328408547145936785972023097035886931634093999860521948071718843484070093145012487644041909766521681523196829011488011188055121108068505858994779962630837022981152465893329615923828356733630433215393681976405929997789266723358318169109486761803605660923937536782394058175488292758972078152762120370010993615089044657544296453324744567427620327983103462395357069049489576527293676217235964957662593836846557271792756970147925421696199123275422109272402598416276673939113262108262470498453182416396534346771887636325271707171619151268499594043524824522090714531348074962810142482634268037692036217173574791883313365462205027176070158375278827591804869291905204498945215369989800852671089190561841022446049441751800740084937293164615596902353369918507969022565602666965491403283018705178034248967610951238176765829192820977634081740445313629419082634967083210717200707206883025589783791641536457984290067063986247141832047429824680739477224107616694921439199477569899236474915363555142966259278754977518803975424186998259413222391859553072425660496707108777090899666917300760526211737064254740257224804282120299132590325537219078454715062275502198803223507040917392512585761712001723466940168433412193404327751448986228589037586021459596276151093896748501113594409406105398456436216969312753032375600724359327044820605258451893387450316314575019549580882600516950699964635408665133865110349159011921313598073799176584563879795200393337359207058596028913690927891679717832532991620169653873290192893156333300474540639176066872583670169409179906818694524719834585097285472620917722334610000017243088897986330993359753156052221540381617025654045969292220137642064174312100107244692108233213144953039051207049234407843963489983126480863739261903620757924741143362757706835799885528596007749626614264032656705039544320723833964776383229994043091828392792361446225599127021097708186914600939529439811648922730419621700399458294332776303321799688892991920482716656966483435881171356949374088361011988813403019970424896297351656798378831650683546472275047014509077620123047723146029469297188153048479163999684474459635268844677288304240699551940737479645482806239250229462834164130190875758836897734766036998198294814903214337763654947667983640964073696213826208405659728871513927118020945483074512967034008270705944804058565899203054498021865427955486679070792700820718445203047273486765566574424213685367433087638446400248535122595538400511629230160443296565166191165971139845276673626366848444163500143506710821604104953070870745166303326918669317289446171487696383771927024127122106261006486055432730540763878849121707814875918776133559662605634402201994926926886212341400488928734675345877563729069274382413126252609054852163824629913548484017137846085463449142499877905436268142199073083782349889355509226210025618514553653568480556471724883630372436752893369009901249710594994224115516800118423777971841117822460577108208594614695185938110251411511904832840053881809048726295759703265326616673763514135554987400802089827257295250520032513564105462774160843979763234314317450096765338875113097802264975836549826990707257278933691933763972833149441010717300147252702947706343366306069944138267368187750223936618549726617209233397072501832506376519515508850647978553820737334466846820230583375085079727820326007641101684424705229992547316397973991922099629106676582343142678763645626383564658966131984124924782952405141692605714377124539636402559239276231043853314523786107161869263282015327373786732207084612630801645043575431878564738763595762961218054599906237204607167847673252993313692607301128782500581624944491169192336403988960756137902698523073669172391558019564720281285231602202784752446628768736063585780936679151027151729844999589418509667850607409783756254391113630312602196511061599402289895536168228437583500095003313426272474360736491977102177079496810056589938482045229518961978159361722308669750271364233921353137098472696021161366287451002176935468729858267062993575115883539383238854946957132083100746199491053388864150430951335464917812301696515697125000886000024899153462500831685712174069769971635393856308833945210556979237768309574479294969358268590479314779793905759666733908770851850446595910238186216902992493720029786988564438965818884422795623127065456377497393119957058421087999954779808654365235741893775909952000478280136923209600868878663835154141951573063047902944138955098143068977735614191761495787158559384396832022265269771423457895302281060571326338712697407673409704281561223752144411951255505698293381157979986087314847466429874504332689840825978706368720815681028600660599678418574742404778114712466780022030702503775792572982920497574118069885295063845959133561596893501960541488560242936728780769998979545131940161329210429395298311539295959182361710560384894142105111258362622777599480839295277559124701746430638240797895414571458563329541254841359721035674815775128297401677357757473559181178071737558812445362093792631185133951653387286366743162139155042697206969678734835706690459730872770625023073083134259098238169472854211190801566255969939383749158628276429373611847587480199058108603947058007484073595855434376850737469022405887580815961673883145200410008499857755388199120901510642038815183457939973614855526506992777806212401925101161382402354478920952218279069138497278678995361745137490647530210583076959796173625471034785446372151165013397221646393488321608988745701538595085145893569049011583815567143721782828792073337051619214933677522715957975764965993740357482025946885499184712641303792345126918027129997837975866309480543250460839064774944186770743106101278347502434814355233412637884695064509315229174030187280400582276890883098023507548557810607217782279930179118177372123471407101105494671351123106533368942211112678998719923491477729140221188188141195647337897307006074313948442640596580261644140318740272097813634940173172804819908388627790323212078292561690498281094285128197285261213950306179484142424996368172682890575843734283218022130821090914443598080765225541220249095431652557777157859882597714263588144327917919589377067326970816466097744926488589187924439321812882396699418064219650874882549872767718083807641881356474126980658893050265104018415019420995592399074162970256204498371728673556930970134579401725220733738631272714646754814962348615791731877894920230423578632409366730921317233039178300129605295024071087908201834095163515496334496777165998655350258169840628898413887921588487623054947756025902533753430554228712264765010120881651821027908974923846705553790700149367069251224474134436904758948070724540042413329885579786395587099864073927709809027372479577108174367232647326504541271447765443484248013900054335162471986077513598801319481584859499496144265283800779193695903062115358501675818707666353963684366001047243174164396741088308660265974814030106254489966531650181253405444641143443519289154746193191628964907107387436187735357675421966709837883256789697588019420555816905934263677718792838722817903404641505029357246938710301532162812090694000767177924316101759597761829379738829389186200044449641934452586888382494395941296330273519649306296091560651767594399329200656325514415049825580968724019061985748785234548198182048138341118114904629024462037666582869039463010330084938221321570294012392554854570270399096549302847357292932630753621172822661229852553288015203656026166444056821889844179413126893609217111436901663183175201900450816215459096400547880493991021342601023287654722919855917256561708096749664918787788457640991395427520828473331209796167608474317060096165754661322857020945213036007626376933284254693287996526778389196426062449630123149604956516362044874802976718558545862153342795397986694327351604333104696376357377839676821455560870203368227288226492861391266679566068706942636748696157856973550152895116679419398344511434205098940721607227691127765673650074930101126200354186975007117984252743978958111068873069487849903938461531708321794892930247273083129009073120691965698420212348162155175974725192881317847919945752554706087533139460527851401085835405574167384411694250860977190186632020871566563000375213473429329191179309586575284733790972701846144586957613416787755376790445621724917481951529977055636837029561959281228224518407640279518901502782212043765047322448447908550592287491268482724559882752765546788045970394268945712401352580908799326756621773826419428185878889904289212281582236176683674995207899258409212105322618775261310067749872590237926362853698814580895337876897155484030054061003595561136628631280366072395622465602035551045456777139336306187822237280864976016107913668789044632470148964983523007995393246070599527688425040148559899847690534757092049904960520761720495296879691662908438899562037321773894878696033518175922620093273091544515521229819362829368012929538023976941087268229423291383885920979650636855387351297488541554685053332009886762038582031837734600059712086032244975087308684279042042970898102546786638197408190114455610818957614540757959814566981669545420037755191962195408504984498368977849759508337417303535571181067662733057769817577242650068668420946623414994108428883007096503328834688993392870054072713122411940797485168706338555173361696884079907303346273858087761789320776808436502543262428286795909663390413223759434072427952108690675390648971491803201449421357574107913688155143820470564968208971609713356913575418165444005520125372407053053649757760127387949938520880141816740755788001560958495048147528943078302857109992896639389628579938864057348165969262215985038768196561777774013226821353072145877441829359190704611173633217981096032928912885284461190102650752888584601955107391093200393673534020636230902338142138072438906295512739842258666546196000588037695751014211078594882556380426642322904299965799251863816014355497716225149473418297398765920797502286273413715055072476275876363909932302041263914391391694254890045610671420242806243892446233914727142457670824402665596799151390629325043313087345754586317825831628761962831192506508414665673812572635386797632663307515018088715211232669253504630228671471647657263178070581135511723833012384757013934624937121379104459327096534788196337882512595217697247044927165856733087937783303300523734345516348789667663847941852686084756957451352572489342641311788488713742250050385227097519252166569687269145306477264411591845848650067104454573679192575342445665777011389081479272299080371171774893426845295174984030888195021544061685953706725401507940175701842332588931241244357681627190285360383261095021000542804509102770312402244795273202283021605767387390460892307857176990144162783061393632535348941154814660954355817144068505692899510504331435037121935328662801062043117825872814545516487637121046951042094556507858181142601628709957477143372806744710318869416208694631593007141063138786083768923971218296421942810365959951827966243248896250429127433316560262461110554200894932151270591731939373167928785943074203544859254836515818683454783889892024218178314979870212561721880807951978868559357992593714902069562540545176469932894770391969407466532317247573622090001810658010331486829289734933952042899878383524877269358092093533825782662112646659339254621337236979279017655269764057761864328452643633589350167648854149038377899855611365828558311633012860969014355944261511960307123977492407044948569273490100710741197103760757974015785063369313269748979946107045286291835200506273701902612499628073148682783135278606388146497034006605343043958755222082403084560838913592284536911008429688971164935231021686032055729609748387141336452080903221942616496310537744377109405523023127563882656142076141531463336312614390773406366637109055133857832582798868087730405415410698058495906980058945366864896603542115951102251358307930689678286806500834289700286980562431868156741535794000859857662315726674853277217653194960181962568664670299547742087122149313212881832474880193032141900746917381201577856506095105826077737501463289199731088340016517144422185083963967190500459376978579181792617563138975119005084190735524798125009365266002741033721362806007542877835937478098826136457291762356329654652863146561471351805641466298452372884454747261760231516841402887492921221793945413754723025093708614750453489981214565362669679223470862053860624441969668391648737705614901357227421344154524646394570257150549668512938249642556113927920684637454781847624157485338242053104982805919800718865086349092445965425730295829997558731927474153279397395000162131559541212187312766128079001735891682077166534660812636920285943640650341365018561996942734083373661752021965015513365500535893332785108179959721417424065482507226457524142170889485553196295199718498532882940630603274928734238144663069685907043910965120044446499663383422245239056668099485026839896219475329217738698324342405013680572636901623982480025076627211053527701500319203212921080673564588880861370474468469851929992368608508632967427969507116290152907482227424430636612105788302487469143990695746581401056792066278262250559195740159547474958869609854108925848030176831641564720971583961732672814361009580618921829437355113417962525418327909090066304264029086072398442350483859600210013455934114583290281938992284567655542066972990610529378290514126396018571758893446590695849752873315859559323378241870478651124303606376110266985800869511528377797863637595205342349588708035342046140159100234362346849735737513994696969385083608195937224464431681439665711152375226528547375136858456333885930640828077128823877949694873910290669596363924609439553463604581803379982562855261855694672355068387646034814377620712178071917098650052115218489523357984321159824058936563604189545062927473186324291788717887456776593342281668574581016013430028872056662020397878340802166404340234472607432908862124773573967500229612933746851016694003700996669174450612490040278362139335063530420500099750407518459455322847632459305518156968506726286497925827520772218034405609610487425916662486264767735777130245350546749569729203066105943490032937305333183962300099598070408383977803329151596895261553498408863984783895982331684944704424896276872194343805492033211837171801930643886313299250149704958061781653858357598395745724343267762911190924490281769436333982796060263828903102235071268452533909067355539815047839347530463510099836376743273150667667423266077399799028321167442710685139988539841207401821518524625619916546895797781189268724123516688821767837604236624632826320124229508971706043406264653925867923355654188717926960962348288160873692993158622289855938976428653799387131163317311095019047122073732357968736747726397042987838373526474751757740677981583996295214981702494582957191156731132753583440919045271607330042026669962365741944561388815899278434779638817389613477930310620334699188540210177973170843556646740241775811401288714158273621133565952071445701372850564289459329556294493756954285999508836917148735931401367249789503251974175994668322594194632381967782487441949574245004732571025622266600141244708761191375234997169412656196711565332365588162667698434375161748508591431992990636697638589761272331465578600633668556006053930742033331583741168290353572004044079814819617934613324393322423028405906896368209226109755994854442602687318573176732885999645453506384384462481799187334935901620520418627624940514778052124080488456695192194133080899863592201727583429773009553571181475132319718093232336232382668604250480391069297711952969654515333642012749459227197195826965720990251068662839233301413277251499326042187279079527864207229552005911077172270082660394503658466054800257182373166069107226665785983444805126500712675010926959472562258340387452628554842280626791324554247120461622848421049502808655656104533323726349392110929695573835656389089325681571791165155121478460269496367817971815823700733143984281001651369037099683735099301232551739980694598013454260000068880511401869314555566099319547856280494020587505620025504217752230958059981382998332328444223166775564641108997987319442405443048632500074164834327788417875434215275764844508014388760869122073542694155978077344222104700912462296977828381708042836540974798347768305275460161241079020790978325136211110505878024266286227804508630363292075603202551330245170923999986162057453888697143160085743872333916472166344297000449267211695728181826578380462234405586179799543875586888646905390728423902746805011759790909547955232911576320620121629623062161512635963915913217636796954714915165722813212453280199696270436479314215372761952403940882400174973009907100235939504547061626743671526789638319181404251688340619856945930356827688000352301649589543794050548229904886032718295054978367162460938265765808414723957715569309251341925623150887681624982416977391365230625719992054136980156310306429842798750112225339304648051672617686490722211140097522767367689218992078358655093872473603313541302650194018616144057969263169694369437014040781425119565570983301762088789205258367243131510987486801184245128862239573548941491938813214896355339784507926843759618838203887422125724628662011837391989555231024076388431131697041762634502591618160278884022373996190505344708798745681526852687957894158086932370820374553214525100660489558341772378250263600614937688639338878291240963394787099510898633121706724068394514994341829179660613060324852950990465486905171384391461541817443617241732923895613248263759996552764012951223119401299161423923678648821665842022961322018915087940740184624288690174746911247596260265616004906943997556236918634742194857221203333321274669867174324351157179577769401444422176222012572200722242319065439154476556958065833403793997691152187159315900219251203013257547476763248459572580055535489258194188397385133224442758674682332679032616338700824896682422091518668129419533320543969379845865536949871147466099748116890546997300585329691024299189061418404749572974957806457396921959297541743834261753449679584932754365460066408618686204016767077755817858030671522524158383208933733648083699014421359623254740804378313619460770073692957880843854403885179865065127290437914293038154529181128453435448299074718108169938522145678535554907225922336712470773035527421476879644610380318016433369946536832019090428809368034460675349695013264833686944246022531904344804376480357984373370662011613162504088791390573127040985559831392678782693148260212861706305066806889831843470008550864238726682188177159736411823150625316117182894035350904094404445447888828931909483810834159491708255901103954460276415182944114019179509518184092449962367274984027831536180292716825731768839126469736044322507984956755788803310637556726723682335211691160298295307967052033178144595709288563568882517551914419268845868538096054920163659051276475167934191391798150607967589627815569889687857953292913013338048767847386076908023657200224237911614184473257782433988395412554445712570172856790196007813555402170964049394048698491218784996603375401282010104354224128974372191919031911379165380541716584807886928962751222680282617700174457697966217200558529156050599891235284719780994395297730522071610431695089921207830646295970686507087150184424629878086326543437790081902533008871563967200870245912980205522511227048462168992417398369440897110794884327434355244770412277222365314326864718600535713549489584569888238003887313684705682213958862609209198288769351365699449324867185503569428384934986931716748669817652570020666037652323664508913930997305699876082715559156303850132444634696138353086246314219173980353527308789438441433480154478945317288163673253663026551431532575480125350904917369952750249884318091639732056610867223961773771192543799994936729580035326276854338142216671259794406005727986388193207156218353352987986876300305604409747825497398558065197490113603249883372523314383411147968825787090454227031436714326416160338488857461687575864115135871292883679922644921749728001652518333129284911616552117658889596161438702751312437935886796022316958933002963950035963454324256272126722484839111083354187683585926031728067735575803740947101223237286766363111257551190559859077705385889248062727749413472022856744114654923129000366682261031735909682573908049889550645398385851746293163561784264280561719968975046889893480278340814049479275650472470939087909846137068506949317198059417566659438165984482342665983963824081992767811170102901419231302513915519436026138690430416364301941868283928527918352194572661522478235182604026111288579676535500835376164684005830475408380440018806151486985023456329298075218129202241531076791356901461648959778797139720975760499128190195627129972062720220052497112658095515166675224399961668242144278731622602755332018455203477615568702977472296649781068275275221744327778980780650400763169581204311009830924099556602758430633095725632968118283688181101109569840867886936376497982180835293181934995347181903322491067355933162650886827030704160138215890035191722439683171435026139594674756040114079930736164608088317154758288482734908477533843270741307266774320125775965786037290196286337813227165657544335126173421343286004316653803911812707321772648517363446768259073745631681907621810602156211359518775551672179319031820662459603961813056981331494964308887389821593600702500043218352520571207366295114027983905230166402175306389512363283355672781234870891747783685290809509833599875751980066033522343073390092268447571066790001862387505943225171150118590784157845770643815218166826692212225410489169596809436087330969888486132443446107946157869888923105589432211833246768995597936721422570676542771489786193853741045979977043042123506277596258287402342631934396323772112037713128543569548135685783392438833451920222341389579622364565436090375796586797382415221301678756036807520154106464755611180225672998194162705501306569753192852289537882115787756489880403087730468859596908958656216100613527000901624542127783534115313006148667175320674442245492590564550170917155593250917765375362911488081827196330050778041358091373431222448979702165327008260949059779445867346362061425612146890426771628883634025057077478116469746514769481109326834236753324771299208074149132906879663877263304661419044380286876371056373312345284114422542553736994135478052556550501595167041078035677707960914690561107259444578228810039662884568824890828402302405925584051078493352578099960483578043134279071336901356388236033119423624007171487408856725046515235292512806140529259503258032505976129341278874432578986366339868280840419315499389011125116842764244519035556856178427358940066461830180415205543129414879602629036128652809772037111361813007767557524883770971633166439364666946568834822714201724531711028300576282007919312041713681698523099378117703744585283441324506708547567661650540979602880695525489258552871766097132346359131716843438758604429758498812313593662058579151027803324373800291211983361099320354691844166916466984580027180251318536805916618389916153770265829857645429341679988960522656490419288110865361954485896352260609184869829494595234732016094649856370637793734294104540048227916319200633715811727959118062810351419246440394468906349403406192711633344327435936664763773435647509424875077046499188152375373108860802695610335235675599501640197555661269293927979522002120859525154019056794623258690158324139858711270827166682372975448136314898500261831800913396965130892234807766849521335703080544503443770219463048807196700836102901376778350466309152679382056521530344210155761348537043711182218606288506987286992259888084644142448307476118756368327453389552852140977891352305506738225818222915731935032976419653428055539796682038900646879781127754403887970098450871680375484264265694643590995553431168224737393931158188139909883032849235814928707041174537115751599716058635631295503445757247805808369142192820078201227569497873299941566073259011874695705256162332613267026339258534972870419947538333601225670257111995320842111798600123192403447344378143774968358519496872250257802407371782892052143389349570739391809419396583751230637835910675637479616128187562747204593962808329017610820413432979050783273944597740053092213567030631553144423812139440289560119496875683622076569312090981333352568558651038004021738421477078261010127092700116108165593028820374768302789502438966699087386056437960066635102126867465845912117604013473507423994784598013459533336885604411257848554777829981384720219456509096623013091710589054351591894424088822562116715128663582027190917865344923720711210276294205859790387868836380332810546236801505495744211002485075205621156956400896405850662151128375018190538743883993984250378625113081781569811270740048446589137452261485455590100641155102899362815882046186089674505896329796370957528299901015157056845331990099059521337224644032155690666292354872607281193694206396491096553070100026972104212494148334334998741128569050528528114246794777945287876270787574537962188270134438205053831797028363950162214354755561795942184460485021804172741983136121054068538325397415413789236829029400069704694017995110585474074209852428752910415328916899531580510138436943933596509778197894695940888852365426618257902362886463529025332715019368187864335616796382075466940561666348126122964780515172096490797525350352311902865850876956214941846013562822785847804619027045055346968559045333062746672507809559466750901725192719109635128203473192975077894461580212448503968974866363518081603763761186188560814075893062211442287194566970517680518290868187566042503437169294341909917555692244123063204596535144470143973498357917683589719093868880745662484787228409448123442682096733973470295012757867714884109239223761616095633703276333971981122731322619107424420540771881882852035221029724723205197552458593853848450007390137125050736742465588134584176963469883326795512901734227949405360485929910529891565305974674494230534424368312822897049521667725484655435175938824504915412670881256730041544177483422737884944888628102364722207870777812494139200094057213556330765942726875175544852537409948543115250233414957050132089954700761725291427801823676985302599240476360447237192022439977614249605370812040336462309332347597363624368007722419149953015935025649520270515054226699793133679204305295555191611073434683073578740509522512008690611251754263801241145311938049595550201395127545052825660170472822567844841100190950866953372453778763281944701693480080498888512875671327321634801473369567770413522813992440593345078984505196547379647775256644526434465845379677832308230182003685080648879609052809404764794727256029364424155764475781389572589892650675799520414382052156583624138750676334544676993900410832887154551091392722886056485212846811193001719878998385357494798799370100572941136082596082731982531434815187852601137047964486255748341179581130861265266542012329308080954801311352843131192602802103017975622670481737949898261216192039647791536687339070579809494340481188469293742339676477716328129763496100364236024794425782212815245699991669542674849043170366120339365490667896999537463660760037697759034677312068626798322229971257223137613169943776656547306361370220693906387293495205643116831450080723015918964651368064047474103111354152880231784552414862603394582926336876373099169765400283189096420456917475517573270673886342542959212587354644738326444057711459495354134438953769462565650356989948034371098094480685469827489093698064186553864568535935809269998025014192577817162659551351004193381799302432425049590007941827207409322778540816713494208184987753261263154265561313921091214538127894787214979263292073304361808176900226707620958848856739041906743959514626506353803765886838956152574181480781939603488350223880642066495860656135514588613533570463065953070568051602672918393485986031552166959046779012474665627976713214528405895271399390238854115532433008931705376404441377719786037192090475864233954283550852406941949392774017651881301478148617070696240722490430494239581634403295365264950255627394078919399410499580021912804146475147919629822286922327922278815987920528593560436856999143279204314970947438479586900110896479148668090782848960901742209132763935679503838374573608732648922663871049582586011830574752143224469133340246486617058364712435406686632361498960779832650025659712754484970245147503294317871709119159130470575557954651036947979376530181493436476339530500254442766869193168713626401781411253979624585746129514173171583067609272609464933246635765052808529639184945696799802302815985165223655566216457391993570011796803004270895823799506805289465556550813587873624326565644799806379664790129511318707574037848664137974801891655375759280383798775707701345672925471357611547888400861028357206438961784609859447205408768030682243545345096040812006253722048015512363579903809314514682619181086082803925304412787648669419356250025068569122352199540267080130490345196748540678223802619253153359717814526854826284964199868127062906032656950071783907827472478971951911710174365002390056147294327531409469439671695928200936737275557270876972049134499710786300034507432969166476679090605011381683325906632679358200047112275810003968753344465409209882832002988195870846511916177669415942229398673510168986450384900111056971301737776751038507952914705592424905423863513273971710929063672933418832929051793009517737399942493262496956566450023069438055273118342098160218039936479063769506896200701584912232521035269474356641305347288066450064384773859882443053147080456070871492621578519466786130278133327672792650910880746659735261160426976057657325372076035252062813195805200210950929067711587148539793000951912567771508552631142556044332726179417201167120655506130463054930032140514817943703405223078242413766336015049353390092498486030155704055195365861779304282449350663602469386498478375008943603856528003615780549220036331463979116434549310077387992250541607202562880918192824632357628727976540029675550228564862644568243708795584786796125401375263540812128970829038258504212339322865529660296760338281405969203150939776973934527665150789404691941737124140802006478582915663079394104044129170512764649231110850075746801399648298070957719389614111576506051072208639371798955596791963343332918751476330775416018671164049785250311568786830026626764411591240825606210464484732237114550598281119198905997180527879282539273388079447462014033233116576801518196476127486173273172502846333466742550761273377549705539124437659140154703482170308761943177061416887596409389971622785053893824261245453366653084140383527312617642145896909221705381964371704881172131506601807088131060832424672042124044395257643472409146164130477950345476076952142720878742586680006144479193704194068558935873738538962736642292855237072622731744271209774304870764940158515671631921219566677211089446716479795646451418641547663399333557750751889382197250465885337816699995396891637919038381505282334419479547356278538800895389875972765130326543234509252556930952067564107488252095098515106269794334019349076681253271932053539720204450835565905939227906971582161229375193434304670770308642340353017148709571500076907253715910650393554472678239154826524168498104088094973098411825069503633372022021536120045700664662479049953152208042594516905306321073888310510637867339834355755071055115611615968128112472274495565322401003021803488957458693442461983637911968368539476282432204173544011681013147989793823334896374764874000606859282130869932583931427261220867741843210650472190971343046818367168230415122201866210537520399007789649427812301944936125198291713790794949037792778131497775338613995229138071794554252841055100577759588024308545168690160687143072209921730008900463084035433824177534414424097284136587326863664424725771122726516828022398282271329754190076792480154491851393038203153540046647866132165787950312669382217848953140618659085384577098535422271729909939828792614866252662794448087433924360397593096551598598439334981216148677563937289835783432228801170356297079227556864981242961965434922399875154998001842279630091645151333988776570236660988703770681526012682701017060159388461002287801665502564278263454066143860529390137766273673088555638373676218757662571825525673485995124360160871036290257171886738496638013941602411214901689182038949985985660569659945016106937770303948574623823521059761439521126503680351346854070126548228188120635130470522707937826153923695333935013585937700605007264186560096948399265657678544139362646497323702286235221135578319059331445901851864970946490099233716570575045442696400235526671591039129305618709990026255961218668940987345242226216133894870747058571836226272822517638530616229645634728181967427825027057595473708327446766529682651822742424415041529212346450917868797067391307533461104110065985569912822263062691582125428474378345029016571173493561709219765519579341993305583288112770484271580739328968391443674005430077781753493067488938846338981070438466393003412442330782735612227154064068276569491175844697722588546966230626352830478418830690306131662951760637899108904759101740189557229061902310203019959468217495215756350578078812376465728138505305467285226442716692557243607092641924612648924251822340567571994914043762117049715772456011090146633910965911337758579507905008530576001632936900965651901219457498790892572531794257858163272127654475189488996605372502035149890510213853905746453200703356712906645142643679713313778538906930591499446266017771747857492097403773628596245027219375719327769556013307921435011978631250659742312770007770948871365558282726500388860944984147353909045805600251589651326216922486906911799966450020578458519128226263194448048371777963583371848444111642108703351961206127036202296649038879537507553796599114855667588661728672860400961573793848244900546628624409815654926512901059197006164820823944919532589616012709296305477542593191705872764216336620693777426601691162494229201111489415409933934397366062829304523636676839555024592274502121134645533819534588602977906466427409899352945831251305945341626127806852631899236202952626606789229777898455898165995124987746055893118780211745832615938011359754293763308903344921317159043953576608350095896224879743970743988121046832385124416610706522791180462498039369891452625041128089874526045109885045909763733167740893122168067634469624359104574207185675034297372696630376405598634161904438233262242620548300639369736309471591303809676373048853897799766686809448062051572620216032605633793345783525183110309080295601493365441309824729201660438176793263217474589460874649385732639931660586213167549793114232124890644706271049793160433642809049387675089554383311021403657821038698385411813572266767151220999041196798203270237110975556488211879839987935137644859151109423403050339355789888844595891089616617146029202415508734523939158741413670225914210073970041955539417031829697084818136986013287831898907853818196824993123335485529721029034817382157674941439831661302993616924452373110531068725965095788923401735590967913823344331774016697355675655358132361526553732743359969612116728148139429250942093813873401198174714774563640579870742327291358399216865724507197625179543903263289161454621422957035057403329084076585519552390887287214101563293646199098328800205213557517764947119990759563592506834634089703444441067471486846237937113237874422404249446354763395207375455061935577464806120730685562476375091163572692801275155328145103076167293143382262445181520049287735044880389937656522780501326167307797506876180853469657379342336240179202586350769400207716681911528110494608131352917980062631220787706145737726276790656645710188969121864582269629993753866014852322294457429063324277191924573138061178244240370744318963610554674428593062701541746674851326520168990928295811216278671676583748503594248832757960646864422110393474994356157972138176106093067528002206157623646443618931967792112318082816870430549121198448995924803553683130957854896004198091085186638554614238718095499585816997410049447906624044873216420313299882778666432116956862638868556941341827975361825364047114554262085211601161011128606408799299160862567105517306565494767013923886698954954925732668373992191170377102949391325213741997355386852221576915211483629438938368876503116726296000595919627397500530872178926530321955583363057781606668695153272846918485401083190870891759090521199180602760906022973840754240879083480435975897628234756720193272358287691837180867512173934607706144897011670782599082833805081409773287671923759998347002317642012122338963710261361945866156130113504952648879985273428115230092682167018624937409408889173768275486352678930130510746622571863658381248217243551624263836115904717733371169867141221300928605636981702672717333283219435613495371811508918288841099330004677481778092383096762134812175619403310645860318002254269193716016041038796979966805054728963479643672811811820141808202781897346350483315945541993333607376450944696319738962592684301945069279158667179642942514058729268911294171040030678073634074844902363909375830283102576159460065526372360426639553232115390745152029865020856060511322289864800814632450395743688408157946214635624866170296919111149094702622961762943130266798459425758638422612062300174046309278665959145901317832713889684053941357801564504003334951081746616586155410052325317488675877978137184883509905112094063866035621611563857942110332247784075324723754742209153664905520114935670332523461126319306636543330699615430130631618623955007165577843642570552299131234976054514581974805229903499101132692648311942995348542395422595569088897810910753757202246027849532147646657214166712842989046719184888030906812283871785286038121891567695014502758554037593022136570821484681528073958555348157280750302692456715461013192702429830352941575695705398341513873241561479075756027486346657057907887508531803203842111947772876008020556467648916491285480795792205714444165800581952314799920504070755735422139220968350774757671556145566789846389606604882262151028561698985011183154343176339765209193250194270813366399469516817564046376120113093472609928064370802991191693245742783839062655307634609351923885916788902421134956763002334215031264668233391986052691930607616737150048104083233726288928023831913632702773659648619848138739485011352316640023809089724283246592663404585083285259827935119436780531350888131400819442258137550278247820271085228638936456751844331462869734747397546579352460539734235035193111790579720435356944414545711077110937189375487440236098251272901017553440272932150318504065581084296689454367776938951423762721474803690715236362781726315659601029485824849289016566682528799296095662793110715260415869262300572760950179299775770559576884575848310129814131418541463200936936535560168477521596593477356126028043134075902434560042846582329293276405861085906373997752078785030654469254916203733840583284565334668670470284920288184551216151738093803732528125802481321040832174267109433952800524689118547419498898818908549893510306072007514330054231369524034661617176750307979745310037467375130292567682322779393289814148711800534848782704468168408818050658592552955151985993197188961623022441690125021294993762731912539263689404265799408047841086034763466179180478715619225605624718112965719401648684158169425579628238744546793066014167672444273466216508734356824279830295145806732002041676113904181894240537071521732633890258536137791723602771669531222803110759618745424231910138306818030341048340007050299762529379690301381133186558003961953941656485612020457297522004107587350470361613027074118607285826370430924165079043868791279525967512501489838148607101656858861062230801598908110680135615326580981885994987497356871853488878391148740484809924040063886504331441582178089434142808806205858641804937344608635330313017687904067513592465166232725350838780589157168345213770734675543245375635081517363658683112691236129883630623928299473403740455062746386303684339860231161793231272506312307299023880399660673957995022103740296110928681395470342330177843400542064928083363200110417448462386366736824310286256688956821546540854285730670121748706756790441461387235454027885871047146571879943218771185087795837004571498425191242980794480393706828829141922111577589967307222175133376485523607978186050688423155705619546648180022727531417760618027791418313038222457152026865965953814671411872138810494630728649670713313598847437946184362892769057749113595535535521691656262019327838068452881352339947543599582647162404614280216956682326335037270262691713843950340362460014342428127590773326566945038559543808516289653680221826880811044922663285733344925024313092114222310051361080911346955003354389167413236051533444596028529219076429946648491442348651317409705262090232658392771338613911194715179572139039854980567609234444347141746390881128379737227481098037174892757947407563353094109349058008925375923720922622088944514277219209981811852893706586654358093792439579114165469534773396014622652651876182028334223559780722466585629753897476329389929785065815506352825774448878933820428980230357932360139349800866046597962002494366807727640348114150608476305819731360704370168841284390288028828645995300673258338819318187189455047488584689789978654077978333770474242632931182120025488563210339575138725070907946430528674470240323305083855479981406994515146663695366887872128436462268293893065327557730144881356901290553108307165301409731535717859070178917335041515343732535145924679939911474783321470063454819501090229240895086040132458048285447829536359973360214824178395246391783604946593905046500820655886166771432683373658138814726603359854563264864182978121640256631178938377387423317031318475302902880001264150317857089093444842143605205397445605273556158991634070540761738817035070919369034486897923297769377644289380464575624496199860135707303372782940666266721021459564308029748153047970426464837096338013624672769675921250279351688215553193313014061979998792326204031955817479354499574167807083675733845225591659841958084986213870874897756622671174675429752062123629047768561922801247008804919856068742212899039745531749552475231593546888307368761618344551442503072913123027327623200368998101958050813948185052533334114392656222179439589784557700416313438429716461887513161115300658259967616596146280358065729682910724851578117971533200218684795352730248840526131901029030493697624979743655149400329754097293238190474724817118693304264315071530626960094961304681470247521040476309874479196359264126468763962357537114313486812895418103868628748691810646230811743611617027347321383716081293746153437351983098187052484752322377542104041988651538938020232204663175716418024544566373550612609128578170874345550602531401039522663146768592062231319006951591426797420739304391639354702095924406705381895514372239823451872352891098046372827964483601904746845215977407331875118426430957327577335600665971004917270247603014224796207657819793185070094187087070634734592778313048355665514185485761764200756136252241552010725177902983368480386963815099912382800643123973024877598497482773111880919748832354486986518773437693171575506033316610388373272566743411139370892162663669720082615302006077464877690333321543466615292393620619400684563442341557761512587991034085703010846883987744516885428090753952222427563744089749058771878638815105692101191434718735039674875546343196264584406540982600049930333600779382077760557287929591011986817641790046409188987139580867235389024817202774750023179457415133911808515148812292997707185510121647670661141332459363869985873005044692403903733451961512024225495724071418068073616713251744980489991643223554699568962718277153956725394716819145857171772018583598452559512868645096854378493357202360367892248422239418709642972409000809287492109591578181621200447596106791486324820286446921327196566894668757453918191460407723745632132655560248063513284388096030628059897135717291679994563950596657335704950049903590224813518786363313996680267624387495139295073082149477433447852972394446397198067192591324208152047327406895753538663346137659165348915668908861315199227488445119682686341090185869831639121520817014535347503090098860922066426483680016715143281357157237758657490751453864273814342190462246916538127522134450647432844141860918953571252115368444121725114456966166238519662705606020973732139173461689276713715626228471975064876155476233160152637835806275231150845385429461923692605323384409335143546421199957930281430421784160233364918802235335395614894746004934846470487421440039383423829114325126655698250992573450507784952785141182195730283388162772281737141844957105066681021683543905026859190508251962769117018057239173109908547262862688342049585840701774932322974131943843348688224814519096821916806840776720556211939645410878388620314167140966406352130221812988850209612246037645199042511318572728202469691984985851835481719568115845070319814843881263246770394619626106173993647719493082313797901430844597723013114561244579318285238332231902995367686689865593189321116967266046929823963645911690475827997964893004890046807485172868948068042548981858308864692256483208491480982877079556953066261236162672000837142320523769648826710767558535119674214503579431245903636041560310420957396092827021397023633118426283451518078188132647608709641390067575137980787085581406373309117372108601771619419209714211320418835291340985284350790555882467878248104412953135771945907934521400125223192007083683369343511472597204850441145830396423212667534099894517580289491839608758742552358267109666378336939470711431040085864968086166874228345335096113807073867997762968039089465318483189655983437062112350109841953270420207344251289039082005364456196176389136717493363072174551342691199770027886762711310888465069577429620896852216066348889396676800275761532405449917384499186143462641460401824264423093925391524100873421541481121089348311965944308340746668374549213662969344945950262028854851460352485158840967301076784817346939380078603087830160571602200325589735687457079542169122543890755562106980846480819779108152809078567745630841061167749211767924995744518349064640864601558346607704276353612255527871822854265486043264486975963513608982291682195513041472332468845570328086512623439594259831206483325523720481555420921809186999798090497734571187317956865898819119511319260193255897515438808347051783113472357491247176353099294090980972331771708274800067835505861043294777839006055404527952811667299515886888275561371608974690301097193921494644350184426280807638872853524612094121020434020901751920021691556405356915461246255449297792344500639908250447958847358265679458935295319182006389319325416817356209212191346717866518020491645015275227141697262539242728393509373780936347176412965832216744026257889693405741318631703064135733513611246443725944244447958637048494916204306608187018782169945885736596917939432549377423597436176006657253539948744821059349102521410277688604103192410186839682248732758014781677008926302681546001522773126595113195252487485243726580988989345791520895681832002860104660066047672102495283756676913879570654979506779013012679102331240088284722361628118433488928753943186137150194709722610402442219676710068919559136820397543139292535289740349385526978093819007016879145642262754554497455276585031569199796072115209537394200687580601556626881883808267815117429213797169982895651213242383963311888527442711402151419218349600536933528789064357581621864817380355441628633863152461571050661444609689528294828483665353332795347140917068302138144697504593063598747663053899106450099002666068112581008638370386925362505734130371540343926692574631970179454105999394284562556147844635173935100886363122235902607351194211802773836635822153713363950836991784153788387546422301782489030814381809421963944483938781062263545618093896867561474129818678456912010050494280925947195556769753535546085169258483637140000402716313880074175991437541448397988445276374426472910181630822397767434306759809253555727186918129481725446897196429524022910466197317477049575808898465449534250235900094077509086641798555147669774196589624406546978233386325813426700424737876853517118765100547401129635409056394865631553176951128698870209445340404307450255112801171797274051541770554036716440227244600526718847359514424783304009910452676675340403536825755269455355693798716790556332274429600701178894693973177396012144685305863544851898594479064257641757871755427334027595046369799006651335742215927675440174042433125673807083767165435180437351601097070717069396822820751948961782939249637530773270732968770523194492192751138823432140266772450641752553621979409231828058027797942976317795152520594113195935205493376945351077010809683386771616425963476571502021217893224754281693721704165052840380561490483779439841659189403757092963443391399551731846482805169947305519159439794782751497354226428431077068756897593058605539864488088505842868762753131589154824268275511172670593841376679305178829932438204626917122687859529139757189517698636273895373245428749536611944213130580771097095205412458721910099075581163761623745324704748094082405422608560967131028544492115966367545702164197980290012650679642265126193196356308184866589235239350861348509503883712346647625913818201010950222477561116322270254584141728766368557548935171786231317477185400125848808049911638286935091379962069255600373091469122778863600902777361414059466778754059985246649773612900927968328739020844435032132953049328791268057870461775010936835975003693550505648413102662685964686705306352803629195509652875598754685898406249365853567022102669493266224937899742141035604304986963148251783412039783955969152465836869911408674243341931351622656208422896171142893039016218060942544692357811773673411049548587901668640733721758388621814910074050694525586602398981943947043758191126794541569247253266605092471708743057744048780198002580181850125275204612252711183320948754510278473822442305934639147495643536067511682512274322090330822894821505038269534995640092366197664072847257487894962414351709498776174735754205734774741821305154729828889062608113747700908390777634091856317633479739642263553507652505322366685407159358716681864868535255209481091418173831795473319838551626013549780234443300571409774211519032483773310859250346621025455700393684163549520908197099777947176542834481240940235171418896179640571953853172258806942793505197297220659089709594973686289027815617965889206793568962050014159202617850785790692996070422048315347324052173625590933261050616239220172695285105350737003798304976434526295840031967715575471648826977071498522894668422886568325389168054168979579416045165493525838006431616410215602760326834442765320046030434989091262424744160797295744372845314807981340728950045294220693514896736641426861410913823176816766379019735101245141336724868687022840504862631530123237107486282451893222478544723619718433596869431635278263153525059751903863216774392534278109336304230716035594390564212702956853729064798935512041890047348740673503292576290673721525056888049486944578798337375079768682530790305833510365980293589638045867067925494418913073475162341994146166436588431352231242859587101015074458216295536782626392631589666096774364212550921919373887230266265634356957432881203848804701738284586951919955925994414637733570791567934702929839826934296333139324147905750435948249773788876293456568001775157784958189277639794093312614334706753616440702762538176783527551675844169162898492257248612153464543382697020420273613425338146791441000626826105422975568556973285260179992554973222427158489430698366010938091608398853176885819340698512235443900383349899698723341304887446659947035161203581121305334799618578284530010473413842128578092530153523353985976582628523404131593736877649766487431447584660258033797685206858322648995803405984262239605101307030205937829793083005641188027962890474873013647642724352898753646256918986570329315223806602070892505322055815105450014575239698087666594119931887806607770584699388081167164841837806962793483504420655965254082012469255702272069201692198871446098238997157214950002293677730596202672006663451839802978690077741221169479293757495703317950601312283884355089570638448529887621860714019572889218645592023182846413633015842909293712508512487547665973412261990868825375796448304191122529642167972946626455214597565277985696296431435075791770258399239210977671628380175565440425638272168950105491910349765557712329354627658454607285241631485497540921075254483854571673961415061640218323450962292937405793388919915648854874597489756555601588726844926386327612730199043077820567348692469999146758247554472400228450097334645453248600145629217640623086360493811762362434862191094395335212071439974893635709531361857140260636700811579280077561188254375589270378396533273212475861118634951210645738766415610003638437765119949846386382080629981163859324901953043721077501129835503477318423604949808027970131960796880727474347041480068888608087276583401054180063389039651975419948388723261945197656496420087170495730060283679028449162238513617082252957344386603916008271796455132110829737421754181467186124691023708103394471147601556362767406472964624710327491980131460280744027088389482770433061587580450442558155974029954399752859086677379832347267927736707191380553644936305810039257371419459849318339546981589353927050404331817732394098031505882318215295590760228963200920903513375712816439897591957956402091266457636659538493496989387932146202721760374690360118388037018392347347987786395719127422073617141521587154466909986785973579281527124609383379891393651648313386729218438664678047946272662721506175477553104546864831844496439454729116519242655680898216000629385531105026104706287652447817480787801387261816341539174767732116728516863152058809275037972032305695805204513577034783225439989455263941768445180353779834274744550749025366417310326697733261882578199666375603549424347496773708762807019541962205450034368997256809929128959851686917566168165406079018182887578147300625729837021802037075189284501614392677575198739916560874235592143486553096613232282503858012674322485142196879756767080850889778643554726881423584388260348775512288870981394219137529113061728280216140956229065423300477406340482963201761167783433159003319506643944636002856360849830144625248415776751247727315805704835997903034908241814089998542346077254627683710661356361462273609679372180262470565191066562709351594178984329348049791485732616180722085839505381091053431765576985235772166972516365140016258426611964654740335674541184742375037533852523647497748088546570404457560382439483646503049212744874646938617967012123997212655223771734464927610402640315565942496076695353049685033458259906527835480541224346816812540043052832822886558845498965529897822845293746916547239460987495111435428302317590295073391538056626368834123984497915727218709525737330992302361790171677520210150685039765336965617792288277323639662556791265865155386790258922745517777872333992985575571454408503693513865352691462278323696952531621903591561059929284759031077425560542803231982942492300598539567677303065291881634449812083509523810734434232010610919586345661259224910764660594502613931987822655202816366078807533218507751500092103636917927856183463776977077050806401297556734720328280368768534507371407728524152385209579506513479150306348902737412769064685022816114983635646663901649503497304964480587339331555577467569714800849772513348298184225161635550307679889992154961967000069147940852931362668417698084044743744342585585833901826538901695595384967127153356996538754732527546495729692208778019103435238353936494133413630516956297392175911046848741850169497108499615241812042918792118540854146143404046101880566009584676034396710436890978182772815315475134861450174526176420138018598904492783499488068397813689744336694414822455466323849285349072500349019169322999497912091201155394893664019481440587354099197566194564805671107251338898323530427737883015302802399560340744145462862902761757938538913910258214628991562765628236184316847998911530107829779810724351849566639257177379497119249975518296064376490952250900266838264147871068573384030383011682806447102586232238711109934570441536302705134911752511213165979847795620975709702124892259527747564503798638675898892926003759121906772038904487351746753268652745692229577703090379357851087253043744911963809881085283266679921386061045057292243963307372249753755527823929277251440744158156416434471654531342534282332522440779073687746194709284354040414283628059210293044756523383957298034808285415951637894569371929060984794161917421175214577861974212083714347347144615270223401080407785250560061912984176981966622927377961581602349390811293078946185371609549090942793087756612718768507761142884582040415809086472442159492755633293712713976311282922990359679329671551730490038150529004585393181349506703790005746798392498409357768879391147514762501591932582274930060346477854085787696190789513779789310559042491808741522598632916946210179590518250075623289032770560179978001567375503101239516761643652771715330242072862587788889798532026201733034846987842218960869634318249753458118108415411761743985467757916934674231769075085738212752894749437089612740634717270183389889488073838322393123886879413565897945442991193762894524781391413313977286085508952316882386953911832456849606899792314491502668325649796448815291315166836076903044956936283790274962753610308195248635349374761812133847647006204588051685620416703577455718796812399702972260043322380368179390522261870843711466422292609400903189801561687034462598739576421507081610408089707759757021514155900790496491701244030184095040361770448488771447173993591335085559957955645953544032760438080161161019317632005813717992430709019538985586493671062778820124569300142259428407942260548191495914332457126200223993909462728480249317647549412692633552580151388584149933929433383137493831121716011972992845523478568577932373007891053907312504808387995070382254833267970497178108978787055202848529768779562845956940926857311705431949086995417477431701580644102185871772064066317643002547584917655166766952040837827738804338674700951592617032989044200115156479294777574828927210719845674058657003579935341232595926584945543187634128945948920793587974511431717398137091209067913589195189476384517522071631797906555114323415355811378264074329343021072808453133787601466777901116150231147446931300853411189558151138386281950751468576876404619428286553185888465018536504628131423791570961020047374640235976677416284609059511709900667144973738281768829397524138696691192842710770167239570218189339323059572974396406923379732036410656103561158456441130537803661224622227192401427452979589244459632285876115627279569218442607122430303784985238541011997493036231576562230847607757956709091857430127477632047945171046684506279392160461467342598076385972401248260077537065557006596788393133213387135624516817142584926990370516341537797490342571543738583954312727539145102543698065316088232154422322221772096772087909024044606257729120631518536694834700137237278045759787349566353814517057156476100051887093503557085406171103266555814937066689856640937673606246718409884661272020592074585307070103990097816722716742898043915015008358386426505797498982141688363686874321288632701176150571988263427923071149427633963834588858500420643658701616978473995983508876273285114266073438757367108388707939331590719361979236119127376072345393926850303734924654221919853566465251284733137528417863871700180104208152476976747817825324010233408315719906436648349924602621337534533748677411332904615049945941194229414474529795931001970689996733650069550220856579552351232100892115874665892413786984064801606643894579043550899071354994499022610450748830219332259899033174235443386390949728237991118259418348047459967048976240481361030066493917592528957730036730743254495721032320064551664060361275537867464646582548025053806122055741884594117670745116640044768667869553844478525947391352232951328002302477003274167949615498344177842320547461616954861189496619697820621523295801857088242312457558156543984553687181966966768251607088636214992580538272738788006960696772579430234691337999560314249184725078814935811351002885482151955203067528339930654514234211402950872141666153160290685098043858535160196916543504699334112411272644687561142384129280819747009998271585452832487066040001119750281758573535858075747099367816518826458237325610601766646581193248464573093451547541190482936252096046863978885499261702092057027993588791510073576077694959824612308755102567397417461530112330359234592938050897519964437189999448565342644755100144239575401082008578472594481804071200792673145366541377393514715246332171169279301194529928472188251035077858616538815611060714754699717835069394071226712179586955208992196758939734966447944633981303066449676088891473088012341017621861254690028199654603450966961450597434074466417716059774926847733438766339678724110357001714021140216684097230894253566353365500394404129523105230972790709906964509856952009290349439262741891831028735670389383119728809915807627043985539722954184915641261938932876336065257776373616551033228265824405620204515652677775037454666325036708088609130106561441724129864267151149295006260623732112027684674460938434055855186065255312715930854017943152657140731257045228962506027308855358370940884238513801515094849414293169540509629816526027273424927402173672511004565131415651437131490054629648562129632527295542897798161881405290327433842500878921940619274527339688360475384992142124928190912702328986573928475562852570682797564881588679379432100553890388029864769079695553027033411329818568447489805332348795058289212358487904733080927777003756382131721135598357171092210046747085812965915008023482040296783511306893071814951551865557325410109326059326488679804493624708645495670512793232121502219356290356380998669942819299148012473936394173345169693241229049589895843523999874934506243104035781092058401382064040695687852445698055991237358837736994819346682968284523057046819716092031839442676723084623133505595788429898616575229460403258191130543770538983121847711282079322076243666155074153684954510112247430291073189297257382061007638675893540583397141611946601816743648431353205015443087685645611285396713142473600081189748019749124032562179109850569981267493784663046107915464418631445688761342365483392938924411088098193774828696922475991081602825521621406328308035616530872826386136997886176268729494575554639416359060332712927014497886105547794616609802382808275548141141556184416709384293433395334809570187377190374340914272216568364594085289652915329033529498979582562645466575555414607733399514808300285374808449967172545521607392336785550874299544133436322540606205924693427694060643641301860033959382229525869839234881925835482956439354242969950225928213529747164973390030770389267496062427684002093295893871966671070642775448773877932034248592821128981031932279216584545755734766724393661993273152822843507887669986672274531526883704969355105725678095923300880342238464002665089671055971276670790994550448193765845556831338198468756087121462542005195823822637100086035388547576782953433708271129090527748953798535532301626345461650334730508295352144559120555510769212205177569494842907104374979459085342364083515006746818801832559283076816775928193731749122127016352440958308040421608225541120089824457897387934236022648511833634239688472854852386996525397093579376645666035399361073322006560946029455669624343179217669856856611074192637236977603684006778648645816200003151951832610943332097216848194900455386876928005859384118734313389619795943490193813652721826886722790908498517575929730454443380023154739683792643933197346739179321618631290120027905146749049718389334478862880653476295580740187180722687393736298095936758559350808077292448182693928895185385381002727584626271559080118529813446368944896410898619588339656734126923028488077983073140196674948150000793099034688227008602058829787039583585262151662324973251240887270970190701718067061457592928241727823444302313380779828810410125804177917376165768490490088874474226346102691290782321634307875249505050916325136853763123359233228140196604300039173326478057901220143615983245510846349650709511397372324447705654004126683993551553747502699546103400150003692681819467881504207258770154083606290822866447625661489265754180502498300232963824798340758451916628179442177870020985516950833735410761358610345049992082492398731139825505773284565419744617370276876038753297679117373003262212507286108390154552550046247484271737624917471453169182460816838903746563232876738181009787353905738812291286838850335859530019778536375741836268741717647432512672231403310381271780011902598566496318227970322034380215407284421011341605997315235817457956270659607759327265718378833514518129911132592411323464011487860250795955815946155345777221714541916696834403623617646572504869501977753871159265872810681865432612775479943360665695622023212160434208084345296912478666090907351722471416950496917188929203309674404150783533953483499301668305976245423920513478231679412773980802149752001136600785790931267741472452828073793374411814848510455765022288434876850985562199063583434915567274263985028925808007478468217502367609171562877826002166453859589737134693316834030388792757911394808189441926703617984068169626650435356782253797156119538675088044104455556895315722936317643702715096614294942838857790578018953042120611520063117274862781614903289845227688664123838333159142647461903617687407151120021379548329887538968130886906750419529956250143596258619684121532620717358572501519621024993385488107214321918982968609153060682268840266126942544845491144496183111180593088530563252233778173150894335346049215526167718887524786266032335467549430255425852797259949004481831188976812644716292061059324333843156879523495179617617075753543403035839019907628674162258778160323363790434360676781599949993509364509412002680822650749315630348231214926279614026958867205923314019215132047035249281834813582211815257746641391576046641558886051516796782915507656979817588418166670138078930396273816558855759717871322373460648701579162041832997016969032835232916989028605795927615724400562170905444752041451443615430572326786874424542864183930305481180682724939166898636985611074577032880961555756595600253472403066199336733174414241366207062681503394264288402239726216103718801391602909888462392189029029396728535190505496656209047152261636590238614291521789149845143157792377312100355923516245936770154911515282253448167850062465593390745890945241962999045261095214001746637479597986798067781450914876127939443682222958007696689655689254170751708389339883111581232675287590735281932811929303980136957695017620002710779496871318946787692684530749689128683851228463972321031601112820424044932568421912264012917391230915361520321831990960779789165119330749483597744061226085034890064275521488688957217618830437667487098921549208735702888284580607731517743910882266144355671181517770471222694512845646716373625859711073032666351084357547585885790751524114965131195112963217129104684757116716688238316486525205845491842835354375650817420317965772134846315876906906992487950126694992949638546207433506598198804081457363605430087010142930501149820957871547783350106622679940369248853845143948142466658032847218948324069924476567694325532268202427624622917245618585985548120312447214755619764182457069384769200876472722533970090356342439195106031576427936615790107617835167659152152033591518391819056268571421365445769507500332800654924327802037091470988485265702454318287829243635223293325328495305460812365070947001246828668468802751921752825566281674952499564608020801782903426463638596781011460946431729972462711756801202559943996971075913618458414285731360130141269337586572545916912667727408198820545526785096960979396449569018083581833064670797292684400272213637055620183773808261614227127432812346164283765805253263973972125853074712369486072194419733185292038418395648492720981353486559383264942110432839735416419954357521380249565510870749119476976531628901021642052511819526824064137255360540269012920498986884052757464374100772612295897760695436994972318723928339061835489172498135241128906169160971696116465077580522914036958720304568453551354587199868071021663363105801311948611007268438024599833599584884794574876971044230475906227276164701537158541645816409066501889223427831097226259225063558873460321679114262363253135867745934350379860643256831102332597420837377300447002381256825572324083613621406587434005174803011188099222848209139044980094805724546663754631824300256425920878763742797432810881901987187178131562265534393657773494419389132153699659146821680077849347575974768633397367147996639790176595651833840898273773323274895806058960501813450404265985259416090342925697425280493459719233421683339540908346292777542859637613133516259751440685025078776874182338740485967898068378895876666140908678432103288215602131769849045392006447980530738091330465152683441046074121449601522843185738945785940915989202526621128874711744948569506999122594580846495969993099189123839406109272998143587139246680949087746832754026940501528243262036898880609645793225797332122455449100295822117607466525665683265678668176040496919952052282130939025405215459871519074631529747703228557227969392864369106146297097224023350117983897525602353442575031880906686453437883369876127795989062483434090590894782343521809006422364842383790434656323279617706107397863849297426826883072496245618582786575832400413736733843228826525392116391597644138445112551874992117072880806271380827437299334948335347032289612012119289957977873553467594629357961885097548255528802540333033540151902512925140494340584541814638902020443421482049760129648657044882845938081812027340368390679755608492244392064827534157709510351787223205521510006814872621422537678210397903556294552079490398143502957994759587760209992625412951450879616342832229466281703984118705568708169042892733421290335087173532740352209399007713286515482191724842795507089019126400168893580414534241530861101884174768177769117172555664043593327419789277377790725084646949430839870594089527927792315234590066053884077872030096203754764828704554139296276556391467698128294918707773769501943941482945037887580351758710071064477295698108666114529313643231821747205527131549478955162950155812562120711481659022179091199592790805002664407688395356173018225001376758819142728632906400232761519224236879763083528858797758555733695450326440370363282288454006372310757577842008966917377738760096991835657009264269833913018891275700886932917483870188250993504152775656746438957193052769025962149105380644649272063904256477523069740583920197034694306704582003751034572028789721477960999790047789770991132173291031135774450350260818595191804196464984278427851413702055198655155200884596801722199228187209640328578215246080236893530385189863787759644475891805750373900394916377323935205172515952771961113363903728517041509087373440046661520801832668354737180483948009615620488477734899627446892693696539470350429671830353690680445782360235603920690852154285119096956788253173393014040880279109414640433221085182889939572640000639742958547215865655688130083649341811581542165554315245468089510615264439700439555574138471997445566876254547791927016840188207374190571412509653330780267475505508515800356118370729102140721114519398239328761482554760600806497123515471553656967115992218156924853342103986133334485836428912027872644142069831150966908305992885002619113404555156263588086469570080340079385332261787679739176611521641087189108829215028961390642177286691288052330552117222520773743832016813110669566067721940544504368123272036262162266268407904935502786238119947900815498597388061664983277846583776495936544098554176115938493190446556163458047774015877028378080797398707251113951844239780489985562544587688478574329065602394853881588419582623817735674855010255025769724462473310093764031687677786846993499794375798696691331728447153409026660752926992965407296368147434263060048610522508493687758555311000189512582183245798360745979615109187661896793069354277569126302161321341052301103481502252405176379025054630564472104883497172989524109952572471352875713772894641513468508320498304619734441255146443875240279648724539845439933397931026624075748643647241309067847821991586356699360479729309140212730311677024550901663172736635510937773535022965066733578158497330894402059187478861711196331764266506850210155404947478236084695540547593042339191822180162793173096195132106912412753632164530497293384605758817626148812937762161017788390878831990520900995122462217833685019304414038652806415131635076674366565678429577244897740938193275416480124764614654487516332234988889861518333464689858735453058894605950017810461196676221096341168929204156530476312260158317066484216170324345316645723436673884769536193666402049289825410130555782609607443851625610915718716635505660729746048582035742436870808101725294385980824631321601627291688881871764939230386204878298661481632935962173491074662655385973642484708681023643769382025703773315612073445830455392927924353063181137988880381137814238298267570135695100304676310070125823626848960556349196799225526544157087297553080476408021465900511807240724161639607122701577651912220543975065381248193778348384335567487078306453622954779248356733887009999359622454891731449603305960544516977844576168777768847230609702725727872363011327530140777805903114729356155013976124220985205864408404797077898206480446938268218112254926487714055187481605779963890993078081601056151552009855562047617923433635439384465333779050088100502367368855469475782312590140539331940532509701609533949409323379324061804528311533118015543092452024191108064169957539193820971607900561473153248284578093157230744316396841738784323555103852840856332473669779695286819414369646423260945712176583793565178907964143569734221523241775162062443760931217990271307665488041531599346027860945666591471259241239614962645409357493554504531377960889619979118901065760541727685354097460240322598629069544562554561273095814902333716003419473503099660392572679176062828076556722837208143085867109660239569897013843550498335476099961291134731375091588820611371960227134915151079180156966306327556501298803565706846238656424440043698747214652114035103568695538866040322430033656389747006182105267381266016408142651546403278188394571866604940143415890372503757901462629173931652159928949585833654943634944275894361467562060165050158437906571628486793171571736065170512087308860249437054754132936741306170251135625842644694934991756440603840873188857318323306571263757649245877764884670570263405827434303343208840448879597086768917203928052418831691769772928247491930722490843623903311076008977534443510526385797842612078965102542314588663296142865494141743437571140379249319651971772470562572670889317987187358163956889976711985722543442500336048782935024702153389772852867608004586742569596067806582906362840414252787777604595083417545770311143625432554016330705536626126641379200546711114908377415471856821179039557208136663572643092985648059087939891307181379767804152078746723427818644242784069525622051648638755515297858018582836030639758597566719200826022861818210374218679641121824130238123357749197611773363146722366626387501171989179455093666611716721516544012025540610492497535060525659719055092791197097845192090077366869826317592141659409616999970936839755808136444458558416014912596753772303494103465050023937091433069709935535805533691707211722074578844495508998811980623649929564865680608550748700098451843377033894048919131341598879040791082912880808203211502698408947102623947518028083355890905606202944277953679094698377530194326160863046374361478148775196280634122027713957160680364968989824958831397620464105581500151824957993995971819694974902711667668862396540041229059818524120192626034689654300318338111054401185129055625065972724785621005083392793081276873030438541563018973855007060448677189493642956861335463181938491033698185577463625553803628812509042538373868927359413906416706285108202168245397898579816847846026644189878925874364024085883916837365887877747827924182287036274847639525521235607066430010922482625764771258338779676301716454569340887774025533289628909792386238091233238979439454579859372260052311173539051768246283765312045638471051983752724790353195028285889254401004174950426220702022284070303576512125532541369876055245856665257296341313372140660528091890192478395654805325816946816332920526849346860394089313578850420812257996307692980448721448832576098853069763776011423592268457389070802839993827848523392157186446885880449205390539712321296702827749934760368543975844140993754125982682702626570213811793048495336381498847727831155307501511781100254396927360308595602116918281240655029802592467797933344429378305530364556453018110071350366213657241225785624564334594218219960761964511520041974776367685120888551738366885569271878135403697956026664112916913470996906001484196194613485935285117395434330513554481291377062098536910498801775105456017745013889940249769637136015916969066605159698569039880392061027102700168369137002656870201782448106150314488002541869423605682968999088282411813392689769091324362458251248658528319810458148770072756952471663507662682766412233146010258769891068931007990190613111207609541969808595823501507698486915493764507189204055803502517458581304276449914561460624308242270369140497513094923405481243616953160672746441975351120447703224805832708761427406443523280333801731981785145587729178450311676900249632525631490729656721056797806659380116901154107982325404353314645825602696227050092958617204386553992978220659495857422860728649384162475031374831190634645128033988651069337655637906034859672392034285539129648093395612501896770217560489852105561760344385510880948748816815056269412433068947628147811074585961856993061868057359876778130150750534200094174917660587300224051360083690855553590377405025812885563558805299559427166359838282547878382687357331642226318314543718888500934984598609096758034623444366702771535747669101149210032331466190099902682744856547099739835075938418029633200285761742023718467074290292768037824796120438853751859465025383690841519576842376554445502965073515833094562144002283507537035998730317814663097424971466085039709941194209861366636210040971560654659013016515092684420724584580591039041684825544823494156929413709436884281172379031851887263687147327538849512864713832055203311617978000156654567454212785580922017130387136344017115635693301378534395816167224105800744784882202084678919017058394538555996962008301054027352349446203950723737707557852381594147573225899573520577053963599134843359704398143122412106448300354905648063677619783104195534701461273691059213161420637900582259369129444556237254370319611931055143638515530502275990363169343609368244055841698843313560605044767941478761396654644836548639234616706451887681529741577445963438241252055871841435431708962888453682585837772466667095274767553974287309602115221048221312107531028514582044818828675094334202779141437699759354433171663268667227323617255353903171017934205482714614317583948406877459902127649622495698152057237610221110603381592998298591456595009379517832943482069298019226710157418217538866639089776032934747090266471183103592746200524721350285155824858584797898577057075446441328024520866128919104356085851867154093062171220203207420417132647187501845882712853335505489753554106999411972800163588838228690778802557889595853609133165511530995740118812849360997300980087442355262034473817288640075066780391255904702068894944315724496550135871671691079846739724764140401252647852559590979999369985649782610445207973357732480214021435260707079633361164259523931234027175838485365845180000072229816694842390209430615722097003104109858404603973289537486566805633058251239971204510588360722159143865255309583945152458238768461620789417883314456850209751386211437994137082982647652223078160228174262814519541149791493029838702035864022661357689640382309059421566433239836309009106676771914243486182115384951171746291014747720949896242565151181288915806406326734230067728875994142897299685225305926532554105578766182192290751458595329038017627440781105662067625464241841342555357092860988579302520224174738718839315471096438309155081212784943172985439844972908364140815725475813677308213445815208993268383725073351420988694829819100808440372087417058673702183693197277842667005371378740130875165956980433899887387979259270780426084304851697473043989500882717605053271445959985435844888259134463621603661205066215038645260880734665354068032495595798836483591115993458030986087584720416083787412401163640219228708422434070815338661578996569794829070665515604966266496120971160830985892160939412765606657969647833938540911715062165263995879641777860856236372942973764638530091800877662348137235486424376962432460068419747193663577321429535136173931410687627293314643716595377141146784235139081190548307198889219242672481622361960683511554431307666874572519999554387684192589308050784572702308774356026224438033719875789826244032842912769966295578630488472147653732645479783246069280910522594477585627319018290947273001437327625909318736391357660784863955724279327395926571540572725222183564434979055335854088095383976164274614274692220472813563182171394527785467476017056202916917571180939421132042118381713600612723495903647899461797966652353155424842354197849569307109467155961314575055376995834509758777511913648438926092208164493443925167248344005496413329564257035311279425108939953254154762977257258600415585385931375363436161406418525175223398380822729951624866488946893920969540859210939438203399468318148325874940155486245468578365503736969264120287670688868370242748692079611935062607288057336213267257972463440114286704850161089846829849629765210146748809707338844200114348295756175595974056062368189289122215362496255385720622002447292100559220477822125962159456776634456054518834558079514214444688562228311029219185154971958304356760986752278431165304353730528727569600068688543998382634641797680719000731005329777035589188422207975923705934799365481117465260324673009781682560561944098659982471722015876465232784422857045923768495242349329177825199497528631881186198268303093528488255543100047156232228845993114523773109145579371495028971000046880691365981180703577375798659203230422550519389828197059638566883443211342130753639257460685745012587135584583240509921423468591579197439670999463546548027780871294282900126035600188908599682529975672833548773715829839978012069542123829197746585400966457728895340012643881513242093553654252919339081146527468099052273097419852553150856032015204546093398972004156449637308180770934231588847869741583735092886780409661960214254851740444777251737039113280322532730685643520775229193487812375933280170534158198833799042457908460007759261830306738376970312876908995198933955624527824145268668829726099556037278971840333948146584288448649986775823080265806104254109574906407236205418111709267700656701116473393609018771133556743611822971909617949826889346657614857642215271096743329305602947346597270457763591931818274109268912623198283633398293765004476167536023436869064949355996195093161841723512960949324719026294888960898979414156494025751635094732043674312315877879620860582241182254457776581501001906554690325651860046553301316728540217491219795213210076716210069516628396531061768650675863524985849900370545711283635704031587917538232127422598186379993019306419022574466620857265169456053913825923282703866641490139160145129314635559557594771030823592301533706854354858376584082117535002343583396575946955229293090031466114161855373722710044583311781621365577557961853206452350144591470249128460665867390699257621919358861548333678524438167645247140994436976912059967554167971550382708146159693549458732475526762753457433103765661616433971023918053707490500998134813577021538284276322726345831889234541125282273236237113986062548275343831389208521982213551615571996834138998828151121312703353938115491799959289298699300859784813811738332833657588762501419570833730465822044974938354798266736175547912732243703474547168343353097465309706411648151155855914424302200432107576898115144358986511873616012791192714619656076111894029450492662097985351069572645658264522576167128738413091026761962772881349617972738206911504712410121134164998449159390655949141467731422116714343004132689079032175731211081265061700756989883007261442557981739509083209833938654711584296931523119702012083809928480061104746404085105523408349300731602873491539233401437339416852727745012987269310150746523863476414114729321110824560143826061557372096241003547352147159634926927057333819165567238861958557095164140759865371659624688173343860949884653064435583767208961392544340957311185571441074785453884082633035282976443571641220386710463323830275431962983951966696494997577836356582907342711975779024841587052669529291573244164663944166493763811999685930845031074291983596309903027952087433015295928732002285400684099755322450271041624185889255443440884306640685121739642492901699748864627962558744241212803455566326084738836915817420824722787597904027726425779530623025176864488061245491247595098134239077923688659287109833105386685163936282221375391241650589668170068108427317518798758897880495834638218952445947050346290041243027961285795216335968952657538251545810356010818782583724658397080242250871645919147965019201308320007733353465313773901134312923664424078398394128658939724068420480433098138962953056699507119484004524936586678113348061371216516167794517572145694131547104880934258063770944048248619384918965834520310615973300124599516576479454427442889186324377239706333931306923674694870637714880621895128999814902715878543311250298076552811230928121375816308442946284458283692107953506133273113496373350368897543599950997753454062438159746030194174238034665134393897847321303509170019728122669649458629128989638743190239054023710281914719809579000123623967873438308778143198711505799875137599637754367571156280884969200656522834084156422444458268418527076025147196436599301952702834857791164951109069632996440388006629903474131290048627054238828157915976912180383598277226527810382550312487011601546854287889738816518305408249146232361802434219730921622843604442587787503793933612258944540399367860694067449098362390912856134746689920841191439705590959261982301270523713213968114718674631848830818438792974089916389344179912821870775444192258388991675637063377454209505642486009799877548783500464413331257819639368515134788788164585720011594603981993912245619188008055213837997346341176221061285484273615771307825470204511405129762091605220600449980748927004798706694091103809353470740104343288717405894108801100425264044382987157870439350053772532688190362979866019780334920062048194342486274317819097911577049600649724100429905649958961605589181067649155722884988023309017666832056420078632205606919341763332615310434373848314362719397366661502333712989685328608155854140744283601528844182905596451081048130974650922997748042452743893918610154161652426050082376340206040697591088637617777313612518735018355350187707250828314022418999160920183085109401896663221718218307475528396017345602894042790034729186517167240025186800208254567259506830405640766082045826176987327637153631667342326838127747160691679764412132406572895218092919083841114403466850648529232144502310515268927869371584287073106140071790786590145004612687250915883503025853131485057174970516594406017178142864649534916280521895639294880252670519665198709942774940568910827873964946406129111397285237865827686530867540274393784315399199907338852786800708399335065686966869366444901692890614080819049910152412121991258596546846603688212554634098753466900257096783588336686705994423858657824231210569948963019835685416284521357795514783958965376929330675091642443132612986707149030227085002457498186052927906239011584119439574600566178168824552599066203462538269068229765586106608585639539570239656032789167545273623042016069889431372191379452503456363645287546241116381779111088906812294639829958478063165220835245863980997013441672496948911369897648532562200102312568225937179093309212500723085094883289491396904928570388917403387731028453004174098186657184799661269443996029528330947108125028234444004908154593040471640420661534433344884962811839348604020157167935108301928100027469651959621548637053239899747277723373958326038634435860549149447505011542677615145048131724017552001097375985306952098126281033025724015248821209090638710941372674915040897390257743341946950706580860165357024156970432582618392143739793553527240422948687684953690336751287345027777237391604682552440614246136399512118648160693677657328646576522986772401241873863391073710372383116821635582829194746698488746593116332871527553071085154514768095075735077208201650251433706730566417088824080903718457326798380280153837477579386541936531105367109796841901202269870536446604638004133847544437523369368564628310369382236704852692731010492432247374956400848006249959946159675703539921937228480184663758840933051746919973410297639970383823530600024250137870207140419892861147464653437406260518448237600895217000496553345346926200303132478149649693056953246476295599937748934458403561067284855345774294708720107318188693788466373907177040585394477908483785343326261859756424637434374773574719042804506301272463572106760088055578741571628881388826328904602509090240831326607576629002571402354621785972932396403401644413904868560950278343361450777025339425612318041192004327815159991624608714648588031702857846621017257535960921114284166874967921891416461374395303894208804506779878995179439035089380230970435623959425638927798043264970705708393207721445735044934945738105023191804516243753686191809444018771986114672069089289141148528531010590644879462381319322331716256394074645769906461405586485405300114594975753920252732055521741611183658282337288637998548181287811699709688482031205956154673916627345933496915885910469888888494241988624832001406747411786908964053181665837471487442896757900553054730760994844952158295123011729982590243412344769803622838173403643466344741467151407590084006067153103218833382306702720938814479789740158772909670698152572279525597293743837474888672864969022551319243673806573845404842544023452768296511834569626132945099603044458436303392301881157384409574665517057472852829309507801254997451934309541543177931403228844020156758680810202030388188328942350607726187547959591564330666963774388309552958440060503658732512781821114624671005677661593202795635397799267722792040655830422710740181062177104462886713568702764237714676680544170837995820597952810415250606007564749576270381191507670467729433242670158024641303315505054704530295528852403384074210118890266701022381233481064352035496515901282747857435307306034450574163376796033053925078825898381096787102184911518069062278350976664713938378441000911700244746485233749382760141194540977083469484244769759255938034163335811802368576171752461724424942948471270825976168511301642336080898027438623706764558403294516547099533409942067980710576357844959113759691041304914587098538441189243541229167343465888053873094204438343816767708839520353681397628359826517989461967889823355911615963181744667631151217421332490442731485326553279013124954853690411135475381731101163602750400643933068812288849903400501121548900866106732220925863634731148309591093690136183793184564784661384332256000488630619919092377004615073462958622970673228412864554358780207873973136995710126024188728989368323896806206121224414371797751136485023248003292515550365393564686965528193105508934635070446676497779934361966615888715101009492428894612112982362949716021925245413702457605151058442956388537309243231924709260962950016472707113191929390059839050990210706260104948251331631019803953504049081195126500200309859280210426269631219646878183316952732746964298739655561349799438583495940855553781776114391890029386102121973405287803714520607285299985806270573763965351918634294504612208655766903122564012641008150422585600412126931805479101189961387225796358103694907359973411168981471717062988621323881633046100578012006179028311324909776079794071872317187714588992770067483028762461488661672925228867745564300373253769101329581547098337680482925999183470728332099601223161275832209394558118694137250228559073604432434572950434353887248196033771662117668497606652008511723074096981833298670779460832555408151593156260023325743131720182013419038066243066653145895613194171311154107963881686875942025761722248910122769343446365338103588358733640106274166118456329892822397739673351027843137196289111502648696498150765442319449367950577050327313202186454239814888319993597864483848389880656271534609096465071269592419078410016794511244754174709608521452915366843357597265529198875498980326142725269460865578632703774333339689258293473005994545899293947562855482172532063933787546500565498303480533751559504932257926262653772783667488114108003834919562606286152540524929146275199415341162771919883461625262808939458804224065967610348751479512059545457754297827821153527316458999168701581458274419407491217277266997045164059453241735492201703732516683631798906443329713714560486621759001190675302156442542686106622620504656416074509660913608881764374488526855914091553259978046151857804756754000791738729908731153724101810853347782398478674155207502335928095577732549927815413694572905077212463890245550155799731052066003626876786393671247867589005955803551527488577883216120302555606220614235907178054925832921810203821172135265731438282485831618579200757615366032137069135623595982432015391893558284740316003933661467926664774844774385640340014311271461230244213228688979802348914949278852714152718355966263656721724389932678452793629938687111863951205772218339645730523756048376096932637049435906978216001668223252232771264291080460049379014745675212137956892424540285674561173751621728714464734708920518117965010456834501592937203770636471660119004467911546910021539493780404314372774487036220591500113835747024813325026243251710860164920593666522865326108393772630487814258587669557247788883877334906523733644409777145242593969494179979445001080622240008242779316381716501039533409979845397207763661655447159295668250138347639818908317512728382563420909961933949053559575972007351609743930927844026532249856620364823892485718883348236985437042681483885510495505793296625686089689591874433564789499627100254801606864439614754019945038550171492688208477011894954871755135210421933372479568604278159650595885756379176176398575826773517207627520625800882613208598815916381175427047418418444571079292558064250639592261308507150073362383645169446197036017138267417006079655996988098181667951845406149593576592278501509941545600983832350627749872131790698945756402345006935616960753051029022693376780077710000740007357343438913957672290649669135177794057004290552664404201195121625375099900678690916275079495087698421079884343922349979734221868497366676042288351893671175360540007089276222082597314321111228314647115051028130962337438848309845306197237821349880476245424751956864827192874901888319618834918253067084571781125962299663375738512126787374506377372844148174468352489501748734159279016240948245984630400733829860333142159589300446794961388411333147742637713027559561663888949455991219340062369444766522641263240788268393159172122428065635927691582705213290533400950418979302507086923256803426194625894934413293874970027930027502556421221576845069596638696491928229326773805459894505209467446638360008776145388163605263703263278956597995037704357525467042397897457753426116494451840331220678271644425486812063464078357047814746280727474030434445130321402993046013064316136420258573560049734314454124528330493889199596500869820083149028559570502751069219995528748842237384792164074461751152945880562911106253063449656152294467237191422336480529550623489728034526988121998940211544477007929340377453391643384513089608885568312407841069010017776752709546903879813324750237224213734022466661340041765251163841286397873023140739646864125269912247289115762954709611499497037457527211718401792938598666571235401100715691604433166888097551395926859773378144834079179702539926606031407488214445954296357460473116119851015846676868236595465570469624923931100089880294369543032054499019608408564762922524751551238821716828615171636648747279406961932894737800267480560789610841480751883084144741427731260008975087275571025487288186843397548103259897387678137249304949699622619326813601423939516023339531269520810251189620618434516862228527495364327446898208776834568006339298058975742658048389590360395577271316638805758634929734542160402485712663828857536178395085858692969210025392753546683820543551493058649251284822643327249331239887575056428047734253733383818889680283868893355823729897811603639181721198041952201624935252308453646725284790838830197491175347171602836983784625753967650507886479056806836033989421764252754004317135430322127956288184476301863089774850763632300167718873471464600993089084415570095310278819416432593546861279073316827053283196451216153056515775082266387521408602345654482322562881845663230419537978339125675563438784469600630022813076736303912515047933884167200229713213631893057834893963679869931866206329944800103916702082831843188564510627143158245367528375963398279266949524527487684540236873889570884514289286054968216919784160476328428853707508269093806073177412680615507515429988770352766250716738202987536299430881473668881123627918668839632600039587692924227488461052369890349457558766804794062719221016702590800364216009532633178958273483285794130846612259759296124243767200934687085679872396084155207516782268691757925241252008519786923387048668034630889675739042532527052793080346522525333679632072547099179495330357242249130967691232747969012033280774261090504283621519740665626784223409873324446087393161824861792105211208991641572203648258619649392935589416149966112586925261372544248557631306204996871581651189869384397564845138842602969440513989762549362336579144511174373794517500277350971248967053873573070970076948429420191833589161386120490909546372766644549122709189194509967508503036355080312582732214077170227901557106434964339002253359455749114171477707220498885313194725587279050878351339737875143798536654167735094719961268170074239915253966876045284969539191582592453114313255022551411192452347547211570074400183920334382408870222839589845337324850425368458729368368344953262574240597151578952749910723923247969197910036057275310193969795085275400101204746002620652008424511344755614180032379984732523799521190103577616166733739028232180610543826796820559558790351278921622955102443062963877685985081837545871209957508518995039900163020266756263336074360948829331169528687393421947828894039093022191289219719344053017108480055090438168345095694066261145684964413552109975863454528528397430832227339735015285043324828124137430751192393823088985420789324170197010298921509304206429155090657228438887982340792635427141389025194854375993262801729868763443944352754782359111308287903456864247738672289793749591265935615589748919553940803488856330679956567097879745085604466850720927288748081475434542630927885112309060251508166743959579940274482240701937046526769916029182533568298739764281533612645927556565217245347158956653090765213876400469319443758310370397961629197907201213154109565051510630371040108536032962026390272342209381281030478593821070442090755603366618243272826956637209335623179800385634644657536606381493720940136097452032246164630912091360376898099685878380564826900149240545735397914097043014089714442856822774510648387901533730359908747744709809234187500131056838871510414378114028445883807175784768962651873357364825098527403385373592323582612298092766369169276212665886770491444824659610110986248553925396035711580813282738604811125050027267491216186918969905562041894475045225682863278957054584431505972653222610911472795897652461546202541190370238483407656487517182194125334559639467591954962384539993243968509745140675708136251378765899615990294364380039274372235765478940186739411520788716787595876016649517723083182987361141776240299322884980964683448814978280991291548360446426549494496913775616299420404825361041247861608329733777479148023120897731724609738413738340797473324483655207810823667620618384028037302639476237783427095667753290353014060617041624673737091644783206392357798126960082717619634345430060414434920655268030182635144897405450709346165708408866520388985601933002585236839960090511892918800038428962733878278564547041561775891785559891507205661873512794527126975788396011642042986749322410447255810130459919113396783970388701818815659467125104180955262309548333330385374024547121107287105314734565027457407078376440874811463734602044228119267776472696967974399476147804987998492000656181896486859293111005407152167795664449501216359830384078736063302454006745741678940755196170395403281114377823137269835290335468948390513045322229498351780592862062709698701772147011422875699220599677308507561567865118919507665446100588781304580996687108279940510196662384378842872431370411101138590654550865005684010598650308386470152018109905590635978455626763970327211949303108228004709964442206719252862401382030855463523975918437239575268683808275768047719002249651024849193652443761540964196620059755113620780649942808122916683497139903913478323552131611528266527513148864916099018183026811678782536342623506926666817485842419768567123111905274263804367114739974989311236207424089185372723746886189788349869277447382619265890746514062862979899698349374284581907980852542822362240800358455812291572956341755212726025174726077480130726194426313192164866915692329256921166922874526609378632680441666243938007032022108605859154855778198556557721070177917622219868312628984499591826927052627968006899403783549278155216507194730328123087064197146298766161983952386866616173106235907672702352782261993938469195969988352198241763517035732439163652800307229104207554339307886188686030792889188389632883465963130123770053802682815845491748824453591695633655139614382163719814809299041105874512772206464933902438250270578704189776008150157670787730637084733959390051168384212323396809369119282614665574619801238888826089004544344510636776064267420939911096252020350665771897561861649457026584453605125166863882418824564099365610079137770327023012553543085686502173221073204536534901815091487003222586018164412719937497438617039195384791885487420910986589647232738371351551075460737872312610953894257370137955187122669041340664603735341308219690586904067890346989895012632658846906445324912531061784826525557207717904929956051592784375276996803215787914315573551638045477194281272829662063199302729940061924232670423159543802384717670226984367867102834081118624958686072626561369311903113451779262205106528145794819718700987099823207174694345948980414096074175137842515906817078266452971000585070230717342272097244250698860040454970632410671962178734623865541200509830378848067415047575498237949522095041317654600971422617414924566412505921962974116251281276242978900251526515728642050236546499109107588354561271592553173715814449549972129283097529455433125288137852612964917199973029190339948444724928274928784081140254928044134383351985123820619340236572053655199992163181570170307244541557474071825540066067420466139703074580899455287105774874961229798311899395633907244545915435949028724043014503272094503414455209798840158975750182993848370654536599735778413624063440427989664121271275792507789045055428912674643008193595519524112631297535152588514486472600882538670265395592054504345163288197699538677222589884166202929946842781557502232875776735278302592077580493651149360266869803052617184212658439394076026358102018143342077990364269348991835915080988393479675960724554086710577427148648065533588672222783979768985996550462956862076234302457152328055469556946936407053986772284708028352008868856882073168817823631621926172678463438219866526532440503200432968712871015037157346709546965447119382288252999061875427899902360386034249880420190455078992579864106193948151265663215570174075076921141293325706034678174940448467391979873287021511719748796995265250051127093026937586059378573028998041226687904842393306287161336575081053280676514823297328538708685960989863043079682169346704814727528803666208103116262815025666302565626690267218532608218127910606836185145890150936815401121812055075233828183347070799666857496581160015436849038981238218772043054002740276785987247770751346704720104353462876204628353051226825519219229578504178939549819903149964369900637542095814416826638882087321948415472328664707423532665823204760441979691638979841538538354148331396375255601282850462852456138015919750747817002546646451021475398863257021434065890643541157043729545782879363985287493084553689574329821305264268879523078753700387576916829761302412515696242346659901675896401673910355571010244864784018957732377943558071771269533436416638008143741833379500004586538214477714590357587593063294101265613968825678528028103950759507219496487003097398954177648415664514686625459773257714991969804377846985369425181202283991965474007672647530053473903552160247839884938006712157804885439192858289113112121845311516800194258901375159464357365835710441940391611710433032968375803090783248073640076191957653839044261829058790151063994519759288461713183144833874162410309796976555822025951344481170708631014411987860970252774819152788566633124353615004580382650969990773214580630502554910689996447749878383278907130819401550954035231788666559876737501175765072653886125797568820572050298191871408396524384090580272617019915976770765716879180904693126286801730022164832108021515431018278140994583593392255662466287674343402897677722484140978752864948541695124358654077010497311568588696237428513614377931800615147544894911834246617870898339338983597849383033647704539772892370267357282409006732713700655831275862011450328780912533538955512167700575747357113722357778781762499909424595821398744459607024467387238832431437568554059000989356403946018340878165326399083975861872453744552876747569872006904004635515965537347242401371237018900483348410399652771988660548341452846528254533671253834522990948132801741622528846829056878772101431320754550197481708521413497276306237222303960740553256963163760974673692648613665975086760922246112767680022332696383581423776387219702538018022389891099986055573787626966852314637473295945558493513399846935489623581919532365322263153949029370403807663220975290549227101280966991544592965714076209925439616391702517110653835823143322469687269840112064582828288768307538372538513531436820552963557122809582334850146730628058547567116413351049542352318142439580207340104350831054710374141974161309367472609472701184596270491363399020516103334463109304568985801166734908850912808241627371717541408905580616125993728720781674232062302258994821779819147369392802492537714470306996319954913436705942332813350283784862202726928549054870949068558839987431931515681787305942676726924859863253463335033781428371310566827282011911623269153994866301317751388801634025310357798762286749742295248805281249948279164127737195291556437888710913699479133783627517283707203155962390327802943369663325069585863295941115912546077671860747231472963909319104915380964920235698247644148285337381817025755103304447080699478031594680116240071851956449387695878471280001590842341834638702411776389247051561372565418287072531633173529848967201756659325461116434509389252296096856684168521295838943890150701264917835147492106358666030559713669795637611539366376877959732186781658728698348383139670151972793664755986734167279491560157323172537159939151403229969666322341853700793478947707244559637331080691376315342758525358919204826528994350701985552546753288889047778326875831579955568779889017496420031839100638317524856001819576996529397685095324922236029190553574587998989461887562441740910352801867368584474813411268606814164918278143263926771823043847546065635815458379209462794252865986692260171940753806077440435163085155368390266407747434453108385936423128080570200156063394232756783911889465643034784406887141238618357321605147612266267753755913318870458519113224866591358346186546571810571638625449607515978130766386059301262116830338530895682910150316815353099154032711114091787986637614195786663622042127058686139458132263009426734451581081251863768054752798675843914945414719332996150260347195403552781474632013234867275742076144612352840180229137930203939105041393555799855487488303135057114350577797395330232370881849062016303816320471776307558010571795815259612206089485937813076047682906097542979071824674946646622714371590947579371244850481990920939377162761166437745767251416527053115390326472183843928045804723721706371779811241142515385241039497551752954523929816380817651215588231137660252377511495546604875098564741528396815505684988824686861403933971049203510389076939668998903105147202993425134880369343898031264003145772979324986987726820029954954305465413562683584681775355968614799316667074161834503293812838985185966941712209049994581923382950328938737185180817806747463538268837619572572631232761594630928820726371485142372641841681483994860405005462221469268780513861593397967968916000240605205583426178677244003153608831921241562022236618181693281413800159471927391622054064614632901428709374391161311425760631619146597786894179164946835721910149399863767956006858411080245127259078229951347833081250815615860762215633860559368081479760170498308978989316497255926253390516554853330277936551609759425171948632166776311818460450321790834109686083114370581648784182392886020113153671461306489470175766543792317004238951498210586111479800825164203304816327377735772552354249867412114791070890791079014401094684182074221276960662856196041448097390018764204359892051160533813198728942767321139332841635096818760565051701350678167135318098333363309016985678868457522030957572849713836533034245140762075682232311399156990614952183577471270835440547020615370230544634238540416095526234477168961732677138930434259474072272522700182943921901742956499032998398768635389230682475078010135526774091672419643567231201892062997538081300085556992779563433041269751842477860913717116165916911220576736721298953540097580860405587256598299024868076307153462629032442616732965264784678124165469374453257803402484090950359869933626101109209088750692605350340676124960116635572737663397968634967929106268113519913737239708744321672977180632708973472664004700103438632214945628572396912966233402337907062958696701929673115908169094583698511703473372647885024623423954277006830295144342857762114649957365051828784941886438550514171871982665981756950456597050102895253137797840291317496588073221299001154410601578791725561262962452961625773412657061390418273467643722912942282714185236228404067226728451961932019228343086255331394785600569068311451346263855634555062625508304176813953394346068638208217904884484583045504657753267605545039354920214288064149427638783655542180835273494743983634594199199599201574130250779824594553982686849299879829343152067170246182472048160546510860053406561627210238797961837931142895829604522889723804548346451791980694834149968153981119180818146505816319381371744103632221450307164825214008973449892907653226502114949114242789720876315348122950234955143489519466599495220780781894059504671503834163992551151637014027985772043982521567714605851827502424155735098470046742612948385257793177714160064637117281972182969108317632021245298150761501333750973879155469651945650656476826315849503239628555597217779449937036081893609349751810646812193160114302242604320777031833844686316248373207614250147311885809068490185572639539706431656110090871087892189296137541531838862311038643877644446462387664757782271799505632966123584753777246524944745650225455984565087811555325815964329412455768075914343976508857054529678673362523864861882315063979395663677875411852058302992131671612886388335342286571975787353678209971363301306080596580763255712040452531016493432071211694791102705899429972215672606311419780365522288246847351327656443272519168119026002520359351011037779710947584237216244653440767447501118099556136265232377605533121736458666653776084296565558303376200345868501013232022045625145874306455254990164923995254023537800057160620302549683311964849085679021427308560148524332863002275357847386645889193130126295669014576429286894945591976679440946105659335848956497211158048578682956268058808831700113138881078843585659484939593227436035460729673739248944289653132620131814758600607668358240198173278932137028347680511772419517408473962639569366389625135774326653820879884838034186021967581178165353590654711507007750528310918527997884498735322394432444475657597731981224187149542765072641481122261597809224870718671998892517436085221332642548065940328728812860573543884643490731074476243501204730440093850042584915288234060528593085296497457154347938883204735262119620483576462112385323512167840849021509132570094585622970705540035550454129207528902962736060425378776147033321762737468927325506513891348256941733977390089376783206573594599325501082738726124321353534063724285795632660156054978387677700152726457146539274090625990261634369283367941823883534101833205828744417069947759729910041446694734859479283225757653089053384556046720856068782977008712346733181086551866833216103059340900380698402028547719614473066095433399230103118879761997295160151259732861166335878295837359744814525484778545401510341870074992140918505555773200400427358051933505527359070664717820962075990704819547623337253189800724916240152733699348817941865323676938206285220368471642949182281578612747590062854229541469683232111598173798134564252944452030955918152923745398539106927140596277190249823490709524245042432322346177007611888036170669222840427940559052890622443816338194268285361217463642746203061883306757562104549337477768904667842177684734828563083609581285906452342345798111434489633432191012785409682357460771442612654227303566445026117076766666051175200196304924403490069649543982065953155644666237706972840910264071920618866432873467867129452544277927005435911646799680883162973911758786222155262122819959580613425350036269461598312229979101523681879110810085899047790284633491540576920994910460426536967325053411632229435087572380688870374844911883908971739015785297333673956591901771236114846827895253591164055568801845791518379153621169565508607515185727775514196732124787172252210902211475545341421014710133745713681933018954762531240021284879220607463275086108692370065269618263769196988331707935287787732110904674158230676641724996164455977582616929817459568165874469454895808636552863722740640019771330269564509467328962221314041540670199725075950848432437947407697021040243529840565412280783088434272872501631893467397346316014305049513848509701515593263593959840225605250523858438590531819873525029744443401313461663511529002837680005983055466400323755901428773383920970803566338871903252819828814958657865250250996445416236932913610634226292786206413663392749532350696199393378313677215055750848692338716312296223689069749466895583356442177015285627023510668412762246655750278714257798977392180061512645215949066024270963280575840585280735318167309394181964968388922713040893003075566139646374724905560738684857025460188565583638776873793405684785131809527109987173692439539017016493450772243434667283939875331626491399553372106321817735170441315023093248456546118346397755916042780375097062639438458398889018087316791415365291062948036480267656427773940294689961352322149587297087941374482735800891369848421179499127753352414162609693028306193050481631331433060952288821676511494752703205856018385387504581716587339554617673421798611602832246478461637924037267641152505421565154218753999975081902512938120516785988861814357383251116148236252985010069302514198299349230777058058131352669400772696574327155906292556531777067096249632140472776842765695509778738316078780066321560662691672636142303274810194291883119409641165340205048184820092947898636244928491807662510809321321879667910487106750614709996245625376226166779930153131966501162653202761360677467767541183421611210821294283916070502007092829160161392507072626142327556067520802434473078698205636687304354056423521683825876024077448877885909809140317745215437066831889523385542273005355039867059329731726342541196968904667948175853616419276723552627729899856779837091110078776973199236411947066403428581217759307274019377941678330472196999961080354240304392544099667444807030293105775251119788445518043171660997384046746484261007883521338881724188315759373404916372183390609879899780009339491727279334823739371843049287894756339665650149248289685771444513750023081417551229305088071042648626754833802646171967464798120908224710690342567320701230135083005011329241037380544064115485082532402273309473055778941799820985559779464792639183991043616934048947495240544057337757633929078313961475982845115835023052632944656656434333433815360795351180623915077651881787634232784530904244567931056260244231411455546141503670878405053543236859681262178628073122075720900371745168627957744503387161414933117570162742486270451563087712173608498576341515669193802169436362036417063236301648866188029625427926705820752391421101638965667083850443886233425763141748393719611624347208694582900734348535769791851624404857515063302574411440244859497239362483280821417484282753326148295207536157607530052779227926753800261611143189478271904616213527647281255485283409317761847615706307454429679425216194082980140901440649335879052872839671513205535205301065954792037207415742563973347080373850077021791379856662722528437321402609465141842164688281562411796139270249519191679841558966939653838466319549177922428855756491895705115930349889476052467125174828561020680442562826646021550685412122422326632327913454887031624079757469949819105177769585502997938532975444441645030436701901299533533777951550615330496623679711405776027738959455177687258431470507274400792395597354826164478432203892351945333875724302775849702449940216892497706223961115829163316311322512127792701446479379296289617066541533867494636705956534264585819595094707301661778101458224870226728504262558534772354943157650511869513584888179780263698467523065940477785194984143763043578765611283238812173349728495455752633504810466695797175366415793477839920882596236799380108637999211156437311192084790087578292181782242943266161270743153264389704626348175780528917097886894781407413338549767765054798852501000645857754025217011941101985089059643760636600675457815825222276829376433117222403720549908912605260904946190943944094194743547077068373870104646309231073235991678083161049069686860111478561009763130808639521818435874769322230337991459778790176632304174367485442682638608934246936181685397689898432526503397703755502865385641268242008445784488863513036446827954849863191166200558029494696826124596649185320412238415099806626906848629656507422032295984811344985691600286891229788058567098473157289100580463825061187844546533411684922209197133587518351320640352766180146138771038785432234717674804792679850154372229964299308096729447520294718202834095258152621216689898664319987253573383707238266756411581992510199983174298881418336123058379164254274663621041348906638315777179740841501001853140373730748802766076595608909329877841816223799734032229223010674914864255193906936973457877775520830529268368379702465335084679963329195695854889874331400362784498176209663708139272627420730718085120441345235441576894855570363224733430221679225635163280427182893876118447142809343828641261482048486368998113289388331732886695348422476663072716834130493661578889807969981560530914321051730205013581125527578678927110133985945821875471460576269918611694099770421132923195136509428574989912979963870927081598890393522583895400781635113401397831864801273290629042540468048405714785915428025961661970595736494869835942197693850800191146244367453892111651497659051406310284319897994400413868002455941885956167060258109248675299399757702727541312771200423607817777915724765285711662320736734951229720593348850416367369969131471499975347125224450403829612252404361207620404414525558112594749317751425439589682380764812218189621892007854788542693221580975280720594795194197888620286344288482925739314988769939585875658626532852378700886167890487307697303622361067551146385799254067477283643896524455326505740248990633718056424970001685153635201168110618613114141240703372327119320262656058839603846035705237698258969575348603843599709696335475000233227055674829602948824997749295122106578680160892415702330960336708349544636938283782787333629672391916589017952410992932707850402357784288762881904829206415512377774888916643440055120410110689096513516961412053794863638843682213928493062287050828897268763213964599757826331305917374795823115228921679731682623405185937134058898302262972902623827930755585250842341119259707560624922505174312770999797754120710415595789077403050270338135781906314577996611116393308024104810951960349081927460151054720745328603616616430548453934195930311910231402821909141952959703092731654625002615990925536866473172030259036121718728949512178322167939418238646644125482359596574769590380561334357216829767208169769965662264239322636529739265014951994751143973096534714899594294010392537969705224218994666777921895920859773001279607028510640147907813215499959554425485758212117854532130716241615799979686637649994267628201472031870547424689822850479591265978504022490748511275519472409172771412133884301550154564337716581804095641996508266398746027650335486120780754826615715827289978194589730801976074772101813433986039793319558406838190685274872420781378486915237547568334745876461340464915880368639184787854764414494252351547299106250004937289850364870041057603694180632821777444908294692041210127288154707204728008682720396822029947784941585551210022311806920256895683068061487143211284199434796736844383965648915688786239361213320541881212969825476413827658655162397488741277655150868902707895189829695518630369704402904878505722465185353050941649704050143022440248667190872930031079539550490665865958022329728890516337082013122999752701560615817561151676723663307868713551401991893473510066772141743758078532458153796814068681557433468647605819358331676601355127542704141313216187325993312980377745900415726599856948294532767963446653906907004221780494659486976818310384293674103014578325797029483377809097610885292799176547057437728145259223565694834585036910121332061804030275031406007536777170292208432678632139552237085795011693348247395695776229475931257892799250680631232984961877672461709758443143815639381567088784519034121003528521377790698503469455763915953103318628944799669390850649552003659760981006760289916753874820903170249563599812069841835423271952853736108158813880623479685386649836194080243189055567437038195501440455354894548402673107968658443150011774272043332120402229733764694548350498855271745117250813816019661912131372224789519545198332453704173342317387890470018220310204967340124237317167554494682588982366558094873042580704630264294660735802200921634979573173290213246967363546237581611140811726358839239045436979766737608443207563485188255565539695758860561103622192703308078685816095324977351949894546904354709614764935901542426919358021827878387435050860390669689170813063923076074301950002564127450626872198696236987766544569976480480468369763235047053003206720926743622068892057249170900384824291856839006609757785137980724375748136283743539724869961410932322175854584246761158664776092025266798537531065495853705550239289298226855281168110440775323435677469059350425319622043946270097893871037310267539098571442855826028439460342452193203462130699421472637559924268479966316738177521357215964709175990922481703900711223490731749643941819279947207044868713801077397787678271490136191504267371490796352808654068470806538461781564039774252565316725310166224477264964949286363115449620608613712195303237991426704003109222101198712974539505248670552358499954407684342109634167614628352946416940745871891947347807329581398699403505387239428233516180846206491622011284378192291593851924680981222459712719291975304657497029232547577879292059787669273296290090665342978252814060970080861716177591631658820875319507593996618009425661282648817379701283849501102552557558112746997322102213728371372830411469573939643288548038183754094914878898683715317208362348710560791710296951439339896332549794685180094160851968898643467573338640324467965452029413482434151755117271449220464368505324411089140250011076254821390699866493374187260825938117764427680182693765894056458200597907314066067294682834504657074510311703748581558291354294772546823154315236276797528000603278752025012903875992330513901511923066100680200685108512023076296790111312164391158500270000555844437659390301694709626453147260657074810396979802581148236926247541201666431399705452658149994728537432093130882276606674791539301364057989461056146184286804163336716756921032313236521235066111886877154892111367592472546935829894174200029296735162675202790224439475395591390946589704583083417678558649689839615617637830323651324424526520969943461831148849240435711070081067627027447813135644389454893287233761547323065965623625660267304700787862950281933355271257476003380652064673011541097139308853247212638691374579891335475733652644873870892457200487917273409839842486318865204460442654673528946012170192440882036161502791963063959703522361504651247844159331459029723951927366773937918730621723119191356270612477601466407012617465197679254586244853137636459487830409556828727545481481518202920223925414187115679296170768409609323252354477899119416594106887696668019692413800510368822487625978312565483318081548694788200162965866712831187884468166828737110890132744137472004948307095282249601797266998915415238353169859736891060789113762569603155706056014688610544614842226996318650597536559340303796338913744972181833561540998232956780259114584618747096502801082120581125900480821052902887458735974155531470995728446367405203550028859581240823380920716459753429133855095053648423773765071329230005184419242157408954508339427686505984796067470529170130880458821641068296830923068582261123650530428328284076877513292010017127533523660981380902831224395608503920370514692046389752734960785380847298605204895871097896476511716366807666103556753919345254057904720691376370839240039814772951532403933022623038149080981415175404395318345988533873385371107924161207990304337409116643631534512071859908356282609242526527544608056398889613758015301985752392983178737649799543640703542431286540282668002324308450473172950664671197882029593591677123340522395861224405181510475740695181523072919726572775874245607663935170035113275719163589125144398877103251877585695993962563285131546924925231770645888475273764796492390206094969657566992858434100686767340680660675849203618884230339500811349873163387089339593291061955657425102660765177200831424931549055325257751258920140796405326964270559775226789380303048042675163997345835714877896270192872874801136498754713069974465724120524215911431889746240533627093412416836389264729103414744399952013453843210602141784336325411218484296978669896226119336002782857481728315501009751397632563358473877597347359623200570334086688417513788533710260657653905032817272764973975071468196395025892592745872281141324436675932890885735681951241585032581328074359652085817336448779368349155339610205355027535436005718357454935569471266295213820853329768222785257979703047867766541709287610697229214953463433187157001769938416290610054470954138674913650882100354805524118293040893513740436328737531044975098902492745966258873696633425409264499679484359066547825932562706259834687790639044459914668100331719944629136708959497283195210114968292669046079310821236800751805542584910415856012372158829525821725182043010246628425789912102324032175187126646101706084006961713212518196390258256915114011501424609980561076727075069532303753824129477735033711181613873062062251697070447528294630452134339055117762838056752168448406574929806333319280367356576561939335056144855004099692110882145255252191906784984257275496094946744325932048383992252641124557134061182321223329372444772597212832719484918586942552102818452569240792000292595028670641493848458392058957695103355840638172716414851946485312246576791666819535801755210326413556321275100240109800735640054471379637176324331857976401674097852013192784522555377989393870784166289005872201924161110824153207608197889732207709755462263273187717184753760383016255576018075589214015411409573767996864057726533379022929889137167430370485840841399725569352615644221341511256197527666894490200963022228378441332829730251162792814585512085871406364427878358160588583159150845181003391991571432333804364198487636346317665263513826691507159347700915223645463813759603406532732232484886552962427594760018879058552185146340299777452129419345577611187037043484459138599106082118417630307492798491316195045065732261435120308676354460933595069057873974603993570221523179073130553476639061937991936052094309267161210261696107351148394305615651886894620114879290955929327414239631680545554623807501757339971372996039946292865268916165530664720776211999055764212703350021284503435485594252248811319941498398795712638203265145390280217494673788071040881752616384775823614541750063272139797201624705785022388553131365822234590529367797313734651347641967066698060062812519428619902769870755659629714554582855555566582711794173214063429114884438080365382785510551666177129031558880045395636587793663995253527953686645102045454488659818898702370392032164704432299904769472927848623735382926146136311924564322343793678572809649657039988672995252794262856804502723139359047497472334658197416989690145892370786826699421428454887794402833641036073207062199335333992360764002299788129215832109253630805336250581396196498628161085782840421519795210725671774880103381657711207053457186262102286053611067230655720163132448393554586832499757190202217602465572023229244823550798370830012416668659781632876800711208591729282757472634355565359481737015597337519442993454737758261990292601267239112408628005618815584334252215729582109801892012876593103397142831521320307107108096717727220113224854283752160534553745626918713613114762119865163147873963865763732016867525490088386097561013540013667364003528615307914280463312815663124511157162025426563533423664329256846888927439338650588414553948500572762255845201781890420484914129222618484506324276841253195053340350911761488363851078033405810785172972446811022602910754005568398859871522789045049538776346154795107062278648126529063246359743145244441991926924644686527460894559400551632304713177290758252868554155041349870344628552686476301055237861601982635264337460193108157334585592714425749894064315257132380317675651257935519848208018028917238415425043650124558291608418044705708888071671762305287757535901516841192195507367463195499415210038120558623732102966248541778753157262315422990349386066346068585785975528837566064550445188003026371878597984721075271773156978667405462333692783121261773942701756881300419367226731377627952750115141167789505846364918780268812536815068039496713383321731368687143894224250558483706265540312820865091475509856160714699571259398494698744824237749242688073137663529876280862408851922015177619783775696692460080426378285426648095172012786165795172830538267828645404409266525701203352820152973483982756700135309871152472577760824026431647584062966544152597533614404594500571484858781310270948858311856410253538865011607852307357321231143757945344258704493557125275450402907152359361433427942160257011400385419189464963591554151090745736564925539361974472797390473116789047859535515510461450872041959024652185117759963691632798669832656129901418010216323259851279536202045198022063633110411709881953401678667217476107819617031214945279225567261420069232946998683602434381357632176999863646913721947033241044586050111129131756291302294822283809707289404727976382881236942159243762663714657235659537138892957398861247056208596294293172102684203992765587559320652206878249653690260462984012208722762182200401574252589732735265358931128980124784999065843146403014231291953915659746755524660078753606936732524706796749552178936408970235173467935605973742946535370224533119028335561292921280236630631745049666985296595018596162145426478327462959521055164573509566745662026650857355983892907788967905149207139949101840260839905331821037833190106190724370648803086883889574967229577430606229937069719021278319186913968560946653332212298612273111367533318720749173138160788413615505310947237118651882976518317468041393832175074112633479029958010848769996311380719101734608182678139805782185438771099597665395176413288419164474587341534226062091016204359800258901101356829275701868722093558621978215071360898644020591263175721062892242271427242503981249795008856573717520578893770909402235901666887193514053166663024195865045766848925280515752344066986649105446479224332812264501525791394233012752196423165984027758291857829528409124884728682035787618980365199283433196663413940420759704071330748861202982817891804404029573694060170730812684440960909448134699944064245905843068339267336676181633724047623963169941433375276120077138300085627184441019823587767381942851882420525500845001384213101999556541813100316653559776100801334128501338963689984061347277218938826791601114004588388802663083090504569419462209846279774945143791422176085080373246687414514806521954531423751039548674902250869968593737398634389941769911627414255855115606642373787247110912287380799390036840236112911174380823006438199195767877674879386897274023174092998919429542590804979670144199001623921401403619118224159143922995298446012927168503897133319801789184944879636727051641109717651658490365933791137819770096573505844908171772315180011760225333011921955188836133244987468454437311054480992009478676822972496700959360642709145747401402497740662526051605059886538769296053741968944003643994607235139314715336506831972046355677622696390391268381385837410895091022960504478474379652081785329448999838748821944946270478985362934387458320765747936103929960648797304593965255161471982812798893006134440849565249520773704624156711991671864145313021352246971968624887947578880549504595788755221882661617146130383446025642187970584664724255490144773288153715529116571660115877004077905970509929133871347129410122778067578982806371376436011800042837447475699113070893635042853699183672156573054515067465655330386790912379455384404217002100761212425939296228338175942970380123980288584879895528138210805127848505966967006125537701088733662615004956786626558700296947044956088370055112521819425690062776242608469287773199911497268109034548926786752572540476787320837233728313895377164531806872160557093700619496968019685663878095757092719480825443803748576867170032216347352366109787995326246668951337995187589771937503133459010767881048163862115441257255089190622713602868232348548774066717582412938470499586179528112643974235472150739855712439937877749805334912530108729864671285999299617987055332236015985535583129871678230359591763627722847020842025914082518720682829104707538890804893462399612394800900009258964569598437530837739311728856005541783210318113180382823618951707145368787159981767774067719115376707971410486818343860233091916064494027524612123552523584036774659420575522167585808928483593725104490456978948373111291325582700454127461482295554653355468107230588789057003760169741995028829528754582761921945211770995189862134816153630016328598142569953632623639194660944048519638300110342375227211561210254773317402721744711248642389844209629945493303142735246619063939578731481066600023667204403860703562879540358045856552724166770663282824821751903206327514954252037477001516480746630411889483545680341524795622106458343549491375214665314317014404778411669544355715278282077962421271892062261971478084834979320851861206571145634410132499610160241606610963796234769480145206868292640497602700311124099291163959843284778238459352624271628654321304568323145257015388857140636615108414669355104781514862911034166977261535974638768383978701823304197026310933487165933664731516236789116105232082428251112768669076719495109822875581777566223066341945415038794227623590696740380196548446733148415785783876086205211411011725888562799037289960680784591318043227108467108343486083451979486139381339314924303728822240618957058907687725475207207188509874240742802210862876279766481095964660697038502572518509718278892354765341709583999428147693485247868210282687324437009691238332599271897427559244877665596231655039156967453306467762964933432979866051420552420940262739090747046582658394795030256812939120705122465095885028281090612177217749979407124019194319053726955289737530753562170787776129445471017176992562289231726380903651244964076852705644218569847208739821753887237184962911894894347084828949522985372552162534118366798713071425351022196036448303028867800191497417910915979427072216548233445642258342199440508056563303239286264897895074242808076294598608526772650853386154776888501353756411565292794311391148379695845544726214257054059033452674615647913829765275360122294370664746756907854196900985438559525132737868266898181544460426651641520644804203400023022221384847419744597119471176710718100360912641349527981420670586057188039853300383161924738678473873543402779210011784259978374302622123309095653102179990912526272751424258574473545008119436464258109115187913980793905493250472303840284199482222959291023422492142345091081356884870931344256058531973543306556624557940466009643600829020086206990454806795902290897360557503971142938113164145337399497551216730159082594699930493644545842340897872776774956039910251359538298085709381752328962788937876283673831192411408058608499614515205436309706182431141633912315933641649396163199364482494156755358602147646886260175019923058058434511505984380416953405146574010980361349779290480053253737461142170575672618603237621106764964221417534434506650577620055715200079907133811865384431121627400010815435589912810908184256382256135714991518193350226417258197004030655781389114366477089410920311254574584192042028358665993437752267412360451178193200798118050139025303590699800716496580660810306239423092799830997727119155869857297224612655377363222427831055708872539382122636401816189872862376079065709454672162006990371170393191199432720839948520624600904711661765820936468378388849919111142260827341150034156031256514388068451016973903138866761086906223193691717518222341330611678535597436733901293634078945348728087231262937971323809557492459113253855515682775721104913499174892993599890664547984886720824063121874096383307973509496444563798581907223786759203440803727254231091556392545588273074079706850183737898210769000750954579408123604922874882040847353838829775400366948027942661321798130323223642104445207953832131568018441418418339984248193632608439632068149064233282825253786956174234790340639033191993169137927582364122733922074390825861596181733335295278846522991847236692900981623825321331301390324391983071613878601900441186504520446379241908044590448844416777852638971054564803903741743046090676896600377455841709346866382570138192610103162691905055887741671860943688285826057803921565177668459205013234449751582006402872630359889852668349354225120960254272406865311250327898220066106871350236043681123831311387560009273591932229940288720127002650432227586397256510746076369758971967057203285481764480280692927775162540454982481682897957329103602911015610535820337578993646539666184683946132616485830882918906548029526181811586375730928889370126311237064505366610385368216807968128861021567980232394385673014929911588142097087604418412402009946928588792489016657902417022637204472372294984795656869217527863314837427087474493529159570865304106950723144444067952692955880466115472943080904249229473973576133751260618546688958976563535852962522431339993486014426590039953375832762283629973447710832416005053474015538518211541665598263237076368422262522435199961171545212392429978973154092714984441127010754004955712608011346027296613974574195962015974894857541440224772952183139106062176878420644030400278155751340405372812294590342037584060569953514569863120086910443953028366688165470989300294539701024806295907335640159207023323931645048002065630927605584426396830931221301439364951210054825809542933151649266702485489520926067147858176741086202857659798247314809485017897713794199719705430759586915394131360731927402484791915429719318898066351464416258497817847054507400416026099393232295230839061183985158576264524129377802263216386293595411201672175516592236930097216311830417966867380593974094674996509079550117882572831743054709810449542404675667106334433289541867009648436257856862561925371780105987582353399605928711197238341826880401295191940943941298533053359185237359438113411841841884225410136374766844198843900920181183124261608889093471915183346645863260058701895393592802098792849238770594004769702730239178696485738523251969334799487261644355037555246219206327462091901050894498016553754103267658857021465998150832254622457362054496066590683227104193850301341644338790396440020587401569785687575709379930401360444246653039770757547954255754559647191233534739866066215162460577486713922210648092232555701933780834599485850509350395652451427542379357821817948872103553248651085764784919972278021022757378793314168570418474904859145704766716154788596400646340726904386966830315369521234559791950006902463799675539717480726250161433092436609129495212225801481985472889288966393312580390985279383065609492048698531754326235416823815538737092436661050377829686914398332089608705329582499874161494732612026345491739792254157431488870208848808286860458231161863088851600489672924586038448440086666737349025950706608748296081390690938071038343688373779943743361017454859129353512477237263369664756885765114320592050584483516645730524189135713321251387288945343887675739140456152696380286423237165304032122495627435866262596622169084420461884180502702861739212557192993962925419761719456907135350217581731241959743741328488589759510685125843650257611859919738356000465007675565020006175871311883245375574824728061516019194740024863920326876096697927501471617600139429576705343060909079038488367802846755304948802858314344173036791840241208148662887699195538597537071665974832751274038548351451035092449579785779033214694337601582225849490155005218800556786068677324834635736035848216345395018713545571904319689961487955193475162446029706807945942871905100526088526950711498321359022927946055864063914015874800571936220506825285309446785998421841007590017893626594067940423870331278223974035914219352046589410987495582687464899195993884949857911876918284563388255281472683774825063654064968126051431647472814486704359530154167985028693321696261449357211481080456698511951300485046265680720404111707792654441660843574769054777320663266128840534586862984152222726136385583446702607637172214707079829025937068275500999689038852838337837700086926686289122793952128281196461473829833388229994175757860168351776558592853550193782390558765612511505251814906546171651472242699317189935014316135058920197582309857408092058531515081177404385591296063349672813535950267731279390622885588432178196397282998618692984515024591173028159301733996946476308886676136572271882642675702570483088244351154178541952423276328379359225303879784781466298837500202814127962252851570056294706808128971479562363792396547353792967314246721160664446840768314945439981315938223264146019813788788569259987733408718729637401563324189872111294556973331096051570489592287964927560580961511819533472436945287673873113391759387446441250668026950516779679678495384734318562614335645958214353793586425721184467587855220376565021191192811559789125258603942677356287678887644666459124761806877353865760254001648562402200198651511557046738877641202241831969696284204533971540371730069503765214694227271051016019284729948353024996403664512355706266796298763462268390390572851635159169757563578784638590018080123294784751429948812412122622978781023853169548984394771286933973723286774848941510954464081426202637299382408298728418917432836919292940892328355290715755399831938568936922717603326425425169508070013775892100234961974731675428853324622670699478017417258295940297590432199302949285831159059172140748019681522678781695667585845203479323430692303300569736515563368818598652525070674727391987926482207396542509983220927215787518032542244371762893683910195906331946792410309319312571150494823244631722252657995535712055153123386827376001556409401748579063704402027196232550125355023029415666665933562365299673388169753417459434086082298091326865750493333941718669539921479188225346931901484331045993949932941767787105724414809369628740647693868766535766526333939805813928320352844252984120020064564065911458509724541904879069615482668016969799614449169591476404719658549615859510791474382039900601595388402714154360660856248500955330392545386788704826419046824074034070639658859633218498402581201477853142596489693604634748700800995223271320661429417205380385501382128369733917425118318841964447672452571948422550321529203909305033741185419282037340689161611431964249303644488384323267808376619951905702183983283644312540542445189763337301722287003975276167567410097191564721033280974491543348336539484407985238623921938557629045019150717163900216131840288978491065835523031602831783851957754975217712089461510820680759557688829173699002985975929732066319317206230430509657718618750564252540391578935948366274041284650884804713511344384698559536240729384421786669647790818270504660040018131160284787213221911430589746766751293290929278447522952639510713376273364748236148630598500060566159289127183452096274879449074818671868364531609198536623073330543739723167206402301607529572202928366412922174335169426259531048939171361568859157744691408426385585587568900110252348245373337296106024228877940369997803350300094468426099702211238593943028372179117962500581639727078213009456400132392734020124814243608646554736721148714615658709971291534481473116520045348720394025641539365396205177518891114871125953354572976346915786650352889795407765551328394285019989442817668829661428207110370525623813826633446559169493886603139523504633369370752824931284139676047578021698132351459632782869694995039786028839874846339886770893207868239732041962909497791658234026463487550156778982645566724546504588728589516803592581844824261504146307502360752578621634999206705869708289610988971584571612558895573886532524680425928501152861152326638656704229350043289685191239466727127240023033728556872556410436131752821926468026459054778262130838517394824459338513712687727042433294343577138281947859176369912350944801467703614326651950691791230673022790619602112530609175512146157088481176003765782983868485582099357943165159492474448001270529440845639191508691311033562603744370035170253563140873865786149725354016796651016632413230540710514420540602206881807196130250605837862958132293263490300572447636182081657148542232165800276484246649576914037535418439437593057507856237421285336903034050815615830737554743045143039094572204940570592095314939867511625343477770177588241755388207845416778378136258347050930824296994919278298045533253411419483748429212561763234818982574030631584692165999113112320619865080593404705966089532598090757149874018146096832238315431748058059630881566593893567065417622912243358451863682346036797138084080849083027638194662830632839671308640367140889501512023584721700169477670335693742997909880788458472162568154519558245250055683234679676503634057521688494439613399914917973670735277989657874697892651253211620848389577025779695912021376179526643197093583497285906844169820713552134110173993625707522987165066091575110255076072153832515076315093544645232224729018766304865581785427974979491117650733814127321509687804412269486530381259374419246202665515781953676738629055970962990722368177181942017990378516975790272231052068532050614226739751396462194562278577111367464426606515999090489078780989314008430312542187816408380696448294316056360844764207758821152647686706813661675615430457311911454046092746952505679106587501131356634218376711559626106957572646260850413879031984692440140903687837464862839759662906742992417573661643950081547367387185786030749104833273878841009636394506698240005190601750968322304444607178874827177651400773761027380862608957144316099475010806627315418787275784756071797403334457238639006591877289245964480922990895327874682993096624108061677707467812095930481818964649392977098409000601382866541993880541878940195731819383171699077386317012363915284429912311031206672126537638833054182251210946987036637309667061599811988817230184939784193047531706790091243227228116443934466041871383978163062362829205587994979381168686061493053106314212724732243744795902944530515097498643996053947405726769528922305008164822904675185342225784448626481613270996648870425592536747576713416926071269015810751236336065988660841547446118692046347040439820545387463065339924292774908534474559543172796181250633202852391750719431369863004700040657099369049199133312112708616157172784704851697189745704690406826671910282348475460804945371230975570222162514618104533860808525363300783861462617748650614727276683900432922206810710223093779479820419260669864396533796042741085686805052485348606512276683512549136860097247694451176126219818919346296405284080247610191377698088155246938513135956541460685004510767183721852781963554075274952179791418868645736986460919612602481120297636944472291873053630879068149708848523451001371039937112953543157461253272833231511934196476205605592417098116872783758692371311256168155370043352326405195446998789696613477004004170444424896954270556340245117136495908449924671528996544912605470761437986509320088232595694105469221521989327932390853565829254098517099108716093960608264082684839405744709474770225545995357756917921725797862414205200957338916265873205615585866879320612972883177719856626241341972336956948914837110717653207382302122841229667908301110487325339158128023663753010543708466522001891636529337549660012370925149109136298608731338551026792423103692962853594490458113683099359477884160441636822078800361294646469612054805226294904779262041771926714444826960436370128129653799637349025184036420599193068807108683431682694823801590218233951664008772727036562637169735098693516221955466413813528117312069752976422970197896433589592510533328440465452120605098035901100211922712294133546104883781134977361321242900376135739502999911912603621286305963207704283106853618521538309477086712055080941369376853216728371610986929261458084616261192296528041633711415702895687081954111162879711109609354276110051312285306308312261952933089152947713871534870614020732113389572198232478767135396994393100690935871320245711980064255719773109021418807323915603526909725304949250367051056001071463034226405753739414368116647047769328279981823701803474067777739311369578609500963473396611882104113326534771758509081226693919146713728999266305896491152426444766980411265402145769867089894909842280607101231309688189053515071394057737953939386621648953898903037781484397351001755273748325259411375712975385805831932771286491625959190541783016395178197980012898760743227656703849058575537911352421263602063626032107172311237001287061158610111170145879632721195623702541293160328351611577205561105384968877726010432878664426778684615841912490713223785730298029621859630661903387806113081393421751787547250340964751398053483405992484167291860908337739121707030338804552975519029407139389413051338201747335555680064239384456950117117418881097846387215033820124577885044008524674371816965299271079351363539195820460782413996510047523391693452283871933716327523440512933317722240544778274154324587595283042994188352978602014300703519595728176841983071208707760627766275933377869727682655905248429903337701484679394141521627096022920724000802124660534742834698518505917905531403561203345213966925653310290600940701715701804233758217209620538618433509421994702037004875531972105062619712688144427428209768207883759093470710384520545322057607837315842126776032352882090428219199433512114961493004807936637925583025035305225555284854386610716647366699750024589736685215794643810910556215930009658131388389243949988300168598771077868553161541517633260973578576141402910101916279440626977367312065970201791982737712495104976400070144822384314665696211205602556703615273818785829902603540591092707939490630379551261107816049903580410545652752081532814498495208357548939149887687599164214935197478254076977407588798454570275453434840942853402331650432944511135371784007724255408699815233778356022631064878029524272468611813296509326752532676755598476213836698715412658710443378414469882816625790601928058780433384889102760893192029616027778023571082932801895738039693129119600391348677574531193958979383221632762941626031427674378536258829625239234918704938449013314713101500025241891729135646641369158798480449862300670598027867200731380886582971038700420837893398127406784037036775972984142591525015692625996708824479072049696546437221204079566194667886763904300514740125378225558359765221769565331354202253089948908799530643413194735110167119162516119773177934227838077038014458830986121049351356728931981057964774203781726128963021912516079379727289119775572076287339854792615949649904674173278570645984943837490335338752430317510946662732990509297034222548231320348938881479776553290634613979748539989367462440242885932164584989088404205520965052053507780787066000301268720046748468747987786425458725704867904548247416784078176520551037160805127972551397526617624972803921596177460876425021232392121372754662855982111966501072320142556210202016759164900253517066740102139176067728626789876503085710583224298548360320340404083281786537116460972200543948686560277792655536424776208367125814599062471461337102304232171572111601580828297006632675511500715185404585855704393683375123442560352703520962580818702525504558149525094824683959285299652786597379398959840589128863190498037670600762394247223643762828406158724924951845540533726618695149820846356045143943862131894964481425475811619232646646376545984710506492497188586254825742140908694342612885185959502766872565982204406189381100375331964360525346006666149803291271753910177794748270878378060101462157491764260424791417307186610626190940346524568003213597795464059975354668372110164046617813493080648744652102782375658220690003812832739716174183854965420886013991377343415670628093414058651550918931666581260944991116443238911693191545351810597410074078574157352208976294261223762204845313617206994389507255317551373768135767830852666053495868572012225943695805034601088126636141282831568766956955730921329098570786758960881713842720129561868204631914417054101189274655379937993588997846310405765449173479479150413431621113238262316168813752070963538547394571447087160949291235061045791481522941330730547666519029423142588369844287577178041804903143774497027325586607756755209613232172983459345986483995996435658367742802826831130206255385650258862640084036012373905800575622263380842225218862222290252128360496599330366320697544287263041677131443736661197185397607543513017495292123300964479669232892337208820904126829788006397260730476747680142310205546326594483177526955446021341814009039511203418665647154866529666992425680413063673639350844096066381596394077049942626557465095364782036978825714495214154448477215994195930328323954324791497204376103953826578495240089319796008137868312019103408268970191374073767477091733294700397972542906182202046245162575388750311713863503971818189628165430903505182039164098413473563867063844750051826738673641424457103614969206289159164162623616058381551923309703742301467555401603316547308467211063341127191302131350374578532012711825361428322390123435938468543824079428940167300907955273838691130582242233471048850209811325717056755013412591923771958855792779220895796291313145648232995313934580161497478099450312846859382406775307480642606074348698357826191833883209239244864367733846659561471701122942365065830537502247494569200597788569355184147347027306322132421131579131524395246155867716785240671934148703852326048672117572746553273159731398736842173750911654391769415529831915619824109880743190517906886783699772167349989515256481835704891135653172624847354795990833184994265423879886799774709424152658236542367832111123736974304257744990704192438223843161375891425220307784358190964609899423945844896545613887918006492508816465990773175429840679019113513363991801779949473887669369308437942713526942890282327541118803513774207820353903432430342572128569684284792703462421988413681539781117450072887052176688990730994662595357150972593515660219906904832236853736536756703775199535476996710987163409742181266475556501593678113588409340643347818565166433405411610050716041269905109534254398416300968853695713989828959218695728945956041111338382100769068802351188300313685741266212934650535070749903902742750438392077217554646346852113611160331758015702626607308331778053944439845752427241205255451941743446310514062233448015992765469667885804348260581311929305652652878088607631492315646863981754462212822890409599112405543535907153002008562085800830316649475512845286899647499542598025249423504617876611751631968387799843057139897258875183957284630401556723565707049534850450715187672310678838648164395497613116470178195324428915815422353677190574599243049137171539510912071987786801550693837372354319348291806027915422198099192125204443084974597304818432016569499877997217555456461825644001762312396470115703116827395053410262963830577729481229350854997003273542481870885891923197948503353763605228467106567326339872119654433134153150448244857547741467523602565109292508221680463102157358163971805332350791298522105268357181909407557987458805387723760956057426092262090517891389134790849474888516509559382780515974691792011533346897769363970489044566895245381297809455412077597244934832436687519497075570530154627733114088840073569039932214497458564545296874259281430741033150593551216523691777172104004684189098747559887251975742885772908290165322980065034123145422195829649338453088281099588447724435668978985254414093994144175145208420168507499889395700518039512694694903562177013309699120643943011257728865702607302362944704959634762272795417357263905132082376681172862345221102679208345930631289952322245873393633270892966800231401946412665240250310704407169747683233304955299060531354607397904550422785318715425810105646256787696450400966255282679279906378278133332896407992921715654580322284569123408640761714721220569101695556762651620176682805645517110151745824320716807522560229704787723059493791526010677676955943031744814258960235346642490655514016554974256197319624203069873174387752631120742772031141547193262333070738998466407882676125991524986798759952616587898454321812008438980375409046558698854054071921654822477310444848251450213922525612835032001591099748299302395917976297336095651067746108711161048666734688147068885153653676533092174519742202172614001319653858542890097251701070974354016396361307448838631213912719261113731986523941308639582251053303818363096451121869144158141516728262757939969494871909989173675323943177649626689793300946699682715416518727750315564162190222748177959808375051096573817002739034451399849100455979097860047498225928964253735506239525745546229153489484856616695064338434520229802686139294208630449218268478235869636334436445887385662582503889340206387597234262808393802529400487838778441545132189394727448707427132842895701181736366943115938302018396605271269027915868033721678589144081897710639858870467760551706879975083259265464616235881734386201176055415038197315386671187515173730904283719490773782820906966052923015270140114663377899637674915259089115363936746864257392067311489956299264383327359013186236648929857851724539400146527686962961927186176318798597852305225824508751821681871167380061607432465524366906630886046454260915385389514411528110596114437485783973426545381902132464454536885472438131007759821268736090373640784477603979132704051251908927212355428561094542691765610275942307897963324439537053323980144955638452763374749593012619022982451489407507824823272903842135781748110013913674065716553520876904959122502981166186124818602066265921966511601935803478846797440267943083115985953489721684534343108232722781334659283901932181721266163108765967426763673047065000331548783125466781062252063058989866305595658415057668623505739034312856910996700599583868108230196017391095620591378590290075350886299080397032541194924573592702829668699786126119722470607245587568256984611625479077388795443843312033376757177421434255408696518068573521014362185715276814658819462131470143300700287458840528829803747426727206247008670565656739604466072366108283977275476235307119691310237377365878700528826400673573543579610908467954519878505349601245800456441579628874080546038069816153990868977658549437831378734134656194778382446220323202764319618720672684817276045167059976822133480169299264793598210888669795260644023851174681161468499561607127929949857751138965938951471929547419692699168762458073898842255608558676727921597882355063171503587607892929775326739726939284066257455484171768717906515182895236049424044320306432675142022409897510334313373166567018378165527388947302703890092484813086922060260972928706974799717792674430818417612375247464630364875150133034261346895904664054940324027723637042164963489895070558728801985173579503789070681403752045193108989092939578086649584396542178567812676746349052935534786843607868690274314268595000733825825370974229122081017809430678299684519619664386197394416441912017748030691883899438939580751245899912195033501250694097300334586710138028952207092655765506241290572882932503229355295565995694093244114567280694677720731167674483369169116599637241712789117256699155593714018663227453367401131649089668630811731185221241474517006312261873603663251639359433508050298528304396249858936233927552769654703838810780786054629236341481658348200161914017254350627504125366875658216206021168976984117863700932270471177307516808033428173574967062223146125257116381932511753155181566359606815032006722403194267395325600154864102440614426659150800667567273457179979484999197268691346632685002686737564981355433389326829945618831337213582973635054256749453321796871617955192617630851453571602688716475492942376439432009620059028618454883191513297066564211735860625318393792030152671871231630210607556010602923934162043504571460886652812657612456287688604443579479704847405119675683861496816488293406353971452936553854245367703888813552904953660300897167609345679536161765287317928718133762510163923324191170414182713961788639504166544127430171423132720181509259583042447139266076047169064206423567651457576527018674398978855063351204663375851416695164452214357468266180821697992686403264977324825781031188251950627022106539766599460143211654077906047816159618966791391777358963456395363666108280099462719048504841945765977143713693557374955170835934606232526695607530387430825312540321268321855494391706127807987057158448322284926031473018421818074153751071136110170723564837927109742864097348566577122049849885994979835396874756390474904413710735966040156246740587843896256835839177753924775285881588596621557179958543520883146340052851327116482049391390188672437148576109053439803690595592779598002155724783816805358708158786953472529003930275259379753684267301342164431110506176933178592533952174134890619446340377082184048090857287691407446697212197240776110349613660803559410137339596380990468949264771492780424275103402142096980941312753485394705517024428136299447271250248421905048781253345787828359433331406638224457155737702525993650580885110363025069854981591787104154519519798573742238501597811043164832093427532746908153747432315612095570906658585090795799635457025655756671658037247734935472645672723307019491191068743598853145183154520585102927277608235159725799674339621046589711263301797720508388376488241418913472980544161489860761311434024888506725727399737733295239100343872398098947211561688358925371709745748200853837406177456005371267806516550130605767798865706166375383808067217005529889787785783743861672103182461668625753481342321952369652070698032578882817018996739992720679940074710266321258181752714692974356387961277881646634608890897573313944295429835483362717029269285420638517081142072062597191621978331380474628497401753289545556182750230293715254423792548047724882706324773251379533645918290366743035500364571159632945471775415980662819017611959555723853088935900415842768282969086762540494753360266971535160070412694925402538413782602381350732695800569824017004062553091837314233275830007061792024707179982975380276338354899957869216671914697779881503893674468324432115851538886624854856420584787474534625696248529152134951280550528581204262550263761693297778250210271548682553802766503743388892881924797761510530200485560126477678206556673575376284465731813753065302073188627518124399989621520467014565942118454387095476571884839739356702275108111975909458877525750502360459662874518460821850874664229934045843700050557431919416977589076906349423877374134610820377426645010551987390044636992598169162675567551782850130929082986061926424547127287856501959725323858233295395638811714310690328880572688601053170395032939123938493607637180210372029110523958464010514968904637033669397534085501112751773356916578554034213973217319968309056197202510594380325155060967943020780914597274843314736678198097339522266495356409115919162691388746311645138200643691186193872975682049884359111183562868521037721312250448986278186772018342698044719917600154119188374939398692119286807705302938617208499316202522133196804489645994950697137991208436939356652887922357749680428303777609472881292350413549541200098405981678997171364151065849988939346096981148053540803828973953013313968704321438298140322217045535421975368500536213805228402198575862385615557201457130599600748234895973121229511324262835950420801717553740729853366998540221896523987499884414173128326212051767048540561078966001674203865974942312887113173304424958794958652669043445050692694865230456819148425159784185086778330900559427952998287283706965356560550820786275609077768768839884763417229370256410038777564225737083365242016548559398811877619135833800664735570540929481866117886854518043860135081373830984569613332113435805381267856273444258555681041246429794759931470078256494174351515743927219908555166612401184243814385415958676764148453039730927521069729846285453921240092412682955891841015407147615648073116897040658302877522588967475598630683397264503167468780980454180545844533382076282070175818952156484542384162387969935183545264513811148252787038263599030995860149008455565357529025197870504295171911593983681558254133033632038146024480080091961953252462152091392860320724027783421178724541405337937188785591835527491624469523777439941535947831872126131522237256022425069122755799925381336229918285082393017394850579201959690397506356481835212584817187434185918469836166297084138418966237512555428323747176964995155421030036385293917873212201099705874028136793783860092263170138410942329832703119222667062114067368477672076883601495589310631049081291444378112750292466089900912396962211390698525634424953631054877567714033673387635760227659350129039412614362238984196724325625174986415742215755562059060471588912880678854490814452306396673671693020668520353634770704606308408172892644852246777633023373176075229462499898021882348691866842120849743955904428569161583040809963990592179580670153683234458088601453167804142598111221894884407001484901602006627977879835141976968381840570794552246964404629379770037870183134781786769685154141999891373668086277423484317324056770742842416959515297393522553003064479914065100421548991632697668282013837937320624327047650787331564066264420328075639882831977708997882018221793714846831668529881205878381745681037464932830094462224588963014241110935718637224484505418503171852791645021805660797083985457502233030648290396618044183327405287488519591038551318617603822317291551227362282453948019753214676142268649227560400545061542409709291014838002584222847741576241058896840053234572384361028415471883845313835367555726715133508137847541749308017983115514317098025263568847984776225257727818043438182321051569384868691410042178340965659748142565190645801061032446941460808974472900264248226503714805986702080487066194261913382484319233976204901057183686900263973032686575363659816289504044742806265793904405726236069861102533471007944763907824912592153838336331026380337367231090086919753977481157968674184105455309012973990723658460694724352181117703890232306146372856107378834629422313645304948065619686630847487526151532093109380441676842381836618780749494397929764894137443945515543248970667657822173761091056968683336979538848461634374832713416375110569101406274791630291353543807378325240940746251910883085660512023347266586338150292326969564013338352467252970702747032072786894291244481238214505865866289107756459306091150181540343588149274216343272752412015151073050885069504574194836448289929992550655122826870213687095025868084130592626660079638153073746461847398201164215756843546828053420232008059382338930904342684368215090694160700440535820175621504097338911972466185684911633135499303629893252474571081170686955670068173867165999339362644916615295649375639233343039050494030956497333832378290915533076540138775842915688332492196687367917250534917662755455292439627138275797055779188224915840228179104304733994142441495337786039203877907026642232560208772403367726819613694963473887840176107524216037044799156694164290349027827768639013846782507534661848546700553970504708457071917013457998634795232408099104678240300222242015780084550363113978186863565064670473907561609014463772828045699250591402045234911932131401804160969815708734978383778190616080794239599270253442949224503311962895764019747200252937095750847654911886416406734263612380623548718005775783674032941095583005805301210719312236870754958930602273439989192553688463434221666083463178916344390671821588754542744137394463800820257472021846033047344534332995859375838359111808487958849778814529364225288592931086405252212098343810304870726099301308766986311897434031760195187916549335842724736123142776553728612950019936687435550182105034037793763917378293963909505665028069120594202232359976895476811696266910150619201983086841772224552673709452181302038724916639572815159059476888210677999563105453476551412800597324103058140168151025094803106121010555019634304160784723086730990311386567296415268528716925579686828025162493670275936583972488051585372216061490443229757446097223860707362598430828428224942601980346359907121220580404849051233338555016387927190540192316537444273222575451536256297977170925229620756086624560910162441265966136554837906421591507371888429902538514780694618281579523470665719072386663297148999929064613932601457746916098244566591111671699847399447480693803300767145284006901586079998675388417803932730489079074475205826461674754962224101811636800531301594158209440547656100430993649763289870013570522796834535391126248103372740013308062497492326190821450053893058519346040341674933809858153350844703707383890232293015579322382140612851094275165429941508133260633902661683201591211261293586567177844742987382459618522283842846268534904218088895824920621025097116323542431008844970983193093342655669541479985465046796812449794508719069602867837722399358145561815466516413825629441948502942123803440947494651251570503816697927758116440143929549038965750778412547817439557441002860780027107573551137545504229251496713634261603776621644967237992882718843678871281378385878000590994019417937732260721895515806495957139213126469108182436965713621124163218164280623984462094579685302830453518947570310692235397171942583178242133307729246343743210587426177341713016523632090649818018147810283097628318770460832141812695019835903954016603217242949246356388652167630461814441609681858033995868204211059597345950364359372870428993266680674372171906381617849601259447310546108682001867127057605641596874081057380117223275850271257702712753851929764066027514735051151902432385774202620665766470684244702505582342876211736706293704762290755642906626286479257536819567602360902750991695289103909442726892832826120106193060607377074151127780748259552631897503970391918961374133690200890379800422403848081335760882429509241041160237646727961253818776537164357619257421084634947980206787277529188194064710894146566119450417746036361372556442213923179973810136363390107247327905998224636144955089951645320165633239695480582678965136457745324011000536220701658456783866279502818554874624175273611686651317444990359266638221984021754511041557661558916997076290101894801132886500591057587340718915049265178417947345947647118710328729019483402312585338951180588417518937982912313486391499931891901669822904972645142444726730221130061211722791765369562878228131977443094644025597895968696529085736917975252013102949212542870984506153661575250675214678370366848405443902935602066040202511942318993005479300820112087376112809570995161058781029188037436490374576317197247313683738447217385509784801788013477173678932647920076976475294215251824282970371162559855079100767341663133753296397055400180973898942645050805777922444984817045667278481280414105806093457063919112956598962321402840258766374342273569691464860261655215031060940028872689180938887033307019873061881023868877032417518715756431207419275127310494654980681830888407794781827666922219450084128665170086956998117275437685790138988383292665637074221917247117433682703960325316700966133663932461075854679555294079671167546940046268177238930018556358886870822156450150033344238201844458556724594112619776034495356371941839396558883835762051160635662788244025292965281501409185374370878451595924639019703416949949446639466491210567058283647817836945639599957969179838056864330361188860070418382882513436619534580806910082396900266461675307584163915811496314350149876016840363296563973589688275253982453410490767538554123051415209823200794625162238734603155974664522267230989506736544251567219487443404435084242735953852577796171361105826318027784103169762270303375554167002831907850336191427364257096375853593563549488364296151268447710471889524312615643250019560193760921263103748874437598395208449471305895487059319534782473216817271702854407625317424526234076439729209654927221222493506454041922617289828059771565615367607625169967896764009865746712158786683153811188557798877003879568955693604327723702553117646904024320992512453438363414130515039013685022323501315936359631232340481154897885581426918755202704496678262358092015601233448197920561910308749312368444056322909243365424130009910351207983413156699886408705527438921339393003694560662631842009755527449266366434718926424341703955968614202353125000529443635757739054389618467439154175752623382321468526176732587790553406821836846323591591789664108573452063642453422333090577526492462102521606072710131631133423984809798019500603828622623953720566262753326088397520620841719167513602406825976581236158219494246897980022578816453900506649397736492391399464007131974006269977681337368159059934809930869163055782845992016362612225448846656130820968647385975131530761628383960258178629661938727839255064256091575023911724435944902643259857030653927647272916371577082838049537084379697627777741706854618192149706185395349501512427795284448624742817962946819547339649392654948359161778547455411060804344539939157280713747980544620840851745613558486654641526968377421604448640364033102920624052814443216282757303974591646926944432193460826807278121761516647453652294775713763940747490006791919564361173109078348386895468881958156795162619329861392480046740947785517937957285257285783578759772512470448857760841902351738042578070831697712062627007055460511244174674967779727653021726927679111201249248231192911600852286265105163982457303438593630674348588013231760972519675959089511553931489256124700805523288352333540669628514582286855566572610020132783111832798759679316590863934414905078142449440073096801152324500108375882891233720452938701146998762555025413997891126157751559601015759334866508834306067732696440420830362442238864280469956623757176919635406264591237964900144249504632428055043979007260055342268852426495956002938192616227745869177855824743082725307581854713363168099894013577533595276852315873460794802824073836336612939358571198729171386115771272039083438606061390355390863110185766060333334911265550674192220322303588394294942816795694434211970851984395821252037338750974780266584272645961669207823017730396325789524013681204920071626018402397948058798555749884777586164335347087660472746617147324640926176578486220055706439409891820584786717201377128396123792220957544553727481612924759900414707089669638705640861496613268943578358220697194763471032941334381162278967984721285026186339434575678532405414261180457939136274158086643526296386314466610750444647546231225922295212710393202665936377247115534935128823451376893884397888957192574719435538078690633620712082808832420188514705724402460297511566802956818158917346082368689292987887023781511537954957316847528387281778217471922445686838177819241396085256657377318690534507626153713621113166689239883125848879831858619533821380391009563653420183001623710119320806889100167752788473912992635747058321521169547936225343608551432864564820739372793682326654090578103654722980757158271725509950683014012525746708907219650093459166938765114985439870509575237149568055761156839483639747590352282311184925433887172739159927340824483530236492192645424878031643310209460822053403229132687146364350141608572764754167272137956772280415626986612410090480652457591786738443145245276647477129165167463390592167449590027634619548360810678015721088072840283566578938781711376142867479379170481537838194495991276164781368144347909917229095557605333247865437399364219790090296581757265405475097524840706457922519510606618480036180836582108194309179980311386895406215050288341509915530863179016520529513151862965828073064379864597497554381358785362596807636861204466574426519259823515276248378858818262036825320278062575387630870016755931652632234820684469182295087395183952055001040397664056605407887387884666918679841059501298773815664708905515799940512065958300316772365186502239543998406884914477323611050276742776796963240687563685564546188232022735046040220922946660815199743774777468219517062026740985878414361060460903765943777520049573134855165652985212234056339306399514572508544001890472196732618847596223595675605514016527156669420617497599073224407774555652944042291881210056781179691177381721012711300127627264293651011789973843532995208963932601199870805660080155956918459285340803577908936259383186851345073194104889530847960715563533865199093657927059162798599833775084810335370510716113749995158467957875579454713796684402250877956708167113859211337409835356875570817648378938331557482227728136704888923587436861370845881955727058367243125584369174511969249668747902081897565552143730360287453850165602398951252460553085754412706022299662505305282396719310716185811353023233807013088676966302922281436810821805027491006006104762837401891763261324892676273301150797901285454637909978455883297273502740525130309177634236629021628059828145976838953617351528937634681732341400962457865563875971066911592102058529342878597463783922466539265773590756064613994931855093242706463899318705746623161624331405103630570015576426749389796809574262090389985402458028799429244131331029236187053746340594756811171308112568958254637504287342249500992022731940624645119292059028619788091994744375079249602325788947608630969641792455930439420331602396336853417378327566374653408000252541571781200206726404536499272740339477710693276505162311559206910547247205430511132877717037607166596360892063226431340542097813363326271567302915858315455311781306610858683538718339749345782003509379161053369099479257367121562093715773218636853482831880890263943297948981255516455449663640456084200662845526115901528245600329307777502252451940990117121848962589377809185803579563105251229372540226190480352479622799560743117495818244412577862627687009029548392190439851596544524998010373408173068147406597446375146096465379558683533829131682659322369918578822252844408424050227576382732479822635699745083373171330157841879410451087464501298668916187687940059828873489225752364646109491528464782851044306861096424897417468753015713335321691662414358147497653940779753699320442496411247184023994355781420512901053698590448640462503526923499854664253575036955608465783863706768877856155513329511596655163076485759819499544704002494963595845757713056474001748019265848232723154159938926912339476873738662696679457164356641811235557487641093567957979116523898525078616656021294105967887443357597025345450304092593701881677541683869831995849568555739563934823117105994986222574223500337075291910139137682624557840240464931987620688464675574082606062545778848049893841662484006227533508354619340605869262121266460324741978328593637813646298016700244978497882654149640832347138106024310356867774018563612313525395192290029984574166796247228628354852734416172488331035938551204183768000912805006935684280731973857318154952851493811697992135518916490062942651532988164398403627881913619552275169130674027954534392987968283957149392881489435395340640541730319073367782675901467490971638119547820126135457394810598268770163696278851002904899310804250945719379768394451799476399592450604975176154014405362068748900074639141005283541900705255877077074943447940589662905525269562629880686251446194961517366928906613187022036301837428246797671661706165228534820902759797084021731356940357993421435535100769364371025820943341508728373317619309054090924844381057361799815116155496365707341028677865180658849209691237190433218969473588821731617037208270874850272280422394961410811811295151404840739664725376037666974902506057984672705028806529314567539288973863918842643416759573988379116393990647366099442239464225528729112061311850027374475361951149900123688062719257124471917763558174172506153704858768013802121426195531988366815003257798238437129807557369559123323171548598018170447815414071704496780593970660446870855150524129720379715680831016821622542998145608179306332748096520090624364666232955932141899767786273929581691719326327537211292982693907190907347450230076896231907647149952968223022059046030298810168403894677561323883790208821465790523874892004929062412674641550340060468104418593386399796355828138745117751162542358903858733036168910091849972007374993575947439746123573166823614152004460500417163157304822474821806564618610922477533103177089536222676000957431292199069303788577605799215258974172357706639141029726000978628403063039469265639167690255515314975420033372098882174427659624629026996068785346446409003876783817944188832834416976216005198806325674411150031626178195756823628348273268133492265348943020835258299003016063514433056781777268625606311618869206314790364226521595542465329610406431871138658673397238083618756845565300859254797042742047268628131760729282913892627597537008121756348488433369525778533027761814654675873760757818268889000338617040291610119499027473297231375576064937275669187918189073176796072174144226755184488917405815338676345249082765038867572924939695066593783793506847279814793485809131941217644047870822755014425522673242421873728232833148041729053961468595160416759431342082401420912683131798706377086419346400118958145283039331416320932430275909091472431493035815355576157412424313447388175787113991557110924400134955488290485393908195544310133988433010512070360764303556670643406960394582653672260959033302442377235690687103169749667815661163947810354540302734584812432805847811506059848643917853374947366728072289000556416317058075524747280224387844074165948016038268128307426499867529337424650683007674657585113261167727142144411557093616138003823692776682799706262264296519221808957688917922485992282101332869470281004577036723861612314227375144825497727687362905573205963975446728050663727098319457805290824751389291610136105705697240401888619599220239636893641603929324964690139833448898363459354425806865131818754416822680850022049757850481040110290463829782961118056482086118164238843857846893614296518392702025955151057190032674237240343302721340395973468678740712963180581549341081819243882545237366845964656276318064144846579292999861396725540514203585007338804281944988975769810632739952972461589412770741898060050347723283973959320052774635810891481452493477200135219325089136592619445398676255237419296015179254986297064620566223677637311851251739701480094073404954492744074208842798139823314812372845551670196597795511032802981159210865070421042169799995642795577632733770907744460827275672526948651310418210840201660501649352514808508266198183917588747432442502266828563384917291889600463758850142698709035656606425545411599127729858719059229089844965508654679155358991661008140952572825545186938339147031827527722117055706167735747646957409757344011815385165118179925513905724198453205944404208710638821794718193803474071367114864224232308061216266049992173868677522282735532682436729074873265682066609394274828154194785319292836367924849296219883038779811056065267462121584901471328479529768278973483566806753633969331415439047539037380193577598516085515275393282802398551050909980797547946739930270951617411639102599803340555930059495229079336679618467576829402307929210205682918108297393642310683579331133821591865088672912330150176423258218173663230236394276008287633008977587003058603625213183303431792044653976473302677058219953376536840003044714318918520749664488576023068524737105396750086813646161858513319295832423005583721582602953121479656557748115509881352543882752518779990200234702744731541885762375744063703170142908464412081769357337626959949331215610174811556162249910285596464712953338499549627930927379278365585221918289719542490643237224399423501616691051784214655368570390349578453060141934698859763443687423407977039477451462152441501551761721517027278264668612610486491017241402722195633328083180542624375512854647783096508833642018123047612963689326758431755663829748579621678040183026378521373545615803576416861117173740758006142182582534022686645747592187893319308947339748256505228837472698118744346553597869575253555865805874907268435989127449769070790657994404200648756816692332203734491317262851050491608502355291391869347992323069759221141367760223223771332219533565670264914559831276380983650887388944859303467092715856080690064243269881895448673473683914775154716830858741988254329068209255325041842539647848051279916262603006136974248412632549065306278612100646539136868319678333698234131524701925511302259930006730273776329359766595297854054848765015702274964898383250256039564999340660649906368908162646272670691773852460408649056941771856904531874862750434476979141106785979454290472981112552135381423047643332600506007592185131407786985141226057186566176689097311008438802379063791596107771009306235396918067280639761556074780250932516006513828883307190353521145241914319375850601636729117580092472251323941825377467136063292413630522278067854274136506278076107475399828965770892774530107645264582316157769146137100115691646685678107254685072057439162177720921559634600260009262947335949287864722658064538758821440299689963089745464970924939713814428010715483447970732162241610340534190988543357455008600584520281489610657966406721163345001436547302353119159342132487126545316961984096188284361162626405325327828904382282635440725115441364018093632903801798047774105628872765623777652333459923986406935800804172912925352573615567915044715473483214899012980420671402238302726020339768682708779615567364182259539738737132437920858828388355932643009192180215648723117527277976618588166238895253505362410011065950905001788659837069481709430482769317719147503917914189757628952033786916042220388638373419287805022212222336922120902964956580165205615816313760840263599167632191659670764321377297624081813629439844605763965402811910150103757692997599217607709919214685655935630070245495386668838818676344810169642052487385186818089732361773230059591758943318302417172287556756337473027680665824049633671382142731358816274668992154361110765480522746218721366333670937737948709618433690667221973213514520201328840121366011652062645629234941068996118703994136220553237721512538367258647535199008770868920015332869065261802589175746468252527840504621602146940627511109825679992019362975698090659264782005204774783220820846952986496381386481316266734806284271869677703886150937799555136728058968519415765510200064791156206483969562249094329548946417748845721247623798052240583640340762018171837246012677958231105706200447907945399114458106791272185234811129096475825891674999945575981922191323909054522860802531881965848703216443978208464401478201452118733613248908844660752761863961927158171497334202667038359383794137685484660377222047588928900923587716916241053397847879735987256860901741244383411311674970882849905085223829014310468412177929705463436555704759443851290483330509917674632005133764668667088835785477231467639485341262847570328553724477343659729323219395640502840234219005700509073267058606333589807795315437612220116622915259881955640470098204523281269317317588444207599896965475230494153730025876905194472326862470165120108741043383081170670318020647355204447451123726656636678561077368813280624765507450540500357724561847715129165157090416531238911908960253727884636460969030920117288567904184234982259900312510471313032538149920456145072945134228432602722256147795593421882582856909983664302476110364149535157601485522502487055951512784543950942547588120369962781932744999849811468096605937005633512789633435202354954073130514099096553337775338929380636387827914032327238954728458725376488974681062072266287065702124049505033617704223480994618442944893658893913797002776905257008370526710037337559071432698390794488924859829004647919005235179928282150831250296528971236860618239680820978211355343948332350411492091988991208402608683599128173606904056912733303851049117421753750151204529820909110453823599584443560620922683701853003253380566867088526467768412901104392053237538792879809795417884539267320581898627485403384197867036772410297577381952398695996634404183386412952645545949986112672865609065660728831659662969558618294191514422263500912326802342710778406814419817918079261840087927926303318996716129438838250444065386066402502096022167604897180923766840200313246355081253028560512710524565420306005465155375009113867757101097450774345684128829981779575996443303417945957549612662070005495023587414038253563701978862149598066472669327472906685701740660773570154572610172336587402038486678870898066282535323794062237319928233516167422715757333279446415454974511662175812576986881386416242771230490091564665389359259779415526320074909424887625232072543369704626533112113323588048117535271350232024193831292816677424395946546413034524048732240953181012067004040514179009203198267850962481188993167397374715559505143528207155147372890642873436965105415968029509253674047700754841858553173038449183129533697478087484877692351874961915398363157813546544449658823236748859527618101557261744410408623503914006144228097370313544690047136392032866465623196544099135194962709939962895088058313608243534485171143528034599611380058231832404099211812732195519011982103887187100254563086301335549725116527250327830774602432877553160208480673187999021691739788836877918408825240455097243219558842399957421935468576477482442231574141046998215998883088267035080778777275089190162444586851979376212008135494495337381409818229869516703946752268636777065879557914547394396507111966300056405066124441116937960589482698462938888981554717760838660302125347386838087640833445093994649739038477012402284112130697355984961754991069817458854375550569410413658523402983649018036430623225295296158789928514525528966468552214796259304907548136533351631170539485353676212551420764702597527374890562678149062824757389113668600957290815196853054172826497505274728122279148903274513971137511485914493425587133048218393963638306572639404349306197664433832377257688877264512169885177780822405341099671073678866921131576756136723623109446571311829341953356742675003148855483348095128985157328172420882586570422197237335811406271688621447263810366062723704995779260773425817771827927468327178961244689952990498671912563804883287209324713083495294592570806832327721740030725600705204417589078740583641976245842765889333983631544595031497581888818637262494596349584726162280980265812023792867611567322486456729450509986003875439721100946119456463132643702957781034704090689070202342510091133585837404408151613238063520370758455094043371380187778162630295094424576062828674141683131525589917410903024844384728438195920383201247701638228561602147181409341376870716988620627646897231138512896889993365988915390017362711918651676446699824370808603041653909157452961052994785827865590199439153971640774327890950358645540531390493092324403423151295183521209552764912119889473764107185844609425997092351405394721267516415428483617117490322944457680584876557012260784675663587626131201804459399598152054744727337191397215793635664219461227209228869880715903202236956774489065133756972232005113089611813048391911364522691109124213974055584167668763686649830547204601477061437002296934486760611063783368283918221959438769813718101923383290844301380302732984463405142138990446223721914414217341925730214923083828751057843818255908252481121944380639140998005031045780734822651743338422975750637259577553590826752915480875363124766474665941684493073379677580224176743609728936827840218039557138884692888687539223837462638823351104914650334839594598093338244444706257880980108424463967674062408825487089266433168145771960769221587990259513688903485561369775613946787772100116719906668353637397489619728342397225271835323489308297134284157107158830703357361409279695453065827937436129160664041922535312741118680318942726085335430585257553244194839451758104336342466988765702942639527122987129315336004970807091410401081078284804674843939508780123440993112065275036083415808230556314858248667282462294129399297050382783374740792931317800405508001318484243310496115707451024535339659962959145803171734708731296303202309265301991626369726521478156118182095934709941926145132003344774615397793344419326756081995037627009197068833033520071837152964974850993144304766407883749873444020890621852602311990545901756480137288904791455979055045685979696410423633143194652892657278333398549728481169379495853209923446576534959902894485922970396505365512884081990220403532317868663838023064898008036462160064152318391943330074520189181538845592584007891915062167043991793643875810015535968898926648123414920120651813286843144197613011531787515492165278748021506732982709315811501740867797450699541648882854853368168153597164728562742989023565599016191802090816150759670700912282781297155457382409016413298466156198264439410146928243278261668169969284957367695833244537055592469126046141127252481550219955649274146698642162701828062476193201210053455533544070941398157417422379851881720968466866280869681120865553462078768192119706532347045002862386458862896445946067100075589542255843356756184942929026337225241779895444187523581803342448700455192154277283973404834753458393799832010971800671164548996599068811012600720251438233688824933065470534303218384968122834766412266635627747659596800618814494557539387375204595281830682455994836015149331726417240763589243634372759706401485713633380143416997462429976623428380560624394448274382534099640226292572358102681731005788271034611169619966389027950911632220032900558828998319595549764054945269799744852730544526384576203988240506333743408189849996182122592498372316132159717211566704399307659535784775881253022568066808781129609594977120143896141828293765577769129727231698222412931909487407900039747169150648288147651039853689346340998039025886672360199090535339200950945176907492668250228336557326564178593315574362513850745918265337857935070550479502045598961398463771689506720124730688118104670737719669301779426997109191701344879994499716069963094736097118269984275167139402121099508775588101703167099430972553845113814716406706745709722601671823783216440708030275659509732140851585968948712325801114832942793461449367683247159805882954802021019701531388697596569009262602989922456169638199451428111748489021403596464431137303902921845304483487134690428614163897554428546533505337285147400906384284747003368824260131286299398502073566880255573531507642662841257548424962128375469357455974745007238322880405091715900274058645038083505095578646789262669604526277609830354976796110417679631509986935698493265133303033078630581234395385105566831009045763344510668742465040958815592274299613324139650465148424776130512730136057425666519762305356535721415063850605275651327465582998623587069742540146369491110143966032332391448654843157760910930811661494383580516687936225517596411798805368368811247788191106254283756154426411612300956503327449298090734921345126558899252559457250364187769310385933476667092588269658947342996296629303001852837575059203487090120697929364738509191903716944366598910350566751422904085347328432091871787249495413460764168534552123183173257240898273145491467473057561301816286838535265554681177727273428325601579975972793697881269383391139286062040131888205378605903791413760197894199884430767924086887430285744040235382075588572013680761650378968175168060596685110240285349552437363662080763144748132537749056044119324986621639515756615811974745940100174274029268199533134684449773847584800652151957961277896470184523766042424998093752831073512675252753173672897311000420081443040955620387995533824567484821172969740614493734144459537786182582372540560906963299665837244696586300108584423623116012746852883516079402792752384985772834273104495124902708296442968267202226329557044987560312889536097962864405846818282608731865024737217603464235188140046747035675713218399086704250946943659858042954284998534247315035161683978645152022028648724517255791688197714408584459871098338043017234438189768939475107208386544323235508288495609356571138171339635615362086736027675829367798852696786584050039376314951525374606750068110522800572635251040790184636011616685868965806372729161454464726218479402868792605301288714948552010155712554154480569672345551421118690289128346914465994816425635552854605413497372891966880203176526910100613783279700527429397373532296862194120081938111490436073570155580137818684294135612289514487366803783085766159068153542642571249648457569646820070963384424497103074006744079332294759680348903193735706472491832655305328297663508685662382157830348609051958535642676757146108185078742747538658429916931261096501038070791235986230382259516360998009394740842439894655342811480921830818666761063746359403085876611015383700375089372375886871048670012780822966568009192172888706405358410662516106087665136007464919972005064398127603278378789774186238186599496013541608747602533029874628615634603155190327436652453235099393303962369038515653661812609196632370288041247403186512025060025617236696057729724489528186860782158924022394747148358982677877453152508724633317896727088665558212542925284891031530086349100341165407703497126639940186938738782962424258729130469059489404099117343192933006832578665926123441826861471865837473186872149288028451779696572032192168325838267527522065111998428921052754920320195565578620608100395696872310237024661833659587234959576989764283857839961788967041007993183125854921124012234499375986434370003376966896475609501584753282591371528850876200945298380260839080839767340789614168633701809278593345709511597126393495417835341714828107948614074778209638698230933067163109422199834032290725206673735712666387602613503327267713376908729276126315574988852862208997593762274978097614977731171966680720683128761666090746688245303651279833302045589893156418279204647896918100102296226425324023963819212636930329297010415055530579444758017858287466956934926205194772395889996147390186185023272562689261026988569872491748901511083200084323142910861365244363006053020525471417995205315179030196648692182469798326456845745739076321832694866419838048613230513160425358035642115767057588258687750704863884939307646388071350677826822682627073134235251029162532423696713107264426119961748981231453808751152760171861308408926053669297215887095283742599807189659203071197127316142823250064515939225248395673324514437187832813756682637870151252857141313719449785559146214821722092442538067248415966446801043613960585167071353430156237915562701792679891995335013775882524883758523446856235149499649281469724118696346334350997731070081632365840244004832222433303987666064697266669690011259359675159944170933602853614101256661939955540490000171223105930864855785834063406386749139091740307225905156609733952300176697515189360759689259185124250006444152769264441941059083870219272987816338388829817320542191422336621857739957659391381920041199529777499370032202254798721133208417147736765877129626233467331167632203339863644777138099579851022206067890542328019287205203379303004497202833726718560194896734588947891103188958057228966881284012320030524392509754299820701209175853566089544835646357187909091182003697251478777749519685234936238040009424004753159828310066109953887814015906065918177625809370684767812886672446960950406401319073954021687204567285910852236693767113738796975757491998936985826429346469227336159119003523289109140791481515825973271651093355242831642908377822195643553710358196067023129498883986982353946004871105280848718470459483125058948366560870103563064456789915273321781744773642860653746053892731636874347002728541356613517953120665584172874147859614733587473610646733101037056403343205495714282231176783064273418761445198875816345519248467117090830770819226279240519706705516556673771090462061669524411934051723507372660254972609636114310795533735697007606059832037188256863937557966301019808565702620799883845640440040390944155558130158748136327484246071009655992044820359262211991727062316242150583421294386397769672562995175888744095696931680781426920152587075114906493841272082498900519605834323638598772198059513570968179734358624073689510424486967845372633015509698741256753463863872526948195499816866640943058580469168498467183119217165600291227171539010184751448886903469322830630712847597211754416212406540239426688816254249069412292080639401658478395458201536937630853586922624448730276151424108211235265190871160134970859805347861737880319584740626658391418131663501319652808149875094707892071837157458884904578400298435645024085462837651259852776107404513046884109450787838783093737131963166194550145696451697995746996476934357256966416949477865753103142671877472649897809845586788343718909977389430334116210512020080190316364670311976292264921173211544033433288464556016562405656487127580501055550582707289598609670704897961667013690490158312740007029720180319380533412923998876624161022514079522837848849301718542461381114959455465450175928113027922299373506756922454542351246002229902348822768296856029864747370953085638639486149401092145387985222193837360201444497135780743134706449117333069094190651275533345480242029585823108494210215204224224384022968062612687906119183604728926417128506068330511061748878038949299114357565513207429479845085922141304708108154875882462484855439889782004703039350967001036016628190915543962994978645522683850803471578137355896437380753984666526208022971488444818455385542053086244077492447108079058971639288776066549086827332389042541894582724070558662444568217563565803791921299304892776625552250779320120740594311887286596407939056832451908947769930123200934331978854553498553737209189068890151866963227000935431310155604636317536624020104938945947457946368744985777739823799557893753238907164272279054314633376780622608187769138859627286602209670247146202911467687286682349536532295743717552243209485787907706591861497114440339469843433611112562282276763002943977792795913270129327187155728186755873938672688471433148876364790288891128336282620284207782576650515449427678384813417776361557712804669681139434948326840492868092682850102717146104794011924493610744648943960070850083915094092961986171641581564273881123033741647288398027594954347278225266766735090971167258121465454912628770590097107212914438492376198242417442786534353149472668189584887752783712597750373653655842799302312367742055272557927124588031478362464587116084717088287189023727716950283806554295175931196351796515286993822140471604281663976930771431849534639517166270368333266860378212613921660461084717235883545430631778210140966278511159507435866978452849426939948432964550542824599989412904675801996808360588548597034607818644668684265544161722457845654179452790624911836803650814856289424532959942621618278126253351365794896531118591791049678641676697723697469282515587897031130216587261196502973857939383997540198889149189560763131476309192243089961063878285400188038749777316766775548660701326094989356766690078235437408290922084980949381833258540748610432420185540776155121778663736930940427223557822852265649407714328523928124355937192298711996621233468884058357435962145361283180102470741359372279042073039134575400633076866508786520990899461730994167309089823606608349268381598556230139426695112638022032590333829125566690432654651536527895826262382977369526962594410509830644371814616456302426795687285693977669377474787611931059187279203692524220245503448607967394265649979107066089649110540736244468752544057323613841428341568901505821383562285024162429605916427039841251724738114664997358037078446998305970855918973465212866625462406945760727637577993879116109068874664795020360106834039007977600962041452531741499960765875458028166434225817511448421583554729170013057992075502990290957271840287768134274673741570300323736188437138887836702243023422161384375353478169255085735106569277589569936075499852981724453642952355552553831475831794808445015440584389399652447154988659411271571633913990830350975577827286255078908134393567186546682883717958538453175070865646022720807059513051563507137743133279176829455662644903623289910091897551971260141580685503065530066646547823708183093166965711053510379432359228133566165149721364467183656458638543347804643728934337331855818908443029019921969194814902668709832122275997512190669104207407000306603444455647374848031760987685817064420470975729865893026223699310671873614253644851570055804965119729894389522135367385323940994423924769476527279823051153798986624260022893417547109070046417786456443609891542346491631440978412202702714343744494746114165561572013667596141009216616572730036067791286979987144255422822178019808999021263272963580856600580196236986919722423335122791291683348924479608100502569683856520620323270638511679079858942153208684309525234631278911420507225961871791199128344103700996217712813848560322132862618637963319909994815082967399155336718311869029716791656255067329884995040948966351796381175910780461261218599137292894485916133641005764722620544566403277507084532325376712284048994171136501916252286792666457061796385528455258574564960477999982484471532274635670263785595849021323240665517886050123140353637617954407519121623889279898133760850920330051989745403377399210902767055743738290475086139626731644061454479144812222216824123532290396775087894938858272750624169482555284161789761620770979012203402684524294207258420184525203459794446173889718962228578895861197672596044609841056119947031536722449145137767153863376411019112922428855884174925361250840340282192765273783713276374989205935402162730668365552270450956360935461761208718154120140936434263158141267390742486817041085600770227960017072201209403465831976352483138923217403987110736754048271656964822701662147325092873657824876577201507536258325492640868790804916908161161917156256415220937361171644633918556116087465699967088439121805720989082810070713766090435450009036174105314275460205048759297235106603306885044435932999928785891247173245858909602285198644774187269675852881528919112737908583842352683671178046725883345704659918041547401743100400187162089352687137670868541406620990574702455467962883961051950830243180739119856928789650606156199291785326530859114611483632223332254638303294714888310788696422013220200958602218989886436440668563553255286545902032250815370637002629980808157081288055381098666294948491772693679347721349909098226440886092640815751819738229755222731804360444758727746049859598047270367485304344375648799364083310340857006828395252663201266247013527285617420991373468945331177973462472888074251744539948688920668611157461964655971352683511663022561554048947561791099571560488949912787695934460953870685005205214133922429434016624924096674000058889092916522196496979346159242074963168977032754378982864715885194560997100130566464896335762216669263906539591777016058342342712289661961691853296076686797949820319357519054102835384728168477048695922274868324257693707409026034443127623695570028278823105392503082362925316382556975278691588153826351970102261843933709103429524707811204662237256337804478834590273414451534525996537231117665437941390884925375440304907702356326490142086647792277465798832918417351997091624776268106868150643544505267996399008725712302756399515031253439563326983464747701621175953824084426770927926031046932678486076313413493478437320912136787574838316957700743766290130026405936016312270137393720333140108248908995003874440230994000254741882378455589387390013115130411500087663307805994222382714170158935480482517946457338302558981253658002009733434265308926397076121305909232611466908949094033573179607916350107471265794535356636456748681734170555998797174692368548099973876962815784095106201835141073574954156072164694081683299536303249055497760821037883461425013261673472695755502735258886881264365608250473824169685208237566358881472656068018661039834335091824757630402429287697029480045212684715771419927820071817357233591961690118500824421170745577647194825457366050135716542934100427470097698945974209484667222350530518378670306046186325550119275221901037588593683341641869826034507249075156876054166003582349727935642951096651035268835584433524928666148419017145023537668946954146497549072970769319216852474943730125696940804075056707212294309496099341963289047922253911594036806602834362654609085874311771828469677645830234150193236923401103044133787446654210293137927787143913591948012057933024228569102904238572855353998389645913706988377292183411569016971525912397566836952851994360227978379901678884982791216270306878778853634515062229620488803746080844656474493894213130153836064875169881318126152119816056995807013916142120174618019875568383151571894583854052069068935631978159166625539702653625833084561811509776254678998323877697368772869781325694265334798993910045623453969380782214342865546111647401567813623990050478040951551374643961642560315013496532360650371298883829363442476842300462600031162140000846114402579065454657845737535711599657209695944532961885818676911508780962449325737323099710388054412896697465478248955038830994824055548750842336489873081785734826957811988296521842563881814726699615576684063990636106514983410328727836096668268954849799627535593118510934297776110458498846209464468292334437027237505436983354734348504353908504653397297665656519696056857546340158619600533996538394280745844629254838603978780481309691789389772203842728841395858312527676568420158638612783159527885610256183302232791871279764385497183409406934948684363470873697992927172835556128254310178041898047419837382218832011414835723546088124664241910844327564060419572043078610761825498892568042217371356498544058983286553851992445471559391586256114212230613316285976998978201916822521570603022952969431252152729417126653662173452229857320555293896555724629884042695375418635028584881871012425684910344924946855923760448607255888443136799228470695879717627853671488996625110169803062570728894249475014681362267388573267271592121196222850641474145860009060530848710078739765372820916489409233022520754816580994792268006796519126284470562263319030370293519474787851586602021707519121133491795823789228903617303059080102127778020186703778697244730574355176806620603110557398237506217090347307296657148980302729363561391018852973363217187501331540319106523706253029473230918565105357371072555935855254233239360625571340746919201613140746936074643337941479977653746270255663181077029559490871085308263078505912927716434523885020931432529758230680275352781489616499292720067295748759362069151925233756028470404018932402318454405821649761244126402210109656773999667584557271305097976514415488393743717369403274046406475143663043327259755787057898193983198451141486643569829235306240833912986674329196499115929552885872002959931695162419557452095466102351181350117923340615710774673135247185799064468336833502225754743594446200823106639144749511690227049042184471731074247897564354572686502107000778877799178348017994159069078930892911997681762553951795435650562071390206887558713362041937403550345140939765605681837082125843603875661842569182281324322423800109869473316124103449205149855243344393674304158440484344415223246168794007412046869069811900127019263172445870462600826799729702488398716533908828128091358659550479322386683439931085109665846997951490537096733779058627667885429467938308853317230138544561455449490580907947519825696378967083993530845811484221007774553702632450010040064917187977056505666454920628477868234231925054559195034267774727464215798413708149847685861245985435486381526095548208803033905426654250868119710777634792970953699165464267129840190131441942652367749408166228271854206370986764177942636452070453175505791620458887720998493976912303708034674101409678777169162948594858921147444324467991414285875451770502998519305646648879963534275165988206273967697675410963911814487783765246892973934039905639389294320414885218060776210637069970137247535567464758225223428116277058242722979227266662684262373850987905341986669676798951280899893217956590304345262909203168877829755600846892557078592189575469346715271140353004918281597856874566266683643585928647176452755795769655739936158539503469771742270605833088534805746940879983178433483142894169446065032458903240484849225603491652715308047277936677972875820847711005207367286381304273380229923953302475220943044361465645788406610028156093623862003510918591664238397743233392135342922439459440466732389033842629808518049747946610153925811722660459893125959941813411160864458573769351220958048105612089820631799760436716439692310675325435910490913250790233333117023510641431874663665350282273446698933235498681944064889157951941639814365115784813984552375893890782669571806457870025018258291519416378355527568399167208600896194569767455532646647477726195189798848403542218492795580769867566732001782235588101522036319950149620197072397392256757787973382799015161043333896126287302358457730018667946637787601286637317638240584833469256058271706011919311367715281315391461916999532055058373916610968856639221806852478625801763340937666851790406969927732514213836711113783334968357457479305968069996257170429019087566662612231601850573439897354047052726785393768478610612450292178291903991651892386426076046427806818441060184253546664929167159258409957663066760558066706761476597693700934520580896772592394368538251844840724637321233213400540355901461400638623000543440241750322041168696326894337482867401887172352591136801695435093654672256422151429220570555848686077127187505626770084179420522689552086451996316397237177501718640008769602790884947624180285407991441367673202265351029781709554703811586903757178691189358844639191278723687866030158767097544723439719615370483081037891583274008194565082977175826206954967289596877380085271694114554696230170681428354118233232043930856973224127305083100611298738683821456599168602422783471454351916286815394167082999671831174432829493377697437568269398031832866915842360494093152600456944339461389869150930243771796274515535195243783986313572177053860184915955507147660347937847953609530596677126210380391309449603890546961250758780909455540411841448718424166060335799444792578430030582510242536355548812744631601996353953690694835637025337375768196572998867466307525034390631676141597261469631958252594347267588522760400947987982503476363799032953452755482330507698998886431261749611977575604519899897891610217291819658721989766899855368587540882713018761515360755114921806918559164796331795998009959141206441817714165502802219000428586069533424208681206200105913860474955863822222826864989334794757741400439916131611097072183193688598027570839728252751546015194371543484554051027344723209984405611953206532855900432488192330684557528075751750712769402120098741816598813531244045675876934433094853511814215905474823527388167106875666224597423327742931103193453024705336640605053631081513269121786536518424094462257224804787924769255705084548875583531886942770604744949582632184020788873086235586712011840314437889468402283566672024773327531432002892128299056713417974321228476914756780506133523715928285019154829670542796561595792519189044662925001430997793314023008340394302304496987464766605999406784196429368036733481493975091398408867877352251266101419830780808388404315055030186261914410018572837554761031549701991495849486831634549561571007145452732435155284241937172302882545549432735319781553197109512062723107755071769996304604752701527167878545863897858581078075682000085919790957629481729582905206278883124539934919647234339363248457149334957623120890867336505034535357572995051698905736735782717205990085369085276472385265477402589007199600707262151293513615468405162328678254491145071135609112979657815716963875022750328103347501711414591967931043945166821377888479046300676243167543320646911475451360976967128580858261722909146452070139170274865622689337746534483351504755012722942642153515638875704648378049336520513580450448284981226657490002527797284752512125157980905431470788536329102843706132817448035794960528937769668954655621596886864014822765925762559293683925191203319549356671076916726518108035823781229265034452238799161327605871705558821113859820476727642646550201020789681212147144365896375408328741430218990674391745429999582076027354617845516022781446620786104904453724452006586191811368861390711529784767553729124124142089222745858611369839539710536354701934353523844213530291879406417906373465199774650523790504186875914021567628038918863926071567987417169098201063669777318616590716503459775745643318842056808163304811620870614466258123129397708412827966699934152025824552315935216382186058115321378351975769074635267048149382482807214332591825228059668422833315735952547907157515818858457552611296164011271173400442709949238429634519946967636398495408306590352430472986254706120951822611741486060091852629569906050984846509334367076292812620219134840433797471458836835979382936455222990418952901146092580510841114966263672494109404185339045519860857345871636544729284312282810027931755986643209126006696399923396405784213393470044707144610610915851047387899854257651002746427706907942455071697181660847235535784561698510767452294230071327711930312554586303772052495445292999680970035893977142120427162468310510189010208636954293281677686150992402939817901976356961287473922072591736531418489362546038294295684395894235836728392474452090932506589288461742790890131959187073183295091421068132729357844215858611206837108837951923599670049680726180672789012891124847392430835957362478819949384122502267199108060027700830595084388336361649193437241952192608640666866395005254897131622450161772202609792751791448101149134915769627710639653624291823928956060907926569551018634563296296835118276813915621786369420369740805006556089008666860902970370450306705076035846494824497577684588412735987704771582174586045098803433519539606988633315714498943873525879377112612710693687832041177473100426006166898444229409929638513280529138079115749386998648151756293171937803971850885733801078544151188903401133838593241849451966099152204241695641800156845641015235262105489193491006040607431641094905184002709873217010858532906460224603368716561653025162983881474949062042153335318871488301441080956507666674814114782111371138333053001598302701045121528040869939128767560876405059075402814331502863505179129358355386002996319171755515037115277995299607426133896691355345507047156549133959839813604504790787617096236830624442947044203130803942946703000762885434416667649511166695152746904062842782033474719320386979510694803681302715029710486336696351163323833973133540395367385192158984167042224632310097565545150900766772798757226002659703318478981480757469414323732123732404080246080179193323293658282329034382440499280237029487889033577312261681090227516090777990597122432388226640988287626580938048914750746770624307336451711924975536394868543618698478431971128075222602728873453301859485892239557626799154763899217987384046548390435098991137172251801228200970587912356071035885457807928539344409291210162580901888281004066023639293197220880395045923578281652251186357201295712940169199574014324138930737459274859924544128934466330643669229189676048849003325160489738215045449323866386715860458997358133533108122239399349091308462418362096901786338573091211119184364735685700904233226214440835953068729797023341830832195856253513574827841795302839141361277827311181127970307069637447318727027114379100981561923877313158265147791668026245667168395255305074958494083147348304086123883534386482931300919072784595535858634536698783642065548572906466627508450295697728087522603047887208645510225262797839755425653658943301310885146010704593322245232269049991206869769050150887160308954949306885156309873127201247677937802523935724324431545877750783936181959224166978609652014742189738598774953670126783383249530531399097398944819630395273152569398392202100522746520907341328570646493073833126296194656407010117073894300450850659644364234821176008733422590713703645494176482362742499863133691011882508466118728675256931742638299746624029775079545942495768730753708717578056990882607487532010272297592066392617845963060677286626034081649484527438548021052666459708027777168468595512757132492646475166760085951894784575753769575338828551142462229761646596075600659183597828959836923778877436909133145020786106025380269430774658701127148904210728015213240380561497457272972916889421800536634461828947865207258826052045508588146902672451265682317359880873080823751790271378395999155815118856506487917447234603488067766747686171770172906776244449788114110733789909343646461390053855661022146077365151466385069617511134684947035951256092018943699562669010464454234288001138312854395157861910279805818443543830182907350684405470513686897090764696838996382453832857850797190455014602184636658122980805978641500367668068303089007102512659876850661301673620168639830686568920507749004894417125132285446826209650312762716840214425486988943022463575924223251922647729996121579564596463567928054370789758554320924300422025145031481608230480426856475347909208139189864393626773299168908536014437266329564498526482159760491052582774224793866509490437442498977662847939937138330583772654321178897721146169604868069794314726022026396596742583468991325249283776283726258140382031538719671917453214016173304626243899858236387363102599990646789791120061449104733630266395068325692868175693378354947028388319398274616127727553520896749272167851036135800713895860254718777739647839426480233187038594107894293146085808613999408456118182277817761608328317081798603464037481491134114807313649542177503884387681592335286279086583923766524172924016453843855250838016666694795348350222187174968395226997634355276718358329817289092571917828482165272030993356037158903967153373251225526999145400905110278960360765162101263309986685454223079021220993046721683021784104190243518095207432338693094465899718334375356627771582052426482513833616245431646896965809960282740466794352183476213770880553432413800849493922340045604704281082352112853780459769569739176008534298451421995453579541230317729502975417944534791931756842024938778707082440943452696052188585578434211675415123621563140698203213467873962591953788944594914377616846416286155112588889233902897813883873053618091649554055188797621666875049844389135121899737719081543229595043903880790789465075950802376963494300466585628372892857710232251192090042629451900728622455539780845545123785105095684803124813193503946852190871842506629754378362557167458858759147631100031665508619558497778559301407420395651448527305970212616534987385681921064390833757951151112877711763668544931049367250282559231739218381769408155181331449664698325167249556877381987976766541171021799473385827439442061033272428113562417514511907578084843198165486741633754427257313194469020325150984650695368714634450884416148430262204760021980441521390778722022856083637645787795994592294059801535919269599037474103528540459087140356290993636778992904880102523090640284143476341891591736508886159802269947119922550527350218488073222564662766070766641147186319008608352639654621515840932056296861981336366860424181609460207054310955579484954300248256522750760475966115483902867060304121645953368240875117280303208056913472020469753914643276908502642072473369213144303983019402683505717187532530343607608059088371876732862784143360839631027113503946274641176415300162948087095453802794686623300267558262205613049945614623730497126163110610017014947225136762003975876915747182526161803500802773315527524881889949922381420186683068569682025246481857070644877206261714233343895151424272850228079792041352880382541498259650813366461861396624677639856092620705642131703788731864145347003831757357802472320371907710368444598066928148119010122528641022763117909186146130934753923389851154014044528946046201563038931903606657878886609298678145094238728177919927877975703850057191001910196846715102032634484504095309581107588050487990076906053501423842378889073074202311553713076346267048232464961312951229702910048596643727444966748790553442136070635453202179839351184773776837661787758053389888974650474689116525622755124544134547511262898357645954402456711558456439599163574781973564228491508845516754092812095568323866256460188767243557114488802792881592911478001406051810071052565750433079845530987980031617216887812734196334114988573343920361372517813244475084072904844570103367600068501272530668985664004843529713350663802830491268944140029750007936482669060956183798338889433263574564773345308411380330141632169944040181932302767266056077856946705818851715203793579920425473311437380051618680278113923497607280671141075083074745485726613861335725019574176832374971343671180156320370357181403022151088032772786025781467708022450091098916817745721043697107388406565720717386892661503002556264773851125334163617392019633659339256388945588805927600993607416815391157987404854343494696413711802682670190849077453816115717654541023074062839961885545123445726901239622483882332292416846579867487637766081352981039818307282780431952034070621325764650409480817805115080759765902798720820352439893964220856726823108111268764585758772552068899916668944612270052154246133525371643222659808348897478582168808988992872799830692901307548855792212002047551660150636344941079009553548198674516292264236836835186677403993565045096597615930216898361625653978117628400652837901777313554232675850581818392475314554048228896497863836264188655722042778821344780625242430333133858055250377910382247852603837670742461399939038934125943887944425929013836739120837993224060042348416660286322519937341704509418705650365204248639305476743423011925183439954639294839946814671813982706552015095464942966250273791492950187549203298052169679881413684798172696947407172051487036505313111866300263978239322316014085792193907853548206894979053364014014065236725507323043789809259896295244452790935895594971464108339078219413437079303980676000547113050875810735255881507077013279142118428771781110371409999773176454192200182894823888038628163400703626442995678550163680117956759592384616924332745341617203055702661166033595786845157607367500124134551216475072300236683120165158191071107602748651572042774252231588917001846913989751995922257477141691655389654558072059008428020247078323421927998826192917142695783827300887222436961427179320555374854928248666276479272849778562611852265643056864298736511351305374887736649923426550716443048082391716931274875943248415309185778369580751235807070088789742031718992832657735739516748643850852758587164890766699271728243426760657215195601824802659671401624232330491259025316223215567698172593317075250837453131491338106046485054862191033376291892035204561158149845373052087790789251946439196612410036959368543981891216727039633861874388727481952461266819398842843224765686042585806298049467599307580649207422609588068060788091468990855448774146260680044138572977129047901114400950856125876501950593834587509950255071464670285448900168950806575142884399124039477045739368602131017658544104224252628616803492815244978649289199595886212323819510361336558702883847150382171070666841954785294388486267413531994627608747402226130913926087390778084143062396804556431384433510893567883879411893259667135485950429716731843112932135173344507434957743383557235687562722522737815066017900103049383686457143947503135212499486739488231418515043822118631386899549600008965591080252352299283936994703333399878482173667278212367077479068202547525041355987567454155933622832256491303199261729552437938027756484101101721200393970753183540595136963819033005446109049054154225628586391857568533307426165671773406775357121392134376080736099476228339521346867510791873871468978991104527747456279497897602893050061622456205292569257386274591099341642088618259682595974703062025288996313480000471580725934517207527323218397465542262720926787660542472539416304896023283103332413642379103275767241919351644609346376691083438904191959498144634357550291344797356184768827084368127366824332480977286724622957266021847034842741384794444392470117905134633242124134551428679193340596098525049022464924463757717199347326220195718416411900763664077985967413741014916763369825168832324189773515713496348624795625022691177878157054374733373001902652160766617816660887824375253598641183264995574678879207728503924664565171160659519594355444830911901233820417389179609072640466896104224531363429681751929803031993170215683336444611426178872068913482344312893742329557945830291096393228170318384291736617246694480023728601515650561362368612328785548050462788272057293305657526867973364385851106920546772629654485772713570840453802233620412815348654767136879273729578083526604305813136688180154730908475531364403985256547838924575344432046101960827050272462958651911916315986139719367633428126421811912281798221052833048054058774222591226306537561109978540516257604938982357698764128905824911053504934300014489169746484607498638538105360853235723517841183285194832802958120373332440656342642179704876408509586813859318125524536766387917576987796650268831739843140585431330649326453551551468684386180101088443561317183351098500521908161192952289546102084921479395940729169480189513923023711658447067967860608312932024115946063330062611162684766062105920481276981256861125859377816689895749990480919280586111050120638639670469547260157017765719628190236977032208487661676943281665366000404072810010828295486177942910598972217214189747695088748962903937463617564098789402790732921990991299714741753313139878630052528930723196295683479168694341909859311961311062734309564348351225447696615116604857398272736691101915291665572315292332740326257341341752863317277622166488719004960479948038832983177151245612635540656722887060042299032468629816359831071180150378623919541419321649450226475540337063313081092554906928570309178740526227212382627097888543331481027701557999335250845560458563433385632350677229759345158489121537808008923225247576882742768264444226653164776044677140357537534921346153817100783491512152448105975928529507635017625565663637482523751409843375675366247836612329025460289531909063165942880646472484125910492790444342513126728560976434546047800726261233839552904086619439534348646423777860812916852360068686335613900998691545941677203215497955396525774390366076572225424595451213723956216385587046887510359083571315591470371537461051213610414718290154967629456794320339806700035398923394190854725892795443885383491477074830024431728818533524647584537101557695782288948597137767782479418801890428401731817335055431613762196037638736788062714906686355579584023266967759526197766386790501063474500536676438622428109110257113877770665803444791698757865439417252271892056493883436785567863139596599319513220944755332073069859084365785885748902780225485922735071785521389316851700146698856581922909492297487489487576679866631242539045559559395765857841424578102511915999871519613938335517668870035628064186589504497556665011953601840515106286170166688270741405756441997881318603705890316163929482197651370666181961955279868938762045732581174894954694216281736324616565850463427327992933729916890290017914504177125799727604683087489242887562951132096610845155591402815501877014450580406310047082733561110122383497484041738083042764104707695502437154293542116488746999370265477111451391243066764996223623297094156878055761893280521249327762845174103571508672426346959370355792211155767108614100919370155355459011376594689376983148699040212918900896787968971401380534061766421732479874707502236269016808307039060955416719942017895775278556041213300556226037476613505233934998969064758044988236480853454402140195742341243397691498097715919284636176655719216282790903624826141035516929344509793148772435296776963473366085297414484998509989662392519027646063125920447239744334983501184023085903984375850214164155128375604343402638237036084592897876533974190842963266461736461045618155366733183847733124466111946826430919057242391463096586003818766957052508284593455346481105785046671051902269360767279920772211824274561443194311271679924064940402355880497467622583738913160082138957366384937235848854766712129417926112700697073703638116536739868864365971359019125364197771189907455749362610603666007584061671772244598088554809587934107215586213840917741861304751227470897371215607504324747887092617302203857591424311532071983841149636923886873129666325334174805268129814570354328622287613262114574352004228356825303542520718089358308587456983663932537024561056228664786149887957748938044183458670914729469187254179592313398910393070735553327281113250440827412183963661051927291166019883683423392551689970703457657584866409350357065882814326913754026997641224474225288072526511324800500587069466700737029251928200091958807471780641929181467680120803377130252468706701983422840850588472365538309172989365455292905034669596717255939900864936945652722843302866739813116124044814262380560579974003445126468540254666574775425035571629844058341279462650549996558283170181854548582914086326249510134659717867943936970815571039391891665590805803996369350898026472535711225794586263754319360849664674571660720857126098058225247763339906023288869672333505788347804481277240843327219445878095095409513786127789907332354730335358011908654826701965803797707416566601551998116771665101057951330126518798034908038988724648391075691833551740234575363990990888475676068234274335029506171915895049101836987987912460000976256615134051339753832208828982276844851501288274527268552936756528684932457840756067779146920971454306411900017737817696480044161810349749864311983463289386754940924594619567950140518575845813681897268580552749723056301596230259025053455238975817373231199149730120094628231267366724200188672091289515842481376928434042289185873219410402322167126875398161134202995313057796042497051824031420846381881911617409468680011771697674538577536522616085658938489179464717087537839577593460742526217034995496709449928953064908750079428811043604535898029181249470143469865601956604531506679357752050396386770367237385610081800237773769702477083152283110412745866974788644403771003055639132529728595225637925770228477356963818893889257589421112533484982416258008972485991673806331927537793693468893891961985935531252895160334849066396747920824585767757032994688215466672747991314200230109493110447929195799687668239775255367462263793111486301052496617928023070523900427952604425584057587889401816276023188233273092368756059471797884885605735847659670465321168748150742520888057725428567502610575813490451224921396362657542265645963939419296542389365937447780820707615791323179490261924846572099617744059763909783898321714878354698680080236230359937859677573486498175455903467820255250857937292876574941956455892980372999688274573673685367612169374243633777083596387933482838644025712111296947741624809656513535290282001107665183369109426545234418918907217465722608261058637063824863149383355926326598526594559079135375988034116884214112685047495079052676319141366607986246123937046288416064476459064830054170266567862781812077595456673639081742780817747129058252448320484893629932756229308592874478635694711729498473514633883119199259582177780582413914815040297967353822677398264294298573331410708727346729190144932800672221286509178075840863856487212850075073701652578513706515404386849510241714201767580973036427033187387658024118173729445089011395627184398107764243331688866914623045794657384073932689805330103100419844680047985416567608701702903673027806626767030212372177368652581891217014342916022551538740212875938929972580054218662377194337364254043116256205598211573702219259995386506481482267640858134734952152072820757316734776719653964312331438480418437572655785003991406155103682477112852560964861436816506927678989731744533180363473585931913940678558493482271925017786391379461679320620844217528513731624564189263207687211545180209471708041097383990923951798653582796013065524703414678525062919085893628077126140329061292381523853636567409360597090243917407970693345238353947263037849578870292748627072380397373090335728736245570931603163282772520779871218857627740942222709498357690016455409541965564149544387319404972010922733021030257262318046530714438992116538207229739027896050637961942750832814387368068067243517093963863999560495547684480524860699095358657987154813336784422086398388918400787276359050311805176809827913562366319432561667411523200349017322640025050678393326037209833681809363565961749162483853715264815203934471891297983468256656468311378233846335327722418383238958273871990852627389423982199915650083884277908364908662925111958458425826893247319330987476805753908571821848493022604326188102553684631885091599605017204334915883970123693933299979542139176432876629708110478619210858526879822022598509908422517306954870870376735807800299638921368329530354234101612710520768050133827888322270404349287724081617555426676097630052620998725906053015388242486259457503310127578836964660841281224461185912155664447289067733674453782199933457117744033638317218047837384534386433505294345313910727697594402111285172041880365236717514505064394933431624508399643203878143369102071255235506136720188695844374956388641952123347532491595131311587405359345390446119204819563884687397907589962975896808016751128831444565145058939282930907290074414861854492772405231812118859151001578242450952329839978731297796528213235181770457147265138731476377182037070322787296096299180032488953742868123952515906162235109667768839085038769674040290266042416379169038428419527735199168629038089526035227851443948271874073267083560798526954071386527917626455253165401979776863857394566806858031741044285574121232637620264604218234325346065649330949788185960961378678058967620171471699044633320212238434083159583438578051454650379312886445820425438126407535657114578934331996498317710929118500150948723953411144050910268262384545714315753400523667562509847081987876780083253448477109264127186157714637183614353231891842883204806768645006995108092641391497745101590271062881350535764791367897388255439323878122046204208880741326330747995466365017882790529391503293766733205505447803504520010854790764388862548322489325969104756957847735489279085008991060011779913731950437725361098444838842813510324499205049016702585236317619306698159832504525281146454980293898279207319067101584728714025197252168125674507195963370071514811114389820205638196102381001276010364331590291686609151110243653601617627112329904311913795442315761475436645515032948413110666485177984955609341543361670813339927935336540014608104471228721090318524827902067475695442077845748920042865454190055425390670172498829820894819584394609636041236399198692103196884798543533234637565628866861352569002332500242731960322282490781841942279705693932240193885645066250516887664779235855880306131910096296562605769821929923795263317003726545184638871261683227143372999555062157244969202433495416022344366353065664655091776376587409933207132106270351589167532419590093122576338626698377292868953340315486973080999806033817655093357898864439664787826284789285867873830157077958974610385344298555832140776169807853464761385415848319945647778712318572130021234501145045767411813924054201616968175052601476182171367371790306521741061200560914387158807328576647310707021263275097960629728134152198924280397384591397295956392731371508841980378570258829168183633024930087063290723917125088553289865254197735275337647132748135335705016734165078069196273851209579775540939460667398672601475407534102473984060797424181798008368639924900580791760222926271312990179201260092701388063310170433034287163704043759006467183528381469401213206420624456856083549618203766084082414488905110157903075494788555785246442330750746529091019942710167303665728654393813663912064918653078499861322909695914196965662170349057920932256467648396212336276027849695248992360454339310931790956138147503138835059403216682322850230583894141369959236678686170024558221682207046177310064730136773447777163779345713082754151469805361626626522742636010801070399993861305538156286225464195650759046659439948831753214899445386616267644424167373989491002472630547909128907708413929762887620228737594311550085960136950439860578762846854364275362130402015533463413581981545278043289253386230254786130858920540069935556172909217062646198230696229297109780201010368671628325715451255076385880917811622497998794947096666429919796831577374144585719715163693793856348617842510319654290866821990914140187369804721221609849906684978755680359910439468356513876554811297456684762286326615690272264934480464132204240227541355882792038893630931467228955149744848092477002818678647507310259575112487512294320442989741294397867585189901754656011488820260050095624216761793196051677055205718550699158986487895379722707699605712612184428235914718439475131583941494034626212774786112334924618777930209568646384712195840303991437258979750000728736327856813420504600003566284423595077568282499992476941428948088629818700232930891994240493514207003795455646919724457970183339988551593452098794071390707040725035805356677494671373400789980190484799886062801214718707479009125171263420554339628653633576509255789551654545174040554667883654355661378456847865937710551007770390720428302170713902501901228370501302326308864208737480910600642450488190298092790759374170070814022519870730041305936092579689299232790315149859103541785478533050626932225428271829689702244128681768585254291774201770953900118861040456831245819300163768831194407015196529199896564316541424922722865541889273348521810852382879905691777190170470019085470083657928178060145635451576284922093138666641944738351426702695322139080076395491690380481954978480862978914658876674663411249632724754346215869668270285399146965302343261084464422550036617365052849536218377410692795917472580285837663580100711452782973638290601072140563145940312519848286745929516316008869701297173339025406064994262944048610878364040692065411131848895836317010061984406731455069255829714014524894861912347449628471054439400592537884290711201288422604252233974645172703274926510454155138880575969218108705233191058144402571893620886146594008636741176744258963518376694980944765647204713370692570755892450477776397332656117149350396842949418593564100133326700609334248438717414655920592933422414289711876271761047110511187930353115340814196932917833234810186723778275459791880755429063530012743567150848712971385973703127253250887917181491796227538403458065230633662227026874316587082952730020603068309658347863397310703154464516156342440316466932584735595382980465954449812527452428601197539416357225932429630808732059712039187058395016173989551368800114901096320909377866352312613883288922838896460378129070743117428051257805494159206828283361143988160658185255312315969204934781206397348460308368456938266093608542165214163629642998912108962217990835301553372233598744620584502413005517805902833592296066914126035559893623747242352155791370631282129593963584846425386317589083358318599843489743428166372507634068544988058817512575267140361682605330118062326828184296223788895651574605062393372828996664662831076671757106090227987881786932066469149189561944027950274736866624398764141209573394726120314786132022446176460318917995922937845166434346634836025737096658096401702262609477348178397355929876701167507257054734799498442335651680733690803490872136424791512380408480182845771706411763052389999916101152637461975979264648515264863309991676236196978333461323890724487280118406336741439122286552850709834544293736271349635800120171254624150815191753476843201169142818551623773300573246524128789048935176372308503375027198506139768031764762775875824686149958595689473728864044660676738424856273201834554579013466310228937974496131146610147713333106980639458461077878355118094168717078816421354276206959429196394162374897033267085137176990627184898268177459908397858367084603788945819408891120702331424694320209294989885265734305462264984885432902178350021527043988072791844797582441431262205783221204507750045221524204095908341611600262523338620449461368845104859561032487307778945698613407939899844154294481169496493240443856456720013136968629896451418453764233682276131107883084911752910794302869190225260004952717188896148935288874519832534944226109885442934877663362547816081066223696257797821081861628886633581611009202635337933182040327021578320578362114513783904079278605262487618653325461144486192166118906940478714471743895447456664452330245041754988168407037339470213393739861564081471865523424039926200407797797305284465317675636659534216605972000659749630668831742251596995584024065012705509924882461829444600477514927785315370461127206543416114454953593052891175045256618445892745870205501430634145081415996587365734696956875212800442862764952908025820703974121758184300909105284284877434563085701520263888648037853879177700703220213987025492570104828191228349686403109339520253385164303047287486581706568405629719526560712502993641613429823813057668282274717937813258940304311812226640572212932295121938136573576303758990192596654762497250725268863161715882672368102508100576636142576862090338422632287598067655520058753378972863640252096790887430739970333835091152010188339365059707458098825963903402426434380692212978300024569740716921660315564746986237506302290974840442206116860927078164313148328657517669100872131766980609609187449021448547360382879228573375373727735823002604337882915350393986594456799568426358462503844396304606435165796498617317619132361512348746839372972308621683127407588321118310169242226110863539643624572026502001376982795381119779432852492569303956014498031725359092021709997903663120314909698384850521667033060686114300827365305401285546679233558748291066365265227206309067863640138949512991568628195468708288052051652752363016682785495961069997460172227379745032807136928831490635319201121518748518501768851824358718295403967151365804081580840474035927281064091890907151172359449441896350768986360075106783131863557022456221147501161522938851662514272522237964054092798248051841232726721964791509990008835704237263752710746761373120774855125054005268760553609684284733206440139255011226973999815008556426186762239552120068708828873205742930209456025974180627961007123922707634001871854428771494713254165140124279765652809919055451818236451611019309835565948878622651652394825778248592310026828401181959475144133572940908473576919069916203354159357676107035364163914605995207861981846597554529646715814182525533236166148359132974454608472181861104751938098055860924684955679711523342610636997711326067666434432039217880539185467894295772385870224503428994019124293001726392096615902962236147060618924338133712646845906587428770787060658457953349936051402360075456790469331558559106566068604310418915690392629284694714879929630255574304937385435848891957655466656078697822765207823129291208978360875054174046712422278278961413189757023296748486513070584774774381133400230952834115267754717999207665660314551281952191644443992828642807433074990390707656491561244622044968450454725957452832826700206934422710011454921608492507469851039361057537274531307438158959423138825488994755023522960536866353176520178328945594290429336721788443142063114252024367625790113960355352611588802686034877765348066440605228264120177704755890664795648237812477840815521406481987603178738172333089553382012500436493740156900185526693506031828212596529024825807989253307321623088423617210353983733475610268572653836386733443166649750050995270806855854989200938579337676275278398997120689728221900548578209699603785575968575202657672443992530116807764786124174970526003824005881662000547973105308917486775034156296880457588393356767970103762219981189599455176212528627472100740201478511171413972619676312049456232818056704854866314011213683890895642408899752705665919577396448538754003381273086450921472345272822433065739336274732199031038828274964172198414371089442750381988119674419603134087722260932445956826447711201012431414348626254580192816290351111409721072411968547702563072054420441439021370411579123073969113687898736182279272958807877623937355249442172305459073367870620297615939154647916214699539634617065577042725377098305590123783265684614852249342253416633501464411056653282746554550980215189429101770457721831068949406873684772529811704471506654555106361024610032684291291301507123395833886528886439341455524093563721585218231152930819419145891526952564311808086168504007928142056335733105545669959873537082604085307909358897406815298527901669851751816168840662981697207515289972971174763341649216315268384559052473499580511709118850267206847058767050446074217033793957214127901323712223051610598452594113754013132578707917127199498022232450410843563117565243664763037621178211147253673852344456020924193009697746836064296353130784118771992955214520627648180096763237543635879374001147873431911943024879753274185397858185321468263110519538943841118900458802227258539391309054547233795631467092452158930105536836194844294761032696996006343572503177545536846154865250368170039881132724160722656412240948769467775215048958627745932430275310337158317524264932046439611433030579775175645598605794663186352944170999370826767677328279467140754290821737729930557296401442750480263888676022290640770680293008927475258834201895427309007678956744965780619674644881832719747262668319037518929327083123823044882950371289567149068866443304599600318813121444878598361387889335403828975637168636353459088631971599145213367449540106564358512617992637748464537502069288693223406201637465783591747619288684274462145891618605330990149187385987946582893180724774724761262876127823629776214976159058522334733783737569095471876829010466104110963256224600906953277442055930928911026837517763561292827912636937142300766274988282589534434290645930944079442258432901691056331347313372978712821542530122172714381669859961840444291527794440380314558011779328427088383232455634604467612786338543939877318004817158846552914077528739742422979828878679583286532790003363017204730005715109186998118300617365396119506353723870918737831347061271164059025360167564203629108010354973474697104471977718498047167493913758333958944385992786241528268950629476435392297722973801420612088748915726409069442720853666499016027490559632288729888489142293238166249073555411285165279925243070073885670658841611978339589583073865700951041379330323707446264488205912428737584133726218912002205517070980281051703884640835081893390156632243410867076720185362777618721977349963413042372977436682122785596852260675464688897372260209821534692421746319390580806810946665304484817117793274374967482523266207172602113539515120534602229609134011175811102479380796433003639738900327596950788623287914198248479452098578489348490513505880681075091865824943770209413695663506551652899459166928893198146943241141743105660830789662509179240995849203453580135394014743984833169945336626619158512130352056666719929812644116535139375657102715291038925633123876042862696668102245201817092656915592600164258665564623728040626917706405820199332126951516666140361289147583045236244734325225223683483888523089026118864633492967327956460212695016915820536967074688616521432196988613311515946651214303043127216199152251011614506289960327887613774535510398275923294695077885342253240491623072106985267362666308420384294012202179433586711136809853900716033667799758931881455306375668652609651626136092832804409396123402004364953736574439197173889133193180163963571397603612852267449061855331489609434660238089926821983423772685961972661934767985105540771418544577671565078286451544178153794252555552525890340723775882972342881460145917765503896846282633045557681902504888672343082485835220718232038075774917111310337221135894743928350744833647831834844336425996807979357732426792930973412723956180683057005056379018685722987159309024899874715622147731370474991974271984954779002597911806890680893106280303481783616220073498395104185432803755101014651688414564331258789602978169722433825184812321250633383693400974629827299445690491730374741642786092729940557458473580945286723823186918549074734397193626770275432594550985497714498477066525202724189433833354360246945508230754880211118434117849394004792161212395048059019795591883648266073699042593750156711309065730728045838046848086940027541537377040979077191739863794537781039940520453814739067143132947017923277013075552890120303694275350354628911482115564740456595260549000232869799622255292089301845571245108597421726760143243100786693153516281300539870515909364647738191361835885288226688843453299137141455334652282555654993383466677040247117776487305097765904824557351130463743243863395415067969053384681167456582326235961332465102144278581027096752286770799383771741397032292356898976594342009757838292792250868536241085687753457201780865706487764817547724472519391107074136863623217260014885299029718630061520934171827056049919797333559001422780626990604853138125241712758602490966862423286088488524446246072434380059497026681477327230872566158935655659989026355073106645518433828208051684899077918071920022884631507968392084262043261365501645324867760283928706821952317063729319678954050289867765436111953157178277436273024321365923724371503109970588098414033234799013047750315933240771896777894927459835571833543629011596389178415261459039629165948547186206587145228183639615058331679074758174457500257412210979563365072573870962255601150498462431418998326120993018741759376386850052320579669439898673851867084019466607497074634231382943820678359580010024894462576093791382599798484653276930388877431376118517769730713212930922538575996987075880476989925222310376025630633019945623846098494858571845265572575215780493687297687825602936316510846262604070518515593518038010938886231738431969022795430957159645207680390387477224720354294780846675336951502453088440120611856528513365854015988667400287753600405395113935560979808197857838550720224684153731382817950067828863718516875827219055537566790727929235948448741926501045996589143507848790310758443407246790158123175708207974352696129815412496410994385915698670737017913538388117764812677275974968291719150165304515887753530527013479612478057381018682290517539020620830660423994790433497827293237832303361303014025741697291484795920205581477764020066282707803419466778890133988009960578602322771948817187182570727914126281131487618461097240791200766228854289735839392182253651782640442875826837375999680682489265205261392132934633562096174696240300005530943242719807836972684726236997729815266356318206282880883108633456014722832119151857101070013504598282156084926263774082080361767030706033235945866695675707325554764684880287470363520062911896609461491505357797996987614722417456782812416732951535651739172741809375431721632296551837023287560668263563625844197549714272173558543420448351786139485488381259077695197070238242221379011410540173127434616170847173421511662710224436564752631370721476748386109011495758907293622611310576454716158780527774847423619894948599069232256706150202836023857384678822708893106259567627855069715843192442588742162356213439635167365182409639817547785919937107634902048594360003916676385140995868305221571155825203647063802434584114991385023112077726617621304949288120124512451236723034479841643976848123891410642721328013299238183018075206414555338775423465818912813803746147214821579487670972736662059376482066191837845115475008390287126067625442185930078143300689294314638412553099468105651667733159564248197459510323323767180097492336682604156898706596162553626125939441046449750938393942792277949149779109548764542634196808473680857441798812297194439642857915617884851632964425759163248071297716464153080196431566646674653004538122221812596321572694916314308978554042113220726921832875057672427946493938629126277968669885058778079406805750161972717861493163165402273980358108201028326029701197836812330456868586490904354412023031925512380663970998527925560551796128239350641667943540342764395500645220428804844291035072148259002772241374815602246729305529082283001231979484230814926688686726843618296465324132068848852246139962340489679038766114766259927083172362938637303347465799641384489064576260636691053461215419352805163099307984315703665952082131879467266139105702778347656044486984992357049012435753445855469973716993352617220901558595420514369218384497016506617557710304244281249493025684422594985790322882684412774359078170721278421396663667152355118871696615553144977717643055168417540979091487914918940576254485784916572489046783575699065026484553757835607897676931427596875338299594089376205297595837348055934455011757994859914571226012099769504539061034604909826638139465624095939633795860871531135719903324568672341331592609713896683886387629987889051038174765425687328967974981218028841966789691893124034065694533983472252489021032909744217873347124291413235108994542601039358016600069359854372114614520913799755991566959760392465627735247521061818976668766186282292983857067739795356436101596129633468420010134347397203851435984007646707715237128849373450225502700932927553115863433939063532100845756292440086012307073264622573021618567494593686960678021861727695588492657376138999620155157811105734670170849737659510210019251323287469970285282080216904679200582454028428187759396122934992192183882340433887565493737436138663008058382433299082222850921308723027720064083720024026781670632625443229026559532982470896392743314471029648164583095618001612042991937427711770116089199543205079491589684481388912168652571467266252736073347372832346927443282743246476827524486845964591114856660321392641132166907086964651506185324217949865420937475882257660308439790138481729472187517021591862498551907215825606056105450961279719956383822638405149887274688644191630709741901192289776756900668206534651474613368165521374435479656936719796305761067024790469131835336545981409512465592892712623456667346775311966242107845355662646501798073185596508578013577145981273552869941135159152406405011647838669983479301608500626455430178135802464998655853243296625721509602330553106672477461311742430183412555658682748363931537548933950983836290794107872251350421940250907474443775402105086597394429709058649454758432600797584475239539369788427568857733277881911222722300073319654016631631802402952070400073234037933877417818152636812541103496250336169335857903090075897760403110352754869507217922193038613303477861445669275096950007920377812158874794976021606572203003992729292332905687200274882863035680900794721516962464494267893158905889629324822392318310547676423652318676142037664816891080891049941432863108850460983413266020394287293282653343779569897637067458444903400290890558849366167216099640854954479296851777391142065902317333325492324787959908372188854242984759237720062011068477549090757184319073903801242428701122903114078596121417578672606655136225841965246381217940220549761322607696774219363719921256748998302827892275028490892012333449196689484532243381319168955978295606481490066434059118586561766802591572270360657303640707063899650093835806583577965545453367182380098606509049727630624117173994543641655862628587256424721538057923138807723410094589293324696547455207726503628748371628457871802600587216400412829092695888843188454822649846593566036840634506776292907719901359354198843472873760711981565867144909133145207567721625920775864375761256613719781088445781369800343951472249235626646846399423175999962494402434492602716179853106924761504277333796712926857210837941921947272071560068861860415533450078347379960780149310297489773520294590695669561432828040507280436190828398336572716925224833643821502593040313291159847423241129767354848368114498196018795114413558646632468652954784188010205322944011299343974115094920647849420561020085340374142300802582002735413071175104091092562096564739911645823612892844377061581000322043678442119742419269220923587067928808221102227877597242234776663460172261653230543056064405417066320139226398209228788960671944106092988094393950716359498829787715218499853733924000541703522541069885551089150642421059308072523614695345796440956870407095724163598215550185374205434264451484722515352818688528666594784693930130841003780594409863235248754824585410311965489237765468933497697794865089474396537291283133285313480683139094878543597242886940707648344845693230474926770406119193023774290020368417810363882344857772406606302872321680363802692874277248357472294693997900350545522355761467853095781993838720946100677172773369583586249459803101550125547655107189981292768601932504741202747723091612505463903429974070973899537891055497931182514315953610336196713463591841528152700522056025489132848661627522096805890660042581749201316043547462119318399617584996060514520499730143049468374474149156801191785891072482208525221657971350244459468816947681814768641795072033621549076055034496601017934113118517797367514101848969339721359200532472991896706769457347301723600260516905817965343243197583125258194550213060682058262994659418575161724345592464392136551699599961203519463464889901286392369929634810510874787592459283866771014512849360576656161810258172703652936688184463799469802115435585084254240937989973756368792977145343719436401059342968898966041044531546278733321356770440955947411535817891056643861387842162378758094609963342236307021745050337585622145764309032025390553625699795374080268243163978965855812917373481184970864270438997862409313263892751623808171307581444133084401324716411987094988716821227924853567557079880844761092110025480316639985084935783522434345493252486459304508817629205109873923402190138661214420086848880733112297056000851627871550664035441037550439314616173529833691145919666759947746503202613547902881057527597948028340051951777679036776286821764757948794486771454136295987706133508346738606091373530196530360206394685793777232613665978081069440625484128293282233759920924760452826971256617301347482650976026862732477983380975374614102025950224448687440983738394067168342229866611194246514617294457647046474158382518703553322649467958666048563378207199239114011087728187734772925530333879472011072657526651802507709843526329521403511444806057857523071487712672736735374158362062003112895394061193754683169218723860777051831974211697931518888318786300506570752827312155037783090981016827567911411382827583210068174729114584652415462174040035691057634976570408561360916167518184478177392648496962131484429212588429494110979946788025693994737611478286879470649490758251080732568592780070776389819188218951702357165373271275764287090882375235527652045302122367135111401534677750454420124905305084249169672695897966684126616908965273330256209299439761787532782423781655051335658577460510233453234437746183150570345514001529121956181112154465630513515181023201987789409337870228116992415079891446451465323760445105327946282959510557370505318228925730990540893368808180157511796125509093400525468497269709713318507410480417272098125384927829639639319601246205102216723190414618429460221565857856174165334792943009515334298074289304811329183495730648029316750319094546868323052860954887352140109147312780707777383349496753577312888326181589470095953488823606746218796214663247119202005095488436374689061577260344100374353398659824766887049393687988358270429235309326909027556553993011976289739568908654460566941959646407822878151094857305547216743565937535130676896248494502654413617637817055501981273560097386987792540359841692244726762043338651360760160938206347509915672509741692889501830693654972435848900045443805883006347225415221090963394512538256001507860989068899400934608603727154427182357010254114134448568216623463122930232038338952107048069295635468763723134852805535037558269898399934694186875177899516879272403033236962818470221419424600631339626795336407064857214246882457670640992097394250477418745743708749467182513303167532346830875506712041625401330251711834410800431477105681523989659481934872129759463468219014284877844536601823994379571108947166135455132797355050412474251514753751753143498190613961190425864665544428119619817551037591246523891685938476583891983460096607065306694815535783447459524417022234488991765077984819869463757528549182044588499889197871755009304418967833736945525840942836409918714949143023544439950195080146081249543944957642316227862727152830030731594117658942390712420886313187685066850808436669898123062130613862338963586301320755642944777990334267960621378112122727141337519152993023308571114885040013547727370571860276935107160324341692432008748705346966777640066217661606453453938054147460919037978015821946900983131506630880203731513996311517815977244025323967619093558000175395849417613100533027703452644748301736866818165403737535483715236581633276143368416075350713307210576441987210879998029256487820108211828443388405718585394902312638296499631865177708741473013875035895734813306366655693914280071069466012999781756191927783543130406100447569412759568509915420020234847361920387745972430222260725666509604550545273937523901235418895389408829722496235560985987411168940679424591596745099777621554353580693769207055469922812722647241083802518213220180238717570244323973447936388370461855690643070293734260500145225320325448957986145200998888532239940590554908245420564159542252355930803111299791069096259230420509024970119547257222625842918260062143660604152140105410819081252356507926765897529282908639235608437403705539189598808014224664114381217334737900178742820616618127427429413030834695915733490459707132265214356551139122422074134910104489977377125449652253334000945682420103543714009074434978724172417853319693687409588440421578976066405645484126428713687562157650966030770684070206676547720399063929394774606407756093621056348698365712675114123006926763858672173999577636995833944768701149446446790457542955974772138336860729678062174263448206596048987271846172119403334860966318981263169906062882057644272333869039363961853702800060529387202435243614188669849039023830355849914363425537520582893336015405005969652079695799352788548584072074332768218303523312410064362272329085531646669040430578000657409315184696437792959381888036698772764664984900931840533556028531815325712280059148202450013120278072808274551310056620446434972812303121972197585661233468107092636180438360131278726651457830513873435955570250998205531679068704852510615310435055078903266958355413749127775967999684538864344632049934082578585151699512373291454549181930624015196813896819376852373862406189276517751785601686027834169635370378653027038902671862474886601602984164983659323745995249519412122487025590993644859222015405360387613391896524329607136192150307612162472108540066100747996006539510764337447457922824437632864694639851264234100313771470346899119885620269963113877399576483969028723686748453636504596610836751635487438269465352265140225843784511755079895049131205892189970092995440900771345569590973138296891026358139645132420511242887387975831458678146354584903769068033609387458233896549258742879995073747074620363264553305563987247129328997974744552544612243107798598179477582395840730577989018034526117660866339171019196930700628056876018277931215462099287323523061334976924963989133962138702097166168839515426227632957013067437596808838480550765696405141356102904290757380946390429642379929889727975084983651937064067895776160332483810221330477114447357662132039587925841026442617235076886501934721162167180627561485683918680938192458030313345214108636525462534535916465391928455398455041973339774643759780795326161403952194778019108199722298154671044600594214597799913379454943547845750778507412545183165478861791182701009156356551285355076260703492045957313904962034066710699253023589207157843864998378348158281418142737868096432300219463665233106659248300817516366998696393331647287310128307285780593614724787493912639473556254470109395069277390638232520482112935855513867340953735464356552209657478318107385547988954205687158282240913235324297018435232911234186661292495220210507809439402752336411692719632043709027278726620490421511759890939574048329660108244733968786556514669004189510079170692027795815664925253131551408295541065247601746954625965133048110380546596212980552249463680675239954122112772222133359741404719585116512826312899290695973660848811376281283481480893587616939712180291533849448595893124253642714402304682641681391474741101406903364841919956853998928485592963472012933364271136767591270003718354273689696565468401892179849772664954473013778955176056709007023743584901111273459610152189363538914422533172129330312365047037932407123192826572310577228159298545623353850396543747462835166345192824560529173144919088857267868661451596547854378989321170297135234513747265260054902967989889951211220529086187882045104245135876994381501348143350050700899244900954326058310402092200959147873714556463169122376379699219846359059200400477482957274278046519660400432677619794886205405688118872376521469728405062257010358341697465110479194095583031438686706118727142103049851861724570591232818938881936387277735828299256749474639304245290576374000610844194521416450252255366858175769062163123944703384229384711005239919469103366991231021193756104081348333033958605633084025159449162517357319752470373822936775769844267894651836220930670334869021628831654955124906073411133093910540464967462266487724517556348948745778773408805321705013648181854776894515460450178247239970263370035304890689988783142975462262260507755628429581861396139856971743328204293476912200937763774161814144729451625854058764903062028936253161556903113796548867967128084932284638849709036955521234195678717295573618049730542263268468747801207726322407205962011565508523439527813064798849587703083597918364633165449581491177597995487935700801210888740413606937946800209497785963869533843685533745504313719779484830654562649778869828014095946796096431984397067571207495158551013316475780536521697834168335763034844404734817845935102613994820677015855986561611792368375379514605474644998223501109559236130446711888784573341301310518902276931594833839097287965669952674097749239385636336979734432558014195694715115618796047830067309970575649448491206013447325221750896479992323611356965919304870418914635859160867496989587188546061929580921053542238102150834746810887866631942541795409974624911905179973927254017238185115735433558741270920991679490808700569216940506229557592093028692565386430067254912082407344314198831592391385906637401963121682659801393444114660377086633057234929648480965223831294677153959638824158896814802296441737879402035796821657237919356677059771197056469393549837066482421063505702738560350380704677716907195448948854117287856945241902410060444476270348828917935698006834951501081908060851899908254696880303130981480196446184302877078506971634869202754992052887661717887388804576010622184763087190120293462061029651021672315670055793473977212652131021160531611220465374194931664835087365964424460611597360929126257945321045336322659783309789077139090639399029951494816239213241824277771073720332816633284897735986658887429662724187186948544709837259587053350445654594175557521827739341589884356377422488065719531784401454452855945250153503540760807995291055952667991958603101921527959181193697204985702781712263889016415318256392249989697033310203124454367319555392229924877184599394709444801754038212154762157109989037871585629470703371507502323274294792560527114540149560422779795165595153736288048108242410125233311820078147410396815470521386829254117624008544205552568838021741999611338984048712872106228183839757958675239019998182520894465257401537801612983714612150694365055661720109491947383842697388832213737997218520411875771935465227615162642459033434617277495185769825363155657809864764558363101770487107799406197202579799379179012793848099812648209411375089174717003826519903666990893370685399415631285362888023776732136615497363769573267908250748958027183938865460040502803199500980776905935143564571938551890890082305258643917273783232868221230039529180538685976460637603040434237250938652834352525779068175652330163822693235040330614936751699902944078829014549085450387686483879365276556811672644857651983681823703663062423227925639489231365411234293739128604781717628511322225837195810322982604837659573798489546092306348302688524902542879902192347598547980577464982887022335195368244911323731834921303723746176508249436396177468161951010114160379766165445835897934479186343650287817003390452908723734298141598234331900196684235213615853016352609581864194941421878217065084787815482862400113866344280689739707160131100944843094502364642732090683385550413598952148436052628678847915515055720357511783500139615745290340539262839118644000048253911059350467556540597475139544042771915211012855824091113161641039350428510447870725942820124811682375153862782669704793772081048037258945302674909411860989854770462150635171856451804481164828849824263489837136349597970914349243726345458129478372335391093636828735095810842803340171848285349098295261615858437516270851107167169583279417613073995946427497126413109120865649550059268880052373386711739091316509064149942882765579843289580384932399303903545820797842619675059790373146522157705839190288421401284831121865658083746915545408187307140518412378670136143453926721654866468481019629348306400458535876923511831765955160500922593247122687596365040318792216563381892322987305122628484377008349677047347343315951223662668719902512014912146439372735201628507008026043885335624265525482945043955723431661234592985397970593038383582296044209358747520023041598209421748996063275914479300253568942104236680336549898414122621031195462982181068342455329963543170757335057776045112448209573818384648381480801830736991130854276840768524481857669037188674866000457244770882689790090712275744850709871509262028059414921971953985616146545550259035543146485054256105043370789233842563959997718920174287322018811428907007364990649109747848432070608701689404182822622820572100232491668099847876848528659392659371536673403629074783546161988749266945906943567559449842230770950537934312942460406150727790691073658776222528983955786941521783005521284065025383858604167451612024193220029434722730117594895659790448390212109581871859565780833958055069064025763884675315893330370610970145498395533058369972628060403311157059581756151850152809629964119895447619434228461029620077601555757085550706869116071271501123836594211790459026633541321738980819195957546233773116840419816869000158870975841555053320165584065676441222643947049091651409816958942445661532114423464563063048043194143053086365122918641421774555400834678211250390495544167248053898176002872570884232020634404372094395398242986794577099267115203103300803096326884170554905001014590168489082960310107743232979432023989019669845934225728482529318714505564923672698846636656125114398864295245071569131808874306510131730919738535328992934986184582244629508769808629116047126563473195276285469370082592542379911988049548745569791806712298857269441958705442817571584726311244735219232384110639211583621560969160497507060916516854963602633482828634333540580872295507782403234445762114434755730830928109243338961362161220308150680556439263392533286342888551954449825443784322970412505376483875877546979207998986708727182373310910508709322887617950200282156989251202943068309674731404850230885229328818445655967529783476037130744712046432534241015986264053127029143943454472495405779750038322352550608098016192591560187162817206740522603897523130122842421639263919140325823024964175997536415470074344240803421078769317862513252252976064217833859666642450068081567618377196777581790867948678608259672746255008856543187342234708131888856184516564172744648689919085119538998254402059115229447581807808587476220888077956446536418798702725221612687342859076853001548860445154182476339974715886264184395824783419144205766088451484301557048463481804396077418126626369007148023603476731045154871083535119074143889608408845069637033893933193828711584040955436206254267196340643859195506886211934748770924818864427451419285710615333829064726785233986693884764495854080555190032838192294691552185739193345602028968675242114044300705003831043225890551127436949215894174499312606095756821746730518013980931328612770829632861399193436422786304835012866333905024197581171864720842783659871011044232696330781216565428102157026597836879720116593596391067643931886449803445462822371837847376039341612979994032920852501561231194866525730997850359291457418175898110755890859598425381697009594572428196121658193559211192545867667146324461579875285685744427369414488041092301192723038839042707318432070110226806525464401486792466603374960305656750980758714580392884348438289345023878643154847312252474908513528520897501644781931745867821831388358914586175179286848065427963662758320623288076169714877956376682645697457545733873017571150796988162567526628771431626437410077188002247156757312388084291310163252410544218691117189458138088919908394631409881131382981340548548597900444150915293614730251815888070065490140472902202072655760958860706522965506323345423526242394907789891416426071182683797544518163027521838517344663289956140557980367192186914880171906347486998443932691546469894410743641159901599849354609392006388271009996118748244881690753068075895196096592848453592048205641850831627560479523409720769791946763063823802199009361264950016902430218276251251703602556298595277178472183346720594784484750663828196193741279471191268905120618551853843695436649421134013722316798024557989339081960810542523146255316078275193549295260896907602299728657795168060268156222146551592067394058605728409740078408837781037401283773867591232336146820581337620779881416867020963760263842978519931281831113516219134410814707828695858894770492394241293843794897577208527661494665035712726782171768365676806820251055184848878526761108283285768801409174167026323401479441550583813075445493810523925646430178996341967001136122168333057839390045791899501053984341725616510393575050007206182769832356688445538014391482289380879233923179241178374479466157174117686834303930740491675930760786343866064273406272177045716523777976837551899782228856309883821802037028942247273675785399382283082191853881957892851598042257775836330489679817284341539564432245919965052531591660289224574909432541901161697459906980050389237321874756101351488481147729131919157742951854729564105351480725462606948258305493979334214231285943877167594104327515635194749789559428987892601822961664628358993524459971997092641015197286056295357991849328470213857034260693269964935877106838746363093359372567159412494884820454741625417176822558255298361886815658737486120127039189637312109882519076392862785113990301763584505459875610503317440428318451902340068344653245152744998201941237111112757911361826234436371032865497959011868392292725581934115373355702694427602807630847924349679857604997003435739238357208847354515812916563211921294390640178892924950852722331673769716256043782033114062630003917053016535363843301647712244728180670364206726000316884175663927173713839688903461355578683345692482582090344659573399163108749074798302180220350267145597912812132841267443021445583868216934002967217412314023766378565405842300390502835988369866089881513023585761324583829685152316035778233321466162299791597278818140261044656459494133458888883338368325126013859802905129459783299385885569639653085054897063732599605937797802069852918405446274065984460706909484550579626379149714183265628717268671344282038344918154036249278465224382915339060788304376831890128070716555711218834301257837944594337952995980955822740282990187298664109598350970854375267866626635921094613858010198435272621246249435014611625706973708349788332960327319196794349433297605613747425472298605678033385977817603180734140762497669164178824389010833171846617667572568501891145034345561368873841931581706163098935795943847401654233820192747375901039052701316886048418275676419394503904490789463771462497046144365950373321517815201112301968589915893397156389839659137324025752914504510917124623558532240687912077854676381068379586672583607426916737787111400840562593035823527422280252732736051700378746716383443375615105334401194961309428571195466106560368359209883324894496304393824353358758075956873161480896048229943440643056811792900366358884194802141173612219814844102292775751002746766119843343091985763709473808877858622166528931968027053562919399000597133975769786674246099699521915823328215149730650008383880937907224009313165743142762894784862153173877236656572902799049981970681923604467931663753430532516240062801837967822560628614916523897318266529287520655915550966714425938156552660106700400435209495314098480269418372292174055463727074232949649349590333311673517367444495176507966096213240061179056234847594836221508121372236738060876383770157120959207883402852587050854766746410963568029873316991781982579197174019128754906853163431217924961032563624425622870030487452630753556696658281677712692017869345501297096973433761002695893362005445196605336557686092023505351243769844689005554133750107649240389489988225597098326441050075298543092612416386402464922616715519320324465688691607279364148552095308470279806117928153849570643246170738646476971927700698186211685415037633316988671930025912732133742511285856422386796397902432007995546403793896355016233951231273360748001353282426435497760621863233971797127415994642942144454081819432651003191374471154558535691527676669942436069995073272095380656772209683589670091168867024960013491188844087481153222893747637866410827832682543991939696223064794085601943308890068603423078813490772405221337834290693119763050439130375886757730587088591729164064136258971305187065351638633180093202067949426937836075134581600802034587272915749792385655474240262879764466509897036142607244734693755996350009658659725110530427303936686157054472595240188102662033738782225677571904085716341412584348327856334847002267668588206105605148946269267653237742053941891025396558370241761801525661021072134099471904108151874999815030114537864314128798607890831567338768935703062611291049977019858714231521110527584807052719139671951037233813387677632846977623868677934398429230992928447027578147923886273660081056562870282819965025047447944726505338144539647685011739939676406694843731220461639601931457191835625816479839415976120726788205213634778072427107670331581662403056741808455050540652900087664566063061774160780188240491773010066567538306331154133456259557053680553369608780030571925989908265384683642780259940715446273454078720462176701839038627882879122143549146203545404966215663347408843113838417341840945302796410270705475095078643261859728668557565056479990740710210184017727600426506260616753365392862497694712573399647824391756251446420665048252654347279394293061943099087066257323395313463154491833803456126043153711928666406284482645586704749478914834813130266018813502651927094539296011148963406699854620604627430279536637742444037308127163378983058306931965094896534134164165307250326618268800060384459478138089814145059182712950596908673070422435059308204325711790807075762947049175534365363339625184709972840303019533706921982974977567087981124474955370928693668926118492991861023048589867820382735483454367882084245120992104410716428377152782259556308618007849143242575360504533721498367889069343756036584387270493014525061613142259660126965124351971359487440977192009779773937393994949715549006455946963188816096679370661895382721792302938953519767340983944563257478948769268826491641783702662690644633620855675465326981437171241641570023238214483911862514456705989554387852411022028526682235432063280197662683957675295329558039623481522377355834222604963634216811952996306256764312594394767452122229168094411318028276663705019130258004710832845533367991902803112718537559791200781052238029632606479978054203924485489226243171176940257284668602512297874897017036686477043716041800448409770775359812259770100137666226263981954269964845626999242347361339076970098201301179209962728000852462025252579675273338192095308124122360847997042861299339407335014199481105494970996956240549937996785629277884728753078952975208657464724359928751391666441104611079174004364634671251389861304227986686751754802406097392089501527587053832118810700765374654998374930208562115957405997425169920228883702076197644598098162268558017793879794444101229538423826083379134639698112430457428207727371196338594205412583533974199239830461535702616697344095926851623253213276180287595987921667585995878329944966925637022090204515291792998575376337549669385522797757499767368665554228796385170090412067715920283067135671649959932239902572141776593854389666412780099117029219893971566539506506790306676155722075117053085000881286277933758214756986668612946001113875217108676778541574419684254385287135878473105864504247900739619412777093581142257050637698945501531251437589465827171943525545460888151503161243742461801412308468043464063845258772543964348087633633520788072561683451980632624759399935541535339094995735168447630310295626835907121835392501740067834698902367579959081582063089636040376864849515224704714893403803189103882162089065775344846867362341679255361522249450568571737525396381974435889976031848110745403942891219574473347973158842089338486850132790145488804562037951656790951872645188530643166567253928408048834110887558375743554298234843499137916109025452939677431345875386396131083278558554348122093932834288846728336639117176386707218251111635776568910718847700482128540588549163923228175468682135137624676852227715786216882910961357558042125969347270063104715474028111254469462272968243277657118650672721344847318626177718820297433588737857167776013372197922655343784391017841225321645263949633376064087423164176873027651990084350205246615912827821474281744050140339913845094872486300068459503024631443794872133734373971133898779310662725774958850688000184772124487017437917572266486480490038432266367391051393363887387597757340410341354483662235466062750167098376674816642729129551742215809403835868220604690917392249404726270958539617669866765629826829713272038202852880591649752482738167136585915355059285848898804670640802025707472103294564405204444709175092823642851890161665463552385795204902906633678454186549908371382700031156456008798506946544578885595923857033432310932663870507557496141197310691660111221788529789041727053697549359219350909870340961925750008287241128460670674190505331769033115189050356271349856614101585865072556545974825067121902000342016892576879841195507145122912318188029209080233591057373111616309974043171056872453420413993592257994579239321273429714869958451522098602843972479394997662697526950173617116910928049020632798299810037605796229965977990052589256048779713307341107516597395166071298427773702911733639383521106987797055843804425904487599035920206654181022961122604114808073174735741102903795338759340803088097764719363629730198383385424921176082540575947662712029383246020702732587729180448432895932920058651614766331273452462148265999080910144487809771762515333137180546745361259754388617650711675107519431870689358351515192761024548134025509517682103801982328110022389572508883576913795615424368388657728500816489472839542335990272481774634604755177688670161646263757932356648843179259408549815284595479590435245968078888966600669631536514363938865420911766471391415710800446336910907895085124732479010352670786886232564878713534190574801946114133643235291433943415802375978121928335853102946008237437027167594419580389192911107104424106671131745020158228225892922149107010265251184771598843979724409647533910403589952475836257500672619254129484984691666484242256656764322207272917599057013642076679726454412566947601156040330111838943538823248234047295941731859530075281382458219937146439665159292015293003964110640468242580092787916932332419007123671522874381056994464010786314507629357558021019265085217370906127698662154021316471752669111254526882354219591413033265656960075817271474120959687238749472905642997196346376733475855913052947680480451603233179269686528666919239062177481748508636143312646434152387698730366779242378056481774192395694586876259855509385945266365545442477987347633033953118343104374647336756246231392342840916561952032678355310642103117886948629392277889449629000657414762766389217135739315333305628685107922320164240642787889057255710341225431918582870135259065245816347713115282158647773965103292264473483707547181587903436897162640247967396147504336421015087565500857849920997592974772718429558733090200786480438305643084933651399889919739668134798210287110091951481388932150054431496959254843843934144660027273982377339290311800400156224019857404707453361637730226737998504685386991111553607291625013497603623168110403825709122205395890598150657700035552690586727693516059247738086396486657651040916433424484718182151204767533686787625364263029130774285843886839273899949075497420370889831474713619688374368681877608190095852585714159541974075713921608524217297441852180198885935771809549122190081448459918518652114190292612954464667414585194515736298824044021303290689050001371398722640981281721532358492696272386358918447676028978604073084650693179638934410731164530202889728553690682541656583154600077269030942082796867359888844621749869599171984415305934561678764853175972628732649383925086131679700723386387207187388386352306854219564733515668886024247260992641462025685397164043324065013733926015782962434729506502442248011004079506490727864814800146441805463080294642196585919233203549818037396682450290446338240801566149580439630687209488389980910075353150550965821772443697641886408279262741974366196632294905538471239531788450120591634544293394064117303995488147147414469588614705946497198564437735347363338044383346944271135299178413613091215372458205523288197967973001868924117666733050739531332751516126022219226917621737037041780316271765073979920603634467562273819940013551862964261321416158553260165747937654579651461236757221449109015285369500703380278110714841838535542174403210294169470292188510895832836318368661368316339485715184082357089664323357302250783637955216401908278768775543236342343468769377421293613713186998069818805323528013184731324714420762382790557776541848504069732448925157778675934525509144093747929110675325184727371722386983318539319280828484930107372813939616278966501067896106626791102224906970197152946578714481201590278602724726018536063735226249855603350232788325985495634901571132261315494655437400547566903746821454641740227604958561707469655765995477361674824252892976868502026431446082338446861277908481645733339579962870316127767807128507858101587672177744644593572635227684489858562553791315057979605864629489255415763045838402957583702773784412630368008234001686532069087948549126669605327691905126226090371966393959819193235387736666986241803981693491500992247632688641242970029559385238303156333022887139555974876744932738874448691308904312519445130781463683555265247721242622121010744922972871819030122356005986949347220230830411500157302554873943620477731064510159044140100080841151311056506344322210233575049364593792473954884421853806512490220460414322917520088554963332457357755958954165702021371132979023697833740779137080789016779102416310121753262417381852586109353257027250999218906199701426293612382363148481373639065708289905608972963488396044712014181864439830149388356430474038390946979601449379707889977017262990878739383432291327706506752367323280857847329597346196336299011634598667304421922543172462912693950904416994426003213431104445428558995221985247730860931315591241406074759303444281781764002950418981468340952229520036391248602805954308744058314767908822256405543913169834601408864052372705134924501855395965026655920199119166486689171145650585320767754764598486270062639139403164256644291841491572776204488694967319017641795511214651547083894662691950746623978157115109665884043695755431653576934581060488649642636046041355432265436642271092510301885902196101828838305489249533893785067607013056614851441952531518770061732670015248608390387518337630795519033845097453777827324823790604609069733228984032117013791916171318373727377659667233885681989520642600218158126929919173656979621910456434630839070892785629965682459921730798721298146867678160860997466723268810379476719066305766545315571666644692164168232437812465262466150700375570847767073044588017727244000666476522468990341884382019492742892478490775631632076958401566878954671004914078109782661522560238967385152195983352090069762516268299326556648554037068884863126736634054906623435079334602000673880738669668416504628123206829871978112888972352787964217849003321967297689928940160497534694015789989093507231707351525264435764910467783280230901213823132078272774468779387461449342663252828399110611652080117160053953408324902879678864920567606765667974294257455244133543434311969737627513153109190718372260753667215145767731141126314649747417040676165723875703378797520428732710585320623395096048300439238443247029960373445096860198124512198955225645091705661991471650606411796843695188723612472747386327546152092506403779179734120454145938290604844100391850021552908816530501190169278145137981734830029383754313038804420170749324088905232012998139979700536033190316912429181962436006678202575349185575272827091024131871533146209450885648893305257034002831914910180245791665911365749108221967492564066003392208879369496574747867209664006492304475604755256347428243759571502283130993252620234705503887866607210669388792460251910017703360974844166784827712751164683613868354788500175679607100877207176068884656678461814339743329239937290079331021289494418965832907576024940832519183370661237821673210680013525376513445446313968121127430162015852572123151517858581788930011733521752936134009181509166567204646156572605478177733581538653829456337803341600060161899379072683423130938585183474934397484471212409212341477489835093974350992363308433879894433966797071862695039870580025574639638173634585253445805081925510127211561413871688836501486565980557935779785040197964199287747657542255063565520865704256072005299621127452244634181218292898624071964773357051620006488258886718725265141098314550640280050611372309043635096392656010720371121419288413447341868599911995837106849799152388840699906191848139028578156058421030115039939598434685395449534175915642168142484747747432875746416668895461357516626152206011350295511787871993283492621316323769880615745325018118323975937312476445672946149528633439869764902562816486477920107114435657627857147730367266658500145797721699153546988794105724007477480212399949977555664556900545821374535139140840466111919149521577765877014548692543189122865606325218943802619323714121816633266003983214133356574232026986823466061217238054422236046562125523286539766720848246100640445132110948035575969701729197564304140597619208495100945914186878610338731093168587076257356745906237194850767029938491230006493443296007585287291977203630968280414366121244308464935371673942141925368408953264713493745699700672895940768221328316790303917911616178109019599528953981269630505042694273073887487627667483987658631567799629757260053362383979027984340715643237138561861684002126380124137223471109557764062524215230804431517280568691792270115342726335410331791892962343765633726556472356245393535862548507688791833655045543617998964620772114008125794602125680794986990037308093327313864000424649970114972277215403222516917764126741305719582284138509438090981610217713068100787406208342748540755776462690790206503246635659064383520846142117429455106261149795389309220958640280090176283627168804981614538502361418144711660027763912799489313817506851738037442249380001594452850445220538095410390492092710018920173048572696444601783838021410635015406351867592537956502864380501831626447110265734312977870378546024578584811064447114797611889234842977945089353577839887821002974300190083892861268911318264940126099608047805293626473922650902456658045704093740445426984311492498476862642295077928901035558759315131556993857830326332519987251120939297265331406179010119074283082250884106203691854609954841931474984005382629269035543541913359327252386390945755568827739450522942105613488809501730128344637464431834268884322101558241252169966819336532383501834712398257393869333801910744296661975873522038237972807589551783412275814249618485289187121045841924201052470182299943590931642681471597012139381608684461903891522765879464873960202994494910476864269423763150000467383115377231581928070051439783703199642138076503669462990032574820264264879299072374280723865673519075046929449397813647655969320186187568619505014530302203732459972939846592611388659356494273338488039278485049496445736068482945976924685465414874184495398148868608849133852863806501156307394133487024854515367028391644864869086606815356932604202469503218426328884478728816816471580409920018177605538462257164611303471350317381372793543678252216761298443152795680030676445221187643113541030027056573058775384491279267056090872169691340258634383678944354262027284994462283621592597695692488479408142508613810044425532157036532903125525275656280330454175739438155354698431531662873221986866768182517362656842383979940572497117735085124247888467497021093431011397226713524329732219828304789961378981780867945783348831340669767813549883052362294482393739945838056849740892616120246865705490119870774444444621849107755994062557120377412559882551613218864933344415716881652921932112879292472166573235199261191616185209871119729858802045354730686208793763962889513985139235630770972648283382250810601657196002693952091924283857166547384678769929602986051990691652057920888069947248302736413271737205242347081813369748453461556479952947594094639468639130413988210414759237948563200741598460866751867918778668470827701073222459785023054879373359048293468746129750355889510750547419940648674821650012398714263305560706582562646920395842322439078742960169644956222209225358365349977620502245741869239001312706032616614483185001214172328941138050237553160394953036172282507882923108897659890620941181485561120646763749292862332653477161532277048966993888922545764246014476809374807901342945098079861193873020930753832272358120443183336286197155041547574447756785177996820581489584452586081939390550040452426520601120726745064873548340910606513695570851394753560852679007549068471425067682158984335388128043491454688318469081543951265565347248487569396116017509390721594145075023457059673525801672591915117767100373397151597865264635104297855964052029002733005359430128192556935016162451427739876637423578458641388508674776880859616706505185136311465657976048578745107394997629595586878169763210517960481308952192872031616661418996579078956725671395359327762320067745174540432823834892011464145563145370194744585531641021720379321070710021252251023716651053877113574344024868869573917535653016543170788602442869115809326301009598962766885411937145393713556464299088594594044990840045690413174400418939121708863918796429510123589923226324332413425721151830863016882767878079790302140453845602689342389159446307202214780161073648002618995878003136282301125920332853052469655689456835199069624227591385920026375176248710531372060671971355857967598426846707626177565011390716194466089960738164320436683733822691969326954744382620452586640408119557786032173456486426204976977607769526721236051949747298729968061429786747538879478540852574207684337299297792103223123630490220490678049809232897278398998903062500546801432258363181888291699035417499817527809981418878865783719360934235477548192016734828061490810743302386384059280438206747565664337197546517500314100712440947048925129071906539242823881393715454114252958829997263495198930269432110726408912204599403748654102895325963042004329220191686413704803133292982795208947407777863947915534704772653307563590431919429893893754628224840784768721300013591647680151579751034193256920423499442204144163060632306502143668052910646628043786929868706174047098110474895794726519824673204026522160578579138816317001045628340322733901038519406150642502046826851643746143838628551847964290057695727682105460637188476782500475699423608531169072643981466285253432878992093689107602162364680800017848631410652491725326935778798773829303048247150815794799914505651117952644725330232175708934019410289964737348945358795657258592631957672244801009406602948420074409540353427561514151338031800699215790710859786159547272096049032884108625485576424429663776851728577195255440306737505493144924582870022000990273292686434853627022327752332947215287843452274806084821764853726973829962362154448090416435212734799975476895895032493550508741766494508670999408728915022750792700543283130061268314997109593450923678763579858133005004233964136044713999988989276837942988187975007687015640206776119078890501074444894814489528258273054356140702420751096452791468532269240452752027361890982053039987856038875395287849724899152747050971293539282282760714843798136915554285708214608731383531119665035946476313445999296062983427052164374112798474408567813906328167786819940746738086291003392962118828530061786960537906540556177599171511523390129813952625012497060930383491459627773915114165995459985333475960287784965227667116381395259326910334198154686047713012405341325176309403305042925080386919375561214497009558570886737828860553434629322899810796118449998710617749093705278878487867693525206809412871552885529141060701704201474250894245821329501532827798794729084157310483391287773078735225565279887301065287971410980805035673569033594119344108601109234069769926522205883024490173174114458031219741510239627661793950635963024299832325094041963977236622245471957996392241471987993064558484546837933406682208341620350111742739660819723515919244661030700660971285940598525955808680451655782272351500551856972351988523663061157475979266762499692628866740939852502746861305241033135618877232347064284457383214063178378574985139774150852800005324425685831433533701785957635347548173370750236180270688753243396940328901167663848951572633649382836550648936408784045227034753080118182843538276089516078771032395557379876926110082400066355597581604350602055654319870563105990092245794515663932826305956235335410863868778150318378102620497436298351810343617123913681016201776378931927886598648913307577766076944941972319003481534051692306671470942684499204094111926591986585033326952207129776031915053863372578327163196788594914930748045013352766704826975563304772682445048725186732101465941427726697397428970312475687028361511748983559893108797355619241345282973416740768957774331957751665456863003085126034459091315744240455082713705393951952170891199141758260088852570346777954103140397435531731388873320342976740149292027406919105161498300228498885692470351850356704215446436581368057423791912516586577804042049464552122047353556566321214211401875726390603866510005876314698147384583060875181748511693262077090530773929142603764670985764504631237311668405408319554965450966353029098812721408657782492958707604260334839842602000112986352263587102059942733777494875891290122040778143841216569901274379699416875764714895559982189443080618099778655316933590924401321982157463702217782022609154434173426670308146872237424878330881110910128426976479759711011012831687823055853029532548366306951942665762963404857523524098109398626849123577001253327770523663898529279356003414773718580467172414175641434167104907092710285663965780615048459920214454832689911484429697943306616218174172580610246107125633510245273143639107450749185254630070289696297881185432482977526983040692479614355186553817501765236779717788171201765302083764231276711269624224416265899522634977581329687205966112661927673102383080537439749263147259746855066683112015707331902207447633280489257012861869536335483704234436916271060807464573946685852673442263052448819278919550788805328224120329219047750191739881457963902809430202332716862353451848215321782534505654456142059318569479499743320671014908800602674551384738692562094917511419879866376864886037616444715273762579249996053186761534049716136257650903898555643974464760901267170966729036625612020694375979593486557511534447878779982029595836619353842487815854529196400543216797450225677289713682868971960455431356920389732503846121480795417622665525068183989859522824130406950927368210508420873038208570122063275512323168459474149001938251236356590022738075581720562149369721519567820602637970053089981955467660444731221812398686121866502172940582213923712230618348273368148062679495027210644538689113970285522357684892075726546543031112607682063255129110569102862937128055073555725232408951418089239138909685932919293676367472493190042889974863587604094932495746440553676367997404371492970172547851812902711745324686015539293166264790380923667383112353331497970153540161558242327470720875868941924656552489448121657758212719915816256225557174365397387293711710646552010231826633714874274368374154265558748063435369629376123015227049518320920133201768278122740727147052918267427632601537896722645173131143402595477605536894133088853965210394372885404830936377513937208982964669531241354293107793451925751528981728668198790019434531547070980917869149080034681499139553847520646946231785329980247076053402770796757900572811023610403982031121650652160277881513278677100803406153760362009449332768042514563743981602009836226209157776153857332787185965385301214772884429783927689581969013027977658686282069641472777723485108792428776300694016400289451558405455961517705005773875864674130314346693898677865672595674175901539507952448791547005601507470796385352424996297576739346773068148713001250064261920005666727517222254639370241284251609629425739677012467776679009821119495769821966745539976357653336214643933254604023684573130981105319522962391733832347868697427408082543730031596653985303692939140109464142483256467290740519587609113605151203610507294851745333089676518583366674797529482367602716731955191385007953631230970888696166017464307454511159684108851658093365823927178665703839242825151509441586840337076729261187062742055750391843665698918474835605368801363276256945186720779180501798663093910539519214997911484061047566083246422956054422426824396068025908313722252329132232352987650329525866597761745902244151380664470423048704490827596410182319050886524397522304858961758229687194258972131325857791728828808845903921443145618774090185456419144360323216645106256274928723604565247366101203148085152302891058378905996127755862795434278867223869796365225244698056349294052611531464016493320748029041009632053267633016235954074214303682500032005141211702741084983185904434922964560175404565447856050681589626063539127616536609396824061164959703012109133929669817252717507606172662806091869894344126502192347653425226096680924995255238143822714424888497058711213796464269775216944073690441605446373056809085638551551117986215380429562269918023173020372496491897022003858242204849934290226614992150897707551001820173778478138521072081473479194039105174411342093736437754342737661301143201669381831994493406551065517902396524681703958756092895636627690701208970215639026525512954899520552194128023510547402950072523799420027949053164052678225599068417044082488461047242832872812678176530289668538424769172401140280469765554833842757517418794464341179251956858155394732056511806606791249579330599231578126174747519412514424697312881272500901719782796694615400901289931909684995478171513247161518156055557411845411155581093807537656480596935252333737174885871982598601388795645378862792210027541941509626896615382738276975609301480413851725362131835741698252908326329092007481230607113674576177037035158334727552168618282926787516563936565223747406899235733787962125247857160110383861205814589964716782296031629895339984522361426504893761560202202296132094257601800443989846245193504936683162639353448557328809763962319059141520854233464627597720749131742796838958951121594920348766558253448887260048012109636696354781414451023891057373172457551767796507611718012316991646098680821504324360544836475572786360365421299868872977094764910441183990598541443451699283082932073014147216924750024332800882529345556620390407486730452753841140545897522400348422295646577922798825710145583310262506870287572969262058512496558960948587567641388896663921727147500389480618274550645781050712726928995196895476443874591325729264092658243367494245015698406684424456425874700166522692946986026472556449637642889039459252922267531666522545847986002016179484150080233148752678458613474820034105071388052032812781630031593091661702127578765759186864566539783066311221478284572432370719685960163607190665714201888579203228789322360180291229490433511609602105842059203760709533126204554198769299157384831477160862526280137065292522356167150658534156301588742805926141441206997501599484552081150101260864931905271797186299408177483478489784744520786112834023270550142285132643767222608643814537337617049626891016458289714800590863598704715036482958451381779043766000641780036080181656609404928700372725725537435068618378035532064875263722212804789680850781428869859456848348008553550476562972720038105903349020059923886733179798220908593928764798820797525573555649321697719544347513627974646273772380602876908378804586562123252304392280565324815565795798870985426215763446323481620527430607941218156723533809045820122026693191079698923884997147607740501701895678592248341682465876179754946897050054038736171437374659906520160785777950340241465206075010901296501230450662482147059842995122875673902719453793378816101586051529805817360928909422391870350135283716194801136373675883600190303983978878951395931904687838659620364854834622539524285111871260201253443285523444720604525802213723474933114887609545649369870207533756215446770213990008580726947128484323497004613093769800797601557143292538941646183723890300428110441716999910181939716719732359459324993260350520303789178961692784687033626984506738115928030131012460633262739562993180247199844102629388146452024727152209679507541528617064676371019789116913655028983061000062717986359125077982388193162965994256172507134934948919227502123483552713923355778650364787527584627733262571903015566452151009960625365664718730213546337081959832022546807149579594549027805758159880746164619931332256838467223540497773475803883129848810259029315263631290671620410716724286801255274191461685230628400763410790878613521881508674532049272390243669832096285097040845849696505982207818095943822820843689807283183314158274550062073991596661787082408246589353877660866715329240727579676649597588048431863673030011428951610399595910763333052249323199808521837285392539165783973886223700312625725943277026453049281781007593486259713177303305123155069236882988933611764122177540224221114860225033309151890427169965648789768641145278582784816206611560503424350444155849241853767361333945533978973050973061544540767356053789474375497906109451596819512881065478735344269976840858145686327749966613888728999911459879921232750471674976702198072310898612038006195336319176769121218341106231103548834508709198042437599735508836424682672509672600506095849711019565583985867994502642911000002584776787938327693905330191496561014601567986789619508485369870696923169263661056832436609726061440399170342879493370717441845402806736597326621999194782496707645798484535567822515696124090917283027717214676890913930414786225881527656084549122298858810542512951896029506937881953347498164404330878020660070590437998589252249231964014366106700286990914325975329378965595987441692269833824180565869890619229668968812488894003906208164371337870657244866615489614189970465601643376156508560814571766468550595795197660881417080249301349808695421285271141870238656108917154506219280814925027647893249333222459000929364150719303680372034106128743628104644669407078037651681235932462902389590005104230287816229342179343041121176136450930399140924466378874631007531136290407099839176389644080316212808358124852958615681909227990767276566146389938498400833208908675886607260306269206083745499021688539074678218107029540833019457402055642159516495487661209161634309362833255412557792244722676237816353959312813589014536603816928567166428463459746958674211181704292621400854420224176100996246024805222401174763181583376907730640922978673040285549835771020333663809431747315622792051420141999797191800030744512305331698758952461894502277597905411658111763092309796480704929757777666115138283477545831071862742792601475597157524077711480524644858565766047973655123358594269797859809727975917938827624966114696856052210653200566623213748916784226026639197062649735519150870772585064134349435725306392136067717371629615844829559311426585394521309078385799913363508871891075639291212509138879541787582660405959519905756954634502418104191751776802135278207491996894361768918067345824854519312258916283674612269672725897653930833477866241758198908429290461848396121136789600075559278948132950620851308969322733986529084346374531457700453268178632702610044166629556378805944608339807374223056507021731659716353067777897709281968956847078101437563796523831732865665293853041214118179275278873799031310322014491272743889542772145031051605660883761825107133982303993867061817708583609624612558846751116674398388067427023748211522338796477903041637866899332636976891928281296580436900163900370470785234560013115565249503748818156299959859149131863536401084293497197955433977501570375455696804619004593419066602802424451492330839017268349863311624008465230769305460289628762810549908646916975695609679370957652498470839451412592084455749131846815391823228627946214135146788449742094990662832613750889734550326117604563404988545991845705196576012557340181566748481534351447546028645757591251550245225322463964003346641464231163092078077789211281021520589198100155777140126295668596330658254197533594598682304201848088835327426671106019356401682079299710458788915518271606064102271893196002555671948654906921774264932336498590716660900401851777935924147231319106708097811186907798647259605930228825859960074877402803063123246921673455824855333056735712671153491635636176382944007707994516099303222252704339046122525023831190677828630912788375956288980409389327332435371231712372368861127731947695782240414105463953135607976149268096186884384832643556395300811302769022627338546897714063267851560438736371678029826928911486160840829406339866780895273324173739405773109724774878736635017986676979485513777990679719610302022451631285597246396588193848437722043232343743943039845791571464776519500994621364082243877834442114953691865750085532323446196776998216290889174898919389099351059420145778393443519454379003083795022543720697519995594632615802008016125624109805040523907905019073844224354370842007752269582169931712652483410082488705074606031254246504880738547295062264044189592654474352162573783410956878782221026088642662490794442986436245733748214667040613674606994045885457259564643153250941370578764148451931734319025484197107669765518623836449405570349134376950738335869092690462676665868534469494340236304567793571642362106878011732108259940396160936824295364251964108310191440482302125081957809682203025470423715214105336203707778778013771869526158311423174640723796659111802443536769212299035101963824731268056703041776709274559781311361573735392543195821725418460666766635138449889667903160091022497203762338940724379271634437798197018649977879804979436340372433477271774885670613905417390053825698512205967761282546263539975839124182965464835167774444707526068875892856446399778539993185707089974315601301985929560915544046700235114235941934452717010996861322380571464560348120733337509476166338506217710713732878319344017942048917902454003061499595022872513911087151339324511271768667368445568659886085850832492470331886201720885633249043513219438476936850862365947921899559881450147069502597561586865935364323671849339446437845161618009151885573592762136588776456133568311483763784860382199783265988543755774513800218441782221450576119825025915217244088326504646057243539035800766177368820621045271913811842950644451110521203237077035984532397106610190460210161329130053709022391176528136302982559793440795691603249184793430750603416701944201631900052717038338218674424053712204314965593624348609384948158806691948477130001305850708142733180579509078811680702475183922068867710758369740219548253197153278618556612843986162812824942062410318700171352672806985872084334990586117667584242800715843170587012015501498527245157742592083797828181995388011949066965102469750449555473701867556347031246017783661101245478832896851939143473034867368654245216474384421916651930863400964821847650139802706411709066538249212673043275613527630903340193230839336488293577227096164052899765003479362391089340262761670582381754721133516385692762987838593350436818710252596971565315446212955563424662537862741025244102208515692695705614447625916469874533336078328321078551876801568700621983054126335712942936789446836701450926480915827500053797841458215077890450313422152541323164247646711592495430192871958290840448047484520378823033543996686498781762021466740559921443849187966114833783742032842883807294914218728769110701765990863497429144126753711349849142813404206393585324051394691937440219223150354942174125568973215374130135316163506642569244637862642508342597176441763279040457899078907717534237475274842286191288570377765698955023029348642679760990728028191813392674773837133382650707489071181319757994318462896271015093020536003102079233793872998944506176184283373608785794699487490286787523688109636645659434823265745432974764364263906852527226263320989712391253699382668412244378035250420284621541582577140540027547408196003567244047803636668443160472217260162657671642625139750183878545239922041257187177077525075019069005551347128767876606243875258973578715029494694565718662699101910752260779006460755065672525936493163338114058534810853314125608574801145062705241204288981710800114491548026555403031684691270726036483274387371817953090183089699664967073137862117966950288074368509076885437397812057383224168715212132326805653583908464803787350183213215330353775037008944836357857566564478622389846130301743786272158309229714736456660542232778345283607690117491041363005343390305269223847915370279495238579682172108344114427078083534668908573723919641824237595592355394388565405134737487835125237238778443367168936964472002179818081815444862540153965009352974787347005532695174049052462954734263777421756986910422929041077995419522451608827818320145246711150115110147355473141154728287976987550363580791680899557969686864638688353228193488019676826813225945743966134836653314365072030176827050042347963440620355159147172373410751231382674889620078608919351198486238577208132821479521657101888507531208758323256581649448508396251529323139156682013985004591409048018306602345434973824928850850848652984183872808752133303818359111142204482503446110335520085336840626262199196224169547647386591975742829403837465536439792246809174063970431958979458238577302814727634694012407789761135136488362478925073485056481112740571235904379734766958867224966676729737095248250179855476249353070185087103078922353609101502101586187533536667893543113511197448180471219616628498321039566214447713881917013844109937241203795583264577429061120559828185526443960416665934364886223701611369578764656459101598651643670805174229928050089642107963871018376619435466294417458491525964414983214928777534789618768599816470588649868825586600851344886398511256196936333875539239484771951232821769390003504039571042073767336221959834842623945896395194590401050054981840557547494242042216634682348845807250137263041998033081779036152976227721570114422678963554623827757968038169637511914662979694379366754787003114716384064775896406164434761306482036031107872205105628462101868589349010325112244916022418568605782574531246344701465164878137707012626345331228574294188484814802633880059536502001616626618979523497322984058650306728004093810402860412448949545615941187367943579660452240673761631976773595138257058196529939727917538892894759752968728561501297770240619199537984905401828162045517497150158817315476402185014314757179881689703202362425343008162501678641262162335267021401667451241382850191719071299600526683728113104403947689017068422356527464356902044079201399096065641786265508151572380751848775450216930681017166287425578054105505403187557977366007691756083918441041685078088499291611867972472066369148780875953862814094644649152838864069373152187214633602513074581585110750302304561372635995380962642476732060846894531130390015262076918592648656988669617338358691585006774559462984754954672933724433287464173929245738808862997783404937586725208505789650399723313314582370877528387793752908410143311566162801155113753014865347201256915229474293850273733980635404695088277491148672990978744282986065320052104634969311239949233768718644716150119339107794438634789024430680545625491621854303814897656438700296982737032792886439098089406571627572134422359099532473703080674480256045878271658462674622148258996161784725097444878443165785813017463394607892172363874605784172213835759777053210154197822562927249287399139567011042156535156955773606283864561259902429230026297112964745727976662929936963670377389952600868452410333058256166028409141022286214409011740541844050269970997164961663455385572351313804927591806442824706311067353488859480464724271457847842713846030308139924455720715200724395491227911020883277579017752080130318620115036052444695800970876415193586221429385459886682726910322459292301329910980810855517658700663924147792901321098021588096883010294393890977584218928943625874934829328754412311457966982717799776007817319855809428642601568839110370817373916641010396174400773964526829660392249173825107986876529370708303518673823589904371427838024515357072119986614848217140227496505681868933331043931806241428167148873437378338427254118719648540307961573517147503359378151289165070527675095266513662306558169305676743017772098466903570009032476375419221500057938058051009265683267677766570354295965388420636462402344020079939784833202905623229366540788422258392184436725342008361667747630752843307980571389859343370533929022315506852152229097895845818574554603933784843070554600259572637471224197687415308413524668976664101428805655081498484903581337962204843683945382565622615259191910740668323630320425320586255779577192994404278419608897106110370177100842018371184813257058541800261580224833843114740730427761093499918272146643193022562795680836601053862687618159264237938471529358808029044365698047132386599497688527930910732576561398300436852999973875167628229911787326418791371118039385961136458016960964108930713652219765528349764927216565899963350167897857156165035652919009268073503945717389407938630922118015580784439532950244974909677768928171101071891579135540248877923825044950820757456302601590592614419264000361288469448316131455446756731515939886586982971622289765733280135835838486295337069689545758924158483974196711523575888458204640337254790889539455628250847747112197777936296270178591663025430193939576514585837171173544302692627097851797228953780572845496590908467958259533058756393092440311309747795456731378572515182755461618099070072610271497721651682731444216753638216969512689705756909273713148831626936694362019527605262990962044529371885339039170946276782476301493230656369928508157651942716019275767611626956855813156545394285936405608400170648610180922107392019669346208425397935308657284000592389323256546065701573048888059967859696019937891425522210419946523413472116536139541461567361146994769207886696292459726671438787401238213726750151138482015706366471288000001441181208659543661184287917549979529125380690753666957720525417363515889934219347392509919814644572106945498218390265513063842110262305933710836548810400309221158093611073029492905877314551567854206348350465919669878036113758503576470432348247681500381657462818715308263252422589435449967561475731684001148987924126067442360477027903682844533368456334164321928510845237230323817352163130373236750660396119667878652796041009277629791559810752668398328308579502768388280041734403556526221062519747663094096812729821195221162260715485558777150054559573563817961312866797222235983836869598912930051666594807777477400521851530349097042415229824278474842110653359147072191381610860068178629199153451405366514016833841231445325332328576430695741754979178553560491913897939576109086377060726192862746088874394398487554467492652551061404039997671771812892215395580335288206815406880717924369986580108769725352118172439064169056410948339800956159711206985240596046063330907740893472603501039631249725408827878085403511507755886039546399046969061567267567540041858886188088903958171168620746168646117946627924173524203816921459781889777211874324338976390042525333817879174246336811474311601557960707775947264832856182814312435066762948862544722954696194340850319136868667065200092790792966933767746547386465527896814728880146601490479571172581658595089075855990219971331687853489620639966976223859160971892377941469755910854286433015364905513537236084077704264132364014263278536425659089778226803023642222541082120551636926933528396852218203241798260384603599532166877787238146598876924389688405148427423804896490552176447797249924587083838041660866486227697935997141856789110738349979611261267134724969415114160964748367345867260143089030904328162178588522530028297492445753944890438568882395265587889382338986019990495841166483125910228943255804642698612783794144202516808895124507965321941766204301641240784665237866953671908673730764663912979497493960778334097296511279819877868611580502434292625566173968821041026709494997581886930240805173612781647671576823403282579150303546928225593181079115874804076764472031773590111504584875962622609757927666408337773197888519596088342115270028194999703144770952427352545041036084209709412443816934315262929165492841755899812467987027081388816181765480665964858333576849280296714887489789518779490146694514735138122915882747424806070286534514417847733546426764032651737281137169031395217980068542522309739039662549206553958206063825247076106566480780255673468288229196755943012858284667516391932793126917154367120217879806449907158220529466956353512405839117914914172979315671998743804913017248043904326036818746978830687297685146399253328616123274663095866355286761114228424564934109919885772694903389610972940617341352875762450024418484875343815245031397843074071610915639302312547916493526340470022770145510733067307260346177346562156433959112240839199438198775869912266039735115049377405724367297769458712844803182516448524509466245470229581312613060457119577499112496294605148783027324238074128488368051085411211723851321883019564760241149300557064236491044641185904297575084068776190049790770882967815390166816031939662840119874152939088138983391028454019631104706281286835561477066206604592228627222878169055083415357235252156617450351594868666090873835238087093208485561134865700601989221246663426223898712425507139732799030021179975853163576273055147419123932842270005211771755983291784431049279248958742665874009988315255244289379099994805049740635476957081728388011568895023668336401443579959843451439646132850726029244487237000311095784815776742791571236722249449401925396229054624484730153076764656657594654378834271345457257970145044029635156391221854923761456212349546976924624269554036798405870620702310295401350053043524256719283330790249464849680708037138175026050812864765275260919613711398079633616584414239330693958509970654213828574951077859781448840590719565120146544934280216443580400441904097190662620203145360417750731597919106151585966789283176749392055037463319449785636222976738506360720294719932373016283657109624785342512623261560842891961568675555578829481515897691873522858350863810623529209535644312964910765676683045744597315373956061175989742241147589541754782758826150257070990079321639767786401739296779336796843028958053073580915773053534936889131867112043689716475767036888118743744977391389338054839096511306317271708526094571619287065289395101972673549371133909448488065641637726949008618751544112985627693097155362066656970595742771286838610485912197918155508716415063031149109042492126178392466423606799147952099751008052968514584020927932464356271641763038557518432547536545876805710515935745649222541625346448638822554836483066339678322588141954307949428716528180211272744565312114039054312045558836074552140239587584606774566369465061173579012362947786015082082252718108207167047359000652890767395711032479874963261266304076938282501047268709679389087849220724614277221778979033681768811307271088736466665963298660396979923130442870972818981730609362625814190321849754775006558298640869961634710452988718002175957661834210629294855278943385477259745920898357952187985010556683789603699512117094691854197143992151996150442068471591369711056925234377332535365027569143749438087759968725968512357466336747174698462448402702408883263839332252888012624163094879689754623848898525264736471510078520448803567377090194672535962865850172644661366007003117775712707847395285661489393209692786992590503195675992681014304624996982273607366955366709755586872018759590190382538969612652909639178266645865200081365825266976120997690538759755702845748078570739569108643654138342862577853601536968013847235582934773726914093282623076975951743646055363802006382580581599525506832994371723851601000286735062371959908525197433755366951262205126769478225316964531801299525863136091732498198447134428898903002180119652028224905884833976798682468466853453832114684794339412579727698552015782772682885349639058501154295796020269937125389738178186719904099462360764331800762234709392494447420154929616213464414580516492989749028334583290158522749330864031708736976108382384707529279696949425094266886264765234863199056329390716780598361895393644781996013600504844572838608552586909390038722318949669709921281163359243999068523433617944199264477701947482806995495602310749519432456343484633099966043969937372618873013100649623633783928337642573475945698686942713724201994611406788492094413219590724720207186560001210024782463540813102035432303779253326730559009715432888491648200766619018755888005931900904493763232036741018607184923868733568229917478515128988136276033941141837633221946532670858262798630021151448840658689687711975908528888592218036003386994388000301108544165247806730394870056534094521074609144797736908733843652390446669462478548207649914890873245863007433695097637432800436585695067311889633728728761197078071978922145317921065228086083816053888773974984867387625672901204276625772731169318373883224700613653226254081463701302658083951930327030585002803056109705456308095094038841399463787574233993033805434587775145951269599884683203255096182501657244531145943148071786501214531722760176390683638514000016349113614802298620468378857678198105473837201442027898310300299757129254492463739880526242326730142537337798023166358660445026878411885723541435260027860944053181695382753277677384516975133158456027767079898495783137784383562493154498923068369374911442559917643639453460867558951968106998846662556740801357237951476098293555636055413027235502594954386456563744534691476729313756488283366590247807879791925474195839903993510828605754021119539948506426405045768629269922599176575908649908130188631367770832657127982419784246803184919842525051510498406166621272881654445001249956652656922847527123940066536711443854077305377960659832503489075615400480934163712957101851293052402950981993995582819908163029453950041511698253852525213253841847254557511446532934292548498700126425082992902478006784840510811187170797536807529884818882635013944605194373328266499664297605119739098098728160163795813127318853753954344561365991243011944161237455069808680445912097685214648841914817819293675820670313358893570767805100283630475109659955936792050879737371007829691498694822870162339587485831371859182997144012237215745355482281783532288545157220759848413150758409905421317727361551954414066676374936032611656939010202260869200677846596335330424476681895434999922182123705247863444558993035821047789729114206920611939783842466134126931553194580399026591145997529580855039436916403461900305993754027945420429277021632134824515155247470021622086072710050604326498764133742845707727591218167853582245644477451067164005420515472041173866997330572739476664963599891532950608690831886096698149187534176467820661979822857871717298382569720879721685239111855840343314612114286043030920522183717746045222992610420580455824925349484095240842564288648711553199246942752080751574889976376239532477990205218559437005355797900667544752988388395135893636202127657356451381134669575584688747603461418637450173500423746143654354511329817794549357922033994436910862604164791312351359834680468536873804795850610471239197459477806569733599910337095699451753024503834881182454834737242349447003548941032484054701589841710518959361977290508067778895810565944685125377241665445003586185417568546970533072854315027413355950607757958892808824419887701370177104505517303890996981504289111088428373998457310020423491550281221370671979006652885534413740443470881681443078837834962883114423558895564212899766668212379107210375509640074937412483799438446043484528369284977184977675528326206256041543495503198441645885210389998916017592445028182099794340387280772285415790158292495543003588775688798533862795918816892477539372256507254355738447670925239435881031319091267452331321205021345788740780954632605669241286829769141052964735014484756519296479398293080230872440586574404592917725915439816536235638765788968675930580770544252371901126195634510692332368820258556811212765327925279586155666553439227744847440371510502284599015381599247022286989345053293793199984505422954485544079275297202523437764625066215270025817887227684690444211459733576258073181030668807617872949597100389621220386413721664990524959683813739268436556395651211212730704397882091460609436907939728516482022528921963640744313411827109984439905796340758936929994758569754814207068754874189802713494640010137764975027172603401578371031816237707875408948890605095297346626020582478904145822022267630350657602814850332595113985780169852510686307108590987070144820378470971772386901458461372967934549517257006969756981850154778744978925747435068130667396898406134251557940511032761938420078593591194375581754482398783513660047131967356856846582417340164354553015070688412911266482699574382079741412013709343940683903736924714523957260485829406302527421793743236712386147971214991162100212383809426370739022662084178927818595769563846478911343681796125472334068431683383905038600549540614560001349074484788286153755828355546628464472061802250609426324212911124189635465949870440131809285067537792395418843466422264053553243900569653293864051833245565697560876976216575401049552888900140250978697801081281848962206097969754606016966281027567320846638383454643415901746276166501686887354159072107857866208679124833234844579500420036173118958747691656272185625649050567619227495218628933476760112338847074920831442664193159435448653017343760139409293474064253806686108162979315757825302256989935169002473455307107508273322564730286197914917915128945829323127608349175490241409448000337200771484687943224516607016805371514706576403267417751557760071649342339048062617313744164181018866101081251338420778876502318747224889522712500538826009920299555773486346709813345633993645930093578395010807787669940190206767797155949941275430072530483511882440404197211460202093801375854927137256677129379526900698588898855364148523489615730021886926626963233239623401630551931889668826459103826019134032366701955127807459213481060304498229238555810635934160062599052771825345281033293943695308273796263322279227503256473271952725103594713399311590837424398157238377312268367036428327740986656858828284042617592416917734395118626652976569569906090834508463273718186990016308647119717789060071996841827514268273021454945687884577741033507830698508223515844457611643401489582216430230142631673739455805006580630353447219734721405755235263535160836927885913257674704677508366440960505340555061626380793302316902684885668192361436746054134309612116033796593887679595914651954325774693375890096376686833845392768899017140133195399326989317977477321596477180780806866714191084840734896500492490695940257499705111940175431352896055618779803980468346973653621861037729453390526991138946243507063333828567538799888177791371420164093726563063397123677386734014347288123537823714849123598878796376089618606443241611245092123185358058934825927678080140049590562498932079963444083983022177542528242523288203638320226822283851228837943703436774227978889491704210015996099978033259449115049278803073512538449193650284361345414155934130368432679411158354469808593152368947157779240442827397637940165266639989491957659414676171859633795687236830306542063678516759579591319939832954103562491562081514639707755802902122292714144931459453844540612949721892269237422162675279039307922816076800927355664758486481272452249323649944563586052066908489075948599326405483389514604278120873288405841835539512162886864859405704459599867051318600870171718671672447408005438926544470485560714912904966407976220563481262511424367718755338908301347316367490765364385474686215649847440202908573278803942857743507568436935344625781196771191459629897964370582322604239521514067060092151142676278565363248816129757340858267619151861693256258845805127439117689740994219394579089114192019119838380337028568157427267118355316388641873754843079928513225200588265826786437426839500284927383136662690764595996871403048546874814608248565351361358519869181136551360232556749032705852821945363294613719325585151634891959683190011438195298145045055523329104309126705410522470237574876055966190983841696574380504499388696578842871512229536747352644236955806797424732934388041046168238509524464627701385567158560657755260563257049955714324422693251589132472415750888613431636851711667500126578301703707027465440360377207762650831899022584319476548224440229523179739083518276223684136041389979906093482862916819002029419267199591880992686664004428798376353337290381837070079176820786738782083058220466890909449904142205002220309532871021239232109415851283374376789779547805100154764481588101556595427186676016370670123616265279914592647399053856659862996689516343431071312922809549462363720812106421074190555774014501157171375417412947942972520100270921859944156899353147814055569013728264166576752408842090045549662938522927158638454001367068016238921185785298230558385914896176273677162368746644547749821579266515479094070113247930121089793262926087214441805728028025983030115787446231534081392192152750359605163046466636080316888786824494016127503669542627442065709153384914360936446123615447246496936763758428348478733991821422327781005833212178965061828348237234122813865220377179001550302752713810489576690284070862239124631775706599630380419090348215336489058096291267612539587371467649106172298563669966130279162411735467576220527277103709888923047962070940569048563797450570391331610661412286879290437811967756494466084394886324661548027710618909432564511775415372278653656968943388458535922778435121632675484146386574058161587564026636612136108950335678550603678872125229678608097722097581517478355603294059692583519474239001718367440356868578335353420202015079856642141826354229903927542343527429297847296535720231068708640587890473470911039273082408786757122651841823195957831344081368581107873338287182892339624453720296264298815317373880688339604088785385545355326830540951287755293647709654191329396370722718076832800826856822785647412425059988052745046872190447419145276068610376958980244569849466724726968379887481662284360798363791272745925419474089315438070352049673775733837278457056210487667065214092066783006020348292842757667337682111997512124864873542536643937719909676095850111628264047562123610643889083681726539246661192258959397626264171730627828065159399220512772893280102121842920173938996198893238327902007334960148313651041935399814373246306827651697507795161641084068474698632004943153576184225499900478034849390553096778556580200654540131866976462016989902353998283744520036756618292745407150869916456603615973870944396665372415017231650168406691889295979687962917015228386057178262009309297542411886549981516971774222572801552313990639379838964076285684717764269277960461500442958302656158164938925941126658318431468800674950023490747147508405539305370659705700490595971489384589418662269937321606912321431833819727657636283499716704787813711128619172759374701738011334520275294710470503041249970675835601722346480841556274234965928894468649900457166535355770013340883594784469874016058671664276155282040505733872507579875380519451344791300762170674763467663570692257694733071813664321693466123679234553283782756984309811080381256733867232605689060552675027298306057753199511400070362965937162442388040947028767533456134598487614747408048668614517687634236614082331550202032118878075105717546403002195428149195285409334406612137619251025393802665954275554081978421338608813308242151518940312306743595742064378602350780216780093051864169303043402235239829004676645569637523640767077664061582325252047975789085648138129829869487051004029306863786244935528176714807637997912000318479843971008936218030629384268708240550474906133181717738865427837307579336429835167391718962998741064857806065724020638417147963122124747707342366290550309639914150666326038575373751127058232980954532616171799972382819168348256433446514694269790832525955833596584939780856594431435145365679781134803440366464698789777685926982667858161778907906356391089204352915354895973536890890467368506899866928512642179599073500208043046341033394179291255862816017594740035312695699281237318382417344399039093541258288040805240413514477795292169785467744011812680144353089854376713962101298037756845867348491100592387095282377020656964448630246837671767110072598786863199396145314928092309516285539922912141241404430153682346709155862271474712474081995017605239454625440370288858640782804855337007591681344901307241214353364341307990446031351832578991721612590213104955536188725354067526467174954483151871670991642533853339334423817027303779943304419676193199022448188217069206589078068023432385567622275542236895773249052832458351859209780223076330377480171976102688598704017332941432889413510536729422600450505863199059087757636274444497907117887085752097478402037000115334111073155256271444205098491503727309215324224568687984617411320638499130371647058362175407448224199467111796514346691874887189625639514773839095898518102334311088632863188236735462860898697360221796031631031264300492192692073920484515812688203814987178092456118443771204796510450327945949614940064708686817529129203947046990503833282013424819192021275100071402235723887574470420318229637240451838383466385126697606980637996236715043463628586934829867775433811622097917714568158756825567088805593163728397515398091063434192232338362297512771703980245596840441746564886737455451332139352264237614691884099000508782611576712924704040220226649215543774155349023485941878677094222121024515698256413481145834807473532358999831800196935436512199852964715283309403593152377183800385397838417255711950959886144306147070662855470681343029390053754779629885492077830942386520729028984705300638337248199573244381618616338714969009407240058451648771176142527663318296120718894518993937668361339759529970409100758733030410946897580880985807888117822699847829654497270623377405475697607332896553823104389292051215309340443550193754719835106360153800984979903344355835478241230027879521947037511913999520815847628648039642915219630426939945799530780124556882671533623433330491556281079326707006210983276360463128595432937568623299341978012437155993440972074150408037767496894883130436298064490976401369425164819899426554519007265591509479909340482883183327057403224411847232293828098757286029309919643357500511888040529302784531516202634136416764817219524734624092246330905974731946259160292729507350077861870820997821481465140307585539943967336331800088224939137885269855665188940405900554609082232380008663109139239254842294209602295999425709009406372913760237442042793282355969174971822651027748613692241149762363272022797403349699679221041736745786997055175046921074024621028063587866649759950803169287137262145738890096229625987771631775746238348975522276915976892065585349197261387697335348811882011926977432110518349167875038773904021563648641305537947001930615554115074840805161302111707474674388009933150509395287513870705330655871822203799803393933282820531165245749003020560745447071063789311601080931381174035637302462634687866929365092971849048908337179195919724435484952524679821928306573089011034063506606555206736161432210659910544031971748443104010696904208213855742695644421788346343842948225993360861617413432047687365804129907884767291335492980382849975916649235208428558208754395525062753927292250451611392429476001436544024960417822203143658573134680930007072481274084635518827361167296762915749823373475971140198210363678538786653651874777934841618073403765423790495850787865402046760363000774933944082738989669757545215507257874805399523275003407798019922404956506108865193668247316111627123895015580116490842226463888686165498454253567313609096791946029558437482302311547028444157086216427694757291302209163664535389565828210361886121304084055508083855864092454423700789813986499160341716088460858619344063625652352399301436818511445451009344685371157893521278003132294820274379067710616823238619838927057921350357578059205887459784911561103707229049761900385021809507846003356675313379662235404627482120171838009319292135764057101118941585395128092470612760347892432358031234948855280615518024115392239006537451711696155968547175846677341916932404175549713833357609754451255930362829502879877223501248983928264260015935703255768151831329514226263193117938032415369851021837876204923669633126166873558134813516451780127135733824317404316282070845709419156320964106511938988830971110932436621230050208855233095251614139823772011170784148450492904926687439157403411215250631406997966962531526485808151422863376864339661347847224195704845152472929889357601245712469732333252972053559179503982157685383146510211051237909143072131206291396319722238700920131501391665259243948338027766223184439867025200451359702727220737192220669065320748315718517673287192383949883282500059629636534821673837499749444701089918780712447978929868446475506528441073623944625695471903896158622149347528718789932420299174250493061220442734194750663246112717139501581571028054222821728894435967753433656165413546414990030305828102346685108841513918917983736621314807742023797812198039068505029998033332279750349582507285873067820421779100802578418389489040861433661434337906090384802894220838187067484964173202322063505698470502415718293513016327918178282896351083264761884219592089691218373828230527412073486036289323181126808593591943267498128998598804248576444774110480309837327211145930834406261111614892771882946415079293311575537242826878779028704140174323458101518300766414229586394149829758386598148851055328877381071550754450163177061661826797795506386769933603676768160072468870967208482307027026761426767506259235980321490902323605787527969270015074694559527109519424890608609126829673872621486493961324123651644796429841796401443140832308105162297549555879523316830846843066882452219223098782354444669966456213952816833777301207827789018859502814655326498861368085076252360769583441150634703900305520083995488730111414428959211445167231124986890617238882526635635014676069235993390074743185224467470933365275891543327558130079831176276577120627100107485711711290057496191204753587724219839845933491080316962533441642981045787279498626965755850766155852878170866952068296809033195518752842098378673429044653897318034957352585591702642858123705889711466044878852470533995922550612594431675303027470938542316594255739298442903378766754508488525189510573843106047216693697873132779406205996305753653566421487589648629545665608578597022346639739722010780072392925961839211919810027603927943086244202377768349035969971827393335696128977121435680140517027441718044838474088006676770153129448859570513884079972673047054960138616355597354754211193063908032617631604322620671373530573138999357278520921073123251326738450847346348052824784610197663305458993300967009347300739405752327137288989781072573359133798990779880150237093686395972946268721906135115539029834466993943409093112841623432875071102089665150061123872287127100499080006846293134809785220534670435069444004078573751843545076624713659658215291070780143021983597840439469223838289201389346553319032817838245912431407317986442328417369497307962230440902122917070009796498033230056073880880419750968017922573522027774504963879003129732220486326971088021908901635632744063953977290557546071887254428776136883324674939130266677275223948932017753561538525407440125082279278768868212474752614807759219301540386695388501118355986397314958232235349835851691442163676358253967093436725767305118988245412253847245960620650302363613381690007530310113078971462194345770874102438979874374088371721823938226635172745048576393010199535391252516660235530939702020600214188318107330903223033535070495361339602137477404689883112208321932109911125382535960568299685471160450228665899093738561797996263775389958634335452183426476824278153026615127666192698877780679454445181580831340857949399687643358104550751780631230748531244111676770662559660904283344013312958458948736602200842187087221778056843419404698113975228849989776030964721077127919430651588388979617343118887323711229489982809953145154900840178913660378256106743186744982626348530340506164566102708586775129859537093636354796744085740590664773189834468326555051594302405623057009614670476912832540360918070975309687856788321662800031134639906657280824166393472457746081937547736188932240082936070901126868330556165351673566758458277387152779909078017355394010681433787340442461093865775480721009493630610910585476017433543680050146946559794702831838681181604686720271395880126610149831285053485825912285934750442238443216726089958564330808423594854007147661630760259348586902628633596867127919502716988927095535606445100037647050131881394535225204372662017427870617335007581751356563837598094551749203678649637687194052960726499690027697618627605076312425588236998001649770878867417219930137766172762557833030791527398492879687509603543935985007860948881849109597552262356101522299173705038078915543463381966205263638816737955508612632351303907434519868330231782377459406710861412100795436309546924016000050374088326498136469942061041444673041308689503017034114374335226601419929062479844910647609240571050049342495680714952006267108655848137113397257416454216251235635248314407388934352848790415997034184759733223438355163915729508005138873664655469548852522313226025692731078037168061662897380662759579336755613374921584233915046452021455218365237451538071752917358399878350219321756466128193544996827594578491542524029430977311734197896281093421069059811927898059773048957819996302117814830007625657962593838460307876164535942038041347971226658232946141695612671480874949237642756677330244886969740143707577561703906156920548886060278101356873312254517593595226085517872178226031465458021457504460985628459512526517146793326389791490773427026122346747570961838014242945594319418508844867459299077763865173954996240739049884720131091828663200071562630000456102298218712035241134608382870380603244620328901708549070762112524054257467879972967958996668297930767023893286912092515193000728030611071072950677858349844297027536810106437539466069011710784136928437956300191136949280128747691017009859276400991371447649055519360649416318721525882998626424090445936999153721685927244320567292396574332702099746711213350603941666678119442407828037083325007849162344802545566919388900225505650741637998289356140618029112948812485365161828199660727728883684046866236704333280029175626890652722201162253476079225865300242777864788757923515798424992679213363209998972324382060434347673766775451549235609676825525222239190859528501668845767897133994186915338850985088851633815679668084422527442110554533018220683296728138756066902538712802544653523859909615206061834580358260294344593533565797799912986707135955882330291851308259197568229247852393791106837443449053403686896720960090286810944853060443456700873368789097558168074914203501271634753373349933077340414862639923384626979777003958657667030446094573584711288640340899030889785537155126126739231476948942477835157760520705445783251276215918397155258465185599468452366078550668386355864076188870328542856227700128084575198850446435790975632880716056907913678251771175983600717172272358549824312868444340675720268310545366444598867767210984106206029423058869327917955020911111210722983676625743220928591772703908011209199153376355055809149110429242701701290026663090538331418242932988597711856967880111819431179745849894209343720627049468866708206792403397850919281517332526979494552696819142724684928229952952911842274257681259753406774747270436634212613243220079178832067952123932783382080889637106335058767252280459061121734976458290500306719903444247391829262888412310196842870663866101699290190352708777679600077508808772062480097258974745983438987135861445729038275072083876200784509818533663911315907003082448525395211960976303278178085466525209426350608215853905535618992835196404750910459199224962574648176363526049698076317365481853847813565974159448581126883188065292111807203323877697371661816320941143575084351760598831803131739505379512827461943401119539137774761131907422044387737591727337061901497179467434310714333799741606309280577609102275879468486073860332271478410039612410269495290742753234159121340478628371897920067796879739284713153486181193732509408328950289266679774228683638961981619713182129106548288145368774575846073346936505607793999224950268641991185943775196800813654276529539362512679819741881793938283389056321058825915908889000555194836859343857067399830496829241028384354613999083746030520705763072322744543947037384363369760613582611822952653994749862326108208087577310907495786557078456929378845285333849227519599493610996957617556453210215741153857633113845666389596735149303933972961310781878536289950087967550352284875406923313822493238785850314621832171802657921320317057110662063894356059122492609581471572319465717971347023337454617520162312449124065244943750655999511799196936640299842022884049718070671836132723184253955578933741514462191830734126715618756830992635456785246763075525556446429477478481680179501893598583677796435023730699187006364362799740791818999037391353814071738727815497261196445547304581087769133726737088969897674308842794223939596921098556581035525868813816247444844113807840979409330263115618377658011434458680932721449429811471689072310757374814077304798750801998180401024950871238020115434242108306797325872573427495377637278332949859287414692812171068213012693358110142872340133241272856013890501293242789705575446503957679896969269449115740045763802325312730862530419577163006766987001138601152383285574878160663025890937206565258013453050052679835322960242234723481823391422603638600161566884581169188343082469129585932615828201134625500742742033134548268781481993371762419393955674210462278865692119950644456798091265289406555004184609042393460762821874527000782836330392110680605975602530087665909843764031609925068068916604228688496037213008109565613661639914197468849325011915214441176444712631906732056081682692510197171196644156186293420851406978538292125048956138360517878073882667410199898343702210739938020027484032860875780581215276366894882552098516605300766045934726945547056680131896805939479248866966564099842760182651271631495530040030716996250152050842157422688436148022599522093441234348315675833459940387725467806415022668192683503889940623243374489717800989322462481264577132167036299714572653996288682436793784966595053937909844805720229434604935987713655818078468152602539313965340819249403365793006156724755748682142901916145239915033995554201308290087831966698875324777920234054362510526979087328802442286108395007493548096162016144429000504568082668286706240217733224982011432699190026653203622192733492383577609340814856175661638146991875042708259149521073326803222401108410783059484308265368142680609392948969006280067446627966325561558688527643201803246416712805804667658483640483362660674476892412848627225653425974514376401291208768929495876559626220851877160273289637089322411768896321598180476184843260822331188304246529701492471240323648666029445516937452415082958038302250161379112686188825750791882214267653365906660830133414738041810066438986434422731067167290098552469906964044786648270511055623140340402721583408292090212158701295257015799974657283236910646985467757590368550939753979751299978021609890600299649894348812191829856054060326167198918310294211056339838980469817832949017798446661286536519463042015436044218674153519163688918620088318013760554865529598179065726289904229849361792917061225951473005498267455530601972331954512463207372743992657375391672266767723685798927802421938376117026211327503010324066760716467891469041958227364261132304014840932800543831669473403495300477847781632691149129553542847469503181321261854630748629686357785827614511290171170774570277416547441174934186994344778948730779788639871789398414971412803419226964624473616625726540973169493624664489645015136656504916665290432349988611913785434621997555337987761940884456419501473264447558907146043394848789458964047176730878831502335167240763615403268069049842248559568887681914980446402320095747106724890320105186217105824355823636894795152321421770734067712887825913731500337355064166642512135840121303312657163066359586072056631079074406809264902591315163911288383571055415485514707283447479492139582082747703278455231450252732730294858183942000750711103795446627097879220372154537234764814566992235102334810490939636549373034779201213728161699921452431704354447190602587137367554438017060400433138951286396911268322316957814718733351467750449347398617506060410172041749015348094776680462360592711814430420679745792926396668378127217504208844436431918630408846854827245761850931926506896726082756964093909844411201184548069431523550256501309494350225437024606992689635768675044131186275064508585459145329868609123098012763940792214070936957436431172130526359925227270402422596154028004637379601891476085444197760202629438456574785617097211561091213314155995689429572991235438947684903300054499395765414610650405135736493478293667283679840546758431871766165231596149686461933614905874587016615641138592782352527143161420250997389813350532864526025458712684501050395472991826069148672149147615113295045381220982531497893241012944125549600675538071651926476495578223969439247695791023057683927799392810996741593668242714270173794754689733277644794976247164482697656167950560827602316666364996816433227320966384135057907267987014377969089663825944848166073064424885591414882217760111843179836478952023220690857818392372497994338797791129983804556941639821933162633488658553775771789723516896038459441578354189975309820945304835649461825054011496317767475420893055037363161788695513431158783343236625745052063147759330779520532403011089581550680089123911927384049032105289055608592856322208626739471336024392978305663280340411559420818600926428283780629527661844398611254364686079520917581149273088023006632583212224159017647756115126533485571103582776551883926911291918240032515042205591947417386725814054574979969055664144166802044961399992468076869707389678911008150680855067246782581716817946000304514416347982970180825127820242374178705115633375969712504649931963530581003620262173265838758983468162939903282635951111499304279458944480460433323253524781864408006656811345835168302347676873261753322371611197760583634624450293322256779256261005344527566499230601063405234391075760615848762070108213996397756301746924725914530126690730272901764361617046598556254613463739659102236703560736787571931185041036053644108417412208921126565686012900058673912417906737807085221542080918669449976886079448726750959983273393608838780332675396749078684230073890108570663798636753357762945576624061601132108825067236555179501906626611853323883281214704841605057576172906949227950069772931917800072782782696321349581114270936324736652211428179132807057275462084675772231197813879884077554982835250346008427656896538159698471300187847582245292186599736827894908112285197585569235173644815299458379254304919714794200816839731829993677074336462812572761022473983785450797710644050000262697191897144751876563969835027452570043261185890940241145206592321656283828428486198048809044567847856785416865604328438973858936399995805559379333390926538747545275149827735196024675296420053764186435770548392824456926224681625620271704376402447157359479460786500701948337699596564674243248382588990071079769052193923951837796679621226187861471929226151625689711171620845783372043447895789691971801165311469200266780867894598559278864603790199645013136529315335512718323675940523921091763686045190612849484256669042154710331459955802020859513732423261830636329664207713639570978942385978077977898902758936202386582749960573181607145695253735099506006653498204194619883287924437880512473127420920274008120834198540538000901712907413021344046924704136296103016443302847844040642152111171084511531250431657630388259006169958382319890634883602460376868750105704194260551121969176244064006815771933196038916541572906114307853380067666684476059719537030673344804733414779303034735336942166041727912680368580213170766001763888056279011294872955489987832754795300766062332112208251778268344745568790966558822834314273084654253947257725705788453801305063208059772742438260741640350941520646668319340019001570958189635478714746513790944920642720977969184228763464204693669483641197342493837494837287742926852626883904325551484737911473355887913670706035990217642769952285359967799002166571430003906480402993862316255337418830171494557239529666081747391233222286068473718755808124388039350360533581631967177601712421735227739393694591263513196600009226330056952514633380554032370452212167510689131767062324806453639305732267320874469294179624192395773897924379376245823357934639584383105941406768422822387049188448614590353025611910548625854255570225946639658879542027804304282579010304963487276873471253031419723582021888812214302976034753880070027719928922679856335660863507815960453098391325705582395001408534485710228523448071187691877154244288355503613986933606225135961411689589952388488862062379372451841362742034578259450751486823175906912814993670607659278887669809597295002691557132248992584918821648570456073316901226510602095568961943268991872639098003598532039279351743949879507540966911843082772014396087284368851931254988595669207536508334272549827951423691733218892461001060021485273952628049781705720981505606188700933679230371029236703869781636533771656693137168446309300864358092463875633462820152242330387117830035503575903371881712991372874494947119962538793000531533805449788957626934391613049074209484722098794852107051565230532694296591667690432391535136632321166470072781291507007971985798604907500321540557040795476165100351141750145071467594267661683399437572693723632162661691306645696924128937964699850704324911456393024404957909800967023626787075301294415109739336162090241403922102485851058319123697348251709123895971194499200501207613247080752341310376611518344119783628414403347899385170678025014023616315434669943247938916235899614314874844631508244819222664994145835228598450567689084168996716020933917104308741071485704116886606143754586272938053124950072464603393547706760195810178443429883605705680119993327258055636687959040839675266174577265362963412559800118340254446877266125940367682185460452724743648959115478120340472438517709158890157003610574622688802444569564157011242668551204379766671479132533687354436278138199792374155972802078800410635365975800942740036166154902983824517533536637811394228458704290748384110656108585047954629389775133203463057684481805211728641939082561360314202733206857294777938640456737274856940903303382810560526524119666464333385997611985331260480267720957477687026141141490473734492119017597735541988886649764462357442763739049239177957419604671629845330978133094370123904396589042400779110194938984127798892569343958130483993683999330257199144593651479612929826996100267249518060954326182458148819834114897579443155224919313193860672329872388214043060045588918736067990150090013954214882091100292102316838030808688128761682067226581106740916150693220307137679352535059459244430264896886381651193167684004666505192032454092861106206893496482638826120402444750335429335357037984675416966736974934848918269545807447777196406045169415366113330903424001268865741251797489284486483039765724706946323225700318369557381738364781144912715986121373120065025799118436551662267417856178345763821304099355517135817825034511554165130274638209580268244207957788085409462841001896433647549955656697509749047291580130871739967050703839224426963905639440526835654416732304276299653912644228987227935316347801618498624820661541166250621279700805795846347716663396170487469932148792339391457625606252532069592535850811432822763464445899022520290262289469628089668990288177274743683175758199101731581765458227931924447395562690273572713927290535795316693279719358067673383172481280759042379790479261884269833230725801957570125248468265852084454059506538651861521124965496486683281173162438390293708702663204640675448540078013667824012732749621297446483008483724159297931313230503217563637336156231147413724189711337743548891873106780011807550431361435243754661606739442605494157228787736812001950490774816014884677310251155786615573092221830289140839016345709195768718340564907027030855402825528383072841689782785993389267848702893469874405670346865686109577582689076426901183411296497742946080870525892038299798503320016745005952568236365677351487014362401148975546818669582197302929506947929983274625437562589578493337785871627580310131960908281341443431045662091879993934263387751269072772511326201698603983603613612092869369532062479806738281099647722426945299536895177297315201556515410264497655775169579054323323582492016521269617858541187100335208161109539731600667296911217978336943239860766291282216012344424286992513288041326253014128123056243475576118081283491599578694394077409751688344861602459465689785283669330837006778291861504375528832800534896884020663351162121021685574621214932953339329409477815935038163411942617470324111901236379942365978831851600104365634991048417063869822503104268416995404698438493710292030114319179414454153189066182397830657466133531392727132601293253184978458195795774760845038642005910384887513092236929307485357607441934323737511859927103004298343726921293357642078680072234149593430352229163619411135530444193635133962957188944434107595392921195517997800604104282746540468337617410147725010309409526066793349687691036460099620736979152100284589401286743818579981413371513941422861395613559776518392320932588393075326289048935874145438127273486857463266089498351219146627725362779033827188139627070480133808444237669134639038046296033832957417685716763871870688229253241640858557566797391926861514099825036864688416148330921719689068803976708406484761321239457975206280909198461765209184637263317118823821765266370806190515697909786523089154738415574004664472918591370341366352115209810501806505932960068316495913208827231554611694009484759579604042087569450984378275210479401705763526637465177919695690664537499515843652971773184056198949361353047073096602813181971595308052208662519146225075859856525446606970251367276787534719431989113188803149426615747031956121286447375338660424815345969796518339690619848285373707159351150706840503232852508433216743866862957327262978046289550421931422740633496127527262881610803898581604948993615724629164000898394888615335311551428689756652896558753030223792485976326445505375259330350329037409324853171456761216741463733325014460369338259381224323955145198382087584259171808662996262314109460484749597854086253282082877031100782271589413637737736977576040386863876865832549809577721351872621750217313675684170164855775954044534801001977263191026901358218684584411797340486702973437277787276952107506381943623379661753128947686160688049466243674249448552781116600669414603175405387950626080724604059352512746810204287804849660529082769406719074430450898136092276585872613245880135325111035855434599448208550151505065523385014224367101471776892725978731666059827320838233378666066869327896046649270263109984877110753190257877013605410379071960004789646392916601371334425343201009713449269740130181432832423425866755211108075589790019869472907241101524029005345381004474430772835743809209455249767055274752476294273411596049174995130712457517171834440806722633935892028096771343442551122493361934029816212658201389994829994585097377077882755069970320848767349183841424063391392146899392313785675733545414122292194015632773843072376617470221234645437520387780192807309057043518905485705077001855326789096188304135343811814996798295664426317518592836121719218694597691585787261418938366786003436497585462384953735104482902566565728974205312813918393213639172767526499964572609231917641754330935066777634034922529029511040082759194032946668203876237212058164706944511824688363072302169181445345599798940168184740686654554844396055870468898833861394138054536737753691321416813903540044795966572491073339220074883517256607631913305979546246869571831186827684029029058839253257584575595048200703874384275352556653983402095854029810517979816784276697480073474969585571901614172430526059180769730618501076331032653247787805182469792690009569780292146957551683297487707487611780712611605808493785279180396208665738479609919790316450121967525766785575337219343014769170853409109712520990196699831549718538996834470951250122218210007335592443237933154342520381297809168533249505706644737710913016637394452404308944867014521348601434497423612069539557778818463373936192440487763234016802403143722135927932986394843891507368947180631481034806894611057224955682838352305365080647069545054707004630003296283288381767263263506866132601575092307199417248307727803089574188761590360346133624036191847266478042735288337597190542264270105871896650084889095051079570624616497324432447102687218297795111827786158303020716876822609073305069879829682360761927045950237046706519624232111244617315285815433709704932203425613963786110840435722331418704451662048605158015962304245867894933038943338185335963080205874083746662677513916624617335542597993946893198533116467479976599082656520078652294124113161698329745414030325720919689212235593885457495260227609811388015185261004436814751635141232779695881894442973178578964659129287162161053307773310759025672879531495065431647015318332182113863066745665285841123473621461949137676010587150822971544936202728549561835259916953546796050681839066713049844240488476271363873848364112884521332593046621949078688834786306347051682110071254075284556949491397885804317059586500079212640171526790632776497480037560917417193820144813874394768159020659579549015397854861539720438429286102359099735083543883891617883913482590638856379689582188115986564222566663541194276221261684082745091048589050901788765931898241318398562579038473177129860066519060319710383796215202711661959738994817911123428899257729714309874971902402885834434123395118636737715288228367359305496020072710804000709010266037579187557619450123087741475709102337484882586830693945366104088447663453762738850903483717757264591728876375412683782022264082516391510304687659600846821670534679711026459235398738078955423834678429561239365503978044452541658333243215121734996924332413830478769251317487768233170928753440686593842972018477347484586478514569851166175191520263626110043142735489638605696439108379207260022997308638520744927117183137720171296678106791362966723474794689520818712412326326652458578811182114061535068359981765643964228724754064940575694143541463746263854998586109127118725070638571610797556632790342266238044675523221442585634397751254989547443924373029413823850227777560061488784561225751289134940233158020502702953977748093726275164432842796134714826504359202178622122998712827803137944571363548584091335793733837369966327553535716522297437915150735800728891944037847914098527187631312607178211937013759736362338293370939104850011599414029737883353101174152818836322994197621243687273841653283888039840611221930083664065227562065840374388986321668799225519779975943600224895432948345643816858265416388515261183278894971057666777072098096316601019344274526429584026906850507046778858499475648565194686550078014167766174414179870748464528583353461061732337516531497097177886157425079136833786842145111572743417830953987352918122918484546501005963873233103228896057572789423297223142104083781856739294110763495734703214744251164424306487576868888458217267242128625383047950938982646099197008665402458075342315410909341526774745012170639365464306869012010940772803775531286403115856162172734784786818939062903357348520559607301833922615540975691171246261348961601684182714505189997426009028135327957755055354030319440901197319487189069357108201857324873919284461016267994831245053634900558739241753484267653870010408250395609949430636029430673988114942643462755639800978639088751764357361462508322723367491507820773585602549783004783311324233333471810214607382660084052480510804583492189262638185636795948973348439230202194452899339785972703729928274431771999462554749545329514331006626096634632157303913113024174287934623587269245922707182511601051786422170756123165514972382998532060983395542714236248427397588273969432315629710861416404968244218997047007441484427321415029060753620133049024231617766131042437433880328570929526139456478183856123463418367726991908899905628324966560965133308914035780534529531419950812104856415577699094855232095165684967126380104601125191874426038159194876116278870757619855068859453840881397702846573362692447702037633818168210582841233235313639122071206847178053373957547359544505033310390760608544223509780793630436664294281522506100043251939156405642447783031026143885384220503455062183225054066603435633233951780971939816263601457145294283991073942428221699084363918026422501935573983750588158191990140455028513580040766557124267477317090863471287487606000254272400550494235488350367790245664064982894997710039185005936194752270941489900711066644847237354007579433406704383803276731860251995708653231254676061052540374866945909998627044844367521034449084160797543772949917508032521415074529636556778796634474302330665125572838509036721265832918253192969086556311965645375366432100085025157390645512348895474765790846626297693542915339615947871062766371031307872468473447404126950521917071541080627345386709662145582774764310142099052621793128820010116593929186611599305308643677002673419686757630522151096850691858389294253676535855429812877355035240287470279212435469438540794029025409009770560296782345527020903688065745102389918636098593016140940116536710496862462178101158357319301429465477848871856730880296009168499430315495034772352956332255859938770954177655713517677260838705901577064799217702193600275720312204869181363255574712244530288951704600177127331540033261468659954625467578928919185555251939909626668813164695812962093519950012762851179979454151712695953328343896761747646995142285383818230854549521008962389321694384600481144039661196439869738927929671445716308482692272945662426608065169717238367169578920998160851128428628167988845740587045855984032660545213785320983877642714206051062123994156572728071540593811654433217360619727284838975622380989154058986325453866111864360388446528089829396061987461255101386153450290500554493335395058734755231684737279668214926017589947449224302910298053205227729757720188588392735443237026346959818512071140162237239515904170767333407268730456397193658509127177414793069794498025893210817766612245660752975158715745827736875899097076139213019538141008316827962002952588138550555778957139237041797152358355743763611485835102294974232656010263380136138970481187902147370546005768379008624599503307921278126598138505075912225406765208999877662759499012426289086388611586825054490643623579945841252208644444959171996148633342109643269771415855334386450521247340024613948561777004550401383293081366569442868610932990458109107125449906823165997654962418962258580924524934474005004405811041698207015151443901724826973135964857913823677701477237715682979444934312984858419697539903600238605490210671313156378528964767100925065425745565274183475996932605107926264073245957009109044562327052392066408655246237418024183939304319772589576990646371265118646047251318342590909048499164283391159383825837292236192380538561917576234989956270039313689277660341835297302003026890359887747770408403066320874285366743458056049052576024199842552908809226805936003403674664768489001316630014362167170367122077872346570024831284652408428283606075779337237051113759775400156323744877311285345956871929332681407505285426724339874065641070952763168340967592530420560781881142634659495822012364884943121955725511759523198562292126829045374277032079905958710805630819895264965083844332461063303103230320431562463155408827113967989141293377708044524659643103568561755920462865330245278247364936547187989569759881180182558036340460386096715299319164590075436803161220170780297765083287039479901419660790991768845713591422339966004753143004824277451037470497986258030626434017294357930606618744555848714439152705925986842805451787138081476414041982964945311639089299324687747662087463353122683278308181910034128199453497929678713878667500367609182416749422086573097046465363247635955404469288320231768573235351170017445428613644846280334542632359280588794924574330826143763273585457546531496619689460845750760233670638431499588429250457274146717466469958390153827944299646402899791516261828759630500073832324664548179129567917726579322122276285929190978791450028417048786593866123593104534227232757376839547471707579899763893502872608053083522974940110553897900262965485533453937375266426892218837414613150076870787380468290278901936787159890261923737701862746824987818596464721045036164614003962294037910213991349603530804174432828429465458597399147296208548518476979222987628744155475036467150306800953011253138166669893287968549741285974344926875554685741513116689376744591243681633335201921364109512360918276294505373941290756963570565068758113109273716808075575228067299015233132135926970098490530517285029785130442195306542149695234951834709216002699726906285641811070678862720025735736465701846872957954311132536189313141032851048222644825756539119334508207842125610162196841044871176139986217942119296736436590607939846889236228331071150129097382358301660315734525445695824187448377597811114212695344538598163826183597701265299321842683776704070769140378049775263444060214583491511243228148357901289553016730532924764911716543671656357030562644012350233974542287909357234221915272267489628452691283719091627078156134458632496681443717938966927023809413809413705671834835192167048718864328127514437198447858618529298011852441612033367219635739428250024331230225925341263390724753304475705262663315664242694884258313918060611361590928821573310218745415034489517167146417799382680976885584993366618231802679881899102740208393204475463934486564327419250738359793540822485452614143372637425795375631699622025628208755424525120446039596886543992317938463465901260619015927085528537105378808924078464508517632267338510830717605599893307598567553812112597314836120240857224609235699672386142566078799353657515949185537076567669254697744329461420762144572446519786744005948412488451729184816758203846260895209489393908189130792245056983961925881038973022409901575027834769419284543726193916310620131121069535965280164854266662299113189260718911251969430947152535671047894021262449691806011552853865909389203931116593616126724361475931491211831837444306146542933910320710620726547758306611198726409041391688216305264860477757727118013721109360827105019040771372575867131230054710516001754625247368474317068527827204715812209407791320084806680401999652862713956890231639158129084490738225638982676330280637777556707513122564832784678757689832736309111399053575059678892876008516819621561905465272310003412026040629765887724207069591799632934927011542726328124730026572214471324360272070968038548458902358110373372835188318765423656292862365970731997960516066768349507295336087182586748063414935414997925900224319768816497286954341743813025078263532302720429204085466693972027560136230794195139551460449275020556425022685915451696457627814987865962116137985038316126460054492449126374748968358948226149266810870629221826881283573947268153899717964239924161561371510117077505295506326751870212693171165200660216786812694220717995951696407937577860200832015731579162227567422928126020888539574630541863464943488609477951121265544094170091329908944141110392954055541786450281994709911262864164708250179615336571435039667152198208761610453761113103185809577621393624718383812928826142105155058338053433635496941528385964105600747296251835855130127304183977286646917905349709317784681503802745387386786985423662254758636070890598773739202296341963658666028202210234568569568228319191784542364509868702329584175004765068103232632339000802793946415167763665321466917447874094596254051002741718789178023558163152542379050549777453255647265904618896614008812411729781775174460798473953350270183277362798808869602489548877802574347573212232457960975830049206670664475166795028248269119895689779671920306876149865660451103403849682536665263096771209815079786667276620644034344365263801762311179689201525980349443024547697146053237858573153020159437545792916015112135822250662587677968778074883238252860010787324315879608332826251601187843586842681038051838462115300094951670805049031187186711621559799076961607776425125478110624459123381087519303180573054117896561668683446034955834218274355939329212379973562530725942768678756226653648947002329734373833926861985493922308593449844922998217916860184922475286690142261590380020292095353807838308588520387333010330038363836478137730477279131322559668999307822401900881927475888211588057264791770066078754556672680718936490182619287169572768844059571126367419490059968815693522096550787653623589123472925442291255306834293225522431491759444697348617608343893970411836937827870391595260265709110842035937160073858490917774738137690734534173062488524537997789480491669167835196956253463620262972937215850667546761735542135431854321053617754861247401520716084872037775542148853858824653703348535758260683818855788940473743977654333110115281005739624016493769323653446244019967345281421012626277061496521502571310001611280525315830070280907505687629523238466037160130510240045319098195988410987896186976577954823667175299718821216287475293075901242436254244922466318350528359091658700621053667045186816077323047476447189600455015732582293666633018697615580678912692961395261533281619937861931754508076223283928711880263256658309569027194247152793307731950259903066956766114345926336317231326166082622235605075132407173700626673761257022935704487144562109719501934917970585963529024747320811997302386029730486976213822480729399392111125665559851982916776536618519783857732172538553263894689211461662911824490160184105348622776328378866306583933892401475599377149674052447128102164076033393315594122002632535180546216227711851532712281330174261858959422382128980146526056347209070564904883868564226843132282382655853821759876079303957123325825005047187136761759708938637605961615258036496227207174570863641057010453133354162304923545909923274930315564510947587062745827895149728752316926406875325375732711293134987583959378510740266248696842235904567703982631964692929354542080989856489465517158665080756006241708493033339048939996636329619868789336855969351690584530679594918626247773643073801750404086179616292275855927255553656045921674005536303268685115850303008629182913579953483914986703087523441806218188747240546640406418911215318495397969550906080075263275395642246493968274188772031413144291510559912839807229933258962789821186012878881212891503784757337443565934993765416287527254823866509071379946988521165010051603014559017204975298983190980715567462174027961170585843331433210078541604795608446146731201577955245442806307365984862388771733426774534810239375752626617984324088485922035957156186584829466456787271906573881343474846322644508760875580873581473584554042620250208141670303191514410049756796347628105279467965570084429076254066621148534351062293239405029174320102414405034792764598927392528981788931562393328084268349216609588991094313132953486398790576736167186260124215199880087634784773731332304709420810279336016080176505758279850097220698985670484862609410934067195599219139670937185385462263700096614226354507852458598751816860034003019661547729383001615415978414696773240771765702942341079170558446417865425235810258586835336258945261475049285860308650633126826392795679297468642637117302928519947289440173661572925573659261762993290482247477511104130633275086473841421401888740901925776516054343033542586241758056095764628835375579475083681327805771265242703535791486891964347311364675308702621194890501432898519110158837112210757990107403654778502998655952043583849091353798718364212313741896384120784652580054379406320904682325635082146081180081145026363800034436903397203222282668311433710903755683905794834012731178589524058221081417533565167872229659656159471413493700534992682934186399549659951007140582432926954762898181493411013995072368430308449251537573728459813712623505764908211090834933868590739939425337940912747411054766669365249909382188040023889989357714849054471981510798909990256423299132112610884313950803244063571197596478876594747156981672829436261314323351563840335174519940956344888788462283187459414606281375050174107144641302964243889345160006107302062127505548468903474318527148566830435826436335589792837085204845158809146165504587410773780717429991390831876263442871942134825923890013810503506362186088964247695150404373287324095199700683720880554436228866982868150279658400891928830683836855318093149531416176892543282958198031356662769071126537317547335109386509041495351061139089758808744987885499454302692356331407210801814527753469994577720965171553545812971454892324017725879454635169722417588300740556429093686213998723046114522877822468765759299257707224071507093907825640463891343583186122528772530733154101943249187123191067452157557188622729172334903792632638598441021714756675770951080552177543466302324965685698326695967248626396733471682468353872544778165129482506523893295717249860152972372948309533049631159546412775073765156731261969276413446182463320027320132200532138967789516356262094547837034189504046348863433536219331653155545233938136393225220101306494005135004827801115222991352980485727403278992229378237192173915652760560173385989953275512586708851119676925839789412552616614033525157726768732192890001153009190157272926425165343236377835567431235521725345738024925052160920281736175608068768009942508093317669065194573511683132375995865247649534777972018591366793650184374218656561606046192994126345347073040727782987930253396269539545591909062789745005391969027596316276870725436221973250296300524245083189067871409631354476777987745881596819091214055486168589850455178592962570240206518216276296460351076581532792730519433157730943909120218430289774978134400109450232523621408288592352594965026740838533072584115299119423357426997176916235333571934592979464886953667509500770258160707687582960686592516066751825638914401553962490804422165209861421775540467195984474803374578857729367695414100420904616590029587735729979146643717674588505119244414646159410507963028382100956282721943021336071569601949936682087805497867277172429283720101269916771431823514025680057185785761537725322904915816725649972827864636303977534902425692630329498815108613522149854046581272525172548553021029263885057809857328204288826043478897453599542478150567256639588429788961220448658897927001662420807189905729188204590493810379647101198642726168986272829672727046249617020136566848687533398857786805038878206093301885766645502314585326290650192179301357236179631677204825995910709320529164962698005942174033800587729465254592677646077290793283289897851175935550098151081971686249265743195986224568634020863617951374990258165413183598349935631384796559842086682164649927789109178252712001934251074525999198715927787677413561708048755612474425859391841865098082670006517570913017118060067232469585681447348575849057436860041103000545875271034498937291589944604896640707731098544630889980448223387105107468132445288491011918973695651868448051279692456296861467541668936869770749782891945949353663861958082168548067565436438636116497407199833282031545520418162789020793986434271606116478131640223128133956042549202571393869862705476701018099907826457644234480144991432678801452243011145812326508655980251183970977615462845453384912695732818600568918474144714839176556142918483996618265211148675385900196542691360741574544105586087635959552585662183067854167458577028830139266965698076025623935460324169976308969172458600205150949845463271632091874658398451984486975104113776980846559628483178117779641799895609984165338336464799698213845211844432908809131731019518738467277174272967209523418218643984249947589218613787704920453834967674423591474353935990504432812512890393242254241451044406417043858554980415795262604642016221855567901617869266397205219029245109599461095703784462661232530383463296118035093934040733962350182373554830233662139734210090767513614386824524100316629211936624410555691415858536386524656080718704799238366098852938569354496375329715009704193572691793339227457721769357384388308143242654510282396229226068694051320347835930736241682693170913185648162067973359027476610361457871545288158272043020300768406028053500434025721203647300258081267225933432058851794522489570367259658273040202834868638040020929133682596573056228207968263354278888389250202851337678195029884068577410013724985245828573125226760633587961306752176424633693969912480512691896846500611238839923967344509059102115065743327796989486490454294203373305388435072488476964919112073055569720700744346858262119114225572491267086208108543487268115608864833742992434429458196634455901644511766683290672443664359887452571892246081423196042237498986189825082444314921309104066964070685471657567051495065542361754056123291131966130294608443394596855960349285350584717241536112050067534405880796434190470003506070421437798149717629859027917923012550151943347857104956188110257673662968936044240120612868536937247442445964861097424447811314404408805738572861545175095258314350425750181905876091350676093564071274697493203515166518848288031043553699332049501589545935703301429366448460397130143105224347102641608323294091227911388813099481860012438404620737571384558257271903688560589008994914860748257859246537815279959972452389595819081439068830806392333583547575117231744351981989405568227329872020920405833595607247549600371552079507195297380913879681292572224244451892422184021562409515366851077515443703376855393853757279874192706488021448876702136184584780805439572258090593157963638595169459551626225288612107527938069194688440916315269747889141962570468137888803553610825153487281132715688971195128901001778341168950122365927180365836989261429998544308511877129836216807616155771710390423115742056875592701326641801479719349941182884696408814314919037848999833704358511961257272960046079919849669044638365746176739051315496634080794039185428606399368021809094015381213963547350539284014979392630835715155935978861383928076999183419625945736960621308820156622031606630379902879356736134161099401223323526756488505087311025573269291950808010983542853329869685386776187940509279727950669693027786565897441512470966069906720743802474778367640667243088621530516923710553441088795083541750600416459835939727540982966089297737006374334223424043569040297850519088298626397871530536977570331845021035332681591099957324668569463736048767952576619502426228913415043685000142071368800656981796200393868278633133208848858282162567956060306558626694255688354529098223059571518357271326195367485954257517383777742379346493142728988860941192435848096961078999505877933266810924975114868258243714972352073553053801257287061553628750624742967947552928438893357333857723782624670583810212946582519526955549634322235392729606189373733761759920888646599910659181946086784759734808427105884073381262511607317971371274941987436162528015617976796777950141175628107831550409754674839794633778659532779249047069206641266738348989099982881898667535918141558253888522245498693535357296729182554682886357017918540777521099013652419839876584547913194989083260066708916761883263557500905164079099659239270580871371452836290627539802799738704455490274973707256643154089016594754575683439628866451713447352094884077075276085007371487981624818756644403799175744897419156849744955639096317774215528388336311077091366201941787614009036976818398413461373319827924364379653570684796759139886176804755856441259935438900849632741334534291525805589855133494697378855997270777390129606721824808731673704381425540491868131553065701248525717238371576683069934433436915532981061295569193614155673334294381244397161717648794731775048027050531448233928446811431498282453951698984724890360326149427142343470855201018617316131221789579269362224109981346766955509391266829448030594608448950942257851922384982741297418072936657548101389211286957340073169602062871407109270311228785307447097221788099824211385471989602561594555257037744008750144521414505788464360194393469014521485560242056941665273644419178927666191108716678113319470892164876132981480426459082776641386673732462878607317277154264950470238180106767854861680721899660694439217557096912543433613653409653816554276701719105732727324072916451030995220084970680817936446235829499654766019262092039002914042321293262800710821187244620949874459987129716417774633498168077192581839406036545587054498383083879311792700464957831389620882484716068061495262172538277816539165294610694892186983964447839359849308808726669204576773215670468937948678330925644863791372577414638690414510353341483718248996552060847232333945412103695501919475076462264849923195906584867349486180744722283077061076842407406073166299383389384861617107645497422320642735194168768843813847286812988461595362477023847748923704101995175369555177520387927498262303503363549848129913454997732812645391807430788034106545178961354190771748766265037289159175619186946554349402457700842957455530958926799646470785263620775800490234537720970978157817967561166002274016907394795754960517750572579755419116110349272689183386579855944394642406414732486766768775475229487742364498930097634520275061172957769301312532931436342421407108473506421318316410591942078694407017573303808594468046637534805675407933911394788466585369337076827253600390578677978944881687328399875130883851872305939620577943898265711463990054954131301353326279906433415139034088445129629568582946072225982112506381439851145813928435140615154139154602838399345613931635948686180917167147186267414429265235305978372225492225678278541372263035266745971123461060537018520191777822330204935926075251812437666836960972466293268109334169553961159376071894568136059654328859420144145498529832814095596584150883452306768338269680285504691786961364896725374730259636080672557659021520477164160552361923599908010030798774434055616506904631019848479194593254378688096000191405890439462782812324788345486915112610932386180403625719461167388289834655347686301326531289577314683434223794069360978323804366969571279568921855155208690467790936971192468836069299092590110053595666976249526835103984284959260657421851859742201866281641423135413830186201487440326625379351127840527920531957717338547995240498118374973574074999406514559577726913647050144074130408894750780822349514642745344501425688075095034062938934022049306998218227255387714848302318716602296549800602591124106464616478642156773115197734833494425444566725970048006916421620226072266941914140910353648581842677006869603560683946356636937102514928505095461436373098582579372405115257952174947267194259208807467334785256059486486291130894623967275708990957768207011756527363384609428590045262871198020065581077643298569979083453443984973511224610121854707929480462196605496918139628925403316710457342033073046867753745542191037815129458474662217986314754716520538609260538498123013477011993056024873824077016694499334277546768967678107486760634463823206792015057718563868476613511543665787020774965845122124493711910796453398749357077115174487626032681910418840745858628115446461511150890094015127115494461037712171850361241485579382050150210882963702250071405253906823648516987467164517896274739271009076835531943726166730012095323063367612840283948590640367152979712875027247371385163897217202648502449270889379539958959211833492563998449588190728388979138622351618793955895083733221820665178373794393966522579241745289602024506405887691680192320553027800668720955326483725126862842616073721328512535865371457278522212189645706322545686059110406407639017864135142044246864407575000503494275631685895765875400339618186306665640507424747475290645560023133380221861729593665648835304144403744191596588656842426916980742194485188530017457498217092977938315769504673856336311380424482391473573411100479321060563895662996116078846287320513469870240727232452928613375954827542231274729588637167838081800390019329570205755323479680608418418447521522984728187433178009035741108871811156765418264704442290661840573782850035681698332553138650817556833746129124963615374069944754415680928661062567758016270722205548966444582366818230225603003288329728189844499644622178325399489144792196105353822227159866354606371274018504306734451375653176591592751491875801191021323088784668928200702638882571137689876101820989171236876972469964663353806584408444976809025219548212670611387728335357170156689196563642892318845626087874592790754295218292621549566321055625782260832411714592253930556643280005019738858990688319257711440430736122523100359547139221233572112391580605340583899133945394662406638087354701818296069207616306233416372169516741095249249719244008915484458958696999750509283219161005437425710441055854357817300655281014586544034251484855284682735594899189953561034853716204333775375991554940923686536210527211327278161053263931441025418461730351339836483041686017567338666414838251040783844982268191940274114970278112749560210168101014083603321082463208076108118205990134040718232513578870132970677109103192229319869354926711328157616638476404724662957734609377422044419134379237083870662328938135171060363699887589702679190598734191162348086621916641799526009006807317998931877010203697840477104160747584475726708291364244827084181235914623943262824350784934642081219345807553925601739652915855385087857365784663949725314916752822092288760416160962869736791893023599527728126955001235549520629378439756527146539576506022261301133502400387288690052489274358825527050796437806512241521949650714519818387912583551629821174259438239346221002511504485562931411121420799571101574639849543605428464953527698631742540718822924622880878073893794683460328394490086872053238508395768472295688502056738091398651091734225040997326487691100738791436976569699521146042621672586581887653403831225217243171292073203003841965346038197790890079016496461660799809931988939241391431315198902590773745195634478560828918622124076635677478393583463114715512342734886688061527911699577425476880208093521908175801536981585136214167034214095403092116036826609462687669060375705971340129187087816278161226634425626485812684916370144218441554596016398977422248562154682747226494314779211751988414634412308585920359638075595917658031949260811549424077041900382615518705573740091650179111237658198109311531856472825534603300907280962385608887348189024558104197591331062684991514243455118437409170287155723899623782676291375550713367742249073521048391802332476669051025128836727419128879293418012720818967382622336929465412571879339124626895740340075041855278084796771859042063689312968994691867604618829569370880925401591152192049302221286211627590272382865563440416314116575000133241504554155740121122477303776399832979201121163154844789065897970199544187119968800677602484213096382609028316772891044920044274083782864417302624202521880890116071690347937154481812020410447513240460263342683097812960996135764570980387154039920188230231762986885050333057214293373873248443163488264085694766677331195855476659214995856544717847201025848101167807510811823318968479559394399032081159140272904046833870604077121969822103147557914779263629803176458909832751049652043980964346127112250049346466248894993812792187549406244679736026801516862029078685354816238554027814219702012261094774905863463445158796526694242392050943537602569467964574581622536488197486017582739691240834826020925682751357443836887945868867183141732447735606077925117921224396226499894499825554516861832773443609330694793858567040243239645428148583531330635627287411079006497191857038133462804821220985341239223151464800694320610533940473643127614704978758583517779610238397912840368122975750121379178093318990801283926792592724207536959892057662932762386129212571448650639242117924598893517200906283074836512461256490369996579330324974138126739572756846877090406798386379449984625278403069511718837639841542485566015599693166309492069998834429323282386482200086239388946676883125260065724520380354598172748938690804660214846941649036553425785637433971904552180940941263308093300156582347148094410005140828286492560171319070284427714010800778124910325967280333643337424536550820781189001424280146768055772502184459846533505170624928102252081851135647235285163019883965012826780987852280514963684457366205812638654425997286421048761000798951620208564790762487683052709669106265146373645495588300477531651089651709696123483608042115426537457327798889574545875027208934342313129332959223819528217905476867977485798606134854998073181629392095575448072137830413561171331402390917326592392614652957866131515349965823972111763196571868681533684151960637329958073005567841672013279353297522089973812790862450564173239631485430440535299336384861033076734464046287032988143599776330866427781601515257062035251277741332881273155222091172538866083148043025897349481770937160873050423263320365361353497046144772808239194887349437483481917986437588498287498156245825211391927519702992102480361066472237205936673805038550054669154161924611496582702446870207909713050380013038324797166764610959447505883610721271948732603857482757555719758570654873719342942910734699121953715619102979430922232269260712305252593590673730029528809332457848559977228910023518769141864599560975788475588170677078583141243288419696165634411889771593688069961337649303215635776291390848485320364932846828798618171856801564614884272757601575020007467627341411281809393511130276122968369869681695106121093935451999321013886600186290862259314148056469466055930180046660627635812381065371198260185832631201795491577782401672475880395439687440315708084055746346589886100206460907555411830039341433124358306863192934880929302706549686522157526423700596892669711038538238180502609285191585541317490053492016688512015724830049905815904098209340701874580401090061077255749135703034978588529091627963678690022301583194273884420166476382654493421572845850602497768546452393547322031506302584087879557626619228224789146345419362150272031530969848316337920125055354810344898624747198143806452613747130540338501475310173223647282449639342722141729939792467624561144333491512210943639683276785734858371071535379113908208783504686754511745901635887667747343147977634539987476167556156835163013380519027663270538616652032342621225346820960871766010007914080880516379225546106092569810297808768313288576412931408584108520073971902284738476540437634867452199907003174495815199860125434129393637199383776704457105236320799311139906155576961520639723360105144550940834431248248136501405488383700515238828956607473900129402087762969395347909164789695253865215836509622681234607725951698164304923240188209255930256235151344067433419996397789168775189138637356217103424868055162660027013777092927952522279684919509265658140766395675474507241244705920525387974289527106022230302105108196225535918899495618829847884009212998119321187430329609235097888825577120270800503053109470355118134187323559961639400721118297750755214610915437684345791255181774721988505207586036661640457038752690076036840315971275704387153384642211503865329823169597977370949784587807745326198557600187661697522915031830968624430212256087294626030142762258265295686340733447405063369363295299952759554097664852042425753806487330245296679433833816352123094895386732806570077032658688887989465615509593703088903533223798529442677992811689757948498622118080538113884956588645587155519745328992085698892680750978824303504312755738412079158406078612645299302801495543444209439321594333899221365090015492450642903286659468014830770529802113413777702058444389554223806399630810619596525232248245519712357692075164568990720814256439717494336567220215993585808013584333319210031983884353881512164033774350916544541060269855367745690047798774784657429101336144896385459726840026009253675245822788757904237821616084273999347669926353019589789053531763328686816765260706429953023951584088947590040408767173744243638526681602508654562784113200479094150118756554324212138859646149353723180757407115960488451596782927954577189597000976862237185338229339629595593871242689741550293422187111307429319528740479302569051501001447355718158524251215741901700143666925181565164975098900948092756993227495878132405699784713910331293928556871118038782508108579038049060658819913029828186675167493486201075699088576232525529930015708262297117698601079051931029775270792649605258617767111587476020001424157701338776423540901540809345579541071407199555476310364207991224451268563645122829063858679312142038655885842664787409391107573934876699498011317265023174431286492053828238483482690516985755064981848735081424190221944718748522997282930943189212804643818299828863708840513782848427492731272316203013338574456334084766898725824904657421859902153745521298033779585407144793652319046019122674704587089826334908409249664384537677270832220467397795967887858011725511274334761827224330777063172526627496699058717635224856696723421200151158952981191964589973973462202516907611094277814215996750959220032540369117429532358721659197242756620859206688702757508951744697588483786270583279632712703118754423603924184501775191246141025794927517452969429865717282536102020915301995814050274437281262741341924952700658670707279058101587354848832903451100935573111655737980586458979926023208910752164577548565454643246232275891622040173272522060172039911171640031636474603222119520230991590823849518207059857546761098588563835988518157711615184898762761278783163459562362531842680447048882680837787514270049154013644244904518395742117860229353383153708487028364871804212180794279990598919557564321035515611659611990287944569872697674332420268846416928973317339712539027636188649119151869696892439948315382910787738157773417058263013460744064822367160744487342604486604229963027865793127707749686018813503668423273771689758670095380897346842119993902392971640313690146664609049802943793389052159165349513244324353216685449793361525340921982391624842650253488140239801980270854292303864366799207520943417527903909484545399784960841842844897268973006762178397596778552968292220030881741339489933647151110473447797793013898991949482083396182196546295378517277591629077960715286545580726861186741921694946994278302437586876716180995014035418370060929312795271679281360514700931295583965888783041191810954030111794680155758798633799749045920938221367187025322032041610349395368715568951877082006668447676485695409690810082426014563833845922171015877197803314352509543440766615735818558294399962640433985370536931423893872012365432105662390397699787189924842347610114500810614085908310922452047864603858619041344938282906106988550514512079037794245090489430066952833809905638975525542395244276478504889056585874889794803571905312965185391647660094731520266604408937856796793398217014712903728801326579393395344480695472922877462784465292361177716597621334900192559134246797392643769542984669784081599310863461715235822210898332104570313692993293254063811711217958802657379136638307946514802992905615462133019611293391965911825174960939826720588699495767278358673433178454761884764887959967482356652462248812064985172816409897388900250848386729356426425673372888989216387076756631275397335417202672561229147035040496364743927855650273487609901886396461739804713337819893851773933773904096526848810722272123766316824336463431620840878120878036679451964425619488427023694828941320106665987347515755644662278953064796208111492602641725546329704962180780586217589060027052259442729048044917787906725759177025933309742490149319058003251485594420606124531246791834272454664937363856873128829252707999447984813455291628231073473094464162765387738729368949031032827137142862740421628046980638752650643500827702209149342069423451446645586916260141634596998457533190396827647031634164205715389948911686955296339077457129195048246505626220995348152836076848460337996114501628561113221058423019750519738771890192407499896938052211772878380895806129686011053150125813868468074113812643975675264908713629323388214319323516045427436577433090638504720957284438406909230045232166579004347964879283628843280509499778623073296628240227333293458387266980992836857504018864240823191431612873221664189808079271215813709699655168557285998144464944113289074129941786865528285033076055511022552412898992247487471231388639560513976664871068643734414547624896573656553018774907902301925183769722161903038523631586710803386883948248776905055488660311503554962676974036178413732960610361678424328739655825493713863834865855349928411333269768568505385837843907036995530283248289273772318774425610496431864711528977725188140812239115706846957224920241014397907963706203440153497460092094539447383772744961186610046820290858050159558407231496003191504984002718121195300859184825654029446464193449277590315671446021153230457930643690222083047002930906587043191120629979073556469967371171074388483070182794253782140311950762517097625722042163353051110777678494819024222055115104396155113314972938286637598189356738141008886376196929892950679697358005100009635110696036910495383216757450214472747435191993791970363488852215704155813247332168934698994896945098491006482265021552540401390745505478517043707855444660927581506850029368378397395295878309280609846377875184427068537061336312060524677403514616937843377894058422776734000613761955529491542713469407566758521004821006859630553920260300711494615377458943617089893342978080609430592019827034684232271288850860185105464317287309891209367794867229987435069185803950663327494540014618676757302052654633727330305381237893973422110496961651067910728714259616065236208937750016708847663134022066425646934142383391024923765557396790365480725900947609955946369976310750069794884373960275036653577930391160680123484200779967357487421251931192263935860783061257469553205137350252496059323992290720737703585922579680794492196194041935168224993634136861488829811149005684356814518876143714239371253183810763475553490624901220494350164359712173334225127307536831345603402392326848245758318974982522938443096335063243411633824848518287812706655117228481572929895061544830829029155808304826257258692899907583345818535439097073809617031352831208686193848308379230392681028123677682737707696274173061813436413717510155202371389597551221371214444167321637622391258888935015033053627291122498588450638549064091877080782443145547142188424061434213571385521674771926434125358016238114120816400904998463132067804283125326112461286489880361645941784795621521620596386850349706634458549900688475907628185912556385925612171563624210608996682266466274308314484868180286145841392154165714017941700138320526518330398656419289772313844886500157609700163010608130525409833210361533771736988017647303816313443970094925635510687164707151834854362729484315493841579099966214899226617136980908855570702310564690622709149769178447005244913557724968766732604518528091956594576866614553105784353561392862000462990284467116441536362642338464475072263073956627913219705689572513326079110715519066516814283374524518876917808284065183670923127401747419891862907015804290203820100783642267037729389313363409086729772368334076857974583453218992903060187255970707465909325136921515806182667688252816961571310445209527220319238438401413684207942577182114550259620890766146984681391506441729303763882287623205466022312431198880385260408054340637752511182720023179710659766210825658033353270195532441380320902472122595748418876358901167020066269488867917717686443550473664872854066761456028316973271156284657815271365542406940157939602743223055542287839165023216440093777783034465749315066859314599805463756792897502495748933734884584478817028382366273285042314026720679335162512722734892342069837043490617551136127084183722141091718482637665859841877515618899393867537008578861801734684624842903183961695422341204323236757424749694949373803845452441238330759019975804018068850676705856479821728150219551735010007518106870102964283584132622478323358254766560883401936735420915098316240038610010771522072784794139362944907451227730874498793219581559687819579924535652785396680923588405260142925557482260771316192298715329280991352317621920166552368685821761133116407190868266729127065806016866963733711353517926957792139386650010271113184149788904371313729079227198012822389895779934726399562528573108018568943035696274662678040747204515966225414342634403327706270458176667208341430470806800859861775077700064524531164487105434409687589535663939793960563543114708882493046270524067424664537010295060099993422422978477862801595301244133103236186248505379725445205106131753030305680121556828080719542679965148511103972553160070689808590992492171788182877958279805973673098613071219395284344917545737477419753191222729019391654823337810668358357297800134765616542801360752663773200701197543136041885387496752329663898999778332371773880892367515665998492703060331127100179239125850617433664182272193647569002815991738606521942196978885540495831372767691109715776727340521720914624081706007206128961413075099365924913504133307526730602860104440316807710208969670580081650131927049046485696737328447983250425276224983525551338763772489893550051057813048960478913216917033754918474201786623596005405892296850579875859643182159782326101260075177045064631791534505103217926671703506376953935822553549844825273029413338796726312576573394622529547948124782844699482771904848727506485786032257170966936727913377704935148668284764382307748211460983402998191440902089786810042064393894749198195218418742595829130371587350369741103594332576243354934773206946579120094693573514756581908178028885870029914818690793635515765736478371146225897279591138343162824543614057783939700549011560957682521004651400802985600254268394772560620582918249007981961236498503682380238923606924184827727644050896019884645502408908063624008540668758478801393587055461819360488493449409519963034540544015307902872662631195632346873363415665548941850471671055099014100804523775218365260562183157944486670836045539583182506038844216022049758114360455167676332927645885480948646686109415817377380537978968419524739696610022692180107554104874039316165972764681966255072047754489929259316089667154184240549539058844489101672568676495532172369554812481546704613112127159977439823412928412007520483830791477089774727225459059546242511115105556300386673562453240133152770626194630787203265026404630094932071798112679825196601429887327269131816922788827647804908850382468412598409943735341550681922795803806463485476502653351277168199845282943350949332867427838035734092537257962878366154804636123903296677926512958425591172656405234892593883790882114528015142342405944707763556202705244697325553649125768919964567758223933463778751054096748231838465380839762012047748290309539944720495127490862193424917989868782168792744255067616019946650256808212809667597798457745998075157140961185012753968810135456512380565116130021281823986434759389190174479717036909899937961326727106251853154602889490736977673221367979246501470229581081527610741459477400722180745120969533534154428077952382003343764466158227949489364805225401017323699122937462615247814534855804068522735925113335030764388852416222655039672537333375687182094786037020306771912401329208557277280582027214973617308789353972125340884892634545898550942892339222184114813943634178693205362776823264924998756163742234120488439043905106426474534808968441803678937564156414644928016478862113356351509610731111747955886667622790600829842617496110485958108930249876093941804376977734229039601853829375933236412130400347246946282848303435544122804922290224072873426367688579579953581665296804977543703966064419982753919131433207572654757594298668470097644061366928887607326894535971511470215848450327839701838397901250007515865020419452113386665748174109011006541994220453021767291203824019104646584856478773062487563775964371180864936489650482555135036923059021177829927209701279819859694945815538536464970984320385795113073442039255491356312642404875907226618462316166380495887308292856106291627898842964341992493750255735664988737261689420271149969247965532458056451769478363335220040977204096325626775422912167650191733801380628201335552463220773247529380492134220633633066440709501926400959925670714458474166591076312135181954656440779598503083958012887629102309709742717937551528938977506812469541977972390893598544584403361673785597817323503773069999190651401549483689713046388747456890075317208681568547626618333806551914631846095968815228319800238234149641436880076521961442645965661486739264036359845105478355196351476120205095366904784068340515118294889615921836434685560326287517858380087838481986840289474126545924888574412241131859190343851671332477464235438200179575128086774048682845792217970980640230920763513088056405510112912641222210956149730040305722053782665183508152941264199495608261843489763051812525912509609653835496485384299127001251790581529559808637267781459162826511538838053701312361168191744966424115642770902993979302443873184489224383217905819341046616554257119604044342417641148986059437007527176346997368744658806301040785345458078397269331995191462786048811135670060049426978157328144116728798111673937728850753394452424087659095351929164915186406779880209782259395786043180112995461629461222985750627825243903682047341528650972785780379398028151831192404369071586993251145441813070051812824055407581353038487848353626367748153985034214768216391553764416988945713933591683281608646156895278231453234571450869855288359408347156166121222266971397801789817533233901479489872512219558840018415241546087276408394547776870940760687245257303022176642517136649140068048708019688849445360722024532592666822442820151163902417634277396846244560985811121067987361751233198451111106454052775147758822985813415267971331338138522741093694149121694041653867032748264656763177402621378640322942339939937756476221371134907532762123188728837889696154765757302818463832063139724357256229242005944720206878839389292656328874625665959449255574397580386551164752357297831278359851493878074296182927322280054190008961183948469889006838149527311638731373619441330567857257126477605253886865009090259948706762356927411508425843641551165471583796974899302012990692894691402984689271611774686239747120810138978710606132082219268916822576572082967037533945646044296327074206377550868548187388565037667921689262430417344677670624300065169739477735298090999141770148697724137011269029245979079996619265814788820429737502591755782199002728284541217686809673118267376148354336547320063330197798437831360905511567973471097635255955447397288399325542136217686165921394398548604090774404552167771577810869434596016486986022558129438395291880799549410825958675645857938143516043475167434300113330532382442134587202923051429606741653717284190624482734923596050183472573254503410122256507437598598074722895464358450219414432252512640421567643360375460793402670744512378211049862719371726014342600192346818274418908746076761412630666271983021374569927497127340335283776463793653330775222148167044199159459443955905990542467647584845307864799622571797387961012734776741294389556943594584150895891934156022717544690776602712004386017319222542445559576366378632896079570390983224768279967990343639285329648389660121160443940931015058982104005572119573347210246690228529393289866790578995733925802178361973671541669494608886808602310267680118019836764167507752329385321324547925724557481595001570725752038904497659574133876516415833570484664560266743556233035495854039821310545313788395629597340352692466908011553090135226362976036679909894845673839938667898775524437469764434683836118020696543741120246235700015003266620277651045941012302932863537917510300673500579075854739879764881519141624776555847701852226540467145079646546887523845645919756657959883350240550342020433233722994799718544700469054483522335385164745721017332442790492909676507099542839497630183775313849007372341801815227634879088829210781090938998306340552476076712054901212545500977623679243429955578384479555054555997010403430266568584633675299322878288920825774154286329947547663028347465729093299481521696697343596861526751977709212317225065598690463618821890996492675132265452114423704449574024448626915776549623749559998525487195916168741305915676569873028749197338569623690933766202601876204212334192972206259232439037395548700079741160295172989378665415903022151502613890914577711987030122459810597660069047678268147604678216813092049793363361926054189191662922962628147027553949396146063392520181215517908686789515374336545516330969768334055163735068266708774368626798822156586982261159250978672182978502962886584454070618127883828962486444692267293200199323975513044513260116371139859484284122875825963286358847533167617334978942722544300583149149708483746085811444145201562556136077144617114109735057262825332688569709434027394526669213822782187224573264395525882562157735848064336146632351238588392652989049599389948265853148398800254813164846500550499741362669407820578107832464450280023495297544752321170531115816116859909774533188267973416081458609644137607914735491342799817558438142321708988432724728558722972349650676803382055654430579995048807873543860111603924331211700591868304050679405955280819195641542927299865125775991476667901731277640241572980754239236119220906677030272730902046413452029306286811370693936699421160493891491018135433219321832333321272503640630276861501496942186345122802325869283200163999657780424252259291876626180606861830079905836414952622084000866851178853148004304659223794451088594640724495929336303176917928832654464495469053225420093811566642239881362069207611743379574472588207551113452153126622610485357413642726009734752453018164954533746652519443323385256475996996321356045362361807463822139480438906175642104376273119934163259156553974603666604059022698393571324499362503943101418428240425368961498180252118666713756059077521015780813599982613273267153228604191871405190191385338149696454396801374449275130227292674664135841195108181797381447510348525421991711555035828744051821614320938373125234184380274039136048293158461992998306232509779480452377783779078859570616301941310126463762600063793658623810781072753736405834668509184005592359847732610444736874378458447638667409785814979173816987726517166815966178049778911455892078512791364405356612757665758438861860094383316274610219673904664205734616349414810896357540608326987607699515230106246441933153214573600568774603158213932423130090379787815040473257734286581463211448396478049568496088868442129664108081123304124255137716805746859379088428868981104006641198017237484535267798115275598296913669132334083128425744429619166185818987228528075060888277852247963990090376492976479849578944170407922374132393936048464401326196191363863366676931505353741623135003777846097145914280627256559138449519724242388599591939392070522007086223695392988493593638353026898988393366417753897391043676527568931052312338584808246731905200960984190071980891769553298641636674082543824773470564725937090180568403671207196140321479717868414790012430287172656188071908156665765766018276955357985600840704277286669977738395772359638636321707323860131704123150372577050978312813073754833813528707575343154944488709014640309045070041684505901121874654911873272364047341750541470371361741656133139060635913290947119166025667936270449556374461919549977735813562518290165497918410593869771411715955580619060376391556913923386497299495129894073505744207572218466342198041645321632799566395992862353356471230216777468001131946378153737400099435565108781470887007377368079112782960168512922376040765261181598802162628735900269684636245183593116247057699001272191129115325389931446395743072646306922858737427551579918460259146073994728324390900815258271406310598080131853535355192521577036627499770369740458039079986589307259821707427445242673792095645433450860457126959875664459446867479407362431035898538302259538135213058462355969277304904636457011828124537183601218881405399950839523099186791040746317380705246318134325753942725954738062913915709122199053854287549880428395496130395154773982630858104960916647507690118915180981677027620020016200356613168295342947144588133814334252018608679077750269370149152184004837034565369921508428944012187249122992121301748913567600549791780217000158260435811323165866031330490008785503756906623841615320166892389336765013596489660804782535400434576763528492655602406570398981688727307982798564296685729459425095443769659572758055324071664674453268270816738314526977301674792253922771019503129954847901888654016142503547922868778317616247518395154368945161068517443667310829111302375794778905542045829443323456787830708982753216958019508469398444449620675086723501852737859040698393182504786203977141874765392657833111843446383913884723260491583535508422628119911321143109643785597556957634207886338370044201866244795933532232197028768675660917190853333729480115320638963685960110153020697138518697211519067884014135252955835659036137168808896681346416783248088803868317094083651525735025718552682190870790179597891362663132427219265700171773685657570012508225567131821288750349812301354147441548386830934625838778750989101108322237230566926090587710288621693796435890522960956101592241970683087799721375263020921179187321465974081691868430997118851658817102551899253998745789640815558377035977238953967905825309019591381366570038448542918825795965674642242800228238354152275247551734560686711222065816327944231716794490369104540333437212741284734853830458750078969474240864955333034698673564730240065632457215924107921384906027227557404182217594178249837227555546228672095815648163397227615263884188701894769484097326339944431760777252403884316399960892878684479636493902025694393806775737498513654481745854941488724620302040713837910438002879776077873159729004631823666681385499192384223163770207411528142401387256200033243609522728546516938519442834482769256132771494821831616811039264060605490084394574965200080246268344123970544647553728017917389949338648267113559780401785539609981437961671251719827034560796541805421043884484520101980483340442824610672423128478311068759934662551000402696354119826288392549401037437974113018953987607068957386623039056258711446344875221855634458466835842071973585518296606616092462094886187025897801634001564152841547306544649797238763061744421457062422167622196012793898439883280297763299743098946898459218322291536263431899079090558066936664622979268363597072132064089662912267661928101275757648960538011079536745161352845470386575607238630706360054197422544980670066967222586756708288971583021762963680402087721132337139796882962862018073405988604017317335540826550850608511220722162029770156728158113317344311347604954409131161841148574380749264851433267899850028820357838268222696152927124066316954968928148333748540700095459678257245592690838307473871963451600580692021351774228237358186365104670442538895456955038589112192810711831450029808236868294164451812837387288114366147517685740828737041520471021618264417302419190088330112738435586312771602332439402578480955011142935949195262672636156045890232736744509058176378086517210689465320689484548307521799315395141877356723133693584718626688389734858961561610529925983777453897283813502459835979921314574914048796951359384491685928740012096224576764100288420190710890568993298266566368492666723579360827253344375666718108559743268209318135295001737434202255236801081165706812229749797555942414558923228601761338679957864498264668062382382417591934866464499671764566973394370928397369269970607695961172354437283180067991681943320504401180075781168179918869304785327143087336837244049139694411265136963528536922647991517862132860465650871093144432301305990901733400218826295447348254484865866973414506102110077507564598013747675288412215780095134176572527187860406056153790927719699820911753422250466864110935141093880859513601905342469874485789153128523923078008984999585771902447680266423427044309800398262277536905246759667845761147907632293647063467310936863720581504834918882982443487423904967012705090871169126323244795163222552686093754655439783789907005654835408211325894560205765619133408526973163353293534123627264177181312263504583893913266325512579488586748634897991857551992819921789573893975803888193993253044672098013065176895311690371395062014321087469063793265748355231270813333512824919786082457033675726254400561895028509355956966321988369306366385366386675503917555405687357931492974603509875570660444219783289348080059873518554504996782893518706392706116925474784968532215337662312711524386602422742502020474693699297556905000261792283569829040071547106345719585800257878985629268308279633266229859966563435004739724136416101204601337705817162660721863949986421030205475488074029171468215602335946880871564794085078786703777149652014313017444785414553857486245822761390737620381874710648936257539475903800103875885194100894909365898065049702374247033025925331075735489930824671921153453038539543024507498106432141542766333152519431794169777146235587840420207642243175434694953466883766437717464628209963323374197450231167272418120323489487306922119439829867554451040681301110805695725995174061115593202878825740169452458510682458736393665471506857324524802565558471474499838751154102815380798049408061392721562463071034842295438697028040381292632617430279850934693511807633138593255879309151304850567069156481497988805209583826707894225977334312079832270099875521608638179143488525974372901485518855310467016526217104062686331538906767573320117781786256024613939295508804067219545796578097284838794400892585110579017633635685685650340383800660249744187817804726686630218944447787319697983551065813416968826748913970293601970618517577377332488457646794750316849533529435351910972387512970131417249704028103708625948185270056817312949333580968704310399598143414691891865662200107146978827055309426015428793028856300247642490629258330636461198429481653991664315736918732060016045352687384781013160349361675218817462726838384753281926153351313423551133086125331201129400460634267984105286025968234018258622088243077471621653411696349188426043808509382322383159550824683641355238970302926872265899258105475510469627565572283200634183748466972310665470441813925654828474098713286349355942862280787629464546708313757390037412781282951617654371597870681775426177558440650570445750499392650054652657806567766730233148721985818213106563826492938412116951164036792795212353450494805835619089515800709809231789254084757943077131447041394947800254577561318987742719463025928506919378581212236148973118051106331330657837580887693423236735818468320219515582252735517211603122707897571444852946635715621419578100527039287735010636372968213641187464817870078934934465174152187576110339986814652294493557528446977093316385704942843907493502742992690575347067877386003781005264715309727441168004336348805160019993337953714019933141435631398005315458720535321709979890298913879330178827579991448525719132775807237005636952134077797189544213007474635829023459346776237166634372875326766954986491909472608456743578698552427613752946648032606977550177517746879394825747544946554722350942610196887142322896745072615401222943722002406289525773415665536703728783130906860073147399737532660848283764215477113094292110321189664548245742013563990788732340324511017792736551602497814019214775457900160129718674303735944291468540861847959656289473198922272701065732534387172116658017216342196590670576205204506543160184199799395541195462602837635377863103938475402492672983151381872568222066187950747427214037499949729446699270619478096439224155598632228582688292760885280000141094555870603957350889216665838816326899229560049760019292043206592846997716861085542201321823526107790713989609105758184618999897047438144355199454422595913976488042397512319053228207620879673162002164945334158400717259784105618646229971466536205489656130830232647684025486081615293802252437421764231806528754106019352809548525791086002530171236474523312452111531559591310627797064427725280161446009304925495246565813848360971862754548521764658946636163393327328484063147372770894576186279900293642524228535859686490319560277265738058365818283737823176492431118751439439216297682947454099884919600753411507029669893707153752613271725715720115142776003161045117594689227945773015026086140330650140474965330110360976652299220079767931834498593233001507149714115320904348696825120513870876929451826991917480386880929135802983031944346323594102337112848842048504773015154986421552530492021315807333158653803800446918988513957342924281803348617461223073807026946341518011707812585155348201249995862171814854331599299778425005180739844439136924494949945773431269602738369573306036196847713874749821842193200013343931426431071699259686536658589496974352566829124771914128253857076462493918717100391868103725012486157892048761019904885117793337869768039743043391743194868358867413351328643636779692144943192298381012840289406815332810965303228437291472080330095281566432943241506993047180244140293441930457633808289308461477077995798125021195323533309734181361030043758261405134440477499424122833918878897372523684254342565402622458302232566261176925146147173761111325275687979951377386490192930187118681791309026053213876038575666532022204127846440762265174776435779616745026688420665460599807011166097586875863217948607934897595224910149157452620575499516589546750717690448435052285037834747733806234683326455405467596508684851344560763066712350010802258365136561341241449690271336684746011504114576456094801011532783841512942936231951500093512436801736171253948989106319023879959793719263175136933002584003206435381041814364015901670740437824955959989017219940991782679157763975636189596551932417473767713886175516534118972609319525499674461958587927613531520946203477680940672415600947946497366707655356306364823677319824351358738019758561600424338117859549879548994708008385049391046942695477642264975376886837078341297219141765589808062267854031482697117585728083555664406861079373611055914183089740540178995990042697494602506621620034038544765434806435650618869838627135649407576374341167987613318660678857701995943168273826086941556580047465668037276702106459066568296713046954235331788323917736338338849531586273159709490957568526602508869796847176707658793172023788383801467917696001897347738405808214419975424654640873131647105878131666101459172891276737870751072551318567134780001817320347316706547027486264264872307030003611600902126573992386318198113068327096706617087479450299425857005523336957482778183688007120888943625543283045294543362018701274854158092873994060743713428313245791136871822433740100964087665829351864782605689507118896689424311593021574420950222463986679446474203797493673453735803131636450312647707941425483286256229874742572551414132087285921061057893018069044441382488688514521761742165790579553291257066043021928433906231380665903678429997876828971931158110226229492179145283010004484009671333492058287769499973800238470749367904118009280607075866460222614312961745724987631066176681706351632949000184347440068283089119153662079300388079530815320320559597349184737701280159178418546887315110412438991560111464658015275108588198655943984747780058692828452222264966245347821018392175348445338575229924130239500963252673030178566589685360207824306935336120268396046529996327804159333529345969997500748757351255520918597414987952376125079606455470816432496826272171190066822957153522504826734467304736472736401717412895880313857184996748935228519688141552682284701609973984453897678089578492856685253329881533263353167989183522908291431024702262974579056718311723758949632479064969087405320369910330833128591293237476957103726984335557973852994140702618949519346648777240755781503834724605747798608113294136334374279150307977795821534820113653083523193305988813363446279976028474241703078768821382829569723531541907880977278635420026292811030857942512427014593879669563645411496532910544035927975592375081571467968982012530911775127110563866542261799547513978919259356083964504612569110578618524522103243376975346796907881223527037726377639311570737445073471862051177566394534536173535750461846630043110852911374661266394587219104996179718718390493984063884273778984594523634378284975246781864882963407470334721296095610051435980714060407536723530799813866065986862357351850093431894950281807059627827107813880280182798612243498414032974683270499322348828895660834503428231647608526811268135542855798048871873103034638468391458846385896894986847003620787512731989555276518679633208764292623676355088554756805436878389541899383840692983863978869893603347515779432173037719388387378738754002639516548832857802573152924686045651571961311182058601493483778675772214686359815482934786569555700684877089832838182716278609275225449916652280647370293720762876051102594484096390258544352162184778934949831815529983801118586302601962586756757007682065944657411792096513816086721196590337034884920184363911115225623922688905272850243115677262625175287955463867077300832187840656590359139422478080034540248519455459763143648113436832416332269903054749195376872192743829407809260525609015361848975741536923041942429919706412533241562826258775095513641801859177774651068380588273425101152648058978070080208913129127033819783995828946270662674226044819296156368462190566889099854067620416335436110841264047490391500679727572509192843260677823303379241079630650628504250246519976477011197375550952311604159662588100452055130089821749995776192568997837665388306253532649197072184561902212716907863033964369598415738476845913374833392312505110944832915447059653039541090632277175337226986021945517615713002863096664963447987608034145249344386001150348108466088773752103059132281668395389924180292426952872020739593744329585388726420617843926219120756815511165665382432335995484263653712405893405033289251671226412385927391172338447428877854985650072473341584419098445494899501027627159969550116324450710278151846617828511380746252646869362050063586759723518765506997082077523594525879936487719813256909541354094105522140608436110438055020760418695679128412280038811872977164391513970364690456973774989655821934373877474707869411168006877048427491557775819403901165061648475014601115527622443407870390255779658014835400868628126782760077658795392299252394530866874851972067312711957072392535667850373775045231923967030812017877900439387229930671372487239029600531291139160613298648429288711716843517862486196573490385520487356744656330923800267620935197565852987643890682732018315810819938910876593783036559531706810550200996051137543061721645341056412213212165044365629951617615362093356533916045767780752178336366802627796046929343823359706022654785475270043261427046600425866619687050905725195332604459827238383859094934244984000888417079958248892778533853354898233414518989766509297821207599102569873683913998121355869404402426929398024075974167523165888879548841454986752131505161336826483078618885220325911283675679463147365526460031493246109976650979517758482401914662505562758886540017549473511381213779281790571201423691689644420803549812035487526371767622671316152147862581746571827691439551422664898283115781786036078810476095839618178303943721629443550509754215810643960488857207086726829486462354443586242902594140094995803355208887141754596632085366844246102120144352384831630782127597593600750387966347574823636264417828400223457645960614706077251891282345139656645012495293024943264572468700495826548314667773953828635971946052255189730160467964444791916405629508151924564098484010572904195666262384108165197644069604146840134442000074967404556538333370165626857569310044272661947817861487152589609777680404777091814605061972588592460324786363404173920092807523207562920857606052712861434888168846984712972093029130956695732133789408257854044689019861028622585239017849086299604796932804787967570050331978613178501446623313717293651878352372207068467374043295725661361461549135455157997671226445865609443241051484883983891212966003622683492858328204920712905010174410563493385939919332125517143438011269400440952274554155803232415282102928035914519127571450740336009869505018978039251438068693689805450936883423018484509987296966394203575831714855634672510897593665981343490253148356463467116735740791389580427320091998060462438247585608846567387941219620201692494377756913059203831188669969640323976459812807505101573926652168116482299780875126527860005266223288829709229532163716764638561279435221339897120729219976827468072548586944363286385308783038793179496463657888373691881450793671052007145155315870274677033208244326250567926767906824521571430855493605857697278141883304919852017301526611413391241525968047780973072511148780150523855070948589268171742813007330776121905032249555803644479002265733950476075504855393023905016010635533193224814659160230482802688436084993020874032573346361969755712083030976077337368279498476426979585277769883172318653134947185912053077046487584880908186370815132088095192208400771633958515047569962879739418180775341255715852495039548909574107902493994251622274387082960834953472852625527579813358787776111575959895705397056072089158473279606994543304701477342847369947409669045293261808007704780775164084615708501955171378931756327675365677382593157483923300569066918664693736274950222884661414019843297097045586173669715759583978846688974994068140334829369986157828785728158910109969310707394992030825831549513411667666624459998007871516988882082669653482529780988672533487538614354980132056707928066915709574335384971669767277611608796643215157914842793515231055718414502676525228353446147483961762960817829950632994361626597032625012356069732311251543699290755738597192776549232886528596020009446912442358625752496984119187037435230159552366648275953710617975815631008740470135843791742212698291861839395861144265980678701704128195897077450981242659294021077076363515888404629963516087911673690709441724364135849380947432522822348541934963596663855990205860596861477349744411029789584075214466579229467688408067667287699970642229180337844930746893517739861732441736267432060859789752555198727622732443853865268772575539201959147934445055650242590121675292533090686787832888019746826633310290568442431787736816830516215231274952219181658840513554670469816448744427247792455295086783474218307084395053901403947067183614636190963482594024276502920730653233093323115597556456713956873140030875863716134639795291297346030357806373486096486630363345361112295419758846659001671297750176656050539187665995395479550111526482400732836316642125948086052676961230383804273717558540574422203578639301312848189909227353625408592565973548853143039441377136731833469647071755515093794729525415556056978638313268375162619695714381738033488993308960015754493325040896534429679856107931004705549919714151513799354783589154671430417579368331847723957452634363574907113620660700524301152507115421005506039192085781794364124155407828286590666347064882996128334309753617142709642997448641593171388970628323368640261929440206236310531310660981937742676918217857595229113417568352290903877015543629343894698656783496128285028873040703176329116253032578482526730584213894610622610978085387269665375762666278574225356841290639928520128502127282748737280937365527138263596469532419016628600625267416189671752897712309321095219412813050992243879104844238971227611878986185518029454158558527908494183729883243153977082603125522873296607549085676989663002956412640028814452663778808270516425288722622497207572362616134560666867808438929038085255227715425045993809527471217631451869116342874533656939814343272712017599021954260865604412682550816077540328797673082159995046251631188965328820171919806325900699257782246842340939583812350772962468213878376652608727814383538260469401478136718539502916396739175759262631806753132346135480249296034806903033568784061458141933161193189203495916754862420668239446169738301246134871176519831870246681622694884509096480212874789773974765709057259787879460059842270541167592917567187656204753344287669500673131125148492821622569512854878447743778752158913007413509192606972972193673541608783310425219858887045238506165808465741237620473594132543806433458858073092809477822785485707802010632732872509071402013158636933440809642281837808719474396718461110717014478585446818189132020833887501802911239178965041027673167314029017660270009221404560786024538314967283295155241311124711066232445840314178069951755003979130321407056379384615377080049228356615076745024499317044170680847363356242390019254790124896018065581059527575478795097868397913539687862815136523254495220914400431812508738121417729767280336990580869173443551753649233194066502805767074121773780030517360585533416366133606664396484370448625739672055729522610582732329203496264483077811637919734139580773940670443448230891380601163161148799948206638862763118704925413524035331435584044372366187313338795373246080373185958927321981791420325989708474778489347601083308290644295252178504946367454728758905390749033382102010786814754546863910976110841156803465451801830521065282924745316954453460490481766721763765095721703542728138838175861775055655796201759257797101582497868964080083756718719511383244719709985242250232832015549955362376199095891964490898400659595141178832247150420451163485622511790760958032148538885774660805018207845460869979298342528149068279718062092079015218237056346199832403611219560031685460537311999457193275650301408364938785494645494383197309080861546249665324626459650354954923245213945101253749389165669813680354850275611153007790528960104434384998016019348651453243994235461709467313484655158913770254548869349375976324297785133228651084787542745483943936849538775003719705697175555084149202268953680956576188551588359775242468099699039927197627993854496579268746623064811435047252517851223387976290591809137562061821515418933045745087785984957275214275085481905255130528859549243827430307941878301195456510997125734871665811937703818599651372591997037840750129447716398953908688988042561634650364546260343938302152262504366454055888830868110007804306655647347721615686487430313211299030045284416276264643082045403531697978241427604739829617954231661872340638288720730738173700407228852121863010879525954598074976371119253397117316693624560863173248375164129927689004903622902893494261199322360277658237107800222224551510354919985252540693876354271146937084774926755825302843967242666353729388864444969855545460197184355562358744064306607274015184086302861874799914033098557940814268597804635784337017817906845433743299394889138782666468907812677901865255136101753626713055019145890191586265254718934385675556438613632441276183363078546734510556145854844738331328648888238774600753759063916380749324689346841876274633249103547390266239137490483466006411475668462285376338770863038254833939937329685323399259403262390834288456033357917361294640001385427104142404380443131177088776056602776082317183459830965790007470555810442129965655913771397084983943902833131901770357890812917841511338330170325113922012562041172561294193470282149126708770379112072024413952982640070714021145469148623514788384244637816180895502546783542580962719440944499797120613902951801634991568895412905521897106398709103258966354561162193185445280004544671858567346237471054779659300141626428401996907726813882425109290561778257266651063801080888676959767169715678741426781371111602081457644053484152011294698138199560215936730363818009669078087261982340731096808178507406455102187732694914934813616900390856545681239116427071058920473241503417020211168100082240023709360179979314862732044084751232735112749066518557371315803688099243715624126454322123650231267431592872741301995430655708643980998828288431053699750953279212086036217123036715927664741666994544453216016785723728883429178857740389312624124150679695903172097629848527796545464600618577876566661004743912805185585488653201660959714803163601035878556198576082639298680272673115130331528733981655144824999960254677824877376999773721138436582052040394599812360878538979634559422035671818709413415227587381986662295607542431156185127371553175989955611537820185474382998593133427738126976256940454418710823923336274098761686432943349981526592748100714953062601314231421223104574736202087696003984274105535986587399151873287297709980437739310542327094737996362824143424335116822133639027119149535723247359732346305005163396857641136391692908674543787992813822551301721726384007177768594937411476937722941927317572737375576125916420654551477600839902802811259269823199326943000945106850476622433753210687704149511451903771675905829915061993857067622727048434212314582297994506297542955734034225421739799390787529839124746233907696279212305511188284356157149434964680328990111278112072535340140125362854239270028530183059732362113138374614096056606458528695372503191393232788604576295722709381421638485880952527739425862348630633912332761935534627690282314041021969060572466625211916431658051596156262642142338366885510820598868059565208848291151442169542788104432671077915087063988437758476559412809598554585054866502764949439532581721079445970474559867875658350154163471062925450271987777512302941797808850178014292270681440101871658217915603867919737043032219370134821763310054314085900099909964817587394512055902334905659379184804418610752220497495211307191346110917210307372185332036752087910489123322483767498400120496107888137089829757234249222417220010912182254470126624086052468811410554412805206027092867175749717990787093913738555661500620615365327141422118988344472633581438532814420036148929979736631078793844032921933511590575491195856705558051060331982096458921129872475132811077712833373062134821273934727926466249920319876159511403376156006950912469996615256219710342091591551895641789102428452060569432746224896059186321909184316934606271703967977836094373057594597194384657358369806387972968814062584701598362362076382309806822607364070288986702301138705589607037628196734596770915874929236124115751906332283283936544367368970678169598831769056834755639310707135041765225025638331367312401639689112630569024021933383573633878574880101309041689247698007828669059926055896084037974541713902868255569199962305629240129281076640533421231077893044117712555058518293279319443690544552346974070539065980977167577217253592862281797328488767109065759749738899087187400853027178734848377630076687777445039987982762779748534923542086964015061985357057648545504130179523490116840397574486761193936678329698072886019447602377905564158418394338960745469683488318078081928539808818210385776303502427801896290560071648065244015654691173154163677607084978280253382506722595234485617515088637688878835442575511669687164083565399500713364156222130636343562203069423473216492934052024757116920768090675984136294925769220378431093634262930542452078931220413289875065297205450089940117365040361427292911705017632099376592308431878961257992085912103026654940991497524789935331013220471008967023309716612769192746935606036440366022515832172313365049540825833813680687119464589979302271143468125102212737818683187264041871757951846255546862019791115889492146929846673682244342064186291598086329578870837957365645124604713179141765589341861884089759710903972452425256251505507144751778938920826371050419256596658893802292589699122652879460133271143503768538475076630953851042227856816704665959512056741654932726314349191450340776209838334609562639275093005304305748634893650756798231453148152154334494711752715700715359512572368365364544197418970061911920375253519162719156117291496728500092246986203054649096348595737984835537942071490847414256430483389011018974648192961440745773704238741697919771255012519869076536019689462455971912292856283001621561393340284110196430114675972073108932637032945581354699126135953628325205189551519269007290592356905615429684033852465721901125423854658146694839403453375534437023683166260785934763536439290010100454192406184188846841396863035274642763185409318450214828675935252143752556910886185399338149548183264797775840583450978731623887355173883910047216324155721139766570186747062409948855469634439984846338570851864726329943751754245683945354440696910073855767966168943336019580889111897476551884266097517883494926170398270938630565713656622464089336364188920612105305888997144907169271288538792352624028473719999104485863961436649786075282885697924586203756724345780818343467025774570641536420121520664234941554503789088295720578869697933035850620692919281077710436417499841993235999872686539747114420537896404394218060839471533750007112614312817016651570070122255695965514926403165005346811837995200606035118664451252612330363102863710430041363079610395726212847715736870367355048708854573267524614389375119367311037040299221456519109170627294268485073034780705757972683027016263322832480604841594582609125844777527421368718038459992631732759122084893354850484346702749451420462440859210534353369710127726186974676028077404050445074214831961545788131652969655601723945722424960343809036809088256354380715025741711497767182309321633376761187025804306968789490069866705287956065856524730597782108172539299639760798789896909705880024538888303469472307315240624681493768908294227982171295227727983465942103527602929091205006076993225071130165892336199069558368778263703426325067137901344209142289741716205335143693131731347661297970861761336375296089697297212541022926135271169917426632250745995094321789072366050318868931032015523588387705409532742787439176491724439614874993668132475920834275312079337301831527071694459207865336715665173962873134691817222542132736018762075372325856374736898370878367009205394253232643014449416791685589965037360853314143774243446956129109260552346018127644396681426444446013713071471569265521824094433662391032587532473306195413227259914687397204625761977435390634034965760579115042866280572278792859820043615813737204733716141180690851050816470637652747954929865185418440380757961174686372511125350861639971466010421777456837264680546031770408261652596111339901587088661965657444354636949002297339196808492681443881562683548538278357811553481848420375126324605465959251643307091937241507562286778336114102425558182384576106012642553996090192388161921143752504568011294276857797695791394248649438247322631862837452405301612102052298891819599575486477843457542872087264676259826489481779039271826604297997670369148261583029529826306070289958992267114370015532848994998376862325006480920782901296592480913613603989721598819418699890427136978047400739312177195541337562479852527135136039825800411287657842328540654471320158417744125549731150000884084491384747533990391197431110191181528237304448022672068988231098411060522827974659385511515495631416094246973536272423219397316688653108195459521677517355903816403774649315716572184419617063953851559598673171579351863570489162297261850946756200124164809957215900304570629530475838595608466408973148283478349354081765818094267721025244312880458573477962019112168184136997675703666480797229526610328600164889355185754835738522489365667236655490346158486842124069339754750777197059851678963212690150289372791880933948825339956287802918471503760661859571042947872590972069235487115833540445890288785742774383111350711199061032904562944213290960180096265029987084159164882888154525242032067313281769131475373196317636830680867556475564818559956347358367710273414424228941557727633161677161322047237754289917038503585323120123338015919347701731747457795606898343739186386066606797599834543456633802961953207468272645253932735944165961433770444657942251553576098441601261448464357915980578483139611006494590442573693115054517497411539814568410703457346438405035901834208325879382419539061831881028040866107957364505954087422802270245435730159318393352662349909321134170777877591280499310926098748102483261789344054211859709283122260253429051004109817025840516765073624845638387355695089930698478383646404244197005398314584826829752549137603059863950697728712264884195302416095869798574808325140095745805788697359571536848295052383733807731761585430132720323026385110046970317016360904650369044785018115215016401134394397462561923110238981238922995487688868669183686632923771336873478820181762082523181479985364359890727440169238628509811830196280176130849328000597904176151376582504187867484142558583603547520155815341664451777642822455333986630867366128742911207109228993709252462396841472120895976667658046003756373138796925019026907879747651783667940527768825235527508032887428184702337385759352104688209048227981783810710740873693707607824502675743501310565938227782038644494842697887164587237882923516427932550357631623277794126341393835104882671780967270728569304116365409696588172139874026582382968742190509821784862379061406002926005928479309059261144726880434657886468920456201204541659762055532842896599875761730870740452723567623906561596846092281961287243772298095891019774496536041376481655509119554928140193298805521458837930958657079839213331788915012539405085849154894467400395078330513459282272081093409318860383825071341523440909296420165043822064941210501987242952137252933878607855733540321901835355496241194385369292614922875287101593207380552248319762464947416792938271957254594713319183669930771376844681985668670189808759548383506689819641281710289505197072657581135228767770524136777997680282291903336403053607640069543737983758764520964443256717424310263996815596936044513785582518077876028385569471281905914970790412646231431459135804893359870039214485824700641888969731305736592665349473219077254280286584046355864680865046713084958792166601259481609717175479377533751004366699028721458338697609080970468854011566502383648709587764954249980122026529308344841727146327538864437993418581097550295480207671782073271466169750691830188576671907138417209095733080258764523908231105654013591180936517601063688202178586721147145017058191421491104058108449862308809230636566353373883685802735582837132185758912292326453806220544255699220241195688103103298275221706569106356065831840582341768101776271981775607871459737121012152472201028917612641554775158312636041207508477353315555538311494200723122030647509450534372893715265974198686331929679475445524006478686863377154037987750095726001112926749071925928688017369991659703439814638010279110430824231442752220378795522832126732954039527352923303827307915057189856321022408081468856223176999376427300217377859183668242958723521838346813830589366842415925630012756750757425084218153148184211344212013422271113930580630205343511482205575210880551333004435472590967675940751231270235259801913655060687199851073801160323030410704592346571770617020893853328208955512330237259015761431089992731535685681155107801407639280693498875805402124957689541742060980347249432414558168576631984649166474119101986808148537773571061790686216101896858022946152465054828691628717410084241862337729001303408875756754836810315176654769830322238826231701416159931295009961923077648840123035223286976113135014457436627126595588504225751685513895688661994267751893932785574584518915763253848631488228114145253677640265134776945089024337926011633828076030783524484541641645034933013990464337377710807129523764241685608387903555577762835901479839821485677720714092814075088083539143582657376047262082296461378629201309131115590633668033412503856918847339695133008972983874002735010938318618490693316811129080760159666099862120812132191861549190243059986106561414651144819768693770238449641642388014675127242436703390244395799768002027904726972860690352520597925498363556535448573426387409932237818030332368126877699674828947673741504802331099287425168528346914987633663484575329645983708175080419463008479602624016654450163890207876798254992988039563812999263313080844559311571422561603983091483653065071867814175263340925166899025356577622934967951431379071382595583104034199734991062731308508512231108741721615525473247005183542643102534529354994391967445821686397658457887902968817011905103723019012462804474184964803071396823962170627120460469300805260497183944492329431128379157512375158175269420153576730986107328795835703801098890253083516032852398073628776036979316207358570635237734102701578360629937418492590466265177424183196547720870497221782804269462242144210639233371120940007590761745272525204466184155309282166910756478626723547727763094430404545670557232617204644235767331462304669584567535320172206597736260353711122268802114987623814625996399068591672085411956064541113596547672343572064920721846382445385072833247309528902036393252073206664710135872564560479998369373964798418760781792746153871368917051600910915707236575286254187893305586868851960570392019930671687268944270440451572340077878558822826932756187770815996241900146447568346983573804439345150024235516842099636162944028745019090208129704421628942753613953941054750400494516254267149409493226012318648775225146507237469327067994948214360691280146952430000937814359165419136550486146739003669380068033420916408298123379033946283985704640243444810811239082399160611030032110568849472477513889755093592057807630783497572608197312152327654845382459555726210386638258604653114791790474162381261757083003020284484097435821557617651983955417175993647134102367393919552658970366744771412020064843719062261585811707148133157589676966257463536731500409134083185461945618814221402179343135777739813707427324762925501574367602019805974882508254599097924875431822100933431344891183922060840939272848328666044895007632716009679049427497330670910283968466400306892155686368177632270368782932789818062140712226587792815087863479999772633471726177929035021827393476941661738536502760546536397515668131391291056754118074500764784976258337866403100692622069543394825184393077512497368583841039152543731257518606234349454739343584334645474484868353370676030451077120787865111187308583502557410112395991371970549250458509511152014996557892162297541695374855061420243698680661842749778459397549275533825442163014629203147127914562559180996196765163084072459579237721760032387577507552190544736900955531065080039352050636098185180958355766000395493217846938488847719010686612571171737598648758416953194499369079619903295010405695826572358056092935417072299519812823368813758743304508251361431474043602888147424273011769553532368982648557853395160146174437803513404284324419316458961867202170687527765265818832754506840088613341034761865911255215332005836667623334240465035481271426104198475479013028859169646894846650025591179306963048856124477303354960601941102054110313596032816813986152126331041144452404186864021911429042342700805447885714841547552710780317906708350627929095475474928250751686152174256090490427938078143337347098164005233359122614763929784057563401437215390014734506702164695268153178641483184770218940550993371599575275419880972691482753364298102346034388792073475511201492936943049245472477037672311248625842136900230179742807604552972015186676607265369990963161098593508740364308943196514007810946350515341119363486292499374710075651113095718588021559177814824381875674103597232810013449880624029943345000382897766220479184208752257561297931872980267892174984977809624651267950284432720553533241663804922137725144964827035253163968816577681570407734588934119850930788334609676885237151381356334511624593166696484444654868966665531168089063790004862609383215714904474173291965839918604450548760506709357734929936257244846288351767218436473590288077533824042465395507734179649549019127372377570535809518277411343295715801792978060476719041548678325910890047603627801857312433252596587577475275779324291912460168891104893569033836818118832402201319965629979693143920644520564817733917786240648103519885252418994506048136732179029453059535035317366607259126634184505246607493459902597338921285260672523799150821491372696056593957565285966087887210360524309628056969827277101426378903265472269795701993147890409736559953426279052754904905670706915565809560617290368596327072776230434892633824710096312667560422048116545527118642727654118917361164449830371527227570136131876055122330100128521833038805311342443616832640422623551970271306315775116954970383996499884139463003735434923330240402828919375205917924002127250023362880331814982661924468116988163331546817173593363139745681841276810517926560421665797146597585189126482476193454397118895279656190672994831743402274570777245981584522059999555411385769395335261951200885818387049355336546476373143992125416250858210010114047278876782646456203147660117989185372621102925615924637454845327321457264575282381951725733023750204242272938092863571217270523650231866455836629465106518984359330004967256822370352150341760840872767465076659825730900857222990167307032928049111968817606429288466412415628325238308630004084433398850285896412159833665412325433374611974447293733017145568651545803498466918230999324667788028692652214452033344599790538947831804825770607885829906733602421473107640092494455699230477667525330113148272057113516875620502099106727900794867526110225159579156900135272336308553042895574905182752430115519411935476017340853954968166732699420113418549108194102575061526041005400325256203702664661082517737523366925448458655160254289477425034913842960818001946650242758578439984322879979900148012612512182291886322790543215652907492641774308375978985361543747170091561010680769101775294023368964150912416595828925399431142865399263122709472615888009440410029332528157490816089662636489051919570570238009686273169737436640045430895441393566914456398097793356734389768598543930053715955740804408313308223653828336250369745212453850210546687399373214972366700158603958281135304829163197011121503088251220680121644460176039944974460057681172415357957449280467681541390865670487692828999148196610766622535242065173736022321434390891109864052334045030034712266289078919412032655624427593177247844417245344717186278645101432029852192999644219343185346949557547427980043145113464707187418945489175306080932656428594289981819055879328459949059352867739510866147629214192801990863248547013221500308558270111884455318484178886729726845132275054654097276214589436399511543269125638561069904931307836550969734150086802817209347219186002531956242263780094456758337113317447109946486200626161150555009301488735760785334956294202536229793316692853668381375582561055798852794731402728028572315452307962051120825263344911394634110001555593772240907242829557022706883270455916317044523698886231593758374721467599418031839029294274080354344149675954192526866481344072396791899885924175362798450937648585977165396954732534264360958187852588739152081512949548690059386762341944459697972542381779466383461067752282169481639230590192984456684983346615790140614759319016544233669003919024398245985202039362940638143227916375522028141822701085405995182513477886054506130308698533819109267123684866919178751893693418122568720387435763289193529738966759505449722397543492741736755424481354383543702817205788770931148527181758651580835095762319683159364117847441199542842377636704950605256262565014688922145928246808062812675491579546422314799166530048393542520465894643897008648208942967787092295033778522342272679428900599799209420719282240322959323821188296007262833967013627648225426071175998652347479195459518090233398867264540164865899348960303189046103807062758373614965452924047041516776281229569849347917073996253447808461520041748179875391471324111992466585502648767161155265754412010533296266861006206310762310451981808545220697183001848113048164836538242076844895076258285996067599361659084233684111367957730413168148905315610749822721234122965352617624919386665736512090209686323019053387564650546613148479800590872638976334133333912404770378860781842399312732274178694018451022693661806926242359825419230133612339300582466344462158207888312499706557107523999106024366478390951228673219132062475404863187725343724084411448663956706600673131466819056709399473282898582945439283142873524186613542581388180492070250200976071430959287373086075175216340743691337548311323481624672232298825198649205397696493537464517183331575594955108302312115869902939431652796313884296373013943364331979189398400143866966145610237629638803260113386016517597521196918567187913867248115781071210407306235286717421081222644474188991677106179870829724583066503900962548730296069764088075311597515201722140829763021499120916649598015670372922122133330253237948329139125392646134000633168672067854417831744625764425562896424285306649541604422342919783660352903067179476138157041907598458993270910454133985667237839568171750176583401990445308270245845940511414550400398746812800974682876780046297479681035232401454471870286870622612353944743625506094598611610517169225106285249825563676086508486336414453630740275952386412811987327102668785603892859189202317685865079865010849182842635316098782691147021575771714403735156335772759867608050526667566972973694877625625021624004076311638547098378020626093644944673800657657203817790836791436010589748668132752883355405147808437650343571254345861986880876489876248095776728890114038029870098774264905863904878951836486023199563068031598763550101260430149428677374749916302323580354732373417868926308475909381456447933997344764457231213625659118949250958613891993284978218542744846232546871174087079360214745722955708152658765528622492173250168000362521769209306259012249171672860387484772119510796439930894003276603678779408095413463354588617282839392852026302009412436189784782610444728934842180117353137332312045605325699978646402447327409988891066378943443969267175773247947355372933760602510048407228579558176884091997080640909551971534740617949347464979365085232238802230893648724949461479531982879663506592516651994825366305302139728590301544167182025496332528810136779026609988758281557391131986235596015568444699848486819627847919049560372379376904274078226806950913345325200825849891831726729225890025102846048358018740390384197795119372446313905445690551114245189319187099279572410623016529278415152015669017349217653686360109591945134117338962152451184990236203866776361850275503329907520196159624658138363279956100391003048037405087128965058246377184558864525758802072561837704270308958046279866860196147621243286912153411272784484106692254732611425523180305779706240530527424046008565128910514298436351429246820170271084347910831420929268393895879902093377149983490901609847750448365906583526896602362773361759678336006908091702607753116587654036528041250811228258520417847590061613918600019672094224580810881573892794688092539019654908269448501850910101781033187650907975493374453217102378496094941081788971838597545495236769252305076209673109085553385311300989386463659395099002199495947757968903258907263237524619278270142322521859221629217788262117413078312290519478360883350995622296270601440146544205678741848938230156369150625533872163160915964624655386495255575404170059747866150830151252218774613983590941107632342330473892617645586678060572037865225714427846305700197622266763394330532136520458233075089693738546442623843554621167048691529478706382283928983571318115121571765069144499483665288507091108793532681657247856993339374935063994674956269052426836130892565411532216059307641976166387926275825820338842978481272421769606535749383072349773159232143593177156831329176253313597175148864720157150261346148086094380242970818557743592492423423672535479238658316868769227376079485670199422655347059286902030570978157342265098792273051035007475981146662899544296237830186407391741840481853365668820917202464117201942587348189363524399244230314512180006595283373381460011521465679829046625149180474542332124989535404872232335953452448246957521533264843985164994002722915550627938350532932157750218003325288588918473875469935354866374698368368558273395973312125724681802072675140874462485151132496300019787180596442818973778575189829911781669684987429953629955477541600437597035081967391103762144744028654003361710245086818424521128650831286739982626958782430916234730504056435392959643322526366120964747274350814190121799033564180267464101768111529559067864998040228800675208629474581022399892336425948875852275544981058543132429725213463032021803332388825593512020961482299967109578987805968303003284921042425712154246433122652221054869227721790931119982513935078559233906646916083877918868425745733337682639791095725908816409356209502026632324786948747922339515810847836743218161898771210296685759967960758139675875844984557124062816067898376942411268654715280246112340617616433406648780499473816341162981151761042663457928823894389094928290713952947353967781516558654129442506431311329179586658649741651523858070920395281729570258648025211587027252176985601058692839447690177069950175905132082769795168646347996806809689792134861611126653440690775699649444844210690999125712664603464874659382535403316909501229189482032079238371652669468494995639748133380108462150395181132919225056258574988021299988695853377088345009683836298535148266164126826520590529113865369772485040443834454888796173205136543972152391591612655453764999530657880852939220103620672077994706012290544667972685992107980016580019128915218353003957833053845404586464108211292096414590951569741550532333067803448286977886169895655558768177311982674427971421820153200584226987500504230521627817602421659119025550374269100901772650393233581692577712945363642055651354690711605573537115218615332277589792462525500252627826583334354480471018114732409275950972134574806546220407540729870553105926650715490625180174776722202035743623319433106107846362126445058883598249635727543059151747725167700609394880326674987173736811146753433860811068904681096387671066427241703842689488452386301614511909311521651919540227211762105910928178964689417236961775029489978166079646226925849527552184609372654941810546111662827606999975753446152761022979595743921381381107459962108235390458474175227770842373481724554710420246783192603082877633792573012223271473915496534748650482348573703897189911995965543879096903522978728834612713142893589833122735618655182279693180336601143114758508492534197040514158137040165031357148025431031492356227559481472819514345485797484746449701776350043014840970760019740397611713814286309855370103893634366737328758057720298730058552685581756412700265511550906072108641105763119528260077850432355825691138463900435594141986435303580665659263211155859401742333462281758495997608719913787809195875271046220484050162485224925724631313498460921151756863218129714956134739653633376543247469818906675409382525552776191720276230030013620690136836989157865332219788914416228465327765560691860093241722875654190933573784934980329395055202013484084968853320215664135531142047913143131048282794394414674706229675326969063907197351747231186226114859181695192333644586287996893093509699359372241687186689156918849196911142913335555048003194331892885049663059556209145394545633135952537845175205506083851664523929117056241808092430781890258898378384376904450243531921530438736176593510855527325762059614886579248417437181779459099305988915823760055210764230600630310050175487992546523682235803745658715804118791343252278583374519346652444211760337784558911578114438536118894365810467259173537414952010155252619806105391642993554609102755809700567906193835463605562226713829741755929974769775020609914817001144812708505683101667457240391558833563754575255586694168309241907058568497975109034059222004790784749814987751455300986678278969618638634431682328532760654283394314504768897663933775585831723896026362926916686558321719543361327341191213447535353505717449641428127288530489670894318384168015339092160313432454789550457264096828135998074722987483913808809665988716613521957230609987254063777301963537706351414714655108915188266788793598682363936367859309158527053793703497621423814592996180158122627275468450925745996723862948245816257063386415458075008304099580699833888269226520457519049542261525087538896209360161055562029515318700467114377018871055209335775465064677588852954629875234713130485591129669887526958428265066148435268099311147444814727755408605643407186052690735987558321077872773721056281637816555753652736839505725815541980998783794376411993766548479834156553086138923980047396838538767190756371827603731495552688853671499386948526407436541535162583948782646756317796729283291445357064849481412800546829626604130703621848895099765070209151456077881711012234306084388340715764197770792347585672991330636768536761909392303614021129825601697954837800532261443316335029073035360357428065709783534840662538663273766020175688536171054739030480246572667428382214972086477058003343679541312169704574596163600228879340373569211871744747210730380134874869335877244719562839329038148755148800502849604255832041353760790178381686554534189099794341819098731503451300344245906039586737867482594679520222638260335301505628454184007774109217793459163216868024668767580510213579321401304723031915975202475251778453833008445659150718791603740981358310965450646606632941953478072556412070755582527222901293165282164264240135917339430747040195026529943627797649303039246092509261262936442570701410572719664216894467344448116144425937121986698128039345301755146407013745518421890030355284585288654698202234800085623805869303720458454486322053507739013971136145138975625063304763000345789807894441784580231238472410913419330453420154764096990012659303384584118864095234251670406922351874718270105043818326715676112205031500632886860667524757897192472553030452077144408972825343392305524381061394470234945962049766432654167753152143751944833928216290660036836303836075207200794488540829403757502588355014355548440835359966180801042444038217984729519246190325777270816430019635921588919928626818489716632165488384036293950120542599236286729023260080892759289052341624679268508437871680767145608444816267545103596342591087917604877227920832282593866240237899918284500636916548974128277408809245741436838126433903060155030216289186639560475157825969269327783964208162751447411638129512718556573149084489103587372967957963871972309842583121623828879642098859298995235047391374609609759340594237798133501927391865936131130530558479946787477059228464969312572629139114934256846844028171472601587534567354075365729997562308987988462625617762677270559997427566067521699483405986315970651861218311198220472534067423851216520314325191057679015986729075484556555290296544815982853101893512808380822605529939826317684582187052590776244413232904532256829340179505726657798530801286394836966085235822137090211774472663271926812074913814593664459004298588905945102698404080361860196143539287793796005460018828569377067877756237129305266767789307592570082138112706740681395717202601364558424574144416140178208301632207281313884511279196473531392304837186257195252646853361360656118943636707717035354491793478969842647680204229723244228272457973878132600424523856546968003973017323560256332940704776029842219437294912559030581378705570754813208288021894832931069828736455774585922378560488408053430144152414131032884110935675523739270736303060895241435193651640295485819499054642135472428865259636831871793737347307282888614679337102318366468478883778512940922792256656656411080618765342112650412315106915489716354991774358592173005646647982381466282997664025241801901877798703485319423007659712459323519801867475767246588590909425915785029006331488899432789286638134749525585342349347824476476764292489967746157619962063586482277177923390962381575031236116218806854194083408325986493167212046492956778174171713854249770401962554580747220796278249350941386228706637367543274816864304641850554853708151666120778417043343220749177581628810602237718771272213718576046304264901705139532844308774983417298552409014374043543040276418710815238942100392895787466991312857815495452683262342575237746777414667849356032641125255790663904318446032363003489862421529458077507290761258129082256746557493777720200894854735447390848589262657233558384504486028199435535981820421610512194694615553114446652658266167210767985128226150315354948042426638378957394585737213808653045844214981870786102286001490718153460516886643611865459247618586456228270220280400032554097211342151628257945023961742769515259522055263095166780311843120107114145698653064421040825768955763578969560361473053088522038408814980720069193500358475695954119492899588601375000444555385654067882384210752939538254464913406032120788938534834517611462274137495262422247079291996477831803078778434857288752861786363769490666365905666249924356997353217218955074009044472402043264366697324736254205064769914802423604827639291749472766827994655625011607125947867176425821863386732623784101823896611967570971471172459898252570963139126292874329687370139026433379856194714018695046677447859646934987296999416030482598137048893710194050255471667258258179783945358556915395782458368334581649402019189101834117862543891280656435709337287338131571163845775038002024756227179674599901423210531352250871383459288012136212249881776499829173158613313916679863146539960467962442740870329460570953793540172536864373898063240460898372075968551544426137848571839948387625672861331932986530291310556061090070415664697377720582473329181726360534187490113352508615859407093612130395952703380386108993936133355353101990392094441096926731931908023451027414374914160086823854266083361079251207393739011597047986083358234419608832787961225454434707827477559511382245356161228141858042512184209430365962189739350585076383946237683908143982379860834311176764012561790386213091898473211712179827437999611223398147885643238703539076810553377153076978972135175874915005498657579655884735671222018539747309282287457320026183475929420708051648326242969364119159131379380599049555552189582521483790538732692715639193162224624483930754637881818531216945917602226278000707394844325309411810988422547415309179824978679552509599332334609022056826246206812876844310481079815106217485132006234713335813375446933573140822623394888087459973015788436075709010265873128377975370749233682312100156803019365102932203461933389527891341545755331161242010369968601682221098065262709754617392109930613399720075091533223619507500545326392259218941637202667868660462980532620779873583122640566947510577354819658996934288048856192303829735574775801285473845676086854335487819688123694923549936512069507637609668031605626466929803359625652097303665421328624833042580517345492135979589040834805339851469475689864471226557558935636516184996014685958331701294130413109925924862495151114512673766067419356006284458224913671481152424982342130632855205935281733826040684048358181670894974714563602788127780032959195454896180498977238869372383655916670271615352827363067507913094530395370969470701223750304995240951620271391179836773201832396915799848570304824684443178449625004683774862575821761112775169936721930391047039605841864312758932146876842358179347174484688864308258203142377688681692526744321417178745429511316518806651165648397017774799742204281473778081911013225096756424406802797567135380652997852245949160187960859675631178416335712087332208992008900477937206769030596696584704333635681762068408858415494081084374412643263102714935828813679802946988050544928006908617776806198539748531401108086376527089903040704486685098061022641891752345156281522942458814123446561171166953500718849544880016532103590015036443503321923120391838421325508194219861713196002482026122495251674100823301401602095810703593639940317978572866172494243558122468738880286702897061985614927143427575202208525444371217579612968177242137943576730029245613854198941037114582921469658999321878606354140792023922056893505955757747231966575675537015297484236400663780808060028820538847671325162406900187000653910933615550190155963273229358565803596565958827919868094955062525720723144091112648870497434338180642663409160470219356067679600859530150447822200245057805627148918859140742983573517781188959469629824136796562216588914731696076991554953365572378639191163359223157934136571257937689125452542399527019103505325838039173801859200282064620241307088712227768096562045890342060680965231192886578322859157344829115399712912290119992748256261791085242405537960530356256216995270504925048839264711507923897935458941248693029242288186047835343628806377882911991685808284088643886572031183881971940030079559506778007878929130982772488514898189279845902589284773850898259366909588802024264890760769741074307763694097368140378000418399907514874308303904199927895192778221028331575840434430899163104518486178167809461880845122444625685620648641301274165178027591169000241077828461380666437335233957669034966317713831687788140113395284773892024279119678873201777800901688320002983835316533188130487709672829392054184707509909784563870415642602551211862411412814175489341510545033068910441497617449902874871262947671577360449969641378564653694777352868563391403692335311062784339482239651741566547038119284910151983564335868944655879165579414903356974298505584285789230484252505754907872852207670245022845665043803216621524666051166386016247867687283695586760227997345209244331645392396723191213940745235021088880359277905991357502429448002550117672683496001608382131247925288872235298128832204172438989074521652371597719350112418658468602259659963362109886049121772335399143671090397913736116133692584805352108959440818103386488260676798640416876693507096882491663668145886168378144089151876337147264420555367318400269158548007034534271173779068953404351201397672923406249788639101080685031182747687898902228279643670693401598948748690348911185373322308672768266232224640709563151169843412467927022789148364314058095168909571731736404415112010313829608553466565034694622882753685303607464411864617629815603059577192910951034616076489816298071782899916872722422513065046826087419299914163800040702367377284823059657038089394567288896214472807345673673700402818783899388854678134229218934414041446397910090980592483332038281227810718158275872398884045203244016113943490960439470118042245863770477737023434546247561629564168882601750495597104819438452090105226079859184551530161754462462910277816227002115321954024991872032800539474932999908342027373666754161135417624904772825441543009107263950492187888921861112545943986981848704296308252898758940698477628248591685395245120470021833063675960351953889190680622559333077862439712958988344777474970297280296535563795706518348246974083589058015844328524846329803264168882535461405483756996074345395200748306901285545518344817927568398144535377916676059636738085253799275505380028341960583661234351741496067745600013377495628365899487296234758526171420773238212152972935533043670007334639870760557298803179468725620881666202085198029122028897742105024415239739133864804785224429999280129792151096034685557357517769881071994644728897258912305171589628005394032107855881702345929389908533139100169819180110587035594736604252808457192355542507234317565465962142906504823401320625118800955748993529208416387122622152305631228523442149373580293948062195763008405515243646014174651797895101494161127732133933406063101546167153758976475165222233498904134558902449734356973274947932614792323268343507433118048748599998165400910226669268936428766186403178221492866032251899176428388638341626535923356918787256100868324252305604483481001873467920335231718133906681109068437353708044189854426145088707954676457825389400450398103563890421354111226600393576848587118650105348752864835560188497234623989740831942403659695682428883042220145425808076059733132625722858395919652941507548846066204748185184188893503936764688099376192273204659626710578915470957241359081550396099666280284116091767748187861723983548500571545924171381750812304833660270810032443462520015981254837099205559150115989031651067665202292830773428910423377008199204836315935607544800412986163450223778642494686894231839458478052569650691932013098295986939406143929997144963196615563685571127908181835991675713506110447435293794463472338049998615423683211892868552258454836092918821088331974436120477584071798673610252777028918968069828486423005428515815819891055169006441820158498257719891710626020972527035884715291626277440237051975634803825214669025803663088412860253957437641137680316888725677488922779872566219955748403099362339514660775506407913660479923787255974585195094661027930356306318733727939485140396656179504092092625617178689566083293227122247185605572485820149696231595455965075018808257328142323002871476532998855891103748788015585848187751428653054031227704369488113181926015158327315457258100852361087105576118234659991159010092272370013533726379343053160048437578090004704612595196679893487557249093701523679802934661192201841074994270512623807851983923018911304761952480852430369613927681265297880357364241976851422112659517443064355699680451539669834884520979220124685960428165202475599995426500063251320126469983086728480368758040274353442284790510815979003339667163669963155281537741073833500296888785695407893925693374824588234702420301190160189075496216457181695201019512421333676462764454092078684867742049255700752338777738483635540392401321688764147027799429155257802738822816414191611920829505370099284091350393469991330578840211336738093892110776141002119363975953977570328868839314725081524273312169470392500629408029161674572660107605971858318275345899060431043085005948627761487144854481895302399366499581896639442546827994318277351010691900250930720034565460168185338646932420772803476526590564392168266973989787760566181542641881448389558870904543657932675776455490127269595488522625161378170583853278032980244351238366546928076199522563311060462642228387937718512623782230609375387310231824650335478909791261145791733990790333201632315098958347529885800592998863929114315599616150049355095095455875372897511677187762220048703839385217667320963255451806604400553245180844848752777291405637445562160210159353373473346103196029332568929054414152494160128679624010238730040915861571624623195669405615870553100917312548166801613199823815436864684273661211340288193417972024144924400378113368203608436257546580641672940952730540353873702205275618595175140073338722824271549882632569373245781558125395500791492603537939661836469460462139233484415259598354569197117583337979358780714836284254236196900909838290518245390441687045937540253866368024600349197766166696536215119883254972781184140080858549929440823473358823948489902224270241648212603541419273289706162625246906939801414102371837027567647203213583572884773604628067142951782607475751301344881440248568299326663912562470652548524639829976803257042032070132900141386424032989946544439865757065031693782681812627467015767174558641582218380138876070968792242010312216578773198409329349864453812738875117227396340382946440644846589576847342296542567661714761304097973795813935360701167391547655383336172043688704157819125400533552733880393133368282098875157725997106396356325883547111716582574413607921018259811990547033600084196977820528683679303666755479664986491355543852934338051412450858738438946376222615378667087932044919420064087930224777099158672440160459114307515787216388403953857011587514078617679159374196071316470450182085643522276340085805355666302216557810795873140833802896308959872938854251431135411747773000903624029140643829927724932979946100547242847640584234649373088775123684715447633146870278347263297110846586339656587973156053866569732081491120201798104359430704033752488541943667873678119040285880446821798561420058957429934072785629130932196377419230110011405701382624913268448028837004584910458615945587813166630656114816998315505859163020230411122094861610104197750620203054017861214305549720790517088762879146880724635741144947882674784178922411279151692986431305902749227873129945661709826803047448137486778812334757982208846634096840729649005037062965540395259314128371223587850483065678407017453023312420245679930034336139502213870847236728071628648522691227003714459606911365442239782558789420647588360144393354252249113197529638230306163568980401169502226386941873596120318937158688093696172380945958031106829190064521477989248777641870700519591857588965017365398410839723829158514939296585826725203584117432192014040149005272732422610884229491475715171760545027150966273920192472236451941655707727664078773263492884459763972966675630787885760220665824845488815908120436238505436979783010802962276735671387778727731098477228749239745256422704747467493763137029318627920207072671035464692835040301839484040249310740652104485893238914930886693396448834159527091630570176681466329669991495297008747637230110779630356935658838556635334764282969013025369002989803852656813819360155975483178463522709347741828661143718898536349151238745663976125538071461604607495688600267615862335985414755313701124561208185400195265916733718369093998471884946892297564366385085846663526760804273016511935528519598714940450807613369531434489516153646879922435748654371781448599597497735448008477841442156856248332856458099440226240178232003461408597295000438601408374121273452222523437330400117912611812374886976592194702889890449434555696454877697093772766678375982153844676965623933856938220615511187735094335017321235860315712198490752421097566424995351171566343247242261936485256283635731817073345676187014808461904255924930417533906617310030465999993961140679354404476285281224152360491616125125457133904015956685446865770733125861662845981805356796881824837302113346643932259082275052816716996841042351335874983201188422577445860323728576223369426438750526592468528604212346888937411966406500570901562943591045072307416705611655826753461966457558596928234006255850539887747778894629760894858754812194017193569455636241778262502768996689939716225041810633074771256352600030331076655816899163532691486284677057090613005240157567789931774040921596438463308867508572635550042552475765717330529575961370231280567808218359854167900440338901960348576576754019985239411002463341043258374950986920781771947076131304631220200245213086882921815421883891485474408850643243073176486965933407349699458118076620790496740010514391399230942756714501552848646788341101704918409414966793538722371583385186428584826671977627638600740746954891161110673337795831431736673821944655834984097036712288030341756026248080851024108243073248185314551221515800891502609319910273317668564192190774946754367631847063014363143023157457678602358675437264784172795599093641879733543968351146215379279836400257275700773442401254350627953766235387528865499593543458637246795027500696686494937409060375527242375448209065614714277843926992122599533245574279849456900676047116156141366684261940976909911881253003898148742311727406076760381262473623532756542318540958859852038312247002214498993038654914511801061607366213674891233223029956417521667222166199563608521628622713407866732889500504891393562894281156080311143607443416427441737628503829684405636845480175278985655253527227884438520795804865923646611571877545647592812253288044637775943051922428223737422014046508625583606755992592467767990839912507269024556838352446109809550641212207892122384219773426167178940746246514626789054055290141025966111322445020450948196082779809509473177930446404621324299726277491346850361953058995746895940336535125812042764291931566378333970892695086523499744004567172518373051387181518463748226012933673977528487392634409969736550811682725845858657013664392056930179458500568521962695708859866983884480692417607842785948291583759494552263871971447995384071987248878711949099211243384601741203709921542966671114131323223789269775968468790824160345620072975547421692794056783033632147565363562354405526085551949333829407513551314345125353602401198690585948288739762607703679844769812944067068711471885923245152121904306837479520038946741286793237082470759572488468262390176813275365541379957126098218407319474467688244047855318054005318125545092848069253546620188183822740640286182727778351870713237562015909558235969736573491081471287183312038716790766547191461994713031619595527516685109446760809248535801235938558479491403931842718963604261557617835630364151349015499387477601612335590481314991588698931250776161091170622120770490211581728682435628723211870408302424658677735964119457546467594840103543326774975234995017024965230326065386980123497442007357967592310806108497913952608652776672598974500997509799319924038128010127187526919972570842744698501116396984287985466540538810804852002951467636994526995204926119032885524791484007125244363003500034644706926457830893352850746376638151769765995157587360334997349639450893435392357482183426596026706034954325491000567857422100751615152369075123587189168622636796300384822717165574004927384425592445260329429716989426876704607131829176760833643036948427186670463326878178866773941519816601292123434102272029957260363222934463137542258832714177861072652111300922440194495958315396124352295806003864617311224383938236076037769551251658035885122053182030008682957548972009513100121232711023899504559898049493412527576618693245353868397053917850120938105370677731792843338911671226022710076179154081689437246675042643015827611059720970311910482203719904569947830677981364169753667696573431380389673667149165482435802751174200126838483326277953529444182459312980438442270679563689639003283520576608382576870312229254261049468965113721887057827906425586457164919267193558256772450130642641744441823761752701806393894607504021441903435889851983071339627477073060681355102305893022223115242644977312913778279868228672639425896566722184146025119047870345389006236365306648821117914313785808546731697046701509109327026085829750322525340070965878262827181278103480376915897763746148719763749619665780419228742888326808295286206500549916511918419858830052628803355488998559559903504363466121058867478557362711856860508046029401966397779255824073468822110164951267091422955168468764624455086000086772644916310316295723324648985843576132303127595220050035319422039522779204114651427861389192626243753965619636251256666374122206187636402575898048934702519846827475153715920371767486511451601248025525248652040251570773135836351143144093617982143557575092526141677999799425976229716160787352299274334393829938325212525574766578910898952466676184362651290467474199216603432041445196510042987143446790440961904333397959205470348614108614274079260288650315622009934462535811708787088837890047087485730992594035142271846042994487759654870428839452910897526597772052181486885891210421102382054076883326836386371369243380932678068993485192443843161527472768596607879370565930133538345309577228937331590493919157490515936286868824519820295789075834185495400349936035098864945976833917060144154950283633721690427111986689760192653025702440091298026140072184098426615605521590598119643549537625842149400941606551490725279333428017273936590848877800387343368351824564002776911956678985702653832377388692997048078961874978282637067028690123606168519516256140549628475796337427300384680315727937257186290736087248064953799713734161615161925416445864288390951670608853456710123108938390217369413473401605234691645388725314929473066957292942333091844978104854776052671350971422197679643032166208207511580409483138387528989869973627087959115001686723543742766247672224433136811809516282663701312131065946111277797602721400888673550276600597001331652309655360392616296216394754509384601995908915966551562821812882982358412908340386554468048438538677599773015795724705089546923590832984737809637854796435387470822035291158011404171750361081586836252023503009415501226391495979355512647359919683322811156126497229179803583927819040100362369963013338111665516529857418819434738007357150157203151942963197344018121231562582360530684873825596272188167721590701455068494053062925728388967750172957085753301671629614622631276488478791849383027875473117011891159716431077832092272290288708293539269409116939197509499848681859870701093602474254966301303773412055294178266293345459775889417527728223176171398180534190106511650781205873433049612165834305631265386528950337673463039701425269913900300495523187775914542699496101139551122926896345097956280576909738830621581246655367889403216785647881368281099391730777900652226472336309350059196024823027176874431423226699506343931313074225503742228738360069051346381610026311335900863090220104815663039989976239680848937318516264959408314861779271606491162048863778608883077372361156012373911674436004599795726972161034593383861514439841150325353585022697605048948260343897758409748829681224332617255654427934253800923603209432778340968531878686937046482492692090829806716132686868521701769517725405509273029293702691327176759618829058667799254493365540769432259581338599969290652756337575899883416324935281209621817279764229915277336607967287272353038112062465137804474648428767086255760682460820770738214993130305209847223622405577126633572291249137114086707640719633378777171682434261384727047266703591279863126944042833963368723720892881695156295238850650935776037911783703296281474819838326581987592390335256741501121901989292539702788620422352932121807971719131909759112147172400937480132645332060738199478888445878520956750573184737469344585747467069737811865187516493367848298584876832193750907148520663434948308825927879516898085479023615157645494624108122097574391242283339075763203370080823223562751206407470762619326459907319912320217053709534339118851984231759925743734155581527974647048694597813128059889163233889316111824380687064455779317128072812453531995203296673951768856499917474466907664185964153599638468580811775908378136155197490884734746404926800271965262566966898000440787858132935421848674689846082846323613040494803059769326840721761359228248069802306570400411628226269529027346419442910435673839422918490504021915715784129962003152158812112403620785743787783127418471166370821107228425551706286631041222062557409994675402591784029164006808843758541913642349628287390236429149663195633027055955370286676690237601976303284557541951369780594061948534627584191930576702144548930725501041888773265865142061925689709038836366832457014889771046118411385770813644552358520754288793275826720142876531795334686381848522607116336496752262780368706242887816459394872389774150327157409433471784103891601819257351900867953079400143519757880205977639162138648767936320973779331160170996720718455356548829794775872600698319699003175077509636741632443565814030719051576654588285070095686572238388528153791139112426410759671713799672959889218631443588428632373656573721989267079489954022298508222280007007151966824129927250850905809884079950616101848260331545767306672395035535714298934912698649293672887162029894270871467280564614608491491390045224134510129745581568376106218378431894689966263276464607555160633774915120184143807642065420355146109411986293920750215496905442061996455532747188619330437160946091698053709613532739974527217476769716405208636274611883689444143809235575387466247059086246692867998910653285079778027091922122285222763523967457062973333454447789446977154602210430372137164419986250056107103045779972189279726981324962623895298796358062952976262609371388529756275990106820854180034978954714472083997019094026708072393758477485848459833935796876521163766075735376061530238607999530303814762923942119247840654507047848042294222965677967472660656147649620714701070471311295495787511065704668799696795221091612106932312263352382665857272974879185873181444347964809779103091700745914401266873275070413220595304100912560726650643709738043901124806925497895961802963745054434147140279258057679302512488182655225198072635565959426617771495149987571789017237328152191627238044176920667176985669405953774002929371149719513470736600435055412311598880590221064614682546264350657973354473263654333993049267251167308912613269731905080181082506522572860845328775127664446329283076261111371254059202742990748859639026501980240555614789293147748818885690480374559972687573460315236950572019740113782953264058877953484618535239626667666346283933391575935384040527023700943502635831276977050348169912263702849213790700863323153217232000211782151049848536054844718993770761734378454205025174543335645983901798014874944706150649985382038306437702167284341307880727326332442740118274183103389470533742728625630444837753643926122641897050246739627543648729897193883836330507322416525313406317170479875946370602634668073455777020841230691874240466187202547951324329570025992664970890929104301327487322062821600571775869216952999956950257400181074034908704322017761554479018413394783299434188688265420606627380630207911574996973709832477199427254981196412691319136032670892795887780244153912301701290421235793938912626460794887468482854622858489904715682218674832227793474050152972879252723223638877674866623495770847962698158756622419363439444651768709285622891587036523878933609901032539668161438259371291207498401836115354089619267252827547793134276863975387849390451799143910017051109648688272102975681154850260996886683666592129975236829304556230480461955966685927500850293756700270092945819060818774345591428090583752028950238437716847327217450189839942868209016065058562036271916457851292875459961929120785141537672359505341560401839781139561920153782511506391556849514956541626255590876175153396506297304157526467263836126974468846908953929844061693392125076151685676635233417559247833274338696398037651913769802314077325335913658633221900001778135153438553823047967364231171183557955531073389753973950761412007090678630321377129249955275192484865839537553251571535797694528759903147914377818439993236310837614877686724871940203900337586719599819275743787946838556362045171368903831770868645866070932991107073262890584691425716834937332443386737933637974206669450114722531596285742390390343227547321226184054236277686214015970987373653036213013377984856596760645188780336489286931179967501488137214374212517929730266660379404226039739388680251315754941936889320336927801151443826866276212646426105114763909205663012353144598426177192477257677951739342354207922828808967016626201220578126482953265980153753414031149828555792899895595816182562078683369059588486219448106784361878168221966855561824324318930689102308462510861455374081487456012711045578021981260633750396143143675961057074550877321217784190878190751228636579232715529458990481238080653970236196798079903343181716071824398217845306354197993694449687695713669330474924089458843590831763610312719931033110795274375743376741633899307160474272530654553848908408428138242085870081577619145137490555913545056685093977721032004326514353464198864971535974727978394054079506251171862542700870031801690922376260170447501996172209677782355921964498038623363659837980739186186576912199673366904438110187380269286277721386174767541636481929804713030318039161947778386733904095740030360504314562735855000158338975849626792586164896568146581390788811028626990539245870473321605888289741732722518434116564276164263116882186211369810249622406413098591286677396209521582168235227003601638305636536644528334413894408579376207446329080201124605591417190138549139320513205152788800335232607330809731301980624609965859673045640638544382440656914763948761987032446460232834449196927360239954222073175168409751472229944064276811208488928795561943608628672918837441061627945299079089206161212048431285562908007344816006092767745107641957957345172294924900834603659966186987037112339761552144789340309097031277349485373769389232565528375590002258464883301378723456511296388492516728693919350108692468284710891650797667974432174170673169066250581639020870131834028880942395464060811813246722644167202855570698590016205706704613122699520493347795155816161524371176824205358257647939906592866897508957486387328584582467849015714146628362529482049396745006998004936463293564119184089497980772978769517218376889895648438705635563774963538248827732965719652662792257904771680349925443990661244185429294142413673669871096911995827175914509813600557249932185716320923644956828031486459056806768106355111184093640770325480153356038249592904570438708318596955811615173053363690685453264167935910083095881189609662758981427075387687717227563390434121899466186988729607050785443751034487653874207082771629581221372322316192683490121824087494781705377972167094263912868975001668367070142779164787885695356799437591643089353484040403387909601369378018611350077743985379260188545687206328379630667744582817343192843682697302840065992294610576344020845800394998768103184251191566561192768745850990097035715236795939886432516871342933986927841425636534156259097492444998712328499687773498731777319505515870299431321176140246611087189699186277624907858444426188163414164074408104543219975458623979630238067707242068236544503902358231250964600846874428197404321091523504049075259481002634715433812487333670976022544701396606151832564461989897577519016153497743209158635769177489848160460447168257326321558086907729188503765826609966784366951920519758620383685877552919140070383919379147980719613577434810589752388838323666077833577965168833002880981707489391157363156320867287890725470712797086944079281672830602572063985993773134101181052926294442788496287491108602425641697836695545497149230596720557327431216694408454187637638559643365033730412334022351816228594100118731797205922671720359521973952298080754391339427766721959176250279390372505889274405100931740428770127488586466151865867323183244233905238273651072234806564563175617628626714590802046926890858420722878031357772297633041870886381055085439591074293916593766372798092611422995198975099341451484071830085484937500251756643312785398653278429901231739959578069911347199842024994072129116283772803254344481040211201167767756116112014632056090780276360410304264017262001546682005598910963563251729959191477618714240877293719992329172833807502109846234918890179194936540492436226536816670435256297334885760233090314446429534550643158098557715244987541030555882007149475681500635366283052514179262199547920661150063096296952957502313474019897677724304135090732431483866406882512026609381519935581579818194783048507656226059926051645805361529230608902485577430797564920751909606976375397910554744066486802367220049816027969929813116976555095966549640258833346470272206345385966901461214263289235787183129962828308864191933120042284610669381928809086502151384107836095176999104540757045963050472165849905731564235834802203465727706131307764076526831731042943604771384919975615076686977810723954592190303295410376423461542217869882893129399763088023472545665940446632747911522165620777437502564012546629852023535902957702775279189983326357558750202284624123732605896840694038380215512137687275640862100571275470710708698118335197716889728805954162272281479202364856994078535162358994466988985561191407616127591665357894336505247167596271791259416220482844203368286395117669047408250403182368383429139301418100141032757747956767167203372540280847419788651143583905491412413570768024739449330809235295038967735488509311571394812200758240873675962734312483834977642882801693546795627892935785827563660263344722285648496717018421735080360524257440469986180237013788310654162788127071993304773095559720484207851060796581500081032033871719731839914806522954975795967440573685882340156542331581170627150381509375567528081044041635528144669846178436194541912372532573936591486449961329096965634610484694425199252801172275664842712222205439442300774479165753698937595738061004749010744546353106903868063127503950696675218575537523760816503807611934787897022645833443578835178790674024850708240804402324156714759151185316073409557568600664787123100914618528747607467163822713511244119852002218622186887980072189999764962878463674312690950942209106469898266884691435894823469754853455192033296552246176168037603755088156359893106506958404500422958739778916382950437880120012594510655103632376657734213526542094381218593070922512933042517199615180913337890665464346853587132652090738776877276148389931923389357806177305360135464499951232213265963889902194399812056938878192878730284280324545322620150227652026321030003655712753645577956623561024499431417248690808996960024382585655799896533070933610737315955832198614520757041459619627956903777054473121155562342241054232276013936750580144900385602296441449917158580111496092507229605970997722385564097465445376359808637950232938937475467093635277532788026268078084834109969899885656798346660553381818342476058269235854816484802596365808747058998445070886456689888418245170556609310899209844391005031397246998261795223994007789438201800500898965821405287546466866692095211736426159654529365441950486601849051565620152287255755927498096897767590433281444053703078801214180753962493403705621973115367491412638219893584697996950677398947302200930563243898607257599557465008753675611037560591688608678322959882154223717617561860763434063063767453035887310944789056077647663803251704648884412530923762320687445747971012273573652175585755334850034484646461616770871916231130212712363734406539891947658308406508971864524467681219989886173293280900341674107622155492429670669424590531115990781184448829894258618539539124106660308002163871244623826562547058870795509733433453454234777285250265729016987728798903025925413019217795014755981004125090601379774817312559575015759399637219166467196856544341708070386368054561573908223077517018441551559480320638534485751193847235024044363912812513812704239806640888725429521643933641583018839232714618256209992330256216525647955002307886546464489927877078272152077555243654643930544272883729921058956315099888491910099478445104217313466400631969544772948911057419427366140416699329258819367434122480017234198875830550248660236175358683029776085833843547896752662086092641396052056410701174883795497379280077430719379454414282754447097846999760543543828406148411671214442846605437935525218588063587421400064813385261189455814489747157848166932474822296466350380929534120116628394841144708542278059067514068619094631969837483645242383697614313616330637428839361288862461991250806501928260615105836190258797611170158862293890821819085597472242651871630810505256550860204316996304895079094790528643575633805956667539155029503126665009226185094976711874687934465390400215372436597842845573194960571494645348815776437621266668452580866965123091568664636410999369151246589517966329993676381533130911356709349738979730702825543509131255491365988859994316371286490334001647627096950294677093663661104830500659788896817776594318006581282562588451012249663898889682019867851750954413406418365376665971860418168549276395633002886716004457587860487582335694290709658425884151501661397205813377868262182543678881275098556493915286364333232059653866153920406961903042426561726462470523979740013432426070323116968397055650573359846172360693978111098861271579429072065933662021530051828345886792650844589637534140440788417161071073531554773234639393534395277247526094583896489173072087970258736590081662380068842122904511153323734365851095834600069747772866620897622129540714695879282064322744879498178805131130049409960607372190210374622608621410873308075980495444400806201575287433363880981833432352710125851458284537036753308298571964964958975153756080728762160694221145551538860608795467879818004083544450523001680675367926713465039391331324466575967534075313508033894782539793993208808955578041296389366642173715458268676129728320760223449828252502095580236545359114720116225428368556221099134147286797883830103946742515868757301263450310084973231786454225492448233664832304406543187444462497940195260530450685198668428356738974913410411888785490422416321385605907464565031404171686453595147835383209208706389005578139358727087589918850290513643963591506302355897175643094178403505618806633145633550831822728844983885483957750489843345220501609353369978399423996520833334238566252095209925784575693013539663726321551709062782443046495575823872389162690237732003851936433624031979870267999277224085968835077136715897724660453411031621373657605029869526405119322822645644544759101555902619795828716527942469886771205790303755193684130549935859756750771800878830540440191963165239495869266530463306029401787397777277856508355505098750469446585204098896695738001520427934325369430793184268164648361208730892407517137383283924817568871175974877378927635921510422452894438545862093890100518366971214747047147853422191842131826731521479238868153035450999840010705523677849650124684682974415330818272533904546373730782616941080828209307854994274072752153693691721932729926885040844874271245848871756096497949110751151319118348886026402312789672190010948934223428261688806608768025865710834284508427815006317917493612395130391010251919095048130677016697125920639904849041182704643260737097592195076847906432856363697683024462223473293159861546701589840507387190684237768107083926280201602335716935577170081395237141744699072503221140062678731885149563820108623939915158143569422626288665796729187036928624013090093601283011134714128989588148292151820444616146179382177862834887039899095524383027211569573485051668018996680790213050076153174596683600451779919689034852957323900523187970845619243720319323891953071528439118129836085073005121189501499986142663833163921896863593571361501702394798063511197400393738260411410680087060026281284810907941366399967767760060530577616044813366373511284527177555890088246439799966896484113077417491857645896034069439049539686965490218467362567116874118326856948758364620617628938287649109135431789551480295588533665890292446916808446357404201423177998380594554038280585688894725797265579377715041151179875876496651754375237806066401251778720062183156398098687080868724392835041479452931608525607903982546617710875822356954113990479451098226763421536597698320290934240309639445113851621460224572161765367212940931328818065065433334400523810713264730044979794735922834375359866504334144240858027336821579295374094044203415742358329298742731633710690017515572558513661440324155133422468379061276125674515369210228234994048157508431928870466925287208913159742182494019054410507824010180906510523614576076793957892053151318758468957121283900071201468809820815778645717321090924547423405418673212189634575579846499611826787601767458203718965502659408113238639532624266068777379016088808884438459509557874291024511450324769373932560873480072848452657312882862581004457006020550894841038796182949244578297358738270748225552338548959319690546988473183373169976939895044047435138949554756482817880295710321745778523473322551267134946943704647803046901803044045728626780585997888615046694157155680384534459415206055403356395725989752870872592901705243004463640032641851686565650247385404598038250047933201585893878779506898357919464113555469122313246058183804415473709742732975310405553203777192600728062263999171618487090153274704087361959508367558382206986320332378352692836714963575791237164822233901181297631311139995061995471729451291519253737516431168330563353284506505313039925057631062019712327397176306519251229712933939628812560369837463181159044450892528357055005386873421677531922789694346542970795203243303233018521435514772171481912161009571104327448233570182579830429347982391526496778122560481848832867267700085538451410207579219404248071099457935626532438757404474441872549056663857966817440007794828058291571382204210099388680157086560743850888784494122341560382222417935173829864285706341520437902986506227311331058611998476360252265821415158009689129577722981012661700233849867987095839653641813954945252690461654022290366998337138867097893193004916038943718475162204412667311049659388455748490881974793491516134155086973540720805995350967985011771704347083783589566729937999668320540920482125588299500459780075018720730575127304270801172541938838632014242725505950009896406891794436953491376163991454557375715006297629102620515020746314674687359879272789559312902304471236315037646299510109860607339498112890248354133746836620675532428457970110509064136513757621783064196228632046333986206542307306965913683836075860457531048789733373721840541016725042851790925264421390542974737064659156446046835126303830339002194599101796515981113116572007569313499524857152221520458403142083010186158740418203796750283353286051974945236624722967600569719022353954950948262783256878984407122543201620617165571529358666770194496297091535476214609577670093463994358270354661825482809321276958418087318332163679743515401743770039670678119524931514646836212882130718628552235746920174199076648872407253638330967996710212313368258619686099193758977660735202507312252904295245316532842069499028756723446047378818921816739500344283089822750329100636157748685555199500227962093949992921517228143977352348798940221477413108530835279701358833314991551684031769394496440540432226243619304210721325128388734180198032369501354005960110134621248354664547827259372907133997108520327774772165972810739994566259364387758502918464606259870955139785555173473179985037944847587705230379475813286584584449631938329952204145287874746761401747002667130945518135081899575242699185007831593580488279308683108641285781319607436074872024580088345553965719470117423013480267515251189021982785453411844385108502843234958501418760076107421607352354851338959771465695482067457175576593321018583623394698491939533716560907739777721951624637119293451989222499004144608617262806672208456110232361332423766137766826096933732153020219047935610741422138614612370539164825795321541015545830447861554007488732461132611316434996183968731105791041102379234621251521463636663459355983754351184292952523364491764674023705795974576852825297931238002184117234349392522330299573845727854216705439789650785129976785982878482258009351808434795598387863667844892956568295116574122386511263965820525038952642985824865045935664489950976740046165859828662309269247725490081835382285378887948547596310525930738191754326350161977550574892367916794915694212409150248889747931505692402090073992879909033733009047990007620630770437167403959961138982240160259179135572426953151037849797564963407626478381281572300748310436213706251205304228609210874858376047748850407068074682102650142344526167496301979795367746901035263203279845369574548761736219835008576686661898746877914203836679554298593859813875346426208110596804767515913744047547813493736362493344734098177133915673079949933474152207973169669241462678404728800316975964151899985942896276592076412748174517197750640095868242543196592285024119757824585517191642818624803709105591144911343688657891533804540619236334709803793377609098127824296419764022393984524541837421076459920339805771910063101044900204300001834845120948957170093901060451568044113743460778656748056594575458077886416882894910765778354672575354118495295818583818180074677600205334107031446720182754750643514827582167185753971308487346140389537958597524978241239192748775369861604237583922415443055404721366510272567732624295709567233818964810958235759036192736952310298295371875241636598863253691195507679794693246458053757139764855052743544826098009951242095477934097692364521892793250650834676180189431233295192844025447136920100407125784703988606069664966631580789380677119885109496324406355078560142825415927151302107317595321277531219462147242119387191860213067298524774187569624944449297652607669664109900741506525429459306940994976450045323685622160336603749863275789777979688947428671369450719682329845788737153503562963374789994069802887058936638006994214608846460952310741769613258455930378178750995294202931741271752858500106495409827410773342163540987495788682263293588852312450853657776627740419458910819995000884065042778928391782043864225277631953257566074610013683701117869245378446632341666437917778939718429047776913251756819382584071690602429971077215289398112878198411057954689451672985470306435089761447808461071738957448599903724593465046317535246932541528915772127288109432857090011339102590408002227042716042879131619130454383611104494984501704112615905161598623300474157381328335556953331596250860666447087903347419126319354182612827294515091623459460377283818505421746417400149832356550957649531365596769748415966918664621874785111392324003583569197216343319984054725623055372782276107112780442943823041104798881816046789597504881463459210803414334632104605242162648949027086878990838887185932470143471328616058513156014132760358068262632409379698738202167901998090774298425642855176414459385663173915656973812101927907823116895950007496302612164139529399012207449827187274413233993485115196599112747692186405425033402980789308817438195379923473217586881444661797951358214009377408468901943313455574915075931550738104323416551368863006966690719543628724526302922207547032569227308177981473727284400135358257058527722651736327559080722216600293351382802594856498373093695939758831468417190547731302007845844021038550939081295482057432764483879329093518676289072570104846703077992950548040745870471479992326551653678041080384584726712762273455980933884506974500776033048840153461203635946760893387588466489102767457200267625309578505209461397476414740915694295084598765108818274644893751873806735033326253910191146201955875305307937300545423465709597574856360867235890959141267659020785538070541701312717676317330029238723081161328777647750069211549563855655144239354904834175871845132449307140887729002877537497209821306197069933050224974079576226701277864020657340556817372583845833421168652434288679833946089592199138327893964240474112545251595876407565310363848159643449803226747843178385697191344007507289685792111476992596311281969215459656501727998743043614672854060834411814103574393608633020937106465997186379378522328202038091175389648575149302883677237833781612937783652088832061867487182748523008812673358342653792984369760502365206295003880262804162139729995252726849773682246206872340864055070666845216424596996601970565628376261652348004377397912391596585374823610768622261437402753662830437951648292255648117426117806836427295110781368502130224295355896841732317954072651173206471959862190755129904253431247824003545814347284777653264320797437930088119373270997784941174814856214120134233704626835515236295357843499347248317742746330615906906784087307307786632770555235343546390572694380313188407532155606628214933274799506439508265699203970292119267383872871273703747231758689405880094866312717835489794603830291250877764522382870043939218245063779096585880720889005292698908482105512346702712206883889659160009513350536839869290179934794319836846060322506288890410537541749327059336063097785920391905986087361917380334560381261501771761285877377178253593532881518922101036030772989021795747494495319979358030149609982460249738626471633000004007365794654180196586227292316941798707803126404490347841906664079314375423621840635574488199925669112150962808724415431939426778873250938957952977527108037364065759681905408795382270876133447102410520601499792396962214976248304216452743444346472529703678022352746044441244571057373718421893815767272025722003336386862548083831103559743622617623846423068839475407280359404461103586941593670221094770372904684945421278391916740303675356672791184185921470976186085253701501395020864574539742551881071346290041552082755845485580288256630225260378868648464422734921081931118269508791048671121185323457581409262098017027649957757213803418692049634858411944748530511003783589488153274242158585822338460049377613763227799208648845298681876245107521593248167856801775773474339951372542447062002785684136963128132304248178002001564642393086450879168820864843063409654710364308612855314174727935217238226986645759091181428558503769028898092484270750545558316377903013719124946894376964254035578087693543746806452915172981908435548004690438262401068633803525143865677084817756883811321708126255642774733025687684508352691654661962990706126534972768583046955665660870358335489499602807785022995269718865507736560824581012828128636885635416465475183105056174036546619837949954649143168585854204315571257627109931960668284026071183066878708309453098592090956597403931774170920821887767626857632861539806830515475498786376072764042713701454810790353224540497575340090983691960987848982967023721517712394032117202585435852294609406203541795674795549278536655263026713237353480095536998133659261841249030603040102609750610287529077659660669460152876399227254746518884151760984562909020661883107761668417867778840413498976103678769516170936780293340182426752155099851929999210040210295636801359278885768016380459362310240458142424290176628656142305606775288285240983772577782945339951822037841940245071848005943475515956225386022822457516779463373939447372503882873595869535029981281742386786826437683361178471685592373073977544700913751904763887051403003983169349588616013038005553184800357270036623377180547089361428393504091804448424978621131114570669842736972913974158581739828376148527149269378215626862964540179314023126534754015199790338284767823546607658917734697372078617239237509831767770295325824499053952436368386471860398003307026102474778587754163438362434354068598407798536106577696940993195435464186466359422542568338142358702922072650387158381400315768731117542104938835679377248109137111787171954214531309365057537013015202944648256811691384875134696281002175457873423691206222570447750095901909457570995390581514182273787823025649306783853984812012622272569585672285977479993996437120881276601150383038189510786693766088903013574350475247101542610776925167968704561280700186258320556468533367583146308856073379886952790327983300704838748747455208114606767569615308535661914522943740381473982546548944238416862325326164878045575980116096395782381861627515520171502079488851166418476785737145463747659104950356849410295719506239754836929388167562863771743990516681822815015945303704526149038452244583147097506751861851339524205227891316340852451301323780438829389896952563337776226688175318601754598484460604883873919203591341223817739140603586295281322560367361862348026250613172459652124438331080042226714573827405481027397840958355618435125008998749741462794651599794146060792304809388865693691095291080487454675028593382229655159418535239909498054635260006336863920471286051737164660121450559520915165327642726314428697577685052261800758731740495991928359550680681134302837315595047069462834913369048840549706532535007786163575800737656596779655441933826642333653804283028846895326979623785097054807711676217976936422552015738462683239942752693195433641099127535456412956622710092003726234721194512190578712296156509916088038452922164405639946652815896847390704409658473405327342442670756107233569585928749038366446687544230846361106639149474762041520849904484795694707818808597588883006764356353846047643312439090818055622843387205580867332252344455908642220896839699303622105581460487883259209971156433789933762318488366235937814641993032766407172290386891566041611106640949501444506682668293554977769545044706473645875733144811137201415305527029193652010166592945933198760936167203222205891294434534476466622758355435811270538827485573276862729863303533180051780554754695339970345282506730954353000419669513042943007820594556242631078671421717532865480860897647808413388906300470337165440926644665344627674474216233120845678676117790977654516736990051978651496435215689598926445872298492443136599694114844856622598464117292672173251103971843644181905487828151173611573307771225939097892284244459583544131610559554389770628941608960196020484705185543756901343642105958145145494937983352433593692125414137490880070614080569194325766290717010973653815008117591434265056520755007492750711909000501050040590871146960317493528369955346144447289126180510483551635924690250450872605125430332922962525061646880931552490974321237976205895320301572840786828392449242878171707042244888841216665417784404828989724893601837132908836383372889367281181506158442483628517321829847638038295757797007699882943170459382411239527509361535145981241840716016964249867156016866466942481622882876819916880040513994364821589399471223665997129050539695578500761943791805015736046253543149518698430953020300683426946106241044383924165972090723348787227096517035404039236872384864480355229798520123970754036635520635217990747617061182371071204012086329217945150130890160642455430339256342773929605426950347095243099638002106130512587567093739612260643598232279402146174354938294027900063863072494003602717999756272337173166529029060628516879903088696032562948206143798230006829922335490461767948215153548150806646100566229577039812274698667097863077354712877049598851835222871384970616283147429873011475240492135822564855056381843789736571572087323599790658274364577740824568842825456982772107655153211606626413717544545489264459115619177508026248769063389818782220144085347580639015523732614978353604259620572051685638110385746260887858101487864884252368553327678492347975835266434800363878852719876187465064634517065642706307334137927394492370919255155485556232986102237784032952437072012385359109930029434993028616377754657171662892459821700198279690161007596841553251779500393951128430661302862059470468547703592712548303768382794006355220755802931263961024419112447673098948666987708731227470059158953394702081806172157812261806803755420314961952396958762104242935062290507302872169069505919992327569697892642402072779541703126453367039480755963996877553302864753290960559188273271389868147219485978215006467602359880249762999251259556050438623856738421323671571298287727310517992490962843390975319085412704135813390281105920527211367684587611890154046510264393842388958177422427421774804120381402136763720272317641203640928530627340869555601013629797454448097795205687349946908248478516216619298632902042304890919426813347906984357629950718335925977104198068669903723871796813951646609936643683502707506821941754293577823070359378499459314641217850305711443058379007819408731258350347696696223462103486366215566752005637352340532783716706845373454415093141418032266295549310341750432974770648609867615234870505453612457309784338580958330683209835371198996268925357089497577965938904670458769468834644231205157437994689667903712727511892582431559046057781028845362845358408104296327681158083141378557623993667088606783960939939166413732353978757288276358272979357829042529928044985418172867156440280281704818931387257915624401035034445867945801619967528870868521524890171656735333465592692625806816835256025410980571140702970976331013297791516638499409540720272176845439764185649592676519624756244517834189769322093972574928374811560603026930573946464742874641721816058231166540205089928929651710631926195829567106741764111076246865042388089191149758830108390174509663907891775032340007516840601594533410859072534317060357509737255502402105463205131179052436741455776599660313239730025996815180654650741511209961822673538539026974394292379087007555272543662462675044960097673321037903099558302399403607942590559228096795827666114961960853963944501756531164196169659706652223459292349181022891811406321812387220909566487300967515341025198559590987571933654127754315044312226058370143671775536858226348620164847334405677119204614044908068051067238574912066952020805070785611889600674961758890738935122528709163324739106416510914792424652183284352888658265827385921509119111844959233575340734366821849199046539048549523464816898364693475898030464521381969923011216505858843895094185818327974687865478984457781795136395791689895291306632773805757928798290387213583583225728171612273321035885784496849239622732463169387400272569478649735156551261949826767931145924569112116254278160687808672692446240671765920400733253122325568768322524873448216581442066880080015836697310274245333154411469031937881395350505317317253622748705418927145734832474076534311993184517487231459074255201949731963370910032373874299936925456189810208730061845216293967775096081127360976821829187278888978385677727305139460065002292169585850773191442302075539624837477925948822945932927467037912553571110794898590475483543366446463020638357612206294711011234413852997442639489084203932151396514414704778600009977700865418561821209823050499907532665268890491256967179891617143789855704503439881458779310843651184354679678068344627093156536908905315268459249548491535693622446052851772233391152370082817008886115577013804095365723451832547457706250974654115248481504853367265660971111041811627557433558624259202098959154565902929770367238935379544498688783576911834324245841377905476777607683708097256410935072909708188325939022371975627702756770553928788185073378301791104397670190419881004369489718512638277001466294376322712827863999299677108819707471617283160276151297170996731349913800901752178490414526929834260813000422914961804867953147036277867768544636981869095905462336409661982929783110644605708211483090083244209803445627214408207563114661212324393130992350945228474996158103519829887750887391896122178677939267575801729057644463547870726411750684170371302003450220333002597319044600985495840679176325541605581357832092059650486904869925133249564942053046546639705036838321865903132263270000235786008655285023014935680999319954917293084095121830621857899657744305608528711126009581361416065233805528714688663572398009030168902094336967049242389431979884701944797253228789139817786057145006454836228079758152597993100733658324921114487160660623969769570993324820225973342215289455640796301779126209104456904604986713505319742329553273264572514638968148031731785601879977855287809833187021673190836502909097701009646250124295320480781763963592844925311976504449237395950177110275250353351950117621905675187424913887100839108177350332633112494818988995848358486373264049932913267924756591219399742801812953148592499482499738307103625890871069725847915107956385474874825764105185055420779131878513509954564357147483083866291748040259196018599258909198591195937132639975883432823958669627472647695206386070489431154899596420997437716235594760575467364526296410598690624928039245694140036594129396075940396605095219934999425440641180230725133439421816862838274235230787586488284460787913458175694338163353995523708367081728840667541499720918118222823435900109081823466192311234986260277678889101280033509639809265932553650137998536144321506326314955816717795818896556992976162302436639962588672979861017636838473471098822287332529304135808847960269805309312930072241974715461620074964324240737380812332846854318376119409025192423815687789621469041034106068645614298199768788390402286703953903109855149064315145231199215478232743549227048221417323785730169107102744071752153542599304666207945638084738649220774143988122212175240061307880463333020352899073166278074232035088122986237301900906070574350208331005638525972246046951065827443693108524487600155087079885950939022204552472129035250402390986197262298759667733072712865128721325857402791658129527428570392698123466902338251268802097087361945792238322634948953825669571749635350798388469677604933334809360990623092518520289438419170066267311304492024950151959469270438813434613698055170743261384874045052755212961720110061773234729074467460850650844807575873516467918675024230404023497450160805084557739744308339995971365307507213711052503799730486138262006953447503263363629325254221515168238611395691993949890558561243499143152487951125712447732923620357431136375847304360687521797834598144677093333347482654308473878884310710615927695968970456884164165364945025221467702012299342476134540492244644966705077775782654284095620848842652120512435695859297915525626910131327693433867546254219639662404707955665719704850217885535104184876087626960673741667554496017883763884431854655282779252683032189368746594527854866496470653707869600548313728186164852694221939750252207614469502157533271007404247589626517955380431548060792909664351877863469882636438513403628370201092117442034319243809168997786900247493246585549540398892389356436337091580543284767136748923503017237291059183533364123308588549646796022066881533986369103585642971132684515846641395008028524511875868506086414956663153590947627630965475416134568259008335388660866777850771313395988575693107616216950785764255960521720134256952248220221459481586616910151645679934269255981971150193372900530924347209446894572261238729781415686079422267276569767441961416234300007124692325259531027592848372097013587466224426079355736846265445570507363981463032874098091041768358490315192397432970210747562189380797234265926103000965614293080745086870090270496584441045508652656863910342353937125925956554842362786104129819693193484171480776313016396814428206103400079465964095335826383526208986202477109253509201855986298145355473952201903541522588599384130528195693569187875996693783261446523034825096417918144775676543141634923836280844052324033764990542350434701066695621732858570321098209652137878731799099601358093854419402341709434308503648156779822783577265107121093148764557914284793288252165744864064137402957707556928550290015216646914130300080948932473963213316286224380546233028780525424675310976688067956484185891064305662110970413496004888942767041849575796783426726124318784078545318297299694197296334084574726110968379768220078429636812708284310322237123694315310157749622342132748356002400146499252037810835069774609822251996177280357407798639191832634676611770276713099058348119535077962928399331581346001474109512564270496885220860285082238689212275028660172313623535427591078177593161180253695527279388594022483910868040906526848058396695864614099623428436650055375150226730748033452260704802196739081621007499500007151936938606867460333246294922262312940934787425459885429053000916333925636543558648103289210264605732764248621607638873899320406918835631269573436193604933716384526248859101435989540222652134661875406045623250895700902212166752455742273253785429705852860627401361324920873669211147616870265384104861593386144623851356728101075984631028658163225215253060014988479948675096405728539934394444374766218998451214974882472400735163054360789123727963231739627758952469704350328590626658060342473639840755059125905864650779163827233539085769646352950173460684685404544866106431643586083982551715722407524220279588401641460339507649270971333498861198555394871258817471101774609688924580983209143247123536661974480813404065527509478205837820564531544642206876323119615124111838113140937696079657772840326137181862117834415767642920858719569806747246833141260202347366838524277638980286821897741708675789634802041382200321895857303537032889600400612079203072596862171081733922753561080507010687120620347179580754506661888214499234353114036258287584892686452203560428558616801335483930453947862168198321067149235932720743860340502958237245583176506451024569471965186129574533542573979740339125419582374424569005456106532302453883796909975680926888665699404131540971676068713972781440266369288664216506899940108687372577189608747199401296535732546572863951643751705533572473433862602253066543920245055187535559373698119117862030759484806690335297969864272974887146541005932673239475639961124927762664818715392639627448151115875156493570597118115908237090671573933125937637088190561185239374225193829373835481712180625727866887127834881698467366259921853305093890829748940520048034104177889127831677269508894651639121372889444736192776862323420347740216549255673247248414161983627646115155087771137745243627917238866925130334074686377807874442678043358728741554425756523096648006409315134698573681652369843796201561281560909798063447869852437933224526625273512440108911843808216499726754522041786285149922439272661660413228891826413353202829513951573834190097129368742166021527454700820730656309378920300450535873719309741380611808758848458809267901980782166661034435460742305011412783376856683387656273115063333613175497492567529452482352208496113266854395777907187201705351278359825598814417786438608008228431528157085744722902158553632299103202607059126951605460254531274600221934186638852024227981333654061252900720755117351398790757851446785996084476549159819521509063589821250521948167495437109753982847974267918427265527355095338349016036858000433653395657272486568776668091528088812084105865760521158423614161165209230982085673857863982027531465041606585424095833946285641562125561241984320233883915827201846713541243060783357719630693158822999586431825048337676375677403699595463955459827989981786267167959115191228374114695134478112211591532344554192453875384701166058505752818151005929216463928261802480242952524624243717383716708462883606783558767710965217574756607873981113950781234168164871827395658948003463721049587927299467913891203098782327546144773403496458572436029260762041219957580924084146112393038830217574850999575464364147988453809822292690217053698062405094369011856382603320584527408309237283486541942133525454583109661170125646516108246290118027901248106479938500075988847353403133335730930311205917987339717368032949674696367365966804040310115061764999847934852385177429158874427445617839427260251430340667486902337870276629149322790693681784887119752173106207315287982471647402806603276912070524505478661411894241186141840362729233488006897427882786846654451481109380754248038896175701113755965260195946578086123152797766476789283502540359657325851525987592848607143789857697030407152940477811342453276421188899514134010534713924418665355844862561784319002534471245492796448529108485592976618754836421318707645964320778543886574363213572499778583497204428002786682256486341063293490638652437870468017186424041961321326714440572141620545277634644072703289510749988202716162310388205355401042225412642624173088756631037085744573727733706706303650303499802614409954064518937808117789720148863518648103132946384751869614616016265372677812022757494968725268909218039235634991958705565091356759234980633889471576771148992253490283909522485372244532706675960517786457333351909651805412927886199333148184240572880365264221183436109107826556951747799189822322614492877789690545751106364237349950139364207217123421789971010427082900799281369903974795325311235170533234077635223922847823753757954394185795244190858864821939185817819696209156836941183027221099479744873190705569573225769016501807886371029176106297690278936280650821938521331211200111902803353600611528503496603418546311209419806745643576285133324739028751341603173086562839324418943768054487329057573627634616519631759054944332611372928297111801716349966918033299566191070782133292512230169876453762294740436495627647321929504142334909130674002947216427316201944013923126693075630502469375714391838547946340491573964772864726041712515114454160161844527392365225624803569623479571973001985573474814242481068191616376848833462569994184721619641407293053925900428272669354621933892676490979956061269824717651825459334901379502169473335537909224279039223335829623202953025331340914650161393687517256819476334845938044476749616622789262159092908353993878457290414081380538597381457645893858785030719105900141974758296986933534548258354885649073213679902310186980987947976557139458636434508110127552728713154295678236848857511977500055473695415236511096092725619573317615424876799474503752273567642422023254464578227367151347490571481029602525381773666072178982365413801344058590741109693633133169641079698235138428543244427945668680747314754822581893429009066445249944938320467448272639127275189255583890808117276643451883227113770402169498512566666748371468119855583812308782087744486257011651918959179635327786612513163161331746024201745136285621733940028659006930519678688446730696243762575174516684187241510189384549911039031375632123091336470180890326906403355398924019215096597400869966572924597962281725863374280946088503410072726703843439051002434197463159845425668067617445018357554445879636795943691037351778636759753506424766349175948116649427374838986444782639357925419859437279460420636600888173799103999145097345684555612162273187067409011956722417762131385371116172815714783592822398783710098189935227171572289862598485892080614692841655348658652909260616581268926269527962507206515025417666700973367400923776573040288898307171385469695235466233052892073432396675035079018217410482716754893391671365921546161570893900082164443625766866668183145413777492027685901233572986478955966294390053557689120823006292627381625712970076488386751879273113125130984377843677494566865663754579574953660795092721961879339057903114639400369666098106105310841441520722142586499427448030196701927219392572311752644025730664464825580619431971296859007829119556985883827020533290603163131401277692546202707301071802205725660255990078371839479670633071167740686820696149983328625978698879024993139442822812596500497652010325073885133911455373565386043409512651394152937107818854181254381824160064058304439529787197916491030276729080022830827700620737241846263392421974291650116080008282690471927439750827485459081092526895734796770330864641039028459255443101292032231542964160926732381690309629007864213197260173915551428351705306272256230113620214106265342334079579960946973362938929691626160454022211622020925899659161335373641972317594859167280754652892188835181636483070915876679285894075927532430458461473174479126012819382432542682793443938673435600365931105342417399170791971263036237497114985252989988032774177845265216720837196456448226949865430382428452357232600248753140962276187314922753949548805554029951053222159327650848734691234144179856673235839051022289133027829979164475924891085904743840417737556010363843706325069509694538078771371004085826917128174703486610853374584031004099083404591174568104448487540849091763394573372483826818566196823270758488169172160053358414045606403261320489623229005059713832436242125490097255648729784261918056657896617278483068079989527031684687146950433538588818407121731574431520252882665186146161061151277347159087035992492725013441249038986679188200449386585753884548811145580838611720710292691353409058235617482477665500733182938949041756286119190595871451509732161756154700319845017173240501675949736592583504217914001370490392057080060152216089803325940162370772205922479642127286070133158562518855043136519637643565443861518185435474561577678013041324681567991619174001480158162365924114604220433004867139305071521552731865700904302485234098088189914542944090658199689727645982383780062127941355950416453728620736345311546296891244522742522961651675015776810079432677133845804559099300225553541869721172544521106397246633170914742204545053825199103705390826044660179987331865547040329287815807730207055887423511814101674269459294435064457055017763799200491139325613822787739219730439149566534487143425943737269837694123444613187736679640390188895757217390743423524307335703643531813459053302417054655764974905477745344513027143313021689745869584644418500760134729420710531018539396781985209249526499161716452011641089406509843127773217283533384714484533274667885441908271644385793796461617694224507793571670964875192335591974309991032900847312178525391895267743466968154030108855428174196019788855941429903029046644268544549886923411051250973986250358282461798308738887980572272570719931004652366518344928982390988964043983537489993129433785236541053594227827571466891234757087462427553434473974661547867946831250044593538984523961170731728219586109316229524981512580904739626099983090373853779230450850891150361582208349737520010778753794114453733129432137423076693137962629769581369687925992649977167618239831505856215939882829776341921013910554390379772520342779090959325455754723064851093447458621758082622246107628439386778260443588670830734150314747548586179395061088619382334834214338192882860399301746397039747796545897739796077906950715018765175304824254298871363097907474986352110635505487682374383505660866232845498733718071071835891216734051041020227278734962788580840677234482151734682561411636906954130041653632800837224831498989811027603203597596643784482796462537434521678161830366578400550489476312433278411171612066950322776279423796586460426458734142888946036719009945071653734221267146514964278127822546509187988876244334940847763718203102061444394820089837587504360517859267581915819749485291399152521010043405627741016242897133949003749072422844522028626093215489978014653384921646669064622855997904786215072970665883724282417015775828948396627276808453697932026184000249609289617533915293719288789037957142576242378717325879007703413496230679335525494829452225310128728082603732153197608253864848728796088092997161354272443716713909537677667043504673154142287742247036779207056101629604749778836804422508026802987691518300527502049486647702354710927146035737537466251318821229431213547686727870505802329720805810482579343886025754519108679857618369989223092124498599457208660245147552082721382420410667327183262801157581650922858011617327434184638660663572277681830449360729019315567369400368587131773220253736964078602197592529755784643091072346474870736407585513632756142942034214978507904911551751379742039991307237782122329649929717278760962591846072478534674518341526216181294701864019339144349627475291342031689734391378103158425747523643808436902537912845303271870920069755402505632439651758032716967766740123900964760012121655256000739702772368334269703276586843128844084252145692766636340151845404871553890508979713235882999459796900564727794946696733332266087440844025170641716943416937415688388701342574174301925534175522546333436191195663899078609061124586126085272907909158569430041323534847069337496324740420987582587424180237760353147567534879836639977377677518462624187933119132256587849601662093378043704537130676396136194155062104684254609950389094690460827957643894486460742584580052651668707136353934621042346677216925756585567805507559123800809890663123842647002772841562681012132925213303054715501251693481246405386493826488056669288201903528687846829494610296847416554344567750643998515850215848381210794387347606996946869472838606555406368699433673656676124965568373384111445546794832658276298720168615806006530627775745685976369201085455353207105022303684806951603916684798752988206223477494471436123315922275447360771246309880437436682741690815504263838195529170364020117407887209357455254480655710892488253289466643283124384216704169256849545749641361379399956624434163451518481905339662168388858767212665175702328169374918935315676363521107713813332079135944332762175645302313061333379835881936978226041010931071494327528356472365107445689395698194849429661860745971245389699689727773218258194048777357047314070478843723558467252957139272049516529790147274668731366760005500687485596506412582413806992255270361123343592730978884253019415511753705330261785465704651486282367945748125882345103229151842066238528958702833598166644864410078929408387926839899812819210635009243710006423777217949144948955551642407423038886782422950807741253765543771305668384413417091121047211424415859928781557135724504786908587698096315360509438215095868102692932298736428951323785999101108818168107919147110318117454682400161094277178755225433506832695600687408132424367510506452429472351469973699197230914753542029771232576880878522169519711854774687246531996641909303481537985509803499816149818146008499105185731771653229348435607723176914735321604076549596376196166617156501558524468083841527296560310149717688885446886334986727068433741478396891238700345970564102790220350536057335767820701544753783220650825505790344663780693331591953945978828019242080342108776227518167170405700993149648445322252849202098416478942774433776753322340205097670957035215307622512417204984952951312082959181003935309194091915163540696745723542145373313687835785623354824779425299202755417469539654388179762446391534778234104204117308550291846618774949577793236199302285134033531920560337664642375568659156449026198960723174888526931511701863690488588787807988202500439219217439441800632335067326466135448949682046695556679990606004039201950728046435514045081616057376726417847228859433185139623375070195956062537624181241256981585317403391353950119162949009589826003646117316017669700638394512041276352417343220016673150704067098190560411947910181366839650180271261364295875392453762123065120081309442557343070634292102558325601826853299899564961316074841116166368477650212460612367422117984472058330322479940556102090918340954403561592855958942663851627174910075724177909849187541357440460565504485972408221417225483983453756412637221334284003890007737155265368037338228486980935742547404444810743058064390270328755336848028237734350641948127035745692227254917841718327958170056645973323557787339808021888095912317910754267697715301068314062128554695166992868030422476413184840696583713356270137107562343979811360811708741296326633002770410330241203799303965825282919038807779823162961667816818900177147469298167634381788099469377834800224933441458842321235103804308388625986479664040195486028476135485073445787057895326738403149132536768659707273667737450527999494422668930297132785486767916510885804481317334223719389513951312985926538102011281899061395144902131279494523131885861440905679971486751746645074397624603038563876587261813202169034650661344432407236099981252634953178798729913873451239031591608384429707081536138358345055176216774357308158837695497506560256222884823379883143716933679218753424948443880268853443476929088331197581693388677965624409645454787892177126413055240148440147312138115963638664650267895817917992820308828687160042434016358168221960339525015118074629920606185659384277876888656868672168582135324315768442928796973331098229727829475528628180828582954031405969000466819820704984496580984580764717234135738769532337270050336256768154570773363123691726053993510335005656250523203057515232322422215810116413852227689115326290140384397965741444641458741272897854906885925452423598821581437044263821668061385844805760826612550259686503646633130156103889525636922016574094267520600644546588251779140051059756499623575405945816588357737253643727523114156511209819223207812108472262060295569985416579558329951108204048174503436305560257384230005839373681039474540346055978764067749733595600110179800636092681735776256669340922275187738601342420345563792167177832003185298211632474562954929967886750895802233611546359622691713561555366220087466586497397623435482629809670432890234265207016258096072188202418135696707305035642803616552805412781105927648795319401345031369489917020505362357311107002350960874655252249569095096676122700292158724150431163649316318767249537374954552206581096099587255002972881841654969719456932826888978686846958150782231923417692506807817180720982346591951949197234662473930818215150639148265487338461566522786423891595056565103072836145506668889967415740622331243118836541541760967712567981462530843400653770320396875765387137557643317316402420211376737127013414992607811299189028179511049952044752018934396616000347867295346072213190891091472920466848021393068281431325641329587277129528418300752319858450920209066495961625345011470751625473463725194945892961334863333949073326387055376708020965948207922178279364943692891097354954572789605382651705149000739442683743952467184425555613211735558452198449899934077744060933817277926099028511665053556152462082581089117709847244212580574065229984581122071422259478072753184943537688256843401150717347400195774912151095772495051121184614806353028027049923300211360499174772615850024945318569133037789293845566961024780044812164732243451989062964178696315307978275240306781153348050615759362698551342384545075182784497220514135780581659724173889983068413696424896504912294907276155877419811694426127862623310546173637982746141482592492013615371615367518110922938982011873054680901849436960134338071873439971763150925244135190545273565682053985545960803324559514314558561897543332763785875322821358269640250530874599891110590058496703353929413101788494564649771399043018463888483688479809274933654296123391537512306344932362387689023234453912120815892986601210433171787283518098963936207950754643578104964561326713277321704602583602785503677951835467394164403982463174753049420994950777848367087222268694086796666407728495327309292210541786081435808180249011123438926871048399372824096468928278581013368449765278870808253727022960534183185498253849014645409986277911431718630924928731692405930546447307498944031734824224050245302592409299851009566001829106288840753745418298121042426833468473605287121259964599864280321761913619321438418446445012721984202307949501603320388740971795142275399232621026067182783818903964030241503098150847914471723050460513893432467105424369963074553314475348649339823440021061025611666475418552844388119465315140901790531790748323796181752468801767572737117025693132909940882590814467686617543554895971979973278981283100007703908995101258517279155990068503616218674435316481951647842662373673632597347546707856134880116195556253762555687470237114441573206680839324525515954259762945604378276728156309767051432369978059548078584182645143185499428541614332046661926551468741423634345444253945588745387145090341963612495654126524930740983818966656209164329434516223627794370678587859465450217679769124757245044880289350277661258602009266512525242395227334557096697090733203102619228116840925413883237055384084024216703371539888735119961156449989912004805765585459035270120346259138145146055129330748057548728403682913677038220275819899281456223257479537160446153815937224975938641255333802417085918593833272364691791224896760492621841331514930727318551671752195766867886785249078341123195972382239201873808443157896227978157688521332973493614308092112008928049637719653215847720970595600914190119332235299338362881753665794691070521788256261232672652098248531290559380116939838039789755981334673316386437055807254132512656051071070123384153809173004647256527593754674341152666657342429545322980527736239898132007370960481991924479827168538659440046012052605972267064735444756124780048312229916801413707443096389499650843919641770556420382893910438579358211834427183286178817981768706969048033769545469273740203648937362630872790236799317766999787217026769881861626960431583139218171876657453897410020248671395551440344576292779780416977862866374054705583610170503765136532218211412872877381627434411188181637802991571938278156201224234287989439978574498084548472793634028149475236534785269818327910976224138767925104004733731288956646477400072883310537602535921154357689959447993188300235112110128738863853283535906467510211584137632823788570590796285168832332034917328764386915563784082814082534497928402318403446262862198454292909955317458455519059479650411523433279849923742982656473700801067095225190553894368053701709479735191401876409046337292825367662991007109585319669318320892204156722632812145375537851253023385781017558642548250819793603807787223618685838417446791215070163099087559564867871215344461779191422272159522046278734116775315085501149316860434171581598536684231498290752627644813680204875447320915337326853678998190227201177838826870351917138366737870468170409925579446487119740432315572032124537053403842880389031413794034892818684591657395407102370401481451226509006174236489631431679302248579378402894782788941766304744261489656737526404369082735809379543101787602388508948412290737344523746189045267360026002010021846299774351285941865693203681640396967197684194504150023746364536523064767319097252722747569642453129717996429342677365153616862889813617406189447600627327715561084176336688648765381011560449315247150879813752125114754884129937270372913827181348541527551990430070705353788446599266069802395094111387153025905766200064164105752299303569152425115157135244844092276836532213050696015307005493729769018634140165070263871164592914617899239825792634664889849679710964124791912320023975143822343254548936112554929732910382457996947959850056755829414331717474113362350350707042813849593794952653913450791378138834549626924885302308289261556242000405074349471936809827310338970176399924952942682587916808866332756729462050651936269070796778280957469778199169506650614098164520282700622721421904747698756191716166816314937791227297183777289181119970225905374664523504731272402554436899153546888270775067331382586124868497592355837668168532715082924821471337078260227397571362226267475935480327398507580078598394526936321566515113788001107867107975610380840364507356546947699962161539966815781194263306179348991809964971940774999634179060754755039515677428136446320420207171492866460407027535414420988163649733715577929212687333857199622054225956374013854947947456530207871754618084953943774022075578934858176375877791982445799913405266356062262798241408661499358719119180249882302221516013152563969005839642117220445841405196560324281258552577298161210984499556687655028742776323261962511650257452879374093111790923067345149025457816859644679834300582720521294208668567566642085180009507686571501578563579470912435725169827831976415924300217364183369644616081130469835801772733738986221927603446657973394961014887653620092044186407465313785927704288687137917051425561591071654427931593768810208066849660612445000537107750260504896560739977887171572552961035714331997720108875913829430428463705923961490476342812584998381848788200649549839518671598234862419147388118464009765241644436416469301095865474139434723155527840829483017875762382775686967256901423811429758809728116275017337366773671012275695719517397468892851881866780293092069755874822622405652846619692393723360463771561498766212349268553401387481981451643211067154083980525006969424116189924633951204077100134256651010943024593546376999003115444134485315057462633852515301408104473128618987089450554683777103271028236700253341925356520855054315377123776365478632676181038290089233835211752609510989404229648059594283753151522441202564350944964299392181942204755246679630424229380645140571988178331519662252514025376744990427988786914628357004709854604327306015165929547699667094181163947378639803986769175475693551765051124248276484094460297143099115395161910328408053971810161998536633116891331300598811634463058454581834759305559711793632754686387073060013050897022033229180935772222621931111123219719972621897794743025489400156487425377522590957204072735807413847717308531799847472627769035334128211785168233120583688790269622971722311860506516395439553296793385352100775647595479639767914760688738166809996067056325320233785012296089165532942144661531940112675243160080958156861380287918951564683967401360583895629761013859133899364725469255479833051639181546206124566141238669673231386208869989262255841095772418210127601349113463357805995288392743790486279503716749338326490551095966373450212525526752496274320514938557884547715463527535660263866460808854452728934842253022550415925627336281450795625275789793989841363820198068858880116058527150475089505938377281289084004462818860079743787714560630580508033880166400513247247660093112633835935924874436014930527178739504712997710391739051580680090032698907077658461201357954147070040168760745500103189205571254547215923696303236049515987249261298924539520483343077048211737544974981196762000806923919952368837788773396974167803596662114638338653385996261833132183164284003502157344608985794906699340940399148034218719593597206569878325336776224339803250158985483641966537536395095514402601274590504929490293390883746269945409380739905328124718944958162440112510500247423585449492977230041613603122865109928677422190149030228115614939777454329180807073518091903697792100937115292379574908759821287415137615428639026384531514752674000889016101537792838636964485404570247319675181131772911853933630942543077861829486820584443329953065832835517151405728868815794476342150663500369287968715037275344912314807379284435322081336786209931875504825736614399638920529546499542240053988134821464273811405734449815572067993568126641632424510560674513361200395045453846491304435608487436319633938655757872143942255861987293133999306399908327970351732752246335913129347865317372786286992498052540435103432943292208001280087333948459093461077740701750483818834722013176592376922845554153025466791717654920117372188151206215522550125334112055729029908482378231964881951575454180748906902714925874713011691751939335821336131773019520604464257988108696825570045395019266927161175441478809324744856436371853020079407840987411492684383298689541745789306519263384161651555668562959409603812775649190109257194623379556515632342300871831375786441489252112685224402016385983985451906948852408394051983297965681484731980824428274246601581105473513893721953612116562707926486073199100523731249196184081954256720398831970685798384147899398016002119664135928053258671295134835360140684116353789416788803752513478937902416162930044887714010628522837448318451412114940184256900755762070722062409727248945392105868867124320968876437980047386366986508179862501685218489036150725421709351182658899958144685730861388264338295095776312859659119299212422143542026042318632860599930319863872888646463795572171249308396970275037219315366623837512980085815116431054676168318778531525632742817876903718509044534624462751632869589246120515642049867753221460074708436899676402657801153579154285743076246439250190047646579855496164370417019819681598138046150127191590812033754925816686435513759935966208917303669423755774477767258420238579543084653241368672848577369603709551062177987593286658613425964701807747102779899553015070881089791301732760658569310705911040100214254635447376290712059686606411513080530699615883869802886327977425352723050356257942262962909646115751258428007308653671876856752109628407372247637775443581195381013428009571944504081389576568139969503430918122686355452841423312357179192895853957322909213876815172452029745214378945048288224928779494342916020246826875205138377703657513039339669817428502259422716071692827073753569589145460760850620666218611464243847534185344388300831714855359922203928850601159458166781487215455408788050150037306791047944038073912864510763506591634166013908545342948630771787395885519005609841292939611475146656238617496674782084208377216965359414722610196670515750626691079165745270251662111827536927301448457618774632912093472767692555219205780941181937593838469128384764414305906117896050137470716838388697886131850627052213183863887928909490753412535317261782775334616684454822154054299016931961009235081180740900623641192556028224544440949418116053735446110147306145533897894534370123433866603522129700281356514576460200676932187437025122590398228844651645185498077066632502214123791948076303222610211970545744329709002524703193678027867656787648620813528407966621492550386939581666951428833419369878586752454996834109251129152220244093102982505889271355929657795460206374950661957139059696028740498112422959292881357350161575697091716195374536576264061821394838029603437399088945763167665959813619253497673288429167659286234546415637399895188697591719867064568822649905694179969265367146568398744081718265611025279604410120888244068433206655732950952225033397327635271271584239790353605298405165983376994957510542097444070478806497351832205947140799105412804568084441583357398505504441172812960446075818072405261836733971454252457980919228675160853525344302279628131023037400400718294508771938680942938783129793448925090472669104126014838039893937434457635080379037246554991322317427987095640443489600533358669586518536491552911987265099475632702583176519996207301942600406126921081009142879108864748557100491579461282360231497872818271489817898637070156075511997417257493177715438458568120176532984714896351723123546574041348185986895115998267859617129549751913839909184752023656081584990696344391457079344495206199502534315609784498889754318297946673805684418276556807559678237194924889771849557744611428732550766882035899898725342493639173129907436509527414552785314921980854401485131685841559737646478723163752392293242697896200089515215449498060689671632478683219478313847697500399464739289298056905173909749983578239226222077151607145609824094086342040648351974365362367153577547731821575734232361366462166466554983182732353920714590688350074598101317975891839793661410969600101528816769167259065213833200845550691156473033674701718488860205545419845566243871800249979761599061404358478926727699748847318033253987035607085576639490580837315436449575636202228438563556376320183395024929464309865573209796086115114981815772117259254564000016414932566084156509322940381147998723820766010536357530194794506168178018447931939542305990075932228161668672171205840979453399299775516269552576863252404094965307061017838233944299616112446234114400419255703884826507716218802639984140250681316181089066974432878182753985443367057840232655985677580044800468857557988571985968986410250400174566645274939635615709407545730289997563618165823702597628673627225945889180722735223502031815585147800504916604728550253073382794253448874229879741792350576808810317791103495920390674700943145463181056771475192566352205550449873129233810927422235764979321454650280372250106726735072324075429420932454230480221016383900236582285588625842530098492032647277780812997124599989880634208310558984215664214332438843976726723412544507277148068122082720150598446127725842920902686155272781003093673526400276546930011512073678210574703864374701576793480114553016302719181906223195342534625096941689796965745825611657953735254474187564576713580994265037895190196594047589664906028238084597331578135260697891329517800917284292120012437384743795666970753554320707600930681795867231846767431264893068602524567016837058555179831033595492805997302760612583015229259904977750443910924049130528901612197268196558326216518085391278425287839194993769289703842828520991952242953933948059660306191588264439929324752037202097119947319625364512875471106891510521656807734141430174480246748660628978402456363197543995070679865020894469891663962908668500532515481255581011719426292813461429681975225127713984177718264907591320619286492390115180995142975108689122239579517296347945081258442850300972281113514876911072979931995935913617309080457371982494348779442738792689677325666140057121632653369107247104926806529691709282284446283503492242253850688098396370327100801702494944822528550676974689542973695232772299457073529796304669505150872667945716033197478503457039988334881097644089781303947254258939373478724562152292849199628365635789101939392799080319908670766446222348579014058788183067851293368999229144995236036624461432192850543104240010338455206102604506277350901598767302551142639828052655093700470224528822480921852821999983637994634541725230455880708304992015461599075949898366549720529697777147170365829896319548831151158155775705020550965513590906775601708462764998346489066600656703316134871256867390563237264989837676175630235749246260513091510912038049725387997130386068537644184058917445671515946810314119601788898612842161663785699159971351736565239463172167131581552999863176037642462935511758097354322178401172813141485601635410787719953978713487204356539434657764596202199691022281562725580683553004862054753546874095076527793649579874692551455397047723347955628272069668126922143297233075785620529213812351225726293449709231666182395299443686459099623179384936661244041345702900382809351002868462744788738893926961767354252794458257851773909135440173206931085891065710051433654114683870134059649809235195510237887938917735559952160916292853346807340230830056692207720198407113893225552832191488721950339562365586982961103341773177112184460922225639637999285885900134389914189919771324558795735360283961747362668443246147073577904525008037317916526658989369575939738637256708276082066860917899843125875407975507565350817880087896818026642261262749276140573294682071841993349537006926057780845998096441101168374385797339328673240190530975172279192873026215084328936866444631187652343298441674645505509294689945777106861982106759401399745892176171284749981713479141273466506645743994321552589506959287577076110152546363811187743317741337722890286572672860261355604553863129664341172695668775993702386033552201710867089221353202237131265830824003433664164697770593452049736445636701083683298195243964972742709731026423630425772577841604995912895229711533111195839759321066383528837147304557593704073864098357151526567393773943411404186149073495889549881783307593990848663419521506189507149379515093283094071070274723716858126596971353573465776352889651066647066354752123426459291616503705280441619341596215308933744193559082863068447241130874346774869125077000839073593655747277432584786084422140769869446665377622283342118306864789562242594914697697726466980520225023867026757613255191686106844626423429649040120548199326135069759199017194063480796589042126025783585334448648965615555060426507136610695528397196208133661090706320048773356351565527041023305386724940129357748129250298745908149613062582488728890639315001328788678879739998808201328041040885057324813002686700028586192765436246549038421371561699248282658456704779327794177803650255806341669295336313835848541570883011577381737813322229055044992258973227970963791297513181563648937236531847664707992817354856161305738902487404045093523900012371895921607070904563268241731940129223738644707613903207794871741791432346173785532876375724485855746622582292296601247538229274247362532525422081815635398803943134691881752779583334012942744659609528087812063919505145088421242067307377560857617960294106610405921806469398192319306966489142118971848630061101694479398764733263299394002285913938421251875513087817129870413940647528510723780162872272910851333380729076878960446867480816671443637750411265525249040369035117149313209715514274458883844776634728951937989596163385027304741440480684022650622865524666049153070606622771774598902732315856462324633071487827700120475737509207692405238081201774542900632704880948331622699226271245355326436425684070217282959496012299975202453311888636537006838539640805172483656527678725312382653754705457114785360721183192278994328118925279750950947989032137918883223962295860446054459638127946933360626024894130407526061279303503402784211894379327216025059360244625043301606962386082220434199099855548318215982154336533330721400377578978774746907602634266085992900710306749124544893146456638687976049404158866458734965798250739877981368719748656149769526840115898879002303049411227644578208231197999680415711323879418626261400787420427758037759284006237758583444866537150863737603684382495788545178215062879885340364470597017812910148863377055160762248032870667604896883506385974935970250233854124431118489335368301395425154041074731745418181973590592991563919205723248257300161426483559549093201718668667318727527351391056571832913867365547471312835182075043182503713848340595250909566653757869903457520638413896589219962548374600536403729310567783379642780639362730487012281534269519248740500335201715025746472633703934353277234484482775234522989658950584033602909122103500913196490962732625655939367777579116509875095165815686508935251006252679406737136535392760868641679350913700628068169897074197765936776429096065084487511468398813453775116656906101801193518390893231698383937272823879541990753640539827966921497984875435225705001378520097123707407244778733870765171101738781210878023884362046742531858251206512874353810982054601699846901780585897120525119420972280906555422389699878131635921741875486880557330742614964521632472817344711876377623841123602603270803458244089507283004889269065289872248136099914945019120748216798539561222230622501027939690271467318728809686049473334124754673429901491654473256865394719133873796910716667569816108754216269301208826571947252980056685653673378093957295097678273749848191512778568132028202158624211834032949969551924746371183426604211706984462651959607511514763948202334290380048597529379264475741775841380407378983028246188373913981009278100944559644585202007308809241138466198354001390425732117887100799543260153035945784463893707624972308563574344152508097367739724278510124130959156469526881377432079873399040238076844483749581558420411821693317245157529930679540839865661255711357939743299175876008504304765910863090040277723442000328524048457701996026493029625802098443987059738639130430510454653723791176119004572626449569416017710984549064736143581006025752240917686703474724462437241629826492983093636371308985035839131834947890872170781111660125836872267246713793136182224941696602410009071404648017182840886650382031347916742844932308225732855812388648052250759315182668339401147657305149689343539623798445612978838595050110497575290516082634614503912645601410641361434528949667561117573909595266899110277999490631249714549619770470293290825070723655970672075335139223305129846073909416986279687626660237825606317183872866182187524365186347141192183677640227376344136650816142889326380427459722239453138095805414350956654483496457454422125192221283935535494417103595342742731191727715414197453103597346091453588816218416283786273431293352056795056178367421122402225266068657606359426890003524373862218674498576713089964753899028856048731755898844002374183225554946597650802234873573889241687835023797311268719051731688381499161496551227677635521420585806921615994555621884899060794005420807292311559061254562578909409937117474960254426755872360882534299235115986053613054138404611809018594961121099936582937728480031913865003912243721609984514507048074033695111560261525967419704796759608483074320229934293910137414007231018654114932236096505909907358757851539492445922944170748313502819591198472462817482463024112917483574855058067963560998108468495469274350597057330409424443429227508398054039139335135026927705212211417474788582603461313295235557236278885349241138040451730217678905527563397064179253426802771099682704282738333039554379818056875932332769126037572209376166106224222824344387805275990167319749169799953582595512284434670028792535774543719643196327519274175579354357524783116224823451689703118171463648057599051006102046082555206363364089429191997610700223059776723198628091920861275774821640596789022213965962988804789472571454489396773449668922804255659381241546336410992159118869377477264827033864562395450517905631647803889987209033437733152579021231857565610790438988609787446213745710082903466032113193212248137939405914224463785668138942211523329041658507919757303183964844765817852315175532253956658247327527865633432996514580539582455516434973577797707836715447876664153466144348510576063414914064825487418966639728753269076626657706177119185206909046791584942457325596175556846175702512182314603756867988778902134327376263105837717750982517768712137175894379282395144685093965280681542919899019797039386663253801617883453411095540118029875427544085913062965136792809489318405509331432623350960622829323314381082388755158011895489152584394342552263093210315851123508371616148386610060774709049850203320111057232065874164219889943044520662267781194599722290513617129319228373109712881040198016110424109758011859005082137416530798006332933572135861370136690929963453421041284724886922802425517837734096676649939659000255794557950423378757262814646186514775419395418863585576184582799016156588560064147556941004811730090534467086072839207082442659087262926998963045930571525405330173005936187592222103012264292541555616179062355781366150544505058483894994776881932877755646099439430001108097407125314688994131773500717463426192118117792888762805513811871675905412076120930780239563050894859901355743792607444053610217117280801050928684087195029766034580247426263367773169299279365291235805407167567795224258417496238622993848618209770258577323449294713573821349450571990453221575798990879243289056273679197099383235924895357547309994039342300521948808371896606800468894376686883270736613206303372423863408460193829868575124080066405337872120245973124300384123386768972404722852784745981874589117382502572083187634763335372675423618588105009405501357944678966891464090673045703421533484635275711919220485515494359174418141832673721058008496834985308745579329270185831001879739121617553106644576391374653247247493139193313026718877357167201094772762925516077982543969167942958805635634825920625966465344485678263852968794254694366975015526065094747184372589737154589819576808021555215432725767089676037185977240073959968468034506611707821114552426525443479393893179728800293745328076702444813349920381659091979538316825485969846055266339549859749102461185831361457093473096163547543481808326293552125257468161189571577005001810524927818605501411584673987162274336442895843076007623055548023222291190137951661255793256745161363172012133646388834665248653585280441955518782237699611742076187709675323972707458604363497268117135823179533200601579951493116126039505815527973115059395355640767284357089865758776623759695781103327458860729559378431037493047796500428661273773559363452471855207139791337442757732028989482996030112541678518096170924256144862272971914041161788291340210028935510362819935452871683407253432555200959955400383573012293210225874202566842657690137296166952731495553875063586594120045023021157547378775544187986222403860871793255574783998582088445419837516499510754731469079223815288820894044250687486865963999842569063955667304860094428045406503567616093942608359843735795655520922000789312995167546384428196537499045367877167273700751526090920915360959901551155394587073444966839528288573220030328711441995834041967036898485518202161023962240551981693964598554284331503784070078109561760053826258014358850454023316110677275025345261061207426160719330074309642842776398514401073713107076813129165201881857826295131134807254129325869293423816492037394745522440803044287778134642423034575418991229410254792033994777778858581135992678003530974351311289539439505251941714588472413320365397356063763903138141964542845225367214450387799017190975979565033062339441923682844080254457117346468811851205074972002135740488014240721734216838745380913454617794136377655360889774008288456227274320466717708313264320151415936600452039676064637901129015903411595213829030386313453660791906543067020922412088115142255031417077838176620163576000333605225440588068318651049367632876355696603531943431452701470318909446621237225225540351666593917340064877284550873332676607929361578308862367413316996743527402278394229750471827039787738459340209020304229391779624061755397830058747835117112587880294424246191795637895081294301459069102397229368307095488723033894867081706188318252563804770417165094505748365310897873910624719618586525031036098899197980785545037675995152611232079601778418580046138140490018491306780732223410573600745011665854419708630952093278969713249223610793941157793581128829169319924993562963745271267436222919820391784843857458904777481844901019076164668185592824466154266247212407237881923542341810928113194186950754601953558763019298911385506326789485897850321521160372806880382322419186190030051223164821930187666549960427580348355438802636316489416351732081440943889234448097816592367529260513387113802908140442524697406821083732806462933420442251105712938802253152363659786647636550086741236364672548797324000941579624093279094205253251165100132881155163981340902743715203778684795145125243642101985447119863136002598490200990566612696685933483511519643947985898482506495861994403680365403756513384222280735513790174699040792447692523748206086003722274109045893864889258475847749615734206229025779485260762697922527118698957132538308026222326924493217353661350153008912416255316045261898213135247152340346970251556389830604543438682874450803207099154894143895155655796137043120123296791994938613812508136117739257137670437094590639719225928275258090319438882878344328347698774251013536332164255337510464345779207478884779409520821027265016889161857525908287812321574111487011004673913843461069791753804554332557675997504249830375171458277903759615648674082709386394404902348583452988166361454319906300503893144168016347968186752756554307464714450609084192246162944891304578991674545099726404136669590221544022542580098900824967009089821549365007635580789185208797951171303808131832559414532107783114805331187134471932517657712359069685576296359481206094889644228709036599876334204983614494430619953835469194772205677798843624634783197297041139456963489556450138954788024519490763597357605026261289009182267497389115422312837516004487578778848759892394153965454414918956679059580012620793370046800409034026220579125913523206992493734463851343758593692040111694309793471465134387306522766549850879290040400601064996505366194302137476774953825663188268115854330451137220435446948569956584879445938324537796587995505148456629703964106350348309816114024228279010209765003572783870004707003339339935615045622036276610432989489973460250942154963415598257534174663897350300317184591319042776895947125697890570529631373023488949543942585677342792727831036259940578474505140527169665506438568478735003013881559262638015783393393111718067976929709648262670444213054056080310827650507997785160799908787672750936613332740494837732172550597492484032457620704031617585252971336489066243689930252301517785115795622185883145773999928687330123880996649388863454613877373496867032952145677563878473979201189164550521452726918458832715257134658228756849660364541738198550981552788872861234670286005275431572696726116478638752570631112584454507514214981538284529118080556576614982865649371159304475799217636802925981143718195173772224419257146823262050422351904701139675556966199167444976000458208253847683052986688429124470019179899391381481250774327297699284102280174653963887729055736847545941168799913632882651163304340469001129171590120665753259525052650015951465564040618805370135060236009313813512169347569565243183313389462895677549905507264978508419356543437933833652588595434429269527655085211789650943206346986623031377992685425495426952117416292679617212836163419722374199376701384168063296985199675791428921912123447159754044292921129497909669055319854967537207421942548650608615418062645429439532730437344692139423580127402134804327987886149450459622398859839223315324071577159192029049089875793388701330339196962624487777494703815378751214547208348845455816528115989975736834157128716656473374174819030734506267624635199730437119225702199956426226339004906722423549531037768688444570147456768416074436569276621889641221732094999117776686206254267063128211454751750040663980253578399935189303460261813000523678565360757254055828867710586395048040754494879387506435991425295926656353512258356421227488149546345195329570061264272212115583523310045473287195078264577226337939938764645333438290454422516546762282038774418837303707095747266833841787754146874832051897045676575610041775237877520077277103572595879798284182356919100325407924113862019672194452612577748740104898906633770457453521688423021844878658533984675477792421597132432739305512976093911457122953150325401261217236015230934013148528766208403631238060448079666136564824014608351787313779138073017939329984129613689551655632904747889692075837983256729125859190095904924493739944668777808717391647486011525215385311739140794070156015551208514717581095909395981871413653261172902572725088854834087490492143679997187823638040885670224659728043204790600219925125086434850918236770672261600898950740483991298815346366454884860594704539798978590302442736934683739403102457895210652442657763063439317578253528432947499368618341216397242384684734685240811414322095465372011216476541275681361710016924866897390618829186898517263247128751698861457130931911387100316255643809626668725218733547705132565815227948863035003946179641737473743211258028202619751201331244772604058307934503061840463386018078137540319620720686701436193881698297342529705754968323983324508095798431167315932735589110786914356209195169405923279148038380838292743627529735512886538128046719110902240992366779159873196798547807410937421265191192210162266092059905275380302120701027688022953522680461910834672641617367317810173192560148776106453405318857279301549910452175043210858517514886031022396260963166918689026630478399312372174487660116306801711429863003689019795720976800244667174995421012264705276276707854513146246172103857551715804272151213946344679226249681908295505308020705876934640068217316878709786849054094154715315664791689515212774432852170535692591092670755713485009958906081794194027475069200457932946709411598959189375714201224152196405032998048211847391519593549858357092969646374519914426728213689422032621747941345619163870909132114981184399228886237505755972364793394964164996599459364200874700608310475326528983425292520941819953837854747341982797459051873120071055347726747705735419275421778799114148864832099838106643395823352470163006051058610078760574911996732071799529125574228492011488156095829462752595794595806695713387327047339864040575446573263906848505473865762496575725938475744863011922446246693348496367416987782343362996417391106002081070396945616882708256965483714647816334473957004902580554600554310870283202970468938658301527972561780907668198289367816972302071413821346801220574146008372968209784048045693590414150402036129624811073144907037630068563492727519493003366714047959196924287731987560551646867754849437900384993192467471311530571235426701037267841837842617671443033813064349826629948999193588839910581785794751970060862477452942767928710995257794871144333193633007586324327168474611400171488712886757012694791766819975140880436098607751336038984392771722980821643964685745771259422858465441896786091952286123645822950728949334265154057527116744560258561455982475858242977564924891618697364507914340188657353537947585338741552257033085352341909047483200889721551740193352886317465520265402625619712270356651756124674578835285041605774986343701916860807529117982738567764421528934586085691344374603742016689763476243478054063323917846771835237895098647574824632209005192129843896262107863168712431701587635272957771259208817982508271425000048344851065930094824379772040202176327116006854613604236129613866099943870581127583069741908606239564702464271531452934422435659268530337285571602854949733415181808942200775828602368860741855022599122799947757336516854636050638428740928067897447037694970055292299816853925677980546970034302399743436041031172496983456449168158959815448421990046426165222398839731442860007444751014562701648387442110900995765075316383592560855204799388980265358426962383167563106021346170917146563288179843939236729949556604191757501486074192106600368633492301380747578974926332788259984399580377554811233032586270047138899465583421588961161318264569786563704237476613615528453293531557080377272067116130360393259358459691166065693015111168095437093870856911628484977879601068356638637377688253725198964246604318327786356338999345967956881033966083714462087863361943301223105777007649926315932544328853263717245898115410972504376100298506689551620944072797095458279170250305286260406443982852612708996600117633499002378201128996164585907504625211776416262625659328936827956391252170750215152988044000870630001567171795249971467729180775314668953540355133403034767670166820331416350532993673843608378313419061430941691539260489684742401657199593811344623172121298187699486228811745573428342055675655388917113089619483282333545831497448849153455900094660082367055648784782984031187738987522721650023490415130400772817575471813898743701951432862666463592222250995820054894881391621997334135306741201353097127555806589711528534978787354026245795892061979311926103223447155874772463219936339831765910628208623173307186350221419771037927038249099783349905836774757906684429906505485725222323163628244368061850658054648226480193221802768210707086618456718152562953833180667747834746634868255344229377920637208632169051744040636508550258440950474636869764898402451155758539336092695367400976029023288125014717770608015436795590039225508862349990005013793292411313462488042807802076084314695835761293732622533881627509979052683064026730036076546762364515184862064717644318231240276521514260637488571678366139786954729284103102721223636847251115318428126430746901955703194137160537855122824421294084582474477926667856457846236711663495189858801673180575209176290149913883589881714202056374914458266462918151057228793192208075579854611246087715758517380857771504897200453144765683610173676845841861619628938918070634076718535644391018999943658984719900545592496137446489680345340430798279555492074372793333787653141992223813684285264929749012063901978134007744172235871571492690009637066230331699424466171149163636541723661464574089703916518901628141410796182013437698620656797177535170620416782212978618880274911589413147565198756777304194889450986469957388003377604553227647717365410036371648455862945612739660313281146788327120506000461951265020922410469899299636437085964314492183600494621576109485261767306752399024393293143589001960121794751517505567236581203225345695994551432805144351408906546151154293953530007347514894471860899572248955841861841786981089858037390906026104009245394981958019413868605975648555335963822868804820826749622618370215718810812630087496402084120420614348378803271963956244518038821217210704442250982682733136544522296596571598147243203568532361629429582316854433533341084728994499582294442508915539326026713043585790981067532638183959399704396661961948426180457824400772678985147995545878103962318332023950055088823945388269926469240263144759325347300408163078426359685434098431019946040978604799018875756051234611825611789531651991223172116800973518414962059011656453643205098250195488505053971485227934926297117500876189348541402838732090613133430700221555682214388040843633671812974710546865539028285866436227420399926110204470331355444639538288142467403063961836116399297171935937371262865529929128488318274840217984435765980725721316511381095503931248089186188564323769246637593463059846369320629376731658449831268597047891531572747256675470583678603908179325222692075218971118418952611922259879754377705298683205824681793520856638173712425990793901299843284411624493088488734056822039476297518879365948043671933209584461578059928345684974472576288015609300727243955237881141184836959244730658593986788340306683707229315981983738941122745310357519567699526109756037442931962629735455777895019004149775330036811346541213082939043951394268409625620384861450473489742366649190765832764547031923685749053799250384272998335570308417588497650807280136868266353868833850364397368876293221117968615501684214279350020555386247775663946414377964069470513700624946730756683076136148613796249185114925438717386499801038055096664047975541106039477687733415516101694333738176937227686887348106946858904384835936091347532742848818690600005591694900431951355165131317085725533528467043652107049441144953323714247248492787643693651165151775273632424529883760884411586996183858183483703453414189024562965217898311589387815282604675243058097699397001658506056230483139028805962108588440482445598610316549385753660571058992271968825644522350476225575539921680272361724550217667237100363514914460701912957850132082462604723685328169733658967418449294683594040190583685600245662726696285942562869909977922689233671884871564035888874158413053512132546258393374151245002834501150945033389134430227955262871258062490506321990793714096943758441778867346539238971817459515625480107751506751622152475346749543661149011019110534791075233659949558177106548204092939146491536516698027716718598475763094104325193485079540073209368476813866392021019111794735506372140172367504815812278406869141874457931976494295319856587030531686637122291957269946080632929656703682158786417425101561958144006523099256149819248262437279531868607334006181868495678021471337149435025813845905060819420892385788580181716535213373871111113481877613170552992098333791340955346424449528323171061551795985305556837512482275562042690145099715617093513916754556323441445820825828390089426440208017936836584049071366383537526286359742465138453976164868363778237417470796757646177897747417470015608474601178014971687382146351815360038594027737144874155365586965092361906612914358864607085303715298340027381111324268019695266009030669536932095128523582600852657911807676779488287777569514999702274750586084090650474229553487106894019237985688155889699514015235029437890129227808057328613240376943673227918667171446040265159658286452487624872979368319059374641617143133015645504513305751189677318334254433410136136283667370033424479217842063546076303167990358621559627115366504007310602669002135082795438343207683018680272850746590375532956814578564196390398615844653492787063915390646076533422497124560144691754434439345642182097740039874357723000629691497908523856353018016239232483106172915145412205601648034823781648131084169336933204709235412112315202542238489258571090707729706968353946971411803691576611302100106192567527877959605252058437367021932149953554200873349472530168222080790577026110589273884290729593546015777700243081234045119638952664774993601822911524371086139238218314255808007211968385682139970954205537571247706837187784179671802265101870107616307229622250021771225917679023444495189353843241153565409930466019203619952272439903927750405113090108816447622273035171817412807690811169936765455623322195984101016818504724509644223869113400274641528238894642145854627941314000235038992636971047631104461055990712024368605427951400423065419749610530102335083141911635415207611320815769332971438983271195923632145226145720557927272761630448942829630248556675441327975472001498995094442490401135983972739727501316036091786775843164481387309573373904401265342930576691881126570090720671669308282932390305940846000145345136690491649194528348971669970124765123248239180796204226784267182871303216220977300013113816421311153954484178905040924279307759221404797787035325417809133179751650260113169823743218141674454356771398434123482427737690165510380572107113894832547238511861883890866516130968479747384235630844179857087349052876130583697356674283699458876444201931508434225380503362102396667090412102906338905551900603745201274589673844521855952768823298516621134359646334154955580607744573569021769731221334723915305628148856876066672991567158939108472288188369636034685632055074905601602266402474577719082265877338791230273883545724928126550556343964460613890621343479314816548336929478568180816099167267353169430461013915692440462419056103474685771793661543742014475697466676136402431509091001472073714797591419284118547957739086165439369901048541523503220181330499263282237479602706776939986962587746492446881897450891803351574631686539780523034371735669763176734226800700707466013950688567131538574775482336621631724215172244278874884554449968071173971047695990561540577294338768708473605377532557702710906262839042086263901777643958858935605213193924841186297602304580781461251305010133921786402746587305680100899239585304843674539610981276106550586245595588064137528373561057657227899873307755052145468360174398089882816431270020921255277989535607640786434226283011646188182900113338229915288951460574935129947996343582374151964783432955943382823487335308707518684985257027719486803102939566956029708085045571430066479254046164924312149422814425303476563918135565132015204614263351811393917667136203374218300211503773266564655732841893918135540033374497551001533751633662853265840963715294493991302379057874450720193512234929541708195045636807534999336134042863495590030246747393142263635082766021424618349987388885568220306565996843682199671164569134168866869484252077135797732888897644003950545373323772832783287832606982154482033695136222596967141424715955423954261712913421485338787398530623517300170765659412011044486463629969694298957861705665150831395010558357122662781739568563245428844359711043726363563744866095533906389323580784929676344838027352582531969624669867390195828022951183471440381325199665073163496176003424259951742604138222463250967982792762795743386713384657402827135796042664907946209450349878120624921231571738764220409819952953592433226999193392802305336991055117636886892438116067976462143678408376612686911326593304868299931895610155969649752638694342605185510174439438713083733800769092522998189980419254217580203676706444052938730332854715092368505324396040511231774138424681279516241268693716686173213025937023203930962552250103004128589132996331667233779621531168495455073006188516265629048650577296836333971124948291019059858714740284533339105379974788122871142109394377381883088972082077285143945988291550127282787442359222835884007557920025455986855868647198737805156164074162185446442703053890671011220083373427631990458144812901435455261164169122340958020628638922625632216632790526842278902764683655676181698608851848003272561927714621581338826586667401744241615193093512725627414793604146218518074099752007821913752626659574439383651270794626004911147368254158412298757776077363317919156225063129646837815532591532577137231543674004580624410910852699537121826505808853566491981799113227263290239212385958327193741509159318330120497345864179566635529113064142410891597367883803785961061082449134766711958914817967883641938251035695120386119382970564884054627237330108193822499873015101635984598995309995658454516516355154785872198425094505939505635251132860738232443535527755054949315504964422656231338874786488038172100480288137988115933887644250901965798842341380935705061668996965195611649100352288648554545323957743617018136914903829775053689288337399036722660183977097292166631128046605409376306085417080507256152193280151287520834226360444895213385695957731668008533258313613741934329679428623198812790014406196321248360674769866544159450498244869551273513477870639456434094397543349994971546718970573988779769373395303793953800282141576189295282858641972650358427056184014600110514923827695347463675343475156609201750547943904152660584906983817979485711145239009827223640298090978897544070444163348079638260763575696300402540213833781642420990946596736379583717444841878580137672791150002843264029250294572196540624666420743858092293612552448204342278274661682918532974906204116534440286553153374131719060777792926074751475544478342509094932260682700032438629901792865027991174143296696432314222959245630355416625403490328596609064592721238403504632754258275798459172131532034496706261367184566515743066076405465658366807126856468242672811371414909349308283515943978424529938934076924088181428073657690075309251302266714685781925832817272755463629678304714394631834243103499121919286551656623938858460801526267519629576308819558802358168538922437747774622711358466811938820180803278149549760933284075740990442911845410656682957002060230133814621563813379382417477632542417302462836439237114327296719228150744095998767525959890430493863816250749137133180249198044086734772245771658003253420823239396833245504424567150770194815892861584422659843468594634123433852726575238008812980451171061102723732586921070249135758430327953779782728579902895345250698222263500147697240521903678227357066175884691176328977904569953758730929926560246981525966557218761021984682252589775870144821949179194861019511775291783138990266915747067476239693800521034028856226960069247126598988477854149677051569556931912847809651622208073553741370299047676193173660175599168919224345095190111803940707518828273194064859126238968013886790285305605891225206806533483742199262579336679752183896936197878546461647745115694974240186936810948111615220017248803161470574910377123989025992864087504254167829108741017619287561828092914110473683864389896127037155885151744601156898591906292693592086676533208448233688103484793382865833766216161954808115690313179137534331967085211269156580240854229900151077505777955089469770817358422118072775370020739641696214752689834940138169020067402789725345342932264165846298531959267039522287718011001748535538929236773256502452884137995690305564253696431293399217385013372310978257883401223115079092784999910258405222282671998706037373508834927084202293441375312498821470898285582189423414250282325865471573429636817781052972174484639373956505032924343792791534919024621196928238511141429500760204031437998155828416294237904610487949981207692311236003411628963995038442269850154260730574177190406423573556763773581439591528779444720532938865723819690311419306013040425901774514891935212773255825408455623322511483269942802651818347841128944678001671464063112374776948659717725344644487176252777855708143880646079096488250653234230944845148674132861432331704221935358474691589648857045139279475945689328841860215737154427470599563983232430732313478380259245636387534735583944117182718239095015736980442948857364001651358240819589592916348789604094257760076764862951355761993025544353695065669082290562769860167421426504331695579185222869066413917252218570158713223436845205712915427861310482625818548724683060727454287648490077799560153551185806966607814828804073707887080481964530740258744080073565244563049116065432214720194255073866068210434431833129293440869274511797097563215678158007110830294781026968794129862027262759924120535284755830496691395443470772229546335138520087377697568209010356878201152134810627684121466421893654856120735165077399847185061642026658430567535147114491421823598831784118787908958003432255168475775873806442222978069499840955656689999074316379478974117991817572737766436232347593303969465752422914407253811829992817723791750959827951536268868030553907245509424205600790967252952753118030725716219612859340369413361479982395767411315808060113350933135158013683068427997946131342504269297574950055084018598604560369340420110867605643369069167112093378222148652769901528905780070328427053475960835039615126654780909983604070386952558192549383868134374052661545175307644864423642005648742941497658202542738330239054767328383859676634594483124726380671057950129049785673957195552814514371875100519775263091396058607143669329424386298841157263371832057052449314051426417335113904286262216739500927352648667299675367174824509594093560839580519753427508015209357857715980190860399321648025384442614350218696156409018567864806576479992923916829867312114831768151486528292952677543931298134463260507383557504274481187103630033300946221805640199242860572978727116288134442860662983120215965012924008937342826799083158650800618399727807210535436032864440769511420303283434740125167103054069084794616111637763855817558818634286881110071840086284678776300848344803270294305542822588861074663941739825363944351794242612026127151875728038347568592924057860364088314049207013522267515365364088771771263099225570980476142414087514067263555595669232777025262660157240381468032459379902641991228421498195583450935055493418625920574643272981686641755313574959023143962466178453204600679452330691711172349842037335650798086159364950037854378358630163041645465094299694334406539981019031672730904039778373893579842009830941190112021043067181184110959484092407843134783497053606911822709884464980429879176616246567456462434888593280444088458108142429180385870166763683878853180511698611911840340312268206162455218258664687942931508144135208066502859370157616605162501594946090927033110157033020863516604892024524138670049505441323571917710051688858861161115894884134692322358433560709058108445581082902305326073770891191464085193807273996291366931380106486041555519551384681070590481011597683114416416128936261399515273416128183179987684241617139547501466918690341281068704020310157304437346211601034567124992969907484096254967220095314802185192636642206643700461106795606267228332684217472844328110929453166906235459484415704284357520805185192687928623094925447632045918906472019714134108107520662724723985296118878242746496757388354365063251185186847683215750658463762423276433311317533600880387170478963882330144186862931491302671502824232244356511709970625931370331114515994135010830560196978974781666370315917677714372278066274236629295033357255546124838697860306348035907736763470907264977062260360154357307533210029364607768178198634295338747923746362045282542317827375570676913212450822481265200355678362344065707768740416670677124727723341726370915854092856410245442485327392275971431069093905672713809777704346750666182581623650553226279762103977426370044889472567844098178972176016107280188448929080124090499629469960617652384609709760614383054292029266586248442074606773892482455721260975259025822217567542173755174339231974026949543684720304078567262015407146444497231472638534615602173552836143101722669054782302271853940083382770825898356592887575492807197135200481214543630365178209274336082491990034305952398249301813654820163180993955526315780226975964621091346211980833221623689941472149282154118062523215848642755418175122988575394274995938799031109562947089139765015192672678399148743324949463000764096251940790620590635051065639187692890180542362159948628526417304504002766748299580269415911229466963892393835625163887478380665247149548277456300629713726487978468844416830846853136878987033358557366222494642355352484867301712496135353413115529210685500419002247494686141552897762841578269634234375563711211546208086494741403545846274145042120984575126834643688395362631987990752341713857221752015284191132041444696165323847864383821680648409010923394292868324730059635144044708991975162969935121595030160880767517646659834116667135397976748962768054264088864750909335069036613906900372967408229405401758988102080053890203123837076925003655268874634663612242741267916703889829272637781820524374629282553459169286796660364106272871956180698715481172807209842551080446454034309240179966137654683124668805616387171976991206390422167061606287639028423827784294215091420853824806271691300322351073258536544158019907361348841023713186440414331746607925345288200381024039536994001056068461941734343009228623675032053974648899620617987774624589162898059433148986836430075222029515247764871666894913906814692804494715803800627159426502677032716185481345491152076589471241757846400607844564659368129956828760074888810823783971909413485784544664572190574568786169443807159092152374859440545479607484598144864632022608412214197828772762883792642527288172390086829540032812683441734992838349909894147574007366101384929267131534054250920542538956110119022707469347327028295539813869939660145347666145846614521899810206173227579659511031141299116596750144551729458731139862580789556403007048571333114136460962570700375973944527678238834289149824305426452771042924955128636685350679923054559579278209657323105011500487260721508093086810338782548021207674742637267149100949684623406488765905912919164256909193623546594528184937138950900545872422711658096600403107947357272212281839512138723371263621300086768662435206067687567069643609478286043899612763709094978354203048469184098938766570806469299223431111266031776833616395473157578621338338115836552615435609802626969312693708183783988299697742070376441496232530162351543009694160781060001257103280218655904678167297466617284132813381904728742056208502762517844750950882725059243339444196785478816965605270000496825789946235390956002017756752909283797111736221420760695197282574661569975701544202292474391892629366037891766911911247861375178336069779369600884540738736665405486702649439646151879358172161128592517078900647346704907041942497242909623759004763918648869503291156683763980844952966381142878426947961655604453463347229727288169030385982834431460482806750142589599593656367293736466245696588231372835187619181798584925267181618060567029995141198052649671494881809556970589760016253724656084552157647707709650357880106721686943020866510116058802225753691909783428391156377273950640139592503157304485377926431786314066600037013156068932518447554006621894538059274208763101044243009089975692932501305721847086915457000160387521366614238128975276225856099094129924314010248042295978945943877078671462982162138857458707287070719090937034211241279006914262349088554597617217344758771172313470426825773087187434347369435744934740995629760844487223031500304766521908145581296741302695523070482627580357386340425383195601645910761072063823748479227637740530718799471485629178124182939946392325693870790897475622905087480066199185474128416282764907800827969864603668227374906540046998043121554218784823124271381007787329530532881612040213299727167023837793233391397804896172977377707879580580188349088235858074845153516033566287343787736698145405117662194433777706614461911522930737132288243392390241116116026684637784614368866272293049808213259954669825513271203835929107630126671485875430366822192677404341274198220344783546081163556413691339493088066736368506992917272387014940500793438494077202610040113936989841766146548080701584570480607920765000600592139217728519274279074294467511666624034170832796001496870135111649046791706965349408527468958338741323117769525427948758968772507337645574566925451884151757664099214012914797241795811203052536620719849982391803268295179251926072851121441676395125854570562177867141898783269037884895214991449410005319543626095126465580960341465621774412697159829290204123093127038755195332439936484543049472308706058904639047282360217549729175491404929540872634784056905069269681276022260390757049737433290324355876660117075387340051414814075916831229435016990379385363598164012326227154519319974845273977125834121533258726693825522432095145037026380821153122538668518920060922094153225591844693631735249579828701862792926876946476242998943180598303574865806832838297776109064219498537610057915438178650558741658291159047690924468975914916355263761994543572503316483546854747776449395735477570483328553986460968536012486099557187829610967153005127845925590046484863281428380267563451767109780092840721731592055066525402409841661535004402916912454291931061845624383322263221077931658235113840240372364819580554890598623131424479196953415411954075433349098928155812656838264467770929335936579412929780817952077955553381236148370483682855793823217031828919692090949057468360508690266380711232547195163229975841139692660301274362351720828804786717636389596778864479593100215905797407458249429721036521838186724356153271573157371731554056352137794573891699987730489539362357819447024717844817769678993136278015812443035456935070091868341349245962738968641822207928583290221956863084286410342753120088256085910747845065688559071831284854687843655706604546739322686964907231056367167244092777625079470853810710197559034007193928226952085810965754486671833810046838467642263310834245878528236591277927827599840765955666003085999264456439599717727288774416661450717347056984832289884588559679967687213111040551503043824347778236163411677421843802777244051626999623856062921599898444744665759521562454182001144770528454967692811185467934946827350784100202092422596285534391874573397946312556069272135026501003824655739528726558201668882360536160126882643616846804830353583898496328570087935145692815822837498348087876799533541090380930664836472731445886355310795616415215258937421721303576218630657434865526811281767061915880135031837367542804450466232770559544830432573982878895566927608455722173166284536642578635366205595337817980052525933305847658290440812077403644981070553918710565857177194888538661327003503565248758908731417571465392959239360924360791179724688289655287517533816972096302354164625073495194837187121151138693992060601699726190838850147278456442951378193919744624947543168105022212169641586524601501030769393486207895242791201799114772737327246766949973702493931570887798661200695399792683208101062492609301914447397346041515194326869493693928405985390364122827095425330536647736795266668066317773066682210462802288090027266101369314750115435807614871606185343976222382824482361983562986819932182560487348068027085181024363462173862507751395915793590924000138514394341026522512726116573912268288057468993447573214767103702053421965084876558361384931192963076999947812046864298332636400748857032283362928102581954512892044740530106434353469214950251185244497317665943951916068711463145784281370392751282829876710112610450622187654118762977520042566838928065692904559733321957627590233548741639908667983547525295842232890557195885523035144815548590187948139836658584081855847044785952783558922966894899220924893701938793489068103651636160120403689429169865481723220519057536380645927963514194074870773472092033598465650207524156584027945954461724517501442000410394980655160118434807056059125374910739477258355707933690128961948130567867520448790965314405119892022584528940435399666921633956765633744550523646055092320471814894234341089767114908566927066691450403106612493731530102197578934729505597835584707841107850640435375032710943502142262875206819628055366925821862999813130140530544205588557551333270366565682786443627521139357261424583299150329367501638941117653330162831687056172691118529299474696079179639038671936915702276221710978105569318600526821192692635573693757148048268254338492896099176671355332981042621828278378795986842815128465195792291039395617215632627197742972636512696295522278376415587948522812904796010276591567397669284050253318976942973690500741579574070214663028465978456855822873973535325694900617284226650886991353888261670941947987048833750527012843954887555620754225086168905122839229625670346929413248074953635313094074068794630710679337079160618376650813718549061850582129751287346476669850828255436272817657491538548268890549359126689216353777636372052855234787566121087077426756264793396682213886589483055407082660752520048680024711162861956346763268542849250070970613550747175992945220969381117575964402076410296019501571094503065052169812700442888825029851173477296796132321447607188899941963774234417701205287845678478385538830343399885803288277606713685477994409901267734591958449531621512112192986277795242513717339609449061767815685008933533540108238185302102309666481597549544105458815035282558206341781583335937618904289642920161428195682455744586072677751379259490297351114881495972548722739015040804782804866766644559270389681139635836580909981843802562341327211792247948324781210190341494936277265818453988272551710013575939837812191363024138924965491325848315490345590658508032325397813880621500757276598046776644418518834006018541243224956250666725953651413170715559902866466620100265140014293588664605282037499409225459828128953170509442592261534394673458513802100109807183056699137161850209964765774603317687365379941879173513568304551879265435164978241999262747772477353619866379109555166121459695220913738925785000559506257902491675824035929194471912282969482589555981705752844942434035946237619294041752350643372773109626448821692508279686853325237225681287239933022683550828835140644572216441475529812962908946828139522052822801607136030732543715209329041160843905082344849672096475709814917424238179699406991613102095813235777499496186960208881500224196148033435343932628591872512785383413115954125260258111438653411457465341530042205304431942361142270350294812894673498231098232786260695785887132652139802960473064719805509356033886266491000478850156621709902779426676479279199564402395788099402562614926327565972878097179993266973405002798545693662847254915225418908462548099707261455915518870762715257830462808050254626082391924381706056752572037194436146610001451407668835587984026561373554268916997695870476168104314205509409108517011451959188014999762571586249290605195969648436600784848026842019902201214591890527651535886496407244231257011067738581885127859346913898949953084231639290029823541713264943444892769632990854173494396633186378264096203654826645166315091080564452008934300989689797687348279391551651055207899685115400138979857653065636574791400463521029828874201880216105974640860253487416638657849710447521585395930726423965841287915250605972772847864093615533030022822653317085189950982739894974199487427969474802046946862702523648771365830730666938032908415880479499770222128047263098261280354356896640422673962026266500618508175866736521569627963230311929043229050155022402195442990362312077092034502419309600009155574296569158595975301646970987487241750574936616893586840622935719545402412821340812725267872859772821931197400843802478885722245000115519905830876325256140764474884288760141610143914263210466448227882926550421146658298874713730559259514849650902679779262902496038418503023887783518745481312701712378655805343863720187023867941975395485544754984824621708597327197301695009576617411013369767169035520149359958599559440985097948149801712256633670525682579675857472194977173155598479176601381069052774612836583263330504536300269346371546332737378244880966436834366849312765737463127183135873399733643982474497088063807400527133462292379584901570774960744056762328511650249074225897016368241385741685549952003855240656337496280056969798206563822034766409176385601653705402963754870094860001311542396059137788340099325569370419103549914485104838443135541032953359500769106904331448158001244667511474940247800146534625107472731110621703122943858746336012398254771087271960387562841239754085987063543443532286624306852345170725138495689796053317210846964903909896235978942815056268454006777324514619354403075738595249385174332851007034070870600313481380779909609756845879586840808308937359518505322636203160387021082935317332494981608484235788265262023718308404590474907790999159842950707264903891032718949400670123168802625906027947345122036405194888116013335093246478424307416668172728917310033826752211179123751458631719701983471913601802722143081195057173219498560644468590491954038840450983924830257784365436691871063878563901230504924479614291601492383260721224467110973444571907480341465468976789541706145263082279086992610348452162124186166402367700851079957697682831350150206088718235433690055142150301467766363901100513041415475094276120185623177828828587251584583558510468977429993346439069816438682962429941474056562873184461369394675334734981095993660771977205634297794914863723254027974593415482445597703913362383971717533400359068591810955562209078660829606613557651059697472557444710743241929378878920509751670716942023759841808449728897336953986216629599918624051079228537455107460753326199699900383575879064809203150343473569213273808950314382184758421728456880200026486358787459344757190168640939513274048184771032763236310370972427025161361529460898651860059094422044808706218580171470832735313991833262738651267746113357524221822547983683219503426416973610991425544502326502799177360468161532642567797889905445411192734593687037742322660515079281142651614094288616467290461861242576967375443011457108028083927195800381890604815336633177015326806025182438889091447961730410732672374364449305197248309299607562201370552561047968253180499039297375148946944210809210824004199445845004571930854230755293983219773762702063720698754152089097945112136037818673673179843617073976593701139044582054894411979706235067399487510873902050129743813459237874196110847857259219510788953604368957917305501106185242307918765187677456452950231722437487732579628977234932849344497422384605198925144933729966303079134523431258890938643401581874608303306679927389533539767191112837303152450895063913663235705374254264039908258513716178016093631611800724762550248480750963259907327929687674235690614641353476977384951399554887106448552692221263222540478095270781951142008748446369737557190994383031413730992631175008523112440733728970423931928466276023894917094202213937077844675169937214138724231334689750143759467539234765467373656140186866792639344135841240016590025184044208928040320182701564622580564449896210934329362541822152331025408472953626966844558481059086080506081737976565739750477939679861415200602695439512673511422668011572545707133465427027770375741020616842256054609118328603884737894965459863449153472695519670471342676778159039383983120868084821694435300234368657339973962158828631818972033151431750535312319219360760262775790950611889333832854320352019999260944922814906318885586986416914717619523378274010880280094134797713692664585554193415320032658223235058657229573966676708488199661078488765509991018284609123533267213966341108120822660039782174587392418462807556516719655491184778160669211212551771976741397624048836610400480334201273299636471654953798817982730520541417579110199277567532501376728798331423314945036917621512660478445620147427247346562533662797830244372023912369528720522654537185023611868604553111124949275921032423631561690980939110832363799273582178409770441731481278847862883563995667676875386806780321155101953289641987601377591453135737004735015959593339310845109042506407503303180572999042770190803476403292236556045517289944684784928482587268555510984355465025305995728742590844075754876091278286403563985000085079812566945343958847095063210686384773539356929567283066544891689347287326808518336921473709654516648838866768525371991609056335970791368803958325377092324497003135365977441878179762474784795245308550281564593567137711778583314548024616850797478681799315981126964910778195431999747642328504373962972614741491048836503413802981136644805167894487977604453975617612621196486208615659053860563635369182903311180186732323267473550299418343127275932453875611088496322732089812289923197125112146209096074241971985528411780859267703357689323313409071302314491246275959408580060601116805823499591614573338692978028088019179348850535394510554715870337047290177521500485819345275176802618812078326047593442503559939611571233290279974285251780255833348176981694146302214642995370395447987953152675966308997806201159071237668907369039731794011362105705787695718003841190728858250527984726422499449173552535047981081749609028804120824003877650937637785896453990710884925857018181432980328730523119105462573777279561805198996411715079925409906877962966278615800104422135434023163294590386733463576176669559927104465024597036888657567035721006536823754116259839604461114715570194929508717040696586361066264893914572118211496392097316723201420238307502313265800680192694060450632165643250127384810064764575773053801195397622848809217625730569014084258430825332532365490815061048617503548047886734192152821726778396026051808109658609558307962460670242559913513773576810289434510211411065935410221000353848691729312041809482109679761873785418843787079136669728231392348323146316259377139558021152778677788761259096595443769079696044839771886181275901787711503795563552743853402732482077603433331003139926121900369714085966358906717721754343660874833927454442396992919650851647525086447228575132147981861415091344706206884039400608187529883131472027378238810617961240571666817072491671669483813357190159418322401261690821006335554204871491970035535616472483145401754150811489979627620694150317647435369409326643818681992365202228351380108558403913744290965570848393020486715676636141276840443914662075072838542803691080420360318841722868377074668977995503666329209668738604648313260910166692263388389683199623723236011409666952129859633967046621429878964768032557948811171386110976825441392080415403256657937569551491425556337542645671313577834941178513072393674643737720963189693902000905871722397105640030258676724205229398466201689689062023565136220060721616943559811274506445491674944109979952389372300722541438050850671445981720327786001312826476093213429073652173100307934283158783198893074328470551109423557481915932153086611563129193552747865598438574531002766827638464504250682619971728375154093240211880743972441459307068508208335400485656118536985691396952795059667612174406540911119502992015756177036913622698544164058075537513138149555985938834401960079605583759472510998863943262447719470394138207349763482579253177327447056405627905465173305405381515379201302894506085988424685709832350279725115010096471489415429220538916708535030538468650150830664892217214633973129392668322862970204304939615536194203941865768267288626360372170148116781483239303830767880968485396661517073108254384920559546639488310525960523746694772601402935369683833083838904206564268239464049237127872038579303445618299483510737216839684616240919914007925022983398822200931826775547357626415608924181876935907440766742118824908717923117542775548929317946840603730796333493044913029544617406157269528622993121178332997256514774843136003163316694064078614350199915128071537194133301387567430925131121369110414342999538305166783428524269970406575169622723123325386927246147114021406738855729870554001380116863895543704772432872233374535601551150657770437890397689887782069278901593617877971000000242469458494230916432324748081380932282653490418522037419395558562498617618233321320974782540764300774242669001146264196990270542962534262033536230193431008298186819034266602324446160643169375690228189998497833248904222480467180694235321203038734263645193945996081266491634039426974961634389845094245775000137058727693127033384809819361644038504634531810786174497035552779608725385952922155900226807367284982598560405960255382608549824113195577745012582899361528324416163518923575182925220240083604605537890894590943285942031154453744580205164153710350235133019991085639542478017814692246413647644819107352088712212205765691796850702206627327302880712306000994381275500952219114930400741134082539353371496875187372945050090112063971671572127973737035682240875742158421287072597998088711217307683422379226460045647830614736245633024749025059050681543694949597051413791249750437962291965403323969485692240929996371970528832824026454157048952257445307037965042892665382637387231443630876529622996893482987622887288544556018334125350054081598465623283465452381670406166285424301799140871444807108072620900988756707068007658718594467367145226534766782766931047168347296343263396933026616176715686169224951804084528933346039423158687309912970041194604357869816699301337313144986747766798082079906189961489339907447037625715928894556525533805751569143772232558729690080286261955981704146459553055969879804522507919620541192848081506263814116130657587866219785794845305354025103830033178702653009534328118885093608118067176775870907055251090118375949143570821127481455917397394445224742183728867736080026778915262874784512164523407431813572395323918249382512152581149920152753308867624405125984180928831623140950366146303196668894112477914140458648219753546858473807389135631349792431269003432902849900026795336498526344643090225121364049229431249123791457455204452049295905825874673369924518695383351741241467990895991225221195972148391112537267624863040050196200794806224951536813003965347656625867796621729104672572202343829074042265116499779868779778814333872793992619931128708371353220053693942934707619301141441326829831023906196054089414795549191384536314942068073125891001218555935138563348302757582342645428399328767865267754566332980833982318504816491406449566607974557407528103888305206502760091357840282272197642551418845310582681785004622376150084875877224110087355443081146332731688400240022881308486876883394126380644552706980849358754765815838767024446644102851223515235467446105063736088839975000103579514135213991327418874352496075131818744623509431263475673355990173150452747119335317814933460931048216592353848302567132637476530667686033991225438287730776948073695755104945580083326712367335141881440978733216612423501647899092035171170212736879776276326118158124702828099732543904453459399394902299635811218676834624070961918740068699447330542470789309827086370374074723457764701726295352209265688728592139115629121612338863788354722739805880556854498778168169544126625241339643569969159808268023898438845842006839641082312560326679276830705756171313648373340234911061349767835581475018060941890781698483029650169787272556594571897235060336816262136810134196822282421021110263658675853648167892157096151337160210098799497135784861748715430356606201322088156611304919172272399052957667467070676177278694480947768140031286011700749224581648179451728262019060816617819073916942166012551145318069777885176745904480358491317011910870926570418969324429942141041599519031057743408395368910405161741954818420002654243035335036373699620454546801817309563312511421455803603389653050901213359581277509568610042770810347269436745156248820423816114804958526546597648800117112245726504399470048749496103577241068446938447169730762715772176229955232111574352093024389975625166479186610359486180915079768035886151616867691650776021670363522340341129814070668385047004282186648010760166953892267198443206879549123933958373878992981639975734616750498071352663526595984445104610130675177284623468347093668613361922972430422957576505176988472882616047295931608834622310200893344611592153945212667053871394390474899790968505898368551810791990852609347699883441244697495166394703667911165400902292857822055427005346055721511314898385317742118213118925866788927939207114090862749096547467563245868317643768496716570820244113892804525727005016657124734149557428372233396972638786501292462896318396269511831985230784794396731451116706722361606865067253691487022044119519889182209330734985924476224393380497191413984151454214436731215377469159577817113324663472492906211333503910898680465324690204403312039271380841216328245844832975191537240603870922156775625578365580844619275664830307408028154152216003339848332638952366915371121144426460415152467385562041343160957917710483347693403160965473185892170372031538658460401741885414937252728535588339610710391137044094218361132603954467478150720210244574606999884796964098902068805893229405809333546411853860522536008338845351207323128038725383675082167020864094580167005949382882584794437510362711290927707349530910001656495554235428416640788234659650506653064956199673067262016619108784497678950159474267962516962391916966169954221415988803715514603287543922075320403452286306326820499628908454083692656544108703472895629600075456785000998735083893568593879227940215908837098728252974364267123494641554443667851674203669886095034315993440400918407219309018369406601265476398175527625633314103659778481341152433054947117991133297764190099852006448989118876987736780085999511256017837419915997207060255903550884222558110320305240085360939944940725206378544788466192633369696801527802521565442910192233913564149741919513268177772165561765707103711892456928951454610021999267869996370337498279833602374741597751814876078990892927986142547376295315255079051468857810941804540154081459381372236601400398205306454223649574311178993530205281913934348046953589259963039705586947034786678334576504536114142216475223280116845681536992633959838373549969271602715721702613259317700863982993492594960417515173409039762757310840972367523691698843977098908769773314976519391139293440175825544472217352558443062801452828508062145706067648313169771940314302703639276926177684795107828108901391986313149850131314351159527575697874855421813815336431682372877497578507654185803639024194716882897969390163705659932408134715850616785954890622692034506441000587744702844189017555146424701906247058969706488949851514825249434418205496523342352740714076961188634396750091035159489437972455927648945269233443367312828858128822392429326294712146575681102494576306805484806215665746591554753761700540915887543968647728611514829905807105782718626106490723473807005834743057497381233378866292709629785758596908212373958943477491043672317517761401403563542609490842914401603990138533851948808891395500464347750378547352906589537787288825986781020884260065063555631907856456655648061686054938723334046495788375122641518179955013204749730065987997966771538079232689499165263652179152921356049520471026376059265732045712186464285790581047644675611058826932107102729448552976337559515788212091347700974320512110663625177651403625582654512527137434259530392331958259901786020384388856811954861055343543438658437747672663512074685149582594831634269842404427716765904735689457171522559891805330255718633012272001985349239218792207235879517550989707104267222218028527458308844960821121979640177415104702816031939328815376281478528857384415018755239667457897248560232469470554419686959389905591477813215504440263239569800927600870948741229061350886310025930351365848633860539752780981479868611678687642675020957572375704205420008301353529075264331832827991395837006471397315157984513597504301574310204457320575804184800630425207108180407901916832465841749351062876603872417497323809149173271575550103574852766558218567487555954207365574906629059599277588623082218760761908064771435032163220123952903496643976985257564032584678449354805118738055278071881126805822124503163050932817902890990879804250155522625110732873259958573873934180765589015809260984575748292366689466718637684008141845526905817833112989008817025713590497593754391804696397106799463658970113653040228560011531994530176016069968730119557626710628460331544509917219517649083094545700289102722042122252572148572242717849158262458623144986140703246693606385031647909136476714524340492636907884341669869827123442713388359495192837280849779975348214260148673652858229252884434744960712689844594127944372480755080989402097421317216878681006423325446772672529943913666924043084309432020130791486922889990265044195578300054283073501514524086220623473447347021987249642465554416009889805104022359674627524951858664720503842425192158836591758485780893344201476329295039765610831076375033265979472536310127191635265319026869108237213997472052322713654388002545913468835849052121268760602388777124108130430867736861407269406403694302220565554453827815806601610785417377198654468040590139274851224316456883576013353539316363512027914391800859890947305710195115916531746675108287590505996151175123545966307821963002193864751013316315805877908585978684794092264290646277534266974367371688477088242702067369717501282264837508280102947282938106806810598772425047155319247681467036331788744123305420553162915943766391220886111552406014420974930191448990593336579995819771493308992484074448580558114408559796937201670797882472731282380459317928926264008939008654278130031573732931418300494363644712683975285746729357430117147940123679209503861409924630811123401932000716619451214389464794098927931077375591585303448272638522926763139313593889230926783146795337820774155242787315430983313329436236153095890167823902834843313477377564407067832177853962274663630687380386905792521126160162736899576524647536402905181070027226272011925308848688815392625624558561415655587256460894134567912953927031685827822151246999519745001411355047615137255014727937777642196186926805267947686813934200418431076973460362522864296528936566287954223951146281171363564411203846487759163324098794239957691193151500341345998452996632129484766820019679384797975934154029374244450030175640757339989402730818383795347027286465329847046253148195264558045849759230034820180598484883237240447076886928467216309087381388457304254944864808766983285563807991993831948010572897618198038782651811128327116157444151549691143976470571295451187577707175467259974878590041889567381617467309644408777908782654317018220770442291560389513116032943735321051511849610123649724118066158338625492532368353609789956092506353013440267633456523494987826196107976425692058195192498905856447636138276051695497533454746086563405478692622939206470440168278165599530146627346000589111912715571354511847447248660894012221499344369414863112960655702720740738982325512716019804056401161840990436269714345080711675361632526183993553267669342120032845893116796748874114684985866914119067702789580353972408469524936621830116509782997141719046990925909218069667700797000934655266932868438705789734628212776460057987051154284738681316326818280696951339435888333226293404543561072642821438157451736032805071460041322983230498051237875554052738521776443605729149971360561858571091570664598768291697770907394002618336796139698152290901639331195250468737235478286938102978339397258635096684858552076763659610837159670590539640420490657360028124497149943888796286106507939612510576244659050643554784921899932821884822861122829523725347121822161022652666747394078490658020102877884499991662724380009301092601991425603802720930040066306045532970114095996764830771846934451401555937173773087577380585900897746798487295703017443514474728186214440010642978776675287503198676211518649211322455206369375464511476518257095536028842081181775619792779078605405378591140407510145792822638805689565091367020889700218284131444846363747784981724415120126979421035678090003346872613944280177599561760683264824680646118233289568396367139110799882785880707271438115221597809918569439740855029750576671464128027625895162813741212037940058152311146558589736946551369983515619064022579105011011591061233781997500642886267115886592957995254341979660410819732258258092027565886421281434042889643642943892992410464662198442249919316353643126628594272357069474894575127181659477658463987043774508225571232369450060747719854532309514373514253662592342823262542304919806313159537702341932674531499014015399615873540784522869023405125682048853958690902494778769166658670641666435257980510854440462986341793002094036162305883287113783134987643461182834929231106870192876824825050429536111773165924533047199466691070828468231283676385353047677596976465094857555309938703434415992190294072337082772510595391116261710091748289157582577815994974336138963654004151670188885379879852558666494861910813602314832936980466229051902437529512477027718030085414608449119322215011438563727181874820705204354938951998596969805768561672284936853074788118297797051584993971679365330323837049158102101186524459930460811269537755578849830540870670993140895259403284655727962787879262503525706805881052933794298307903218302551901456682763708509778947559079932757438327006174966842307407675285882433928665938105261817112034411002747979304729772280955539260324458226954631904458134337171394572325657841654864563910583471449079788630057316371781078408839282833099765183757954948990664352691693169696698367854150842956137112239010631737090830464186922147565913836559696073298636730807813430409187812603697843266691214225830017538160630087722962030002733841486704923929707886619776758298314055945069668352174740863429470261479545644300173925484384283167261699487723087635487449337286709848145886827091617039283256205634972456904504117303428042187446309548949228692241976769845434074245790646013376088907844215161501628587344145644355783408211079742938248174262280684960053952796711195326709873367591567210751225192737800945362611841192446451906464080725514557146830363618913272607539118257589554436878299097563558572865295884982252019539497285621981799047616985662389986114652348108843798514961488556628707510528179081047174975793970056952323442788450190767172622176042911857722447300365193185327431920518198416128231792658315813349990774504650192106179848048069505892875805547733863597209095382566047486379680931366611601377161660285054396031521159803018357549311606018021831295309112138530040924971818481601406588549586517756303078370530174384759612194158595562190661543500057624264122444690899738940528026017914580930119533351940775722169141786564884335264363057024032295900501898989932126073635303619370514796802806693284082997846649567287450706058666292840440370669850693405553422287339374665214507715258477170279863188051972524279004043370510755952367516646154325841883835552088827103574641715900055505121913279772396462668984941074047210093835432679328881296585554121058002552339642645186937682063997181919009136043887687668558647540899449510476224251371580697452060828540044033532175632238269607262586631664417194114660996452751768948002713669983670898699911451124179894202592459101260399007346407041662684420654817395989981954698149471488503315918872605421880281877938501324310412601054487860593415260988464125117880569261564550088383201888678658853197200372079052591290215744418899131906558847768329170086779271114133918869157811623617724893177521623463690038492692008078128725394238855181640914405442717134230513446100967524165248932652553129015212282317993590524725727597143237651825379816445384396645994895173786494149007619284404932646940664807878445013720164679110819133836310035585281124457460918056281654812109238355520411515315930767891539752267087126059303151115163420140357662695224709309093821036273620868121901688915813631357629262778609583860064210145590226313903309339992304762736162549877168964958543989786709456577727520081082305880869147489739578946926912182746031627272028953552899770028227302307555942998463207039383963900669285061984750327323861568657647931629188281363454194142877747145493239632796578503702918304787678396920228248704451413132955281271191151674095867036058410727198015610466856202544998963261061490722096920498033286489332786896872482555527104240481283829898593439718067433230942575233920358198463348503767591442578896255118873822731674371152570948814277996392747612614160229360743710010146341864788643332159467650974214299729490325938033654627112184206300491798703885458835140431206665798544911341373488770520082376070921272510280355043702038961127336208334336719173286916599222290170023078655200105148602978748209421109207724161496318904403671182014090646251083318829188036903646741311801178707340424460921366525570987904117012338180307106672727676404926188072774981259643911788460667393825191765506189090831251191367042897364250952481598242275582711743973632234595352017471249346959842308700403653525843149083761593854339230789226691973349598869353215096375476683408955624012149222259080533501130765261001227324873254173879702233991096304137593172886919863114589595223073510996678624296996637363291757202124941046877813171892722980767947685738327105720508169899639445153164103311978649823635166023469917280421156258820763752751130198346889765706293237163198458446159525470659511981561195339425534443229116606165266885284845140248480920964770318872207218573243658510601484614788691117659111862551256165243055458858566302286344408019034395001955781411590945739163144503075885309791696591511431947531504756118470404325967882273268405692024143899886264716461507783155850885678930536268699823635145919374512040848990286261146116438034801810828601498100231120980919056955168464077601450933747876370483609240644141578259408636245334174306268135713563332361466636154720410416911953490358380229396475914232102272773614331380162916962179112621692064113649426005271804467436944957160485672428596498070945180529524223577396590353684938201977848160019422608651219787948360740151009430757815159922058941550753997725446173009315747504823278479228661332622142597217408913391962773263428661146791841158796618054668928616066281427145796246712484530878137560894696909613818015123393422425744654701214068850306081456026489007034428432726203225335548994749136048559795279795026294565361418377338191915617839072219303960738027696196515271344155297144965804996801857096995670498776264827361222733186635386620236465536005484997498619150784741957474578848362343743575468785811415575309018885789980563736887459755021175837437495493866715468049357112408173260278294170536341882246844924892241340944704601777029080608595817546203683898060710840370461827576193776415129016552344648002100999120436866833627181727062764042480190916268317452115324903666435995743265736539633686129380665475882685712094287593289020824501427272405761812579599640554607224711512043870464297157376011757135366074777524585340847248523667373388627668731254445169843441424592475478714104931463515649215080711096734526383202775682501020874248342278377970513408944899430874096725500439053398067633360997708079637193361409448854269085287830402002952448013517942077480780093721407876721873244962393001342694789467157058280194706182213609620998162318646220136258327675156268319003629886342959649836381677517835611445318495940328889539226519146139269222684470046866312456230874739714019152218948720456513883210699732984734238032503511830866650790688613442359077021895563279285797413056786345660817962315343778611167946471717298757233447159664532799839655987091564542121185307696874767739310862502063636630843704470050275388296686767245474930214607117263363459543621317380205073458248957750662156611912375257519522438214097606665022955738319681489253718581950615517533076805534174871917754173286421207047164481593047713760932330902317490177265201658956895273717362943161805517619833767993343004106338682021352636704091473488159562730264607800759489217685973591017660743210994742513162012366664964576589710929602140358855456010036698064206630231512887188754131652089938153448701486268638670397242906903818224835241305719170149468508634499219000823920055519202552637672627568505556495577434338807059081303801999061124944459459852663267506858646113585193837614245884443575030437881935278993357602458234690501368748421589647509943933753145506855238373293076942336364663165200742500843592037025679398466212830312320064788552973699727479646507347892771663551391465946690886663548173152555993083658369773832011506200241860026988105766950408547330202189196587853927763873322689374423717710042343277020731588131378989250455863480381471403437412503683687739584563811037790065760941130469483981305850374116173878483690130707200140685086630567353808873524355812812532248493258449930620007876996191699774999484465085505249378149406967897163613143853423032374551376590545515014135940200957204549746355585668136479008791567868020669043920522518009904286886117278490289271095200181868549191855358805621724916173805009186580325003144617675143850644756615703741786729207202910418745048424618339734020805875846183725981194090871848934855340482613166963729261121428689611479634214512646490043944780890676186982873466374714939624017975934851351680129904471157179788398318903819309394064453060108814143330515357797063496151566546413921177522214532791257533148818055035512077852004973681447994826795934142880784873161763524154210848692656065634288821794108333531926559483518336983711835814108362920776880290467004290296259198126832226506226589139000659894267467411679852071860251192589162845037965493679949134592944069083524373373760886639478551232539176625625987139781337590147384028309687943863785359559846499481357911104200765616381109301363291647646716929411414572122791650806799758432095810155739010636307234918463560949806398348828971151274906863584911842024607816707381516061704787146199459712774087200871644574722867577818732406237720439711781295606695547543744091442325605654875720968925274598203129023671400206947354799047998512893026202206947182010436301596537666342259134556252736551301994633218035062543086565317506768383749733310593681008776095922136980306695556654649880380666781289069422217502509957558963419706501710356951263766853226365940777330413100884000908452914225924832973445859189055836836382358559943117966406087129841837695050629667057949129079278387082624761785653032779843601412830235507315278434832141792425735950880559863182451536046847354601278457556036896397316010656051128220985175540416127006699228061621625294515474881653229490306267053748539413521140361264297281779510141303314322745330181950122705835287544107683990843377595957086593035756636162537652233287263665629293504329029326114889996376805156218335162656085249763339094175234594879399027978600175363959742977302763537396431347981648971119709702091332337092342578486806159277795277668988972019343456468486537163573431178467399673145594569373365265056669809229641152575214217846002444436626886629488471997750954720811632679810976665531912864987451572372578475459240535913059057932584686850733233821746852260461682409022219007653827124807473385498673315929004470487738790470829697124136979404194242018281912707793294146585858986887110097363181470976423584414209736403216892974360735938918811033075588960247557911261163147038657442525182721327468585957308382310689632645557202765080878466500969065939176706397004079965377090518803464042776203618878527911977332429892494715826711386926028868571470046313429588673494701272567840475700923969492404850130750642212067717851225279374815242004431776734229878950790520522159777706300934353995828145327926221808402657723813107396889399662655902552644551805959559530113533839235266232734440804042292439791386202568523894994017751032374880551367897584503916458053276212109535686903915898420231972871235055154230083924652673314494396218466928253523335752776131293584486973560105410329469538273982112562510882942580381245065547334974541254336573795201337890643903802394564388556921006688689472546448776065109428239309891351124808878153187952626779667879296965156032377171150475965166740161118848835227461182113924905493198207158523494759667106845909021445796378382295121128645148322318127804417818448501602192061359517925533845786881333080660003387672866278473105080146666690869113989641250110816375497108003620025549849245133713433275464983281389706350075854833671019511539542573054712938217256463342547425055749854654464649290471345988803131850400196792502660692343479806256722188981974450423639155576525600005283622874457776136456259093348108599261637726500874714996730518509481045509790330560122286891721358886014301950936323713288662413868414889789986307477706607255637806191267155673864448308932609460738875835145642458509911506185696599125691040592322496046274411664717098743296586723315707835638103354010923180629362920309601004572168051654430239595395641320855422979266169156022774574566526991756225270100304490791650472534111386255106633272792640408699128134926216552053179642611119633787338539442380897995844136201603969920160909725935707733018298763881949187146806098249177180232704998251976808166443930418143480210487273899858760338799431385904895548738091707556801376389364277699804089764481280150219968088673931395559377417652532170327228015439969432968751422664823316280707962766514106022591650608641796428209887782760263056699281846221881608329410502650354821911706690635856906784117953483706406043242535129625466155127334405860779583380672993309811848197254135961636222531070575957765477523871592461449375660525781542117201880485688474137005742505218741765835767086154013741468830448836972740380899663919984043788062864780790438373103161426113890246108236029885247226632498761335398666475771287727429274716084420695320789429249987254081179424460637035993109075349511064077444709812626632909273274372073291835725763682163399553426539247604782091907042766071358059445312942297902850487351525317685379100845507602174980460257374336594424797031407036353209402183349005351482450162185649977934567088770437120808981692739648900431969394977542285171251544168004277533717443843149773384853520184822249208334082929983728055365553016476701774475199220529935893905497452409839086345546858748255347272871419201325372571400599773744986461864809081947505361790346547352778948933103920435608097931966956297027011598980836849655600880874067653011932242090111993837852044332818595471287757439938668162492144453761406589986645976091675898354573125505959285806357030304668306291923925768631496082610553853783944799606121000763734618216461675732745622417883649908490416869298058555217056942154351307226605298158612879448698971631742220396474563547053591711329456752036334073340119326426988850183028976209004059226660199391711844178019115496882182632717055338105774635473403499537611922826913818888904068234409117040120244410036840240189403211994698998755473105892784704783030820013456915718245249917756365792508250734074907300689671662969495788202103269793538765060227728576073777940502595943496590515382727342510122624871891810661666819824927267212748704070040815212672682546959421358053378913448043504541546703211039405488729492932841267547699123813776514050045936312456462722912403258529294685727333586180598408388724233548709045321402291618455182903782225010329845622112586229928784872468251400923147593917671877162209743916763685960125854582697623777487922751670906623401661836504651375683020460105632074082446044062506235541861049956637606133110138694264847447024213079053114227527196357655492657129221607333661218152337033510354092272989498462225615503598950185977582045560423506610741987997518028147196986350539653909195267281108056679043033023371694404322610353544219165256179261352283979906993177777521959243073203297986928994959945432171325178318777274550982942568242537938940124579327919480152445040489708190508437865387396778910763526665333933061442655238818925389887738251226637403462721555582982572619217505004360644451663743829393335225980357601946310787428944293881113428081872223779747694154576637307669193451513575062216015376258445639216863717715055626257941934386425837268476727812896536660327474502142853207700943552206383781525722017909815515085955116007335974160773951334664874236353728974750813715475700895863933493937977732989236669980323603135533479894030161387795618918542428527081468261637725961266432741033232308751652292038273275238030343003550295220688978026597758121821503041305611773305254121240823158327626415699938093561176796575009665405603286095305699184547923083724651119684567298059920478818023921190797408646471408797023521215483495838421093872405777001826543337508098057200296831955431702306262341213921349167865795593279939768539751792681558603108346167433344493857150308487069751845534794781406760274558740474159621703441634715173580133999691140566943235255252641019734333169695354709733283408617728092811440343741723581335504904488341864751505528956540474520820677092067198556407131832209606065227541023055390869758599757652753581777726396285918817723542060036949289125850381236165958977386114910365098862173437634580245926077200730349490732494407491166824389645380204251149064405966552967173407888424452229905573476253021508734461882618657373355767452438127018681780332927676136361936896385243546115931966853821361577946338880595004964644884391454817062115123965424383630792755553955652906026520352313656949838653705809783353880227739852199530523170678617012828243163105384210210648570299437367167377412433121161193946484900429287151989580365886916169776208305973254090561720359518934377957209979429143969799915605193675539217390337878871385665741497203302459361412161158479294896556249216013070111170811634170127627722429540156659816734220791710185399328666181370482065700611817920922441115677945246509113171194546195294091528974041179166871362782303451567923314306559668905864647154472370016843604669432977807304233365943353227137839884670005759377922931337221024420683682261639595357638090397075281870849174023376069254211079204747427355256526324883154155650797768562751908547891553807496721444114009140636438363628582529559696419197170033108445985391039444140926948454646095086698969798503128404610523572168341919214668656226683497785969569149426366265487046614284115306124578521337987468178960013546974599692147605445456175829814204767208469988514538080185239351458589313628897439532931957570092952146830468658499991336387268054309187778031960917385446428028197216193734580073738543256643881703257569115331645083867402287108551935628178388707489060809519923516047421967221571857675386671419808013953384876470325214882310585840522818827805622613038452603660129174568850610092004103536396244889711755663908158071363623719392117224170511793995730114679096335502300678016570873628749758340769341302820312862461421542370372545000910517248398480708515003476576568034284446792324099720136990776731371091021931329282176041604834929541123493643867502112440149886278404629456322742436225923532911567300350903087779635355511007956286937335134578673514658217797396770909130405544298295404051137714095488225112538005353896739409738967089916249668784806539707635918548930056891299648677939572875108241174491713049670605492530537180956668554464895690899462879614616561488682842739069501685780785368742169475047704713286997329199650202723756198812305492019340563850338066677605589378405274983544184200559031713564750698178932231078354401217427858870932320049347536647505166199789536206235647670589764944301664674999585234938043900163569749414964630864897521906547344315757376932616188925472971503385946749801160334409367099251475420386282179484027796024667461973710470638638391662921694710843073873176001086823654288906493547466094290358636417254732045399811049203812367138023283510484536289869435206018907154717657882210683611602057624813277717322069556961269917074318823920500488469869156678680841544833075543511495464285818214744536856588528833881362137193106348401495176155111787266375666114155149014859430688488163735247118212661217631234374667486771537973398924647589927312146641897451009891804672782642257431445382013046711970756700460675033947707327961892865205984008033147007793781664732046702440726315817663476829850788716199619963136104170418145709936911538193547306516808799477066165800208486790747504991965018816949996575492593199744831290555207888606212652050158877287695030636612065170102084593067706798825380327809823926576765086878309220420739813578375216462530008337487552041008975790855854939988432888507448845747159065027884407095328564460506283604349263171538222694972144644616942786600056482138511385610353411402355062248721258903546437774603145160630148327870902873850184329188755468978352909423078087780528174410402929330788566377150831787833799453524822174046863289869128300365473756624602992243231698675691252442478603302738336706163450216435558863612574593711388203578801093026531324691446881042032235514244981665294674167894868879361046671299592375797012859229019647662735298718173430708475895561743659828840542408995697825210969433522785112641182291716519845450181778130974478043340154181642875351527327155118678514262116494423831075380787274714804217980033451551288473336607340243405497290655503315712662521469900461559965362860848156644058115285282036379609440431581705713970897549496662241361919771789330239864696383269014996691253657082344031124396584352597306112960450784753760717571236655493103567418522383624799939615947101105027895230141396497767177457211610451692269629687294375958908147366951988145382935632837808500665225321529833738083117239854709954588452851354092204941018401962151238604320132132797278674940375192782700397448274252245857093982043743230852292142917714895039128415230910938401490416514071938074225804946051195138249142319601615613941662811924290512740545548663878059833756714991034220369624888817652360521627743512231963797830600879312235191796396059847704888940012177088577430503105644447031756390530831279366907498122529202153327834823988666489112085440626304397121771209922792325544914311850949454689530966447244014721660259506548343633064469400883604073244328682676115571572331432343764349626851581691782876523312135867651102356143573051195575112444040552525975266556964419691885904175213468403568875479584014325271188275166843673010907829396809565598543127822520842521938898962919517942717955872843730139910569163947928129864821011733103499103966271624074751822186229275605285002975349953953898359701859450174768712162899219246583973678012179594122484435496074496396439064890128818755323554356227192825722437425251348589477653635542513698713586104877566543750851046276960409944778901615832478017085524959271020542676760494367674825446572734256398397009314269454562687882015974181092887326344408129431629836697982517763118328337053387410951605378027528600601929266714792730261324106561036032207453386747930429578381665620715960898689183705677928674190397605674195327095818786792246245225585972752619770132057793923860032634116731086119544635036210785020684194347135242674813310191733558562456728156283077923196934520481082762182162558814643030219473146231309272644337379783956395892976813949241411274431857595156730381190725281735618034163452819567062594446761469150844593161832900216244181080145099874290732123905734702782879782619063966220122658036730132288649764771019298625059644229345110681185188270666022872825469045670774352959185949999531465634644266535783873603050394428380110595382414451472316426242921357393143152037808445777425161603035988704606374346712090921523161611959668109279654640313077277692364210186426552996089123878729154065223704015184711240613590928091540442561865664369736294376092410529620708288759468193753305082284888803348500997724682776667826360207411286947452910864121517390770197905840308825889900151607109632485310540264930951890435954262156354113699022032195866620492737193911671531426061050252405861405656043137253770018244158831261674093841929157193412367406504558338466887430074644114724075745955337100328165621477395750846535508254539036436037570007287490427339295179580718355613243169362797354226643537766394645924355320444272210429059010745879924760064976016936133740575930747551803984963540822117958979783364799914578348185875671385063617455174838168471788445929457970196959547082874089568521371174614983482202421159915980298038442718492522768914380196009492650711050406540840629660459438966710243646547171277789996298800734217949376825376001430139740703161194424860291971512599974863178437548508984574730458352992715491485690594966051345298545922658643107052663644983677404093638389083183053112978360461329372812207356407020197702356626637065648637301974941775545398076794470924811549980577280666763875735607847833042372002757597073769255350718574705466874014135800357914466522953219408026334335581081212826002552878200695904298545590253359808125010146494810124557035744399150808739663356621665344494468151636641234130647491354458874788174865291072991153032057339621690489921728301700329295481736088554478379266212192818137593932438716550563276640654035900261143988500373930786480625109120658284216294779660828610393875539044762387448630680423835160849474306868214032780975466677253617588300617158936429506080713703019780788743090747970440549805944769225536580000050163850165127404646778998618723421557365933335274370429469430701283976299527691473055649439788122938780191209720603403741856551815392771507618905393187199479536957937494212621253626371622415747767206568979890412262747437252006181567882823228533187011074417127068651794936499298797206653505394566998792077539546393104795127080671431108342122564049925990646530988403475130698233016015751166837752549905836596964525428132447058975127465698866956790179157280519796059848850633217459723298362780127354410644750484094786710123243910683900219617193403630399323889924612724993501165645573299544431427811830782911711341546421830751217856349581804520503047234550898547172849734776783485845375726452215217032594044537618770132441373055689094091744071953856378748476983176459870454867580848385586608648671734855233865962155477093428714301010855991460410374593763991850235831371068639541639781765338263490604332788078009490681633272014522915756866202680951797168573713784625044944791136497491011116717262934342251191617017932453429142058010148672394130771675162058782311378680109072492407597686297882890483294928342911785253938519554730916060844404837031227771429362382688365562169980918322803316509283711238477048148655530831369898412451710142015144134698376892736457156530761869040033394414689944274757242686376780927806290218742010600157427789216452879946032318815812701047765193333880793508050579315324549050227665333942647370101078304359210215680097717639246805046371841619830816293566465081046851174623113770266144636854639555753838307451353965414364082651107825094645842326472379752401087826974873179476828298146784414462242004239479263105443623873640727863644206181279585430314214398863588973858453503975884969147687184449882122098743290634140250032031674235118118776634785374061839012310394669533312918769124524762998844911033079886611168770023426005047486754635866821185713687852259024742685138775546798448352166033952867313266555218431885741466335512526778137109822176025587641112073558924544930643295703117360044244408222953047086375826784460794643177408590605795999489865263594098534029120768067268417963435875176861753077698618748403319173741446154470338444727106261222858156577647172437576310377709073013019583808243764270595343784486452245604535696492953175497850042217273200699146341991089472555592140892497434742419683544953811733222301520399162338056082278774098560364358451793311357679898056897203307011693320225874202374363002543168989481671499962931157755795745627137473924299991121586147495912683121594397999637248847732250076296195390481734850540130582115081212577621431597151434364231520782570348834007550048929699087832785533688108864868294883784964600495319090930205212789839965392962157354092932029153618556992547529889292490490518703529216987165497911941145560052892569043199343257805927584381658818387258470956898587914635683325870882278443775657109752381436594689276536265970407500587111675835417884706088394008745678587692624863667164823696777232122695783221393056402072080839468138118637907482216462142239573926379216086263701329830750641201578039307816655290235522410157361838720135542951676024342681687086931534396265815790639695674398013128265565718974360791336126372566950833646015476140088356952208473543261565546663201302184060713271564796962379829591498445318169968071696837532727887592511562890243118280633025406975602607082487283242261162058212835186409263296535393796167122869424884968983267139669464283572359303741972736474197701689413553616355524934986277018122754587411507223473839982773801950446598050273955439163098935116453174771318656415002822021563425619423300282404117658480471515226180937710419759479781297008463829825805056253717378415386682023595396766169666912880940408569262404822164373611518655489556992152365209770993331005038145887196818718586429832646811662387739054251765270517217282184130507231473646519856131490097584202441997277171957178806096347887799236946851218632372604714666712363296606332643222048083924394441040709883050362945019935838270136670240502648445203213155273364313899866233172822603903968836725685841857788393906747101445558418746915035212824959173680272159720647382528167774180492725327943066726800927783948835244407562773441953862893149617001908094913110666525454999411856963530196800040598874619761714823178909130440517554411153928773738763484487090378372417886889351578142136058393360688617002296041982474472117333640012391307399959708768700954666053646939114660786733808182732602592158928746276604995856411429156841050500986966992558185601351321543853467711991500736941200123365769040466055507151457622768242539056630813135402498880793884342648170145551869907893072418466250325186930536409087720211245786030504486846457443182765277939554410830565883086256256217806704950898927838608254267941695836401596970866817749520328171356354042900390311100280345048737733660618182577431637753198200104869941563531697250137255066512675003364047573926393857418311390868285034579998251179229187631684396171944964377997172777701573274297573975641435083013557654429591778316693685316658403365706825478235491792689871541118361498428416865206385429515077769028343330053011144563807647329278829872157187503061341044672808984311348081748051023895294460835815131286576506278611637888452961766893042878427003807465100048790147372125620769741488029103958090132705788631671757764327132613076200500462805937840196928202127341856149622462533143317879291096830578419845790066046256690512366014188911393152823008017211150557829726585153072273341109532270272766194948415273962694438840285659132202915334250125127575646669195500792128632281369325474419214920263696498226678007071357675311555507442905086394577870711396932319418677187899892680556555635227791362138042457086486002487891203817002494769733304487805284835891092608496701421389321318664113901410366913883862007136068680615432134909298311989110085814909263702296644911420055474404840627751569290778111913755329965566722786761695155416803227014736391350767101990900724230336884093061826377059157470252750977112538698435097753514410643797089703241231710377727863724920994582589072254858362197375731469678260079634152226085204529109254886272594720401861610801468021830172019271061639580050430636801509213702650370884816561246220915784104950080455320502928975104100361294904351972416425555369048535558969341732182031649202963031497796511808799970915897814775875249413650709679088278876375986507443776931948229314819428155093079733636026226054924211503907888996437181515451817511528692997279316684130894000557130624393331779787874630529248581119739736294413780865911286351436721576229520554860806415633085050988877590294067269114276279694937832054323813859922200360988375161583386383007413403010377023764964369008383034868148825236547948185498239427889022564740822763994007411330584767567364329150167224949331229480800352941482597195205128958236522857143633835028977389829962351243678734384147322234902515660352082383923614827092984259360658066651824773928019782707297192893080232766674712972841544037338922191142188398719825895057200668801507197575010434984674776379450716825316435901999798568530339459474394020421308682833008910256720468688234676126087622233776478943305582246695870025921603334034191793135877255971339823741533773474840530712191216784963261362392364374668857967065011265209554284607485298172297158963382298612199476137583309914746050638125602791532849679948425413209051913686528226152740482461713596874673692347648670191406115042815837100864126520290692985010071542883599136636685311871631038045287220104162055518577461465697034733836159734720817248379339475022100052774934409928437486003047550231535677304763266026047188888359363308809677925160799079380118577066414864747317987570537512563446983976595698169584943072390240020239353987388467292437149927954836442793954054367230555270522442292878675959383301005870546800620416260773153141658557448897208660559368994836724438678037407104976590549987862636217802064348329059036628886663553177509742359941046641087894612190599883098321320493956362092503492674221056751077180441418344305793775965909328166225821833575814017496348450044928273790957416725606846372519734818648526056837406869057833295321918734916804295300240653955463452437088234408600658292469399160957730947120128568850998410763194960444639299737839840446044252633407747895831896964203185810975999260252201121014435794586128769850256503131847003722160274342915830105248308776604982295641671604653604794908809074428984265549384549057294382486981108839362488082539984791549014004616412881675263812631406949854748774149462618031437646492868057635023706444986368658683162316790151363994326568571268325771502211079358981080424071613778226029715948976889648991853308782998275446427279451957674433861862725848042128646444444112133647149118114491722255962865697666482824655424349116337265814542851658318697258622484373267224302962998974098381383123633863909220703227466457674950760440816156412732835678239241279810031256281903185189075918149165829422915859881951103956748703284513663686221080058537993279869195010379348420306340847834022376544940466766212287842175017580768075914152583064089844441849621310897004311337364816572409939550221001012558524485597176427055264941814043591443879684899573799866757507351319836292798143073380277719808564544066849265641381076179833559413038450945483736510827819378970284441690086544953821014945898168975526273993764119878433462863733118191101070323504559314559422418517345704558594651373758996435684633837891874353331871232676939242393809896795238116390388655958611446447090554533706946010801808676587475618284852935261947046903716096755002863610966642504666889800016859011284899862441587874732630073017417310030717449986665262777468101830319752147438955711303770536451939058539932252797176488147935607254447669199491851716612746782562409969125977461281624595299867944416515912676258310695086557593730342815720441842161030153850171538335151478326085149946081648954696563215618363508566596747704298236535023002348434817351089216146928387369952399581581075576967932671785167690513138408934291029018387300165511226069856482822425327465622420004789957999258287335922227538270324440079134988984551699876944566844780027117079701665328662519274070400237494988911537816534490850989242577619064885989729523251903494775284487244453627365104797216081062171803073080886439959745898401948328327987377563881444848887370704560478658671495885915960768476005470731315389264447468786251551944155907497260302331414433803354587192665204693433482676415607589003107457815039133517878029483851296666796514675865733083622468640276425827541215659765005894042144099080676787554872819625509545944750320025791075557802691244398891732077409542759580903509516702714180670127111804429597575065229864881233284987915839254120795597753315723280661382358623515382969274661674304030401874701085493531359019713455722086948435141255009837732143904666623351520886921480762459915697174905564377866969666527026404812785714791614755506313002409949278883889788147684358007589405207176334137194899308969525564964867643913847214331232777372770286266352398806437634429507908342146303429188292557131009593847605017759927918925252418932468347238641640387529046022317156914720189470911861406366426413203879124732329840978507646330105474739005887721713760715345716451249164089920688216502698748899611692620473993362564715282826231278782728328812944535351083785564787853785126994031327682676996616003934084526607164227597329081198750021039287247004663104697884840989065744931129421030317690874697647438208445950255840484692310453549462828987107120881860448249384968291944111977378793974306898450182515639829384165876611144954009712506482091897582690629900895386205818389860464568577303501894184587358634571979983665667136670619728427838407822755536609332877954509590224040241887270654268419549356846504900682484889882639463512328433809485181316136064980970617980731595908326394213455665270138407565533758267098792969210009033217688792473389122447922644184731373319194084272661122629141154703067510059704289968760968573898615362203000077481648317093092915975582476892822594509389453201686301594173897322416105468871354988694029484702077135855598910782803428485380663954695812446329764294435850258425213769100061465392113372862820884956783810144280066662861873033782523251339925313918548361192335485152208069387830309011746175006588024627545721816735944230147395623908547121849859247231471472423154848975515384130206675057080866512896222287936166880100821731419219925207317038318140346717626271162544059415519945524215924553289132784074048509617670067809862777559306378966569981270319506636278089272936411925481657285238342786804453944374597053898918940120681564524717824203879442585859963671494692924567441225636896245540893669488249443341402221344893695031950555310233236106710741300869506363440159734370904564996229816411751401485906913112535996977355884955649283881783598417711960478792474106590368757312254120414862582636974506508338246187005355506856881093759394225790168454661850983176407566546080740142566227244797161794139897435975892924580531934958534273783568404159602490719975458207396894177985956151971457600984608612151654716739664475837781878767937331061144709288305374293652083648774139259378884037754351298153480811896731367373224376498958585957513273079222713624261699500367785727571729864216533775493047869131418174906472584056887554079590938315944572117255707183510733370269123155453033919072833309816654497689730206948876234430712087310421882714722582171438296141267859016537385281694133070321329395982002398260827824492338328079477231959717598910702427222488020262712920025480072462070335884389334545977102687630554382287866732613270205476755060430174551599744576570403061090318390911871228653762188231597324770971475710091089820661133003578571644167848421687290957873623116266364232882152018262954516165951876480544885582525520175259594136132327364331226194941706400333227227785610492933769481820824206374355522042507397473990183489913925203284122692669058944572576267560035609040847340191001689824249694333648395771059195373566954985474067485009153371323480527188627109677412204896784889329624502499551199700568687091869949539706422506232629164660487796460460876958851592091460047979972741350632006445268781070651678812981496373845581870896199492528920642450839213431360560305317573210706498538441049102913178983972585895859885157554984591001849766719738364382212425443731676377335133527231042617278514081258552563367837016535613496697818782441400035497912725037991423212992708057977105599178025229388711732593140524521697852659838238962431699848374228403194322565134308017430221557791209415480303831631221017834126935526041204964539594208045453494518376789684001853839787076914419405621450199277810422344211882763197250037275877141137633675836717116829585658609683061390234239557177224195777757910093949332416310781096079626391781123019424135475999734308644217802838422734510804466155921495311599491070213301272433591829308364303002324434987393298923743016004865115839138131189285276830850941080795168464636492208381550823300719874503733024132463858849198830336883852628569770265482580517239766215688988494860365630890536967920898481807800182723236697988407202097725168794345646444512302381553489142168491296293919029545839605799452478826648441296768883690784929621223301749947953381627137720840908790661171117731289041095878467549558738493806877625577773572367685502049286510140205913572270449980062359041344004088080919567949512649157109318026452953491447647923764826681373815909577399080697267436769129180873433408392194999217916372996315955336183571818588590823026130363922809213430578390181223694226509640257988504837267256785263894910708022650417301015003899164731433763887091051696594898327553179861374565428021209995231074809900234646478346768770714671585939806741239921141270950139294040965220782584157617256990156195531211508875662326343432102533805445032480139989655733247945232398588655060917633816534787240346877696066813416168684668639615536201886615337966293672765320586580605128091887541782370719778541815619072035297327482490627321709326414820206763989198539395730882881717456395378793357426250105210658632473237702066862473135869936134172571506297258838213223824406231306118914114953330270249041467845183781358352339333506231143583054136112417531731748689858313044239553565538953326097333885636356405791387996637047175577234531307353787458974317071383691419518420361638025867939166243255301067494710010781973372222125362469785171583650243028836846637902808317264677747824974504425665044906875393018258937466813143820651794404599367638568356734893165624012792329809659552062203121174355129806838274840516700728143044483101322154118237239973872664034397066217760354728392327284708914878907724221348654049079212897539915139016640879410854464240531283650462681554083012853542002774802945295761980598964034743276649327915261014943860534846637557923940437057387364297036140040742246327186179125587750370128994724132213310335603579255754731546155887898506907199816965877681343512458571101595846491043267044144831377270804181959121403654884789940820743017069511567272727763015258964169038754836545555001156145363523986888064189028651025463869928854662782566888792526788701135771960550859424493551998860045176871905001488241504023149736201392796431191602405210837979580195131549072100361033163846783963084110539109585263488241970091218626586405818878163154183643379046230011058906114080826381814055868326184724311661424461699288425141738879669812120730211096253914493160527402532744054936126480900792120449676104940617620873454763767878577396524275339291867471105614564390171867369388376253854123643751430882506904588754893598793309385799493098022292860195660791334932621506778778761802678687981820986232609005441206277574626422194169756321108246685157964905049170688583257822384439720831293907737415126714205237607689954443734377551628899961085378755356858947907519177130998507662058029040237190751570721854800084987845927875635886120156089982795036312791085412048280320381034503793708068223260249621536585212667643760130885529846015435863464311497284743761716530676452853399449925840310102195479802393441944561617833611986181302368273182240197999974784134010386604340907855645107868598026668580580056292946450518262312893822031639155179776305371917812603094495252687496371897852684475526588211683011747230287781831985436498266052113219804826043663783335258442048203689201927890790624466948441877267942372731090063320682615705798945787253166893867083661350201832394972143094841275992095521865821056596597086985007462939414025125211956836138180193598276300180559723535727117737395461134815217186057799582633278189311436704244339377957787014373989677077322370028069036933389750986794702265664744162966923701323947356209834376699967763785706881343046447270573379229488659073294531909171806092320105840319737090467987466689668350292671685408160566549304447019647042649151277012282520025933009951726478848992671432819987318637144656311712618725011878221477368393477400123400382043996952644138914451489745560444979045024384593836170862760097438552176590404715701754174100232881679398314845272530817910518549965143452013975227417351219364635171366440312800392309528796121875251180534688577534806357672831399417103552534091146970355630517247674295896357546273312786319309508633277692499686197569790873780415618500879305391454302493563183753870318802332743743156908245902575356253674664413473840676808099524771290335214249289811917542658183063340937880473842705622278179052526915815372131493786909741541638768677265121158859874784002525021503403761171357670443142584460120340368944274250118600228643308875557392426454570863763867122130309250031403061505061009262218152853303575362766195872276048009697018350440846572574150931756553761214300764649960789256901650160861277550730887314627372115911875222980417892078711751480833404364344011210541550518368930444542238194777240680068233804674180358484086236257519904338853638134564742530965882987433173825741576890889571157308135539881870203126652640888269737096950405216548793794611450356879198896293464587313239213008353740960327108926848323789311771112930952809397124843243820154197126698172792043552796062369016551155698252024949647740644955682933944537062420901556542913114689901777398683905082383553460674309285796757916656927312071013422937076099298405423308708080052045181819168811292001572723935446845878920755667186380191096905601744829570121094164174831785908601687036481485904681214084025148855147697585200535669384741097133141975803193870307452482194259503329535814875105713763230255156510959789101087452247732162804935798606967774575831184749314324311326426958809128099958090676654346335293846100525787455759987667892361349056373603200153706887423980369904649062797101922120709111735954718752293283881904172658160344403063986522194539983582407802347256689149244879653590346508483046125406428904189735082977956852973909816539261196386415128236984359742984754150610701566944909445088954276679283911798480149792059603459845882578539665199013009392912301253739815048955730166819590432527837009832203191004249158175039085262848340989748774810718474078465250877315726662171590063819137490158714788094341132121383752987208533923114901435928056574182758054265644338895847118236309944140233058327612913982618732580833067606371974265223998171418998473798121508893509130986593173844777396836700216566897896122614336433586905155180536097225414048887259719215397683879078140182307382729220755726209685078349920061579881206230484485890113897456118297187745963798601704158694228270017342523870998145141095846069677346237783114719273636329749742431923895206921930324605821710416760771028032761272833117341907838949961815144494003185084738358625469123290444630922463020373283411954781598958558697280690471958493673794336113582883527027315107884618638238231964917938877968773694346086203542615775973696758319835591988804363189347430012264631239253090537446640109542772780014719271547589222631152590887969040690698059350885355064350814882904214248058579202808467797174260868286753149748479759335466667353381225337565275499230667796268049732623727450572826013773353869303614359364151636733005844156406983511117467014120342485590019973288095515560826811574657338579199062497770777455295316569494790087392264927477288771454135587028505881409538412127851085985887362712408927523034165931692350427735423328013438336422026952266698764423396904368550260928910365383582836602751786196874324519441735600284755206028787600930649185702506620771742409970544036827023982935369571299116712520058779972452556925279296051514207478335452977339265473152058501545859186211900626286571118786697055615658663195297515064783007908445188367365442293671352788634650580695050437712302422636612611577091347671002261634345249125279979316018251573386282561215941930058057095512950213651158018792802360347953067220404671022236022895827890335790121682804831783246165655425029555462159890479001939258578258216911275596075917347861615790756964604872972785895731857008147738459996033012703392442464952938964687752182204174851328266838547220851989367047471380788502822115338362478548507319210478100017593417083449045558725161734074569280845573872307994584719777200997680743901201385756760244223047795897776840446130559405386965576471391236458851957538748298969245627999867328369094219380127491384274903566376592595828413237536826144802391184674242308904668114766098987712471687776541106075363974003933646841117567531683341153661142906994243358171638026049345246875875192133786199539542294707514282598313998362562058591306633910431607540743898509354487197260002414421845156311952815875894591451550259766407507360602794065750332415181806693579021970801234458474092434515196322631385426865891165636045536786612310488729994798760824804269834959098790637136241242531486175818648986024270979846094669901936064922302539875541475230318749527476731523307702804427532719020439384042336113028137961790011576089598019082604550513965919328079370743835517832262858859661294810162405636847997509051406734463479989261734001447070458397454176882945911152306309290272195153131911372604561697053250099938927097309498997400267261257535935876425386037424724123192402160352790078683720764942579430107642776174267867694023652219381009644662556707995817019767987896681319200944441629974699354605624308290985773745780986152592253636448582252401125274941249565425399151923407771712830791621205880973860005525891742044366351078907656676561573135110859312623070831880707300972444750347286730625594122571292370020923005509678215052068446045351127583361686616558936185543173360852317540593484928252279020078069863643520131637266777289754149746415411507511980177726966402311639736085202559479740160892754646910211939598745635309633678800695703550426133588333522635712990858016140967812396740536171450534834883065061656195837206169382852583106798709916061778886024991167724219772898996045150728854287035907057127570622437551320608018952715289961752103703047986043333584963745262364767091458889310512439616793742284126393696251430795244576248825015144531281769071927508754829241240109191402281576204387028403991689164442880361455609530287865906997239997035747996404316512112177014472335192476251013200887660526254130885854406605319901698039245409612580332132625049766224866298092542902130089122495976090968207922011268701798814171873990182298401326043785223312463870744646603284685367328444383085873129329258796950093191469860757952395872562076285830521573576587686531099623970168580804695483698158198243005306926793381506908846961065739654733426576922591083293443042119344956892934248350467090981257306001932986171641620109029911081445027186964294354281263986262095067173752134577522209344649798832658867366839638397168650958204828337643275670101216091751685114489255802894882826704133677407907814555169363274937153110753999610112937073539957762510940186195465020655466121065486401828346112732206542285260763204947687725163121436651975926351477278900638880339046242709553781509464971389143165159352951657074817132787918904274420347659665892626254039499515274357318701330510303787054030978092067532433909451894154720692858432003113258063154348648702929014236954988747719360646158595888524691979815958435902231511004653433321248482642757187321903930316597242388864304100212785659561985881064070565711521588480356428300979243225954805069885310192580325350184104582861323797845220632967982091137303608588974036780039904314992342054491051053234907004835787227340127193555053212393284069557406453818392625558623537384426674602529049280283789035566752224918927191449472344118098263693970480651849609777463693440071509887032141332828840722820944055143654139894198575640915149015274107163202876458362881259290960617600948426204485155202881257987436767933848866454866042078104452388657547950617493284491268360763313878129972343740946421406238428609957969032710568868829644765309971007924410564104414141939977964746155366406778262401355441524592340293031191307101507766705547309715675825655584411728981692341422405681233795109689322380040244592074336098291386795918083680352857858090215803891410862620482182356387625698959653628154801166516449982666722243041548381654259671226771555433799410995692579141851748005503774791537091166474746902039427216611090675044689684504270797508848485579474881601668755005940216327154019689601591194350946063905656289603718765472012564421367553535400770910736031928851102659405575702732281580136188390536578973704048661294559297063961522914931761529147625523667465239907149235393783070745987692149784591274643196292695783065940338264279371211069805567129071761810153505127462379160091298222499355074226136862158716764263189031176242416935804952999147371680157163417645467410925184162160945439152769492824512366941821020902237545503198721268772404445733910312934539226562997740822928759262972056871098869263546067768766260988245246196900231566770593760349376486116822724614276194857480349564775963412809628463902022925296923997891665151788788619542802574972257143827036732174652374393680801899969964560131876366469087628103551544126919522035631527267504128163342032819830128157564397503805823860548908677347429686522392128940004435640772749971323877073680237744803672570973708446817489065810804272978268443384548036417628376594037463907433327972691249917367195025057186001174027229923670488017481360353252359005779310416590668476311992799748396629414074405057656408702441397129387533577852838262912972517379392925460074638690063186485173003373274179660436920434488708113617840839942064245840327710234226644154519896334340684443022801723080414435364432033123028096184939926896379288916011344228926710832038500859469610431527494121512152105194146723878148326523566033713959495456699049172652088339992347238835887065812871253121245902085587154084743728031019206131064489360938300176937169174543759016303688141165250695226558314161971808712367414831112470513421930781514476537842123587094326256207335497929973367704484640124641438987499964645829017635370375661291799084207065738905769711669999295851166452600156534713570574335524311449246678157516139404282871992728072481562206385759963852623901815627633467117540991097831968822206699849491836121511133867631750985591907970904506610762598094551397782008466478931004873510963645553072316268151804440555046226782001604251118610290098729058171475804270424487510223797391169034255304753061594620779944766685754922086065086155578764017263066963373244220499768458704909628543683449880870498248593286360120265548251303632051102548442541344725965041398786453682679922723407495086580090740220392513339999796664421170942224598121428969809617035642654435420164580832426092256354712178595136483627536503887260360030047235337582242849238094992514548781610878327695688116876580126418127413633393429639718060143364609819181147465310077707581935701251774166534387728218102287929647295859734528471716370398504020093780496938052723487441620516414445343670218391079663985888868824365807689684786277358743176571659484229129014378875693851518269011306057385893771633596330654223100756772864298440221799719015369897749812606588170351782068383150566742109066840262109042674811451692198396891161775683687473204700657987546491204085557040182355430011809311045519769673608344921983701077908805003941499289878464313763045687808073305232171280829467508246297721748069716070870261135373546255461701067662672836968761886265624299184006536737442173170636664632224967425690175534589120678291293285168169819101799589333256255208082724416927219098964417293029644948526772241748439093251203031106216601454179413169148459951754362967547272140147302669303721924691203584736731802333007687894654207103633466867827436933108944847682902423583466926707813827745030600726657091393995779608787520123625945511386668937795997143486518331970269637951501445289477293557527725336406302391056166353041455542713393555785543983750355815653365681535712375313341601697652546406026309708220355465039238334050991204099272207676411959729903516291844657537840040705482479992132341217904812741101803404042261698514826220778705929278794221462723864697981959616373613740604858763672108883198697022931023267806488527233985781991067347011151020332835336673547789928586488382048507058190540494239176465859142560599209846399356435278098190324199469763067810614808587567228486481590315612017608695435144962145007558658493779160224591496925448470025025013255570295011826070749685494951414999230927469401733952040989086851822261988564218805974729476107794576767739424061804476525488374693188707562961627419652018756367326426177570933709662570286041891581177744865662793105003804828207030083243283993502757181712760312792606325001869065118056636510821105908490395597203927195636299178256778417941357055382940312033603037236644270759129732123364512102454596560268949580225131795694010421199757139573000139686788819704674555432412693227961034504899732645659119927333531647384058716475706054923889585335738426909280241456834025811254669516782898982423686959553420213379816250820260461192939893284544952768349383736966105199096537110919658637898355921012288921073418464169925247575788135061587725688505953848804959434027318842707301260982230311291927425233920120341219240316349199574084881506095713999099512034162583132067087568050972069051937639808121122057095692919123447959797426652486228368811140876601645255227502855857066149985220847036462551837300679704939767251585083046807304058252680406812450881709606530136259754649685581672305548427533659029432614422924969094807794964662877027524067504819873752768464305809653358707022033244039843677771439677894814170817262076594178375781521995216382328336418892969925112372157282949717387325607342728724901751985442201408008774259438388669700469206444419300905308393387499214712367017828132990734166216752614055374217518329380733477941692317918868645937766641003991527318298351289120207324364453692077938833605084699211851786922121370135721118155420714753077597142806732257516730687107935822401969505280306197771611201578986390243590851795747137966634848876081410557432094263229299568993881096598550181957414016690887461431186330924917761300493520243324534030722872776330713482374481675201905365532036751490831683646612447472187255096501411071060190450280709051007910502142755306714571231143147511602904594160784181526143624570762572017748330756428991364791887316305027201026603683451937072944147867300525645145788947790525841092583586682821584048874704221208377184905192190416648896238036468939887580840785308330892683644494979325810883929403958596925490429589500180274922864542115819325911430024255743517106623058178197431735948591280152087553920901760364777693903883694853946947471207377629847205959282619794845879498644128117732193720765096115113192323577004545520032253708540134881313051850959781565204820289669034458240043261900180585453389811496552160676846566824419705545336825729573910648755314843524300616266130630162627542496485496128884248332268623269872513568324656894463714239519701358259091734022680597913559921700593127736694718001775946454062785168112321632781097860807636468121877392550221835526195669981691757211791057145589894743398713376926017096736220333928076734302759717964259765376582267726215606599009999985533272182093772838127516440388571401278565380445893781739242035698815415320857293774054820118393941897427863461108492275841595946625956500106107010106256766088408709030566139877747930405087579167900536574432208583195526162702771330928362915812939850692608007868358873103364041640154119039194362194159080419384898388264482872765535239123229285704998498982637820906733284675370294819533556825899935192529982027493966038228808054558623671492597335372726030062380567756838053968019622795902678915959586416411180314199559449068209239696458216679152629392047585118014997611351131078866521163040992363293201548766234657936480966111465877604038775792549539944120223685016269139923963872055688018103215705709698884116021197005201673925000793103720670571813516412684063350993275292504003322608376652758034954518553438766692189183197189826486695446917020186687442296941740357043946879936488918980996464056845927243823651473918493355816618516121553587049705367835473965316883428620140168363036886900709846545966945832406724920700871357739809486905227863272474365926926652761819242049184977511623580789517945722633169047247835894902585451930522555170267095191348857804780913539468772314375169472818773526448472511291572103169659393948483161245045929017088831429551130601070432344130920600108871432486674662666499029965163943683718761345884262868667689387650825259873418992531689241115820036790837962333031672804805435699418855802144759802501904928741831057941196771280204591626173105654465671743448131700229776313149615235767575612321833605257491643876206977735574787646500904987664617508716028145342135488791054361194724148967170771014749269949794244063444694742168050200584016164114147445182588984501623122929734491651456357164009872872649633911857707115848612126288452862791839480807832102310730334005332401430208043759000511285688519492000392368931938080246267181395743191372759055413127261650726489283436381622491144216743544883741622180688481940366535564288476922780848474989214386587707696824703168923380358803857758374297700564576803359265888041691801652090091989637623167797338330644604736354222695420500341704795791791740028632299695402763915313507073196533312045195440378415949540006522538360962233453513496912898033318003838582111902458418766702408254379269932687161347259113182158924110029952050566588577546890121298145254587930444035321552113154464741814815065984929056020577030469274681115625676013227162102243341889549748714371784990295607936851265971337930827415713181794387681744080910799503817290161705599593506574023504614995479686941094606584484551615796157262805966066341301167132416556877642037141227018077098411772768154344493916936228688914053215470641277568120580277576323212716713156851394632706904606123432478028775781484212713421250366942521778355898718102780633727298257144885908690182818731379375864478064351787461675099259494087516970104113807939681849815078257529757220991578204338599439631709791339356723964936861842353630462165452261424671613544871019189022055300632568411997145251248398131205225188370896311663267633403356624613960241921681713064677669135313619248176650350770802485856153265567099263181893445847657875128156751086999273269249732502960037966557195663005329193055459525742914642647207180578195642502883926243855091887942671777505198325339943575463595225030360442407944602566227800255808736639686280302554144170119490122273062953186170888543985362188594195598674372683035401561748860500452487763379589463429068171576541790364693207786728739455329899740276899721046424313129376126644682427708519237807451551429332923183314636071040582082044649732653047740900196607058257078272736429387485322530654324633212080764152461673952446361896873380902707869127735214026042725637469360095572023969260823503075414235613489616797129172037167008054466654771593225536380955374763749921065473744451297047892957216612806574077933709156212594002991043484757327803415845467934187230595127214873588769798617349124798427938428665720043917290990829194424705985073591333161943328055175429389664127413945282900827436000001588833446820355389774012038743365487977093495155168841731848076304200369216062056664147930674871581957029705425899613486311953178421609170123823194735088439623251854559814487902691631121366150589177565273721283399401181087722056162868505999206041116870585288525306319847326044380691455589876514417217162015773897674429759787882429558055029627062192002326598031651068505701621568200424488885859534625698239295589418281531616768101052307058414723086616465225591533483441574081414768182610643773272331989419548697868076560671222969455323438032470314439361045411906050048373634264637044494023706196702950011289942518623073798611996947438479365683267113098105809904665742808934828646489660941084639315193392518506212445567640199450163196790707504815368278855094747271473289593355983945143317685872385325742234765723117384012483242166004728451970644570127046605807231021501451483098045154157748633990445579493988879642715271279964837567088990123009260789059149757873701928981054073535386603618429647823640238670612582942226271206360352443360886463841620936302394306834785139429958067397175750835052386390283411759870145690621708256622569044986018724505090933631081934777979980189184413715815790053930345579639158347870297741786787356936216029423684543523228000570021470030861341381849392431577305818173632786996179531934739523871986926126299777813463975355722101661250082874713612554404024066733568188305443567086208915103884317637933912807751655106798643564590408365163528600788422829712476062810829950335019894431251455963712931564886540952438907577707449067114510712811867982302899181522604609812928393465609697389111862333890524805760519119552008058929736770662136416675700201773919255488383610629102290873291516075667464372644140578916135790668951202914540872603154092346442029846928563649475183459306680930199915055732726853150210855750482590610119669694832634568759443620413215068357952416571322000824815564471468712915648261347668014131831600214614979957579177129133612212849868701271388487292915144038724703519342189681992023191685614479429564653852764071701881487636426425534169002269458487120696570429201692506346996171180854614587495717670858643975953668029074355270670681112260260359783361048567217047808495134491956305922510773920733534090510252431105560685878433732497440715771310112816505534864529032617690676226565128399373240156921601387120468977194241798091810162527972840307699306036823963187917624808102425846702452199939712987043078793799005354219433730897040446036195293420074002440017308559381705822911275619588481772431131347875563033495918954085796383731558475908157137996726171328820915129986367503542916186373035223477109799991784104164350836284498001592291252181890969528663327863423899411096940599171792623842164291450252825393733087468685720937658639038277558503719229185798505096891554332010865249916994233913584897304438482421811674588459500272704764277969792615221907344883596498744196954124773723628378145023749297064918330827040050369458626340517756049492403689104109281648002156092828219577004625096812236661073255826549180840826630828696109607178215795825927211254938791366340154838134138836828374085092180880135129356533831884579668923503386481790500151303514670935193367259132247443328774560723987014251790797975159767760337256480981936801879780527106700051785484509588730734348776828148196201222330234972494268564079168289408732537994986282344427988550544725883383729840235051051989351906522182209188437915406426741618596072338163892107647810949155172675544600593114094159477246680259086638139269010999177076765274071570539999865509224231221601019084192127184093167830427603832759340739506702199053924012862398628315696199354870275512242210404009670692529351692660712632389914148667689922138123319850622425923550763249864233145457763851679102134027199525270251984790758501419367253823570749249113457496592550958327979113364963866842166889230148260330565392319394107812186321720903173873556880811826044613271811839280281090693358064513209498228008301861693593858111149611429421465558905364050185843516642449427662423709704525996081069345995378641657769307418518498328727587152030395279896047072664884144377662752575636210093926602139639789138056511997961691313964703943509293072812928620801577893300881535431309571644704789753759012740204970087513808899949964082915196155704314245358838526703828980129974788289770077385343836145118748239049268060020784342146471510422518064283362296132527929950982683662774571255296203211243657687171196752835711433196209623068701346065910811923324362322366875528995846240730038178019565147819361666422593996648418757125625413311033398600835275988222555139645545601681114408175150296201829350442485774332108971618276276687899912844659309319918208014141424320011154809063648670333155256965185143718497910804865794956726786758827850844095505568922197061443862230839439088175977016224155797819504199904475701613577572474730618441330251150470426287948613997213717131336378362824864722433825066517143933743272357108217575680951144629637146120529140075145696913586704329199235637338567753010655373384725656794369124479084364225744594035464988414401179981131751391824443190756609230390390013995683749826282047933747434572206842556709868702345296213602818185248649374360530863017171408299291371499088861735514503310662984186344558948644946938813350544368475167879038041128457903838627055881332895375582828097211958879654834878669951645531014276510276709756727998133694039130121703300138975810046070347981257344350156910262765644693700720612371407662444430794218194479470028729658059929845678884867343690299532341953820216937774739606161988856853248011459132518827393184543377358051182585235770948206257111260452305095703894311796070874410534763790378386752974589256736368835493942527170419666399378486365188665760671071671466689949559418199803181316466464194974132945782634828081354490407041074891769678441437548973809920515940171139331823615544820018304783964722198542110767542352475970268044776933263921421117080506899525020927627257824433159591251831743927976671957136807428599153630601926148520478302918907746931903657507925380101719102945581638963963639881771379176862641563425690421535521644633566216836723245231934571382337956975022679058642531231985232755179278826115009196803778806977062218696254977964926169844041933782048384499541269459447719671466219191851907606973820685762570630537300437209020189516252016351994859694528519341801290997285563820532020091237373823354624751574927938535891629086690333126728111631882484878159972653534163868327339923147158222382142181378548207168584112351471240468726768975401802974572096319513754065082741091429171491026493621452208750907744502472360113016235650323018916935511575469459921806713616528478297649485784261792964639096231978325792243465926764202875616597713056670224047035037835207330282107361051348557889723185165199376770623069103959170431616297493764667644005631505693032095259641061517041763225212894559629043265130589918284837828932426561499941843564003423673384710258905607879461537764147720132870144328559709351717660796752975369127629204479434294561020103250932237466628706462080095942749492999145896026420742802276950421557337465546381936256572801803594691329407794605528056581564417740452411440435970549436508384123218679518279207241835834241291892253396450046184764939987843861041779467570792374427971764308359783496936536773181344631611849456687930168878058597009451309172810682993198715356099460372449654326830628661156543793448230600892007338637923316377342810061473614758362979829776982353067444079973472887110240281476988673212560639537482150574017646530445753956274319107682478610463771046165691405530544465625203902050532450644287229604433798426500964782304486347240011529834971931803111370327097058159474914354990942370519090831658838676971249530791169927373040556318176124318030788496323470721811922003179932986422980691887436120791323709387545922160816067158344170520733180091508560229231570950245605708162477505402589972443327220171757105272067605256048537850037495671547387103779283762328943785497270744185891140512104962546867775035890100516645268587594744705196261920203445476689285163443288436819135070841779410134953242911787070271357560716951832830620043232373955673796681751332981030091658549513405888676958677426420323386660788767107348867556734716272343065519259740007990189410879269857831526084089419187928695683055731528496092999067438813366870436267532675746423975064879950627861201079358968817247655626487437177060541930694232074458011061023341249772488557676639425948466384360141676265738032273134903939024587359437592939076485654828197090857479698850792915538555570065378503086767784850082205944796208789925108544321585807701157137414770391710387555327026129682398422874657001214939156887217679434930251802362158577744138071774846641037655829004763022993713482954225029466059667646524470135332690830983018674832233259268778778325469931943082485121463454339255812496772130549245195659465056969924802805216795040643640043711826589258048886537465704672546233481885251895809748915521508833163325922135034760043284426736907954206931328062507440941915768216607107771235733335140832548745091549599481515381547122778024752664992190105662323496768455228315502002334819734964428630249503821106718067549478916526560858530776051064790116338107006130446129391011370593811549249921370894894962770486246673367082626409122372024777173028351462724931851950236872927621159402047197567732191136332308494649208920220130915143261536654461922777216686166887653242167172868638913102595494732717764106716461962987551840117816875527106348516781129140537801131698365943943750781906552326495606618923818443985738571324053581931183924741173908057713717054659893771721371372385437219182413663154354256297152768968721120301527663734235596831107735515225472472618142176956890680533238416639612275705022829271521047614545695787982472988566972517004181649966654087901058665682421980769499580735701313840528029496481561220267957657457151034567956866771181671046330069894323987970006271308651437137834264822072193748577955791801448142437121084374330053947198087305726121037493326474860908549301315956035532574159524434222959292490664936624159241870282611542002060391868937727140023018272614440355920866907286767679650063459974707688991548746338305564478690204634711842602553743249685888224388154760097330094750601555083850658260217394256391405719064305703380590687814069422565151702670845196675651959196686241252163725133030160851913001974197962840099330890176994942200133396951550834368426503286292394738451439694986207204182204633988891169093773669455476511447539788712960810031950054993744679401182180800221504524490314424090142731692891473997393222159658325322490790227536449217964098264430589278035894534174005694536861702957050197863666477221549617143335462742950520363378757509951091118759896226062674779134288280949719921350942033288514514259500399689549950036077498903158121893085777942716299526886730239594750974936606557118664795183996523054018006582736647461430324116490048486452701005087226521190098675714478954992815807085981980246171547052205193097812742287443691751506787512151704974521503465667185868418045617540877117108677635347722129683703597735858945929053212982549670555706102123135798876957980150691344955070461649796899718584416216485662753012738265126785590525944021519800117099843249721598051035423976479551633842851302806165199768453071607729424509015353161040105339422501121465440208784229666002137442532100366066379057913764136784079540741592592142639642316564905425002156961141233548585022905596983390342238475915891353263430384914374827979390815787560335222958426362338075545300589163848406636468574585898060653081142011784398844796456606129967622891955755613792339619818063986330471772424994142754895822567982027380506909447374586970131055572696672882826505917689990358795981689769959449134461609980053379039130122368999593807632898522589494028791095599109873432293756571777068687178276308447805796127611792118170094060329082433341681954854743832128483146927203129571530192362754658175311189088287998154023365511096269247897410544109161356753086305426373317276797925407820368077650406379302292644962991710858804139200091341513217415584204275606544309005187679046752538219322500651723717922572315347684352884922195513959095384333414812239799832589249205199276919850759860878150198934622748581099298431659632680517042440046980701150831517222485260539591478719900391233908651722911296070754279667208201421252040047427007225379136098615673003505507420304966004620698630691887023714252219059058865902596580152401631066133499494530312311750172130929309615414834671159601348780400455138604030634699095696653332158212402845777411311044047344510777507095024442915374992342725886978351061945616289905241919311417311613041033430373007379407935767525035710370612574462707591682362285656811500436957305238625153031893691185406293057572491928069696550329642971396302417481816608814781211460094522830524803118455353190447169595138340451459608068895294060254256722764724898295525753614530266882836418163474779106188194381318554388278056147712014987228635613191288341530658773515825040081794118384680454361108595344924890172404963389529817218133321915686736988100094921556594790602398494017880289303608255580430887845388916922524547900522804184509516683265765193015818229352266064614857694832041052019362416064291461191221760655432523667859979959783781527000671976630062436796711239333336838933816320237647120323558307708736074080023996932171635963161239070828598904156967273653322868576987075353739747218499049505455936389978662501316629592192974879020674790268796990005735911339466130592990300388976389896606199463138130181805027519302031009744326136952545629620206798024304228680742200238350064325724070367896468433932418908708236299564810325522638735622708370112478402856386204460784154204581413562880483181597658492428210630497619489056530067170622147778379201362381660450816653336545631668733111302742698386662288359381330392603164069596356996021736590997040450057714962233458859464287082958424520113754729691081446067791849943707340559107329695951838097473936935515032884235239537068514084825646209267695430535963256378232478415418527868157139478254433350495652046484414439589520823692479208087282540286014317393203005129207739899574970358866898841907751828979430500882678740921973039624626696922134763019646959736148688074132078057257993107383849805426488434639636512926833012176834887844987277890047219686069287492454803317390972952391078029173751632045087327074783979025072242336289393689397256943978532779950037343354418352886255732796603531261767302720105778096839740332659940565584459709862622139582998811848088136342828561141931930770114915167266802349824722089165128238892069391801368192566960304588279140495327093187223542857583827143016833025611109558158200498055068838889012922724094389516059157823095801369845673062724651811996115460537790800938168610267364307597134471208675546866857056300210581252949956236146354375583650617534471348640841960959131084814304596343541551815314018173483387026844477347275121710460318464501929351944127436458662167817690744787518761171411347637937322281965901257393683077989344371274549729317443225117697403207012988410726365597078194662498854488887626043888178394787577657902598157055502221092033781722587288161424099700259160742249376574253245331993682851732094296837713792124333468161100227835191710773960299521825301857575213778428820967629234821515988901209404838514077875769343250943634442050313697026613854182254572025827568524662378077672972975773518351576529964742900527957145524626012653480310169530464722515541704251720941744405907801396010209047629025971238189038135543219427822610684415944661669233810341241838001750103181521457307353750216670188011482442133611099191367133547427657479629606643707946720698995601412961706181867547446393392881139042799998402915999879811473932146663844757273691521929808284852323945038051448854421041235415527846256991125235450500649617653855376955858618146199970215545466121849361548733019881958076689588189927073001671197831975621756091601406817762310326357747770144426446005724205625485716914495708477569332264102422276013943974423792061577458068476996510946561205832848634174681930016258259532817501792903350952028047790791478976636818654042969648603234345905615659960182659820916420796188285294531084525552940442174422561839294123682527976152744485392908851953974226750660373759510041414525635466071864221729686298487894415903219173287958989795513990447381804077331577557284746503859669790478303130151781340591081600024930408546763121267828081367767059085337868746702119080877867530644433280950954768823810933781109421573380751944599438482364768121477186422524882347547441961403598830953717453588412179230970806715867419643714102526611946215884579023064114974391777221020588235954294460353347621938112683682201311099575857940083721578537538316211147561987913455939062429305804047099022181618161582322388123040415589595864329673524027000438793239770413625662457081817019431934095525622219577493187503829421516969900247861975572394543941804621066180644480458006945370975636206274245363058997492941810657362258622157029227497345841502758635269291875106012195849758507450959373582836827859253344185344826823752139896692694131489075041975287727748671693880210492750828750651414051223008760930396600442843320865351058597373757985708228546584314487152935051180897704079756256051320651508530232736328882782034579112976773056028806497596727125171349888254543979198763851629065921444026334413349363033374632228990791137438116010606283555383553092567982355733085884348162592822050427426455990744716120963487587898991772274193339611204181418824222465763786348552111202521503200178254966228473266080964008725265685527146968422782451337865210772635074546892392578601698837001992690845541294717315405312592705658976190000841838710911100614307712263827226318394775221130794318904531510691024224621226101117734422292021315643350917576888328542090912657302355185003807786898868857615785228937535472301712798673221674358551875961396953835140111390052846131042734780701257140089776992533135034750109002986231301068493407313728444991678866324026237062922910690094984312521818249783910388086848575171087686295327479735106866153092829844336820482668471405716440647063111679143401875143856895714986734354315770254195980339041578577236175210270445675082460065920037126374411366461744843015695602849973282218521295315317450827528895844418536738356085012727997807645442973285951409351042309410295902592870952998183815014549935514574353357789096819461154457976452328232228261857875617630946824406337465573820361063855279649844835347170307747395669658115733078899029084501375997377999978934854932960356020183104585034860034169102577900912936703587589387541773763654215187244835274980921071349270006207604251651097658947708941501053723132922538442342634900631852969372745827437552186170451411792333994540275553438707044036849896755045202494064462883607894601201215491985826784711543610185938585760388560584040116109719932483138217387877785143578159276495337060346280863118741169616089311021380510559541306879438860983075102108746967256387789580357357933649510815886035847918625137059819463365120012821819619348441334139591831453664001237580598264636815701618084318013953850379256300147718967471149338024979933800483782620298598325348921691464749885326211617128902246516370120780377227767247624373440426141899554852289248137899558678539903300345118218859830992212641349579558806133297510259041135685113287379394492428636472182053546994290474325313067435992246426689808241037125687320146034921651039974592436438771113387806837971927620749209245418540000049170158682773880767197712858947368999226268618024585636774600648421455248500397059139986691263851767272240515345812480036618073876098413802072404341984497281989416722674854458842800275438841501608749068132666778305147385855941225074576522101531321790411742194717169291369289659995142712624238022527939003134467036980726592491276130082670130634187461663846264500141944427401356590073640473248431396012482944479428871614856347336129383339523919268609503223301220548251196840029536753885393370650297496748286867114093205976466484327443545146552698067933761797010730451348506901600075974459833097153387219782258685125435299619046928410409337815763775722033594969831552775402867032451036883752354588553785636324789574231771589514398507092293189730531595418728969891337015157039106308599741488439821795832568035842911783807733375144310855741608140873340205770643164172952600821149683291364012955897434309375668035114778538323071376569429630792935028775064741216489123438471326103469224448096920311847226078962796085768310076889971883445346212221867618484696679988907654018793463641973554707567861857615181695415788805500290956401840093352640727284942479058356755768387939743306975977063795100533047293334894499660412563876508941131159240953477410755915954661979955186821885684692272137599270979201109750376658513076514105851528869890710732678332540496333879690038329208442850252086471923777497612274320585975361779900524445182508381043320259858414818768491895295898925776384413429106004166264903003331268019214936136381775635966442281523917243174710460278917374857699399134885800420974955716815729733292950769865821089761444087725022440844032508987665565396133845032496449455320960932816897528192687005814095010846903426970027933575301070079326971316443419604422059416943627412632079323966708411052501965595451547042883524842663344653618381768709149926629248752266687656726917551110135797166694566516844872768781794229601583746696444618108099929234045845001938201720325220086839533333312508306898210506477839556616425654369092360728833183527886957599812059609967006070392633422187915135596789834424047672621330721044532902402959498955924661768660694480037702599490172509926182963136291314909440591361914010079163649458205571223705364473864792742977005416766268065320347026323104063156864866983797387814766570283902509092023998384811219962916316395098845403279153319257578897416821272426174927689821601363994152109279286451885675671094210339251555929904199682815138116427239079354157920188606696730355363181026930782167010999828764497203432954951174988080460827466941747849619867147455186059148769973446427250666942969636759402156258028532707212445282559096564802992677429134260043872499860222169602152023045205313254100785895062849620265394142737199701932736545421187361583176135071377157979467978098057250467060004400426758022213932276996304326915672410423233738946967088774403178922004579901121317701636646792756472323659860333212692331641457859076400121523862637185737596189933515360543225753401570363069604374948243981289932370709516052486153164868698343642428147158168847871887827213647226606467944604471492672331683353796482114767902678057741914091322879470813183171052953144332677735865357264352536246624905679548884468591792032996343781829377001048786249216641746430687149517805451281017155044393001000703291243861675123107598718247087695938161068743352886706659388546609718897944620462487932309704429197983103693482062525421176306257724024277086812384487728870068770388208423343536433237130273123547720036145613316113568592568848534099703689264390542862231192040858164818610123956919195705882994659401320725367858186270282511327617003820180628821683657826972515715002705491717001842493098623390272827977398564874492831012907698134778793082806360683222636150011799625077971597824318891985746634640571960511365871665515923375928236163880980338297248313704808940008267591206898412889351187704745243923366619757779272573503793878891626208797414807268253336559518691122022787029885906322580182069259022405086983853938847337422138897664444316614851477418292763411938423048278393944773841589660518822015562846363901574454060584239108098517871399713883088370627431360092449237298712181646770960549113374144026253731336142066490105376630403066245972860557335897655867879991547937096872304985214018971241151939568841066940922284048086661280394071951667867251520353564557418333235632703303192706336112868838708642880993123628426283675420896616283633910087449768861166680233407541778712813411053198640617601155566437915507718885359885129589914495152699817690911161917089597811637192180866946134097229892425731055865482773339258345165006267590109942181562047222054983622638990412978667833241882464342020206371119839295021866890780883791133094534088383078460169589323824114406569058596341166178590936325025903761066889886451019236324724962793858628628066613822841436880329104711555155522113106255598519240416243069273982226034813981164426918426533602590822496611280918465230688386299185531997859869613173968639283420610809524309207485168476049008130827556903191314937220368704789201939876947364377759662945444349961810019128822358196187679296228687951706072811454032180039510075980282326174370554651181746947398091758705645545849269756062705670622992012623452446770510246976966977380654245146133498723878137113708890966676831945936525760709947369899249892614825510913385925501429062951266205270374047768991229714536044126437937016793521828993451927295269222693572824568779648796263389353184574051313051188526995581975410426456109087436558016062458944933513346836251678181774492143867010537033339129699843712716577789262725296759038319323419533058834022507228003478910152142253515786271187548110373580732702543276640809498334587025413333758687039211522486508561570121214866615734176494020212141579202596188579157920854974638957931289406740041912691721867684718471288110186857674183888417041181608182453092797610158949120098660050547321576273034137953261895697139084894442674778476841838908295821410547232602070039322807151562661227357245197312435577775963260551210861901573483886506674958211534217252819134089143983339497733550547421891233789399441556082990763079308379835310460122300804676490386938011952575489391230502771674537158037070235544219362441632331008212318500352063962039210289542375494946450900671607002912079262994172864126219500340232523061722238021339156537085847803794440354551370599985490760697548234368491229102481024366641318743548477655455070330998560253428411459141338889322552603017378882549908515780112718556815638004884292448107662550642245961230103241947786889417608977719960309365481926167571895123291963185035411996148243338707471858194509465047876184865052990229306531177190201817289734272155211331306261817114060520852500262738777556673399080788204421007141289959882199473972027537241723494508019998562710088249253361523291083794030849624790390765632550126105415741951611445898962554834702613470154090001401884429923744002477970825187375875737436133441440277525425807499764213388047851281520028053136971329071633003438821245036193563145204364935192757778550823610085705658546699841842697283578231576710555470316450345472878927045024123022629679432954967687492422078590145809777730877823386175098698408717111846742048760593332897392384144054688465395223641487898566949931863607915555019260023759042320484023934383676128865484936530041650003414465720927346419961147436452738040678572688693352579506807535257431073953817139139540857210594616411107610212056159228938217225579554201430410962081564627517111260992378108710025713471148829796950207761167235399533120848131185419489157054546503809139252089284439286079658898903608919043076801256727318803255257173056754814176033918718816871419985613998715769323027629693218415655705247571845113205340561303716213672681632795239106968378487981400296674190626793685593015497019113347450236281476319012976520134204827447106382217715384875238457295760758323478429149946560046171122347004283428850474382068482699702550946445866114861401755737462671113902068899680488612681510252703734606337928279972931234806480550098003110780694164910814611878828435011797151273865837705750064512895751536191602698304815913154977239534639673587616295770479489322652567582150641137961073703383859165600377282641595921879410316696014145017790937113334935899667087110146219994275384632978068479371908880006710568497052898253521476013949321934771760844503074762281915240712851010278542987032318376119815622602340041183634770419128158047992652036475579566310013118942524240511988202113435523803101765667726953287821840298837105064269924204431739507393952697998615777770886119694689026242936460728175733032537029318023469407925528454160472046722512663102027588454392965378370588056370054916245715401517190806484038940969463316817003248886133079421550945759282520223943015967978691045150375314690012248792270930227613146496645792494284577990601772612531762131027295330371260265690904974688669360766268566105904210363840920841895410673201678107802976084576029089770120850117719446727763445020770957044582306473468677257377393437274995023523967209689569333029536464468138268819498271474805620578095923756189215483069166240875802103633803018308598396844407076217753711580718391983508249266939566024235543637392432204326776657566880054870704274840759579947581484170620933265151195545742841933938200754200555271258510860841086213777352021121632254384550301973183393272208014110944608676786627386983182234964400081350029731011377408387121993655748377961691376227089363725785683939997330306842705399460142922065824773374748855338160528011727958150431370341606120195321767361056375549288933202793349118809705172688773863598000663123734379244020125907503568072235693147934411241786949176728445367003569401617223661603718828132482381448990078411156626297179026858324829905271915021330688731271128578741129663503305340653295616016726127915885034840816854845261369756229558287225116102957511299660195763556654949997666898543928571860037030945819314139707694834793289435896401942962926775063831018822167761590973108700231278708715438169473413160872219123236740273483945325236495041188567024256036743319335229278001353261906607913533712432759862885229103524534072895543322497763689671963996064925455777090988452356314643320052396172850528266909804215578284792329191755899138639897231778350474483846651933392584375281801645958219524647568591747966891326369277850644461364854719911373790534181887369613780451692991577303039799701783781757258807640572433933382844413410621321530513573370546874131489478312791894106834373637002731511675311304232776814717865540526747279636154959713499106951059481242909430452504275016763874425021057169572653477345014961068981403753316803476748780726343971831728885992681190005082852878335916643384012423839652240671757841542650388136002145687076725577994104204081413463406608308319333776333506337407104554723366732852018706822011070342276088171445273527521580572465829783590438312026225559000131525896853485543961616767702566710058331948079547905152988195085375351421914760896609204527624447128314951739942771755920893365329026898614142008201960336353104168774558141300949234134569650980581510269392544310522935386172500524524566753661292159638519101390719237123575726354372549655118486232690524520443823965980778547567165809283602249397650578684033900600984650202170397481585041964913885009903349317129356727340743918804633258076423261478416307830525309259059330349009786582011718902302985715918081290833170199802050726510908277252285323610702828350179983217099962998503421205321005071615471953409357574559742314033257429126575288327836011772197013650670557773982022720254552229164731124702783438232525989021368151956067001436775326805740171156838139238687194926140420170632061356535370516514633608174700857763651222967528139019376435785164942605552328404359713550681990008070545535256036663954836025799935180318089757782951606884844587815379790033053501197019508064212752091757405976318304273086769646229469252792014162024459917027999276695059667557020385051797331276169832205558104065811317385929303841899251223460436098854270897915639205650975322786100761099895681076334443099396971391460399441748611032266875256151768109072939580729419442628847138624940758181604871476597694978507244535595037842905657953916165248038789912342185911092522940380459990125895752851706014968206837879957614996879011620786352208220193945727806595300941500600679392846880419689899630456626969246904287867984916623385331671508818798867742734686312405344899714302122115106502052571938275498250694169387706023258782058706415551905718248281530394193992792632118635409254621393741840684268911237439466895580808154193054368251314533090005099523126252653056043244074442935685850993181038872559546929826134637063949863844665471683246515741212419447053145581023028031659511308478333702199351609617275836002128675996253951156863014278139479541314944949752270102481279399300488859215953937041726347202191106165563098082119180500561134891697722193020049688747857068766723091376420620205649253021858605096041292974817298033799613920716451938971673477231163566065710896422301480251808259967270231576246582262456069003239946156820621147612074372341855641538607928250024233692564951415141220243458947484520138922994524437875214980243106170684787445360712823710084733030847286554576167842364975717145518222252084527139692192815840864771458276233785262194122826532871645865653555707968466679248891118128980442237970464520158168204644171261660309437590340892332911498552584410968705690004242838408794039508273697564728610751411518133223912677734112040164424593121260791384544679782118186767002241393485385035709803281027649555965901909444049293557997663276690722501854667304701276661917319820198581677690891065424216244685311534657701500228466904070793909296274120625756841444296548649978121193168581640432525344054631788263898442598226651816835266639740250445925813530508666219323820620692986411564770740884265851585434162147792862635898135822441120246271107685746913846255874850339343327292111053302854555161174670669931495645397668160513119232957926902130624204373290191935280324850412298256084486693513520062907227946090991522404983670356514422609594604787997318452684959091269539733069788313740872533601734584743153953768276853565077175834551565934191286801272267569136635822122321241886325838852573873681176436974899500052516154032521728084027474821385695585765805573062769630077697697449958763224100933142029855421868507836246298675800248100934021239806085456064087430305778702670827139543936246176050279143732999835135991826707844706903008768059162562380546731188201749233505031906104018699472836733659850589356741126193435647703630960553203804240672936393935938172388598195359719131768783887700498069276123935976400113891786269792928194259996430339830386430431730526353402003836548216171753710615876422670530979699062622539348312580053505910494323498938369410792501870959656954272959238360697517211925606876571989787013228470546037671835476552290373818041308154532790629736753701752948551378547096814706814286458866616804791060947300339697826599754101022907862876254818879390832274324165677917790431338439475275510734698669732207051238531430441345123306256236341854875238686944225491115639502934054010427271796119561647427723715850477492484937438334319222953524298995609724626060043706609374986827150638399000877885534661549121176697081431982017120722847898133456380300395130839350176148316125138784254318748990162529957360501086460449200785705869496083838385229389060437367363866249742035438168941309177535661619892418745186151944529134140110996624765726482955530064370869391159151917289763921146419861918492826432009010317705030330932419479538442069429770991699545769208360307945914241859561052245521079428078107313797802439677205982867734583575763155180613028253781640270045184555467877208394308856933266574331623119944905288136968297472026362545710903786230590206899277991011819016542322877642258313138356126541582774746201632172027508997006129028126035266599544972303393137749566299983589703461081392270295746297185461147788739163719932845787287694818696773991763732983042816965631544290191994300565161755961009693240604239990974445720131572521146746637518638388756143350766261736664361708811189899666583894282735541001885256542633849041655208930439227812449974424374113380509782955780080570240851481322082703892805806223315474796369022755732290715221433446503199120422119854041498407384259767230492201319721174788020007074858752717480460252531266127648465660322476355036326397938188160694078906646954836134257863276614006551016879460247224750474737837598683266008266881385926622159264341888852003378230426355501583091273083524804990313611797538322871848477506472293591442899252523906434577865826711415731625526512130219791938419145814075844243793105735367044581133699929681623653598952390222939935230447002531827676290795153447833295901499714607792062469009678760695779412590611085821338871209331748581684234627299039259132460808437929490768648444829931957993901999524221178232420376632978796830486320197983672377174924273675001278263438891263264889612755008062948306830732105946624729596043550597979781125254449798905344819157037541414225712991979282496711550564907610787417135847002292106588310983183758176783463320772113293124021280737637318404818139367265569039681945077459198312655683551400477544116546982711290602925913726459884598087022174763233661915454723090397502034386885640240496608554912847683140005402177168349290125721167003715205711249105103016745794178258594140045020785399311667550075459717204187773531024106384377933013463891492707553588794280484635623592536733832378140904263049844319626925089412478518248903799606473828291391463458159848135919489832320419531858483521418235435358918536286808958904589904972945179609162164367149013455994858817315085722011603121475591842004866477688460706119289552819527768281093543322241904276687854306948282344153617649569933101497691115544822823399283985995731664073577913974228750090519306938274462797732203964509223463856331849773545970560645950439470437015056328447693756792757424057318615395934209757093784123161482588701542175896299645569918954484213546403632494769830266160181987914201964795114121598308741868262189173106471751903145384692792521892271883817211335149472207148418502789508145990240141468431894789041521111604953954815637479402412877620926478235116197665296961404030100172795501601878247195769994441203928168312692670728902164590058596074083427297896625301343664699608853198020402095930148603335495585471456884013104985228929943684395169139014291039630828490814541997121948517927174965148500410012677722505348979195346026313769664243055833721748092795403600968281139944319115265240508392004298063558749391140003259556974142753027218557219866678835818471087726193775671066560639834529913612859167591604270766868463359942962728726615709130210319562732389338799400152538728558777858268740551200732812767587979320174003236972129718623326586256218228236649175577822891321532751400037973975136716606713683102566310487940278486413834032125897027192114111480434689237590939007129790785763528138271719929564452026121288011308617339266677632022215945780205531932278154332550012339309839447271523794872520006301744975004205335090761533101084936730264824492758815466998665246955741543355156464128288514799913988636628804078888485165526284049507764757063305072521719480505072061227120234310362926736782724328395661345195521039209243193634993242663724954855488654310748635159339430032931671480404543887593200351320349792640041990355192540863239790433158869678844185014881728081294612873913215615731805951052573272428549764142699486794702939167353269193106632455612931602920666881156128329030009303566176537981888327900728423654876899463433448032636623262012820683707698690559258900015864563628600332797240117803129579458360662927766851058851961478088304217262994759877048484671847498682844024067823351749479833247177488862901540354128006195250861217017023109415047817366381660476982378159706336506610999632489522167970529128648143155138111779387597487870074500435616898901749228571895649598735091638195306629292127752914514499151788976081829782284035317062801400226278621592017085717124526712450314890271388842715348399658023535505651764394538177815173503435441924442126987103185580466541311105301156402948699325916596629758102038125159400718658059581256319358610235398166733311237737928360243157687721757946013415303414220443419555373436925640336313438924624741048630844257720872973502264155019842180249717562407255005607903414517034614262176522501789118342327794547287978652354520911813724449007828814071395640989840836383390057565829216658119105968105405187204003687658655673522404862460946352726380445651614382119780319800470271154458638410839204431095443678721431450199130137564877947028575205201692511454602856577959741194557503115460608628127253403586811902801029913147706247676399922864454954887745607725374529324267041321710762847748368524623240467617324357151457874506955148177691888573525472364305671097329556148597749175792990296546050030509763736012135465526373411116600423366884667525049640812543586840944096303490627430855363226682704828406263833941894226590549653173678769592842929492486131313060246357918589703082060580082948706414020200442164461583509000983724778802110385436186163786730711113515178356279253075935960956708544671621778069290593791065187260969153003598004876608311111455052402425753118892989916548135326708411462999027750127248597057045833667328828931296677550549215944461107228970224082896375296263720249699321714246810489474467288551700046732066646700722451270156703508648966843471028061210617941488414404466498033322559050438862072243640911553463740222978513470798082858969044285445778025367540055611227983927399336304513119270287093208260275136885811540653371762885017641502388769984834895520974953581611611122430166332650597334982510982397794506672971555289128572523607160606845890256394360768972575163369030063112915320402980847538765299884118189272839982637152761584610976340044392394311233253612399284284927420952870343600861209538826377370914486657294961567442904744757851620418312659535337740798158683504259238322157784884547762141235295165139245253781120205337302356242594055329879090000516828348366264446076067262467143050304976522700777995432623849985124118977506003518177373831703616635798109124895545281608946467820803982698599297451147480668544246806833095647837682128972941781786945134166455619991554916728183168818106562049758470163453826113539036157141285778968819184132739815770730486632074144907381774093919613891626909923184436476104953772027404011187519021914564228534272397667804307275580726303226384204195324637841615388931802170167006657482027455348022470569767924088202144663450519073202067715016025748787346594212224169000227644426439693811068812739289408516730516314076860908715953562965712195778472228612712446155450163996971637868992591689735508452215864920677324464577237852934938511943902308719425760764228063783516237039693273867072692195470187902153323024818593662574832419201261645303224216061233700633780584027801804544683521299734764350510636113806821436724565409755902237542357507643890951752997940561068910369635198997999881498350304081765637949427680309160428909830376265760049304083669776207982307971871915815032169126430708134611924470955497637329721529272012200857614163175875137733107418379348097813701915973814873116002669936679081912354790431875271987803631866070217248728817858476869397851968922397671670105713807394718759008321423743882594574032918662171212023117924939127586887565013692554815963177483072656228984602741662867425838794408723851971627274062816382952048858981025186399335979048755188601011435774325168943461215108554833205134299973398214529577347877636596420118412912715471213336417165529360599639189286616684483775896540556518352613380653052024198627532060264329599027762505286352033606584575372433796970141044904537875726985172850643169179931359679931186482608552073297907511679720611306142361712977930431850997047186127390648929233932445799731651181773971109290074384839537518487898860876321501578589118337914537369994279907796192495287618317713975489398706076967585324949869191628094618099963588961346107232600830323381601338556700982269737731786101809320331968819645788092073673850611952649205902310308083163542006194002433683776417125380717669091367603957085963110393337815507104147007646023650579079233376021329365676946517303755371065705656700001878092454806299589559397803566395306695876838471682455776639355371516009843167046168818230960168960032271707770453419376871379428888845667658641280756668883709225863883185543250380148477236229791931851750994871557180949854589904354701108580123586130019717717588745574045911239517941046998254060744060277689472389951213676883651144132080443292910564234203552085592115230513824731304298746483778073867349786103513635071095798003115571364242485844435131501422015139456893964636320790384618989011212602657420399441682298147292376612486137147519314779728521943171286600206010813529644164996145060752937836646477978501392328348768840035131073887492975744204530565701625336532309478437376120223772630878032210228689178609437085692866756317617187462173924968328857968491358209918800917217195085210681588332685071336516386035507611614375404945868137386874491961798741652991138711848919350800167475607538691091460225950034940138360284253656287900294951102915344978759654727767710978266969334443128011829208697938754077785329341388949463431048764046831750958511901534476299151312722555056507003119568464121396710895051711113644440752694990341617986326033559443797652947650095966621141047332593014688439281475785198325908802124248101330120618165454386207302222427454491930362667916488759254132846760386531410778459639040433574831486660220979472891062030080571865370993061756394684504129952815339642888712882071254884038439040668266982374447088784420593469326205925252360465966951541277360434664942064469485492308645770216653840966685547375170535122493693505536740209940861617635193496852053178251193880546563083621046249123012803407925271210767232729947412111720464196553802523172549851044615814622151977530015431301569565756865192035159025590006341485916789535897533965588984793476559612180887665816562640157865048038114373272888075559120219405444668982353143777078755577258383969892290581100695170849618681589021231777837903041412341723152893880669171846669691346902771417879983385972191773395764857127127980912537631356705148466400114798917136201074438846863387712942178839595391038636779802948718375837202190474037638836855821881542287166000320231576776792829659078757502445513829894817410261318114624936554658411623256224531332333101565528713833799905699874430926709657969886511842709228658269859765595572375028821190691552327976958052291438233299347040200918451149808197764566232771650773984030226483103508333993784522353733625963540764991462457423916910894301968875174202966142407362222309570167566697403378094950511862246661012259433641456169202715442722138701562475622569817255616643131639189693387583308408400633693965305122047628707008681805258341510220589855668458328860926637689521200604382985341344188160300927263881447970495212242636036585286703086952541437660087967995652578337272827307581579203659489068079910365919662058983838292482570884316222640037017533151087196452418450969615064296504313954184520669577134264590277642127932707541108781996655656907684847424883766959583522408426739878130166722637592254025682278378402878246806128174439306013438965853279987593425618523194853902030318135420972498154244849562236335511052243684759129817102215846262819932437316182923815934405929931338586606228443444601056942668090054298995594243943181753345554860882889080374905058193009940916649554696602464217645361288684466770160985219467707557149866802481893165101999882750152737734753441643321725468846328176866003598855554745468355590283081585856486159267404107065699502413251060652245823747628586671045032965325263742712590168918249246022659485861477239673415794365393533966849831899528742455608995952886685577590389532571155119376862757735585329433402627283678247287456836299944826620768343280561328817032996568499193972143343012829911511504061728742291452171132840873150575264705271983309595872671174707651265069333319569761294901257326381964964507129926554821432196811412365915645689513905278261488423150433289970894609289462369283630890347572525082740420438839819807101192828094371601518045346413671733022047992721898862993029611169834610501031049106436987175260603258071511316159725772783826147858747995468579015495441508294810128776370421137228350527757231301286890216703905431563658328422817612906021976312378826797791123693106811803321821747585546599739875688785194296856626777704799934995590334898332665263545067467568572905124798201272806619313783367073743130942780514309221751846827779267793277123235594323751596825044774892658845074165402259192610831496863680202411823340493880657711208990947152226504437214083545495679590642718419094404340300365190742917495150686868354822439017052148045559532867821274388888365127474157319912108056655900958640912821695487330813544260774488410070740011931169787453808690426009910261360000750242715818683086528419464087990648876066394668732059613022829334142562672938518159699158116378496148217650563118194306153721575306202548511679173579472452275002646656088887848156499608108997109153252950769907222784737171774048403977570510353371104608902498922223757058032667114016126919215725372431743154458139102112877897293190461201882135660976080420054368703177398535891936946411427606178514001564068914737910994913061531680135185800477629943280664182342104441683860092345238055032958564787076177578110219596949947848626411002735836071633456408003821779007021298475284330969716366393502762184458410699602289574190196381272537120713044198236031784359866119423273501288594327405022758264177587932136452633420581726964493632320244590314473514133314290574082589218188335732796623107374928779932046448030189405251641606217154918489685687581812386831695471624252658234244092205045576922124141515599438862617107794364261039384062807808059132616841263674951722463597332669612048351364861561601693441750983485357145285153243568585607966437677165601500337581118762731135304623684753811822285847723197894608885334463153315016052476432301940937368810127060803020589284563952110710432303989368819742744244379699989094349013678860551435018823665541648863688129393944454476930071364508682740073138405102035866919941542843340507299975620219800854598380394894668013034212435527766704564748922885603731973416306244976518570289044868844158090347335704858478472830282001933835457140193694150211944368520803184313929306347653046571910463009912338054507727341617166286442286812824454667748653589603091255138125401593833922631083111859667396570990509702768055993045656251823712173331100844499437927336758585965283947586432259903678304857505646186135118936147617082194579933997595824463367664432600380371236077469335947279773174411702335184392159842848392039948828674714044770005357055937817241344354849945524384566645065511610556081433232685845391485959378926055528852588523165627301545201046220603833712946457778870055032327543579443787428424093932318040525365451422750601527811818516767239993803299484132689387966626261166706407150716986011578053084135744001335289293338160334079166546528358407063117150778770641765078483111455231176001574987085107642359643457747964411414948478728163704952699399680752916489507067185049088899944963067651069841549067693988597440844537509674654312413143850814479997634345746909358138247129494966460846819767498455142842767506584543842907174061780173791627339059094059486936946531170111798156848059660938245160756148372413558331669956602925561832325127072729644524337876615991818809739892667540320165720213732485823195316963125180949770688010522988953134045832826426531732429504779245587084268637956065542216691095445201661728668329282792503873616431977599657602225420144280002699521086182985303734212125992273468974195491634405035218600456087883481910720740197866670298949703010756383068340389013825516035170787609971907345339353183175612298388217740190387715812318933897519832223692785993961876556660360546108071073385744043565727839892167465576233516247430292650202274057039970126790671713939473913218628547562287557848643490878850147782103241978879942016749292618621431476601145437718712958409219516271687845865948106444794869323506166405867702703522162281730250176510982351513914653363541022439977953756695979529001092209994427253965672521800415347490076400668106817149472610637949104094483751010434446533557172397436057365236529773349663843974938299670019481900930485981589408357924454975239977613805353928234136835285034918147401396387910150659109703121404058006830188328415492021976829419820138066538047323387700911931178087654056095244242973900234238906107972781331645617354193972517402005285707331964114324028782413065448005529223368480643469754422189217770305611983019846671628940544083451578394869044956897505671848542031051470047519974149899870960240996652291050533816300232330738464722615976942687915308384977790513093922475508744010339788921008194489971684183047277838362285971984183783940630067638981310613651426614629611458051064055151563082153567277600465255376562213584556954249051861708622387580608998610379196452008939160332347327907714082867688546133685640348605823412717652470372554043515482730206952741615407768939644312769321545712102196296205125149070287646868626486950079094130994332663491595377555633905485005659510916555527331164906203213982530429439206069801446068031410842227945321726874704039271313551514206896586949320429215299600306670964578805387059072471041179678883645258841339763226830537793688133859573554735387436211155792212614232547112195916948961395495684902426462912351982559259438807909956182308493408827525392590508498225614441339603240325280163373758132764911116316269065052789095302932859309417276314328816899351546620094225728926198342349683041828190973587178924088594977502137758813291040362950090028667931745038449489874875889919132477916234156796746098029162724769378628997282507270711109498783083904577781311814482233260475860016993623769621050059001703471879501580233827588523024982490325208072681357833984221203621327407690260620191201690113711339233978241239162140310050092398423761904063433842561671309429314674984268133976112434843346419420558282390080843544392264802121878845702541792757134233095816358511286914207001680896488525187862378793485234189200792644090703688709930950977095431343803708642696147404578276027896755512403904013213212766360297504688564509917432168687281130065675879520960585644707187443883399845806281484066019804825990149754165139170750040754064542469466974417302230126833090189875558951343433515277612293621227724063130801069866425641134184355650615865403426514521386655908996846510332237106457781438147872798880506654165414978108358568960927502480823864507126766956679433185807889365829554404957810241280291583698644784224695444459845326197654540320067639231515383469392424692093699537267660812810234678119887934729717209164304155086106716133987480193203021457145234586924271217923293216079953107947371393311575696716229784267129388760298584587984386928221920062860589559445104001503923589965579911300029754932203674614030634321992783656548080548487888819371738700769625608025065064994662921319831897676813933935222191006694168715040374465347764979887036642792335465621488273926444582403002220105160699150397839517715477459296840425089076028019008559317469805788943019209185974737791652924727427470415803690455869342805638813096278107865138692963490864531371093726735047331962320359236880953903957908109172645319115809021962356721401242912339716140762444322502028077318776649147153419417907034867019166044020461718047305532512735898434685570334175831132662300209132089752030974931514725877165372866125785456729002363259225566045212550908431546907944143906791438272083209278825780584646755940705962518624598977399007271528291316446050021633045205304934024012703044982816079110601276450086306148943250704447521562806131044715291436485739354485758058233166067796161247950167336654364132609552002319996290337427182957403796148880298963941801867210375941200391030525585451436061093176750934890464355080141420413019774125879112404202548904340630200889505220463669322526677602922941328714114694005520129650463670232830487737326375356911165582972182385842142263632645438670923014700447519177834476552459967424435530871186457325721393869737412122167564726120154523100642432653155247125196240293473702414766537683937348242117401569985155498542327517529639107679212266724687736144740963290692111294705046659246257555231432555869461522918124949059813333780090933961475109170533858276935656803133487663174073521440305509606053684882933535454547534147112119739729166490780142315878655049047146219768907989417894250908105551263092448462901960368953996179463030249108361253938444369249320477683949712969436874677488431268790832574714628745794908582691399987869981278524565453524831389910400742645797482578394994483656788532860258267167756803552851055169074045948374175029945463969015777732014974093495511808210243367154913119220262635967367848916948257634605754076181532117362545993222603678073622246475165908729728994893252180208132752378669500588222144424366106330743639758499710899719597684336017870413239719651703205367376052228577003052948063406239310124771059029173956772617431390706286557939235252279604960713744909344143681651518190080246571966555339688043187123363559134355325396561102011259767986953353972134268051821334527300536041443762595905862467001892820232703140125880529949885602027060935060962265661045698651005676076138141728623594226027835136609568567583060963885264149926731394039586586477177616775755914015631576538743538978720847625370302987387822459203833204909129449766417055861467028147484791977572093290079126323389772006398336247343162786051420502301060817689923508787317766531591200961886271215695167688195084232505901806463020098243284838431358837362021609755273006622757581575109603719428280356978114186863459611408006851558201822757237098986808409234564600188164432861065786580238758597009132064596281268098185568639867978163668833466790337152897698717382883492082361282985681553684549405868728843646486309150602001784894835275776106476114075182453366574485137374201954710366069591794967178395450002339362217079483850019503655697430842274397063803916369950192199963515057571417537592893692440213824440948644744738750438045920581207222309387481869124188852842716514640720036274435864385197374629841441303695472118371244521328199800912979678652532048480570922539668387693837348477292693686652338370263845456622071977586751737249978958441891704773636648605325977194215566038152146360536021403312715639962454206018088146038803070173049888648240900136352079547066247790329586123363983770828724491612807869118260698010322050521639252102191697655208102554662668640833719449346428679623872691884957779801118193819951281210065131965248162362454200493576447055040984711788560791045052038901295151527899846489368082784577900813740868873357136521837622923661270146621846055203621997723222335924051729099761621459944654340289735495646291872463977317447567816729348863861492258779574167364045070412691136406699003437485895699078338973124135318860364872080118455416377526408207446357686576491968706195191689681188722734108962050073842938882341735845710990389489055074509151258551782745544799458844243635019473850996067523757552541799902046055780059282067926755139039392852260669149162646444120903496665320592014665360408504246608657541749768570217555537463145471825885175919380689258595942727056453467726201308073482900126481142448447594206314190764676356711710515540117208069060384445464570295132077392684272968971918611433836928550972956967509059428215862348904074121423521048676133616082424163054301947128688538822351591238549283814700215014433936450616080482868682655328682452633171473517756318047605811307118449762049636510928135088306823166216813425467176648517713234519318968922823736683012117320783003678126130927426421874585312504718874755197896418087519316353866091304957362414630874110400701596134176194880063773471014769532312936837846920440515694097470331433925133609699604251663268628767773238991044726307182979640863849194754079386298881071024937983681218980463889409503392009349129909253367614751296561059839042632843710180686492449796147870085683022590998179263959496267523757593000418268905336403379764221299405448729836377315685222783659412773392526173264066898518506530832713556187294496323510527395638094685776199190359128821844625940261987949254162985850013104438981267086506323559271693660941443308794934532224602110745694227218555078619391365689162255514999565601155993250666020445534559800338823346313960094541698930600835124830192977932737642237007876386020007214221900967713142728353040963693632247336159897312727405553616405153194531113662905209714362499255906348777285664215375679117650717680620972482026722790032688010958761216689019942225257967928199540689088819056975699322756822207062150186678715279342945779912504704331823945856702726150429300641373816650227606865972963358330942446449769425110896416294944232564480357268899362067412779443307375335566673676131173779533368464695472528000844981987222062189712745303349842236288381962008100119732595088757801055483827089521190160869152968307069612603227914146373129655761274015416924930948653010880163201978101309206639429473924892290068950749417020729773042989734203069456390011123542866893783883172125260429443166914101416529504284902350340460151281073729533175845317242717452303130716947531832450041878316328837307808032721201571157474011249175954230134310953464813039007395634935380988395870378521996057201130170124606496747465301888208883230319128141790588919578257318489701618160200118617223356664624335844663922308157153437664274928045605633086860498622460361379476199711115563150999773724743070355548499244962141360923600659381678099123156817070796129926627242566355304452236374223937663800114875100089697425499627909661332034544248221434920943947515697306189156931512806203527918727303011468340183226043145365993263561574642001962157601946380771069716856216567972176684029404082279864975145141871355466949560205713474545863491074330691804092586655674952928552639832033790618451310649019999794115765530532084609485438873205567727903684977728808515771834264417151796037868807243899612394469367764192539402957767205296317087377823753349346720170502396551636266763230900939206402262717407947625055983379518908727907886680959497843186988061017193929395699522730606296318055998776326833812739085857635264885783308227472220664444661708053322135420339388178661715352614002647377715695347926250678774772301057623521042263117620059274166458249667849649561193801987552009372220498171697100218583134631320660828147136258440425765226934009936843575293738066674220141408346817185843540470707472577665482806214474739320925869863353585237938280817406080312412374698209350056332708098712083771046025837578675344864379264236852965832092464707781942570130392148123091031699851165181181672314943986237711556397040408676228839714500130879705462716444780594957309125605974160240238638939790741933316779464804376788396673564849909057185314108325237184267707861109144504749811337703112508194880180927437804822254162359950227150456175978955575430616447436751619409833860804107586760798602505080044184136653778836808376458785104045756743868786820775827004117007177387610220894378793920414207803634919735525766387682167747140756882924103350149643856487657177628414000348809652481305746597137220743673852546088375149826468048978220413521931180287742836935168039885749732393758752555397714727169264570905829990632489893211785026005298616140213028748160102908410365090873274518831316104490026895106149236894500557021749480398947687150521692935927434907368948431947743781181184497192329497026819160752806071605198888422534794266594264954815340575172117722584301407021029077733390009184930749288691594470815716451509638930590829463965749276149383774580138662513729387321876459312506869187981703811387574301948266250877585499177379033814631486922654863231333605536693391448854176639490694306461297410230959160897434853030939013448538166485165299406918663830217424700564225565780014308945872301932585332623861105835472129450127262485094530365901664170939994951407558238056744060717844337261936845008566106860141818708534093437567975888882897822298532139481065361248538273717924611695958764825678820298964607860615792341873480532210891627104928237753073580974341974982772284195894569363781169673792132390373569157764346711949212341858177126231316678090343230486324773617772814139635733460865217054334818723527221650327670913556105897356891408426362902705265897229837385402128980222578942944696331348906216863120365449994336256386567588073916125233281461144383514919332987620134916428055863017252753156744922190339454888118006740147628441010695169451715013374663375659785922059584237000351930177127693070689927727074414957346127187593338943894173168620939465437767891334706318895385883201515623315989039008270779680061698518582595733614951760873773140566274617746574486491253136435413866685368875273902009790027023111884739801519312145868807770750705033375231632203182294876268810337935469935697868120770841918204938302649301829522029041370985020283893041047020575030854844028416733992897062378955199914843655864136693713051234392882775041817385125398896066120011146049004412043415851742429588426383376762730557583427809913430009281038454399656617066893770420730922248037285225704692502646737711530587108030113771096526660688629220396883188582464322704487358266768158625574939831970797665788691873434862302748749928685566305547834850411608231410368038240976666465187225556343177300301305236268165116430073639923078802037215930751411756169449845497529156588904609299217691423775843122937063697514722243262173388396041255561724249284574924209257628721571931158196863257628405358179213740544940587539915505213013346017712823799836182557003553554818767323400183162929835015557158187176370078962178635528460893701147618739797898653143822175730748072425348103104728436435631712919625510590198735046744635951180017369465858706289709233319365217957011530133224053076055673444205402440229660867490085121296635441979032827054804253440302712464566458505992791176716331359866235526454934638046522050043804643585925894306017606135613930811972819509907832738441174645447287992954794501147466828837760057347355202887299074889066552465965648877349293418461535706612105740465867010732505299339424865869533240330240041724299845819023569995963659475710863829624372852620412027930942246452503042576026588134352199216810553277100076149086056527969553538612006539257603284184424540168392469793494501332600878909582263745527565664332116985098145435111209405028021808280220781561287045096859201579887135517939755901045411851305432474391344284013733462013051573589549756261215519134922025250475349636427470977803836712075542531792419773924041029434958391369366511018621906046461997097893157775420328160632845208849771273212676423731459706767460731781785646581777757769581599279220050024954662387015990668435593657126587177905117757060244467267127812950681449877597272592971708109382274695320748548812292713296268395905725481158336410406710499943135975019774458483480869299881327483516762439965544897562290129102730847449265108930927459353419598727191806238911616426452998070026334462394343730776707571646943989487806657103125924937042499238196129740090381169651005777806070132454448338624845102291358645569847349718389070135520343840472233416656195446648616643357233775755097257873713532435855680528422053305579588127367826392464836643982910546225014605225700813463946882658638331215446428251726865160986910110746841601167373749875333193365779450467670557655210434254559641285091782741809135063449222705508895161511799879029035735328886889903607671692821374212897240780586489355243830070169823284917949943493798534152757698383730056228393826226942065292724767957128603852038901156991808537566883466113748771904438370029377481883597011597067602557060234990567698911124303668256497786174604464738891692233893219058529437841667080038759607150446262451739165152149615815709403357537029581972298779967034181968820285640441719306806151092683891431156824139307310270011569915220972922918319402783990459848125169444516903462553890617921037348991498280741331483313822807009715763046811790503589819854902469178371261188103608357935409446902504717390469206792165229205624172845178528320146110137962332957633406866968382950197430173145764948587092603744311247002471068150148100059368078027892877888318938618206094750441192157606623887190632824489037173576159279165430735717444866843286254561421497835910679131950903159233785708856038920019201436242927423018267990917417973311488132903699836223516252606342403890232576419047503850680398815422059823162884400659843467183181058244182733143534770347299168944876534535858972636630992189990129911372383675467525769884139246490455634866026224615252687031510983659897233230101412396726871492136689049560455307357965539355232059003372640963644713473473314483499901977422174488944741032759516484253850679379614294866256674032135610222455812568583079100759004578455890906735216212872248114793175378260883323293743067617814322861820765908846360851154095621087782024105517836183759301491296156467122399309698163645901380466288409444731977958581190556100336738865372541651786568169464495721894684307580492078342010192281360977423181988601821869507243721911556572573197465127438664468560889008014598494114593462561454451685080038518203597580277975321654910906172767694291349202411491661014482933274053141268862642025453918126124105776391204780018124755374690291388716442157648734221856368892725712366899930379703092315123049090967804482803292203339138047029990928768863794948287506421609075490788845499354654917744909901771682261159361634040056201555957836792031607990903047282676977765093101474630954203275832364496474009154702109242095486991192912009641892581718479559557083190369316371675569260331164161172107319020291092322089736579439693902923121682095941002336071993342072154565176299600828765281721486943860695764138201890649016361129429443634134530202574133485131209318816486798623598890573312011575275395962534193711950338091231964347843948272391313594532231632047145778896115001948724477102381271465692449353913498901894870053992114216454422608993182080559701761575920835475185461464211852554672840703754927819930585591462989387035831607941257157712607496725295938059643904750988696668570651836074598701533751687408994707580863331280877482885959651821482063640760561940102319970584549968163211991795882588519994858044615574971893348963585102665466115301122582350999417182737404380867332487417584132391424274702499480359088510274585315008921564362834095463343778493407734647854620248715344086729557315356349602259079698547283584966522552813781314294152210978266402415553616888239772403030541026843859509570967016392669790437956280088399006986733389835108625424856243536750259243746680239791203096841616663871238534819643756121546136066000844466057241427129559506076588773941089226262443356729339391704382499382906879918068817728891886990683239316150301436885896484021232380869043633786988692327034217824637231080244631659029428482845215666997691555022677684529511751141787607123278790398912350571754571931007275069787062913116498212989795516403999262979116158437003903410385144287241532183514594422567233330226019407642077219985150233249521131446580886252801363271017791576290356638279368642150033010516080786727982493339990195966337536653215295280273292378166041266175922993303602330047502810628967199601586786704058895214785809335160221672758666462282225029695048093455493830376906648525259073998644313969337229804238887574389561347931466681568284877199306474052442857193620781794212428089922876814087207888286887645525338632685874892336505907576085428569980796595908406038124137137757834663942240403796619538314368546515736988450238009721909794849766339596210209595569144168727992550639833773511686747875142679923474338236474771539328141252136343144455486325571092482510544277838274697430581106270696520072679354551990468669509346111912229457442830935627405220539170100723078610661642107699926508993171009534134674253331974552265582358549532120776405494715353808448297880343908957066582139438329498114122442797236465743291409643603500327049310920526361300905637377781808570966351850552943486711866843718134431059617599795913830430858637939367088484930173908395248423804773677901000744920134621695291892082837607704611877920409422567134456153229460926791761546477215218418458086087003811130926227080978766065552981176781724598343307837757148342398639445329931781613975766154573273278964957997479310800356296592291168813654766162030945548888493565234472853334274558831954421253106184672376371836315956181457948681675094975056996092737331683477823845376194152028961069486679086757868061027572146096842461837104959487187482911631687641203716950142931165411020346390225742420588831705589007984784243485700706685187594729779000604685406504523109984674399417367771796065646491747064389414725641093152394589068523229982192636268428968707796133176284937484420166906958986827970363316577306350766889954108145570786745351342849873892998514168975102861056778683821191934821898723186603768237665856640594871606336119852658854028423843559175118231752930003774820518915875403187130124577008496415858420603029807440387915528491859361567327926910072444720864431230131729987408705648761520702003871010956706553703076595685899161089623407007755739105258734265986040454925323777865215954495835256781443222830855504202039035256569091151937434970580126337606637814906285900715433679043822395003053149271426324531047837979273187212320791963064008634500468082921292539745206374177446939592417441559636267378737889691071932912558514992228902411656782112488967723378036525019809388013716300237402174631478099595984061833687145632024816466978918152850466161974555326559364143568699037557862402332422565777167725934508144596362391416041462023147120486489598802219356949661241832966541663582693520246016997182019732562062132526459003311561128141493405501812158573487388219439782934624109240187704452277344723229368287119714898707781917305643407590323361273284974551517361405332863513977630806414167056762691352083634110249035942400385654834010336374493813188959746504668545509066008889531266231197413671286805343407562762587627418192814201657281010429637990662262428774741591551970897871569240076331863385369533529713139760483045862357760403981667230613244516294113393210379245872386738674695585189827662912610209622031512606207198638139730334250254543505070194785104445148678247362583551836121444654564257182401259157453136064681996937304614747426759648377886202331432391420176928950225832584592406212580483467018054838230167156274884083136746725953113416675940674230340276179095819722990533738617035501876341144189770564737394388113952720167665130997834312947882576405483931283077586494102794373750797848365678717219136657503427359149538343074542728450038237590919451943290408963379119992774213266562404805450170096047613119466898592643977275585933805230101587117279428840687244776163037969696209534447466012213071088762293966521231601547056416342042927488576213020062838300470032234718975377587271920268819991844758887620270189416816198956561849044549428862510505357308099086971923303412226115610066199761336248041761479147474024965776168024015826588361389828449084281063368714648498148563351496466790641123077503111931233396457490213320881044547801088214607975336761339155950681789773419381043422278068750519152840742031523275617650730764190371885902407458983114259047426368493256722824772449647219826305398630475369610920265798162119456243014556730210189650069843567213255899327997324148264567041228411335875462321721831438605134029292659831763921070638283456052847726206286321143810194268683043240793345752876561658118364076012952969408177217191043415175894157776012041773674189218766828579486105461744042297720163176387397889850639106764696014264206381117457044921945408813341106839440813122511403195832758875985432592712774340251926653219017336620784429278499003583011167423525635968568455304465660306903949912045626631178729341757940433236707525026247370982482698912574245253525330596813604819170631317730143166375796872180980359914198165770365136792077043686174404665713107929542119082104204609883829813128112276865868678326886292872720433176653239328250183231816474383732473608564837599170243511529080833056225301868944003714483671175092170908388741849342625188641512325075110595268737512058758359723855443084998877084794776177620033899795816720328331036794613268727383588466469734227762377259721026769615190114611237520544232720802217993812363468182601929712667616094457338153641338460599147157580589021911804876305716243455028853197826351126780646741887581480559390113600412712337661323183398078990623487966018198094954638156313564969033591267270897705352528953761661409543637603054032307990863156037735797821209087316706662305616903073274631619087538573062476322757837524057661935066707837082865146910757328819698343349622832369833837851313101831027725805547331204181244229147068729531640198589711521649759638285254101237767089382816984704805901836026970651648964278390781958150798264421112935062114092174293378453013255521603781171666566704983367388446782252006053848574334370215821806262988758754579772966872692361499987233212218336911746234288302924153684367728342090444661181753719216438312545617510440233795699052728581518721902969475367761617880405211122091668509915793850874325893862655389648025710768972097018064828355456617375788413329822142199953654381008645441416126453141588212446127598609332048340349660736278343682365165406295105698638492152494721256889456359629141721905010730617808754078386042669570946764504594848198160932614882909594112693911143520365107202366174877802168352664428808488895777350964815917282782085491414583217256889464914420311679240108168251746681439423214767955991638059770849849169071562629549737124768888451639928793950750597679396993111239907458349140157621729536391125757864639808230849912208817624545704808952464154781218972542653644077204738759498669591181114170748929441374558401885664876154940866717024764331899942023609450296464843111437832921675018929428962243687075697723884189627070122742809986621386385426331417841070613654820693743301471928349551323182679459539046476975176560942430957582435987422587602601998707960878419891244524246384036493812642818502133496226671417284963703264864053081438514329051190371189356028113872620729684246583454789638850439556241659599532193855250644284032170380645060464737512690343495507113302463066935963867671957651880128639498968027506644223287161370611271890667765946279683675792136716291001961616713130480637477618956432991863954569521002879576429336065731133084025870572240816206944567614038130943678559918471289657056345802741026804266728410175688176796927056685653831536691793716675370412535608640853145115703148047280330678503719232241846593777783962379628930947268862674739349109717856142000915947636828531430787612717255227662776991553016010674610839010819951795512455709972975622460893985122665045018877207659127751792215549282146365562059595716312368145496794025340874377779327006271401603069403399776097865361084812795671403568971763134935308219071219547358677915136855400315887398853748067055449266729967309859528834398933073016945271441767415464271778661821451471926794744501499717106895581739720036477102713400656842564916131695304883387414397566115790583750084877367993732256857492457534513929654575567906014468774578973741574437667353758887784803398945686751802812606544970946823882335718727477165689799702536453504731177109719759493674072595459861499377435609808266588364980908664242874652451412544477324726071090335581252414303050538491368469005247593006650945950055386163702235155662806650716647950970424763076922399156092628745245284515547045041712329549278482429928150331955712914488878705264969973463094945319933851005913240941545081158768999570676626322621642287036040914614965583648091844901343383264151035438177999691285136857943880215536158721866440660590000892908435092347980678088416442103358652273198383833855258625391025082313103997319070373604045389631638677243852872726921429949175655328341097443072652390528146548905507038695759828193201882223541622117274497217226362359500700868514193392015367922633143574717185647581082379781047360550277348277419362552384373184984142777803460104164286398484389909158414444080789383273977651669699031481565521366780405901481147449273961830709402133564705152930865859919815775463187069588783884129407199910583806237993161284018624104044339237723572498040949427000440296203417945956461117439192628629497995070437477547529604948406101435719879741308636212104362562766141671722260696344393161584682568251517014286573551040230205099118344759049819726776886849138977940175570390629620945568047440085799067239473980732997691370973808159910614305218352154032740396851780566396554537745665359527786354791095685716117497371554587881849475933999666191523495298953464905847938954755179915259066162595189859215790912645816495738492412855539147804746017084450469008430219652217021128183928581741259483396429869692959465668565703455624334919741765639835689740883213645107014084907483922239254061021710279245299033652404005159638236849779254639237040874763000936826283739457166390335936655066005062333939579127252664172803460230597642534076842262565860367865416628807382561894275181803629620377618811602574691901291846082626781060553263481409795106526695767644761515147635783053067670284743315111246657543069269792025607444080518488817877317612433933515179466698746608343764487503639766983261813841322367152416706073879442832730352349340699843964505502822202219844151555852826897996467655024000481943376928241348234345545544871266216026032619276957354939632525882638833903886085210885719427157961715365823546737586487696014494079358248677290102543440146123588599367744656400092764280800368177757888463242951154962395130775812655912687442968341099057469351713844662829880688753213581392852347027029556243431033848508475473480308537919708134146091891806968276080356281402702483374371494465202057039907020543818297040443448168929730443780164540803080568414982571147901741205506296059709283861667663161578246729886478605164364361264011302563870902425004441520602407351512994640951490595294397596631886192166749602694158449241622061664434538719178471296419457877858332247035474143178619518942169884523229519448313743153973932311546899026523642966305947388592881614001642336394312649694468068686056276147586142086436256872947389957124072054399670546179464535632032158481843733809067511289446377558420830935167360640426679109144399418322923714555116606137361675612387183721210307924639383490706177985224644511244523178942739554522347866386036995316131146275528351615808446358606189735379046638774993698101176403465340121977318128247417360032925732730510231851520128419341858261249977251111742462651202945489472004880501217179152866035860377256647320489883007460103826388682700935844821078020976754687756000003907022320291263911387903771885875280158908344433726224891015061096893856945516804343475204390673856000206260548318858700736473249208956900496237813940595442435984222032511178194264970974707202666738572592638456462722949091356811744708710449757587546014341241888211869441176131828257491303805091390188816537956520811594382882554769204899531336034261562693973143607126148837931810187947726338975922338397676185634434511652049447705855044134208604552286478542578977825766879535236021668078610902084710073440906122519107910685403486893355298245073658695714777011736986590037595612425566410472472365248307809750490162984967752545385338902200835009997696281733458902734644532266511349154587345155552340681044586442829413169986492197443769238222259009944594050109481202461800095612237335015561798588265346313875472558108917212039951395293256721841747121053647914823757881655619548813174382942176414594703488067040190531386957698018960759908204843637519825642303848152284681828427782080095985283064482925246198759891043567891424238343244074429116906110032562519432812191153611420681674682647115145338464678731638079365744422023151171189084193020271726378095525241975595343858893472274338087304625034919841971920945397165769666167998493115392462595038544356250049652684329862059414486274613263308343155332167079114036876550182719205684103130497768952037509429353960135916264548968605436602406626974902599778511834909203570339396278267919564065083333124107639421202157157334771518968610949785764655235618268737139369018976352597577483533729257568294674979536515322727012908173644724462304567852003065074011645332296448164267912089272932123256135017861607002977670720615254424237383526446011793552682258598841918821553407346606079607877371015186280727010581781738620829123439857432737435701672812418043200889597002799325705208919426239953986890567239255198151891021144295996846725679315660513527662505972547105133683330907500503407519321940060822813270674756956813643626532530889726329153667904312520448558662945323143761415579615494515929653472214086970448122788387441470834752732410060541880846590652280671075693790098895755720794325053117601704300822190205823343215361959498432007490024331418264704821125584286269468470085241369449103229402827814199204555346371815626174529166925692386850383728787152804130412324003514274335457614312758845714557722541691046527761576739101885239012378891413613121694240397820339708891714717122517346265711863733705311664312954868844367779904521387066105027694180507409775093433977732065209107406108764320893413151153194616542355206785339337982565998466022663252760446222524355979167659049628033458939575851960471766718192317233499108432263223218795825826418313313906865433859463621628822877563688950146002862370865861473657593689005923768285158365676952206212563177007496996782579654289191251328980397338078057330508514717097069517966746586357857092382065457216099102918506729773759675135941263424507634191585806488592142555178500518568158002460884485978532392450518785776833708278687626654925624251506073025136909294708084718960315422033816292004513807112242460877903033694770936931538245182184419052000288835503863921041590983088121868468400140887819085619244623303780914831446529339605923628922164339057616309674734143271879256737587850228005814103403943201837532142527912660512624671570360528861703395438784898252439074141592716860500563067911024428911952707606656237164507757745177418041466330692700353188813800503509155185322278344181059431320514394356719231295026225826014332743740167200230295661067419826827257321178672738587006438060826346764518563194647821710093781081538410035251652545955020677912790609502875322525571612634828873183150342627444981596021783866021221422246408604399602258079006191753990540160963305846873094806203663226167645054053475241544007648074953174990059065617519320484492793059000971860591668738738675698852843310560011436596398071264704423304713268939794744902073217403698860864280476023508896365120819664825603380643119986205394217461249299677334310517903937966355735348265825921185998352857600349836454000279464235767958998307162381334595651999434898746296892982355131282499797290308880966582147535517560500513478659049207400462427044949716498777780492554550106426022683207718691151282564064083734922481216407858588478244295323798847442709334015827000613622178936779444948057344850512638478958844300935740931598372662046152283459619546035968394365226044355606459506317974111582264832596860233279222717219358535685689231326999879600622485927546051599790220332204461772824993874190029476090364845118492810909135297702311278569515580483835330602655226036924113399368383449352749142197497116761532489599937259778654946424691358541275046219497533187217760429806525505872332706697213063942562618182105136818529239081733631958656591593561364410057216693840123566392240642329532447483153645606027057369808394187511369882036551222495820255071734075020014776295310808757362049019543322623890920411253743891993788406920803548372915983859941429468247904906720361201092625846211003515896885373732489172795812938129564982853561805420706733391380200056716247948437960086241954997715119217272991131279532509251741859133269604229510708824464842736971775454313255198319486889164682567869694693512105805606599443833379166429724775054602637528266457513900024327348530357410965193601787292257443551781409093870381104757435283486997463538720045110435466907808620625683429233962211798006894999098942035838326877922238135217223565294922344770785979513035071316960698850223669569498206312639407490251109302194887635390081425262999860064650794062225771090392609015311918245901453199945208132245983302270963738804056431558114514472737286535955681841424546007174833026219851564647766670685883842882948310746248110940287341729324951077909180494231821703297195863083711100407575329246940991086780727059220879744786533077076732753507692311067461836790456086816094231168109153879750577996267064956413435237220855592980254799837781404311613636572347554505691393259231311278167230437831594223239327321203332921372689791418069048867211242763159422155711704187585029643528191536433940644979724773270882429016654965743030785011813421678613089775397570514470992671599069570676319770908278804758440567816453572189332797988895858983177990090307296565625677372925479566119140171902210962865348196239509126579788151829438742350167350384068485964722144641681570998165552575378917519148761325908656404247153006544677564824865285615093029734503099162139151795546614994749817160341966067333564166342060486463568399254121519448842043975557083274148036242969977034133168107357611824496126965794582697781168809765043037258763031238671462460223743436115849990288528551763771678024444198709643985337165393246008903764440158669140174633539894635219878003271119218232651976975910680938867541324793209372505959455352415464601721061630304294157950499083750857516044996914933054816621887686810513528569142798201239700654852687439047976884922182460209471665186378936780557712062521502008028022615794383293866726941552192814392657754669975121159851507911642667389599916030193699127646986670530051952473935222289765929262148753805270921932731826298990582027752752924798559513204935156367962345501275666844816849378425952023869944548822992851966711221916366676429364706207380924482527870320502064907040007109623031935848741316538110954079631547331050288236125070727621587293529220823259631588918452619752412033474166233386198692734238603286495970934008373045708103936843933978336732706357979985001544143640899511492150509188453188384975211673876713799453965342871677424136531012894214939537074445128582080165161596440464432265984347321271252993667024064092803237383850563783488239598738125023668943844632401040609953496630622598189283472470047574187288934999954368449237223501294854039077670799295428232805309309687879766303070654315474739713344142242547201900886391957975683980829137942628877741351233940554174178110801615787506740194943458417979898157392878704018015153687658925004679581517418961764303141210456803178724089000902384621954723151755708724320077280099088040245555564108463533275641475279190932485635306477652629437526036299820790931534324807772683813628545954353569559628263490000877960873728537448444174080282480328805066311552430863817566490833162878298570909544168095250625757085112880656502679464170281361387688114651280613162224083776094622757760805380179928422656771232068170704604038549249959953250823464103542034693229958151705818733730142648368589020450140018788824985657646004589987208966970092206725923140549281677923289107670185803158573357112742926757018466229533663253598833077635902275629852617701465430580951474360644510604891206518076206291709357688223656913412936026288900353253610704642122438581974720604391349071141864577977435873140281299655768309054544575853021147250726731068831578849050336447065805403889017251026899240468557769276066954490307122493511604940762946983162168818470097338440862458259665359590555451978611196150519609816215518093942243285446391838200739508749109184135273118394982885996223431951979879798929778477493958229813035986676511351600168113265516584173244516965111700791902740096478992393296189184720895571611242819820926960330330071970587858085734821102790160395750333230588948361838362896625643717569210568700794435719274645947743442926592894089901352353489110687336267223174228887501579450727214837975249035106812170643685358241014122712941819554588027113990412149236614214787779236689027408062799715103747229497918636850562471328559229483627955241683848249397010954028019390154544083326633899048496254300988668118481737210618631153245273852206160953308954396548138827153892375655683574231154128372874900593018736628583091824223845331443264048215066860009134049621777390869150012282766861399035994053902157267000467267373026303530282299294759513600928451193312282112538441487408159326442706427232412852541340764644670581296882994848415208326259210487749394004090911668193902766485370112529380429132205418421413507497261212602139220973986656144340754630722642251047354948682411589821079529524954449044016131301502496450104293815923768727422329008702146433330718998037111720969274581554829576712348613064146170207864195797611981875782057225132751657473144077730808713327421893936337606104986544941562522687587357012666079414653690249046601516727830341194726329855141099992209182393175260288824938765467613219319557008686096007509251376905969944011698624636938775451919387152937200394316598791235033835445169969273596533773259951944722137055992380245672507580656756913179951448231693144014780969417427351953752180841831173092921713446358081983278086902142920798692067742173401368035069037292334956343370138411883596578029233970703117668905111063176848584978581075673263511640354352502675281941757920804339996859776158623852858788402825518604698923339767732248054815332688956391572190726402178213344980809096451135629322500516674777253425527778864268891501440578526252859245509782809219433233511178695193833332786736014277920325150082082076980555135745296309630838672983900405727049784234801066180677114419623364246681498050678570998715996776004368457909918339443517866806545043799310040631359347704532456906549029799855114082623376028954341822500062584282058333002144409309694440553574747645101984564213414453868996963042450730122103438155216203700433629864935664245400271202927582581696473607925148904875041248084452842120914822305330248834217459899800836317795947030454921510337748320386985115844702639353923001199971407451058254513505887003745005631590274005578022305187534468434023538285691205520063401136023324923976580654429543983497974452857419983628654851876737652070005477536524770190894677904918403906582595591905593251224109664107107461381610297417214110031755325460472045909714553785525036955047490396668224568721539078275494524747150274036490529599371099291281093408596792858102718177190084391482695779726679810803721237120503176532514691062009380961128912537047905793993661375764866427873763447678823970073453316074621484182675653936130011958913450128550501224758307080304810318128716387597492806217444130501351689715149194670088508689596016933429973432228795703683005534813290182615454385593472286115141689094664074700478358126521998466958602035675712419953969417141421956691634945086494904395548882753712416604908626400933321058164827527444913318452070409047881959327540667178034641686561613331238279793736671937968321609349633016122579458904820674892558940456591476099870863839944977120110782950397714774800038081261694438021463651609175350539001173738394965104698726052103662452513495508161476506268474832306901347799667045910741716095785049031026153359799611857514876059921588479225930367746717695516753222022208513554391454695911572259699752615446212119963250018856388058087577478940576135046436972200137885467285150547366724933170453429348772951918620624920086075980100171598927133703648123258941926606718320072427681113546904004823274671543475319436253671062008407540770518331125115493729766660089901822414187763110282121934943885658469496214114363701883896658353673012922635353156169182372906656699987975333210489176461419553118749265519954722663881481956552775521898196684595786962859936784379700179102220955319594368652439518323141298452188554494123613194113154837091453337733858340557725543408184707391923477709708628449038200941790673979870229350951954726445225270520173596613366768235614803889738724902146469249609861152148433219075368030851399725084171497058728967500606687680728387334251888136275599357941964985475563821494392314969194739398983974609456255097912280321766108380882014025874371796527501506690625758209560930269677221884369947358767776034796282953477111384910143899186092986179093247653007743703695744018002306835920903275092831828356106975249817488327755967707652298704498611057445481299286184927878154067347749966153021332695140023459967776958225056635363096833221914804546072024241081615634689486801558255841384138009878161736126294265002500429336527841567732554820336016479732368197001023359659601973433207030719098887223716939437698936786965542379439190516396081494559699045787973884562510996731754374671108077072577335927514794985659401295192436684787208969237608756758091702582235625611693346382522563669263579687732647358902748272853762770865233413862284233424675477274522115319123301979137024820072810546123911272606653595407466947507477118486794787569095288136273132862231074635633463294020238031761915614558218938550070901499960140116892191863131249001283607384359875723966993090780181113555142782718382803531174410508226969141474626961908406825309465159722504580215778251428066939623360222388328666192548263987431910135766715553875313822303010187639731118332142166419242378532437889382672874522272398389022313068542139613157285700378796491367758066811820740232782930588301305367020838054394338323358916732077229743934134136398803711308354805018821328758027733898287426377821868576536503154649551859345725639769832267050611782738986186894525573853823507664887758937028725528379564241836557492203140071466510152171884198455983347573772843200428661901574251612465104020821852348196961777075381956010186094582382683177660495915995680546357241278818715414810818668350927260670405617157136249099316084849677758262803795703775030664864313935517057938591354137739399676671348862262198159859652976688336772425302208973980131326584382614951040254281404153058941897699893594724274059942675276885723596889971094166862608037084166383459514968750791226112318261210536865234941035009188248891258810587994080592615604049553906560962711267059180133632291723906687635244542359170281565625698221756567188776001601600113230414472660414077497772780561814812880829337884024318801693074249549948703715405476142084516733859772497853364437744326978658201167504660422017484619689758067976893629126552218165138420651560933850310842063817849360839258599402436556683961876178941184293771909910577451080800359697799758256946373319587278715350993602052335305630957842917325753298644827876393634377017877421476548850449288637662690037924106151719225932368912187693260564170222732666769078866348566077037659815263858402846997891184049522924598495357311165542244949733711309400948992168520556718439699987231348571104810741202507423813794017006839059339861245923463153634375008638578875164811172151729653612158052981053459236773412650083164308819052402914434186533342072684927935773775514711221532712765735371613656617969298828939650107646261060250199586323579157536331625032905285532053254921412815391113290224505871228704760532618005068872009377724835941270129931844902836109111469096186951101164168053750150286107621979476050448144287089212603164555396688959345162291527247906478538963116615122478426942704325613686670208399306149345898084426079773968405042964342694451934354892067280049271923759709916284102443860764940879133831279651598922751299400697205356757427980354022855679593512673071805761916706604089851823210609327806239875888637563959983840005123161873879785490933137209499528134977258318714278020834516917415701907009939982461145264045667524072751861155389875452274071242853186917694853921106553755695739435369073398877523599199850244546966783900102546332962508242156688308404615327405707844108042243417797574778046242096221087319065457055844674677215162275712019172563162972039379215638362608871893868376500408340924101244734613574091982532732560501645441059866052009330581471433995138005895820533330238039299770711165666932195821952470258572307979763626247477355770882703411417048678691944457921961210280292563045947881153334769412750842130525992792519039062808462721818122073345189456357226636215439802396632840317441931217740340461303881087126547274431850472110988374255315429967337204074293367051511948895401358318799370352044182735517125336102788941859290227785188504115114859636463382667984747534531563808778264667114532846616751812389145488691118514623892920311903585798595005704262007004953629319651928934974092897062144546612354160748942345131819451114491392737278754323760098158812522019076838829747800698440957635541758324847043744664042548908545865133086608566667571475504379885661516688170819890024170230208377438311355282193817256361376985297609479798187660638640826265270424353023858077224871811435623435893498825408909913867260489229555910580147650461175549722359124820313834680657060165796530791919035317059495111406277741621176931187260065248593717452066884696174837334315600630194471006339824698398458461021661072664169304741339282895419101621585333583468987985463537007502134368095083114017071514109098069411408304554351330332826217390724658200430594538159058557935596388190374707268806649309666355417687707325174852973083462483793015660655374581245166035682777419988410482452866230419077483296655766516955393370924061028943986573669466127884462082336164396991727623673698820147578278651421352846786664863253802602094109499301007081043420941034794576809692556355785180704358116006880117442915431357431195722663988880100721866488721108438172906170233367224492605763060462041479785283460479702931480645493030777232481182339144776291610128786707160502954540860834020495790059044258384023130120399713516598028871012994927953141483130004791527247437491547508585421643241764613549901959020207944313704076772351633732300748358516459815004753592574238810788898681961805862238756756663027467496250795579826379084798912132540396604631427473000698381748950744743629196365245204644414139204923645393050990794070997047852927613685971606871651223325930646702491935763994072625555587603453264897461030059892855961732083659342723926778236580524358043316101511810014117378985757705011017933570465211578914238293035245209958329441914956390881678594250038087084931356799824438556317082698827880219589710928156028801971037346740952564303450324083509646798103839942336334494039161534001660307459618095762932904933403525789485475490882971842155366699332121329987577204570249702941364838990251594391638045460206146265662666699828645278512578102352558316722509624277198081959633075361090342728052243831041488690115363228526137894274455585726641767749062242702441594004659304334949735233877695796371559795649772726252487611732566913777067170991442203414433651241817504983877086538638618926683553782329516179829416873629767955434850282880354689268563797108470255477277373593157293476490448648115830676302757187906301994221699951236665404601114454980773930991634898899776813797615705398960465490917721689164307214832714193066270771862024937420836967998133764328382056293917366055838202868196907610693739916112631732905778434044832262868127741487519567346388773085417271864588961722147618502022187176317905099168573642666825822917546290111925733986328014492960742685771132883079306549855944673184435810956958228061896964619215483992224740993555916718300885095673722148089494403362845223607960107740126923726191142346356030802524881228664766977141137591487788686509820305691167078060827719701320996975451827165450073412527518539371249546052592416918563860683148883944365333268512305380287261779707467971695384447358489048431294294631917829769596836987086040458105663574277131627873123358356667054142837833562021237647776063978358216176726535157369611315393218078322355073500553645801316887087626623701314176253303638596220519373675201104358947887684596110344538424972641981135485057007556429165990911873493136617320790540102598185341985890924397903637862597727376000077721643518790335275168249565568835948209452809306571477750300581864090740060343055836619193507080640824972789369271856373416112897452680260632144545261243788289497442004747173239921840281456460276645090606887677233598786577466769287156883387796308492978722055480700717460874930926879628236913222305108327728989208304647036066350061558664992030071950814641863034088906318442750467016346737610082817631932544233710232985612618691422349663697304010181142618624233598771636535268993403442957962120796803664038431379087138558985689321335715137381094266878570824512392885114998798869011256071694424944007393209981317668634790706927628461200689363655841769047878579862622447578984265074103312095089949364439546800959021892807147142729902901500993859537495503342639216411346663272120204184777586122251223439105106113805168521880748104219420053991454673791774461759299985247634957508294696694657036817950094305288370544387981889027582752691189629716447784643328671914502048855771159672021556023879753919209602526135829725768432509452231268551947125590566904627520996293734349772443959478755885586700262182494498465120997038587420959189861225072746131360297267714417535620601828925429866736991536090104475039432459058080644930679207237892527891494728819222037065193062446400027247768507821453441267028770691038808373779014301154297891014799087795908260990138755727331138987060262823865146063176223445965233032550779070738340139852397551559749386276324943771690725523759547300593869623652195379905921435592857006574835881136172467680365485116273669922375087693993103288347237332131724462522030223065663700841167446925750438769639447544784530702988321549449591755765675143131046191227642715193578058389432419640433120968883766893977826324876124191822288375347399695721701881260165341810043270480873855022393140709558529078008656323654922665233119140374112104827938305961422638978726078055220983757267864781363358637444386294471584046165301541623938266873168939454252231160458673401260032682120868702627241885399187225572165466313828968854564317846801934844277023106105361840647728088038607997955663777763654185135685301160882394277904079954617177704792836876624672008223681848877070260638926310369933030979763522862179505955418909015626781100499787784285053008799706224505187416979119304129864171888439929040068583297933532904310732228256157624379093327651237539291696419122037988675760569128280575624351222747155686823684910764232505686223972495520207405902524986656912670667469159747092872537508854785085217134445636030085058396551212769760165984600565801984766075822066901529852867881681856548306143985221933883844297038586988550398514004122325706290492851770545640562192360230975155388163538545415330661174385403291494138680568744766670320009285393143601294308800328053096348437015236506383643838707551836518963492749249920987285492885764027236249556798846911667785073118410723131268414915851829525826089945837432478738066003260325313658543172618649357540034462338363382160083468715804661919322228336316128457569206332155290164443563735572144575011089406370287585413272964901035191376945989533404294513997158094822355751811478855651500211418860980036548833764358958257019534345343609705048801170252190610118545986412034274400274338559481356198941079274683128622865825912406836618257900927607311545531441740699367086625174286593551132139969267403110885753871153879473258120440361269319837178431652567403503779066584742529172202519873881164208167714760139086726142969240130835191506070293265339431762982699578565521777395780195393584739922623202656986635476861212314549119509847863858963052933023484710845157619434818721629474449232680313226449650845998771722540979671782392605912991963683003952144585339654735691022196615261585182796338156789976464369887900678213258164093388113301385689584004828931381595901791493473903950543181465647251070471565175319497066791065056923686772926257873367507837740494482817785213099752824694994772218970652361585822732474546728608088124599005315550095238203670776698771167551299509260551739569398676692631102477797242310213169093214541381604778724969443940857066007442833466671860700773307854160725164079939620144634134440224495966558967041608824383526136607368280221468961289882248598097842046545948111379334789622435210705048236281745263501152235537056066709119168006296931874343866471541113596231493251324363305771979627066946974084770222180432284633202599106418624581527888950226509296129189330750957086210905452418899750663906590647560360784484003340448017402251550775675223186358437904203740242654123313168881130789473840479336795274647172345237043381710771984404291404809330991687855896196449463012486592917785610434587165417173064319395739116977604326503087206991633123791067868305806252633607415460927844357009785582139261300507324028711561762783334012258291710034744930130725366776789594772358270211519939641785763257461773699853261375150802386892874933964901009921980531587763061337681468780214707488887227283187429562402508090601083706246836429775788894534063440807041853991011285747276167971230184485661674965574075313428954828584285083955368109356525934962450118754372787464380712882938693548653359705093762419163676310949060798521694807929191946850187642791221131549108799566991129588490873570457701629559784720722900616236594128611052030528160361012390391575400102997381011900334198247020272658097633927690435978331357228758391108707685902911503787578314290634687000629594145475189639692937837674109312727958155477545260441551548196168501149118152162696371934138547239256229294538849981529039954479075719076355729355539865598088251857243644483926275833081476437373643692565203960859537074420410115490713633283348672655216891230805304423883541489682020765928823370818208367422880695580925747512448727655895121468661378430922240545081084596995465814941235023767017982646443876154111045558408894332202704005012285587663478766790387285653200951950106696635206073044370869388701582165938590944526557657064228078379006715386162565439872723004963968122939321035268081379154928612938324341873177482407794468268774999303787573791579760563074713876452589374280202183549594271642856972081800166519977575612752014676606275571080753547992328007553299957895499026988010739004686401307540647743316166366458247697664196376532539059522372691951363803311659892569069770783207418130518634117568183066888367882533680805715542926832438592187153071290273013040759342265529228967800716719154232440267408477611509811111458190344316831765121267098956817782593060232171237867691489873948134950406155716815754004870637176326198109829223024577907404386537375033172260061769865984948753163832814442119994372335890422319065747480464101760335576539307873981359228761934195969436302254381039937412564054153990314361536043459269537222347433050332138856573472918644239714021013142709447797024358341993571626302372212977827874192325746581684734441631705795828504850919775926145550440953437963016828853971678885775015167268642460732101198285266410815004287913098533343478166286267537408466513574692554243898330975626134756081472145666165860817901031996159941394190838043975630505596460183365513830027462985527715253869699472819535611747021617657020228878478551548973630345293088906540342727529938137839586488377097730088248354116043257746483469920535134739836780450051447316756444169554557342584869309333704199860740079166727397740288993557928542150825044970388573639372831412781255023504858945954409731055745059993098166114835092285577612259494749223080127856221932246517324373375176589223773500206300471218987118489166995411632148739862172602255593125107460116387693598517780998155625170354055968756739964068134151619622731127013091935446169517718670136013013188653524954591862643969780821780138281259788647455147296758290012100108685272046101583535958767910741568834564880145062042644915364758155181309750734563732330351734308364546487294843339700650714751972193883645261613177408823122695459899963396428774745184894057046783218355999918529489565504202674778761207378581365085780846761496077702374033089385174229889873402291028874817232559670080630426895796768977994571815272307460083284004723124799725095886513573370618682313563085040919517167637534182778720028774632173715800714502404834439003234388470527072909256864200291256256760615820038629945948677851451266864103070060588645348325330884861972536332995742242498231322090805766119803755009020271298303476038380274314750308468157020172928571288820619613827732616851189923554511869003635158082517301566685523969540332875655191882773307457123013960881138433899336607407182989487225678494818530235381534040061633357891900523886049161764541803182549839374057265453759748615539822771459608846566700275562806368375389261075646267412399391060332096645507741388540040629522640037353374028015323020329673471219703847537702086184257303471812029179138126491510512062330798477906076773928392671534101038982283063389483369721473449322010355709726416958423115298524877022633979438006939206456769769766030139074780065987466906531996879191062098307648102872755413939056994375800267860101989922521554484533624660464760186729578490603483879524403268095866107679020194157378576317676918788131745290784091087247432892422121390797453914150171807271259195593679013295093343777759810079537643432821696135944081428352109057312210780762479656044137794493522570610360693265747863324100685189884798379871032176500772718250929383981477087508333796747626830006444539310542265677156876390018233611817752440997516386113258515701136567888655567858268199042230458015342941994234562691141202760598914558904502745239854982784869385640754887497630976251071588979662000088225608361767713598279788985795185575234806821799009161698365840280381118760101141843136387385158444513682062784544116989397906233374267695236344637296066289501976291553925441785804702646219255560337279256480270694102680009133018157517137526010116639877438776796215476831881196557659645523662158754476273803015357038784771052188805544463785143779748943298084299883658652388829894186271574457026317334846839130492001179612057714779785875727891471198796541034091323915724660470974873251854692091582597491611642865795452381596017664108769481472525938954592364201946887162012834268146801282156294239587975565781510199728229968157016623906972350758820163223912905671834853125267476855221499003493806568709764875822776019047514938345863743596781034284284274429963439851254178798996412928122141481865508101715732061507465330630362410768191016839223214660280281779219315681523196712959161643717583939983417839150009441534834830574154944245508147347600496584415118861679722633589849082965923688654970744640031844300207696329241607659809498020960501805493727230305172710570529666311236043707567471492088083747422186068970072602349844147209662925087602089702641385546205219861916643587473525450135420931607348777725865757667859446938611036113337804426673987875050550920537385101610089415298822940639732492005731083429088536281096856720691717822070528297787391301541986134949775614008993612380352582409551580392729779491949389554460610602553904049008565078760693339601760930034527804540796539257214570406549339520413584372465254735778181664244796582665032520109366582189133776832430867553104812258743772064829997674674385316827902794353178818841869323023041101739754182410198687524430916192396477595057388871176221781210703247390438721525558333801650305193536882785769651277528135291272167827581251316995951743724062001139254459488766327231397522075273990609625213159309027074728223700284381474067006172275970370200817286890375950437721681769875335232975122277214028662530440516596873623928739671222343415651799914605815578526861659390948787876595836881268273359273062953243538769989423873591883082329980386173176675844021743614597602507814301583006892210430645873961315252212794468349016777009505141952598129376158879152052954136448860768671604393697276443628141352099969176493430746602515615174119989672430947754962165120972208662860654034427543161491994525041838202422388798432241400790959771011107753823672869249534940549562996758907662132461168953552046496610443812390634845206285501558688977381901963304250932160344789287688335522833973426367905493653546125452470859449592376988457238370182509708416826088215422454680746525738373703433362614732263960137256208915994162931478419213539961763682733896807308319908883889913513038420147821901519864892601298432739012115870004290208509886631787695948491725139271276406330081277601170307788779527481365166501823194608524057285003974774384501968260687875232577488733323031073546322253585673442531197404044994908106791289394631638422921237849139983511676840949047893184551258125237941865499791741812051213702671612483767724677212977890992268975158241804058042246045312483217307799343321394566762116284390099313878299130071527201409719924013164105367843772572960667588947153956166607926900311725982120204252682400999382253479642595026408654901631636542845890066780083040708409805682383868308824683501561265972978779233513367377965167350622794724386570911102275040112809913651830330328762107747095446829270269368734579434828726671717376539952203729138777210870302427561460232723680571347172743122203138453638394069505297720258808052963186561814010942788076823108308010891229478212774625664036016079586832314703645371728744058146752013195581823302649859373994789022306693484450097113183792162063020154506166166384271878655396139411547030163134447585129234054686869650817561471562692745775290098231629034835313079548407416287302962620781339150816603778784563635479870015015559185774448213719180967967037037167044465143937187585896367262836711954047830765746976881435981340693708827589962839170284523995332143461968478901737286285950338719702514772164326143657085663535559924967614549413092821074737062248474717313484149554476885436126225709442334401257392331167289266684718152375199626346254723609518286383461108833433883641009439292279879670153412908479579965239427621493736733524000161119613141066050650838028756396097400948781285716159489479553797109567284025829104547840437852430586783641173261496604055100199809429200435103226659251732810807821671532066124671139894517129499335056476525274940308618975309073688715640587451890829187720702241556018217435363842038905362752134980071996088717543694569383623218543213836132308527698367028890737307786518546413870521666494684249013720809335934711342478940089409524963334139893820150089496629139719969876622908655869476261734121731849643332994703165278356491109344147378287966183562111568606087465644180663330044061585871352125987534648245821081033762861755509642731203542129820566796748447621227837366101184081935749090259569682860603819116952238617019355052364747009014843297015585161083128768893908678293088784835922268601463013457122851597953221924660758396035756611382621067907377723820207796760861539948991407900256479252086421133323820306096697296531221246137146537176149217538024531912133535604042543735278546860791696906713191920197620758998197025876851268449229989302943191028611314556683059081149213997708142432017265227575668417314228101876644682828911457625034104194795800781101474430380490283077661260123596263225797318784394747715530397660695853947656923254857408599349960217045639694687825263530951018044059736067069553845820386774099535097055961127985835499891405504029550428154580015097199429778424990717652218729992384913577650296198115438906128313857018273709846296380685050575371398328321334081576879201517487232900629710612988202676945759124551022663935762611332986353062106609686056114855137128127580901934480347767941180931597472264889921473847548915188879609808072418978806002101674177600032516023019426793897820250586200045625927562096642186782045474547898262188482460976241931304223924631082626843046019354627228782851997612590457981278356080601465840572615545437871781479383941244687294457552377853033386379030557609007058599652480287945682473749403743388374226070595097354741637547403235799135088715729476162700610803728786153685551456352015719487431718991276067524659575302104063648829914067678822347104390402778289351422656530308115927129320000099793232230686452824157969462913715995603348493285785084374363911418488138526852724160801744036047747846030971596202664413399242445395285960776559338091880123114291109013538446884043308420453350938674378474019153951219207434808760749987206133301837386196127778368631708610703233000153714618712391302840302979651737268648078641963993250721582233562346501244572599793876431893103222190480491996267410863775016730533897771394715774613229260018092393982322461547662459915253601024796529136395982339064302473505428723411954931431574669782220378389839734043693948599678602610024891407867419371364276537406608583047895028782598804966457469373213297049986899003497962997738183122594725643666395294945366548335131550620154203003413840832635608436161040893407709681071137979239903256812141758927018723251840604799559526903041975786564790074078839347732305134990196011070158049339139988909963893881644684706788924149318702697979802669110245434777534698372893525504810785316627184112796625209517717707866183313716083983653689288756592341158002608178912399031574532525870785184330624651547878920807531504886387308884814602206070314807923381714172109616138006609930847879950144945656481925099258533368953873938736185013341466653900804786410884007697220537322210936610949135994208263378793760418515314843252018479479199529389049984275813250885552431828908829173127728243327928492490634722868549021657123597181120882127111973364253284932781834597583277328373389103631439196205315807739343321639666765899400116126831314624397606812140107826581149919987867370959824297214841074271275864450367831938198515106783002682960963362239908430856259579390706703659554283639606536622093792677003049317560597668797306780488322249156495055146966352553699413169094764098117105158248157940958278591273977269581472955239551161574937072462414025237072113468164618344780144801932715288590115964109578219919434554703830424933617109287541376920137333340774861824891096104234750228498092810102687429463312036974006017952291381624003397106189056063981752263013740882293643857678114069551957045850647698201845103881749310541280426198862377591400799226496887979655591780003474504680679634292392132663845148256249054908592645442639410127323137181876162532786940568417875398416853518270693369905477053330193238458780134648201295958563163977821496307841267141637112804623559551477159133680192678632070791187871377468909051888042233322280887588818142472767280870405346144307518117516083887744992174674262494540208382277156968718806188970319867669495217151173442938824608306813433969252044237901097802744268930285859034189728457707266150589003734399835482603673618246302984730397467344660511204391683553487603251791573687115338487625616845845048700797527022410015199612160928708514179917742020837297292504289534731412164727981297479684572165239822712357351634127031502593847945365900600951587584837992494805082503667582880575922073654842006217161334293467449397353959704628005461905646619051631205616743760229909632713535598146789584445726993652780035210597888466581613813181154108681896672518395144785315347080659167954737610250890969262016054241540160556898137088065917459182257089898513755909262902573565371520210805303723612377942563821601278342395251709216660882943932421815907414250828727591960396745252427749774997997561504181903416705400577220097422700409996622149835088675243390109313117287143669979587761617944264689369916499803065269990492264165101233571746239408576326689937447085199483447226715579481808176129356112732445417821453908999944222642965465887978262258602875872463521572337334551154492259858281606934360217666693817858871161385190473999632808642033440762288139686961012140129199264707206770492682297138142748942923333322802750309979755471858716797724232293304091387627271996681184921179268861439304341802547196247389436341625202509885650703632702600892390757530015021251928051833102501183823501170781717704968509222437007516802475985894712373933721162750898782045701907655673756637207059820028893867160750107345618576231879694560787266404973823823657573845619893067584521054712709463225797093405815407802117729146242546437070224046107048309609008372765969729329803579509951250631353255873785480810666671083479440514851386077793945184307192933910638703207024270256238321588490866847637942019924973828691145744508224734271327074942912696829345283580184112199806019898210112801175376508936943926800138619323807163408182836367159885220763095234186651342201231862522317928840131482166108474338587333263051649968235434533836284272302759918280667088582287366686530844953230555237034204311190338054076617134134903809175152272133285800147517467826652540268803722294834373213794506168254174666997969524305167072878035934118484641128811154604013927570936437956524070803860764979203826339923975705596575467915470715532495194904531787889111132948844274683413162088570373312104902903297758791840007722619454471541482191040191945707368774893821862196060339957274991380995754709829829076671346709160057204122301681924085009553433826476402636527354427936966589373522153581090455824976668140381136038155944561753821099823599556536230702160712364493581374560211958553726278721812001664907273971240417576735701492690794216007964709412284953892775418245853523271948086387436352247459233422294650375356070147731125558636400688295461703895366643593878568654513860925037276874965956274205729463577710809573672566086299395965701194120882783439714351587993892310266424666598495229478307900070018198078116929790333501316325067101662288051702291299919515113296416554560746061539771411296149675932236810814446800155866595403881535090846165641000879394337930911985495493638024671320692438154716942278442835074275443929923998995234610250313012413058347682448860248520497314412960819475148430063712403991263829658572175322904543447160240347922076055189348256232491674747100322486842576747900180834388965498349328807834537246210153458004273109566692058308907879815894466046797677974042023009036852100662013270110082377688422412636926663872949561994911436097086266702600450758327447625700342822639988274172361143583139915585149227222407784590980829984081561127936078891188132748870826215027841631942407606843780800791788416765939791759453443420819271964534402325351439049248144401550176944607319395683046373954470983023240802443545233827262077108429945853599349622993178654228860247123064115031342001038307622290344934282436656516870314724152036204092471911582444123593995000805056335130619698244088546221812152670888623190088554885611964545993700816028926006813472740432331440238437202591106105879128266135989610104412253865645904513424317467876277878210343730438581044025849296739335103460258246108499230784385576762799255214300901849970523436921308011563313347708617535675235801385680337146273578281069121922993945278421761648134901652824249541805177097344058257309878770796135686697867311512239682015889970054235995714677510068406123001572361522867227805913729133690250912859136000297060970061323117713737311020220878790358211940502558797373018307836439765196944807379234751471783649548551621564135622348520725632777467231939698576450179385974540825563009219990311730396122644005749697649985013735609151623680547193275853751823911225523797503961170035199877708122421358202861454942012713965855480851082602412882265170158961362179431999261688151726734816385100261191964910030866637334295937958493253679861350243965549144371134895333135667561143906894041257367190177919085745957441070945781633174458624818946285517758470503740732697543118411280694881326306061147672584802614509789513862960305667652643950110481472172619844120250423704079224814103463895993748912920898820833060900980297042994239191839955435760400635293755436655476094355034724921537337315705152785446428120611564687157976317550419219349301730186354708479225222719782779016638239692930388368379657271318068486214923240127070737651964955694985109147547424935328251990329972755007733071830531151175633417388304263741257176381460607435006321502092657587850063327865132170525836488244321522058872263386951771598066242462949905170954587180754403034232309297471595319497588623984227677885901349821301842072214545210530573835433406713696086024489103634610905878095064761874084204386041263652433387720776767359399475799069905486729075525375587635179031720881722391591136335845684783966730264534019007452721524133118567755957515639825318301559708521115872161137520728168715099664644632349181714423123183101955546079796854659773534786391182496212118365653753898539259788529235276265984799149597616806266276113452178595663453200090456778314222169374749117475691566036214077173023028756552651705864552627015704995759698603374657266856013863685558920702183500931603330115171739565003520113440163501594288810784042620321924413111210249946109009595852269019373446916458821525026522102621530099141203849129837336827685734041102713012304183733980717729155959400268105795859341793265171501789677239145514281574960918346895824278742669595298435451579784607623313991203462343549894125675188486752176909651456974257607362990515537684340186228172778486572097997546613450137997537196667192706325033018582025561315425465278967345961613530880070377219582950956008084186680695528620577675625098653196722645680848778751448213194441772600787112583052343184001108247908754559404835207265573661969123343692656244808774007648209378210013651037818557103078674286289664203143214512982743693114138139489693310532880406874174655832445396316402297543827480643332650392945713188011123274896188467795217168046356420331473384018895340294726933564684654483283116396662550300194559259382464787234920049220951494851019235426760964118600364155975974745519131623801479858476123472904595560237887450086568064524474975560491945292605213252421216341618345268420624869277980758404721882959545084309960136898041949737418515141875125220943801808324426884751588868524890787799721582809389083532322237889657184818099603964979173109542018567381629858535900190974637881697775709522615798189666743237835953622965200157596401144696105474428121371834420015260270787128755208491903304086135359082504369141855017429909656510101201445628790823892782568812706646604344236987761984354383304198933217006720828248459805843001461896947868358219852031939275875711275750619325843766344707566080061529163497899312830801359849643061445507115338799601479163923296273150130081375033364802467664411676853055893943733680247833755816398409415358793210538444372291835338126884896760658850118448441126387624556694686851489719764051581206249287240088019224606057078746480841736873291392434411346040632805263498625363337387320391982228512809172576723428040994510479504907312025173227375952167761558318295195162781524859971294878477152046061389176871369832027463628471042010329361211785813821073378127394192744359402193374199106961422908681034948764082745072132100128331103792215126732758052318331067227139268397500389955007326842744108735627702777960295112037977992642096476800071215226196060581327093241520795059595523888818506258791703982578392964950077932609941182038057132108852329317165012360711092224299989893482319127184424865128684170957495599586511372839732553790710856169494539644338104934695190548663886714140522496100765314868261292233397548138966613386482766205623217026761722609575634735868102965659371883441224931118978008528600926223321307829105672085339752687683863148142825514268204746349550144687990356185301268811063453773190939176984901287812839638135675957676361435158925521587565419100977162855146437727207632109148068621118294749048715388464575364686654782259957793144396982147161651452022821670572026986265256696127710983097955925387839722059704514106092572612972225973677746314311611359378604787162792725133762061496857876024000649124026264807750061728505679197577464665509646356394586090716230984769308585472355807997924324147652607650431131638508988998259484894498004414589864595310643641572500409723946081964082091061871999171339033383078070497984793962170062429023242745277927544803985486302583465763440354119659437659969160351717469703796246819571470554221597729102188122109800436380627543643501584797651750253187558787131630801471735821709399519105823468008640340299437577732797603668475344142180330015403414280597852447018697150050067059065913360741052293727303045766193582819443774091445258022248773059190142913985612872283645615258290738946220212374671925565464514615409022726802629128478244465737347888020148681751527199504845489463919366115429227055663371199229641298702125145836515947442152371470859945106592163159650602451631706217975453126642811624062072089296287892023918164029316527876988922648839901099931580318244240508265901126020023849858045333673897362466192199312805047911172772835390814551729669642529026165104770113212132646534074989355815812426247723723623643947270882779881937943630770478649279196500593285908172844082672758265067532347882799646057884336271122434627762196496300622257660337564191833136094251855642097203340321071112432810318945536769201579250839558847070787815086768541993420932015566999422334824214386868678940577435070066990816013727736047692324512707742820587226330361606874484407329236100306746078951264298881723003126563855076101498649352919929943262323470187448371768181210810591038618315310958539817392822599708495046873174317011314335040768772634368814168344517458162542965056973590630828334600547416013592151814215080217804886018728635229541316801416362733229482581521637567702404594281536506708652399239269439906150475302951277188233003279921072089906288319697867680910237148114970010323628797400676022826502212030784943445606056433262150931279479538591460207440190351583792608037081644385745852787896618875160284972973657727482970700084940942897734204446517682359830429210298256316860882347931757846100396853686799144513644994108053935710113452641330209886692646567741245593590421310790109588380781968924915526587608217134138162990894479676155881246155329778767804400376035833199087316737862560560161029175981822649206174441309521200770777513817501942450712951252396312369137726539378128535395864425450848618031851076618468945460187867546604022230557123875673075051929976383605167317351392266804189803889276696567375456323020172697704538903539248190172115298236037152438154226104200146565915570409024611175127940180407152991384098436938978494872649355071100070049863663530734888727932660136268309310897140780372608520550343378239068786585216920859133800393759187148850641185962338860949503744128676709393829239338308305562027083391811843950473593074714328819084633128676338220805427401502149723996468343617362997743720817508000400253727104749774345068966506219699078185503751933209746572282216475239059947732918698784944817124966295111919456510970652857089058429327747422251668299638071961544865082008129677986047955288072507941668796508124748136422896896401305094068795189422268015794365078827400388468328717180418056394764317236383195862693431312819490152187881140016066906003652473417164068868453723486603231785939251673719045940055440950383395657969157706025550880553781834887254557073471077219704410156513853226935087066707108501038051037912222506483873411886419687444994604377835537961091933510485594679615425951255773860016279524485658691237441124935565414561184844396645307419870165648836495640150751779353079013280536049176836023590302207308829589685418770905290889451031432196222788188755411324811532007720985096373595652783443941333692795388147840613213774717516049538315036753245038032038427130021045449868984726675012569682542430102746334431816123595840413344104767577471803449122911187938053203880939602526580931113571892051555813535708718622643039174811135326947329607268982530835224341532963182491522016451768047414474221496394497761553761623911489999886109033694509583862582622202610448429977650084355495978272327937224726086305011206913674468476383453289680305820222605457595175273599065130027410368954073815244029971933500395245798717667922397125611392978005902106794979773264694575813833570150262758115120186520892560710424090990749783384201418805232990665229385018900163364541303655238147371534368115408639997351859755561095411248059133723858300441356881805765897610083128372731054661959226012518283283337838336700338792254818558659068922366223016828188281251107199533006433281924376575273520700917822829989077186103409430823641603330260993446048780696013768809919070060882010414343438438779159325362452727618754467012800662110270297781260163247825694682647512146031436304346135136350112347951711590584165475241556589781379433329584386591569500025062396012652332010912067344022630525675971263624271305789326010417458732900866280232308852861574216110856600126412132351309868533362478568748252173769380519167582478470736582001453268638386021544800432054816383720116111897783955517426200441359865794278610569584940318338298781994200249956229222697577843705624133144774992313390265743445629291081105955732000165424884494984495700104197486325940176111848143615146256139898171722084345558942768727368347762887347297351232301387548734931132296413542135132674484302470419399908755931561832122385507808459714207159342369733750267645432307157335810795974697209559570005359491735759511413805948338172178689883328373641329073171366836023222101346176549964255820979158074173154329942600841149391508483467787822598178865883587169713749429699744912674960879713876126930228483431410136516528101628201902461878730856522099625947466113582949279485686289260318983252193219699983954109325831301501867773320004931179229197567431366445207210850657340193909058656518199948920330043653173509074277531207071072923377273307910766031766122410741460056226880018856060758554478016305768427891026324529413727681538239930087489912644817805372396330104825330164445378656771393076071034989425197751823698797621820020089661207132727443374794419085184156334298477869395893907368735146765232424260312593604615699983510080691931892750896348120251069256286334933049378073998961631300611417080512176515732590050570685861989888600373900711354803470597591168965919898493438757880405597975672452764020565148986569261934475912328635843061398606919249327319256927674414021275286854470632304149659848624887435690685182603418809724936046475083376963796787238837780125376479173583366959026981899777448408038470271384683179123909169131343233663089251272747747094810725996027235646291452265242614191344697068340601879138099288387845528531864019563072690464366656521137222732703916249220768713272900464714507558176837111842143890734665644482013111192233872829744293731593936891699552279607768810459339314545359074328521680245248031237620157890451068431552189415154106302525619386432897835344680103046434808851191957276540352657951350868639414299258191450895616180489146592555205032861524968464751331168262845851498520065709841952908754251443978217700185895099562707619851915445828079493856948700715440508968259037106181937890804877280768112608517641534936236599908809623297145335967381791455399264773407953619453989884887520633096290128803599312335866628793488668803703524818925159798150500582261371064960778310075204568391390119451927800298860912074402918963995557826776707179650025788668955814972061984537996409350027740341575347990643032492371749258021538353217637646209279628323765259476328427155515685366472166413086234914422303243934334853964897367520920737503110963896032694061800795682143751214811555782685095346096470909341380076997144014339893780654991024360423113065123275196314840804213586949532140441472210768030875278652575014712339896845165485039255939701347933858679626881741779664198177702988210186566507495488720267627586172292217432670677332416526381985144323937755541408551789024920473414569515350395905645794345182711254703449839585483141256786758902264195139239127691559737770744095603798080375286465009069346067825727878939174262780385580302663371155624605161269031717758874019017010333093240507373618647570019592500006776216341500890307872455492586010157229312776903152604188609659925400454140378437728106895519386129729064982216589653310275109653690814974422405078072609789472857674759641347961836050118813465557311018342181087305884353104040906074405288798324226447190003029329450779380061020258955205020814671636343691063734143780448134843097882736923448854319973837863777227909573862543486039353853176756131062712754067557933080133645473071026294769967039529344608785681756646583024585383554841964934630032331894001832743611971529165435692432615249984941747088721591833096720531740544057805521095519875792506734339961306496952362085172395843357920315571428445660271733148913225135898314384686821912136135474436314067758021671102364449773600038751299948055699624533514764042617968826699295424411563943409434502376739078401551674660730376498108169093723981021968531714548292284055788070438357489611142630822011784313662638611281793186440589218138809407682035347897192778806817341847915398405447313546616355490014799376796222362468634875259518991822459150835299073529040839523586622125613823391071699942653239843599235753300130357631267045451675657513654329301273515852737645649683644128729819292542366324754229131307858586160957167806412335514436470291856694810604150630075156805294422931064588685757211644529360990222090830623520683378555272588679332634791586709260558608480794921423615547902634850616522151098908312916952957185484922064114059819254030940282838882148623830947224851401488802786078410341947030544755002908982715578367890607695689928957913583603848916066922724231693829128449567867057099905779558847565487069195780679343404921513278503416668148045359355975499355556621975555882489749736551635759467126937129227041491869724613011591706745532848820157126745981808955797438962279943325434074962959589077629040184673620238218233386573315732740255814805996524289099875888844626020183378134606787529422347042054720257073069732012194492709331903704357014168091864420762695514867195685717259515627072499754269561744585178997334865540446527123614372198095906720741603286350512530281519729862881707348646553416453866351647223325510794203718375365581497651335552387043648429960879322846885379981363251136060441294853437918895888436733579499333689207528698130177573714516416330154281731705971657674233551608887666342394730388598188715396666702624583315213079314877490462459346082482985845772172880932420808577009692067870142461753154377549355249283999915102291203752661007719088193733447441988624550403827046637625050713131617192279085085801367337828121640942218337492953378575417854666261375861667394087061521795864433549298830367213839763706935933835677241455393458731535631859590005548860166484878557359651816970005489973611685081086778107942343165545890005775094176654997897981253506318645741043058868180037159254079814243665885250138587489221287349541866992120974691749940369305078466353920700060550846043604078247686077835701679370831369508311478298841285820280850447512250846031300321345086551630402104920288130820505930400380995745920012720019852551549238067192637707309545677861577746706132777881061742592439166076351138736952682088320337535374814167304213522617533932666203426225444070428824833806720604948753271493768700595096864136358908231046979675747401994466725512018570443601881347535795475542935591532914973327387354584810530785621461503773511512813791081473629069212799936146976866713394712523923776045718819837140430796174362533033710392157373018537882445728309745470690343047379410629783759348481785536505777880104280463182881747870984511287880270636114142304659674726175461694329358200102993656992237026184057131781441335770295579011136654365165985087448960371593259099337272499840224125633082640624083045473940269499451541013680113477740293936212138782177568054615127311329302491472102993930464385328945454525871518911409246135146750882952571418247936146754635091430104228633549140146416928946241003833863904570886626550741682812158923467006105543511558091894702417930763433724086944955759829930168628575533388545898565835498652337543227889309447597626720758951374921410778699129144607199932863503107852382526011466899680695327846449152325153692625077791811185691980348588943836970416019794322814163384265959021285878062369693230424757486478298129270590132811391272070357843075389845609262413588934165000604276770493233241188564753866775777575320876564512935745266895161682739764243559511297274746556121566419918503713092356203992287450874737686302264563426927007368008664505558721171949823751106370539072010594787233751461142912678648815067034347468187888269997751293606758021412671803448175206244255597753092336002896172585510933487813707369214740272175979617976831893291153971064892003185795735722939824417737959291546402271213454250078966334063342433628639412333690887137520616553429968038026991660050118268523593967354161617662729347434843332787273824717338793692256361072832187249467611655264443423750450578401258435752731753336200660139130151436629399979293777604487693968851899700458448371868498070754461425673914545315693015299182516545143215004214138710780191856637886267364123105177383249430165115731172034382703578103379277706067650783144609889075848249981479144760037223617245527352109224574889600269103717018011690693054807358588671969315117127593346574935345285730544240805544872656838015625383306456912419895553874033763772999772333815552743348189515518993013720142516470519686462840193229169069530214214916255963877515414572985749598881803513838640586019098883713599637552575378781421835326772862200202679703835848222505683123655955740725853094004263431898460571497655419265419043636978909232002290435440728541903625477231669914422160824211515867338780177714799786502131493266354058817664583252468481216473294983523450986017408097117781616460678925115174936435702665733407053653109415832911809766348447461871852291500634897770435790876565672208379097836196326102276036572227425308971317838155424875493011714712710228073146394620840761063186734309187107056716137065048520995497325817604892975767316431315737495501566778599198321374498873783511102552033563613266945795608055378181959921901335332457654411107279639133640964917254084364491934150281832169517388178464985129362878592421376476264522671678489634964569994449654911826474381263707294997382190106333301359898187704073695761794212690420609859609217121407177738561639168178855235749005168739137364529230300328344764317445049874807688524757571628568263783381103011770506556108637326846086883652075511696849736588994956764895153259994500026608418391213684549956948368458489318602673734705684193467261622911139797646268035321303888353571646382686851993057591836701762331972823797364457929553541680388412705595655606980711172893498712899722060743293758714728892477006157290842499702689695041661356756507343461960623502962044615845816838325998195822546595317062748464889456928200692543453034638289174105492205269834797568311451895661428227115749053269933219403674223365510391924561752663384619728320624855923152642241649210390223339435708259269269016412444385428654143315549769448178023423255160624151655205848685256657790413487292023642465883856149326727175724183309452339510167474148519489666333095514148256639133422609953422289089936212910575640910573971569482541521602474694154056297469618762012035629339820272292655486120357305086527975593017344895070757320502444941273630421112178151794290726858424235136180288271948017885066536427652471172973485600337248587661514321461543649039596562397279465907924893350990356004947185439026790124082439872683531167326363406860694316758660815072853694587884059951845594213137844938319810476495179783127697354106822920592541111066379448396557306682370941206412068381913260474784076333501524635012979487359143511440731692004514237900815231351158242742987394544517140928258182831470635359377803930893910037904479690390324393052904163458328874238098927372732469785036029450748813183373325538404547210961411415100843612767156179519771805203511323866917924376713392056015560305521400421604842233506511991604951769003676765718400423188976108684224036537340533034416107836316986053547057323590520804196143635184761523023355319915917293784026434355379502589336480328003575306301807472947558578089785101160459001105227691457397532645114414103505336750570785806521957476100827153021165229454302561866799821317119714581884308462166348263671703049049975882758072650309167014951435671099975590178092161751751917285763276283313095993083830893219346826701017186244018454211505834369873342575492779167533186094277512144997774735835270804795272320225385528928035237624968106778168763874030115309799065121658920343827474711142443000384593409638165651926063678156278601778406900627191968807453669017170930752651492252367497077259272238291105954871463616322273945329332439209116762628495642343324191556031466302829559818841312263892016724834185771393271356554487998280058521755079387707113432933156371959393013160245459641694944508007669886927656912687459575140932156275830008985307150444805183264289525338526462618953279727038087983111439640451171464178778652986216552205950641127673472696112957064093442027739109840017343547737250421819212176072549281631273598032137130749416533364753827903520749529572232724695156840229188897883937994487194190356392766720741383961066291934776084125336495959414335905988273492514543432996874136249238991142169544670396379821667537164512424565577725360762996444687220884675642250334383928191144049099541429137018258331247493594654078154165660917506510723610032029567443199404075975905427203338742636299805617857279344841209869484973836581498878797347806168264636044531372930877392111640307228857550782254681215815482242911203264285005406364723791136896802148688404938900800290170309371190057430966634219884611638722856123445119825298983049915324748971061327114786673054351025959224614979550710495765244297960841579773460562283020068873180465568704230365816786950548979346821905915496683302128586241851367358715037966309104321922084024322867167515866335432480695231156415644763902711882381022694351014883009661759350070399568926318825788117224910915977956635469787180684437766154847687188155390558415543790425002162687397344371736536187169477750458552195428331266003393239974259435726540244464400252131048709059525158619401328591372112541847945170218770052379706945968965187261247326395686016597429738697786688143268009147980912196453643028420889726496563780975883390498940842781878043428338617788396401905149174547222757874896292159761720851701479900539640831290199115817138397175171687227637751671078070023900424725093792274369912082094580747937165603988164383424778510347853564943019516008697394463248103787795826901284316583822027148295508920543462134499591130408078044942902819922239550067941364963577200100571550301365888632283763602776512724631362297816059848156247626848272389761747282000029796152899363342179623900897258107084365287889666124678850492791865866890952971045987273709227507200769717607862585460242407984509654952291106115904630558490533970057255551812671964270975805760331840582344462605636345445461596705959110029141222963254863202050161447014936057737102906314635929450869523968975790506577633361070552302395479703647842882167112692841936969753487147345400207202727240888770785224899509819764237749970969641563662537904443673759166724202823419254504263687487638859246763618634015552850586198731802168109212164475235413849380779321234337653890722896172540550947194945767196247478355033450275098051303296556484288363000707596554969584990561129822588351462911596453778086190058718339171471688478090944483460576527406876607318948365072326614492556125169703132060362303394298769881181555774882490857795588426810660682064496421141179924062066561877461709046858494190968341289101531104467972993540236668827145445084669929931371851432611591806263400539639494092072652096722039490766574259687035795303577402606110550665202887416852116738697042828104689886158572210888799626500726097347097327759149543674671376484011941621019778937734670199447281705726905281873044074388003344428882982653678818814364777947744563692554280023561669241243979710090921648852091950735077375649326421253718259671077803197833930015438476527665390656753586806000151938272477671700919571171506180648773392323437680459587430218344349005913749725639670196757957846839276524297675248636508707780631237650350065333625399008374345690443871413643301991225664046292550656510563758060335918069729337868074690707700558542075672974758501415250336103998429413212655906713627484107595863885113931654161931869017809790977774168843355637019520307153062270914025331236341348479778182310669240216771430417237101300257698708895568261503380554679559508017537835885828388968087980701072053452254252319230528113553796131986326984464084936285956484078405066491947932560938995123835239743529989550300630507299699199025689262914577466075513964441081850352298456538401761930298770267427116405117728810929027376056925278039383908473767986476460637179195655129325494750441932912141620886686935385080526262764405012512127460082379620588382293069307867256090363390528746533988465627398319594497533579654814250545125591638020813109483574533015050734185886822367505717985029349955091037712620757979067553409235381496807475259515733350288294949819807165664899408491076805968128320862617874384062624518667210016130973770916015662138669629411757974793171667272886646622552481649129878226456427639012673539157799487060168281611394635792217821074048298564316664592426767197832308580141998789372250076733483919474967395257784947052379991513563240406448897968279536346558831927410258814219925118258911769195177502715211659144649366193882492530910712085275350765421022869063911732778490103210791279681098832428219844003506623690328842035790221136484405934456296863591259478201298551076935974672551443554488964877046835549103031824107126218145754721673280782517351696656300025173010992578947375284348994406992783746629073319798176984881060314768172876945230202363139071729063022993472465142143080959921992750340222364761334396806113561695947205601868978318666338206227484261203473251556834607305633825108108376788433684455835071054574676923864781173967921945357124552421897045121794951090779887365940179722963421323042497427648043106501678774660859938190615752082151066797629266491740498816704631807553145104116761951640387831739478003198160357646276995353410698555576302491733329846261340070315778528881051954781302590237982324001435330321468377851996151075744399790249851366128164683838351043607903741610622696399037539775422562105061017552921203933476718437448626525152332643365892557713483343705300379717739226340596873431597769745972827125397270983048401267598211204356946074558674256554101938090910912414160284964158471488375589868323979636206961173772851459596118114962808756213386125733024015475749420561861638657796964447235023397133828647249912829599752441948863110201945705831181721282996712923853521392284905084190758999967462203234478379665381818943725454588855070504710783811876774274507244735891209749571893442262399760570875624390656748428260572640989914590797815327659008001790960373656804947073210079331280966517542356403803369703886773760549540092746193400707155142702172231439479548608844515182930965758271001406986439822052270457457671011154352672490940357704688207460353789502412972078525711000433691941859697222956137667613883003589641997042559882908763227560671036156292954063129541840983494556778005752594084001776839206162594101930766403394134223776523898281723173448176125840115913580942613045403778072800348528473860217555271323883291367847966926349667599848701708263346591668721544952745190388030932172714660244365626787651577889815861907403552306946604430310193586253483104403128128252414612600825203333723311739474331698961541230245838674464209542481221812724522987643297798000095682879190466610087452474462854250357017787326551523304386240350818321950989664168024023604804512000073409551212315253483560160032485700744333178865916706896093175006635844168280356794285109297885979090732654556523448901260585834505017850408288776583738282721545547213299021922009461226257569449472616469279016656799878989108549939548581202008572789337323548452345697376244020838736841768462404421164692770396245392617440441748755613538542458764359369443672275897331884374855365986258773348266665677941039581572128608089145772749024878809641212136861586329402911728247479574861046829271538732785290095678872166286881584409710752571599249767404840270050658469211547880101724682265796659194434468297382595237306183592200032984397663687716514932286640818023955623680267991091495004000119816969702228988607960214540192231274614229336669365286315423546992841907975442626441793557878110048278179475389354758295145309303940848992499366114483408695209096425769664795778799482567548447738559073602135110890808892958153820819266973864850793859738190684108002789138829676453676918865546717553982292596495084491751124183293287021687690975819964883801448721638437178161769683375640046534615557075555376557955514755283782399752507144677729497320521569206859196574916566456374577336372832669616547388607717623199532089194215282207703025917439526967838276942306947628685097152413241189348787798906536039920558469949375295902326130890370322651264246899539165856645690771320972445278266006060096726029938301723384138986289687212408083625219607469167216280069464984437999286703165931114508951767168453699648976420643550080932271527889108505078331761632111256081916231497092957443390485280251552902745560041141110451430750351363934305783818784147664786994402547037366417135076725843043215472878238659338385704749607558565377585010834623311060828649312674378153851528187695282949676042761062276220099917554741186637427024884899455256142211272772235074449707161130103782235456126861547843850700892248608974769083716885731754468604209737447790546014119037968501337258941769801656768809045453495894355516815007511411000622111935454501844577081084905528287540021833421508312666507802474022556290530771264883901804977914113232559885270923798870872484411619447756906168444766772447569456508922059018135395863980840114602033037359741291264174271852470836804993179943199506300836500546365259511723674585211424061317233569326449587204678245308807167692303582062553326796759540714111955634697583354729067975529062918273854791252290225274213529303614055678847891613622498668633756968989407513234225264980256863417050440406989118189519372339020451378616936345375125350248456161531673138125531381051945603918647178914397051552097254713831216909198597882591067321743458913071880268375286131870761888822320074788322979696446473083044395791585969587072032775699519560329348681295591834928262026681486198514536891399176370345860125769810477296458398250587390193843567409767238065628885667728602504342998344482082912451443515036172961458923651622930265034747965175589390683852592825960089892990501336276012322963515729448073372418418446780173976428955734382401443032404404998928288012652880787293298431620605789770472555892154728123770320067280099877010084523923161483669578510722801830460322913844555546162223450570780061762773577091195344682894839638820745299010891122994863086487172362678394886994257358119597105902293621484409605077276692256555372932428492095646057318613503926022013216150776201965067586666836734763401020164901594603643909771011594717551631021674217486195791836126955687708149328406684141822319693598288424915960449897107645002665450011703526645132478123781579180921289787983932990685023346019174428892793437566461304454253457593678091134948253386886574538785505967713100757238384955402549732655786076656798867801704872766110323092418341757177361948761096119656710738780318414064499159894584787182747476704887493554018721190257024646640403638211518911209578593271805452995385868843669026066138414027463501446202743996275241827906143377345118336215393478686156995777484389221168260572869937370918731755137275292533926201482050660952067174150394926906555162722161461360787161636775899049579943285299901528244842802026806238610635525054805560389228440287700660582633251040340039555323940727483751359267158686691354804740413652897828536195797206637240470289264390305798918690321665303726301171103361502927089382504764563525118888522503701690802317250391294071293825108650786289144636727166651332363851628869185466115867930955419725994204085135457120288068158494905823855532048704153640229570080004216116673224002312916744275356004659389181148706595866469801662900320738684184359357026815331736930404754053273645757218739773846636865742497046412338055955687729920741893383807319762553046715988137046848625172870812329179087608590402409509987809816551179149047080961864336738490016436107616726915379138018973225005600524794396155671182384485337679327091320771583939537433150662829904532752483584581514144291883916088101077367701675945307149633143389309841184744644551435961568124542034410296731366554516517046217772050487088377997097499123602194967896209988061698725811953541191699049491633032524003643663361453449758641213962617870771781433055308918604876679310401096324794088329591674876981699963787669827339354042396217374283489932699873856898671190360367812207280945822788159341404828425136904199165417872577389835099139343693363878902590475151639371217086708350031542024267871219112218873600282563529111650981948860149956042705203188547389181755459699714671932921484861004996061325378951720766943689280880662602316669733108209594751238847425200398311495124600177994935634795154605728448343847767635167900019316414725798828628820598563535714328899082870995413051828853364769462221622667663787647937990322177760343057851628713845059068973532931777565771589608036240487616733259857956384988851556208596260967186272592447901168913977885411297932501153973207502427576675700855930255613859526704701552961035402247916922708043185854529414258820038743388753049591214933961753352743610472432417680165033235773533862631028641004901822893106983301672475063441117035043041188605271342092744566410119152491694804307049485381877232708574709451786883467226406495291676442461843860239940730389193145223154713106289190133350455205989078002858865757203770342220168084771608366108097064122467008004988139894134808751607820646739141581925129659213520672916128312393591079328564559517763028746849757158564121612141000916641104141205543081762674328931854450787555506392111486591688130900504447279418311825549662647464961319797246048554179485787053756432526854284433933818461871512836577483465746428814264113277073841604894779863143723850371469880381033210633370594607757606871069327386031284542114898445453577373144960260268814917409249466068501120917936623045430302276838044916513022517643437744810982056367371179316924875106575511782301917441740973064474583188517626275719583077252270110772041658056366454622951439721433029648983642668114412940751902257777870461039964319229081201954872242058030285067469188105174459027308936400235964259967922903958711060266339803930099051504115477939357331945978864732244326399074506361865759462006207301581431956717221528534656831484112890614607459997131277399580240260875081589074130003241347755930305060015311980753853106544336495434898530026996516122301577993249897705192794336913534506345584857704709110629021275170306461195884516611925783208287482195189883692681034044712208277291580782283938267299688031957771745983533094414030492295308137137616354537732047093961962930143219273088168599677838126636084309505807327023786254630717113762218029019589415491260072872959177670475191233886014398748353362235614993304752268651443058927314461638880047956233417849726364905998024550388826332982553024516084305091697571902732306218957139469481077699786417282993036660948548828750994464163546453254052331302582077248904383568712813714143799088881590710464349961702862754887058319552372331358576415899517838571043555892331351219268877867167050485835491403642390782573117450461626810390805924421084910858619258343460183628496192248119788893365999200093906049936806713259135769890205312386596946048821676107428449720979235948054651322997537127230536667446047664226662326188574763441653821747887862913902200282087558779438194233336905073423425034719370756957608479507858574567689167720464570945157272913009767588300847867376633202819638931219340573074658021368862269740277133910988632356654489103544652962080731603466233273803145386933775290929000193461079067264425859170123037587740213444168239461148564683063321759166736864763585858867604618016065612865472791889586041131628241205173000644699572438927247623993654412020528712898540923321225440167860266103093724691479478013546291862829962765944013320926906144773150564757112094630409725451475751712899258922091079332161158121270039214029193580152968426851799024018826361540066138404279522987303365368581972122800030772861485276163847067462749105379533188426495572133016319151434864113822936202359243014553335021278588269722207530891898875071505796645287600552239166637102571361017241171495324276158440628004381804508248517335471098816887832035276709266881917342412183140485761772146883742442709552414790497091944281324765926158444713816350348707085144685370254215162011118667138905477409367065469018080059834452036983687378736931990256405529001270899675294912325398902399817627512501873927845921921863517837678835703543993150702384192695419701996528790279334271094974501983569893688912472513391715260085847097634997060677913120842209707852977023017744940903124692114140542226987951376907254832754280715448852116385380077989949550698803848163544959306157411693072071997641751005422150136811563078556961612784369704860606356322525816967585438871711052526837964571192127894273000232978537185840453194064808475811279840542347613442857124777648811552405084641509927318348931452279845215319497221733100621534647906935765503885198148875365362524298239507558424012676542800152006064274105910819141878419381481374931112088879523826366269565519597946384327786682401150106453133129387965554833982419178157184536184019961751340364590183429526503879557236621507656918895898186249009004683583916965624776413281398869895891939260202164811951990174422118900263431126215324383625221967446441964732619240409988352326763623608236406191498115246593386105418519450293342962317112008822843215152469681484140633332280792249135173332841559145808018544414377812310337796520776963708842317454247849021526833286373169895691420895565301644787641697805247995235602210262706153781436232041173703779191446493102698316581959437494970174607544495082114396583052752853738864437286637599091926523395815040985922575937028499190385506336993119850977433537947738356276493546770290567190027376874924427421878762608857846551820798549137738739073169866805226153139328176211296880228084349337603482220852173624628546138550951015383743655416863166852463150101341498522842226470754755230639509836825939967577949057858390192183599979092642849913906812754801454927883848240038017722086444107330927608429813296547693292148652407021743608502158279905965492848870021755050014050733967473581094480617536409275640768299463947974847970576697474810513129039654350343782068400855180504672924693133012559943349927002661766603069305485633442799457330027290660374911483369349298467006537249274269041953121874284293426239263384521382078563314333709966359776563761044275353446846909697107232856852882878179382985323740283053824423185936711225790342691939381946318392968596399259913249652077118717628726944129306237207154301500954731289474676396338644407401692176197880333502134776098836476447447888182668087211363044073870518960541852940985083290847177294619205002138171389905782249320206373096943166705919291056451144298320116601312682858109797198781666406026014552691981449916158990156548269498717570325022627109135942362779891138975521051104370310170740168897417657868143307886783404980420429804508770989710760129588794043620984407708276345808953287886231429105125458154802341843978591228089441072630273613081768879742044623287165258834800977932406303363193243099726644859187681095979730894824527982504632511233686034859435551888377996547485139619217026377032603743969073663029145564744182269868569397100961506432643804107993558900847206745462282412456345044231197852743754212319238696510107015275231912444774829305170457681416632111849583128823501442365944982362451453467767057057663145607792378317035378698677367305668789391087872059348022045392849726859793550078390573116809671143372789479238593832851343151805167342313529202595011930483043069034130131365376857239325123411970314122863870622155827094790972436719128695240792057389579067542444751011141872909026384193064247185624885638538393450956141930652665362429046522640771679435988945440668031005829355739237902562058127899927667393988941037587333287008244704495992023350994619807272942599090382040073611357803473267978991873640942878100209166569278324808511821923125912669646780455892028516152848285128327015628158531325067312707557914860691091528326404989590857007503014850516136512972551111058403656276679611521809196291892191560904080350855920347259905076629648177116559992158320320862965386639355095286114964661455398841484994098426574915859561778723668691086703233037092088924593634442980088176524520983645432860294968739423885267711574098959189618213017763827856881046091840526131402576620897478405337612437461081893874705133618303688342290017159459662479211114020314747686572691042747300382681998779003218019022713646601648871626865548534848757145229920979987040696905033903088767037561929643035108533505629788362502103206400654539214495270220701869395471751113394706180015937656854883449852864695746058977209213850258620039702187334446936002051206582688347143075711842144527759432874870743754864536681310137654514595864639561415654654736117804436287741595688551856364586423350147329621795672613146480255787358226810829235596228785470607520432555377382279621286941730809410505749640777760698155143347396482490424239189537237063477441373010730006087473227882572794027049492088947921869471474100579630751768061638392295945641893527760283058855928475501687410474870582819351434455629328615775301426232520741131788576339328642902596959977981855844791482500506151651460924348607630092602410383657384383932825716043653201415531700638409392183102911162897118394693463097712377677807676342825995375146825347030694032747390728710551627007046403642569161396012840729054470507174640045790088074522810658304396931814163661421061869296043882500916407377378381566964866693028040745120704816314537908275217219549219005228794398177539978070040419456012466661613890344281230894974636423629538063883470527481242120012482003644676042729948905469095610848398374862517476463731177316727938190608193511922066102040732632087051655226910099128368751370160581403817335111336067198623592783698316493023440365732592657421157781984675759716326858324497854728204093491947678830927898519969788728303452492927766116431984594298982600248764648011648015132986991266418062088635762236303484965543349096105142736920455513894818420310364106779471170259415265861045789394609438474526749060381271258118305040564225640942298636678357511218615860966504181140396807648630502456664121894008599205873427153943875739346227591324976875386155580093507329088284939011150352991669034473816459152834549190227554084962464405509256456862194024979385565166780662528452378379926417585770799873044071449853786718327124950752814197831293231136248568363576827864660808869070740406411002478342990329947505312280673662245774410145025047121787759238823320002222359825811551351892163335454959272652448072077649283764263014471996554750252908415506676966905662988049511944349162033328205016003095047356050274186583282772884955102513113167410637379259635282523908861647559198562734088096997306137671105579626427823311626549066068494210645122392012190615027009595361768286040902852066057744081545350710559423660596649699275599696948547680245509987701247824817773008132249902188768545950570591385636047202477527283487983061913577522681512917626528336591251797094659379972632796769213458653828962545416235791720872789047570873598283207908914531940564274258746378510071335955399864294933085482112437671212138500310715591259439081974876823749586418687085580949613120287244031511869988422702266018606255340759831956645374554004842305068649964032635388653118403404194829444217903200048472419754862969642735119631791728803241973688787405859261803653068866207330602342436804874427289977151898256087471630575761268841299751871600688003609141611800961430229509288955939974918307179335614007196424322672436843835086287263344138948923195136266795448782451462202693141113587413085528351037253474406490105766158802525516630432870375300043824932549711238710997749782403822831855543832251878630728717697754440172053108115804106365224358881422100524831890616682962907417175496318183328234250554577728732760836424912215128153225015829984344334466835945380103117423627066260018640012747993626753191586171222100503150703930220480870655011982190437801569131441772409181474082551544123790897273283759743185099395371109937088436904442656241212319550444314986812189909592150692200547189568899795449402449178344468164658534081290622685398578602239558530722602491666355331807108295673737535988217529294572353351297564924863917690916791514284652321617743867546616491420522503692740840312103126553026502642792695345733408604567641514799733544149392916171639396178504204637756013116811904772688168888706878381852358065709878780309431775441477716108572514910852475510356794679614923634675186891512760077299994910237395467999194236235423620856124109811389533796132840022173514824687638707327877434793049993836936571637152223439531959099857743442685397535012521858767619464103660584922047817618317669842050738189820290023720024246463044307465856519770355091144416935951789604466554172837044506605801682229861961888586976512740654157178814766138476265048713685091240460045019125019757453500090096772028695928044673646379765195489675672231464224758274845190341217764366793325396426909247042951564892015796263161228498747222258331248613730630632116691852835279801107108636926756892183581707635983128674100950316638393707277275268607666439650166157844732410040494851435973888157511492296738192810440939898923989394053446080873230237298706218094484432779267286382162731769247836367267079934486976108897391464316296004472248092284732999695883525544646713171095840924985490854634925635261577654621115825646388540149398117808114770811867931334462043553981256504102239489811804381059014525076762428879838241209761558194587216022909947772326378427875423684815505682318275006220280510989992037053444217703862379530991545873324675740812541949077609143207456425404523911789693276809536999684807436883799559605766047784924500310979289831146227012527737382188115126089655038828791842747420895617140442083886026012993985979782735483328143334109658610899498587617660989050740156300218873015295506596884096413123931771877318521952163551451387591221463097496978568482798191279869470364887326275927977953683915281229327020838058049960579911898184137976084308537610073021099573302305863026350726389186184073858677854772761928294596301860055883012560911061828308774094465625026530723796684969562356417216046484644034092830335678219227206265785153794849560682944295246878167808903299664400588751273097496921746621658248340319381519753526805270567160752069608609603797603032537915339361041706691870267818968370984350186240881999143935725779433991014317584854328329660383953958897067130011518614047800129348430270546163169548984041613111481293190781507544677461829615800065111915966779826745933400668714738679930304456211208029360399055696780909359315224699873897815976220445301293586589191113906459081588837383853486648574733845083587476445617903652040847668071406095734961653256585060943231686412066685680458889487086132693971641795696662561108970050431425094863019468773208522116136051304822735481507504607397504557277964404879761299117530845688232845018400662383753698286263912465834998898993504500385732848452862096840525690184483120036450272431502182117027934413586354782582712249711167949304796877897759854495630162811197355548547805420106065131043816004399812012709645137853444885366297328217537505947220654284102536753700045832081403710726746998839159450040001530632642115872345330079234356722348530721457685887695890848680832913596229499103238106619016391568449189227505419765601845214378642438658277977590762349297147069159844365059601604872701195511464530578601988905540843471620210758047163553496299911989859955422519580737026219906737642287454920852306918702431483812634364867057024635608274229087247611392389266575022561148410363645838326002836541370547650069534700999271667382808778000884441767066904173965486674122323823848468640674436661946331545289843422813476116142403752191655700070696605375703418735791967716968375297953510069706702401139602390864553009025947661657703690830024975154648581529181260732992056033062513779172421472661242942714832843552377183884294935555528748153103906081602455534689340128299273510505757756786152743264465985765180020411889736255953949076273245588868608487984991523462632074235713275760426252193123459285676984873590168596442432733613615947097584665492035272541041245416786185744896629418363486140933312466702058201784834107673343087942394982712150328426353212611392133570942345071566622374609601566795977254557420793080453953830278650907875926732890539317952390349384746468437811278344837925599867713618630446997318220614829165794912975289817515223333754344537900493432620645955444475944675318588897924380269381629761365564363604360567486110222405938580173262403318492070839631743161953161347421205440041629364236506827224936404002601745742486735586629853191579706691335295045340778611098018024321543270746987820927465164550370345125974578348021247868527968972262930232722539817955800301044124406175625038417691563191614205572284422625488601126160169537687008999674138961799249119355496991321761250257022713916437350906542331423088895759917422881054052730673918800832889395554812996434555974942790661146857799757714799397536521479245183384205946522676787687639848444696355810555083388686802690638143437916458335597165827214314869223028356695511406878139610526001793293906925189885801236245166830501437732202265695228650462210090919587032000252768560666345415156497996345052974434908372827755569193425370288948500982551602187715401517161576803846423638940367798633659902331453063327023651179348393968116753238274599455937821977191299515016153437917224476598465058384122912675643358585958893615058290431147611987871357210485297897298171383659019884310626377701499408601686185588787334513466044253994051003305589399751783467661589222921018247816853242714540146644126995744897663573993424029268853060569571175714388786538373715184669584683015918575129688036814271079426142060037335126532187159453534401345110858133419323673046900760896257295838885585144764632269121262501063309603036766563939856192518248031059286132475011327190642866942833523166516118145806039572274866565606161326482525505326997928663824168086537825853944059909997085884416997425815572265159204605304089097685679156338464176624915396111342596249914085222264347343289814850183002433517107990103878706847171391324534964166859375291189913957884410886158733877714343907436008068547184765515062396353647993923662812593717230115250706797581549994825251208644079189340662385000764422779473461244168249690644196296422398423088715595171521773001853660913272222979105810648964498638885274320644040591167963287236004363804480122322368706236945120443586264268898892376379483928343347920917499854604107716881403971859234983693877130389284302633181401952627621074632656957791965432640166169084251632047092964121464651651560194485246181516553175690271622530411132460969224380839740117578036007424515275383761550079395659982750271870745958890509811979517985132970385850021991091286238075159871208169282106627984992703189824468243452487005626775060614679141774569149853731880877931472534160790651154063806473920395186509627795762779594084664949633513002082135662231711486460344231907019184680948612159315846646539853633686675497731695332498479014337866901671874244228761565044284985862688436923240653027694350393114303502793236578310835599017279154696653478824274456829853864230349636219350204939407666470141176576836465540843104756942094342770535132612663393728015062384746774318694405428861302622009741920376381430023947763760782086198244455398203812450798324509816277630660058058744842271783242751259031057571718799096893731908942711172656534259143851478416735367984198434608104573100759267931109729925327680550894560510760441682299412947657282508571819225006915217794268968875108615437613741257122180192269160769560998048488201564345272665326037193236441731271565992074288155788589717688529121377853233551209015596560795603855752482664385796567965547175294298854360661369465532413301647144807496283795523053001177122147416820735070073269436386700914000978486004678382141272776041944383184928291324369838756667511596411216591058931116672397253336225556562705314306421744621369624247208345626410160803761743685213615714105579499692249407438363172033527164879317594083456917906948319412660996240628187251233190033687358048982829849443402918889456501881178809392078014382486491222310912317506651036643691017918140785088019007384851283171160925427604150424655181434335411073720185673375691170430019547818631155383368784541960984262977932818122289247897723863175188868351593773819673752076620116884702061691968195082568440881179940184199016193668329597779535429155912134924317511569009009749443513383196165775551587641336800292604741940588800895089280036889470712027168819987519434986727381268637891395172614290266136975604384508182196717047969650985621901054740646797231069245576365171652816503848113947416995015024951328506348786130483658593717585314322091699376988838019618576383399474512164745123607484526307765778819652750788063895519342980772424334987801576397681270702677022500834085201532230619581473094541067883488428460741836400195029102838088553669191212683111636356296768483576828993127677027024831236650258397817512848160152240762998657403315065396484734588647282061872224582478270236774708986497140390396702110595847307796021535402080960475869070977149202235848978344554783502848423689862811267566959381735449998395417677420254033138811983221585028740416993061074885285427207808330770681317646622084564728371532941524442165040518062967759781938005831376455539158480191181229118332666361944988847114431764526479652303359343432451290708657785620424320877607481756277342892955623901721713907420117043185989802805294625966717234461635900420718442814512142194328288833567606701746884795334294222377487828437472034191002418443422311844349566749857618215333302790854595908913244219025268150380583368046510381269765711979928565134415391309469061763554924191901587682103492024394893844311005909669398083389519728822825436086879571697979177501085557753173040362629137096422539317735497483915712986085911760011522627299484688164460918247611498413392462584239838867429958467521286590012106056186873356876709795581469418872820224024499207740456397662100978443278910251986781511100753740850259966198118391521968839039000958362812050391410503877160580954839429196393048787889607771213289563969058287024607253294170856369047099275156851042939589427843801256540617587273932847183406333658896119011501975652270667851529833090954535388326336794502497126096147981354467838716661745929087854771650998048498145292838321631290057253221952807802651225721224202081292802914900608204619768023166142211398037155155001999827972165958766533922707548981448250751545018033029991242817015398432547951303600848771627237968744581629089683436612179254525350816791648292003124195626372979286504391083567439049302223208934536996514993054614445782793652986566960084454099307543164715372305052872636499021229374421921211473100056645395644012850766138294019115888589905337676127208330972930891795800564238709381574974398883408267151406625520929483349295830351793402743379332733715681381473350175344108463200690016697707486011955607895789031606289506733253562294227446948757692776996270568821101837049021725761780667065980735711840804653904982908218081767033648941642905238034811606040485526015005023938620742241460404754954157403748802174425319450600580067575454193540874685315908015453875702366152454723364864064041375184166519779165929038663101458515370389947173685806270059084853002838648166307252763285153812294945135740257871787031564536960387688537941766258680305688668758461343471534960668918574892672635672582217800008971909918760676106407347722463214408702519329582517907704451717185598511594629080018638706378275277665587095173839868417664342965660187240288292529732146596782321093025686083672216576443584996843181126442596261587942936776551053606879180504828615074430565455517311294928878200900305361130100694905800155682129635792747286532953808844836442938917722561426211351882251836775793635059225106204712863766122117543131710828833263075621998768063726492407611917183722056098905317642459478152844779510381504685970835440835636841340850701032573877337107085883400828508918345531081599799637436432998211628112593136508376665260694857994227794872614986515204215450834553411302116062791038689068223654551958042106162548678219669385579890938193310078286499275870037000437206244423009852569960150598658645512860801722109578988524381922826699623241811737089306119442626501408346231888466077381888259912938830329218313147589081944456765038205910824704780836675923899308557800448123485557019462948912048909603714105094965570167452621489192866875784058308781653867760714349941134912084533871814771806368856170932215748367340543059690246034108136332918654947273285025431310026041429114473122301071830592883540238813301450802211929858279678424243207097659319367422000442669490954144931599732599560346566678199656026149506856483203851619816693277923675137946678752880840259632590192080840832207035251639802576176289829549861434846597977391950978144549233885025963713368265911769441662292358966039929241233502299091420321587015621897634154940374025065557836373440126879892167441793777003635376884843266374662405609820949033842292370586736454614277691080990127347258996551910236099101780626837765219035132702136401445769128674337026080291850075495330866037734614096553161897865123325368316236629122214879554606486134089337819632553925387473916114679556840030723943404081928096978659732241583998294761705425164857419126996684216621397991334827882311093839392218647076422414770506307368710788748288720799355841011606338717703965005505239174280863201494135711692823780372497227189588320196952207115371615225366946070679824842594372563089643262664375144338141478398079426808986479436218476357037796441756253660012359594611371358182141828775875380811556207422687145999434402916938293186596921354092354774391511126774352442304864566970800608892892899030574462638378039901691168302780576791065160192548507557309243156475303202335818405890177634922217265584462796847755247995889739141669285992922639564831565239634806358675251897345086085556895443350562240600508192196516106256950944493483993255750649571887709346203370092085374259317387267317804463488005583516362683651665527320193470912329538641479905755301915061301030832116305870410817107816055953723400839664928040068871269656993847455295272600423996772464953579906415827098146104550579637923110656199096386995950321382921804793374735178794574916209177536320936202359220923734882703155804072426163642089823742660298382678255985942523199263061623626895040108848758190749314952815712210916773697746633446426259344472865283749507879473965448457322310618632942016688745460137685001709845746794815449633411028266787541477784295487256443446992865049551029943715609115221199660704659252436666757334454079182492492430819811259673113702625705024348356234296827218211718940224187781305584744122433158493056295699857829697534120450156534698159557105409262659072260688447880595684480956705150835356063355622591978377614142936070983649986104708058019005855959119905851329575908136636999259985448377082464295005910985396737912566653091582451263707560892289780442865473803667950964520353985120925579554190896677438352039267711935068720056548658904335660504802214000900918030689420921261078056001334869292990882747323447414304739313903396516127659947855095535192947868291495808630887581977164735359625849930549540868592828690389548758342139953177950212710948009461667765596309629487177294283419974485939295884069952862161158459248595374546415779244898431740942999418626519950311514666479490514623620958549698412635784854261618824406573444574403813820073740356885419983904219639941396843075495966159022747589600604412238977564283399528434782843540955306006457872279737585978470809899188805056612795822982283849899541823175920166805173490774238534032348495123378016468731434949124878018688159754249085143871444509320729618957967558014489162767761071175998746109137821712110186405605519950727229202680501433393262811856470086343659338566040377554338247201244743220330153800438312119137767879737939634160950681769260827126017298768204842497412401841659762347426972461217200845990718378729435142814158074878760037791439771434780662562297748651425140650087665853914160712371173599659455145038048954457469012696579909651857432373308150293115121669179297311904759826893887277125431202716095627265767144723907477870626034302563223289626343012553862947455764547206517132458724869366042625836181198435524747664914839170288113344033127825385677417148779510325590985047019854369347227221241148569247100266090570036566244321171775924776110302103407173181130316508519172690081090828603561387632464270736176730392484908070501889824767072521559518388458509916627891614645433368933524259287657681807093282845709400727244142339093256035208067620937408924410526818446242498746336170019416127108970505815924472600376989876474055661222442659168458945797053896291139680240184486050432066118229508547594213233382069675953064323631446203849214077432154819981994128297275791689232643470812166360401391146934962309671923791097399641948826331568641984507832884214165625932814463321543118402706864989026470629175232439603581881720192570935221140484235550879099870659482509279054548843292479520329970879154569626721858197344272371217248009781699261844563920340947566046019308281724280986510997901698033059270622726979100552043107707234863595896062377153255057007006203893900844514454319789415220563328649431785792809667937453297817407227616573320153898302673670104303599236868208666640817537827767658979782108583059508368940715882945859719192624543869662411160441856907017828726732395374791416236331540233047656026268162032021004061185518259522817726617887314730380432604896539507849310410544857537953766289151367202412031182670623515696334325940072041182034607997996969376243965435315923816599675665491157281104440760610397101976841461772829379351755456767445153288247449950341419683862599816969432491073811746258125211033300046467958366001062065405800019282555472970078291620440486865551089751620096070272737979313003375915068719979430730039834040561597512273337715181541685340010778855735011293933230264627256254943984651158400635802631968464677643266834547671288387510137155590530622295920171988653301623093945399100035932208888173301407370934367566086044724040783579329901954296466548603101598453892632449260794284387084251234160456480521904056075904907470627575185114087601900718666087021255944293255005231931755617917912856629732107104040425670208209777674590152177941658037715105109456064545227437128007018045393565476328991748944041504722015802209982711707840731896352332247963630031297339073569526031981112445510906665271212549321201859305981664861878308865237715571512699262594630083547188079503523609110813325876171158089801313379042669500235412960600337200574428826450055599216871812922537974508443604663749536712009851082712215035700845638157968681271902313761383593646604404435883346303733832345346865637954633433294563482770196208903218550187039978338740607063393279138476853402265638947707103285302798171964786972333591195223515860907431653618654257974792740157103649621126924785592569065830333851211993337038711518761031901051754347832053238218184645623880447180153463011160315912364317539686111716983778208046278469395444494799527822891170809336384360307114388897408238443217124070836680529626119821196088785947752938386583721388805317019697066416549715020473700660841346445702601945922546125290873873850421198910999232706210413786175877036302554211856943301921973981603159405523013814670329656304705379640895486928035908197174838197603551772102666227163204407946848666364171146795430402095924708438260457155399964248184448119133935265033574053473936111230254057260231718749089242764597694950840125123219084513798661498879386703094806330695036985018014121988759240863542678168477824563955300899845129363569479866102404385306292861179071699810909971637878533004200362224784850188347651836469305437932562610406584179768844788630985147844678667711297997919598311394217029309652175628541009208405729897863061435848672859247014471612226330292072810622654958751053577143067267233350193561344369615248782507887400151116817443447388504483246569523791734362077462185010038894806338406273746804621565350830628266461346349502233356516733707351680190890676706165218115459894464787891691236154310348754579980558911387128737641572396080863446701832549868036756955767378015191617951261117286455781601564424954335667528035677663825569380992134085533894183486626465374997664292847388859566867165387812811396679230147619556742849809035341075970198197859710406154438503896348818534240606385358471048076796450474082537897835413445216287835406469402667418282294792145113531034995238286379260040397109894214314407016985556097877404584784665382429114148551146507362581991900766439227281175264458697416772366654034505176683472596654718285337613156434512615338995125153377416544413982192088417809977388030497911466189985129960997761026831827402802773366321008689902295993839282230834795428944966738047024833486389255333427556405167593835140561941730028866491737982461365991603536000838345984982095146789360647931049020824272470905554461076637217268304421926013498011506037713564573333233445635089958541069998026112232930319198466987515459725123573973845227217642321063492942847007825192377379503765502807038768494072322417810872418654047268632167623711314549482823241817078153982938668372552554311343215985251603257713254613377253791343136600931203003540932609497103969414273495149752680575796122439420516911736919385631981779327352632147225505942741916449002493452405184918254269084813406023162831270163701037141174601484920896955258482034930138283683752743353290331158564711115240898122255234677282123814152671609732900091406540298636771588326424959181083558122993918476856519195972837551359687371826319935219611632267656396980845074750808963538452616736812653027621742586494399859876586494721080854172522469000258026586380663827881328430013802605752015892540196563814167860085156113241241972240477844322622520886374074138499762398528221493207469931402826055198078055234216099911385147294231597669704888894127070783801875197933141722746334209597905125601127674083993059022552436851460632005929891790651043356520771849128494995187744720653672761172927501553892174734948138276126087362800256740056115868991422515803828888200240025496038645431985198017532665589995834541966855803448085563661060819002125940042981877701634851805419362669331987697411946328142530031662560214047406991970396068707433891682506219504199214544695132288167501098274383462994193637119445348752596098400955570416040935571003114997787529568958989209182397595256080963966608954888978445145100624970004106531506648115538177171671287000776066998560754036789757866795513030855794923920751221995306270393406506193130955141415597342829967877984838132101622575855916520134918574366165467861066974653202567850096361919821022602010504690255247363081570705115769703306249158581738076439114541604989851964293801363403452304627406121639679572907976171024373311662508122481668094017632170547401430842314398621157625970641842315580575860521021399751786881779413176489388555655011463688865160985883591979550458900971808030842204112044877834726864190929457463694888480638027125592341541600725949473899401037804988958552698881764020157262303894826041537568230704521001051110573061322993369474675764167667883383864575681474932404134318720195946482478178098984069032192249584501265988913519382801875661837422657093510307945622337978861473275314633506168092366601032467794163201647417182816804196552326079999968067242466652091945254567665555606462473604239751306796929392705842188265660265528919475294832551522781199415877894728915758264548073748409731281035096028334151409479472831846470236196629060560982221490020358762428956136865459712915920077238991750976260620609245930031756799970622044906500536872704044964095105132854277587936139653707250864856527998404406028321954171128292094165250878056702935038141000226209930916489024498118119670438720703711790036680012774930289219367703014201776218426217496535029067762098874216138881559013782448001051527991724020848249771754248953901870537675844160598354903512298539754296098008143799116334009359030160658352208257032213642974504302708712814095299675994182830287645914838322920730607758028262004322938075008105883091776186520015682563019211230764369243683361093343928543853110727176817789002185110532738076712365217434963332235052118094562649125665550674218220640943565245434644483253337861783194786043243067183363297804650222388832202789090549808822785667505099741096633922606853732847541411929237370994747056409013559007136506577317862416410485220427239159626925064950212122032687589764441052123030619959429866789392334444663210472657469798609192806020965446173935908733338470652015627660943676577243149530665129474252396251369444100181422805376821487000289690369533439685745451694523154285876995723694877895050893527538648025009606845542103003794136226289736182621368777254482750035675625573734526014770141838014458190481136666674064015361263410422447836684025639960153845279270706451126648727479659671572848493089192639015226653668469401120147313094417534073497038041085139334390846706979836666331603020257106670293041863220838946144877339357567320499963075871473181275450124462776116919452152115049503446361342859765140831130679164144737973893926189950733100817751635447932551219827585253148743031477571626799245853220590271835504602923135537926122909028995800101011927808128263715172216582499086319869971559177347380403652220032202137033950494667152151041270360951866135621259520748356808491730304970752452722786917317575386569753732321678358254387764802844237938700675982180084235935820855546095852935814518551286798295099796247291948520184761496009513264468528860483583565372845349898760967379566291891125931026584680722125331626383428261407983879103375922841888163289294782486091568966726935692864408028394809998888748147299861384092244865543918567153530988411599257550957597411278515461152011236453383997274449294388765467051395162630777558530269389998604392014173989521765521326967838329842192008165851880823303874758568440857743752607727171530465203093838453590878455128492058128880470393868891583754995574957011764371075331314634407199616976195994513711795312919463685524906271100191265773982997491310669961357442830125783271157895251943354441535437508522828600263464611441740017575986874998804460343174685958232393826403308475998299909385547648021059386821036540197957240349606189615084417068387846064831406975222048629965083411650820085640975241763850827560921780499305839130346164361079055741640185376904657976276154352642165856139808771539323843147677039419906450634232415437356769209425088721774787135703654929803206824743968191502626191587164774094135358574496072640798114677908966742006550545866176548036087918188701985158439152640517695300874070469593969807944266042119720336326248315119726160801917742594723730985221858549013892919570709350547659430788979324488253516986195524249836852112817391328984073147423153686586735355808209012533496137593601538980873317485093765081620952005750894513143416778650372448312682038780396866884781824695149613787158341658935147083287996705903507499654449210253707378526319273640192102618889519304286698650204865131092017504015519254056930958118066513501185832998647599768343126124661046730488259224007724604313308998736538187775713271576345866881963896313873486965916715528967528430019541538164209340717874773175396912015656403566690687296876588864094076459220195126934265750995326364945598577276695578979520037866549687022778374466640535728654249649265659174391181971411142782696625874366555080107241065871640735966643508817513301581029678134365646293656536646188863314444399721261468663149836013767282628022316818750364469996524237813562627463561317983782482788136391328770281092992419405033007233984597964914961134061696145996849837932858011550855989806800274616096244318935036914214473282080762026493347868914313659315947564600887241909735331642503260442154304664494711293996721487028443733174763896263324246492832581155936464615897909189435080182985773883033960955260909126053104837163218972596114281953499811127242390238220579877427162436937013192823085516659832248118573549693353485469692427690504641037093058235967628233930196561008530431350861440948576455284821583778775287568390720419633978138692710342812442068201494127572383955016002912249179632480627239552733624426720411105628263789420237656293894869964670678204500936254712227463247386363511256295391197598784142550138602057150824903437011240593918150914782436927955246159961745104416691036162208188450950886028853350874918892747722101045181802130937155836044238270243573511500196151075786694500680542227240249634330925975751781045544747184729862287381220662940210966322777508374200556596726492281751017947916408106291794202467492896093918868026920134901473057473323781858511112651211915199562009292764987425064246117115104705190290001715072964042534869566455021270601361442370987279194530780402401019745704349425320747020207487759387405298727033752920967620644638771885928296805695996697580732802014012811115176063674081182890159748551016940814306788504000044316480038419133507800999525227867334196520209413386443380033476023190496841998508296269999627397200476985926752051413256846297070379719779147413521401004783339232689359046101975642699166011925939061314564492976379262205083370517796008763523065037564686984947859576782892645537926484008652275185503919972053144231959899226459481968416932674644971922124026316671810653426892106350692823417178204720374246456102206215434658920538178047324816118893958788356215829489283541216669776231942146881600415668812364724344831036586939992872360043998543685170750350626344175624679428693544970976910231874117805206321968465467910688802986287232001353401125552789066859065100979159686264288286999473241333145874199666178489137189118558452810354692664952014769581692911436024466556422983748372888188678770560988547228182024614824681685326603625100296939802859573071906380762435151201946390057524294888197867526215369684802407583955260213475733647481662971664381506749817875291952582659491680571090608747622395496893872311671886062148791801510879110538539571409387672906822217796166735539722744715443749891218518145744062030681950550143894041210067069272742611169163892119948040917149689971830731421890094265863868751519183130311052903275203308046175079827381032530653588774168691463303799094335044082260180075656149405509669460827921646644394881077977185138267946857882466223815349676919470978617994766236140212817783578683074319888129364345908581258839911492926144603887832015472712017931057473593243941564781522541985978806316331624918591537498198361676800686056343003553252300351125744376040894273209054558166660591822344074412377248828428332612094561293121621968420898768225741414338119934252951996086017906452843927621138595967829897767394632086022963709821620677239647248214365104277571133035999244869239118948723513743980052756123556050556706218014859292607484959642584769892790619252785870912516023687995704076462216296712220654892811935756820549978954680046116666496191194078723891570318229684325094625268230096299852317851465609864613076665711516240045125389672490329686965007798610068884114491360459786915428165514118305705754267692439276816392314549278042147230314984828301434993518109973489241052567892202888980617446106258802711099331680515586868165385394813273655499967573444180788719715166712168872089251189223204334183508936671321831502520046122024671480683676284574345145748578314307825062550134954282117359532717401608174519313952870356611564207902300921253042946534104646362602065908008929188477515150329015056285003977459376908543224859384592004764618789892785132648843681231231944139651200003086897997481625867711509062576920031511065708744714215930192479489902215545381576987722559211948236965633801582129588243399907166058183748588364867680132738431499983336354988011644408436427684316019944291768628418762932369467482882171567593082679051096453961073040891526037884750610606160004406409802862245972913506077121124725575377418138417613148614106815007299392058747644385642396357805281158515475520499383432037824354342866166226207971195924430895117339510271800997642267560648660312781957198080279172805974151877590214634478089763733462278904090394387788397416171864516288654244369290553499709805718257119267407456021955696688854141549275191816645070286825343179129295317925957903690394011092183355660553065604957654638827949488972872288188364979801399078267348393640017494293589320589675139518743572990123184213272586971525891915830718776042086102930064881978538395710943779658356461576518620249491506473027130566261535500526984786529826628586549776373142612301846714130960592355579633809112943618656426549533439824443062702097013815258187054442810440534857185439596248581105710751253125388420216259982698652021379977020539729149614053440723996317227112684585274715114555423355727227082036572067367733396167192450339321227269564897911965994610644907970629621262992450526902975801300457632128539205322439681765230518188375993435448377303668640809348912833649367967923194606398164634914352055749805665784980259682014807779987527435355631976293499953949890474469125443630601678798842738242825818032829393374127833867981710285504394280395106935470226272609385389674626974453545967233644090800078370427626591582346645958436061874522625535571431342543074100754687556696028575223137978947194430554000868529407364910628183320992281531003024464639362731827548638944303130596001662815365397834455874465649871949808968454859104557953850095631796375326973841281384193072382333652582769776319482532355541023577727836360425702397421661728480986469280505515123550626661693099330565832345632518828382438878131856913123341354638708342843238401160452335448516757163090117915425231189667381582133263378362924069620642228135575701966949721059842463785592726506495705963794692187226509019178369915062485553335068742838576574544605869151249566344743121049822490591166102765079641420766296874064411713764852928810602408338717963876721867630456434124379485135754477170066449779943228855793248080012512494129791969140820362956332075136426069706768295385707863345259753546692066741580808677432203548199726345086878299752150130934306998035425639759426955336181544909130954954841259810128029634436908218667224379770752958670351084981000123183574531468103949675965415219846214315597671605129230268102194991329746513840056721800374202732937078926974405053900919760999942852968629281558998733285975984295351234798786621913362328554384786261298707699174214429338894233708687535570845110626621301124999370487503123132832213550290636237400392177278237428164585230988172522296649253397418412713529245363010337569080854969563202459318361518656695222273876100809193748418596006872789512421636709140632454078613066352081814027712514911528599941008695658476689333882286059435677358568325996283158552903908058467502903641143228928450691044416289689695985142015786703202079476073887927575358461219698357197187881338840790571789186289968641631721671691499691222598989673637845554582655063097078959788716504710480525922147118029630064032889903094735923191175494871337084247294499601596632039519884630055930039534927959740102477621023439749466198769913825752712778747398769435489850667750612302274020881066726690238405288464848241511961291288294017045656585895181044181464423941531165505085532225300510199377177313580461431433722373692879817494438709818344753246008293540847456568715925965359033513761225570339604995989945226859257402293901761405630942360899447776449351682991527090981519570413647846360515128688819027375894969174473934337892162933385131885278357799794512261273547377915851302008206890611551706503412416402765578822555118645089356859995608145028810036072375505743406888112386118522707528837267966226040150544344850758879318746428378723003021169034163461407168848671090366488727520902083724889877733422247791453743118319162331848441834677080680961884275875256985553075787967307879427011247346594037382358126855238137770185871841263685851933127573634281785551736464047776122490214821507914871696076375008143054020464961084932524556632152668437424249455982817437602198896437718494267208435287584623069999571061699981054174970290478788922239881023923510141639349084115493539442265188859731316823828986199112575826326950624383355163619406969124256003339153362693337455430023119093285938207336019106220786043926581555960006662889422153997694445703519809695249941438288990672486700862702550771370886989872096534398206201234269988458513126506832295898744141316474415019642746677757349484794792237633801742989056724164341785077928177561694924490297759090484342752154747154491438241098506076044039378475592889548105212350829379966928149959413966707043853816334471156156816965038946801985866952547605961891746895135830012158889924298775021967522865000439685996192228083520693557325500198673095279629798829065638672571719674723038995497105006409811776050624065033603387358571236735051331003898659450838702086341651075831500163364813872145355125168931986482227519980542622154535657230151408824288021487472559343487199018595659562253183447053281769829472250974888579958056314864334354668297259187639813897562963570520439958750927873905681431188796248591406949243388774499076810158506597934261588178743563307375773805477465264340932591932841121250760691109488325150485886296565290389222961906076265115088350476163270162077690066974108057076845412960064641011773254982977869447176116707426507118955997632722960996538932037173240779966955227529059445431033630424719019819572578912688750552400117168879421158712093413363402651913889585545895022025456373481245836864772017158756889753894797738282750645351506732368818053157362711183827293921388514390783432611851781066631702296604851029413367542515227872037846325156377329329845091499399930564530020120304987939876395977941240967367834966434555394693278037213665359077319920760819385800825429097597971942162767299917695419014199500081948176837763662618582543469244545893070011394424185851784576358290712763302716592854472394433093678344004341602662423560925158249537684368056443178258140377649168996359860123011423729164047083292389918607343575810936659714989171340876262402855578918188127008074485213439822112989576083175258586571729395233854163630094385704109534880693893584223818789222278631968928791371387773652092056222513450813942767438786844278171911547659977064186840783858682310760887527736938767136721768946444651205541582709846956979963176448182344109228979121333848944931490367076615240962400826888100847250899595657162717656931649728311325514136170298839477576502138970673461352727377980623352389655011815634702993034058730904255108336805448042588517617035052185272667580972770503616840049678342427241354579499902081702463936041138254498115871452040317096290226947268940008226540450970618492123856062783066959462153204999669969902759704815786029745157944759792624214639135461945838623765251817986511160875842127660951576487460117245924476058337937442375191390835599956725316154307462726269827665816334103336579192671441016118936038676189895506084336523614689145164331767391848442905779377792425261340513359573573726725450680420608560748004678680761558601508103133900604941044039028326592819957633724130733629823540250685320727499771099488445414988817893434488406415013719145194265335081179670203622606646896556263636251833430337394236479494244804799740192845429766575278662323624658472544531176889944176449397340205880891939610519625693018077835451859901327116661062011980008568539849066481692651225608516640584866030084371249145703789803020423882500262315869202704317276218258963778448901592019240780137586633865849726557307260003213530983290033267782611765628641626555067028554357691896969658894818233723511120823343321027587339438904015572260530243766301854063097750954804034964334775498088787653474509817575512937950104339973380339515575187691018292069039278133734031271516616987765005881252521985886550800647459971508366138408425740700805417170234610719081159045740264667275768511063073016960452219068584767267638237187337257885541192074541417115992092285376003473321602273996251204330728020244543072427945839986595368852431502758081652327006018583810142250334831220952032210174037069160401424104383605316305308552195710919011180275891811855122405768046170257578466641808193820539583262490417923209853081300670290280692453216483348972537818791183024217425119271542713021960367548955305973783566024936808548508606269017123515712255943846703534836731882256501862068271118525879507701595974608954471158129383572242201942266940073690706675390552609320372850976021503355159479154477032806932028452273056402329095372794771341982447602697293347465412795989903129323003959659120875556361282577559622224406920613319750252283252623308851056631615710371106558602000024845426244210436674398037739951923515634720404037406549069199152363081025777681540322278523885578263292681060902528369137954896170161810156929868950015534527677321922593592691738716743101031626129566120402173692421397302396648894958208083495275264541765060680045648486250535497720401455238614863738580480623401499605031084014071933353102707215969520608654839782182232463296161011294019957782753577892617307829346612304102393769767229323311401143450621053312655906920556112862695516572793984945162778543482511113581170631444806145395503255424691722193919221533312031084429757107420302440841206765546910187781823047863938085280448306590021695243432394623078571372964230125471768449531914767854389406649544414628180050589794936766236672728539486360785817578343386681897749382530020441875921744104349474485239920564282826122501872015069384411278543903043805570302519350438753781936432576433417261047835410350765403021580224876730757603706358177249896382086816639615797630038497241712090013255264432375721175779746748410242208396527214535126245801776494983699585590222945871334298113447828341729141211910257371244358355380406945877692456296349982807268032546284155038284855394836164233856839296376073434034158185171009513313637092647097197146786889985297750996444432072928204442418425092950256565041247844974558493651197579833613045623389837311818540944102753472068412407993732596563869582074727112781081192924502291629041579102822776416035391413508890230880951828242240735138961131545833419423473455192232764245060353673665544822972794296716480964391951567224996247524699713477658411206742522327572991150060343177651771544402362508405861804487645530325784692476822943588682725966308430970740210766109146801352310574109764067125594596715338832322411871116181429788893933716665314182132392754607748189568369588298157942200276340442192931922892521266060929005482951276272235083661398780471573152855718406593199500487489022171616074078203356321256295792978076719079129054066116667904529502870474761613339434420213992162494611373815438773162534927977938749066742654071676718417183063911740269492078248722174903200020085576997704895284540761711061257582658276267199622369104886969656777604016371507148872736152605473959245970242437069760822625912255791632399835780075431483234484480240894349709679700390496022942456459804191263011868091474999048508991303784225493044311787038776684150188588077425188535028526582167182308805016806894398201711051943091897005575406127815786225850933283967403432679838432079228457633753670316981692817502749600676385901934758790587289137161125504345275252341756250214761474264041497013610890013801104128584726902098225040088930881235605695313116037729766210155976385950755850739081269442315907294799785577287378806242842616223388886198937001678946191591526388202472493542723694699606293214011552268045464994705152339318894147368109348655468182346688342650671403117700559489443551044689696742562991391657716183482603825012177638447450256303954000322964176296350622845019883458334796802929423229345451651501662805207170243607928029388877869614002512564325209392558276920742289037810715741594266156635409147809297313822832725750743720770091254279742828418487771938658190821930656101523999997479548290885275697769997102494878995330996300574454120519005131323614471707486216178923501136397033316364352597295138632984144319515402633966538161909908923617436259335119166573876753480097952542368318158033455927044353164662483078240354663934237598835475106731867837613688711298879776746992002449622944456752211417157112128953609684552340182374151306618585603375419946838025423018122578539851357614908403376375547693527441160896524626011199670905321028523770617970272935433420961134988542068279047868298475316165234316362456489974101745077853500827824682713747596250314227658735235162189784829454577385440039777117543396601423347459764904113326641850240634850886708060309691658953355529959145795786337437310242286941542828040468840423648758142089025468565041258512322917352901528278297746826735855228043374740253466411923724315567042706200990129680869808805607486027571106880561798472919968938960973840334459365108113855389475416252752216437155286586914462451323670690316268390799763183635866951221747726463034243868250740945641287730026217408556120677136866373492876642438732183026685255068178933197211186517446880578063545637274154076250501120445197687169541053212182650297427720700424890325832241500093516672693910370345975550665768976277211225505090926907524788953111256559669092023914479400016153152654562443005406658910081149204880336195867540148508430635273066034002744829725098959718669048547194976511372367071897222380066774731957715868967732792428408620884801139014244437193406378813579847432641921925040918856368622738159014371030399868749651473272017036947004558498694114456739073686506177209739903213884775591083589772418699673554685503926972964455883781244317062163442265635062586678497850648638858486491349232367807745997402648023905731551361525414156931721453376856973176193723283325355652238054193095307231709347778576884493904505002791250387332501844486762344774902123122119485033334008602382618722673219897134967687429535666193379963705980591876454458685699346654502250218566220019937887494391058495244843751329520795888175027274226267718345928645090103056832766224610314344595809052423985866502192546474450047184714061282942040563414184192942434265640723309353065767952865584737109418381446180090691871356196544539864402863671148516444362558158524309449672195503631318961044022796710696925327965737879679577741344861490270560605304550613547199736210129831520876093648826694451029340333506434271049246628086407607394550311246208255957100653107918413718955403016409203731973876292611644776081602736432331360422673298070718222977721781793598762333188609172668462985302338399650576956879384878624244994319329403836776109370819193366797694639344918052347009529798379799268497758411750714770418345363308773422230389430662396228767480218481842990973461196501319275563278437600121763032405652885772457193429606184435314748893130671810435327990392137168975533019071983945121268210232464387413408310418724099744213744583975217080690089342994609693218177438100952040718708131614201091806538478960630843934572155603250042454297386502833601055603327081276769251141549101067272544179665727689449900724103857090228673132613256243978144309439669445953004312289682837347110249419020130843219413342635243010806711847567203149031985346078074248246180902220014668501922133040074341227312911674521452761968717577842410222114358382744799310948353993947785224657261748242866356632648858432921245983596468490297512533759518421423133470188785474436864735435503656720028617150454735680209597839860680247792323398034034010792311428313337355323823362658686083689380639718490801506471413721757779200856380527420981808347873995803926828149476577771379012917240019854869179906872441227906047056298114438001241929322686425506183342010251805473494942949347957322849895044352291456947431668667251453753608196285970340818446256595808299773070721577220446148890560452365690840698509535581367108513909220738833855974036609145918178975942424757818618006956695723788668097008426341172492420037704373856882154067679857468696410164772025716003301711409317213664445016012974029720334745233184278177257101580809096538755451997675465416051525544072051775692863688422782256553932181549576974595731910077234582163994315946206934700172915891907047218559445898739688749128589712849948771494542491165706295921488128061546866394498365531945035716966137914546939539274262737477327257986700767605595398130967425804391749518069705358813629862793565998135448820117278358953063222599983019521687732377494105280057807882613105066175524983270537829559110298343701708917520593868864826427607134751456197553564468416631469393709558030818582480144280368066546322142779831603549979806711849140775478476753325810146346679844807095619989936905674681370064540513022345633623513460508757364678574794001481467957535542005721459802014195798384803167646577938925195313886862880791963120478002966742309633472820034357026823901522385212925916253793281764582635412295823128627495008446711817506933229412148485140125380713962759851985023943713278568325300873268415925108485344301205524239423486761184762035594949631687998544143137006265186911411469144217538135688580114143731118340795501899206297734709970770991168936828008535663478662238949122558400539852062826956772281021607923039175061549554197232278166217634234995540250226164591981659019599005991924575520059479826036437291219430755632617527611285570349706722436440257150603169700637479772399301148961897860552680289482625680870803402606962011810525390819836113152382338844248932709988174637581455413338108253412107248186305231566982262846583464845537089615977204935143608327480273643794002479560418497441913141388347599265076002067156622493187716408808187412406574109645809742112151140159881289549622319916987769035755308025738288073767607139521699137042527803565551711125824447509290627077165335339726578225142712728883942580922778709309307759093812854176406789131643052842019854288663890717108706513983380393573548140993668059271158071952175607760335684060559990787312674358940961350121805028181017341743067488577790173230183153888893333216461901438472193701451343487066394853473802050690809669674644322578750097516289324219870684300031368476482537660076839075890262286370358718706705060543589819065616775472085033502223434631667684965745847207298645506396836965926682863623020196762360947354197929170682233316772295645112925433596671242191325204899324233991146828351597439378652901177391268417963801734385089943003948932920210430767772273975920822677652872348546743414500940386558987420576702472901113028374683531065374426221039949199276354725224120321795518047380974861629110732429720344736070686568405418508581209667935286067469380979561289805949027646286861977422346088712619209077944562800957939612235981322455806343537846303999343667922182702003324020528552461244450650441432290101237397455093013814140840312428517338840740719251243966880637400486087069434202166193502825542379213167505759424885091860185314463817324998825626009779558866468967549768376302794740504555105445639072364619616124207830949632121490653732150450666574778588164582187728689024420452773999537717181157261188153456250662932826005109266521300510719695056902848706521156177012278134983447278086643669903596374707762828212129888145663292977168561849537997512935997691079884159513040281333793961275397095665437807697308220803965954165943727199962735713546140756154443193717792137345856322281959781764440450455935561626019961833080809308991982540583566674541418530019710526903990179306357250259943941990969647178482520838338068622266916183764199857300687673961422458070425391132021852421370351835065170278146240177621970565063073279063760562144096564055452571752055075419632092506259620743725684789802377795617393089608438472283617838395138971379435499272844343299353290820977726503414072359858514329583994593500920626318255257313755480886796787954649302964045081313150384227603389795321823013915057831755155905740208678178738081936239542268340996736434839482922078049233425636442234243472688577006071076061052698411678611630823662250968715279218060798824265203401755634369428079417604742842682038836449829729180506333640408630981102039771409756124111882303424787558309186428409921632904801721148693378976801781976046828150292984908654853439463217059289299127347183406290680046420200037544212787151816162463283733288785657237607010630514032877622441454060191654038341315327870101281621469682078393033814479515186255423719652147978616604957456295357897228097831298778955175863533690817142657794089613711046144614795675324266173316013507102331084666907436178444811782214190601050396399892962386121875530811065840305472799326062457789194912401774464804659313820220219666246572388898071450026217657882138965146441831958428941018959157304742668356312413131069336530227260823217301293586494921051445461576255590070922972691886650149084565111430719209541152340038425116101857653273211076387080783449160187837232964368973054606793864996471348737611962447382803635661549013861991800757804919324546291771949162904439247417588037440317694389290425544886544452203631783226191257348955631423965534559587300626368674849442487027483764303143986073466632223021779083891827485710628092387980390239057156599261465238086316872625435755002159319594181317844611413917399131550874741193314828310785492045759218047170783000799385485535799153037473456056587941699217907277866310036175811128200318745284598041184500985804165232890701796372478326562838078530271821441010240022631255662113242368295201448983131635082807908054567796652356575551796604164343222537551085051976714475144108735124669207241298265768671929219665391797683825433904783760765632349914404077234816665091706096922731119871471779786104416862581279425039499500677819334329237113455623316445826889685427152639172286608610533541366712890256903581988545109320128736783569014554306519614775998979181993973487636148730207252715506040602127925780483033874712278338687719667760880134062824205665464953538735529562815804249680518278764629793653682469969803066499573928462761552679676790177127860910987474865056659261110260629413090498900961481006361994374445366501273655536477396803103581522402212830086280083866116169142943479846251018079585933065836990951920709870611119024964204419907994545711036279998335519748148717721974880829222462095172012969003094423965845722144356109281729047006804836177610884392735384719815696488810591927850086246004332986042924337959956467661643910636183023182174365973152038172447535619591127085847806915561134139360613203124637963065282222451182269438064402711393381980063952780054124645861873389667425146792938702223807275207126228120189061156368109304438041483893326343171847258072264776505295370994884026124988681924368222298695802973590224663439168021696908939806573794412621312019023051338163176530375494916898090412627568854102960848968387658977400863941047590510974828260499950324212345611558479210810033630584319013168432732853261717139557615507626448353643897126459492903575406433491831603060320649517810605510909838715419069891074205090095437823049018350618283420276258157356058237960119590785145635392745671994744153544580384842174445211554491162150974961722254334280187159050008878543571012552243755746719442666528421334393903645175087679541606809844577076149132485943398462858177003531353603985494249143732277902677522640173671409885512281422463249504535171942503821114852750100764500858601277068905709697733794499199110960709887584579544866816158302730378277443983323755499378181294731535303971635509571362753833889252513246379677794519783860558236106257372568434020992225106028835411479055153835801312515493469194583025523276621517549120510475874623936384700671649534950350535413347804421684389252496357548561255320036281603107159377979463590612650479087984030141847518275582365734159787310363452540626724653799289970479786732076412965517681753266356600134832678853224354306519238647330751312854226776320077682535109809094909491634300644741505851685439348277855910377802237410374554575692785373551071642698430287654438018047234886297232900676722002813636550021904862156172605609866509491570656922659046469566268790571273187527044669474405468588254392319495139433707178510733262281377525774994096263995290926606369272959211183035830460402446361009348421414740262135951634212226375756772741914473961610209112581882742504716860625454868078174610140004106361499849060245926806855211666486271896663499268581771950517463586888387831757282407934965491498601241346363182736315371508323868784130704044124933127310936889773817358404994997356925337830284101163235427419266347125866003829589908133197183608323102607691663336561340026053956002448772312661473257967200180568924554086435858518194322981357007059004984441414939833056026364217300364710584807756104583321859353485023829551392122776593713639467958115179146612252537702199247234053416315055688207755361499404544272378284385861328471380327378498755155910396852244163475001503737315437971818880938190196063308639866859988796431100362588302428678502750419375901522437221148298980207506239200709561659514015166845378206852753191503601514877611805817964483711493952879494559981186200137303181947615547211719617412911827705363003495808079589428735000216323275955832509979733375380809788963439787113234576709837309177573380037210404585882488181536516682412544901682057006967633204843658227877409896480319948405730557128968794253105689804580620156424279680981417202294688704721106194155117627382488631912905217556056405841850736264315500613199586794420818656493605082912200992731275572326590011906758788462242222951089473064876356097666651177998050133322297191992439095935718154094214459709678134954601354523972389555132713885885837594777104528808657410030438322719687073927185259740490045777065290181393328247685986226684112946932795143572382507402864729997853048633222350251715952354194255047840920766623616584049108916394057527414924263706442137575195291879429019496303081625546895087976129643526223746040272650375945256907268138192123484320886713441983990339267374065312297604987346894937876966054446439918477718220623937993733942708853122274069854856488274917279662388827699992628444638690120596839767294494706411880593797344332742843485168445345797591547067422731542356576677701456579449330311551636850510014813839285322210887069393366781044545896933280009224417512340249243407792070307703472580549314389369075335565150051901130599052881065453255994610580537701976138426471806347401061560966799456928617296749384591592103311162507176207882813155980671010708308489305856811914916252779628347715631297809846746461990537665072416078087480664336495715789651502279660352683859101528659754929568635060245363500908093647602585401155055088456984865312325451730375733179265187608537917566514038921431803047183360441294646011807485355629118964322092195019115636623940597293501084990370342230270994089824059194429893116479452751054268591748598379967885666305464228912658014407222389216340837222652574764547456168003290777868614634090825365893216588009156357276163069025973006134561146757317930080900540545873639876265969643907147267306529260403999618830505532747930938374326039670609620676364002214684131020885149576567069198347180277598211091852785313876296902567549050159121865091449730088824544698527282501317214578096166351707951048415279808409271165249497658865894938054907718339873148656220421131425462439061847277093007535600882387827656090085837147014290037405444239452039554665800334844517655434011572887274334942329908991422670512162938134877349701510619050152577568167612930126800118619547373390611383124852620208789094234739106146514145735425591719228693112730488119349924959178892422888361168657190280326098522999041467944681852703938173835073392903919389132664470851333415153580857611196933199193472862532474313280955806816533996590299081642531672262848393713407369950513478124927119690131868838256038493050782128033447158443878706608515713833697965638131047221597708597880893398114015991026230853554986699155209489907061016647379400413044639158457028340309852517765227500737177777428268747497579806340962194147974688003804799085988329497633953755954737728115965926373335451277756369516720637155502830422950731600237537556757756922063571341330223552442957624417680127510591395269666933872348653130358118196801014089093148308418632218389330677376978078472038488491331842967879996843411713204982546486874010189336378800064704867489231510067528762798835682126740928304103433435667622406075498267324785623121407071096137494674055045843779725892673119210848048001104628653129771037789942217890503091498373887622761381392259061687514485130261960284175368245989651961413297753478417980818297112531593406894553139107242523948670200307545281937167639218426985865968825301446945880911655220956078593236363091672803370206053920982908510324306448555132840964133466986642707390731928743291666987477481799013388881969918170311140995581406433673590802124064547378318871402252975968066817783424279899870992271226270350967820540982589256075047287234679339753220087231744610362840196613542053327869666585243095274904115995534753607496561064404309155579232988558850276212256307997562469008821454673032808431116913783902842884825367753471265031385348920311551086820834667868368128257132536655660917205696103625413681805068762126775930003902518171226016339689051478202704011572342823098466080496429188355596801291334709152990822735246223664176122120318620100008540399388236314521243530333124022352563896619952374816225820424203275662172998274899383121849498985880615261082695820544126813316801916301725078931705216967992414079771274613477456870823672611105100501926865007746839459490241514364375372810916031348639901507240975540858138820441310705241327529715899189650464708247378890263853288965714489813289705510854918299497037223601518798560471442388148035182824726431000196033031771349270944973527505111228851010082795446173152678632095241765212064050156904079862894009564018606512364127152719638884194799915108500582459132940226277340338500335281315660900514763682454175118091071077627859185512958606730419308926854052740780193912759852715117857721641340151324264737907621520194079543336959912522297668140522223017071602080810806929692732468460877373777826731700506059973519282250828054110218611433120429135111312187660525568435456946246884699920104201881508885298649124027771457893381976129072067186861264773240434781287009679300499112467290023433131438307706836886023522701489783724757044037755888115116191715229941862131452779461510892331753194834941240263938037043542131730432570908471423980311261001623805734526698147447096170221231865941764917999579402920918774874099776513776283462166888042142086643151539629893127707561817282684459411134241074072108506943024617924409323068483738507752081388947054983787691868502447961272255913847588014327599029627003648873434815654750407531095226012074609484234352448345783358624271095981808758839324443565946522103652826424320011541260638299777512352837925213478080795877006436650314321669436203696869987156116733986898356857027213781356865604107137692769569612282192744847345390101022308833928373629561177706884447562789821304210779888809037733731002674024962319697871387212017040631852976533439441932947517960685716556612634587059388609664309459823963939710626339420764518134102108970806921476598948341926209626291499823332216246348730994167120832113974994437059755932739133387539292655423840812316655881693669103895807251050780903122733043952276597214074094973764297939362501049455336831078194819743698103667666966212716648700171653157189158972823967577433409997465237566691666771503901330048832198454802114039737029369866814482842771862846042851605824516504138795725464789934279857112583588909397708864381419875503096875242344681071639514393064190545838166988237735379537349009023976238013124569232503668418324312928719180531527822826582053781243075563819484824558101573800817179945643077257833216537376739573961303149444184985484146340689698096468299841990103860291883216732353543561362737334292642308478069400399407039172502223068109277814392980694368951159988541851469483997745478565074194771095869502469058192683148223755276153213215403154126873456769738699955336733967769401349900198500858427556287799446691815406477543679732920039130309740254888418918004656377739187425332574896945574454450753723078555042510052157495174283669367447223704129863639453760892928570599439374885541980947977398842473346774226204266479139719391941744108359547292335267584577573896050266137048966667494504349292227695403439670649391019990489061312598599257530429052606171363168246660564853120082606440587450901233595053889429706983013828571919103256856837259209682624666847959807397730444911301288100021329637996850816132360730502169584134823465302247309918851556482753604394741095686156335748131407022378385132131073859632193425320948917905483421309912524692506493851144871421499235061845264973728419258685493026686914229019514735892847524869124547616966292398402462924526080672649806922006116476314518496135400563831268410693164952501130542675683503645117405291269302363343809813310875887475193765466636962751736514080918673452892302694793492435788034812009511503380624152664020411304670574744876289169797399758472509078367788293140519140152243135965789973230712872391404920688038847230140201694697567463309868149645810104956712889081186153350732727309016157426409573714381749070804977699376998495073981905321435717221680090368059778028477604842599889665637285202084083853768151746674661367080942232634114055331592466336965212284854334443506980550714498036135035871757328481781408953880602576050661635641008166318964017233151256604731932217652910536612002608206723074695373744281183781463558145738670047196732975412583491144350574697732853123086466076387943978126307676160162764739296671049607702577554300955861265052360186896256348310776172562161985899254360487874665572712389372847933056909299081325470995692326578625013049147814884792886020695832294709146379358560605431163094561388842350244338120510261533799804792577744078430994206720318376949463099925014237066607336878408890093643986611048806607069557892516533712115128367486528297962815808077973803215700844123949799398907571106649585131586789766676857067869395646618322487282687244478966954061243539223173151417015776959443734710498011103581878681408028475595609692843358743974746622179273441875915806325819303914461591028963190578318959928984251482772335209027516650320221866686554704925525722959193376998971445999636761206221998903950771008027118295245728122959372255366677585786097203618039513705749768386544526144580271402052738804225819071070261727300276377771503927014621145198034962167227690946034092110769969942001759120784377090194368144562307107694891473056692425749411303888451190132239341409910688435411557836402822472051373773963321784944344909455971204241564139588327352814625746955642307234445806181192503022317568534474270053520194286280977733849368660297032278943475242384182221365604841626175110500692690360762468974048403375211333880368522012882999189943065651953876189148350393127606570814496572018768815078508827337543631090826491245086029838077687768358468239837711412094228685775138267033147962471436904670971818984419882787944805533414114074962843002983664124091514896186326349539597096221452681967400416964561624431664622982546579549911421847524309601261159255734249538651270731496086768183336213934148860281303594303554660834297075100146348716830251731753038622823118346789363077959049104625366896722759870997362972181505742431846585426843447643941422264808332393950610212872445513822344319458768197958069474649157165348500884074474807503809556188293224245997378413251638605872527713363417650263221798074929117909435532060557473264069139353176765439989961410123037270638229251309704820257461380096980961452775148152915344933564882269034529811706751523102612951470806453757130387729892921688788196284996717927642347451115640365875617008882173911645127833202978991901203401430159625199200312434628756126625805087400365845089881769681724871592565534896480985818757865035873628252699637476138753900025766300652387712197754785406400043402937293651673794297120942760325421569337895051547409321058872468665301238368083655010579922223851077101774825514802453583631054390368005185196607909391031595414463413482287881726358638544406327553404699573240231023864556055164074405306566812845390443683207988409695472547696621910737561746578144149553591331352525590179438124269028461253305754074462889179600916714124459176837200678751023686197660356695066849240356953677869816346580933111436899019038440772376755264883749707897559749320115131126517075313038659701686407969014301074508630271412385741533877189922657987368290794143149625563092192359589072826172208927596748857850679328509429596594391300241540430883874594673450072987253473805699726598953384652357578311630763744145522896655043811372742437921233834292328491212249937150005501904583811276172491989512635961376801476663537523181538871897608450406591363373030303776474106123963014233526624264354622641045789290912767752004742415652040772779870498977093934471450753785042658087547761753534411987940545697702244905413802547815611372906994090543322160741972840249545378077692753090686368795374706802267122227755958160580116890469812232164789213633601986624087147214407021626075324549940236908726846912537224222240963061124852155504065122472612730660037369732373873588006368278237858931659157721503934583707318893542006076398312686276709123136178165849064146449804384538323551293569807136588132501958022855956097981806943728278507980732925855601448727047938298090284977464721730673831052028212191075061032708441994466772135594775085380564844955848310408970751967637392378631155956393716096602863231546042761024580750248537025185876220402989651545904918555232794509102130209096361731145030787738157327682848632859998253325860863717040270046211635550088054077383448940186622222313870599427395317946916606303423960953753044971833954481112656300232216463396567000134202965700144891360917386152174447181803872351412999184886809505674285401620809663776944747362138814092745626641709979223564255563316515134188487543927520199601338410816727998443692064269445807152951931204403925151537554771407107300046437368247430283763007580140460757996341258465433721987868169710527180116233645394402234481443564320705610616439347298949765875623669743132358206971339936318718423055263373354226642173597646579495695557559321659663189828848089599018330404659157297624086676185212028740094308230701654395428548491438846042398263072489679230635056325722351164767581098301852205214446184802464296086446932536919667566316565265145687473038526622850011864186287714203098984061460234393454594480831976438013829355655348852116708441476142911481265000082279953888958962426213645830129997760565829555464875806706844468335959423807456315450594673763443416681326880626324981880381257282445766614364499034517588881165901779585803034322341794979086344900908517342546386318572281672889816995795099605477021247061689084171233389243802202216537755736552202449417804136478775739276435810375671899916068271322671044895186539597812237326393480128917394584353945855983011270011946951731152493128491638879480980888187677293231003480972077404436136690407850437429283763726118908594158062370050096197721989620794507582650213078772387758251451667757288468316789933905678069954479132615646680622500205524491249004189793444346054837998948333507335599036407887535123409505625948296578971502000189423014309199298943244788487908240291599972211489051392967191530864692577754045037489207398752599723944052806385049306213019500058731802965235303473472141856416785124593802564326248578323650201397611885528764291528793007018490765060990283821944728926928428533004010088037381506744259173736644668665211753788723157432515863203044486132602251894927617842199514374190344800812258500140348244428308680347799792472306599372743181831188608039415394071368614042317635041221453270547062865182937011937483022187102688232009592926703508329108130179556054857412150701131437260307740274194188143125670537370419185428065644210086435755058023295320610112991910633707697499186138756471126669319706045929447252571959697852227185589188793162604871605859874945602439410073523749059529452105831183834958277000227834777287774603712130393079571512145206806263498053463410029797922762332668499224184848040053079225465255500501578494572422759574148136153176397076585315113323873926726520008307728937305489120843664474590195292534399302015333626047821782209858936526837025829768727454475666290514719090015410275097573806951408068848302665236379627795952309984484970042632522149279875647207509338805244826307628789811563611923175571887488689306204043959401337004384713888111069730549165856066968784513011753093521792603763914297650004025248139892343438512295787066692414184237240314421740304354367856137578061636381964386596168878167911076726150301739617905928501457442005914531233480274125252031620045022364870635931444955063364449032156932567276912595280120205691326824676564062819894967095858134391038946240667800856836310408534622547812076266337490287184947816500073219756799548346882821891576788388079696838464101093438250314766768590234804364269565493261031535403239236368937143246311109613204059135943547276201920046538216299201675419220745582182908953710480582420763782428670035063836980902763597702301520470442456480506966393765029995885198574356590258619712001305073886184990184983454298827966867519598360189774918033585261427003820171915167764433926462618738962861267909126724456220138341622583556982482380159982611463067374769229004462302460889551061264761555155231959537183632488030904626433247418020784760931761230204432475202091930235847066907955049047498957721315267710766169369268732006495851176616930452326232757440247434494563377812637670041865360422278400694584636802837376767419549016211530954178866303806995603818719439000022728131589970114072326693746446408589663126405549921741355741561253226297611941371227169238434333914308061227757423568970773694289122782298970382251093763268243933411866678704319688763987505688057489836558962595432400037891968503576647433017179806515021493292817090544028082015819049148786347006837879891713898957245765471772166775755610886254143400441456664820982210309428112617916003030915631471473774706230902696596462496667901954078802731719655280116382704670030741944838287574810399765433388641856920996773380340240628406113706878952403648711128873074140762287523000162291769346920116816843691521477719571470793545262239070281553028329211436527202754132791849575028768853281575037969396580962062423431938464917086092110708250428346940238473882989788399126538635172991281000363516989022270898706691040570393585249626272595086740692757480588833144911207190262942687969258355503135764612916513938044706565864066312893576746459922662465417781633311613269729069925047200916158839098683446392467124968621146094527183561847676753252455420996196242228730328002149206267195011890014754286475020093267280625555321297926677657710533543724620160108880173223842573544426104057055422677422743643280526061278287693754142541180576251366069739744955003155240050077502816270960691713864874330876355319938296002214899013491876225621921845631097395166017509886697339937694870700672935967493311611517614619684482034572460364968374718429817581161163248800232482903638958080666960085951670839432932144664036617096659609399182751037831920376629681806126366328215654200637520462374110500944925590974264738096865484011716603078018837998912400090870577319707724921807540721168335748696563924705316741779571799367721471881998702711671045572974709069986075306062738623910168760991636626403948352392299955609966333168864334146871325689456164962307191564850267022051437026060241460215157995789982755924244206325031880719324929744240605854411771535373722241258029666255344766498929037323363092754882952036929612143333834889601290827968222152380645938843377902274108765305265427574016522196709279130458210984883233354471131554854298339005173570114645905623461581811128292546465688072297715157764004025946853532557197595672427045392833349641487527398586259358348032852935799666001381131040876783183205297866251249995700413537167552811163353342734117705183245219887243606089588679100916769188615551677300926945630555657369242444763890250266101952245251056227313604999942470442004004785487932410794789570655450432039030131551944875739169190539557557509519780698002139604470342702154918014835812797292187034276771005553823084984169856127102700482973093362495255231038742383283206776687430305562196395403728160734878393782637435607608791969592881607997666959513331562890362112031924283711812901929763932194563910508159011090060534916477623246042468702195141273174489891084171168869700376798164911233499492513634566395110420317828891063927281294863999455761743623206703276653499194401627655627270049754945275186873858065533647722533487186808947820930139610216456466720528256890525073431318235168573765872962826278268829713062099225161342789560905109595444959499788999346670758791487201305101918123480219776507591503062660916179793038140912497346085471656516239632248643956435305948546143778608816653493390618370972245247752489315911262834714880793250427253302609185226706086513100036701938886231686449890388132213922329447782901874591027859443461674008721851137246013792449279198678661479031538535219745616977960355387822402737191867291231713444237789585603579333319996573419613585336493074857059886627681939471281224902584911033505763486013688396918375804271515836547397436309108871229845070837681689484585195012251029392672891644484260558260016443977471474519212562599754812599875626510451464754836746879475685777392573010527324798147897531350042960030076140113979909672350860385442554936930267725647754011368432026650028385465225129109366458055942496639975405144796897731778554257097229039011360510174015807355650624111190658276216771671107242776939248874117917395072646896616184011566970014325487850913842252539394516332614233614805453878246468378252058147640952484513514934776730552276671713946306095066044622008602086777875659445140059014258620231311460730689128837599786122784409014362829631282003057072214965596953851450123421330536461441568274611071965631212964977954812079978647738067114748273617988342109874159053456494952875062477382034496241316013636220770352324696134506100306585347048109059181050742016012530852662853723468917095822770341273111133486920288513393251092850935903574724730329763242732384406522412772887884100664560790943004212548905439403442092539350121059418486654913665226096977955134475866241772999112530149857945786143334216674725843668837816529276920127657610174984355913714660282303532866129069951473780407807296952181541389531191237961371314534028357662540098576464698097936349104194479912525813778720946280098234136160375644919864542807971521444949066767734823811767793998747605631210545565539129766035463905553116925447681828611035448405234801936726729917192444834003505821813590387221176441590029128944553577483694273610970907038358565458370023579085189249727601686492083347114105375404631646414626413532111398797058584410384793194875976615750781976647212444222363383601047046782498879770860922970393756732886167066058372525994728376345680873727101289605891858604591058448931111731818601108591955593701681595285684042314940868224257693873901971206110134646947597252733135813508351191930614493443994860530451484393756355001180479318808345501370065178011692224834194046124615863835364745421282664628537211790818310107164952724704902655168139181822060810282121409889282805076081432429671125476643150561626511160677483688960342035338119800143275633999824678109582496622324584583525880458377825767208365068743476353111227800252770014288668185922378193447967449345061987762710151502043524276726125660315744548579396001035322709057407493171522881437744184252387560298509253016501533180798183229695364898557942702897071379566144697231764677264412299386966303982499134650768319036611923789419761290507432958194646473094844414837300584250356532226885038161425326521914969943814894729774408418910741922079961944293545044341162413876744751676435575204392657732315741437931489650664566662442978423772582641755941190562102009062412959901339932947421420899238373485341423333791599002719619077702042397229928300320661072881815514606167066781103871962229032014437854234608735858911035534058874253280988720711543457132035246077554997663571095271450426348288825027399879407573665100065578450608644244401376957920708776447480616960869032139399187088142821889470466148092658985667623055182317225325775977485398838016143292462659896813273540153347784778606276604041277461244367332587740153098454757444770792536189367452439410219665279759574134469010709300732695336514093949874219566438239399289790910058195627116045020114239599657381100176783688312782253113690400518574441749673352123302734111711295467136567804473144797091456331846477644194301094283592070053503077710453497392959479583589611331759314169811150278552291540567732931537291317658551225101770806364564109854269210053461908652850553549893160002426304049682573481574908244326787611230041047554562878105315879481595150273611410290074292338288157744466700260858484387390625971735447717246935354301031348900567995979616743365890893522535974501296677771470582939984274131772027279695483190209458003445662624232233162805011692976310955049974871461094704324315998646549522268740267904889810093380016356468751381780207060293522359450519626926686548320007685396203332257654834866194947708738370901085761935205044809852394520271318360166867656466106472942691760819464344615659677931222404098735371137973399595991647025016944290390847204315235049376662021149896442617774505192146978231154726157857254268400541514754406421240304001650833154898410027743920192307634622006091556691129004275607811082584182347834297080661655619548626592498424870103525342710206379080919287727310746707413738683686681069937567816582606856367968307495974327068039133189082738369642535120429112912273596033999640310807500119240337919912337193271730391141360057929451552193628973161523973220102754576986674331789656087449768377377036418050509459652751292169515970250096952051294696201151304710745412450122284423921536961993345548806521672977449346393068274456662295484987677908462817950668104350888611437240755391141240485194292469088459170818432415648125740088564788735889151435419710978022361512206264910359730045678757277066852128487870712647040604179151604402388030919390844957024701350941686131600766952789780278298887709301482353644980151518659958956285721483358243541130502077838200298531157747763955891973675486899162058601912103160047926471768137541278919032632835825319849849274916288280701257860557132282762743378433233074631718818524404584130843493914037218204822014027504517430948247646254534626818476848929946574945895346465472880911721296393599258193429047504974091570732878003472015662676377588758062084186762590801446787629347637684231192322969286122403098321963693141727405380415111298704489675882327935818975428429070920684377234527609790993797262022710181460889280851823407336208451488162070355199001006395985144414459843448965108114723019256465494711799606078219267285319280181787689408379979851045692009468586689274253119178089872912275817814121937639938150983307948428577581081431047306104687946838618069877299836708253735748669128057406551728182782323144045774449850638451694318024179531274607296306984586026635105842402949582586542009456238904934374640536830778818957457550448340001408780204710411821700324127272606599215284647461337417080667993231206768151958414804210593220134141180196996600939503530703306000424513637406654138378541618254571090206442256065081735723509335623473794215753668124609622385597101386448004633552769763303656682223326265481092089469932073505043787140581726912561228932980495629446659124216714466839201106193288278548624387244592392611321009617126911732365857536267480575385576551238888991435158986924411390589196389355272765160519740389604272398674517821711984168569295292125463787961204224812065557243297999723828477587126618012903812882157434530949922728057135784846664953414714889926813278040943114687900598257593507254656402368361111729424166467955892016621985023212284864217163474878943322666924633423495693995352149311043612009587685355504555121524860021949829711003714668134407774350537685491793840475315180249821233792307474356365871133199205789799874378452147698761509963805312986452272557071652407199519014002828946020892279098610727030449904384735156661512344294502747290515960864149730683781746120675198561276404810032294487240176750863181503933074443165817579342811526574586698286312133259601737742511088956397787673394854746379661845702039592197534698270524912092043463524617317853929848963924792880144522892600158977508674199479791853238361778927524331508952620213106103562933559679886447871989299601654427762655970833863540210971520494410892801149012682232963875241998727361285645258856622568182113110819164096491417435667670893477977036002206258522356616045863485529187675555339926298948387654524854242457999037179203260744456194375382555470192132742989674401972438134731495697440775788607944501223512171392438846981148591146373210601515448285049156529556743405969821449820919106921543219700028206886582372323998841570516421341759369824475474156342020957784633694217291140684221552077170301787282047160171990418899230182958054078328706522773384918820404998459485448916977132151327493130724953205415344665923501385034791461481401230060325291871703877099054062555660274224527750174606100024786507554852249116457805095510709603141850750626334660830289599138970118620032649511388845782428027987085745825404076273858465278256892265335235832080506315580952827792789062166480621211880462898545451642920768303810602233403117575048518063297284476873909043885406032275321433201752508716604538437315968164905313300405639559645054549797447084380120299105335403022247994998524115781172596916227950108992557994210233077033306375839057940106224034049310731952437386328957476831411783428101772395999344862693538960899900284240509309027956094264731281809052510175529497133074231310706751030513470368839876014954068926754865295808092942860585395485965985857756822407156960328775181323332153386348503388400551232964113789522928271510517930549779453972078266256495711973957071851082170329491295841390490675730033805871326628328498986608949741766834529167018149979356866406208644786990255784519124823190238547991490988158327565806688802127097802237190927766447433873175665546937895335440590593622154409028224223753715513774924804111307276800054908016611268303214704751407642639650353235494266547640839990693839814344582314996443647040415972692533513423800975424463177654783813406869788528468959775889874665251715190723356072636201546964392697895852819449746431159057498425706166599761562746939079149335631791754712096630051083609595601143346402646947971479866522381331525361489156137868164021757773722661570377178898178242471766010379566164644626971364177048281927800547335292222107728259368424975317587151629328491233442458077515620091721269947694829833106585583903082439444430678076001904126347142853447799303759420226602201080544034042202380575469838977270095623007580788521416088060897757575099926458793397884302554425414874854759110430704251540204840395914047036755340063795470838846440563190392991240160962391982785280437746065995969798918157607043903036170078851952090458884430238234039757204490937223643463997439882620437202404268468673385504692086039199382710241961688027678670302532855954849290509223576995409389090518893293445510261500592400747159811322082800598298652822002549841480894240097631892646947524033220331293194627781023700848383858633294762814445554674773601494412672204901056969178391867794218285321826317701704411813068371349876667133170200473717957073604462211240281352856769010961748643141178360749541628582413766599742342979194560621253734883230336637611522984141758937118978191228172620917006395728025511581560068527749246632822736815700331145759440379719364301951094355622894647746233201814057240375131254336610195584118018820083222422253406947040975752458669469607445658945090184926378809553048422853426107229802200617997194250933852575097078717354417831821254747168125769483665753048521556610830691225210637247018082098220140875655662870231007421547346011845993392949646577878969292756354629672390433409648581230055156049537062680150860495495137514000445077346636296349159576574594167576270305115282062189288418654261911926104981841081901827982515131806580492326465727337341365629746822952432836079171410465569211145283556418916776157438892312356232120159496535909220085959541112331951335291359995130588214655147246765466642883044010483886461303347453452100164660401233703754944037709541520063349603021887295108918105818716639156713418787707973634700165060606193246548978393686148206348776607716251699012854624095932293151480787043501431920202506110546237080953124472571524454425554097894682749264399152685237179155728094326283488913571942282335767129671405721155792612292282259108028086314585429740504559367218084128869934622294418541565700181291713043826192535687346313656019549831974148028446708325609640227634677756899593324232116149065270003736505375374729520092703394692392640273108063145613645738330076052665161849261498521889561387553412823954329535778293819374576851800158338975062278788584195022277608614898488434517973738963454368914019945130469136928175811647850928652546459261843628854423560248129858296172471895266580680707836027108345111950376849953502681585992293294053670427890195165435250679913814577871354294159317277428943184708768326130480320299642210183767822265940253411517210364686705849988222076575800873010985458509120255557608427284795491716706123594344188926942295641151416764308405005941987905280041693891834755847162337809054345076931242891984882143705674376456667039613010180566378667100199144201780515662002630286319392496449842500063690380048688361003411604994649665944581320783942447327555026991363686539029126714175696926967542099172711020127882903914324967687330007417478640502345375420447226695280026867103437900145186714611009731569112444300727235931437632899065437687409841735112940530026916648088650060246340394207399495119196639073856703405860891189646813211791426217624461500552369715839162469836273670967056906445690307808040803814477324526618520117783622595709001693498891738266658610948813509911892757128628293365483951693427769978748210082317636453045057381216956293345707939052944768501318095623442761627718908400204242026532219051315863395781356989076256437181940533826523369109364285210251877731862181452666101326544597331993421030536720414793422236242684362685496430013535672736291361047318046869802805889379046644162781919830102463684702315424886120959176238421669445022185048271542948993008815902772359268747524397252057956830881758420574551806449546397420744890299113449276281058335188315803624597028915097374540780859236317782860615459494764108482923303713939014566174331218242441096524531815467485302155391108704314273604696390998436184818262201586572228837160219844044715818326546301010744452329717852595282568097000139930888440939884315274148982258756616444809381513217840506419198208894007455886598179425461174421380263481875528742683523180596936433611643760579727775111503127210025537552212879013834391491078705483939727121110025601266318951407027184352809207000446225200292338473985841375919642304336742112916987072489634400015255812760871018447418940819577967301610460921930511994661960594013286961838270189900572037789907612970092594387276540809956483675353190603870677325516788846267337720725846839848971385767573488145559592562001594738156150076799045660472409800624579547942132468495151241019385569711615452935740041060116006034675776824906889229190749876497226466942885897060976127261487793705637568966451367739816213564712988706680964016541943417415023289526993627699259534732070313217477944206540702910972907337881817125698694829318179373727615619077650194273971394117898994796824349730566078808916197817338861731272204280266738793995893697367548189719804520600784325217437127641863456683399035472394511118506702301427878294958006743882349586284108422010622954497550125895675862845999571322446417944059396253384948088883706473053789230585842304162994395982603030131285796539675256244193325207090000935075360286792214930770588455118472018104153421229794889665218821373558963112260963819672046481443116263691304891459850257196986093204058196318440672416595225618311412910184668315587216090929901271910242966905759676998998414991685994648085516255609927974059703244748170786130093351135068417872479342670512847011512995246003184501232146576326049458777420837594219078535228146993395596447300408032344734630841644033847139252804984065841036020946216253224898975707936969638252893371715081357721642757144162589099419394766280790364491555978784747853087011184811751910518809365595136779442211745704008255629032632170151095073596489218879803665456566025654094667038569721009515636022262737229446375243276710156734597814588130610504580182423550613515980741715076285762222459110529032201415101484213701227734027410399181341477642423801589975945634787930021378159519693003844827940950954206118548967512511382017114275515513631463911649229790783931890984400415422517665550818622910126976349467499599144047664759980787850083910224848301968792525745323388827370757981943843752630791298696293730040244684569825541899994751483705552576450320308502646806013804839377700489923844380884735546164909606115199863274394571955635390738323143993823509967504396747669740221707123248994776367421097032844161100585055004402511915129554506845194536724802122658412152326755105126680586600704162767030682261079249348653528125376947214071397246476705604546325158867319813423306563685632566669582755233329060587447775114291867428992082167834275955434399209934096398502062359542752412009656160825750630495857695167213705665816787891677935323679472562154257707144270255939564858803359491766958586238642761185885649010882054021717966334518277803886828276952974350545138435449427523128056845095906681641490161524412457447812766108410809220647308460157637575831602852834211849887032850819238505999603695185919706522402706741383373287371740233436642963090361345189592741316036444529605870010955239757803248342473121306902990510513382242076808498546331307091237587097765865530210359515619581268799882711951930143513992985470038458020618782045562826468065441176158772457636674701870931950608848748988851773619723546677415995392750816212861470170723812244869596924641967151977733491468997850592531210823196414690121569920580523429633268006784037209848969481144239569000420638758812139372819053760997489420686629414002223520587371243772269251090590492276426532574484864714714652434574948202168771477021682263679533715834687248885168936995796971379560534769944532958116954014545456592670307725479098320995575756329744400104601882305899888679110253300847630890067452208435478160668745980826962500831527440542556942914607403746288313363926807217444273800335466970036881093103088189894271190419414193275911585353900278326421276029350775313515960114858767493672246874821209080049584319757423191716832688528256706245954899213519096928228429324511650184997679866989920534095484753590918514988803821602957670178896068601271215918022844727902905187525152158135682106305005237118628607384495654023642606234092550474438969494871250663217599834055177971450643248198270014896121576996876077957557270712750153083048342461565827255905876703008300926836128617243603596631636835366932010568794589453994461579020554693976029491281883283477890551797074892285927026240787824714742817401110125667868698459556095247907540117549166164372496846069414383025980961839516499310076804840916403312312730280917464709780851413664804701450551453587610269724978094360323808907765489472824792560432820841734040182047245115932707596274633064807406569468143063142281520315697619230965261799855446128250611936423426834799298084249588001021821264833679636225351630159790214095074899916463913090399284004585923138640890582149814977392835457379014867908282697824207772630465817232636782117950727211260760477739204971328326123470820101124430532754125595941347478928008211036274347363339045315193529247024879985826353732044419360484055083486766483081868265520949750212096122604653552542368661138603591552860811106164609925354918259331159421943092181898169932906134327142967591100152880744674666657551262424003179773265789345286030123937205060688115626745766192253218378600663534488758915014589873455985184318484591090600440122163880506072118411390070068900223330042483576458483501935290668282014173349206709413584360178393227313504848062465334739690685644651687638284691236991602325795147661593892078657103829045462422932106042569302016191020012084754086851014243163659744684929534093657107379792250991731709381825558473800763658017197336649603065801689654058102966615216778859183792595678612808254328585123871958966378183664404877657661882400737116739003699925654765579716772609571487932728726248675581273860215234229079168883247559393318634295064401585569998933156968937172468718125910537760098555841116497132108949846847565293378065489772688567816310821896849824886399861482903930947289087902151962398795161468750333610557013167119043058053979997650696800887110285914566440816426320598845278588444730066947369128828256780278893331991023027266484575155398539241414526077572896125613729663011075296143236084272630624706142497244014304947668377767004982350178764646609459211406217880482068153896545326849088756523749283001897777617553696616560566325938214217831798299259638433512190279506547996819474651403829091182841363937685317708954006066972829412374908110565031347071108753875328078597173501743138777228094119836595101907056755579515712506246455526047344145448514346039489860186369417603487267189501517176735294298958157510754934188700040314746808291574933722443175111745324542655888901887830358246834520907861830891103908273523147582912661951286976135123378648070195225250201096699097858844983521406601808196480296122401667077951599526783507183124037218113943747186445114120808195432402928849634585613076766505416784563731447994594241367250922999403446620362223272742790325626413464611911896033743192587238646884617673290604483533076873026413258294050485602709725748673152905269201766498082156244090764489955250654332030524750455897500019162118783361737321966630680253064978383319642904167336457768034226934341216999850463779183719925673134995934979823254498106123376210299916603280802661461954150871093465233937718080667568790487494680402651215019501525108494473214434222871491962598944891229247802197864131592942591765929299085320722337901859852522277883140849011361394973675311770628200480575101017023227481853097149696182901546232678345431861705276040816075638431124776655868200055927146274183776934003542673581521836432628194116054806766008019580813512473338576422415103521210306686821078030127269882546840995515169239804433087217430090139136350493356752939726503858017179436333875840089072922450747331415144657823003520773800708641145679776754051732983211002805330189761731276375803231582966883195402086287953299309189463911437932734877172715928293665162539861079223574272264642214199890853883903249976919103578250430158521454141964562099443644922304302621845662873425394237668073240666731360539225243020592129517172031363731766627195751662520811951849032924462919216366379551662426366529774301689969362898978205281781506470762455771032944695948983477317407557599507160577657592007957317645159824832321395040218330740135333546949404667413069483373414736202848729287591297981838242491249386363101116354388676827239696654261303890722490956890898234000420172174849758567434641012746814821261709750786365779315505251559105029017539163174333703176919607675548310863858331593422839678247331002542084362742149068096673540883833435392715827283263348529658907472591036104613070245135655969321814683248247060872777825956972459608143407239857080778646357435667486524448359382655691544596092192199555171949937711304179519164434253427204325605386516493504608075693374268132870984774181856335686724677706291668595724550806123092907128680532660774754812242887735413209597565749513704316750164682986735453482892252969477796608033182395364261148160022772962929844400404988252180212616153958490210474449283465583340817059099126815909846168692393726028072140119374978216878415277072413199038132769970728394516237998325824915350934315392764739819807747583012178344008733247295040604784445317444693292114104101637398207143938387588997547967252009318139503950057721740840074183368120006316718611210070623685136382701238612683677019634143223436784975047363777901281281483638295321383534107539125001768843028305366422522743775148742622279994129660080803440140160694809269583068546016791590297468841322707202127313627583901689483655106973473823233152556552333708723871026636438476532301050974683603764227059168880383825836290490283059487042544580114946932889188329504192730364543616088017357091242943742251230107278683019304809383306665114895604291477221887810245251598788463522854401292929163088463241021237982361715712969523775437809144305974531232998362291567731726923244174684270720506811162701505424763722258800585605923500450761670364506196944704340190551668139877535404366027548507923263488699288284213609147857002988235009191119625431005461567542257802228679120692612825146991187053913063877523312926651161520650985299197924880502481024325810869579162079231862935770766947599490169915230133466086463897497037738463033507683090430807524209497221903654796286249685723567897342905590009086941574254925775256672998639719777183157685391763512010096509284553581030923781437174284789665600548366881345059160141932859460047760856008730217004804326585712375041874994134554855509517821075910710848034432340333645783766158689208320953107393890817948816253482810183876516330875642341063719546023565570465422437397670777764737484254472914059177423756891328967428378796725428822649609541828526689352022455827756669790912593973370365346478298729879504650404358874124578968346896930697579325972717539171887645551905310319201272303455327521933531338100329117750118748312607234527731600701135520294097291028781568198824655391673745146229479747179424641122665987320958751712926910339700579398209934436512773824387390290308641824144416338091938621260853424352091820611653443263232353249278331692370473461528529093957697291973931687984907875592654699452687238065078890428084711258948558409741464850716961230111397102634673413455738101156831156554659205985989960778060082455949048500027790578718339811616765993357430521343500571043825512382815085769336371602089104289276822444441848789122737742374067188008481494245563859627904697513163253295729200653720601547331410645708060914602569338012528251207935584922195512052614284870348944321631733957697174067497743290101806920418359865839491874656226308360080203424410556661138870661052885523981152282806544757492985076548312659992712588556611750853536489880791497610621673275445901040872123596987306493085900925462947105956300359185469601961497930923680877773662041667784565425192676553162881785222003521695716327379655398102785334544626054442215604471271071065394467874534863085090261370993722390542405458357319423968671389609422257294129299266336100326619441855036398245716683357398331498400375186021488366693650764263157340454142250171860391356197732002949665339706795561721536344233244831227544782720117540579355277487588702191967037771588738028847581345875090979722065758444860350833321197109699013903651126279734682018783255524461013121664657693336136840049478728200186166023898080175870199918688178553300348244383344658149214763605109625685434384764325320427725276441083491845046404103795550736201765341442323246522115271613223791704401864108920284732025442427887252345019939957195780699432676304728779547995667699014712648630263068959424304712933063725724897583863916840377285830997212326426431011275559163640134015416047972518984170403809152902591526819248818914814460429874947709205541289013369222799601712611966086581841414867398494252075211033477985642884944522288534171877779497852996707727543126851710181261194097149671213189167914917061697597720419542954856361316781391532372933266565030330633786550529300355380319737175092880405274730825874049294141556968557775021121729999311107049972313882324566645903154942435132743040097201363118026992686974130862291752625044311804470381303583762978737949054828051071369792793854088675432778510412403564420166076050860896627216277690315181666250922471053747042761231661058699379940943187151612581585093034793618095049262222386514874689017685095096575105659288810540483761335432436180287599311061314222570669559563175684401258971695782260257956669859202562582173645381825083617522099568810793765790232642708515927864615364667740278638539441681733503988766610836317982312803823345370881988338266688917191152198815819295844203271587208757847826587958673307273375611507687706670175443777351196299124132154527151956245034334738879203714739778557876218984313510651383721693755984340749618894685294442267362279039831582229117593585970649853995310534187408277595438449096087159969507958474573867684880740023547390869882418825403930689571817522483263084185562519765804492030639032937011172281964066198782358202267557065564998016906943306264999904472625792139677082248455730556178439045050478003444368662777470511476530760999484803441644483499600925884969642417780286548535541901075844817638140997816062447063639666352326590701883837252866503166345209383250142230991443730551922534984297173640488397487071592510077804192644028299516883805918407831323967717741755018031025194228759631222020733449818967737463724040586344880248056360351636927883509846363229709866004954854986806535557736081267336095595545799346103693992335723641149348883571640473505524574266763980267142347216851283886066117062452404641413806309408222467753421853947762946023413348649900418370997086311975829771282118016659965945628498925941256805412359225769388977867370710816476659791212697172715200225041796406319520771959037192160593094607478857376318469227983248085907217826756656797812999028919928229449872665860917023664924563931581650004173038976711417689108781048249227895901707734544677771142933715625454883744488044889846949711464699267836967677701720047541385753791372091978585599946506894733772836920761591931147235764177961129641783689001871281349385026934103595659207684315427122596423130202150079108198902324567037870446801344234134426020020164495065018237622823016027528510311081397232503005080885918214687204418281693387917847322809113071536101156232540146608689742857950725983584803691185755772010847853750364832230634799362890974837127824069361875719851698276448536213436389240415142580748048323828854407718237219434731257649325697670300134387147036447570564921586414131288424867842186621297218627772259410814025109263167033582534964587806343145980161491068572807761456902005715889648812938260477062669756283579101631298854382553877760168785714056618168750359844417566530595096141780721690343830115507062373325392328386460763205733591811180432060749786700233419064174083994067084297670867697854282614726634320286262381338811834368330051360716280346408897836868701043213723126497705697612954052266895362356428152702283301336785377437892743390302796367947268885259656935343854308849003236674791439023178810180921497282465395513137707033436977775637111438812622421313877660296796256093111517099807697475077613731725570054678766657838722293095257696673471295134810609386872360752522169204496611169132993235543936509383961856724437536975656901537993863282812787060496947460243367328870750430177867206883983597006466538347775898200413934988804924898165379327754580751668008953997736197682074850935893748839271348871987819606322631395735985288772152748238040034538298326366222054940554505489074515486932606423150526986076164513041367968569732249323218906531135390880282516978940305175691431440523671068786691662120571099705394015264014217112786031754748375997782255718696545066207483172608846173392355774711289998335563586754361115854317069974229223675211592336186662813924119633362422728682900171297334849376209319427933505325732128707884875719524448821359692188551531089170847185205771207138935480061900900531250599109888283716543618121153578588082919873873116517773152565834634039743543983898315075622851129260954236010350140440226250238640004712859838808973247896542852990541292208258419922778150293895570219073049393707341068022300133765482993023370074107189550593875409379914306660737340912837864446853613093267704158130520298488995210951854930276217404402484015543954292960772564926708095380397326409345749411604582328685997672762822946902662584555922826465970291238174427990368463392524433339217059606626242343102280279264509320357684434914265702700420165060310967744908905434334108407636606611918645000679199148242273943154814976555528149820971631829175867264178020968907001646402597355085481840882967453567438227905616939771694472122106552771289701638051049297680684284065648224023161800495883221384413707731640723219852773261765578819896485765959578088072223797255708430765713677398452258431222981020890651707810408161192427758116716696540180111044439281050757786131650286269924329059407397260534915449641534982889976323809474504927664331638930573083964041530668498542260675541694024280098710004410332546356524048820629766874582961479887961824130430955781584795950238048793042341943603345664122489248121368141149726192430106358578821507722025315915348573573895902715064797636263597848022268562834162143842077966643573893204958822476239232011305332098525331812870291670585599798512489688698837971236163445266558075964613276991155635619007824325289924531782570958333155973327578233916104207142129683438908509556682105562079839827536582947352291241706890009664262175193743507890985773086463415315109629247684576288433427993772800085572675917344903226132775921152675250611294865688735953379684187869642308560236996522087297710720621050129704908865998782711478894004862495830605744579563474171976814685123246913133466703567901563131879804819611126927981324470501557941318536801026207885621215129505048299451388504527767704315330090226687584911569238449906574697166143250225401753439229250587416865892868329456994336299725076468474375050681923887233709728386515985347998108914949173573561785665493197406378182003946497309988611508886977663703255772282781761587148263811394573612472552974108828023489906012560964911158984948333810765047229697311797609737884058499816181957803079700505047560349408422752353429359599066896158680464049729149643683157488195469711514559986066908904324370203818014168083557822025682734894936955392631935137591831981759381553926367197984033914330868200756988619484033802156892811675561275162200331179945253919582808801820564961637809054231209528753884449008255457651744660449595640543829765192243573155315364599604340423136208416888182756077000223571909720551738681216163848588594415793336517896567044632928914573372824314734102173793128160088424453081968274849963850167481433565213182698127548978258996563170145775736874937846125612839430099337295988785080445110155921410277000960158691491867222701651347787825225198055094846414341755094546401536996014017847605339801622206726187437438846639557268750020446845307118494677772255766980467176659957024007167250278596563873040394988861622567698207597809025598784857188267548961196226191276494418308334770623815018153809470317936314659682024227998801068197888582413257662953031543761487819763115405836228058439593489898727035779014521361928669456635694873035438730281618352303504788075892234091465064001869976781778358412611421435679892109515772674305531076880712957166326838572233815457173043773108344024009543362175904786572112431176778965083499988872630302513360486959068883311964217004287930198590190352323531376032872702012030179387043575987924412400804384446973698782341233773016604017501985796557703156109165475117597972501227535477032980612584486756839641299592476463033451241711472165502180325603801912079233669345616434286649900393042026090368444044563440865718640789296564611129023399427573800503147549110499908462144805930079999169212705878024792467074146396225870240819906191712928445295165939865775715073529592213099808093065946645398816418465104237605660954749296480586418933404783920181535103380502983775798731905541243715158245463855451064177146365020858196413502490373394057597711791972676646289351696200570623976005128012932883997268527842168726504860701525656860684585742142955674629270101372866197639048003615944827918006058527423986326483536685887570927399199325991954490130726345691537866217291140996950833939548262367570354317264735455212966304007924297646023164903227680004533229707034990526052567353339760914258004856420830938752662899574864749440893185590289951678370026064656934373993933064703573116945600124066527263130772785947006452447686362448293621164450172205449595700045293495394184005501745775369007383215386846557285906765855367703079832996632414677486842659008043120855463220040537798962731936033107895287372205014493801210542598300861688797307736312313475658335751465184744146908649594548270977810305362739582868120523509275788670142695879109533237817241509564089881464181187641646965434573070822522480612381674746333366886369940588718371058185471502084697081230119163978825559532119808625700149399370632426784072151969621633462789920511804087752808458627688698409980238317278651566064564350932168739332333634493445098736987868868279151758630943840259117798800428532537785517506660364841733586031379521607948376407635806067507424606498620999936248610841088437570085996286746096904035335694165185706603600623479705482754072786864949003279363150730258412660142769798358381124858654831263387261255710269280851387290802781383537241534593705165061162608481037581426436011176478688364101243680537308680839778894533499468793456030280964257569404011045711162995244821831979588949007112184533337373499376966869711599164368954849462381156936461504430672989759873593471752019301597074662368222938246926127279390279888353070218674778736522336680073797499722099474964353962409975348716177830553539925683331890972434186939863089415319258570117097981831890214440264437374598929030546868885336777674159117730905430415499892982321754839662023018506404634042385345954060474670608135776504912870199655648325972145045118962456059213327238983476412772591383637575742801378081150297598810843766611392148375208237255375444822432153155811044815719364165050777988480308453306587497944549401306473275304633383971793674232633771503212309935345988988078035947026988576902544578707480701742798775924078756821437929611799356487586064824230241941849408366984742747475172723008722061783473304484292118717029279688632896352875169085310486847653567838966416090170417179893773871293104940762977816379798373287251386976326896482511806962109117817043846713609488315257578069264396371707765203938973426556587623196508782557942381808605078819232002093500016872430958711430467464184609943610631528390619108772219809805049850641838634690031614860014414653386982425001909570725082799408873532258785294571780353791292696329114871340280524033829660659819089423877300369463571660083420478437948671591387175475889066462748746820178655650153405311650016693644334929950215541181846845156499728547263079932869664246902698957991706972210358953894820861367465403540483690453496516396678806565731448473203366739207894253826935475228724197369693383648841473109421754809123923417425031794756628710009588047131152068965256729087683284580944387786023538278580514403257756815218802131427663519872487951717927329350263132433084117518710358693333852716042489943564095005960998807079332535745177849971952183164351887782493776307955457456200786065991825462631567269487783336689968715173494802104738490805195506663417877545185278808417394170481463004913938599856088576559422584021757692959947382214178745077415342073807712313561605187795783903950463000645022314528146407651583880989671306711050330410305456252766709338699207002435701935154474089990309147726817684225939527743764905956252979913048487479571182051243990219724949560603272214175120877677747736173127762091327940884345006994634464706608788909979457182253210452803615593989951575145302235244070302672450904259903421815497065838998444880086603258333617940710677640707824672614581639163386829404467287867158329545714970666192380716943596212422413312789400911343959183793465704305927442798772616442627824256591688375703770605597166975300656878418699036998002441198185234926593724106538509762814779789220352183068588435228774468008631834663676536142199563896255389321373438962432296023483994013851338402248257039115233167769875128102276488797773552659564380687553322109227191172142111968069119185653818726438509119587270833432933172136621572996663933498768688666659718429796202634146677308351804608291948160661816309347540821676317256767645953318390831282283093815257253059632017392254106121916194712635346534965769953286751728680700565132069390030908741521528031169538114626209124835349748376531780964114129647355921682784878745894363454181760860488759634580990592772956921917502157601690949741178692615619283239731761834161673245197548595357457079677426513684690502776457284816029591163119865372183486938546500902231729905518021851145859985251789379041796343899874145645621264653158397998314693749117987047813930630546140790970478692015425515279260259964011139740263833600167787554735551500767809918095321705172547852256407225243074489453826547222553698134405524334110058009348131230305114443953725764638242821490433604973284155157640559929700945519616686659076607794419606245602151430511222491701837445131429703537450486788493093034326842507409211214009825317704136075028749391139125452104052370430349344360379499038813671184342698772794552507453439360531259333580110659655072612507440496937347658443813476704260917584711440995613489122420332066036570329060399093210226282193912262193548417496474029556528341774731299974153373570981158125667975120693227248550892523288669792731907599744672828385303411168986831294209091644913405096967628850646553856711448637097528058051773567467058227730875444771941929647346084426065277137243578428786413468038441872481703244101706199886984160200672129067492378583232251505652836952671415017006233967916380393464096701688387868996317852656931903002905255227314458956206827090212427292638238193143767224584434700039082763123230858009078972497175745777150853595894638538199190543340116728808351778339671554852142493945516600525507385719622907955296122353394387402321972047575913169929543376047865030175597084086142184980426080853475473549459465535698696197512523505716534256059982105113363037542104990884348232507102480147964637416905136517815519570894948010153325039365409751122644031490506365925925805689052626866625199029248493171694682063272793540818626724687583457503888479842679460982499757796504957758320707958801684431335224331685152242073831437806665856657829709176317038080124636503439243109728561463832849692014043252990731368036586919412037310457045109207478282045954526084401714698439044110825262026226419063638866704974055600646582178656811777181806037934090126007133793336116992713885142741336168132175866638629517745199759265408696848243822916515714798726239572283855469356652926227575423551473083608204197742653558673618055915620215691268635908812624513902655340342296550363202346631229993347772776894095303144483117759093097707627622859534384258435350829665692117779071749809719033980400967565237009753330122646921816976781356160993485562086374060308944859712924229600648425665284711533033903909874623040099001939387122976222013151408670773572015914503477795399019334520452009457068638034778825964047770838275298983433830286628102949970979326883062821834173077182543092712703928885812810190136109627391034857259628184162920728902811596347380245383243026721213806440583107020541231997605343749775451908515095484806770464750346621648451109692189325241649478739791001695033613370221212674301913608014179410149450481197052161133215121709972997398526673382205168626717683196478803756104316697415233109576152358339800638738245933012490010580302602543347220118141141797717433482574365359976777238976625998021898715621982600976808423335582624910387228508093237370966829861957403537199383571018409873040226389500274532097639352505906273164600393731516884903253506460398722861700662613916384894260972006028163712284966368315234148881166540461609558848672141619873880731801812963337248739573801969028137172089744773886172121706759217880948906260737723821553229135403537411981680716546170392814656880015748718519170500235953267960680010730030258710348625694296338292129009810763391133436343213727542645299330494140099672370446113739546478335437842901774358982984805778719104539898257812812096093822664192734915781507168958237010495324205793694284723114412362075925235199908248415862082772858881966055061806432318080439991574138376623378141683309344144827084896506622029795323262151379141281192863051589546304362201045336280177534428848641057875577855938095608928577382087384630975860708229865443801550443831806734738312375643128362561311559703797946719230976414814414712562529014863772618186033887788680334284609719939628775467242162861179020794916511518862722395212471842334818706639112994925578259922702628437034273496930363579034045177764317264186426810108416063565090025021157376738570111528548869420153470488015023640608496857600665820738664398555109370089294219640019819094691947551708459022336248312601725001142646023113638152042703405485481802650906935492334564759661662179607140866936899523641846305069864186988410363751557570734539288832263990787252861282681846443924010412977952188053628714741679658104953688671666165538367414856753248871617346708214456650197182071039869232351436810605268265624154886308630473977383856871011119482722344844235835511381140907530778523282002455887428538292326260557773710208204518874605282256115691814774469526482629234735291113480267293583680309414915216514260016416308984875885297942161936718785473387200797624235004508532865471520016923658396395666038061742819764971882961518141688325614649956522903218261544802228739847508124124790684102672508692586464389027472046367768150099347152262278216886179264232011839475771682724246328061913549879367572696740226042701210236049371628257006907878326890015343655364888648056347422121323032579024968671742837853272487786770741164149716570814021122309465371135311039522976107603847827642238229451171224120983953074097018666729874531833004783168276531363179055591389300639187749018183797649707658560898044987277150425605817582643569773559348070838423451668526193902314632213086390038185075359664417299075150663321353276842586463738397675611722598503586174724166470688515887486321264054488646398642764674343214258549442342100362386185073369964014069566930130422880052608350559256349316428196322891742356613629514489109991021137524549114908979390054161481306613375367397919831387352772251446902720204983562503576058605946862140134876582680274528865057172703864622380705114351402412850496036613089648912908789012007692653545858352370297188951277892313115003882644496568514366260982031935883384096951203786015311426964699449482501644332819237825241837345666554716309169539581265029579048777551121902999821101743135462168445462591736935846383845041484738326388642565270215480237928234017926475343113813386113700899794699748419822008710695517334487551333198741612472368188093277882858015737173884911356613818077402514416908423806345573722596782984877665827680210081210098728088528140139207661299414905669864101751300759324178729231325197306658201522973226127815995015029985599562480185511340098950244522980752576047528116058972682922846562303553435013655488404520613634448345439801377700843988510937939156836783357197908519228652251859108764338774532907522479053245776137436125332272665745398345668258996145035893394843889903203346780757964571915532969398061939150406197489243951740558801234760653245316657126324837662342407916597645066184982142774563000061468785151158592147997909920738699933527530757563738262068069142036078447904292187591905268769558832211359015653695004869252108947800200522522154059452495271834463084234074096007177390391077501285820716885447515877872131855883923125546625281617364723053319681344863191208687812217048008114041438262452339396769886351278075899556370457807218872338183406153673726535610300737668145393146900890056385052453746520163898377057663647772750146452964232647432461119026185647779700655304612202842728148268542348556136909754554648212597549550523133549757846930962901856362067555371089306863358711865595372502735679631317597622358859937913606838711116578903773966414696854628401402986421941855790471608079958930652070392991278719940123418751686221056377112413453242709613440245300186473576460731831327296959316678998279256595540159031899721010452045452034895413967929854849392475843771898980085343149380377021931045980366969916276181938744995472867179011656226566428282785005681719609338707344096193395166846996170073144399619424478641954550642778242287426133222946300694847161830482544685853532274030625659584646437516637656128953243887481514121266563561960275287709013676045813971690452950787556852214623755867036434643872017307230410309587958038966396637972216612838904955641335954388467157620943289180683315845182360586246707717780918602831567639184145979173910644210828305715946211317007766758173557675692055631810700686529800771445585090796728488487894752476534610826362685291150350920704473712906079203430892765349818536863619475388303933308848024740171975745747481934682790722881622633050401338775904069755544875865626935130187010562481888572758017340527443316282022898116091488887795525172815281819524947979383280134346380595802351966940694616805604693826332725519625884514069655265717999868730846065415203211049485887072897555585431357942192523654156962596227906475540167815100590767323391053975248896662414309712929485953108086659211785085172737239190481410813613894476952439830720047096590661240984661991212767740731111337432359441787273000489280057499735878181641889125145463999010840272677848953162970783376811746733517216574746603375607021204086676966087456588484813104083472314675179648112870189591217474147862749370550193064433992122196297225389956682154596338243856967973003450457691452401432246778734017679870930426079940372953306938999302706629860126952382670931892558951466672414468290926884881987954585642703715272576906678754275040351735074676901140704331215710033324249427400182700248196155212287166011688342714666647350312230947619915603843079629695354461160904003682662318974964881698483584872001193143772132924196727827355179366359495992842334069317081510159214499608509442943986236790053890761984436910959685994093426265748775441820663357950081077743996430198320220666285695418448397273311772771095376274692442582935077755866845932965491587509100714565033801603415884152012653724053986737072275606498726976423055976101441183464986778464172221682115753717099453198186831676732113186959313067323726464599308320116806408701800785502454859829661835424554432044701600680534737545147572705265806543227250118152639695977163217022832903567052918153430029750255678634340354019080569661586888464258564730277416750672929378625457179031660222681423163496373711637093940577579711413158114149547800864496544119228079534319202496261067875676226210833413013259854869088269372271561384159767038141225910668264019807796049357374819456968610842051765306490615533524894281198026871914857166386617497761798006116753429832696131283181012997826009429069749402124792296282935392070245011522436420595659838770869241283219284542920837188202421144718631990633669882414513214482626548943592804255537627838056576830419418855280273330016328013588902396275674634750132788668220069584764519754803810224079213360733830063663415215780780912610718805587926290506631295704200139845079102582058524663458372637035214657433395714674961614366093764946769090435921089805699506207176718704234949657401050582942695164859825448976889591868414504474841632157935437398174257196024923366590703627199784567010580362596530887061562924615962597267324176149070263016168187696822885599937086426602200063065156799205647483619301453851419696922286918319213675127135726877992105569112845892487790472988578959782270964798653990433834830414843346401302606015042055197292989632994281398922608181235181550671590050153787118307951345801113953541694778292522550972189625834467674835602227101384799920201945433729915727087860458494053580746147178787880742705555709565103913415746084653719037274224489181457604969941205719457052854216167100669136669634724818363948892736513559625495683113776308254898071518103561141684523018384449198441250218940010607181838170311720584545437103712644007443752656516404376182660050066462875640579301265241740197609637970651481201915547164051394964011812326693041431787581651494554070936486494171215650616649122389724093778236355470303802771068451466218517022878180334985777010734822323506576359146724108689775545299515161155335842706770733475065451959094998313117288108574993595248398167568029081571735345757285634818001458605844788767851128367800439049769103617628177057322560944814918647774440603436099386765123958724195756858517253881489179510301183584527130672925758258751239403065010744677535575742459636215095927491958555394878692960100621045093602654941288455618803120439927312987270014843873872787743312388780662337516297905423885718280230262937695069671889758099552607457144555533824203468224188714723376813804999017323354555846480737275902150359781075625991770616939158655413055082015678509884783820260984428504161671680016309194737731236187080513477258079612070326123559034096355227042315750778443839532196807252133778554781657942257099451266843075793224867768188470681921938108628573848977815379349664484946357362514669709362766422196058876274427226226031214324516730209311610704114027114229655350868479987689714695960875956247736083426960393289611432897785793947410692803407745186074850925576428714459219304271981013734841955447508799452084221747285748277577356333284444568565354781345835410631960850591953509570010303914463466649966272386639605883433549323316994115402504434116926869871326454686240301238188542154124759860899912937783392908389095852145884165284498481296396834201453233729400093330293818937758367200626410571208370328106752313421055561647819396469239583406575109519513462142308460771832180654467138020493752300643210789620056896947973679935927912477812546313677469252685615994440456058087264634084000437570719381425391473987437723871139875511488420902887117626924416959883737281391012967009298152323161847154864561042145512488525519543616760279844496295072882672188763412189119158608853785301125515988341331754193409196601427638322240993597173809232638927452928294598548854009864422620542261555248295143476552344324102867826775763350114038467583852033866637527562735658167327994780928121176888207050652448701075826288095235045409425559321549136084960253796047433497222376439523230389423633280788024220029322884034727954206869858606681635806078014585358597384866960662070306383262183183631282793754615799651568732909621230850305812726198772726118325278663752686684543334131288106917688133194142745642148267905974931639458561274446253193859818541183960434656299103670951400803180856067046143969666730751625480116009099067788708304343173877260653716767087292080017284928884499621800492666668482228456424141742975480802310370276466736169183593985985511380133902966166493300260128948942909961582496645564528959112505448596206322206574373459468757971078759436878808594015708016717792523882743982666526013371688935949431051310049610211260720616870517326246556535486246363515729209172556990607458468368874675741690316432173223063352471830516136752844721989053473640482876970741140249667597739556738220005231602504365893599336575602359623940605308583807341490042859777189952722754785271072029222058251014130196186065298498619038970214024968844408528186657878910762308138905845877701486540381745441383200798710174457549301540078988110181396894080778653155711427011373691820601185575888760207075693736646666576471275680346925842857436748752949271983260675055827170359051902066659693852542376248324192853714718567292731000403701934434904925513623822328862061443506530125914000034063311964304835940366559019645460350038336585185700281461655374379885804845378833328013714508285242109973400730365751747003261918283540378449330771743784191300589214403877465228869512808934350379996743109830102650507953390030168703133570528897894231294103529616096105695085898298724248096523981666755079786465699246314700162274790221610974379902084252737311663255570668568743866528525872901659696861981340668051194798487686906870013644159295824821435818280019271113091763061589766085270484112720118231851010907719498157050988353801809346424188926911047069747678029947640975166456955562262174379603603386441645490649227417437076886350913316268282296155016159206006785635928543454834803646497307332059997029784070915286830439441096326599268859914713546265967123213827327795457097348185768498006854946058484976032257712239920768486049911058641607141622879862957351786705170048620635262601956331276497493267453013372489915668961068105821606071641641012868135652333182315437200377114974289892062405492861801894866824797434025932349954676647439319082168662768398884002391524938217147484070508283126689176576223813510336368902074504116931814536885184160631074620985508344709500192492953028549604145765882607713678185892441703527490346324581088717628246901969345918501313703827152687733084848346750676333456616021009466132957982740963437458979181089506985945360353725756811335715818411888050703849557011504695830692825671368244833111687298331435523992859816172207353815504169466205236177426927551438546730707637930882356888441832194890318132312788231159345296040431023431194174001559573206265334832111274705158990483105736169431861929850929042348552209861163951119089922702346178429524859713123905994604097075816396852614225853304703854243961043740460781586551256285631580669946061648319825484494705941899943618872963209788172030458443426264627443396609701065795641828092491121309139651315743289890549695289808008892150280436537897409011927048014589237582434248047238108767383618440171729155046545785731244009328140028336277968349827342808437891155839971454863813972949050747903122112124068283912791929555024180794963927571770477259952367197556126377048889637250671701612515353455726131758834851772647608362840920550377961369855347892185287826540630211115951934846349639585648829949549231855579453446382745152155396237854811439568639540010880696192701648235427215670028611767348167202792071642306731161859156966315205259324669704547068866124442619329354328746178691600004544329772347265035252139088517812193838826743548205187439956766481145535543338529326739290986662610560676517117664729307082655500374822414116316852050064573440980755803790486499021062130515803189169201720693164106791994448896202734452114343384300015820042063295841472428710221914796436108505713964509406757248602916020287468470405555519888229580726121176719701912462069881712540900878172634273069149974201220273375079410018389804540614985243798651125123126137952321207999403852765341124964607100971817200704897316552253154639293756941938129809676199777124505594573380581834368249803862648472145079664156850190302394641258617865883773139486216090311081659354995201155898107592003361124257235450713505356757325391935773317569094847142747159236106414533048637499599885348442303535535202018285439360415749200702749820849532099450255421501055750828163061740463078775452404328116347203009839546187629678639476125661184802292236654701265938189979589413084950264639249980989337869256234390568709851890932342915741634418755240793514445868162772120073620964130743852702941340190948261882324429917365322875934059930082124426858500690109754143196717641079569407719339549154841396477490685578879544442977921385947127621728280286854360107570393072538413734456327039823975470271759233234418082846310653986877724033032688702557563813754351383400238924518872104054866801349480363451862298062516864066809941376166205000123458090895687787197415292312071422323858356291592888037433594650136277677043351960847797110502016461574210127934196383296713683137912199168018554737115309782385649300484889112130201494313140709583779919971722169583916432193253726982818710287977239058152227097831757756383966507221495909061807398530775899724939926960839112206780070336592060754039844751866903756485584383851045223870167750672846927380009949607621430178880851548248824116939516807977971809714173464719089070342525722145923602037222986450796605454111697383270043397451956508544194740764784123339724147515239771091671483329314976256142223625066809495386123497941767883645256654099039519489905347135720126100332332212907547682511591760069403259518862637009083978086265713448745935145296046897402921585532681435076992425621581003299836931000217031634146719238772294529588140919870863477581724158990722137689385386384575397125693978294330084789443344551554466729156652430723347026913422425246473514427652911449393948226027936417959990189301277971851156795948758589673478054419283846706352037593193833047860878033757613138634476858890000832902093021657846857140630194711404926254479506843436369309990811886346763792572251504049851910221595601212611788471583141531230035091061808434260837421645156510133898182690700129072157213099856262166981723240767224887628332865655333294285051632921655985158023025963436303721943373595582346476843330009985735652871026028652509070258469889376027216021262710876250516795164482534195653209908678558009672866805662313624903369210488662897001950068463750975369033115852666038510853809481318844272149970942490473328396140714323766578845536082064939125649388757239527862991594325877096236299864553514171396889003339527713336093206340655079869368933559551512493406327894404167005404581955319216969398041873207131333405354792423894309445733315000533716098305092680819235499355818054625033567987880513282040185783018592470765543414351464584854042950528854077165703528745516673795506858646554423346932290047632818927148022842138373657644389284679546248607453646263924394332490138107168675198401226956876772649633424575738426652782090187934663445672412126764523040963481963503962406260936891501302493420566438723423984765800094294940496048567523562627626137457658850477932028657104624597226156303025092598209974598129955716222943967123122527315615500249241419964988531369623679915876087565969466980947539740809409154858613258793630391524718531588787647282514416296925662292422201982893919191274873626595752006820176689335656188346967848654161514405014231332997434926315791015491156829586924929207527481603975122231259499085887893970745979383666010202595479715485237402886904789625104940274602188706476696467654698796085766732074902660402329797980965805641824554403957082856265195926638127975377904749051091073101779785299764401170630185965430758584927741666678483636028903745515091697872518307854836000157707379329731854973878607423993942984696060351249145332329273163126699218276528414380760576737447797864096291594337764212384958625605292985219233893384792770644057402052764890835859057792342824205475103354335218765355481531139932187993386167238901494228057788457691338723472221814719520813798101548966781029780771435199290525371344811094612033823257534493922699110455028579597342705753290114729185204016461744422877369176692698753052588431942540048646418867896486198187821125656053645055835709037228684003842147988990458009086060326186737346706521732634772520344804689717326750658659679221461527342902846424440650172475171335836218501708425830563618427900207840099977469229945229762296665946429841764274473411395282197731708273855025109953752072911590648963624910440595923439421480970926365557362722353820929938867169936767050409415061353935147322695067282191793369812331229406562318296960462990318097262566976234204197269256165166423735413269532428619473328539791237117822259895830728481021261819117742942496017635388252560046593225866943030285475549130024484705917605247908366901744116262407679986877516378002683814442295496651682920333481544998195350105083674941318271190142749000333324092941370109193937179959097238122995184057736477389603579726855385284767590268080893625537021469827473756875222079442933253612494087794116015020270530855498396648175004215633986285141200451117024331016359396905302013149803163501662136621675811869097607888826604958498393442444093461742786704642993457702819234951364752229149908501896525657535258949529642231734854984348720883670394376151689060159436592149890988659608357651533400271666429385327251637358345336435834132095656875033445567824030094213113055796602767008178590302632149908338507172470657964436981047333643033277347266740770585830467179612037049145212119395588730215328644672509813970319232330174356817891924048730672662275753658621494353688173069765589284113351859395597829486015513054631076578957598540258474050678111056982097154819724374231308277904081166028112363529175900178796801816470379278438747225628967837580866011405320317283613090115267950038451165737932023520953368283596852081650449155315932270610708812997984414455201821078571389274249103288573101889234572753003016750496213629704040290306424346020657458648723309416336504559564200362960928567449917085504022672085722313670917346931832658014799017452079118822507434319745114202197896739549724737830515752221563057930613970076152135263075936647567641736569554153799635294923377401349971981840538242090667514155528641484561445717543679692211512963768268509013437543548344750643180334596965810191887423294242929018955968388176358978036223225601475525828389654966703137417274950692873853390787090102408669870750416826423978577805948818319165680305952137480225652243273440954575711178764749805568383098525010294711179754742096792838466537971389630112441070223418432777039857411636398516948763043001172729713868236011938533585196283355539350536531974040595585091440657969388700160342334608196945325880628391009645512213422909258057789814191247049156797483979249831729622558902427938638729629553921519334771875074473844124762087615134958691948797962972488109371159112735168593523496637179445240693200561153976995180932001880561261546909746401937764049739237118187842839204795732711258024310103696247739491511638475031051095200447604234849413769355390632830326768202323924641550896857194396167170894354019596489758536011967021908521647083275294074193657044852185298685476815205188637695155190219232326910077427456701147352088345168156332032952218044518346893695976503773601727193802499881499467706784338425980137563654400149548937641102088071512039091940052951241521188853461197617600446236150188613544077879730369781036700551578476125788645895876588740187362029419272902175323866072832806901867788340534868953156990977627034637144386072100821380056984048989725845817177820767267390753036203107058108390115498034388228451295498183314015068688284028875406940065223364009329077998258896386104481273092105216061330538321927993430437827450824772872151328816271642893907134923395134921970424822297523116249024251375898899460931363515233304841832881344327218687419041689712682514626778961453294221490451866243133296466619384533411882194562187287781724742577450658315160794796326627805693051303612742762661992837875747520122185794531652337184506246452125970469622837916149473809915148028092604558281729292973025649826133448164472184979175675034188537532047449230304896714251662566800510370452279964284657609440208273094342369548447618164778951986105186370714238781961292856291715153747310044304874906586512909355143260456063105793365400410795147838082714360423664847685606149790866630745002929416154532787012808947511369737723510268431096744336430581175484452526229812734364062367694681925261241377112117994040490149305443855324156286345438614159762764822251624248033537125929260327134106206122397245340083472457136085787623925166071884481585862581962726652603821279156998679418705637687330163475904945569920115844137944764640783867153570787860198051273553076499490359652286408124434307968118243059404302053893502945050750384078975667939109301929080869213544379550588336774338629669280003325937502180194048509018464001580444444872493102141642333105460942576041173761000859745886419030648950265774317123815812748781667975750913016549323062509905481546475767070938913288951565766950242691309682596372700514574089694484269297110870762257422406044181198077541436009700774568836112839052424103257846652892005231238797911835700228706610570688277287695879772866103330319851196265351386691011663497919085103813141554085393493255489126646392420916602997379931435304855428269324050520511414816482856274925351250209211024516526172641552392196294595091372174383400396358539661197865400210448929610246080174233553320701438290364891341183831843615411014142375670459756012355046805742917407852788060970856710187085605313372045565673692457531254638947583898709221500957337940406095683337993862457630432465370206776116376611862161976563707224619031028566620401444163025260762772525536915222821097939653995341793966072281801584158364815660691663645129660863397647553987899538798336625420125057318404473238572378120512872030289938697007839679607865614752537019359242789049798467614460118648884714718109391667169468807084569263792533253971446555101932725331152173917543353726387624523213070116274798714121822991811452843794993344199010201664750266604079407912128079571101255277882048464422110090586778768225008868608629986174468781585617944542431744610699132908060219301861348442775162900556440873472889791788545949278307382380338932869341064554587979492136270808237057549182502502602494831163898455212205618896706695576535980223637892877626026319420345088257545022514803679131687275164987730165598216975026903620805664219197430655645604946465511272923979840768824735607326266716341857339697649003244835514617708095860154070262879607546896196890432744205254829596958371857125023156181372108192136532906465219590311573243931780372011033250588764749857042249239012537746858974176233225809874243348136009452018133355706581086570229793042890723868081041215195619404214394804150957450587774246767591966964452294838996918611866294948563398646978461311612392002814296317835372846283464308347028780748951222071763999525173449057785154294653555919420053432474827574673435493656240402384721301696938058647189067739618351300256436584478960291261499350958479076604817387395040574790868735625200359907961381685548273403568009432363827096101640516017171260809882146886468874881508584385820425734487245824275079944213620684941201750018998036578911444563450287219446208026888987938927017890654578732843842668756187082661043704935651653209156303248323891413524738949090174223717458616278322772461143057847506109905161154348522560488538228093578504641623780416801377746962280990086609985953692191605679833838505569715983471753638492115795052082553800025015126003407999354709025472273155825932586383319311175334230907620190633360285240327312658217218655921918996213142894832429610253815867822880584904015665102514258242719606730423518342756828407950131649455391999843174814156303302338089222449576168253902205768261590820151184106905909294484679138569819709638336100189901913971766069584067202935785695452773382544885479655252021497554775883278081614754492090293019510059001428207165118687451568376178944422235320886314012112885707744070701898096783640546115735508630595836271879098573873465933590845837063560455154857137151304376276626194741237337706643759498334347243695930623804018219810064029717206179222583603092470486804286687150712259131215295800730476882473575035413153149638326383319154212740257100468141999294539745288080125727934201659491650627149655015601788098657238189804530433713248376606799909453315042436795347438551619838404010942803616242730837505101195858436982733172737239896046412009258126837502698661794893406566091692088135494566997569256403073326807520355091172640927389396205364941329834581973437486754471545801305897531675287454969992087622201872166333786018388916298695247319525648911738467918075513828667871901963808209109259873227579273992984830581969443341262715743710438790196680868075525157995099509033686348584131071030292279653361901478867937074809033204259458855699324247854234328171178940375777525622163742774972890867266935435806873035547739570435095481203182786782330875168788518883396228371814675213204964173580218941178213058588516751317951753518940383543744614762132284289009580513302541519620567320607297996081342031129678690738008443664351435430141062374169744695263683377510147493096290138602060704842495395197019974555419559955013790313765089904444834782085011663030277919014500756813453190849287712475389351147147019368000125546317460531240304507223892753546969473525732974090734109797529034632657778591076723915846772812648639849790606097068763910765592521416404969710726956003328193412336865150962412646295705573008298849645682884350468113496149715825993687324899399071331783391331050959273099422248047792625393954834241498173821077803307020301288985752356172870363600488916645251611591435911657055456251842210508349474610765102730542780623328873239939671406803626557225084766469606222718823910690318801874962723110523751598986745666473674773036859733960624773929347258752725960095774402084365715725234253459586709751213497762350670293144232933502981725769247158389831550353606010482312548709611381264652062283201647912192635013841882768246590536790555845392229321598125472438096339491426251682683904070036128612479626061706209112449047530357646261148964612253812352398756023877839841350836405201076784400913418598748682916615612929433833889054581109587520501448241239941641891455751988471938809425639538327994026937407066584949643683215236868487731499825381847854990875014887821729484282665783808111600030868192411162979528369339342581869270659772515684690456759875209519286660812721928749394741964505108172650991756029572950877845907482767149721929806804279312371640756075109248220635203640585478422799221967513062948679198672574347380006904243443812379120928672115026284257151282546301236052447883775411435345151363495999083272811998747210046921677407465482631655591976860741980985885789390290774607944930573345630619487722001323429240193360440991634170182437439637987919430250308223048257669501316999760484645742593109212884228915469785438380564249971385221095506188023340706700468033787222391352387294524064859690201054460566877128364640357251344619902603315092710304311627260038309547561218630644930075423164808016648126200534191902732861008298414325594531377532237008692566680553555642130721444570147368649878928744480183143202301245470906266854310336170428535102439693026499320443063998589023136065102326900854064663421777785668453812710031681752771169056182081063708793486440783774246876954525551231621206154814522424603297735335608290211846628512093225637119798912281900787785102584038685147125735774644003487778874776859153952111786995491325218448054772117805113198523201011863997161029963606941170228731274939965949696432447398741032017596229971717468122766613077928283686214835635708025701335576765983205059099347071354419811979075839646125707749580824991541831394116999489330300664951272199091886346903337201475993422219498976059112580855651475022129666938782875650130881744000636885169226825497067653290949831116412356128603073313078492777300150895692964493205692492582905756870859222459690386442617052049693470554235511567570717239796412636800109562594815868864387398358871964741339863299698876642203988351116832671766459494599866429725901434341677706910474803787975846741835757975773868595605620776152092173161101863684729292775107688486831241882720524722487266365092295381372649607915142163556090264519442396690310515153776213473948369997769348429616126092785542184566942773156392354335595143179657559540446286831740118384268057662039367015530047295520361777973614839372334349943497091513403129287851846929469490156727359989686755540051724557160886358161513457261106556732533816935144283918401240649553984984374593608837749612994418812929065065905504738115350675768668184821647646015754448761895728723375923979447052160258943091426218015647383784721570082668622865998488455290730584138122809519990890486686665754904401791300160376279423823209228147155824807877635555828508908694748100969722193483089097433884459505638855490641112495504735399909297133306624243964201845899575454770758627567453406352627128457366005189670995199191368661296003315600146834862379045791154153983928758506268146643703456530591183445881158169925631541518894419943990376874970928222574845997868625732232858477661548906331151976447635790166471785551476117021078789089890110841443834547108038614115529477760140565289361652391807982857877527774600841661823621620988365847718773297849797104144948536181483297849199166461240950043108941021664901198890283392700513184644297568259510218086763989069223079730550772892366960331070465672410317748621840389921193463077300645629034912644577772437045137238174777848495884690144111209617227169315087697185779824221668283221903193342462847240380750761707566293994559253628112355158520976942537318085058914868382010761412568760077740435848976244843405858839103250583921715500201062459481096687972723772687794865696653082009804728581135181355660005190918074840434547094567363842465702176742558633450859991148229493458398721807569549479531145713887109606717988737632467978639661119891966717558085605541464970186453016767074340608632112068702300675307515017849342981063477237086456608797430076018427738840588934787471768108045364393673204752236307543964909659473229358223601720143381708700291142910848345207428129641307354452214992247944417495427784363375938969988347888915699298023952445998277741132846033736615903329597532898018576873546804908393522443046245418597739535759195774408955071866088877817766145786213686831767085910223883418147137221694856293245486210291816076338504909279869542233270657265045917895308808176804781163147169290389382823726077489000630705175313787720474411883790937097328363165908656062675083669224895458022501572739469796532708242990038073139484089567306019707438368145494063325468525939689049927724122816026819044616253492194835547164363371515804934792714432180476413829011258797698478566328150176768291263941945884381582977818597535132889999110610316972416023951880109946265661514697364359056108246178516675454204136799453541534093079809270889954949365482067898851720783432041948178904992268694481864698335670206840024389627731381171437509324338189533381201706679277898064760113219512193459149965595219165230818783477126220595077146434430987091443851571559079639053354681113606086985505104752551355413704848969012203143391421423953168151461098978109212522716628066900469856052984203948331116588779507612786295854805182595166361194773856977161690176384372415066451323992621321647854591176298024752153133988978003686154677677870761698292528318408166967831945705487004699506902900728395024712842633715130377763673376224974571400094268429211216934301797639273454933692180231457642555302267416630825865522077450312874935622500617041024327303143119164557763342306415908225528427560576007154225905185782277250328949738859413460089717960620126283088545281973534758239204513863569637448908757265328463290525869333710179711034453501506657519331038283778380074322364672643973365770326876520779805927960636333024874322662449556167036149637921028694538584679094396501710898896903152007407365862770013775722420861840588753247598490694316560481228596926437656194129409122986343441588319745482582378373680126663204603549014119177692948330281775480313612052929145569543003966980970993294719513796145435796888633350104290264891027092794114439846942544672891236032315015913190517123744931151124851080204228349911416814182314588065501700723499271080686058147552637986006698857748329811637570465305440414314366700448509863781780073114113237124548822105395523110708644092939049982891793005508921241806300104827736621840949602323898898214519224879045971534012220252166333806593043159298317804445540454111250395644220919681446249946217892738763444359706792053099690696410811149211897255577378661006767723887490536745381961360679628583472761457109334619963472106900245073917431856413649433305424762375608239933043955043542670912892345909577657104872201839171628152075110816716230878221458238637866107730218294968083368466577865483038330224479386249743872771104735084004841232418104204451149404901869206808205423699787406820147865706868814505612585455401493426446032627334200055208618119714553586633024728665425706480938874176463761572714852890254711101528679476493378248589661380947668692067802941413309695914666720148417989851036690988666749558073171525666399302821442162272850626927370232289444402952066726317476743499988223417331768765816636130681908656058257341509049280066726296947792805285426235807425076577005262350017169428604454520751434281858668707528274266478943563646341509617678480258767304246719494978661513687669481000166573825918704198477608797758118637354125047311145033332094911763026179255397098062538659876288654529054314487474130653436194087580778808666149732904185601696003721119752830122336230831495146637733032613784675499084423129703725929907681899078836946552960682704305323312748061586454296853954160287830253828532767830727364309881162846071016515988861892560509434423306860588590573836304777183590145833907947420324327944706478926958210201827024997949297266457311146212567916023057475412212591536868447394965547462396587564139310919290241671568135155733839388563048962174381788313171034718106721793858966052944135833035853556407206461655110704785643526047540136069309641108025913236557138133726411408636448047414156136718227107869445973012893815052969116749343533744827959097997872355342020124770774930730832193465005115013693636822272182039052894234990487331306755033889262775174296962587141750383832489170695144480114223910582554577183106165885926477957597446156587821585590678014165075904183590419161202277349951930457516366543321492001279213489606172285913809202715490670494201666974423962724604839620730052553888344526667641900826008552328649107973209504741678786172975434503590595720313810237822723476984415018340139595745454250427452008398668487525983955118533990700265086193024780752627841345543501209950208621452801315925249172044660295136249247895489821421849278556567039435381999494067954542032358950519494310507802244696462170969541265361394221830542835196246055736196408446322598342274964648750796097835433616803209629606328496058906214523580567095519224996544642105931677372606885442229504047271520844471466977794748093675717897994257127109109953689309622052634288397564639571769018625532425585000138644719298239510760034470465526114799947108251419574796270495318507654083771619111126781450583556476552944284684416068698294072204176780899206341458160217464568563357938546926899644442589183430478398270980037334433737059465437889944453163611186308800148546597695316486027287262357221923321916755293475749996959384006520110886535817602235969052184835094712734324264537943391358051125947590850287434612657306545512590562592153680434510334043794297968608411795590404440904163649488541941413938136802669044789995025026483424905927602051613054193067764321211406123404850728173181372133925963945370790422135734575290591262018667095931874392106597640579611825682010997674233296781082011642591000194394735045398182680011665812469369241580145068064928740984959796895587546501407492213343270567822374552737394094745954225091408771327731544293057519868112592984393025874190551974317520273219026525659084512663931093962228426024867489536840342332484094141991832930531830706297988419219649282399724218915782475416926180897894688885107165050077840288970299138911701892692892872561750941556100366932333885447640817402669289862005313458421721952749488981570954812552910841388864223995018768145790067697795164166515039929446186246903335574591326275646940040132475790145455638094502226565365415162657483989686036639318142065730894292987466175270572307015900519979319963785316983843920938290926335712215896647463159058672958789762001715187706428249320642992779930997809129228368646960775490541066760690740818344975938539134611117215408823391828604012700538930685853347510591239700565846846644899582737624020702016784388488561767745968901921805212722535446759202947413502890766826683104059209416660011043154116030571570090603961032723054899906813249595269765875441335135040834881716942362299776123397603175624528738594664508703739349615363598616094746127071568041577387704497700096270557890827581685511413978062222070121995781271177483505374083249272878716757338907581505789842127475932677702749725168333665232956698885000271323049481981553162608561063833901779174519526144700094994115665090198563525379483450760079018930081663993324775350108157713548117955238716987659482276665397739416074664415302709282095560230393824248468202343873407028415643889959758289143023630428770782831684844439124589151560286711929431709673557057319141251588031744070928195039380916671788628421232263788226705063037676832141086795190704973936153816524562919073812763802253751412773359098016124715290981527863602578205342547894364121953183033006116913570053794085834390162684863615807388267301237379887801298699555170517822613105911690422721642408277966869799435729480307116732928650291369305987080317530113983991677742158012222580637490258709658678421536668572043939838349360830256618959259371575694207188859743444758710702473887602314353696764623377399732618735213717640283342553370466214996420524857658314614869563031470100089375559690506813592698518262225787686559750265050132540201483912857212535339222514285954390287432688038666725842373038872190680696475402268423321008299557052830479505352594644298882066649397704084926520458538641660556817282231215147921540941099421248795326614511385146008192432382961195621143887618377818224468432792786197046825367097363160979923840650953757131833736017136182673560990885632868371158206763198912018223434071611215600436920421032615447466737555831678022793084906337060914993185856716704351575088926514177192276263691688211412596524076933996624458379641911292494716649124914778244858899315311451503097318305995421982002115119621898858455187204417260338106801715387667219943987998938456497716982517519375027121753043850471619689668059122008781142357937084073528111492983009075014915455880828937361881655726886391090634587432235881078828785490526633745224705508241809166513393587434367544056915114965749358640905251362001004859034617569134505220289875164147393276754498710976203231942977280672159466850871218093514235678011074569565627847864996041305126288123085478416718651573193781659437825937858789917283701194126382561140586131306191465854077859739764593656743603012963347417651696544357264547537554957748810998809596150118058600917435478553261237135492283531160419585281553868757105037118930839553685214580230783371838616092706892396618469599697980914495302440743781519288247829028508980610022372268499224535765536709385712851468881345558116565229013267295256275378901257324095235283975422421107592989086763104600561662240235216954777825196856646330563433795917600693965999566445417063693347731901623436115664719637466855219606056853947087158064794586976932189961506477933678056826309923123128903307647483805670352605498584724789405716212448725674986217673509441209795220941857651611149203232737849281300059151204644955068613906744396571923195579252827868526285597812134793925583526243368659343712241379847765304388311100383608345395505367205427162011573357614608063110189854611345543514006513181781830988203509285361798977637410498659910605792076071426082776491275850063545198643989953706386561307157561469943009494840491225601780106259193041928120147048439867622313234900916195364113263910466472773134579125793253258138287811154011503209225651362396769634381800326472560853426325815710400472091655231891046758004046844463658430374869931819613344376522371772706117491024210230536409784012469155525431693730959532986836380699171433651085784689060111158858589384254331056703194561918205896759679988330053603507417880981766335458124488314199903078321877595593742480903805566203975379295087697319288616054110490040375259982759063748326693441608216902821566625788638025450576829909811050420569605415295702495095706550111700097612486932392027933757922528209461626531875703950120629950570779746890804779204000150263093433418893801098954392298598309754671666229991530277582263029902380802480310456603650202722519621187155760100622384946820546337249666583797765165587360991138223749021372871320289963987508648662957007333279007709244278498248259981836951071683377442425165603844340768686839921106972925834334765434964956426757979224307886922530833318302661169823388214003585772448495290295903253243000727902939709781330117027625357220536843942078640859849671647162239106014641070489646838760297284317923818681404232789010470343498794045420127241404078607772046414124199485663775159315907231518321156908836581950244045757742200227006366283863995233662215355443983026717349942113368602601355074574881635457884580423175521726595661189554679910822599724825553467563183674594079373635766422253092910707018093850429765605478180479508195093316873653177595072896854403640674848012367630096272860676048039176329900767064369181322030390006695834183957104335216739531225038672256854608122033711979121631949194175091393079792855219881557751109968323351295229795040803490925172934350481259857106676514495785463198866913968266350186621712087299340155410475404344318116013282707108276673963072141222375601064857694700584315250273874765135061282973004515533273804157207029992331995263932045048108839363338637650927561032518018092700386888312597411770760789570055033392569654508444394901928514319580359931048111790321963399466940550897686691285824070254063674079346999979026842131152180425873963405303859894628828697386657814747013635634799120486347098697121125079274899380083402983254925378919871050536177025482298624795884128563088604545388615962585252948238625979128981142296880690519149797547814742650699653002757555434020497128139931201945282973441714485564220832150852802695407627040004752547050169296472925273672722995857697443920605193257116343444455994913735293025440868426499432536138562414080843412536591601061770382374095578560247846727563648423466763363677822726459907798328205886265412782812729041064081658039720943544127207542635683236136912715564923524020629900853753456337381796056553975296174852100176540809171584146854155503221694056627793176276094997716237095940284068671495734806514308398133376284627150713003963395209535853862693124833903039504190744137277063732342909334279470784438533209728558494664617502738547660747790663856279202877571548245461454612602851164961245003694350091332192746919529001959724469008109830588582413715044725459803484443145082099814779826613596462632279978414501800891300853396893411092645869206764503957131116169721032503002946411042264834844631343675052873914800790127393635352747756988039893759051103336466737814732479448141090819830312541377140780002486778312509271943428881642815232205573219701928907680054408664539629127814738710748743562354016406276867821967251504319596769346950883136448073082719355383971091981444031704590581661771031670129672756989725376843665261270977096314510838459826213487094491748320189595462344315362997259893776007665596689186111212434099360012405916176259811832929597685411517792050746303250750430631826765096316469936941609938506736869306788679089345804864757977277674476536483824082750897716576075332613374456098000760989515842073622535383403311686001820654036233423598786531035524515890089123155711439537024302464889824890135140233391104838080432735585447644298214564417038957755476262300402464140559220693214794985469140384749041836104618666949491571868543730321968905475009711392262375948669943064580596192637519504939704466867374968432000117196637576233614856375439260317255168934493889370312879672567786132610948590271728371448354221924876897174679733080501266134536622355579597240195194884945827230793376310145626229627137738448491784157289533160368046835257011424897436624690632518687901124393533707275133882671234672632354024303343986084221054692910937132852679758806307268507287926231639466935450635287864092322812891684318682201448535134540063453276113219951153794762837078123050613650391419541881205653258677684049488029419341898863403229719860079959498751287601970133072801213720397672180938836825528882188242784211032039371676369769240177137940289357658582117614666000918966816838124522098104857134561683614730592470885601418759771575713217113864481670965143929140346544916711995817856373147984765001682779744757985048011560444542824504609929249326701042276770525514140668795113917686118986171211901165894800165562336965404355592762100154347870223083597177572928696693170507440147249746154700953054864483965883019675323028926337892596204178158326629711733916948299306618009660798527701483983944512071706992004193438615858330220021606405624059019291568459558533489922360953239621647897311021473146980236964372945800916822968420415429897761556908479334051281729511996549331890098802211852604616374202202108246016668144085437153706196938245868843367792020868891216383631215232002302109165341040905417340009753707196541207055269960201702589886668365306806031362159877064810121842712597887008460000833676497659513851087997022148929227627046331250371926535723811172272854051796988758110329117751395488684424407535884330159902336816420131350568370174002470938386618306761116910210096702853754580550715602095205464340839127737650302197297690689136863544304662549441386751729537646856890259895253096996799959038769799425834731476364511818471054391622460126004932367582193656810976111270982045928754065068928818114159457373577711248358025768435464991772443292158993227399622398519678656102404402739107112100860068468133497014290205803144897458939371940934379743679697940175128506984476756471349028064874084337262770488821053862967024143812418563983463187499494081568682685125029151895322083054437825015363861258955915657000098507700052712041187307324505356087042438608625178235496810935458870608234008907170224404033673054718167586023009427918999743896189294386115898671157212499514635526020299362291196927427380036012751092969675129199710433752971934576355816363795591751913772904399543325336458976893564566597602939205173756204618561717831751858784712517540841306827538737020733243893474395703956177482652599556462125278879697227966647726202710299104821741457902714480512296550527862511189382178636348281971259955120086838286547924489052194036298544697677433636629329676470251186015677480251481370993071924869544746231047894060088214813548617133388069168337647652100244986619467394434947544518120270190903128372991560412655589529570836155226042216630472000273586205674356283620546441589038432049765940735582134226616708850828358908660265906622153293604183568436928066373303503487584592076802091460335178302819104267405646743604646595911919286201657831878638319944535322769915395870274099691201765085582497692974711807565925751385785816557223382394412774682301374584527122994256379981790296891912698797387608227310737421169863166488210068685001357990997149671754979813558756352572418476664545530943007974286965234980189191153396499545425141531125532158654179678331744386743129552743985278232974383273175254981177783896772529900127394420989886494755187423639438769957100034909363287055359334810875400666520287832687574753568924988818071788674018355156571505523958870960177220689977933331964792786486130220793705105202021766196614704975658281232074810283653349225536799060448924757442581280456582731592703817839122419280478336818735670529873186784660893453537726482683152636622038445066029189467459445018419447717652796299429772151448739329683932492230052728347323903612878517867923319367189712349185955304833945922538133762745016690772277693871929734017060296021997398251036125337812151549419041249800120904842268025019809123494938307034238897105578751224458877891378254282549008621975291762972825989016150037526762134718010589134981312995796427116868263513100399781289193736153894271617656456220018816631503288935332236354533602794275475342507685387944930429031417733229069206857643623077073534998296314516661253593917891552595175585128913885092755828659133459881000726182661726732616815802362609419976067857766478258067490013984984038218420933083507839495648564080668954394222358578021941124556181534790719835790303064617468792918122886341873819236274632529687602203755744250949918649573804812345221502206266156868075272194127137364302211195228935863188583117538522332228063984656221688202431933549330319009369525311810525372396914356932749627219706840785343218297195086671725472162994872497402963033401744777396342248608591386630501755663223953602849735992716415068927693594127376313351721724365972259131117687433388234143046278758624041525555917618845399713498216229957549773637391319079745484453787699784928871803441200789151079838410864345695310178246222373757322829806228421591348745552638953669775891920485509240902005116649127554357160690902409305843741339404531388058265422126172613070222730531594062900082476540394372562821598165657567408781443891586639554621179631661265334100140069832346586372899439565623994461882473270185059151998275784738731495694324125253143911562263665681007254196357963060140315983501865468580607998371949542553090981913181102868496874273065947261588474313854775216456540267621336089867160743605943651030897062119145761884819153195374113185182355368440563321155131004391303497847063862791627357608669241452557957118751359458586862704529930571068475414050492230044798966982923080930050171312749661692297129047149483740483510424909596337520487735253145814666650027103066635613749952529288626847761415800439994274414158624147695700818565068856730375731710323887061352382662502731307360005570715121287460421572553158347109060839043235429758791716896886955927542098735748065350821193450754074516786068524470032926771828968447591276883684169721373983017775720742716751616374437729449600370178767219704927061919493339393996666884760092414322150936769103892282344698870801276951494064673701528525774765091800338006725824325436579397114741631832690635020519467270826013161653903066413554854565320583626764842615962368457339719192361964645849367496856486452797885375252059546237250526152678716975390161635858237484126373732234993580028412215969057136269817414132194323143207304558607182791795133500234724934602636807273395834469249742784943703203029537180238837820708836200029396129570449279575265621923236747561422641110080065192866369466786093764310068448778347348652868601751153829154709920747747189013517783733236857086534545605330952561169922248078459664242989831547300919793410396261519825404790393730265427339929279476267077132983157135764418097494348386930634813336424947389043733899652001507357192834974020629726309322497952575652789137923451795318916155644029850937716964493535891536979015251452095543803652364484120944668441457852814473638833465735096920947352454923414893099935070290206224850126807982673287090795644120826736082653638231539211083328842611162433784464406520248559116449092120659205916842081223629533626285134886079332339173029712543603833670659845375788592850926230272095527329726641851342366439175272574801434570457835712876624927976839283338708566352107393609563948405498678772345399706243918278605561004735998038766750299067685328862351541296851377376520398091880244320104277415594986167139118582465779058904050793959289780041881259742398635233196799592926866075328817546529574414831965985314182719190930055518860539922641417500015537026224574582246505097373318170549606005320337197365565636955675021284964446035950965163761509126130993897636051992438347411616032992295482033086079315704410123089165558075724405442921485220383369387038016443177748756127072049751186826476652470724821855341693197174330409101847678210380958337499691568777879785841855972154976453151216776440060020149738429061676111407472251039297346296664361393611817626902355598908891406968015134572542989279039381745937683287100439490263492508528646401977682744435489003455057871384809763704815763788717773465952783986275966685616767462735487712198780670701293171303461451650538268984827468052010597584613489227824178767704984117113860716055007290212416696757763082146645563322971814217732103553046756650185436169876232606703772800824109743946090309840158128256979199023048678719463165164141917519385721234521859118035825423457300185500361009107001698301373462776348996316878646776110990819957653061369948352795166173117636510102137377961184550418288203597864755203827094018774379390248658828914830815692825350127892879969754409974927299912736512967777823182324650232594103755774764809028624179831411773670613893173389833847427487650666676390380409279151927800581533650846757679108959537737355631958708771991974386238153630366083172945111350588763765638047850165979829502047171108156899338203624376700980992968646618324119435799419751619173414710755941952822132904899891683524820012601648091672542133251902924725607461713520026512298885587604468153921594525522074673702941007416065585176945319149379772474630166599436782108964380900014796671002525326399249800912511801692552637780712386854559289087213128525674024036290338390433906516022915016967538175205611861155027448338820324375185088676013533739379183307336564420430092818839786136434973405333741708120210328441905794078977933488938760796673055891270232587632717248034217880592550465204129901987773774011945224357826488199044634227061824916175613966965211952968990783674107939203067287243549643256560280826405864697574460309516079583500637670479000470990774502168299904120467721109211598495109548366278768777079723427412206499632988192996730896094181827471810419448414329107933696608633862586767960619011977949266311897827116637260553578242002682187657986440404566302498069827722602190310320559866360345683029159903086936355780058307143263982635993096098745621403506186871281845052396511799793388364749823196841000477530256974732379604854645133513538884536077851482725774866531773860803706682892162587680466628643196662516467849681228063267782575003696199470662488793091237489895082222026037907341701634273727472206772634575365589782247165975477884040228774385472116424525035816251224368081035066418341794289468832282225936905396935714515837996648091163206472384613474324950606580064815313289284149652956371791781373581511332582605408085787762459511075941404144447502371718364134568629539871077542600503315444964643495044360834110680285698523319088499397533648261108511376772871643061014552021832683679791081674276856024530027684512032013420402811713361255943872132887582259648499559978754700775891989009027961803786769866740960022953458602841156380837985189228066495285585441836711734250437305827041631543919296173159713627451685032862986613622906585782976420961703051618769090100497757409290991121475757419454397011024340459717240723256860369487242310547933938606065083896024828950568883221842285179193370037455269300928235501971405861985185119860434554327468137265453903431505971329836122951463772441852018625545087944609702933619969101749774124504697956126876443739999962922153759211146090772524534975559674295891837075738573469455494357651856605294572826293615756278216771794232170856771985254458328709884491110698642624059705835146212384190788853690622961477312295831852282341030740317174398514007555000823176480796591998512253110765763144344923009882879354890995738414945405814227394543615233041154235058602666203170306681630005323694920665199184561758089043220049979997253292496564915117001348135804271468138504836833921343927461704114736834011415564723627434623597464942019624947256987618998913122614073420013241830579316676410345667231291857315064588510248509259216053142305757131931800587655591123293640300353271575671366913036290219907440285282142165070940682840797929843725159149036319013081774236710096467400141585085597250769138581784108563035347009530231367270842433567027909315157792625630039121826382733499190058454415543777298867910318497964980895019641756168375500024113854840097622267435891924475009196139779457859195542350907264180899416442373265604618782434141078595334173918022562541605168446217177040552844233240692005096865267074276814196596790848265626471469679549409428923938239205271479263603980435936447745945563821637768986046782112205513099965128464896967259222196253385592919253614176847334706533230876635438310507034948016721471208587714261406856799621407889552007776947859159237114623547189968373863367012840855137599727866498091912152220336215785508046177370011836568600605589979610567072466357151906818666282691989406676726258723244877898093305603776966049761679186562106799089473318316081751706967152870528944783123560673582536753035957864070173244002215457883507033021776740200911369958911921242254025928021039006404622918502088025903836867616490763021753554744801029684343324292095282281499812526139250538679170421824655319188131983662791798350478475847177300397574915751408923335764929873333853014416512263010973147093814696077977309317211379731172440578299491954308527479267160691941936742832506895265113520045374311525685363574384716763065342303842680255228740709561117040370506699690703487595846747479282771784236160234368436681136346253069987531591564904863879856304530277443299436604736613858970285769326409189415583534641245989595532932653051139934108830948249245044353214263118274881728910398669797746584656723282638935794479142437989126085679447667103195975393375002301450088859131592857037516186053917030580342724321240429133187617590288785699031289263824884579297251557174751809409360187565961918441501991048694161312726978647557849645566502359925086187587168391158888843345771380114719148710287309890807319620550293356103654041040557855924828408435069749146085502688519620647847032511333607066157587366811869254720109598033380103897429040818663985742717656713389620241256103081364473777891767437938020523043548913581839978849678054107196574801955463572034051178713382214411560101404408430115976985083491361876240875667664909957028016266993003815861365120739187417537783331481531372790498582386879545738020164404333108377650282497134652295236643318878307920534804131008580822878180474682390988600579625759417521594121352844906272678611090672769920445443719790749669845136418000066432737733602971550023981099841588561473729799247632348264887641720741696439219323965193658711102682107360469696666143250288150250240716177808593352519187426401942855905851489314360547324158003320369573074683171554811939024243649549354922060266874065808305273575828757756706492378514979743092836333887274331208043513688800794206645992182120005654523105125147624110689571173776628208479004848552906343302369368080337124052581496895125212403646844852630659465741470717958815463382144959994715334281094342217854435224193923960989165338699387064538749612289066191636387958040748888891979194613375168374032023755897359576295831107910443961811781055669370736649819881824417426890489252842499289714984368322098702838859375023664298030836065136093434262827794785585800742708600942935785558292000879440015093408244580728240284256711875899510934049175699636103398365698828780593496570155993006458094234763342426620490514284185052966225103940860088481033076398358003267009603546163508216637689768195565305794585170664565286984993836684647217293097935061148368337830472627424707394394655227106725821611621840287739877827495470611750529903438447543197184885239692077478663611326456352180419603935862480544993120858459977485206511554360426255242286532458105349169459091211414740038586591352126317649344976989486747014683843370375444347030436875497954436500108343320961865264236374129167653706986623674322980913569364751488531758740942400422203665251160828476520987408369115023524593212577266317988059449082518768553282845909316554843916041213397549875963309879231494872569860094999165857340912331199747292801648512972352294501567532082140981039300632319706111882637181931207891603529971167798132539927945848234754837032652555761813620714968058027751463545611977194620828893340984609321005388444101756416116117674563603721676685714802344973895128556037253140979405742860428163655905799040958403270152955467088795637719905026156917966250956792807109081973067323953863659330163973416073821862080289815570700160666285885577023743276542333041224007972468029860606872542027491526682882527437693129311802424654448890671751405622238521941213206553407485410132358217886911698210948450712169421679558976109582254791972873792142133833731615642073545959905030775253663189651629600491273050994852193410326572674601196517056091426118048164535816861712423922919107016663212185483314756092370805881752687548350203286082694509740966992660860050120313366076212444547973724367026914731915475319868960888717655044824236354958348228405514773057915139335438816488773018662481355077623458851594667286588379072939148813499665253582330277436845900777170416522525590280040382675835369484679923207707385086966230504172957453478739694101825047070197732691304532944172658222753816436518662619743754991051979889833452489242660929012045342216400624773953903699357985826895558722866599339197946034078619238094997745200453857774201653006785994150989930539071403131446375542762576401602880499352385011719496028417992353721166596502870780867627962149432287915560019199454554093021335785958258104211017469419658433484618277681196439507796108374284729817895519775267895761191321285649453391651473231233460560636495499102609888642498963590393319277848900537588660405006198762499108641327961765527155324651041853115245426361779330786071042181020125089657139409377668754383333047480557902590731895184308583906331190463765416425650070777764777196005582375925135711393308623460418889238930579452121060097325527941711261174738155785930262782354334794503967378455589817052599508028415760706906677233863260130138464235735027521537981579043576956449729129384973697265901895084179004960423416441099535871654511989746298330689476340910797952671311544369974584927065818194664134005659129743434067499568568695287174505721186952736148561490918325466648947179755866232583296788594288591115712492588406421185063636824061666397688251610632924844791456773749804554414051450424557817485685049084792592936836328636992059195609898417036238485873506416517231181902908208526465427451459737288163948626240951839323518279116298346055794336757064749330865781601819002400370554648488214817279817468333822291378163531461109838909613275564777656487491715474596899289131635923171714729705687977411039369486858648637911350080385065051085860209238374790589849036089961563090476090857344156538899486546536387481717906522824425824466658394705057870560685514217650713800101633949596135138701404413444939378464410958206575130317414290849427610333267867966483614950775891309157667263286028444358505330686032779937553806304474557936247108846138094031635344906761978300705444797914054417883091584992560353999060681679434923367598192675831599592102321469901560087598005367352023572295012329367675452163792215857842316452620257115742620828485951461780300980428696674935565693589597778183146483668770789311307779213640744727021543646982237354327087426510657554006255123789343298096641293621003909104436624827732632869730902852473318312808008499919219636647812725855024247577757569529644601904841283302505065827611962475147619709193391098033718793296007939302228918143170246017507359508813507527398904031702518065619633245707823775384675562811713164135413949918419691861264662000210448322216863798048402860802628185517904330281733035675117371469887423199880554368050703057374360034658794272145876814955340265122668956194760944430677872138360589373824707106331357326256670493574394764178100473382117179442994376163327969525183538712954475013227067193429223716848374114322938949247310870115563179142220689114689660044611113554923669482076233999524406832985850761437789397177344937470949564189684450078001366629834322635192758469553471132131947823638234521307580267870993437245374032975908971212911585114484641569902418840554816214417834979945091369944412044750993516572528711169209097046905216018302462749729708443450846616954165136300849474819413128588879606766890951829435290862778435600109543013075879783089911691290718967238913629804687848053454374794399047864971804660546768914001775286900567418191850279066959399420601144938405072576103988758598058731005570230810776776964108972384543676652765017709187755111223771452206412613163508565459451400890129338391672369552752443448428455174953214612771148797873084869671344702443595467678933716604103664227762476997712428793440597942719723147012936762785610627228399102660071881767448149469781912990275795832056256253006886078132143333757046956897482571253012134295013689949773913662056998548042988306250357364526569691420960723810124216328199852111898830343800558319905554554973052823375077112583609917580297739520786945112198517286733386403680007542011137051743376830874659422898197753215478335560760142100042935053492673644278475920755720968641365796812678236637308075326784930132032293039793849788548513959618730252801132064466849856188953421533367160689711259869153504960089457178747630721385875429116248861052826543108655454684255673831374784336533033140851584908229169729524702860425629663957664534717391290794633974649793636751691849293350384874430353775221303542308476624815903076342043305048252685727977060215444600833899418756917736656107958236559085164416052106847255686379388990057505831400085344252255711463336712804389142946738687099764284092944736079254931043423360125546020803491426338503826221886737249246813002341504908661868738947854578272210227748282255486867891576296458661088157917362709888602098244730306926216483067196912792140663022734404429424448935815823162338126635218050088274497473542337160454864458586845234087299868855625443286650471366887461318902876839106603755033798557177366524085448746234505497063118096132783753901655654688830837594329530218878747291634432992678181671461218263172994280411068510925059917837095008493963006979438542867688560783629905018837978093312192504519956060820693715779246066028692340647834875778824068801125062499501370474170492295389647250910324440931876717608139672694371125989498322177714391138625622154865472919412339856580568657073297676062933667708121612034342774365554983438249500355293016804967826149733326413552150977228718753314607821139673969236784456453921773889113583557163408216138549473830585463423733314150778804920760476123401850490704876236430430335845000420151685051485402832441775264602711831371528006236524763092037032393166398259979470254213852204290977656410063775105099126056434552478028457400975677331749176312211966180148596635774088952844191528788820802852188362290824226099531999288646079593553917993041735653957211710889378552439207213923114557691631440764055002253018644765210058396639967569936732550422608847962083524534105939774047939130859671053674899874783898622642387077540741062651109436390548172139019907998781645873556929132953678988794344240146117715348212920645097987983789083969793930894170048403705360216478859777838725059712165798999716720190617305691753819284572326585776209222022039007895712373445387679773182322876126541780726367500854020174308447407997028471997810619543365168433938788356558791811983732953394065196736757047101854939097635699652165938481580924234128132480493506557290464351991417602054196385931247806160913913652066517625032733421353832876213283033699796174691164428926891508066638446143977672972845901943022081318205259757718872993649537537277958278878941377586274768443824593029121961576689639651388766822752772753201332180806975430181529190706933848800706664373204104631801686199796900875678036891291915311794381927623186800436292005623086940969859643912354745639958062214819523138513748798111978865834144756339256955401817153127798833851603731927387374082863494136087962151045544988840189087984371815803473169453843247445497520084829712008808371607152209956468821809182016170135986883941410066413496483142347466709623824366751931690033057553111220961125440721441947185283889647015217917608427216334732150826846968115319742107804824841633233152716340265238608038276479486968514469045779814343776370550301976510989762985208824400661142360504795399700977427123511306638422277131945898792734720875545024048910078089542247380056854948927465140261535610780831319910311883011164913943126222409028282473488072804925287133861244805805483690590325094164151881289276006761384731299687727499038423983731198641391286620890712564689184131386111163576713716652621432676625003715860297733614328811029370654399566878022079943510687764011520009104955079136713266231600887216110454483237694439211863772038972381352299002115138260183083394598115974892951083642226046407130696577991203423890137191817839905200286355159489324711942048999330560567917491597227224027908425384317879231269455904234492070985973260651670002893561562586195679765195737057820280209995125123474328675053429762272945561007257213871490234355849321719501432046773630501448058465459221785329499227943848475254546589010944203450486411394222436373505687007320573901122683460376002519621901471994442789771931133961109509450731567142695164854311544753145597098662019665968732404162295394876333032804693379421714494107515059109438981755348734613476454626246558653244074105082900458687421715443228527280343089269962192726370742998810877422397985619320878649383159640424554428629162834991151384042002982715174594022295960642739931029611811248169502683435817241434087808971348264956108897650347276386699152185972380315967329241680498677255788218191226328573272606478853763695732968116857944799542830084084551848373941923719729344175657467579836871744807022249648893041927106982387771435448676184995246178305643738429845606515281728726354688558776715504727365080126392654899490851189614039098983551821508563890829976011985040226677123030853710972409397476286217385861853008592209915463141909428110303051607210430970578781493613698808656330118019949415701074998307417728355146317951016527597026264368134677877102568359736042206576365000141376369216189543470225771385994645167565605580836918743154996216155060305796098888538563740664940404168636825300397876588271123989899565492255498979905911686456835030408527847259632288561021493996224475215542677457045167584689857210118816438050714553578661763941825927123341249669290719700494715383873764319391251693339402617187755446710772586438894248852890480513448806774284349516719317284065990592411567727294297084216913751807010798430936439297122336362136930219688610175688499666575008431252202893989674962356951626990704452396914236283572918596887083767782524468715127989658298568164836402337960954277770214658232902290942549391797493244303064646575717343508609121067860765021538250945445109977796273944358012168467151216404549094126251327780186360013238066926986210747043661355557820623600003714716231439640026536183759920397714875150481384785571731650672526179469302432692784614649973022680463511520913491408912766968007484285315450093101708150036494359264575759761231772804323772056897971375418627882320627215056735144948830732836940092825760912226729763508812881671259262318785547171101337586424310455561471439388751536194043593824379668741168637483590302811624268395157028973115976966453209428342888388532743267409071264429001106043666190289866687822853219443039535318034975717527333796607930777027032503914452305236964059653985837783389585995332975076382232535119694866003477860851961239082115869704821942358657897245764651955939437978998901213092294975201892633326045169644275834822640098026607925946789047328423095956432859339247646882050191346936942718281949698319953589580533537058060482261160989730436902352783280562109946417754607243502275770991767963372545204181915031835144687621964698054402436373008314069683750988274440010324632505941788109555007394004502102092354886504474474583582995561990805455762036306240820080848560243870750884535979324608312115202318453036646353541118655315138512866476112928987591410882976632908579994078608535731647452587350232114918268065360629555459715943733521392841004957885109185825447209312397977188255287855098472077194050466805416059241406358239293326774434995887073724991278578499531381659330420684249456620692800791701901046854267169540285100314156875520193458803150871434266226869701379404591800244955814963265876825731539653010735695989806069698283519826826480385477116653941166079588929822466305890019859825952251516648266876602055079242892832596012586142537111272179663306215806302991624211300902522251362940755211841272232150521549787931852428216486934559642847026934137263097724462476056379237147773233394141305487328976998260946883212513741036382492912640494142269708040888175727049810416140432006983252034474937925634182701197135465162624806528559567793225700111022260771261017040815883716489894050531054334651223402452969076955191141730354046950000249291143797036817905103077440469541195870793694544134375882517223496469286480490252249559782011442068071742275635431748711824926431709359627918184079635493341493719318316450711870044745305111761315514296010217582835230748327569229975200826917227541895423959027504868859766117784788369925428382841349847111043568978066606370439699178025282437630562300716394061580144965944155409171988291414381870705184863714574458621058761213809877182420165571977500078669554370781760329808497199882270020091944469570393416075856494865920516423886222196148736091545009056841325492226524505696974165161778111623577880575655175174457759155954642606116356768436665107746039649645794033780861318780129300885020251616239243196203203939186638381119576061065690473351740067206280130715034535321096892623316993695754999990938603435624005097421018419795111657525106849153539313719638509893036130608545315207559425959407472197719597202650719243276364416284118718139572292843280688496569793190965137243111434817981012280113738119126134236575183546679031542345461993297472294217495213219364700048542737102007526410945594407903973423849339375317054515378421674350418102551476343343420118900103403290714738370466243731336010231121069687874278032101299623388115533487760856342942140185032432442949995349963838384288220450773032570203948889756796582362694059974130902005731382782130906417682667008543002683176809329816434558006926144684061602300523610845454232978951875450959039970338110381865070478075114972732717754188800685558760884640987463686635455266305596453358158760893976255952803437911944488455993036603951995199823919297072284443515831955917316588233676651157289183429486332158408709281158593494437793730811800637087349429219968912458652791250474392456095285195077822069116442216832131913225702764576409567121277064427588722215079769482976615365718445591054103164227422474516278257379405323279936226705252007710512430434197412236784005662937481306391638399155387984400532479029470542428212735850725861927254447204404468604509969725365833593462798877404205466200087927421396444368266586247327221691431252252257081737069084140621016008797590991807313238788192815061862674944671952427901603660587684018418571953064483315090365958620417114353943132477640757470107921127404107326057612061611984223330033785946669428291543630803679028963044684137860182429218570907771064831801928346492043418914585242715734376913041675965971348596549218243738815702279848174356157655657242754780031082624278263329577250757465267580825732302630122552289614278316140076502519175610746162826424601446043477999733988938554134052074868333999731944644530168713762791024138898847546498472495874918120686633978464503441585013242451598227753902978987416394325572238094155195599254679936473607882531366392578529103319358803770247019766158278306404469669426194891659839030638672445578525024578126320318742125300115853780804601471385926907950160813672213760216653762485777537573443332072429936538480030989401861525811187277062904740530630210505237490459478487890758423547658912584519083632360067459861718504055052907003428217552199147384426107873277665035336276926074109162691069116805002145288831033149090639162195346936886499545731654409942198353935157661673598272933299044002106876813701220100456138846656302915552515924700947245433079989885859593267761015426201305561567422383717846160829581784338782039020014535058460154502105697994029048186746886260291582855804573324019520646617959119454082679850786854345572747877147394435772753883438400419489416056604179797038395669704221563252567102364588054027145860711348699322099750325684603172204575378400165204798208305243349923949815821796040716460910967907762484517595622424149757080822945126027386775009085009132659414921305166327915336175003015558257818142131199547620392675250357435476933491328038753143023557153724249885656795461909544598132138488386540388843365756283731008940315640620536096137699788964087680440730616021495355719847283745813027022604743164985049451661348079796353373499732431148038751713413372446681928857488014672206854088559758925460678440531397624468696736387934412006991115492920784551903382948153996986684086488872492359948913282222973670308108567250684934788054499354552349103537886438559596366359407880835556569852373923520454298169898487316614287494797810127044287177900948447713960181916225682342231294764897750535178970047032613336287531360857005487676354056355907982183416027373472594993093293826415917515324401007601381890133023818412956384259419454218201452755781195195812873988957201985504391154489415359562956251672301197783227311319711064248118388545117266159632838191594901908815890050969295356759605527127575579440879875940598791624849089166881110740250051201254679365784388069659555721015655068931436988693447347963710390994900608759259593115678919981710250381345614291917550880680940360291091300920968954215512525462256552261364760002348663481803922777585484852863704015885688321567044341559404283363093151874516356177228509194587060018605994054600507016709062944461549399523117440969747194603946790886025348813605908367497111472226355457156342212707311662840630095208388613916863683570047515169607502119644481879282390525077523859531904757843694034386018309320315257828695129653975296848605441576710591118163516626115814851924366984504120337966657142684969472497781402686591573412458790945630907078589124464443468600338372963877712854764839200023294169869320568911276528070159799693586220581239698729091179373820729970731958639447361310021934161601437098978740445573345684683083113684376452383449063773677416162253129718284754525349788442872658386935100731212348678326454320476796741475533534462508661383296531593869371507094663702546071465170832476379105051461347481667516604579517386834677311488311472706458616813139506059624042444075782448067254671915162593639186711934586957991408855775258131654648289982328195916016414396086510655646959816261680140720732308143937192940687136587630062932034002329853151798735705422526784333133399484167008504759168461295269426908957681630905343789758577643124026384160123623753342364603141444758118922065881971144822237497407868391825366589371296827499768621524044414545561030550283369592263165358662315674779920505809570929094367349202303001233021191491802765028630708915711665349920464265029517209536931255920355687281804265956271601654531191653844750998658160976536371833206827470972936067464633695679053301778491379677503262081681791797141104391398063520554946712307021490316882589990473334356234144562899102008151270669220469551113154080082976638520268463668759901525328889687539549152770703623700394096780198406627721028782903858290368036064451741558759057518372231649065464426425659864077919788315019540587788965408063140643081378586146813563847711851734978488546407220945721540981346468734348919887939288970954002962266415679080711820812675732751662039899396562964857929462282396892311940650457588843085530852738087525712556428831546187058212641978582199168063945571790758133348874569284895967052184990654507337893408413056649359015101521332890015914679889464858176002545301671215298473291734404023914993912467476734519255874393498442580460023941824149199005030111059724452718151920496943076540249316092759065292410365278347918133749139377121282076937125909393155736592615113093055266576088652050012327814988473090063639027951511254127861800337963477146028751482026571009416950537692981235654149567026634700084725950777460269524886609316366245075411127250359365370741633938095477728638865372517077326852671457515136743389631292051180500802509489522156799633485326608969522468647945339074184331845734707417819030593524930956709793239004347358887693033302190478283467778589596572883671639593685473825973874811327081563907749889529048452925337070850630937018301038464609202124167327389474935577167936617389457550235075512046492093153771714187363394917139742259361940985619413929682055182890711740795620966483611833235833238577432825765321766737010961348081900137371318026766351947497757500163127492619449968768062978576437715577784779240733750469483317166577126122112182562305912951744090499934758854033753879377780734288721845590946970535491745130440207741556720896670740212359733570094429249851810324110219263250617240803326168884308026670378945746369605054681500478448296171384108506970294706009051708105593869049310425076835623413838889841516913473006358826603328761741596102854951747195663515592777068399773440287831334766719589584885805903864755052387229044133259751175604613097551809655726200029627931398672910947209700102862946949516796628689514334646952752457257457284919404276449634518583571776016996080979688203198670702347171103729785643050563097681846305609822069243269404292978318683013450954991980671267309985092594512551499484616441083570544571175708210343472405285145363921443303156421567389538619676887147041774505578306982391758787674345651318868456081364918720437083296310218932941480617748062821428493303587467292503439336393543921866840095528329770647983853067520855943951245833965610052737898018477592737281716489287398762803523925850167886298741352307515982608267250061075743025666047253951144749516338687857786919864910642597105439734580815365846682449785985904926435485465667331753510546135767066732782783172720780503794814669134954534524402881463194355473795120947221595408345448205772228648748621982394722604854103278791837056736109863305000105785547130125668004476660703824377164247177760480214780325473001210715001207045769541524591844889314019251664680413198939987383083099791668278548280073989431308622577750134036438215765497474715294156294917263736149454092647594832725638332689992991576782028332238828756841615649864722179153345938376935780608011537286371128828230351775097332578638354064190684120605294601040103665123450038645923561524617225519749260489411225504879328813101404229111920544988185536244918963553391910155974811216630281073063311853911770928937833573787425684754278021131323592877946778955869307648166592920218842881069332638240873489557183355873192146420462993863025721150040859934127033887950251853695044001415289834906548181193369747032231173661559909153735548445638674460978969722677759018528694197957743340060476877720739750998929436984122483548961182827221589292320959306427474577716647899723915235520348504910090292552983368503564148479810253112370833583259171341721345052027183151652839055456233326538015226502997302790075106627492541515569254799805053775028160705977683420079305365867227427841134147116087159063136855040716415512719622210362946785681460136681761782434776702478969518192680799834117848559318159543026891453807545253924457318834157893141078677578802230586667157208407514677502715613652363187696359699004820777848983187320984158714472209505218365630238809856571667580335593839995507641430775896487591511010806171125525739187959662256004791820371948819376114801798691098442701768376285024472769844976698354711742642773600301272528747780700391577571358786031861431429895332833965147879773255163293351925584751945578537680338711910804343696501467701574589245149819618675471827592741867607124470369623378073286181744428891479676761927254679555897320600589682249704133668408737600019241802784655697670193973405666682296731152677317959751358548223183189644494380080250732837991795799982745965282282159554363734113273396584021262161488311050481751108518799266972526230013656627498854365558437173529654448769692902316771451018135085114369190207394148231805647880052355119325714561031889862583894418620259905371315987684417574730721172101810682926091601058627494947447200471299934441234659917885139796213654311441676211937029258898381489707802198352900272391328677013879474610544504268840723026413706745540225757839835129093802300826200467947664542132336905361108019065912975233183253973694901852852212110816329956418437788238121508255409818881788837594482726709756870303669209655815197872233000067479107605444479219071853095790942543800251181383856249737943418933102545301418200582268932537417721563637177888348591502339194982711962781154720475731830072813992987639046257942258863276566577558371819382073073444980613441409012823943652027741622121532662271052938493026457847280124641545425177346780583203934320172613140623740158546387380592719426282779178035443484783623358022624366123754837169166700224349931019764898148543926308922327436834730685380691714919667109905335965217839020332376472354135140113342101577408844454864763713355866234824914908787650478485315977489070799716649594933319172340566808560808721271598190458255767829202387220139923270077561108652967993650584195588768074574349917408992106876406748539790774703682456479624121351205648427121054408080495607637650307509959135892379405043084916774879834925276215680548218405961039117366950882110783156004571779847406055767743209943550125852385297787900946387833002600312222700927165358670975421852436452798578870750306822132332644941860835748712386937876086894897534979207710780359193650970911151246233963635577542987938313382698241833533690676615894031490666747268730881782290044833965123485088096179094540644873858591531990078278211084172881878084819419213166761812164108658545822350993805270506658149816265271455564645498193784834803864104591764588861384450679770158236561217139460564522472089788591430784345078701624103436448982177497995348203115839673710075501959794041382289176335858974814307566482850422101808315360365927550000945874801084296236742715702468869268137424638136863242311445155529687747091983205536278066729596446831185445354202279743462486340794459384479488969053610940975103214167814405552482610052933264932043156790683006492486487676367098456499320142525878521369951179545032756948924426141326035590558204624894126451332944201688871888022969624715345001314238919009749676689014331491758535009597882248253135317644332695877595027436545046970160274884330337519571081551755035239794577116392440516686294047355675431659433745194100521405534335781660669562405896243864031557686603264112399790048478586752559178076622268859714050948058361690086006593129016873622116802868900728735985845689313121557669242167704291922872069357433041987228752346609405825900559329368081755524220413279099036314829055409900418592582994985559566889758897851653432049677618052198793586484594363140630953227332870753629583626864711149263544584812084990079758196540217373395007381817777088791285180359110814566791013012032767644034425323890107980891923973138318348471585873459423967277606702382725444187503771861750689365605529148656629241153784980177337434332515964605479154173844690445502431761454459546710395329981932562796088074339894784227619686199604311222793001832188185223606863570767238569917750822647062851601095152866445715855750581643738106141074551431561252503324128949799943776777180016605827200904271486374547801178973427777247201262906920591627894379581246551221754356863778876262956035559606737515961816853960511554486447708509380378031438857662244946614470143288370245293590523459774013543255082158619291560260266267938998745201679163714590993014380313917956430761240784878465995839034100216700446752960745798826318976693193111939495987768836211909326224141873199847663412560545965315865008952378874837593599029586396964815314068592760856443348268877944897327815655847961076545717740821308596562256487043188200891394384222580295975863671966781960418405991184859493095270787298886712746171095701562733586673822556632942609076094533756751927009115735880816542131925699382807643227662204186004822520144704900533800700204112925418126484415618633139744743774038692881690267729054309253298729863793699387183882349172566042237248201434449362239914140707455759642148133016734367328554088029941837179057459436095458113873722951600341034461583497680263442181002113554536173087345264658233845385075049853478113433112618761844722045853061188445729921821516842574502382657133415731289898951281536858555880615558457677263975067422031956283868296733540804190347562694168555086398923445641803532127326099288108033183865528501388256113739676195181565584476712415093523892144030043711989416626326925937302142669716869751308963256707467477129747299264103197519303704696173523610295159359322492823279701809363806402193973182709418504656034794071719135094363451420333665982898480366478886810460863435184559656264822711849429705544518056457286341510208973638092836068774191757814031157165711070652254423903528946765714611235613843459898117482611833044741745264587031240177923894194699965626339512245859245736480139563631305459649927737484914448293918949181490672407663094083599269027643169048154748348500576341106746604955167348434813956215290306544510466768522075824737728078896088704302274849803944103110196883083762692715521784714442566902866375053254016724747612462237937302423801639061675614653076485334141408181224299376275328424030510117077362703401653933163004195951801193474909991132639221330744634722266151407548237941317774408397628390936577884850721228758950138148657434517164943978374171126612594520939672433005709468161882033795956126635680585305894071871679731921560321929313491157329327627526686275814268915932593258871746575512035153049126928140201542286221933063773268104559512806662892321497369260207043088066096095360413485146132343516952825321853110732332929574246158557789839590440141032101736235405701351243451189391582191258443681146847389983319076522736544063213547470516287228514008052211474234156785227831962879684012533806181181234095519323522472208102514492818683467025536789570795235906247926251067072257908990650081319832142768666311659979891145080154626556926531652642900469793547136684693237732934954986901574945795437727163535223412054631232896429474249785089581517400835852014404439279497536519936745607608571129292068762400653346748936716335246868864432798125254819261069279806698819255484063989676244849394433284392778805252187840219061826523582726028046691253627358330453844781170134869365302792338203338168846554531065755420292724895352766634302735819347721004522202254023376752873904730448669854785199095044877664135230455406923471340005337662787422104860039769275388459063561229892808015421019948089644725424156600658944810872650944643955375486517562009077079003108435940963731341973109020366968561358581585983140737702149745690364520560913137781845711168024472317335001942045991998699881121466182300361688615692555678847933364524336557615986322356361092677160532410058861840920852648449277995647328167075099614409693941848388016813540048801036097790861908633611172766204472519015843952121730751772889031746993355769983164177520733202719086479103245960603062370466605048979602757421495238795774066810194977059382214954051585650833602314338786183814918775379187058655872652485866285211697518376859293771730754307183904369462117270079501212276254026149993447218867028024136527994415197808567125208255462325345354519620141245356503884131776402484154633689809380319172359667355503485819223238196937374893502860977858492646202854539241563368372795011653938067048694292484114465995758743715888602480239589870861058193236082207557462421999829769041418985842329835532435024735905815450788020128988065746009410547996419487878242169964439048926387740572415084032109148698565290257232262069883233229224342106039465549895061482534930424875606508823572703148113222302638371909082474598268683311848752317446700879123448592810286125676511558194935152367010641605225617938283316679385487963355986968474077743701952857713116328466560433081588235333912036838918714248569207690470779385492653499318580716936702149098604840823011194210570666554235301009680580986567343360509015092161421261962769200109340739482226847080906807583086396683362443647592145778104734688702808516162912085103540200109178030513388107681041219698093739529225082073457686744455355802046588726213772031757871470889921796298251494731686535079343834285527643517319346561896470334744271613729899820688349855192352575621278926364458505027095305462375991013190384819330943236594808096748166232430747157382654317198193671212283239724176753133234113491347221976440279673551268535274496739110220341199024752812715359167746405313130995484789242729424768832590317991899506214234697864515247328402739844840270873513949722172721659674682997544136897276349134424114371875070331816369059866035850177776180822766192512653676952800014438260999453441221357967819256384892720245087700115264611722859791930552902882936717269085905714003634924334862665737994137221188772583069355763910307938587654593160320258330090050682959489206443360747156891987359008615771771781686512306194362352295665881700301117386512130912570791754180242897030846524428964754483080411299565443651096335294263552336417847992530549912707693563732034794421009612536947106239995893263463800311621357049190223810886965002816790210298547917099532430425676513907499250165075238802387531513772137713282676418551686127861152831850515209960234817251121872797825177514484866824737473445168535738499856768058993550123878050009814484173281178433289723949437779551903097986179662744542789956725045773263970307952618571815417217146194285701120338947145160864455002459782931640485101749502441196310217608271070396348927956940642339684246990279642588185903320172016262349757472508448982116189305731921143144059760780808100369164421095846473488415937206554811854534845175431533554816632595774130926007592902722058124747768167492249539546013944009075477022515565941328495402909966725888572958523289040032624048173853273202107451109062324762766746664381797602768963064545726704534900705878147406907065981384008227165697403775666118031525902830723306564951515859672212366279173013633622662597792748273012528549039238053269291768154382284172877270077660097061018618494684774033624566729357668370581992622217344851298733706600070669425777666544725717420723968503462710913131014456753766354921055348340808456662192892820062295756059129893511422723775444778537392789334183769510682449521220368757521674086711972824002955144198139002566432313183628508135499576199918593174006791858794851128652972801293012375712902963856216776280098824362103041697946720882821733131854490954611593392556683450271799920446939175323574470197353481049253075633916254059886109154507916647117878476685908035805168174789324218101271930879197665416303340194155494515403644901196998129507664672712993342791231955878875512244226449379304963361889635759517544849032442654987242713606342788946728369436798153395241222083571021883874210908663308266214289448286972116758138528034973353478773499801417928181663801255402962181761149584692596393238302782300209046074587653088668516273198310010819255838916714934209071080798361157281819708795885633424647330611864600331541036779486820280542092039484573915773854553423874263893919504448769043365682857571439903236806707560761133516524826930236181618359111741745860983448585072923499400253733286170960891200846378601992817851660740841866807328225416612573168713296919125073080142067622463520807339040646633844987215663837421511690576029152713399239642065804037941027590978826020379658659914391212699047487506784646722233340692987679438107931993597433291524681360143342970961368880499625435336982236698230771706946002591935371390636137727534615751933073520064060876902514347137585583033483007341721962287033695466245527018333751281256972399116470885296463635517748097311424790781436421360746540604202742972231414741694678170905583684354043237184197128406968977394387863618166502266484995129772415169277671117496692004814148746915317472944601758122057196159643603179075287997502976554447643463695951852964703177839551115892499789968998579077474569253931205760796763813682577477074724761254243195768575441807232308092413544877992248796111697029479459175406291692736613997940919799052125110812218429083252669613961425010828107568342360359268100995921917895433441156529472403296310639769837799165891089088998803483311347155518112390940195741259407454453399635792911206267017297168035569882217016548786580245566029119965609195255408013429625457286669646588798126318251069182896498870536040768621575109274302129598505068743657846681712430651938330295150251051646818054795188644861924122589372926569124612261109428699436674857193652904104312352049313631122004564051595803823960266289549422677868676923506273276653007179007730096644185687091886023676144655650592732092982852507470238685803562931653600791348220427445680369809605652022866544046371059950800922832967185800925898559206309099885817827080017110361182943068489907492208903064885925067263436412673584364191641049325305744628740673660021468494862779270304194510844050814990785816071700923512883841048447582434613856051821919004723117751026278041641560567907946152715752698918570934639096703584449839239196320984209370199950222886731032559786631172805413636426761813751525001992102729302342072207076219711716489817457743274194729648590152318811124198918099612657415685131803241142318971342597778208028733981247775003882502964226767435453611157803207333099408144459763340523741611342841320861772405590952452874197195089762840274002149661588869145008567147636933306688510634550651141715510193875063618341820133308931090035486924597960317012866231963912844197390474576944244980001323633792970338096312870016750899731916086670693453827223597793192351668620876248771992494912764133010082799106054035074331018245429161785125515135311894955081283892314371333319169582899106899424990859814376393519220530568561078006397078311429510422394597044925709788369970460329929585673693959929845044382652023742563200739466021048025703826799083704838897589783841076702185077601021027486639688460725180510751468673058094270464292372351119311146003421475516675391644183166372947690290333663113185557092316777824122236643993835578974476188574379407797877255213145595429833505251906327727214834031096288846351737745030770772374552125183905438923370300963488596844017961496149740261126282716922183925805940925974823220049778535266916769852360600239106770421204289652511934752323258390113992091316301530669054981889969775397002546341155839966496220000112067354814907693993027778663919835703139109878893340833534956974730760524368356582089659674217430934806869066588370563077528746164745424737649545064180205109924232077266114609692175404723409567697607955536887205091337613015641183890061118148490099065823937841410306714975569172522363167494241859558392480089252112773495890034661161213431440974184644267222547522500275355271791547175922414367532860994622185220583968335515435065121264826588942553805398605247733529859078741975033514783122903706748298365020781586297266191534209099129627079128547833559699411199090217220564591144774324249829493295448121787229384055943479317248357537018532994313616622533343797289354171701447462469067639094654101268361636503351604755956945932255312004590879700266093750897016795590979674340703783288379711432964447572594800636673569705136009252859705508910443088176031295010710353746280608812332507581901082633807526813621141828144993175559107537747142061644601021269272052634186007435187457212039062410690432861999261863249929408659642821470435860707889402831885280824270831521196606788491585183010863622402237836094461288860088685133903219375596200555764297350538279273407306841582340501027875229838690134264860972082280013337954531781194862047139846951732784047318485607285269201418313685607228778453434249743994254460311374705096022784765153143989723945732674260697451800569823635275828262406449218235078866212633400980101944306432763096422913525299822772943647123180911096735218623188628279020467526954457680997112674067847203660126784615912047992177603565594591523610573721544004904223086887086056387829503833727792766755732709621222702904874249881721049596228588247954014287050079368072974198936933833103765905450978595829535901548817149954806456222402857509330413468898523055744912816993155954214367669878986958968091550247250964639911254943417852998176756080926388190844393085435901182739678598130645407742025568535371404426368885886983913651555241370741255714991800672224720720429193144968909984601184942795399054141786167819928243719436436689751600774629814739565505025203863431816071591450006252999308564566821653596210941785161427184590292877146523845715577221970420581388655594396476647774862341078895437470430979696994766276139946932709401567579902483443300972281353038726059220760070763386622013336907322645912616000761011077291710119093660582432610224057604747339299114966337775027487940028971196349622654247268976234497951945714878497772780077337804792851942934628447926199883370609288942313833633413357045697441741960132250533527855326636799888388612817463232858574974165993433996486957679902770183734623838213566648148142431272974650474640220785540288132207840303679054998364439347640080747838558951480981594073985903172359237869362711057869948287480161580071622487018184973545241723774260564632543503996881025635577594707634171652350897319280257768678699311333593627017389434663365944214754478734773761166255103435901692633718294136332741372787516966948354921142290772338398001870585505697300672327957577039641947051128904281770839692715632158443480331047885688354181055402360757773053495348356964827266480965785029042655112107681677876827178602760349228869781653828376618106673357583701574884319140299155698859323415767223773598469975042775290531775915417972573054099171037790787252562847201016023490944646744760201746318330646979316380454398138995958935096664094772584548042685503194878940042442173379890871089931848576908551725257045985872532299855805149152871491601561121877777756014333642653227239618253255999066709079402431100448651078597719567507089106388199824880697216322919083929367683383176741518857706360999875847187667757266730834732946473625858239021051623751558197148484210133057273753702792804195708911894816695037728257397596764061227715395972363783793568338945939973715539712565849061897400384503433773887080233031535182434279235549841748905038839013368181571956408549349765217692638446912498427446284898180805587861630550657073341901494052125725641079796304968852935510640827160616738722258455321027170901870377299762460618315056493790897417248680458522265156085897800596167154680228515513540396858460556368096539122413645386414532853949433607391545639629730611844975173621900478883065794798525201828671996627185649799207961694939766241995022567974366425392336261445844424624476815753371145697229788962541574737785867928304561604533375318531353507953273931629643986175325973051964749604330826101672939970163150868168141642917142055054405733362991083472269938549724736466680288668226731706285925414623135101195992777243226142534683564719169349485694261743475503896105573726239346645833998847678555517709039227447719181534920569125756734827854606230247654454380703670587642883630028321358773093236357033721264839011255713065902984780275126236746556278323901575871964972618272495921552301783526487153716690419605321677537890548791141337180254294318060245022016166378544256700920509619733918427672881874719018460800599809232646800019520239833922863156290467297541357206712820012508292118047776129069725700522943093380674795543929338930635646272468534247795593763065482453509609958350602481480926985261977958068659131053389340808997519310200036347515074551984798607111521365614952303412647806578987003126171692585814161612493875298156952935691023453106053410607667642873135851384000802699301352568543809093749903740271135583515919011673920164515808059299159830628307393637475217450582026550816199667652699107641268937675382873439463495753455728787334805640959318667599806530940723499519346952784032576609034955618374073868223409150190548200628390447141607687116727229364305194231913019619504203887387157587813016414483352041319023287721584034883845341679478553848362450177397815847523083047901190158005543860522965595832527445850533341763365127809699838271721240509116840404745972852630817571964908680273139248138868680504045552815094110879945726384952743237630774197615098330497770671604274535647053292081097558602444422592792347441932303290334220577725072625626892508636365943379851925402344561871183288976922020959462311202260693096333201467434578652684391423153563542334425652762517083977698881825348167611142255742912576813716837155532249064180464212325757041081791860202833210617473174036961279469876674905118877204619324281761936513326117727860224695374822318129248252469733653996988812863458716827182434759067510568935624545746458925841115828237248138855770017690809619587818065634212773079618215829844084940030295271733934874392346400645016697962684551598338531149961382297876581785070574736183273612042461237003689333499521236751769234014297635051483257365531585746601353778565303103592439470182127795886157486496661987385661566549668308903345214823344060098305309865532412666709866753013661511664944692504846946263188950490188898954474207122598615139867472728565817215731741601430749174563391665901812535792208760443301623540235506530841989221721923831083262439326767250214592305609645977657411865844151488130255650541114875760016385892511678809669669716337185271723969094551635053404218930242097648669824176085024714102685903323497451222546325924004214924732501002003625790093474926576090623747404388555186730373653547277176611934078229457488685304015970431548049555584518774614899349506073785267284450209139047442089995463312814150263658785541995833055662578105047422081762727383601059019673962085913587269158628013634898484222650337402854021491966273246089519619740267648124067692857057680505345410776298837341014683731596858825203990424543953632551865509933691920063137327709989707520893936354685428010930066699172378200185397930679805566163242254662941489682522453969708397363903907217883800022332029866703955119318075678691752750659035183818953901656037569156685401439449614774308484800354210134922285822143471183414388547430286087479333533213854353406456257014585080422606796607260294526850567467443913201159819113872830482522542074623985023212832621293434796950131609062138435578469098538345695825304402855144646333766720806424854327660728352074934414814862212301013716115135693605866917689038038326971372050286444048792735446870286242208786030711860776655677768175635074921846618616978554366084086989284859835879736549309360551392004222357387853850099521252585590952717414829101374199782975743307155261938406774861245770535766593506216076173125505485994897182201759469719069970355005024715198673907084933798018377340625812042768746804952984353852196672124308623490373735999623131306799871363106482413101046209837807254409389995486636855169644717924059744774339522311589912353870934471210504934117059947893021086479885185213618220238751610442119486249360567972342444946572592188681533872482481252936990696360550590516393160910023460539198306323475945824267933466738443621094925011503406230857260386421368581902893396042569421341075419503553916401625002132554751983762233320148575788089511554739789847082017213941997800886700376697113795477909203043171385311326369381078618390086431232393223066985373440600234436538498165231704157935870693045717425364402893101331330820083358853176389586210978946243740130440164043686751282231240425058083194246769665265674093175351022920392650166186259845964165340286078788050718313437551365412750625243728227091585464160445653505851139936954855231395909871129367687811793678270043088536305929213531774543565774860559822404466073807083057101786102842165017446477421997161511434781851344068096589806878317037395938569962993277676495015910720319416307433294639715469194507866079997541429888001976635004499414706962569425383288646840072856806067627557866419594121038526456216468242213141087105062974784740473638887657291303176583779743608958430925750197698266160382082604180816561040571599938766315453539406456596707369648074420787852757266641268395149151292812427510383543835710082603884581852811508821888997142228831635309172359492989005729897991419826642201068336251490918148702157760849406145414076731420712923706185556947924214485830959570890438465172224493410960282311865411703889804614279712255671705499062138173151467730016907543183338947445790332609274043895514273233824088514734340378877279116935507209801263552698466618241128902928110954564986430574214541825567041622150900317941953955234497788753473169110768680531220461467975086157195268821213997391488274752254661312426973226980290167428479034037469584096156202059225599780147160813455634666140211456551844467540913132039904759804100461395689648442632698894803337503975681567218259021639262533044383219956696603077880638873776274973405081890557867174559917622503911755305665103978046521112569385448053980610658358421353160495754168439833179314189705945881841359914802386593942597093852353154651040932037067173588895209632448699975544502860124826457166096513353804135459900189698083538226777836756597091305076225598099954093371538756280870078022309308127631358553568217570154045995030151704154337232492381741041671673871753847055442406140853066615901085837632294580960935165142008463440011207200441614659648895933658684060239886420343364756864163414340283928613432211032435381377721725315125055585816205875948261980428818586077608847844283190264016518631699699992771833610877033398563312653918659810762687329742728367485812252768463302683672999286686268606577911405641980015827313884411295605023288545640952630069928891582446856329638666419462340222590970710015947477806669842055137464316868473393236926377258819909609313724916677632398029673509301926476663524021726547196275451219476903521333560654764654013089476934198579580139755335636984665074948848230825374760792498889359756609451346846216800384373678848525599765194763241371419440341421494164689050517931372714794174812505101934818223357079490600213358939374782876525693888508073296028597463711503954258215666706158068054080655833651169106608319340995982251457882736585301437676401595676468648511003209996648274016919506529717252333841718024329473469610692104931779530415732992728897057174848198805112466643171229007471666346039705495226039244608820133912994626092583725040176355874149943252197591324562551368057996289385139023493618379728563511317415191596289746086814452347075130965592027237750333995485621410921753346359536589848475860199210884212631102159510690623600897654248661946552592413238646451961809919519208654761515362199166291604135828776628637182900315255501545678554339249966347625309993382264767636001253768151447512279355621406355598781177709467557315598158446813247283342980281987502208271881530961998114065901160101107756786593310190226536433597885892469408081831640185716643263206548404409922766424035447031249130730462819696819667376961287629592106113200292602260795018101517173461959367015377238067841822114409444086281366880712886633947071456010887110786992743908804007911597035422154913861619834779013863921424912933085332881940806203951221582106298385553948283009973524505260635993133733586980969572440410626318388317720089595583570622637417290589336059456299058001015206509048806327660043563098534385503686685398267571186046149137800392361277943582106240805333235796942175395684620042139293629398781803434659822987299710989869570140096213515746125119103880677575475354494314029292307282775738999798956102886527010326144845170123910766448606796790978106776075215056020270140393708242316083581307248767163153257730346287855491363194252712687064488533885406368871636646321805327724717365238768767224284795053610487155586067787308429666950929461272319570343808395413866821415087435607030301140402809973653053422152222390689193484184997108668655183569846861794147172015272161326896214538871365753603088908540451649439323322923728791034282821018726935309940594243897338976411202405425958761367742135223135828540174256999805265973478336589015032652087639461058677896033444167900974935735442957448396249126761370355710059319528514600108495444435129042411443628175438632426617506316608478457866871400721169564181330951316232715669473671478314795998714099867009468139709352773186281802083379369761455977372394314845127285259591708628583130355214783311435985273749676380939066553551478994396292639330325147949165342099738971066742292047601303693967874960361701627168785214570438566513832634496184218628179486263518154032517394848807061848901570590262446770750124007207773532148292125007847281323384987067855263657649650890439954729026065687779836709864991170649470865892962007093217879072208017317731553247975837106589557758208107008360049340439305791713761890675755157258170730097661389886468160870093989183276864583619605400702752319082908560121733471283414483291242887621125855888690556496796413932023678982003573842533357473230407799826685432542548037543016645172263915530198090717811576949376581357839276163770448766740212215036266275906201817875504493941981050453415300038449330871976488442551270283138936608110842506727236620412681830240949269515312696464810066745122247213758292985192727558209513843041126422227885524488816398546782696335152550144591536872506213346638196149932509587278495746886855244065157216959405732980337857902566381068729806462809318838079028402473329787991053447943450903669568206437498022995746120974351558272730377058284766780095350415603193313828425292609956903109329493469730676336799440077329913433388777942437963454771293471499675324350606975262996906968485840753273636552915696613379305695442323944519494852414556042374875245167089533957716519362629384697435875001049183037778533158047103466882039322022519137735943010444600133567094798206032264576598765141657529936491151387323310684542012830666095265093276813995850483994192512042424583970228136270828639882043304026849092778541942143840481282399882151379118418167753650362749902729949758982495304654266798682015409919671298070392452216531537916144285941435335653806715270059266382993343179506856234256195578980563186404022477887124415843681410900811837750729735325289399724359110096977735993439397307199861507946103671349952455127645104485523484244894250657836117752146473344291119888923195219472862187066628046112327693427301863256381013704426923831282627785756406410767323503035645427776280874478348751361329764048731401040928865934015877792739082686702091233321148428909608120513685304449478879310319842132132573064798813538591969425856897051837140483138901629065043485392971518076820629410168729230913649255118488319852165620954771332915482965497785296146844707812738929134302638432875177949696269530567391891539019893243564363510787175802680551212141306557346655441916775269216165311645641977986775703948654445306327194372428874733922462925524649530728803086604991224803720929720980842240100830094877164805901754773195750934795126049229685953430489033447572988140151609621918495502578439593568755083508525912174423155170760644436809618727560637249640253898343881630022876562303040722352017680245036811586927985972448658539800127034296060370995018903901682985818859248708185444079716872186650879159036486653538681735697285951514591524831380482166069257917974796641980377834281647698531482176528434995165103918574053817834281072068749320520547523140646555479185339065334616454681474820934930020343601500909915391169366927245751261529610763924549015022913306922084136444660326758485929185462876563951814460456987222600881695196006108310083895291940132491951530371017190667319191660235726460754411135117386161350809184012279695907369589930307868533531876985455199301214952457559773433357365914304900961047253913322993276177032386892491136833475511565934487095268676870788809927012336149256317737022315091677245410372525460527485520078038389211033977794084236505759403109181358764641431433371398378597234011995850415331159462917924894591605504799244639300890451020424647141225980563266024463008793583748800895569261001180025570583831890538781051083147226859915876133137217901859715358866259767531180326560226549067574598001756496666540804454016670021811950828505936390455254785167906854174862525092394904652646014169593771380526998780906135547439581219013120465161397703258246015416925681870538959024181301210601134991838478224949207540760656136694466495415097627792292004456713210085531525070774707597564912289261203176336586769867205005880421938432287483105185419738331155787621694728705784931856996055370965474660158277384921382908960677091838597554820241674510853053060818561690927623496798278373988508048681489062830699502271607668018337396563447318749491647612193367934833933115627966810138499061374851618895474177246654767665465387521754724563540657542146380115579455492962426304543944769036015191350077196231131777650750230492450214586546358997921634876503636561077639291259663174324804883419557938495979328916445325142865763758644115989235791584316707205126837870762305418192137381675736807035002935820800206203706348698787399853952966189368114632797038388699223702322946642289169382359432309979215652460010005578184831504726604826366925630897687942974846796899207054969003768136447383535642183298264715824102725829875622838191088997873736784627428312843931889034876060573446332513688240601784242504657639106283985520863039280788798808685114139632955654527104914381212763521431817158288001020069793567898204309671581783899819797068072469853667758444979937897980632844809202526065751644626463775359160074901689354938443347909000032501696251161198443712063154977362596679750779552544994990080145113081614083371381301024943171747128673969448842316435827532518950555849068518508909497759647408046673177495621898772310818936044430290122721810844802805368177990328018580176240130561434192762057113734319044031728697297765186669175341352029969334875310396459208984283689844163445849208201902527677161350093249313089061006600006361541358961029287671656056830844975494348734344293725378802336427437540472482107663381584431350803992433782277612131115955392642502646605107627655851472229161550040532409251359196933753981280456063688744012110909675638962712530108492624515193894946108459104090125805664172316656451286649210167988519129090129959774467642552044630895991806768280036224220913510707632158684359866518510847909994902985769317200454969316758092445828951134870874807865914461070670859222517050615076067472929635956147315035426939678492167425841250726545428775577400989057778496285034200888922823608344033685480137748931053600602625732436220029504337310618686423832305920175133101727454766943321988805529146737890662191418322439767607030665965912202916589821213523326033997776880390690843553692227885654573827068140702637897925140274448796757589243628424796459939243136919406313135847878598950817296203704553531881469480688458711858117479858200187415167013614017331727479131365362245659730259475882725076448912663319933351887923501402021697555036609832494126947182929663506379903816338979919431021361625877508358470300785534293466039221774482331469181670694449896645860095563405710937903190553918863140287458850793358526085677588652381397214159438834657078803771290484795161487138075970618823919647316028596887340674567403474421054380460882821367247027490678411780721296046611736434407484632772353768668211388115105310670814360279131204542337591437427143617609363401319386037204650162054686983392876622024978323098097825836445347273731336729983903781751778556884763960902527737500157505520176101951052346821490951851964625470503994071833210502504560253373748391739756533319168274456494310696925280860447326129909127148321572719289940250934176364000478556297562934042545775086611369777576683160279206658490371040267835766135194834908789861229313312985619518792674552227446181627606186402369156163088210397513672908367772190310847317442486220709007040384046817385759724611136465853048733144894459602861013435847146893751129188833780054663765097362285399711662836683018484930281232220526343796688927261903709115509627427305527446701690695832451085775424653324357492817027123191668488415197613910091649651230757809599163161099167405584875878883081244172002591149006424567435336063588512657292429064719054229120463723757570310287867545174676386989995023911131122402298155712558557653331001717271553609699563840945669903255573778434754366671942307228842949701512202451682393620158298367938160780014835597059545119276163632094320204042296032730317117347769150773949226658843002926191386435555887029013825276398122854919286050794513482067643628720608347789263525812327052278696965603390938720764400964546427893590570207659461874727540745481043791131806427083567655413807873381326858729786759327009777252751889268277793366773719545689703397999112379423130611729377997843003839828077886832340873485700657188281985312827562502095574982350174458579575014160987463430729204096711492303477426117853893421092398153491017442242302226966313467944255049293053874333571950825003293655424602028912850214018891620999273056989183238271963271386281656201841612671457776791325087003282082608071829037673857592659155470932607768601941973733977004001848468351801010755897070480135057044263932866221426689515025619567425861230896582758081855363541479591419226324899361304505181751495090251075667721884049188633320580799342471007348806272435924524787609762262112409465499564720349012434283787097920295560820270883840468590048413277254296631797537557840352735281335321403001204691303836181534086979671035012062751910060170769741802792864971114103806221111671568096423305249929772698823094412123081030017406217693476304173767890482955262139837687521320437756400937523306259775202501060347148684191012201343563947030418765312949636783736762749117903355276586843296170373984817410507856085564822621635055057837068183327553170605604829594083531415826839909917252296182728942548178208330322423997326518082349898359639920979881169149008556105948158529779971023549438000207718475640698564017913209026914966279009965212102300382954610122567867029309514360799427705665566171688076404945501242114064103616176989077788168106876943146326193860453871362897138812663657855696913471557411892050093085420990537062746147307214678341862726811628321078124522310377737983068935922077340111294847584907392460985279507061700446200472706799202164892929544145756232465688874073979474367734330919203355358805548409224125951144484303227270908821316451150971913646217209105396688018731371498846357997906815715312242939841780212493847886869998316024244121604827244224851928471614780443506950436426676979330702832728092334832582353783792636829845907886596991538596572915962550784417662362827310820341373739286941545819205237004676813601069719086562260918088340251738657814526330548210781560440176114419973218014924142202126821937376478025829761050386940173781280218324542661146733601571637586163864428355059631921644528433489970642304268183593925385971752242778285588537154454847248711869079846348500356403901998954735308514364779093549400131607664389293152135794333003153238780655552158842418119076804091276652644734005013413171102659215422641205335923988323912018484183072546567621330303146174637119632922096014699780232145729751027284457050286168717807591774579118874532624233340160119237995734642074879205235004963328455728110881896557970544168403361307245409283012995926095193689188260447089179722965045325636593080636367786285775231482077876562294121665074641861546104378562732757773662280792857784959893261535923909435271179439422040372930361422772300258298365362828056529473541087450508279040742641751285885141419029385916556727436734533422555799020772387746833733740980010276022515049563644493997859514677894916025161761177986292038096520801824378569082322575938066645855470938427004222486045425559882761105557867148103710526851936337442149736370176465937578117643141278471920134373600916461217580453173683562210654818889646695923315286758658229150674609207394273881144977019930858119209335920147990870928716141673406324627324243208787507109275226093246898876386257325561175199018929714845464387467231971201251314761533373029645127875766001531626045759115776566439128367075224068778429080494976740383143218970370948271606031404464590446265876570370346458487246659180353604856006679979103325623855499490103210236038142049882324986283806098492817464388007471185912899877638745754291671503538991733460790065010552086469753155583318543861162852882430119250878648081323732577553133579888863542365439182038870078909382608210931107766945900568774700744286666401224196342980424081824466479930765905472670134010758516633689489545339719628933606228869115766474995866758132449755886654643042417341159195479757521528162809093636162969748012427602756869429838473594973803996189962640051880938525668431268017806823092230820490713971812090482401098254421021257502920126976054005858618441957164649865273013249456823979114493407834083129538458622817236775038097853377439383800483463980411232188775286702814665501837299842827262016720703926637520054789440752060293019550416000653402091603627474643150551952309332433967909670994309626625899477422641455695201044912026421548229321229630120371236396086838403067933312303329138565943720697993147065375650509236012588997209838333891539752551004815932536259055266788648143527486922637309229130894963568437485446595847569129444097427189337719997257010847976948354250780382163396706398261247523787701741391270958386818793273219870865484908212856532154708596803252918713368054858690871624393789376060573416499274850332519052497961710110693140791668585347540592298288212715211643897319354018847685399556518562319613068418706726706764546903547525597787189506030704952145549841515593121385364764757262460779648265181700439194920805083430811376851302831191232625982230883129951094502538625111958296683985775038400665253045011335917169364017553421236408013084965576326026492546898422467303402700603976660592195224042641433328719332096583829855626546300943756062051779820017904810181322323050955148355025841909702118142688327513035991700654342399933932185655662994584496052288083996194273744497938650446388893608885019053119469612730731564596261688653444844216357621127631397721777628333046619255362762734926083478610997302352812510102590287703032677445162601206637166003823767537760767863266241553233505437974664262090726129778900110828501532209902833692279615985603145077886312346843391927047148526640817249534627584034802449414432149416678403776659246590484935421409518607363439446816380054947795935307154413090387464675487713429082707101519945351132800957672261333048854492803209967465894489687687111410492741328939628110706910938526581829671912714955923465435963439754729617359222693270537841026882209529355236991569850142504352982015787298268282209757088605756123095668560520443671846534213088750417566759988245657910901589566775122178903824746086084372430228946627650456522755843587288600319267128921160060084033475093646443600328475215758521373736689923025362993788041837178075884746035313597525086274079322600713199628063655376763669761689790106473726373050036541973470132817307686489292101864655325709302483510201257337185762655552855066915214836476338470156311943082936822474475319282854888050013892618995626713258497640798040598039111691231285934950597143532406204826620049986190909060220122659121997946052079012661648718036790427658349865591395925761660945697878586095403745329601911894522180418269304437028607543618426654824212590215578034533440808843068956671002795305201535006574192998471374424186702582172293367795332696203577146283603288832063876288944460318672237090321572364856995316410175129496125333077348324954496071675158593370439731864038083628011322670132266674476538571805196101884096904900339663981381273341765548944709232195305175354965932313652581484381532679603806434064548617802451673948310009509385395977152828738647149461623426633904539959281486958955679648103835256205316836458656685638816845000018039927257789497928862589705281387799077607899424216765061591837547759102877307408657524083641069139454569567407329926371449625668131073767961661509637727352159311523543795766393892383913999645051563761904318016974547620630284783609304052819746017449531351502179780600915994727911987942317916370339196829426784001721033739621068084899419878813303231094871989575697391197464158782288482343082625927025194543427551549742047939182034819335229062165665709550445302680757406007458381815472844340185503743891669512944139673145778460640694269996178296349145610439966372082560324251086240476698860410762760350426651208420872888221689708046675346601261895987351823183761115172729391918401894481105321136295638681623094414799673984995663512245688964758760760928964282923754160807587799248310278262752801864205233579674304655298421904476489380609676277988689904118813653517429638530292781000427167442825207477482164146674248925072651814508032585352344156593208562377086246654568496598544695571928354129398663395227037138348669113073959901413444385999335640447834405680292782312536436399734596047595684546404143373379580253947110728139176784152361800688189196429858328822685978032626012962980493647981327763330851945771529736184072625172325356389649520489735228699244519837237645948824307643632282351643458433890857596691489629686320035830026526420329861773721763743789417771288856794723437407781203624219207375558092866225631651398628898644208556675849390110472292926302920054865528313603216881056087280042270518882946343045878307239567744944421997099459353834715819831102305127420927120566791328017610012523549843873546946703353998811886237686175701420927775470320974416473773481481319633152090691933193437221303579917659473084278052207207926007540768904213854206086723729986913145312589095458610187289404146228126665531282757792095277082825043147906682440228624317149887574171812511511816283319633686568766367687721305730052252224537063483636393455474150742459410293560454432109568352238785538811889171705296509605660042981494742501677783004605362297695766918560141656194051990916683172200827333708542510662350779126186588488629659904407408526238199286837089990356427342449607003331537681459472156195003482766322051864827644752574030679784520380020895153256362418032459929065910768694541981446240450964348433844540038162439789621725100939293971436265154361841179266697441195347792458981061180889592204426446575863713454307229470000726844329249354779118183096963554953229728998059931397455862620958669723487875501513185464606557718109672928711200615046560065959661015221078054463469599535956422863264207006627935965331140026089569178678711544480471197474429345970216115510677853013170398135189514783118951713905769843555006845186551669490099263773803912095949894903455520659606879142585395220520287865971073112295891258473755661724877622070070231680067771942341090164835519744600805148051416460632010433970488035398141793879263933991817415865480126034360489991813993996683195108679302781562251647312896926391284323986409620851989919572359694482074891199874609326066717359004452230395488381530831417057907991666011524034311938150098017088061121499305178846399187812208254090770379828062778888597409911512824121884815309397067026183684289943728808345089563542408458729000082063120853022011707294375696290138941467010366677183864634441663748194551610855662907891327650039305507497251069791574489429694498106695920066185162249272574622946531171867192740059018612058321358205263455378057198130807859787040619809312284204972803469385551925020851500742452015169576122017796067745565676955884539167491559310468356601383972700764266407930696568972552993898994923840057140400680556511025962644874935037451356878072258280807002540880110410080971038286163971258701009852921458529523728622776358205320743499101184307367550111892861899026899398489348893358368227115276198500422800816453721170095955398776095036706476709761332655910369143599299779152408774505553289802931343542084418644640146358125439141161790817326206307254941419081008479973331148087670327797544739667980171959461032241143828482343891371319693623456839500753791779398699125123626074463584109012780135798995630602422224368672968777041586971382870721066942447239970914114070615924294183695187584401115077554332937400661306577788411213681974833788100628048507531208657495634766079219858633003954765776337404351495119958901052102748961443314822803896193118278366389537884978894944639983888634811043693858795328177275202707133961525185616066042135526798389755521955371521034267057339265548958452825611892685083155405085162007084549104744117674056862189089983967225170219416993195988292328726710407594245526513312426818627254843080027442735537999543749639122757433266143800454454614330792734044476858065102671222141731311188985979721395277818699118597914745156788378689110925274180873354097189368411677676034837136000443236997370058368460199638496260458149461922684464440056266750984716007802118185294540231129765637108345415038893940646439168677083016078490979064688983539278270753470812234578391422815750260221001206115084907892810334457524164423227224866318063332045924019068670839009980445250697644605861429570427211115155755678515140432697790887763663656680151311247889736099358265592725269827933409943871341956015785633929362753594090137658303614563379900995616214842207634804715695273653529701264659970934203241696738251667092782857295930321640067802859819359959868613888232866855946148087583811551974260017455697387758387569330857062925091255100479502284315305025542143759116904394668655956213633787095442317418025156185013820565234213010966074812831052579627862487551312204132722084420732458471653906362271393183606756479298066392441375243676173941300028428145185593593092933123590485836459794509542657686403700917473850034440024044884503398988226721130815923076841582731211737837432234147994938417256894770571422367609262556172061742516160655591560975411902939923567586488080539484212396879769495714677553222747893069571103510611468960284147234813873680636071346541248171400739125363428702132363600830974255998266042238708581365914429894281522485419009735476663233743979879507882134734144342202603170318717438801071833011589632793654816861669896929938479207849694748045427339229415863230090770079006325333931486457248358959551393370427348696669028887505895851826428630389201388579052027185127163522792977821061086859474435195336928068092673687993171123606704099223630362641045041374019380523895810210234040451280530782855231446513600217347645333554038143259128247986937140347037085480719093716478697866489686205353050297904242713902279237486154917560448743438780559211167042272822058271543560643107841283563274764881409063188570041444458690171128468409262374238029405629008262624231988747764968502137866185720929605264236524489092813891806093448873247436355818805755683671888487084515775798050308424198747520192365773583457335191447485124048947906951701238772962993658725730413606869799744626655693324873039467602717376056701528949526917477711609553780664970356608166582260440348101804401016732248873638638346329391965955204708257458951937456178886285164316530909144248943578488888633248039306325627983231055976954457693122138716985612018896422095285486760998977941199088096843048308311179758700394688184613711449325518542183508674179498385591972349135835851177890532349617233384588194457281474878186218213065338609575856845746701865914022961754452588037573772725755384671629694836434876814941906178024628929046263959769081461481939990526471885483664871678834938927307604332116231276036860238139127885907194129695690529090718035440038046088515336165433215781693785557221499049919854566066616022045774152182398985048157275161927427910295600613681329399596298441731062657187415160540312300214123742836760802440965247909604172779588240809856534584945454518917080505336510873648436807687502464603854170554789544644957733826551047761933690097672549505232969080363573440397553370823422563556572344473379105757941462358058774565750360177806116763377143738520670979492793570765250454920520104580258556298504004598738872266724435001754496099694429748325236880317443524736085309573730974003733288929302882000684176851087698291680163261571146460151002237181762600333539715068732865661776681709762732942177253965177347443468222230969044433147422892839715683311651605882803680230781810559935617315049554524825764248522521401853518656281738719902270264580226144378297068856186350867629967307745652928514282865504271980399807157501709808536489601701541636555284151923536117900434881049789121076986499502501568289616220346797101247171955680810218258470960762253310234631411071249208877969325816647914734166213355289046621462007820973750494823803723907381818079984717003440149903996455596418062725052518908112639761793255692353132486779064921967753978296774785342437220111565665544652008480420883999195450816765333521571647332100206664651313648401602388387319057971006342354626506569706833838270351260906139746344928197276971718271701895519824684564483736494312121743131329219110613813310992593743920892136304884907394503443652355905363764838887587223585432720933469466025153436633309160638706426959293596499414620696545057257976044286158937855747628966871456908705627419549986337008800212099212531510011170875444158258586172041324544567035350310969362109429035586151817623337437442247108355419265120543995685630614274137191266366397238780565540436941968299742009822022917442929902799597939765936055886459182246528499962531246942945535206380759498411097616780871234992936887415004426108921285803855542362612263029335775533153540449490241342559538952052499241709388167999923616938621245538679712706446906004984808720585279329427528260021018731927897629281947942875391633842708167196569348813675743158835308513589867254105386666683008837883484079943488999482773889581213653414756917822700901316178025640239317519079856147125822236619021820478383743014962670986472787791891130592315813680017971551370530651933657724324140133151540432820406305923256224280181206416857074493552942551723598994566996367432350986786855866235520588106998575369077163344386675805584699232001737513538338194522601409412073484669289179496129333587101681475922948486684589711733007672525738393515949630079741771114664568294399524029210032180679495137172340206839051788067287886657218312343522516198401089199469231928803852309649201534432238998664219318230671575906131988806900050767822488400232051530044829680555969732125845211952527531996967117781040297385196570224183147789440031608691843928270029166104582094953172077675881119082206753126542339291517709213718775052930991868074468673597098483219564102465574576213397118079034530350155005629446467013455470222632429193129838776154645211958317969879684633835587330577240161048643544672524225239444410461466337354190106285679140544326560481420455755581814205173517401105582634779152743853847071839745721353972936950742394358506744920297617458705867760590881468813165260273494469219242970472768821734309659458153209285922658343528336109502522995032385995085327312396983386287622217301694276560309053116595950915647707267758545319559974295083228730101213327328251697095927529316651217655870959206322450198110761711239059534459145645448635702445735105542683705299810332809243500520115099037473529211432260744899567392157734089230964435176148741610526326418726650913166413687729014823206608945781255888799843224572000994520801850651505534531414315228441595385555380172895360918764527989193965344180446968537175416358127344601922394507594564373944954293946387240850324382547504762176293150601212171339924603517791345701368127473175417955024295278726394212139942027347646066557320016704851477653312218736719061610778106598570221241811452190019571090863025945833840800210168398722414014737110382996363066343282325889578696970852251535344350282273282392980744991111998127487927232443412450035292683260266465870981107536187412992587193583012480123645476167606260738597289627987065891248639176911920936271915452584545484323070084739953762922632902958514664546722413222037510793313507541529424222300859041951957478206607203620566864117966085471040092626913603579760428274288007071661323322599555655312999292694468450816431513105582522229652025784427688879081373136616706187708827244378165320388794044042558853238381526393030744217352951717064558926607476403867097685987970701197533616775179893573164859226282101235455587014868412687078994773414900305194833778449722200894679473877675602907287917278090094772401778321313015724391843747091251841850034605824884346080909717735308787061528338394016051131386437950178540595002106810855343683696805820139025443619603966473690608644260323361846445585472202417062519303167547228255259791302849501059349559601766289637703440462801739114161925890355575326747651605346323781478281694599472875243454673120445381285172817183581206817369033530938997450843432063906532597241089540644826367710118138057829635359911377357706799531258066623588331159970988985175830653140274426280338105339262813416826024728424734272616927444910242514268964770345405091859690347443017081670906999543686793787736873693611022602036046939041936809741389656834897468794696358291421410414055015211489444623456038081874540855077347322033101992060897136445305265278138278097665516794632360225325457321741928669276237272635927424317542413336305475721467824156235600142973600247954783404563017634801676387474489941399189856553801324856990876567928607972635445842501038860170738122417946161627119034184624098551217135020150605213791302419704842396103618818041200800814692431044425793158437548972437836293311916114163449716813652985299531435878883888199187305641666573342018236827172323141008688995007888218270066285116756977741282420764849644997750581370599741445828609440235250485416874081076466127791241208047555213115823332081325996007636000355160478770202547038889959913018295966851880346811559360980102458886068080983793633311490674853960830467498486525520710686240912298753051481322355481793406020711825896974681256705745114701998060791539236609157470894729962750172903696053192121222530828850995198542769750612986290356994920221855004220496783120724962698978505847625068100253453025336443528929443057160327105807145363918052836703710332250196191049891050814722350475309122743853724981348062153349300333342086074374811122367221336409901917191133077764876351789347807704924140066366243658903444861613301092538326590816613675118906348611745607224230351484756920742146773945791811918916922793134406895192222783604567717530539242866035012228403093618714495151779055640511759926514362527542410311915205605025257365680892564982366064426875077390220517451925584282419851927323968733439028585524179301435338329831936186779390303028441154666482087156144574601647450411697847155377839296442052903042171076541577666182293348747679546625552326323172435086067621164124917867485910451847248720437363445765032890505651973008348211647688523068304263804359258958477563500736911097605993319015477731744577386211318939913711083695601372901768640636432123414993046861671920403236185219107824827453790689893152887571787532411364890978678774957514187376942957672838242393471416699901451655576088805211797037265866875503010549196893759036982042023447327415097793797412151389634087526902593740041116293638242326391724129162170343600485613190391538221184809021520001757414148025733923059805389615535243205055007413264051597420408365132641443116411856050246836347931915669602867275168384936126661131510107753174757367911976360606503533618518110186774270435024414712308216911856802163487614648409343208510320224239873833117783450417704142345848156282173517615176241261447473629197043173373531826274828881597596247163631537244029282575964963362416148170083343488472964684756643612194057736025702865125013800260274029699193370793344089973796865450938020043048023213715318040683485394708503833870908589865540927285846490232370337940832406333903308332583322596318670813081759609553267584203345131407176748483926799060690179298390289319977017688760574638322790011374951022818071751270192961916508772703375429771803876881735571734377916482334571087475282355651361285681424891174501362848004538806995696837727918216416468967273943003594964755270434577472058231069498979131717301223623526898182275984343014482077511620116964335090603224750566154757868130813648363915763990206436429340151758731197494114724316946626431302913658823976543511558966779675999844303952554607124899130237921751840821184221566338876687270481016453965918922731265088729742628967085996511158257604235306865107995144927246845388999997398476302710353449495683776398034626350519726044648417034174817080425227440348776743341053391606056421690168117863957813230569760209885295730337142120754764568301629193388671037379116366030098853910946563511872418534699723947164939212881147527209143975665287749939951715533101646036167471554496624505981251094224801101411018600471412723213107016249790036794538822195403338063254127768585143812395763142019807177214692087704566311430846553269759811838770934720055373462893260424272550475090466379573008436942750938561307709959531754018314285325736540200503542550561743391742777910703496091699159404199774934044216772983886141950489461928123869299022244263127497736276248469732261368862950946521957915067594220157317325056717174640077332186791012736302327936006723639807578348583651569374362528071799899709132145904267818021034130521312492831810252038170976735354233929616803557481362455104536897544305382074587721023101504055671598445776964889964195617378352197536901290782238513224835098644873342606949143104646661235481330011460649087058177713489836812010811770360674479387417907454921525859407621900231472597073288490401928178608389174122195850245748635565765801636760400954023768861973561464012115360619890763554824822256627756733221008280189583656566830286146061936656108479059779196144199653854843031110010102916462715479397893325806843436083224457125834976924572116336189745332085299666589369081319331123251423704206057804798771624115108699169725548716151933572076032600856089767046931648815352964081465069756447234364717710631126342840725148312486762827155378371502900415181578555461844724291641405733137213635885070068137931047636665334009118239214829766539084075448677020635209740681225120692976073809326308706223866721425826623168188386064764740897472056372311046899536602327803536686472839887337169793330631032836457402040960746146144410111231481706585340432164973400095175620901923085831387508812010749602529201840898977678572765125511673466295927478620073707304848296685612578110565993787049120426987736588762629655857951365787434206602593484282464902275062895612223095782682676739617212684867452785876903301598706879221456081670083914305533575290079470831301415057305244316747718810503625563518680347109272729568813862817889943837890807104968205039603934525446894671089836859067243982728302767350217119722150711159473059044053643379408255096957695941040307009740578020238084109290797971116791772640172032551407671306173429066007846604443843629315211144967615773641704804348828643934872193705650884541466983026964175597247782668148407187486403887461014528561092485374011312047754795251626779693782908946812762107508406970258493199092144375197560219186133914998994215463989670132279618599821373351378018745589452044064128082718963704802872823480113149263864517073198476720487647088277643253357753286821882016443418878660411372842047203066187361890563025400410528695124242339086982612167601950118272668064992326002790206926143481662553861760170297016303444890091562315749565304450664905577200078001647435615324047948308819825757841436372874371450288780110359443518013475797805689935204539636847778172232693884421646281930348637732198141901008213791943788020028242396310070508368561365424050384817118662498304655795262145859192711682682375076845568436708222528793818420046576884083238146533066429435371473831039651840304319904775688480033163675405493480554561779261675746548755149550067888256594870615536156153496960588764180613505870358968592935299527689626788447309854015440526267751064137394127376253254198365065219591323583050026992263366205326864870929859229075622108956632526026024197787407310551033646559906834560470169115069708504936272996875442018769074651062202294056102430850390525285003556200916007929355929175426236044883693238342588905374611243668861188195080546841086295968573644615374027915676305107642295732865846491372907495982626625058883897757241731745065012166458847118730784505185456369329865203725151712444011133918236147721279426410478288612485476354828403126868202437238988063043713527804615688284066235906716704420181967734171808393743492421050218515525688261388607250806050562255163783582194536070506493005867152826816666224825404836888671697169897649080448227779517692851005296565559305070502032003794911637908419584730793333345283964421990835757051854085872672638464947429302271898699736293096352814529719671736863718495035067738486131014264419571694200765642125298072413823885598026723973060643539641509644142400830061754170502680418095994357636936776495927161911894964954174255152277883186362888911590786607589672029026543509016795467176043257473066610676117020721450827547636817025312424749852121265794920799331489761369622051341611489897100060143120734696925515718804381648648420023025224049103784902762978774284851530689983696587253788003064777016468853342904953543896785994373658566463433685574668395673279429091441060594203137973607441788104854281599026870957941613147319981721681496769254364827317713871859418667578775616816325315647074809961451366621369038039888894015534522918914623432104842067079656067176412594972432167576325675717350917353539553055849772431731507987004171988136847047021869267571159214181288170085353304541102288534574412045763389008755643220215667532053015911341471296151854900168919193774213429012400624532827721568772384075405798494627914417668757500023251067687305087479881448978949885198701611513167507268813175927573144376917683663872800417398960017807895725804816738573394807696555243026583315905553572575872028645755840003447035154655658342179700304326057005002891673376798738586215305431663175521596073373740037300864750837450789433492523617747950036737759143326235863864443708510139584370646738637760995241015430499210982266695776980156821157355177509113267983965229201614509911157475871714276293656959536335059189638016885282217747519267285605109098389837412787383142530358763080247086030703075021900995481041473919876758206630962177085450614335988818967461673515205079306622690223256477521025207927626711417686950611999911781594765458230198918575568784469690451432098681909756002534083772011179065858272087290037419124908187554774697581748654614041281685050954275662518156860467566815291825009760760497022380914821667888148251403169918736404890827079645037739961281393846589486614852043172495317342105715231850172277993768998708021428687751597703509572305113355092964869750723087542679715791558621642029462694921854544979718082949255856435941134109631058304039755341754695209850114732888675624359638218849268535501478962390796187145307259252258925286583192336015069058447041197693212220932575310389160521243511388412546344587233294188760510198827369452552325586834876380794836493627332946525845098031829174346704713135403877750415253700936781444107907750766957000892182692368768187715224253052651072387154883471803809291940964010428725798392488502731979437853804847329060159450776738561161218730877230222937418279220336852450325845514431578929729733339543089828604257862811584354780851094407693892217949326481090740064622212431968072271860353330169707986413861793695126396582196349104710266100936309921218341782355249558039208987193759999749564706764070613760172551881839946454225686742725992801103470245297255438001818653720840179884675009226806809398991783750600303775625781479176849047057111167168743294653079034520090518115450932715377184328791647423407484762928821491868110424159458534614160158967100426770137174291275331839038558385244312690526318580772609010939826624780686451213722985248158658128034653764016950274026768248338642504471691402804879504474055019491627260814464558200204853175820091742334607106933274537269415711132965164594363204700995592037191394083325043041868108659083526019468675857179862553914657780567333505586139832471792921665471200803465545729251912398000587627031683853942499477460303558505745055325789590231852829280147107325519803302987769836202030391644328093652814679766607008527627519279384281409134044259143023504811060224187248323103108509578028619092492496808729183659930310398147332305563778505029795176739070381346754402280458298199417211934766441171657518772341902245905623452265607066306198812868335411985448426483270499459994841355965832160041720606199993289157105020981747663346620623027327170362670390733674770232351651674661526147269584754998852192881785272925366153772877920544787738576279757644287790098891491867684066299221019351164900950286901577356742122025831323624357973033129133185161244214429570218756968186060315111273702635986853880307973168504860005802914403006856196620055796705632412194159813224484194850479276464910382421244936267794715672385757907130300633188471270098960563526974171877745235554869343519205556896199766407435312797607710721894592713311679016649713454977801228423292082109218459926630910223313926753134309295215042241368750376621016495316081284373626486031518789259491235912395690231696499142981662498006960159522341779826233725565230877832482326377326699097370109925340336934814885066048540804912434232762402491253224725655652731855897068337571364382343894082032498060264319204257747453818380985720715567980936814926205049149555780168647225537374303339718833157931915813515422523124313084998647338655562848270649886063733659147541701057294437337488684932913765759326000743173743640289399525049087899719279325418447968475292208140506307106613734160824829764481794904920037577945265105353520303998435662578025444459608374542174680285156608879209040875280098155181472666569960988456586262443306454919760255839858037349602197626600109356219172918875042092547139551120446555767412025906557341035428190144864076846622310272408969032197218379289655023632334741254075751547359148867623410981300396077999407130637621426311134268611367677476388791145116700796346088765182020433808338275225180903286108913906710750951962323105998002847266590699465594114249337600196069953553965764481492997818545221901883261323017731925971833600349331345947533946731631065309903500605967108404964782812866536034327045798156135574211419482560820111670059917913406113508047650667084931668234511289239588371250566813196274572170020322060110135936453552513635915495110145391379059984578654196746637911552961308875733093857338393494792953123341626508846710935523022301783360174956377865051077265682245962375899475883837992062342344889821970241069084259677998443922039780440778151419618896917652438570263759116563928480593250710533635165739426065677461376470850328591170392994938673637430399832241471890988314837394264653098641603319195316315947771088592060053278716203430264798586344097559626982383353302915461155665982902244577633052361286781829881186326587555536182221082837959920202004475223973593004836539508248141213469214926069183375130118680715214152310078288146426296298151927097672825746545797848607646877071588555062036530905855760027790647638227710494042396053308423515928044903356815374596895710751965706102271143555298399122795934028134716623965138653100198040862510105839528449764927026912604502396870922789703426535772506686004000424012901961961232983810222189342184734003377507071807818735949751655895941988164025287316480598432869111174254543640092654957386918343373940046663244943629697622001938999520247971306650033081541431123444346175318374082061707809707287304846208298250355227674629917382954799519325220267429194626302158623017951914647148817883929636350578189282088196183260930783139296030505293953616365345120087774075789767935877963363974959473550358516550329615784829494098905945066071453971315818164055488673690050921816662941342692423578462475734942561669221349537918316785878949448045731457875533182701449324585369178621304118057774001689417729708830848369817722421521273005807281008812997749975457135445454754891816907156777503610435928594393872151684016405279372050571397017612796722755215296183563175486451884178165966685356179532680415770864816930050160340270346552660699322743438377168117831759019746334622380186406174822104592419039862082337810677353695608569359672279463164749182643448827679346266963331139312988581010458815241617491154315083634617626997065020546797784246241351936762916228468781384391168010022564253889106510230995575880163382776997842335853299014815414915514520337772098209781205720302713645284054511965993611789866541981303937115666253194406196101864734294829471141479266490570847285346781430667811303410186425808220465791031175842100229461633213052769028928453250517715235270917637934335357039421245957148588101680872835964994451380408817538373921513360732662229471054115112058292300801048724358371581882827773681692329574443452173820159974392239386233461452462745530097097500737099588031921201155514477366938284552708384652194897982359206097111612557853675792703671171263945154390466676193933466594773774662103311432375357773504474453183221153098171146084037746325691256275618921333076693963364224903569711451513774353986192548379624113936523115473101706408405559060049351806362230480746958632167765921626879887789672896391140070504513287567398909541436797768016478765221792534008279543105779680460147348540761203277872655617912758325618023115593277633515125559658602512756589954488461085408873585956651721477833150010177670530016879471112935917248684711581987393218527287142072348571372068005513624108899527588187936951355090474057059335399237140783520109897413500848087845951078106920662498004472761142607595709462434514785975487321986944371625339342313201847121894977603522665841199395898711345955281443942403214099566534156758361413843114890852291144454798320807715400038904078009453850078828954923335495653122738179092777669065167343579587905795933435796838570146858702274372304239981804952754486372486503852368610748188919395791666341945329365438949194714136218727436628787632114963303000980371572788837924543084415310333733785614804995100623842870553522198428603758126343494698880641594909572914708708446484781084098089989876956873108774255012577244817371059430941448693635287627429874847353644793766314559161820690671008912811494586717560762024801605405011686194006306177115810671957095411831428020793018223341260938231805255133407325856932750409957290920155746805984108488764622021116347545503989891214194322841356890512716430197198691870515884248390638602432973282342859591424296193590724294055350484279602864825657887858449366091416281764621718200772833818064738897007811680653510547660468126768149490202739452700196436018049431184487088628523789772790900590305216256080184165234130093721199824833573683855820187139349410028052337603202631222938287041371324641574898128254978704862973754467622259782006381310802252203173142131458599868353577519832625401093946861763441248617762551994592980377566158487742447262295772064267866842119537252116833608806120958466143060670015745696682339999716583840684520946990323061900735095677244555945764827646758296619665878124552815553465964168820615030413888722931230849896877124171876174067116848689525516219921333016849902694144613924265684070288761927425214981976622573157525869768244233462990628549423160972414274710180133711141807944869547882942392821828808844515324874655932477079556641433660084495116582951346461503149324929158504521057189348814963798841475764347296799252492480273808401403095046364934165161498110369754946835665162204139395376465388673163724184768769056798103141084911648617621817025745414619451830307484914881661444149372743392510477331623291965520211040369862530357213019716697352489701913542114489909376801508635070613383359897873712339677383176964622362990071702885519211160772897825032135321523417319711525056333000263076018805503998780840753689626206902770076111894488804567195199415347498248559112563572821171263987406854056192402646204047365068409990121404645007908645019726946397370469986904113758680633573087560782458315908222247765048870790263019721710507811677573888636720082354769535628627643056550832316519978162544543654471646054897180076648407122455819435188981388172101011651187198333193289763563624383294374997687383366131940720626091028228292326878045202137891453450669118545734901721151578801419285145633873054506286455262856528614637006043495118001620163729868817048085053749612357837371972733268797161295781439098682724909004528935188963238105277125250584260998104719014971674648520921068759792848476375185297908653394852585784955731388282731313526047329441700889627482083785041802212334174883477730428198424872603923718846140983574238207038910786299552419096424546128489498428250446419914921784918107923076954552542422581034626305092118400178501724967782185364877427143565220082685947385163506032434547347605998631803229282086448973956014904143718928558600260588991444351198692976844368919434005006345834375962903833979936210298247973479084765348874064342079440245235470647105626809122077804611240797690962232269079297928147759047900221878197566960344301629587197101921914020024513998594807775353458788673259223781083791910712988266932360958259044736975716991055951721312971680381968279291038762022805966346511281739665444095208680817355727524356633668763045251398548796339473648366628640086921129249952598641314562620904337336600427362170584129614811765437087960214752453315815549727287568638541547976734454685423954771105431931772828379181751603421409658161002326040458208439344116742366532530126823612384020677774665486217742937041344037692890448167662835586920551014757977383853944722951117439725333006500726662058997260060570031582093936366911998582411123456447764359329185382151635347722138631680513783293943893843420671914359893143121497204989467320653959552673218151622009819380885150301725671092952228734236326322557012822746945497149310959341847575956078033297120163969483998806774600923361728530751313780466261586034122426224710294548495242270541273454160295728892321657003628521597200775988179413703725554792720444049344387345535197887880640622675430864493596191333650273395010802248811605954351986760777376419100128145693201478717974696755073421391412161050091782834545890960438652774219411934088762002689951123438090279053047120205341162951644536522640870263759861889880785188493703749429594742641894603987488099990989319956857174363581798713331783935043261924996764763090936991241980112558568706415708040192605613805091294251978901185299920408750347966775702555068541689020013053266378182173814757286292268084325280146198179884727173015549248118146465301899131566349768791300275941875976787913941910070961139028285603082642344554624022226376454765659111648448224097114309104317865309483153250143240488797626481864335331509718665893555285808192846846146379357736414634844620514762627561592660304171524863568644264459348300366596094745887565301222282944417565936570201464181059743155018967496871630505437165831439034323799057321212329785850935947135087326454792249738038426273051882930340722029322255938647941629034772055463718531054071693330150091971399258099909215925608436371501594432626564462085446954986889714824695018377005207820725100592351441977180463796141892652767203894275345700430851602191988382753846825716345139183258029189788201813801005447246602865632977118541544364830504842337296484714917712798257614669138418019672958516783316971811305882148318343999155993764669972607659741706788404248408727562394661896494480288089351812515292377841136638146082901482304945448160252634653632763597647288577199713106862556831733080012086318125586744720394381590340952471269810050528766192766560803459166388768707555918648063565908093544057222232807599126603769901766768979888027038595754184130401228901771508450331743447413429681522783626601682136900709588284474015213537530895322961305709653506631048719227139784970779543855125227272455404636819858250727452666948601523747638499580076882660784805519670163218880105576638113078015689530078905048861453651685179680048148098653305495538064749840183487901920588137049078854594432861476450004435137680519252625418432786548501461063630830227712590056435074793253366654748945574026008758056847588734493425383384160753477350710320871418541028520349364558120893408654726685336373420510472238220753899427488027891959436619464603758414990749619214335806531251705001099609363878498626161727109175334241842436116567561198224352279508296389534400894525704154839213837311557527053914327875803170962267615592614711966197774346108070959282718193176188001267881171464844636790276461139990687602388830899708400398791005069912316012928291919968291730732784637984756697797830398902796023252496039603085396851070327470237775680571187871967004096016268128796037903287714503090960898576583107666168885154506522439517218828099277432798770894972777693279674339317757045332331697854272239650664140925909872838694518536262156921474200083783029269286442903902788555160842946004481427394073077226474404534165019844129256664184279809532104140606035035636288485698136021035593901386927159567229529307844986882194450635689738712368859864652604771039443425472262041252408349800331487590932195294650072588136626860565951358333444686600250642531805736178526075078634394839058957532146840536281861384384975948455864259498611697656526449392781852181989409240464040020888778940373482247752449700965260989024523214017918169913330005287285360960668538277609842739006200468391219693480634598926531506142687522790283234604644502676043185310922038357292092931885153570303205248576507442688617586523080043651864874234668382395035896948917405722500758992611864607982304318916625979701050071182405110849210244131313249190047078201630146770718575970805412482208895209367030361373395285496337663593551983775927275718424142706064932754142020390557014519865138313752722830039983185918829274136279520028596519359088044791208971211175883005019719101538906361651678305462009285872393397478360362461847490711183292518247545258635042100061342708039340744603101979336752674314485629118974154662446708149317607133718807001548801237572270314265831108149991900318317976657747931343487197314262022907924041536936881242288534408036829640163160152235560089588884917672039435294902774223339722553282978829439143356725294509019963094407065760054317245239030117850936137767187925983890266202773490634609269950763651904046048672508271400736565984109961491318746516632080463235346203371799256553252578552491382166019692995545571627448781978481058321788794931231439035669719266252243420697270900055756969028033535407938996885549724592251177119559683967674492709091499566471309857561539503043210101761619619165793275849150763929822041016662602666236048849153904151320538299486451195231598410322029856502088622002034664073253192908918209661039048624874340301444260314983741908060505226760008283465675500503693538477186214848231557306435349707808647328859353588501003972346836320618339555167010200726523036970592654328664032152320478257789960374071243577674248390010280899851261951908781610752882720593549430802025154248670040590819441132013593583007085085596801276307346495964069466153978205413124786737009900049728373599786476297240491894070001292436512300145814471441234718577132146834308848884732664717784045995343556244994413605665768192762614329061292463931896615018588703558101650333081491898369684713484334236714838458410564432864303220167983042694482044637279457941856432423526344229087547846279725087557859536238566001023262815128151644549488197765253484261541206569589570083478546846478539729728928420052792708838642264176332228246052864115517896745796036085684316818150032035884724925594108533292240667816116589211702370646792207514856047155445894195164188333038794526385949373891318025092325861938358916912090627649406354489580156986485201418883708669129963551747091906375593933411314072926678953960558518002406145504894870675990620119597943139423563559322962216451645658890664618980508466093330810144498806284690627860745247318782561855587721476010368199078727875413701281278028089702846880409484188720292985154836223412238145813656202542010470610780793483237728641949370461058168140223813129464819579367951434533946737991165544892407866777177441090801702946574920516490002218458081410165343624152414245214833944725353022622079046573287049428658321908361161313325843288223524474331040671767098478857521937038460280988170399273796556656205294928870395034768058168174631564520202844218526082369417057004869358960796793686464625453861186463053809786816700542244439187217694241476101914448002047523926361651689343616875842768627997284676650988613303755831559250374726792851795922541252807994344472989861659908024826337987448653046855613002007269252921188587059659282257156690997805511982470678586529170309094691987805328982496047215434156653018542106149620700447410894351970257327833301274071449882036232343519415951006319356002139597446018247817730877749011489747031722154199131457117732397162027679208620661558694876456844087921723016106738969298750080981178814760344656834711802663395828358219901515971254969712126224072535574216822827316934174577398490147282776804704961904304705728157378889890830908975745484262444074341033320994593379528205823181708649540417433606507622279564171064139020245603459668022169146950050599817214221990515219132191609220478388889062966051485302889966043262130629485207911270116949789738423884299440670940901125071221852018687498056025303348989341228204064112799336957178708508469879053671674383115796117389718924042144932794395918811247893605009897435404336028492972400858374715731399108835048705337099025476186081233245287731112083029265718617977322073717594395109495803920743820145519063840232212481909332050607919276058606688345060264611568573192266645294625610507452722247959764009862766474953872373171535602307290074159133277516957460344808585309751798803536919919763412887828759515772834831843651609150133784321017298427228634663535195230036666377043876517138673180020537364376288506873984723025013870845053651509116358529641889349834135071237952835742396713344770720536447911699269060192475913287660342642725079594718412374654065745636106816213661696850061400409187962465648275989268312667224915116374915546723664674569677593939594617181460906275811331810848389251905596186439707617023022360082435871627228494592142370387208046308457685162160739161464190466458414227608155211021451961578727159347011825699851373576542891240146613870685331235530159214252332818690804914208585998503599272069468589487938582090092371003383752711165014814510497469620557736335900929225369965707117722094276588626038010001348142966453044204909950466025610069680096131134959626589467586591580035199046956520872974255565592060291130805641762713034757098688159395940559066995318725657451566688301256385444126260780073981162284130001387679818555188699368509340408559074456837751345854794236984193646791757885071365199038642902432364817064456393766854258150763181804340960815510935763750793850731357923217619682279770183108034313166657881293406838779382971664175904242376062796071855314664591158467522838297818281448721022852516289136570943157762616519715097587144181574001410663420081722875469178690149960324548951047521229462058105528236365315894996632999567979425908565960103239035298580537401450190798993605467780795556771429062490047754865125208636848423290080900659489064105747449771557092702998118161370401096181337532850569602747135453527780516044048638682881555981380701788807884414570596839452111223458431799301014946636569646470838988638336754892440575914281562026576919876701470423713925590079877903271596944470329332403487929461261664605848723484125482370868218376281637892344928433782615976795865900899900486532395756140528016093525691032728697831738472998135362271074833099523566480242204130963402186464754645031833106484878587413359733384724017286119248952312047304101574114930761751030878896866221637754172669833349081318690453620871221870023395541418775331445527418866271252881932382047034118458249631046331276434940129916142837332186340609270679890947631190828231514978713497620838199480894032110077856595788042826823733775404887705310309446894984193622313137557972957612255192304353043871354233606454773966068601870161329621301550907565773072348296770029030521219050852787027092693266836041269712378713687120861415794599314305965942738060100121279965043730115575249813903488976719473240874077254418711066030226792167428796701164686065940403545842044009868993231524692215347004452280415862979348945130605588880543481343724529659296834302952181350065057679376759887077953316832341230878179061075730611212624542005095531807187679740889512556025452240922344263144493965470612448547014368668226362429392256284170936847641995307039529590578543119099938568917773401146682286809560985989847447698343050224084395828904776899093066984728840344976610052406172225103777011492561416305364909534082880684782958867630908620996255463336055232358104691655824373998597392369801377778102232190468341087355034196859066714621017070708425631605680172216218746969762117733203672395727284614247259476136825347900710797885394435723158133344956605034360471653235400099748201917523083196135266696902442429936379052717460941913658931130868169754091348511862757737712486425758796678538896611125913113963653542374479224280217009055526638401412806484468047102634069943667174212513561841405056917374319160581324276023344741023279286952393144003035779826690835900388768020885563692445365504846113204253677844930595105496355645733621550997509931642439390338604710135215489934704177368114311576572752744812921234390091883447067839156015020248524405960552056292316724678827297283776232616211559565888347916259460505458273178237264345261959133711650353709659842816080467026031879375997365436220527984972172643923983870302340117090107824289164093684900078976594883872069667773950576878747460084593421361279529557852446140503079122965042708163406580886032243288729595601592682893949995357650053181865306014974188076958775604220822458556106143363974888720370923870280945822064887981635758222954292407056758135075784514474697746631707458182582426511898048022237632544941968613493806146227061716898500411535647510680959488225720871184728499953766234200416914982382460944721766029032815189799745538806739186723822060127559539220476163833239748599012728913727375493877948709646565455579342833335599080407063668567228520862660907591152664774476711971026028836836437077945417398134258270261339521776907300727209612474933045303355446720929031573310187561371201040922825729538827574194831520719616132393023663333908210531575606854290118866399213211100224789123310108405043052083819679355590994151670451507875679512070455384627520133847541840851088404067304548471009058872553166548527152943625900038260068461456381946015110420831032746839266011481941295082003004662401029282325214889173135364492618335703470984693581085219419229588637608889670374094833892922587514832734450898502887956532484111374484690680193568997186842152997139792597884592346543221238712451581960860379744457100481886748301700115638996348517125280273068477076401372011292740695801173813242723440044550784021834836771528095128073135919346889203674185642549750247019432222003080581676186193939961913683051763169162131204875859070318207061937132958859491354568824566709441088865038129819973201495210550764314137258323340583189219670443825147893965877896029294799481055684674542422556143166186802414612793698369497320034705005736764978026777917952142951517849103492446963837929323013953713756375495168588377130025166407841163847008773612493540424904621311439842420226426089970049001999780654079806390735739962361233321234262883141170909716440525374790906313797145965886465216535914197066936640572645548441129020798504270802974472174773710844109685635818108333635666961382427329970459903599520446839920447431554537695605224501015029781011217638311869314968417062063156886724854245726925807631947004987669075537319113566733965758762590356533701848479639684313949479793301850155870717590922569632270130885633226370474450973484891103800613421284993273363471855237587606909072931190344574115097828280483278149049764166572133840508678299985004493756553409168970931353260475121205155336993606056977700102935960406459342976737409932014711238164576230219373222773514766689162326108315565653095790385893202520138200837971375141882074535543271189195536772282376879739694503088791069590364470361479626569211988897693910228697963156427744054398402277362283405452591102037156640619011162865527489589220379528150539264204718051643735223151774523813123262002877071429959213405206896418944320547333392085179799433152685898580315473083871428745398531142427526365773876516120054256932404499922555750916904490825744100122904833538464133662116712020876271264375221659236037148483499674586068510397122671598731807976185517083362407446997762781434074916949722819703125697013474197838101650261644023856145098609159009058823801716299867571404691090322302113742667307489047374369491356345606626364024830305027383826576667251780485991926989240322612119300851140973235504461010639053915291666289734847944573521712220912207991459496422282105453522755192936316998878542017043945373366728580591309441891801981179013907714681658927001247165069229008438200655134698658132538190183217453095792959165840354744433291566722759367835302257971548583234950352321413964887965089015508773813436065462222575328038837732489909404500420011988301480734876654440767829233385499999734895349927824890033197282400384847516103230357397324354547325772751097383223939642171700241168351116648341668704781033585134476710050097182332938447093889520592112828066373993564597891932460160460789304823802712971323535381961495921409670789732725282783282704682545712055581132478793539893060216327631446446772570411182767866482344797334407363498026856892259262787450071577925534914450932902553460056256627029958178829760237664203628770348039428524185168323407803200895611100723605710255692031943371726122475451056763325922529037520507646096327590035415349875760523938492510484746281106149661929842684787386673098436150653998208095774166496704769828670753162388876875926360242643366088874541434920580973439666705669734436460877323747482414843188596253989594374330314814891441875046287617905140393053226237991886864629178498528800559794757982330044000956600778838977967573982628766838142906167274404484991856783359917937300756254183818973455105416707524755747139212368833043712881521183490903462838339523061746126410777727186980445173390853725890251169006621646153909686408637974682071885150618300457125629055180482715899818424484879409744642908277955995787027388685210752969368406896308713568038158188442801419474913974351140815482980510449972929117558781153408849572212615696511837753378267406535278981390511966354359271998941508145155035008438558956915953314803887866588636858336042510784132615737185415387120126818492845274279013170113915307700928628363868934547571624483947907170831650070054824219937176352930369540752436549378112700594442207041533021165680005491689001001026142256233917496451710025442511791305685821196347942849143954309946228445181879457230326339803527112726770620946288287321958228564786280046118493397674584121284511780466432759299541829076612425351557123000501956308474610810992804356729831974842392519809276234476120972293183903750825112343387791990157814837288143179418981388566098252707466274245476945377129814595613835892205107685860564647772673976654377018273659130767837892794911713740612891383649826417895391836427667343088324226818478243960977832479308660503031954452171415269472886007125676495672754917629194500075577182930735520862456524143466096974146280281277539274266501211966060246652114263807312192082190269616557344926539814738680007231274320710909913822336246429158038472900967329287595472885577880701738667079450541058524620303469972155049955438897158255833143798487607250863915164478559454934019975086985524249039617929531517701813875260784208137795049206443951177586838763572216279579754017005114809682204131021158889613522611134372381500159268339126725693473168764488632132878687054207336068193083890163025126795516978858518281343250891944478161180906252739234275432507132372672023469530609457579890323960972323107520944453713494293726700034203902630033680864088181398641788634583074299100894552505819256458242517349609532556281550260856973535430153822104673098948433323781299858854154991914133488907894248423823741693618193768975196554389354157496758286590217899207963576073052463887164714661872613801303626033042897738101239065425052793456200845785231471648493797873655075948587579607433590637417732542833670335780090919209094660025885462515115128724507201028508190446665698128810827317324340563293178903264525650323252677040469102027659220204981036519572596417457842140149705381679263703879710269508958846316003797403712423433508262510365799971144958380217243419822401149176645562254332976055622153372559763988834575318906397881584055303600331875953366991849836618623464915889587236621543611649033765374394336149883841595563573307982448383743492097631288460549138299207843509350025677369403380885712204489899381272727451408045213868299975746296823105624928153734878005940425040741544390758775232586900059363817414565708955093137899605527362172410368376007870509227177347967552048817804230765214192182801340153007368856721326479929602528965824709303507048928959845803607675859710955000370136637424432160706407735344668081831362193334552781233778496095514898250235537681355649886335650395166013827211379049051186444074970879206824998319522990084394643207404935015083162950202139029942122274476078367746958275368242408487050965402384333796991600710436846107854030753132139861873103080974150060529076381087235494914187239870750895159071529070995325293049483683154362651711052199196565567352826894028328474380701510004512043576799571404621737733529527288550968305937602570866241533423221706733133779089835147999072635538457119999261468498519448470070015459608201922929933180537675146760252256955026239737099158712015666953202482652852066438132822384063693737801469647345601198094057486995535287250666466079177183902216866354181358036349647028975100941133257449616724315448013486101753256668406447723269984871286927598373893736644488662944000547510748237684119864892638668947227881247761647315218144538993245426038308645542880240200239359406725698280279153950010919456846465784977543602955756462618820633493746909055507887878633266828200952150476593788296750121194034627247296486036446252902110530081781508452361125998401741246105429835926911441966275092571890652989840100250311696561197075721807817135428515988730250119187883643894919451447187546688468288807021053761074107595310981681438010622953642682183194497683807962056880545066423577915247925835348920939184329939533901191503259719385509129584115241237835128784057159502133202448075338007168641720772938744278666826209920347887881727971006181616586454539084530629741883483614987763429927871714920941506884832491539364416353310086237102587261375339954376774007437074175240490539187559087411763248587574232638807476513714130477651876623616916723670169057520469733441492182872216677911692578707380079123154627556139797532946136371737760882510693813099950078037958621483667979346195994993519207411015253628506817041516944641324301715919039410304919214318392792441849024940001029420582324297427052354391070459743667449548812146355209623588667746355551815203982873040916211862758026982150634782517325221967287070381239986021231916702196896714543077903773699910791282573190536660461213990341313091229245591409099489452837303717518550217270152944329889223262714937658209496632344560511706333566037882504612185583296950191655665334612941326560528457236955330051393130200832219787989214616343855385020198847177457630841887251599680312460230197872683218253970223863280297618606437762431210309582896329747909109206186025052720716824209793396434121607334463904351375725727988182145912820248377892438236107920424389830726526733756610186573681042560683928402776089755118289052381196819791433608304207546626947608697428585761241089410204605293899004695799624604865721596050733027597413502274078560142700061095989642660441089995916490848299396394819064937563009827856553832365700880908290089544306668677549337020299056337185898303273346851786170825425942767505683963280941400400293233626795433930873149134072614990580109092053710896520702123428157397919917505903847860611178056728529822313614129193425455345165190781928887948970665771851278704639865918215254796640393252190948779237035986435172797768361572159290153791323115019490450735011032545758053429606713538369403448807095583090908044290018528750232978231568330561289725658892389714505723043173703279666449865032561337943370140159156787324135606366417345694330819981135360373316213653036281294388416199742755399915990106007274872523280818083904682547858404433864856194165147978102889591768631217950093794887680856576658956252962402387276782010024049865751558418185388426459723231995618577821208451260258086244345536429288229249000958703395702512046154367724815791986621019510333118269189284686150613403612333838763281729819750112667519179166663198879601205781877173381076804834461684228924434054891705667928972464438859490285121055366594587686341909171102885738809976275379672043934934402657463926971550320762656145334729417653482238559072198334572483582148407727145465787070948483881707213641365222071140234273756694506374815526172049703936582010287410429946229338563809714239630911775355062113499484087070266753975862557776468792937626265592817613029867414988141286741182459310318561811648414319529794206564219212922370759522967092105963419458055098750313964846909307202704517220773515073787089206678684239110750532433465326903965195408981580066928140495812078447350275935981936466073322938280604846158606280520951843943813523311827622303283257566305212438001547851541081629628066732661480497228430203356684305562194692335231003846393421385758223326443235105885532769850600352411989873370862948013526005771233319426974944888740872287694888475189725783774195283957879995506582076549443215175006034756753775675774173768419093807359750275162641102631351977597228535716337583425950745371277496739250876946753639656375288710217892257757019049306577843094923522601596846049904921034121191824138936552965302147789390898377612434700464028397678490705180096381162385125446863686169006516953114334964877434275803061009026684858362341832572838047281761376955916288534602154314869729099087576080025369189153629160819452022922411029513486713369291884815572375528368014010712130330212630746342217864395006392202877523286664078335338395443509179000752490696569661450507279932724519859849587165266431647048420553180667287446977663087945526598349551146336497281821015388337354693656773185960473920400236812745818132714615489901679113792209848790357495421334790679400350820845990646456217089004807314932010232433649367649667304319899430973293717894003805271957068126199586227069066970584175168335307720158728312048181414234887768439469848190908839949118410446235396870299908332509561248711167516209464623476244127592961555091012994679052174235831808226307418385636052519700329287214816020715836991462248280944474547915954470488640167310873473148820904678656783380271201077397010420578458553298277725790299071795970678272853173670261256186885097614174729546479741120280217557260055213775259953775574429052629494501849282143447284704877472429495804399034116104396215829232319732493085740565008220318262763424738356446829851402728055231335486680391143397172330823774964444051024851717666777306024343435767940592919799595647771329145676791365401076181296317272307624043039226454072907815048476487969610987060812430959470115894994565729721307416054765463150920092788646318311941533716101382451145970439925181654452577091149470143847583635698573556935160873232860257003371222758592221205749254091763072837993061018350422706997240590493582178156461756428357644671624226700043522320291763883269120643103836474085014812865583044490397340957015469736202517380111832677710227721180316685793325154501287936798179426999855756758657285359898127442405937304332330713585860534788576391821902187664579062564001911098646729191786879465250603413456439988596806215857417049847420513940948399940081055153691940270286671397745218044714801842288479912042270117762890496776197240763175127923149722897342046083096570489788341832858825426059605424510489769168317969042046068187244886238904216621091169964912950340938612756519472816419458427646244348514286414991315702258147215883021078280345910739857222307000013230117585900316248508385814715513280487592177355467027721401357443491299586861757083907626143168919521449011515295761921096689573629257293490986521420839086422672946169167000727528766590723552246211242412124164516569294622593382083795136337035442298891635460713773698699583182467510573422963917003383133238290843881124372852501442672671741545217875864562635301741592600087215244000007480889591436200119754385323753460697781208280026835370528596411167941437161730546729748100707102412164790456208670654578336862815804200604744931352936184369927573948620054871709298990624016334963636073182398549021355634072502732272729406503509846980250583883414676178813092458846765134236584267930732618443048499531825941510532823990264375925215212327407708658338093764080332967026914903245735923255497700608756755295028234668359166994118031160114943877881131792569035388599278568071881317923534494403744202466961139118288734086522143875960790148432869105632228633038432467343884394422181930038268202051302403244071585776317215657903240583662759580629687389883848445257172500397022781534768608287304764231185953604420248935237912457585193554162854013245955675740588685728860128400846088544362671746656305658145194776283220258848060955792679941416228951165799515375759495079836766180394196900188411677235339843072247108821422791961869778949796634229429880619174803916902118054449885801514724966769153570184331295221805934881685417448838128518838705414502678962714209156054328874343649118219157822860930020692448984309599859221218736126523492471201227570779692427992350876193030752480986181216560030418914756999289327413808529105132211558478243911272807195913156916016919329950491340430946790319885606725887883188379389468632624263158607352877934499205698862730951496069038544112876732772207568249023596775690003126599938575248124069033111704700565043912334706585639956393714898806501460493080814088941101131724760263974132230411475981514882294910546383722094773190688692745700171317987157072254461382133969415517358654625014936006575266202236584383263739725238338521013338896803366072739169173712068358202578923453756160375295102989473770358809391880107570128725668587082555054049359520808071513573951460929127962530942797083939426939900770388037344800857216075899930413052575131885973410607373643013556113557208804465994652090778697459817893907931933777472529616692375006156823162225015737801168035577180592597307062867227525388056738483088421018097983422733733907142518618700008966984953440151381202371684091398911103771149090194823459274169346053005464405202970770796158338599556030232177714707718463707604360300553552830604980808460882094429413809245462055489175337687565471793573525906744606917739870182046439816283724663791834681246842484267913307371116346330993370965773872669416325766423629563488124040816750691845074853977471672942541114187507675876109232869461404778233572526727930017497381833887473822074409723755684270943643914346452736745613430623117074438536619194541677159233733117537563923682720443543534946648565820527142434493730034124562016435480996550570276986837147508910995080457571136675624449344055269554176399550201964673611417026036216446160001781662380640467026667249948889154564335392429457330569073545597779961002095353085737845377662307582686703404870060923324523573397822390618893177049179316566413063569436732638152363623579848688486091050857572318879949089221266017615952601382276464670144877622147698743071787875857280345639706264781802855074928558294612442117004402014619244524001224622504522413484862066314034546825375808705693335142293283848385751015107684226471993416180846681423077347300498459197987030362762443736160460240694953637475310498027558534487625381635556184759102436049526408611918405235545247968533409430360027923443102195563126418740467356708825185881556565902684704934339149619819280268275106868216590921770238516857571267463530911651311840727769245430758162096444422523003339969356710367198030418218984712772012938579641134962408142837506846252812259901236060694933578915455769091580334847342169007751462430694913775953238405203191743580843859645574656982628652425581420854295957769575604501324303614634125264087980831742032896642708226875941242121628025472291472687868594527925117777540327063259859616885095006125869058191142536636713483434590719805418670254734861145223090437666963945809464739153377982976831301203863227558728156349027892841270783409638113808314606662934792110164219108311306524118754489009197646329132036687040791091859971977526773130023326410961870074429422747595728359706205515277116743866574613011196064088884636272227937802935721658583814079515806512854822007762512843150113979984966955486931388147634773513811874826806535654912263229850031346919377843393168941785384189347624468443628146144484846270085412624012785739335074626948936839230166992890935230616656776322645072901110477746312636623494696920642760387626113097337038151334865302066569319417204853031315265745680155379335501762334189590639575623667308138937268287143555859751368367409346309705192673333441209842023341574609747744609156003070690426518259564947555698684926613932343899483403208737891737217164348289361059802780408948845152423601010106147605754940102142033484651107882037422892350706726375256260519648965285005937654929091174900322057322729039473683038014759509671545987347239704435138532304740557131383765738756060399129037116835212739972852246259469586940164391969015465422905951969602473459335620161685897542392038462242229772140670478166301998419515887335154955880203005797085840780185616094026004274511566265475613972221117419704383475689641237001037282288577487327772202494421510942051484613478447519064515363898147155274162778439868086942955624624453506250608404697720175285499901595753016370924681163651870281264887925304821840923796334135850186613914287005692369047223961228600445741455326696295378862225693821358854392438934225764817967051709656855924415905690306869646655677674901786715946646033759047833928650186165634881566341692656032060437622121667649549365040141910832160777613581381995406241331048567826952915490304620562584279477043952341414602476136733932306703085485160429472544384975340666534880978876106475324583921755451139323741436306313322177083721284272820570203994495519619310002742224485132919213889734969072351181124345498324686404145389707821896943042958130169170943415543147357104077731940879151225823579987303023327002788397558357090077450179750712083888174235816935577133601755780121921921452129641428392922018313296601490413563414708425909096749107385723067827668987224350836594775309033927410326126497949020919363783974409925886909681333919661778961172033487265767529518824599789315377131777527041175664711727162148020060151189583746017328502209991988588856773683837180605597181714474376545636119357930969135515719279195985558960319630840825165123775594690176127872334948131722569711058491394846196496870000778558010927164898840012498559916566527992519756276560915796878542284587431361507992696692739898773032848469613037891984188865998868382191211435509159186485768823236233411429756285242220849997879481140434503022972801018687425040265542657416801407575022691178427396403723973827158911729433595564766507863112104609671128782248885739794784882896730759097645507831937616269871908553484516118482648774748007018130890741339579834499045970056033251385916309247681702936580929474349518533662688996438986410710621881651602601785974405222770725200351539783788974924801216904495730735711402934827712810097859377559142915970209998957048414980128756432990619584163768933606943431279410014788092057346852457886980775899049992494429540394652119648507067866111690122346761098549688863758268467607331378209729815132427044987561301493865775689385643517059719578494165209350668302830787035663641704315031273929673467809134998968494201155415601699780270411193640072169292094209246726959718630229387134776300511159628207356287473272438789989103784311473598448857371835059167415029938290708427441941096135668651682780617952539376983715344135653406906978603450287446266683323474292675106318034922514451798762646830062926299131973121066012717287431657236762815062681217697593339975343715223689971619593486671330271799446919037225275578820384274463215200784361932280799258289867316474146259265000948892540853831152030991305522052857526969120999783656266514145437902185042822745588172761167375164654637396459382047219134309234105492960391443877575562983820975729066595775787833885460081212936461667351053670932540467587901735667998362890096817008249857932601177612775312306971401705386272872512202712287831672651191492950937702837995103699205068107927317262101524926628948717641428310394036241662955433689226832595741554040366392950386360794150936797595981611410077755375406319032406935471824162679674113297500370148453301946469810526116113526795380636473531675228579495813709864535048746926084288686020969683234207031173689871814470775254539573105947244702292090721577112655889903905982151863675189724347993633173546272366177698706103746327303421085696219691852578881874587274751814123563594623472420113559935379913528365255932616305656015036588646046783646138118714231985698640676783618028729862039596885359281930102969700844807144403024637672364698229031185857938702229233264534489626902923706465869258857183945174454392735463041793032821166772608247371655304701497257689636191716132933900697473909916381662925658296739989918477171587179559441856345710629045289343548242972685903126922872023173422889578306906223400320572278547634975677505830080820034433396997668162902706235462907504796117765187692920934570007489429920118861006549242185353817586758144352967915533410110473902591759685362248791686386630253759493369900846685083860157425977367972910498662717736487444485384801789847935025066115863362556013508950209527904695774115908216786275726397894143836373127097123064839426688509466411745768828002225848277153820093381551943392053155736687335160813619191748508409347331109963969925415826362446693234290777146320981298432822389573571885431301007664702783637293898817730746899409166569229502376604380132813436849258483220940017238694116089631321356961746116664288328944441505851133033412305088371669808554373575267898211505972911296786163464875901335610200850942269162480010294827608154751517881353398289424808811373446717338402132999291507904078435105852715059942530319342250396752670949298990063874927483603222682567811783232989995647351063695312527042554480483102057811773880812440265402253330636218078016123510175459191748393879358609672462092873757734819627831073536643280999851824625951374340420550118406435951745537087494373607540572777116139288049926216181740204881029330722301240169730178312500420109422636520407259025164608647069031301619236230705042115544754065596652407365016086797906566088105571472857126030882267251507450880373003173406300586808541509741816959226367768162714080485282129138721885200073182403737814196278833488844502686203908900536487011248216290112357088541661263396053029239693126324057070283192646512026753422466587270988802219106149220242442799829916754923039176762329415228125517360205008835664546029162846032432243000830959608664849648324659402744960970749909985186701963266853495506264312601007638073044940055441471522134050731133185164702164613766997914408082889373295177935428367021979305033447392448823910751690926134294711869325608505470503579325388137370966900976034917610516367457875496129672880374268339938452798772530509108321071928281868775948493525828102315155553783599089133024408183989003085710874782204140888710739661972164420173670192514711497940124358855923195439642137996647768550735483747497212748424121024166931125587695029946907987657800979204046658452432430831017180067717007620741959607242227819811270709170958000698716116974405272089233439544722968781233676963069745939408133638910964259889091578111151127413668648358113780210971939075797385394852186635235831888616650620550201438059487265715741229196392394294566500225978253289868313756717796087149668367096537768189692003321693886205887483116995448444714476078108614505227096614751636773988150479389515096142812501174316451644009870551920018883058499891060374086206636723119579745457698370362665543141861212051329592557971622220374495472811347938207877007806737363373984274058218380872054301725933577764064386454653129973235436222225624173756656631879012849669767900881808483734630561215324902611023970470836046981002851090884978915853157160006069831465765384282921004251093277920943613022016168657283123995676946742433990550159189964379128802209256238382159083911977230484266958300288586545936689803594304603627888664100254792441500235341762961452754568244034566003385783169721059658329015106383870991200256738019383101413478357793614583417270955929871156251005805015092978990066909545420393108755458974496367045790544247535009651286104810636617860220316930703546934010449709770218570877286909762428781210827537295805657444965716657586902515213990860593527353252347640986299947888549109804442560189555300149668154369175744115332036180118169630999657353490961538109387607155954640982093360788888586946707703323754399525875835365206600735472248446744963646672034346800958096169338973389748719693768339114946386471525756151732901938037283884741050891564963299861318547941232600058372042488599722641774190023803432779634828187749517470594736551903563787784658337482574260582670302357200783298316322091230902816982704050639886788923129113260533172234372500079402869691538210734347036913836497025902627343381597988086601761937623410094297173592907080632695716373535004887825950384484444189352467670675969462693695090124348957750686317822742508601612910689093661960072232062555770493858347629288248498275945458325237395675332996875521165180490735001319784093404906751188262360402157129203863459016476512197823530162082216268945687833505651266166483389347058810951289454065703039340537469228414352392424350393083529162233166397780789301441471690128052243629881966787969974464527196356117907543913279175593069894210880759639149261983988992469661979416174247446675188150625164030394116529825969651499859366339362509483267185835889752981791893017016886764356925717942387696766226044523024692921740231516492420263538816914414810958985410482100831842036375042725998311961069173082268236673594811153216198834257280968030391235916619434965942715864439356895566805994311751243428749738338420603129436444235449497519328595921499219815985336512058344920859357794733178935363194933224501436183879217650986476764269195394277691972710042581557978478164603080660010609318379210984336537188472665580123369130722273246384294063673660979254695687100161157556688271463098398526539116266143596701320617913808246506797118699711724792444586509031728868542105460027465999821673369673410838355667018914771582147480095649240277983172824845407031829076430277788889638783610502939445521337903673557646757097202663959349101010565792568733725521839958366424273354878130201179552202764393372161806823511583884461775402486910450039419153984101811416885569155287594631109574459327154561920727951281985347591537462832130397901547108185528812187650014819660668858546365679999983080349451314274355918869397372626736244974703640540051602347272787721402675819964677751843169442963936443247713043877297898372415474911058909676569968428626836908983197208364827169739748327096868944457092130662847553292849809818127970939210843601324868644247827216261790578031938487615408925828234322469002680206852835437257102843675171891125154342991163998283352863531887398807007874035177072457978720237988827427989464941616134926840214285188239928355513390948597112519154729096769610282953562430044200580024950195490145914935434493036013821617464061920968051291809611425889205061564048063526576325516664747123036907419872072121548084284679795369583988325800548220741829918406173131332624109369705723997830083118505591002410362791122866860063002011192837371374405720200598077708259957910456819788636508236440839520553891296415947776678439103605582043816143192601025685702730271359601187839392198377187681094279817055572555025094100578210936762505656612903740209795571514952538377596710346887609952021908825563515914509352324914321238532745547219914454813313946377931723530816714201369810343049337507181708587906508667020399385515968970009535524793883709750120371745421102744701728737185746521272852415252882306224270199492827853429271056457521195605995688391954782732529228880027133902335779927324721513971882112762108465590359405683562096245016695604296295825833753854639528880207228868748620449418008565473139868730873750829666362607096310543435889395886776287830857612855593304309369964513600519987730770427072679220928143355843079756253292275239312332774898476125722282561748790348955154382106273770389661343191235735908739813565148722158115586182578608876987569476757205938870599433005499918117274197579527782167824096617048557754831957017813974941656898439794239466964939988406188644414973791474105853637974421459815493807054698283309016761990417347798356418419382118999533320891042036978945998749933635008356230213507197282681310622448874739948381473728087136093504581878174527550787418009524802239499867391545184325630886488224667591819431428772121976028400042639147483377524541669782464892677328646409843259227938595548923092382760693059626809121730199248421479347513320289694905988993410847082436307259594091990990026310011945739650357773235746872027192817242472114534746104268989229352628626832181480796703081416614229004266845296142411227888867856008190130945564088815157557104379466065129559979228687520848361070110214551279886040865070547531585356917703507969458241452344057480802384225298240441684303624179021152673039939420710503410233418924525821864078269193431764067385977727808091073513148409023607190482985909472732617983612005313017497484342340835485993076128797244086011131392759332341543043249158070827729144045860968940128731501362983778224069247473905635555725122553596257837739949406123011861201407679646187604819042586963358385574307754627210188507726840801179949126481412900223808220481775038186373104456010155234184608386378636670244164358221010853709733629011630298516036519784142493516006653412530497593766706062634941810040538347945725943218662439851392242939581915934426783958215908419906287787880356202413352017854651248539559654151645431452434668244502573558607637672032720249385900624495763814180334978793859413954306279713430445991527839534725206033560310119497306720170871680510661171057583153724581988329025199469300580027289902427208019665781167296523749128969220232335034228099453968538454911786454214928335131380206229634126824555250553951838207955429051818836398052263831360772257414515379413925762185826835994657474296708255546712170922897212082752170865933416552871308129670292219238135704093040933427151151000641801946310242331699096921532732634664418021072382589563831725364748570897676711916007688357813910919174152925595182962238015226335803286128545558365755159419617963422782265724174665507376992944858817730906531167717785201488924142057849816136731950509389523649284106550542238108560323870243681437806745535607857681925260680641795741369557520977757282454484823287643678476991268619690364257739008433351457897726789682300702801981973633543803386645003916980624265188140194889392251308563891981378122031907382112749055610588774819782080928449936160415161178794893924482173729127474475250086921754229746799053189107548128809504961678554919099977939222655463072786411380086542255541469495659931749904706810131613459583587004239777981399949462271835730243209524666375531104328407608385042511238265555423436176903420526680058923840301771821101091437636324963716326065600288337885978556228898577567648484105136162813731938364408878182876046434418792094664805986375525724889240880292269735485551262477137663625612288162404488602694220692511506969163320330690982325544974168309624448496731988492203604120742666765566797041409216728320519815013714750828212858101100543471099308526031766145690300323341905266392352356803835835532818880628927652517101559749700468568536743145581462569543683473662450366161459543573580620124385234412223239480633274674897560979530859753300912828583496790059857151353679280598707675973961393261221741283715698988555519623524533142686133239462375947255422488360272160797330914968224508934396328605009350357145086346411273552648277514668717222519321070542196429811817416717392618836494343315833699161237008945029113122703153008926353720839787236578676775040250944551683244468737817100195284792941665822633259775692571003174233072880116767715854355199728805093518734605768835766577190535506728032426582227782322266323449495775372236752738125749567285587197637998045081997504589764553658061213893361476593411260122376091368020063204714741104848464747566122594718041836867678729327917128558041095899178171132340068714036095963801775497288383883125773339322088449655737374949960517871921926970341128815777030551754130804940782622258954287217782584717131358112301765755894022600659549868850649391148304774961046076226188016220994173667206455029499657094216697975489376022629784314598455789398459893163686181340595945875398763410340129373366338183301219191072210995889410262548985285721610269336502464784770490174494946263547726860259397732609072453934290101629271311342247518470625037788419802166180946892486343773393972598425256231634766863230122229758312832974773328674090293567963628589410111959578987260336401607352409931598076100030049565916567523138163852359115560773275758033365864378331706924545251666650236580198355938494503714383605110299729471535889377847366965204864408050941475016672348163646122645552849278669843784181505208922421622958279197140684102437071206021292152468939283191211812040132766184475853301344696382763566996469160912951928755713572755967506383526234782645854107952363484105264817007115782772995098146756251833904582546600090867204882795405096085013829994868293927451500534991457251357827208273834898251479804202407665533522806693955559713570488009718097344458592278671518066137144918305988138090014298814543067937982275685401302337118682740854200322391819053031779152113112129924764674696480046864153267116643573145889821163618845343558593407382710259304421222798155721707989620981133673330476355460803065091730291316700628247542704434411353928871168535495608903256714555202571815961345052614689559908725100527019680583515884655896623235569826453008070304827355934792310663301317093772645596561605053003674017377070807296578536725895916328365645079603167020868595164019877125179637085470479883917408702136372465474651528202410402912136138750126298031802509446823821739225006690868401372801498979075151377225206231252640186543969318500434345501358659994963701211297554028607240303009463182889118769106057597143362209591616651552790850589124673636738199540716837090124059995442763325936025766759262716728751908713436660131329346278466685185379183909863311899915112826609391307447678931577478985172943943324787533641417309873156707557225333895427276664982450348328543866437555655641098674614057902738893411021582585752587750642254145118411572457501931074785667718742117950027001235101954884252117657557870851790731971515716685477555120580760034543802249932682078104095120416028333636534605464240793151526875811124642459635944398672952885076950595147457180727922212192775398686205026158885983539842862998322345847748916713338661655966685886563898666642201309262119131578908390344755448328114612176385957740610843386493131548322054476411113530020389474563572468640678141496964708769004087880132459784661164059643060507926257635069348031924853831458178912493572336392935649403047960908835562454851972624626132283145471678955361840005205849697041632236374720399162851934678119148208724603235785818647150534701651620295908544900765455593451997850763295556052098838713320803437712801442614379334876703908146384251223761426178570505964314044801494377797950390477224103327310457726438862857395072020045229021362010169623450164048510631855798365188082891598314263222019642837863974444401175641125055672808797756758839942096257997191075016539642501512987687158965671472951205104514564504636877683223005906326327310709473701969276629441528313856162640838863742071900805519036646803203441151649205220946613391454975957027433275521210641358533479573788775955761336939397141703749093304781740200531059275587305656454178641808815104686382892875690211180627352308353156093546100764965726606836489981874404325810919689009877859387150879306716648186846415496119502134938864886630686430692757075623559215056609008745850102613922620682634549324169011650361639978219905531723705429583421349783618843084807570418409354901664867034518776515767662600185600662282386475470645397962908922420689477996606953061887395765263945648234776423417747377644982470596723606261803637413644263340408739412689440447137288921740623263138344367551921757554061527479821342998689388383609736135972422536954018318128082421396388657015029871810386370716750331916468086584291400942904196113963433379521583095213504821385192809074650747491867764504898251176602026777892999060854515105250041182397470376351838606485956917238461417664335295063235550430132693267709793009339339825321143805882219593248114950719973214460617617247704968254360295577618450985936362977880799620173206562198615009135938981076291578388188300003496358717554871153582656892133907974546744263514091734265325745789296546853995231262579227875355459987492487963537896211642732846230437563771866070071493811370379587937044069018448879906422311137037983582928162852933825738306088770790417678311837067966342351459818863989654964173329208646036157789096414551685126436911846805481194615734022990279285885561656898067337230931741208382292855319291961947169664613960849326542615916610561290912202563187719615052975324759663671483829799228721755176317712961601627672976336900475406396556046378892640622156843879646727905490772811520870170011937666429108915100518045180709470316064415486357077956837433455166244625450293752193211854532648841254839850336531088004056942639041192771873251051787087632141998601571046797529571838489143760656679094615828838121525098166970577736739256106563790374885829871466683623349577909896997845375395624156432550868207255991415933196268902813106128642715000089850799860539356988420015988236637123941610451422722165424957141219864690992309457994196111880009182989340926490087788948143903453453512358113261131492261442142110834059729999733071529141371305958645526066138959410276121430917456157544100919521031557953134463153976821819647133325211411209024778397366273350295032117226741832335323982281575913598352363846927825452449944547470260369445288236499131927612390507711818701038871994938802928909213691662467866061102610464006630967295898764291335046903669652931987351242284741761616741106062318832342284984736906090574608169761206642361106486064213887259487074695240451731566958265016525265194039705094740033198710295544721452743943582653205516955741242019609978287339257488467481645023713140509902273365834595572517285644666539636649979629276690849366981580545033970377482809707888447835101643784884180575076836336228019654623579961564982014649641151135958353614951493576540040412165071992558154085561726068575126788835667346523324160331388875855163744080151121260624307774553876200884221104628351847427071353963564259964568459869533830955667089309546924699129932284114108278578058980239698114729797999613436355053720331941293180206655343707273131262922033130419821058206209546729448843064785439834131941013610024461188096262890573869105969310322378694828576007249220587905283499898445589786507031023674437512926532551038005475447739079409400674479172978315518116549171474553990306231847006598302254693070464021656897632963074774683922404893595835059264575641500119624922467582700394033720744094471170606290336178659734743191255850369853328781636310546681507361637147872662447865475236900532936201886957818310951564363322555397126263002456927933236336604305956511044807316298940070972916919920235971396207355372565105564883185547718510519576010864708531529958244199726469978755085204125230971895210204093266231846670108911422896708208922209602396193595997510933528172662765186500164475153018200562916011020224446223866758436718902975968911725363925868328136556673722939716697453496719801106385535739921208230202766584572911119569519592594187622115764889254990957279668962191367534570038795454221542888085841854581757659901651754744069686274614734799044314707800243277830343330415912661972575807836999731689405331976951723622432046287154889971513279093095655023836115234223400131292314345963701228391226609789018013968975545239112939403272983005636680193488971778291999306922394460099693378318813921183134378155617069609029246651360910494080459813192048110103841305990335070337951876894471587731609931417456068384944999685006781049911448437855325799546033332493057289970893676063669978521415117328428956357223225468465879671283570634243535655655630285483501174182024386698827243822093777884300210360942990813223441729704256726922305545456551542709118833443208235927371570956615829936001354598472571926722412591716827659728087488640829200903674447024463845103637320695755110828870121614958880380894453977669662977647900995259208157188792907376771001643961337093663611325923375016301251338366411125590012724941843263589575942546316859046111976510132356256309852293200723271488492660140693858846623173146904836686558134602954816415850956251381224104489341112616893816133509115041623683327742539504571036901155887145532716940617738697624270408540100571782629815642005243441298825200211241542410816814626019664313714021590526542772136999161001890641439733448233841676148072708724586767012884189786495038198637889725589845623903430056695132317587160033230442176111522946325651528375201837354774806375280744356258301072935576267619097009712045321713761848652316914742303695731422914781729523970283782631333034488423709277661632004018534159029294003738683981151960635328117319588898328627238731591205864030512718927922257887038298662171121744436622901388416186504621066781651152032487895700962223624557071482267672988601661890804299185358268839102143152921198525712702148763691716371800239736149653645130683918256928945277603270072838245538623927058802045318556531412285672891840020549089752134157122411721820795054130333977448327960798519033159953747740086072260373920780894830868628835461261507983334685262456986221817626856857672643731351918215075633757537368244790592797798421856822395757627975564984366466803477382088676303199681878282169579777899195240858760922677675370234279368827430090152109908085552014370543831081465734883681707599546040661268615579324482977249434164940266127009215611280711314339407438449061881758779455741607549878152377138126717827925126188108713346694475106301013898238673353119009880925328982859487048735307201511104216651053564378201465900090256461424458503838572283262036311264930221287333981980506944790346856075910420969959416172016379309015500941748340874492758306526654486534969548377258134718050477091286055837754211026377026501694766561667708039586129677747297437413040821680019979730383980113631905474752469539749136109337065383364075216565485424620155296926479205541503937904695382639775317244960742822314201536207350477705858899703618706288722369079609419100525999616939007784985855595384512914709934747850169973775203274870041109515196063608398984364942925901604401688726766550086795550788447803962307857426658357732744176650525253632413927505133379236411082177112632681391743552747927236652734412674486496202589904727373813900289261440355915825613895618441952916027430986235697417510948057176258514082519469996692645205444767810193216720140185023891297738322873366373737187750172328123197370511328007453745003488192192232262516236537289477904035809835387258466398870989226505009993422992640608800963704097199632280954813238226350784042646538642787689370205806839648962817625750794456088987970002014695856240134259090231799792346171605131447543823641632352594590312644941684466735353711401167336533135187429230401358448061419260694798583301523744380101362956650507450958052346403208286341935429872948183386839967905890549149245663483935833322171515790238867685542218285083624246010741579999490783169746715497579533441712381883578585604239835393360311275380653662260997218021240429642365749039847317023125363454167213395736817342845435533093084881663476781522126460071111300438473844164590488841630203390778074711624536329258189878950001359260276492915742288647500499683776003636477608846339275131625710840157065781008348314443164724082799319959022459202601704595328324129892930795293490271040053248400489125845193752737707205702753122378271819915846870904453316301136928466580366762222762304687623958264240262122380615702465242886385885336386359170547661293758136378342025124594673688896938364235894630308990556792572429407401185114348461096437384268783663652802032764410897289838186236108256761607844813381951798150480480975019009715816014078708860370418182533499720923550516997666667472281681069630366967454648151574925590634680828178373111142448358665284240795743822250213857448611410814034621134546819031089098094782577393678473330536291571103576429075422570874574440293299186310265759347500129682283283281988503972309807007410029016445362284958689461871531038070068206351986585156202331584112424925376753400807974186595599932512255646105296127618768553472680875699577041889459666510848135763828917824189748016634961272396491418119169445782543103099773307945280510813921957249494925631464028809978123578380867619708312648514424737718140784292179101218251351337727105719559099372819021857181924247367173382051299897921986820422795088490166761631960156248114212247047130625472529361242466528802103174287558463322602610686234468138588210317936178312122969150155764442654677509207121685956337639578064659403961278318619699364765384088858934169009518745496083649520838058753751825083211806143926282273452222567364982560892149919781234694307169649901904557601567818322704069031947999404084233700094601943158798151212295494509130921665358443499506455978732874771899420003855305530299523768818994457802528264290080289227064311469546060637909961882592124697577014103534509573402651420215376903804385101793979563946564993748774576256959273098177898935223601267112242321653875222545737898162165851327847102721095599947639818215268348767858837542568222492581888412300785984994878191153849066874673483647117894605454276895827899111762808474393644422814895803152881788147180986373940028671331827473780687479328388162633131927223386887104706840561046082170332213458211102934279610974644433102124470764811446706812454276028395107339770602696709069263730363053027666773976482014263758190434966462871956245666288628970321215515752967104560007542928852468216166468063725449942542005503340203240362941519481826795231718684996234361731890983975110205664414629232735003447708032397580073796691804199726158303080979597343101385783406879586879023496399507773674651680093937240390589411810914588989890388279799771620157976332847717085948256774562930580123423141375619040923614263166454217763216426737541820855431527157588209620987614505096578753357659044997931885561736103706520915633946668909966964638749645637641623554971014603235117925015594094499445583594076061818512093551247472167828284928861801475357074994727119851469109287336415350397538107633838425967998919268666525215303866419198879642081597465760334955297689361455996411636477547139123805990472328461016418933277807994054112260305905884472827602641206667640819674648121642130743361934218579439294595983115584092630502292704337088669240545338220960030848184677236003021940644674446708682751893784265441378993369694311313177966424962813036747076524241439847092072281298297871749005767357673277597265588562654156269631369099520741140723615881300530670472829431833534141770948680781771403257992241476824620410208961825027299543852368650594800129587049162736827990358260443691073345482193302104035549464651403745616606296512424939760036724602969639267381011317178997188422602216830490862647512279123908249501220628802758512046880456894855928108535230269033678346589645027271808416745405654534133192500712482944273600621442338597922756143699167814235613494041225673708507361692305375418024132963302367544262208160499169720084303875232994382381393548360691553667162147609633226926435344838096321436966829923831312955166908934525273921397725907599279194190082593314466801175378588685731554641568539780771489402921723783114247433427463969266718327336957250059934216527335623201057085094030728818839757521321371203928860940666404742821252533078357042814975112453926624357689549518252570928410663602795822740094686680328656214139435391000932289643052127318677906926937914757838441996840600574413196461131779368391551457013200382277556494811259335792868684677534998173921042605167858933079028703483814000114534664882593307098103290584582813963744471443567457229353233831787749332311416258635645244241578552341172568849064524756872357310710982825264376364659188021794102285241930512888880731680887773066521347465652076443486172000367290751403055501861663880530619430584673273836218179716382540743373108794785941914001213120893855919063015333031388343562478458404880170731025074619663867155149478043016676209824536041095169337447714515189604918454008762994910634075650954991973757243142212314153148091626494163419181835628124139874697218528336816642353448999937088851435038341175072629337293329236119870914381512163714089072080793916118875691402305636032211491926709754025195396719854438321724987947558259242813861818149178435767379744005255859049461159759773353001058172675091314417223822171010671319333893834276039313311158250378567397674863634418541374390166969724835964386039992317402574322720336405750793640434459597300018958842285633794427347194399671223936305319724546870121659814729490347897230291878863440055622947428491530631335163442444380516397482330166355939219202612855075805592481308133421400717250537511749729739896213518412798909564338877098931497497433670346454098650666682223210118594087234530311484066149844096174796016981599266749940447129394894631274821861041877732301762078002941244591525758271594823523111607267374176010691814112263176404047904576132031902914022927447978630640242824671063456287608839063779358775903673583291966980124054732706362324926431595943440336597943403343327465084564812940392209591740625748533596212812489016233954249852772118292832068487251951554925455748205184026037174830083388831775260117039918161032333856756572258666534714006554938979549776347139233515103397813542445714267354559433418715932446068616566560195892915896188635904215451354578688113554029540998773984714423190944085413662417566700696086969355971637875039188252177738345097349871095832678134189839596617608905568457793850460799861576360843442766783365559018426103463312120698820683524735122769875517614046970471186295794681267073824490435536619298314734490168671663844606478729115408653528051512313623039554580489564069369409829690904750651917588169930785258407854610448911420380241673037001225613187853464567815027745344445607159701267602394122548128213764414681208479325755962434108653584802783074260251363625771679545453337630028627234411050457604037955968486550711162109454531553279041062027642157357399187562794357051733765086317375615512334521442283534576442875319670811915812148702903511647496148810896837407763803464050803838120202854638791429371911983632117790389833288008679112249229835529669348425035584960501000196787646353759390325697082892628830972626745222907795895770141187867004075142634408306147361129334176026241474134349287776779167648046038770711215722335743862576266624928206407845020092587490734834390520351670600027978772422335253187577164362580415897758533126244193914182538585825131032444950112321168587870197093274497937242289312128747737233333688719357775919755806183073713682682639041936737968289482967788321666230502986439554423198054872583280247847916388917127646461904058594914729954707758474638386394521986903204170390021159106837927920715299008665192418434513882837588504420791771780454540615988607110626342882249836215067112894416397947513758539167581448912528690169159501258208999994418942920660830688053580323375518627287659278103426646364629017843311487019208010271937814609711607172624981996345044862726672083891914631219650528345694377278055491849012753893138267215547333929566528714029113711932315352282207975782659157901769226241695441044554480516165289935735067003322082103187711582824931081046989539309414845465997579090044380694536809868199595745104167525789321063619526820494171093501140788881919672708958985116586575167636482462364238667047527075135460732887369630220843830639001381605514982060442300666097271802856604751791557105936221894149264050532104744579456794756767502081958047859364132600059009544646720367512242652560182645076825753706214446108667810725328765857687421534519907612546815723482543685645055403189877386126667873006072928554422581933339202992943884026619984065650665074620937304498979173275202924087557639199852213279167974542779217626233290715184020066366268659682320044813323433675354907706812103127822886210518781537163646330511132654322970709105550719944076667386187300651318741984452934975372556924382322161264034134584823298185120234004138396061682485658843625559799170084428453501577250001515104530555585848429644996484657487756802450270155575511160140748726678915146044984974261606306953759267226401126238817249135059062962129668867587084459960411523284280366622195804128980119374339752028695491679677729415854350120793840843598137769844969203074228103787877106680276449189858171496692471760674049411165293804915244863100227347148887991841535142914910386003546343829951954405584854654329805758158698453297436939293313299856461475522051549579468388102265145660341721294303337754445717848460877836760517411616899921454132416068339060166330021532010639405231956628354110391429913388008817306590339656102387226152280997835684084407197931586282414166548815080009716445806582513756236843125703330879734879040439789976899803363309311663918433678437026874054729524187484331864372295832729845151445211653250454150290604655542665113187126732003538342378332343704697101534136831923265717823609660857783629090545549686981328890960391235759997560004194161136829247463281727207983738844003546923469435564861413573292349809875437159528405302783115567085004728780563790302526709641013168656451086015568371555738462012254161999705621906428950802538331000288761632757299273957244666763178647314058298270420828026649390964330695050012815760632976774575584145698612361041808156018443405335521697929589790393352937017454224609673694099394773049676301409832200701296357706569959779683864017721201300938974398589479847532701896436541656893846205816431667431195114225982251366881252578938366450171753500476785149655901454543029549149053450703870096417723760818750427368656938685002991560229428574211233148617998429613270659399080026377279984433801994056962549247152964449926389680371632573442586043754841285132096712387114340819478156732189713237712858234275586001012440718467067959087572945823181082820569158519517585884638774160280952586018104034921243993373603093122114834971409232152744829193636130068782877129770013822071629137909027866583966416554857770021715807002250655546657130608385487555682242052200254888445777611555031573822382779723149949018065012750123622034597295977122259822253069789709084618278390442557624235420255784172235476176541200703123344491202899067352874584233498200344912159169922494262393487403542224582293196386746160214091474513638499538157453710817362881553844182909230789239742290993825187449214728454100732265903840839655908293948125566203674654060613153161507676622859948193957430396460929571571091581174997312140276497894618316375336765053041736955273298385488150584857420683192820249427421897934870818274548274718868593461249561786681637825051729531127149804608640917367668501504677560387490896292896581728653483692174914648336443888459352607964206036141702741394458705866660654985765258577498690881175313340130910883653392698606076090831943862976205572785587621990357500973184553351295721976998491929925235720662441973198688730613828805361933376607188792588368326522831034753742967671276071870626746772857777818950334360289039510929860012277254439728081705832248349094499867854969315555667371713305445709168527410159168450154323310871019585260139624330195439085445194166061391846333406301110225539664009016689928462410346144068451353988335165341443538668703369020814109741990922421286766914918046137205095767727027263445409023429218989175347072291648909503009940634518804210573752502944504407009778383280090053740662278023381809444624477342444499733747357647568570535868992393762361624840424011521571384102825821741187489197866004574073134939621435380414647893204197382319053065244859536483803773642664558220525591141683352753768767325984408551509159932308697407134315354564538316088980249483717176520637488232216446665042272322937822178864880861303239753502573772516536625569116266517990396572716270022244369559048704759142885366255874944818160902049742368459531481705078631604295340377409919653291976469581802444950029395949667994456103096586793478532492465779952588134717170882188413844530194615478681638270841188029145439501907004127681797737479663490589797728800232448090572897398743805804111368285604892943708109524653974483257914211742900716125515710871268344173715252535701435558835849017298771165277423287086968777393274477987663546267026267968691627197830377919985871265256352687325679994232941881017074580767225829656888827312117405656871634305774491023889394018235407561398305947681785954753204044367867953542647703901115174248320644638039505612205381003430508476084246160284822981761206006777264625850689914089002294371266133145848800278294032511052378615158717979879917900376318125029592876282255278948182910369443920303602105934553002026821192912811996546734752444357742414745414770343710068785139464212208038730993155660797610218663345695735764781516430566483829741989409742426850197395046750369829614059816055510259264748926967609904640265894750981974279804914716546916490742732330288851470789954410042597075400981209983506669290268652931835547118686006338834498295360377717246795706042734090626155416361473309819840842476308143638978789560648755629911888329731883807924102439642422697181140016210385969565165543749346579839751150045833771578810512686602978323107423204430542360270457527986517543217337856877752240060323748149136806557179868280071129968387043496547332269023779353074362018252669665313576716279534002045229258923097576676993690527438214261154779009725349872808532389727286237604177368015776546594323803007358936626897832527227002141231074561093217729725277342235964486620619974804851191324916753356966765818257431126796724933339532609920905062758590844253540728748671008941433919025732563507844969844296885772604585361728846323478667195529909453918350076570072707983531649822794278262682264199539592969681268454850907607246209905943272560076174058991200829470424508353994299264299398239350460480796530886710567608984713923705534095586241842434786193624204963944054991036561634981654753052591080688549531760394623289075594319499259014130869127702436216647268410441041546050300138036457223097566976236723505010750579960466941033681058286602129353603503057581084036259851128176402589507934697591392036142217158270182562506715675506812926135051602466481761702832997662340614021304871913946946210573276156604929621961099735305462248244236631998362386974832280565715151820198174107207370978497297588923637982924626396060981375644745789337341416044356357651335482529842865715013289410184165354176938317913117836720107333036791645382109858311006489268008254939377210406648190209779004472464051068023501077115934647432065760761821833564186560698403647266041031664806488821650852185448158506754250930758676157955837527142034653205446482282072757996606312965705484367381507375613661231191745308927394113452852256318014736292392426128511339906649045744263770390635268444740009093377109469839935267545127634555518004070023698802720631829788096958426546911084458589177439644968164892797272599810426051505395389203828315937037905796669141063035418272772365108688609111187996421401253156064171454113340179290982559223659694275173681079156579684437219693099990188208300113742807064672951366928196514283616628384433346710632720048553276310381251751940507402676695979716727900399410922991162334307139840449533250382986617164390400483069458690737914594468013134122154584588649727369750617885116258713621086220516215460599263521595156183020625924242428474319943207708857833424261380948750806279729456966261795868344753603578994353618912044913116234615145348608766022988796427428633818556270832833724048727363009535538846499552144080105037627937293596827105837716183718257474183408317519723370809485637138140937331371895131563120442594351211361890768404171903507604944360011459791062273368231025828105451266004581548970275930019698590004981836159531469091856789852350764225746420840932306344737184655136722489990478459181703625879037531727698111522996730565539424627275312601933480550466407689824955655284045811819237051731553450473020616029268265818211426315453897300792622307811565954270256178216031872591722552529904295174058309325620575946162765202973712196073674389340942231750904718921530726203666517860837869965049212430625394292737253918286270158050315293682138086672096504063470515316158835847800466159688987056793723302693488374154226609699563686485811980113320750543515579314439770434850051472750369729606437959830280129475230124177904431120979768552228619649711618248038123430696724802402348404682549794078945106181147088521018025676627415935309161932795654924604867232532822752903926844282792252486145352914925892745762094518343164560524985095114287698463406239452944265345863769729992865976876568640149577270360230934168897918646283781414103474691480020516608258262141853366440468278152598521382298786577337693614767740553129779705759965350573792029414908766339323386776623199929492209285961220442174219242462586531268698477443513824246317264883483525395614798354192128381059290957082337605350777979428061891602271791616833964905810924151295310097234335709334546194406633105360555629095548982583776490701350564206508890555792320835133350286573280910339667365713444531286296870017525284381368559476754963395694410760955263401566260308965878726970278645739187184330846521920584530540034794437255825237032406485129738167523465981897689400623759263373922952474228843668010402766300195629094514528695486534742205124821508630873622871238339561451932371243198287459306430847758648578439964689114436140079027730041519758312339133728312241304726238185344292359995492156657790948230731099696644631506637793252445872786054061753562608540466836265959786650121347252136105337303007285956273407761274441423614154056095836201266650214048437372440097320237024670617881532024641495545251330148379232525791940847054977829942817297406202810744467767769876649929759070859135203682049176306352835454267132483074464528294266987232927823764845925705750072365647501379914736592773719622405545280987727121640979023171856395690513674038294685573111033108584697689882493096655845540095380718255424296683689811686682820954848045953570163095333355424614311285234087243282035772825551647142786787202628486442023521634890913392023529139179917210610643518480808778087435681129075606581825877589640114448572470448587333257841554489264121366581027652147492401124278107742213261020868889563551482314859748372388492289121404507387288104944660882864815065863748306302351637835485980377244591558617343285667028625348451496300717388034836750057141524759118465120031667019527898318833978316159177971808321136430152629869780427733480206891572964069858178127089538479453871543256823076506187534757320469221395091685702008515187162467230236115341875036265120537305526158571512571378855535476650923035240929805981879714607096802336194421973850442361199833781090161640008808756445441680337279228914846555053210934657440045517194381072635458304056451637022941945468464194377857371089879814428907644228721127404775248590062210370951268725940860741240552534345391573713436507964322059219369526022924951730940465829354390617157291932624519236698291035119359219792991142614618566097846487595555479776506655774239656506792596569509321402111825105671039116669987803247706264946764858703326081061778828012908124445725891652098566578842492998523081788663955885040958991283630269075546932531595346076793827094461330866175558914798739926793406206264962279825071563287533087301713872686881231669482379735467458161423580689372048611482215192930290522983671848862789785414915553835498035136448386242296125776106048274731348918070159400732387814628152512925356538141035763511194159726840917124795528400757385795479952941973835135453106718334139459901602218071676749801573415142659089062658105115601152095859110916392603354107210335780306820060109345569800858629552583550207550462436661251986390553137351314901398038717900157518038381538245661490416993872221700700794757161471106844509511863912311059220268002882180267205525710581696292779232668098648406330718319511606508222774486440421027817475632032525918096163741797121548387182763652501499326054786097907991554989124684754647227735929958990393052467548298684296215997248369394872386443666210875842347940649013689327079689977913264923527538301139985143178132222479652726037884158622339605017709066092039380263004518339563004935005329978188814184761617366365569642127324623837090372544234681789929397861547677699824611842712580102214795260344355029755810664084948028290067727455597636465330829378093012784969204571492591491406451612164251369884438070289558436024898356452330132497500965101725122881745471223407957116419954636662590874368745031387782993521970114386287391262308060591493297959341078639144769774700888994841453625477040380015691306320106017774430911368901104241328691834024046702837976002613001126357833750576926039004395522682199872605273853304544722740149940374960505656385613979848575089904260712060639442335742821536403333824172763167991958910942258159803211134731997482563722202099478406176858256148992444342010488562800699198931489788836869477664834905990059433796281212382059341522645292162243088108456154434246236812144258254853459402538872386729555823813435740010087392918409374005684340837313568647647328888860791806658485019112554477155193097974813246445390287916452885137523820233225830225648449665805529547825245209808397339182183479474165004737761293897973170203222025149930033452124522298432264314370045053451694396334955167946426410599649010141019832839697357571997387271594458689957474904034849030770868171876946967360195631291216422117565830782398701917251613966634844105910488766726995972474161497792193730285199399404863693043754441108123669274570044604427341754156780302430186009029614994567755452744612513239077803056662823334579766498785549477078172735792604145652525911313128227476613827197477694764698506153119874474265386176987371664509669679959415313460730370468752607576937888005883843397598383805918861320340948464971185832622770852932939633766544202961701017482410414799847984116947105235882031345853049444363123636634071112672275726381321592739249660142637478178381263084680251855366936815218823818745608098346611481770942573894887143484717991721098661806365337536543631888436601039803314048583251623946968533633755020868066739890119761957826890809830715371306940594810127294835640109848487622473377526810497597070924698868507321597702948735864943675826790522194471202193041618076445140313907047136689549476656781751143925102162042479221614585621627198204783753356727591213542350710076937963846842693109354597097498764813206196959287602013330599038783632802813193201156055553878911541184547978838484087669366428339565422859869002016131919685158400532927423971770829324696949044862094079782708914801347746777688704536320004003120183368193613147415325612022273600827287100853198302243640507588706932698133807354801461758412554445634651238641806141721842961836842552906831454564484483504317031273144065490883537617053525458092767722959011065119942971261970981732200926691443017463701828971964506846770266805522181446793042509565500970455915897779009552804025286542498612115969610110911966888546642316278386423555307387890360240225574053839038007596555841544792610255970258451239391162514526107129453368223020127311130298121733761300123898946932987993662826219684538128264739826667845901276901820277450306400034593512206485363778808120301133540979621477468828310841139156780125736936199061697019013731359051307449905119433660590620554944980186161655268783976814135574856071162006413317905367550941083543326635720331102512664206663082073762375595004905596109381491761343688827998230989964956906745248018910007180373596482808079458225187702546292551460139381719618181261140166325522551459837075559590301054925180547189696617057481776044891491892788862853981736665077652746059829145321456358702656637848977049162535845679904765380718682448830982996473056830666213349026175820174476676406798422522518577415763259255645764646853142445068398707747722248451249565803019671448425319139193208313669623984801573359389737318700348665403870110192078146908054440022583569128184379089114487959568365079029006655038885056847818235519398461028910667237858637960119900244346172622323407858966110969584007191398411629765858575767726133769755742069390025860758658270593601460584616352623090412227732409656108662379344072820126852259021837166690203143309498954080204914813252115072943012097411717643346641260935012856367722264371409286089252495768973336198825043092307545573547109688118724929460934907613470881418944123980632709895815232522519745376709833921263861335059813249977413888638729663137842860633229704533083268071266140985312940046561949132749342188272886115218649642904023042513780895096424215057897321625993707898179125896451514967822743137459318320080014121813012922721385672508400752352473444467914712036324153383916010502337199096994373688244333878833439368536970813473154991770881263205971403703681276203565659492164939779525548318448717979274097183065321789415561043431254669229571632703031940565066195310623464072733381179986369487489370035872075502434909619682993925830294098766830530681934328368273429238344070436109266451582943596759591650457860814744558537083415690997297065634768636088295582686345175108087395020152795375083042517008462682204370046100628358365478086350082497284823401884286355676900994960658598561445450591353955408101550104982124365512332168736456509032494668824370948069621383986686815052824469519681147707587140730460477714599820862026018709047363796507688632652320973420313374845605427589625941338825041505660807383459277009237245698668625795631928478485090814419103023710075624993344915293634671730939447455845542308099675909140938559563157799669118795886518172843404224021693222849389328068040182543833477489138679454586867804596559942941700441450921120225187877136852035931264606319207531746412307750862408140450054290447091449862798450919688045689872645369472946942165489992980269237719019347447486979684538089295722213056195300718187996589871761592504036299706758017586623305758584736520473448165046882198754224638863655798953020596055442404354901722619064907184172429404623253762043636538718340649133785450276341389777474195087919078688939133471068321142813949561815484617476586000440438740530452573568001030266408443792553133698996610946674885930290265620982708150174334465969035733824498950249970106711640460311775706982412353947861699105935992877932112825228198100706865250998962948898913118680476414154745813172937641614661052909267439568129999205381475183798357995610839511547421453546378781895330655981819471936737033275863309925940531235114324319305144679769217965406946521742914796107457987960133350695172290348531581319479204149780809282635969675154931366524872852817475505652143683870236580058899620836962234353662140840902894882432288804295443928407133127031556836235576155488071915802246727389778996579345374411046345457428555978209116720301691678583125283273462949354813667176542490820616601356101177439022883983357454217833807043416792754331792818290594449621750785781237265119508901441882711590480527881000170278373277672600639145794806133588635448818633934601883373943470376208114210766322281517707035928430039127232435581627940777634974667208632848358443061882934651008192884747958008710291284273576585569653175016707367233355312059586604124810804911565877244622787319262344766568201693150119893944076483574326319775748134712072710462177170211462707293182173490960113346419156458561065662866152635862159260215435354217962591732998779340017939197512665929444227945754923369930279924898875156672107702452680749946092595360078813203639846698121508257911441752440207775352938896370388588478086065860131682672470838969531674224054182768526622984953391988486722475830434011329580558484525411495777610396289855407804846577949798858622896169020168223686513195452728633628721708876288115719872188433954375845303424497696626355102625184046912174220902322618444517931845957567937623007704100541091048142724952480770811733556989106925112453722652945941811373411505763935470064213295356211155576962849766828449778085149555085988746773036738186242712505131717113232700751635388117882358065653791739876537508466193482834628374680024358314071365431324651185123412348020680389625525541519382716363238892224296390722954714325993933466838863159608677198924536971827001986390805484586829383426119074038802986001821888548952752857612261850557679828650260657441449842624430945454147668859995676097173061644761913451096804327196906879821393256230747367692714600535392191036407590264381438013554303040534802347360656341405825569786592586585950079521730084513866719035530427676184205122673936069208455777644593876828973830600487966024942856833095094494577278326720153474077477502411845005025575564904797584642541689399125101357311413851003015227994291575514178416288176681831281329474759048068625158934371268021280987013099828765722591874181449916008488257153869856161571621112359697431426092932082767080905348489113420755737416467610049430722818848160611739946078263372450409179725633735398915164085569106260213643938267367110751881934641005931600668852442358112498365607515799285707121150454265728587015527829865152947319771502517903291475330477583211303553005417472117791373016738594697330643566058677607488265049922516258405780543545657644791521131484950115495790828069890438563343087278974500863635990330800593385057690051913673183291102888553907589294515285400749860153017740571153242800500758050174250766000864745018855048509203938651418273692856666979795181902187307157547334089218642371091072209410110597521606344316503852687628837900710641728727863670708194560374137232181391390946268919676417654906295462091935231239598463103779361672979790622650183679567290089835187689271049040836349504473265428270393284097101704709984239637433547214930805491978603854950783929361034639568968327132137096117602768399285314134778468808611801135575849319175421038584848271006674968348925559522026070229404464378369942149220463585582337490172126360462309726179163613928328032341693306615732169974734862703331077748526574906903522486579728703825785649492546531459476391266207359011083232414801884879155359600760788092785057276859446011962732255341268319310571060109585912589709557175209707872424732058962960418367364335295889191514368608555618243093664836352742867371378096405919000212988158587155647341826771653786874306943059975948754013052322592186152459115508472616884390304766476837242257159019065358041583142588084923189156672591231560865850572928153427189116076977842374717336290069093621572977290693210121029282555310064998300483411011614226750549604253008632804576232378542246425912926047489693964076280416705226966959696601721167517381904608217213077474020808540500886410031191396028598667351416466732917657448494555854745204999162573112622656410751323804515026461418185670659417501148958824871977444483941445400018172263856666812204993444534664578819679837071133263001599996776775532472399744200897313769264842335037827695102568564330832507541349536436517874688202732384170004091161476274477190810147807022732868307753578589531865293119490483930166958163459340146191810872429364379077004043307204732200496024382279409880096918254015750123922464421738465401426234394689283250918002041144476366721335378977610244654534552804802858828892051162501663934360010180628307553282408667037894454074841123119794257160811880401922506440484254154975162254580097053523205703167259226701794918817886949038122811569532523734406069329743011434971832312497876946400649483867032606053729221765699890601973051737400349414218310446370702606249772962915711321017606181717853901981880024331154209736655133164175974334150592620608353312897867843507797625867739723058499508279832717511311452025349399553541337060393264115785282528456931104743566178584444523262100438066165401551920271811024176661078083281641682720117286277723261222032166442585847669479421768651178378371983345247648068368902728980572599463679717858631268187804192261548909417981793305378254146065590033127190930934670269116123226820422464790484278944600388838272691479955632930284847957572061649718016171024534815315753541670442653217201734914039609601158009437156555465606982879061487344895979556907357663235113701143428034242978172584098321536633045371775123750510924670201111429336275161583036555079568596029856470829105137838747735287222866296468710061415994395335404307744070985093441669227968442391384449450177976093671003360484890629100879528567235460843829144994542774593558491758033769243154969066517245398513570833144499967431558623849247386622613700172258427779639199780504909873017894440348598834180940557416028843097735859747832991356591584294958307500177935807529635671345167943912719587896207453761084873475666662778534559494651530293729998097381758107531234306748372841173425942830293862689143931021166334178013665693981937542644164509426297308292884021086665684119455001558471357675849134300507364729338936331305110158688872066373516018602406922534982210586746284000363443810650890571012048824151674683455096022042006599932376634779942420536010159242296708583285139431409249795867099578078128366008733501044777589623660237382923159044727647008387821847147379293550277950494650371966560782366598508085128634437194348833171918580258405349516216719134443907248404893576353306885160288997066013482771417737155490630517398270892609993023789013823990954551820131203697188186843482760969880134358007670618228191223874856307485964890373239254277225922016087473155912369913845497501375181350526037759750627505405891181219368915081717279678021896345640764110192964313367797359474814087126626952781741878769399601283031287810784212265128229994290224502601868893756092054614632436582395518225347184640418123502982337000276422955125844231852799872188614572671099323925396446685905604845990624595629691473687737886162023422886364212264920007951113086431833294901533425922491534719350514963306642191587642787221659469117390756802325553362611235070670846028112352331326827857355149450424738967411197856193843030563894581352540797783591586678334935986616854417027509980930632914698087935039665331480775935341949824390122116003683210405862499748161790686415183231976929865794575640480410195398747078330088744384038061234763745502573724716818951566136869790488639861818188303038458739142044259740145199791933170385329049028601452989482079117295345181828408361849728627268996206826338188602379916651517946533168463857133067058873309315456617001457744222564540236443976132718968685243101342016758446595742818360877721936300131874554539177837581088087090929294637507575770640076807250783330643168920356404301459612024709152061420422749995232768053287191918791985441818211937429223146083749679673071937945563941236239628598738491313519835814814087546892882512156250145897677524854263852501789936404502573674628941230441752514679015469192074368731640242596924540265605775930936408532552268071509419580886706753882950179730423687647010163264787776222261538767569665279951709436732735803887272470539667490894730612965341240917976519545570400344667148843949288274671334192847950435462718250088647617758452112719123483496511895349067889244284707631014843211994943187689989018535932238163809642701936403292383927243005753413174713258541098267098652924001276528443205701650404734088598667740349031144472616250661983657280311381170858745648413420031020259900826110564081483394977746672526987524400595362473929809870237600391154366347824311781004162127879553866235524327862024028959828694336470578219876719843666042692316644867542196735865507682941459796067485088629459259444323929239912237378742238450889749641857674801422336175666445914534421702334524377537497589753363730939431816816768214498105678821023810667231772379032298136416272987029327462143444671050688718650627507215245228275381048447291398353545012437504354554519873798097898812168023194150070102717139748416647757017742062310736708203106274151448822197699750894693399533684399125478382887816868577997017373095205756022891591491222646496201327243041742636977104628662933706174409297907975221007942909512283295603817180425414317778863236440927862744373627135708325965661101206617551624975057124844360285842122233727774904132089246117109501804760309343801164382761354801852045717411256877813512408288964289272716675078635138204814816452811479788411839847363598105875989951027312350077185570091489189843376562848516405837938194773183090271799516641645246081832919609544024616832819630772235293455548531643743103792039297925441893909456762689512439240241042835920688941798896027324455786873898175440687158307380934767706262075394808553445644796598458341168339415575371868694346163746498495340965762745020319523647061927066852494421147565389033127763255755530896002256787675397978084670465108524502189492255826766018881892026918876556384741567807819576442864657381007222276605668917857145377762502725520098868940083444081612790244619252634092664129066692145412860682446990868911646701319311917860309422057673023795012134156166267828134953284089070565617701969966296417428661166385966033858115453172018362558975465482999102943477165579464282916007720050784505516529727940847395635717166545996622058281160781775301194044075818718896655059037847212085162555943315068446012501386067138894004179482121877352057658756438546949769425628374356044173580856423219041971363297732306650148262077421634093488135226039713348752034983817208569629242041930988335180112823371540513574866673865055346000244108272705948789084903989625704114390642975421890323817554181810983060245593478756447130064750718424805936747669934821424987076315378042959886794887998136521649494183218773654551150101004192571774295300290457798383554993146010346673740554531168408835792589283205339085957569716731932007185204202365249384949241689097630659601297235880208100913413043436850634268275146520579320802937964603114928938770096262413654880295943411139433374607619120090929110522327414747585083443030941945175447543783531383030187949020608043331524256052971317386240999942813639355661723368748410075058365685170501583074201061748882005221241295905782684900674835976988680890909883011297761923198742000719566975890526284990829110151881313969686413724301378530204197465942718812637829823844326222278937232678308856392782513137148966049892616272891248275888477967923194570099365319582329265367364603181095120688061138055229176834451238811372564545487533687925917906501893138901129427071345570096009576502797804775552010424130158888693117299563897002293391436197991884631038746338952641793213667139745790137367789600689844444763177448209057277728436805850292755033942965814209399103156603736744715167276849608773563490090022620739965331436147985868770209406910601527935047462882884939921086291922296160138473983699344922892171512224923253942974359925563613690221870858662156192562776275614778419549681215167779080628473298835511893307028074198533991921810855885387081549577299906260878443391539676619734131056505751392916271011749325301407405572158967068723625627677885403751645832111174638801121276431575286850446791366454952770086721300498243658539888437554417680256390101877740392677929598503735901493935913992459368214145664724699433744769054541659135392079937586596585462453603915506997144498085254727669375462000038096976489047765054722218637435180473115649199797556326485694278417541037489140648750349545440924003661014779092490606969017871062004903204364203140933084349494176626699262842268822087251986742769602941432995724108360376035489018708949697645011522204581096670962250570956759809585623882330679250074250183520067248032226017933245731684402271442555676266125234436194237807753236073798795629153288289387969273184139847075616086789045009326835771518062613366973472333437662872249334939460937802912692370810502432923969159453894971550828751522336122516270903793783741275721755589577196355696037110940607373941826510739970404219299712005150085659408888404190132514428036097370996834078777663272875098783991707446524026553182458427980770924184974023408810336088967952051449923409650464721014062161067905875190120487893990097421205740524884981102021239110394469590028918497608702179831917179259745992267124240564385136110825429419360137640174993170133610659759447932135675554766931895244624857773132098695108297455669744731793565382021929748543555385939550824797061692131884920657492098463396529861395492569240866599676724437897004032218760754855446083101073210173951915013906179995448752332461298102133887935751591983678138840523878777393331093415547229817505952485684864272901230427157363387504851508978512715949524290462408336895876583806860348461517594932467808442292593077401286144228147542151166863841817138691444107238777769825920667647995522903140510630626418996481185543478920370541938282427411933061869420729545327338954954662703004838777058012697187759456215327676938800813207119527924254023536506421704625989355016400926442085942651205961531715935186891907314529222463789010974293676267825881276523394304298760813498457316926375133924719485481142779642333503299526798628890408174719395509664252629350766427540926222453748388931064832000795830380763815620701293213413202527019248474714736653563967049404192525960515009616608305140095035615497814657761739129406883726229561832488757358371581402521502673041330258882952341506856419478253130879603568125075624544165804123143339868522722073387246595449727918637357677736914844741183401095894454833321129901965315459419174968248782480337044324100930393833819983160770818350398257401204527238567772211076734858541977786428950506148327877390868363024799650411766988267570894943971635851934702363239437679587258419988664641557559141283688714569544646169479493129162290637292414875531371759248785619549996022155643286916407839012992785625913054614294647792147125222603758334740620845532265391958242747142520575946354749956442691285401384922977426967361962111758191164364024046758751404475829544448292759148954261626896800972696881075860344769778691688531943140004244970580851381498275572011683660774104462984834598361634648878723330335495436631630093507453866052558293477959652089372376723424185025114595915902030429047795687581467896003703564447959258298880728028693207745066209194881930147962938996912352572072732995647016795084052853895226585495412075978231803524874034687177833684523960991179238904024423075374117461350021293919534716461314032386666343593022837350513408868306337691936815549735217601933426354670289170028236341955673365626849050389885728573026916358010588398419910202613025727768426396020176458236189811511645058372078189520501074030389459132864276600832417056175050475765944328006585966773260570167609745098860574808628647295118137442219594468744565835679250388558201382506903022484593718694608346181615521177742269756849640641224263791985896114675570520762554305994481581652709774038938822892792884639419705546292467075886810674639396912261005193229889202175662312464239743159795855680439146903790054569866796486692158939838890060769225555569695172363691738269501571990278426912629316156882743842284507622448008000500956145076603406525667249301554840488684293875478509984948383018545967714953346709328119009678140378531263880706531014783677132597328376047317870684832457457210041297906951641013377135073212475870385596631401035235770520924358794110588145568511424034648672468067489495284263792308279647096091871037893896943790151684592341481748864279383420351820504230956550081160972942218615677724864473318091933604727965705607488039843762409061919930193289583364675190718205929106242131115724671125205001177762904070534761624941709884243470836455050064511724619179845677400967025797891651901474287128965290500104589989873088260836666602044826813956696815872468807811827237992542192341672265270107746204994967660618178542747295650247753587338269408976364776993155636546671166124438030387655660543261297507741203568412265503198964399653063941583853082468042762990171228709050379312633512358565887509909782764043963712312226793370019261835672826191612163541307465833712732246950104163092637260089312451628235483856580486287955757620885634626108425032080345877668836013332425519317104120325257293333470458005374408478031271137526265841504923617136619807175037177991324420160800398206885638065999145780481781359512769372513005256128817187494163481146805550013545630590071529122066994570239779801794315892017991350143080779330389266490557010465089330112577806877122162421699756423857874111661869796651482515808043532474516653377335681623569863601339742143458137692560697773752381385986588353341815836853470465107126996901027541025732889454223586132020361647464297591416744208960017756035491423025612169068298255757156158950401237223801388208550936076835642754116439505693241751354340166050044632263643916178714339791730650240018561997426124201756050224368267745375515167724941375848356924607610912118919604876700321094844127814222817019794142347220186196990511546195245930998526276264780852855377833565882896189875983617176925576283050430176588211304939619161266948601181311609935934513822513940312591864024649537805213859368555079730976498693481393998388276766320725887163819150078167839607783389092568233285531181549716328512814743965773851235591158170933730452230191117033616249980936982492936848549342014203709373493025139575224675936905332780626488632991981986033512013728590627672562514162063534332783349687193929869848281457080514616173876608338144640605741250456725366898944278971543076105358760107462785135643356222011850429057749060362303531236973682289853748725233986925416754346605430652934326645094448730569635984422005672749021541548535191716835875097766892035939604672624646297446034896241347794571164789704587236904101814460526107758113769496267228850582702418541225128881979437534813386097219742686149487416517839522291765711189935401398605045448456950768347273115900553650289507855773719476855841472914159192230801393304632362838744520870696576030354994499126805980194542182064702288479643828586555861337835681768297844762923183089278576022755234264867941647538792889901944988083320282792221701432468541788640234182136656518011317218679487727899361275349145788737267447884504054129733144986177747898528948247452730534875020788873900642939993866042026070172716503469453739697916937559746894239134460624295297709273389713513217540552591084313938624532790546395587213114179427260128923045927346952568259907875535681845351679728322322906930496475830321578706384260255429509720443717519021922647039949923708763468426664028084278981175106872410109696140178797887881722629203823170563088110222346165253154477405963956498787330281987936342092805867958186844219708365730885575333387070735823159314251728818498543314404132272314812222405341537839313749252205813997133272275563733874655158483535089548596646658399600244384974286451276460646066651810976340918858511873929421895895780519635287211389496116201128741825490490988497419161438995853735182350193892742624607057047143842907182348524148773624795397467863733476913155675198729919711190013911676884519239214127563761939580815594827458245584132110885310351598623412015031930883715338551675703672148461500408538025263867166550613365444055134395397878278845006072112046241158442646577053732323105993021186213439446304354648984671731081314889371499975042638343463235753367949540101416595590272093082546140436056047476811129433885464873445198783563342115799517477202207475822939090096118212798961024904454824379388079146243013866383992801530112521706044245894589098715556989185499873483528702117071266291304047416154911730068873907650295821531296761271217416274453102326382524048226167309852960286189108064061372145876489216627048405826252621934469325092464614649062674180808479781005496981831519123659106500405161400394391269156272713750141916019181349520262058755984657193384925363816676604459732498143888867307889710078801299860493799108126447027208093157743580635536406300781180236988505777165747435026821798100187709213774855543133363506262687684026949565991938235579170840237203742879700434498773720291439548236273816260929647533720702448769681444028734861455603285804300296163282508719016338595169593225233999934346955820842466749107340189144146233780437599920926772364711237459227978007213980501543785787279009969976551997668822670607183271677653362693141396054141781212772694234435682830197190585101683617549901870729722174218487266243011461587902574931251218265650610073582549722025656824518763497152183890566006340831417228776762072575004793685029286617962125978064425240060960464256490279149074032025980683315853739268249126723359784040088727608180871737725128852257353624299091633622247776054026128162557588959917925178504877615219012964395124642906469317269571689341372819929976076622612815945695870735210419829587280562722635267398195075569656963021302534491352870789894591219903476926457538014102933849531156330701724861565650185694206563360287435243752600400926045452710198098259103327215436225600670801630085478230760815846643341298898556769496228696037953944798768879412046180235024068493977292305675383984925198993831356093545231577316133546680885044313277885022852777770227201569660483295798382666038851787500776110349952097501386336170646319615590834409394691992004345267442781052587439907271959996529029123692481860925310223700732329650238395853203088568246628647154573610902876928563938275418706014979561183086137346465361896158620617369563576094991995516666673685240851157240005987943083600462725434699555195153972033095252244796754839090171664818094571818621390080442896138728858716625759898801467717293788316370946231407463133736431819085939213891750255632424266005739120379400085946876472955660763011846599808590020611158999576881422666203458899386414962995964910288176901980434042834543309762143863302018015033710581126288407205085598190291236582210109273139728178259963480448710364242409708245466164172770840191239619336330360226518200316740772362293749698130487915781204733835797057185945489949739414596899674060191038135753076564631217141170892965547864511925232743575490054401650273521702600925250747957863731270358451206438392844133180037154710185076086239368247752774185493994075844376973412764271972989521447212229689366274410963593892962843490715803333568990696445152003892029985478884010060187880664172678998291377293410363108174036771798515773441625593168743002974631142093472597317735656433563480730251758972906534734041456431608155567716850386360287246864815369898689789179360111842227124870536948875399375274847041864645717985393638351210606271034441700159275792598903981829082253284287276886960695790566531152759562640536537785238681950334372622894180890802681571757066438379871110718294993498927983851159833448487753074186493230741662269273716069129053960747302766349409586782128417233561241711834274437109452072920625721266542181390601578295684287907615830284844702792247539864273041197398840509094500552697890500439466591645857258701625365011447710601824850614884597528681839544819514587497022549099139312308463891482024893857654839280219285363242624043962898011790945613632436455487831858571397724712902273437961832208620746540550019677259276545328824541001895595485343778037783848876120399279817787406411053645139470732035880221477113823717007158030608561509861717726459296759727635181523558633051344623254995454776162914895538106630695325461139281319852382657029105569717474471118696949369319711054663714259417581829286206444739530515856651741578569978147874845425469581572416785696606825466819305459435882419523454903979098472409864536459055047656204495232939344038793937070615772798350056591871380337467469266461131392731341061767780611691089749132565254125163574112330694207184125348778264923951286864919508031990388462446378926515612947986301831870002389348140703968563757494838011449739929035500559665078468186305413081065055337063359544340125839818179070643746490503958769959302059201564287078875863249803876756981525565037050547304042292922821995311047837745753873485712383843281931776760794075877049637611775709056776656684451100029799467454813374351873846106148985204649865330400934710502739420260330792174596092767578284491754752013110392310735867267764390754904401959777489384502957715051940410292688646675832884001885017289928537564221122625591519866026439861531433113831252921210128798207929305486356738298789570453072452031936233513648980762555047355499524299009599764318231203079940152770472942544202026582612187438126922060271824516672270300618542757078084934766410362872359954223320000558983508162550969864827781438185120155271603676355402190155279817986646464883173302543235675162169748968879944117259429819945743536641013789168270851962123327621155770995891195657506666430759919058111138942968523759877985803072248595115432917039146189177419971262355954790544038301102145506493240502291561300518169705875738316868826631996745437783423724798470580735245966844232100512948280959625597763816344251003123104775008653670747801367211886631822695989191261644314776702014429379451288197341107476983358036770501607522716547325207403797814485158363199181966652275120761571928808334651292158616877219414067062448792362192396136339997385764247673017797623138431441956339616813397220881386870054287244318636081552926708592420038286879079708387233967092200347974507267163536470820760464834642632167300177667815965733762353873481256866821710947215108153886241909012343988790716894553715153389229993007354809678209123939139573185487352821536704756016219910697580541679382814957804969579929224479298756076492042561470583678745335601554959361980642920900043723702230409915015885652591696432780193277759872061948402917946624009673877948654589751303767252590984928911355760881946512399473283144115816862716236593494172428846113140433188189755175954365117166116419642338835366501018899204197737519491051088900631529003312412983427650268710726987140945062233183309902878107127216682567742954562408022928375677857694727902272598134628739022753908041224194812713708306223764552044730000007687205943052555285383274936633681996270500980406545105296623479879369941333885560871835941657916922650533793373746026799207717141002759338225093893855933889419782901028682046434960398393678904063984943396315991872794124091909752235809721704261073074564116823416653848830872774920180979664724076263839804570892985146083710035043739999406531767578243604255557172600989250581668285442230192481440215628808216651277593088305019498556522229977753254426903395837410995092577968101577281645297155981492779464048561754168838401547137408789184069289857414213852431564717527913626322375712553229786646693133686285396619471837448770969887018156088566742637551317973974702565335511038676967319033912603835593659974501603938404406233305762273723777476833878261200602993235557878452153244746799783676178413554271455769495799679456704044889755769844483933126640170062222930995539909693601783324082922783933153184573213448627741186528357896338832841813442808873068184085426318866579685799504860849331291366463056421466706790934098867160007416801677351277819571182257901442743484272781412361056377731239166638863279202718975151499222591204910119981386735949664776405946960922452783490673697373547858300479809217007500004024709107423331454423841510816976479149760387670576142154039625974638695981913550021136142023111828239911934209877523375782665497293523610581818335249420698027298504747688732535605187423978547097028415278391015019953785612187006001404015468105706308868681560453105702030854436873733891005453325824574570107186406855223952825252897808564954902353066401473065303693418504487518008964813641686522028469230590417404491656968041133101734255417585740307369615354652335706333105989909554916985470889688659365993705524364914423465225703789705628133449515110196367573763054811731716528949489007688074183301893561079820468073633892406982188647672814548702784617251915717331320618316822981472467123577795513360598246038618997587067017152831454654087448841132374428936137013655248626586503055726102981734068486522354942468622814406550730452061315133273756789989220822913174989404333234130855537857793608614887030976692766178895407855636527965996265542952220921828876857019889180076436903424839035143340991219881755387072122605976434597409173051953833959431499423307312345730928159740660315266314217815891316455588671826985723406078405180319046138948731584957985146662663308902596844050772669092321306780605325722532225637705073126619889441012020204664417122069955731460889113075138153919766076441950833768232916351321636964525964729335696267389042325015234319277750483104156798173327163309689679751632618822508428692307922760802697921272456301931825327693709486249061456227807454158024714284666187425406666819506066983677673432667348865169460204088560835928931607101085268479928036496262369023413259210747375648724326926599125270211772787785231851090835656857784966131676233235251515204344686264701780709482653120580227515276825318355849269998892367065443806597072320489105277992838334245339885029265707898118740904479573550582087524052877916594388064754010588199596074347277131551741094218156775113887869736483218524000791662750277924190110033706587561385418185838936190428200018682523624590052466739821119589766718800153508956050035792574184805994428481048540565385540524024193070387358027917326706772384791506484535619296153174554022401353180195785241769862889899146892989233123899832362722098735116403487571205372512856889156522973509381196337666072237740453558819593688078120638593482870677793016562123700207066678089396548381551925014189676833922167352217994849375706269844278357400341685845863093446673935161811195593205431406843694458162502039414385182952496193942536453441312884615827335334190197020852606090791698016200472637005633968092249119128410269014590505658429002280158509280639489450321903454616916102698899660163475274241541751252333429243258178924032517737258467908372693603985502916570423107507462607976180954324696965368931207566448192299979080260759545888815832343163206680503243339733600193117307331832917899120823251130539382316488731045471724007839262428547939198689123771101627631076293778029965807436293788174892862307641958543011862176413472346284364666087397199020621271781180513146995185439115586701627178157560704742279389997927702575064191480489443065893207099449489988359472949365005605361109516144403774453730092225297756070655636289676609772162507781494693110197854485219094503171304498460043384059548413820033644461192410299703436511545614225713212898048390537069639244840626396268072635537212204953422101010792072749259052616359231484225466684714000886806706646869754703217821611024952668792497809840101863812641930867681222981111386186054405975668435099140643532351185242454556547297971118940148367595690065479378692316293665826939009091973913640017741735716048225119960612964779025966330459224777451333075784850970240636814895334326590158655166238300217021243057374450592540062138686074186274989819765824233077445255976405956678630526494719956969232395740499985139284659797829989591911602992760821289804979758565950905434983434026758145105205410950516650012703340699374878129911401071839297001567381383884090858593832917373481140991872856821106362985117393208584622557234255556303385547450681017015590686810044630710919734119615858558785493928178582687477767958322391598143605597865157525271952533900268979697951209046276413670668412537830307050517969474869867412295103265123620752214833246587120263309895441266359266119917043505125025335631122316574129900929055433595029927475438608838033727297824460850611053760293052695711255620748926182697466697487618317882104223079452329585952388216204616753562818257025377942386197102257554276382953116317019711662025044934949440495470733425187763691701575525153685624905534918657128453252466390900831086489440129622181768308868318676943899220173753066035935212292603887830609201244763331402551235759007619244432455812379415385699469100077144642830002973610544616749744418212460225693978348331502045085700553172757107553915208099310315010833739847829547331295391406929657068366789936534968608061162235232206248995624771819919872428029688935359406230913822239920675586538040094900549410991143341640007825040459355180381061535296012424034879262082310912250036291998801865174363002451718270653084068770214482309772107497999142136828980498912562113924042700131471827161603955795456851839563221910714475627719206733440498049611272540241754849028195310280530073699443399829089565124895793999626149216435888273462110947158942399928362325584877723326379721110923052237747269767747123305990480689035646696939159137361421041214406143181883277023117107600562580159959926026317891356136761213832145113418661085627650194613819069555551451801226143796761770926658023487268150970330582714308623207227894172857247095394086299752697761435886395098899686149380202611888990739441545430857031250649498442700422800889149668007159878716119464789323248020274750045326819710283397218461793764690207503265628817767799719338583110750367422775613715523165885502149784213669540837826020791899196230389833794301751887387794081524599049807903437233675039697200597943158005982830747081918451054589808294108402873097913552710404002747949926177548722133551215083205869922980174138071207898630715864521318509673874834661573534499951736810439213067484286545077838231876311562388893680495902801585288866509628059011384777036205639094282016220724874558021392196713546695168604447278022035763441685413483796851614661236061550070073729464167776329689692165498554806147691414204842002303143430685737970869895177516241171740691577864510485912239682127982526201821964575294189234244512542049553278479485340677469254196829630543234309548585197635021972118846516607999598450112214702735051127077733747327666055992776043275707596612870523257126871188470611914619233025014009442473478994332589511541317938810332200712880261132455619854606924677655858178416505204284146370323831863683737229375045080127785038271629760469299008996728539982587683077898989297914285304333208987185868393182979613101234839503914527712904193148458559330289949425598323954968237086727878237542708510879679904074560944014131636036886869672586031589300137419056023825415758458639715457541009557766647983402451094852659225602701204462188680564578552586476423531452065793627397317583714561188602846212538078282957977070691053638250722206414842532822935626146274756724590236281501067230821335171748072199228707022173319286902502176819148512366409311919427144636310883323971926989424145457441140403230554966236731422875763847623144227471613266992370543562155988879434643116677388328837107312302771269539244214409924509653616952563319013203383308480606142146986166137567191730423336664716745927282533734352169493970188713055164062901160080065650948613264609621194953969900414378344754190483422075057177996423779277943694317470197496722537954295735376123382911184851455728656676933303290873966776233970052111286843175840820033710760204263638235596393698179514119590667311666984225782584177020855271900062285646045918238928502473407770006236146211761190140676089693105933149979494098160992818228599853019773636484909007671017252216785507000977258018807973615564558971510319572832434143058224809763492008202505617215263291329532900495955810723088206872665956472153547280085152136263571604651940004317128005895737794127547670691746839201430825004309182447954083664070414224071967333583702913029932315167242296975927547378140755966291976679926103796660220665089756640432696771885623426667007699869430601931266690907173705121200480727508473621781263608350768843494378897621474548493275290910853011875092510152095463004250233586760915759055151113639674128595036734009998642816077275015709558384439705741550915239650089087878574897992938998418134158915466063047825159648465476682121047309489553046620837966685992442631550534326946337625276251640240476767088106454013766160256871645112976516894846461478051549098861006297999101771010318690592748461304647749994727811981546584132118022983740041882597938409634299932951389406237866384489216870428370292890765749104965489677572873643547080325124643496142278905064786216747744051283476745165087991399894017352977714735866028233085362387420106420553281249154326773198453741412718313310400131925455142569485176321257215487921434500870825376165435368445230492460671471028575427610563028197313070931535916127639456818554487893416308824440411595359206128278733955592824727644355698063590540445103471373874336676665101949899316338819310203758604073923302261337380342305539598824204551723758368052907722713309559188517485154832889310574847602209870374939176086051520595376586851421330910891223038744461295598320764938011688551270528293535695233990592235744710856837336744095242941976860103503514339167887055886505735018776969015738311724444798815802149238635478521036787627874884429038753029623852060399623910400159623487366356322307730139817231027612289792469730117628652342441911947313444553764124238382081126862895069483568243546518255323088372590353525667552616202838123641671684632552482563451153672550404064778928936744782435176040566520804101988656048704776587627986909635884533832484450857935554955058695780721197032865313491857324417710132008009162070989537359614844708596251449557688512848985818613175239241028528563867436293241148314961002742349758666810198912326844641795926521237884792395637519134337794079497126036080329562741953233160206280110698883895396937895897280296588435217077033163049506807996915937725246463096550799343141945267088420564872709121914925841522596899388583141190271481105541593127518879066288226314385247984836510840285726824217515105885613966453279600722592702312962910508052477932606550914798261206629559261479210728284325859137957901328442593787750984294681225864933631439289415062272807552584022375623370324493957531331034618826713814139585389911887015572814528259617357531577107221071186470454889300022483969413867673262055885174370676971386922049123892807694460639336598829087610416630450978138813662168857223301246103700464482984242287140377791608109852478574963742658578793079557888592990007317845784586448690411213627043074871129239897600333622114044959361239811362470556954070519701855246122544314944656431279438396232476514835873578153971127911947233842855199149305019869562459612901124910650304562998386247153525815429557955851784475063098828132351076947289811129594939100949843519851008586085112910591520806727591933772040054853678753258116692420916129717674147699193060602046447340679521019286465946559891976444715122190297903985059961350933348863942571936247821339191883813782621018821034081024319971447728058465307974108599607922735755326673904867233429403163114226466649598597114937954874925461959153650697867205781169089627896628706374143220497341958813934659760767127242203449956988727113577065867885459823344389134629205675669195446295766296971081522465331955975946830554637308469146059646954425145564986416259023461498340526347607834366447009667195643501519279026453445403733938522130571223678704031471805259559519480890869726423901286025564924383462040289848235585371784498095629534811762299721956903502550917788160453377025053984610881300640920805122098241365338914136335004328622809318272961161854104243359065804589113901302273438005838144091727332271052597694252281926258296742671054178316157627546011684422595622669252851726393735272207111045916590748564746021850371656813624976209940115738182200124045207085736209168266668274939314854373128547059217882416676393091523927807237235337993118398265834449417946019881882011110198458149001225287113474628545010712485734100127926095349304708866125892770749557314036057308549143400164867367282020602929344556304961959928751799401553529480536543793798991073859236542749270659752137555314616489231985910478770328419317857745662835921544950866280903749986616203522659328550715887702248853476124460574388213919494496946674253372786786626703514670738994367694246938070463313704336046424337049520185757881530602704074742766306686206906482881384909951058880934714295433977816199031904940764531374687959522652864425823463246788896011887261855811300155043118000530878019886755017685481203832372728106756562085615361551070032401205522624257434414432540752895541872124908431761490539470753016895508199287994676991645861633466111333023233968113727730435252727592504119803398867082176523370475245248224888354078682213912866847867962334944227396980176987909008285219977715697176612949459701666861743276526551800652704411781392183037515087207290374359041437905854090800422394688600158927469029842785291396966767322841247933127899914885049603206663505071767989848062162141008696200000482153837725984075985989898286915079407710370311638386786981537694339528002906215248948035044417518356395072585977661338736969191538737033265600715673571571093555608340626826739555740132999509374309752647329221904262987061261203858208246077863863671559463777833424376524695303577234310843560396103427527078800968000045122461064591771737514649698344717086377317497264607759114972726564105639786040129686662113064156757134000273495332600659857321176581913326272781821291427572247145956195193569019400968775820020366272004623226071973267123605934866497811282902725553853425886728858160500734586894071006681009504003019892460879964038505729273195605741177545312017139482594521041907626144933733865825544173403930667080440202277312007663239026980808286111787794148154339329797856748903624280084946957771446610467131088744430255733222149293508894240237656392015683897212020408381124085726714689876851446534141175237872410574616129851897039028060274582656409420248105018511051258052500702106302333377499521049260936646713058398149430122774256722298494319781574736273216991590639146162303694571270771378474486637163847862745956487015582230522790060524018187050625949940020408077515235294195570141906430047250803066169970704177790351574371769616731112486376991317674213688893675185700859250935270920726346746004751315769428211862787317028089075933999865293150627527285829676334430068197992635885222858422792189632982186155018918027469318640490211657818508981721784023101778788202415615245982133052861516882843500741860469880201144830321061164859627123719321262892412151878541911888286472583705832346188315985501540378171655479141136807451287335667867156337769879298712326346708422214040335597391827389848224971664696335745153200346067256157214860145432294676422175455294594666607116936674697236121945596781501199037663050907636385268285945007541536553932156947297889454919706638871062736532955059618585388721070521726049935221405384846284122787425412989013526689577834483186813357829445521967835410265633997903290387464878708040182527464541396117708844117595160314030587400009985334260948322580860766544317825350292957919937056559475810268863910450120961975984751210818604690199450067034382844203225580909991598385234695075587806707298071820265747868473993715785581174635080952846048684133097132652092130736607453543875025727563112506786922241245890506271049057566321060430399218728004629274194162395987170701523008196853658140758478340768328152857547973517778523288745211668033515101533877211515867922680839025872845022957438305764936099636979135022493313254191556094037414793135849066078559803514942374196516178097964990627080739929441731827906845756609874790445060425904897371553622368364099560103279903507378832568303991602932741401670111437714070462908174211379975049993692331139293715003257241838181373385177382029871603180403382045635049815843313304523002676698369351731881336575238927111305777831055730690548032172532699027550980696656510270234323967328436080972961084970719820199975500507039022400373758976130324259606433540999852161087329372976684314228835013499900755547611009309183419050593807453220328125346569195176497406086966520766955060127861460099075638434985968857309129549353698846255879373137517922415662180766521031470892459609995149101574957672950008119176636074677936311492059352320898246294366451163489121929732779302238377730090662109651271798768039343286418216933271189307571947254981124381494660855496312454422982759469989467807317732170869171959150786440509658608288771177301609538750323602317172710947403271777447702676957605604807503716970644370750895760760123728979792243955637645247033782733050696158757952226078341275646929065549643982236049049200409247950867706493417786562538383866188348463594791967998206333796174776360866580770486043973096429487726448320332183760292815934562442658371016851225507718015010245358975688516747549522541185853462639667134693847303641204022370550286955844106501213404315913058488498352912573376680402419187302928826387649131164340510541042334438365886098286366654455275130398839460389009085294461216033712684650553960677571154915128660104586470918439766864280489856948410746746673203507081984405380974927149031073877284148768104773983215189427121633074515644648874782549408795518720065943649392793972421082458037504946319030926985510133309539630768781146603971595972585101194982354249651834728940430285772175725818174618013525981393064621422196265165994416636504101275470953915131099941466144758954988974926008764795389954069576349637598925996126105939518704384412306666466155400415728602885669605732233994135054183577236945608740610074428615627611349876340084936358240883033373474770757943433488954063021881974969123766933605584888976654608097435470729272723940611308818575076390323348412147971390989578161198161215095339356558454432359921160596584670402425204568161916034161854427014236944327969611479277628091109877988538656381803864335486675891573557836743915666169377542135097335940903269867641363192663895012976053319807145511648719557481128819633286241087392531280950221233171741899013394167011725992530844665667173334657245688386585656309437640550330861416483773536864272914423608024602032422819122323261467248203624979601363801523871989013349726948441871490650218898437347103628328320242495625013510325591466330543429116057243364858975946393347218550037914889292925138928969890328942481784443659685257588896122195732228342057952873949199917474596471729438143846584153760023138624225067709402076951640765391555272468625005055945928625726273356440212980790908726117140113007367111941164745314196917966683034439718194150460174782860554823652354370749435785117330293035513094980746018125370862763358694828835127781070935584951526062728711364966785467639825781499683915778371365670389174438750598565330121319353171083956330887482974944727878377884284282460300761922361022581809982937731418816493103460039161542562119317644251242324359486929384450363434113557146540393006066339796846383423989455314054862681656502750008413061424689959753692826857387715306314349948765592129576459176276808467747834490963459110533919247056959576272978925323501029781171130795584287238237880524232777460856228826292653239759620887966281045376183534101926264208664136415308502387961566393552015554892170215614676129982778013748677393493601611118989378749291303964679553860311152674639757445641631550008368595081337879011285865131932984928383905016445305182237352339287113228683724007580744374733003060588686964014435852046972508257854645503512489072351545164595181922360415291167067670290091517691985684330033345968943585626321424637365160363807563673316578458223645249052671614494026887493380800381175691912477958484868589492716594574289658228225636836693864944998264983889158029419990579581794688109173805852150106012442441960959844652472310084255339669077376717639091644552620259210193544452816241419376506500659718018384937444347620966328484477317343420549513291879204091400406114502331542468388786147199802915439800407951139626124675530250741968871632210977016157250630947052020090805695836023399998770137869702819851454598126610823007525752971646466508830498960938565091165157803114817853978655730397875752309116183027377535967745397574532963495381612510397382619114816251164316319210925047668859310995739397339547358436325832250998373373162467034086619547366235868665014235057372555452334032710777797883860586807458663939487262531351104721292305685816983086391112878379358216727211722130105884980609763403166302790877529762409343202982674336806757944534741511131492511890715809179551970777941278614353505314477057864151693318489556341565156576041469191744904102600864817268593316960432376693768032439495677103491526582287178034655354459861907264441948891956461983339270411259981384027870827895165408687988788622844282665592315141834277450433479880437529565006174116122015943075501140325965173552671560019012236950446783082012937090995815582551440530909705191923827209524444887874044077489249674502126351075491501488624331192693274613703250447864826146444902253490248265781900650830762313324913340419884070586154501972648608790394921215125564158674634349260908368290300245907019625749024231445381325664748650881346311724559133081130884108121832169342588224774835636514778959101467910417770741795071276589972879091015200781289838289639545013058963289360692229128069921068779820246068289910957579262041640784756365727666924125449363643544017648665778563610149897557994043580167170249533997245467743662227621736681718802647236057210246218273490566042942916541327478212096999220524115781108158119526339210893310934527264353303054722662413569697569640008175851416999428884491879285113702195616834544210107857049615571107153784455472497278691855924157562727818219289785714526982856850567406717545718834225871764423931452591021026932183613356719158647810751068109591548788506974842170638036403478056171905567973157854535395099720296414750162892035014329690000855114720464418030108832437504429560247663613251075061266456714069640327732308657766024854211904313261011468618889195501704395244982997770906978361014135457799183530928098681121139225710349898054553706364196172615241002440958031001787186568826672894108660915867026851331544985770193346159131346610914810193720770622633918172242385993617180651725100150948447246308671749785683648278456689580778828776164486984077736812426713374167978170872664165338648112525380149198864819566545037659072068537493451733140591031107797685925727064982018486142998393894556918192572959402612134118591740024915257125860909484092051117439516994904225980924535891298678308250716059626554973106302060557174948862100023347911397427277021770761646960497853651929464517692897149898879889361729025719891567878173439185682145058576175237810259318127576542781071613033957885396316778393633968291262749110100504676682748107109788727397739288754191710871194059198707313148575072447137238075026223451981158969400529826777652241861759618005800547306624950447073149100408221696166272076144115850509790816505250177198621649223549918127288076418627234669547675810050467746759513555132272149203677516311694261514739249183554469953724467354629932431289750494491020888610224570457525723635625623081535406683031839346727058660926323882877632706407222531432664669908311587775959583723306476038309247667158471646922449524214105589678477886811873726557393110452290772514676982220411842126770614513154742035322275899255298244208590949526931638628532639330210223902409870837929109157704372181303422620069896482286025277892628745440788473273550457827868735653546765092029300258473579257335960418296409372473383670835674970338317161031909132709927529316285611584354413555838990882397233128351502816608834888040283651798281128067655236848455645748668230645439083388630429413489089021040499125435901633205331283174145391949632471838764327323311273328614868359984545420075898906642285157460366233381312678341404551978207215801566785371614980268497464355287246360920003218511777883740574029830470000909276368648719383441225368674034719063766244303778203913613984720489327201968202120279875945001995640753564634126892184749554077481928656427138020274011828893865903471364478244243883584508105715922549170661499017744785010989341431052037966668761350427163840105268364840816993466009943491210643369589983143667037363435123900811695755741696719640155715664493432632662945880050465560549426290822708764747479702738710701293752696998197709517250543984748670680962508971807152282557513930467837684078426097918341599202743103823230621354600973665275061033648719877916268634996140189501499487634928796976039601719641348838643348515017910256026567202616274446917798629470176589501772198253821674542291788824805383897278578126497301924893240786221861883581119856739556260183322469371810211650983921736305556537561854733875037751153056814120596491046077643926979687329281628683927486656412425923727456379865770706392267971801816138918075473145391322864297441832739561232302425471177561140266923841482721993905578761043662755683248381492199425360652011009301584317518509459905399166925693418864694869434049883888229420797603478820373290583494483251174141439271747752137211189888067515920888329704639264956504910068355592598493325393517035451976792158300095646288535741106529876684901270707827725724658348807057151456950347295313698962854867152429901158482896057501496357472668350293691667908938838228709800161181760271667938868012778888507335426193413634370182733355697810237391291559766468812679888644327839963406552312346097076162044964877112623827903757933957092366146996815807432957339931403779612924989702039137166425415720286734435102356069227413577214923153127547083200393996276991906654946205554107923942889033194727512396758274394781075413854962625880938253250093446366225016930531717409235609023285842031621908048753509504134198811376119608069122558890368435266555923231482900326813027460718857208725625403874340345958565336656094758446811757384041541376485855069273594156528213379422599068136760367928043503668646946234727561843808447233879569574060532513332745471012935116269926822991638181848056595976336205602154901558216141250619408735919036700338607806387133389776045737454589488805290635137775833305603670300132599521794081423313107516358751149410845481001929948790432859235323689803472263510757019162092917687529004913016343263346032095041592570848506673591868996886169803048884045229533948146627947497163814369720323155495789540710102315464742335433995297952325470758231296484357043746963514456482763398840424754084658706027244702756506780957363388298922187141799303611341655048504031034179110180002406811879096290928887209275788742980052785765605366245041564330135309894757805756530287131021831396977898317181057817130417451800768466962674741520859450196026559126385928709608897798447984404680716225647300361358381965104318029333376161562854173622136732405169728367587548404097780177147715094694602810001422910425274377095545889671775816860202372136069918917901328356487938346686145544888775218044138505762693946962693610959656639434938540297387307075701441925328747333526301701799562047214811625170734582587600020809938056852171671436225517813307640944757658741020144011401699399167557088948462246233960782611721251105813191617838537951518575315596205660820886853695614259703054901810738969044813928830876042716439306036452932961007609028003905827336944984080800216227128598111121722539346801019617335852590377229844819070540818706003570514653152331522684125270238972939177437379863298264399447751156342504700623097201866812962524014523774554738615593848536970602714257427567491144182710540388236518459508419364817244206188292936335085773408408847577515596519742341028258259120724303911088368162611400253907090510342791586322364563220350037063225318484462131534555905396852521968354637928627400047067813570608214190167900852464134797581328760893286782099594345040035232599157347005678771743102267649818910099037928521299101228883126839490957684547014002927390498037922151186390251740431500324975243175582422341567578662422073916238748442783166767934162302247883804507375817602835830560389633150658047510892019970952783414452897183429640698241224199691736786859956420292609062023872694933189040894405131064905032642575619522354194024799163190565994231026050181950008778198834574450828344546063316811267531217480945864075565968768671845183018708168694080525974186232373021818904769634853185638038890059959930120001526518018803555459872127168483197848340160275062816089890322081648879347883652325482154137477104595195784167122205901401398502051716207529284083248721162513991151323948234389427015345933759093248679028420882592066143595177463257080325551488936941286782619559256638516082410773639969662861572712583236302798410623001503533166689067357191354934703373419728039154307005025342389425219796319231834595359482274096539110143848105565213683621578684200916926935460726610796086708881773679034008585556020035354772407705345238765291008130920450732211608467773489841267451120200924055841357623208989458700437457749973558191871197449971289880096068763658311976693336323307916156768837358321760613540808604627730695092472148954047845141643678036618597370975054252497198062094606856921264676559525812340785462146052411864218220882544997792785325685234106028193414188744926495974712032166051054169986232314267997187916688305984668668771028173564729268380207518240714147241681126062832116437025913880408368518888024001584148124588977816911387594176247663031316304970481807761398455744283775427249835831750621747041638865612598696904201630105883438850706156212269281126550376248844601475121603251124034650382219506652174611194148682123794745403687522822209816778593855368290863946150471857291227504059128221259320964103056555061286588417882861844090384508562528178880542911564109707676835927287771080611912371814514297735816272746612524983717605726626655651293368416778713497226946186741070269714188540811390079351534176818777706132459606268809361110209181618269789650557252162255247707284628157136001051963965543174541932678064905915846005556925389050407502083363654759024843427386390247306624008985143747355010499859142281592753520983772197982920196408068252496007481400736457704147033475820128853259180350902897666832488901199295012340664014629247268847990423280762012452160035305326089942598854884641253457723726275627537680647029789812412170473382335235804915344141657356198703003777735240164263694454879069775660268920600951885790552096957005926664450027801786757654408519067160573799605568293073883654329427683661226067831629629177248640607282834734358974767899306616326339152550226905583914532911471630425598706578233690669934003083862502745024722612901084749819047158612789705970843978002311609807116776131769882086840050943451596534535252519509383067095223329052127680020605627892381090590924927788739046221393320690893865244837812143130097870572373022036008495210465516236821440984246344327880933535687911372861984323580966091058720060447799673473519025702442604223223011500959889898238320039876246941523887277399799056952764829501239830807679678020415098455142577244497982725207376992493652502779580265942677976404162864834834452199573067910369332398455760071762946126237848906769896144479718714993086594892841594765145301249459786027219852416417103299384401882303505286059767830419004679345806741452680716703280873166018228341210853874206523629613251027555692350506308358109778735577148612119764169389281228983131268306287651317933440825890040523438568643309939526709735357354300108049202851555661167066705288917163107858200260064991348646409908257154049960963412684929607293269227925258498633479862088147762141732795323907930666962380602664098601282968722326795097886607525606476446013255543307632878636549704934492312898145373347064714674663681993208550046650366261457608339836617733784516747250692516940330756886194840035279190517363688711899836802759166380725733852710258057130752040432504925255892845084786841247524675748042659233465718447397892726747876924731220266949234187866629992900205489607952746788230059042916295596743218368258534500226338734733928997945575655309629113648301641119674708654787694010396807915070603339384084144985494429101892054911760546065582013151422193520836269519037214960644804692072108289066179076449158769912475975747318623154910615106915712352803829002518994683294219792794376441110610020815342054096709626873832058834390014027506400696099515956447565191458729119130696434655740097923813779387830557950403498879022719504238205665763344207500098532283561769899154519362081114648407299349898647199054058010464237262074990506432498349623423367138494748299917179351756636112003354164276128586983420930140803406090551264452294804269619203105930615393885877187994202136566700802399881830354783455554325399202860081832327896482304031679369876708739580255497930051412949741163749472305293252517007844396996978174901786156814425717235054486873672369188471118549362406478254791666199257220614491502569452671998956089576014434048972835208931053416013855372525931222719651308993560782838500056683071828405777315193879013602957490034473825491560209033105075521806874893067434249117860343420449989207694187346760743860069729675706646195342838955005596045881027197422934822028577056829035626404092397477005831524226880553448073452030231736377096983046911254159967018287382484609406136936047045850729288915133618752601149933428742583286204359849065580062132643129791683816343005580930036385666980427528922692881457521967191600199150320595481162445415488837280960789993578772934484796166220396164589402757312870898243273690742194871442913633994122044299574621824154153635921281152604522195749881613873106589534177749678107486816927057461628768436140992884846441785230323938034381017742393560845706153076356348951501965496419881804958312150895304531229618514682471383014784134855978667062648279713792140132379603465850571506408894972591515913280041821567585725836735856482628479341359930540853092612080492514207722866206330681200420484632644061696761638355414267964941433010575456311671599092757863449078023484950538530155233932208034991911975126592593417483109931152511981522034027742121173467293774376675844161279847862926084175418853670043113451329917701265517070396517367918541861317003767463142042394458664490540132468952418447650441823878411979072828050404275512500437929257398377188369531441069888870551879412012317330957379299550380340489334691732744172090900296382442817622211400923947973761754378571976516115926290885902721671646672644107303796192190627706166552161802215187150302901885411168631947385434769536996039184090438008892454682322813778080751095230934897550123361349343030361726594530536738437528581592974311286367964261936618639566058770925178045155445948284616690413201859065946218074268423818084961839393786412903943553050020910732936636499860310876847317088197113881746408988469148013441428622334601336055629107423295121649469966802021781830411381418783198263448321854923808215246063028218938426455457332292115255779946200931151174029081187528684303785045067307609374077058877058549553920178664416465139128508204285784381805563311553164990057067670904067404871133280336147930172639947414710953739654457221600494779162360138754381332871873236492006964932704595484752116963842323772839362981695115660373201259293868794838929701435919485744310080986708260361018014401299283466564510443877563823952423747166720298388104248704366061754577577616739042529840208718919633805224856927796029213270646100498484294960195276083553743454079795829270898126401258033761017691749628615384292478469545024951526450582487324485607512519178935217879100648649951993860366814551499162226642755892918695794008343799529153142027725352545462183395556760464429924313614541297247825458269867540809206343418160597230354061289943956443063698276198552577770380902535853415720097719804655363329659398389041379146220429329701553718989461306483175099123894020007691933766436147892359483825653619796525432002665397964392845440325019708069225322927814620107198186352979179670053157310766294480717377519453857411341322477605742745915987122189415932816723581514726308364316809163877495585925079596915693782900749616440817575047115351179212574704740599257378215989215944131987030344629197153004335036783796394807853304040583813185797159314259269787423988385063844990491165683311554809451097085734047541437884086130033655511454712759427909141227321420383015818663989845623033803147933739464359832990492684128640860275788126384507887931472447490526210593415714142780342728796537356785492631659007794801056971850919189315711412231742493438056565259956437000369281307283511352592501961765643319539024947492713878737971905779147903546586090955385849599097732818452247731147632011558922853253160153573801288650511708299721198023556174450927128275237387028734222700366054215047715243445862453247675879864085734666035441725930907779126892040694970634970713296155428659108431809949602155583992092618368748460315034653381099990605989398977333645339686326987710316957495029129903718492078500400278693973930452578956000290600133089619767188011587385490634911239867077906025976105920257131917897530747064358190138033721145791321151387720377853561495879520414801356496643087103081835617956309213273105384995543322754452572280768028448678842345325900079509582837403662588734201156591984059893480264222273413842373228081714863872276907489221572032370978265331898626288079954497595176301955453316580631705033842413957713274521334058530591044670535036537387815599270681127372077546276661234288767326434774717276321348015240561290287119883477851341665442178798984036844619250019574230478307688377168779668356126135785239708644674190883642464935709618356540340762998481480673969107138000379385423590292031273776547101643800003992169691349884139247212163078808747546330635457827883174824653850532449942574919533049529980536405896273909565881560759705623140168099148651854634646493373515772224032361664527857190641796799781443849106125590611870977378702563560037326231603175762944844045943213139265215160679697418814870018050884300070097001902384220274938449025950026717559491242706138174244533505808566182529348310941342484721957088019268218583774549335293303730188519275265608904195636068180625344487975972713282403636915805757981179550352322862131601617641697995503498131418421223034760491062216025818123893875899887931980931342257177071241249002014872624831747093621432023839441300755100592196354511874373104927823616285133920604024022558399800835948727059916177277757749277168188602352101105723758025227208762876163945083575479102620972238198590659295952422604866285455768154729181421665358724587953842742962475073509206690929744127305895387633575566103571289414884842362752056614751633125550735279483681052145549200248845871566815544949626843781367415341106771067636088860653929870065665773739108637293068947061381672546825723074399714527062649756717476574504952975172659013167599563850639977251543113534483459849367640464801396496145567622941916114314069239837705443985777344588233345539556006242541211605866801570448588408045277948217839403491685245302076763580425888669113389670248879569679312179888838783991344378126752248777757008336690492922720712770651628201229244866560003061764259967285059696851045198740328383061773846139514679706577958472259789520393011384584155116827156185529119514848659897671291115921258947860524255721751181719100489547877752648597038160430384754146203270145362970686416384763227495699438483559460654243337696766572835061558842155355994523642980117476164481599003403936874069249842105177440762667535101915018294226151386356649075701563499308690816928984531867306814018053572894224860133350841983403089462781641342606918239315372779817656247130214476715062177446870727957882836417849638795046802223501278130910486060985517233862529724528033773277147867952251475676474795061968610984987787699676006584942220146300821753901316349715215943715391071746732886610691086412994928082975427300245862871148511742309063207791905742294907873712519627108177932623267790891958045028939629066695717542315427228148790581355744776307645959430458971916893114519024913696219137390181264253451332869652700477916441230254678615249624440594307603643069101836428673167990473679947479179323679260551896570048199300075589862140770353764831046641355897073443332796793906644626132023763977149041278927206963224403102676332398427804745560310892157399006562807559678408251727063725019589775148497629359815189025467780963330351350052894034483493161924359095091105411487850346741371806316891306427601202501408006756526546700083932184162336953780807682886821132335842802334731390423160340749818304960854127941803823285403563749922271843768695500791794629242114961865409298349429542145079284311037547593324551594744907009780844177126117451953187854676817925525170710361235467076337230691509804519716927144126413226102056747809523983553742346928302471263528161830439641450207504239668521194333060650181497042011270987227127405331702649642676655372212940093422068163757177299794684385817634222205309362865762003732938280159876269423662636471200281418996712391438590863457986150860136510235027692056549355079890226174311610568069587966279092644669517879672544749818588293282193074441818846511096947285250258041795503844010991332257010883309255902136306348458990843639642660372222419104420275940039482719886971574594795684018583531776469086432208296031058786974942382986053071290153800575611776308391800054161479948109576793668464435907907510355259298917629939318553754595036991679853068348335173283517041130668227811750343784260138756437775385002848129038010840856056563088508982673858853935844344243967694320722305993715828917838501976894694239786993315930550517607973598405053916737674810495181825114320604040592048393086140041735970163602266604275439598313339193972479870262517063893344124053036602012516449137439754866394157933428376944898843820114562446292817624023165283847731904230518641980863950691527214589793393551246782357109908923356343475925552098786612049849735458094174406535255001917375910572761648838280772763234724468947806449312449404070321880067369428681195685221285434718613807171199450537400576038702135780811780965303101084550281094762126825170217869386526448539996193083521143773867484863233941763579488829133627063387860738282062158944994285172639409238702759076336228736183074673265899391205370115510418815125302003928863398393836272308636982021656141161269818956100239317525446364429227077337157254349469925514492227944807702755130436775796370289075746707411813819333662676483547533996598442227976137911327035080895533910774800471233746869629450053882598105372031413331924823368138259764843712486190030762623175353916578078410109620080203186381805769427332527711046432703555061778632704091814764696902931196378892597336343012613098054633036775652243756543573533158284315651274600642270696364542562911643075999669620871105384787470523091038649247901312304779902852321793505470738421061820899971611917259380145984420493948229891794686615690735521540124727846449796700835633420434795256182371231261505417957348236671021442819099250074029619677487714170876079820207494504207926391735575572902716972505579742048410720791197539495408615090779116439063281848575031778270570971104667283295023251021959151405081985400726580001158740533675644839953039192493197902767332260394463440974513809591867324189141760142636169541602226260205724931171245610024434739785480958198900578606426958070244959238835783353838635896411861737808883916544294069787901820172980293439440493003537435130143512634646300967800702826587208794822161766554467765245598694987576617999059419274692462115384895019520261694306702761098719831494256261695803677732000074142661477115033460057235107849161276477367005658502770652642121444003709342108144784163875778544351140979821152569692724023391602616643758408327581807716635935861461915840500002715846978341811227958600434126511858285773204711330170675234126858283488070007120437012228266083774678484068779395654201189572964176727366789140468397669969603693185907354556210349397888256986105923747251549159879535817507570741912366895734859330891814427697190557392838400505731331246881780443014179795840691278323665709075531960147660116926644486090488866358834566010096200510664095831098629368409986129111036258651422791275482371520484061391483638373847073246442519003217193748536193474696126067549671326652036506152914501057309151744893981288843249740914458200968882453867372820941922400467305483523585645292327444438591610582908494420042335171826933354199079647621126500579070548736378412385282318817749175122477692148393825661708062771030707728911163529794975435139796579021150724758382594940726658470325656805851674407167206799029827361839342200069114597509096329279984293541755830597431608248675893414367529439050902092166500666574774644608845505548771435321338602323567771549042255408404262265283399229798971182804152794207479657195431861644068876981942960360313475137125552845664895156895580299777219410343266486144548930396726948280474304540794916386454343823186476957709431978225589021942195830136675148110318857211387844016571411627928489180762455717432955253329466599713652547933223244961119247008900613887268501955983261266615366863017885904535986818421153456406384021207503505318724037740923778958304097992020929434666973904461804365234081067077077973410870792507519206981335010274779091321403161606382993985957372343554168134535741586113928948584868247007850675249423465566407683001471878612926052769736629154026820122931105919522084490038960419206249666404878413074315985726410434811609472422074645501324549598062203500935403942961427382842869545949343244326506528507298889002601121440935851857108648122566808503333090284614693301264849201654761122653563269305358527328742484521840463329869236994903699080420556302035107545247471806917006521144804719806712446682121363971432755463869116586680165982473611640812265723521087719290807831342371357218988691679525260667620203005173818105304420952597537633865133296383128900465615839002394386241117506424058914312676662472271123210751765997990151809394913731270383680028388217258456954039834821430853746080133237189212983915817350430579419231248761943610155813141136976410624669038617500388499776771536469947281588519096599190030508081486859984608210063533867414265878176249839294189319038342790979497255355264394418708806564104785324868016879502861097990030935763314206675978857415337782600590227358917033100605230724985321394065579726745611430091093655161773751425276614848507030365944623285676277169580093846000739346771206227489064013994802628532907612291517558910841079686533684838101767860112718338299691112055736828001026357109657540618055665480853295802916480650870404216249290596844157731488186708575182718183343716135352896508752883825000911662605920614868399472301447010768329448953249418977497267036577110914174513477892444429991604907046431976917803727453182024323065234846131194015757506881455402552831870497146312380380196897831163060087193150178410603101843729479365757618976038512578272450180934715776635258521171087327421260561178891132937464278628671409995946856899298268023941862629411926327544032924986462077911182303197994212412375883915126884327489746297717931713147104055615023794206747587783560434040392929735618849667849558326839492749791180306249788309742090465597491731912888756625528560893335474251016258089275067954208992792128743013345825583427356853852069245232696768276327661335689088752288470179897790114761327390070790360630284629030278083596267846177169940702853430924469901581637732927609366727221217105009300650087119361156136625243775996326114605034112233394708100281117112366688063819727741921874724309929732278287214377014995087898861447429892943527094553950915011200456935868785376983014632921750581678262893078856774685988152355291016840529957035360601044575625658470480366248249927535128882167480642089895313337858844859993375651324180712370592756422266630885330422403372386932371016275397938848481353797403985232317688081688564156194611199734108968335478099372044186639600664947736263249239752655086760280863241699929161552026266934909213956738807185583841601885096731806648740500497152567280506050715341093420060847231542490650364910468726979290479380617675434662048350557037694558030800485629423501999161094697885952517756015488764349208780401141241384392477179805218699621110328285441939138560230282465900721064080347442251641891626870687160906812245195498561936990421043255369407063923143901265884204677364579082050656418418655727230837263729602799220868162031838367235332705211499019077163047261005074904553203236089693163523169528001649363581138394588184201708304065033037562352223715701490031340730563626087470696069366720099117945512001478050027228220637819964929363332049783018356022751416101256370540892567320328385352725122040635324592459818558158444878899397940072418490487328501528185371195677868697826308561499976996013789275041361958424716765733363043526037099143401567223609412568373808513059988009233966540897277921706689648439486192193311718215788599475783417521175352240122627354324324337569903735777619330172565687079008478523122266471741942296472051587733623966367070621549957808755438615666747764136189557280224169653394696580341580372269910468243958464871625089004501306501772227114486746018775101677655946102738789295591661807023245822299685663776497100438532613047924206533432693083498230045401605898505872249959336333815458109067991986536928820559174380796830705754904778462080194625297014850991882655173902202332554089826713611562086672693467986539466602940814160302408155974178340337754427585479117217924138473046168208330276883889534295153161002465293011503224831151643025228587443564090552239351869418037250186641409626570158214475439799784167957640171080195716422472522196661722049060716537320868484941598034803601586855113482586589211773349252625246268909781739401505634009426734240548814701361831146118026744061557054228150349697632131703484513040138054832134177151049946138910679940906489296751281232774558113912193405353059632971650264297399808190650139505586861876856324183090344341121015277678393088216245011308594188564214689443011637998927921492060333560409638728840200485052525459831979448520834717879339416066945223442709605039906427174244038244240174967072782293705795161367458108456671109620738937635156221660942781984642801677588496652430419592489165780351024856866433613659193799862673048458771879906597492091315562385152124025618913962507556879416383330230719472003106392870829583017492137409673854271498655404156308476871972359061537959268080012989325528906209012279290458225250528205694257407080155713933684191429962109970738134180672695192967818490204341048994996489986687247032108572032226633052727846468977743199626690576268196190553575831006731168755187356750292377292240406106882142545026268029770626758549966983243296161732198001916481608165141349535842626581118731020188067281904207913751537298892169308356732089727559925168685144394587156354956460164797499692872848447599352128102226062620062439752334451536671130927710170199538900702922468993662834728328291133849201603748699211222814914550853876539803122613258229092046599288175743377225958722308353032616590447260912249732724696295487873378758689700289381874643418053633784602937231969632700897235250827457382507605717007343806123394522549267732197856023404363282578435768319180678842948469775979153751282345435515717167369123074372045304319944850385139038349694194280854734055528142842908777132623972040748904330093657561200323315715368173090007551098631313800075053893023198388980425535227828024778895442451823196579177088865968431650834089409812158417732003333455698373683919261146921658466483486803960021402428276919403849528803107523292208912893063477372514925477235697821437553087780713671329550367362938926590289906029121346914181758640413144502683865681064631307566471907819384704878155650671457750079356581392901472639620351275883348774714684672628212283243162347112238561649927707938037513383497592920482524087566563357957414438061694563559891336959453113834966385266814784911345828969823653602752325611884763265535622862336098301458573958997338949438042610227925730614275540476368381330414013537288217109042157642339045510114104824706056807710021073481988158133372603458097423964587978992017262327430995765661741395954563132176113657852459633584356223366309343977792783826656179114510035124413445034799075065360251491547414157137604628954099590895712960920472467517506702784916788762856810692781634103888298064994372411778746435624444682457506212656801492311551724562909964609334008360532439976970616698768137841434438972924802879262058989510243772756198528759828382671674094485019959340151425408236717952796997068920491782709866371229676058438072582645926463109771137324918443909826666223008083634225400741719060861683115884812565213490895286570651955757856568971184160682833099406480637853288144644278088646710427058115807652243530246040342636649573800952272137322096624621947871982294348716880479785049693993317539966007791738279567009635858881594062385213234073893172153072738409377063726972028273663483088536295256060687572575822803536974907038654466668384900226959737930278385272569323966776744737603536816371278379615150611694126257322564585711757197725552434533841670150339707420827330309558387416090331292472902067724600129648199764380609272150405571756199267126682259250439827215244357229053305148732349645457576757722780639160441199294501525856454030058291571478594961597398062056975568773673204347686095969393588119798972290460078577930477020354702466099834123198019533637917062533489329032188397980601042140441640079482517344752605126337231421776442132239670610152584230853167094977495151770360030192562155669861079928707840257497813516757467749969262147936615772726215447460070485801813720384024343206347322592028818091796594256325039341301944429619936443328190542724691367152339294459735673656550421287786221459660942799615240912532622596734918792276230425325074259622548003574195998721959128833088388454262928779649949458100246806885956262445397687628812144105637733284974821087725867758186647624475337252956928128513457205809698239404358310665095393520452644838244872382134206612698842789193166251205466671692209324778580062080495102356475466694953955032470692197525770937272198012473554133683378151788679605600280400695565160490040990669671947192405725233645006530220315628828129440422230540871419738542237157163043065076973672191004021741657736648194316364522420970429104571212628458516759159623857796696738479666885040520806259802043920117773928144208373556771631945905857964243587818716530411210657138836807835720572554505256555920307152302112516206270097621269181908056385235462065132453093776591734474117025209254230556900148167129803337044579007367138722956520482129536736244056143350334882437246466023612713075145139881335714732615630747621013963432570906092227201312457213200457039655610333550294688692001097673570074884515388687856109176596576006836165527452377571522596498186004370095451079052859417766722761487967991904752344784128063265085212068241730640632131780223279795963672972021962929019379875711224554178239351516013811480968959460611996494221068717377797604685423050056212167612149196022323743525314681810189095802031674700539328687652482605208721782809946265766893084047142397473822020092910206568588103521115318879448716341240890552510652617044675115526767035248326248061178382463966310519574459989632574205063986546219107943179866818710593386118704336621459202502498418535222317323592755363114968663970598494189882371678129657267225066869375468398576526849880342118596284430033944148853234344830445802253059350652058896177629427189416425200372678018184611328267913598965284286694860161444576172338739340747882981120033476109345486530613274892138087476221089050028379413922700349586141077834565380403266712492400253615685264988786774152504023289695259609799792102312282065547805636776199989982147494942313531675079692091947015627101284109409327881322602386604551708888473562124555452294542515628822575837205630720751675970065026502377587729530292047244359104678546422107005886599439394708896370702539072523375811239516291055899624163434803675935274556833017462716638664765504819858835985607875231223593377623754105012112658744480897111853649229853596007427050379929797278277273173180675593111522072242671901800792510493024073195748620270689095341487531880558951089536677471646112049179994144703079707678600603245842932312600134318161056265631394660494406724676777897365614988346410300338836119821585400567490797801825706051385121846295801550233939501338440744278716505853175242242109857686803394436093339583792621878712883807563401137161502268022686296336461867669407377069535055336637730496146039080996558992002446999289199185226872824338055057424205994652677634990103083601723676086099923463498911079000085409001863425515908338927738876858338876723914794231185010751921904957383327855068228877068564225286176362799841196414006768246934347434433152405372907627378889121299943542380980401328329389433460895772448429289343290610878124135976795489836182118950361861629221931396344159392188257509903880606940916048344251040968134641557196190815191375416042516730581661105552841989496819727850881426513266102678773533426308089549567759805968278231506137201854391906474939795847037410937028535441480345709674514154351841442970126673520655412638523274013484234778441119378358383112993180509639493557647822232733415350116937249351134275348336803700500773420061344840382696050204796648444166973373015358673050065737189637311178609270762471447959243958997358046103843565843218525345033670295863752339777020525507736601460737867639230211493297983476834059813533502215043629025785350408695070531099044453803503220325463766227932446706747284883702853174644620650814948216245899651043903069802446832835066889878930187267666749725880370125849947294813961417542101665480510571451011948734170581921836435738984144809016315423929298504601962511636748832804253496618488724151808495941733171705449106700867604973253140196463356150065494639945701012808499266334172875623033093874204699667122142974416704413262712722581194857245539347988285377892794762248994673663802401162835353100767410679840515303851604118079096068197013018125579047765692535017890225659012958843365913481490891434873273384958512050261676620492127936149919417975002089868196937841923768436547026431322894849066879368393658656543430668370584874701871851158291369945872242576438706119172607263211025378959614283102346194938674370670077234857811890018586111456284780804019758129485511722940676118707260937052349389165063700032524045011984592549907884930147053113137629213409010679142246339738519572868999822877573551993341715024940132760108809286013971969625826574193876669813529673960679935772848304631825126286262134605143812130119224060104378429870784954769494817887842953939691593471087301406406617645169351877611107526896289547117519878617119413279841303685239496228447236883076106596043604967623697511674101832422069458986754947292557140802759139318102675679415441431801140602614437751913440405952210163724030478528071817776374392408882785874411070180229679794503116799508480130133972979231854309004944320732985845155421551600486463516016145527110226571241506626788698251371405898155091927939883777332147739784834765235048850784545767143724815712257071656380682497216487551144216320072688450369090178707127685789063110515544948498333196400005736774935976252025445415977456422507704869104215251031951114512800821204387016904613219846581029078014936672823083243837292540974112320666122735311802910723260925196598160221136470740785886720073689793353361389472326504367014002962845939548308153967503752042765644337604136065203288328527687349404230926628017837318863179872649805280249373938788576096641941902050302776557797844331233968414447835274339970145656218064385379726095108347332254687062275879799053793434837847861251861796050677198953914999006977398190562219426572061758872489264631470814066436220897754388314350323731654945526805228710990710787638387755745259513663838151727580643429280710899410484820803806474287668054307239424542539434725638584697309909694518459881205706102954601103592590896621295442075410106446092603980761483069313514053793359314301768713802999709402865537853996377752200594801661222975941252674556603782246036765118417494860775288354458076531398721372322793698803089901374097068821401817704621487695850153888069341884428469639546865669885710383531795760346535519130975862340680924062105435239067986887815598503791303288448701730431097038593240930749737701733197135502607643738592619578898786751619022109379829191767370631394412650985847912876442867024183834736773032725330611697786634390330005227514885260703149381522642648339042664541784270635090776544316023450279775118811211304456086025461666702756171729841473610255605902409360466700926094834709645470138831902907420990120459608018947935966896142290733545643210313500653656228717649951094256094580161096840839180456697557856275171638902312980583992632062567309423926593068247979126150150301626757013968961843754836063775606316735880859070886513331393663200565427511149438202504965412638419111451380602909405337087550401414144772335534382453441445677157583260857451231521316399584013365486928100594876996949185898568472698377518068259369731041104449358323029664170966109313909209039397864705886575701951586427072168475245765022314992037712293775266323531560249705014504999659292117976800150834412477411026250299758471553661943396256767407651316652950944844408087093879771058401390833880004543051459697358935242190682227048681779097904958243003378623824687755821123809473053641746340527612174391426527941644241723817512073787762772084238675120615667063664098990923991369773341294955522672154793564662566821267936607364650125117316885869738532689098045145602905696439407383924267901375032450475551354996095564295540950368538783922743472782524895215430409036461197068820551585954210124239773079334064207293686040699441690406693688165511340304385147950372342729658096100496293340505363100814508498318365650751325467364224900104356176881150408609924838132783431420484088631557068503565294938652317951390581292406930708660387740010822625729621979543762689960527897636987798743104018094065734998866199924871127759374709141920768617050628173795351484855378550501209220818911213850791157519605248587449729999166498868943072991186603156310071334809778834454465733979281049994089373589362674662223730503870599544354809267974018125057971575531554057054389962121890793949513283117155279353336102198958069351088022694786728294480180474545013673569975866108798723592867224494304842838353549870008258197243651184021009652594387412375853500135408026750712933894406987803862147738528406312066159558386889128202729594957410910338013309263071031722292105602124366926758965843443077654043769373240656922450604420488830695237300608318041706480783069159141767623728676611795069731347546293504305129009658671417820839795053526294967817458355684130860844557612784545088569678739465647305955632397819799571232177210910337382410840171842686699125761789555999474055108785866736163008510817264276351808590963288334038447936638825114772581568982677785838109390360886826865465002535944936362908474613721518383199014619691880116057918410090936727483102534350008502902661630957922215159674885361496726218542209245981793700231466790295203602492299137286169349191299938386028526798136856304464504242394507026702518802105592455735818802787588997295454669090372349898219301559013586664503579427715904265595596952194600094244671495464255087449249594232217918666580176828511360891094720024596905637055025305565704814452221954964591625213504026665860954976569401392883844055010287843773851395214149267662597837260788731579614840476375964238656145517415467742039494189365742317799415248547083821881376203387683832812629896118550942653256445301310302628601315884264447464349442110789472492230864940141303400337597514929752610006774474316806484764194449909293375525442613136092190881959856597827057673950324306515221480789038293044248886202986638502403719268365672767338407442770506221584989295673855323500532872077183483704117229191106056289647081286708241040933251512108787033285854826694206564439415324638726643393222040415568142160054090819535993868457510422670525165762876278091706333150426273367306638470749588708316205284722747065645440350676813662750240205623230048279270715980695480430583810401837733395386432542665865607425741199197900239838518125226879118069911731246621318662342301665239356869947504541729524416069836779492602138861330747511196245805729709305226031382755794281331507916793108645884946132722515709423631187404890221418837797839163687137595889639078674722217524668924825352371934686976071349318155755900594103552079004471409534651250444037978225736481950393410276117817694521901762323067058913070759640866497072646389619720267585472224994313819265190576361127449752499479802981267112119202852915641616749079886731455956428467303951122877643670762226874473188588236866311076136358582821139506229019648298583209549087964700444875352691807430986550593532767728841696479540960884454962400589912340410218600318101719606163386131542821619334556076575574372950896950119691832167324997270401625777733298583769885379365290019281131301408137398745298618724318978492868320460812448698613378534523455867051025923904087727304174750938086278005762450385072287271450549119992333688928645493969985338211654738386443622358335224056333594387778524563683146163436685195728833325092553902462661777410584469425734214781368242961689940806279068116057548061562640696669548873451124420159691299516598271921523946911350760115195498325030422225971661523759118821790338565364924891781553221292633855902177340351416109644545731239285767755155454303186509506914555148790452819841143647722406101586010293438323312368891721866701162843781676560935116797892671899363089153269843798166527250414943118439192295241370298139213545776893492970673871352871469941066937218037702700277778095972770493168817173566563503473848921296439026059128061521786404766911589497146967589184925423899070206478992486453215542229886986433496823087319495889083674398907231074024991472958905829343964574617722928291976491819573569199642149134883690642063345363466299086860172414160351105111796854870146422660336759985604739070864699021686361824071620208456134567035754425620857804365671813080453715128578571865407575920032013333132895471354918330078381679071470560422054747866866487783041746336948594983779914113606989155482146878062629950426817458603963869056797134796840541690824112545453823430462281884699608525689260685161263653706495429830667081542034007860430240449119187682236601683318208130138917718671794320080728228509293166822837911331026452890373448556003763438818953910381971243086786280594402106734896352636060056405752886882246233080814463329330026725750882711412155663608397197419681469869578794639944209432151462953850771505387860879771014560061107855979836684740093635334918463534474469119190670953384628768960125453511314063549427425454347919659905549509447757166657820968467982016695088980900101469223869934840710457748282132422166622695273161929214362828821531799891081747380598575071742967809423269355318772156566120669672747603895622006209992762320290595635313358675703385298051480560764705915130891633658610708008168579812511438520541114288836628604384464647147286575532182265639974972982087220113767810525313166998162670783069961295916190242705651138443525804478852748570741571256154913263906536359932981171917747334218405317470516668553945642823063297257479811668982202418330132411674136951874642968801858567441112273127647235705641280231901103871261878173157002808469125173045850310360270908389762581568895459612513369547328231194011648676778279756624533002195188219650567609462014117394040836441136886678349685007380247670415490486824593200788253974053533623708259655256223845984298320145424374397232645403997165628423967464906929435089241645613079177959314846686582794101345629892326079763250233526962770069830135986485968718218451553360870751807171242735808451761077351999428565087255390987872767192329729964081227757184743804392789509852753528324643015059513253110306910894195425402193359533144377533042635573873089485996820138075990480723551749174949715151162482734636182145801764896601772727303654016977218347407180895736415088267457396587513096249978593990085427361365337281558446939261610310976724754767373987476830074630307873762149272842377907070314163753762451539013458177402463791160219127642005649557354281721124863515750608662593187626183290352613670537922656732258335126718525623582792144315246051622461550506658391697232899975136683148962913573073780557064880885080233014092489898133371361918804300906187546916674449432848427051242767378467111920485959932052920857229579057646668393452467682667502292142517733491324401323792368662262900859713133258320750714979061921398907518794976812199613283272039913348682480794905620814465038011174450440183469630966673587751640954616058076883115501866236045563948299318056419973880440405718044436349249807410285135090165970927353977715086990022570029640865026502743294044495545743057435298993919890403499979464073634041883503553438469848753355356453576546055583797379502772989716037240625890060348621923574658393986999077843737017883311490370147785981273887237611375977289218619845247753150390343227982969788662972336603924174050246280958084089113188382010816420743043628082859849245786379755319874569296886963942177027815344426397213706976228064188679911734578631270014316634560427776600284665388027367471813625558380326800654435503001032051620836406036865612436793303447079765520996914734570145676250866652850708537845285921637503248352033025547154866480079107579963262181684853021008168295549273226803217082091162521738816195910842725044154523202651782371758581830055881952722429632573558381694388683054204033310788796215936669379894302947297307844951746071471201022549736303699036333020904934413896792487849656988077746305058590697355310951073878556374623575038353985852592417648264520316378442952082324480094342496786470818438502957959549913253273113456029467789459727212081513508811702222876982619941822517691969642452861670888269938492014017866664767678511322474688640225972622514800263459017482336740585576833955524726431925165821762709170344489188366554093809090927865431171475031779395959177771431759534928728689175156288287652588055513778440637114403573764932619319289805637960106716501561096577241712118906790030753672995324734449925458423127701020913256661425641805860595181660820039669636105228960034966682960915878454829294626829911909669170963815701712648137464524772967197147548495851265148049912058945683325496854400405834899127125013679734609359358639887102407912998319941760623145478861191415002985020668547341707778948365656511219889425982232299469056865326203401903494890399700514569514496105455669153755035973632088719232037610867593072638826663707435157740426723616495307688810764201367520019593375533371097193354273016917216356816387107896921780362644810162686622637470400357457648095355089277315301259247965207177913616364542934704731364672342196172618062290814763628463597755471287725600607644603475714595843426720909384885894973311551061109877180910874419047273053325845772438406140739996717297708146851093029152239386721851022509028937179445453510008240283049543937674362906108561800645962143868675102831951275563342738956162803838432100635790770578772748741745949406671818442494723095204155423107713919984205106599884897576891436516767631979354280271183238229650147574410187372497501879747393947812102866899932580696652417796613755268202762005307664716357954670623606135155088319319550560295775077120477791764957685118142168507142872127094935490490479106970601123075412414933657693617187986232497286854420015892590649506002481949569825989111535590513860769675621625715438366391299941907964727988100560866165130187081611499858557325622738888896606370479043890897981601682419393969847828794970029553310265130382367730630503529821019083465220686223538444456418332053031819311493412669214698527019356006888459009956239918299585440400217326271638494598292197862590445320716340618819068380291801424075697638708040109076086845258510958826614250745207493657127295627042367788196353227893656225784704732445885340734335620883779732562150379750018250245382922457771307477455941848142883692314693231304019136630615095926300742684431354386144393926857133560810252703721331257275752353960353717729110669941061223040076570410348242493574971771592902796397212385416476484622299113877973882903929497995797429206276956254154248223234051591302358240746032074910052866531552484146726428795837410392215091495379197920414618975235291618660066678710757186800330233444605845018243824129394024435865689562136569265495021317589439774752827140346897916244157656158107359889048276804346889333896987921233633639446562527211865933584215116216831419237349776382742558952490584136980086751758647562070905297997627175405836486679148738982473273664860830702332206440600522052045340614355134539718415523042811690491749815834392916358808399964522744119372733208539667634187251848214752245720586439892120433191534844393459691623900736712712623209095470732027276903234824171982504607015939302061855236807470636438234698736028597882259471197230558573367142329901431259833219038018049905011534342475066570632492318559167504910539285933785787144914456751206588828245635550636168268433512499687639573154056690331662429585062337600894687335360246662515942999456422400791799045745283760976972167828093330970866587794939784715800689575701074720786835763790556523235121393900235019474387450167564909333246641113499337015400736300503720926474087520738815816592645685752821213714480236704952613657277608963937994518220268710724964026239869292932468500318551476870905247515527643160086628760183856554758216458580179001500672676292995322956116434326294014609490887139387956388073278520748422451215599204063509939895674384702579116867030342357929457562374599975487881722103359557732900858500844080134104957109474395716169304227923969380045090054402470535122163403503941244490234447762734547665550954374081345207912414340626600680191508853190254135128359045067149870718082680134300082412701828752072241394712944416961374079691513487754272658659882412471044519551349883687503464104733311637829646265173308768544372026616060133462163927224775384804648841023603386655850264357906802445214773048445218642607820741738323429392438733627941012675182021454096468977911958443517583542230207266230967338208270782870434286765154231566898169507991076091754108806636752033811332638715290564945111350732928776018189416763435046475186260245505427836748458910360307930482047100248660154623063939679781102015707119270965124649243425584219354252137911286474665196978315210460301252064781504725785284688484320877387593042637591613961892915017262787600272502711432428229302748729165523422792648431456099485984100687776404999969256459359978569711527417595210357984520402499416193223772490332928488172773380117887016984060098567440990612932833974627285313804369007424109566603041087523886366721465778446493770665934424059146958540648760746596212072167203552402728328530278906820417273047497617142521130239330836477142856141982343219369227170729472758082046520480934101845330571031812226132392270769458950338565221296057429510010538835396535055778403311610024814981034765699576885784922013131704860091178207760065523415215602709356859599983159482830114001283956162777463175559364253223675717587249429343560632159371767333726891798148040998514589504888181081045337496679231354859666505816924545367700412917677929121921196468685395701696491631552315777645739603855245137550283128790837337608540983672817771497675563710626000640860687564357638089356887195150969439198167431124289701524341172555423522420307059364698641489072468149864308627979896790373708298424983141645500901702631616171111642725587740265090617120238945674897487824959603388295320830496323757594091502054519317933313131274104075551786420786286063721073887284557465580673429527736250810861571460800778122949573996869779722054602381939382040478677813319219418987445737238740648679543456258356093808738919022263952936379893731489283817309493183718945174258158711484703530976808392438351202460562250676829400310006647301822358826144444897025171154230115715570405556059752772826710346845694961775669829272309818479600412633541028102166498205413653140676576980709685989903299106322195165138471553412690576332428228178072250563012600304130953128464581407323116797664728357342958479883799326357351953192577856069724606261075799048690178174573923367585769323706329576889034851714837556752828589080433892295624100357895998438555051117285516675430604769036020609446482542236855512108110415998307318141644613530673746821724549125725936567840965361430823390025661727416908183334765468640499065413820640950129108237903929888416139986947940141295225831026916762677537067541886421886360725146812463893391148633959202877248879326681166083523633903507359150149952179283826379499590824058699931775080031832524864710272798290553670270396082769839984615376103128797355506261125930875522302899726641254191878215148995410188664450952865407517686343896738492649325370019618608848153897191601760249091887122377469356766324985157539382694662644039349797700676117081274471972537317316600911762812881969764421834503370614480306525068399272743705986449227849285717192994555899418697991965982105566891399626658514564212712621400427855141404582922319598563687316174209444046039223417516759661845436968095106081217923347956525887189768144706993106737959217233157802395698280092455109380200665393791668930506909042776276844013135796766580401493668866906698267981555175689604761489856918177567777110423420436724455131370999781516678761750362853527763720684991073386415087888728633586001476556761533775695625518785557264970921070372311930840604060787793965726694768690201856415595855331872066452389287941010147983949663752430603070515159792390908764046122389792559454626141310935247685365167387064284191170409162708097716343979829038895169899876838453152990456899956975176158972252042994780096455326419731509519432119572395495292260704014094219274636779064709759898432442440818990620591313520094144326584194590481795936870681740627339651269407487224403673597855746195950312813309833300954591722289740463771518081269700649486345916655959479406163251093806579749800575590228313496173420181965014489351511938794206233428249166349091509777996286918721047381442631012534083870064347406921326392766722798099143569835963834225101622493994264884333254288279141558109242227755628412353312085322342916530381384805637725878115972301312352864623686864985266792416524220149737654949840649383200165243950856789143850034021267991534988054695984052361569581531333068210095586089090223827754876648844584244959385592868730859906382418776263223166168971925224465849272364852888794201297670227525002570400273199147070645214196166787544524812667170788129221654240281293761006991432889838671767312597771995300358949068799602088236664338718074676593876515506872657929682334119386901046072193758198679577130870004792225070559298123627657529031278582171614106692546235826632067396183931584561582053310764982918326389073983637056364865087576225141121773437490115355513478104677244463038610158012262321181200671488019301335829337492537517452232691180074102490208555162946759470941737285162329753942820281047974160509752369550256079111331676064093567553321470601342630583201956323723578807711519941997859843987716897508937137584769443641946864042582944950843086479900546195842196423724451235242460136121591900295164582708777290830156602821155458752498143922625005619078155471385383673728255254915478932714002105567221219371832971551535193120807188009223338970488094291965385203599339922639989932988661442727577566875070025438441093209387618958957161354085458304842576535774602286142337631115154683696528632679197441527405959056815435789638768324865082893262595805718645055007907686590318367271449090383570472929552267393404452429846789195272748978699538525317457809766505923547296331851541598876534695212531402398672600823785383109297076806572945250626996488327567418020428779915265604692340576350108286188768473660064945511516439876803718444683756332910507755060401935340370003462498186662930894782212088033694674176902181561209798182662730056640744413568914392194626785487975925442823833797555486147342715730683796443573418002128226137323940381811928258194324739442743370290936266301110981113241391483658949979411374378914283907436964821824297363445750044419944506323956101243323235345184723061453644225031413049279227973907560451381389927587783759285552550451161246453133239279452077451660556958724056060748052864538709935690803128322726133850580482074293453360016884595522509914620430271829413510628846407713965969496074390491058042307505117277379026653126010577613504260521355460836334073145342071217568142573328201335197695600554401358146368638135154378523291061128935503204847429457017565989458169600172520591958243594581413899304065527067512679673104215650325748230190228085288264448717442224711230286683642666782054370658980507642034097907314086590695855284071503729603662832429880689927201505747661551066624886675777792760383053912717408196215886961045884374369118965795965135625856637262575246290667733192978065136352171669685988999852121859319567398228338424818482679578961830261782084960489356761399482578547656905242321327462825755690168172961213364287756398818617452974474647180781050606971124904865515113418867680926383367680575659573010382189196394759598876716459733223497201838133348187518208338013363186691857674653561540994439993188979705466216935308754918647024453993547537493096149964336614555075071485624584240333688771163483548226576941863758717214134248127217953484442208506431331083686832252136028660525542582764598923050274941973043878686799777219319644725550688950686515386898321321796352477974028892383155380670866262984120817431637200746543575129768866778237588385272743888790815190120568366351021532861223973203330742760014826667100093983604857525423751926070103878295389305939813689647995218458589624047682521613677972303502259315146531072509227012093712968168982192621596974831990332691652813337945404062664615922324936485543597227339480294094999073806381732920135389210841550864216589011082441588958867602836753597756634054495462949778089842214572852627674645863790535319485943502800783613945743350404101062946766736439168262294275725591113406911391944030595152255327720737426498823609360885362184951316482553248094349239029620378077844043372613622717271349528274722696949822623878006465830225654167986733860853383830515797263656935175428982836062770145512308486035614410648258608562461431763868803108163001722262157953277284777104191397128545779789649033703141707013103760615418518222437515281183299609593349217984808046947458853355356979036930412739183831404925475751365569324122281365026943766469927088758717938608719035672141920933396657807785379765830980694392069035211116042335272066332500611724605214880850049854968643794282597869710674190059098177415153319342608269576508956020483687406642087477407553128034038331679186194380213512163035646152912283804163735016482856064675362516330183119229992304442989293563338102405670836871970280708908554414897267078527421785644028153251485301892308916287230790046881397472901587577358640179789811255948179843272332848374476688395460903287057563222204650986294578850587551472884300592925488620721177970439210011883943934480199831664075949195479572816217414918517862698307337491618612477323469032731589978695267669119973104779184007904008090612961240415358347536592392177671513312006633648988280284024897587826776901639268523876515715938596407195846999491693628595384159608455364283017419927074494170921133796795175408467886892695722925319199992466832818328984908809037291277740740368531488125792746124922204803979616526421566069198824824329705912928553468527712036836363030457312249368973509332628976153293549183506264301016380123549411846259289718759395236916247888038147293307860200339204636506800792315686847969400199677858170016975401063634669784963363111342962775775209312102347716766312243327898083774346751610423910657388974381625996552938253360780456587219822110109263199687459409291028879866972113984142796490974370003522755330461894685694709091897995083205203719548598006138593853501977791490724048532769117642566479171150402842425110668038099072697179073516788426037012903246197664408930393486402016284035345591634522347101421664259961040798052652395638918826361191880016617593655174618002425364963649856617008169497345301818286429758362433736010749889091147075108920780118292566584353512912755978037276803434897601594050547050064702787448912191769434740689999299389774652956951029854279116637775905306566076599808760931831963121954204544133319146951768099396122258718502490179594066759899437291738439334224686171722775639624535352015794459477511995451106550668102405818751131834049000574101248496392597967906107287253750157767179561107012268176374820989279129653013023648767883653312911657505250490244951715588702478867369448866062198753857150163953425784903930881462643634799522451039495674483012236672554140742317087235565528392252233035583827371644386873743205581337851640752967335806399947771908576834070287879790791629953260923300756962794492775739148173154936825859031644005322290867228585026790651942831432143776411751390524900194772022241642169634307119410637639466587202209141565875421336861318515562351010688795674965394562216170246483263538745364372951301693956246265566576490418713481697114421768046563546522769408549090864252170709216884432245376846873897177935582840408509136979407772378596532387455257808819985920325453762706537022857815272159563006510198569695175433882634835044777178981474335787360227706140794713393388308064747975270547831170999065413287275999328528448511536232828859584957942629072006274739191381657014471562919349541614541616173421606100207774984813575065606715139263973989428122851226454882815119350032547778848627522849572054141394553532966413479256436388603460189847014543847660308347904848958577098318803706604500973623571354080865049606436695189015730328881511151584868945344891567792873083276364821852656186252701078442058977779453455446598535023572627291710302482706514461529731563581550104193781994043934648404596729093537651305593262452552290727374378678828302303188824993572823411343905490601590305932976130147246431846025784882689213885569351539507513543687120941618456494618792246604637478028023701570374446413045593913816891398858607454867327954292049644264702679140235281362950051949974255291174414548539944185240153494314528227597246223561971949970227688256728361461337598386979549355617144475419463695943334722473529677742736077298061534887764541491246265660350905896429747125071696593083119522139739099905817226317616644627801170006536970868702523877265576911855730299837119685047287572175851774099525592248621899106867124305318768610677408457303985400767757442095306578156577970423546202579474207095094523332002188956291437135013066929214869620456603621647239217565548700625371478314795377940411189885420963170103473920546645570140716196600957362406323506018369300099196982407941867467123229389399556873080341446093303076530585962210903390440271743926716391579655081661872020384342729386667830479677380848919193105281844292975042209501926275956923453835620132672657167656416575438003207557648660086960082451511469387883749708027266107742275972533909691870069508736943667680624763647919994986506388100493319330138441209650797523737885434594180555619382573214110832489310187258558031300503760436699030897329557984477580283077101879092547456066908995085544284987982307069405631403693136044678775624892844327206666865672834148594123919505242157828376533817645456892546570096350158587497054859833208237530892839378516477552654308533868330548274707149613640472302234746530428315755378701303124031580557512457472902962732800286043305035756462989910947652088761556096125813499303398416165768385950299674711434810000059913389276967129497209713671079337526532083289149316349745535251310677995292017799521199796449365692758517466212290444682514263235771200624033387489788633045935498867013504542133326571020597762425967553997256046378398455501835148449646035830119881819605655407358130592910450665943761645966984071471197694647190791138035811896351631795513199612031367487996956421148575526971453633975526686309929961285260098419887412022761337646093963041299617157998060505305556876548842156465050379618793806932956011000858392343591334575007070583285715876636888379441487825963795441758465185069773091319554762930053519664596648785893988432754584549629599688633488443113506637455198001485905898426330256405483157018665566199672401529350812115214909917056859522194727147748834095736426721381116513749860735021557736078200921176621137152319510378859284339878605390960825518713904506346231596829300151007942864996114586080834964819255471603555322077051000019835338371262569722006195506562708400097902955546237119182837555443299398663583153931138842815479543942366412211311528396917768158956582355073725880435918103470753299213936460628576884642433503808794932928712092769484145136696190322253121734739471738142016064294769251103255470357121735153927777239338550086329652941373714019294432314418189035015463209591074816461285053119621933085307579379707369560859135604488699291635673800309774659267388112335804272785104528018217758080613897599057138563059706407497948492813695260075506199405497572299704098300678905230686119401984294842810796882616545383428014623471430701454461536222619173618933071356533084742446668973965047975081899322084815931256694628056373386746941455069099073352154235602830623416385898771823105744689343076608580447927206741576797084223684358578285725099124418435612564719236464209304534443377635918889318683454642494786077959979450635197154156927475126566596956399350794126891790384594377065547414834742726718092963335845806817848620030256612771927325882235612266043050830771576833947437233818736727979871804465192230580319994947754401266769625325522008778415733552496344126657306460349390635944856870713953909070833380471113249904864186858652369550541009161002194293798819207440991807959043464337498205206044289496859065615747646118676258284785971329036718683797434651341396616534427564810441444374691579144012866155542570681678884259597306517890263339979972902830987153902395569344422497148822950115893088114463220549841003462114064432887810211199278465215539060567146641988406758929812695704051025127088737808445009006654025435548988793663356804084058983914107117651161311476466965281075780614240219312938166995529494701238366106653753414383762454734470259764216880999202483537589215118139976682145785859887314614893805744288343284126305632523953515009345432602625248795164768762633809605532588680687366309992671138103034747682968353265379256386674043330457977005537944903263049987688813894507316301056840223601014310965752046880775761948324022552213654035855484844896759958156390736686609865688727828525990516094870795527425261369448932225101494462737869481607984227996909780004213641340148277376126786169738967844330797612957803952848370702689807156548597226746136263489545900160721027530785152909273134510896598963865509329615381565945023328183420168036797358502407865548316538439983985766803653541569612912578604607507335276360692875396176903577296141954475750583232596612833283075878553135368995226548033766622811659879401670636226672942433463758042932474754321337192262891977673536762831447020724495604862466805004158661740731638757343684843643574422226370494484197897188194850930141124974124053074048783320473963608356637930565737055811800015337304986875789715513462844749423629657565100067993043998430797995387694065272769986740513562806043210858105205270571399806077698370435473904845770907362294320041022668985803935268570519296654119920466871616935288774045408001341344408379453540064396448531931174688104444744115284681262779279693606676236473834501711689101898401669619479051391156333406163373500614225750747202239118058617484984018523687972033617181112321012609661340152472871550373159787154840574274884711929990859420669457469066992999321465299006720648610850288039065732424344783637905069000123752691290299064654288631009083189414456389284458850005738159369266728134749969864228395205472308764240749576069817040378692915992611387641144305880176294181550765616861523631165647303884808475876545675860113303384933701219584392523963954234906171633604672953516309081886995148889015201507952783082555800548359297142231417128148141889266739682606350884973250274613052773249714983489932933553282166210792122254362721656559652375148505826239907959699719969168790810270422132519904141148007999632968375067240680334938382751806170275380897065167871336216304045725694373106795186200558221221539056953219825749055515454783899085393899909562841186139510335854119192252514065714760503222052305936164971804468823252697967924236417159910626811008355574314079192158119573858766374397433576739855440932233714850728205043399176516984421618463577351568224263829578947881297158066950043408668805683698991730535801289722270270528515096391116360546983700112781090701524730024248355059999339178979678680064985711519516775837280911622761186745173250920972409769972476740268592495842645876381997578800998153019253922678884111850933336858112546195052213303220634784686193899192926632063425171947876182996373138382450811998951770471159357016150979604648702271005882307475231668830557907029402190584010435547814072675636832970750066266729376729432956704215114950350048579401883091709001938660043609262743000374937179033489231666783569254059661821146046296324164312985688959669905203046525287604446175070520868582815490468854364977194505401484703505815868499714879408460676850854929488176621765462459435027824196400693840144391516253424287969364065441832811270387251372186966067521842210047985749398724013089040905280716801952475153568948524174788006861310558983350012130472533861663698811089351238258588453739290910432783315021029694112159610780425766586724018342323049086360359841401384632765674678830471073813393996055533230488876931462271331058782412639785272532107813470197675180561227283251298993529660316803339831619447033045309539106815189228907149963376572857847629451250580152752801553782733586007587398927300442593065853222949026886962995358282867166462834431122493794844962369816049124642251812987849477090400351315180625661854555605716710140103340850411670567910569489205026023513514933158243319433307266456680335530789439682515015114366517979488263252299630483813815177618337476098472390416228731564778552227708812393490397654420863330445529594430335353156409873197616305233728234073959439309515831744611998361360921714370303774527819646239094445193393918990928198208561226659266037500999187975328617334195774084565808241059589028645097103524693394582395353426799418387388201170117700577880911773491108592630842738847397407291825401490119612256852854182872953175460791017368280069516110754074256764306071391823849956065188170871020038379819399147030582674157852526483164192211388712594666552818489001272936722674131944008817951677578851450610610703008836961166677010931397455607645843238742564322761515045342064661560093389729353778310199038708397734284797017274458007278902522870647108340050309789855109093047616985803081339222696721819549318312706531594754642488427555158493328840157267086335125717047374248326554661991055641613979755156995085040463142288035968447836471440923109515273237006176884804039908222359581471003416909377650702318141615505882900641529433520473364342990206406659630384150036232166273080364542862983150344893076295280515508594590775887650173703102417520115048315097691290234392277704599548351712647382879869570118954969590644181166816626632204749859846688831931153566778322524380384903882010687839132171230533894659413523135849985617709149536154483576146683433301106094730487784922548348343411675841952055359744528681035338655145750697620247645178782431804016669241638943522122664806056935627504796402138158423781593368901873372967322465773774045743926998819039765478909244564677807876941953481038329134329824925032533784981833098699526272987435267115309721263457957064143666968375268798697932488014776533386132766559100458928418630972870425366594813423512431436132280015613561043556670651295855342768310807961504807529671560824190096792785750343597689431942760784510564865957798587958482000579458168476536028385034376886327025113747896882620526227884482172656064910867741772400078418399926165673682559372729285270067774427399369430159521273353937397450314374060391725161307516366287119122924189420245799232036129040811754087156899346718108593671933513294022272638702286647859189435999470324341473018904475230694049654632807174700169494789246338566726979179037507461189582483404282003629717046080491258646667711774273339746101708056667087849857683326499356200900714571325997021937557717301804330079415953410153147199599575565804542142044766500999820839882590368609029488439259697738771767531216235866143131758200284297520505580301900949495518302137581590585243170632682567431116553772419602329963390385762176245647451443343498770678034109799957329376200964695946272119962441204808848911508887749181516714417458496267111143842339945366525168944602680841327543670458258275857665477493479694290344655670064911278979782574836758702022234092330797466607528419449190997245681598977845538817309438467863900437200266286083063177973496878776379682862129518101329657335049522620492428873065578657868024864956007846159498602927073112553997552415355479111573667923512373498282156608790509821151249019474916428102431499595348020028893973337869116067609688611497736199076189221198224862184522380707260269679271777474050538929209940189243129083644335366382307132347181868686372121677583129049740769681600018333244197708960434358385854929509760775462911363430614424783546867540518266007023840370608623837155347429495679565162213594378681953622524473255045248028140800584995068404979881329716816224770635459489826170354314191304445486066998898358188283664992886154872195942970732764892445835641548064202129344203380491066810727111910821094775324960386062638917228058173907379201119213647264223123049195310544915174136614745879612790329567406982827863693125007966811703349747411780971496326929442977695311550893130653770623581121180621325084054136596839409525531952089083977195630225441494184177591930102288300747064015653942360412465065757802346184574688586349422984465252047399513200624073224694615478456335305970853637120417259961491288312732707401483001539914766245646548611227757891957146083771969072365726988919743913064762750241137292541210074360704557623173461497726047837910508879146656091985571546463304623456937547072592701803495600315342934288805314039554168358688577212828445092257412196609768085346577564677954489190075758016795559167168475508240545823416804523553815011595622306623791626630974203017644986320507064649566709500885274034270347694492150780361572272147539951203982241371827543764393460467977826821149784745861176917516052675289043333406319025963152706522548513550543402696302802968128840514121245401258531653248428369818850633010814027060969103081910355723268536734032747001755139122985923535471097346601966137678642287496311528358486520164780704456053361822950988899334555120080010244059573612166292689369339793587779444163883046941668936408933106308149940925870344855471920822222479882969024654348479812128808779026694084144490437825230296401066653334057545552724958927174939750625934981801272101501640953606672846635469863796959871773409993514425525499570609466640663241265879100675309436206226943504543189463091173442138678510046824287701925161504602604848874243765341013411111522362897707778058752635316079218728767042313064087357785850068083351942935516723788067679045669637282220222986135177959737119502830403345154924117502849698857694778150128342734205039227230401054812302848308829364769916939049766771884532358240385319492026364341351532600092640292806157614768187340706968634012738472856574439137171852904412503555094810319848275170002510075004667970177194340730076409557820119089713111542601577322825747824151697011307552024284269229864773578554351299048399794778109899581270226505713511198582187839844431255775315086926259409480531037177871220244263317754564280064330384333112429260951656179374414392542761502155361564463948495907350814714698254510679166624891098064825027072502719155401188948778763878188314160921141535098947884495604630755106805990939399912809200738245286555813829832312303662011475681260320045091367481242007606425709944630872281683842391735383655683847829265761355240848599682449254895775789322741627235295791000330951343598280300776717106350792642152873103494235486713717395359238473465704616574427219574552823725476061219304970691958673764552522209973850651066001252562618242681259339945812077412588172594939219941465195481808181699780151709589875207944218329270907437114056284275104464380598509736421247118570806431402228936926602061337710690179888510812638663553160181810960424387081677579264172513774031506096627522091598643133930935186518666257407994010584474232032904742255414707851546131033213974832473051269743448901493459368652970245013779242612374464043303440439585751285752393096074694969011104916159085222772409141111826119893019403783617917109206584063178992209238149089401689458082977629948731163461974029621567781984352630106718759322383492196354350077890048285994110443870653199575350743117189429629865651191334076420244529682577487264222715533199439858141135458355134218299999533104261356824100258001887238894215204119780119178283051947399580808699201221155490224660353270768487493939403133577284850814000436039772830915041424440799791404629907105978623209138500173489937933393858092046710922227582531466878841174727566400368925340966300199579652030434578979440168116984827291876722386462293570282336314464500172085065029968418562647190523422367417084781748584548699612745614888161100689391986345150198958977189675372994950492342948646647644795688304571920208983748313202830988962701910601526582606463791944207198790012226366379681254751539162555488501287552592340843631332831390339157774779187900376241307858806573712260654491156938179515806555748712032310428918294109610464236639957163372187346105202894173742792383103079602484657536245185821580293173154040470923263557612269879449908426350442427038084033149990484269273354853949842327273157280487050090999612554951971890547829922798807492287005525313180358916467207025402423785134654783432583633401742603363672514584064982010597241208656336086806992353696164700542133816198674770587427830321277303363021225733910142688088312233639764856528271247142909414886696147337151962777046825324658880165601350123249364534879090456331397359428184276174860177231077289296492861927617043913132345026202800687942744352501870987067835867167791787298629188368471439405543106121114290033627098371662904411129873947356151356214465203203371882734336941545357799595159373756586881215756463448034212997997428480839688084502887880226259789209398105824188052965047935549582760911412397689208618333546347379464739729769462370990387109214064836272157174496712943380625840127636790438976906762394210931768869513549031289370962933987444541372921522654180584774461888702704702671653853995076466754586865112070378555036995659727896454369840031647827758507536565962492174895810293156571665173032102759785386836584749316104723583778026291921269884678088434566677095648197770262880321776671539349070432716080075697754265118058597775561010029113907298020849259390067171835141061771175464963802674751508280802325809544605569434325052253031043743108177620189102147547448969271681885018751845440459781021381185271976775940993715211137754610673997901077001351012959285815676152698130181666747307039930491076394085375781316344065817986121259581853801672236920982827093917267826074064289907698559829537396752233655190271839501946863305899865643870647443338833146238565337929116300421293622388343160357638223183823743392950394426528930928487429995797895922893818597614151639663148784744219377744058452390882395775128608925303960453110517826920977922820309215743847828681410458208829505931944310463342850786511477333343616230427820879821154534504728411254486128592031764805799403251568157069230492464726296187117970162087526860629389469311052579419853296511612744801245449350658882464901875240625969998416375161286266759560225167697126568517878181292955193837542346466131817721373903574208076762709444943245754267314765525063022552182628997361073486728459754555710302757101076709744836882626037435857913961822328691124405907932559772408110226864147538220975149272012150700205386260124624320118248439235394799187195554356592734180417649272025443589650688571048204211113285878288652688790972033536569217144744287965119119466441289825251514658323906524048151217743101122492823951716886947105170793373057703065618381407136929433811401878665842069385458188418215235840873652153230163129243077760817306862738010109799607605529897542648253664450238457658910751030814272705700369012405385745606567198755024559712378027502005867757375221866665732015321507866600173609354991890723236939827034289592007868052116970990255269176260012389241717356314477589697425686093966791638240108502955602579677334495653842296862788219173946897637647241632381651989952893694899594439203571933762169505830903877676673165089113804142685911348448283349377858844816508599443025600255130047491918438036884667799335254427624415861892299465887314413848714639394841357072317874594568957358252828817557847636965732358966624020350683120045122736242824218936108885205916249164194596352787033521898507996803266447588261778063525182357828928420024489085842848717380072901393853795611439674668843603737700851497244280245591975822176373243215849430489502762784784021864905819090044790884660983584550044144138202982825562780655754882937770835404628272599273160243191031063350771616208725832856275006024883396241823470879722510995537919987381417877105069930325976542715551837172926125175475105650569992586057040391605064632490734189490670850816265542911256593120488185528112008207318967425390645629972870628554018035232507837395371865279514431677604799170863315308032822531611147575308024979833309462854736552231164876201979779363349109973076209108848759856289612508414888901563117054361431994458365296572332755399591465183239696610554187326859580850142367578047723694588815265991838199744910903289900470041244196289859534269948866215167398104556155021381527912635193706482710559677350223755099604948769075044070663912183992979225089340175248388656855656817291251843824130358347609495663973687132041539925545052157400545005565550845109892797299429593305587656481315077309795150529866416089035247707957094419855770963879725336570058285445493005701080362902055472092071108413340362197158629722435342944927313941098964513313901916443486441221641270475912304570015000377726498920064902959218454573267753784290386156175938753554317882136814127325120721797656041999035972975756909320504771772323294297092072258743394359278459687620449869893516397968908757811379971554964185682103605286414853777830892745650485377091196118007968524924631025688358772465301265127346557665522272977875094688836369411716915256712639660164328002898182209335939821769964132136917709544035326612464054122882531176592872175666979249414616155610093782498192859511731194273486978863403903322809719953251594958891966116404636055438273520720281232077234838155072364121735238931934504440378755186644322556105484257001894287524892590342239334711129945300910899378039185698352341996653586371546194987906427632005563347921050009153076715642828004026411344600390601211150186880315384015538382412954833621803947347098512919781784808810867913369247845040088621939611065068521334733803213219664542069114047250827558357077406201004344995841904007148468943946748840427356471010874961344941092056732374197078506906287296314056857091077850103024824195615777548818316909014532669160778155177797288126062433926441544527107775175789783717985393489081461388900534519178234434319481930601833419744088950104307861460246328846696691148228644943495471596461419673136904280159806229541601555490092444895373579631434831224052882831145020367013834592563970448883122090950240202670247015590444886981380074983137118007639601666093849667385826225948964379337715438283661626618756115107400184120729355277949277280305138216451848926987018980868920205828602089034376343378822777568348663831185467193538654732365913993610548752513335589096427601623067658343382445384406472949529290535557797575423067703946269678095755793459801416547088102869970382067454711348151298854668056730202327171127685298779547574460819909686568925086380418051438331060519610925608453809312488322608978986329951480187000051056638095595018471933189125018104533204671770053187142965083892594856689337331834190913275486313633605813409906219436275382838983387066547229082034991331560766212844823078607588039529574814591325119582996756443232099932123551415691009686107690179490006846197985554225708566293949370073000109482767863221007291308194309981779389213906904480565187221136798461508781121972905333408355547268174727274228645834014375664306444527213592433775874531207622610947118054902577967285609567348588118529867409152828064300552527354294808213451797810776781105208579635955776161040406994376820509403063755114648429230499811116901353225605363517827138326127986957682796464450698877862480677738447451902705439924500942624470081381248594030704328935977545946520130974360057854069752231991219378761057812920422903676879621419282502338587058741416434847109224813455825981623346207744239059148986867675569767329372311310734406695804697339754778325493908917813067648887369895059861547844644367906512554188405797791204388690764446778509986985623652599321801487293243543484294895451053157862110127030099399889113832160553409822856569471431286998511837359741527709813663231291664684571498802699850242671381104958798923739013902746391285759989074038617258999031330519292321750566200230754225079879181404287458150100357545501169856299553683870197798561234414881397009962514198041523636707131144182480255463123332507018102514948597326146487944052409039358148236666195887048324295258086463133870017270510308127833395767623055214015810435766669754785315299220150356840517056550969173774041523790217084713633314989591116374038410685795225298937617288900874170183074564947295698632009847874396353336610006587428913706292322794885781374878252822470394866998775739193852682818719888919409456033956482838954299409896776050417083928348181529030806307788743327472314497375116143068642866736671495197916213842862728791711522073903465767230169613336147913380795300487833326036028811254896368735536398903459273207733928926624666441212036936730124042934817010757553456321918681173489059211877872905063910860214067278619020169561739064231705236360035013751811056074333009262958183784985798398910389786751575548705008260208079382644843416013806586058784959105213678907715094030492709463620571370530188655694871554634735328904273443742187336620320818925954498957057723439967378909097809461595548943388619817375822357051327876268499016634912474639858695584331780074092442452896475393053287088002105754736774661382210858453080040892438469428625127212351614465214784513690266576845105710191976587292486048683552036954558950482926426675677743064652427573397373863887211163465960120277408409232212025818143785124737558584536877256107598153584579377502604642011966037700205801817127990503298197205031870797215349133244278742973926448067491704822415984254138455052144022228111255282865179820762908565393111030352652117997292760840084297559288343683391292940210765183028540918164009561872840716421400679553891854544730716493515998852211705159321777323730985034389317028400494772972181606415067689623960319619675281061423534103710985505594316891880477058504204143647898963840679801671027005230055873962674141545828358161770170923753856650055930420989759981118160289044208958462332378926697528527099287238660063819723477476878782537835550379467326438490754293747950250412420789325531993320328246542157005994447564357987482412770405748834107730498462719883079045158537290708874651698238160354723867273676410279344489295659562998272086996140084796302440421803837395670224995325561514631440896556249134145600067984331777193622352877918667718309829986116508569737130398224043774998936432706505463203360032923889738058754880388906503046515682786067312627483945282634932465299515067108781081593163244109525576283152408979850279191079787429482878732109188843643200275308240838978980293850496182547072667857612303706446277991989545694994871899957874286120254542974901106853681913667929749954090053884941813352220310089894997229616885775331638567606972964328509461865120484844023713968346356224915109770291642419046557417872401103288511949041955711952529350036482526421709821622847643161877689705826388134583750786818678888868086819962852729901685170348139509195560356440011818840126751754134482884222165868315569784931118076451856648654671636594543892561582535752949013546881974913652140301267864501297661948695310090351862261653644325660556436398569827075776754176394621791342232851951511363953357500823850288345262428607224857806723496907183083414814887493630472139439144993468153301582728398288930518001474018546379942661596272072976729251645188735666642554293919053783241894287301853864618813116982709792745195395089266616693968642041470595371527026194825357505099897951914198478112725102462092740583110917361164895594021220563064455535249852860969262296533517268847328967169586953808151774489585297370143263225704777054114633354706734826882906501018846606703289864761316340435324360456829989565111913229903170949947074855928180660114622083099872135085179584672989006101359096890171142928464913835118438089429712153574736288205971134310620190169896681644043996753709506574665736341891483264260389973140442180072522654227805134017520319314114704998299077280812671898226396115305428684611953367780065200329051222232549266217796594934183557971354566873977033318353353848440054765197365471358742617400682587492261181390660359636015569430649173557112108805967159049928595237817944976378280636482777031976866300605652686650399922072261963961639280974971920216832679463938361066418663214645422305066949897947563875613465395741344131804381256012863064597857834349287042901476160108918205052314666704385210314139774848304759604164767900856654272085629544910292560392283291882744872881545217877843337551430709878919795963473848689174549082904790699218789480245379506564334519558145362692001725541054786336996583118328335766685636836356906833791641160201553968857335286015193412394334998164455294106032615391828807340602728034247716992506012041488955851158938412738580930731250803053871784921713807326878077188042575260255202578444980121082069547802552992598320855323134655034762694582935842093992337551017311225800303430119646254081133115149940006959993481436948320398829508588789419999716608851240430800253487165303055923082434470297608074483434083770938169680138030558466695483689442363856099236254610951107631519091982111709148125274185692081522121138402256867206791010666702061038576551673474622091562013299438912861004767976119793348019935452701407536829693502220307602428957130763000409675112822676437334481026288990941990449751945250864326198638109268622304536044668703452365536125418734507549837723184801280070407912556384011112822559121889213418042152140348081561183870615489730171805822725805946426887232012292888100121151815263327390912688913634200143853965009804366931086635367208654438452181712725771867952347870427333059216108777927048999207806348684222016510872214104126426461266765363035327108258765418080169262585581393460519456189456485124032001450654499339500600435148792103861294257834859367815259781998591132119400930720525591017404344474483603632368037197948161977550803467704028077712043532431977475669568635112431243308642037429600887703884738888960783394603860598780279097949569039776181643626434297419627544192094870789601087488016441612579384561830197369020001310849040793035048310289379532949467260363745529840766616573057209865374093769654853600910120695117037185730661850722188231922285126234219938929840799464747875869075848693945505561882411642664811402985499295914052854386274444053611357772195494840826959335899073427466993580252764444538005017384565060367579907029216418495607183805650248942660079554032492933940296782555998384437300209178255672229702700193742951389320512159707232995457256465691429895716992757610922052397657267070750192096555700606332815736905808522295121303508104056193441663792714818347049540117439960970885656911984846408568593203821626896741048362365380254889543013486094614640642219306513361507259983500689830214944175125749110955581635696793642941541375099813451140494270797025620563979218507335896558700236509494301110837349566214328829525604896690943194454890992865640962986638423223114327147439636762459589292610577284818913542799031364768094723738207338757078128631957161848878492195489981507215045796497062046568632070962344506096060876317922341611890687446274587623154841452149681332130819805119355355380826350668958311426915771450494771287096020635877662299721109205738739226520820820291629370517872606959835502373169222618263194655204824340312782610862654618435065295399112271732810281880692509670451403181317399709385186177587039773327502331480305505687168574514836810227979065297916404026391754642288488826153050306069636640287820023356013139819147361657385024304686265778414979408057763028956912992714953076999017258015292306465029303741248369442167043951630573875872790125452975429864589871390935387162808279380002006518217171131932385792857068533199818162083059590311190297713308023658071021292679028460606749932466873523154653180178244871593395463408318491392149242687995824588374472204038377651120066540421237956304380469380374228024862705721637917319419999215775163858828440187691112344971952496122921312144435236544045339470206632279956748691764063395938168213251084967476417598890173891892287100579319226141204802355288823792826075239496388942676764456482670204702286768484478781026918757156203388864259105360498629464086308471623541451004884031649273067174651678252641178882764610283053268803043545322201536181957596125674132621816617971115780464948883979966118474558371379252020925293592432394878371005780476983280759434255224006335047886939324128745886616996213543573227479730169581738149452784126433198568110709646376266261495005594914053452915569955785634035264181948455119367851477248472879108906112157339046812444365760383904052068644477483726658824469994838670962081038710264736248233632084579550832026759942362092186297922339265905383213726335959995003521329694405425272044493110175278740499706608614133754074214685939906990010845526167812017959564253394160912792165646199791837761944310716097156200943315779545032024430189777116255591000327255208581973376656009237047792015619885442307925044450281548773469417202828580161997301558365736792907173340290820942659590014939236721542409449180452990980265421709427181892497700058095051762240764634455460826176630607719365602800360107954976675455949170315844284497480848360903213096441363155346257122633519565018977816866431407594906940308202688799831105312980391851119035882870626295783346982043818514451196883824515842538726353919773301870638246501455640978868702435320848424215003447565915224109169461024450296169055929422773286484430847123146870678927442779308416847173102158995504767221075466518568424267030344699949429917406821008496738405649322401322561022797355629105756356945582508392730470576723446187917568325394177988090580919791907860961541421857882305497630374462805761725467929681616028145925415923357881033340070078051285754208512023748939366666015729025871106620057858804223441835548384963937846256835277616361982355977026337157898390086409886209242395736961661274488340251240254630785480831909805167320921705662382256492968497655819843694605831979868943448430173219429194650460254484071170604709236219561292606586852861701822859174205778865331456129406477470914393339667212132144547548602532535404747371064197947202749292435434328073202441806009823987076527957696639775210795427438295577118288304255204927784002350172311079464815710827994209003832213154607276938007133504274056537770188409685148548792068387044376404806487245497913425410017646809861300313289063401720253655228680033124020402032425204345429384253333995405934380365264697149887174877470084023217271854679390325011529799105553571480178058286274198191347441800650245410733413641025410102824706892932583405178370545064224131751012398110851490574747999556155159669357875734654821612390937798558517332261997589538069373525605372019448636344980706325038097870454265250378147019097816640074027555521804903987727445967303640726167644305101348623967862056593166231084611432009153828624146638365413171918784404030966717004160011696055114372558670945116853480154495760063757339026477988847289596899127839959273395479752863154100318833910489086268763066575071085671505741929987851566671159602003233809223795625299234795643699534962790875416737456657577766166655817593249440079708108592084112399272627780968036541928847101641204519067620130466003328147580945084440337218025954923227040393600165500710635995504881299072316299204775245919936576946201258478421743182545844726961008486429891734714009095291515150755399592265489511943125779487496831683157895431501443192075334897417391503771524245949610183703166296133289551895919263396180245542032334739592536223994862305382692800328450010516345361067679647347145936413657403878029877131516079646079746837676631043476044606375670805439380353221801138074602810891180105778185673659945007987195488841107846565804290784644479005417136052269453812977302257128533918890157428996078076495247921325739546134167802277070671639874154437871983136626469538704469953678629931394603707769590129793324100981485952161091413160450273796311833323009787414886181101429222451922526134165755956944137518949848745675788466608609103811296004861396721388222139694888539221098599893308305419023047350395171847464925531497301983846139763805376622457499849478759288276556246178722769371922272982935642473792830743585936453849420742003319503167205275821909161841168026416147984405099616645329581606151459695372802790281218445057280528497226021362563753331199982050660468867384214865429669105782012623936875017187856657512530980157402897491641096449022248309592265377044808497138422412119821368433912351623830932177307767770783531518390627115730841623212815246582204754207535645796654164646715203499634320477613781710506585069629820932329251891473916687181121863832058654980668556060834040087694928408938065194432899411123404350712478474132859533320260043049848204695293275659422017986297117293534430240439919195056346934019482062285296218653628435300603018275309812049772834031984783964899717397505921731766580694008463962519028351257533581983447391208666959759007852240186246307832345930117822122775247124236552301397304442077888433183048549665183746524654036382415450453244009506202593644531568108666582059579713825423658393105419271855028450628237309057599357836429067928455090715706643750455677398731728294944158281382228275186276603012055574014256006954532986873190850725077153185008339122436941291338953517543581960712984813319433257302062168816463854966974393670298968074726139550256888836410952458956563054920150212749622379254510421358763932592800381497269014176812081695125197616841801076374636976441488665812268281800214864888358707974429728837908855714545809092338951106883558127002786779162520528814411120525495651963461118400080858010566807635899325702659565470943323921804314093387878626240421036901962075486626818945155536731666854478126509679124492062654453592545032555489551546739026305689564473460823398431231831905400433754943402270585051248145930100407786683028132375337743104054852781836660504573580469110514171176358712791071292326354647292221834131063395634018886810464716792274842431863693189249089131347170989401619904689622454113757355574192239066138669581432594013083776812193324271474970207561029272296816535697707531541644243180065885877206624242036373001814620277091223139506496081319899512632035792014902770845476950693312751328701756827844031579758517355460710927870471484502904622131290069605654067742124051690055506782699405929366065850487416683075510491235486440215289658964419081723608378206378576600144354492526726151534640785998813193129947534417631973737292675993229802856242841927510877700668485624996981643539622003835978537270956409563230130093159900859359074612515833810851786806606102633914263293597188485603132709564851822292500165210729262301643448872549292525770621315202501227444499520019564749732216422854909197727284209865170506956689480854738379413970407158723953754802544890430792332857002469826473055903055159602242771830597808025178577331513167679843482453445723186058324077464645772229184058161029808269347161258328263264202232252234849264464434275262750194345761054413407727635470307294770954570123463488908425740872041329643276016245320400313759126983429784166749518617421578986898601596207804945845175703321876702302105344505100216820413100654516857630460409724144587220994806144969473545374783055707733851262838448193327807650701314059171671205834276240802864293854263214967344069601902908595540855009150391910941088513244575948819825135066773313196768907029871818575093530587969232282264605829414785697657391238139638053080535826754392506527346416706877939184438626094192701534988882017213933614042493146572202138790840876160040637988406479219578244315370139332834104518587445572477634382201801351592323257612845849346186357437951390994701634188211680312184089582548459104528762440956360537876380721017549553128771983924844562547764032906291041652934216263035532223894167926994705183244847609081898502819347537474023959432593820957095885414075454212128797066928466531163305042391330118761941764851707394404065038508252244711227127382593660004131967791260471259767747545134765355180395182713474253143334258482003286669409924798827893134151164894164979508209224130795342889079437601462897238755721457346517326671813635900396212575104582982058581579218935706071783275497368684979524151309920747065951224161501287329990753866882055112617227697777068963279496083550445087050349390512419691761393416696015113212822691058862039822825213597514877154566487019010649463936318227314689623198049443598531504753078692127272457297297632848356577414731151583588938205857717917835547941618043544084773633969228599732062151320723203382840825465690778172946359653685810478551486809064864384527527516885865408764622731887584234505421174722453562062303507638381941158057785603515770606481194737580311892825293533881654957928025179979896302690789597541223321475274172102705302576622685177743141985013879637851182869959880854103076781460344111628355352403327335917273760198536810333818044121008788654797227241054066424092653882202265271444951724163888639130491228584113824010429233405445192476205622323029447796200714176890223722319441392751192161652671212709602999457153902719798906944532607304143630831252548656651035382085419132852596327387836517031053126873067516969224701532102001328638057426424992624828500552503046651090513115991786950615489487525987163318385266334722486083821857156711812785848056879845160775146578896184139588106670165337787595986237536773443279213179087467052334949514666217080591835701447222603893489378574587076044582243189276981532837743202445280990098556948961790199481481851748121530482543900825472165259438255754129799409009246538103105812445694301488353869457759425337108291440437403669010926720208135372202240851032087579617245177548407841607295909773480363549258596533912361609628723344822647370475480898772310103051343416711674451345301238869304401490622649346485507807724589816096218277814672938842283267724503593576538001887313208135508899801353378695424660199745808032454389449568402520964850273887000793923360628939680551048366375015095528864330533182507326378319345147126902854540814554183190499136266677066554028812756688329268790611568833469899352252055585173768227559194114669537240257654553215403038948478485922887642781318802991582432445915608293048834802165311136313689322213248429228786952809259508239981358640764021546529681606973717296221272738072646789660810712007666864707811069503595114525001948833042758180520561370471893975997947347159640261363902343477847216204861208521062645698171144404238855358451208642461696262299857823222574177878688919434682499134796336909348153745419953539445945103721354213015994510941894990869641129392996284063291906265885255994778142048828199203003269553942136823794480406480762699527725841029742565443757229518143578325448044831326015325364984575124529948258826523045966241681318311510819243247076741752820822663627138767427887587918574066689572928271435007975359654764286262886177377003140879373835059525237415182376115856371301665346834132042996476961771779690114604288431922852530568079325223536447925008325233520099507838457733187746455586516997463517583008787156867915148279947160669284937627169683866385468323926122638380256779974448248627127588326425923197104972647962312581060559266822465096750947526986932935841580168468688001743162726614578987237952818258079222843467022209286970179035876332416456870166020778898433334286913887869506762387076614260438482197260700549768456257764348431456523896666000412056510771453314772466924665524736610372721809649213869145812834198447827169432001028933865166024601626211471553783364399956313114472907723831397689417363725960178638167122249795360224265577828347018416686098979409860548698599767619359809826053421247503822718395899296644133065858991335899602353050963808892825905453058667349246024338596882465541468975949177901228968147891618834272789507525141834795702549680529058676773432031082632188930179834773040157434391041879734638167704738215286904032189919179768626076830632101741348078308207772853500814161908714007456203946298613449009740949017286115021566920648867064247193049376367932980291746434530971535518168603087201659674204882246122058804343481521950816506861535996766943135849109036240919930178939276326564694572642605033398856841757840508367203190753696257675707645201124504678137930199136948284555292237575452727597979445896842008364785126269922882822318110304199617534897590120018909666898601011900681261840601271001542579126320253179333907546074219408027326206479482143436325447041330524532608510256071244526242315647924791473382319246785574613139472035703607221344195690755279149187567398669768925634000200574931876032853647885613844861078437993696590201600620181133375415731051226409017526966594091084776200421758876368218270831259136731045983785040636669045391815708011977345718314581643607891396843798669062904969604926473596070400983792046647020772358809411927333396983756340080363020956161631607624561854359032102915558554994532446315155090700688070851168693642036626427574859667463222929239922727958717543124687302600089623895432225170461131385235870227965243000130929050879493346362458291780635517141906463965109975706702319733139448809945060354525029722611687987663620805907862398554473034784589194179908460353170804919365829560828191291780755628222203782152762272046038787745512701154844254853975662173566641982484761034945200020176381766013000640880071915602508922943291391157426458183548273106844436226250961528868248044099366298212310355597631084501613497899564486604634022091463559355426776213216099550629125731879832651468374511942971702646568693413520372016584978429050715563914502549810328246969928989837279846305930994402710336659706614550733715682927199742714038786030947656909149122764571562238778912381997651074151716642959370836152494131276381478049768050290921231207272763426677291647688298567368998682706055149188740880373709805638999315942237835686022939660472442439938905504804989078461415795101745558645013398580699588986717495322499973953457615654514625117039226199026492144368855010796868000187438862578129071182632177965223654327335808773169381276588918526996475239753528018194062231051249440923558914588906403726332962687912627903611923641103968201395352078080015245625400692540338700867334709007950795190845093889046498293160710122504902253670701380119902396200246863495725297339228597805154010927689381116527797520712743018150048062719981496469219620362679674174371120891651751304347447041112767327061688987391764258648295307033453797918698833980561525094741425019412681922696262285270531019928373515520313558366467315341129684782107885570940908466497696584158471104629996744604444834662628883878283871616507828804806848401729569580126495806552920561902712708308991366928304373156380580695963627491489892873436068987700931158550138643376190340375341770401196173019214643075918327034743395277497909972871767475812944420698505306524065289179486558990133104443933511154832844702107251066078069551540528643393113653463397918422879655899910567118222664936299556920250452812406966704748730537528134618717602511405537046796815407258937474011528833748934495547549523820035558293295906682325104746230068852547843754740059049970078708270594397794807930187581076074524412123327450323306490042307189952553461270587948321295299557393389354701932775932207235094215286633438075907864261946780532467495578223811075025106739301309849347213855400364237775888494893640574445400787335702045212615723379765729044011660703314526267535505298330035222345759222292431408365354705988161708965825711609951873535378739642293460365043763582626801115225761429504851405910923772358545789266354984378740248333113228771687724584158815657881510873712696028364610716002092342086747561109944015644057699826774877759877911248743972767462619370462483776462935380195515266556179460878881029702570040359064902736247286101862833458638754613548405098518344889057272450036238760168371113206708477576084632199958689623073419120879500719418841557318276933901085291354639740986865243187100468731748099592429596183708857791587901837490018233702120646521832619125271735259086307978279081148216517941975634949600005805747982665322740143435692267701001728007857883840738253118014005345376859340466491292355412483787502008793272115272409298214742970612462578187621368752919784561061753687564172341560536349695654780632577250215556884382178992819258056382123323466264203924047371637810856218691546471952473154056033640184935254114137150061786087395747991549459070377729748637126740166731668271309063349056086653815000351416358118445582816234183904685629195776340153792769956492790985165845876842707424040067635854173910489081970180308129436921243588062933040673802487251390928236907083136090618866402095695666157888125865157267067228445813513416865122263115629134155857526547867937623327388208795994394667841330150701108280837119405651454808218948691959115471843109333403049674424603978236932136805681497694603073070669736029049784897271699847337957527959205622475433439744861180335821918822371116817646228708961542427211226259163250050914602817746697637019811898895070083949471112205433478921465117898646108917034687135982826468279315864239140450465218129413511105836435200486292791622456493204060838486885642113486825394975993401754399122507741255697366954405706314360973660957059469305365606271275712671456077229086540308092411994797782946427569736111106119671189706854516244062831864203603198446106556658867865408652966295142135832509324962732922980065611174496345007520281236057832919837490491789421050921300119741306680470805831686391710476182397554960138738333199142400630977603152461799911310741479622853578499002043885082951109301334613944284557210500101515588685363071984274832069272134813651974781759511582585965638145736247282674356068764059863768053116811896363957034467810511184486782507519624471849322354176262758627839727502766307917897795797530372563020802912484647722341088210978422002875793720043444065770389632938221444617699054378512172042863192238710864670493340295942606811606859532666967757734821806654257643306801448365708077227342562737326017381502544433298388412601937188984225620859463772944886661043778616633692816375621801859407465176396077918904885631255105840046064833139279152797870106528180361648137111681430601347465265857786223079774276999917601168096252061412152057608115527850978908315876330440557239517371154042303132545033987895135737115600320326835930841031782099893974208881589531405209059853420099254969548583268275575518053599353361315354661437550511745398862374441078900931450145331472237581157695502597751579537301450523779217045923602946938254326879975373995241605965069207003250970410935804309092555621497084342802030931475606682350043847430787640261626756909153287146083535024112371354342290993546484456469966077576218593564167237708878839925408819262054011692337494988667394434331736782048454266220092684087980875414653904080887325470219325500121836238435433556660328253347822865610323020335315868896066640061565635495160987372662119240357927120200841420759303682890036234240014518130137495672266410949015565330210171978432026664880608964224480287938632690021790870352639037072261387840907776488820990499368689393224811260662104236805704371280896230680827934317146136724985393017192020202102564485065149391843232967877230495855868342521509663717728384782233516556914352997138788282051433478242757073082770354488839295032232273532812622285332406975759706650772964010781108123841974442588776755173571735921376049998433328974517662168611129570482909583604732200649742227936955028806099078609572001379050828797017466998413995623390883807235723976269433746937584181042154832882259066929568111424520894393547086687322861160434381141277138344183427438037604882181349240883617196068918546206861818063914799806007819768377556911695338304051160823534642003731512190232694598248206193904532190702599718192392528663007698375546657227339370350748990897699358098360350751409572304616262601252890973877741669713106294857788278561473787609907855255068260816926805119785887405644530272530074820484812406238721441239947549771342568031499809712177827844376043794807940546351072082814454992966459997032187699287865313225508089968926966537144729287683473321348776854158905819655100948861341011694674839638186602321119750167518803909497076830015120969495522501410477918765397809838101788363951847379496818654986179017575071420195062344369988215997349766839434532411528298821968250931388879898536436090141349932652515255807867414619730303595978014578360488200812778644756958427712384962325262502694674133409226085382887021221955473084208789010115353949293039338008434803894292195609616595228440607897737730168932205465958678572596219720217720126469268624475746785198687459621422490878217359526579642774375384877827819298207213764398154108292369695686387159880168287088603004072993691330739754089548128795197425695658349963874814901764781261927962962150482850989762433935558764878939958791001031441139628950679741878955138911576987207089852771117641037036367765583249196471301022900392142264435501426510866830733120065630826064091420746935365480504567466838353725029249953875749710385164994903691333526845430192003771989644263305282531130868992831758928942273767656012180794886274095582955802932981934607215882637756906755586272807144900594802553687883821089295473706718963383650389353118968968622120753064077018694252345984406160984966138130365029659519246785380190918099068550634573548707461933062535681447174173170305370814624729614599583896974698614373486760057654778593611300862762883215647367515823066490911291396061667064713935684590662739830601017990870065459087531939124479895711639676222729636215692551149591538360520241834736765670731044524105970386931739096508712994201803819368053489696146249257189834779598154384471787344850846333155395982379941495001997152072325454777087887366981053693188748355089815793141047629737898931854672134063961828615566408975830849954407391975803590117996363825401151978630615138033617484218719226821064906420675066442093077449431003073601622056669222020288057527991179191223867535036866448447602958578987241239091831886429790504293850892243551002059595170721434162831113219227203083397437250888865478331968499116508376915566085513562185889588774493168784502385705957645019572137886855026378136733437200933255859945450261445803895277382895589446468972533869567765348219544102639425734491443729801304791495444075563032652322001517441165042806854403156646705872582486530112374058942251661487443027442566206246247552535582026945771542716533105257563133529655899931990085020402934969855105667832492358463211650262628467995106527656928513962893555565076904921021494689261711739898314014443952786051575175751653650330810286160839992829020347328760016792020041426301162177878760647184544450140449415488890632546279039392043611045915068006954785917192081227234527654228669273482498098780070112597563033481306135176431615472564162752724180449893432687307215512578841041559541223559312201831926104791777438690994065036546886440165119877850000839932488803805864280473145540741157455692308542431482870421946926284354223132934149453737713834602103746388606571634435034937161340714804745941796712944021139485611506277464311791598763560929257561278565799334369235905900437731215004931650286373585966508950925921404696442125803194458417821418977312509957869767584950393857728055502752568438837946563006894515096185800648575130454050958495443919443778817539654495027267555613989746821419344130887557944715072985749249885341104300263201140364992498210909606413274986816743429134064825969689802492356973639272552243626283824269604803150278573215790443927377793380762988588932223671418873715610195065442308886112426580073085981084057938861541147699324109731299970268236106623003302901981992633347923867294427686170226976266064800961670078950557229580146148858089111408208689745755333345025609990803524460265081835887819803125954678967909293151233379676763154346435535725215497733104176802085204363951556015112218449739019437704452732988718593561094209064809707581505689561684417954608249476963025449265245119969056441547057103528896176368644644831529773405455865954903052106912528931831146387559082959200329858918986033627087764752520231056205701382137497924751658638632762402697903041772325329955363451126212362036786303362026403981123995783103792572332134327864156353738296915992845287920549197475722403285848987477686203174138786032934685053618264793270108077733783809338908602189914281546100817748720499916326498909556388962168906712023415700345553100391129528608494623382672680147776819277564440116282066417648659851333368585483934683005534816276806088684107003697080824159683810774014557154054978927656218353875626146328514697528217547021061462027306390213842786585055714454636276853854833653387823852392547577324823280443334890507327963596820092647274253233889037959632277826456761497570487656449560212717778304917755854374086240813167995814828565537672126626398628890311307836606711003157598952826079312251865333386439420868089613262824524366990235371536601025182692937734214884750002981066108460814273272737602102007757714117781027128199502513506884737538389347414851296074849214522459422846416971803745834194621111299683957927216567557332409114068707401881321069328897120959198195950650647692236608145634505010974843680526877663244569826855369163275223477628113885202469043990394457928443192740642125794771030427101630145597435166321094071059377836826299509896768244585806342415871970108961495772911832559751582075982252421502090835706979914700146112690693551995292073006679550586805390312012876773270452174419703905785461968322850563314811266837065776892128527215295222329790551692100567712836821703857391142699094367889386265052744296039362233615101964617040025004104094751381143253269698100569403532521557556219336331638023838743775952987984472633063630404378787788988307725454295231343368523782010185386876618338009323539170600501027023750558292701958092620586030541428961196949163774019549607959173074146192546444250342835637880217800243134582298211517030039580605837754851178048841948109892542377987915207747652986085679777789382402539927662196973809254349931215679537857728166345943812409086441818810989189956210747850489164852473583096713150423294898467388977761489059471715075361346213588390224292715850532436159954870561012778305518608219471247758844411997939956106623416141587947780786967940332241260742911502583341864384581991830781009266294655132496096763839583005186418259674658310335478055267981065898349126248394420150884182800624179068831080809720341774749138701717636244979499925862480900556298285217324407188712651700420480422884389391344675447654050861712713636681201930430249726531287021054147164508155845459231557531153365762158993877567995554868792045333342305373348395088498935969731842751654045970121450573570423068741671636367337134463001208083729739926902802544493165443988420677517406006160455985544575102197158461286986314527275986243490865033434828674261075578820550713213156614303418761839971576566033913514577059512105695512830054731428575594272996713827432307331931704712438345550717221539811944188561637444474782037140973689033336385135061905076651732212181037184038188992306059802950248585225054422836722221389897169054589935704815006652684517151030540027567741141170688386873780712019457772474782355951354259895821947889109293407982505757522948522132374419607305666004526504426535743832207780955566234189811677855617945901894502703456979694143832981964060578766413602845500323871220017096839017040803401622814396392542918370455247569798214222441108508540953235344389553587426384850989728034221037536454258349074209927200461482237192263259308693116332247028962255705679839280951369382566936948180981105462068447239384280353037506595536893716892576781934616692764763370970558465554956220207613088085816272379942557697711464841421382963093853877626490492009342801413116723251533838705783700365233766513160003262261379764284689708075079373857152750329036775105003315822067964237880782418929911564963232311982551509097203750540757511899552558795414953071830715577783180271785377898672625615335342870357308331803330238642838887163702245082570592307149755044030851481323638395280611770089810119799417760636798610946151519563560733892655126361113091753542101424900355053262543664270739388296145830642360387819285160020554697345893249877810499996801790284577752715240996287358811074056846192636711224979752052197818702546386112514453304992364706928528719004341980361253947978389341587090631798215542814866974263873498579881114967700040418092290136654437560336743537850011026989551424368960205081196986593311820546740955354571913635491201890210408857350097597843765795100301208504298904329780106409678387110225781121696833257724003971073411026291883229963049600883791291603602068882204542004236586486467294184107283813303989716035011640860441755793122701769849867650217052617200896358838856060775108312259015670985153506988909374266712794155319792577115289797901220715644678641067134460724651051476802232884850243053056138068583097986930796194382466919583677612114691714389376085071071477017476291934625159052811863948800457605360356432507593490080399986111710631456144198935170572817395906428047065376348416914891617023148999584479942779483784866659275653374072240997389556926892977850578399329211379598410579705671296277410480752602500555630290766260071342869349363494859031386517263014740840688868138685155314684042116809924964770563866855802851050662289024860973497689303783186714382402109374139869701994842509101759898878651584206740224169089075012134029906796069365601227403633439333491368111696116526467921322357865764577831309115063359127328589620766407345443222658743881027679755718566618315994461364825183750315550867677129963321639530403087693001492252428052454446496152765316985857902789362900389305877370912004349150576217797995376759283493681722645116068239745368466123231327719816430913624187593615665052998486200114732722830077257006954527521785256629735067651974741506634806640502157200147221305167016686088124144655862998734489192717320092844255578108122555775783491023664102172372547287503701770988077926281582728866811263842921184096597877144210707089960355982582850310601932369793877308590559034827017443684022774915425117367644982330855523679988813982346373769856853175479412631548829746463464982082057784130039014754885977410028158534489579313393375533817033392759309704347442320832142180210104543915098175855266891205119442825061948771560090292562697622450522824371255866471328222563993609176703885431357996453899949351542702880936222714479303187483562326955745049928834042814044451175367344053846843163614584503524337290712624290081484274258969383798066629543844602601709087308280046566859246634968005350296184554136826702552513990042305505504823736041132192699337775486616723818114848971014657522575851963959418298915685489717427343381597665907513374693781968157276322676336738282689982395957884101302721048259844966169139504424459685668717568913591668748060194965953633218174775647574903726777348668593636796969394955212738633321509927177512814121447151507761638927886608114646055752488985210052234148854926910252069250453614853355610761006748031264669166375703498733797027095295345927257986112814612335546868193036178376227329555607891007251038912629607569838751183328540155981101292694425945607089418644372400439026373507773697821225828282851850666969622676271515170454509637430066115157419443926186691074220667563495630605025236657441309866081162859736425328965403325624568198007485930908952882894181721537589415271729489538481358227780760836185802743121338729548640458745337871836321370388292231032183148897574610166633538998127651109513963179062138570633878440526645224415486079373843322150459054207388630460350800449638729355736071274313547836664436277377817942857679929846846220150464772459782509944965663598910871517836837689879019395424506378310491982968696552139680730488516017157876121768626905188385485077302409151385238551511050982242140098814607933499565372690889295935553111167692526948590006176084298978798225377161050282463644433609309478285164724543156904964914436085973602771082716622164392131295153542561464518892933218170789903303199131451899820227407193432277143708286437055970277102742630016079765087476290802831397066262892124941115704670016350876554385306361818515563450449702393558780293355737547589270037632895530093212551084347150401351331095619425565583108824564116313211872690103728389173183703577157724278294357684179117515118314764087663658533595048852415480325627786207276467000093900476592128903523263820153128417090100112302805618889697446196193670295511896841415710953920078723681577461680795359969126195614354760652964317585385401330339452143962057491474467566963284886898630983840305232072393936177159226657950314015744020577510896350971036670339312946714475617031826540912367281233381594315963179987235495185392135295708352169176860104028288530023474651377625360253943607616406545889796666418948108560068014868926146485946881120503215175347354177207070981110266473979154657047332436056031534242604332918481214110462742690317164129018752811172150756256409912415761498766771423864351792909297797173745395458991520201996144570294970479783686693339060325809123228478430288921362941879472747132199978579297119779823943446418969513109255846694106273177187935822322577082950541200129159758323117859333264252869071019008012837901407590373110935250139924981594150040530317929574288398126493944113771570008809708486301964926467362120263318832299941269466553687266600953953228599095326399328941044984448152452881894170564638919957540203144307709031169621046074019967033000474743786595881123794698601890965574331933690329596441863014438210148251846370022089314304292042398111284740744752921054562051503833756471255361189449532431791742315306436395959789185292374749910195407612089589671345618883059268624718083605422381286674841494275246034266158926041510039948175877222950994720638964371904413084442536823474694942233279081297913874749838322383779172666312615424307052076327861379286192191553754102562923356992968056137601238689622520282823076237799874954541544166545365323652894803635846625379631232434956866138018447619864841303927639630606658681838440272648858862549887814622633400765332966042100705315123092620618395593026486052456257629127055851602532317141672661640635777280427875850235590811456090687887219437662309888760928497535982090203816965271496112407263225026502868640877498787307093077644022235515836702528632757331749757964237959423491787026988618554102392230058188155729882491001835494650847138672265837983476747381721353515489756387664357194529014299980212703663910037899180940999135174830258413371820257107064909494521329555384297949063825220471760211841655596872089655204078112230541901135261695893839692019600055786072888414753052959531590123048806365040943508022513408074521738373322826416111874669949773186437033384226026513801646570469905885587775585970871658470981200268635016265779536018704417477557593869210682980210928780975430562730122640049028736118773619999058820868239610514588987811606916430626438559543118011538569175190483927420726836777638611069771451217949115961470928962280549702593098902915220829248264262469747520530312521427446206502175051704707572410983913910671536215327333932746164948050863462418008047539618087832402698564092536476076211666727788512267783323528017719004582644418724962757991948977337468100725395690669077639786762035072751420393984125172358289011597935664904481749796665957770170714987770591416558882345142998101953669000302961333754519649246756263102005750032303295094740491532024491534731603257148132574747078596661689778112728298177309916044904777405477655712357782361421846459044812502630625826099515474383889073132076808656264755581254158463869707899166323341824707724908672093839715393489602110736883730005317795112237325131422843799711130451428065419613389475913972807725567668938522326755263421319995819174667762325284547095416640125585637058161470084178423438706932567708615391448016022285630455056666105317067429099617939734486812088547530452246739844709407446028334065107313936211879844515571313370345355141503656583201193577402291952447542014308676000148250768748743308853716374064186243489894310384594310849577871053805741962610439847015962662515701343832274352385108928537622528803088367466852902721924825723279233848361715948695755933976325158999857454743488703430525860816598304679939075176481787704605249583822815437153265698323814894019356497715692049697586438212438715250406761394596875361728250257145608075615120893312151114275267729987125652676028199437303876498645955369840157029182209179123924140451090580663632749348857957374785020185997677838163908173111184439051387233571908911234950802957419708707893702347113218153317816946452531993831164207972512717063709136790024597577303027437032915373189509147952133988602428074448459546857644740951721089835040338280032671761800606648074074785937986356714479807394678962466442613512786906869453144629425666795098083471720268497380967685074118052807384578708309174979071621311803717367543739528043501189900509563966818134397688169996313715832265708386870423352798655438158080493640014627753942189289879213777368664438364840805107874235794551405420154799023393920879059886237259911344938953223090083480087544754741040600467265113449013726838287050525681198297327585301086241702481123303873288577506645469341188461373655801710487921158186965853281491867374234140106933419049386224388330816911028537786975305965289706863653340449701153848362534404676966038185217791879616438193274399488736891454936394371277791778462540345368153370160726841941536494425626053117043550708178602952574698343358066040967826922225487104207696848465758316557205604104508490708545027200891466937766544328759356509751303986089770912716294934984348840821078889709442809475680820872528570222859123735783125592655041809409908514126387970620738862537770345177424738403516240812257576289786592261494710258990655090045561531295241869756443631512611446507981527581098890117586719485437048246712940131022863414322027508351711128250334853071333104876686788582881599160060067687207916490744178923825742191922164630005131319619875662750384841494524859313679384427804219990731895716270542889334990302542241300791433165904543851134506722571140999609974058517070311492688756041710939971803144097510108235314242361937918139448685472970095133020229315083719916142829924366990461122792731753703619452504277878949788196448474913628960065617468016423082916671070247025677260658387083929550559633287926789729746239619184023410602925577293779508569444550518005238431056484658379231681549753730940552431144083602391222311754465369532804449762721653563926904331340009423348997479767533427119104198601876703906728706875856705147174573652209266111692326509386565867303571391519842766169313659751779311569942494775839326867965072156475754203002530274573898612066594611984941445676133961983354994533738163263320891381309861400782173050039981490676565413961734684577510564813163862171197828494579655446871496632381247570725106503886900438692796002701429008439597284896749009836362702832431983882332324818856336464968075867877946425615122804916718430845047714628847146486845049206934117668236180542135971515606928993367827001277777116821490556255790879366646085184950718252724117551636444979865358560814779268536463207061260748428545334020208362659726206366778055941664155024447863616972715683890642074148382766530944066607007992864847328173647895739222059309962146416934256190124215798732530604098438601275203816517828555413572369664937159419870337181354980057589509904349577156400368096043004336600400243136054655336410859097252627987972762470954513225956016975533571146257315570864645751569418024951678723420085710862759659411204439509567784683358716742745294943693168790098468395003607851639069381096379797201612857636677928384898460388092464356220066264722105836266211896804484388354667321237783502981910809688844297354221358963055668470327263433890314806453777404403224453586040025366174358637449723420178506400373405604626555482007744469531289293252129093558149154188202036951363337818499393888278931267158660345043433263158869183957519044284071206523683868908233391038029039694334681549632726680161452987555023148781110167474066429693701550226610238316487407182752899187872180582052958282328433580208348935785180455845525110825866207004175277915449917712749089067563282531816734168314084338934488780144590676067619428932558844640653888798489281522773393282050344875538951537431251251469426658740110033153098000691408821902679324822238602487219906847210212740484650353240594583653591858050847837759553775529167889588359661025931822242016532983462873780273370403545084615010534041768728516326848218159903712361546382078784887850143440748026248430832220051808642164963687350927065161032638405635981590013812959531496075708109856594072785724901821223958666184046687742594950305040162250425078273770262484807720581611563354199991196247107795989667920402375038083282536363703906421500554482262375238998114628616677870256660908189296746241943525550634109433220327892484723139686393397473305338074627444932443336194564109716140945944082478385777550203657393318763994418058198150781083767151893911897573268613017974620315157609466998340416439514356264716932015563753896383384040853719663131453579443773666925670694835185254838957509477918120415202057471041163045199065148827195878600702586773335768522825266250615768192920193141634392977765126847849251491214005206080954418093952109239593130617344999666866484133896883981357784300347979091749633490315288178725807740535892256315289641320629839464779567973190797777091214255336018404495681125761949979723712979558897326275041126944073608225109334088747285798987429268264777644110238766461597300069219148848013970049346099423684777608440551947310142930984923026142742408499930352702607706772849136613126348278915453529779884903126041499619126648504243837056761999323094443450986596750341140421164429391799419516669642894033705552613969331376342546764926820264020608370892661187249115644252903360917111085710065027441682443836947132112280196557093034963172443113639013646371781664482507527017361340307120663129411156708877980453297558424823726856120396414841781872412683677647658747026373583094786667499577687487129709761823546573398615240890341183248040810763005924948062591033670676187773121594068907291765071357507872102082738462034074676335748600096486093646756204691745211657967301199900077281456377367013849090918433952475015829886032029922554548698912996891920938135349002427544533116266964191022700402883191959976715538692389898456466737337161469249982649030336827834740573740156316112472143178992355644571004060050457454680433617018027976043196283413612817990000038753135654509800178748951852088104660862731331739535078914417374669088436547215351561045636958317284780754911543148776994604381018276937182295817466437884888258503826892654141344959463379365512211171286175706960945672744814976010025352109248760802324899243690714824444973205293143751031228663721434245671477950360034121320594095636604877430303274230515172490977862099558983499477244541419469424704992066010270350992356151367871267127448536900751051870738591214199297674000934833187185796173389751480816588340833370872521139959111018402034053599989178572447517113148290844795054291659195248070657206381301010465691552576456743035381963393558038024470186436947438852297700244002620847812851653088656559590921493661032062153094509005805272500603277676671747747094359725226027023761884878205221626967574090823879374174569137230566949603647949942741730932202193363821887250337761398312952633419195258589544023292488042463248250989421809673026447207219218971651053472499731012177616201660190094655040300784452242741809442693294262920307929486378288523753430622215155284553738567331410625913935552105636840893248892721420961979098231767101896542123279416031862108685222202454655671238693982285180310915013544592682632837704995530544029289514979842340982434560556412155806397511623476883957386191631794594119926159920703299078062776135162434749123859447270183239535212245372450103121542907342169894375095372106789079751408608600892873887283090359829297120548119243673222407595324482676416297583108382574143449872744577222432930288990815768768176120055933729929706976682250074899307230195259002234505539099435082837275999509320109880428171642131194860222924896992065953865039764759985979784711555158093133007873281342551988129848694352786583063878574436920338192907751893520285264529478700005198370762262428225609306968370646225621951831142788603404728046694898083966817132340067043711592358107535531250212751433621148067836438680167603077300434249611044620037930090104995423262501488007639942627016428683805883116502467236507787197973410246758293114886154580748387318327421115508315471599835358344966219287744279838231175752147239541475221677337156887869628290152227128038621470732082963193886975439106132970550176533835554899073892090657801728723021889943398431664220439702819847883111610950149743356111274373462996808374350077478723038124878156857934031328035259844188154651268135378793144809526287639754563193344202750859912789814510866373235223494742608439972725137836435491691869367607752674331261215817839412575046441813388478730958062104164565974486734268837159957837771292274350841055787523618930046993685082413220089568512416954764895269020416907815746125660060482185473827736661104431904258090306914410124209105998897198734649996650211675397238848600583093700248044155120402922044083388101542076593651620508474106539481002835025021619056307987852408495516898873957064879703759283737111807401502377718134968904244033765086300317203025906119396183108054484976867225849282191478671811154738214131434607699456898970223148084963567658060109359034647377292302570687127467904985352780932504215945087170842704519440991991350236841132128061267838680737506378210619477737309196582311182780197146168053022086890031562748560807994400241711104196945408054420291702509442707160657570752981476869826358677894907983351924026784773260207147084729448141800693757762772748539744627919815816795134488229801387333993518311570600689278288272770856928479849094170250739599091345377042448059020686196869151201164780327732211883993689592415633237642033080288575352769590834058362352562558532658990907925246466437311349143311385088818268404662213874508070958135488930516246784304025506896653652464798046496226770437780326162908205161718505802742813853731754976159042058957071749258353615841341579882054905515777649434445842627342633075214294708130160411839821967552640575956152861982223414105040128870784079920514237942320633487222045689281395873639415270327286213394493903406675959582482621926928859221111207391929349163701643990812581385024585221005437734643214515665026999378209527590383702753638973282650307216250851507988354909867597812298816018494336198912457557746909275859198182163650852762422208625006586256324082159445947629312579938324859231816052090076143829588464829110457490365869516738860306053402920708331343506368293080786348693320025473825179483123254370554871959260262152478264564134392828152205621593051715897463234467543384047202476456816949286724590970054160803596392482216412873739606583198008120324812359486335757620225397960192145815251195963184316957675383673559220578341854309132535486157648270036088116401287543902341526801417262777694790639083458743683038639435246040563555724723727670629074313321173762765069998815890744791486831504115974066871751766375777253256753082450192873373402599167656234739736944032388638055987777623769406284749662056323668208336290172272168390698043387213339207747572205736127441451721189336384119310074355315302858780987575834471439307876740297212165026648889627371326917200703740927864363244767185871605430058175695352831767056903232101502816041342799285737019733535182663866881475896821816626731123280833389312679602127250902018821963199692438848139279099876458996687322103953087254296314785941139129164350423692558308709743195736187758613354041490061718159032632276140226088882099718390242673293211419716662184374474565623994276887145980877861619322546199421792804255288270767231106983279775141296712087113840534854756015616765339305619153948147764206233665004377986684021191731896425787689153302032994236130449449646821635955953300100907342496199059314457407556710533303665257433270179652094129648981804039895071452178327837199438483142406502259391458262657910899564467298906650581019881057365867650839784990103458067573531483282080229962852668731985809663623055810428221778604029779828000915364493585278741101453249840498614885032730416133227581548445502019000839976810690434098938080115566784358541099155328351958649891651504481108866878775946367634953247419664809745792989801021883091195291709321056475135137047404867195893848964564416998927212591170527887406125018239988582780378427464767102901981071542886452189927342777743212732250937061802878604942132855049724626455426513146201801897171575104694518810517733716384930518854466098394381016502385867080019653785237447050287913418410829351674905758245256212500862702968531475313722936099351287223857237543316054984844134402773280497374469104864168130551036749783366881246414570948501571071031678358062741802106173573544984381639828418467217241107545008015503089602438478413873810912732780780284470162374595808769476726076416202396684008736765941549841561297032696531785572614759956663501040754693360300657502727280106433102049699836060140709055994428443172714647693351649426296947232223519127266529961338085342323722252488417931758221808700973424923256711206642668436130176864730390746498571605231169701680975581165050234813317319553770014376943396880705262551276618448162341783239893108700756694399571905786702020686505798753663475562412446802730449583174383425701891329790102299433008057297585327048851835021653734169271678443356596721016704940681270897709816294630495688854904906596493238737875450484935433569204862406773677041112382531910653755849631935486192480617336365691888890042437611076001613314701528013798279378247389408597890204125429261088012337401812146119672367832474070207710010732354104063259461565999968680891297325035594514316931661450675976595128235150143804703608453016727927785198824324635006520576113324270731028197245709712836933042701257491485536166319012319668105110998326555526250701204799639838097768860778621634681877065738903894438339792825782874538397934672985654644164808907321353144147116935674812174496903428874289597966242358651406384830374975971387389651988711275240431979286042273240725793268820594955577098146971079718672007118065114505354012651643418151414262195219300268660844638005590475379089919509578037768625779007995594336463092845613371888035171760508553798602001384045723527013791744054346745865690413168795824156575561098688959672029322835746540476390424431975962539963556801660616098469355677516400579907378530500593325315733633286824659164374298603855859961295914441182761762923236847037070865165607654065668061488081869669167248413167612230950030258664945464717702807959863035453140947699339348940277504155522336331598796786902921271035077262808136809409280704743703094740567142912010400373570302877929053962253302753473456186879668229481530661105869734217397119540645826855663937242940369290009964449867588432927906945009210340658992349482633993915711049301546762878607889626060550909071321417384111843068340669628581787713941341386779276962724777412576958417358635774461394664664162669207002431109692652604595760888412078464751367475660874663808536793904073963153725496121396499048937411084732206417138710120910885397195001277025341882839346018705973281773267463234142239707387277407884613761871899475608989077927304495729506451653118097884555638872859267162094391049354695202533531976116299628804033176256264289249561952343608569583538327660564316376681550118469337515513485189074858600591534418299143272381671457428933371651986411245269341679581109709664223004086242336802353410500686090848520157057154129625114325837223704541785560540539470778836925812151918816671741201599893659153244424497284029186829018869635400401041062078587833640674442740803742490485368132553672949016088246932722099265628968287674008769003568946514849340474375338883630913967715664345698491849957219128169129077486593077297973805475092568401857029800810383699493319473582577047800927630566221939540560829700766870788291744108133913108876933389927384745368452724126841463152336375126673645304422390799334003995084797059064758713305763690637976372647064727203040470662337601078277130688521191999521930228233426566419254488500366141264659291045970826783836449919242891653992163203852855930443685858754628094830786837411865161138082061871117553137998646520274621062510227881992064206560818094729078080068225366362577178787469751440073872233309043443810652488719341188044100860348608939006980048556103166541406978002308769483681445875909655678743239123010859524736968277979438519872215905766112666942693800276314028330994986428565423930208324146120054741089891293904407734417567015255030768064487867919724890100340179063525480809747812661528851711352620801584011264644663801145457620852399601601593459732257455717809878834659624498781635959214731943491079009051474097108807469921103622385263225876571386641157582478053179888496451653644423990302433112542781168524782288679811668620887406507164033167841873878228442672886379546681080690980248110484924365803220017131075979205409489475738462058434157375083566003215903585542847193245495857363506534094925390195362756331360700838292868226039137198543510173248642421491148587711993052151737418009551316391879263248565607241895877599704204077335084445024951690977346635286744142632848705923272823080653865742431827841600310900167965978091332134995752920668595215114171974450964761229391457028470328898768350737349654773263408653985121165537036224539472983952576436216143382674203277167479024362367376671569146306707154427050220788208690002660761273306508257310213913345732678950660128686946661130684781284309940869951740846393835259525134563215385165630911365154293708521044695765282012158288755204651461605340363673234680907904045462710189128675888249479175695557846916726885454574419243953637569295396499489847362005227166821847022689285707741751855167372800855233894285480454823726883741871222854727905262490923544478589870362934556837199133116669502246634493974287698151750661261130558343313200683626496275972253848284834949114349504296030187263835142634666327105699983035726515942302199233487844133391825971870789807917831778244917362607752920723326985790529172316310807606722225764899762411105750281530658621043698509655911236473530734398193882031487644954082530897967976243773271794189848714378995732823863821773542160687515887338948893198017596234249364711010192068370270359849823714307989927132862868705286384902023823337177580732752867787859685596569609341023853864433117559214148062021255206328058729386767135590973113669836934722500531759595958455651303989922750582187050042649348779234021226416818262567224728510134817836076714481471021319725247704955290612057467901197801483110630429853741956658801493362705158021865321940395157046477491601625093376341747684030929669273346103261730603299463262324909625998208976217991153633673025577207992424585863348973869239802698883348087621223895697003299154980614023097582183890288145878369209969768947311589238503440314566296293757298490552432310904994133869269339164133459156182742561996499634218895954068673287413592124145118101555083551186769803687051490189185213706844852391966579424421945662959703911556096320223938564662842437312529993778525371472663092970856988030916564638697844625956721316608824832872461694286880486255897393771590632047240017136875379544737750703831728421082885471396249385906534045601825782831592081887736280881084313359180740434358489089724125969479416988764054840575209037485823054422313854957240883717856530370773050578338615206145698027246531904162035155223540481104972520291756900496060980468693474210308623484607546529235368663818741070601766605885296548040457293254113402405820238759451357125525843715360969009583637262277340894054826486216130320935390428232475544609852715064740650885561543969409431634904152773416486046294338223983692318103305831818271325274663764969926874680728053586813194419698009422345037825774978703458361170209894820460214286599849530451412367955043198032644093249962609768545890285604169706608590793220478747041053792565711374990590968044199575002731901505507891876535773482977742705547734400521684814193060638971429858213490632187111010406525645353112175987149454451615877722233368291196530634185591828512017225890027939418851414239430337701414183625119296498934307930949225706518560840526522936930627065927788580699330016189809552575581564960700717696916891596868194644837650482243616102277478034450729326160592872938153633690868884891839512401403194978871058595142375219915279498897734460112251604607971799394993462077040376039105512695483396826733879593361412355308392602856008845337054051384335649615395922295894203282172563528679146112946216254495106354299205030686019058517333925394771810341152789933526079781353003511732641342518742345587476278994492614732735702492891861697446677722019299087752574892110864055834375808372009760143347893424856246271834502780668255287042324598969056192939146357941964903629002535088917258269271242125602111969838354890388906971772979724857671793212498899334365801949179507367546586397719803795646902099058971788952909811572786102557668941961521320490446688316905869483507690747946147241874271819055819742318537876119567931131653242927734788010722346935483521995174131518887018788454301422219449602310256087298869657692899063983780108117839793914475640115558083027118232583476902463789124956855195783017938635685298011222878461042852549243317053825954515077147095460655135204861493829864123597250883611924431851874070709010254648959633938402522701472078518995762787326113310507342246159099157348182119433203635904234828426354910808077021279653292771609195949100902615486810884524751806611629819962514007613322318750249181909201725596071348284283580996038486324616496570686926263786618095243172343294556201581890030593706241960065428271327750931808865733325460745373643715566626652743457517985072475290694284830574729490947478055270566273877352055107871552532758622827169703911247581528321450247239566788716232976927565480059085962360555025696031171554060440906465301861799519687301822127416758391402420525632135570642471592703138343344502127950662090704962510498502638435013349485980233397072706762781286783932466572970694438164528770044979167629301557129763872151093156998134457277081084076937197389969911848780127230296940590110480050819802844731461166776132965387426913621738578415114613686613005395603842702483147510499583062603267887018579511914202221533377995927428401056051929957738439484296595220664429786805529709981994406592310904152775122417208936316289329815220372670962979795256152668571656168765555457252805151089813896182043563841367080341835440825979997194115180381846270244649024182491889907883547012553923175138570193468867433446650571732075980782758105208300860832928702493384074081118208390091419085665433763923395144509032746576193718577820855161112322024848797462901156606247245172375456460128745953892778385288904782433985616085498958147414899173555062645374830937083507053863612300856969650962351701021990643758815700550214981503840788573126375519663363535674545386314532054629053234058561420211375960960927576946390631479882527503415934488083642962210561435490218518964395000879691014737973704228819161305103367557835582728344640581190837266503280010411316093070415780405137468459343212038792863881196088069896958456011290439255286134696723768390108546179923076519119445654531268854596625030692660884384253291481662946500580941013379732350434150457043630530060316355196140167635627055406979611970652893261614814324661307788386524495705613433182839711091588943519245166862294928741364880602786617475672009838970099118577736365612234126870518996236824329257494508394055399305921864993098192286075242990202566485119457484077625259651010803358424268092814415653527851050314590924343888103239668807395618124570524353147015504038189333349798633017918817339398913668420822128561378773184291272564337508480243030775199285751084274916368172407233278805633637444044568459245994062626001239878014612306714425424358041823985213983061762987838183346966926988419282228548459165706117322444378469471416586097600538966584092261321797317451510688335377663523202262080937812688702304206395805569411070393542575445329478404872580079846278418799207559294213175686509360944092082066156104949848596523052426397529019930288928009679644968275313524114378385004751248258507224942466555829994116486008943424034646795896880880486776987599456238143479980023535504343024692857137940701390277792854984741219269359034708235673445742953372367981262832284573623870521488579192102766600203907481753504469852558019031907027162582078118347285515760521920666883884657259591059291040071663870273505995877207124406372245310525912786275127329502877167999515038277425769468224236706373033105349378090635210915434054402681285150287834960524655719869662444643728652973280309974086784848644445504638472257591945675992805457704094030664460297070778453418674384747555695460506979750892994242456876550369523708857502304661114400998966395779329411075395215099900659274020056407837955283684404510666624771264733459682501625889367375121505457427362370628204864213896972990267808151425210627242612033945593549587211846664273064654475199451485805997201197592243958669148799179256142380058080142931755644126828509574004478901832935468695788873122732101957132623079499453174792772726540402125691328496260006734781711020477321325670100657146549028545820998149044699573485130594412009092129034874055701876606495159625439904152130619208894822900912424571338355747091747636355783388329820711602994031188292619621755821252400889258940224987654231224303424256796493659646806576046652691419715623277871315098780596180479939394876918010561126790955193694841287813736384996869418262217963657522068261012663724133758531592415940091836655875453988058310195909799725270535271213293778286848508996534545052086228481694308170792487638392072183334853879138734697788185950715392238134593417010187156949420347830270221197746576534069109229989236378576112194931165476866031902483280800097682905309124742880204726264634378802892210856498556649548407837179178521062390343828728709823880939936126391887061831400178520899148566879575418573640050090465893816758092525052505987079664460353778096535465815310363634525976294143323371801689566960796591785561325187075358996358380694108401374561215462124404316052712847552458871937128704718762578272436013594554697959954022865411679286477850959086502034776028710663202845912578312548320911479335764226919309690725937960533231032366099070197257177227942148102704697964371176668485683146406034754254214728781801788306941650958236492269189309965955688995952484109216343798404449321483234462937600657337907931456780394588099443919632776788770021261846532850904596700211589839108735459010942804955022078467332026013311066910218186270137750817446499328194944831866105488257501101190140797868841640991928710826084064660933619055794161758228838226878395063475961856856169891331440928881317844344005150921971544908178803542424779472795881083823232997716450751135833120759301114304349818666465099372229405396305511695385542674819997856662147685945055684123741522543555173455462756780456416753841230913345968831397113667341620013896641889541999759751647775642142735060403342278413958694347356413419345731637683126890454037025516504096684962869882570418711739036691223507891711328114200567927009271107067538196650115925146322914616244850891016728381993677727193246272368758462492013059267313046594661166015148296226692244625696158974064761837623563284066316442778370981387519349823186904605792648432495371638753930909012318102519712641082952567774695741350866515863453879792671141616629593293722636934727037570047026288175795005935324709420644290795006147373218468290019140019966815812619482372387876089870916652432556958865343845915417581732524247081559034362487953957772248526957833577236271102322449713100836286489248543331819835648131708725725322545941325044720423038373509396716095017902042834991537318622223310894891145604218726354492194947407824860641963104362330168055883604041969672873202414577043882828309729895896672425726710080079196209054939701214773865887487522014018459780825689877516385653583839396032875937731027977899115247180647478861314537633535435055830647451671753766088491985277923569719881019122011411450914119707724960196870407279654122727505945366995172672705718519218266888029264165605391468177399629402130449066879538892629616601843702949055207783717341235399215312427416671471246249454878336847027569884873537479924774697622660898148280053403025848769771675011315058679778507327232203456953613304565217070669001572053163729930356290640163875009209479985349888903111702680066856433749695465460474605877392486105114901364031929317758773488105598502488272389530606417747941635189589025649293330072551240897429527244350177369869172933548837545478429595762242595496720421595354637525703141079162946176400278221711530405002920949078637015374195149564577675851120804266867196019014272265240929609369058453866830187019879095759208773596253191233107862165311906334637076905039498688515175220106657234120337167319204332624993729710177526235443451402405573943567292901968442050795956754037616770528023996580591553908194273315685721179823522688234676715316909791416946202978284457950824568183352840918689191632918950788648109347569128392790721289142588256149960944051389737129300468646312474983020524060884182773886148564281345034139613835712650849978890849842536810386621114194367063698086576245210176337367009343206099003179237186790575556628167279333377552453357190819705470556125309635408720115618235593819258999232997423784109570203108054214665813441980785180955192897208867042784395240775018487039861458235945807204685667012620328221135941592326835311961268685564831002472446632527285819019153104721884400465589938925682765608037539982319966285908043912917747978199864351195472598820300379019472079378505808904381280875848417329676164356834698607456552352150996085466945807902133111296762710809704580358896315108325672962143828973848562761956051453552680023696782423418842320832325104086778573109490881616496823310668730756836628774833808762147914636772041863961086259659112306822009118550510797865738975654522788978514054399234282700414784171525829773693674972238445322074241001834426193055937876925730950660973497331539950141056878209614126560103297641050932798850871476021996458107006693641216788952902102352420548498421482902906936889825323039272629185317716485195363878806849383833401280770899461827553382632206405243781650785155836851942929902976405617014079493731758407953411003528388956185976957445125209528865322023760322805883334960580435395298488310636239205414815998574370972731581312217913643735500673425398722152684307910735040973111078682727453080236617677663106159181227395168530710615722479778574023306467223006135048653782221053645279716375024483254324185129162174468055797386049863409995588733772450277825920464414193861199457125357692800271728306105189288179523163640595217844615104893460239298517355835274054743259141499509194197042612848783839710874201888974027423707457204090329070675609529874373961522497143649612762219975371679521214917051390041338139631802198341303048902956800894720243236802759520255600915847318005238395889377973357399895141711772306692430013653820411201247949626443923716266637266811124118568758581141206177195810768026218758124352608733566626116161626955070984295948880952764982877812600109286594437612363391153179302426173099422195398927526443926111795170588904362845291148149771784368829546289810339966164584050627630909642754506597610827631552571473314097606228653324831894348574118131670224083846698978043526357628420854390458828998345330271983940541701764080101456250566135635649943751833426133657921964272603224153812631336301902138082077564211196303510190463264698271113648568078037793897060127129762194500343670187948761396223293418104256792341924697731265070688814500033374517908751040696752058600402883120348791453224675546879359300958058083072750005333584405906740802724733596587039364555430372149066758410957300543256434773093742997716620325349453523655522348475983371966046391304010709262453809673943113810556458725869918206334893997622928191197572552643759657393731334844673279494577394895275766868957119783630453950549121853920480912801784812151664793844778030591014330754957700368945688852957416965623770271685644026167995727505418037851482772149458943073558772002441363200690462771374785524718973232938481145260601372912685664217238137764075764531809003517485681297025928937084963074733958790151963367562968205325924056419812828268716035987717343242740000944527766055071856197155966051615948253179584991819331025155368051077634556599841707246066049257692260293414075482375490730640717333628976859068841915245805756932604033429916086557443466439414723996819808993289533113420579741280731029620360474579089420150386636142444420532820068621542007220973310678148837662015764690935651321437046979705267659651057197390024736576698474181035828364955543806460588100084244723275835866265394363353543605333774013334903882373964042764253864970684609739388276151095763233014647483215639209460520669684419135638603773126903944032610644755397526662385928214445692111704185423507942859330770864588530687509627088464169060543637901916826142918813401786206350842816465834931838150997302263118300759823792161482738435218456958959070045629708800843691374803478569260343367973675003244554201901257935912670934712446911701162397674673427336851813909853198449218111897842886379211101607200342730257845905888760232015389377244798720468808334051370679287044076309978546038123434496040226909006947035341058875087454822556956841760916029802357321389071783228861629610392455861014595658986617929643872315723445640615763724218659142560441799810657591224299397493150568599521125692243279055281080372764902921782692444787899400374220307212071697639118850317422872335459685444126023310345990000610938309347638613410047352404142611852368825489890274109354374475776118447120268224332053650271522704284069369740775259601733745202909010193230454026679556309712663359154644871698776514978502120044355749090311078786243453837126349881715265276443296299987269950773885916216722044822859811720198642064672680478088168894925511118815351048261684402053752982625633393231225879322412665933687172102346987180995894855020140461957154467605887796514909809748461759021180282837625098649069316935537107340214998517224951170732533972049348030409329000967549541616215154286542112988510030496004905733770401328568525497933252810937062831695815013206946195092980932775373110369478441839392652777289800503795057165043934449160325544371966386160287175325228249592044537784783335231360218560740635327780299105375642000611198384178822423854005484571977617268716854284017774377411246938070874013441588208586735873555926819184496159585929458275912904168274146335617841505547867136871687832540980538586661162389267185754218098712953068189803909787347560475424664860612166714387844527313567857488458446391159961841454342199709533876748044089766532080120184630714289823615661636491819965941914379560987485369955725204544436769214602172961353262097353000309151845615779557640824322528229133772653773706899564692705130413867345311650830118990202317877094807964799429701486545374766117815244140660978846408903051025489127516498613729023308647613512645873767918719835003724884731644481711780464248837994724906673168337714581330473969652270286943932024936092846128887650337373556239286395732202880618704181709212225274593511300400381543150995175366981318811768496739809237234006588378718014963339090177728215128060396500211658495339559678371041452623277881825527621885338344165867368403958525696719115241792004355997425886607470678765260676662375880302821645225116638515857544438779441443325983364071080226894670153013287076596568869232317861525099184573445337667885215070996462739134291778770826572650996362870252519260637998861598063915844117876445994068820715937644040152382624424835923617328121230434479550834451950193662341782955628678653011700069090068886097614267253620468789235328115200223397800391883991604131273222030252590346907209699178695096435219809347418992039025745357473938632223754474550369110108844366229426690170516203757019065494605344431803335856914450149930692079591465067321714835720521616549895064418743364884712379324370620275433115506416828734239875067569612783384627102191723128776263160411489722492634410436100224091857367796816850327736238106384907822938433384552823507913987545173106834287822854236632633399183934957863717169763503649831303376039610517220767485470973485101847698419997168375466010392892538311749150283975085656511120483340157563947774320728446249432139040368616602047482932434070433294837532788511160066957476733446948188172550265875838298172087194514940616823826954931319660673637955996997982745665814541210873103609751314563463304706270432429781248681367836229925721652978928458355529684354732900277354190096581307837782462054139275022254888539107360211184187002884580099318368278363670138767110023683529309901218307728106673213813498228118121092923945044485120399136621161657094523233525373294979341227240732818687107999036060881301380829450234002298309645978572810721969528430131823438247536452061821266921632084453569126325870418352857104026074775417944492993090847863072508413069877891046169395218782428374027588087028348212849720450057906817734914794096179913156236251847577593521307516673061868859847970552534369601540737220761106212218231271192148235356204149192047695010702295965832722839473275597034477834940963864162996486993508857712173679392036053157952125618508359182480839437906025917587669273970755652070117944660049632659213566480573075378277762137150643250745901852501732320131079049521996761807425687541636991285296516067474540990835361940712975442713796383297920825696832879281208320102242927972196203809091450997639952309709830617493834957854184214736135656523729282572172173085187241633077272610401061074493153658428820701816591654763497207101946091401362188810974764087112827780237884563296673214654633322442270957966796036168139027889327710703454372391648607322745853234820643586548027687030438080958693923563521351342858036102976667458846963807409170857259467772218755983130013694260699535671240521176453728417034661192256834660043903220109114215995924759727671835840572679387581300030098322244200674012117272241979984851920790280578267290587538395368812023427135618593952856430004121620733106096520943665019007318502888054640378950771480213032530548233144308032719403019401157750852479580951274815366656518388915156069255213326627467628576587584509197107715263881528083674826604439384208647419124102008959534426155154569760137553796435532743647567164371374835801339409570286653005811358433194405117057109251136278474524067639941714923137617650333358676075495532550139342963398471556221682359930927828829210367264143878020202329900304762412653306183491362677419707830857273976516118701519444186624273029155007690374227323127346561187639643438283177206824058589884596660985093404507776887759643508317095552690949021386591788936634861222360106168844633845704620760190605909254367970632090344637064423785180881039973751271091117110844390153273678303085327596126909555693503408753326436843944076911924393565676155024623937705087002469634728522373782039044712571765966689105715788645381540235752014496225132797021905481696511130628017681960548053358504054173355879886188938434842450742868836284388791179590563806013961780700603141079263362067061961501216219225931902790675702118500317713062350584378949626509001579692921943561079790920483938249420759229161281794844223151223854816515926515450655627660585333231328405826401629623498919868317948727355004999023080594620277114317264425011223850931489991674475524240294214231167861061381565129620460303134947010816979634350899255370357064569269178927360729108003076804523255277078760581830165921263410644201295553377764845908432008629789232316744803336763482474571584366138614578342013029840289732079103029901568108834808056585425298874082945101637535289248522020406421780435977203354736644233598234557931487370391524678174860136624352584303980134603556894084211028431478144013377916525057604136575263571502788560772439847237233221418695668314554153981988167284548765835753813673373049804732737071154740699425635741851351303169702467465337559990174337390737320276003321103756091346871017261287709744710794005109278055384588335840057949940442107469751053878645376063686639166759035294594540015739983892377513371576985966864675050824570235821112442519216894210570170103859756512755964511202398082537217758085023209297332128488954149396146415690206010215307294969299338079873924560466776249211650117449209200708495899752354285534078500547974677547405789993136494306952138943635884002707911405179131181867135446225496682480272711456944682922836914416666385126579180256285706024187561113844102686960403964751503742705162029262793986393939428223133813797436423460418877560480978139005563556649201637179577558087368363351765195039646824446662302213093175644584070170208916182779738953513099454999969551708150736177446705357941954764315785532578516052604219145518121586348717694083110606797106746124999374005510686273952957418221447709429763843402243955406868726441030328022036590266451431531700818867321044673058391655658082369360438046148629093573179346318616038168348437673963406759359232262431219623927087551997183175672599850730383220446817126681417785169207737121991763309268106469832666228577233813008518135341091275689346367817711734270636906943929166327963515330223889437108696812359817828182934920508883088742111562132934944340018447972900629455825505058170077885462777157685993297369182836828425459484872466990116145853824383332468530075836917587265896539982266954434406075370841496891764365594381449772965729037079333497271880259931969311226307618299689227483206515901421696668507186105286369004464634275652709987563726386310859115729475073995131998081085382685433127657193643868196376429228125131547800073703946860682171434375856805856014364570834675934457325280244554762988541215314507963503555576287258339697011078823836497403560417919308024103084749861425541985140293312174949055216426309726050798966033216723467552953437266134371650902531576860413665733680957538623397236626683126299635070140637883102997477882019371110839723380466264104182807918149420500618546146435101468910556580919457236444848737761439854744832687798318312267165680272138474920853752626090111163717847252708327167014093655336934771583918952166713587644410573180622174636280372378614845717565564474136928168527537845388572587430141085925362200844051762323507408290684603794564867580210992301518978134627127032597915536876983693125181309681627778490692183092201249290860443506991222104197978341851314281884291633369988895368046060165365659242758590001656735726058781333358716933475925781529747133120595028505726110748463135375858298290830812430091082994947526619717681883846947955449558829919525376248300783533233204933249778636329126918685316849588598834715877141196487254619258030616324647634584570256707599124921058358015949268528933838337402456120125246926954804120720818890458655640753386876638389384402167860874229803712258490525352807255775702398923799115907761245993738331769256359903937441125707796116455893608708242237146512147414243151941885640708821620421579742218635005596075546394109393270739112772220973602915799618165751452298040976083638521760870663986123721205058571759149922717081442071323945178593572267304667080524294063672079158371775213236548909363688282464797426717633390261329927085107563448293768422803112477325210456417596996099755669280390629354860311745828203357569025507793140604682517823675098422252382896320914188241988007035948934921758026426496387822109818237045640994122973363617025097993610022079807839992673833951411201664267465504889276740898685377902585873585594789105765279308411795764366496343181011107549240960788347362557722842247018914300618285855446417388620819926118757604574984286514923918044362431328496455063588927663218809361331871677123331450448923297675286564171292475913857470842976228307214253579427480308452747295769294269908552900601185558267251580797233169660471921476708474185991495297157409480747368172116654906735801129498994457742111120357043678844221165624997717869159295385844302437395688257333303823873137912489151094559530665585247186782861746096625812969945144726599944815903766782860262526767081315720992534719913992709559278404033744412850975673001213319042989827818213170811678550132760503367918013718485432988504206789710485858610958739015357726421866509596569137514566315721619773338415467682882316679328086481626115961839358153421659176584716414390238478706788494772566904358654265523648113571889430957320753558983556518948112922189188913852319914891070112931277358989906293961541897028290987405798193185046896589035815112094506825933775738101807153923016002066462303043358777256053293883493782629815525416046657670284351316592364159545446820595544515641625104093238261865830089015535435438523231195639912078926264723134280998474575098381033878532987647890836964959670260458783717696513158414814054589470369293331293655594488236763556533487459405084891336968719753951447658139674882211684428298469212441587527249637096996273644940387907080407347729982130012907422001202636555579119868125197415185856202891984670858926952644595301061495883825148539801320832033559505626749047327833506285255935167578329742559888028534993213886409886184830362100145819350528242076594734497087904043284599245728604637101399668639957855753773875241342509959592534603721495108646989837300692287618188974874755989634289246810138303337621217398464561495297960094210872109832870507699540110243954507080238333115117905617170672324744965173555771743094628488522532896857850788906024724307188871494016459305026213496529061909410867981697822416808689527342651507428421910487696428114139686816383926862549432541243185928986653795681715236315703046819082296264619444319316584337861164707570506683380418609989655635245085794306765484242254060073585247650760045786904350488135754068886231272898529642725030624379538568453954845906853882371236051201299167315389088681977550349776457928997570618987248393897267984123663056906391987086025189535988949033230995115737383256447879607773226311381702403696612196520962412112551282433245909956897890335683323287526346808934318680969261079029894692890010684925971297814475292337647075255679466580209671485682509431788362837581185329125622799175888110458719864658744113588229506685231573162218437326265314329657133539482016895619921599257514796194410796973219974169469028943610814863361592923976184881213491429527462468288682095575473008208391464727995368574073468510906325585521489439550355448778561680266277545169722703607551670263325174465710519032559883254915256183425688046326835053703795541129964977901465166573369959657985416400676250787985714251528061583433391584709692630671077011844013559052732327810050306398095475441639861789284419056964182558961989520214448796127998670720840927460231569608743192632581373746457946966660413163533388361692589190274415876734002306460710417253169445853048674138861458431204865173496118413877482740472989914280268158298413285971739410457894669802138540333847238937324661408113881377620192422713431558373274493357647067169135566575843153961729615420044269041275757637281234583917847188725788259024512925183291660049638766698165267976431339766146245546263578321438121321355471765833799320034997056931084907099149943695199406534554258464165595564248281466444237092402455980877614957655053460098020613748351239266797453721852136995580122703551494160289253686276251642789145678980911414646659164337210099547044837262349290059565238181247983979988419207820508231773926695540746653375694752349720778757125884421736434563476667753224889390039573051316150944374409284978091842140610608202824675945414187513104804240464096134377398430335883984702159113113564355873070791813573101974366161838477444016855823113499824292088407104168831155284465357439890418949987417138578562361494965848627773118352396253358265878250360768907746956915292969487321064705482250850876798219270388324551749104908784816797200118593624377954797402668463002844752997842918779832270787136518756613271546630213635255361123444603327191416094745556023897099612863931291595357159743172833220717740320804845245039402180255252178287751550749175721454267263358363263400450013827996613398733222748318087820812936163228610357633543933144866557930462192201701209084945777765444040964988950904718195848515126076466120960073644060582182674553849632852279868498596892828084891121431662986467868516858477044389368862635223762582218252289082867861012094206824270747483539480020687484556094584274422219393925201040390199505189203469688958563924100528078606119374365404431482757494866299842432891581082592165918397642582272009102192427698081829083771268444069174540321980338642958494164518362763459752036750603934052806141710084861624549683160639504888986638491457634062521436002962366110041700823662116927941913269302484869096304969502624386338529545701927565647811974996780028009513855592606194704067794883988497280960079118645025121594872677477042154529753861564067825477629890176413241692045660446629683768914877309742916192230060494443252180204348910712051881572879434083704990508289220496736182971313905403136228803140262180700657131558902371698523704911128061849620742861587154449283115513149718974650835458703204480743383898866467654027972409000904110327900990318493120788491173172646682506654812925475597495969354680858568227885470110135171642896520506461292832107552372964182155301644086454677306290134012827682094256589312341267764080172179517198784521760566263498470155903543182002336562178773021820336511657676207168677869314572690214750895611249949243881439248380278290957213238235462131161888258665639726013350426052497926538955335453687636269773072665996196652831508537115800595273567261896922901030905531663225398311768942127330933623964918526178933136683473870554699619666868738202321845192875276042328493210537909052765055894492958455662938202548304623781558009977417330117744525880285699675620042176575746513356491288805746988953627976375887462436592291959784919627860805838367447162939174869495197514513947659033691063283354835058401899034599461666719771472896579962997714876744932053547405993534598125021661587921869226905293742421216226427102502604237543880466774227930819506875523360861863224005692648986664748203126242989558945954568881886194339167488005594972082662013504607471370294028521455375080842965520973999870572178370486947344054162828240179299209797319886224008763050975731664524293440600344727403426170117806709972782813961620373741868829021032665695170221140987753800447668020052814295819405244769548305404957114260787920165290166728875580341026974940693623059762779469678937951021175797628545955787708261533898548447761500364239591988850155053627517932276398285553880324244493507557267478595720976342728915752985317773316343708470781621636053471640485679900049159114422788179609171040650118548244558207533065689712376442967989162656926196434121712824363541965774559372409856764073192794871392739192735634548610658526192383575466082041801366323846797854395510295108222651183536087477622929843045920454126942230404644647971748450132608801058148974598550242385840211933475115538142201155599579455622204968070076255758909361038993678235683655044637581804845710883037656662085007329216836198478554512277443965508521509381620754943592572128460785338573897967367078978128106559524065165700654150713917385314114839013890226293877718888746199966817333940835417578475507485248038043248324540212213945834802235014487936306365739010501848268320925376489032752831778826546264043782684493195584046997125410880423056459406179622804073544648106773720546002298778630422426485837149601033459409905817730374755926521528583406477749190135480794608499622524280933033303162219714184898331044871618529754571913025694275579836458734293354630362278360224826748579705525718185691345672054634728841868714751740218848737035780940029024969678285056495539184506541654658546096041326610406404278015353469876173604594647753420837750868623761932618895553334822898185065176272109566835638923070302296276481051140968573710799450299433054709830415621298217620849571116015977742378599960824481521843820616722875374733276728209425003529445591001729204183913182109789447371542318489510733879609682298833395671529641432050981063762960314230862690078113664391626099351944178901916394054121748165963243440863714663591373812242497748423739810738306422940739136297094597636500619374935689549164148778579335786395247532301333594394021840637490081698588612762043279054270334079351071310403870257838683565563499485558150057758616191730587439881201582730398522687675775969071720671623179857703815807821779351632917721742824763083410875693747566334877021687967667133376130236487674740132143273890163679769968385315093138184619330608272507092656184575642943777560161430808617849704570522382630316184809341679551673824177878100681634727992390709215943379205289089682520753800597376430937363416117145185628036734467632230143255513318538167785666428101270310226600271748636247662859093262038379070646202453817965197599932280075217338332562944636825119595231334465835967367188002332442324814697178193921868138089235688912108071420317051569527704089192528620018274683757360491583191010227714034529844183819068728334254321225770244044410274439898306371310077054662852474186420547269286305728002190756290148717238174848828679938001753513794116580901793557904295469009260490706053177773654434076926221927743499957620742008106035461458593245153271905230157867220816779875208987431837364340280967633040631183129253079197338876822736239423748486891320289321385989110928095303278496362865523506840497583206715715559690269225747780684858189996383715667575318120564251231759147475361491486614459562075745384566602099509097413498355148803757841783154735076466827695339268900061968908982722584999948246455697032000299128967959066824174342132633668726083315873890922594438784361032755902091424204097548578605597005357030360151469191430900066022168168558535392261462957541775910326147312720645267453466887589160950197489673975471536686161442959641569280078657140791361158521998609324507980123807034554028463521059785418444477136806423558707345304617260816474126113760629936626286191493173364531335482752321735410067793585136732638435521927606003093741073879281131849870128916087040701645632661013401256004722567647421255214220728939048003231921401113393221166020623908568465161421782885111355202415561530559155835087592739333263379208049500148755219322693806310515586876673768004470791052000779334384105942492678418314917680892089004401527070400362077368928680492764522819753760628454191404908671665696610501600695040913035272467207087691896077154487348008275508511596168024374289366837748035408269104056155383630512227892922455877025653281898601069473474324426976331720580027535308552873555246387676851270717938514125470149315604463006088645290104374595740121032097849454779899100173884862055227534247998544920176477270255840291773578622192656334372871080231776249658819782619033318851789243183693220447885189835892635145160622348726856128700966924560148474535052351025680162083364967916316710842697910664403344327223606930645745807954717407429233190248105265840291497956304955379747206839544643763902835266383869079960231663134735963058773018227403784072686089981477071063160258969835631153054028483974952973239757885292411408480500808398891256596369920214350103181558242585559684069366239706316741872961148861145533176322070227764279856886527488063183983262643279323716253781993128369041292794347773495970147131974032207194909629940154483635890901106049842110703191872709692669283294819532689701812844216644327655002675919497427233564061966827472340898776815704745496690003227396781716495410757563088092732010002925533117576140993097066032846275594964771248016402563370534631414321872682618784359510891435841510495461109712604287269033870425315621548691069256268960274842954712055650584673465197417423911054626461629874173390800675718512457837981104263252249147016941533691391860995484121823128989335305004693915287567909161393489368466795542659698655141730910487907805046154134536849823717993850191353201280386408113636133291533800374544510194244913145559276233337783135205375372318035592544419346935519837562951835945845869230527532627499903740252797548088341520441225029808193646669122897442452185640541695430776289616345356715759967670076692775281362388738644043716743518909364555419496824572454921727762403461278221276980030534082362111322860284446662376250536017085634989408865737687614326475413740638366331333381924224227638238921091520144593603418517160509952095321294543153584097032700838610704478189981517414318172182754807283689783639949288824397953476758901741805683167967249704008732289344908337378569311515219690209327629961943752612966800120693883879965043451579375548250018405179419391261622226092750399846377385154747283529233653037629619119147070343779763624181787895012935711000336043073149594801510578301857556213324433424991309243692155929316794027998551544373051033661107492755225640758615132014946691182520532020403691934421038084253399386628383561974846163908901211741856462971710315993861470804501123897067515012949132573504691192382550831292044553398449497937353424815335249047057437975780958403303257132404892155935476635751088987932739957060086584769923205077819906213387491428665594370599111445546352388408740007191553406015471473085343283913880988446523576483410395705097422014401485577338069599915780744583967500701563541430061848389058258235856427511872717525490295872618926867043045491201289255492971595921348166774906544521741852606599495621888930058948208688672761026597301426765298042564267720513326968487164707865196065904136864559637069888741610808120114106473433304466947609087820519653347864950699853647576381347021651955118925486750106203185200610317760712589231498214197282343303264634026216991780820472887785175089163151204853580355468104869171497671499299153448942665028310447664638986094089390920868744219316106352455625206427814808567945952678754267030846870785434058517021115627627748426930841167545578499378835727607446714126031550338087795590815579492843851861002840246946399861681835522458374058087406364574675867041480810496055513561672903714867893412281447161731427730851332109305573558084804110387147458399862344715235207914162879797612952140289160626780239917003970312659741472748766167958891917128260422894399594289543922660976605803104972989026180086526513310887305857420952048923829299006152848744378926811355432269843864166319290596146447867987007292312154083975616517628361296438928905468763325680081576085374057880735775126644530307003608754868419062217197693434169091643079098409417715440006829298174458870441369435659839424873411925126680636791198649442448286762807580015086971810949226852043339193297521956261456380887018215438788070957675719194668324320762786251793528801751109435164829921275748089452028332575560407786705927242077958114435098680882183080306188435080258431579159560052135907545283628961863437764759183512761788491151270389364781968459108631013805128666939606717734380249391571428587261292286964954574396233343321842499587586037141085862523617128630777854745571513364307427238268828941543448222503009721931183612492721746463343702235319576029075852008469328021689163650523164884286405664697378437837708214621396901497459588228660657397822134835697674861041964921821998854461171820461377334543859839812297626754536490247122952420072484596512769881906918542539573899974903598861550407461178575214098817829040629412497706426017326384478923796836467787406525310966544105749877428000468805946441753980386159501693497483494961550758776073575013242038433788208259620805795433412052577661160468035543201545932476937614651688599411001383167343413223246511564411230174848524169723070330525692830426595111942611481444740097733813576670531844384536308152399032380205600392982028125531220936597167866439571428708140132257836293285523752982558666186826806331533799711409956399711021234663051332395281162998573125596023629847858306691782262699445295571432956295104314689825940874138233970623450898706675470530135848201683174830203029788920077488727339758733897129457940282201225320989490749469543396542546665629679098381763607578780052128252784429409231858843381230969780812120134963562477812202855516565483814069275910338556957496306110006604692647524707202263113260807232325002303791073172069149042029042416215845551693553605900279839264351372749389981922211930496245451227931510964483200422773732907261359265937915846471607193141341852443542726120554149256781622661799506307677920068945174699053016113717231835340062808941985502486603440981708581999131143233161416975996268928052045222177490456121518338412398821801479371804328946477551977471417860457572002533996468818714627981761977348280755253327750371605766511272819104619890678943717896606553845339185658650869967602636949919431535585876083850302153796222472571339307029171063351698057780459262058038886340576131635232163053590056930833800965943693627634915851741164645691304393839055685460398705786092146844742511528291135664934355812912670352494869859334874474412245975261517259771047935832819277812057052340725602566281529787391682692838135995101434667691673128453481869743209522474769776155165762761312340013719110266736423683081533482011664300631566420608613444430527316227065832809038221949023454919466079993270848388667302961705110671789266716681993760631062271916802019607914742530894209374023116717086002484114018979464992543560057646518305601052211790141093283859028072161151732978417484881665918628180980498177223940891245201471147329018097349667210059074034563254716459450046810088964653018636646560325662831378961150276181197066815887687167765740912080793325058246455128628155491960044488429172556518369106014498296153350186203382518259038160138153851863024696815171637375302285061260892137273866437902006425136603765573958683476189258663068686397336082791113991266330854848894682988599616747383580290149797230226658574193928871284319287254556090688095593605395819041458723485227503092988669121763295243337731639075551474525771958128504329715412775397006860766983822201762976250055810881691655792929477973013493045311257867599962711511983204366762912196671104180401631293758595401483882379408452180249194090030075264536347846151811162033420263369010404354633087577944891166990761439596941661187339346827460852825255720121437515501176588887844166955239934567514894185855310953075099710473382728592145293574008441727359163805620477291211929089412772235165853759440573486285015374529955443722510741160106658980535226492510863353931333620972045870857449038221703158858338872468393520375370880325964110717053973033344156638920881279060675659465879594520713028816822289727157462929510431765939751312852532314743770751406824304923908542436478245360854781939765603301197357580914125655536659401944935477756591680089764011270262254046658945971788108800628714004476527243264425337190020565321233457141119303283780094417661980223414163170489819161316031908218067595868937930852560749176356473204024593639247877249781593017437513008440853395710908786208253241447194340221898770333656074635544390448989029494925864169518844127217598751980557787630046532544950136052656610369252264091458010614232788606511435907560435792144925141004331709028712763665803630553825206311886163580037876725779571817688201083476595607916364374691092611538636882487371287938382516201583390571440467777726951865546590231760782789441725045706628017378150978278423513415876212607108007104196747320053837903857170866752104594664130898766005404940566684009645126877257125339608048585913451159495421517822295833684711180019836770303391054425749906393641792437519160865889979330118716930133327376860694892649414201046553258681203693251327691065138621033901916342660647675655316859246395447141600489540122509950297815957552472532561013249896916313856315639613918897076834588210056418337594417979874964696050449396047216532069361900222119052072994636802098280640180041173637541359125141157990867430527428441527611813779682061639526486819035436005219847937006418954388450924919781129816770434729088586929610359936589970083142532464210078280778004090890136028695951351969423373376473494696840977389057522390965483175123312047335789162517683020990448172137086836810512881728880999686718888786827962313909345149745903847323152583631423783540949688796277350614627058809227230792050744693582581612177796483345505945401488245576808110996465529670940723680527300257191864207786077812093266308636338352965269821415822622370009068095239507079917021897714835484937274901268219367766148387589810208771506587499769957437820781223357565465947811791417564476732606702287948843720732169063587285679684293449014442457351833767168386365937238887646702523704883667446857215198987689442490221032390595254671214388103281404400248996089866777543060294093741093225256552641439848250122934028796780760758809997647312973967897321485392756933042846630738154719717665001809754987530931532436504196889811952466903280447124754569643106946453261437018321903111918448665881798114516774419922734934091320779339317783274447544753044492346634814656470754284717345262856734092748546299871662961959682617383443084160466866808367714690991496367837941901957551209523175842461479546340883457235751868805735232181893764349805363858561521810663633428434115538937905293752736702978895727718462613402183408094836682414996781338824764148092539021337439141687973263653897497297057745646522049001757173059694467280747489224459396219858421530264987240609689770264220661137818683565170375027815392743441527158088058799274150998407152800183698764670879159377791286414465998912556765858642797750835432321411316392985108190542532594112405954594164058508547444914077318602666490273867589010253692233296539096394538182593123103772910835050975046292349787939855103809487728086268737792447980352350787517619467901404151674880507698236373625421291176871274415212127636327447147136269840175893042978089734658446888023718617451250547042119175435535092382028129962171602500041402752801951098175595323156149512051200249493439553367346630007188092464342846914850667362815399965935285411477404833363539986237297945304628013038299982545936561028525226159346808659641978380184068817923561750041271754914422732651954491872315037793754937689744790401890644722937634409727273713177307347771330794499131830353297668543362404634776797096469969701648319955581484736353362827049153884907461629346429354243013260116800778748391291867431006582164521655961687657198803793441474627060003915272905771799847505677357842294328420200541767300281980195154705086934895660748490257336123212580283264302143010751839016410605848180460971046309247727348244496223939613416563074577408150596158432818642021759371178957043859225426076435446869046184955010054166910560341014173477937290091091439825984274143744339147954464095068705771032527515362465324992866824572260168631463992820815889642067540343839493002089272805557251151197256714953058167051254128178862238936149027014649452973751555850768351674081586499743113583087524161157145929327811560681777586714284609209344771112818678475144600254749260141742817912860339731016934653015041331219360700557152097551969909510433108381919579122612209690772443572014628716885605966514307961580848054196280283691327623162269912949549156674315410118296548967275720045373873363807637857723276698111030666713517575888492713611699043158398238674446306487129972571716442233087665279583518023806506373250044675579214457019674700875255593055836008310900357841584205840835336834679804125871649303073455076611484812288261684076594575661343912128240142085405356925392934635375285835391529463157546943715475228007820703108814046254297255631836471489288927371497470943635233648253627448126583068960224347879726586023742225235348240195065997297768627689825709390635349808805771360131906632858975563014343639257755132613206985145770868421390117998640688952245268336976690924001573182547282047418374426980868620098843124049165065474784605783341833727934182522201473058883455611767171171764868726964832887175367623854622735853116974285459733798348331729518711157990302824005710278885288213601059670679666828947595180270570850207889402949654234426151748692643803746603065855119590791986330040114342139755632686067454584718145056993286363783886947555932475343730923576497235744271098063297624237754378739613030492941831782575677671524073331860050454748620649213728248616852610950183853773885357215554261996780637335240280979719141915567570958318799948730031620633994761862960308398575434563376163279640754726766712521892041632230708564694139903833704296095491823656369209405804646970042923244573318489231447510014528342721516914363998952875223616843429106121243803282598766766990107172014011272209346824871403678299961830239490381279502818575991954904391673581062080144824420036837536431342086941348801877337937929060950798738624773436814329560768220175642408130971029595978180929862080063602895255163651439461483021608925500674587466598093646722379749283506171529495137880637306783830442071374699071404394524999443491131838747761054054834898477156321346156657616041086764456654048886727160487679761581259291586022712821570510056857230328286776291030927922542910647277069877945920925187576707520330062932552220788696368309437258599860877521704256224199911595445018045508523570750661884393623846564356619927157718072160385744109483140440134428722547199705152036413734769593266337002743802341985379238746674330183604301449914511431664599251715505471718089023341775865645189481447004517827281984311974645456186376481764295169026963550520290924895160701202953769815520380933222780143728791560941302247360773666983102508352153633126456350419484701461349696252729030177555435414194326670611812222952511877354037044521000694222445105900937451688444582566814427719274198056251371364988488532422482549660891772509987060083993029729992475120887248988046150598813645770440966993469168219433927120737086506856688319713566642718501158562134617722754269550597479250549792982019617050163139733344745042393820029541508853942876071315398606260981587693469123622995485670032008328442448066436378044189491823861820894406476200381874233377572171409010660630456416721884185540452816460525022551880194936121132413471020077451886435254124163883303124992507019227561515827344144186687604143160366285247292716779315734072681500528291084516578584816451278309086666417520193258860247402400077941124939679390571443997135724569179531019956598167578863415119496492968595670274057931351843730816831446330553602679243719334771079642667114091372547550324196410284763568234716535786113280115965904734817787631756960605309015656647039208350896092255306981236899660181500764583677844229704039241481603754378169564099628139254677553408149769204033270381756074616945306673040272046258660199774382084992781558729906078500982513265452093846515052996319008613809770858247349161262000127193457365268795961346856429248738528964759361178767480391205576630960650748891475055341322256895949061935311094453191170055503515577623429035337545203854528594671217280908018564704518112865993354410059226006591522979555877918982099490261831365312880164175515736066638866236579053570239158563207701076558994512142802345865814762338336420351883474820817840308271670460792808956642587325513115752486227979779881656997637823185605396055112343575632054588771234586306275515179122669658091951591704732752962696878574429880847198023207305156422969253650898663353251962193158792417167868959695054833343580384415610889148589683988282209659230710271932811074388980763824305932563402475733483532351730109778869669877320522981641385501363369404575277092999786973211825192214161098301436316948054834982076925819224657133518068370813767418574852553238416596914212324275593321083279255157026999599251398154050565085850892481435016629924227314701518048745467136084348311137256850363456185389686163098762420379587465373073922351802291913851065185452429547958032168004057406364641317326596682028429682152539994494137468423659871825801476372801126670146894673165516350490210487799997891714558696368249303814476671006940316336045776115534007009832820181583930255452251532350723933069094216253325076928104576683732980546975644973320974252539242435492602120858749468272719502027043459945988717756510554989598834095658292818535359337886798027676383624622691808030001574526810909750047766947771302883760691345392224446436324188198635307857041042616205274458444847740171520411180702290713119135831142906420034567299687494184628864717314616762870574724726670519997080208731783796657586600119268187728322422256830974555200480643378239344320953790976951333211185113290825331997573516600642472129657461757664079632976646244127522247401699750444467569189124576658153423700520265627515493161484715172065987368812117049127485437033415529054140965840368262862469985835797643416422465964008708146378185863669915406035800061236186296387176253231918581481145392080199425727076256715668958569234194997055334254467846743051898915839916169953203868240084324296989699550619950044878334187336075079015671461579519657705947569197895074787974550568768315737703480511836097346824291936958798075890307116715183569670855182041364629259012781068582804709796988794970345257965994173404360318834948054424160269589533908373585273096329614180968383820973613456982100217427896749279886157279837820338380477959426685582258707392220930539099242077544055546583489327830733699772422888616383398340946598362946834853843538202423560169477757840284934762100921963939599986355672295171477049457438926549866002730508740141121593858540879935704304483435447735068289602550012119582198855229112705355880417462713480019176060992779309966718636875098986050175994928756307850548797010424765845483552697816018316701737964119982208615897423603207422222104408424740498572487482471809441462321042580961904674494963049685092478609380333205778111171494686723440573147815018923294139070441007224351353627988074132201592489517339386684380131033654267789733603878652893047413930429802941695525815438767699195092446681166807597129235545802860669539374893907421407481243958255281576490591606219306198450680079812095221724308178147583393287132456688076931125649681331007387320897053812005971706094394544296400276836813270038653184988862697784126142854622610975322086962525272277492259831649639221746853147979908601006488994075522515997893858871478812726691049530491382278472727263318444352102339036689261185822510997572319704086041234278169608381606547644399951468823315906405451529647650710114121369233358522084384112430586560129560036158388387890471148666742058480473712377126296258156499902423177839601869648455923381353094826043881803830129254041977626520401810594080457030577831147272879892791223086308474265606523041383215831311863270385250793222670995842591824338782875089578129090734926998800010753786272340994721561603881066015922597266440508383268063921651909498128841307767943938200150130925436116149478929202096962659012794221314192096671092271506683319103686515473077517702285849575254628323967591843954211798399452198450892694720804011312836720760105590366636418273075977750784571266049928386839925789727091098076105202896978992347529233799202271275411377052079175817376621745506083969481972299444110644540913468537853201297785739463071658386934976507975148514685847663085351802316407649157024241620834275788171649288657000419439978407101029320191506913067466748294572793659820260064889272951627269783664731465676111266702736141294388933865120093354119370307604767376416764797002127015890237780566983349170850482519495598865300369082672607538800074015684609732611878620479382540763886511467807669144564026432214204360005349826194237400255738279421461065889304025617303160731395428582217464375734523869988840209975051681487619368293658263049015399310757709250944469254356618719555191711341411282451023346441431686092925487830056332708784283430199833764427586397304815010169813671378144746966088457794295857071855049484513607037094599766364623341642146108511527921787856156986721874789839722713231722463106928117159871475657246716346626012579327552745605196119356488333715315330998883559736638591381716954931906594609889550058923686078321653083108664151143242437884265479094450684428573335593598390056229880372314939025311716464807050510348989858313702775399195058975843135872914668966947359150837513832614579652756492411394197439410491522859997228366339243444045703791597447497944989610589381470977215033932690250745927140023860300308339687256706539694321515251712192846655372064402847485098671087021500532253363133757985768706506394329800443945939619926430326967230327731259139192624710170026289619227039918552513435801459887059746481108764761108856117930620070812367871527706368512691788583081457665155333159352282752033370224391439387998425378207856848326875407104982603283802018737314347976363071660332923078472458312569557818238412908169651209215760958093092803827397273180251348663498133676944302875769921280949811740763521578964176055913459354955668896064833618056029595685688898733974171932578764425049288386350205019516562638048491133422759361221938954299275424804829576635819503611382427792729945093367809962203064428449579345782636629029223870250325505811645244783757563577713831446101988073905599789245362939677617217019677784193795791580080289422326315311985037521101760051173545696721035567240150925365436522075773109841267606751686689741428793375189953563788370153760922821313100927916565334588976482908678615666071442887129687270445228933930945478214304386390605742377159828306444701628508968048158129311844441416556377443194057528584865275532600767949828812818003114984241874427228361784325074843784839484512002552038900328239915961049777045783025465794116180123208465990327873304354129358637489379468712008594832598260720064005711037891002009732545028866945428942055237147548594943948950457031596915871744615851951614683108812213974061210279186209946564720079002510809300840417720750513856429574999580873564599379912583433373350336039931642520888760370999583931106828468778047583132654529274845338190630759142351032528516081257879439075563737955208846078651613185413074981840908584725879810181445761730784021293978996858993162898786338437472684175078455188884171209152133615262677224838118867516842211771205929496227482835604281802090996270749339890573363599362569621829680721007651001538603619729746658097723016734212105331572668537327714102627401258282641412006840281116574766377905195235713305842819373854215614625278652821649791327940645158482561688497779904293081244236920230451692025624841314059404377692124913893313487374341363049899156066384902129443315999181023995296101606104405074693798666820121584394524314227668888919573017989789594750155375389002107381188206286943155873049700724341138600913796320674388526590044359728795681375536261679210624332212743222886443682018566772844139143480804485002934835745757548741668521724519602689835110712884917373151367650926885175324356077198335927225742716803902991052281494773077255352019903291463573409422324768310847706742895160443225442499771306406619176105950312655986326798325085589302260303301608275232151850614663937623747191215253978813263867608854574140630331110202911362427837147740628984699483444420386221186523582484387736432346960514480018945240143023731768092088791887800860834601974213001749032288535530579252791551651764349883617821554729154206696055068983252336318747550823258199867023988335598665476551558334405554896788790389200318194569763328971281830549037087441685900063004720173752489035601021308997980871711886038739996795050225036729378896759008471076044327174325845146441642201225222359897210066878176101055257178543926904758070503003847284699340026243893511074479112424227922174315125121987329112567440765014084675599785680102012912791357755622969191147214103396260626131072459853514230221471554255276219307045543939199186744369450866463614776136174753805692618196742356530994885416114167707714172592824889804149511758464826006987704894517770734635022526319509346950311166430154101895653359041899663693945884003113280878788163420740170762726628733692181381703312430423769563079434479903931938418102814491035847195464416991843309368313263547090482573230436214327535515880606318334798026146281673206100950044678780150195461986751155023708991677670145112051263164076328772885556830645959039946846218853723986701467394330535451834600155604997939272698624207268996063249639001116576285059309796188494673239092490135589832324990763083017476286547325634334324101249275117840706342557227561129730626729628554658591533106688742376107551752017820993635599436068830709443602600469269056196447979298485202130092886741782209002862014815109326180311801988301128141208975785112512531670102850980208282465441772563731282893317099111102597895021804992273778446492928854351082492074072071270032283268827118164539136868922399482351266294375215634510566025791845282777005401785212340904554284353917475439515661110228321831114487122068046100245681431560544066798504019079448390682874077503158307476548157970170159951936541921222543731463936518919259393854178330148139751940304468347138808687922411643691837096772451800903803323415250344823348323335959588608245797809212164302372473825106547061015867965929089591465237550816840233488510234598301353169756699401238302930401412761392027126733494795943287080471718024235459510610245042803396860581137454602980582235609600864698380522265199751346170913752513745363544570386082233174480530919878682915029448350755630992929780624854547120016971036163638671538759723584393144635841525456582837798483152535685138834073479374883964948020867241909475818928760107790556190607645963847448484996418934283137182844329757375753505528625760231426508099415806301000331862664712578740365525900629616523771180006491789305509822736403808265557178730622585611182685954276763590592838581546948312726159338819204941945907885357598821862267517666124057432385570489424901186485962849675460794924720280431646041459306690478281004434440727328236952007308925143957503469613923254630657503890446620514950001197379462759768034169582285790840302340712688142389337183547786117697931793312192602368018842694052559379183768445217274559108039528511896018328470917689702004953415857574363723895625648685187359849272607677230040007199954657568515676557400512091753383387449394853091591626629536504154368226460400056255943365150621907397738145535931961261175730351229669140449337676576971093456014182461814636423576637180017561003452976266852508595308875044636603748895418123212842032295520613017446763506624530135834231639583074520538807212991940645529009156363536639132121295645715249073718602407437353502482084176036799651647112292726012598659211346631886331218866138200965824311992458925370528017300692258794434618414708821706404799902690443016361844840519575453252078674199729204455217188035496364231594878322545108015543038948854796956413446389465817457068773676555397040127341064988793736497161587854196925410075328364601888548066306825329415183399073446093768228232052215893709673524568298264081685781251514840236388274468508131580781132679753960959513576685789651443042233809966163911183262787150991709036179745782422744490984672983996359896131468178658085304853080871176106874023182166026463038416592556483459474435672622784034109645305857564611830118762457002935760316265023867581891189145759580209468941145997586633355672479625647870204331382882293460529701025560375024857980849261639987946288372811197012870629252110734455691471838891181745716008414970014141376808872736324488550294657479034116901975445528263239205592224403995951891439584295450698042745218443676689387133877204476650128098509071501423156320904111949004617951872038460901560803508467840524633084814108380361581531355745901120583320392499520369876660058709188182319814237716291089356714527112693678098066244713382514049721639858165230355317128888877446929423874039596526281973895874711369999874839130709895292373064112174631111185070388645266396563931722896823485933249109552566705532564738672879683047945249888861060922938247000916027801558209995512736669106741938476721178286937935521968633803177224504035721375813713013236292535591593453664817413779791760169473462982972540719324294435796418846536232782890808616120581418089405728980235358430059470693084083908829395874173533182677764103003429014074685965142125257265544616304851004258761993008800190442079868628749163591148972792038198222794854528539632408246234435342280552684091352724996123861044911227439620188197399553994647976360986981965194707052560510757523113498677542451729934413851033597687053121942830201521364995972979580154082265990864397696775294225804627474094760571321197989179812041409562948384980068076020185607154213741765240780239933240647055760075642209799630386250872305934910422573712087930348817608316554577706504154233139647713904498176344216562186731318046420510421351283574544415907456803656470696829853429374894037584737462718857581292859752468239835794331620361900217583665250764704812317171160751612262838781867821654496778988262192557748360590332993591924780067132102410089521140506907776145185625717054621291037770824930553132406599702222592295316979756005091628589214319619946873813725196731973793687910969970810097996152801090203704456587208356913260210545306390026556450664637906885043077582813588249767619401305614962750014826723849683902598108898921764569347781964263035223615380364195629076138589490005175607599287279403713554537107589889573160267145067516653270383207883077374222127318423782784347542430073246261461218303362503890418857441979683946225144740425098863259091702542823791932756871737009863135729728743787846967597709109412352360406035582117130310625208931110410196066585947187955572641495128916046414858739986817710010054142996328139149183641726230339931311833660847715118287130884973478104237860422617340131823082032327180947902320086360149631532852742843322659626853425349318625260289312400550266032099387520714526229316609734252026026165734099039994135318800888709396075564557802680635416663507999427006725433943535387679367933955629244533622246842976739534447092937865223710656585943433815199199163601322070516084333701770877616514844624141914494944205230215109742702057829744428244889850860082294923346102131043405890803987492326602318327737870280038545433849908885049804134175071957975885143192021489383659294067982623959203882146201553176546811939690111962874388310681001971439893627144733114319964567515150261213882826484549611193425908235185742685879099758265356242109654143127777228925091047444330409352505233332355991989028296386497597094813579094589014506354422666043688733663958428624615710550537449024850323077427578569052725052638065249649890616540417491915282518679124050497741394491699797445689486975300853271061516436017222083845455358343525163160796864425593984684822835020964864049856440245038390751439928356708419699026465282656346391833779684452822314122294354874701823315602200727962017483578917352430898192642911147360485603870836134116271739979785087698160356116208777525741824342253886633598646531373823399095689331041481295808764017431357978802564898120418697826569018349117701907985766034749126541451365833983957094298482141798110757667089402239453278663125201056526897113627088099917721567869107119678287007633456059482206866467306363396322385974213717454225147884350051638713523920808380971248047794064777926190084140752226628519985622882195041050019106013799301850000145086240585309456831791333032006579841041078584523716481940930436080472253460695564132255581092987265791410806013717753977348086760930052634590558924427350674938378066123225630297157854229076877953376064469467166405138351303060228708571381894836234596566549054882196720252622877711066538808871253401390761950472624381802600665902150395617619639740385706306707442761767579306025941909638318010576742277181092025519347865424332568153601651945185205732776775888095232916541456120760602425155128635899271553774799795469310687349020364877159747424587524300275496751931221763328678754623640379324824200249878480678635676836084285064132549222659844323974058855759772153542017541270098822050829629563267170515652840694954039243195173797552637882799622725329850879138949857829426918784637355306863778096220090000525433113058604818549861361186841012529138965630967498323240419143705560788380557798336095779093849538368686886191152315855291286373225761392194012298622403335711858104467064452368088850635324431227760396034372830663092584579539555766069079335957324880059444871965206482523942145390939305282220755687699450968339056941230035914346857250153643930544264390826039178679758751366889099026488473190558064965535668896330830983696874247122852888035771137280424007787631548583845180847683850507047015848616640678858443522889272182970805274872732873171780262718294975780366172546350947561161782137030373219356786624254445122585945629440132228436243264159166390629717550828391983247386712880805194436293100094152981874485894025129893936541234985414836571092763110616681083005066149862654038056618931060062949725496878171733272427936547508710758422183026647931574857721094019988690437818821177763548107345501504104915280058047528170939695260372239107252866876283334458507845830616952284591459401346272434938242992402880967660443682518923613771074754077234931428420483280455671275965756778155879857651824189306191119881054501416690643599458230515291814136169760208135666738452414639545874917406186347402483958939556649474837793268338655717661249642483786522998287589530759387816593587952236323512112984826392075044655880681932101570040582881396492045799237864601242557410669242626118483324519753896793456903342812700634823422220820968966221772807197942038739736944814774016041886150356686634980865495254568281000749990327425619006109978285203711151590651733604016512359933679536116713206773118606332750356814055696990405775600555273758776368393408055560223168218634769933827702341120981853958509737912787839651413082234783435551509931803148743702696894496128851631327691059785998329915237907676525961202760978402041737330674556024490373313784932221983942529549390084562037318743511515913571923404354063695407152759440808801955801774839567416315492751950627138234541034052502353558771641158444236119157193576306875272336964972651614469176604513337328464194078283039293198338841467759883179033227579686385481051574024971031164192160498552538319070537306909068028220478516680346986054045500493959335585740826199935182448945127540164580997499199757911421380070365021283893549585244145648507734172143163013487060565390431322550471932133083836219879598791735849880932950797079672038215651756166507993947984465559151627430074293527314035137836139435637206021156357558658753812595886766264123071539831292820969937735588356225736206063286838435882853101948601960601897569488212821737274686033447416359963776844948805621681414942472579051937142272884547790813220101127962918620420276700265506526265314499649329222996669156021523733477970343683532210916482267965259994911414788471916764869928631963619001501843885450274003219260100526938874423150930682364365137822102175899117015924963935927136092622157040312049804747883236900963960205384104435405071913847584912343884308593540222210593863299133948680290794849754932204455376210181538151469385781338908449940989508309514220382113888262250976773778929217396339144512030422260548596155945230210593141410278132730082868536132846033895554318520986774460315364534437117722842689366086537182216412801663716590434572670186754988053839852896754917379629130122348792651357341244839712719573243080527120074727560878648294693615668805367630112693652843977853132497181608981905907979559950466092194697391696245910643707328867570825286537388311345435447660333133680769761075634059436179075804806989526633300828498671523299949195035232968375732633167215535908052178011287649261741803871480854546528573474551595861117112414069211180246991315132608144844924199461176703239749445364084491088929725304932682439909626461790788094037611881560188250188090854025531824478283887403175585343559756171932474280052776790127775949095316354317152696056573941204342463052929151173013735877877363271146412089063576861943872385447008483848549502962991673144800557290492190146339590475106493392986513779516194747216209023736045047891342828060434019245756227044544362689382135557887266415095885441695689879263496752009343787661156532033164763030519483670536573063342128530744876720876763199200309752454037431696612418068406378859977843089120023258925216267756366820975266292184053676085789376977461235964177995165718722792859126803891940053664363075712546793655161649694707537896074228894993301529056818438278370037660750568499269880122190329490579806243483169251271487194317652945336857333782876395198434370287518418471533218711658840830972662288551630211679437358234609773306133544135288867492261605420658286125659556162021612146774044285192814046471322228846720747746493982479638777410773246034483563051289604285709790756231920129531136050926722041505435017521667130282077869417724939158519677897897853187035416869533574033580368707496348471325668378981022320852869627662227841138645528530826589941106670941123549772040016163306295599162832659859005764587231682247392196510209346029625959182453533192802836994744724406297854789868154448729943725887471398362034802405096631054537891002411119234615855000220985454459978328475591961493501426271177946884105773428447995279581113160203004486523997964126951990133602864273792764692596524939072702370325645878510487244485494709483328668618416973302379488170288605495381778014314371182626630089521339646891005405700439954780122809546226197134690813528397952605187524512955574080092886882636904338790521048755374012217242894277617395014719278838380711174142268700885601243992845037714814981723884654254302470650480986643078885130393002414544793431110524490000531506976256573934485765550445563909169253780369602731837603422817829538748260643760858534729532447914542651790518272398273308857841982578431806846439050044497378041158372448283075676854649039050789422232658586751751378860347712520846468857864825047312863509023889479506408460684428343325993497725657233237718773461142613689165671878650285983523836589793741304273367852078047620509385371730891969519466538176058965077645365943722631323288481200644612003814652798808093721556277959647324008838310920902358307820499619335135061895753298469835163363920419966900548950481614062330772211026831920370798372050134102170837828053014329601594057866376023718024569223132784362053731253524645513721319113561403500669120735725247467750616340202926210496832816695091832300098753337747922140968585785169510373051178751542796694209006482061002591390008818436677587649959153769805207994797339738673267449411725307391374260174315024966623712212981522024597524026221761981212966937347104139586738276947156288232094500837162154460820805189227239857992724813157072125871420331678447122757016098658063043365994275781042401834328033235606074400248769818237216351095789170817569837983049827418607805246552395873165498323381478658698884942832384648096360977344958919024498326422536144063851317897536574919813898435525416519064442151847901504096300096807089266645074325286720793744053161348804333422310906434665342799477062692514972483588378465992537134117911761378449786156859816327878841651869284099797151472874204985782875966987770577748635904210631348916344780761883536606516900276602567034290864002572551161635067186291053132014942781852684208832008942979770289239170193338940335278955841656414391880052721710940047437670687142480453686017976012485554432081716594756265761707722758586835374761476373514040708182770470198351370255019483057828083176334501063118488279982157237235772227310110363497157382975480168875970976961934447990094012215955301245021420155007291352414869752234348371379735869912732325140220015319473714568658461755091056928333624975649566786084421314515573478678537989459858430837668518288669250197125305407299830284982245368101928324718009776236281542154480544684646385320602175235407024711000826327735289327626687374193075250208603040456238137190783359383296282823335997156927187190100661245932807288156453047246783906936548289584551937315033760967029123020002246835866319160575777840742054691567591742051169898973907293773189200199253796202936862264934836227697134676123244791942314135889254280580908151419279652083061633218036159359658644486527277945213049177968865945180879619693119593520815857517225428937795159537971358459906926616026567437177779382803359213854266675570565655584711471056133512798459269049320568549913785849203639288513493253787136507422552122150431620891795679448108753117956572858853833759324833985709804176171217967366937111763693954692775309774677796291634433463686847688621781564637999597350863567556901674010591370452625295964871432388506751993788709503241731195977090469023451701225719482008775096711495600202878104089620804814025824892712698968147226213602660728621784817761244706829678442473969179197439664365054208890611842714566813252970640580248764153172319730529002920854982244543286180498393929550223172627804865025943607482145215988419462979398340613916327182992669014954806310909011978590137615542212386120141594219272061046073719477873852422217529155019992525400812183947096797334066738232305130317287219597839426589907871715286826951916563312078913419937703826302214138245726141295751671308642372372249171247927703674532949241724990540914673974112378090218943600488246265184507600862045103990138142546003095438316917657852481117101309291133007116055890663960083854357906580929079237232803952228442367568903486161015226964924024643506708413152653985819420105774230730537424865269663410126588146900571655585627289025777409988764018640540959473661582832261846164239439263589725808677955104658722639710480433698339633500781113946904455579462441545155627924995964832008712658811183764914929226435019417760543207397921660651112962972023858605964901786694985193884518607026078434754329370280756547165593640751009457274623780043964723675833580152786636453614940076504192120420462457530726833806123226709250241597831336936955325418895052830048230704057533532318713945420768121860680493974926036913712113836509107699909893181208052018985749180324428401848248773255177583986573845987792459984932477636227485775843074975500218912864385029333337154305781189839968605632285777211187051728881850395519467525641190054323349818975294459998978389576343304391698809766397480737901880574142636769430835887297829871907030113572115332509983938073221104995764353364056560144092891367803696627106200631246435162452650340183928113403251139937704789542731520455295448536143744469591939360361135477615123596296228529185750731795141080145773277058196512069550680560910646167050318107128055761388950781631981566920522135742061700859271133746116406589304593407822695836256655711643438919132257672415297875095957081065939998335861908720068523591827410033746879274847813569888820151907100854272779229369697624154004607259031972979450721423775193218774643118748912611091918069035510113886572561162384873507856344049427391554088413564218307316575774863161057570445028867479256886727492634327039129341221705713328137801701463158908343409952149998834609250779084297738524252219656899649512601085001866424811402931978792494001973053502680355479251100841100519868611360168344360622405404807762301326875552926225997990954277706805494921278466445225056917696700405901525943875799673160188807919170909054746294461201872580792989809409100828223456127904559466521872040797940942088553375524050245820670515333836546051814419260707833827536338086656434228754488270664985200910541886356730787647036468004026566232848024837763751746536099755176331052823246003809327271165847833555015000145049187244640273936027369457202404076501057422852494636833673296967057405235909394992409195542089531837826386362768874303873363797786344557053911771507500465882404173973685172492052937682443082440391123850434151581679305093454223210789226651434550401697465919786365457073150314108784468767370165938599715241688621133039081682965487466169651913425725306289809805945686061589306012294868850905546230042002387643545610419613578345528839106048056622957200959396263945071440613795473474755854899178675871415281337474163977291517059678782566463153406345764609521589312181395550185235462587026199774797992401779408372134478369313946720649615730757431885014544573720618173353819116294861411116437176576897240000502460117960440654444925794820864898312908182878872944104687912460276563999014266048981536400654997304776371879351805080546343555176458149097658601674179766406844064993352680335369093225975033412895724732243586895423592556491463527869015295298485275735109046325500904373248213198248731571871058960251506305055189290753494913802446324501415276603867262541647681322991503491521343187121306502518349552292522380608196822137721431651166713771216867905919512199103047767974932965573305871259605068046783545555039199016803158939501752011331953615001335158180800451055695055568738992114857659178006253705658047785738720578418300419458114758789940322143308731930649142496914810755614967302286768474626828160090364735348898560557976908654760589193040108132473082131022448562535032047704730822082073711641436123126428081823854053456044360117510226704975520911149119599724435256763600726653190658423651006275065604801326436483103741819926550522941377483722335515103193743715414701259963422306785724124508707110545031073720275713716409720915177201449693827336461840200694114441122361467537095404908090346944415038759149003282221660668276303715204014273523490442681899550240041585916494457202116708854855088255411526872806130352610118842501363103336661199127808489532329188992307660194897091748744264174919243547942221384563550975724660216791928707836929051454004844741084890622816565226860476183757490858308519896086000496931635290142717301996090930743821278709523070862825127068098445174164138961639625987674942407573700502735963614105081150099503161998991744384478482477329269503931130333494877633387396306477733327164963858110366627924670771423861693732989074277297156448919643456919530340036846581394873351724976486957374085444721087381068778445937441644457440191678610670971143939333242496945426486869748857060109902887910212742179127001860235143564358168222116807576605308878705059253658114402735384882724510393809060239345834619754680931184668415731749004729925749520811724187695123932016903743271241598827838185785215007151914507075607867994213704290165120481252464418233777110954611645452461584663919266527134443040885153193793462200136200395338193688490791411084056901960366869993106675259098611700054865725798884631060387030686235157828070465127697409139023609012483550712199581173469707021081361519366996627770084513107559645686983965296519953702454879165028257885438576786524830521085827323056662933268599196628830818173369139041201896122606342459771728683654039071583409650759657593219649518056414087971574416343608593408686249957170764789200951573138214032760632173893709901936441116617317240146637329901507174458630740503280126392368605547684649737709745668790267558893697232389507039052994666018206821355587987934555074179813950420039927748246500150753622285611622915436220277602480858831740872223181000150061013853947484586274030612313741456268524524421052872747159195014579217060907521248046222441210273357911296388338268590735518474265702141658466931157782087142736387800231480943914662448269225269476005822362727913005756528548325840671014072180887234910706619513886428961106009852399009861674611308406959806510381523321118449688645579650660563980532338825717174419762077856686339740293550933749424861445706674329678063295975713282903459679852005995949407362449316905709657840177387867115958223609472697573776361533724408346371500878853934563395754177438178088930130231841448305118473242707831425372770650167441711089458689453239218354488003262109806032016184867168637679239037253118579553891433537584530259251395096653697245905611505543342833790278611621308594377488108907889364404008114792895900818732267791180749910438338341911045746843508191251615260942802628863519130719348146380899418407813162013679309577367242008812965409962388575052786561118148333338260487624693923107395824367607173015337776410204434461854047012622465990233897603111574291522897968720567969040436683291916060045684568401627883472429838170178653457830717352300842063989695833158842838110828458082592288390739556995990649635644457501664630811085080783512210814696064224839070818120853237895606718449280372782088579944829476068371868375340761630668643714735105463694971292819936189867404496246860966939359532498973440636193506168579834108866963906931641620652606276337121772029163015712654885218323083102839314828561680287666975864058860872947547606608657466014973011008480625735860244848473728092424736311916364192749009477883138942085698680865317379340145105652064081316265982675562047503686747169870155507935285798208816719319696676457413085839297122583700557699192267886133554622168229711578037673838902804812955512711451397179310946347882898111761322246803454917878155723376530915874873801580033195337778570862211866365622342345917164236706903461467714731241776883893504491878314952938580461436103771727526372536067870096799375925022728617763858047373058426819183101109633229714489113286430723337827512262133321885064193278551133562871522209441698752875738302570361789049390404108135654891153002899178234095020541954382875722253242457907579912091888732306098078615569187135118832443929326468394406600187662701206348397158562178799516939119780443277331820430219567052312838571394306721536795291536446625474550946557889557895216444444160390278772735921792702580146573262007481827465082252319839036400580787062642739850017001063161192491467533842683768648611509253007187006689564028283930583709986462028418093188292942252806520927394935774229370868409471011904195904178790045296707449006461726137157883140049768683353648822113869615657116588369674338926013782961244834222896852114420757935779697448769217114344713158002313283165879957665277261316412832368485721636950882302883014382861724872729572693275405599611301645078514231711849626012463933663778474591862595344234461515348140728312481237520920494092175263981333107328339921818986857283824045007333445487380450278924999062550645554131586099791300067210258993640500816522242448299892276991552129115077840513480686138240390845393758542797507003886377803005745853834963666786306664732779654922662455046428423035373074505132095135303874052205082982842637245592109583230369114980488021615922454481053838716612804052047934118396935358709961488431521022527906296441893046258968498843726901919976627285327999781588577387029910819808659653154029273284278462436931596451632054698755768211388494021869861605775071928435404225650587690474587811450440250540737396129177766195067044120606591506107132588838352216474193239418907743855039078095339933875528224327864263835419233802559981905039998542918129386991091832905376138986286599084127851768869973345852687109912069377293041956884731446611730791535255183972619081690566683180898056903045232637402304689181222811901260469252785590639919885017196475207061336673016951637908054598904608758495828117643297139646889543490984451451127069252125563896611026094563845890099589849790679044243464518612258282810055054291093422973149420391633618933528117966152970662427257553677352024872656799782581321794837190742932156646783429260613613259190643923919512908444178678882142866405959115883689687036613033062233117415606633221274710766220443367577073257485126774701543908025792939373963516213720278248588529913522365257654649784201734439246619705417916141798150527559790733980263946874666153756066507937486051112334748859189226176097732989647049038219578610733752644189601271254284801211893418197185784096435813437212327683676981587830062525177475338062423531934241991406093045843423816706492015069361600725271993431902418736920650543980547752088839427275294383071713584595415557493371064278630474649139474386069544316641907909764924747169297381336788764795378429423954189990949915975037115089921157416114088495405050935188171271095006466784160286299291274208822757322598537492748221116182676745433896199077521464447372663588031248115997130679900843275176455405384448715358301326843156051788199993412777158571808735138679009381959996653707153971379553152038164833043677732944702671679889513281818516603348612923682621177131454737027739476488451601159466386188905735770128664665704478263247758588866384039334739293317954983497639105882199337565771922768494852282491718857213330868366308533800835546350223020710356799666842910543829881888849435254101686121665122458505307346133599632378893844193519256310728254810388047772820772971969930192771299839976955472521624072705439174708573562398914667780537191226217304293125351907844386052606372219619533619726438508260548081403945936842697001136998350354144400795863392319748211394594188251711779850831262328885828414358033667310718057749735636821997912930310809794860149121509646632107587077480458593477299953718803768069947600169017779980600599522676871869944592719633222628026143671878367226808320825485194356555077804013750700375445772768552341590011039565589895761955300921217182796706363780073373467051747638961206241385709359658140884668253035261271666274177552621309885310981463706574614352794738957361731325946003495537494947275533978645297512986402405463412826096990270978403510610944319330599297259707125436716233151904217303557605391135332971497647772266839381849621567071242052732573715973468423946698732926383541223245181197526500456379739291932593462262851951827923476499030616895600648132891621836069315872904406605595700228602380124763425580500171896886238210463799344187107113245034258565924220107888234358268491313004675794682378273883986164340191797085669187960245697472281033186406580901992498158457648341391148573257147465981206499735058429695585398073229405527980811030787773815764026456923049587413283326280414422604364885708063870136682951954290999840893608912925200344866962747115815459623636371810460797335210683221537503564598018798930538341483616276481769543927263374995127814430830669904119344776867415909181060802446675028336935236496218763074350816419799747352999561900682650145147452620201760585328507449891532951301727734461486777874530823595567240718498987186428882288305118971884792879290972693519505722075792572816770954960256224760119868334306654335023562549515292148738688818017466176105545935803108137530648315442659400046877121229854531247045755118519986335449554653571928109797095417911227571120500434132681531512020431786615802354265635041649484655201654502981627459565200870286042311062706700151036768556401817127592240658685202673946039967737210720310597438496462455923025655986316762907130783104369747671714975399589891131990341672101876644966429776111009685056730408401690830821941473297818562092416973079380537452906761102381324854239900352875887701868514201916218916942462057608990792674418233837815564592367094334155748569401209100044599370082450677382345096438035450710447540869061558641075037398334258313338072045494107351209306362273567776179196710177632980792822121691948430293881708459880093980114616991629650471693589611901770307246472427432662975423198497482875546962730479464620774608593867797242454125401509951075630167424089899526431372547876158722754321477417100726455022102551384357462710523767447028155207491128160537454239245282104533545214095634824338202418447217434629262720653083947987223062200820911226296771737033517724316971900363297444126347676572886828653547194731712170876538210853741615892262430291548953542477226990399134828250160780406011855835149396271184282558577102089461835782395307100241203653495875339542973790036772027082209403308669319324093151633538480791656589233685117952744344222660428917958518171248975870195822558965781986712533126669710362393503110224884333577610301080963611157860621682730533700207900856736937518770979547120468444767068062314017557839343642233156676499659062093247499655297822581591256948443851481002764529379083069104230919738875468855507362677223246569563565716748337545536406590910859194788701505736200602743948560078376553376188323335700107066423686965721459207559421749921642367580800595151671147328721405298754663990105367159938975488204832281137827576770182926614131171977046321517654680327884551977226059505879611739148311343014798437683374378269601047444607096219538775607394397819969249906367802792249653458697835030669256364789872204671970821108227777852107956999100674561079315251769353484033584978363504019075988189608492394757316553147459934347656698842255977981847029214453485712857310075711358173305030198604964836412055571741100544540460000270090531769423187633228803347083814823556553636220580258321544206139016423066102209853045702570440803467097571890688753310950073038472145588069555953633690779831678954489143097345730932733228585707418309589344129791963172687333536689054749476004730073319286868088701811729109040518407911437092902293940377506170431576702249552586772537090114075437781564746426822751433698705849911468265141378732635658327245605324720699058215235533982482989973973656786343529382862995726741820787137093467665727870763253380701256011321151255795511442380264237497690186339441164177436620095020541168707850017691355000111366126272684389242010312167828251764777715911707095583042561395426055387614630267673563463742829666515108331021093574502461083155602090378411910516586579525890502925233773539518256192889431065630203937267357628435337358899313259144285892669566554183868687120580644542123132926351819488086578456760593736794786135093606730621547315741044542553586368806309581429855510854277073286500252914741123941176959546104259726660827479245808790867950008872621489572591912923062564425620019751811430612124550543361835996530919955241966886375700368197777219339200391900217956064697644751994966133553076704385481674415631049912382004978295145061036172363412903368485451705317581499609613562876327033296727686234297339218401690613042280839255588775369480567930619568353397178775183336764051425979197487016314014907285232435177209642891006123863034533551667242348157108171422298641732650545679676928023941222566043506660019424023957735481750041554957838489071078321002769987068033544945294514339692326020842849036413159719245354292055445845950018617884312123540956524946230618441866236633059724676629300369932470494340343390864429628620041304206142480704642319162776867885191455968124752265548431301261924915939294227732974041596253643190896923020583110038338051097108561202015691334092643426452493737547178025401027947403795512481093935696456591279792436462450715933864181935702575377602273420032920325829808829015110526446106904622796987008902453849125167796659644913959701916517875413394508262471853478911299510406477475686510344118685200956964222535472441667523090661031521809860038354443005404271577341255954991744660050487322326943256365331606340576403835019862105835184062357299625573637188787213188740037733829909045901249637963973419254814119492048825935350817612957488730355977988561286046607651376256591924325136434223388233668439648040507718503244420312613652795421571100303734299993642166982391662397111038690142089628877765969155077210281164245485175292536882832977901204675546856068053123243962970259775134047719045286129717070716091128405965583024306062857480622043063683585507882660891016215120610205999551533037454135700218264755949681322466248006019686599564384528451663301131019521964251162817369040087758099971854506086910887556897650073913515696369983632315571889162163229092024269611835258565013230870395849854941950964702967595949869642759491844846340913089174559799141309429394231051101778483573613366148283548064038630976930195654115909089478040285511666014333152154656828137733885142298651551309377816011576263242151401098401275367513323555591432182597895607242861633773416081395630074736829546158159641417706515257950467174817198001991724955378378456001737149321516800349528883685966216911972895949897555963002090072232020605133195377469257219788616141720500159779580517392116632700283707056695970415502776821654175552433541171591403303326040306078976900344898110520862935721483927093534660696633289875269107743758855582955090965462246890287404893910714438818670256518332615008831517790254093304255496869827949521671007316950366874719611564548633128775024839704320761223928592175462150149717635702748231570899587007183321503758391560860769971287713487967329039462589847897029530909325751139036654959195224958243365444354662839868276434311914528107515269396863126030372291594959701909303877536993243242374109792426086865406014673330347799102287595910124168245795188888637308960490722668369172871358301799825624266363383571876784547878818124228359620873671546797653477977033756028643592180498100324441123309982794746208162050836416277643673904603620885421696693192811327038124095119626246654557934614947690931753729213245998953172942456201745633655417466827144806872957876442762747769181786268759715094477441400967096564904872390716660355009077206924220960531710030764041700271291779096439791013028354557391426112870210482102616162366757634630068903525733688609543173656035611677307150106010184204953735995421682506788010972367537977679000652084210991029736494137436582351692061253732646310570839367215621606108992229712401965378638218500608659908081410462132211112799542326162338933663887923125042872358650250088262533430191080067668140329366815566572167228054538840134458195788589399849179072324264542308531807743284874451974279402601779269880599810822438912845367673380678664436286949865120735789293363344949272799455223437213608485860813447426979363143783643545250517938234190511330487716091132197525434147271890399669892150065938869459764679864914026586504654995745228225075045074115513204290132829428728364322617504266466683562301387342594792171766854674831171356414255569470318120976006183331075746013862369885324798438508195107216228349994096381807592231086168160750013235251237899158879015341694283847908426661741945064839978779551701165422192207631332147196076921634520397425985102134781322639147924064688109027975959970670103179956937179191515815990379611577232893488234902774262874375728830004310273969362974859655497549351300345280356428030231627681835329152610631602166162561014405276094044251217625688488128023378835130540177367741253767594979848585918587330803890340329062459138527819490048869683698364781333416327201955478656668731791001910964500218333066741701259871958976884211423780576380555538922470301917085084022739024393006275251666960776660540183595716991003799134124306203962671206158672117661627690045452650644441910905095961387117240276004122504609723527257999680031851534565582767168999594570971846435575385131913579918612769188565075912555165675244606951321359682920328809096566935443310511358989628605590974739654697580350152838247776842643024169762713833139505046278508424514524439339702448039870582542907294922489464460778590435506067752992154205646581629885824664356644064045104301319794169142069738074573767096283490046173185748512720599903851828096395567814462184580094116426124678695095235047456521158623414341109610973883734368373584928909799124178533308085700044276032126835464098524753288259738768712261243876976006793340784014459803164357173607377993592856258695108239564239967736610684416737394357787928056957022764493217730580548947418375266080672746723488922174562566927549779298318941951218613801794029402741454932026757811774221575962779277634695951064393856211448986643179188357934774787801772976457381468645840528439919346982088268166901052955083353246004840383866355754202351657059223005903984482017531779416368731373320418962769120092703114986008284977845941129363096172808007127406433827723733836079826264273622081745895654042248516734941494169911085761325853993654265210295134391115460483344508776090074427239236353308088478334402772103336212090855441470265931992718722993388252388734850456006601315598140471945797556299364005253377496900254769849653438989557615810980939514599084390269380941093748449210785197385288000987024341798283395074678646966849732768129995813875659156962142520014537962560505746435660750931279632959173617908079246027012707311654353832440807392750714347069712147485894741343856374365525140482343818580847718651606410734344048253934850490804938664084120852170550310159552939035799094416911919261189727939439287477818519996520909239883001168820436229248207962637035150061626063478773148320582079557064297986973726068899814606179968227791886365041254270388950824101112724606780754005427177883678909919935046360304158620758614922075497886656517377739897810549545146921470028392222896896031672656658718642712257068938071746800529846979947085187902487198950629819791469192679347757873067515784594288483145832413254774138959388802857889249485802070005700741047375791403881340704943724386867710113654714395187680195922106815986605674876228916991646056592264161978429990012343613679667235398660663984512074685218772572905384576362901510757661420385030456317654602602266738886848035945060515168500652836926597731657339924432726495963014263119852092388177491458497793962400955166282453509111005893804756267950173610898036316019553929975209011607748357636146044374941791071483386566486689074990383773957873893010462419004758520152240776278974501369561084045022885666223142172658032538651729164426391194730030120590495482110646529000319296763647914775924686291183770663566815020279598512318660080446164835964639028989915148063655646972228721383097831129492175437722914380597442103325870295446167143948016219442042456354795221958414800473073884827071012208075703743155200810073007759150011664581159896077754334689658916562492299620141101779183380439467410603302937530728981026196700288190479283655564467159468298626973960636315321981360143636339657875700582542629271424004056151675019464115563924557563694685388293185853614444996006954553407583030063462177321693795684298461496784785447967590872910507300083912767204326899579897597565056137322132567656431232789733140164597631044922275672658004839228839953004352389866086458716866550188710184114760926085865059518215781041201003810497073160511728351068767608861877361426147794348357354130849082993447873992202279277110976343433209958604500194425931300525942535336556646620996459353039892761523230254042587927764661894112935855170802849049183289163421500431417411219259989731657304860792331582024047485510271287911356078871614678463952531279753912292989874375429621063735183932285111361630201555332203659074651471099671678041983805459675378827524767377222907351977775515464316497993703086862458238811180361027365538508081670110465298997355649987109105749725312509602479645632728743518409326007652771643398637706207221590374509709215864763283462227525127034089251981982367117128364064628532930058565285336621170810181594782546684085681034751916096426649440617453141463212940290310934730728876521042769912191763967591532555930026350537120528531834202222420837018929406670219459187803398343052910381969001389297198948854341661094987836226207274264584267001017707288380502186572372998565524463261743108252026852182734066598534672846636672655505041447782890520531148709103499728570785938232452881908242451043082747990396071325225744798956724363771715909007816870037734644949306270864987256934525022725855292514288501033748789879553602007318192694713342059687422284710960820405969169799540345425741697718278392731245923609629678925147338600231805641016840237815606697347116681973508160768328202185757004843878834936015467945612531377188594142347171888184315229682577580980404332847276886247623092263419196264625765599369436347377604253605935420673774145236087563119313614617042525959834541865563305379587345970971402308637009125484685191766191845297612497933747993376936314742519710390769518117711218042891448848590914719470500630676307984591476710391880957499754786010151343490652323094849392010501658703889054495167420143212731063608545311026230423456233973321710147976217370861100784942795418041543284942304885181095045839806594916865536108114713140086125558508684122472933918552814336172621379000411864431354943390437927792465337715877949841497942835031668067090808505157908178659866653027792261447406136159560036058589174759254550763529606415669377273212655632061999710262970897051524041332737535604868241976650707581847536401938693401898405784615105689615301870810566907200412402492333307394587948866653654687353729733545908418101364896746987695589084581637573019205965971259525766188493522479101613653647079467700414213536287392782935428818591558780730155954151864867971289811789770881504959553772913725936633554725334370149536751862239830941039530132934755310332572283592431454289601568773194984734361803752561732100829321515033592609323215189066634763889331656836661621686068537049288899123460430451418925676550545333377193776095729378847777055085727741332590961086676714996264386926350442234168563874568911694711683343812276266543714207038245004649734314988426825691452246936338609175605532564515057608030978647207525055278018561012596831113358938500630902002822630021435098451628957713154572837744958158709179385128640795468361089502852895335859482144888808230473592498765780723879744053634856469704667037419156647284818675811723227898100905651437171048718049165324484107068030642175179839933766794931662664944773053663548758078299225928954715996123697653984652046147642822715601686133333767595354533853681111087862074720912035425861756006819163865078830521092756154309063414394808976281089463894496248902012772038310269357211974672955906464540544159151709317772708586399541704706922148424465785914404623692423541735416014371175991397855106298549107134699442603762469332428793422774566971182728433860942933023826277669273915908490624110858456050721755505538591842258534857883603080871843203323780530794545905754524421192540077716118126352951912868735652563677294331593570910607466814609596282091482829816077494954826238663960963456067038679744360319499898612292947553998098703842015649786571160636468618687991446204252020713373176187449727466079680312616094872743506883711767724611998579676725505449654789628033416713817140410939813733809928416130914367406623401335021544774247379991385304895669781084615895825938745054123067992301847657176495178673167332715508093718825183982422660459501719388401248418292218433112013585986101032604949491324293708221399451274954499471403700274536146480712328212477263949145957102268984495645096956741285200258886122149944256607768742749987512148330549688202202510359800906302631170473774514293483578374992514846171252701590979763861568223073520227116267568919027678407226769326153518303258975735154946099218315954430238590774979778696576876241168667460652825539798087392842358089038894941648561034258541880649476120552830626001434938087501938316463042348721691664249647448690745583773934845280113027932716926105502346051873579762252300023992078046088487830350091797248821584598367116836707486125204517897982447623339049215006220412867433812852135961944615707956412912543142485729265324984397362724625296976297243807576450145978599519434422789573070333355902507593501431962630475087792625472862595154501941118212100509765115252956317275895469853494961465201489096282182748249035913192726943409986685807063185859448258493528350247756504366894360460599739469752902676122028007660615904132781025544447947409664239459331272125596294045463502914002015619853053491667698314479344659442031586145130220122352068070838960145559402408662857786571320239372554460573266207690106360629171803975307228637008653593825227577187840575468074418790697094451316078810493200911820570186556173658321793823433184703027767171573272623095499096368070580032556543748839957871399141492230179310130811952519171619501101234484519690595148703771555727162751952815665448755353343812269189642333645534652265964589484858887113539476854960423936554792768032295593777768862597934632231602183560872190717050635341686693664771338455380955837655627287850037551930219765492430074684711793322508480891956771736308802987354986792087519889044738529498498378824953366639476561937855162185801263128393937602103804888819362293106882790261105813636359967299494714803193307672153741990832710030844140840711141931471364274517706869832551351475126073462985394502207831729397069880770664602742511610889034249863854843370877098373304108013493325975398164567131174701771575892787715234830960026889990896548445683736589495604474822310955463805974683344656001977636083761312968584680754373433076775502274094091992563521311522956547646293823920143851430325029882984569990825119131723106489099302350870360735820571532671332489956523868894656386479429228158816838251537290203970248603874637001729301406409757287493649331052901909563337732974463675280720332396189635406435703957271153727062529290706667952640597251210202746707594737139451409668557719221787629416730020551808975737702272286164873632196905691604009178554154615073327791735425596865242656377593388603754681317181671938200175439146385713602038303038187129070327197216915778373538040249685807248149784806226565376064956983833167792002840166470727315184101792237877528923003958699412562053275362465091613639924825099926659232008945568873772201404708486352577918018016735280273873872327486072358060276296510114789454386109872875199851103139864518465138823468211532460635465849773555195160771673894290957047815271312604572793152145937038235106835567693139233471075068112684565674241437386341178460710792161696705708117275475623882606342525283565245762813518441676205378215445573065463029432097181128588989398147605015339840483565903562173906290357326331025243196098642344858102767143122745971161112363890555311240953059487593238794190050295067610330694795513111478402230612279252157234595466655790666202069919792921471651413717672650322398454266224027016545841300093810122413145988427524680135489059946681320968665438060782634790326248824250661315260783192493586635791546382465379958213836459851508478011377976865713585606801963386617573629012324228917238522155279926661493654834722723753478122406540637723255295903707477320082374250533375616916722793405327938230158510014865094545323801025206288970756771665640269969282929982973575886131850538647878900744694566496713303032535672182290932674526202727112254847231759463423468986633804563574781092408750780695548785296340578883865960110091470376128740495780573173747333651398245640148256307835801549441858192921406595831459819762771451846338477243234330851808640385114454609164984527701493709719203277025750940844650363209031027671962270972869515066728520180377640434356964214459588108396661399859523811287641005930929532604399212371064912067950477458316099798950382293559286259253761555973402663020138128962110242659775065289430313602771418756006194562525955994738000135257838266936818011937186700112973389677546129778507713917254033540813346475445003958134480016925745449519313516010089366986977166329980542038656969458764259364519682312189617602210335104939761191523903707234531353903905435699548252247578554886370433164481677343152549142439265435197350158886313127965410746422205905965769888936435527016189237578213367732734288604292428694414098092393943467549709742384012295421851315132070666091622341892664385586311021291166358641945832553001212194483070495575844814375325749142479957857313253306183363274691642702290524210126552203081087908669988060528042593945828817301681393338652819168795889345833437317228067516496242528120096226864249155166112002402124566109587054441815474145711645363319482756267832562113358490233800449386947099030939545735186888939866316597045194494153317489715840439746883011752293562059461663187952513874099533288661208628241742564597489381414649332927733029471196343272650058978907522257968031810608315805632037051812859027573414955614096092060852971150768887982105722346032260229950433424399987521940701312569062146374199579607823814712400099211662509272509343534347721062489451588439515390170951654846815094188232293408105768965506158746169594166822007124426149905712990928344137337758028842792076619163585768874810488075552922407309604641817744677657476904401665831331013460887841240899497911021946593348460716461549300869196181976599016737210540145877967744343994588991631064174246599512613767496965241060144939625201902464271495236918428977284262705162574928099729109731722786052579686783931557273686664863276658722182396998556436908184139602882784303378416382901598804390481219148084190273644423464136022566010245012093793282023782737518773810808445888531381309152872089137277823648054829642103579493183185646650446038029647113410880921470001675243524520389207147087821503977147725262158027780940997298083090460544555013511942407470100278814846744858956182979815887561585599700653362071776299715872485132080153600915568609437027779566609102306188946404462832251999885337039182732909278638555734882974997433108826855186484642691885307269922302341087341695711661023342425110005035375681661051597499922410320142496845126738808257799843147611911459626607472448413625177244552857976958867881108769188637782727906800231957875877674692179626693875534621836712797492573760351006897108539080097433104408812334651383724599609591993160991720032822412167265903314553646625584605946494137364819316612553700812978067365666780004260337755055044460319234415480127655495698537552623216492193185659701968752268820638873337743681973007036850062811417273904144636708074374081765979673513367472324916308274603450958468580221349898024335754239435561920336961231352885378618053987121952012820045846166679654515101924588962595063347732399243798450294599200570909617083008495158776948201939036637017761513119722870458888129923707843521799297531586138111054572433995460492716275923489036253837449661448556160711553691223706686616174210446756023298531163861497660662546064045363347218913961103881157292175823088056762474401800992342267524779629610685029448802842280917097702521352666560141670922472532266581214960585962817325840425951961551257960491126138224121883463860477624291023567164914393738554291085588977702045097406809407163755500270689257530169354903720952709379501405386812483195520794691133830835148211149592126788685500118194395466568710946254778714227337328900215212137855616701657933836318735290170927301352390380124493790746492666097271655515271610382575055691498716266019216164210207267810832347109298526471682805562955634443780311706904508138089050652735102481554050334567609154903150712948209318127764872975513552967671949211514861290911896572115676532542305565577552906292760022949677603889205930620848017421075433975231760869033261008459431855334421280656388319715671053108928476473081420184988352310778220487172776883020829703742413800913616544316538028147455800666536171683928812339793051360175966724187199206588572984748265572290907716729740120943469403425024826039714137491305699138780473251278673217592502185697289925856664124073148641871659385857229871851733862988443854315732931245119339374297528970732584691768995021635209722553725017496917560124944056677231839001579286581323905981910767463964109746050901392187291213052415385572498628129899874038942628126402141977660256104193508128062431923610282391562699284921510248842148459511787200630996121034488828176432192855515297870887388328655357690237204350483673308649971189282983069222716074400024733736801667657056172196978393141343687493112682478403181626508658663568080353773251093243571623892215761996446057540377258311849795262630121695230900663390004809385502170345365812327447997513939199853748643779319185672836707351623324568983936347921614671623185835791133381655594923715757757472329859708817616880119096325433324821424882956126425465850296126354220296013875291387330348086568954417247598004953884082679238924816899635441049237662471392403060165983879694440850203857223602889774197974429433347569578377830812533216590133880418202584145839150387190879091583204616337238313592715277238772022804724288268777648100796789968382121792761374821888429946209039965211008511603316194636502514902679777198188213236298248339204537613753877615024585066174196495961012194449942576715541811729776536338470208077689683751891987910874782920844502568612837612189547976445167434632686385764898234478978475122626573129903411975835822138601717097926614425123140128321207301847463335563805669242343154466625008501946128319960651560084982529629784578351012913490877862265386726099976702836622852371113704999124609764098707193340829199221900555785010717150565428802182665388702814309760214697996251832308683713521853921485215034874783470623579166542081136385185144636601681507197409417392381493691727968798798962520700267886869775707406416677088029105119635730917117973586532757211061533213978767114488205123816818639419262364651681685167695323859114504020921776254307213453566583823190469068651967906747155025565497947523404006533247150257697618546138384179914790302685132658266760637765110139448934088977102791498134262035367714780475253944805452523184210999623760762188339118172666969392208347565029943132157876957927764643555350146760602821375882157449855334013092872662639260870202844148948348836549044023777356666090086697656658104406023403222309780077207310243382142169773453798573859133012599047585757002239014288110688416994508227629869891435404343318501741944096497449276558518587675491858671323711760563568383761214944143023483805196015589302816041402037529927363732258709666333968829961337743473368410870531643584810417303271333934669492236963617981208166467558193278697610706472211943796563699279752334993517021558924778305784259265052281532968759005960756352509857542321382009379300014689335226915389550527834797361608218851875127886000211273811249104868631047750428239713603805804974635527152602917054503572398051851950633595447086782085911476452988559853908781739828769553463957627831765423567291318047656240690832000675620052509115270569320184065667762072932355292530314547812398832422632423643683519402384826176112672847550446222216601140084737617062825382060987640340628322219176305924151678977615216524542905066670816795631502015385507492687219426338809853581790515276630570324480712383635700648500721992249314965164773146487977335581881623320228417306568584048305873133808237244300691091519483751884916168029131944817961782945359525038853989026169710525472646555808882460632880942751376830147828120681737445386381333795510069997664844055721219710780423240789737669740663013061335664303853328224231408720393401442829156603271658233634497977158523284872850050470627957144572690047073083267921966278596456948658236484913193218494513753840219661033868225868292346051340041600126836186421647240275719837840566781158937286353597982980520942669556730755279082142417430513082219602594868590453957674023112484078797507259380985958607529883701711364820531667727092268395229719392475128649457263086877238308186323975950878444373246631598572583901753388670492527789625667896922175489856387294761081784655716007716155051104262551804914010569453328036690540268661542394566378683680985456356128872818219337718630009637481542660096191798141458176676210543153366109686189064934491178678487556697303573440799869792919915712817433134686924634459642646288099654037286978124928741620056165182571714384257542977867595632297010530795192902001726188061258538208379731930394372653686418311634656239812994350583579391601299249616892654636146698013677644910628262096117908888674816191744334254656644281202351765888037702267006576770006174252394791437433943954057989926838914559494054866108850479713985006007699172179138364130608977934393509299905063891802165021195191760137955580529288701030840927076455879730364337454598488205906886603481788446893746724898353143256556039372366838226155477941916409653603311606973417142088637838190485384112465533134812990539077851898000631479740387924995001254455320169499431354702627808779796748798986152732803835064418373536565566715639608039629423602611429522964455345626123887915521281959127809919644937443313272516858951148195321178573699223797571986326609740316551578265542361091251788649342061103337984308120816360588189303436989343168277962329794347612355527796073373444944067362733015295369946136117103877768960844048253008019528202550589584354525291744879574369348719664601364990905205787962829861489714757970736281433237093934936355929330171950763209200809859202226820027356970599948389476077115405117819965068029635489606467152670601354271880263245018561128776388472966232510357671099658131243683091310988130989131318777022820685576292416689586347152222120847645981176814920045934181661676914389704697624661323832654224054308890177787022858110893262206439075299001409781439525993291496121509685164962905007206308046857535629129044939416805804284561773928058248384981674940643126825111684550664511129399229956444629081117969300562105767478159560768994314222364128427263651284180229179871176491197306537831572036175771294676792373467336887924348836657144364816270873245516901378348320025708651504602068493514261072071450852874421703149549839281330265543482861615288134699121315714271093742026227175517571538322758215580968759365943027306073282544681045440433317410127836564270256436455056772116391775691397639798810003675757967644438898314928853050553049581141351157636945541664937327325166275435716853984005924259826231002707458241518662119357023267121989584667862784483740005854397209132756778546392193782628135911841849503294097924593370190607162808483313516245414020929411619209846894357393486413468029780468693158517072206608550907075526305661507320809002759745043329475321609598662678415989760904414950248921724468250749448894723862925048169033936022995907046620222031405471503898838521868226835046285722334087965542707530051602486396155469824750605727392364291660203696401667189128167559228433661034047037809092697136849171252138066816743334429915055599106879301235832896067746604027134031055435038210426599715810451030157342854474044870420876775716015197256437439138774830206546436531767073097182706538851955893747452027715167214103719108770547721873602998147517446425869515961166327565172890980493075303169121579972906562913370948084810643312332996378277207969201337567793361478139589093225203091397730175268374068724459906237545159148941256849442107037549472583339955028331499054643695865088344342970859733493672283866876832447519913239759657922602192779568292518816088970795806801841774703220836033854671852939970575829142138302844264328658427370460019079651138706497563161469516571107887228007270920483353496658362536422542205204310494098847828789492716477015041699325744292312481955263074605768617430006465371187800281608021411891935474636621024125550555186092420851489847557515105449884848805319260945095106571361345226807771079304714249595414527219384528723710697551240184775900813286030176605312101555574673052647354530352314471096642971959181004143970170130344641726063107495638079181305835394223740914795221996736265709324358321248377654936617008096773013792545119672631065850300710587932081073093970318268591589868643945438144222193004309855499688327107715762754987042345882864417941972159330608462774782621222735315482548831458372245207415580112037803802009877290458935175619974572187751130735024784392352985692142023830935068857608030268325875100293672133996238974495197000974124182797206952202566759002402932327141994272030285317709029340615498407891989994458127510165481849353857324023161231572135234618774793761725538258272909179416134775745424811890489500080435752806379502774440174373309753854670982743657851723150419065202639244709243255803208039369767611914299076579043566511875560717982625317761254200275895978416550547766658832375246627537100034396272800584447523829982665666347470753190556627422923175404084866163516168250159757276552031341382175846899345205322281753553409426508463637014317150107238641670035276794699659042749841641094956775129346661662633944780152418586158954672991617335232192421010385352370741126861509947004696568972046194272798670992317921556678143265142709508944567332970563509561574224050993985361147939056138167129858346687800603387067687861508297648707497880212603394133346103466779952675623237201252619512732187558063508223556985024733720635858824798791567025522420743321936303842997760472488187725001549838557240572588503048650919393817633589039102233543158230089299448896647556369703511389987741962868193595369010024085355986713037527564899663537250851590413788310914713787905984863884090787040957598763089694497034438217522441900533724334950853783736338239900763840565193416244119493739222285244368655678733416560989746418393174881962983983310664743512902247235524137885701722376634366727433862936342673643805090463216661667192696096160704423114357436930182228444026848891400814676275490475125248229895786811883085704979285460788445505027130493408827545774527695575974724738927280574739112021527026876580288377228202083370623919586786553199599839097603098945720082452119122894611951562691242830137561601234520093720057753409377764130531816528820821993664176822493797355763196194067618748663557365112842381075357423047875602321409270614708076255186921399701032790394708672728860163493338232727310996409185365583350804822923145480114775192690031735519436460874161078640576407279944832253673277611744119953444914179743816406532894259585351269665115914293686490583623224827991414213409649792258310510902299086131531478412261131385962984980999235017971225207226465152535228089344634729710979659428740503616157132331271495422642880273259802759556751161087852315039315791707980389131196741807761268149011038410932229559710688345614062674083741421467787915313360862240519860775489644425990949296662916790149560260734206714624880416099043923224370095553818626078465111099816240317285275582731893722416798864766496187929107812927846875668544372615446417858635158212407750943087785584877252467395420196680886027474107652933450387410931504408589689027576773520958586927116928822090786751902149975980822389680280213533610111794795193072565043558862813927428146108476919293676575011005152198480301840329506176953797787154386709615822131348218730785948843334210231953103759260250973849458603185548846610845417841026639710922982434043370645488409102753266523624632493836482120149620447133315652590978807529021133541176033225740443348277263894396108372849899282031839389341869036562332254357042200806001985402314251350736291094224685745579199347446400944095814853721967044162472308516296341725625533809049285674526046720584730766737571526461073035385164224402201296642586022436050114971411886825482718903404658375199742836330076964546979800671101956357628825364706949595101108959934396904350280687160691524194348864422273566786453076211018523891548600690789962717975508522472029954432422288983389848784528279874984853979798419960831655053415363696142059370418691781998527998092146151397883995356971176833121873881297352399836390673714567388521641505391325158554224214445514081427820370155094795436264214725489211023436508953850392172717931288782976846979940776421989641589791608604512163725237779710227815934131955012470633936668165696982742942755036365777147909523449993047440415422805180210993922194338417537412997525733577905340359157200766138503864577745197127146262813568495455610508653895142616294005301030345409198345639876927492055220806431646201995190751524210887295676536938353636511168698583601382979350073212320637400275037238242852555584230915437259333754389544724009192528334439293877779569285558231452421190986520937207220859522608708069305775564426558841250365050681906339353512143644506003796609538330773527924574959000048620940364813622361292140108516008039735386306114769620094327520182704460225532741956339816087939946286846726141569987889524653828492192184023762388439136262085506527847048002080370908607720850346511934937206089606468721385773767863662944791088021322010090278343807493972663787965180451890856627751815580914445705454341516713651435722059214710774368091690412995814177447903567506700594531366430676140588366832377322089215388207836850544148770003265701376158343188976233049011553704666267732440771579145395062701625582472293772600132223503873360580639105617720981754083026724544799886220956502707218983574001380285542711838450431435044611367725019926515046502145304266638995104958675071542027155734468681799649302467313154957366275400525218396852439368189640675873674829342615509584184183657424004857355758743720335674132907670373711992318574601056435803739260297160045575277983307666512760297266277315582276817529220151054501539525008620481720063273795096204886090875770012573273264875627011058973478586670998075496879083777776125443086798996350740628643664006052669977379149893990177943343263194621598883098653477433000902621797984755690951825888156087811136573808872420521897165301438861566005052047015546021996633311037797237001859661856380284023941011233899349325592768264917421455656939457590318746928172551407618699836589753571391978657986631549678830007102077831789683450142060265474073403106718577761937872735778693653100596056781734221658752659779877585571284742482136991818407078171210195383263995831943126148647108188277219163721177206233784072389128688720663330943202323527689260414591956926936571349820097939785179962278854074465522843964522442601785884567628063341441055637512658213283649350295515081418635961231244382996055081085558669773397205013520472703137593221482032755925712819769545153894342504175846417098271374851506051360846811791607695402003785593385954914931671594720556113513297686958624555158340483370411597533830622771485074519859258421366330735172875270903034423424249204609406751082260631978192611712522380854816288986605421741253844704269718785530981489044418683851541247745336447849172859187062560960945380760302310665899014758735795071863839072681980892766302320830022491971947031009340695088863156344006216020818441275500938164388351513407809390105382144252422703074546655980422971957451734909709507150889955009849115650509088894878980052810878198525342295529110693325276475521085225107717513101696420962029813814658146027243627556270768348463010726781147715656433906970548334716164752554192835417523997668664970903164867407070481634465208550816870358784824251933710675586930657664901508182801208421790991628396345235907124501753395386254011690895638767313109608887965229583966619027028433805060603170255806463645892368489777903240389912605257182116002854525612404883469244682047649811437944079575972968760229775933387434664033500108589704172552034399973121745969983932369036130816948291680132640167752157949813785760646096790966642643045945528543557797605748028966488379625944724295653266867535879147887764921945868619419956690271070892880024150440399359039076958738668922828417055931279035236223055651524694555656468436460939561754802749284085197681098226866737095296880660209878376517426312469769776478983212128147965987987201732068655995459286038930603575744923237325456498827353196683124572625809866544740195071670550820714714164484100400039108394256104879525855577564318057655414144645798369468693566181361934698475275398971587774101419843175292833596934260132922848651088649895363894985540524372070288805562353638557898638747519732216015869502609855738603217029309517907674964381283266931921911444824860471052468384671179955728536730472612346791392386476410777732234065893353899111873780498916705550925476812529747772519573000420679407419677071336999725704123447483899701395839763946311236695280519407362315371295934479910875957207678686182939297227566915307601481074969990238494459055032209366089288234457960969080810378344525873454171792781352648486867192905542434741799823780781605319023165265077128395769487330885642547020604730455844084487094156087581011490876910541662368665678002297981724048919938311181943430280865130255574933814573960509652184816972738936810807503291096414585920927292804598658750617465497942002368778504450979621243651537130440414230357787583106434482875615757238165211891377869822099166558232496429896951553932527040945271521326088742104760735530876279508947531385783739376679419875049812074927858268808260905281565491443730021135383126650148625647576737950083269733599454504651214786754128219396857702020434633010032034883525023237913592453452995351706151343709721785050832446111358044607043028380126871342726336456442642079051161609423565407063991782492664541490058091316278377786277664506808126120307961642823096351160155629538372078183523580181708079847315796964121101052625057466776315431999349437741931129203480908309492745168871708711050355859286976553952401114953746340329976041068520648751322631871785724927158342471966191498108937820700084109774747602240213042686036956874394076483168122237441155450972059857120303643275659070091735473058700252795798335431420345844719482514492205139713478636157293519079111238474394535600494767178566725365774424099404940883641600437924561442371350145227652971434477262641680661027077003113642830554474811468893788798680431227747005392703611826549265241356470725238568641603886744602595388010912399840659322760552266115794238512889943016284014199837273033204087227355064913785536312960581621070710644258115390999147842482739358755512802416254486509725787090776035406342920962097137371963887004414039839135612156266542721627474515970375584639225165137997688437555388911562623183770714844657789745037389849834073634903794264158831120545617026681725266514329786075753456578999705418382590962895052133084366990250468437406556530527279406407349145059105525515485210542323650933457895449196475378624710457452524454476134242490552884048597075141336407930747134008362950884270544352670872544232471263774423330207133659842843452308398815292779666868659601980509592777008222437051742925269315247970534814784670349004359910219295270156559157147498079212634284625201649536662612582460960904378053278231225929373825963660624446482367221651983807113618127875399432729518008990824444976873969020361548544662782754804174529240831949240359193326630697624463312580317235496932287026953425789286169099874704778979910469192574487284425036270665668630855195520296646663576366109858201061505477047722714580151118096536358988385013507569708426484839327294546442484578333162932489602916127325483330800717143648185992251350424339720694986128487771607134573380203503502367357157788371859520110624595602154109459727021576024660184598137174389238521534401088592716080538761739841434354238338292330383481141961613026133995045093680767219683143464454190126473414927460944930062836450234920669337834297471337266432542345209669433902035746161577792080409756026480339476319417091002008764062827876410349917683160229346828787072151887472501386620448223778446504044120440146020680752810723036789470225003397798800368177649023468706768964237640852555077510740826885123880670955643146192740249780699624038087197751641586607195267546055298303597009540092516346998743539756772647503201594912827403638941004345900004711179549706244404446970704106904259628104687657702849414568828866027083161336528474985375193422444235851602624719633172071407586780712249728230489056881877701606490611724254932006657350760368170176376504123262695595575652357232609632390279238901429056062008550649357615014023182169482918826388208253386300547514656917760107339690772516900694831568005295183939614832125356141536360738896641285666419389279943815964978474753871316326742800602915157082656461527308413886917558344626327728068858283978390331211527138436341232449534340896143676103174299568705270325138498359637739356253373419850366836658021727546383832456506185036419842474257240304977566566362080500132337480282257450032297632731839990962953024171889548644498473759580486491742961361911468306610615780673499243385011776376530251607352077268486867843950465138432773665796549329292378361478449964796586278706716879613437842428106767864276655123473486165594131530888532869910845724758241570952147854363657780193311460876413924026793760523416309018710978853288760631214568658119477220334490317716946961705837443563329072945400120563755354718599844242652589787409655257207196686882203164864107143555634366741463587225107244458495918728758192609654584236061739658570024341115560843003188622820496991772436518076371731741184083103855623785983278870836250285516248980908699060934827685216035742488258214848128895131089082385526510948780268131757936581890378917977301465919021254832200359239389159781186991083395499235395887722512843140060544562900685639668875035349758844452603967723891985876588794292537791062178392372216752813231221699026766177339729431731130613858963946753975510347261944654234149945726548106717906712482597867942035987375865025241258533856518078146333002592138334530405684690481922666470475070207638557125565920132119684442527481844523839065091416248491214314386076223676203010790711861924831975903751008082078647204053531833435505164919917588332387183354717922115824478225139356775515154636416914991399438219328168317049419779625151866935051677791352418723404062126703952642018492608478302603513481801030776214402361448198043681971996955352974653556521265164058225350992458357202472370864234157475962278075375572299611053720234283520757334558506348143938575528083710884507023526386091298327698183137487666640718918329591273459910984919165570914791891702234565528171452166037185125133504541433455061231613827069217926916097052954136590453314490357980392443396901172392041455194683594208487125094742920182562045198546280563375591073300226414076048468707510555208757473075300801781538771919036673001785107256615446100541941408215430083429499858159929475911660730593297655533288677287540324880465478059319417022162135116757607057229626805703985361954219277396018783450141487214172060680765314124489522552480813088603524741663328873136382624474615890171467058014670929647069717634807237057127897949248732678622767325185238597162151094108636080437700576326072924817581039441443595566128899070122751877221548919746493056851826125542417831135953876163888699087628393765531630964754130893179285019070716852664203115053228554767891397914885935542545671020088099065182881274356872319260417638753269221928196886354591278454241487014716397553541852204823464563785705647608226012109036808270676584940325686864441848313126499344282805813769068671354129795060104275014459308168584517334569224700738541969679625015131189299491223438787954111421991286868041326008050209106454644896868171311776362947843559337582599551070827343487968984110460428992972844587736481067671397868115350254828004887919031873570369057383911924152062316563187098901929472185422001444539292850486100269396253971586849487272165512512635859652310645169424225018875912785385588683849214472118082976358771740634473649178806606070151634024600108337335786149606336480581315175989500162021268143488689083530871577422693298312890408438813182139045374606364558144282831552886525556792471348990599378421169851306751641442948167910140949165250617211663802832182367064642031149660139482626249275850754105898584153303014588300841148839970244211680420224573665989741688270728936035240851464614285764378136970928147107689344557453387698786610787555927262506898570500154954281212737328738334275937156336286875780298052631474121196779658294047448626425825451956376035178479273743353165764398372166114735917309545533903111152643227789779412572152202699420418359215706676313263730849568103952532995682574741118260314252089132972913799010930191837260940622400260234557459148269403999087660185481406813033194516140932695614351682005991552354094236838117759649656556970440995619101946765724409916212312542776395869083001811950392796146132511828689744716020985087973094157191913960827219423230822750525041985321232155186316943310209761679937642835102713817354777249764597949702508038606955276371669536304668686653327470238375035807187544040686839363122765383561902468617642767655980792024681031483344450459518408255404814274542065735278125596215071311268154732356986000708218185559231586006893447891981565489760834713198453075834973550107285168642811689081130220921875733337315776864727847479682269843683786298498666575539915885969146672913418249407518915112418403405588264936674032362409990388192430345950619520152651248000315418721845610089213825036081798746988198982254977201993748816377606460845136521543337217259123686484890907518970687294724441876241983791623507994452763876691506723634632029026384989481320273901786646651220507672741245119049604058340928616106193119617711674599037798598475731524672872104780503644581214429273653925554217500383629751372956812470656534615634336462147826828512449576642632743748276709989910180364722498525961333102560102163304871772171793264565360488709211498962398863086276151218886577261842096095579123538685682506165923171615089361854783862554913173612302020083050754847429065966937330906660873509216354682953671620459577313662029400509602613763206528853791931368272288721768815622256568938662343768647712491471719982244112754549706958955771470225910859312047576275984481563228461689133951985334789781164228895057466011759782073006418387002491267883453159228828078212171841574310694711595465382173574026263203165683394436149765622383481151154796080324327333224124519886134664062685653632158017213384123726791653264779662046165447034829617411189518938336641095689888557894592015537191024911811019650722811730960678857403458717532162164428912937415506099888139067204174225069437010258069361408728619868749474780974328911090660766860834988543793492642249419719504326830286337768337457697469058925814059499513607637059067167411017224275262356850009315710708719360483554404003524609598780118282221330614028574971884647685030920533984635980322928496056613100151378958922583203286571990704055908362667411619977616429296894427494294961035275526143715086370668260703551420843052507568053704149536009053488665510774776779770593590487439004537582665164044607162692016849898216070821880526359799925787862216185248798827092216736801233294364983126047733985218915479367744498966851825109680736212612166555449912198167987312712340983506482690560863023464676832625298035734188427825134794258568426104764490608784156361877384947600971588653877684778763392397346552472336508681224203068421268905709696034177758301006448748317729390572374066248064052292130552003708206161190187418303983501815312786113101307389478161026674046007532142606500248667395643665919979717180206852541539562540761526108185307207368914399422003858306928499771295250642419959824423532149363547082873993098046873625247053972576711864033703677342847041079056838444481174200156761246531305088860515904543279111291172462484941516661946599090054386374838781509455419216403831354005174596248172004526813198367921790307037281971388869116849966326372307907594860485332280982378926063872239333497968804013854096291883809337235411809366714501358560622718704011312650238974960838649434283341420427416653903397071280238161208094606662886212677822178016354110213502674710486612887226296144008185847080094963496141346920954028398695896604106975217716275493657318668497655320531696598194940330068381454910474852025189765598194482653006680437499981294281440912542474286382891711856934076287522835546992398949117899471624411770954476520373492248887282891635728785918182672929856489519772349121451457814355362640148836001787897886333289051336863498092412718026144691093918349099548448316085396238076662659756494122427314893780940318662710752965277797075845885008819467482459119457095497416366735224428068109074624496459111001247686011217911204234557437644419645678172375129161001062144230839951049239819950642437646742809067213470545331235282248550887194431712562300933374154406096589246202836824628482002129134442461435295398626059416350887720243797989665324566472044526327440499093450877681787258338426725733724503904445775854511586577963456807294836067907215224893744324156140972036895781727172516297207599674409930753169901483386827001849351580444084152243754710843996734633733878164273148008602759046123803073171122251741689984724323142073758737568365527559287054677169982613257498011168745814064908179315895775163494060504161254127785084211581122415016729650966607991019201878817104494509463986563067219994338889336279704397160198603029483767761858960333669572572898700800308889026801714724160738979314569394136983863443629866774310441232484221880377494437960646941729080465803167186205374426676371696125425449011245858510330700868973394812808137320955994019682618552874819165062717663963904014701722374017381501426438763217603836513818043727776691358235348472510996352276310394925538132907651530055416462458931554046039342403129186415310644209522568915407989174896392923532855254572977540562684798247348656494416503865777824900246401572711342094972137340784761813244983120015287582432441204550917638053652406168621634399974124273819957779167409375719567106283671660515696358210388205879805198997034516384253371928410455116269013117100301819786099728339896861561078574490051937251747218805251012545958020280780706626846162428270999010670703752319984673356264568505834210671972389674405807549601975368179310517505014591922479304591550304950225235149209807343159366012580862819418999349049604128847115445832998665722619548334642437259444300649905447082990102757601390269728102573352515899863269031838542396814488033934705754926823635494949347141979388995145677195146836358974731854008747963417732253711354234088264412132535820052009806040114912698684896039198485658058984691498360233131323131687663317021906592849535423089838664496095407888024981325457749915977317393320555526743197167695927871117322724039567881397304564755617154343686547652803701899339691013866555421057024024877890610640090101781779352820456052175642779728723714352135705666145994005359238608269456598196345504581758354158524499072488629579521488727415470383750265309829112716782542602889276808401178172223693254159731791391538041868340197629226110936733152733407114830921459835779086907582832247596710111288362677317321371852129319056814123166502588523502212074853028820799276857094813045428536086587472938138474599811647620617148708327028649450219952581319160262271373606496576570798898976628349216987089821348281832126219943266943216754660915366377424386034647772445441075535661764674202629233650776734162780043742849870923625049314291974016675883299724989737866406508756295069107921789905101109272556636710642351295649671900940473934392023567460569481764271464890339585324380814134494132575168013299491310787775032505395378196135821609427085683147048674793789302259800843782723662954590787110607649302054850820465030625218599249444132949611759122299536650669229966084463021708392370294477287499832106852872165537076338639649403830471922821134463756633019639530147060713917365225495171528206041390045306240352376552972981904062443347306570298923013611784215705245895602404823413877810403446401381961440977225243383609915531171454311973130178188773030989941255000212854616336815957952447373879195302696278669977338268528628255494017230079105075172077085837522870852380867648750479226166135848101263815510099979596339575813925768679630096346215151792105939920391365452640883815625941970337302294739907900392308646862019732766477629417715295327556921615752464908595410861899025689671279028503821175488315205122519424640757053636758746616393592190811154818509750336167145193287155289018750208142014824711917316197100281875065939406587290975770816763095392493695081255861317357566918996130256239196743857077066886472193349695173486610902398077901413936348205751487839703266674511741783548699475787032380210546482147907115166669285562778060053691212230739383354446683010796380672454198942623252668205652043236181657202313454900850434189659755339044658582740294464016893987097988087617724812941339177178021564744026951843143752810232890260494445212653407792344954339351645972165063006197548388376838432504203707152869542482738716561855435659284555338589656500937314842398533151914572351691525383015320889599134730075693531511289749204972608129098114674230347987056708946110966291882646474968821164218445519166267299980854417027833348652412276258193149059385294739734035972549644632646601513054178739404461930098869676260211931095583403485098858979867663024776050631991397279818706414745673350845615011663554624598719002590596343154712639113279753573781887026534406846488547999732160545267199364393154318153211606462788074340008145897241080641407764376830721599027292671423557383782425924337626123279898131060765830647960790238347889958424367982725741314857909854690931716827730784873366073684616880341875646507857842034140661765673862137191475935233469138992195798138790810733684815388101392740196373138701525702412248092816776818615935487966553259279081974060408483576601839299474383317485291473678281367309171658000945618908460789952798976439845190851271689440755472041310339656912864607570173924715805242604514153448463461148229520472766525351703929277286751604248030540911616665383229751514015656642332046540976352766540490733296449097115858538342217474179735438356594538091355078133786527024015185376354488644847544554610380298196299695721966499025656102999743108680049921244175771170770300459989128719956504966174211603454108014361697113894869721822600611586320472990997861288744873571417480865187542062079683745699199968321349853427619845774217371524542250535215390421430180421389638876786628939777657797322293216647819182632797271180865663055472702948921227657489797617620712654866614022308754732428490604004985877514383611347617993563069523312603964264520555184661194597389127190424717970228946675630310430364594505675834959298810478339854545087086938980354275581228509979009717992671351321907574736123193804795892431288856252233877721287992709313914332046894329794102974085198064608009764155971287633344335446569686698586859551292027375190893096937087304787324714457193671644592691154040341718764938839726174932306300979546771912091164726472264356323691867327873867903685602620817032286651185766128271426559366858332348210858490332359660079443821982478221111944400512771646194006088287755729627143291422292527105076887740673427855067981343226801743939936373171668859933178916845952310953777594305042016940678314329157669880052427657446294739454632536101764142779272816326861728126901055007678597946392245433284639056824441639753832295645857660390960750887557297824625321146946808726582859749467533704716110671960633717556883701795317557317617610942799397272061105690862652075095145541272969431945012254834067126040795941625777799298471876816158643999579169291444743294839732809039316802315553991984927794956500814140536714592569999182147642384672181850858856266554862581127870483838314220290934970233909868726487462621260310277535975589577146070230085021499389600767933022823138870297707076317757076945310897098667550516004409756157525652946941590342458815791062993012289673534874326626376032489526985033779116243408844820551097641974940803483303394390072148390154188433281978728930403003558078889705581113890458213832365066351015961415346986250839857145148525285783049720429774490960431984821659361076541353658132517343451411854854280782625057622159364408022047737145313524667371563475335306573353944113027140381878911619693635622469967982336189609661081022505528049854667987014392696463699642254634443525052854724969838064184823145544002542212368575531580775304174848980433185314615591988004825859009299606743634279918879754493668169608417125480897800542222800066486759403861387591605191708129574269032967586135853044303843585285352341970536336234862193988237800904773564177239295286088135331943716009194973447509708350606180743813901133195756559356349887311957880174595310054098613744800451880523211193879489125227407878369950900232900307514846699299437771456692088341866929375664618138094813506915245626060517684206904406688936008467427300047319379789709097104389519124218981733653692933830699348301706191372008321947333665998899306668700831373628258842095223882035557569179266556542651660087854860852686145173653951953744558284543937942015527242911098480537230315625561914066453078137030383419847989290720354286554381837137392960362403725850172942085917274402317515960264543373941519862653186632824330337510728114141757524136148146216870644142993048591830358053114691847930862187171301048800585876216232968384890575603049575733892912663391208590451474731707210581836596992692970513794953086221869120483673838178148487652889211332797324783697034784210887659606383515607659029904968702537591330323177045333409290778073590880532137166880727835790072395417612813071638291473404951024787613623282488376828157077380065453405482705277892045730048922046802475461517074726392296864117828221276770805540279282208751391008842736758773938920647821693371215484258081405688393838103556638195960553048503699346460806624824658776526984946332652519137661476690898114773620657623170277916245373001716359597610062321975304888854806973665988255902167577696578645515812590756276503104858294212037731175517493415672082755577590105988776002114005050659265382451628966600333823484811610188467887235941971471584066976916245894028994082407917289556433396799336890601813856008266774814867346345723683129841853898902031925044656000136471032105365742774379110356649301214905476011972669326281806425978273256933616466442196674785034945199446916229628333746716962211522676302919102128838820863736383114711175733498368131333055179904784518814231119280346609597854167153129173531995052925645228287124167546025328279043891642034227558284670170333596046208341541845178564493818507757861617457418494384598953951387517550764112053892620558688135261281909521778514800902268590283013598608672462032658733496398811874688603010393938548404186933531473791257849752963644794965456726289530042295400875445761312035498363132234036077824689576796570066779514864715465799670442017905037379256901118603530478171098902469910274847470127141417418932377758592192821557625671255896746090571813338639687793614123042427847958515642155827116462908103565239411838454926704961677627532738043424079221985072642406203915652021997962749046763062941818746808690695046168412781748030174249931868477692082271078199174203989830526011028393188064023297878841062680915447104779946195626245091870337022188695605983682145131946250856071122113838596136386899347330396375070792420166764826371403956087314306588420759439372351454369868613061419122031651469845542622937288204841922413559737752402037890705905578310724379480558148233803820959648960078232454492837540212170684135131776485826916788714695262157829229513519367011996638375701149565043393003623342060430875290047181097198128246323869621943242573550191730217391930423605621603596359792142334820168006030450749995030300265818123265450461231950473667393577905548737909553505507333590896528873182810013098122289586104763819559626048504544343510668382523316518548347920831750590546454431991426724365984745470965915197703947521068090215938029206196939295744272297126959937564020775127571369006569356733962160868463472145393320360505201174587432173782104318953653781590544660304922139919904142074495627207170979804961175622738303182046063940481769048221085262280559441093406102525411297801423108964346043954864553532194973590362110448236243765970172365665855217624629618257626836284060421953618323981935540257985688628067835199262782074027089849039754847564030652946789473579962088301079452248389283736485016659812169267387269101341559067803142516981955013071581957407614527544319332278538359324976481498090098312739597285379176334266055945338160574298534509243061358059458510752466585056372594486413836066149567551920333413642409539323351094276956891493133217217314675970691152737382574452561967082922600434785989819168848465680855743158459303396782391615892012383193280613442781442473132545444955054599215717410413947189580084465068485004585857016699812464183636685386319998482231124847160050939019648921034361511012612511571263613767124433967016481761033976337005130979227931870725081835090937771302074709838472730035647680901988499776252410968167936103796935188296440032913278511041686161028143010977113394108399264087638574894070886072117262399892778712190084246844999451401369657838633835581895475789040279486990885613693343000949133390142993497304733057230188439579519565078709301815717782683739143613694461265555850089792429156030470861407044754872232283730424650660601931654844912979837930641113193426014415895328279732351128799515946235742750894268726387467561975226448152387911884630479917303867581241803617808357765214547435106297935999565210154095871775349817125455139026979644936105553954087468282843356035807497315424248839576879499797232393387409386479165351792216940755258888306257216110124453283267526337717447630881502000947256100400326547246478561315438582696637689637224933420309508181982171760189798521734311630255559587613382717904785715948846532026041221444511609235223589915188588230655924488416355254505036772522764444268383119221590935096440225041330847624253189593490217580944988976633926908671499948072801092729431891397498775603059953741272257784047482612508935770133210756595810221373562703968614542069180020640908005176225745990667948908306192254869762986218582910849975422206398378814529602258247101616925382670371107752627457530906629560117593140834296107614469147143213070899679297829578123327680758278045093986871424659270831286543754433345911152893616317929010110708637252449765409675149751426589946572331906105735264437170768641749072636458611199396824055441710856581872645361658841057487819739449120374049331335053084239231621522046506575182631300152116498204415056892835009104843330090380127327896195073992678525496203875179378183097233921911671782053721428745432166527509692195241164849882834057634808830076485299189507549974022071898342608179365000980782237721309589055965747831606698617222934771252738428054946316431670411544078417524736483324391803486035700078200155970392228711351680788546195961493995772030193065896103248321535455573034786823220308967207010429891900502789870249981390504847577361776490540763474924210291132750202759548530094589881644302870533330678510568359230371751691488179214819149569404387069012631301600952195526077689781418445293261774971790321127841784187096539064548766034835004569435523200721068691709325685930614441060257658877022052382254481830555605123194248426033246157233577612075017257225206497875161938740470687900310166962909552951428191657983527550507924977098703796899977202466969891170531490453195334840542862111388317254982967837490695729873366471553260336273091086694726182321447301213459213149716340692396934154342733241385022597129705712181437830269579482508608183822907189010559168939751550678891906372857860830447996092166945232893611400782676210288774824766263972608899071533784009818924325806732610710169921578885621684657141044844247329465272293989963852180555926761531196363748575230047734648570623677059165932214736024471174673196013783603012207916063803684281898488640516928709355976611031211647428150503141714252413725882371986767355281841218647878879698738619966027189413102847991093758410543057186525584768741157336250747720244716425865360679102872634020573114987271012389641650050024748749883946630870864751143628816967614870659628286504284080273989112403514985309002427084159209798379132017993530328390655677162585711576221108583353177685926464752978295801249323013049643389285312332352200215170691738025452774613333117874212713523946798544004908137286159546891340430461752468726192321799799934965970780016156467170837447125523768446992282229558810558774140464149740593134530324683203217024440649090301484415227760995132036240050945931757717344011737902514352371105732054852210312825241193780166642615104663008987103926417908985663252420413939803673451826639942689550876532550812956609139882529141644283478300072364314510125664961031202350976448336961791099588464894282268560995915626170839318239769736838484468066235398955803284718068240204956146199257168462335375515383575493119362198179858970298636508177061674685981715435163831418207928203113068414776978786056400090289711316809857444680088063538518514172059255820046689933214268788422655720759602876907807563400386844540248919013928497157295721316682460719428085112162147467146017568531743893525536842146592882053794355738210683016914302717490334196429540255681077637276275173127032192550431577979899768377049128228230143453684165111612447861533659542938133808258712316388651225527587586185009743550479043415285084792621624471453709395120176347743941204210173202785173116868046927709544242041302075557356260104871495550251120718921777013365400413039139895141614640503579821585767057167279741259760271860801182284667825019228887867882498030930135709396058687334077478974110381114119062315808895076471233346314561019375281470836523825167364182256253781044534315589756041147727571143217807692938028617761894207707253841114341365062232636061126735434247063482233714541954583124340085495051323025327255990034290687353029290340001983250614365695922031230866253070151294857413395738555040706991194141201969622218021961938260579074565782271920222619237668584036154442556464265066959977784514285176999308996875550783107393340824732094578235741710377077828747786637664069910798943093076697159745903129875914707218635971956124486198531204002973177759485822507535716156465683867484427310119611101584083865150074554021297504379374800150817089662047343981348914001678484874538121306716622247246637136629047334284751449150770517664373274640745039004354260477929043072351893446747328890524550414481371012848308906565361662538154422677866623111526141954717125328006111787474085614644083725249454362927690531989182671543774247203234163672722865738160583466887879909341457611714020386450222837949193519850217526754163942068857269882065318473436947051707007148657808731847968403627472760579194343000292950300149021433797167657442653226716097273955943956490122571641599806884810794767517502169347028869174204871857672491683085101215903917869508806548078288507166324982236587223648747813602628086192548575340863678561887820200615912067997647155227420443777030378477742058270552649657519053630045468456328533956136922258760539421436890058794887199829596757302567161593093528126655332624201601162818920935786705135840971507435791999004009514781161729988223825297380590447511760376608946266053953346647617886647800544193284637155347674998106106439865728286941766507060246556455595373038802613982392005849961051003747414959406425563046338703231859244112857603601512338170043812472333813062382085233404716200297334825399386501383297313745195286415336345344065754625821740010561045563825107526793314261042473837721676739274965739156700010622572228353848251572075891062480490716413793147418730480945746596252157711395229486094169041073583585197402638411310390537948227646247050763297200195275515043232763016116202469213554222995399023386439253443238720206435308921806154615119240276746379712285953047359161292682623962193735312951490565229332987086104863661956059891999925337482473634792267628408457937521791494960682174873389748701724917282215734623988002255660585272286391402282013947921668702164787802560417601375082214238516660349329073717393209503373735056720365140963901336044648919280745413786831554095415577367377539200752408895911605750771752231585437973355229698166165463695461441172578554151851393553715698713177303006617340359553690851831339008356946201614949497876935027894041253173656489869101373926493184864909330318242673154720894398146021508392496646090378008716881259545680718979162047952516630267835282802790313654685037287224465731517262165948572709609021037324076114848685803490226513663964704742610340360971392225893551518359292899008237268818264754078751369262827445476748061071938354817991085875137406373859959051459944553843872502800533136944959467378667469330039854504424397766335647481805578863487289945831849949830106382010735057259770293511555400599453900640498476104027347674024274623899192712004396476008673931920144046635055155741340067780647638440851968897587501792544961517636461254887132160908078118416800107619776076776950764126570992526660667529878619491424698166572341291965886504745447119996145442880245360928829445238793278909560722620163997404249444308438559465795250405733692779002040109128166990893907651604929553515437345644176434562813059981207266353403321326677476750369440374515176353701412781622385228573037395742873957759770254389012658529084818294095712844290712137700059712860401675268758745842195134473077960837160546135180292966941705181468415461858436093129536872829689377587358487113810484576781248694481359796576540378224188331544017839594526790811180052069144032099432887593327882689640318741563765188790112066113809896075690501187044748777100330762943926198300378664940706836547313238032031203298887229890818335392127010789552614051457833999251221376801368627815529890351542971752948179662895336918833043736349861810640327339739280938133235605164262418578457678389183509342515887576006276223001463271277607205757905993174502019934211039623268873408164973113766735121590731204368000605270086673691753364494476251853963648498721009237459662225265628207079894763306213504102693054392811420673006548985301762049326959386024512255782790049555272529480536404936019833799252744453928391248522509852613167275416848549537314053664298497550159358518913527975440876869612082914820616145267421695642020591022266669009748317985973634853921605728846223276202864338976477005313530270218943940388150466523417143667277571515071261019655588065509088141984728281934274991885063755390938963396219766984287837755285220046667554269348100033628185596091062254939306183062524334470168439443175647513112667289404225516582596310147352796621005330113000758045348437818437008634001002608299834992355346107053794669947538210816721155406664457509608337922498986798722763202636149512844558813775445681674347718087055513914885464514394810260155821485582746892909837868619688265901631821016114065814023494792035097540868613521374048346311099265869202752232343642811845625355366284374405430540366815389358058526684564646151762372962996612386996281567002548225310773859489165454562107132769320008972866960146061354595056657909248536526296602776217539509797148135650932395992001446667264345887329562892184585953499800941262739306590109867588316889885096983438013708446580737996152517931043376258099724429652402370118024632919352801627252122775635181764395707190399947483013672335954386029877327785116290136834637597328275580805716154508276714091861047925122632725873024886114684318876516134551369961114957068367562183938229195581613225472691719290296464147394855304122833894244248608227667452235942311618913392582759919674373593603086218869127840434759025564250814217701485139314092646232304379462936776948486672894277239255987140023291307395879989928482868213635741749343438149096800180456984314057542486228016813754781697163160968562022384835848079577189258795525273710686081808271832816270087494648219016743433618863154288477946994451785589550278267351832122866729034647689836660947085376424987506347015918748551785692888014972293142232968553153137325566467531455483965270910750867566128978357541103106903775072440959534494098577231986670770640763813656090011978571055704776801993359688982592995107182016810183570212998505313545698973920206129750083486246546347454522849029408681283017485927395961159138552932475495209686185423721851330789376773856667192122929853400736666239148933189406053153797858315708864316671146109186347346407341175195044167540192328096934174039484130777486270705076234700541523474291107495872229407820703858785572814784844677218343916112447526897610457167275234096949521353389636894703334459878502560682896062084893408771502371228348291525801049739888384462331878289728180729373666922666618086513780734001387952547181231529784386531980874866978836724828218802524723313227046824688280347687821888105333273291856506627948623601634487239756060227557880602018113883641130609866173761578394403349696837555666399276055338075898568124067861107014227591512732860603527145873065287881649839333494491052846850161071931767146892235820744164604491244098936135514775010252874958643327158267527418904446084989166810038390457088745250935300654636783414755742232091379953035628495466022518818217925374603114821074055962867241452872828658253364705045121121914055362264824553394941376313163618454468806111220206238849856063390836151961207216244647152610617486847048211192348070822821386377725515170251811861924406181702316546424395729021059612752865695673555776501935432569068939785700364929689024922627143157281116989403592063931224015445281386610926371949870319343219504723442569504748043357055999833919087292880923298201394774580877096494277089119294044708132449600361086678637216347155872342572668545900816586617690379639977602310095755883433902723735426885179075656670569086523774617716829223700152789383154153809002467871336911568404889955655602431462506857671834206535039700545498770510420167281813923673569507560020404255154657941678537054066742978447763837361631182242791212967501039735551965452723045497987320072555880563855671472619623863241672365679549306646218984214269031011389381256319108030769761960720055129852860255723114665763291968448078075812170617387601696440388261513411766604722596518073630369372793413167125232769818723794937725780703766529919068101166644051704998647455003046831715636010326815098381184045627698560304705059493098354656479846666129296845027698265798180822187043586660361790016993338006844580165352253706661098994531926304727781901444876602527632139427489451085662137122348510170629966215907926807087394630487808420235351621638189736985856077419512986800584531730028368329623002530121987915790348057819872883762175807726028316206836575270894916049846936462604099394239609187561499792432157984751424241474727046701020838626216115873184042421571264846065196746925418923532501318513854371441208843366617226730324786681084724178612610620672803240093485827567884701171212648645278263530418435686379539487958439236465755216199831373270159945262943948755079710979603435721537178361865156252321798111120278816142473758250105131828238257644629602915416008453089960860516364379953720715141199721001594323587096231163964233656472279309390794045052264298503058838982472783292502560582230414014734817079590635926825775049539572974232863466996569911792421839449324593714576418054337967599102455013809248176705547394464544431503027510303315260119740971403171889766197959015116768422894545071683310428586104904895832898014785688728470984177133878029402743868894386427352047915050616654372993523345176996295431114152770472596481607111385442085799242508956979159866185218150243521879848018873599066588762781115131758978686019629128604113590005275963847138957826282530625012611508469951789039420042306636855391600013411098656249150162589216506790083457717382871771461376747070730518297754245820795521703678505072483171924363755320302560980229461645956740867478734191590889625849412085265058707598071025022858063065109989456975298618839582428360599508522691186747637778984405241436010811695024544418809131199139159028755822798884161498213292281280544121312678529789823573824424284903536962253786939445899375600108522075759105634543281885805506952672186021396189169315950039281412696132945272498529414495738702574307820407874887804803116518755233248003471612008705233147620019527357652539823588898755925935600183921290064847735747496834647530405024473223529504897433332548896488136043103508996919754938496772598218429705431023020447342509228426265216954254040420583218210570492068704005268116570267272286922763277094293830615940697850252715784363771754664598046008461565290801672248983940024241490189117861441748981428805923605230252018027013644877232529892688773053242866098529365907976852998630927047282008228259294472893844629532365841558726253929337237079388628045557174755100416109667609716894719773170837702586783433658797190981355269288096764320461844168153977729911598878181473082796623870782086544899974690649856913289441374690517469807023549024374824453772744546884203542055312558992461509809044190199311963324553754956444869226511947181633983398218298443535800600812520039008408838694846455310782092069605856373308890733486889183245641480788956220435992263852026242542825163731210631388139283343166607226001524282401642091936074781861439119107768674487377298608636424586013380876092946682439430860892747256231034315226981836874354226920330833577080986879931490399799716990004013617313379418980190503455830665574347175807797564895037373077975576397237361965878487170009218754505965336052966789544889539576957961556738524349359150210687846763345636268221233757060244617225145547994268382251647048552341071138210349360117511038422537919237710786393452962267732009045139916259066924171979409645779047864776531584715611077672465587211185235606946896503874869027692818687081815071604445173198641727783304754675666727220752865354054943535516761329040193125367102375370313029367298286142516370859751717814001270966930941722094049112905258452933860869687413152994481813655664150476128810359873872882235664945894123140122624485209989608076021177880268349583623764994471680356463629697016090832003521081067505055210454263854277434337377082656799498570821378536660246208957627595080242916024417822784887211065993524696788066287917818732456320647115949265333592775536701718887150976395161788424800381787932507880687079864369697581079844942146985247918039975935726391546524405853795465263570537784922022168929793274261156446653853005066013830049799088716218979327796460657945071885123998494187583015000374727326959102810982977507102368526492531955929078810168572752917731320486776728978853944391087452990031977042982801004368869066788695067747708633429794060047070085619568892117277589424734104810963453307087738059241242082723303780852512614919294961850880052523879827057716144197051749399102052784780527700402720580407445688342942083705187940019312525670946114086764792474578919524429453039424403683135145826742721881482112846582708768439679984414196487095169093438645108183339076877387458234072399297509287577498274515429423431219126926269095315106991849672943786445652471470603380622641726040641421011012848404718774080132901893160022520537998524500704239506202890162828105424521494912657946684726791284884696831648536738724819853107716915752266903742526941883897703700683116109574424284036682763667316849511087570443760862446266273010700926228565893794802435089183407222804898148999886995311207405720723350251642264892927377778610482107093144288272445542589775419780248466657707621523303464459033666855488393756400970300718276605206397994116088728214505453281576953641514105756769167249216139031245134756254416951500090047866470911256098427848776984027930805243466598240092166832702064879399111409395148293403695590783133831751954467120371367211696806084795943940677159938920937101540175754096024896103715737629015550843896779179736778235075366604933023415265077364316022669902577952891319296392693710051483283365735101920638016674065885953052845988300391825585183834687300597837560186006581960619496949369940479851780021601936877981708040282120812046890248850793027273005310316464287383421987885442190959378339854865968336778649962366966212572593063709564108463478280651686706845650451432105945124889846678850265021774360833371923206465848546148693591871356156652888819127758945930205464316284195001993347214078405443663656953411685602089927654741413969173536288020150331645702305750107527288222969808669899558717731166924055680952239161473586938811597293566517603614833656440126995321362520463093153138395334079272903808500960769128157925090966035991043338267039545555550287052524902881462767671273174473714755418821510838699216292273750246169557173936691709162711661829451944534964706166278836962833828100284561608835594454439997270079088022386708780545426891444001997378653896342739184475937889047536947875832920563149946625801797315833209784335506506328759638878983916559049948518278982088627204375516807004358408718285526902656544344796469490351329827261704104419565234829390619011615529351721370988543714617235171157076863552596812620814333548633831510007142115159389459287517324819877695291978582793293712358901054132395695934020721022469192090647907888332862792799674763750642737876259022082065198709041120998184402224968602850337046984519816129034556867381483638379520407767228886949430972622957942274007775485872672425507733572500619205614833814363628875004392910742328414131616335420675691312094523843268541860901017139387819716641626792807975806291674283309690116684525343166838546327746794851069307696250077546461352313977838886180802192813400498227011243722222117144545492956160852043789741413441635590150922462322489906075885679466067558107539011602177461355393409802752721178174036979637562157463326956225632233603388962846032746074543780019935672074658691826767655351893822391401922886390113577874683915019739437895867776007173097760683198562088767809567173985253607620704192864184627940096079605135926184293296865612337116410198250100508823587842005071457052589608898352853045988679794513297289866994880170669676980061168363675495706130140916410584245791090945474388859011815054336711918003675597388525014797700633059009129652373098597787113847675458887143629026949100277738826094998919011133570256323384038426198188941496379571701143088168360486440659586990051062897310677087814699476024298258246521583376482673193630788378669101134603364456638969545633889763619094490672621942315236480578030407684407652313934219790869644526867382554271974498613404469668957131423894015762120658671326099591820154792433733978485808182649577364337322754237118996599459221029695467753162723502425270946946533887477574059012435260045996919259407901895523982202252605325753991509378224355493105041115550089938756726809893697203085794038508686111204909704072740497734092173401779824834928088004009930033847694762122077831122676785710279425898966787968654196689361372857386243622184562936621661156308175537351289543923019648010886098401619318560157402010482176484374302509000802761582295939757991319840161705229087989075643213298787895487700470624309126846276535153762997622717553407809081731243114246402920627619490310223427480280867562704163300703977104287942167784737333355201878046206769842639502932327059920384223778281408501693384164924902706573820195058943336921170711699028459801548889596102209089403959776333408849814691397420920071676429102666076645818302653072561272584861495171205866776790542163972660019553658546081534019727481859705963001382796554976462503921806691044662657049087907903399908580325603747981293452951291989209886953449025353404959084260760990543808000322161133279840427644781080974586060088783546991768215748693533660705899444947748684652161346122588252902025974091161818855008108306897489095872561105514576638103411815851075204516454000874479789040294525213932277070068668455180783276626797995808623301398320975499138373609888795933216197886652825557707432917604842701082547503429799070348563162705790508166482834627731251226619660549216674589900152236721468947616491459339063396240539401798885525823015149035321399639215269302190576315443660146126960979469301179231110960768471815559928291499707640413498668296991105339704263060855428569795922531456026829419460530580774614219204683329139743977781771344854769444837934556386981440257540089015348875097901088536429252638731495487234428214035158585418188689251296366385803122602402846120236337318382400948720910074046092323586418141204204959156650978817044011361205138053292600768713279917910494037634666808708116866635300194696832196797955115165347539267119648598637882605457994679049934368944938976788288959304894450130284113791414340384488472623143555426859850089428338071077898347350628261156000141423706508054470661118311900261633375261910057167660380441541232162646337621801882716846348137375849309180337147639393477108322671669904681917880971315682263719715270839115663933525314443729554983823332953423734206172372214640061548602530498056514594426454314889070942371700257046037325932140476276748632280042961371022937864357710520897315269299320326499434283341266601688624659815345880015463616432320985486892897963429039658400809288366571247295975243587982736410191522595518467097700182020506351125197460026797509059295376670217815053060826497565180330808488520743615412943456085090793545892366829781471509626672053739473748962147803216929813885737960062796110074545291074471904454523565989952318236722683204473538782865051330462055089572633090465954635880677496949801432212057473546139859818381960487267799355548148213577676513349912308784779438834839565196835746051547032760851375264775449834570842158251016552458401041374233242908182756051230494687826446775148969411523106752518837889049728749491890061502432573333186001944987643567280345855154998554433045700974639002812495776331605816190522910863023769969251816944159719755035208996252555267083955377020323635551135121869344428414021225631282218216261249107788799314614515221650878137540485367062763432959654429445659962499184213504379855607845775038504715264419543754835268271284407081469379930830615507134973982881356509701781403215160630104910335722613667381529348785084503633980333212081206396077587962131314342877878507656926659558724073806057814645150368890737924085198415986733938252413194238051315442823499419289698584457370743458122241957761869713980750390312204587877476125249570526972005156245578518190095937130461457587270428103496707231652156952757995566680323057583872581872327507288642496573580994442952216081522837073060266780592282029098249893213745144833300961394157104005470027165075789347949169871793013451668470730421077595391136309205520861564387618562535331854238449587678143445107553421781114643071204754863592287344061429176287959814373325997212123505981043101675949799543499393432892792310352176127963207294563933511396192408381194196158280708078272755430754128544790142945602388566466669472695367035978725870044559051085667430842586703038651529991875755016229103074098005429208020332103544600850570195825305060042614590321245876562821784249177101822893295766723888024667099744260154542311973959327551509709538078686282404363341853680843868881085156605205326534558044181459537193469291508226061966100323314070774914976618491208214492292098504893148343945102412117189123992471276707761393075190187125871161879871164151971901059018501811266103414916547870325767500649030734717221749512977383676724025629070666814400383550745103249622671971358772184866460769138143259332731797353132769681181447003287292262705050025994820740381802714070498212718618389917372331913718403965139963631649173469201969075672671337056591424826527117354642565737584797420428822245740469131777862041813700837652635091067631275751536870458584977055278384912898984795379696579054882076027678186318663303227018010793267448904168490039161218489450874862029103359571181421577362390159013682983224527882755699789358102967278638094695032700491988239027726132124438784100946633802555524433771022116370004622282121841024114751567416411992617803712800006093409922401283000874670282403688136034735768998207807471493308587479841647654451804439815325486168332834967493199748464418781810458450638493551952388969885487551628440600578665572047900218540553426074858113621472466480693352350444680833219541201716133256598840732294374572682808098430034419101096852229220559049118379630325568250178621195676840454117618751697687676864771777270359602279290146914250001875761913674933513107138615900499259332410218311975614246448702684249708169362923298671594897064459778397678569112751830038954368723752190118518910368251811735668413278682769002770170901769641861422818969546745003671393515919661621674169014888167863324507348704284821670383964902504011536050680632252846294333409642496906846229343594651147311011133494508161131613480709785325874548968674879783349283652685918511349955283725936113408685601953740392426644821189221679769211952109594388761043919927432538021039209085435240739034599452568695099593608553865502271807779604871510450547699430050644367285481924424143493908303496388670586172150048506508738285597497226766429642989471275390038227663050642067570084480952995742055543468872631105916170440803378586529009473034406752556770553985793249839816067304254010279388135323712223952302525916697991889387915733781962992700885506455611535904723056015313502511046732775773099110607843014705744703857150817383055430701379589529286729475742736729879158690219236012423908504148664000416794331786812191724546262468544374251460556561381817477368363067699421065041184216715801167363637322684937236690647231095222833947661238252800163343464596669027514428356925054458857960036534267310823132158300951757308863030441803079363634157317513108395564848897823419068902439799428893994167382402364804764647865846499391807532354647453479480465944302970711893597909671679373204710734162461236613294603028219182701732873867229864387433543041988903441501476346327514814919476286556628436891315934357095941187468952802299739066758987373402699106402515629208736156256587253777693897052527324426665123391348552872557377534826156990470749835531071256062188871759712483180186415086609707507072785887433467317939985126607028418456860090119494148995035002840307618998460189185197434888966885385874636386609958618461416598917673651798297286620927328971450998803812858415273032443386179859276528595457587471356805123561860773505005449959211465148894590694862285509529168258188215054644118165805192888101654845827047871214273112384313840020718520620731051753328187052441251473764459631069363916721198684945129133415612401245888632262378189128367910091211293280641759879953804507733213616650283839075513149460893252226424577998797478252559889668824663243045554779874028332177777869351072292575716590840851952406948468858515486660049072464370909846945120985494200783841953686655340267247116363689703799651861101338075618561457915824958266219294047232318648704612552366424487503571779702690918452118531992044386612054164628611842268875545509470980542835752463545777815272017396874562284662914181534547166598259099255009499371526218684477174411255203840346485316440723094604400126996582633639564089089532303183600675795521334188192228266217158284975423869758755141998335972948816734245526954474606172921893057280829140598695877399723985104177160407522842405981120220011585433220365563390297174373296103769480336573145544656686280231393407211437786666371153272088038342015075373232489639438084506851273497571176250285932646827525868409270420022869750897156242043775293550289804814299037801502606063567744731383134455370499540220984448051190335980513423623137660835624526660741043223374865549281361331266811377870538884185951477789225980441672179303125884077791579005684921775464101734269802071505189654972030490443463734077098188860608151387144856341049106587520175691517889120362771300715682292830302396487900602291405917092138758435577155241834969554075855275234668801282421221618691591746374838675436085397574719548486448023410339834890775869597417974783815982807843901092077490452096419028787812526853372463652504793255567003573860494243250368365821226471309676419344017802014996062799039642523469955740747979613876720567547232488647349845562259392492671845802885774245045071935661328391935436411279030109989666149831922231435805693056272088810504228383388362139231319474037819041793828413630311383121007911271077623467450930125481556594952275416757511013197002122526096072832966909323642514449490756142949998444196331389148147707332444443267355824775639332394785813399023997300423464212080211352105123268048742499340156984716133932712421341303554894228108485927992538006856568635234130847009029107420315686444873341314145102094768168456152692637022001789982952692612289463552296727162713808071017724545637282804973356248911277219139539817988143386395814393559403467441984932975593538446912913479715273330017321839009245943192764137583835411121565972310874340776649451328257700818161892682535591671485737508496741140429179071928351521829386556910951048563984474766801174703855292286752211343568658242438921958957054179640936497041236424361242556533518983851587104418617764518642610153321158915990359853642387508039485184665449705866363131781323973885098505993924578752371561845406078366203529529036631239915755560456897973861570608504197725303019817707562795561810899850296283420692242597565883122766579470756287719041422509680229764558220260954546013513011887990648705201247672756800497177795266250330326050846401939656874875634768173605882193724995072963760951047375729316727666077554480404804570173760051796783014370509206266791535129971866795351911036100584075500144676402464317475934570853619950078381729374706237082567826521074737431111320748188611109574186472798517538171039266109304138590732640808921129815042053896010374329082718207142430084556014285186697570493386005013046528658237732568410656861905272813521598422465912402359106838692066244018883510759539409775877948585321635366505390205449489076655735640407895912892303016355332245627914647384843853041028270903597940679691638961809836577067595758529090462216649637016707078446286969647232745786541077083371917115794759421039730781631450765003207706755043550476702854638070546404228504186375221533189476857205404621852389228293090190441406155149083933921627222156552312104904334485180893479575548165852868818097033957594544831999936950083186107330916167917006403775748797459009298165299524111274602549974955606531358811946521341233120349539199632768483043094042116518182986766727452549020636753622235862624140554494031274007830688932950046244978006319850882568000566297623413226755178774803129082119338947995862589083758551714399752823128736676892989006967662170479840560384276722385872991536782399862761797423363659895165688420209362340125200937537391560075385720326154984453074001836578053253790363106692107423261683314771472947544063046151852519395958610790623742243319721133917633872280236939450040572007008036503541989445325932205112055566369325878757885366528359543882466714468609978100566520124603178759536192383985401005107890778912590824136406560732261847591214758826873808726756287938219498241420252339254094348455698348624790227517006136474641941410986175003798923364229145144211277088422427624291556046496644938260467776088768847223925610140858416859831717996768815847923853055705720107128929119281069941979684892057186596230796069180484912885606158358259397979656568360693238986333600353252206106286269128989328741095305024164334893089886581757983787979738943717673567944836458560174478690335375535876398299822139965942880372656129859622459369615571748198634712587201330809442057782243760116867559428171620843371690136712359546361292686297391936642885019141604653931910444895039814308811680435543184244296750452362154356262527357664698406359670944276287176613218516884031963674326837848168973750496333345487288337310822267637480999140593330324830471877411461374778259427524590192098316877418668176479998884028150352255783554767233436256763828518379233578625674262220047730486891904048582069619031021282839006511137157164970260352823954654550891291106805957083374515667799831599385309063651826870380096489264417508894510012897448103289148382499172399235721511302197443258861655346321502605150578836069170354567135945083389143490894456556478635706545262266949749625177598052588282783251528148207647398837554069736673307321722450591573537979647766762010359852621159130655851397684689255640830868117634381807036686144025687571374405091229831649740917283238746255199602167951148711803052307756553280823800152148715387159622402138989060123560403532635768956868934660611824519108003670887073492665015584504488277390574024646810203286800492390547302699792401812754412511027509945919645193301282746176234720518225337927531070534401445895772271390647117274113068176623002880627748325212820583967746834305690206713475192378676378729723285854904055929256695695532057015953391694982704605931832228774521760951798519849637419986917923733623403004534659160406515061353752345047248420177379870095820229011665870851278702815397199070117504457619814435074410995974187739686012500077953826449457785818663145749791923233505797220990545889700181189060142076478340766302127671628876403473052335626227287059131847440730778358009548743574394203324886071278379058388299787480446170544706413697303179112870636771511267103711051609649473380236761557510371290319536289133521538619639433648441729155649877996125052902705889578115935243982202086745998919359862828039541370453134258414515543161297130886463052157366153089579932832540826456050499582633775101610716503420562168929010643247239837719517511102119488858532973469373449675866703999572000733802441440361796088184669698980601442178846250919505358255310756166284223827380689624261712029737908906851840143367856500042505932576216699207697240018369816502789064713131477829752918314967198969933401388534054001182576364530982535908854293051157137374453574340283016489348744880706914992202829817612004992557596590861414697763718860941499978852608355170354012998963992354733692393650825650167353692690346052321490670614167611928692345445750817692523086871749169085365784522733585601615266163686679650577774528527188021715312014289360612276170187744963130357365126065406214938569395302331902824003141285288399678196756325307926114949151984299674837455990973503082092838154958499417781146662027977747866624817585447169547153464853541437007610672755593233001983478048322355555021851230857702338443236096675355703421336038605460276707799755113154858024829639335181166277599972543950600689246348168203765779899869481778914126104867783760972521430095013078434952850407339842690058634287888234107974763544012343769074930821656589248187944667450411075589142632783007134676989733640054058546138999277068896696763165689337904895664242471582919975751210279893669244565289547728737546644457700406219290176299678000288016741534521885795094120694028473324593811804234120369925120325765653476345036030180178053325933243887882872626093269629319598899226420553752492863962128545741052805991023300015718616998935926223098966256020528054200750445670194042479355101574301904557779414986663701167198147769513874171800815293750445636352911567541214568305272016047529952770437922816193256466411849482574374361456034187181368230907282620157784444568612760007997887261739447576455882134392517045580927311501302257224068315944474736765975403737434265500793548733079642932602559695862417859042243603060509534246687611310940105748952932428471594554571027143672868860294468133533526982807081273504155336331389571863538177225740048479896290788011710643595804656851952409672233744743111548176686961134520951251388734123458523522219933604971238933701618621828041659073426299026158228843908552536406401178674728946683438625299963323748366689312344197138314969577155285313195440282002382284733442641356484063110136222488934548208003452567742031312165960390882779608397129971263255250058611824776466099764412267069240479802056734120375766362755648801973034182308374782291198124468441140424622378714103347412976250549286697658799987873035969163008788558306311775850933623959790517674767395010901463436891395467246191270190770932211932390408508702311368291034158188155548736937147693521878365891134780954780961480011098566216767979303783685894982490847165631158950524574103759363591524164366365361600851974161808178058085987975883273307338194517774129466093575459804188118984935343288126316378776592290351788988693871587311807465577544707369647636599649024806301321617600554397770515049972286798436665100921712913517755511956535675753052060793530824757636628683862618197806562187966422064714110898278803934090283573024603726441054322844588156448952001414568046706857424943315585804909750743260318357792907412026289062558278586852731275703035411427465247099242664157524797415037157778211315674504588922920072589890127754731282089893826563331540385190726453439005596355507471167172668015048400350692776138386166432494021178018866641821412671396383694804985385239981240700005074196931888217768303560204459283181838653064768705168412564087515878973675850324650741528990597941004867524060691698492945465830621534917170982256854289040724195107789248632721050101458954875620825664407191458598724317165608013455864035338742914419262037600477219301216262863747250369010270093532654310112189634365565561915977500198553637725421077426405129068208003754572129223900016295729882289267176952543312289940781328266422324837209046335886338440124250693363640689206732823600507620522101971570427733914634749144204225305200843760848264595469929659759780560592196080948088332955520719127235338584084014657881513269291536286448347140160294494361086781670290068716291557358364485293248618104995677024491871938757710498699928198683034064252060906714660936175895625227615147411408917174686734374707276419401558084109508955063488910913213675115176247287216305368861663978244905460264686775888895769208067299665792311356680822861067617285630806336557633863501315358185696256898467224525721747207314890309067849258870500135391442567804867604204185415561517363841341945319516069545683565292801255639813796652111199133267368370343277676221970568793231637636778001817637002561627643447356624303441989397945860220123752259158427418698175387453003646317267300449884361772472448191183739498031555546935830895453012017043281124023205474528446731951760398922474459770995908408495575224145985769971688820797282072629066497261546357638147519077271210446117612855735612655430469505347936049460384705303642878320144586237048330716790304787634304691576673711813300210859550803229484810052189225266841486644368161537415660227082364398633993732684304679504299978319141741457775212730209094317966833112144417766190591908389805103241016785793944616053848423083565709023831001941758698133709849580108204276624213528643918875866297926876960831912252438138998039959700501955256828967465411202598404702784873055745135394590513346520471063956990467860530855710130795133580241418248787806038042219434189570309963625908345960398379502195122565955176936196113224134976105919717758781714626538569247937146531895946571471527149957423383531587449922782697894799727862770990108136739581855020539460261136063021030459801539495747473642859577951968369236666181217417008748005824694349713099780274692704506798370427818194332207157593401028681672298921660127225318131424097340388473655512015197332282940919935015608525720595749448846571190023991991067374585633502668061298683761368710769938945283895485799115087332193520221312122831768338207348778099001873681543825640477592782685886988382808690482940168043854213769945734816795862059022939707489546180029289226988721082587301643432185009821723725905639687553528699077665929057631086042167882360016227974582202107146883709983730443456787219701800500872014600127357980892561967395653328997753812091871484066397356799726251983802570854286896828826521211207495041481805372219156791259133138832938164946631266019241757366151608606009929719265977967225570082841532930675791170724691938400524344271521047054974817127624012449405485613170887712773992267098399231843222327655015160140067196630859337389393730284257617305785609313086208661801310127564037432918320943326359090452242064410383224289013963981073678987945356557723043748796480382935047260210369584807412683311219554403300586907721468801271352822547639773341133320677674916657471739686536356928274832948506830147026876544406026375218037553880951511514480247281692259958212904996213678080534467880050117518674635885788734243161568738620764590350998125384254430855122968126575458730729657788842650618069559848442603734434091624323290634207180711324462683651671201345799602410177841586832494220986862981346086051466849519019531719869995827486896989164420144953327314157602722947407137118612131509979714196845901462211997240248402443592330847007598467421617104784329201604803544642126278423156234517281838404590348043859035582186283439063234631324129361085040108271320447011909075403798139391892407976233690955974431370543871106428670009912875397791504998720220958398597161519225570307181733659181988106478917079330027823561455313504909215716287333732500802793650916899385676933449867680801704276886967951560551697075898992290794325170484924232060771505181112888921631558108648043718525801856362873464635481378831161254683747514505272473900139236790122621338874827466874135203567185900770816490687402387649027285192397059714104702063086312229831886598265342389140377864096484903499945979984873691113976866006892567157490738259733724321173681824391566899150922701824485018565192921704881223786035624590196151015051036329794182434002521174239473659228023263279561778032391993459612619585564993862878087554078702105116366226377705740467590363053643506215023322321665952108567160843883916943983377963605637393404458873676720055375931909571386913466685516605776413680612215261310100932107374570927882855910108412090363072328758098749934740950361094298434173012239088387304283950829544281368109425403809312268333448395297015847251800321726447058242647328064161056836752529452568777714071297288241227063588301623286452502740270285925042217774615029457859636914630836786159600567375535032731457720449044204327555667601426027155349280966439579330591371775724607265723311023406874600719777515657775168689732055280427816268460735413109617408813115046768575713623448931344874313698852625797545805899541709946706778369892587173533110019069161424848361299640187935559848999860443188505985357733948002952892902457587344458327386663195960666090017983232951800208521601028592252686114539730623823328818018164393260245047590589904553992566211773831394641376015504920742853378076499640962559191226764639372873452173031914524539922537999210565266993325801954917670251326267862870497931193837877516314692173367308081054496019610551955152738652848419921374602443866917219929011271460645669504102590984746258780528262761366587369991984970638592802605927123474830694694005268164798351348228214617129228397058089738033385935184015746196762618268710507472745674161788782636844128638803098614153590647788780443783748961343491485485533583100717725872073419615300484058882110673236147777957984851336626514722977182741470542076144703583759394272054677869922675334597487851192207978231365633634328203214306588991653016647388838116087679205081657948525796855399165992149813071734517447222015849742604782554916242299173015128366924472847590404708930303855863569206402136572676941101374697847796431344418375249225131822642236660109054163832471508310177379911076500949713549813065619766152150298427533136468993829752362426321113188031142526016614138753672346716975993603043178259301836887045300057582470469928227800162690688932172021795330813683398952671440573778516411983999382265207356982100727798449982365523553515692503200956378327408278891507628159647146916237545515492556844563483983645957169935321978290927282474970590083434446783856155457808173946908619669593290002905752590620661964690026244408263590854553026355536300453175485173628366086399890895855699435357175407532243777468630954477601623634825496604485869224570841130023069139281859448837089299084910641655863534663792056854814301827916922421431703426871266433679204589912033397801875111765558300829327232769062046536635599564569777103974052234428431665191172454347782244453114572546221217599819822483803492198695281194040406049746341462572900680020840966894703835018623492874417398858610460070670960730015402061259652757068002976149553804518810386425773577109585925685165890676676240497847095897465733995293251575771638518313109640204373722946594477441712268202747960619791703551426066929200103408735340972155049801825924623537254509107226313470251970531044823570812326562395978088891472839539484075585262623254015625966501302135241140079999885719302916792760690702420066501459142743486820977200027426183721355023129326655503301718083424333216638358709458337028653030704522709667371187627356550884665993376463824096095789055905679079895570683649437341414758167591172957017876608175110635538921278172741438375071767858952560936051468063140953694628641881505746596561328047577364840888140792743151929468905083849735026028409495495976273242105527751389225643865863099352908503437857852908852395997415991738420655249602930204338392422186970743133716521153140146487521726364396652502646197351964503018255801634460580146557718004204084040479256919293269741185799221873610608330853859876955073919749282248027939291307609787862374974317769992768763278470023966017236197677073007747477500644327595689345692739950623104862498844655854728523961308322044989955512073315652814247709334379803959755948265899850597749188713154112873236398817268601969775180692558702247701445058333842181764340205926070788591163836692526444641216422956640707747238981246981240961107958595408536302697583874129338791139842640534250237735493448331106076756982354512392441889841093011936138842188028757696618990975106814237672926855105483532591505665029197317851752903626397083055251362958517474095443647658724745082100729111367376604568800818302601299042582422692052901110903411060919909042052483097851253071844584073228369175032116131863241600721905976558599383007203997852400868825030551068886666086398655556024680829100764407498665868557383617344369182532801881234034816414276153490033601306509777384040765912609126757035210478779699802203748130596984348386471320390686416943150736538734230268410278357285033220421864339128984046162660199453647758924481258863043934216451195397981595559150472307942427311790557456968853530589693428429401194739374144131010173532238681116594235564129874201922813330739061120075294370321658104853426494167620561906965426151889464771875492940006135544134420851861714376774344110516777569965415758051718029681686390437128712824628894930065568116891958453357407740051362700568372774021136538590564082061725301441537296355510136336580044075885737773860601848394093251350344397395909601051928305783234897669950633433239405665525822192550428501449994299521456391900813880915249439161586333873636935073551976269412799517923982850900021867974504515263394588867461701070545649492389541289690847082692202620815573668416985979009309536219194882950153888137383055156287068394145996253149044693959755169944272097487377622219127783318751378759405837247737228839813296111188372769353376506795500843412893133873527048751189052389829531091826888144774733458662392761996302489819728785471121008871818084030825113812211669988124638675437823246899405048770529296830314244192825617292996753020024257137787259722560910451270169371647719109904259318765282888721075245479715272368438088131181741310463148161784717379376183787014417609328193999206004262163376491319829234653315552726755467211016393924896338929636778848694967013711631504297340898324622906560763690246083118266433087235539900634944268334479174131576457370635037340336650093865080225787636632908194020848887783033053583473329337719667965627386087392165128510426482937492297824455961625909150836017196939205195723794137034350067125166948125864213721741736616394693015098411086779102121036565350664504927234914629027010768281991740922435037017810852632359752709419808471429831927777617639734170165670206818268452507204450037313913013346761512905985524224352290728149096971292288076416902283264128455610740415641224356623215475337262949222412985718993340352208993981612197934964219533065130149529528263806249438554665730587929919471577881858607568733476745829464268494325149745053423326222164136669422701420862285577358956092269218465686805219111641192683293626442888557129745700911168632381383654876710811213727054067354289314597769220765212202392930533909177897030518499520725273020214239556215229658918940846073831382843015016738985700868900172010955922275096504302107804853274403578763283320952818023927692685224334853482211592830326553733703711337616010006558086127533727170248727286522760939037948329418645623431809911663282626391349992280751415832669052943811132153600913882959520465670912424754099753100038702639407317284516033617460558564433458993267888066651091132455620366726578800227271351599273284831336135442503548356739097034945263786475231062603836500634362812651945264303365924851414207752046073767257891445380993155921725993814787765822561385683341897485280016082873950068738987106269760164282038259326103208428338327652297022942710828399736007852872244984750158266938273148769437845000299465741515686672616604919661591065652190730151868183314876053010180805594087758783731096275990028413065461183092730956987909235745790398503219414037131643707437016683449031444827366280124277360850705915810139898116033696425964686518025927832073491326677375685789278507839108240625956065283694708218929485677474953878513761905345496725816410448738802921465510576084384052715521914823473921178858977886392187934495939624002287266635251843929690563078870903509376610873390854215694774021917328506011875464625902643333849394970244383277118060783897898459916889615950495256604194588848925691453788824709899860247994173220264421796584076915981622035677174335009072185111895991314457746155570500561095122848502093572099164337657768642135029867048550641698541883871986256705681192588809011067473786167584005285092674277715646373558612762876238445746674234684109975523512356116233456038153630337227996810829353777778798032212854017779968185675390193907363266963266514434333397513438223228536229121605198811203868045383406185498924936739176078232517506913542079450861721660978407933833199454769702610467670471495307818154875379231510415432413311852734730054190868564953413322233555204319374649934417396961207883574191549935416487412461161828393758788695933858382824594285145176141526088293921495804909401991436483384799455695156945314181319111369113144492375958070653143787357153981307245255108447226083062730478443766361756762290475406787756602705979201921834644210359623078710851805065162983602347230879431610475709438043270967986806954047928795624686970921051158902488902056526511848593021752785349734743158369277912317938422960032756304723928236276802883523047012416548728132896829104298025958146088917561901754106310931946040277710807348658613963427349650213964325854831430671891225965146186112817625825807181132042837923229279443613791659483435019234486633839973841533766298415044533676595814063666555539051144476904405382121817113140524723900795733021291743035027014253388509211079911040544623110401814730289698894599022188106267388836628684182085616116243409900416410700500389311362295439958368948777123000531606496381826028258262100103895571021500690333233741748163106789004634026695584450566158036398565674604293687075154004210790010056192881053566172789271080982763448144025729087063763504489890797471926975594849241803804922882948255977943072662769612099776647949141769727603175444144798193106053932556083311863098899097708196121353417403228416462893015913237581064279814917276525857580282661899774087552609172859310102080008241646883320037088126560590525706514593443247829808190012905662290793703097635213109290974814290030503324610912105322883994917462969440010458961853794095729058785182536920463471433332728751671526688865176674523431272829813050999137571684213422433111493022334914008702176287025275892604121657935769549073627767864640772107550874445311512090769819760153577291975907176624644548926194973874514334742803525827567178048040860657632340105157634427008625783655365284362584802724728386924124260525671289183422366372061937825725563343163276159578948657919149207763592871631490164403468122209585413856449646240612478524842391736166370282902380259300389873278603126240578867953605713142235212330909990555880060564323857237619165250696416844653557607615380695475987093494003936530816850773534066377338793044881726871185549797030659414683190942076984798550131332892522893704059060819534378778579413817363904408004247840377236363427591146020604289036316916693443868800712906922460876149972407666304895822673427125105069012222202931058045265605932505590600242367972143422483446805674346808344417396955615909066561422538818642214740731615358569159824956821636943398614028930686607317493517380796407054881527233191135875959231821627949600791002844757403819046974373324420331985161259227655354274696814209698044366911338016246912188490364928491897552393689575079925057151850651638259007646806531358275478739536246703593088188027136985951324400317774274779178168044316209156743773370658989294896905364277900200272378210398434732757273793190581443101175718160875320341766525208117943364513813084295541218923083800547689016782519992563720488418319774766161492897975386785324533565560628104314504950588592728039993092595681789534902435997074812125426580259171398882063401982567664615689962506084191171940517370193896156483255631947865882187464383067550026495601907901091563122952889355912416707603421827355954035329723683263798298296812464126692736016066969768911633509614521132603330299340217667372041301161214928347335049241226228661970977165525792419718636116244936020761488034548409956136773548516364429868693253109506575212872579015333885193337654670512254048113172601356898348123292275086646434897411964991006565336852686663096547864731603229800836741165802352106884181533881839561742610792171944800370308575740986898599784655857022668857248946079846530156023853017062018143266365324891653843145780037178011427847734872839243415068862971080335884948223591120582942413768677421299088553593283561610147559451843316776485176462198858644014685079112619376582198337209376879163570718813419468459403663869379046339313444486468430214106309447177505695044800065396788486436854022046745918612968464286443881500475477247124046170486675418907697166283107269991484958215456152053664922090429727638923091500718205328821998400885906990166487426092424737303658776669538486726828695611171824942278536028028984046377723077034230725099896284167978873461898768301685090802197776570742005956001880744737642289175686074315777412789612892627768444089470081225858301660532225206004245672732337489212670754625938629040918130008408569820667120286841370669180524151259284418366915745187419081626147648376197905759344738053843386068698893773337531110413054387150616756342490104221319285230368551838659321268325117360297887097269495189832981275604920357748586500507565206418765704899067937648128834579623554679695983041271340521991815207066051500192229362993248980355941232535724765991334766130481982775769294895129032636095137431501483216457127695563650215721400997642133031223953877440844715447434933002039957749051486308926032695583557949394463117060228872400149348575704578043643972152113005603866032342445484442129272054715900857967979010570539696259728400992217298481168557862015722483965864490530438823597524800008819999911337594451956431605857388039080202540706844467730986914731971347351234747366464519292477448958041156876794688281340184083894097055044223494548905605198893579199202615493385361312299035528635662082732596962186442784457019313444133524907593005799900198658131500619771540127904855437863464221514382924617622368774940869679609279998504240704078042979774603060462251961781099022023092727115859082977330652612382573559778735568478995523650008398302098571346306479725789849586518053213374221646916947675940973743961966517911160636502093976694156307814716163842795856058120349938808601834045209681140293211982458517649404216179596208668491918817450180293614272568578885031887832913377181074969602913966993918421255191400220574334361341475456054445443850462348243996137928792819395220286909745089396223554415502824618115779965671784554845289355382009363313751136006596551402086957295178391156834727892104831321277665153478514998801484875235038269832881756494191549720709108754485582259562633612020465886654545218917640752040961671049875530835659056915922312375684728090340724970991241767956537570504023591060266771864953351049127252733144035360917100218350864391606116272185392041213376973205929949501253918977431167982302453960674141443404092658973329974230903991116233486207929089346821521330882605072180579870599991140581091998265370152636357431940711274816155492761932688365262713650667246642090563673286588017816707946622383827520931509022649714148141110200721578756677576148386482352378287529170744267286618838184325853810778096512947906031409439413717985831648638719276254372996279152333748988233754318021550528742822248701426204836299905656152143280135862967646761741480668592255120608340973037092119786323323565887397480703148747275429205653914509222763306548796767418088113298802922854146376076515523783868167242324803980822822839977693196656937289081100844159304786074814936154592832956963228291678116156257079794837550316778073496331868156050725341637499998174829770177010524515104445741166269486779437472231697526734190208902694229501756515074095650863074564600346752188336589521923014066970398703296490628049810980108551146596306078562293281555519938141438811175350706803084883302334012995119072214342408613686005848322687885672407707259106578319251492932989884317077523207798925502393138745641368205915098019836697800588103270240863859516850246879228828812381523680952320473742955690665151123762370362911179238343531854279991940518320384370873864356803829018561930313259267965749760201145008474882719360693617567168605200064081432665463877747004460040863716643503972982592447057012001573533324287515815014515308680871595023588864746062083301453738822132630227211512271119308816249466448478671763778332518356613178688932868494763909530935742407307865828669566355131491531169742986780520356880742562041599262792180423815231495725750912931665289454131475625094259175260635846562468041520371300152796758676319405770439777072308665735187563120529766434453502726696434054104301459663512208688231531425851510963262067920313546467213315088058380420935270301786802369924224689840234501524933150275148376881097158499612198703068613174909046630353962708670557165377155173147047694704756751915634827989731008720012508076776576231359711508230778792868700056765768528267848939088375190869570598449093896772531066000209804503679822226188748461651057820124178585004534519153037241316991080542300985579762711045070022442214511028381089380005946033082318842034497418025834429181186205823901266493061135577501503741031689626605040376996647550399913478523058337468150837520433114640433626069585176593768264091290962070706641465284960292862649534842846813171444159542667666249753189775225741544510870781519409242132404678045650853248516582049631580814053510135072816367550708737739547213302373984357167744808122972804910507694449101817644259391962249179431398158153466658960034339980038419367971002150415649086517639205096206841045891567772159967211439865223288439865994764147958640320399660233970367922220483472423828897237400730109868885286871254922791566847419941655628556394510738515253095927522850095366386425723731299041789884568765599926041291237985048521827832181152594716590977009462114003180440178772018270438305576517848070183136750814923873821061243127005452100161691441923528829200920200237071880616433833082067341584722127727913759403170160989426496315676796812662218492232121359487754402883473484074144893941399740437376344448107512508295058113574244694733893420822374795709299435688059558188082189696303827798188204145273352694127627774171788723642778036090397392010434058874482768277786400401272511979178249013446886565425392126583510815127863071901530918594383444035502400986071072928901481696617889209764666876527296957811431106176172128884829851607903152436509204057383825731665100909287347453285122518829239055122778520776202140110322491595539694342945453006940545507799162049846011863369887552198773571670209649581094034134518080596524732730959617087387528788710346714975087596076375620890954479413925420224286443901496765070185528034298821417605144403647286972328584073736822242376726541015947985978008381296516594362272973329389622641629738300748070286564168998007426973286690427594250924260422341497840488364316987121307651776417458476484260264593450343420711902635274757553058648435784380281869556506593890680551462942897359115964964010126079347323873523935313412295136932671070034663228518046103490625496824879580905143068351818420699626873672789746603610212667507986498917685008394960757921420696621084691302511411277955370172662407278381916262461875644169151823486219069794136600305096509879259450427524208302123678748190804049575547694295342756869944499763550040771902947815259455820600397869698724658147062400808784746432915572915411462647832727677115070339458874835799976340878655554240332337674977306856110582498784532006772737297232070023172937084773600982887312512825119600061160278937152626725546569524806739216143852783604803194814536503998293631010977606274246228806129838038722113325536760584353109985625182902158188050675369264206471626495082365106151965993329858306803230123390170002494265264211779857975194224663959191538751097720631521293684809983824085818183480183511687217962172266767882075151801348584398480362783574638085119331025980915632202336400955827098550036641420482816267713006100310726680529888451191152929356654686255415066012362948882354141080883095144987147644896783933801680067068531136691679465685770546783340642934082303052128366573743323118881460910684706281904668335511185472724199549811062926663696276631909012706384159472034734824694960189214461649535774166011629866583385633249813259387811076115412064004278083411170818825252771907678555183724737525756427049409281163964905107116141797721646887908774387079122882264834706484117324533810461435619988051924247425884609950054028223659425376340044361834516037199718760359568984170953458171087058751701966700223693278486344535931399145279809362423988778413638433931033896696082821986498300658293964826257513766304079713239744042854287636640721262108717662150387157984909025149383805118531865566086184992882095233336519711162337431581064083999369806158727134259580069386060026326635770392660465518922232421992728512967085447652328733679123312991137352611358897199900762631143592533381531091470815354704796365166964786125691021036543606525095491653320979422460655805797182038237103101327618440307575020650535950792321410161092153929189127668855572578585496588281825943359581280288085483193233493381362353027800323560997339749939233758507817216701426164414728099739340783131209657807794574996281224414901404434859959338230913511280135595485946524412355978339308086978462345648905674467186561216403234139867064749803693041947536981516927789803957642890637626641808972507800149209969782160188966380143546946138002096711150315519126632313361863775663162203362657116167082969923779827019586979280464334507973148610184865790564953122704165374894813703323443644050554742165629238732963088568161171966692666537910053673230675749121748502078905204102607365483492846059623459519659999819600821564972560573067271364096099760355917140786128455152536204956175172938560302446146820798460134508557211827141199893183881644825733254050790699803150831223622190099346294937695915118613389234047137783791113229947361661214274613765176241426976190602005313818838299900564194968315686053436998704067240791695055324700251104745855177054450470785548266382454962537785241466245160141735773096843935973792324490303151182046310762976500089801106666368444658551484272882033376574364996359138676353867633477936855475832147583747963006585436621750781933984476769681086451353944895942838388015939457430326669101024634320249170925214418017014354104061175723884810527131591014007511207214382250489526833428874125643568254333206759542216106773569551947819461917458463022796199048699094952078760182632463116417757014289351066078441003683030142802579404787723597050162047532098906190843507973645626941513993360241744592390462024132640713545825043614656394783532251650865123328722734519578160968972523363608365011715589229934336879569324893661875261226744517887000408249435419468693279991834117500510515580775531855561330218279550171816091605968624677658432849327911090090323570116439114907862929086504053949183481352250264097837448590051250876753224362611216105330756697158604445489463228742824989853489397870063269226540805534142724042736228229520294956526876565614893478154764576332195721983679136468729665968166655890825279318030624725973770196208930366877782169054863794299914888647395627304364323449368199412558389106498159942145271587489420495200261888986560065150653877261528961196548678916117625535537120766906365369280456921877780353607892913101484673202565171439628691507288209801088361587831871777812667583252542767426005437621536317923504523659372278932020426374771980730774747574419248596276449534820112515150452635795953670022624017977837022818964823147249185610305510147629881217411313153754095468497812940630024834065779792149195578817468967786035713836653875638836221730766217999539993341993586192676363585695604281630270935782320082144520448955976005808181097539132360438799293858761519157797310193737825429236473713884290940882744003371112236046168026646531891051633376288826089785731565805103979635145417802335578650460973227435724681295436238133934777187071063791766908626424256603075453312663597645533401388635542954446605482116106258930879080958148783304174630552776110177951503399324921134181657125980659568851428863208032172523160086035944715328618348152534985684835908193117192115567010552021838041747318732095375170127701517581869524178837717226567697477852639197547434595125324790214926286191776278850564560466548840865246646984943236781997863332324372417504168636159431637841963182092180353632315474196538582431249502355956973051755609023470382744605979373247604373585271817061259331659834291283632437517178962393598972965871711015543368122542603214718568297014593940688022794620251588052841250257044212436387382310002499432293114924238153806333530116246884682551548414251538165450183822268704807155591891380944305863918644605106598705793674359404325392549638197139141886344148309930115861998251043402719913896864142790782300232286615875788837250523023722829647587330035903156236636433888405372793774427201843400299768565947962812466863035275820786933462179605449763110800373212689270070065852233085938597923220212407196777640521206896574230408371385485719718757507519266326885301612657423961618877128300916445302466522654054655855346857481708516762220362484948470700408141722118164074779565096301343084356653137111461445468329513990027782402440100853939247089767518019869700037953443772702369595975755065676673219234284472232636936687245877179631627323805748785549212557031000807131195929110903629476850086130167803866761809769854806789254782893582732720290619708542980957203675827269554879097974293413525316435686557249773043233543526693309909533585105343449600135241565496395726193922669302019427023732708505160433260945851494117606874537534024890866943995928229686510425040302326257222019429514695601208805542011516915710893297452595100744945112674915406427848225406062771795982460510952961606826292270543079435270972498610926257236832707245470132339674762443925630551235226076435834719706770603334512378966755154351230298825425561427219493884806406921775659376235907966468749976934123775665240217429366090948101061397509086626684799704380976331278966868806940973998143928305464177334501967693167648963548853225631710406446184069353435854042223569311250022039694312928212739519413004155216989694364319311657279945566306958535069267112054477310685758463478407196581650769327333071257895411913543444862657714886193753597546823123849935496365875083738051800761592055771740431866729369085023606981704582790061681206745671631350090785753919182772814621381674788447379351317629784850355887452257187211891633323888059410370037871888894513654235082381012857685413664854054496238672460233027147925122984087634739543247664765564490894335381871993816431403289006072642990133101667338854682946192890699762125312155459925614404268762621903617161602918511323084082916880084013654489037210370013816461859615854571217886540705294983673124588727831353635514359194630164112740941022775085778165790885475820917799492472016873884384035351180906223717411251691194906373028448891782125690761924124539702612162835424123770885349507408835808557085733436700305087047665530410854453766033348903892392142564668254274093268134125881760410753932850165223210167486228123942800746057443516905067378368585877985864841300255516393381093828466113543403864136698975037229745953978217419949849033647121567239187194554176150346978561975688467747958730392263084483976967791604954334798235382279076928417412494531065038123328678579464964167220121970423786371271413542162488841696290393545207550380309756694403446034206295433653133924581182367730425657554476537426483300418714714298313942066783556308137364293638843940764258162440918321340237919547478709372385569802963422705299709106235941516710321385234248472882393159946075211077294331197221181896469857792925066150003647769733794377658633458282058766619380650628175007742787810957564232260263014290532744258337624431993360799747809398160272041875420514887971518543264051279872093418296844351347881233990206476421622819824172099544426481841699521462933627537825510155558278575829576179616771224122125680581469615195622749777300408230401219920215853385222404728281714310453750877656548250205354796494589200900559015862868330287546671116098304893003046397382569793244233178213956220097501867474912713466974071504197584547195870794857815949186456355931570497363828083997222010481320013720888686718307053068337489217669474918352547891615551270612942860812205863743357499964018733652450043703507771585438629218034005994206376612543871471931739770810443220358388199045819308216749991046221058550117004557133011208619471843106653608785309188315915771076736420390588844897094221918106927685743020367233380415566058183950540025588061130072858568112774652351245044999122122828179789767876560766847153254715083124885242164395159802585061869117242357114862215934764140080397409989805846458676784189307795916554103976969368514798452789145896075050120150213670718373064683504678826306625522959567054429157517979269879536969018750582412453220223182941362121352384186813119624579193952363602222572380866176704020616791186570671614216751399281617278594317356777661555105495772855021185270175392474580491772228988840467983642466401150219685080904180225796203024034723618730570255054722321895690617274927254679091436871949893894192770744345296995579384916034982265645989815326594900947741755596083384761005881680941191796296831562482501855775272928776865701281104615379050997937474919995437131993303400823755138791474376255219760207345522440966814354585966986738574818017990812924073910723311536257127814853102014323652858229073358157604018553802679363029023193678659181100302104896320075517119839477403940374130787065720266669249998385137143336325307488869225982984528354152000445433063865924947427762322439303280224958514363080442566350801906086048032948423532270385385883736295080201952810111035269674212229761617908928670870878876904810843868861925853600999073626849892968689333598701763517867062116223431891104153588022078989588436902781647849877349152243199060370180973353850327459129050414695421567950416376768579898445199255175214104264599849168087712345274204225080691967743287977740733468322890548983528800658554880657677314712091590156622513452082845944519825995127389206140586006593600933198441411274125751813658377506072596406549056380806027676423134674029847241644043729481013985053206928941551236987458740460988135234788787183253605688173072156986355377346973532699039278224749462479414545615082406107425476544571202055414457267431207829144608629673008691014737157436443059653144944609217942554173651160249583587535484766444758704734234948680439391602444171604306898865279335377295905779695181376694351526344554081196127653637024365206175232968067664308935979698549970289623336133339536042042331495138765948926394213785156442650093556391322228223203598030633370428404076845134086456378680262192507661183336516398179113281497967141771317518028431184825358563605921454236459085593943414428433451993726430625902915858299605274061379022115763946893429028498945250015062759351448331557368444294935501689149187771051404345208815608558289856947665623367202985958348586822556616944487031006226541211157444898921773660660418891157101747503035731241430182532688819432493915540188225593617652921335258276139962753428053030772781402031839264699596641962086614923589954793872239702438619402256504771904425048546554876986315019545722479132819239839422542949886298828482451193860466124052339801347836264305220378556008404894976067340252083559325977327304112008118742007688565077706553477708016682731663382823699628604504158336678013525717771428491818718715025710856863685719783257148472746280087783713130888296335555310527613191276309839966477315789851814196192662471545276265689645682750233306358803827150718826522693610328514662493587075677991348364917052765510815831711346695297768865635649617748259633722643077810754171215564562559310891282654739446850505876789062421771163410361727948222317425788249672502622312506461575426100005162470850524826869729501035636676767659578629767817803071688641822067643417678711279088655709134952423312205087108924351666585359303861779150765492532501975251015838795597338871897414535237622167649938411736628149615230698381055889452399150878654370856530318347129335723922246833649806753754281991651238128396534703025479961917468806519849717439216820374869756712045974700213276743722242518425249251411799865349014065960979088602635074180552397454251730852718183804813031111871915732975673056042855350160232159381527107876918122852147409026007687762503232452596100818568323458931694545021217025472169290294025102272270431303922046237495866585551297245253646826012717898675958485223167211160019119181912305614442655377318208583348391428028077317518198483149592495046267387562158217262255194727838421055408675709304755305600712388630015494669638517751354905962334474325642100143293178109290157880729638541258348278708552457864670051459358726998314255792179876423006605709998377150129638753023491796448833115168647351839733693607103553112476303034540326807652854558944337153023465338706769538337033550446096219130194706403633836741883211991877660588040867232148540250381280457507151951105520280612666139317058699917927650121339888376120771025791029039089161103958464706398297610621196544708993568645941542881568035637994453543983875354917637934477463291066242469622144884259997411453400159730936101003312478855676455561473330756071890209044982949369495504637856000175632478007388336927435621545768493980667904245404082292139765069750670722830084214249675586194412521399084483093777374519901374807682476730967188269995775968130158469684208172546801572233633627560484969113857842939135936641116299447538071646122045257508927223595209779294011008140161281217768360222107518147484131010301166961840213595686373940482326380703539505336381449752790906401760561248077674353244511865945560309609868560028515466569926635183337931265999940011901322703535287495267237094395821268664591782107792043043023058356056867142276435552211755008495538048721161803917752692590672081715769523034303095793553846364635851330652579938851194450942421113005898241206460795498492714654826492923453582329757194500472652788916032460408510220341814766573362110503203827500344851372995818553946612888864060555951130997732585518567075452039570026768038664322734849526154450135589041615583547229490743306485929096596716840704981277074475756422354438848949839312333371894895184765847530514794033435715252357424449474551779601838626820199194881624400822534330170326509034582888692222742787233544676194504549198574236196513108038985387436424877521276909980382847902829867086247960506507779714070070119987625052848859000919310992457754080194504286481699536651293945294362212786058520804859218564352322421709923333638129799686429428852609367645839823298171506475503591030333898306331142728589407600323407587944182302722451005783425403193843375421282448856001143818628176544121924863262891889536596350429401684728507024015481622041575436440467699145178109956615581630206720603048569094109575960068147791151523131572207094182641932490208742293223278968583705377515044971122636427837235616836700305021209915208173754480766669669493529564765739029413437672926853431710735526938383392694398735677590381409791045832555915939744831197553278218406509210488352802964564653316581736693494861518036924032988976216480313177404457803635221968109832939536756691825583837918447896723688624418824762987169905897826272672785908656150755223949861614876575719238349075529717201075151246047400413854816990926563858944310833765569676106600024829154933590756942134534011194998938087433637672721475154908126686602586842397469403967506552697439402663315544636430890865506105989141664647506257108671253067674307730045684768599431662766359549562443848469744781050008180113440002248682036444546149173000920443280791925077444897822277038640773823400858497647124956185375530534310063492808591849965065886958043968038569740219000832088439185239045281095802332903402278605048357879491430228693596738108227041749822898450749201917934598915052741292785191105264248635527071539640647828362137002039829547775087497587470897760774224889138738499511984588996172436370485417282640107035679800407527836297097648463623925038393026641085325161539823291442201056425204429240565779681481561116905324936662217113028282927255711936936759712126435081095546426984049247319045005058665109000685235025504686815246309800875198376681881678631809039316544084146684998437165141075712354250574522502789744626548942793726345277289480730387598136059189845954270267074697817081125743131250392474521519533549240928220768450361343311725779271840262160205854379483271066026104216490255699958327300627181624767357273013958433287996414959615740611915149639060064489221783866677621396860568951109534690813138443509111332974600717814827160842184534399152005760455794759639021514164234781753126788996340311123665424309864760288584731681932421925214533650545221568548202673186530161507423212190803057476310914097630093742570472093363027573156037109480067892576358849868734443555802685899823009914597078928739929093305725601607791442216510729701273115115440693827577015960112531226772628448224740715725454814623750603000919859784288226616362957046152615263020181905860034075046160392571223108311088476306057261407770672965786207618248011917854587055954552312388980282439195436753667395352037177381072423137520322020009134497614270251676727321831565906553723568593014495551975957193955128437965757352616538196914830504814995907066788448783927619624964292682713829318182760747015603012093455784488300644119560449276517160100070619891683958858733842758378539896041796958439475737484649044198967024141430830076594673327169368137857113462453040209983138153952521857658050943488823607792253246687538811099394387834881109666613484113777174354522385386366902778512091355662437423187034801295109841501318427219537870047127011992862919827973255437726814058950376842017679704274182905845866750167423090736266237782620189356868410527847750927739189468459364639683158389420124026244308237809031256563392916421529873886174765919581781560174405414211625469212117819160784158010245416783226008267398658594143670391832669967910303977933892867877289251562994796570300667075377829862113554364321552118301979691594273933854795400128168653855700643484530158014257887177864240042338945004246812301870295642307957450590342749868945998740498936392972417162962210490837011398850171102111794775797558104358412150877607552618982905122102100237276643575731232447172300213160210044446940068725272776709604098511268449469127252351757542597794073234787325885271566848093419972769764803013623737661272661038515515877307288274589944416116088023451782476929814665148521510704486193537842283524242424001190711622002751130915295055769763563190762542177529035912699033438833941613932368022787311040561072970012537107489158402215214534198116971071803340638564979003224184150080073623496574756997331791840078956493462343465502437625593750745755429744410394177609852178081687119430655758324739047679175235464730621922484946375629387352717012130061180279286922800973197769567392662021102417628164335229898278271278022682198935615853769153156254643856472364315070953100829066700511866246900208504623158389836442857049969651044066220210578877827105133476087230239108622131695575641354341443724048202669563244762980737854522130771821208009237225700434036093148469843742830475848714877830600752899350337289546641279832378750233261455355910716290372449193303571794794576051665583928772252109675605943715620532260601231064715877229933935003223048247467769240546533942090016301660180729236842697760424906160389330117764722599457785524322383847443171774793711427559072058877081756639928280456283700897283085811836748068607270291427546713181470998467012374596876223942005873857208747664599177219936554322090769983223916815817772206695984807280409186244714937597616521937133343283693825458021832730968423899033567994654242492791173018765905750144159732860893651892510401940335587971138451449963478098875534497402427673305793076000295157687892495878502286990226687056863209851608391228963336149077954985660561552602800593715368420400068256223896852536965122888573652155654260905066438149166805931798659733250919015193480823313589784275145702748484111238048763657579460767684425678002334237669296914302129577292779032844572780417018033244926553257193571211030270958776308010089492634205262604652282729409576616533514535142971087765098828190385740878514622080584023593718208070314288527866382757446226021146365765087364880820930294477922800019730570637838864276511123922623344678950609700123777801544245057660242182416276551076792816577144721411482890602260858921774465765471631074041876283571592080521780575716259506179071687283721282679530327404606413782741412859879762849318852497658298805568478145095967990231599175429322762958375346470380436553691276562099313513833698492922447147319816440213613581376982125286354652336759026317370906919446518908753103218697913816156373382654028024123319844482751140304016997881664679619368097758255378270479384266470596266649910162667772321370174242317933409466223987259953198996621387835027517467300024235790562727177185382335976438180481452029281535018734425955587917856243979144284840700527611487587657785773804094328981705481890230541872064430248330526754738488719289113303961177168353130016492659865391704083970301652614072931893943568875694150640653434332052561086750313859321733712126538800151915354235047998365019668078634878324716321826555240500220595963603147889279659026597830731237176549324296636638299392229773916368809509671142356546859026259117976438078150234572271118762066990075372047669251944319159856832130883347801621444487423155431707188138959423923495419029040310991619949233486339626963670774976310586752343751107099787571695102666184304792082825333657809537186108000994789201839959950831963075866429502019365995310724953921466880632666171313812714494173801952574330585855237172410150091998139337115830535421388637414090704535052334390840646097253021478386468702799730592831704079559943062614722783737246820450394449938777226893939730428696018824157952844258552049110097790009730921263104251791788209823950437859294583901548059749090556561711431216360853680252085189256744117851283840556496274413540496578788932341128138377020698992071498655847710309070422881264796607822548220017173594745219326468659494730245516623632192590042790326562781644312320834784205730403734685554989187213802041930698615653972454018653724496139074536784991730192706274761017388945259952744095060137668501118055990738527979579116201132447568814378211244025270190931163725825723795148076297632342449599239814536429742297695086588211640447010788235339688067377557312074197100593196109276850428349131767666314627264525033688715703659095200837596075078958175862075395944768255214137657783818149382644972876062347759117915547066425014528625922591206897960309405869333722746691925667064674153369849822151239341753466431501724895099279378591916803112822153216241622063220601115564584622042382114432982215567220553548859169122923268808468467022454309644850683955215192650661586093400321871102747771443681672629695334400056706050694840532840612964398585789622617028799799074450105108798535974678476816642138617953845456217728500508035958697967873979890774230949210206631132247946880575258457499966846174313946197753503364780981035301770788886201587540879016280424705150372810522216709188950358156468373208524072852005161048751345398227917982116984849488396484968516042122237978012935958834679622729542727531873513862575095766648668456924523427082850844299106230369698878572125573722943700544279030327181322959901786797000035906767554279855417038946636409770878144784797824987392347201231372735721532247163984320966865784406318412254489479228659484106759412549074834890850488344248965066705049805225837850477670909562045005554037083957515391918617214700263586962872227888766541164962257234148302361722786301805898064785928464948115405468857370664330074538568144280465527605011274344048198528209795333081703159318597948944557561929763741930211234090536533667579426398957850048998122304488297945723510343933474412546276634808500227569732553814445255137318582065056843911770440336884413130962222394139121533368935092567247230998611450029674016557611736248750991516699910182408228752471950862085029981590798280651807299025618706215321660094650731482345714287524893064046144654116166546701900143248609512443286645308849621578858665066788466955600977230266119329882865616347531098670906873065527036393802462249833793338008350376525404824440902755522276918650786243037612184903701014316818932695462079859029605413269449521005615554381274588521129453656542102978605142245299214797849699304953694093302902064563319057504408068908637113557094141743938690795163982994934286573953322490966853198775054903078349889469698104910778512284584890832968375910889816786665496406753932196717790259389828920331795777826772161581988110821416362438010218564012787942945764600952116812277169656801732124536421929612808147081546874262800981162453790322266960490325972283493483893500355459274161883782601213661535198919916789386388317504623751850505483263117320128154955400277767179333482282596331256705609676953862498386507080114551091813707478560989520352370491891899903164500724389262626273464628329086824563259381981830882184663102359244554197250079290294094253728901616988350782747986982763780317392768328555934739087017501418168860381648833898074833112913322675821907798515515779710987425636436349781755313279430071290350510370398796186627489654463075438592797652021861310010496722445260991767183331433896762798894773067469629053534002217339308026625944017602903383786824918945670291820860217029547351928858922139050390358984694236143096018768653386105603234995726025730379409592717969071948488336256226530880237063682082994654911593356800204430091742123514440555101727803665848580003214132674404752552239899640427966234795277443426701230068274325456082497611575293413893786853064062178907083722968106636129564894175152554566200369883405337727952522498493785791772180758008260396358385388680093026189322713849921910177236174454043773483836625805679249435802421917112231299790296305472774402162039972801546000633907326216807188224150595025428293008840581881399746287153952927243042593987380331306011929259265092734483829821100008187586493868903729677709368702472861063694032298133068629592009620862039566994450290958825271629551982011857448268439267639384316924393679991921529874595187951789788989213272418001491370618606202332970049204702934142903444904488624162501979094475734106764555161613781402423479825452345558202047671137166605059727260450158884358008934281798919898702071932090298008134409126907266892717110236569910563081010832302990305974247082299065730711703450189703500083146477719299662187353657525270926606651913320612871960451841775605495342884652694963692294461715596831392779912581917255939449025844262223494187311945254902930564391949885833768259737866169733041501920510802366188209579873278613141403096721380602470692768980187433567480908060654437219444474941003496922258413880081204578762129424843881481566492913450746471299803072910732737783339564992145781775996117627753947081061808499343720003045637511764607464255598707728795637356372470958588804912679735974346202240015261066612840400601978392646002886517122547397617560727630244324073433330691697917097987567994207109297121340956573675760872973647277047719672485284282135137597800126244262541910830506037243958057371101486099625587463544839527233496404075241695671591183271598582913958240888768712257499818762940187913714860159698889224933579073044590728197285261740002109777857150196039947437155520012852252351367567932198207693346758474275711774380920044496133483049371928822002527406147734060619696489839227271039513439659016404596004928560516894147207623970428474973461176425256519078433949727126160184306538027910388064496028909842209643472251271632212464912885715997587238995503373599798522810828815525542341106515981929560242711775961355093642202092744084155940598528292881999382661671071358543775987779560246158255838468138011328747562619934163141591588391447952346124393503274060762148894677683741365281609827721514614978081745537232169628524280973145707604920949911180630896102636599228760026813191821341525922802303643003277706029676629391420769129635261432656886865661021338206117045908598875871676004898787528320189668109593971019820028438995434176729223167419188195284291175918992758602326528633076601502843035112393265125419613417810458938793093769571340283152220672748188377705318242080891603560945309913540270393773029378333145986681121407563297176030687208960438839948155279767048760231630241627951102882885646741377108423868141295945446331889347658553417903550544278247866639911205490582486008470858952648930454597881344377872121746292502129612989274671012712012211841995035674998220910194846139568733203188733243086290159573774245107141746955655313689243020744819722758902619818817867309080308356490491625097156457017534433354390895798236554253935392699818662035077590573762588718138288752267777511958145663517052033315412400412914763785717507398546870688432591439966335518047089098787364114318808392709271804777070940446426090944205431361281928655125036322999385827656248561060827869388892862450428578831953991758337224026893550397298765564059710923096033222630247107167593390602901523721404508268683684888113445683970365784211002858578540159349225522722987464679255394338752966065158305999481165391521261415704905803465707640211351445356929982648554640404735463650203047380379817931151460636216232185540812327201850739474428360189407470629779161318124183211759015041099067726721349818839859278871121569204240712808994630653837666290765254201890871547741865688621423685898569390554987146346498089878528953465735310614993905449843887020489363123627198544384013729108325646556944838179118819637928564132746319373439216962300094525775986597229310976607678584370342170445697524683240566024636335341278921090222552349940937072676115548321641714261627222902985916509275770379805115213948877062624702843307912357635255545960172072615376573923020378876219636784934941944309231392392138391415464106806693077823203801161284077344169841445826553265109971710847536637613438105609194729400785162872728647512473402355248797206586664999793525374516865871386472681185065644157820993110006210122695973550933987238050563978723731383876653026678060392889183020240688525815397972280731168479251656721985501796141888775875628773028468943274552813412727120091226572071567457044183516691967011345438065856453844372369984381499003736553392019332529475053624575291405245007802651034633969941688908863227858438408833679336028889873328856049938261678061198591588366398385421509516478745008995708568114206417508146021765061350058964211625776925987248604164352423110651566644323443301992778261216427625163814427073389702805962971694965747214885973073189902435032608293641737841700645174028160641811120617087731128859630618058602173344684054610785278892801413637943975849103394837195311332699295033319421540083022344705243528802681084985425578681089492900881920711466978190543020219122417451775887278885993689748141006168006123729907707124245474553667033079311299864712885065626560192436078522225669361855944894819032605563026218126894794464194569159422957253960045730644391806600323253953530305207178566643759811863615667655716710569862048376310530639199980434781789937741486557342467401397773068640775412731363410609889997414832965654679768587592714786320009423193464435150918277026752935928051788437410196701017139720339913948845502195746649154370683240404543191037701887340309953158416841454610587507054824518804029575960681337169664409407838628250014507834851662564261592665609091667287480661273993013667762186985170636341308511584337934374911495297598494295212368915876656972162341520194648247671807834555488894286020762708454422796146573848577134269293099215423838293418920632699213841512076589049611141579359428651104865570738848049195187309236019424029459295747757800253921550759873388567753301821264573358095192724584026354349592417360432188215044989510978516671534691033909027039192188830353588686903161576278089066613910961261498770718161517469959599081523359595309400047028934174658480105297223231190587363297974530469436825667205692238199990049197096499968235825806676540804009104560647104825061713306786129478510646797164605002572887167581651110297358632927098884843448148776722162260974133389692725675698367066766367978755705324952712909801460116379371103151302818483399954052691169194888137947142437673929974594010251586825431692521906485572988509228751516052824364157526451341101136369201463278917864612592118893063050850543166539338371621593108415465670032838426236889276146523925957392382153112581859844336473488799276982656820914767130733545497636054487266265828136929285694126195834317069690645638772340746695452589600788758575289108530711258680785018944593024560715826573697355077562948663493117262758618988285895676118063106647089337600685627451225731105873047878993549790887343269527758587893335097431488805021004056526456804706225291873028074426261128303170263559186343435591169170846926451423666265215909417551861267617694114972351326260053649033285761782945188015713506581315103861976177606740391861499677760664136376767905160557924268928080509049051593228928329819849797744602426455775302042190580437670291880107453455132039831612222439780383489113355292860731752389021892806663948067141785131411127905163646466917226572239706738760088889746024076312271618154960785469925506187813642427675046558035689614481644919726266418080213214855738225536321101025282515895826722833323200930861806683792915778020956487602658032044994505946459412912924902122659812495910580789147911206100277394468110770453373303285762914085938992545587790723839843434452300591126010791880860111493777071566322972257290829596508311513326621397102246762788624428351490238372184030540356015818957813035811027076925016109934310522311645908092930772366528529600998253768366779098024740529235947067812642871571684052510008219184118864528863417140469115389275071639777065727098902212820603500495330779666817967964597606743949308979383066836727538899562717313538555619425778790546462379447472874364431550192610555309801424219515260756485325331865307878129569928940320935348817691535629476120253536922142572796672958466511830547483798921853449143219195537810669861974777745941886030917250127094467320563586497202676068870979565402945377094313047437371869834348866772108773463117089238751720603621337386108087025940006728444507610603255851743591633034250838623028120981656927828856365380019626676693223585693745452866466394891019951292985855208778020851523276777804148561967684240418934495085503829783015085832109367807164789227853902752369394072776894952314760984077949604202103725577660734569136553782128629754575217677134258942666087950808779231708907345771496750070496136383529931315944904485600468655669954994250377212640478067539675922933299853186409735035769304216577965226469924356303108308163699555916746428816000511778049256587478614393395922139194828614802842246659563952098866936685490548966771481258876974106381752083625539457745742793232005013180312680339923867858232149406283605532212956456908127471440443751527156947757021910149827620152401534379334719923298851913524691110817754874887299563857840056844832587764958532566291526049674495856148116972327527311119610502548042752613273817577353214655431769269213723942337358779958093389255580411216948638403037758427819427817205870326740426023247097295136106298366851383296566052968677961041970500754563224051584650094980439639438465215408334685455806674543071801417713725608290167188826879482809089565959163885708424020859041485893781304216949370333414329764521548243582271978068205696103964297033646098705887941424842832327823782837255343361343827600069798263706098228999626646376175198211203731907918208715635477537294253378377230165016763619325870417681227041901982327944569892608328575044788621587938906782116430789974060533011984776563550213823384676983144873362518839258878663795691638403107254060095967988764258685180965790283320132853886866114823128445302187738974219523294822365358321302617276343623537067629033575852669608806284677427437728990499784077429853875119346852350020314547057924475312959973708995740501322032470651351303516569595429362932555386315456110306688626534443944890816536465051063058171551921804623816154626732584626765250944574031739915005273460899242962139273471539979974239712247078896347413434986377107722133547760952119166546470972207951574981470874820300689312429733204027666420152216858521632039151685696176076672065587520199192188603250435753144574660090526555295717189929018050825941274635849762402828124936260379960373644494006022094394616686290189591800446456388109865796161856133217531346490443686532044260904413384181507841193561490734114611150883670993173978724879758660592401161878001702882919165104543269985600712782104088749095334340035473517099012724517566019840346235505637693615553778356030207309042400227834611169600234908381854055255065161293075813024105607948644459505878092699561411657304650962471653556315835918073643944229663046286071887786919274114538915985455103502053620879915095793714086351432656721209014719677796020023585617425138609227130041773200109623705058058144601978708420886373995079894364240267225100457509160068876407597851864459694103070275960293908615954427314032979342001862405390418116126932053308030664945242820902923527119310502924218379934452765081073223825714474585638385907534910440796151672668430496047992142957921841781081634037058418015210269194962153511693727079905847275027639143442693243635631404529555404941107723714404534149901144497522596079609051012874910251162124238948125621213743617243616931307250552396861664131891814653956539117969345795807876700458409927404036175949038886229395225279878152682255360374384839734795826185737969767160347916152870221963042844550802799026056964857708396989691093023924081130666826339432986739801833122171223966408121670371499713111598345958107953291608850266088142543583935734036123291419112259945147070442823691820902849776035076743077109760877069325118853312111393285909332031661425806491148488855970802604386946136175481818450058475456808201008671747710220321081342028716925646577466888154336687793691683048033436917893811128921557190189178504888491031373779712282485192179024149413999851378062392331971509393373924004056530284401295957770967107897544459221800065408580310827232616908420163846379807128973700706045312769739078576428746495209998583840802455155836937347348552712311094271147654634567313404664977146419116832505623267565504927313792761970664658749129998553657187135109764662245286250604851832756438168641930899536376517945524314407362056363534022762052533927273476736115772608250527674756616237899749375599502248643375670359381497363201606731261923812091369344393033041266810335387921268750880521577791540532987682914314319355346579313814893389919981651967368095440843380480849762128184430608569326102385977568812053057579884466299544139339282663275220559805703730531027912344486668580114813719257137597775710650759611047513570237973086662241496280675816855185205170944450259036146451171084860258798125256923606957869201410371247430726571699472765467368959535182846659268824262747527963975154922518095664913719687917921013072650178603599372129851633952165620966925536237763302525672017235944555297839279067607966251502369110475436493326554997234860163154730414500809932252071397992162736555663860442865161069199835134875716408951767638680096121630933957001007707122110898384674697778842537589392453888184521301505149950862744383138455684087539452722533695876427282202669329245877989016944081719203348394583417312499607051762804875899784835817453670248077592084773124937966105730690019918216218279630547038597158990339042565479684248744453747481387184932732868572898888434228269236828387369968306125470485139380982232292617114387767775362201620491801964645780236072070926349522514416748050032310863969096774742438835260629147981951615671898798238692663502154791721658278360914709623537090903844040365990938311663064261163276033319676354018455756601460513790255756179649554085456143025303812379582179756510443056128468106284100293774385807974166733075945614102300701020481392705803950015491445562090317603385947142603958425373542411164679588100139271474137620072311910757866296426891798772554810097393300155880711662086027382959022682085454272995437005458624192132775363272187839492068876753555519663572428646831838875723200872753437466571117671616672862865716972928012438482985978962725771046489822555981089806768157445999477559132993914751276469546433876542583546102948419395299905966774896992088957696346702796849293001671323265007778894451407416690518479942124873311802398726023830068344712847821963847787666257717842717728273333316453080113622323513310220417475768112626014595050082199171806225728683205401430049099550764375703284023356999637637908771439631543525922783730117363786117973627561554254301058311449646545459938206320471994389082603771821702435429064413154934668652797182605292495171743016196250381056764392967497523103956444107766888946316314007027188905173916500794110262361128556503240848917476545531034797360069094581261496865556531265409366756781908527736483756994354754312027461754314700734178214713216579214751817309667430186707050439225584156110136002450870244833475867326078715232086420229105107144025921901911093103583034525694272804273365951566082165977650823185490902950084242975981417750436636772018925826543773246137187373606457448199361163551058599935592533765742302038517669752741250657657100502834809825818473331184581603606737968068540862911072561524923008097593568073750673437170701001802621549665466352815693420163029101734565603565503974964651302361653900071795619207528995806061517583163143599346615918826109227990638394911348973736446412648591446842282623224079383974917679159916177027255377462515408744760317813738241233451610610942642388732936318382340870952526740554723529479699485650509335768874165207537438156523061433220926276421238646295619558037166862205251115340812438262964628535834311395108005895083671274098134439105756345631864714946131675034920645279290512808990535477496797182904304751790407034064935895026289627247925028841455746008908376505345631699836054763395277002256872423595985740546187170680319706963595723133336020282169578914587093391253073689942058975468509195312057552779597836749809995695608320888978351025065116366516289039088789697248583846991875410388775361365486599658049443943590578519779707835373773824729650240103772595380130033835169668053636296618852231893043011263200817020565387963112146070297018735459123207960911613425426004595545601584669824730824181368692027257271732040640360697551289526136980938065454014960680045471062688680205810807559693579888142656614037965709507385406077786630417587834805326455073731835503625859025803740773621197443147930662712408546804464564596756419870179820076299538846275847964643967825298455175839091590668619292028280489235682051835136744840621424175070403724705979285451690962261578462648755442842899967307020226854498494525490387745639544588465170622958360380568488266093380009649665421533407707941259599961488176811548761547241671234412878167892040846362201394993514640581291125041554491160164496940892345241739290231298274000493493714803381612109902185951641197684306061196292232426218163073280257757661254971497547704969391440272848046626571508829854896647412630567469890833287399448489398714553472342577162146663784341148301858204414626178889841532767924145642703738432969070940902719443772288704325798023311190124576883285087933534355285979373297443815982611401452042833689390851957199852957917902148231713974823396172824247390145003449673439853471203154256058668979681614836514191091406019728858503529135249173365915214710511863898243247834618301215442113918981380682515113833050285768151253569844245870521192047727146230185173304634485768257886773351656350854891290749667626374174055050152908380376276171169107047267939964130198908593297048714626032153960544693168815739572510672564350822103898714257922079774707792603554881164658171633261537880092481517551067480469227191844537552948884279471991089820402624595287772273659873652786710419618681342330904884290574335227609893431445451246657689462656692656468297629829605717592224575958648582385686518377587321510734236453036771369823938746496045794982474582687574910932701857035055517864193703324084684902352735410583855194946396810212593975416738502568180457248108757126456087604879355313602310588481578664818083685376125924070686883553631188417258340117654478337465322765305176975896065536234525400684658587084217917255978996757600657000613196115937381511470519319777122524004769945875650608838554014589908951798562475604455533666029311343262029742998858642027352450458119366114420152921347664237795728454560334239372067939162866311732107558924939906053451610094441065856333786286653294753923649413390533268744859243542469077281139160672400482127064138769881550657169875350711167166972325241794220144269107001134347318817987265149076335022995914027385721718206370560972655435929702784676201156099531447539235049267119460964453735056763667699346903335579849349673877832285308128682859361612067684688682679531996567490679878146173960534157065710793047540049494935671741307929984504869841065964006018330969652867639801379527937769282191864681431487055230311227963773190541155659139249529144135103756967849921119209576273826101890377373544609506635594437666748037925343032917343612503422497736446768362122864562887657770464974901189170715872333742027949936829289464046659227670596112637666851881555724392340508384617265293610626057080418754714708740933543987962903557572252604158524017159005230249524452294402931699052008156406962883895950110506109545490659310336574126560668834972058425669486642335042690872009472002893866155333331984098004356836028312038051064163820360408104398381842184909777515848063961800267041337180297581892555601979752539355869252034237205010202973809396168198251238882803600214221149993066132645125284890299732857301203609885779548053332618747370021823891237628232974809574116080143771276569933643970533829445881480729628125753176047543768780616581991988675399693707054017548121994512681612653510386143634276958219863706264720953469407461932497535399970120162698450055210726714249477227010964481572373433519801558644996705488386331910521194537973523909491470205230536575527530306822627647516424975894517413866843032159308758406580573686232878876677869324069342669262753060968636163557181093375665581891566878793828402597403496586746226068470850317197698178540951879625344173256457417337326124123170395664969091179695401189577754842880869336726802275019867078280688715927541183244238245774973621821825163008693419937307840911382556917451053756440437188860664122743516310082258322069152080593363470676890503882392875375430118579433406134479044951595404200945965459641616662079747999503445937098194058948163122214313342157531067453805421893493926719078733164026289601300888357922439408346920426100144897102548656323118547952114247698885073071479278610444220406869518569753320285798747484888278126235123407127796360777599383314979138137654140304812489750126192267032554563626350782815347334754246685645751420115825328118959047741471059351984814590164209909172407570911640003124553480689740082944700568916079301911550907270741006831979847842333701547011755342815420911480693330032228861675708512439444186090576029365022480763157348266607248012542830736901356888841685970032541823803241818991716965512365676978438125546288256525410423155287084783003326003677607437857573207372810600770719944096327732026145166329848482745682856644416885565150206585651341476282003721080528649130504382554544964461622440350420631301278667279467815656243010349339145361957533169248914981597043145224700936824160536224033894671067218276168280493195917037565877595464788213780017209472582815380248023155026594542067832223283133102825037936416532018125503380629067140518177667770027144531829871159802407378778890102199297722804894620936674374341644801863839001178510045382880922021204195607646372118505819628868480904835978239766864818184685835740915101477181141766068072988285004569759733972419000255016074222016507091619458447276905205498556906081684561487296079537418367277854290463271485438894368797571182786389698733471568782575411669839310324044928556018950667920962243114900311783579189702496988145547462252027752605121938045185527672287253135591979697363177258713629661862627028770773961245547787464475460057759654111958071183214003572792832655505857080375890406635723892183805232176618841007851521593824795928790411388401522281217136230294760405072773264013055571926988320746910867442500246225562238596413398224550013972884993922558135820230923155402407375049449383326370504161311950241412055977604841321879107559296998320712727429457220907480934057261005799428191202046991680564579496031145459665806829912102612530726954267742392243198761698882842620437932452368086158421823818136037588528566420659592551955411407737338524097659434751036163827381239759727861528539201424252376930644858513673530266039397454627730564270018674288714491625823115816689179150185141432217396376271577457142126975539542471327051981709482380105896902940571391247937968088377267656611671519313314014294249686935038822026033659629191887834078552302503057615643925254952104104173098245055852118365845371059663940129745301467608440041038844411445349546899732145375270806117144672519377505905226271896591651545197042569840124186392366962921129162273822294686340738296334229026146802416938441291693275977723103875635748888884877335611908492355467291293604121673006239762478714964744518839883732246063268862433038014570508547628704530282691736581136659463461415583518174880803337335002078687866110333772468303373905025667380821360663362949569861801561467688157119563084383346938665467953661987785718939648573377199359166082676454433312770011120908891378598892988856275339290148749652376578891797138141883367353612301125695046944625873381023637540803164245538911943298434821037628570478434028301213211982029826362013403518037438494850816880497080582997499415836188371566260979605258087922337051503099779476589771212909622761799476623215914355441875009507232090683304635222914451888462938583916102256623148243825866878921049299639222282854806930905206347161053054197733128855268813741384640883053925009498167025916737492903132338774931584153059959766335571291592612720074893622456750165144707761661777923399117061826810324591412900563035476101676315626676617609518516105918465560951651248474037688154842985893563883771619042721368359238427558604827317692659664639079804027396492237922651304504014956507643114103961436902779820300538044380799238790799899199859935168341243800169570322762227258488593544567111650849109614699875533333253541397455598982097355189141037152178366363528678459717033032303632996359457591830671469242661911797592990758344766835447047567976317233850811069088746562272234391711816485814896541567618833476695923452634981264564389048286048450193880026733987205879444297201984626230307059840553229414370715199007916275381414648160339542764403776276383449169553775055349980706636206408929496172730437811863716889292169128975611265099498461522985921027903861308091239516764508893435877909439551945611658097460748597120912187618169669564139271653362676004098749283021554907783837161471804643585472833914959886216920553800137975102579393610248567934323697759852548869714182431794836976234008530414100361862326377303980348570467285660390909909719990871793955118662637672581508156038403833902121526616292355271951340743147366466147366117099192879403306710810522175449739851792604649927553828769182783872707109067429919760662600432921048412250037667361557125422095422851675934510709583819418362930774121438143034339235989225419528300721483085685905674050874484118948861757321253193424824050310487133766066484159266660856864167955872402438632065200865179315350042008842306589288307439090327560052863514402567777417619881585148468308000004475894520913330079868345132530837217361717418661672881304354381637750537450044259849328437472626738149040984490353732125849965300161753002075492547950976060545793723232175073826545277079386962125253115344025703731605199840378477937992266306159485020972258651212316903323368587208129555988655336044067316044488483802987261598222620578282478471740143739708367704713089371366266577660312216031479004724750451165853079316084464740185738607933125990886347293584142770590784396019387075133776028557286344486401610783940174706742706978774233779964862744096974322090522470758148615463127627391440838297355604821668660011406426117643011427759748069843073450385101947923123899701170614986528497215881568102857387268436100673769611486549370794079690301225547774524196304442840673637611678725839995947066786663221775890182634241695644981222630566318449217200923838079812375794626111637254137789377349256573382670675879903314786976361296363832339950389672593004374692987113163672864084893921186119959297195468855714289929699213147333173051015557615786101620229816543109058456985032618543345400082023409763518434589716865430608128679174232771043984380958514046783184823125706410201170795680989080834411513780068135075112982290162087689156113149666080189065682147151618013368379708584554141480041105886446050714615131211940450836655773777566821427544567292030441598474767338557590006011234360025095665044008172786679969272643548188768925928634888545472370494384260259119946520972471153709192218920782535251081496923804089121258863334441685182235042414282608277304031684505907942398878808340047994623000091980734616308630821086342611187469699022811897452866355626810144233966645272473821699470846436253637647813226094450943337942653104140971815917217155364176609317922297811948200144299401484724852011850393067862813878807080898537480583168405337025783216463426370964532485335718483843153322501764754275616291386980261500250547915453525044882647236867970317764730599204984381533372649131759683215547725168918589083131357824487929218870921117253678215851958185370018221435168020403416132766397002916129823159900330206769577384436978757905642995248933087543138093643370071974063285910017041526893250900498195807423759229326575889826792939025464975072099121903390469245062689202062041276348920588253352771196709179474330933399612218304295964266851140903572445270331466504038606230707757814664355498587818436232352758059461922543165429641852246327099152626534752008860656433997387587001023993707222245026510958375267832892076940452072317687131244402097942423015789211107660905176162513650715458021150981543470085160169190829577762307071200578447033960970454159654168206524557691608478565959074002778409210490616662521052401387725411471242332644960302689864079818584336732576324299423700373765369557690478396964902204587934620307372432713365969191926544173703568959492427578619621535028141260427916915951078058306781466918109174181060612156508215893156373815489739566079509611207717771616093795821062940268224064778513019145936258139151559517784340331834716535931315517093899280401489567576201298964777511800304345477989253175698204386563736320146750941074578243814913138555888071767873770869545615404098067840827160025929914263728117133851910932426977121762748792996674206915596266232451539892642449187949696211397852521204197456600062607224522546409765344322158635962759080414374643333119699008454290511668956251942910817464645494527510886566876133884994507356423770415315311828002732858204647722719694597950146752607695819821584319027971568376585123228718005028964826333364351017904815244346655967572090739205200350994260254599279432598720306151198774683045993729548834944041677579887423929216343110314734121955713510851358203763109369683417259343920222425356028025120414633966810319928458766012809444633804826172604220472057765793235465857014192814053167609460378231550524996297224571757091916395011596466128700536023326493636214086373166497141442221171701780956205331702947194366107886710182478231770858244196222295319333800295597339489926139129957586626636276552284125010753433770020578913938931689829073778297268750352038808576384081388698486473782232642817169539587424611459679322863892648901604427465829027270151439471281786087618042394084399641254427514038187865505712664578277130266950012776386160161940312684782313964482816768674338841750483072572623695941928796158687959496342229391457118842506683361464379420685075015625073116376730572859157747170412464067817339624928332821539548824452425546535701288517533414820705226983526973461750208199179804234696180064433622865696455698664205417288942146235684513592248487661185219528355072055455939370396597473180802836162334025876001975163924629964882917787879177440280671169747349215831986314302127851269752277332911767983255536814370128243978947799336408930234976296411776156739496360135948050185299880572800192756345698891888552124155287484418491086456530356687656256198980816984707227331466518091677936307664714214887765492493944125557088172370075429763191126424137423399469039125132334074621704516877376404676506905430072748946402279167252052907530354759989915465177121241711266934852015574420657689254451427809073658924900196033351114510457406881760841560582445398745448638376721217566618836982762799027582659546927386242560189223057540815721368947184971273517950750163778741322077499421399466986880539148148910084741419178052310023667967165275340483728553379755958520696444022050125462715275329187839008713594103288850069793750243340768476722147952712076014313788825844067508761864342530113425023106101280790084715943116585481830998612829824002250745530769123690509150462750272431687510258661931393823363775964970872355597303050387327131125511096056935151614576078004529109267970474924160451375031159062052486554754089135000061289436796045781735905577155304007051071421009822150954168166527671780114823307405762278525806015062966563811375718040406546214116735233498817125641959904460277739263473650247682847513059802001490662251522055471299075305684707525229043210958757765340674127197033920492963445398036920398948184775532517518588738184068926028481300652589274822786510319000567821914544478681423500219236040182942239293939122189262368157405404447865550799823592090161423146329395058225102908264897522491314451478658544638248161384781674479380649265575224663244770271949265065181662984628359892360051529737872498834641635400497489617081752078465758062319494098721987334783727048566933054722213511618724319845642404560183434319418815309461310824813865914042407757190261976387021951979095504269090035623205369308542446465076938042303630357099906236947095773074975859284544978951848259885161690630530571246319325347475573996727098273494388832751152032463413542532866317480823351538967821095879820654495359352557981189118158938426098258008361482609200622888937289407877759605888604665072734128216533395632678020145800180613798738978143542882985456164047081870804179561500245853374395015840394193029183184271200183814613016885543326647233594338952972096038119264814027912079496208144217025269093185292255674452703166422980473381560536637252559866792016041498374153025658218222909456072817025816317891899817843927030936666321320475103988274735000820789630833412714955501448949896139132667395931810797011611647048701639925730695253180235320704863983974097052068532891038595031114766961451792469779253644176964687737911183013452814281709273043780345235539742129067947627430165613637567195266771318221882766214202054711166209588423650365503669217758709904984055328352233422878190128782835558967697717561727102359115328064233056071551763982836887495067681944894846229754437961927177984447076463258281537590622715233765037912131170969534871723312987919466773305212074111164356169138380985755732715236678174843039490524204337994816036612912158607248916578315023668542477516465079705875139834364071306431302383527465048625118093654338102057498891524075513523017847935325193695732981691088140698557263429836742129517785430045911943248511568703100684568449180478117221343196499084983296312028623161790793342970359252059819773263257393459301711801992812907619485621079533497466458313738407081043000930914369383975017419729015388893490115194806953804118877319114491914859604737699477960951240018178189975937368437160734081059669014207781011326541076743668990574981256355958849200632602552893847842095490461256424163045340961350670776694965142279102077556128340160189107391966993091604337999189981905977010604616186346003370169558093817294247936143650753377895708912770879962604981438344706477723026031166012294944348730738581360207962615894979837157297983326467509553852670173749287797456453402353085911576109384123533734271065774264686909277388477623499562461198398743214992662608534350718064780004103150147964460683330860692766590753128455205111484427382106949696332031962356678354870033513809855827090222531505975253582337872731526696339419412646770500932270494164130055529960758482062763063338893551165372407495114203358144114718801146686335804031668035981490141925803716153870539591593656334025232545217132098215653816408609349977217258052150192061664162693745779281642646588053347343043651279074690999226497104967536516451540363398598959101022442772661433041921280186540122347365578047639808476293525214743817135183549170985193888544258198773517924449345517686519592439118124696393274758760003905725780722224808210802390518543237748086579370652254612838609336006924843628327266017566129278878436993479625549481101549269128821156935994127119929370284733018226551805550195366883544007811896169283408749838006781457327351686393134535688561962676686206917277613380545556286412667057523007073188549248560077704003734577645185751207333097423916404347569168159901989627822564727188328692451745991128852433282666608707972648549103460967845841117684354091458581843697957236096864046226077182189426501869914519219984442073410334727052853140393265593294161537488702236004989954242800060321898683567580483310478658479364024915217069033029351362227642169619724643411596458570659470555329135677215715081486010717347493604722606781548068591602870598034338957028744313397582620279343758200226088789905490937540516406779789480251163344818159741157692184252632183130861924621736625374802851704091023484574588940292283007772978725503823837361907724209716043248247585059975590546976239041410015755381488261901926427651437663967007368655221828805674921610576973012633692272648587882698487695366522614465677043336465950730516369288902097941025809345789493186138350511120126035891765478319262729627206983240432025495788880007111152605081415596595064484733027293198037048149474066010389065077840736543564647565425855681082349142952108657933405175183752183369457708860436503952393551551399152505422547102546810182364053185502621700557639852085349492362461029827503457691123838502228003249623910591863664217853879218445194356520836337910910359536466550626373011830397875866285064544294124560607970843495232665250456756221056424511931032157412977358351385122708522700050923154085098429151791747929109558083499863745283930202799883331556462721797142154944034897000900126109672463147978262719710020505129671201757956644646569487710607165186729494830323397568051357497286101033503871177671121847169144939833052189126894725216260316083799244846903753746426208755066849151456578406423333572075842294185349336997735350640834731337485397999318042215044689236611651818652280703102131685111034564705009846299863753559029405622037646833832600633354031932357691214515539879858154117968513281551501934206689451281065960654819967712427393343350684348097000401844113326293996618722693427654093631541319813784442030192662574399414481434462254781409396428044957160029322094455085268903900670076208647966047621253114544013452595537826823465853499650871333148337761148673362699632847785961183594880108437181463840018610732294254660551577142371820278992798291926016526746281398193528187149926816108860217604886936391109286320969993606691568042706081177030037866939486308481844489609882583736680706482565848244651084836451368029223118197064912597403411303701599763767801980066457464078880941826771662182845308194851267391286511087607844775256176708515778691142077773719165091305941289377209064059916285734801701080913897471762457768110183317486826552489635475623275833586087376264821580868354415858234116603216814612479120880533477310701044866153370321647870266455504427947506407399941622540750353041572768866766363769105417353834232467707935158267085182461122654777137907933331850421705435448911605106126850169513351641284475555818406413912139240848234404586058081018632760417794915972557510356234657839409063576264488538050358492774203482989326579319825741632556254739173349330364991392260365999938030519330822245460070841445452718256961177951107059702176799776041985794509114058983711887991891775776858292146426214243941413167277310629590118422415115742148676389420620042175043785235401314412440362983094788267507300525951694145665743283791037912824187668679935902583215149777980023063323255787335075371128900674911689013590676237877494263295061997606738361626242374052770490453413301312223461543727267513916916610863924868182092634479263569723145438461685332237138268314107728110813495700490558755897846103756253549121363475646688882903624248260866011818803339791397797702835611360204189551777194589147754678652348006191589172598504905543537262916740599064590933584439986367243823510035734999082189651754562516025362646607927578087906431764099815063946890456555736138145442070347051255324473651986376057711165416736315090159675383467879421186324509540883713687759479111632375802102258279473525227038711050575912383622517889345939557047184942068288042253551187117958859905099108939953467343449235943688924454424988676386722488334280218445474407378712448268952625878727182662287063324235187006307799095618010207538629368677916498187898542747047084515067275636439522202469170843516124851977246186331830521147440951465294167808323792465274109929116394243113127111923673188600839471706136029633442123373060214922275182220186751468705425431957686436930057621962377020313389127061613034546373811670629834166766464422300450503067432100959979080156752014689428416732231496723692676442641380963847587836436245440992203407770816909598087550605403079782241025245892672966484069207385564029222679144996414159527306380822593536705350823257936238452499695709941935712372937334776603649102363591756228188592072076888259168508477039373459643498411729292777361015638915859724186762363767845933528868325889683000321401798463612250389527615886580923558526213840387135218445653259070353556999870831815758165667130944116948336330923256091605980617974869056059992506900010975028933057685892589099709007617466114137366498966730768081771627188268022973981336940398856318356735041672684823239617153693058796115238219470848650935951910024238129947558714902672676535550366165781185320240057103947975813988304265267421642190224477971774074824166528305452534554906942973280334352772557973169954643554854529643610530457423104246018604686469620614865830621991146889691342741423987396256809123638995299997910255872118753353997105031041299925338676823374055958021168828015865221560011631434386930532332455257146114822568940370368892945482498863366659384981315093592452349942935867772886380149020460913134420843738053716274085638141131096256010277088476724538654141880127878757114216722971591114380797844023939220205087788827868208125746808173466692785816873595961410347277546964699302955958292727064996873041704026160375528013085025207028912648291559580129334900018172081533235579378761918568039660358477440237880573025590092524839459665999158682455338939425783668866305503711802872244772801909937858157005151519647907336536324410276587994003421863069075938877807981328115745951212783477965953212177838346564505221321160155949211199457344075058078491362709773027196072590423023172887237877490129899664527836825674425147728883569758459626568959494940222117049438194941772741515359943613793942388259504693126864103800090192276620145473032979403923429340288223672342517133002931593356883992519246110965413253518561150549173317934417298548596812676463110349981304062597398230605634939178286991756123680979112679428866263159002001645936387206572119715668818039198411476619709532920363365294050675082265967690228647849829581964645254364483719958408129359991659452601783048696630723269243900786078898483537407918361274039416938218278655229582264639474962322839925914284125143295923251574334170796697132277771085384616099929089272431614372092238309659742091442348297044283294759240977174002438362074678255126282955201823332140398114969000223428370711415824217372292314262293407100279311284313384166673179995165799196523043190731438167570303715070996736749507800239130735015853763484671691979641693368087709618405972705578985199726798085259311033721100240435699912581613826222965986608195455987702529811320615822073817906313805176043984848048097429100122423795543305735338104687770750600977817555189594607325089996022411440598376245942883012287786237731970541508038915325014873284085550355118383455661985031465478996788463086179951951399092302600963230425728771025482783060409599682250771328228099366799645273980719362654801158033483415451087321426528937893481688026365531644147472460933368498106394464706008585921859022397033699730504380142023527325207663538876648053227358207767172943897913367207039452784100114702344521625150916822091535925049066913936626807489415007747813799422606497504516024169091278599870925138910723315412609059739803069649026113790390857580167146967184776793056607827772463147994967997998765195328169867334399305288995217054230544277526742558671064118289467671430084909910761420552096835255789603530622511986875301389972742156263494720299443748091621655873648108680687817282305502648935353344092499352796342851965617458721214380183083064744308941455394555319738875948561408083735759498452506015256137957522428458518986697458837462854346153446375642532663097162550519242334562885641853505722675883933404005201065670080684533511106745363655831619386343701306474350402903158266536689278210185957906898894727974585220671530627976405272987728783053182503255353373277288800293757791531823764634346994834615073184794248424711454254964165126094862206778028717184757514825410905519836341061224186347023055770016953586934090937079856526030197535124013093415754989553172659266773456202238077472553153225023206407978373565583672950664224233555800955049921173805799026092253395893880814880095457949152746172697680957045481861964717945904770396911082395282616160342292112502557018454027490618707677396753269680398742645432641898935074625288171843956420148582017759173058574465991092556147579440020637751258409260078001434895544555007095558118565168694173045032751057749731414494265481480579295021005444783876341552653792031485329186355042629794190371547437286547389792026102536060642928374166702922077842200166381565803748556833419047594768217396053637592039799617707611445001878133464783705062269591742690284184485531333513235766193949330619718349750001343148147033997345735935917885596633674390809580533236404036255724409169074052144848291328233799462629341906728993194201620583123429694515863551067850574065422155422135833520038804281947332089480591657384201581125217671754226527203997153772016667716292188410234375954479571177106874158634000276686313254255592864957392631416974212324470656627481078380873958962360941622728977918662022127561613893263697558085948103418060672855833527749638622083095823150320843529865903180349471496291456786625313004420854989287677582148925842597808424472510602111602189636033756273850698753997235220999460496856925148713874801790320359760797989818212869598929612828866346335443299760572024165436706847737642736634250604479701739125592240709886788230375721297187438944582739364347720865050511564985840241177676106419981567025074891218211306237301189109337454918775403972853563540472228532552694097428333026350117258550454677016414376001835351067298990150360419039283539489771696336803828798410826558176941141058055458359829601483219179707149677342469288596704059474304765534419803956671467530680699841504212199312652905234006631306067378592857594550471460699107833168105302978445220362862373951969055047829615833159429466517862552164491927675151976790537482745272473527622550784946350465745868907083029220679817547514793811061832768942296740471139368277189902205349471150302154144802514472545218794162046046587871836792169976782766367706420843291465754930430041003183260322471105519473391234267090270345624210696819074178326500049387896306638223247292332508611329944207994015649602327028145850229632869966431043657926990238876484967549589035939492791902415024193089992605346932155212493766112225629267808638411257286883534670446293945788486872375287848616658074883992404427638511544901126989151992567176836019596927531246678751221190124383915309408411654395625541155060476585994123451589207124730286021548651029491122179959393428210927049430341193790211880506392190066713496773887294693659599386809248241706744576813272952647449831949270706337647194993935684497531367813409341838516221079410671300756272298085740359928302290639363251919874897298542618117243984116355441287063329569791725659233302657265801669834258473801962139204824944164279926843976582520235820883031211085682333682957045021647894677467955136402475873772034498752912195982290797237549679717891936022930191346010401587342073895697681515151967768521298910384457416767151634094731839547128032109670255719219896751574848183324210258759130352028464937068332252309739247276378559655926122693146053025334828306503214060928053168155824041220780158826458251378576263337183439032042223693862612810839678920087051037218258613663054644012699781393803643137894236708208051567162304915933945704833246573648069676644217934834463142789095703826764631728891586216224229601055490049319264942120684785546737879926826350153755386797666759828525682201265338415328640826991126220164539486471569819914579064628707502321814075259533582214987491307346783780455245580118373341108834737558523267250064714564178865294466135261467943733781250566905516831849346543091357736406832651849557227869232020231549954873846595451662530534823280025770593671332059291314396960227019619701108001021893029633647719523942057172373510756043229658640016182450857255973161655701438391235719276678451778516093328064129274168620155029185115249098812137565461414748911167527601417800394625250649882899442549003236779364200351355246885962574682519770178727868075093765263978883050417024969143792217285261403389276061735682227424782566585582479891661267945521444442536889960666506525298847554718810820267945050134539162775830328594486089403392257205761974954421417948736550062684133230424327968503450663479854064430347541433779732195930981346401529449566939053870349542476536110260729917436912552359060932751549616431152199263038817293493178557812420006360270188410265167741656492648578996946022925030111160852588412043211593640906253556393672209819264401957936259965146981936907504223543013442054250026386929746890618921312844925233015201044339655413495946861010851534339058423870702140620761672311503513454973814662723016169741987685358012555546217106603380245924524106112270483092462578535167786778663438658552043063498321109372083208643118700827433343612199025267244746829365792380731128722586833844958634241243325969780924615154146027587901731632821957003712951464661079460654209938379535114097459306290178287843963946054522543208486836549663511510897965557685180136295831762100773941153881476643195187877173822306339411901587924283663416047542797590481251225402087002152135841011418084471096540082501133391886936768291121548827919584397924952386590669904878413329118630726799037274781137042708761178872386014007606757870630553018525601077023201842152245314300218122567034017285708488674099984359243436326901061683912033712890439624569082749015293102309386890940407355915435470220431150206766801431767265684587352291742002393964974681865155228006245247634853529473057268195185151496713206283252041982940971763903985651352352642990861698831788803068369315419446042952497978405816132695397995079995882342736921308010060228621831534794018689704610280842076100292929491512668535605296892768253895858380982630814112860883809964319274139655572015507990860665965478511798267598025526867820539054313702866673151353851609157725350347335098739537196814649186240424101697571371307164871864307662347681957349764450256557909010200343217968869902324127718671894263909050522078283457573642543262633800517629305635805935325401085787185845491151818789061464673864150924762764324468638706560173957664810454938594988187356433345303824737040466264432743290221622769208203052043839781158206027438277258260936029382086204168731715905855919280313742092794229443517682530937374782416314291588916698811307528801822492976251272141923067488799469608450060245641917001566694425813567597245755223965610952966387718396811724906798119653446081126333665189218586053613613427892352275711079753530931815882628200389005773633956414181759114530611828187824864240908950711395234384795120554561720402937241549983707288377647036832344808968421190055362846877071635361814521921629147856079991707111321161412931109345645786793031047957308718481812673037734326881909733869940098375660479100107889915906993031639375366707078464344953755694912587125159226759487787617765923732789387271704734186360163609168110096344498356209445742540214672788205540059488202406955093931414445471923150138791648289037013211309536898672928498726617775285638601734179804585868142181259769289405613703176857034113632031189757236328727713081163353458229818475109310954748188421903661061689175963402446288705342701342168530961534551778586142852783913407146777369731576550388016906171743999789502814701588506972792906323061065175512764012347811829541000684927118788181339862057529817818436895889683845869314405483754130753750971426354298551597041974686445884083051070830901016851416094947895515561357512217895301719670438745348663254233318654426605748777313590218507871421935480769781943945062267038713459061663177169445932474137071365695410538096326060488946680954424343432685456912594461769205219022970282357426704919286352639935838330743300687569527431852805119887106109446411120540161676850321211759146992397261080738865699519345971626109172343829071614069980995809112557477976244036317595382284426944438896519448906408327720379918470065051385545875963364134397900280184641567520238892646415136045056159497920499339357342004309132858537551575311072565700891130663387018452475996554128246695517558817556454064942262939137077296757672424221423362814613983972493317960363181793567374389913600261037090054056642155908175803048161616112997335239924946949719802125262323708110648611590903982679622447444289602380304317632979307463151025208992237729046413220013401065706386956959283439022754712631213821878164983213266933896021357016062696233994098707787574689281287620240424554416135621815468804999396844955616750989477291349621966142080553874820529755485892435822047712413085210094421207321693416932686626628772662823536849441126637878547155828287926866169214945892534040566615507290637218562434415007278789780354012935405902409314742121414414885393228585785698204673400630901222013890064036924768546846273954348439212272236162518019229870638031881038572076811920679668932554761770714065063963536774086743688996618693762397100720354512780451976693346007305183998105215571715620060504219586448136340685535564292774457042907050473620938056706049099329654776103013866621042473974170503685256252514113243017040021148960777255882395788234348218252383634611650699620021179123885890152546244156823263764523412479473874216614455694860357802969431371193947198989054490024835940615062181194966749946187865893840146882462379712827092325614929551750813216486536883188264884677078329674044318082216308094585185995338551128440281653078588339528177947957674771729490476946459651666659151677287467699562383987960640974787893173792996354049312549866392670718341543801120829260685116618696489122297659195845106705566731118440874099642060491169494752997081598830099163487500099632372416889263976123335359645596281197251950565000694479042421280268610527024930726260010824132580248850511252657216121611715891369540834663557223371803180920168795259969860587835204655039384249454211838938033045214495420035181002482779011998606006355779861868934748690337987801538682484083359632117991417239190525512176242867884759735869765600907850086885467787488997818044555373854361724769874643598819825886696965146950364296143697553969832989881710237974917570062262911547756328501557583135281160367158964164859311284460471944627302515625897747270951234636030520357206600983184987850283394677409050929796758232191889804791708961376276492591850633955217706329746812262392958786861000011931585492970782073140559115934880844600850288644834154566951910234271429191686813020134892683006050563760021916175047291960033887353060018738315060814056249393745615502833768998674687578544367184730248945836639482251822292553516501428040743311955020385179481620992264126594415245060467143067431298862106905363028883244465414934484954244009513723751691620995906426840943179639087413964658107719155216804864850808307476566813321195411613602089501511774630202546859145663439639049182450317715998449660139566256250402421875286703780336757035449645158241739730224071266356214711725549773084699628961228823392780014194444706397267406999231551592913864373505663346640639571327505107787566574879456148767230402524503161922029441994323208357531506219862245900626867434578621869318327912579302746704907373312695843925519009025186216064159650123229694431047246656084926285374648073773748634377667362144985694297414832578009493020478100346729336333437043828501460189267771154730290457024313002319542733395516332482829576415552771856473154421884796058500869788983516572533538171390306007543353409646467913011374955618644868068283429184232673674684362281407152220103652360258550028633617962795914914460952492751602436436660881756618931119895871110237039276139178205227091053637526986821985177641835495977736965033603551561196285079866366480159741660750230533437522660516299965650452220393291050423312580759251922139179009295241088033374081031256568875134869495831934707553776275633084331032174203072632532564752039083510902968920985529151800289870905248643232931991839550264381003362647932383501128834004274198115652370540217203924704743985980183714258689292517744378126363621429641788389732116306944699879747704929786931549143023288630708606077022240762121988753937864812330322786538833200415240664652084782868502078863374564031324114820997278305386207272573009914753825865627415198944847421900377717464994401314721126013729786424187667768345677110115858927712466172055314737898699768718855796617337501819571503886175387759203001743230913563972407233006219271907345170344604084574979409223195508993338324311613862345869379719558404846065797811887132933572545201316563200309683459093600188045960134458685808905197870940814549161948351613815489209142845058630977881510941983323793603800651331457076639871286174240497797889473783862414122616959754125249855410890527627776240901983613838600442861010233402288479703903810987030151005158354975686480116795043093009014088889909592107283153353408854952424817177860258282725311037086390485477049231095317708078642450714923819354217013960182178019614407379737754791426327258397848377401991277811464295658081722137094846508829923820338507774744139378677677269025669077969965495181156017729100251877325364636594875659087388999045928439245452406269108155014280224573875753513375146477627255349708318206093528577328334244598566855143671230849701988905091767204031748725193461610200987455039439850949264503959255179650422427046088476867461097594867535416390658578437227022267553454061431554696281875734490380204750814684269838901879009954558067228113043617733518181922731584038777151456013785206223454150703912744375129816049860406040445761715364948396349402518893453769194366147034465208873468689464919415782985402254029765815559375275319879173484045665721121564773924382023183019278323547637633213080178161622379839188476381217966266109173355949921849049600074954548501124475488005043560146762760404712184420031278312990584435830982432467934937140133058529170547026071234684566611181178137840050762798967071604333816451598533299922297796218529865476690267098879039692608014878652404277957091478697635919448180530385176482458821961095417145147135271472150390843131562634285976962350241988924490867896755521299517000610506469485262329418580343935865801742376803832468395366582449103996174714935319188300213229340342015421007489988258771523980736487402891219147565797031574579454468849202794945030908209089827121917664764758328857031844104327042000685493520248361497213099661276055829268822218196941339028202739246480814221611463466140410487313968933720892136838323431952525591838202333241380953332890252122504135651179841723936385809713030137598891685449441123637144043481684358013293616179620143170084307780910627374937834462103023678049988708954879413413252499658806487636961468590168837162579555357478755237191059711374198214769410534943498825578579836264250119548547885043000269098871143217720997784444525576709787384112945354263491254985227042612019529325758117668296275886548940291505501615297725070652017968482023409746249602427408538580747165969626725772384182558443048583740545640311878461848384427335558073048743768716985817645824473220593218319156727765175390137959191184082914646878360120499784877989151854028163884904087800518268176939205802707661984038712280342689276945623847224294344437089353472365911235721641702747881128010821970588575837848087471742354246557759059026905276219440417802024325423029445513706589911470932704089256934399551816600356730517965660955458300965495525150057168525199932465393467099778891060112524562335378607980558127302530035980454331016597086939293953299926315454091387318742395331256682590017959505556206139038286081904087802176865304827699401654498315755103109151433773250713869760372288592196967824745973185117765214712318767283265862658278121768850578830087817872710799700007391167609842879465674295406621239852888941082284506668963537141769887967020248135241216248174080146238240962934840641030586746644641839603023586241709430420415721334103719751327782829429418830945755754929961448215994887264946910065124983013720560659613498575623512104144324198266286772779161829076216526890054138072939562976831090556032090810902926495064735450598277254085473905166517728154216871639156089660049345101043861600771182678331391232147197513470685449318755094496732272157221109781292014169701504493455654645363290424988626706325189891019923254733898825443840987606475371421875457916314643835749199322004285399973165587830275294509009127373740226029863306616187942983657067542505352912793062761680773087855061061008097916788743329194411784316792546846168468191970453002846222925885448254730319176528469624214562929945797086463329895423974462821741510590534667407028496932919888001770553066870617359352366913097583815344650327490866497772982510250611600722366812244168101873487355091092797715717466686913887502866203029138461274582797588589709411154857275864254123688483095403211166107859014047083364857002821394633116642768286751715301340390318943155170477131249368215977128311540027605676237764074277238987345303025253339826153989941158553739160793954534133256177946918975615001544399944804875303552926226991823838400702640696924100882877621051984878028014054861621899690565683513076974105430968319002526647965010479879220363139922027217052855972599062835037315354363109184502283120239579312572834261337774002974716254491704079103449708607565550020489925351934389420571054216847499231458450294692599106587678406511325194614654980329459550504244504957354411490989100527460548520523150218114085358796354588603071852290118718744486219648071761179291954412747619151151757839385557346381732860717242355054512889549446457680947575526664606239134220419433035177803776362575564462272139246882458686947245533518277073756151098952612677332681251961730127994400395328818913515537156232878990477530779628326858428020829332106330466640330123143825790387754598723397317992877348344645961769799085297422110129738313968265587773410973647779459312681182936471261676107939218329566709190112184808084256110373195138937887143778932160353237618120232045019240410346740527148315160273594303429341046139805888528926511046931364920971178996387446535485388788704698273350872412243285354709541779104506120585864126322245446114621504358386526064752732720559353997326826543141583852284306797409992367916374264146552575042302575502148808364709179612196354625341067989716451486747538733995926472122834103190530596562184558315390915781882477914321486672451754189785071400219324206885118034505001739112394138738871782222416105550297522016587848878415104403153041058897632287957664156560276676878172279385721494951940137103261433747409237551622261087028172568527945306949095995449951095736605122957472422255291202434869932950975972279982059558106510595301236077072812642817048094474289947672455508350116481871320679077685010541070984998764725012099420198531039509484778557175685976226599674187545171177774904141487994791264416529388749652460332737242984962387010861160944320328947876321539069783574260412891691814734771530841291581409785444872496356737456113580436940415819331014774281722092145961138945043278068563219771987953603891718410075638863931315377557422058549260190170809533305638997855288586007102426216771628495882452015811672555100461426904049238322828374993133106493504968288346006926710682230776792933367734146396376565034866268869762532624352832780634634440222190774182621006879876645939142513840268074755283810155001851416688619866814727870530763481783062570628902142744655408140942216580828094618815601520283001831138806096626664715589136251838976427955767294157160851307928092736176368133807049806517921929194067519892670859824493547265553834299065476433924797415344672524472934855018368780652244310326051715195450101330564848079681090605426153771626784189160658416611416061735748200032148086140910277185890594052176211237908023019287867803092347628253616673344846933813840778782919494969138342495826730978177695693702372864360087851253494229119150976723275026761278953849820586979009267963491692237023286781715958262006188864617555103983790093711404644068059822640378227892520767233958166554259698915047940017470723340374234016279237823187292066375735868702173750502548294889257860811463413541141087544521005340738451946842876051164283450425883304099828374658262104990833163348596644722313263524470489813813092166975474047416052924352151112537133244587142067259917486841044073306091315494383054453556689783756292840121261148723694955930386125224214397717184139519483252031459289406915094232696483789383341063192349582348640176946836001998386914343762021448783880661516060462447760437971356144035642736207679385416214553597396015666526160385639319059163419410785280393476356328708405120130528026318329128168326890983955971063696631668942802033818461971088976360390077437556108300156893270004816454674369908681680625333343172757280077029985462573797378347286237486423389852729556612158939768915753057687131893054703761818615121652285603917461529448296529219108580643526428548327686286520286907779896625416483857343652840693261745484347772652888514268526037630145345847771197626963791283066465338916598931864247227934899625684658520991439723055849339426661321041138135235641946479885788565433226981020202826948278346188944666794918535616470277641876942735450948296138658198361758505493057783170241032480106244833343274204751761979558439314249014630563704359521278800780341465786419306654710070476594913840052646498011536868461290000320134373676033810213841365483100837430694543403966559154413482297423444650955012069475867498002631471140234271698573239871548272161133252471082601515064886553133882154624786195943782131980730939616548358600153145247870154358333202848996837224152600616843436501433136242013231690518105887895336684880225845485387296398347024857677881615444720080835236458187458256934614305073382675675300472265745361255546144605016987582289988327809556970242872742669706533536427534373761128755662609144511822337034254914884850709396042913351834751081074657411510737869370847268851838430629459539174217459611127356739311294547399844871446888770917197638942153170307645679794632726789441905055331946813921793603829988667981642608855767730214663288765103167345014883103016661040278660128826292617164656836431697955234828415745627987101320723775905142740133909790386123845370720350007489832074943733721860284889969147886439612738988709732569856695190475206047695123794006279417100543802522566592778158654941002865682082183256108868575582680859736543362538927992834537625181192570443723380501214544528603990484948934343565574007965956840458798117792484084589806255312390225830948548322769442929769278875383949923914065620848298499207322098013932218755287465510254834470665280280165793080755869595352743949832810842741820231109861473226930838261632891295187220387945543111156609441004071149963584630954285366918720382062694837050393712167825586028383139825697728387124169713555550370286863027784452751931658356849174498415426156586483042699381401919481147138396602806383801192469911517100785516258630319658058931710435926487438929360311887324607254659275539047969822286463574592326433490278158748364837719042213084823777753700715588165323661632852454374589951498512272776799588824275318584689230106019320403436937643716226554628191412843497135710252395021268180796699430268396359046173925637331285617138808745038192812033906680482540541021910765856411002095256117328537824740795386387748783017859544816371947048906154361155428240854904058294136824738374067907105451947963716870734063411178298206775065518979683478086983886980600717105045253716255763024361043793524195240426689658791186170023239620713747103006408564454923579769497054880528136922121481226405957529373120553352369606494224564419459732232610263537471429296497876733809881470818265876930281950181048122424876692952003933927464409933990749979810922434035487163303241253877118426900019068885736217033829223879010387618994369306927408708898536621348797133546264469672608766325986443738095091062454415022008976781513482187834912171391830835090206992234675683739550937694382576309623148362119858858593052225020175636215302847323606192145442286842651749838371922508082618744155392084448795775484204312684989660833613301325923956196205147722796246604400745120665573632368235498229830445959408787092149234902508131938142695121184449187125411598741772190163500284710605891173526736436957500079786143623511277113961273783400391040543304281088426295153659952284986553356545530882435657416025085981670748542147116096102226637551366354934210694653556693131064151782337412355184816414695917588829383497458069257481701485056887392312060446269932118102169889973751731811903059602955971294626784138585438112398736867501439068716527843474169388155129846930040291933982450469255777469166161853943319148549816385458172567778856221409960609836039381564627817710054977823069024244802934860796107832605878638845930376835043948249073419784198158121804776580121375543426188933810639777612676113617756299928481738774569788401135226908554902721926388553459303895704796525188964017812385552549744006119461088824920957138202273865733363688226812723519813239716218702918659143274801994574722179481374242305278130327942466470490291162481168599928060061976456973932497319818311753490077952661263257942248189845656654580847149271793864192376747136637060359134256556159196929887825160006289422501655800573922834002141454262028201934341648073734674672638732068856330831639314968714579529957841276738711771187465001300694598579122962661629751999222587555573374199331610762461076563424078214429772294860371196687840687460855061124413046178428774748587798504482170573937321063961402033398860465091096629486106519148778700808614787409740613185498966092839466891969802285900576784616161437868212409793445223569726194555007607436046071018533098918052569050310167491458944999587582497025642791574746649849938234969181971632012756450434457077253952592396602095294554980429446601005120370801408364583912230595912416468617492593853182773858487050616956399834223481322736116502959651533802624203794406478958891743092787822839128193085322784909126676531465657527767344757425153384261132996273737120739181930290141725810636286817808812717637574392600651132497950868888409888163165940848826079961271364200505859894123187748914541185277641408168692095213577102397714275648786879500962417603064159424233763089098583161069503678018412167072161595367799214565046565214903895364452501960946684556859308093069893320823945619238660664879491298873608828952892383575074007080278764477090215546882448171667563334050965097023933687876275784560105147560789841120331181927555463139122425983963103747173459376878921276153236190227082511259644790954737193559374030519199136145409634216315330363578140406913375992990312908555079992171441616883481769457799938266127581236142703496476948468262275361683611524761495959098813047190747300208411948665635067125488002151348574494338000830301076898488585029146680603903732722388266831899431113021731795463291744399940732360443915946394054715235852872756309537286842150852561603197754717874163494910788370199850659354535756324361788829953971365697175645373402998019100964915146382590851635760725357804989246765254014115515536985479360714405224229027076357919828249511626832135501607860372956093098815057039801192216250097193198983672730611348258682149282588007940149888734531985344013404132422264492595224598194715285143853799656578334597455690885390405250323062701033835739945446950274117929457923529722875321705889178859616545224151752365270145925038904290232622069629444708893987662768644063429187303577803742761603714865858982010705417481576638325438125788933777232487657864126721038919470011524822460177313934995696078307240343139604714640872469845622327510030247606015366901731688652027296113896309235208240074539240508163487170689918227323824757324000107698990904668685084600997753777511249961708327565855556568751014648750587997019197560230810044103083839679494494226431838413206641320107880730382159707826546486564207223597313168400294470932999392475133140907954603974517268290240029728799987172705828218704023366365712560338883502509147362185421692596091690344658103160845239756556512691684298217214802976775598232286954221960493653120429474588250093577738174465402881066591634610106002262269074116563100758901841494519252109509773455523667633619832747595649095705032814972506928967202805485927602881352587982151185244139423209170377053170309908853051719221529605887971306664283099421614896629860458254699420404201968990081327049774527333340906100927866229852370810201476107428565832063116857077213903390468520910421593519748767838207331156223853935114398613336033300661146737238859640796179369945446174843607415192549591814308474341204636346613161220787281986900488263015629800219132777307194321839371918229115684370237301835492670001840936928371801714070462741888886723884622030516234017391086506946803849131724944978758637018144108987383741724505103515468504360138931841017101656883386208089985418915552106379144454639154566102353175911006802205282295786128401171796527873576854834993538333026800771865756954997681372679168169742229365779453413544048079063181121076421617607654155466184845739241161775676094546622066643610181940725081309249016472534440106876376344111597004031309468097976616607721511399194835070128980241684558387369151656371809287593086325357798756085429532068436426280014159316162821637346939078397966258844744500664619970281964543295930417616066788833821707209020432713362733611452963964696298594408905859448161472002664253072692660123657037859365541743242749013687647576048420853847416144611415550610279888962471091543845075969366107131287941156593401242558828156453802008051999742754917744921864189796739666143977749090994699416005696685637057397450726107168007571707135964018400405843949906816741587195690115925382275417739685142695164678118868446988234168262190825735877901322480593653674336778013202662831239346503375870741136891104558763415008864535927960141223667968753294790576435212279741955168264950880982896301629418234427666926837813547189539076202066476026127734407776343691321691782271032382005214379543278463849556593010585950880604505520440208953366472458931455838338033592306819608240151162205729127956487890158445401792134172637297189877134943240460693732506041113407605319159235843813698370996430870956908331210537153747477928767470856193693872494975658300411913305700179427754244741149810089894863202855165091513791091628142856634064498008936511269628741212979726681578818807507516881791934141216881793752315197056858930444958182162799818982598176708647434365761114933763425592554444748239013943790351335960806098612872107123726919898321779724351119032706166293390705572316680348547420765324323217276340961482748361441909246036992291802529007978967755793391346903734539824350513031708236755194675881136133472276225183713126933151009862043615185247294683914742414209259458611171824679228795829264009957929491906274338709464047841610807301267765933394013324293031839889441047144505243755180719521531694974057157167537827493944812732063939665922629753564885385166925603435911461846578446918851081008063233843730622409661194776690243131271240762712081066439808412587293128370185012121485862661136271461473456970708543108895790943044631201762717626193681934210218264293543949682554328862663982792983718218630970419435187107608033308766528192249655028697794304218151678242614044745701327045116359055561177052332457812167378576984502907252466851714438208567712262736356575450593759542507834058859699036917740921508842215562355037693534588044941844285978683854212848595755080368866055201386931603118519031556255217083016289183783268156707242985341824247772773774291933610271125952047003487208234627017580264695005040376067992673500062729412198427609137613170832925231905148395798129280062632734725994671368466692461353519344657584271256886647424899587815027287808524973266009106858502232358945898266852886935058870838806606733474746759166274245099678673762686532201749478401528283149609439339198907308088463434073225200457963160455348312872976036136378516390517932192531419954848379127021074252367991435710375062765935324881260900729768821353639483592986749319780741156621167970293518366641786977185433255721149513162238712653345790666466470860349853439663224020753988905269879968075362142734308155378493524049847441795383655735909378317330057163072214324802293544437799868517687609070858279425042493681619547347047598839040936761046072023446971094409554884348886165537117930691683366274995554490025640005231195955322327881116489668574229257468453426467632721404888253370790984343094613314545084537054853790299206950394359837579810110367691806143826776113377441614757763634331233850305929135108414079847417667912152769871312074982404391816378603416567348171405765914494902147825809793528029248134932573545324478571439679798540993356041201152164006408697806796167944620153760439643729667589416027618310473741446995765810560581481129342759510317740454535820720268067530717904599959366948463285659358054787535436163041819729379989425106716355334066436319378146825464751835733189779992327229011818117213374535531347093464087629710319264375845516312612698702216243648082510936025043576584843834804747765233383333061396026504712817247075566301726423797329180139440998085875538237738208646915394840937044916511614152580727963993167487552358375969485685255703344704750130934128294977111467869786314573152573779886454293475086152668777456427861191530690535767717689120233740669938167613901777475878327248487967324812564625695971056932457905272631823154290284870002037529573829882289538201076371844346937622284324537099635404200131403093053412902151897307532149922626363753290685203074155436523023497370278690790494829176744658601584804641688848099043374060009997658900062843477301442806390454771634739724960743258003188562652813205578144639489135845650533838127791284720008742118211180730373495716808617908150108309391656933075465030715515944808250977877509334644775977903048988397067960483009412277266466785181514962508699679585998320063090428458886324086010564314648477487855799002847252905970132267733168031002137240858858575381215719252906739411922510104043236102482477749282740853168377972667180895400799972012678269308558646554331141755758282149413943919793007450153970549003998412829227458322123435699316542198562677287713425091372900882293313460615150095204433851060263405711746406190272908134116885923564828145006594812859712990907791950839417603245959269150639732007029833055793284978367184013312871887302994729882690093184810079224011333024076135166563914645066159207276714624125863579065752625228139695070852910023602631549608008768238440235012427984737606623609715887767606478504947378385209330086426495037988828359518031575857163263356413907935481265178951782223080449577027412676764219384562138182167442255640888678372212492019397464681234354994116112667216523309849334034648184530825560335455945864314082984451859996875798019501971770707336188656730323138550133391153476510182392962433219983835486554898607952804821168765471066806960921379035309766101932903068106335115426048428170785651281918821843745215198065777431376025889500184748293296843658493191650047805768569257495982512211389945629675263579320580812165197191655203984556990019844507029818497470184744970300555537202022066856478047241936212078371700002676830123663706607455977326643023210719644498673274899663896926818834954857696040297642397985687934363857450100609064165238598303669999259600000362750019809274483817404449868435341726196413214796256977628310567467719479235268368650089766402096538680727921872283178131636345416109798271823305747457438359086967902367945278703968787744119004233998500644175955624344187654484677636351973726858039683366527832023256173758007089992033764858900355736268722648679678187969440593719020932834547900572674285820635211927033487201102140035484512313202228782372959887659091831667080842934520197485526869034367779792513907154564628426490267797344806357464258159736609717009377382758758933614028257661798525975689858977570160161697365800960826008376460207145459545464602095096810922337102794682377202757315824491152869342815283471918321669817768041052840524047551854535271809595337008560194004045585425000548876462218605638707577658416562789412130967930654770021976581186382913681360833265076102653969126389058268146655109886801368162160679006938674219872237114978410743906658871953518851933741390423101441235746872726077011343177566684760627361145668738121383919540908446880399393829542441373073455136845161978592247898217436215890367930544770600041041371889821129521153920844610664450863555698010404373380831464776639342090621985008750138957686582944953211811060486492426804479978473801881663184275624527872966552273190500639891939438538494869743447912028551201043766078113961313931666587228239003923588527165987677698722193336837112984921051321775244565902186382544599675948623815101894010355599880942577428831997547347468992184873627851693954104157900094461539998237483459726069260899107915679697844182078910556200823615239703511822380439719014459007335582181014295402986695146729741898568899159480753805303174127263827037160611037206626279193546338964771998170013103776225009741340878928477504540991422001179546833240271645210636044924071342309082463940726264675918367781981193820181815230901633417992901805129809135236755401176212904407481036818960575647186400612180285657970439663705317775865333256148011929603265334544916059174506136070806424755812118983918796405722881605033083977410024796720514761314335654191043380300008932123219410772261623503109937595139338028414694580547532939956597854810713222284692157386616298340811472642850092800942212105320952517734167852233510429526378924635750246825210756584891965796639155414985948265199572997644746346802623834798872170004824238777086344108782897846381210338718907478420801303048131093509551226521436896666963673608011544668054038468491833196330978457091656883324965447291190507409832642317701810192282317206016489253344629357180688286394283855279326969397088385639894936525058591566494435856148850456170821899808450304395944295044918215031462371996086437674692516098227953106074177121280322276919320433502125646840841043990667847584332846021265314693063124602657252590450400657442549331094281159676346106102965231967240977192155316340203014214485042719910401181962238658736938314628192521058823204556452677377114179650119388036335312005378312211981984890831518129411568477137316130134212000880357682115072464393517428638500121224089149511149405836145062631491577226903418240554438681201636704574372953899677006446813534089723076844007908118222058031336649536411714040882752878091207652290551904085173018362657613937744297870332775537078466723840549018483862116981332416883245284642022185076027241462550409472456197062532411552177303491135347306204838400493178405747387020313734907097684069705733530897340246347838829439566165378656614449609625453729463606089192601253321354600633626651819724598039480700324237638358777784720438665798658932858245423366261259611273025094931217674650229872300104284549847537026591815313317603719109721236184208348121902885164181583481599818382762518146486716336928527359229860655763502769228781434625385366416212399319950491700425681107880861441434027120915601412327952161140319201366092970542524087795028336359869890001875690427577220995466425363689211761003093092475117912843702266347625665378655413744462250765934656107232430761617785144273578539339330758711691018499745009467266022142196891879845448377363244137744156148746358020371699722932116417602525715403380313338700131505883593103933121382544674763916148696312334967990445132925998781453523740616860432403736161115827591970157560116273657700856170547536844303918029792862098801447077392826832847818632562631218835089618067374833356955285337669629028135249230923663185729498246212341445510889593201953221741572914345273301700120343298565779723859486740010241332761266948499090273201030498058318490793340935300557589849447901164951297024890156582311135486379736419339260795952871515007634124998232047441796724752932966039636222511185242370518301957029434460908170093828494336984011318947921968974176065572524818228371694107307326256247599703439372736347457190129306325800774839426509159621867316354725137767292590373241576613289059327329226654664730647256048581667927651738487223571537281363994973994159143280610856935246721746331848564440917938282060871854171574140138514369004641418291645860098421148182600272394699567025362636598619229309910588594465734718552985494677404692616725742097216659499888789203754000517549421448944897837356897945946002081771082608988214939183627958549185364006145909238620916844142110781424163218252226979175175504142261895023645675841636767001070572793293722822744251923226725776144440912713852147682124654384660806987211076831095401485882977086644800767227329089271357813850566681916421636902443460752316636413123569080378905263006416784680349524253206630250739389229654234713573520178783575695128708947828391433156352352234799683645976701867819948195818245522205796298344447586338112480370299442542168902568406265375132874073590794525575177876406586509206040790674963160296254195688213655015403766454175741326102495354478554111204116637000197780501772020875897416709028407044513264784425608008025147522539117107194626110700567234338925488887482014591684151745944840374538551368992211544821684925206628367686040250505406311784161490725559563207026878656556349383599147280751123964484729376353959339789968320402518786540690870822730612466533448657306133884975075626338243467491875825407523274846061554561306358938564511903035159210630787833333682895376609924900630619861016205100674897490312712136126932721654614009370240258525346473955203643240906799861797584753472968689543972297754373622819891338565647330932861484255141330165385414018351491144176819509225309466898963147896647403616815733747738903623358298205511040239000862236122280885934584047647973232050146406835956543958443219522042728545736590494632597745634121890424633762505029188015016039116627395479709550700429101122615952023210397125428721874775595383525989421776728946083137149665580620892661252410841788585782377251373267350689352047369072327056635221176352009520465083608748591854984121878919099355801234332794323245680177384759757227809542691205923056798200145438656208284420882282654010374730748576574663372333025476521062858739632715686467219177143880271048948001606711092470777941551314433109908113446793127017151198688108120167793143060801907479072258014421999650251837879956209006602755837490463124208071039486769366774780590611795675636580843647387713353448268279723366398694698361647224950165205708992141635361496187954325915091192233803347993399129648615503026086491440044261661894138500354848168905075016063862295859895702261792321245900688370546286757181411070480960703478370125732021566941161451406376977193358039825530446730994759871068748044183589740854598070247557511941760163999710256712802664502479282020501619245854517238323470081992421662269598867162860398568576461860786576647008135784103914707897379017520321969880090219374403227805773757617677615715600373627551539655829897831562444487966319941448576093526549963302373161436045435834688355706743860598181311874505988281588052421031305345624442026473225485329583816816629558220121686336634032306848320249874816003369447340452118961276878340945131594317835407704037488466503313982198313082126452725995753178461493546857427477738092506714306793395740727793620706652570724268626700741285079977369360272096214709638024069798263804037994160550486299448614051906887973326117548930099086095010842613218865723738286666907573193358008063944220252085768268558140342646345103034991083841340697358291215969343613168099892681833790779327555224469702403216239176274318756753951264446425403443748182986655743727183232187937647060690212193407717434015798641208008329489122149212794728114189326909341648555285089839854357713002936054152164617522962398159421653659883284203318338552387857919256700569346900844994146548268759962051736759140442404370880495509134340541357702972608080218445395712985926456743155486696539693155915172711523737475887038075752573117012675587029149555237130192271495774206692274221255393089739912761378617640547786130667245055380781627942878144277716439782067148591949594139009140505234717796964626789310944378509828754152733697474646624887576676111747150852946969628011973659495503874665382903881730711707842915840810161503940679508049220335468030427709901901724334003048186067272632059652678955222005372567127502552940403282472977323826725080348986531930491390461941621244047585210559068378638671602243635939682055061545367857675251704332788126143122276528671110723446070693185228970139701596464596109950788017193973475204154977155792301094501502918811280355977675322426611355023561003958400515223881191637805195660641372891729642258311374828204317429376773415017496244596001663174519424937623269200482342314656081623318607445529155524869732354895877018825674217216147262870776640625609076714611465130700329571437193274810543875635432252283398551197737739954543705948853615469387868372630843954441783226267160315618723506726158811796227238533969702040264528789440118662152386105772509970712734101504731285678042634577884487144970780195453826675973332597362018611882818245979091219748699828638782361120736542973821148923598849292342377236922278322436374046239727596695334038398292066498426185315621630235162060698628013717057137225259813311357700074796252307118801737544217052246781311233897433132952437393680622811165606970210189262734722797442447087853574209622290128504275290619763285907121904137504169929960240773474610396556624083393594678154053305893353358288362526547355315117103075568589916216449014703401280876540215655812271412656388245778912571741777168855183204897278655957354037574299462418615656929053875474403423296103212368566501226895399887386841200912253801076481512022675092619475353978705220039446256914545896065177668894436142819344701823711714462418322782204496032168068130614822816179428090994104428363771805715349949666158560735863220197615220661616595422893012827701510440949943900104946476622851004762319187547626395950838424352418600858763685157357797400316571209835740175215470209392527261630068212816438145413414293336202355745617528647109296946286763079115778868130182393401156159807318041807956721971243111203873548986050734818412538303951251214721511055285088793955674562112149409259194605079220388224969313368671615153273954814897758046939336867558990959091019867197980673375389316229286700133213996810107244110114317647485093510571795957127854700814894142339359671294554305092861646422119607007415057590756667188255252940776637794068436024881547674435914725562183485516112593295988235678317174841987534567736154039843933654444049070367097315176954695528782105162334046528430992450222679711822826176186236940255939248487309652045695191842151275008951381756497315807394400170483143910656986697956197430999361265836936885868175302320080844047062023052612144256543054215310756979829518076367697198937852837471791613199043804019169860710559803508091301449379189634705462387113808752286153346951588041498449322575451746973130075778129488912811491257145597940609899080856246788891854676690108589694519789409376683727360681569998927582674822788081765590368525190389923312193479137702229700309674150005089328818963908173946875622362305831091235214166168476226978331354337669158268991979009443210677982425623497222804066295105206726004641648485777315025682635769335101826238515587804684331199627059763154385728293107984065830316569357894946739408731123329073469347016787342906788617220699097249778047399143065870442468229719521997549346011058119374233931547111642877478592344742579869008932067186435898060499713660839345056751698049990027043170837097217839379594536512078911753453279177355969990712545436534738791338314017631018424451099290369567096024077988735072902827000745843270497647254558528465516658438149592990020070198867898938439051008230167790617980630864952708572563486857286597255750691966663593038373025926007672109687018582913023334747387116406935174028795358685610614980465691323044370325871246916673718481868637494960276936882118428436150232077995510329896126286227998569294898943935627807273769290797635956863474700176731345336610986719794894752592013317411471851397717529983962946550300511529968294985997214971818823151776187162380684920526417941669936625478200787657438251808801603168415919071434768871803609245432871969186168328633916720808423905873466824312835065427472965858980218385140542144625144525639809699200525697468626493601981603132595415670943710962161949489887376671582263888818114801257855297253444584868598351429068884913210915594912917269002756875874101088141418596561541287691214420150521271353601243878777071606362570898961567737491003005787190089283407578407426973197688785376784997227948533417145063252028169961765348222494700139360930909301541135707399496926384494986077945826438628227552827595598756433549784376121958041200536329659106552452743734364819953915364158759775917954474900014794227524264487798784238974074632929823487880101357602771831890282974044474787240177599563126479655463156845011470151725238335849916336339290872495200813216682221462680771653152587758813919031668574025237698792008465776251608829701073060786243122563358122299282162501975674900037197401145116893906966720651808658885500543203343376681592149898165240605233702313931679678254986882187184363824510609044471884400000115336406029687957563193108892722727800170650983230493361158715822372840082545533717447200533183301653098271189355094174761059924236986171700102546567034974540320013394949302178861159375231554784602711809160168743169313360855406960187420846355244660600551899287225781355447170991168922657932939518396636018343697360071116959729105594038823287387162089341585477423006199985783041584665987109767737759772516679039582204056048753742206065097582128689083960423037710997700918151525444553178652269921458296921367581594847256893261139672387716692703892502795300879101528668528895212283603541638832724598370099598539832841506586336337873794042154075319160766812371023615882132985323424115330232220408846005242124249586703268935815856391733441312917503473235444712320664602110715716841826537599018282539818243443239086601768823504713997269949237542672953648598805721660003067524783514641561971162745253354220474608940959705155755975461602795990967177976343827090273881744455044983379879168572002415892641934339228977354191332659665293764996453830020257714001659173996132267632665466154561620548823225094682047034546707658527409664651038959791255815233476098940633711722448832054455427036776172001006670819209101541533293967841462411315269947614126761001285996788689177251695620607090629355133112794750194870644826906309732179407777212167513258766763661540402117499480008015343157950353117382542678945900548002460091709470129211479269825047020453381115828431958864278922988270409825294587570367165039168216499794095706215658639862765343315939089147585490772701434158536265483482395681267999679406170950399742237287853688912194641420249164882000409741245862888376878036066431063020114654833986650661380201764302164662485114893558436609879450640064561939001432865339060681035185316948335628548601690534333381111136381500232508444071254023569996886406808718941632324493233957867797862227496523060057369904136082929972693755309595388218523755224786023569571613654068414800455407648061212336130724129152911542592049910207430021269167113521861636570699259489623964335424965895581116498845679273216883349271473766048562973068124690744937059427767294153325068005476560661622098078252154856069444974938787774951111627663074131042462384203207027867186112554211745476417819405275679772632714893612032921788096654802852695864678266612750131079397232641443738525864680682350266168523839829564533552633918010516128247074140589887845819816668332764136369488566069501542783597870909485101222625323237455335080379761889805091473531099079455871619108776394903213687469448179612998460790469201634067962076047213074849077066739895290561878166939863758729430781018059732262618611559406607321721051916770706192733179111142819629907741061177973525073921579499536691548574006002802853636031983381431246214172410295044329948248807749475276127631140004298488930817983285054663451601309479826241610154093171462548362657125623595971856240217237860648183424597801007226234187731633392577737499915532781125630593506033820255890452734596887636401578895379013175248709597010512582312039230457931581814007230995986779045791848989221299136894283148314905342187045151813853745218757419083651195890949690439769722225496645848916206037829422192741418413089790885042515475026553799519085966785547350315310855180805074630208216071317912460708989804151866793056676713729396954685577894764463890363847211256084587010382351575207238523802149652709122958233502734438406269648713356444081102574817858719974843577288513697101725174139241725121015905366026756576937225731907738221549023855386924907319569283792811370558973777694392638680055934515696152700049977801860168450175136817202634620040001338890987076712521070405219327970786059529014047842437164022396100066589796899221752830620183183206521672166110173218766744633092453733839288306558260907574229212282797615639013675932853716449398061392385108789581574824530644096251665244788791661921953209181017390115698934174338924864640678174509406392360989228339330883293962127618662290385127132180078689795922540841475271678690717612563221389003516449247553789959558100131971190352539724983299324699561525205875148470886819024939098014107957850113095732762856327587661905094352506172534967278926828236711899761384266156260758524541690705548862833920263365442993072801880520150257010313245485051509477279334065652320176034483592136555827346656025303272728389359569263771175532869277663676063183909468824307265955790225191242840385411042915772946158408523046890665493421333783536722110841648248045215548245010731099313256162307219935583577045178021568024341954615591980047601740543223744067362395579571691122408468760887448176740908582337992084261681040334898543610403965390508534082124489248091291881839528405343669902467161812402227472281377467830156092563430634249328668464259627482386590186892628877851115849627684433474654858674954264254526174695776772053418643404544140709364128358177810561981174846794420666325717562905557640731366409776614716991499068103452428338393232534317917039197619684849523683521478898901925609807789029166465358673430491287070563492651011722367314989163445044433771385207991982686301267467083999131999939201330403243363228988051700556621662772101628722360287152515685178983163047265030566815390504871859134444745342538278441810479849990060311543277723847693654329296513352564030464961899169586205739463722195468186506146805359437548968331992269363246280773300724550787144781020045233396701764017137689093282498631454898915110750094639222728622998210581948627713996598396943299026518617966456058675433847637478064641502930646439376055226656585253305885684766469021726109259021515165842169628883638787072773612304736959469675553044055979715376953599491747670991344536645109324756062260421042636682082266993062493464070005903472645827265623886505194259271596154580565987451988653978620486976314195957326689825343598387144292500748262848634122749777135008257644056397048612753845583694559804989443587436540347066892098197054876339782828284550678748684280229371090801339288209326193833219233528339992640525378533035136644255154269760199121608835343220985691680031520867899434804439524749053739866783296179319405764721493850410421370777807043431108112226969592765399706433949248694961980357320253765398503393785596389676481994949178969774475012820155976122712755210420300009114981280527392395737707202965479927466354934408770617838964985599238021504762287027525851923249089927293452919540223878481978932567946337181300782535385866720104746116269691231685094200742970560828910335463931771587412772098627608511603103851348345688476326527013528318653228077295607449747664405720593069262522080148738203961850028014510362203491732759410787542000125485820670465464848032616632653474143678153263611938499704269113596648333007379225192351900248395629533829453089468233243639405577752985432375202979886339783856447724364469819708492778267688139361909202563882764567285076748281363260576388987948762126003437544147285669718782916096016337145286307480363654201246625458667735874048345273090788656545963456810858727548600828678870648789829886120754943434865549349255467134271567383424099091661677375319803150161910465204561194393854718402723024248029267195293000173182538749544732964213780939427188822108104655357854123712236713934298838161701520179291963506533090161339651519582589117718379872594365584959524146818868154503885322040235346830659400747949038018743101658898553295732805952680589217256107758460048762301880031852146612904084638758013062980825762871151942493170000898193842472739450220014426768678762817382479137348694638214750157245459253830837710025564979365461452918056981273175172190014075668306204160397196284723261108160434854394398449136140821778797400832886345327509574456685228560788548405319686730009271636707692362194676175468203674991629096251456203492896021596499835751628766019723782781342159813085935906527497160466006619019092077764839487485011579066670969131733046063315352144738420823654573833123626393179511562928060879286327927327052952291989593378566024346199208673713575494181862467134798275654275370176322448682229973127465792058488067253411660100863935243144510031905206737332758960310735936470998588947630701122736717194337718784037904250442486519516909290445955185060967779497834073250385717120826733465347293468208139264423560849096269051668970600092590585481813577782376692478902217632545730603676701541985278216899850393610553203847727290272996666645858666274022238588924728593137549656921451353979634720998579790620114009887149727773160060301575532149323268314289137677367697503523189337133782323486249501446852381678841490846246219597685645733377294149258321032370367729686782046371711243827817838857079985218489684146705339337762496148473851790438048099732235164781132952474224723125528219203352503605416295154976996527664015537971143291034965330254477340525241323288809833151397701297754076151002806998473345048834783476839208717400180388171065318660806183655161262673148528553773282163582259947105856552871177796926229127232879949070126295208196991414350596569413834855059623124650896949711735186250952973480510673986558657452821393824720472607961880180704684817633219841649080428320521805654993760086399769312447357429956127697660135226952669580928408864962570378612865259520102623072875270165494913732866228338358814698772190485276562522482313270629770549763139685745383312854565548010136374529203988011345655361136628649121675363543457065512357729644235530502542822082601526777488261679837162273545344522122937879040488601726709216742508758457954633174648316979542602851455698272289142962712910080814311571134238628252400004857768295156647781751956364407782392036109989459746041509164144750198322867674093000699900611377984009289512611841029686190101042687858924587647020363884997775240748245219700468236875841203696846430080893555263093708119886521804072288263478010079027373887320716318486000231652059257636502235660691021992944138202250120355778123050665400280443107254499860586693229144342121104862668372026693349288925107556361363846512983664180583380767821076461601474253597964502818881420342155071760887658625486942454297181167576770558267494705302533307866247782395941241986391721934694727833168193737267298542868895330463513654627876763623471715214795222214286587049711445874548098898958870653886446830734441372613382195962643828943517429254713121881294129101602865578153313873327582067319356859168762444491622298295915408600741303772776631716326160706273978693494218077951397444126167538226315682970552251089902285649501548957826850006670729369626241297284807356717568559864274653370254836052717981799109488268286935167364029466619179964598239381800064802233906599636024949477445222832151033780159713169681403601980633444905431707025578865634646957843479339338158436007491925002819251212229892438140511655397207490819166704517193979315658770624055367885694332629222569239183010540678109661094451650950835155911195652374331070831450129351153353477081089844904971929263902011253669359426796522546742258505139075132292583361308061296110892760982155414226302687472908631842745231654965030426212611724776636636473379700564371410932372265106523740489176887237718548496682768624705784902526728865196947848534313448856539357284993186455969648376315315725767950199064622663747697634615372512480517192465277289373580534945984841641279194795843636996264497351453060705733683201042828237768945676364881983838711462677761919179188590571514113001724511508781593083093932815178668382263871221891854256875612226261365110091056382504600110726766620037614399966019959560940900205508207794976693568220462050859038163743926231265104048807460353586855959846617188946948864744134980522467755867650111642970898195036017155872888762366707991598724463758340522141612420223964270826848442352126078366011852160785287940466187961210316871185362303273832885995101024367622077474317975626564434643638430412787341671876510523633549759061458784145096545598300900681592941146434124308043510314940386582145292384795695532087163691129483684247548351307086578328258344783253023121569901566413720146486872467917765897949824652083069498040961561638676401349272714477320546229067397191478756733325840463934864981829251489538345867013639503348231793597428437063110747097631180034368378057158971156214102075535016576170257578509322772521976065511300743118543488845876515149425494435299415777674849139909865721263501213208297142686019941424352129690074798649375720316575025794921987954181529162992166706222569179985444860099879371577223093184905605641610720639546451685779632101845083871493207961258294704787354236662476168841379183519029425965075055003928216516797088270445825013772740973724202053734251804377802187702067122687156837529066983727553625165415989364256078401875428836701310966074566260123816007212986788839403507153966188944676002669793883353814290054895248142482278108337385425702780393099063338363217970993914857728239061507442747502577747610299739878301094271751398684753252295930096019477845212657784512627662683488020258748605956778815004408530844278504506935800337646917732596292385870837326248582141215965694333392990075167267983919399682582535311224099853902121885133700781292630575054810885747353146285765841205682597292458329299343273501104302332582939198023418983986122424124439857391347258718787538297343351999986639019823258948086222762611297282792917790495638545675283796559803344318084698654556065411100774193113520198048251027573077905155303360714951065456727945847875609371270553335044752058615364198213934181013755392726228461059579789825924961799787568426132959352800487688717268064419260359291400102558746554403106910966627668601647495518476271972466858959043330571096105440936385082443474447016772288532428902783623834289974995553059105841058608896336541505073727929873729500442057597705238962056096827566928606485459283343135064685295248537417124768600010820914378149682017666621782725718957394847542447556053440918306310923483158234625873885807857231882450647197581913927434328959193863786597546766966926597880838798256612402862811074653683661679666565531926933060940764141354501684291685888585262901716453050333599391433569718022921234758093561781874206534182491771338847052751641977127246456568600667560578756099824232138179483342724429264564648801296506441202893230117405744520605136115428625717903568239142546920789685179085093480396734514922574788390009587302001545007521202124638264553171051883738176573020865851516275255480194194917700166256047857788405412732460730910211554005027373998268603545289324077993351966718428899613683715755005872767348621547967224726388895806146086375400799069088950820274791101037674210461658212504872009714478613554481580907147556832714103637865481153323882145027481586511441832450383476145070742245852351594679720526266331144729522334136143169771647423286344805485498505770128744563585873978510965981745379920787708648305691771801169516060919987462013183182266349348233990248353372317848456266148254350705537266891114287560727439264772761946188624146937037238895791509637163081237176117352003040580776412159341064559202391528930250099178095237673966393279032734593247970378344481077113690980967778737878744450112112145325271705735366090384145473093868332445823389934030158025342217253291252606490511039353709947270926692065893718531155940613463495442611234708650913747427307205509557111396105218402616018179946786949451458529890992495092696586734117354874008205243536917546839908032042100839216577303532832159587105387389166588052975313426109324323985731487317414339625407802310026982094544524729323954634019433461603110887165830000807188879202529434451942620360193075289565392355932809213364076522592457902197660755573086958586891356570451033708139166060780898790113349514319284703670946767432626271795483989694924025727968567155612424455604550079043343490757294030570077459419239385287609229042097456773427704622079208509876311960841194362234843207833658319143882844538345622343915988436885006391928337076678039076471404382285493878469186325747327045952746805239740291528350626723555237332014360078418640152486526619076578298876120213320681351097691982378734441297521847852593613499440033808311009050345543477646063314661122212699237721432108226775548096339537015085361418867123230802453074617604180655011773885982031975676995286783357141265043882551825638182190597363990269117803073365756311965414507497649371665502979459377296351519312102142340847024803546383038250221163310346181856668329345622440972764871350027401572158672244419696187024807571335522911079092773091065903580598618075252652661149550159388048951308983559071042619738250823858747322675936080537192502552352112492957654625737571879101420217625233418244822721168197115770875386892322023669064558211736567329536755433047042885253206945974735966096699048440378130063121674170936621817137620644573796194608871877169093593568509550669959556350600705108771389364656282608665270657780373073978608141454378194102707515488524067318043784141078323194836889793530224576413121089680018459136968099628843892055959833915180075445114303627061211334514848818228145292337648831013949560512250413956127601491384154926023646338992522383509868820073169451264441368097862678112689031462262139013005086257145064314995400034621434737483629445331823794737237566248516159847486176738343534549385987461925829286909993311817200846537941739985312461143967185735138977399862144579016312481968232551917035669721811681348260213375884366497296312994909200002040778045468364056413870967736789284952157245796224126670683443628876235809844554443892676614218128821789912439049399225317296269143908435701925530238921833352246304773654646999100725788810735605595452904737752889011119614520221396027478604533332493969389556237550254350984075968369538956310756067692534099980547032141085396704143486470479854876414690421254924532254449694488236374076588880981490319443884101195836294637596789823873557644437551278819358864703915533701832775090917033558389115521216335188534973761699282544526275311425322151120036021655160597448198400150414557319948120184034028283042703736850213810249736237628935772899702903035130989725128328282124758060729116411022290075767572789435901355873968982327233873304836865620530429051104105689503002064932595910245776691897865124855341958205962061514789308797971156197213512373902303255353803165079240030224279907473050982621264922529044428265743753592978268890391546557726324438106383109817075064413280371607730690986059222400098491414873484455315432569662533497870773421547692392215596391719583955753797596326057242014485278404801169131009585524801420804360788817812552277843871217884576870965631140566243198551978431480851682825465013837767851167111621341191521630803009642827597815350461179696989842211701353089934233377383601044764692486914879766733469412113634989286624753846764480226271475803225979916406023831101771431421606414241018639809295870389028573987965088794863085335936311668959147990074883382299073272478577840648297546217751427556121591737351953921213877166040921318396973581703722131779373340266370505873425725239951076229974888792605027537168928168942608249289436350217131648400254769407497938451458889997758705679175389548090827999352859432867609152373283586645906600269613494148533176575992614707567046690215530012140554761703210338153752174867448930568330476066337764057822058514505850687171938948910147239124176854852269437804494884228099589729260838160951910278140746929346309926696910160228111580524191570239445022660099127567638069785246493001551198386926004061928630841183666266343256537824700782945837668896916208407920711169732376025150408588131289661537230163116258952105334840321384023739603458087612055500262763891288313874486797934438705221753921844760159808327253179535375642504864391240734725218374032129256284171863929938280751909749207879457052057804698102621874469679582712261793571026036169086167160619827587897495728115584495212182318068246030523187323455687462242009850175738842487820030644954094679060078464568849054676158887298424184208045842248761589174152188764330804122556076989817032728616473563773294206288427211378551880439769270477853984345121611637726076095856844027230841931173762418043700147373124747626787979705491686486456651908411648556421454083924128071264726648357376781686950329619348019480835789761210475947971606121912967620672355210610501162216496315352040245674531399737851857601262249885224904443643252970356604728605804236313865294743179740479432571392439134879905866952827801411529922870658360534083870031504010561270355295633896059392260014114596150295186397011952169200141062340255845965404693396963008789623748092634650466002390994166094170253580883847139245894495263235861560817850519119762209742841134970838751054810024305754651781533800161018766493893662820031708151786401351642593352524929117909208112091664050404398482612399740259194815850404322382714999426958283806895365470658978241773865588249921363359352468694154282384106380340420910195987351343967933174398419940278828624668237853276170484049912629351384415867251390330339630365839568938928773000512813740218678904539726044060839173044813394380722624704156736917231371902124771682489732458224880094013663183072199460246157293785344760304754032945183157320761272523962922226220327665217726711288989623509127430989922877111494109375290654980599084142341073010400440167832049449296245285499563447006046723409253223694665957170153937104640897811292287464138196502506363814986491568990614444072464398900375600593003787288424359140282946518563910003677633857898152786899204846845039424022604403030772056556223661025094732630439967768563060137064147556178662454436448329723740037732924030817965697369435146600232954546963874962013825475308341748545283595002171735940942559381172228902166069870646346760205913016949623328518043483768558698773720595331246605842190099507180399543102711063277492616252412330402983860024093908031675676727511307289681676062148493738823113855019369228852223272241739347204034453270364069667952548318634566253619448610776729175466723815715730535124743263206280796895818790603090010189023691632802707209867470258524136258833610327487526086982689014799627051894310650048833490472154835114457958791634110965518199690617849179184750092034119671386810949928389175376632155309973823418063661948597903751775132757669695555134280268219143485006888094908168670993649125945414064388506337086861335268462120858766572705692719742046060071166356449236567354708106805771434711772948152262499706056012267585120087522620325228357470985953298010615398167406019114051098139268198372307972121026105638710968615966584742206030873119068870973715269653903333698023571223432070285541693146808930981541429086368652361006069734108575250242350000462853355490521831581044722777813491992437898676643812665186564003733986172592366104308449817829854372381473266612316517803037315663660233981978390618494072868839759582095081023529147184309799144279470929550628279573765596267410672100729367024751057209960727775989972048372539289846887471128488406037485795901389889707848708705328836819422235959199316920411879596749605255351353119231047610024964938509855452318152137583957002254936803245895015590707419814296805813247590279851385485044779010513868613082935399346371917971653415925745292674755392156989853983776686181854315498015499056044811339622995044115881219214071567841327972854892787961218756376962004828280738097812943403684809059011463610809542153269718607544263834829282605160843025809181728575283052967219659601822540116490840123489243679426266554823264113209365501825204673114530036471481500744944243998540172864953133165003656994916555119867546328189114141294736648541380558870900198002695088463659269635716879719790164456253505468493308774603210460301955492035625984903018790323373461331526944520411088025842149373518820922608460651204307097795014045546966816936797251603943141971175817589936763199857867662149678977059701637699845822327601474574905802004538567360460943722205666470046828724360695523469765598775932390576873372902648940807328927874275421499696177791241445654754643599263467552402544123078185707070628807304875298979703966871955813535276681820949662856374155276537820758040829797257952344082179472637296799090080334284812666981604938495993200079194064486459492877636027095534763020667744373161720792409490212577745034689045949470043941512280592450428087896473069100616495872360917344532796027489071650866495642886919776230152295404845873788841918466519738737337242396656103701398523021746062247963253528597256819299435476605194628969454166815086812414891491497320318243452618891087285412514979551306432068955671848545777875518021087924351486490837871779341358314787728675708452362368853422762212650378338310814927783438599804891698178813586817671883544269392176768758426099781175103903870776730964293227408225152340007296928494998332337745415136179017397264048104152852204573220215942949115540340193003653028870921096206473058709039369266517551753757007136837429384544530208435378759713084991446989609527670777522177939427783839356988933029798306083400550271209661136681692463653519220758053032768418518063558199990035992343029544183757065261541659115646736559475730915723413674185898831149650121887477147246914756810409640755874303546028613436802778464379010488375505230952450868788115673748686922946255267541373386103319811422718496649590090581120413554247889342946780264879834215517968988672546512974072352095937553607824885342621698570109938515882202983467720471250106051551951199007334247252265415021465397998896376802372859688309539559224265330047770921591136842807204112771355606653337630969131098199089371668079762977449429622300750150931481595541995503505908535500745386989049798308229444746174718951457554705554790112456841273009341964884798948651966993807209632522881928662306948510929256178586627012075586518698167389060684279468535973101242989082079692754673621915929520367882399955101320388842710155067790397737501064857889572539698638492005335425624870681124424799202973820337844732563850918230472106753336896654478423704817803697690634247641594444772435333282129649354232757094330452412315305780266358583386125324399207430836652190126159633657802195243757714205139118024103631643295982985810619226520243747081696497689522523176996436865391630198730521701168142643179835583932986605127835329899107769609986240320339371472603775545917183512988971554996710153667822621743244588210702318630925471133240861149280277409358554425624735592678558357290471468341306653748271236918062220429924656584627952432781878455636289638996681767105015098343715150554900449753812389058119124965205809019188998199759081613525220855905347589488443908632024032235627485816152665041854638046596706185921860995660412220854956853330043016651499859691391328803207266835208524894855112591136906191618396441197925847870582701337767185733849219610801331859527443320006772981730176556362820589625952703217091226057734804732558572463369441064112010479909210845824428943654751439497050629761486387120943101343747747838339821065508601346735916403595622822492975224947353879414444914893027275166864438836955638985298448579464960934970987015244847037358495643098124900894750094766066480114093061915739070654304876448063168801066965909175453861783307600229638474553912218688062638422486416707795275126600813495480129436020577698202037382942259314201814680934700326698304528850089285025879801206424636421304413977281717788612798303977865292177373786021838881899998675347183328161493695744207354180927692847301646487678626058896476691181243880264430224886269788914856414921107938681604533541628128281829969474579486998958618731650800764294113992443712985049602170482788705737282933644001581210707663745459921655060340932864561251642575089438645846858129938969933928901198418251008408546112512770204259854086169599635990301822675807569824641516502799170649824456481228355270684614897235651474594781368998522034330336095855513512346563136599194636886387599020315678419306527484408376832054618022424901163347134374715612661072480642206392168421186640526313295515379159500680026095003799091742329384462016681612628886425899276174327684237669917198336645247721364371458272894972033047848529218098193910143383097051699655781361894951136601848793016679425140164917122054897631979721193004543990242003222160547924970249001412349219934133191797615609077763213741887430806266453999103812762572898984004702577266840308175905956062697604175191262953279671377552734221224009764213096239674084752981294672196797565782662151091510703910287271094175965370105736666146615672118514391771281607867308878276957874295159178583124876844444132399487032961941619503890966675646997248790829222555931478075659423480006242844143593694324345166937688214675281963130876866183894915727092676126141235402192366794854510437522830093027974149077601063524260161256695401258546866921487498189187214598422506213960727967969612465681272059482375463555667952004463314703753102769642819903961090058667792199161568839079327472374380910291960777900593058188757105081336714168965646643758857703396399963216919562417311860175532124125593217303820064650886883310010071061894989178276171863811150187895439561193544381513764600708584971991779624977734099103290540149850954942899069822642022833507367241845448035258455019038235798535798074969762465494052876078613846547338904559937721519070557658314144905097478175695510702727461174131152072987036023111251079191530871938128734799819696306105910841921284093663462114683990165256547239441013165528313729639480048174830576551355598298804327549193251474153890764291801447800353150219467622717023130224373314724327740420633927380081439994941582492801139805368074137272392348825272988062668153328189675458592164508186962618311206053562177425704729608696573939154057023933550597149282980766311835338464335622291752277528800611660067858181896050408981159065791439673027721501199503693863446566598354484800973607346862479383896418294435051197522466245890273078553339615900123370329653199420928493747436548735618053448983097819576358384089122648998680307392477050345748070685604909101889926338464853085919008493139488794572393307993670422712849644474725341643423408177333519031163454022004666595959058001142375181879807126163409745600411088019384628741462911674233922647545729686206504152412539371748371100536676466961747628434957904886000909722684897149318438832918379434628867689105933960563602340680415976212047135972687118520717218211934686334714084407981612211587293245146173328455022215967581221246305872307328081530395418648655995718037003124241807868692156366135035243561243372671695666695247357304286072806201178327001705244893581508558236705393831863063961817354850224848314640322803432039104519772918466924301993973888480031314240522758308912048316005309407164548368192716523119226702408386215213114647034098869589591814315981816356520518222002362058575072331276360189401181585385337458251577151603215654532095025150223527512067904032670488621414601301492460306842466396833605800120672148568611678783241718766542830038767102210240049721816816809986264993435827679542110247631561407122684256170961250457831979252177968401982287471106216356774037107641625293463140363935193537619258943406090334165747859276629158997435345264159624098730457490849403717895805148753489613080385964191875910344589224589860135400070529262226186576236658624510994409993391904128377009754836434737213324295074475123409264065446519512411314214956381957508469660299485210902244584773888763406732777091637698392844290686211269980530556690016267622888107280871532798153879549394430389007722003630743572942584606063052225018000119851192540470143753321017193998426272131132024999681802832997154572344019143008814465431583729806600508367284070528566190990711418468369265918571450225130104976403911326240419269597188114338612173483481400658522319946849709285575245419320966776103642435732156728896840854585685675863773976842166498353308440067668495747003233585510971840312752547435658953011590390979803123900570144613544652843665613624144229483437359660097128418056219771608451451235776779094438838232594093291873395347284642499203038535238677004385869958477310779136558504809447029959914617349544902882991312450433497826106229682556220806519870352260948759648311171084650716469842959080773873114954095604013428990532637997721613908719957010926299930032132402033498661824808743724269087200040960534585371890350952136227792630355581285702328249502761644246812166643501649838775972302288747554760908307819234104977329073616835469730020606453981726997962003544951949097523442153932340365058249505463346664522267845069235913614964937003584572606958864535224098509389673002613951017490441252133695533816149746998428391168943349091528797353905682670244577000964809950829604377722949646541029722174304743642371578798529506223195200760478528958833361320634511699967540747704331256419308914202756884881931902085394709519752483232633373936449654625058982315815414574035941377143694126977929167788469694823694445236956499500719135169782019659441119557362993144942754512710935518560213771295281562977928358315062831568962470209268195202846990184957494766284153360077270870303330870937975394981576377514891039209435666993691053001768192613589555950324405036963797781287933027313332418771074551340280244212539804536844817661852315602096423128814827102878126924645414901374917023855513083686645947191161073961930893456792032881972091493411682020457022611996661147072242794545209606393478702261662377801375928646212526912660487856829441981627594336039613801648421346506418419890954462853394899825631568426965857390476918398070147833132363266356651179605118892662965639552991202263910426842015886636674160659696984784982407217919373865015252001637536686612226531334758791666234939548988368290780440633017930327174960161391247969117946909999331785935815835829692836144302241315586539402527383401274567183382564187803414666389316704282731789078385543952338465473436214022153591250543872241343096030427109307939771491448122209817633244531022497918836797202504335371978934977722219601719540827000678619032731851510095404307350247398816977959819233751090925922606538200301069318654028572070738224589924755886013952061582490019942689592911362282345604645832600256821848839431663480191016671629235297734572468470680364728468862570568166738396300295739074210972688656868597492060215258588834386035999850380019159971813047646956540938309303251605433628397553624851870687494844839015265378280180768923062196681144022742534800057069061126780339464916196790137478753925537082213970904450130437558501961166053724628065834288052499705578199637478665625316449588431662073011926786559618358196723722458149431193264890817834494999873433123646221347701625982467269660481293920461600868171193402082550367027865491170258878828257881583873565477381588561309128629922147676455599007191666871163062348222780971191069677944631069621861735445672911591127747280353200169206418700752757348429492237383444153617829162376250314810997086681925489368176224421334343717064914753777912191050864518319604753978506678021095442422191618036616940804883162665827548376965433322383560159706409285946255224992303785484307445542508335327496221477602732931796604139577619033045037063794823987190078283368160476996600733639399105408967118945407951572776508417450839307798167146799197377750381769971654416932942143733774991879475827944574781922310946209179048738434274436873773432187936846864440981525721850982068722310457098148628584337146646521728718225097874133183252987132430028853137556067229972785043692198809732871498079975383180799139386686642145048309189418134476711102426779926481116901741295853817114374093458137670982385185014109532816911878486556528108840724087919092743468682529529135878562687663034354606977657420782490855975711238721481351297632992416175649958735060511820155219173141839961909138365462903820696247536721063261743136824696682365436045784016093654855613908117687064161500260860105113194520787839817140203566294510299911399326691585456621312875616435446595772528209645311334159893106551463652954498466626190315870953295173255885821679385603058563483716812202093338143367812191350478089022673982466596815265827408175473539573861397001920140026155549765551827674931187378109946240582187238942899455478784358032598539504642393302252458926114505398494790932193474075501449558635748035084678349483410396987871843237669466240531642543836635060752005251787633482824750553061519239281343177788256458764111538617812290577993768325656445460185731288104871082448490557566861412104994793355434461846221838613602967056880865210430489733707651990845678652514513974301081223206991284590090199923687044269909811845347897677565333085802933681371638471230815347075417125882505931408691585069804169792333151311866944150863234915513733584936147454983442037640157726972614658649981234633157132937083231413885106685810900736798104828442744280472324370381211877521433746816436516890818002423076022234748982069758706787800478697862204680023827220334624949860913321772587514996323521809871899521555355190337869678325720486020231202703880394882333992287691409676057406238610438520801194579853505007363897523118567586488241786632351245697741109482459144593592799773901633604789246104173147849815585428550634699604515177870646558326654006315958230782265202076464339061739378691613874086942964922550575919338572291850770542561840171678194568201270400841246516657654804271792866108627513988105415679321512935756415020527473923542579385357941322572733185311683915403522030551524767430071637896690057911754880324651787057693905006037087435774105330807925091343154669101950890943320763805925191787720387745568170830371172664904347864727088262955766399709712077274746286908572591747282818770466372847262362525867487742930135832816534474728948146262655810667202616535857908191510183212407843856335296667647434201092888963254577876809269613180964339933222734719570615061759356070649512027295511812326484476693022822963104808011284822405069201382983052894942316536842758363350546813489225185360407469903761676174596761603571115475480031950214466767471271323539964505253988803247696794145754627968002242805003872533859784827480191127794373189205444670964446401950060395851710198770969568156163376739554634505860503632697965117407549562637364715851084542985485717474575884203824513656028663049155963993566235594543669724981768313466562665483024508842997307120472560532336334692814345909864099057835158806700602862016963204731385287486496321073703192116594341579756976263291543149703913087298349087531354082380911382428588157284458176177609503713428957634422682869740211167283844333624123666178469066880782208098428099298208109112782956807546260120888980199755998209827939512032101287046118469226138218054280800150873121704584781978650332947983874491595247701125552340601391325002009877736407536988239065612612765136544259955894361025247304341226846693318308415072913179271223179402636500213710553171120635114146538576049561183709015933765419507594538193702053021777543489187380760753213569281506767808633226201880469195149743247021343396078018552771009512786132469239086546962232566740028343655915304104027368205353903226201654278030171174266307854123699069597943110935769208579266887281711575708705762960702640533752516954961781491753190447446652717190379832763655124971875150751287593718156291152444932616252902213101521733918729083093207699642578788342749769035086107036949006459100714113942062858413455341922331672845926045622119660420491951655702891135680528413417137490926080066349175845852613172351485118593446694237916073771459796289733930754042603400934136002274032558666504375627314269063701751402744957286001869838605840692615002385062772436965314662536456199763537316777179384934378834459685354614732721727583209877089853699444386846028924808510562663500013206971934187841014006943067270124366001525575640569539560488298271329240359358148459649593598484347643892854915518997077959856189448650954047490158056489314441426488168768554571275604307283641835483838742844620085042608736983913721254620722136096842897519980845473871741853127212012530422242450622773250259681971619205978158971724058709433019009882559675475840480536436710053746727316880848562388128160205035790441840547907016571195097130526118242183662729241271055222314224615475312091044440242296261418680703921914531389095954954897091768030380416526940203853622736672101349916034821182594491695223053334621632409184623482052816399926129790940130096635101836287594648795172830431448299596617363911917107084724253666728714184440568138249195394703817355182009478208003082087784190927889763608584674986663845102944553764982016489330828772452837163579938127450454553657763709737349505270242223029676014682983549592391952932963618683123002276052691578743672585546615779979040391725642661615852563858427602257460311745210108937836228088606219246433340260708822914760775801467458342436483040747373473591238771843227698895455518681077463579274583716558090906328543348943743066296175968696023697460112603908123521844140162003569401521873775241800083696157595176640741534110665124052486459916072154436172469905823880611202354709091510850621944541210654593748765592708380003764676274731082651684422073176682459819335142052720171563163582021253111750794077949975252507244899946287869801270146104417648225749990029604593177984100825523103066151481042576606365522477884459512331802088476300668284198621476723732478733359512182800638001796286735346661167756987450228605949632093827578366155011514636976797578417035921512852151202435757730616313146118155092637737361937825859796694708673883962127982393762052520084082915451408811365081175802341526751446313243237319111586242556935390437728053709165938690720157415205760883706416982194863848398724373098177006705996324732698075774169009861215971373169029600859365948204823415226675874426411737365784787123628996862849669119899858982289249167787737623308495465808379731476984145211931177145056451476165370126794895245880992440779728292214602489281921735663730289497195808402903409249219183935499398612369594543445661979861060098294699510222730733717559436709457140837354071038382239850724266142785444120970620818952203243673481633689273134308919027442694961000850755115143669068098815519939517514126554633080555187397420983276027902619641863811184400336678009735720973408335958013895086493144217007568125287538294516338451207254067849650528129821702981540558956709136023612734080309151229556916630924695698838467933276452257645382641758984628013560982524445155437824726270375467034866436587533302298254329977177649612052756972241162058794664636549447164663034376420369551886814957520102633202793833126254961997978794599336483335455829232828269411028412524686082751900479755229954365307262470149024312369965266926529082779060816601503624597709017952127990909125648685282880887822745511088809194504655628472602104166527927131013042105639690314497105273331774231066235169978645407906854940491165893039240513651927647177324775691424419609643933874802173160747818884981037913624481461238133294150151897721110866133072252718622333328636129070002040339698639582178914574811196703094569933552998112251793369517863831463652448549092961019534699581834592005831786862561102523110080521985204599401669089562822032224722980822052154253608238384418503752725547611795217860004976396566886465696579697019552296827252335632769743014999565767077383853057351072716751338207532313294660046152610289381153026074478075422349675672302684708323150092753280455338595328571380966871098241675711053660266060562445422559028051593733812231491152809557236214040127209746375246759128771504835933765095253091491056428494983664111357209597241917268039911340899268905907620454976188578295650170182684824889444759661983924641830523719886214424476343828193369679816950343945551816505663238402634599573566509750193566009105049503162314551151388628354069821099418422837142953377388474084483726968044717633451501959042033500896356967038273075351828138308523408284470866765907474350119258248865043125626921577872220305359001449283487223250086601908192027493582977343803415735989117855199366186296745880079885879941114449776801815411054898521225348880144720292125929739891019768345709525070919717101452271584137289907925073076998581282800763011881281745459873503875780801876056696843476254549680670379304057444644309509482481354228386293158746021531602738783558906798310854295113785683014844523560037661435153473604417979691439994859642093330493495391086109974935007291239722901984628375536603237371050016621383410185128610712444234780560079811617639327658717452998940403342075551486247401960942269517957461739015970146426556179800380296902224863456258822813601800281577052055460094031078114948801730624364937962049628642477479499129247310483563979720258965089026681355922728244997421788303362407381633507995145501206639028627249696280835221956078439189531563474382699927196477207173148639415165383849278116641872642662551194959540769884055414502591556408830927818105341360725341680047029714840429140465436821368498010354500409517205986483183868241327520707898918163465118166259812187184284674764143638311237793421557586003701950403095736077504432373467484311551612673691816809197831418318997994117598061276319494163988763863973627786045285870418988212401281181811117519886570002533216087654862443948886537834855033622756921647290023897588665023804019665760273077469898045529619494539986854233165454422255886067812980561836992007140090874828364748818159847127129336801029635014335044572840509267891634080857970330354674349896031043620079966360661373285538021398739112805282772767381339211574074961133193906755145114098576128379142555358460414512533210697852193499463782001786206044224717134110893740311467539293504426982332651854259959881186188902407506897836096540375861828576983246110264130792585167592632593178967995359140055263239636874829270925430209712113622121925599574351411212057716531034835371869179529521894992882605403999915660186412140105538064261290439747827418792349544989679690986298332416225930537462744624360180877776846828197886147957734077120574119961051655337859396408996151306533966050893283483705235318919814790324391405405232578985657859146005552383604030379543144239682550422084644395830098124226598566723632641114543842450070976137449374295786481141352046237891945008615843665672160668604566655629473765229825493855938914217269287277951504394151793746218278354123839168910416414824299474346415560247537053434900730971559586350395969922786185423899279008131575226937379328563777194523464575052705661444649008519938981181556177169472964018655990421796313629787258152424996275591232927504293501521000816991412786789357205971835602501692324383162122084290254584061751521921818177029725865635231704310105964619481125941872071723160170142266389278295768615510423199215038120922302616138806591613779827710260776488830534658136316003437326726945631982914910004239208393950728213406914739350202556714893918298613699919468938477185654160654738021159408610424619574553077030156667109831048202732208785934684416244514519213548692417123401813645475039494577204891065281573081751623231528258240508168223043597011366448658682080903183135492177216667165264448157242728099927314961257915174404857070470695035372057949787768125173144151196160765648088332949236628086545479093581321839975525250290972699801705958977876325246918479519547478513756199426294937215681744072653923202973047615396140951617863172060044323585977976825622344233266088126292206170641696224241756949349153373819348590937470712347610353238393889871691165276192796368260016858860234796311955816558676486580636573360620291555396137223654910359552485786843744012014132000766132826266717123882972133147899028230521888786041507217599475237139583337683889299851779347759328866491003284735387452491822401414621116905323086279919511366608754934286140389075530300495310503389114965664651214008797145336442132483278957959870029012000445129655400588472120163318055740385464839257852446570331476260817065480844223218296842901473943604563159253900536926652452397868154737959515223425490081802462683347514387820612075499984365951708485482611356486980798404154071377107413652367465919918567223935833574998864828022213856509976830026129852721005478677287786340388279885129943632839135905987527079045172386218389320647933564861027353637549501336668638140218943133380380732169267616162974080577963693307781390483421002323972193581549454184086514851403396352770048097858739066047923910850939176635758779733063872987288510076115303604117241043617342943459359236662571418063241506995793631809625661931768687207699524702371999768428883346008280964854203624993737084707099545747356029923092174854989430891405160055703924515601251689180697043246172174239514340369829553271065920771329574522519314948958179693394279697646836378285002903774190705496839367955562221997592671296072074336606935839467007028253835898856453992909146927978632077791811875199092727440267679442472966816552834147134684743050502006493314566934336905230447531827051445574932034164832342422792709449851466856930194451927458451016565100967732566578215548131250195352520278146820456217200000961884932885838974684845023462219224393714069483137490860835979020214465964777162968295556680865376057053391495335114631529365505344588244233753457792424503748495394629206909147974909980295359392339040948832878369405357128736052853958100225776318232857313900733313517808564502772180552829558123672459162489494088172151979812840554663877819423861366907200028547913835770075913526121438530826133035517751287927043757271162399650587823478736121252029007958618954428559321658055143565718102157532618396554089607780669434351808720728111948223360032794127289619563544484552654902684534859050925636581844667256557910081163834371338171576803100680074776264834417760286193232100623957644540349037460313655206041619597221510216089134272149441294986198390655585651766501409620178152050064623755803717022976320298419111977012102808582460800639044761319524203107473292597164582042719670815780306643324745887405424036207427553444473677542674148444240895907943832003617907997469199644563530772624604225803481698339397319128463511156888365184687699413846575120527492875728841995236626763090234092265950613476864666874704209864090634567775211636103283534213692786229624198567443611472458527235477047347149363700554180835122483100410000826713094020058049242624959977121216102210398865192864157641827546253204815582604925639658797721191410585630352733987103598189859381748359060002547653121696221042312670363259990492617468154682506213029309218525991922043999290594531438439697968892803768982003163743786234892797647656846842755539545298837799299070023373719814817661832930123736369472035510961518351370893412587913234852037043800650014789649115927620354268873418285997060022577873503859196972715027964716485081843215001475221120107467979807230077178820932500426661550489385418937370075460425113774998744343141766010111817844812492461537757390792518296011929606773206067173371838367908935564917987544442566026656770625077298904798909939809702913485866804852261692318124801492175771100841685785261503459945435191319094874557106423910223821566458707719570117324555708664530243733332117662392484260734699883520275176837432186218041337697592574143225630397437040901297394461147001788632268118490299080540529841798766696209698624177769541119034350510901975170672513263591153473935225689957975337285655120878583068795610457060875586995754779572546514077670638672836645221082260828666496628372372230904986938276464930983642183923796421579019017454411768724367791689878781842617462381803933680745990802245095546841218478823038767091301922910378315993271409081236542442721263559374397848759997793893790232195790307079196781843239840855864836692382211482545753997624633344216401697214774385135120405463302986267929486640620444842165619789884574329836791406103594328424749025353204951692000889210830263740631536319078495180946537894931321389732852201844588257767564308662519627535873614099656784032540721709408745128336041108289407001975551747991289181084251920738406853778818496508809742909821759954487281834541664913403427143872125891656858511915808728797574556470768488711413038695142782717151851550800678775350375138325036001967279630787870096185177264383741468853374164027262230391838818106514778979641468085964427852169461056495287871150490842348413133776577472303950184650927307855587139898346169795816036730695835555324524109573312002912691289266882158462762885448147539034785676027353215486914339263815702047424030892574572625377328846684303486192787932010027376781985567537681048936826583408184882346479499591317515305208509628035257147913836414839690574162746097716719109898139013829356798334813536671737952147984134462468805645376197858369117882197316286862754891396158331262942397401458347189561720615469378551961714151134385217286547989265886228569556940939659133921006173429507021789668525997354167709720293534950652703998563486479778948810466395535520369605966165721418180430257514404916347654179837936806927011469440408005519057603505069772092673290496736145352277264679502465060291115665677428630149006981318679349241347424239293257392896048071825970026847095428909994440378918081050639665125564793744836798424482702394084021107522360775413520941771217761027986776558347627150817973144555871741392981726236055681712940985737451012253072606868799583836069431920670366855192249648761472418987544198608409680890782282278687468597061650449774756423040157425740947243343650271782221206046712574280268732432021757796727924201957075117483436891007327946520854269718279789178153504298364769691134295202210590732621706508943360393995560193473099003632148289294290413221249804769697786227825404271444804414172912812805680834922601951172361120365301510936809144205392591832914184419555403487711458142742638398007415959549913236374023971978701885851918656889437688351491804462807923508124476541828751071325415486730062405014729703940701041902436177616576796101441371868658562316747493657330613135518181691740553188140340604803665076618337110146444062594936541305466428764175213688302739127663711393798313792891687418376284709555382962904605358723776499189695074499170808627417653001486737921488625044861459683064755901404493759558769059060956557107842722080135261292109774692442236297799070582879099462843417045876635286869382353770513531404635536458250287536847149692718874473910959659766678980168786261219851166534708797884033093113245982921023149647587271730106984734953192208492361220140449946338614250193743935139008745479159377086560139770561799231048046449980853521654710180773779878726393140977277709013859546785392920933708814068529681855840221037842493192167094172987955333551725092794450232388020848932544233126169690000393652312873912919054731557678128696523169986082727821390863260272493465677219984239173217823501769716075717097865521633893805685969113660713742070405098199096686451866729765513089122411409354582185992924959285528141978862758334989771748578333824708740678096586385919989873878143765807441443767073085481641948241264204442160425809695883020292471729233264671955814113839684080618938421714395969698546883036046426051253515996730463568423179904906644187315743412496947672807602740810029422857996981086616381231500331572613034803675019112447527059444975325137294412610630862114156846374674430507628787751090384182657024156073464408397695657410469835926104463177647175538504124106807604355444763296964107353089290634954672350752450619654722351821176435951560956834794278270239339488043277771468203028989151712238686137960743908767069021267387872036405076861709412847347469537991059304518566033133792384501413658712567983617374205135533787458606800568799686302126732451555723790269670765000471795998735434305216315366147090026816797361165836590418384930408832289112749884695969013794191142671027245958989245281088286353002587293226104790524123750379169069048440891477609149211870234429714494722981409189929509686884418430842668429370486959920237822401319326921778644722767503886712103777637691334744062345122681903696935304691651027782236245924350126266457254131650356248099221584939240084300958911381571261095615948696334272102746458513269213411373017818425484071245824950425726490147463043787806779662972516533244880860096415554218452798012352725255525565751510607450454633834748665416694881738361784073813498210251805330484642381232619149924793418489830427011607399242443848068087313925500539384400674699400958793869929333178894272879466381043958471454592045677436872637977418285188286894586334556552373791002186083889174308825751424845996326611041046137123660867871600718547646481874189237947714878478935481241883544171543688035210816169191647659677638487396312991453771432895267409876533229123242321009362077092463548983254001364007761766977056190212048688839530168671139468386352972572916557467231534738569279487235438862014965581041118971577779894318129072291298327896912465683022945405811521953629107777231032537993173893638251062637348091674328788227466522370361272017032956687609162801275719574730182092493004250675673147638799399007410272408382086684487487238949587281975775903007537296197944228942467699835680969884973752696302004284972391086765933107754513952416342239426015675454804307739921819455602569776910183258294052208613615519017776670826001824726656363540564961714373312038579560278863347916667439180391824630930859566080666986481813892651983259183916313360005936813282992633843593032495714162030109680684581503747599277888395916948680994861307991993356643065497799064610824312589218270549201382673532368180909295644474040925153114901238611362257560455001482085645462105827904458185462778314746942374732083364084624239011268876403450481656548290857289986099270933908893006933258014436433158554804867010504063171329628306212266725013788029372437940141318913032431584403810600331736179071472397215013398696507980504309046287252684093469543939177405205887226837430709203652034518878605031548966063346647398879751879587413930235904121166189333736105456952993244411593382640676832552925161531209185155987769440135007791484917197124494911523715800955653898571657791763838109839682484847718057458297981225327020503276033118765172317403349816290231334449276917891456436684294479978915319390809981346871396676163368561369524078886006020617105854878573308792321456713545079866093331027072494410956285385668930649983396417111300959645667240851914035249748201615999004704115169861696844448658958047689612995178883668427083366053488793311761258093399642210953766128171789401840896412320837796011028035326735432500500042291894692999037063100772507234085432106270452800076139675974963665051756562316461534840878322004055650470700425652470223833098553604490938125173889237790670516243655447100642006764173819502448544005646308149680814016883498255392098262224707653459652084262061938990704063828752663289914253169871431782740633091040100851825793149715127738653260128497859616032838562607699774227755533319936819872649519086255254276542161979306080601350519294665832978507336096294964670436405411324866194708845246778549001135300114054864310959135864096479731332996807797970605181481978321631816803609935108379271948303229108889409504248997938976370673062021211936082873305314832507471892147098830293602663373146837412824916317731036168759126792691978467564749974002113196373200175538558115967076736671957167295428873269508772866156508125188325191203665443252089798002936675277762656444618718296534417619003842295186633555252132162267790022851428336580133672201371988498857662715729922576962183677273970050944626460938345359427686310622293357730132699764282864141971571540449602532931419069019612794121601439774108475337549115995630308512329735645150005975048263839355495520361548923021588189361507201534624428845832942208785057972419338980097380524049402234085247721961758214780401409157354472602504747813176418361903938468640429647914170901137808716888883790609857104168299390045563191069062018751521986167689672185001138587222143687613126028127733554025334663928270330720700767909290717225394340850712677641797367568001594572020501299132706368541549689759473667453559502165912801481651436467659230877669152783808190063033308903995647678218490322026369509647581627698036118655247972947066225972178600117177783140845528075407653114848225439529778504165756050417629071087444862591021330923928566276568720304649145488815245784619693758835287559407402649089947286905678142179523919073620307581763428001079645316791205059627217444287097497461921447914966396354277932894697867143381204797127318072514478691922044287667266015866811605459880874965871923882091345778479465867455311386151996191955029520907117552993678703746017896307449310028467475516477021637654904521863918917190573913432591144481671560225822087841976784301661091828821691195961444003858434351673033066948370073505442806785232782612204541877833039073148176033610832169820325381526799235883047706774914027494420966133607543226681142768540708376921000371691905809562866661872647153238103606237086705831488040248227079843104042843458548224621300529118804480060036040749602358320100342376719440530163649037912254736705600187994448603186772892109428203756303875867020518910292397593938607680806993651737677855291996275414127315690719533773523284281137796790756418630395104575213436625065785497199392711419669314438594784223450568677954882143370039407829096230761270408684493388640404685670975777515182597846363523340165414127778729828154906768880019248746312830771976295070903841007019559599015212002365526775528677745107704460345094491565307019602337662544443754372051299989295865858707051260944683344132331854813452072709533020178170133869906865303947671007926837862849674261038921809914976655287087580417534865625755912984349073303327285777763614689501369580620918661009475456790202481534006242630000905674388021784173025835196675972182775816666942943081898358779363480743103991708547731463606674525410988483571996490985614772150578071488237233080566834141751989688347474477037347958585200529999064839976078497333440008825173373882057704462794472567365849372308374343135277175628698108190893024397227304435333318998421154011063096103824973438258898636704977233472911147582027708108022275143536955953272997385641922036084280717358556981731333168142609745699176186024935324065157774306831110330801831198158171345189390449024550279353919873428330987649230161613961069094543289248309032087547875492187581283639980205920649341332554524339895267321231152229854128498819922163203502589366511879619364772402084797095340577458577839525638680640785067330218587153312926428802068737800393725474765615656798733487727380110072675384221469996498553801969014720508802867917676100614474135446806632936536738287717158523028841421247685446189614893623540141667732470209730072533361388121371446041387323852306645426084674427318181292673169975615601654474983773349527375926231135317036876449867658064981713542633781201568913055784842875710840312499851423714065935026430871393189221411750079631928842354885100405309504639882781445372480384231157692361575360731018049477069942503699533973366654037311939382171347365383782266875919679804169353628688591949169366699425227068192191770631100791731418330119273471605822175327871784899409813539039433122227551488485266885061033815535004478381257273109776324120420366932758437183015195478674685673727781991575884483157208016554946580436122389917743563885838973543656122591284698928803428066936601364709393754408402337556112610607374123680956198294902133641150150797446323115652342279245030131569699914642121653862359362871800383517925164071971439490877940792810333925694638570647782473011578760490694875904730694493860139993478083436334044509964468276707133620013215124916357793526740552169605375386442209013380011817605389197288715067099902648669232310958167893398438002294566234728973334607315224823508633458229463967596305014583004664513884643267744082310153249473983284873103508802307829985141484791480469693525976418289086324866013667633949275811631241186976559091954850660811066968599248536206790304670142939714519403613755895087556422370206487271883616898533107380568088585250232815918415202215361092951549084449968899049725593322348928191855983648780457439399172100202977562611340532241416065758600143995509841122181829125525074313446007471781807829340140671929164374834767035692866845745663331992817026111371129535551635215645408103708748562127105351017007199390586847820895649845596146299481178265844578758003636451985560521314426898744152546973252391632999278593320807995799374089050829958822754089319581731693760236913725579969201733023721650861678485901591906020676158584953127643861811098604361386119793300870389464387612370006524963061053097774879223946019954604632046649839316202519468351379839973603760201549538346204413094126033816815494257900567827713387095173867691052083959350857325069275828462368285026362766121134380812999830564315788101028240338544233949609959023799950630192904675545724808332100396185211095290603555019456815013304588769547516939922700266968781739270396932038930619569533152752133723868163733837602205266485589006857285189660274673874416384976204215230917683319609122067103154113977317773564616520953000186406486747272834599161888968297672302008735202308487401739578150983496902784839113575301809002463378889987867177607823538127581670553100534345552319524336208039085332535491109275983598891603851681735264604264752158691793110796780260388445841882786474260566064240936611460821052529716671321210063042010483551065233474308344393929793867047119345646159305182707184544714740209116758947689207731210598343465099576235479913972235404893005848016506455418518459956618073995918898015476007978772929020773081851793240813009498731638710123591881190574093648529366665888960604853245878752370459202081277068514323729915931653223286814446591962540611092263264628159973209964723889221345863610908007824020879814848690144023808686436448430323813769960620355906964186814161428247901894653305839699745021452736107557178596846957953074845234312003963418194821433289576542982656452569478543408707173118305477184332866687326223296987954050952542886420713248866980269124157062353454555332308966706971307867341989884006949186933548703915159876998135212725103390099223039450290438687654163051074465269606422894181319839794936966397163663954509325345156663726170577363510393399980444529982478498084340895889254111548055670304415196027526220589075418783097512180940346732537686071516392078036514683200545301763765993933480185092164794381477405621497683255801003596776802397532640574044260250684737158425190079677974722573154825446595590619545637095185274358957244474837382215670794874031088473486532546494829102180495577684747479061266945317476200902676881115605142136692682626938061830684954113060272950046775967370663864199647882421658959868450871463322639789152031973029445227563559443459187493401070151138725908376502682459076386426792714739668790315203283528792415061149331897467444887071257528254700847220929463176658170212043253862959802705657499357605615588775169285693779044715763603349925289051697578383899023255372802453016706052765125290099311813572631976350059898444850580806901653239488700187562503788728595094115331045115257241904289122753176383875683992076661990883878066463269805265997428407097396341127132126821981799464364021944652234793882585982372894520773681316380850476622680144369803984307981353016251944450381532084084086599445447156794904552524722175869976990648459968513964494806186576315254286227167346661878635673708774498642452338660382765168768395059339888227204461086493645330233228362859928986534924348576636262736486629296969593273133939758391716811222739055360096623004031218921476852066742929421899029709308910893181268030305754399632724870524509862060216544729803175524974153319474939774812856858687780360651024445252068793715842111466260884388298640359048380572973475491674536012894892641526759253955336930344892092671412951290071076674444177109161826038448944801786463673935362914119554349821581073405320245793163688695749170755768535455420404417861494200339679389709712494310660055927272137355560628166899236369177241760543455580895605034544743267242201060643148641630632524685708355481351586115420841537520837877594841397462064048558080716048802098307765742303648435315733725798391543170749823720320432889065511496201187401731909034049473618372566154588365427702426479627368443817378116322497411565127255339565553958908841528560506488848193858724603612230143435822403286908214991334709769162445433923948934443845711556263394684110172256728703620974837392326180410494564510699949607511217000775978914261618329453650975122508890835813851691318810803090466503456977218421481153040593610274645378576683705548685139593508944936576081417719418592776272726818073842276514068377612265328882580323181029488877482463513607401841428528184795631042488161272203961662406772656183436180702788536946364122074719518075782916667827425500441523805698301333822090390475773910163149468089758479371008817177235922515893990993686266530282760011186137262593073790952735178401388483671465671375769129900219914597173773480700469425526646715214884905149900344834161760339916056170993254630966766799777559993092029706858839987814937593142488442528630281263927826048414561093373215136649548003647229607478037891262819768929675551798438085432134323273468640273116287762153427545937961979839542898501524216490303470543549402213870746322238434207707254330153660308791713791681316468970508553916664294350990334826424906644181795383373246350524660050669179068753325386685188158683469347329650562030288832666815855992132807924841882239224741655132888492028627915833594023415693166672760879857516850927742660479318178079770187462667344549360255789825617222445767501711231235753797178796957528985039646409871516096706804342928467213456922576445422421010966363520083027915316647227082994335363395077839391393746621708073736394909869880623652312790737035811798197861258216903288231569922215704697891600392972363356659404870634032866428045497795396735314256450850502866618163046792413974784050413502642497725536412046906884656054783426106452331620810961625667513632371572236123498491773735694034863042243952295682711570825430269849333308473220654626318017213277798290586321293788168083105617333693088693306991984937235643512708160037385685197652596317806043544652674125684124375281516585969868113871110585157508133093837126290842350361359625161133059042101587764138432796009312377840813552970329097661326571764279074066479801444276059709537246128139649675598422500322906043631423708015429655287055667587737462600994782847743626851336498763894756596581888369914660396148954180649826648904726917360973569980005370959953596746174589260075814106282816046082099392144664535368420634607320124823046968480292396844932679069124927848712416993034978092690539959729809802041161948777104602685894604762976899954756503527291656794906479567543251700978237198325099166721523293519182108349467873498346159214471652327554229473692350587161048853896051626081786638902574351020057367526035779060187578389129013841093005841475309270018671564385139372736455857354608170867224981671523873903299638431463696692250084927815147660008023452309995120444733517538052864584742810576684077702317759190578460252228178856472771281327524150171194340396020039586638743609968319026750142221999561484084452623559401163418724933664755787525850816158333492330112120595839529842581143851509640006576818092589339632764313782628590339773197085588522110262789198168239922412868307220295318985823107308146001649815658909752100066949541397218687972582201338642800654694472415077091101036211828743010068369841566621356636339687268370680343685745965807039968236252038915759530921334262343003791199001512388654380049135940406769742999411456239267552519983295636950724322107108171553200323407179852433356017727144752499744479476646961585495651290722625749037630750473609268998519753618172601686431914883575603522319974465761219723151825238956817237539750876770196770124149698904602544344065055193246312399247783969318079955899403981861201529972291650252933946675126322004466957712276600330572998198360877942577862948844045538106370002186702493609586075580197263010471266571211307550929365409197405198979532628992467739330158322908092034418189334156482019390375020971633935539196495391725327841199052410124489484515083154217447617414698510107302928383002927346808559312738833303876365127312874134574061799902165936101415001186351295299871452312373137993723541365246126512325524140713280586264145797583506697391623359111273889700838710654346070188446660392891143279879325525932519960920767306072487389890288272298801121930383282382538834673072370653931723138529481924308081023115831349353808479486629279428153475913877654889379110356115092178484822424439850030249708256304132564435569075812267463956859991528390382843997230198866651527085299913079677154127228163620628552818240206872410546688120969341590239528258594347607050419396957342938936850958067996446628994778015045858405725068297391494433443722460952354896466903285999652466835978002232561812527555664249129142125239692379206918181692029148048402626642388356425680291607222791293754813175611909251187197457840924602636295990999834945449857355191907355767595669646784599795254899719385117059953745618583127282889515833304786018001125214705947836372777790872316804297126551776883663395163861033105593733592391765444133758331215438322084396788797817978485741793639124412563447588294031338159024303981235770433879280729189947263691745904917930244094750915185219479543672769992545334687404728261299381660257107104478001391635815835994792016437253364271878691082074764606532367825116212224156560770874153197547212179970343393817115371785058084801340270641291633383382747478012472053205916106355558579234066117013299174478118465002744068858334714644185724042776633079558346392898764677046099548317180249869895669272261665169632408873401298812241828972343131405821305052258981728407343897623815385137702352253214471982878528738573513626020436050115525259337417058561519050715518082954467057909349640752020344339341117831032149387052895141454330078298792113784160346148293242136376457581851085805664176273824649951452775046066214167412403642245453096015279625428562085571913144023351493116385869819224207528207160811799293326465158564662321058464240261862932520260523783643357028711943630327980103993072313684281614989951200416273708398003181932202907688568472555838009852112847933026880955498619632772719662433087141285123046863019094102178638868117541653559271599204790938557496764458913380076064845019113030402495697939869321116842855571677012859283514145950582630966175163190536562722046778543616465198391089342226828130802739138999647434674921179759093283956357530598274939469925942234339724662056874344779596486410488087208740468798721747354414915413246334729834781616614022751946854013365635054165049949468637366042149129390532877041032050071087945255598887630922119716748873841266991871405314991132673222166914735761071605941237935973474151606841578720203113227730551554907421593663891393386626508641027708886603580280019907159652913213392521913114108087043726266199668749399693424592038191561729521174097529349974727694988675304929757706028412436353268254272332813564873290484319733159909719121114998551089794943955667839136687361335783625028146432637614229326964001630023647961465776967563690199444792730427042280843553871171887981575423416770358501101471103125524580627553709612268333981971290415869891076600923646864356920898417921601138464217713381901955481655916977030916905481509061817229293053013311909688428560144305754741388171080984095208501156770982610588448248032031366792958728674347375590282625755562388667084225664605475962222075598975586768298285526624505441334289353234319509703391452080021311287880134964363778159138682944166714027469202213576423988311654509962826064740161620449885714125055134878999294201986086491306319553055188429249147928663519264723491616072437606024475109973531588624500982685087241245588674267051121612557819479482668777416628383184934138129240608053525377436663866692493145625300350933057105096357994004192042763096551648606032778002189700847734970064916424825397655304240941149640837476404281996434819392411018488061691217707760061387158662572183225934034656765868833883708949531896337653933501575454371752280007393744659310585407730755431982767335650572727489445746588410926475663689169269866290396846749512540852852108579521062321133967109828246692531309643382108233907633905594400651215295082068318321562258803707190749199727144619657979911455925704504552804553213217515935329306037999658213265576569122232218386256386942248073278292448643127869978097908449354713849478208701415146904020173361774346936523159302473453410887268794732415318715852731006944597319267744588791298965740161171759337380677150599390703207813493197140015995584005674395513112574748218026559420353547642927327875202133081348486897245998346614459052437714676380026085214161973682006309324838484672680718418856950290906124652200844809828970617307972493042776419438864374926934923888178416687015092485199224288549838075219638167006105056682798536448697076437786296453753564138035439536526266014304720053048511904471142063463852396408024436285453055136604756774798263685674401167241784489765153959419500276806709654696202678109394459252754931388031809485593380291389570062747694837524222832008700777697885686982029775447582690036914722778468069868976629324791451646118395807251940903254156347855172206165782872271547916014971768457034811414909988103860507389754764878116276769551879276477845443647620160787183937029864322457230211869996750603746309327664745772265716385915074025216374610163506666705081106355294850486391420905051277008808628594365442926789351097688859315229083794627790248312292535520109903515650437752737710506704140516241337700111712623803498979071871129205105313706900212557491204326670563763358535318446281318426400582268556635533049159625242062212893080886068833039684717757650649567286156656856135995371063121633277333373328613596035625668695247754184691991431583467097948624228900444031078509254498279589749697834960553452422494601531031210675651077349609765571348273142291244535599555736112171138645870706808349823366003843815721373358416101370025272159871725657898686963395154591634343371790925215621968181647525704874363111405482212445109671379322149633962357367755101903431155832209038398164589200351552144187600311673685949435501247522849636096679276742707901101321495313492407322430193209046683149665019259665495580374197318502912302700438945000815118297280358785775186139864247945288697180667743121923319864795424108098757213638815898212753296916186315078818135226272738499622050083159310264186684297638187349448713888623051191732918017251957234486533227808030413374945215721670186907138868505187963520499437766996388377774739800660572999781376637181658140348563094152426658741883423942204120609694945960286220102948769263077491401279164978257285981924395086791788658004725070330576025553829002964196489897553936678535848346287527669432168274984092743100366697185811667932472540353967125297272024318243434213633155980352605834054079262365811606773225862827203729212817403579611694495178366260581508915351709681837996361657395836196257273946196713759404539907602068672074446001327045610331270204861705488515304381219174374899587181936839228129194612223069683633309821954552434942353788861697910650451341044729892918893866963404540852547297441884634808592278879158730500694207896565742865163512584819052718925338562098339395666927965630406218418951043534497955752226756613251315356749755448860969219691336025374801285072762110015245889743800617057322284952152755255337531288915902020292158373499864659343179275753704446580297923676489682700834095280884682657736675454163736008235403612642377339440540671762649683940522690827745628976891748431213786872058981161614435032536562372038896940587198468180149657502335854238443965788743373695182099137380824431174876561227556446979295573872352298623302031984439545671395048192275709538607679107891780645766824502531333558128071512708629730026101601000018411239976780597274701052081454103250686341105560332429018821035547987858998295433095167982233924338804833158762579292595362632047839650730455479288445156056353978651401786349099343775967083174878178398365799932958644226557322087667482202734296930550943756528536858407092731763374275443428410477876580568830213540437045974995950232989218307478891270075747606602027890051421647898829505175231486443308074390897096436993865063186642216968289325004072853091131421370830560727628644334988042553683920945018504198252605434699462626229249466385247985888024964749357056981758143316689609995733193510115042999856992302084864516029721820950805413912318434108700968088792313626856211172432835065664942092591948573514282493123363274222313596814001346696579026832893987155575499982295420041170695852857190932696122929896069169267049034801130408170883366246577156085652369737719782741353435501344973558424384847084450153293468030752594019020589501361092834673089731092266582389519627682121006395029130683840149974347792893686359217846616401236856293281431389910579613665836840455682775628816155779987741950886426524934515685542188654413766897992508039202613140086917633679683464681643226759975422042334479554975404553805801061157805960123578981953400245462106476219171588520526475924170413687694532242800811058078161483854038165957694786226421375993281996929209237178324291099443739068417951120175374500658600653023610433071938377735219943866776247473588531187027228531458531799187287563344942025779163612747341757623976624958148058983938038826462214645773188905267503298057609261166723332976624799430656267303640153624989463812898618240280223736611930283923447487058917321631854100849345011837379088609239862462606727342471351648688112379714797985949930822704973811787633853521889347098168191552727492457923115880357130142144244947263482075222481929952658566899498307844021698207628230444172307721497756563905431008583803925025573386216701615327992651880670403283987600704185978213231094252172318253017814189821699242958913942329706957874742340211478044971915573396213069254615357224495270753008642561659520649270887706081428966276015044959338071109064348715142457062428293051157025300994864326891087534580031574023088756061475521674772147699295272538394830173523209956188156071142714727398461495318308070765099192190009379981218800918834292934046315308310262168722502263258268561660943864184347319597741594565167811416382584440976898377222248877243761456629611259491102866298815265244439114853865155829406899506264297393577201311455696013155836907348358919824064102492468845873509076925935006634150777976480268716018000292186494731779558840736956566148744943667444726649533582504495294204948507547924733911798530191875315710239736112344062410409817806571903540158637758415464280291696776986051588788225874086623190097019918085660234660359381787978771335741120745620611871746154231265251567490562656874782054382825015776822084051986066745740259225672789898158895510115928514489146212803169526288685281638145738023421732121718413162394209038222524167364218789126144832272516547327689257987661682614693588047089880558847049799926317576394550926833857199781417793708704492026544160108907852118794410155409685817931168732100770976510702487689699616998410975600474236473596601916844505602879309759113512687761322864706249684834215790960615675529887715109029033373736559145475520289518239647232414144799308126633958837030607709021858355335847911090475312922811645461241928986469732486086553302863552665039834878890496466331415909803371168610407245572162310192002563447328535155477552442424329294802133822425039765286196125760090696355182740059160626773212694716303261419883134140102465968202611597510386621093638230680694745151739291516196045487790729234004971902943513706054164179189180021284509103227006710438898114329445921700494754486808321150159877897625356297447594027824313336024317654497629872058542015500661749200500264725009673159945909935732231246913862264133108797866280869358041669416957671477700920289088084505464506347995333844412627318321122829976659604354259918137404602047959908768572105553236090402657340295775074616947220796628572927534138569379771140848443550609985402106622202544532782139114216741439305174965337957531451838651739002729337197742586660214814336823148948358396429653006228466802318206200960188850581694926659921989258959281303299130290370482789140597986458268154045947273746940537212503197609893580756156635582441252059561809630972810552931791209059163309502965516077751835066001329233344251662589898613909220806880723580163441081909230698936068674009779348746197668802126067103422384166929079462223377464107972694473013266291955456312933604025967655942422382268845206211628484273978740814202396404246181568042387081391424416517346002691850097453152644474044421374895066229798811383677596039449193501534301991567146142323298233466274950619202583677061314142196200549810668295492886784487586451695527947685999640878112956086049928448775400437749768780005892114920079627704560282641907316367203898808828277643638160937277674553075420681181612425404720597114752371613368770285341406229168079148998100370176580351636473663683508408199434601369791747255633386019688639750808424459620401130347447046264406305845155036776747905702127098363499871850252665278331480046032712514890110000163502829182502125799343938463599758720690674223303713449967255124406482887305161529545454411645253222075517900471331242193014735451338362048430801568798168514122383067000923414462561999627338945781751261535077340154387283557170433018069514220056129224039295163696947651952100099799906191394289865987208831983080424355728564345808135096544961512944841400674558924497079361229804723271092472057368631968809636791435410541486346097224097458544076094558670992246256025260525520847526006847011577935551547291692571309780060663742944930847541970446806438377848375180537830481710009119938040252798626977711636641146353863310638431281967035109431993265540238550030170647508158822438285288810019514628088711807497884707897774042542217406763440907432872989333994898243693401024837155518596595405217523022752622493184238002750423577138667921160465701339969269074868523082975171940817989946313552524468085241489646335281368808876464798423697666487967558465157359622044997717731672100594815151238001490840681043396905683182552178711710985604881526498595361227210394005953418207961619023326540057062019236412633774127670512226936226445322693290197125051180101876614936093252612452835406558877000997557998267966058166244871670629403463567156153163624475460315089615134786121903921244877336796407514332762458983736704765893900558126382630794576580993807451085010142327829291652181801359358025012462861295628245879082924937014714248170023901537174548547876698715119531242506682198217577449698644404401953535602131875228335685207389678401424289995779157152753839928895654401862210627683820907494699003549477965589988292125536285888714886019283802791470712653736975052179186483602357103557978886767544502801881810781204532552404050420192334259174397409055680774358010422983851560157225648570309088378585220834861846958746077836893891570962719265489022001195883016512170023401533203629049244374010880772726545100302755751221532075433681875994620699871716014152274762760242657652942561332058136605541403985642801872447941416436523687048945762312907391115179919501771011451686137540643381841621800164218499840433691792447673782106617955067259072450169835293395017558799073585657375492261765919687424476620883946284986761020083163489032955432480234600081750918607319977277717184786804608644821120726333203908344808409625224400624679744917025592172482125595890530042195101856409632406229197243980082238088832697750382259175644426860765322809727787545739806935625398858479876091983888867558130279386840569575272299524457928306354140229208415468235095399103458991012076850707894680331147373006539484113806766343298897380826209276946829086647824204753835550300642404459044687873963791473984548040201601254190456323555356495966211118789616103870874170316986149052940737499277235384591534999003993343283186470276490546919553327880505065952365873203672738233547517369047330714619308107573096435880054683661492749552826670094644329983528675269408763668294830778017611447867578603297764675575930053482104215097532439167348630565256802704482473007743808759040556049527131439546319144980410513771070981513246553166877452195094251245713703676395461279057087355655991534265296172949275778368130791523707616009682265606161311752151228267794503183544197604582759120497228164022378173792282945248564778201841045109980939982125762483865546848332161213505993531428857526356666937994803500648835714102633220807142634024952629262193292653850881762885075343194829620208820283680959569892871497844600374204581064790494221823046202224907534309698590340705139328818354581403854740858158810010586954647699925636709590332026886599123307651029347457897235866590829944265035938059265938049543560976647574764075277742192196976940020070194193750054845362764506084088079258689823318352733469584648444301824536442616985511703146504350435716417952954386710927770122767531619528463198067780905202578564572234683402600731348396749239371335357649465347560868474436016068532891640490729875406745322698242935520510870028788885392354736755090078368865946462635143970363910408820260506041652257224438834171686805558811386976834343696848448061475504159962168830423855291080903592732620613834039617567643389498019092252399834337000186784038383365492842411342768824218986900148903656189709287194873461558203153251187854053149926145737785910207059433678787400664365323435098152406425954888540493630986810118819680788931013353832642879636414646614797186670200093342016837920142960986846309429680479980013082715496566402143203529866004210632911195748825873822427951371608860735276342195509665513009456607865427770626689431146192625537668432909668049745744139546022992491821020311281314023820919134986223656656191098027496942300763559732427665448735336297032011022472699034342807705359869039768157003705245555854266923461550624983224140810925381400971763260148309945468267512525967486588904410112766831902498199286264775740549632169919941361841079479854272969068239069547633327255621026192474473306928440753647100122173575969436690669121070841829035249869993202233998497486824139416407538355230741265413653735453548659820934505768708724714190028326536234278906069644125732937209881299537953122662084881943524660298250233027096878247949480009045447378103940645433171509209464435010476577703359071159012065708139370353168529379472920869620994624357301915610972695890940537513548807439867135218811903194307004502537830819765865662716473325918934645191495574470717132590639598428000242826906598351418736190695857068394450613637097232868359011120101910956114115135589187061760497298137806612684972489652835290265139666678927963761841769460402351433409405431979612300597051139513938124200275360861899615613169229324599903429389184964046331753237211169839053077974022851130033618557210526426851306810442702640193325271624566867763321559908664453640928818271564573654901836988707665527153964328395654395415848147998625780965834683956124727122372797855978285993590343882923376702004857006233750628515140680537880809227292738382636204167724776055730007793519502504890069684962266106881214356007069882398163157075358061807353453671162243406492206628410564965005009514473026327676766467248715526017316092668762697243579836010605873110744097500380392955437428981042387294490623325045120436873931240709369895936644071538385102702880503415060275177607747881742220246998869592494962594284676205422454587919546013393612315682637329551825829246766232535417718003273686634384610176276230864327606346356135701733664800988506064595401861507217324961511619294111763510923006725544354026927540633405302873370375827713431893040668333272018865343652556301426846996769926539278009933653815095922024682847178313490648719798493853188256887661374879818690938801630825980116674964605195125252536320295853546314862704663115086387662843164737502054733511525396625951719536732830864442419839672517407665088449456936806431663597926336180828724338113437745285342813265869486709232808214243930333930245293625653686935025287733761733153874911635086649868789244200615781673771847052179753690994210443021158521499918017525665946250633946882388713710430466891191574916994347521257107690987891089527681796901737576175388184510991426208958882580201871734858052279392437263838722219526282695708611812948394264191911965544427190035835372041245816791757454455212414126176761170541821545290503132120698514416644533351519192900859998044416469937061089057967338107720637780565669283650911944700941802665613369064109052590629506717578778246789338882894285845462959701091176804901577638976523890625737425379803057752249398227718485242729742342035871003321245784756459763011524613253463915209467922416246888127548476800687878030347293978380684874235419854241649115449386714164901021707514345333054202849868585858056822218711919562048523280797770125719978887894706878171652603106108360244368955387922105767679872920361386964885571339229352882263165269964316821124689923033287751207246318304821711183674011865758501153476185929044408128075178788077682722388754680635143176762197661370314909809335735539141931996146019942091137231281279211440131543254975178120067976632632755335440087306175240835228215812261497966690076059270796210761513302631273919346189485255928033259802693045451641376220757835217770131911427460481466242840296452797753045876049147989508967678340236277765463148455246097789974844046818180834382158754483097887357365125737953577257473291394542625997687421752845774562376041093370022527116780422140529410485870706144704274232256872916848914343118340648983617205409286914760866273979808098052268433315296089263539051141744054304145341199286060878863333858331091098711414605782710945242645468657012381849608228795676953411145345874024459070578810120407514548490562632334181816523841688646613552616847528115399636336390528029099874167815540954236110455787387481812221177120232540893800263388611880325723483037209080648127063998415047337708038314641590078657954165276687005769063903564110673072981859535081393976046723161874703298575250809304270716894338864846580195512400991158338980324523175681692741491915775764382095438152716506315270848472136273745148142394443627075477304178940752449232275522195350774957363556849082420656180953749773968458394685269863679514930541868896604715962362661213241309139885329896306481378420782604529811693041192839609648803376138607768812092418299505494412946207693013132192238567126144923968768437301055048605334758006528377569389412935135458598034159727429914373861720170280625274562298392197191551878085096353627547646272697233939121246819129315892453350916839791412207111793605735827293200979604807348595281467103920135646495180830375884273641157778542874401125318299780074950145992743984474437938733708965091231079081609572395870375892466317601351335852057403288543448491878783512126225093789829088462459976226240485292823039295510708287049723453363961130313350606465833174269510490127717507978941743463621550902300071711664223926644446261027853266333455480021360734295823987235801150204738992534274572839646207658242251260961011684338179083502692415891616467976047894833420281632444591242228789251491089705401525137560212711802621190543410987406276718608867487348279930959935128709213022774844751348586685573994816304069367570375502057437952653037141868304599837309672737580693361638419729961627447861875043326466291496380250559814021799475481140245812489741317037958987274838548175233946797470152640149309209668797576312231408502703187298613122265902062607864295886471039881787425919302874652548427612306672708729074148045223734370560370180309627909634807694852746031635760614483422830076563658877110920952180094109407943247990025089009709351659983174783391135069887302782010655117278256290203091851923802707303534362381773822722324112734083218143754685710407182864868805124132527231650117839764472343210457380150026210268688626182927762166337171676713218915675898163615522100981804942081720868140138402289408791293239778823183009575709227629828025457401027912056332818153691062398515477944961370548064336326216462359069143724202031614422343869855495264405218910475888625076966313546147847711431453376476453314643284146390272682551260326909145509996913289963236204027624760626106978856640944074998562079529283118472983522094102775625006204888982363814442481871471481475505713176311446272104571345129316511138279437848957974742218021972636736294724684837178998600799502735403377472957218501818718071554929512112855674047387019287602623448529139225559519172628488632448304273453165582712565669791060696356070571628170406787217773484727385875973596804604194547801717997219965922796014865627063857849607911087219253396206244117098563598749275012784253889220187780557163007036089979333579544285918861372660261223334883251178723815261731105304545765977300128314598790575874401482666607422433170162179388130624029923529437093206934007242265821292355726777255216067547980759187041393006561609106147618924490840074855096132317981066396004726210044291043352172668520315553962704571472463142221069675626164828433812450508656871695140780720740819881007065566564427548179265231789190258722884699636592496909821978619746986360806352090961536551363400845715208104702350841365165849271482073294403404495377742797779407313753635465331897843371814783514720239851338551382216428599213292980153235086380294919365677713708587687858150456574629118388756626702934397986528602476395113815023180604940648261560992140004332955948159337397273778293958670791018752870873658276153634762603226897639837731536471458453485114445381055016382333242286004332750611867832285266088384512576245270619823661923609686300641109688163385112300527023335481833452129161506536805481258566684469093112339490010891527567067229126224574080775594819000355008797794016701302716713233336592561547012680801528144258728286454267101706231311286543675887040560583787659576532242902746636370829149844977839600548108135880206100347102008089968764258621259662786322523738771090520078703414686724364969397601622536858782941239897171278142367642931843030422112875499742616930353895421493056969973290336564496741746945816876220622884087481121158970756219446562104987951586886460622348970590274702346663336397952931033152032469870661098097142339242839840818347252863348560996221134386157390731768819954172643926297172959203680376028105812765702512807850947174393896905407086771677543581189307180322112211849324761866555489374233724479234076079060437365980072569687292483759122591695479055077264596212245052633927612166799616620238498213124655149211053301179240736547050740165909104853854686996782647177587415825509633504920269082740885636618187624866105297408840536851981953591812689438749056479956751757554772875661740739571196779886238250289625577852824366892382966082272143460333702782316928757601037120745925861392115851524419477665516930721000957172931036773985407986211227218947534460835324599440691027641060340353958023370310840733753726214329614434892912526751184210881501198389598668514578693801659899145506483760622473046937678749990800751742310229895020911270204690079879210011652223890922164155644463645732318223444656835660453418831798932809493842790472417848877168146964316092072293115054145752313675851697393610377855165674008097128242110843597728622620156018533788115032514045987286124690425960899295517473389895679003265282441327711859356352272620483202859292959509516073862954357144226277979956174172287957298698315647146126217283577360095096866281501510478422228925357821492242747736388013047901887040914772266655802953893544273120144632201724586597294757573681801012034778337227619014417998989602356424479753757100291557595076242399475002824109688785218416447310451663615349471282403390104206954992879621248765044235223540373389523619410245249417176406278601191987535250328260197560632250321813164910655982337051534728916365615671171188406819801138037886972791671675852622567709267159884685285374094048570233835928214172808921262923300531941780185141886866245606447646763930906825188937729556219873336518149630853001129583677721769518142678789793017482316811711885807507409099561654729923892135117879476446703685799710879411176047208668047532447717036469265816291982238123537483752358043162317882653243112244586545390323750608057625657640187288722114468574804667122740333415023274665348489772060232438201081847816455385221937652082370498977388773673583879909277327181219941961160488370383050496797793741663209330758457035040410728322347814611535305224558296732491447519836681269933254625928288477941407714185454908177765749391960000463999929481218811187715662683927899546119211904580327360348031141956671400643570986191930998804356251202822073629425519110862941919258048596100401325111478956216004703958080277130179606106166226349253158406517608114190573381404081653370998001249791722197184411410426193872704361757958911633340646136751639056944143775506043108692817160682182369342875064924454773926468739602158837295313876910234309752866079162553230992988261301758360245577115018108093180491441908284844516014783571788011458585638106733732506332457292359741172661403259696108912738968363162553863303895701685008288993110034403873401421733195252139882712070097485447131527396074807360820710665189062276464157130785391475513685250720989161482488089569713010685387825380817550196238079928385613261939714364040128350511275462328248977073590838969347073875682051562746402921547024198638950955044299796485794909142886611191963229269411040040147373547417804564131950968453500435201214613593059980617519439580511987816159971552847632514660640030746167317549000321546954461343432448883246627563372106457902780603056005622839461357171135820156964666252859747093286966969996609389315278478177082098209106362769478237336619146585362745662055304348846912288611111833623695758755634411642343568573281907334924433094010088549787869885699368080550479213301121284286863326487137629126575737405782857168518031070085982701755627392176182536815239339197625464460993037570310919028797632838075987898447205077004951977097759789972814863349887348033041246589636508224838786902192540036324176548619375233819223714497486149183453904030423829181439733925357395906337650095304472693343049758597968561172771883793459673844406599530455651360595752601212879929625024938071518756983412428294197631384684147653874030353047018976025376751967428908895046094756786454146249661618060891124765612099705049253152248671827901221537425256130384323356881963563860859223437398922970574449090386325843999262075300564983097535618751200834714977383483224279400647332719546262041412652556413088370270987895784276700005704514677417467151806853816499653619660460562000040146550392305980977966901359839787492413416266524344255662089244117506354290194447751359800731821251640025164182217522366189474094552004491050842638636929651555767995564417434332253435254256521330819981405093131604069361514091512046503186729210434793847738835867647857597861226121489468259946199455560677357869449773830486079668333539494249243504156957905198722884298516396410590112988342806566362226208011060767351263024489011170242722013577264666029339333704759324461067107025413646262967432211584647003333893483730838800894376095599166002436733692623724626022473541040448111083813492255257184146609006488181297460816736866412677675222839721113479057129195423967126603669836433527962209628090636547966705666827463599096255566359264960350957572191638621674454810262044684365766908403223184108966505451651199039972656009430993745557570215997583532824737669990115408721655417574668355338907511331458721606128179119354229316589765314482402978672908363616099866895803900978754226679047548707311274481930311356266607301524872138068733708115477200382462481575416326683193042328233730264661537341142915547376653227934745772958584794946917385216028254561414148560588165737625782032089815734054719043720451726825040610406234645206998193961554117973891787180910241752944029788039800674791748930148322734553117401073463680564275490618434740337455193499636155491516162507947871678866241758817909167354196104248066235681623102304211558490360809825965660764814644359841006746703162186427095107013582990454485567220484512135127127718194888892768828305515164946134418034340945474819780489387152860210855546569810804748389353495888586936286200802445512929078211597074865159811736529720805396821416251323364596904889371578384662057668470509260813794716805198612649463430284034515532350231165985851454007452032105812264303653963605839541263884618079311912183982723354910837135422745344155039938116473755949728133285429539401265887227667728579453411408346351625516208145836420450858668187769588194161471010810410764993717514751909984067370316276279388227153244031780236612965920915656356722965121552829921083041398714715992168166852846928635820199041919537154421124784106791790267379479381777526017296507247936212090722952947915506356463595828472991927796739483121985256289005923585469854762998793338406662760153725746678985890805606939849743176962406033766767040984766063248656183764012736399413323448524901268231243364499958036966967161560017986852006480888036584829235296859630911289678820644555559872669568732235708442998411034647369365929688962702380993578351861811222589675180517660482145487591054123680872269838436712970374277754597678676392208069905867852338373698924996179925378309251426639950033642321787890775460839924656015397048493822021647155477573797281031524114472134114338472486788080472838121681569896668114107686532628954175431251861536785834504057149237190749572842610164638593772980895344883965296658195083405651624605586194489989234907754591332146110615354421405705313816389130520176832225861620724401728934926371336048813009667639645522282130375689122178268618658085491456729754033678922101877543230398628996768970463346550183511704420823635926947068805085751910554532390003797581559172519783771526385650651487908982330176144474389731341193358100515478340796563165862605851287193777009200686776415156304656989668322621704530247359150517656252045653331993500591305058049200276399351015323350949657304685209160824268347916500388715664048075677995970177833435785254398366158808052002752421853004408717643129722744069448672307066603367694410604654860056453131398526204948681408831760349086360903012870319194665770861504654913502012276789243678188518557877527811233037026809898173537216637463879363098155805658177218548084989022336774150786119958579544703204995444723906823208808972708650951548614384652417091125481577138492044303549686523532883841151579444974337351746351056306789060372186142014027963537659231582492491405915035709293020590625361773909146757963180986667349658158922644108030083404906509628787439020374096972320031480123685420351788154919858869123535510083254670595762163870448617796597580813437398808324627750564707486391538526192409557364711084373424551188276837092884528946700921622416419622948109682921188957287830094838733219479478642711203207918270498362686829623435604012050231108818693903902198610176464147798233956718765386690893118609599012515994924808608454753062690109533348729970942101520130180468690925474055330001292914873277715596990604366052630202610109695881296797938178793259665099537341510325970607858386979596469780554559171319979058989794536683469985137164403485195913583213680572440638347688730283716940119941512949167523091508573041461492738652216458671170901874980172268129599122044452128018030607042601409776710419592986724421325817538880211071255457216848185800669095555575193150850330547079148072420232672252000075495902751897390502420000083408861094319282943651823334712122919519969841864180618742766683434995383566202959927312812788377106825283605238267669265243951902394611805032043474565547907149756466945633559878761505529084853849637923750297980897181191725811614989980620921862616963756736015909611581685328094214844552753120174700288164370067807348979087494768876168320394471943079103768238155630282677561418769482282871430647123684189028680041464163141386008394586210631357459934246860279586429729669568961084640570897135893416660692243531023837199959438650026422276163753025315636001444456882395088247364702901206650943271461724793960789692523743880654867699570825663740370491731949948301194905476567074954435601043067956853450872379792821111019647669875007017234514997909471696648470756662477381441878162680388861550562512511154589690741798617544194568793327254714478220854764763972223174002291133997762982582325224384154129699235474825071773177653100709877883112935617002402699630522977421162358197875068811647820332976425685157549303397158348810356896551623753827833611104379896006576088448544555680539701223197694605634604965476380966999989784658279550724849476647147718575107284205619809102114135718694499372882914082056560394812691625656300073062826854570723947019568684293132031485648547633912788481667247280286541374919419755625976539853324874726466240553502288144996186312846425963655936607240439165373342784688809165473409780011149345408941708522754925470383627240461011985968365935648944414857680994234945331858378192581730292878600124154447468150047406997325617797265391644281672831395623022496619551904354906988063803028556547010404017228666738582040153083864536084544182666861421562836019193093555598735800208389865516421612340684270262045128849544459612079694669694381719674170852304098937715409135531277210458130229524408436928595619685106204024547209991516656457978853470084938921079712651586980847171494230485720651687223398065491025810763577212000081752638435369063263381176723345747737400324329560299985795921641793960219947745964553089227063929715507208839009482364952942072242991349065534193967617044793647679357314905673418903869121069296925352297161443468917394584052707753851233893224837381009659933838090484678900745932515787801242873869721500713884262928234718164761341606450395405068503802285023686148101979900783729216808615738265947820561499498926634601348043181160233455492576667500469786046748578850029013374905009600004744256605676362218752188236774200596077727849896352398676136386178828188915655194054492419037789876355196079261573347520632537644855706838329524283231677334597817771096411016221644729681529516309788519325457818728135930740619436715908512267936178685500163794893621548570012990600279424711356305870790355499242190274629432139419769392801527607861808514582735124013437106212140561419269005694805002826415145444992460282655032585751494330492019209790107919274589788295838512432955548078751697408094751581102549631066999442482699163731148863409556633490018464324911903694168279107640044353696050595449178153124437070199938956762880671407919416505917898519493947161856957766176715717751182770303850708413430748872240921261919091356410117690807679433748534073510827318014090857245712939285878714553099213972179129467108098638813629698045023451891316360540576143408512843704601343276841377605893908290300012382773747846083588847925410841746397545345603465205441187922863182293791275335772737462263204387917296864548301573718992185263852558468092825558390923251632073112790449504698359148357109684901163864972414143759710178824318884527416708165081733960404608605581875215023529528780599967685087716320774703276789025948886442434163637824873527302473284505632079007945582995970191639725271212001105466175490255624151360125843716834589857614410746568853911783061775066744568308554524043152128822939041846425661581508692027043907527118706590687475000255366906019854194788684921243421802483759337861438303965930624081224089617147183023351352135048114547310604362861376777032318364264477560432777898649380466196361859107185761632520196187967697814735731115443655132736616828567561273461479199223897591787667384183429186364693541042525771662820257371907260176010642110186217442476811963527920289911399478152543260298197720134297982964294580699764400259440778870963291598680969389337503738557270447525216505881914556539343054224827072075387021315750357338101252340821506079983717268268576056705876551539160957264155408229158535245927667613469051535824756100633433019074124859209916683466947683824111395888401663189408125398803344792545258819917572291181592881108022627085448090543650059913293444865669691926017391041557170960134199721431329512700945634009134258650469935748431692175041962032644310584461508979102636260404199293788473652158086755899231733812570101742788043835639426741181780762218273262638449513912640939648305385196199716316714196646444870858954060509535360005112478459665788088316879857159003171969010924643429787091151671141554658175471420215263147743018902676193496041094595282743493489041051430589689723410770038237378516458267156158006293605406318487499660233693196948147393673473244759510028356557907576298860730776107379570256781343344818224638093220807570619325269123563845713845808164929618498474148385524019725096363231329576775714371988997533201037270901059280451952388784853839645638040586391381107505003083767546101127731267788679499447947598726059327412739896762171310164769126319090846305353786774188179461786068526787192045994235323223036206808574509267631739217199094242357254253955695269606340605260356551936037759028187980217610636961709666054302635422161079074249309339452571960225872473887550573763876458960779165534887963606418667781045787579428280319267483812959096561164575742197625193034642847831025451455274568707154985483023726726835721807141052532473335884562580428780230563645211030361353966486574302383195267929142142976436606234116389385775255399456840227034685275283444240758118837571348165199650449312904349154297896732615295894906651313276023594239627808185495027683440884017508187069203460764678815229307600600693106906094576165359183326519326939854920344936236293961092855074139776719701182389464434838983624323897722170614567226943238014818232378316839880368783318238715027261417283010531043572057901604932498006193445681436475574694989000572727081232744535429046234065989914658742450493929726452135102007228023392825103026224556524963101391502240005318570179779314938048518115044698311244964659837145375090705955242857078594391154823338085581929821002614825786204844540154120581161674625713779652450658256638703227398879154660938366086895555920701885246636436992527899517564408780376675673182708832122888823285241160245548163827594491641998559043378840911460425097154241732114055100823725933555949480629802994214961944485383672312131840035457358213632327096753819772893249810486215537329067092979361782344087585322368997747797029234287929225181025177280992229889355141960937734270280653252087102484776330088423149135123378096369819937845885180692044529345451216914935022843602475634631623902681713196256702486657386964485642573846841213253722721291791250957889032404945440115144930049822370146320397181075683311475892563302055809855577004490494372241748757702416639738582664619936410842810347458093345580616592065163927412549376803780150675332602068812091197443666158881210084598612916047044309435262569273854137800120952389497293742543134713408536332614030573860793835411197291554845041348650818174526826507542164723956675685767148215746826820360934492820864015974743665107026686790438523212320398368173704577644537890132796487584940928998796883759714534073323099454461516845141346295461630012227842872194772786546270380695765560189041579461083061290064354133322571905953024974821233142360638741702321622857922816043790452042683615024485246465021412708113728804464285260663323655136489843545453742159593514894471497095342450193053161283715355195359535795972262105768608130906271218004529897914983912622563775171739771201619034678403300606857694558525012387190222516694343412079405958820266931653849938345522623552583765253982597840995862049647175912391508414115297801972283322802763329555057368353520720972243617548160855165555210667884401513308634753377810843186888557405995907809730051510707407685458459620800419222469032228861333179252784492055182640463805581465093262846138270026850158032982850267365116545752487763434612751346358802847614529893674603456845130909201697119230864095077960823075689036291159727047480150769508765998744395882803747342631132701990688997004539032599476451969955971824537186771170915436742058479914748388108166051644739661602597165782758770297983350066757092882899011267959611355065755460775915303811621794539529260674995932684981543207054206361845309412767271945348161671589047824230182516418988252932033748630248171587567509626840254755813202527056615105444852258039837995094192870620619683235910619541278168049154547051995032531243762394306169067855875574971627637463760110347076660326990703872162794984406100712914676310155958500879822410079459607500077452618533127882760049877960003610193792652966286188743431771039888615246662135325857332489451630831729088270904329070759886689309364613554623509695468795719490179127516867581809869635156224695773880206573654303261671948970528270362112018059480082387354495415840150705522786073915056008315694193869649075773175738381798836282876541635426359096933300296277107203587373389231478479359686890740740887292310956817643290478727481008199910932574250239095157482868271953664346216058673821088040773082584441289663175089144973465090616668017210861959964692054999869526922750135857085316504431944182383286891508037339609710346506508049129727507335184780474799980462255400031416008095772606699516690243560444857802503188961246371632215172931567879394847810955093415954482676745134219996565233721725439026692280976364725696453315511759060312479606975832463112471752176649454340125122959921936506329240139173297497805821420012526958251118912726765213703112061669813960495778793076598465374094248335765168458034312849744503489104956033631876355523607964480753085904010440309925132941842386797088849640083234973450030105853149159763756073990896707858312741345206356893423593056658317452225466896639337826915667325322866016040366094307585788484904991487625822903241022706544204291938184535369264274180976509052550556179337313964192174188460088423228413840900980486200320522626129117172451655360525530526950747535755026258606212761164511845575701063085541045120796307717093287398475144922229780092886930090943217441711981991568643408162874007627256049015606329667247549667980304036252789338310049121697342573869222143503236763027279096389994343212228361891140175191896551839964256360045303418698595344101829061741608252953461341824727499289119126743080848559789670632370791551453928871620743924405472168770659387906525244114649517245234111910134567461704107549700396965454288223777550640813014728584325252823245828251071133934834628453070000558799570349821683063958259720929262347885288213270736128725586124791416278226177470221651662836925238472094490004731523624692371645496439144585673285157417125806897656236446567196854985090423127974523523435863973744079503025851323425721290981321628103483056382483812516109275513957296412710496681268625511052942945646350333883455683688391763700068368342950823149321859271177976447292629576488607422762636816003698826008359595933894290881006416637880031880395801196883260659357588188486798213642188779894388493929578066230406356669208542109015039260762912487529811120595598368582210505076094507566423115132550330853395673197092270424077342357615149610913745623929238699380867425671481616010507028618761796148596850928454270912924639606285523825307888926588012255955752195417712346249806437580083721495903728973233680476481464981415535976794180583127466384000103190077397016938583118533069197243267259872736504528215828426454433250736608854323937646718169816020637654031713539713234940515873446647267135162082320311160073387506037944985467322759574945344047866698681130902694020427407521727498087643905415014470549276120882734475956462788409245606204999665735913243186703837716599820393607947623184284123026800076261821472682984451994198615724494462148869209860486343688001310980956846811730814659604152212291970632304580037098551691896950130242560139967389696351961884182797075925440687808223111304952829501391291017158694033557153977571928040034142555890853344353471909679700843285150636416839439171226782153551984364097783202325773567528072402588458426529623307889736543135116132398401856960422897528948390335600317562785972607702703089898080389895094470620255888283835635013097211824306456378072708350931221725651790054232324253453412515865400505773415872004501053101208343244829143516451566460100758771781693753497435583899005908048327405013346875365652521164772243204833986981301965195517009294822361686566009722216207727048736436045885696886583655226904885930414453461868726547916992347283996355953314100440659476469489776097685550995524597268851963064691831038004883625097801815837794484724176340710311387381954955284325590976037958774336842405293369767854010887668023885277077467482140829544273598128309020832686451616601454438624965229986112477251523507553891670775794253988004111133497318259606786296835268586597056936407119800028448321384503810052610128517942315377966898823341926908973249472365716039658949086154886593258552156252964636651860707848112132645770229531446060894228235172155216979636981051347315275787482890820065133955028365015955248021612258560561650844376551356703087587020805868326445015805742036027953451485371531963430932875863258859322546782137328066104064975490808356959251942998079428310186516003689272974665000979780240764579369952721527811540422181554445408681614997992345095377920575296206923877977687687121906410517736894245890865029142519175591157421538561332931067947958177755548447611636639682045622575034522911110798788097671840627630500995086468565132856294499548734688766107101938488157200649755822673561206671227493273656480499562068704113208637019589439298738060923907428968318843797823457453509850936013666839522935558350716994979321006834577861462132576201085453779926843371460580081682957546062710141589591559211684392274201079080970541531002909914455830301917517220820399885977372701891120404128684930763593924469887100898294381448855637390166225522870638603972903692332725245003184620274826133608958932636273414899088336649239491750808694826129444975761262026077117339180226403054384889733332310435078226228575587175291152916970047763608833711513193255608713427352439175106104484013744600360789649570686115129267387289339472709770489316395967787520267345593598806565441294177561308870029052111828102697352730811616419545723772415540312606741707441981733175013990629002450158144402741391841939103150332570614402807363193420978202224800089595526537053203608048424374712269372715748841085267105917759565506757381040533647806327616973800490632910924116532689381569917572153915269598296763479787707671049874265258899256523271511800143307608996467269203076759357231323818500780604384087518481239538028305523933902052236541181790661355705032972564668286773565762943814296017125140363440711214705565197320290811064893906284820747408105090139326889940041677069324984586772335420320735789180994887201476091647235049808560340093978698493118364846306801861938562694308485960188769507534934725010022856189957109284866033353216890018898401078009298478768910929316266993509037859319545098267461312034709922866658836585385423886366269135348480816790772862743727203985058025899566937048520425137386555448251362882083216804949296883218728050494123241403764061774215726133370066817258063596824002565084945984107192979187910793742785811837108636483626132639569571984606037276641896471940797095298722795437998489710905345847062295056121505454919642968504931111301693184404794026655632127692687937718406217433696225364597711986803088962019522021277768663051454541782155548925965074472888972984939778817038393800359219851939592691443904303253551350228339652430674567082291316776850184799354009301665668442662237942351537745460669518009529917737495508547739273388104087237141628124952177817158982560539908227118070372311333487564008265018896194252344177174661756422066796919564813166745614580712783215199116755056759405357950982847089621527140172353264571487377298784425494330047431525670726162858989599688576571666564609068568872929814101450132754721405924971104720260178257761806382220941657646591808389158935537420435625082679001074222318218459857689768766673015165420963560475555831249441076814827092308215047943583004115278248924609531137576068559175798630729647233252008585366915617472880436092811573248797700783656110830128059682506247566495249325551812112724065827665955849870522481799868178574870433760989967684113792715964712243576396316461078126390989570351505660762864370923520027958128353049119600699692391393566197807724246963346367947072137701230749391257855477349871891527088398413763881063945084830051430785435972330457139010616271530800395143656900630548027158399176071214518528253394367947496764079498240142263967717663594759917323573601293332677981891261847180805483804244271467713583614612322320471843446468445852617380153308001460467647048832558620007025903980211754677002627938476512868816801357909800583141337922509509626783561479112918579219862636762079868479282705976205373734536661926904687521891113674299703759588210435880129098519228637220861571143472293948889150820365214507618390361466423071826948714737913334379128101057487460019444593086200895592703848945280181073875137278273392304522734079570688901795020938996456652865028636783801942611892533806091154779428743639202620212145161924128326845933126883220305670579685298608153902637557338333036275925794992877698196234140185054344525681947327125812856970174694098928930330830618209865673278193398140326804147737885737492223626567256330080073001104812736797771048469143749050999777578402007924831066766564242401782733993598148691911215351415732523887537733266235693349415558770751988117122541664463793403934890463112370080061057061747929507250125852787650933401971932691237500284580740325690693593492914318583887770381462418780234739355850933543299532105480703723833318638630374024899084419205683694690499600089508306332452984569820107941134876294231195478477462731581938498296974337575425311707964252905507964117069557250177365464146673961784912021279807154883177901946114753013282009090274616851246230990942047530270044918184311992596914467518627674588749027128877789307940950600688921993998749125687644284169346045623546722920864761119893392509309703439892515713043469875764210247670164036634514755883633435746903187425533528637576123036141646306625872707618729638973661891688114419120787853756632685379610992589114078928736065100247688621570229185576200303177177479723120008116981222918939202280688573817917870269034499346453442779570866278593258398606822061519668656680011710146364294609993839909370469449117863602374478830266198748979829843619783509065504973647527538745920530917803141869224096303674906184267856878668557153813779647468840831869268369658789484442759435946929591892284696937122894648176072269908469805625894160526541972315875970922908186887750862382682504727141645861696987505417023628383312233784788548677445185984851507347101759537603861586625776763967577625597364314573504819455311248250174717993022376289085531277943040259195427098495441977594826233003182676499504374356666597743894240293768677312010194621957067313541929091788059792978899645417286891456833486921642541381998154918326953485436013644488459232213932329756894558144432743993160834060766016904890578946731157767061253955513562752454727988749379670077104326706303806240533304562858867789667397390463982448774650528247080084028908766917471864167050216022530481048572491392937991067382345926088529668260102986591290938243740023101386272770688435590726248098034254407490449657365894707565555785894989698826347486630776299660466210740173688016175377997361511481411173506410975152172218599604038174152998187420783626317170927498450838358970862970279474387983636293854549704261925620450558318045777997910924062285721228263442831743307759865314349199670920675034360578205675118022276060308002879727897269082884209417753651494057062556077420713676970023907941742003264746215486841391020444728467738497900913690320631247330466571818195945882519297895246440303204147009886842534765315630932141653586917585627393621327260799277159621394162373725781361728552591788379149314056415163108528551892601711054558412195005881967778063540247614187336542952542128811696457590518034490084476819481775297620733394628747746585719330180693119076357447980347440690356295444119213262537450106825692316376924999118804965204025946817315576399297974089904472830920388579980598472580168262380091642310524406252713862791065318340776689567854634995341345835701222030526303390548866516870930396944404445938235301774715027784807080409429827440302946850645175292990221497043023488500599617774424460040835456975534009653446539298586632263396184487454631573291996469410430098904023791759589843878755178593470543242689886490773967889626643884870208128383360309863155650693819211208379633785726822799460301321609709117834630459614624868827668040590470688137686711782737053322583027924343894770963588019344769575639210179531110559968427573894234761814281762839132803929885566092520630026289782258913334771268845101333860540512601375337681516689724970993922820278372004434170883047415141768741684034084787575372753864036627200108863700027811463929092739087806134479724847305603740205324111276900561594758310382740572317381796765950290361413800891474392369900254011683156830191826384096262177710501832402421075609532976844486002414963740219734080201245833340663679297664072366264755750610882492101362970779829264740094319133127468318420966141550867936135497782328120225373008643276712008085567659906867968466069969345404533125466411691077393243698364492444700341138736507370777632901630820884429982844120347594197264173197207171448514696720490644267052256358315551419214443416446913107633277190933149907405876710782607967639188232658551501522206048874060758178115109576295887758751374204235539979946239774405762721439428472191711643765643345940273824401308242899175918787703244803163033389423197837581388359255213384650447055605644096671272432336074412320297859069683428899742059206129888360984290982722950148348501288700212433742933016349904473202643104644250741479317279253750795248323587020071644349051643380743040812662358638749619596945370377799920276460598274623806258257781337322878705656282918280455856927797748359671184699708080075760342297108390631424883844077281662752357075188205491786202433497172313687622520540782736915574283766118390603185939317465651928228826190272614019766397424015620290361584947985904995001161099217838356423967971938907848289022961223322609563039133633949239415072814541319011396532027942880266800570173231828845712599884884543360087662942286223894380393394820195513304210920857588200076980867206907306685938762926491160534319930526011273970939795829055843075348181707778060966682229953834880057891493219934383123023379478388674291762243766740251030350841497367917638614201162633074426343610911407095041030491964248889706252019962546189129469883688482778338113411631209101485326848089675936201149059126350699070373602200804049787196551175433441049807496138243777846194500318747694027852647062400801162021061419513801034547113420441134028254723404955149720291795780931291078565631663613711724664357992060223475711333783845376513574959498708829416220752577583155828035651368877328333017776705439645207353567282949960953965469356910980908476120638752250326086812964680498589738830873730286329984873355860834550879230192208400243668952257858281003214371060664780308813287570881023719739320768655345958520547210508579859748777149218666396338234864284005947411572760091926836311027018015216141984771432481258006994050305048634427644919299816321075157874924214029083180392632622888884754600719906277841847180953866286044588962005266578928181794292028582480526748231385042615258409391181904928006699064999115289974968255806948402490872496049873857439187209717827151010714648612378227675293913370213688154837728531139494035792382399273033592577809159563614604218076584130219740717843833478969656584425456412462676788048645838449253699570791671733017080336982733948725356082774062957127545047584059063889050051043881920177820500760038367970455057984151378207907321874906563529323797777253833841640812096784471444292134401848190258139156931019402971751996226601985605319447477394236497322493557600869041290756961076659807827879776213212568096588257328797354079158747950735715521123834335435733722363401523774282214549643802216712073520175155910946165072513199262142213174480011531070422571671355833958637032041371709662311469709495566763976034261423256344466818209578142543431213651004667226936666171773967820550669616338094722964860212015212885597343723762767467105285291690754078507847543009851262700183649003993037012220116954464163056710862373575719506589816460919337093220101718943121424825605707974031918836431148250975056492618235063134539866438453039773260666530749742828259557760401731046422542010099139853631288081671184449541277946638365844143831768194457929796234465271910979120999741015762544924383980882652291774661783677214106656830582422554417385798773248241779376036103047785754757645932304077256572513439714432978763696436613444418867716933789592699116079736008353445368044367837447784085439832105121544213198473304980633557086770402685830471669379773948126729096447045461641956444146563654800252135973244108076616204161334606058956266474749105955527276101093221616775454298745462223820077759443932780482301258248118289389315028272773138216429266476306744102646322731588036552888086441963668812441944136770193062654665358624070946339923744947663308469032729317305371126177700070348190528441587425482373867238416032512727014777328509386356034840358437359938815082388562449113463331458672113595517007876189107853208429232259230883888149207553886238902547712265246677212561678272751928684781136451783636780505655980347410962825315942008921561857140507084235197917610589215107054928836805354518356188218397506764578961507894711954623146446169675781374476523325043481252484944261695091240901213596177325745974385043781946117315070306667030077351212474192473314518246689943730470779710064083255793377186190128271265883937042187313026164170820346263726128339157550823389702567309307339501600182584164526856106189787086007300819127887865696218010312263908272004279776109750097503850493546444393430214009899564599778073590781171689211751224723814217063538100072065575941137026839891129396183729905034387088377299423715086877464629548578655112864816361742921949169508568881627349862834557942767581867296184058798413293802737752019345726706990236135840224774454515678344923401806612037074948225739259969086966203990733831560159802305258231735271898884078792974713566524247221858309719385339091975825130919109221721992453656252500396818646077718549709112275343218866484201038619638150519205529694091549895778882683018799760047075267931194152342744181788826016640919139909407847944333248165711105765303926419222587979831656021515733852600123602951720037477291753401510821223014299578775597911030348642690606481181222795060600892048818711444412627805127609161216844015099338753252750766843420526090344665970251352249935718169227902251012584252760249815042891492411387531521118325165905696827302038840350558542838565602141815848062843855467533358127072327387681266031354731498217542927798104586019055215098354936995004990650515036563747281476397628917480477836162847146376313930606171176019707522679028354665417331362275202587321476796615255654788624321315108755258449660234652288368603465995077466506014020535050736134221295259414385695359020312439401513615937164022252918415376982360032498717524380219122080676973907581498856677571010268552788010618493341573232716673384870097045454739576225412096565273878466996405106094911120413240784497829769478873544382137088243262416187623847052005172337955335708915442915711246639365299189972250667458983117191566644829836874124770065605240180853099672677614011365849506884033903722551311401786925873054655491563959332084417295820266635336814990523477759288139635215132372024062119605059610000710028183005903729421452337701405739196319410318360991405122441089706263430959116173635331880927151925215099263305745352988888474495521748030181697787051589531346448112912345303160788198339769915547807558195425669386916421577324779737523757202571663000073205429171031058699493605005820540938771543989200627443361532061608957716149596958105591407017277206115391518643461987664012446531020627848596139841600417372765692709921768274426619578520017064671291784042300110896111660961138461177335332622743069267907959260316046535236070455261604234840366812269035023413145084435213560776429638682802236586151597522576784953633168392134924509836628809616187748225568058245228460547411120247268001522611337583158174696667239947267033488547060622429711893138637547595400678662229721667487521155555133922533418476068743077277577548991627234064814036894674617989526681508197754359038642000334303278426776715199591629581446929185695382393512328454419358467126434283341354375965861197680390224841490720376759620052519985388145461745288357526800423240105389570101352803682772160265823265777254905765035600079088260464546750117238521237725361047331181575741539256376574291651109152794582057312282516550824805294270180357199279738500591393791323799113439537217949944037172483972379061052310256377126797587608255733009932839196861456035918260797449673094627132795047252156786311741483008394074152352284686044947955058840704629521855752015967365545376242038043308104275265018422437463682509072339259745118002059780071798831866225189406305079449452395717867650209562064163755881753777919938019657632207453894142726357391617016619090134482878002958954494409405458533549768292067723141001926334458139641722279632390725827093250278306701845551671001253916997949174748462462759207785408690940366716510100424749514427464739858338150341972093886936514343386952286714823633728985618456964993780469329896608825227300469502319392401108922475551149421185643722305883953360299426372650819778862700651370905816908479159844118426533744801709751774930406527386496951690930529247987567185638007950152626904170681166144047780904684352438278320381347393990375658555296512957517912267873910984370650529437427119196389589497834262480416367261869326591354055693398228261472898733600913004238264033595750685213012484516520172568428285617201761840835911153645567382395317686435191408209550372820289338714289770165401798584081093119872968177529732839892623226515600561643838096839639358104937232396775449031327407936343823609945231565186034303108790770438207433877470997519552414734913816608131217959908603922439184209329639590043012552638210814119122262241279785220093428289798701486082465218341958009146723656443252779812361400430723215604851321811129616877468807549606729548270731507819404455154408073416894371375958915153082331532654153954329476204696452834808901110688938796380545939745877115698970943493567867559214176599048924772194868327104261655362826838062632026286061965788764989216403203976967493397146039430820845527207185904874016611558542502514191716432921277390666388187779387327484004777430180847424256587795280300510230037566679604955148216341809892218189058204968931931919108864931284527881075580640468638258569759841614285289524435042788144072009260896208491995575542635584824297814053829806009652170037125090687196662664116758679215692208723369508484265044151999912824192949493455817623631891518060579100481706262853634696071466225004989076468777053461282327390527304971997933587622199153704323940776341046449800219666582704932749240538800188596735217438916002629042359941139560151505294147608582927219989004223529331533562003367810274965986067384821904886863146041850060190831473390548832749886533520688955842294547357195958620316469685632045641753226937043374713294569052936899917298540412188920868303075076140548236209333770308585466726429938749556732134390082628761568424193316007766684580822115168416825396972618386978247272710846695402346323810556592650512813889061375750996408506101912825366720038670113511211345969823410834866190895440310841536077533933387643186347622191472867439475012053690687509745646559310637507129052938313270513214922016382294644529088737977603039136246997851948470344873903009084866018955976426772654540032957471424669088875809465158159371867042223807578521735385249305996532075759055880302791352208137354590794709793511014171903295911635419298044168595450088960813905112019966758590695467427894422085923598589946337457213592437649123311682077945187917161078996856601298426278286596326214057729802250846132033921056885237873678038939895773663312725209468837470257741723705189278498975259451391659350188673165152632572280324071401174601582282948139676854905220102208644817189517757914336088177912079323256696417244518229453696692280477682794309492082056865163446672140864384667477065622348878568451109752517090498082907066710378019464027222903695539420875292504734488914701071708733121308874126032315363410674430997217108264524640706159058228666846445900085314378757895242605810671871673194661517574190149869630270185636035984190598847695043341985266486450568889236984340624975601885894534640848264066338368178984369810802181773715584333501805312370117939979488814833357844052150423493901203447496794204183847433574966327219150472692265637257003555394844780683546347035137242612652833368325991567225493662397729501414599171628194425773904356081458411352441345334518687506852784637347104015916429021192265480364327500040155427161516291236454097835118888517432397626050601648373219348663770086931759027763369893385915556351134958864130381541842265319523679748005802308743576003325035376014789726954259221945351646523275538796639228704593881218681815718223428830640628261558225357553630915065036915554159072648069032764478369506213876484200031889979624031474793232941400984207462458700473542127557341757495889471160592281817301029314287522477935664583437653284797237840870932194957094028898800928903588125691049707606759655733125206643800575477587977294877894498118460738671276215033797148955760940246874619257960677127924745208063321720981996932232944199250123376707300833211952193763623299674718649470671506105290030006774732828786990073696419123926557274785430761604756608569154762877475608997036038089502388988372724064674394765558002490383292225842751541098303069266457735958742644438077180537955343615359792408028484150330356323364538446772988510491428673683408261482177173436760710171399151994644592561434068740558007135324258602277444138592237041306027100396130549817769628991905514023319508423562164488611467189504632188178843928690789005935957340608215872907088482629686930331913357389097458820202866197309659631837728078709522533913104834844847738724315102367050817672406564349391158053172816567829586607329789104728098804985661701584110847431306546092131633525957374617606635429599111094593149199609689066653509316510080895600025471547733940486537088021058471475542994908522098452535166780011719964089256050821249657684600187856529933841723296929691205008863152766881131579568315356134540450624091090472859461992563810811664859178712591736832829303488223203107554024284735721466968679399049187927064481275529476971717626565503421174970540638125204411086723396391026395292136024010465014940927599758995710731195107053258777533025464194736820423913954970436572198412850475483398755445974297605756176861634485082545381285759783088034179667348249498482020400065100120196066484207937337227804737239068090244305069407846531981313513030455262089489259656852764056121656394321445436998246246477019354422106821355294612143643881931107426367145259823490559264803362285688369014478817389277570022389385713907500100775129835424247475894024907042419148220325913890648715610571337533421688988054540128852208871326878901418515699418769431077254168078728851154162278576339922745160912978274016924775763632392678642573560753060851587400563510291887177720627032969226715159066626362477441210424859127435457839308874022802245028317656809024761240867763735523350623937294659377240540444981088777922375841869711819398371404547267705220921465142976109058872657845032812418112876288102110933023734519761140478025912444078560827827272594512946626696133795259414500321952572765509380329339817261432920976173325052081918736640935390727907273127793940193331030726333937010751581999156379825280683017906675995130284208382764590938258979619197556786238922241990733897053550927724763827464558776127986760165122224008172425849685934832781503248771780532821303555877373525716067976474643873662440903045832409217942163360229636589411706090292544898226089874426809339310516080796576908636127438108071639346955558694872329159878409633453273531094207945995675279257935314989039151945396465403843550421021575130926154464489526748385636852298212690283972940716824264502588362568074927462892176179536423298681273478981755825790836801769739724305446160606430987659729407798870892056840746361800153742399599088337635595490066626349982116106032381889552051780675353694111181243115091433944574544597627393926981062797775561595421312604756956842997285697565619577385190754875153208812061634491375555802046076205907189403829585301693801862411053926688666486335503561193808413389581480335129940753133288907719500769818080325211906106822645820956686822305264922523035787851153475799678511996907771637562658294625590512188430451718200821832678067010136494134699333411933174311292431959312636627638491785328859233685523429508335859212385628651474644269665051424392678611562793925357648859271344429942324761358483925243730866239896484460742696941262023812707914711340502022621008586810847642234332213314397173575773172912135065693208363851921357764164474637070480545427549430329057658962373873578993559010597690101941253944505818758264401648374798603912291724155948521410213658310800481698623012914524857872533193564473244475862480118056892027348691940600607124066830916119880938639878613080505268371830687311881225703586348903111766945578582777028475188857344120700528971300437514022910358714436977530072703609686134119185044726677322862180669221490606677538880336201799873153023705973297572731029511845578695867868501142318963510802470461211049059240978036045348446036604790661816695341644315020630234461240325275726621266146939699460987878527449587630933378555034890484455073689619682797285147802576622238009180082430877333219816489952512304741951228297857142357010498739291406942771179538952985968403537871144248623549242876712025228237041366698847963433668019099166169394442918605352674208896674666028472381556357891780008431504413946364841496123784543000729874867078881028112217167814872311860063031883693611185365912461922884616657703187366613001111797407125392026169995286339952891410225770920984242093072103884336698995110443446689830793739210742348448524981264378145855429447585178909727195692719040153521233102723748047467790862204615763459500317831920009476958636063158884977913536828178555518942248752473192509890439361306541401115382490782684639026606204466551581647204454662571572638064840129558811174041720476182278427685341296917257301317326150664610372405097633545038467775343105896812732656906278486857097709320482792598959961201568640557564171119906945279134530964867247952124575845868994337946872607680167825390936106577686265121007496200255340249226182127761464191865327908075300774726014632204327833161761725131024050058865695713777182162273432649169181698363057647019999042502560829221169729113166347812965768018844874518373234147560696840906895579086994686586845168320808226398463239373383647830704378239141284084790998611210209747112473598962431169985039715749689627083082892607157238545467092825706481338570155114970182192168347531700490278150275555281804334475811198227656526298044357142500243448114688028772329090702497926651288939668328309901360761146934672580293931925615535570443091519832931402511568563498685758741627865481056561821846372672049665150975292904874190667203944132249551987542690935970555622642942087306269058319913961031677379124201622118242045217763270480832440741523825617653257379564274628485935166999998374522268596655426685982703364106241506241395514143680970675107809235363563880476085609253738730422614420104939478224340338708419652701670001957148789043777699838481376184929018060484255905139425169783596857774655686222894582980328294548608558762938464114490920351135318348495549869695887985821402616815218306342008266773828741125332485953233021191155204489351690875011894003938276232005862098274994841215183993766456172367779564377860572834866140496911722827126287945582195614736939700731444683985536561651677333023674512612882611107416282345133137035664347588137682653568948649996993291651245620034890256973238833024689042122591688643530394769191767020804890210505923382114881237930433769996750857252304336233533920026878714035396215446198497411045439828739821116503000741695887258225766498941602510078323825614589642106648967084641230743339114618657407471838642271448778936879014803834592429494950828954929779177967576037678593799459614586925542558694485720539733773766223904357158378965031985822324320410134691427334421283128451145843743314642612579430223481177270519924307750889449131829084638199565475629107249236162555832357326668783795864457380892202324104036979660622238356043631501020747753385588156236181857415630497065491436606534235470521133559903896909942563504359560384938414194994426736531269661652520797033933052700488295490181290222600582651180564790525209673506338752286290063058647499627741732141999690352336686214996072387384019219497748698272911671686593952691045860293233122195900929999546682483075537002781748040822201094595237563721757732091011511546037322430241615534013515710767450222236147736788235112270829206055054242107164819339920320198144432539193817686225676984086208612426732006670971491367492034529583353699725988233213012332813469458092923018203871898048011254194914234705064258991331020097312708935180530198809175860143271886204250406611909857830891984630675132205603422238814897725247453043364395963480177939262870836113254142856076585977233282321593812600964395049148319923293386235927939066977792989237928978329501992658417369322311464372161871012062226691848833013960688451396898961546291287913449081142614204639098265690805015942985371216274068479047335871028053840688857126385805926364567069987354709623752063968857950863492977347636337022060133263913753916114809618358896774606770598436785565267881223998652345876308784016853604998329997126366940413454991693119279841758095035242188050369547295224663001500296684731944175405886793597377734884789680401846427657914220144769530116314147739161116270500984811336108384970943459108555168430269115334601429396267954631613619707600022779596622844593340524818261332843618288463503219395031086444220997798401876913252297729729682266263998788132403572574482358746495072742349561241309430244313987252213306574909083448076056484569368076916532675849468580523550169322952076989906757100026019167360609678694807205937727316453075669804777871430346371697389560574012602708849218983646876770170317634973577493017015030739756856043806056406170373711452265744429131364333630801425276838468346552364091081621390067974015541651841443798527502016569042251345087816905180054042852985546363433456328848875081550389621377619812012502266017613375702539360538937661665367920078791593602440100193841680497026596737287316834244692438650307575384022776210386327944099701130117505844279282954693798101859139618420838259712564680716043351826135609181348847952948690698090324696300102197554555241121901026734710836018003098975460892556837084401998376576396080879086012463088403054648474154904197706647467688348083906390790741659830633003676247674395301017650637482624233450974317666838251120499961174001209628616776227412958860911807300955473745581817125745825494482135275503914485456933575971366303562622332734051690176850606125151032564870910738395555463942147061366971683230233410926287280023687822486072189852505217765614975332921762036685483842842493049445060496822666125420219268511965543567854437615310299386209108361334785824548331802148341124509942603369493152991660766408831335959416424882577062420474585444245487656158556512167342351435090010141905180206115269847707459868097031642828597035282845484505618242541832632367106754672781836579000629330530831335399029855384286081961458917631400428413352096433005838768989363710731502968870804189398156008902446290675217054535092926221805516848284630851439206192547717917347670774963907666350794649493929586266436553497570866849135391710749599346043526205994788658177885512785261756885943435038159041757497099956054072665723355218685432138133271425783837654741807589627947229584240757102604746003015069265416558571602305443833330639359092271915843464525598370411915287546250911934650857917855532074696419510042790136889458476022883893633515807327138648462140040674555860307720464823010380425705862137182639950882738626444081068682908401437185293644764146591622409505689231005557302828719887384280572581821875025138718229009580621099494548300398112188614341776632303607875835304807057291432358364242416060228480907164614128865879213418927951882084470536024206283910041179803321085444442484750746316195516276231080653854589671705162624446984295294064930446890901529047487777556330104414522923201070680162948387289334297636951890483898700046210937338379008699219851814646733164469588106641444125634918600145677258174845415798652839992128113804624752113469769342858234729846774746686203936728019992374546772884760976762463025892599239472954787384312508058030973889733015761666910690165881752209759202931370245489528580512720895518099430205677175528482346478672937595262231715908775852844670393765690390286662206542687794968813313508842612414458961034029911647797365585508479013322532671069780437720255151023676519421316701681814347242936074742835652189934251845000456741380100128423062206333527996618003777214873392987273650222684695269210341241466136346403529359281839644758897119911379365654052359537435862523982898364360424720010863349408319302121074048190357994469951773549496295545108329864285916382725585581464639935086001709136472349455444506165896740999982259699119630497362053260099237585552310700467440191976294659213683035911850633491526738153658283777544382654573625021898348312491984714485842659383120620648778721122876576597886890127439259116014168731926207438343779448550956079541643235020301597004194633467850753990354765362955593101698983395243808431140344326342251689830687247040891243895275421157531173082114056496029476511176720690031185180716046505183853021486462481652888651250574948898527767534415713429773184107416744360484927989950751718453862456472577845571001323829139579649285907141191551099461107714576463829335476999900612931028258389991086164845903799667377593087598865105200457455984564346388073966380143753974668858655869589079771886424625073074653841371376559324940591648453378170396502554161241233779452998492461616745305819057345694220505523961856585632582796076647727859616833791138222782832665828938277013270834445338979054366660072179256314082565902681462006112815288960878508628428106453266631657935328434553159807623508501031862075895340548884525721843449768634534641260795794683169168513629021284834416013815300156273183394096988507624150876582186005819128557913421322471481385438821760150002181975203451729130627517142368191608559978768408860523912773248285735407335835722637288644576448136914439671292466998301034513993439375733137841173156029390223079988939927417551440913448654509292939132665482222826150352516581683025285041635791069799757266145741247466023001365918772843613023573474857440214018124431201833104740831396759395154086566060974240244679399852866711572106049179790537390703881000738847859536470731881049370550875725087854145977492652865365821748470709729620258043852895665384368654433293988608060484584741550217474652617608551510459895358372366217188893409689371657908535726061030343736996451365488570287464182420766473645983103370075794940679456769443862742291067032681066057434893669403235605641408243798734238689555598095342457450288592951948332800582649553772965248938756076213162014823403955895555800975700128103463801912907723990385995627368699815604177616500998725434923543269824314513791596509175811898800189226536953323435540479452964649199992505937549210699960827848350875699760799922180316188261163851727253699705811207271663231284596304024246075495189775897201316682390650397726092793367077010113704607024792390801483663741561244417678497906239512637777572580778896890631005646915392298148756277224852040851518816222605359430321722296598723887009794096812828559071900750232093613267267798862915693152038445980709660496864218310762643059671299654931563662477970846541667210440044220922772446020664104240157036560714466102183353355633727772801148280172342297396123215394326592715053959955460086961517584787029800702118837139400115119358698728111940410688856634445589523425365011420051475373161951506098671519700428810854392067424184960712421629478112172732423662643784964970523705580162876871698020559772245769107255611504859175085609055488110599956404405790447992662073227631904501948408964292477789744459958897412143602163480008515947373824552018118956487380098008075999192936723739991858144380942687949503573586996587283270592745230649115972142742893139939974741427676072189975029465580379521030470423416774063370104520556899912995074032069078860235686720758276229226603316276690821013298387801817131209117025081473031102261002543393359907306581327797567769052118692519158080271993079860750998240591678474038526981703871706172353787854216860492568129065216727727247497006775716311242867898822575641516986794075138520155033937416537015106881690341215612664881156760809242018398512240454519031443445492291974569166903435270612630608715436494063825637464380113254859376158976532063715998946890508860058729069657557900138431470455723562423245796584511335373215045079292557721071492797852825887253468888621601161745129924537869221929926402915937287213503068087377727865549263605089975620289430654186519764459874067776083479878416245768524784014380766880735087748808618786565378513833926721806498200829187163875983258556208914202950029681893793144131870883001817192157632022955755220566351232009094651644233292768201406119241979655002251602299628075751552873412194100805596483981146284610960080074826676754151220736877152670561688109683990951734588270560978893193740030266378752119759595560035944426569664495020993367098013044731506383608869966647402504977830162297577673444377954797046613008482336107418388748512291947547769196119551916445981366037444687326170479357144091726061616276835893491795987260493885800251519780480505184792652873331688266297594537459969279662558466504496487418735662584127725836330226197613907242629271107284645549276833320540666537762477085664628904387394634007810423805402080664834648470880076718272367148896469845979597719937038642026856529873236799041839694424469684832745985248754467798631264975160758754839618102790275556772152811934321223723134992087941651398528240553970054572854112676365076947641500877859754488169542346403699468981166804013872568072550997729693486054419057324978166942594249393891040529525737796925028894699885907565003562844987420356835523688811197871486346365154750544358365602619280304684305493776684280825156804487244569541335883895588330730482866169349069550944954545081280356708638946941892915334275902092026703802086160854804361372998533094863751653138356710763222298679659971274968111464166515271028352466915560195960921152359852542320386476929153945643919799487276143094798568845821289838185980491150277530463319339477967537651116346366280915743897181494161662443973929143843788620635272326468150244810176085138435606949507621049081346993138121113306670888315916026579155244661605648236646657298573644628316775259890418264239659381958663392688279496840539724212441071796256844895933016936430483777457070944441371090004714493581858184459961082203147730263868433026846532551898697943404340763817639037604740967714759941088359185760084910606399939242402506947129369094638626742694833821599356091609665005965857602935697751823229389504283398090891713457579700391126756044892183232893472375708226825972794717561385309773669291105251438300011145064206470367147544236123106495357370931015082868657274524163264663902259459525701429014255472055532979260610011884159888099248198298156699558279497354991433684656236244159231082480946249507720415842615755800762987494668461204786459647687345453566642958914329865607753709706961232298124322735819868747988549630456322480817660481620185979826144556015815748524627481097663656992989883306146171523890600405717899786706190339196327374433273616759854716049686589020173090506786405052557966837982874714333943076632320980677494205858032481841274090683405155012791750619686774163515381277341760345357686048242755588387647539431157355632687645069962048846313628870109635034457726459191464331442227096954224548407867384592090713573446019134109287815437337725550359113034296284278645561354387072479747061533482361830056868857666496321312879396931929512402299462153973093667532192698116680206820969886846472661192030026827645318988505450399163322679110804722064755406366573000724115106617438218927316225421999435305384984474462229831878281856952356094422844590182428990851904382706850951937856762029429039667893078977869091498679506036054637243930407202711170651817982928961695203417533267063311311797173906289532091130335412670761059501430894587471585427257337130564075988049093035437536812882506000166225003246756931467151628740085016547151211468225850321767140717950194444647934918082168447064323906389105165819037548788417358163446796223050837171714663550792842030409569800229374973824141138179731897055942522133204193810308807197439602680783373529384763195086637511732831869566404187465482192119784296416054159025616906760550939273313551952101136321228940439049733313612074491244901009129063065889251492819445002230248494284452605730152188126154538217957125921589516840183030004232524624702629598475207610791362350604782782401948356173541359328827551585504846485755057381389692610198803959191464465101563947476029535295859607784799247080476138836059816350997589899463648598997856588973969013985782565171268098518947054573193876942200252995959349982010568778684738151779892715383796272483091502882258897842810600307521669695057115011361098107920835423759978271707359473285333930181349270225627246022077318760125108233460670683621255054223344241247699492257594497300034454523306813216299004730143467241603098039017761450085403226070429812900295825675061283894762000748538760543008479279427175181589663550515148037451766120973344632204613163082531144836751783071004535099709852365379047457218062687870010960740298528785051428998658421470185027233093887831472068807159253766060796112296003352616108859538414555635960435468195822201075415756310173143900034948605472116481115630293372634197115501778315082876155775881901018708244237780137849974884395512388139162378755113527061054501033312558864729912338911789303094609817191834097847488361463330662006209670211141824318334259770999513023681045828541449209641028518263542302544015844225698610655406516345537847941990903253160399361472354142833914501088999266681857031893016515277641741944316099675023425793155053903768287716025442504817456027167512091415538859803663294603078663086691844246626275296616872216084051444129201018523753493747276335398674814846184460389041509134367836192486596206731197931664089859596202194514347639599712423882134338574683402595614868221515349273731859096926871742717633540747554532898031577857823996389708687611961208767633334497903828864361872268518458034550055669974777658661057978359821556202425884365480650115321581062594409062370655779692533511234184876585576067296047126198364694862026364879846999427255447899746113677535865753168385975082080110033229296552291119872707332919463944628005691825327989079952241582438174317431373518508858822061830213240513161374804516299408701828339162790761758243589797586174835257147292600448876847513977379422015721896006765990329324535496971216097474262289246373676142707807821378084561740739983221511144765894105279365597046653865586925462888672600485634477105711215553163013752874194391863667870619214753183018759105356433309046480019398345304965346195495074366958460808042739705750000536682907059639959946050791945515874317247044873073485930466311792857532310942779412394611019197984060281581339962885700729476345962338003492321586489892807854460007189224363969511748524795371002137754343469346696390970870150896611898480675282549367663472166694086882601918368203464800893016064516192073355990013830836518285679805396855268182517745192907663180500871690477942867750495861810101607835610537194779729633005618603182721716117258965673451536051213565356199175445324336098656237009806093406715766228971827124364999979812109385429420423689340462190251512908491398938554618025135189507309225168834037875961509138407317020136058785114187032524070291817045508687760146004330959323936149130471488190785732068084804294902100721927605021778158538673224151752053968616556402434606609892382974816501942673647928878803391933191837077034756592926159393177743640592801268933856484500148427067734221333047545816429988599031905778949574947179228892674125161717933886429124668113797705774870828289366280989738312107950104604450926817329236361961524311346940620014505998292837224427573241496089367395946096298617148687592587587158271862436469617240706911419238393673499652190770075783957787885015031391296012047464720077633832649066178456924349584578217201114873038120668329472584801027541553097383113572071086371467549220587653727790160727631507534153079395934631803152265587127746344012125597320834433414998752841475579851717036366115093589899983606476619025873900940152275708745531110141612599892778458316093649003839066414894093186660243559303408544532468482675278928831506761297124373681119948765751594501944804675041825961624606940775594090495955339860365173935334495086168267705024764129610233152162012508716649563397930969496798910878184463418430053777501514286645892038029558807182687262633572636467898771727335839709054837335567992425266299948789713450629573518157729285997847684886299267800805545628533738438860790980270132537072120946048011780368422104793544856328583657090840985594515586982678484839813932813656230162699917652008688175381737854873228793916308552986950118826294618502660517816134345191134556570026008262499478954175155829220275877728675382441771630203770911791816769997660831358893242639411576346104907393711763770511045296756536889071946036982060477147033428234050525315620192327887285692637822213035694611609743604307922769780504168772469586552039780381656628482044425122185816569643106451004979288010765968135097699022585342342613160859421037291038690850985616779355613746844557079193489445684899780758378059053733647230167215516426267615886165620036786687546769585753287191111646746298415111802631938866697655719999290639983719420756712232872880696805976260766810665415375577151949220340678589178738724435391478330196316952275732194870202200332040860131598229441380670470051309533636080944435309896182197003392445144314150459478345650606082468866062325966951818367021353655170027171149818883234065623986237009401052866784502447128624058745875146434928505856694017728423304120737307741157699818634807583302956335039405706694649900381503288188563069350323259903472343386511089494925773814963303250120069511524466326881297850256811214870913413744226997449852800475386145886002732037003712250890291882935372698292275411080542437345665857614148465073162591788076070881363080937416407084270619640705559202034910145887957169530939322091108453269667386079897467666961094493386049578224977305912453584551784767652264888115591312510781518022895776490026840513927097696593794179213748994282946147444798054935097693684074563214457730456528914932194810803199139171806616941219315152836282072263105450499234892983784101349599927493176174070329045956935812418204721340440868544425708189671132748833151358780934880912107314863723565069081373645414998654909363832142845821936185823953317223991338600220040535822412030610909806479776218170690895564379107904638533841617023792898685856279126732732348837692107058811536206693350321539498934129680288299623748400807894194676164062448292640970490166542919512689869903696138141412387581980126993326104998666175691712827638809657593841302037111583612581915988108887852156193819780257992713842814817313192362214772029219966094770355774624681642271904448762421846738553090949364053138856634745820099549253115582747067616331528412220185799488333434045042483843429446532384836789345959028546021927755627803920346871143050011633803804425141775758636719287542039883354019536082187039182566865817947935480521845982173797298772869191081970507593736620878801434531045710086041434559902812512036420698108885436089218985468427764601970422494310206020175093840210446202241851418665352175358747932769287674322856183758693840359422033190640043826133301793309295867961574242738889015645044734384670211617371564884877320727630686845357972030094206928490395184187210808808490766973183229702960375639350683336211569942074417142270183976092271650900198804732206350487996455851756025519435511518476228358807759552429559513183098854573543057516574885084045727152398480156363480458443379130305253451224982126333634012143024735331252299375272630189832348484538559620763163201513117615583332978306248712116734489527534510513145061418177724869068650296708712563584822900225117375881894157873661337871194968225628631441022097917815259345825495451948509532815136048573349064703175208221272312445254078126237010502061150251402187465697937467627986494489955011765059066411147979720037645992630992037017613362426351523773463212308362843454238927202458732150725081015874935230249902385933123642223121492468226837063526665810982199894104436318258575077981171829603234925502283897360390871755858748564984221372749039124798985226916445358258451836030128664572199076147635874043136492383539373696332544672951716009228896627196896199984822031325377607991866873881787207834575448918592052065915786764541205126754222193946395641741587781584658489842771212936399087777601893251591856037661666351162974868469377787363714700216494474854985637035845714381526264009190461771654495639849959178851421529378388588873165835685255648911336844609094382097262416424412135396016959266604375081822658976351023114333197481960178150019146789330351222218369197015031948540227632404844934871199791402134578477422677240082820617454226330375875711397649337464264363901301345340966708271280479100841776557593446333567878917733986147037877396793917254813734858389548254792153468955398711932395954565422319436476098279059915847545114231143989656280390576327047399174640272587922239570961247477209670112521558581539299723012074890711233046796108387840436030833059957804814753242119171600681956823846382808632349550430016635674388515663495257576667331880502761826879062481130087742259907368865576189894602890880771924103887551865578887692170101089667243065565708944997997383096477385865071129232960891896748701895622287986707610826784837305192182985571744468660199204651217208562955293000210271839777220961731581769950962135157135163182746403705552354809484692083116094370532476183643851071542566259289647235434351060748604568805416188118769713531436764041708579645459790442647926952175204583423665611623400897342203576755795958389569647939676292820229398154217283375754002499462917585672104628446546957936744631228516278388911812284849968171107235273112839944986564999620278698658689428220475480354406227961851925205757902839621160541888146653907626532806227672378383616170743047757670190639505755719678724124332052118044722319017348723637391864973204501908634317226383812551973857226376493306362036380943457881183105937598741441242942909963128688295061549117620994204052740646590664068620885345862966068679219396011965864993102225485152748936679187665044457908519280573381421807379782583760378597665114149162409544970252029445423692721396734427835646858239919275696402710915102675632598525162130543813073441062706153622605488374417905877044118791955024222540068807452764761525912319155200989064422957237528467734431417572042371126506079926545870137822836593702697138903247737498375924619808366952195252945416617866565043604139247282778121609685165297433052976877805095779430454981912669417937683253950702370641798692089965135959859760950317907399167016095282514642976832287658406383264412431137465324545409942730060566028521596579255481783126894652313095270561772030044007938588790154580104429590240076935073943425943400661480824297774311258644268409232946251458541790002873438520730021796703584087268252238617393903485576729966731650258183151482026197585147856850779200813033280958799253153277334439628653731849071154802396032636867269060740319757154957743117791263989812152613223231941128820168190748791212964108536748806672546305579144928608890732411725090244174591042550395118699389281391070256030936582373582292536395138244525428617490980445591980147217162385607646262559234931587900392661307998131923879405067995917613253637479903738383610171277750890278355395845398314132791228812286421535984802923770402203928592726282095687793265076528227918486522335106209805690884031590468754826835987027575112248044392157747665934783191087108819666057941769673332417086673759376281738944039596834617510461060261912228669200994199402266365478152271056442040614410348432320430756284138183885339069166015951746005280527986398521802277913980616610004297376421777399979121514750465308504830149845803278489804916350500961495760972706835466285579409771013621882481068379566483514292580554495366384916478096777975581682746301584820133823141985332614223730726987184629957914282529894763122097810617594717804182214794133389091036603470331590804506787254644456495461313529520300235540733652156656874216438416686893299086719243629851223080980400603188403162025230487825876139490487206757004442784176933798546754723707838877304753948321512309848915607320385505541045661975860780939669839425446437029669103348411671831982943740879439377912504829808015525394897153709911791324798436561053786073464776368342887516160587288156292351479494664360366354642725891683953105653361279237975345804358357941229368578642837372948990290454998133282053454294158471469753447665787754506539127481239424379702294077444844465512757467440052436196395689036245019000942734540444537389440982464456942554461405723336177521484952335719480601700329272018848913655567037284286111156238502339089907496454669878850883649728590316451067025618532742385736880946382383540371165639595862585593591888312571219772720492317965490391761857097146760096206373742188079949890069144545907505978416617250931567443177814214152703452580478624667062516600031404433370828004599656802140591848360746946588143841062573935450960010139129163420399812953806234925630393341731393128706472113871632576012357705503113465065106542825135331177674020714068360448238844138790238185722042588033714225975653963157595242013995520862408987048887953628421610653292913756112884023745938341245137288232216408966596385634289239499750273097222460601653022102435878853305139199213294933833257324217955352522271220100032734019541495752301839530202623111871075399343298940164223796101554112418530753509662065224746671558870031412631004954189387824867003627860314548195060869940682107042677007290754552533945007448702239645562880549277667052173878501039305972964101300557406870806669443378085198728318159994320698750419001754158657874481761706785109878709549737243011766814099603488395999870176754454602200022798067389341928140299136297876250718479072693931716507383371488877739719351202891387032018065597384668069789788124994842477046294453343959674694050656570997452861081938928669755919885147267461910903722517578413974123198688637971511101930103946847064296724489871574200223227788373694739315581705764151285763211873215646849706880710430397009874279636003466542885509177601478990853574093517262072628271741662694457705082020550906820777052160449716754428132583831024339218134900585105898784885603628264130302918623049196282758387400683803830327931145228800877069130884717002325225779613318231478374111778347548011998958387702322901791472838987028619049913964287813012624075594778756262925547846261947133747141371872415534426670136184177153118970120023071703916612093520178878327690478760871743293068143831339876328070580325830913421140699762334082412766438310325698458677915970173164408074153111367175324609222587093119434689204527777399731793414688551814122504821728588106925103235404209082034635910807633292941854621684200889240209450968758626860360411658283314024498938169367415350772330044862175651000765720466352535161048160205556623484319875707032577514786881816572167221729526002972762586256383082557734861155514097254548151925217650019918527172758085050491894261724513033261079196086424197792564183455097326891362444602972957596003811456180292392116613162323689788291431875373624726640649208338548206523432511927796225064974649429841382563706136817780959635791882982866881465074542112109944397423085759686577529555751619207715448429439251122855608499343307816161357597602261979769155342909259636912204590293252246055981398308588809043815282721255035384291392138494943763957829700226805893384413927293204274597814343293208006802696916209806634099527370307293420477175153305838756014409673358671522644454090364941305810357310060910236067767748921045741393709957838577832943868056934358252691705136781285941672547459053946014604859944090587918696097411741261721788010149924541083838999550031685927831428235329041483887415236846774269933971508792796834608889607502627808233040853212034208549292059572068887440633520169156965788973179688808603754259212526863221382858690252716834786198069627852618513316210582536860647987024745340006861925370858545231024847589932415677159166972985548261284089144794160891934451866192130735971040003616562019052740979758956363495884944715526934328091331836363134540430292381032446909210772418494511249957693840693881538114454108157162408331517815669449011980682826028125044451771281695297489501948192940121237324529317012664607455494280433415872270873936596818794399434445120361651153853232124622606151819063881528351976519371679692079003016533539220209338730344824227001503705135512575427314810227386627703920286855872993509986104580134597872155210356020058243094086678399553923315431958583739645507643701911366174946401822151809698165161655735972038551779630090657999169030398700348480930108065522719793685223168191976543167136373378041668989998403971024799451245894580792736132558768689656635652050110830635949363086451789810496545836892353934386718400913079406640549653329707262137250775482574946537660717872814187002945760452991299542712086585841505400614661084080965415071232232482225774014878301315963969989662631641634584812031683693548570309591569516301556809222412544445734612304642749600054509857051369711593735952217684117256692650185342262197398242448697781523188404465325082174820686650311239472035929822469211737799232505558547853454297045291143256225030100126492310781771487414318691820623860212881967706893688595571371311981251129362343478105536324912134972809386539567621723501534969462049539180073283075563552763767662381700534724877841844731601669145823818634384663299798309253063569984240666615399516804019958017324737431625811823064720772066385431752531998833241658068720227039285473020627108120335955994345942137942419524059090249806716448778260444755027142918103783357966539825509197068610181564610194397485513801970487467305078428100819323028259260140797449302739190335426082556540296079360442879408323153228311555123093067253749795884707868403569484685285538869836773189164601263360186254635693868431977592204556738496874694394383758071515162155025625239139667630371211195858234251086045219119973570840316103009800182131700736379521860127815992948835928543436458896154966380873980073177465039626429887527601933281082880651282720152050692769589470751787733254932421013565628373298005340810737932434338488868945444619336212907572126944844335770031970993932444382629505076698379620387270266093343221944992757370412577550585623064847961260683733111450363764697961028652549897034270167895398323376887423089692723164394066368533776320273021241103582758265588707512666535265666020754895959181295433310647814147648561325619262094545983236063952956930094074529366832080441870678196672515763480235331340865402168437354410740624412232125699025817754922306642278242320436203952508624083153206594380280704349597937450952518152600243250664651956125721320137642277579711215346807243795477971903917192362423535930606259214412637589482639801006123026374096947577626816789453032464169066158493919046135190468397073899058356574151689360780261475151214899095795569817393977230455949945803161836868644570439393112431101186269586742816458737811692143142420345920611785790743342099071141058466745207969889022789085494872845415843002655640628480317380889865566315451249024559225637614834627693058478373749125141255860612433783154991407761415939234810153531536343731438022458910139877982938060343878452292300318878950382004971671122071289279752029704671515219794127576938131869622703899423923286224632807496613749647082234106229471141234181762289190964957375774333345925333001910784228515774548693749432049828127368624398195602310129516838414869385197910738461490396663088135955237211114810953959178852009314097289978761166089005594336686128561752950911082297948364966334960013327994429636759814418627104123386109018333380855165545923718370935256941881164325535326022757145633217364603940536210248274602704738755581826917480798635514014411949586011159170338251945234633598903685661067745816167259279319094859072884555211262648905897280215411269131445192366008335482878972492266844539545006631282185652898218102584130810333614197354648919000753297318181997808530339716847327459719819063337124899727630013433425171024601237390447910994993598944932334174778611557926445575808016238718765704976451779796561620382770793078741048038158087953561255320648065566368022428811856458535161229093666781360994688072684573333508942861803577876186029335103768259217396032254422704618150660628288989772767905713237706604426689720588598688757738438616948914539294213547543590306486723942177418406699915817207716432636213839991259373794310123795536610707673036514599432874293001929846717519568219963418673703898228695336750802065446177385715371501124604184405941264565809792307678808257525470167578991530249039795620469157372100657492294303175951538008794137427311521717751663397400377531862692975684078270006407870555109965084654284774241779059277827774308227098254324424863519336839065177622141554315489669788828469735962386502934064866737312547318843030063997021206814938733503826703554880242960330200522172448088598307393078222017946756158485418797882698287326343466833965371087332790403597680507810881252229290082572109864443249796243888928860865810905873253637189170485141846807559637859687761875941646256778708012845639899805981957084667387515395072572998542175556775502477670194397016098730406897714822942357913095398978462816032971320768120994999734876193635210254567847233004810261071708649075608993368961360298927168203835096974771533474508697787078899111885743391900503651386798012864486291861496794290539670261344938009057002185318814196241617963760796708025580779042368033503586848828784586168938536630710378118645630945760736233488153040829630092207317781795370992070248969534920923662602367387759703227310061864520577701756778935826599398535333924649039662359450575333232405752694152331965319711953743174211119136104283737628687021309146189499718259547416798959697663909753379203699455953425202634673279141281692902763569912131100969094481786943597333352679145713781950462281221228218205062389089227345896938579989154523630366006552830217965013081739787564251367383450752158566561107614301097943433114995815678724096314803515981528306189967636281602241515509272897983795769969395468534960956589609187525690050737605803916880980002737056545377216610736525631939463347368571024403481806609411066021827182546364097770100613309864839560845971189164389772228956976260675767834489320225248303233185369812299374775667525424737279294501882754488422912014821179468793887074282117973910286308844292554514292411114379185780803686714937423461182861014369829236485825733454751987669643955658286481691766687737485485225169752272082747061469233669863690349930962606142701684456829644984970297510436559285838914580749905082640187190634254571267185891774943213017445724574624465205330596733944632411374062763107862249134848108872667744464194737079798699257294661533093898316448560093077527260554844072801754055607254540927481361336283581767650563418283417495774714880772588802907218777520696584612409910281956955065139354353766220707026961213872072200068530850703441580865998224261440194319352996533451899720413407744334437173592750555276041163167922293323670487017509758875080131801740464767011955716243153874792036402353967558642772309606465956436107086118566270717153994229304442321360612061058090990459319067401707371518074144710178995206582197472577044612211696887590893650837782558686875954814976288683505430582974641426326184765340469295142684631661543327646745591101838211366819581692462889769590063806791519891483319323135723375005817746985893388933723835762610037447975485637618892492246516509905930582692180051264029508771743891349139835335284117582060759793106832090857008173529473726111370678216211945496786744189899597030524840803166592665623331513817330731624071599226127576503954414563670778617064696547347712504737322674140101228314567922317980156689416200053992764611104141802333694585227020527073883704109231242133995044406921297502156698734906042308637598869640401303402136688305636216892640384007475114169372547181638835630247223160601122617901025294677996126253942745646250732854326506743025992830009372676099439538220725893089545342141797125353011171694105734104518608859462280241374967577595405159978554339284208909124633002311036406755624381198078551322288729774542531401034689589468630488472505521381131084511794381851888228941501323013657368272107271081500979362522613021856625410524745498129191304793627901112955691482389356576937932300140273292951092541029809109928140972169716245406565957377056095614075365023443941649779980753765340407617135333618038510488798899969436156507571506954794154159932270554122236755767859239301225993269319369774302534613001916650069001124248847459265105149229337493222344450438787484463723689387633692705895413630487537195830390320691925194267788112043898775949681472206473202587165852382382794859920747642156554709536555800140745940312430543870080614637443562514641807090269950560303416080589675486345303042665063969466400549695075796653028173296174253465179149869003603385907343900819195859196857421949678609091260749835939640782487960057526755440714512051442291767852489194779277597002280617489329133133721675968146168078575871339023924734333278750819932316191794486624307885557322738516490236279772720987898705318299109414462629012862073705750807652627373135320801999683531936041793928027775435744363073964753396593041596238171097594947983304859937541664676385636589659201424902078147078812985302768420949180760764402230972486253514884311199978764453657113694877128316908875227867901036212937561218480286143406984741157446217123981269141374754283832781077378119578256680890745401180636124083898402300458629430563952083144683134857861642473922495639012667733678958368872060090044759749517119895423639598950296515109517171820129538330425849336361693874247221738119340319213139895899310238602498235769155450219532907733809886586004542220203126432466670239478167349893045458338484524697834165449514446105368582391673333700161579317035606230200645934836301519620930238278210815636580802098744369399243206997955643787504547796074855781566262161077976037507322645630211367905585812998483038734000237819177823380031948041097935005419800767105816770551785198276175210363582998937802033386489729881685743995457307852852458923681707080925964940134865097859665542724399324888143494162852376109513707614963348721345672847400408794095446497572861534391853648179861594148477666038807031919545359735598820145952252633781164760364159052483695149308065982979090420964289988428297709604017652535691674811951879397414814471735627256957882179777098478267768480846052625750577186691503034971974208218913886922800436579459009117343388159902957300066623516527190194540368947742566157920493925350047159721797890642852712986262816465484497919731727581894850331040618552823589595428564253277347730712935930892692835085600727461337915591775207987838964516986316417486852700209455212420107857920354944799688000971034069703923468318221622652781538620753732306343912552430238848509139302881979587357411304392483193484714108807715355641387009644222778844324373378026169374155419378577731865677422669852289456260914124555473375033787232014652649235571089667059428871376429501483573456649497763335411365685195181917467822032928382893044320262514059626784235874118283816523427966239162511539483600065173902258282501986649752284326289048568791643993675079928296903355908597759176495158715184654626811249700615808901482976776361052690819020200015309706647608110907312192118791110564054205836743959564435643418014423556447655763785575962409414740988922401382520847088966087085835005440999861807497199890144038702251073593996792643565208802648651612027191291429305234446870733603714887259140416808245816885004347166512993000034001934102215262925560506398162364420576861264874160741173501231710452174617069658631711004058952059677249026555984917154641632740395769041152769670292914189317908035954194229149723188060080134831464467082286660707882576482416521832720651994450298224437956041261782166527068042348347907502536838388036123995957650481582557418335203305061478267221109732692306391965116184258367751088851960823430406741114672644584946448644310793955554135572734676015086875587225580852805258403679532012369850049423785091437073525989086909177151261527229564810541482791565863461659894784091746994449501482682472333833556225012822883780184855848837261574745361819488106297340154077342614462642037685273993910711242179178415905326415899418787076886808623313130797465143068966402289935801347936665543164024489250019714941099346384025428017213632493314648923178168367722652449369971307408126748604807912358893084248426912157476326110934344467617061776225697515697702817162715555286205687059353722227903353991863802296452646444674341343553921698061116223448212281757357710229879635612558791391251482870300665494018110068035623996312290558577864964963611601727068871345433707223014441431105618340057064958418362810675968402932743143795604053230047949854569358919686505211103087768948720201133344454487456734425486186858085179365922316103438940998934481113685152268568001113403771617783114740849084271497490562636627736743538544899886216831269281916951317953637954218767132114514014226842904366966347269333401894852129513153447667620565073454180466263813247683929673800936322814249588769641641520622582080349393114599158839848191883831930373596622825495677851120343906803412970516851217466164842684717062427916729667803851843808366414014587719810392276423532376404633388063440131612203817521067511245307772174523707069901729599070116011097983794357954657003127458190006987860684940256238890834459768157181466286305644248090447382873437180934140316477362348733295055103144337108185114568476210344774810022942264231413370540179203092257944722605105763261812876751340111873421139713416223952829884513861370681840744734605683830855601669977177917415541411980525295020593824563353837528776643575045757043148596757404161448513160801510664338402582508785153095485590600657762521066962299574632415796129462141068383718566728445393100676594983368224251645265150045971847079238757755836066139651796222833331449032061278197356971315584637781016775498568573384393447969039550628860887843309645673065679942268798430020671646021062042578592589469720642549026829670091662187479340995390466113591410391870047757872571562000909371597297630883886253018663407029846493044614675565743207159809029248838927742490535941334168654576883301201598515956630178291881396898457842597230010021383486505518228052773197333022330928682808314716936219169769181978765767105203250178424694165612608398041957542232986356790814224698867690771037478043479720462903401954025389475966508958817747953630764877238793837879205961552785902689086448822949887440320966383624710610372351663090828673779637703350699603434149931806237378137334887590224176908304710783206880163232277334913535653372385139701003562870487334025002977792016787036064358513090951295882892902211459968904250172126369886226524361077071940149326460747097766568807559016947669409890435420977677396922609701579070699107616059934420216203534658717255368983959581236380173339200325635662408197005866585708125329332729146634421191873665541248467901271372125517565851791592507143360143175618665413944474573475849780039008140053597901698196629389067190662168869642529975819361425002084697962726389665949717750035268897741026113862380431754337811425564498065302150123419434214147908016651945441733518463317369926960904769791648599151436722687199482081646032514397120647227693107507002349681893836071828989750937563273882973041334489693837940403439867085628449001379277825629109491800846577550738947330228479426899722521337263900653857389928517572806187316114370659626434711693382405832983884315405971242580016090396336657973505013879412859784117534434559131189074729175629995070155811746217521616803422123391924923751153426953643158707193726728214541702709542169406659230587463206824265373344183195865301769554364884331150128673051160718866224812939166966566394703973383790820906755992296936246784741594924223522192015922106381551991397184028688544912971162531010985726836586534975730253920837119303121241850866587386604892273495571977603739810669480293581015316691673263862114324166348623288583223482859464211814524172741865821401686086979675770243054523182953761350878902160519120924511425258267899138299832944882119853356083101298497539518162841518320907318429495464285520734567506822022641523093328267467814989891529529535314424734064994589985032222104332917143421608750715130042996454697602957887514429584835386106238315919480447680991550227633874812469221457181843346071157040243470155442929473121238051073592947659251072589771437939903718755101663216001941086947943244506660472905055100122000409325480177760447594479041230635215552385262737992803428326996889186680868045022587798350279920506963785879434928100882822233904131552659231522343797611749756587144626594638394707568813833913387755294181499489289141645318469106797792314482555854523519829117838967465197834134094938126299698110983802056868266917322392825360286747118626870637873866290768666999003908422376645286782304501966333040556226356970250734366016908002068908812967406184784277984667010438894379079957388847380642984281186797845271912409882094099443653446450226958877159576925506712951883831019932947173123138134393861544386527193014899800714667990196573500200687010089146382406787311017635588894109234434988098005813552875506069005296023307633492266986624630848449648008527946553134554731681783035864890318319837733229339482272245813383407715972657191653363861526256645567677268641009858010034393737898545009544542214584520782494039366629966531678575865926149606469667587732137558328667331624021605257699328833130323218133696551948305724007037693929363725420180650523057981633037095537585104017074379534596726206415278247333367930120360389228004821717081345156346791931988270716729070092983514448242056528506177246843979325473723338219852217464406730530364538258622009500945085421364670428170262264950054169762882585372554982517113576128342120645902092531248308475072977927008821832661635673363454843855684678711357000435922991157473105880926767218881642450699576107666211856624854902386826054027817318574342440699085410100116813625978599998502646385716946213026729136939172681824692755616623991331359015323523110904293294397914895360220936586298801613160878033136168282513096202175162583391390265643327523975306538143468605408531667197414399108635720648191276951374110384127345459303346617113726124401682972155464552444291738177802802160121897040350294796788271167973536936271132728167684117252806296213293952523952553601072698828886192847762967361940854398684849288112005155072280458731187387143617621988089012489830271211896156942807038905856375642240816983393046788632208395564169676168888413267236797425271792709652042373105478472241113193307494466640245270790185180515908715202368129543958273211924916286910787387382304058396278690525885112591315674527914390900868650295671791506097302605597241266854482449408975178233701999429938645962801982376714031692435718347231945467844446732369994970411215574743567851759259847871246318156725621438318649781717447798598151402734446742413351347242908518110630799060418956939369423633512345348560844975504422826891692748886812132128293509549862475683562190227870058153200911443560996562273837189287597663956237213149657508505166271974239700153046166109988114855140041893164343998614140250580455934180344333679786070435840741235553241850446435932596210444365275199926362324351799143630894978077028809560626884955209345892324948079667833797827599566085914218860250764340013559564637521469305500833826908448755428753925176458438544563580060294951093829852882894259183693824876276500841558186741131526472919170697076912791796766005867743425879894528669792522616539361329481727669968409214259255495813460179498098356647788463578775234783091842689597651159123396807009669351040465096647173459240614471614269776107864356580805985018406781794716808152021859746221425185044369966658638212092897676741901275848320678318549804399529246540393100656935383320079249381543797015004406624871508486844058292285623507021532700359388924520580521122772839954996076867978789008759426971001299063293108205572455775903019895187348551548524894622824945169640460995668085651947750002694278344368980326831375542048733120951743864995532885322105681975329408163894839390493315808202816881569007592244634409664062426536804288341158814596967842401182164291904689397505149256885678349808807589970714475648464154918530223640815404901450947112810796335124883749029502478694600216528339942079379985372559341508185875577588460441284920938757585721045585587313372456096659881722416044725183474585238223645555686152257310971332310123154319552092789857836316288415420335814793417406495088710303657562022400702645325701102006787008482590390679360500970391726902377679334117916159928000172480760832019392459853077242787850682970290487285844943124650594789173566634454176930454487203343430551999283388223262961269826933149011063920291195105460808607744404750148461341403884950724408341680746596907626208944819487630656349024086539520143564827142523431324181223870897722627082131675837072445394897890803466623106112444974574707596063339093014205418540857918961033209602716658267906549422178092760247508256383249865679366165195999297921209512827351549501111221717978895241790247243137518211422879793783456618443649499061341542479016129759536904252817145123852820740705461538953150896456647727995133169085532341635134069464544556106409116718328968378645018264665481446864693010289134866307947529861553507623352082476525106728087694544426600225233039604435619664116651868609230754706568727492982983911002132479436725097179673483554692479494213336660448740079943044794852806450778050942628338709097679198433698297338109296121045779371683174150907069466038492523180252727378646141611264442911096197897846336221171385544619725889802830839776043846912180996677287652186827342579474069349382778998253075320207430447260883427759782623841388501581765499968351627551254603478426995540323966551654338254927439773686061776952660142477014046093170647086334250276437771571399362034097854323712284411290733282731243831680006478729529689582648864085336052406020222530836029993054993483751469930562974078390178909381003281947151802360062763569041773529977168516021429440438670980272715071325225438522543535332871596112630806449067819394617860710619645191563646604458577344110558645600207392166102958318022131587863028702877772313075468336093254199347231589498189586873479681086173706738118610559469189956183346214149973273938486421682908354787812234680136482213349962950566417842576985837288500222412907855508570946680960638958179615430371007581951936517321176753915446005469413418535860737090417819920010935628600212803388054587500675281071617522780613301938488963587449458428716370994829375366508480291770627835958965366013764999432817479223901646595058986871957902282987623815644068875359084307369967867886181567756510825768404509901381730443637251575811346521677393825691229881896290377161310352653821365842165749173440367668934728230651156522672338401876153462318548360952976181336247486677747472711816720936345665206859722087386212138328348604858208627661299378251765906031829974649899789730186561331676544138931607920300968356072408845911126495209337578558664614159173965454598386485539288528350195892370903560850519425383307944352990670280751993516272486277920330827661701986932274116458944683268867801432192992129973543476490048646255781318754488652419624594308370410510620502812949996693815381607538635002920902943004030356244897702881213051341765052442423114732083253291100933279548948103653107022955527058641494339266500735218390554676615556791261707733624566410218182522229030876069066289533339575365559150092563599272660994983717734948163131268021755184011293101235563920860562943477337516535694059021351441629644663614205231770519996927632087694253892584083722401213638224580972558119748674444850550857121137901018114433396427471729055578569232958051528988313815171702337762339927019623441087291263333976771822041730445434488644623259362659301684519482380251860279241821586689745061598879914432478043145382479989911404215348373257631012411747885181612329371679008119244899688341730393131631581509232629190401819095497621670183425456191886816756093210067854854322773188004307272538983123167147484048792876624801302211271337547740800312904063611933554524539488703580667176365105803673193741319939865049719306455909807937334320762548285249465213763239202895133576494298810891502299986995688618886041157930648301247904601702713000868609910004120333431776824403489730892266149728525944095595191375578738686689601324437481695649354835520405472122016848355130576680223090936420072673630391892524678941482484694246216656122112226248339259199017814368092500769684301153374691726226054148795829524973475837382292503372879923951924185052558339353964398700398085011336854390519817739219581648482422036741323718063302767991506943469068154602010238765312428525256593910731208450971226529080784154691454833892060044138755407398386812840532740455019922998405673616904810385836403815565931647488014103928526803686072187575331164336094178796270613571821994329473280907002284837562477804801613266694659649160685616564796047389520540618741484016940054636665402528500990414259148979375849999945206635735578281165447295505420945006688864076208100996854717012820093998416496679704379762246305851035647805328298550911909885000922261516144189837360389406179715069677709247863963000176779697058146395678119913918072711784655947859074159493776053783708147524533824751634930325357930565243264409845569384769169048315034946195750668289583395987518636726699891737482247854655128192145212736512616175477947223999437569826721431697087358598626862332077039507283939377766726054527066560497214219751780068123046894611995286857348034845181696394269700514590976765956754106547251472975275172385355567225388042466473869992513631858645060080063172269298114516771572757260908422032682811256324733302634285496856423976428939191945237283201435503961751372044198369382786294895747859610613274348697844800156033156719866195955706848108696806228393255088211984417800409374042684583304556699301476735202575722194412111673737316055965291110405127092294949105922609715901202414930836035092735225035899802335813885835704064735715590597039932704264141746076449716404181322144682487767009917817928144127632686813656171226432047958464987318009668136831657117399154778544854012693989372835456228753058062744746037287138856477268971757316114689199838917267438327869130126652574438475010987415577064887365035970554577927179890284924462505686632064977156536856049832199389206282127721135988864490153276149482148500042372477086440483458307707416262364798571635943163221643834678226162505401794451923652864746292816701993781939967696935997436863047596945937003218004507408652387968032026962267261856919034157988433611829234919329310717621455665151684478859539864152872958934487139566395884321431699580690364239803350049657843818576088589063148754843541523067319676801728971602909016155770517206676910952731559997947036499754921057874332761471959797952505449640795010259756112226712049623008728426164390326130208367959067971195125781547982851353859790318517045903562424807777581098844162218997114390135274392164243353289165792549367831621704414034286350156655845158781033256512661515506660795596034673598721832538805331710332592069698472980864217932385206879164976221249871232414273829906681718475131820835387112790094452053360022508554281216716051106317854441219181001531845403537423848281077076459987390887575640272850785649263963813264074873263187329534257315380941669324902940650593686354313415113535749189958450052212600324909031632939619616655279406987687620678412250143845520603174770890790378096710240942203502505165965690650408147123815312774952555528334650308205217330410425229126346983434011183383561642970173947479983051252934634871083573368668346731821434151365075431297302406775713438514092547213756164747431699214443344774755476563558199296670982672837013699892280920103221011732608982900418577579940521103753716557194075796924183273920436481337685648040229010374392448575396973687027827075718018739531636596956006422485316321753840516316697537440151408350988418748443355420243724260078060459570252491979022894113383049348153634919439033790540430463758989626619513471949298501745691261616708963399850140831597527092877132718385316662259521753606603026320193541509000053370438343163357036647958261450159307594658619765275416775100096573549904694873377920033764614970150795089652253108751648203714123960843860192050567408063982425787983300402141957099034153944109277127468476458718942181923576419520719975860496369100880868380597147150233750514281391950899089936952163584647896539126372436097842165852956253221505903734696252850854170039424750732913710728835562135866066675283969620358116286352212361953049637255418728604117739909938630708104503421084624062778941527696919643894973436525191463220664983788266517649235478541599235636798452903652753569849708206977531977959242651107281268805451708736276129902396133052858366620374514914354059506973798267293728137529212979875636494144253219040928773682634345282275718808948674907307157546477218591219233703631713668396411582826998183893581792395991271917256230190836206723883762840205832995228807758636170060908940283110560315172328718043647091954232878724033410929743343564570716300837334671369154273842072940482812869455874031061537872449449154929620249110800380362177537623207012221016119875768752451409191410091666804537522065165507596016668655879873070183524570211464892261300743488335722716320856957129596634413718061264195212083618733032856160383362405970234869587097337961684386937240636118844359872670926665930506645941959064323661671765313986908009304754283720002060422991617535152628930444140485999262025359575449645853169687253479615646772432557165207545099860104161842861639104758357077132510649103820664897560278019547472869366737323568762859126002647672710631837517798750145980752028974350336931781960578348990556170426851045118530907720459679541057335344543070917195597376372066370658831234063367808745777098806567817953332479249996912552972056052232302569495231043452422728775172000348852978476278275958141844369884190440532177454214727521433108161147216472116150213152996579124354840614482740645046158065496505336548344173105146086932991736980917052975887595303228967835393000004703358904021529354036146502978355296238015276188012809716453724408817932236320508356368577977646654583814337793816996343848826386877190479849001069290851993658036220619826331731605709089820682386211941510149982461397560467384230992430839276506354126634993824679563773646578055402634848680726347914538651096099648888116476909556538101424065708173538340688891071051223976191816197154781026477382589775715463119535767206535618791443559334289692669273971586211730559671555890211801525636401534988788852957153842364010222144314986180038863187475804177560087565942130791161030337067053809364480229405020678840234161974733214036971024838955386863631845914578004844470778286098685713030689518980679218904250272721097873904263792572577367123433728664222255081817924167811168844148573717162196769203274778525317558628750003624251648721595711237040678953092525555557927908352206248645513813401176076121106989740627165676261807669435603074156355759909245310318844276605317235768377450967925242554294886220970245345662040941126036264939166672538131315980140222688267017785925984550014659187863311468547442846739993193113854412288538027359860655810934712472247734887890556600873912321976425368575454958847042053279257326699931622598116598933616187364380197567395143459440249905106866508854103406807586905981967183222334110165713641864684370367264518333513374894914072216463292377720880673520134132718015034843237921587807987079081806480108157694724653104133816805225774134584601575144708978448300839954735174303567887673953058669350099186754208457544078304975799909480423934469775798867209822743838450477699372767244895488926771752859937621471755133043222124564855598574097811447335796513264144535839090296561888427430950579012554837493874626893025735858846598834444421169293712967975818093492492420237005059175051338035717323961732501559338408773363348643462716998587794213585154520876640062355811709844463304363514337947108119975849971507726806257068139816570853263755622250470388140818035891975043617702864481540594151747571623606148595723207965392422580782666921007873626068451658028735101970431729244798334817289864258323195254283712688970433744926442492884159179517989612874091959799347643724904988300383948462530361472955812954674037070142643225444580704663852142842039715973146660390687365600665876255928029123338777338173878637413202511419562299331824185637184832567172470909944845529732294813603947623798892235011097323460869642823028634428089300163274099396161434110906999957589403594407717947641388098754271797642847588113890267471754389075049353272950977545696909011966000740099120478761711648185087663453765891621647163757426433642375308501412587976817490494310078517046271175804841866811376242685259878969895534492037895989904578337655115906236414975438683451265867797440863240377089443940851274278618079749827942961486575321271138868352179870922466304431398238831890719979341903480668084782370090689534941730541195945767455643837784218499536980571047762669989221970770929960940446072009273476938052301473206843969848947089698731593035370930189780664291394968531878845508894399301012715121321580790999469353249540016261424955434752501892707668240613390678121744899247798281842328914951668195561007773707850258926280114397802142387591481677055713085677955928994692731879303580453861465852733936077747017206822007307951215615744656078821258955592687243953620168281764727968287748079863603514474126434829313256581081351296104060088718135168816422592142993918188946821767707759139339229459631236957718484924873623392753973162985120001746837441785721097499331240941461225627275025046266409047078231101716806548092830357031275206281691984411498284351628276881867598721909460495832572366686503336739355793276915436948559523001423174784699079277570635113924962909942367365403914210046770453067055856821827161486453118148972398828456091540454744750168555750076737403886147355148876931360454102011460756796616194083556736317967551038506331159731855103481153632891148792993602333528103152823507982914354209153231620000438678521652172048170080815487667206552575364900510109743769327897217869877842211914593750801405636562601350974547873796861524322180261394289209032355374162530187781058254149130397776788254143788475084500788121071402789380819428895185209859315514088428297945934576936445777967515843692434498305660546670336630440521655640138504891388389628832013021946104360897871457661902743384113108138221478657880470723007244013655485685207887577238067224186427287093963417228942401957403498231402011686437380366908823336091752522067271175240040453155489176341050593102402144372642266238831777059052581768298380755323361182189008140606476176536918991658558831785029998953664500512087709118124372880313084815209972288841783336930016900788957469429146041655371528610098702913347567994028734098961032052985029818710791105672769384397782752808616571697154590425203148814244583663411231653945012685014541863303086659091374017611972591893236162318292477677339405438003287907065634134719103372938482811412359241210817859819559069943500561072435982984936490759720709735417643616177977715506044435638300475087495435145314167713997360577101364293493253615848195109729718862096724280477849411552153191022036025044217466905739638644793049600201435057116051195908126836524120258211868750144352077590415013414843831260799489286143900981039988180710675051833732312366517280100387991822504110439281150923600595227199634029833537156035133824961635213666472706470845791169525425433065606194332275207243285594832640479724599808830260350153080385886639491482807921300824678335767502434882458418888752036336999538879833168244576258634587552595281372206691942407706377675437397134177026475801564687075371325256557011787279313564137601100322763603787697504907332719777569256607438425389738865914977881277962811493540031404038478383816304714147029566284730887842486356990900476814668110036589739905982567061672941881364255705851434113125490823479826317305359103331375184890436014613882773341863868503872448421990814279189860618827507325304388057742864414908071548906951692047959576700799574030346225318320287636561724052516352250145005074725319095800276269012381329551667013104342770437153801975750261281880494074402791007163125269929250089118218754034952045241248534001817492535813366967529456794101660405510058632855530212173594206022039582251340727211643987320948951652883800364271131322911432250185817012528537241383033480404260409774815983373594973612076622968609873539034038335414045534101612999152309582828726157128027540393145388107346958431369390092949026494828604356474327639231370913656555510250528425321810910319743145614998494078921820413545759663345549027320764169292182267246476959833728381750440382003821593767253444682808826899247562129287775802588552488877365095427812039905810172507412368932700613867502342752195221591036756956897222673724167514609034690034366051277512637962451855160281241788405936944002250148670504183734560852725334304887648017769573445247398250252846439799976233401095091240696304712220914322354410535660628394165360970499714801605298724296775112795142800805543555375425850741718505735530213091409131378289740322391058391504758112367259917352670809974530748435514944458543537071184431546507031119905706815717439600239962115086935150504199878938378565916503667079354263611106079462937091085755709574926142299148780027034729977501228320414411120530167704962239408574100814793404316854485684602283019004174075863388957809259180961316077260077831808523038622533056974379283993933650118150627047283171563221606126960356544083920680492281903033145698036431040376594342665260931067191789345519026915628073700608561895074348620422908163986619480525535089077192947914345755361998049059545583261040170138538187637757088342403417976580303842285458461478734079729883404536970112314060692553302293504011953982982258378658537836915137616093239381610415124277462517612251012078325782581220876281460110363340425374143086189063354138193630165080173894004495053901208309064329891794411011904852671697015842091411322636255732525969882314532640911493269399572853827646876227923763836270569614753951943305878883447742030873968978438167541846497294250384473726809305036037804446869099236986427590388000066298607086179235280302136930378927705176798276524233930078203783798787079865349822941048903685102797319493469923551222113030027041657559532950744819789218170655312051602898227456517005267164691661086211988841569778702113986460464513482752406433905481594013761658191433193086870556232656161757544155763749458861085751080398795236774718666336276064324811722730850506296997040400393337872465394035319866610482355429677587516145006449778829325554685755079724119029959562159505588888242578681214729185730967224230357703046577970835917731074605733354463107456109728608637271502236333665143891649928732923811840734346490550988050056488271842834915022157292062273585320430066022091964868609931855437878048054563873524475234840338730850031162837532712631687087940606645255246656886887138250612126216014449521081200197499452563981796489313291247117072597760216374473011583751466599335411578935671605982798683669486053918380729445818486864815330732565024161137029130260323696635638639741874835721584546333608519999503079284270678208762773408646858359105138252697871377273214760742306189511230279850386379324342773007228138768393721195373165821753588074499377434486808858457210889379143714536158932823916469461490486912705436883337374941618048896929796508527493831040207828085134475325742967039314786317952165141749548861829734638427282484662639613556490517023643933419180285291757923658427092593490696280546073134404257970950390755865194462761201297173916378561809509042638320083370502020559001672019801080657834573000874488482666962156370141177353019723208056102362428974119922467474754170054999591335539431972873716775426670609941184405488578269207657802571922961946498781547530115530990597447450729860283693219176830008538904136054408250549275188524482556807697861115943105761220033641917855132816371273622163941860365512029616028325804386845624415073411387739375707635898901188300423134583104372537365138417043882819419406511478530330356063698415203910032230099676900812374551216673353772055937118210620156547601984476303585101124791947093743037117173790848275297881445414364443143076632079683259500342300918690123024702507931229230952245955852631247885980069775491650151147378567038396276001237183399915585731258996220720894279490536548201346779425594053878974975714753165313380543776594856766275394555449587022125607860665298524254672666203534108378813409890560028334636430104051929635294443022370742339143981504981591619489377957441183258691869635328330991833172848212165340175339456050910654444075878325578364369069164736211723839165947884716999639470579023755848526927115799107073889053145912078932939441708730948259819343814451667358312572807214117335655268124235069295106852604637003253957724016089502425397282970254124310020986529420780165447634441534130197509593126924621556207780578833609811722166628171929744999664253592672952281767511420624283717844920879101059994603368038755081691276679132190120760230974235704928066165807268808808269742450004394835371497368506764565766967609659311109821443668249485899796699510374134859901752747456340524627081636438774937746600771372076794198032492866270494237115329835781541368919114360439569702508382827011879265973216060308368590514919325732959398880131984504412548229823222882499601536016829061001930237280470323915159719981775217029563086802086926498262529582384810890877121787027971011591397704687566085182325736462268630338639533488442235938073990080110394103416501480024291574232924988115667763420291640445165254312932879754394501587334979768224692536904617882167395643135905596358470516128463218264246936648136245834493775802612813662678550030304069262949400726312388433940581707841919421396786007077784822700901485314882682049115853738311090406262551762867196641872150195013352859989643470336738507188574899262516381726530883050448367925014514056503669346738903292255903667322690397701266464713106906136456680107100654400232933966165615100069510699169435815675829285617179534183780392697798645813386373124103964585733346732057276265248820806529248567849398839074677802951523802204295706058735109275037642778466702983101073420447433856289387298312910313702778018836825785446981448725689665091900558115318971680405762537438754531440172621098726108308842588600545221805914547531364083174070915944663455615272234541700221804144152571595454216169397286058282433632029242236980588457775872629496734433888150103933440544933225230313567114679075623278282272670580869621731041018762935197204563937661333653259422500698200323987227895733678376907652525145239084340868862788828655851559715025060095303788915552050450095088432443040153414823143949733233773156513535361821464780993822067505536975401561315786707402803977331490293266130801675852624465559201617391951306979531390944095629029064871590101520077955159859595590037990958080984572630775520702010831223570431295831887918490963712981258325490774391650216073587637334154252480072259852441329522907243372313557831118737473233001344415631468205490566405347599430141424013005312012231511982683075223223850080369765168098853733951865339275346916912543551531416119046734998102318283434415605443925658537867496121197808588483384293590343695987932651245892281889617293445000683629721282095708797354192809805923275424922183699659962716956198843050607926718168182783521147908198682257803886205820752180141997438222399176957378713660219645867244069065104749187761765779322861052190065342527285384896167048191943501240739474310999091021355474301893003111517523878921001986007895676935739595756853808203046673879455826066881396307599401308476543505677954824864682883559843912220393899201288918869829866683676894664662348994724137616346515218706667501682378802222211730552885135770318667437245942836448999325406306381345963813052533052118984379817775742991577871510042925783938311426207841689536289136268305172265704922209881682925049836996830888946704909705452036496686751198415798673679339699597786652714332592225197181407701651980596842158040061074520920098148842395790417793085994897060688773281332425098456355537711670144093885701554970820392142460235929077746098421612963059765566945838759280668256774889306733762063030457504171289868619232994855914147402255297844506192846457303662673050254923869592773579992594061847535321708232256233685344511616435098915963944711380982770897103609290237339497307028057808791956902441590770936102648065381915760049908937452189149037028461164479231035565330974560191130640539370591537016541464175808465301628829741053008751208242361199192403701127567052536237496511130512906229079856080580131857013594417746497911040206233027943549162769773895205981167428826613989339864034257603646473750301883631758844352961240587557639358925819739512618705397803610952360889519270950896909309903374073034504985703444060300105813383636939245746607258738220314790151668335448409120956703049879858092806909586690508596470819957066591653925747436409457720740244854667957042215514051317494212679804416585268338898377046173238977270512880435338446584531481085513433605149981570599644457667619634786068846394344243715984222402968355366984855866941262897007526443075352728164239791203663457143497762563643243810205909922217122868243799737007853970078496745002249818971041204908947676575616424736185590122599851890133426073004450480432406351522796076103101093730926380454353981033827404527602349810303235908077051236801841932689481060016440855217475963392154745969357223750935631250133021450700303926395922743116247435385714257794440364859301172604560834775792029592755503765152777328102224674719807035990525170299400875043417503067527440609977850130819516887604769858501618413522997420680400577170002259772116396775004621892854420658381787747284339169932464084416634127524432515771616699407168848369933341751744238975636825230815293875904680908336115095075008025206306575751689165863113297972950665802744196076713155901399559843037906559209551418176943663119669354205881817499046347116352667722851725812072953756499523396716298750097845882973025879850655710251317657865563683203552144977971254044710036627878444683967939822770291600983123863908867129715889999998248755744405833907983999544312390179598561986302184242913306623278386897623205495830489458068120625990160579524226941801738014118302571382635158407629219918809475640474224271994911167414373807455197410977300961879320649744859493194279095671354599703443194494180451229539533680482975655627345291187335418067787167293089250426922705081052022041398728849644208176016671526391764234298877235548646709210420982364717715495715032303391004529224054884587611790708969638125572453203812599148439964392123092610556967465973496394674111706985499335476886947323304907429972488955474246800379604240954717153729533524746168422406540970383854647802229178259165859034065083764837866090310035111285622617234447548357507534664416901411464947252363848600971623653048953647565254157205368909699294119445896734735317018391872693161786647639738458186465451508499503975351389970725401753912131347787300129028176095619346554991884618993324543881578495921841631245383413017141918088474605175050431315230656797901067617716520299685826797937180845221158636612932007366757020406184043581576150471142788744588265333771626250569196012900536546537069959648362792320538337983292495045127847893683473639105314739696495414263112167659798102459320373701188372390409929647371978437897410464759083904767295332787327076825720537219526769129894976254865905402921363208177455930251709197874093722650030838529273125168994659637085254631615665558916236538631113120359385454891195045059849155711716019573875423307244665015160754443971036097330417306560846906951564818962411565753440058730776378492006120398763975678405702580571735729276289647036991058510146764653275478096502616195824129920913396293389150468256443647118270149101538460885444408439832843840193324262199738743342876404779119014509848018024052132356883519279964087765437928549931117609364898053335539129246767288327008312435274293752593344994728113220510397256547917413887912796579708491618895266845885145254119874211335700433377898933203750572352214680501481562399510518966872499806948827204304387242453869162478619062728613469361094287288665380308479123771239830582785083761915940096096905645516386937185800187476738296668247525078168253241144075828284982895423834446442161882112782994653430657908163140835549072551244706338428209008431195033239033722414218715875913807926512568860585246171098549691777652759479348886405793195833703905070630570561088544213537675748551965201079125196712250551774695851685528720153746024257498240183623938236362753131165097557614159921236914886223295391409818254022168265176815838970758959914885332184568772425394565869194790141378260643022554221321052382457583164171512224967073376205032102666438038133808363880475782119491292960911848119717175806791008874915893397829954211412024470745327823416248091726164472618769807031493785400216045917898740935224377322896768583740725376070375032530601872421633306603288455705501841727155465448789395678873623449578510102744027059578394317504411053697661170696616479731535838200922899025650269960779381133592831786723228334599439529081775535176823319068564386396642863135232947701289215765685508597866461195938681764167626025753111129878954394654020796337289576487176178482339050309551910634581004373960350259978750043100061210135171775722665959245002923885156838501005786859161859978962272647848540375793298283049758103043931355726377920854469402103480815829868267905770044221035502919327404013883237874149038976976745940833559635367067716849329551205713040131490924255973254314164367162609869969014890020876605629048313545769182977418551223548804329171017446942463019071392417746961984495493342592244115139355688112877008189801990396952468732226145085853080625073295631119881318280659040959828421423341127009363976372333301852881989215258612832493421834792168281878293261847397529039302604787185141485093892458908350910878802069311595127379162707674396954391655729984354676118246814446808503628692708090581398543883581143234653203521525058221272998916637609594028402811595580485093633884817015245090697581603680165989075112691089171162670587522332656958485535446276705697899537905225120802636673458578916777951948693576894345594531832163190183514673876672724473710066886117157462666975458828152714171402013831951027219023831249036808865393624447444705002365746313894594066106827299361995491502843101550892312316583522252101809307277106335957013628537733782235516995316133373854279341885116940592019783355927662903609569651446657128798683828343913356199491912099975991748838346302283923837695924926739748345063890471635832196918121000203444957407457026960933964572874847882357314314383492648330210306611078749243619765018999389664522594136153332890998533743121299811841392326304589714452991670826308122264049799642269223116034052614694844875733734390275120263242685367157335831294902871400492568494837287964772115780752871339233712341281785269491526716182031865336297253837422020426093951505036241380711295087388577205545014699038284304634787426612051672050777097122780337861652430983255333262213928958185016141186971753940651879319257496984357397614599645935195024870685786806248923131684007884241492686582554352542906612807147331737196209471650317571479239317379566193509060362857997604232315815886904064703580116339559446999132974712626098393198172116007964711585688541014322434277385268885546623091931066188647239562940547453263283581974101891447865725592024548742932140831721005270123533570961769108474984565856790830322575067930710985037007107647144213725917548008679238565867977953301660243569419992325136634312830857686867991864417096345342942906932612811559520471811774953737613431633927411435598199419961074902263487105144975478503384932464647275596899369077474400719762200960879469509662083170630748673269575450282952779223554089919440453816546972620550635232836088742798718105211731833583492160808177470169783871262704609370174412386494249150655849227234115757684015351512422263622201113191402121928436758307476448702271727343945113423602324510147749365389124584337620103087952276605394820525296695465302094231536214507860763512545824408536587257339684878759709221131743810767375277339244162425050934425095216167316952506852882628778735500100556218463116995864531355586981578241902793704820173159143354784960351629877981285140980514664391178220261343367090528204940947211675759110232936317050317660509570724792976185494484511464697030829070985573235808165777096357902689023807491180711047203797010362970053870332948428368540607560295894220536366837821676839735069805613555768715568475876463199092741701928072447353345080708512566063807802543288768884668154439433253391262901976502281381583405524078840519758183533465455889334330836094177011195650763384040660712856610884525506313321481105193270686528194529814505866395476501591038791003232089745923623609138195327356805581373381922803453173987295236125805454672025496064026338886072699216874647924682456858833813881497799943323110333458029854692929238395492793306982555984431688671187807978318891744414091885248136252152878535160694674199847425891246048616332912926010984528414579123024049899255645742645079914151111110465063338545144546710435863691344103977849353558415289659502845617609581177085250083552988542809196285779051584814070624578277362605973256138726161728987076466527112428059591488844084387961901483080616253430558849039227766732716890066129055008373112504820486343683511666969645763561671401831321603782059302652548773206963013953620325971042121891928623024963176405180395113812808295907114296199053539505035292262154703393742103365916998600871022087515249976988838671017851609986524582756555813329927560912287785021099528390108534334948241121172156200917452753778353174665001507865305817977381999562840375899366484854636210660117731820733582248030475212124321834546928481990898130811948088488867741245435787419238642065260611454444979871041030113953361306875544644140000082012588049389107080602795128911402791591790755184492994710859641323550501410220059411758295961295337020721288284496062803575662837228260166066326715628209502283503828217183675499755818733624168252741226824504787160267575505898141406937224173741906656087791588788944614254504925003177877947678854012238348540939569190418644083823234307650717980445408010923543852341543351639825497273151926942719910540653604074301018989502368278535067085952431364416204772273908735310340005067274832523861973231600214740667601283207569227055000702455729696600789990650440089130683054297060667295746623226024122651622454988738759872056567656518342304964278260758578304003824800959278559294584986084433340056719708271602680641069557832667104630212495300619769970110812352848614602921200712338843321937407880567758514309011382270088272589013177077793948896833014860134121970610894657378355471725236024924894687141113300761819157465615584572577160022539575266862330329256199426159942075344148928387923695477299932354092782268417573421097473764432631051457287757391904348880087705338500982604068628042593355278664974755237125886652508612230931482554433407925491929260681927987568499182637237207580563223108710707500427326638390513408086368864396418488805091369340841367988046497655657533818929531999988194954611173483723336927227771328769394099126849401486819511737845806628531857550415700499867246876011037741479819118251709297413622986730603553622066762836718075647698973950463861139349208572103439589920556535084287618528622791577704217520164410643081847672121987755843942515167854784609540586901039355102536458639561305556880925948992050928555518911166896739341309437530562445487288548981083360591407982049865231693858437139592632293221722354786280803155405034491806980010052403032811858902751156231745612921030164168325206209015815144162908272315332968443093770416942412356882030152480284435073426468581788488608859641698791604214922188866228154863011993901278722011548907430228769892706060159258807135031160200788538539694659021783180529968843540460169587017049692087753303539014357933436161097042938994262930082593025724252852265308556880041830774113251445150865437407086819183736382553343257916131772645626697639682386303087080241605256742193215824405414060840852035807114404735919821907882717772560533670164581164136246622790106182337155349610325202625662499590458165897031941445084371034943851457575506958701574057288826426032108871788624207951982255487615242768708245387751857171072018444517603923319425533648130607691502498226165113015487808456007941552948712403623232770889045754872867485514772473943242202350591314455083689789145500189715653922282407832543048292241083973616550943625081563352714112416512352602688617352980394555126175339800198593384324799399627596049695407505481774480777536284211400375994924589180357706805825879812147015066731248744988903798201587927934244338733723007733497065979165567245883635922389002639040607746746167562052886401862546346488400603067882288654504448188693975782387225922606825737673745205541752113207102668590225958170650167193038462389073567257093904973288204402286658797578558842539454063626846743343262587127874879909109832879433240242931583397852940000071557682529097002562117012939272730784566139973015544759517781566298956224759853029964445370525270525594030494439794346133226403732691406926777216237304572173390347878496862408623908898854788355598945446046344638153618028049083183015124776662321073981448820114185134775690342625662625205864086619710544668918532032681767520161618452369269681949581099487395981526862916732195869328260072917659210582578661978433741005109072289021608461401763243951820446572850543036788944426923227055186484186687830146186664804543231122759010978449903258332656861164070225957680642596436194024712214076445346562801040262710730551774710426181733939032396463303351034046371254579516461606402391228574266217196506124976617856314578377854682492258733579210647176733986985183137508024904081968680530383737089983025824220811383019360400527522229335946878726970105390158141623757286261422249467306917398020404238676851353638933579168461848057881357556461232155903342933754972596354403352796689718584775568042583727663129146364691113571219683303757351358688240341340672708874160637120742494368804373685834996052375351412291281882505567634944188566545893651455569288299703466169344005786269950440974604952250244157002558770883747989503452343830136512857061517497192811348548031211348865431894631523907381575121830843453544092336591505241026833070688286379012063417949028942931502585732552746105878416795953724281616395979994175085121059251791027089315091224115081742286277651454908672426510791358573866489338249002193303554398223972914449848572373468389144219600732757512062729755740668789129132904028653096384951112134761350867021652191797526859830977744619614321989339743313010317115018383843495334765913543732817664956867967935612504806580245518665064462070451936621798813235193731905444186345117588024527364948085027189069389408737164047288479407921636427738068673808908777096381536014280440039668828204815169819442892110212319034290735574411740129676991481035618248073643155540233549400751753182723664029151739668842273179269835804121192372237794790109672479850929060817400820273587757003614620036606810441980841124979983734540813604038116122755296781725679971139807895245890444110239599312082507207017661227005199639418897822124874947410954217372600318740019914570795918884411548017552322990819056154973267288339829638524152047267349756348689467064939706222708114076389274830036289055787640693764071988021347219515004385269900610690858543743432988363991102771236218638889222796145771428673459215285928458243666257447546770375607887966593474803661466128982315235181515367048551815335712863284551189880030192089185967263185825499712946619164813676108880576825362493095467854360316347041220581939601856856289979650215287719181358696077635835133367743732524742821581786082619126662903576056810845305313489228878230425511764616242662619282429006198693839040746014985114195885993511478395037217375566982802802571675112370677764545026887662840410962384063272942700968742819443100426472664522799858775575347392108697517563804946762258141013711485446899072919981386484608275445532789235172418155810464301003470340108664599109490630312546485891692028902423500994907138340145408278271958136058494787943635060860093051488623665732613579738619047746925705012205228849755525541906406070626747765609947497005644595388716195922368398358674853709958378059692092609459449380931037123271632644533313355276939363178647425486066370195308644073710853984250362094579133697603158542066833830303843325717830428348066452981327551138095384903164040689644548795525344124222212440082235510377878037603900606412760942878023691181386989977669697239297617221226598043314185365444765436008572498601620679653228810046474931972081029107091889510671662719021450943190386473231625424360707844113454584337442553637533905496110895333107083212542378983223497695456159517616775107836893915123576694722008717373784539234348398502555965399568749416759911732643755591877303393948262280700136285537794273073592366891208376302413117609060013558999514595172448024902599261786115908352470613287543309785948198355878945204178350134522037302612297456777996580600244572386059987805405538383392943070852765025942444852951144344437307840352814956188465341557966768171391001410835154771287563751150465883930644441903662505063077632007540246635545546961451382934386002050396607451196845889183983167703333711689356544715758027765279955175356611179218313637538260695652222630584186298114086824845354479542273133853597321993680231200752445662627696156015293615689290701262498225054363971764694630027669202309215811973931162947114295104825987152564090880041016872147399809522730484079436882673753873676691867182209616716303260475610578947176971013329448399622432655334332640814007492072633599773301966900528274089007971558367241713452155912727925454463013141816638817882826553855967446949524585455111048946574893673298814845408177172505441176632416992678070874484548059720743858375312030640562987197854897830362712605168993908041698602732760182296905939811563281790896710871616161332207055226876231679622693150737786878646783201958516177319677651610019934790370042273172108314911523995895518286576709032581711542258597641799171037250813769071638654455942063546173208677511295166115978528582535658563493613913671258647002538269807891152558694327227825483106523548429052525573431548816420581666260205258549737204295750797580511134804336518773141338234929133258682358549654410963774417566311009769710675030050781359829068948468295936119604871239270153417851971156140621057632976373604374267273155290297282266538138703863850592666778306274429663724371673674778074694594634635317073914132665306321444048735578244520508227220644837584494282024854139336159867404139250152492916500409342594870751224239475496672121452751102712970177998020124728596450074763748446126303225906352162825645741880547183889335798646021039653869862768737546291311882061542315379268405450565512279457452337252840155178344271695767264644630714847312284509449817436958876590461219451806988540583880561855329981840439135826452114528745097625479568726479930911729905045672723510698525282467580536560573747670557309479998488331747036896756988025110258834557457554750318080794475334045057160966348116306704742696194972151745946006212994634330982237008271793073763997262784157723091495830594643741152318708451025324101133030386077061154837090362005308193249225347330882922971328280764322375002468129183329823000715348438893509240037845910262867484359173204840417068904428105825039872165982684524510014145507247700153905123135639258946523534933434762055829617486371974046861790678261285514012595131565243412928916702130273369599711318903094681876536213651578645206575491723051198277184720340930296737656279922584192337160643910094736611105568572075661460831623192311895178126554366566529094512228520227405644132112795216897865890722058081879058788328258005200130717446199123651648362410527330241005987991838583330091670140389965407637266534378439122675133495044054192157895996899161324310089304574622870274454544421459172206744453510821710996821359372699490382742622314111936613788991114585487321820949313742062051440716434074685430432769774298305656007359222810960553895901652376704858852813795223890355279498018642548058997031972425061679897448690091906752521158696012294086288269519933013537997257260827272044998576322656723280549167858640944475533437403446658104961936591807192131549618544722719362259056974520525079285791466022664677284891977904109118668489707359987983795804795907102608432963002662790016062628166507263765459696145503903009358167653755540726528092088396396458173171627847847937727905755238803321287898927499466300262055475378858520680656898666098578180310061174806959724270786062945206076855827070806528963783699015125819324580823012526392566775209812523468840935244856893664300149197964861716398461270394987212078535146434967684509402001096334941015243712299254320316151448699770062366380188884200599907287742948698615016458672027048265529284279938464787949930179866394317477968137687902745898260096501064260284242516997502927832824640615008060939694664107908476661745467397940616846413260786901541422733245723561163705827827235108750495674081717923504881987633497983870487428633500793547543294033259700685676236746074835776686891353123728053702893066517988425054615092266103309969182669498392085243801685248076397299717341316385349270699742794465789843585949984529179121051959144137532264157693750736512240004987132657197985707403884099927674464300291274450604823587007567143004559034948912603449899157059164450464997614251451496217726344447698785078466006203500104437539243286858368870058784853329431050595113578113069755321539274496525504655952802555096567201022520829865091248568024437825846573287950731374225674522185387951304042585072979443374408475115481286971115255623690614830696017936495536330763167203723253463535450323236008656299999813364148635704394433445357087932566235885357892349759727029727828038083251091242635607574528437135856950047508117235143397346261049141897523256186862028167424679041649170757376381542406855776879097000241812471266620473268629357054826897983225825429604860334926036868547281088247897407865574976340722576290932542524208420638291712696121967870072117817394702486575555076060019909577184174096036753638998818823414290743318460380746882150785264235298620792653217245829266140640300290137657602540428581274216545454452473312626084859338412322063738231303938480228413688234552858706788807326018419960695960046874127080774182190337292219690791122068132913312880511423185896408560794193769376471208496992252704997200961858530153181183271539202610801965189621763937634863280230949597706040384081198449897718317329304906450058044619340769862824504909626481911064073950196902730394783204973149565038726173895232019660213926357214118612907984309584684981494184387015774524793052265829581095762365285757990925772510836086249936964664494575767135875458673747010536969974491629979919927862671902401045108541751631719315160996244542691256862397341740691336635929388939149659631131978557031518863791034958824115154765568416915602552052167763981329000280917569198318775105449812540722194996455605363027629113285863684479442525811405616886169276243175077236414312074213413269637809193350216619839663186428913164472280749137652975061568658793103232512173216413969334211787099019505815655974533294681554169769581319078811492637107431408814373527304018445382050580743998586380076889555049874007135074829531077381264783435167047690879127948555759212574578395734326955135200561395919475396114086485495988140369088155776512436729564893555914595850651263205200899054546037293617415470131161651383755797337073834291722526891213739364904910426114238295270198067779782002034828463578822601659561805682468958267672236040724027267961129700975484500208457226950371174745879566237931491803294648064104268436175045854660717058735926378326194397635531570884842137420465411002406534897292913739926609132735174263530396258496891109429155827954319677557679391260184834962703994266016915528631089749709271891687012023269646022932647363634093113041754137848130075297773639462127423518142935143256369542753136353141664359386982811087112744015925118800937067882824367983227326816084153965550427356471078210951751917787073176637112570363827240168625780755364477076017184836410027598821215996734308745214055220920421828625278187621129772532089159321523082044650796918192509252213628396345909689295175220917421243956937803287220724025503498305458675226945355018440575969179747076474012867029844390054242956708882683927196216608809455519946781808661386897537234349517269958958157734350321352558664943565527967858118774828979289925008553087013193485803189510471164714819169320077956090381322089793613228435208022114456703177065253184466985621330015020159184513446001971923444336667152686247426776761927797994326643763080405873575681919998466454787353646511016124569142586464887383138303029180795857477408841342054662873815873316269457115940808718874376684251340696741170491860142700165663274727305617233511143485989161715176678988005801333826439868715382274151246690558066553605307200213451140727064712207527800414962357400591359670389311061456810745677490563841414746418220862995956467576992377696405750118163167674458492086836359561741584501079675561441804209878575706446867983609966200107629853541190914075540165055150003353280180528797937656268902555725288782886593934757832277471965605902367455008378757635834528283081525996962457814537945218511863988231266934414974305427119546220657936311395582932547385452608992847875492392210700540269141638430320162250066116487154158665586243332720053403380695749299425136110640017431999678373950608379609359889731206540230163180211192660123895894715215547719097686230923315298951125217385216243041701236502579954658672436437223060527910873033435047393225256609462261114225441880376208322974143735356231707418713523335312829402505692163881840716514356901183220252198749126474151309423313125113472743911717089778680534302006941572314416480915858094802741887785258309019136850920355212601953356522737608462603391692953621604258831114229997941784761662750493179808219260100052826460177338605825726704941443155970013833406429731268661455399944654804381659995792141631741426760929729009894919702363836283288763272753769055638164525677839122041748116906726622210425229069858304283676902652065495576465004874244559673170895124557035836763232271632347400534585026862552504964933971671411958754095446802809636241670669507513139851164060761253726405138410747336801693864219057160681025602976493330294238432758804112612076957927198256635825779474130198708789648779129915984688858341596031911391459617162198374184534552485735517732908331408980390121297399634152707345307355172876981034257504679436065546812322619760373050531917313618173139919765006972213923221414087743145618708728640069215863961508841024367007314180123081390641089177383516432991776016900308420485062853640967838575635772054763825856417518040206580083046470016938270611712385197072290923325541453988148044912246763654495221534773368017313519705133534383794693931733097127788377516602270400543031235437073995332774060711821156191956319731851806672182048985697770379161694632184228382634238627921953693601419815653745764968577510328394567565624712536370583094591616267153952093034771266066877162511589081389889467936287598246893740603639469489526223165571846530155600142875183459911122848498172908094062295133097778307345662059061263458630054057492736857957791045157249445740001912116003065482069315473531976025917608453505429957970897511211144648160167398695124664695528592200960586816581833171868869576890047533644084480069028792246621885825540237504523022978137022621227019245186267528916071347716846771768822330319845310789635981200759241493588687372122052380361583477426849288050280754693633263886629887455171546113844959952623581133240111470671461619932657684321326860260513560972853144456524671042832958986664661756083534361996579481659317945797418367028564148197047135486736102372918018234967552657885072666002771723806986051763316849723401753090579987829571564463075081982876307888949885242830955805805723325001800193680336968500343477390048064279526959450347567268824153358882553397068740069572839601268897957417024381326687063022127872318736365105338667008649535201586110704127899696843610379658100709954689794897079142231431215082986538432461228397181218318527431450424382498927604525092280853907769484398845672490127211891733650080301265374534517274466639555085996428016403715053239223489443736745621808210118064566095132121069372829259249545099127952108163574554687177781962781177128871075694377515076882751874504653343882605010634961524717818188333128699923116389968951690017085718376467643868331305334026819024421019153164911412546937667975598696762595647246843154141124203021043085882220292921752100391886473782212039515851180753467480817067134367180607091418133598402337101110202801374599657660611031137567596513232763760089044109278818447599695300486420284833551658815461913868310066898682623784202288762583131397465742711979716475939018087960694459268043343386887829547029705112411294435212387365245490976645299574138355469257758178521737412583177170869119214501388029562050010846613473257282946653120893012936585277861984868472512494078924886752323420712064909434401008830870203605063743822013906990855697175863498310346786917789643961993580166978264894921647427515950935874358826481909328628443682373825083914229874524590547378042581277584801164651903629379693244890550775814134549755930061722284836201134841534709051309790259409544304971797483620018167019939252188233280255282945791604403504586358561687648931982669949813711299591498728341837324924041646926107881220995377179942271634468615087840355785142986563073298920866386453196523195300247448318254292218805059638907157156990398232979740973276383699829930865881469736446508398816831412047900591358975907308052919597999791650847540453594429797367098406827343523696183781460649860044416165972737292740558731848789809792773790791265990256493834706731714922252153354079613281778010596371938193685204966894948012409087352713786679185851297687745947835754601434985487814834073075622728081187336274683711461084306942919648521787815451700554705526674295575415753986715121596134416695873219820631307365686685017465891423879735224430519771225986186659359015831211853048896419575987921655867846187174485467728896813233926074805217309384600078601197327689500386913845051644219085293029492520925888405797989885418854131512762649432201854105729180757577187483675560714951498456345946932330262264083924205575832067655060568170484493882606652248098379881005249243558080775478853653827763773429606770857265800836466873791829056894014877263772201765105779437712850724051649212577097039114839489606036513840722384931205810836113133983620605768352266671969495267932847525314329866079013383341546903142026100003308312426518867215021410365302834532031584419770893224195023294333875542204532124191255894625056257605145636260536366026915316916745448114518666972143617038201340359339381928278586564341716963205291402995137213642618024501130603608946794703813558579924881017559340870503874420515741132258702787472239739122489111049807464455010893627082262430516820421557239541538177172856897543082115632637443592368827968370342320425735010061767487190944229986361923867608862526512946155623524682881779660417596017420103264859252267783938985126388862740429207540839307097605550450882670406968783213682557843866313684479470984977911863392419009280365582689174934854866697590583250082368452087987526767826426659632732306188616801135898945978442559525267135952046758182445790482592425638831893960756304716146842646431237712535435790264934832662432010815321582734712177822348517035332897774203571695356850592600373672389647042815803479296387943208469987280720892278448573842608275541589735073540069674049786676209322462469004170734827060940184396013197746890967599460949033592991574316323717628932595029195004855685176028288722453595111330450643375119833361088570807229264683483787549315705205137213868192520224038152890709463432352126106252306976215688826611209709551679950202800594627367194626088328686492138005338755035538865205956739381120937672725940098028573400564159276993093744821184706728244881551398081514237149109014912354986975312265039283330675394581230394211292670051084605546911831819609371450198994188950907196312893565631064024537037335421343516985804482669398486613670939629037258194013464600719001951810095708203383702930406821052629734364293854151612319293396626436087787580043645542057090682065149542538125690315552342504177989121467517363025693038788898086134526196963652078186236488889830223205387651156118694226499649292292414408233390604916553795660431951792773659231906076307534800118334868342430258494259009283314439508141093720389988681558958646141285039979405808120406052338117986452333682474260668890495464580532747804865940929406658567172397708234672129354899929118306630437705968817194261345568272630443997521597724749512027079372672044559515501186040163587851176144230107293504541900910274849024863669904454629932586197133762807600732546756409800025700703045085794141915873101889374833781302635012679013437734285468255819151061413816742248713984975109661923981608868185658359255846258248706367625102827835020627616466341353613536937823256856181651076033568625879162024978952413301833531104343381726382182924127079201722351907516069463902535761519981366115395600816279650355512721967843833025014411357746565921102172629867412129875314296846030834299570839046753616345153769007625027430150685160017376507654362731202973106906743962778289462769916130494703480351485683208053314335595922769835533506469702106233651598562120868221883406277253085467346946101060090314468268424018789266579375007913406117689457293657605787329536863857706168518572203850608975869425340432502642607435445592441184693946585828733965648354473392705298944355893965608554454753045549827626531514846410256849889834449793546083690704919770616635656072839255173555833141993984101321771972035455913105784559561167164360435580256956842736904660538145663144829463212709551330478889241199727305232477857175607125907773730264111880810436881768070731545844308079768075649242656551411801062729287649803651658704989992025635929514667865386627305023474576111507135160979085077143407052834832038575541058215662419593167542888772982783439344920017347785239242160653897058919545518825064312209447387665196375057154982488802142321170044729312907243626855689174721111386106115509633767825502846923377325593643654437725972130464812068681943439319361095969142690245692650865480235928272730666235574246108896464752203735377072441955981535771854198537119080985997985227377632186631024687475683069329744580611022766937709998430368694533492374105786180290827900766822247731454844136992119558209762071353846636352317593825658703232510244826384146154263036760989556989828475140591349962930610740784688546960356363919060633321349779956165423399165541279469267831491815864286251129472245679703332358625504399347379389903587713657066755294310910454462088146053796266208068655844589238050065474675286302466460510305291354971376679006521963689834941687476223992632556654380769873435390739471689294229371387663455261942781264216691619037947081153988644512154613351403631714554792066694387172800600897251906081226889186174700178350278981416886075538167382779300270986177922034777684077794457713559926083008759585453285572379860848759168375254283113771517639122677283139940267466017764067953607342098682519857166008078914344229025615493276437624835933030177074782644738576661785305417627539263008862825220989081221611535754646395907268074927395005724954546596817751415830117809244789752476018847403199075273088499181753738124035814555188904123087703386946272669203834216929180036910303862772284289502785687527834934237850014348522439341113866819542769667307189500980119627805927350904416499935974711603863187776892284905656444193411672840280388402471055431296750986389241073016103340016715759666147507720272702235830444919808030018363339196000821501535667748519503087711660680681128404178603393450272244592804495069733897729022667853513474980392554534905542630982834295826591571365285153752704422950640587918096721887644730920408776605081694112015340785644769812912536710816261302964410229717344144805450386328683788091141030456232292566601488259561512054522888731037589872348878384672770168821975305591353424786824489876070927855971202128732144078716699383615124063806105072940637541778297915573287587909791216817646274395601152606479101570206763340447082019457722246574588167781288505026837337145653424935960622472359944924957911275248771345814640085342722055093938266650775481359301852914138876913181803764769175248415230172157263282204099213323339023718649648145756150530024077617426254493698160932118433962861088547502954991612762888985375740741864968718140731897169753791750082919607919887651026893964725016288774428715774853544298226697317908478565362517272306730935173050680968093693284188671483772335423784024675060851982932595323935465306171835172349668759420248564210922115309999653484172822555016026354762629399931577952405354200670842987680944766082593601090318780290272680344557462435272579868407660340484202075515623232201992754405908689917672430780049024432563107208793181860861075188191133996175855355247186713839630858576582716032909259691868395214940945460391805394933594561428739426401105387922675434730005382871775687743501922895571440338099727134989023436017991413303490770422648260677612130829597331838694643725944205857878330587265456096649060143601440074883099022171798147418326073303763479414468507957203107849801723717093329566828690737793296605537892566637410998862921710184545246859228952759719478261550067935942918745278616900592906286657299014051341569817088934808710466794872651129339919823971206318759949089141189103899436689277595917543897789430288930160543790179497496623836869078322024205292236351038618382707588065028467683788230178901099754811800174965888298344498633941278136454035841366804428045351860091542961968335895758317745266949748405602869231582523132628828171066817620019823044165238986896314268890717896325334867391747293906622681195068594167355481617045860443332560996691031530856323028061977321701438305239383539533057536024645612461732757490115114961510644547477163381484352374149401659769503460628981510062841638020273209024939724422186264615164065175560116613628391498270942661537552129848244369449360327335492824929882459203998802258703153178672207516919192423966915714818033472313236709092686523993326120964930580606744657045056085073659351223122373566150473911646233050052118473220202370696111424209801233472228013171281264882933683183621235519982790506819890430938726510786308282081629162129168500418370799272483230136988158772156528198694375547887924193299939014753685138525227196061295870096924477484863687317903798994855647231872175968257657729438479712419517365808163869813653372302133397281223033868644061880363575400080938145311554565220282870893035666556300870565897994300952543417817561007306872519627061790082138972707330485346293701633621607621192638554100034293051379938518567391171689689482041969687666794490744090497407883875989274906817422056705390042351436152961164637087153904111580862101478976978150778531705416039891009347274041142850016254837733299731823492516692201117427650041781262325625145604862192321244743694109604009578063011585304224951376899231392191562631977153786004706059212203500250149913465583675290816083323704678414781385093908263473020166406915242511277988001509372614745146830967867069119844441886656511857647134551342460923598698807426014893138338543385221135161954823340291625009813971709349947642523316195987399231589003118604675005933024333547826916134190296524884000939844583284809343957765022949949455606255130856862032159207050013263244584747707818030595323255875551809126560412281956576158369830439149618255934238195532310249175261670225436274463454299446162862717057872869956136867059763782279346836325712061081615292338723656129594188864253707774722642561462473086941152303891471329057317987920641467541846102466183652142025678160386418295221219089741221445559681224155191271919895430696391460773550076912169727098205872498302477378295659413252618505907233645530980585349656057166809254669044640266505929399291718178207667804650630414237329152367557501164135459929075834082846464937427655061881967727395188598583618605205129839980316802931069794926067495940252578133405284562410015421460685903799398970024920729152000373976462232815935760581285552702021928918514303464925569252900951629100355118529930968774678112687203447330048843656445800899221143559501732172012370635510182434166495130284603869763036732906656244764159848503274248801198321889206218835756147336763629909393770686267613320016413335964995672580301342140037861912651382118528953143417059773401678468520462854390853968042581415448333071221581149589446591489134085126785187647383375412982873080682640821640859660658901899489471603074806652181893539780644121506851114138139575410404816978623616696705151468766844483174619252557021206391827209481849994334204366082456776210047453337242942558229521832964866767029114488782752328080253909338481529081523494680874281960927253162118941714737831728931948246929842151033424183382847939122059124830761608958282478873589388633359420913182503688765815418245237204855562981378912406309608477531450121944658957401365254651807166639299146857632414014049591988771682289397632996213951906807291972123193968237633544687256438088975996922446635811057756705225955400906689797051724055536364387537184564000813149478848623692041555527233951327076238970140026290642570442837366308504788268218173475413156799477248237122482000959790137335065547893446052636119977336599809899153537225726012544262461780412461706829784614609714175661328863683655592282789296621609797293477829212222899769975508740974010665530628924883025374465098191475860648868794258234191822391291297331460889560083033673014606968263341605511738526910678664597217380582214580619020594313040867064210946760612285626634040683299235500816832947835731127474357046681010292760553940356633594291644181371469431201423620604640299503564312392174451306688200734763099600141141512693617261846557533743625897845263717120407676349513468071112543266660424168165829559636577716685001515545798744340150074178813268728306011992789871839515005700596566303192711094353687716698554262673329065665235879116238487020443606342387454145819273656343729503983391259997105134027675523140995474507060174610355447220515976806165338981616519364945375325128053063439656122038004479510776125950793628192237824633450641233342074147566286885057188652679579991107245364717977690571915984535617174980997101497028817737528438416077577512278542858371523244259803262893888013236120938836610769404362456728358377643671673882455719732673437514493799034146761425423438843519286009691173702244975900454703224900784213333551989914316200195371515330243625851684961405067897453925757590033038766207358688115689000558636872165237196435589189858684058403612345554319115625780496463698148379220350128943936803069291859744420148876607964192717415259666362369085499920397853234327475194514660892135475768018727596582917215891376999414662664440012438162406227723698360507477688888392899863646848125019315952677934521711464801389265228404927012120874724861434358391579504612908048494918095495930860869989052109434247450088232455653103005145228349568710451959083966056875187844362879154676637858012094663095217906557386323584678862852366225492993694917180461426771741125747233617584636302543528533483352864448675475878126505139333286769969983250460756601702553969614525877252329293080151433882581902129018099294790436755296558533347885205129350417021910385309304554592011362386891505739132622289674105918484908345030874579314568472805493600719996059272588834901306704953422824156055403259292104373850247945271329158272483059189466471840541458801368740466076545995568353753901050403651375933751423163183210289497831080877914395831253926447208993717647889450381121487148345832512113463462399425469132352443766637609951064297564504461107634605736257525892696591360883005011617822309401393455078703889872895594059279440160594465765022745070149725268348048844064767607483351928939737287509068604627982597737076267315247690807031780731163680732989810229286852942899909734641186674070819552044567563429756638224353225243767327311781883236685710032081339576723903958291625321271367582326408377014368081839998912740344309471763689805037965609016284538845487835131395905960922696607045158958024013041814065272311016458172808608072318259416451627879888742231757063806310171945090103614621841160896076045515152080386016949113735470859076372844871796179309780635978885363469750042982043832931667785731353585986783310163408107086489683003777750172659118611136867696201785505739734027089620255726623795688608276247460827604515413118712418023476070538388922859990022151035817878933846520527064812575983746949107242217033625415398326998643170730708319606453635435656947873969889691623111107721056807809873539319312841890129385454660245498890034873003927090738435147662381638413005652207944872143336946196760851023578504820187947191891938675412775555336954859749504391849903239279621777706943492526488980848532118775990414415076172890682200518568145592208782039460820864777136481869834105131059992449374057698069766641719832496397964091826953352707739537641378062059240577926921145745541584672348758102085316575373172864641479723575050547334843956947209389035089481449643767377167602460871363148715913714813246982558492073474984701978145668425634616418948980054466976495538931004483418946872267404871727717262153877991033627742570204021938755452040788610284423990711267173150548035852682985196493656770344599299390843511234410493874935979806308055530912435143398217306855904586902376849611277244485868913092967647149887968247415256504602267730019790107028146476548786334541010075990856488242698777317816974483893397891044015595518260926639316342229107224137964180196421475596583066604923449318924693887688172021347436131753256135320520469160541215633060587858572992330223268437763248638368381000067120327317497487234885108213824760819860072804739965253004085654634706419970793540379470101061861147039824859852840957671761946752183836142110065877218316271454529939090736903857227737186937293058230597916485226894907546022943132329175011477198502400806248376065108644723205280706938133675189971019678751967333080664183789551235012115478846621432757434010538243009940677572313666114498025817819164221464816525954766035229012778065870290478150501404900489966976134026010610362403962331340201906063784795701660855920751996082962039137555372512983328541405888595547570591117838467679979643980134881446527370518425229564536957612005661712653925574397755993808065058588047091210712862368637452282241499922613822344540944751297779311902753530038753207764374213806701141369583495247190475932154223316119951342990073304294936307585283043026916686992134021245522929459495379237537986785130753227773442930203563382701326258565180973772860073474146854966851375553068945809093272686081138536259573319728738674384571270057333750106971139461053824017772974024758842001675648411356231113000428423865950918017800873709587392300098751736797934345782870705342562478748273875481527507039333241342639941257952132066874906236468670268297768819013767958240064707294848027202162560186548319368493199700332630285615698534997281493657417610696567492751428602310063715396534581762118627135501173653655081032003838439324057641808990790365943384085249969722510442752590848286957888729470621259967908312062231585682466400039646628677525375074210083758971284259137109965818270984182932487943382657683032940193820887951889100746695327644779865017838819321096193410115413958143514632415849143131774352227052561934420656410219766048758542895969585870462458497705475103335128766871671732531816506747726729044904479730191118935917307181281291267704550062841286320803327004706331023591521991301793102383845511754867689193445134009883717196594522393952562420054665634106937382295447076561485749471994692068993097611316277429767492600172017878995063432945854850413096028691206900315845878973790845246621408924855543283090447841247418854289037001329714640472884454201755580984550126918351310790321547998594978362634970056938897431457009276737703470341702546380743083239005992399085644414039570164657527785024427839082102779044436883805713381666382007246513667421879880224015960616134734053681285406517171843906605716432616749678781562775668357286102459492674006100662734000265295740754000850766522086902231967108979711594610036492201909416095930613181921694888993529388388382124480437530952827458952183123403933283029099116414413636419723569189905192886160989229006753254599797027969447174011225306330450247204905839976059845122814740951970836056352805552262790757183018586503372837335693102875851655690823750597592176494527629156955509920656287674952138909876905279816590469252692074477542185094520615224002497219945464656240122758257900858987311097446834860249498228325043561406889129040585726477018465777906996893841005335821317545860816463178165349426653244245008635142023151073305358722909558917183796024097420833575065318608893604643182573473681366273918547838124682321834323043786596699275409047798807283834679906739299054489410834395182033882796984425079690109349161917217255765841405437119134732358058078995770031567485547776716349465119790656770568892252347659722907632063689237836523789309948756592213656763066045508959951224273684691866241093707538116233121198791351489748674127201944496140532298202112454302198398753835327972454180997999444311538996339528306802309599252595185789370936423337689466482934237800618031032111643764546315031989304624504025367124743755856422911649385184163277280779780018813412429495871537038808826263336832864688109413373536444627073011567773481910181729555745518466091588266154693960736488835784880392784946561521103568003538192825341657643044005023259168200649678691357436706375414614721940590212382296040535303018152635862528724527827288644676820509090938073320704616272498198730625589614228076234600547704288863757042431170440117045285669863546647655247162936082386420860667912924781692555248054835284217128394340530282260019225676006034599290726169757081977567199115135143327716368820161159907692899741542282254177829731281051901989348646262714061281307477016640974052938947536563694031919286609382021082800941108294341925267522802998211808122454613419681166456050138350081246490961132861112046064578948896377929849364232877339131881744125687439625757523834535106144657574997689917255444335660290022530293567575681161777561538394183622400609406237921504290050981226147595128266488548556958451723444709911859079851712850909084819389174817166777254749946340452913953087194576301981652144558200539060681677645953684642757317392441530941130847798367817544068118385869788336829003149479833684536572460164036381872659912614186826584526304965201892711806215539947809818994003009672261337666109509382574780035581006081252438513292158781355517541393548434672107421577476016373357809455090800532376797371701283771435663749028062281630056569509579739951443746564646365123604676210110336374933543238097627499200532832418960959285461706580994780950010589794408402067158771744928809084332665182436446516351524386280701193429084459315444624222745077282209393746712697250317429036029579580041286276023714426491376848847999013987810971336610140604683577463414047721121006039679106900368472426075634220480108819449168216028996033115013434540936007823968276413777532812106450049042091526021321054722744758226236610466851021620413437221986748094029700484489842077559457311587528069286507688926986473447116188985822034059928405011938109797272355997140513450404503576579378688495969773424124817615738660363901391714918745203105379740407429683037260901637398141233038644142459227671439812067634734072378680859881719951200401194577481131057130971073467220644340944261275193549342255784755953084598995681393394968755025977430354708229506901642793941938416845419685437441727112216450860313986522817229738219228943869650200988036962250432142050784230764450278001614753613820377644738278126225992907772559056349842299537428790806885094550678567446292011496953727990541609475107930352624652283925501512403292252833026508552638284441649804178584792569112639757235846942852593432702328532884643415750512054079102508439909296711195608056444512443152442823432888827136677281125178416056850466908579042802547347156084129880186872834014649505673433141865221324491715422133704680814873345239053940631646449162522343080840097660605594177141813304188703006858205484413029874555381450130052655589542146901975158404517322248185904813003949684615856269527638574528739274888301334500944821356211218569007374813890138410616723435594093306171892939531007765818415603327383052307492175519420712097036784596813934007755533740049838552556309095776861683527600873034230751913554699919547055549039972218258187674564730106707310673537033373642668731817199213503847481513946701047863680085689282034415565408786442592967469525164777157162253607828541291275337518769927396769627740029316190011629067197205011608266358613537077773628696239688418753208884346495373098871968077588062602629322999967287094269298408606500012126808532281619494795486827216456323470688543843154349084813153570655029442079027336667088158264086955179625307994499583025617940365367567669604222224594725669284477570983093319047001117251986643133492150163438885013467741838288616227921003954842869964387648281154946820234636151268046006334387532058747275046175998693057292465954838661554168666398261500057873053289972637393976490223178618845965222280445364958937539238039661425978201792929791462151309790793649506842883361230837179428398680533551627780843413228379974559358992652102387613623064260506248216726236751362391557820721955942276093272646341225413005634808909167514469757343521790574137069513942257294512890260208574852724422601360649511625844970893693422282487297614472545932080990359554351485478391374502974542681760687598513719116647997338687511518570530142923200528272656764679929335510214585202805511293640195304378373588307987062883151618635763942867399366617402621492282932250955757333272151325630519090250101466262946776122123305054352529460914901137743163125154768186020707997539409499263311981426515978404760766696219785877391075852585382931459093728138214164742274217076222120508563522565825703720340205013028686959827223111934319321974700598259591350452762207374734549619770057532102121404808779748344830321917049099220991970288327135878904409388972533552295821402857171618681772885467296674416172062758046390917149481484650010050978758751168565477044085742854532085021869690168049855679681828837825144451623977227361821249784881121725870200950091799097608770988164112188086418771989675746495034267459845389961536467841873079354815881457459502714153236094872795768028004267000812828153747317652515095791365830047758808990218800627445812849353104589752270781078238086915216239242653815189915072628502390787180212639321025839447511423748181848781479099173668560306766070729016757179705261351107313317005726467533244449701328934158649554445503057780179545097795551472630988321972389883681080310026833453360566707270516359658583914664306321550509117638051378512618390487762384333646430963217294231397734700392305665115983857706502055648256688664500968313500913570486288047505005713504896204371336157011079382800743942487991602065023349161703561272217791553475272597211315188440972459471046076609120501667571014440279153691353817233397021266072372733681449215020418012092366130196790495903368598117094464996612190025764595083118708783236477277021759670021573766908092078902982900002666868213641983510725000782539711422793599854108333734669454624554770177909007959096368004973126437213166050868524671835338683696431385739646439532689398237235289055355948519868709236243948654658310913721917495132642705509742772404275527664804097474965088273997653767934007651863512371932779495683885573724534456979762587121854613697506620410059002963095961077134686612589240529775379139819046597011273715774200919499956387903552934442431072693046493179859728336932651760140105478686563441187909246553866332967864782396270112322615477109081119115702390012006288046156222700612494576115040710465951237798765918570961346743521162043827713761018165448867489495451479734661271835062079052141604923787471009036936103508163721593218971999358113257045187183880785704862099994321003649059395565671198197418187905686103953110171475841804688426477928371693485648368352748280428129334727247204301441937589387205395614770662434700368042843457588824435873697961197270507705420935568237489693173155602657469971746230440694664477333299193257995542815026007074307575179845240749175174130415452089908227677634710917877932511756334991471709342415330388043390001488857967240239289500200167586470571617575434225209530789364209845818279490551403477386321737752185354697680189616125935600569816665677554125971675372964610923040782471326272302752165790497703656604746588950115758644722332746840274566500459976191130685886492976883648747971676997051286750847977311055489583274340251422304108071560346659331566864629174059421903856937437317610437406644282306312050977824511985134139756741456007037287757725877120565878822705368998873840363576734405089570624762225430614701519109430026364633373173806954577419565624830756038286980015923145899333050542722701053476404947671781130321784689566705213389208938009370268279166032919305470356901884844532129735331607395444320145000312318576113141804958128517887192596690084844473393819946577801035966865648169902548820013935843625994650444188883787944952659430507675808508679153233285800126128284357619929839041876778090412763010266663476035510355686389222407602166900883221418152699015587503561232403568296526672265794066710689881827319943397349436045260075160518286297144824543328591155403383363648573733950613688114216972981645789931574503916090161873725437759956177514901984766765120249248841490188318516561145192570089356087771229153058810617488754304115549711720404720430482979476785091860946526227961601346451859409910416145902581793458275052567661161964343823526283745388360797462347900331586847539505032656897992789792334839455821549556788141097759323555802667567091989475905489237734665616507988437430157798008648844996028050103790193768995641821943188582210039252276740986636242123926932273246116527376939249308016474883772975023137916159985962669774363636819120795180173507037168421636005520379170469582342586180151674405037460392332853121807214142968566418880154077111193492239415311824554649371850324393328487281362241350291705919263365325724939797371540839813260052730542548446123401906318734752162423286581045543892558789330389314917435198545854211305738730168483932156279187523272419109467993820263621370402053677750335361983681817462324497535089243534389982465023186586581149621564884008440608181975445994690381297122643129059529401326926126820299628104640039877209678372025906990132152887803520745958791989474479013546148903555454110563211457309037168467257922309637522656389620065576011970075455187841535152236658799338223524465258725204589086624276592899902849422831961126247847922700029636818775807394261347439150218317581920133173029480479740796669681975574203520994336230114332609797008537974795987069225936337484663849053509855058940656914082426005152249483955830022972269060936314960487565280504158100954523122717003710981584452318622375398988773142164053341158552986982890689537120612748296224517667251218796491731717895851660795581343916221876145867201805298083349847206869624837492255764073242604454951795880165622162392857971660930239574154656401053272439693761676268149225393466579205072866595464536284953196446780007838657487439095978796905396851128024556400135586576402366747849628998415567826440974917626315135026317701114107254569267431750798989939050781461560327857676528516725106066334229829170807446012473053923697455160654033132639780286223176857641925133646727071987966532807371589130764873250627504463629909777778711110690898999948723385258289360064396919246778496993351077620120807823870373263985909947564898067906768910209308969107867541295177096193516268499106685043980766462911413100465645001146471837376255343452043154921686062564105676393120504521223825625657276855609140244212774765393400248646101690701470324361983709075311414914979467583820262497637738496446809212976730164563515312689273785824846909133890342715279805907838052803428690070931089741767906888851710561334994391482246466457161057445528530091903100965483273213392150815811960256274943761292104972458074082728473458128838253096725632562037185712097828494584257546816808759850773562993404330403362716038005230540673225521683086707096684776744948416265339233095837909116449338118061570795334404503898915999680240094146198088782306901486182613399092229154302831655872124803849353586549586514663459861443961467344667952151830696710630363283257980496338128855776721090355512771185175071493022004089781226283295433817358069422581645065236348489962128465013623081016806071441324044358303769251997427422878067073420978522103605780954228466275259198114707970990030023648072835675183730299093554286477562539623814795203308228934684422202872501056282401851957399304711473038327434570959524827346262099268387344006140190692226953380525678295711089188903019643096546718397562795689533019542416645629740484750436746032729666844877047515976256152099839161612432535862929682196848292796661000713301346589023920009018550177135093964812914051881287921155803120052778638135284607022076385678692012509770237139724975695695235997788331322594221842175980906838060619954625018709345673397759064598646444165693678429684290367184003139494799336786219988037562679113928982551514040723693001568128939924997924574914585596835883613785742294562732042857009088659305292946089043642575360943012841423144576564580195030236739550931329896019549252098336172969340991118769740353954707174654136037550331819257074261263611454953010097256950529078239944100657934843458941252749637568966377527485192904172331728597048162299699384951747199037259910419634364160266020954172929373098190289279308502542628447007164139987369790024663072810082412056339819731596983685732331368684859017951016072995462877869309053705744796970915426796169376606682774233818222755681787773006699965340964549385212385784545201534915071984367331471872478582857832205290062545002436652806625197760689430553631137277141512385406126226277388858755901815173286343382871137895223388380388315449663700587759588100898205538042768676741579569274128523314341569515672239534853388112166857263202852722406550825959130602828520015988742818425859224557520191203970352523655331780523699730925643172481719931568518398853344520756240109954860966492505822862427116273553071211930227546188558785902842146189396573055901243832074740618214019300035997062678928459098531726884620878597988515541661321554346047951232066450404405200656542917277337497029058395169215414265909290971438204611027061859232423401661432251124990584893872478899951357483192316924578395045052138399681702141170272250904386277787910483361016534987637583754087083304124874783259314900993349295412521747233459601750149676518883522595904912720779677669920347107259488088315832886590858536786545407797488681532781901423152675455567260886373749441062940764945450908642598538929092597395531545689527160545175872291321868150402832137583886868142116721493265438600112914485858631591441513893056652240907514841608806630217116400862986643123543291183481693859864004963942996732376378871872315124724510035228540151233625010112090011662889558748549332699559370387300709295221368111164019362432096397548138004000653563049167549160052954433249641888877846375953458166786164205602321366290332604478759141109182105153612219887585903533922523102543526086784301530058588876460798638854966029099206875273773654645257912222970132322777189535545899259470435651177780099527110978170083689904726424075557910101448070586602131202566510531404224297735045006652947131169690054806324956375206040506396416161231655661476117937457342368298791176412692950416278919288859880788136619532564593936686676022850460045906646031331442794347161067839360427210698282400735405172979673236113628325794321126848196464984988088558519074444550420183329592431512059838229026971141697622372041497412462783538686115059983806019645751209553137953943248911641222433010507359930507879864672418519005175785148373678642756406816419631118800511835989444437840386693477910389170236370921196930467033546291589796366488276095111134429658680931755128789403839158446388437413838760549013924321382000941583628599165772695699494489554608681647804669253592936663844222295900571923970733960443889703176805124705632850048792894807569100327167024495629593618785873732033038794825758621680589375760512152961933223217526703028712344487392351630346657196600563845107691364045590561875357240651057835941612269416331644714320436542332430337452984460831815375819348329595909238868616455551126648392696669956096489727487001848872306697235764198299005511432536179070463489692943694400170220397992953277263381291128792145993844992241531267461261249160335499100156215177236018668030262904131053489501551238072450259966931950607256026675185046182567869536209886468386643294812300676192448424792949244910001431175564324173626949420364770619904064163717602480444595773201633069123441350253412559809268745916809358617529094561652758374931512212401382656274722990584087262304594474132786092784576456333113352156578512853556913249438278218102141571596265893952154934564683878630512738576234743885455341695401313393148243707568302389625423701694381576712726245171300025047698469893458652787135331736323023060415480351517119484790164453784313730538105431680756490615379807052881282240666637004849783444160738379764195182273475826086156061009560245146031621339381058390906900691522860417583521970389094936265936204867712560943052381262366384183278679225807468428305392211246294029800250309135027277663271838447076576265110745788344206494949538697506469343838735802728768262034492899541382983320104200626533349758227833891403804475544753279507885803949526743763312264414501123646226161043548926466504987708378489641521059908992324859421216086674469841869669434535496879174927647810335173588209487034953486110230023162932230910471177334759928222390072851405433062811022065054694225937328268355175677283770176323516770710860498608131996123008863146030977796732853434904625809340929425240049981043517609725142053843838964097161606256391737784906642740008133879407915858491321668171266408908835712851684751962105966445257304072002260632710514221487685516610628177473430752354544346857880289336980779049959026160517972476284482290563269170943598716316937241920861456278289863580484316203407793312251365467233685218240745278353069534179975226166639939321896228796339039443311930385523046494995557787722727095232254603429177564068453958671983617228650999183352719690120107980094999618378206888775891132502304692688017008074892713291238633819868123524801267864450100531240691678007906854785449013369658012592218280842637582274576537760312192727779608980007511885158143449942040510746419772462475770298087093453934817993839126440241965663809351451218372400667189429460674480764862161132269964617300794929077059567218759758462070182090376145310712175915724054679221542723986620019075740513347299652154864454681868610189717220948035431750999325469399518214906906799992635109183022172319518081503061802514722470728603652760997514080697673178002084830231400548061623346370515217811663090788369957029534421122109053692960720539167702077234473539585357632028163297810551999809737458960092136937413917872719507243680983009301294360257083876935721633211372515590951794999730674638439765589712905337933119702048255090549844126158127553238289653276790435451118833902602867342235527162126516581321267345390130949343338036686604641243129576601196764004252196421752324346467777312876190404382335285753410157214271504609865399592560020640814462754525261736961558102875175199294675000788059987480332710001748847249022939984231936721122852275969234867100509015420642595833273510416576869362621575255800505700969962267647271066273720281730696339177147480970417063314463452613045801435507572180683922235314981921368163118646452972656998880744915032758283059172762558227953298494092691428251595751269333029278481778089705978471208786696359711514585503461157061160356614794630812419813638592856595213897604384948801700815196097185311599367728489508816166098212254024426393970541735439285325430762507241261298841941209237077997550866529770979255884995920944872111440146160799336001542814101512397943730707179992808329163912231128922290854044707431034576558270589976835448661103892267313981979892531620028542978646353793454239177918586814595686467671045816993935603398471433051272775848248555753844333229156661272326141353641044656049121827604881683482212849775217281279651912096342086534549951511272854340514443264401018273549096801962620844817133781574362985166166703826170292567067992657160478663547857639725071744945183389538177609315017854995549899782684376958425853567116322352471232666726293018211004451047316247286746833551088934955763239655987372744857081226271944779450832142254578893235897137001475903025763590256665856524412106164595725327114854498852247987409622896649375992033656220681054351938935641375712432345233247456478865546958618712707315330447057923716260644228201111220869955389498568172552573101831373370443238643604261817117890117278583747649465837784857051220776568683302299731465669110266742942834008916127799034230460976823881942949737848261039504482374384833922265400840713307151078722926640533913055749518065990200087467750049672185410965134472526554866619788496218391592834233450103639051912678012751935222912243129410317203896681103275632988061473424734000851535236960822924815530826470717480440429112935867255538667699989327461901553528576731479726246223584187230267177277936762609357934009135830694237626976459494423194201693648417799689444852710946205262973651290289194243812661728475846432431040340145299347208411819903326824194506814818656602335018181469938912874418948587781817796171264348306546584869982894388046417154413089746584828634983912989776067875569828946317435435170511855292826705205094543570123628514784091734724225353719603252708615875876185119589662560226706235758005750983064143380584599371411955327993578132912270418660282885408250654727750566980878609630999949760010533420871002996652420761974921210003734720718337605405890266949156722718930057909413461582045380216381901935853420594727246368717407282577554699454580785482675253159167690129217684130138931356113691997046327784564055395739796485271123378112564599842277302648533943020858964664758096386187896990347497387602577986863471967920061295345691720095735537304208218028097678877938296463567460819771475101688003594002027587492770111354836719510313679845612172785082337761097167358064800844836078648580570959818491537916923056976605613904879061938722329200550161138043838417053142242268323869763585488405742360231963510400873019082809772203454827771866759178387236644848830214761278285794706388832816451132183597437549148548575797828473996584760647825092935610194154759198075319130631995142457155367785512893148000372308115963361962394565186737459859414653571842018194842987531611828699132318243157558586389248477683049413783104389722812986923971554259479841831001999993300107915419001485457205665401216903737292850214766068105372755893989720331049926354658752790229541134790931241942915599213425345675737245752377951084655719021018945770039202672631153819120962417073269581202940006303205741428207720851476693118571679784006299501665391539213890604016391836021052297296567784669412324623879649334770830353453541552713870032981939621340313174366058975904772471177771749999126347811253397893637131150114543362823899078649214862776138316500750996037105380240576133812077093846946572864163299755045431019839398064094815780007692462968759649391586817752243849393617970287766660422837196346676776085645140175592039011437620004070942375597186251065999589920409006127035826163667881383421145606460816121130192685218950799454584595629592286549710394403242963400609819512969141434365504558208888713110138767789551918834581531125670178148544390767866084854936730058460966770335781129056373184019423823521912422696838158935248900848554317287334812059337910251649206325474412971118545541056358665249251667038537294049541395176982590002227452009535810106641167944481004944640271634751573853968800136467406859183081632962537398730395865080189090250160911155384739185563644418029408432662847163747786942541538758411089930052294341252539168271521289130532604910656273490783358836857813485280952998404689830375024290907488647427119444973762430321381209536381526188629759522589801544405939373088682837114019778682868280138820505730041340626792697716400428219814776280306804875445967238925322969981542687657698015617226381474602216682861010124675360336001707057690611121455328310882958922799938522138532009248274062431155231969388217355208958482323978496675815549302480958966852310453926390947640652356222031077923130159566090277024571508815641485788972205328991921516241413457096801049477174412223469450265609422538843721390406937761612133003209246355312038109059939402643838582905145900237856499631429571497420820099247476315881693037629217153897102041492401591960642504414731148239421653865839230593062519951523281515138512795769948167404245900419080426348711964385960726730072142865249812926836283937436709109681483200212792253114536174528993085668971646163237433529414029026362396051048942155213141954140756246166538219283072569299548844565301319882101051178841308506628739130522538936657376623701058672740732037779989367719844054734056862522334498086357993677949365955719285951350255342567868188672551028364694896911025031484904798853790638995770400133933906541011844200629446029887212124500603082910263979064912648948396994109298938746052475018507702029171334690304177394101080181955406821510889880501144139820575525281912692234847750031312780415269999315144501071218202617408472869490329325358763115974045418003666561798250805516369749942531580012665713974603786703622914989675111321591384478304442744311451099552551250222271635622847738171014997700003102556614286663990349453355074011188708575030533026480636589292500922242719566625733037849035352368818011099921824759618529384166995570957353510408640428105704207306252221158343135458023189979914868943987567170321276318802507533727978925996861399696210911582491540112942922228116839138840630396780937253377631116720269940615490401895941063116633113723159599780093476095249429393180785051330478326580867514583904162132195584464018154271327078110259127861463487337453973175853504789421584459155781687344952378186196169684796946831003163628851605426953252055228358978546721935227969775930298769335291751465499363083231668227729434393815208928241537792279581657065686638252629511469347569160135307853385462425282636256891706101996184693578082101152729203525585796034607120305953746587686956382524821708813098417220706140246176438516830265653745010254719548296051435702865192084652684591058211810610526007997181659423325217080404490462500188528191414366947423692471007059405746250818392111127827845970181585146530165805917639721580632472920346405482186414314673619743994436786740113435755809917395541539574544011616370529644235704979267474438444175311949763062652157991254821576201961262874114647062753044839582053779250336504161084124708926442825735333551144341947506800766815157946210704027412566658211796223077162035736850623669310209519134312074610397985227208669593586207449579037572377727057314319309120732835986861575476886098517675092949179970863044237678262082418395427968171062161067085527967622103342697667166122412264675969114506483452940226629840709129089229941268028093144460111114089941118756929189012063792996085038146609134690795052320704099521244543085685779493917761939950358762572360391268864567818936269395557095699640279069452916007835548334851542092594858863197311331494172894698193993741477022835969296249295630348711204730065023795510555047433604442058830890347539209974456694271200752114654619060421859141505025785306558576207833172201118338802050742911859598364332664212970116656915782845570571547200969562800496550858425989117250674560867758128917275597887139241483235206546643653163655499262081073401424551443645429504898321017112932920414631656891827423460083021239710440174367172137958446735045536046795412539403067198166017358915502103433756688437652865465664447936802820494278736983715706218905372773311956147262852127995037295500842075793108133975919605759112004226881458956932608567336060973573874844539721919509578275975913412518619742970218369347147890100325575231213621122491067952278829116668038029972607701977185138614376708505651998485663356723784867621971743548281155550592361091452929269128191089332143490801267027958352921220266442698374214970443324393786947856705724866246495698288302483547987105824388718570215878970979117493775830531615640083985873259648793015587814199004487410047617144166530380914504827320154005412204137786989686548380137186198993886369295361049344663601149397619872756789804429280043091905681283234596409066435707679868779318704906184482122772003657850636101135279353686660366917738563094178653660925658375845593141532750341281444357770832042964944251638847635481823708592662000530543386723813910295742600399456204944819612863610464605513659572076639740107659583215975021247094304580500920595247796073174932923966623519223310282700208739416161378790737619157660371368581212806435502579514887836959667848895236255033112400429593741345766210488702926190340621694312509576127247655355918354010644445326484633507847699447386389072095370705962353833059740698579485333911283901383968588423732735537465343165253032182044776049927368374079477643402544294022049907236632716170709351412153639868578701993612291923339500571893775155087077298098367936359991882966601827189158956969649901073549998108616486079202681517734360559094318723236143931094176559205262718622428947863827074120484321862852967600370453767891004522415302785738817998277806969677249862866481519523445142506893607695773091810786871869412420509263608350185709956952089609763881338669287422351197768649377119342144425818148568116868186393119661589223886748237089972421548707628914156320670839535437044565787493939788790413482784319124882596843154737223408774533793164008438792219719709757623360197852884253958274198032744909554522359127131116011815781778675609527908031446553542719399190874958331172273917500616795096884343739852113920160467193023475987435811723329031847568710751013981935624611546869758783459570889479462484714033816560764402573268599587409792015176314742992024662275464099829579594346304458921155066739011135876817534378703569701706147036035909933174451923623747769666520939136114045512231097972358998250534723092270361915715150216644190376807889196067677806867661581556465449747840693769234430544931216015083070066692996422615421279229065589688766364750383071075443894380952926396954095543964513741187107873468980713982491079934314203856758656998189880212640557892467592886807332589865816673003294331826012532491833588212768347096386335488311303285374594806319504206967050351293244200158862241894067323675953665429288066719592241694596573210114778321376399982883564116707610085605638910522590772592906603329260951561936884508569317052793503862753712814184163278156732029880457709604629026236741402602081009183399886594701833713362286750723638427129343574315386672179751347464702023142968438087947143210215585945164032363677480991982456229224907112676440694155247966959433560423164848503623603686228366013238582313899700833056493227862716658105904080841612672464807947067954667624061541829433216370862712750414140420943659355653748961538893409243020714086740295233677263911059750551090529917105875328848084153974071234666057051195648658157766521747679692085462593706010003768834317436254496839328075052402797705282667725669680882921720150520533518609730384657597938059600933724362766928389770776726847521747251443099698130340713560710803395047945452302252998214541988070044644252228018754254156690657070986017317394648986549737669556424751641360058867547399754618365471353334345757805515944740761232760267645351498709570122500177951441523828983416763047800987714513192976176235201486963480122571939194887192630943909443512751975586454429729438081242763290116791135581354367528619645239216635896608458599837053343974759036114671408741455764942102373059766175575112348312854561865315242506127650524048378839183516959967111672265610333240967675795227975879218404631923279925405225559506391683690794590513856252038696963310502157215792313037966635139226008953867268133537128200616104758215691109589964928173878626145189377700176940918397382686378427858390062944087666728833391408271655336288758664124908896783716226790297480284990452790857641197006280422562576634649693740395843910382222162482053158792800316805623374983080463583102199360871280672567486485661126063852464728888189827321580529312236676268750336106148805005960101724973007614325938470076976192843300520697951580976082249559471662726902877019678013003190508562812422977917540210040248663581692445674493139683214215746588560206497934406623837996397703670323460568991500398175771548050760538039984396725890173899614720886845203671685774157147566640616830873061765972922100499833552113085902046883396453440753842242954103694054766780072201642531578901789772204354977342334406854718498890817774070070830482911096801094397512644931297230855001308311829978838169973423149306446085283069288297034321506882289504047118125111523491839572719376245411346309222545620716012596477810648847059038529124642445569490461528107029173755774979491792775546630705231643306044567706427813225508686667290088233654955975065082404202219911357712468037558153367165961440803934166845913267335923284796294166282236644105813430240086530201629962415378698700482697592548900985286595980003905249049346601953634970035941277793110078180071293307687941323217211663962915551146024885862234381864732731368977736723642900956057658343199380256853182790588644704692439672695445051023705950796833037618131309932738713320329919130873676017847853856739261282078598388971026831986524671187100072429945899910170261480135055875406474531750131377375052246501669355555460842810857055791682624609472685452750532474118133574394626624303655729195076717414180233444597393491389206306652512848424399232918210920523754176161489285442965864160716673035372280953255850567891712816033100873322444512239014006082674658152193304772774877048315478683775512889638670922344938157145589297291725654763046627270353285365321369783930394475980737822039324897074980976269070705907165286242227924368062317502778596493177762044062218031627226288449595856295357634229603678476679639886594682474859406630800269432734273937038804055326373370297262743235486472973259019868546673582919502283141122262239184447508479868526504472480503949929409153122527975081118627435614314264329724838799428740229197459663466505285155722493587355885986458442160651874385540204940444673172398066317738918385724845298124320376303478457185982035528728461603816157653334061904958120810268209944150018294165570107322718370471292839209486366628601811788724298886929689451044513860355545436260635869618237393620272192127388209576817185528618215837603695243986819368721535539858456712873697528364710945850267714701668940509435004504288182990698434297860700753498841420175526989956900805880974426176696200576381515084731684274427358285302259073210137259553220685124399552644413120254484171772928872311246043414676974740276081355149015166974082758267940777776697897093082548377856432168638694379558053091281416697571210626022101569510084773976910396832061584139109476635584865477220089803593278760584451903487877385272843991644335077059275700915051709119193052978216243509023601087802457645953424038291952454031911189036061897060172259291291365680055130894616120896576352283772274097073087746518782823449209674367639650248092401532304938335677068064672311424069848599958678333906757584085622654529319521122697813412146703615283015868075324899705684730510307133561498944405341238739509308237606870065740614360138191354198447306058899662855710072940483161436595797797971478430349083773452440726667690786947610709260925965166779307746387363372001361603516787644221793486080206134957074653539394397322614831499235352945719373103545159745703405240220438315133573151078205058047716549758078239073139016663844249211360586174930090984737297954124347143603657920451103200156391268975197369407424019072328778336944073458167919410892567559938691769444106922809604518759737199058897928319806767597951215823552137625655268722614226191118731424294691882493769723022588148764377229419667807312801199108737848955373291481477720624003868898442080034323240309377582615149739631586747869883755726986746613544798436902451979212377353460036763122887586207574146179755455271146195459777511715315388804641215247780694897426673026482987968113177650330527147673003248973993483321583964642588818065979261428501513667695346527256078856653037586553424259895368951191907682583826809920517102792399805896831713048923863126145418522078626420052384286502233861166738866135396193451663253941354207003177495361713657112869313855411723866376221530382784729882762987069673109913920912132460200243908847312071675700296456214025100370408967386259757497079931223114917382999447325937929094089091721032985708704317319876212643930653870573059262532312871449742179509861477644395897330609298466797039384075066409778203680732898109268681684806269063627430276958887032280904626771162988255978746972632998202212407415119128363071962776327791663224525731885268217973664457602712655682553294025095108714980349778053798116021407201060626951354312275083840406419127125622399232157262237395193013739201116808918129150249942550324146276716646856842588664020172929598652813252379711209712303994070595126231165700914283536646937081156258884961100278433558278453046179331407291562267094490257845839980304207469734635995538016521466550829982584343483818065046576520975210714279582742967573545601246883953649987150467037089148450941952348981635250657872155906550634070117376690638527775487401689471681784712560347326601251736941623785808470433085001006909722876420908289418714272775832565455009012737748016710820547829906008091656624300523011837981053538840742921067448384902512192864531405755485185548275999785618804187723954085337398138601283221470614401800119531947286531825719267850194926806561144880308414393152766739515962585165815571176867609140239939018492144522682975931268719054787713672623890611873668750620885206606561113061592401764421575081556314893396410612494172656994378310060749310867136592634560754735252160608267094487111471555476321419708759612611006227090118977190569880509102993911891169465809558986296520141490898830173358979374937044412698363163000962862854238525302498334023650696188164961470609144415852337643321522848391505787734094856611335216449146086349736634938224530449307621135376544498272296226103902582814482922568786594494834085180485062063484197811368324954860152330576225327527052800172453823271480253741663291263742571337061609593876507556012445997919679064955314825109706634354868910961164979875795641489535445182440500959639861095675269139079736650800902137817583217770738370090336591645527315014021659913665776365090732137320232669444850535539884235741162214298657498048123841528845084633863037153899779813272884326607358665362958865741230246860888611085626235859330885179269797590399871917757847280117550961452123115637480637688246608395467620787857909665872526536188820575729895691749200352977427088200063355730318590937110408854185684457053377989615112104911553026629268654300047730171195436624138025966515684263392532038854169897473833920907133803823735986055310527492441404647563002550360358242031962107137100923154979290292936992176218522222024720978659842559486410657467091220348870317731015036844476455298076139340443646596875614415168216982747835114319579459454182802550288378087210752867230639268370244847612520069139271572617977622236799144869435634134249530740305736983846478368277209681106783953497756796874246079865152340309090367846102762504566295825501176613173157727602493473458740763576775519715679302576557884263682860133323734054925973531418470283104069348943977668986896902731406964420678058995782340698167606728188532520431291537142479468219798114464213676022807875222928312618952573950572551825990170984935359424211562534144565713299012081724351975527304509773449114680343299477175360107733041351364719649957646805818925694879127080784972270865413148459179937605167704698968283038502832761854702219190885193257644548630728418267111814936923163002583705636641785411383493870356975049919342269968236494090380280482316322244723361280500529662150666197547856461026670731850474732614703162246670182045367702168032932417649018305650331223390859071809121466926871149318345762388810573587759988080172450896443034003053613966262175039884634791813916739582643364448881230689890096578103074203348994661063959707150776015145110219120835646920189826176911549017214664849494292601033733079119159462963491808737292987051846823766818306869515112219981395760426886510242763083469454903145553642633639104216689819487817859095360780125099367819403609235030585734828638127218763879211002310227599299476832072190175643611181079958901776391121611442981274284630788246647657202619330088593600061176724187936621537228392329038545396642599202053775190652934086406156682237872904197135666669705122849904978017848559222752383882229325392756690792672815446365744969854438878874852161595225543953302443932202421936132507963403647704563356012254487957181342466541291631962804284589255203646532646531768678045692862162212231645477554847727229368981243374752576292531412050853859497044246621226447286390202391804387759975609488926857819969822443287315999367128744564669910060269960843188976463754986435691849564993465150314174467358823128682728589475533530333056647363730235971067170807093086157077992139191843792510797125395364965408035857665751815279212808764386646041325660604975311304089574206353973919924498374360328213723885900109459596261963406996038240885814897992244193215955633146100422256401804972793106463183856740699131187391287491418274638704410328688442385735244267174138486664966384222598304950732009999745277185677180546610297167082893948159515028837259635691708888121625071690673246039652493304780869154247926168949306568289455982887991166976462991626946604206169925807234536218548936846968883075382439138721464866151861524877057562404191937704002991795855107495919500915067499096166851148390833740498701605106202125580900418592722998793371247660854582961673450915357542975599649027301191939042727508117410600282458484353292589283275342088882293127994794253524212354312212957409924345396188224234661348468877154077335224960638187098516568135475959321584953354602847450351928415987738178318666678829614835200559654238901355482395751112570934015106059702382914605245522390185178560996093231924564340244875310021600024179645003536986656305498960193178049181153574863105076408291038131116279015542855893523010697553488100537475766844914702714870622753115136756492322580216027825471629253210249778422986526401493323711156135499341644107302565152303102734071739066428098555947033079954270790422942255497584912533131411726149222996308244763186701479407630570190234266081760839538683617607569408724569434912042582091303085757606910080093289895361660629583076818307931609087062780070045562744075011170159843663610948021133133887089297018031954302441826296270613982114378885910161216728865728703776234512774996209372752369495762111875452538097585306099542225073588118345474417579354603441868597314052257506069689436391253360497114717706073904994575297654580518670653684631459423767122986449921574863626807889539498505502869657115112800236219028162676033480025827955894444106522734297291071705601777751571696119627835357537951566058095177299849411586989384235834008096087624238576240813782042589052361073785496460816022692123778518188857804694382738753334760189942622915098784516098530420391484543492514486860430865658312524999925181485107932369012264877903163226340374418466860358176333544433306437694204213220438456641755156980973722950847950470761913167921800923549217311558290088141524834604477378674725236139612595217789502754475771221199610276927608011379338703044689455347096435556105772374304084466914316067643287283451463707019297867119207024678596143391028528998451236107836328193156703901813598871710346503988989198256141924411380888274869351632695957069928219031176506218113417379148997830582640209794655708195089319877727225349398332601675084766849863931909869194136316856869119430267282825433583774688205855020980531703825200646253447114536737957146294128236297147507512000566180375323549423318486569889819650257142805669604663004687695740372237413598210203049948413242022355471332823957241882712665682464822231989606167206998596987846428834260713895480297468366530692560390499192028900935835923349230544624362989614384072392244345871707083750815600761124673777527938465619548560789589105075851807301469330075176596573627960354214564329330836126293975872032052296220733678114491879951116093454814020988337124385783343726750054744178650022045323798327402389865468437771612591350733668103714774235774072490078103545053149987519646421154629610042192778609253413453057975224299441360967440412532220854002705956501829927056743227016660369034085319680581517986468617203573643327546883854682354462027158453293573920319039882454160115344522186725360478726784416675153328775821454253266583227177659251308889555059246559973843169161367245549850343014430713349369890140797630224053889419948675560845927672092195644824013286037434772906766451933509224765901345730417516554064847370672933585318326384497956375526663823396125493540838192639594561085023820914406618812800681747117091063859234060491364554280510377401092328404511169125407650898664710761873711221339830518930420964653876096144956167656105229696784171005059799826511846750217270793269724652895137080036123187835568877340946915871667084236233953174164240120566205653760936817086332953718185702466746259804296730782528894124193999435334614110090612365290405883030953643651179019872260831684260030537654652808473669611736985205082813230535605126386854374232943922179419836128216458381380425451273654414521918780851287810012296186257406049516966700443065878884044421636962117415000275015259536942952859832826290049447468397355413137566848867275649553382767752642497600147714833406886893912850105279101446668106168174844082604516010842880088771694707889104617567199846910315710275236595815746102312404286371056170044159989028521259018469258960539824738991558416565466435483803258507032201642542743513517504598672745833578426675360974581183420278345579597785393300573628069111166979526559903766369932232344567755070543175050402349953430904444799146525587865503837948190417235789652342795648002979708148858637112749661356350514166163915503216540034368796329563867396185161231705912656784710713670172281777118229216917235049849411040289916445067867035513459663582627283162293346133330998962851895414988643506434857464261582491444365572174169848590477015817905013911733555572023259699283139220454852448503132468399629426033478635562418057941818189274921912486114462156167751674769722525599142081026249215992651061309246412550847308541318094929341202711811556947300287959493450511027690943577536347929207109476567309345012300551298522922569273830077337991898078824848505533920061552582087011364279204150736580790193384775341855798354704486457360632012879490544686157637446224157863141622802781645869088769301281220373144124352729281753622732442262285479945368481278567691125154629179399544615730171537257051608378474521570689895317662786620708818604217917251216662658593755918586439895366352730030216188488418001938584996338233866022855803207089119154256401874292819388625903737133811228523579625851994882562037189756516525523003856892135231574323085540751957221079555104553354683887862602595796190056726691534616802333645601252167791002140536079818266834072671310302415999691627117041701177984262289326739196692799222215085410796944297699541536878983679175237515892699236467320934458812117357290784016887628336413448302470820119742151757942406372492446803301247868316533867559406907150547846487739541013701104753599022900044255572953391363040194811842287332472924880820284854481652203921595921464172758931135503525426297595213735318912327739428240833614097426891634686516809652431398607290384647931638348070602580934040987673697538575662340248470392260284473750888176255668571806903662701454628993098285457586270488561303904079765630877070695361447840372633023980550374901387046673346647710038148004096688581617722925768884519770925549972211342372389309191968102965008995051250805014533379072759113068689681309995395080191698881098613196882913360210969667309253218914785076870584105917278756172450947611555580803657984955899269654577658391780861799491636864052644614007758488095165626890315459267987999205041230229072773027325780268883456013716798518584413356209320523114457116813637544315624647706000012622265159785429823416368446881051712078461912385550620466794912862034608408674881233857081113220555903513810570672090790033953214386613044723819563659113709978419546849100430212689213608366400442480445372664984572564182465111003076055465898919561327470094011968584757867464703831668384932754067963436325674392795810128985947076166640126032931444790856487479453820941672101888912182025967199737470782686749043243023901396455340439619975904568929104638875810225136297702493545101420877900664893953355212642255993044887948851632785450476469361702936694405819165797495154763359057153456648628916639264989896218923705457570466984785348253533623311285309265271072256118179958182684483580803993374788165656150437302972249918407026082440609563295886800248746930774147575946358701740198102873982334689438785409807481265803755996656420180204557166867595849512857573811631411163545664681486204868279452907725502526693269381219903120248262307915702250989773497471745574470939525343688742078250643517198523990715492010662152751858315821503873905108262871352397372217491866432298909755974299778861851734710461282921505718732398469926592251486534873357124863080407569472125756843990704528031491181086678211939208631030376042504839988012349978825074697816467786060861264625894446409204761760716375710738377167983149112140252335154020523753859928944564524008483707947569906150694566443673176794183753005727433101536657748660295525236772335613669772126087240223492564071593126039658117341513051613912844922987463019826435244350760482695532665698675593286639479817979724649672898156165556800922285295976323411863337335622054656850865199093835175499350957062891958021664980147410325528713899506406114960817464182783554723719386164996327036899592398962427687763640677179497117505852279931080255389005435359246022305479158359151246211212938165902093575876360175596035445885237654348446836397773611313780759248811910770997845307002000357525501921167602501616838294693026564718609811132798721769856253607511636446856926536582138990104205605674071859457555181685050566892364314194475433774425346803609020667745141160799109522425299671147147791433457432665269204636579740208547784462567940735171478176232179474997341701115601162950676708781684543643890058749814336115432992595424799647165143047963842806920994829583111595442276964381669189266135622331143129916916496094418507960003627448325563929648910749156375320978372873600136552671906622308954946265438438393996339026887449070623294033189843380510558079278204540792571365941315693496246940979826047644784529505483212057945679566512350671397272585458630578848480286509082156650499588249560457117270238897698055592368593398181837053289912293961370077748743864063263719227807420910672142047129167101613574449263965249484163278903750542488566532023698125788526132332418560535316774024185799022477726936502409141600472368092987066938776616941400261336848851372721730452400016296962694483125451189689425355319206151981708808365265372390287377737359057187532146300532234117914016128445364103653423541822685582578494398990055995075112568934459171026120057440985591051689153523661631446925553197609439985821429461460799476330595055846464756049190836415542313372179403617718394770987502149552725955233750411605212784497839606460277928992109018485099994371246337364856948939634587943189819930145457442973187305676026716610228825396012161282877351062552621559476042182675654220726618408244813961911365798603101988763593645312696826193007739268189710099607396731108021869432994248491103368826397916047136890789396427071607611235300830784993109011325685331177759919675972188700602353915387278600652724793971564037656196593076457020073565456133158310320702092969421165240505781415125028062615677116013889595766330344196833248879078884066644118675509011566444037246189904057787690135383447210512394663010542989070085975078037711785852205294270395271550891062914608825555197633314098026732296590228916414303263585610689438264357480338829440804936417950089402445309281714447458640202369637410174655153606444808986248985115446168978155686018366721778087618283795962434590121397960389802026053931903044561847582928939520493568108363717239384243756570587000858834886610022428749391307568287385169643176275489773931990235277355180950144099169860196789862101220602907597220664954976107801657138395646639480272583145034834113189713497258346115730086594620277507178648500926881349292197331759044328337418610616391765334664472921693797981703490314374112479191207085861241256437944705436659509013975379766082051109033909936492560060219323181575796968608516229056249992086836548671221982152326945681082091540191471058836176611612153180475084194338889338036387213697748028234069722901422760275389142686962506862967874447205945205665459581662373858207722809722327402123947203361584638734173240346176492382206357965738047610909569033164705107687333377248455162420448351238865624988265810507923489701047284000498542042902901546502888535070326593844718571710004215616082647466705591148622057038334796138609812566721091703363359723910531834216459236412403320426807201757297931445427773498139481944523892626772377694478993572009648846107849185614424588907606863871137759489189427968037061603734173029550391484280335981534870146289604583854907067038763165265003663025738343623116827700250896564759230794636130627793529196267079225069409228857567990288326651675570685620582164343888946321498814986793325063286515971724896559145217408326848973991676334600945468534903217277334586832832377558773106823634269292685489805532164437031335429422523253792685521820892672616182291238804044707298451896141615104642117315151617785945044148514840704143799132954271022444134409624649172950265744398904922013479997335310680722002583742505577695725026531024629318568912907815361461269836128370173643569560095023520258607381330177933815839545206334061059449565556022289159754594721799525628543979549439581984009684191045750523511631097511762587236221641558227803114087434690340621678617574045628321339883342257379061943570028632311775495173354284285855574581424741019181466739052125239373169876947509881639848023600356605392609738642133589833821288430018195282668795977516176441790815356125736965316913002820631896982457780859376680418379218642594659344226339720871113795193158949926188098013727253641912520691253729859877071403828357857384673770642758749421127052161798030142853441601848816714720864661822945447326246379292373532421105306097955481760831824118762202579227358920582430923446647669889322443905408134612842564076268616625197309241092051506182035654111487603525229688622726685849577577764149971524435983294193692195080506619866019194189509779676909691750645208818984177411695367352204478342894831387354304219877380492892625872853403485108098340090534388387853939010613281167225735209339434415638680286408733587014729860539277962730191542571175244512287706022802286785358784892616624024461682974108153335422078999901307377880761296579148366532401711250669338973418450082520151928886166248636797652274825058885672782598568127999520440113996687529199278972116004934678027852204614113823537300981797868672729663709220990365438937476275762329189639057589786874404099438769658171829774399545566779539764062388276902794792165764694616966246829371942169258383483832841609037253330363021682117440434495599700662734324096114021831712618514552892255418530753166175811514181739645921816209157035922559966624532546827481336440230582089134917955633162093673831338809722791464423128188076281163086551453522517722655025308772066394498849877305287180267673207450747011150391446861003578073864008491656489223543121941427801694733812447810856828501644206429211476596454310631488608839157071396547081629129694006305747793017867194821134918637647687850395735422486482587862517078290342416769467925924076796594418342825815171989650752787803910818021021033239045839274429659703142075838318284004632939047790796724988250639277756832505993355280808170843439044503276314418000402127708757528887455203583186608360677925657130829566295099284666901107541304343354200652813440296344477199150445151923519754591367151550948227261264334787690702364805802337374076623493282779763740523883699779555835501940711696217625374599217113659583163490678410450346865942868091300084252149231360801149173866173998046515773252267325547891353642674149960610424987366022488042568084122437340512385096777277588590834428990069736405200779308321902041557366605977710959767325474286431753037409986209592768983185735080921480087676196153242114946107108008364649717358727979132925883773685000575041826592557493240709669343399056443449031439534902308639208477330686761956176208132738789162566414254612307075085407045578061653984292619026390148979057476554157138856068484763883411874566580064005881092030487276935642498081198600524613742568352615446371681755183939653128498074873678151957171164281063475899312221697791572183210263637864763705094685378381789922032613513402684931755406434204169326651282313272730070116457471745594373197276276389326961475530201844399195830098482779158308214160821166889051879868433534698974844643431545841375947148175451783823474221208872532661875955218838407964210013346686477581963048216096677571289735723008160762953537155130444758310439049638117008093785698957963957458184152085172009718862695948340092662789947704786041026141199355932655313392534366713407360499161155932538000190684967742198146926738659666130488271820443270902679883640148861398589036180626244310576765209953840732261033100041714892049651371544640926449882223187891568417710376877114614712100370328575529554275438955133141677747437263517725058195093548548916425071756180177984986880144441743547729477805377897791028163869802930041733785504391583778237407573705622561323939142799035625413279736948571756822038213687468852768372603457978245847290549109862697203051949861820359226400164787343111544836162512847954255931246479669758699430552058893288973263570787868108812891987143627399782482113562259287970223371022609183883382006670648326005885779354068938623520008991117775597924641751036398505459836293125528821327097568287268470415300333438760826586531871774588423097460752220918977701015309576978580854330124294872262611195672667893142975442674478390490686517623491008381504458177539117087826402635966354337006122303067569391148505675252186451987043496623068245164359647627416365384530636841119446905195696118369862261842750869544659168410995637934147161640232214978756762103811735811231500996923351737494330703085213168965541849535514052565147553120872941524778981785543518898630791748931250840797470083218057407401809995998243793860779169429609248186274762168375786848210488096527553396195522441477266352398450622726610265609985078847053527224097042810723469452301682133240553642520580428541600900608868588922026583751567954858212230729306054751801370853552100083855771659528126662245115436127294189954027526603982588189738101458155480907205297137140941307656013654444814875461622297057557875549152569162168129064221086287257087769998442756700117391508966250027816981776958213785172127518026344683219627100568144861999064205678762967446812339709284038477146285501676233925578601052069886988551398392742494138315672302726909819609746224806931175981829672215253277107637907968679558128128447193476893801034586820213796771237512358991454525144080582718920446845865562150476464617060694502860214837213803539651795696684833356779374329560370440211580180516861289791037878686072915531133583734242722447218486038598189976446877057477298769759165221824196810469355020642342810452810820271093709195786227341817389679542411631597103674454502912038653424063334708141137406808369098793504209119010278873445232830856995261829926663493520880363972274460643502503743222085970524921140678197739771653202866532348512114141012281902095928756153087887092915850802192041952310001822148100343818597118839280523658891528879602340981654215946615176972388353560629066449230790425520683419005106530091365952464696699280932271616607666895430230620857584775094564700512654756699491310855248103205080596643735896683018313237619153625430933779717065737816721057307238705751832864768806299769513652401105350967112099132152313424426440670163002753787510416881636745813260960325998794962216458465201683751688779596048632726684551117086972877177636443507386525290070225621285101564945881634145025277689040852400302834279955135787596257159452213944317821540189055868384179090735379103354013573274768803155503183423676830005576317808878590030570991576931554825660593950480394561619176066860319377651191792195133767358391511618890861267884101934040788607677578694034907593809673553639482827073846365721664890085206108204657312252441812715065829576604936003787557046770704556058633400547049844222527983199340529338131587521357571740234383936964512544805685615627509348334855002404310456324203721325555299804832575790234850254076519255226691874524072329685950266906598933534593786053184126599503768237883767332681431639868794096416871930686365337940727956315216088589692131054954116648966870821445208515058919389191100634728459943545331196087413313290873737822034466214105980465901128501833275021616502205214275637121211033315400226478180251021633555021631465104629864197044575035080693958431911274991756418254503141109939715135374292776867737070222075594784029196044469379717983360743059537425981006344406454540579452008118622757023653187789978250268264991493930525921181289239852134663587984241787029184935776806505745272623089661047188219974660808072207169941437593134879034995016520802513965967220552899719108730344643653660069375553711803374348216601751525892123903252455513369195594770720138626128545556783200185256470971719731573222891687511690533616398241506555900869407995281850513915808335725479444674461288883226986288694341524977168316290402550322812521377935390697414617132619518483849910382728774316177961883918643425406087182427627743981153034296707378423592344308573403638532737100386462158700258949530644111168208334623987847465652482109801059039076018171972555464252481900031538915148516035810582694442451050063383758652818788491769727650807600864908563559987667781558719438517178944589624696132745126617866432253271210063749643505078071880912637984408420331383377705258045784569697356051787964419617366478328465753730835316653069740061958818043574377344777445221303021527292195450031742115364910175892102883771571210040282456374371034026357191948171592552183206713765526118922217080319456452847375458702767711544104201680601619029811972787770572655979915506446423717918118213855104572555062467935359942768621224286456838186455701360402069341233998008116720421099994296565533179851993790923838828991081736207136773237205610281046971329053717692298411926514932194268544639708946050603397288713726320648693954714008741805469358665325337153942295159289673088988693391180773311735414951386454321890642044500635283627607653751603166441698390515377275330973899887846481783652840975572078065406633574158750048606965536262004572810637163196768594922987048808946441401998546538938332793425315885767698128104687944639902590469052158169146664841912848131404082499903817086364648717989690665398844403668763242655370857052730089973062026218640531448293586403290868344694598720938199838038268651129325183428330374236517012578590657851499333796407264515013737975160589851403478659280298038826667611338894965000139429194099411032708161021372143149220763544317554047341866677350934653155115066409977651212060941762708983490563796298773192483575959856160645584553481295050456418563018198280916717440641296190767989900933435299402416202755422145937118484944538527160471010616518021990363438649747543060069523485738701282803793372057941112717698671907606034054627937451122861330432236580569888326202699199232734490654706185279805359041477438971080125833556583009147304985382885367638069232298851275497129991461047633646731326024814572332233088079041790154491993841543355529526855790185391657824230073560613283687697906495498657577908049882530625260039340476802725679037344641346464476045325617042824593514043955079387561181008143234241635784372011181953035448684778980312065709816043856698431620275300359713416268371304212753507413075279774919994561629775248585238387783438363657345733196987124377952461341147919834368951949496641334532362918428927022989727910346624336288158046442178980171259266744526279615555779227126330786761799793082656584795567172270619463262603413939086825339001080906646540845821953659744701374667160847109420732383218708006561182271080475256248666162135249250720077844234086793670788339041338721768036285844199696954799655110313248374608272905699353663939102901156764062678103261000222174588013270577281673136132715278629049019750444891381336374388603340894768396683082399159343573859878816654817483440057599853822080588943871942777393414847235177548731746615473165121960807817754646355981510358324296294128352632601283845973001003928683290618789587076508390623502071947037396252297760731247065034695414472556558156553869308779610457937701676351746169104322913789532473718646515090399779225503636521337194686139374464457882742796225170359183067849662623813834494511773093150491687284245360245940833448540880308274201656947894414503495379112298736502929734949399237494754149972751769879280728366239141565569657943173339315850546918168281359087469103576262433409010604883672286592370204881088988144311754038365292463447245492351766200199095228144793245575685402268493500154032467387955849270512316917842174812166702240521377433688576078843149235290260804302555325359373684022764739784608300840825139584855034537736349880833396884245072091042237439826999580696831922165236443397192984467452618282829018756849401596250359765603979801834862094610750439860640846014775358596736787510131683378042980389924346513715762841866703922353519231534092646384542027314443732965113197385014653978131880889703611567569330185478587326913567303095341751662624210231122264391259672286887376221316910590916097177537989334697151911595135314266402300270385552672831901542307701373412604113872641783738974508827904314320306206600247413962187434010693275319963036530362224942444228742573994303642867979323214449090671769738042998811401108345249148973406800906209622387737199280320616535717512761882158370102468962896290459709365451711018441663656212697495875148355547843821293119567031000238440813772506532743051538987289264692095327989931337216353329405250758516368411174855162016530816187574030547084089464557862774505154312754254179821273827527854182114518106127345445774224874671540842947562948126819009627713729405909650747057058056036848641491958963137581315294410173137790503077347765601229168059568625152529718653827831565286062317412111786581341583937230885420923482027923838812569896944318082187121911137474352046225317933910008618315224227749333772246141143119061213433722623720438990625479472486592952675573228833514080966256570352446742911680145396295842657472212799061199548619965485470582493377171813248670881002972652251814246918995805522578606097895622034163115011770791380427740015096968779601760526920893337701930703256799376435799545845460982714717888359747204825490775323247644819249324526209587758692359058375361847689649083729633289891057498724929381376235818610907563147255285812073728093872816034501898836876957951585895046241506867650809416755227320203536194203014088241341501072002517021749030514506235009352980031947031793890931616170052810990437809978876881941401443013346883995466798292162805959072058117155049200709525580769429491252293494822111339989219488318531160629391209615204837302089607776216018005938688007375007665659686320577462500951601463188375874734069034120672768409875094318114761023905783947179211730784486914214804289406313005455604096143282606627887499087295649195669797270519489122355860230284576225194419709738738441844555788858211847300439196929672631934534343978379660339097973810931484731359641493432331360661732946735995646452598064712320402566938164932245418472322018400665324633982233826865058402078939668654213814853430986046366451796158289300607157831927113232198065542579416583442623661384412876281495498161827171050608673017859205551219806997928332638707185862069000123876934791581728424761035585360846562100685085259532431374260410148417472533193284217293082557164964248867757446983422656489968102756860465393034012275897195345019805428441332346962579991078501388074935445322790082469621198443036694946334572424237754759619111304517333495736616354143413034521567480056533990023730604188784760919354964733407057317277251479569376044524918662300814778932888708087656292760638536270021730445757243930612040175953215001683010328930459998245621072150071213267189017982729349440462076751011355447495919286602030538805545662971191029700247934616733974653064000344090433275412036873912521560300382040406462522716210038847247597460633475534882235711038110460642111575650195219989638791103701128540241521817663579581177686423560756024494605787585369939179048323680860669725962846690691199713764628321649767006531872445168467057435925976571225316053856103013981799341700988854478949088462868623219604169776192536270022549512166993509873867406264478793636533061992794298133985768024561986152016575431302744438664846619656202835006166330368554295225189991056228915205110246489691590902617475959127183273111045245189081433924687615316171430959105488375464596551066002082188443400508382525377561367241522289880601031657524426750699582675469737984734829838966673000373014311762881672116493086064773705331040487536038271421928127815039848152866645047106737117683837887201583832781739951916597689768995397305733928726663398434533224516803971382011311824371445791559103315567347100724309884487051320707444180863310823718250327865608023011464759335290601511010648398970744518582010011756583666180508718347871157618915518803309710081727619098150655254367977685002371153662564539474187429790858289397716582149992063030297330226778532290035001628883959268590026885608481190844702118757832570896443286381357665127171698805008575418252875914227473276357095326745584475904259091043633237273746381055393891681135904227163573542609423375568880193381466560312853772423402955330932120610603954722304149727452816343953182527991265474161888909190213224254644679124662798894832143973308308924054690878732576263708989276041352911068753959078959930228446891172339522676902028155196156152694707423011975833805072175674711894187647896401988452969589984506554975087589004561559750967738258997907322792572300757251462221036060240355126596119753324191072751149137175674294560490551912624254303076593370667726691784898465644407955303437364246542251645874808431122911064295125309540360754589044481571836112651141868682575654407952324805504513059280705797613546227162518564131170103303870819309486783637754799792561831631467123471297199193879917760082970770469324296077293342220428223929641759608040495357815030349443976706088610956442133293170504771045266926727901006516909529861097352123106975258601895069260294653541512951624420814821729149464036098619448959963086083755498412586744294530891321984397183010367431147609661071628747741553643258364485346471465488520568858256051039424006111867238026615663334638458337925059106209853608789552466226932272652254499161447745273861722440617711778105736338446750502235710829112923889135507966656552796121283186392257979570768251740305964976452758047270260377672914017981994186766003467940187145224465924023874021014936449575811927315594277007660312911958610215254552554486919576885678214766336236696734145569389276001145955475865313111626877528742887716430827636949464434916711315085702488480178861476423867496262896290898575915651018301449498997222910346997832172094594489614146029612786784035899806525455035515795971047075770647057997151499924431209252115084632026748720642307747274742419568290924205479226635465431628565986358864415083130213040744991263947727876366268276814688040145017593171847082157888178778067229886117353856152818194417203561797429603883451037370623808687543174890044874652663691240411428304210114978239590523183292832469717695923670123919850647471921094710799754085661748755921600995056270783913082750710323748653630295538843947394699850964351171394690173000610362772891275186621561696002218566620308386905992308266000734055702396983695540907392759449344736428495583370021665394532094587774436212800859863442983996635006120505659274780179403845955315816631765321637562366671480935622984436465766562821439498458602115888867321521313019108994431777716603826843343462909522139256436040184777569244463893362589676976196959672588179880058780803917699077355483720795483255885183183371816375678842090954890294206164903078510660711502304112156146189174033777182067259317070659230447875852895435814629902995412175476386952471411390257832972951673940215148074226858065194953277871132773851683141434275932184355671312068296119748871419041134065870427578797496627075836422402078851314534960014617702865297442279839398241870333591351260030350654063679340498128068673368619127758160433327344369725278608848534224487493250981957583198265031664061623180156726302862405998596081105121823805389606515014404856241942420825610248120998830607083161681748598211985912680932960926483076894512982516925281970491808761940607223347496363126864088700737419936831256194210147295236409220618143404058599657286255217033677696456557589239799264112936217354622992984406773228640804998988677389220444065676566940216573621475211060113959653961510271623376488012426554594266927238510716782496032432663691113770080912091911966765038804131893514482255624008039637767449862505259069990008968624187782019607095884345085891133922884593554145650784671712257629825911524676874368807266356347804871188368429709121699702530379371180488059014323104376950558640866293844574491360629565006073505734342138967754932654883573267683011881389987959214059548165785987895076304809449626045343448259706012067511216877499425062838507971741641367942034907694455055751441920846181819227970340793157632499525956184048390852026411551922435115498609479040282012308972284111580198726799905412627752264113216801337029762516646128475347624580926285110288987127460212047023074073810167920392723593862698802642516265675556452433590096940977176092495254369990955266287210196210473342030346882372833545890123800272394503824592779498136688129493427677424895162836958013209810493799363653794371924983329257706420163634496849494109175660989679455370078684744725628323026745204269716846225835931783871611627094520349359958573694403704356785323296470613459491744591002028517631011971786551065488761279070973614823915548178092003534768131850101499906866887287312235658721558999684163015670890400826648710418902372519519727927836059955646639706092556139529077228871628092035235655536355387767012591914872755037992333613284591701720696969834932055479759353670453648011714462182156324851585881954622908599009817527221959226735507823427537276529155503707431443102437445310930684676155883776011961520573615411477718867760445952830582753463244767069297541098649215744621349257179052838433887942506865370812334016991234932388866583704131473749132542353940838314535898930489138456063294174201952056892378999886016889356809351207003150175909154966925272668662285945352334094348118307558156357851610168411635582809505441326711141563466202090906239583330341258301448702713383694414988367663899227330793441543568215686812360602667953009192970542743506120090018109674301991782709782441510796001169770792613621365105421156600677870251069517811105136595312220230979669586879726184723278708018935473935458709446668238144032239046408821691150910853710508755916299265504613778381119608237466027559304800087328720463291312053994363377811601894004454573881261447735436133164126181355746433532993376166430864073566932984798033097036574087092823851577863836515763001711146802853030924030648628531300275316845135316369498411594945578325811544866621896346837201366498976705065538190346608149429843818696559062586194600332525919027112288409853818046715163816098058921159046986619535463617596811439673640780845886557775760591744564221352356380094949237091533806509881616432022952525754072624448316997331081820449156592334308899173529196811431865357574917878306716611066492600988531605309419362317204821778329826193828809677972647063474154134824980380282656000825542043964231210107848919220774591130478550597138256156324539705845951351986041330644466962963594170490385017937514351268274175714472093329682316205610247366428232795170832755010479873398800634821162262754837683957866969970170297432758000705152363208055963942702393769256371939849551637687330368623687583833478989118944030236225866249479622528017958187285909463026056268029110285221392863870660559745420124535662258998642890769694945047317120282456796404586044037467535817157540882201788096124626026960234158285794164055152853867832308105580864642379095966352478209161520386747296105140543720857198969727452466173182073488892437116995829956347767178878384628747007381459864887149748591191403150467361266166024877451698346618517239402717589781133789641600096496852526964439404129630176982425303337538111741996109890481800550086275898293644740498313460839282431794492558323947904311995991369232370888038442385003374253610353979112353371935161808667582778344148380863938860737766669717032307817550107314004480065934134916386752995928421496025127900353912180071825953039963746640600347684537697907347969106411173276292611307042461837179640421689119788514008887781740574894361383855353461213938380533424976791156337938142821922124459751725087255254893900330884787075896066647011565959626243006924784536089046122794331433918273500024138229586956602804997211601305886248673142814201103164597197254063420071469287721439869644899085393267474157361989038539144300913704650358907984007940650332429913013737457925826717623902993196215594281085365005412002488813035133864600562335800595891628030752417984974123174336087416233810166866283766088523846660610187006821469931696020110808484806476477734588509674983241860381302284990665221415003597198329973159582280825202603190447896520208992798080434242215854621877054472496433252420858730091621164378420006827010531437938333774640320093091952020554280248920664226443196888844627066330991841256604740345922379045804776896445696052119397520021437763897187486343825927842657939353824318800375912324782509371126694670067737679790437874104371408503679273464400079527852559591202278136061140874843843227919060257655667223359860271889041544985808612616607912031833182741913880972477574663374055968729358321912552537503968731838390568152875897202305567343056760024854205393504146351018662623411643751670101175692652611649955282701897388440688598578733558267592453806156466800815912644493854562134910534633532461958136674476394405609576217614780108511019410046200495025326332189094698291230806770415407297038607074907079993870360016114226673365047264839728412269326244834440992192716474141711437980452202682965753462322578590459687094819710999361584274457245030723461016960492611078048632835263250408939100172367789143218778805503248475447890258925062350771774103455683542557974595994462903343408341097610605791309441603138525307883626473486530805684240382284377752588871206948290623167303493892488277534123295525604277166890817899235864869641810259651017579596235564586256311050052973317469161266447910548978731545322690151493219399440149678697014011988754880045741773115872303815059762919926761749367307367516165701068259931042140517077797267952578473321275875004968299316104575317426745383093886664313602516938935937793748175377789860075303366699746972405637548903395460273085669178899282536082089433710706243515349128931849900331949298216768875713451892865611293462964655893640860247973850790610059700923610788645964037638199945330795665839158532758528281425663811310951674588315667792053205093311771364535625481161788493375922365914650297025336420049889693256698753806518653611223033577583426417980695233083257585354971709439795979759137570298579096583334183663961924849312799286201042661668489836898979803160287114551143922554812690594060128881236941612622315652153873666664047430026031321247119447352945239299314648956613546390416094984740009673213012357666709851706751047508368251839856963477752083697688946171407245116152628526540190158298109148634759961443845184929100614605761994296106637705657617006732865243562960482298657487992907822369369382366692039489057419017962285016912609311668655384238440845176123778731685504519923499751043623417876578881066907543607591244652457451368917870918724684082157300852013544082332462988625500943127182332972198040318449535522399674498435442469434487549717238812125569548344408214837596841200263262309150370075981023231423167623676990995065813733527025436689188733371169331332303089720319956861036801459620720698265531201429941879115527257575833726228288133870899781379144752695136132376420041374750157066702342991327775923433544578569349517106900113713202873328971838145837552190333425553956323864814744797784476557214985865344319684500832228619395637987622350689022619341883604027982984952766842595377500607034821758642005436266346170014404774781822539042789043936700109084898287893900215868946552144895586611341506973176768277233158363015870599182984985330737515245610826974052901760542222285071811241784119422320988178763244280948526349810747642677671351013875314989326587345911767353696533023332814234294016912480227290524152372485986155466140516819131502273263465468734776280857699700286213795515187474749327399506173347380724803430700547834717084107658863343935683879736068592118561126769962931884431553256613627438631630781120141608334779518099658491158578212558109112904591698047302241105208350035820080860105223499488409651215682425041231201573423294405116473841870542854005342196252725710310438283561304234275025241532902119925766058408901908516848262214480241897518965964088630155044881677089264852524595086405045816546960533741872397331006893374062690695797954540858355456946368206244326823827508606870613614994612229292465428437418517678578899361810977620091359470593984295656606775331947807464193267680030010471796277191648681641263365453016314044481994596508060182859523216256230012944589241624154429439207754039888221286551422898111635573745219899855969215553649187162840721505793675727009471388251366397523810334993700515159055407868871621109265701070061255126420757013053149724595933478356673478338578644037036059719699869697900174106112667918649422614750352004237984235205159305295146379408406639030058336310440640521548582006334301138813996681317956267996917626868755118924386426009516586210516468685886940932574508949979364850826166331006545240804449656566176302118461541899307685980637578177798033798556450844891912730088711121381079008199230311254806460490179415467346163886725215259462756284556686349902071971892586202948548453887424751292930442996616102053790489059700166815835020810589300266017102666508725991419237207936747800081996938607041611628188768475943008445723148406119483164069678354979036212600810885533127388110767203464376787259488205986773205902558883715442854721793571341208820816848357368412661592595586429500748361622887495233738427216604772856244622793016319402821142540966813045973145974866435627953581886720428056572328935538803000760835393363162860951981832413220169453268580045963189957977828804654336009101656095838029938266597240565291053966183598506943294475045080745308502415603166219973075004859481592996376334548907591245600325092488991496182513625609846698342343233614627685845123230174698122570734134765557771323361093462230285309676277157548139316463908206335851221560665612325747547796851378567414785135103451924649438204754249263621200291516716085751459092332993101153994884488978686190544107099010549875585650167964110275292392964744051509551618368668313203446773132976493881196162661887469584245674846709945019780535927000886087578697679110267969446668961742930316647230680150278459932914009138370273452587286498225932474936939046726523814938820430616905135982180516433787575537175560395246815245863344325184212253946687547011665892332202833343650484796545542172369655112424778455401162607407010034328593288171726203901479275735797318954030283297143446781824513405941125927741525535776253089229928876850789607124540893300751732456267420860381593125891490461761747364403503559342177117955635010225456873326162500739929786195497888748352863127970177715420377054769739485370663180789889655554150373735001846394467845425034769367931303865034734864928056459253301268115888680869160966796905331670750729894118545408591367608828289217331448922748668805784761634881168239446012323079147350558856149379269131447533104369240850270566091260929402818943853754619906777255092502004481508689709971640077251205683980514123711680257398483868392340704769388242300363589413819378105702785442317668131282778980981852413338843574854658800057454690101803957610906470313082288792507700365965022043449193946609580786257753950036130139722507744332259296236459814433566282064643438041397250997281948376936904446768592195179473406770147468930981682443060104448377418397294211993679338418385097049763946829317464154821930042466231786875775940211176840529681563841042711231058203818350121212052067891351873432775834786544193040488600706781588705241947554982066928261108369735773321085649344626176075890015561726514991253022181118858302731543329822069716501784769157322256611835291658199077674055484553011184711326818097976607825388748649582181896823887556372539236214804717361625550031495697172621355882684457943905297028722525091810597281519077716705792492180167055039230797720315095450336322389096456540726199874825082244821479776124834040582931031715578567789382042583055166269144088318849099417018523794462890496400754864234016549164566178367288971120905377972496823785610250932447494367177040021314851657708831690773954544938915868924468382735703369105235544427562655865750647246595783763418986606718169591329658377054908991915318106828255274756843691531169460814801441793502866904576209838994059152703990438877765703011960266603858748830097080239169185065947836109303708562328863212727495406017735212429412746105205060368668098367882307674305676398646751750174401281474753970760308232907943547585119116240992069979843134921946001952532718049985071580125184147276817605043677717782062580835516377186266403176304774566199267086505702372110594750226293456187366582867038541279617954171499559268221505219690693764260343416058374364709159095648635058420292818103072716335702940602848231090264026628861709768568643224210897656988197178068873250091569136856631367511686990142141493054523801255716267730098374387483851219491035201516967977667655716760602037599502727025037851034126928308510058070340626423601322443540270598523335969710776937883529619125300377681434462695686796142816104338538287288488088358904620388941749863543686953464144110125978988878322803807592048468213566185217456063880586686808980838061261478240871250125560375212999249733704281428045478879417552741824384306473929997076800595484175492234951459831764730048737046982268815044677362496431082257261303074908251199456353883003535939909755282181419064472131909699833130660953395964902082527302878629584670720174247176018576697875849345436729807720912055143354509667804478001232137743140890244143294033014282071971481316301615835412143626158822263072848536636361251659769571084040860057511035069237939186145377524105482578546184727511010112229324129437337268689388693905512722423978602744360582689119299321511772911564971763299593731324648269432185006609193671610242282370201085507117375308615822131749977315137651075164909902245911436120278179549610818337685372191391598949819759077182423093261725724426330898156826625132837478076877255459338364192023468834476142966989317937695840051155538570165527397271875254435898513605040013770186898223611660982327037643402325521682816335588872136450709633014396440163969235292742879693738191721274726727921614878235848322632455822504554677838791320768313182396403385529522154650278895165049849585813867599603277498595793183178094519319148802184878595932808515667237684623953982535296028355280224761829417236284233494950203893440628575211902382274630078970343915367586949701765811937851932372172945938167142505962631511794657457520058196909390908289033285882869195382746032398898494621305626930673965617772290567864999293745859925352906978717316373553890387818561118261940857261719100267525716034575838254615698836928232441825439539802936802804556068710195189182640104076467585564544162865704978931299469591605593545094461166640567472258332069730200750570519625851220637476353612411422422934491936838924881760542918454697393500406046704990108531434045266189610124711443285545805386957179019908993189264866543961408179524573866077154383024038669897583399385080320449731603372717086913734521885570117333041155872644553213081348029054402655785949134690074337000414836341891510284601550923591146327004287005190532125888757738064337313584375343058377282291630303810166431676359359369643650531390764215369880154561047758890044957622116259393971689255302510453262983742433199717085573843883544783917679183553170146147221866137158571117372183921526765838935510478706100614445069385069023709751028470749445098973822523533998677092560997891930349844259231477675189385418685852800958744638500595691513289433483709205590338333379891456156932546993049482092133534044978632691685968167076657291867438859587744121834002089262184396317807042787101021540277672608833885778440739656603173285146709472138738069348688303659753728331658473016358199462776412919791075827497639473035876081288461767876976676588543505915445087504479579023263645326639922332352972668836691022901519514168963444556806533120490243949827657329319205509381411668068823267272723638867998572454786489357014797449742634553563348439111251424926789955987311385211418776920024702668960505602193876377124755838466497179968303196351385595616312419628630157300281782613469194485136969389181229504198713613921885619844299831940385790617089117717111890535842306442846480637941500366056118530945072098913449811221610605267086316356123113628301743906910858632715281786387581082286206638621742037137824698373978169746631888017311689871228420146134751492878723434477726811855227523700786103247612237954540188082229308858217796097569253469179076949059072204360890069344404456353924556372158467535451626360532672169608949709039024017413920318197519668655242126986962048999792601980270784754430506932909534808236004923790421794289828737112598586255849468943932483476496849778638893878476658238344826345729921560484674170169404202363634786779797224792495885873048757462470971637346079356505110692059454848300600637537551324636840528926351484915456233635401570347554143964897655056734342279847379343047286179012459685098628544632071099967278188759515239680711423853141711508628258072312248375804166647000835718388959951040215945418690228256490434960858529637538466737407397479119431861709556712909828351709192192294507742908187805268506618424377709858787178191945552449542433774269083024866235895446952783364812099685922440891803155172321005767600340527252113700001869244765194041259653081417893195066596453261841457196804416515205406551643309655905694911184260396336876879989847854946706510008502735769572588164282856321660144013392623258954290554156745306317544915113479064122137748338715808755059593598849192523320760001220285047495058593021901931485903963466612534153522886593660793114334907013136540416992464862560019289381659140248697388360956015473671629532903827439116126156464493449322536818679357675432647726107863350293225118780205838007157486737138688192272093205733602783319969879639377416799089740329894110980565846665008817519581270838668592464743562430634262654274689286443517809271185439936039165075671343976223369372915122732364541577710527315700667041280472437854273067112269504394188594779977772321683458323824809366937190164875118138385505093864037754250376659262972147482903070538208524346721013526609948748690880409895509721476543809492176516863146124207171500035512980641006577665881533631872057996673226046977616148515589947896934904624612942566868308101260381400561883340748942395761541866779189484918231803869196068127076440991914650511000681220084901442730722979407177950375358014933046967938637348875978716975802397528351715431628408132250896003323812832624769023534339239264498538562173170351889363607964230851807187159354374696139482546189742284473939007232405385644398641608094199659715032497322942491053307011997194694619402258442417112027701472305892537878562809964970389486612263531918938736196316211801150368610179303475575894351341357307471528052616270345172973695967516408193235517123378241847650903599245487875916201407310535919911078076322382910720784521071209131255698790369338198905669086784847669779437271955618384384896073620583871311910232774099729750744760782944890866914948720381060972012756605914114849105195597295404737155042973296585571743435736302727519430380069648230178674720012834483765742506760705591286265627107005745049170909119521983988602730035449762408222094111218777027668242707560542366907425758290649326778761054830850025102158338637437195513395227013339257185997841220457860216887937950749924654807235488470944515908025012151588124992919307358099400655366250234581432781572414329325380634269359242415339589037634478779347255506618290501353725472389735050438463641316744703266036442390591644677610598193070485563120168343548905741300001661570650895352861375975275622904910717375204681805662808341010586505347172359998031399102456189066773677169708528167276842212338646723566054589082791300737508346251089650513140411996686204557256442762345556820411329413367226992860962069126167707540156110481302426914443188057633023933502890684025948044119372396790909439423914099464619801734667944634465540343058201907854687912941180019864850210499799211893254538495929421490211972202803560402355905008982785041433648917945054264085485391234485646728494060854239720938306140634805061859511468141496081287011163992384224734564220133189646117819723880076196260538534954334196373409351711085151055351268515886311559026693360281070116919672687851795389787677424171402632932887993066520959671820853489316431278133344618412780594764592781843240462714519220534533159170387874398270904886826585115931337556650066555142823596916558746888609180362486510347338821254494119023281090926369862907344329887373310624084110138822266032311081999997735791783606116666014313735417317563952206671044815351952620239757760265971505576686956835556738901282999802242855511103391109659062616602588202520984515071728656181502404858861859169607671739983242464274037543376171649694161819329126799414062151773191415827541310018510009619888686143687561707274701725467457404788348616040918323734937050259696973469532109349633608078552410606435672216645940451588968202560539974401450975951302611284711954129592076790172491555086240343570552339588136414069790039646767124493196302962463072892573000661760300605139801985927648359857065813755889475010587447503435285056347036010937051421704193298581099222739384017708674816517713302456306510515164205749872723108712344753548729454924854143407047402500258327639555263308462637337285096764166632558591306256716124134184833729638286673040320686757844880245169321128225896471093826548063100616467607113186474114394496470871317348087391742342219785270477502258848714689997757244465315783077329087251532158569486920565415441188286321499409361248388921023093043732031598758292774256029061262119361587798528531589606248913480596739204289484823550200458524607097591089867679349590950597238029331474873061708500477123156792949533054941659549173000827263876909697611731920773822187042415095560447711041151280464323219766825591467402261599782926268939634823776573420619860190035390832527515958752117287924080965241938537693211013856966532796418970719196102424660385202285772240490980201250134208561969736382260552538588645607911780579464733436908399244945204527867219967962992343945404405201012487989071786914645927576181227605027312712985702774628112751193943989131771755146850460255200003189658071380777595700857914286407424385948119283932109553772800927836835144646761567068695532424156092444589446229916860179498129664910119286573430033773481001601757861169941638432284357627547789751550286667222557507000329523056925606332067100983279452761794204327022889288922463830628965934992308719941002967507633787908231261290557300202219785244959998711710102237722779328294298031958740838596060746663410411363305213855143463810945351861281962940580594219393750883675516669944117480586712230705272090587936526771730137671328938546853467163278138799210757935888865455934048430032204412729249972144894418150810721160417921364789019181616343301115687241601782199590693479803101593661323685897015143559345377473148365577915132721130012156321019928385880230224115244654107769349988116990918528940441312228382270505626192022635476864115383520046725929441828401791277135653436767081654511063868462270180334525156604961078428621671238708616832718875143728502805757022994597446014512224655384074209234793168385059426779645212741958596225284043227218892902127404249068693076277833337128340288205613599323428388489606519796354399017731583374527268115842200214680057758720576654451934061091228051964185792820711541446987512669319478987101091442954027403831738698609039430234198226670010707308154127588556560091231843962182103381723543715186309717707816333374520019054162085439107521134573020048331027378268420491013395537092591763250811899011514970315371714056987281748971045328156822034122957977719050555666162989199359113048653082319116384036962511771395858587854551695174790047870012206650648657387633290261106226886690074738380627016806217671358396210264091554071776595243346664241084321589479559233224813563360236037654873941174244184397477903409517594429725747761175123732230403362489759044873322287097633317436811981682586380193668422792658693194329277062870711698122956659837460055239786902145001164360149831178055186195865379020895232271149372576711527375606045914535720257322909023129977263155028375333914150162867158051305126387216555174245288788887574478393479583703504090579437878636778498096218114514049192284936901867600678837540703013349246517465456566970041533692471608119319264660809652545410822217358699419017692061991079681641884964102153705208299979078201350143047039615040407540676270454091525708099957503109986908453883995459126114360109217830179525157833896930548286775210448668137804964299631839104220646454028517076492788942135907253060704681357100648397214743185298000925145798848037911411145438272610719119382916908184593092791382115803431397264770324576960767780986066314836452104143666529670703298115737269874112326237981434510518797392430063610670708098730518203793671173878484537279523374805512780117604799307469748237231306491355686142056480166739557408306266677327482119991719021669679983465215867632134847830730047717924119328709127449621269540163773563128506646373574417110765722335890112805328448002478768637994906169367965509190318259826305452977189208356022664011401392862942299119010378104267686393304455356195757859046622408745564706134595887217151415160724023224700515084226639033838823028947925663769200788786381755259489144474351066814975284842652507729872375642374705682098656890490701233311257290867203946303424340313310448111105708137134184846993914058490315501430655376718429401409966888279623891367249627763129707603526294327301879364445160326419549390630062886400718600629199445720544320641612274981142562681302647846692137650718222553690549436466816690389314937210163550678334809762977906807083448970441333159678907651628662333684827109382403739675795959170619961236387904183397867833071953225163930887055054709333237875729875683780816473538888831110786080133301444768536365929897462553912317539887267107150480510606901265080286388933915540350544106610548792456707089575190225523569539587016867158812948605427122500588427943108746860993945151634422323836573658045066693618142935631188854381992851977966804089813267480527229298029013447811153785628136091809478185085041364927485632502357592104570511978123660977950459373398058281955685222952943369961194434444182611292651827184906363661472113318071694558125650566503962393628675620307440120123302506376721279812829512448141865783076268718261305804329410389915058365240337561235971005431250568891677936304031997108035245842743788983161564747761581021412435307368629980323293023931508305049186446403565058920562007879115170552249950148531031851160425849804408412638124095779333901523783762783585772277542673421321333295710580565628949279680285312101290661684794360007764494622278004275831798290748415284702688032375610269422635263495116123421046359076662732657026755595832075519738158700821883410415959274530917531443491423604772328047781211294334930538368353939069476251815703492521114494051222688695475256489760282884585121368071507766673088768716593325526427594013934051221322664712042515508084552088543022728896859288367477936038021282459647096246130173957284138055694660836144093031724479771499896015789661974255880646019076579268503427643837724674014183648702052946127276429188633022729997796306247334399498040451678938920276781342605466533106979284617570285111467257744235722909698584447469357039443926149798936615545560389509331567135141431260298593297951295695968819050763350537157017442821162310504051124548650863343735078803118701921151891210112897207141718787993169034594227159936432851837080511893454012287666566621584272012621080330854405526452628558693973672465190696341266279989035922547331681232558974806938631808280653699346538634435992012733716978020932345499930321201321568361340585355068360849031811581088611898827482379019382379482566635864450082742948412733306044109079713480845012771162297276965326329112606414841941692243644863397031402635599840856839029461539836735934916486071485508166658374896748975787994988526887516382679015481787975522427550424722206695793060709081916455314798961410462778796918238364577275641421699723488726679880629029858707342341273495410161751180485004688443055226988589655841071864643590793413299087530261384870965336137079916390408221500821514093426874971580909040329962191714901738604128117622587081795053268290965668350734288888652119364911049273262715642287495362901008082798511628089956498422745700666558394610394817421141226053719131549411361396104224555965527118883104868924764987191164883108617119604282599358395867967472897325683277769234076269312907292957650563452511824049840109924641486208689097045386752734246200140030436694224088696324202183136261028641906257479628614437671974834568494371086736446851043132710548293269871245625283136483406509807099202090474711961112505021353351695845533856048742823755306975466088278795493824980650308865531143447101484696182095777007302164347682299394553311125588387154725272211888726015267680146117189868000728152796898315910161207479582403802200226220581082356176172956097102224456078020813683447335714565294352877844422888226707158933420527813156219837122983019892439867492650954307497270472247749085432800593941752197452304271432371005757622666585135491521388778239307776337661448261422178477036996434916426156534479582179799132542907530734351675098317104303828051259008978468571338733180763760989706368087333230395478961132609946971281690757079754474197535848372806692027908317017220645888377989149517551932200771939566437588002917239486269802908881263532650271476970254191176034459178453251082261002484932958442782202547370199149428713252876114492409800777702057751503029382935497597077006215001829740468175400921119253364256448953253901499115439611882452982459383913759222971927047716572838287985685986308468843305495055618369560000221938092778929624197426872247257646657529117134060672802054689428982519367440595818040508237334925774598561261226068076615939778611142344907922220613378832341468614847741627353536910659408332206089012939087145268943275081346350809570629723198983300942018725727203613192928767930206791207879999520724509613059840510555975684936933545460507259177852340889312032550945598385519406402998850000288556718156955859818377618843812866709920587876578173738167555682758223958000464859324969003871689024223266333412478792860949284826628592971069474127210156646429281363269761521797508947272996534798226071682954898233509281355274202238405435738535068827842175904114985050437645905272415410500726083399726787912863778261103115712326373160680912137125985053591308073818281698871783112356145197815036380103685821522011404641497596543700152821827794955150958564739835280219823806234896988455275310556549176043333516129071887866705764496039049106924636006472816453994570927658020886345297353265968557505405609808252082282500206366030426394489504376199014749294053375201497871090742091015935040242814257332034333867935265188919189993773400942570059049491425627335426387337701021197735646107876043683557148636629214275278577629884904571662271661845870492536237559357136035374032922484813430002780839044192453282248297665785481768972126704300608408580682146158617218674248162149676083806512915598530382921936749960027180904403178767466189089049073100606075776050030952596888322088715554978382820360470378540973235328942408528237054751876782114348773969754362390213531271755066137745365859755182832298955822323842061781916964517593290213586805764535713957398161127839480775463367570994001010900988932087083614443902050965368079352492627327896390352940438846932165403383632851480480637926501830946455602424184896027671289952153430267934140146080098399955935881096820925173430886850034357670832727053648087172345818429110782663287006964347819573801214229949967075997653936981725794323467050173377757640750197712694314236882254062908843340470333577660793616240648600727205364673974003846154211945224998725739857334823722310054403537764036462868251795610145285673462035398330876477028596693140168474583467535056146511150493317736072219021107688511853228806787057668861236598834075648357798546188387785112730564494589822992999763612368162260924567310789951983331413750936863061309977445748500747813118401729712004425927179050577776505335946574384745153965824799079631098178445358295566086154509413859380509246846757801302690237285142934834951364317431122867308845301512849743413822486102416786403119211391722349422946496183842479852837356787391261777273451496115639995070221960566749370995533772397898582735733076837574594029513704132290194806740209816213808550669406323844631164141944658003593676774370952854333088720053224332413509722635643074561532452128861336301131716459044237619898965925540012395463007806061422451295274538021383950905460733888962718808027573137041363601713844685829758778447671677372714073469123523073358339662145757992699252514596854883201738134625031623902366968314580767643260611926862351359222102863056651917700771575802204513481800485491021106000862028516649530884554923968860344410161583260344905666824216272568919349612131602808641309967299470020551790084236511458690651192397255244992187478410109491082673774721700569547224596600278167986325099566415795976466179140396846427629798535057902142074532499979051184541220399671483223509053665939063830205718823805124362803112938281940081042514293645378765293225829928549064762015303942447921252869963367630111867216494607472620173100549767538407795068978107580219067418048156186004578603021066336492236462288684349005524804116757142063893355754009330534511509630778765537075087841477476539101306656561431244310005713066128868193927608905754513812449198227647465077677953820178844317278730591281241727037818699827345247823201868974191902637651688569745400672637289378958711624638826597833545088639485213496871865633318650048741994058307440021773378950165171536513539710092752725329961069646759632358789562528269584803209328242682604147547470322638278504056977738772615310895571616753564904478731921514849760978062935267551013501008346028555809092528276175389841791807360043895938814918279716364301515234811670526822261452335712006808103528745161907344990226842596181015614143116896496507105504699618012260790616296096378993944821299287581131894498946912087681699617446201219560348032347669014670010308192204098157364612175720408676171338984586199122714488761853297095921043018289192110472460749862208261530175998848060044789597789727928465509978770866456243951856574487817478970724035334187519331662387892349179162781020806697195757604001521969160281110520776009034633348833532329734150505894611441914201551487682696588084537857748596784752087179846443688887018561697257646652285962014489363431279866314323742285418387629506282361756871143964924051909694732079697854656468560093685506258153790917177474780521769597887083362783836247775423029303357647655705805624022528611087197784662956425588837418874047676397216601921478972916320983362260153617137914242974873925418586591002573278134855034925027641103653147055076594626351923831396945081287892748494308015366539357154555345955367501106171344983890255178773443862617364274199967730379701349130082714612821371215489629144312012579464177894420545535471698871519809426486984447490516302079467795406234755738373800540985521363036645755612896415748065479939169094543615480376416314233567824509618186964982848270493011991687042917233621554932851588381806043872959384971328231060026814001076182548244162834154403467208019308140324132143008385192010203513108681373215729233620647522599636167494931666383532479135195662094797414984204291844079979959682717717764819794111908387800458123586461248613184262244505045628477747181174733608689431332633514328677938208445763851224149153351311782351990528533476143525497838161432884770223910072420099327705270708377910261716095260941762139787664290120419921917505575255823712286221728862299577064948057017361412425802637832570878702985790609471847026882600913889824648019634575673098974133740966655351327869779327135952309296393727842761837631541766688328464496117686503954710489301632610455183020048657450282634690796169539099832191887136606288136566860350665620673721063670123733163004681279902326519054709255193866091425545832641904957009615529092956425955850131273741863839330587238529912897184899417578449375287610981224138034872786618212149539792098095183391682020509634279204851545830729394117242974879189381901064843379466015438533631294460605549979190816482852719446657246720470101833371376132227754828679872732169439342621686824388694200258122606963408976273408196492344361665475020079907063779562860653558625359411026439332610080802973358881924477503652314760593925284272620136570010265687664514317599152090186742208877844850921695153114377674323659852335629658323915070077374908592918531885937031606419417900243865214183726192665416864242290592530392397908515045269689173291634827036428482287166921275922698261877983753553328771695988621642243524798981322000979096121330952256895548356732842815996901604590146940685629239767941092759568855618826069067130257639993550596975895739116946737272063609840156213441622537959629943185392956599425642894772369458210219919136847164413292412604969889474292404282317103122059088203355733221248487707174882728106797348878257994608769255572834427816710622741002427029003153618442191057550132678205236723140592666311651306514899307753341213812471646678721132824560680309837867444709857129387708542789938160211938177878549593444800672596236452440199192755690795480572099568108878730828375009656230297258571913901494442659693453594219751952051722260257638786626545043117915371314515512734919341446580253645418327712582973005670222146142459952670242642263997358084159879510912082886090903541514902624970700367433882744121881647191205430844380205227593859066011422457452265584892657806606122408134171047142087515364406112731166338994342692022710089115545557206592771171534272760861668234126692475953605104161424133201397241647013596914248831964221575732864604440971808857284672443372185442639153421110379467497533808316410491857699683659355641724331813411031050975238935607383924014403329000526742604605815704399887336448458681183437917426345913738634052492886081230234436771528338035590332833551258484263159102858444790711194939157111507096517380583501253023335713646200029272349908203479716263211373585310035552497818742469787994243174315424228283751499674285381024414143777839356173245413763946359389945498944277239491066742723800969339167160927512559203041465967219653266234537107709314133707621932323057049155374834038224993441793102721145333838509717274320582152005970429520622187421751373422001036790367551741812795150211510758020368677469877568839184077492359102996765711993126951670255103886414011728687025279047927839848297035684931114677805722352634550417397256786303601559269383339772056513502088028948670736415162275762898487582086719264503892339506117417288912832117228095999773602276754407724873244665417401876847290423461709788118777505788749616015127669860726765701215780774999536182208698630487285457980358670817652330244970485315165633577282904982433678778002659986904311901192751032019109521633989621680574326814976974879390353123320642348453688382453854137430698015231312392310151797195036186755487408660835446652860655694917936580169243866900433396325769099767726483121537287042848238641300945625679825626078796997584271680166876178099665480638298221753522540619435946244206481013650469268770928546846636776017623282759524293529303764070454247198202103099785117890544528130080208039833651289123890799591241693298195858524640232587997888545686331285039052363357876322903072969132139694505328643222266760493960050957040407777773452706074102324421022676161208570508197006225932723142962882642664001049883505224221984495477168850910189523969666128214694987698039987157462925725023025897951148351456507750903397109354944315051192894679095090431409742879234993313148260926088899860889834065172492177946139590945252846784615518154140433110220062979226218655344772623329154398470942648935246587819099809040405389456519142238772398234822764857850909400153784312428213826179259449846903738294866908234869389048165821941782400444594396282668491466371407309095784792353324031902190424004296474166496429109036011917219298669541565016963985812711277803306165683304834251146680973010036565876599635990773838639695002196009670013645829682632002628324187601182566177910578266654729014996912980724727854029011306453237778063613032911084243292533456178339455127680830895409609496348468946162721461439337142310805399487517732556042287296294552481173883635514476191581533161067747790500035926940270683576542232184663055652779765549544084622954838313049774011927470352053491471580375948926173026482283927762480544959094258995323008999273308310304749893760668357571949694486477704062825029077647355943817794339921713539010416254969815407292223781193276754461884754498030922738902553826841555230257687636847222539440851358288836960767467820578966621069703424263573817979235128134105890710793797491651789376868848113113581945742148092577010475812318997991780097641267361552677227821470976942406474638612743139667906375294251594754125895138094063651157162113489278800904626957459262782645702850242616207066778656459978590999164720922703061092568537828742040972082382717437371156470824599071127288482766796734188097451081623476137979762831208527206281897452107540280654329708937275209023690088927878234102751324897090703169820836337564786887878919232262858066127073382651209437390235784867848383803125103780434383407189501118738857852712307581446485168222330108927862801349067334540961937283580959769791806586749392414602567157143134200358197873046398228160061371942170803309318781496647173243315429629894269100779504108518078300871973105294987986547074197656411152880213101371682358611119505525181000545291064317265203253018737668777421735566451820856921353885860687342648022206394652900536768399330349567665107093695450486837872690018664516912725322494549776913658666478411174276598928592536810471523632751977562005137985312374625634798654509112601822368731715957958630938223713252068813155273513552481235984287558189027376115223044500671903500089576300154715899182996562688009544012763654652345428193272580332673861617680019087663944555584783497586736384596941010403705953379983790182632348773040240966763212981276192116084657463896160417160778923591804981513309048591988486781872866318877714586187201271205690385689595101798668439337592791777096991163782137170832284248887785183329703993897919929842570331183927383656446677689532284549550620929454488190094678141908821269307525858257570603770575192643377295670814376899281077406277153580735729726529525311897639646703633107398718946118077699922050730071617298271384974340345025786183638222324397536755257827406731438490953399679550790455435556730858277662326159008344245575025759400407429734637665359839013840694359588339749037227266887868548153208622109193217299854372107568057422461790865505371269413853954394292317147111847906249428223201877091550731101385271296068654906931936393740053711594033585924684421800143607075936179130000477987707769895751381353645251234887410432115937926869296587290417909271827088833141870235763348492057023271846498914492298170406727607341829787470007570492907217488804862072365984434329228217232213211626583192307124861203342852031946795295473000665576727223878666101333193481377739627043121560609081043545462678357663363121818130548770061742858339186749012461614598273545703142823633411750777400502585256399208921796204155827730619403841457626136151622016663072454842080881359360675979466151724646479790931883507764566827456698454485220988252585117224111327179338442038666845689432901193373046730904437181232490881914746535930965685108054310189495340749776192331683096514639976039657519431721377726637334031651630500255965649517353048744569537635366847522920911857317461775915574955734036029025668343695836214154315992853937907332159437758257180432176560870425612721728630511776842049077649369804179696102952554701600286457523521774240280929070019303842392862997391315738470748981033206345390094501200648435664684856222654938024052243806209632563392865453296520010407693356201270855521780068705028199564499140272211725249240385985961799859216786284394474266730974914133563742068489932533377940598012182788764599938193370318910598742724782348476537549153317527024671928417730421874142856018470160637381456036807013856102586558808143136966904234890047141152629169655145388208478606789828601234469079054298450163132762931182216782530892600127924615098575362474215030907636081572834157013573726737485879930822330468462767059122436792192018012478291962659241825846841538248795766460220504198343738550455095704059180764915898233399057902576555980596550954590705534630622435184407547441862139461837828878856240366827447964090896967410815058491353161042108740689162329852774356126999959614454773395843694417136802816004399393923627198024630184599594941702583311057730870959347293707620828251847493365320663036885597658937982511862057122830448758309647625683645281383769401569847331258724653969309791769262603013248231857833503447663803889214670575908856016083727406832231698557219972744191759819032047609895074963728589629872419737225038550162899602961566364458186198903122292819658761183437062924572110304315752875812335127567773627460446241090967000748112525875515097357635382421083805064242120951868211722969459591195214488526933893035745719831565876347644443005095029511380425521099030103939063003111798838753639788292398757568713985535553530333080249898791316953508166322835879512092974835559500314353215136780722319361208971259384356547433240515311290962018397333530615162887004513549307248951501013540030308157526388499409165140240856343953600813776045741160686801552248363791488720739406885445676008814978425755984775001182990391176332284951743415066860516817148313895665818812858224997380164697160544084690986604501912013201029911190392243871699685599783038618632536108667742032831055502118214432469586994173605924138277222010120476259619233738836540952909256285023222883484368434469931418414552815339427231856566606377182538770604878946384804036674175692192490032986288757035036269543704585061298059242440923749249489348588833449919680737685587867012128198518711008506963977557596717384121560078373713666666597668386914618927186244602749721386279960778460286157437320838062171379768454379233573753489901005255336062732010038801929915869123301108535718128196974082099779083252553810887444548683306719171931558054675229021893887933016385439829498397374036685771824843954553825728196654614086919338821612068840150365473843304070515701347794121669660276206429565541180205145733901994758573988897925727041598181687581803809307066488240758004297232241447838038828356554119001804961960437682552122123504885190643509205554426930454106407833428852076323083556718526187769607599991799109320715040898497868769141895078877329116047380081144724778830883707785563494778505955582882347181517253471416268305603218433130294926215105179231468688476212227702232377275509016940917063578444217403224260530036946346177591108562447579303037976260919373095560507389577865839086968892285153532011647017996699789701137874214323603001066566474720602339882734388341619864081875108123501281017823948777273044516397597934820210908151493131303633213375561410892323323265017008030897623389622443106627735753781184269781993822571737206815235040603264719339029123269303889930692462096501228582863143321324755755723867536824535320891077783049256048610696644859804056112848716864773862687738847659228868226442297909480918337294669298700410912666266800280297447118673153763567429297267459075903415785775002046205822339049542640068245959112148835687236393466839207737059840704871143830901308463590769253454580720438675161825358924217704339592722446974676013853512043501632513897279070325742735861976425364885095135956875540363896963350226525389394157292244099390346429267118269346183092048654404718289675492850641386068647375049141905403189391168701935117733685670659110216878430253968758169877780410062633572214826141758721355407479239897659146019055874467989664980692282615854414757818613023487156807775823488301949360295460434955177770434570153455348876602102665263397296273895187563215266785370375935765164312971032382392069587809626704740826672112204697939488014191169263028347370638955909695041441642008087479148692475039703699253610121958455652132164254444410515821920712607420452109613295204241253830718771710583248910492492739251338466911809295691649450342770200082967239775747279275440077273964391955537399185819767567000561715529793359274062798237868368526012839649813263566682853915113133293266649451371441514413186961450044645409118527024168530871174299953043603171481722316708251377314307607670625411463480297492444293488432116447734393264726793607497400225441791072387460752129526169802274182187196598702203342365783185731666608864796738010570454998965500400965048563362710227840513104687666905733393389652757956992186112715130959821102018254781556984165274331849225146522609611456843374624469306765459651356212762506931578343035000724280873829391890033367915966344720540720926632857434249223621892193934286613062151585164924027076584271236183725224258509627343378849669426186425124703995479949235041545777777995693284607917640593549225757452574513567507024465160302281202636099129366363290414184912557824810409858736940421161352046029744035423439881065912968651526900140041891595357152782002250206482071836621247304941006777735767461819738896942333351146935958919526174166951949548034740803541753689492892462059503485083958845476620747872409437557021121238205551554069736338718157765096769138838496815703078989779545023885682095012217053484779347248708195017540407584582081373475110451275976781503581002637009286166933189589063736839886185289032003183387796035540511573403500495705996306376186811183627760720376534815180653119839162374154201690346596506951763169982848730382193539960220724276582898559189858439101987663666395722250639787250490626104678272812939459087965348408842603093084027613382935476115761841204117659582089434520996693763318617416608806346036031216647524057440761148453948883924731373253105963180390799884893119943557545413878593590352245833609006983405874938631398820441690822998030884010267394187697071590237196728158836660751490334159821005181763746995190178449312935400409118067582869279037512244688065238409422660723594341017331793419109843585027928378305318609941881103293096536556138814964478596974924268465322921820176034792214362423741357113590098710362221923713280835976888781742843768774225927670176796229275650685373653773734454699883451128849824578710264968327124794840707254899263717776923432435708612153364269908069065351642221903241947128505043588832148692281697509776468474296476733484591538194861709685752579598573608413922878269299995523756069931550432877238507749506764721714281702308000150399345825413818613031718291852682715520490178418417211639526147926974499138353401454194085521042126067771644009738924743104668054060660291438934022116832971346834079614862550808515616727767934687998469778680523887720622264818796499658410653174032988492444942661971862930060891746642922250637229705782514513027294196551198461830695845636440384813955310475133905184154921196123130856584706875375576516897125426147563336833126911888376244529526944732086863845981852149070654995207990662605301843203870478706836506233891258464876146896276400662409071329747335711206069141007783732229620546898317674610705449482045150059282422411386104472939393083961344212922248730208774274638112622863141920917420579647531826660154052827503367712217296239201409590607903962185616088814806395748712117585650205215303762210187970003361649274506268054363448214583309182773404209242787260112267631400912265392815128166274329790496504333797333511319094619957872101890831816936737668658958332937880542855548462382015658749886489826022314657459888850989819255893222076928386140109930753847953124519015163038030174823151426608757364688671702800437844940185444774013332026987535770338898429921088698190454276741436458805206519097596534686097722307090198709528295441644855993285240144625149530078468106172470933261942945675339792600560482797050275853121393083440042183248085453907778397744981343010789239675971660097390325289587602363626259125175123962045386831499173958966705312851508487410568664486355747119086544307686321946737870665674452614429805769768084945535733818756916568456615273116845841238340379955557874174875293285985018256456430451664152261795049545655977429748427185316757026855391492115935367759302235372462922326021137587387752889243973651058076603478039129603499713092593225113108975662840964566980931847027001794527581303060716649431323895099072057521960272293528766853797920724816059629368480325057104160463842035380905558256586354797198728232084201382710010736629108602172674221206257355818602477645672985661792072240089419959188780990266361706732060669713361208034646023835335346991771718477962285881122709194367276131072231180623826772286100829702723384852275606446945198443646035606875910128844622705138512241632437932828908868300717387574207563496189661642680575656669564488066111750580747665583709271320447624395157429089758967916624949250128585361022795584356549350372478298787082063254098475371283550248315952280745278214579679507846820738828762423817218717302936597992630316864990654873035683649261835421861979324912754162863886657294770804528852368893320409859869720397076132198325371114174357316398533121524055840409527685006514568535315634416737196440466923971964161558351237225856720386235813324447990212323726748485792412284055180517645338590053001632997993930040682348580193901332586212560068698643954325182440300901198145218284836455463185538511283363157158363777417704856962506249301838399470220306343256707531265160237005989273875550716466591164400909482803425360210269836561679412161005337135835129147936659625662842491696684709184093593685582347409792511826221307128688305729184624609522686967708112645341788872445821258779047263028104181931221706399275040704187440089288165294552549791524350121453468791460074947100085444600386210883162412215215967659557578895105456628206712941496649231372002592155451605778019629784734521591041740602866990053982980703125370733600308507836208808465871042221135130406146214354236507516845229345114293275656074853816755012750928673709386603719397086026313654947226322850705773439679211177585322429254323792092602693897477212255341643297688061198873820485965627295954396437940738031002856146324017821966712977984245487722753030988531944892290579165457155185733879258081832402386170348979523003188814818059948376276980446414475716409384004544888536371015509959330470318867336503378458950262612424522162524386937712499990358370299121296866806243283698839770330100481903058283890127873745984527752307205029757070956622261717908579484386609550195759209031301356580056151232962840655107951478488068798284240242343156837377397720283818690293295325469760097044036416750876935781281727198736422282831168390246096069280327233490739650286878950083664208632151701049701002854411585951593489284324068038846376307575766432056431889365846377801562571884579902085001863370047198208459415672259773488810055599725571337946510003011489612124019530433702468782986060310205934228000039610124874634390467797775247100753838863224026108990720094202440744456359056192600993506807962887551952124103625073951332604431125497149690367740486610957000873987900013505617328949446697621501811853614080391139028004254592985326731229229846568167084509587418475941170642801781719781139389912795040183873746623069823062983017081615726615298131223608908011804767994157066957403445008383465579910639375401487400657373295448744546177551440099361342540996753956124300410146687298625913400772826508010405586337171692262624568137821533495573350586478894333908380220906108577486026520377367450378984695248744296155498083783431813589920492100961115703751485313658381438004938665728452816279219489980752485404640004423236566058396970567947396847984497239743120797879056027958108823560878487653534907947802605210608430667146202893784015077604926723628246483547683622473685575013047003585112787854943622538433086179771474391107075492292418218088682862523186470744995693547797205952039240140726088525652245411123707966149315462640164248400823750638620112508313085035827731129981149509345358730475194185130562820329595926149483089795485560683825323959571458625287577562460231555707386516980671973986367830517665880891300606270640269731695492192631927485052018033233005363187428458369830176960759517584747719071186423924229411573886688951374358983350287629657193584700811554968673205365208954932377278348975117419324065446569236964950801070575803837568889269532043868981669558006340267678068735202451006561980691248299776037386496934918764710103468350803730881075465764649653262782310352017167058828391877105176263242422994752647920160785101226641409918145333215104680087694819312505164473348331368915729193838164950902360602007905298740420447055886190519802916352769273637711815051537649548604925658078630652263408480902724348932107752499657485138534764624781228246205499140308511591225075284235261471497759517959656736325913223772908796281469207306925773211826713053522778472897682136246813815661448848493395038189708848911462671119556732218957194343178676367873058740659466828074576031379704821184089201228803713969049269090400510556097427497910026084189276435255633502074607545907874805022312705700968326915356344342565146115407910539287008941475879645052524595630741879982823092227146587213025831101323289128681542685653182785109575420051937705463550771698453981446979421372607683660318267945368369614804233177213961362460686053971015241244620697060708251027975359764587906711069956041748438066002903459187742561766740911871950379248036797672760418003752642879247930423491831687796838164938856155179886676778345046869128616834706061102128538688386845617517484910017672252856182630786711370135271464612069082695288321154238017413810615697372887556193632439546737903664942663172878974499886608508221939606360748179401769998452726180671360267148704190700443425074621735228993830500531406840595663036304964710525043649132902525422240751314320452034095070758434766673973320066663156806707435080703933032409074517015011577805967848212187849816034717062684446110784550826977487585604749528243700285038696529792023987198356924137577020012031730117212066908696477152984333799857561478297971729776884199444604454066177147173272012837789730210999961537427683633967224125907762636184315133952352097576642901545933476712720506590413648636790672339932425143128964694395985731883583349734517935174984584042045759097971790388188821883950019516177796765331956232615253029129805484504678837298420054532800604358373996211213282048425180326803615141910673460018000419160981028806887283430344976644425474518959220909323123873957323617581887350629467441226225625707763621783702429811773957824173833943430491925090523545087819396274340112327043883874243410514794469312731891313891904804879525402390411936180702963467692365439922153191672907252347617515890469494783649097212695146366223544015723367087366047457032316937113260154838326552003255795745217357322329386540358762332791066936895679575031996677745982673733787362614712654626305160032236220141280148088294015850322060585413156193035542885928553594678976774177089953113072563073920747321100783371119849519425825602294468017676556110581707871297672843451659768634516364703858700119381742653533729163185309636452718452804180899680671277631086364664400881534861826890532716032385369143268259079692494612964332255782847026476318814218260308391256303570988016995484013735713277018073713446831032924786553769543845789502210458911629997399027864135743946979992123748485596860678194901781228503296002805305925348711577384370500120061075154484044393620734115624975520803836791294910628786691389928383292882235765553653857145179439194942379209644902335268733627382020104186011247671083109912653129705679571639384240053074139701021203828790386047011483948984055241861450402000179582681331423674105409691550941487122632965498843659141897449806131700680079925421052496137448342332000723982854533327966675530213136862089068471142355692234326591002763836632246018578779412804203265348708619054691876600002080269952974057319502169673487698306870920563436036889016829944959611771921849088710967880954379701116399080240900963877454321887267683842709084847305045474942986481375950101832439298895865020298961129868272789108814690477357842299729582950867812625469251533650225518115414082128109726957202854128775905286492459448669418314308643163718518436047852218657474680960229004814836057361885877366144267881198249432183815461581281913015958752226357774467167431405889295849812288003192718049507170433848710839754153921995885539977310600198398931182370677766100647444886455560808151363595078409506285790532188441565982944540591541671569347755377068570682546452067995442036685271828556840580990075412378693060831684731534573911062926024078059179921139141250639827784883335984985104685121254363041485218534739523530840773653831620445006022109427104027800379314608330791136623716388647805951641484154066859011803561411563170013351640013739463706528433521354796625343967022421672046901297228583955960388435935511112675842901413200254856471290889601893848610648435548281861713697558374377210118072698655321920099387038645520011774168813715997812696401351541073726052262117446465214235822392679767108977536285392951271051903246001133475656427933138915015058099104088947935013920822352725466118076990583453269750806115457227409453397104186906880761325421986430033895588100312668839999027292031692646231193056850432669926284748620707924650697010048399029865242222457836690923563652666098072787578715398472419381593612998817450945502557133188040648074126949833114440581035404825020749909458891503423426821722347689811402320811858985852940776023670126830860620706816705589497921807098523280733507797543834784187930389908169102262407788503165748949551249809661596812104131620974771616764495922786452893505823427131882825392809717297293232330624239482605482533589631685363363997846581298529543750384338948526212689662354754398950992563218049720144750456291143554792899401745955988950672583303813000559802819173405024716385282312040875389421468664177494083107627472246393910089316410915050472587786365168424477409236093613477683305025008531690476049678561411030006035404519602630264862910932080806523889296660631971494347280915775497899129269377035119648879668316351058317028280520861621661312852215314145985062535896898799488704217475662813324983688222258733308133432599016124651030531860604741920834584422089955449873514369408886766339407143185431705348307080414347240891746433195559735990065470994352168995066387170756504100680622589887436640394382325762849238471081044400570967944749255678511511971055581906924061840807392972800301362223817875915920903724787809818655235877618477431629818731531647975002777951020377984984628980654620920289732412105385666477665263908769127165120256091053116979242056333161604001373448609677023383693633094007721693937978722341948056295230267876279752011476385222887787294626523851849839927527869361945282517176664555661067586743547764330081399844906394341228138438599433601384002590000711502642009968254807875992091708621378592408050461652365399790977849742791700719297641684337838911633927854394737738379737688384627216948665047150031366299292832139431395916892541224321093395939761919273439090392363386896309751272707131497707445501287406444120679044200372116657898725468153528924637540417793700170807227908285111323347788762723469359433868943086170556112998605731293487202716064959322657823033691936262664637693805016481490320975636862627283440910147864443828663932095695870973541468501163293221012073112716169288898105755383671213926614653602399533515822032654878781263912895438025397894005669220297556265318400036377489703017183352134133569110110305833490773767443528518339397464938802144313822881201437882472168734038502811789693259732913313655942333642560828008262473268036254051711687000559212037814442109573081978876596259555325126676487700843527145780645669745174636653720706548607998527307410651678815788844056429467334004208092463302481540516365486375214631090806765486602593287005865715298434696959478571048172142460236667077239892575606795725729803680136147055019769538919652651800882371402627826639435303761800101630137408924706089947203993556128352041699985584375367405442707695348874130165927749521345654876937491592988359835139167205392537488837124213235027530680234921918282676105919591799789211941431349007689317664467678873157950370594140579201723194269211128587851843145164161879410392040367684730511972212252849453859725210863466059021641587235831188095131515768341595499525234835185788926559127277267898489830173769210688694082096097203052409673827015243243258996044629700552471251558130771648977096445162342608279816136357489273661361408450993183115579675840850993115487602503741864319326898250240064712846026591100176807677467239630972608773769890469935238999013731482815709553502491132988169351348815859632387532890545122196119673221906500581618593500780589915023021468861101398396359987493474234107840332289479196041125731617318914643634107067312453104992953307596592174183734760892569697391472555070610194553183961985681673167756871145398166157646151994931801906178738832333322660506550341936488054788759493178150426908834107800428940548159272324177240704600327176344259436579501866009521867880582150079841979245836720356784651700449063914424076802492891626144230282452670700287188371477172210701523214083234115986649711396840048528610261623097155885270457525181355723284279989694451108550892909606762066167086960896251026931732798791690899629687621480890983963216767170729049801828735167870600630941191050743110869781863537889804061222124888481226135908530322107829453120743650909898725285884730993834803333094833616425077555294835051324504551439299072948982377095222324028800207397053310356161936409451505479041102054072446597305255946829724983263660303828426515987509715471056810522731459643969869542634852977114238511073002692179640598931543147350794596795798667112342303893199399135205303039069372266637354893051552619685386388335925813005635187857575073630987196482962894344483618677557516854803134404741389225655000589218588081863039930834585719785875113604946615063409735304178107001431431510218500744196195132930443962114825593904624903778975589656973867918526828705225631876821535607310956711942742056377396503009826970715464626655217514485152306578672985583465603878806787577987386529390253097669097937235619996055449475220177827012395099557323150778713080819087393663435262527542423838813521461983231355840539728845907544621984134983609616746033576964952894100583125226510188001818260547785430160095110471684788538537521232203617611947031516398447897553199971167246235865327278510092767838257624560591736224353004390623251453336933312545818058489304379060522093669413390229631329204291128685162946873966527399768225650524385933223830211332266405738098794406539873076497419747969423185941183128095978932880894432543027785357158681869547136563933000585925007472047657806229992746044193764564773333239973244661342404801106804427225263862098186815065962498583096391498984872076211388060741432394958859517446893293509397062130984049948068268148590984425380283347020652911703288827753246281063414787479722492522035698768905125429469764891915941499703679295041938819073421438132649193007826613123089164853938044461219287289118833437050334813863591681582934921212580795370806826591978655485256582867048039769994084912520742764868427694401138943214000402518434002308347574433269945009495480411023911483585044831859723073724737861960205554889047244749439186527892119399178836709670978168172108971901571048524536495640945963406470096086620763309263275481166949691402211483280085005165574203254708769828169024582004087732088209447783754628569335393919821334991571788417019661896314225494515078065115467017992759027760553429946483667478411834547588041076436698864505486670169458697888039267640824408710570465643100241493009953406936046304315424039312965537599503679990412622319051333688679853675449342923437840408743124968687691013096288521147700165615721301564369194852875975785522816923737587565905862126462324989109627437363958378412621102302437614338268792471838298071135092333837333932404111002263629300765237042424463219058166817729845583545618804026674298238462014802924062161073424398689963255134479030784799213969014097531393535661473144840071867175494970504140436248703635176865253657161082932150442270089180478786420482855169939130809344861234872124400940329212031018603988799631795556580173960897689094875848468561158301899527652839237610758581498572031793111653282596029546852647991453770972927826649584782464311641122536243980706938803563595364354805630874303834403657731859844247083571520612911830172200124196906705486552454560827976100021722259191889467549031195358920739870429069652794000046093635122303061653537387667001320741499538133809311767543892332780224474686408895137287212912561634189679669134972812879994097461436841984225146090364449979819854457349867874381185519359413324009885357862551879456187027046833398703434965905571040767775886057859746371737691264224005673417695907846469381116051354823855486617372780314636491044614786630480914549703758354114509572812540215371227771520323468358024786644842573048326184800788570256858581613939441335991395167711872752555591029528572847284869779529535139045284435252455715275259469798292411852115290356650172220309856333627420575406394206013640932961708124255457910879116197157518469458414590781887632509706905821661414130333413898939539172164040783447299323713655889700506927287783756168291690823238691323150663590586907064001652757296426631816488719267226462805047345993538388877848100927291080133924459588221229469262793300372062784988692225203368648638038231121015365879257498743818417424268789643333866423493394128262686337317745502465669199914690809246948378028346219061756564577184100384527000969130785456992138657227406256288114189811549217270296721804040892529987302529411360047204412840401130801137887259368170119921641691202680644978822902487820325770307366495122026298811748204891638912781554969493264776442767968011446992547370883307190336536921782175587237145852821294092526651410737936477287074808979189800909392178954098790945046006927461627496745394379030700774352896019268854769390259174995168768744388097069146391261002252618424725991397187327865858535915712802130827643607581482755177453396847793494457145253527297661280956083951105911466964166427943212063293709429128195022847108696743500317129043179577960368832442180493259596195110882813969177138941913238984477037818211076396238030434150894202940004637668501468420206378906859804268609730503982749967944058818050067376478699763470125801725579629856738165074051416991211118333954136399737507014545676266118769314840831699254130173925105952942536769559715084469043175273979770241938731219542754828352523938306577079958528924987794528762094343621413433586210955753215049017208058959775922447161215481166270728481575982848158698094681999504498420048615293718890475277163124747491173741339932697669842099712408140650817164447013890588967073515564892598304410065813808697949391241356046582314725018777432173912305922581880117701135990863940742445143877010485368818810122806977319838683310787867052038414679694736439407827859557970655313185799546268600470857592275309345459030171657057168886692813162821410731643878348394803324048421097306801924284396467780112800909859147635446552221819605862093951384675703494082265698716578438734977723433284850849499557047791842258684347574973933516353130180185430204984091525572285572441477489144467009607863570549739822678609689622540670690857484721011355395420267225870102733402016742381637569170685817735602351838431465110867096990820372868125651230496734489658702506311891730830681524801644276301408414309227643433128913373806523950286177058275697289333221208423259655425373232591577688086749408871960155093074876340079935679883449313866457660797447954659717851659337157218581761822741814818004361907309670867762146467067795672429923245291313983823347581057541201251845968320947013353694094289005529849560994947022936083962929372085901021199694093417016925387921730491974509621515360452432879572229892613663675817142538751360011714025361476107134724477146793607988048543346428887106267640912919077596781839837547608298449389517458054701862689512012559177548383444187848673443896682756781451867732225771865723800526142193646054319323417340727222769388184834127932583174292034932228518851241401308937260179793872228449216708952659876076063764833182645196180120395739803579927784240929189287018586834051129428547200282893960339482834702140495239542512634513073961839383055711879419493098063221475371636944612611482498962725989751668197440892981130342523530085362300176296025702695351502289576314231931692610662935457071460876883725130437444146454942423079884768601066183899261564135383358866844001160025381747100613462517352948929683880427708126591498457859486886227217972674799003191684453202130856725889725841006308378696149513158100657450286806327312739310229652123834386026692938364448512821404313493418852575180356860743698349259892122601338914639632929799840216028868002510491161755712856952220304447965187329271925029716540098943351212359963281879364611102263452487935833671086644264194905243576110212956447489962511265888595827987956301820301056836702280900502085088220014126333846779879526674964566431101463992291727127695189013953413046250218024502778405765296356657656133698104294219744790362735284065046188645103824689309138572060056686252353942119855084684788180409436021471989905053147193747235832586417645317571560059646058632941068356102272570807777214224418745340279256591687766991166370265255519436356065466287363770028475381877535586284216929036045272089901231704596904027876669395834418488138546154895869572705667724499169463351513361128983436719594333005093208687966941465632704102525691877445005116558387456818151962955198830975228384518252501539146816975441474003631596802960183787513272417956920709345850876965143006619845705109203681372545829511451017808267045969132664151040153970073692579900903711729709830987739035333711017674686052765237142805361021107378435044606936338728404979889399144966201492215686409844573419389109363102835894450186746352527496319490561870039222781498152189081697074484845628088052624258408717327596183910471300474677008793719897984699088006223878530523758206669034613065782894694471502947491173573480647657658634862913312456703212225938643010602256411237423416790568735087308799458960513877277928771550441503416587532619825620839527731033217118700158517475796080635864294351220550870725571786801698941595700838945611893510749930694996259299354689128340022324626721229427446526292145479602941452322124166469602371506567843467191432811272744078775990369727243235633237981359884182104654550472034526084567397101087729926880105167236652852858925615736365540444435304713370426459473666161992843143336477041197885016209366094509951498989001475871922750916024666097031600389782406019613135244514306381906707967692486699877416432498272756491437960825057652276644358507506440932075905789650702604628582393892230511499199822681567612740202712171838454591111524408062453424925073261257215669471326461829162975945715932438614830098108809787444728414844440929513120141112049212156907611343947293555855181873025939645329903796252272299023410818369597186207576137066162991930592636476214071809655102490044489983223587856044424213772934476527200912203356719364815196811008252437709091457101100374620783494149972594814810677797827681536939730989129288161787206241147826782350017170540594507127107614521907288325955038985731603968032267031131778219019258065408685758511398281364902742099875436815731195215211941583792440659016321931935653572511324779161564239113477894883263516902134525018444780698904208596989943769360564052601539272157742480373045314904749877456300513378888201444646296432010337203395661624701571718315967293068904342223713395251679903366078458704972296097597579229369319715036649037690107448524635792964079635214503724654982725520742330059937657196287232109782630024498218886165740218381758508273589565172161672423106924959358544909967374546909563715848362057900653151854829616674795997690577160487110195970466617436061005157722691796062367077945523289377333338555676447641911312797609205224063832292186315604761070217034826264080836466583908968508285132690493549244810232972658568154099144224059161448203261483358971830381553051570862156395972403655305268271299453652657025589370717040353787272751654820096724702012233222256804910816714086806166050253235323308498596176101389569205797331807293452515969449248457395416988972870613995646943393895580132320389779293154248582414633297161465644138518497541153376362263562652499377319009737734518777828053415173626760368035886796644778707076408204677279967438483763665065877260526625406645976211654792674667981322865773679071856554646874117032372821586086986068720739492849113431217495585246439047903710549949574780597929195372179554944252691877075932841459870562562211008909882066824589021579276701037057120417032257253310561146784967695625582738777872736110852842010723686860632894709947190666680151470954991739682906622435054228126998680991934786985644441256257666900830084865958814323332176529280941037080331713477183216341335626568950880326527865950666188770068929608685614189180672597333728746979107079572033329542519477675382059460826088953811473315390325270462430493790052227581638428390508497449355623628826206479014332443688045346649577869344103015590409623281366659092342045655330767816959910425386441372770235528344544968648722523091337054517551636239733626142041948876463185791365020183571790443882827514400403633156468116163385500456194267774751408894242648414083798574613813041082179534870156742662373748468748274442392429436129478905169526912460168236130985689216199866085287177953674255712675300267308624336663867537095993527334223005306377330068254291903220460047548270515978999843989817252237229661187144874883798834315010418417016386044325841868290239171155757147102199248706352472001918035282572778313874943802843722926317508830573967278743792637006359826068846179500005714455201635016305000374923105664296815908908709153451491049618852127948428577998374695579989914718796360373205276316338503408882011088397775374307600251770809392718144863865625680975257902264595535464660982408656558966751867584743556762535166537244535277091797510788698907912595792906933060766100807470242657371825037640110722172922272007883678252471584531419311987741491174494701791904310761474403787984696711280754559143673765285009554471990456324818061106889346094352176343158334859030735805435952667672303336788226022811442158707524927847519851306841998795572357672124969097927389973849755778511292121438903847822545388313420061019350404540211204847045933781893613859145271533015609714111680964511555332802946225172630651672049379991669058729740145843779565153784127018970322101851152260420310673003441979721768121673564846162769009500278269327287123505490882018325212408268258136435736235420876713111456662225527860879821531255298904416138351606878764475139593202303681969766640724908499552878905116514181993344779537195476881520351149704378674191907121180513060554799103164028806871046728161719544421215995224704023492266929861444544039675313017465043922332097277743849407709229386635793614180269649786071856551474686097181119086030411932432347256328741779594858754977739018926412358246196743292219038846498381750335978958771422622247651637056729252281715260446992174218832923357158230555140629208953729216412953174713857499179634744226933930766789132163781851870099929717688796933216624658858795675498171721650976598724041921263288755770861712919137978291045932169739337565617572265075595167939446334193545028860037732516547666858105263433759972004462948836624985014710012577325051108674436528524136157595407463162354135812259688497168991592052766545570861705759251262584704736628806074469287693970053431128632482982263636916978352055002571889643005807339969274697422403769959507236417530213935999718355199830681800902332306915342452529141213689013025077462712775525063178120372639183924279473478602114488280894608906704257812712433566851297321660117946808325893878624083940421878032830072036130496779751354578812673107567195831643870830495081187915680147152723899112941345274384004866011132399210232221422235195584948003315745497746738459065315285482096366900776712114213980405966867997567074925193060981729790914109427203796768021485627091325491982427283039990572319663978252675880144563564926892622235289095766345002021098520587219717669628814572107570572164008075499755945751116795966403560302424780417984324047335033297235190055371124639504302109773428065818123473308527491438951667235841673026157318120691045575960135492535413191057282545555533805154387351694015246217090581706261919907612066773315364962462546407954815755734486675716641558473376412380242077601576220756017794899385293186611249214362328684644019229267328091596673612333593895559720848521899619448782896160169482810082184025113203154344944559108848760127654963798085821559970158391446868378955050632695863209318833438493580531472292355127307376123006739313937211303777740537594773581176354439968669972547491010055505561755481915812089059715443899015854076030163472790564008885726961400866058503083215098755477063939406112383117087753276871267900620681330544813815947574121974445507252085648154630839469774171050543773692752076339796899247631469483074929580240515039587759441326599501313199212278556905501272502256432077208314281628225652108603972222842470802913814785160596887877673342242814618110122736332763479455739608220065017212231112446493214875708854791007332474056445498968027862464629351141316846446920752302751362069207724007540412322403000420361195502050237537046595005427139081810964178198039007656699769366715170417939289118744414982797062450582565845678269932049060428646156889303943547903705458130082406792488686137030012142188104129031690231574418391094547029617865389842299206797543178524562993095950384566054425326008342985951099922876042161060153413075060207190732843176178276858505357317061822150794367342097684618252996879607087192771512250201794679877680337919413013796493305396298782626082932193270788704561037355656254751311153877909880006776960255512887778572642723202245334695529199574853232680136626277452664021838005150826799971146059486968389166044044650632364820046211526075509562989913139356029100206614207316931563042304723946468451446501759156763601382077517448462022209211150761818347142312869627280244822758650100950651239694523000718123483048876520972061303874494537206113769486160994885383289222253980173827379784257403017793959963661934173176353754264719096760814940066499906053156344749807425429442920692361797534148183759637570639567965488261832525232522227213013966936339536024584766725207078209197716262151192027778274470667431684246266748347742506787430059087261600315873234673606655857087663763443698168314111641566030570941493504412500050046967221101965727520292745953863284346820456057930957649162170983839509829683066087236799282314613603238897495283151029962573119854615129374956307286370898121907165418663556145544785991784864013036675771707067628425520903729681009037860058052747669490600039557759205848706156275616842585356201252670101453713040727002591589003622017841684211483564549715183361189505095962647939069156891004349861616994936300553438931160019658642364785957093348588983969525434549674219086332953885513293828758268523832787061535114344405733491207963768620330176317697081119666779821378880304575749994788184306660581453228667849397595281342464292049571179895304407072224129653397675314017057471499960000105214445245200402453551069527454938912060150876696808661447327730885145785374077582690255210517822929291616760803996149430102521277694803635138986086545881864315291929672819904609830161875236267794074769289035722430245038477241499993413568325983791661560299485117486958381847941783353729861704202575182238319147218593281906576109465185884284191699291742926681039452999208975743381091116469553092390518554650210947071887262022154729200626410854606786021419046015752593352139140000362168828068236450821347821352649772426946797306560487156883771377602803524409838080904254646169238232315648824617648782028981969296909849109387999455287995631982191944381571520708725321631393788448607686237822053022054253806007863092304769250964058548300833864814197252486015109137840747910123265355757282197134459371393885558881224450974478058515635689858808082794176856021656301106440358023537228099941107684940304527115322880180818069893252828497694032254885787498943263292522587537118415707418447265046022247075699082818164563085569002711229589634990555748091351858853372518199915088649874053068320821585757862223368308183265565998663722956813847573475340745245464437963189067657180134960363109345537614788904718801818071275022988445707871067372778164514115062086784494074095069629939916934607761046536623578596104616736435490096074642540438530492280554950937229270946374769277984667675238515286544269628833199133651930580660772920630068720726988058190233712136538751922617000005220797462789954881190212577014478770876318191843922050536367588781067471499198786241142889598998149427378710381758118367740203240852880743714536354053840998081081638835173152697991432621499451030130076256259194407889357589944020420460685423501649695165854740110298579088082480897537586808800715643799867601457445154525763132927468414849175848341258036566592417267754062208378053031744219452806221168450336300378658241234037205563686612401087610163014082995736765028501720259536599776949322234670999959340566853238086648639157358494948092056374125730678024161242550048220322698660246472213449790457400045218113083274120790184053976546227540176483450196303679255474114710312566272974480084990481728052993145701515914716371208560865212031462394316943410308337034252020470561325450045178783798924850569576955560120989490406019082504860150007107590680231186754783315085174891881995242848291837463878082197788965278686328510273205814686165915961171599450087542373931925465574394503766038852318939212862492292807287398659016905317518142104717800344070791501912244780793402110364747109289823069121367172522245140283456133776166796296159358139995183261028104037223757710631661121664334951504830313816088057389203055970624224117003937429752081321569400989284894808148727014880686061561538657595286742037251931158034265416181726001387536004530024882445183133018291326758426933181794870627660297756910272927834101810612370164015168862236473651003896776617417127352995689162684783156219333109821534455416147364028193096799147852058350943646488213869454450113253636647943864078373460903846498812618523546248488634699138323450662973160758918310887889213219633529282020018452451289703016272267171041394848664313436683837186232977813219244742394857542873969016152395400485359214840644907433531142285635532817483805335702580862197949656895034435254292514066435267284442025437355684276321782300807250882583372078064363342900583561736318337747992781851564678938219543531260340419379762778706770594374901900402247137954426695705475968822414842402703697741366142634727584048742618329373773573942170035639063988395639285123420621297867346689702655520588784034488818169030930975174646454794604861616656054041614771567619354601757934737312341918883293713813064152546349652846775886894162472523071413978750870968935479958554136295537265362189592535913900049052364542046809440789552278029013147224497284863622739431941852149406473969345731027711054637842059139222912358881385767017773082653016876415935017533054416381271388768325234831742104036407688067532020585496983013305562329892632273494935090229523919375369108475789958150198638901921299573104897315098119089283943639235159674746879508578299896057633680748033165071104338314161751269807319264445222372565714474269067990868603079648006377563379978492821546248187479343996492867777600305454816685999032459834337392993378133612624716984321704745180860359662160356437402068420367415117912595922661333431744025500300522099474867678890868601450417510540734740517517929071640171642314890650915994315826913402325283955996812984089367509200113447810384148292524877999585205073806165989573134070060750067728953149247955622248554595248533706354339710889296835193459470741465496011899935722365099474340256265818275677868791711863387811191602297376398791887991757734010354999085999954689286872045337100962055176894884569538278068823260600117033259233770347152853502214521358531474402285190715388850248643720180908138562291241824872640752483175353217610108823919563804413682296382022913211475642193019927906034717986000554433195703733329025741964293191468621253082313581953158333270103510403985515476526252920995290474332795898924313700092276971300903739892562016275332519503955259082397694181922956152605712054206308581854257500829609927864759391036475995975453041930847569403382087708407627154559389848270746103199491353409941618883698536325570543002247694566841957416296399414358811256871797865856828781935881224476332659438536071113041688698894265841166268383930529678735862275279018513430637098770617926032779941497081401201976337630938357646981983392749783937641079026331057903655328679879660471932115041903033344521331562139426370592667500078907008117876748569931682818193631781965762657324131862910309837381437466636700152826731130627093793918429538071978421832792503398859984867660033317402260718095443789693218459605623643794315002130648255593248357628043067079676151337957075093537071430720226196483433716001065160442117647449770579203316428095056280854844840808353769818888676458765992403510970792258105555331796047024732280766201622492438260477769248789075390796413999643735229070764735820869780128940667835188423339613041111274413640396924054808120911432970772073050055600843048065732327805022423274613491362002753349089286188538541889006312996704291607648410782371845528608634702409731974542289305028457852932621570175366367136195573907542612328565420336787882754782458133755723735019228093815966359498282691933117898473550987446003296900840411764608399276149954040660508055275979172690427075832581207423666496852475021218123706541724689551979299709201678654852630581711343588993693046528741964773607809234703918565685310699233079034366845752721944201999481398828908486771989075700602563997643856781054562906559516878564960492914016969763397279230118065852866266989340354129978308281932586035251614168046256581556580997528653574210164112597985333724751161970938047427064605946082350746482058595191991898364455105991217384604818426651210247773601225559751847505159730798703442308489676042566436421090600200006970730898743692033477566474003041598626774334380632243649123922067320844712658213716757640993292349343171958431607668447359050071680595290990069459183331589994301470956666330106644917925051964591778714867400264438267680581163793897020959603257694718757106456948643593316741232447542915546321719018890650566240283747546644459699738909461996527584079662208390090637271732630984335968599148317608220413891224602417533864017244093442891743206586750211119759687661195922245892103676686063460739007561978135614247122990454364049170607613050053509344042984185545906334840644334041763239633436593636012475804551453671417811388460573435382358115684302376163412969597382571325516706832958417262257008717892405027031829857748032276564150893995535965548789034477918345955372238631924826517030796907956312840008416219263922220739455964962805557184469500620027253872507164669365075678683086695914325081550025016304784275200828767283826796258753378666289677046862562102857783092171901034083597791890319985814066841035899686666609645027057958207254044534748885140698062764284261344421281346936876367352869723780837450848384990983211752383865949443751236590879427014171740708355284266487535194848739238389530667564900954247412433775524976962399237998730171094287255024836101762393669821333521627070953530907167524511706221158491172468455134161804840033103356634318789744582078364922443166687858369462852925966788906817086247217448698582055274043133384878781601806308847677691375062044774499196159443283813763216940296165083111373224043485161885386832257274010569850984041764119680491583431758302704310766923638708028444394198130090680938382613356520877264851993797757461198845891062302298526716925731373328956994660029782473930520446836630544777524432360003068884587375887443098749630288213117374831873944642692624215386737343968502980236428084970544999945711150271169267483547249003294790600497951352176549017666375513433343949057501963593296858478007082703308844141644191509065801119104054732356130954209561409526630650825159567648544744707716137742565739236330349336330383822191117469860791887145409104813931188360716450365749168610947432013638011955288295133504829523105458512902529239819184252390792013171653859397390411888613895418326859821360247124414047524903791675675664263495755955419758451023391841010372308188222681777474541709866888028946191983593977461635369477413461099238758951018573987162283859783116655243929369785623669939989972241148872780499440603948604055561113849687769464788422387353444646919497396381389199569046179067990219546259846065666241293393122664558715596645909021125335163543795619478344622300698405856741782141101507682412911356982746980072874805138401148542593772924234389119162506316283072112456923421195053442780309009519373392261293576143801626179911680824961837732832473688851285539077223056647063192886354815548609469025693686450568251606394371338036201967617647834548860618786065837633358329123157090708049035423438468490648856398354822204385861535179122608232356962017282283512993680462139197414520444704622187178935235687494238852648636838567518381922540634601267573427213982139608957086630823854202358123373183607200719581535372735227499880024331767623210366393214087081442164710688897986555889471138466895041567380031996366444619145036054854656765130739468108443890258107640465660008312519042071386415639845315266229681484839102687651404219559525662593307932757737362723029748585323901744467113440873735537705000506016939985524088210086177005627441056062271210833757294631144929648363695925999974406080307644179868862316731210288177940615034655861648069982617713326570597131619925717856275852552279876481377651784792678873019290590344681834668848444137398420531786145652536199741530043645203032593325472498709450696006642259346075455479355790141347896507095788057413864548529622281141865726072493017591135016152039388845982772077312581360147871569966279730941463663321108561954748652637675783988266966313821033469862205460569430511939533050666000294634308631518233179040904079542782882740626874800421543200287303501536195350736005206475806838973482956351334133214435678288973140197809872219045202524759196581527979746766465357178824979632263817346275109861202046697365448748392654372643047228849923751628489584122084608367517310771302591094490603031552565341304615238340231445924660387984584059163760320835668902533105457138363880998328163201694491865568528269678166145405220090406106685683755845954093503023417373207205714101070022718164555652200883998993979016397009470893276562633828559842315307519857875237910860766361521310968268991622130462358592064450137084669912958328077758583207439750639556805414761855519033862277539175565780139542905354538700066885229991716118798276608697584969012243565265050221040025516901244235751398756205972988531218404319203185389197356360958277051808477078616173803097377251217553081477244839830868441485182903431909497149338559440050886136934180645056504463040329460552278822818461946867786734101304800651111246030817760507449992171526468201407287380673106699451915037553242303134860182618909985922491800402002840754575621521590464010949275036729977986704442574459724044554338257326701604631860645859589042418339915080980130663200789027591945867449665026941628904375329162192395816019539268794347975664443456372448200248801296741485246036613477823493832382816964181973590087092091659803869056519503243015014496162071348551626001186490335042063435298021246800410832265247874065933458542505297064173789412995959548986509406461175045564197653789250599836714667458006521461575454234830535820778264535244272896328078254213364282939910081748354096009721208915812394867843032313213037536187259263860059754100243736574522398314639558933321834087647606773370229725990765645475773241315438891629150993183765174857659075227065677113352954936683584865845308772682431976178209483679737249165114652949160743695535969525469494682722763629747831768311783221209370804551231688693182278889513932693229200671644867943421962955527932817775107245194836771789451208170301844392241719653196982476922252558312945639331088301793324698354667489435821828702489117906018715325077277815074985379847208379660268148243500382383057644323301802442756613988229548487863497471311525153421711259653733965288508786445890198816272233129634355696842452856683606722826270127120044343429992293238465268524967622735539015072739109760899209388956742973065824762476378962994950643858850503745685352480760356803034103981473288272481703674567333402835448411097195881667987028138297096315522719507308368483170764402893280327280888799764955797730856723452968019322673623519775562994098302288510328697913022761317101257959985706031184490377460631637743275797394339250831850723830986243119238424880327319497829356037195080383704429199994245234893977031630327092803335329633291877909366269200034193240334138228437990805683377267478580068615494394017643987317791313137031307738713312963912270365883696695247607400048251319182758777042135336011330638009667318862485397484609892896884503136378782934927307736459513944654594194944266699405299179401024549338231281723035676776103610975728375204602636346140817878564563287508465958801308777769406010692526908027869999649713296438452412018548440264729689473887436212588659711337756598527443219750006373377749928621753215333585216604669883168973025286127514270465989356082077580095738253031508978165649928370923112723903454857145175037669522738395942870145244876521521301451823793721903018682578366021020821691512135356960487099699425039952177064435438416599913081147727453998095305024025161922117246232668993216530777801376208588874288524219409695781665126830020413325242677580101519415246218665157203541990949108467741631510462757001803203779411876001857892841719061910901084649058603007863422351243754662528564150402319929176242310026332847169756091523749546581089806071588452278637221985131840937711853368272880391708507909231334487720703666558592338256753903788160969762243432065122783397168659683042117209942180597400973076224642143070902566532078971695472581246037209622752851570905589192399672332602129872860606488490697269906673472172016712059847868724384601667998050823264963437580304585756560150846390947443958429531575618986890600696974814015389556348377703967071138810516512705426609065037459849526095063451977939853157077138811118787861447770259443620846924328172024610140049310413392281296632447013844013139640589134680030184828295407417262201504174303191340572752301140693854420163739221639177997123807524099528544517967565276870668512801638308510512395082299397280500052428818690474025908922351692063633991125611620328455946088986182533208068165218723748052441405664466596428399455465156779377921670433520274149110150669882838271572178387923275320649506268018373324457859128894719397565756649553212409932366690367784629901572309600394363357157901241833106873322132446593756610441664704723217398518701182155934321109957091080273241576645585060555580336657482691096019167372474077215238729350406454236871906903110217271624780058536628355021617287089795631379063388285531473098231444997703503687414929485375547169482927540082490087274763280252650670513815962632050609231979281365585029466865249351164766506943566394840665957571623574757580562097314222222870521173100392199929194801895136411369747685876917856001982135427389925808040957528186228820538070020516857753802722703515825050420682622618631774819035058502957235908214839559713282027600127556557549388070867830063601227446473761371540372482268691338577336441861465210313950283489579288203839954866339191649952920716246649265751344965138658535322564768258413800311469646823425897406551261988386169299192917166099469690289087033073824284410930041710077617872570607671339849923822363257262050753231372993251843047318821432244478526019635492120260115116921223889594820483309299981507833525148819941753422137859426022765367300852684608971509516058162647873765816541554011201800372896742138730643096420596468834349997055168882987566872028199449973504378998684154849355251367883048938569757718646202369842541911234961418811640279766975551307801103990587213942413845931136211015339486762118939553581439870406839198536776209038187013143482564257669194075329753019240867164825611484522469680282606998882622386824346296885158899462273367290216968872413250309734973194809039207471040391677008935388741619425598794431976955928839256127890221993364197125149021214775068824217163473912091320615223995865710653728896161419287077205838370747163969025443331050523947061712634276158713946052946133791942321038015340131824121809774854788493599985584346277821823702662125608548333471783340411933943933036313811190841195660311586977534069162136351892041951387332438294693992545409795268899323377383668327679787637237947074338276208097856963622220588621183882115214495019286540212657323069089715891571291718949000268501737517199634221093277992148259273655207787441409381283121690462721629051346764345015410087732438545368574479588891226164577429202486706450750762165296060482320815312404029926657166092403359396075575230231133535271542967950904150851943294655873646835745969270931641870483466472663773470288532497858647503265226105053290200733366542700529297587354982488632365574105822116605927456722996213911984084036155050664207082065900633561559472366979133254695499593384008320011955576596999983922069005704659492285910871741146813061032303932319349589041441932912477404279489372073933014335737911224611245102310550900296323175360480817536595625649808790289145559223092385749926480685724446763606887815386556042832497941222141751467208462437254263358209665780840506021351897419709673796451182552999768233333074211774491678943689466159571539212381637387373511083685209335457246730270825825775115597848998744188983961709463870851785919492800899773656206513624790183689913855456684794506410742270304789274643782758848161417967501866963641605235489362116693701139160883376797573483315257101586070950789644600887168772006711067609323349927935899392236771360679499497943467330741884228553257068405894103945381683319248509406806583659032590074752402668690054766116880682849621659197021450578609354613705454923194327322177196846816357806971353305074792085458425576851135337163224904167515579048660685628863073323670819660879072723646418793021995958076547531112694592011942254400591892098228640123113814343857041502811601881597347459628880331830103384508095861683412417837643960782854994281909867034351939541461354021042234188561095756572323031740681992463808430132119577944724988934714657065039562031634903437985948838746708317598322782683343607214741044957591038841897730853497476243469890973208626377221958455391121402640053406068181630410862183507325805871804779586495971087493661959343797182926370546440757814690183738964090242393097352802294631434337296275979188521656753597959885452348398485413847606957081572304331386723515286743950093069119676764918946786723486989376084056581901373368980108756971283114116844348820387409550645072957577603808673548523918652199042203501973580293397746932779089724684342342736266370755972554274841467255929614988616068507591978248886715916824930221497445191003518175750231162235239611777667575153076246113757008118364150982837556179905529134541729693821474488451167526277089152989597791138215682291761295730825922824108213520207550662756045176818083078971962105645666666880989067036362523526320316531997325445308028785689233858577559725058052238735022197552410925949495653686562545206931120382382748099816981829905985949429196739944825304468326977737299507755996814276500023454722575828845463409662675564306964816202394031267788135460706836436978011587809030911138336183074368980233485171952228953741087678521034253357133765278516047580323609205816335506714651207908459727688312569765355591855346384074438248514898484393858738725522218311892737838435642962879053324803634844612901941998392935961443778905085331065991102152971183199913706690581697966030001305418043880951576979585619741427322919302261650257158771606603767935591406574888411090175390502191239289428471873712695986905847132196552564142162449275343971389244151358541780228637013411934403034998137162352494604575701842049903413558973230681449670096421589156657188754382022959785087900091619816389405504537361709550608600509979649474465620112113620278245974126365845508337358196054518658649768243457534897037431153844462528471330355694202118963739172287263115807714960326956119630764244639204414058914683458608482012191145689536052249609117996982106572757578447136188845982734887446350050014765749716426654476573248630581502239869210871903401812351978188928620598350865423813609539678860616340773548203601994748074487498523292479608195461296536996516753249266758312337487217925724065012136225946928952258391243082117095614474069680908834925759564516805551848755768737050754302792968377661873955019353658115359483664578511662533012123306216476981348732309810195161653475957694127011809550087173649343844193352002722468201493659469614387342433308812703737326912249072413562641913420900677685819282854218265929633544379426169235632582639760211157629611952468153484252155443045846096539296350695605092762257409029898159545913213724869349599220442522848877193170414611664556119538246814673143295580713328443730758437854292787331599078885884317673952529878856264447944939857611467138097794331610537593325080662427219727085286098559653477118047295119711009623169650440572693375981710228901447896260548950695894685353991104327189472258462999324520855128647704022372683844638720861198983654175818668945057979028259471541884312404992638260981609979785154296915643435119608006659399819970710655149758326087553388449711300444190174175647003938344741288273991192700650068353021183833751042058502383072786400088323854284222102297533696627697972200174141304138790276962066372525360105265170704693340617806868882964940803925178161680309218720159824229990452499131179765103682159318951116580343293493846513392903264613298901578874750554825686337178092942310406367291981064820024303417741890111524040286793036678253232375839883449613622484763425990076241968274762832322184705871877020164401696055278744275087087391188654432459973074065523930858296376536021081227935784827120771866909080414331033920525242632146399439850704674491533034637036563579405264733797032167760510790078999167720836658889598877697711287230397180526176677817302263791857301423892176656005567710553492432443106211343342053179200830622079325168274059468555073390320493115161031305841985062539013342888687056092024753822125922874617357204191881858363048571912607087441892148806441500088929420436734874398927788397129550724136035311996839466136564233141802595973713949352549559417003131599967172644830304914279939276974033487904800922847291880287224961712145950214468799097347328179743080746237862053388312478185062697644968796409745004643052547209384888230364848939392873448927888615362736036018753679323563226710961376837860844738787403457989545108656709357706805264376427798505821321240615071056045712133736864940337936363665383943007054930132422219062910200991560659176843371558603267315708310955136482515870551988055393398824142142392764352996692314862893898020425690019651596498095184598511536396182196592267617550493102881498559391694360589281556407619762694546084433185294435493910521076907449483963965622537089351108651762941396629150176092844717324292686408707855830531117608753319138404753429227988839078947006177934215327067878855454719770870089848708644653786791238566444923168036928150070146749676775600230192405408317021324838317705495578685991533708138229685773550630631002366491900527372865292693355535836527385429103046509221632343559396368643218344800091074469305743418908036684647357356456609201568880559827434351076745349895417840208890721424137408114311665089181186118626231808283974803571340920273367699894433355186233810135204715416861846452231361363206429346417512643596972280305329037272518493711073098161032222246589226603470737327911921007704812448067603375034117166314165649034372642310820708171327891243244800070059089612951063909968722847986737261854492991208542811386690697549532696009311002603966635264468031469447592441651279284177933801906679811559053599699560227288972873731359802155077104810081747954293952679038083367120103569241745993372564197463307769673774104442543792246399518286730582688528807451078311703572600400911084436937166516813828689747400802423388744353642457352647235054341601751160114417331709655614625642198349314779181080000950993518574062623809323228447517174439390905011219080872661543178693384528622023619065682788334288884559565161951214187509316732079245304142260040761517749384288708436922606135910404416477497641854575198377706759708930512693424621055433164566043680701387544563832384631659755859343428733230388229899760740806686474658154377391562051174435316217518321201554551246391571003502432427651236453128801814854581028111828253388384993334258942277154860426578188244116450366583365720833597935907041176612228713957465869300922875945366476822929713950605460156331242896570294471222287503902535053791903448715927862736216130226952669626356912772994598967819797446227712553383544978742855236453535264046106109921063582145046892092873909402091872093548456327369854029499800591439651139898477924609927098962875360080735122529545746690231700631337300675329427084758362009327302446768392848078899104014569661799635862882069459189736045215686392710838678549248608495830664621755175075795378028111888302084783419784782736351419601103628489734599436954509061246212050779511376069759513409300299190454481095309464028242978500890630058297803287790278933375406617092024191226377966041962300336950520260695347388742071910571632721880684497104721830726527431704666448888828768878119206731909148167043013082009429673191153302761215692300694738950205459967515981104482308356499466789940037249144251503418439295910078224971152786103677332084334812049121832884292848074750652012038025668483400861271877996282205318943041723946229717221959836488497900615930794064720594968396589986181825248551441630979987220515427101689897670245440244809263470246818984458454615403870017445777186197908982531199058305704230700134767454877664288531836081483533962991709463674227362893228921931719056926871469452393684763452049878256443281708445436338552917244157405762097903190290969569991527904354171249689515550764901964157836249719716202871660089867879253210212006821066123523351970482086394985782388647438409469281072182012328355584249704613678091102959217904584472156086859164074815073337351709849441918448878942604241823298795673907514362484342505262346127332229006623277925180008585826164212294607829688171302035672310903146971118611650879495032252993010893567736022033890740521792053213779714893310081426339387525513709925757161270068769489331596220567098993280581659197004352997375540477716415910386748901372010549569062998910842443322990274632102921227333160817225499100315734372571962746296553739009999862140210203975854575480894721825117759548853228321677341695688761405888998800575580974740326304095368946295980655628158668193118259291866625206233886851841029128252722126653040809702930750540441927394378596711530874884609183499000454778543388517437449977048152027898923777602174477716914282413743061739778073399608869122087817206246601281794468259361820754631073947370893462626224759446979250524293282185678622392130636360529399533075952870945027465400257061008583508373145880580648246931016832745042152218639378029459798300811405468060992674060656272429228356717992596273509151132473573052721646360664605250526458935903244552770388072416133815212640259552233210518672078981872207707344811789988808170866769500777690936574498760266006312071588922593173088203133353650191366198530332954919352378911388996632319413816246280535299519634998280767000856506496311017336723427925886991401673972451908900075665915402599553245437975295289802718839985339255344198030796872319447937574542177176331163966754831112037016593094123304890705334805457213764490218727139447541386819844259606851257421221624171413312151689445032216077603924304982086789637911626792283791505795949987580605549472575381255137708904438417089908770848122080025405362927999821334438362163723639288397682048400831748121312987027847103642543973681811755220152488108257424731251087853727568689874638536925188170270060554781637056876475895143934630063286139905870433500272109611115039916547530254547069337114032668046239764406691164836216211073998210031260384397230280207397866237950334180760668135432168974586281588419233817325284596844321928948475384068806990272624751869497818620176906027457453595436672175841586094348974265513277939814510434272577032223619987225543385276622395752121990362378410055945079448676296162877603534300464237250900022287753802087137439026031225933828179951191242889303735313692759056463195537480188624151230484086812081441277015580709540086128821768788461593080033028925877113334724509903434896458817141156771010896191594311781192875689626729966589821073641417620029033860376711232553503478729313979647859620114321863934794060630146205907774603905925433193796592761962156923466006454890185808430732697126848226066467487539620482310141783324495024743892478175843620644192973103190610979004197210673159884171949564075173062038353174185014255662610294269134129677974638329447228304617596955529907695103292367472846768318494263364733769663502928033826916750901526121342332653707035155877148394820510985902973549598166150592477760157277158047317783659733461095787307548115857615645173174969920017262717270308462362651902628575102241306545343056643296968465293771157341833107279934366044458863286315088839016639509029490186450075009148551391587062950181892105568041425898869535478255870123822462348674517721901638637987153348995618570067944423973288157283710624786776137342553844619954310238564330683913233190210724447186377250675599609090724997321967526498631750214745477254981555911125280487926921396222543290834346882318296873168247243703263374953197424987891086575277070223768898869148233778704941685712301879968912351848594026884719198250676759289869304173942139539101032708150959770762633192855400254315230362247313101822109251746412428996568417887911267447074184154740949515153069213037741209476403705699895191189317253102728536671135645757945488887961266742580403229240698020706760658744576556317162207743874402493654449951353676125870903555828709333580322995190589682274596606187982848693486834855039810122497723372243156352900087328134098957648587749528553276542489543774050536861404189889483876278515323979499506347726224613762242170673392464436521826183720571127065116005699424999307311364824166271283427602027762130200896063358650191999322845685362095525902102867135479026034751623992746047052625205747846407385651629427237435503333697817277331116005025296112710015082144251971617887507688154823660362306351787016592510229829253865216893454966622609036652225516349829914804146779862942353184475511393893436664690385949237294583042959728265755314371644955191624756971285827665507847909477098912235837954719946983646618235829483413930577586417017390477920932582408589956794286485528910446516851065454743219216855379097627925000549433316152311453509037235876238670103976461970945665114014002558653845812596593090152196792278672307283007555155389679806675415956059160199515600128655078049730994819497161341778569139286612532920899144981976649514930476118640787374824936521839752558915026406397187071795023709047001410599887297001721565140360362034187394465776054322652933474507629129080885244255417020860830225272775451605320203197448878273920745172977095107052934025163582141037702572714295035391438901708970210620470905379659357747672435222088743958125442046200739373683529076677149814920610351327063056781648011343478400817627276418180909779967844500841982782623386293699808020928006326539046774498077696839456553770568591379068388740460178711659954693756443718051371966037254393703831278885078771966712465412847704950926439128750222264888278490513210098809646014698355169646011042130509752764502537310775224570666264796039731642546537722160984127624035897602366582343095271345642357123279601783436634886769383980600119417404098164371184215839907219729959414605256369656017092106948769226601495257883475093774142237004348804592973177817278807780362748632833066436474588861882142489791715211471749898552173985305917526739570994911803620325162949792818988176650582368531581812195209716389002305251912539858020122478313624751737725907075880020959475919168756782967641293106466840983877573181003079853933379514900583880780713723050734236303628843017321225132732342448801238350662246748087178668903695884835996839225936161825326355908983345005162760769910212219497308434420251689113617279982828034508273705327289791825017176545405324011637342871595209392052275736497650276865992951879451534362858220266117582053644534868876919206105575828825403360605978589395957681494339985252793648789724747832282814787237816876137711066944811035052859668729141225263738990449288014862653395750522545305200730794085525043448326389522176620342124600701887819328940137602756837510514166257705734329732750333195275622685016450840783888654396679122310832516612943764625545190066415419508235784600850630005301941801848213400134077732962510859838878195249007292514274599764922278922244015510146330592398339699731034347776010522638220284358850774483224497987367503668053472150944225928304739633738070937198798719909774439992592954787541249347781153836140566058146320680105145841059072476114847892425787218925952548937763812300974303325681004397936460955327164206994774098570798034622057173358145737062212272418005803738798959254902408714065758040115316528967108183917979122411261642925219795049708180111970740533955414456988843463050849918875177488544441205611923728226600068702828407263222276506179505325574700889805949803006812120487913309068324497422536160742797860181489201704927284676842720136289992513848387416764572960035032486962699107395527226810630792504735447506251622027807285722505655259344994933644541358468457336429337221299402100950429758284640649048101401799057185764089987112480696630744795641001602158462697954135759180011515065558759749869753968399550563345780601152619099896729688588662969551424285938523009776652510033666454180488882961091402169290629212501536600334585785752406384411663654836665985985578777730858373692352040671208126940810612336828897538328903407357717271270592820849070639620428255433618436840172840469069346093045226808888648599492691585289401806045877673383580466482803329003460064335511323122244008394111309942421932252489609760251770454356803634044383437745183032604050277496478180059195558081569023870262418904250294407820421022640398959812868910408403433277057440137113383087477532854330236294018327657482654690903613098918453185306816586240172128007737929551733120964176533868335077010016452890148063167009277354783080668775718586748628011037297152527309664794655620164887527857254007839722408312580692818046428082786123507419340980893794873329563506354666108265673152236123456187625850543117523935298626223256620895152665837838811834561351363364691829704077712169534886933725180448068133336816111463794463205440771874524002971552071958957692047486070295719755702531244621515078806589794055008906046654657786703534418982625942027641799531389331602513860190882734070259369811988224327243559241668411873895709190393117152689185730681025825148283858858411547846299150045641047385080948807687248674954649343911738046810935232713911450743957262346661584697013473597914720425046787495261571803493409032130973836384614302514201116879309971354036507796912995340519860159337292394334276871621293848740771356107116653215207475577017729096262802097276308641864258386419955815554749807034471100835704102059254502310081408064432282385331317715202282484787195410964210543744824288736123364925378124545005245006290469906506711106785690477608259011717990860526054241435360668970670417895902322022850089310473744114056749214501798770794385519669558622176826980056952354911358272094012758132207442683071515970345273533374226539107371987462787651089967528000649693684939294814528421851416217416028865329966187944827894347095787534351176481961930957989426666170177910176937807663891742610482895276374565479601627614430966106420854388628978710519709766638204908751021075550936851602322962005044286933666130549825809694429834999936914740821190419968445975381432562663127207049372673832692068161982613158834978769407865811716515984529835179863507542351152422466726065966216919166096156696409536733151080452385363142877340564047690478004679938769915870009313792804949330835365158411896073007104454695310030799213530946485316554659868013749203378879429139535407318164880603263870018137724323767982413365698367516395281772675854905794017667644955726732524554698039500055253330529617166213766789290393831805476306870730751680314872971640606174791284505900822923994431101885584080097042332169715628665568128483571742218537616748354668504821878008790145658733852087512536135861979497200998581785627954870081059934187160328489290879109586688961601755814361571159175533543388685707867157036850796358722203191482491332873392450046833617609725025300648896483316191004225939933061610130853604805237448152916073637132801908517175704469109101159956368495167006602743944612652685307545305039567103590087095697332025016085446083808789048294455152187231357308330262330596306005744775040547863815504336590854318277135073817745397824838379508985950116958792708811463024679805747002679874782911126697020423371089824947072378299082581513564450368780533997025902167378613316834157705041336968384297261994304658127924813389233457097647844622451096583575820632201522609412713001745517881410638671592820593281401490478785295060272182115872316086835096853427084655769685621020973276584596888331261935804980842662052892222742415209409086425372928916708497425012049086857577551343860326703877734202256783761096313189121561233152387660314865042754925218894746838078392374959696492191835343448342205231958739940995919917847483676784721017135051045218553157400795091859360862568213177479189730428982423206864252366498907305528540512887320886110565166325434432264966063737108000752097372004437487592371183543742802163208579171739330596487543350735539707190938716460521150096214638518819487371668236762669812218668516651888980812095032778250923237796474409789556064891881428665661764765297584119555724168125615271648081421042166747690438862410963777289961696927263596923101480034261084241482037911822494130940987922442194259701265257560968677964212105251178056481249440891326734566112361413141814835745232452570576969628066882406423819066611465068090682127205076056120216679631390876239793035307963515736940680090078853432424773353563722921221013837748721916197855416824164992258847480902490810279160822223931762380881824580277248469446630212831649983557466758161647110946823931978894133153582522689396815445542673102118118103829195505706442844216203608120717837273997561340664776529145485458448448862400334749246688780534128287234618834103931848815546411005987198887156939201334358089418709022492223254743675072801342475147931261352236571407713420262092176857951039922351752500933164660419493272007124080094915252125674722636324590347400218117447003517652524294455090328977825460455742297549556832593842335053286208187348366604624890052511718098645090504569423262872207631155715750507665547759824457017641381876559351004070392333274793140382684485879347637579637089010460306622974293587004441902319603679661092207393326498869014592773768785540922628359079051202147470401223429493161297615778242733259463078867264005279289499701963282963402465372840737329744368561460557206396782470423259921402142300943077398668815867727926091398159683995504565840025151116948161341389663757792947929948584937032832740113598237754146179667837983068021517718130416890151290756152485760441665865275154067390770066819524822763887583225449668324856699542684137235830002845473838357113930072420387838787219771866829867204684586849214238680590135615939334053638168079033102705947257692348880061655858509198078042700370563606922316391779819974499840688991654497049743614588288675342864926544198244656401301827344618913798080649815118525139307893891765058227418153750151856155774442732348785761911363944550793815664073603559417333151883190464977748477479649249678498095159496582911754381934725009681188742115759776592837384792825413045774174680865727972192456244816062096955233760711520115921589367105198113530666739538677206308866720354459828920052245358167139647761176124109894278962137768198305832498703707450706824386500234858525320741353018325176876118821848013931370870641351849574794653675509049470208500940471807461356041095512537173248346860484617355321091854466442405132126200656732424454582385154125601851632605511815315947961252732448082685504770887976949493690575440166419747603126717978433061124754718891675832368466019380246055231986535575165784968553969206327508328431519937384240172189202707069481710792255975556610814802850651031957081177259650153132805474462583389587334161136818727729822076513241866707384009384159033819130590981055735853239855986671287700557600329656404515319214817962179522052038974505085599191749827991675763165321726256016128349778419740858051692436112159819492590489684985890608031384233446124559394101439489868875795662558096391117770864093090679176441075496916239011234840852579421054710707387450406543466819971304843618388013811109316517419102602616321142567929160974676746972468138768072742002146237710397431229308303570182819727357755387576742110290396848551059203033462379355804458879303318130150551060479992697687048633453984438295026897682113397013877204204940389106147450158674568680040069078199113089921890460199749448184966228131213445535526349191656078334700691616037449244996632824197882435243183270016826565978432014365407139410802609648711453079104153510989684399264045564324802519918545027101118076344597876516205638244983826932921262074797780821556805724715827340277075249382553883087909480030190924540501213636763194894963700912435446449333057011352775713415519736318660889708175977471147441302349493840625814587344877534349654752562070445213669872981856233710248154974013047986871735139124399153117399851208808929045145477720658091403512689534830340845098067429596146641152898540617489343080445491397260338535452829109699549012962832036619546003833438660196315451832596544161984727586294065129366249437726315469457842014582370137932703685001603162409763364171278084477833361974475851396783489066652468024194067723027784531982632547523287302177199893209094850982571752531047653047368888751887704545199567975516281056657064328234618812887055932048449720642104237288742714353707161911669476993467260053164444993683748591015429913205755885853206046018836381552111195561670658060976764141504488313587427255191941943451389477756488089416725989540147475657360729635945164003289706667763075437342618315277833027804583397810475529062943205389670254349042855768659122272519251381972475919958305905103649502888383865013040702150947216524272384841612395817332048032534244372559287868516788153871017119007373934693976632381121255714840769504208748297278896482984815846060838562019978582104196929156187741619874464062913611664872640611034495976209901962346059938617440973914344376153001141253800435457607572650785862688633595272140401388538069392120061128645868177442697809692747087234493006853064124450346986253759505616015936507227619399740693220929794389957822016534481684036724033652949072825923738008462293616841937324003210879138602406764184500278888518311567999698329854380133520810383738360769043989214681035520493236203794862635177849918009627952407075263230062196717386247701579363016318581805513133894413121047596020733035442957656301817468978298158854659596022729248964163447867837047505560243495961425688699009677884807696973487234429696291603303659750478775864772319952752536676277701582646630984386037417644153604043723387248775103822558112483299398253714154541542119951883466257841794210787728612676853558035011872422066995419335683765504153783896165887556108474835161826365234359273287045318591341358739011631062692493960361264557275100048008436155487928204195753431903692268775814463498777233105570904700320741363290329269070499514529512655362924190721435219248406225123722252622549406571326219874933747572444213206571161469558361065944669141748173670280095509768304377387818494089635623647787081829384593685052462731412146953878579259807352199701059219026000991946538465985921283942164993727494994145350161769061067368969262596375794453026664928234227668270942899930721785690550518274023486694648949542748906297380516393303943459476003882677590253445833075894207899957722884507187985173265279013700130828133896413517495077335206880889967333306115023263645878584375875700391161451109110654857099903589999687826907784898692275789007109150491962293768180730375190787154588930972823723494542122064887470126725764235006398572491199676760543908472369250245341783944705933283314296748465897041508568310303329122788317395821548412673864726635203992089522320825889993823497114170298718053515372225136917417247265724320673983327798387609387900791909397931752267527142273672283666034791145138142817111696711401952123924257126374748356727225042358126103562392371666831556102314689733314033533712722576042147286385642548786067242290553520101880231743355649335218854607099556457900007274226828530573781249451602474010193288287593218838210151027202217122339206406827892421194903810041948440131496892350771336191048131190478743416952366974713374274141545736783364022844190503070479929434271810595743484848221673536489782921416227956450315875946520205229609441735717911678203892630247485651894431326016800812497769495496845103511264747835255233644781362290927786272292594368012389000323620002634216615436339330142729917564830070760894559998534639136362209902501245683517607533277532775324313754800137842644699816416389095940074759850907841194197316190577217420548911847763651151381278048617145825391521831616472041913888841850912160067123245221443542202713958388358680525442020068110935211814890471097129949837296812438847271668400959659486829576199126022726292786168384036247778911030059951832692142292263715081810270034921284513158199407706905100989154453173629145671612516029624244743387357269055224524802729645004028625071347190032583559388872044794827119574817237584803024859148932809455500687160261135783644890087767067562407391135394448888123626488859928977795094995975756085237618852006116975646985937753517043034901128004947497556030769049448776320444987186914150707301711802218109423808038841561650678061598803880178923834726401105963292696464813315022500266958770518713333200914601506307073332367358979405372332053051300719864300470728405507163112891296462397584344716792179838677523378520611130507855259330992591187798270564706489542844261526063523717769506263424901764720555055902407630980832616151960765529354770091455196785052481067155284567660910114374332135904791301979610281406162498927749674319485481467062272060485740792291355835846754909909930704933025110189061338661846234446764227553970398124317294525921332400408215230777887113224015844526727965019454601847290252679205529911316344915990713267707917914851635076281516724178213044139948232170920090672884094903495202255155932125326604427102741264733605522002918535539855029138080977290666879481860428587228832575797407485038757610073212990877476134394830822491253992668687282789086776393573393457337243029966629047927544111129446132130731731457209887100891460277802594912894935700337453221071547837956356040439071051984576814581906930735162436642371258745998531689400658050777612601614055279355070250013658526586594824140510019185704519096449638694873844160099221523157914925961503421870961364396458626463985984592239089839802990084719150817701875257062694884834601985053790947205823022383746167570460849291305426144837743709248764607317691356935622884846627276503041394855411949866115356990491176704266331603374370598897714094107702844107464334059484147623656951520388429107098809955020065652049270330344438989023305604015962402184698518155651835171436260054965385204943978469860015444094470219080297499743687332976777120734530362012669280027204839196664616267902506049158415139359366396841720788210045373550984534846441050540815488006421521433439493348303438680039687450730000428434940195792861599315200583320628502041854260205734312831118811459469394982463168816595875297607029513835656238411306924525844413236882339999065110328834187885951225698464570672643831545206500508141026600633565345874082118451038960537197062258126602541096783914553276726218514701998107339442011154142258802704661349546852807648879807163715135399548982528675059436462116378845457213014605620845584307007111963634083742969604460748485394425663816312708887226527984344314169453243998312411488349816614115788295979693033941709118268923049926048101986078973578710220056374859552768218376329724447953735373528244225026266320696765631401746024935170279722089987038559388199090251989489188922364235378197604614112058950555180981472595563092020226578342789189618339457683288047852946850500793901777193430518591429553280273847013508456165487633008893578450940777865943928920138389043878370365313381744611971281394126958097715124193855130970842207187859166758515001418460807547286051381721115655656560894218811838365836130160054378070326095509291872113102532989407704054426984860995653375787387985024843626577395413490285413353768253859860068911818561061733923029295462631985455302612210502503526186560972938639053072800192858114406765352138627123659626950690220770296219288387848453970078526391467675227314592471205874926745148208496051086935054681381747548211283716340508666224701383826942508769382693914794882584869779552976048554003974572672511815437432530705755768680638738731973246736736984051967358418362585366781489768003408814037168044144180459323764484720169854559729465667342185877315506606709241212053332630540036774553395687067454952946386988144340843614397401945256399744477835952713591931157232370471872977076923336463391787072033026807151826049553818226943455460745018616558415384775926471656816136413726379467620439538741387595573085250617888484992139769063102029548701067063600740542767367938897765275026618041361981201467753647607771746855694726782097158773252128353653144545670808651066335709750010851058657827935743313415878030663294330843749885507603479955497449145059295229026062716157057898680403027400339667452588628421590828978961044173585002018784220999713973612294987679704148332951289338432536617738976741019334263144022210781979328852781505935139336294831574515194199040789580821444642898682185675162457695685049885811663900389076855800587417051145250878084919589780086595583754754730609683525876170235330442535028040803573995168931634989009915513162480849151848467492332988085418287519693560731234626362690597578129603777479432783470281093410533092340255140347595784621825450624128879998833381411029377602727238618145201407502878123973562631621653611980079657116700528101690680648841542490668323553565369699412229903089353152797554507756742134440985940113919298581959772201181191863253402018319152245058342847132894353318414768929609254889643106517875464233688266867951471245750532838093716517207725023843342763206732445220304697909344598830454276678777613042698257087072315252316646063826404071807481712995009116730398629027433811740687419080972186932613444990859096900241155514575546847760765838324464987443993619254155045535489553890033601805889798101175858686277602466189471623759610585736741932844429105518201758035225665002580501654747559898172420782178948835846282780068618146711063632506734749887244214808988869538432878282914862037942928167218660883796662635964088678031293542805974556571062203506322159856594007605812011350401411486916289559313729273713272144717670483761757092731494514570134341554618917504953866876913298756570772228260427042379377995803908009391986080521034669213664687207626699281152132425463630462162732903352636892180691673968784325393222615869861750629985294208286402059584730051801119532087160378961541187661214393773568298828914795448578385985087512239420071831339398663982650808977990959994321448849413467941261668064690519745839194717144658785540294081727391085809138027967524775345303378125041619175201029152481184897211032035252280457452653531820322551137785507968947314418242362017328985683698217773595210274601789142806268324372138658913807249311107712533614160562889528878163550130747685578775880704865422047489055600989075638428519415678484558627229553880250935300005343871563220107853098900562120270455649348659293937255913226106524330983302035902320161641569262844715408406483408900273897614713997827939142804203568402880993937479013324592232011545427726666013144070843302103056299421663253966242824291135203894309472458226395448836922277501236056933340738053785176015522359742263324095208762833147439021758813405861897123302739790586461444281666768007215721412142783158812075269877493985010632186626524516724276268941760840388425703465078293033231099365353914749398486789704527891753227196666274343420884634294927482543708743859271506652213798701839995574095619240668559705634932644361968426146923621532160087520900783228817721937341413987139426980709570079463947988466995326929326563329833313462642945025953098767598383857728412384627151262906537119610365518521409493378641096239820701108264644470591929329458612272907688439030437052101869759439981320310964597901086234385793833608874401150131207983780802832720489786974829112516142773777528016331969812436475325756037067416463024097621676949669592560194972782817471946621719482820149317311548086958589055002802573565586374159088648412044909460910789597970239811794139185294583861193445754036362319163052505677080956760232440350329941731101570744788774913880395774452017142572520454150125920575867713707224693672398375996775993567503298520636075410861823646439740384136648159081198671712125319901236136962079183266702300051151096207060572434174236473262978529653812607862208932362655835182150526430757955004348993359566938994867895214270392521355083869724295288329086705084314203668344890526166600968811148131766087467363810391254921960835513019107514370330847751329442054625393931683225232787004488711223302569502667737523084584085886589996549907447465782590276628897258260920824970161994702267747628100070313575017264485336200705099726221845486111844605687165986015319566714435007459109725550874407303870813713806466001307820085697011853496498619318861597503914849468288391359091180446726412261514649586080898214456199587503920922541561400949589700281067662467625067973429912626841417734551779849976713077466386019418098966324757707801378338694752372118536746328774381886603410781052073069609450524932214537020811217785183446442123312246423255591592566538932263946616680872384807657081504767220148369710166412450794072026065878111668546085857260149504700508916431445425950142197738350692048224916965984690211363047000826801875608444448974224259950086621865525195137352036672258267036324536272456911815673557301456493175559512158397846923516634148102583261603927450675413739709777783368975238091495434618081957318542838256118903068982510057813175476702985202080456953244867467440298334378181176604341456048024410917147087232403400860165961379911536833897489139910949772696267191277774337151714855751808682409641818026263715946610152841601198924978143559669807534140463822613559085784241048018419394258560239968526467885453492772560144139125164608634006826626288611486428348431434976487153931396721470546721960916669942657434153833049051233073378716781433534866345255705545081363516188734873556319957245930484244863687818277463913228704928477330103262104960683014050210047228970780540774433779973477778350631757139564702628836761420754094550203560002896552977843970038697815470563559143599189656650347969691521532304719653253393671735433885293455767944746146616976166150805232270258104515112000862435767070806771383621356016334893594014460425253376774690638015641609410359924238612765824664499202227904036542732159191986555540348005431357166168377215546387656468326865669048650719510532871575670551464671919997900092542338717836771489621757093027644837881563131137306855485522161834763076640735473096755081487145365144882369018830266586448694491236686846079145032461056411959152554585653788250448665333856243591040780830950782362224085515336597347855265029519841233433137409098112971238869284260917109041667928594743583536504737540332504195406194021977288748154259225838344656665820319310866603229085273371752254232134478647968110448840440898573932810659519845173808543632917082834766241356843271560571814765525975905938004871696460827829071211853675615308629878907456047789232903636482961885598983306762699339727182063426144844377992726474554910939274219004723051374806386156240480931426446236932367893734925278024519302124961911207659180864555606703935637958221362667393958021449852297682674657410482357284248447361763586073342324559643199998650291669872338984817691636046972193093178503043420921583854681553055258261635258022578330519805794228577886716707346928669368126188560592820275848803825376655456252673743868915614069092550342955114414064893491290214316920485250865104249904357450931183776539483082337689908477118456052616940426878801706600844502458200474281593576203387749727406516050327089429252390096122518119937366954335200550959866917036588696895502789038761849492430295474930379072336030118996332099815450185745993306199498761528715946212988726585979316399055749960813091953850320227857120002095429076672636381545525149917415482362713756815702326636243305827280763433942545910501779659388191597457906455139363812327118253984473522300811131686910709200617844654956995385803185946142800688319182674075890896140124016598716077507306465687790166036697494149536765252987697089071511630376297317678777211574708318406328312947441482878006771960747680742362773679386490682879331559430231420685565188816251369459383943328315222007691973473538194996391924182090087990946382798161807240555437708723132695007420412189454894110136403292673199699599841899886606432689687971821618994738392759818435786389236449843668073661599562913076234088242202381667414635369802373116351017561886721208871576829962686587080168878491694975253034960225126186225357382948447003453509389880516339513491582499333056562984670798901337625714912321875321619814331964450286727293576761528653157278496652596579233611811173195121298518731498747432813850687527952877563372879386652503151015924724976417938977058408588781914258477160553646013397419765949157963058669474892332905822448080171227033548717830713872211261852828144595359240825379435029133865740667329983852086191534788739085543083968140901718834832757279526042483629826236855763719727749208239883558129034822415267757227742741973501879625567895310894862312869610628242709538159992810995462001687424876596709206508188941384408516980826189161375223165909386613868799010727745491244855538477579521743890359107620398433487942708115717225221383994218225529203045182414018240823503789708278042963230472519190712246114529065086621817782225443801192783075454039805655758598082124756196669598469979486206956977947976483976101761832696687159647592952244024819796315146510533436857549160115967456130326002045285966265014687773704781666433997323159623765307028453952779228170950362126994763448484302313621163027511939929078517960100249022742650031998487362636956617343218376184636836663740055653342234448041424128264846739463838804362667429520663515377856160499518007723259305751875477752826361827742372007944152434896740486979365800604950104705946793230602117967689376486668090072142499340431430420649843172303613556433256259082088337191437323185783520347675263401220300099359860744634092849734456221170006704733139982203057922613007174833157098817848509661280164643718848731990077121811985778625241764110027395424800888042770638403618630580974412935443052593877669164742365160498049478986592567120084279785587145404207741486915702723807822867790846073259215058778013221605191062799803062721968125632957215001128826584860784342922772006414897419406228258718884855112646280669364761538946092029636076322046233600787944220009836628560762600325068888386217549515242165644544182360107900375391722796591725637452198752222724978598702758854873589544280332493636939741342289227036940186617911776375407278768303971569449758693325533941243471615690513457391972234176506550398517859652016903668167657039646592755714257385581800970117283681044258954751197693828548614542244448217539327018004332566590306214331084262498933927502780952111784703287137995411515956357824783779214974229885699621875693048334281752020315155436552432414571247214303595536779919660619200998549909203913704182802259481768178021290786705983704594132129608408298116832497079450075504897722680159799662771038627210056963067754343441777684665052919413781219284633168170634785088462139195545101933933343275737014901359323812506663778719578082518075724173844824208402806457432057414486243313174401669610016790758714245449876142106715740934111025547409135650308234181647211355110569817737556760989260547214776097587820720748142067292435890880388491259658081069284777005770134692301558673693145108372996581577598958629796870081218854917743516991433828116566560668189815482430938763502593995257243679606747779754678410747220200579871139121343720788014124164027165891568344958549872468019500823468758936870443840590031014374502340268974329618273238132708319409612056035115103906560264208807036276092453305074332228702206034815892419435465985217839432252477536494302219309981587460000841395750276916048732764321787746472794672848019921694458869281619209603867319466358428064545729496784300293769590859854972845217670557285379369540110796805986052501124328750699872300758470231045963902461616539916033846958820317841965342699525425862034813739241570732830971714966966551777284638121151692607299055942315630518883641970804998679392071094804626085665054829923477370069669717136907314540656984482989470286034678884887389094558863147729272846088254403557652824434119158925589749765376683393779017467519904678409185699561314296652067412931155138039855989012982783091100514808477522421664623473442733749394993013416239021610113145979463986134102076794091402704412976900120414618016588023812979491642569430740186535115975141626865506476101501283250185230898924563978026885236227219300143434518556073257788007463082647419090659910432882469947000601542905883192096910005822290981385354089322096177471301546244561184346265473870489407893814747262962903959056006432635007043510591828117416587390405999300808141080375204692140772309237928936440376873930715602149413270404891945007863897412577793362756974089557590201408021017274041667435093201133040754172573507229023601184846003364677557080926796437369497240695659245528058019147674851717424530343159157812574242359981975817780987111449233381255291800092463415166582584363877222152521606370388022935296589469311829601405820579989223871309300997055818274281230308805512410433622754155803505906098293257220813510806870469240789788074794059509300701547275767503577271601288898118812133685130976713408624170457856795015624232381493991493095504154602257241418756233981209852941450376377911677802985292214411205721247505418873248723169980128634309556847548149832412451016482718109130022394112176502559674052876157409305507530019589115871581526397724134505899624588223366907192283758050094085785670987968249492155511707449983834043353225947103923386907842833644285815400980416459901186620422471902787269333105630597493772119984266480649949779858671301995211500159685817577608308333398599932661599946585963139648710814365347900665727498508935835185812183415241682107124411930146175103786268039163144559019385886023339435746771887521942992425601714833794660434129298832758884596763768190380560780479398188880302183888368942815929319184410426312639908218745686748728031692032137819204323533510400164746628616369263549421739625066464199097470108743226083137432369520485978060282450834069472336297295982046231226811449682365177809918857935767006132655393546804713312365784072220831743123197333010721239482093916106712323167824368630135380084948005709303508016646170984090524034476885908104997619525242463445487399333165338883235071857725532883582130986889478546680288891899060281495547439123908916823622529402918283899995890802765468744627488823783690431581593228930699917174507330806379523705968872077376577181785311010262050821679074499803565493325580602356131943022833182756370143243932034358255723806858953202801308433318806696521944796542171100438507074957786518525454825979046314099976040872361444139263360338431771368132776972508439488962394650067408952758239254850696480701056734532186621188425126783262059335104716464011727228449704401092289767248215300446178453555578960455366127216360454464870544697456403109667423518802835358210979060187716890808170881999963600142752548100179440839176665053801422789556945320528416994942307538540893491442008470774346801776767170846085155632962070912856466511081619743425908605404050940854513723938277167827197987712566178688212260081716200377750398791539793575330811912645724083856628340405829662354628876500184245312027452985997732191652190328181965842016638341888135024551127068702203397293596268141830066712994630358726970508816513819710058407249464811292369880753514010445744635299911610998839116940927266617819757380909758262733160465853432184521992584922401669944872719375679659334279007041383529621657297844074597340489491073341081625080913432037807979174186049921038271967221526543268136512759309495677294993579914889363089707823797144755020780140637865000889501924265273963375692467354867361917465207857983839741341834343792410143562085831769181462646266205623597868077798869801862767584649139962659410579933713907405026075231023512193237993096092927757427579686236248712603319082526600170900264022800695678823687905649381782495281517623209204606690147089602262978774579835211676479175073742587328688428412413606633505690707245007024713719720420999205546668288617234481585523131107213003666164837585823058288052424242460805714442232628277223364550917005923209076226014162990471265649131451561706033057453995102955202988216190119994761857841878779768558521573981676461446448654636881861068872685163116406436580268924180787058269851978480779124919128234502709477423264804868545159543712887547608976374683910241656458322351021285696830783679220068179355213927093370150712306848707408456985148997199259062015504738782884896133710546928437373982766677663991326050359645058848782428087110635630206935411798544848856037129155743096957932388717686311785601274066795091285889224366395179042336346032912710177652246021307567248027451881081830024554740572917466963193427451441045887414128236545961054466712161027526914095343754093742935872757396311470940682832399882783092932619186808428624880995165042661993568957859432151327279087352147356507089630870571778237118629653251828345356648192698926691367713897518505438328423362535684696962513061589089037570575907445905295316486651157764519394834912917440431899150241773441674474640227982219903650770179139424441128875917669367955955516944711007250196937705249294339272823682086884750816336979786916562669535829144775624510460476337881250095156009884968070454228766032561744690963129322026633935231571762985881043500430798861016558500878535486495888564865926453685717592829884257959026706595927635838018843039037513965835298137494183191421181423589857673694313205642351340504349168142894893928596473095133168877988129269283725003126033475226213611885811616103071262209284907348945750924452606984019206370085974499543764401442209519876380588063784844187780841637845852379748495994192385360737942156516727644100148330358656465723621970615859280016964867920102782521722640774979446952267643029342998253838666858218809240183392153645356656170000661110501974408828937647318495950774742477104060479209135572080753661411153227335981604728026282760374059087903008092924889963115634024135218361632189179679834896177220328323334331289302923149067048624670880396165298454479744584878651657631309326490472660492590847776168587890822309626747421575417109151931138077875359997356106291668507426724289753422505432302110668583668350884899449679178512352453062433146678867437325483343403218239424749554840799609041131656981859390284521712604386261955001658599553823863614644313270812475448205721303478055729499602397690074442829580410875533901044069763590465322506350659806834702780794272602487596353556385356409383095909456837310745731135000317448737442537435276506070445234397300901151908450089759925552748745648124222965461782725917685124945305574809781797003009726724801777054650245177935228637404070895881093858932232776031060049798809838988462947729315340104807747703530590118071409437721282724039742393739288756788017779893283453459072866823453186585186511652693865940534060271071678151857926654914497014467589377037012493636169826181178704018690397391636348579423986350414839107028081409388116964090728060783828792776234222896410192808217881083960879834145493373009686111754398206318853006043651054947147369440944925410103351847544637248722625096911807191665487898045552538272009486242378348739395474611626210213861285742655992381037485578293495813113839900538656455832913478572249532265999048339660035615002130789755169339292100422897439902740159579622087020643862480173847316484975581552572944194102343114033746604249518607732381372588752433701148136995812578036324437045912557546676522546431020836063067839682701210635725591498642160031453813365711756249436789408074399323651638212389406396725818997107173069582022921886073941344626313063679059724034615105671191939372606295105189713750868761098622228010368230203365043099950896140067284753048845245595366013908850885171504832781642395520824593077401400064205184378142278615359754907213194731494549973258328341486416651817112371340128813693980990511188684587614507250573473919385868871335816518680388017802531391628929540327055100395957913170388739446775331870766647503803091054144756627246860497819739124492259365473384237930975026949290720641164880037531879001976208835546000517183971291190365589958562966856512067933789607943862872909814712906207236645037714453770182430579935608679165063169061398529388149843165680523231330230748963021021972385670636408045381029310969708382025242075930552856911965867975754269183211916908483126394647602823550623698489660792178388641145007268371054590769117746015115210748012724612413096037681850038750131298189593542729294667661191086881760814109190316189455643282359726573483478368175553740444649083349301755849780200590216084185671706960973585465601824939979631419886746234573944963029829851497021423522909309179203917087284374091464170965021185057628608659142791224738445651991547392608764914304670119539212457596604962472185449597835759522632956943071545689184359094382410532073816290540624657734730316615838360022744210848844463905351028819141656168417413262285049405863149976408229501944577255736103165540199493924749354973237076435462355417838439644909834919629909653196949160086693534082821549041960052729601360844906572542250138166344655535856216848526660388044748303180621303211693718088650990649240466018282879588425616575147001034195864119982816114916723361254592767426939686619087358575631014440413590522073659132060440688121905339967932018363970618477489803783849924218959350463136522503139917513574947951394370417523616121398936391043354277198097265501532213998537402816034640320036026913826778461534767930776681697477639073870804771106816428405161648726478619453578698176885100999604294306685672754241340214539361095812406008102601471301681777734322639151234221603773641742523760595081847960449512404614589991229287553473023810794635567569503750897660989778671055093433861383661142403205472795865331329593647273185021687831835806327836674619173237654037141053041933615536293928557090254576389948669879457927032088531194710821799178626706350806999344627244268178957701312821693225719074012485120383128171607516295257241155754536991007777804439585905376489014552993832379671691922816380777705956398916802253303342566560440773975125063209334387600615973348840859271553175967453292325652623324198780047125519246661831292198796523066451599947582511688613014952361692737166727948505517171550556265756920508583337159540518879600667446143189095878703936296610289778462012159233471108888257990613923911144954035036410170216941850961585135512790541984810136784515514537845589561034353609515863689735311546506938376758114997734009989886081139658750924530250121160662697476927591290375304430699496017625165169612900451197507977189750247259114468431085080358309332770326509788821616130207881119381776791921797596129004560634790098166466384697426035241343422883828311718959163116044350710005764783885246037626096862641706122728586245096533547982138070988877741536974745991720789258172137879551658684336000013088816309260514534819570244204008851307720553788845286448081063911780608713475731729967897640233214252859387843096391144607779145576955181174472449290830539252030894980495037216858528481278600080248730718056824386915983060823413352116829458266874025992784124996469630963992952520806509924546107113924864149284527701755061086860540570400930229085467202007831746560182826813995054765909804514865055620386892349781982779366121122281140116381929992622456836026208120531788755251027312665094685328900529113257324594360407617505691018449433649576726707949011294428020492991041021569251939088766395011055864343605949095912492305995387405890544360355257033120547510380806854103376193364293879267958033869663736919361256462651173740368048744453926621433992746854082709214654750286247080579515068826622612902365666436404861017128299237575933214925102205701831924149983831427675635878708827221045394874240822498577211352321495466642516643560297492068589958650855204519129321194969258097752256882771929866261708689785140502414764115083146829429194304023144758322159149768802570134949453109575898131572910322672500712387944125395978277111501450651864810555498998136026236198521792566298587847162184621318007687744809618353770182861776132090604154864653761079306368590807694120130478631000160436443142690262264470422484213309744534573151774599784998338623820723073441486638073916388746977304454478306256008391241490988473302416678610237709327635558973730020587463896104579926455235077896857313477044692058473255877586050218766929869668494387491401740455883004191845697300569961869429825154353571452423404402348665737133804953192549090276320311682199860182770897301503423748901557125963477941947356708615167637711581515592671844738807808019647842250671038204461520294036879307834231518960756586376563008474675391312290294108504101815480168705377169450118661588441507923674017216149045657513851925592675761913934053273748662897340627609451027234893726570304380762913632379808438974387908033990937641384882750083144105499951631895626486216101261483794004363914811445082714014425296379845332200317506755466208176187085637544251572314114292505271051990819374906282896717752860047773619021912049972983347000328861228756540467922679231071937731966073489835829387596295650528406880645537042631436323542601221213444374811983300058703305871932093844926952987055320096400721787030952145650990392512741896938028570796785925701269019085497041240943808068712333544516507012052541373169569001830772172869076385133641168420592282998174016976177237860470323300067643988390518279326286108679403165477925821697848536775610825627223193376225386331211297137904406531466619723062328934903277371283400134177668569239969020646477932118726540433636172097998670766090998355933336906024688624351274320304215844808753784373484645248034194749736745247397421907039277487928017082835213516751872165207152691971288010016672116712338324584077957079046710309930949969300542072000464879837491786941264262492681166892161736232442658567994013044863371253025835023203589085053306355758499713398496615758430228693026468927821388788856980958139736369643237205254828541115187996980720257382753745324732423728371298473639357589271699901904599696304248563122353851095147269992170580909258437085626784716400572326602576842730072726393845302098455130684837482492545143365381273760714607673983181979090299950862195659712060729723218654085857756028078659857260940037798758026905927598336314879999932274704889780356416194098086433267253189461498386573043053399935251608877031233718114104067471741588984112579659879461528695058518761753611317937250614824806526199410867159743851483449443096016200779665157185004916962378693993618837578798810904427758799012861207410325396909337460461632842831996265052856623964145818405247556167906202388434775510089731262762905687292759090453639225825377059031339216301615076145024125917917894686556725371015907219887247595712187800383105435684376370777393173672874905247150966834088272696528886805771978426079353808399291989010559562082065969809412579641976768804403792532590999139535784917564665612958931737682296575492511980035678980941726378912668589988569400798594970025369914974485605996787017813365408824518209407396317847425358432793334432389074505874389423383395648680464725747367086340702667264696218598864687571190892137142056744172639317484706219534001341913695666892367119478317448796364890347345309780779596019999467554537486607352937609811743608680956549939142376530393980535138906124698572495698140615423307769722824762723625149694957142875120507438947286858475710055766673031623515176987919114238372394258851247769150976420088304039593457971044348612099476029065858182082500354644053606039452701272815329549594004889770853864373454992801208629654020847554855268144957321275624245289599523850375807010038533716968159343642713562308993678242534356676155208909091799888590595494412821557496027046971341728605770779815892310293723551640091311515992339085502608736256377400707712010487417409706919586255203534925890850912140467476768391054633854304869999889928116965250125360894513278884267234602762501646784279634624634081341368585633697611159537851815155659941750457404858731088325431509754053761558487899835279960274661537959602671892564172619857171050459803228114875537833295769721248489862724057427551926961959998666356346720311771029146565440837237821988636298896896800591911734903716643573311166278152268296705593567886601975865741185506579427342406581362084695053005052570533424064829079839109414783607013198478985897834567334889990994136506476973220739400091480995078452033371083061677053811435008000479563550897778306833059038374456658684477127141722316029730793828627122950806957843505054107297051931209219423756315334609061774919712779980316324624382805793432623522035002569699800535779790213232560305520243800584365531325106959617146917678213720044108861698694586070297429382967173080869251369320748299942860217648935258051804919083247019886733573804969560352311469810211203589680007960652827609745884024726313632119522918131091176640397973758622352865284691377185276293610050083212087962142082075574506942412570824449926428148164592391769681014659397059903736059298538953783169343223982333686841835161396072198182729658234219900450268736785226440171063606046226461601333470924992236713369579177944148007369697534014787704685049919399964423224904768865999677074056665547742963726100900943853308718732720376070014614540411485022947846940032974568125850911732695404193085929998598225506587679494751132582234003958762003467961312036372975411984758918281573438870737362211578309941703678660273390822249052594743909436169207970077291376657019381986637188575366084199815190864973619422008219090116391582197247093715521496416134181787985184017211351164639604986946516155161338520946132874877990776776016297075055377648490888556971702958053865212998667576136675803615212827614021372084999026216123335660631656116674460520282243386732785563857588191086443321616136078835981358528835962273443182682720301257322191018393975909425477287153337981448345894716793342631098976783112326978868614691611898159247076714112159114816252633446600950304559590596876615664807907771216074485686722613573831756409316472775090320553274676596007322759614542526791701773625255514681502788129559407843424867440950164278093314425101780924709277145136918839756129646956878657143614547196553562017254533077254368969513132261764584601601038321449635291783887460648705813224827494778590262263791155468371150592981680196207506388304778389187008525418487301250334122744485474930846262986860211624155868225927373343569577747601903414982438233474072767923743245589242429526571020724519401200832112625551922506618486630550933317484158110237474254315980940968140798850003865641135397586179343348799119468120514140438717660851571424612291795652812770951755088848461424557204173734034439536684746436899761124118653263549752508322104046896880592776485237113722547491832762081368039624678985780307558270339255362399916164106257017508075447326972804362699437138470020364680320155367391757991908763500150535893566749420684170243382015088415842159522177170483221434353609305665334283453556275127878975101004559066915294857666191373474929987430905721218016754104424277161562125885206705807254234115370827843306797960292176032412942048813278377326025872600985391797638184146230083574343583819599242413126143833593188460706948138287006526101346798429389597335883134374064914381552872835417719910838903582254887586711394588362239738002563374854379507574153681576043160168099278710109015517846811827713015744455450921709710342766403848700400582603693746168797764442218304026203846980091595248476111057809115091679270339152121227005240593945382812905456646278725659704856561522056294364795678101500464771758924780418477176236850712835411656325400072284268633987150822211044173332390678781990918113452932845577180402897345867957665431948344991306058466602204331831297672206518009791767848025521052643848992917767410623610630096111892964851952910164137204449661912864657471969773376966957791942796210986188378817835742027211843666731656076097541877803550015389121861066183059156430301567524120708036650108120559493232172195386367494290618559610177227440736368798799518271844694961256683939105987703920992335069348137058171580537413930349970404573676511692363180372021292435433782778733650003472095401000311320551374060905480824905541762800935118938821936818655950791663755156478927662406090177893793220752808185783690145646309555060656390497631777357452188202706735756126875664751250856563269539712060335118059140193406560076088191752164049461855242213808085997562855750034564315760623070766165663021584334086301450806474491490174646419568781325708431620603881261625447341776731511211435825216744095057856534080951858023783378764134473018254408596235871571904152709259071256479792186116363089826625079214793196718018732841770198229253112243301561086675201429143265881331039997448372367059688017428980733530033950828441590142169968328975004707867168585570284904118384165438763981552498627194948335435921321922281083798839648640794104489931782725525521776590845722732512667522259193349155249591570189830118667002756506477379686637932604994287276360482744129425374931521111973858074804892188962535110162511416634245256215021877633885464577577194908466252755072773207000830857638383667135969653200962835357614519523419279490136189880320394901150478496052163283042759704663255495458156092197097174714443119559839439495266912790508956931066247599193261529891225252142085815085731675086653127715455809037596845749667421655738080481708216272241398461922344009337869621568944880512022268968499899340262023764947054315290320317144499503840576260938276546425982461451625937084140262170282812773422385494104612977680778850892805509799839328896874845653800548515216767338284438098917575383097483458637655622699965060548810298367869101808944960022688286244762270625726669957587959952257435797170141088317069387352573148397568969545452387098628912537602682632721158554346443796664970195560773341825593285539951634749004026947036728660031139283487134671021854223829301127146836690693794401257792429984103884951266099093309281594609823636955408238980379062577203276498576304732686900517777684679545838928982055980609545419538464990467229815633019715922140203133821721982861511152626041239697416634326580686887646535169098107102025590592193383931747424560422836903680333455948775202832057031612425975088066878376242810193761149309372362865033248938167027345858354304177765090466540015724019018307087029172202453111172506396293550438042914364168505205204678033718967870646309788841357614664279426842165079529995455639423658219038396054088530573212790074316660378234958956880349840323900636907868227276750091558111771955945044931278965885334972922274905050009609936739729899409954688567832881488090713458112667298531675494514407627039900170185539938807538346735377244765967402981715653203642513523159854620568464686484825064354050732109209446304150109704486865443361500506351461511312281621860273075464590126783918777847478024800350873767404629307447165894051632172016915073016800639322325470032346550563235120050269880345877058937502008179945580480323497183216513352363972606339709113386643791525365271055957075154250021390507993083914232230100499052170846740079054921491610459154083476282718122995678626891805021981689271154673912099728522821720271952868755470259813385101310371891955856876675645101242994095798995316563765487395016330127691007874103441950407798533685128189895268455997140259853859739696734161111526979212924160689819417101366548994070204469162180714388206751121859267795767274097405234577516714683195091311705790202169005425324819063916278166122026885571894084438603778539152446276698017239084083814252524264438080630464056194731189788638612953560973282504032956467369363327204045894629468849126719602762576008110832454830675513467342635978888793099550747154051481553311490609038280957021176757499026075648131315319332548666439309228908047061568463208935924355074895280558517270589231545295132430285759949337503486770970831305116872876581834136838142754359506488594495242720065954574836856234192098535014827893638423384871278931704052367964893248455492719720576315935219605417130901886330288282098201046730554878630224850962508746931784938758312221897190679560320342194724479265454022965310859858610372027923940524335590840342207197836611644836827063439240885309717743298050449792402878930615986331881497328858398698071785955838281185357515000984931565881143388013328177080681071963909762335462789109256225242879252154289868120465436183695342903477420840923941429015990211918597601942222599382944363823634675378842962673555588614381482177295946672938328726661727674880401680733050255887998907245284269709768508811587464899224139972620533749771415971660938992857711142780040677379046550981240570423035100040228884986696108928039355693727247274088466016817281901944593423949231193128676624378387983774486626084775407502262552036961263307865372887499212979693403544894440797452377219374796988800180811549933160490213052511716472259753983038426225114108689956049354034854276688568518466709229851103164475475195608301375366441422816706528774579792017980280938741233293912202937107378458329831185197533311862727576491562958087844096196042622608623702423041262433774566322819013854898643267923068157268661958329455665150420800272044401477034276154639330185404795842204704199902415016224781331999701756276715177576282144816570505017411734362341049552306547697906738526201911793559899879355941286228788453877437855803820778915276491864932120831449884780426959180838486931739624711755006766531732780497858680452329157755803778961312945699888712860206666064250278324899683924939646921204354813809430906856001477829273517372350056967550045527842500715049546213832552566374662835145114988563082486997419688954835129909679821072176533486726178367403495271753518049647585979753523000274707092022215272916263238573463798193888762400252335151722470664113401976086354043211000538412249276684758852577697903294799395749180908110993155679560696354877138827057474648640908219401047469313062569143824037776684564398681203417298240075880632653056889456387163650748471020646743434163717675513780754785571744711627700422896845511968795720546307551392369269500202881164255502231547134581256795390994262924014923633979885600774818846476554781804708534025478457024144668281418627765213281402316294726387996706072602490479099308470623672254775724399042478602758492990445130952781210220335060050713374003527669854987153564907389276170110097351925418505522704577279127419450389912846588688417393418557505363993809375537378850405783751123655756192587398917304402418962310132138159458103442809293635089654300167513740680028142498682391524551038278727347606966748978079424212827508544827952319192650063099384834060671177692470695695592442601952463823510949534179701709688619084633368916373382904279045601001546923173879369007925759631957498084605307473612291648368346332986928236508557283459688559538887738847709275210676675602161024283797449291962710990777074038792560019140230823915532238350681586686915059333303781461873825680809560487035184551498847110871846362977977292191487750120579422272835814353297095846695290194058598965653832172516792158003912971848558560762867822259136975387416842305230002429757944922122582568683815173683003292871753163330975195517669347373085484066749685074251179437381708183201416149402899711034705451290788199239725702376202413213007277271084656319734805436067535514646946405379797170413806606671649008494209407344572454760130808178381994338861488103411098364675542190836553506751305484542397132899139784604090356637751213735554756513271846205298520261282106523224895964310404236534537277983397147750667138403257844894824727836009841233439390774812319208292335164514140897354759655407265318572638006337547227263384480384525876535116419330907409225309603039142019662985480811432667904128184781375198927699820982329807325908695606089842180546040432946301613261133351231086809850001879431648589458450101791893773741935543148084941553776817695407333273807269459129005112513692896728338524092095862612463387469508349906114857917906776126305138817346195100954558753881336373333928681419353814905589240777017677484418298563557471176300718573906136689677586035832947612592793761015014580472480285270625307024884611633478825841063837726361659715594836798263959106223680516531788700744000567323498510021927639373480464065152412220498554838289445686823033927602672741832102867550425362909334402532428478282435661178659162939573902012008183733605632721325949992571292781972810353804064290420511660766219328788034569129590722913168722695996680718554353129715283300570453436172153016063266771192219560465567356421428486317594362235329451967726368765605562432445119110364215059432568163252755104535406128307807722172649134738412171526731030685450337154645505553392721425491684002064224448318537162338141948790601932219848956378061232358249434210363963130061367653172498498685552583915059495542575674187062479594825809315421915454917921448964592798724543620477184305517270541016029892349838340033326403948777735628148821004688685296699743554904310515968604960722836133513774849741388925465871463129348800193417332290060130765905702638350673719039488968720822273133958958418846909215520393998011090407259877744766198754619589507720566641283965005169762826559436369268482147626994257640686152392548338371253691539662584672534602126295543467668742140495232031437516183344358888326238378626886382376666498281639379547592668639764401810979482532210556732870859437915150356096222273046171331575686582334836035993977881746758441367467999654866620310019857083489089191333712087268171990351861151251223705651009231573358390005191121236177271244407751799706367760317721285978202802111786183631166610985097546984190216863062361231843086148960028297024545955439742405617133876252236134015341608090138368467102281213910550103852065551809312688860067310458043859678149580997149038347741200575619998362399510818094911403274093934087560847652210824112636737596624671926260327319134647532729475927816284660684100519378123176691722676689738210267254273121597250883615999219902076616641840266246440305796155783417071801327200119863447527561690528109165222051671507497392147720186482213560485150190885926001053615281706513651038454009516329198333363783848692027258082180744332780337678496930788218287507302981358208266935524122005820302023126841099752767749708627547828994125338790504728988916115259453413277887485683912203406098630065925422452630321097042744505775972938585899376595302254664937352115370337606975118161905516711519388016135826349067272349001616817499674464187874489264087488577462606740367873532805185507226852430488619725749656122608394157389329032674860310458383067012611878170633345333566813746652819556366025704954092941231368344971668307105926013618259455014689678408523962568932688409058776152604780216992948433331201441213797565697285983902911040109319992293237706505875025239099077014988196094295986892183814257076328071485969994525618649474777247934219831397143876563965763134405098191819709406180710832795351098423261636728767785827227785261488514160346635805495673337588467039268230724183724630887635272380164572087661679074378044057311192338201429112844496935790315876309135865528056422158366075114761469851050636605687171497268151551927596719533834305015296478560466537525588830809011323463939904166977513187617035816798951610503682389018254202111148155622846966867803532297671104297613624838003677810387308778348023074705819947450120718201045948901373849612391750881632789663967186772926759914047797680119795567833407472170461542188648876083015209191453623912812500800966665872110358164448148803190022258680333447960365644154015060013470361191367810283041632242897350083475822379966219813719885514112594891362103196561807301974005652149852080195368198222761683753028165364076259681146051851488410812683919179198092692034417047692628239603592816621182366203787219262121740629827024832982593772483181776451868716079340760404434955865504666435488450280002896012047280565985043597099256938942149253911299150350991484959173964897682049381543381212010693332494336183913885510744172544536031644983514928837837740430614700574315710166693805662785019599250663819074428936802408215637121707562278663353260484836036740288923457162248791445118865996371362410735196380112902564513504687147733704435817939914804797837760039886140147073456735062100782051152147006006301821561660970559992669155109020301512056634543521247239173369716755792381375609099825660904439033675744393053572685567495506759160919687480237465233422536520127170324551787535267905039008254036977581001863571093021386291190902109331403017409327262039739609730111546615251640094052832908113071167451735200351551997243945017200908940117915611685177574650476539663995413469524044819082589458628766231358606576747171944547638215015963629091101873800953412021528636360175771041328862939387770898807327202656993184970317337333648425466119271594230789548553552712999748490474151425616675079732609272273230670501307010410272458257278587998187134185332402109716285839372401699952438982718442061436869803767439721102921736576319806838679843857635849028700003343344723780363869755030914292982016822218073844022499934451644176915966806982640493518568424029876362755306541177880800460385129810392167635922732854211035656706036663750676111578474470820242225888145734961745792262875873880705644542033228896359274725408912141532301665661597368947469350707173803585294285109433219078883047370845426966876732321777778364551121321464988835425902126545241515774215307952639715406822563795452719697970885305269929143491667467428417840275865972328325870516739179242808784938346811718254429267652271556476610192517334812890074160344776448361631182789639741500090240781569669061967733771182366674551691250467388909459438236500519578303594105206449945396161870250817213825347040234465562479781255556302778961682471053801987811323928366004769507289375646483959415948692029022202132986325241409394041799607701710754238834471119602391855488072117184451976054508752244317219203469408131787601192242665113725894308744331998278522756840531024089406771487751166205921926934400941196699550659623535550798801052427290345508162873187907074414866751683246488774960940745965710609470272443222984999563622860170330893797031310586675691586000834480717115120579953012348968004452761870447371938060225400035772331563489923999081892510510150158457744417870147996261768547344600283819248387657753166983646627976419682782991429639843818194216482479017720751760821262500208500800941542766321952651959115695476851301401104255846724670360581242051822867248228921475198029682687764899066641908075369796657476584776294631967857298481954925437548215277175427703185041355318692894918622841646785529573594441522251637169493834920811652968854861213538701413880024192185062516251336946719743769943108416816587935690405257210257487048666645694176677173255308627125967438466413089145421743973582722140967885393486393016694896983193630925043867419450119672331588901535745460800909086702251148240747698416604374371446004470982294605057456721929658881973227446223883213817910616427096046417857455636152334505227890154374321810535247055785464028271622509482583187088137622426435226780641462551016224312730399330677247739529112340086049292961232747699532763825626251367631905792723347474991362332092999759506620262811706181949082780300889378721933393463868568202052553389879488054454254286271744876207304767849618324656964051727879756479175766787087429504326301356019860170919460772390959131368890990948951247137072158202462511715284007691383302735107913625566415666113915229851019771994948343560850901944551514826416054312437034307753178403540907756822610448381747644653152689396847393434380696945494986081407935802210264612796544323621014153080064988143496672362318135793506038508696824549109107837873619915780926178007953248201375306965014971402980741536020202489153670518818971471308087263121023930509649641559395244448242583138741713616441736049677963171278169368962101122171156746567815450406366000431925085299598596503184208297878237229761274653925518645827115836759730175968176162546113286252697345445114576812905168992095314292998414268264787321825424455927274969913425541467708247669770886798235408696216773696137025134744406016955325964513317435804135889509881644814029694852997216373469432227237932076315887971124771200785006077283990250371903469692922825248863623908142504389291812883765136558725675853068181521507628474351369270513728245700825430523698028185058315819407704092883787072631045979203983983529920946876260088557437143176461156200451269161827733013875050527675536821715005635464176076016415606898614858315911509191384801221489642812713701883768329817618022831031320190108817275074393608216682445780084575394241188453655920704566082250502040354582747730426189114739954700916558804859028442516602356827097727094031352588731826896660179259770949956353352963912033167401043213751048335441313382811179634814374957009779054884082094841015869132214048771981949981529246201168445584659876080963560258993213335276570905519698424009060367257205864080067470614569369975774664851898300376690871736911180471183626466929081361826738237578529724908324300641299025484568373531879164564936350621560263194515009655725021918419929062474811490963644081842692272309194167985456580912712386338428606687015717200721178140849218366270722299854192590572123358197018518521982809402924319226454956694926958655010285885572819369031109230902777310308857921154660771320867032109085907595508914095456208904759492699669161862099693079666984222620941277889739375683189538268870235568125758585310168823838881773336636381757780350368762361553291937089960438481561698036157822539508773845422027459841690795399261593639161748451582926993960019363088895924705660691365101198457073499332545419139943776881596734846015365916669003859921317924757923106175294429177053639365107814179532816307574348723670497019627767300564372245734228086603968728007015200738685035317120660198414322945780505725947452538902419733413575819306524768231756379737361432583144561600009591576675623398107642477320793614452319885446754942570561161025557864646599400636434622733948682269914533465714959499827092161505961516932586136363339317732921535677850627026705711337214351552497480045199018632225250387139482373506202618852914317386270957173297130330964216093806690349984610944491408323113752816134978750246367728373043334302890807721791433381511109176948341713892055180484346772149601826605293618652560185105320156319635510254356179245708919677705011078647576364969626373516627221671294163992591439302808618466784916592543108346593464011681478350294433279089465585416592789753075164459423072544359053936592632973143319520231210568775002821553023119361400101782999227170993655639136769387487870206148837372675647740928958775506010827259052074422930372570008976971581118688646176712805681812709612492269080502271819347830142526604454283055991356719701131600791399072646831633679814627228739178022743031782254631251683008005709647127510548452518228405710114237927507724261109920313854866704921461078579049105774401672354937713945692368752946756061551235056398860485610917524654702172300799716834114179485964774434006519158543622753752796271520963435641484089933407763973188183528651623580267941420019733556098805440167794149753024680935242857531437357683353268378099550874171555424667729228484501810348155379259408633874284817363219539907528223946706510375887542101009387137755099534667962220664339024317276931291053357333104576471215750878328652003685171382796572876113752575699445145990526179523104978283763484089590735493401144655399496156662229636699781525599674150892643464202441409678595346511627563416929108451962583923620141840494668667874591486088323292582799810636378724712275415578543030860098543362386453250489910628562295651149823146891588857826014593649615093019233066681341325401996980797814346499872888837804314057325222362685862839234224830174637910309730613255602962917375401249242721403647684011248175636795800174006627861594212571409578356656093235832326566078152877816747888976364040321683349855408013733842157244392587829344707909405463090107186990441892997079453390683467510762878195517946671502529527550120216072255674677139020567185549840558024335777623169512462130034053821065352532021659680615535423724754095278682128299432033566772227769622268254702722545858992618572813768481593342199725864526219814860859262025859115000939525204018183655981868062443478490020879094670790707955356066920057134789428494651442131277559447891250270237786438211407755337410453391266309525148493140107575935612477156757744612635623691241272202824561283268029680760839890296640641704176877825626974932850205278168617430524947104271412953813117266252231656458716594708156178645770505396506115242279480509797883865625195642570399427760386811082544870483438909017003183784759674610807232273066409453874880392239437819358019816920377300024418403787941042407001309304245016652413623866305310604758426033272880797620637834024841762766834835042807915528212200034665333652620660945814114738058259622465700485806151308251114130543821693008136099452664936358897426493591428514646253553384766790866353980305984882839307918235240144837695600519791918238920080427636150550463890766688355150307796458031626819210275934425456929651011599088060548401744923024178865328471119341136827145130130871202719833447766818752440929006810212677096897178310970988055757123352214201953653327654245484685506802193024656493307163798108408066641802229473502072271842320724572670886282447991023807869794984575864995455116348019997087824177882278542232478195836292799375006716326644398788619819727187970181174850241795369469647645132416853576468893093018565084350848472231021430291195912962081033466966388755979376256572160224443844538243392320448538722075084696689003302841675230225120212366519217994462981296988344788992953639584165638476901572044059778621570673083455282178281876046964288429792155408780494116731566357095685762765917701437943827079006461188293045654609420889464976192737731149097441166924557589406723162700373249220056387161759329151451385652906683995614365878612791223366106395330721385683461399999842229345482399666536188574118366697353267504473260119130309809421434041799784649020661802233996938284494940857063529815655992334190714525472732715168060380874284968448501048311436688499401552281605710468406959334706897061792696054346561477409482334477642719448320139402687931734145407919900201923220887682410006598250760123184099597560745346024549992395312318724763175362435498939423070678669001013705918740486785887545738149973262697556924650452233391369060826618497398037562071492705639125992615706641682339230458731573280960314425491255341498065862481749244213408796408515002495337973398577673345236533003520685484830269946659858891519576032403315032065291953475841406507213494541239579483953564080025933308454427407947431066935401746217634534979310677182621602044162424571929911217294874883426462861432316163100325822812974398879537804771943300927331496942082893285970008650313369513018433282400577194187172875496461538753217709619168741167076113479892195038570054960554698963870995892986048728773013361134657935523090937038733113470507029601177566807813999624930852695736127359447991294194053840450799246116518197460959396080058622829006900968020479299943903741084877414305488926729123930605798605548095600254913515889469843427484926866544873156136678152748735033704595789455107981033815452215249461718784223840557664275056980300278768647193035103705312344010345030209406511212187531322977210413280681658684575038722533789383390447952662512409506993866842613164594309599982635180957702271432844963634538990850180264137912228707156059456739354561860755136149592787036371170358219214554422514948041084869275213772346525159595358664290320158571915927924380824434688063980530845110854675822626285710260146625672479099339257394739992726899467582699845389238387904524649772100583386495184829483745812778944711162462841104854309092889629755357376669075456871568850278342156160510895846178046701442552107842659865857670399849690779266651303740124609770032325025691728054792005738651505035899322442190634710074347518662249746101740449169830358773773324167967977675999302498919733712322746375248306053422991955071628208737321597396052067908418664114366278283980796850015577521877244969318276184094448178037262935814731672366535668573605916554373574112640827038922767797437322196825957298719899256833587198980840823829352622114184987632922827349800245326930890158567491921234664818129710954041678136635805252791312998826614365391164722692551077819544653822265376884886997747495964070731230205515335493835984910064625764779776506968613553528313517373844193970261675551464874816095449011024870871212191465039131143751435164783886846831275189053462234845129351883840388040881104562770023676437498307271216336928966192857679823070045551581725164073688696387981214677110148397504388953610047636551918829796071833854187050367916222761729789362001598121515101972995615601303064234988192427734509313002984651118168951027510447656801859854223414190334623326140669376916361518832886901034348319794795198573612582711188763456861911456745553494550324133558748286131630271986406564701005962466453598806424595609799129284110952818825806584263129477215495835839270407168847593328765166458748775750390119192570658183799910027994706645111116042704995311374808999155481237444366239177522551173862839989380609563917220036713074960536394843013327331632578127260333032586881190958016522794503355653653967778058159211897854345718652153434505904711893304420934357554567491067039628996433143963161464372874758846999936877389435581425746664168206458105496846582793650416413274041963067842645509063625506985936149006953206887316718523766432401900048141915949379257774728740900742891802546916237778341612725525211992997799158427941480803037127148504562618787338003060644326986808922603616278952143475048160867574003945622875572610564909994034993146749539292264576385130532399640866311821543049721436201416064787044473087921459619797100532541929278051186409262845363723253535966690461770469190787629796052898211379434339432899616356727168445020199039673514014208663114041554110753389002147059712449690081281859318774061567366755982380704711166231866320905896840269960348069706547020907673222996603761804937132351131517798673162699427782776779335593502031299388352836769388043534569837631324653363900478432317094348147046435996418977220673301201782244140182848315178542424982700191633054485537689467782665726934126384909460851531138171807381966545899186999586665042896242001803200882182585308540598862252036313835390383154609802754263396511489100265126850838477917554290959842300883399505351696374261156515150996781454658882435933023953498884007069370164924065371172433441041971755725205607452685735641142469553143575340151815710052913238898989518443580009444286224076552237242301115446882045354756594011531989479138435633366297676574404828065350456465141796350093112056400717145690084376507336220409879428726132951099946148967886122162759616882183280548564678129727512855559813852431347645006595938451265412895005751913007037931144777444511393047215779661279937037693297984903180559353368773002568945865300475095903683239709811076356193191388214503967680924748627556270470375461604663795217768655643992735601212097104227309271054376959759839564033927316541902918867822462474265239430751339168079055531283561740735137393896722258980990397380235099668789833175307177586378034925461522331947765842362635848667974080013561014529257817899456436737430776605867922388508082505006573341206391573604016005248232570532646897937370332711197434021084963134921824791959853163817204854895362269811933325009472634538489247876421403793347670180577689561085982343450233085365387314540205979816401329572487438705013786424962415430358884820559630187323794223144855041784932685366315863088914819424342202621103145921474773398831381809885270339769865794053742800441486911664050675197381804868524542249649568055802908438627447982693765047992339098287618783804848603679833989411147733307363213441976726036357604490678176275774732900853804231862728524755877657175543705971435363081671045094444124041192865888223271811275069635896681953495021802613796599460338170484149329467551654206513583788038310108806504231129020338019335867131103242034056046310793833930485565707877999910635807032540235885038955190430943807065350801313384436944334651008557848480652962711205864797378975368097065548771227524044114203115025089681380277399027950361333984919044242455739936360673983085242251507322820295753939854384856111179647178653850914112822683546496189359681183332022093199538512189253663110437140993482263215608021628197747570207852039616921185894055044590208970063997519900881401726323416788940274306432174295288966658090649662984110407333035130301916837563489893304228751786790044593523800220165188526352091383885101367693307442941349411795940473440678987163473720709115808929299006801552074650553593575140907518078654747547294444851720022613571096032411592982260554370627545742407341018520907753465566222692671080433222442149217461756125271651891172775154837759099431913345695758463346915935494797287581040600843330545036131568607191334975743450328847285803502446604346523538987492882482684669094975143238682101489254931310652186141639222519944444318878586981050259552807971221910539028905770054672015668817650684885558333040995399969656267980695320372831437240560947507143552537767723094608801376868694732475334477257606817559053331623032364458886800494149353417441129136819832863458771676733026271287443710324859264203158401170895341344988949936144522148147906867355989533914416333062945716720309422746952893370090354166235469939466002448800352842065192009316085146507221671500014471906404697383720736040079268130525950436750191911184162920971091945631890623892357835253770784117881442936834386225892623059386584131388527118141427055513304085827796508954831154552971167911747680453126847066509948732775232634641029181954993833371829549753506835779360187754389285102965873722477883742418262484101409207957518578922964315874740809896742909938967921632901609181736761704566384607458867691965566340564860840752339252056863806082599101099050232266711625543784341750708719554078654600207211471507303223291678616018372571670150911939736959588765957702582889039933910107249815143058815394815647444138948115007359306936629220572939378360130725754323930929055088029252526617706058771665283605008742854870120754759392565921613619855559760695919818468272111627065087597426880239297922717538422831125704499093365294188531228935137193143308060026864871917010454727630838466291102346758998848267257489768098485556095293607863076913961643018899118746361423312299286807962117573634680568543403056853992440026902155850007006615287674942512252856277164247304049006144364766443534791577357407491388506922331509615129605270569897706104519525964601448962282402027040162185005285603200653646298169287009987300325617030333340212429889659746261558987001447080307091827471160396967747869601035973927402908439011857166729359900827077649803690353712921736311691618325630065308534190455211352199974034741007195174868728545105373963023654952862171141755795381724717283956908833780970690011154831083723342107288559385715879934307260127753000417622117804979472500798867510142725820126492270771182623756300410199196069707092010904993836719839708152384253117513112243431168284899381641357880623056933424062463755023902284101388058689168909049498721140290390326563592393394823114865001987611449067291525947904858964942070827912001390047264010780898368398250062456251559079145435253313907795153320962459326133224463268467949936487837768449864190708644487728775152975669372713723717383198105716031405086922625981223993159464120259877056305161905863622005084741880629651137525438544180460212846637188471254419677337602497368975874177609973741448163376699694448234452682427597313840210220404492688660367598792417529203825463491722221925599666079194836715460181138055150275397443626590543951225897548331505075487361736153148679229372101223636490206355140906575164233004450082285715120932097625511719328865241887264462712122117420586578985035148842534150500191459875016883449628403182420422100732272986259563735463109285917892466555964215352538905028673153683219475702693595071647644168371877978740439596425182213580920891170937593316872660845088075575430390289692266475685303310657881319363565841006767641535546917387081749331993026596013981071008970221331151455813669825422002635784426575734255335974534396981781005367134773008261323273121221436328960049901970329462655143308735775947329801898397511796083925486338416761007792246272937369938090555853678590448535472131566062069631733127143368782421105715244815039598598781653077206269086614110954905904064652287537935143581924925611264524049073039773307612308482071749736555234127553264705068432936825122266401054889606210922685544752831488597586392181036878121152483678249892748149779859249498435110150996634104065293564709657075392046798781225024559785392528857826771160383585029621527709827728179367785239486851871205496916160810176004152717599467471997874166858579181592061162995429168898141076196372094727141343814281789167710814760729569866639713333386115282893284914455094863830014661816824087208101182581831318985584249025034509331799028680407947329029372628325392454379492712987805656132152777357011282855524911383446170574213765142815385801037103130848347546588941157086676839996947563116057072949189995003851140440667760031608629526593170422567404601392878259546547428743334246841682637206706397282340140540311364910901467399239436199125409765261773968449012878361026003737411449148183767412982608543722721758256099789242199225653370142043495758262423381801799646921853693360925191894030506820310562709571740776495986043512951094182387900325007370310200154751932559838005155471384826182027063482560675065335529985569373311917417406951701195457231050322414809376623554140476393946943571018879114089551205796105108366453513988246612522560220860645210087588161522029319940129721690388560622364643902176231233046483526475286705453248223733081805067549651610434647366120137971337633824045186100968629619068896614266618128454893168400933173442943787733423156846184427680395718993483909756899985005751822404748205901447236563540467050139291271807969745864323854556173806628729577909809880734991793450621678821186333206166175720042625483816371232077195686000440868572421860485067871118118132284000768654494029682787795544001612645242549182897940340951834103500367230027228180269980754022543869724229416771254262632015711057259984676310343135314989144883493767086711796427025268286081943137510119759207377014998601521834223701088502733607110194645060840815166393330298606620962957822397811320428242957462553398038955412770340612960914092185591073733569726271314236108013928748871591187334914775722192804527128122662303994824749898627481381294309542365155884297469556156465019331888116847886394560790698008917925980999864823619782358087912155798373617272840955297285177456905454613943815890084858488625296914105300438608491507304617184203750721150938415159171296400309771186802582336703716940232115813893059078105411312138800411491818208347690862691811710473896256926927288570062820609763181609961846237130362943077145022875446259930993999024080548940377807055676832014671990793240959789471869300501656793978256589120442932532889644560850851662905816629727166018558388148733751497203063389131942233505230582963634587004547567864592943152653922493395283222120866384496694861575267871660477007627263845856593895239640660963576045739400906634105084146797001248300619964978766313270016425009779578481218929299928695265174680518379008471012942593239584955453318401009227622372636456420927894904964483899060399542367748848736034464896389507772206628215454724174657760962840263417157316162295836487048629031848883971682584242739825817527727902384499710649272520952587487494882631078737361078311956085946623071133460300964829010376561670200250728654887148648811083031175629188306314252711639872367866867114788913551090209581576020269327022374002497513980337407814507310029035966069492729428452501730390245030785329533381547791973478626801265285276812502735577476546016881335178346597657061307579486368458335907761280989957556092541525218872287371335935853435172405482766872169714792394980389933982767364980277340665151400009224111354240157025953816362393539341214059373438155329152950778396887547580187803417834086972693423265047624886147150702374249943689006915560728939752794438743495168616835833254915153655640128826658878046770980554346868659282715443157604332134347148663743922823105145952542747525940220553273577384296841736580141769921597889008279095873149332180974998281701002963258813901495719288934706609036375985328504916784532132456532786766401661916401167411356504532762860440095767237009414891038387425950965213579945612754241785044070653306247655371703342680462942205239601302823868951535441109568083033945671719882667266501169722307113108809782138963975695538506743767559500749864171199746143220212376357246381845831201113337125036618658266919118338379804713958072550533443014951948830230250073792712736487027041484956975937220557705899489801389969064578841759798692547974988090239043484639084455384443176964517857107631164670565537833379882678992010248430885962010740808099764104648989743254524670862841814573289161776260524250506826682813152168054271505930164376901771216410749786717940297406005284744491262333076001533709368581937926877097300008936605364686430117380996574887459910361217491230580472100757689241955045047674522625251966110775950188498935839205304667416777011515137404580581436396367228013105019297942667028791100587405050341915086090804998625235592972005504994525321616932898572690901602025877026248049250652644101518550249704570323755839855245049156544432935517082214981552824640779632096079348971716537174083116955317787974844228319859699322150282441768197689741873359089136681364307865046790582586954470546936318409203379990729618298434037574368904474245172398871662601585071643581829763910729143548429416774106408631802504546745918508950780874738929161219022338717591908470588631995426421750239140952536507826043508028992374329812902247851104238322352749584339614096742387441213613056781474812230190081801709697874707843185728971516536521318811768122278778129088899376113199560098540059115874086033849323161299144721502023885559616904714101118719706123937410706749629037631906608982343426548861796927802427433393398948057073609882295254277598945405100125546813146146708877056009216268491065877117685021290248411854651137944591970163092629678232979088994933512243342237446539990687170653840605192374702893419880391114251185805216783769198324866405438794505302065025175625376135744894095721140565012260766881994565882384640234519979388976639243229011065124387783471291449049647321942277981830931751502081395454013750565233979766714708797178828779710772114182084931008543611563538043936843983958479666835811870238709252950259022930284164872726346040280717895336307149462054012960446904878892479021164744444607813933565498802075256149016427398327965410264372635248126100132949272174177878188441764025019849737681808100026117465118775347444707286857638516398962019106682272576339903804858715666753986464997852142553743444767680990422007978292983117560540559220284704556561749379641364798275514887702045754075811516711436021202805672325146613231243365805823796130223734114450582701345376578224377527300522815218569247486689038145199920265166929906419248495143578411544668567360543452562506403978561472790574756915857930139462490655060356202594946233132580288402516546045144419630476281559591121977981421128683721086827190274212733112793038634576289683098240384188018348225489974817491717077256347951000402169900724417938320112893242823196067794330538747759995659795178806314801836312646019634370426299995602097299001672744113484425073109510131240375212695603731088760864526866334377767702949624754900154782397556552412206894974883450822260901970608501359770483888518373941822846292057220689447187095734536747379440978793085963451761223604726415607634555654836165519028429114898202607773574989701830907147860020336785699998278901474663297700257014773701785408893299432103411647496777863533547036038300533975827367148222149403787149433947693663106723887693918164191389333575108326528613483701121904410068294359569746387010149403365620854705563992660309503165670884390868038899220088095077853618319456440040961012345458417165225015341858006279756587139591477738124466126466087783602330772456717849165559114814849276719853210609956594479821312274461038925858826732660432870603586695432911846753390552816549975769949559095107353189553667608426786147429599724857425299198978741019266742971674014719445415146373221461044596748897919177272959212380629004661229473714948150565249689657880852202230884605615423238543031790157524283499203716872026324355432595091203103668361833454409012524201257912061949145438694767795329816423871085040259099989629186954296610872887439770421863785447663495864132440304235109684822970374083773651516343749301299164686694727900884360202219679270184317439169470277515645905805917449154523186977654869315441304143542143587772132393545360118835941625489297178877121092415130294594525095291523983254019328288143627723110901872768754793329104377815216150444273906520823324337548243630938866952677438679506812324492024666244200538628841219928090111625221227177155490824413824690380551809800829366617994221441004106264420043589844754057328888247394825846341840003811424027378748110904493699469288651486811583458175487855064127285235416779159528414613554270424604799237964257754119381992181740634373366977390906989815573889938215824332236573181566984474545256801746938491308629661296433103827481725838148737698739106892314466616217221371049565631204314698864654538981493318872678042093682315986496023019396456859494796797548647642131876773175288480549633087950818780767321508442459300513407538118631120261575039925985484372652933086640264091109986567800191906497557676370298228626934512349095638477872141413366574077331166683768435701297602549524095046752593994424525407459570799033832863563913119857403382067193343479699155566975053230142951466048399267701714580272279386612365561360522345917808540708255450922825582669229486491127151026240679470315669445862157221756301191515141206555654476567603833715862866139473129266685135819601390473973315271637593122922137763360088329630028397292496418213933740023617251275662214970536111877018385400279141258009490895713797755121760569535217074648990082967361611026793149233234283854181207348117614565589065425089913522047234967837806272832964741890887100866781865950897345635134678006579103889242079456286922753834432736892613331766015323370160369333810040249820879531751478055352454248330837615745149470162453986407992431901159252241017482739635373945009422766105408255933812138586799001169529404899273816781761763206940891589352634470855407076260428091108175773155325062206521493146904696063053705003284041518959276311958722288407032463514625653011431003675813690406083679756364799601761447147051459913673613045888655437462261945825974729227626676300399514607788780724232837924548634268044744533138216308960625518454735671234653189807996824673806868441366895434169081980580489098542358457517736949866794241070713360056368435790543021732673382694073534124636362414098940041565137633372015493007867338997646374940370456406692122260898909817367912206301273244968205738417410208169212004782419244142717591396318548958504744566327338089869019567523625586076761895734283537754789216334129191431171856812330039497426681536679837142159935826705131472329648680211526023913589155070245585537731861205740929443547899114341514874466353355429440154735557784279105166390817372582953365800207674178825965337802222288910564225572708816833263601941651624086546201539652892393757007727295003218465536031935910629766075885896320869160266159598920426451731904316737407264307149549634598179181499715888587036974516735249356015250903977210199828136886810539201010177324185232828897566112194098114298740065801066985714372879143250975827538189526090335253729788485823078326472325384896572773661809215644203053029548814169034524286417000729827316227807161867793476359539124740009188131377898565681893595558653427168935687579883221381161748481098546914310337157755846171965966951469333798505238768535045334463412606919080327886870433380817877974876020833432834758764812926171046269773742094986179881626373627742102459423851183959386561567786766976334227956734424297118191970081087374904960809001803151705734535571031983193959831649305910908479210682551266138845600092082433901308076246281679124023381412187715104351216534476594397617349626298735648395922683635966264429795516853261005520051901475434111857890913286139679707487301479544508459651211595785346339314125244956721915866500682429919163725775943583524757491189486933820766057848999119643760244665070439630246288701883805415646829113982912728997193286916586984885515730203495452495404482127129019247731800515516148472876363939440924128476089572438026161867794086194206996852395678199636512263819486034482236535582151637133463794056231528965960673514700918016812101930185319560318633215896476047870513722455063890355148411309757972147469734881046702033615545503345993047282502621627293890743666920952436155368671452093138958598734321785443427243407699044283131662248266440130858991282871512079521117118694722095654037525951629592885113982713582854689649957424115669212431446826093552976912974936236296697657644715444756751650569356505204242847933103384012650975357050510568650768283621078993636633125127435256041867737034731783371480619952335286160294766196046658229710494458401845570859273989679894620997435532992906229266467417497863590024499113317047698763729409244610883024715629332672930295958283530051329519882447577888568271416829549070309032794191336950246692427578817876788925406108833696458370265075385567224123279244404988158568750485206732660507077472239256236483080116894881243695200479275169139404069145469704036936180928486363983312917294256654643222867361083511429221891738189699082046083827067773641808487140751760926969849361969292275295630677312281419851814336773787957802048224625785903374648858106087692823089322778736126209531480122131205033771502560509834246869741433187575780973022805030200966233068461932960281368907347341295036623010127863493466669746534525818019376543638080959238930596133209611828831896139642876123150609658307672104717506921695596934516790482986732390643798860614329105716675660241939923041580282573945847745130892852663080248027179509101357308861504517705767754363627406391215067668835017097261884271032261013053312286730273201027038971348670071383763598012579318469534609693286686222404710287279374472954780647121231858903417635649621614658764670622236128456991632937940289277514351289972827884463694436796098169064426152931070352533899789571199274103327027006119930794927798655663342771873321941549029233536255577745739077470032709986787198035636584082574254583251745266648709874610634150238687304969603856711109360295696965795486768338898263797755681475165728704563285518903079200509991406941201687846504583869101014035657214786646574229199539696875693141958751857297772083999842721528680317717804023626461803266481412469107927056803824950408607296817237163307585257451976028368266801884428304966829427449136692815453547333808791678881920569619153830606928667216298663239674643224653931062501578677860087193846441957537361048617035459520552434524843440885952608775413953532196505849306619530060732846129191019667193031134660564952294750781256352856865477185932382518296256546299318274191939955347586218886734203816077863032104180867984724083325777574016150428442966592086292623568565792949973215701063943672421895328095188466920514041345999319563348262482418062352550174003406408806126265936799690531073993644182141309665601201548097892315247504957562271553505389084011984157898483059795456962866713615831189004057569625018713632865896491765817414844483297338596919389972277137145221687567882835239555633244979541524661212026965445785172061619709925631127879356280483327102262268313806746293336168572805933149236675101454062810251077096416469122581076290201250746037037867254471614256140452615655288733189349532819255465052595202503945987831520556618558041159641473657149699194463127331788327840599260139886017903809905711475336533164659864381014708428067100897999398996850100541595649113124264648199821155291839232269827440313828128842789551441834002624648741074701160531033304981373325718856564059566791810993719689123889285145417355306275982871961543549702505642966662432170224678265695390820745996769374178957187918980814414882498851293938149985267694602082832975783349028261575913192131998836682897974332421705943035773232606741243754001321383679536771193959606492492398379032761884303148059203299148248895436168085483056016012913465486656959559073870429582811991869102854621495093549324542625114964443367575317557584731149217208915747972776342276413507440514308845201384417721342505355235223494822923399295776587877719044825496082041439848517214515911629682823008594007926736521478626045152907067899370595633378115129767067899199258841195040305898867574100079825465529421185274298211821124162839058613101940584646081939028679433313496472417743930342121350145393812800876927241747394251419816602726867363253100310613211752376419770932254613205315504011344765008392185251428803716114204672119192812125768195509061184113856006233686153506377658537660354020211604004792018088162369274597557616835049951957354271025555787704909633709587460982486532060957016276775123195609454881832551737698554851718886138115755193219661488140882814508072404902259925088320414376482901528020388732359067305360296764872713849859648824226183122552290739130639601383607451890153982304944355019710682487164866476753110836189149083285291856079334643586155867586244150399924992596763883005280251547100974192761472677258245307746392061305036393897414386261295907763474689665258980130872362923523886014438684834730848319260189930577158769029616877632496240129877811531844651194015651726341076518640631922535795655670119502812905347362866486890749068503755513307387201413255033692409486464823031761059217787882310924940670005195992360333897093718424338425646145235212328284005278229799775567937311526606890530190563213070122831443221513275684064991138617215068480759198728596772194532088727835228133247155595142326074418280580032942938239819861590553458482249521142784818615131801191972743782993787877410741215703831375469848288505822345642849010919875171321938344305818375013231075526648717069818581997420356956105233529166817094899864645213046371574195824361898125705901172473927454438316784539838311064412006356974678317258785156774840302054581118576569065198273113587244825845324964364461983856582723828841859239780894248488541002211532056993996808312721504043452437779378041260215719970588533368738661560109302449068146002943583737348966274893043030198999709236971651151189387445481253012639164271599408523092589728441980595166612131494935055814479606501396125716880335991852735186173608445046679280581242941549982492854780406896007509996567917323037857247599048988670992822109895151049364734279956476056310909832551169354171136190418481427322753335730834588006820278687859931969142588485526876093161620464287381232510250583264086692587898713907621246628355730465858784300882466953080736369303153197513785926299361640043570571849060381654944095720748004275763154753491801750735798914802925641915358760288997904511918278829609569707564154987687515359288043439536113382045718200541784313671285050957047087316571300941998779934186227579115834388067969405303191739545847739113861503775114982323013507118922085787612906064098090710183111791755065647529904119403511080164972705738156716779868870443349854732605406242600233260488317939253520020270939385661165198682992461252187006087029477399237323496314965079819012750697913088105239942715616154107176632670402910312811557207175311001840138037254739579021457428052452722544182359001481350426811269477667638571367264561909612091087741083641918406895431000567130940983044406572860399328426344193616211334613414718976698193930825367469496784687591852695577570327304015659118062633508173756096727839059539487631966133636579428265358369680418827532031490908573632235126036085935627706526353199193389013111260837893563098368482161824857144304867400444745865779707153300483309512391564094717402652716486017305783112047659081422308774949448351568118748552671503894766769942663817174080842599190213429049159716864064728564823376395287724331601624520509340556187495508753128876335393244373399424252464106211533218008003576653809266740246418139964343743603629403817503404690460935665723666538636907658278056117340565636844451258930820425192724508907686640183921938632377290943412817425718365978982742755903572207180720400629008514493134049172408683238797893679425215589884961084446723181676142144259278424740658001761548119936633324268613514394696210516424849332929490807688870858335753712810232275424123944795669916259922148285274478037954858104323558627924357729764152742373035948884487664209309178437796479756491898304463016291824755027423947625283822872564567117519031163602915771080898765219063579519387184874762786502315821639661954666855773571993021556207431192955314925443386247839062216425639718829070922536112123510213727579031205817220272434651085017937889362963396400194910902670852093593931931836347547739863171818245717234736278244508705514082332720868829660381700881326786072188835554746689327098449449440336707248490332978990415241361743884696955739275402529468143568276576508859200524587085017021039101948085996957129169349467669976264412773647566807672810556474130460663463535612310448712820243778656804646660810721170846151918623058262340650939359959891088322192377449777772808866221128129327685213734819278576573690111341431596284364672220250044956427563752757098780188127664974911377802445926017966344617838675868066593493695069267481046685705413673639373557462084806377592718095690158872178854157353495835013366916166282174813353072347752520974092622762253068251957378930067429504035782559069702521338895042855677267945705657554003046069175369202153217669089137980629374739181125681650904119925795242965745412724970174990303659592489116365154240186886006810405767788557826522008362448503982419518504008890632243106754626029662121957612876253723114931087682462156011837756361042744773049119081544177197099173783256988114831035313470245209957763894103153043390714390630842020142201280346885847044555829585430552841400341294673797083076331307517645009840712079317073660515274258330082825859187216005713015359661696047562615472295473260792879430361144376550974487612315445420394269763778158376993171974688103954773845453415459312326048646358225121602678976134599307609972829775511335506297404660079552924413746182876542544891870827414917680487781413769741316632772403796313974932131771142282039497179894499231721391384084349270855916004873107210638451688497773098635264077742324428910804708266471064520353529027013779525275047871068352829718999755672169581116270986400927727610871532686067128608179853996968045613396327111931520198642523690144943699504402879754957849746404600560801499623049295796620664504006900518162151518979340751868680198616555902938879207853245949611703701963805130602410574678555125517458601522902953383041138335966732281115901124826988417092588381793389074315405414500540460897237576654439549688320315023943410854239681457815129214308975070359445132303112824656768908264271064576295231493183057902044731825812558997907917570098165329847010940660489044847575617524515097330361245025702453711100805880060671230526231698488067069226328369157589715053671709106707151678123495026089449635721250310751708152750502804517257030076331706556810947539950958685123175329082133684969592292414984732164228339435725870386280775542293000577527310365141916896880260003122115362747634627843855345082898638560769889044988037088040218130498188233666143823316230415936496230145778877931059728018301561631187452051262952650684499858376515844568620150312541709360478998160205567166247223799470349952254422194989646935756633773194685491274653534037412324939847057235179341700815584279534298277466186923616030731012712840085662578725583015210742773278100586873017446655577577241183612668002475753883477185563381410910012956581386042773375650219602554809679355877262083902818619916686175890432566053415350602398201483174201858975629083065425036353406016937537413100976185108496599122754767555714145366248716751732442837921404102144387991173896034025513934498989354526152409832745855379802978792544326881729983381463561062592669654965726038540563628777588000707407134229304524371940465006876511936543818883553639611643114634848868342710575799727845618692554062940991526508637443891525271246970972130021482984398966087998241889144343179499979800564996910159707855854971582010623752858875026925697841380886688181597956781151905250168050806034559775799158733747668663919746373876447118620269318105924789663598920161257905188853985647031919259007072121015369274248523743290459600063436250055084331794860501191779355250667994906988014003404803023093924184027090409760431465565458890157345641285914632552209781038633679495312544723291905140612293109210036343068584640508441880651381644111135967786463549740432042735268731527516133114808379358808587087459901996912385458761304635411134727859498517736477537250923308336535614472819692128959995132626106949059974684960748405588168149997927733066444644119210518031288747170561094686766805694861764703489928620933033119854394698827888976493652058614731805497898894691039514723405156416542983527275519411761008124830779153580648133942438887178764660264596070836387511013234762176434803320396001526137978052547400863402928195792875750406399782474535816761713899415602986054246696404768140607401629194179912691131882149307102377664849345807201397485314820243058987998652614185207522858655664225438945045090337193437979215693725912851333501737133104009263116720950150847545597839698340307507059669671611093523878631321340113734938861379487610491149603753486327833299138902217757363596168881914859210035781308945199013963291267680512230281560869995071445735826572572828113892587502704536130524688643573751450185821008534511120403470713117660882825194648038346272061488064929648587891841133210237248826987843125513222939595095829721226950313352044707028884779441126664333648505804279458956109130701506367372079338590477940926581956220952763851729642092934359611832571290360343486033539401677247624328411096280884123755388941215305041722166442457745189095606614514504436104033663896106762516169824296020504390374566292518573249224453364926212552258187425660564984476994467006121621296980064226677134083298423528693729139579385376957444514851978212977540332958918239716333848326348866915579505453200766596386341032288748023502909935149792257783427147079459763159100991701695560995659157829200477373710180331824744227638886540911770144162686770436444813637182534718144004103292134199987202017050228029459543595522770544822045992352955272228748282298321303865790461565637902453094664009710760358709843075087477890792842256179780718711957088962732608723149445401341046871385770597555247261988048276971873433073926452309354546650161674789068134287014260358746516810722676086150207215706641909929245439042722011175860171135006633116647511143673867067546933708417181354016267172903894554811156552442481163057533937433202831413296317265983135208293956162606032480047693357864952450383898936885912581275524780151012175511805127397685070769916585507365498812968514865075250201077982349342057155838644837221032378916398711425806541650271910018036538764408961092921037340806425133845966583034136054962210344916228141081305360571667172362531097066870989346203143077825941289183069530520380462295984812681436186946848866856945731457564313653007231877237319292584594865194519462510221008897767185654096406432113990651793341458308102363306003125294842025948288326291974452892213298479172525530517813755081060426766220867148434709334377311254567017080347095544646465712353570335241328798431417263232326079643979552623903077789753413411433293463563017395105548616175626470903118512160966237693817979354318559299715708575373504597680585255485742784441328043415168867369869368505837625327961095339933334638424192807025781242220691938528513236841073057682533184940074577122808729184320558648803635060956359790315585201927513552815186404069068633825962933390192452904236508586309019585956591104179670860530470801264501043460633579302040470851961738555924703521073554151004247169523697315404114545573116120232551828158413328888029442717618652374999204216725366476019514157358889579370284577002598024155432491651937192157567384455346082508046305748871129598135205884377153588419147400520421170305535236931824484419891847671121267924671442760086565509326192976030938206535669440690192239370342090710729152047603597540488438147854723153276923643743595594884158601046704120802235222635552910804002170830061783284829316796496108050158855883152569374178967494478949526071108439898665717620692787475182682957697266660787416721019585068202249198427900616380053909734222313254244403002294775642058030825985516083215364836946115540469043012551324712622333050802019293669934259414954067825178558281848645577463312098548037687863271661186605663197789632292027191969456005014029424317631666304989632582466975219053174932375401452729311833807775590345097055382867797633841476476057044449785303591974510408854437437993140909879697600323229465795472256458750299884590266307437926109145266969255896967194676309515754350733964025401014364142190433629148556822976460315143947675373048976241475489503414726025871084683631392406148767347527534244582238280562602183320347433484355724313467492382225578515735587603684546028414564063911291900474451891090613244224487897954453383786671392833452334807553263574415352981709893429821217657982964618555708339100433445232873179774492898105871947483551132260637976364684654650392033331720212394545325140834653643877469791335512426342653520850258715066307498413182580589828707122065796608024678812025363468640900577129647435492672926253324340863030863381219513442762135594796825964230416490233656457016718870900844466868685674665125692276388864352096280585686587385499397052734324932459283508974933322355611630951643958295264873904929886390951419139916181284982761800800530964932997285063729924402662432711351952460015052585837467036333840132903976735863361991929457603418649194329624548985824038445377865736681758735785012816309159039667214782711164217096605286347741063722932597927149468950837556652431500509459726816037129890209986795963923025197981341898253090413933823540286150180463407372276879360427892003828000739795226538540892116071267814005596507710238947251473260340988174722777476264573669077245776569956906799515875611800101660919765095039027707222806868715890529868085110250704269188836103408504109715921171361253008415784497332630291797019300960358292591682286842113002398309712195063970372770825566285115467465686243374002999232273418386275604534250523448734650403825356727994977866319231079260502961741407266233597102553848574189187057699452532803080542940825626372961759526671242682444370067948798034856247271712277076868373246269883055678753430938091135779435672131195805401052501562581530736720111281005498478091950480891609637334648766619277783451798734196963231024515604295207220254859116201970360635824033708531828900684277003845958800167008448253105939525696045066101376644847304863130621209604811653027666264499631658461352372800990518268561510775393800486283476709577381877083908436748630319735574738060277439061460347886796872902961778174268585542392454606777277018902950467319229668354482912542048303450959741230983195579706197478114242794683262516737288510483275437327773985317031283058204482951296020754582327872684152023768729683756795091455340364526945384138857367671566175414138327119708498159867209072510883384774345846611296756612853796785290569904861115558527868237666151519667987831272892195734641406684231099207866727705679144180505973216618001859321343284728131035062882522707839234702777471225526019393707718804999931268788577883293393122990667116314899285723384166244313733988465510490884109470751926599915677698779839069634105031544002578524202492173434477429225087826002674079892900360665589307484620409447775244837001008272326385714563969111262252812050713157327550064318739862656507406177044876882540907845588091391046100678302080756386778465222150169369275798361982090312556864304719724470906765514112318874452141977021812258554522634461558345557102371903422252856755809361507329958344967188730069112558870851382738225618211892609490029952817292074388041222881874262744885083025162789211350037867413692245698675706688167349192181373847824227403411700029593110454818073879703417441576424923607492542923551942903574094749660957725630877972256283404387098461943805462937867207623987920864542826072270520536468639419002896425139891951549567069451696160989824762731586904985218976380043491759507331769369537120684948983225910255508802986678701566480272206381755647770220897462108901787557186680042077922351099037610628986721537983498849714820376271286662157938385914835208932412586532618305866464195009904485331858161757472417577847927141650939778047341885033692115343542408540242557269087415000279803215993822187321954559270792939713300321932647350215666578294428167248709015721346352880570111714698494051539462530507441566687825214878977843859744042505675214137351131655286333491960314027990719122369537402516796101602469580469507253867221170390123831371432452641921542539174831360697907405834819743386710110632307348416587983111837980315227758864347803415935664261622827754078091529609192866183904282644663973592708483600158361645064695454462302587398477073738094042319285675100646155960326468643246610478405723384996821212932220382953226926507513013821111495164800134890681514805567642909947248644273072016268421850698062812436833613743118066599869107744120802160774309223666385002426968947860614224804106977057437278852701950777393715428453962668105315798012312246375848434972514362243331983937116685367269838893679614939196526058658743532712831784798517071748350826754535766920159394204416257431894113069745596219064657908087141155676985700437559424201448332061264291923073981682553515033313367281845525201342583584217874322670175246689984554445052964559582024519151206073005949603333912841826406732261471050190021414491552257154454006709095636024468440364793601686960143010846190368650898629032413188811650028788759331204086837338868947633588875750881847628566338191884611171373610406551201347327397117068146073244868107663949424711709270958197274385744401446845987273221314750845981580601998693223262214549692823536229110761514121916048276993045026905308991854972901173676145494179455362452564056338280495189636557749705359199898348660407462798071006573250023693840110906620763265831406921656201152540753563314972918688619444845018695529943524026393414726967352412174022165759830583904205858124968242317286790235629699812068543675261414068197583942979177668128531802910197516511070386105130884725702191497860262750679165318716668492842048680052059723045346189075766779427548313813902867152401411134803522119921760855042272654984336257127448542606237104027483713448664925276232400100069114034107517104165109275602762859903706294636674207393060354790207394130805405036573530656009768326138943674023252127820439974612374772220691387335140385358861722553254051212120370435022956949960867091613207851319768636596318728295446966155429813090451631648519038718388007545519432565376056999890447696642778188672873416873168400236031963672549308452046130487200062629469096333923270857252405108288209011280995556589003656817052953804728847315393527455697752662324004255377704969781864121478441761444582599459506553558504097584757725071140766141598453589260335367865014599144329107351892632125500096285716802027809804697659023857701619844366670568418403827384490399174070822622722754219227799576797749694611594419072682834108739324919618758743275183135644043000553040144473450954054311675060687932777432653239220368379705191351526943622050173951903875703211554508088806491394848879644587842183270066259135129013632163926972968291642741440367997502902597418185144907206280785242457344606198173363605273099755527146192698967685075868440147060887559246663797864127622202321603166691358989383539556370018492297739696730935975802745711995669488984321098417676630473665890549834815711937081232280401478162260618912924527498487213014694553801978866196801612135978381578520873888150044187654026792747543881090769408435996905391281800446726026733229491747027512576117848378487543562076488884306903156870523593992286344118023128551686290763177304608596507251429625079766708264234594228664213874995212309555529034881172462421757789313106958325060746936159871035612117500749924355552686596341813212595740735515723502032319300388214891418634196271082835787226435263538951346262726240953827276573019769183782503950829562553673324827191499943967376662393136816209750257789249572007108930003400074798796612101827587290722814556180698701342336985931455332684586467918120488103509175406334552842629461350488988305205177322062889681654422313050736120043623454195027344859538184914486913979788209224278128192279032722691853086901247135785492531711345808554074871520970475900923715379025344934437776344307214160271423890903896592596395989373209130333796850353862762970953771521400145959338327923217944839500362522123536906890344071516167029858175172317372696112731686996524317841511100285894774282387889770240279328996210514453887076458339815106654584078346535522062011576678614106001651379070157515774420592832759408743267476323401738410185908002138808142858971640652365410364465434047718574161142577662032958270279678384842949656145813993318080991961638368670280048456108301835543909657996101148526378565820602153254592351760945588008478889314529450393073455698286487910300969335746529976114433957811608903429301558983485427193076035284217211711824941952926001585664253277052883259842949671837619151246904912316672564347752094332539413372911919141395209124907066122716233711976521107409657651750778041484744271253626617360130075072313539717063842268981582049774680503087984550040187171394034284812898003198710057340428584576660167695035771553441002991710302586462497315922778345789405331316454512938821465521665072417789653633311003592877271421212619342725543404186231991969040485516117678267130586527077096075403067389404011524509722050059970712318058414499639132903618125567175084414035334034877365130103532773828117569264570572413137334499571479718974868813329104918735367746745523706650417420649358499505857570124145739211166845043510957561000100645453250317576607365776963274298437317932638946515635610701377040239716006524076993084760061728137732622724284835549567370448367042085821978261378797902340284909920193542811528207022894040814513256364517799292527370723281033447177150368565361558463729704197136800046564029274992594958364950334321558338719499337289312859334116136579651203884421729800604915835483099849689291437530448250218349939625093198960396188129678628150388220694948627588564516489915345209472328427615235787852372484195587899012332661317191158840218496325759101239940041640550237248531479108069071020914212869131304576191764142760005492694670896649733683419724633912824943011934757282854196200073218253551656680082676855503457387645111509103825009044395052313248203599820207371549517373217998359605116703917732768620340967834338119537084362248059529709036227325615914438150595621452082717589894220158630885830596422525038284545058405530651521450751124645734663758723292939873879480791632366679055833390375011032830343191537351706255889573685362177260037159288623898611587077850464620572650310300153762109229565466667087233985757823764738899021618176142942774204170666779454748585218733397230481836384245900566149640373616336556110241083071233201688796341462843399841566920787365542356616794681279345276813192716811737097306387977855333537415384716294533739404848418741310059143607225252631396872152669618185142079449420030452059309221966215461017515787924933166660091992411650217168550359884398634130193389789535887083451551575439614422209285684093182821886666719552900665337240625029861617122663456562220334169254628461105427894352579712162278163365830266632099444710822909573338804173386637651262033819970497414849712670211746527862123925553088897717435112328725071646667504867831376772522927011485031025142553867967341979175258687432464379858799433230366428611011366435398553857659258710623740045721115235128939391310910865415327974383889223931558119662897033798061258737500402492866926844370107357490136056219783347039715577941119552786007771819177458773763812952032143293119125271792264487708326851187919200766664931579940201587661431837481340276142844310726794938541337066370287910350905935987914165359426873613882344616093775274589559711384343282597232176609758093963025725538561751927790001730940080496062031973304803936267553737741280281963125220103631248011917463904075943079353968745875446895974796954475868706725297710592249001365006474226022251329216151267163153016592126366736718797310071720734332151601157117111753179033343674940848340427566690174425363373686191660605750518271951160208633615115092856778003871289470386546160175371408945633885220875849211601504806475743313168848490410926599244545249137398131638781382512342471105416587013206693758701519592548652165724385555389883359685096656280710962533693076614289382635387040979577260950915696492063365644044246456202782838038223916608930821141557190164134943386350390464401263453913418296964683185595026843276537936609887699499827797565053795783184246517134675814690559087116744630094362621901437990440632209297891685245572293670539519542976700686346133910738317123111942213562566389508265578927972467528200935815746346797029499142277555883944670512257269439953922748680869240618923985179387116655428767078600615118545565921381112044660886339264754530409368379570374374355929634989343424356625841219338925770962032306303264890383527674301725222723662134734620574130483292070112884147225200029283317740583395093500881310124134839565086839994081910155113700135618786755212865210836211238948079643990461687247485689315695307536886395183665936742800651090790074130974311547909064914626930178338118559208417619837098098143694438990533359956673369632485963675559609677979347593797130764342892457518391695864926529270184319576708507367000841584564811542871401460432864724688567418505811019008730036844136086659441313081280018819938290816152164195573790381280618112436928014970512160141318093160780290174074968515880162340936977981019151131311488530698484740094482739268836595655310411058500789359500215453965659364852111884776692723554073307265433674612731022697731509877724535035847938857826130865146378216907557934892128808572219501366231158951886692770683614296943796220270684241528729920325896306262551924632515512147084011819642049213959677831015391190326013049766133194127802899088321806230747321921119252019439694264089161090371701947698275743430033698207977940687952100030473746637829915386365400628176735751849348255988841354142584053911552377824308939652313692555851218347051507117000987858045105551518322168589579378721729683748301607087202333313484807288416104441189318068010493693882882877885628696079247883674311871381310397959704085670472579212363973536572825994369989375980532164733004936561614933273748091699124703793269998677852993652833026565576780051415834367114102386752032321947656833116300648651762484554505289846754138021988626981760684297405906150573258131449131565659729351100294574365679279537611972082396452587808889401690466677761752614119825797240942406206403700085785725766327933413732425755257959180990115025011251450458716034554583496333708591563228985600018953065033898037932052315567346095136340262378705703988100243572987917089595030606340482347496243683380406450844618232899549318269364936082180580498831893983444207521603986930370250851682418486013356088975074373985333495652986362034034652281276003332249722221140030020545923952188209300893299287643436085667447075457554711253756906615397846863529162237556914765040409449897433255630966685780748409140437039181774987326137599628532973179930370752305911146762461467586467252410048493370146161305135758455199441055394182511449443441606135706031268990412584831792583953691378126630379285885267291446803055949067333486473615781097376280649486300924352218679902730463832756567617506584773981961206723434007593887415494779909331935493107710063671009761692090144100483086982239013988117323890309499334417076473134147246267099754474760775688507013258331801875436615351654130536942608729741620627504678809298962114416954064705840976034945316493292025312405202055107224820807241551034364328057142718436654584141755724327260541992582934032904400096495128615218194117243100042285767539723802329306973340234218963639784594600070111204737014725745078701494601916721972745260447618738785231122040985216430198146129245669979477687869007091837428646182062852774262263243667782116307548094989832580199264658536253170153922511166345432135924463986978864838147177433493559969794561521722582861455682521959668776395893131280164298522467306757081841669485726264383002538288788295482153241420084133980994609293767595213259765350087326818569302278769975417603997984603402062572492691017031693199554119135882178482982487575834004513973081874978519320174633537617834874067966692438721283584726492151355863377120539767217761018258767118420130633734102125635584725358298145321589423828792409187392058407586454636798264109981455685697817928897349579076594897549877754564408323412245146307559193428237854764220253917747476045880829869360484725923205840010731976739316913069339016263285838616689749855839941389949694030115618163094075707828462362281528805573185796045084713991138834929734483795075363178006641666751446788381998615548223343832055942213790997931736539804862006059489559116307281667649563449439277997822159913180434610657524991163623485201694393088028880251928882052523722765294912547824451845097327848151075716628921155634770487983396207550726587388183148087014814981250257055877759719064488623507347943623982946135393318163825511216086939198224737679695255852382806351406580121627326840662902087278111712283889066190175267151987279870308436978276129159591617647861559326472243754743337620795138770667864559475469934233918565718828009923044633211561187120757951414782669244901374652001607893637407162691015884870148672824889498917608875440509800759614586919975496272593900273692203588803013676627758971273735515915197464235459971570758001083945359580793783658728805407029614435317509106888873693586214316553931089440250447448941633692154418171722849449932100506166206346814236130209253007356555264468742852883543738011012097614984014359993093983501700282072178448372253291771960800587871502930371372372597305979618187391514134278137139268285062929665166717698989395335013898464583324315973232191603891752981807508390794770547535045787224590367938633661235986784332500770554102564808730970362697661205168020238646999545073601479272402772340768243443689203735127215162444698242662070050032086694392838609637817165789647238372893531743556029606237233329768148812417148417838531934153703740402653887683986292936027211102739912624114928349112055849144108793679835365805354120403949354255109153285872256591416609849459235277732580230476396210557690834897099702434915232309378588923314170367532798838780461464168419386057002952107867550816177963652048361414988850076272473628975162174942044100947604790927064005798623385533572682621294069690880261665576452852893111219600219519789213052244019978197099448778627543718051539393811359857962542487407949882076803707127977542592765855812858136763175799668561313740433149097665130425873261414597809338222157109168524877898621244601371054238595160591807548422302571564604496083246818713958174315950651912874852358916519702109499564761351760626736736845042425495866593564505528838353387871554662563138290807244178515310425144379178937354195981774961233935272199323363750549328368454313225465608472282110408179839345785483253783730415419306043092147383608387835230241033067498266985369932105530201332512649497349418168960131246545699320703301300188478272597691194557801037121420583364542449499067750514773730892426447657817864665731836243397373006443212002235721442577942803206161143506092373401593118129230202380035470247768568618204886319197614304624741100909794399680004526079104620676395027861751203697309945248197720329780092104347564249937152112743265387704402004455689601072208669251071606159346860676487520279542587880031816142679324199984215865037772820551439811059923210424940108243896570834659267121842538228688938594391250175975450510548168106201618167870288336427036220029182216403305244973299847651890236267903369101514642362526521058797345277127438488444982802082279692573464903510906985640196773551899363279786522065919188610038421945526688329231536561402767767747075232436921268085317888061336951477955233370582983916673225715874556383433159411740167871729598847349638038713005672996813933510741100196568291912581966471440644231651982089341128911979109303260023952921891303530728965613467439859168303302526990823226397246611321972367583906014411146294861975832210080306492303233172525804319000155643077067861777532224933014750452630526106163282556494747746082569495795973610971722426120877223414800702748221100085109304753365937099931329588984873558525100972494487235946567148614675140283648969483200413115664283006461148856476662199841123902408538237940428719965725089585647711553011039618572700768769441702602698709413881324467472957399818327192724472857634708255865258774640486866017126802129044517841362119533722206375363230394008753879301332438814315463606930018712917016730097967735189931346482327163566139560637623267468036248571933752585139558823937463126848051360641936159932182607431964212461477198863986004480427866404912103826530246735305049157344240653224735334256844541198641833780017715085037742691984473507729907464326146038552658512769513221994832077692636681426317410943962933547378422159261002101228553155855439039287713307030469792947587055596674169031940507806740338321626637771833643246307184596575666939222663443668043429377086376991181087316191737731294744540297167302465411307084260136632628923322225971640280977154914255297153481494822222280295638158769120630400447160977987695450286466762994350913354743636362553094117681408720592000188838754392921301724123004850517806809220839773905686239999730266851176224741361587772024974320856189218488525556107557879657404600559586242020378152398624783092969748454003418315543799234840289518937566833145894459591744043462144881186257625947910402369099005805888392125436360123365572108630839955537947453056071867863129747021701259805049906267641225671026494648952726615089882026765357491133237979299785978740766200052234734547921510833087073934631006605059030628379537872473331512727950825208196000546337416811133006377004194454434420061099558896344183679351060709830399242203706397487789449116939472816381726767271273535573533491722685712734573323704748852842287028881753301359430751785043973037784403094234509493003299504397518295657536024969894205283550024855067862698769365995450737249986810661042475582487183078132514242427752170649406199029469598235541172712186888034563710547030541966770492585604784362560012696067174357974001372552219808770004559872921020267688734589232170605645941364593260249039794977073931521585135789074254843924515242489483900611419269149761364920511073378696181731522570047067027102779369203153884984649699008956100244775995289604485160843720492451257500614020703899763937304366031453912577897447639137382193659056961031597725364832855362615077725440392514478842682318053231841781281365321624355815629842738496504094468809724202803288057644668298962138427425014390960425279876794600768523423069726947630200985224634028236740591819338282218890128640357760413225827474412807977882903870419774388437554231313423921552635025603374197176335932266658573048435004866091840936467095446020726359053948920229142761964369130392970649975981860796867984125524420526747988387978964468277838984436306210486406695652830968265611333440702026255949510587912572950796625483548356190328336675119844249402693399411701380661059993525539364373358325254565123716838246331354032983255260425632333003373630355632902724795200898313559299433320710345731353871528540222271818054972955190892590439027926767508017785743367542857841652077990793513583450758675915099552281552453844838151380472044654314049108597196245571223534470570435253793985216775999782563958854503726695450303071985636068173228397100481125787803357582527537011121181184582038543538796862412400061262293099431921009741412843051907689596606423703606445915127887322261823790780610780089058147588983733400396814069748861593627295047898900789542778821065866370811359889194147742589656881217958556711320441857117983465979942711894384512169639865863160924254015829298246471442872059671955070387875072021251665523141535088221074697967422503557836888283173350426477701546829496840011927336995635757998176368335888960960447023591718027429720222076903083757676951329908990083513024955730860640563490108146393762044554631393349778390888001761037755428868756937507783891568928783168705105011293811556781019511726915174143578664299436783229495732534430086957348378373826604609426489799699356051237906338083422924569601294858295598461655849211411093885179891502316704703066947703490888843502235831567977015431426532495047327652868254125705781878311318591793626797857257641880014147056820983887384199393670588943340623086576956139814577245483245209263187396357604829162223365524426283621644471790990811356163161899803133330083608611052785527982972806370079697364444128370352124270838438865008375861974338815326052028844698576727602102944684720125530188063582908065105347313575365085247087434492648347514026685168790971288157939960697318710967163129786697163822838493047748043840263577964347546100495371556752818307409842094204074052555035764115054991874186735737225863471487691679491169228014075857984628189723298418639585660532094988782746195568900275434274177746369429505329234665596597132226917890800234943312471581699786277850708607414646427180903205513467344056441211970633758425247952176852909154371810298072115382971563294273177016052885069880221107372789828434784502664749110647728902035088144916021726136691367808093729691371357826350777329321507724537720158045590088007045289150386592403645764531806884486109866448226986644817787063201962995079400041911679505899105858630279210228773759315871617086899132992510988055659934363404597546209983139879621354205439152252651358475731931756116446298609537877431073464505863566973737563545341457719317061500198816948784957150034970076068562640257017991603137299747125845197468739566572281024170783895054169625070501627584940995196458598508177584402735069096601937633698632688541712754151927218562728398893571724112721105012845367414723565898701328050809156050593696998894027925395043744800747153565638468020798849579386915476083661244099865767085416342241974661889201104242672112243785609968266005420780640399880511475434084378555545615657174803899348503687517009470101515233674451038368494694650349098300687367049642966993338630318767008620342885186949072378616726756827767948642682999036170164286935483552824265199348812092568368590304588442140025742117620916568176532145599092416454561218840967388582654467590240618276468438502009992650416358285027286400419167735799795121480164475599343411009465636362949540434510909844213305995131235410535792994477808018401743346092829510074446795176286147231059507416957945257785450025408250623445029041834497548433762828647461976350170256081114084540877892364151123625439657102111910088337382950756780936594447088205759557029359245889316943235879503603672049521456953905469834660995054823943533533135498137055758863419111479261103653598015622666120363631252972582364083553176602329614928813464008748710566611391862271927915096206080245180475413294624479993414204981138182343584489273565066396293740799919391366438830128419933430509855243923708216250735668207749470242403106281678559395106430538051903674763523792775881353017391220245205054773852963182303533672288678406672560972017108951960568158544347872924601680685238690643042464714839868179504188673088003330838369260130490804578428459484188066989535278283439525215427768574180616291169381277817971266645853110259258838084744930665817510351155454682346032833099312914530157219885909492176468870029797496958136898666225142633092970890623686325561187735739751738494876136117203619667857704112051243469528495229986455817078395486294288483050949280394306612588032772432282365627894356555693107847470659412669361181693437972527086291448926263824855016097603331122411401822343578769182746061298751599206454310955933280294430346255589789743092694603475290172089443816104195863987858825417001668093924833192644891214502603477822354356434578463818935124439428484439497016786334403439976203011453103023743062251290939227925823503874088491924316556426033051527290686379202627830626047875276129022292969804065945274728704901993239120801882662376829434800935583306917633206882716213231566425111393617725388442501041186910524500093469605850737285808044831627703868595306023092819634209845964233859497162905456201997841053106526078478724526551958770697754462565625492171759094342043766824226273224975727020362569771907189306378901641151156978420981404582610106926425540553735408588120021381422975187555928381678054823107694958222074171099431676342528015335181537740029091772086268376653477524126832838258729846038003901914682039336897430415658437504339323544364529893171613814754295564075837227196264063070125655067734432818125113132406725824431827864561835851400568933958987199107408953350063136639077960212688575210647276138285486693653959155423961804979993549218835728914918944528594341986180145291001525086894339108442468951895416854810571220331262018790895432139565706406854653661005107109047226948227633076483773683890759307743346840972182161471820068211024779874672844433455772725045921241919987692689634688264989484361834610630383057164230390818498127746322192713296820468148088905405567285355513668646961200866450850139515256805711639066266223066716747120325671227305220650872987034683711320892392184920998245999592992350458392890055937181414464147610844657337666608077782900294419927772000199374429471844276216530120253430185524532704093975194743114891219844193463509829950509017346272880084028080674617839217694375574925946551956592312287893899870236604768075765176195075310726935563076759778116582987570687517873713223021771957278856786318688105705487689834532579769571833348230548176802772617653716034714455673841754411240876366124247474794866555373195626129480662890054083684472834307936233010413586692845461299319329847415316556202505380974567311367305906074914608319701456099033675636962662385926624457148560593564739120277834347304377177279439966657342133471596349647850269933310559384868956124208546532071791101579964403289166108968518396617343289394242968114014020203417402201722009526614836483884937893158961086485219653077241803358741522324169437175286938621720661894388738321378282582341084079619635284144641076582189418591406661856017917839174635221131408293726954623840062508214664014787637378852620367699930558613137172199445306557597013624919932064388055165194448760530643754226633176761455074825466845479456587564863830247429027299475486504189447838179150147527886083441914145348781900738122303470294390292051028952771880488428604647855294791083829444231313324989833210319716264189216426886586026082623202253257502767326685293638265089837358873037651209811031835643843888930453337145585302715221403589921314803060090957214949603807262843641478356658957874361608510231654331035268429969127158436365751236646935104464359196988214221304966099511512755524941190920871001686337058528191406377260513767710316759472060476219653808831845365696897341542920441122396703897195365468067998855646223560634408830303647351951979449296297243018389631984182011707726340846598390589870461510252430104292519655086432772727407429073476280410161246142622403306310561140040426775430919527744970648396186172811307196352420420166056004274245276195285863056194465995490668104916781587997206895803269182853890864470237395416547826012315465232062993131870758253147881473807466341666380316583030798391747916778414715651289111152938624536821529989069335166342026219218866872290363632457062652122135762927957868424067707029415338042189848496017111969769315072629114393726808444256695848129742190189965329204392027324700320248727504573433833806679271089853903599849063510223993569401147095697488377226867370789444493872371537670206440858958740269180089343594226541239616052445497716179049671503522324057967509941464888157578050336775032343217798999449726400247216876817873142159312561600962737655453724786175048719440872336301128919045523719887844112355995186629062894664714697003129255174845553140717877616282118166654267480813458009708086572264512936018622538086992318861397115222617191843426250708009299839589245801758250719812800092477976253991764266096370769558933125262896121288075970389298335154136796118711260954306651424656844437126946571858020346482004733787259617846000801851921316530640091239273851937646961981092762923507365590644402780423512721799160848535561391581166196363917834537336205784229508736813304616549411368309184628424409074651277946247120113156274329193839605947642058209621973057643007034347401008834322881071074524570176492434025492212250389949941635824310850980487649101616847241606032554691753706690253151013332247842111688156475042517827074885980535734724221730693826179292513980476068131042572089251659416220802994659732082938615508260927305618211609254837644725092813651479159254926162599993161363149936527469398797891012057097271266700153219111619229848035591768894264080270296009911302884733986847711948554665793832534235201826873490739505432655364726743941905827741999335803203207137108786197887494090007306726501390418402027861854109232929968861039015541911070793272718168267144815058919583740142919038067932122479222597067154391346028409175443837739751733083997578030826929295052316253532847570189159261666231013141862010735207032294362978759752238321543991974780404959192936778779397548210131283008387659446607230991694043588285020712688610568072685002617783617008878124681549791697235810478217377540919136428326385370092651925567225079820744576948279171036466676645237322830938598413679775499066457936553834404178896796753624251211769732979055358919112762579825378013922735847870546726828838073210996585865876893693331116556037412142063904686271570558439041336853797616898470190386605733150156223140519574703688718932860026808789638157088000130410998930680915577404947727337138763846847592826701112985035234201087909709268816125439088928047827353883211952645930525506504786728480580893995774004541788314300467034437849951727674827771845625258546265425693786614974923381330423324279015681114358921407277537293212667393088575648257954985972433588481541535000244583825766090090606781580882936177108076016034258655199634995170820053600577460275300975364813189167383577942941942376911309958728209877832263603070217177485883551399895898510910099467370271235182290493836374920083259006214330156240469702472163164300368421826549429763657208147214663591619490518823332447825549158789776325067837316467442740773139379545658695988883487490556575782314902759004751289701930005627558944438619113263540905050959727832980006493448969913757951885219314248571132354990217414455594902342620678949874546438034691710847414798512939174414559986716268464119522829601328780848610195903230119349390686897042642220809908681316258390318151727061796567313534161605846428489866466140235663466956876635181372092549980004641997688329930981847901142310280356021952428391025024664785333328674656339932877830753478016978698767815060466932747653469592148527423883774295645079336960720605186821057677194877211872073327189560715590844312107931326963504727884934052586056740991849090232456244789285240405968352233782317649203990492096702059013568295965964441428092924558491968855508119792295501205874928460696349534392582978116797296295637532368273451592193075781602980795853406449362510133281190313957492828157573106242126318074333752112916295993446292356251957982613032297560527203233658843657755528552314115233651661767734163876454695703711797074897982629587999923584578714925033255399149979033636702598551299388061954771613106683448256552200471878287448197682327315908398276090884761565521882054591308954313659480860516583820465991482173452078770623693016265502738538040114958282384971426148234972497421917621002826060412143567196437639058547907091737895918951222403317218325906496007159109698760279777293816518975497118097756709906842080456565384645050855847250722571359585443069517462363645943960929032252496602700939921766421965089144390747808702288081281607755997959896536320681186531640948775777785933464920829936765030826452403880928425010287639512366151034984015274249960962248996138375954723104192094141054454407356153723520507430960322656937150200077403205482283801700067814151684132986421747574638779131740057149850941400751811224184223497642079771617052670000475367916965919976327363688663172014220317459261219551332615617988646961701025862571007001211834908855340504231203075509115556164654827804852048282535405031868702536294306797164651997966958262517514185985706057753865688961517834447495447953877351047767606092451995004768666090490460429338950509951078942234578897082266922428764187695197695765524627735898335808473435186691348938439821517720467875168381732665278755121172675356890510755688808123974188128621856128366813171657696233095265193207941267521987188873293623881596687638369672770930882055079725458049039901751400811095024477869850703129023968815147602287606937761255601817160824347245193272974050715516445338040141130744389545355916488168962133497535903463281696541723544935752609771056511260982671616978835241539371543944743915144213679425275605639342080083754085544532310276089100307535519055866429323100631951630589152130900059554036266674041550196553870198934215379285154057801159572146128672374506154557049918046012998999863845241641405242165848752494073384024456509000051568357825757520982418645248992364636339247811704921277805569684705311590704320532016871777599348370502390324588624782693364034002697218078036955658314947772024556868830720363420274078624952034301411716994660092049797562614538472644129947226473130083145281918491996933819625717881640080067379733205350450053634499304802946789804577866117546497424667297768225207272399072827993160665823633455465090071380319359518151749596447592291348034224683353921881438340754362467537882602044013167468890396129968784327670453067988316221753906055437444776456371588493932390259556038119337226979360159502871518249393320524329282725314399848232814900925212742664183381847070112123064064144145506073917909153262847170339458871907215027345329982447073651895557956868882126359139074076751579622624884298498417476178377167889028088579175457745691238434440373826237900825944417693897033484413283027981649245758378817074248137271704580335353835936109405446495669215187652019396057952998702090001373595910592441698890405693213664289260322887811761894473055716597894617356039443910306325998224726913456678988414993284911976877584569620559031860426284365807253726805994555386576892409199911565875279737028082704000704469280720983433644989445381186071345038769875685020429783330250022475629463824303769879043854845675192475956233216967441665573073283834560488359017021292772615250435859665198559579909253917195331337190294228414107929302217253980677353466604427614258775172275412532984458346010345280686572160988822482623280126968391224999706031865260345783878578302377684258306410806607279465169942102556187478980667377273322419699113433660749645571048491609210991979689558956355010780728443872800486278557605880310852775293880121421832673722906338701646525555867394808418226796455117138879642675864812473478603303184357977910464546939057319948056690845677390392547067929114493303562577259555308388533676663178000297871174279666343748513337960936885069709252206847201028203285275630911431328922278565909835650623842431627390280154525562412527514381461613173663792441071755190292289334808598852379056285445169911354416075491340849408351527337572462073749983329624817360990891729541543536053890167376371682324031963177362456957834344080714386372233875296963469499381483558641495985096061456265134108825285413237057746655007781068320507336924093894249316315304919827774650726681422191744102798782170069093045535153211535945277105553368545829562343785903630427806852006472247493527285147540254465035908046813653100825395774490626678803020071703556764075777306713342872582009130964646130193828132932124167811018083232147211755629926131244132954802262233180051666951751909097327670304872904011739114488771266581354846764855804204385953252553781388033204527085356801448679043955443427198245751221294947763087574256619829364220317067013633131507935728077082212998821815314645896113199869027286849372636356280629574757197803195964615042245782938680374656128576276378313539450670319862818129872108059170561142619883474255449319245175360713329712532029768892635792977823150911373053807515994724507972874163858301800657978176826593522494691944994912159245388842223405580579614186665790467644673023363090312279916071595071015114205403732972124829071768692144298577479676689121170096909623241904331661417376968044972344746123897155375478822261621166096342090089557245372210628878026476722635602276115178386703561526024504576200875456961000471866485444349178106062577272096834734660024920057431994216887635404412282528241986153343112426438270742378620520694208461698624422178589430898620163606358510159749064219654190578050551274789443063503963402507985527531056512983279944652628439727827186385270524293455256338306425295638903877327480343131742795598349021485143994505468049123107513594326793251131314922796199833157527794472858121019518136756000106906499617271329736879652775401505024152157789601982795341504331375777577614941948998644692949618749182955492086619226007486609542192254910338856817717558172496385460379938326037787281335970452868526186440357365080657241098358287891087523093418070339767185111481048075978997288583596647261952888198652260851593559065441277984293339823488537950427825101358940253174094945125089083499237324691533307738108745187461645705230651419503323384803252584181583365452203284594946924268792114745282105737520143143153812460980109693795588185465348397490740790224406701281510191471832389614910233937841540582166225843670610791405450667964666728371366477834836563454166876010519832180892719028593769290007937260209417837751308358759961031966307310740434667955832332474470269485750931866349373206743860701789156822521350417087084597011827492433183348828033085747385584999327580814570152692265138260695479972234874137547185416870492200358708559429926543288380654658356106346594958106815617139124795776038456844020360906175566873480378457363831328463218311384551846512354117318140440584439511578772413589936383870349512127174148982149020260619407650405594201505559375245637752744098976429653417606544439463852386165323159059746392008283717746462021813581963191546223527615668269615810356603245662849650384563171704493949850260297054319572935660182061149565861654505462319574506899239412849708226282653040791810297298650796212707230552536262489887656828302568995136057983148287686239650794637527730797781467072425312121339303403498994496377288201657618248439186979618410430944128986832167968115040016212064698271696616537695197759827513107833936204432962788945012986019062936007979515765077923933467499673543130627018156786283152849265848011058386909629396101061731079206896250980873148966890850187719246768120372508648734418841161137777663286941245897217639698513659584149255278985126259710500634766691367530542042112943972336793781518997892708975059551653281665513005767829596370118954111652190554624670607455402915807850357289798979435998128829805788265822825385011645185248283779445600228033561253054303193678874330013814793170211249602076810628484340093371734531435492852582687496875541626883643877283409684980518235208837620958928328833548003047789406906990329057254062242317775311800116157584908928270556421278462818673761389833547863619321210168979505653573828228679646110296761085089685540276384136755598150204803127752376610822974735000708834437113868525475817897227575290734376099195148599004986737229581858251630147584338712367930223295613959931607577269822898969387869959631411721686960016168669484064530215534543937604031857373049996110706550399706414499504997253335432654930774218134010504430025262804467481807022447082833979018437374403949912591873346184964022785004400844847368461258678499098201856034196597705812012859780267319137627986020920303773062101166776069025308221128214663102935278495428484934149604972889247053074465844502632413269741096602808869637309869698804250958282400999195160395182925309021994598070419167842103701009462704208646543727484801901136315456888968681563260307027313679949497506861763520418145938917968545573892401376900189779206267223659242985934624596783124112819474600427574657241979247774478892209581945029981898303028897145501493106248949447710467286261903569159909605523064839779794095892774200812555591461484837248261089746433361247507677367239724454192160887414579416036230849893275518168615413595340196458407065556080803548222185142984487951144041261884849394104246317721885939661833317788979728702063763671965861223845949545535477656242852849049405831567799962793276151346624737175476677512846804846649737169387276692617284082479516636786868076862013589499665818400812448333777232935603507035699748086922033212597223654023093733583020771046518711527484647911724614367983478499929472115882483181108361745224754669823762779382963612492155693225329635472520784751764136376098450521346031350622385997310837794883955488389912055254742542288868765581862295601200413612377564199752887369981742979106439235183383539670867288369857003749574117655866355571612970207213166355058446994488631662411341877094025932533155031275426894643261315830154259929976985263748500726434200810331653867771990696603065850806845582229943773147655111629212349236509575240844667269886341563406813081307242562376017486338659477823353403324193983794158298348002600754362012863197417293835205264334573035212786697297383048441791588124147270996515058571303679589139959363799433466746069443006847848152004464653368352433119846652250041286574585833791471397196810129986590815046043678945614312595984900756522381460991495698522888959574717684591594253519076568814750180684901833234005694334361296629869415031417077927103246572929465681368352594539067165331130259589665734084014521832269503459211427926090492019874065957943611306127094692662041002502437024632620557121338586688269631755675193361404805787886494141963567337007620537652894505304433551719360957498230350812437416664046466464306442326773961467503699510893880837159169613970876542099823356137962027295167400154436882426021219617536737169794169875712661078701277433365910264929688924027368501087568941393802177451459594688044875374765653080407893350903356697811481024187260841170546884755304190099552807890713474057085957356166930458120708154719527236681287196428370900032438511644726509885840207277202341707794615230018517183156498619029815750883438244234369825216987305874828166500706823992727689185513887134796700110620854387469670320361076894715447454818692214244339070564171238004920310036190242238173008503571523787896517195864910916482070202927985297241149844228455663782617289090171021964085353064981398342913573515357518691121692127724091202548322354817237895296465253889697751938960014317971216592092381711939194567270686487716916738599845476423660356592497990746101482149551357005777750285533654967988944620827324750961534768951430282325212825932104917411220246388492082327790176690751862754920978867897855385200839436186222520617058689126751736947322205682741272760481563593133561149035519502744191681774850923924699049104305054379046889480225805565022232257969495546814319892797264374220388756618732700808688372911856749493895040543378266167359397095920602626735990898182472644125623328143816247517808621752949922971540084725480056358226487690321073520913747651206538184455301778713921437496846122448936158860726131379562869814369469381365723443243874235737413587896188670353205733353455085755410569062134556502672601648113568605369708335682248405457848086016333940747889592299078037134666529457460155250778541032410794846622324353614511043319415971916802847433687717792431545331554878077161921404146844689194220396280304924874059658618360857344271597329761567066946019492195519548421201600551922155459868818067369051086006792132237970117794440214925003869386695624021799892274570101569501532123229867050379443802223211830695039086170494141753889426056974648076690279408867471508511455585319482619422858861780167916650391804018761354745263049863357522501577615860090193261381832661797202159403985430368413021240417942700556899677980699470772262282307922141094824999326369991656614089892483257475385566138003089838837895606628331362470038604122872212413252255361766426623750610308743649003125349533907434014994468308964060885345401072627401715670902320199505819917572666577284636531708161918609961827429915981986338922285584511057317149084925798424432255116622694014691307069069288887295430063800963555568194659104206173587466720015164935673919816101652469202636507947887955559474408879127016228416945777852498709790327471039887291005951966955244721351687944117433254724892541330538394530624454089357157529192619723472336587397298436615910834441138201881729537676163004964606227417892265337749925610700169833319207957772522938610945574509020913626501963991767788569406117368002210371542633701555556531468270942605069823456832287127888278046165820041417818793530266834751138755491337684767233740166458682287729107942310304517438599533473674903388255677511993641553742244057511010659953235258741001259640211003091762895642577247418609374864877109363070963087015163234326057069148157954290516665483319288008574265613038300835215237899545665665841946964309884638831260969320872267076057920026664896688820970750158344902567266653186771095311702827160200736009725354642336231206962059062762173730587683787958912366641766397578669351501766939460230215563494373544176394648088440960201247079158433609945503636240519593519586919703275289285507723200223259391011692688816708040214966175839588596542588560745178376833099536644417934284086393034479964487590127729751393903434989689682829843007210763686336575122902986182859367922582827249247551816419542436194707291675220225478502979996296603286447204893719454755579815592183774990056462932494088886832418457167638450936630526487960947649775803764734044284780805910353330388548330299514881334794560318976848158984971272974320251868331983017829773285107623317748332985516545089278063250856621570270332781476741899056408616299405266733871762167225656663223420839623392769708325283483748898652483717956898461480887473187603361742019994083051561283873201333791907529502458558206906031891573197136625382479423876940993510702992238477272988104733920126719168662826878243604497395465495655619256744197316160405919188469927005200373130228920054125356756492791671091296691523736333106913498592220921951475253105457874295597892638921980587255052705979470503131359571956558720650504469181157596180805448681281898031188903947734386037484073746021695016835851951440285615154513534670858973354889979590585072082594449928683315047930639610782866380442093308681465083691267165173839632074293757938110549820679813511212811690726077657808296332006625236178769118806559631426226203521438516377514038513301888259782072407695611571342661252560029232109510271998687416776695542847515727499414093335424130483778587380032425783785453823750979122072346602816410093380886180617187314126406067380898870880493685268755714515534126223103999818768996436973419569429492270590096493665182556093859247993545304314723857589714960961643878157193762742160084207449979566305272048858933259565531148625471869072009281365328267723376303071408205339926190285799385569958723943174287092312489744088666055210046525338855640711034909134529560520537385538325199872094555912363950858081945519812698203168386762887501529700271308694608936741268185816005396304294896557461461569608273017221136923003629614611433448062120202674595626756774539985463794497417177140954552695877174339193477267889299341582855825189472558678036608757749909366485122998197123301374933486507581459663719486397633735288548002910882959868161330315437677644429253440686463899614030153188210830893952475710863949422985733257733618211053298590883127510411335547522196938529575926703901568736738645370089238441379575329310418148104962135269191685656401750684901361702396208911882224288851717675701253732557328202027774222674399354263519345553308985019792213972596349865185226082727228069551327027273141726452118665551758698108995477154695278258685991856033166230019063163125929888804077102797357083794540868853172864855113908963991990038245957048554540723483449460489900940493443063524859093704129254379151965186825057741453289904709321496815244269876673548780484969446029410285124883527278461922593533667334573194160910765425970662165167974442322146560894072531407547774596918975004348699808012006017873437901793692821622446130174251412061601515822267019604198967092005326152124633871822751370251458845316150017937522132742792206838791582600945396051166216468137392257617161458630943889942720603617774992967268176651724589669293855029084692640119123090442567908907739607768062162539394404282537086793021056393802318931122776028273026493389390188306138046275670243882136736129907986202233356021508845182997793697045879002821523260290812489685558404655904485775762899651087569506313042055126217715750903759654931686799935863270550259433705502541805415252226283184067211384801803914826920664670836001048725368940533225534840580526579726727195273416519569644970856182201686770521761997975936544366005824040700353973530858906377236921117839740485284751812930548523655631302348746159886579844918924751925528887801841180740115733374633577447236379002981042726230872979830932118735578879761520600227750982903979534300743672328669874032333304822191633362337360658259944394940882240881275872551890941519011712110706024156425488692999418331237548014647410978919446220341467637949673132474149209868053423546552688697038566504837899435480394263165984699128283548478235229148036609935357057430365768158776852422991398602958752720332106423255756612724944369379685473529664699195013217883909414146734779059687671950958200335086010536294438628246735101657657543442355119245847967810897356296669427515001549850204149528229213011131356005828543712308518575713469433500642434992953091627228514423002586591405799126985333688578562027910330799463934059547379696353600292822052937520651451626983652187790207849182724643519649070234931171638400667631528344876756050378530863702005326849569743959505044117116894483545146895180783772715549106961835200143338434667267829772440291139775061318666622457388516334918308058644571821868674112329489258104401401840145171204256607031849787723433109057452707670052905184738933029918841668684129599606532608388725850032807069013660241853148257056870006044409398398000559746575917591048013271912616855040309218894746887192708282383761144007580435441921412634052167624398468728299763362891875320001111905324568373442805600038141213818715774182473089404663682805385960563824263871399958031409154599503641774882550342404035886259703052318534934157105912748066374841986334023962860027932052535966389345351999140541610022128597121400025608649339260132615910316732303356188315531347406129006566385633297365295101252865681498499601860396613861457095153781247700154098859158255331693804657998964416681426393782163704254587015254766803439767481076694748447770142817545579962930396792751681878084753725850882786017173369625524562406384928269302362202120511925264453951343909384160323735642081563776752117693874386962952345429795932816555347550203250618013221773307266831043098003283008877940985230905615309122279781904045096483427074851738506027702479189603362748341680216800325498213545449371188935039095482927559577376045762689361495386489381696498357441728633399309871884423027112399190258323462750803291761968154712052248367045833874941453751915720787036376888263460228192775002822970142983429141193630548866355986574484807656003371369247817445821549206161222435684362837344338494226426779993256291734777791272879117939337372180536991204167785938719984277016914548097771645482662764552263243582069546736411524372098365251845971766075119347612107911438059015982661952666145253142424389315275505069484757395196766489744006717283021532824582337695655913564960339804371262307887707477557547875292467560560379209229569951698443815585957821930832309388633513350471819431234481638809473716425990257089503974491900462437547798175470021723167998224728246365006893924069264429631280131504141893599210225567829471890150856916951126980724838880370881404847672370405785447936953667128844818494830356137498689898008192107876350674074302356933312044761700255049394653962489634340842834991000658749764814818085735330397804108910142290914207244284333431316487525511626113905214673279023933601460661200243537039414128765217923175641522948761742267938941136078311696774895232465057694912327568204912591467631860702756048615526424832293028733280209111232691493532836737768697894096329047285729234769561820227316748395348336803877245411290381777442450504448935274271291496852257379869321931390845126030288453945502117506940469376331011645288105669298471474621637384452003699462170154762226086049247586156814605719050947746518567155483765165761802376333623783523773766604107899381284724220784869826067279909344851100674900626219720307085367518061244781927049947446413172842436288919970736352514579081792151917492925234640728532538491563023832564533089343834537711747490437116901462586016499979448278671201488269293217224877283424044976877796386276657786126943567160861701104436272820062447251546458932556008547148707305967440308477849882625884634528043271554091852847741347733130797277417288910597077424956205099887740334152708849742901708607717705496741902860979136787228744368167295613465546130783394104969926065187006144836196227627142486611964696170831915275877070345368900383126934679478277064435225848351364308801502635587404320134518421808064381469626693977152307781563656770581999733302696361884132553435046449144239002693285232577666068500401755854655559177382143645643456190328578142755927477204265740988280905002502634122046774948691672638506522216253638858012540895326435629426260400741384085758114305482007041870118481410232587559895906786487233115203428218842236022632660045848620034163673564307166398219590798877336727541049197828332108788324411346182109647963241659925025706678219706933535420489282508929965919875572156109252043633616982197093321567601618176444651865121661137021644118785355313773559975941786227154991281774461280361467848322518451689337022075924012631934775299192819239411924338721214578199210068663832507481424520797150476078230870203369884193176226812371368491246774362309670203029111442429646358590149221158711068725108917821327993826024931730784666287583172895445314714472019684665766748833695915881113590113415596046237795952826280427294404802364277753416549901913245108002940069361378858981445432226255002821684335845050051574246020377003300200906868479535225600762190333840662555280487589067631451871871966167102247615583446363725544945487342987342733948355365185578663232548551772731799084175595887087611581622692160752038066584838046842072785236514244411617089964845905273947183109725906576474571853883528088786040697799700274578719094551372599731701385672330291146007371295967626229079401437168410808149132698855355528172753917050992708236759405749011251384709394863054497946453233783037818430515227803906763184090890157219444321173347507694240172945192095307364960947317769396590670216611482811049064801796746708123303722914419198894152541835608488154395081003973077238614089571624688569210631687652224979895170722016873103346214086872944567218097740354950980394333515638072250953429602442406952334878470990425872088790642549320789406451987306565408795827070184053718115495128595418702860202745339909746996707618551643848004062275324171573919893562356701364472956933676340628649981608684393843319987005378644447750335037335737151649341287855605112866490129710716868493981977431422855843762514681449964903865609881496498694569097236667804803346932431543348196091691109543205792656191129505263008301104808286071645590367439075116710878832436140132081346230515183882384954089431161125651323512464033901966280805366575628545385030339700379120060049197214679213812074758036793045338233526907914876786251955485621704637461043088200727856208438721390080424203111827609888440521312633393316739023176410287206993874964448580221684500138250128320815984076286341371591347925945553201032685476605050362168049660497421793175748519105797717901633190297901631362975442966154975337645285858246076564953337326460600533357691112163825447500547436211190884773469785802479249922652785427617756098351867479088833313671058936198927601386002701127043426390129493838365815595464014817816204120777105813049049148842628256048212574253976372920692924040716274893187495230646238775652397915648015162300542599321538418738321597184689264164849499403693033610792040363252470628046497771789018168648634160944664084464263230608993160268167968439501791004433248090341206771556602234331261324610993947072666653706761143679637459753192286138396179673499706683691021079778442271522918533863748043482605343516178698985791846308430541521720536271781369476906481921462558256108236275370650388710092161349991730410216675658981546578980889994800452530491240567528312595295239395074986711627720422000096810478387819754072844309776953971358606380563924830284084599506714047964617790137715064384690878802952637662622905854319113820442079075679353697932020008272954359451737569411928070728818547911021697404158492420823235566631583812313518508488797923420476631789534490616209192681878016398365182289113339759066845810519033211604192868605770116748738969785696568300568898048363879616689966819857406181546986379989121686151110688762570395418138206578813418197219857186820410604488371564805652533988821184937027326011285242817166767718163969273115740808575245713796735922758195033962835624994821150368654193418710772257081489381749419173532622045212744256811869183831079564192540259682962025792779640010368496619926605907907469296954343398659786805412229672224598477334211054266279055777243720693350544490261894526185048441475317991619049492287720845407348459771179623667753578117839487478093013645532749028312641288061163441561253760929160455053096102190791830348237931805692922401307122658927286400957062150291234717872491266842205880458462906976742824900854930005463728941684228874716541221729060769042754593477282370717322670536566867070346192690480538955533671806371895328589565034050052095770510937171168923897137217966562740481388901402453304850171360021228916109594153239626876560125401987906563057665774513017982712436526986911623032852577772406739587766590341412657624885346277784857904926125587211972764473789827639036243453939565268413974302890907021601941289252454014116732014669863797314595134854869536435521158412177724620770077894471401280030580802910231802898994700070213003956326234516021959933089420565009269606150136079236284751670618225168481467310329194021271711941659892383424235183568525773449571768635050883724185690912046310984563040470487995960883353563127789195677583181070732854151421828616039296761696456119674673828442458394088284100429658251444532226721633200732475852699573157800636595091727879926799175503560036312709968757121844943358540299435835151373453513100175554134434651876452615070818182906111739191140630083304810255909996724962721778891704602095881679086304787487458350005569000428374388826475424676227696434527514318863013857307967535268650113240763226193499452328784601735693512803687607045220214949901975285252030273884954462342853931615398242328723666967513798620062112875334629771027718329019125349587154966134468356044193686568074127460211882841385252324688628459086680395238819076294553218067717169087078359574750526949267635397712911383092518255662546757090820838317199722504410835166850835106516581272979058860755472587464264228167410211310293093743137912745945349251742899584181327943725595003967040113887593952363854763486550144667883107609794882382485323640954468689154527615761469050136030262073932311653448006375697122232998657652785641179314399880748990989812857916192174116371395920813797297982737355094575034316704035035471451170571878112521652766883131910794502388858139668286089843292852261395841941340595552556815110454910127855764866804687850412692387390923595069370149014122426556063038653432812825706766518728677619097567297534695190547975712417052254461874175258611738956315189218078014272993078649286614393248799624917395693170417322223915471808145391798145488485314296347083110034842654730647706086520263265968428474479267283511471305591597119097475516144911350081839430691567806704767005543462595465067392010582218545369767408546655184363872256001615554717465553480577411152794442541544946971533003577999602137270779399932449543175355849208479969819479503426518879480047711809389188387917812267550582583427391952975312305701103646640408913875298088302881788490798762453930379999572289151762748791286896948344081217358956472786548081354783307367263371639492504146467057626330599161545069020191370634801552831739636029077537477976058734012921242495009507652616941601546631410231356464872625881409353168579206114923899995237624743593487595693823545475229021165730371212763980337086382857998016693104773150687036487516889788385006515115997696035722440991890903252630364401237877812705611806931716762998223359115054917320345520249570248842331673386697616164033021532796310482252239784290417539350288090903100510719323710632864134454626449191077250787082842638898927230966960263573532608946527793198139185550188881453304760320327417479760510285095625107966367045841759104030377945508614446738508292750787181042849278253664244021358789532857727986020837303130066921926178504419820691958269162608857792860872019329504129135566331585074082248290109940110968775550668934196535924070967637785651543188150740137985355415065046139547164121559477960492806500540048660776952526799091625132022321543774756464647652633866479523857448281286958268111723505749456022654603593004291280581537805562328446333505394676083265024575530935201758952197312153626943783181698344805299645524715700338758158872241409065537088804361578599606011377686317516547327204860826861258310768876229321739248689384129080128216510486532059435292052086341373345097779550811386594755000764432699718058122311500029572951744341624015714022716198733837130683670748377352347549706654871501658924578828916473339786750168722401994571799986165027459328872005304279671932555210453359405460196563874303737856834136373117808511236841374765867455695557265559094759676752063716033990564958940851166341847598665799415385151468760968950078194448965605757588618962715716283885884724576993774373962582782366470721735559881619274434180190833323327710058615990251891901626253957257172369812790685531176039480951729918290559651255426979390028627876035552640336835302056304194512201861190195742821556834345174572634018595144548596416432987377637635329237472128079380999235446635528637006137348927027426802021688269743028450786364973779638665332780993811299576181829368825492781702966655287167708375235446723036124800500159036993267978779866255270682006104946728078661050106126154187169719437221760072835872263867489197468350211344986704332311529716441815175339347794630254644013236434770179017101230579340696393259523454278557973302441064683018200523281043742735085878578975244568414908943008100988571032570263669300556114656406678726822856911481977594580940864628565571042052257905964247325572411660458607800420686124123827894211512633639247355240328754134621814715453616764840260959191350130121320666217894582254490687222823243377323064862905069855819214288114704550769990783349593411451317126171201682621173061423196528743049022202353226733723946960566744874618112903225546138549149850292407933189148295097920887539356196645436524624500055239923547294048024121210281886951594402365519735413463731350725140745116531410033328050648788322996208003637009078711255959145906673858735308676792361514777251060088363926133609153763474749112301640920383440307723900320601628491428135881170031591457397334938929304260697747772660823777040671283707261343718255000963269214701839981485219162732576024885794434878101739950600921752073081262691610426297208194870412308263214217886923070314812758605789460850993803438643239981314817634828516107105817707812770333068045178768136342504983471303064050464592547240744686920364950832304950343264375434725968646773950345491818020456795836068835617537774209407551700353404688577874297495024201322897353530088136299733101720502558085225525715128263450058733840176122990928268666751284908673519591457579512216515055527909902815084830222211651835586591188569233612090458444462570329171265153767711037478292925537357907731309435703080298060053344043327562126399266957390177293139611125266513087479494569983090871128496018488025359019457582293888240008030864085662896786059142766584976563990040947814148764945047914855823946688679875600347863609436597679556593118534593886136899966494216155251999372201708127302701962905143034790690938988340061716575353432205932504341621108483843141888513213308225161193812777382885339592317824061242553060840856296690732665440600897586637965401896873807637636479060925138218156488695531873751779648494349162540134936720906132019718788837557958752723049322486440252447658972250973125862909247491042527221283215466819901534794858791766388382835782823451417932774733028232724128114406064001994053957639253225034872517543471738578389106745631495216817604443684013017820048938134330400736480863917264432299347240686294177423434625478266512400842644140227126303111695062811610395112947138032642690273660277523726663815891641969770374576509954639046846646110504941582308317157959028936130551105263454013682698846141987500645529740884046357490958730181013911684637518017989971851127222790898323428672344891520456526647556155486750109043028033495176440563537336717837808292363552659633509629620566810118842064273382508537383351684555082727320546282683030489498044534151860683776131832431568261132416174423779607171375505450026767500450796574888033497422978699767290649001876749075349869560334259204904358993258617692664412190724603613620454033341928816721643112455747699462045247614877695034366220708434810791320477335898899422152247057355075207412024453398441080464043558993174779482902097672354759799966717081216564950487461990124295585822966113070531932699662191330611463810248599540640578088514565082464215013315582922837526019887756505954043777952454110736599348930494396051228593507527150547629775165174332263189743505259028361622444970904663469425688961985355187177429966450592337966647745259934156220188798012587913255752174201322128632342039388306733802703239315416300664813400801538340437893516664751336599535233272928197862770235711961888160985094040720090705349173146061731819169518521232263631540908466798995488493994978582879841155900262236819293778637597281433412299989316696501321849379105322940442703810323948712987439536188619425149447309029030562536245453279259922299018038316849746502016933381056981227824593305392244766006288902751564187568250008947815686545556649990153389310390118469967584866944236462889064980191826661413509393708977649681468208512619157243579716114732423211034406649961601702627613285757566805624453102135351320132888454456982400688984824841473744009647624216319624926678560478764503622626745521233631137091430924279133171918502450438353291914859277573303886213807709740189152807955710795459252846533567115489319386465436680349777995702680257935777795453668430641106358443833073403173056296205497667654041878295289459376207808019633826216933801777425122650256389808012473924968213126955509886304890288418711518362176688049891232754318839702221211724229010586619316618349247740668544478911946326244867264471336472295933208724013211980073498181662320620995572884771107450629773469898612436781602397709788097578880540359105054981882948323236434790446135306531339760378252763151070669702498335587192443476203047808623320495010886230323273630193744232176733228924359029363987245468238011826320903223152353679951495249461740918036902142484408711292168289691711384554528776159326323412054736035117947464795467190022239045378775043819354932224522270885047820242122354152604099608968348131765858640446149625732101530622152800334904614208187726492504479839323894954213146570203936037548124212557112526250493047346155138687618859831321213840573303236262273841969147608059667140905651534508464862908647600158867764326259855747915986481493508352631483619480635628147839391806670201693214671068230351270529775538399434837105679337935366160817890235052501721986474704918165462765923103837096931544863513794914155506143029980143907450572261548242559896912276231935501645544172402001467985871563182411963611643393652525394609105808183960433461715444256274801826036570484283849425657048932207870829471360127412901319785296988993217848297600121895230331286542687789960207473680309673467393035459228509403183783693819451815383409956484433582878314339519246363105638860743749798161897576832375067712293472686066406428209482604971091614455971567181574715311939106103089432070108765173184935836704997644435216361392819370476549474935149576140778386695947713141535870415242969724767978998778959706825634984654348930951178842472893452485731189507492571132781713928825516027919862639610370013882324695102839689243241513307472189756716405415207477732034630185122384878635533869205306459841668573958170547420482053625362426711116261775949418985104718281566099051644690906930376908849543860033631852219313023176869292509781036766406102674060066134783023343711243303838248481071525258904746817866281382703631586585897256329020549221661772241355834146209531079666573885876721314599560324919412929051111067206353269230233400828202916390545346171589757738515189773294418181414436221609269849078853977710126633847261778914168836356457443828989217549109820747549040218240520466378599015503518960338371296357072319655066134429867209988341295307797678740694182780030528954658728628131921303700479231194904482568812440177584453486472542642477691684641157731683560617411214175595147192580720361316490763633266455466366281292277614784387851177160273224759048198629252322590211477621069223054354491767795361197598115024358078874247596535735754481284655221039068252215362836004351717610054207289779161902190090770820885132716501334270376246755407496618959925751095326916484919237138896296470534728123651674995757964090167650248133122752421370981064192852957641584976415985112642592706107319453483532480819992070161462003909114543923323342984026636130311846944627514482744760421018795753507374055865610497323488443270269293026059017243876329644477348701088940207891613797758498822906914418217191080805974736398532222331833702274142759592707934741270625486039006364299489349380234768083943708948701033256726016702871575537097305936339487003460328987893055163852163442608431905034349576396335206191115891220662492827524360248627398167366756823247160228748473187562237944860866017925212673095020606528907626356907456478214634225307438626909061792585846869184030589938303855240192176288966251920177027820076269245981083405182806478279098604784000949164070226871322523984945480540534846060642383152271305743148093559506772123253829339992543971669281257251370308405045461572002554793835824563160260010674594896999636087896223804408684951704996670166327844604209421820199599477557155613696456712287400808302434833761988223416914010574981224526924244727241270667956173196674918477372697447507973467036497064723886481202689577779043397821583598131507419501941612675675106485043712708145543418119687533719358231912590266029402329872569738352344993657396934189514347850903078037149457859389485316584876673254874763099658770250848000479898679832820212569935698069748568250514469465670506255680875975946133971509682416668616429343065974639675357152622197552418563136730999031429065367902164513670715893997760184151667044629507447082620246766662653003420862639919262586946238191512148018222774105218764232961782004763774377217373984258372937452767055590051134109553010655776097705259752398690914442251254692282705022648069567966963199480671427178216071649236735475271965330894823317455437899783465917275464188417587347716350893962535473581682274015695997123995241845768968948769320941759536947099294412412976450180109144131938706705916118745907903212796177857604255005879832302801748057344682772654540227624807147032143310731899606848712482984524567003240147547152797048578813822217417414915110896645299255927691775557366643316231868003215514085818508078361027735483674740201069533019548931503044823978217411986845761368564144594662207645208847655583347022223723930880588576873564794819681584326918792632225863841836050322758908382549576911930087428535944019524475554305508685829363977931435122960366891925927560601025922379881653425780550694834038345250037465568979147857018841527441978810159348080664124415703663963867200297962305170196948202739917085468105788080611433476517140771564884188464131967107995421995874460634050748738052662261756691639400833879304293988799813514261835261604589456161986626218843401450705780810769002981130395390491885912656949491586278030448541932326723994992863845068713409861281873636067989869629120449817715777202180746830995588039944535570579864207365028396906012708825791312304551056513262895078865538612189499416216649418426424167145662822390817160684979514289763160361023147654563639824221482406619148153971312480454492923886099959590879401908194529030815444820712955880611131982864998294044172230366182025538609209668115206548114020548294165645829192601390053995672005522861954153921618283544273098263865939189983269155226079006308661156812943980414136330367183520755584408515584531175914322827074496047697728047499021136017266971803550574980996936262325679749618978618383754172534000390555663284568893220480443473555245690991911833548331032381617220084184634235003670435412450983697435824210481959409652078661786363915327779054858448429598543339621566055964143397439036115455112849482917502648137585929580308234108144076525474090228133428585704251852663383744028534140089970086909342439131121714238933772984850058812865519872143741497343711694221143508405796237844850543631631571597031877011486211885137709574495376655551737400165830046847325350259230506475840916262568380130800303143827715084202359779649105321649752992168234086357882752505845844451926309278330502119264426103999302978261141152880721004564542946737252603969520084965334786936072908006920517229953390499233358046864646083520815357242310031461099679332778032956049341880704424285971671986394012743039290315866843261276909624655671919144270988350728725121505778834029681934109860114471163856601394305087629581560531533131021293348669112223406883853428306735934449831034697400544092666741460128954010750899042415681985630480163868891071732166760533920164207220713618943871210929690414113528241445892337143146743314970867962107069794616265351038387917680850016317103441612353423770052473070325732830633591232079168936828989154425512288692446865379582674611615682971889948773569519952022748437409633660283813395858555917857544937246723298294104327821556757961249307694062178247429838930932230123165515262509758282577772638721343749446798951243821023103677374051187269442873129523145419727583851243437872532792557019896315916434324644934896142655386052572615734145496970782597403689134381570033610437187336809073969921854215975843020456320838908571203191712152639607571700355513249752336759111056793797144138998489345601203671147002824003070532272262170703897698494284824825525657429228719676402391731212022106939635248684097151837399495496053213028365244917310963891223661579346930845804466681528211481085766998734916793641712912979299226990197929696152528020224302656861055039886822337052466472855125026730404946211603262445378629532101483965776041241514300120407398184370143038485930281041177237828283014747288415282898501795662270304061820719782569217658955327509404684861594841513551295579565645381869700387629670937747821780832745172145968437325432543556497630721446136280668254461231436437364428204814642434901836811483976870935432884256500982180711123558424101847976559561545054823086563010575416537144937470457083071007457543268565799023261251625095451529183015313184048936029217660335937914525636124984930170016003184822074992162719395612830530204991281381999536011359474392128805131706441153577857774048890111547154879234219087298867831681277042936259187831263661905418682843681313125252111748747185398561168762352807604706250032904407294504499616924035129871574275926167988707155459629483721606715244194990813873359071856704607889294920931150404463128144236789110383347146662143054183623392415376672613834987659372797227351647065350598654123285177802805924050134834775240676718201800338058589085416536542259299722079860140776498039831778696147105893122343670864792304520910803529937780927045478977350813522782762008958616059665554594674460702816731954993682840298839335051570975253518039197737189358365872786079427424374272455431473470272890311370130537141002290123672959111417233373250242589899247362020532597720078625358749894279617838872402826641729506103506765695651427388535031182773624070540752362742540581543162490059914510155335465435106657138913033043800402853034988698417725177028787823627144165281213099084903724314903899802840153661806513284533356180235155944475514178786843693788260959767276655389541003540365850515352981004287923431467971163387280344598182311965066207071535243400410916770581548163369538242060287958626560944495287964469627328026029467952724670373495304059319989219584293005546592159161987645393236174005187491599094935211863314948435303626413721081646409869501614475014915699614190356123278492273051490958551879342485653748184869441739238719227910263749251968802537495496005293117507600622306038905730556619633219623683531234577022240431139231807707538204539245176151416389109553778694680005984000034817744545426283995581776808474293527209015648712014064650717305105899368797981397143601241067837162323629980457892003757325057774580619794307415293334180651491135333264508369330138893581511765856969355476723030346312763694350410379452953366192129988763415248836902025254709869313933996402559353508586911559974400833479256957581213582186882544287144970211100818439648686211852298687694260804610050337753935836065969010585132039827983963956343855899050443788354592664260148644285330766101855915623148973445334068853185415430258328319386462816407090467114905291298974574106177320441579934453834180570676061344523761846020120345934991347835553958540032124984848844936937337630190465262455515114198459394291705914765382443018677707956216391671826308116053295705786326468851170473128713804886747302974572842470974654190453250111269489434723631230635292004033995160456186563782279688805148066306564651776747023728173657380054118261591794015953018718031239838048818962800734161616236933939775919289723509968986531479138964491653779748347454145449184902762605590969174749760774545808021576357277849477820695313621204519898900758197118985704785665362882005970193002001583568091675907865382102801766388210463309840784533816206639001723719632256980152722856859898741184636360670895667970061861888673428637862585453478581250680793328459614656083429955221678778951405704969641115506715171357785370704276273078987946911353595249188651696937035797683617597821774377914423710874207472177900168942780710464039447953483838919564478415888160142135443963422530914613244369151333760166525717378651175738547385339354871185535782979905814794050466128380506154906823518861179642381442312106653209445687118220050958350859330683088911518778230550494728288463104603656306301488882540209639532141554184650601967079504099919894070349058787389069260121590736573369668285351892196275395520720981538814133940527511581923108793958676526423480778033220837094833136470342459281642462421193379297922877073324943634658460088830942988135563635971960136317925332658201433863343180164097342876868606773069241039705461365440067293262977723503250012733474830490427005707722416770695567983101074920097355592090273030219154830199726509407288685979108542346327265413511924703049790531015894013181814998347002874095068254188854603182091083722051537143996384550767890738634909967268209279478386756279124742138049801276503139230436483385615100506189187283157004795047802032355770162129966294511833936778283829040814318105060588146585531164523985681144668894607727954704554632141322897423369273001163749012091844907763236239421019213931127456342370220636082584107403131232761074726545812414727361344189388257418226924364975234202235657355893480764561504124165869157941178681781705203784030948623039625371664278917407262950511820061048894398844663305035570098952757240372594504384654599425975344245305083507867429865607610748576721451611096299790736284286818147233451341187539454710286874195549792082082463837813652634444942530806283742663193642142676730808496398834746599899812675820732477144549578856365330035967654628002146240449687399943968922853137614809487874672582253528842311169384628103206991730956458876030617413514126667483756963363411536286813953570718059352931746677529063200153840426740891607070997547096504580646194028484519404966282596789507849954943835344109492761732968699381507733368440233595884168827946100693718806054832679660181295121770747550115624350180144629232450423919268260789611398560847532326390694176803624761497552711021419654034841637711489610105337947106230627130477128152648840227225115424475020741222523409183994289771813648921804328722412889371745578422790661259323989790204876322473950850115736925478584263468207005460648271999772545729060276693773878356054340850716943654036862342008748827232225515375324049517563863827072931620716166461497160644142454397629824395235705471762911250246342530840049178046650554849745891044301599765723602872068947435467143178493425255856862927104014855196546507831353595862731955923581646263968915112008851505662637164551310876763344802942351290464374472339069450153012671364156407166185221209316354883559892748689029599886428202470465283852149841083971341234144176143150513289671478771190113303981686863963656167820792249888748641543536424335976257334084093762177750406235282453387429067860330266208446853912798986235480022521309738337840419086785420489301333589337708807345263734034574177238888413983507891401018512812180650764978000125055262288703195731097925088396107229372976106064186118243006642723043035540622064610747086798159543445629635947842133405569308424007373616064850142310671970112470171680458108391922364893033198382813927267273325108138152778636097974628310450543548897444016697517422265571965730303309138742446181882727628298033481286789938453841344922068017789473375196329708552926840730351196547568207308300177055370573700867791943771726539811178803754136058809663990172712655974965736063740127751234332619999732393104958899362700405469981206816089830121727440847885731596395217667799796210139204284847159265209028774754392359973944506875252854564487685628134574526689241544943266957060596158623546720908052044648416412006072773534251863644666937846584541320261007476757255775127606847309155679140002624254199790049743181118923439375341135766122320921184108487853475340575569713874890380728735318987475058145497719525784532158743157412244960414814736577159834908118779657364758334936551693200972313354820949599160178590984386822064309047416751875941890392650347884370062310708487789770310080408795445949369711289950058303245381972974833682017248739287076474874418166314242133612740558388733324630996685257510151245221721001353181967548846472278234431166926548190599274844388959147822885309233921788149644063256153774371869248615488581065192279187314957757671034988017474351997141352549572453684247057233001699850972036584345729811636951114970512316730585095984697486723898191443587298575551838234745828396348224880344432122807983610028824476228667384851745681770881833007850650114950150239365241845067024104749761016267115087003573857243583053221789235666817122463474687935715191779053294714415023218439741369910201083314872615989381333891783334355390445806718224196838816938568264924777285208710578363542668390113165656321718902535561129614809583863976715114527920538069656844318700572721366364464085655568698307584442249267570765779159368880398529358438070195577307502434080869287117749595737919741628522530710541002595819903775986041818282054879511950162926195213032368000931408026081414014103601455626221937118022672409034040528443105270842837270486702375607828720801256205883557626082154559716847978227450292836927038053994985296239989356668534428418006587152592220958703726998440088383228594185912491435546228818407911149228871063595101633783691680989384357561962041219040415269436387719524264393438001483487775715874514368969415778569211172341194536901316873072819876398265709349631145722439549137789003974258353208731657301971657064652363520156405852866151346178916518525965762561760480407821865642014688322624203428173643607086317152480945153577930287723574836299904784669348722578377734962073833431456159651865751477646883036040456843665483495686671840769673675445116848831113179552212764902263606120217614602597598269930740912805554246005692360688169218136768088130697501612303597648151921284402634691223120641956154176687717887740346035132727038585516581015705512902831619777501558598373616058947783539168946074857313537030311356686471906536823953767587896920026007752206322629005497265091181523669853314890318366061420243321347340654662455550168795831612217759121686816842290382745665501270144752470854913195619202253029946021743206812203290074806026756760122730929224658129627309311192675858674530618794510023935430958338218269541090015451245458835351818649189097291484097978574975774137266763553851902710844999584835902878334900645420528866908103847229719326329389391370298649225849135204597597575308521395811678350887113873211220559303958363993761334701844392167415889092919266242960800454306973246661394187116370097390472162480420054801305376626317145930000043436603253628187078082809757335232551018918715062210907684064029679945275475261859475527081550710810341355034320037586821046466910487189960599628116213641394970205291989931748589017032322632417655619180555872571799458094676673756425040152123985959217567157844123666930193718704379486488940462231064740047124630116762511211256402456094187218842233474742054464196275393499711670772533166915071650858316516612957447879188297123260466614073223667489956819455236513448045054371295197359487569611700970091383437900355621448443613358787788228441966559188223832335219454704004671093558338435370266679719947771506155313144612051105999233154776625423669676364246488098083683520203128554697708871059747766771857351015379552017877281850309874284631801970916784553265957387965677605475980272049277152038890310307677426664711313346358056117605976376151288667165633838538536169482460601717609778605793476286460859173026591493467775141737322490544776810800041236940124106458418508943300137050839215012974925764169522933285534277338282545079155525657462360117552493232905716353639221106285036917121906985899155109120255134650972152019980558098361899007826707329091919244597331854499431372539382748127316713479276986380497443555772292172085640537438220192231563138880093836483747186766686003759413722920141643037686093247747898909340833863623056889810193736277131362469335577294021372345562953674361090547870603032896233263712856691429156813343758249299281909813390190191084281291951389368067285819449835666257937515663133974649964989796131223028108698566790202880369963377113472892333092182080750629607100484503022947778739301122728163705249875354622314572848285577188471784545702339582905228875261144880861783129874518231160274891144478776006437801860600332790274098352611802981593892953349442639091785252093792297872664311178201941197824006981535690650762262974056214158097912454884654854622496812036831452054650005506216427886846842347761088057889567264694769023240939371361854918620846276067674347010732434608885076244229637386553543911895679730097771554443696928827576667319685433709261069873408960468740451853080507335890475473976332525767650620848116631774123380688172685899903248489272862379715684299309663546016387307733196630352628917165168541036757118192550028696747765469385710557122169999317804321262277039616839860200167839383674967051367651786668359820889382373334602910898583138885187027017415227649817109199284600590954219147839209673914587048683583590693636520559363304933459136206373261727835124849544996980538350196845509146002728067766343367358785609869860934928263930225019882397145750721518512065057898903504201837022536949017821201764352966374670094946221309824215283486288947758859514468402957011667666223866925826170902087916131668579613675686958348186042390048689613334386444793707066163076696515295889687753831518928633786023789353932532630113815305762115417293652672193944546995477502002792480351838344055026768938585739270211818272120191556409455659346023350589379481369153502554270892331546360520592551469595528171578384986085798930649728921454188194639241666721926097191967934130113114601486120226603374763907007805814595042137780977119000210367103924540988626932859936743825893451305504264768761062469144461639335961276092809237753547499884248350847260241918476855155244905647272664862360322368829629029947552888549778317961330030502018128056818588533457035862729996813242649115133539975533793414451025691146165160733444466538906311733173844393069878822610120370839700581619335494048092557404418620090998498446090995064293372012185216645141778148683280786831277360530152859877746709084412638611485401130719682355333582460464785204255958180857727454150923636766900724220717243214426848942214042920024932926621403716891103782443058236102714995696474794762780718646494227060468517216802582601904705702635949365840237962548296883378066064531330158816458796635855298454389540756124546194872066495952618728257183924557213942648400594630705725183653265664543559787875389163635003742816757020830969409336662006959499214979349644110595500756548435333254943193523757083436185326116651229847010230855126530743990814876878341047675721061697517017502400256611618413552238692068669820893786781038703057821917245258055599284563498323951384238878111091278256647378874381559585258575008772199012546103122768220568913635816829619291615223808563778840669494959683208510930027991290027631176956127670756617472367715040410464120909694906989528304758559374726923514901922870617982617057527385515183259572957416654167457385745831702266428194952380049268102877776804699562266585223388303579499817780040925791402824841570973295822896329285860549377617595662548095241863434369310081275114207996116298938380508863593565790206548311379302865834531937808630514851269129033066825072222973921744625606591568101462498828976301034243806060363633427795629607512068711513595956540553666070779868626998420039166667887295693916482205947029698292538048917041718008683657808803232539922221036783418141966062644863001556857000016451885962350920921444069178242204664655231870473608642546999113768334128830544899620893676763269690110019982150737959614379985338375710224566595814209526402508697023962757643768427833883494311563064436712717862939218104792980203327124168870362274019969516738724179940675839385219204760696569053183436447921692861631361060647328964854984556367219150623850151532145633065419571712698723105919974804118137363624195294913493940559606238712751817743534238984126417124990783416833294513530356717084988057541886794137021696643249852733915782707566995446929317167093729486478876174061324426136689364387860446624686827845151773914811153562044111996533645658364077795895226398599451677608597540344005525801670885957849356917187785278733275948590352437868349743222085601606415729908701534125170314104635155525624577048795367990082403285645728701240095309164741846504537357563795956261106882667077466371631660480865931730776040291514440242895267876886796175126647835023405538889852665355856412400748847744704240180709566203636074817408678597834065890947163735729005652418753000152738022163672137825963826077468579530960645024555668942070992533758646299080396127594011411147264051490865167992230210682415888905284892342738420076913466872514764084101998979267017837798821612186976208949091460370580801093079500574601299790153722297666135467666397226743923447684674013206851700183711565099548444542478117625043088086361888045049542971826555456798789243200710317369962345435289573768621057308509170112466514977389688345488782197469066288565831773590399640450155377174617589464972462185509062420712808473972908973101863758560760828322298776352325459944279085016829147297188379356747974373024106965647465304801342844912154603565039036139409177418819493778240103690483179602694326082237718277117070816006277175703170475143683443498942269383148818886243014316309794055439097948477665116150278094669745678043452160692666267799713055169863549269984982017445902436602198931453167962681166927609556398206953617803277104246221996663531285542883011286227774784444179542645399509396291762255776129970230529209816261794356387300272598843180244893615116700194073261038675082000236428358894858929674138079685527570126274333684376028628752036153193709675518018047746771108590996611100147288112329717231544602289607995532915283685142384568820334948967403127065024770374177212316240075137170078507081357270838268900556128715482921962611482858478915776750358090340318260986378461555348915809870084957700153868301188793338567599233517110311867105637473245632764987231686296042772833144156356199494717211885315835333981231668456734469703662066022338237282874192518341166121011456557425969616655229775287258880489537142811806585021636745052087828447080862171351945927410179948008801828732590817508102342748559377703354034606006198621668461626317906838291213606746002800287356287120007163350926758547904761727328351452398237012395862261858752643830260019804598693685882075033817744849890211110152548841329393416703104757361502987546580375175732438572837500716922474039931118247487595740377539709163534739490615727504068258527992442988497515141733872831875957524228482258410100152517118570047476642725301805006633463981383927441500970908939786549401797755782750901051403241776679824565607643000770553843803818369178317946292285516756455649806564372378786139203111973398198559155611350854630274316806396775760693272357939007267902146694886119259109680126177713468557870037432627169468583047458725077461384566201924295341162309179230078494001470929380129374563127556275477475212756063549311032100167318867872474679406594830922633360922999221466350617249510875257487611978261237948428896267981778907067852076077518934131963069928224666727138718081382846948566288581000768925370336226298148833738218586715314828754241851156459508903749718257684418057166237656723463909065318515447247595897015946134228416592084833429007816986566918565140960157968329064810803141100282726689783854415543203229740338438238611529550612591697377776093713918582029844065990143774489720796955216738445317856833062145113587508729589896548062439875833331871818294996209813258311948425063667412623852081033669645433982866867624200317358582269858457973532924451051896220183598813734772726520339967807191924151534364707544425222855679616376869944118461628903061924532896189793972256696105546682526920073491175286370346271781312834736023990368634517389160940537588772923160758506948029575926232815146584164662606110980804912061036038851164453140014703642118657951355686376436934263159744526052922097217916402695242994813737052795102675937593146998702434858617968740753952006661702168617271249298705550700465920950022336060527425249671516852073248628390215708994438830532325176524392313872091419596207816100915253050059580046574448034027408812756567723310927747126595048988857802399249296927686726285507442581107272201190270003646923728937288053792813735781418009149071835682291411254786280609686066345947115266357121226932140841375199048264974273404123783097413421199992976568161193580599644107557607820868398167484317941460694123796471005620954919856737457053561249584590039027482982820605463693634505167829956912590787291707872323179427552262372516790916977660980542785081298553581067088527935241618811521501519198686071055247286743079652023796756326553936644896379365237588476222875793655695074834022548950598356319285702823896837905476782664682254773227798643020495840796229918005199051052750083465965310109569900336694389968684814874030461167942579437797351799958744567699882866165911375628685096346951958654917101800688963389623101213748332896675502180612208305827179757659948674388754163166778540757776402376145890164723479729907653238954455534025362999292227751379997242287607606380218960675850188924631292247112072645436912653421691100981727148185743995719009528439634196527545077404658453091944561541676655501169770866074647823884177937508146597062259814159416277496939601871047958078142105595047278936742503352666064744620297642617444683864435779168554016572054155143054907002778209840281661717118820721681014422295504944247894680354193716875348189476034728420481032031547587813422572139374979688213643163197096188993393493775775563182143573257475518915617862554610759391495829720288465123653096728665485927159766216332463216717553235569178742863893266686326528003946454345225119023585602734834017741885177632262841794802082451888456539099733369444566644972766421780510046198164748970659468753083058024032711797995797898866066523137954449891013024705625669140681505032469703804942991642652013432988568838669468442341302564299687542231575757991669587417525195172618336842737643820940679634421132630462510658801535227738123843075397682309128425628773787941818726810144420919809139445107584333247705634137214911458810086689780946792135865331474096650360628928297012306593018561157455358511766325977612971927755995628776255073756042367042610570644147526061100588823100689138992109073740505250258261014863963125784271778035763170689852355786524683922611818566193994065245630694634708346548390437982023166714551323490526186048565303339451927423480844999692446398680586565333198251890205873776157552727672375935856403626553517050147409382353129696945696803804539262002659483307082526973536567694084540570000125673079811540176258328098723359847975632524461100040674029193977987993662420216160664336687143826462197834590631840276456453929949703928595269615975625372160415164641550628219529679976833201376969749603959645891183259982174656969008914341544383417208167625774547430840767206571753957956539180487758077878794486997122255617352969931289503393636220843953278790799373881985469504221198539640011452381591590780001110997244696431787101834198920896737799851354823334871424965532483270026120443357398129655826380797045834993715281661258472963386003420252307558942947535994484793789069109025435625636530176528271558556881922981837951533765001900300802725629718604166001719335296028101951949158709095104435140199338086541026437153306266270725605806834149434987675339399349674871641495299250273011637659197380977641475845930231048335478932999797731996987279647303083389414271559314766302920239302903680575485360655725994929046176665387416051874118684569448981434568639933418762841818328110651847902347376728253397521145685277228050723093819215448132313359138675118375644776443782226997971025759636517386495900055746706251050518859488808532503391582100986555638427587057071240808731184105384944243012750588036804868181060285234996679300843907553177005800478176944061750453116437308374156226378688130161539602583919229839726708054177679955264202892231478707768374531979082304767032663635019411594304455946714236380390221323737784330967098521173751986306562240928297995082529954689971669070865852994834204446674200366331032958699493819015289099143428033468821619506351087380752438962372571893139650848711993434997048443027938537938613917543753420515193121363342745531965575181070002602080781745089006141645071311048355531853414164450111013004011694356151260139291811858741906498099515828732899752107283656508823918051344131525612726167030995122981290261992577840067894693997141811074129931119004497160381834784073814321192227239831256966871365533335438013271896488328919829611285277276937075475201994012423800659260393366625558085340115637434741981872144475342144356213883163132737465092356094429342230972185707763523229160933320715408974329425717808299007692103682360077236872380243759889078791620724162407666853694553045973018194109985024166310924998290059734228329044617929596072586919866257376425208770951179773293915812323632395978746810306258276082148411916975674975297649333119931466216861915472137256609430184707939348528941189585806134877482657585900506521030979898220057097440442904622383738845093382129077590366636449257859123297876131097237555202234938834013154579442300694048108154246634654790673723220081108672312119900066448796465290879567961333351738354263043069960913703619061826257310533871148941225119458306489085643799573024601597479468685718416795857613991038916241680014011743346418567402309315807935195158498311703569264750040475536190280307890660610261308231854019860806430848756703995961580236118984038751041583685394730946906870891948744553772946286208984196037488003435216196673345081585633997320922892461321499906203891580552787181302251478534694896530890468939572232356439330913983224219989728550121859999813565044796720897034623398890692324314283119411411076449734571017531138676088722724112523235601085769817264782385039958450512639446465018411377932272709946173329084131996388572446646230780824519089622924681735669329026058323162223067343191149853104737630976364329090699844092101847930919794387997816104087587097442006154828739848896943246383798116356651695604417125334662738929224987397867535320947953791955126306088447227687960384733367782531519893113368141864336172445706539577059590711368434703025729031048212762537855937207532426699992623804025694378261238068451136103495497887745666306985224578826896885142703248376127762559401361687081564186059925661773486897689989502102295370794937154410781475213073716910551039686374072296408434983086557922622757807258940132998991394889392747826801667056338689032142537093224299684967465458716423214454042717412138261232084529727689014176138546429446321619949676654399779000187343375665138464123748540262554767377677495661627229623178067927490510902588033647332138184394766047928842265222874268258335284497715076229689808660157359388194302612519461891524236604726464105033457393423442092677987609535814683729333761825230719629560320194667125402362059825555745663343469748140765014665100453241113460172808610202898863802991245356411089445437746466103947205393945300185954661138972560054750775335812738142820253107271788133148837390967684730305593652264111193069586692313371217745920885691519581818813409454472109073635617300396926317399610433394245372816416742238880172160971063294101530865560190248584301781513542249672422810929153565628602221120854150393136580848149522317553069239475414620970953946564892401871229993108993131135359136135817649269351945469049083981783194850451575820414060257250273050541765372179831225490412257406062456271809019696629246764456725298047599612312184380851112469433877016918516213606455194620812862420625218937187943638356084023473622529982696909622191470816338811270465766553186850784721323811108346435199969408688807795375426418483479784580851289274617220607468217806185802073069210146344298457228115738383156374008266763526522267679994778138621963398722551632576588258121981783075116830943971618078584890559234188921934718862252404981051977437004206914104241717060281092345149686470528117681227106741069591236952018253534349361820923704030357163905552898323416353229462251958854490210999472066870378385715266557931791110653690678947728336285609886488446054298674686480684598934956541245611892213541848644846978704099565606079940836558876115996048867683312456405810329755986079908398528848601131045999882283626197167011295604772573389815293635444720591064879590940204441457917813558532336864652687892327622761646995181177718430202525223627492011445649116048089931612695728926867368982051628081127714195617398801290967012608082278669159756956984409079219904771894317014227270236394765932505594878932279077379783977652675355430733787694026293414832401322638714985861113466593401948080918769290145518402615840178351179308109356168536247047823851088237615582258971321079889833637961837816878062045833193190734264564971297648815790756428998160478696019477508508959948409462691487009014802337660165585042815799818619244300795897629208460174118971700750805433172144831608443838671617599209288706892113819869270080854825305877302074162254681214118666785764739760914145070090739404766478958992981751279818278034609507221078063553323295408671818143704399891623408178033693878379695406777951174333631017865529924763590189860438529194881904202991210761813445741003830092403339548769845575249194092545417345323393605389473608964892872270838401948302450864171518053610120679013813016498674362935036640612151479047441076119645773668506918674548427233950717078210115416826739164914730261756715082232938268544940787928536894605175381233276787976810624896981020840152355732005293407859789347700808337623642963902399039107968583684853348422043810499245498522923408066510192246886396408271242667678412834279184530106799157221953122966819224989543400174067245476158899253698933097003345159611149077783304748294188782520921546043208617062499985230567552190554752743487653247218561766404943486106168046260353239319340141402502308358382735488802408649789594680379112141739790481303922895917989666167369512644506080785638461813834782146850426132185108075115339562023549788670144518621012670544116151562375686254390383377820342286877396671515316905616417684971389573945176291490689737515526399049767165586731824802671512040108596765335626702842623877309512802242649733037374269300418940834120138155185929129145341291528825107335018009953744511251340805098385915340067128443738735418650125728868719755991393421372770811381842146002478510911614991529548995461364797779517450674418065681558014324950790394478966433718419838001609785550136056814371723236534519919038697192852917924045018264217182333553232135997461352332874255971009028626675535139294449302915892941995610680931752051373403166629109510014410186620203916838025675824589854157615198581428662470070063311951919236649729045193905585655314983007265452255548027000454362500136073823846260277934703889354879089603060549783943171782834653988458487400322783734745111614417863295749000192443216584723863893039572268795288370052975296689870003622734158983432200976977286837976816360449686485316754002522797208396910260414859069713360314120673769897886457511001270870839341518768266536251376559719873396379781618649983307683816562442693430772946317429524724480800516229958996684767391364073870540134326457510419496394005450405719973300843983171916493410492548062022983349083285515140879143091196652506000130794308627658513552115442958819160850952141668440072121809384500691008213547105847698375216796461603514538147890288529582830375446291243736977169924504059861890768453786044600336181743848969454114418869796392054565030981950534899083091235938569165054226364946051627586936152919225253411989622942439086745410825207153317480376080824640251372924285984050687165788755892294704992343075981954551859066976284883164577649335260937693120318545426106541993919353924635838426537675487916472625853391851443777981535633315062562442863683204522926251046671578978460610514939069333733416754184100706282895154317526404828747972183206308014175711338492921901972680431301955858511915911501669053058605553774525792037691274629994173064677789038706306138655136980226247542416532669097800048703091294031777064128517220518392078347487355468022179381279400116711923760727311118814233717843219237770082564804196757229000660604355762776223669256791035169570644414400345574462894504834655588451852273453873020045216393429481407199833745750998289698755283778561946175535196821863931057906554945459901643762776592948197855195489096261515891970795597617375614234798807240345507540143842188709897750622115557417350522970947725523565104245509094849479785562575203765916657087997698163683165135422362984993474962080271848593195429782478143485492631951049048650916727445918233905612035618600753820598097950492075146220155275781914090176631488806435146171825115349614105270091973812701864594394536958247856455392338445409908802147678674488606059871018070470496275448184017471635731997588487651189877198791041383419636298820223115194751875295213363825863828723067323657175337617247236217843050350949774647710134889470948423517841571363651811393754830388923122969994564096471742257998582030503663080317957488047422965534877978831284489745806237709082375450246574730768830230293675419336566886195761274576401075067350990307351687001336896555827436988057792362013413098382013510298008212538399141224392666953355879029868073625740107335955327126660464272814703176690325730851253931234972997074704335152708876199122950924132367672914176109349771142311699365602666273266823464793339079563099552456323397920350079558545441383113022076545793059945270955448424464592682771086637628361057104721133381530874092281316077063860537518935770560655399930262422112820652510734915510082539489125513966311261605102770658262752605770022352645838184377638804850389904075451267510325545765909808359666910103171894121535359929098092683828522340173623494184685790528132215652062765772068766578649868296935726613115223277173792786651686988506926592325955050079060836435854678154911659646682363686146781815903905186511113555436186765454213436359422851723311098679030398342983930780110746711015435518874569210461936369815517773696958998824311646272171135394373536364091298185991023455475594658883092822038730506128354178732696734479754190856640547611459246241701463780801492872994187747950442822728980794832870280437012384462939131864889994994293274134534383127485080023196860731607473167865817766811211857206173846334575754891667852734019128187317880747957042961561842428204152600259313921920331174405729871711890147029951380445114866895535493780573233162771231497231940421635706639555879628700992747679441319407222346909647961195563246060604578359328899409687680576577941688103348323622216189689707426432984440078819161485647059420910344796188378007371992861849544909090363412725488417040856161125570697829639651317961935477221947955735376348982076420957324733287881392969210613357060286066153491465639982239209208416850184060039322922934123569798652837328442232902467369794230147244068833908887536604822072794847051107060765799998838813044657152464276530311653253257693452666324259633979816613405069266906845561800566328410893971210804413063062409622075349572185058424865976984659646182792862229528947055805012131738487216781087318026219750446543137747494813988429839362373312178745665092338895173346032232046773776151714137246113467999270046442025704606495230347756772110579181898220005157907237664767481223197646543317610882602035432004164645091196729840360204593439752638801095096893650784666543391513605561425808550734462062407260201594643014053142634531629916654341060427721719229468357945722460019754022006830187742527370749401747125741436100012054366773214751031788378423891283909636455926215486624152331519185907279916452692808791986453343348547573804864575634172692279706453888444411005074660238307101355075457162234434006194420550523539555584363514695783581994512646730517100493306236921749456555664000143853886921766329798029726966355405837462848690710616060060316422655738138601715708610056065898028257659854607239451623163993835840808647874440800082183118952529848805381190892158041314215697163859410404814159702519328311049125257904793631400457356430705344496479587434076228770816137979496635315471485577841983054778014364090008820433758677026369817091665043641774862962364587284207150205459592541460274645702519619865313924303648981658251400564156981021177498726738958326030911709326035673894379816019619695694315847224443911324956433026262988623001268029265942990729920139711222609284421327373599497118780904524168209665287491361269043423961824595090007768540056879291389436369552286570383894924578600327792648313549759968151969083262912672814345836743486303116582511003807863013631434964283443485292662844896817755718945320611299910806581917271255938749432184488487225415572852787293424956209077788640376314437840152463411329775917368221485019048159802861182223695473186541040191193923889283431222587001964216667428364032100520262446985239821338619333539010392874212753149833598766895108652793028081757742950199268721879724141978255022157878079102983258865183813479767330771116748264430723784519119282855241225020773600901740009885567295493315553959768694119714817050143042701435438765720273796040083792030048684209322418710323246822603695500629972843445010299355016565574755916718844401003567457433645635511254636008671404194103836951643561298278544930598910275672176168561982918104257055558742602527001252641610591956759561030962948710263586236875099998240104841664876179091591545043964879960616044005923241635427585367006803453283801144054745232054032900375864755858095653626149126615985274797551200309581406369285181501764067109314126713115797981912167022084232794329663073961059458335533291642020908796515960822709107809368776865589896859276377835395420864970328453182458549475076551191153308909733858009181907103860211031730824532635748010039929100329964066960819009502639244419209961240931567344987694577935281153833317463043544252467418843800702694079971403920691978213295081976859620065728605583277436304754348446520390497415766217440247696937311789595411048346172246398782848333399643823884737782384558754779399861635548905161206799778321857604507204596687984027580657472211512205627778157128555762100873929484740284099134936611603407640542642640490897095400575745659131335938246967603463762515340809796927712908960749618969920262921314433447800665509734935125565361473599406376411223035391449326445794517079121740866566560820969565516795791080537465687677343801007946222774389611131770391993593913723468056604275988158859167002327263605236904972457706377488404481223190814834494143595387259516313825073281260496704853646689378254137362839099327646467333025542402065847742290961383282029486207698265366724251168578990460820128260938848278665967664571698113748456575556500509648576884825628230570476274418046926389483790977128380762433069292960184138992569893132715723965091580630178350566025216070032681501106780007119880364912199770881191953216297770941964695317510266877235013036331683891056932253044045481764868119829872981102662780269640019249316166344785531308857871790061596522438120275354958961251369693896489858904999472774892880777559852110313125308604119261640507175666806390203064665788278859394044891724260951754037677886680850496749620769430683148029806636839390456835595461124563531601270244314280270858091910841961704290353216377913494204969679318677731753471343548975351655107318956495390750525701911508162621455254918129346122773166863153813343656546095589455137656902654861941209917946350184603741231290047746071784132313799201770182991347077890453512101506205468869314377964639976505231540497719019451611816271408447219532757356011830353562899049450944883605004774045378908178599464933850457765203767866984680425586743306971149989575469192712450624498974323153029179515405719411938519861721044974321317126340019062007002907908620098086146151308341630019812414548265535859352351023431835281408779855722626496561061472284136596835494021355424745104728013633899245412308931071901889159236657867202635945860359134902936874325485257068336920567493931807442386052870589096295569518903264510962674498485779909950094671686694715299027697324622105413834594390500129212339147214892331515589137729754029087662299789554220254138467607141633408919395846788684443625506892272871304583215731853841064449457744500858014148094037471637826735696600790357129155328442026697979072697169664067875903318951486733093165409511217165367058246813251169962162517268088711521383788062146548408962804237248837559707615846680876443917788521677498180351158483014187338087552220696881801357223434640239790681527044439225185608018215973003997981153900421028374308797539802522466642349968311724382829164200905937670867172498260090598765493925107918558082563344617102428531636579085008001626603251057732879929732466525174481224017483386864342856633514903643715961162062362649477286112194104525437415895506067186489470616693254738432691601657343499080799241082704001428735739499120079931280496981818868318369909233154142313082304672308236995329375874955827432959155541954338487319095920132989018732674812832840948479696405525066646351692787158861765832146459928230683639404802181558193522688400405086624801925125351451166731791804437713382278920002394852798025402071278651151793015084541838761692420339191714313291952227869380756412965295355110607316820148282539370037149021885677250008367471211128132890991548684568283535509772217108988749043357384067406412579603611513815543720478667670428059373452063085584176780136704146975402930636826018855032040669742547566362275442215829249975912082841481728858274789715848026581636877015126156637772263498464825371119674125346888363170468300152068337325764171709275119562679402003629486498987684483244712650308429784563297944443675909590354298165439196405948713597357236489912586915732808474287977591027334739536563302228986067820550071755504156036227246079976887401806648350183335831172629528145487136610843658339871097042242651354441882401448419765928163415060327420778410795926245603805356953835100865017544868562889586861972035724806458987080162686252734257167745915460801916006510241852745477843582781828209732644890254423719797201847642988589791327560052614385533774368168516940634308282315133597187757578061779363313465656171647681518679343972701020768494612667416191642168357795114903774476884025902044813863417314884691201717184694848918562446847162991649009981720489853555382466329238108074554336087687778133951805138384520266253776189274224802466011258590756667227354818545985609684691236913431992432913111730091364271250790123594224024725323417911037361452094711907196872064080149964816676293608048115949931258307423719466706250259078095937289373706961302985836362452316364924003902806793037071891743356737492947762970650731768817956884468664309259038965568395594459953395174901625069989143100576468852603412810427933243880966334553609982658205379797378751102049781572330112898684734532531882830516969528433318916843623760452613445375698292082756418605631563209407904615841085186797504073595784065067224216482433599513109574825966822609066408944341691989352713677062274049393221930700487186263394394097955668021086024105631573650967009432564459045060924061230304853603814070872473596640769814148210624181880486909429175247911088046328012741230232714673253646985958808069486832842068935144370917669923778211190553559508897550298890276368222936852805485276482327722107656615306752482425866074263697405634702517528543167002143264095194152247506302290838483500307243525467210940072877401343857167795570249051665632612953140318064951929533043659735200705053417974092274289940513873045727063032761070229451034676875399985207569374400760344566259638976349242974359781848519330394190770768067023839678891864601668691036325647523671592643032096165896855238239160176780262322125014928201580399369518050966783658406605181596176327160650784430970482771706005996076345631432465103142618378435594504200562512746567861011390136213522380749597664349629752974603342553507317156768059584091725301359115528824516884997417884949916732343592435491079214182793440013452781205551581785365396183901823750641748125399255843941684530864271810232029873772504429668492346474405463165662240539718815997773425714120348739990460239654963218923978378498520284022729839192952183662685963337341795232828281405142150476264542480501532375293291472415982266500245951628036574818462704575849716191723838028678916871790408046036246748327315814658727004422252472596322936593434072473889246949858442861161382782620486242520918716184613914948157429228474245072847026929722936846680556738916010113945774999163807784143168929996392077150872873181277747100272249006147900434863773093402596208025899561962162847378561660190672191429805859688146450651240764073663737064422002035947989479033721330661485224418215460050154502773874489518788520433303054191023747260061000948076585048307622048429717451811603435198075882160973385634295480305593156305708183147151222619138833715244294501211308967380784113629704687644103246898925481124412222418547332970591038156663204954163191395547241707667209555575410165558980704571648719644845832266192793096522397233396228391323768014667909077559871216623834906431720084915571890306992837456731256569402944132236655911775026972867329164003465059456525064147885430793360241444047541319274869536160765874991480484410894339306419596791919222469465954236535548641924745660113907735867792477924454071862005496768764840207553991585291384655172478106630681012275003585670506651542431101293196115426986735874945213289281585877343095870528546233900195692698984045281711985877273647398560825525874823694359718241990457696533176220419562101766581362236611311357935148450076097727931922325011778131731357822772091486336923849783153391680823305811415320139997088754178324783292157754010046242695865628599384097540204158490373465210395531155681074472390981787023469289063775840713082093403304115698285001738198732186761906549212933100261786888698085762790794136389889852974616120561420029228995794819933940237954291380646038006081053031905822351504716717792182304028224003768558750360330156350619522998890079808244425626943341497153187455993480406675360315404989570056150810643008017455314246572148229927728559079464642295710126068009611217767596367680107418861088561113775096628358546377624324032199537828301664076326169975403801315568215533834918924336145083771399533464308674664401679904130135477785637032630128339142024775556301864014639997544975628248596287317190026806413997437182095094310974111292731148436900830300820466205702248906760484862863339964663675623520457951650065068428508447634048991473573735546350614896044077419980408146902027616750689602686849173225070859599688469458104379785649007435274949790944747540338330825250237632923823704848180767353703512054333613566808823068729469409238845764032631791020999764807423207312421772278186854165193085872742102252084607743889282475442183573349190618538267704260943503671263168252331103007783717488296339245416888133434661663531733741670082721822007213738160849106860705188473707265044300482706906548945814504652200540593511362404487296491798161883022205504136207475197450600826043639777365162183984497615734461781466494407020715821061774110663041201504438273602473886016533750397638838425233555005755092648182550965610791099786742943574646106032011110757241495447807182943067169663179226221452037147376340689583295162440971245795676195740079571386765911902627842967705001239295659737993987515303260979269625724689470185716312238423424396339150358431708422434695807722627445498903429104838308868497145152085339461124401389880239727306092911777919546057132188406104579407343954174858418653650388396468592653031777407916452526855150113879281275764361870244557412731571875615879200897773671593537605741890875561616894523477702316006419776744803432641885190052831863462745828379644173470465039242713013274150531095724951820324734982218653740164585607850822128637534537739336742524498782812465906797066837928261354035659550835223437892953457525800008376176336277829197685867698038683283073605229472408960876985198880678976472267344778848632359898825673131496923514542977395507788546938067993065703061757095853943361037912843583162188553147376499518508448986829294326651164374588438377852333168283569268538786072244823588181328521081402689180414972849445562387773546169580509634513485756913417986794105419857993187007875979345307248402255944191642997207967787068979217451778355507040585066790029463289572160147260329146286576312053982445728013926065728725496676196572144944806068011162190552442635658063697061188191078190434442463327626236313499170218843409805525958431340904695305521017306407337758921712276888301070440637022801503753435408968967437403693628360274544943623867707385246332050138159780229042212119718320781845285697194506928508050881116787498983183208396859921605166900460896695035530721919692701786092171980175648530499070299459882567472584420750207761286635938227128144260788495764953966495068272965125648810668356277282014374607329110072802907372974910934919612605842152234895205617824988105650756565083952829854386239223337546448387455142656804826007251972934935922557722066889069997803598339601909266138923923791297337893924085563066338577311175443552670524750301630675205623545700718975039984512456269645893738730292947605645706351930061455687914041103419697326735609469915352856187334772679413413769731307269164375133551004836133925590287058738692909365481378859503174913034263831422185391141650864133231807969210232318244367677340624908813524365028149025971061391162707094728479787478825688525804379132696696352114286158739828151801087515189312649802869713530453522947108387106542440235034032270578543435426466335053924463668254599121724609818228118454547185314903619762492219620735819799550148253993303162709818030496220762668105952713628460791957580715282328218962435956385767222694068002794041489570143682917917908259177040936215986765079609082216409872664993889231886759770301150441400371208618302860287387688161361489490671195767295018233115540051746540881542085432934902995801781458105509295893781428546333535472220071357234039356346883812133302691311977467617564234850707616932997823850879531238812974019303878191377089092872719032535696158346896830939609592895830693609867691918648030775874718328448744609536875560845152356230576024117907816540892953067337395161857105930277997881400349391838817694807650282263918291937257311188763045378740488318945010658448803306016321097395372959766060980536026740722660363146861037569372522593993957927836077612626023731846270227102175023998577590878770376869380922217999401158471007218361265029278482085634482093976932444657529177765829379085321050684526740692372242539388227636901625697562570538546746550513062078675643857321813786278947285220665989491088556959155207586975640945396399679408875281166156551827791918574042815425017373467109406540484732443319343615142727763638862023021703332409456530791309656139203111653425939316406530895904889303348641993830439390093305673753534838741530452947121950587277637293877487296229350409293315938795356263792820824238359139990094282197002172782257306601110464357632011129763642388821362548748499603366720601034947906647594006906273460617936116559113356098909012054878715373062861638111551272494393254759342819941652723549690233025445921196703933864280347393990816962264607324419129652408947779261222141616471173484505845893664017709334005244806827771520853352825099945580516027547469144881801346520058786812569201124462004307263667109802353138012737668398746800853165098972489319190412889654346218989919023819913404252437860708232696954892202776393880067176668647852162083746268463763672826699812274220394411249676351021658763232949869086031815340728130988617975352691502122213362985309022278318110460144563325993599226559045918705050509437947520343182612977021689184909400635729449222449948345416236772597649937134486525724177597762600817727738825161519697233783298555579412082083248224585593928414704674791553154393085667823091210481977082890310364938347313795678597307367180982548360930677569323090913982415856085837554550254800393615910288907719024541224402412486812311755833616676166444044049293474701379587610471403168814481204138874165654776381366342090846429249004463079476535527892245305274732529551861665273292659795981966160065707081017131578476561806210434621331356316303411130114064599989160664680686457029051040532254000343043046893827340409998383876914621342820923524333621519568310729327900819495086280562897430679036303020636444104336226412661094080617952716352604111303738189788098694858694129825480514467162357585573638123151303890221416582183205236186023169982276970657371359300229469633285874270238154569896642911384845940982777651626532037085695504389654636432135153989669574927058292032074609962126246625124428164228443412930236123811800514622765623521363381127195959429556329836029235036965636579329091827040902422968805943838576317431290325946701883486887473415000420359931611188222252405671148325644991660803901937260669888025603822037721533811366833706147943022458441576981385195660711148787916724732308619462636297125894841681603845527520602004601007868523342883572401959946882920251598069946290055908138181816198671974070344735135224295301253639746496204251554253633175084812653415912215056662028052071703929502474350600493389112030069965099223331616559215164167060741204364570321309537332136405970439760309238879568353514984745927583415406239732594150430863229240572157862150770098060387434429029128253017726331986467807200440646586043017721592629806836370844584145701941164666252954109027999601501070293117733597471079975463931664700887964746351122070025572163236853463514558614030605230094911480216087754208153322886990849118874903775888943485320387674495082978569513897522691912923144288481631027147953286236557208467354634794508314735368785714356897424894198550778932341845205724907419967627040401751771146244301844007611201660463662868971740229598206167126703238636865303614659819586157116958187975990466025924788776523058538697266088167209305402452070642013286146400792399006970519787993422843834696362430100086973374066861628950002849315392587542436981985453083770388830836462430319558075171920912477377751988213714680023708660779852454223140614554041935714010427570883061326107866322804369308806992512132627713045644417488240164791207219718079449266770553853608100528466099129425989797184858592604407932852321181427609640540720764030664355216242930042071831321301923898681457496450540869024217786034878562253263776448165793278328657522726980263456142858220878756166972190550796108730801302766093781380860842796295805052334821890165908549747456913336401210135670034925779040017345204724202639865576304347180992750875258554358387196566001320755054346895087628098485905580586310095364030417063134114944839126354061060020032114400646362488272537345396278821683356152651250636508990268227994919188763613459204954229352533891704768299379404957534963796911654949001715159535226737924309455557048377442659319778433241270107863110451214163303174925135323124416576231256379768221880302365909986007501032040643066095541521102462756861388708224168984321927772845208593109485978284771631072385830598137367790189161862590876571039579849659270832941483917317370394336831313645905080069242825334621147159625473228478057156279161495951126920006775215294787431520839065621059418630580967479923227993525491352507690194245012675169545438817473286341966427932911208548406264023074700271383432288607198969017746198822541499386328527556093033316173912163454099651285593859438131690046494488708191350556457532859206553895891315264525862651279341018422287967687633806808848857274331193051318038774181473656768105236285788920164588337013388795993092823619701709677530416847838780381966632882607942611151100585010272720133314579170423367882208021951929671215685249220846916645221612977352045180438261801186079557881413072963546617661714538475385296219762851678547132587869124308220352459378929733332377536624205642350028415710390200277445668877779995541337101585910949260172470325862412197773116939671365873307119151892443460703139698158265062986095407102786850033229440985397685191632277546281512373171239026069148667143386394639754012238120448313441188966906775393029316964243332652870994924047465222756452662993683662821645585115561602091272852728941703242020057256217575640557547163329370554042166184381293056759197435348746288094912894408027642085027859042542068243819224936204566869939991379095732247793281525364590730637824972459971429573478081451443424509708884840520667090135391900565410090451876318489746631812126685588388750396813305882082891699544310946166409411486131152918527201395121422359526809806429155916139137909137861477844769847137236811911822524861517907919222495021581347327290908429875723673814409476913230880191337555908499640210423142422391794368650492972203860358543040444387616320232620406681190527773194099172093134230510335049618567554673451901771343533784896647086269906149063287121176070379092346334870388630787034148594642814433302975722385375926871411861831329075526820960539435142252834590819738902312382045032627017066462531363520768720072216170778404544306437577913293976104754154279754169587056078526589574842842681948190578828239556442782496894016340406166556288977982861061750592658931562502986630978371450749956380007490124611126582901775525027894346668281512512871833671026880934539709211221120765822176879943004108004905954444165262058576648214860177245447920138901742368700091327828349825193880145775872286533199187073121741952582152277433822863935947826237097146545482789700871214901681209922738290632641736691496301659544290362643841392408029165627723987701618956145342581043482470766499914712608057131219954400200869134484694931993342187723234279984377100463230096222157764961074956895054997512050566970004844178394861217213441750563869234343314720928993952066118846641963471941129816817434879914816867164968824238589908109645985004425692217290260830964543450822500697795582795697452551904467269495712983379218336140140250906846603082819573708155964593783185733602587505960779074912824326217436273138548369257533926459894952243677606253106797876101144532797580636968233441980095001277319592642950163230486096909560191263034490474905372398083438832885502965934582394625497317742903099149252480290125080544443600795770157556902679428726854324467386328086807739630545380196035405781175869571285315043332654574472262402735599228127292519280421792900696169525414139352367993852968308278106081801874650907841228857614576636109886967966585953006577441363140823250342847143157369970844119808469894373833011583756735881860304226344251720006251228963079137756919373466214121662931172146511246062075304280947345925948111326866749944756643369389636234323671310806829625521850039041878526982628218320910706815063070892009736036081090062308602083104470525367236737395313220293220323043538824883302766010684924436839310971548295013994535358007720568080371415250352237378347228770493895684018182942421246390704782781654945491736047222691728245986035798856865016697441160708921161948434168000572372694645490359315919572541338598207116062208178420010071661496113756390558991448877155419234477452116481115132138256613349061853311637358283131763726694896280940897779453482846583200583427657529588618301839433643024378155633042495122787606694881704266460211348558321270414225826202873713865643427951413083157373948392175213244366319651568376405144726717360834119091645836785095470894694839718915859322925433713129450039239631207144592171781860769459850904798249914915312141010208770396347714528137917614213382676529002407717618430908400310158735065763732231522037068222979438897383404739524219668997858617402947588676841863011638017586616713975715124910701075237511210873675733733679103543430332021991581790144588301849260943360648907855035393411397512412275600521821369832060374505940922186987365562435422885396012468291295825878645674327296099099204378833213832703635508952567577160183611538757835708110804391384078984560084272511648232151196507759300351516639723560132966594508027384909970143673687267356673461726158851199580374139358886226097773783595476947681126049211650154859680673711087181178009968309236560156282663889389136526286777811117207592357933682785093870898273427546868756736703520430084245955582318726091648663233795786074006157770153029627396432778767176458371384948943242183235858785318948402684377581535335802984759000126163117219479535034448917327555170388974150443007746927443301374814365073986795558115922357864348142866493585649891679608585613140295602793141861116127518634638430262962158347188581924435779815473919350239568415588611153555115791529567018670021807656195236005436696530071868494088780546033742620796353423683703123411011264721184372504110938319796552255225422439147530242248425185696130623339808370558608453501471012754895487761704299576342467892228301691347122184924858477360532312251010575624741278327156076890575392612829730686662653731116981777374626872149179104178170779958735907529221488307672976987445017756627584700176549339271724728856858225254981813131537774201824890299102432448391752936651132208878843437148259855984248280619321335417346046161038035407562442859118512393682075284498029615152710834699877282974687704831051097587820748545388830861337659873561540158049061294795242872786472613561241781509174111616686562309787807507544776265106612569831635290352790886563315625867876870943311125024186284836579613628629252863392435320595510965993500380430106364663716483059137761794165099910128385207369711707190936663844039274773903847479396595537482233707874423251760950340990942314407264018559736136640887834031130088756633541412307213222969515063822438174352510814319742877755641307247267310602786068461309299916103180613008156602128769264654779531660806564406360473841206062566152451339231414664169968416329631369847480242681335663756257674372923900362264349230918511948747980777666631049675910591307499179111002343198473393759469141518045234392829369744811901582871148239091895208925631473171717734820290499185409772293519434951302398097455851053548583722406946570671388984675426586419525539104022230566602641081348876707350891539443525478142362242396641948672389088837360133937672341236938706275393879165897534339574186619795482569906427871637550595294732518101875087249845734863297616509043088029399526974736475573577519350442757483436025160822846832315846653091084375629605929604949750252405147361820028406162206865376972609960943524759029093528880778372929829208577281132822431208697679309977941549861626007474208924692283792867489817935875309905193945547782829134386909919172205756395004382946114894254165647683724628796094626137924904512472058135600581475237354346523437869856221712952652389429160588070316916578135038505803447780444972663880929989512836452252440037256405382842611410443379633689461942492447042989814739546469117839861010720809122786547295759819587722547869091044229409740570872492476961575193969829901376137370984314053137708681795666515629833481193343817826889454741860364532575694546035193626720635486256062438083052935003738716824537605879685467349193638118683369633549392805701345650643063913397784363413082245815708295319821060700010653810225039340010053314590615575079902685357303326606778169942559675231279657066533781554056840595975704785066157777961797150764691355623378926737810532942126629876482291235716453839053115965668831720886547828978814945888860577021182923311978610078850672696963892938910617601504873670891120309088595219433839514316721664967723559870644627865882113288562411048105031882942656463392314704437569243002741507018257120811377403744811263699125488526276484785463997186036112401759362812283121786943855061097711205764807334076463653973234814681990726228548669205915733816111952340298014425922554953331481619065698375902014966716741392883254127627578441910995859186664928838373808666955992638711211917967698635912442699478026566436509287073478972900428588873025579634012231739491234408879090133306088285434868260850136281908654713215274030730320041951258999226091085362716961710679534035940202536321343421742513160081466788916861170263636039068540272230457942948248678252096375685219850871363388638921297735250645621629561928204590942411882249007990378934563028687160797135163855161096634172193770114089128096432791474974306652518216762571610189922278526708036631261878411079655857869108891178176917438200989515428843964069721952267451050388164167552681664231305102827210144781224689495449929680570595706461515422940231660470107863063921216452171684243914413049368696021840798516590885111463508002084390782626029711913876946189466644645790056863150838886887931830977973077138359783535760858480741642747902094870178095085525097989284724046508389492930145099079495310469344723283794585439005433586387440522284941729726749751484944051927775483499834907714644737677031469767943849995434094538340649493284171319859537053144597461553873158039173302925534101808407599210872662891287243623586790540083470770252724978000759738240626814640627055069484464745373903773260418969874833564813711651630340947919232777771094624734050957572291993930865942291622442732761297034472018586809454562317486746040009981576353758985779615748597179222216057076459375331093832536588221676266769622783966034332199769719831932911508147976098101746600211894047072633193026570705138888665130113851014684072342380669842883449633395223256353316547444208919951891878559553357286451889980542686780201269750712933180126418052922749243883975980990044928877662177039829047225502215622917199105162924615116099270685945733198838405589135717091238697326202034813038453633407371117898948128494111949139764840528332986993371072560086423754715262235704062314355806878456172990307864771743757227618184382436372739985185325307005790242982779559370317406844192766935037442406564125963655905152732992081949480428968658896617388999969272100307738821783320707028832339453025941599920392338461882689432887959900615927928021437577029519417621755520098810129616614538343173105605569112295861413070770852495240160822664076486528933714246399449416362855174939563112637706449376173014198621285884961638636718395035027195831544374097110345834157088430758061832122324999755141048116393101031927304747197776802945987009705894818102506396657091903054376910496366701437272130712950342900990755681414483443136212829981551885884149713910418304323190391703343813258734508142891634373734775111524217657065862263075906508430231828446861412748984769644467349794580270199832313815346120953234287887424108120373376680012938975141152693246985859256237321967481852007046807357572579507636777298522601512639409180280708621379489099804079815948425337717351241799651434456852208560581750789427189941553490664727303582335413047643416986137677024324336800230284173445700033954483632317725554892115284214939699732441991916294619108792941539737386380326267404822025981464727578917518706885210411968873664363395302764246206591041505088623102003824013743568887001539446733840200501975905007653698643647527888494586549889749993486485815511066765727472830554761815215781678288225413186993793532106137265746720625999469440277346244687087215290206733189171511437255776288050056654446143531185686791535534157591322387635041585430589678747168778889547699500588722829318523242618883580506812201207495939137505465474116784177819582654472943274237040677373062980347200242295677528998278234128075559755655816005164345137164589165048165259906025458939495025910029325900306632454676577209816889958299290316515230204866594561007418289211251135697708587723987607374537321146043811155900627026671524526605632887176343294133892721463862214019788647988067588802848096224513139393256579391897230258456845901052600986111911314748658862944047059124166805215999196773747370152755109718030414310111772941565784181969473545737951281651653680201877437454882691439578189058524845352541627472813157438965596711103144286799721990020489054132479030410540281951735228412757592930426703950934103611179741136647900516226261961362806499027503480028775052142550892485515411310728337977829510039098241473512460572758373012747731226450705243908517925744750120298641359560387600291977915035417706340774341278558525252999240435379460654049590276359028308834758764598270256964694362703459560403452194767960063754649894263231111174004174101628338812780384806706606986378819481168179045771462556357190378829282347271743670330793782539332184506825375243218507565329422613527133968153079328773057268806082648390727121072624583029463530262639384047465588366232381967187180317236557422076063114749798887534379730939161113021549728700670160018341621637094557118629282272727231837424785575723828483617220910568021262241843174775971706854126387670531710423700043457641796019774266349051392746125532565942293196419915246488121410907018529861038738967218007068955361566612989055096411876775496934843177197346963040459393644955055118948096440117837907385984828281227464797010806682822971575013197236488697891520552591114791405594801498030267303023321292284412826670237315906545928145404487630571892296277614033948650029300324461387234113327019313782564892280456462717798276905184715138289655454186225428541049407332110301211928479639400126867195321626738971370125659521293123255297751156682742937996655540009885239703168160819256570307411998072629047268425614971939841099978993943070785917362892968821008606790190671181709951870200281631977409199279393310282829220771553083183807664324553065399725025185069734945689497218068155587315707599313731314101205409602149070002655348942846668635662187837767312312875844393441554000548464609346836533435752848598528153905917872893315764016844445083906255103672931932762927486383795667227612814506355695021478736912514167699278093673281597010645123052107240185368115783017787381375867277678490521610486281897520939403730592729264191750754629476604537097736394057423720267421405371654452508408005554230997904098172933984746314374272144605529431461034445726235619927237698529387651897745097047096457540764430467995654925166918458751234273621883458562391673551742573987923639150242526182134001847964660467300856607849974835494588594482624167776319513068585113133293645308109551790566470365850299016923911083061349743718880960427785642270242646543278401951881395203012814827605160713224909197573778629296212939508804305440151595370270492513885931196421918308746752760837754466112542220762908688557180321481195526189268211811770768740711364072364082940266707931515241196078359811070688554180735174511076469558268160061721349287873553549900469237523322525674561616107970094072003088306041412904083015196177242744029467959959274475836205460919261779977221179005531403732287420893038768800766588436990213476675386414221382777092312585011696184777858390361862676044712639646200533540231343573812459060943800718023312081839578146968279878494298579310907763119078243978003427382897617927434648462422011528871612524495829489196649096951058299063501097790749795543229620130640538834229350478098311455911705236181085374279065883013658188192180854143621233208361378615766212859153671264546087428024008896283129693255594276798137073021016439178350379544134106651328748164519686264145060575588454828449029503363922497125185439049896593939352744364879415586749243442188683781865436935682188148784101994412693553442965311405890557687569933070838465507977052601072755107040690800237759159636984631462155384174733413916329275259450569407524664066052246291129970438178841954302825470618600299323535243350033384744777270758598058732008474256275634559678321917322639361388501041244685182527032611000334855271288300181630468334615239406465778114194886015894736330025275347914415774872115706209196873359068616009752006101266633245559891442026227284786617837976096937863885188453972447821532422792666323692024694920134982884811111324357840600076404740677293532106127939733639314204470216648564081638443706547882589081978004453866974375146089466420582377238004970275459621240985428752072498556056642878491867078886657937083299111688240143329931347455016164407510147677599395781708702623273331580345626716637580225524512146433118247716520732612700277968647861486041361170985839142724546659640229933406936723661127978733086593882598989217841723151975950561589262983492978855170659305707187819323983459371360728488679672918893314811778984740567792856346539111325760817793209871780955170338734965444630940189091539042099319272945658296184609503257742201263482938525630054269308023303742195479003517236416379518809290999312890369316335103786086880899410090132017573860138206992501329616973530495308216649291321458043422150490316918170502335964011024572838675974772722985641176684879187548057571348375303852365517742766238492281027597168283750202617777591865019280352240476893101742787368589106590611119548168731838813493427693553009647636099438899887473742960538409859984353011918027871951715893507234510608925525174887935333689684157350903019911135472872868194184908313262001012852902112026456619157698594372096917912939658163462340935110480152022663589661495837919428091857161211041306361493979203294520175959798913188401338610568019581709085578457362385566546789282207649473750875215461919783928518916484524947664720308982459335962250018284301757687668918260534716090794431883389260444057217720288725726483343081255910831879744198830962915338033633795890211817705260490235244470141874987400115126978894453850557590147972984331901582814903428989606045667950071140871829257666253710313205528031431844698640618129229039789478998345135935325059246062160483377843906087404731229514796560646487767948072080626442663850861454297162926362913763319328508971716517702775239683076811995114803093000505148178767595769150893621656729923949178103779871728421279064633695324708369911868184749653587958232970625012304829070730753278795829592120278811692582736159730512808979021910472410115334047829029663205186982033308827812007934688650766770044709284679513982061983779979684831782284171529436711263706469421127949075124389883679803098792615343388840539511226549233225937258918341077097496473087052045800015048946145552261172569690682668830340212071480607888053721813581500577011414373146415375790197967160949495825126142918815679450155654074964998706364918238139613822859846853285004514560171957026923920139789359239234265160185420243882105776063144665587885293859455572902079325268942780725991925338076983209726484279917352112268184482923730036888396553845426444065708129801027524584197086663179402300238716642627960715980743824010663767402001546422316085697194435469043888461146835368485613779261493184925605206243198812205994038308379399631324302564456269351199811321473270946089493102696263011943316475708052545198029665038678947553862881143467288299082113918258230583079597574087957159430874180060914238874489855654097129238947299870388715758780889608899995584863183504247828736803717094589279903027957987692545529753701245405887284637715766116927619305410695970358215188960805637844385822940492500148092556013277232814510675929112388703783037752661919452017608662165993961783159555408618666011006910248707255035244972448609046288386715262433659378536506973271616226599319416620587267229657806589117408962591093437337921568560933846931598906121061530980609797699796214942370806531689705700957595801978146916194039803907735973705965042146933754846443242306419374240191206791602920152404459548530610131917902768124164432825373056551915401213194919225353344692164786385251988338306151599722327344876038845268926572473492523831744139484685962212631422469716431139218562556542199742578983073712798130747055710777895687339672493363136115299118379723132876423433956301615882895773284958178340497626005986441684169731020273796698236079104369476168920294701161266311440932666269850072609709950363575674199094283998061104212732759426643429058841830914869285213429145747279967541480005580149625615999971378660540154000705468786371601962526733011184602276308095087741777159383809459495283614407684112111361970132389006094465760201841302151541134810319955175827530552253027382743883220233730248793301981732458086508453039266083905970690974286234547720567481057362557457685747796085217880234372005537086627542381211780679735349250899702560326121972115680841386923604537526288179350507250849933779177442445507820032742246607419088937095340118429356436845988532354452822848405348891902025288148312398860381712199161603569379581735970102929183044910363339074693970455646367179859890589941902286003779681230633050694549436375845828740791892633478863470297980994757927144649581874023430326959314659893605586244593836069930563596428495671431577003129795463521984247912938070906185091596150619601749725772574399106950767817391423162353805680428997955960222683111880702052177850220433738297801119698414793878392569522389263424603954466152914587736790847373678188936327604367904586010758171287000296011908500575727307690922369981740354050591456033297956985559010653180224437530089193257136116594246777973110281276725603529373277298756188761879323378107414447360430239676025208219065902808792478500108312201248840600449510100704287751190289828740997813747895695803734779581473601067738647934799637043118763468844423510371211850154598064679152593614861472341831169661863230184857922201326764105457164931423687551690564850175808877502776413797583300981190263470366148839372506002924014079432573469954316200144514575473531841903908636973110458416327939796779884745059924987666617715119461653349104242065031287587340008287027192761147479519178828946239177203371407995992013398527745627295890367859970816834811748379951522401314169924064483624320438602595464897668925616971716417338903789706829995720537919756050119880236799211284935177555256318348333419103129160116567541623818095677221017889982999325416348579040899985655197972800306388527709526727917098529204647490648004482985758116693339342845896835637010619800855943292457249832174629482914289817320212043013332423943366406006003250801521781692223718278143513073390250185895059790665191238331697716123348377078164345199163674884571836383418564905946300776257167667808495408608852634973266434813507893419703356513230140157190384503631837549342124305404636690450647027028919315192860627522192127609700644967710602402476948180225328324761598818306963447541970558690119801595214980319673355405939559443582679565785730860114129837712921245305790911206654161473294669275486976273370757828179575218006974748400497970981498315507867730485102387124659961904250595442330240655233206622456243257141152475291991055728140008999105655735893687506503354899078059168268252434991538266706218960498260232495595498253854746016394490850407976268571690799457267132846355018294364495372035366209321520209370267028672749470832464760584762778519330814005727158615913778348949617837087710040409885006972890891522618317256254556715245344194117437321896985343552959698863673240020426026161835361144092059124311938982514535646172381534294235735047999759461885551582288381699917398307843543439170834362638451089221891583970284457593053554155815203735860646127697966682726655942158521794603925922324239853625900996799486729810674130833167744503256111354722493324712938864161769170553102217504906688999170703019837116026207119869063273767365950881687182575008694547608341380514106287318988433810002353633240572163361241886599397396090337922585696037171076412933284374105427071321097521771971008171018246390780258066312093825982287260777708081413186075490078066819128877808497270512545031393003948377372507797713307433999078349821629434158997660994202227678388575548622169526713457361082177248939082097155842911442006703525133194192310607715951939983496431985159718695081692004736218663596651085785688589738833271029805947224455389214880806194039477382565739879587444112548837854128144451220768362273736990624748298899550100497907846677655614461570044411201824213301534093370765353080856897747749138164102641947816316014607083857709304958262405256081723090914379351253781104455138322052705695784367544544962972041178828298187818108950337325320176417899903123354275736877603835731467982297274911542591227675174061482767976932143803505071104241902335489438140953525060317415523069879121321533993672089274790423169368642969738658024997970382388799006353856082871847437518067120107706451968520344304857083934186889606119625878374715744310333309388810590882253920835502388249135080748348670836510684475433929758958522913442822989412303102495087554974317131610378277673342961893472395706345005641147600524159759234688135389552613286937833113515543432559830536590829194168686348924884687802526681702345826568186027218431470003124596884554237576029361594289333973799741827889332499766950859402936958241922900220419602468097849459042289383006410834272337752253050978449011383520844760011389928619247827167679434691473418295457871825168782578656261460605725294068400542909038630773698557253483136070982354042447882828794199967330061890848516023048596965947578262343510941107740021924999457297495887201644334830789436002328657151187971326058339341354396795658519137787175125798408876075517152572224952441229738441399790253631875840152869805989457620443980458760096614563756858917048627687560861448144659559185796975332688626804963338281908222034327957185151391850114862146248510029171747674945536486316437778284379415983844607450964150407849865635325230479854516406744725051783099371292648161141895920981235549762689491168384074708471482330670266595331904593038685768353829196755955057166342640604574411059172445067526445403806141257619811064628577633105351112077046079034056309905045186612942346174659529773242399041348323983595637368847629086549056609590514453652325257162028028322093730898776915056089771248665953655519904156432071450397241461061500098324982841622481713566813867359807045959666750054214820612964580110793629439966649214395626575764523193031260083344413933572072090642703691147101395992056864322988371869877627445430443646079593988019609993444022289869358487472872011546542148233470802939838381195400469497838743253404451766402886294280948987240166746101138712540702088581327881402883762112440696413190189472153607590021032951276975391129842709616026502200038395749587130373956919348178969560176395798758822291347815520723667649299358099624674419503271431025660919675460108185418515250975303808755082736236755084463854173116669103088688649711372726396647833070387351701009040877869100602430254260403624407843770377394578102336992991449140994981731031081650419213979718735502983756113242761641685099866426340985880761160738977690333680848089737748491674804224856250113101821992459718708730895296699403382796468669155127142003994868369448337965586416988310997285223970405731668364289848957975806618201551626479836974572159513081071774197062766137869659427467163579382011620388911606633064251217500119935107355918208213506468845284041885020010844433965486306688412142866407738202493836774327964052669693808823799937460505953685841525645285512674305943512413397395184221153757668753134681579954240998478392310632279186271132205478502484545563774815904598187562575848367234782363840763941976096662469388413445449370297866623286047044465172145082188177309905652726939626446906445312902148677266265175768600324370991271286423382888086071839525904523711053442245301193884501972023282145513211328361770300942826245615157267881750892628859321213834080809840823740778768288712679536104414382428638189923494071405194798565028821191617240287329116688289761225276859392764976807891479060070650198877718443675434816872384224498694262512424234425097432452624448228027708543088073257861709572834937451027385370307068948944388057785833084735393394614985032999925025065118325556109508350096920623053313709793898101580411421063764870017364936591463040999402801242482454782226074446342400743636795103847174316726951061274062133618538944621850791480706740725168652560092051114710442867461604470223012837751174369428444199545358986556870439432292962164921896940584597390250805104724350091400097690337472294769046692035265851747719491959816739119973532124464940706192875769566466928464296187209022411688021566726079042691778294379475685080871903097270951917377090164513368785748146396831212418041073652186221417440563582588616177456036387575004930447242593623923975946275472661844236215863290065902872929780064548365510077682076612509688656956591716602811128513764223277434447765564538082718600944587446522090587976501343706114697319745626068580550642242699117624395872031263962895189836395494520197398179016883682712013104588351068016243697028776767908986732477082897978150236401463843909385777029743601586229926323371873813132009188730987772954183819939016770581641341742182815874102468339972768625750790317563055538866404015974825447934918408132931896287507317499299714606472738647017164676510447837494751320511416753486702565234880722782631098047645071461409890095789211735128330215332010612437315084390080965821232371224836919629360330004265032638420030457177126686573914652049142715576077249308268715968162157514479078117470309416398621318015388583405109284760473270441908008941831179413803079019899331472137260596840585869323044369177931943936669078781822875070429093819745266709965051559328431239747679712417975380938589352198895705553771047390826275027497387182050203209330064299230042302729301051790697826190069118815436576580583712650541253418105487926718772995472013763144863499241346262311567829473837989270887988289006777543490250936003630510068349925557603269983325515246364513043810819144538399807296238051153896824467407856421600272991628937627206366351539780284566179029063652607049909276358551165076675962253633567707643651766204699619927324683201666593134908427792288177879807692565684701978129732011993361515312412880497522758115557899560332942518851896385802305943044717610458459719861676803930966686421156328159152909320004047517481925950413882761430468290393338655042659285471285103094416317488064249929849023513385201463879025455648511009565717472768053875036247335037307332189880595700580083930780638098860768666398055941135082103698423421068231694992905595648071477676603063574223929929955861872172550757580401698520058423313960497730110184180439733153510893074562772396793171897441456583999027378581624238749288452298212370941633138251024223023499588946138557233998591450424685598620590179553337252981881647536168225944876803761000775672377646545253976484443207776483201389755702160430873117254595600415303981524855386386090467890712934424362449563260935047402994287056047366485319727093414295417953075674784039697504750193066636390285196764758311018516224580522000227716636224578234045306560028462667118353029253019281354153336093250731596847996015422990708268280482036507747940066404123942702570526971403160335172752118480542581919889493644671049253654230691919544046294996183545741069972129817835611645432928781382863268898231886871250438931166150993468024354171528138125804570280035056613615127862185512906301046364813973032905210316922904673315210817043810839507040456733647569216259213151564521450624786461538697522470189280831390443532706782242575300755114025684046251067848845354602962156010507991767473456178377832591897284918652726575893321354312988226163409785345811858882448663887665140135069581595143341094588047129484045275035301564903071184635034397617262693818415769977106781330433178768263967445995571403613351571884238832784330561908737262326328864073282514670116023444820799594062470981192362290377026768083809954923696260040544896656606115276640332580589377578222905860930590966500009200416057203109244762114805262117377942424454347380356103358289120420404860634607735940570188073385254306270949539016087252748283171313472126390195811367635867918312488916700601930910985816421018684252880459331512763786830872698468762159007392950988715652711211516608356799346455722940960907736410907543066351269844118916633328993984641073187192807558570166374374509793231589200621556249291617677946847221765737081869032848010038448103207624548563091969858633746969723084527853339086200492743218650166694903991202089287864742316495074878234705740955972389368482706099129351914775774490899923725539945711934357870450336132370158725524470606583717852351776914438099798059376842765286635615004446827569519748932275195894908881059982708335758305563879412298211690144500291622681567833778736869530880245842459815270169595079012635759724978140012035692306960320453421285774147253887307437069614238033766075290351056221913543235455961709591352760631210048239357125552025930871525720733646173283879710830771534899695510626536915367467655442746116550996175286308406323972927257466030527010840925525763500877422317295626348031958505251858577092084700234659878085402434122554370261587306963357961586503812375743890938851709543842199528561520841258238308279661961669009804914829530578477585376400191809539133681582141783823149965908252363647855851769197110281461769237017177451391596836670223639895295747186774276570707574006257654318426725128245008034519200644869094841282573192834639429132671100540294212387551467341307904769364329269847948905108636579931993673854210090465254295356474103071489858458431715188086952467867066383827340319496164329367453885901125679082258037889233859281006603582504788487899338070637326502192442897763952587636365246185119051356570671139231876108051360745803287964350756752911692077560890805341485891124145452744221138605053021371904945844911433544741241339307489403598624628339266717867200293086171255723348426988622444548799983876589930582033398283131566394370690704453625571617094202213478021855157861676619909066224990709252623043551542232442107204802649763289449438299699798975694732321503369235530285380616464316546401359624712300280173941401168096168099971925752850621097967354589830882867688446707707122150257322895533577354812949552951207891213701298809410430653933889683406921834453867429367856284227046888197562444349786491276233278172172311881689283424066223086405973453961499059544033755086080706665943713260208351971967280096473943869011287114048600136536135714844290085604186280393829515190490709773195946750261821740220714415743497136035189756641638493375821669682468922678427828430933043566160213317031859256618720150202307530119545755243946483038293011961978036333598106564456601451912380875602435811598277628190827749388873770161974005506047759246328870335429580326573677101700586669592877662474461710123729165964110434462933204441506279232446651283168484765514530018504011327816454700250521619547129409038808364879258064504603895843267670980565256803301329066173806000695086266521828647976876676634371116115371043641575567414937325437778935251562874280082273166861195851716558803841969798483460298611727350550351061308008135090397269178270552799489667270472147914755598192666425278276383018241570133713380976730830456487858152284891250163168096438001254490772962622646896963044899313095106208239629962330883920791679658435106870084971819357577374061050966155469994337875170711177215643150404593725605350657691572391595105085348388911565395148676587922875450344312723629375475344786974449752760848607776947262044728506083755854701645857213458656539972510876125293153744073654546387822511683460988708860325189215516964870944747868175336371473208119996175934199038842650203116295746352379067217724828371322880878473737764992141179382137883863413857847674478945199645571483928563017896300945181319908637141636230389170002525564050957092666628369463212303164224982545648048792804457806983765114511017146359489143667879365060896466420187725788248122995824454171080428037125024264032888559752315520449053402872295688710720513880525109775666359372125787880664288503203234968305322570093436100218988341150174451225251624881518234110464999808063048470602383137741295976982760605696222940087408603522215344508634153916368550430588220504779534141684508764060559404455043768267708394411611230288197134278499487829970563951224275129200909921948603818994321440666887819689526993590370436297286420180428894417139440352472728899478189031459470451716477746137027030343314577024466777571711410725927274907922810118105671180642843127458719065683941446850805002523915526733023203390777565845101025968038188745743348237053692746351637235511075014480500608810295459554169273333268183262244898938805977710128097352962702707798754525443382390896382839029108169921856828143835726092621677007112349012044292783153526175284566430995825308020827054321409970756329963574384240358193837460382077959956216074040884801429086000947566127199728427890015998631716360350218850236531531005861267869734502957583173232385052082043558592918436560846719028741103571543740380048266858257382386758735711945982121522704218938322596689936800508848404227106003497142470197594051035173019316703011605298662134106878607233090777717585276369506558417871253461667329834748252675571552620978936678662320817240960449814174508700950569410085418317455152987322237890283773110653470756897609366654467975512879574880989778475375267329071274256851576259358054033405021819786239901152047477619966159319413584450408397639114108374165789587129851802100720165792690301966199427151011970195233337217759234228520525706930963166879200691280150981537471123649698996877002409414364616587220001465713469748189858623188787928092607834758333781807895978021033790733888956681237182720108094969310316687351427912286776213551715175459023544655913089470310937437515817226455375565564442595451095172515138207654125834759281861142345926965973683452241191378040782002586263532413381890746004874544769985973334688646204034254396375453707095386871832792859379345182183510981641502997290176098922816311022973416002184527587638084252892286605484065272300702025817202957093082927706826935888280139563422334231636909513642108322712343619393745740925745546389812121688235545747604668810823076569110629277159860627013797396194291055028303047716464360461468428922466454585448210881897152765835847655851463185633256377414283070639536207014313693197535187792754044944769268040621563405697590328301768394253089000205179337919596004524067150506576186753859283880730882105635299133922128687613031465266607069355463482418100882422309511140312591796920231473595065100565248608009949566529068273133658691028026745335153361390347699802855716769015644387837084371185980317415583471891659434339513505297564035705373121672605244834086982363193249654868413017518529597100356400124999696444712265452398717747526044083812900250379461783868629940852916667051513585822040424195495732910048639908941115632509815448265137856127003222163362209125062567625821324111081836396164580836052114686087486298358846782439179636270075398853565458772002316232324127860724239033223508295448580140910297535947291303954661992478320924574146249722754150252389672128065971180493169033585386568045432994730529388799239689783143214150541192829768628431668764794617283627434697973376455268731725764764761700558721607874859704439128822748421250497875026794278326821389734264900303620040076715390970869120820186606278271684855103807587779271746083246891994710526922058750390738797578252670935052544044661579407246182719926204700710279761409408229900476828383059513164317384901545824746320915293180154681841657063237591030335671220129979402391236518208709216748060276284014749840428704832006379594401289594500322166071370188940561629663376105976717286415949314384389120697457559636304894723246350496964239372328477382469963771446863610104521869242779114925363043688574781082341961968460852274188160582064777335564102491315136768410150443890738673170392332618177195860685005520639876437886988999641246486860031065758563490592335005883823810226977478726806880440567503939542628136217660529286106966232163695804307157072106099105895581621086664111262481432366271680972058051081798570002048307363619203919960658720829544833593532643509706366969714973988168682852059893159533444389345391209509977150307825319651795815848033513791286965400763343834143796517873248039496972353183231988445044439923050228531246461127786087652156093460757155401319498329866728470962609965092587796465727062561631068428849824682148575638098387905976316673176518226395686440824922621344211041296166016585230555263731174140419078988194314832647718961368824635778161994784048222890174264412040798860745289464556150030136559085533894854624569895009953683441797428529611500874987244961121671742327029992935398365674372744332260377979355364368011083402399284234577211220017767313659459477477947824021749090472874879931035397747053643072905360846244090289757195766479623253294778761639469094695438169201282681633150403947190422866359125248647077503599016521820248354633829542900774271627824256540528169196942200485562674124131964928576042249030686715231889506722576456650700428791466737455264549632361705378076782957652893812958629655089632766278659293165529868154267304687911248184440979245452367216079916676189389886005222137787429534667970599597979543403102225858961321041618136635399369953348725780769939083309546047644836553930449358155270597672635590193789277224002092489490951763779257130966528231815304801060139352394544295397647601347878924804333513572438824315131923911338046595296645483701906423437901416307967345694658445361991775495791184862727546600047209425185551781226407203458561462765818882798046248607681809437493833261580777560431520093432112367165724125917643340765560674642696397638971568196123042444012994727481445755957005001031547887745485092882533687019725565686782496523151751051333667160650750621361920592350892964172312014734662664298219534820776360574689093076685789881437878518674781454997343210578588292245294365319109786276245850342976272438157765402803819107667731401726497400130279201729252524674295715148146296491860842258932978504071611025476263859980032076418170379081776558584490192412954837427109262304071129384254806936700455891418838311058777511334577380953681604052524872822382326292240601727064237083583138784404650983490542376746914756160176291637342217003682348385618030408837876019108860605575032303694981258571886037981153216920751477872360910508805874442779731527563581073562894663101878693287780716699612911375736374569880716840025252957808861967521890445178526611269269495724376394650373479493949079149281479065325619145738035278070418752215168480562259845354160881013701202160886267749531691871842891175644465562997271921232332360619836430489313723564696746820621492620063168014092142477059200592989547987645496651173385739955545876148258363970176805768944529245529163469434498993113952169083323172952489986714628743175696913998256479977980798440840106950887190947847228854346842927334795102619816634836780658579301022684416585748716434477439641587997813693259618193651633757036446028485427647221736155326798541361890502644440753990064347493409849207156448824569514337502650815790344813648401001743471593743025629211315373400532931965261074729131619362064691500241634503684869316025930480983497957499630987382513216771191884600190712445458118760129129304765534001455372146171978471017844897457481117497903158094779934072616859387621516446755311024676256571799657968790569567629715947175693747603003280917169772181665611903037371066066258201361972925126507527264308863587360096326167238154537470663741257454230607414015247244325407032319079481732505391548210993610693657013536390142713726992468596541375403582743085473544431535592479456921977131097583757571663231826269610190790513582900540979001702480836362917249584747945367757104627671038953916373983320842918978648083748144091655886936985232163201041147964753900104445620238589025720477238957720279854148325984089728290088404120746981257667014709101937801593595285543411066726064301999534093293878990054104395251567867627836380827192473669497572952187511010830713219098900890396824823886756671918787590856802001268320177295319062947656778174903770743010318824462596704869238896447238111443482726802653666666399848991714130916359460321072151600709725241224618077638129648265164301143856610925034725078747050687985285993560438739614638697473261364980632559654801959975900996934747713303333664424717720192678475692173343865926350454340107562662806518927458352937794330726554440073339832136595396188209167105288832301369488154371952304999591905187982464648632222845196548603360098978754175508184559814907595725821893974121837494586595574788232546430760307575359639372423163067656977242721270134157013865639701885488156649714007166997506144968134808090097263297496018845725905890193585689373751575723306485179269504650170248784139381179756990839222161583909945298476383443598783109090180011131125999599064877057666206743291895522747206001515175430484360442435824567676997828286779642085750366288386486516589456906959342739445072661483976766256386325844152267043774708972840091607719296002093798914489123926552277040758610910603503048834404716284071807321080242722168051843817935145349672233006626667252843639019384496868893754110505711876154670736844316932100193969630503361785411084482002593345754376177243381116178697067894649360732010458205714778126506538167134813069254336359786141200296240145688791188502946404857503205391955405926176105305477203030337011651076592614467196945965065035341708133448198085166201103565597473493322520297276538007537312478739204738406131583905505327609589244711460779248529895880222835953820416617850401160503996956453925007760257409652191198483085790744939393209106313790623371641820372320707021853300718655256178413538494788539050752280847149244666710344219271370344796665141661617306192259088450980206297065955736768686627786872295832861174957079775614368891255405726041579337031873165810979692750735291581962683449643573830891020654669973369240984471616696785028335974121696982702402352233828069378958516607820104382215670075507766308462661843706462880742143090094560561850183739366901492143548127592395122011780279601310757225533043685063304443064447392413798608184895750146451877826006019006256375151201671712396072026077546065180639148528570232821067408291179690229592431060362703415410733542941043300423658435735088435299789801171606628884639620880433080399822922021126940739956338631631043723587265559027650187646433701809180801697435653493387677051423627330668598866013242043875277695025105866409068850969631184492171449468735141458545849907958843089068120919398412927051385966563133542071599728582431222268034344386900009821125804034920817983106720637886413164655880568383973210447640889191637288602661137274866023994603805475466680260246827774801959415446355393945454606892943211661185769357510349920240489662631869897302444203885180873600062847753719769603606163851790678746835825469483779161874625956091785809057325689256010071898767172928146558141037083769515099746967722422129562792768549130944903317542473519006064638535533971734155269639335448592874718754394773190536551236196739717590810899480886863972298361529180794976768403973714405774038785667549488466856771314355968711871575388452866869225012048192333591477279170230587704811402744173057722247578257660712717708307583306378126606343978285131964204840419183669897733523597948817325022278152630684171867679232228719553072467373096492662685717594346214561956900321931541612978113320667650650993661710895673059056085442013489921227324168483062263025265140134617239515348910751283381256718260111848217084428234825081000139435590878447888213627166697896653891993787187916854508571835707172249406687951094271928228393932792084318068663140153467691853281046863910038052096728531068922976439791141102776645586193985405768700719883012547967469012474435570387770046383485239142394960908252380921529583317379379975693816016474977418802060057797927157676888730943903718555998444882983870479428629370451823096940676900982407949743337527734309345052661645106774027765114962918613606615173655829883747676841825125092597794367116315419697506408192257625447475893583439287269028871876181299817309230602829651333653226718794365477472707983791886083977553697197577456662151386935002895069842231860552861237699110363984667309336838147646745617062921935288126531013513502189156742189496727502315949270805611056189095832865721081025837550875390029990564479180752607230966350989493770876661373360994376485468646500123065104248254372981391004319978184505508681509125858916119724548335391151959314493148696953923422403676362805258103405660646314683867111431849462398471354895182518876814198973959716178857051810843838338319635317426225131121439680819952981107594689588759831237526460133192741270706093473714649499310806059349591921370436528767847390013094172609061414567466148101968284708865966528506233935533906730097061596162657802804961960077275236576093354033232083387482535418633657841029330368898693085600437014929027551482066867404931579987607832515284683385942644555480175104405334125813306339589543223509254370277284532426913717140669024162552709181781120338539944650792073572802820855629811084283474686878157791074944291394094595231320650114529269243250136201793485566851334794765113168188761314389760833753023726831199081716531894082424278288851669123990537721090711401415184958319585094526080343095048192785312885147127228239712969246197284606002716563920067652122104083430423011773299458239820524774457852344247646317075009051617507375283943326895971084553273484922118424898239824673378617100124818638331131270356867350539049399736102843494071403000224034315501085230479439733403210201083876497357547946042631852395173229515813456785068177432393344189470260466648238043070555551159663867349299426552682941991098958440664684323839245609076553915222718869774385159300951883130607216143704551901364581790419780062477857708958665678756041962469817434331494426069509614326089634448218026279128649812649786666946139211554661129999601703332354527521341131361887028569985077190781575967321752341571047654914863983174628567838618234679106328106729325733466359183517783485727624425769238305004014578793615826688329167264892138155292835947249357252331401615827569960400345417474929559995996847525951014102879545642482243033521217533976218614891967698866952210531123862003543098353452034277012628679623969793831679636533504676783956291806237830750413491446190811205869886282835812197128307584122021772425929246088665649179321970951221989648204253190054144166725567203429454105951808241177302103606799661436150930713114226654371543506708189521008013907982050286900657861264432981073170651056597837333460842845464664825081569551360880507070980061878381710530353551784217555227973663105629261638819887177099988974576648058538601435602179110752578368468243272267746281054046833215240616807224598424020142645621320595726674748289681417146957554634549943038798795800910097770161132843881354111851935350526163702663849282687498473212790692927714846447394456553926933489472517035333323600009637589049958393834940848621277450371121316566257850865951727675789859727373353729462753957258285768335995661735226813990449135001023792521687836816474628031655488958088711008539456930913478826324156190014538498727480882053827001298392738359899441680510185500196238706115789549774506196946960093923851421771054932542437428063741272101348621519638725686260508671641557147478353616844655687095394755056336781952892490179082038654937367606630719762980228568857856178533288652665926360952722245350191711069978568525245315193086937127859916999417464914531905530023257335856258985805753372242004446924876150475811983920371368572044285511867428827975748546086807397238893426245599279894670075439869205969638972200910053233749416694878461852284128571486242257970182730575098357170578231761157758213551156656630169074583159313815215325735752499101433437819650283749119884036802116490252552171822815620768887796015991397179976183108018355646853443823553890690775492764451570134480254597146557996137501578783580473702875262387691160711525486279827617977407318529520395344740036930236559092214317972103774400853295799329260660117110734860137399892193236915531807507055350991227850141649303984573416385302050743837415783202531196310571701689633932939772938843381441447902741846548368348338681479493323235285622220724440129334616246228473435208351701386471986811663730805891133711258356831535402214418748855080394112573758159813244951037042014323175789908359703321588337404623469102599387143859890766234677344891620134056353029141540348179949211277121337391213161590336039852101144929738257856341623281799456271541741897676725960221765738637270486029733986202472329340627772047833915302199930285410447809954102927701854653247453352678597160264232386948693575919047512768991917748264194813537879298001863287102105570975905479676631071479433849567676625803221497641154847714815282857461905472935344151505094243678751160972162685351458551836137486176346504137711483066593435332451160957246044192528015340307248245783276023130855706595161800566973272830731623949653593941037136134933734210521551769474697276069783864573586327816418568864029151723747907515776891126148572792962285588134389617669654412827253895521131969970589778797130136535142624565393422322195066208733059364899515700579610465310269362970384948605039561520798328943379237684614079962407118446040200408747052468003766596133738726876459231178596530660085184305663223252216012613397985967859243837011459573084125816818310299305345863698871901333927727248400650341645131028467652645457434439827928005234133394282587453255045583916464415631684022608844634619852151361222322247648684880475368706601926252657103545091542465457662684454379929005489615682435428297095010251054654474596385486095824437548689962634180590850305876052491022504564167648387413768766034553204980326235340086759553612373144429838505791841467688815270997933407984731552858393078199486840469422822773750587523922207593032196982209974139477623949626867572482744324587512219636727362391927836145465567855569053324979312219963754736522757477273518977825319073035285342007037162910894080045578778587012987762653266854212810923854906661452754688255123434068687140773967801414646812655686010056186084230614187230274538812374735033906361717905206910231866185910454362665178053268736174039177517290363876706557680472121974698733763387943454131419001379566775677591646208326776910757638763993512820598892573314563686635856552674499694144552810819713556358723247011470988080325069476123250900259487187359101459166805158426087810290105624882309815388629825921550697839775321201545430024652111865165378589767823407274440219645804448728368319764462417964952142054192924671859160435664914970640939371565688614748379674019180734175230701801511410391448976813934948070544646088212167888765815581135293588954879947437012369478750432863310858252710293862540121711370389366901505293224404126037097962232857258152679756785361373480980864586364718284456274102506803918404581262840630914621133944061579393994601740275316203881726012501961806758166863096360856977802575750438391433758772850261904476454035706074851159425092256695903557721355785920008259194217853719619109993924513298799732596097951695567310918166493188142253520280296605743928516781562164627072199432486128228900622228943364427624495463859897701187045289484979187851941395229095515483713078870631468865751557093994703841765666337703866543550002742130491244925989719902682266480803601472473294521772350795489861829307198497636982802327085835137078689821764329816134841777120002085559083255295723923199445917537244209083390339105526283965629438457430780881426856070106649727012749088911693223428883916420646045249596216070015965409343337836461152853890439602712793604941849106237212293599483245934888601979584794140317949820253175407752859216170361967079179197551530031936496764309376087573197559896842515925135562825739661999985744898790286197029155006161146909774608933603032026435283269556299526120255155297287741204949456399271378159560407879676299159514413320814886000736642692961621696273378734895152970109687253841471642805252399583581702430901741102799392481697168818499435813895514198739469113581135883166303195547441039875321800698528813061652095325314943672363476533799487283544342475285368737537079985284928702239249451156994826779069153325879505046361010796322749903950467959177085722185527647885660956440149426539435768567768668827170320619082199555104270702902766557415963673053920796127659448598761478845156760215025844069267846345442290568291968880627455736054989597768292533025518064082087693477799727007367938977367094636523758874226818366889091218164342093753074191583065158601788435888611031559958581848187302358750605969301213261822201245847312693078307515649355848690187318969932411859050604909655188984093998266458550788050938380547921665535345399686121028807495613285890145711817682594640458672983720682700573561279537271287486233924538871165482707134927463531002117599081258064247368796333745246116414840597549540870898883623627527522986894732012564061091163756683802511000423311713215894263288384711940166902894032053681009920786697646604603955008751042619205336980690471834353507293000894041878753056179974472722087861427588779297509867013943713028735551751542699950058237403363325092303074658164249505126113820821713245745349929207454174065773503651724192591445550411833001334337236879253246596634884381849950289661907915022712496715713917862142637378284853691879403745913095029900299210444593745236533148499892870540979913912651520972226219413687906920816371577026301854451222016752073823393328499135200670976164029914133596588501827105651338219073917282759692098356317870832471918112282214861426837303167955755724872012263523115929514254356230664037067021813852021384837316596153508085314338412223173720189975620066572222394659738831892796958549075659194689609386853278587660808110676703026361185568041247442049901360959327463122838452170627782768547124197829100284446496280437781929186292328002548180969963170531848222195407605788631935206884595653855738814452662076680190366180755518511141404984798650217455214314629848207820479205085298962216834236729437248651539583687678657591088480336964956588736408063085778583367103393735692402676162214033097672147870876606469939681391293059475588649036828784131578000422263387636144522250814133794710691189023549008964888146472835657619077772977291826997332955676943285406097293909759056310503207114285682977225850304060600131954093569120352900569385847002070769949567765964779641000221077884981878232138958466942318125912614739877243807729868681760619830204453528177808953379137426836218318318286940671911537298067908820585210923544167368780765163760796784843980072540291575505974476761344508476087359184804058602245659568748068728466770915162123360533248453060251233292533910678617526665718081629883478900634794964784290011439875862062328626272136341012367634041943770361246075742220295552889104028175003822895092845878031623044296859310709802283077785415730786141814738002226635202753213134139982166956233555965282548233949738593870024157988118124041334740489266104797291582790843591497468802342000369665600624802281833948786726266506566681102668422408704169778514342565875219086843388505497758412431833007919806559420710609160098873812093099362713153482436930081036477419630360650196781268300299872852977738577827756621547455671960432507333524695545279307679134210379118280835056875433705616982746959685493198362233831928394553759585207503441881791040836695833967350172575007330835568264285537765993523808577438395967982904906678307170474083960119102988569824738471708769594812377892097406874275161793186275712863238125310546734965476551621904064054042172667851243205054935464120063835083004368026434703700189735101340681503651228465062133161788226205708680561722515312168463160623180252386767339607266992742693070234003684528064900690583249571786782489638780997111051024590035944044722683504431064878950019725739640156149217082030777778539029739038568552815867707322678685427898058546264729130639278442219484392617393271664447079548215821328698649632612122639759233812944849887707126893711765108051902806002129722557599696444311878037763991804139159396021040493572426518435639055744598519734921571542354431579269371859414650857208843592108413897718568159151451600064900467704376254081030476123272160957697609572025006788913648840571918519931319286013033267213005014652668029562157047652289374314207860133283886166663085740920528260930339822050902748999931651257468872447695609291601270447238931345055855644811175591183319895307047829589248067160751841132200122438185368340111685129418041607112578198930329736103028158936186862751731906565001250626026393255793107602345294586276261609976957094654312981349314831057832007626878546422077984311947067921313352807563264550168236374858414780554044741169271584722063940753197713848435321848140639754477639775085553964374113085829295050308329218204969985901756462094293479251266353027153243231864163033408728823678260632997800820226413206452933453890562180006976300050708827736202131040655324451771537055712002421065995355273272543043099092304829830453031771415457152085501634914411477756899940145192390444206328675273470107207213290469914962641118129087462505811434923431281447784427616916491245422212090261934028984182730875788924895918242891705250747817035068570934735414956111364715547750823559237773816494528637224028020923921797292649449591327135423499374176923027551255776230354738287543808042238622284333485021229362659785552767945994237124543677494935600696321792894749978370670730534625125056666708474585629889285486301501824985962416939192684724577980526861126630288574690390163855157480661326237468723740837783985231653035001479931085754896312942849783514707809475914226601909287353488567905747900204337111164453795332971173246515561100824100574632866657838662014104958855449922223746096637656182216553217856654933252211903576181909601694565021822598280202466744927823701377408373670643438043642284953124017211786705270632135567596749619199749911883325282101866899279306177652113015677731629193204114870913278658911251085519754740100724288808821896063332368230810209621393590937351775402640698843240832431240978516736972785962317387514807283871724940252350238627293255193154744654588825554891137293115511021506249191314815936679711020120596730940500695871014139959776866123979906365492661428855179354160172165163622392116745746928214924508886909492501453274148458236925601866498126900362421605862447681849691708613435592742907538554802980132259858509705766495538682849943963108232528873564118135611484837160905711128391044484103591176108082194075423371975787067749032537214826990860283722844718129966861257093578703690353307086907205080270709053710510281206444522860448023356507199097352389284414729115510361009427756295002645898288656538504795774858004504582305853253249786308336443034687989123396666778499947458113971337739390912304292440320422106093447976352050079108265622113062255153206687476097931693991311206835893744796433328393109251557833632155510916742879715351607063103519621570054092252715253114260691311481871241816059279325449832998644483289338967331457702679337995131656056904238930105447430131946248369782736326275745247014755770261266249487798857319024658681942834313973124011700062980155480635495809718454408537185815510274277164159811758685563249385763893790575444654333020316527381545002861780400246456915996842470529842129893830958159499604712750096643749036748260178182120700841722461892167688470772906077453073235588360640787571640702689188961152664309595034258892019460309244912863088678940278215221507931449102999771496358946394451038878707324019200102289950092725149950997624487986354759447879783533515938696131420292532194470803081961820879818129232463050655016945583362663869592358459997319029875823771931222361776006337340134881283418066782238941488697884148894970379714378258533209105222978000306998269772214334244197511268447196177374326891934670311587873718447114309119301691551373801140253824526992441998372112031925848465113521554261855197167100423222530865377639662609055668783624618285414952628742233490263583175087651365472929313307689502600509616955292418293935598465005012603608741313716421598074443009891153618437872957550160004749359737715682740822296623769622622207379077512418188894948715964895861291371014096008023175467569312239352931212590217627243636707163074172539138097254584080120016008755114160982352717701977924553127643204572322885010179038282642121714509366028928019188634387859506833275203629850779774731890142972061725527846555737698578471852976883626074674740926729118475748728263232841194613407393988269015158052772299472892186857949124741535417641045669577305496611765245665370781021675893397631214075423697351206903519072334832771881700255770071882078364955781693748269372951338451023800581791495704563634011183419211341180501257002491219616662072700255902683700651498233375487653214095874036505850723348013917812293862351268352741242770219473044377393764968538352908211347686670590739907466573994602018944017571383562741708751949148803724993688694063657397431394478550870343848343604237028662160571240906344625086737324797358019064990611164315229422351468631580410224327770376631630791485593807555860987429191459640015463415626370059239092913211525741492751916869547688332485177220869840987102836755958826632340149309229643138872600676005280670494130982693971313521932644522468022429215699781304163716119406781491598477201995418115434547292236048629188512589022953879560772105441218200019250777347616726446048741803580000304103165288486834707744917073214865776977503553809047237718862715586321714391725950017529456224000365431532454629454163711715887188232013355165259943058046399226696323400518976141247275166184843764819400076464528913233664523419620203308629043901773565185078496071762596013027214023073686957086018844745948876757953456107310951966963505557365636325778419762370724776783933753065509641235378780835072320022234803543393394384390940212209716722049493916061368707597581924305686718527550221780797651337416727031228248811292301451212375881588597283881033422104593701671904375902352470863876031683884775388249596477525161662665529177414778431632347123640106127282594085724022689316972014989552025903762134062203622686085969372136019486967268938226123828696553589729764229048673011738738689340099465997262893040257163971793708041743076360477263357387167755856615616610774194340112979952586098836969990263706618483963142526940878510252700186490562516918726081335122852006101110847839522669223044107750786311915433139689188473780412683658285786088696396346079622024957073081236570426045055868096079745312512509464805119183838247338469734819857081511771423483288186600743294408132405357740364812967259465935503808921435204708214759128175358280536446526041245891442854050271024000730299571779631896108557091409078218149520138352845274538690547157876917289189408169514721925352783502108588377652421237567654673904653196261399910921975813005324701300809204541372960909104731275521572070451300677942283512048495897363796360251062877774368815283186315898485676053060355566717628134667500904481306773603768786752347955307365337638597482637096856751896608117486526162754323051354178298071915202715799317505949214164398620905028191603769795618878207705048413884326683757699784805738721650611102803095951921214649356776981663032603209173399627265488241943876760406821068343408581778351252588199515208823801157650671747181063483303445594431182092285577658509584830327924427327660353166881175766715823154310786195208385597905725682199782671920780812454716089969669098464173554668927483675402618355785870080981048233157387268675110773803551791903770748151032702088321656485474466035621488387117860467112459350812674303323527564289862088552515667489985994895216742480375809742366168087678705591266788593323550676659035457367003439840847006462765173787524197625821997604359655488643278462798191610289136328373717538988943718822619539176074259869691754265496990963966902509400935722318172666567865704666858749979654844534131379533048374407161140117294509349251029583575975315793991790974179196180318470910617676158139986799941012162134900929382117877234157599753141030721910003802479950978825476980681188125696278395108465062944852730147022147645277125310853368141220379258145578699981208978657902097652600320950653699310022500503746744888878974561580021026349326039223604761910886832366374641208795895262037254527272794244240179428463527494780834524693833980069555980093868229779626615691063473890645597808802695975314283945373658714216169836868327667185117011952170742049891313214416765693868122662292009597098841857770402601297923832069901100240740800826086988958348508011559008840854096737065968371890531365064957092875552512623308401930237276893607758928544922207553510103527052990970603457027665518357587155423712908022701908643524614280806954709487923628050548388240575495366221046539088786316748657296183116646763993461078513610503840060744704426106841498948402212808377329202665874625643303243493992334922941522105379567422439258235285944863256157127980064184212397832874229154509957480798791367075250865231871642271900985983778467888705384216124549827324911010585412215520385656165975766510352461386892718680212419293424258544750487064473779843580937471294538062578631695668647698919377819864069810361675101148952436791062824246851297320722295916545476375408735956261891815124498941466296885517809053033977215541877220361651910128448802003416740156802834000108071429989818006156822918033555721719115611241056420640838448728637550354231702163968237550095487224914014139128750177234481980748544891472856320780877075655557245238979875993255426060339039158409784100997272162781360089933987406219349910492734091933308825749462053919419405522087004561756565166363046809569900967595306221381834115035570840063791548488529507482956734808964152485078308641981766653134235937175776599215485023309808977194614692875481814776460604146352801849449653093772694878683920075119554115909690578446658846379203094774860418733994994138204006650918287459479150772956830829623400214213464233524930550471218679146343323886547324267704075009822510641123235736862850576726935148422316549475216735877199492252312954963530112982919761322195748783031585339308058793384157805565087408906313592559041123679094196799363069087931236706062334464114719163858068432835821003454242626603644538146310871911257758103964530411376483326814597952529711691147453687005469818442757461721146877441580635269517461070436011118465836701454852360308363091287538671904608754427104131109944510652279176298341005067883867524830277585431752463822135098504867291996873335871781631174534522364053828387150929599969095623695046002126005083487021419726341212197346483224614341512965536638083893518051115408805650995956683200306989514066586802362451389202451711217057658470331666894793390049272255820802807717902738579644505492909452348637415340449183251980899846265145601134918383709436504530654437206566343467978920470784439695080580728580632349126085377661604789049423562582507805193231090803342896151356054756627858483623375679110459611721473399603983033717030633659272633269477563094515177044104520062332126497994766022283936785774566792684900585051807823876468109531776614709708466304800933887427231981052168740359358624617424779601604329888943209922647622338601092994803624062676684557978962611132767403159475560669359079009096130209017109825327707313626219787711462401080041008641749790543105898557387187268663291379980507951980353004208055918358372707525248636207229454592077592371247191729208232613804105893625325077774358842233578084771807120918291416549877790328323431805379428449008589569925563959195561675165512443381155437414694653888673983013961756160507609604996875665684005892298205110178997356597498036848230935161330871126131297348249977499590633500989408321736134330495947143716976733373469210953839226679632303729702317771246594277654207402394128576861271742826057447817767834369582265098826905719384400079281105720245281826780852178807690079463609225106736709931122108728136902542943142321744741741128614524231554010010014183732023836726528985544240835823583530185291532791746470580462492080340750036913363449275002409098440222469268124217578263786617474741059441328674760712837703805243012127007447513582846788663820004987427478890287937733638898407014783565352269456849817115468640631730702062216862150897071467033713114955244103333994975846937597844858325850843138972590046762267351228778934649465822412663934844489069720488868098761016515879763403636234631837708478169361699112569845724490377688186647199882011501422683651578383567436435328653688842969809777296432080953936843883873708939770485568521576874003206397875771501399671695029051356111813016859617006665041199945849155530246149981071681502190546390861448763661088022442726405868378923689554414900024623442800697132189534729096935846889787777781462001104201176159581694226804834547108726975896559065676814766716797120400060299735863337133705280506071108399132777275045163088667431475920098465151526071267866996901132832090705038560061867524843660687315091575361905529333214343445675648124975696901169632650798481746906556195332646758493508140819723878124738651325177259425457020352814018691744808643351021802221401204616817572881015771282712773437379356739440777420165924819456764077017011631720087736721882040376956421273315908428236527432275639025254906607256232176245181455041756771196179987675174654759336650496927071555790343245392290848788500352002837749589533831155321802001499664122148380716268996928770812845356684434920321178353225980038583000268042334388574406609818162102038439382817193604200513868608705047391566662770646045887302364745837611399740629559419422151885992090928447394234257984340950447248863785446450532972358681626626580609280062957719911347990612827452949644633953952266414531004495722618623257050112815028594842644974133444645126885708382812178310630148703723309015381856284025919312202401668613029717707431714922174356013433715886071523750802647750423317775948842004434598267518372995641081779233240458370325972467871418359564676688019968239864182783128489568688918644075865252121563163342810293909181807375664295804339881779330836316828255588863735704598958475660713679389723164035981170646294824684495324696270584759162043985946323329248149581953551486677314163459719874227749124100403597418202456412320676083783155961703387352848494280897813762590900952982857204578781936066986588711734500425171436468973483639511503887026723002133970195335461946247899483504067912327236278234607751489007073666604730425374275662533055631424662039513136164933704622977070937687425753361305271705450231400541616524774559566846651635538366162074834451567434288449120721470294483452393815035732812226434160152222423074847256044930522103496662226783413504870708759753627358023510978168807475867634412427261582947677477659928522862556466125645741048051943447496994739712672950741499067682448787163812989296351746912529725680419040360066279666119060997926768211914704558804661374650221937137840994816998824765624487151679398685815818368556614721017959488270728883469361765101957485107901961040431633164738749148913871306996325409140268937042368949520709986985543905860852495529508396337172893432455155051178771024705448581676619106953188900870632132197661397433681152485559198979752693648384920958467946140758101866364708492703302692707446980406547493297467821270360829611488914435120790744925566509947480529748951447687190593250986267242772053553731679299824620283342734869170980843440259977336829379601214748866903071218660305232494142752178075866267988475145492817678519223054079536932920058856290855233235051326086646022417196907920950967329879474158435676287420903402920091938548679604839833174409566396805968831908140140772991861342281465904133694521743684027115503370955680930610502657484803425398061043363926830191506024733043005953511053683900157889113377129954467635130339970876316862279079457399564576181295818306247816304066415850427421183465258175229443524103933720786329972524342424426247278758253268522003572465543370845033720726419298873776188433004668926612566573387510655770854463803414979036507725784313090412845989917735360416432125255666968030577651516956080495455313900846364666118984323039451809502556275597056236731747806398582175851761528763805760095385945029495278824036490593350818789959616189196914210704809333435556313011730288331118161439115060608256543894619960144365954813180754798499348082471256753706483685320330826503126246130447904076747077478954846635527986937946612980102703704399335211857972572062883178780914693218469609837261235048494196365977029287807952206708985400541826023992136584672996494269836516770460638263124887612605192187397014835904467553183426451168296988908858937714810815755611876382419755618717427430578070736120824162292239457146799296706731545293793563537458842458619083302811989742952327373018798180952860892266977726825930153379699361968326059475510975043350315679123649848334040058664445367619109672873704322040117793637797612435027356211631023422012876146016563996017208294635924432290024481593444726368729477062124101808926710722628145627193897060486038609480517290764120748706809128534588452154177570924376767914067490706604700299158481667073659349547812621039499017357272363640318909575585558931996915996431775167186063735606814627134116363797296510441277600270568316144978092930479452850340971609062733294101859695922788408375614375428810957274911794301252257974755348169034750942080339372975346013912101926858337875483035238845232248234243620123753641713806321391119239026605046445411756691172318891750979107081158046850780610571888323689984367841402278843169792712456225171644903526593956015415919038247748158363166477701848031014254274512757886060392778983139484230283164875641833352593518774920025252447867110729916314778510101400911613558603361617368563556507437867792778050597148435673518171832268074822320208615218355316199920637023953739619769994042316272639923552768698689249613821327399667315381845112294162917987183663910431854224401277410908546482277953563819877874079160883042917591377546783089036175650085140416671649364780980994378541536283076837053459687423440608215130995318214866369184351081436739196300041837424122372768184323765627421402747023581950580580921586405665277831578757494114247027116308941659228673833478362195479202089685304730920252684777724759230346545039129991019981498578836747910184135766291147233871224243573247717401682074361837297663033495880331789300395347103534481158473982207045187890796842514495540068960356740737721482816297898993034953881484953072815767499998488218660187485067111258608750431960185353852191276462706537930157598713275219019176181345841358272961482472431563980910995044395359339793532565403602925133134508230503139764642953744653464583000583746956765609857107491274458358354952068475460530544704725835078701928496798563795388639061273599339953506528948859842651341918627946249779606753911845022554209225009337699638669507589131169565863225160985196988187920346139167405683359309318319088472601009998107422025518287745633367911505446063929699464723485411038919504029634295114711519678251749076974275247748838626635208874403742686695489731567795296172820021666743977971453763354788562362118629460840725157903383035007027091114026847339272011297460159572956286841675952173860557299176309555203004112138958494024761857871416558042457825056861001572064515829333112779699978065984753264445936406323420611053829730695558779485577532228490290806758306942878425743570748864502283028433271412194660031460112418090144498892953480961228624139507228062355227435729240517591941568194276211992445161108036913225260591195378934764624842738391444745467128824345974518267871717126857668084070390739659198998403795097917925283469639571830970472219331995658211777537692549324917445841351066620928430267225565723848843763824862235024739570622243989618450525686127170435797922758521498244961380903553296696817728245046869265134464062707293808770714560739055784805039814184956619555649439595013144227614991821957681006925047012500103919022906948667564986421748950156347776951064055329024989466263597586497065552353948728348538076385486697124751308828350859711072499107267952911494533341714239301225902056265211427121303262230896918517317390940294456217512497316772127625919457533211817856238214755876799982509824144204774033440509783770589263920129238878955847893378187166689532602616728210989441023598039772590342609440322532576171093488375799101021834488493668126863238228956896770599917891950367865457232197123978823345082172830886992492475101247619740333472387172123351221639137928717893068429281325566821473345880132822262704309909743837601484248448531041638117013632696440854934663843133634818419515457800532359264543178955699979042771631274156813042595698695964368979405742612298474220661604862748028323494015657960534897303826090102885006171664153064124237719215667235045857813776550914660056108560640208323167309312374003888310073659706129841674833872847209049585568347490795196104475317500102523749952778346489557529030784596239786140733236942882649696132018610854007267753947464427282129546290953853634432081471979367306068691851197449597141266149597760732340490014762106181511816008146784888862082310433912115285862454552405224035983553048143618797628918686926236184379750196156995669798441076330228976241256416565518070780917190624820189138641772028247184291144961221166989689737224445711700768215771881825175856052920590462478595722760786263481707512345727679062285291697223089493837224320658503322071698017677872359628655642675639530657672736641702975840990314512603913830131470321820618638772364935172659722185898899862309632735252624725555561322983375757055689850008072506563286675477148872567296271114329771862584047720758404142606917879069891666867290117996915568304325979635917098693644277678341609094260530910172294697781810776976374277330797855671750560304394519337055746201852929786158227861699069684039586640426775947931109670769031975556335762498890141059338309909938840612170844251419912836770432166447215626651130872972795179628391312563673869415665943513382129988035582833357094604747758934106782690892614486378748826837391577427869908059859424534649435821691053039023557721868462019793995689519110159900462275739680483879848572629605830739309953698790081338700613604668967721940487881986652617877207853308549904166244052788026367024972415264841945417758713690570615568813980437231883164555693949460371078800010480377964979035161654536190325116081155028025617321366364164040539772570634433819720285350301369240841080944593169579804466190761289906342205747864715729565914957937060254408132254909298331126637230774505935610192635147893226464103186001887205531607914733026803157140493791051833991900602942901001586752652940726300325371206534280279690499568458825205160554563865342254942998782764015394157784049861028845594361255684155552195582809864137631116009315090416138245337981050558042598747447163256068339155332740202306729871358764061635746024754216409942788573611861807012656462777317029909744580394432133397420458696666208189010012690185019798384441146899202352112323071306684302157725769651864640322656891190914517374298481281087993871361084798600769922421332465509524911381762527196466009369745862958177421584585976090941154263214011225960906899562342858722400724263050339556120215241293841308089657388447232027862958792066208751889606328894114805436519236069971917688156103076949616867710177531836446515449522258339765716220931334169609987199346308425543981712823771666120961646873066366320744430439763365764981957104895349897556301840543210380348506590504858665333432233414491628238936115534516538981001613263458484915169647382179448956059638675511262150703274857755860873124340382886940116235150490610828006537037748582797419121137008595866575248217105967073434963212991844651352701311725322463209751204167711129129765532221239215462183898249306675556225709249401734033793181133241822624742364276248049874295039777668614451423671973391035185757175443485617104976586839404906986293677964293615988982594948381474921234318985673183192437318288675639390759740502388452508476360288988149437738549366284358552623212533524461995890409285469756166805614212382392214113214981471160535495018597210217657719157694218808046095182450214980517377560513887704185969599974717943780248534722944397262349637024576307478898382112124943836453886423907911292414889945346843794284314215587893835739245330393591416736869442450878346373206780502952410940452206781807003285001332807835194476083267639329076304763332253875680697046998292226941640942584314231709608107079814297179402460640320238939789536805356877949859829871832251661964028483509948235393224804496797433210869787536841923906220802131200486307943267849677839008506010970760230179118986151616998504884573474925297094527894008797654980635105576282959572945304959882427869317618464014413531994572403609477670535593377146104451632943079006618270433001738751122663570055394560733133212843144794766762622710134332469111159043128844085968150072815000362769025953107138735294694521695728851098244322473471221543367971047380486100447087565784749064662148318557171702374432585972833498504172349603819789670315018002952633606052759324644996135949018417031900746446183418628991377775083924635821182692072625938880202558188102928318323147908159775872605910664691396156544890323035699190807540520462196393687590882327839160633731725702528158915156683131949253527803636502402446485318025710747425703852970144178711794522114976917798027453583348264428360949769744124218322432524925718602714527615696742914280003963702641644166894091869198897064227901178293407839756227759390897967013945357337014376977345191515900917111937921625944245277561177602620101361510169314594583342308586491881308145153928590219236543376325048369876974155279596241692390335869231544470227937336110502989986180426639860562379049329820859665749949020367671185280383896964426765262228372758199548034398666459499256997503945933423994940142127344666513355981350080788351485192536125046297147780874488967478056100553037437265643135971980629577280823809238701188165691113229383783324012681285687980753567473119712488705824272212433585575905301404455386172990138290315739607804492168426035533405821381593481997132427177002313600075833078719193339765132544093965934249126790007410379943855965527240665384446262772052560790703926128402827227374212247798130714647084204695287165934187662109460337108437014618946315964275786205653320727756668491917272003633262134097609559350470273287832575551076173290518769301037869768852055158949621828498893023783471994059229598878292291361378049153979919870182284525686887702775084688305019471338229994941458270532609589261162906458324945798768710615466833015931340802993100457054186613589277918530717262346331146296179029709167205455415420321431326675255762382323990371991611239646318115237522198773238916089875342009661874389144276153139414371513162122919120406936363276310989220639622993794725997557444814020911351867852454902648218547160160205886280200136925748205691189608241206080885126063290727972410464815796133317867571292739427128263620304290887679044937122017739242930194838214084721271715889987786089669042445497757658044038455394951055860135507588903854704853654231267444340279095601884190202178889381818514457228168321535812689206158784708097412981153789198726074986735386844268628975394758667220284538723303703750967413778346976724777851982090570209376681874510037150232940695569670673245562256455803449290824924900732858597557240162591536549415825028953497155087521064586930051618613607268154178780110789517180111949339193976131280241675426481565872713404759235897463643339284148156787943090021380065560640336687061530046596172691560244935630217828381491613177913594269790672176897479639357176618433988864794708381682450766032504605718975478448308314626946544694482738120315677145959538225102918380114949185133598933817242715778412700687520246007819077098637211235551272598864344522533280970316993377144558318490603434215174967919066122996434225657621273161239800981098926722656834125078631701039895711363513953873724677659268087154727562643004162075328463657703223656478762245311492914152783898510815635900386220216961924849451782337692926141845999440226086436274411234854600759662538232316575266639481114177583981881993555144923196001731819748306684637990754278286773852918045420047988814494216588139153551513946176235294124312682527033184618614648465172940970285900394001572622408520076411129347447631484996104055428705511745466396923991502614611919770988582497353879646950749748532413094274320018711879043316718658665133756920764036296386306003350854129021581102616835935801099839584147102147879282192935547115667195215479328052361370024616019029113798424723458236612623496889434218100950414801734452442296934138023204381444623543455644191392811974047572161419546326328798304845714394191919536785988121463342446857663080409170705345932966048638745125707362429776810126257150205842609601780183847230651459401611517385142482179569524497410297570297035328268336132712699369416837025795784736645790336581954952766283111844318955685503261015282338831041381215378091068925808540000032612376677424670559768218517692400438474219904068314129653285051591154678186397455515040820572160430983514880437262721300518413709885643356067804761610653480895395988366843727711602280045068064072228036803034193235401781824787201848447736450483027008932206069916543065318867574808713559032676640287320791726068170295652821757811341442376001219714689958303286836287758319882151145223313392836172771430059907185171308921059875557857672412985751991239068864783076142979154783440394794086739518596908662783641387440452380987277870353509511939738678741631145935162153388382074516632359838529194226446377558929656074764494945145135081249595161657913991840891883225353136918331321980342400343423508651049585884018659491528688273911162603332110824398317443465301222680711849961541492210140626610818122332265999249548891033046581456393881590178430182839267994967137368727195116473001035221176421385829905973638807884589239362120885617175206305447377745324422182350148685097734237838808205990297692819626590363687679051980057316708430854435067752270063408285839063616112972508262883113791759366150214420117969594535338177659253584001572899788956031725591934211943914579043051610515946854530859113428220359329431342248177260369056074552747805884072397253261039201779062223525600333742316992888782333815615319148703818730358588361238787286515348467178565454910626783547517746613017915016234659035940659951094588214358668945824543122489162182418007893530662203231368001658534538133617087333535427787813452638438105730755415104900425502766730680113180194939032175812600439169301307927536940369688448937579295005534519364461749233204705011870141553665880311227775032562323913778149882778695669588113991364744763002637091556815352536646936794340361812163364419441979570593241739465169666870323632622948989382584989463764473164115834398969450771880769617037787611932945358354397396237644494388659371207792452638072068825260603387370271930715119396677125872110202416415923952506910864960476108253026707275338192481396856949197829413512756900839847478674707214427549305076763643114661422640847694834971210987907312496089837071517951048805561636651176385919058091805629389189678850277076440698699717283750856284373393957482391977651278959723455077993621141748451011195510232512392250816550654189976027103543839135208505159858975634098642921006045770413481305073772380710672391373523271313246955896236095854438960520959460528438318112537629535617719052859799116103216500708025790162415180050091457731273310589812426344286373667879907433986815060217991059821335936474647615314612783257430317463757080982732531162097907297085802491063891818192708300334787798382412745664112280010870858599633580094619480549506089406968932553615910926239428567909773217417744081236291432176225091062831141974327697287916738405171741474194072137742440950721133982436534101593539320757992873532891162646867565983817034643761460384704618874696169194923965330964497041621649782274347310832847705335505412969378419034803924873112900969696039629946707604762439970867411185044138064902986392805247759469097380240382291759058023742921658570701045181428176344592941759942848831803729899489271145794215262077286590784072005719686201183327882357268908584768286713298786942227326356465351863126980248571065631222723415122849009008937011484386113980056237499456805025426400664582045446654660186382863330566860023737329738833616931889489023687228619509044143127791280290534309036856287269520736074786294115341837953142806447694688525112878274556848937289234790833682519810780271812554807687851126900583781901111380760686238078047797570688792830105560008416047783185822142467157800946527813268809701570715628727447876156867912708029502425014017663877822476442103755766380287541666459018557525300497176021476806665473830675272436735393514778631273906376717268198925651752084387830050602007028133280170670416766320113915391323162571646742777460705109518130617830295069649105255115783217652852865919174236472277965965207561524322061907649973963383630583776122680554850233284255872036804765255593360497835375777785824199964434340129692714594157273304139234229860120520844100995873884589414628027504085478916050845628932798084739113848479396766752815083435463523094724071877783430514094010561560358497104070465034674348662097272204698267489204703659538391576901829634251947582787580979648874093902063623096463688147653246266461289930810752832235914174518912892977303005085729338957943909536930994561419980778500236662800327792563474739576389337418955810501628901946692832604170247787737346684320751970312992799861825029249780330657630287030630225951686308140798418701094729290209944456144029884643392389770263099152742392147591092931058340197514429537584263226573473121779538011816196110226753942108433932533974640719387528730418239735763226929305526045362817217047370480266606910581338054019585428583996571983719311638087196168051199193804848934826224132814202294472345520190443755565479134005664547183925133934148595551272935335828017775306511395565461526598580870985244792024594347718785035776029446113862273478246331898434745850869541685401093626691568117387279462415862944860312149481637599744798547324343382645177594415378594060316642519442246545367247420754159211987178064501935332369281348315760893875654539942964439732432321416003592786889560765225563697049574952029369898800899063398712358926474633509849817856524920689944479916745155322194691502594876618237563448246450372410323587878913296880925859224063004886682871469940079302974677025354735531997307821349514944133564826627210324950687188960950463216980050361366230656361860640284105609858682372497750623559331739819378088419485246805786536496642820337580692085873250212065690521257411219538756707485184629310617070545194029941659063649849472661640465154711584262335766643536036827205568745367136203177393992625567444096409360742038042968479931848138957721071851054214296288547135796900607993130804361110876437522013480168489833836820562154867792302076165215927077233561697307651582003271713065434208176219762050412985461927332087586839969994053896405842442880276608448320897562953842934596093316478682279522487162625319008288918714320846066098118579430285896412001017010255622265361374900001527860430531100707243773856617225462120218957152816486579196366018530494776787117372752957840380957748887459287660300443647127497895686978970274216502423758834506447481801652107218855433984420770571468969502656963777592786908620857902319977539627108619936504876191511122684753938699270389486810434199921500676064331263035142164423727047543842595800567763611595461138346184074850447337433229657278641218049796510398286743358561393557948150531637167451007612123237143121782423907264936941951664975679061136602242633387812368522231737305399808329002813970042411299639930352879781730563425554591945161129585588243342954630442136673266607058610593169284884929704249650169756170884294852547515409985804190633023605750495129397186791336797152901757529665560233448839057140010883149519552373032339852599466125242909147072893845691194144020696886286575400673106560566494449207807545362508414189001180880557777288131020979010208757404167942171144239592412237618643543807473593327585128246709754968354573077658917977331759111328702292554213380262328267163753953103881957858330651948158004093622412250506945499768675013942685147498125646332733014548783055073030937314944641474874385815444878062039775471699869897236679281551146636138621090855367392472630482616918802412980544300507454843219337328642921020845478657948254827636344535780278990300339984445354484607684349857394925870065184909093422753994144540507026185143912910185760305769550158085230016552681280493297871984887253350134699081639955341733645150937234574038701327552896936928706381784225766126604025130489895181034245574843526515188885082534521432195891932893162134497741140245096758015616082951898448395026381410065088808855069655901674668936411812615920913358950199855072345631711595244866473572108144968878384707792433469934093361175038680043610263592035032431012265291702964178402392627680712053306755752646501965878205285943780352779156293843261611654900556304181644594140418092419624375052272187944072498858454917229300585906582735775717353718120868500982731263178803360913595527274330704690311025251775885411031086356152527107801733990539816665577835269727396485111538557451260967618069624145555681950574839203392332741915700230671694700538555786701974034238704042946125289155034209830925913684430774754904110228956013906352005482324347577960507217908110205960112434560211063485522020290483884794620860978350743749777103190571439908294014537047518137426600952968468424063713896092584261164084847912865769615220068051788182991486790858347656982221350812393321456243096106946269417964381989988351422572049351507131557465078902000031534183108745096099492030314279263134793130423557849872545778263498492566498531407032800839278828451324108476103947411181503666039511766977058061891009975645229145315278341418527497918561245891413744148814984165280490498338052320413441402251871244677848148124677368820679799068109102281761759559431695552504682538626724700652067196263249873856726190940158718940541296554247295566245104309144512342034534331509896565968699538733822880559480298928529516592465240189243630967020026161234772500626597303086336186137923455804717798434465086226445322443832121799927537435925431765859597395516204177572766703689181859909044826182808965733022417705275782949317911004524884958474042927411663231125819639804418393773207754015815671220337631063732141041298018012362813005229131334304806039942976186512141280824309524829279890517285945449003477143919059986338931750663051859714128907036600409116647378234211561220287206395696421381358101359099487173650880293558690478983940355575920063674105633934389108422323701941901525156953641907758546416871936442783298299636414284600691860448778850712483990553640835619321866955068049283396222563874098974960578784939144923886677029981791997939934593612754142101160076680154976439126807182594492346827877737377746806765151292250381466332083651055878038283150365251440406271942328649642378775176124884836835884363270895094172840148181946244992474506153422656980882628244318707603140785546106231678631948939016266661439104501809127374001573257464780748842325180722643862929056709233650143994108208305040585422899510421125106584134208667118841625149187985054001789686121284702031797833323982203314061271696018771103079970093587980023771204698035723163791331155816429661169495749042082306640682281819585875663630923008604850164918247635370146037535755487302920340028526300120451335965750358398415468540570897539317330035264378877487203212193069824802229548794509987842704424233437874001427510879146015664788952517505544750296189954735929655726525961880477612118973984295534652362511006324364199072825624868802572660100866375879224977452580054444111799795342598489358257133840898857730860255314921584243443330059621389333493312639811640744859502909201024291002282516356852820077808492906587269699689349896726328420224295942228037150734166450256196590445459469158096875446169879352310080710694687534309282562849176421066197598781637995206950598830636000830089707165556372530407345839479887773504618853230091922777575862934048107078198203719372542702171084833318750840768700950212673191122883810340246372475711577863189156314269989536547382816444330112440581451160124200524146150004175893863476465057307320895565931778250449297004483158530618294566075742697607716353336790858828002539036790689645151010230312860648272625929070029898341298637524287268920859122867312351426590413979660951289880220658725704209849979760611496951234806079964002429818455408349399349740993607277761024078394604124837983303878086273062794005984556805512844835749797378410737921441727080252895035381610188394542800568522135757564918400815065774992835986738576736806718745491260464136031378885658616533250095195632796918610339151187883518478282208488222220391661803002184582555267719745136484222599135121921293646799233943035379611264167524109339050856534221899839930058466756957829717930008966847976042398607935581510302605649911142010373563433860226556271034035537883196146691186624596044696429662303583793938324612224917593026689274689418649188447942505979750658537245444315459993744324001739566506185511809297242066208387615797261477688061989940021791534301610827576867149897263445117458297723512237119985823492406631949263865995468898880561353586238206319179058415479771522418906459212646930375217284891041217777011841545972574543227606379140856295790424563965771424077555597354440593892377073166641004421232233103416358995865825951933814883863061765755624207307423400109140095779158742302575413425429112660982558306487108485704188916979880955600015318015729227056413712411928779731814573192043038392658240854208056958783378791989339954981064510599038086887508225400959081537667202668398966968247160077151946603308956358210377587789133633426167707438179214706375267371330774788323962595577192479574143136211692840770827283718174829714503613998654319038180848306203305325633242472582741895553945093761756727280419170268842437112999022200585487723748819598968538591999564708235775735630477671398749822035656131884635210710985360253646023372782376641837802579355775488934983791061070021924420975398415769665670673615273330244004520595403060454984960702464894702347861091988890740410962417507965875805021331718266782367716751399393048631793077677407194264635839546326605654024814918678143222439396853133255597731608704186268563746663020532823304967757425859971765045425216080329946276548099721492112083379096058126183753581762419384253951943810020405120869574964332744934717590080085695258631466733914074537958930234245353713224791006897170963323838572765469443725188130861251125682125811908412821930232322491001241341908819792888983150876835707059317678259752369098625794189178275545105537082814643260753615386332692102254862957753781210927348499609079797815931343310804246425238226880165634004020815612617222562930873483908333084814409422764728043471624160940522377458415318467083378092338398253774498369880145803128606386373249151101252003181313366938290396619538167941985516915198190123274052687328856001404909307049285175867163072820617892290426590659814966845032797452396774082330806437407689249858360227066950752161029317872305395728956025358953112678514177655269168040680909939858608492682237792228585665059947722522897702527290021343367217214801100799180332655937814294645173633447118235222362343088190010606863314680069679779026892609206773555432631405655049399972173729483174088829082486371080149053028449420897973945123305616045788405806681335700014918412717600910281651258567209999029268718929068291267141960181522684911746139304183258819307451407638954912827077126133045959947778691934510972600168545555964464746166111902164658783746767915620313657084566730581507477508852582149745373485759416997087703776748024647723081745373088540714380029327683870815859833555799789344897859001183136620371301456265631165493929045678643343022746796091688065482568356726001196964745221315733525896562396162166449094285111777403179866608626086231234119989075634186337162530617421765922353392933298223467506053861243545408990065393329899028433738564352546953160693407531422532857298904067627322775943595250741254485456603214331423222511469455505140651961164778018030334663947420576586820391362981648005077243248418823527714057710184007135266132469380048103602237449881306154226262861189618839057836613681687312018518434038977380656085649829220860371487221426726514642376731965159231456155567718036053684824124456305451638862991330042425056998131597351840843365365182808634646881733095154175368049763976139042284559969285200408374284009079457539647696677269438669348779579119867954585202846427558295703006656389716739223910742851083286042152983418282802076251122442300369847948523060160169214435970351679248515613604004153712566019278654407427867817084078628715894366237671128984001707715017104664885209154903669688919534411670081388040109550253366469335620138730223097353801511808017949948968843582332746535954554804247719391646504759735857581169639244946790568239249777002092525306633857763322936298942824835533336669171068517457548041160918591590875904768726445437032011710178787507266624904271977125469054881765098141156186352138293433291222219097420562623742297562111356417160193933654207038126371643579757554544891117953281655962994901932287365254313690086158345108505950477393014003635426435077796456587897885807124714945150116550073773596194940822620303425155844948512254480870746721769330802401636066194491195704325890645166837442027248103176256229696423755153543145538930953151217667894395607478578249777524866155978400010703773564424342054333638400641016436712974107753911095476831798929337414087642265142510026292988516856335116432519939954359607153285753850560579564778057754946678351740524205726137223063933640528850114287306765301527650229681845583554527416009510104902774090233869498222433972612594400142434824664695190457636187762894976129309098242930967073494505489988760989074916369825360396882312169205474022048042273509076878508950046259665909460369921451748612110570045858283247300747210665158631831097038084589094493645756479174454057075349325849270958684167385655584948969768925279972335449425031615713903594702032282513297549469175097930599747203038192428343361199530742302006703567242172252353216760563861419845130321633585221722557922655232367649022492706944564313610691944865257803594972430704303564919223315030039986657387568701782944196725415144748572161343268946907366347981994760967076483098817853876049157174040356026960009944328410322181838501651186719976004633082853964801951704373240053299412862254156706776970536171506709723353341894696336705307470148021562812651275733110455041909850844543244344835814400641332212196762061378343601734943445030088488124060636037196957681368848105979167736430705334830630727671186545579099701000689335736530254400452893004122803453882052448351693440324048477474787217418380435014484368335006814604555028178192689653801536984153245734842025034014447596733406513359153519345093651636871859194395408043339805355065530418179831808703645390811440307146456984594698677922709670953428820071952098283389250454887742085747664243981316410449091230041622002807360256461885843027912829364834912218931043873659747967625481610377675607929839011169029012995416514393411564125909898898643537581089596308830282615265849081475514625608431072174069998894797707006867353894993647305650366478739821598165436389606482550900283357743650856290032612831610717133877014873947077114048225932832185419392995821305060949002827585078132941942074057284857457389091579463429269764058265361818008017425830136902545511254049702960534059091069288509765913540588967350176428690861923186539579431402237305122521967189860969847752756578256880322855721693016579903731463533475504658330581594863392461875895991295352379196837712875547355609678482176295032368647819451157241767282046029483645746040420773424020678563026979189282232074090926421410744785422970077840883889875604562645501689894542227596606127650191435766428860907363425361697418970391727523346409282136292029069138628900674424889006062091624412275263292010841918809127995734646001211205234695968752547164955173192116911764290331230169119957613034450561001010633144585926593647916667149013510710791421018784029223479257154575550288440773856326927933593705968226158088100361681190993675663903210176838812934148347054357157422972130047065288554003946601772834773834744939413444336597003715724002452449611850447927193287440256089049160719902371609529079441317579375928959382461738850295394780423882313993845797166069831132681239722527425683728435772768125860732460508157171640774507095504006068253387958559033900863317235364218700628918879600453743012562076384530233196377968785255277089291218385931662976244293447929734023542347007487321270315367670797932081028058214919552544071259700453666363908744288300393860297305004473171062363590692638079726820215083800375092898238725780027702537783558579443909231320194930262794739315258907103828669451838728737961606290053849466612787551095733616399149009360252218338165966591350589792858125602574518405256763790654667100977340603250747919500389116101056442484325172912204646660446518021778969384551559712428192963465939844920290849707180913699658694850164930589045654734175943369915090781873080517457365595505297325887554879778850637495280612752937569195628589285536000195071897848482319401065683284584902119893344608141068215594166473714628684907285155245424369364546474973629671276240930891715161921918002167363213355598752432657700856325882212083133228441043944825417802500268917820813932459156995382808806751402006939552471426207461015621711252046706252163450987591734511249334520554948609384123457506929268238454109695864129901351186147869876773932603988770892357878267117868457896388856557491146526768195465494496240445592755725546173900403477980786547024921711753847203219512360324623281531470974535171400373570989280765687163807279827840300127070637001389739760299416182051698102696368778277279959186461117101692065495218493873739349886569956108220637164089600495369106531438988569104937611527781926394062544589434745852134720514255189044116969350271738089724940467546404424685503763106744475035847608729462922815876069379344493760634514546042860726668143279884711330007175464364090896572073494173627014028878695032591413762828253619609734374822450110667103845374745566965265577596692091050007198774208994274541210138350201456094738417119017288316105141456894015820436985849938769678116695257568651697054377441204833991776789973080630254182898948318588572492877820982466262918351621201098245999557608882374401587005830329194511844195852531344218361945914095257509347864807130858184888774357749659134380111753022871564404421500889208506920219892993919898647383929186345423461973960910012297975721866840268148694185953217879926293938688959061260690367446879478743740066707743135192525090513766242692635506903900095736259304022900190147772834580673760828419034634731491440862024457620567851004866002385728977089958801160433239979846234121857015217309135766359365165091308043575945232286504872544678221285634561277156157223043012132626788761955525545087957918274874052108594684898233917802755762449414824050854006635876100217294601338757459896276695781307729829412049384939241745848426455048480271376473573016014930784052781529820481824951496556824939916454855126016195905526958293698633966249181639243350021887061441634553212513705785374584214107327725978180717605317631018945882663140236802708350051019083302025786419789936921753567054407861270271468159309972867502777431512074158857121477038021724165043244966542238265635859387046319633396271513830210021362527004582132900379871302157099212433622839439706858534981000531215059793332755615851068463437361839406328157739902599850481976026293493224765900079857905535199634119417582078062935487138551881775269059639583532789164945775677604857534136612601232162137225284734057240268984645909190919098327008763134740085473547575527603691754998654566226832008267882719348442445404687161003216089241657765098046087353218798830442060882397628630847707361654017974801851815894167723405391939788083189426937718118389384987689424334618608806741191644880975472826218750606980647879214870339539520677016015926895496514076308516010723959070693244624718104488624855168847358558017186942897220190122883757994042487480261564738645890251634065962876967449048081008085078149100156443516967821556099192819240559617836531319083332820036045539837256962390287768907891202411080330979152477698029335025318614914032968004582619232528244850717682673126325845974610112999023517219558594742101900782669525737008633235701555199431892380464902527750458835745009086722024405627676388340888918478612743774947928974157595789563513646021199302433676701001730863544077988096382000147939515814559572133641374891876066776017060033125406618703727173587211014105925484682818199441814081749907933764431026353899894716896225138238289901351340228427206990052740815087740324752654930277777212973813975397637423273455254395095414937633242006400795953554917951357655756746362809076055614478084506333591946252836927867948561486586886835012998300090115587005986379749856348700169710809357778841813699086708796080922710380741806367656958439934805411741616139560434374001120924374143398445709757857769428493529528563086125627581374224132555060284365425918329160054570455683690872031674206449572736205707923599637994368071256410053542027326601346549544398084386444195192898378772945693156374472641350678491133534559431898474686281042521135945609526701976986549730473709316679939264633074625566116252483883812201436313428680577307950716685103149562053264923720408280379974277407118276147932406035033961313503868907872570202191818486224061008000085768847138282367042332083102667050120918643726986341995846979900225805809780544080291440875657862216553895734157589644829377392537841001199287192861615511485035618444765110476742168742571309437476220342577355368404072520556070454268914056415674602873788224773975242644602893539053281598213190365354240508609488773884968180951802012345999475025521918718730644545525910738252662366509223789115837035627254962308727701121510553715832262350047169777282857475739673749240841309835815292829613108592032925569268948820073624992082347829208741731704059026864823180069619785347170779576724033326664278572301300452743294410846278427085823920070736180559028326684565348660869911961845636333255290943158215351647116946397440172723198583282497414429911445974939273887725209962121724886742683169011200367388852810847829039478867265514600647666299569625212189057229997936875938488055865315018278883950427550339085271428260135736661314583137662355848753634313738526482997617405333889475910560442744207735448799692981011185158450745042072907137296684731938412239433407393432146639021073009919438300980344186877146166410797604347635913755798523948737326555094730306082666526121598753821444171168979857920830652675652205128828954599776508242019811389130402251053686419510716372345155374970276762170373721196023066413063598703630956120344631723421901066239373075218574706082227915293279199738872416156735503198355619550722357809552940689168940312533641539283674304512815117390132379434705828539008005064223198331618419099262483822738731105087857213379661313451890292108010743797406660443847579476475667633618860056668604432209483593957284833080549432406453880794601515086400204750734547300775689159696245301429354620683353584020751120709597056618019635585721692074456697893637333989231066786942796748360194960336949010031816703763374229660282672046224781894109879010118902647358012071713163211082300524008594319484895045691413445916649897606109667163696433700830645490144540867131664988008116331778532042886830758229933546770371953865440931599487976114120327259956881104090496210523991180487599083811434543632553221050483232884055798706125083118825626111258060597497507026245304756822809166422778385594013146593884567541757039205922102802650062721110209813543601411047896095781206887567103778859794727087715116408874420825643925797772148133100209570085451642710636434826528929718800198843006525761011856512937270257448678243367653621257343179128924741143350892923708497299443768650168820795519459311098649942125384937024263685305237635796112853584997998809251081481105117172370048107719165246322847043185431101312169477827908063377846411070095750492029399987002744224935348021331873300474689095387308079824757313355913448512517447855337473246288580137974722705345192231358830208027813708608001559366299507284896006202784421565164596708387133268092804339649653631650686979710775729782174610768586714780554831714442466997325552060746886374494072784567907676072835417295833384041967374616356334083411740813143137663143158583226553259273758404114795629731579046380253709621424074460179140302759163057312983747660874647984021268978839521633167394151833736353276597143013589125479135671420474773194231907428781602796551154512260421072441299230403244027345581800162878089443141722092329002317704495349904570373138845936970532919268461441199603577274865603349549812905652546643368069058778117464638472975901405592284287134161761560831486722074601744418625405252589557028572661656997245073839219369731793000741381286595693024599903249800618578728992324005102069533571240394944561981578791207524316596264632512232902003785657365355747621226500213420549834114221926418533756285062972682700347942800706588130007057209969090983801135066408692626456242268545848094874352791793806423016380163423228257003093506348274505801624974113856042141358012947699023266548059028590563334324651376768316425409366003089311593681080235546896046446941059101851515087631779755319657281695328266294560239940311291985306594609782641851727321404663037648067058219812398722305652503930819219957702157627881799817311354555931046046698184734665707083881066271796065017822139019870364254944174755190263135623292534993674538521747273709719891783299029742280427589816086820043393236069527408930519489156238948442039008168019080551328695054243343585891616632086323912019224334896484230053773231498333776766017830929162382723383060407219115632954459511630019821049618734676553045809304478478177756954345585192475617516686807168416346576254049240793138773413358037497184627538238338816682050653189867444513924694832103261922658996733538295933182237171280404825709771302960527386612459073211844498009383258741957904283412205429326415046225981314296390932553915076518910116948569890153013191140103013691996935698381862611300755653485032145970687853297720281198334800621774967113121941234036563712955311271635011040413468633074631080673197068217083003653368271694207707272066080142488752642708159690652288467704490030242261140925770611455778297056046088897256337113427688153466379735269027708394508775463334117114763901677008203499456071627073353755977598146640800067954906248924072637098055214287703653416747370740750794737488530234342891214514627820928242209159173447790839963394015098153433290371581678407860619594203557595707540028347159957396519067578459482198826299021858123699218695517099869242300044720907465186780401303327579143912470856464553646323981441684501384025081030244087853454622950531078425922358158813915485474330747645374467331567760379058720559280258040924281031507918039607030746756246558017838895456660234442395598237494485425439391340570827616130166397992055947979142664297798727309869933263455645875927636829245137637921124933742131278702240433321091891571715577705787778567907030473541125785210265615980258420352614339573883665551104605023298279864883424806356879795422635084662686046884931857400988602045697480588096463733915749699066596714009461509064856192604201210475527871780011943686991602410455829841427108193133078261698040733254905817883049539059722277854682225127967626310842735833667898325829469661217672392936576631669871664628940649251105324734504953532971276533074088646296215412333528572187742214566322346699345273687414030720609035065175019439222536456179598945753734636212572398904100610091825559192650392419977523377790215222020704544659869010462872990812736806319874570130886888281829143811615936691013596393034493342254901970864293139789427743052156857682524340783410027028610834266094616621257738880855506331578361392710163323303338779314641593352913596692792022115776274581087666556964894885561968751615523068056267462434328583978670103121295562907086109655118026034038998829875790677273370488243856688695104591443805649755016374308925767098392472960131890866253790481812837384355063844614330978573047108665696899630825822668329295471878202328336196550205718447235718889801101319838471387929276105492020134211552200245253010077894955603902490765537591720878376346279750581728741047751863479812816511539785753642467062918713614514423429046296623302915232092357908403038287052007345989742871839155890520153267484119573342552891117299644877237944341669251318220656439325925821572726252362116915536683346242503798253007357173826098850743514371130033081381735381060931971425686622913164617454134154274319615756848684223325183088499089815857073623683947419420643410505805783890614685557613105512612220876380719153688429687788868785433258086731971211941707552572391339818818151891324614048430011300061417809631203202500047706806673280785136779488525979914384936529236831444957081305957130551826028459377457859588652831766502089034404617358859663155569338113729126956629810320735413492715415235273081916974753752522965001851905190166241752627309022275899578936950766852492800634749791855980176130271239292884743353771916533995214523539067195192032169571841518307852619945164822120594781940225156261117647091970010178166702166540458050789236653243508727005367688466895343399895759988447236888523840112266534693656078345937909394176942593640302069209316257921482389722593051993905498752546074226693641910086704251409513003234049029679349046933600803261549760292343568145008710536918745428270311631954478916634899328973659958603570161400651132075047162193532422685432565854387375345594971248991973543224104908129805774897536490004404426280120430729685771866351509376280615698375135929820437496368116210427749294491482248322694860435588868266385507420527859131018429667951413628750068389190093149388712959889008409310411751631718602461034163594937730812334568243862209703251650828717266184286689360550933782522710569597128858932116191043826043183131528026647054207523448676309520694980293957111945962169928850216774541805711384269808618883048339083193943678450840251347431646956268905635428696302907501962450592693856120682526738675861449601338103095294828229551952239426618627520058360625428589928332703006278132954212608628099922505772745137538962421733691104504784127408417994731594146662330810852447140526005517986772721079646649860871821352277258433216564179548040185267662258891486855440944811427078461977749986657428794657887404143589428686583301433484039551026516516340426469689962373525957787761747082440997275099350297447100376758180028299321116410856302324703879299555021949854768082676969573581099200484727596814701788978856272021026854008992369240532080060732260609557810789791130076595297035225187597403787298404694532099992437592668830748911701710608779537339644695697225776868921338149225828553214448971629105173990594926363512616272636300599707842879587144928012197877676982807199453911924294431125208892723727691056384176136240960739967646586342325567280264739809055003860234604908124489638595791283394349798183677593733783872898918453488292936292068077104979227791301923291218375276426156826546440299574553915963597235698933857609136916242680556384064548755909907351059281022480451791088044806286262467350108501124313029265646627560747695113892005137272154237467483741118502092624324194875189117619175395222503152855412196490356032907584901644884259742534278289608950992787283849061706553341994023164460724577677901037490907392948790943280097754353559530904459990223749110349624249083232161275896831389646875459919953412568233398973675061953850675216187990776499940316589296624976046679611898844727253730442278842978325180715094905741442960813646703865517301323687495536976400251314384658465067813268054751296534067230526408789347344735965555143747108166008425223852128172286014354004296147081547138270011087602479192406030469304519520421798485375767733743107540641742568847834670863171913576854723934074147917577991738051448761929717108596329001045413304155710692329453953949185581155933698769843916467994731284208725240958731890803602937083174282428997461575765519625942723248198125826422140109069753483450435792649116954337599325702085839822273857431628540486628053216251576166235526235125007758599064409078957649884802811489167983476830501988721159193458164143303244729215836606074632871023887403698437165507155758074970682295238774745026294707761256924743743085764837085321428862204646587394307637881642237682200312887202376933972681515308804222434164652323360692966303581865178627442326853193598616200659503586592118185113043192644892245574345549161697010647840047273995102313400316821219891359656850826491046535024964370892420664146808249542120355671637300929282179041701236423611003558880200380128253716895847368567773549584405193244417576662515466870345100076066836812847779690319507175449592612049067014194764550184839580641507683753633157948555321028540847134554692940811773113098064811106437624754266637091833583262724516519884463459113711692915083769767632962194019849121005063351991271764692621719874209351818699458043975978396407223330721989873299686790816564653399165786547402231521440705323579555175764272799189948877151739092792330947967638452178849083810959670672894883195642490116684947488743218885991471300840126484608672804983924956579801923403835030349270727448703577762618791232874451372328873672295930362844682436662987004329970103399595599538606959822344704038677836283693901603685371756758120868266528458906674003329044680722077927825473530317689746449448630022804898504113142968917327920269218261376913621983416142174670177254464466810131481492827222974220388120306096916666711274525531914207936746145777479816992911845465887498196241908746896929070108434716323659485880520734674585928876920234934374309289668148436072224460302315974500828894699255815925202968039502633497294124741881050721978988596509124834289223857435601204718286455317694088702986537700040453982101613476497981739649077804220457927857038220343117442698597369501424876056473955122153905709798262308980474449319231609015462098466718792349159179091321728201170874654977199797394059411788254644674935053030481445014616701690891968703358717490452093258953110309263384162083244920435490702341002951187445395796263573058309109584779256240766334280322798990296068731730770754857273878970984061956450040036751833094194298177255515341564693652990325067525982122555678832200336359131843681512497387211290377624378265144942381465710541520082667537225296152477332792444904890957438002543965833371538994812705333849055893347411459043214070942023386699063768505551029395751782283108681234663824196928310967278183196665956224311166991029449478758264799243127953713130160839303828647770160020660550072868230153760513279415766863854750079111004516605345626214950306791050456575073979815849490288549756775044246958684564933325267427431572519843758742209033473433804536540443350765226171005296019485018176010284680046232809960629558553899285719841765682596971744284191911798860011863335197083639401900395848463529037319760732367209096704242961849542371404160989321179147528375217795038045974183209336247589546105487763660298240987499529635049667514925119897328154793931275949436815480312782940350083662574867964398852326170346014766756226466395844410146199015826642712341412860273297040841187029754951571577125474898565534114255353270397374746490400136618911584897760247603435233432602147131542447636008694235429740960555959953080115608790591118816197747248145976541286165890396301343804667738932668617638855687468248701551707212891224839406790901005657150725806362170547752436037079129856879024360252552944279305308903473031342117758669487873578313076443264138569891657986829374653502488545432507386954722623474722046755338325022956359104079099093518673021928495597677961051993083912120807406675089781335660508819433858605013436292648921472099898131611996920767402441181954784824521694254106578608018027579884514270271755958249545406792932198803443843691242357143093698055973036782213287970401170109602926346389369100521377021394562682252297934510418269950975912867983527047478777784530405068997555674226037245965237424651832488120130327403484932211481843957294855450017056331713530549377962423700230527485746419755007372682154409798287607829863885085018764182646542383285929129444586454466826417548075631722169615395626755980129276342982123763769700095813453435331519569660330123000714988216513751845069780977894185095627736695438728998171738506756583372236865775293678115099993048877288064767656973404413071402593853958745959314420416091769030165025168139182349501700681241777447224274628981515297534393485775407882004016211237806356276049056587183682431952429786713279625195446451212265456733652032437606785704399599704415827613154829344265364053755395085044339996043495507324847199684202747465838919268133504915313040637838822258933904041996529695892242410191555237636119360453389345281990734502682073184318635580090916937330366126762744073175017480951097321645550996496786659348873961862878406016922676895154167294095223610162522212746427612466923509354944140152436624258368137406678637652110836380263403714447997835615038788088314937978050408908786757714210534662471030811487564621036099613719609619900491896517117769266668767890320690861007269382640363768167244219933983733281133396875539681770999521925663899861600630997965386425758125947253444992462243852245735634917805845985306879180534267813382457852474195462661846250641181309053883800236494343215013782735026427882260144846582997720063173100537545526536146107892803839081811636198290449790788394222313140858767522184508993889213896063436278427494224728005640368289528992402056712259261589700865604307874748543819152235098383540974398520468734228503535811245967169498944170417358097100412403494647822454655029936614458148580323668316443070484454341492429546136217908924797153534075729483474906468925172545499532673794755458716420130047675379784464866860915944327174898595032061527008730607461019261044624749800945177678560125096559602226269707760857069992893302385684832087432274618166935097588696774282098282356834038569737153297046266476321704562988914092274107463019927505765600159179008089402055105780928646032775856767252270995245197826272191661123784635319628607090920498953333723046601944674292868522458026327848964553009461194829517099914220825581752101394334495920772017768667957323160685751485751770494346058910937653572401385496534389459873564403256051478337041109765051367069761426686912652985614102157752098894684595425333141059279631556458178178476253979569426979778894777650213376360235807357683853765718294621012654282363088337200421938539035999306585527919150840580418163759214396567184930372049447778420300818742437114161193446697588221677304613466022136362095319041560829853019715901750732349273596347982548018382221779122483445385887047466931862866062346197400079830719429625602932174534721135342915920755322745532417456622258259678740412765411427220289522169414272572080400842798092974231885643092845842723428412946603944984010015273408674497873486935833404132264403466144472494893185063646642875018402352799507442494871889099928433145015135439746633673292393371630882789051387276228878044062355345316546657727666852301714236142058386700356805658079129674374223983242031202736273787437251790098894549698827943759388299664432000649940051984987699381465731479036419477427644353320478223298192827567636708470572695524223195542603734992326014521635550274222060166957396306184126156904050761583140650670266230648605218543060498603314931252491468121683102460891967683887382706651726849646845286316737879089607630650127346715477053097279364970076756576500724182325838461686889865953295646845521756261822415212778425659019701044385074923263154840067487596827964731058516108144570235410215328513258927261828450661351549813887495676832327603617430641986245255774051827894518652366042371694793631757619144371374897676622405976917634653623603161445171899669251315826499437555026725894358893407817536767562004098228812528291726191869098162842806227439054236043025369805749078496360508215380297063139202344546286803911337679992812007436009919218131331439196346336971623083493305869999334512436311665196045051288235141572493105572563235068844205744773290858621770945331147246279291046298711229052443661599081568610223543393260519160669847887907191347137428451719679717944032305218366250396661231025312409168298485297042183184172141904047090740294690168874121174099823611825760114820711866034468748702258440244154850748997857898333702278295968203257348260946756354840057598655518909100589568897662433012257988681880232446263989963067149135742217797634720323885941557548505659389974629862815654613007904299022093526544634401758268960221557546883390783653000657541858254547872304335744740048752053558916152046703685387797775111483936908152166250307835491595895703787337407026940593504077404325192625684362712077428700319708360782479420578788589624037752665642317247890992830086205802577654329236842038013656190607876163697687269834145681769252460327198870144121548266320826931166473903747446569266089689237603083157567375035318758107702236816348179571524841955412755932959480089771259718538565218300648518227639205214389477764565032328802653975143640922306261102135940456535431009328098921144054915840194520065397644783998203245613180140042065482804975841580994677657024158007473346806843805915705904503888779809672594253222538697001907665518360172480777888293348387803530716123205672042674225286547413807326821616422250689896042792382874907981729911302840814894944808732908247817170307377803166580034055822236496466160572239859207904532109774868953847622381280811277221624659415888601499589978820789066195163300824254589556185601567926947744163937000721889162332935223489469078440440060596256033870046584342185742851224910413953769147702914749212148606862714572772201486219950734673488877103606934337822264132138507734720947786692744219426009458128122532181776886744334934639707082555751435860604461160934433525212748434856002697840047185721936238005140815994687680292870486682763898682932098623991444323225791517556376629487767138381327194745381441190599363586653250341010608328298967396167198689768475149178823341017159977162449374868090972677626851593631292802300461668088084718000508040880475841527488359033447175835272127293423067434296935264284772142514075826044033417235555754540130782262819323877831928725829330180293753094717930015567995848005583091581819901445706362926739807444796925830993302870159053416823569492271191834510838059062617821721001598962293749719956654341644865037745709915130629740461332203340158966884424676288761584040367873497292535719990975459902544923882116350503440583437781712550156703686137240099021256207518130159075417174079506877716513116596751846587605134105943530432665277466796484981863701499501376937565306473050090600043006564689287131320127214344027493846679605862803019628517689997636542641410790387325889439449188462654607343999361326383947023658217056295961140859677440152360428526021223330302308564879876290931188121987821852549997617065365203727086374021341991617287692826246972959004258783059940182732185904774168918250853451609888904690762074989610141197339730574355817340421266851701798146188931967385883806799299911882210025628682017187124852820051826102260260828038681166861944859106442574835617578636514903896812835299504534124930203136778052970538425155882037869463213057079189432749151119179087024780953752375233881296179950826111895526643534982851737497620888213316988833404976210278185881251059311850736877081142044159707721232870660071528493735611408458809152301460572219047273480192725671330961923739241958894439520950637271856848762948710853380083566464608504702951881624565496765701394211496440685394864180442922148416739805365401326103783050889245947889158808439429691675085963551673112107723505525258841696411104930905054875651395393695095036700124024160442738559153188191380372824845465389833313232348219797156663507980134567773609318151895346108415770236779209138130947438832482742843515209970005296344717856009998492767852340496339565520479335473384296302737194801186470810198378717827607693683440028949680873679907982203787431910358762129604917180094762973341493898794535824027448634148346912980806816194275843651237692023596420226328279497914991191619657060293634626374206197140251817115596781617835735459479456665528020787715531896199541064773485685815868830434301143393126532338029292463436411025980167838687041000443160830423011158971656481017682303227666609837809814629993044190048870072538327300767202547771793617220673575946528142680081553072693343207701263346439459693871130110396591493123122132777566187108481030674438816547910950956633748356633208078237914125017051343576737783645401927941432370917344469646826516896622118769705177674106386073920306130598273651657148264798895583002588333376034286697339130325186220553231099525490991114829547031978524287411106855935129355314518617921767628956004294297381788971046946068059465467549879467642167657136313444498102335056248581031291775066315845974757183519150190487936222801923814851692934793522561053820401774609016626819328219423616613560006175324898418316345105896002580241647880057242701580076287199191542171732869594812967271003602361115221403166131000659966197502012696262466830468970895219548973541176146767977347886634965667421840503801854416785094147048361251321326836415581032975086735417618361139574820379236152335305834642881075932287141698953669144576633556394387423906275024316105742298130911684312200913619577498269164167991639776237317300045809986933010420522595381266788679045532576856492366168302962461950673614411905136661954295194185645490128040721630363493187998469465948502771433867440621711480041898736174609132478711941298132976720106546554250871128092716696672197807839584444833188902652816805697211128075121445909489341249065392353138196513406141198623954103438328585359340216194568205100037159156954346569290714118218240032185173926196518763503172140260256765040360429800164677411705333680658284162608628430191324355675869715942761830370377737062322049049841471977754429263877350558823483657406982166139441025202677569992378324353807738335811448490509020519786976792133846347662073345258846060648743923978459993803085732212940315544413105044065006683648476592567336089736116565119557150268246757102007045570287786862539129769890898310814472220687721335579322841964024848309014588812615758172926115885593624028689094459027950886288611556465578167441339668745505768649186126552197382231112750059698714972472251986889072610116543682214793460601564857453259344701414955807157726379327678152879697717789590254040553634325293438214109312333366447655909649749231566236933734907796226926729234053506834703485640000396608032803810493536632545795584249805770600940170391152606656056632764831556918039739010452911566331917445246756975031524268226225244503045131707762659837979008974644156075927835828485155718151698390821200000214219356335303588511546518963904482060668665699105639383942287887368015760756602724591453504093533398569500298642806056536390926316181373447852438232994409349863993361817121566430836400056830438220254803688515357839738842179819401788418507561147026747644964797442917939565552915236462802475116631746758257277161116655201998132175457275363801722560585437391996912068724796711011684372222658358801617026808506700172836635550279486321818628632890463682355866370006126066852308936156460618622171172497003903175998761173741578014122314472023064270558933178296852934404083150864928226847090527652364091746925995655747834671000412562012725327982003235500179458972532717610053498193827256483637954899326297724774464986265769826614610036708274549008563850703212140495798371535409490928841794242907634867755447694574424622696389401037835930376637518173944724557002924199509639061378652735301687393139072788695916836362416039293056478036943990650986220016826072874928432662320533251009143017604043046763537095973004538565487346704046924889141056491492924171758030705497121346401172831410618738923149832803113512662240617577047135655562565252444231057108137111608332475643086099087676266109554221275448432004555905331335388541480786755385682970392024933841613908354012273087171821623962692391666999183033629938826654679527663415350402911451030533601871944885208427866100003979770461771337065517120983754607578834310893282802284726275040578703911882070313498765619793115332974006456499020977300137305516335836572802409107447719707778196473934481775447493114793844471247379873123183141319248460695302792196051821258343021295401453017651059755894567078962989232916523229774746084867004471638566259646538122312155250798918429906038657705567276641517127136741377966542687964509630143285538798251969621469360264446081627378153230060279251469505600998862984061503283252598586355265570284202621264355077781433718025455133497861342091306267059878731908673487967278565538503425223830770566605682894508210133771981977911490891329137744079086065157597740522223973150078423911072496295750079783327169262959730815579576329683155609807604789713522140471042581149758239821929909362024080334706163842592874313116682464625680717735891985360714033828985172587214687754626211621477655937247609752426861093363699729634030531715773155915866503835944578294165039411321044447110025839075654372384590834494517047638143059326961010729789678585705437483249446159504906573704756285000818046409000365453181585161189497331254825390965122309881010204551108287244633248117130535288651155130381543246068313041535062858131645551738826736971440867027891095715798990968283274048150349593528550367512692212091976815080335457968028315379376765200628539066626022961703929846402375485405492001059539338470166147615467767390670940082992892028729727595020890025570816050875252972697005821824833604724264692984279531355941810865715945055407475427529491902135165700732072570523172297594086810528394973291779408238248310694242947233436077880718883895120111137532250913493611628580118308398888672598720343463643629318162378134674126091645984173738433027835391950719781357244275517904869453409936637869546915194927824074379656472842457363022827339845884159274333566087236727965263395591691421598222866180339041292091583159997225688650199726216227234860322026521967109260790959342503440980042188643098990181066550639429611056091438126233899899361324642191055504700945126634771375357323669943065258265103360597753372922019433184141677945264956760387023993671701988076953412870406473569787989395683222752412682568934076495304887194580766246970437718042981328614630802845211743487786854067739385969540149368261517898989112742035589890945010161883350712688342142068692305180573272838115571472683627416872906260460004374660383039229315939218645421307795496690875535667285933435745857067582070017412033328119270845560588853786886159762700572952273383456691983534935841996061118895724833373876571170848829716079685040308816723146679835283031132615120828622447039376325108125403430642877132666068028542018938783020110979144862500065996650088952702179065219702635901264839962648371102102170884178220200398283678852506792430503028580794814395163945437424035333884430130303399997287367050827816732835872710988981685480807253874170492939540326408522835048096618075596974387126052467302720542966147764762402819425647194734786743219664652741212199782286817714115960097345473761155304871888504332370488950447538885743794196423248666979242427457324538246230179330725773718518796332649606894884814452196577704058519791720722601879567935606995041448537600634005735540361435489256305878387277074078735526249931773824998593765054354671756093244222055964921185926330588795721656674183573064498316473835615914667924050409049647266191709331893043895154456684330440636379717951327968555326061595583688767143074295226589558804176881611291151869256280295499419456503102862577368702152935656546212115473110593021721358160923088757310180158234452691809784899388199247571824262679267489991178933849403251704476611923376154442762652430399969807270440974869226077586771310593496476054351361293108054397377112489641363955302686838641645138041008755621654490944774230733066923479364013403846398232912701087218519051213371838875646381703449700186089446960845726970152473127567315005366143498990994740460564522997716627150937177719392684709307743510622242190582041288391475016067326453846484064071560314115347332049868915400714665456606673027882625014579527855748684469796026298868711453796889776439914974142295626342427912293279434948707646125599516539652178540585324512332669932603205113447626406992141561324036284274025164146987002008330545586696289463444341451102725351175374326188430984875207368386333167245097665583295695241358786332212514953364645087493836392503290625513857990344861956761619959622063131778053094066676022987958523240521365959482414957138781872329464736200269631450463907858917820551686170039697590247995755311262840778239130946477429805793976567781184324210371532528615400099349058331546313820927110522254649729564613087708163462446926474182784270290349659014540043235298105128591508892165253256271537430067819638192891314037552869130683172460262768462897787447977297573871488672602660546432110237005170836239203202053605273126715050546347140761445480794773864652257703646784259252068884275598916871342488138702342387692448900678962032944124761754220868089156499665729233579927812948108900995487007541270173851336303901201698981299404058792618286346959226117874282884700866153833164883209375700010199141487975543725043354487135810131903418026042058302846889768222513389031811393066924629978075330091507894390649115563563812738345275941022461301322934348527417378640341202558190049064766704742046658715146194466428830243175606543436680441595679032185598504275057444155605139890457178760977796134593668325759690588984636085765023280046947497700485641983589035139363544538348338768778169125882460397238217671380419973839434056027521161204175667129272771843316544468774534515831275010191813392034285696688319322678739040111679617378827879729231681282881298423962945641084358206746493595283610199347020448759320643332443872115327806605800274113520711540698540329113605215474257308476173295998687861148618825156768902953118266759140728072550028906708708176621323224317659615299710169396448775080180029576594978163072162491706696437663720560542203060717075536982830718079129953139572500366590001534144953784149358818499628211492259441245637826211705552749310716891383595102522376945517725820485417242326852056759226531131677008733448980681924848333362351309633425796596518893971247353252209642943151445419381646520812686324405271443503276679816434960636075296656724672450255071182318187263974483456476525605698871679869063480486955053668824383951250734380829736710918975887341839861721641675581397470838940674357323605706190810999117150903681593272065743560761235675107343915425107212800312105618160902547271406531427019867118633096702768826858861890644499664187636753334374297896625515531651864449388053037483627190598283094586731139587886565518211228777846220353372383201883474583666209372852114227019585876319580988335759429433264029087273126824535671481169180741235623111206684792836154634546058410320899946692473098003716546271526116623147716370732562819556097927323756200532114689436261130485050482438127091570374899067582176698336714561622986371425098029822291923417805683299994311571815467456949483864742465605429020950361681025712231096954816597960708072566046566276897483979989343017828578627176270620236249062956932031268971939211822429375025733822625833631422806707210016417662264782381555350247549376759449804845866639747870128113596882807500627946162402213069334641825135280005110433857164765849203257798540301432468758083206493891308415452734521133146168150955977161743101590148829200796047535755516111162107932949688108932261317625357754472024622820175074967240266025659491721678932654190408331838792748621402256130099496523809546449183911206537472570066038535708685900688795849517459699404181480963215202342804930743759774167451372808857139990689849679929834138018749314069274254801909108624070516654142716901968272857449168809735062522918525899572497626732577965647086122217021040621552374650821659441474211817438002406184341170447467351015247767135632973694450191826460155231479563825716827328354140529221448505655283482931872139153487628073738269657230575038021558618031135200049678354405453001726482607513752267201842836879550961096749576296203049771215227731095896323143353579213392556540545264737766226417160942528815276523201438502142283565253661450755810826096198659326731322004904807978503909595532632148924855559089396889322701404680359063647958563351928857222828823571300375767911192037005663371357556449041748608023716435807198293955798935517895953855188636599938720742072503063511367006579394206539859465228682515345344065786871396047944317433881767001513881484285476477086658456738147556017280719444425647524921785161546581423897523284017479329518650314796332631618481303497277162988160024249481231268385748862817878357066456015348880235218121448502655612465146736205880774570857660337972230403510010533263918716849603870163247562024116992812681225904658121432088564016923246016191372921643115011289129608744160019535457520411354400525811300325143084216719157495339287032779023799146118294548046128691876464024275485035655326234666235062262945686141783616638572805091240747198220127692966538207111078420350611744763239666173670666804975463300898352239423196548378835341180181622941162124197667326269754274207346067922683979392640826598060534210324022776126614080324646456301744776281875517933479721878852907421658893849089566649408708245236908841935201009451586417397637148296262268581774551662384433905730815547890002472832391778388009165371308033931447864300553870782497334676203262092500678594106581314016137806189433898628241015164873466924854461311604392102565327452023480277816673747103010396364944697747122666547739351907009154390613076171645273954833648978380701202660617571357770243540194216628742782857566762458583447530132021223508095551557071142246774161365424651748652622364014604417118662794651716114627960985459690714499540979002379847872568656597505123437783960823381014151093329626275399373549180987037020959491230430712334001309324475796329012683594627854335844214880027930085315575525645772663415649079056308321959820999089372686786897072362696347842153891970397430218664335187375784364162640214581309963284747398191159817254637389876222869322391933188827657169658599008623569417205312493785750535879565625778174453235885943781775024460187775126942362292271345992473745189158953813075518071555381081365947444671776829470095603882782677830484149244997705615406387633234525502316620390616397758724863989454989886815450262981701898609381592116369706299210172515836760855669176730950892727415617339139820801832387708731839818181161722963757850725160373588344985208737830529240927336675587303782901859769509105398305986476183256279292201386284601173358669284129303146452777537899645628071484938173420567908315671574074660039185004310713897379713633707797900714059445159914454409550042674338514632389924636383679877973424496207172202507314671558516136618090598679316936635829606629074557443496507298610454190763847238518268424241822138724447330630641498013818144881624894194977357511674469780181769687140724338843051412020875681350376686602597432467761205997964146142479911890584375404684685924640190797741740252083822502571402611467426832589865189341385131918561003596211134482491230008986611402573881002839003337174935840150225252889735037286483392606018074796249385094905777194118198403142059753476044159994325840828072648887055833961206865706134525327883904613879807414452977969863578447691443947548107438346942812821117214996612916933289508252678764425298735782143181496014392180621717710266860977555455823618739092321284833304758082503210086161018684799193732382824282284736262146850755649744690641679369822369487070459292214872441040386608292428202249472869183942154559831178248990775238892132329851395836266494439858213103289798854621228987519072251402625900883824837449758704816004772566956831112326311148587809974719855600374146233348078677809671822108964990231981732712719825700640782189861216392728605608941066593950870288962588994962315672297353371425968220308409770278277367894267272494456817892998866982014095940477809977260828069767097811679922624188307011044782369922366976146204019465291050787225032394680547764999444297921924748019239717847011379930287458971809737140522288855836692772204294314633341159143501993879919001520105192052233515386206279458896844002157743238564108706397873525964090634466782177221013165041254907352781710651928259250935850789968901067006153577098072620995248897575299988951728214703482154017222625668035080604382287808486422070136041364536251200628497002921863506896612139287225126464035359712938806140152624969931457446445273460744991378614754850344917755461198636902210995307304441339425899122425217066134378196964086608529513644505895471201394763885260290981466792710817067148974840462635076042888247809810851715123923485750665518034298393693950113387719254738375264769697907214636739477410682089230664291856612369444891691229595507334752823212161323713615213632156490194198609489742892009959037906190525486421651998409771670566259907719331462865756737354678572321302401841650611219692264833175317155665585318142894266974581531418195601942534160368473755537935759205166479679061066486743611597462606053591350746030720375300158773311354964111317309934549987525294736696299993327029648894890797262788488554741782179007660566720624595911090252728817086788063292770255360957918649114113050802041211364967158736029277539309211736070800484980875707031207678626490396508402563790170195679280489505108353123346051903108379842285357111041662540029601112167297498717540439076515977724965137905841457159920350283042880570598647887410570291797621698327184517954835249890633281518534001550357961928580317904637726235951161643057095688114964435933176105570372077269200495615833128325329960065282072945941121809449117208809075083207018611767213543384090920873485172041779423566083604689576362395875017016883242371250446628649417449784688665041420370439709773733606320815887070541147817885690649123055151243563851025563050921409773775069668643925271416075941002683565566536628058497820693924737922947211702857457381526352082725060565312220287552516458932421360248535885603103841960703358577483920041286291931240447112151679094601959570360426530065788955148941147855522713748962080181063086742202442319165338178896619689662013584647406177929514655953012629507575289622338319817905423953088972480640285320770663027257888702599638140863846077925989926780926886335666358422164699710137237922987797290256915059206357965064148304699450198298127596596231822686555858180409485357816717464022322883453990602268866343885475601190327328338854514651306409441933750489068027652991248271754395618364529606062452798648509723682374426254500679879326229468499832079647641959125115111659482238264402709442805277764355201133963257647209257857161049659794051347793018326060861761741636882493745998101573387443056117430127224958694790821001646650239876714666035774589299369859647019446853496517274292805641861321855559235127023571140764626811017708160773277310329382258637999971987328070918825897550568238464009761237505118790960216192299406087122172167729352099721660891630019497576098996687578995978952072322324338546833328549267864525911746074336714513857124838597993854686766218757067300008276319995717668400572963398821027187707945688674208186660099930938061042861568966325061559252223803997468516056227598945305215396070343726543296506120029542124036156377133070594792915917913325506508872240519530590386359831269619920895685675779193267626549945584629669748696691675385603673495969495947615858222545882456046346453015465340362591972425149133957610661301020136399921815595791152803274661275467777607864771123803217074133035474175730405093664526337896609341166693874479961965516977139568264940740877509835723180547619935574383897951664077786724186641822570079520525575795292623581331283409644684704816346891473850671538995803643064749917976590447802117880102294627586702949443682666438038178480923524356582393916930726811112904149673461053314645654839200672321062416122929591469170176331971907473073725884993361582096291064836306383025762212807423403605239498364710539647756843225050990444903810935279685895536605299207706944037281552908673598636051785668090217521151979767418346057749133960990682664197567420340236041639485849668646920639764124721884565111764187892754611809125656131304730503590478708367832792461092940283597946215020445366323252746372343498468564824425894833667452424772550757757423916839163385985023408305745537707439608631112380134321734855427498120683951677735996261658494368710053177242884916368720374979374665534856351802002195449651327758482679543838072435766563357872206029948874925078062779252496174848151518869487028409552217760107195210963198176793289079087617898758418892009842402280171718010241642365491597572456024867865652593746028599754124763291857738612517740601949322330538291000006632413887994187330752049413191638177808548231943513219089444505194907342682960040207475579417848695004771114707531320499565251809246028229128498370418086943613599510756441045662533795289752524958687361754801836247287589529508299795823857587945194082185752844335004390503440761612269860306103153555469456677598026928074644482321044167348825923577312222031307249319853852777767240340840876474690349032751894049205843751346964333586883078152049745872965715118449110235328685073281903581093234613691196671760861062511536377479352800055216457033667378540383848585253806416815928883916230407619715129884411605900795968565219776774300616480645888803730888215321365656466955596769408934075589849250788366487425372783050862866077166376242132151059233338506613933308497757282072962103088662901110694770256992170525871494710692388614044943843546181543799487838018531810264051350258751762535069553712087617520986264100141123403857767115135999477797008626897367639688351844677463693527822477279708915739766354490623950554006426931977842045449452156701869041053347092724783950772774885815923188689679118871583152095784471926571960114920990756482576140067946006504205199412311480979528072717922220138052957728479232234751682658655019629394897897481762784016203898560927774364585835228412461910210399803663857394452507744560917020077092932171475327308758802122925477562375368843398332980161514925648899122876536689570935284554834668818078134553933904807409282383636126242890050403238529923095663192871690587976475162873576231075896966241793960351218615999964348957535954359681785452510121301431778277741608029637269732002144828288711807844224667674154134703744826131622347050847157058691275615325149950834126033282394737059602832428468722411911485737784489138511665115983296942133292448693842166226243870196499016195146384895813255328327823312642344011268813195826521012460536811951818019735299505123712773683749320849006572789282440801120299483862673897161112643987048638964711745739717484263823148689608754815763778409843497446346578264571341873934955686017181322415669002566152656671857240411048277500960974781913459599408638170936084585218456930883450191925245642461200657612448920435179687693079567845800095976061930285023038801565314894164719419361640376683886725113534488441407789668724020198126051044892281523155539651634950651152727651769504284337053659881072895342766371123542150565668054188396937352139724703318004763308134824947028743709328509503142928651292830614122919723970940199080499804379768468821883526738235493996478825587915474868674945718991827534151867808077453226495337864815950271568502475770758274319301119272139019675502547439848353879890565758368073522910963358149409797372796559056857872574674122640116414151966230640456286345629799060513254908527372145036534539603875004857963661835955934794875748517164815660071181532005030307073858902865403484443702090263051260564416844526241114143405605751500841210103853274402925099903615370612662236102165547050743780977168523750077903501868245104872106692910605198699644352312344103732091933574746101930568090480472784047916065219563261560964863472513970794660555353350775776883388121880670337446398706865342065669955819053385176388783407498153299094138822741578065072017293511671403649860790670868404320661924481854290808203967433047154584267253762788705559347050370851895891722938145220786175399281814364797309003756142165314894903441302466591739136633670352954442804577487297166670817782357659139813172932582285686238745168481537063555612174666983460880615292577688587625977416866207625608392724862655785815119957870271017000980609807859737071558189733017243029606265422890742362592026101159289002238046164565519304095434628258991033062029231181395146793219393080978394373080198364729061954914945079086310984414280516482712488862193098197095554103865778476167071255896653986874000102189537225089924956885065783689488298518995735887925718518565846992952312567313936791489376414772804142598977203800755922078229201110600885691773531339977119263593452065527181220736592349438241879414650979845481034012098958031489974761267498003280144355438400989463458496052828453697089097618721759494262848810471783657115415472529816511396496817924264535873233204621160803214702587254276268979261633062009670667741170023859333672240645674445530895134048642794124235442392471876145295782874341645345788602010176189073794513803520969204311460526587413280700755409069160300028811401595650945522194170077369241679394080568915124312614977348876504604785971170864007366565259438674412244902679265057871349139980974560556704158414142151780004902560476808320903294234310382076860766010541930321258036099652326525614880832219188389674622509097601646255576255227505507841768750416777741945833267564659813694375544098436538874116551750873972548262277981577646070040007349591731312681120063249056867712797732351411700948915117580659030032827336984285971963680971803883215178901441544846433051167331132555672838406647653303381560904469521649741463992483193770416511770658193726811217749037809563346756549509912193586413927042174203001334933308194065664774918428874085200390378224297635159843422310289120355132713428915511712700403426655132385822855902526046355544458142835419205823968821372591999566741243903838217686979814934057106798718616648815603634130297259453819320814337667812295268600983734858442582184573383744175637769101520947571174133872414595854442897685276541168413194010437402570127288391168556463815828361941955573775782783088886068458946024954968727729814593433428821510850400108851850203019627174791823786823045895627322150543115736077203271116454509751350407520180313161171967410630494134771010538158836140950405057847563873526559600718926210307499928734329296314882649840213805650484561132748947017261309155312982476868436735835496446900300405332497076364738855411507014206543990558891273910156728681599272501744443203325863529049788852111039745813859362583534823492187646666168606596616259634004830198703940445819403829685345188412553331694310834957578616117721679812395915164808881089903780566621481217507890677736025155861363734571371474729341553828625964918282937547856559995287067376578029004013507254453318982844630618051926649322318421948660780574581372966262309150619550113446877776060821136325014536660104825179464184963522651276980641791725528420182016790868540729541410281032281015914014248220554425480741298319342872288467867213406240336018344028264845528885975128938270575631422514381856226568771475455217340937279962613996648917030437248607491110334249386771592317498576699507179184119683068563731149814879066192551088556838011644883264457239385280607101491145323242068383980931331960037203576190514322411884463722135928335040522978011483824985674327335936557695787958489750619052552251674692781711561026354793841533381503976275413714433065870240990792914543012545130000069545773598355268988398985660273101853432261723721252778102696065625054317373488214570067900188536038750003166491497782219311975788846942521805062619715468244614571957406695898165148952157807559145458869747408938621610860657460349848475321257011292939145805370480645184408332820951844491305843632121356778057886656924499219412746772837975156022758666141610396493226943955903605597924487034934359453707738453699466238309973780888719953114264064996134239473854718285754865597364137507093268693900292387535876433253149507091977073875441366114645834174792025482270092416867019687989453521408259613050826917942028411055096648006832437599675616935529804230471610260685772416222633667905732879722887025793190060472873181512848470396004603461498729205567384523841874411789308012603956449631499943523117511691774944607688209215323620057507220096984689448933529698982166199324409995839395658929117192506110196275077943006225102926844254320916230470961549969419664480111560909525197238144559218974553111818343406057950126687476300805020078853536852179756627354214658814298941185073440697036542724505867989986806949993596922684451701469476024795853733385419402486455968057336137786191928131869511834949902955539548720025238132653801806052873743870830870470244191192801080033569735252009442502845475764444838230481611235851731754950830347348642922745279523306399272175681568910799811608216212178965760742329289924033360530956799346962512917450839457618428864599036938583085939958588910272209926333375734823356149731178594108728143754041222412765312844452008699933483636481086821334822038689931882853134159618278001401143272779042114826856642403649700305126751651240132577556409256715839463428284228920398001466629459366901301569839838126828205501945071737430765201230809403955054198569744155386614334661547445317577259739303434435226518967974550505003995773196450919173822342805350729482732752668135904714704012595303671696739510436757064792310321245590582624764768322622631838089670048372680313052138305707842098408255796169168776132155969444964847178302919073869913960595701479861058650301817728226326676859839642990453715313660396688898531076250369231843687133858446204346572229098113763892683155838267479494778427941922770338204937292338230529733211447764609394985035774689736697171779391735156456335126422305023193567312516459029682200570840573628658067727217780654102715373863640643194825426343492625352243193515794281285768080724322166891013946809018080722732289491982399653037615394001015009463289884057473500269549890159871278215890179470122283105047493770919525394060406794365911697656631751921125821610324355270944857229245339786661665975950344944306517781007192562437365026759619429571584769584500737419923642070462620512543282637050759596544680426264761340189264949090598149764343812426876811029007846768696052495431812659742018082604914378016176974795853218048602027408734487864547683538816168417530345639796360259017227310443795081220116713228515844744032388185705257712037147080986539526241215333731643236088460221085250527486295090773787723013300481776652195332852919326807680060012342137227726089673640807096810753805792215026835980413074949141309662578759100301180354963487992309347940385285043054015187277572794845002154325015026816563216758814233217642884830093724947549486592621237693536217511884971909207716901923214237998049698770898022550235347123023985664305247165787432709187938020098229445068186163696866604428859533660972199639110977215216346400190670280465991253533732804175640477920640674973779596143186859559100884995311940806328418533865783563177980826522329205605210266344374708195838163473883013138092899332362005517799606984304083729744591296077648880709387903849197180151817924645272047854892584971621726525055954094302618461556812976239190356805678427275620395701451293934862635056313082703482026850848585328526450873356984643421731652623060047394706075738621943156861067841242465449386908198761738268679510940898834527732554124193268329037667803258331753528770278535789259142712998302260598176166126643973988498632427254111825671308510810962909274493039392701975355665615562402006292368562908675520289283206660734306254474810681672289295692157074973635241614905205885711169809753046527693199237736656333172956408054508404847686911357828616267172729537928279812367431761459730562235286031229073995528828917869278980398186694051464215964076089832548261974478763259545474552194620522441726106175130247038489222764180719430274542964381686437966416157643836577713245139213335513671352495508927916597811769596147882987103490985241450195870381064222741719621852782553731071498798397929504579955966894723967758049788596518919242919483047328899180070644061522392524188627217746838441289156453884415615805056907561152863881947959228086056381464264817159121358410918234521770356104121751026148714102948593363925200071754412542908769899376896533331799003258702663930198835650461391470250466499811970213994454601635198094442550043583966259914228164155129106982453568795195397067141404626286617964407447323246391599847837238693993248611178710305145676047865796306250034251538714831335685739935500590931075423854649393530571734292154540812018962652911125952377078975126324867991721839683275229544748872271369463426250200130072925442546909052713338938415851341704129686479783191810168511440539061236971307937094263356426649669806945908482711653942280858122107818594769236801939117005860578001673365677401190412358488289346463980728840612803186065076450138387194382600121978050180412207228107661269340475152373522847953823834445382132613197431012261024260066352265034809121035701667722525888632440734695977445058042774654993283801601854049009701144069561793692527694098384497324439397610265825636051861254441019780921471497462197882320683226176072982331754221074779322123393840902434822870299366964832634461972621519883327391214571064376947066856252858492965318382633572339274235181821383958828153574695545430252723252633254146321084346730586692875089257356816607736914580514419768207255860425084589495722788913448083191847985223672187627756893522200933502599718782315212361437669508759748602395410359446743082405523926344383723473151770630540688811690754613966446600735777618312645850633458681658835465776052093759110686652201685625532231140649195507964581399724022599104062023243582556143548826886161379390448453728414050086831946255239306062634746542653030251221560500319081847936053875094046289649089782514256647132453968487696486994756376084719621830586861776537566303720156950584538582388766116943496661289497360887039088468222279569379016397064996063067959646034254546573353730109231928710573168183867347173318708050025080861507716491212479726379552476431887367917651685576267531798804987483870063525963866472599590784589844692715886113309174720773025931457274108405915899752434874924863762084887717562777872083477280436789253159671653112658283873999922817132612468286999253297669653502783880856881087854727093966908938997907962983331797021913586588267850336654942802697866055940639120389313687576603027972562084667904771372013993469895442841487267501622572185028016296162618954372383482248428569274467987366520627759188620281329998304870463289363607399979252804789687403355972465114608203692894795944838739434885707133414347898157168056119912474456041091326138619126113516932460689951536655001963321950347975265920375796493958554386070530726446005059718219961426553927694171706356843579344179375932334938440322898478938833202518226113709795555911243328307612896437234361166394172775711495555700346030579308506414444678277208636749511610032991413303651553578785740272944326505397264301610310622627799133424990400487898449602122075495037129775960119015661463384646370133706242087893822290603206036905573578615599617447468768378658487649282001913658631285647545760236878970967288446014153471395086494897020721247051404102889569191473594090926990301058460829116387437859320909394226363485110113513842287302884276389517287077462222908415426386116206819573068432638807493279315671221965020446901601465575632512403585913211463796405728037663128880248251075614366176765586964782182870924917436216889520756121471160779143552558480228008595156596580570120624954917579167322481629232867481212660786820637387114981141884046516503629812329149625787777782807150855816163244233792522713203029290062254125159002308810304783089356158696175354555185534294930201289908634977947058462631969830788219684885771098370362863236580699862117733737065261057382923402677474842547518768419999714320569861491065500925146170031789223068176802549527790347833552517989793284951449348188702672037877182458379287019608060700463236673234825958793918343577602717924120491749110008318883827660934415214620969124824977981815003805049491147235767057045221959928180819030038543797612369285170332987379853120530309301181667436628373647639271353724005348241110541670378328744141645080383003330552473311694929371282673229660043214500094929169372762686444832273533499501933691368027292301575030798019407829655938890017602453234959767817493953542923549105765563239614884691098465762060753844064808609229739686881928677753900886892129156174996839767965125334183818888882352833921430772082776366507294523162939941838321587617508411508868576540130029553065242964568876880496109892854185570567574213899280940914906314771895595475285336147179431613376659370689510305664351567810057826223577113709586056136849473190070997952660622282112337620969787596087061389410556455555820991097006825859875901700801896318049189570701382405700091592137998455864885505641981776638973841620636071039015411790247662949048522786091894848476025505707557973921240855501262516088702416928157184716446357618287411534243965253154436846639681832076443070464387216811034171110751206770941824289698988581869297847036967611202759909568740639139728875741810321948759692541921692321277714717548690411014288254637811380532533735869317433751302891277828898401673742286788392382448807630078785956352320691709371845162283819747586443761535199593919718933563756948022129079194593560420742624671366789473372236524748050437680849491085783867984160981574198211970899299762543804246784425110891751504570119488292265094610749869823281660793110600721841084438684463686013694511551257284591036191674678995045514415144194843880933441161840936795944467138951180711650270832913647563839062264141847581340436596778893741441012197146546300539339770507358115127470241247827575183053531779843092559395188990078830906022144021901262774748269163702801787411728807338206647682290523616488451670903411626954655723888275295693558647377076664835346453680835956478060722861916273501619469656914217139968258088606462223005723844495248766910489695932237323136035734019098992836282655186719620575981084632082228757053074820609864520118484381306934953809846783564387775959468463153300336813850720541246050267341247117806214151340774833146633608953583463537478504677368144213626970572544509808366589315735357753674785543193586665081853952799934165357083711133541053163440440023030831464613022720675534105162749280599537130600574256974932944373829742446517976090700683347130029384289502540675454928568775941349975969064896921815084592470804809700291825482703036902097306729776355657180220336010014415854503220534502191195617971327295991743081350011465464301288456797995425822503098309091445613031506588480150003383942447554636092899108971450434685814847527187569744335634205488247831328136081739708371330335483467657454173145449761693884450419388496535697009969917874922900669370966390044465423832701203353363824167509867436286618843783893737594282865618017715719541792356294683829892588969954664891690571646734211251945444494946873718070839085978953486560380467680522018169003953637105589093089609779503506026447958008548507840961202498916983414219952812756842921509091252558499200731164555996424318353366154891065676580876857210403051891379151840140428606871233905078203616460405364706933888041803704233590917474757116061962454686395618984315083624839083388912552935877562893489800540023039541955560192391212498836814794548418343685171258133739333154796655976640146498069301288084927398139635079271401545852753788282220812098538203466841688342889792122306565337673638478161155350127240165248821130987419574622427636090470650910862919357006359469431065387693317786284324215947823082120217557540948203275495300391325810513151825517394814667218845137358061049858875834630531723288749466579897791351455483330310741545361154068273514005504156314392530131813143592555236991392755736738022212546913028784916415605184339112770921492149350063519897356908731906805335025604768820724357440450472353071188576280845123469903341334500196282101507031438052761864987985033315782790714633134840018391753229909161503937549987629530688925998561826544288906425117248633815863691636976860058875598055327503235596532351172515718593548941879030847841692530350737134108475687391045534228374596632494656379733205861602213802516443134279309637569065402559627924138221810140969559533290573969168437918657400213204711535618066680878219932590024501246555037496803746924902226938900050991078079823839675941133110311088430493925576643376854423933241260235311754220526738714990142253794933834761149961683406741825941142714431949785894640742336350604739358486034988760696805786461286342597964594438814900816880730462839111420448762673452695320410183252106547638038568737589121005255473063547045707498035085965517806798509645863158216072238427837067521529446594322404777166189812388565061676956985333362799014685550439795197635026774043127251309983553411029602551293829666445624099467758982600958043030921797672534202594228575780692133424955981414554419989891811160983826766021303260515760671167383562037567331685309283553641830754424627259913795289353803972397899023837819749600469148206786805559722511464679299251888642586257618312038050682949507158653189246612146163649595157241683474363189839530501182093352634123718582013920321304088006605428760165788912272409595810551316037715164760339765548177033251002562935184685393542789417988544578070761553880177309745361110567098717669512339155570107924860846900232346023794550999090249436870945206262542464385732249963791778121970427599455646623396516863222989950764289839976741447505072622160503874968003963247917730667780209797303488429942881839915913821265326476456639100671809146574304190117116651865445227949954172661376596440799704016096944326035176222326877764402583249496773999761033918544931290550876901028241787161578908436797484444136357177696779631055877573464600110024747964100064074686063002614092377973763260759837228734327182650494398435467706838991889147655704981001085170473333232836577468656131469864167916846671730418940657821520669366781267085723672435489313817538779983262844729575245136142977195841617937281439400985804693971500073112183582544324238916430400947783302837821795615967435510937936989718932722006588039741722205095754794001662626467511590862730420383417532193059756323215622115075475607072892669994178222938160267276824670663954493504951977738307078893463927418650714355532023791567651258143906045089238237803791995199133534027861640008333426120922730261041981505880230589116504880359834561578436918644681389734542625250760782022952614588447225327765660174728330729236795851294544337804046129420129569342018296137674291000420961184551963462386064718605875754090116994909191012915893372643068093906391196958095032962158713328002777159488973986815207497465850139349456656833417004507039499030358054625724558504281102505213052118088568703680222554953227310816931700502765156535536728317872063839228082534220267449926130397196811820656522663290846119751339363300152182060094348069394121747760558008962340829638368601022295282883403671695671388869381005968777070198221888815245323778222657053351777765262979774928695236991775082089757737879141240644472574223747757487567897368575709791571660929735831190626494960112119653724403512183350497958330769449940222377337089562665905400764543098432540077452217229988026014148646336617973665035037324564034433057770964326271301941745407240256114971888558353740575226670624938398823002403935750616303182754098680662210553419461950951245153175814825841163930217772878387052463108043374454651630116988564984462826710163494344606477284063239998000600089274438883053864576821220235815730788816053371029503349016565084738478587822981526348067940038875809487571370527454295301078164365565383777368589952784113771108358959692871650954004700955651929514008243680780442767185460031633601610388314536951875033271433907144251070111306787625797198820301605798666459747525165363982850077444143314738077493292728894022475979373981186949649238138163238156422109775515053478615034937697361032965435820505466592828422914007570857122446958464696728606717144327024689795969304477011311075960352338933643774633616755162888790708711183341311742781998421537081464047086987128220474430206962568913869673958158919847945668065095961352884206259073757768210451578372918356132157419042941728146672221212926665654670585906286863499530780134339541696186497908833207578854218826052465133244781450924869008456463053023511347883721686923837155727715969266257217150510427574607576529132076878845301999001194113249218137462907997190358175711009625464373585360830972104441956191848567451350005012821584266392022884842846781383653352554872215107940293582399793660952622366999200025734756427549310106404490729852343974056520707466340150417196547093662765685599119124566808885413159882942602180739470347594369880007299152142564987777924572887308074673925309146813042974383307369838160627198824010611576079056776937797212840779893928225055410632420839899568243515836538219118850597472818490261816064187472784992017865568967145080369575583021947533258400766451130650652752392160012277643461174539085778160008395735103363016984252654889019047088297472694883429517936404871086500548751373006952382881186160986641310235667849096146078569944271901156973611809271271209469240669643319445755821063749028446433501123256301324821896378962443444400106343859142229795567005944441725361318823043323895209566431278084154663324900820198986262779449033922291365959366769620484505621619973016182547357593830925446572193228558893652832682366541439784365657405314839449581675163989568082864144935377701951775741784037133209829596476473738460055993956721450691147551039255655649450331727420646124515025110124765187778624527976683506175532049717195403968434683631156740475623392969003132496512821371428390229908767597852615328470314531682712293018042407509726849163848477162467329797765083929963993238481537734685676170855562677118520887356040853007042147323755381537503129022294491912953601951150350716068838027809000185308786875528589487921930799238125584954389182052289019146899709858085005435056384215647880846040137574201595292883824264337570046786340176742799183134635205298696767998478394894688696892423745014831586871983701964032889957030148476693871808326369364091152931484260973084143583111265802926738505369324227676657111147072492723780835081509850451897620001886634441329530568542588023273443433169991484143292393492708329114890317870661117745842638880840209309567177406367968405075584752711375323784157749190477343445787862968290480203738890776164328844539506838307613206297353782449029434267512475924892350169261605145223058793243323542760150204612178871932503080773057726505820409150486625337991997211043250832288647638981448854826879499521387174186175664638565777160377491840141352215417230157664266592205850680023556883460267027881304052734999533537040637073154685076964663876883558865948109045408881217647218496187786026853967311700608988335857766700971714145744295562218061523817775040301328139508712979642928827697129285969973830556296665057023955184083283609603740476592796747222063870362598165350937412086139059521181347015241007440458355635118926917265606879745213884920774271432487932770967796088977426210131796647870961494018219030475638224208395916432422879017992132530958526262246558923222038200112898818582215072124476839981637384412900816291931903678583189315443846431059142192740189413562026463298317182459963569363040331379170802862032372327369463866264125982992149273483760223997741777981358212625587093816575122578364208199545745270401934199719545145802660899864352862819372130786889380476963078483970554904930786550864237070892866111036155603844628005401655383910010796495977960591658348235706904842981290180053559681611834507112185026374050844346830011990313734492896895980738888416175161098063356145794948320581822090751166609263309129989252377739675834547749989135243343023345626214696009941063899944791727134658371337458532556008158649877388962548293053554350390267091602227316344209918208359834218768899284738542396659170088108190483675878908890737467218408229450005982714974368617988854976738945953792811912806021403576640040512558869872866661481564144699965659332926198486917969791058476739786769709486978066441045125666927174266338913639463759068976605505446665110753953772953491333167498343180705043613755568382596502304484466068993414433534327476479707797516018666177108002526586635743981093636811707304121729156998948131304335657385414355106111706473832923193137101079729726842245520382051509903123451895870341083149674823730305798456483911523068911368652159753506544954888643796590087564477033857528296890293619600826541266121867571266339485522913170520191147264750903008820510252161046394984916725951821839455587636952863016756284985165101087335816585584848470751307971289915965371040243290788155217836219038486600234596751080861031521888961839069084430211383475078115097045826919965736628773975184207090397101546707073479710247374046619104436879327917814911047860439608064731652938001327193826620045803177367665829948256840630273862457274674027563314462786144427678434550997100308879323186973179802529248908644969848297247251376543458719517778132535918282381094332406060049636072277660206085707232972386907564095639230021036401231631617539996528068721931728372866336737167152785941256380903606683221561931765481833003897320572710926141014811201651651411456493031484540234305533373821831138758581785444656448430814073199876737191088907931832417202320228757295996740472589153577796341941316273662704258376625589360991558614847128819910535901198422849526183384934427675693367132380247218253624093875943943813627113424569901983659034087401706300287179361214316615394890865800185677607877652757729983178974300102118891260304011392406149255582988026282579957375205421402135772771721903779646104960435966985527542762966422950296770142977559850769402767342731928075727502964499597773106581793374788261947271554082973627558276224352116339137606298484701444478689596541716553402081307543470084846244818001100479994462006932343877505880962886561926693356040862945297375570040802929986164602980410569707069817246383193339741870286747963260704583116400121205266269535579328949250241047197251760931194480121857769418778735604211939420603959089374136497718504560354381327102288876507827963062637429012211070612683464247489252753395157818374016849977888607128920304547751524962648117091822067345228753786644658261354615072580448866079047583410438783314248909200948839534220455854939262651036840672843156067863758389286930064720776231373599269154936977411746669530178675467441798450700009698882179696828668961387838803868895920166477456486498353559732626152861198502961710014100420631286294347977934113387341422569686209120231530114377681008861240228629954278303971954180879625561453304802722143264542158347343970713065789407329930648343321616386886100202524452460605618110632445937168858237504734508786291075561528546728855313667428239060916318151794749750328515481048513482100945707952059351823361010969456771534235009082059551696895991592591723704153915691067372532132518094225798883074433587547844500746450364761041406611434426203317091250510710514990989067866974742040824539054690587908792628141401712816821780020134563539998074379785472148724164430031919640404596351768958875661710079936009686953141397069911149284555564601675608526480478890835044551772203951229033605750465666438729105291722581220551953201628732414990233950223016696273689074214514525696066229516923722031403676060294364260217354506807842585847930685344980830678856139955145607723802084179982132745093824482600867563030872782012722825822620953290571413489753444646833377752527220996270259000532577666748155245364869433717369116219462182572940612671829266393645382652681057461343225657109884822831930246557491656593725564303902218538874185563654834721275721576914291846141865269323718883565605781121021731328664575356440017580813502706223565973296992973083844672993506189118636102842370744141659760838450054353479758083997490977879032994344475234351811134035654366761601983108008663453387330607235625083309434622701808342934533035552870747916612173997292472490581935111788325196696307533395406787719605577495022562679991974317097985229516681275479326884363328391441010530821968284606362559097534242491679087148165182215605900331914893277797405023252137646201759425479901759390898217497437691175616080619188274379349663461381292285775886207811382480275035850587065519586180338589163711404517655829925252552817436936137808058691578287089337228775536897240421615741952310878686369975651489115516421181778302519668545039621263372196241436350846277642487551355850843573000637599712009795804016597309410181110198472561796080397197172440574212073541168848614547773664137749186269588392262301099871005466400719055088716239949970199132627242833143162993408731851809100769163893117277319808930953631805053946925814374290198295063374399392531160024766064310018464257672337111562332415131338930312142439038491232110097368017430248221999426271667224795410780850411671644781697211438303775614230136517744606885747080876436266414670711536795012946356107274907136316724630668304262531233063946962386123770276440372099428604644575825499687339884904861252488116629757335213699484977258335920996264340754133145125204429967575960287226698214348040671306507981517212325280556456266207317720348974111663837052556094479564378896343049929621946573365574554360674663172041936900773773508673545195203146135570404938509189754285170055472704579533964478741772493677094764619797522817473481387665887036121607030972756278822991884053736853734810484126436869603979463703532416610743823079696392380125730284932906689204204947650597198081288462800916197902699759561561269697694722133807916059322615679556500238050041511822272382748964411694119270936098713804411259583744524216251566570745528539603700423042392465609126527844260091180135890486670010671627485752362291281414279453355548040298656476104316956939529372078541643776158635759069120857342820384927526011421403263798824207374207473273815482128211860335061780826240605515885962181821305790428235316444428482955757288270877529110026180017732749316196930802971462552621953574945403594440299363784200413122175105473469041386881405278166732822720492962202439623639270076218954818513699810300294812620005684112466252141510844683242173866025403104588638570919392095764658531417300449314054415881991860762067349674279090256372146921010920168235698261975930468136902352382519223966283308645232917025396660494498055073566722039363938225066877706630781867264223073461208900953454712450263758130062950516943317564597236738929792394019808957221666770963882849265538132636842562290625417971787232107607910469037867901928810550968594648317875131441263303260743281790479835754165683461674214445615784361301467707520635277723017773265193221400350376731096194870088319428456788605883326259842681313554114352809122231672064793756011663308828737598326416290267670808432211001177109056392037612971749140678879896745221569026362321440053931729218739923204017322043891727173418352996252865814635965551515591922522590590461995073670742671445380844025296855227097913430478849464220482464579408289057399535158748876065994436030427561417076907429544481113464229554391094482455806793161366744805114100775191698272194167636255959452493883926824319932811208080745421419920848729612990132645048490353024523673522141993147924794907805210817445756012796114543635061360048036555606253868549540965297026264713103385863416954724880469851379150733577099583008025650567527913712490203296893068455015650867428002524980057938902544377592355958986154095156893087183584922571704092270282042643519864575044569428726159813959782166880690296671765528684677973602941997312131062046422720188202522074399138523766627830270174126360968629447402464480047601298669503891582904021150553315880682634746447232600601997103230465191596586569014353552015745596170486515134176803267242873457762789552668936560348715921051569981258731222886001835802623148167795808485828581128268842816715334569806521766933158090609149262067822592920957438207677860400003552231795091251310815460919813807394996344640338589752142160390005904864651002153771785676722547150100527504867334138558648463819133309638076154895676747116532844173715571608436928720912414530754079732659575253278542215007306846531496739821363430076510175468575194028865686059042010925366451699147907277836973451230343701254866463137900842934467520121278002356275882416090828394455453031041057305456560412525140682067109878289979598926078536019761051642446237256832696102612173081646751645054018467237141574617320115211588874925797130569646927566297945560571973831432100199683382763868456440777330792325567341411930340685576916158285424522456315198125338497709292256041628184853504125267312983099032689577118815124668681421223713824587680479953671805462623390968425608792613564015691453285460116340223808094815184363584240031459701988603199566594839345834912782430270532035128613390584291301360922950612518626481720805029821055074648843361497645715211148702634870681487769696885092741736991456222596583331154878818340301587575146535261978955534711681003400201632400858654164380202602994590394512927819472616831375435902515046529094670859695367121063174139008384138720260993898579929457312419435598852937251525150759230969277294336281014435075434504039865760529452166818864453805502627075531211966055764451909569790417946049526427820211593317719924057002468851553466421164962967846226264979871555045396878017686493946328390958791811051312445011083123832918616792873278095312841695728055352355436375215884522947836302847852682564571150053986800478121399883836698789727958310304765776494810637295338112060797597539397195672318738197364718843509601762234008619319300842003844544894238536206851108381160340437243496495811755430963012534950305532209048833823236010908406288087283236079304891534497972580871094999115305485296416204234217587103089655567613389501262927218040752037273128992996929448483147129729959982429176687650998731916865161141550836790513217083597235635065346668130242254148085464863734341596144353032619658429824448003190891005844013528489141756258473267320342631590594743542840921212737128212318906515736969928841642526641345102262505874206940788498914727147502684513881089305127222703507323336473660128497938241367894045982909760953920667974492883388647586200510943548655901007658086423597298954203875744078488362055843619808724929022605933829112414680332026381482470741367836856044544820170916674955388890349987234734127533893690860056122318182843981404343742773188600610617287175112972180208940681956682091469487745391400934681102312013346493017006707873822369135269439686369297429703412218166644969492033875240852017554226768368894460452943718553835159060925685670083403143765193596632309339370503458069576699188389751362361213180284739556187466133097735812369715501224374812980891841567992776134492344036798282733744287453298089449766273017833909089057303234311287221156388468883396522773116042605169865831496823147481577714447623405685762363041489911738107642127260069739016500493885082647868089890756721133688930497191345291727310939852063948137048729436789593287268232354302077250090202940776648730597912644007629818428331623945066490073212683439187675418543154122899620513833250122276303348256146552919783578415470599075490322861027113968800949592193550651580423421015568156936828660953523133877147215696624510796822520882955410766439665692182553128310689396585599123814721321067676474853995845857827884672960987855027685217488044918929481471171729829707462119682792009141654211134386164181781047839268990900778034521717277742076864786276179975550313309046236470257170996846155904966781782964336721129065202863623306371398971676786778671408935266479361430095081281601507042247625926664132757871093279301938837193959136029583878151069674826328943292874882992537774747055092744401566311606647897611704297838767826343488938982991768674856743780437025760698263618407634716049470449165469618660598559570372240469694962669569155011549455273721043068766318803836207402975450697119295746862625650368767936393348184082058094742672810889677000023964728349859046048524641382420196982535262085985213759073017318070418145696355857765952324876443202051959624749913294878612944448805930658840940723631182872649093287111224117951920388051083258169377460821151070433347501986588887241125591785666043785546127184123299031656947812000077483183086890029076567918307220602591809979777567085578085922531152789144788211785243868210035965193291323577511590329960647044674759003183900723601163770461660537278474995681474820713626310642017234403424541984648184812959146715139028890264234113521756991215356444643342351582746642341883445162548086865215918728561335715646821178019822186503676853438797388105042274537452289549752080489972993060921838233006488204369686554017511939513630652633448273519662512143511373509786640074661040854207920417145721556328241660505923041895123077493022090168651670387399688888644169584330233461901772472059607039247277237138145034366272847912690722186090775500106251331703927383552384686917943102124120747319535575981156221108044948897543756714348422015555147887567433759591199262942940904137090807236106705247545452984960701617678463589832969643335479124271100829409127590711569016273555671586258054078220370688446157398760827945559929475511498116166161968678889482680604428802104725212590386019451041537309688557169063286880552448486433739714079512070816112118382599102011552869243091740926206926020384302395122625097321816737310232640043911159093673768795483796697529706847563464423010994869128166435139906299420169174368408551760392499329222010451500898151002307426598475446420885878699789377936916301328692643998092923388983506064656547395049395131291598473618293054848815331267252231939505344121358785906609314048230546507282368718728888621483363304431212641556784485072902125443236984993962362896695800980438244419820106779530314762050774038611174660200477103965051179584929374164560676056005414998657156714629906701900260288294894758547712786583405947132570498916122499463688921487521598839889748426612600577806262875205449935378806027084571448165624143892720951530541081204220126002526622223696145370103297014029183296293989150292669400499562615635541538759135470912462405085032393144461254396411597661710916729753154997900177419918256175705855924483366758782833281979473681846972606539074185660565519574735349333108602555883850719187584242004549968307846908047467290772204266723588641916537288773554429909794517314134781626380701178987816008192871255778502143916318844835791856580713838011345834864202078669578894425237333383988605577488576857540807636762599892226107520634470719121330345206397940459984726825091712566209404869300319179698513180505314011712208205126204361288042225075431729881793946329164568738413950975570910942870894730917825233615813787741150950727272378432977969043900363583957560014319826845181503964411458754811068725269745558731781649270412322995266525515514728052417175109505267600159203395523186258039199783938062118134068201314977287742251911741991982146256705785009231665992138024543492508125949908740490344270484549903405576719122061889533241805599584725409370728797400087288509089653820451412325523975673372611700255492353680551569583022984950393163908442280388086673998440516972860724053092938248980391909223740331471809112570046916254296587485282643178172981964947475683815338099394212371498840633079930699601584343770916368479552323084378876567472913486385325138218357098748963706645051076969506553016886981972269478518025868301755047129265739448007196230829642086055404816998108492906856006790340904482833220376495173220417551589134615570915039907199230873346107955617493734983292752491020167585836095496769469055351885696107308558566215138162093675497062468353538958844025539475780176356576927394729226024321640544971668708679138883599502412783921032216043252250225027744005998976275095192684484099818728982777134576953943003285896702724577364665986602934890572199479485654070699262329955710501922889420748328370208253983684748232780612013576223146516041294359302234919220137913516649413649162306736433930751095023072791918581081786755095723474896693526754227771203490518703451846226120777986295800068051606478695399892844981339768250318554641018529915725070739109538042124978414726127306763807849937056117577336507102949160485041143892756957792718207757899515074666916729064335596846695719019220943623223851099997111829429062462280147147922174874607200883624136383055542827080188671006516526552357582062383035989585924652896059289267136687515190988155529707760316632953275493126284863073856623905224655722276637172101785574237483935511892745504645881957416608151496689998460406225475437374802604704240221081159917631109622518139806316591685885679224442657581770650133722650516012706079678428836981053189752877127544532853340039645373077625334796292620808620134147612309874855845556469490965064598965481783526291452779321373964825282755888164892038135217172126056405114851803796299009741647684979805112117666895460022684773638961769327005023066601251884220358279871043662080106477420908267372260277842120358918338443858100080468424784694845712549479939625999633884177621405162035678261417034142287475957569702483437418028791540085613479251301567388626286542958486628907303995541835419222998032290584208545181746773542345237754066288344987235325026064561530271028519811108652734556453247786740873211870408983288326286806791027322518711561464395806340169593480747757880284483547533296623107078545089137294162002961349533723509769501598487317626849889508443189079008592555637576901746246845145230416105056972951842841409004487328025331492811821584366829049535632157042314151334975172350220210105562851206097132609283583781941908891539334751539850225199323253487446218701599681763987830447166929253331269267119563512557439066582684988616876436876432883964447334918895065745477453978516497966657825886795115197920419773753018263576320774826052177749822879632780724523343584751689643677329268695922227521131649964524730239301544135996496718098450839937993568880904538786476284954459976473740800097720589027478378658912655995512365782741910342823153587676752894341881304014680501438466995571209012309956138383584138539325409246223830555302440295733381731847086666285929150616844317679423033241501430904343456000105275053047436190358958238137536541172008733357768354895187700642417806885160756380438642562064641699449143672327333585136457608751744930997220453255641349050681506870056036076887677869953942319398232555155122091573940130285982528751799076990764528752657650821751246329495069102973424607089430111973870319290415458018346865894352415477844830225382320158955427658353775963691074780593264876669258076130138688075991342479935076910822694772064682709001181118517678870480870590027565742848446612134649633200414006479290224720428665054689053117771107231633897188484006293992490455868972474872433359418194145178250856725417634827833342570743898268483907889610014259912866786037598782615886635515560796398586062576607756604016249401568031520248543327138096719724549194585222615290253410277615007028994593961213073681729503538177546807880119723468652514358902925341797840555434112230473930240728632713278319646157679187441348166353695906312105584813353175210874886939648729501536239051390780522080003398252930665518339239161867115731058931066526925445842387826749577506281311849460025942698116095469571014295001195803361876765994681980892259890747239709649327172128784697508949544745006682844643720478361849550243484710753757624024132184111519290044215124639755667027505383724127285847476874159001606732112055245013918116537576829557301465366655999097879496035521846343316188337768707671406282087335782556389703238339679624623639396879114394461570750702997889909090052207997502345781842800298294911229756662706929018091682375417188713662245157556332120991830075302748349294024831974311118539775911751260145534697744391472355847082899310567838841596620557550173959213940802605792418934986142550397895135122255013918425785591986581581679606360780345799506738699105320758022570262080371559256642468271645963479172122082098553323773042609133720630089677557154586349417839900713345472117459820903166341454812161745868763953794483303501876806489398602947401290391853046068121447943862659809176098083387776895228580833037788103393805588739798572505137611645027026059633453545697198722214455713049450667100835156763979594875195573353989195926696132732703450998351956844339941034047016978715323728285149586545413514460202322637109950007381298744759280765639656396495798479355605322613540706986967263909894774099379726123547938365660392697283774293621627587699109586129814972249294030662612884595150982572841729243611841700640024576425084523420633636537842452387133237100809050634592012583870215238204070677831955609591944877325573708215203261602267211466099159619844565843549801158965176621398084138957585794055986833956284390572297052622877429712073747687384237048207718823076759292078017947925880516891294927274960752352793290985092478782570988570159679695849314270960732041621363019973305604500642330642719892765004473513996106570210921760882833236583730560478112953099462282253874190488273655257085760269118707762197144701950041221516966145267438917005332455114867958548105290450956763406009537551277998534377262275919597028303946220839351082761296701707912951623032776854390527903152745236897862455913409307285113911562571343860667705366210183574184488906487013811375794650176430217836657620154558631907986599190873164601399689933008070825874468869869199911905135496134287607513995075193134371832999341008668242467083772801829728465471206354296862611201023347651117547396559056816910000082734576907983247114510523311670274207813683251701735688348356497827165875717906126370898833618332544213743337432805954589403237478823565266606601781929817063999454415157183626867364243349273657194796171714344456293174966138689323519512646909277396667390547976008288943766703501328922908754914561727624159457418388311781131901130956175428826982246298935712412642585087986381067420837335755736714400355042320103726083551908590442209918048429876352297404044049768210910791941093521523864747858013677670352714495742681556707797753356613779104569859324385586019817833241067148448748509211202393045639116342062050310297885109102938328647437796746071338193400043938995945458505753455163567163788926156598306475427288344198645813870609309052639117805295172870087219326538823173595951381905073576860458517069580103900508067166915362978797272705654580443889983210212445856503501509594698118732587127461059953588830104209088589265479331061268188446969390882666205473231209867390477704717111489564282239715600131783330692987845037257428346343154785330828801233188147368666687071789139275513848643853464643797855737515146064244215974112206459407198284752077100198119851048628656565964515563681385785663678664709341862444143510325445384988160862507188368917495340309183949662405807347832508376826363160837313956019570580983322211669405063329248501641329884843509061435380557197672293526366795175046056236339957571827215352534194996370106048833051382937562574548899932770227834848149686658361257871011404331234129529132663259724425306157664426209918829668125897121698414877592337904335962150965852053394895070081374020994785067520701078836979420567138909838927924046545893328210645111751757002229666552940047155797004920569224707345889333782997387712467801132828316073965894605276021853140402319146348675539689117616312373364696532185690308980124418980359020637958189045661638167472600344241903186335915466939698752345041506539298623904576258983005286991989674457578219834155513518896203703516518462392181736893825697981535026527831048579581482893236822034400632818782026105856503703650661231974357772811164946814080972774011297939048358017628116254015993124256648061201686462768745101238265583424050009659517497192856469200996671285923793691260499976371323124031192587212176883540910391979341453274839945176706187082306768963228608282231043208384630760710404255812794505776733614398746631528330503601503221155454190066935874518531064395936684430815230984410557620793456039723372673115729143852758321069398966993818255835048573233937662342516983512511354349414932896549646380109230157908785385800751557791857108505472976036033207501736267363747599228985625754650191219401312258870349864913607453247455861047480845535985349745139257633362149649971059037306256259744262512030376616147173527044017427958959341651655639766792160903031184542591245435582661793435880464224695894351918583807006461558047507949664685742148207485411483892869836895715341160893252594878730823003136788859991258057372114708671552522760165396323117096048258817405097007854466834739367701661105713843200252792705799450033858480991271595140429933321764943368103842368214542877780403737754066086605931656092248198460736768182102994553125670856862663017043101602245598415362025272306178410109074047870378154759373109654691662933291408861431781097942355527670340110287987219463832692365567979688879981553853761332495547212024697639178886701257310439407033048297710765502267041461545402225832145913086174579999669998943873371263057374290829935149416659557945770267597373386718341402818587604031176401928093330776511924980220496113058360785800675222713531118975836036937545415356624938922549782341726443650271490392397954523497495762931242955184360130630578803373857514314349459830552387254578490803736167183856093477969885777449723237880507900911253072080648643517830210398169954599067946055625750611515596248831154189028880054441991241931855893317326260486186209951045774849848662390648105854608814442122590400779707471638211579302572395725778356570169493488564977049632718784205347009090509559815691346354606488667950917311717612610750032064624562244368794393299835577482175800545550280716942559648912396021119414015941071092981203874890481936474649019199766810598174979842996452159540364052212954060713331941926680150901372610215808057520396103483828850142723353056043145941571815313384051063001434589774825820061220314610750579843751097293804414028810614576285891660064201066939111088904908959804357523575701265128138122337053239192661334782074995190799725405624145244942645550545479096534382368980583234614862609829212029320059084385214637576512672983496984088230563193460973308728841817056607274748988535327144604938368998446932028002198715132423112518610518462152541990353216014127750261211968342116426100105119616744515500650652481970983396320787385271998021747005633517429844609185809082059756869331043806056838328627976574987613557972123891898045974585425510438440499224080490936146012757490759395103587448140124090419591574469604019569910047833319801079686215259851873306657931813101497649859906632358085426210163563849904366568147319351421666132755032122443612754601279542699947738355986818088113726592839162876903197352664243307791534295132096193853726294354979804516077013806311754948606177359527047747891405448833458509962615708837137773768557561987610467805149568177893948620269100272274321435704304615685962931137269788468523945748634273018934008806851847399503861900333979559820284142957430242048905612817135032945518850637527549531352133748394149069167669538714595924443157022652111826395963402953206037636446217491115393645310902791299489865348036131902686962326975821849875430629592369031673229985412955098173648819121810370976773611405512423266766551421051368868814844048978877625774842641298435828612352230821456858896982170600776989277871600856238546244233378357650263488303147833227882987361004067782424407748437509232010021306036424109084033655142356651509975817782714989015614157351131969104387692019468820702072310171605769312406181881379942986639207792825059725568353535410189801301641538844027965663217424273029324227666456687705813648801238015137779891331246719122812331939111506802960195999124057452024088380749594133911976023786851138437549419991960919262381743469874576944647418868835011062472527328273103036347292393180331985574270390336377069546726155015266494597273728082564577853402898885467124290841875440184743102781713918557711162076670085939060889319446405523113703369961034185627632672196840268220661917878017562465279267764513750584043257412344500137928260616838475633461183802783935645056281646167056487558697367344984489550292008177945883125160912653326978502267905015408530645072701595490018264674487822213742206839689335455660547532858372910005710295776955430726669178569175853402159077938810683665402617322056483358778159900100740589960715803533294936774222455970823518101052134161228002026430464217777829817018720177545275199351986711485276985558950950954367401968630410759605868526326926086772977076962883275636562845467124397289960334501349520373727609292556538737564884463640295862080787159591341464627786592052423023328316797652970378469999931487937090842166357563527843209341486131137952459540622035940248139994217900160455689864983084116729081249124667904135897028818800391659100689299876529402416809438471064834008079472128027569714229593534208700881224321542228038903829386898834260606698398776831872447324625108911313317087306983085014987020839366760018020918424237351920810142391649556173105458801598534082529548954217408173555951477565575278977746744588964282951558268349863373191391739428643583523129365179816762877918440172669938942546129769740305169440241534227606336045386037270706572460625701380442041690229379260795125022531802192635997692274390440439715077190265947843796401412493820914426026405189826164350933021618291076792197207409236379190363557676042549436727482794252481182694352627167069656362065283890080288537411133711220926016007296498982876790913321533057209016121944013710228127926559416717571669964779800298104126275536946743547795369182059837242815144375757132871014456873264567408724391916965594538000293098867856187900983611608970161960928492475981846837958091501220451705151575308299240485754546921309638440738972486976214703460356555241397255744775797175823507956336057715845473687796090823060297951061627696930238094504925050088424222967868845010249370128567716959634209774571167803397953584156909388858080498753616051341594998291910975272609177867077412071624928698586660480003166637134313514669304019927633642006383369598742773191542405649909333914827427042360606038732378581188093745853638428528405454649089102325904972833401870972727109130688226234108253432146211720336045546539122390919511181675270776357140219356970424288105625904593843924672421782231730807055360637207107243651381093451222693807089676745933734677536348861371740617272018687590904545055554615562049355777645573267481789100815834762679425129723325291935990469330755848713112672288996352922034616815773094222014194016489347294581821742033401582986742819734377765234741428460611552131897622432090354813994012549122293869820515380686394001425621417242349225753061296304783067292104290765373489125761719168291025182812609891524221521065103428944659455454779356564002423548123114472776374828379180259118132025231592875310069519193510250731002667953699604018367939453625300589718544260417615298517327200101743372423043633340458658048336898704347547514451742364802647598827336275950269889220174759103574504352397671534006176232203603062451430552944869260383701910316905013317305353209988551230275318349836553044933429043613358873724908927534374265205270207048947609353021260550005896217700255251729248673203854427427154310544313402970581496028178210755297419586264368768712049836459965812026088047892010426453962483239604491779010707281984857045657324414354966904345499535391553799682785525366340467348257872361232399170668368694572540549381384941665917157223870515465478976299288521077323113672571383063441189949447134955784917206473494702113513215167378632586132554284427948041827573182779537853173768500357550227721530471029045841059680127772659036003546768771553040976995690538968255201804830646545302835666019194965348841194094689724520052752164548853242323984149054004564844103613359320821182948391950234777193013925008463857587777687439848241830302382843101668699157749942577982748641853960429618812635209625726303354021405759225202625023015868362564540711533422995139718985673045391650683477452381771868422758812370046152397276506187857543041752706380053936306334031753858902076806051980279746928189935812363872513279302854160764499094649167159523583044760731203631364696681870981846400536524476320094777568266452319057531513861382625113454952656788691732300182987182311226139660362561350000610632456119234179913613076319147220796881451697907074113471526979690938544446831432308586170546707926554698970326015775166751943337575791434486720342324549137332775601674069261261729931133768739939236042625305161055474352579728678899367653472088468899758677316491045064220727360084369913815374240738096110455082498145248485322613363126827998369658019109232715635006180118168398304320656948344276076736915558082046797779857349421045371178969826000074333942933219566817536857824942376825748771391286151391187371131639775973949959592219006316017457917384447259273102564418246989827194917580881374733600118893767130830616507352388022321419876336906201646275556940045740149448959838548446580380385198732898445089008350712948146464318402403918354867299500385441191356924546439812755284424106930949492084150014916604877208618991132188163638686939193455944266337784816097133034243639142608257345659564923710130982644144703665117091256951143828126153552104926690421840132650537268327129427511937730450861796498596074055929186390421188176138789588694179146412644758601962941579871124098694604440877043982652791612749836579939603565450199679048457174886679685321525867140853778872178558461826415017819551384068503566227539847082526674965544615979904069178410905103867141474501751828869801492216499211507083887467961002868276574595676530815836022423096434091001235854348034104495159549100103448716244975108452282644331259027651472878820775871078476665540376918771719087418461376071917891336789424418100001954173981559346001520550553868205460456548965071299614294365667141012423710457102304006946806818676245525829008063680153034056755719088460031017205922447136096813438842977546427962173437578672347254107261205550229001026927185700423924200679980536264613992457039564258134929147669020954390064447198233088264037621774530913808609738472299015741785798602000504223791587321663842674735566492278949537730988135075493399897722875809270454410674109277178151454448577217167357074248545062787401723322737041226342982818153134186364686751998575153005838074864273963559479822184491528824189810599782437790396628955026696052779637371559000189319416464459348503820546070122877634481376771532928874768305291680270630249037690225304349659167492245628602661708997182982152657420281065642194184432273219979554656995604454260578746713976800379756919005726762272272029668258048769663916587581496776671484542461608147918019354345274176632080945725410058325789506714380171733051768409650336228403237555740584338630592446008344567111933003407952989090337541063132836911145929230934429134185183587122414887702884917771542373352874052292734058360428060941737201867311822856075979490340715049697267420962878814243856435706370563194717800140367314000085453522029062003576831368830682609166371570613406508625888303041644065154895035809546197902882081023904205841194648125684892521775800415030408626201688078547503695771110280449702129678464853637588052814682664106980907414405972622768952121357947005860320351457364523610461746283343580502876970907195802997220272234429061540342130146596394960540193311928183935396012865493836157843401439608937213937370163163770084544913624083687542963847333431236324983296039841452182830619569337332347251499971675672755493135324101855876783275365285779777537474444396077636578807209524081527064192340040218353863568793626306438742872795628678431776687235438728900536901359368758176168960045023525920799264089590170594851497684095759979913643019534826655986334119598929501554872550208095174442661060404137607880430288974486183659755596470516235075716034516311079058552635600111353386800981816929912403803137896895625969896142386910896845486887707498828640808023653714286362450074626362438716719037018167513954488807010016240594101027002447679937939938689512753853801582605587622338531423195240339220426464427866325213692741364554041420881733214582522139229239367705164602097483345707768050704661979899809655699985869039347732677598800738520261590983698445721274753123879165026439627867910134787923289364688436407426745541134613535947777095619212507311460022166106764110190921592740266560720209300430815148141917062014219969557225597260456947975479899230437623936830812326644669349458088623191863143959552124216598981464993447067362492144080003870606858668533162470327006600765270514046393546084990317490123620604884348729218482302639308284643674655054755242962031247514497743363119764182738012068371055910851425488688676764063346260476519927211365844196557957989219632368842273404023263778863987945867958661481259252875876559188967858286594304660350468121041799835019863827984804275625128036591428338557048165895410506683572120376736802297455129372457768344716483654201074061117014593159646557311034948575034029892750932496419290034033762974039864817494066685848122891359474467932041847077900202683417215276634700743913455066159644341842326626195154328686262316947749015303483255772128319854759696576774361691781333670404036386776895660002283970048002034101852127024197628063862968194240297072829455140184313360046153030996896760147559587657901115608168966529100367478501713665139960289305961398568402981469787013152660205286500451029330037660119707327276488804522123348860788920870846783265441700588146325554058768752632290044376840736679440230898637766499031883399415926100529907321175087692353343885830664561565208514025208025128783058505312609458180035527100871766899669458444681379918463703171131088055771218475597402384247801868717974993045901538735954445223381945951124688076971153608705606874601782792506922837710977281704416384998569893925043653060697507060598054458982599272894380688224760508982839527894586800645450381702868447569911453001383506288411225744676570518212200209844148301558612262037364956345070899019729543172849461711580677602278360736711014793683152601373398492515556822056593587761470477452473615116735482711602956653815113488925063636064889049175703002910634199314149803297688032893971743774887455880565459952305171080155446893005855804767073786423355145618984310712302851906431826896414519530718652694063586305585113888419163066767278719837367012612999174270348286129845702462538980855179640580870747253021925663938086532761477867714894854741139254929207227189339368983026971977630601554255447114598305934726923040476124900207633962279194394657409885537221232783264119341422846523886272959439929059698306265725883717353624159467716309566900389168835148300628173259735118381812136471192507329759904343393812328701510650809713145917422945445013339088099922479001440480465918553640129986890097016153196609255321776708766732301821947119682080724058655754014549133156822335159436337088361155465686619726068960416644506728412883708209297871535259931745078069191375579021458849662256785262064828500759992762722918048759452757209267456637553332121214092296093562460889784097442850092223756475008721382627701339535283738727298036124398499110043455296593491372527192172129503926812145722272734250311531909787350464265365673624629243360300729027659911585363465473096866266523356589635841915264977510006145641810474350720981237110261179443585824287862980061438058643652377121592204701356743773071938948817865596932682037544221588533768132754880782585908851011013549240967706874196552979981781330602069074157708832655709443490335906390574122330467740336741366531587847636241610482980617362919639042417853673274644050534132584456506976204821988381228847041908970640857070398618106923553999928994530162886435020664001416927787040507448502591760943692139846314767588878597160677766803496266730289132232137544599095427079637785562046762324100590264882501335475763995939860559360952869253164373155837306595655940427240852369536289402024284033508700883371563711395672916072850587076415287657340997134768748471406821864974107960072862956122394359017937884628588317543974560633674954670581663143712831476621199623707668210165201242779169588911692665836796595546231074719109856582952455997088944311402383673326543118792046343636922182212764079506463827119605766126980997330177607085196982464496686671163139040363672700375611680459259083203166933150063014166429312995590191370776766072215204697458476745161905892778681215006283342666974587888000466974796963751630790713792956301903644173892047744884125228480022527366626508578364491027270168398870753556420972961207083438235828001418500271808093521144923746377438008714100309124316494889787923485346485920009320894563914536868682414680987270173613605706595781882003627355326701056685166694526287483926784789134613152479329279079436325166097140908065469692641828494771835448785655102503719607325785841218875796375626356360211208351521204261824856886095235890825691028975707338904909815311412088075612025730151550764477795544777964121213625623506204204532503164951629701891989431665040507922565463096097623316167447766837209163419894198641633797317435794234857878702835823926196242185483693375715319041065006770343422106570558891699903482781457029224815256883982933830342176387899744419767011979175531822866073202095945805059542061752006928327137705280479266649776377691315113951065745896293855110701535726012886649763524969542873772785956360176060142380483078726638146456588049031625135041874712393016210235251379335515795672981969600122210108561808166282853566998865514257663938072463343139364554270953888960167366142798464669881220795764893745610294696037513707021093727276269460106567415163971960607813533868545597403679898792821411224116028645705399552657186514522887683438597107893619880039782386932313215868569604564415025407467537287477581227768643187665937836864863359778238484357572071829063466856369144283197044486570013192591520023104495733090565972302950075609457726092983558256588434681304337884807475108923106077306998057290064826429847162913321771850122902005866174396401912421239365405651692264737800274733593593225785680620473268320215123847809735694635831692844154867905209499921445837058267505433352163216539430180160741056411526838610080006182329180220070697485640701537783294794968811611789907065716641074084138700042477558937637781591392891114658891658672111678265876092640950386583340978756612295380447262259316621967805807140646909945078041916593538635610103009794695631723985576963602600051084433789035714212215728973700337887083833308434228533372239635730903743208602116852194631117776103194792576557115837018884114230131556936492315349016604006848457571329250730595454331850591795676552927089563329284841878736212555015787484816658713005164836807381976067675577407386961147419030452243817612065345579254951481942923942331702767744302271544625174874957682166395416837542602915374880049539466682435197462324325043921627776480749476086230918490446906659087221129867402366284746579978242595285311444277459921097217412984468090423598308060140777973303033621796750561617739933674939803374915901519846045609980772504737162673341777318227640981809633643472712121533344423184123406301403347221403735832388452345324178882941227213093944499954706496147276145451647019291528025179848591878999204685711203113623699727214586138175365590768073447033892700734380674232365152162233156186470898356734309168196536642252392600322576374494621889791230331009711159912775101695350767463470144659035835927632112239636391976455511057525721065104183709346922557230995141337929892818602215026224585636721826353971072026830120312968242554645052906405299422282992893824258535945393027658087537184171661860764970617696811066840668800162174610758966413921766715619575054228140291852429194969336506517007699081571880813522853793221881504494765775219100228541142828035940081445532668769309161672628232951897187725185087509039616730014604116606122247230458243506670203201188370826165566688798092490265097279747845056145881055775654665966573217929270965426203986644152208067369101878217569411026615253003339130907689253581532946496243855797215263400418159126229167260703110499425106181980855963119915618685453298082108003577396528460568164664336201770965455271564097842749315694582543142474444123426030046078750593876125054307774649730303749470510181011439095277375128858191833167346351777154592696276050281977480505447043759403246869438675274188898408500166573753788278080707727508524225839822643540499769640163401424911778323570269326922630800437521720911596163851001680171294882336548765231266649289561180053209897924703453894140110569236996135087051152388357398322123701956544948792083605866959729680798323316509062689920887242741963527502924261749087171758671973197755393723491895725342685035872592411433440177302026059567584083397433355734946071029599137933134032460843109434517664549802282839007711522287757013665325135818434436766715787470275240654577634530920048232332944018443230806577104200304660724226346547026219334225090312768905087388499198905726450761875781107679688871985105782815181840001204315431495465298118440121664776889968181910511901261768836575595893269915784063985876824498915188206223385042022145342979696750958957548490143218228513232942152536291731711004706939912066022323208410078023567862804703184890797399986030498289123255409117078190357718089465741996567953775135144101448302341411225043370964360164302855760081616804895802642252332551764080556729921245535544498489233074308682443460594380591174778263340529310225084754139430825358923753672822504813734310571532685156995416292850809557814316674862674807517705862115629038689849025569527980390949853812640848983623920021403761249945819529353872741601088605180236550006959903496918472735399767803961336959430502225971387467931538346565108113953821112624244544086703994818783782810378825948709706517598674410950923406172756114160285467478145464764246765793346318707921101340678694080406547295260421973426398720318780616714512630473003935650081925310880591783252376053566485597888994955802694164782550562107460678523004415687224651594861215429780700183106495627979938789036806332223053839935518322988814729359179514115073841759698849324474987561388954075578576305451293920076151543636202786866505272716553671132679707870490603856261132271086701182032835080457150062014351381493116757884597904224906450992771185178192193532063870211999929347066146803924991516412292628315957970637939922222194882400424911580368952998682961336116592439209193799453848954900473616466665962269710807059254779870481682456271271155227460403083834969391129074605223129199122282558632667222504081194743862485723586755647369691789621882287544739023148405822851207522239850932995489378503726182470868408558345702614782780003851124745801676242349986742178270314116386769558805505958689651412033447022030900031389431816495115395874882366857451100678430135088640393548083694062665293081762810477362215947781142253334493832243919225326267778233751876786626121606701165528725537451228654103768127843141498969648356239579331865830514928993062277267943815072239181792163403389122093127145620220220957661863470391556234544340332096280050991777707032399898334802094146512407817949666463707275285614828004386309335569602185743562777661219752449119303066781752137448222866894811969293554305361270403848483045083161443968413342738974587801810167270017746667875923943848721466528644773909757008224367307726120519326254452369372899369904709902552199981851394078278937330082997206606734851482983645157926910336557626508520555861662229894529008029246484345112755335852670911875246314572850725370437629005369976909322306910431276735780570560709688819969619863610902959508082040130540215391947262182585242845063573971323298272222567315062147642820184003876532177822802137058300417509851602380816041017628040763545037391450925422623280398136102046838108859136361150658531394502618360199879622402963769621244221420993143871482049366056464458202571794763977109257423594792449036071811567713769911328475462857385397302742471593083595172352374734728796904249670928776465880673438857478627721200135358745324237116775634226543822479051352662062524386024209049531447073647415494200431203125433456393738981280977951964514531318012400152158806180671131039453091391666896373756124513536155236772975295323359880703977478379552800013266702104452140461323228528538117848390815147074077767690933378100801241017315661813184483674396309301070113667498905082390441720163848951440284353240718743503375781224072550809540864078462387796283770719209155040390872037664504606761111248397061056297017806319959423352655769287237882003777390931990026259983560502189689432613190336391356127540245403322034631202571756709559110853624126801081691794577055765510362244622854417344450710720874663125218469527933352800058716808579046866909690532352725099849059308372649651560412698679637561797732742637019431592800939516083892726480993386897034490041715380072338922371381150739326401872739840901172890709379955287686395789623233219115082242495721072766017828000541553745023644790023783153864346625842593769305559905140468610208977230730962660069682451515746533696602019442451500955448890740230244384405554799337288498830837423858312976201837667691699502277779969209463688308575418201467148405026291984094395711031067647128179522006864197954190154797218340609192571622060833213091574586766820016812230076524735662294786897594648953504515510078827946079132728949011681656816880734497659271805900181001477180141780670213689589088828773295147527709191064435621416496345873021912508843636285092538961486551465041535415983390029455379899789364774280230763853595124853416657931347267134455758009867660322575428664553101308626719393384955112402494273568129406809382023335861069259693931849578929733587217070039268158576942844433654113715481278423239484493607602610544726999218596696069842896150018564366984325848020313867232471838166952782623360734348085858573448345886436271182926249645253357872336445059547028138968320888087980153412817504427905251506043234033639997012518283518664998793302149467480723268424508443455982315790674577910025872696021664776990184643956027995593351151615417560427915554595479234003365329028458041948459264848112458238359655125037070371118010932016507579879670065036212551031311396013747279948856016841283949679326722749513803730957581592778187443463196091893854177332216049846047057799300765937599957335095177384090553630628847604330947263403138406912620946815563313232621468505063187634897820011228379437907124997548274995038249327546027138900290993580157757793032002015689676451131115970241668291229727572221827290167405720467345279501424056150279285458505122312258700424308344945597068727279408853231415130813933612132579574550260427962119688447012305025010742218408802524797404566998443771040025794817306465713700519278018302590730650343914052640671509664936300802829879687493453892184040828801034013122646629934178748087179702841352107449822346881641063591919926644667768251644341305345268625368459347550716103571966573354717126595921857725783242915100951423840152320937352106721630454604550497385524246468232609719296893694184222357632861717212395905152360471774132183002904854884636908031026540091114630259434889322730734963077299561660787081393521597021488645312170899264838596345732195740079049044954807773928236654398681711144564528172811210559097905265879692898079452568124804102069828596615596241266889016815279996323633017217417878232045536972400446813787879879491274657851288020757448687586350918433306875024612433292930454401999292260292973349504954334856827455474752599037455088889691483806155488686298610881910686746887397280420343716549092188753706154579076821345520594023257152519738439284447176539191005939938713629656924632543267874961910556568847180820633926029444167505293785338802166076453914692480478734029291265338027153179107220253789910670400010262468918777635404837632800785629369643233565154344734569017336553292444734572158867146171886720842911734132181713621546973080659232640210231890614975515475797738569046373880255235284277506856834309028743360947771143138369968477268977410706042235380770846689579786959382606659066103452094795174646894055374305721830571721998326407873133383286774978914648824098516863920750574297235746628346445315783890806282691188591875246123018342481032449693386875829444833294834879604717422717674767874854084652705303847393156115425177424617596696692231311729832367492383450080242344230874032909493986590105031918218715319632948790815323038655471332761132120042774591326900905832530717408866959881581625364370471334513123775859067410437811592625611806670512167896336056420336566703635699151443716618941827908896401136002141517231065556873521691481583251237899432710995679693057691855149377956898387444385346127265212243724919201979751960060158223933193367846010272840800814683641995510603885639997279863191439836501045915629791462095691477393190338524512235494752591865045386496657592559754476605530555469044028503664684429313742543125157150883412958772939276230570614266400080077934747089128625023750229780665769775987638825084605793986772186845000564450034214578964586887575013822883476513058473456088907977477011712232257494435591007538446219180864199882707709224818697525704342510792509659347344360436128046070316632877594280380764460579626078631813682488364918452831106587519296587896365517775060070560612989141755687994271632629974071892414866206242765871729417229059231473155724288116444726919548788499232535125422025205940570924535480210277397035035655034831909789005052572476679070047349307935530882497248573102817825780697116799911884327320766804460724728649998746875333358077565641798412513521279638161397798901513265259633244195169201524508189971922652366699209801709523276038318213196406860304151573577052297093468314043172689035099045602387606735667205596549373315998385490286442900366732497407337124624870551451207615913818337099852934488513633551717176406562769002228950094120594570558289810656427198744068667864687452948353429367582401902036263211767370326969480559540801461763008222303992146510152630502239093541115463800256725069935945424847895755047325009054439522557791215786713263736515724579579287198263919310535204471590092865677264081750892935578241801085995747561032363022582553085116367085249585577786556295407024263968067961437584927035609464113706751857607823773525206591181228963687532029728867970841406708362554869898762130498742036668643713003256562174298849071764718428124679928629151680457568577229628971485177030618098960088510529843042578585074595305199854854258436908704463862869416499253793263792974341802966834977980857777720861466546387404837990350277835338867475149493592605698968591859141278171191077753187291886396138545774092121860599926837603932419393234898438641401311815039566880910557296007973695364473426426386445504650619032317915715158209695636369497099459738571858900907186259938320950648466431735249856463747087032146973723608824261206029809799354890307326904240406803897375211284016768178959152556244549628696653071388344992938546022985458117437921333866292772490964292724588191534839243067428640109088351070492516021385464983428691101397227618113339469504594271649865423493868929224990269582174865181200728441326286631243884058644442624047539152444502697815572543558934217717965901074439177440391928317180802110167597573307181610128531075970517067914716058486478221695263605536128859514087751610251110260314013940215227348642796684636037048964411255436707732938248113975599486413668427681898955354855950393272891059007792305902158512199143716652427900239809030333876290456296093471464039458692242614154609004979061466354842342507577564876165339201811188180077223019140417919276964148006107608896078362772449742613154972407552697359187249068519105234007373788656489033737162249894786366780913566611983399025731784865312679072993406531752714697947325406385615658110846906436575736435848637920478604598835332649725015391449680915566079126513855394081925158656906807080991739533230676634269975973574741509452737986191701919294557009580189487118084181298402246707223811902905282238916718354416771911384140301931675170342817352315998233487503535714956166937619435250832465432907953780950001666006003367087663985491024849786873061856803568048380457976085070177837989167826320533143828104554609095625717758200518565333049431264560316068610968070035778361031975476494934135344345877890445679814592431284031841961354713993132883755736338156658655540510756612277566929398096830298945284169342381154310481589750053881845918174808509269018200767202138042520895443128173924311466211003375197537376070569994327488675316749887945329674641369893912749199286746580088507909247018488596312232492847782526637681350504285482429576577522022407823490394851404932507981497014641981273215816454052156407810631483626646230046136060943821955028634373817638266377822165169763105137169730478677570341110164704008990528125749704870598094328342242059723882756157554032805435088951777379736885274775869760553918743029672845563800046685164347332914720027974276791175784174754458696696400309568516375544909601554328418771735732999326352650312040786585855718546559223411581693851572507546685179130079641311670459995598980536901934007584545828602684581499904360378234561130433952056553576160633027927726224841109371914297736411481506033657424696681253048398658573616492958749092009559699024817843167186222815373705358691864994607462780783340051911810697012380979960049447832038946662568962098686628873940893994061976988189702483739402819615165639546043011577194118636474603314174066210229626494998032933677981419663225466027654003572780241443267031280784353158999771465509905766591650026185070585425013547345700199075365674486888358572316618320452583607941296140814457456299835650178548793558623948027071328925227019177584827511681904529128725550739524287593400879496097154651026836683603313820818055400980162516249364149745674002487597998267420850259772071369695867100921549685304419465547413546715842952129051956823417003024799814339150366154892262360716144607637289712728670540504769152597235143701946469507570888508196569328716342380557661882592045833747153883335952790780467665886584305267977713821096080723701582992301275602813646072715907764079020168750981100393763973152097945452336820175508991796680709057154161278994881098014024486428805458213533963529206518591694553045705695808387413176325444642655901922231215093426139565049979052719633102554935861562705379663804043919394299824222108974691273707145706008238699109609949653852452924748501396817911091912648642605284068460391125125656068469033601889878343145331124194091034355459779469678761576134637228615533779375176140909182965748115005074313090452346320869836124725721595377551405896775390813325249765575091389976366486414977741709839319912563359657417245639694484997658845055056010644395141688800267507064770576752423098596021265984538401467484675945007697223047610198102205410059767928821654760505871358552322321926773634880382051878008598421844133885894633309713457137551690680607682377711504230100341266896237521785429246373391948598382514129106950522578233114361922220398179955831593696782781270866199284479562650826930755328824534717767881486944688908545730391587355755627044109041285258014215106613670005049085840636400334384962969652095688542752771253844184666905852929393803901881490191576501739115180577313223128201053016148666897324425867639261707074493444710268309950774034079892619586053558380615853992189801111832876981664158233966343013382572105905841918113089242997795172333833614885747964366621241811099641215279076221806835125440062551271360869363914259511608661997525071415558377932323904564227219552833619693725588723622325063276614193101264840260669570162430206004104772713295210018720835347428211097914034899161629168413287815316295417908831882739920767271943468900515075971476385065892467756717414961593751558829962704426211288106143607061051688173340369827572445940577791907720149913002043779158960094836436471575681762052984352720548323932923958677457254012540244991375650395567535519733706678461791179124053047325648577744349336668915264576635575403614689971353934326600267957440007300181953788355561970468444588372040750648668274641459578816363663541589258793475343026814103842735054245333895028739957621253996818617311944762440022432329098261802181410676589620664229604368928276625138633348843305025136176730063508943877707757379865268736689578755321612676111016349410171811030442702345753187114358380199096439731844364369717114415114281479626329053862654628538382773859962321491847412925744219686904325959929068234695843401430458659908448271195922306927262284288572022517555972204312835106202338196134518295257747473798133946385059117991856869653673049643392266672916533349755873518143464020173545514305842679109166968944583419696499165215973364017775307557663403233853889408542753378825711711929050817247797520277600811383659268007727660938273588947187567738626138688900201110669570184922144203197010853654824150477141624418070369678949753629165143285604236752913755083500835775493436190563124946952119532191659666259332015754581160026386274255214961923179013863072092593190635179579434489949660437142555809759455382135657083691071663349666309649571212253062236280291798461024154167445929824027220994338685652802299394187226576014464172922544480615780248900687168793982346710765406138156725146158012962084875755303548692296427015772564953153301073861387870272092806358700055179912764164043109670367111636134098614795220211474171056315445679302281185189307436989823005044350531680111699798108572251544779995824093174581483119805505179142733620835809383478780048550408566812800751974292990295506034812086601350502088291600630170598258780193435575897615404640714416389463591515161567543056556903316717305709554136997726610849979711906652345231810622141943133593569900274569956004219826532725087683297558772091377256581576487904572327856472865125221699818004771430524418806278297720558688704746017492269848512965631984005770031382155054859324791328432721487691213102108252731203190916265411472670716627307793943101200371856064357978628428678360314860783189795691314593797199489082576020577852814916993423634912871647510972520777413934215816939833357215610717074287448743591857200134422345513597225024924067236403940576288453102996640370730676016170946865437316857804193430600200785203787430276157410912494804696949182239959257952340784536573750870776634928702238200775327704097343361326625460157826899787528434215462400966378208390275021551682471515271047575022661901865885263658877476699702536369627390845098266921776361227403755359764583132015534201209576461532980191442736983058438182693511791174355615902956291800519458580281978471661868463795870554619517047440124915621613148872056363090624214914617911413013737237079920770000135634426932409068982924460385158848958307281708402064396181611304856184888129860435619997574639434220225558135900270196238605976480497285681192686268143645222277201313145408086318850039849286613965671553788013689903471724734173621668242432612473082511006002057622377011623197067354337721109632530717990354048084721972723112054076894413716809091128716111988760222691269123686005406106027152042670211393328113393663443431377350933409544199058833839917119315681588463684903670556144135923738905187616863077634375719519298934540387736960890343655620941966896538318193953585709839850879443612792089066761960783740974524030003345242379377912627632761263213184315153746833052111890194804450101855248583758018337471409944488233789960528685866436443675122907164017441644123076816037634000391130472833985845719073208881043681002667495653120065447480422214094160115614738380749985995871063317491745603808977528301172221689622424991110299946232003044641492039677837983922411037757572894000528366652821219930976262858769840635845636960172419425652478893294909862377088163306808410545541772498483700756196332383196501528764479928420401416560747876334092228960290910714392609098435769702904357327615436349826552726463653789757836278891761912766188520667499687360690990329512797260717084394635039644265468045840337769987993261299042489986690750747425159194530434993715594859489684398636501529089160321843422168626035826825868158044090947205028462033907947052398707483423578023810905737262963836788672927866492469641749201837143057728559913759823536498569423066441351181461883529627936234521564754850889981338850895783612328703947563530308621296054815904155696380651118619699113428177017441742680050326205007270972313103053923821891828951683172788229025718964225085554661761359087738487937328286964344499510592326824072945691836511643733856225759804540270864113489810216772262764399462473780165712917819408999454525508644611542570719864198678746305899519953599436664894389323033757975683067981981806690599623866390973224035835605703007938581116859459695828301312264136804665031919158224528197297374341032322823195783715949760618945161078213566057146190264079640636054138681448996049386296335766882285420791000095642374850707531278203051197204990815140630956357168938387360539587491138465719464845037738497966800901047882338127406855998720657419495871310672687431558044933036011626465000773013117386686152773193723934806645501566328068405349149616959562224603831081850485637068559077077326042271303813971996472411435518771825197025048125467540822609804626804638424693527462648401693496176686941801138378506316337806533536521297761250994869858946138897104345562123973750588610120776772038716054357563642627084938199416894042466232286475741676706800957140539284824409407973651168502318486014665864380385265104641217606168189556790440359152701079750356723287997524095351888910001674030598413622464939803618751559197088283192232239559766137855240142753989404804377317095048330374844927176671562036257938415233550521513617912951239499725195576161015142399289032710052128033651124247999401195337825542030082702841369952695119911462223259255139598826410181616682317711108016373828039837565203189691009048882119947839608721348190039432937147012046057726434301868674469666817102437742769202132546472587928407458672368593297632729438025710631879657312797911032229886731615717962376119321349417701590670886153091214417830662137953210341995674524824773718977582894743295309380294320440959144861125493612725044730631171238311802138053626887591636958768832685047235021123944642643349352628612378143382024845631051871322412622718185252079323116309201234018611796414637035295220146831306439521293951160225051153623441022070482131179801230705916366822419568286268251996743146913861599259865229529854973736553689466854426576679515748837121730308451107601104869869546488130838349617033516827026928763972677676178233068629180966128475001385296218774060520878455287574081978948325975629053341326532103763099907755293607222560223916634078883900702732771420963410778765511987299782652309026514756727532424150604716154450180243903864399310141358343033575457985798390137981972035583332962727745008599210143004231178353841495270099771841646753930517703625399513162821632666349731370222268153468063458122122556740804815551241731170155004801792640899588746504968517410922971183448200441183812858866364669276227807048927185073519499128471777835668712161297984936517539961277846269626323659369213128571064283317261328525574166223207361708038822424536033916844941564265072669410743101813413823820006752755699214703094943495144282871729578344281526577487420139441488976520436619369397695272030759155626061616379283110943090643726040681651094135910477372192562000428524367470807801890788195726623572563049979455663659922855811866714571645324013337383502654829427933189688684712654045552668169048228942179718693431113309820705929978604748445654937186236386096970579930158717973968155147958785454737749643769219566423745698350014456951287458057569197274995974608069377269599662036902017994333246473389968600604110299097106554384108730469579173018370081145607499890712923304080969681808197841973443460924358716484771078507246675307829128791460401527810656569399322322183262119475365056795084896625953529924092749889546335509369501258949875919288059270281522178972100801461259014599325363507367350576627270546526598598716272527842001241592614674567069200688218782620404894737064451274286947487214012619661862783053407697331127786327113362966637353518525802056926732429638808925009308010828584137218523605826712667921971712831561074815399307064486824810650732147688260751857273993579366164522014552599812029443893495598472073501821750665080526814132975969728095351821963927924786726482570526687897690161207418822662752955099123915282026035758889239738421494187121008716008641466489457197807929759878592466159979519313658707595363557874885448094499375658325251926180304797238902441268317230842558939226570532098987449538761952636506212430434113385678184382622096462744671090297110731683424864437597175865466071367226912036058030016198578614074596086295758172460121135338131636371511773196257254586579568994775118603890055543437214080643088590834457098856624054723198567933419532946169127104109983679773708626352503183060666961398573369847095277584775114739142080709692263544254482375491350360274011540763882499273063302638457452029926616803570154042640199934958891183006550498874830801790373891247692145974592676443227816156361289891290504597159409283705787583997015827728184392272327932190425177059490926826922351270246603833241385661602375637870107604742832797760890570716249072679354764253219607160097115807383664901100754353509885521999458349782075863732819003442322215715936631695278771325702689120421816236106126746035736795048373800232514395984046113663828455017058283321757698535230686799407726276127472306878541389752463662716003370598084985083215694385014160869150841967437005297587305178511012900407771748824372396210004382362561460183353847602030188720687983076372376153172459535254297295768127333430738809679563949367617756212382134235622987446174262388526136938392427064334477829387837809829973917434261400193453865227141344282790730629328292249125574656130836699196658128635495949762170813084879323945607521245899919921904824208510022089286412951374233382228173069591939742239910001334258989604825166307822300810794990131684266148071483311122991366252234387151470325827554516251399860709880287379661765622936738611979316212564943254917378387395325271347510012749933213055799664647718173109724412255186674650292929292163134568216251752933807268791278432283287086824173043682345141819575366934049082466534341524114554862464324981500251190058097734145334314239215160787075147844516329474508408397871905719936721631898810375912776534386017124893793967639891565990761549394940807713746440052877759308474971058579286627721188460886128508588309247593107750132291615093226090385186925687943179311990207960661295851450733862624550054274330397079773219743811722221643628794985240286951733071664628255842913913898758372384508796709083582649946464785859530823001001125879508201685357608472766254362731397121334355529735603204233318454990731253849304425167279020181463609616176427002523782541306009713545348378093617023933547852332299469629305929253819644235180561695449315408149890804474295275809370042939720638928692015663453829861724261223273696869667731562806597161752282772724303392081665388044905274422809010913317493428401412327988719457223303916244747012236356312617180748526000095408011485009134603843177882056395212392370187721622867987185223604425137037290425010300689196951406645515880445246143444751419620652212733143946664031466999104726248994541318614726598236138115657172507498718898979392577846442438917979181745869067434370127540455673402316546287760341505688591295480829407491600376974798745699261764259507453860912578124575387503168680133400008349753295827672127622188296376890918921969614201017406744748372230416143172827308470957332418505528771792520825236674202824384805713714369703170030764227363166548322967794789492429370725967865931082915440621362103905998091178200530091675761956570437198605271343473079909307009233876248149612526755252767572632061459281265982729310656772377018665349106106489581257338250095532768301016577807410504218011972902076758635787854952133414046563242382876249977192428639351969382888161500151871707521281337449799190154227708541093283626278845101256193619943633683385637800508978942423100640894843925361371163019708685630181060633201260899629699478866578275646482887075736288621367454857247721569632977267461201612299206973626055456754358153422234870229015102207666518758295941587128519325023947917508529388011463780505512122586937343422964219065222103419779380586572325257085813615630516244898498980205259712740063505317045307866647868570724557556919815728234066953619159433478957620135512271049495145115499323830913678957209377326423094322444365450348319997901503393745867348267292593831734212120909066140904333020114522735224775635690482207440873970066650597673621089175431618508304214142551487997693761558285566822100920352089983129528625676217981178266677158950152704136622933585195887057169836075195010737530889403582855256748390503977125996157479661584647086532525932383012498663904375027887257762970087051555735385913842838772850693421425720418695563952075148933293967008141428711020482878690392829052854869185251453564623014702400259715558531454005876386279634022340232357944206203543736428114320791432534271632619830411515428925104216778499838195768655181306427007204992624643908330579871941244671886236588572563694019611809548394828993273426273840932359812198044692001394648175985981155513452705383427626290683628412845543462495851906737285171238232438464824916300180115158997332185184216918420600052032211886914800088620033504250847611115604543499461299967109805541310346351979258959958232694708444855207414067607698168317116556395558406478769924481739161014297854369891079181220793352489405192219156241061641114681171224273135077311719023547115622212717892822359948225304644960501395606934532571022875479086722454394916944907624661183465711487012557336413300983967145986365275639558790454157235530186969705969273854763893631997619493608242302916810306676363998541637462724603867279427522616359826400479295904681028028959105186200543278041474332439127884897412174608590952083948857234278124024903733608040954008024207980345999457438143755953002457307089326987308976491196328552592588323651324324856419378580377911827203684133179600436282338436248973341419648459622163118433588690635178153495019083814477916124395182747035776923944200547815903832822812892542370297116285784308763358679893620693420950881143706197945548879388300209427866188580650942542924843703689812319706691111031470326117937037208839943560276193291589950056895591820283514692455729773196774918493142450921327855394436737348340252434648893488296403724921944664534110917821422655254294174498007580207641422247645479649297313630609316187996233048249738870778397354859609094740771551441792650483690879138293412126761232800084640277924752978379080804091812998988299334594970987876934065101990408321835462461390244891894097300595516824223897590593498499328582915739414298057434461574942863023632236680546563792952977246704085181335573396150309990389710061406099377630932014398585776563322765533421307690714260737849865165657167344605898328729056855792161979916381493469255385632650721885884746225168402869085718882431677799111101297199855953711506824815327079781597265922382600470443958416208009656110242390809741653538369712169237264526226864773594612402280699312055025951697236207513123326759187535992287234336556236557795518104674697693399521007560401250449359464797955115024436087763971679063761442936743461880176808340384609583107734406169903791998795917820817457033091123185689801500553797791976127619406065508448253268162001751926507004368371509667201248431765910675312507951400817830572542766846080144799977736666683248526827924946345076244625442728704079243677443349547077326025816405657549420389994428502491887484383669102297825130475458364332922613108463900376587605488659935651271171162577169729261506181740473353505308396386780557201229252521009957754681783232154337432576639258187226113468620726987475690396679906051426718252264026949337588162142423089172584694465394906868036408422553542675971016982516880948687295882599058513544686299395059096112823375476654103212457711363950966895324196099684538613008016470795879014626275830546933095110664503787532314194979330862706462949731213256217376657268065253753475825452359268709948823917634149576900730862323563450926988637539774168506547856459946900929861174881543308855529761183460873723153549174887053905575892252860966633020729972649521607115139294560530252638280908939563525993911582916213374147270414033619464963235800357911452284570957337025458856636474522321218129849186252367270793935779363985869786396008433605068599740051999265498651635727881304231291918821662739234564223572393781406646627861215826384398366039339604201133935253898221658644651264752921239339032017383223989549171647063911646024432760044154830123542463779822994323369674985033853334420670657460146012728421945862610568596367513835954114682815047919005750886336863639280882849458904297145628102338070568377083468920429047066174583996999689431131785319539204692958250431429021023460401584624081798449311765927836394628701257864353042262745591651750573032359514679131529462240230976901520097336530042993757645869632311092833167099697452311750198368268650379228012831603811415162602513077765282289289057492688626698882840916945077408580673698065176254082759651315385236332928516101323425711170141836362816004185729073805070427374812154567437889131303385936827226395875415721452853897609014048200104451999261641592548255502949133182165661082181259528700821574216388289047095536677407329880369193956336388706839884752981126173110326324791795315312379047385478361319428867294428608372198494436526403321246287828540454721297395761143706185553394115669804619802167722224033679262202969580930717560838194783684899949821679716006406906799178273420355850362022088227744516530552141476503231691977705716190675837535891920005172171585999795696905217007765491899264160318552555400016314362316381915303896010668683572832985393245873324637076943849812290234210306417969114104871497038293699898215994676324939443263657537557297842053741845768589975144384751830316274309610757155057642980272478673597712022616614297295680019346581041610109562567115672307435546750568361263578210899452853915905782781416498537034573310171157679173567121724717172743644255778435968885535673038783110993383163169683787459893205608257348982789439389206054754104953152073804023449657679983570781677308682045338842863889403737314733643853262643976718120343727982889975639815246407581590602103489551570230133578462262579403371041643329968518260023087269241634064156628891156996780246750540853129737726538320772735236017875387224394242876775555072543027786515526619139026205154498470805836465488617838298415810241377838040063284948500745947390823937230460390264168369752482899073734316085895278040740445903677487684994674021131308675295498474576660501448692712138413728603015662353935950813560197180998242807769953546157238266294324519635950265050307942102356843669596242328858207061059286262574853463895135522151479896946506953454852617568383686487331917190515622930403503021521927347089487922511688915903188987880215649500813934112494911556917962919463631097364372665961046446345569201933001112350347672404513538233149019103211932778303880043837516535818661256825238361712563947581831405805244414732992075653449329159146891476983464853650420693957246194911628140751428599626145877219118938413882325817549147054691758092687056370729716759228311945672197489800570125563557143713793984544776938631508594107591582665795714657117742885792733259962162174184621261331774668389103331638936189592087608627182488780537858924467158237458195991084142081424181531180826763287344394192894272733224993940153472583845640838847695572931075874429985521438740924361536705227890973591643020819305847484091183250024937728282408725852738553719476037949973586342879146185518382265411316727809602206777395859130072613335335282961044018843907541834478807924059263820688648735845372930492143569515673043977538209062620449503227071921970794442208315237733868160341293358948798985459362663327587970614387538409229561415899165428226152914399204429292159350176172992242033395667169759491255253793165522142209142185629313034537720648225959537411312086349403500666717686843589684905675772754938840011468107805306244263878660159275394864238027787712750577908683007902859801539902403665366876989350591324996285072763836683178763116752233316700518579159672229952411864451823869853194221012030233808023912569992403767186084912681046031526930028655300757431072214810855395642715717825152143999883416338631167594379041166685324119997067992825363530662973436853566301040572761378354071610739430304058135388335422972618639143338250449167822558234541886735719267800023761415796772863820155252553431026261084795289704608811333010277140466218071819402477006004781496021721973807694776317887905362183587576106262676584093917890373674878126430226495101525668819427064846601630406882470606312317184190095367523957006130084401248311940361475063040772213734406858175242252028198832163883690599871751147645097137530462284749409332540254670620062424229294870805853622142683479300613761412469735105015239033714178567681981569322212970221991603097176537391943004849820889175308898730515925413935031204668826616778984428169234039953618908924006006841518440955069472497358695808016523366651041251412152686817596028016884605222982677075183642907260007855588079283778279924715311576539244859340260875327795013751951495053060710504607787974470673717578470546325564716021381916577847284009078883037877546817587636844060587606586165067952815074278441995573991682202300750694588000693558143840103524098605188128309924840215468545435948942801470004907315579444770608869727659071467250048561133882702136381588979870692375112465301501407611021208789547920892325836527318369332837651668813240839467086800381459549977341177891045572723569284447391882957434209377798877042908668110952334987680195241306975472081719479920836546681499320416720455911793409586605801510752304126115641406030719037502375926416159799312277866309738666934791730027990124807054621705932915233116049692491003146273667409652525132718979381198647961234606239731679444457081611686666550506303373588417128339957382643608199400985996575476231604339471377023395202746594154989765277058956185667806127544242233706620136058298620027903360091093134883934824399356086745719629916730416678204574952458406747726895151201813742730580124918404041942324190607665688031180575238845059677303320092052066904648067405701134621954490782670708855841159898145588190232721313160856118364059261139150208982829792808876019297498164404706332446832381427700764753101371116037351838281710890877519318964871302860791326717868781837359748265469088562062800341366546846991142097558842154561940772106842120290219418184759385853927898374209993281090496766406386209896083266795630455575382797804010144709767546360357304845253631533411839626664901228201879970037109268923584613992712623247886127134809869910115456368291467078135928053573577316420950120474531181130791694177198667022290834159379703988504534698947953332410145082248938921144896205614766358547339059589401361490980001592229315172173012568630330813484044541968465902760332200418552602450685400059618761730783310846839388815164059188196888499823974652408793700421667292339070807549474879044760759586201873049272383431078101156174032667361534970216506717657115719590335168904563297343305344533366223861539025832393733527281062339392664122690227311363801737999711597024985475566558889833452893886288722381181775480561235865718784226582368452861602172933398485779593404149697828647456344512149617633997139675390071672743063093327896181489415566846271514766945272951775012028749684768059806591404400184186023495985917492338283902342543905171176820979305147472268789159596825853234906406608117786191463894627708521152235983044001434377262537479918948334685415430951460157858821179399974673292946165306359311640379199186704892686201195498570614246429207040801424568061516537689635613118949710122237437002451641896173639015628929111843057399016968653023363314620257310502513716189791867878556455979358866487607924867370396530355597042375893131262297746742152135429899102092108951930626579609926968406898661125940858033617795344811323905973898447249284974421219867550315897624182487897861929386224379698478087837807483909406347243581645435329315200037365659259062939162964902421112191774243621726189344812064687231712500757695220497406837705484546560559113763257874390521886474671213946280930658746518046732697385821452197630680781550834245573716880653914202771456032863036720206806467300233794996465264712585284919719818744266483208841320153790602060952557600353300027378379291794032574224195036014960553728069528686192557848422943423088631913155076532540414197005269241051931578023058514968457890418399920309213383751273215816010688326666628978389089429170692177329780988201863464786684886906794053883400148831376267365071177527334689104520872512682878478465498696807957495556187163616153350842180715485773807608517263476130880241419261514082283401168606283059206769489265633314228537299452193757213694095517075942017851490364779973350985621610352655405274835444447152425117983659187855208216617108099617982642033052044496881931656936879705138090120590956947877731873418351382044255046273444155747629706987409082658356576373349092893038381113301831639849454083893474196271861495131706769209781274267621524245965693198432517912874398431450689793554657241419243542892940174074652074163255209470120823645719071765540362762054430133792278364096903532214854897419870811485754814750793050545269785452662974664750710011692588076577941086255988626042045550411580504661223148824521304440798391225092593738257184494362235337758096744551540894390996427946812718159368760247663470178063699951580842246732143820948826612937265621196657617192613633390187169738513141156335580570605235458947559994922215270976292661010118199933174117096333746299583946225291212659247929714802826483906807064224266616929438559599227767337827668550586901303190887564780646342951044318556390527479504768956539251849636105247145107159502314963046475361859299896207477142292593053193468427831315324484132587793233741213192031619036691095706277931068722523640414446050000628587216260425255431024468195635689169544388187918668933385882548253636200902954723946317598362314582288275011795343544730555664353548874365811725605849324983882715265723879335693230250818513635180252705349321158753648596372499039350444796423250182479745910456711276371447598534436201460909851936844299164663990862001939338586926822686513417060103959653481337938601004551595584857114012395558866137112353612064191311076251372771986024398902698114034282567103273274465895272896147853884107873096047201539681258122275507099299127530509154625977279351464861386701480591890520978101504307175853986987571204989955590299741487441203661881979002890933477166297705782607204192031429442323623945094471047238588015225882012228921936798424852244633127917870210982759512165100334141092640853004357550949264508600171791388936062854113728928879621984560606420296684982512606035839017463124172726372890769287495580598816225244263154703215237266145122397012466488430647919479932291744097617768523807164141296203476222702521867856616740659855271996726297517816351141071529960785695944293398209966441106005275024327232277593144814305248862962372427723924828100962441998097894556428868121094691489115561911824016154928718311877746287635697744400360091116335001766609999225732478835394383041775354234287255767799813030644654475757387964366556294173792742561728397683232337452710081436086589881263171009249914285728605409896124618637465942173044062398592778646851058575966671279263674719171629878721327264415772324952087194357351127047677121149440768827337262831744185583268743433276570963623220599009457798976588288849702810299077189546414609415787525839634450098371490156156270072661980132885287468014675816504769684040193127177298038027403302513349653520264037581336008767771532582415760751624690966525523020916592156910766954435871372558671303463327701985591465062600062204508912245940219151439645691890138061992343042672846090534343822564112852970984831591700822887273881614053929029150491225753816332889049418832340889241320157030216345894875819951865609825384062705102311252444658649399487275631411252286248936836511892391421396228825596865789360092334194578863324246491743443216495798179616953860700542328775026361052090241052246492020121144314555952016801005557030283740555063003116881015904324093682446352519983861138242227581749062967857662132260020150965002678794109294204584426453647132668993418987937838604829841425136300262827346960868528560181227535441914924982607267020681738803037848744148659713690163211926212809269208213335923227050373872101104620681014889367242081863668039905781052420036447080017106546569391933714410962866601009857128026225154031204661891373677535328365266646735359431663653597307130744935876924584869551266237007932928388873337362688739545816214667039923964566000902151070949582437831217677125382745266741938496642635257336592052895075940048492372426801175273058899226397830392665315931212332690285306975382650239070170643172581805068972429278865217893402719034652887128473659568650412474095850760353815830048679191182247826641003489120601505190902848888943148799467411038755460717327944169529767506011338698432716786658897533151266538517559221010754175314675649674831784245957815016796906470399969295370278927465611486886633158477464884304905841409541783643001392842966314591091174581635042726103548863583752331647888589061129564287770332333287460765682408943818178503652626007189183082989239448336156438210868678303965530151139929521465473550890633180215548764555839541693299714808029083353270690118629695942956049530718050786945462677742004211566423212625342399043656623822038563453157628941619135367493486932475638193815471202024486605883921148799593641169530427700455892088782756078120827910358374868186953619974049412868841544732851542512262595068455635746872199990671500526728443576813939139575840399230559473158877703663864977851155275691985816481249436227631581999109118195992018895312880098170007542779604081437797559581569890271632021589712948677698909960445666987129574646023257267557002304808206458675912227066290957241041931681280211582625229881749322277177967007402356469200903273026207984748013683483976807017508696989763559730498334836916964469681835394957924713542836664584127138987290155070193612904276418861915047971388823860285283125378271951972339266449696684007366940340291015640225806624146688865821626855745363031923795742693182578384090817369609108012388212231125504956691980398612465313221245421985320981682523782232501586040377632940699642856978688326895272902091623304833249858868045399198865305452034048694276943394805834561847786330058086859257162498990199916513373480432959119047044338624731170762703437033307429676272228657666861874474353004938761660081126726294946761479550716052628994906916656877882618407056883580723416514424238930307562863898190162565040573994631774532125249922275171460639513750787244171154672210994089433848990185106611819397034317090796410386720792118978253361374855916511964257179578026672915195396978530065077757464200126217132066595277602444478388837533081240442849592449238158094204711161805356710058323068269818299725019964129792464162792758531961064725805067064312206902051024854118942642149543044418033644889724756147254707447864245423926243282790987193987182486298152717901105913638483064515078834257612550219934433678683582909702399331241176135157121386866745965433447984680290480998819042521919704706677281983047227817292094731678740038813592304100704993894870406251344378648411390097886781108171410211608736181450909012464410953865399737638576012175603924350076687644466788148703357774850204170481992517023051485606592472798660723015492855484898766914987384523913616158756999193122118060007100894700050741363372759440864234861784364080764996864308555552452612819011548264894680356123713822591149902885441340924448728648318405022063145186651900404034634787099398511133183741998769567088609710913844896731884019317434397517221068711826070981736114352794563321632538803127480167987926130663196905092794574221871694134872150355991369678856260883190407284762908964538890149040337338220359306190795180242276939084937478110293153901989899845256786067188261096771462448888015914616635511601031865718796150826231280457195817476165625113635400962254587263339811560709216509876490278262264747500286614594156430272725059144126706294028933762840171245916550313288939677294360452337166606284166228784205600594598535507189510447245839948181949283338868794306079347154155061042017744041625260937171901705481193335783621761207701841302527016503417492539024801265025132477238291146066204307363298218522371791251359945460949232770315902084045464392695797812833812053513087091841585652527908444861588920940835096779721720453485701266707232220364569695343404855341075759151184427932162709293928279071630066717902869898004002808270929379874929279647217439955890107258773576008527278642582101784023990312468377783379147532263754537278013937733299756573210945740057825633353633835586315364340332573606788636782746306167191991495662831162062817345831598111169517364272042971478684665710083512488753229708937545217652910233939436866451297097110814697568390843390041500050864251535207811923256629273423447549167195016821545863080108496544229594781726669861444752465656712450985743229967941672493576750100825316601988378708729816062098396719046186021837562396225445667042369798720358438237064469651309245509667053607115870794534450382252809056464064098260556410503202992592569342076580455773699738978791004310464267383198227093021688154045206726208756819886303771126889750909725920774215691466552452102483128630154780914245060492288327838823817721772742232489706321068054424272681751214008461951221008679975009958686129322559410828109734000366555628749774755159929982030107331088571027767776048291659906333275512398271564582472458858084182401922798159998029747591879090725299786591559255762345127095274606557872392872730465460256937599836746391342735138968240310073774735134070463616809176909877910838942366950172174552376682702249447977811020199828510465142607761906387321962109111885141349510068386226219293808769760356357315921269291537377613494466466428157844036478332729983017131786902582491876372497025292782701665900134199445802880769257988916284922397839500531807824817871382935814665674848129516406842132640045588390051648787127911281353687672225336410888393385103533178235176075350990095723234034724479785096088252959316929147053641208887584222090120136576917168613684223255767434480636570705432471049255838010544462232242786858183720253232217268928817145771805531917528964756210365437748063419745427173332596027913842595810240550255202546667251157335209142774608303209825428347963795917835244292664791829679184267975103659735031958939431130337631081834513885987630834085829409489631648092003510049028205682166793758482621038387561829936895504687834603604501226260049457389566534731222753415628227353568316490984257495169728980070204008536355860166017087278623313894448551151481436632327157175386470346761140794966342144249196417985087737530532179767622578933449669185719082234533009189832127520994360049399352529074033956060867252852658033426100926109348657008584458135647302223758659957497848198264064452396060294273272244628568508872922720417883341274900167018650172081911350704307679582064205474126474465308360396007655237184371709304551414739171539609033349395288926238637604503615505858795888267280984705041478551177441848293084688057006847028960405409388822275163544619114111596088145982197798474241909464851630161846100398098217730010056065233180137795709697591193172988089749655538864950144684035779929040190818605812874978182076629598877144128065596238484129896674689607241357152921466957287769182411611000124881028880508090306351962141554212295251277426290088143328099015460984513724989967371303754260567156617063222641361140656028401638315911248268258258505049469991516673593392818823759057113642525427888882426127597407670369445101902568873189866297867295464847958734746139222121050189831370777816781325248669072394042759377380469913551456931873364640849411115056217306685743890292914696915298969412848855120588065478295461696544461221542315543213228797645383807004476934225062920612613803936002219181443998065017768632732749454603869283364138942199950220175148283634370445791141276253457999198866550095271343874168096446119871741662428308956252245149084137808274358899800143543461725780908654231677466200160894745822563891060734744824959745659567779972563516063875037567880985198021497931329268386993255048906514981174477541548560277246452176578528020398533983506328152378906748989112049471884262467355122383442156009108702521180062816967940413360596706425160220980514743152749494626631381333660082649753962304982004671420842559188564996482838067914073566294445709484797938987287829782861416370046355654303654641242099316451905684067396797864097070105407867824978549898332576581698154616693773353665334452922507747545897112930096832013866063041645637056610073560279794414514902376827617951592082583589062140402987315185145293445861398536730677336665445237236095743913723415980047580263422148880767600520242842530466804225396368224380282935060173355799996039476918188636350061840072454340874650898571288278227218833407255153607319598558392491171452202059862426707639508950959794011435567519909299143536704277317026247313730352460291137806255041921135691288764348463616906765633430418583388274217146081602068557807944445062922518441968966290587088772684316755506653534320797952929563685349217037209266478891765955631837702228328713939297305100252441586084166254330874709790260607265153090585322225697662155303485217578035229408564520149807516515605231550144211779374286722891773839886068605301556428912688860471950946141561243400963014208290210286460802349321583739640778550355094940570085688533411178678172597286065667312922006942838922336542091564864981492949302731911873368906102542526085258655337472339953884831742289391514200258926121666587000106629159706854194300947808444672457123324072210120174675648856420780142884975637331464254221401213442386656627678481905973599821502899097579600214101343156739390677998020288454033158829977843636309279093749746913752817825095189242765780291013771427475677828239432114453613508154171723280890809948884561073094773703238268059703069385983309995783937059217972410573035233899491148425272039039622720942714163523975990001568686221617170535647567412975750498958652775439433679222309712428696428798946081134571523732764690687799734555674755766247676567575388968693108835877360592844719965163053399443087399876853202118322105961897675409775848932368147159594416461108556800859634742143854561741008623088303277233457563673619856169327614878538199428231853396436490355567316682608166040809627387599853367670632674007104586066546125937557015934753688454671087454365358218153255883906470237569843129907752526630070868461554089944165719975447657005255597634510985585099130190221116913219988328696040347531709630661890770950460842279581074322740136877065573368723680393415078732533705678313488760825880421660367066617556030838317434996764225873820012612129259490752586504715711712148074104248957412606274905938287940619401840540769413852490839741197526313239339154563623848025382677510508335954802730715634202779139589273806294521113132696617724550527990511857848700128230307560424168979943064987488975698762224455722913519540674883594369899819690087995503322174453810889085101098275542526506120756843483638021038568901309780290904930798195197589685522703698131235857240092035175952789283109985845005552306914405867661504467275812854491352506584874152192538811650211592704521371558245556737833915955211839896971102266907159209932576664615245125510060839666744387185486469635469302428642670166152426516095982351137909407709349320215950013271889639245296294686998971489024526915857905512636258259451298761537061385368918696575842005486318099247139904112202521493227853575237210566604297018801594861375118978660605284098062379971738855856944470208766055995790953460921502808189597538603732563094327660687519370224577131751571541386072168013881742856304057568371180008696014955837073865361902246901999098040453353000635294284997235395203895494626008864963185805584570817097566117855650434051063839205553589229184245125943488958379910708386520591292221156992551018420309103318032683794213854408939649745812868223802900232339631292226182754937504640715716744467682781341751344158843964124644298645323402338279849212966388108987474946853837078244287696077326919181697617544506546403856422089550620494526979544312732421460576663506677917144155605389475963874653753803618102372765003714361336696975506090678174524245067979370514014081512630305804556349105295587611190569083339661576427759878519833544130318300716691768483121493339283934424150054289238184976044727608196139122131709937274004275336878569203797502600072682974844817090918975900710278776545611065265686882859670692813392246754570404387164418866985936181300877752173042840993594708141755157338687058724011761559033153432679445027160885834487123495365796959378898654559850867017147694211075695283261321546487874863916684929763216939817408728815331903264017689104205896826926404083637102456965501463262360963643345174911966742833447097376718202375215547204254687763866609515082289380073136321462023917345348557116959602645953715903730646854327405492166747294158683806007028532085401603392328670752006772517942802110873011966096180261301473611902589920056754038957655751390985638517755881141630536462258043350457831224762815987910164367079598831037529371906271404464560066925862196624968091727164444254286895178839123509983889670564714747044229113633036643557229717187028643469728052860879557074431492383492517409441531523567432825795121905055986663043874887406860808598163533345284630433717017240000357937529358660413812841502113598618416835714785434200233468578471490783212697122001923401910926795553604642415168881673980239514837698278285047544468982510283568091480262203515578959096115574672383067630088014866556145295498042260792084055153028236830758592748465529905469241158457746319317997283998037767339225487499582853959829320048006217633613824514470259484337286464116798101999844792145964181686781546591231167663657183705187495777383764014259453467404423188351380857360233539278551629020606424426208195457305927830639980820872171077855889027175718966218796499127645339509429630112780001070167228023923873051487884032652510271094838406588305015915347893364910220067672919712516179436807386717765235982541898745723704846610914664496000886982965571253465130391070893475983706505985950163026328664908580887459490668432312425476080972577057828288772053431918522974670437032943955436817482156439224591626983582511506472287578123702475152856977273089634140117654677323341455613978265552972525764842293433967247835161965368569212188546666359025734131261259399954329368019584185138731635428474924723170713640843571676361372918102508306776040613053914520217084893924702675653997508400681721745495406370628656978534122800983365550578384916806566435480581852892369693775879293756821261280711496329922965795198058339633352966509553198155500772513499694495335579456984635173539650784720147552597957278183288221746371221876491769025506953998679338368552696464052020971658352729208823929655700080913041101862906554454938600922665235559156100841380755144099381488192653918665252854811868118133218576175668637339637340396507433413314182674214389392863435364338198712516238821044029505964156001981938502575954434284493228716268824577583868414866514761180894803196442521076724780875556933374176826269600977905299957042108858894025972277845588136756542257331239289385108443529174346258025263758936086674923316951799961967035947813836178490570853018728543644985036519912341163382597417379414224471901281950852949010364107853845020574899268333760193168650140076719705649194579852960081318591222153574541513849265109961004631743798478442855963392671345235464252245487674373942406047199458238462823730996458907146970980945490242768518647770613102682626369347842554965420420782550952904766978207115601328401068021357504034950087100198293982195579885729272695729717923014379111116387204100755568067783742003247055590568620510122682602523941620020085520052336394112026734883844320440203614320534409927308480470246761747902123044422028927087983640167253203661108285722840175882076169306758028540818606664604727960254338630687499804355292796316779028227761272402854906924831088507793961770431427884473060034257479774939674738352006939466267801557676904443254354794698974169415415783316049341911221470558741586840698704813428576146770733986037513543786032499260416705771680895466564747879131576918790084576353292813581725517790020735671892585891063632538847946021872516432027683001432754392876191628408942224860356295180519797695894906560773467881892390760508599873002302387909030562918109391701060394251734606232708943783745315235168875661914154704705104637143210528316300002460927693479528443980208394080207372071995199680761875171545969405041243149933699032894644994770297371334672557291993891068022075506602803437543962062686516441487852608796771934123511510544713162105119344330176313195968484797360255797133531300350010852784468920171456339711116794392807086872905758829225437824920959652472597949920000733566981594644848746276551587397420241988811710516913734472889552118581489917760276211728615048367182467750673502245335838821659867527132743086541991216104824593866427447028970875355102848941885756702396762084510057123653776603935486970988824017611639370858588433458611229246952018601846999076777066609021740074672312640932186271356436215482562632555191224620530275316434228350527984305244782555398957851122853105243986451324921789986065546337571902047482929866618128477796638266008731951804181679487210781111675073908399381501753215084420253307385921373570174293974555662841547256153507103590980936592171663674009947783480415416977161597674265157977806769678980836350384825000411431156749264003210695917899594650633370275144937853483914418273772050788418978117592868244270707236725014057283660397850337567135847567427025019045346945901962806009802210302586755773706466427172795744460146429914973234032603946254946515674401944660951426043763335316516929978150843986136096430610561459034548340452053890274709823879584382968995812058658907549800507514158903525522838132556224131267922148211871334769643369664977427654574025915378495933849803928027084246224755974041466693492305803085426652929556644238390802062301269741974817334130720023741501240153543946782641910013998106392681584851644718482304217531957040746716193749791804582853065473636493823518411750161643307581514010004326549695156490156703148367841618352242744329886269545902559259085477499480986953674922993684824590949163443135646502685629697858616669940450105655508289661243042607131315598473483265171855132261442704948684237558897358186769418466424208996562981298456074014666363877881120700299249768768897325759865179933136739582361503153308838240831453858467029881099725969115151929150934892867298688306557826522834577435100866269620681373942688950838252103359622820459073467989071984200619719537245272069674339522216286446074588535310569072674067140756745958390797409172983120731476724729869497974166637506198846397931247156576387860782940616953752486863513405961198151706866545775868665148673943252229206324916605344388531754406213035890647572269460218084372005007833437807322405472933354175123555726763639458774764078025151745730599998292252103813486759780429835372783847466858098151255483919243122476337121006373939502844732694356687703653852281176334938869556759067950097681868172427983592602327283038678882654546248952865345715815912740693176230511323017682484878688236444046765759081440738598263002346343548326518221272207354243130731529649929066088474771860992224760043108094542508566537016022734793537662164583045603951631705197998406311288031005885918092972662682536195837433939562357427429971236010458164507281142303207534895105970489526987347734460746212646624301074558054900067112256842085576574263104024629974542893305900861217603946758805582918750785617744038787321813218176404268122528070808352648020299180749469011937694105825406327286278050849923475139488907437988124606655160570325856359036863561548072960293531692618466924102994335914278369038936677684906264117492690218414785137813373156308924375326800974604504483569077069759311801948982253465833854175590126580292061583044701989104572170936732042652202999547741961414894305052298875734832790637318872732701920200368536629616292412224979161456596695993854172397901695640662325227338804662788119683547611274339794809564651596329440793145692011591522142360455827902247998151889079604776970747450478586738094456459085627704852343311606746271418165583677559463331348873977762850682059118091007758513054639857123884689066382035058087320288607224157713152637290399377312887711356707484191898529540486415620882500259045744576837343726991068301788572143408714808588943004815963200128743171263855673537166300653764340534924479481239558169162416149317275927230534248922737647906895720901334866877208333430742437873776438752732987560599410961877873648173296365333520173787973756092304951638288073777723798517892492125069075173173928648278031395562639996737257477738060894111064774644370215553412785834569956770867345275501350131250844710271809377195461334928224938027516230102052120183050809175863977697030120826917872253336959126134680779841434674887837135697127022792137183619714269728008101134207925582652708159994244570301762189788274213624984077706085882752409463364111350004391704652345100062327820906294887206983962785266872246307823738999750942741144049890032585375440498835354449108918716211046225939183843994771023657068365040106265679660696204566573920539624850705101730106259332751397848314260312178115650569295865794873545980516471749119603285527493202112829392577797789146317874399751398278779491969520034662276500234991973596313473383003638773675706788227488044127565480198153204191247585785530830848242644092291571537388397869864945563433192043900993843312926731248393095880551841305148883274830863168571070100748000522239758106271296881977202600034574005569713971982177211549421406631509666518228399957870255654722343908317564610482037995851968246289690422624958375035598216567182962904388885226312599549401212417697918615423684331268266334563050129656761949778240657655817909775941479433102228759608347604461869339351458639488557836338754625301041196186249917447567421311129553930121832667008621930152963322756014784321432074972542506736268120781441599425101733668004973903343144713730794065484232860372321073662763159415444116394244029301685706397086521839479765692979230081839477362657747843540048459122851421825937800525839504490902262435830159592738241205839299655459435204933524451568474064264614540629429231943477196571514187675920513615229721824452029726275898666284925191337817435391892714932994286836232727119515239832884997429743063957422512845369997190472292180836893157266079940616266658442918403944307045706798325953895602387773890937255308929534668590222071918523381930227143886017767512625582388222830520362603196124220568517434046689172925515118451750661887043469748472154925456338198067773783464999712354453726014173795441948368531643270474575597853148804140231214774922277970438045553765582920760281377099184462208810290530316145683752539397331383903780227747538882646916827441572424606943332891250133525334568329210384728242412909140226777791308545335400095904252267639083363989619576200909145904053116392901500327992815408798277140364046966572609475592882343559298761476307816292007614382544035752166493775616371801429967275367840963974718076531910251183575975579086809123757734791801113865609833996165703242295219385787700712112253536107440281915808888579182989010034317536382336866192154020682371470035640836117509769665481735107838368260650530262376581894075526013432475271240315325977992215896665092974742452362925311271398536379279285172599266495267046017372391696567537282566466182106825103466185834335314465883736033306360947141223527112126975159104040230847106177767272562440083702145242507755355616361987893493198715799868662411855157618650145312125736277182088561391758746684636512309079279027908475882772514977615503330697106154551952747638579778151472740840601390500444929691199513277664512457232249281237514972809149148437788382234285540900272238491602002014472519426991443816581529868771659221046372867358796998272644005123793761132807609463815595262819460234155245834363058757495768940242948421448567808523263768719440656757583294381229173003261130866083967819541441967969434113621059982644267700172918925247145082008619386111680609856793461167634305538911693500435963092381857099589357361150997553800769723931092065914683986505438454895710708755162703036984983971996816245830528009984762790528134016650715458343480848354891023955763729286153630838520323478413566193658815958604311032959556144744511722630988630449000849641624872611157910773594802973023323168799002217876293875289583424998256245047516614895500411423307596707224072782955451961118422118974347030550271424035794850194702083548934674194225317557997624099093256225233039226139179126897881742748670254227337817305365758202219799086569419454133259432552138134015751485962939718984038673504680962249117685855657577830084820190660246860390734025945883904153865117707572270021274172408097750205182560779616593478336715069127513679685454514868293150877692707180782655314484846484106951064493806306980334476778323986082494988598365750123474087673388122751524692647044285703544919482842334802044533475442043482119417984029920755212317861913058719642620504891636801800019300138176051658379908304093381868851858490631795689846784486429993710244918008796760411859512711559218751775381405992725460981227523848157437845418879763214804310966942802626561235090161753688198007511623863506751343847395844631850891333299995034169143887019752636275651269120867392162691863101223197275126422432027005614555609500642098804228490634892322614493894884976220038475789692197407522539075721603766411779169342409985645609367703080337396477468051810820240648789861213774642856506863913611759286628989706760401884894536281097791336378589463778701615977841942828999113689105091669369665861728622083529945208232765189490538286338738170509618524977606822660810721057119566990906468270564610594412506846491863655290734999518802226851874903355846932269202756235827846934690140638493648623069939856932332978309334468114533243566524200791810077842175019954424018536112818503799411794996378477791969624316890667078089558224287511471645700106196341527786854555983617410996058541807703133949413089667997177292290136983217401953227555414086768809712116957846401821396737201160211707733829455788640985147359556327093935322572715800965072629910375265235050465434387857591339803414250002063460175436082184389136883409748550356952022989479862313844268520248886918847515629615026242717823813128659572580756890993106025217986520412466676957488202231501265384163594179924397271604781774502500282991020092836528737393766378552330841524093454810031871895453141453957258982158525233488733602463117027283552452144374888204699909255490228793011797971895166243327416691201067774812195325932814713325522777818032514294928247530004526521150285864425412605279599296519717615505015200839937272715582392870556564673964322370452139107300227379721238254016184480027869082438884681984753895847152681942116954664572535881664659879246905937147944249273445275518685503603468084923861878267989108436102221784698841327580613346733358967566366831080768285730734452699955447112939028809947852141976320884058340625116778186195148296273052025901717280178163588064974638446708053802516081865249487227846433744973881268854843590599548578499732361345783292520651236958897735164031001604414331723595318399869648875675224401170201751249218267620045662197380673866463064075023801138437451050580311493671967256648739151476109724592784132897364255506870023621956471991594917744449815792887330266482309894744096480729785798653402123228408816605187129892128841383185922611689637581193972882125658550848887819780006809619673239719379053585597580553415604630614864707841701366530837554320449483408345306578378283844248312687924231415032713918208386253956254236466753336526973994298351227403361840152520384095179082554700380839217533955394124935271068091917210181161408503898322249486713398772114316827677197995600402862231881225419717749458779592350634736073134491750042107561563623760949685925904347121178712698009267387781231808971124479791913477867173960262838558437614566757145477075473508003635163559858744498428454869207050544616952389613321577565744159344209427737731664484892751018986262999489979102243909492644890123507546266369688456886557676747161906464167587144102739562861125065110161363760480892628937993206624398946692671980668549251770089720407877477359037547938585327796124775228933132596816200378456011818464364113940185633249589915338123500918485544664638203007566260585095724417180497591208295110021298265505610061715120971665804424085807816264911229926871485293063777068535994585864600568284131635168545427372784013315718485935572380076169510893269174933652026731585429609001566429973289272587521050202149272145010369599103498926691422020282127627330894818021827551303779411628146011783212263459094126483666213643814633398473356089333929286258574277810616785136490055282782279748335168385058166845319155559916161912216964364422381939563240237316469008660258795727934684074195027704524963824575962378720912222960909903960595864866807011107486830173261155836807167960047240958703982024263769995462031552846291746931966644805971918559177206486539671064045863170193769632045735355836201787126653685580644202604201005504949181019143421728169830372455242755669270907062663274132736741643514863913078130665907372197634433329738301746362714430849275679673194680604373082443027974198048865447481794558730866671510569458456861465767780589805503085176903421899239632215632272929277978599360652354357010631855430395521147734250184310007839859340093104230764692258866265605209806742873020032172541197665610449007566735599363327793731668244661616532804779442854238567249789946711428479600004029278858242952693795210611823393142604509050468906143935964353692534863796202682987176115240180493275785136678324981647540676017358741731081614955107238370312296945025013773155580209731664265520191803359021712942484153255094852761665305474919707770904812719575598095974708176390746874538333283496610796792229187831006929108208245717692603513896031959596217981154376024830372487231377056256111230920248095293400124014362338526948279574759415376034589066872020732202606512822865282548480888264693260276879126188459332299781020449187761777373451068112352224249402200010546552580271964893107765769438082504732090360836209504199473843725302201311803387707543491854066671193221103536386323793955716056833171672473317715489541009369000775583651337249298635314572699886259200181804429339518853602628781540995984124812152094954667874566272026684889027403100523039449102437862997032282586194167146706656458930540263416068385625561944190741315665378561691407205185983218446937405634202385600083047883838335745966082697878274779902993147135388040348649157996035429895565847103698225005260175689377946983609102922157356135612781014352143871516868872925621197929657466975547377615363054520672652290070378319926624646765337845316751194954747718721615865186333460776955418326968011286346056376415057184485323191235246034321172428475111564623681032877727373405680789953588722747228639277212419923006167642234953783088085509687314973375918739517168880521703745272644936414226607193436833560453590473602331968222439483749208958838045249934566056405704280590147776079247719999077794692361103240602814794575251103462215553800231083497230621260157069937183078242022161387600573347623466793684156843267220703272708099191707442500653217771442681738816649775771642400086710409351121687869684943864914550570958694806357317884202696391883033222646896239552323934292687058680002645049540006277897001645227268750240485560749430893250192528958772709000257071350851424184710725095423599814824183903086995659501281395492143992980911717139959860703857766043153483315744935488611466694413343291441131308522188453379684103715738416673489374397970712777323087554158444343692028460730023328080339206686922426986323490343395389291674030503947909441899587133120965848825271755780898561872948261177112879999175945478229031511634290488378641428353712450628428733097469772136338070241000566850527245241890125019520981989757427074498423347499787416327978074032186800470213360641509432569545378634057126459749946302890427822117971658154682385247931574484726402826293640334884538719962349861444911363313982655483246680550697679923562035712229175100406939821297644970801001508113145871206909227349508886220554260055505595296469504000768252539709181779383031757561899278543472264295886741543091931820205880799321359548662200462782926231366410434026664253395114258738702729818256523279179054577992150452284803444436013913300301454397341561170534622813512922470327132873450517389763837493376676243651588554108045402221885942457116557616435637226948919964953866308961327465485912149740886976181813242328224786753311342314446189633242227099800143148790760574466980288332965063378992293993127664381321425213577105982892760070118153049035171474303233755949442602964310373163368488155488234855881615490710350466129770680829609041442166393396348638750472963198952940804759406415562007662850528084250773498194510111607333342119182188762600182891392977665400333347958078202556529994159654926350526313177060414150116318665592103190897561438469152148179819783058549120764923152716217605229230317683159537678879456030212272382333927489844616030921824034246121109451607996915757372312188206752271925695631849157561621372279311584863790164366775877796438037528140301773075591138429480364600703937593649458548705122570921637325008348957514415128987380914929916624516231008256172235989634793596561478931656279313354025093731756765940338882911264885040443057577792761107117886062389303715845826432598889198662361045482487763025941144198284453783733110204900075477987401730654623117499988655357053629745790317625883024747856406114886420097394700606478085880609663683930043837623301180183780152887478120209280437352705479643639049134371676661871060450730651531353062849282122139956939994798248141171217746749447381468932436424560230826777247407346415020873051665862309703493330848363700507594660837326433271501460978070153249656048132591673147581721454757417713920047956348013246331617391341599239779725703140720229994958877577794249308550375668136835958956481869815619939120298963933147205756046448674379046292368680197104268401394458880447851091565894306359107901730035358165114340411863042709776991920311328180874211066675691086949459316899203569948340256472357688230632032067139740289963273593516433758864679841105589314231962400250705125908326807448239361819895736995841526409119812089516008088616756642854620160260254095528563263581765514089799075310981731062056513179442286567710908329180174680266056815549145115918013755354692493695619200781979349081166946176869331451862330105092596490905955204791851277064796016288695498899117486599737560585964147669408383110103360473148084608671142720920715213503838585626941730530781495111860120169698160227972320391043910217604076548953002233655703170321148916581005228180898380629385672728777875556131139150642385688201710738741906489863274177541363812640763969820381442919577829035009490014649407753990451429573425829990119409232309487776755073860891998080519042467190352034204848347824605971546465107340217111194442838096943767697438937646334571411110517682545529967817364455869942356747706784015201225855753739307574677789742812295278621771857145328004111356697985136677766358363254344712093634569551520038156696588898439080860022024832789367636856298026637311385358564631474358760393971413698706298170589932682878343415374351087577856600577412050549263973353602851226358673757075756841672648926646403418758600411849285191957202861553876448814793733608890933900047512999860560282206256428878268420507030512176929880537399826726103518905012106072040819167955087303012779566879880917591675926163928095160201099347265900738368968702671376292774761794516601838217621659810103409088251958157977211274587923210015829393288849899843892256908421390846955122237849169153775209959958468030726368283400586528010729294339538299396583451121214897228564706229746051223021271912668284357094302650628888475850318065961726841067069045640345556418864129924859875814742103662761356513878589174370717282863552573536084486449879787083510315265048262917367672614767763035415618053653616734560456674230934389525477325097688010887970932916911361968179794402801368621147868549523357681967988506338295334255530092715773919664625434918860234616990920310203572100455852599881170403821830312017320700402693843733453277062980356238924058125137878752184841817760234016127230704719481400100642923929512606155046250495804568471900188933067301885237925827441110546382297243524410170803968524680064817001269323803250466433613143798374809364867451763686844723306176804393456886096915102572509423235803461990719824640867207494758722899400145243570904737165948218692146656584163329907729562775203353532555710263250502833041581632120910951433156372486552421662952320763757583181716971122615431824927615471233636458215481432176835176785484197389768727556114101208151552954429136115021790986971102812990887061941286858303302426083608403502511035410807378489733986648293470251278560045011235542149023470683325158968963323161798581467276316051520419454660095375748791855327318270981994826258160582254050307980290962331095833254039306305838935082815845706094581467154273817442342011052388241973852455660828099799456102106837013159291827434265237837249050372464628384166676116448239891665322212417012423949781562703790111400216803904348017399505444530756587636105099457187855502253962565109219202265893234254711649721105306179154903783356353195694360349282976992693119977102821388201264702173789585816197141781885844739768574094600092158767243927948613618393954570639755020457703235632114226185814697507310071779630366123562968393588376479355187543811302826033502977749308091716045985515909801654649231242142597852926183398461944526152098286404738004450980290102676468691521018294918707047772741069066175160116514689237926344555244726892618356994773125986038262870727478506739255273530553578728867083286802793628082116372623829531341059861889550785722488635926944159590324283164138756799957768377482569281696756663958213613788801540557900428995973242585826589656688161650493668617029819393318283341475160439993982607618593190973366902095148054928177468874323520804187135842617660005350496717214438214686568491881086161443722187419659113517687028333663673037387943410335802738862630889298640216037912993325992711427220897320244626983595909033438006248989956040531085289441150054835352674196208373882348678896556913302078433844699633722355298194560978461649332523084031950174857545562123717991518433966259345748044699726244588963773163896097696791921122348370464740847000731176056674496482557131394355484448804149127511705349664824870630498564242210011444574682500243317646247875491387811061247101235060644058950882271809646970732151142663704975953990351424623572664572400585625588268480996758283540872921623070136099229152783887792014301706903745093756614209251609573845402785491630221372955079957371143504434532539699418379095110182694643302435313933576106761873022719534844718916458176846519399695287283532706965927728665643499261895758499838608779263245940603517183066772418366676781599785364510723273459578928740926945084556437087333676286318055480519209870597160285358489912850416702527868209933091998300721598702656900588504690263231071845707254573238596101379928790235932612409238003728197775491857931937381900694209997161906912262816003244550403299093315355779248236792507218389042687230433744763293243623104479565824387247535439425252210668008487697507454584773130659395171080245965211952514838796223925889329314992510893179465048308766245877489030302390201690527210344921417502127987402080372576774665503144895481350633804024629770615009905907034176635343705273736085033646679391975981957957002188883260799134752938721944665992368806133626076136355024829668057692580365512403422894163484620917612942742205900343212127861645493795886606106686445116589355602861918097076439604705893770560129279835810069824886075441268034458842813327325807763118450181709143948483391065419966085619673151262157242453924087944318722982161159892990719591743262672200178576727914418770624917489898062504956234149728172350702222135085627872954527520722571069120385024887823498143119071311614943941805096359000859931426323984249330111245914228643134646894731088982183329660719041796143154556118617196572992023413224258277375526178237261843158886450082020850766295555877070888027544986740102849044043016862613959999096941384683252797452493103034516111993778832812598729843475127898063466714209960513664378654034932700323945577164430592318848221284365668614056064295687648054046878841628312427549899967418621414850060124586765650847306258746208964212701106612320709634278874835489766409174490066695867065585469445737835868225182172558986115202741461032015392536130020143597688950627604174743791518121725770281416708284315528580569039968152223782276457524290708572286628588361698242672964463694182176870447392280195710305592321933156319056714100198713277214152326750788143957297383900040544123197407244230832184023992986941586400429319224008725057450377110122790298421685392057089616257122896580605989805947639137424096164212277664198989405846803191154221113967855531235828860598335824525950136454545236542041683676051919834281426147920207986974880213422588843195131770175658483139485735672834898902379286334342580309951200873604783365735341497198954101142815706803002898849903314313324034011694495886522955525994427133078059999022893024699390908082182964063656704159704546186574532969228578236617746098755606119662002088604753606256894756360048534356142863062667501365781776048706930264371134977350301157698515294710110920256883705301053972974000195451735597582716330267744019612067603812179829568762520158478393475437281181959232292550073273592245497605784565645824225400169772185003775727349174310304967243350704060614761486700515183931482460227126901628082398244088266904505376576912759456260568155214695100545799122987632915510441072269605628195027241055533045011441133269762748988638114924131054337544291534673440920833783975660200132568591877802640735466514201303769319366635855050315030606424824050993046825480111893198632470673627858944733725205201262136076818257657969597432912781152652000990712033133395726515731657973703195437959243100292213747237851780936351347850447684021327646969063893249392200155516058865912402269417138961817484857224085952231617927868964432298972250289137475698790927568774919399109545155664343304601106733330508997143171901743303511444328466564111958544869781893359926555345320926507977768129661115197932020371268138995939701687937839016412184487991738679706916360017864925262480573061140689615313055562621019733467270951529776953584458663563166731016440017189076217486708799834766557600555581093837417451997957727385666936201511066137004297935310016033489702959750505628803293807529436481734471573920014719309366606224148921100226443865965004967146870066191440980355879950783452474544918406253378230356683902271892732530124586287533460595449032454347385809899201396282312402095224199318725924225405797187026342258783950049877520137901395100967834761525296363877156716147795378784869512237535089301027546573476929975273235803572061861527104000802372570169657487489364584789129306283750776890117638040904615778536620377854529103296775436004879018978461903768731739512775872094951738082811186042329986486471465487371701299147173059904351914352094114390117042137810515896930580665090279130333269366408557484854965033273339828968507271920232389445510086798782833556984367500747879768307022680741237453694077603408193727439496607882459801170632358419678921381937010075336723034360478312410337477508685756233251926412733814020663126786950807418717462591375471745624278418466308028598540232712783678388437956465405574683581452479146912435182902584566085324179896920045788210503209519198613573078499974655474435938038964312162344023991715898041839269979420905749624082214826548376563665677556947076523605283710253823721109693285458261423046067164553150220460441889339688116797248422982909912464229251478603585313855086530665529411468113908967089539395326726637497357302007560046296403996514101862292711282165776336951037633556261709082372379331333755760445730835166903716547616078570763058769031506479551966258816384788544944052344019841769236828658120959995166656709634485453229649590784906000296843137534681132971120405384489268839085964489898605949878432112647764321588410933466742924583707747588624242927810747028170784117450065774996594952096547379727778191872434402456504504687283489358331089076085931183986979244609613288237339050849304054041584394153808694840305615204810499456464914559379909698366979743015709519776005822830081212650102144047259767697675955406795248268719234730304620087107590588002275901827456829554172430781080711665499978094055460843162582464628479430625897005737941416827595401789410209283154328427362703968816829423902643024503404028032093373509557708885842695879754012680742253362799278269196623151286437626245806200501721766307356947083269101180107051060689907994540922410007441168696905694593772263522649695625972354363803621992833430581271595015236768533920354274987017354698420320945084784168380683360143751422624969024094493788831605608396130712881354001606464867981762022970439994449731157000412329275373569348500865535839731992028840781557921896470953308879080296548447547326954254567752972195879021822454423993416933235870262634981980668551039730262654698111659979868366684155481464150975454618293170577929363622376198003540588908037609129467084312446992287062534022698171910181483579163283632059125836474760859187655451993952757480655026697737113208300105908331257791210848527745648640601220302114185895007878207226188306643478886872270441425543476521167163170434030039948319016930749694383615038037494606748997661462624865597875584701373131551397234259762597029154291816133801946817874635448623248909767937527001185121824716494246564635393313008866105057004247846453384144521504181691082377479569705183395507405203947841186912806779246882504802061326446367596267602246758922852630656620274169414122773247628223559411612327299505758278375734636844348723169719721366340484175142358841444623834120805524647818687308285310450479347032002306695633298264459429988730140050813270657713560844931990079160069323414356460179559536879157166916936369344454725770348848442643455552144555597776247314344649647537271388163001217795473064676736204199876689050106118806803225685914846195824790181827109799779544903230938351675620427445245634814340791617514959290836098803673026098481213628929122934769126135910562908554127829825248718549418131353636723150990089749367717167650243169066570158566218478906692512027523213847590919190531304709449072064480319926178772471126584768670582568758195432559974212539177722546823120298863902052608609688360428198782383049802097219594744914828810958580843451249149946051099154179674098993376152111403433528558583084087574861618120639900036100782257484858324476586142655439955555355398591657331605628112260928130074084260018151937164339323017673304065306649768964769150172684596257611869040117408482062124830892647812234231444796445909546293003946655434356537023812603329924955393497484350660126122606056037270876384635557020559601153996859187709069641924749359301764211541387130602341192142862241732703879516263194502788723973369342824430198817354653434353048206184750111287291807295534649115647834894910858020047904721648348235943088029189240529012816501646104031595481962858473287481752529025040988731291347840796683442239916135938961734277496540438714594124345668437924940747264300781020787910964560937761822804589727131205618741329791254201466704803886212542716659636483443164218175143029698940654338183658910094327302087133392519781409538118259266307607595509062692586809487017174304027304134149551336336443280074624193025266844260433495178712326552731063020811489230611209940026190147285418382551510828351417684164062086613989738196479285945669965857725082163306903098201931162644850472650982123646411744928273057419278861603027415569436339120032158161205485544289363958830572835941085386830452192098371787029619791461113673156488166019955148684286089567841919893519657130493762554824574312124168979141648825292863275372005184687103906805227630979212604775692015639544510044403726161174608525477701630827089498957592187986724786556730743205284305499053178736013623558986137359846449713186540022789251547209235450828689474257087423563226882745002452193610966021387284337340902335092329412673387349820561931876400378098480669900893654494001516173392173912660807917474439292124283771939538547380487573162832816523830110285826482604290265602484790116186158957806285989546679063102913910507298741813295158040095827146497722491783505658027041460077263465788441998274901628420740642306406927961560440629314506670494157256425917263971240448945085770024963393953858577165582924057522000929650132608383086906338433756969264964913358748193344423160005740216951824459253373308918666909412572105554495427186521791903675349167911997726734033347121337206277804928197451439776801071294602760081317427880634523566368897983730700922861446671074799662259140128871662717572657755032145640111683501797734305887132332846867035584984618268056120205107248426531846739929058309090458264961317912714722991686159195217967665309429429438549544084086369527309893029084996865690369776856565637988525676411139039838737208081763988344821730531186165979422550223534749807078110939927913748394049553841820757511705138699475745669611002756942383561076993177344559586771276707717599708871371830116083906338957246673789214914601808597316357122530558930073341705271855187590568432242617849591605427149548437357099164041075463844502715483197123935026961817519188664168552238525930583940372711396330987422799283950425994407407317356735064196638996203512136030416518225033853664875035200088091886798471116538497981810055123612449391309857141756696756638537568198242636097851982236483658331459045222419112568165830849925264557369727531753363803953810767937690429062799327018262765353955949437613866384555646410092204821764928629369507329887000084726923326831286136853892526680421185156008470604720333426085782182823126719918657322860561089705925476294639062744459055897804007605806608901925301753284702623239124457464369880509828692862444609400288899621559600322454943778101665904527554073873373074449030138083918080490884653028929156007397162419425366320415786227270836507833515767360924590111730074083171435818355095095767189799488305965716510779817410080439329138369056469205188827114510141683845690795924443618603733038298866836820178968728841330029541082749895987293136805328620862239548866193934989005053717717589879516735864713716968633756245801978250188922755580793829859791110771734701476956402436782744230006278837273288663253689299515265369071626155453609313083267753670378091899125832014308853490772471092940373935205447076811529970333777704204089820518939553129345239097560749740166995232068387026700688894957595447730778685228221671760039674154411601993778144191122510474892105696213711421665594522108987012602730718810863399907762534599977848381072608705672623207776515829823205835770588721745351995220935623791237808022377283203286581195092473444307919106362999329730231122741352547305487738542188434994206154855852578669333423608767805171163033002167714766009275971803892055499526012955874110605055047583726421957017298673583270838718822176459578341229752148573342254118369941294529798068805521222957370636841137235803694344934974308797652322380173378645655153868972457922044124566668733165593404588309594111535316863975515610348710016734801725077561078071520914356693790676218501112942264651622142812980127110229878134449432571776187560558502714518244292474113281202180049218524737525591842212696481891273401500016325431828165925933598814586432137715617134957077429840426887386318050698671802936957118841098137514748584671865739316485594713475724698345394649698023424686625824285321583809297878650754635960864027438672772364685902999910559333932511641189739967545781460041086415748857276838306942737526050352070072215780570018953682074132845117271300999269740016401034888566251082404521099705506413101128785833795327963373450749244352193474245625455968375505831838051581366230309002445966154987300390544942383873623101086743371641822610233984447949416069102224155980134906041128788332520160635938771650646751270838455731422656419482777815997792302509874174774621011297244974954506606407350725090399893146607090434601525563604805585531062839833068930323322946155107384104965367494029602598106490776746939415766597976619606956509492291670129573826462209771822943602617409958026335119208530628067957088453584895160818554336227820501963055529251012642461911461306126482199944137226394298751612619329024119870631181329821427405406352702994468490253454215371245911979659694722530609740801507794816382107536472205225111450287486653284696993051894083616548599797480054565424228950663033102041332536958529054677710566152082725027337014350210693384925327110360958819749179050619432919965695535866069558025689157801739277255029712129687425345916393577409062568183601288626104786346127817750339096724229622459034092528589506762698053759042374108425202931680678739711385898352665182348966184517031638823893635365039727468354868313742296684726122305799350742173639630782709251772877740787178817139115723561222880846888500273387134849418247758074282057638644104312413106401500231464445366042914869549353421005853634719027130527515583225619850127948250914901698036507165613729392694923503880829646809408951698118498071646030283798133773815413681412434952080122529801467287748199745659127002240479675718200901685355200669001486882526289665583938477197547746147911203364248096554112955987026219449485123940195238050146656715179315805002736275883959562282487527968726516698504003770530914772166356539540234191650225494195148606475590634620716321989803097529797552025537284740465424714105198148998603467047838900636086026351314049888611489953864836036113710695859131329438414260834922351219250761196656399557966484985361655661303739143553616172981503879911092100101993032297731678366699486121269007155248191454134677684980195520733357253727842337765509509896975480450602322413616775569094287871732939936853706503177671369313156722992674356235423170819422408288808362373122708385346067229285863333994496648266986652641565691800326426248174886035346537491535443662688293498073298582920921847091242112930544035365114464629524010416960360600590939105598356938818147335176013199403418848782068844384398897107335111285282517804425356621173063348992774739355349004554387586964433690565797634947577494869771143157780438336419265506508234451467245831764281261971056916485946251956588864927402315224941113122867936909625191931351138959432740655129371213980653256784872637496633423633312268745286453446428184452277975332877412330463476810509038478017032520872001782864319374315610274808712956706051695673839099780624566664130148787347931018005500048459781641285629691272993821630100214430246128559333259935578630027721423321202433239773675069972440390271492442704233943327869139434779949084713737517999827505896342488168204376620290385622480548523241623820499089557604719856881488277620714900502439989351856441121298190665454882694242070923817336221775144153085408452297014697356212804957809515363768280678995808108437067504327977631186046703976764096821380047621927429974438932790156341313313338903903170813495547873818973463488672187688500204204797121419169390466614033102573004119793065751625979280746486990226993457177516923600600039832778203461452337116581778884324328455701685671425052294269351818163638379804126444168950587749443837519425047927987608035468872845941812980431511435734023711677217376519174070995956523021045618786030606886931581181588278005190663747621580927948698986726609711209741562053392700598251153435577558337367111334220289859286750235288461574131913115627548429766274542993481984573177209929076697861571293748810366832692226494872169040165468269715291663498282407787402961940398820726786834386246612141114944117735273513665008851626347695369334754897057065993640933115871535541353527331014919143861553640834331312529411633791267511228198437021898077631279675718834745730248131869010077900843607043552405820244141170664286574843441063178385876820893065944809119860557786664907276783886482676618967025348651242485649387356709299819712697096170600249854720600273103460664606313896775526978184823928468361482256102679672705432280944122057800677114824444811469789641880792800972790685179314451139529436105433413196690807999623325089186280544902156226293470981969466531019918761292294757307245753098551887304600664742822342792249746360606782700817798184607890866025638419586674688734430316333042855037892695618710938651057640690088126899483368751580667597508264511206828749259461768380508302463398763469630687795689320857338887492861299296735181106460908290751993897917436807811407974168399521172931314840941593233459253771375000093261130152544622851686052670076718835781898362581219729224165893765798751247196141341339774360807582061883458609961432826093027443893956709986101306057366556084993174257634059894387902191028639003486997753686431835958811751885076640307833980601666751640386189718812609410141340853137988420070372682987386731337411882280790987404248735201550269955955535794433573297968203794125031044989729717556877462425986861703561406803210453661723006491848736798529312759149355458582899625815737300502909833427171391317397244006875453949124347182325980412662240600048387149894923036169499685761919930734929542572254128309392403275686165488035287737573643245027692182653660411982515623556454653454342018055303236422366374930632288066305414306364540340960297132665559991249010212767004604928282722076613368409848524617878729452648982592870181672318872085154152231791265298603303721568246260845534530358230143928204698212270047174194667168011841622556061907738040504397799118645692076209382672437178269096946900022387754466891270599516920572252148019388196128342421177752583308903420975129955864204926918294634783911547831554513115111312590626065436194345118177100657599069965919609471111140122599081340777690505783258354641563740398178003513471095246602762099194769919666199966827951673997817988153790856093264435307938251099208278099778731903122302105043745919946816312340203225178380634947493041939008585243327419169426749717317297421088533307740306040588814278958089332335399178649234529694988389065070417260626974496724657068923410156825353171095379307248077851839993040979364956576998421160224680991032722775370299348395373830906527772522601162508801105240974974588246656924343397136041461846085647630762291502893760273040499947655650824039092045110550206737837373174287193070751534217266364546641852248499802746227938656293894972282017982507787738481000296690658918173789705547137893468067775681015808640783078773955351107271870821247494773423156320831235064073664482485203260777798487546777221818487897359055525510699474279903047665601918664887741373754266255927575906620939336177496712345204458313192064754286605584900445451847612913442121788348495475479800764757326542759417462869872384588839918555732258949891811869825121613634028919664624674509955134454863367058982329743650004427878888933645816369165970702292034422996649302744453044962405786629647800642715301950120191131004427888906466544519816715354759137601641964898938480969704974822199409801433178647868843873198622711618794907113017002092825164277485866375367332722482086123047763357454344899419210171901057040515338575184760441376546042657461814664766193231321202376114249461786031255156609065790071268269012863874378776388688660998846434371363993025206769527679124985828235972228889104900904126495203126244745998368092517370667754210203760872066317407425761889960080876243361021146838363429532798495166161822162357567580615158573359849358553869138559986251805558693643224492096156937788859459277755727337331784308400747892492890229950208069691387187482992293606353832548971284494441623286422327798828453689546182368288884737744254638136752546386359404583863863185555002020669286293871219223639126467551450983907753767881476565076863446157000474223715804224270140797460352307267310202902286895203189487668661663952902590339512061497029637703191745013130931915298728872308763125642565005780354225417927619577285535742366473786861687006342600675897360110871978758653297254800388937359915296796857282686478729252530014126663020558468721706290149550584376201230308601283764319752346200792839539229829325619919579509504911020367784051973911591707109534946657308220697107747292350302360817026517222189516304425259987707256234665712768956947616866332819097075437641731757230221900605540159413044134031027365053668592975574506271571521160306665767273883293194052858378734734931839994513759282359990567496527118340572744224805402644266422580954721526133197429524743861343467905961483421488744815729760236044330849153580961083253446266588223865483341851505456357658012523505969142351843555146751480799809553793596388787520085085464541844462122453316027071135268785747798009700538199161488716767440827600016610897046658682682802712078341448346585753362008512286846854415188488933067231189616481426667468363799058230124309033578350613624133388329241153302394719620792100791932609164694400230154856878994504061726161674581944895966316413563416422390492426629208768755623216389771855503194402800769481868074061373639955544770766024506836854127385665072748013596433850250882592240873121951631029683548688036862279292446741468323833268535071674762181795015937259562410235140387854028607737313496594022571943466328619591561497250833280487616542911681341903290644817837568382074385768416044430818582475370389569775688370486786163351271666045941026107220660367294735956682259149751360507164608063597582556060158966886812130947166395807680151324156081500353573003884245155999276715494725728027673099560795273033251530342440280424178614092128015128746526484335427523005332515868861116753157313905549995202844720838423668287227740658654004175124280205767048062806775178697154771897854246277760581242623835944668812277351800742274750412870190750542175488899075733782383206077838502418079038170200201071577006900177102973638286495067390304806445770203375180793066512553448072180942061031142163360970574934235043508825309931766975419279390323615445159349492412689727870240015395227388339581273411570709363599537676927641887759677947216918647239788428472706882185621670094251746757029384315899423647653917633991006828427733739226539702767350192515065621172861209295573499080995559683787430618506460806192249165962561031005377352860204208002274187063923661596506525674662203468634562554866352433569612919246129440737634481525403551704842913861059606592037468336420127254649664645040076705064760808839923994988133832452951875159858185832399633965046084485459694810754646289199823347753363860213044577815847222156214744219274986991661674830466126660699403576072102720470784274148321774182616355511795365238319294867884155495562320071749468998882783504569616613956358943048135319432525464466450640587466707642424817259807639341366092016148193659194508100891687730980655512220563735953378243844100346282867360295394125609587178752560078347002794314818895894306215911542605632771709648565612399613415137639427634267671690418151784243809160662732558559839928452968583791883510037666463057234592108148734989453135686755539963554185760053707925876409780927754634787969106945616832626062296271252980330633114906516686198469937159304236647418864846150914879579053607839394166978279609113758615300157281935932589682633546126304602523539517887372470696277513610146641833734343401120318339903563455265390915825899737416193072251925310828296307479716399503302870954550873912939376867534062517290589425603031387050569743995572355197450796272649249439359051184774106957764440384648226640261120593368360219304240363360133311642288033834159153327543266999132210245009290361641296611679819220799467044010529662626092533439681807904204629624758220052837510626330596920504099750675330919711736489826714695097707406455557088196511609031736234650925555260700147734994131823790239896188477314521241474745703384606847444716421322028162665308113256644764280247634221069685254636049987209317692725876090720008149800832844676991122672013833765213977999294521319262566641769110613310241954230078202330758718026072932305948513129755387615903047538801285016504004890784739996085497978341095309267014377991467719860567686578686587125261891705138571151079916034000257668801725286492879883561622181533815947204963031116056568411262995961297699697058701549045394477450700202391330901969151607693096731692414409803437867801069828125188640811778623943250679643034016221566753253731374296148403355783827678230401558610080852056026761661010630255577087757343860114841399706700043796033482543048035510038041410628644950889852091052738259964572910726668404166788671313538751892539425538831870059060663876911187620773458180845207134640052553709131647400562956581030691840320081780215917081077968693177660577507175192940481469144573882967349546647305993767533862583447685949469262775143316509427082088985273939448694781983860607688342128423039545994330896192054226672615143651069400104091357943854154365105087107067707700374394912832613443484281527110156531702771801454897850800168828592096112878245107565318321744076823174907636665705710323176604063111121293797223532769808879590269255732140278731371347643676823983912937737187081830505557907121863173178822563971962431060714432074490027369964190039611854184426833893368050016319376876136982473582470880011765246017844613364314715693873684945859008281121182030185636318025029726082518347164383261010630312988895262411407225327343253960967453353238434515127662990943871487496140569052376468523035455799604579165203934893892163325499319963844665567428442542399851786680675051669825098705781888147535768302972419532840182485561108583892968616369200294772216840713970110844866827513195002628309744750832669518969926641011241586544656267493826228973446446380410394531819409562225705413318728716179422084863504455921708293309984609984888283672887429296844744067825723864207348001475751526145627326377072245192820403202381023343901842558940019295578424986524496587309884540977620748607875108809363643424308517407905130674326139910371140344051205972894000868744678197446954232645257508573443967729217782815963332528169836541474914635361608436411173207249953558481860317251891575554625427602549694637603527428223741564810945714076968527049612739345959107372703266734940075330802182050875826706764659853950289317371887700873912948611936527443149985075523139826391693357111735251955613614006815085261599522011545325284909759313899086313643911083346089464690862376625644813684996929275275359865437571967019960700265520122743088807102152381784341692016827879850456009713836926481241882676864232864959362374758562373871005144456736932718955134252622367331375071447700043927007802464850290140913439581924670765123780252446770735693887493174828401900282439527517439494435055992284954837429033503409668112840707111891212489365666716430907324475626161306125505443099494400382802392054380491026824322680387864442071945637443695424245285296892863843315185557441072754877636950151748960198971340603664451128716353817882529053085238460579563436428065286356427710366246634509576328451929974778777931611687810709666845494069119747614462322100887814295148767008916550477290657774825737536543855249735414435806299612456428938918203885571975854516121448476039865662053806026099376753714591747774394452640721324684075836357107864186020846680942864401650574482812279077457964251408284951110496424906501115348314648771050177790724257539028111744450309662602433398659351102289062154743560651555446458009186991603389828910719879428549385420899737707370858373859632797444952864068791202265834579105993494735267140959219713709790491507456978242973287061166015633038443611415300460762748562474552866658335450841349588066293681241085073585343745090653367733413755940980832483202239721397586076324956097781528103376792901435633353643954676520994344522210856692705414699907970280207208628533638218344360131506380614439116587779682631762991485624387646787042975650680737579287303855927710766015754624021649585060777633490542302746712492780681607351032862567032900093327468550657566663955840978116950113972412746789003222306714242057213695210004242832846584672325482985686470197860149062749665156072751051661097534990758508140255678892313216744381905975657996532934253382998186927924019101683197577137754068590961937844454895432499383506477642106422569113329902526583234908456053158595984406118622983604885316074734854004429064858662339497534372246170551147810593763289429724203533025752466038927040254871147426374091666377644739545030390522045298635608686385986553430688978852230124210862659231367814807586210921758001015127830531702577089333947512777699357411569740895115990957338359700720393053063975310666122760382058161710508388334223002662557497112770009126956211303621277711101292758444498264045059168526702522691956692563883705586870066576216372831554069227589957386961307798720541316211001916590736243765965128382797605204831889988785178713610191065878845681142032482358970470863563011026854238618830474976102172639704064148037515257149634798791511915400753174283839013541470822813196503673855208788846256891746313804345113830551659053556312863182545854263052122510876284752003749299674340363257356467331728986959880412640989898063661485259337388768394330272504450067458169732858525265120969551411968217227213073099285600873020274117945116637160488537677219310368906457487419400370774757943407421334250125924237951553856202609821522556994036467040858546667918904339743764484912615413959745099083599384059543695921560617126620394932132211607386281027472283832121157550079761544480130276436627898911417073106063326359706575806893602045079303606890370175226224216217811997317367997350880535941537258055783483305368347574323368142494048133660079744812376617720777040104004276952695023575169083906244740224978888150471484633813569974214360955472905446667812044408028812819316827526360209581578830258421472563764889531279940288706036914785159788916981600275618512485901819832864277131717166952175322576174708737855979306234487983245839072697546813831098546474853589257111404295755665186012988161954512574831501315347658392006608690062079571787583425497751715649938978925755382349381573868290748901859638011696608775960723359214470660122594336579975871104822156944736684234375875491035975960840123684526701191850648230171484379649738628628472250681387949347438613577548447437970198640041530102789381279754966658410188314924842088224240276332053394206226753274443412399149890505577365154867877330772659544244625652211592842232236580061663681513035007178860138653736653821614232556802407546475733650996132642216979014538214584130332210244931051501459329015685132515406642032743704668962835980694635799113483030145829265402439735096625520688350925423652254866408873742350284887298504571823017012047279799172929451689170244947805457991173167879337348161355010319198101800773079492024737437741409452124302039041986668895598405127727626798621470355856834406322600401925679693713381374957665645517078758801970089172380622955935303863255136822052333540435308555963929947038619211882094175462898144529328683857301663410238017737504441521183687106743761901547622238933316282963751798929771162552458322340558617273995830643036071552190220329178998583302378344536138858930592434212790825781083702497090408772154918987618942406922768612462502437024616555890134292340092743375133774803796053474674083552011403748304139228541082148915391961388061566287772329021482507170928542143631680256276015307907054755403062869021854487078448548017975552614098013260506869824707840265034196236028714895831631764421288900443595874340798385771989728867928332178177522340598589379911686119706409888752906097695146037939389450253640443469851589150085233435424857653593448149370274425650749591630197381546161311057417168627223397489743278564787005164693686086029377832710873068826362595329554860469235720239557941393232854132899697070315460564242617292725175997028971837612329256582164663572818517794685200236430246901680500719145353410250215708334247005096108755479180850447388352158602581025495615342952106361898144709129354881146918574264471293101378177553307852902084728887321429030472573597227259426272238793935457491274468737525765148596433494605280078834888187606155338549548572381428865409680467320917078988419270197140266536800693793737139685323349805516526114806685260582269125260144053720103121530939109814521118973177479778928979314444763740696104991633895618591137832406828350061153107202589556771342927230008656206509159857824984034002955309459268585891890168745344458674429420150878231542677784926056491549702787511315111019501212282341319634644064853437035345472037455036781965354405064617226078442105200091839377588034091915321519944911021656683835030720691884499547466170493987486628263335156037711942835809806669582622418820299214281562696922222800092138258914758935819709492083565171069055370926623031927209108243109331265734466268103364368941294446623985694559843010720199089832146608891244086869134760236638504975457444420906518320824493262368411872298936470261845624466782066413317186138104902735371124981009735383101105323305951846401807362425006987595571269511354508500666840537792146204405388925863761395027869413504078349244938605445126097991218451895306167719458115414504709259234428165028234900773418654329546007851662009436155156695425864639413106176129195107049522669327436079098682674814471242342362912951132041067748102800247719767319905434729177432399270386957960100247779155847394672006915993860897587381554138658960424074595648621121325249772962960061991760412414831999724534269289121638500969422696035539334494720591441401302631230643678325467509267735895005796552717634733493853647735975199468364418402583146062746919213906769009321753933780340156846990571710222629851359796427555202951792183104285938887532311812685474054193756244721703331196140411697278648660732209825837772915637605965702711807843526298350995092549379756007320435981914067785113238898507045435101405087959818934532605070382385455722458152700188661807719046578830361380309873253443813260034523509907456992277347090722181012491004560452861419748668428069534647189242502365344016537495572752924832487867686158306959917091639096993876207068373806207931801272183378711853639461501351279027724023689600196927867593548888498837504522444101433499447279129969910398733074788392829763087922959355759728305294869947074579299586844567575671161744241707257010849599060210079775652271822785057050241435340912987899557255538210794998047826376131219129776299933504560744044331372828446361273221615726250046204828983298846403623539131207460095114151989630636716303256749693871144539594474328697116078289034775197524949140397999167494371032426760021325805702536113127941996026673760875579500192706637769971126721809366813777645966644828888847605656385215301613950584323185608349953786044057401473817803332027498746328814681543536013867974560876671857726574307006750891348980693204910854749334903827863377614686220948715983872526370061282416210611773847799607266426153056417151259072957946471261675890842603529828426996298644762332765207750549648686317295998424493129123429048046302822725821242704479062192830362346134874046076957204978605072063662703646919283670685981095465817536230673748766403764125097135033483340679599080165605151128273354695840373609697693658884410018472062847132829299997636144013852689789139567637477886521282942056437579026141496212035855498537225056363230977884062796586555231538314679784893758824568537836172549469030684626290269002561114398096305311229596907769784333558898418622337566446729583190816377660866695985046469177226007866871633320182985127463019781749035480465753406734326080764969874591171319647370408899934021411322117979214019747829068440103381675105733841224888797923192420780826234389320331642107166898538025172135553575310797742331313488756627135105983445867012364734293356999981470651045909049460577033597892316575579021153902903389716028404269570282195009704400818089861333749969311594232944576451594639895149818421434725617046924497575205190024506310273489953943235564527255577931035276435892196178224285394349655111647539593398536396083581300760894841653620230707337335114496105380398784990829521762934485372185187502809428928718151917580102644889527806385938880111295388308988443596861185199021636847606895110649818963129579480564412097817808792515569471922926669754700679004592616201931194612481157392545671506197920511173006068853522225070371104652847190816376931824063633708587620528826384867378680430173840456169050343805500108250957128923446455684841768832813946506586817171929187761953430117634016006078927579119559217115933075624552615825035964094920611606031768168935237720987044892852728605478400055181565208801741165759020918769426467594198636833275386720410002560827752308076886403241455652237985009159545610580499326988202074151799041212008368238225163629650034439543345955960795418800366883845052489688813657318698295154638838897205416086631289052983846215397316669530928249390652773496742413333058897344849172534189047186247572067047257648396337063068815251289508295434873701916253692828463881221571774658968156778237365434997261621904801868110549336310572413767840645239506182562764071402349721170288527669560211418991762351851313334534922025475125652648991576878847789032282201737747028134696957136134013286837612572497588098011186837152231015046403062237883130471283027390030937161504657986170585204202318828154826959483902851884881521438234762904399704938228077697489502204836887171512510980933615441716803934261566502894558034085336176802568596612712844871964970197423978248570841062461245467243204590236157687078755677624479422718107112314929695468482086698820196145909251852495150167255094956447968946422624209503822589679309734279190120379308319293049442705800769456863596098983556974718045724886484337003117222710143512341691556458623774620905722908956901645409510996002779983481994430443390362313291396086702605825579266302283059839164764909979085171363964458698023095487887051673529616665591373493546514785776115435166587617877694807362707236501307234462869465002946551060286495028966414344985884451001251896260803644372141050397202312548422554153492455348448588578043913875614333841919704815389634697822781261724680283075757605806653962783711458504773851029062835342138680831050181102478895957663316763731006656077863881325477319007388326077394304874598619443022038936872293602933930764321415003486895447592665852949364649352358452445377919362377364481300031335150890672084162744765406410415537995066706404549569936250071986876946519576148123207169525484026546464855904005812765961156588972956144853839908414482993543394627764816092619423093689725163882578141830404752732273298941455299245118269274807704246439831131268781830691232885566262238211026708631440476440990712844757625886656768183914300699637347624830534325166067377577434278228669585407325642246982255729653633266781409641224304209937974083074604844329683306390453436116710112729889866043856481178461966999174271694804899770910621152386720035487166035193690323677224690028172952952088551701579127232796822621176092297736590898161947691560522700253841440100444090359404960026131420369149458183049745324396876841898525185637466265566529105303560106349663760450600344954751198674260009498820052849610268787511989444362131053502960006938408180248087444332972649959757462806863257438894077560585403044278410108297328974063288551659510162641358508834113551903792853033240594306018758325984891015551917914121951763748057247171457031388473608342318284751398136450263403440649903744128606178780906922025615975073808863344891678293209643575641816383779476931489026254163414976775550356381925691296386547521689219893348715610413197537651312244397417163158772911438761849089101038445292556216398410206095730064556412440465115768935519407827630461427635718797261533465207846244615840909224714355037934149647948375766464677671033538534507810320949040880926658721339647712601510929174791156797393586782973598337686592015094606220755418070702977079255791809434277891517543445416306280448207501928857983609742838012174066561159330917245712452118013055168613119539580446918336588310077346057212225902220022685578532511772284725198953839989044227503368115576501775967542656344798228047123424395109762876819449573096559384174703279048739560852099875802508542190731157201960376809890180993226292429227104772467597202019264097960855196656504643817458468434090828837943118993076400323927468245249961059550126053811368222811998860111147690778823815713259598383422168094304917631989815339412043323640506733773075749071757887842690674477860258131008597970817239230624382436753961052357768223253737276748410834045209050757176365110617460348081163164437130803146888230961095855685355875430270811144826775747933884571647678483970072061217027491564660846401569323202953002158748962911244899953487500835239348446427201819003244991510816170298936956124235389709049509527862776054523374283422025235129976646208253979535467278650711132542154486050740683031049404532969309513732104750747987939879327408773976018961794589091488508515390457337399600458020066543748302990795741382310378540592213605503701983463449581588777095674502010824275010009109033416385855861911290040646169044822838549217557446224781951089668100717287307479487030656406406038075165623779140040248172814735937809258709484461899207338425647488855426662288595115480312165490741305103425554933176650746776182600190118774555935300990819977337860965508397292513147563346768511173081683413325455754942719693852478994202040604128573566903997433729512382479481540354731985910652132828185880105113104539847830239143821579506172426193245808404239269016963009063454618557137088806956547404023942540731119521299674802596445296742605919792847663035391856189767294617356223917354025519833075503626485220489658208599824043555564196095378968017184734401818708924234095343618495213628646268403081962234852276979453334759563089248169359671425669808463078265900982726397420327420803553159927349386103117563655845124168235720862787810596175308911881340921186814855117980517980318850980519842612905064899124738457897779047107826894476557882502269168865246984523933261959148010173104813412001445813441526177315591098706933491746356201202404715585926916691128972598427670374598593892722100174844973257056840124195588220472587407670227421839373420184345539097955819279909871574433706318923991569909973188079159163011196760719465905810827559360427320326906510092927438238942511340695231044499348271508429341875124954843877424271000384885201587778580223299159261520728999242299404397416664090372793763455261101991277294478385024459602032920160062567742019960968540252448542028889033907357190624278483604470744196597478643359142860426937711468979752691986770292986857621226798981079104311490920868149957487573665814781423228074616669530773852345104236195268840273504589627310983129615719125119313403782695917321220197548069205080419258230822921834607266958920970084190465862469745608178233251501089790250873772240904186922839568601062422900656223193673742934238463813296869969073996233139181273897230909074499311654265176142723084217400011080652288039622427301840453904554528116783862366548056202904514199229749586874293422703340145111288833608132467889333383817513119579664318301723271038457393952923793754409175321077727151871942682938758349999673774740864772263674275655947139316808243528416738438277108865664192709946788371835968882145259743399097961919158292360660211762340997426115473289375300687161366150547193834442087878482371046285807362996535541219009108534825503065089530803329490325086604384088737561266413407363382426809310805820603940092993976386396496475403212434169138829380669903541867256262462923162233284414738957351838923769809532666883402263628926053739075108162346515108513851217897542719709560807214585626699396733975284571193256268165125343255872491768130777095634065938175523992723470505299909052063133217705123842823712664033805686571047271457913192999436411167059493101251274224568397532337117205415788191454904207961561819745368315879798365866521946183879158665720391811290112795576393518982157615957576114523486368060411702083927598984381194944998327984519698421766500302004623718361405385878865133207701155946489786084718395402822130687161556436743192366383453429012971527011295877585167759004738008684302744775323708761188787049687400773896273072935403724062944582855348197390633589875928535300094672966784181844301862151465860720389878890981784473810670933018057612023023243146448778146966147069922203072844626360603545344701756383629495878457665004319175530161086770783138474210151072231571753923832314884569584694933168268963383232004566747480846792838789648850386514966638545760242781566908518092526930854144470161028380491156353516505700231040664047438292311888440835280948168818478922048303331216066347952693281944655263050090171260749905853401642639275773788163116518833380888627042041043688185371074957143698127366602095008055700328669065299666298612305968052801557805626517690795546853216130712682011686185343096162097609615221195454684974859229990986191792969590357560006925836274347865879171519661790403227441844841277943958284059916546505532248369988648315441964804698912441514888666719444721157150553680833647052725330816267156697284976204173746703341588467009509073856077708520936769563607592677472528194216747098494510294333988500025179767921775346133935389403366311094001248924302130552427994626036330708012420447071240031093899002004263663060480900167405181547863238784776671663007743188377501446391315806674377238321974888027073380296135239694139551656734761316353040372464399266293629859121148013588376367481054544719357784925524080973285367382263952698410627002871336954840711825155860663287917029636841494540698026646665253821835995411954479234792410580104747100567979838330282502347043116779561661990663888116825760508169177958997164920328281132532841990386812068459995075682740307774468896069843128827873276446345981230743833994814674181203702328551260238757524927238395919424821308499326095794266198657343053638601834839315621304828669100141283510965423931401545965765935730069993209558140617604965134821767123610142538994499329722571863978004862738370568838543266533796731978085250560969615122727560029568405359190175988427809627082083927569394946279761815628729393450681506422353823550850280324732578962039855067235014155384912986783097425920013159611334067802844744978479095429635556999576762605151765889119073296179737218170213139706099650153606689260543709675734270809850442832505455486729383304039674027210354789709122034443206783776166272161976634573942883769480149149418494240205089043494610151828489048602630679954688547775298211874344694525152956456504735600182197400585968732021776959983995112676643099392873208250681413005734381243737523002747685199025904780820070133043825965119666771558227479495522184278391641479181265625267701218485128145606945382234718288739188639899118585076597091212604737478656532013539866862555751513536208014882527466136146544569761098559436856042656575092352034029891262893501587103927944485521071877010673462242091560164858701956739967037061130959829862867784274465644744390621127144867627965507054711923900109810814334290077078473174412604667630425418312052047322844746619243150063124899173037979856651292460035470989664593763385138942352852735232074065669339683731445969997124219641588601523634008402260426778294979210363140442093712339095368439363306677389094259999564309586948446296073090583524743466523830429187390009624680494419621427039728635167893785504802421488345613263211849407359800930997675510477176397952219765886483785509603915464521696304450559942022085547233493923343675038083464048388438299844301629777890595469980949180695518769260688675350467541483404914752848424993013774820803411344095915907210604129033540321830372792810196970660925134584137099017186958412426103785757931390467816184989350889623263780493145602520609886925027922323179787409161384043730178381350393898295257918991775379076460640017384948487709694261986908766925980760488891440668615640889557502234675037293760815800840243409008058303250034052861348676157631769682988450206843077901718563556841189712357390588291842335763164606549258752632163063753441310457471058681122665141240467200755197076887388202489010211337762348713947917200310417199474521362484165185266936405340888578080012095887753066342955492231176575431393590964223393872996627483737438843604137762641827529687554067996794102129780226902204710261344993066398068819976839069994844455174053271794693994300228247034208889989694578386268876703380646982187925307722743846214870218686029826403461394166100305664807636592228659680780323128917714250302383952714611061701584991602855157643504576770622076321336925034212812438991567275363672034930602565229478629079402916913049967785943160774307202111217882241946973010850500815215201120015282204759264379525377859285963440414624879198138391270386175517461352222076555767860366105824440845779103302171223862695754758371983494597916223681132439179832684441887796459834164592721191145818325065522152650900042955370070670886850956122775562345513260962832816202561558722165805768866629368034392936747511614687599814036351036387452326426606524406365135420869608761201537663547998693335880945885295342217794194507201839119189295119817999589284566468822402794271131521324923732367353168168560345825458568661110437333664076354655103074481332073555377481406129404804637320367394903726817138099338033624565181363503662399796746125037749067447522726288362294898249463089005812712914957882535981769130444829146280183946277774480930257124513026405132370379483517522719949742738790078410688430338121512419950733401031420762675312300967985397370483746022834442727917943649361375624634736467853648797024623869641812491552107605524650111139851430625937698253329865743521351227195174963165097958166882463374697251762618165826589488518854667892801392850613730028275113696190629472770543147709491112759666341457135636176386534894048566104834187567120060066278834596163959049197380162586564969334882194961573568068874989390616737667957561106864002839377349186749418134249455003940966151907166459892686665792036569573207700183386014626026554995764452150414729714939463366505208766318852575311255587693792192984658432026615089669109189287876016475484749911418496555283250170870581231564003883228982025495519989318292030510780083121297985085509516491551919895389307967934363481321954479556083862316693266710833997977799946805363255050523746738568885678263354323682870583998738329675287283657442309654353188423631354299487758702402788882898612173588307133392959161361056018795640415417000707477270125345618548875868388165087366826886343717604443571091756564350025689772937852609825831775619536640575847648654166425468859209381783226685106198367665281449360029479508046708930843061378995654881340123886333920125877830177228807253675710645857803982677481528703572153929945552719394491914061371177050981204919171209268290850634171222476667199170557594801698503727786753757878198898114127553815815343919899648082799318237593991860279651061777169405920804111123948501475339251301875565234033871696347570731469175831595621884456314678204071587949826890977813521424843550415121517226821627399518331176072757887596640819385959783871397536736157451964940057648815741357942274991987314383148926817529024672008623508935713891528464787235416733798535540421856614357169452400833587830327505722377849137623838722162199768620939161592130214435908225796209419048300432209654568929987680382941321839167023137284563354533398742649169084551522618741384472196010906533066347048023733749020226804207558670321449534555192614570239137058859764910229085851407054732023717217909549370368966527258504482045122349009349173758515825343905290383009683081408488521658410975711787755357639280137824218857583088877165425810760755253754054337584417565760164257907987997252430411449683692543565671232747912547174099649983164490947614757115950184901330139418080209953986395419855109734614349803606635682863539864398659072137323528974467678380789820916626432966494847642603402239726488610722921125867287792697018399883499182423423492719331238186267878221148669767944836150726043180119487491305526333954438144133898027469133174020769832889214172598571193716399019816792726919993258303777685951845925536308806479321731790485300967491285688121081386940496961813208673689970739860360333295889071843721575264288312086115264773815999051690421150239541221438008773900417006184423882107877904660925989001724927121871720159670514733196028625500047752766339652277526481087319655101654184481826330001017335546409386254503548234406444138649997068976858117725489418316792227134474664554065188804464408682373437637755025559249789621952320219254264950956433905673244665982292266634492889503198647449663203801595143531656244141568001287080342163773979104262529583514096852109213797389893467203549902879924864092336125622044643454629339546809545838792660293556687693227521740762736573718606255805207826362707034934372366663217287532931852173394467037966443738090071590753529109482071265907909438830826891408940937094677278835289379398528690144091580075201649531536102514712085670892708622575222210112839057894434862645589546635882662471527316937116704052969710014192906687135064933974278962562912391279394258088264509242428060653178280727243681499911537840294677989560607675390216922394219375030803370220725212331790675419950951877717861507327603684094539873269279776284884247194713169421269083320190613394742750224190602022993429099012509729092371144913563258336528765249919315967023621105575189087004129237797818722962789097862430676377101349954456293243914955258180631771319685943523570025133465614367015487493364859931209704124899122221662921019941607852594403210582055489726829025626276311360884669856721287493625686649930289074537438607125147897875481536054650657656726444037159659203090378849035639660038061063563911271254878269359504416852569301879563290656738766120277746882547734130517883063889247836152879879988919925060656044322886425404425569421157544580026096579493703384833651702370689388667198969998962775715271686160931050259237139944345663260229319859990841273305316119843705627835435381486553884131555848165194152362367197559927376255123293421034061098104466336722680207390144786953279780220978910979254637053925536745455870013841417521088660487576276312647104915684744281170735069775714458028336268640577637135531245709414353072886895611631735151489680946431359452943123529147577673545249254643337559991405155411132436777202772922610275078407985097707515633249006866101952256562271344297633010370154713749176780301743220195425197303646143687817923769331352742821008528047107323316109323656601136239464563840828747306386926171841755385925617920132534083342733543807802205323404600717478725813127987747945108142999263204579176086110769887758953333646792535140099246774737642487842781932891633905705152158426985265582269006074204867363790771087540099688826811350563736384359440345306809245393786240037029994622278156751412528839905070070260420308327486225493938392521115397094081479795363463328008114847573595662124088932298736362858570684369953040893299416418925638067186798352363948688931410682245503512514928814960088731803604838025112307879358569904897030427695264735905884638284416201730448201958983542147811390091569954241944333957428677930332207004879589968497695607186108885749782218148021809785836146621507369272479772618719476925673408114143406672649603354137477330150170160697021571607374454513592419322854479705471291403806802874211302168308907939403962940074950248579173519353448087835138761646891195007696352000990031542758221682417521336874358140931166767086540067629328864451131096395142827490595563683460541761878924145547586662333724375677285560502879985337336141371907187721074776385911122765509819316373195429179371861429180656665657208455182174700855694509581614222548488605970348096312270893243030289418082527630011919620443461440853634495467832837073809728269530028832584944019464557833451695383331166648057820059012379300007320292979381298994672192028447429265765554687458358740066302912360505595180831657982036142137651721583588664935020377886257975505538201520126911953958030203434556341816025687760636396719333162305937132280635719558637654905805546433701179425802057634702416973275018492117894973815623471327210472548667080362943493548652970886957681984779139739773582293760971865803948613839271818172226034333679825893354540664713573821970662626693387161619828787888529028987428293379511018926924148023638886468459146008936107719347410508415377197149811727994453809605376006479537235941075873427719967936427424712780050216606905962471173546695313726101912136137794542017634713566189055279896831014883059331721929425902975928586225718835358928902611207048067840969880743400455112235179598568766089970636313499653132981159884351621660569739116506113310433830301372011156501841913772775560375113234249422555303328758405767993486503954671371621570242048826483064172355831149923194940262888634348544957933459719458378354693075706887421590037446226752134679162381468672955488176527611726001154452773473276022952621842685626055552262522322279053986500709084257137240322326337111766839261603628808483033082344825068775175581893288256292848329964119727274813015300116662954545432999231788826988269722594973499249061762072658271466932273173917059685435321535109032097998353657994885860357924357998584250034074056797989566232364332292866870639685116890511308116233381125271641341009151992729380205929007988403322935065963460775771336309874692983305365652972764887813614133268944951856726586951521289977000774496255249201089839707099193943190791378862579032182492125728663935515652958073186625790498165139029444300378637913820886819855439708355740567295758043240630891713680830052853119405979197041095671386170653995097475688496276592819995133778200639052670181876968020007588798507177088706010251752316961297991010285915578335384347817718163514216979959459570695971064772916645370485524444546485523030205040775829978223525038271276606930360140623151811753259945714441564027179070134440596024988575981161273044540808805143173729732335050905852409772325697534792135199610786752801322249901378366814932478659915396940226893515630753470894010040372228675771982566113442420636874353908081407748803954120112688027428491199375388586743000456370315846047145299988862051564749043706644141864876996192605465459224389594611598875590506957586120857997129764203027244353243011065754079532239879635011250836060823304067644712046092972785458714421167406517559004288970865976342972760542552514995089314261354856464748620730499094619189310187616718654650875839831316230169275542155321964177806028338562994166225161789633491878236280164718243242912725951860213469892116061871754558274408413490100350012453604133386542909242631388154360555471502234822263643503065200783272396920685504376835919694706934164793740203075604749130100837658393283347476899483137908950755221129885159607016053212887292908107153519251272191733825460366252674587237749321844238398372233886522479408507131479737122047469639757767931526846536025548316742109119152189430082543366414777786453848357171286525156216693136481719884556864487812694560581158445988127442185537664564597275309973477025212658774139188197271892041021283538302260699915953221321419442281384645443960788210502060093622165515818249136526571727487167324446926216706408561081875577144492151442911200337512077261970522884273245642146497140294992321864848436900176419316925495121985470132785471759775993697267858556735462600722094375869343764280101861778065032599152890100164325749183565374445900676327890913653750435126054213659440460667597955963796399038338985154254981957827051601564219732004685481429490629931518269278663233663544844517155208939527467620232910993590258586122318989487742462991167147951276720226759426071634739546874906501559930064461797884076099980761280559573598172246483105176060469339318343589823673492850061239973455143034217519348765101109529926476406734815737789440890247931819239247481305973857546898139932037451896876975508391156942859419786309888946989296219775473190845238518394258069444713372192693842718237764193464596034538936235427214245610492215223154509576115519096152516185473064069931647873462887114952534052013394404397713231835396299852701671435938210345614759575981324836255328694426299587671077787399861859641533299897975473867670537597989534041317137657657532685262048241946011981180109153399000917245251831687179426694137065788022392826537430815513622591827667350019636887682873480492483868004528605436134468851740945557101970368826915176704948273237090490237511452251296282218420321735542831029601029382235539159568151208459923501179811362996424073907925667666041506938654234354700071453132165823485942925663884786085756631972917387212798716102377935086172773694299485961909874765534040586111404549999597413730007683676207123648954594136094304814844786556119504513697293096644756932184942760374024402927962891080736463364207921287136599356029280275828220658007452115096728857633761232472101455875274251020375978107816943195233975008124672652386594635297716589235550026056208616598685440248005495684369940391207856441375448816627914216737621883557201228990769554512768167722782332266020606526042503098852354500889205019391361995021118629189721720573834958721158757629008849791601326102560763000086795534842679435415765816763839169610307808646401634512497058265354975319239086582565075178390594945891158763944455773283072877262751053217079897456078358876662614064311820399588185214094172565201018443451423169772507894054482539247607094338943593091605136357150457286806493596946133022836707941975347475457183606842438126749807630953779668921564713776613316389840191700240193287703142122287052321055593904353796169321192935822130707229240625247661821148494921683357991472874543574312084417492151300381874428419662627170473724900800672167683048480861894014953847085695061692527786992505945704339005529560615003927856679076909263768939110374796196949282654889339119495988209740596489803080539928206420386760855244335441212716062790465245023134253379055160711976852384487239148753561123198948915151635631067139437194740589471492080479614987665285094758290479081587417266787767433409828497799040910679008794939541444296564722406257340497878130381590124423547685691515575941286708933103974840995894301040933982813021880875650677440293115066047992097957714492018057510710041626344467818832206022705844118397287102673263427114472158470746113186642512093200395609169907515614345907540565449346906727327836755468973897005184635804385163352560248745286735205107835945883651349823157307991458138694068482902633210761204884314819703821626698285554645397731187578952690001968708538590215633428000411857088764897043631302029360455483799700662454194869157831110110652536272900844887986331759642623552421955689671765326963122447578074609134095663787145698570994159896546670213918123300663661982536789017841684138935023749801178465359226017141439533014834149879073002274651918591639234161226298562487165089852719929129891346374707036898066876889543999827429229123090465356216765238034623149734210834784174920636410831105552012545316596707659889282399363270549174546398364651373231439779891983702777816919083211179665189127919614675357826118270374276652394146789958232101341557450681814843105569257142752662254955580516552296523468383152447488348621238708031863191418918422360054358605616495802514608186120900541694519970276890797714271764900020007378072278986388977832073650018327942444576453406800718395282281461264645112139910956001218164994383500376370721559810973762943763021887138742792480661694131913010801981413048664805500972871426597444608699406931238838484177600394366801357963114893577614852228579870220718833166717175182680781922233128655906360530002605876794969983429689553111019715197428842201898489359624908465984594846553522495924505389638510117403101929836973566427712900508807410943161766551005202601378493254498905475764370126634538531574204670518041992398741256103171365306071205709231756319135565449976010309925903828601868719544647593648460981182794031573308821251603259559592224587171308795716496727311565572394040909270680556830700031212546713370949186574725220971934114247907105368135249982599002373255822121530774174160901367770854872186715626488735374594526751170503729435444815975155675274019772635146844917582144741992597906576850746686416092495648722518728979672912688132374337901313853369214475497330228780682608190559299472518845272245789274798569970093604942964726569088611282129289941214552623913836222248711666797914548189294896554807235633415548378410364102963987734899422462472740755832567867228899290382779506129970002851157510700009624337628808898434369883318886450870715469376814071058235733007213559609211557416695618810054244008714103318208774388418382931570961671504322419623797590275039587472513510451266383496680316379657139995123726783559549506579392706759737151953012331503209790483695838752500962135100651241932046321659874072102086475231258040623928624558555701581126314836949556860038600798800408158779401699181184052242771048826444166622640201169405519622262364415398702124278707192400167199829743477404632708293381724967471972887778655142380508407411410659540503815355267741423305054654914599419976036048961367229425452658756741473126881492160416782918834183595400827106979631977322989491136443246212450532397145533936455148850785833535561016238000785597998517014673247233033661088000067405768714260631727123964167759842128173445132582936889349942154216439555095600673855909817399299032647167576479343805378102798688679940076080337033112069361484030724763095436720225681364621738278403743575344503065544984768873989784560123933075257005097287262384780410668699452808370068422374651519174852427420844923647243090989430863867277693296490310121431119530143681316362940999547677040193120609705133308143981479678077316316604549757949029986372401988470589197314843669252382428152283630749657963939878226449722661704794578026960209140142034410598571454844286875060287216901992639043403125811801797992790086062985486142893275178938021573253380905375607533699384286747324211708451021243565505060358024462598325374541443969940752579426490354441293082690701078964972622997900214894196377865400857850812037599544118600687992481228172311840436440995384942192116987811801263110266791004424375156205274034642960900777089353059915727782256792037766980113159628839208376056764618027044926499943545892171549128867563457141768149571593575096557020186184699357638903176195311928003701603259814542135947742576012829954508250347368849037388608858230083810152277657616634021858397667235960686527271447744506385047430120664642664137027350819590843543933561783161489966763204235736623529260510266225111029063358693523833526467390806842355988231749833884498769567577585806350563610411192798607068604746578653091881561165190080550253504558571364708849290011373216156479942480786753134743032199635843215642735006038709562208633166197048388610438201212173951989804515650521272064758321917987971688389125689935470537800251612240013265214180341441691705086352894861382613814065139482493844763292852692181818413230228415620804597817967217769919971687922866691318168038296500938713363891242468856643015486284919313345966407564918852970444048753869014422182349377866918009557478442670240143943151513456110005753802703939068842469313865239459623778196080946859193565342886187688489559906318396401625844766940393404517272776666130839902579062677966832366559239718282265000798491961845720890586360332347691415385716835198320430442009689518096611061209286330114534443310524388077495089230477135507612973329709033697614702144526756754482770523305773102569911925958678399631983825329577565616473906860441599158710587521897277496066985991740206501116002502760073074059017687779723715449631613662242975180487511096429106085560566509827951453907735299496212104632970440751493907986175246878905846192246349769960755215230731155685837124157816113619808459198709263249938129358618386898946421103875438247419984607057860194240009546288639632671442822587645783835569726906286524059506805886646596368700169659248542273196834809301622627383484643565215163223563234308200489834869121455372959295060897648598213228278089354869099966880711396329589318204915806419436857261220731174692014280869901381869626358045404532082554747388193657218361542732475874819988762118537875396063257615930171631165513035015510486192937060333189608484030809759840010130588089505658062842227416009750643906203759829375339098003161285512577038199747499595791685110674493182665365059752285115653849407640483158811212248476466158717741195677047308516549313358173214755185345220694258068464702650768474881558819527265474526263710847198612113940923808309189483251705961573559432789041708738064843248379532426675050238662074913328989726887274684656693779285334423116589708547957320828517606772599269796383394990960379008889372417782862494242110802688719754046269522571813273860215571960431615756892601689093185599510237943466409793336724175288661081640607810189730631904816133259332857576317167914275301259880947422161794346686487214015449948683300702086183382551272712557293628642828691368320265938401110302563120271734333430318723585485998824819504108319478524297267875195332274332357473123795455866573727802243230260976839733592958062989956085254360671423094407720231716819318504594778820574551672191762306937617246176998285373226423878996757629169869986138395935839406379013398935806510357736872094144783451715976600684258177969518154225390794363000943872999552459555784333495295227926827992111243428174319558928522893511020708332590999133075221815363887207260582664688386779896033304857227199042622590466818578728603029087900190105415123816728520689282476057931650242814019866963915905311856330903734384262046901935696683634469874298767265300622777509532337052361141406632952267094113838732787881814728612122121154838598583566676329970274097078097511943000125633660606150293991064995271672843708124536280802468135345168455232533903959712255364467433903311863210724262330266453485330301742042908472204802925876742115675840125496875465183883211928278425335179540755838452394806885227872011089898623856608581896652438098195704286458703714538027966114893059087489805164713041047566907202290195453457903876781188793042156501712065180912432150780248421460390321237249847428368654081807256048498412115624175586762365292107590647562541553194184879496258286969426605135851182649006811496066336557633297924323444994782514591440969587754777786191812103061605320427796319813507809880757436779045616124362795844232246181594395002111262451169361619525711603368369346236973047296090794202210909457889935894291186119247642186992920690228047451432230194490370350779280551160739873449760993482313258179261470865478871608194710424805694115299268931345353931039219876809118951452723182517162214275675953552263767239029321767221280792267638839543372520362550368489212138404519957392492164232672092059494020278080879828045515818617702745058680619904910226274337650699612700974563856259311050276923380708717953983998204793539334242951851667302214927277883137165403377104075487431515071883173936718231939125774539785122607168299431010310936640321665845062686803978954455078621445222954986955467449183608592154932984071848898082132008676064805712388448781017964082131119553615594332105766844869345023324468512177310308174654719691379574457795417717341792892835539787977787529840631640803612720552783482170856908726325227770017064864757034355886886071637357714961584336695569256000520441014035789993830199271262793131427557069495769085774877870141083516961357732671936961061399285125882908754355646428286490633064442415485039487557440745949937422104611038814081885854416722303113832868152677857844532247666155154900687877536332328246087122172005884355308577124895544541856716600208736240290367953617450559702728570831081610314507551369494468246216832689713881604657216878666905668988205300949472686375278434564630075372330853961555110710549816292879701660890941449510016559115741063549191892047939063212877559548925316910336601596220127626733499548372041254537949466101163296302093316576904767114161462700007908350496196920740953055200550253317499303716252135548968884188087420670953385168845795598266823919957945057808757647419412397801683467476500405361311104931400971026945180641227804981618722999053590655678191820077792197453621752130514759864321418094385511463901640189212920677145707226740363506967427150167951290022923267981687263697723813550347624361536824976096494824801684885739086826349075440278555376517582672468743422955260990129383857111458802291585918468241865738862830137020621802387972494395129546626692381539150834459602126252003044900699177388889277817738592253798049131794059829663483883369563465116324776995935204996835226424716235005791367666730630818583751544817181341758388412192576479058268512787540878151464303027706467832575158688592522142275896920627820013534744524545913898357672198534675682822026830173006238978962850384879962642738499092536435427612919355892284228893089181080592076517909598691415274530323302849210582290906012723893727974963895476022493727642125428067451762842007860013031814784596540890115433810951286769256860755648107099908351875533275431956226431983604649826061927430089112482955266025516581341325307329152622209828328595430089676012907655371888121024446300690584978691358270977531269358088693039630479662290673350421920506582338995969998607748044132864289726620495296605870812683192462579569812903416377919833676517909078841361845434304510730754745060280006771953821417902938070080619434479113699039543959335577304010961685265885488528256112620781510447104514782349204529675906366321510713504029357058486910045069983114315295219636730175691637871006275399498490513835642051519313781868004430872126772169083271872122199262288861064088700542422398650160296076673169323779336377117378236370976611000824687580181818990456283004750605216017416388550834594605320726935912748098675752567009157842286011371401016514881524851886559690954644170001269123608207264188733334149999681433238884520840647451519117016461982043988820503363896628948509079713518696719450477230259257282651794666126100546112694323612676490923414054995575152756303165009936857091773341623320387693962725245597689780233466182626514276403196766756376076668693685740981655850471639181873213244816441676461135808420138721788255836334658550942379719743274206176979134648643088527880792150913663174969871941600729141147586349727471375913152840161438759705015462621098234262536733507344422448364648089349956487704627405662070318696013020522524577661307369417305535099395767021972801463078437700541093004309000097974712900164702295355068209432978854476779269415314159877372548475963262701314927152944096446410227807793906136538015861389502715520190121830641699949910281481943535642723961013400934367729965824497123568242555329166407282019103322446962441935312212330582809946079118232247825104571830371926493399358092157115897154073324251474050327165548400530131318426509649052739294603625713739861040487190559322799876292769547229924376942175924534216861969774517740346748450803132012224537078807825372539912769825528633182109424106007769553150900137218200208663864297420042007002348665974329812958090439016124938446270199700336792339414130998486727973611470719114529218094953603716782978453045359207285528015070534560151067855272777190118364562783944497456347514231469376577589580194673009383973661803458889985427578334090314658864791611555211639287372437976645273512708409822844322094929739535485393545620237681439428763157411518693304791291623741973841790945592080769557439106060052210751089898112457337492675127147986537328913400058803149051914629937928975929149960796899074544005261785845531291800059831794170202829903265049817928508387304536678210975650459486129686314437638580577207873724822089154498261583781383358127234730253955370887671967986956318672531842260844021493515521795201272513777668196954707212973834601344420432237525727122861535281451507195526223422509244034958453664383954740895639231711784019584303474886675707267033517878843494432191049280678918544131494764796261257403015282284033450867730667882906022649183076297140647611811722080119654600849157702653225978012855574708532360931562174171520078238886834101166849664623335295411065724458709719121364637504056203780942580630386673702709752536376094373200880249609002781683062429351021860621372621746251908614741097468340388652942883478257217571461667308845580295373389242792537539861727929866152650589229511465414882030407670066624094027060993826136132830820594363989746992895439200699875804454467269995120594548416513780971152502860951955682260147980485642953316385054640871764701282774366017454618871075574554152637745649512021946151970456061523833287427712461858773157024095915626886858610246943088860032501206251629570988268660123975694473320896677907612164031623975164804353793584359592163021775072196229961334394807931444097920354369258966690989584441832471320577428466100547781512204957193928025431987053516206217676242057805293695941356159076504332653709052027861124526026719631949165789483335749901751092521333444355422334835998392102390039250331624350045702807496572047058667766780672343850354542397964578954600242530556554706162944223842810075193515097431569234195399629193740356882629990009364346678097963856574820144218180032853282230556958690322172490877151965811125943673884360869578437805979339416648456637538074376891797489742924862157979990574352726863385169563888783881011105384660267296380929849835404629384322595887206664201114986284967577783578932251967777676846443458592111520725399584493166380969448773563812482272914412937582520173536156192299660577646612793906554180380194089834649859380798908068108711805613189856775494269316672144176276233255317151739314383782382111035792917211831949270996485920947651412310462796294581976350751377087042559179897196934427926124153063384946289349837746028034163216750978863624573274569040277421420015251203736111556064301576232385778172683854052151674359500765863818817770982354044053616507293443232810908418471940732944708665565518497566822646829522893890216709308050860247697111970085989122689501032139202420427139858290806038853329549177869706072450142311362822929467029147906131388271412932846193622966925200983732504113407593808454336424823664089189966598949233924189528413600172687994118994029036938070132625483471545133514139112784456995128651174542903624277005196567137289185517545909405143464334950386909344078844489285857464655311623257416550696751391192080738539071776870959932189503367263948000627414927351984951845915818190007607189062064008124502804213671912311173342914956685693129335274315074366267602095844417489586464465555741430222649271433022664891922567839357057879277170906547913459161599075023217997835917881313404153693492134822880941773886026623712690554624331395431467753104400085218154632655229810514093752872139260024863497346972391377386521211459464472296451123169514946210356048802882007168711437533616061099726075411243973278854998814152895887431233263777372461642589877664263011605131272323312439514717386366487451340846316614132082760010285641165978292399615486940562945308816944363159787949982059469608113331777038920712513383092419216986975482405488307593944220626780563950220227042087499732460632214311151366097407989036563724698935792185939906668934613662786134612577324206266694677661956127682811527415408893970113157143671589912744375659667271836793779345844965693343124336583899000513493741847273841102804516577544311929135284985345495915192102775635206823737626914470715667098777904636969703768812722376241576237332863582047886647570639932557550837049729898579574166633786770241743300804481938157706851844201549276703453618449927324995943449947613654218923562093636258878023780023400100221954555549322268728556459391287155798124051354884813902086415290717485788130829206199862814354468936243042470192856887408062552248613640801972789859114561395396822501400741847903927737806421264414240830112388112285988921662143934127888080619444824919766822398206677815709271289283467644327488991230323321884910243455642222661863375234902300850831214764027366574556202509707177975959564130786287016529919120037612831678079623123195492053364002414596681973051966553686571656208956906348078753476816811566561309896657329077029186276951269121427983499111105103950771640056942151110793473709347285851375398436589807485354756551653465852458679404815277059774229148085509778635210403220349381568872427056863142710272707296742070523344273139332549372686590630830023680622346621543555423580771932102630881960416461448676410137325629754071470364939119963175307037051093058219881268028325405999259876324823676978532273609588851303664564015850368578621106691078910808677329715830308331712551213384118914656945675350956434106320566839857184210897112410652640165987183455200628125785017510760280452842087054017527630982651727905043173030846465645202661652632818610708124810768879913361897080427851569137853185643307580010701453202244156614438201737852043581581802568618801249756044168601997765892815520221192773445301052749971664036307780097593865262132593627662961992509529495381609535167142962934311054294709251978841553361520069380007233775683431081197091768074618296702931008935893628993874369377825251566087345132822139732349995958059623022943290164262599651193930659494270943534263873166529605642148685361999545856464315622992747125250444362707380069862173834520191595370266015503200239847560178929823698159225586824100698354235054310819602679321058475173601165678901619502000329954416548977312867053320920737934727305509447447371812433697666300373636020093573667925178138184135572632315019641023545087257289790399200704459376889081205812833949880637429853796920000834672355372535078301871207631250403282699005971078956221257987491108593487766902328989326298712478925006224860469911627108405011028171238179873264235821274633144521923692336773734768416284134921080308139098621369036594556502858250353176667086168123132903602784281820208295141139227288132128633963291429361621979227443956507887538319888405508360873118332396353146720576673786376129695936942685522479364427399281026712566092257283978775702604267629839065633235102073633127067138856569009719525076038356195661051318255588106941831186774061317652321610490323855265939359466238787729172718339683258827891432230383467916429476751777936829060624646549944378111077876939999724123273248639162887510068371766882641150326588474729093689635775221022883692012658565739526084556355608815719295660132782821833899574198997468973070422988929469946066988496712444737167584353153817129886371624131414731586815821322458147217854376220182531896136893334158929591333776312914775290026044852443068370191721051150798300648770548801704759977123865768524313570689423296415873755857172890990352041770683870624571023974832390600015790856926963866769045615600715539927047222583558828191040947896019844468875127383720672846520832984283129524937782293994076281776224960785222022703896767895957645613518085454689225773331924379050753518899914330964860210527772667776668280651776701008233770217347809334269171754062941924853727361288629534244788046328223166942352685011567403928212866244132879354133528012822521516382105266250726781614448625158599377389588608097121460947122664644506732887180734501963664221053544054140489271187372274094363499801538056739244624463637838609152678135190674592448517122502236678322367853841947939698368816038704143782527298598961247627190966263789158514474615972685956807220056256373075766290179209202241040752909212711801821819111182761456469739184457113728320929171150697468415683578351945039336540797124612769241134688454689433799291400088605694619831305218181916352030318112575994174204431624704917348415366620976477136062933329417240442780454196253998147101255507328617493115311170198488983945155735448333558918416990691321912728898605477232387751468267497114903035009046632982699245700280262125470109172400985949462848056520613964377681551706102057924045693297480792708577965987050838705161785248776948950106742796866307343430886804824478289783272881662613473436382816134325378104345485548911484783957790481625415049328186503988527891572272694498595990897773253479244235528807230834700663986258823338351759967200249083549180234280665795194933675451268291226844633231004970686764933838030093037569258064612626005877600566614044564419919103722297906826616350835798515687379435617779462569638418851008073170946225831112374467806708460975530328166511427646750271801346003423335898705501141159760746537284733018003482268789232849018074475365174118614589232439274474649765141122316583242142531764591585211905403352607520160366913062048194399642632126533611775266637944773819798174487788244739475224810085676938249171155381198819336183662118099683407162801759776337890786058157977370842475379484551832744362602810872175523828218537934360349593346666419649877275470558066109702756078895279558021516130350410019867844472221204434809407374927457275659105458438062460536638461825982381489941388445287362841563354484977189000713400803510394591332972194843623737319032364022243256635098496470581724917493409136138287476512271527935628938735697813746342126444196841992353860968818673866386287746659864740807533616892666928328718755799422609596197176454346194163162812349116498103149410919121269026334464157229997960020716723812688017510628704012525560078082278072954802587050454791999101741512110780090874926163532606628147150726567175743158104470615702604035812611859965368918644916220079041421256415509848030697434749447514255240267169544023182001707188179115570774850984315880295645427337084114663268059122481449913963264078946715420411992121423750993162959877592275446473092717884044625158386138758297855100078215581533876305940856058316520989611760831598762811493725086505926904641439431989116245047194759507569286955824243242488991668951129586247332063851141473448304200665311023286309087783900829243036415330159131977025114990479658386399020123701231706384852144854976869313504449130768883029838234235527623101387527595990911947386749108177822913747556217737816108253607940069280300170699705495655112741115314912488410219299312240620981098194540846614863014488264029831062530458410771142970662494634548102037122851953518720115686187310975714156234362430631665966523508666413813605570796981037934167980255774241131375939860147781864937613911177185697537342378239223084687935289709527739840578036092505977973719914358918088174253638166699287179171697691966829223893548161555953979210484963383967076867879746129511671476243685452045521001169526317027647856364163045629166382671258832759157719808506984561600806635976822894324915365209593222521701713738983281745375538665113587241409243264714095684441283998667604307299659299857699231566441569344177904276943216539128049510904127136385916562744328211154318002799637180958102891588155274961399836098639917658165052913859352810037237172968370437567871961155541618651859070196187892643451890355597944112575688378621098162093253511024317379469881836062038386171627597625238235958777066241366533979491834644908976595818699333894785421191234605162574319707598856517347800248345358364109748709544584698444724907608100256339736230753682487408729939519453033010966960191446755896739062302776657686658541339220351210985227194180796876572121992801687836008656728175783633215883113289527127105230609912577461318487998119227265052236579378172094727379692742499090534116577453201905115691071951291145780882430776080910383232832995555007822024674472670657926692091359796481836990957556255542183225039196319379975718024646416375681967693763629014022304368118459417588299605944315669716411742113736948955838759063074339127534661198835189863193542685391287819150022806235660875822214727631381400543095854469041510681871083589907039905495178272211066600655728718413038632463922400317343031597125258547285474193185081649021218885211797614812568212674905043868547831659103408271371953635042503306262317201474356749505074056581841975431726195566037351413115597517457570397974727995755195882772763037154680372830894936603511789949653748039643817491069793952430381490340942624026004230468949996007982075574400403514362597754737926137070042285194773065246090625611393972536128288174124441737856343218172864915526346302437629681129299977906511746722575237331441926088291350651853397997956963466684226945474609004766152310042268374056690631079794205582629965068388192833941319549848271632876656328990906629610719025808390776609438129792101292374517153802095432342361741078546589989618314893133159782171704782100155590933662931829532672210081971216787314723148707888677743131349847326726621802832665528606351819124187440382015925147136005952302643723516268936084075995516641448028230659371874104115844474667928191676468840089536247309552299577816670763633166599295956736461394119792842437277613284914235077255386948379953961830806286987893211862248208409400114240861616668934135126679328115125418556608875455178886772729224761256890624809908135610457287856077336162105456167837071918132983909176733943104869189075417757442544195547560826673651004152110220837268012303150089834980093428298589090701282688422496692510536854448360096974330366642398818095870103359049456777867403546277958635590481305343349693277247911435467574718047130776658432257202613288703649874678033006618168328244760276410745784425798918631365558692119053878566545037140889730293330311884260643249995505833449459376298134054117321572190624845614516666224896045536229925078449520407645564723522845005583436918111843357841075046784624696404129498775383905825984626793804553039523657875550862846461741232993773127768769727890272181806287946657377666356635100756215493498613025600685765354021758627896886599357475670522726671613055327611500859953700716322861126115973069276919803601161011808694549941299761534925607672623739952072486859640994617750259603129005811955421719317824191282126362067458399381504700628613101834803246464850016193793206560152899344199609301570102766599195609579454138579867338873021489770086963001022157849067139771862991445166045325273299520483450612986869544767373372774777385353124061209451445260759935837778951768302176811613056871845031362625943782361351365969653985582560755350122487959358154262775483238931154411142232595088301008289948548161524896125466055790411815976674025230753114047917210694267070618498941816596895098918166778483597786868415285606914506185181317083576442404675828645215031461420496538263438161492225855338057725987191125523979018793034105847106333156275231523866993116999836950903265825787702399876537629224177496459752156489761761792728410501863094404514674921998417155368014004696672765689057615150364016210459046323858888244105289454462879450260236832364843839195629778936468224937654486353126770480797340778953323845092173863364717915165656150230370815051010657505457474449947283277123088314635720801424308519167985657069360916842704501739746773173615039515713957843109542443381331012279264384202550702580824579228257593956981501218794606601588281666415558839800363557902057130358772541327819680468702193819788249149740765468338425631361747337041083420465292043690777141513621994832228833161972814290150464484404211235318421704019515069534669397798292270014228025610361094088398780174748794248209089961819573617590103738193330084568543108390670883526327918040850239297208997824524375157641701661783404315815824364960088113473612311143646422895044343214292661856972234048585371217666791064990520774563301054397601373260700060666500916703441858615175845398208423184653288286665095097873665383944089535395229178176798992104682114281764255470543361176496609313332127138288306751298696153320175701547312470284741016103692401194380843619319858849769287264875339157115454976056974217630022134843442773544738082325102341674094169641890666686000652768208240136500190755350223431360774873428315898276558268205755059329120435090740105813234190058496682512437546108899795071259427278510084919468358749835145383122066413460602280014119304389384802395645616762555022848982685593029640101592285421783341035299176643023419507568028649775107108308278250849882507579595626715779277102644108389028388150644236992446299932694554733040834677002529452936939035278555133702858471127915828613419805857092958878384494314571319491322260300207950038545196079158691900486278272492739889156133424180293511515499403970523591427418192659875820835377189057716572628698106438437574378495736036477791587604997611673973225140758581112231889798334839369806620162738401627790652518870631084717147993489075400195825959813758317777931750513729782850442818528754381145805359069868429006491780211342694161305414501771741445550394077548485087021016170242699086720860511563035963894302106478236357400862698767749508939591501393554108571013465749920980932078205073947125447700575117994492313555588464956098263335318269864154802361433478527374545702580113088998783422885714679781633517861046851027392677585326571916382505604330184262143717543194703266819168248868949817476030047321707455529138203053161976461644719275587871154195258446499485651637536701622906622693644633711480508118692907899253548297602638804999901713925537789332581846580721593535059369482903822652844290949567089220733645769820658420786338277847472107803797449417766027675211219674760468766937327648509426512328775024569777680151921302237500338205126708192595887875232217391177033266317131483866490692593308348889707255518651023432397097684333496919784681656779325023177265865249909947689655561355494005848621307113669398755714793448146443092170570103104930328291277457766574861640456085071539044922638692727155799243824552077105637948267662674440785880337115346874402486387775550341556533185629030070071912256818516487142590314440207773456962043107225784756228823940729024802301751591604912588340204939849881339852576796508958686249312295054684571000776120067811583765320458620275125210726937996574254412721661801886511142224271661332819663820041320028501191922905397199925212576882636659222582646551218865458528460034692620812568310329925203207209699401859071948600275582821681539788895723425911141073444883959054933817136087246892675738299184893468143089181484347123070152252509010338845723001150803255654636978228438326406966223145489482971967317233384347894236276674418980576131748702635795947851076047942274077983412695313165597493565922450615833071389321605628631169476162656260551438304151804545039441861059950524358329012044750659172922146540074386456344075914583683442500577551971440319907298302893201120599173915810220694178508854846871870435733998676235302871474000241287892814134665288449301801652472399951410411733294720134312281773388463496046908570467248461523714465850199503220462148188712241424489753951820456812781259911333581603345114001666024485113546750851339939470152228194295723483774270337792564630081740008745947642993577419637696928043302455157251671429286173655308596709745534296285382673669867740909596001933421284092933071786444673370082830980299725196561461545122455052465992189413345953770509688816994302790464704829645492230477973924268839816078280775829265755000791401252737898995611914181456558240728336273236700276694216824997372789980494198459303599917699203067414114615553419303460424644906124617414829204186772769920701327854389899771327398706583927940766347072141390724220433540478614174058830148827011680755675507752828024267038165883829639119443022792450524994308998312643875040299656015736030168390552878100926482117581742640353848629466104392153217060000021014386442634797471156623326378663025728504766050164426428921638101727888317761134127244447438634542119020881498627767428130076555184777329519863139507727978533075072388630155362008798763267230232460233489613475689426228525749178143792632384215786025575791190058268192984375475681755838322360718767529743453373238137911840034041231792113721450993835139665736077625809844230985107083676213289095621944528551686721535332733457413886797741714522185219634591589650139119338169221728555082766311595077544114363406849556127737656437228753402607805144067248725321738020066193086304363308866553289739453781525600607236826425419555103881222256166255488448869842730091592409554702077411782570860992242348224593994398310118766076949845085419368031694739389823872437861522126146050251963016339667428932575381899510196240272115729888997783077771381623450421230200826360117876240006543374452070824210385948968988050769612112496243681018528164117487279807796286765548353882794670710398403338754682666223272461527374787386176214114687416767531994008379620534401737956651622012194608295970398345922807977506950507610002259995081184377126226756566815047626223881658338188935952302393415946800761662529361595627363031661826946526031650706074668485819897567104063303284431210885166531484777017349151052689971124818295523385631046203085904295266843135908270533354394482673539954559240330695457524285346017979782244497080497262730119816296413070136980100847801104196346652480251349676761345226821536157210151437593394454212150885595563996922179016529657616924410137692074114339291064451495415080735653067697934722981568895111354356039157464608358913565082869518999671641841096903956253155170428746663331434169094410380557666312594881961940563308409535808092068596991571372351727759364953210149963234356740586102238494684304891065543192106641624547009090175719072928179353486492320439645472676762293427207646338734940570552740293510135162393564580404370464179378076237250050618150400595618139122467774798773658202926791549831805598209801507787016753862535519334134194071076605729577210083514216889486081230884450639011404700298004069791884626220041692602178444258625863508550150483658503655418807322585512585821455014807115653705743464992293672068854000374759741474613601903059943262022948384750781981493697080592311383304466685003671392549896576016195035268306360920351466754372562893815427718449197822039067180522853173283290376081857237958195263835421195566576485267228221521034601226327923722926442329539812314801187739386800751229778374229804448336225244398538370659749673146522672103067791126743218057963682442548718873412892528780023668246037367464951317736832712880070295256723863100598778361780474731235920228798982560971154330649808421055559775574955499285310751813632568071005898968145491869577088421208004440904652135677000945980136536162117769316393751334868390831112332465230970852536332167949607831731729506963564056769959300480984641430366232289233360746389534193840158200160123662832651848466618058643843638782361530798186902191914027821812191378829436582773284724172856082705670140935158634280803274325651127250061609163014351396264000657213945943373555215271228195327589860018561928818963133157314985415885787415269786386940586024208435196185604868860139846369040933752174269777001815851630046552995634902984152046670677280827929097859862706691503391332503867816254689090621266361799094517717507907663619414853985966434881177731611266222676410506521681879996700983857217270473670174672490033535047903674838158616318020201449824308841991278925924228039803319196838119453788176271888610956602634182380271204272878412616316661022180157989914859162359475591316390544144677479405881987704416274806881618688901257716980581264172739401413564927990119947065509722073287844104356533310739061928864164960578663421489606591809471780618573911230684071468662096722276683118749198255840397499601058339713965296742925544437882283955582815325512652490713994747737520922605331027933985704521340809803023782784832653822514712056701829466954903876435453458350155061952177390108443196218360715036547694497453051285507093997417387921971298166258718883774913930093198092668586659800597645062727715780002539559245395065994004477168809329136406491934545886520499536132056923882341344103556507936635787783118158365312158317148234195849138497441207482103206812893489746307647104363524603644691749393666105323535752327197858721512544916545811875509672498325444327157942206971907422470559202266696859434186386632337872698242556512053096254524629764762450531651010302258005719115332727166330043330549986776388086984558087672769913210712066869794730790108213812929704872944293777586433756729355607388434481075831665024395607407529190728057048903724209064790002668348267613128404057609439208080343246041735859888167951473043579489333496891322430596467617830922170328321367478581097777555583935268647258951458977093720777252858256400635127459304042604000370871269483704580105179577433913827590570489527587915742398961967069053519500210686201170110763259042597629986955918438972454727393654511150194681661532704339841802951015141655332537675179858915211800433696850833358284083847818058354853664594935860845958679531793466330282768958425157202514990570219238491074847992886117997174109888549275853823561012238427774791818293887507176708348301150205481917652020699267829878391821693760475270225410816008798553443080737222950266717677168278940560813222894101648310855883702683855200495646531140570709424613897468625399089209022934301345825521700974833559382837301097160510579429521384279843376149445596571994169192834560742872030052748778010091400888278117345884915881623242483616307114875369362414140687447809017084185426403318219989428929896741794356672188571889123581421366611844619568398510088536581230092562323407832901725640650701139074628590001393080119526298328573720370743709462999440523038350571929340957173411284666899143785292515815780542952113303976310107249897898617933423814115220852157001178420848639649666543071770554567996194353015756901455483793493451254581578693102232093000645612808311933361787677659833377826718746635941272166629133675839997806027222901951428378829590147319438405710237757906979835037199060441687577866124202951776812769897037670651986136069596885767183580897009430281167997979859517581018699468259443073011214482223354392269449532426651463300615389172785658209050277017585913683575566211764895600717762273940717010055567823891904319081328518219106465878822604851244657895277759263496476828413548188556005916749673929472299746536467908013877053786463600716168628628932662109698955285361548090234599610837795949981549935277019018061256333588954465903549631386484791904748938977131580943252289726475096566577873854230428276112495724112164163873111946821291892827291678104225146435174809705209144669865824818613556278052765945596564786702246507118568386436498827710920648808886361320667278164937263004761286959234760836105832928168639089932237352128984359777441330865794559310009562437984016276243103832962627584030736974533046502950743564955528242716065076240338152168205602545147168532955480833667811874665984896823109833380416728078044474158942072798231273509388766863584054762075636076244853127567470968187693536898906283792661864031041939078657445597195713378249704695428253193866080130682294182062509619546100559534164052741446592326715008697134275103711404572660911665649381594651715024580236998067746717852513719397002998988484813024439799050881796876267704795070372885168189876333145562589015616670744116972544793629600036683059271137070504819714355657023329227063944690836942260328438621084648709441088207400136136667221594221163701265784564504378702322274870716761787794553077253713001548558573987489934044560221417127780212652481474524233439515912059024570902901899328992750852738667194717879476019553954416068687254982507865388912558825928505641051957176418485769202754885583157527798058556089605592815922407610700045534434458003894033782832924248743515310515223545475504033169377742876782210265324166319118534272608873244997993124322554713526158998286795630307409005409862374900225539834156306379680488313381628779841694771594239958493321715870537954430789629972672824443522177764933317714386182401792803176693276882377868859359121077296680976415261161704062647944419780853813936575843516853109124497588853895237188249797471233504258288489102575030161880151364733562376183374378245373348915266354428087289250433161522700269099774245126573213536626422672996362067948154773749374522019709629877792514721111760385351863056074673391942014344627923795214466927272931536973009334572101818162170574449480901942508076664544043226940778789637489453125048207016144899568368314836884569193678039887514912893669689631613684685290094769551940474533998395886799406030159229230340790675557279550905159323419952799781206975069734184171244790225682603547477814355616678389272713388744126665725943652233909864032046239001952619696582716834533150502993689197528836582835148482643295044079007026827222953274544996224366104765093058254809372031372244056906755083633215645018943914057523103267294488960762686785684230487823168649720385281728453805470381938566694476142978889009101476226838811171925870626588485784058403921500056015278254476225101202266693551948014730022721060335210774886619748237333267123088969506579318713721438491326183395734894874746917803606830316223589590545836372209438226527444112544277129497696311918688669506620722455655701776530789375556463757388534096923934716751382830234190603148156439621141586260852597494154578113190136290545631289379743710161571331279412293163577649795184157801288513341996710813251901531885036901303248105667728735013134693178181391296586032466678232557717097893868085852021495525493798821225044129199208555958055156118231895025862350666416621770261024875749363852745236553295946361902623585692912914952722029158957995361870047286254060472927980057467327500834726296967275155326384520888854499453965160639545002383680879036895549265855308106867476689109464459520753963602725772005626572586750463944194245018158686847758498488243125352006278598367154895810139600402282539785777775574899484045473629115974328449130282840582193119421406125583982274423237150694374598305866625822819578747313222084591936839794394112362634206968312664764953302603550441292480979803347950577510312587025361772268263645980690315221494894778800315311288423104659786240535850063284614307217887692598217478229260594806009012954087711730136730304666890037506078463890396842444902814234618682192637840778477580884499537430926315424737881426485987163881273775553715536106946854488243633446156979549390277480430728879386622476613649912948931114847863464874648397102465462162241943647556929116944790906342263522176954105962947030668385372429923349232253653568093621684464563411859456277178113998203928572429468283047522641999332639450062342399255726962059996000059914658034832213819369884464866254914258845295989243599569656679119146081176226291538924220613279595918307027567432478402488732513549506227777232115731304934221880581422823071356022416295525270051596056003493811975868501960876106633904624611377752207675563807828078630529845660013953330254298947905418459535729587629187463419279618456002654711490409152181106485768123136482559683826931173847375713562245120042978377010159430914580757715906437825879326157139497005643769013340202031965437917684331525530421246806787153710509721157846176055050800300833681111169346062139216826924566685409573632364103403770255369594538389087323674992192950948503811813263252806941649559681374601670042693995639556268363841686742111463676021999102940229314068287907849178872927291913150546190270783294528827957898707170216785688996324637811003887050648094968992675728365677600157145511025366012462856931314042529586007461539900096096905648071359103948777622167862262022018457336248526743602699749746161782752621665338432756911145982889735221840327261437762309404102690996437086499478511667197590722059686182781383662321655038460442495940374589858004698141697947289278287643238897126182201642785375646853262978847759408133194361844703468813634033244039905564767854333347910499537445897030920139075143292642796990205340707777184558989704590906817200951382484816755906452698031816958649206455973282562964898472306024248792815680798153296267663780068221359911109078499143645575389599592900812886416371235302708144341987321092308480090988102823408807621374698666963720493988259573810152069966784844224293192046328238321669439772152128550752029197928091377983147165520206500052937769625255008806448329110897694742096442939082967461491260728018054293455431552232311305145342822275772903703800387136069014534873018543375049277651745638476238448496114200785749490440755979188788257080211636482462956128631983311835402508867781848082885242717586874303802893910554867974486470440616308444917612159730092182862077574418763546186029772893379661912182411621875458816943602299173738066823718197708200096301348987667973721254705693383476758049834835070936770798343194145314305447524506782701651384224147398236094212876744662217909681880533961849020410714692196652836701902840603064505845452397106059055026904316509997076699646477726705817016003815379020539798189801329914914575402219244759005630309574434194800315271866792638457377723682223025860817987916919618517423052988640636594653446251245609506726708889992720920723068889018521923683180012075864646652271252898900877316597230515557390781019424298391387394372651926512426350460266080988062593877739614840991687671390654150693507059246685264491467330259030322214795553664442493809586663205352735060966002648963892936317760849235785763822973649844365732332605404205235314372251251463464831733281929217925318353356065851870186428045502414073212454808324595180547499263546207061812394848026934145029518468879329377350187073166868292009502448935017833637887734243375659305119596845211070990364800836450301699206395887277734586148131101076495837555317597764128783890628839417439511358670714325566661445926377044054435497263192710535902728944488636911145470276238420722807775365131534679018741646143396754418954356794136713990078541168853018313582930853187457265135721638626282265638539525659911445666517745934248609086162720321907886522863754926423393739330934898741633698699323162199071817166935370609195718435996701675592363899881339509860476396639704824897063320629290695437302432368420026754134864240309659747217030688973686398490554171661479968659831555004206024692592431646392760032138297634103782870810028592243383987545315369309998615368037273125522516945946643870569972954246568899605572915364113244363539174420536032228328489680754384415826319944584035909411465993353181654681621741025800007945183622599772807668392155325375577789252431645250475114071523518626947041810872051270189439793889586129527809084985100694899828002053482265726920857303347046751651281148936824426206468371096544751602073746954188480540498371507848840547858938745354814544835044493784948179016774356030609225481584250439737055871290926993776896512193446551069438002422770343538984636329244275521512750242803748119891587285890050375322139784912861853381110840487746848458520054753541256951562439562617363523345998267665726660417093252722182458644363103972371904350864000489576426446386379806462032595069983378383090980721511246419273000347958497259541101169396132201314843365190904119455428294874486632288617254371124557637431788151504410775380066693434473576311140440015769765508178336658861116949088160179545722350546726678327583723034302969511537642591712967456963704625572248787985779742949277176097753206784510797068956344112983576718179389149175101352551578074367172743474607900222348340944983886783161698941954130682286571756887658705772878920140854917615325465818964092308241992601589177562496018196005000225016286439679744891105370464688500071271862500703597624954953964536727650641868644550315934825026289451709246419227856653369176389671019827372204970438492163746149330501852615133640759181498808204465680895009188819295556044797791854775916554914274182023605004346284178862993047630866013414184341353388683353771956620287340549512136197461561295871900534198886768517763611256414083891012185212557675543896765114660033623794129393072934045668987048396448493614661405322033438438400058809328970005084275339314868022890240436765744766564210839368285039501863712243392575421838338523662208071472355568517990697962188075007699567020736551789156014616092051202611280546739685337636399686249534473548673841329029620803031427927528609490582885443987451749231392560150283881132944895219636828685730300513035463935395293939087941742450591588984072086306519032872763658254809091904358099135683282576411903228234940225410737865128308365344320112900162549266133553752416168237004105528706226337864425686620052304296120657128719191785585749703000357812184474888882471639480350856008696730691707585222481213895227660516791844566526158751167039683968075088874139233625763744215809525945181584483799304278691516310225401942781696736892038286226368106322498711280040330904280396357060797086602322520458476352520303622713671621348647225601432088710019082853368216353533146920986710166750066233353508943453113853173259397704140446160423592421268119572891089836495591190936491395137962588621996447680490885136584343262813095469817548774946358510584492664239192352273374032980272798238037682103344166567427586745560526756533454583061220053313133792886901678546169726034069892659422923407282802209049609020305242018886802448712550097980266121932471709061268521721403346748913858796440117148237625205642744788922417915095198470166562045596287375662581821764693670646017967044840387046051717364326757674833967981901425179967097259380680259595262813307892421794733779501702663599856794038935738965040541680033260001687629470057636349357962844061381843740371337398379961146916021876072285728728342961560409828269691863357071589363786459163524938048400671735454666431183980449845090288580617156409430419778893116167452087279870645397230305102968131470117506412162598242110321426076091812533723744093574022249479926168988230503054024806355167958616181602735397477238040977952309157440658724453038209644451377958348559407310898030037402467747929414886689694313818918243978950144711538177502879980289616652945117137066689202464818745060677900676952154261998340144036869221210285492708268472077613705290242592752538020685949413650970725292286446283512002699154029790350322084445320328999212432577966629506359703509986000115489368681163370281591068645290022163620473049006122785728459671967102831323346673814015362399624814178833616508744324798899906081187994647263420681626647509106988323369269686481835317630405342349039347649215070704483778162157854893001362987556042278712509312967920011593603475440755123178942380993158385182422172419088710182146003098069016636159940364545711615322937254242870978744862601725331763824802717431847213774256592139706019183960769678441426304156863794969787160006662945766309717917273331269736568213283325448692371386315587689460771467642204886173207096455113997100595700143329928019850416456452135639069316713828342997682692846068231900485418151324985999394122388172097957699182544558642623836474145095423304419074424514599174410927605432407565229515010322459054959837041832997344768909117706306114400332873095500269777337404813809444060106030826552494686024830984554374182612950725539592172275827986288306660360990833167060436740153491727510007469873966603698004656276562142496155226286733809874226860956468731895838036269605086327798909886405099044226899876900186991379630173129856232197571698398044869374671695681327572341544096777333637288451672223083191973430799788492538052452746870189122927782293212812849029999321698020358462700868947784608418269740430418317470345107485672379058876559223875058513069184170677461436745089566698266754408617479971097790803945783814145290562672647908217390506415908056825918894193374736708027904849939666692973471714956333950594438121507030885235188817118910000540226601147529940633933125790016037879150422741792039858194477902818423924709434795889023008419959302434426984741024089757959905793390202610417763728932241892564231769614779611532888457616545235865678937899959515475491426701020325517775422301654145508097001519620789207165443735789880552146678877266816593182953901851413740273198095051306057273887322030097077114505487200062657633160030654350519234126394854019102421239026749261094444159978518464101120431182535679870831797532590495041139235656787760215596472315389707984006610114248044675477703057641834366537353127173767361756818458690689776771082965983264748531086242803710917161212978227505192226199627585163678589881472548011041496830296516155175593140917503899999447118717496824044423659021823385583948639867470380051099363797823809153458737213500925882415778269076964908692689522255690845246218222691317452330832037207481275189061702905695524261014813940676334125919951166613498532485751331994063670349606414215647055327850860606956997084029014955065278536254844086700710318954758099732484193038712259714376801727419135669220429907340218901154161020022086358410544166023508164460901823600291143055728918020149162920497737144168210808834449695735410698544179253325523355694468616258032438927669777733768540008529876434464126914431868266334966668989820289202817049232807347208908203842931048076802981628477507315689725037392606596951649128760091714819877463151466586819198714173895275764518755227034172194239194093958876911856332929789442642735107131374666498534439239980147245164785969514776154695063395140529371962777782863790092159517659234470572536509302357193077942863486991324116547782408563855237622799119869102670399985981908806417919367716205003964269178925724401005553914791806720302004593569175852793753434356180415931808581994248256980005613903800999550297529703415579593306396420904724302108217372020928096113015011089565128518813450815074893744013544029740826742118373770273184313769161949270749905264156002649393697170366399903598136318525228240611275719586568555692035754495432884034661529575723055898946003931213049235385491265259362169339159068151407124276955074099953724599593188118339713270344237019255215524759656392852386043265100565992395366155058077072132173576662899112455172382862454374451039375305387944041996316333909512414429507300614631437352851288625774783985429610407975322558219959512401569304890041219563485519179380513475439220260598343051658535515909751573759305589275424951140994698516057897948741380785435102723887993002653756224444834937146198629435494722999856074135733076948380625371282399986552964911692470510801607218187126089533346144420588726108886985118306670660287227918036205214084652942108415687128668023882337098025146293175868772682401978973911219308255169396517584263739898317792243151352670485190661271790993573799769011263796396680017926887473977231181202112961412972210003396839672708669936160680975455050750405970019878944081068600302477512244032209185634447036751590978476869650614124984906708986725008467502121225605930772418238642110963772273554522403437683449588999815835858893512840540882407753452350959233888253074809596756644728919772181927290414786886552075558547513895424761578268785375647336283683998768736742111884457958803986104177881913646641937035852606460435558536699628827002700639528613050122410802676911072774259936479029025366730014771211998601772657224712226960956168601775668925472889417439559122254362190441492357491024871889441877301505657916950733023315974507285118711650539430925183580967154406530842805901512378458239058499992107035818161490875156395029564392394870107722402750534396665777413692282854074866141370845798060850554454879582584064479815866448988329455787571625930877951588520167480698332832286947733457255289189325159642680371315476858882576835823721532133645151379694256749258055255723235407286871094607929998553083233327605604360248143032527340039974391854571745239684717217281530981405431474147403615181876713254789479588434202273468408304341922671168700468756169167161665031520398271858497917360928447877613348922296688284156495376966619943759644427678075979670921827732716910954005854565793972680604942352330208757088530735557683910668525453546300683662616929884669581857836365348854070822679868226342971240302946252303546693019453581523635604830339412767647693561151241071280264649089244679014368223837265512317084440339726117066326015557476870577069824887827368101141370661754625140995072458134384371964059806351255487967199139480978446366575401267066714379406415209992676676649605041284978328705806867941153226264447730817893092442090862261474859093281356009051546892868898575717654466165449574503697881356703024662059500064602649182434503797925496630486902153641087665382427433212275425772791847929567977391151394848149660072777504983535666966914998578759248592623497529240216502577241181704258822308007135163940704589265131803663928441531544677220887758313674872605475471316632274762118695170855584168499441191651516403602703952587305279593710053701450128473524594311749363363155803394877152189809577695577409715135553184066644386328999631224561424782984319982922795935675183811846040758022091950606006514419279065003126217103304979048990123999375195359807611781827525692320875221196643726819792262002766579852716915145169306831751506977839076307833091672698471811925715574009242960540828762366706392709363233498340107344736708406227049389545956088725171723680254728464962488738405539686994750705090359254237170771794605263270022051284277975268225925220125280217516461376989465180314334184706773377178774381982162052176201554249678898626224600981080690309382734011742001137326599400508120009100879188394250103147129543922157043472278583606267753625495012050976800577912276052547193505055238447392818673613185431036232041531551768665274441229743001937178134395334474168958126506689340484744771886683123342759911176713622345314271750426594161540859783855528341089992009219890536611828978386972907834701344553878959975152407976888306733759577726841747480573502176215625937203306706666675481857969849772443927170110230231823205304494234988514220235213345902328217310718366813348491198751069656907915544414625866890080150527919131807012136082501783749040426439100871410251327647815342657491496049613416346753699433424366675315811261888466037219241648737734304075312746050774742585118020864293387863236395384285000182977199960459845201478444304363615761603695428193459769855626971416504983830289918589284911170096459000598715083744600845320340866779579040261450398962421155521694283468385552762224440691533809406048704065523057434449877499967555981012042072034079235867023175076416333081206164174852827791230947664775010113574760214447700267896412994591162029348777324013291997554877322991627652415378303312814353183578509393594297062671780390235212285908039505904932844827810979872236963798784992600725724200632389791332993826647898581990834553419135142064130504614918112229629318971032622046682190169719448252033315534092607283981129721101188661951733873949984772698708734801092031125188884935893582234936032316619180822299387819181460868741117352741764142445701047044332612027179945426980833564855407012677670707437235888381589907333555224134768113289312650968900748560015952664758655888724641085781719602484223283462999883119839475214139767471563338841561144547258490922871180687259715597401887304282655892036498131520057793127181238672779777536672197193612322242344665469489377956064732851135954269635244358553457939198294400671557792647544095523993204094818997550522126152649790091467078642158455740688784079632409057904229281834158376334872675948565782029974510962662194999503549433233376266986936772065554943228131527861026018525139860373416079364277687750238105565728874701857765377715290148493672075474438015673290409027550984168478895627144637697855256373471749489787533746150678729984260782447666554562141529142327710709519538853568553243101953790204143047382954513496566965555812269465657462722681469165285509810661275241912038499038921934821231479331998345138963387116051778835273752450264881185713334427793910522426553122178813818658786288461230040535225195607244668907013534595074815288421349334749572015579067903379008415160527298070757719621344994228438170628380606090558626975525239164677338107618769451961880172067814259331033320880563420834650598795178157775457784734684848849082744620954875698520091875267828563895960311733330937096729141259842264028556475119112286719413430273417890085005806126287546919146307525964191460322309137773933816822149567254935752935227941550739753736727203015478351992091288059573278107729287100195439044844455279977562544546874666398802497837108089680187596663180466453095575160537170825537273293566750506708769729192123010701324375467720955907646304543654178702307320213789525593917975615618062678218845265038599608785768247179972788795932412760414654396369006775845147823851503099092671764554980548032983448107970329842373889073217506387134567481479592238494336030078119433820394762331033511781400590247743326891859138447892426502620746931279950371422946713845520991688613565851136396178446124278674443382307391721507675050375289031955500932177632744845954900349231640928898459105732923448005545629067934827086469496606984641245347339556599844643855837653504698998455319872405760755685838480345489569831650524329060666017849807311949327324879760652448879298918781940277872380098641769285112907821517884099722321168675209760011498092405032957566986755611229476213884859415115876913114666852668390818807716227242899612674825118356823330758798428088239043120779956980422658602156419778069767822021697313727403099147917713169330555654338791973685869274703293050750349149615679302821206270989227086442964991898281734912275528547141273438010948993025952345794803231799050387027858866657586192581465849023913615061937443601158967315376351820509350101651598107628494851821812136451029028531879683032306737671331728104853401760297075713558186361705217082994862891959789675180756466296233901262466159035811093654012857772094759584284413015744663228991030244910933011687831019706244774915836617563062869969038442549272961423610088741261446188546507214809541067253322852196826267144554573640529727653063412752741822994589292324286243843158430140697208255801072372313265123725738761033922674578333920731234102274934435917099155178461883772783668651447791604512532680341016752857930942394875053178871196157182202724733135638513370308646281708970661154433119964993974038353304967558384428866276519570553232088152120999206067714591360633422838232018927352287327196376548446106618665222013909188938713595996129333260090435563332555127033920698736838295139882533954268494976952895232041460539096961360301207568926048892897438274621907790325420169912005038383070204327542681964906452200005146179879184558112595059046075576647255728724892068653145837998090694003909099760889242820915596117496608851732819905546315835461548594547759163550774870087681041158471611627053566274698969544484141690134255556109210445930146498782495195252042309371629235447931675293380591328315676976231949107940082894390649017690296538858373007677618726797285811155205103658648338755080221848130567079933567575458775332661867572851095871380088262378394185557621219221666975190946892463162944813218868099971267928082184166231864615963350579290828715263708220279662771627553719255245294600980902576100941180230705417952540113626316558769909068919667389697004019801157844067825091378402157678721203254311252548168070477185062541978824799426499559459432570211942640665176570791115764126687991003838514532434217579261003454050887702823060764504995856586483003760604206191539166959711474759740274226920025076647873598195748095534472069095665661564358888218182495629766669115041031093743735249110485562205904874105739210483800759457446036581130107067070850193917756226707767684024257215823998726097959478137248571873412876780797438158023867677420539343196411727135261978945589322350319478336725248982409644613498117539291157881695869396710854724046062249890722338610638256430150752348159162028155566608168766972132481690018623428770233086001180894652297850694227876643827942374231369438890122515537254581451978810336511083289423122816923860525733011713852042719251389247505198108125575345048878043929927755293775913017850950880009890090553779557808680429474437705850852057317799657594321458591738115710222832018741728482863001674531145571488048642595026800679249727597918689716835325985849064377851787807433836036457635748703641282625454407371738505222530585248653678764988842776716678734264783592469668957002563138587247356051050585697615970255911762260116052495517832988159201330445051920196767168803622344408979903110195339311416855070444694223659560726866217969870014104346132959255556537982311077038139837651579447427298064039434907943028196557818084827501477960874360100817663776303186268456542028794216366296013646566929293146230595556719048540449551329067939914538761603046247633254379554195145755491607538683624498201410869961542197410939385617194746342040011372576499904985066298259121875795155918641911572908869849323278749354972677120780495949470346579822738906151627489824003436376385585461889864600580978926075845042003548117010799517223682840908637656164200541056457380926611169979856801357513987153205676214089905718435120484381265434283281661281597033072303596120029750422219003536437301976191314243373915326866015465290940225432185001278213227312819951073380886638146552266509966090874982888130987895103939285323511855089054419269264945412830703514256169916053737651522290004654890596513603883898272062960617003074568024345680544790394025764099696075060621761393364587237675818337811949661707528439751756150588744168644452418595868948052371522474177433915025519664567152536713105332492232286490665768075227959675258669256634545985226677821937765830382628641411572236260865353508228053309104568109233785750312306117235700868974137331251867457443320551324788915790386569404340216394668247029943779871991880485414514420350421407767384491710381094932297461434342506024869629779620357188347341846469784187476033146601202495057434412139407842839033732021403036707788026649661363658669772065060161605089517464635523987117438240807254691417228930607082846316176994976222761477644641605206389606148258183143734321654880332212144958335238471664426498929935951045038597305930835357477836534811042435582369467385048753516205951647675153198397086813995277314329057570379557650796664555936845716987242161043516945618328247694580449345660331607508038592556970752684776991186408703036052129589378411051583528291785612432340598909208705255416697136466384499516205628467528126053938181074122734708980014821653881661530453146631344000271572169453256676141478795264578606578527255332941109287490599432356108420378771386291104651426011616592522940356732630642185783649486416516487141220924726672193426552051874462376369428650437984419151320971640631103822576085866262863630307572184942379336102811772402168831876134645229223731588587481859827583949279506421675277048468072552614068853289619423987116516258816370181522388840504648185489051225602373789829187035011475672316353231287691425721155653074214187192955270412514604032912341991832157820548515054923398994991526888970984154120233122703580152582792800187219614712591944677954370918116262925631272806403504686132960363299087327920744411996849877301629515729872729158640503800299420828646563850873027635470562363500543342844660151684052972564266673818831184628733877557534600950851862814665588891526851121652655624915624035220399952960549701937929292205063692415357423239789459062059693893038636508405342823489569616876500890050989089695657781023652785809803480332916599106368686013749829180048365005235779585822011583409823756772927040701160419046614938498689442021913532589410009555921840814294706139030425323000525001157786663545156797467181349876576838258580086609537494061022723996695789472695093978852511572892021965479532524735189221566379536595870947148618003186163968049640922258878876604603051692604814629458601048567823435114798265517959973865809742332318606130006171387567566712598472400405866202069804795144920480740020402073161930557843526768340096136581920750815495173669994095990607454533212121311569413350064589345167556648573645463723888068696778908106993450366981604576850964626482238350951190420115208325089265435503661036391255492443105888756011527374268207135937101003131399796247958828386417983876417312172959319670343452116364314591329580683758204025259760517536972502273563544098807823331920857016632226322704346007134848891573414889284800074073293016033363556143276809932985935523652894867123560896006887146475924466344265222499763918252804659117172468660925777254240617160103700056153706502095430551871687707878584477495870655513730901869353812796541980112829179738960342570390839839891468217460372963672527694741553696078467906981774035381384815170769599217374652943510653421887449478262902883337190792762305346357664564911850641377601947430480465736305703760807525863486322743894789558011266494882803797294215085564955966771613506134631407000693878285075309397101485269700286309736318151703010831387042459059587065286052259625729500013457531423034022229965803034169096561128077097974347966149288044761987482411494306040775343254740320983048362130998388024405409496309027934591923977744687897504165466456439667655991148768316313216946494756985342011871830463149301425623823525948299489253284120621283877885525022534100527892142319388514853669084411253138718458989676227338983816330315287710154499862767201341264001267585440891962195431209703723653553776032907723981903488817394758017490610236186623680512795724833595555947393839300767502158194406383059298166578533632857340481259657388162894035433053867784789256777901803599357873139349430197694295232510226944814964165287529853241153774884803764055056332930600176097316489488101314298189235437339306308759249244592677259876936939012884694143653533572822097097034492742903975395727027683209385396656148734446459113209677012115295093693070896143096613402622965605656283085923455012884007775488515389013127576249855848208903568002891454453461789571414425225534075275198169165113522209897380703840830868887472170974399263214661600211392602996948721313764478720878721460912087422893201998899748740102930689895512490370347348113170644288845630399043607841907908996745900148317553452669021614665491773822530244162568590500622880388937007782066353415329963951681013602403315865104754385496475742363791425521459507767461190795072720855537931626064370895694835516597653116559510756445983571419572954777194036954338031538693900128893085609812689030772103264581073911421081894516713494794960119091677046673625516234108017306779445958332130556661414974738148333766416467106351412710782472824983754243341335161540540488427360906349857917841906270563008427341334389477313530792163783456788854905173953099429155527703825820084155847123523698209980670322982650496332080904014698454947448668591772599379118317623436026363488091050120098874389695782016873465981176639148704674163138096755619165475350171060636960219692707675495900539309669557565763363358733589792044789743807168849981296303990905915490999267686359454586673843091706838506330120145452370128352845409876331069846361702729193545941095204383690052879899825464851044377822781930061174116086267754349900571562403645837175819152524969320065103399610379222980495138881110295533807683737394894500867940688270002045221068559310382382897749200177195298675060089144243369790947170716122680123103405238174943343149691125984121073233096432126097696162305485512418762949893921949335744404737196209376058576098238245811879018795660446653227476916500861193972220652763589801017105010453980517565758650025708616017394764654434528884104728713673055341054440590236678233327288510597506898019949918907270746932855885588943856956746936150710359431930471396686207623824326415182354882208882955220841079744644037836358977726257904602086581599800386915000769745686287955143002737311950533801707213233126812125542585865059201518156835230068821907894844491697685897234998057057763495719683224957952508114059343093636826714110551499061555023079791942865714863341864353021547541066987815200734046230427946243668801030911318312705359889654318491302795203376906025220200378174279235913373074062032452587300786180530360585371696557683963842186215208997983878975531399797118315739195873342058712861171143664928960982175715825603360811752876164459915376982130138150012588371661699745094101017782162230489754377370053870226247131272269039689228732930981013453642543865301288888704891938261338829695175349542679048131715293223190684020354732713458914707462008322910549776020376592023584622030935868001457395953198413633535407549292150905475079608791393479606761845201078566163065152131168572922097822701796474515717299055675440841457957580419885609362855407720266881594926869529922421806195079288529393567088482159048111540400222566452480400531839941626981292208321591746130735390160315015739280853358757090415921253524811972990525369900035041420410139145214450674356679404014946443205833789961746473919293439982423555375282607913670615714558935132147248245960591112931011555344085925620977007103997506948381616292126350474021115457999356723698719889377666514481715127160432940919103373033108628328691223637656059341479578995569855549353374009038770267912803872550735912457345044833413727493664867424559221823913650267536270526978233235845456376285623391356530549084924594953870365607201709033657156317089221140033438052969821203691582551345067156403431833825176325618664554355297895481464218092379216994398009549921801272838322532137126139525424502686470292279910227848464979260639586945948029948045334721152364757821419545793381251351956137990731971857304032717738966579456778641678439330274658877674957904341754581132374041389653192642878973486758344567738897238400751644338995054274770075359174056704487514354564886751760970026490414240335212372999469034954314383728789826129617799145523800378178208851893659410937602775493010371441061919433880838364639425494450513738120988722888605128633419715431991821236147916172905686848421423424663528053971275268406270786371677867314766090425579550622887067302373464414700173346386050721798715945397727914604767206285673240276381501407894441128225454092606232943518026180781263386957832067497877136631996754647273693173265903754220812206810427665665545008148750204518929238519158264014061013218804932932502141697678321537568790537301826728658353510223612977766653029072573974201117170625948574441132951820350893014620421816559320909336436420938611757980920845549185387058573843571724276079701869061993523937390407110080516496383789884047406954505161246824739625402234862954380857436127503316128054214786171630697186465951882191956777266113953024422680844958226622985677074076105179814646257427974719501797977625276538183419054852653926150914470763686308714567999129789579519042589190868632371683971421006549432642960353729240346246707591931993985889795100882260046605797903659427421479122829393730572302894004612792301659578801724086627629488555295069870349252938552957299230399279312087342122610535251801131355184698308427087511987251646993079757853974026350615910980756031868475815990275268327364653974129749316825227633714432215195844312557261872780604711085975538615539818733065229832326922505900452033289915296178833136419434701267567082217931091455608999037796375981002344459635067791002645240234962248651223734679053094611257793401040682434087350437814789297373169561720924827286574364273675490460617246162858723956386765412794749048650730935909156795459499426494413753486027596394131212869358543623217006329490774784874952614840991055846286811249337668139493042899174724593581066922538015648070707238217866239488266602361483800462057403523222522841893602905933465283851579405245417138200052842632551402647164825973487288171726227542140345880414994740734256231894591387912822784629898448677811350732239131183165811278124669408691763692039711496236794272801968815877428623608346849012981996700079426700808733907081693031054133400042701273481547742281049579861142341998709779831419889748663096354501380854552468745116029444945420948054073224266817706887691621126208749770663721133807259215537098622405975234273126005515923974570339335571064554618685659066156152333412127144866397362520150976520941720126047313428474981879539908309046809507124522065034393854461419999805324137626258844624987889826109774511018292514044537931962286000065706547016180176364951782238760250899664968339824913790859131270139388740711376504398502986876232423110305005414932034079417604620925607617963578945216368176589483417436502552138355609420959660571787752359816823626203227403039007782632909072802115176922949301834686564241197419903830671870992047100269456636688785850682038424036981036460553418356620888654864511739165271561549638136302125264548684668222074069508073868931767396251391388428909715713694906414328741255509761832763601271982069188737504615139154083907725997895985497067422219828429736736690440384592342615522843866704134153443255581714887789463714373447595116407264468369870526328557271713645624838774581107621702592163701177656261054315161003940176544151036465617346020806142310228753696466470650532226242495893983570084542109533585144672004310648645071369444771695204700260878745192516650114709291794947826176355920843832727213980224084451808351440631877536573435906901419701071938114375297995861779914709453613054141962211835354180132971523474908625773524816367510704718888428120852067165071826066684849861183633837184112940692256481550884218233333031406998946652019054936235841767152691100149176531948247644150052200968565732083742166482597522224312576338134093625996379861563951638987493532652952178269648149118027835699614112048105662645807618034371855976451072990242125203675429610110110893703421861350587225456930784248918982602508305009779072278304743040316420134591069809945843745210803547466396538152435464038738040562084918020651990384619891422783887466153130168930851940650821920664793138469629819457690027692749212588490255100027700414851044146523821939432213993782170768253928856769202573463969889151044525359368113685032326254822978530363077325041179800252878078790644929094864259210691882637976096898382056803468767132272513498628999342278402710534900143080661338686765882074376986575203274593082537484596178153088840185803301149283621307394656722743795318576767418627784501198152074542227401604465932760928570743685104511830720332125684900187872008377374572387572826226929756478385174111291356950720523966959342993062737969600855689526015706446410456511726113030177247351747045371412645678118102709270757477625880360337878363833328403925640410710019344036134909749789361640962339231631013982404171850475600424786166787945853616718842797175197748798708995833830994855396700002539013545464987177030391618314749420707297435633948076474737566913122088683504498590451290340633743526664338353694541227559911566763593474659557866530178485992731556362997036295785322894752109085088767425712567909887914954433030824306023806727090531600186089196568901230301519863638843978793741251213408145703720109269862196916304052404540166340853039497221023245958985310132150763826109602094332863348491723633191368465060956038250621954353171829947549661118138311218245744211541669228925632217148823029064726924006664891749218678260983931198104501596085705120508538747141746263250256901107412015257347291485940892109387724454880379292537709276059693930794929207684701206627800065763788384760763965332443269067633287198809823486826388432159302173876726176290367254438419147894918242973873536491014115909913598456772901761427910732856508011421087367509382793394683948566059599843072366733326647173589779520806563548728975762663365946309023549103719457511195992599387873540217066446188775192356135860266935253314168251760125022177163410728199295760163607861623400800247990379956584488044092286989830156220437240098343808701092589652494558453426732339823607159995407273929060237367095347395864543258446733783177632606892046356294201470416179893471147145630075191332288082648147837260048824846271629306895525729476729683956644482963756089353949604095134558161260412451671320449527942713715762358853449593701155365856036045882832577017812104137541847283579712874909223875646226842609059669218419880714839152019606837287585877460291916134341443952521257173370280185588213311023295952660121527975093446158823171181453308821155002458248236456039573305844288103208871146200448849673485860215842587538892899175059084828665885013922009916393599660659657412139678195570338418519965588819723326774416481115857694121445784682159792165481424641889069309655071467426433191249686038839021786717417048230880247250377229156469863405303503272718115027438665899483356461192196088870067920702077499062205696574971006374470218807551707990506692504950906799876341892958924277079894492219360786976226040903597306653802179039690058123639356978527819279087493345826528329641437546525357252350271078709071633142799184629422503402854001965076397767922679414011013325226040669147553931215422814205485707984173458787336390190170780469626743011366608562736634585194461261360945884071718665738201054080876270366434088613519881135579991007264216339830007389808107587809023991875956880924231751993793968248435627255613206934463619834035075702790421004618170804835537084796465812353185872874873660618905005438666147334423574504148957820590052986271168692156424026609835059426032446147515104650200097253489831914654434863804998198321053313148253273486274982870120090894530866654016151118124926320284902329931872946586134645002883977035508925825693198638147901219643957633167222176566833644468143217848132453552209948983060105010243106633159535940038668461110794022883767197954539629356527947978847206099166748875425407344259416489389641881156176997426448874881856912909377853679050570947122222686452215055104283071999442161761733578280776665695463526402406202865456063871143422929303800866729822937988967918014004209371949527426301539697796951272413017410892340985582138532600505454767279113164383937027871769244671329939266864637378693779486559264345823011636422565534219579324239914747251678339431791851485489897785386725407029283576510317507592318227749551313653299481511590504402010190163126702325450536455323182620149487826907932370592599374659011404807372127281275287665148255494534080633382832273001571491183883712144022323023652544632040976425136040549057222573270580009301469301975673732755367785752573402520269423663261609680613028158534462310106643255142844208797892089480661300021243291996559138254857883222699978090859647002436872594428038003213629669624204560998514640413134427887038115040396122589871835205154722481181518692753438790187595485712351717219202030688245948227861229427511902248924534677370244141256904840636004556117118385793906662557540977968859084715524299535711062442675049776608247779161154436756173634924319243596757521112844404031500642723092965825485118177154165635465003569501243956532172614784435253352286850138706780363305716768258101989562246173124071289955378407525266512136849459652585814217808038613702380977840653282004974271813502229495833436203222719629894383752096070358615927717639323707407924366984351269789977675359323987663089001979579463655151026909386205391111376731739486613864493907518819527761720766828543598266455110707465326982761303504004024537724777941226296834624652310588241898129507027358789927233903645663274675413194179773059584447118450203782081786225901932679417425044077304943081089924130964441463446050251929507639890257533339167732494206199842121879141220532193772028259165104486717977446504807997471580907724286449537305047066685703107160104263951690095813480132561361370377913697033597524840378021265797219306511342068138057882879377281739375685728450134561900110720798760084844072869675567005743501699361355721191760701705423553952100901740938677031184277630004795026888767433527550071014395483842499885391847552663001529601879410002543882130985457849288604661623947587315734642574963659186463643269095375332201608692521565266431203748189444592656845760654538719225011698597064046678255605502230242294218141996816673836377945286529527812788264103545305949714742064255664473502020325933048214185939175615413271863632366852118273131586492881108979387219071537537458348473514099467832611059799175506947995980551642548819301575994099530440946889847702495856391979529157408047047486321995830849400290778684791585327290777237444364524511294256217549786125706724422478209521670861912454278801732601152144618120516873243669407286197892784319699962974747803506322597187474074626653669392216188893053107445421299525395058823491089326964183952290964201983076002007882058613846428615070937224675000564984135530433800919368367402163301128687254263682195502285105281100169220009212281051907460850440105008461917955984492997247617442032247205831142919103694539057733217249579262090738178877038310827890406708523069952714953513620168761295141118328782234042234210259647533025200446001450578630466197756282522005472832694171115796150638322764614670285204269554796271498253243205509299987439981315319209883457593567927491576769736119483366133064299446512201196092934426964752147481791540809150416229765395070822423707694717779740583732552648586870854948729175866519227640588342857859914472502552093410657226006764518811722310579217517412835481486457958122853579716446053664713213768575646363260111693679431762455871040256745181038402343432449866626905207065591266686850040647641976969011835793138636284786466201354697671676413504720817102038685355116139626008764330012581696659251201624862357651534702894814222477791219525402455252006895113138266288372539717891798704651925865932464452723203378007986886201807565038260616758849733034284815678178561436969745402551516065833230091077509957005758778044991994738967195758599883391779396405993626227420176774273574608922261662826019461364845929783321116181849796213415273391288319956893202529902078233851068449507873648911571516645857523996859524412240502685966384106780277952135352503240195873258229117161149624513343945318877797855267754266772230505900932535695811178623304109818480134653740725905756615276255331530863219829457345696214589200415803901675536200211144160065265299291813502604761585360454393873159152619892274463605505156117075281179253213331332466026402112529004889593896719975113367343410955038491405441158587495049276445024935950022091015844408336700779369978754898989006720827419539660981511684954818604190147031738926298771443626678795815793012139890187915184231303365502867770808810708164064196238789453263622076988877102665656055757472999177579380752393401580097788877718131232968259753087934331024485013360201403920594399567621546261767180953642334212570606364379916697917283714862410395121460830987575496543096870406931885410725372845373264694228502863336393616227095957225717955687065072570023101989139212303689148106985140679707852360242423399674059209274883077003115325022806044086308447685723491132789322175758818890989189942710823837405208806014437638861192362229652144839248165651161240947764751970425117882749222049839492984823776294264476989062708466026074266119261723643149545893044159740412659415667449430764236247020131530035835466395520644236107351820969535831477870854267122035980587956854848192316535247772412175690001849660345071016695517613833037768394485198454515006186998885066309826789214608148999923509730948546224215145701165430041609340145951416848713874456235502016011221980773635685747907537185399780137422707129148655370555973259984254614064709388206413518112355752076529194229746488593282819382003397839949258503402316711239493334746999858535424405089262457847839111750919606869174058715668713453623486458246631727172903638684365749758750701248780115792545221963585245975764963232691353344039982949975915596105579308393675959359812801025280568547889661810195642252737440214098847976564623136129456746272823143133706009353768653082077334166108969287897225501238246962388528681722321413801975177336169265119909932881845085008243295966597884227811134148696275689198645644833557751613689454459707109673899373249460388061176775810516105446879144831605091374499746589772831962375252759268277666118437553052487188198509052582493327245205164354973778832706344948170358673870061247245865597797547245132763506210911643795471307607667776110148596519683572556130085125776093260855545327416227518932796314285578794924727019985868023626044602652043134685468250801708762778413641848635835579368034577221522429074241000533209844992730263617762816913798004845606768182828186139680959723652612705632106256698488400622902288601272343972154685452343701772368929562595131569100990249625621953416869306692739093921250490918406778700902267910396596685258641327149751642715199520670794856613313058428997046302286942400510450900917393980411804194524849754006697750535695636238300357597227283148779443939729163853596416138788589708928645636136286227533959498008976847675521812940270530692435666390775303881509332256486316589746329914215321530686866874456269902545419917715495105774756120013036257531335097144303979665368018935666525223436445583083249655015440983998641237464345083555427312755533519118537912360554193993097059899536841522234904750570539396722423956420243243786416957556324639237747176506055904099761042292395114764174682777316716358437032385983942076491691690999888004563750840035233701272363785110664048776758782101438819153726573246063778042266947012529671732148773787486597433168192153896474369000938278741951004961934267598102055095920415157426009369304757859513680716952194184219512935603750497025780417036571808313703613702309227793867862779484209663382851055936435586723576942287077873481706421571223389069235956459908622489661246001966158283428451486823232271957431528863444619937387829172274171583464408409309793111973482331972048895460525871778940144998668929549529320269715133633025181206399745101823145600075367118691868069969204416965015752486126707077821012670644561341509030549318759349089626834397942900420170353027919165785191533471565806671423792171855671036754898240714978257284306756565303869062807913067229937427767273057424923069591875614655024139926547205229918114765340504797511178991433470231489864755327239097709055012966903110742975906396592836452387387023608808623942733270661544719703713091096933904631387468741942159918363550698029513210366614333175774155421405735540655679112305370314070249143653890506382534015604653054630176003734798155886556101393133307983270207431245826970202110688847526666647994309961697473397765351386947451381574191836419646360182493828320995250997206507772781838589156560465543450316059361134637046729498800833527832188332400630072247667503998495454187792311121063067352085978641399939289420656304742374441249258573540542963997424391757283969990445750320168689336668803710959174133237978734423530320346227776638009309339886240405155657920924061666162496396077982865024252101399533609131751488200767152721667052018637388877822880008966300678243826985109759791629375579945526836164692986676716775488013569304942903294573885946298359528256653002350697221680402514935049934709447193552795918408731343352359833598123031677266047918809088484259485656519313230843581829767120124099308135358514588008821398542371195652843391398680433690790599572687643698293048089357559202047371291725980503948871665838154538344433167367624829234016124804559129404018126316289122012837669275997011961883921545412911634212694881033250400285801985562137609372002738991611604554450904963739873355623257485317503912446596628755328140583248503190976780516400999834431072229206901820556553401366217538530976408544545939754114044919519707681312096304434515935733257517176789646258094302971960300245159267007072068346251711392221321589779867230813063867226045162726298363867506372642704971677848560154354934231498667585283771633127366080318949800142576783069393632780097942646564987686465189027817527152567951739707414363238596885056081585813564671511592128928755807492628658007441507879194321960180692364567732548555337268790740217564024936362305596837002705991809699371948198939698461640735344527479837455722354194410459200399686419106271083231610836397242284358949781354266611974713951264755298193890939159201184507519001009295212664237591267922691621186737187201900350661642511520588999386771573660621909885101300488775928788915353339417918315971178928297444045756822217080398286005497172231641436111128595919600313003783500232896461699589549823852767565945346692997738573111272986242250702051704618709998521060668002909256033108202791557191512032094032022640924335494672933482021375729049022477486415677891703225065131057777572388526888420106862731607450617103647000329862733267746732792488603793294794775353697222709331893765253230627226185407964837759585663387791273185138223182052619449678746370475298521382495461700669351427749460434679566732967391673826559648289592991759044894116605990681671333350543250914784770538942419492245564640579363661173616960758875858663794546284243832710838597516798699249988918426110407578463960553324990852024247323751941890878263622267300679855222981398987095116359840225302333964197383760786462223559994459569048471803004847632652722118113582569008456781964875567703536556727758868177424480509744065709259413311035917020029511965973873531947892293530344941927320424314970268069685159347027209333468316751154953738703239466385687301003815197957761759821980536961694538941091003929571773262227497252533491226695221220740858101302748393124674546487291934857961382396775063289721959450677483110083167570243441540339246309192318949331624215989775868719516429445949079057499356377258132106276882331628813998070087799683976409794265531789406882893327413533005630846085646346638720323935998720981723410805551681350829344826433744189054667516545143309298832368895168645094576270653804138904236232258092214964019256684242904880298195887264003625481852235473893335279129291627562365592472642773583452718940544431193962813875866982023074209125852315098520024039478216601348354067383460052909876155442527738459981169434770984115203461637339520904812717690337752048977932319902757261845015526248162856688546050946160846388817562046119109274618074132024904607674185912556153156663055480209034403795448062559069761052946686570699163348190277807273764479462375318678980673199219943796814125441074437677043008724122110555919789529917935391451522363083910831401041185889134507007008745485725939062052755880701457288739730921565534125988653320047416711984471423743314279363825065865700019757194369489644310034588200603828544936294786762024737075718259619477115859037616395852345315903512734580623089942346486286518519877423465120887384258265029625776398943213541405161369926534296383355878359215598449640223132020154652550135076197259215407607972742037399965510092363678317017818920107344321007325608887822975239059150134416564439236545312199534036630051162921333539416001002603626700120613047311727061036772695851849177638042148668365400571116796007817134172560430952231150233822826344307929957156314345968453110063200516296760687669974605478185881320116640175440130914748285635653504970457513768029800502374331047647510127741129386158590681752868759499415395367214860692813269656212956049255996941541404460948117762175615030841093401885003040546026684504268556469006192946944380708585693104325372348357119697206389781126222396543129800042769002590922905657731503071771436305551900120309156791871928906429683128845403168117025018803710090009281877569590153714072095685380687155920414521838003675685992137990322606159353387200935023869855031523016801810289308885141634017620052447803371065174942309256778255047253479032456528890363658390199897108480006311631557562776488876396172000375699634981834740655433766767562795343884523096167851962315573801059932319416607296206218685671553524521993396563560020209262091350634223262193668534584045462247363132095366652784039114074163248100824286952075918553864154393385148917325665662950797792295641502592713220842588254348052852924682404525720551078847399251260777857318533666807285499797256869850459207642155491388050018706688961679166847427918311146965914951810138246727819290286555187802223360183178744954607312593192884647867703132545969888484492127492628239673623152855819730319040506117066295674545458183064997680333949642043893744640039523494496690148992908583702442824536199907612501053117939201547327249083254991568422739335414692467674918826677891049706317449537147169404627880974537851398294581437641748954928543012622154279084640236885755188317218878707339460080524951996495176099659629528410836635868031127046324263410785501024329478639284812479686113592880431014411435934108049051968521412267693243989548999519808455153763965785285134231649158775537663170259065357673305949070302059084256414614689436853533168574494072721592433200901092098199707992852442540428464419339830639749334888006825054539679404743043668266318367488276293399067474840803100952727861871081213157976596211240716576530278379913590234478489231664949488705584248570059923934323240267786995928747630290565075197855810085707789455589949700702803130443417666054827508876237842301127238260498017649410318231114177289474664948599068578067708123294000930132821092006700765179308670054205841991916854858737229734849834835557729449917274049667861935457670680067545303544469929766027125725518010003357192380242317222589929290472608195511674661131918011273526455035872159537538047987339611880607322453047903124403583903867857880699544699006913057520855531008185686040907004139673538280350114162960416428347209609216429791072119867897708903212603943632992274297511498875682729640818242732549182211851508542806502247301859547462960354112672097799318783103126915976131591131767630882122705527300050193388219940474793736873032367198739344851587669103739553066484267002359231541815671975214925881836483525169966902434558600880259275304665632544882532354678225526522521746293823891549753288198673055530978635708805166686203674238997996472775599628885941390537127161821311370050011807436786274775000408312041327766194052534132199213535970926603961280475340848412497980565097552378408247231277509679351931296478816917517091378502283275001733738017706291986512654706096270589362160944024678773930051840103946011474646526607456612572501446560304439167689596286595374443631141315986351587682018924905892971595840226917995975964261371591577371458680051382784800511216652493060693045814471752830371489017539027752614856350255317218715201540161956243614410990049919092385889150809992560465636959968828375068396642511203291417352971377742010773526087651402090089060147284975371130843397900284000810806317475470836886065592195062401917488823084591580158875918093987268157219739618928495706013682575676662370050631697719142222367599845172899300664241784237677929055824774916284238122321269137187394544699177245968985678561305403193918576183024863425070608324525664625848139027453716939966748123841585841503204596700536264627421277182607107425871418264751519158804275493255912195604765823030835127395456420481835304370981063608151389774698916676834030006861661976325944344219134744922188807187349000802988943125547247443751891743129231490572184596871063648988332595615463841076425115455525612565439523406238267856731369551378065234735291001606768170486126766125190282275240632893316611597009556199374554380836055443421929643091246309152350718013885495476699893706889709384938207674773473089565472986392366603873987494601819016713531769665553951766609450962918967093767910560193337045047204155833547914726209575208869441034398358102771738668969727049293200420327642108753057713443951190681023394427108906112201895387585210587052861344487086726148928929826348312323911732101303211162286405867989284689314336111644995176251619662805888460800294981545104197483312447798866881242305800022219985005129586502751978217236470293816544945044139215828727284969836415948002972382874579325866707458723976211061625634489029407922375670074485124137632755664255936398378496925815307025488971774655875783703229187969471721747755744842283901434500566982461015966239777441054057173249722248514395456696424428392854992184413600797878966916262588202398778570070998760792681008091803650526014036833232262317044813443947000073693343492298143746490767306141168774461132275206860065575816599296214615121512292570743272089275461661376794613667401260759092587256710032750987089008406822108325605812641964820553475227185915709112330334954393732921329598179417102359128258584613585727860717598398460512572054599778329781663614951017049314266669254021380489466919057345608159076804910263382000437431350570509266805152712881393026116769104360676038074764592825869967556882497973937448734311097156012723318819964662735493624696410596504289849411638148055597793058284528456691650120545894965036905297491587488511174884031509736522441099461915110504413437307308493552492940769155473903377469011552944955338066323617899627811502605789819498846457741854914436080956037099453970042761318389920427697758187872978762464498562560015168566127943021340681212348968462923480655904774584216030899691697263808172967677195011122005039889194587942434563028181652566373296550697850891743181214786748815321045532051305590415711770809709617406104627172522203936283200392488894285559870031098750912760002827911462091057254590746899103059679840239400089932742242686718904020252155058037883623193331109063969508034856898102930031577128269517837056935105479999887092032069168046953647864308064641768663207313333935884973640699894712861454955114028451343722384529931658474530403154901294601073526818317957486201242039075624691849338556254077582208823029569671698564297612195394827806513075419749753014558200085166285241207290244603807508461742775779978017632686438947353413018403778406662362128508467844833680985908135483419743500948135775887350884382383950457677483475028874192889282590681352185170698662866310120899100456689816196215492181717468039970678101860766838705018601668948608576550176651097320600764817100466417399490091261508962526978974855314912755599622084572828390779545399346604706657075188774064777218404972776147192184478416209742047002918972169199772209084433943499745674676275251301904443482390307295203943104545545732566964942093839182502832500693285279316714507297681705501252342077106086372306819384477798664937098576056804483622907165406149331662654295819570577102494269559977063736262398306302552295401025161197415723557561341153536235222970111818462740648277428347940496125831735454561415143185610764871160298277499178857453861575811622033028339465470964051932143386564712944987504604900744260980623372098596603541829210940514418669086887271368666501580508660916152339414333983386387872778838783791544268939494666308733093010302074686696786208478180023544912857952123072979108604709045692358341509814789419154130274566650298870390878591263236452065455451881574427081869845010509224378220660512096953160950285786173918159187000852094198976732854456265742846214436744754425304117512676458098318051464662872679150323642667207251503760562811923789771317017260458104228748683839132224890246347159935001713933494388409010545295150796386746203189757449242845380848727843337828556261894713514581223556889694236333609660222049111377274592074313095730399809754034269537952013378729324221242145202212615927417468866028414275100763919775798331433735204013907839749318621727404436791811705834231470385941986458776227579094839092695276440116844181116746424493792105371749329492588680421296691212100746328363295568589677463745897960739346102526567513273275514316958672988415322366924319565795048223267434730274436526881281684448400862051369739273634667609472187870569594240713567200546399614121460229956147731924618044775226259616926231526294541724209177175958139477301015875362572876830793502364829242078019550652345925059888628190919964574149854903668705106006891909923091423646331536198372568473755201641035875109361896812994576125148503517482489182970654240276137847670143210759511427955488830463214065085612812514171769420903653952263464444852176930960242118773271499156139561213255634657448097407182440230123027598283251528554142542508788878349882446924456098124269589064931973327975391876990419593752295006461099122826401922758983030352347777615772544869645652970316641478585614173309057407075892613653497287528567279236484203166872922553555293225802448597160282702242554627434038324759982427560346658895681042441234042016310449621384565984830603737846049626381464429085713457481441538575171392167369627410730061737743813660740130979295172791256906722513505332888955221983372585953907940045990134493020696749970312010008140015547390484607672244847263328852062666182026373543130785713756002799897284008099371687072498982592906165293496176165422165670530944052146306220427375786376314049921902462656888765289913881039730494061716578592376639727411332983360013755034514504739962792737865208217734169647563748645141100392613992556067577777661540342991442202471038866147529073826738974788285476139927952377753981423460619932476290876858931419076175766157358814814394011293155162617394702158659982461338617253035354412598290943752744197677597782710252404720731281238726581500738150451048937855379971675860028058644322665020977881506822550547576063429195343170776480465967740434990852287412260971795163766330069373484277097551628783812190489258598461814320078875263217094793976475122252580097641756863658105434862687295611634905603560204955383789894666410330476066892348888920704802066432609909986116826602063220498812678208924186698537559535944150069078590536168793760311033344533179311045037114411470254246434609169054160931947496372903212784909727177219237713262730542756789034964905089266503169976056117733342371414492082135627250857692391027061745006611907820276139624736029294634295992916016045994399866780075274485287783758641780023087780748741120050197725467057397699098758219998976617426813732587608035222175419151838921091381605823984296247818809597851262154803486488793524798064520503643112104218568540602523834160088180895545466857942906287707427387539236599058777289943370203614836123112622605201526939089699139745563382991889546702336155342237984729768417667160585977537674391851226254535739911286920683690529618696050524832847519256923137361866685438116531986472450717441364795224012271473509071171138354002251951519750333930754796992179270882048230601641712243012371238594654764524146779660292859032275609351824289372703543865318059926289309795350598130753328896579001908222422041888381141821295989960063454140029765521280704942752086688319647256941544005322346802937413506504602545267152639197667532619218974764950265473137652992811841694208877492263355735707079367178320631144235157716767320858798991302469534083298116913255513948599205447964902557789013053953589665498605954761837414458484107325819787603026004117873488271160665108923306263586413489204530576718732110700405479953413772386792895764147586673665340751165093476822100311295522322653259674056652687036077423549184832527886565350118020670260221946449941733049748950173325651135523118335042819430198534139437471673380152135807520422656780055771963975782671525352930835932706626892199878432829711519363215085356599076171582315543671004875789992831286830288495022606010868513300553201340198472124927642899060509911709796923711575471713289342330884125072525227949822412831769376455740084113551261753529557822030325062151150356456885203673589948460645748015533886902991654502494869444602765676382782795982485028950472601899966689674132715848566022297288145456651535411586976214812330347214934871179397886810479878762801258887976983599018412237778519657159802140012909571187203795043733251248081499964932550439119040160195593951136764656544927447778987103028326248873772457067484951013277659460180237899903480539236958709252082177554712328755915280609440975196549311432730215850303635492457330449774434641154722186994634500970276696849922558640574112693497648482808114775042107780990060502514039238628214572482648174980015655591257491286770050789332688003258191773218028840392577978228694926191363860650482305225085785260733428886931881219502358319721421842857499516525840498717711429653916429924093224479222027041501091857943133971384607663005038517116466857239841859878254376337184618340337408044409410645111071238589481763778355780255002023656604433482478787644876124752692459385126361434034512867781701063128516210494008269557390373484405389911913238372326380595474839112121721741562360579961243766578150232916493028321165547525098239480219343616726049852975686163121519974768718162293522583103629668184804381985874778434719688209206044260433334359142868583875583230728949156122402371124173621879385791179506931612232718432945815535929991532774149999820947758694160334608462615378517466699042330228666889721715414050041770742255439227726882366514943925370580321679075851561710579022876444683005988530212520453538909252207790053430006153604198712405763441500616717392696098828982683095715375740723885346534274896021300953206508990406393370338694099494544322129164144768405548766199268958703107707778775109791452652264720463644811308583548012390939397951805509580448475805284212352872205422959994536200594344110418036621393715705504197346558964191468302292973055341204705513341587754817039043072939848708578325454944407880215420241811167551099146651812790105095361293994611263865149332516723300770087638905095092064981605963298914652839801810500274498002522875817362035444604927950335444771395363433448990444428419560541133633270856080686568928904723825475520469274817117897576318886876049346112452496307992526746887762204012056918733207475481735332041270576696132406235155088855503037527412766577309218931598113408661248778736902872924575211233636015467630274514758068307845817530221269313257033762126020785924856001945743555486784934417467067525021647757759755005903996194256606125277972997653792766844201089443434221918954902377611872826961413162814347807280420225096113707402627559486479270914783786457028085271229450384121664630753863476581742131142900807013704166505164746614354865463709080159370705992744306508427559599585965855923220483624817464697511798275214566806267376125576092640162879479676098211377484485798354029792672569151506000725755027875084264291792205904463871368140190694296591695786722726071990038756719404095350277635917244832830223007128334977712461396863934456767292501483288655010947805121674071364348289407537022911595781713477980282164535848939284463681072328973650366917799151348880230328962444941519477030328447707516790880718377898301241205104921361744774420462353126453272137695857066868458961466738476336583209811669503399407653035889791182699606314166941433908684773049939477760743028380665921705633412205855541062333906169418960917183056254007476658751356545392593358282923298556284295731836953567673251211452747073072436402905625456693090775497868458457784134530795646251989780113029230118052062837290489241122841819192003742656027509222789848414534579621533762737023954358964834209084748401864629012329374123501997768639163432188940856799513340733551783560720442003286498627491303249461828318739219042721497466661501185677787564837967938593786891493165725274965757681947167379044311687930093700019223693714910382985337458704455004173123799099342349859786196864643698800325678618874670471684731401625847976007187745234751756359663082527922017456057566343861025496167853427801853762585806637414881860282606410190324276787432226410260720264558663911910212076558920324645096981448867941872166843708758120048493525967405114966436817204686606077376197030203339317399317281357214616182385168980996086984212967121657568655352085813320573744055036844594602221951789723829551072849941419236733795050984758131497604766188611300583029084207860798143633771256011398561933053912919840032436682950146170162665352730399535972404156894128150152227433214750807392189746195095104099262756632121444652767579105714921650979009460419078607580270963550208172910261229623260830460848967975824868763661790956138942457995775116608514893631780057810938894995050826554408266679801080969976082100544631478411089302297010134338428373733382009088376934308282264932064898295409554500288278721984579720793223149624982536450275783113665739029271655981720824392139328413819468585687741085994213906910710158599079219616239132664057490999731557570520939509410425324043143216061036654782047653489420646293115067949698123301443829453624035268015658628063778098962545209239540414554783524784078757428697994967452471408523977141370032073275332139489148308995985416995259773047326054033776183475266542360350836405633686029176505146406969434568984297465740797826791884552238099516002334665048092095145708417800100004656446479065418579476527371611656496306364305756615647226954190647512970693371633715138286582253916140739133434448128599093560604872313822796001612312755461948276036282591579798543089173447967189001389267795502898680133424340571152728214159787792321522210445285522896060864233447857941578332924185849840173345643982629906048883168650270304978256091061601686728127343506341976956937011079262524503323860577779588668843799664615400991153163294438322049079574487397489783108538750952805638134737422487091773586902633198698502841105412928062511303905458024553379220213081585231245419880633476032904427519424974861545602759991894585861207893970872514248736923863053319361584490348602660514868245174566998227675957722777410116364214979409975072661589814559416270690504064803314202754825475944854641744097048023334058700575562596417775775720233968834207615040538302840196704726381071652332928588172813691797968360051023943996195037472441101690378253050313090843394620355208717502017672452835795890660073420044698929725432816225244246740161638102100651989517012080490124297425763545312837571514506089083323155320069982220315071867828686868902235069432427011009540875677012181454750669050774014667117999160413205249829590525770125495208594799105246508197332246486612860132841796020735484667594036215208088170820363137810706119747836451877344084465497458841857725057062791771718179634585208108944300317032109727731526818783811863903563999684629936753812050701911798420879505860947679522000462127241303274645547400598764415855416540476896181973100767933189279774560535413573338606501913540680363327108333353203446341396180789212521719856419171984373707497336642191152189837625632353510310278110082995192728896172124885728783638626012291529431315592473424083124390480291882144335050334395103544542032166987497990267793626718945951896624226964957812606265087665430407569823079314244708047641383566305509703356516250688669837797988444640996937122482838608452305887558757791390659943016857722977229191362314417858899807800544732883556615890595028534605213773129353701708724638806796206210597329771154201416544376831603954763631735518954158567611028487491567725815569679171147665305729642533894356432956947964994486568489297823056033908988820530962225034532986883770366908812804376476444553208271592073329182710521392328733992157810770216961640753832792440492886079357202589506001880680144908438291096134058757372003772408836185931302722419251096116947605995190244416799401339431910234036033853828928871368659246696480053403948470303191508697019149506173622883046498383414497781240546314447340937819370147212016936545706069745986402299799502219469388107319325266166991681131244264161795701061621598100910110987381952469027635382584865184737817597820345866507948515125713090192907759443476345660995456253622620161451644899470323403777246391834019827013877374480512814187829669034974947083611722241454723458772593376153303658032902011106587735847730503988413685059899698356689677802243615969040860423971231714652210611605909129227090552310697315496758389753843436817117144472560893794735732718564396668404677947474217585284524371128461576952214787042591848887612592449413779626713083858676296631528565228088281080381120190805124735920540051015110322420335471996434092630273644555771344246280178675837312150892137734749108301246682249376238227175358977274475895314595189908507936368694206452676940597535862594651250808955294320152088533216177895355021373360957806944023437099732314138881260755824140181332450273074619230814526211776768906738383909425267666156862133351329477574338142609228359836280035124598672806409703410478028997103759801718881179513447913331980580113389803042125210084065236709223758595500005853454660908469180770452146926385976953458966869180543430952435108698966324734205135501730797231324351271174408371448515601529781822247941796624659308020131321662354542710186759200590172540562463717333447503517355719435754723651271714522066139165385705637359899490948896931494484085582531886790864304232477525506804589982765660385128445041712772930503756804287527848785136277960953030244806558886912531474376894527934837857496196556258745778759250359329293334385861676116396223170831253206948918237890705382413459130429289486410295135282378359387899161514503948421322960051923385614639962720515874974107094634939880603599872586539065513466964112229032877139569408152792769117817108813054744322795603018390327727901720476127753508288888273870341639477252416459363427799356616955010019925123097703724279056599411203640210222096195272255782720780150512049421675044170193408489719341013674011764018086644971622014316615970536913579011255976281077447788713130989154001507034946951951774134237003226391007755202612098676595204490373551739370189635904159787705301893297949180853159754902303883111123904660350447550155151767274834928938583341645991457438651557835821065768895181448612223719987715380439936707849806673046720822766598017187444453969335980829123996916580932363049057085119885151248087772357228247842573573635092042081342916664148380482618006243264629887739113846272943668263553339657396698392667081735553289634197844717320518180122002841599751157346460088505826106029532708373413493127645353435564918759646185425891844579428025952106164512252475719392512533056151840941675385983087888408392832575838547183371621882571391745304692360143008060888863481690617749451969211158831992943804789391100596634743770038989746994123504704146223060543886674212006348486637074086647518302029997858658313676502614929842288847949689107352881032227029274343067203407068323791064807869962691594449345264287412286818569598600089209850432607223692018630835612125047738323598625609519019566918960747137988424598510774949969539195653844029324567708031861314984081576233136798070317960883167564314012548383410157797715450028997194744336698479830109950952457830292121530940879124564406458771287078437809187588703436086236410798136202355116013318121101456113441747871896185364726490974656966108570917029004011496178869300682780169796589002357885450212322947008836240152781424357188622015855427176933503720642400740912435036566953975947581429086019721359398355753442288292424854271012310941237231855479223241281086639170478051113841076388255332992218667786758862906490308536343125093980497580319510202941047837201333124796471363549942523156163623809241216254293114282349400861092994455626598112864367190542336559351006683154282148271237101606071244396434775178634019171674621225706407721531206205609808402761218189279014358521553842079938663479167825183148009860123055433663995222520634963895683840487495481724725197137699835259094368644501047129818550146504971569804746032079933607237057201106955269874649646417592698297337155198022467669209551628145509694118591636819308343556802273099701932055337447059195610744078222232122842728770865061169866688584728161678986174118509375689142728969519426581869308357376224479325876296772917570586528063524466690614370503225022502017779371439358060476393537794637224321223582940757504968625998790364497401249799151408028344747802196798953189276782859821389567848416760742314978336833080059853603391924838619338354295879708294425103070403797952373799426592105448071834635334478048359538562229567622653181952155302717304788621723225394587408213492501969280816494546299648142967883362016872869529260697021550931116927017819627957981615137048571709932048506011282841168569272140596425925596710447884448975342381630858146240403656497128544706665204040941164466213513613173893885940081445565956045003889667058322396304471549896204748464575867804087269442850281096364656103097817057683744542150609053347103332246595825202874475034492745611716339268136773490281109813045963416587223212680934808775822416980860623770364551227578735933341470722170212091712938219644202885272146158190983756070711044204009722351691892327360994097311757109583109430799078638197169032701949655485595390379386364661201203267758615678302955021692691319945416587649110143837481885161530027563989347807350354668818977677851719891228462107002548993180308713507613738169209382509015801165873019581248414885701698360883990578356741471350550408211697409326027900190988887528134789748117868611514620514336843112320792508094552476822340313967755199799983336410149815153621408192646668889743562153368598857807890341850964939190621960975420584722306318499661787321768115495824033697062049981850614719843332391398004522130771165815832281794181121903878990139782756657833372224730060364858292554534427358012357115678727074630093193326622184425619371104068569521784697878591631976522803856519117879321717371012848524164480213761765724144493063098521705488615894574369916294463190963626192211526316938437587596231152967842119201649047440016799296290823872840651486111690286811933162517589372269132211034505279234531375746376631369222886176803458510166894544813289941221923456761139470600239085635149141836666231290628418283496907549425844848220866293113334090920452271047066627161571160977617702909369760039957460083953005495693179788626876996754825640031042677282689800082365231107354746324841336909258002149338668736864327363867932943498819727349467576918118320732651923128408887102816850804965656102900855675968205120605771843705316541629169102975738940236629887326949606989995898658804863755448192144562158940710095653371573379652602475583298473011612187172484997116985396954573973606124968069534967942396642576649156095566748360673458242301524467838961963218007631173579377467945991288184856074076780603136712228494230174408181513990455336501913506211631426263349094101753520927236896714104074078613371958705444902011369071719828713825792012378634659174674027931010749655363966878684994687659457819865573958691153299025222026701756929750404392242041175594234768206122944920556014934423311312490634999105205306988346625343190960807489704842054792523977710835269462083017567867449294977731944242355256214836189400368403162670789928997740602871854340052162393643133588210994951136289600842482322559709444762098666579279569009824220027667904235952861738808292062201162173669320695550161705170741998765623041448943327077918120588030893771291922621999849641777581395549035412867345661891612968351789995620144612203799020084532876013387996621042436276862928926993152843457858705445078767314336440582492664997764499318049778097829841716958170783385556368661168034327828039193650766550144031921233980800991802443384676008238416962907963517914673464410908217605504827522156830552790317306845257837906308010435112790458739791047385729355793028470955936677813154859022792973493397324152267223579595521926732228120165693619507999644551830465179636489052065710646543388655612354426002066886079472373571341156246611444182408146920144695313174677745952539264396217910389398458916786821154730135003818662433350999511968077417277324762639190396163744443990176522793722186171806121264519877378536541720397857157278951261916526490598862393972132705030587334973534566678586028906841353220627904610126278123186230529675720624776955679032995966113669698039688740689283426960929941754101415017910873538557706334597710253683574987493677061378866710380808797768785568494065480146943081893187971912832692185156614391292547683235341702527769273655378273151758834191049193662356489856380305849820853705733292562764999086687439584720228161814840574065749256515271871908041342579602882008685270896035085849783392730366773903828809235740040033655142900807573239302503666700939691282897468088665061707910611615479018351397143620399587145997048110885197610591982503092351671885530011975729549792212556728587862793403497938699102648396396307033237098510020185973073779380256464158053787401985942261932974924863979287622933951736038724785124921736092896593188685154952490837381403675659784520679261814858106712618858955512957028307018850683522758519979492415126147243174977427588257314877758888830754296114819716483712676088218589139002472619245781188826676859341100379989744240337635845700095244246747414908524756856215971550369781547984444407967828456654975733083407619587445303926624692492729135247130500134259291654500845519250232774833199853272373810215475948523307859963732853414137827025330858762062987855543712755699492597072527532609592217243563932282662434008321485281526421297410666063693875743152407388135656232008339509085678257380534205191138027093994673624802236974123210325719469841138379438315085341301966349554046515768730756306861632263205221420658984414287581192555256681960511034737260324400888674801803609808452718611732505105434505060605582491347874777454190898187255353221648902636262785858027426268628618803441904677976366820438610949735521162045945295968956113495576449714016842544320718790563788145240762537226899480486243187843365862236656010617310103106351710014128992022765232267706913953798464528423860012227553557842809227586944031574734785911403731501661961188570020585582863305834719229897609499537439055287099967122183000834865228889497188052521775426027849779870133562082047193629329004674750666972749754476087063542560153684760358941113986726990878509237118023112957840175810292850868238461371057240138729663868795485324402424935041704783512766377376162194882617483454859253912026815629112413012424582653820321309029775104615866863011692736760820173825864431734292255293876933765348819982175586890191101484251486974287865123799583908246966389204827701586694019961241715494379887361583582178138193058321725117327230347556727717679270791382730705380323618072163449545526414169363177589942111114342289426018787820615064819962961088327311275061409606005014900291665928435805684456171729838195884103680962141194322275674942493196268433769409941201141250650389861447577323765376624797433968075285516515999093970595655621196679808363209428624918299795120077411842688638633114802563355534048174812298838347448837446220656833520265905025778885692395482816344190973380584719692315900836578664459105175055613193548855842471899804063814256186216297967813876616338918987456707470882982894917363888495392814085538746290096527817003880091484992166767142567942939078611984233994020273029732556299090010976065807978680179624511207657739726527381102344484433431783651520192388157273461883385811465507742618801512435025324473711049617050596136506760957514195511129260460604635265987476383367988395308368823225247378527932656820887391088430384420191263204750844099668955646480701633631870642468374104712345869675670551823370815680242312859567616574225262025165750108884854003247063754457347987896299278366838411642926817952408392426237609493736503039007732898703737147422939933349580265833618877221896505525403624953060015368962034446342427130027724659074307739533606344272869988218467558936760811892942647947064858334505628627962265980867125208861104265143795002708503464780818297216608431910579076120937818861861831497257012093879811366445794058319766629885943715798379678981522595476230804921127807162583530050052483575685758859935678461964155412535875268707690128710089379529675287338443687856478033046276178451091569130731643731980358756643991939318040347906712978680472161330189855588141896785798040504114779868130135389750161770539004129592322529356797230278957021895599796048327309981276189937221235290113309676195936683540617906573071524110961412338470917398768068353732103321472350117879596444608612373691202556095606947907612064741800584207036896060932357887975803159878174710273193281266466415121402876686916399635191525113261612622898891996782068837544236626947511459592187279192082381125343668554424217848852037759545459794280346200672379606099632800693784134381674706198947154261573339881187361828653688980992924956260897323140403381573417987140140138339323092621722078737283423350813432359221234945346555521980104277207234354472607868784127378029949975038827187126151661395081613862186721404672611038402867535337087849003426139784210064823937651655508087747057491738319854946869532378211244750148127437191397271410847155647523360770895517508061529439082958327452615514975398532592566877483984495681918233840604024114953957957651120896494181481036101714742529510994690266345290259533703522501454377651394793314282528422267430842628942878990913456850431347582957635767823233068235312915963331036870317806393772336698714521841411717488714313876099896940337462381565696439058042436585323834260196110078367722159174606302596796241873667348442968114110028152658224303058228440452278420295484659386558773823104764109790394138166403341274259586097420424429646007134452838594930275937153210265823469496766226708299616175983119095008177851041622878805280000808787388354804074095389717270583010351189690913774011239814699694260214886721756500954464385114591107448357487151122518957096768439078534204443571859329324145028224834215947119145062391407547970914176193016160581216336028554302877312412845249622673423265262975940451147836729345065996855637488995000876728477580531667508750755140063281909558093435441189503479863928150452217935689168647665743687205233537563990741354556030855601913619187055202816811224271146946136475341310193337189782548026138960939916484034777824900239282992549973503664346349141616755801651825217942437504079254439822276100750272036134816909355056945877563376286846167656487482593755489708691690388129051414739099247422384751567791783352189547689242961818077908983878450674034832612321701700696229321838930308896118158177640015552648070752335924103874603285875755529785705968044805878973009696653370622460959820142343069742446652135613004134165272613148372900437050323741077538710893022314687002204802458788707743878269128446654904521211342476794620519952311758934641856386230563920372545746639893814882434025433479775457902174093545997397078185937991912459440419895704605562697775653745818682602326816491258651404625561585824718346653092668645385638807493742832060615566846909412278589434503842614520133410526882193812814246413461221361778657962370724692336367665800277568485798330228724873186181512380248230161906820812716083549014263140225420285707734153736428954792390394752137837103325948598604435453510424116668516648432757679714502522350776596733496315935600436120816145349742328208699888002659819625658629192636627612878578912504003116386010130064955804877064362486723514384371658343633142164495373143991604032919065445654054233161251860907288677907698558061066650820709780894908007327985036710912585220803379263092058842585484676081148802408364631834648875502363577217937941905128534542494475338995055318304271031825320359041611310252500274699226687992249969254215425855555430759324273718561971183211284418966798565471029604106292777482702114891174902944096330192921395380608654484781790512311031258158627362954300023178433716543909724122526518312441644862178797251619120773718364670485371145522267822381615487850720695715051603717771062274399150237241421623619571532081618159093083587711675467439676578032518043889523863566074173886819420407382948980721325715501305064323077420477044589980899560042508037981839049851517976673539816694730210211609771184811281314970952072507804478748503680933812200987544821208940693697805348558382677145917464379852121621842878353083573388297415869783309442612044357502192457938964488535860992899450981709307076531578386458969432810797292707197851555235661871138323456989320014114143780167294033802050792932352551920616245271450539444295876553243881580242488404656734136510983557338367685490548108153908803486767979043858060153062817146934798061950580552923300700055725927664617717370251757033641106132590532837421694953761399480534941609370214665059391071907327078363133448084496098798708668480362277593073934187235065540940346546516744652467185205745287742344671668497052057779157093522597205842055047467528868609721515323294910952055597616457346537670817678126910674584139158669649476989262503172003267026727454180652117044165006560352127385312678935491527741219277894757730288076060750905231968656642403532685256950204694086651135045162831517995763181669994341001183140691533079072249302137706726542678447223770943424447379383508123243307538268032464503019488219745627488315184571635142009938448801822190504821567703621809289786671972892868082411116874999057455199148181030305088315308544543286258933019836242037574354747442865295388386403792396400597981437587422076160931209203759044511090667255701641952256255165037384081749509118447965010762218105035041086047971622788657405882095168673984767968907512796211119516329418636176212615359545985892008269412035698396685642366884556469335013272906991920553137006358534080723072197495630534422282346963729013808366175260719726987463474859860151927504220686810003355332595231289920192350153526176525084279496841811000018513919276191923398590409025161381681537030131621961566692507258551443410503573950921764216018758017913015602952272227514740990710222670572486485827232569134756951063722611010051465371243509902945409026233728981097417952055777270629148140065965784485194949318894798201901773102599388391639279855279264861037874937209927268350633856327853970653093301500371361371574686128025546735685684705415255491817571319511001855515327046492898429636244839503304407908936328434362300011578265242425616251865579296899875720607083299955091458560041449413279600817099475346544555550247786672520449922390615167582379400225296894131036346362388996160693207987312587057542109490887480517577858874491740386773115258095449815541714093461513075372577929502252425012628160829626787055005631874025290773350774603732483756245897776817132923996832662120548887620997492386942529489643398119398446243538541193300497594367292450906908148456121166232361283032306609647251106690721522563718543749012038461792832721476532676239900608496047865931552727388011163508994840146571842347782453660993342660316855390284526930883457880163391234529710929222328721737098162035488922153813163698602858074015373256926657674363951805752952266716004395892313511138268764008112940029934635126006284721900557234628244589558843821777882244833401266643819538075824639977926356829748965900330910622446665981628925997770509974082133746758297796439955801599224922456900270614429793805759045333993614370655113448332861998850831239593243950164381894265558308772301625026680575366840943674117635583095993175463328394741827431372839846411150596163448925182934547624785669103312031606161960918649318307824697705669585706357089701480077649549761881666637496429208353230161201965744647174980962379597967186739771580939157399470213963578881739277702417625924719188051561245127657138524211896081664548999697330598800414075406654330598882101006010478074705536405568260203613971194054466608483144745756685246010413852344425941243802949020036199884190016711175542214778932073480191708507484075120174702786843904492876284754174103219849789451142217758229747054034808839252568573738833460543062254791855880432356642225080278838082273590998742918054770388244410241438600935017187914453854713960464399392502691624921338213471147274671635688052615453460020952582067383482240962906983256400295506424503639743168298158472034499192982813669487363505399655180712458648424464444970113071726027803927445155915109556547294444734080784884810997949336219630700910900166657684823663271069932966492820230953117308293713016366282546690976661279362844290746576485432474014127520348075854368235845959030808221090329447006311101496408200946938539395762084865997998898200546791388277183204391485278161638094892071661063635218535928540563773786086115065779771551662776113429176401496210245521116036684513527621834636826651510994316874316936794624290886428028849340856775601158851065625497837415585607000585555634951459582056447004198959357420885440630310650219699086532475483528399430751109619117890678209294492581684977461664378395595411228792791296694632962445751526259003020262682903862445084590734279814952633534214902549176187389519317035489199004456701880858605624779734177228135540443834501866098788144386085005367105527816025424566616685685174992261877867367809258627899317237266995974898639457734692374282178304861931946744941364701935571370924243215972541587356696542343596985489515459851564490879452102962222655760457472614392086847480468079682870283491422800380722534000213825207742465984146079691410936528776461600843235754483927419548394444142866432574478741497455808313044973931588827223214171716179988168390284653998042135457886875328302885580655215668116538119372389516650225083351553158159668044277058942075156124454677203139699722540870069669590533018606703324837748619210193472254154591895094407015205433986211927350948804190776932833456948143696539541069722435361092821498030643269779513951716969576412731263102161124629757208762271836251997943016407925970536796885701489594500028613883207506403814775338039240710065732662933484459012441889088889438945098254249793369413234177600666090268863305758088261096708538149851277734277273954021488292264701349062710598538879938387986563705042305465764745591798009626038127626969166670721828179600353223526199783632585944943849935437663902052210271620798506510022549845907193577646054372838378983596200160901194761894166990629179010154414268848622657612427582069958092050577797766309738783677574667352087112880463226288430046443733365947532488217938381504736589321270362822748010308845896192107232608781508627369728683561679601035314172475000996870257297074130671953206903654474744002039239258218439468540208765221367449701426290220685306346079109943365210991862896214363787768311018887092919010526417535126015482059912135365303639074667101665861030270294644570851242422374797854702233036792339720732066061978450900080898319321726331857447178641392054223837677792432436250837280206598868189859800431361598982352811197672479876762198822026851442405951804280487503531377089911907049459213126453543727434061332377442748462235925442723090262243608602861197719324164374978228637944469670755980346326919884696647758223357630731673489825939107599649821125589003376284151259994050232846872318004735943119403012659825386955687581709021426281653763244991552634932651030168297598429857056506171229981518916870519500503468188759263097394790750139897134846418678625988463172724985536157994716533404275175226381429205015193517802422175397273250039743275203858848865030029415221059559820610070113736061506174370965999796312096268322797298597244319890575330324107354084401466458122271699692047245103824467792762406292481724715181008399552661956730460778933081913108627261536240547344168532679599803915649844530606256133090502384173269549882872315865775107052957032474803666840525828635662561823444740723650218172762476968394225365321847573435134703889455771781863069877406528638230759112832790046855989558953396907304545217463935495739458014488622959211205573729739750738307822682432925857344707897047215845042170786971334485448520204569357817539824742842620951856370194688135259902265437915431926311918657806503221418209194602394874309135522916505517818040332324881289765899353998203196951721083734465585185767485466125225281463820766767123467000741887675044450316101379458444591607081055240385725995416834700366035683885751274171664538391449532840273065462322069843717738295342715426443741971814694209664608938862997316922517996171294425158129792043794022507358204678191397583301102390957140534077714524354890757817167162863416449158628559221849706309188723039986460636632987571694232853545535357615721215617544557583582644940300892261874011377826308793856044339122007149123545384967513392632307926654512382949595796776856378084647445663886694704156057975105590855035456174405311782355895421950509757600642304793223122455021302961751552722500928467886342110673330341852858600547675753635011518733427137493096603251141445531314515324559199432652304230983465064756148419554384671152851298449971249097972154847732975286638522328029077732808267136859861098535303300417184891105257827576804132436167508096191683520547894888341152085629894222026823346006651883405399425509688059075821594195331979096375440179832659932943968804370043539915292461595728504052705932204197709055062117784112116857668891134689936831737650556926786908674647528482277430751788735697132169377033522735994516358429265239784903993146393059570596489990932943239105828542929553575855582707025532872663751797674716399607077798718703148579494576948184739315310100788932841553661645358724280935871688124139985028575754605585354508339808166807932773694221741216808048151485171523383477903998731496931617703293630052336298863900450614289604519022896052701259391309665327426205063323556576126836859976486196560695364878307879752006190933436009822102617083288806775642308112251178911512430258659301586215889943359119584568722804111837836761612053426583297929078066878129675534707182419376012530679623951466490954140227851107876315595226266918764833090383553111208949208155511937187482238097467880054409155084002782519185413182587810093063431887958159629969460470296650516277954583054202605181113707712824800207217048600914358560575168831841367453183374551770107345759881491744178974155128404111529364401373970375922759078690442354637910184472113988584487808669804899307003400837492417336126986641561802254714041437747639273142667071752319079385778467045165444797352578821701471702805030128646368994175148311636711597895656048079920167407445317883561112518425239260442279925733289887372283710533070024251266567574809719505042592531643958301491431990314925562859183512680026063604010102721972010018790662378814636497863393820327185830502919202889675311063157657297576871201515739579377013163926273472555898661493945483989061217606020318184165789548838059114131471988712034053653700257932491377330547798049286561513553366115549408213192367129884179809320476866418371474955615172591678017375845579359258776345506245960592692802349563417258734144408604998324292168993587026091413828537491477829352268929493848641571911051719284530253353419629657677275341136208461654729191000563195798218587436018727007134128863670725621316497470566184442031346051372813675633203728625178965419215401325824216064671095185532638678257538793367655019268265219582815671291095689124507940584553541171991441971267371412901776180570276797237662097488472807761136868872961030307418486724416366749373499312348398065173992955664300244423796011376134103099435150910841911103235640801793544048238269548535847922087980803347678205076602817493143973923269852170876708544309473674425664037223064174108932517865897272180644371872337837663069291236286492612875584045820784261317798917492533345452156812887417809307228433443573437086613327687924426958981114890049085827393010035832111510193861948713811669830242741284664416915036350673790842211212341302218988279095343433882619597061034252139890232388918123910962045207541420846295151425294843339876796025730008642582397390806042691954419505140347459754575729879027634639596249991510845318653492604217426189267294734211675528375954173487300242157495370013521778470723011908661966931801781298194734864569022327244271430256548434855428811292108390855410439296615549704608914682990935974728382373066836979755465118365144107571939969184882917020723386324776703188804118129246376007661441745507713140150133487929334149474659744866013473304655033738849417814695780135891422312708249222257838283391160730881594680271696094179365614825545739249232633921257264973836693135522979428761706837863543015730073219101727827300754000678265909489459359263703652545007701217820137697729728153741013648636518358226801305563278639580166195568098809938208506942834142324034903162415782270454260117379901212678723013884267935621013185338280192903080136833642926404103201645320976579940520016474817207198747537188529574918170238754365075148824809490447163244554505788427383976318304068921013307122597853110232778603698965552315077326041792366531224943091497235198281794561042332410994778015078352140698062152300281955219370975047200022781056107517652582528205731754545964374015905664721888378819030390255441201837256212760410961478905663368268129673805100771947340993385348108995305972525226121088584715786597856564029363098525571445260052465747534249853184960050702283765062648961450415672251112299851597368513658750234878751882191673601131124828768285697497217486059317148677429078710580083432715284216247687140270648439323492398186244791433378614735370315185330422908881175713067275711701807230995587422784722256661382354113044191212332475618190243146286763821030964640444076912506834111308156146239704511927546116953621770832603343371925549723373352221000340382637330349947723336270691726805524821307987295185009247744401021142605278864572487840167172258732435290826248016807592010749894682728634052536569403082702611658604720919696661598475429679060729405642534406697500972236068249343137651886698046590140461203514821148340539998522741637358802794672660259578460121048707785900540562339928126337934391959519208962315132806376201030961016845406398206162663595891374289837984170266613974892757145510441334087606610044681697564186628265422417516617127522826671955929939215968831667557204574957942642896027748334852705737001894135068571215066792315529710616321287825047682068892924849494102604655730623176604159529355363333450223200219939162444493772118276793960155394603086701747989162464481930216074399714376223939825536176640672892606539481691461938927189899142803883104307109501377868226934463087950455788881812441747381869997687989377736569704631799109339210106803133985342404587860095326448715503448269549860297571370363520812783798357072901427714045370952136584950442416799109324287106215305894465660598600392882168742539574383397141059002670932671296821929448782582835082597043036408638341906106439036250307914813955239712759252774014835160463746468928947088797853996783088607255481295155390132845369816487277117425774632733732375984293423026157380400523488012462054921669735664068973781181317796223813770881417230010837084342889717050308495219024707440569794937911863529693464863365785037713518794802854302976975448468814355990050751570934511344441959570784359233406361956626020848669722217035731472310990534541891652384259631918413333302994772570176348838894395108716052092128728314556519917323516774697497006086312886044285596847158841581820764776584103365556132889600468787773718567767586443991880796971299828381687961756420711413173987821774154396908630256853702534787391023775887526921432631300734162574731820984444261390062590350957842885829704258580325679593075745708969336725310143322473779382818793905110030766901225660997870641805918835899038534241420913286579219790128299157534915346398604308512740075926264218209857096950875108023635121399528602084401984100581538458685129344559973382778208942940878598707468950572814035847139733174658983847887279944265715862160042730018122797771574979247657252396723483897898929639084258570702838865883365878435605638911714594151759531246039828272792726873758173258760078748948322712764043849977851158337292068523211385442099038800248578377955284160262998923480739652527205966535583559538948224896934935851471656972499286304559279237881617273806880061329023086672212444038267089307389979399817818809399763986655007739781910861449689564731709213582055709644111685478929015301141327248850918029018068595029070738735453922468820053577767874216220336952416419574688962271825584482556580399397393840895723721615769756937854933350635428525705099367366404946873756385183594666845932031876419697252645939247062228910927122596443712973976032907602080985386843287175457265887388172337507566901925438156440610103656028586232154384185083319653631572297454122023593923618831355343648979455861961575461367409068903343628964452438516348042450933806856471166193280495845397013881888695240575427721473655847816988871755131174824342393088054404853624981880078010369990747780641559864932981772814053731085001892177077222408737356237719384389162562139706975045865207530836453108506788533613982731601452308928208038959595108636181838838335133176207069477272186798233945408058434660683509319629208767688341276802924142662307616762467177628266233806356372233745795419512250471909165005600908346083372076467240575901776691897879241474201060658582324350153884392241517186023575575513072060563972980839688956605528630012001234850809831148080858414763986315629920828987945761873225704951975515530805964495624001767172588852600520724247962320159706046513183706273558704550827831162015072704190143463005885799101835179547456133026574629937765581049451579803710097503960464372798298355757815858135576348657444063957828939708482436442095835088798296633210547682018937394396667259618241900780602269885972160986697076114459482898459597873604798851368638744912727562574816343069654194690865796958382010501404686524420757006366551038827644466463445400060791540155020615108823168540536429183926784295804672720028201758208739052672053303216075236829488077403154756948846493125649347698599337217782516630958425279146243512394916592681378731196262204169182481385112267798785050508279833682611093162861770782108326762591162926268353919578406379152509904018292772678014760454025597359932573713926187818914950066657154390878713186176775184173078350946646038107827988917232934537794925168831272836978313030623537451557776229722517216629516394890914926376590882439393096740330777577370297476998010562763093738017998662248039764121450527848542496680438427970678074618560432699313168105415461468150877594918237516341565110309630291691504377322050377758797534430970430982172621827288392175153773087180018906578162251925541528006383395628417950447800422893994747634529151922918144396531144431340971474247102024830484936700826043260464632862259425490792681636801266048904807623340493702682262380817916334718051873516751556353860729662494224924522212360821885938889607466937233598849573412460475657175647279979463683435585890735903231049317902502383373936198960650617354534082499587458654004483896987033089976214904274154303131470159956671265884227488778957883245023086094082585224468786389073220482835109532051531488371370899121491681431819018690100516357731756453195842205675005902497261912360810372259094657523483491699319715899074976067760592443824587609651208615925949744859448303171565721685347681228808561106816506998038865143015755510195094885902922456351360173753887166041504551215190872159292283673906351729939488133453633216153357214623693907277890477516961150506204971015436044516219227759636956399726574277465929643494235058060068624413311302374011495839191904933983529785022414761599192907499389692027707857392531881052546630455052898716941026190285494557644550130431935304401940065569645739388331885762674467799768858058559769693107248488769685116184583152453338743359423960115085822293019415577007676913027219189047760673994171990962205167886190685837331902853587740951745793018194833641843178130021888306050515790288443245109797574611323169472505177936912321089142027020719614077424897128507185097563400234886738489505290042262638975693171946434114954399698694344388045446596727385247376151538414549863837344770448050546368481843316859113789849120988008255442148895714393499375406597729707674928484832784914484846818443874213743437697587974709230752473350726477198527114367496875763550974884814813956752684337626218943703453210801237134441077938299017619612596309116509216161501336423629742262580905044336990681859803356514030989598458897189332730055929242713557512844630809301691294451328192498775314098574619361624809223676937782478443810776598512343858762108340641964954122484148741915601714297460484550926766455474225463462877286027184620059140380364259015592465594656110028127784063883764634919686380020650761928386127062430843189606818532795040939246440197374821855911891246416551138634800831980880720984323745088517261974187910130606334696147099359307454096146366007245533725759566242808015276910420269044757595137841256477904972062341124731059393536645614928039189958545340957576716390222530973870438209683045651327183925654492497985908687750616451590978021213929758512645628970733425072401484005960371376191732090475369214365382225320329990085977917412358894622512518021972901349757493013501682669478019450796375499213133599797191729485396051056623179170933015120044141961553523179486347046808899631871766566411203391329550313788677587372967824761500038814561114938595455232907039651466119616419594595039830318314699096979016934664742610224364648332926146958709340891378753798615631974966934002967620292400621117005271078977599115556103637170754754318835015273878243360601678477315206498278740580666937129204396710539677429561051791444767083782237329042937805046905851563467123675207563706164524846164762137922870008050669056346883644433793431833786729282492834019843766079221718843455384183105747577152265649975454485482336353272563896037601416615088006366858545535264054576241602848818043920496712713779711635039393518554589570524988300397207548702087751749294981100908684827314415967264243931576968336998152831442934560117625794029943645992877262247296005287862725474388112797653996122947999759862465082293463731594859326798174899911962225861657954683588083216381802041251785480498348121915040022108288581475278100312576778870684164774307407688395919460213812859058370551533881275992043580371270711698620035352926828100146463669627810987057893317419427242570692067389572957175901855532477843897526825187368789401075625486958676380325665202787654760155592820764969889654679889288134871965220034585555637629936008434052610787433499029798994681616067793013037673266251964775107582919875818243817201266852250337753782567567111437899869078431961420920918693464633739907372791909505154219906528522866063271339759825402166039943761656539136451823630926375079222949449117911844767645884381494649950689940421689018418690367317296566008294438118944237475967092857553858463574161770944337838029966479476097955565164736345911054426106104807521010060990594108358658161919596901173561992204060196654845399601410540324798640160196268536853820161192152577261353351592940975300100235107011664589339078181670217601384588377163049978581556184146773442873955031315937363865098785839742478386481812196254438903034174398990601132544349400295632434412329546744401450930585992670185314924064849340592867612334484762694110088394501485263856584228005173088852077458662702924545187131410357110098154699478444547446926593621681550853949016188174428839948840880634009352812828103425333285737915953338529962106932108163795339017784103082507905664060935169059405666154596353728182336980305541153879538826190790288295860539593805524328633542212394445876549691839859317345685409503413888576598360192343887637848344458215158328343675770561477351967384269721565827248743442375132727578829923756043942469418047937989455286915709606943024998416076607939812148704837767766550466445719793506839952280459235028241414496794969698449444592620856249616203447251671714224876630995185912115715301932116036039000632287102097215587770304233906730209345106315777911035003365555327789958472765749682265271772331751108565872126242079877206331196235624271819104112255816290074953455013469639430497717424387166557951887355979726939944617172885525198583581435053377569647031593299712778743623028378216751716040342495093404661289097465336520606669996455507320137219167897370456242795480895073409750373573673569119222520413296291710109419116884805752572628331556137487488541782896961854290139318407300500740888675051850106733390657807066782839352191785184076206599998116949301051083981034195691451320833951694302232244614105760342286556997963515855951335428004961602432644029648098637370301794821828791187265103416384625113338608405497137832319062981151137378663217952818580831417434670150970600594666463418766277047634310467555329904711022567976687640897463781888285994379358631257090833668049952375444524367049230432778497762846281326474704324249367873334714636793542475864360510710299668545076480772362433207084043288509655630179585661783327436931734495814296441969960140852032942295563394197650190018299394495930853717749662969154541128355299896901473809428614260366480326780427556568724000770368350450165284412400508257736413871695776133631849861498600055745721211366497572168204942577640634695547157480894114439098328353660488709646736809895830755303250541613373318855451583750760955712954682296426288835206290130751909030523509159513487781501227657769026277950771481483336609156022233958024365419298181988874634424488836783081058336287505451941515387517550619859073966243716681388968052833141207888912196321344946081022191275618482439660860785082843615917332013738292607926219739161325835108262633185028295005321722648463792458315583536418380489861387414339672420656755576131869876694556094846836419312668687425639617711294357589215526855568370082620312087476701263249127192463142598981603202680831543644149096487329999345825332066704953577748970621540801304222147420914169515293246863517452473541108299392762515943221511935867311423284289139983856883594036228425765127537602370061616167644833078800734011649304223197949750690026519421714696318447837550515578198205387948905791117024656999271373792188370490332368993772041296369435006027612483489138263662243301980008432024326508716276532731692966369129315452113669585057013362129630842412825481813427015844135627735137422149007775606788220820105228226594183567198482248736559281097187191495437548226768222070863959744178729126524006016285242201602535253659123690828654037842761396845330327459978780324904885589800567433983513606268831778175912944041652590387739460835266979972901156259877598612573724970193779184677678086487505904557302658236421658710697629965090439196338341499328142087526776676335276336634996398834890469693870654646180848527230789551208742225527987128925974689090326808686190879031762179699036228191954883262189977912157582535202247647413084716238311377479278785931529747583213813937952940976391173819527573896371224568433766369557618434040868118450701792621257120122324938564213681804741320068211502901786012364559295843580128599373491010889587719107265495274362783776802266397836676034498970643907933113979410213388311452103890922778274506441689638603553913944837412518000066223366128198225433098276508924653542151453628152432540854192553500868947735641449580465320150287913707714446888190060624481774748546561711259479496263986434546901959739817497629127346351062459454875965737106086724076086370741608673783913159914637743155891722625892729515250569455751482320309832519046749187942545406957530337237794177286106408621567870372401180085161188053298237050744588735866450684038495846822654871846058141780395554510094953511630612627366467469478171775694202060860230708877030711077956007660449002198968025384274524822180309325913014621761324622348353870667073346199910193320988612289847546718928268418134227439786151763751048531133818479731389666635974199529050360554524146359423843220782479894893281500731770243253758122378756306093147251207477818014539151066993271450336385454162430487882724186823057051697338252632195132052980047694826338497465112249447117256903539455808859707305724343638762723387993421678905547547363211769994626866684598051761406605317801048234365949136501389361741756690704549639232442594704153611332643115790577198098844830073696283841487649200334417304339777966230275365048501725814096286717972025854899009496754205677142834009491527048462093380720770559360549676396528415854333279128048380364532498182038745289390638310582292108584059031839891129254956009339464042938502071027422424598188223273247502065904545211827978419664903343562390003081615546268270986152620403376990699398946168446688619898443145321237324478438024274133607951834141296908256114694475391351079680282224298088992931645039249110057330378118440939318225275110697904751663574323363992386851896828512579996651662047371910310985365000892054455780213193866459988972194056068208948060712158662077557673372409596298053844752419882489781868937143762733459700773295916458960376086340140090163658550218004020268127650586049414283399538131141749057176863719460915097128461223761350090810843272306475668400640045298732491653967936797204125237182554146726155614418095277099599786396550646637251690414108760986788970914906393900509401197191022387997404015887822599242251572065578624638008351689080206151034149687625986430537451565779821448847607923645971148684242344230214888547280902341918872573802971591023924893510467991951224092832734617673281895794183317518671292167979753029776739658704448396000523970721313641468261678129700893946460012341287344858345284448043114035088478954670342510598870525346102953158594698408672704040766730566896564260387899824911144640593427700181845271945201513712621977095285378744971635810047253268495366736330485374055110832611694484021078495603440287571797109755652277661760111585858222223875742657366727333202919400465001761335607676665368793690575480373217219109895806608878865117676575392741810323404626691471768317429232858654357432747107055747583629472189750761223664479647441566254306530016443186859733025527133223727407876148950198596769502011917325279678197257700576337753937447397550212812359752209789852481757975610559369078564205435447084602878766787581678963467951330807326550794246247135204452763185155475048125520584263563185467135920952888602722125077968580071304928530025986929295397748760620419209915784570899494244270755560620761798024684896162464750147704959669659035735822303964762648828709890661573939367567687763141915742566511246517015379924596487591139355561606304641763940585153764890571631646047485688584765061621259902731382789194635601575722423189254898244275197394689650847794987486489412356632601487814580367240114873841759890718006536678553132828098138383259792949709841125744393816190962497983297569781178044697422005017880809015218017161605598704666175746131033996910028529868975078860122915440708217770083493143600131795930093120173925699494147224655116929037224278086461165072280971849504022718680840084922310866410427347376595739509849361109706302810356130954896281579755635446693505915724562028783125908015124562560022616214284525537007243796571889827600750032660094563126667701925651805093410262508250408828491406574772058684400177685722423004043996182886672438332231866339125517918643329122304336321780288087352491754325028414139571387275035393174685461829429804793433393556556095538429846313845339756820589938120791154246017717090259082096850511644702623318472624913202033523657435414544894697200408208739058877649323043231407601878086729978168623064057577407837917844768814634736880641174158103740633743401046617237296187101912985990828644165976009967875543805397131075419502919028496721690741545777658561899085988206487360073749116260790775057366290522531104297680152182945324285101579518116497320685982308789122281830945813443866291010113703151361269885919490129452379926006399234700635750206112788294363128154264138979911847180524463730310814724413528618199766376558917892886500363707923353182319284387025372801934601706290641560836039166328588444749404955451870909122645579036640977544759089828301317047988738296645811119685590610837058576556210563070475102856073597447119706161090514022741014933836572409075321894710721135262663499012017504031766119039639932956728914193385060626372250243820206263962171273280195474685827894727550875075659178647782607053995924649349370194442748783204421295587388842620412909788416578411254320612535111930249806678678402438704213269700278975401861725423132179238892066000658221890853994015726320616197256019362131209991221974585448497919957748285972385992105293083301668804142101624859671068357511615833335059684734027881219156688416557076973261889021961729802263651944733390765712604093664459800461846682003445943402520264234226759385126560861847540439709792641461269555345730530804410221436239108842755934458582064156657742762034784102692046291315841376124447841266418347537782134158681194698773956435531479378854978583687344503163814543551386319657791912153111880077098247685044009683634462387529742822860394955346219145152408201911884598559163584179539463792344851553985319173372510972227112497581338495476692251202037068977528280784566072881775202175852099496075872662459162469701691262452277172329005296919577883287178814552724060362113490227203863311085243151403777770013150675416609427559359650221051411690465785612817438159132677820818199025104437415888167921239735343924256019072216426984752206698917942728603734821758551382575724460421187005893605923298442655684954753385137530212387806474425881413745162816790510653842842737777470977171132777206515232013320007527739216926752422568961782350703153196382802497541353141862661741904633587009386054731800460226092804844923583052808706411070265047761640945058091059524911072254771180658417691002596835974064694174888860028761490856707774453816665728260272568594405287202958302618183210097598240109594069413136890558058455781103340201293958889354575417772175607962925781100926358951641115334410027991393680561519440125374615299997532392091865977351740322904352831505212521749291787492044090565974176055270296028969696928117482193479381851737977420895594352267731125515618216556430573349151573083063514784362631355161147540498616453591818103127062805758155405095332518801650267429718695933926013615726807992312594829104441027105443051385932399530149973033066825910592416053280635499526582890858794440596407457372141891103702819756303388313120270923322229816553051776853677044164786589973146478700905302995670147693677583222680525139995053021126677141168158290796624650664547337996463043837326678767858978447979838426357302168926621982792871166478219278025062067879594065740006191945605819662181566326002639844641492317537782601132263771215700410112472213343272145173418002923252431156021442721001928656464747660258974471285177751146220902781591208771863612711081046125197766522053953133088335188910772924128569655607386142854571267553505347075677225073226546008708297434683651594796332082691750606326948876374631292058782750028487747176115468614234833948639297475607590259607273640145013451354615815311017481479951090909104580662163235615385666454088059475205734586837311102360133987612771770332039281943100041405977241002913376053538786933300777630266912209461023206924920435241054253538850537645577416019939718757172966249190143443772197322915740741301916720055431352241128150442906461881547718518023454101920722376107318503433865265821437657435755604794791849035351024985026271233903730361417116664204721499005714417380122261183886326303336104794224411007176367396471732130541636200718820285311035490794883988603941441466164012667498474909283566462169482845157776299689741203353606693882767135147846199976001663752264164366934300778141975101956141275102437700020456179811129743539707678588103393486910463368253219149723858038247138226840642600113066643384810962708031645629588542805231603893626435036420964896630083786215231016076402804639377757051164107522874763004626158233967487457327592662034507147932117444637742208982806611816590350716703801903372009335195660452251046539750682675716495377014421394208015758821096036577624677952145141521753924873771614999240046521847630204045068207152872859652253686950928450742939385613877985801027393499731453556548265439197129601318068312381342122904741319508370692185053172768403331821028080273484156476264678662403319480986726510115983846986586621053225154463821271128930974166961208387473671533349417663586161341453703487212292963228196524389118092272803645335021127875082816610434132555973286156283757959261185522654888056793426800890561515285052174847521553624224226382453347307043021415219869247932413737755282095110689623637466796135925899344666504632441626081108939901180363636022002658695313283650089417702417844221497382259529396314468445267678456906017170774750179302591925075715743160682943886303042352716253867177160376687822578114816877405220913869529727534897163696513287147304109030224528395177190008511353666006961268879385440467414340404522811323755995101120438768484070657112925229501748456179888865667004617599072762553798956148258245444827096755329021089213659523289247089541561554887621239671451413045502989443607706819163710642526965690355866355105557551721112086120032043895361616895056943003826924885869793962689408339557646765562407080739054823482734053803731738096262494105889453388395429942361249802683090822852226485459734010619099989499649038859437771017233683312807093609840645628302590400703366285228261195267520231084407240486066117126261616815494296549454470671897317497559872735149040394645670468379542256655746823827962501346202754950431438898350972281357631515690051570548203082276375611107264455403409288001327537987466348372249486513102272582273278369009021590509190224566074952729201710307274175737029210813522149685087799346952783142801099522444733625509913614168595915135501021234178729080771303301804765076012181228281089356498588837756059106828504405945725461942802867667232289289728892998191318654673822881287265798050979859368648007641124149296457417293224460513774834207669031354833079652155479668375861076502134610470645421322649204898082071290627102465243599013694925966410961924551790686737946670378174075653708309927669501906490050044228380701057480732001428424384655078970901961556383312679879725616501748715891974798513240462529211056559392965771522515583183940801713532774003402144570935888283741425682677490624241400807964022609534568019687072939613809750327544126642228642831996630044738456505676971252223678075968257340729319707049264051835601157687670629795676276517854958363327418147004293180783144623402050951838273082884097601262845937125695126542632231339193062785553247856872012833362533402054959681472586686633451499369429778165311783916799536971896993017594845477598499237424137209824107142908310670751985697401440705268179167969019187771780666801924345987420735897288352197985025282074401339871843794497346671708474335827521518701983188930937748926894534286399896864151414999804338216723859981663022305770028266006512520380093106819450827766329461947579174111757435418233860876887286930191650493584959341028171159019785831722514648667006126040554542609405686648322103077711651350416257710760096682255272326371548409814134524926454201679551293896124742002881736598090629174577788807498604741620092828895850046661729999726581257590172619163847200459284108826656556117986284491055186636291822886396170860860271031903796307369205594758051920170460330920869225777043700898946812448577701894200530596693907261064632186852643537398530942200476429503590977261742592652312645029163692545599944377563346925608749454770440048883369181517028916805701105037967606984058798068125052909218167867745682710497352624488936374980992288200967032493998280476173249465891041342501294316931239745503966292073272699157132112265684094155080841604247915539177263306706422848684716292163554992683817459707949941918850224735972843760175997644882455742203706567786157528430192146488839664807244009470829386950882657924218713818071761006415343191584049758902356367729246149997759035215689163470899673809711262217470089324710433707459872680915943376096387326445293472968533057945831838925697606033920325189901038610262270693603496378329827090446401476548706946761432630083763053549102246049882949051448901875930948081547793307608178457179382481342595735863694733089598004534717767822705159484738698211946286419604109438427961410668420581582895472774174615797859108428556294516959534236259644743148821240175660757325663324927653309937222205986810346164739726595508723760266822438352345876767762464252969567171573274985498694687601378285722958179012895143586549810487479967135943214764901016679212248399734308984346006376576152643087150526243499291200602633678229100900646455561318989986775774451531008225959595308766807685883462303963703058201325733130466459753508122794129685218807331085574256270246892010125393274224878419071168826213652862938068156162082475566761336967519193091687806773292574402502358065310934699001508893661715262988002611680978085004172192417505471566315181965094142594507164402451420390582670237549181647748725080483800232631198054806314399950390305084747222021944718495340231907748921037106676803400070389233064243016578359686620847857482187263461472639735572576524464051581500740636881766491078103896540837593296913435808829181875142052829159181843898111943428370617071266183011480114990461865183291878482972297656293329351987605006526031633061782898477801291526098672704266460204084543370195627234340272516913419387936648442174364416442181053599883686558407295126736910655632212699231205793707903576445662073989647270077768909450143340758665445651952936638051941688428947131355342940915679391001225903918621262845150215571989752413223187166108021835572555057308944438969136485006783083122794732905267386757269367780513727755059459007572031536174394207038888284445188176363600814669623558885870081069759914703063303120871127398496341933914651009501685155782030566084632326737746197081711641022307199601029266148491090457607729282844638622904304323078218376622597452609126735105345302926708829560668890084300316101109721344653210021619972763765396476006733184660687041639861542326259256404175491396562037498349296666014884922029929064470205527349698986368760404361876036433781919955976817997701866032107507378147437625797971347676026760044196737249281731155490700369865004802933472257481087624779471446897433765046755894289432424931051425250427475427938461613530101521462012017850087752544789089829287551351700929288168613425694169598830881755564826359080100854336113770089323670385527632982134261158645507560964755624970052711195181486903303277272159607443938308408629694745156119360840807248115771927651730787500994116640696196721215934326172002508696543939139589173889259221884264051602947850184287765791493237442976884831560485307041620523811181966111618324727589943066789859095050434269067296283747307947476705385544542552006172982387680263573602178377877144148157827410739867485069084230087267214946260874052651091775638266073749569476287711620895242165410218722212991933365705860468260932633272957940430333590148247654262241339392379508962040809943045858477297485734170352779218842548627669547189314411808752461200603727987582491406313480284432162896752115975311948707871045075040004469051066158847222587817603475499569384830346605870448964052080084703553412601894182116061355764078798711317116905522858743528422415749428461296616009706442601684233049328416323520540163375655691975329519234436006056012744144087922219113778951260604851103000632000239633065342898836685654929060835804542238366023902515202235595374145075989042646715051673260543048036324780917982972665766811674719593618900714261559613549057586146302662212890324634924336959002368289472520358607061937898769918944098045230000450886812914434281764186823020089183497983403950117830629737529825534789504686741601264122714525897963504249268806676847057206316179409311738257795278886206170105308616143103456304825606349521052211996407598659804669228980428232241429936501814979485986372295335036492464806715862543330650524170278699256887174465833651592981773869440232303310023726213397691941344244355540230852744988501720153555602755404435097362529869998141298230998713867201760446002180268817121980506175060824167338587249643795952942752588961060907289732570711338475148975065916124442067375729250694223596175683051866730266582158426942941173588673102701496466560694537014872070556534334963158281284370903382103438300310774251022661643297744884828171188542778963436480324767402127728868741722282661058003808920243531275577544111486793432398450806967541437409386410090836741298922118379739196164187816336487126439230783525800092598505247965940576728539234131170764046082261251420332206514197389674100701603581725808016084270534409258591342644929954175144261739855009347652707808950386810405638955717398257148771865439288031226479538832153211120591822938915695269686231977600321178481219614394418774400853556275975134224552694776726007960473867128231888264400187138467456168937324487798745262686999318650341380138127694900377574262696828594153808019197713821978388262053328217947938275954029161220147659718150039705029576290409105140804908176667812484899738277343158057148526218567765614993164640132987321705849182200918997660675642144846291089426824494660588705365959072079975695125089982980489969917792280279482632764561317586397120522015065859971020531719183391142977544390545580110513907043548875926517158572986190225137200978898300933261896541820302211091776754422946898954464198457891951148133195805497384479349492882960165983324622875563428506538286250735666519983160283766076201881642555325802402679739766168951098999841560154136747253131820791808891427438740719983517135128468718346576812148796445819196139555413158727032527265068148273703930182507176788634203221205102827868295477689552365627267274042652710644155522170245118646335013403017604227765645455458508053123226610753452242497300632333326235662032672353193435455866920309839819684230807556324793610329471559190336831210579074096383884775916062317870674875012989412501515611701929308991961933118802809375348152263260768360254030406779172672791435224271677532955654037324444115521516620231688884049420717268425271290136938565425588728734727977822793648202787716225611982283713881591775608893794064979504912427106799398682087603203235889662930809535388633501701053419371995214817254846625374845513095123487710463248089334956497936588383693935046276323076493782037106838865170837652553901246269752112329750393463142441819373694681558320049116569924445083183495352288182411570486193873451656088198065102844635567691050352638439780258751085168523317232789538851507334242829406876694338536885129841484924138369997294287247799851130284295976819590920259068293030255748909040012558739689043799192970036372135691223541772682950755079257725466980331353539233287780826389932254532776127068655996123895924573991651225119544707352045107606801669892121817257365402836317368266876069049993224536048935061990672156699784733054633062492594268829374763360080031451009701171564790828335828871831177813179706927681236685163995877725678081888320861510769496929056331109428199247063186406736433703783583836637782748092388035496764420136318730668881219319995670413845984559782810541044022702484333349491375645524289211065511662903171807761680772537971924668529639628075464888441304693305912567527497303884837976786654098805219711843186027230748530928132900373155096493231035305157264517020922064987825214372792396482491275787312912722790419217186217781099102306646349755303646196330998419409169835435466792044283016252986088770743768128218102331242130021079482911475215823546056938439505802511007283854576608291700065888910141539590165119215551126506814705559243464606115057498359370354135282759389684198629537929492268353161798309887343978369947278651532933162689125603664745744052377912336606102668900699691698196935436136286851931936564656318008548651353327590808447256645641341271120195448102071904887092325076043424150022675133909289603420163323524948973377004292800242850352609595623602334966866098146833518842055739881267855962276248199850672872260981841759437471114511706639589664351131971236581315496942321347134592724076548636674081899586750528808809166844523040106297298319489447012212288891340656595931951237853039532302712108820182750018017240884402647404013880778600121032829403171638060804000205127605729635405552991650549669557832717593240352398903723664416827792155907631643680288338015622575349010996435020359317317320571084882128933373977061424152677291930741873299827687892828475551289532987974050770067496830969584522126374587720114277976035533239796501785817808333594066655969010064178741952305705805719161755267729431481947887285535802298747116891571081194176967313607078946975824706638451619354149622277698706373005945449539318865417783537363663869845673735666606413484362032071661980136157334716806016180267289651297098552805778614203157439901986828193806695187482190043981072035952725672229776186183660498732413542093918951477406320040268913499892404584808517100153636579559646341564571305559464523192241429789063115227131556596220827624396115358396731108528384612451661282494413742607280238915331653874817597485592656934577442413817447876120674033327771296575270887757364525197739968502273130110594349629753784487177584524500008909546348900196726479127034378543985052053077117252484179670633089919403293240363133319013659470438542838753578941954602602583176836705574279833682303434602947222509831872107586664409880715131978876869876310651263685016016349447664556125827630590430656354794838312471525991426825275903430974082749416106635174022600893102971479693914686730021378693687176953470273944662003986320109352851433238805661049744592724321981727842891772168829014659993198158435805770440467511191708049045476288452641757008226842592583693490146132378239981918876731252899822831122803377712899955245648475601344271207372813515319440676340393582700364721821760696104956705940763773564142669390682201761445981700423770399670813398621581587875857027922693049074183036044060133830249270543154973838622835865126577232453804025379900285682349094793037214556333314389327397817644367689440931725974400122225340804757107989051072859754983093181551829873278885010107911308607778578359029266615835153922634583393528101396308772866729596865841089974670181646784782630813484485248234250795542707711768550420930783839262716745389379700421638753942638473712155040680611160781028225774115320116526194607092811758247138954667964070411509504159674097917505739153619899178423832620331871939034158448832487792001628372295640211201366756553155588740639169191990453350051256727788017066526024124861128698835276575663127237889275767601515547926475165570504193044452948724485824527216704231340768005684555338082153273651680101213829316274600736835228273021744737898057911744611737129791664739073670981410253761015835590779217828720948499214681256143746231395338197461693123693269810905422629830561459134282987134989794015587672361761770436674069822067881192022559637073940459603062557789497696520867261551206864329868439785979704518408030053921178860176682796832778686149537714401425331513827140685871978229166028391828513110801475204002857585088639860321180983345030617282064542704938359404453717829384899201301699729015148274316153528181280305591892925842272952647348847931451439434324843990391902108554210753054129861448915824205896841641034991663339963781050214902911454937229919708596521349548242023013857153107844226217158797690977903928259280199957028494214980642477930395943616660088268597009827138899582408360239034046029199165948217807922544034638499925821738884154094304692134615832454406055940927393132844485448647790757245977056596235143091871707743349250171594847750192744843397901400259709230276967712988742202737100418158740057898003867134856805849365259941934071191318304108989402108363162700740514312354436882256739067960820792633491821778275804389854287392943667365052880609775092368202485741889989348132056422925039819146350779910588729309745607667999342174673213555567303069342175695287276882405799097938748848037314568583174651417692259044033521712593122301208917437625959139737296002874421058347949737279859925284556044857120652328886496088676005270103442824689860329779804807641306224045465444812016434709053751859200998695174133514890111424941284612479667271273614457035148849510426184851395621735641202876616577908247928871146246815326732678504702516178494190522540592488672816074343822645861238276968385703268520345191403397611392717723768918418808022172696429834088848851341894621384699653378504570289010019867920772812023766515783379457664030885547382575174550445650595016251401856513742849476795277066171626838549571331061575761927792163271500080384801193965394433214959374485243532684266436182711793046907192406622246306848684261002968430547444425770321317084064339904513554088744549801352294828729224616886292703826111385919440573417406197322856810118212119234119719834508982877267486344170423688738058222193481595402707407986043464371188998715228977564425231732147751718773036578976259221271684879738392235001443062825427095353215140534788310879777385270803088874391526467104794660498210304085838927345243071336580911557108423625817476576895297374011197981063199164394695692773942697240522759414413283680897736190847567066039257173000879152962271241745361979320020796278648307154646746925510582261799249986614192156591351351312115840766934669238035577557643579445257465752342946147172291790511306067551002794400975434545721834047258542705627867727935756906872366754636087882553084916501687814367638392804430703321182148956484075198975771573881810520818804341728016300969770694052294195967141289970798906717225294956177012005491464802657011974341827184828766984789748772786015224303016913191892494755577683579917775635462235872706096049873165304832972122835059175010935824560736243543194177073456168585067490136691836863619283840745689931520642300082792455052905542329428656450464362011014461215060122562690697903734467655594160192306593740031629905239469399415079788935653358231000079439331792279429932228284339241533252572778028067239182131136849621448319712592643460916734105408616421603529622398541500473601557736961056101569680338903495118629172289503865628872417515168273810513767466016209744562098978927107162230717570173833362285518408758030934805795187777187253970189015165479732022428653685066097949891971387594057574771543904698820759015739032242501850384545509107959785631047197900900934954953532727242363453384677635294236954559296463863681484266787753780582474492054056732353244631126842111236772110127573827233797472042076147340338770338993182867075493379015332670314384052726693093935198499458957010790794432108240407067405419022473863583661867764838527970696529761258860412248614134217443854919306612756383123748913611234389025135188120239695000283305436294859402641006064635821545708171187605483024727418156807257644506043050472613617121129213042583459443999990629796437783399923321098080049384075755314253998153742454711877970225336428970337112431835565364735105077795187590568905477331105381131880010619793078845294161728354526703506992347906663733932566852375354267480024910934695196284594484873036777393043713491030884923750395301710101557175709673242227530637277592122748395977718109400322951974050319337931063218189008128713189519370694750923418569111058778048595360260174897035219041794687218730349652317578446110554576581738737576320289585575999642447793944378932371196922968416203390513508679091867426661162587784123564308745739642691319643036754802540990453819365352468153255063526069996475483873182102519894483802698243018079320154698343518346348004475270536389464111125198327234657494948099264935131618875812061135028658675023132802043801556973619564321098223776825490401368340386447325225244755655774299561981468364804007167699150904913909695094223303981749258517146868834034944970131102686660744817582153902086326149973555299240859337410905437137068329139666832209279343022757919038501948290386916124871557931911348577735781353805458637168639503864946177061582932834311048217508852694209392961597299953325779361193209244900409866790631593085689635464813754624181578276394521004095746349421007441609184802656410810833251634322145471598780109023876342482072614386281402656064966866490742084422550738485649892148149210808102465882982278702439300689877351427154697807701676656291731080057121631013339327941929429232236235510464552642501721734933047055284604606677838611555431135021465834429244498455027515521977761768202787863805728209216508365165149347122599651667516129010160398021075502247521061202373149518416037159725877483160299774230270560763157305535220305279342375310375509113373192096116687676953296530675809990672793655569909724370930379173617669310437866876189253102167213109070806660398564165006489916084606469079237559884699212577996656148445974338625782209463872843420143405187228476640866345119179164528401235195017018173278436297484812856756837891934682546285392493882091440100166813904874240632299423284614939236921152323649888626696685542294238059533634533856246961773872712354410084636827234180878063869855630825868090132505869414191605710944213444218218808089783848493753082063222036250261269845673509066639433042690256594502607957405179414091141086997077298742431890673732374843464196298611279040404336455746167618081121440213853454986975850131276122412834253132371245961806845451216839462093389668477905960848225019431011120128391093248852974176682598011449512939716419087056765950546755453107773404652067546918046243497780647193399556353991832735582352428657248646515570202587304677488648773323892669538874111092342642772383435837446045587716962523499399075705012862324726664141783425995489079675052632318365277105411800234509560324860876169085660421772798161057740294737226459716357835137087254611616684034855459244379551289003573424694033295128719678420908514143885352685881791195985507865305203604860087255491208272489672319024986863811139480275467969848326532295230452848332418802475175053395257031682758143139649117283736948065142062083822890612882678901766241233277219086123734022580457038470986332937902749023069546262927649177923135986176748890471005143541794080217459500506816240145767414722973506793902332844374348992113787628069094304153516972262842903151705088116459624137436544186666866882194927771356513795523336361688032765895119988376228055506990847011257169897809120286466250103264187116435823383406684392454746566160383442133558100640813426424058811537753502327209105734900518749070887279532278028184332703544713172570665999236919194928424178950907111933806205529807215994445893957549860437475798858012029514057812561858218744483630461715822649426789161797371000479309714633681997330400672407194521585643021754497419704088466551079055579708942286257003981772298383890845587311942413625676788019319867486938720961759870296911425201797919777176302484936394847351270803997244940566439746101511245996749658864914345477083813846569188136781502642597671360373293589902432329658526215689444032601841991326652459916470358283854412470493079985320468453074299762114908825564117868238885914486262367349570092055202361671266564760259081028425181404255450267255889256347823379091715251581777614779777779503399428355845877276406515360018974350846642806645284491893439103362078600333490354906505680818268278101195103938772419949358519650653761522079360548149463494459289905253341445919029944236213163124259662008384721329694300013379609700585590444223962174246096346895042657569593740251901954619510366706463672186698480692541773939880125420757909026394449180911409230695765052395669216899411121209654972531766177038137502524422120024525788241603160856465543268232874129078286601693666687944826515191115145534227871763129840163221494743698430083033633314119919174176961469071862259855697240209029072190671072629510594149510580418127646899866055669458004705462184444386660227177368025644287474860906246379416008810519470021736703029104534593242434524373245272646918871782478266598835934339695187234997497077018608815312373789310658782403889906281204312870313993697988769480283815219020212622760543977577805961132683200272680427632980934928397323107160131260902968428742668719013281781010431965083857472886452331563687924538458490580828710343474966166107017094599834748045509668450183245619280908930731861677904066887435481201709622802891959459685837412336761700437428993482651454602005777682966662553658263458134016049697458239171696653916466552930885032892476165336418930307108164416563007023450029304612828027610353943966628987522480158684056130082623161620538208949324720007992507037522964281420109421774470941106987174116645715417150122677095591664560479193737253738822771580051452670875850587195539683390531715378780907064971594392884352896370672838849215626703746450899423679755778404664779762831728245309409930343413027946000448952907521014354648550937632912247487344737623727217419128651042557304015145851386143788916717910276242341367945542614073446982764468640902197887412394634513006554228641994011382300711216941897806394345247322707922587574884881702697544717325473532331100715179340401359810376119340162932163727449606906710180782079257207261615382008290706913401313520571590225291823406003530868080969859014205066694325054047373966358494638757240856706111010151090633326923682733187541094204944364185789669948701638463798785001384933410834711194372589746388109788949534519834289718766716262764594964989608152894077017497992702083290313050719474095154115999413048975818192242882088053605286267061231062393418731682069577872567313729998098038153458355206739653927541986992909692407333805746315423276856979106949177270634171787101734967601509566353584543743770959111280306712897997024003081587677281332615586560173394662272472220723119303540996669951335459631352353787431850776225002279738330261338349353616857052931966386191062703403176900331603298814177640829830072316884238386163954446684231653181695139447719911130332042482320161862441915144174574089684766879125914763063194378180789320024003847990754549052451219861257398552170883575444036522288330524191556644246818854391511167037327384803273149536492696470908018049939130058040134214190264144740893056420790908644735030787640758417596740736558818365467018147387737499007409439854302401549311797130509685571767907401189019512868771672919487259498397755912125804508367476914576319451586897944082092812025970158889180058639182302608521985888876557634583751353030327466173729463302785801475233778072607176552388323660023011963935968952188837597564266540543952922964083458859590649988597627923141879074889494972228313043754181292943973339220420783325745929275822469231383756467449925131385456747138062651526607844651021631527925472807355212200322066262363924299918554476489585311389553042908975860713235597651144801471087432215978552647325702890298149226761032812414297135990568645126687435741200262962854624511232006418902430814584067327877377030574941946702836055271629130574365849692642116326429368009950692322361487391065206079896931722924571332248776200860485096223086982135217398982334780552837685783844341939458104999610928269097970542299989652220765640036444370743823381331048446673740001982313992034012316213739481836293018908774220640171651714064517194059658555223344397607165100418001217393484185093732731010666538317285943720316697532790124288860937879966071283639149142330020674778547681125710239042666569640817738787895700652562988898072029846870746920351488784291856073817396450533138394781799646653718372630434902926738905249270365010727667738234859001048642065590184102085149322707234127821825111524877679091202941811131935191318911931355942745746935105761909239064399186377798966578876824308191924509053292574291469676857857194857628467456297605646813940415789691302526230624775178611997205657408362380563736822739580666537644504303448646833227978890031901546208016466422227802196095699292456663890172536481080602470614611439793307531116531430235795758979083322178211711129119272985742592540134244316983709293318411032982457396323267917080396025293969204493440074424037057456129968720340334293407189496787483962089022252665715036158868046894786224588891523011600827011328639121446813599910518164241592152298639294726101949398638502946491057342259794145578749477706698390200978570225687417107487262515225168493868373526222961110387097239630681396278530862837384765877379358835508717563166499538318630563572918639686734713073039169848882898130909860628433071691215406540964740936564163030583804775855553005100406181299910876717556453124860919077782423198940143526604947524521896144782961679677022133820785608986765919320640285319306423297773246681278506221762749267444754305408334474965559449480665712469824781619831386709590106341201851599161908633476313217040723102942261319384063926357019731518750982304667154002154174899022737404121028355801612958148842214836977703585591073077812494425239299005715479656843404119327772516324029595967362679429590346034891495352050466358978277748685256738814711167147588878775436577321889766047382961915028947029455964649036339265946405428451270538228276546592145231632532542120864309020629715730333769239892014938815053223154690138689103252415401557538172911076882853667070412264810837368074646842270284100966778494122227377932708446196353305883841611768589269224424081066080013168771596498432748671731973561732256834555086768552391984060340386465775179237440320702418939783494814488378578598650240617969687630935528884096448719020559600406164598924971106668946689634423015984642444120795171355905083831029379412670753496840520439220672003727185490148815450519558535737039089861042912501535153710880721042870134334442138935077515726840673956398622948867425719158946132160083557229737555404211381685560247880623076093589087474631622552603154282869278286016603778167722001112900886246294504590603593073062597464445744292233273736350336493084437991971437856254985019340980247691004251394860886153568898671226010811394078098937140628284768405990821840861585091532257295693472421982724450301133720132630847166762043259490217616164214756407728274710745888163963616009094017307942569639692251742176025164281012875074420251947891436237530180484574477757251395900779365476156726388444511055645487222289902659539057616915749593670803427237826581560824925732056054441905663861843425373531052017144272407322096045773704610562182046452368079984081079382907552830486638255022935715979267455309753511300879640219729661699553108976052951292653605539362723470517443554312018760927777715197992729338834569503356179727479315167782751491145627776508197620938150551337551990603732690490517458217822821132933222492233144130808375243205760676843892667799461987503737149270462096026787349742509144162362855273595953915529177784364650705267291611558876305251167450525347072293965544401991845677017647505702907506312748602707411532319305622512033700639507597728816333962605112482852922985543193570233816499473137752241005041220117450138680898453549795062839292462323488852054076949449866434393100024776812069828125974320565902064534321794856724919369800099201164516015316893775457775942831889128115930196151429522020700407889246367213022144433471286029806410928346817224401727938362705285874533335361888401465885080102676945638570268092106957336528444268403397263564621853974311036180378423689624646083420705731607451349707452549917310094761223728529544807869204915511556059589634757721050147421709231804148694564816512752019752480210080165353734452683790971888640125605741496941038816675756890799265529415166581957809226230400592099606449626903562765480569467657838947564529443707882289759973995445334885509085094735107642960655145253873554928324579706944488784316208106881081590054287089118197792382879799486932499506402212666711497756018064693935183345722023913456289967999686103102135303900776769312253432078440914721428298782273297276159916666126170956791857884100778415988060674894221953048725918752179236324208575229795157821402102150383858170571382482393026293069241825046177753896029406997983330000222581678235353096156374312740705926759277756956323768541984859528813377547055002377341838008517495394466007201451359037793789373430613000105793107724594423060924529875311564672666759496898299374821267375692946618158586315568323781273717902193691235487173207634427145226292919955319656076541246911153312190717013224175834167838909571959911735788203064597609300840834816793445550806068662956550337232266781216868023400103655925957973728524635580156007304717048244119735912650146661589951157548033439538033323800560023170081903392212975172918556277929774196703756821436693952623389945369169954775754162443479139683430161484031434099892963684512877673404712118924552681024695347202600539820346206215250228917562600127570550920602362950773079807630616501440482425524553752260126060278996570332609138701349737776316723349906392996493306113878173976092207287094841714644030426244040935916776336243125468717962026684711106296549603993096949109746000287173684645662627428692337590907329479146165365812401059290676492554533256144651718771114367165412109752393135855559121551317148349797068484236286317300281351131268165437706023083892326096782963810342212356966894523951235885889927271043844350477539596816053306252861088414203625395041192502279346922423766626681201112007279123098308657353092678189488404318930128909332073074476557077686547029404857599222559627233223405832257287821190456090634647183687691744231289541614589735210590673835350570247542816897449858279101669677275103396101365942445041622131133873921900566524817487801416863672777557254731421290204283980295554664173565027243396441717509443104164229677248997966468231753214062543947228097460758039843778264560843714111113178640751781417569514846078295259329336170796641568697060579188189880417756845620157264577227256386469642298916935012297862302283372775499107977690021212801857227596011959684138435016365936129284611721893174916054013376626959996251273536499244453947169863885478640759465691886234698434387675497718123626744827872183562287003946838541443559928818249082915260993841142054038054114325119184180773610234225041024780823016992756404713512591635784166117479342699707745453246122538390878093926492078094646694044857110037190916642303135695859674580347076133890453925262830400570416918243729715527809311738138225776822404776407048207296235611110046142282683739453638691328385805684301872683639627151854612726058803969263204575375264465559851346662971126943458255367895237320864980847045588963617445751860827292811407624122337253458318651632768874847359976214162394903249099516791328596021485245094139786111990362469284375021494793239589041558606194291962139626497877945213056168780392352423682062838719152874725285955001694638946769515188186308723685233973830683760425728155449690573283552866826323018510417903520486240537106868298886964503744160658783818437178915028591566742845319690760870002122874922627790229136296163712330594479303302522292390358979171472896002825029224096462345365921139918378741422263491213437178420788245254090243776916455249131879124781602381111136664219883758413696291013726396743679346236398163327795258115650763829235258146822358663869674059130183618067975777742219966246459437029804616398406993616826901617633146925163679297166531117786792200109102298099904404908783449407038346227107096907831221177797905379936998880459676497590895549074299386500208828845980497575271230860176044376311602635010608474136137176568993496616842841511773700139339279464311541297087846562778602213083097739143760088266701594994744708863290861071820484328567645033388693988920968691710485589050774974927759555378022232765699552517747451202028759472355586104928183786617393246976731665448640061018998088966746795961288140728444815201020083006697818524487963837598873868975167044039322247812968101801245585215605743569080878112989511982016926147142854377096415905730567798765156386829226591184834442729887420570171518547485397481447572038431610145533018886403800855297202112781035942568938550357515920802114914298673421422301979606387402798024328186914441743650351604700999754731711856178386544016311257281381686551359593850074335537852782283482678813854108621249721740822016157895881024221155314903299053902072951210429689079788637532253814729650029814494396517322924043647070890202150422939844730805464586161009802796207223110608184874762992410935163220882818392377168081661475998273323429157127611194332073114033678146601455596245632981933790979653467734196389100883096230869258938233013470782831333076040630647804663908121347976876972516299413462770708653633048394174479128446311863706767720438125255667294163314058065316253099183351911003503884698765657962122363211589193839523141210721919135489827208373414494006572307791596073128011021166340274140089771574378627952094614064037737564995329272533917711441928207360595978592949955863942732304568465814503312575335034102798507749569020479058214539197253341384958191740172626949012456864632987358893246316277972360331572136853509447665811241915037223319076040987060437768809931281108090286094008028578314127168842181765554474564347387658170811537117944880221584796891306135923823930865054378560110171057393231810373212867693903432594356656926308398322456383238674014220925936932133795875879644901012515982320801237791921942061223395432296573542558415261236068629140289222407989455811906533927111789534350139134791508406119125072569852123782684511735984086035331064469562687429812951242990016380701599824813402421461004812473883040336059344739851896625138993243819838663192464639973085233170009625080922886324536237394032992277324535829224800830015381035327789431538443325826859818799965310474561917913063576164329003574731105334393527308359906349352388823404749147377936343611961804277712038470704477881367810420745328529137125833788615036563393324824047047465929715381823341718546097358749113625692016667888044702158117839154640180091598895283734115404814032974457817207738738605881924425134255604809237704335595925585500143851796010828782942879808699126434615901018667763414108473803416831816189340978920009767137727295485803615577943206385907734001999324882401320616882764277924014083640732659179249572458207630928590591396505034553954791084506017750166200329123414368544425736172243603156153715145232854771209364984703008804527747199804164554059421607825125178184256219860232419187901544179839480413964714271601929760966502738439169103585584914391698638950323597524864254641870227332437512668003247525510333175208406920396122263434100956427393660881884354226542840911118755248093924037435503495103663642515701917988101662347097296613988478423969789411858145301074931589154708785230924660766492382116213311979945435446194073517789123308699148223158431663729691193288307661048254937301938282377909059100750008217531505672536769682492498717866205464687947584259892516673289844244572021216964116490771299802420060218224627675211288081485544459215897790201156819074992441695111064456650914858106221923016417669935699067967076338068585995444756882464884506195636545592940287320092014645830203664656105638468549594571092632050403526972361538309411351289472471875490332995624059069969522161498210992112349350170667332051055433837532291402165552260573422730661300000927954669142623351094047091459405365618336766076233294279276095006936976795503142661284567928481196735150410959152870044399932240534987690920366098739916182998831915696798927359850500338525038911070211343053456284445777466913497054024091059439839279431751136672920689657494808044370564214218060213514899121557788852803159636552045360733786824479272797368751313357604699977124553508282949667137158950145725383276803501994064078047981092233142454704404428702786260637998019440133683497897093158708888395982530302110539590992994514950833341135839464360272438426198932395096197379956992442165072458293148642426682121214806684989114467581153301333100768803636505278448906338982701369164096592987525636685881747318199008252250276409829992963242838882636200949278744499273018483582427096828798983567242791250106313669857552955501224871092798860015876305029253756845135090884195722342862252703111349311813982051109430289837531665505456817923524157353638631916663039767502611899628876377256090582483594162446763267167283488706425799355324318565595751640848404040367879733054298699778763464293978723104724557508381382274379919271282105351004579333710837157252462730573786288181612837763719597551905003619982218697444360791416353381814267803317449668834661445999413191243688149616967729789978794537736409883128859478623872968934939494830711828977762927865706321932039149349811267083600716414593487316580419404055009560424337501511804655953745554016937945158086296531274983087955146491082652643139308081239055853571941680463429353770215328680432708885274385204455554166230972771710807056761568153001999677408883119760195668491566723994883787322574137569250452071143151731952369662012520992511508310109305317242463661593303850811479534297841010276528418072095869489559135615749869648443569913378628772477282119735372902128826840169090827006544593193928218229612921796520421427658363161164186721273925511539907600588205817568502719236114114084651301432144498763643591809011763520137737658426089272463173498256515360959068461254752768759141319300377772100971369611827722147678213243081630191567389325332159697009046763917013680060152453488613275693567942524204300992696833199122366133017025435578088414098623317133478457688125052363353733849121529222629975300143663330606385136487757327014058993269696299931875718272634074151561549599240460237717498881421793252542214234085706612510394430863023090985543931227185963487257180025690179652796609553882655640700684729706864009880270750227543242499274559115844720937121387419466925771189500768740946913501189932991358926630995873210231955798025444491810943862211997433663310313234323328391802680966804191476072981124350009994388516678867503762199445423483878355175127088674297695713307653619056063985831251968846093835177480550573618845169731996078091496326823598631545625458218539147839559597513347462909548354455046727305879464497842158353447874700809025717796262638949955174776408266408627972207492102527222937769288200091686729586059204113558269523556038658840218944173185422189225738843351446508288288045841670354085317453239896863246425932880024236469461482661584011054164268929221372442255700143099921485221853463304348700700473819316691809156130833586836002233393927735239468545025959453060678235561155362068417645926278801684287400137731866188245064418007052281484411750470698825702776649959315066435300385755779142743967267319415213762879449565917706054966800513070940568401599340204788961472208948821116033413410313674732687872981945555046916452537959922652612636685913906610240536562103710488460761502711112262828906499023285342515975126657511599399366633875454727336414029848766828073589174282961393535009363499687158676768106557864753314011333989999215028789344633356334463932664814198944040762937660487797178233756103870810682637278442967541192104585606448606894303468321494290224633829717949831506371923590958059196324536442352952454412891864434385441500458038307569832624168992396080750484286710160525498837245337956193974284745076840871811133411464878173484758755583361505824834465774754568966242230910233992120352401464466382717364605923062377899779759312902924697934150073785817672900430277283450647150890158802165495606074326947509438707586701134649061771731073101913140840025197359144227583798189813575394217757197717303137697050864789993544539141889762334449466291763549004991721883384226869863453405930444130721368568007929968296024472737533251333984893963336926565448840292658383127458041133894302393399130406202751196977545591233833925776925924627090849383262839098993347579895227501872366975115055204350716216515041542638459080292665032947418497040026303561122468598917806656060967022019232084128260832996965203693723243890499597193585846063659123353750301111426756726296569022633465252935974882959922954987300494131331386020878531410870867151626185178449199479544123559583374616389285801488080118002407149543248082541136860234291543862110656346646552543021047484509185807999577089284422904867235166001857914269563538684658447422829870967355982520744984437945049384437942713239729955107356457130812731603297305056385804879118902612190329581178494897637094487625346733704733306654576096731360684744913494799723530047691074192232262650197398394439661579266086582783079387327332244409714127387113782310829180639057564945301193539676291274562188298934157098003800916019703549745876432146768317853607275904600959477611077829616390832365149451660763577559368720749960724431189660816493879691776067318202956216722225045578636843105924171426356573091538088706792593299175269539862160407711855018775700891369962869349565868652648944512445414835743378691447409950831384946585675222145633682519350616719550794074088559638946721059722997039610859378634366561407874268222398321133496212000890586899270340068039788643102817851492493914938688289984640200405453850454406980893482823707144944077274427074842546344674822803557273499862656452228995271607660113471726529583551603041244013757807224867728926649579147875915981960929670847357079580481730806093430842443400124993413971693101515141095472670017130351352650844220427247951825366939445186004345504509552826778014156090095487504201683194851975111028742255105830802154752819920587224232834557074893576326295193274614003834647360659047068793097121899230563886534003687209739721450960580039974265269648224304047646763630695988409890481649106318397069196384815914518998971853258666888599227775229299119312669766183125547260719740680760390832053496340540565605949811894725001368325660375687439302421900490008756129784154794139649444310769813793740966549244586325737306983613015846921912919640742722668176349926074541660677154900288815105239383928795854314301453550974874590669750063165446598575457300281016197783581215174958242966541284349758172349673877029955887823450787658157953304942219661338620100400759973137200036147305018276054097586130717685911817933810575893861237540079938845495683336990958586395069712609985616802779648793680512160115255589394621754486231379864608217826468070156919705978139833469482601499836384106225906871649589723474871026214190198224145013465034087619223603455768933357955448611988149605337379781331803950163647845563548822730563258011008045820443488606396257908266275251863830635874441266728565827854632029590154119425448944358130849751349100812315844709835804933176305591785554326000931789265359886113279824493350109951982849743708472260005373919142727116013046421858952206719570439613938689906344812898941383236528617115070640356469344907308059477514495039793694224588975864050851202209907688302494101900271793011854050475282911863617201102466880120323573179022167831400474855352763312607329139230457680075351915495807938449079929752935371388314038988366335163330058075320623069947277723782062396936615865204182745335832548627742830386761108105542506647669805844379828418079193542949099328203754463858560027398769417213195110460210622053779721837271600494450348351021059688012597878216098839387613813349602155963790825279075826360561180289228986652714941902119374873200229847503292538005410251715273430468691303330993264459956314279865220093799352790614028306245885961002759400833359234892972596714782955653911184778645959224827423037927323354109543298931864194392140142867606899307022610214524144935657678519018379616657925900498749900317560059586885882838193138555279999414936478276589887336196731693430011139168183317153715012820244395674600173421355367520478857177479352680190964107207452365118609630985562925099492041204163370788818487163392748898568576049304912921936860705441689379017744380762055462698980474488511169172616386120917495961723834025095009558683227348077234124713536529373004765326043788597581178485221718562923822423054210621403719780328643301315411721834581095752684198257817463026570342470249882400053534343377133572396053242086464994373011310430376221115000792357312739958214085626365524460213670574335160674733109786494088527163037186195142704233505342822727133828665360381859482700752013282980876676082126607162346487877589215613698970742740582980242698940695663752818978141726958253654766336644792606432129118210003453078774355854855842774599869759713907624093776326958591603739682868047272364948606941442264567783877802698022462029416155601188057937636458555713516210245860879971734336095248815066768181467060823563073072640788507856295191133353377450308051988281713861683058874813778606441762322519230363424651086706719493428925990773256784151296504736382613575468567855945292676010360094794843512287981651541438176109153976067036840144386987061230257773745955944628643247648259695460563351897815451726211530149981817386826244419522878867596133978672559993047086688315545340097899910858252039390331525716538085088327205979348955069257534337757571635194882015567547331367923727706312981243710559954418053363562462589234860765752190751575210851713935852858793083211984926212521499681809775548881996277049538195345483422623692299918842378028440144424105974072959476167211888226603517542573624088825980655506316032975484859894743978733072652486967911034062192437564162085005038883498364738839260213247756461080866799088918709513307279983066740888098213639211702077307392583856475714696103456744699652497346368193353816382427268696199769994483943201876219112843711456545365364442814295592449185126093256060672039915716563218794623921409410231149183241222363431505246552151111643062428965062105343140019882869877885307202492414930770712128592350335691973900870763675193718443576997797844535345505266988804417647818485382961858917533707898387605283578656678361476280371839929891423753562884774315235031876918851576555085238821393692464869686182178251379194333362657106124865062684490978912498655302014122229936416651282431601220255903517253462246632401189382691957882367382238949725397338267918133005038362052663562255400828352107132096319070486496130000939702958372666555296192739331839005740541856955718223078539825285347801525597778493040087984278462922138991132131086660164169170337172221101022716376562694580213253544013881523584017814352835001118346987954168285280805072998200249013149921272484450120217081830875156739500054542054696931191091949307092402257759333689631795346132268137646489399521547973908254879656403170658958985467155448497835805173701061214578518772682531953926359485601558730502020894088324035610190691519354171630090392925059861838785354360089511564823345583485644158248333133122679011765972482270587637232009619667954494856765374388976516653333349104312039587974688758926958690875116589622877886968472241991135844200241747628752643183544615419635118205778859054095499633357287417303786301842114889212152903754732277104960221047481882721061835768019922493098176646748011356240586090741529235976513938735501493976056616448263594428306238146681968484504893804258479307548117194233216834549608262806042582114546378452707877691552809313051566827865216184815142306296114139843507907223829961152749376856132105438772337142001791616024820521103410104052401769598614990808803429636499582516567401322219255691549578172068412336038643843909962433103324394008967805362650733331155600675968080420479054623873256647365491591748753139286283735399744438280020215327891036879727323161974255781667998695692983995461097161240226910911877762956592274959837215393228579183134680665635558659119323469168969868889081425443638169762023812763570021225467081730930899820963619899447064616128857287293923667642799091657333126807783210978968569462125771872413471500485689011532101020648376759202085096147001980921585214704200441948066319680654146389886784216249129995739607290866270680570957724896132538178390189141126914692922985129594867709771219131672563589578095700957928037768167854256540487664066369032410623920160048945108505097033047971640984646263920007892742552437325006154610423857797418274219465439441434923712278336333660903696323170351959246178921513648259169024852158463913206896080692860487679752517381618245617357316289573294277136410709115410394565714398555492400385230273606549882451263143798200338650062298510005515653826748161427627348521382569651354559317824787177944141041739523264020277255334482364819213500365632000264484232532956992331493594109827762688664248880939189301561402127733026628381591995112303630700337197355983745837368114853726627231835578729642811692158550870142768163961304568440336610965101605795002873123364499088330340945832875235056332239199892545908580938170532879672340041329875784453287062194579535093917078275029891521087139280437219795523307456376549848142200080903716098767810589387846598720120564645668210384100967065051869437981197224884517137082810812767689931387354828429468796988040616559486077100238131932327440393806713838568364958747592190693408990572143505268028134939548774981223657300136186074748471559538025584549032302104451179498960811988359395332504804910217755917062684330977330225300616489570475004047274972949151534204178506002342575943115285611719052198935701563744610026409746041024705560560181027799548889101120339752419033511954347071797054722397017923110203739025572713378852061866417643788836063382804737561082986866151674132878224440116373621599796938149312680134536470591226091660601015308178992972138933252358794995330853273760568419085709844210249758085473787572321029069728288676337452671257731692189293781163891646097158444281445787407681598992465519187354479779772665536278905150278426314480762566811818854704527551514681068189509446352458696846207542777455758275703088127891331477859663647924106316950460966165583740642178704064529962964569852425963531094111957920132498451041145850203742011744002650175942080286481880550431266408958754859470386791378593330478420776045077743656127575110885988088532293951250723943567981961976284003881497690032714709782881847118442406381096899426567350171694558483151737690839941305950748805291182722762158001666148698495290735024684727732258729659952240326392880731855928209770043634181689939352647246652357249127409977433017863050414261418467978864565030027306942253657448659103136033217652552248426391877037367520811584857611840522706090519371739302982207568053019445472934973298555609565439575283980622106648802700565706023549629693010820975643648733121638002164096786671354005781157831061090455020765225844779351702775402720560918928381661914374274159670872927346473876503141208334471193740766987831466458720582944048054731624616974881240242416511494172177001559800199667062576083861224586019346352486435202587334881620294069427458128427112784692422432956452881528809239555382843985298236617999155714576331311419283136330807376584763749759113409457080837054133851348715113041531719864060458879620948823521298135684437199367880926212269205702307719984823992732795783411495476597310348832598656296750876166090319918775966008317914401416727009220192361884186928053999234180795399893775629174212531504469528209530572791866305580835520968357407750534369498095922235649323008585632072582687316599506103253542077568643548744269430398801036221076025193133708101937103339124276667815597644749310863557078379734033243760846293757187981331039148366025880121136077620674597170907250121107980693218180067770030040038402580743189892028376081917169943066881431829537853373658968470417812412036082335458310228427877542199515251538105620443340421153652054665015961508228100683833355748181773908258306386946451100264088269145570297824956104547550155372495549563121627294356886956587306462170979977021804985157174393191814794079695348357591130409697481178081328273314581595249487744514632934311736572571485254564172382779963088565217199993164131214617620088451542661507240509346870346006183919483421125607803274360740718797440295842611557326407910729180505620414361210035254177368313140390287717274394124022015418919729298337985488450896887871358399061058921107605364438549996407218264758802305538619688686136083832613323124112424087792554694956378583338891007052211105747333538368337965604408858247308270557237662993337999442481803674887979422930105798912570798761136740043137506509726803844852282977143248240137583570035109931530337886259157809796241274133340676409947509865926217608300104979368609218384420307277677663896255320473495277594654602121802244268759720634795988005541265238898214005818947437335332915185058954922601148441421033335833339650749811343661140470710093600930940475848500363286024492462533282747884985196376128440721700482405821189355548358015508385514394032123675958089604623329924370224871453477993893819461777708687432520989129346099764992773644063035245604825752530091139096244824429963946765820000700596383163434119891286375724514402913142500527585231872888801763136789832178039793795552216786786113684571703021737830288620287630303185342181548538472242055520778609034870881366044372506295284156301423823234858479885479966581553800997752469713086974309623154237709344138043323700763232085082472522511259374524465560934489931327874422754261596084577915052415612339545871967049183375558798938582381563143503052505263040841214145260189459857008986747061449961670351134796795745528257374751448983655987138956748324177836975953919371183419686193249390653517708217373498695505845879799666641630802904461104979262978035314713379477607013309645633307470291726701163738145802824611401792365303458396157888895196761400633876546344703354153970665007816951883526750693678624283814413698686407039652627159240513369712255693790093839226622405813675874621375450299653652021781215944995963882947444070171732668776808252482782523753497127675937189615298538673581369054703673020844214310272242417131765718389223652229941679336630401787858469572730658648198424290231543321079928643884656116192102813263856099361011672879847905212067884471934000630596313073232647005491144211970369423553598745854614113126369999116257558627710308050104290614958603867915896879139937244155398571166726082184549514103359871822594094169691761596537977908972492698812485100146403308993291797679306711924765933154114919245335605496659697414400071375728787158397692973784898987343771559916948654849788999781757746439853656021951115528141974925586274892315473789466865201895809297543753749689955021287105660575617851492937024116524618240204923317350722541305244525310943483475725646909200308924035973860025000619019920599177390245195817427871042305661461915413959938760288208708443766945944458508416330588353497922075706062681311676414716347528415027919462420616270826992136701600747097818851255831042231089624622085551998117408619731043044280102841969700138758441057065517370103224597995024004827758617275224956272438111519459510063054731032497059496735651968053264987529433291468410351239419961496454953582538313539782922006327687031534328450110713364268167452562283731152794617022897202296919417514232761517067479447971163522693151891736155870454359992040296593428360128022436932828142448945077517761117222530072252652106661216905978453499717306122731591841692191326043379023789561389929667015811946837144719087915208719474881935113313324694684269962526136029620250826407569780437420409482470667693457838774071513616492282488588774567219034418405151923307869116713848750119059848354193409623327145139262541154478475453024557936880774114700668488612808481961327549787984470578283484009911179233660553108945906469242420561558707380050946830818269422940653865186007879124271348529375285166113823480668618057132249308097026483308472048822585483186997323559484087834353391100005703948137540404537322168331320850609961155123850799412680510331745378994440508731752710185366890163074462837702158743987978138249911709992484604782085832566389433557884203102433585650663818431972933535312985899550519496244624232616085095222256289684681467647197559673607306384460157679959519578836335119721080042597589724940074857473090415939203323793582943024957460969516987867826743302994806233675649194625068857006027994968651684581190225704883794975559428681322833580566956997550061158249814067378259431506072952272996126333792487175406119861478039703483186913620756145769450870610485184903406847809450669887526792770006402840752048187030812160316895363777695884072788600264353627212299297859860913224552362773781359569848740038732484610424245186853724239998859935993257700842560922435547920744984857047618539410184087693155794145436383899534114061035028918300517207123211578447174130215325327370224837016446886865431614283324520323747312137614763986061386799342251191629710278110108244982451064104823085652371719964502537514093071167088659382354842901445155153241086367129883791506783212865522547813060322441652734453798770209480446677073393043361302108659753223226586516999446302888856543809094741645536848526673472310491878980205616723456102225693338501918552909114067271301225588933632503600169602730559943437772665326257190138798693702784086372445476178163612901140406209287878248777435188648639819647034624109425738169691438205652426325111107916154143101037784365600427629492408173323299889213254974290280324620334400478487097816908830186648653100655283887424111678737398638857122301781029070671892592564188713082602749617707968215508448330704443175698430442141290409250606401195975993131681889423036490494496552193947057032512605513823510198700350929150682609835766204276207115022778445934377074834938068085334574178339982614572783536202328188607534465773536355902034776446266799450349152506538219708478542180699136485624510105634573836318876372794231890510167003991742442314843967865775077789597094915541229684877494168344631984681485460248338725593651260226174675862890609278847766790105904673765080570878781621021028845743992485733368943233428669851940314676811129660273346572576303681061084071137310571660615405084449495788243500063117843304026673518567793682033086667718465335133611618538130505662739772966271356155225717738479445685388569807749812337777541372618336988415654477268073093825156804357036093395492302177222183871383993099311081794265928069594819041222097649190986546463648032442646964251139617300771355718589889539892012127892805722572118366347958392093879293268538413066566216922772855840384563653352854599442571480379290953500118927031815452313034654423706720957822152928357836179750209625246808693690835050966877742532844261661729374511289498661322043153640165676264658623560204695453391861173371188215252587311321436436117499525119009774135330292133195355840919004669849205378628698766822172819811885660098183607640288888682648720925735664857693176220777690411655847307124858607796652623552338462976076387739470152007200389302614392772582590595836082521865988227393956147656735349483126858548385042241065431971488355403148146868283000033817092576487064656468518468671705362318834850219772462522436478871935296343126958618553312931110805206915342913445570320636695519210081146500071776834063073596776976556575654964111195694970860883462608722248845141311698236904716827002069798665740814341117565666387438683948279779386789639471119955812923742721072224400770607006520883840560468415988948202242718821142665244246825705501009648706657608157705222995971412661171979396076460995556217891538045916142574643399195345615236873875169188050319344832994464155874245165471396207831237249741590603198242682698838104191458380271694104717508186149718501579491080888955655450029484655547866103588265831804011311290470568796871029888431283403056125994984620180284332145285557078815927422746062622209121724329369120528215962223867226682813287296580253678583052169870377488876163025410178901292683263419752800955488364079964551505862186881266017891441795700952730401070067368856545234395033305883745049338021751010474386320961583672507731188664190124079790312145288579844783899593028307902144012513701235329666784964768625096034519343957100045038647041964467424627311316192432657729215257473450053297818105016890101112765006533819743807227738797262076160442506919908048581340508067416960290725727304390519333536724358068023400845476696571096316924782720477241954423960032055408083379599557178645179075509357131115055939617804888941306479318518381925385447407997340732098244277137251432392894401138471876471546641384725462505923651496878832619586280886349544891358686069133720238084760215456747635944665774069424771889942179012323061903212709544039991486955402162006800146121755983721881324171358675871175322765606790660783169211140357157659410930386764922390052741341114460265254668349199740794141793829315395703442244332752804075797511610029482377985621344534544480187226720054026580445756241906472931443965157461696337140970299930518338048574014689071550810263758185225726945211986143135175459439640747975849501377604307444187115364485449817848572363217231512247081056655007714558781284301598288654412390309952555632917351447902112064337492117871572164625165676191990415304280732123638439076276407879583714639531282091301543370085698086873287820101214673628786288919005202312494876716535766086142575170494787649727690202255971656961997079555703855144524394262866043743103402189345246494177053310273459514143826236459404159466762463389448681473296603510074544120044296380144215383140357421161810413298833141540339276932294609956341917560722984913312177173657265150821307050804101518096054889439840722785461712921417021045328162451205983900992529223514410799302443277851650090376805281959696405915146667081547313007536850361249558442190828342138119954525415372463096086073728012475744987048175121182010506363598490685631045170762263056784938272928343511204328422099627066156557896113538301873528466288348013389013374119714081393064542044642011931004019056962886290538269383803564442951139349598061991625946809122403141751738882297653067433627767581629653306334596253139402574962872104812946844061905848696066609326094196262387994874082900333280292164342926474231889767001631656407799023837621761002787793974760999808099659518232315336606295287679134756398360076600001863461304403840924858251183420755651002226782471896388671615221304683618010526872094961979177187442107456257395556075921407624736669924905803019513642362566980401263288533281120341333837956679056930469644232827593066969488392603011787180669774282805595310084801657282387396702959078653829856361560442844830452440121794130102607852896256404852258046851641175222940396533448543018885661518083217638465076699147744840100221369154258175492827289217697049884134171259818070001436853298908465347608979461684463133977713285684093998540480859814771239335672219918849855775219800066976744356110996901168011716450930927015127968083200518417728708844685065264035994955685566407502729853553710289482150744303932085859616165727266565939280624275313784105195489257351325846763021989651893639717011564057260566683040597797015579251624047119952565664847786290606210436079450789345902120236071999369253771865717567341744752587190261560230642509963335942245458990031236829022832933898464839279268645255470331941901228979968366114387624383406355925789593933802488627113523515390906668091583056290907003776957015850785247298806090674097835918413662631937792865033032003261159361980835362815573434672327287910247356025800645018861025168600215005175494856472912980211573521671901411372441870138202092930285174572641745327000671879918684871705564786469178316994340864837715654013348191901851158982432136884495613953815589462032100540552571376112263536921178182628892885883271517186111919561862981443961910210180233624693479193814439760573255694323107830308354894727358275298994899277458124597914415272841464673156483388016962657162642383436609392617167142501986652612834659724983418437178918900909985281467109423609284977555126866894975084938939228316496346560341304423562423129033792262859741981636837758111937264228874334072920652045899308973392576430653657807806601057050293871836435791610298150912926730559179212658324533855083690765124285102429439871830431866395908350619224667056426755189910851535831025070663056868840772715623469730097230482355159061421551207199334783556785241686347239975973288947985823025031538524431812407746974118655246680977848263820257568597375997667837816348522677229604997366175336078372165181973512772871095899600893585735742115062532093922052339845208115836582488231453651445988806943278597241555050411209676384452338158730639549513460083973508500076539023091719350982120467264361307838543674795501429672021351097329353275666458280549821332528135852092738284018829919651101670436194035698473960575435637358811821654326543490997797726309847959425034783642103268711344129616037045919380951497418726613168593993407418913187910772894268837655314250345095484784573065585324584549908916036232078902797444112805217347000238675983331076537743633513964352909304108947341179069223929431993685700740554946844629846202486975461083243709701496881903065292905990581870854052170303566182718968859999870633263607924829639582669368120797939733870647260251701777327960422662971830754646587297015595569891531884031826797969163108808655652458096433469208678541955647183050891204649350373522601192703263243277402032502138217073477078302791577174180330899458542723348788684319958046184258841735243237499144298141809431268614174652287574277704822088517326348161214113015108026553545377972213892596000450201889852950513639211299056200626083817016437410279472847927480320564732527571151228709623734998369822826466303409273166883398750993108495053191302318838297687415325566781675262409662517343773685308529782463553772925733372317751072047824912869579158849402611850853868903900426751769858682995122946720118071222542988411470801162017386184447574391716032373290370478562177336073662045463854419773883906437125741408926984718339014772768528792140065382755023910588447742702737254882607209600876770166243244524161449397676604062693308665423493927418369886881928024497171996619131538663754151130011806703175919086965046595125424096605706201105003220273009382435437026125077016151499526155188910609553975608861778533535937452113740583374775400460376671417563547359275613306174786594642786016374664363623229609490369059290888223895390332178905214586887546081591433493120532443297746276932492348096617538759154038405883257498883036530688342571625541790953446296207123952025412427481495712313030622286875814881909239335767489019929559815903745446954861563766683560977986086661642229622335421814653109060063038193161610781846844295934745339513974626001309766230432762883820736908509489252948437762337790622598715197777141018632527138788053463296693480868235130908373828325459427714753834469511679958551198218397214945139854783784369656585022141962222113779819473899643711849664077666597721506424214367189984482393103420073623543486896118887983606911365424470493115788559255662853162391621271684515201686667000391969834672513863572559661298548082939083716686987540628754183959960546917035464662967492372373120646783657351170026031749298396495588315828854695007699592126607149344790097047323354592761432655931712300470329785790967093378559524851412649982869375446130169214603452464494210332246426600358880297310277681039044004016234970167254165298900361945582722222014587521397329336416342572034162710891412646902965606787195609347300232516187926877831780350198616060628563566417478490955682144860476487604347874732952128287833243635771869771155539938664549519897664483352401447449536757008467612345286188088129984397249024500289798461757141784467347014806696041992957583666995104510187516750544371714822834136467923847967728729564513126804483434090747575837993267690611524948707068663911463363955670596563298139597285731909807255722184120961456906074972207867735287978895987399039530152230389965511769763793345714206377890445675291118118955007581730363175449466565054130652363155788926812419343503313495701294469845746463848786666517030637060749227256865905464276839152348984556146616509479327286061926386896977744989333878298961073227077996636673701130012359122882420930395268004321347841396387373674903061116894423393448541128843412669632162731739525605612619547216174317084102278004315946717983999226110956326492705422477679093152954626950446491010351708808421972089293824583465803320901339028709008076613954018067305318451272758081906792594862147564910017676225545998001470531401280561238608278520441636618918427482298264798816678016181419102484801962912010793159502657360379655314100919279630383785211589472012577156957446690008478741338987469978371553344952795926482395185980055186214290149149409010123297918293613370357095469898943685617403287434357105987574092846750399525958363842611600408199814977663735069718386031576417515094722772121449165079978013183934055214934894263921463576628539520773501964789286508684147537029843604653310579195442047885052820811318631751674677065041743279631361801933207334565691741159724639545229066705432005007325144912067424505748704926455361588362133566251031390353959902826119378680137694684887626481082972125826707616303423038752056933597322712392976888130834493415607341013494333405407504261134468775896942713236033458802987919524917894021097944259431729647293561789950934381728035636678007732635833174751356476066003669133308465274965575598443031847253847147690261370670786699506497602810572461663756296334740403285826273862873503743352575842188817819337010395918549073626344818157139680238798168042745798143955469657436664480268728640415982114979348110542221098062639089991866198028855110205526850855294950576296180347650382827609327610414880845243354847093556473718257707859993959754223451966423583012838218984867733819477009812563418864502118498777316387969925102484303858102805006620932382701100183863521121184481320089668671501211006891629291743756888668116673635527887111058333136003065210509143817964127518860858794343551576482298827466314759319681383142108503863273808015573750997570219647366167626072573055961947820394273329370270242738806394747200911225149086409321786835136465444048100247752469219432899080763723816118551023838699292384499700498675104231387206953335471607625421186673661155854258927735365585213680495673894519817733747615628828929133299098894855156212998662371003252426900708532333670779852112671133697113206678848757518161908172538770970493557066028688880180006947768347559175738281937706242503764299948167441456312238034217956343636562998075776358386682287491982899725569565282904869077578106707194194651047688438079024117842648270274330045283275907497869602181506224419738960493217509942968514192947252747124734523006462799762243355182448024594123285152493507944601396292284100045846127614531527135978195394156940894372204424569795612880579082341537225692589820790417826544717284502168156622804343321466522587271668373390021005133369674558772510328991264434477093747120023522074328807438031596184170999087380856195592057459950415098687875101797901302808626784198032421323655765821765041117349383940792741117951555490063297866409313437353070327423438086881129143531986948217740230860717992550645257111405382085107919781858813470061781402134732475282182630293688863656309190325020136077739021941516411191831050548069884196652095217852998011919646565962642138182579848399260596861087711251844644887068114056338965020646968923350846650890510393967399191330004767137353081725150848481465510058725778547006608288534018736313860426520832562260607288817312915252132028795579040664806904387388400687553081156218168114608560139117383205443653886399445815833901589631114502074067198770229473900230945825368708011575884828915835538561495546286565609435664834053537509956407723190248302544224342547859809492246538519736096085651683120787343879246373010232721863999519915213112743809147661904616470594511615058293046369824618161415219387966141264514791969815434030331824504446811131925726790658844925009342199030130228370270216541004380601600228058013114964348042968153497226790894616458630244837421072084112843414068493844122098874699726043626429002819446169320602993972286032280205819532832358386313649382894804134645015337119916708365507686730729552067909311713230373583583727306276536143078092755478378253846227165358518507687800168530167424391391366884290821191281369883099284272765098160108114955536568051451581456332001235519617338965027712340755819505537576396234104422710554684786630794562635936160251252746295205483376798115858470031100148861439177600419711127324183398679314738678703903143263767919185547000302848915966715690768313030383866450172592407881207214441994698023992700329534429138084393066237317224360126762648700815362475751026677009305381147472477966204149348931266267768993028362209420283163877757197438562376541926483664914928212928284245655692718361983686669911249419168202643417807146803867720594846498395925246530321912880515045058076506081232021532750252731916370950310537340728846890903707553161132384147384408000739899845788413103535524470197941142178716208296751468128795168684396879396177884136800725416418049232372060466257465696652896002254566521065614433864355825763337143708246015273103244048747424287935108030390826189946103141907659390873207107867578046505760947363604757841995381585326936288181808313599029275792946715010400612550164163764554067293063293956622632063031424458466670567393672193223179622165997487159078270319919012362165019315428812877795779907661438540304159725070647839239999023957693000167710258046932232569642004765203110682671291017672561001948565976185976891289099634301758847268659213702115177924255402045281072470355736208204310868581371367714307854453290431530325688080059272041501624537765140944417953550831862189434181660150828274213218689551217279898220617098123271470194331343382906979975838602271258003960390450698359514666634871581696998937779249461712648300557773698927526975091291842147187749528243645726017610811618886589158912545846910772111466655934440498427703937406216331617784513893168236509842054496540221421108326660952460150014847052616703651610001721538825565783193619568644599209441199970092082630364745442438592193998952276236194590590346440935309783268472182575400809235013635348755824724920233972585040956115688430779618351421968861354258084689876108537821953012397006926104332887062488979369237129256930473346572021857328913268710654050027020867780439724211003730790109335934021609267892161325939586920796128010575298600285210320973276966093979451120762587719898003737942144226559872429142915547332771867035582255870603143257507168489490321457251856315903625445754137276965437659284871931209041149453433332129547910782049848284079984800047046320251532728684951505209105905145554474373189005545823701837519595609525797751173953980009394139164719712799737681280884248818451063066995591901522884997485690392516302652836301379654078697830055899572457162919746222817913736042829934427440685619357029717256014475665568588469159065181254165132453776883128984183379876288571369712714500280109461525674603533829326723625970902811690027314186878414425419437311256334366650070664905335357947724241152458137223653185333547298914912635573759687098025928576842553216573955515815679407615991756023488932419236437681882845974614066756725608258819489151358280204560386104248695535442459703701565213306430412882966808431744468987616719648086432241922803255273323478000489018787808295355950670822324911565626641020893569688891742309108973208420707301360588047700931268655318230647802821569196152399901390184927922990673915911125111552901314381530259326119479579198372327880457735603442165776700247971047976484946527199971966399586777358092433461643242551829264704018544510176656309634780274768709331395590617189507847623243019300983041174069656442552319769720801967218781946475000206733158894200045767700677506470459213939543103442636881687839745442754275072808712460547536886953443227468377036722182649533223666261412044932028542739836932076542986379059188571584059926543959645297063466543754622505852441968866859152799644740907044043610741608998432178080355239705655870110980485517093483596207772641955638766833111231920648956672672024330515635005285799167643392019734564164415963935748446285915350403746099480755457657987409605158913493000392488689073760380138018078020403189747116356765959294920309824939790306139748503799570928321833702354480060415028280258430971156358538661412823059150255354192715474805263676316757421668988244998665691566828703968284084211477457418097618305762420531710419378196235906325197139293887577950970224669384180867495891091031466953620765751912486340920629777316522119998946797234286742187103493832713020316588031891483941557371635306120242058112406059554379263129544177162091804650244153185318905121659244979110816688227144248775554066976860950761905510489272107551709118250160474968407997632121454607147917840397273771408157268011580450975976286943206815493100516066543893252703467177580660907834327620811675324531171779056669883013316062841915632818594138105256193786555911893452717943147565557146844469233085670135998917705675872777508696676344120688958838006083791302988099867399159149777834831161863962687555635571821509916098021781707084497143790118997523093665773729501850574302244366654221573271415007643657080449556191980626029018453605596097832353421603647098097794872521268208839203226806993626284662562875798413597873441270930275643386621243930963164770081049037588838152114057099972392755569594261356757592652087565086716825963547171680503867989028738817622113136384871028233266527366577567423845970504145167108872381793472492805445633886005496234002404253819908783903040349776284315076861990452893044508918160426020264620877862430344585089795854302702886423042541816884011138137610459281570397951863572810976342585099648839308271908993263871636418053025572792292716456264410718613822901377242909276786893446232822797796012899737431527016660818133485787637909076358142707927023351789701562111598783584173099679967277772478535375046077554738283946991028915310995742885456058612624432399165336095954743717332305397015342332293672787440308470118474695805114207497797976508295055007015189618036899661491174508575785994060373636136524737858994601977242662851128315075570240166743057820584945238797931046156322689961510919554796262231715873885175959871733262551389577185943710715839030784200057945512790080831948309585435955867869404560548044253658206546937677282039177734706264894666190374110758631735932817365907870236410040598281912958186109237936220415535395597171296983077910120147423357618023626542169915202982959077524076833680086406333248236665459067906747205782975963451614905019745814584926405875269866303914678183356948243552089734459551093504315940362542118234073140034785159082717405020858024781046874103348282487881671158903898120181507938064855983291264100265710029543174593411119470508381137769910194397538288013481430206437906160717924864649966193755729263075853054073410798875436955507327417278543765729102932581491789801502026991403752877557812150051866736116947390277442025666155434448042067485960154691026280173244072673616957266482476543871750368236761120774358357706495393398623714812225802269688094264672542352030755059576802963606118826491498388489763149849938056967110176235818683079340346940154009730890158369194874991996188316149487278133470433436508444099266422753387829678238895284257364993572746665790611608647386658995121249498520189197815446341666956023174174524767357895770430378747360696733533670959934443202537395927851384956077749653832104365140980990512251246419246459433929431605884571463391102090941241036935035453567020682241672114187947012375384202375093835241895385964589780230300401872658426187241788888276768252346838601984528733779269747645241038408451720871683068436997414724477489608930682385938422053375454331333246547534893079959206324746428764125724256009608878153386513860497095181277918483342642836929444843636270641326254384725373256745245692220959512791333346901764203899307247296267310847468602019685631329870898843194186899682521932670185581224248322638718743508983084014907198170843128623326591720835721511293727138377333154438931119937014236086284937853663358878278327086636398171368633447985062236061916789417361607837428684530017548094606060293142142018798660652340550988578407034407537143984309875536196464364361086322430637830373414940312455722454274104240790048935290159786054937336179300568742890283346524316702797183432138058051264368180299210862631580454229246485780212485344770889990887792792364230276110716198415681927494691054206381234334579816567936156390945903106372262324180805914925439597942271586481316738229635212497086527280895768893565164259018320283707801672041013160956632597646233055813565372460244803406802157115753911925978645081710044703605577160437069527600311618423758886271590763369617304474636382070403588724286973611259447575164651932876452941016547963274325140221602671013906317029789343631231825796123121871586757709453176796201799338937156151643846545704493348957270709353298826911721376420131934398118323246271870186094667490985620981338426849442055892791479738356910890368039101002505007869174104707229452242851791734481899654699613103389307756223039096120880072183430697325091625255473141360777195022371145906514770620460430044068608346589952982584549243627810878633027230231726858711534582806911838016292323558772275793873739134489678885918989960300090299256341319075480618376088726083771530695265369613018958977947197981038466998713103639290592540950716120542633424477189922957607967332779379365580059950383765949839072281168103837057764273583012704222366726970250247086266193534839017422163278309386984299999385127352732034860255931108978609273197536880121047320699206942327857046631446238408730946298962186607041995198689818134069854689687441771595781375227311332587926252618926914759967978251938827241968919658490883859456506811367211662457761447239996520773293613880053644041422992141587906665670208282507360225786522758566506196292229643929771314235743710879789421023762013867932955521678414906244359652182061580175432648692848284084655032172996837162745001949750011347044815248388920813143182682085653874881525264885742257453878621944061274697347772553634771253580105754365474410697526660722679113913796021890525466220209707170547534974468819755172106219229375027784173253475069965445585077161143699014338934890902202016542873401724247115174853570262657648715103021851371534152603992779257007217929511824214062876749699328585842790034871228432890963291539073425988586529384471738131782024686632698378619138522714525584214510521585843231387074771970792102753187489271576009449985052074440309028950550136949384162050979341186266553417359500224727533813574747648847051421527848411876232098736817482034936288589011079645546210183342109953534167518199087363674389021624185007067127739255530197990331800215189538623635387598205119040092111196974578145735796867545091963767007847266456301882043431465041396727741345197678234564995001993103257372474058642280669780422140361503462385894082254800309770655844575453865452772243239880748090182038689496276270727708424066871046635644511280200891534091986571867240300404363102866559453805317004285226155518328082396798343733691586296081853988652414342874049396691243050125256270960159903883456663281411645988070632489112775693158471020728977942359355340352003656364502653051217912968793114990968383171765178708226723055294238772982405591875485928829836676615071589644442046277971204969606620773635452977858322383067743766818492346498941444566455075852977752078826213107585166731825487363580098187388338111442725216783457884947887939094109850680155130132509895093270604556256626516813693472321939750729245585191347853888449660667155270850803194695059263647520564711649299096445546867151483490839006476983987436385986350585954974243472545410929317335424713885748436538031681929511559216708939037906187975385772419004715357890838196327406849773225785082639678708448360825742467970033682844413433780846421685175273575408479178168258479922807206779988087743088778783574754424075965218385558125218215645976691585410624712603673752863745168792640915986215514672068110123195885349130939484454575313089364870643947510849804247326484372882088688218440100972986034187335529437684509856285731147890474487025364486093447745942751851679428857939738782379344984088268985536197392589958861720384941728463172278107240393482058976951593499139014495093468250035112217340950110183859150477413583602260171532251745640576923496082612746757607794794269801815728439061361857273983741810968422323420442107849727597535680132716732679176669685713235205894448272006795583240499404270926150984829814654104464105425094135711772974634401332713961162109963135046209114845359729570745189099625233897146637577912984424829037283213474505194701934622714741855943807765142426947579287993156087318791876297807034340358625685971109891804294740940097468241554261021491424462840913244402632007338258320663134564331962256145984893448183776536604421324785673026572504001254828649100864890111596017838172765078110895801863166337997684162422202619928116007306245882479336464697423858637812334780985347334874003282818839605829140115676432763438294414943022108544682651389999320700170688276566972559245576723398031282582934338850014228865544622830540700796174120571917624144456140536466363372395812374523133557082527298800724713192288824685212282629904238595169579765572279094555428002067240408558935680372191596376174815236873681807275554572019479167978810280419912771849082451523048703423203768072022759376134833465389008351326119228861071940952038690776548166628569151850158937585476118593737227560966181704845820852452853399087594963368489754172730778845802690755020855360359655265962722471088154395815118573518402413740644613447562764006915228277544629828787479421161111546263203355114753227178698392040536081639175236846949457065014752789486917691291563265632857478409591861398906690940491310541288840853836899676214045889003466876315455848288065295205206839565212617637423431491886395220996239221972426959183019219234771586451471111038794294953894226807701987196072938342400033712814198273320174885026019347811186788454469279961052578663283191444577790530870190454121659003194650615417214570668799798231519813594098841132619015158804981004254801669722742626897491909452808433412909887310676687979811802463763776584284201263000701530016854344990971616512015416966161750115745602485830643295100780937460103772378251330171988528402090875495022322815800442560398815865750635454986307287135583236332268878320530928876438022115058791177447369862315794105378083280091564626093641984290725244013926083529759006687006269150447495561990421650376164750411076571357066216076093854037565419828146772528423024560007868272339582134398251625370135995064269447079496704058120100206363537673594283098392950737589744084297662016312931799703512761402858226480292860918269724276489662537176788428981527391049407319237701529647283476825666176093511731561579622298313140801523987303086682793996870055533308200508407574240881878381159108800237342160242158480498399164294838360850321483180303496998507342229132666485248997220591592332012424865126207903427296516712622036267416642461625533129997018477613639854690536328558826198134215450209045964506653075174976582909395877763419080465101679333229807856681647122217780089957065993654033951375341015138557399084638479610870177458880615606871183443647699547744938289727427876091497623378162476806396712624887583392590186224134180521881077820140149784327813575820929193984412466854699754889366641023809902532956490796182247078471871467745039179082012207744559526946595505577511351740434017793690070108943836031857380949592759827114978949593660088271422203655044756501777721826480164669021334610009603544594714377497020002018875664253250560582737714860289721030806990104352323724604754589842106351146699197771527990095040774800946396173824800376693578446458513101108045026658077465303423970302438110100905602022749204307791872163966500492670087247236073923403309191962683902168659668619148890757426633730935891796356804367435963524409447446367228002546437465267734144016747062684632619233639992346958708503396876484643564402654159920594484587419864139524047737041130820132121057982255811915312105341387910970247282131063447723014056136695693771351573683727240956247248318681551773178823033581050185481862000890578438731102810040934186841530104828328108028405600255428262116912662030268760385207658349347663502161033218080295414305094247324373508861502413750354785569020366036311382249819449573722469183375893130856074467411724724801630605157032421292556795697770205262652060143558242464042370559188363522809493722966388634926952461639658547821812139881076996764799751841720502795489576518636968987804514751829233356055997279866463602733547396235992683077731692041726662801199725226280267793097307023278320543394136325430607167324899966999215679842002366560894602556516906500337044327639087954917823222266816150897080270155663648658950942265483818908097809921935716619930898857122887954762365587961048290411092048055720167612878904327624544469290520486227623544861835946015263130390097735675740072775933304733245305006179459533071904656037964706166325464853487125877012672005274978926917494660928623739978808063690487599609102812350232450926160464628123175802508649055413085235733124272908397974563671251527035268013510438045201634012392403281294249573826350502579178031704585452966205234657228119401792015816486071809430820599442593161334013337254249865010101346401527314920696332450596116238995417655031128112716824725692569386103579798405819644536208160557778931356639707777120024936258258487282375181790491276643089742586227652682849950705387861669625069930879948146579695354429520931544857479483837239916842075152681411107190012073559200778082408514204185029389423641622850851497709892136154525470926285112830551990007414231305471261342826498055036716639620356852039114434868387225289490808282463327481762037535215586702196802083455800433664436486606589813980421053772875569671378361364872770725756535016056550855039811205339661420653799664059642188562340869957692198030691816348871673485398074448184053610311016489670618690819759630961138879540960331326045388827325385216827040615679802922437392793782917252474751628962789841006016985578141907105035835392431162083188484374556972295112976388622552270883216663576961955138664080957529993379774446660139457504878443274936459894121918116092178834149187376161584146023113738573463308354626546049987251718771103854423780510454544990603424422398107075865393250240526801714457826125767202463051019567769967898753540776949906357980341759517363820053074189360904993771392862798888620424547012919889010934559754915606889820896393405367524187579027737772692361556760892322790454980980381416384840787882492343069737978750284672903035167063772066559245242209020413974242706203871499874148676635150430476494863429825268461386412651086097043183810628274096156161386126142146874693113295953426308174135741134264572624442888068128480074348520740960810856945832325469623664574102564386880080203241791612582039394668150256265854513525413653427655633202637890491588957561322868265384584083858016334851309963826808809838088559034367964963642225381156779306281618481159855045183567819233387310526234633564499230646251120882751550325453870369887838977817330289597958250600846289156099854143738874447853280442216735322403540969757719779324478053136051652721981552899098933777914972176823770021092129288432552145542037305130894124043821719556985585121027243737850478940687825984676803799202507930993343382359985885717756818069421476228581855178847799272534678039119627276394677511506623817767824229033461917083448330557937857137484197540186688206169499511389438694208851533009523327170156827367876888067783966694712022079766837797080579953987231715099446431514407381840908853116842485207795277784805143222781864017041031436184683681842330048922634638032566151937977322239430048543271055518989123014015114125331138599979649803629468382407151005299882334267732081388168595141527946212815399130912061042115467471986296052052830920438278452517492753611922017311581293137220899096803148128016568093757307484381844735364198216125231504633223469932415985874926466194371583634495577801843982462110231487991472791328508465893270134795576425122527011811219676629065805961063153784176292427315110554578971258512083949013871414822096037873476545316843419453197643119232714482701336660880458290595753540415865888647380975356194322403897256292250375700355073630684974142909542934980984640473430755887523285999721421203506660567655356856475481286298959701917226396798427158914107852301125504147341176272735180865406328590858919675486187322104777251313402755537957062424340484564627952276847527511569359732691670149576576414217439278025645837842921935706252857088462508155532687940981970409703855266055106550047140391611663548284624498896577575359954669607603082871564968338249631203873209074412744635726904482461485428444909647459053469654564873369863537820937483364559486275417337892990383243831598144769757989237665098293025159248142981992962629425940324180385091022656395124576958610224418467816591915516725218356631409789111181187948822450371327536055484204323818017287872320739121612302330878135657906267109867278762176816218051344165502081690969048945229248588869059651774353973086749328031650432238655392525491574111846084360362297711035467013566873571017469512300658276217308139728211029822001819832042173144060570304071972346723945518061541685472925016337035106540129540310817168688348226635204000351783731731931492460383702882201917152490867317554904315825671476630679935983627424584306125773314469508320473383443750069290936803303762635549059774614298645123969223636002863950703596723309545338490972970314018295211840175110001985914543024424028593362099595487013099015241934442653230133050925274281381532126149847596712072648414614974409341623477559079769510093322089698208034939691111425163294108901554954081395867548741630716149352402418046894214822451338353264818872063564674178487153547628871737727570912211378101342452357541584411745319218400101921427971437336176856349631038606483800915356389391492390543114451117528399886664840556620484603626428971969484433183386734640568446398500190061824360867380376678150903779653223381166723088017203610510079726704293339868914359980195081565083602922866890553834950836177017906010823090966769616359359323284342412668112816734150271909787160653151892045417291341205970289839142353329101116213936604904027326092006988868583535151541389694736683281389705675359547395445316230737743875205912819194819970950907981968614218842656329734012087760373471765877221790016377569148050263146788400379858759346422902398395033632335806348179152314355235069131885405223068019531868277545164987509252442937603167355260918270789729058862917420425240073226615162238146583468274710185377686701016144943759625292998163563433842600932627010679006471303931193147206277706602636744331093891906917010117885815789594092855139374042902122842289280918130413370031971610704098243469367826090081506310347919576172269847843026107944208847852832733335050801997298076413892374219647075583395956650714393530481553249693361748145568748881986190865193730575806318253533599160842584838920214449755810638366448543425921593720795394822020653195982368015786826164767259759993704267544816694207768738207803453594442517070554889508073120948464953162338008049447474140080921341309742613718427186884518318818795459342815178019722067709325771754025573134042822716607717081416570235553327240616464847971921986804453925426852853722181217500800017000292032614119921174967324344616488663602563923043194479671353279547109758967523507525461553800475486993160861792890516074169455957055950333450195637022533491297102952598272541197319309818686216480238908196861245254644045640063975644744259916091010469966656877570428427122950547669774909580258835219108695089895171734665280375702538937525020842398650334557614108392615030425867377095335002612063154832543844659935537933193905705447873370623172501158709855871442774167137958556809514090180463298653756515609495606051535321838086511485188074038725525479987413562985788811797104706430949051890414721242072394215425381321727085446924461993597053923234369938327325931580417471567698249727663124544104410833310317821407425300700866529120943369938239393566175806144599125577133656205411344245471886065420472695732511967764786015925116664360940932403009656911751128059914095271835134150312279544364471655238439540074031191835582428781165518878277035359365822707734521989968436072918211143692044501828735785082375384273219916561016647134969415615152928491649617267676207175090576456989561587489403859304338005042546455927754220093641170895588147835701834497573609725036914850758564386102813233049121761282136006809435019415640816182053489400842269940868187041293401204345394734081421607459873295660649022709516952633407496006635413592495325168109564175465350558991018863724611220867911373201469742572334673422934658379184539410293222669278269711343156336951407347528498544933881933981187718608343221128202860963815959819065731614354818667963914909189590640827582192419533468156158947309363776251874141895553859045530015641802924795615704148506552640373314530410115968845498196568498606371704243311936133024481820285670900236175044047229084367404546719436275049611741916320516930093650529763362559297975359725362514047259527237886108601757871959370778206361275670983937297271705505566086918066965675031552343918408098676440342492794004502813644230499099803184472942576015524589379339211264600115359925443877683130012839366576265774681908459266166586883782243143722154780904885459734936405390304698495955951303250146753859559912984987394840474433159647824345512165707193677763820829884223424483415276051739408820749556935182194667505736939937423730515624223997709463118016665818235182720602944307144943624282420961908918589057330752981741927935739244834852495138243005101992991520013139843671901361210466035653071325248741784473857838491197400222393152705268315237060507510005042303355449695002032490704409423628049395545262775991460929797305552033361469205227618389525058894597600467496888167972670834138413580037426612558348365479072914646107302285594447698062764685533898249323009353951393836866377477961048003803035063583963714360160461996513891950620509198633172807510671914028362113702481006069094874014262969841313453642172180692108992463984448565419166388074942225906867551628873222344178427618073060013435664372567137155776373081875207497180743714475358459370829429395715359188035859682718351622063577112255303225591167476778575340862567755619379616113233218335621670547670087521401097449124681174652325129339933551081217400491138236955396297313747913014175327482207271082381090730729814307992140491804572082481671876013532881643904476793084310776228851716433777003285540051009991472007639022330599391117672627553841164156182211976991771326771052468565925209354262353226156755949587707474108993996691094650815002291634804431621926406189243924377201240285373200449348710137418548379451504366534516347066000729504897957171205204386604897685113219550618360425020206638073273575351264752491238705664598916234857541153688604130352685242952262080419600002259374643065135441009582372460733395562688147319696772918240102725853079907465208962635509803384418317819329999758660200817680781863480137851500301846816275701369632324675841115026767667796437724175785478511917893191837156310487918302430392959274791101640228724002700035178226090349703258716020787104679348809733740759708423735707332120370359685463199583842872287173739278731039873587198806892066674782884009956068921441461729719200326633169006887676417316605670120364827953886373227293858449167457978904253859545482538954135244601721081759832522107294749107258802878225291317585683331982991627793648471666957371576655752755659472487327998977305720361443727100518701294320349647201193138656973936199524154313938787314278708206675021403257658119191284072418671239101210219790938789635841214978632553384360220696930909931002805433054721833755689078432354293330498815610165354355793592548189075967990933564083649936313308228526195936413243021296081062802072079524808164081697490022555939864760531474265625517419843246463186508230220414184948780076015096552448245013933388404304329901054214058261794037110069261708520562381701450511504121008096628623201458191812267205758759775473359710153932250040628205175386508107604837333000659374118592459354242254210643479015227264949154552007204096766379636200722895643717048994680396783440787958412457134043265152259311800807671178746238826102929637161388511451307909061590741038706449444103605010218729505349278798854031739924104080239991057818674217972107438076132313384625579520520527459492826543962555504406495167550532905903639843883889719047960612911620176898592814718643413424326575634487565773540932760697012724733173062130384500618992560232235880986055204008931658785199660518584556813443826134010560485254996514350563754962080858366706144985724975686581064276796603711234552812009485124592845732680488611907657052852196308890215847675395241752561699256104116134521065689621541789570262408693873402196785203216056610188490938302107396339666139394666952473110015023751030184301892680546453321663051946473083753947679100087398799511980047980489055474069385331378319636773261005273819989643532997515469877761674011030978246753831069115722997472953832571848804576738285887261842340055243304415997459731122209578529807919113033353814771518872582719652495536352795817764195805665613658309406277587888466416708448080749345078719781719752425320519243233553433636338422049207618469769276595064227153633758128003529462913357892874340976410740100818398634792341565967131345805391653203082271969993107829385675055802846529020346922344143123627736164129207946639118912252300781340032148609329049500782816406569366707706668183416414986789389963649016601570549729416854884461965235009631145070644717352341371648288848865051282041227375294110774695575636304380960103325251834981665173779759831304217390664405100904399070768639610726824415657969197570544704977044626702641129548426908337954578701672994433010967266338804532989373966906042168238984840215539441252975296352006722892476833110638030302036189434300908436771861877325635799601722695158910431624433470593640961034675756940265679827207280752751331985058816013094644521938099949468391320339249127030612705871204501021965834975734132680503401483686349006635641086784170584227418720809702413587063811095398191567511838112739619988205021864648642063931059964382090013423689021116763860597127976851495584239990038078405936364995387907226006964916995584865042336195066252517544853503952037760141913708952853415904961648412053559119171721699848308950341814095510971727300645712048132515412313098829496187799537943248750867957874866145284541075304101578031375792970214918614392578378619195890336232323933012532239792022874004083744446341521361640757776677332169876449603350789925641513620973695091863938781091090841731865450358549107967391082036237353699816717776016184170086492423910297332931052467301913046231922256386729431544011710442007614161543763262961591875278024616344815671288848778488459082782606113854074970501154779885584275463955773408028748926670374613572117753815305103055726110081932812859395855393020374613706610360158599546721474287464948744005407173417136556077830462520783313912994119667406121348623709700841767240218278597884009846540226116936247331547977113093975501875521942086978644110768883093741890494370356701504033558108340386917430999769442781373321266944553797238114893882558127715731089971770318478878334343326501144945618139619109296288883424067266839542772505768968156343474575641559582023612076015969318927037359572193558799400794161443717044965500846618052481432605504837842773231324120089579633495867019328941366862761425103997071217489939014127073117115532210906635128781716805551150494469376418294066338549650593331350799717525914470312003885998676147005340866744921529221657913363984697468407324219953048772242026505105235587404489845722967899282483811918318507273158356106887949219477184455574585316135044838800406751015891488435081778667991866550135633844493014446372076222226192282816644922929284316714924364948237678189256793746294044330283999752608668355999109393765460692608175472630575951782121586185029960937976863002782705067035796008269604711839545995098909800189473186911989501463850427792454216577128103109163337563663123217210016651550522981947007363416847242764475370547712975414642658037989664198948679044089045790600134765379102754882586937455012270637551627520820296136710965208536573305283908610397588323836165054950019310189024446550493572768797086032768864635843593218410969963899212403833250917508925776273374388579197321937959320730715198991601149436194394000978073525454671681517610869169704562511274879623791292209028717809780733882077237250107237997897700752037517894851900707112963350097944814831825438982106970324214918247304944981475820293364210038875085730263303566978415214626470183524243691042810814005731357703756521730628809877034846225546035225394974099793520343899553379945395465714262014731036840345919535583696939017689709270359421326463872835189257658009028403953092122510973468857105099077512648875157641905325362739157501367211271875025085908733775579591943397345255366183818792397711723391671241638093881511002871800501207848120962917900898375530230026403403954358106618726085869939582358951784870738244321974590213765052949220303686358475635221025977543501203815172298713663423824290249614743197467209454332674732682604430747966850254477796630136658241530890757807642451010466587728357491611477145942610762223114688376910530430700555284039553885645419841334297356029502854867188289232637542797601696253456980557860149279076532391225778100306211013340752446485975426892944149800190221589798115947721266577622056962687665414995673018021186244751775845011008018105208793114253897663949966625278232962173508592997896999150220945399266281838943136857765845980672678828982985064471650957210708572788401867467419163834328311936034000124422591791404141675240210427768638344391983894583659747339025636008161467207129735739978810213041272679676609358819377941497851996802103802783021312702485568006631429215224847291250879358233669887586345723044017635644383907862085575332729939275765339573503902888083919658991988231079034726982648374567013289648478981554319135534652975361860951518995938440033389054205943369076205389379881154536013957332382550678356282673903705348343641823811743291203029754612354515020014123214780660262373832460120511627265654590468132886800954426180450131914518740904442567605574266138773886136232433944123185132763261896512786255122054446557511014756504730584526527776768780449898260349422445143462988132308956367602268342300454644913458286139730757801324837163654662960712196019665955526048537152866326480295294825572383379694517569185321210976781348088272414652285420659071560641130100883263914811472107480237612476583007225068928231665258172814274022089182939849778312803448187976949924868152195622589743304253024146758839780394061143666984508662242403328154773158798455601182418297845414826838474690409505408499635619622859463023983113336350382806583516177968551926401965672165688917432949689703803315980835383058840164211268410616267584341025997428212332967117082915704593516302997868529350591576678994259699555855730100252486303610552956729775861137363290901160882980547673148769201748988770395051253002005239103629152312407536694400386622857528710987078064843215321196237762319883073187459467844640599445216810489463005540999184927589591443316876765394014067453740453006455035530603022522873559156958817350940748162868932037501688508748399178494065339103221946992440516288073841512869007897708225165867046457725975616323216086798809884324627826664747953342230086955270407917524814242947345192634757721250983115773624303928723269375738486931392443501818192081466046595783379934126872869366656517626868356511057132392862666394234745740282889944543684116390171240093093827559925411669474092175170545126131965621241060740422944381341028953243276594965971701749346962457032209775465580047098412391429585128873865954553883777983814211874312194461110843905224720634316596508149309100045425332435206256095720218192844104966503694384263382461206782974530250926537828313090359638591847672974714328593068155213246361561439659804930924824138916996128335653481331448151252952872494397933475179351313415929250472651020957695932352691419158841746033058440288760072150074245744069270759145043291836960400273043342093902237213383949943809310845866240801241432909698652833826652446410968944368609464820472072725236647191117290951587590992194807742895057081913729550534469586612956059827009697256299729211351917162772605222361707211819891142852969756434540654590207874561958584457381409664415728628956628177412942952236106967122364440039985120987912098423590272927015067130061774725676278486904311438051166840974811697298607230957584221040282174152435815488643633701513488432391382094427397514060213412527522842630959021797379376548481848683026372751673502221378538784018792377139507141119178168494757442350172397750638890429263684611684536679350270332412444159691988774993138116397141289857121358094391152186920264188274642281209200860313204682380619226553820886955528596844218034189411114074969228128900869744394454343276052381235343549998948142949029986614249318534122350553444030170753346480940778425633851685807563200547208627652426993859547754628318837269680033464736384405511428685780912583016748152075200874030818896830400591231319501551567682448773021511457209875516218739650191608321318186738881923332155291035507097266757714269421391344591249781633141001290148239019286072429615891729822744915637229130811675272319161411667017680975116759197211947756873569198452139617663140548331281785378000833684813662592640947836216223207317211205772662975899404562677561827589006509042638778821829935555758516074313825565944736849832806526789551089908558689112435119512918075720919755445628320158177144026122883040339819640048011614067796842773447790598417985398604914116446520799834071707495810315642576059372537962108340626900378829713738252083306725285269226381699877072386278334863926245333223229171340283195921990948369364593637592749102950019613957140288966618828372291276317440034799139208225177689075182028593168737789561182282907700807138640555503603762787978143903173674447035692063823779116226721536359936294844667626510214284098845754015891189921965368117069044650028906940910827002818455076600839926604127217824449855307788675576681219895675761022470193543102972784131060240339804927730187959865578762262311918524821695366535382307057185841991384233756642278325708343193009548230076880133460862836168167475404443304737823517885358973367116437750273762347743397826017273337764646308428589688314651008979598714709441611405682538734040446515025676330630914701388213708601708001605452060830143693355554510562861408038287179204691002058955217179954226261756205149450228288295633500845892293792606020946678216204877732828533996323066171874136872695474546049732085532059668885702487967158521609213617532687470844685469240282942707734683357544861118353515197407071130717001510090480714382563468212303230868850116245741070501657173972383213281480201325871219372947021858328081289424760428913947402708822222797153257503818582025705990937214831658952238714337681903459765719591163412313477268099070780692781051689578389110137274058321865309084957745679672263336724030187457098910217179537970607437423667124544397595569013460067442089834300715493842554466492929309951074311665129759986766677731383757606758708607438135182071264666202686613927328715522525619299076384552057313257405866296345702992118994844025895881696083323469335702050578779123127721947944460427670475115466751829207150922925913395034004445313424666314828335061276466830481361649740709844590814798522936508917018563388027539769732540322660324547458026968665943501889788667354867638392534871111309287770737079489337636734577919059747889945940779987279524413213623471162487759520130601134418238168061304751143260983328050096779840822973644694567181403181097905229824638706904404906856281228309828112922705148040371786704377101212992264255340459939359007864459879332937399061447348786302271562511472633558685040938879439147045316619768624392683152602445369325914858261915519282946369126165481038168068789442426888592722867082538596137954735304134959809674731533812850297953358389189074371361660672519547918198719375085548160305158507644699977182710044141504913044555285301852967519423318329024008544834912241391792514366584172672047825176177135529458590104046830668120053162672021910438647070432527660825127244745868708437913027668869639055356352549853743014495295961048445433723079024980465723750793997488430128190150493910923619794192279322083197565458868370308946039368613437204783915377931002501661045495163877024656844108441167631416437917983444721932778727477141852503339222838762123952278666168422169648160413898442080526548809644940040067271257281621922918035738257388234356902942925814896635890164449299891171313284871539722536747882969748665698929205420274830678213057806359847862477295860289146527576711186608817028600696558462557816881138206011779628890087459973567318601991113808012214137454638752656436126378734396926928893936270485402835876039426144832956724933210645403626072751244500915332047259529096026289550866596407541813882805438931833681008430637396841780824076313820127287832484154578126857020950277902281047226110523558936081129264369449669659501578251915874217467565930803967429239884206903598821661184676891463782259668887211473571018887886819670866623092363057066569798395145261095058779619845868774162540749301790174797741761843953195766395900074910642887906607246621651301276125528169411144430374400210230816996807067583517631177077887844668675868424000452918123302107479818816876468794390628924147371049490849588267146411196216330568860148062998365178009313110502024135414505793270381515299545577824392869703354431876475364803631022158150199977508439038739359455688348488605969042408497137270145520845185656703577135668363922257654918774698208285227044285624575060366122070144221443033648497341581511474675129644685871387463682149321867168999507632483719706371612287532262356393069968230618211496515789801310584544270140467361608990385743960779542070020855899628713227294119409407439411367583728403150529369629242196185175042521258867010671004429821356753246588936147290385391160890352838905069621026416346918928970869469230320267561661412102411091252632994842737619089105174371602118272602048501069126996550343049134339371174717327824205985596773388227233301500799413951402987719853173190506610533246791389290163818057406071269541421134053918076535993800852699715998144076527807143361305102572242630074141653337923140578344014498390715172720474486481086291789872851453460417927188364251433155753181845113883794885041111177591108948101192330928283122213542669308919637733866160868227147570502393458127848741677201959984976225987944005404740736853707240179770937368562271310218510486114871710305685377867464861269348611948519519855306124954833419415457074373429663304238615616173784887527293252922231277876661071353878755698848824925884114783069906622428620420017741076725737197599546794718713729371238123983550290717318421512323961418114021237814588096989570541070237370573703175721801226511147312351870601261153414060603919179062434867767785180570096839241356539349541555580341605039391686272997260876965131207886031925740553552077221633851826833065661296678511161630352559610745267903603472251047973468017561918784115638192235037062009093108895364994552467771305968834037969934388686563959420459681511580418262178001869809797764997895742133533795296278834399038980182165080309736720172139273704562346890641724476648958795389775060629355569335310851934371869238223046286859942813393363534748059625328461826142796620375457289622515163273425381107951175329515833885031795343420159946363650868172708525847588241239055047356656550809514954439187592696576724995990544764063052613077320508041084695787345076833697502678516792744868648132434554412963615956557725359726918437474644846562041645063868549212395261683494124666201764090620987416609049219787809422490569756738525004547245053970488738151646441815151186367157418617343200292775580303876581438943551062402275608149393288504778260155797193994941230104272550772122333035886735062296479480450470588754306302799012104718173929884302224468716792287783150981077434956635670897671992928012705397294680634444962653310010581300213089392219702427056261011792555826850213807053536804489040221950646283928181660663644047667807569753796358893560339742272902504363993499533663910815797616688557534204404886346098312581287570717458923332837292551392179543348027540723646893655419922722965184162534648805567618002453504431692944012884678284740674859703751793481925446098853068234319845431423036332963506732205735787298713918397369073873926980871686333514447033955250866037335177985706283290727368559547176773883142010223933197780766216947812788372526243189351024674789082121029464930486901281408197968685096400666814749121876913916837552607861891172708923603732499210638942239473580699257881994371129519874556095660587175894658925686744659106866036285685213708607994217301505162493928476489839191146198702010220851143183425842881066641261920282760965618993423532173835650936285464445109997151658324488421465285310210091007224500501879621529697550890768598706788451309023412202674867293548836422836439169847930356120746583576514546967632608358341845662065507844618616443541623467491007736875606819115990746876006720722121804015400571723526759698281354334671863950424010866411583986498330776142768374934240238840337806934843218767436683822659898130111712320549879875456020305345727825814936238397631033374733709745582271914193705131576672721018114513208539682788025474171822943527513007266490587390760327578010442811732808551213666704620277462113816219924700639188469861042491122313939027026037339528561925657423386145839362356325205577671939642849601814476213436684801766747838203703782798066282746940795083338518336551258074587106206108359402345806731114775194373931748736532878797598877454765055128670894291473546216677947978054326656636166763357845854325284200746464299599737469664196169902890970118109504560316659132862434719470883509300808268702184135524599625121546445693032590173352248910257324188356797163251478309993304864002072752131282312202158789113279685098922410870687106346578214068542663948328525728461251933711652530045920169919271919610894077365480511665619611102256938749371705025216889316279639236994247930401427031106573708234124421427838064226824696209794329109755402392883592199274779356418667089065256407048699654393512810587037626726047062937456058901851242296924598160485051180947500416073114629558625327525028712508558451000030387186045421027310252100759734110834503960652249274789231358245506827170588530850225264265837310691120860911586272899589413818880660931525550780927558227461186501908684851992286064533864516054724411360483917905571534663839745739407363853258220380036237573379661476280017985443884767870139783860305216019247760327704420000939833169648384473393137985853130458615914715949830073330864758465254602970805055105540070103388085309793755191261724769409667152640275110942166369133986051259411084561734570716914955806097413543672568839429262881615185860653305716712388563512220661928370228784844519579133402903146571200645439514841159147900303033224899375847231850684731814381938408755605847383664824616662378866228802417699574898450159543244960384332575289416109834299010010798755680521351660835081321200593732305560243486009079892877484541581030729940000011999349763929929851418298557969326499056524132466456408518545002796226660420873647662008774256741055080117819082650332190077235817226801829983281715097662715113115286904861267507291741508264879641596337689545669657899567473738702274164058413254513697101165832839770603979705034510519297710834701502091988711228102935544380650155212484596677459843492468620227486547400608818243763104285963099661317229898172925293222557964466521451819695755543270578163501574644381617498558991826969378653317764788976714163853505408268572004585241958616355163363598241131867700056416171422754448297276127615992864834995481243367294940171795532022300871674087362682436825674358724981530822780941304940974051340529216279367937381079986276317534394572495477285854409433180652951309472066648594475196525267459679648187761444989522238845793767189526021994002342412647694001565188505156352118880095261521360881466045200878712244912224764058066325823921210878502839975948635714669972215918943233893061213164872867491251851571968278507803793736095357092281916808772733244293061791761383337823459922250216575301292533734873858126924764161518217540529008726766823844404227746416134932538173625728404461325072116475400934817115260548251832061026637133724273622928038860691954209731281509770636904602317107709575875812616584042453806243059523372879174972845673452296005297827929027649936700923799711153356922001371143525359634344056839466634939732467998649007008238519290148128867502235316768248324733950021267274019589340559649805991852272425866432023093593017621510846942057119620885396657094064716200182966431495694543184255470417229876237325752566945664042946223002244283083395090359149210298548293415208959527909103214471336140647174149402653501529207346033560455766855057960686464724606490431109854871549295059082365343128704992988842796661672559322187060882438340212821484440120906121727747655727278853644338650999860220805084388609315247642640992986401775759555334197621294187622908373377596071447295191112367497598745930392170360883184196515144194077619811134416620408903308111191331387093925564995278562120441921614191375488649217246868097764988767282963181768838310261302498696943093263799954534861738958898911591976161221122284120493389592872346192422794492976195096311176782507649897441536833593856512937260511129384232508873494530650017559244060132864178589378382731218862012478661860913866809737729718289732803932434519501601199449094537745180259497489892460867268234157640927322850231138683238893437485439368234679101758547197436778388745114850767485589516552915576607008649732784172133556836058046568901484745868912668432425284788002493952208781068515489074386159800808569884343108994426011896338458267743311033054645942171886383075569113024568580368887733828438703804977154168680014552909169434018786571931874818855775286561772193190151384252366230255114245796172762327586655240587316802886216306350390779456707856994206991151541180949977456283400873999674341745973325266978353016006719174957568479040471044215268150267912423521131963474363979343215303143336118889369010982895280914386530750137720677488141421874783178289164680745075067322730467130622515345445461994903785576883657245488732711332274458096125496459897629160435055398365474754486322518516179428230551563673655875977479721628697486182747195755348347796279035877245476539536565816292790310393778557269856706404545090594417821991364287059999818433836079698897881623288192611435400198648535617622816101235539893412647930443813425937808122211580356478260421847098828122481600338208016259979918422669537416068469219111701753763313511704614462346764246976502170798195642011987544174123557661688504839296526193538515723490215881910523808686110938074671883680990276025030235327844819993563860604305025649350823247371119142565774606281323757967691002979386350130753615534849805798201205206273124992787648078586105985221740359994973086056152202462568403137944786941741973312445241206359844461517119409719882739641264943294457691460592939448244559287821115503233287299390867497909796681665900137984792824297466068007533473626737351269837335433411374060239439756515693662357053956463931821951567852052966758166639345706508183346612192299856442027179814971789806810646674464901378515695972006134725871563557252925151185384416417062861757945196925336380947816716202731668166762299241419526345278090990736914166475281813776383979556658166962415275377040499871721589611371398423822822718672111658435267601036936126016505602955405820523174568391822665833724896553998412161609726688021467839012948104582768996724376996649438779815054429269999236321879798693859251929308048812602968332078359665362852528797716525532745711748154746461043597215660821780623337844494946579471103839714771972600155070190405261894793243440668858966000012155395281636365811726813324449347089128982741724953263667950868436554143056951743910734597689677590196208947998028971870230747062332215222361405216080485743909335221727716316304511851795634948563756864952978611992169213213320134657877651932090206211347305666442301043481514502076639890245728156131171355225405864096535722206109818435933993285607411459906083533732049558783073590564525263693746577418556733491607638032615173254816752623460883487465200293583682278640412410540362271549295521622309153077977165509113619223448759778316827687265711823598129255357292370184557535585834951112762370806480487816006690575915779041952764068781695387869661290370990712204674811569264518349796438323867032003044954920862480605786478482699026076211115424040824590122848633555440605403750258556753658610124134861373939570748015171259791089279141629530766232795380762577153695433289789791759146726028080201060016468569242360295321930424870566901928348556724561563435391550883981726500958172289155995068263992342176601048892253035201763651867727137267710091178270288324522458519346206101739096638132244488258567539776657678819665806338320086582771270523105779604471854568575065427368972859119334982629123220656333070281300770625246490036104787689522223028711515482456106038015584030031360978910659611542719332116409376423022205713362454689436724396305952165328425355687204547771060167571877990722058285650769400586766266752902630426767923082649438652119430753907560053386911524899128169887632562896455932197405703445378232622070433279979046726856042422579052307594385208835177955720606154913134111182861415196749110250802117011541325944880109389289175383703303764186626709164255172231294958432163664615663888779710974349617341036021500409152919698474139939722620086477236027976853700581187929928721219028923175044003171732338052275393086910450729304164675233898535937622237178719119913030575898049816323109786483399015150233409340373822757361599004057295561485757786449719025421030773623348138932695838642801325642270521653157752258546132812884190720476778445597502521199447405973509341321243951403347175680139628102500862737465599043740016687816952171024435000197448484088856472287812830876043747059684610201177335940213446248184783132670992350598769626617180010629150869623430388085333200795411052546570411318269719036074432129739988720358788788268371112630931405697588042606293194805920755522172735079263851338212093960693264954211888913988638974267536878824780157805442021952584832217669120602845805776215375867744096659790900449613904666166488149853981318930242239240230527962169778323590902309087830855607823422815995252800373902515481831913075677160104611114607590154422979824139318232816574882715638771934881118329077153955230648089356501818427377262320836614582183744030457752520906411342844509088932479879471319920824674147710711633943036323056460661812723399089379473273786444224745529166393244967155583227641217028142086594137871879793449909526803713890153340249748140321295761662250287095303591765417565865624507510674275137126342920178430105064754420233392490265915048501904142865629855179743388880769251728064540896200365379444731771256048233312818952518015024306765476790944139201952448240795743252813219834706806837583577676629712841674641361517718381408595087117794099669293157436762421206008522672149753554894146653486104786463694366140983351005162793763602268679945773734958825512315526028936976341723529865837043114760858601940344036989016211186684736598917213845082511312565264136061514814216566570226632844124140953406600912584851992392685607352913653812531262158450803829481007324573151025565062490334930959112579377618642279431997304272762954362472318977660670025306270350747000373437816519459729794028849587056837734142274641280272167580189046321867428678569227025244681348842114262309451954388333810864729700144038304337501937285893059786173308491599588975140556943297829871638191823077617597339330726042837785462966480505116347604545040501205830223276243939311241962738246074362506725894728756471166483982884043227254640633165329269856256508721846233947091818112401796867700645003340285787884676951121470043973125341408352798115052731984193749864017944606614601859890117144966809678498906828860769902131813930152898048959635727997999596199670305763145913421183045121364153280985936858779372531471992943393364916089618744209325534678100456931179266286989890452955339251666383806206226920479691130753563047855639099800553659554892158232714721954339594337761003186677255673473113342610542368562860310662724524260988253980853328726948799710282859943430824767126258515929825579714754580659801428809210058396058281633975558174760504767465417222991101179961579900817094147587345037231213689696472335239680927047178153644512301507214764610680700300627566874602738704193451865754813878052734121599151129613637141445858012500553468631733178449974596037961399696002604400066196829925542967187891035258643568459769597269524105425227708896306223232305133962866553939681988815244767019959825741317416121148299191240688614547217530406349320769209472499736482486371200480834878891996581852566323163489704494306723419956633019193460554005945500582498359141186735793200344021387434327738307916184674165953667818051899198121791161760715896526091657023109403130176562183966748076677874343595650366715904050717419905919807572078536547846522480151587132124835127491381044610377097161312779146553882520729985737702389476948014257764152377852250269712042005271124550050710322311470807692999080734452494823530603334657640174513036391706005259865440544603849523372510802462095323098323563447646324152021655408096234165898455080663236663017030298637929977126496209111118982181314555829144056468718585676311833969203189823403090595717886316439518626271721167411681693192661161063101401595775109891417010471271590453233533568179013583094073641701914886840923346463992803294719970319893274030693505220842038232917091724385031471804457025777047021029126642247213012581335685062024209917808635512787450532874265176783070174716449925617660172320546638704900130997915910128100152043929393411479307571126182336449380997091396161967158689486077323310609925339567947637906401186762822495980522491416461173131133210762629044428207951665615857309943867305904726389753392735832679833847286284841507207952712934079934968380158394401857934076395932162209072753724886425154476143805975371310413273062464252616128130463937328527626509240824811202657009361810108985546317947618285790947337715440962015939487775933996703749811592431056737140079652913843925891065103083007593202643692828555498906828206670414041553656767309477219810160635782080299827364520723829683407702950540559910738860544150724417714530885150383587185131501604744328248425956294158891916597394769720661030426184613726924063139523164418976135960148673460836332821830975380244502665883653333863285565630803791740281413931510241993458090152540644171781228471210937467169856941359410999789114561868851971325625804901532441701121310472107206460767578414515588216506454527852503810271922847443477662885730362854207582258385874302070002287967893193912203419540723268747156166496945253476774944030804888635775536533120240325025738577598922397164406273064640599569068972755432803053292004057851251925989925940137187014737301643866931230450861496148363801032966196700946971185797549537503071573540275090896648847520130114391121021893990575629433339994842686601186028392251528358383850023160869098923774862373176807106122835432151248188471202098919969576762233223457277937738109028728735030803373949537451070971302944324061919574125240293103885718967932442613223438378255845163913622741732455983520169547313495984396250318895719351613084921447073043647616673651077516452374878062352842568292369452932080826005325460579379764388949222683594784861086764734634768432075825353590299668452057432495128216245640730168613038261654302140887504962410603471878968422899719086631543840229414519870690121105593389277140423359267294073961568508879077454910124536443416297747949486674249854244825564977638107934851924463012231198412453945435294540840816692725449823889283181526381842372921126493196636466247360194127600651066619421123453129160665152992361808085881023759224427896601464231152946167314392942982146778253596173281208644799470245508650683135341369453732686741184675607855528077705981276860849325896233788598853777727910425049576532877240162546055363393552576952472311511698783890117150586742887370706069676543103274668153688516304768345643452931868977122320618566995328762385174332460739750720354792080471567058987325123259578654918346476127774417038440803224824288018307780187103197701389995738126368108051328732080127290168191716260737491056666843695148672632638074788195278460234031340999921183848019406951994873959150308404715924548542473051697470581879979545227698515781468545474756076628640876834208503890407569958754446557314010507814927690980345704264127127973665025617917973728285379015792681928635715653443686647712163238736551712908708026604228823209726955526644838797948585333990468047935502657887701209324581825455338266188928886143393726135829095826991184140614706251248557867230834115286191325640001617740547454826867191301121601071829876572847320052725407784682555044754484480565001486958439681773095862443440491439435202516966091532129569586782936969864650686674983697648556829150434068405856991898680031298035033333800362443402044734601507982520969641844527676814413038399164751462854133035359469971894304869023134922389166053235019532301280424086407802859690496295360850291056566206053645936781641935489729538311235362241275022059037737510159818699771956427934715433550238985911617364484711319347146380388750834422726746497015279349199326865855408117949559902881741213392867805102255916797311248876112796548554258161637499278949079604690396635325072466674803130616990713628937023122660968203740856770283906665407429817222675398800484950302903957190682621215855320480357555093794445522368952445517419614973462596065868227453346348050061567205330615517978068296337120867661150842236945848610678715220960881875516028510944063296950352267487354779472347937757518252413734430992193915609931496800056613131624207454820561987875484644952836566604124000764301094313945441756442354188907738570061873522104163494213566567598819150638414505607790137810414582027144565073813553850831287494340464877243229287338355044350387643960254729727299814436584085120113456893725017874822752064589582719760223946592624078048010188044544273765169107029246105264690580210539810495249615910356074574343176660316331475634095294805665073607477099318393683991516208106463073301429167138048452512533840080869544376704779287904247215180951410837734111335599828956613652568702645784599371011196222060052054005160598147278632110092743321820000681028710493647841045672885193807744799929178304666716758276843562230120225348200080139463488429998208112096235126232663977737780725788018514362842665558773301639775795822923938904448366558079777402476718736992907571288239752526894264493593865184049513910544888482193670604009309377570725178169954450093957007742918527782267719711728686290638402198898427616852969450002630269931032323921652864433058994996547083679012829221743086436904056108354315034153098789551720788140570082337422033825811559122070840244151546776078540972146327837569128530342080259258423881903082418156134571796339239383461500752110911470418643685662334342114572519460791165946847842499239010799179577661132763489002730038749444946187653946527602113071038414447781659627703367913129196826633029712507811812468093582862694303162401221959621668788260583777040274478806450793857307414520720895296415461708922687070959410637767075310186062929119810824064916383522624506282674777055296312841121128972154202138361575361914122724843304909130044024325497670351646043255852610698593535066265121805534350500937178417045835333862868642532975448467168070674975851999365754018439200172261693364690848653661915168149108693838023588223036471372810867385475561722783377660763587940426839014355630571391266164016028180798947583083472754957917609125357596252390332381017148945027292161082787860253125194210999222928788240110057365219639052668810848150690529217652503007658478639021943993793239207487211006389830989586177723815721825643111434336727775113638101868620748984057790740628546823017200922664846432914915410275277162624639459647704786070276301824093113798997390265372669458221268590063098708443767711835377804930727336312973315040156390748416801892149800490096696599088831602680756888502392973329215820637170580503409710371709360842539446741716758186299807695113715841444271565784172146807913600962507082096217960201155991576355943436744420863825182763649812750665726091765097543986526113118005485923597107662667683189510207439880201970121387691014127556518774746477981877540003795008012808278685687015331397163880377950381672561623180638225196115116140760679643967990459259128748481477278727509836686480597503502309551504247392557713110227721110961718312212892676726074019136257149106226165309266699322366949000678979474928071503731693675084014270973358223569783627140076894670868349844407420372277826072653026392372874383759383649861644858694932536725486858921422227841782782829668592151212763500970794191130627292638997011889568087903979648641861290995538661288061069271344250301880463277779740332578677947142323769217473152602253007352874004188694918397601468252053909675495833039967027409285373300979692637543491400827473222627883800382454072318397094143905591131929891394289418211720848497724072629647536613312644608383104654379273202429914596550310670354705093158990839103654779240615646357012577096149429030190162691261430716627651239436358437499439588893960655131531398900764955819727728863801781113812548879600139813782307490662841172181118391051805964410643154148192851801491966043125976807821405320591473071111669417964027053278540189590505461465151002692132964222355022757629706975115288245954213872444469652095497124120070488549656669375056142855073434842543855871952687165853305228720754950807719954342921952200136969079769958812913549192487050185660142863184186388110700349259115146487670240074680772762456450279347326231900637981498430122918936039520331131164433376011531203680550526525269886299815283714808814821602985240479822609713636371101262182642597740083222569908226591691631958555838874255815014780398684373759538967071567179274191225451515076544649905746985914221751199636960246650402646987262338539793946396231262327773639753998151258918771066596124656113724249177919624627092156434462803372156371225425849865894930919402737175428743631542315157570012257148351429575228053697771183858554224061126438212621925115642755340335679397568938258491178663499400282535331495681963203394062854580600026168311908629530040958877625680981224099369123910325786110844753001819635158963799456077655612651781090194353289317953549170291111116695907724071933093624616236231793245881617795153113330589060049475625916087521327495939833522089114702297574216696042817504941177285291253548466653337308153472831247707617051759399989284573149190566262296187365855610923164145876556877773183728424395987036614263845614963688353364131151488352137382839645687413683904779202373211052845288729638716473489370794289939514917880777280138094586105646407516002694079346529790541194042272140099588772839441664537481975658316868979084185806253324427322940483744263575101334166025516402801541203549338306254369389832850416371954971468548172839278447369950558198130530116397138637004673580614425420567244106840228261296675962096026640748815729720492016359219113518304080759396148925968580459292771839871542723183668629310563833871483745081206037613432144521497013435492347879156615380579622585552313830503590250054479639774653142502080076437965873993627210325442160153354825139108616389361360305669177382759601355383393207293286731134232983130257450780540763432902396841248156435115230806063583143805394243249299394961329703947115757947232941525063658858545207113302818350618872545653798895766120571571608320423357955864988430661424877684258356227236374888967254360202699703017627866530231449151177677088132278277746479879653507237184388994761312323288311972399940870713108422107212026393940871087042853487840736283291056188028180317423207867420252813552948289095299039173665475533432775468939916041033600302600194332437091052396930886403882328366215932182045883990249764014273349273343636844697097428173080796227489448246582844388244355904432720429697143701810200741454202368054533927897777495866476845637721705842269415680454050645978755579664802277642463369865864029769513498350987446244354682369654936435551844723509779628071018278588098225329345863424443618187423891678463801663344117709244071590920269956093669108482254206984560608518247839791422029718135234785725989679584564991150548030882521497931811647773476309553798590640204359701765281008135309876806395534583443285212338587052280328760871760959586333172790800289440082686537514581654623938763111532378913501069404688600179035447046119594946076567950392650166437902854690093014693218283562462562064195407766111618620113239730714439815779207461420345039868394713560480512941043210957635345692823987760602001760112165537408050490058515014682531856436560873828901088714949559871782456096100882076390485334033517305884961561836267590927635233463257552201725392090904876538967775408338482578167257323098179487802819651444366736687683588417703905109142550341584404456801669853839101216710625735170602276172199166380274357376879293111479290734110599484082605814694447736880238951689347087354015563656005159427995946080212707073622867710013094643121069685612953610718258916222033782233283256135016006357749935163352696160941980976960407270441490189504179477739931613485944056364387376055467539670915015162265667290783436159221629786398381097340845970239760733220961802133939914157830188150269865533242886296115006526125246370903634086366078815483906689443304825007597300435419589307979208206154606440165922891931237247242134890736423218401988166540743857091068248273976833888445331011572577734233946450108789102107149563499697863758854363941296632683311112259985683115028357018924579122497296079434096044233373700105213420265049443248120625386209486593678910670439148366864488270889439984821259870410718401916055323472992734797080913414588693941245515241884540300525282370820923218854344049449258756233000950370541062867191069314564170270971629717975997026347874512552541616306017428635607332555488093895126277479815436385689883376201178445748079208241104301003969794842205367120175808582790797105388243140530419411260181791076579482101359496432122489595412128046620933090186155201813950335812465019435950098906619589704834637906590817972815650571067432409388595384838006126739907493640403682881147343149766626298824694810326271537079040767390267321314848139506109285819921314284848764146760363977581248413579539969154189359918768428182111944407723976748866311761256700875239118456811696946305302725835026472632216088871369857359300202751832187324645465670042299735902566156031530861763073460428669840464890999774510123226128606728202876388380519133913132448950601195649313465186316963084494612497026068135278990915368450770660570841614124008235615397915829856647359982095104937394855132058063354088019250453210308355674308907275081529211168694464973233302971002608999688026235279499174281197515283573175431714627351777607698520848825682606857915487994955714470437659866969102349087408790654761995179292277047400927121579421016567583288116153686432214712089872774769388191902578590701126905457619066873415150150607016709733229257609221473245208919489344119311508049187466501936609189020436558344679856731359506278142469035603250065068207166816593833980430707784427809076574102869589157740463613630096351564439306527210999991993129909663973586875897726268861372554782411741587004687193375149018968373681943068587156162761381283021244038100885530983547099168489025429363855568714905509677521942870119216138753524497628904299910970774844138938124953359086679467064628024933827317663743455155897141496115273497413948859482283059876687338725102345844959725382461239643172605200910691418109922159752324137063050186433685672850511756464282426716876790229806722922599859666539736748681021481684584027184059253102386498250214472121875276078192810850002385978421998623335221692233552967300894750419438796368395775473755154312531142514035524644173580153591467914735477765402692713979086515080704539654957642446712883074138039386917481325039368268170254351668461670005684894785495123977695417902553910980199206171316694285468181982401329035592323169883916349257856778266193033354205220450655769980704595758979278460381805944522913650065301251104046677210330603575012815383870204412377111556048647948155657117077990595844889272289761354536092167068566011197335597883678769780566090740955692821556996154236806747917877354197784162698043790944161064494499810442453524815574828710419094416203093359106058426611092826482269045299352021114556409813531682527043179766829470985561439197577447549726353325471757539075631708311543490097014155335305719484231901699263547342117462862360300529036621338434004468463061635750122119004943125615756622355043144670581074426897728251099443508744694259331284483378783153090371508604003831659617892694489620989017554762152974655813890944454120947735563493579000287854117040521841423275044070263904144494637020155034231279121337534747306739880463725265055852879971522272515891570388155253124772821976859026483830572434275050088141208534709389868432367760704279928097093493045470996827900153314499768865523487111037828501262524130927251052485506878597112182198824124889587482085899150241374192632001801561596776951505451016079747527833088082312860696184291765091262222244372492266628146983643698762641041196165895351172792068326880958946984994394567732441472203925975051114584182000239016490988324219137280998178631099462015323548821974432840806434497574082071475262443660247272252360329600021534448020410840517444764541357792197126272954366686546042147755728020254841429761689890264052530236325543797156795798408323236920757665739275644081555973919799222061573387238786498846540910911527282915558009992407411612595261206912775657411480145569437744665605848437830036450740122945065888662070692371027413029594672788935017012444556518440277846926441492503397793564629691197899559737739399014910234803974694360562733559286969924181239822938188571998830926842350049490127042139274638167642949035961707978897732957887210608428350206631675086133999838427096861970704802452447680226870487418129321615498488856761473412981552133975183665679533158309241748663126087415094088173506520353046771144163444096920048967537140630017148653418796323308521468833667603894563169216162965266909050326173361719545171531527720723546636290307662064968769706071757520442433520187024506167355043731733302957576585878860482174680376049898648375809153281256859695590472441149742000483158071400577541260368894541889014224899721412008434983819319278291283568409883247038276472052796444281138317773983475461052336368436262065763594801214134492895869886836098897095906336757493138710297393548441940423387419796248469876767469226988466056395341449791094411291919995901248156914785361919672998418758582217129750654398924685402190201392469103216108611891208966354645138671102777531873651688848657057239974867314271150287653428224675941107601832728297019851422682645708690485116797809884575095427783927644214403142869599993522621037845649758051031485952278664679141492651918808461307331607035838358614236272528460572314485218535147959374129940971287834858919773524584325699721968190979953623445897720243251356715173479159227463026071200914600211323646614340788439334510523686837853244323958554061639064752103317672806476577652191359664677347028671740569974645394674683727646635161038655918554374256619178992415652114518342349881495117848623427469140269293959083495119448025406679549436983638944269336174245920049354251341029014647461572184540910712422515728508005722536949802417867513819263426921332661226963871827437529635584335505886311817151196000841159329404080140905279115612277311094622281975296991270753223457405083429982030631881109592680307106993153086672487358296426084801134794140370260104325942443422229314252838765684776659268649590929439825341502612006521040524361996483425927014301687643887690014971357709374629426300140425688147007643444810139243483592390402195425955242760701183616642882121536774368219404446138409553602314021248649341326979072172051316516685941680299369999570799044528979452583094175569997522834155273093291632816684502875292492267788898467614236448125626995772846571630069941590602048957902633962844265275034103998852229339956052586463441042745176957787978976097492926752941362910412233310991652204221170950519848021592121920663529795365668746235094435449940671882112614485646932562076638266107123294632705484764602021811602965425128380280724079111692631687848562252529825829486921898693936261495542299811568737337636958736580142138479603785941935679137124994916243861443686123431775096433194196064864929622577072577578081624818617267691158380403198708471478630869334707013899395706676318150570723312543812161663094519553531669560982984581754817187198846806804964138561252994247393435778419473307518954824822515040634463334187264320275474376922415530751745094036632413616153224936209759766864338121152211086739129669563121311003333206156705108148186167892087250903799388255588688934416123338309768848566565884007512424849712118616590373120603119349707844034626500840342800315631048648294241032406931474613625360920137910372297943940432813387647456877190312431769454628988044549246633762974153678464802934038372483402876965088428208366574496328456461880926937105145950599440040586003630959919287381065564565755633092295792187921378908542466982399705856996803756194222028048797804363669522741901804733301545137375913382117583404980774566046683637642538264216100642028219055341429171687371187869669727200025266300155705222926339559460608868664380179319701212288392952938107731030410358197980125749512557050679941459252881787149292438694179100149656926583366659864299835521599507090903431385308642868794454603682418427126013003753085593533587762525768002562885821922621569462876878679324311341593443228355263718856029684990698609803246451320245481386464821572613143919935858991015961861637318688726671958653641267161434139835275520381095517722335644786156833856246840789803492658201452277493493922609087875061297167133792195427896385559700666869502768306269344844187603903402954469752243289010701119199214331125720649368490479178208263661470340888136668245814799283835172471722488984073509271371346094284908442771234988116502708224049169895187144747451668454894486711158377925681971126747015806635964672891815783258052656642965023940052526493358839385514247646260019338149005518801518642704012314893739526981847797407151098297313583429530076667023709137674493482308401061274246866586278147495498580693097335896619381105572399155955040175973652343826263181764996126799841420105010288209667689702966004147035985604979055273332761103054616370736925345346337639247772154794110870878892160795590045664898957637502557936847706006181687294728793101301393337980447161924869135119967047999785076387948297773850837770047199158494533415459842221877547788593446115943656877725227456668774678618876914967763543538070924110395724486471764271160297828286795743824948962632479446721870734192967815734749839735142180497373275942774599664758660912828300046330386997152473651546593049649066961423025832294674095332873846976342982263225535720140070473407917074607681836888066596063527521959036164260959740431954924990384508168613747175371025594242931083946442852612918372054833971755645398733313632529628566798155382772226130663335065672486116066274002285165278123889927935284608606938376666100233442192927773332444366928960336884597227055606369133765420401690019682937285961117143662732145214729433577456225479581071715924569792603735893873385551374033634977699436762651096322163189803120969071483667545365327884598682668115483291899484237532888341515234283298549272045781193471790623370990366711346848445232753897288261930950740753096893010792278053785027839975972858176528608750268200278897905442899702661662363024645996576572444579523088565233785390841920500736402437795520094512741084464163644169774639420549518692527674404976938974805083352022531960090385803465269352348874935129044813986777750609927109939248550703664544781258102003827588207415487179871792658677967456383044513891414880516246590523163916951435682331579696156358077684375787370420299607265520112566997788842961092051105916922690022388889124717152683009587234356226114477325601128142093547794611357001371393253215605334513053383279237072445245990792687847538320017399871856218740890931819488672871809855796469070136582561784614301960929802792512867599143030580799074987807428040497251667310150229358224242483592778779095242588311140999727962153014710038249747183784944715325833870666238133479240352542976718445772453752642019159461898317006029161293966991151933399137285585415618392155788803211208436952833391121657924774872858506877331527983054909892554569913355507248935382871258632938135233435860171671029013581490696432485382467692973837999474174990735693860905465130039374440713930580841309019745951693714484410701543097679862155390076955188782607866090813319081974729401214665481152799784133195908143538593864926981298849290765104676352392978671135248129361096400851268638103839246953419404428610446871673470528292338610739098993682684638877429016197527761619012723109400965251544011422234670091916844250287616158800123392493863790920334424708809291524819916943400623670843456826686299797450255967867427709839131721533863382918611843511228183562883272258067223379485607038141547962378152081694235450699433718598829215675993594342187875875210914068856578680483719883021976166853012509477696586385275797301230541514189595992372763665072389784304296944913719148668500821596624487140278441296327432719512685336736013926113000050097608176932887355489522217776301722736984125294701080130362603172052172470165095046458147376964374211474440382812129611774223717501477270576624359297943929501657770128321611984599612280183126481105072606827993061224978023656845359668367404600092890241978103268304705116353178572606374451192240194927538542290570228849844451504554946269722713212183035154592118960968897118907046554746110081558849396681424619513433397843932218621305984357408114529748028524466682232348953445685388962613111609856908461589361458922692196355140628664467324337008776545931450632267166230080992153076172631580183136024485620743409053693206182841006746902195137940787577517119369798155337508360435424774421401024063655008577174186113341896666788449351874865204267752538483045554958741362755659549457520399757831161410762155214134751342630834013277473758247130527784101759134843046204959127171715170481237273874557619054704806830221697095001233067553140275486914725902409951058548671180438692373072760920737362375904969454620322355975262496744116870276160892914629725643690794768961651052246368459865430341186064817839563039854837243556379264495106578900976898585346218638124648807134272832323957890050110608052097889267715454617862089253823939884732920879673327345325905508043469457911942536647103429292181946047939656465114048899269279546849140026961731062198554724595235624947302856514516019966841284197196258525219490707515821905434950403562159379546420734798073216712692287991829542070140437958158632354964016728344975150848377167784637662386063566371009965637034928190181865658389344734781657549221562575157695544917644083078933287779488329030756365589048521660243181975827407021373730707649392594531799344496802281269459115547824791631242544457639246336484320353428714227613511128709845856441586126423059214194868064378620036478763225590595353974432856572900554592591976978103814410704671820832107290248268349521815209302649042494312003531428724524153264991455455194672458590660912728812234312557227919949596989639180591772584160124891577967405064915789022670243285312028637099123655933215015775101948689155361582088177733183259585799651740576098755121061877543826113780134161431538470277460515055630999434019084947025150631692281196732311797780612593677593144185525188613707865332325968661837567584891841705912310658723357998066305634720204521849170536343799857315257145486787342686786393274501889077930367121979968187012417397944844067112360921861727112707086505616608972155467826290461505560711889840159561958599189045805392449943770560450215423544554174942895047290916565164531861300042296082638917676698878382632936964439771683904537787617744486744636530072033955813817968648542700996211011244874712274578748094071829874082430955334681032895993636415575314196814179956705721027338556262683644755532459077161675525003148326224751982357208555968351004100700596363732504265603624237231671773679942265112412896550130907408881012680109840415733963907482729889614744952427246984411699064187667142101948840083243548630016730855569313389259891706486205947959018983221612757894100383537870913819429561418023941951276900975985398846831502312445927263888212801632356182692010432893499948029062431283583900086650792872100566252537718580251826690596259868674135647404657091251212428866739505476810536591171157097064073790861187453043822716074526150940098095406997449540597050071752245152471777307462982088506108919728181135492468103870270477878662569736956786974306737724135576730774783815525737042544171302046584749855129445077028428584936227613172317200886483874319254714829376526689440625129767642263539550902589321176889406947548807001709513575941045987939661794035715330886627787414228303513373577230149971334542048927229492684424207903834484205323898808679769934911406246382413926726252050159189916605946495805859209337066117556787511172668967326944022615330214061577219552392295001455829229536500390157482964359490790737584458413326088690694924415759385440766340543071171592286337631359593083716658574742277916707633892471326301812573216009294633691474064351559193926243588328397283573577889178194894941126409574680363837733767669323272360875628517614147207590567098141814579371541300039943705482356512768965224917619662895174644877839044431475557433880662258045686332753510013074485526504328448238638487445944011918134135630059853521751327895374604901468471942511994124510782989329599465204449679953666137077055113291820484969348580278838506354542584239673142062659914396238034140275497372647430911658106049890422410025946868406397660124058340447117967348385318177775505759954519373192625896481282536846325529761809132289405310520598035730957962991410527943198735007039851695426585064618238527216577150937646997236913182943984606375927954200047516948688125901139154785931215692133424562382093027929135728228567073829584763509676608357790479176932838590724289014932114626694985119558631395929675434910364672815500802569969521460134834928165756550414074701567434128456481182473304643892440170058799822584449688517389432938299777793873244740088568466817867567166342391270245830671406650188882125578922598583526239713673966380184682777289224903789339000885028978243092568244028745360880610764093841435835629825221248432178418756350851894427505742390307615822838409752680489054227326416575505844062899992751785743698621585874984861289544917632293020019613735256133441135136786366630576938934726219869316144315872933606009084065982498402940923557191907291543286935729742831822184089490770243942721649070701146774287611998314383228446474814994568924070502530290296989640213190185411565940860269178353573295564464964746370703144572774076641587051876750503672629189858038942910499164840714356335435355400981709854804693218105688307981842392918088571143167812059272951685210109974732054771962955098945418858242623387115819837541621514267757568160837215803078929966216790572572619802241898543835674412171854184054325356837005561365897480559751404540762789962914101473028401160003277444291394856028074442540578002534277427466068033246018048971705212467905748951686250684288373474041987820380369977780095478696391435449146223830949764753317216512726704610997985524859413795620414085708342546745687393396749933282230113624394985932899353652928508754332758409728093811799593144348933187410472713449105113059627731048257939172943185629943099800472880558143125891253556126200464826493289144817685726462887221648778724388368247529306977178073577805217555464541947241148341546761358995113863645076480540918316278329991008415510654208897395537209197016222272364306312448298565923773348307581966132603583005424508330410270345355117053787808600813479282870392577298498975027121734763163062337526175919507192476699785466914153043219592303249769906614369424348088984134545814803038633469489723301334771966862074427197169266681071681595683612425641461948047337940611956136339697445773936433860686078766835278351257829587562112726407193930226836421662733102136034364500739975203147595434705861002202091739426261865075714948197574369503692457037722500158770121571343710764304578704024301251480568663512243998686483274424274132070472996670776420458429990083389939676906305917567619150200428243172826442227795579479708104839609895174188045947390777214572825464854507673729023950833366252246913238629389423638989894120310342168151186619294718245855008181212015234987228418299741395090716713601624655276265445651633618395678731219381728980514108313162814648137722164461295991799996409835679444825195561127832524168653831775232924262939723617674484857827715317672073729964124615469508084357593168822112969707384994186984848936155365744225308773246216250595185621890569686314857889141484659689578444318420562665606854067553515070255280905852383342515100067046399119172928783139607332734398226253051074386534777811720860112755071354976141441990172080327529459819805727563058339082453291317560383729905251004704113025909317136703716063652664198907838903357299614250283831308066857343715098131744140714998255809276380893979473090058754566446379701699529608836053940073017103746835718127167742208256487202058239006060483061543565008987701213878134806544663702428558237829710177419447587078383850974836426588694360473404685751804823450992272478976990215373767626123120912593154477751949178065925951870227714594290601114738713103441191930119544788854251991404337681356244511383059585801681149407176063947139190860743575055064456335904640082401047322857413109900588613958272074338867779889577763371010336985939380001778851780367498946830036493284972833895070735495734310006783694737923937663842852339736731937982861525710654968446702775742017613158618869450632429914252659896842587849369132274945173888712708635890571766055821700941726641681576157895490466891097123761436574320925298251034278637822997025461059994176456777823395020872515141499290908556384017352086844315666446013779292795980762068749082602099169392743738980679435240698049788066460479911917942942900069232925197112679486740911111294001585922443184053881007175781799948466611792901466537274796915053144053464639554506623352707150602696574829732664592289917383556786672213560584012508468456679892856074406689150247213460532236224527492732246330993661391167121450346203632204061817015150077044564490727377016144084975147764387047751792493894443197928326599175784248570378220559443544724525941521086348596366396767732667462902593018437657460221418795906778411793360047120105297389925796982582953767699444517565431913761842873590922525363142174267853422314427560188911451555917291226385447081247826959402808176308819419087094003895869274387435753718943671271352823855922440395596877647358817854367389192300890340560387935112711865922408561425236774835600328353771704923165488347933541960357912705818728734902066993063379503678372775771341098884122128511821925725007263823327560334525377015723513445591627262633212400613230904415617940996768637879311399976564894297820695324853373862387136213157939970943459293244209584465540274761367123606034434525070490941274323293947326353949833769251343289597714897965875680959077631220371558846524504671822207874668970687342808742540359734013104425317734346246279832208788197398457351144140793906321874150688973547579197699347930329162113224073005218981015044898745282014854727387055987321338366857148212827449425468759142850368270727207548404900050441387370194204609429655828526623624220284893879162178308986883767901136583689546071067272997778667257711564938846687275120395798292567401050917017759032613721003773883969954123700843497189090507663412933671256643211339895340646848712971923799153145140107703013435982204474088461560061360999659504224652292837810033345974444097566740466988872108011526262931616186085200163024767028362611432444498072015581039206833623403052671356446023855370156097996812958148081665000221875948901364827464799650697438455759177457538586626245569382551038778944148725200046521979895670233400201644323139507494680600155477023504109334220216890474284888904498508981231143208907527306656715839808339620418863943511459444229899804289504242543342982303603237755812325545232012666904991571405389675499253445195213619727003442889567621333526176046188012884691868139371414463655181415643487027237167732699705956526645595692267001105043996160762401404288330965898672053222152690911855871202259985334706210668546507562985650477724465077756900812396837724906289079561451436081619350806908922298740445481217438550074650510112010776973472826788597733345488544636697661064224712280741780021196400230461766350810738813058539541648424029107574828819955469456901472472206219051690677228513728979185700560757996559008717121310684703867492788221286751196214841671470795591501653364889516282847701524112618922888811818281345413697728973955076903831271740882449440403633524731287130088035231077287451974648281189120293061834871183844330654405457544668505475206138668367830970534144071576790306469979403967068290496433545913559774889936002767129972100389121933687756370524351749410696000929250652572925490813940283492795708051371549369671613291838497171386587558261922976005497991705370626643794259013398459528321452691184435055872153391939370039211850642992039999925398224794805018170203555850268557457211860498556027153685070166088785333008065181973704552418213786260029365142486364963901551224371553706196553844773832992984479517244968676764045476536609487915023103021995589210642021572944202947929452645748597844495939860957693702519721528470477085450900647688119971427141854985204114628776832944473621889047261233238170240900962346854609986004712574613121499111660109340766609216313234751731527376693012795701013580751976088424003622439564459978139094444539612569006471475725494979027654918280870516562822534306357563952805462271776680026279231562764554580042748521815556009498685076994292221269768360067909758352524975831645041161774484547631568588059786345962297704532993752075016220941042575930491084326738728789049957883319085077079429372676020224386061112652692586142145029306507947837113220560994548701172358059699367332233475416846234646165279809255260667369266870521562047843566777247053951849647978355483473923065590118632203082672910310950246104253586616588654868894717830370967015727238515836827295592447409844063027084606259338303187479795998392687909319356873628904184024599902797703420342227777949339642646978313403702938978784655854873324330786048638961667488687677093984625497147960521144144800443708263627801266460526226102562360421412674725595341262694476510194934821574945314713424274026155084016501237188370383716118335675145329197563592595583274238447379952484257794944075374554449262521588378558339108427653439222174183471723526744321003980591740841151382339381547399096561254040629347946098173395045283101126890579178581397928502912331487299911737174201195609085906763465208801865166225307043296071264860827761890433528939386038799704474103422911775042285973925350219008508732867392398343450940676274867287197833268364624465596498851045942301571852980810737242624963990303573964449811659746484163856910597431052525711723611200420570912253902201060786802604119167038659992235675377377444087670255440722961100687676297460839985297540666935826219026997184245730549082352331962413889396426801674802238604709250251187329561928088770341053003845701767904242730197797959205514445761827996490353330202429906561839418722884747944144575397921136720812906254138470356029175882637020840152107097950690199104169233858805977013993032627261513907812881909771500290112397299123804931404499038449607599450739879488097290237460225355709535424179104084548462968358948865144557135183069988682943811535814318090190296162946203067126125325467837979284034945752082160899957403927080562242201810324961530442856444489887964395851006473492971446217244205435272070576327884178232788162971030254864876831892829409250929941697963252267431222032627162489241826224989264092685847645557666406221656030999772953928834814397417349265574780814428991340420726462344316715731008745972840858635651322310148209186667092018784000518208866334319062606450498705786262810689605070491406401539115824971329448314213920193217011278210297065613148752636863235580175581597571075780468845686861623473652989596830001638180704986758535853038575997679486596471276319319299901212066375796161038004056950962739816568897454462627052686177012311221429346880363387324325657064761321323737549191245217148133046195940068007401434650157615947058368399844753800917510997041576103343495934940883707952920757774622897407491062060930898270450055064111014811658924168438125106965250023702728171161484777629330927979141838163698284117557178726424200660106057786599115531283530980006646798237330188626157191777732303700913762536217760477556278311956079922336115161412151276301691287464029631787951859615522005114268112534864855065201627993758758326582416762460116554666168567090760489770678541178471706322857206446459668345425953638587309831535524422165212448818244074012917950758557327999662820146567357047847718850277541411922672057665725826125232303589221479440545296005674955772978499160382092153575152327607408839262661964505195330064607538316760777717086215187575432869468519385659684884996215836899726556257249615749167827524667656346562920814479365724010641338422583331100275694369457919438412069304256099927048850596379759121105871307993775526091543445897265129599418984219736525425566287899207714284820498029163293241693074832795662940759470980710318343416854014486290024545253068546116391696582335126625681299116018386201313573749009128008010116808739844778726236354626190260797228811015330226271537817978678006543368103949432905899135639089419152627265765478741808612766695621009135554522303359767950324026905216101381477278201868267250732235860178795583777001684237349741508312729798390970486208770741017230606403040743770317034277999742501922699617969775155234975801983716631724545985841747717421929936883463334650732808515418905973472482556693148420349375558676819965793673596337009311604399503397317833496212063836571923103982372619662190407284824930976260149850543836458979571574110440700989758377331307524175931435588261223889461714611005715215925948647846183880787491143530446184914978697356681731320475580658252908424133218037400470913976643742128149743276402102015526231227105018134860070096570017931559479494500002769949682120963823386816870955730029147249894701454946608218726522050805373194694123853497687623004921342803767474184065802523558310437419484878366635531988058622294020299129332824093189048458330308534899713716936985096397929762656178929710510569055375528435475836445792921198144560342179810959511736130051099083202433371366759696364988441933091538504324559122933016639071181960338928978289305571661958564356527897118592481419169355614817164243532516223339140040616289388643724636638173299743436096741792712521328642869475226637719312634218710276563906493136886321910519091464261907305848965146382765047134434904393380962765801002470009201818696952811121618398432742330237797409256803538378051458309275810560557682214701936885819416911361668314527612189526923547598936774986287961963683366277472661410291428280271173229158370992032069449667777927797423669722462975589203316741404856199711620245148328229550860579922044894917601237408826055003859708908656102431568552413640241993875361480797715077738110135292538062167637622484006757597749634511488705709790283919306438310629601762824874846140947908774732365298136920095758362451434754582925390323100949583681847532834807831575309296659576694322845399147016900471098540839822249706085933662726430223800182259542599717714942212160540264847290718233868930960550254875929987987702012667982948880727535416488013279558472433731400204790663552898711992026609961490103895897201572015114459263331248671095188796093009408356861883771160002527571292991875024497175195866780181877795645003527212074688428717682335249618977266026234467819641165244417301278395980341817780938530256638175226144879081831270104566496823540832603609718349471945568526639421199575928976751245936786797530517083968866270893346400805717780105718199383981325615313617599162002012635656040236850935262476556121536430735626560973532082861001510896751513210225321970900419862172400485437115045080065726431909443179086344969753845787743072353034653250038666032847462692772120155265239668210087492301674881851557729930496682912526640923297666348214814031342892701207032349518047460271653430868375327793364205203872306685515316483192927624268239909785425085127256027161443056366990303296087404204341838282523564664591446647047581183265118006603347976989758763451725675250954248911976624497656058117436455768493583394915007430118986287234732591840195132697501422533503842914973493413421745788830222639815197403873047852562462692236897129316645712794518929457929214818885517981662794010246110651941603903716224475806722246416680067383513712564609170174591478134709990686206331424843090569135814607805336183656533770884112210214743420123308178368130982377944879917852689037859229589191331727332466457600915824041246791083497882716420669627209100472852419823415826709043840882958996293075894199086091077230551703013348426868532269160705439524689713822670060421806749149449165772590903126944329048276233901066576864269964242686501378214796245652011056654440592452319783785067222959120474162998852893070506391040167639849614691550471371636790974868062012434988321756467224085679651222984854076726904825923838355645113904369431307292381390349729341269499988459560172827718366184461214502273554199078332184271792515000121709424875361613032050565773385854037284116317266060880254743727333541528925898280033688438122338865358220377378691094410742912526621755127860567147299445697269377783603645817919117509461669656378096182665185523769157909456240549798858527992394434945693440145583109797811740391943511488949809449430305874011982630951660668923759108395749848348606859574118938327669967693247995458461816753908949466367463904623157673168960155668390050583923281374256179332652941217672299217164572287025285321702840146229204995837286999472402397153649129163489631908703536116307942794941182451039951140251733554352296538650519836334659840896731089047626346749057169404345582582582802170853830987234998675611099522183103670148288987001011339324276338499877813979336081066705855525682944417182602353070266898056658715290116876428260140095217468908827097737188173799219239890735801474202833541348483346099867625384518484143647955525454497187027320995694722343349553405876492864601907946104824574760579608896122602412270085627987471612681719694168577914806364280620867586650205354838377557164432423598346987141183965736240673790845925102232683013316019397414578890181982684034269515293990046462207252532007154515702423489293064921542312237254309946048860344829051484349447839459168684504576034227327542281648525332683335883370708985924710230134324817201265164313682519275424740781644294582302230315318579643657017120171090117060772172174681010017621741006228439127748583117982796157822287931670638555952130974068915509465693604582386155147804766245936754724163276135978190665453253989845579476649405695118324462977236155560366979045660498516808976278396003106267867881771553194907482781284985327657074076595586760607168411833921829463293986639641460030313301754394962914738689227605778499786792315786891802375373122332124875865775857134722367689308058902320032020849478762092979300678937612691826389442835496547653909434724104209429020104612139299210121312672953812558732158417889231775365916599032409658013826196376085987646575020063468505817514356005308865904195186006750470003068547071359754571573292768591739695479829565801774924884361646919269107813552771084250622329599503535230743081630313881210751231951652411630863764239649628531385348642702528718867676893296958597648757160781301448204855946356747569702832886910520781390025615759965689536232869762005455639763790483110011975299888247908601436338654719296294333791881830273223957921089595986203544332363698142847325302193841617798632998412349978518210436419245827655463817645943646009757679241357851168973566261588167101695543218828530854561079294973238431339525130614686495306026109412619776061341072605453533369556204888185066653868666618011027377929958787228307610620576503279451523886139118223687329932967181853780785651223622084765080382416605864739773580396173215109008662288144445252837983014058487525537030491303955359060965873513107987114441982263751189093421587203336673316094882094272515071856722857734286798366050199167246856891020086897757524270118169793035333277479690938100580893642576163728024975578655568986850014055698475964015178162628073818280472463049451277802372213875614126238624098480181289467710103527882964610162620538876938970939883015811697235440321557609766919246014981426497441717616100265323833372815330772388736598321249600401050833473231713562768501951571750490589106400539774441191007593256684445089683338152852199093941095807093193444573751517775254307421626597430853110738617642346795178430646395928799010336908655242143874325864723435408795424896704252557422749535895902278253873960179216145806523320688442692284184094777309519541703392436644677098289873931260737927095843161114044430836008224832045656704935524998984095242885921385009987068659781320441259603169904146387293163710931591065737224961107017239783575558986307460114384857224934872742418136344415351543455322090373352917065472888630945089304758490025873466712905633852255974808232390459334434487148461322829731739930183717906081766955119977018193857757927805967976053670658952968306219390813025766026725294609612206967513449541786209039170101567846458651330631491400315248372277326503482717702937653101474043144093340288923613918289570027943123753204028402390320592318525038315198391496929230899515026045289487299534911671062948678674198948408957345473789641940292407907602278689180678252864612996367574408976481104185746678587369453681244670107778119515790560452189223494789958236153258242217706171754741077564092313052720390946608007796571934189029858945857320815170837441241616583234627854756034159141552055094815873477452498486983348302862101194357500864166614608365808463110980364953699228458092782244183070705630128711795628969464228956737678580552496889165822335738317802725517310511574914612798388919403824184567360257369064766032574904436501613964756442647972771976433764487611772340960949133406138031360147262596771596166136773437551688670403261353536783507921529400578734588269211089554168733810021580720166648685232729013356290787479553869403041263470898387416223218485555154997021788386693078646134646384620919415160670147020724571224176198415217775298901500158194834868163862347960059255819821623500137637759185533947146793830679419744168654999439771398201256161806634981682469551413066154318184353272777898803541910912788822223011182131508227210623258356339981104496031280927608118174265312654422512141205984580943616700078331709146622207705040980666857942590520789216179424110007357017085906626589823205161738179943105630547932290939132106351765585622615895990770695379719091887442990308918528058529885667698999379606174452345174469516122523572971064754056395572150039001889026910480959495156457978091545618549597989510730646997421720977271998087707704370915677687257756760740978163016407958871896648355469718055398124495094482743902188232946504491143240625898972601818100360822967811534888535547512056699546013348686670900120198513606447933763001110517237484226392761129257842125165662276452354883500279927662487679823788246453425054859198675021587813788338759789317408958166841916608808939150946676712388008924067950916332934542194517332925105134368711695105008979670124843892025455136672650696882939127850645659674704111253206513359640619706102474408009770941706584808243591830898745521769561706617995392578509914209715944678197949081489993766917956195273212390253309642088854767073324551516116535000438379081635086248509347226755477280903343299331749854864022977465914064252213996312815471937716275647903272098254905862450944806553173805099386373417410998064769245922348552226789238245366023798022668295195921220005069337321856961850118644726890590587113930593214680752523893240746404811565204621134359472151980033547781554275247802263830103633886144334248872725372090281925065100793037553893686223798684898758094082535710677071563262269004973523384531179439558376409678838563660533824049266332084721058089066951316954088768700938806849455529194726474188859040192897849989256401845633753538971936913780425724866099585712870662360582936542527917653605145287047559035315243295661305651127318913047659118156214035140956838714895678872479440915118400329962150066816790995827735592471164913881207843655989912076333389429194879475644563786029340851731298863613830277989109710968352970553406410186026935294817763683304255127050484333321839275613470430868654800555870301268570171682580172126902587864602412311189704903875027971745974097407558205265278110196183144716392835690281925682503209045603841839152573174370377479152508824876469930068954737603763794291224721313756859836542687552537792113653703382581685665522949997954710579493750148775010701697025148770776414253666454703002765814041651418269563719350504794040401153298412410033616958842850892520691778949254800313148316135553978670432184838804315757523120267975373571608741959969502012579599382346476446817883442298923926065694523618205862657305964466589130479739084307321211513237854501860273389968772916941792720706838090750303551681281577742215136253759243343946662954009604286416643669867264068604845250506065157750100536994055314712376630844990821281760545566660228101520387902190390083185296655714002342412642335073989208231633638566991052916472904237125251938417524394636307640954720246680456863346128537842430607031852850573267623201965710930347421969477325657855866773096259937591591121445175725170276998218140675916999461593581209747456738050880193597138633336324103140149553479114379291759035095621243396603752482810943674718429928954716593661009167419298465714796713322208532789166340541943917136971609706070199163264373024063198377010709433206745754430950143158268846283419871055400502504910503744249803166702404855844185698671326243434437158756390400951746562006470427405509970224856049810726427304511931224375303888739025038645349488806658484180928108957426130696859914461065344801494715869603615665942729431726956036092287115606972284681868736968592042941656616477829082721835133311218952843811919102513624122767829673954968235433470086380589599915945501746362513761956203728392293740112084385399802876545153907098009279057920012468813986039612022040917419506074149645894558796656338144003323939693032360264627532552529830591936490639423085956855200183477108927301936439770849447649943795698823047155968956533690549482127571296278912542007435664430312867710324562057227677387180826426429961071112303670501477983941170985663238124413978344320068224931237393451534593454834402060053517727533764688551256667850475244296624208281761319764097753214019027251918507630493179245112218059636452234435831765669760748337463097904473715633102981608643793314480570202177156782120718952695117645257359987841011036688027839779034813683159876595588606130538696430079159246185782875457278535025143713119523526030166201680317839355886234068944626707108903410345172511235637830505616643661521234194413599322383597757577117237605610997505053673709599011627753999297291204139293206992525972532591543039393500368456883658603560831319429095847028711116885770210930288828120660327692915903279406885605083391130439176108894990147835141768661138041914920648900626044381902162757164443726606198619091016834206275908556321948141104647298459285182368079316747994091703496079561057965126769773122475796440526169227766685439203660420919630217361195729282234115241744642223455715945344116517258155750531727379702557010719955194277822378095441049477038491079691223962034016412142413523264159910466807481093731563035123982606098094266565517643438602233145478570480069390812460502540867389510293926947311670547777154260133535912471612982056997280552839630813518291924066407601076722555444542524091339687802530183542754643545500890689239785988636223469324862759093857774589653750082181852274284286440167552079672041180059313124493939338041624790630966481773815114427578699843615088741873411788127049581407784252790752732478386336134816480670868341884095259924954585343496782034352954335376958790463113058293301327857352533677407915132647099084203998182287207696878751979032136976913168714506888475847735305507753784535559121937912388641925384937989451349037711572359969435279033489463523719088915771999521857395472705493252352640796195651882456344407200194355219085618900274281803927619546977115701822738238221198802098294549036250460048955143938811562563656081521793311458477105596234404833339990293867808318162802787800212478185957667472555223540611289038032939492745347009556785323775185309980657503123976011966142135929266630898871666531813502637844055636046472272716984934148151848425402542633433122315708074869204693711573698282594919369060002278636062804380426776895451827393175227656092024071811917542487782610236213179619655178876927988716301413132266465999235255559172620919040324075465037448008327425167693253171228330652836780327274143087711582305229745833980258074002480183814367680334704376984969553513448175666745115152084292872721599255765805538541464106473879962450732581075329399478091245552870397398328890573686312884795672701568125359368863093382969804295908574310046871573725273650657221152840980969294715167932805267482372268338702016290140230306890237311624939715697169435002837309779924871023099467094682537225301979305442358134540341285655112393719250748107155248583406217088567591346569351303600128104157186670950954543904347154431795103919563662087044114725154532131985606631453473134548429671772836071585618914713144764174019988955249984439924770641266162409998035084027030247328859909848027800151050119416562441850019146474708093271977342721648789901522406869985371575993954449674632921969201307370254223940333146715267157617035093155465968004956355438364858160893128646345092494847207650779950929111631991984875810954375791661967616488203578911793752359509295037009274457567771871872355921078395730282574000569402009875615106599297983843588032805156987021468235084561913683452752952667163611673964132856467008995136301732392333190036630224323113609364381472107746368477220193735997364385069874143407561112000827200364379992962892908799537739974039740728763306693908007755962903748398654845202281804918973259145788458726059983168599741787198732014215771009313645462395418738869142673835438963703015502780535232738408650655077606386150430736176376718574599824815226440033680860602393083259740630284457025430422958476645622763124300845945784208499804532956605526909504224173115452698866651838959270113603150266243149760364114659457417779574342651740030131578890420983940699539276062537337973964607456458471936173434768430752142459500435205673180198381332608461889619973231407921707941051486743784840175745811223147223692015161116888712213822871064849437644945975671654658965862548695509931991903882736762247249262900729243568900415572056799281857322829074510765548547958657618936026555493414564890370862385191623225121472300730956685038915565926132383767010332132234649825208598229273780296831145503856396055957819412837489839566467490866785728229578660967272610952155699230691743343764798022653177310582728066580767733219864024688023897525412315298788582502761251390629212108180332458792502234754431485451442213431643551982643485376224721575776246496090734091507800638561350653478222996712626144058327327541800193207080120087727502089102522961903136226772152564581565988065135221068875284133422939139177050666056913868186371961317235401556017001412664719849111247752720097530220669588684970480688496439033211211106529065251344846919399762540208577336374411083926344379884811684938005153531510530256102578769278207719350301488572002605827429333676901426222077805782385192952939750191069754821511870810775336252158079661218158015822194137948412970313793679167979308462616625758888227356549715047806175231596329027784993092737250819296660285571280702007368062453659104579485308464504740984572940651894052645781407110937073171192037175504738780880822527924858011785326729034678194283260601221495420711602607741427292608969622926635450264907066524708631731429285888487472542795983230965021259904212511704606789547389396778341883298715950611070360701505557238361756051369217131704226230998733852501533539710925949964207688244390380699980589261964709157932912186981041145225580347237713943653115027772691866426457702266329390835036045459478655762824956698434964203902058500051601102466308718936192957182281874260004540575278328664500438127407874892791887700973893097078307708938307876140178968285560299332329384617470738612786650585285333844221161526852704023718863853909398398459885778522521629623738532550828892666618051630642196234538821120799028770780802376393188596931940802365978705698234000918021302771633459150251193982966845047177062356094820460545552151348841262807616204746592212795104366818162990920947230935999525735165206020648193965989517389652489430273764430629151216349090147086159335882717120038030143319704888154465068904344645537399234932586657165142236249805408452330408935548642360624924248533095470581798816854852374251405143170019211049192932067285637295375712960949640310589538371717036573389700675510447225440617955014418564512524756555114772802710044927829198910286265436351823878563997224718294223461820590153131919897065696344023480864192314850773630518993001719203838451365207961580502063815478159503604795257976029455600204436121412462026199793731295543801731506456944901121991360778787859770939923615767886519648109412616633794502161620137524065547764901382977939147915162159412046881503430256135828369793799217930734350018036097537454260896488144975021813649072477356121515837983879774303815175551070184118761357149996920058866047716272782551463001666943562231421476809112108728264636788206873023291775420778690716115614297512787894258274430885020302340872926842187924190855400853509222690267399059755291521182446091556156495994921584284250373145387435487946254043604795344543089119767696913660257312961969190873090492241183051272130940500981540804719256134633631681516199084685212155396759404457900514736373141740568935620792190501566704162352135585512936056587525548714941926961087195886436283096561011740690660444942379293784108047591166932555351934681277646575760437071014437731345302463967698823280083965803864927801121577591230027072501258991555547031086528501632200011551158252990966808114589147691945876475327774632881795019599769090269188405166054197328513024336611038636848450931996326544196665242288859354638793428654298016221776922334830730182465801701663638470422323898700347852622127976255013279563111677613628184430543184127998090383597943721658787271079123894053968744547180914968457435175934942883114850894464632829478121925559638263555806898167254159201983034789538918007355598548105997474611176689648383955199233455746889881394749625580874203185966262827830923172282012401053379224316289808754929892260470850211638749390703590806814037606970235310829825461359075656748126408148481274539876997333573577914152324120891877807021086953166308956930486029025309363341841372010171046904938803650391629487659366413379552469874801618601453458639389081139992870813666411497459930883830398372917395305589185544333969552989373305022919474575175203556656633714501493773013038653155307787777838959096108088997631388414130990504553578522426922119235676280768342820302247978823862829877729122185812358577102162732266741541741350367818377952414730902791298378594551639288082844074414846498388823274580118484489398941284488704265263889372971345419592845641707091385587627719222613919142746688224160933858479737077203486197089113696476138197643177127609011502358687209292259880590189841599514209985786043767804075799514656687629281401897393305295467431307080196028891872075815508512667169445602440759461567622901217858246731113074953452749262344320772389818116487412177985229126654866043867878266823729163505854807008009291605539148578073883186243312890837703274245557299670472119091416787043759929442246552545243312948971252566323811679065445854492073808009313681808232243059258483918864055650383101027413022029455029028597637730623221902698381425214202118413182793156273870942791880037281783416948817269533006407990650501693894808947403581124017169826345948117129904665258438109718424971758912000023706897013221058959286028436576108074547414002825341830708679622816871279361830857327985724473341055360389463316014399244937095290777227041182081811771762666756756861439626226894713742047251451996376496489185115426443453404396440772740187250983226374963614526799436243925590777041964036308326563822530198872413442298171566051312766426073710420032982643821155914575133313783718701917672491070514534369670643087612483417175054610325369566400344542881958591538581927899663478953905658891247401153422987590655007599411857170920363809045769853340794816371826165433530001111910591246338347735401009767218954935018039206463726588184406582400559371785527248291332229431177756682320258804257277916649380740025566290391801266983714693525945557609662370061526374125061895601225892952995103708838267377030908708725702492157222083913671359529663777655654216919708335564126060608643060748801061366562757062617335799185832625906867337132484022564332143787881864584454088460022328119329057029102284515018117047766494074942624534796892922443273459546567161278790906446970945200507866150783630944951690460080433753409636088354871627566459858991237143953680296173039302928056667535443749454988771512295406900909107195129442861017222331762374196371468906090864640318362219968715012255516234350399833349264936353130952664918863703585561253720391863251188401877761098773196846653909417603498845807167615351350169626262479416459954572842053848348024536454318551508287082820037766046559307033931261678621785485318206079523799617907074525451648403047801551991724840255835819625293400017413881372072108249611227135227723958113490493282296880243425239363377595647656379138593283070479314453588618373790931208445507673884508375401274718389244511471441685713001267651961345026851794885504318400998117172009631541349601715999789422915658050137846758041179744175917890056452930853715997351459524230186733765806770478737303369162769037559053464560333373223482399209265734605582318485460373593348037856166628116846937318589793416817565916980958656868244114290551287518165917129433658845382245530971987999608493630301522455830259959909678135614365808785963279196823476693359316270662424270140788052705260489749948725765352151512831573260177052423790251375594380645733205712654118357842759978608185169194165297636673320062442701144738098532923513626934968278993915988989176551098005330781172244151358388208524717878496889205321522205652181906818713710148134284823675946615319171930810126431065631953591411990926265374050081441235299790507285199101178693567088746365071220180461963781404377600851769060309211548432563164857563301430012240166482678010235238042772938382486914604723973998663787762730693215456924783337533537849399122442926024199638539699877446869499945555080190381245001132244783532379636087337294017487720993339742490822293002353655260778434820408261064328507339176591866973371084639636168882315406529004139851553221809103833510622141868447107623202997052500885168457891665697329442932588507286945153757870057100390162120046723966738814310834686916880583740188826296098376918506184248120444552747452628097807883367989350920631676982992347854603344692052517802880997923268774169596523026733955894249376666542025831353705292272701738073009546231163327755251198322210080672849058438672060710305954133103731838264731641725481415485181849306921522015326281142658463642039558050682391490844753387608336874083414054842534443746608818253223707662346425132634630528747374945682647048500022499601521691833031526134196109424510136504488108585397991997127481984527853549749081359085790190397593096699593353723738774715711433647164792619221856024221450685114371874051596345292408625573091739630007933986420686519627471363427541965775395990976209248063119723526744973419615530634210576982840239311478361007270257658723777057504837044317739407327564293278148370938944629686883907807506939779560252339590881363903663311256029942581675177373138459336525520874903479195679464994593913089823373928078988318131167096981562800721895939978560882951184466723650802270802458247019890862817361275779932944186718676616120413982856493985759598949506951592779002611338938718365971987564346236824793135709219444447048540367279973530181704186459650067517969031623539616090924065028770087380059984933543403162936565856541710792554112313109830903868841370454688910563229020343070471797995387240956746170208571191380538337493052272532054628071920574715935449415867746953810637505345516470043397698338554420222762757222003640710368543480384747674890166683548319780620977393019677938472272621038621182530066385840885396621401716953311284646366097055810798679956025399818331206029704858021137797327953088938181475723143272531557151472035100289942732583149894124501606748075999467632866521820815808834484025793689855237553357618335499272925766811157751677339887211833293963199349137788119366217025250298724394410552985627062217081895628123144563016892136227929778973042745381621204916691344888387603003916400330208088009730915586033533384130645858857692099121671794650436212652787491992168951834400733367074633818160404309972601523847393177987669274890564677398189524206964593905966548344616469230828820471302529114019176195086766436206185312812700803647174639531890191179539467957314788710675994259408742347563750743547197156863267227631012453696457689155508368574912742995841877305706830220747671887481718315926038823818942286583068953345389871651084055870969937130666281169184335011127292663351479618222438416884357373594300661384479525470132997300190932640799190665668751146484482801227673008148842694779694730975294715855838312827518012137079037106479567410028643830614494121664165176600943489179292879216526239399315624148098998319104173123760808407514437574546622847172799402032477627966592821906306492276885672559959815013825480097122209208738383187981274052005049330855231363521779232320472487805527871789224480656286982078941307579180286047188348053882986887805971712781540286537135931722580535269356639272810648220401442071403892180566005226171990145839354378062226350739432729320981258280580052457239471833976072992439107310646804478041672804710846033546162806556200371259713651501283578726321963489432012011149354830647801158762393262003931617171520648876047134967649913629380079889610889803352066135611823283619121876444546013783584305917698233378908495291404776691985730549980472445164679085133949973965042801319669066751947051597224166736628771864758695523663629244475304365670231382060089433373275946157653684302286554485513205400929255152301092514613425075230681961918356195101337881657940585114097014385035910789854696710528902638736177178011874768661107184924300249043789430153865330899875397083871379620201584110890087571897328659572451790677640051591470876430739891501038859703081316520810372354035549461615046109873355666544337153896786486495753441764388614062233271838401523643559378091327110822670068118523074408518403925835123540447630456687812435595773409802608236954811120618399516072733803304011620023474112840904898442340192146669324317552223776784136835619215392514591740451699293806431530307885374879783329975337042331593820124650363999953758011723610404807277471804537324944611052286703503456083732658208340404937962050842723934596921807477871388236534331956998563768577048556215466771681832124621799852194540084422554507839365969958603313551048753384929322015170457715879173173609052066074258913632312284297071939325225914900860267413512016043813933762632470036813403392319025113804235298807974360281935794532843901506748137349403552609971972060630912300860622621543617873042743002025043955499403684696607879203779486906180600223598640462600629779187578763873451904744714757181439122508977495112275898293050111109528570037342735927427717557928090435531388030956020276945832862539529955495545915367697039987234018955173408583218047564305977870207023079682389108999038907766767538863291166272372456065488206661916245323849373825138141211660942903412376677371896660238437222901800368209217253285864624622503376581558865186708989381808126569869873255857977886825211635787859348723799599845702076469645341597135645344723212239480888456546643934593208138573047638085268938224198163421983279456628718042603971465746662059824395603599563193818941007392944185896394601482299297035434449436632172344347088917509257453694226149837115505818593041612588191841177823268519618697673887833034670118676844412083051441889926375030418400444449230914686842172330337007770533608527660739078405865702543702463224582923175607286502389956810612335986930707989721431855396913273557818553797697213968708117002445414740461602558721810249640794802739042652425017951464927211976246194497214367919858683773131905200885798731669888547598926613666376002254004816557200722243379040624111828352723225938192395326861821799060303980007798306446689148078482271900963961789058793198133790707754390698201166383278497832000195893131934992328639640050019239055926793358056614398308618437307652254919533926894959663967667998743326006626745382828046167763347628030036667155237889117267319875698852386968583704369856324294694290818693920133110228842410394597644544885673955704488105806118098035167994596654404374400590934315409186170164859305413784028631380558414463313260289894744442049561851095449081253876472764412634470093745834462245758802170769524297144139507541091001699074570448758277955759696828162080387515300490718179353120429637178511799391662206939284162302011709756448518571356052688185862859921175707892534397767973164745587992964860635610157104508072513192659112684360583871028440388187955212573196051824491201072508010741080916339474174407232879561475864729006512839167006609106557807859151415257681054900189251003733533111454342952684151835626889125513222245882306565947117896776148800465552014400347463687578928819943636877520206831650961328753930526549871997377735693859132589902741210495666581778002187723496136003844333038992703367533500085338907534144481108779453711958912444344097361703112889940993072178979972923416380501679981376104369593786184355675558827686902232799821808133144134165041246562311794937310736453748375602073507413585046868721371967796342236938163919575918397089790243096617678441809864036391601368775997874106533112810973094680607428709487904486112859365087704157818483677285299256557849773713862347397560667038018688234713636163836289659273535518557785177663936809198645209360327545376815468218612747162046576571121827743750375479368992356054125822392132232540231074652712227220614861751568218519796369935743725097227967254667202415500166447331059528696227534189962504131680653276574145680807512082610758451505149711252913625307122205720893815047414448939049300822244395510397800249043348314585337053314186116325696666993952193974193066013374723241045215678163288623892617240202985164570667620970676478035460118514911549480950698356093834257676568314665501332469096246702623378996269996632571637566997743339893219364011962207542330633853438408949695932293756690858391477369168887543509823906679729028784923165414292327436935112825953426597187249003229695901301188154736205107957780033350781722127785874547944051688246584951055342880436277501420724842296103150243815691904298161803487962281964176761942963454287713277590462784013811184019443282296453594665558138879404773457401278883623689682657258991429848817081716556289538949776983365654653643565174611750250454632019192090027908465239424751110999807205354330223223258933353776725287865337954150705151822726136994210354849469208862544363737644989059558589226873933358514991147355219106990009436013114192500748914965295873909137925420652055899279179945847324595184328191969856749069149510873675855194534614867968216918309712986142088421125354399826345943608350976042017844919521970590111601982319950291078551926968657298144730366835346668845267937990925272736611730282264260944105192824138261836196547550159476516920167299451239750029995481091941608824068349270962737527258740492595426583006021347225196412530116621671618115984349302136525212164074285880680705943946458524007488552027306130381081355139017506672005758866508100680583043635573786048239811502022012609942336675307529367746756545356930528391246681205010714067558135358756120231464430385140040862405034552539472719159925991363857168332767350488613883339531243400453955027322296377997663663776901232070387266211984113599842670586338292026929438892158031795527787300795311565674046235306990956330376650557150033742512811572083389996250339337477882848128577319376770872795242460844792215492813894678083323670543704148367445113035829332034349492618955961900183165016418440106268807582116711309998243696771496224356717268821067413583826248301890307761883889723314582633745771420459639992363023248386457241471804100079229918781994206971557770197706914898827641516301606075227732230384456118257227423155472694903464019651163320602778329944115373157224660194804257116677087146909688991451392512446920313469687803573636285171663970968673686632685497725924773591793007786343124681557161333378185501109492623315963437336634648737728161316598330417122110216870116876080098729729377612942423661091977661168158397597845412880697532019982152309712935488644049979970035722585797714925981505812253123946692907396827986147023852635476734105101989965479704173210371111538473964266712118339505380030369805869436706502524802018311984509528482458304521730958713704456563634661566531505112157388702383508083868025553382774120458810974372364886132483250514313130079218449484356419149625996533768816957774357345017775437462451818513302528534100483270437335679717212747252484628672519556689722357149731982718869673745622024771680803033254275489869511818149447847575958494914166587780797921139809671928087125656009284380073424913330096600792394236269997418036673076301930963402773138526923836408934073098381626603188244881009380292611448244569725963314513595861463230393168583335717152339569976467313163649897755273092679041009818704758782759297912385840866671269451133997050072417070962595066552194076277061673136914601942696145118822468706932950016525570485434164433128446004904161551687487158075219754149545791161458926658227396449582418129754553026076495015336966206304702641275685294511365149972405001873787167802834641984667753513053820891722211240603555204186707537808364872731922482083609784749612963994029624006035056021370300876699630317401350732270093766835859066892285006333341096842391769211421265467335413123590845165995391442181394730437102537935465883146884052854213830531729967840318714435777567438251874587401673767286369658275167256498150989314073578193619464947717179474745945468726520455803070016812163123367290465100547770461347836312899419346884214326889126695375784888860840835733950371460023791758357420238573426670902735714145098606008978244831992709072579305144565560885464633835303633998664922008284152385077014858817255227276517133288797946865320367790642588275955540804493416814616935774262540257914850373635544712496756778605613156920531891761166653650051853668680580310663798124783685624185164222314273385493789101032981386022730099300897183492224098422200201456851780636717844938805572766335919749035353046477260842355989241470219339799506131949512830936544390276915434226567490661475310398522799885138812803004235789636914615764643472986772481467505992862179344525179261182077514384318640811175691922303712710314146135977778792353317031146042731675993345985384762838568623879042209760459945711519122933477529055454311742300846831641702367813441323051102202834859588115977875504981823595490986411313663986802336252317393719356212804725528408586850109697142228035003797406494104627644940534169221671062697039602276023846135563412143101944186542278589522472061456678841242832664699435650745167938809742784870491735774015377954627621891025435426146996618775335722785543214740147705939853805500888540050912211252563148762916864911604055328491698235145170737404564113307050690760588771612293506113750349949271678266455122061361765856164384374522894979868695445239498729315804893979934691957046715248655182088313579479787270307085918920600028695140515495174756853808781193219292776554388030654070224467509761630271310148472737848197921505628592370727385402008687454528248944363001532791093150868275579043735972954151628783560022515016116574596240253453911064369820985469534725943539090185008077619891001403642913278841630041034591221331721238394002875776795398969215195350341303935147418326565485248744304664731223080069414425487255077440782857263017869212253217235310796532266535800106146168999495085643222230121358413014208223490054049940126779738760817381059077521338168476422848697032781649089740379596077012758314260159518113055958343873964456517921720204620480926716166773361148341409718447791831037807133130272781637369061224342758196452895890740122868169905570004179235124906391883707771746629416873819169959369060869738734221169928791178523163493967587862635366119351203244364533197375398427769159082731057738600262803836315781155606216702387951601765498723468679064293016303266440550353440639237560823523686073390915058450767635796411313761988356612823359121885463846620146736462235546368864018274701750424858126022593293594005414994578390931033429872150232574961937208793430261289766501619413524974632723963070355058047718397632173635805589595827733070846334188976344140016100347992365624249030031463473616777509643386082168857225029182627455152702954097996937848505729253281575975299831872713923807970237854024314337514436227164224825370644983789425240523181810216596629694392144254341869642493995759724064713377153384595837023157423757049763348841753841020979636486912389480199352582694072066538662693519797969553689068660739134034591439540592933548324003490635515056240253363927056690349504227183638624163191105593708217065958678485406084598104447475151676902138923205648957859617603255821514255387474063639166208496947622064707790763959915850185422827799841486446066362378155021591328125307864487846111051235132666542022480364919055328357057291247621739351027935507078367410548199785125283874356875648522015865080559582001636706552396926179108688504564220377414092270731414657150686281389757369591288957945634444694650931876970879648935942253164157305713875944978289356813801197104406377647601710148714672730111194782859827318250610952783307469033267211070418330188093223283668275523435503308016974390282294377645826326610212151521660428245184016603726601850737773985334467742609819344668698483312436413710495573131188588770807875104666866390680018464364199613035412900842623296537161443448130141728167940257023771224756749985069466475906159305159534672044194675594041934119611789055112658623095928917774387412291113326175722856080048185609528508391916270273941528236294115057364671085155975447858451798356549569885856669425616106159601751473091619419470589550060018016290632263767765607143778179663732218910798796332123290221400563694437527185433701137306488036113442548454947391980449229104752883340411812283522612416674501057678494476454156055580506207284123003826330665110262152571926589609944142120627667144439914570490309539766364932162243806281554934160603220767168329423318005653543946812111143515734391633794642713234784258591124184185457902435722839351825485612410322847244014129071633684652161071911322631598975504748615845780877174627456505711755474031068206674735080069673483082429642368785307150446885105488619458322157175764866292150745026892238682834933138840698084920945997195040806890925721425634350650880908326752358277028062704978598850183536897782174671139000395031887350759873431356603290874610993838416743253015760895394315241906832106472898034095702394603382531963209008814527029891947152222212735169571809509679513170646843306640914753257614700300285176551672873814240623044298605124067177059140046936152574538801084162735659119992926663087419743362770925879894705738245640817932736286827203501269302389020601062820901044084702252245792519115946612195754449729711839285628730953115497541397408096696686231388624913900725967599988476016556225442229396284909502698136171732139479715010509890159406824720885441167607346569421471604623436022626524277978228632647438554798424890814471005281031587771022123967963260394791622580533647270954314088527853609705411265568968280845065131332813388355021430130621194334605447544511664137898030340620074881837489656949164550210769519927512150181447911395630238258366549597338277809164096623994285356038956508879108037494869481914358502243997847465442269764711873528524891989018888345771117208038053175762380982230397447638064779507887020314724839419548362196023386374739108916451891267826497038898208974377523053638200954979237288719943203649461005373503671098778668466462055378059957642981163832312084432310685440272725215855820744559642778954136745306276947577497474789505413655205402358464333150817685137636861800431566382004418414738419939873190967303536630702865621131562941176732759248269462396324259089502921234855110441043167284565656420424070379292306090369388313843605803027042830180968473984127483484039588233167013266942082036649236214921034794785036025684609881456520716230730922611364179835475462327345664877574519702220465351020907793210893903361840066443765176331567189358489282261160405196056268426070905426177004923950623483695958855219080020847668276712563958072463910513491111264991405950307807187526487407687647489437283538860529676444122004386958842742222394851686475662798186937616852902277793617137681449818467891865402637387277217441311619245530315188204866127419605588833220872341659637257912372453094974789490036502235443157026584428496626428442274272540970823851471549698226649285092480117335271807655059379182642742576463818710119149466148870618346574806502730092470809815205314176560051772798892886622146155871722137217235834237036017398745119824583672357340103604927908894990389467073399502161672061561290970661882301277800538787883661353132504837743613655118913364159996066024235801306684621919122970907500563555862853593546769276332979762134596829427080746486152647612298914071817833584757099364152284098700864441501535532352546927228584633421836611928889104139718148228514180496246963685886619231334053470726860022801453946999855598364782004102790764447876557616484264830180617370544668423311439032544180046902854426873334039273165088614861907004859634799954198942706809919804716939012545750127559894787119129836679786722547083199340738066461018231030952409069502927478741646668874153759179323616780521077424604472578213561131575272174489309679785543240770861569902775184767891222679097711371594976413578214316283390291506765644892476245960453606521692422804997145375598043449238199395833012718738588034209583352829928095178458718132716619721364434701700553076286897162884599501866164889180712987051211821254122486343064074955560188128365091228583013675576130804122139141283089150720196936024555793369201468097769351299599518743368978058880260054455089165513217380360856601178764549491945107976462255088730204759655543073572157226204951463469544182922979249097544200884304344668321555612935561824494314809101363400106574680713175377932873799215945146150317269115072688452429038568880053554109489675730037479252898829358253432701042646189356106559911106688181784586073497699372451553311647762703328110642787686865865575683057890282680818408295115561514565971763372433421417441981029263046442283308980474601685679377869108976230875045793743815883716760424401993966915892827656848367822349364874853846108852197906954081353526550265085727542773553836163858490155333392903355380154393186302581797042763278898290626914454296323671093655904578668516524850760687054898888025974075330514534710919442317796902403968555985516683505138659774256579120969175522021719113027954589789615746461150251959414554674327150354036057186489554082983321227833135642640692634953479823965170109693723340012794037598977487468597663505063407897714951809475247970078060866929690761229331657681956838786790380938075428139074563564732370130396529661850461745913098629307454890244803325755692823974264262601974361978877076819065787346567340172146595976874486024307407187132557384346928714288263105643713058531345736311190672979847070069758061637233040304908840479822795698158835544331376382169846478375972687672744920515369693641565784844384285920912829770690741435487340600482154023409583405383717793335435644989409650116525188079350236957645611479218709395718138074642443916006951829048527934346362160441423842574110294544118736928369387315302076273880119529220662475561659605828649479512914261077605402767981264308158729932991624069075933467532372409566444577240665538701245432931333967718095058623071703989858868393820463584683369391686828143472826747587040362286377646363228321726069757537680613309882337474101125289966941800184657174865465249675516540024500168154424622569226712788968149481334474246937893072897571834071159729922716638151426485391115577084709772218353837981140585673915761345252580054856871492717061127669155343629599401492567333574779350092279721572045759641081569663121353603092584403638609022686075782571839715927131927182594278835801738685160308210900387810292791878832542793568760995325378652256939240630131280693272740339937880192865132897162154992530626966040838746838511005541320391888485465318632065625228558346427269575332918105692660951310995107665453759709944969793656469967000408824135882541616153103643697869901697657367802850282688809770515145461517539950380152626768200290821384779424580972344622779021786809259433817025863578076363073116590463258881385281289289851828665063777058868993865671302899093063112704908894854607045583279779803601715306690373427330794151004429032446343065698306252616387826978834715191157654014813739266802333545085634352612438913162799508475415006449398391203516371729222969711517558796991463232590263394060681854583489711854990536462625698069631380477846674310287427319546004710346080652146418416681038209775354437901702832046703269650310409713295625637505700465005841211771339364628454455650414356037605499332397240394988286677697757923893777922504139353042032418278433344553650296240318302726920693769463203087755163835710365685638409577656336081375232886660764102796818979637753826640241557661809888285404929276985692228157210013831841896805300018919374950177307471981985862096761295259050069712927589031034972520135836789585254775855778848374534609633780204251496525764418397342366936875291575685681005408446397119720942292045653772175614216249886536920310419759830860554482094164561272110928233427809990761677384736005925839937895123067769251200640671013307030375131031141912900993439376007293637173601392612435583409236862083587393667317966463253987148928059213323971020763883954400104620225159570591162958962925359985575068253564875717942034889683805513321514130117541679793908427179010186587120057661359348707184301249355459560938660858903549908309130743016688218032152830331423459708299291684312460788154590415582073637012361772383168437456920405021189269071436506644752846272674998874704851148430061114896671822448639023666675258464291052781274044610068602031856088713169879633593879490218859669323335447860553228770966704208590245833088903855836995386409896646535141862987597891254276510030111793695747095361069405162845607196646248015265788125556386110376257806997281419571963566037101975794427466690117991642670229387371064863560735887903693718600565830654173501699298917395898657847628869281298300821574834938597077447492929859387198923694201321134408295594333248689332398324117024434126212437157496565412636233991725378194003901094245651506752630568943176902693253856553165508068091508272830954553667385448569615956862171350644427000271729350522275131770921460853245374154550148910228728243968133482907609089002871485449508314932848124122453281595767594591104360621091954405518624680602233060435276413162180881438299618214046751343109178578866704338107858051768526589962053539824830385347713728853414046404937087005750057188353190162704157960682027502416171087456633253577135941485359749177237616671656397728678811488192472145214087095002435087055887165422729520667775753783234721149325203050567689093094602861713343766042943761234260165462869578361472878346080924327089701215647166141898738127475820323647940815943506210003411429066246663781690024672481018574491994234646099957143465959905789641703965389264352613441950416803495853397300702630217210660940044601753856761759760655612604577867079446029398874028225983985064449540740246160874540970105700490619086980796793699763054041244458480377203000679606130411854058501780496557636779389566008453642636240943247839690947272574533966852348300585411866014344603582087675934790488147409596778301046306153874236864107044412861418614792495954996949420974537468874365387109130811800740703687645054174190239082372233237781002079685617714110709128819663189910819718210373760099793920837399449679792022245926390157171072548185455252942251259524768713305504257872658926825731397999115367909894204122418743549548081139939485288132530848237931317767945054160996367144077719595652775752866948947908690773827324011109029765781453611739863887756629169207908453583074086259523736565660056209537527461110853987763008462158535653817532148993888340483214871806150650198670864992300569298726018333711810311722321963352940654899435981462676880367818766249421595887463616486354504773028182679246437419696922077224145246918443311953120396841264368713572919717087741627836406717581540921466364624748672042739375248683678260911046411675574971750738808662007086187079373800768408195677685875374690675788482320848717157162646511368449222146861310656960493451560580478384927229370877427970027451001816741339328990486493755059828590032777493722563133477620931945333936396976779630667291728306782879293064574085585990501337578567896605996408832726869435705944345414332513652923208847336873461222517745618895465576408373592884450385301185585384674297193621986704376189185909629412258041669718272385675621657910218949827431091273574316774734075719280391313012828371597196789680452181023249550397691124824879894188049544817443138104141528573455752306255762808347768934792552700217081209251642968632830869162494257350861524887523487929962344663562596374262597122060303475942655159705423908857833935907782318801427769382618917307120673543355962175538726814928764352486057302338205707905930629013505217998977394471434249997112557930624327869370366707347058102793171806293843396990669243881450651584504418884600571508146475258677953675432883168558137518314008657157370345044507143278909396013152057750770798645467560904012786238343519972552159076984431894388473665980679261900604548193627714327167611813496990095916050075819360539142676001609478106419547038011432607209357317357679140040830502683371269054649864348706113740381533436524835481946594117609367745342097045415939473804927717509587733067338478647812437423049608612259793462467413142318997063048283534656214057715138754757445857884237731326802984120169561392070079275304517698565627596127202763900410983264037433493233611963344490524178916151899737817123562069957157045018024207332506439045970162354931599483231902716598522707233635517248921734001234035331169278307933269727837416939429467619424490476481297377250146787287168011364994313795707109747143567599482144867691718057373066511305991240609751299817482210012491602662325581739655454379586171233265729054818751309747564111552551710096242880592194494356903367700717475004552464152673185857056557381591989920134039408767224291943893075962213310942195282848867570873796487626045597903927107291808891937423254654430015982742638331542987585505819512566914080363536909430276825510289132276938813169774274078381428070978450599512339685218510568296451509486718256693372494200622452424413885456327552282513400964522691103796674035944853242859302228131056030440301041854563015508803091843534064937760327419758145106918955240278574371586741891397691709587757709191124428367223884413410191154049829297233637693460447941236385665284727455396285580011765361092444761601826953184031488116422694425989420749097994436533176638104415588147343947955683593330830535955570957176751264929793167679173075071358286455299315998443535412457758712327852020015301139472522224530441550615745132698714478015293434713938381448578429549604654140919820457771671271096304980353882862942665499243029731969859063832562095877008533859099620568981209683623552111229675790396795003800941620561049001121770853247729759646557376917577967939995283597157725737402472894225858091591642997570033412256434278673204689982259327696886359570330059840498639323637003371895662161369098243458863059479312105842715864729966150401432269812318054083489312097425944856758863448195652219929849021186700838681970656514579167906516503601661442575377830159015116896557999935841196685279294610058833233457839160695581967893928941652212849967671960371369562872522228163003770445831689255872704674774299282190608779364431995962096830387201525481504873668816868613451743154493883247884259448165842320938840881508137641277045321446542709880444232128633966757550054986258395688789279144060284424312864547106754594225312986150536250992253590442443221977537140144038598826446266999884138949010351000903350279612385005646547921442118276392505615041803472116798918265052259614936980952561900803774651990302267375134534101163202398209693902102767064618446863953869761359440404552372646177337884358162120874806103455450728665695823713770504432449481811863425353443814537990091458175497871865909387247781288122830091238258520442032347946445045854784984772603511554304214180019691407931511516823139439021264874279173941111171542604656107128792570834980818812033859751167053931415038899341825925553222676749826351850674513355482056562716564361814410767707245157986348973667118095324207541060847568531452851335469339635205868726743248582392041858431471723115421820853913988226518910973183500955963867743031120796340938762885701210351118272984338408262105827545021638625835388347518160818898388757837371298966184279860159547849819318916671772543770267107776051953803937852861992299399955330679388086521084925649972973396991801467635399820638928439296469479582926740079037986526073930426519107077564209639125531890155256708177004939171188598234335898597199552354822697333253663548160797828557815941170883641028421909152634444210023791284338096614695265163944293444112797099117245857158564439356390323031945274645333579035243555524459968075652500218191372504915901663595531737769543153692992920605075936432176518890711907041584307548606679012834932901131922494408310206823189466062969584623808191500480185202230800424648007455038946040122308866969970227031687053208959934823763373979101187757365234035467977979947565662334270206533888752593509144492534060743766079756661597213504464435754844305323009851500933906175674977463300140742846207141082303963976863143216355324722592433329748580531391843440911723166514117702668441833187190906481029250983738117679730284869594209817915153334569501808660670467428106768062698990757900769340371854291756627673167257291384571210485927001864524013076237921899639909992866066662596985490150365291856783524031335742107992908684953090298467501623868076491602725841609378288343619295687123853878276101379462056764805982854018377416790923588964349321001503101407405650544463957037688737765858263606832668317040013174710410597487197339696391142422223029239741690468966217414587062610540451070732340075008204181206075417791766448008458417332574023955205341405733426168122979488120903243572842810833985770507117491250537324930772429416524985070795667815808523921963287663985770144466085437637628755893580565082459716996985481347407409422896399832496242513232493870053264766284988820334332143254909764717854538178955703845696698946153399627772164151650756952243017683682623061022310292506384798253571001114682511566756539587324229617960595830083087237168947306987720998819207524625327394774687869242406073258316798203294025394573126031845618396816948533987182373458548061897575570683179000563059749987535656715802008970353359314761984559755431417065889972627051310757430765261074491956767309535606641836263288802505481286631690223224187847291636654837478823593037220919744801718257628298516461823776835736463420766025589506824906364912384206273692066721220389749902236346410913550976770812026860402217878533089966967695935072014818421134214639524920847277922622198318332009031003318401790888849878141758727819427457130277944327322211271605624772764151699859935071556519912615613334594564282610603161285172117309557071394617610612202295363252724915156438649245679923687482568285682326632238378137640042506461550281800141514101634109569016302078593068663343801020581105688831362246156636747144702671421331625023559324953593158306257086398484905740825628003660853808742071650829495116724371295426662655880498000376830046415798198428955720117037026385246844379518668660137563175768577351861033841829390678290729297272653798847435331074233015908650291964080696886236347388562322518237198184629909392912726789748642657729346355990335382179678180916224286162754166860572990863542725215321035527980417216701398721671667585374782221011096351089192401881899991669602625886026305617192456494088468790865488728407058309020872702089619379334942786908049019963686835467327652927444052581131675590574978239419028339446115322753096745304319685436202639572084189256197685613952075644150103176794380060985636082124234397117072838122865187534366649729863499576901446290542455300265016425767729354082803204370732065181783464055163671235986572418514059800418613301059068369538999031368278638551359507443069742744826018663987191245515228397924978541034323074596186487584753817224534020765491921456538836928822453803293422140339853826228968209373210019038144008223544048446534914517592117427933803688753979331006639144751280420993979502030485533302668879789425041466266554330498963766923979208188368485018008592586806974507631395810282997261863641706189746024149362662984699143220854789944964996028725002670581816300358822463652053009013218340394637490584685692460909726164618744268690988196403468653187512376448085074055522523121129501930696514303058835529105592527253448824815540704101010219345835336684922438824302616017021269436840334259574717071207242062859882978591285398298626421712373587455166529412599659154454878142615206637842755164227251400042845152217092606459664328046291580398331302220918595820201502439320912884994187393086322088845979298471451782117717029747481832201644979515884678584713696184602132678892560180445072361834448288987025266107466923586477174299381479551356191162999124171715826638305422742686949582729975991208735114061779487912847179694084896106563502143709667339590576518997898618157843980420306788326262778300896940430947143257032638659137902595668420203777966824747981801645715826235126648421059886481175242877108338292894095981596819984181488304170215355546491485435526964902782757608868844937954732813910897282021214147688017355013345646894251786604346368481685637723984007173239503289952517977312379512856052120605398693960165381440767269368314873867578369664327385640662848321083251098785340397308505443716277251699135633718939409496625556844041502412176990757507279594494337009400852784918510814715511307049753176031184157670365382368283781346782575268107273218832158602959142331392550859480314044270138957265913500743082783438641597306024862499250404522406997533058813696811569765430397501309940281159511043326841850789423802912337957094442778662130506658559995639693827183793357020384582756182436259793222123464911000844227640801255180535985019270595666274177023125255893163171013644523094668859055614250029166675646858930836719456005367434761713596053390811439947285566761264542752468108138007622169718355090297313446128248010976150987114238482196328319558368403872793626000355963820068606821078609445005363725202422646766968003069464948051765068585268209696784266953660914632668196505423249693500866909035083412361731701632028932186153133198343708413024609474545923376510266393626385779557615327313391185784791144041607667469415284381703104434475127179062856089146082671620776438646667925427426243744430226217364364691675742548116046044204274408981002553839109462403913160019421868247057380531499907956899851202013660921897310643294309014838079699440242180418300474437738642774295263900131193305692156510497694851792783095700188168119641551318539111857279717158853633828356923133197903980183731101967453670606442877053603144452848901441967720362414534237116281999093312258752746484945643730135646636833640687377802021575400433856287608924996096870270394467445919893361626122693951472533329012268998821174308942669424455961768947613660129723013585747965661079208893289166629867170084800468064602713977937888085786831146066758583499278896409044388464413834557223607147668969513741405300261474621972165666959917556512884704881672067361473944557482141246521914129276549333889374302313034652941759323937543813262123891588358510958098772436310547489725811583529838121620944500661190478848399918781390482988923509777261311740408471575714538028687703292095500014515109842267726957836845286838964947441285275916094721379598830873395494054264577721062203189561441872708722919900518981963612369494056133389639579533042249782998683820025095342487492466512159862172428406908701151255375463540084804798449158939734830923655197831899701946330287403975977911242655696819738623951602250284500223810411022592479755757495489320696303954554665094513893669033606955933285174092486156336406464056606603508391037266951519256189952805873922721083561266118695917870461071902236155048910321339909476754457825354299981604981822347455797459508319744791049597956461094970722800239423133381264911938499893214639380911965209633560009511173259799415072787503615878045681385931573327507853553029842777376970244282518838787976848825751881693402681315141597939920429340761717119702115487743372640795317150980389287328009389641012302571955936432612434179052983876987972660929074965360984489623125970939044143157599815304799747072586277861540064006983827215326993358273945224324895739374317561255647826363104299494931036118978629494770026685954815872055257540291097923805382773182917916245915099450937725504663211913613689739226961015096561779089810556770266938519797530879067929911546546374636100924753614358912647195176166717250233310148627396030140149573983037609433729712921772621734289563371753398614074738722218877467613829325161176845250604779827014278073539484304705183569145291604461125873272916246493629059076152828904982582755801517677958641807734935237573593493145252486472117076834827420422415176765962595218850530446843884091957680933391656440844656976510993713549782247500547179509818032501900576462476375170216984485083147168715438673222274748547672444794931045754098737627053053523710207147753235582502700469631347277987211733158028062817738355746725814491647016453423886273279922951590363346414716657055016738404025785426401425208577643406576277335419377366996412917250607248585227943763572844106837494613475984503296748803423216851121273217776634646648028825936134615039450103540139478945754894649014506322186932867973162814794982824841437330485160942052755227024203083007474898121956413351358718492413748088869104298167789664894006714781864255521457634054711870232388356472436699721694901575070750937318434879392464986937526153606006517998337039273986569746039292434722145550380420980066592491871913528671317209576649728394677590063884281079607778148912753670529824133124806205922336532488048057675955149954932629258256072384788468987972249031618987931850656051575319362499266094661551978958088254479195329305781537750064655754607441794861384208268874097217334840519186436984436150161015607927435286161848186411629926652161094754545835189220486362698553118411706141508645745628487815514166703024116446199193849574809096730130132528207952396254255224087736401154107072778983811502445561174944728460068766679710828485885437395769296105512607946665529333260400105504125260150152689353747603517532926247573796017832646383252406070376241950903459436372225783358771728647718463214749808449133597124442890035727620350213588949468762262676228642376477695099730715512536890021539284739038345722710400749440817517388624425270239120952839467679944324321832002704208668473386759650505408499379362261949108897417358595349354078757067802773130117072214295866358639206158997427370218779920561700078826081033783846140460949353066883304542383211556139298762959728594835569560600299582171899346847679186678656246034483401327861363049447985355399232191487544181219916265285528304226694186444612031898010498891571368075856844981219959938493890459951716179539188245500582272151536858148833441759235264886262345778155474317596764193921976135126634774654475108058430159578067303696870737148590833979200886831646565314800645743634861032450672193019838227230749193574413296207701295758073055043430510932220108784180886094194404815170771179732757042589943531669797800971501465376093535149576378662655871397748531321796282513262851658240973064371662634608288709874710194207933108061261172603371160768837720665321131406463251140998067330552500798033103247614413864322855269371441980464525868023066841015948957532038651458073625189800960514891817731780950201662151302143475917633686467585430351060130028274367630300299045235939552061337448426689386677295210042771280291436531904586261562245275328834710762614108586852458665222798268011592735798802907605846443655087146400253076103749136312330308329739083920583857669783736363310158213948390110387498676941129396697565918940023880130859371876274283131713917412089781357545773468090303329090591237063525146105354344760370225567059744562403956903346498507814357873516258177283210624935592182099412505657272453500351840072758868218447531054138868899950313848010596770121533043683275356043364198809707509783878921757810853693457191559805863628598470038156566290421816926702707069868221610821610329321077621021943537864698853702334221522678312970120356173615937988370864978007448386645663957741645344511113030292302275997450137548364407449948190173824930100926782195036187402611422640470649440081654265746320934464894973063669645273472983499113317500985699425984194824348321802101034809728256068906398820383493638142547943688978431902262469970345331566731264046157846817876057268399695289501507207484904654168742446045107024020434365888298765686833512822808855655129760321229965365997768237212854383611755309530590768916751115370620149943914544272895840610028113959031915281529178222666967127075513497154322058887209846576879446426158448108428637569510005916831057933476207130915091942778657211414511553902698673896445166605020907308885395899139584834082114824216802727540083896619617267992251055481186097652512443788954193083580106965519353948738520343351570084206172056319094635955187213740092131807528058852370542582540126719655399974239590592576792705672935242088645698487467305298968247311778132228461081976447864952677634020330574917726480257365297910673049768954318877838739604733908452463272260375692018259968756091982269021932844930389661750344528222334687205573918694244410880023534545991839541251387131015839352184039690347503029620158000737530832629131235923818626617984612903225577747891495520754769834486072849635675234788181708684768097596406894004175823420830974435063769490911050000109984261266769970738222539976224231381358907766227819314908666081957492783348968672458063328343944851249063444938588814494800179589207797739530156827811465866571617575234606525173292551107749382683182587249167697941734444527586942112687643924530944358628397815465718623643583333948198512760265950343110876770272564127720123554550490360680506798253024471982134774615414379355725186657801297425838464164581576295141398743570175899313003101958834010789625405383308592067296366405379869825302244466499939481174599025933244535541251314755516184927756859277773912441860733148533358373991796669516224314573102423946205934802192038849092946070076370847030394206008233153600058195733472182625354954829015629526738736221695379143717647827269317122036357169098526546996965553646563073167590237216592353123111551565786751383264751691410970529571815773633606972644484629748176277450475576032360250720629627375367268642495381688001389172267188252785136183914923983141466934787660723940618424247322374072705330505785533473388627741940868881164879995775831871706681012004359344798738750094302121104876794564010928176253129414588500349355794121094823867858710752070105584254338531299156230201199911000723858942857928360535084486108501655690601670488258690337701199138764775881083993755315259159584806287264739138187745534853414419611248504331437796673380942265409483739272379559483671964784517298186067121435072678935578403010436042989597593745350725831394257495414801415213769337900492841847279915960496759769817542129607209452896116704550632868685673429811747944955469004803783450422795400585292530546193780894881732748085216816407445872739443469356991767640891153655395512599983627412418345143925640473756811467547041930157024927811889392489666675480846526526162902240132525638488857097019599282623156723114060012163521913753800080163633960151652707716973319077712679733606586001258524944005659792289124591946001098324761730893273654678641176826400878412044967358478525704121944358357229424193059341845575199830371242712127562091619363243270028952333248917785719087938313259288740302399119943024159661982631785018125838999144069957879531508416799608099549456596143169211830804808705793887791056402486024424894867168953759700596388218898735971421381792932291352504268080655429682077698964880682666999739318135883476699281027181126464615812368394134263265895984736856475351792190750565910899944985475100110119524424485637155513549012965120157696245223044831684366252249445012762999134291871116729961195214166656368594738533795901696816898745669183883444218811337432630402714778595936096389154428537016622940033057367766682181421477444695454315212462320867137534229488871493775379235504091064857876737599457156265571313866260341368588804569457593206378245768904005262937798595803782865315133925786556718463649505962389943971188011739229417541461753970779243548213540260249338698412453700815421468440204623870309449735793397201380861457514002001533341631878886158527428631766948502051211441200117456568150456753760089681006042137750229881699992497988114562572124528078034197982532898517629433808264551416988465375283987459105319105482134174613351147824939372960208353925588214874112397862124077232146409040252608649345975748219875496536126229382276722447741902884770514339327481207929017944685638951844477747579540327625084696453415784094601130789468840095298689885151726140192138946589342068856596511179814742187907738802412667566683516273695305079278917352864401242015344255293095722622942523678797673721221595897395694560540397219287279273967719056060284487321767979257127366361251560628165915916239306897650882855685269787022068722770825485628949680238287613664253394998534829628211058293821805471686521487045524220863016683469188663419445033987074680244735037796036193512406310470535039092260587403630875803267084589450857292773510530943691344179938031662795675290559003540223813940440106676150161737777378223287655186409444980670052763310129143233827719369124496338985374410530554114277014066501562063741458938200052545787317274293039881277054648990646274227982005143586255402302669686146889185898166217206117110552988814695280692467403639318936257930027120762388079250941098046371427445344722335799069736851391626814631415830268753318986661828220573020445291666701261697375850918926843377614799756252091970342798312267840027544110624244131188661178667431929161288394872561103713178224894568746935439270977896789035250855850135181958266280745140676323823235289342701290714856850551049918469899065344174950068076602525335415269679894017200979190805126747754156787022402232726773509268483666670263201628415200502972253826038197637015713499869737935960415747109596661857645137002343729379959990854598426169137589403625221482939632643784397018627427267387566838902811186685234357384921579683679368452297589531283626702644115757729312827662375507749580965243345682000799635604281610966716135946751469491429826707752888531883927019134478814268156362630084254691062498049373025551056945835869231107408457977983718977581076387040159258804145113068607168151942122653841825127543028323514065492804990618568797272366177427475616687945504030371233880459810246194071456121428393095182401380024951453898910328462386951344011023020548879687231539812583262900607105460891836067562445658510187099596257015555590567092655788279597526725366340771160900389845414089392719417381844798476086502171017376635222920097441341161395699988509387486180514217573522728472333227001189022177100036567601097887327405044930856605142306397988784175604762379714999056448783139317774133765168221186929102380071576406582662850869446856528011370691350479924566054152311841122548179435043785382507745517498677569693998295469402994697955575403638666584272799140061274640192311590436243758165214233776925224594127207767230386171987248977380245179079906045574578601667859536412105070145829661035234977044347129174441362471584686719184627485703066140762335631675481839903185587584217923347655443391076180612899104703665888803502691235001703133916296619226533586628361038570933461444187230210771431813464441351772635624273957219937557478832104987447376744554740662357023898789466115580927525565403247159671458304383285858675263799255182965450545126090427714755817882906945251657096003517748053859810787799838878144637387623092670662479671285490629056624897859722771252133730912616134221902663901793152721283204400882193936836749423556721594347321225608410398033408419427739215287444492229230682869469181008857646870119728665757151643629616553083418495181741614382425736904899870662531788252976225422529590654469158136048189056908300341171758720137658522061152618808640166665371691926353346798633813796027749245675301982472525722534605690591275433702618848034112462158323183426086322923431959590214489941108439200304402175301208681954201334453470882550649815298735394141959668314830840199666596596689283041051335224469505311786012017632618148350375935181344236346996421315816652704336522631668459776559924605503334524525676901807568917310353527178550957312725775328773622878864994371333343455859986093535594364110878015346962704549269787408025830313730460464181835490740094378486381627298992957863430053583335008748876654699774650160684510162623270781973064770004954918109291969756375855839008206412498396434277866203344391443404269006619988135204938013794992318526714080373165053291389234955104485794852194473381406556614804751627431634829398350113793352036190019352791561216169387948890530922721688080402755601898684844666245091049710127775664273612448303238690442700965405144913225749311976248152653195489421151240022573242069299701630442606164605331064168899723997025491400947603574159062352023211825497717191673362917717182810755775641176397427712169573382047584035953696683157372430074411435601513322681301845738881960043478024268689947237545932071077275620147117392060952945867205384109827767183736530021377377813852660089805424847092198086484437914330058304871318255310359335127162462861116322980183357205046089075150689529246180033615220594321934023734726528612498450161839562211434984398654222419189452486943565983713114771474314273753385189548510658934597797399408683976594676215260238676996359640979782198620426219332378185316947803897069090106977043982448851081095107075689682566882794594884764014836747309672808259016496651032383060152380296457724018456863140407649503991432036894090691400429220860343237554347968013883200786374401061879366089871523444725436209632240130569454418974251191505778862385406122590479329655264157250842058088046397968611547142497367266649806720184148189629318648274890186506722248663296085554770251682715977491822475506938853120787519429255740582404161378340927709090267871657471458270145593209114593873538142545381879352117029778546942937290342445552095001283129322484831216456872696267386124013111494434589619453386285469865725715283411412750773984133914946318625519755599884768858365866852151828422851343201877295138795721989975297069253874173763216408689338434714237374803488582494473583188906678237898003066568516996378609243913656467277174625459639085641842934410166889320103393778591457062303626860520067823837001106836592632975289927414554359781021675408190938822243046200005035016663197941274696853166179659851540676451887880247586437303377774322493634877720692043962472208977759532343330747416085900634940768552790955243159672511243374078912996438229110276585545226906641837992359766363677455313944029312540403385019782643449524687262612507503480281782049491929553023135223715195895272639819348388237989087369023158063997268429655763797109286321310302059644991032089295730903100718685164985877587727626027589305453597952339690746315221723232426962993906063943597707249564030007346744919415576425993812314510438721407605478457490084201297519694182964217960547811044022445296302425746397361126369290274048747376222056339345573435410373275378904092373495341311522534279552417649363441379725074567785865169186778015776165614627744965136537829731405372291658553862795745596994825309824913020719591011098936677574255500321496464007671875518677982939699601373503784499468730977257670727602840090333592100192639567522119066418426409028195202699515881352778941015751859648080869539537707988974037738187524555389445278302565533093776463666435597552549300714670506144407375054015002792306460859312994902366198800613491873701664225375019578405165533688553907766899710780349172145059540588247546181058316039159422781626998724131204073049273368292419592360099648986601554538619564897710002923656123255893408562074377742872835921119562909837073734074818257696919220450563882737573087473003547321604082524659576062486555565334407585468693301095677854610121218114887780426140344025144552287854876544400959163517866097221435758338156468284229555623560121744461602372618397018073144300753048168727488039410455312953851406434762378003581867527579104191738086269367605490825937598303231412132305477799048537281364401575920489946853553300800546104750122166225180142931104470122700481297321530080955961360018699624843916869870928544242500989687842252938849715691064256889062998318584205771857432284787861507335449011093781639053698360771833817057934915900611974810306742903890665809148402075180433884368787665500810030404618711080301005578906555288515402877912245621106267390811735117517553755733503601943606544599216298051119251476663817953520139454456636838153547102408487163871643372100640210713664871796511519792429447192214049148519610429153646890514850898510258387091042821676627458887935832234360173949704461560110848087220657038572717771792661762906833465764531604377907169424155058315573652197916121661169753184452218507772528075121054332217003433318631334973262963259605981397542141812013762979613287562280897514120792128086794295460945834588327810529523993265173303042541811821959001631782502907234413688346223172409947241630157981828145091479861341733113210497532892679876229333902577030000456207224932554291480446937606128252812150316590000409101468705192648853542461090543977840091811494527330021371570784851372585343789275008834459832077063513196751196819411181063566680906208436300591599410096335073549507159040669065835619855868632045984579077419650908139139541033738089572415436662757431550424963593238964903421329025598385913887908586045977015034582065824713495067457762605270048875804225607689160908396625097760893465967095484727632069630885385082065452598006703830138583621454287568958213970662094181876526589640617162849007105217672261944845441159379371492475742941961630732164883411786086694090601319330409611169130822205625387645280087111742310772022729422672994319546647177454888191391080157577287234817764427035909601857862608245139037984506884062604472975105427615023692584330460807787514129318904393160027735144435385739013693755529445765132620778943618393422849151949736757114451358571279300940404488179967915368721735763579956413100247793766112990433184097958672191416047158838593119669955385898866819254525512300298085358091255161808547453947024369967857104760779850338761957237890220096928063138112479000268586083098444418639590660654627348995547958438125729398130207328889416388268841146925753561769345427470028633584117630847279067734568655843331363887359811062466547544729602926500319471114416940314285147898346529548700241607080956744445572629621827164469404315549394191737390199654787024537954764163525120219514165886423410394880353437353207423518395672058871563342623020512297526305937062856242424055522041173042645255272504074125801365185136406829470598899657656509141578976879434520659958908571627259451455320018500883178228749235991262157484696137778811152410995559115099290762209677257755617834740777265520028163623656675231552632764172574240119552663481234364841598428084372877791979579514102770804781666000420489271313202453183129456836102315705839281072251078287258961454075269713669504683461107414302323041077809432329958609843981386378346064679527534301510247598801880215289653339099242903784104145545381289820320876203293312988478009094072608215387488534893358548399153106285873822087947882599626835404139754155454442991575380614891927099641424983625478584115867627587566761189082716135766696267078609693996485056196808939153078589770902439825773336751471518140021678463408468158946224722977966122641337008693949307197453668243659242747556768059126588081215089436213787955989054222474743422602814336456251347977882232032925025267849636319801948236312329943288274179486530283520592852766486643080931500352864658557963022173779162201574966426980095163847766255687596407093905469016829130715486680927066228001061606803006916858283225075609763516551538594892270828103788301572154797190130095803548491035683005097276554925884567057543574050732833943322294142121368422421932493965387650935836086887418713711453526316765437637282873922415232976974071840475231587936746314643861324141086427405932446313594304419970650636067687360484251120246440555381323009204241021430397435768196564764682269411236803647392358049117115268603227738786961110517692157271895441585012281707613393458092395266449983571090008441005965434422927808996696982416490964567908592799461614557951041729461637051104166318254893523130699829510494365127887468112319551593664322844977916297125922860686979546114849342521009058332588130916562896125706071153638256547665161937521661985235679664765257148772586375320641124034718866074157250455032869951028948680978672641816886946843484494207227682124156829153983577433932471588942716143735200874973320479303270998454364370134777308054140604338060520237058969593474488003577925167122536238057358600444827798450050204320577155058950305563568201057533227060146431273717889633705096612133194347909726986140268720130367548941153141836067516261751305602752635740254903939323060988449047901132485660165833026028786998890026034060473654520826003204065400218146841747243563653195598370220803665921275488346172540990109542732776464888327309911221075294491904372715708740412699713251489400042676449503995407520665214125216731772969910120538607267216722059540528704676687010216772596533316344203011991182588484702152589808038270087056409637378482218087178089700068629121641829379886200713086116417451759224933627133864639933972690991390105268867749683711380169302160887400474443627556109914518717412962101925917145620075954964198080839666843700073244561904512252601178738609890229608262429092792816169544666951612214031427935859048025843613657862589175078470756835011892285648907216447524486942512252214570409057437287963105756388911104890958811602924151510697834324045429001549399424129373426621277880920583777177464376054531287863600933801505224102716885982941959840351209702943404692654059391791651004040935325446394400916865792752222921999332951636126382634529399673470266494175569471626600074001353181984927800686736229673745971243241974406643629717935067272247664163874174543065619372094540148730780851772969309471417907414787354236247667561763828099980740875495732202595904276897511573320732225905991866698667294581779786819512288465000922432027005279885889503196504689189861108941373496740788619348956232502604563005218309085037399774604520195054264540897203785975694174663734157430186802279940889884466133109781777987702034208861372756627287693449668367212116322649432471164210496357699863199041287822756018646710730498495905790526322893597330649843223141548408206347569430140802213517355965850375310425109232235177695056619998411521032033873866407626065330433683073387451773891541673462764705977220612967617199677859208955965798894314559468548347161685963060935385011413554442147824765607164228214726140373425096484765215117423061306424473933699188086517709022145093686119658739227312482043484826173269173809564737635033456848757522641131545194641747752783152889844048359966761337883922321561113522210211374441501904812731465625065534054002743330847959480493420804607235555460636323791847036861243396387472595999971067204382332728864577203560965798136074863925294202735090990470037492843706552731020746714740278026539636552840664768679698838454677314600544270374284327099572202351681095330682757922387994211498516684671007528711813082009059451861228052042528828032094912720441513742566695325493576548649042222122119853801738986812472057446325806993237120468694028722567156809309054484481268334819538712294116277432736487213339303647570379562329386151851380127492745643098435029119417787618414521598333599545360568087588634705191976723003279805747743354356527974737557455929491991873287615728722407406071856488609429675293856912012491885447960744562346135044369619971689281125494300604466492690875032167708089440830276657245080231463241243313421009645267892933984843816089577449159842976035128626511776692533391406326915382565507523636017436605248855152655445582879879529302209546959774133059267620384098174165111679615304113996866055421252321988545940459418742730197963672684513131714168807301673203307417131577272159754870876943068904838542127897400375483313866955388578449678867611343887523043501280830977354196351377855362356325227512922183582909352375188672544820104052031681691466726742662224862486046090743696855415679285662531032673202078763292202952199551480328448548962147589275734100372224363445526592572490878972650611721565468595958796424210576114723739331529593931118650781258974345488064001983813328471233133944341925935647710514923567537529044273449305890376726243900084189791869054843665500631935124101135660396056371852278240254544462500469674853441732599812864653065560398221500350220272709144510805821907983415246294762382167173849141892752469251667510476890359451556002091227840852350134688896146443941176281441036576482279452143515890116936635215372074594360437716672086322785755532157163994678722854039504238326519879214787696450004761173837828845945459473073041701445922090634932811467447953406529911144609753805230334384668111044674452704545582909638648778523023616091720683355275593435559532047908533681813339154899901995763713306640116834892189594120414337111266348179507819980267539381278757819985926461974803402511529304776451809232731467526833158546422558563821303632468154859062784322078760806685669375963473377203376391547652362016997303870973330122676841308468016171399074113504062617039716507538869626270578395433009145734201161124927670899983712610619316900259326129256816422866722663211729851420732332613058449523395323072691465797580803159238513907609522239337544747236210447412530453443183722103669923750096054223177533312438623017728243096200221302202635059616594227084447503974012280458294420241738448687456280077172842067554749432295582366060865054134052887717666317133502170887679242175558556636418786501245324284463020320989012683493977059005695203241714659220489234891871432045370530092356222324573948051713442711748179986424526092409711702948064651972127050762271622179932380824687528292536979509240506749818222389672703892431286602529357954691793785981759398997964631937610390384094095367979477769662755001247326940437300827881048335122599011679273575006828697868974082330718030392277996135494858181439923935480218925940704118877663541368971305691842605232234720869557738511041217342311578393251268705465922690036396898157130728835777240676660791060968831388952029086276720361465549308808056162917830848605614476635937835023379321153546008045770770771826881744277662315216995657530844033214586155131626631024135367779057276472144215994077115278271457147450063555406870914854361888594740643143561451515398353335494967287492467037046724273736951920256708932759205469393074815562779018498452164520450682463636438637621991439628506878452528493757211447820298406984998431099872785621325027909412086946467994748796081558709382164448840901961692474470664672920622907384475271957210899476565168789715861833489945770179065171714833221261220261449440821085841271876552710087085953206774632264143855423000416970924222868197706786579110571753882168727625689874154520866225458507541757786368199227773569828588896539478784876907446625486949422785468779375439938749518953344783663194231918565331652309737805489183526663453955892051148272697990640568486611070772569876098021822147772348784385805998541954240591522199788608326607851100645548709419119726569961249731823148578749540120620720466167387578719824465816474485021787503511410508769349900005556537966397498069642401096561522184044434437804460695327720904910768146873489638870545849240359285962270879442294960427241211264597869252317771769947090043458862552873479742650148963446903986918289570977216889589436775175155513706742935862920138222281659009265824485875211443008959771394412056949238829228535762582850688187463900995357585947714440853355668442770767922442657301814210931762857709354691946147220463164870017999555524737211992303810448810006325592829252721337392327041868858754646683008238514438408687495345403751904007929166187418682613545649436063242630660421223508080073959637895485833357553215816909766243024806114840928221598320741906431653702572017918457993686161035927017699499915375143094578581647473774268061687279837578009775278003587072587941166691043800274015741984694457389920291020301891705113831363659879810047728659074989616521537064102639682836891961228375769909718644173951019206048786799409694041552192465844627758263974222011481907588418478634924648253032805514575341992472914391485673076654866513218044684037226999663398171528687698575197683679728306846467412779777580233993704870091975455171477668941065551485985143027024679695436970745862989030772978389887307949297493149973216127628549630279736745684310243338297279572395364125721302878029853538042205958891739801095807089495900192754619732770794430251015095103835136871443198552266896061616638235980873986525692945233296894884973975573790005016219962211777646083647279593888782980352124968911529947219200908474447658827805331915618269299233740985340530791883250897474997137097156323939766246795544592576162368993247410736664785573011230325504848063177489736189372929797832558409520130843765743782576791243122329051293001157137012582241826078768622656407290558670833971295864453444536471265833924320665957008267163014368814300062280869147516576410051101371275251329153972806574799554744295228779991013894614864218494571724655341020576456061612101858521114629718586514374663698603941595815996446199229235537463180352996336774983261562109193387026365617343546675335479235412531406453925653127554801589238995834434004881079283764917613288991081606131277464345102220150002240288224376790775533146052897684394085949695393184602089447871569154495108212795427001069777539988357908143574814131699612616789234871925127651691252165969383721542800570758839898235663681876753171925410829756849630744964275639043032004844739340437887786908695177791638236639098500147021266833931620136717050467362182069503782289561245387046165126829724498575068437106544812698913949768547392176001724862817091375104270861921020653905552734240723760915278095590968466188318162108720284801327530772409048375223742205593556975393973688589893608796683152956333642265174652922257265223165294004979119618666058283348980749142647342512162786778378303095826412194154219061466392981724965864066801815988618530153471900655339481203676261463733519284945773265080592946379613188690917249143900625819010795001362149032694552322338914542487169280106095148699654475744064037343314985022566115997224202460604721784351839449033549498742500719303417515047982628784181452820616985648849961771674953655986960223721748718962231843338202392694095181430633657556079400302042094577548859856631981819754585606183862114631994715153299512627526215580262623652386771634386658094278602593070185201186315611300061717468276222691160051955235800756755012012740286197933686056382640707570635842346152856525382703258134466511687522497798343037644666372913775660601977632922181418549923029604295785980495144308998892446258425293998095714031012772686762172468803689740095179473612613075904834595113635887161306646948728152018471405206828288469085959364287749584252007531293740329273170036386379306795806453223488448308349784996242928691966011420357116964302267504042159100281224867746366853660974219112645484480018731171345835819386748117770561017209910926924925087204290428246274345547438051313772768783348427849732825199763562675742686044638434481537166140506211005405479733058814789095042500574641484070429737236201402138434524744262332295737695336191112002858532192477141049747983823663766162602946027698418055741030990565668323287683545038104246548605007052995368056177394301332735093166064797197881348147363711885474168143152059456085160236117190017999725294224940779125161298538674695216472363941590221480528239006823434298612524464054856857885473074478323120307032734456813630784290860261855693035073459361211593101954079340466243558944209486220701012333388508480965054377956597662732283908470122171851815833617028812577565606551381808430017519027697656969650892521982191660530750311687918484992008370376470343068074020811712564340334957776070162153575481539304065029078717733369780434543514481349925756217487284605826034816241419760526669482688947221123012016611661673626848837996433022829802340053639986912951619105718765395700542631160056836102119480838258428405582294006368473426475071668956210933329932522302199542972188692470347502478070987759912598267199322595488602071363301590614005260370032959205903759129960134723600543516832034796918849284365620889260144460676680762171746091628399095859150004224146912912584551323013985010264281961153150374287112739245777818781316584549147260303042248016551539364986921433349306730193009283042726695320037275981966262353720850669792923202601858012914395697336115315599814399006893757436712409218070907228118925879582589476889771941896133005378121854760155776120715977116823748969072964386054741493198148260571927808472220675126998293542252161140979704408722860481064593227600084323213456804086556019031334604475933554891766647808456222454006069488343802709482333543833401151706862826473826145116790036444246346552590262293654598046153091836218125982457586541027479973500108872562248353010593139237514841583537742842367774717958094625340235539462870380034468280170773850859390680668284237044095425983878974479207997087043712878373742240103841412839209050637972014585832857122648937652025351428860501172753341944661888032114977551735914934608866787774799022949757443757395096966732264609602656461015700442878923133756133472739516752895698937504937255010806516407738049745878091253282324427490477362534919394645356805588515387364216728362037626162271542571366559309572944556533220998569605648587953964579889436756721965353377456703697040218287191957668171517958615364901932542551007621477946735136738788790128059277003556334653937488298613052408530669159337425159776286602222219046523367405009345929077563740842262554086187376855793861766505459500983984125823653321335248158617839549654340596609586689005727591510831642898891660641347239500423215730105552227920090136148711056829353608873620787170610946764570914205002756744828587269531070780650849942456454840379035676390508053394323494155756920196851533704341865469489667547895620901928247524083476917717500861971520866629925654380389524481296471751958075921645629758655821922576809103628827981498079550200686588698736162463980362882337097805788932064844626969923923832832870691202462898632660496904282732077346207520941022776354660512686804192536780058658455749284300763042380607994961216964504060004349986132053313970787240940661738764424812993094974209128930395718659174453106216082276214103006669889048911147515447281316901246343834141935375610105014104570461906951619541004886287118730765204429168913325981616563595204932889972002303395797422602003512834812539032910167902958338126087086592342065321694387309375288624684553026653186113169661040709204526300705851554511393269897769849112788312167307458947129751195871949673271533382161266483021262174383250848679669770182181863569588236732829228904635261474971049061131788897564621669449520710635645655308022375526546453769523605441694386040635291915562149888057119771106516817571089536434661461750866761520920718840156217541697728555230019693236335638575666002863814824888701502266991623251207283424593347449151922820134820285633680430753238079449078639741021787117894722759934215625917715699196441530842151781222054949371102977379522811453183798516636573049396140243093924881204794130223287679079098242046315448007221573283253726100779564990069967291316681551632645337253606076399075509316807950951196116029688320459791471830654467546011212689098229678672325812618338885627004431599666430574936072046463044901692988056222542695795148257548149760750368348864651046153134541336153829971808479546064579958192642795449462204739704604246454979198204801779131274837941571455942482716761127614966308838742928057180600029417703561672496405480659104374613561680932650122588945523443136566976484503826476953100708962584269853669589865807925352900666428627508760593490532221274085506336328418752956207130744807622874242318294035401642441212365640097280949370636181439906514784096376691511678740822641245529341913050049929196265872578369607864473548230100528317600012573951360273593922477300132986343554648597052757172647728270907502970212483035062589886703299406951626778463549955810120263691830278974076644623015372458744664945159324955226925451092139791544086426410734573194569375635435683968443784726261062177252994777402867365013079936715523489804956024453806922215082142084095845437945748577270627041068483345531738919461275103190333675826271531081305600914197715349077597791142990751112012932906248216700039718264509174613610861406161253036868601896262216000076950405515817175906526581722674481906947591892859661441249580634875927353043797805911242692595751128359525527282431316572902998489824044017175385722431100835329934499187473860928784185909139182961092334488054471516888674700486351911974509165736714377739683008004165204989983915752755685816438263652864391541077840851377298212833068642789723373731556935591719617294435159574431698315541117083335164451613381970522374902593042848799776294615603996754668809250157049431034105007775351487095740941436969326724487316650373130476791617561681654337851642752953129361989688449363008550834002000985319640650424666593140594055363390193796979607924792317260087965563347857241680876479370182274351929631283809556233001958718030308744031521331587938012611665480188415798239409689561922947975181375983884551433317135556317388025529377746685874045486655924999478368746119562798936203315903101860497840256396512046291189695864627965212909564480652570509019709793877190645866294272398723190017243073949337685886355505919295201080689852318804617361130903795779056396970165361085100507389197923875331881447500827915994170714182640040324437899792642023280021400503402583904751884103005934213631113787830183283814567518043045704294335920323254365546693063808573225416537034996833671258921329965606946191731420388665719402125324168496442897672214576632521135931073624545598629668358709673852848039840543467833976202609770954543598225488541987992669958238355217735863762650604741045615711838229602952234613820721532121998185067834487212726459561488529867543660418082295908141843385980158217428626301425445325115985463574691668774702384567811441874794995142091711633275934262093272394710012658853718912942377629275594622498995692770609808108030240541794462539659651182014892156386027896752397171955863026698663547117643241516292485128663629142496096043525464248190512136152360132385516153949057227138366746886555114634827719747063375964640441656737521285200047649776505489593919387755142516763795226717417198814888764294540816021175044683351364708811339908100329261214948453127538382075019445804263275870463727900130161073740433328780089083239659373015867199970069177547491327618012071284946364590842694717467454932349964020246939630705848604408456283375507878702666410986551162629141354484042155757852948530286462905816986227033687312916935881365833283666834720133609162436040122669575203298229782815206672848679256824517572299024835654663703869105844746461257411778866318218314598625410629480529212956478556179252479707539311038323902312922593647481336915474414488411887582511336592301184781381500474272460991071089160342184739220125043760092543858741257707138691458401477709056552773195826721627151780364171507285644519338232268607107025122969206670482629748326429874697802668806772755676644856455268591317193324055015235198047996691688310739924558451170115293851217853997099625533356738244172495542675688490631089423659566035181421932699200056611120406878346446668696426425560748078922393986512042101475236160854896688853672965405970949030246568826383531522979998016399585173261431093529017055297109455221672593796193947978923371440670383286443805679602789670166604158297955201167293593239920115591182351221542102120640500714741037964355672115739228046997350228224531882234572490465880847014794267502490765524280516165534627608854677292144172866631421020547182993324548422176499740134372135442613651022430844406127339959253394904440858621617658139372446496218638958506632930617489318568519370024165341752399255359035929603924406276997202543428245444248583376316279999154076431946728871730657218062148001461055236359465622558141481651483513358141292260075399865322500939316835594483677565746335269023083769071242213522695665294747902326750209818158529867022323168101833018950966679363269760893542994269105189794353112077954156115820454138232106734747113996309889477366327989552497010537299244377161084109546021293018043205141950770496062581132800951144966781109602065500599560433705600976179248415959169334181465220341770061358547475444323160397304519941948288079921335682339593059890217946992387523264617679436476795624475001910386601470705838823159145482383077985657528003876695952170509133561464244963438905273493627231865038632845770567803058853959468767154339374508974363612984918488110211946371485856428062113266613185245596742634841890998725375505161088259175801321812257423337099114644282535436250146408000502365750628846944853327633299637314858445933187532701724494872425778591153611989766648013425860174095841494732879111848336493059957279859865805102733688338733250855623669851600016497531527868457226602851706605439086613863818519532454325835967944711517300051743476295777702826522574734018490452258889652883200433236762278294400041252228684150366279588909207530776556298819799074637369291746807750249310885527244588457530585879733653215221063696177779935500739516644307951171267169287894954501096723376621419994697096884236242404516413356281913335562519467656877245799412254217082209860190733597001705851380820491245664129495991026002021820308520635929197708132858211782748030336169053779568829252517189066821886954992057771214582441286743274772939922154444911094152668855462372894871170056083319948256451149649183316053204930631508481981442007018529939889834542102184884573852275204136311797476497240593097635160713116967717327195429303479921939006775472382563697206342569692223249613698000479891989496074639649808280469623419756378552622659485754398765579859116942204227600388056234845758890832802372959545647735380074589238629056564926582622465635672875610045695595882061678409463775194028420878818406981047918197247450123776995851595855715725789462189935524827638215698569373513336906159065399693040168765604393990730715361271115067848160801068963092723801316034513344399787526582206065255350860084048100844740728402611564830841333186083083540782641659396743908192257277938345026698892954689960292257206432386274653877952526211013318620622631385657603904039257819502414050479874732148666229784986946167098278080769695446757791846652869834024813155391713752296355690965343949911055661232004406772445803558884090821907617310716504997922549146247399035513811848768809238203590349887491846031197277959168505547828160894050434226692103672845942617888736173190558714317049186783333825974619214296035396812544486565173656982505339385235721600707886812734540940168951071110951714307419236369564612511196632901514448034624003629009562939727670352872052116661142782959158241927090633542197805369537936271140335965468999467970431195000044930492242768186698503953130696625048750276526647863229294469050150426417288957899250939785672909845147092232252372304150034649628299122136886138343238515634162967202125199850758761060960176462371437557065932633013351388296225463151799803708044324888422206862847474489445891601673277423026434002291137024485580414849200263438558040498844543954518044484134514192280915546802013723078767192733925548770164069378550245648099046049339984197714094111278627926020240670437950350553355270131085416918997265377847736079118608248309140408127836008471904197729229038699285863862984298658080568032747609637640141553753370413603530913648125531110609001560922628012875117191066828570272149665250434554198125466943460819321744575421197210625581906026645004674714464603689531964291875137274237120113576561484625919304681252326138464620137564302807971256931333487962423890392883128842533232259002040829338938107720949849620584804695963716571452493884367254768830968022449253354621781598290583045817749085651362650694509718498270984123565335907576996625252016984122991626931142127293903176059743243843903523003438351109091567637741798061648074442166808015454345852521875913231004037613659239485428821225951397564368198824500925123821356138274396564341195625863005479427656612196339239539347280873370841842651278189093195073588268856246942043107519370136064016032126519955975994521134933595414388607598389796201559030790958215937795680344379637146567414525012186078624876514669736643882305288858935872789596368182135931518084852344140217692072174710870129400317282637623331687121207311359945472464005740597518097559712666227495150487991560544362412283673373474617847840179396914812118911905036816915361279662831274399454652630760502037634527895693357292599910306097208958974581206940944244875599611653789516473373559702538361012586663482457528242588688402131527521813670962969539099587409878460407734205267903500252133334189236976233905042632697283368112946163103585650886729882508025729967916521090786505642626615877486634107471320506693909584193012957857239908843221001502530051530973382328272362821536791937522403263564457482848735730104503819565048630778662264264111692429613733986733472206114591412501215792380121096328904108030359263629793610318993439501751427112051191405609601458446495944493665202124237023350948290954377148282768492481794877422128703960484840703760395898976974417226956002080464454910922393886128228795757980641941393368539842088407264382298381428086200472643598214763231699694988411475178998418722600889525960692342556807130688712381144379626880431466779836594686694600912724553649651067458830103089880024659248782615024263213420806211296938605008374400793895911650124366440974269176297504744548627900184534636521547800818672631266007205831044226509073920464721866690913306644650537086574489806444134296192851238738508464013607521324864325684727362279298382474794190936528342544759549031466882991661148340356878215810878781274919138882135943961094834611220697795295885784788667188323969995938581343199808664356322023341954030629293548859449523610743348169668835787747707275400830468818315466155204767561041382575145971807868341112338854747697222394895580950871167980865996038471442765530779785498712757602344924820092476967138705512002235797796818761035410146261338296958183762787268790905445353932584360105175151771700136443074024502358885380193052354261205407235697326641121416306635177044884256207785723208634479003089622152881941616592617140980706741709151361670950261092419696771116781117104222101718221560173070967520619023123317816877125035513466829821585726325559593366690001120250875402990922600031674567477753324191052097204581394625979849540408088224019043158418357317568993042026412152498898232676564663503026996732713564362108988761820609163839004095361581746806989726667779125901506682628586628790516235853406230968082060741786936233883077760407440528468933606484419317566633685987614833960600831236438079332857950342786674304506882206617671893877540291556202895778858357744450624908812217681451679749579740655015175279091860883715892233540307980735277548345045667674960432684111098406375280583752647580436618651740264726536759795257648705669913489748620972407195295669925468562745543988182893129057078541201191270024657059144958205051916042139290190514308600998258161352879454559660589709598510896557524668757252586809605273765092465082438398085033354114079751675337655722148844135151455046499276546720286872464972378477629853630794808994090106642502952433946837497969847154217610792139640687778781585913843950821601091297393848020514660995844036402748269595235681329710861153624027395749091815250950450306208768564285899942236034898329934875852200014234362758953060379881812429622483128611590078756050242265638156054245516024520195498874782597267162164539990073764953771668159717235799270668321873094453309802114415304717104876010571232496661362296799619164162597250575103053953689160883564219810299987523334915106812662735097472375557102802652783082037926358825033978188195024858174237209596101805818264722776214524937301472847705691250716210052574669077766070120774570827865761799691531855928122041821103908347925521728770862633919203966817747689299912602180679280995951299946388812353767530651926170583150093036445956382380042931456769487064954852410391502178100007296542661055338505403081371643413523783756829902787143218768374175653709953645691147379149117671962412385120618718959316338244388306392726350041616431554907034265003703842502359702972771402386899986887912481261944402768500261689239286947563601808793273010410842603987814862102547852284199554171060776074793700612826195905937575486988337926454647340471333370252000348149541319330585556533369892703674135816420070817544122167702717557209336974143628135296874608543807101496922461793997347039220686901156914022591926365922269886191100828963458707887521524292503811479516943552741214621565482005744369731688462212800426439505503731712379475895433380481826801244549362096855647492919490047121696725239560419623661518833207474557365708212809885765771465181267772538147744648094312726694375690610843143067589907779589715585591629161287657630976426874773427454572622269659432768609598852128500243079935406921435098437911652771302645290886363146919231566276713312901288025222546782692885217031658934866268600316276908931471619726601662199472320667642408084618984775995097071064757703594439368822471575597160442500211407845387275005556401331180915619443384967199406704327196579098586994516168600387807273053373067350261937253389692358488630620966516797898234772880738703536599862903631135440316829589706630334498115079232645573477564681376797204041862421962605561642031175561446033758007279789446749973131394956258893054507481308176055861529234355320685773838701063889692634744005909324259569659547653710879766084774993845449552843595803176497592831017086547249692180885850842223435199337521877108939506627717877378234006284546356159075318703027422113177984115560814234947375035036413448036314457512599111778268774049070886270069015312694736251311354225368323235313526677957732991370429414776482761983657142377918321231805783478133364145305295338726559028997688299157074144870573233306804348540378806415170900039516469408186606132307445422970597526322626030068671664669185302986821321124404537142283692497282554600845833504848318671315582687596822769412734129717515222667859845641910012714861909125723756174737849478996207624709103434248157964499363796641688084519848800165279158371116824318495032713018908276462032167975756722215497595622760074761689320793399861604470792124522286561093737464499048433010840905907101757567513832968866461515289818649567106136375516979775321577051417749675485634355419335776473042141649419153387731410768314648947691775773200134179823682468806674562159637832905610557012760041575493605844848923884169213621551652950297230474008396316154429093006639126492073740506960453968467311245731772926550759513540437860558207452527905266657641381028518940935271253287610110357453031344881154054455437284400437967090192975411006704342663402947901168739436372469952411077985303648939452314740176123356378708077488049199815669139036964226613448885262776307480275808560972767445492406731589221050817204333755242475314963018779338186465595322719680274725633499629842495493087500711241745687376110519943343641475625039241413913825434071145100212545830972654145682462179491768576619098420206031466874355888566635400378216110579060390334453721807128064379990695875192301626435518706228029099313296787447596331695547119287470897434522222780942924480574812429870610753058984499112948569587115601072938010776893159088998212023352735789992735907626015752891533589167087265302841708621959417941172389455244088836166234554690689613559370844251545706200964919555969457794842062241721934560525523416926518661041220597554692779005405354427469570906369822682162544522247580389201382943222019470282204749437640169101839255699232330217389844455336105535316811510565267906362599473354783500909008474048970294713485108380895152308940513808055759388578622562120148133653773799548988405339325527278482397530065731949951000679480765862767903113779721055603515035728276959795094855715922989299470071258107705054849425310289618897571286279131459561346291390743895817764256500519312040971951727400524648492130640847532109661116540295853583578293597886831508581168280202386480049364151717227599212189143270500462787746559760556248387415384679128909419441056265980892059194660222838126380733445437534886480413506440589216623208887145738434647955553060306968207183151201520024146272195867463066733327595988987674353162804343259215762696030020639287785701990686693130334144744388662460582327626925437364858448611919633894571259180899040376767073816089315964737523588240741078273402235910890055157188515345728784262040446962416465233854364098658988501372533653260359244778674531640411310339173865059405892026095227593972065601084061678612183869060103046762269373097289661141101165604626720285527857310324895225901639595553974604473269009284909261142570043800110530138616638220626136259720343212983398261846839763742559507340853217601883798870915686151336487412800184143417296455434242664659728906235289396912354430522681454206509876728917158634728566705466558935354769160614844541371893907456014339456397671280272414201194365743141167607411571358295677258714361953721949428812788551392289076935598271204607786060688913945780267608129430040670695114169281119532201546385103697450725170334688683216170693779636457074506308448553211342175896598982292463294823234029406448503458698033793693992494042088005752574078918839711889935459927986508607828504338408214163595289480955804077749757936756791966522693449210658021392426786231661883891271634093768964526453348430419458376306283932041119677901312373858613540001927551017624334898397499462281832970536996901785598889697123193898844005143009965758504616954811254262701973348757215627824128440903643513557959064321381441107679811100936931439617501274375938197526678389747122151723674183538289270506032420205102527111399809432265890499537352149188487614926543880050707283251045840664686544293301295244039047277507556396581283190593412499439096757752098453207547645584040454184877879208372719316552177557362117032117419629123033233448005540773520940820635658926569799870071360917694610851530266074535128174092910230809201594904897026202843046447381018845061247850381701697876219855013336182872100577253509104484239462703869131980144457228654273835645754412427543167129506181636266040736541607786682390137498341094694853618358934090807283511462494353670568187500702681138428821256616425251204724013190673881941649629667248529283223316547487329868211277626698799917618459462286044632318279050974175660621905132930187251337694556985842652916403521371994335156227876424466746005168346296994075819786335564764199432361612743889096154695047773448971566958939355220128385246890273259103257575995210613820646119850689238156931133769401791240290434403906278790972037198875177221705691123081540231109300789235436917366709612144753611873040087002741826727051584525831599066675647587789112341932074708387586835797917836842825340490237207220288330259582833620336309040454264031409346183913059351583278843856728926409070793693294472271193444629183077462545626140565246324672967428234114744675569632764321701038158754204169866699609388818356580690779709902954686986033501571894492482868203628626663514918003163141642001871125531019102957456032731279781633410301386812928783198617970857494381755661169342669311401863384537452477184849392851179958668146264518429241068165513084358390650486963154994700651677708182696194528719032922443325020335552525328295317384735706271327417660054267543121597464639040167292640369424512404961890088975810557066459202198813725229924441189727238885381490053761022674920457720319619143845257498802174348326601312787312195675861551277021080702960029150342204876676881726745460478131135342380077326163038666530322337073029020886838339131627774277622685237893003538649053685401976381997304772181104913120275728276114781720275088949205615894013800479860940280768569373981337488997757914258535767302735693055674858719608833502830857104835770411623157294955791044873466627416391933637293493734865458587922496882468083550973293493110135667008618499573460644087239283474197283364156991798667065924017840890528674754313238728756993606752603508975775211609728280064409915413165666234491100337321392888265498951712364905063786034351512904054643761916047485695447809796247197490340628452342036011426573294170775788426223788216238682426505519238182011028387041300933293463562140986726168736077073332523716405696118498664174838466083453551482073633703202917742761396406585064451883287369224458517750532935368150426436789232574240471504631873003469400944889819438354176347998499275999166429211252974718565049596152201984165111167585340236032390710558414416908990745647808651930434569325217891855948160084967904824213716349585717605341708142704718814124575699133492352852398518402763273375302541616358892179242810932008551000181615663218521535244133501576439050478336422596521964729626451854046714806612436559155779954529591678413652275675146801059791448268050712637791112747235161394356498875409361743456055776687202018829077721323754116497565279111240622471327708906233273158446770272736878154639627209527163180106629766010806228519171240662165600323388925487164294597371303298658659037925317250748606292060198498492815655694213057785655099359031111956533094443856544828058247332736327611276149417588102941802046010738477758006515212372708278390299627065465002465990917983263912497909683483803401647522625778145115879311697056207633190878476353185088044149874469662010643631988223134297198265178294917840617616996975240555176771160303175319360076603627936102336672044189592991557365354420134863041146935609932374400159513322030271561157572965692694364227853772344346857998940791028138475042933909775339158387698537522900216832349593434312396156120870737676684683680932251352727901456822322150549874032293526123532329036936204515039290835518858933526594553097359415735931695104554476825083608079379454812515506932491868935498364713728906454593368183427058602004361212129735880963393863261255160442992887711192062920576597819601614022195207230307590342112573726355978256380485450355357265373253418716624356274252190323140677981259392545515535764349500209932477120290955652915748343557401662292253138184823534318557172059560995635935603369150876989658055762572231432054673042984656382228851018528594518435536461627807562797385200790090352347188281459089904711206360659673022940829763751852164778450830179154914558224092556322725335989415956527198390895909424721546077701844489245502162701243950257278642153482232455291233731079126182521174734614660937349414188895839140497545617287303339710074096122206027092088144535937327289858220493688603227821106956079292426968011578828215112307088687369476660123004399628999147256366668223996027672268266823735100739161252726733380395261748313452060021150645900091760922654002489522876579764090664939528819079087015582688962860675902506974558725426295185003947910938678492487124841950006409960623075085117050314968069857406053918853565319910904506580818490251673160927496001141675105903130361296482077270066228008132631850709278879773400849398584601178650856159778165540807075027860763255602636633014797708602141816127921381299399458260113717473127937586698692893492772001175666281202303091954112750716436978144464310231741673807533436563209042094353825291524812355262331988081531163545821297039298882834125202095527338119818392823166000717779883648403705426250325805653640600824190736580862133503074497468521434259907106370173717611981003158900445208722227579749084381930647237722947278870954948701541481427938034896633262074756283136351708113645815720840268084319734217198322388174735171243665999593882685979749231138856811318090311894957516213357292779596955558841680455107476452917482369796396740371177958879461416582776895568740435408306514627671416590606637113540711007633241987251879616903393025906667572987846032220836387423938743369461581568388103866950444047143113064713049752381233021378540435215077937463944132220856062369381906905854239539192199116617173042472433349889611172497619569002724859256822553988537753278831431365115744042103291062514087300164653859052288194171922893610370899298589383436066614643270636543816285283598684358461139868404453262045344471103160556946352676621818411079600294550102327276561278675246997819279413576939690360018724278402280356052906135680771608291390854136252535837050820923202083539264424374224284440704867986472254704813159235417559992829651969126516503221882646047907980624300734562844620409587051880977819805465248572550536649496715222398182352203819305312104657124082488627442876853995163165609963260961943208059624667019453163566401290266774072804083203194651527839578245249144410505671260766053919183395164663520425850017015004885751678094377585054570179803765221902244977080158401993460078232469059016120428453662589942610419588728929944257550187402229023368178263001380753251547337556236532445139983039314562217223359454218573172470840769998221741448761993533229568418819282458239867689379025730174024823190145827568979235007716269473464490443221984756298598242073293559220505016268055705731630996354077341307772724509502638110018101684562057144159310890623061923992930147777137730455670151084401242172015787950745507434608475815326040097408231719870894041938951840820931991482055202873263884752801797602650832494725995495286264381894052993263262186796411280832436860418190399003880543845483749080340117945488806825153077084749917126183032290914560138483520889298689418572216811537493710264701104489445784407350856658600340879830700928896773551433678090598207856534276729551167915711838972815056071049916920277356400041754893681636942109144381400920030158077189113374953331062191317200827405800247456262005429538213880819790117916965379360967805876055786903028890754897563522735458506692192129691059168235073256660395088257273474740736147808814210188827842169300222814317336288783661911172109502574828629294833975761388023017049805773863061117121992910643508187664125455652498008222215941267002341913037076797456828738032502534119164934140032387263834934603267986069575266887093975770656055180402685228827332459379925937124035070101675065708567824343040015575759670807671354465955976961659348240431651773431411770956077861483569721537821979224450322445350750013455087530832740428273999133755768369958893377757728223542306008718605217376290222745311752963595526832821922914808125272490722565909983228828173450663251433876750682438586278626946688859670820716245073471139434194989955834869761100047836406861353686600762101919944621800265306155484494439186759765637937889684911645715045747622062497924537574392182033968069397211253417741254032659026725537055626867148272983228667222119467944028973976086696468463397688990737826390126451246557102442591424046467973492214444770822640813367010745915041189448288817582181706695851166063542608926335228728996767271967914456962394317447225894086545590241436510906739063899745584430701043078348421427837043767523930898589539410095080651195536960645129577224874638698542766769773426947981729590695937996150913435276030440791315960598732064379929115314927417317859079707531477844703401990941568173652590098011913836894485309365556005438760054250624953690074971454218925969661011551506683424150429953683521420573395363149727483263497343169270955318257702372225808820176853121253792603239817596704743778001164623882989312607299592049721433945832230373380665735563181620484335650641557652075845988782557107653616476398488092508103644661842146147212565903973892417639737751356320989286849171209289131268896394322034563512954288414230070880269265627050819850694526612834651159747757517055460935620732726358518343992785935434866773883542145516238032242487686217566610768068089353245061892179879471211326788326264325278034325517325560532519520990887317133446760510968373041176966907170760299161204512826387426533953826145744301298666357691815540806627066996079007270459395894443340464209299720456062110171453299215830370208880068360997018852451069932006735803861018389965002988756578120773280044488784237885651655062810240743274126136432464767269904868805279052744595800062575687010601507222819957251350052593625722442776021098273477005643367646009575708422429320213405016435987187923985414807725606167678192629849530256193004503696845273193162262011657096594599441615293369502508119059954055677400528379048990773631615383444741570270337058346993196059304743231977668237954684504319388006786658563888655950031396398840428244401656751720583143604351052118675717951883114676407835523836871194127074604225346337952328394569747493193855500036278583833329288516330526738404385558859389416763954678364864075611289765147932231446270756911283974892945500614102519798274496377601604731909748965220005717033337020227805780487078656955606411542741872555972769261714846375259353612999019659272504993069982096058920520197719399860487638691811018626380544637079552109955437154065639062971052762686040581648918527392213911452442174501772354839032024330082630153573248871114073425740866860986425274085876423693140898883304798907173987157331501606707241041489750145526400903555786142981837121798024541457227235579534557195338227391255294797906041768362321400669253683258802872647497635654868231284002982607083844255799210547831495392573805069748727643078691032454420988818547027515730812583870828275504796297692061173479207132656960849653208179913256947066501644800398079544345653021948232198712384368919055072328312315830066182918638298668087886777886308302257664748384774196101493867614668125093657067016993139984791211647432569205669162140819895695838658227297239456770985764177054811219902441078394719246974906696393780775236865393864217696741231779142337781476847952033084798982696569725940499326903262740401097195944114523031052710249001160998367218759724723510608572671104865039680381529416368003091501284973941402815896547747210332136599717501536163158328296986549310105037225586516543312392299622722205945001643004525761871493624012478116007674437368283531477208878237308918365883143210378716839822186727051458050901614591247937264913352356370938191505639588153517383722951763696257298486655421091735541036822948018995929658033232279094024108585806421032127665109629022647637961387696768004317312434226193932726200656171192798150620676756933810806534073403797743783457679902014537324487427602318213771580050814943880253293962600365888620163969752261201595462682169322519027622678381175105990651969941644283849829028193473518215368166740693948162401581789526486535546693535462610663776471779094483458194932624612714838528247718367685986960397624505656221023370823907916092393305440928549235294190740394483763380546326836654546052721670557633974707000151559365976013605626669988738699726076751614985388428402226793725069274529100805088370815258313792149254024603115712920901711041584500064262645524497189887473352517859996365267146977069091675227465588342256758544112617832856453516572173660525424099366290496041750505499090901961989607282982550328302012916383127619924268437139465969917655003698305528552263676735580859406797698586926934472764009408733170120239241924531903799777222630069659083742647402379335083624916772949152613070602856143125091149157146592988531281664064988678756376046519554351221938261957760680638235621895312073822124544494723090530841300334460450511093154381933709175512529894724513570527088973333631444803797500358387386970450258179586181187330325611728734431838651050375907200784929687379095801835201480087498702506315603818392841060289681550565235699830775172732582253348927619164393589892014201290970932717176138148000253642177433390362915831253263512688766792705088950074594918485192888799668272419453659448294418160606859088885355956262434461801032410970847028318478648061329039882907232177140744271328862310053288031098510846522256190137327058469313895373490538567540416651542073626414751099449635108989447802916799035889161472231245609122165975988111203429740871600701404694688528335328273631905860786083211072771761279883039736558478447421900145130805868734014324909215919853765703354419408495874251756480511028052958804976106732719232486008133134047566938234956105073455326271577345019037950486592122974838837832684163959503781124437575357510248679009890936884067420973793246242840785897578805664061256279275114219453467387697032457433486502061854293487264191898175880903690315702344776578889583226966051020506141759394327875003656984127223409597383166662578238905457058819988026464426429689120323061219878107119662355728430157434513740977498971684599692150346100774114241318122317016169218560608359136714207649113146843148348619721097314233302994620491977683762995020818460828658248087076872769004002266846655006047783741995718933463949426391774068271993545139944721463458509393901558804513787724626702747540084941292082791350348548195363407969791724026068038521062144882236039302135840507582186802613082656781050582227191319336616574968454203900704678680340571800958041110979407968406439581166269703423674350662084441792230586512925455686605341034710557338296781735051595494829930919645447726459478197151671910974210877852846855260007889207760332558756816764989602587303005028016263177855747370443035237921211035184010028503328468185622189595617859194732545004227479358363287116194126951332964544688743088961765381742148089452641173067355054530307596310033613368366261154408151752390251325641752422213993581893419095381644556834630355405248461328274082431166498131277501230197877354495420149177843428012117079776459936354367388810949726014604612654280684183089308259864483670776780857726228418170165840702869957487051376427893560461296578333495797127621285699130024396236826299107673923028846498647208015844515439216507269265887972444386052469848627563157132725449136184102112471619901737726615061681161414042548297239303146543863639815275154355027133049320507330282344613563132555965122591419788121988178347744394779373818244482686631076484891005837080228411928213870702202329923924063355213653722650135812402716971801194344638081290984464007731555929877362372486120679451861112791441914955465832857866980668974841437662288048520148240545508330059096885009756650983242138505814377899905016250149907077905183812653086247225350807305679669844959770471853259418899179923356032673815581056933097596557904096310538349022532986274842067360866387143440156719591650820134231637454652896393404142801250724927281033555736324845142559194130247607062060004207339056058285338103584344183346265980959769073163441127271112304499534995707511272890104250604446164436924183540990477954715020293069870834065030493035470234222689697359741781168396774092700074108671601442556426626197320700260278868283422965873379619916279714982117058417331120002313922430071931838766069690250404557840318964252455487027537253369340198522689564702626799220003841655144124216365443075030007425954969481977774238476914554485794103948246838070977179586758638165876099290442898625907035042995337089865923581978356873848285321667130397814283084251321863146058790844155056147828634298837882253945589591914883664997569963720547437235731616287080788693274204815795624907220147101458849242914560925089210029565788234845041005867561775218310810210947045305408736731452765570443197565555449650621536756322644051129712738351569056342387624290494099735506908872465022499477250455086679390719380055146730594956463700746289005599547544384481596528535952855397366594849194288228876908555089462146319045126666246028922817009842833087791837612738228386053490951900870122197532956073435446083195962555580390610194772159875229996465061329482921218656577939950037583427213401100018356517361809653874404383572155764564972905105347251676996233631445358904204132853593495725067188097376517263662204948620384625476549580875074438978170453149352262528164065274407019269594848772658544924805016647159133251189945377742159314069785880666581751733934446578230219192133954168385250125460727024858154379610486363857174582478650584358803899069529266549289016181049519831548176246876067175161992454287022413804072363041623356255737983177676932137094319103472403050982291258796255932386839056565456222374083362235603319333361800836787017663993223864934780152466130037401358948010888346518942217444022620043258195838739158097733442747831193104293724419967948093801078886493929413549560251141163124047689237699151381140992547358758726257012678818351586127252850285422517255555811762916617411687473128883842958227264304338307520448770820860542704080600049956608551118244490389507804897220245541793937003362603228903104727111554189730751297524914577849415258532656158847935999308489525707509508885871476591065898202361728320189426190528100419099249898812670595199660728640726527062082074293549957735552026830070512207243521731269303145500771965673366075838204223166236239126385498902800166796389058797589263976057789933683851322937317788706818751295831341994545869969447738527366131389255239742567426141761736778584971951789528025601100679933671132291581144917629093921062276814991406615029435102997885774479352516834135929568643329442135312329228504656939714919492765045357399540079464602940600727179974797577204360524383959207922568997478891042473189080814454778701496872265627617706970996401579719035411092539320401954219746409945583550654329684888226859708489633242109387809141975857176629792476656354279686099538871043297797904378852545270066459601126464165792775021673358148353803564995940649169225006775933685404277677911249767350563994074764106673859469266960763841468968186571328571070943471925337399451986253612648917578009456904261359986427720204325519399004445668403486425861165128361718562317359879848532051442039761767516142101042734751252323276423465054472336358524338504000072032092274171714439039923975715201157360003011602789516640920705634327476765771300601295642973075761038819577657274622093942102623503397114359725606971221826660252615479250195147363337430446666056111852807824832891350328227559243605734430253033963149775916283290663027511531596746205301303545348949269290874896267166581169077823680232096728001589794962055775045385216191655241928682914978438893967325775556627664604339573055539237876564862570556876694914930595303283731057764458965515691702177555044852266535268110490497029154362459951919321788811224651901288458862442789501890838905113639073237901340948237670906823387923439715023184157967293910343036660754331323062617379164021980911397118899249342039473588344703843094916413933421265099946852906274855168943173831526140184923488277778759395691762650625775343830920020935259878054986188415162592427070045345950641835880295255225218759977685658374472903623581056505818114427230921184504603258227357955062641019747067619701339523320484317125275679305280271566462635112127391367824183441280852435032756198985552325820793923142543938381539757330857973473193744009409101982635475125332337356030370532177593050692920412914896142657094106399889326540982954616825680097735309928458301099973547913206605016804028661551470596891165485352817128226341729546270599865811945427879156950243738888567138051112837789722584988070838748786386040373902228098790545240892397574031180143584572014541808279584658410328797661025688123169210420889002192152239066931141555717894461160341687777445844732864278039169337182862880606661488481695568264230700271828845942500617184007381532197687182200404338283175686992534701863304064977743612899596486566371707104675288584818625594415213260817917190598457554611489832998991440664310313671510692459170410055212060690005758205589682430522880288433898160769732693208741771164806076914473361750891739235924198215388996706444510896654690384229756914915300565871812977029082543471906614775566717653871800912107173618702166683442787095616295455696526007328445614131643822158926737755430165135540680747348005169895854865866568938874211564376513330499999820383758736777418702621680103858502308374160810061451985825830298507920428933038304855792978111666671462235006725535523021175818517534088405865385554883562924884632173260263186948946622850684494722686232555760260769647671526838072538912888615276967289057539069277759318398139369808150278501901559467605691311285597317888606817963703653018013395474454709991191300734350734912537192601931270889702056365780767708802017778714559084742343083153399590543298604760783553111672791859141859743453087319378245618290475752571586608783235124593951732449561601696627318496006737809758883480018702117831220007309444485296851429010996801121936643882942674734263094103129740945505701060650983592275314833113055040555030031021530391820388724778820982092649192069240302014817663331816168258855191830213286622367555235931887954669708104374463965693347244266010443559898053685006269813217045434731952676334251685201525306846624832608140282892435426583143231093562954975215876351115485214342478189934106426503896538992128127540318330523287496892480415976254149191147324320937243343459805432205593521186259860443671205707395145408351271790445843162386195070430429666742619296205862668856633221942344029224928951796631426113167438627234267319171286738426945718174481380882420641357128757117505912893708801858391975879684946314082507141068581685938755907885332521213270247418910774451295933496401834780423860552251144815998823398619333792112317035685714358610275696526302378769578954514492386681522428003674214246593079581772795529158538651523684206121129950765762361881613152591554704078571673786938281357783584621515191748144313374553489406215785338484465031058448981531464118058730395624945881876990360806712198966065572637312283808759141981169590655760402486374031021523028531635278517894132400637791570549827845591420604061437770754503256994502573738718394152734119384721010044673235080612697995872023665641530488587002722866325464960091125996095755220108199394634140702280623229136075540756337596441683948635705801411863352943197467638456989251067545496474559332098939695210076914931803479348219614360183089514703044558220696622525644936821239632959620997951989693456784666376925863678818086429039281984776969194303109587691063370666254472882550364150807081741701998808597579961144565164939193418051767280841438382054334228562692951226894521139206838530147063032637791247304836735343189187758730122689120216217225948643225054053773867367534845992112617647310092874166714238402831751308952677482410723005477101577553991746835108736176120260857122075230444736700461027595706463310623913500210563861572989778710976680700182297878499194361852305172308120905356638636574619845676227521378572611018280340593487210877976048065416957871567849793227179880210893709905908565222245805976097546951128261210010422549909468492043334930005110470500432732768265785625115119363520922769038969130420874094529095903604625490055377698787400791004343342030205452533347870201387573885390142887840064401250510363602031075700819789307064277683218501788214326004634814405475901144379828809562922255544669071646950229198205234423946027451609458933374415250214021974252969535759884579587102449623747641915531641048313613386028422359848493451667046840432782009375969869203393991770832921720581388030750629013169760336965337800464470107217017775797462010646870175525832389934379953794181161029669618918489025837853506479446228131116452576779160660417280324595503061102416377450496257809903232656462632587516601668110961223026408898963911750318269595448966870978043935924573176806817741342030060709896575255461264651484353407269658279014932868692986257995466539686289426168436543690193017589025984137850232017955696362218515264715499329040635863318159095057233975169204735897362043078890564500141531544572725282172487423692383823658047886369195850302252643035301127454100418589929218260286284271929983787544567077501349311353431343967337506285663666570622972874631070171084265225207032145654184387458222266835436771715289185268053574263578482911362083596329824562337696795140690643214746096423133214058339225349162884295330677347743608027488001269150473071928973700018279454830980374325860435318297387330226098198667215077882700859095677607474960689061309356375853604629163696921350455842582296888612829891132474541249610034383382288199832679761738431751698725440183521066367081571595792233509136769577724603963584101562807574875823215419098099791597356615803717842694239602883484330838268879741535353533276858434366768234905849977283649802310721229422480009506996727271620099642039624777839761535613498026893783396388356971966361393502542234942015161316468099920369678537888305000982737335797926651737354606371915856174276159817838459489469673916018889932337823598527871682780325457451551359903188152920560104870434006297578194891115144052097068650675701315673827064780853414123432802998309414725053995850200479808255216815961094074945240643831845928117612637515710852313994082309208016471018776952620275962685510022609026060552291021161371847413368315206880146451777516072128321123260134395990079596025198837674541803981612355128506970364642973932994939089884812977466847583123399015713787681067003391235751832395566923909301822233833054360972946540963377380612970951043735599962124679126133142955398421195235904111829887807520849266452571567418572214850959830551083547760408364251934098789365347149971979758521948262696494050308615109699038310682974514742507688471125867651166972328258237966844347671910727428849343536705433381669577021725019496758814467934345543836115242068190857174051165132602792994693333107713310310730748855614297792306038332117721130898813057632594973924301473534864596023579553224934745206077929948849732397158716292268293608516165604385010094377337916518280175878498448493192462936941242232840103365307627800436335341797266653228386432894344143146599894495333325045186244571223204959182706695721061594214299601308099162393539835700416901135089077672529036379975418156972407549784501933988631495224614770552404040759770000239837014565645993481366545620710513572668937055525405382449695692489857094283633071050770781953530093407563942474922807535760712567621612276194693527443684527596397904955481281884497503144964014673494918289274186360379555836796214792075594254460204101188600124653590572135323385695452438162122632293185502474834295275644476682349180781845021404240788856687875676692308172699506981552937761782484573014019624457111708131360857054515993323283243227000966843746442229393724625036910464744076995511648185414753530442569960153509691733349094014098942531747413524669077072090170648213299597612627734113754171925530355664382833515513539055036376783873064769563547260059917117948701494196438733987981932869189042977458893201087561444387830791900847868214088624222096229258363495906415312740369280106151602674765284926843791998996611286907663814658569134905168671153395537063439589059006194226846551812681357824435697995828720475743357712340731695980575836435528855388021750199552809830572105108613525995841179842903116729848732962999309896776237450862602737055577648237684026931076296077843103358996795731928857763600193998890141683258480082273812536490141503251598740939983128245844498197193510745754009599622082024675052985844294245367279324906998889920320373131036327306003996656558397047816770709845900461946304132001246531611465528475609319297609365503450782997404112055887686610473068583257799555978017490431457961922506074173866792719096373471556719666539967035963291322528208117259179658829315926999783554580945200245233488808339434367622137086674737291534917931232481452632065412125291411231052839274489840482222269618685559529549396937138146768867834819814277523404763160607763951362820292605144451108416964896034054463748953170094172461898803113310131847290265025786945711677532066367388169572818866270627801014299254515874244973788311139200285586254627601911494986920263184258961722619655758329232548980060151714159799350849637394294191806371555746573292222635003117697491454924839179146850897900630862054168301343656756582704155562448631026156125854235484457884536262511884923509006836164907992576166106991004740769275465550518825010841355147781061837854851272811519683671938969012919909597137279162158949582038659032080941152561112568187714518141479732261852167061952621315831040467972794856395098735205885645888350214140624390439388686512447138393823144275190985024308706698453784208327707059352010391211744171824158955915971625687395650055080914720147329689936808081160007110146747500862272189462523803102803111359958305904476467439186093599713940354887206013901217830862542599420388067859062080250282764659827058240706942476576115545930133669110355022555298482946505120639597008503930422620937630538641542453944589318445356253233123691136039643975426818144542897906689340523823924253369174392242518336564904974407955179561140878513223127349306451372200318373507174704484901899919346181925998611073134473452466248445524978528673737632048901429647629659881440408065523403975197324200135661943195125976747099990280417358101378712500736077100404751192253146609127353256779680732693871647310522638182299695633151331367141838759494847707193879026560766952363576899646036798464932554674819091134411076879752999868124226304504653824402095474819933656202449020969315317304989064812945636402375366211936081440591184537476551677951123954072835312190976076499777236755080736853845441961852407167995057912201798570133145955068158924915800671021706833999832143104474263406171379012617821130766409882063464526857780222564005294865574519988045978441556009129524585479948030508180468775349375561871016179678554878660605735257273214338214030393865674930082372384312720277719899809268618294555532449445512726657867462392504577474093179681541743852172850934965812951109257074459748658961478814622005494730021430480531800092556949101280893939580576059362094893339215082829108476945061172272664895539888277319077233215125554988740425829091882451888250160095752198651436138725651679498734206685350815357645383035873666227440527871068055149676431269757414466821565380081879367965262375615315572853039573611377509740272370721744834785693550471982867542341830786402431949803011725871314503732047113166034279002307251243975612816061393037933871613156115473633805401160501579813442807317723039760169322254166844523076275727361502240037752089292289259572999034888921564324579727909889531308774686223713166308382011366384227339491712087973134518671677279633909267390979063408702722775492761326398904251468558740924556358194254403486827832278547741433411862133493320584847583258362293401590378411367851592166796699030429648874623344893104818746379967223368924321482031028232708734705799104969940662523875929536843089645119610227549462816507803682819543707470234358094622911171620979669039279600325149534403204307618088422757038581479751775734480724260557831709908565428121522658720423112015924026657626267797316685122743284899791173489353904009846559277575632053117288671444523893819812377408525770168213992159589741415998319802011199375922125237649833647202827986889568300754867293165870072487733045469706593455102804029974229322273683679267042487035767312807712914610295761970293583173781207142687498456460133423015465452482208870538569713703929215189412237768576958451456402540452994197271539222553385895471251404850706065699446992411992965325279632946727284928457754021313000590289866001026012863533284716238726319820770559048681650918124440648948895303729371930660936051013929170965328392348883240050624269839235324462331458392636108111217556377603362478882999086707025963024613731971087719840754735494579750818564950497674260475107735752843406616561336096939782742414517584555415671738614547996110836087867777282670832331196566280568881608233169790187792036878797491196392020234991097653844342596635624015603093876821703152283729837795913636745187759420785316460637914442884364650077306748172192543056432004648646337071630178844469831005823289653080413101604410940132933587407983189754670318804549463056889480099886363487978368970751652685208331575805428005383856996369791994857318612123399935237909479950405248592159624989109990317802197466155171337439923639112794555614573052532134307799430534917073953664970696597151847148111357911259025952417365996997125659854174372619330827600562866176172402424247889814592286101283816355971605049190655102087188292783812699976978508968843141385221302337664946539908907819870314710365795654235642702808556778939098870731514484527984571530312090658096511023193374652132653027970505789824143197657422673309124554598447118147894609493215907806079242009229897734730762524150064815443366023590478799637443581313256326407342891675041931003157664891208138068765382915648987349743096907265378140404291379893108023006599870159039857021143951717276702860037001213017984172124981857719878362031161439127605738026705729977006456712115774000674994705261910055077473689528764074868923373871212836272844630334685806324733220242929211172167240712066177617086470206746884708580909176183812051042268213716680131752227921930687804105906866997133543477772048081552543458477944423075999064151936811914051234225883386745196056980934498864569436948543196035666680408266704485633134366481691979776523669554808629049196510642759277040825547316808242030651367206383845072915110906245447768252280314525136758080059815002698277331312745537495989572315681263181038873013336506059487729040684483934622774106695493900289614516720884311271488417553169035680569086895849751021406274342628011547065581410635403399071818212321167217670461349757695968055828702639800592185377954512351018585776352568925572771193611877215314370645441775392696168280603587847325612008047786492363848011790179540802887916733042124013589099663292513478467524707654733087040836798560210563590809210003365927138488546145569592567618899900267125815804829983165426644087662035557169743399223685982993445881549930250335853370580790060635328855799001435950884775090570684360134366556239934425698191453818409668880769488346925399394356171535267798425258436674855710157492868381594273090908256506372421245667776345807161935514368257886502873000194007102225762082960973575853629745233621337862925726606237457595791544356663589800846609824488860885493954242076682616815442678597525474666616405011989935142569374884174766642884118458317206100666963427869449004671647014112749552852149715467166247790992744639374510293069087947802797628469521075399390157189618317242195790858441989395159594536178689928222885765760739765156740161157568158142653744742382833562046626010650630401392966417599063904864295697200848085484460743046073399953146414767151432477959654926138081604600843383787763155127637053709194639390383765678435789005575174513496932200336946689988926157558769350021194118126427381314036296965940886622761754099320365690628627522804966425117151697893351299648436884091739872456015899754627954948951486033202311422372338974750370292832257884231372963512609023644651132541676134340029768916140076647849225475881230060694509740963058485829112760354331840317965193778740372907013449758072305309395239485464521064700125180362542324553726781552500696415592349415037155686273287192392841759935316582603019452855520124612986889217341432672457397552534816699944880773445062167768212320191085140957581286874627184362050674833034213629842297672925141289318906704881966745312481876207211459347040181277041447980488209039298361736535762380331870242402778963755264002919996552996982054166376394248271403335247381243946399359209266231387152123585729479860112266920670627055198133790413769148265433913465293266542163627140523134611146927773252576271048662463148622866004072845937151389903737513947581568592868481849472059870244051082924224017837898051732202985510891806677430403986044072349735353535973907446657167635358521086518586962014473062828629037075465655615650737408471896163520803281978976043763555750337313779211705405067156571540670657056951379619942350593303113161921028356332201644474779918631057411289419233836554737087970685697165016141590597251476098878829730822772715177525062716150406576747156542020742240934269178477400562099273392002049645733530748042298970405356854406339087785146940138725699853023023009111618707770611412384278397486357331523388938336751268969961633323457163716831875574650359606011337129875052159276198916879021374743759490066785107748985180312129209838098384499238752634606794985195404490347858766058016760387197197723859426490010348924171071075851738637409248145176409693888645379704996501879212349105998240810127818597642919032825517071297639874646767551648541732183040632100401385360732839862062155223920982955124209804324935305962763163655198240033031728472340035023581397255939818544110851747358145267699986416676192916830111694226134069433978334530631783637849898738332585289114954822077860118110322018325577449623419833204640866070611477779356214366187319392465483087259154237009131506848796717269762595523979735419887244616498613474616554390166504892611982110755697985908754977275282801349995304056198908326130238657339706482577952995874631461112165994388857669666960832816172044185505020038421249010860359130205125932073193729653051976841917682714135557566752815295874779954320201236012269923156802655562233997557184119183601347288223701739815065039701207895338262183246713178075176643161976471469328269680255617909808863649348652392249814917664610302711703437193537789867363592221495374478877718557391974521638165197753505087298888579430875040731496088579547206092876749913032490643912978805913391713057849309111250417924807031491326948066144655016934254835963709703738382325116441892764688228175268461257853947560402757285079132081247697191659767776363575874679295898690319651392002192153455924146446852106879958090973468329014521219611279551923709921557079775838058384922522301281436281598566799438502245019613403422312523018682819053119274106146618200796985092976215206351127497895593070163260267797379197434495259834299990543627820298247589290612435708047254696216353230381444550536711259112738088061005431673684700016579436607991857793959394500563545488798216173236668851282981673197219082254962340259689478702115686714190312260531597024595363968608693878136322020896113154726280869557731970153835516916252360780382035295164995707837302858550372014695798028664130947204971775440896725820258368348916268791598744315851291568846976003553913732453439275154248807013369732514205462750473740129199641621070532391410109462344502838399364167618987530960704283942538504022519363832079422461488434448871267850579901019661585963070361653572214636579905194219614508892900613577687721244325360970223374182417810216062445904320610869919531412948131702194611985064188159569690158696506543204957518580660540391672382287692977157078540720593543600369005511411617786326600164497987001937143141920056523574908317178937982368483832430866043937533420299343558583055815969979286456824497766624919783146778227594210775251670244055283231183775643951739919792991161319015853920977790927076563380181335963135409128935077867363171606489519088550943070899733597954158286004432688861271222793244643430637888889251891472953531597148351445054599501097502615133850216961818275109856698879293661730923413103181990403140633797597414864596256943729777204536853534841558917166283716837832913240622282380643758747827001024469787155419659770197984678254305364955717792483533156100449731098742266692898442343953881066717537442339319955366603877454423643228745334078236183769406429412967192351888190758230228636844927675868939707170447208885891915879905651642093806293175562217841940254569989816001809715521770141876627732337105143884291266537835492994295622836461655941891950755560659310894850778772664863182890759920209854549995393095130797011529940093755391158802463916424235435730581902829210221073928561048393809339605389464130510152518475963304436330622948090504864756963348867223066538602958356278800301091540633223910247689421509218177003131665442109792608710509104611382312481089586966159685823120270397606104516355748579135542181256548942032870173806436333338824706902613845741128597559874476303719633829086266387338008140372607550286619774428883879474576697806513057510116313563813205572576263622453378350728361518434341296085983477986867045371348649231284332580640861634517367506085732372516441151116142998610188329222501463270401598200683163759601666442333566757681630927526640679870245765458441973506908565081444793016362951424640931564570311043918903364629016468213212320319714213296242918855609142103364943608284364601364813360836321455576248364720168871684665251566323791805809025681096516941162650192893453759488930762115604828966260328531862389383933153058522214918988807070193192584364283194636713837355581994116167543903129682096825574469326968341288864757129954691979328749654829081719224956091528583839063678319967891586869549483794345740434968718117382105449214891084148159174073450184610788480974558188579179483131539457530897652451646541700835319743670154115999116063041976686129878975088515992834654993057791045389863559908221516423758686864353151521079311006946628516973109181419074701662508240117584877555578421904753892194698885914163641804830668173577023063174459059402587818138471391247416866147385338725712789965399603396321859278602284665806030921532492657888355037739256506593180051881773468253283592993319050798492615213365947657642393334669924148098034823713864932116168702190140942427948262106594052485236658790225967366951908851869561038060566084507831580501897697575479288884853730429280459289823119261700149159424774265908635640144648101418156647646448749376457320648008469762904966067352908347417878275333076057903398982510435763443182326394353863397311102436813113791124758350101053461409874199737917091596247816145684150666632848724139346098963681985772517116698328035732020521696983137104872331424123371385797939747212913689413173084517110006383149869098251175794777952703914550775290557423018394475956122337137531729172985099767648904906883225903392526663001411751502578843555439100921745521466447786187416056178456761891617286587699268362298993940374096310812597168585863982855961819085961216466714320467268263708875636795648897224931457681454724462764521381038131511501192881202357782550403909184898372994209615042769016455247155896010646702766682981817407375644047600301200405781715592294284711465558114418457789440738275668956099163239529967080653317322283589128931216956673139907021033159074765474544867459441887732047175865718984368091238662651421818041359505314316354651992401978385324394596041346825636354526903981677069910263065619887440549207889780333849190522267601374175993661007440496040257043897433123757343711557619354765771754198061050078627152244525323665673791766977714184197470430258611102307416307122593121220669915483266696412316467014511892469675351449556656577534364914268773088937299873815036176546590425595713507533619563475027556564615161690280609146043581222168904702689872758216456187394249818897498608719073699687891969067034047318454176977040283756833675309131483038822976324153925627725372038215366310698099785892078795236121058417754833021509002887664138693694832886031195288717669317358364399353560044398514762479789067529333839941846556304099180720583628068240037854431261642450759609548921501387611523900562364533307041616046210732403609766920161203141348753127591514928374032144267591718739953544462131369041041494324048262123819337619725135783252929959012074465697908522526551727132873119232565627344614266655855249715731511209445077782247829336220235385741721723488631741175458842979873484588132148056565038440664170717835857968264504638495460973440008971034875762181879483252567770069594249306523866568907070245760433185236389375779152691246376130820020085836519000579645202057803464492741795995849678168896418564538657729091337583439700319858723463508070682116208349727237628854560194935415393306377166955732518860350058096634571180470420443892620268131847087357762282821302023856688755560987080144470831986071758277010714224146792846360940521555514476087773815091046835594698427587600107901138714896527404913421539063262765685976430595371733140700681092675820504297673185481241170423448542050016661389054161670290786195790375054642529045516121499469165525775186255165053444307574551940674951978861990088580977473490172424585805742991268376763743628258544517132584138681770232938800842260915079813160488425383882173059893974312355462664495644945550425972761055836095853102213145023799239732084564953603721762580773466902337491771837698686593063761790832238835715981873802034699408904471733254246853166663353232124294618003758511152578675835083961627937282429338717453101296869841717112916889596456405761588308536657240139667247486224147201279571348132438737981339368865499793448372687922212627795587172861128380894560636828140721352942084328777957011527866035835231875391311683699285186295937136913635122042830285190563620434846706821201004475174351122312746254875657403473831108209279580986519384161175288492351296313028114060789617204279457824216379293985953317068819870861021949507439036335014170824306165626353496256670499502469139644316698429275639857867441977212341645047872222792901587431883219040544611065878444479726317779996065444006601347490895917543223761688836590451560138556968788915198735436978144389067162828113320524686804862102272495586183711080023510870033233616784869870356133185749194167908548174655510225955477327877369969373150622540247612871572633449351929399937252523546945426536070995606099935656227857913689761916041922673952445654242564453021274767714685708202681927371089436160972618248143839605798732264285630260107515472474963804404526992751525406485827039685098797939023926729838628614604388775459169801019601136934375334603858935388933526099762607287006073676884917460754338102352576327729318312220105216593301465818094342041678304587849862962462073244281152989628999890533366985794918095009275321492800118708981519781993764858004144682603796366246292236090382467936380723968720433256346029242985884951092876407657165996027280168704291213018439067600810037295091944612260616278920126220995466287803723322423212028392326579491437415635327809655821768938508415371760496607779582918866104929829121130564830256621168285876377006656946238773165488574556624952219395962063892641942698767648725479319613168916791753870516287027145258398456664565530456404727583802489016361662787494607890242510096260456085283275210725619360337421589492496762155482233237983250010074132618193749830871981549481649866794213167148126956438310070438975442543302466681589837412844056793351726406178847293053803789874122331315660507628396314794726581405363898474924862668134627035039329077990055822346109848963942780641113855899812269818500896142049292080900783645947108129702392819224923038789982024620942721686946397923887274390113372411403463881103312124255795072930493041231861091332151291266802632018464522609371625667308689837109028426327050888013968457642309828736116637611985887662565587922912484893940466880219115679149625390172591626283695341815592269099916428725338358169609726788112706598270833044562942203748507855506698119855516532998095243967868392475390212746877651911091167168809572559912007190240588536183872151277963544661549877301741511155813808812375460143768905420579395672295586738400328723175137442327905625098361243939345861566869256306247628185338926814188822085248385718354026967844583960236612319253992918920954440713821751363222150640362815445411511559609318131473657894476978945106646271321411271545855161425599770892987137435211882851146006431731848122866952587963711633826207345624214521982890224720220434546379420563075168883268728645459302618256044240975952202633180412790542758748606180927198481520908674825390517374094379349126521042030017908085143867504007189288008994999415511022997416238282566900684203225442623696053988364918953195279284292566634640461276060084127861429126774525392779870477742747735324758998195153269539745128675693622106341878166959311643807507902887884465152760825605468440457082164321538096018922484201833307680752364498699690140740612887712493382955747797942389436071510405166634844648920217679388110100206556065174030985081440029959526848605865504169784560466726885653490447071213348804979478651686420822443783945590708099585340428519057166670328178087285156148940505248060801148623230545077583923902043626188469082823656946666035966340771437406177397652203266201344153498269428785479951367362837153061806840634351646344631484814399826899355137608657823203250014351021493847760407344030100427278099327763532426135072213406849429972033201370774619212670732411563553071708822864907733724421704081318536567529320430810209988379729331505755164104954654047560594823164998476165329661437535048695238761703116665414271571681777397371921496029033528075158364938241988063568439551095899964560484979593226688793946862940198718779439373726247631749519252826323656643656684909072558213214413783215531875048135726454907430818805231810313826084615978383928653772288980696977345276773265045752004721487194330530512847962914869662187687295180609146225907722224587514172382800656838263490240262197151556676193435982944833943520905797945472894698928536370797467622787008296221933236059998890790330933395872823432880176004201709712881531774262772515180032802589068364297509234342595531876132257315140686715329905224380607699627222687518716270300855498221275511583994359486598009549008160790538053234822340176412251032559679066451935331600736701857186529047938875527238897100192871942024812052873001244420245373808523191781982065239727417440071321714134101681246846299013667498063985412126094093517769833767135142837365954411334639776629429423564432173368656168512683433063351429500344738448035470751173076594951608074357193673854094085235700178948013786194244019434826557524889901326322627128825301090060079798980186961704511261852335238753369057218980962094009569838805539370749888303908127538083640927024933343041972900151019348199177538967324665347002363250220109420678312538974482124923712146395985699224100188141526685746038951211978786651290740241117334319874273446671377808200480912081904967895949048143525743602255955048771855842111175327883340487495628196571360841506987884568062895089170577502061926041233479263712752708265211009330138046102696065367289534596908812757891939906317327293680902613558870019923335668671875909558690796320073786563953421104711950575258556546216725685342869280520062800081414453937836253888125591147480805561835102094261311609485153405400023990054710191598134968604700901058415681670403531002786180617544365598622853127483906330002119409756821646385818077000752800175813801833952239094463016259798457243890325311196908975403235214574468074531508581306471671717455098731544421484658618723554907206260623870136463533629371561703565374462495820794281924419216589781077909931949688795890702847100240747062129669879975624938916332304497714494300998126217583418940779412796834676236614307478139485927093011348962382295149629981661845542791147579774145583845667955613251109392720239979756001146734011055948175879763725927842181365835831366287936688313045588593300329831442315142028588648327599976329956193224384785804859475394092661288066192731495219374695850492636085954017346866087016654681292941219869561557554121668456543340662440332297646426923769808862234782637336374500923764141041922157052243213149576346774676936160551496639652011129923659401644128836789067601086938363064918707541304080469219068442343306190076643914564434972261258238117499656692528500154609389877987040095738417295967361405166930315014333283263924518834209354917258746770733765120177634571411646129527412317537550865213894218098053662432602296994371675116161829220220144220685097828135828343606966482068846883235855054282035150914081548379917529718778182912902301976770973816743763858270196135046939269632382775752101648761285256417415749459557207982135098970494437140421298646975718648539309197867005019861306839564762495253139819914237469374364513483055092046665350381312452522254272937741513607899847278263741165284430330936140451970563005865174887237899089565470248715190885435161462079774867678885299266086542368575028895718318053727320008114834331856725283958834387150449463852296139627736242113534696368539497678778438924300003946629385086684735454022333725757620256530588666442544080440885526795155345446048964055679625502350296052296169901829398222683045083644446353155832453473391553100959781016153548248279607613759995096241732121915266231150415120587200434865489881493236298184017876904388553302378264306989483913249260518653141152950571053939070808471362518908519457874173997087543620228373145970926201201695089694126482172096658319891728095663605092593489280155527276297202315750827385615683030101035744781577995461431641838285518718929304334255711351599294748026381469220945332292759832667630733373533456654484135276002153566671877704973887269525101810294463206589669479494220930885938521973212025934707326232530179860057936340573793070226953826845172553073399295048732100398778966710608950755703988903337477153840372258081926935874269612519117218019064819343438874384512243878542756454762170616869056953846296316577669841301852685484816753857037586364574102755819087278521381096429285063667309342168194781970160089303257916406789886371325849213760224086023100487519959937241878006860258486764653061428807573684224854892189908824834429283629085176475420130038665120317699368826649205741067433151747913877328315322159518853409045347931377942590257072715811470774268644431045352245494318517975136436639821943731838554038975583175192800762380529682502083967754220928005934349284304630587231607689283829970953723123903535393508023751386559563216516221217070951003927214235120587965842082063985263101199824532579472463909897065114191947961676674313380233874032753637590623423996372115138286776084104982446733690859583444123047840012867289045129935668308696562532735190417640036731013554964928176314932294400677664322962770972326260811565960124809432731172892900054323295730725249558362683940214421783266990721655990959252565370281464324323104131250259086884126200876460404071827698353398000396366737414856253983122276652267446721651285516110531273727243633877984963673306377389491789779299719907180268290703917228370523117394554291263518131776898357021625894849933093905830077248172841198806906360748190944091448192040817271120767036092531314015741821216907705872535122063872964539497500249854765885746798576051624844051572858003556996184219806258826263393520590932710995310849281549917330969376140731134795743408752211875064882658001895787268738089469417799773871591881572906386355612693032234576487677028039212997274620192219924001675907238610825133393332740090024787828342501551032002639370385420216204509776152337870854297414286177174343687943717136999199120259009627118650202704677347501840893399092980407843192359603403470702730597021720561964173118114855285837544227426067631792672143506050007613174178232546364907835594354110007682934990305393885591677056624043229422323798442686725098449986171903888894346145932610118886930934141739023004909345013563456306043265494177995522907712839140286429318787924182916391086154593085749360044411754365470409575169628925247407860011998613008016397373493115991620056071763846530987044635899678934791270533724278302327198680061447738904068232333844789653862705573832703331668274073370439610230282966429127148910845053977402803022892354622518572398271451022085399450718890692309301629465723665659788586413489506520197789229350047738429150660878465093714841171091906513980697241686739317733479139665058104704475474246156268706193009956570399772867686507787220404004702117574072131186628194601177068665146855164336147714738270557131816149628183329539590303914543052146189366667512873579874802750253067838432849065970849505978405165903046559945816463426613844651260927663584808629776984620575153176487433347743706949841004748844940958844688850049639185817768739042595933376139012191732087571969431734488164004952465637518983697570760442648856811334233992357237256923290201858446812819267680196967992546986008336041938368477531107887595635316139591792359956846412470941207953352434591504515694467154138833819741023697011306150604716666265562558741493644307258829764061877632626364247031307972675722795261490177696784892232313514679583723415349375686579049808425397057774808850294973051878681962243227397192391890857274674760200205723137821379151971052586596967787948931414512958573769939856512550712997445805048529550170177311322690476615733277171882492272863806956008411875384613702559480552684751570306959202786845743587669151868902269258510292529822910199010339561616083243439513302480937492144333849840620406299430873626287964682774401115355117772720813285461078519793201626046071686840592574379799686038229136009571521993531979061484036380054179316756782400202887187164151956699150618285415448767921211086429561072667660806200831951882890826107185016550868176475175313880544203921863511456850512460070692704911616787811464383014075691429198378963375699490118236704135360466522686761297458558461625354547850494504201020962053654029890467266861850422221564623486724801845136336961099811846816338083660502230867947363070477940364059952479990869721730424179185590110344988045120932826727437394965366917511215284869816581684784814316533007398516386986353219617929189922934706551239244050808219215662336822355163931952146554279660463694518578593268879454988211628889454053173993887483001288209198924855264603585747472460562403508972647330006708580250885231172528248997151296969509736229521364036793076465707880956226790059306806246168292307094786205100778346306062516697998237033844363639950901862066944105088798252289395354363110065044146830325404771998139940637306633597941112132192224194995853494718970674011123191200007599658016432420030973596852291229972414057714162452510887057540794080585885846698371238291249731653219189049746755180688112927614772393086011418666404070463003033254381646258587896403419990847583293901846182052205146098882084863998559056396552027747237414991025831708673659661535087084508218945037209489404829186293629064686392188160773230384663387392504638579729779451267062327994759439003723932051021899185230271119918705139907161507502477626993837740205423858699370001496826535343208919670232234764720422363459848538022280382881768255817752120609661853857989495008616755074619136832632509898272249469072716313746373574681611329788496998739491448563607677839689401213331726917619148340614376802457196199227426001613035146867528577991717196993383483116148928717175351806042817242117406439160944683481874727234735716955835405651015085081551256325314721916933342363246768456796757805571332077103104421857806260626335888607781715948003321162137831999005717745727689106458692903754320733298503674070188738952861436982980274214786957392154424062846663733772341332579903562659172725322869502091829225640144721599215011841655734298763805604153472681716999815557937531064749287736046142830042310650491482792869799260399183125326120733744242681938940820266279748096503020657633762446902114306427552436367639017759434376293486986259633541388989899346649009480031576472665691374829573306807635119201383414716566275745187246054888949379128900522167675619000853454609125227287134505227790672005283766099702457583763729206315506350446317877751853651328579649469700868111146251127713348078839610743010553198256253784074249409955209821348905518751015273996460518742811145036551239352434984072556618146996106480545702615656771559387113319142187738605033640487157855438314217884845066259739320298330444722746834304361213401301864762728492548887693032112570342183070333390337549641626934797641583116011601057269867808237500090550907378676102932086444116396906157453202893491044114624068545526561362508996875936443333837522841964358602582244444472344934096150208197267416350969050270617847187921864810839807402049122934556454813812964034219590994207329047421803143044321377278806565669773959569859685520828113916445506854943526881786578555082253147936536068894220227827741014528632494870805369784924754840825126675563267949217712324990445195989244325417584702125583085683647096996741132775847839654214877933022510388111968882333138374866481373620693230172392415433750369115570395025496649753905546788775593714843563760308713401548428359193451501683416912272986948076085890811703780530451668660680254279726429107041508180259042501230407058333709279179204662323710154932808680100137492986019678305566664563093852847794965054957836297441260213475169934629207308124654379860193560133616397452850691878400477415835517203292943322934044175929674761302063985117352170631544288408581627608215680448253484217395938283141450692619183228906621459538123029951412533532998812686549190229298294647962859643721081186659099726898736394456121045916900799140814251126701972320458393362309961527100009974986876467387616163349565941438245605099733001325967858363406874996602633946619984813079434453821978613149123826966070277993689814404618631719336035710712877931230240674774925273733901429369450563537225306989139344475807783717009063730911108248619955417489824178631247180163525414294186037752171463959543952037087514273026259895679344543313628689729937923345120040596174649335934383286553727329799706911255746792123093718994983102768321228819828475547865967783478413528691201839039206754251125354851543081400732149778400517469698499014365642377056177226628149750559100520734473788205713592731680031745543238483320610381533837647513037536304212890413440859490208166484568180508522608896630411252822134612461121978488312700302098006646865005025511337066933637243931948501336618110269132707656564912175489081036219958122642456673667665940200270332228841361990075666722072375278763158027663722881891989122179428690070406218409672619354682405535786282759298382185898384397608439568282454293258586134022950226688156107957080299149574108528717778111660680024312445716224435195657451920753869067782757972013755139410588174190510979181077872250854934265413250576418069025984761093606653077535273299547131677829041938132416583798234264609104356680394343054329365553455054845913505108548396490363415918830540966566207668145809127071475118345479686118860358960208621413473673386831533743441280021893785287047105430223796679128111189075501262591838542136860304859884322285657353550083319776338727221088729797050458113904122198545181533364550658839203965748379165005263954293996514175559001402289406894864034459927853715303031929040414699802873536105800056333336206373201562305774710861638395943385409544978733732067454601642254129696158887353551634746201493532013816815427435086621512075377169550937436065637046932329355376413594925222352132410017549657207398937082286842265760596651458819561977938758204683332409492562067184998755371135011679088873465732526641289161304347849091473677893281665414232650160973294052263483423723836055612449810912429654350659145684497617731204254422724851630996534764334697527250319962116906080892583877725963210994656483049402083355424520695202086574583775867610374827264303599640858501347123248269946132573025358555107003535550580752825518698518730335566495122125307653268566792000158193984995553372751878666056315789465464095097325735301770778101082593232466066726006973593170056897185131337111375935688849651318324815856185177094875246779038383272087513379530942212776374889576413536951002009411850268656151257802281058726755509077005285525649262953585711997672653005712512387367304874527530707254954659828546557207191500671130088252971878972335561652318479195967693133229589200771431517702978681399234893787350333048239409193195687369374371421510223256237764989454884339600496018710508596054788090986567056076613425996757553301544042286216974681362631310289650033096144406099382108391020758051397394446919199629779977768146916960345941345721290827369735589449182614887770293816233386552566261256213460913893865822501056512380450560458618511673611263967073903508317218440916855845394133606158327738836279248275574876346042309293076684266678274849810684260133534908207936778028605375759614469395573410794834604309953729740255095250102301754094422678189067916093814927562104978830092641865782781755521984637439837106008534721734769921933597571002835022317463829011175511157138392831872058462075903379706531998944055272731636746917530981737313577068869731932093457792007668522757471411299790648437869570980069003561450066320049935826534991529482318739920362866698762324190679834907298895827479279629997047015954020978817737314848682350135413727207430153735586846088223872333516292604209547194252134499265063159245957781207607579786627139043536445814530123248343531350214147123789681598055412232699402709090915627927523271358435422376978906176009383027023237702625760133865445835195912131221893434336218158435433503974386803802636532409728688447885644985898799178383157023289132953468511545121698247985674484521957738796163346270071676353402732668232041245891904270214792278778135297845972052951133310263966880059785180092869096359319676290139201312020747679598014524935106267487019566829618340182163569414639457717229171166429891584682825724956858876980214772176126091605570588329092339540245739164379246738338858868328060742425457767885632334982406692302862435683788717469342139619617665090631895553172234226633649039569164577881787633900018460450885640872531059979530511595799945768093952524462635004705808496035559020313458550220282111785624283284692908396163009474625197685506073163969212794016397107972599479251467961200132406768499782151266975253501187143738765191842024213484771243352268454793199763593495020334911879601988873841794270958957469057156973977084794779917969464962522214207183360323430367797328968901992660981378238705412688186872346006926828025020829148152417379498911071955415364523655372908725861499806825213989490190766858214424363093856537800368313535905273675699062457525760189949421834924406642779364738759432838001564309562023181899526379618458895620602535891561741661075660540195035706076968318918881257510966697496195772121885451465979671845923120103746419126280918109021394882817841778485694405831696561233535056875077440925283066921001378007681391830183802930295443160202846240322188125797870863599610778570234107449203267597869419524746761329504576883240122529971823310381484289567230019983074340673049762103972509034306510393883860117635474596261023475261827501331139928538408707238198563170247831255976171520589687011628010642406961165429583984892671788868869921621708626801978656413469392348660081492012375699120805309985358456177608062021914688854770433092702245076008403345892069401968717899212603598187714221974180779597945547307753776316721328851772271694993572940244074276201129885557929711722338682857570186722920833842940205847928699788403647307328346061640255296119691457841823185212825642073267712865399275979029265462675112771640152261106350753836159934387722321030093937758401656936413232997513151065307392937357812511526942333130907447156671501633595744309798979423074384482919108143612170649355568029438967607435674946298908730970184869274988835215034585879884367683888045426638024480567022101206829053697065284453454117708296856766377404051241090290576612253710084522933452076633379138972628046205563468555785427573219820001097556646884881651577786952502201616575383538783582704966299947055630130616472250327392229397295697297421980195771777471233621593133834666191402670216579034658648919414326855698699221978977454051582025763353800733260692235478756087934738287451308007483003072075862153008657950307301615025895976537551422917754473134728075339451317583663318898469559906516976211218185215632927789616002477279776246357362691278817345765686340056268586195986408623624455184149685518572537204016805250723687322101690260875177259202063818134950511058723690536367125386706303248225513878744457038198738218934479123523705356922831880405669437402862533805793374978400854872137117596261790501234820373475101199334145240439487490111184805863568125010602706860964096642592969126940685334248399828506620576353439933598019984171904628039202885235341518529977266450047557104603532956723154032222608522160757531229338275802993930687723509075230266098986274869020084717204194291497530775932613882909950585558810837033669507628078304106410649844663777059499476562831547099288251778797534041190090342205903135132501082071212237671745003493667992331037514683022927725685877800899861048586391549173375445518566298958421367937043196572758238158264766961977861694885285732924721392592921137744046395825549554385212934769317177120019508891830178901850503226390908266756933557003267870388290618927674626282833357007962642697473802882582884616817298503390888148828135591073595696709309084770491213123425624471965487727406950244738241521146733410495484420822343635892767627447639324834407677256945061985408082381583697800935490055523110466426767782083110761297968543352026152507601402653442925164894080079984533494171914185938712774475226871018598369634561854374997523669302005460802553606268764057899780472402368118874145821394097073699378547724426580221631142463013698323414191983777267108225944331756109849637580784798933226801600036217343444591625105905350846912808049789435760574420508469784474908005459646171166213592509921139363680717175383312009347592052500588830128797281484142011622248087510590819947231990598371289473822968936792664881950167195414004357818858295776341517860148602063034565066048327725343620954050163303252411102650341405457375066208964211512304739324918521328408826161412214490613486211049899590846544981496804587703838864972382924495659438963960144823668185963943325032862068483577565315840828847259105426858155830439571589460604652167510541332981156411891195429154785614338426241022963370998287349928699307533089447508694155945488205645823700934533718841452052607155090377326444200690723166434653651133261278265648789482084650306425142292543785938622678371086816013406201044272176771303421801369677341394575322644674519606759840949253386742745513250304207974269173971656607998178245515858461050709498064412951046940271260553910162056147663458964236914314030327852608586222008689137060782812629809214609726869318448095445796784141403510066762699248319444035768353211814789524357400789408789696169664120482671033856553958672831421587694439181921403732645327848364152991649319549697133611517507671379772134542236237479507111803909513293420543591317821707344823168321233008214029133564306920611220650253976982603329237073177664238744246160289924972739471081784334945030933689498504010942524191472886909769884813543358103062398017475392268721920015516374327338431250027014716671887294590538718896850750220307527497517699243152481754443099190451495478083655730021160277628570644032878047818433743783408173675491487134979312126376909816356815019219583932558080502089752193021021837383129333144755716093853974236522968388328854605661583893795165242466052592732084848701173136659657803415703745674247428714317833264317627003777601480496486401431641666831647308784454360526519385285946754751065837759200685829921165604389084782389713739726447999724575300506568666063202784374649266948537897132781679968224494127530036226680555529155992282659162945224123451065526810175504412617616325650978656132274803720032107703083977812298947447088200082739715083782790271454123506211695826826400102282428685962186565252873046535782679045611106448922762484478601834380358489974960114989750153111414592437607167251266152318769496032498460893724408513503814760111501717014554059832576556593702832392059597135548695319699435570805679983346706959042188771494460546947082089887796205089384527785932213325367101921865185637082688760877475425493485705648425327117893985622217725712856993911785188493596517351088799813399552788489512185749116418582588905428808332195319166238124127945349583553582739206768804671374324150318900825596438854831441568071398349570913494970569076510772969420638843310473700787122562401513937913889244290148444541141315504550133554289143140211484743215510117405418218338249235391572950148663630998757922160488228147601013639567162273341345832808125556123167984231349567438965097600546129779260324217106184599975785636705510886750628400554454243574945087291838352803406167964585644031790501235433796756021037434465886378858075669591723856471561851806347416137949654136641786654162922777673444013656722513254072967716448107443925675929585156773938995507554127743623215762189113804856352818084907986908361497856313774331998938728657667780717595051090397309497579621211064731728474341500825300456347974592399592585839295325307149861839804422935110581865878605444315577177309670408514421345820654632535727574425440074203734575458706334175101394524707700792745549218401966254827722350358215689019035033864209264329195831686793685512164834358810806622919422955631546493304243749061351047409090296528538282826817859397866758640134336609484122376992005367439030035434189220277336785750979347724524085892394874741102016860168161692583995223225293209105553559684197408575552081538746748783846804462192755037047535194538118056361681900463871371861670358612479323755153622714319486901244031987699064427715589878255897510386433224921457098596957409397406815302570451357131565820688152361302048237345782578126401457271544418401406146809782044639462011328748919315606176499638815106763065415268371067527382579102211097859299296156832396808921909902136593797599926455631127928179028096151370235430441119051757369625496230711442012264412878765920158221789516628357087618167241410485582707030358052171961794087790056350235890905889602043543979495382207342558013238268360638348052691054620131890428963434113742619976106503590438052727884292810700759599673006282698143805876096431453246772387152175861807964939792734567439245995132538926273174652739165138363351668247037099242293093220976228594469099920412807044581826489222188401909869423938382180166748943716361548106866575938542554772615093205641462008078618955341434086442454075726956446592227390722893538570227358508706565119188132532187109442131513122918650145973618988831179199933517700408300697170147141007675518063612073148461983641895444298084604054633507533991246119478135262800178242030373232000525652899602255744315012573804638879489692894892668200277900298495830158676133560209383643790894007216832356373843365946726048803644190024221914021014705802893190405498338796553211112583195152718985206875513950822938731977309209769402028961567990933464652817677309489523926360937783424605821342472813506328386409896444239659571961230076715892096857856845274382213234944026437247200914201116281017540897754963605518549872566843896974373085582822546121732112776807600001617564271460336077733138181757034450333500179340570192811240395131411685379635213700410904616289247160157549498459031240902489693789133051620265257742424073503277141534711265407835555571747672557213018353120379295721633417451097467027675944833712085220010140247005668997174396949057567719603181000067223399032352617849244732277941386224736546907741527834995307636712834693599454614498319288540683497740050042031175488542707915972726580154289877180173136595146551887155046794743553344768457920756081556431478756146005244960605987401584795498312273978828194707999266411198323545916890963184444300473991514921556589143125521330903873422460287458794576356333006479655047213023464467384665166752304211805002610134668679218012265722254467411375131832237087657647622971056288827948475545990437167117100854701465412852976402360097182090817473470637069719044870065148265701863591181460927842138972023053902928978220824612882524010591731869427106007570382395183935862339715434556612755314478586633862864935939575034210692330317394887289899554214370104205393958821165153807520749122186828743330371345547910695282943820783809112487261889186278671222892040599463529281413691665473885670601517157075434715235394837347405770773159049447114306756985952599077780616249651173272674141580332204566180856390086867656825559332942886825975723439492941179013385112383378218896411218273469109074331262783514279559401363236632509211996984851080108380168530426706752866868830248042655609071709719399451440936203735685551832203923487945174217178991174257810976942338713545118111572168952920529128601439960786086787243308245765751812551985726381058539426681897291689442548331166153591680642217095432259893920003588360431268542719646079710812951145283247291756219200866263858954294886721561783403624813446383467458086983592777077051074680710042569570848478492534760641701644176158014678412450968726599889288642388718668263354046292449119572672632812378084782916247825918312525452394008284358708341656512161171915131886033789256073402881406670654830456491321799632365686354589875076613679362844971386184053758924832215351637398360863497484055327163037801248632815937301123777924666164967473662577753429325769027467873284226931625903351105041311737900969743877983419796345037024015541130306258739494206949421885019562732700843380731744334513773258339200008365502045184575111670056143274569454430739226850396630226847674910551877548621997894214791779362177371296758216640653907383250600293192434616993798081961985045577173367721040152041810857258457063255131887579809385574804101097689868832902379789219939300225520627321369535240923939703456255138647110434063040119088156395985186903809694001279495497887921853533402238503258463345132621024345851945387414585806147389572073248096999722806456539518485183197943500512762530719488374009375137835772337306663430245017465338420880544928340822602700440846798995291681327530275287087778245110647486274549585088127050208704715477672842808383821602278475136943428555240465664242692013169620812906935624471294945414302678515912798778731708036163350125567624457588696224231023871291623971505849782465338297977288532071309798934140096996422859033840598834841101824692884177888876140079629136723430879453655860870534508664173300658575924452756608732239738343070430243607573766152914387484546068805711006582016434126040473459353012310864835796795200973022889931237428114863598386258623986838382162812720573363231267244474046480417422879318849143133866242185210209107440121626432200047152117676477485029176626167162023299504720376734224109706396856705329823671468630457244925672884281269647355848993901776909582650987074678085493740123973412123531300924156840608397857192242424113659181030546065259695527355787647131500138756464994860698075728504005398485979453439670193375317825461879642722127294125910817661884189243500959818004154815892476031188353614310281718894834222487826752398264563162699136360826011198555860072973674926953061703299098161955252570175319159964371660671286415686373151236348121122997815775545536695306768648963750771953771305726337868313646764773586027304377333981396783947336748401811208199726045799094981127696882320300743651024434703186588728784574504604778531761431550407508550862373102961154836112070596921184671556952907520952530158112320634421024969948433914478367230084910918190809782380684174400141554924147101413402988104913123261215541038698239664477086983958900161333738298454416244015516171478059155880242844272835585791659180386057436756129870912449485031910769363830615043865922601618373967753921675763734015734342368769862903730185016596821739784220749603615182681508873072558212603151739129811117537442970209205998121080472826873295199306164763289317250232728505570928138636700944548376946267200519331409955220788041853600071566336553000910877337142183283761421878229558195965107733043720605685841165510299011551761467943680340096468802816282300125152196747962782587347504624604863806439941395417001799202822499280827445829246041846277749558408707464014653744391269188742095038526555804308786545543630533804380813234156883166887790651801642903703054463568927254967745884666537325238596583934529735898205236101486730257705663392049501572355533172600123169119981123492915611364881720348723904357281676629174519427939249814596758301362532036050693317989805916521037245957966759274670278802829284199252649477506308437109114412400979445444308785988592963309073206813875116190662383717744676798007423262217231620615192429773697489302001620282149959416385540499251880420522841563923522606265299442289634095099464749980235241950948725387569146355526433904910095274495902364482877102270502483424845464108441455783040027617469540823824375526695292189564522593204542986197387930572510899483942351725976759381876901154741671300677063624228873005423761936478051283007299013047087709877830927276441872942047313661436175869831977465172753477255360785218291218966507570160858449896838273376669803523630780252140994380784022649226708808630147285286322069028399650263906225949638405995086313442980837968334575936810738068355473506181680607151869790839118305034046684250539666397985024340241384921667740155637663307839472918023725006093576769974003293513037384015838924253537207318176991822656516538936392382537227893889477398364753460060437153951675567773550878101421995295116702318526841180304621767433698770571087453830981171028405317110629777406331035386800268543120319476824973684860346982950182324090020099212735904704264387307659798499077055001186957669438530943005781063914086673716393183235321201112637780709740655635544555777067623682845493704227575692994094394798366318494659052379735368580543966884786989505705586684198916527188255569966234958900375381028314965693486076793552555010473845068078670361698768933496759775282470746054166201752350369509693240537319704885150266571402726894877138333960718010534646356443117636185366387647870242476832639447086510771950739851852608407777966489842866378183341593349382902874167898753449651624365157034781245937883984735644605894542480284725930618680578268245679885914222984185451310414042059057008496379699876839463780506953943143520974476082625822145588046857835885524636721359165198848120269651477096319264410920783663208612347734876853027132989671857208557970858343017502805756628876966562907526653598037941040646796180220965567087296215477103495193472822113790460121441788088883771635328736697828070409347722590241151240541313435393401799306616726347909462132574417467847253705875052703038140578906576218640008752542324007670615937546873878030988996722954819246466605445291318178438084716076017634795037565221500831220097983705387785716101440256408671216928022011443595629552817242623549903750298947467364004155831880113730452433354825622978137149807662028719881231374198913633603592370232979039991066298651211305026973463312859573030897864866901904641652255321209946729201912953276428201713727130610652898847746840038213999958726221890636722899794139146526261344093923487708238465135683539108586126927588048643598712940553719462415730974894922878715955089994866448451530247285626228407174472992883766368434712245999737150621280479537503143442917082195271411992951586733152407657776624271384082122010923023549244096455308465845308400804413520265098461808430912637881674185774477366480826862405681114028664578677417930350751233762813222653729266543448021792203627686945573147298012597338097828416438888907653227978823059081881085107445718720380507893922066258253708335700878157986513317889074441638575201047770157849695999403390530614615620977337722081002777521998729329673501208466901676437458476303293992375938154245159515695197847004042349212809675779482869705305222621159348764628730868024667050817401413748988176061970618210868524588994944128288710863859226695769302859481517074604768845013592656316991737972821818842700955754988533765613332569310630136423745447164979684793892302168522734262412908394325193562027740503308456871707714180081502798205099413517495555543325449762526917350096792474129709138726951731296731630584478478554570708504778587552445815634690842810278129266811161591421230588179194480971309870966104107734138270101741028065307402871575231107400047574538479634522024681946703037136520210835569954290611007288158701502490969728952454009438907911331537101096494743328838951687896603295652916984505203133387999025592930374227364592971869272016220049477929235405087174062430276768158209175650264923538035010875794251128942802854626326114084723957987447036701582480030617888711035164077105562208558191626832608699295766322412830653934965162775982852398986378925678116126497041636445999863636264614159631123455942735702291928591742503076537230721157724639867478853439938572628899223929118157763898722830046465940850574590136280509396587494137855433016768455086847608006490162085275064708245007831696672521225312371352199857119459922733921778630695931015253280980615278643061666120672486917611991668924727047556902691736135452341448493421323552035180635077258882694858799008716929093573219683538601872644480183649825490665219855589186099366660200508690420432198478231063145713016342186840603380700210904842379023536124760741879214771766823741329632015969843769110792694770501366639988592918609959638174869340623679167536351267203024756537628919568677682674822135005002908629785051830540332325347983661503423869493905810698694855056605271753183251228781349116655652275141833696847474797418333003510729984877674778386839960845362539328976548454829893904821549765105998320849011183488082348924341745875897240159944252340248090292851165456688263977602218141220880690377756590372393674231054856983101540658474488861792830579406255461041787669618435501251177539058760454805248832656795601803004927036295045853045701220328482666134522324602754952178898672450355136394080302206396983951344112466073858308110344857447205091228299888347325722990234091289817459065395320851708682165617969403912274020232465216013894930928525637062407065552553605632611511176149035112676821923634355431855128439651867487159872758283769720632007128906365169592412382493150795651543330933359292393827436283381944482984300280941862512779836729219921560466551468121463339625452795026937768746214126613548152273383483636980092742837930134647309405214191093235957057292255920587550382210021111394302224959913170520020563140465414589398700657594417644683703411772912082616165090301161511999785164851600683816238243221897156987902290573589839470311275076405107370757076302387858553876275847657815378866271504886538222108314890113766483527403318601374937267335417835978463456980080563297627164583569636679802554611858636934637914192726481841876827176019202273199919588072910945894042974730232898957506361012481685668696803782092408411609021822005003468026369707780509076983283090376429344405089370039589534753027443382384885465293191822092669039472328659662134807311141061354128161051922315344909640723867370306288371720274570204968701240993563566442683112977519324915304640185328713963388153588805905130530212165967895815932788195764678405170102540503919555687622411434733445355202681688005512755419388766620905114901263808385743267342655029871568514480492772306423793607880355178871009827027468912378846872088340613650724778492311220179689310968128158871951878556733597594168073038933028069444905825284797686438081508458128668890460980985646561685375834764036444509620598477955118158600663211761059115523018869416015782448150252406090435297132890701947806163859555044169372887904840253353430482034765955872373370546430887696528580963795462143059964424279352351769459494287155105285162699205592479245218712333103989224336598454458386367183682925481537345068872130711025345190158416871685261267848964655229389767856097563321355888464663757448119730024989775771217206415430215740895431362497537124562121577867502905221167059808573776342068933296273749815086919894197903666321992854639220418895845972902347617018787571679659948974844374160421416856143260119235623230357055539317697769394758319849625390453503740008316051352836203756662443980433645605108874973759889851301265780221605414048917694570612530426989376590241725327508106099080022462230508533670165716265906344686528347455082517385902934221211596109156160318107415127140627942111588079745009473024723663583275286742380661780393251433155887786304498900574625322321396225136529359147260138540325948094182598764552126707275950354287727068952176975666404363192488743943766465985650847201326317411987449556266851232939311841047128227160926611120295979056723247093418736390006391514219540941508316162763186460901737101101346084860026651097583332136145526431193194201810205944143511640538259516499562885673730366724715047147225389965620803261202745095871535370643624641526525363692441042234191271668224680468901778513657637317532509504642143736079700946277222125390675482430700089478990446117999216818754822321825774916505631259430235181174420895761756782572666191291468001574048094961330966634321046554303059429033839986751403799357863757768255517617408616262027170354100103818876679269821117932512093400607248900958437568687516902419236984050440959014824557290716024276679526966909984918410382403040205728469983480251076713262884433041279889761880988905579795588398945000139502401131874989762222965666282986782955410327195386782865600486146649483044970374837498190729617563377150375403563470571204860567166030354469892876801937009371147587302530119052337992360152964457920007093427698061384536806026151948865741974916191992432689811026337895059715556308538340868412797292386720473456287144532194334163991633676109924794618326689289731513437460566980468589495709624038447942272304250311892104492205857136929060224746807550420454924070507270937332527599255671923847499841883484547703917745107685824002864814509414855042224387550378014815189774493548671232774943047896618193097658473072244886660156346836060423897221802972522774088817843119915999971752895035816670504604039436476777946048507917484140142510947723724971757312846399808934324897046766891715431128594056163255598791722576366898199723721309653608496906686836589325335119029368170892003538681343918709531167325114290266608928637641340734309192885809114647637017257339283340204164069055677068769006227493182208942276248311991564547118495841217629020285599338421615922539353206892248943128270806180188361110895401223262553575609530491830772481394008085207471503854270776109741653263075064040371973026052798345911660381859962273567047783684590195913617314942693322378015124444297151476379696534042646346556987642168951895558577616792025459675591029108010763026792849293147792769525447883191836291910856704569464631998236359027214499775895404572662353914279224975931502589371527457148393665706479431951117643095576413384037060670083018895783992412572210699879989249399506369533460172669704302452059233125140789605189447941908006271092543164016638159809217820295027008271159079504324502072339308316250383336036743649521711772590314357019235211637190002404498850072976099511492392998243300958926901011965742426037772880149544839890067525302629131725365587823881620018201902096138557630903476886752761800192714334810585573106201701952809538632677862551874371654803880686957837556715214772870314057814688750734542069132422205175388568701477666065758795799483087786034155873821986374515687333015760476331018073775406499945139573504485826079656804882727419653616713440966831739625652846156479385156066163256867975438877036943954843269192355652572365033181670313636526315598949504306681352683296480782040695195406328087677128761539131209172619505225010884442773856422434469707375884217281457813496893461046541649739870243761302042448421923255059698867131089317242730928699886365924970050320312019158466801552048932973053203676263108400018018290145982348214349378366474793302926113054565991938763835417059908986103101934356524059910670539587402906317959556250006647365598455451146747978004913019257548690704593237540360096214530153964059014331752508619463144361156240907960195767555769205789959945698378994369028446247471736852422666683063134696114282389135963129751148317943857141807934675190193971526247727481334874315779987367289218498627643426829058691283403804187034584710219591047393971313639544392679577660886434329316585653035132731743321490723663510265909579469881579415094500269295756175813959574003886724044742147217864128260825616744151115502534208580524427370877957161589445071969636866480260460291345744727840540144836312862337646575275102101127751183152015875309444563943705917925630332089767324588813226160967771602464915262039902899379911991767470435973799661357905136520065746574202756440874381801643709575514485188750033556778624058997670657786051049217332971446734785526088524213255821250293473401990043954185515913091361646998039806387119627406438584359181919328257048254338302726997864074564374972345751269192056763406771194561891193796738471753948089805532422533509834745772051040733613079210937524571852877742478239622908374674208821390596661691524591260182269416898290650595202856758383515880822197854868512953225158700477529943539854235414137144516921181133673798048323866363873945138797788340258440129984241646646744000003263034963960497995067093136565133273937854280088385724764785131973790701976556566982965932151690975044343504486834742649527716827174735807505673799933906537896884150862330355308272247567124926325863568896792448617445839678463536821473341455451179184144921153587974641790577149945092160330698935442188930158579028464022535350271105054461778328359718969059176900515801311223535181009391991363305793236564691860412614163884747608713610277761981909365729324184342861108005768440079496264487755516485357596058478584942994546379659622987528749140607412686152147921092029382803504088033810251801882113679719062629565117437700551438780865793240738964597580816812411238541650346201256262617162649579717486973194692204334951472778678462537311465985706854436522575986447036316165581534890413302518072191370165011855044272842462519932180054962509726901671773812354624610480077981983471735178915572889892561140385018399045164525479538013301233193686450965712567818690314185006829577786718751702230553420422411599887605556800161223743069481179432076297026322292744795290183716452882385214483744522446172804441003106522695174438266528708118539983415215230349328699799050024657592296453800975851141829423958033291569301080366438511129776481581562469774772408498016133925635008905503556448550840501829031268362182037688893703975964280224284359790912117061326299318794372280909437776490493607552783344374009834727638595834502187032495724263439078141838976551520064203691246403278761223111798427051397649853340691552820021811046663348800306783227555801862042073305786463993871170538718007953343977510414543229244513822532046765570705461194293610971324966097950900980951463429148509439395701220574502930525863499286717750509597049843613940627602759110288183293135783449405028792760696685556784504759369161126179203808045283394212992403628746664043298360240908676919530801755894993583416332482227995358008602131938884137186166115093894026260702150417011798530333244740190679884390850046275436482936685458278281458054841964424128806476654638457709179358960123929702536701874984242120649233594124958040462495525722709695777725259962331473412191546661180138186874895627562713593982241841479049632331902896913977038879787469374643014237363563358094474115265068190868310234711484230980802169871284182192057559759009317859566758902531280626514855483952534032946168358905137575893835909453709783033250511226279165392328975845206046741355876641159561043405946924226887698070770838241531713329163888215195399114483694690061119956030326895774671395267466702451596492314089405131451723991042616823722305918548307307096536562820836776165997195818751220423853229174116980553436184992937581090051092841195572540668363514990699653120749991835264647636110970684304629491716085446169334625946259138288374055347556620527791067575929347523349906673853389017905476713711202883600044841883203214720907640602764791585989388148820515710924458365192267914607368388847731092357276006741269579352255581117041048157223714280934135923510660798290553975024433239307855146770726645055404882652154824173295189768360875500428076420447119691257195121963474686116984659516170577867095434343899122176954212560871275817691341155402272043373067729077962461993570667122683975708001327515147878607550249233162387568545645992206452424516223916582846842891017245322612119706512300985517811853176294768562126126865991004774222199094607723209166265286948688592492745272969899330164182164817582918680548111518140004827503402633873753133257676158580439142993903874865776475655274629079948353655896193217165114083551546614938089107457050964447255760472296966824969147515629707748440459962298632859549153176510355142984755211202192829751328626007654236411121593810157356016690045602992311826836826508636426965257657468585980625321997113985016027170070319830223336550934342123398497989291433037967717430284365068520507601245925735774242599409717897196785057575539013075590167027565777644045486440261367315424699834043842190012159675049473885404121901620836787784519230776391240410662807390159602082090798167410551887009664975794887451299772285020431570567095262609408671959413435813722008731615015246230534770745183130820090680958289107554419834983963200812744558961381276760119804911221313792661411483161873904229891185756659487108911639516823009067327149279640149718150435756586537703695962088702319045978865644832284212876218811164152698962309202232995922791377068209189109671394861540559310874639122938276703508589786978344298158844660640257264413337369257344590542608472217432575688688354967416931025378273000361529036031797249463171108180358477895779800718506237789029810890980230034308167086559844569128744371333317495975343806283196778308675463456649989277510409178574414663200273693843259443331502576824441660229283028347659753297123272783657175506839808174399001404531306967289701001039402737105778670756692789172264009452570535159292720000400019595156457873756477504157969947285547957105122749675058899361774739860945879218900678903780062420698271401345741355847122178570580498405384112648232460795297173050754375584375813421599100734453886822157846028474115130786681668115860734573337825599338185069541534068236782693310296148581614304330591758613729797760420544150630410496022246604016739383496708207891214489876640295062023393369433364637658151905677321098045513551140890457574911407969015459374058742218685272546149539806298108071873853873018408514240054117185200098132754639648825873156750493328838687714818571104196318921526077753261703388182863167385250252632070521453853565598321747270463933019770127002053720217804074443348797993617718344348925828859427300422428930454334535912985845107989169557750990613749534893435110433818286720550315638511877142044605553955726196425007453006173188988637192392085337264116358417200943099834004113193118140364610664586579175701548972963828972854426074252504321942853078647027770815272991401900310758236152512663703291118205060940496441381749581666532507977871629373168335153996830695246650072860016391256137792471858309516482499503841289336637756129101381613164724865411282804943709728775152224230615019614036753854170416976116099835292089075766752075754652435102707076300929509126410502060084265328384129442589226407462318325843375782108257278126524469668024685089856959515630264203836785516078783824160763781070411360468793593433505621269415047757237682836457225381303037019338349256981492118895470046063181067919314186872907717341788669437730666708135376113245145227230811867754432999475917331009182629896870264547135984107224245789236207621524920399036563015430112755662293044558154318086561206496380949128914723169796928430032549783431013798771752323543318748278014445729783105510733440145741964339306943839416504943107605369245669059441545310791469018946490223163949164740899407122503019990504548075051988935728418516805149010925359385108729864610522750201996671316772790166778084515810791693329602536853259524881616590098659332641073446895477680453113991568004507774550636392537402109876289422429109410002029344231631771268459233415239419977088200911332415890131009807818662721774044986638993048408261285860682664119865746518330264903189060647934857402512563318219568654652359612701636098340819258972455877550045079352981172632685999002593588665594132536974150622725646630803227946681105207654536816316036145133991886602957150097066634714980627758611018475855661910562070128926621168976813325338474419939539100096649419993951766226799805771827453455512585592824886490243983512232986105154667828576365557139204022057337078917921886770410204027374330728472208002282178545945077587271256686581074145852358888418748208105918500666172687649766371976960746776368267079775564067709123399140499384908188479994630205337642506707701770326441474267256878823787897394737079370335796493011723026266502414930501767713282084715679276365136787337703314904494851965778173926483624764541888720019786361937068478283927696823213746751516746744044828046034240826197102803303762442438954760904771456109755189623736638193662551205760193174388715992073498429102197254989298659746809389334381781397109658990353207052915329617790349308603145247311216831953297589293479322705123519171209134336095391279757892201681498945161247466896170968745803406397850533647933054143444972087380240981002745128609694192828853648827233195188150408768381424641974577997722399074804677607395820792257690050583489606014535404553046364389873915940367819305935567492283568280260170964728929256402992836854299411907931118750209212865715338840133768361615063224315670015084604126919621382623400903887603952316048909132611272891109026094281671057641098184809045034340634358059074896904331449796963388246151436286020567156013088146571855488900499598329121476007922372997557244501725394826044898337599110170006471866603413192564381877044478282604562668742907017006658028586885247337026980249906460882609652961258752059260664493873739992393355454027862494351638415936461202463000406741805555683062610830936403659259854823666136599626263420509208958830860245872540110613008571212137034384175633895561327492323462903710609778809708335539919691407844349706653672042761321447439988416233263186402185694197029829685088571617637046919058827044308659154388653174797001821536489158956888468022084725709071799362884509019918301416355860261679554474768818302902908327659512520411887554175519049772271517869113137883575751356115853189341429492793509176986118203862847413352526864541356877555769484878075447437245441625143528086198595620263048449814711380452462946848000873535970924371325471170983874878563404063821841261158696018562764060264976190134459952545851422477725191134747999973049197987659895377119694091536112794901731752960755314706885488378358290536831500060993522529134084657617977234513583455559553884691473236195626049603919082920192642846342977461312347435727283370977316609938811144075121522769385870229093870630132202825445330932207889414124630511812914174921945927824760370046745840696098663481366002003863724806856205528156110266411673923577151527786162267518375169253327734856216458160592351979261738806961707516333837159368688538252073940255994103700714117974872116928194551527352228932559619602131523771376373908946855537906462738582364255548093593449893075491203304268657163752919818030400086788307883656245679038547194504043933635560989236518726765920772504039374674732412772343924108124870259305014000229468255866500427956878840808953678267945586890188611816147142769388336820909362010206809108211997866100623584234493873576657412045002475152760461626106917451929135110514540813858678189471738286735689223299869257417919717268873301494846111969526604214592178524794670659294716623476320483108916274324095112442974240496457634066751703227243527255563959141517856001186405305145628467297774977998682480000716279070847286123559085455603649059194137091468141076864270806878328328573796609325791423697767166442031454912272715388604924632206670987672370090583084418514425936882914398094078389610396478612975791744068988702629414804898834518920880770578125956805423198194330173182562149937098424957635082951227703715933479058227490800401033461701853169577893708128521118356791967221195120772043370338340012915210759715598430724831630541558283894466730912766556821641680190461565386353477318467034627360360012528419366175018979700579935025727265366240530426066254270773878136798269356610000288308319684260555050548544388945011517328169815533547934153221850717627314419582336824751896499102712342486572805523573586554929379974768245270347330267829538366572392043484647740819643648242769328812047467212623150385732290527538862062046379479630987651373360532859479653117907230772385852529072052297337043190582124769806775893644075315009923634806097584008880526082560830000596546358311736887496057387195452893258812639249284101997733193436550638261036852918028210129346245308581035749228705425282540425089176518978144679872983301252843849956853332861579231473327801522675053834334969181783287682212612017304028131129756937495462235888531331721121388675229918518418125928919607990508091328437665273812340073765560537635204618536274968364986940500143149800455995321232722253648065987790941556525893796371986706187660298690262265732716639969602877007942054422660357245339306892385955006363910221789087777174255892992070315040032956229821400499737182047438038544664021317750572052180239629062959704812835892159480186254773340225244468111203934954333348020392206090762644309572970498538471666687595994440371501015192117019045224470098059994449334981462741375245985776195223701461178520090869623505140085792682995778054515576009220145101598574250596773793277700155037240439657841752438630052706778149254462395521930020552845821070736331026136203911448411644110707008795895585648134183339796650621270527828964740570521568017611096618569557000961154175461256676228867737581604405830226666514137961937091734955488062685366970433933493194586529861408140192775550292076612595584069960065148303028598100573576548355455399045127357836420902557564006140160397146645450205440834879851049465950951448103755670452940976536333806247229809947224110073133328207347236266272361311033455550183196180460484362309688745407668360978434753358307321660230901711626654402406242466767223765918768382608211959884527502401057605807742147565249259306757897894455556665636426601624008899550129167944154310952741970896562059335744855684158897762511522097167036791150237843645958679867906160967280570192927330588978401669442774976421799706279703276704345657320668771744735235551997946170915134441148996640572303468736903000947842941612448766275727440941009076794517604847411294575816599127711792131212003593024374304239189255756607757034421081393532445835877925793634829686140394125240919133142184709537122116869111031656417852372174450356237877566352850482948479507116864510393793093067383090803701420187076709544270213554699883531518571291263417490769521077682031290097420877231461170748027228675956075337215598691112694884246602674065967869993846150472371424487843111571032641956803569726381101304378107141990511147859915567182565771193915191063208336476603494509611615147418664085666145595611746215748032142243598201871857903591039366965779019522039362285806025017414247156483273052223832759994017101752694305948459756525990538809788398715182421885719232289191633762645144813676092651808869164471289066770326144980493059032918683551831162433661380351903347486376516714690357954807697021351338051874468480980801733866320383329093906808271438624129696711906938275632226475487839634575577830105381330095346947403776068123178367775884787511039974621089712528211621523292910770663760045747616801001716779381195030380208992761932390441222657901956779319419943080668749727463646151052458826245162986539306297645025392927173274328309430645269173169919400428148742237477942168570837853516359910476977457310667404267211549989819147909819182058093595333457867247115046166760332792092542169529630660035776609076669664705986112380459188942359919882060166679911292503195841589712424008861799655842978587917828324964211771912495548390573728154457707752588424472434859665052857856296959863427537993188969157404526415649030639245326359265114950688386482667370067196915079925053197566206349670049136559353202038029328165691385338688286712452391659129781174922835932221965988551804378191441842901285862641202854065173949950935282989292201523813821960721844663895283068816727626927115638389267102119798621980264758661450666070661837607465018175441053410707925219794964153727396433981434628547049788455811267387745301628871015584498800797180502456298529992783862610095240491966599611646488107979226474763766775766358427499975335150166953744557508870928329610168378903155916610016726040959862102836748290252508358810734751604887605081708829751941569319676832024786539715353196428442823594324270874422190143892064499971694884763786195476039533326344553293480428571639105505508598073746894385784373342130186709898993569413365206744186335649793841946871896307837002480007889295310058272178780926622254223006338681726123735364124406376842229161955599180601844441744014350632784129870712089614783798271418820447361427806519106625272295955654361800448107015886616303381196035905655185150889560470781909280451550467663880261733208808227107554971434709635591231943171189403188978596192951303114561374285921377354445618233190568339269783303301705176313100215635188388770701210616922221219055212646752033528595743704879781741826322980644114833419476829361247289023960079635846144083400829231034640271668891657223845487393922183730376036656557315395641482753951586423732627433898722273256181907907761928318094588867040201833190898182805400518868409089374340370204755700271826014822351582593523313712876115686943285612713554703544732778612190365782672749478213940708101008876270560477226802637535359985397301299235468385879595659467515062490117019565681605217164453241412713162970246108480588144519332647441793690116884391962740430406376426483339492389392945395466338535942172186705967537027386421716300994561789653925926670905629340702238823468227716865670051729207870276171221187799408512567423113028404319479255446672267723205227857533309922326979124418434114088427988257042729131169466380587586271440661051404516038431063924214679347371772225137627933975952423161543393698133062848437293221661352167311795257428785973962787078510721274144971141256413271197195538941648586348538396213077728576961728352728457378384922639189651921818390527652417403604910008530674044563675240612953187499210670663455480138280660768607373483167714681141141647657652659158516461695516548651050742543591428180403061832275302546576378155025132834196371577095163553868417397969669012198700670294787651014527691780027242666888309904278656571031215674260937861893299846335152200689823023089372855249200351810789605867328708494220077021689902747253114231948050129263432248328915196597934914876712677857518640127117890653694644073528982213257483463549958385438373645881662468847518261965612358999936710505416863894609418386579497451941856053393142738742407699947692241210384292460502951152222390861985886224341024784932789743025538123305756105570614492174783513147434884999454267842102621359455930363673511844394271498559221486494189627414460448284947991847568176208675784717549607894202096668899304419619643985235906597812289327957971130371772958573085005858944581751870027442273561173181122851704423710996985357981299367824847180966518352476800904518084622139494007177576475280118549303420873312578821795092488610185737860060214774950394281233213241726134023251677164166172779894804017740382100271310124285155609147973819765505784311761635001683051402926332707710654236766899811801678144711320774360971840772752402801927219508091125793326019848561383248457727869580719483933313510255100267298338199117397275822025212496173725255444372645800516404848139371452704781559632085608135219638765900063322705683288161065059642629798413286984269314999956498376674747088907131302635128437630154481996655464632260611912829832919695128716254906617149308480541105986764313850817517719276869501602117553125932331299138218538796398630643725146367188705140058450851413148497442591704203625717506512043830379587116880895104828524252802417380968711239878946078076917107181636378683341901893458843788973669237133541028033843346372373914491215762555022509463189443570258039216534596506850393581695703885975590705192390854479881518223483884652649031293896937415615645149547386405560745322663585236493985039282363593701488889084428875037176545541419802709714129306929164477327790182582531896641457379930032382438312128662049970007217935014199725608692421644972271102318037251600076846896265908627246462866634303705298828243761841421557140932188626020065501728956431278807522648567926291313515581133163373454751483457516944322553143478722138913655194857618018333201493948299112539183761678555738994871888638982307647080517057441462194968466744886430170937103588111837732314467078967076469449920089612646192549362885710157788255674008478166364463907076050135999019581959321601891272373984935227807939318064492184229507037245952817256874668141836651429911548816427052187250679334171620279979567254064205723560305216870269684182832765033779507256003876575580470418842175082449814643122829899102799814007863945820692976139524728688165404869368495958244537490849971956772199309684462855241367930692010874570862216331672615047933122795897571071024800258355072574664422668803382892342745086975773976957964127653569009872526551200690578034950316067468059038031101003586895554443146900452378426330699731709947838492944508201187213782373406582280944726142447535112918857326438725585660495866719557560054386623029154924463818365403034601547135172790066798513122769300325579433760241929514999856360128868850194830418993954320256473519545265362777638681144665022674517810459924154227161440835871985984593032672805085384247707831854599206946834842395425275592447761059993700431196914306532228388523778506701369984877640216302737545015916698457702060226795438726842087858911186584953755540868248290896367261048001897827520086358653334690794592931121315809090454888900969054166382656850107983539057713083264198863305325758538147353399277728297027770031484681759518685935755050359877278652662516764980285079602105719287289573269483190734514593782826577138832329606086554114735500310837837127504406626656670154400522936002787299311830397783858660146454882703647700254680849364573887817379519243156886168180973621146348418848539229848992124004547236321064457672278406924646002287634743216944087377683048560817144356156363337116718604089321103723522122131265847935834141562359225068550872272236051832061325073971522193945527899346508453951740665401959757661445477690597784515201834627768873269431611184066500270342202081805796326072054588710903966670754246595879711402444615723823670010841543164860380515891263958459860728066797310815744952024226636286929189942693465376146201791222980381206243482349995883419850646857423744215474399722590605672506291785147365039660043747413485706612328742199289386671568430016459990342990035560949090057455793431815699453035876431327965064779619877607245820161979863152047775058026047573885362217611951337191099837644101661342824939541526522033033227612542791425983155172438102546279647191059336354332667920700501213471081810439429959424374146898923753707244497466582386238222092488235001165458421225811810296619763954679956728642263923374756471785573526688549394245464534432883556179802589621307200801102245460062116070706772608233611218785646171509406075793701962553935495633781512168391658836973460931153714507576730924294229363653090660629617163299070860979575747880658128612821517329018736525467199001502208566869423899519534217701024344708686164798486932819522887745388915136773012255549534866145429645726134306122844740397832819434166739283364626873787850296059115050790996309336345897146088529683218024781310894940325102843703621726803901040691747340110944357326205414388528157075914736851142687400745927146079052794173848053025914142836698860583350625759882999936341425444923418194478225786471484764964035472252194292594285833167625891740449663702544644502939025764568448079583200856359390474139289994641878346419331588926827939660039785823719421823176268704922661348921616950931701049320177897236114839278508453467941385869514677533120666093004415711494248669702676069381657847303092955687080763015309670421464251673343265576779419439669604529195152398212855948307451466235107441425021236035420670630917073815747027253615789276073754082518213197167092451046563407415583691761443449445380800786376423469184304156679660760585212934160126816289910663136697215795135813220282626797594230004432341029021771494048193079872691466679725472526720614573951633863860893791459038725454365355008392201267847700741402102281057998410015737233262882785383175614730045485088588628843167783416919498872783125094948976232050842084350933706003110414397618468023502107564957247905001373917644567273836425296676583115384580459129409597201368289395207979993771598951336697918674057327614815099731625644311513841520978213069658475080963339892989468250265350473215871680733979105805567435058556686137102024558186127943981217645259653827040177549004573243138576824853802227553784704927236959228285339902550163028016369293736098027365418027790286177690855540303366722232014047091557729312032293615755549116395022618601522924518973611592244213282838083452419797790359390398632155559449611437607337009038110067647775287004768144389199883549798887591721494668929707566584991218710976894608709916188453709060383938101214177155519524987578820771404343083614612013908869891236701781551116450212617423702638686305809125276759836823608069572198370456352573692106201003814067456821667872936795218892426799902856520578476287142979824020606886378166040638807318607793471327593575470972000135531557010409177567867714367505704555907317274733855797209052562259177414021101864579582122383969280516814339489677228012484546430694615830414183738475122930209631318955631378907551498409271014758540755594556285510292259683334410587788734548225767635702465292165756236265363904601555385985607976016676694072281157981310230788023974550828025323588478156061253541019488533739453118853020752500747470243853678215228303620099102621635869861799514445623946666748112702675107310897985156295752670616559343795936184717462508382926900047681403227506953072780570907754314525163879819474247710935529555704216598721176864903384496019883939784683658819759050447901634935580145152699419984946194459864090506464816763035399747293868092342039459546926237388668874250317368264255985704709470873857934727689831639038763436160545991506670630785765769927175597685294473837007563259300390898848474308992895385765895009719156801690352361167753654412910180726543661872143075242163881545606778806862229992236943995979268152067898521070458382724914651148793610341779983745730117329007472049929126950320153602301680165120925658868921994028354494836346618162429815355521871915823094084113213193581562698499605833695808224364328211680857423896903876283643046989859845752531228000119913918436359654836350059094332613060848366933243787254055172904875090658913019868278117129255171251525154828918199160368081885517767298360215461188459559159482184001173092824828116152525715564868795527843785656698582633637813843502723240433662342277331182508625883727982009549540031093732851732037063684013233216073887402866594614526877098470898486418433799463537186393470845475934571685414330769836351358941683692944760058665443505576688149374335771064607825057655411421442835003416377845175868089814337752428047304436030182209449167868410167156004693361727826956639026149185532015358150914295765099714852939190625565201876716161773224694835325312567583713708589290689966197761974208578100122957619940679498241347069710070337083466451277669878103860959345509962349310803963485478251006075858843462879891338907558057813227186189176528718655107795905382596038889755203510642149755777379809925878017407113528299327450450787193837725723344759097538895268605480552397034933294448482379287854994163244212096771315409335067088156402491095288045559779400678259368450747121703389143623427562243629744077867036566664443278487343372977166374032166751848781630800552789550696979919584419983155443722004642374963649631384279228778458336327516205198669515704040206449517273828493925409706947391995082731252442267841234288959372083389338580945010267319995393503868130806560126999280205953045179355927778234170021916535367633135435791332474758071349180276071879260767227714801661707255139690708757966207528476060278305468162217048541097181181371331281882757721666829539088987423451269632064359995939051878806160040692066633436906214064405278397361146695357763673407633656224920299132691113989865181375798862293510284020745300863625673182048343381002221948586564037049921583108885380050224163184819805017590625552815535599200142643839716241950383722498068715078465810131704466164918180603788911715705335792584183895894285682818389629159834879875818963328148545336330336643357600266822180586722690914704149188176638308781639895245288294881408538375024458918174163632914359772543919153291250537846450447150936707655663944269889788130727328085283237917368608686541654862973784235214725691923543472624328686915496794049724613787238454165352565101976447704260230908555560689773867507306651444424996887737191280164498420487324886907767458817999115496777780399721397254292523522941245531451165602666748461572908886845246959147098737773941799125458662049337192513142207299900399786968116318490336585238146524459916376483749673049008662397699842660283051260329368753043008516194966661334097605520336616541200024218106178123504964793623562660962829797352367852289047071736513784083160609348677798296155863086282815659723505984662741910867901281422403987341013518323580630970281027804243804166959623274301676309499450088405124137277421769053716279234354761211943967038053521322501672865673566176586812283318591171560888930759979524351938223698810539698110983819049203652022201122668173009910959485327100915902193864860526142925251730968580030758052919890124370366673603295157616176585632784136683615943803347798094602069472037743765206134069425996280269500604714209659574727247279199128247393448138390119622592128335048129936664433762124345034587796787167164020683906190791831245952423215151484154580202311159886721589439882894208243859217743088820717342352561941555821305805904380572561902702384517227160484782016120295396998573752676190978221238837160929371693550168976467697362291407737112935904245759660646497232102580745220177958817897092319848201371565770389919117861213073551198348853146060281747073943930448682648590590606552313579582906124483168525941113118507306339332598430180219685428545489000745423513205759257776807427140444145096860114698761716608330890231489448892471781456911189868936929567381135398337199309104928684082695490571600091567323409961692671083880481156085200895881834597989036408985484146964905391013899655688201085531625235827356168514547239579159276336243276145693476778917714382688290401878065501705467916503609803755156668529035329325444518176803857900875893713766544779239856288800924383519542405757722036670269490986572924373896694897116299451235572564252296134058589314498478685346834644848523242344533635841619980361534695303572790752499742350447868840938041975496305549331528003438783156584197339113042234427597237983577629353285818649182455776024149318853625904852011437902187173925333596171030896428813052515136498783651996811409512650170284561175949319848175606957289241637883377703531634467381747565996485032873449032453033905569118757462734389523920602268650454913917832813571464457985985254397653549977180493108033190587047285455147173181521121271361122822568724012276128564455997921017931374127569883657117126769207135116533693332723379546457912478003457541285838531472861611327924377059871481802047366021321103056576771738846617274945244382303964682713306135287178253082254232882398443146849146109584354755283847014871730239210882380455972238074653643380851452282303117588077648382875394495530253367378465851547824085731866869839687400208953477395378653627507718461010234076616143927500292729775405637255052976693042661856855899737310142052100076909058945822629904570271107634766142296706696947392037998035823863947286506149025218038552766067549047837881418867680612273252027309608758003806361367730332340325268483307459478876884566820171728107414727676078450215791417945102941972491626081546067238141843158181225661363906266142600632069006635892788348041788184317919792592399010844681426640665152442126342524503470430430989929711754070371274833987188971176105762851847588516429334575490436894638840714873410300171528615199221657056450059511879089203214536762285591832352841036386328508106394237362344081835917603917642199287072185296669825054522078983382797190280513296208368722784132838978984951562648714828009167642649095870113097099440409356165630098722405447514198815045111658545062328672427801278073202275876263134535347896662930747654532031009750125339062450754422014818019421048763072168516079048809071831056278897260181450805491194215757340451466916844621966162161719044692602747563720824847533444340573158591691228730738793598733949054466610109002646520882193725023823833411130300084568953144435099582548332043273150654685824511390584502978408839884045364890644248955475969026867781355111570441451966586832669608530844039162136900611898177927172124875396259692951666657653034607289193856473087016667592028302739034490189443861371585733260717845591633499639739381257008154565741321055865745444814987070935100658391310636467750783739110459544924502980561603391301138424918089251872775323060089146709040109720223335453193643988738795724389732309062327770191679147116876747264613089684952288823113174795902952475071574301047233368192247180689989381457036936260231890879015285602854285075374302301368347991192569033629945783254633894976885061033402764835172305594188130535026361112210068178006023867264478897829838319134008073020907394589688626800368791579965901629889391738468288142115682186898537834632859763451557477689508683291639473157366679642299320989206790430014088176929235411276023411050468724811045030164352926396751748081448063270389760708498998991344213247853580169810573964234255260037389389122982231740307208646649510759320695978910060047611655876677683530141810350938075100585238482769031173837140905925557853121810992325243552136547057701143051388032735531363956945103727564713264260270126850345333923370503073803406378729231069582982863809462124593676076294896272089280833572649243222118952087020319495969433563711144602976436477127136131597619550558665963770111168524814137886729649695841039591333043270571794132878056764806877350823919875193381494243984295662827978460769917002938650228552286353514311948779241965757379031640598828623595797647915743619263548322331084711395819661328534926981666729289703091384915928697482977040406890838529324002641473606208335814575475043268199826217736449375818111132884803292765577582480144250876317528277913957896251827812852979515494663300254103051958921029698678242969414570241698366362399244243574691844766998971118019246102800677735183451567643152369494455812974093276270931554535752357395839301095781280736669457154634881699869314920711408551347858063870211327247213158535356294369766824618857828205859033993152238502093788756313296348202522031323739312069172389445845414265363917587890298406772839853319243990187504651282788625903138770622575486773325242266258038361335590409500317714447333475149092909226656367563101626355883470855597302241680589910154574314882166737269686157870510931714981440010155423349361978796014317490468844992919920125108035106710880005154476140169205390966455092754128552660560836564275051866496661276745588239566122629593772214894239518916068440063794349170099517592357705430857365504433809157559866298512537006729977044757076234594606537195595862122804922801681192527241762570903886907069515286203606541503273410482780645753962164816500385869793734342820599797466573282632710140372739409533050162675508619533297055386209384594290972869505324441989344483709595240357264619873261336255436738755133816940106689777477789590410542638942271274347986010476550507142670641306922945078304314334846533305954329827650017501791433637079130708125328066514475272545786518843261683402871660403191398287120219397696918887459746013487846834565000065185255021484870619636654520271473164340934173711427989738800878367686568818111261643500868222798271813468148730672579769301203494697718446850228965159348107791927469078855436803497182225086003990087936212182979054219074105086700021559152434383390282842610786019398987018432028220792286431458531940250202138430145086752475361986624763270389698393870796952038320416921434161241710747696412868535593503542141754321664529769495583243353394704680095818240116980992847132608034825722361841079355482064791564951471667221088774678184432540451750920110792260017537241113440505367179513085320469258354127370698554711621067150302038648479706436807482075803988551408251977663535618601767447978434712670944885614758676272031602012541625575179879522303416185326654360371256552884084500197267979586336468386826042943682458835274799610177507187064417370931208009627046829333321657716180906237525881496347476085808140282626173023692925386199709488646366031353384848068420299932883223339790905796575397342306026070216865129026530946247132975530285134837956654422921420924810359015795564864936111311639862151982305119726792071751328620481124281172380721105119204290044640584101776065533596279007346763148365618455084892979691856205246632949502787182526343693607076313470466604047703686866797284899378448623980429017566550358017526942321664178216707421581394748556026109630754798825246936526764000963323003964167135093077322565402238199697145934164146897919770215013986084383553328580323564532044467461972093700458267208555271271458993184339127294957954942896620598958574667046586902401471104927257009743502603040739531940355487297199924697883573144635639420855005236474363640259838440849000570418208100452426465457698694490496503282963471655374824494916411917399987692900963445932418290976525942056546841841467365439624020022255659738266487758119146909230701175533837491197786124106059835654460305562178672487548973819346836506551917759906765471378509500218688382897924691935847217396048871525840699176169891237549841272630793309476676036029125747593054422545507917481490842368434463942127204565113714050805947246935990878934150471032357293533193359401790816526581056449586742991469561563698811481290437402102642678919360567892101612467686788420648003990930705880473175995743086487559758688552920915504758800565825606533853780234560959348371463408741398417100552698393973952764183426184756128921320188338821420039339580460230860861980084447230829622859103748203979079739835275439394875015208663749623570781547160737298581374743715520495057997976088586042685985648545786611637716076219759331605326210062973132663447320560262562992579736349630096968094531066925441585336745260371243501193331523378544326946147407676015636696745824571639775397002423916156009559553306967130063332519464757358595208505747809712607757295058434469642118652770651059087575385941391448608414395286007739093594203513582696061096746326913621443423379428584691690878527298557346861177136494914382125917231635239673283801901624590198109897163278725873391795436466409881975910862486887441979356288171355059155004464860661050980123413623963860670401714516108027984789248393544940363052336855598760284810779771573694181179913578392523732763567672546861775277363901055873675519685816352800603707597569278977294139215533409003985893311177645422771855389700808697795673583223352014147792576125546429875920653805820156253159978262554168966101528519332169434181858015282196956492351659998108129984132122849863468125002851318715101921838706346104740467969582655661021746350302155015488346488331817523246734619726487626776658288330597754613268575229795035296538903061521944347726188883121944756837067666871282155882145993397021789207961091477775388716281087391676187404510759544939702879197836931442963750183121523043852554637839123777936649227459791200766122273955956980456715187314102485284821098853698508939605571340295664937214746466453662059840942559295302538460118018299113096928723413525318657927526588419543987325278060632501500981808533404734929398557705295028840358247919908976715003966207703973351538067445670002531045085612716771556794187011649778553143814977286612284077986513211003580613522093613452973858514613849388441835975000803168588880226155082694867745394086523126131487080866820172409584298306403702529998343179232242571750364123172367550330574484474584906637242896166543340356552317972982138478822651661999585461646210271918658564001603197671801320650841475780251231500285245805938781287712343644714176024944240684170867256723043105163684638118069186009460465923986039948317377460818549990843448437939123867222538675553060549346374105837513626912291893714708763941399822894948569348092011054021205478443529056447487930641251806140913414137348865434847071842305105258633204457586251400567920717747436013373681912269859463512880286267144488288258489713996764423294686820524018986309415102491546692981051673752680466238720239359494410949532396698828642883535066247826413474827229582332916128928486898517785120456119577519384743514077225555591307951408985282685258804893044469579890476477170068372935263093009329336022176958124406851525057603843169896235898444937139720507235710567555456810127174275392292685688593630031087434230224880429151723235110696000269005738679003102584875854447302903578985731239671069910758976866364708699043444317013313867907771183902035133421854787237258162930724156201507552173637533420986936400400929112752663210772423120069902207406876585729454555483269464796180644416111511675383653181969171375212257665206373615198606080143717661055921335835697849452758950097458154804354492121844754606335925082227756636078728649999856487768981658466429263566332455558440518685232367767323335914235468920983986257132988894875453594734279240456751887216954106505789506080147320699140252158116748354273987730291636744799403289019136585951653956000065264119630253113294042691987728669310831696367960045483253184392590210938487973100649890978200077494617469996782591434222172797056041231154965518768060609305948887031244511465332241897957097395770609867605912219120229135790719002035879864407373351511546121541054309339719884851736462341706480542533926653382237081635653338658231263578988094940179903700978164531396315493620436025312997797287047882069074444194767395870505332119049279748300819360346088260538224256626742529735871419532001204372851780103207609060601117936160792160256412542676399700543537720962777262051652024984801011461738023842082325842943767244868684892406264009170028217704244362992526268205862397422780684456275655397547771067719194552949363699752608152853682371265482574070424847902855963917970867655128762269785692127940134454894798456002940564038305406829438328154077155657623242447570106412478265859907262772603311153785474157361026535631606259063572329684294248450864379060529342353695447552520863426477414353433802181927333209329031288257617249005666216266496780479989492005207447872737925105023906889537187927913670453067507526043951179787866830164807989990711873177566171529438447678991976615596444697298017348353540851737283524560298103016325943696580773871244729144614035240085601413790810276671991180707050604910143654794985286366403440398000274933007652845733888338731500174122190944262827871596861440471862429922133408614848985277487336180166501897931936812751521481224918510554337062975954049421724720526231544244652113633722341983863957610090643455845821954590029579120196938684528192298366018364630224090330627711222846833639335649704016521800756565441554213910249351557801889118644297854153675986345762301343749531885898222013860943457875765095198875681670412898325829823535733241661816795345593020585105858074599361243097240416317668629310648775126246630996337256290947233775344817878896034868414704097664905897713545145455700893775117672726594609186867620359347896687910532352609468171328781798009683657037785406816777219979499751915227816396428297942080339224427284432185075779893129522904968161704842141519475211105973072371637454275093751739715741958105228592952641060201310612626802369207758928272381836587930107534772180405809100753153412803454601569209567307395876349026692555451441454391255184306923181205360713515436477924964277671884045789940687160867361004435836951862697125459476214598763753450914390132582526854174971966556242695456296059752159152086541625954897713525844526173196921844376301376823953766636884729629055944791653996073455636260535280544866875127025963919943651337019956528810299444326947273101196192291326470063585129396677451099351015668660859214977117907310961665628601911946982184421183711491797976325963095216751896128475411186423000877179090858175340152384111272714811773343059666640320528910940861701714728268096807851281330419362986533852010209499551532867751247307111445667799519231254770780328072151371571876376805520123624022839418719176778075728072594767745398506051411546783979785552165974220490355830314686271278845206114227440385554725843747661229991264935337185398520919830829792611191434887188928351838485686709583961515956174576620901071927841047723884393039958172502803142108780258646907878922030347033363341012477503631841321616046960197609758491846694204321297741428102137105702136364466143559215047193318213867094235191169459584662461263604578167019724223653536572478667824191017708150693303918686910895441855420401688800098148182241736936939870571499203914816788238448121257949951732525589926308554902921202180193714274957783805822769392473166830290023786989329038494135733919263216436739352103151953928731037871240185917183385254747335054080668564164199052546011139190749789365025243822934824168584833018107047642483904136296901669052959477177340058674821189047452248054435118425342024312675598304199056642987987514827307843775691883475881087275162378379787934751822923878055623039577880774487070392917484552366019221409113444507375585440015693308454255233380218059147702254484171993052868816697759082072553217918601952855587313308548603286878712500728035044214316076882207988137176898206276093131408032836157398197998727991435693997387078832583628923096450862190793871522233874750864139596399317498566453383483627042983271034141512925229831441091860677111974425842304965863858831187013544673870895060730346260261035392042184591558891311893458635839344652380847399887101614531840396424436436494393954702484039842593488903552258147438176639852767547464887525538964531313240744446931258492473015623809320491242269898158658144424792171218545003159680004601141941308802622862600524290900901587785612669167851162361716068873203942571374573999910000982382012237357723677452387265367357928044201120651900292351921328511259019854714325337205895976413732264063691660448573055325093249629251849884629050662368242404321282496282377186236834147848600968385223964154563054006653575851612670300334085174048728108450908928785587239720468115322006622404798184649946938597821714475336204811900331589228294814696619199303351606497193735053999260716681126078407906114522592976528414152469591443311775609767718190319386080957503979244982800735335534743493191497333692494061187461315109680404678498893006747561418504391128376740180279003602976242550280623406791671127772549415366556248912292500719726375377189848456250658030276604797319993223002308763578059608180176490397157411171020878079455560434662835454621123961737473067577820204718423588723538294980319112349113850956563228718657957216578789284861761847954449022139046206113029535723268355767708300098490669275690606284870247725552758863373365604471929230276392831896172476156783562649266257947168907485187976518389933514957180321022549617613946863375452358280305389638263153575782595631323049323293249971623988178023155505814189714615356749662796242130667342317426846048664160089162142745575050004642654198380268704565604462597517936561058831199539443957635966775699948546724022985498180568036429719934266930824321000412050194794079453559442300550614814263335967961709993359056167501530446520586158591568009223649795562804098914226469868385004853862369780852297819432659172807571341890577095092898425806907225981055041494515084596885913438841440700649730728739705900657649076171153175610482266646241871501775605068655449272641231245666561758285211581545318837593742541191220376471721209766165579324383463919117203665186224068628281439869208940555905868085260440451974922864758461667507318315719726180264180254389958196074594795286206201557070397749755337852337459062355186962126872263434734425457087852788411427803814384887712726571566200014698300679791820774421993271352066938681320122511530294565510749141580447162865765150250034053001389067330886086410814584443841975696130055098349219116254962807099744367130587611486286918200862425182723299788346126319092582279048583111458238195512231343645641949173504672102330282260304870480081692606644449386457697341100891114029573826586311980274716070607074607556756341135934941323920179468057187932226448309083675267526563661313281505080818043738861518989389037037523625547242443619640269805121724719470759418834167259481425641263308876315909106228964310373761180448006520694128298592142178306637369345330196882839457619013188735435013144438311650714740561515039935928495406482773520801299531180803279304208558995775151038747489336843239526844830235312052019445751005161102614123136514357263304093669283707415080059385245117603711002479072730792696949491386214683267937280286260596554195677028692208488866732805897595757542612372946837243726785422395010523903657031184029944411043018365778777136791595086975449058200067132630944756690868745326772146055882439160336723677046577112227235079035240161916461981354078752681368186196650180788235648083014812359410623123243608460990920896653691521593548353916349804784330950591979455516540178954314951118870060954183651039590096417862776336192402933116070147889181504386956516944309609078841961631396718764846162889420340008161179384703547000918218326955827202878842025109308148099603780217563255447305340472574503642127396128965575197256701276110808168296843618444055251378947669258341396888423553850531499211462175871606343298079167799239213726976365752451320712558527067577221246083787758160129026743014788038857023211429136908198107692642637674199818390199214784936528931362445173070493115671342311338952354039762117863235562145118922942763637713533704452822956227808833741117554105761291290408350811164797576851196770111958219939523936347848869393696041108716995070623293535188345879517077117500808797073257347765009279870014954609586735285733675334530933286924327345043079016105467637714476777774191598085294170549306945578652234102137753176607183562015701499048373735946463423001794940374439901845797072476335296191428399486235599101838693796184959575458881036904910492951765089064505549359185119515289280959900628218694992840726935126150743810399670564662364485020006465628145070147953403236317541486865893361793852693113067602942205462186207212229687765971724633751776219765094717084876848510706340345083487708440661715745347424464747000986608706259650090668012985453212493094384560738873282442774555495406616831771247332545784085218520314081061028164892034525811244627101431670298046569970080121139933061042024731241548842508031755445650488185455828582815178376662087913109884502557280739331828497001340134147593616708193971997616873417182493474558651077381016485549035871585202913868226929868722177438082722266103304035497547496999543767487587349406871117503661202410432998478732089935304972432784386212484913175446238371559006824040830918152497077987770177780305330865036274887087848159967405793491618136536797891245173231046699257481908459091825704724457225062616018057108132650510398092278088167425014326556569673556365611977352689832469192748648132755042985926497962744272889991544235969914988202840804199948319030933332580520911497164384995420369533631852148273886842970291055379417743316803224926720230593350777062380538107899693084264426104282984901542093548441705009910972775969156883455965356976057656224847991010685542578806933505389542934134850947411416014059913684675754986617789135637639566786785354505046362491571276854636407820657643318353287229781111507288104786722137404032042063704419641855269162197753259301571028374089392825546407701942819964547814218025126150644953562235702551118383180032113340703582981932208267214277175486815981549095427812017003734315370356024018904301749007531915828434701950982857483918838102006493424805461692036851795968962872792425358540587894528404819132903753081969974207300332432799858583154008126996286541109492336643518298278999739805819121065873102149226915824600143348285824468612914682228059980564771688023390340120324310947640136885157524361434999063064806473224111854089565799640516739705252964975239032429201612165998701586078057192258262065168144840941535469723165351331416624781222079850184663561923359414554647059257102667538728262538837425527038458997966210710327134892308201586343647777037983359700395942999334693404187359793290953686893326861912786228072745886409475737987792167230832338862805393324472506511336476465574773867081236422525426835443012580043531230747848839584873484890526094884889138486358292454994907948557256858742500559814486309059366484396994060653301682800210374792009518430833119079889408506481254860740611367450816954045691376404909332731031137060729840746380528778749931218592147161060823515823379879867162356778900820652246014410742916978280973631644084524356873837568204667163171156097393584852164518599133339958005545642312772791891459047107028905003874167462408085586057114253938253039615209027965608203910701169134866625399868480392104327114863800588303021143469256549584498290303931908838141057639435462063633435209939455733611808282110600616350794209511592498405673212046874547695181823271754807236413830462218165861545523919389841448236861981505603951292709069116164755340254053736350615457977255274567870539952475728396279471737423017578245359001967410306692431001374042130271472804600194547064620840294219541466550823303446900724621675991802992317159880976153388869909818762010876542134800926746904654164073269041718443952119626754225504564748267224370916357575251117578766145334887859466746010316800318431201025871883381030397428514286419652616589610873789763395743852787246180154494989477665742297976116252837332494008007893678203917811694354639032764279582282418314937444168736097876191470175502603010414478673016970034293635949474670936856766669555859621759394335623974522321933806026950827443839308494902254297230168741706624558062790601971734637435528082003759266094717637326443594332952556825818849176495295763983171152692864693189622640537821942463203495514753484831474543834712034111963818297174808993151861394449438638168764685926349056571021793266019082335236474682646598028957400057649642929726864842001602837903334251574212014544322694103276809580056335002820116132172368610739940441939187977779503545204706073883882775126528226990138881866119134772180531864877282140706185295906489082919462273033370544121927247529084897225422532295588885984879976573291307200392966087609345012938434534746634575907619723328406420139587122650094303242807147549931548550494983801544609770465939597423330488995641439864819153688508385418015908854381596407144665794174351841788372722121919261206638328351958918164955480795082230160356003739389284795695588263092075931684925984039313148334434037840720910687119664259456968534399219229094782318564997046866068290098657952526389068312418192479544767392073210097870769372001987616505326443152024205301609713790898318355468528306551177898555663279177478323896727990775963339522021813902908357688592719721271785807108409254760830317504418685808963346919412755549853498534937145459089282695585601944491864816820101665724046150888532254884760435004142654162742917274978548286041475150839541831351968097390245087632714470466937514176652059332616117972728344585183630225277015595428870949603068989233831682257471798548150316089961952281669882697771384686851007119796954793928391888829364948135951034418861481774908523185477821722078062737897774727382505578819644906770482498325671216718340656575861987521794868022261375874538675014010125862483522202166090945841870982663830931859269188164531431952271538663865830124809194443798376276868257176146223781260047702210690177029748624773017791585645269227236910357395790890272176200777224663342485213649354533480777130412117420827471931969430218699728246502021239165487027280624977399445194782400798753129194469225397780072729143417062574910997407289447297668644602819370737805190587955603424914470397205575812384195758259919754555166352722948731307601229041179454808836504468850344278200390629372932070761838866365392866517009991018562878005411200817825540540805858912159180759502522349419233452073953820221861514524823283145542009591930182280080600855636129787216160948848572830643273449296289542372227762755811788293931039330018635372668759266536656001276875134475304853581646710590788796478270491224003887013821319936838599341865490071607273338324290081094598587746680009014203672202397755703137491322565787120104909143572948386797692151928677742851139724645670871806210724643679429421870993884409863502856840737437641178062272564978685144610339545972328826531518186918500531157537299110191241649302524436120567937038402860229765691323219486345774421250169589433192171259111288397116416570282160846792728490009769480739870389638572656924475266678094997280143018737273760856553280214411966506097778627189034676435120659783909750759091056459185521607106007255925194280876553772393080540457090765836759472689041344948808299181749053248225326774320809660887829156891665060025533476921343057225378099477798462071896839567222541140544913134390615553807777931052919819132619587060627622186018723278732642622602891526773051017667257138420671999662836576473989282810081080400460026305825601497776078994838509981130998566780681537065011408174258251911912956188243546822969481880789551377076200786455518620026605419046417608791622744735274154272575782589365026038639221582679940051936236150995928615013729589641673920792017761225972292075084252091359563306044125662519666430571833650997671961881855180067785071486504563757249925808100798808311578632400136249013405692682861446734435203865274628301423259527140371982969386534685591507499652861348407056634019467156436378693725278305959040005613745349672439951950311158249618224018319389936686120028808022397149246982682139391404925268946694930060149980999944485236990927763995947587927443665581460649705785012204884755008894606703435496463879438742448732657166214290281268546851651974303728954207536632929907103178342567892239772102894810494781945274737433482110180197851602353666276220527684298036188567400892628855688235076391408911155678147857142595068213159087684711992016084363866086692512254487987815766452697635581476303677262142110836829775790266298209579280502194022735156472018599340270673513378410970313728911770604116321134081361476660627670072807815255999595699282194544568098454105224435372891247393407657872041359239773841957813212444511351769354105208603362280136786130090423637116833834788598037664761660290665486013941647309817478958270580130107413816003202643281830143620806295910247347043642178566314807464515948218674908256668631581106686348353611900143263309863940017339144934295795170399035408047907478894549691187640211116718240696305054880323257993661465648609015916316567473251132162775362386645523595933750865666093788503062114736676293345081017097723794184606875897450166941105920342352452082676428019046674628035541405446555923132387991046171837010007730558310415417319038838832126459829037644169746149311136939066285061543889609027992888212401592840101819762706833116916579890887609288980991606800867764025341477470473410929380948211771636568511107168251115648390030922257806037736404422745209758002806636687967740267092172770056810698592151009321402634753971346657377107793222441966491996738408163409954912419360168697930668570046696189502655185818339149171718626266218635747168409186438078385011123915078310478085784129805296486477620024768368334621485933138528499578621664290407272644878501281325219152444183363782586281415843889186141417629775118572948971478534714693159738403007052753222849150004382807042177352042913986701386788742288874952371889450699181979608682074786894798064518476929067993218581516841579322103438022138273930303168530457676820123772449383573865136167978825288493128029096673102080248077426932892344495360597383237642769613261980086305135504009625925156714446279918983327199834599103969966402257349162966344956940741949967133319174957651502900944786796412397184990288522787654468443999110085198986915627869696153947270467146633339741257438628420207119718259283564905572930735809975646900999542070892615912419829734818230416258380646364668006463982021413290493640421894705422104727473558331621795324469201122908114532665281229610152442539867966345614405354893091873285205340051476200951520727383749717890816281809483437380692186429245456350442802544670608832201255457628038656839332084254270807613825373530247400200066021940774791991429588638042134052455011359249707901365972164804627754541153837673157589211996578297461266790823515325518744503823587843599938292750935778651459974356194409691014475611705443766254287005392075308321045731288694429395669386081589853731079044940058802026458401435501538859293612716158989572836189475939253183751687124479185010788268780994541678927681514887547427814578577403055794705363047854916757315690729379042638996073881129506041703706686056651347376787808384323883328758526739943248318209011671891770837363895288208654930748407564003869959365758127405169159270899184474845088921264284468888028591487081958787352285779254270166924008645695534897696123889967252573357902641472957338130076009860256042607928055060670156860352459752398893542201858980476250767852067500552780345185634414852041928149528015964940566649612171409937203162081453215135202749116518260394362983843211322586881768148157759182959515316277993218114668384736100547899550551589682220297485412799171055170884633138466069156554381263230866326543630227829346016757361231508734652546672013526264071116873220982310798123188816237730864799335894525520334920685841959835241671119025112921053601367650481794826307106800681775859893574992280949545520556529982217028066698993535682141828046236762156515330602485074903934437814663309681821726081790934219553413875434624135101602643242921427561275133034023001801123826261300265669576435819001050424115810671891579830365823294768629738234052427366958872839712567465487907832870006617314206300826776574997577215773825581614599738325009862386532002637862717665209503253461870529085572163988802876418648749656383103301020109172249343317792572696028203217814521713751606762157412019067583556964545854362256137756928232163144914083897433972523667433792850094953220465806436170179014924881670297247832391865140030571454381241338883392027682866958819684327772291437782523979158882138897754347679022219344885997514652454490352303877935346456082747677443335337880593767424096291114096290329993622246182646639653880890740854708248142135422845568611352232326502334836692496607428901188724185580180047146080301813471497420171530573802344418671454145079330058137745084562851870428890982931421426363673242842571214547730136838658713852598822152610479656605142141552077216082027255712379610552126844237920099975677111921724889125849835758301118039014772169601430818499897689096613431447462274486076376674498520723325649218219120517226533921188131916344822484824111803964772400923375004512646174262481261645841819697803735650908078145571933093837337511569664580772607033264001988099394506165702908090767274334303782545164992456649325589865216122449758001070433389621001230416329550372191840655146129822331375318690499231616802238491696901916392961290572298387629093117059534529110299855813345921570335335974984353800299086518417969734092970872664131088591878035759206444487763630493734514514173452104429734407404584870806640096427248384543075529661108513255312193141640796360174418864207551437220853417204578813025172998742832357633920837532510098544893172812975672517910923941678803755074815535705102406104816262030985680822802832783648593977855822800289990161988474551431680541220930035710211134920366938685969110628730736328634368413677839070600843767873845862249453785040044560933081685529939012763810293079478981410396385255080462876548152169120469249504777952395992308252408920149510835482256351079644072085633718885749217329489522495515992913629956435834099878976504880867496883591415363423728303751624565838910988478670947891689235961862098269818975558996727888747024132502876560662335946532301153183387297311262560550845389710445917225175850537537014922987586389588582146475412513232288794601576195657485928495854314746322212401486202627110798683102182705736511843291625426965514348128164715814063120387392903724323668533681620975276485139784835140821891087511597193547425951987751665457120799443695296818411558762825148236432175123312785970111011815916644773925400963040454917049896483341209853001406065639078949203112659293082085590556320971665035589960130870483519022922090000307797270370294401574960576344586864282727964609977793251379994771218621385568845140837425519171924150804259134554599779728131196279191497235085949252784263469787893276985507815409404040371029859152091320222902987906262863532085692317302021755456334621702627310154890621306267764287811976197357299957410588843977612825589603805955211885773052072363012065568220482216122315994051832893165766857403458928855960776030108515066629054494001049948066921584728961240452306040227777216908286304895839395268445497006715259767791873075401913830113370105186469022335113219269644795361827877110357955843546341144782047704025469617173947254417136544208363890143363383751007178228058840546295116880278880578688225773862608261984270409879634699620988305041816334911857255180160213421349950444522522348977752475512136134707172448553066671089507591293868909990455476118132597660507858018912131176506504284855913365226252839981606303578823248851338882058539096139266609003997656172819083232583806358195770927741437560756241516511110555473158103286578962482425251754105062607443350089601855984771539212838831806574343436960662918666722319591801953629294590797553793663504309646863861961676520598041132155158109694318932046801497052261038970933028623574441304148374500828604428239390573585991244790637918393579769023579288054957545298547640768112331713868079737179588388110138155363276868775648217282269764178613267652019236526204335388528005815185798888075962763693660705994652766387313035482217600398949776064026828936312469378252998822382805164844374700254663137399780920031403280158844752052867259622481632125759155388408134841933628971925600930497747371024630121965665735529511406785354028397623284028354416629230278207724769355249265883093138461001706916721349254851193508318371309631542164278081365105620191266234424125932604972883720721812225271805507398157603783164167832386059474285617189927521837635823255318822452092210704119648864778761438623834534652063668256705314308318873553646347393962422208537484219247383049453745568240177666505348327844779562197746719192388440337162355163875088319624305565742566773105770275085048537618689066807756486738744994270329497183975404925424772662404521889319810083955821470515833901306904066948871253968894009773544176045328559185536516912840834276712513892918586174817828068209719565743294539356848993377103824732085664012721499492619272417690439296449216831845261257666752908444754520136499771762506171203757067764705942937227979939115162967968113601110491220188037006875162377646970398405003320242048698406910368679309650377338797661893159134628668232717575049058880704588793356347139551792213374082856576473339891054778793284170915152647658929706938843627305580090194442120047289214027929430252475961752536291335651193489950772047439579040565673541999557740943817659307802332220678036047533858502820831054240049293677480498513618985946003487447751973159757817903966980006685999318576586154742114436321351064896902365078636967481993635865148094696525558551525216321370580426344871204947658191773358618819759987778840625025088091242685019460382440819920646590449083685278491956763968359147917030239357014714914801399551150732223656406894041305822808136141980580482700899231235162740530989093973540922157532844419217601474649533815277403793961938338597330503796355317241545183796239960337914739616984170396202596763985086910464266507987776662108676309794514682870778352059348197974519143132573561436121998214317060577450708903935396748233640906731856837629297431795561870521426975283646713423351760490528985390007112132719036284765696182445622109320951823757955650300951542384480318890539015186191886139753834711838457791995826003829839594666636780700300795049438962428639220550223478266365391852986850668462720143575674578028451073132180308348920019100840203437941774644513724367652711340757953426072735893371163412504641217990324938314473607303956012394498955253581444783846619139481369046885222623461173550143918622863048828452668187878557498328581675644083125040328384585080750557813809765259447777733449804985747832586989462776330075528048998353562848525604459249074277151123237158916212717033289054251433059136455938547212430699281100515410530606618443135478872742537528142262648535667481009157690742237025733414003571000649418824005891624043882481876822025708304707894919561678216116260928360603812069651304020074112428160964263735441705300870000501285113471238025914997123622571279944037194723631326233052922301480571983240259119313730721777584409437381205688861106871519145721035906169794216649988139842449264917482872627903700392953587098820970091853492099122822931539168637376570201612458730700491605705502288670506581119329552595883921363136643553792167831412757011129688571772803510165809819018938195565471903634802285791163532002616913918524876584540213922613150394783403480465393147333181504480266263359129587696849738710655538755663114076719544347419870324938645074949927949226271825097510180278580683951228571447928955069684412822396708616741682952547941557666285123679311300751655697427745718690211034902652052357979320704822995487240218404909531416406417601856786741682383040641996931577292210892724551167611279590933242382899306787059222002658118291702623988742713337134212628225717458697805425241008915178520746709248028943982444618216240068907432772671653008400613028051319348668433875207665979178682977993010963343477105766008534284474535568526886041655036126085248070638046319001219566480361701056217333548972222981464481799111818436189356778982436512634792297286781447596133812118336837306127667322621849733212467386016591943634078349752091758064822739128248380156821354498815273765842790443528908903559048687581020826833428506552202421774297765440956380628851207706969916513514663327917935590316441930229948853118605904358358197145110987495756003859065367567159428205660548746379346990035333770396690262611580479682581384369896473213106667230634822488763580218989140379130266586003591017386650337001257224118886954093592262052048868252376675463989132283959610195770312346906467388050117127654329429573008486561043229465136261618846174115751864078773400102076828879043156728223250402565007325671123437944219768993019069768718041024892947542783513940731976175655465976648322964706887608440602706046465217811792054174235737350146567846064430775420436671207844630951741769099351129042351128416733573229973602239513518190148778056937061760884124070486519314888848038168783774875327263321725222847930487870856640601955047618049375465544737682308344364351897978192037608115538341734877308093598247914634367677195572288368950679705776882354299904926120867107046979932003666314413415263132639160081186369031000739122705521338022084974654606808160425663278726244068437189408405801471187125924448152780393853558469298179807864464453318192797910465582186833820833734272506107926807363964311424761759218386695672198235070975969402269508418432089711907848718089948826201417197684760954578386037508259304373876229008421191800127332224861479859650123663697487460337384848913576208432077316124141556289575840137631473480590749184805343646931629065508814505201423646782779211810134315700763760790453266927636327008471065497782189497650263783335020836293043357249066428474131890796009270428501232737930364483413066476675545106767596583044214053058456831184041483848358821582148503320974243371352539789441984036658006914991446815751028088002854225070833232316874649441319093287300919421232904002658395987938605918942095456828291582550092714176009105745512516135487912096320463308426402937280471851300565397353727429205213150097158172060533732710225717693483366789308443440873068000801140766425499848014422142804011132705671991671073695710349407071213801329330948868114409472348700138111912917707640368903145649267857827568467900077608083287392513792758571552278861487508889357217457450046249300435876433948557153212726821871582370030494594714015825651385415160909658315629742236762814712160515570013998336574919909361048476477360393723138867023955652176393461724102109955567453632604848359949352517177107662668433033003138402892113818798134178085936078637366582375613575364308540945635937417838351082589353668120732127238685358692508216305401076792599825537263620270747239312335806159096771478706672448027821138290088959658782171089781149558867664456810944661740897783248595070158257347618306055180656017377783969103966506869356102464795188594961334158509162253176503206410758759907043934470826199396293236349556419515245781182919850027946143452138720750719734143884290060971486178220199420863894829444246755120503893427788957536295801353756399137565427568437567686861674560488326930973732583005810168852705008923910231099910338060450112204243235692023715941794171484085668972132659344515143203219990117954540585624529907460052940040196517977902863799006259308421241774080165866122875147203277419722098975425499342388322638303701560956947419040327078446890678071937462055755144666859607746392420276030892109480357977167369431386021470986377534018834259000344611986245210759053022555746620361161562659131565732953876423695920307511307912772795854285985253402075869640068884334783307555054660325115739988180400369192574368263542790504950890896863417634867397859953508080701177908808270560984420011887376138279909411776451170266631377907219406880911214506450817552254881933170318913272474113817576098875971014702364160448894068268609136341641739244784206907054197154584924337755331225778741722026090975655310415876440628580413782593711680783234944095531898481979391283698374324432924586147190809830971193984823663362385075776636783145663069578748095785386517978890414557160775549370584734213550575021896723027367588853787264070590446482492163511688078273342672279080918103961925674576284423189785610412717161011603259339398532098222278663541144744223916464662940843117082253306241527615603689116810632727753182412535569707409879842556581199228830588767841032716646687061743513225276879407313474059718192969523046702671946575155834043392295024400254375511417022813545671165938435418798551442861522960483836267055910904098937710888765950635659996215943036620453646259835268341665545433519756469557851556044937402305121719424841180644171407870506554774870065299672445122317503301565030623837852438361191539515325794058623429896827071908579497590660239749779926238658502753962328080092249619785257457335692042690729680560032747348344664653169908689038379754555377609370893068468439426234238824454701791607397307605031620885115727601892863577750392639194068873917495848550881768213484646390048494356455015914341868286689140435897001710491781981425852068800125942735117526870904782230986427359653069688985884990673953892644072187742502212742559113684972365580925867921698338997621243273786930026483153609557806438359466162994371082805037455270237932749555959428709155945663603750185416215579865770264856109552327853911211635911570462808299397196221654752912677443942315224835820469863887037014640526944989101984081960755137059880734532299652997010726237766171526560667684107157524569166741312831117541648540881959238615773066326234300517925670375203558604660184253107072697673499511652918263441073584361675841973954483128325099581253186861300371398613429880333876297449500755620531374971044102808574418120303846723780599169948867932558376052880185230256254724504129186894448093490585629629627593084861249713396927204070512989001716157763335262165969275236355153677925995926444940951405083983271949981973261115781818237638640453721283560128334811775192509680914549244562128217720462046558971756098426794752630754560061988964039861044889595641073377237724153321343867851206640118449890719438460403869542342561412243306141870284122617350015540940000711548014010999871973630139456172227993364267784409221012378741357030887191754684065341273002748515870002731292232529351529342537260103113711389420998511351477488200598878840125099181681579297627034431768376779876181441022605524198983268956454719854905125101810765764329610606217016170565304448789949278978899154490753519988667258702424063753034738927872676151069695984537523255064596962822296655893803959767258204658784804993181677826808955080301076701741393713231932989309441650925170761528076417415936386723550631587900536211510231676674161367244058781902263438954544205826723027864791880517263878135336483217306274615017722565716159583434462732770035104861101987870449239457166525738070202855203644302989292495929791436871009273321018982730590711375539606901613301848008269905249161208253947907263516282944770669463280284891784026891588870815888735723124164052477495132162866006137238857471542152552120618189391870493947797718356392304823180635515813580078463925662717498592365878800007864974133105226432958030946754861533600576908902506296687283957839529662456383248646414854388714078559057330192639589815556456030992118309071973848096887950680359262068176787820221697686198710044600276217369294206977644184604742312057716684421736614950615687631461969937643318092553020164449783659389857537348696557039345061588643340316439280309819333821317990033341515953982821252973117674033527426611149912301546614250256859061974816076440873090276901024082852445201515833998738840903211681451927017285600390032697261700909196214032809941489751613451323320329416868611397973172919893152786220605814327000519128633893049621303044404625025754336098237428335173980307072406122648362424278798901584940462822436047153659003485141067123977633128257265598163375686533760319616351731511605359468950721982874911714192423250300629622951701794990168483197300724752591515764432562934605820467266699891193388506390319727419519905593406775819201330062650472970032456648980320440950154541828112622140832909630152322028775246138481801897360960023021608871023300431375985473650088316165374363131830728521860806349661665956772940094866067696451682490066781775885167824835725418894866491137985708544732442200602486897046418264624794101708174198244250937981027795078481898564199699910548631401430258283211296096404856052865324053134791159804047123158578954848042448053279045965988674495141420982394531538365208395936120824964654064514562174012162447928199315755443504712426312356642993722343101880313667595391319000005907958255347505506978338685782728914313994535584875598831816307036655447408273071453550679939514250192557541324154910463903205787914703649274444875860191987823332186349176751827762811826546885354052450265534795920728070801647449653229302845533236607820590547131903055173288061599172826844405236125529500227106127734726287153467957970205503258731741122970663287354040772820657735473626683746647120901669344733207658043017949100045199773691057462404939872360864225953000294473609249334788286739705055231603275324228873353754160345745747580472572400525059504337393112627732013322083333064216351611850695718580729765710055279262153143182102332683989405966518222134737754916503536797550563304478734888809728035961731813162471680596976905071558766521130952759153283643786384305663684277183549356643553944079126280936806119074920538259454738995565618388491969958552422420558661551110399065703096186423386914255802792479327763500882010423692254049458971238180704456051939938669820225827941235933123910103872020596459488973980414400406090729045367851828261828689552885609631379686299145257678676988221560425722796523309215571967368767121607200149034158122679704846905214401311151444349978900857225353008611698378516594218394461858214225206267762427828043942902795661060985395034773575197457784207912611383034125398354574083717729374795989021838983729391997578176181902595556035147835373820528987117608104817918512462651004779330867787790020744289262726074009836563380669617931550310374118774703524804029377118492646006016930279030074915227524305380955452447290501807474224229003583949744565758657050329961962518852707278105305851010597308934118133267394437766932670029442023605634632006025978362039635389242181996431020860361403608717612574293171310164013299629324992478302960590702145178831517759674746778829928591090458664404374683506920941023046787012050191814537535467120943235254284992509034930704276988133587722813757557601222243684324883364480431293668893355258020949238423512799005403856257971188367726319849112290771260717018520852159665781809308281146570965302392872565347086345160939168721871444496272143208183072687610494931826273668590265849768717783864573870418257707658642968891378688752325899274556408771776290262641096042906188336533810755158408812867688195681571516197778088558966640976861718110732806305486976562888079558356780277240916524582328992258646254517760903294787723099431138152001924603393930071267322941212411683605782950812700516370054871863547310552918125427485196883721669167455864512073994196488580795394156840107320057659906010483211716411804456997253497679535811783139415091969084567301344479263164930901722924304831076105316196307427983048707750681973857746699305494994779534790315134185170242637193841634814438292511613972845539763274270262846755094424925302500266819323779240993044568093222889882800244612123930088993824757899815783209910672016408545680800821217074217278710602615391483452217135093253751710757993567742849816473744533845583744643998955296023836732598111264358077068411428438687696454916723244681663579792596880957455518205964573152504457460939562708034884391429136392375778142245675229295253572761536097683960210268464243602586149035127098102085970625900689076899800267149382252290103586311417198472911853668268730089548285056484038591953355016782190434293294741018152816228872659796032734302619366210247012974218007428825309596767521740145224865068340177982348013421203216628720899211620739069212238199753462525566114945098294340012163080569962432503843584650982811720748827986308398808789912766479511276585514747005928216797189227930232251340805725365968431389786686361075835548686807909703482728220441288286408823986655221700225664083709645633602239052997337364152356316345560685911973080752410096941763993079946175736748217840134727405631441155374387093328172574961177860949878879187451613792860638280338618450608566248720871448611425847913060217214741248282208545253390848299168203229556008857220483411898391505970148339800966037131819371277311424631346163176852427444264886006914117607799463699097575197099645342190391045560769525066667374602711013684643177643856434804239401466483901926050966243840746570774364172367535015238212996432528226007709343232981117812875803119145148994490782679557396620902703958443995906231444599661445167034228419464654732190089341541117512997919459849252254340494521946227966527784628202562396203423547130449864096286464213553140407957871897491614827527399826217558577381850630651486105891955581748216332474606133649864692661992793525156888796997596632227498148337977760349260867489195029117100171604816821458316839217042419459531062062334539784175397721616069846922063954304748436226389191787216353622859743604711954854435819554864848950790683581683573918447440972396874053876620885703959693669728790534626938259562376743407895392215124080159965939365595006120104633897675345337721428389913517118090403572505842414978081546332683491443928166179596725750813828680586722936069321248134196585044331262736246675657214863696258457990419470315658696193704747321670549317090177561013163056041516964296201680064204824539444401687280919754879769164043912637358488912185775011352993345458102444573141676942520188604253860527832351177733301249111075558621597423884836226487132857169819379168313920930895873697163542465333441776986801462544427338732707356991936413304680532613776626717941454464742623359436085874795306126980567073231360052347053250429717310684066207528081603401886967835987349651753343348952338032935120643786495113592184577316498627538462654583703587321698139309643756622811589253453507581759365582744672504858743937695964893264667697572213374898577580200869680035485505268863916930218167032554209156399861741532219675247157256656773089574154081876836410171515107576596809259866403918073102647065356072406283196663281063981284276619358146001374184553814040916263546432207204691877926736304891500891363621432129114259387714341241539749338133623478538602290357156798529304365482514737612348827354662331035656515309142285677435584186787833763880300776941635970471658242165570830428170940237977979692696770842475137944123470174536272032199241109692534944268740561498131881064763479756248756082399288788287288349355661089463283067644651600545745852951843338946569571317964783180617046663950337176731363973984332096019210372630082606872103332739944423794593262865771962019695647596832852149531882145728356407958243796313829806520770773850635021998331100250624092996261289015007264768136300508886234628439503974186837156078241178978435724064830743709045830990607932350823608020342923251143294656697698813206435525085040830068115859029278616515782943289735782682847508519402898035621490452756464623171687533120435607273652980955562294800893608727265287311053247671562023849156025540328011283251228765451775039519688698508537153325025619635371154074739144256038759479587729666422358939208966985511219114458993419171283712777576244919164075509166496010077110516706429218210933305223142467942959931043364881838445670633694062095788853005554340212101019847129254900733421885313013408638385613548852866890447983723601578286938177014998473422342755247083288605206370159844971002658322174882811074116735407044003305410466511986848367476325489791374980798025521783402898966787218599151812867227259804815398527787132136763307288023514193284629279578904621510737915450688758119000030024400717216153501516563507309118871467969977564060790794355367871676701196007528292539560333322242913182696068341603343509898684100607440180970380018763003712398836954441923094031217655710171079169327636735223080504684883442722177909015006428538062217026491675903942003610526154902894009113658721679138642751409471166803142040615319544020971920048070952441221098842699651895703433196560734071054904226164751949118718964273567922264058401598080229275376279704792889183097669920865362363324445880516111838648687677474643385172291954074227279454778420835290093744662276425908986149102261885586624682280404049929285818200730334353937726653569959631820271951949559405808816018411717989305313842636439118592259043224458308059305110523933780089684150481024981512240747843772021983598009369875732686372315915043431986848309274771879414669364998655002335297382002522674686753327986749228930946758267675056160449193196262161829957268862334277094727053237941380124702876145108560413262485760557302262418806797693183303433682229665198186133649086693038633483521190819768295828889730031805447885339901582293575479329047001449263633970418627306201734869845107344579526607846919635311553879260648141887445881211660961046772268135255077818114676423660993528563711854429593894209407909968028310948644848511336675487718789540761272465527973909512120026563596306534375769099660375009974175802914625683730884219667352207671894576141635421821008627740125772093586005713678713420183165571764419105422407962470431092460207374817470667507826819857775245144025202488348522418480839847992561896681730349017852408360824183770503854848544412337234238366469515952244693900410050621161667604003982904681919936841522210402442963657777878114657292898745661040199132856250999068823231823451265857176293024058713094146713822822418535149393544371354994068885411189792275477795395969471355827081953371591217313936554009493805473333872297133424786815150210145266439972145328182868591536701784309376246769662973157457471715039192656954291838529961416185931668283434322906533659995678425959953775972182194132672131692084577790786332479477763561667615973049660378478379605153922613422423192731948152668508049356574065583588713565442586809873863230369300396391388022797704129620889227596489655457390900299330010667043114301725102847342497925680432524178819583589811932837306454773238476644671286191999555542609109913241881266056774284569697809444429129376745744449551473977551661550771680169369057138912741840909239540332910550205781762102958359598941600651769216149445917837270287292549258150330552147974794913209735790739333473656443472638452568250092158197727445383461578310202262623120565865960926321535400046958161772774205689425431352828793070185861962642456277654946076731843179163223444486333233867913985962375863104054483924215847276212863105338856081646682143879885558430823888411259771301691209550117274199140156538136164565479658157938096497732079286419073547284229357991896405934863870575474233643407109935091257203753407691481171110157725853508202995351282160525406811543584134712665499608090220056167486793994495058240844538384586327043861830000472242718104838599139115332876356569834246205856546265493966008903542365288034839114419737069073864301131737535881566362505201649184034830210353086083153790922564434629506781506314300746520390343280329533627413740609200081006356897465807568010901947775366132637075618414838926834871278615297384560858261781768100231417226533253477850560275891682532251135841262503462459751850779867018800113296518966103274223142194018695842525770018791306401691238361870400326468403565079641150938661422329421007516843597502401632392673834498242676476816310179602334583570736785485045542346321910284683355307738455503548290342228890680780936453147574377702571795676054970895999054237075000546454252127771533844050364594478697914882338628654897525406906864607393790511965405353582654108445847810244927467005751360723491704551028991610238096090186300063197553084276509363662402495537753852956297340123569454652727695372883201435220672672920630290727796756250299053926249532474886416451342017654450790387884262643050317751192525666443959689906692265108293966708019563957804855380562900383404246371159194149695627231907135161429443889247381148825376019043931791675981197937712806277921209274120819728337416130656999219080681925426169853337043544121690109314174447730174737188895287743702326379699404773436456727931357140411251215406212946755698617542410471098062629677077943117778361550559919824260927208742235410129906482852811031978755425100992705263614308050618290158718768571391687778783493114734117352983521165404467851397420980728737326088447615015038823002872956976898187553078461093731683985875485475514215120504084499338393530832049342146690682352397315713678887414345008649854368639462883924962459001167715224363475402612386402277073420354505783470432310294241810086611895362676077229990279067427815364441425143577293380078465841626443296328177435771826936488302511731878919185715536888559734137858769391119558623349981599872918460813493850179535428282922663783970433470845762436266157398814004068455091811413304121922618086264926000711042444815040824312502201829002209745038191665131319930215302458344419395672188298130311944578103561409846250905228626077666888327343367940499704678063340017726051405262580096589710526564145332526524331441496401349723468523963321285153280684783687092812325575459183832152723277128605584866431084131559252195527228982642768162388139038140097502897821278874585522831252952046800152835593025993726821682181755193063626471004964156860442247192930343613738886943312107627984387089906079709815319456990091551747731885194071755981583517194275559852508583944242526992317312799204689431257553255876244444223785321970468480270507326713906468436191078228992024051872442701243892544551020940873468364311041592635931215329513575543800139258405873396549130182022305605830272452302993066999923569376819669092645920868427073693543540749807891662793785067894079856433653419299886043285724571617437926745850263956677550974569104920460292226669487855738680019306688447671746922088315819110126428958794290975778579959331974783619905138188363204590830558084546885225970331355734574980628990870163083908018230200011069917982918350799164168438764972441848322424753916014528816019094948475189834286538901121748419227521770327515577434809284195900158937565084075868175082816105893312117734242471167771244768473234135123893648981340576507417512158768063022298922698242702633837714308612870986544258773973831086233622603797092339011553752339813444269301241354664056763778352296759165465990297246917398668310389602994057907613123463293558955881541115288374468384426030135600187577203773755845804137380899430264294540058575011352925301248309141173901730172803155046696517104689174004173507707656925146121967489257400479161495711947755626674027727250246971285168378712943641350139719154878065822525048370503937920059877643427956348474178697571780328653076739063334202607112680307688522861957476470947464448965729966037581827306574500255609450619272762544677799959264927639324771640952025612834609496088321644517504141123775499087550192897962993213306972286185106267871023047688757950414796388798571462830606905803946825941663395714795983008847507013965893257696522249982897931993964156331039837303706371399473379361631525466542025399057237415242753754453574668569750242230851782829850687173587327460328520484121279598382296111850956361574584979747788694301405230635493023677100838476756544428144537316120999132233215341447060923234862878347692241107318563235840740177200981345623838853101814886706107499212535811634370940899671481164826913807283166738788626323697402096295649002061319819701518566461579767378465965816851965273991254987224251403014776807601873954504580139564379059141907275360181439881727368705785366157295471963175096924106710792609983072074336285767527243141807244287957328857399876835923935906911961362051509592758543825947055395298131554763666314598148803074872109870109672081817738978218671474944124376690527103082448616780183223733358001125589224061921875510290495105722104159623115440312619844546744224829173062136806201576839368132943793958498519242940138234301684322597243274005347372992930344021157494501112335165421597837293967353585923271136903238559390716121146820549207433418675593120643177192790600456074838129280715126914492363773560867073524391574044019750337795928338020622556074241041682593958733883344656437673286946668442704978885763454838186551633127094584884443430812457967589138870765395966083429721826609743851643914197505244728178996854208247731227927344765949969794593372102154886792341375251357742734267681808560623811608288444761102916448009421132678121945604911028740513749091575117608625829903355662884441130941100410221662919967894633021872315330543917299973090676990029402093762602973588617509095921147916538651192266679458720913323594725035427236264680960631574429165424027398774076610166915096163821363042299448678530680856675762830153155755001929957881613476502772738628976162320744361266839524229475233914595314242405094675537107090472486425870611794558711327553004116250869918305083636838427478586540955741740669768016303844600998897701650381591704444597759366192995014743917050709751336282797477685123618662488961033161364921124141244922698309722313590655261646443912168948269013799705220071843637040311040258065080797461602688212318985459397698585975649381976151763478548670137997170746128688927791965436985736051615873952791898292911236792926675534028631839859365127378522295522799481726610144052720290934952362625581641232277430630439716848339070089869469345084563927770580609022064254821299169611115863222727554324929938159070677180883295984339236701553540065824454668353138384968493534044505034099124054238343101283573250647283158495963929456776066743718231207865392418302159584747661630952352205697696120282541225359253317456905331344241702474068902155289343042767205847508976555699025213330870378105796898703594040242655409416850993293559474193389713149547579589016437501471403019836492943192481192019239434201366724769134094421435075725744110722922023848089594156917165462735282684936417716069097094303855227711416991638460563252051455457689031426241499959995765866610663180039581858972417489921650439779509844825630070602629900928274305703874417490781218333253142907112112615910665728876621640161620690702376017471293248421160147916533224527564958437737063083163841129878332111244145213581940722747328411432479516452780663888863160591818123372091775442820932007592175095298967606740030402356523260264154095730086283936277775902861716298208598511067647358480277517175976038000277818523111659258347500162056737680792919966606386670165367358452674018508180106329457261345767298388909016597398452523602046657000305442565269541703980811280614285514463767520477795606866840858161563735526340270109174593325153784467322628180234486583019116114134730981136373841793885098471704134499866718973810337481520657601835175561984401197416763990469557187892531351458683704414917507562038048059525884286034174395194326251777030818782967572169684530127005635700524660573116610413905182199238945902349035213587818672408416220259997298312250890671931536026276236559874995413292041325358231581585251517801014380473643323319558392432485660703032575269851368304382310245867728913344068664649041095758015517817507670785646442746943127269997900162318265962887113504206035941781763145049806818343396747313667320876813629709603582174686228292651117483229765643245741373612202138791920113726469784219040800292225503289832587451265343357649000823699333287542701199867060984386908918604058806735562158407453663623744453160430256082849367689865948082215445709615185812572255473180446775384345523301525355766211386491216647101256366322034951165812878772680201380782216681214275037566747574695301711419556743566746996031217377785770651838060649646740451441881796521125707636104258937191791915798802411411930401746223330616627701252333952884224659946197290863153527643633499095822508713537726238356466180581569807343120322695061241635915846693067301902864142871126149921182220304712619866027408308619974807800747108108904356915253248892321162383179593435828196747566001703548928468513536213194921894999724067251875972790391625938815577051701261722886522849238251426391463796930864431030931764865437650481985118153030641813726386577071853597345339808039003559232800425714871468474133024740663873466448672067868953594597357107615040432034371598131633513789397330555937411419271774771525040997295269532042825302820299226575712035802983184342346612409494293107309111902495413642059914641185997586686726495317271598974374926245024253160636476722615540436094359498864411228786708763631835838636266019582133006614453944614558931070240767005903078577004313983587788405203879838443715722649981334522094879001999600353299088788469079926845518967581216979705223656596451699829233949608816317401237843099369062853508904530166081643738315326465233440901871509725770965668572839760955754935749554555754349700175379489301664913884527787648856552553677402455778382034028237543199285872803391470129217097932262190516353327995783530133924935316306047595035087296876441122727650504272017819461284032865061154872909377896478709886310022689461323215765426863988940084843981573950119555534424252174988050671841424168072040121478932460497810167378547399268646815386149563529048342744336192985664103596665286172023290010605378475725501431779394888795033295553199633033597209761408845542207120080788940252195500099490822581254080202486468256260593829545045914471020367688436235896827845072006562195883777233073804228746264252925975493092933872547692925842742857189033801809101506764547088227487722679860962843475573529960869491965041393372319287789850112734097096961724518877910402202963350231702032258411372765880429928208168347204712146790282453544864954847070550735959449237617637728723836809620269285646250368239471748390357401485832382928871051188872659718746343226359678234185701669304623470111803132018569034004997171171475152192192519469829506385059442870189031225139971958375687608245598783175602437839481467034557119892161417537654943907613702146996327412952683681693639868301833951049296361787720739049108248045636255774983191068529369963475430082528599400902408736482539041004683662905020525316202513884137810991994917351132957940917960950840043239769015671865682996945616376201439344915035251131086150533954603365970388429125074678427152944032939237305569728200482131488921914365474696008359169394921975372831576800537085702647197295223982095762288622747834075354566746190347534782065197373864683022384397502790424097300634358731405808681873282340160716112956524644611463864513017391086813431811659934855431662847291154653870265330457647946852065108784567230773052746266766561431793940469144291009864026462944117735102862546581367949484790338120292294839460040072685415523931690996344430030610442633655159467832733672811121071589652173731006396427812305257511698326479275496005641368392739529388199576083051865150504570070087772844335697541776191080020723521545235164802719130044969167131786873400437386504441620152827463390149816001952396280105975541129776386590532115783251034815642975029515260721789342097731902308400519518383147591135131310538253189183530252419361878399723540150311095927169164521647816871219239961800729709567279656198336020589659507630789211305710713484049412044494501555183648637598764831335816533905942752410530528354404600032972208673001769250788540989294496039629667845143413934843685528501054239369673457375140491242887439652396773913537193595062541706386669379125498800435709828260129611404813688569154572451818650289203933470993716025961741256981014015194408400016840347172973966390919327964008236476978643989020413762803391120257528968522484507815260869403188203216519695637008001450234356383874458908303170223160451595344750403531701124587311893987059962989829611790272155077831866967979672492439738506233154876993410763661715098984154219550274382663984587722783670430882213398366825509354099195645942958444075684241886264513936217133891288454075325105840614519515199750696356477261541017085211076595845083129502293923564702659869519560147156895151616996199469317216066515704829470561166600617146578269875060721664208510513724498962894080531283921627319589803009755893273107938872777972531985551966610941727128776382409585543310230459243648282227888840883009763459301601321233495062120353770169965392241072749584418137620372045906555518663276202282164620921201648574649654701579578646684442228289628508132920877874406374332622034639227341123255914023007515136170008445718169343147863844359035390348221029817241423115801468125497649251300937117382438097200306335508272094987463576390303255316706182050834207318416172674786805683307787019858380705699870935773955989452098681976345587918978515138603465008820119973545220179268279637805503524764128379865420791602789536969634171287570391874675501837931990914956902872514655943481226091498562026200605331146647774489544750344371920936684066952567768383241740792213634635066213178926321674247692522180713475676173380659059057373634754186169973933305125568654912753336979628239862604873306295703148989649219710327604641792792423871442934062503386942087373503286885514250450414165454154497961092398991031100646184019915594184355012897995739496196834192875648730438704155541759468279024573272342393708461318499925744797350508881402106508013312811210398075576593831523462088178381491752760754224521777264306459968980864135175128699421274618599995987095070188467727201811162885669722672346450622215480645298145399358091049992123815850947775965513188142410340801044127845019383302301916633567148920775026492093561352358137046479068344068369051526924600676278570981346005832964707620622921253202069829238328393769178747049184310032482487407451162343626201119187372366217549935861088398981004256907147657298720336468548878962655012885720766486986702850424848333434085407521626198377952090223848173594006512331602935570003525837737448436145934321598155388097089663171249800782784705261325732044873831408173607127862765584729079998476691730066231077604352541521347829069183600716122991603385610119462813611965496518673138192883052065869040019457799953296417383489960632414644746829066188129273693194993246553749589007329504687408552339273185355464466517188600829553385457189136268440681260990873930436850278395746969013205802336220608661131048799635714875696804378069613810921215004263528778905346206502906744864388082264212823295721466331744263293072005867825285389533476840340124657461618607822429743634421271395471400118341054650456409731184529156038804885062606037770373392805204767576198604873560064642430873061507841339358491359764819370736624809826441921698122410451487238854613428287605653022553008679595943683538189993392593119753856713172706827841852194907799867531167063013915414449169126388909248956772191727368983925774265503207552471336543105518409085914356530014321306074608103473033912037300835129405343948489863592485694397147985832390023070747479195472704334610183292321979230653511194350944030173187920305831857715124164345645696774526994229837967795918945944063024149703616308609524039762084752312455003132029353789721635220891259516162229005418077698768558614674275161922936213662591151232654858279965719143679505549615517954665282820557946347667143462075161402398483147898470108043482410607196052511316102107787824024581611678921774613405853719012042517490888181570496011064665829536700676306655512646289256332078883389248264171259117907435699934875007240441279107294679389573035152262545871826297410634098014828922654999980233814472759766234913780767354847731173789732857696816945016191009839898514646674909763420393149262455843793070984591871713073321465443921157180280372611612841350976987286824447102886407476408444546505825584363793847092852577482942594099721864461866084773687412684377313041470561891562430723740718836050166610081929391833902162753292752531627253150351525463861031472584474544362650840895819661064307896040621437229936608010500078345553186642456913185932282554549916340308365846337402727607102490601533368522797011041274518125309550564206353081123445825189052834252090138765251967126158860627592841906437226291045379692977159842772893117285485363661857801403852119753071747017742449860470472371915779292330877430455521019126625748300600173037009817703471684121766077077664382604975828508776323365556622063543201161169670375326792483843774942913525819778023460871164906621075280990599334037735966614205907871333358491218164427798543294269129359124404993533542041114112659819726550366904288695497161099800459941366684047865098445777646717406878177479510038648182406319143037019142437198464755018323859363811998900922997198790865746679873269694778474309352806538206297129253466564001541383650644945223810676514959563446588692182573648716994041334283007353373965858930578361152329837509584237262491329202382682063109848952011659813374251283044777775148958637210297132990201276668833365963088335582669732105504490958987872415249670267156115604016928360897339668373050649553777068585497704939065977376147435069590524737249186781790762172752340075870869305923328871070821588016312924187031696959285766058051756436962490622791400872109567378338503234303811645149672992702774038470055420883062750713935960497627546018969690061747870388426591560396416084514781406895154949442473946479737235150254310299844319877737499647955042142557577393543717631901044038186855433399143626155900757890644374363665965269135713737078995230828511175616972902867106419860270439681846497724080924398490074172878961147930997757712257860967335252231522992471328484485681175033351216774948174792229093120986368993815726929595483162988336778557486914846495235565345955946059547097142009115284532350545600292453952999959507673991761906086301367039825742413372294114895697607527389793249534715281307193554501777287943255300945176142373253785919968450701752040871189066112842552835272416970199267651232038315699409892392134958569586572653729372467133729671643491243870610056270862548307518598524882455280019793949023187628109670198499317225574804288360671442194486513157700825859829856538355169957728066051325613432693612325145632093569699835559628828234281982809365546445260153299749371008811847062527391325731655957679372329114452305919061987153999009396584089845943344617936669152432281984130810954441463092915425108690469196994809771225575432788093803842092165102251364434085953952068864579797552283883034103078646658772693146814384729446045650932801252761099477974208977613180460155562246126694043437550275327497939385303758369709722368481112304625987790371776541713698375022152179087561877388035786950020565790229695009441784951302756710401032569731822984239664200524620158694810060363751372246380673913219561504732272808205899803827197386707939039315256541951384581126076891992358665638575593084109542509778548919855471991348054913164006311267584795453730803846249703236842179624904406376260570592071105071642176303694244706459324538494531889377851874089692430030198347424837261302929755950758126960483888136986773663428781312095995467068683809279105774735112094526280257735282340345424659115939849388916282924248147473529676123340900124795056168643781242725170508369744577018788729313754023974190432393457503564352332415831603354753269397686648227943321847509880407815125234726410239825648481150328817570945570000653566910933268809662801616341815011951103027212498657626821818048092368431640360194227536665555941185719962128029940521054533567965838375308824595894304343280105928530157434612513292365825861488395095677020973898737229996202291010591134658909338563437585833787539863513680185994751016380185155558598011456291890804248785586963133781715044918526557608101863871077630916702755364180260290639621137307387762956474106365161866657188656099182037618180783425760367637827491280909168729023224007015544185662546781710455272912434329503012340473440977906139151937260569669060719918533493638799167955015559871541593077260699866401417901513543538864385971387991419739422798218343897940287039954988499645697628978369069662025224847929823297203025665912354706668134516201437388586512200586876062298468289867504637249583213010314594068197430436515188807562151907692117992266434104796363437133541888398679962150505514967420423679003115721779505768174368118658173838574419941622728675949928119116514118968188284297842150783861481728231090353526662908594129337140803435595891201597106778343676480680959662485725494459529928799862100601047194428102767274759745548851425452194707435693664477368351750088323929394264144129472521700751274276130219698973724540812995006521060373181271525355532760754724685811373426428390672400328794428483260487428302924002399064304985095192441149648209373789593624589158788610813745146045988438601930911721703070684847956356533367966079084777726426456880469871539298436867879437264558789592027237056519137342625709890854734310311683824164366387286456046959208930646559906183388201572256195555540523222832978184635100611638876570822978829730618092592181811615385255684143628733983639468890004360084613267993752773437770972851597898414424354822865979866956452094354207694605185336182000614201582342565946159252867849973577324057452084945873654846774793508314756771721887271480650513117252910763007760363873905370654520784884343909660562692552254950069152776959714709580858514518933849732649462165475117968947304012874590544759208911810125285962295711650118578675870874106010033823213763482590588720975591021245049331856951961959816052522771750253290078486497920648058458503306379546126949495735348599782207116906105653290869777732272980308070618285933815859077472467800986482754063022444094137105757714431139738153238122922558777178358402106723379370930226279161259643277207236475768521412308589453711213287495274316196901620036836670844498158684745255294881871555890038033820802469305553644274248101542627917179424250659903329909275417540280906573307089460217999774489211393250143148033432615130953651074440591864424454703207290432221904876805716253881701582312217517615693278703454187994895329092903686605586096124778241674688672738892914253893024611702909872119199963584678551466931035889075467857305839744343328970883190481044973998613722430379909211453692132871218497903938316958163387133707087137173185375040583015690318515172018114363581837008098671651208907354756564850283490634046789691560175261554438548386295492143397349455404618936543429984809056237988111745329131118487257159721310568851200984932081798569466522074465628958870817851857409699255209820754949146679363159443163446921533547603678464249845171756594756975640977146856698621462472307763210590548728233627898077747580554124546883378156920835584760281697676696205610819360705827141589335385661947682217028150486873629341458832664758176298744295683529408774552799638539737387443588360913225008089924093210217444122105499831283524773876220901180692960292020197471221644373537976926104279146050640055051529661518961628443106419628683154984120468827505871276396511408597972138600408522297410115255681783395757184050038827464994064398844788460511673372819037003105038806009034187586911813095355140563436279311571647327094117014305137808177938541699964242337894390411888897535946613795246416941956367666020584166807483939566306797564666405150390368771603644240135521924737881121783502699156885354096551794833440822060083428224319966043135043511849123520361488683899054146855865580036033601938111873776697856256856632748903213688603380425672616949596819318072473090607063115788132248611105232647507751031017021692013502539067643017841984102725927006283441909810307018801176950394034535415939072927214640106389616862933832336079510011040775619609968548043660070267580310175021843412596224791632246746591544837111645886606944305763481395836843145189717974539109019651690667836715366863627524499496339661624282703948331638970320071671063628176059465068590865482436366775507752067085559587869929450260498887532778651377007673614731241726189955579066062154031730192756561773172739329480726326070019965667761335188639654708411215087169257093869346113752779199944969783933500919627053498918782870258872551571247179872826965293099236976823177677256922334435927707190648096263549200518486860239833861383332314276541364595228380490824313447702660086102587414693732018466824028219783499347386431178801052702802513188187370029588231571963993436761605692612789794752980665165537336526339918323507371053062361683049019823413562140256543455805110266288353022480024534717808908355234876229980570251575134796840999532969831596175558271172699342448164795632658824012727150325396094751354603918690794091415125285648932721700798824150906955707943586579513324704901561596143269969323714332059165588749881181655756231872428309696838381965699341575199487578672922883248805980026385982356913133380916925059626489791189498930913630293897086867192450198294181149654119827711621918266743481082263294808819669945432145245518202872877665611458056190294990894332106981248401035245198076302350881249932119743356176401070616754637428607599727262814551463537893604690617132881291512387555860173238358570435490999319784394046311053444704886607038366577488483216067906417357171280401750427680715652698910541666189710749322394045681573668960373587327402049690066352226004666963399140179551160430177255277067216240783682964606411411703627961943208597529779333612364936254392860063517543390887182269130118724306465676582627344365546495033898193959223292170309679679996406333781954948957320851727241527511005091491696372310225976313746190997954310981068890273962447494291926937538279370460007230399708439230446622439778814465173568203889742737138330056064207279003482402665351073020785366015572118912335075270658331200003422843612985927003772858907323888790280256329294143576665675129479267507921211112850436322031436589266298786662597643162123651137826430836081816563858080430606450858011221337398633247885170777861444753819229919651332199328542533366319960597714723585697197527096345475217272417082168891845369498386544505581091039542609267226031195315902297671811424470749801786790213773516908044220135469388033698775973520619687170429420270806829523692930749599715813731271798639326650992933446848134404361669885824103138473949032445599085196008926965328958804026735591560922368587533067042698973873248930356691549067830273115656262730988374466990815402076184276401143817496050170494988457620262958773310915965879780489482293157767901566870187107571812187385841886890824651374171237579521066249923889010304463167953699608132822158804374575119786711690967626096632161283258725339553923056515481561800085570972639819092557225571755647150047937895806758159658434192976218056649602811994577783606223675656706036861661017937817089718655700674155415507577116625096558667956870963060640848386450696039105900646187252803068908868347524999435518272190141595075206374639542176647069215371735329922001871838205831762529839645697765068482142863400977056635803303615780751716378019610434469596141697909858334270022200517665853733086306421158325984823672656714085131697883270149482848285340895758280784930737685868750238386745161907275767062321398544660032015265757218946686858090928238512033854804361159974103113515339617540749407315340877670444277258814175037504276030955722981822943301086791387197208855819263340123921327954952789209258209252933014324584084353887835641704734687807143346510607060253466370859580520686362990634991364469034948143980054991526277786285397146248907923230577028129994560735786348182007879056970450131766003272235245167699793648087348172101634326542430426302886214383283074002663081574489710878356391537712251951048399388942094022415708873406590393804590543783765854379713154147702553867083340669597345635063902951865605239495502160960188442303694205322445918637558956627578645257402181491673895287603696081026289492106677223406690581267393479760228417513595869977477685767431343990368251365326251710204363149683967728011564453071117310539133652996072300655706319617685101545025366141154413023611645216718949924188547891630547951588889025334140447819524667042965705668472831418972719678607484327113126180569065769562142284644347628039264311784618053241880271601129200295802189592352980159487161249759365353480991159322556002264392223359369470758121959277477101380360511973665272689535301934637777478440516724455394010005105180789793159129021410707725568039564133274460428715845081443437718786952616081092527138538598197301178863035098590711149267283520925594913923887929005054348171437473814093132169254433316256829736207265836245578583506576233865069259741343181009745502089052271738885668760258128534974709700893332900432447361574785497229262054232491425397526922034127784623922428301330213429802932189515140926954524804196715681914989091059195914716879278359512161922339012435370113065281946322170046989317103932475017607672580682878744502242784963568886626722731869808957997433531166195575755578517643648007870179024643141074930145726034181530336935383264364458973120283074687560053081927910958052372397314084816942487229461374222073888385245005796907450881060623504069952811974178327696230749529204492186515594513669787733672041142510890965059761470473232202244091407507702161347086820809322218838844474647208678672496243243108974405039795242722751504597810909749340185428829549362537866330092803502361102326642479184646152720165097049905565032371501690094276455299686321415430423448940094432535490402171579933152752613029916268410990471523170860873965671244229355515002087037793970008942593716110166270548835339757205189421146337945386491729005619239627626865432754342073938712949750149975881455325589402408931942480600087712120045379070237868618136598413601335873135595870682002750424259728811295341815187942920939654255711188584952648047590974067567833105154162686324785722347445305386257055039965679539212942556092106929859914837485448598995312107088644250751992474527120146227703202677655752740329456405034874419122439240910628427422763262364609127606886586365449612907266449281484055295406090229114436931696531568662713356519428543723036157391823049875875975257874329023016474436674924176023221957761809897420274766871026670612704128688968711613789618695537979344128172476767007119606577929464971638544166209728803303229945984302261221625405418463911671875787529426238127747412680563508664971929044516573364910834047668903737480829368901337094250427961120691724474170491881252828689260547524029533569926576428824302839303895002229964320670582050171035895050016033553540905973795170727098954071346438016861813220684977430498412145039897374247767249043914481490859859460777513584558246915904828482660798779749731792050842580622754481744497437262670379922365330265004413497443661687999358209300601582523330336296249970418893642981536209773363293650882237375575595823433194105104429060041300686352301239092133996426428909966674707373177435337149050917033682307446378903619996527037172464873549234446123806112811663010789641018132816226249379590328190418978470009230717186721222621128855847051064065101736415730685979717824871873698814763189569309326153705365946873688630986199737980470886625912252116939707873024931498787760856831433244551587174811010444474250683821478599454499685947608671478775815228137656027553369449699787343405804303991265895629689039358080360277721064529227287609504448444232342339310454468804695973356529703566490834670199463761561289383663458240695123863626636439967006389205733699822027653434178004883860481244666151530868066681000926565383865680940263193372981301997390227293238097310707758288962677437500482362333559493287859717223171558331266688188521262951155030582473197258320012915465209377374535521656987445479234099084408551940796576905052206139545788857607287112884727520493331572180916898494518892606000274909852298678036293400825050687126323493812067338566755659076953356962774438544592885660977306470970492759351503253248443076814125879597777438521452980431797298432311034654307836970154251658746291412424575298227333586536599928758668215979453180136211916053006713237075587016341986390888081193884528210144211229962071887364545238162911480687966493325007775996426073162069711905861375516322538666257455001451399911930132445547970890677701306625333247784735415123133828547222382120122945267176483095780818127000011744644689890293452704110944339375877345703568190443364923756574579239468494066972192580120262578809099228664309567997116264311903046986291029742123578573173989083465675662849550235935799104102881922872685147790940212357269297788292722682037177375983228268330103506697254303599114204144022232857132550446061903762025926627669462484181244842966250850200492610905378257387572924952525217663804695940616625744894904960076754580666762781916107339769965012189587343474543265913615451936749124412751953409777779267471658128136571064372433616743485584501500224738465106943126456385138174215245255242871680436395770788903099838191607544809257276931437137347803688104493305253916575178487211401533001533511607379915281550261191439855916361803234778210343338346870205232318104151374551994471696181245186063527825549598992747781998569546405626881876820622840708555026088767532751283721881381131918295478314508191469572053041511523991407399908025288321927626846060162572243719721558584797536086550946715731577470736651492934615469943370883920137736179770362325195666587087424266498298942425606453897451864797554645757364928976331156104690854982906474442383714033139232224849394648811912111082014743688344248278025799136445008778258932189710055248830080866722800998233288596032593756524241644902317229735110449336025281007470420444294218568529241395232172769016894321012835706554084952852514750440551188183491644962140004759526957960732864850033389383887767613550938644076182079468254836010628496056200047918503411752370468837161947808966717099679580597107960876178500470300305075248900002917002919576380913698015261703570838574678861256682320599211049689732803300330876261220848949228570577706280263090097906473462735410390536931520246432941356392761094393924245529179301738910109667407903684116449149980850764902919025821605986109450476247776852736362841548607225250118993903456645096034049182705122793945305554420811134002926191513971175865629524467077598656447004089060470166297215029407420471350996397305069516732826575387244864229456212294097813310101634822777731229806237266661316084840220223869602381899709635003614600930988574244946668819955868700008284042071443012654705953975608379294685682081473958004173561607732986019900150959002952882063759577311623594906353842571991223666059754687761244200468117363918916285537436711039623844956992399793144245435350295500780828440250885784253524504180442071680092726064633870063476801893607902918105945315689062504008252963291134852857388061890986220365575294133972748802364398678159273273634068393852601329880511076201150709022271911161149061391209209782876051142628245131629222157366148718306963690692487770964021001720767479663923823563686066309195299061585008946742675631730890533152573798020080116540415913390567714009808299171881006918117244427982487942612617017686232652972553033193979093811503466512791447774592880017804663418131185200765082467760391564947295600691811475107802073101329440224613012485564792079542541122879922547561816293116906808543660435886440126379667880615327813829851950824151212906728311166567532313554240151472221898794775023972715956640407812886102781497221458641479394684345735217931135925593628798964289075911615555213742931581328792602743723526405959817317021765558082308799560469524708566941804931901225051722620343149725453585312604427612446506828185768825700637472754414973542629888949716238914975913622413756386884864681323333506869738902421103913483249321749351542684301733369139102051098272281876704222099001881956638073226460063887146374503728914397641157788632657920381071717277414684768332009846099947683739457606894312135574498999322048296368606959831058785711895399896892341096623550850552581853222741700573489644939466357236215597305393396997031194973821441614752615217085926232270623747124371692778413795324801187898298445003517691186283150232773481083454109489448993799266333157275933409347106616740888218745838250582715272427148024926038633000981310608178347766230094689012526712960031716452001508792067147005495369709808463284108559518286390227172984297677847703405696883688923212897701351509478722175862500384398536405257643282003385292130702070619737857529208432921684244458517003021775764629042680671262015236680050316699713531946593381756345288219833887552502153920450729743543411531029328744669718368423425779432522939347151201862607229481975784121737521826639239598154840157525817404039073731736178357700423101009253293821122323423284425439795910763869239799837163577422296723309233603575318356455594925179620524401003335737265652706706631684959949407263395274524205176524732648227323568432303614594815540097272130262373469134382886846392697631109007558245867352920660894349805528563497384043265076838704430996638204451603802408470520849502569717360965581343618447037988741182835837554824799391647300563396979473986428472022845808174933184569633132379217799634147588526076783369701767169619278409275714181426011823553884243616777721088212266567588856343110461602750284733451790864075626499472095037504577864975117116725232007067864351126791915398669220836676912650867641364576508770431976482157339127113222866711733498029866149822081003513735421318291606722478242150399696704824539399867567662094441585186194118232687174583379099952045403425268012978728694553297518482434370952032352858243219293896982186972189515448036017537250715833038375451741497669528816110912746087564214735139475660469055558568523805331934584356283845457482894997937981392420609243849413497636644258590901367713727905292729633994551675180165322654171377066538435781077439229470538053015710225689573917382393397522670966604580033335149779120936502610767412907881979459786330442311133596499800108327019028972263208519310660496286548349980003099954964801563909183529587793153151584791367224415738728296094321934607292799458374787192045109350827904829699374521201635495087050439489724794105230907587176113614954446328534059119772179351903470185907303016877978747405902729728766388586160646530993157390287325241518341962069508442794895301678806096141637311932865013212202370328206309204217823481089817009855530780261972424789244323703990868760462401549838639335555732062366649873024503729322364505065366420371476349269500147085171063619100263026296996023758974569433254909699255407171620437282145345338294404651244332467693677021896515750418525609980571687540557046234908892345973980851387988387622472174929428638804286332323350031278788877372188328871924235524970218394426230091215796157299431341600335033265373149813652686282758089278261608905956391460196889531889324785227518809641083424139335795900515818538071474872939211766386031865176666532405563910374922470664942888456808098298655217940249863138955018267350685468976309242951865048420312984621911121572908102130497597570834959396385977379201305248972868790830426177020377597999306466510582769081229008527206986063214989926168655892439078311189542982995113168368950394062103969779887739206733841838917033142719413821533476332399655288139339728213739451201145654258989002780284245748466314998573476251462096900546256403701786827681666465885747362959165833634192335546348345188501191282807812084587067061842457425005397465964927143833716177006341708039546260864891287923269620848568196325657678274558060404743297887221973480959529226957860448322935467920753917736087618630651798994443038009150579353416543095131637061266210953600880965696700264450169522960250946324164877097495566981579230969713295913198368932390605369288541760511664238089976708537973822924965524177162861717076663702271894077678099502972674617319193829550399829696517796740666717228168279756614378884344664717431838077087369716615503555665792166152741728142471023146095748591372712759440106998319602703371397375234990406649893776796917732226189895927164273644653930939454940631562877067600630465752217468887971517749619009694060105992818703061928022241066069620936032727903558519797124901844697633632577421280593221137352167713498324153756024845966350889898062589134781777847627536616767690426634368303621674177902305354198758898430311985822537953694826043221652308583708273671671219115833279197812489075027953464288647018478352128017925068243481464566642906266982259034388272886497404163086582941611343694717102656394974974693906918615191302599761964045009585656469666551135560668676959435150455095104789513568120499065380144790526630683990222548721209902861128365222388808336486735060564615692511040604731037263418156466561569321861041626940219203629080184874905103747111284801827437685394431375073372296995935751016131884556384109314390815871652322353037663076299015765902834667073516442993526010080535731230488531325728590567118224451726457466892217668587010667039500723282048614921495578127174811724464053429015510792470900807630154544547200903929498282369985731468563212869591307660872485758453873207489804027870694863392595441781978943213650338301892327308731702783042599921163162999380298670267456276628886728381069995414555536454699046151290964557517541809831046556150708524843247859804901557505281950244597814843081775092994679700001222883482103391732231347389158804464641907249293715667571300350040862988414082112673938040535207378640955914596053283811950681315920710041116338542629954991360256086514078310517239826114741826317528622056385738210883837588468089922059761134356374846837002053794697919571541172425887083328210643798952557075563494038231633291969427061991503581547792483369540643004116885205750677081443490218277675311602980796223475113779689767709852729232437289147405606623963594565106938701867600565905876384336147788232569421697815906511256618314936760977224773339185259354322997911660857698309175618777747067527348057239005660198245953343189248773360856139683501993762201527098675804290670152922951845785107572665613696247315437965101093565280706700779007427460442847228308444619305869278205192086480809939594949545522808007777350384203658674433170380026848039735418275553260662791328529755918862784510113655280308415867302948367203411504613503636493467399246913750793771107405980252701490414280178013724883977002442827224135677431674845135072865470737480372478979901905639928715849967335628523583158785512079968233449560049958122900845612245350899376290970586336036671823853508595691300972037305004070487172552349360416204244048629809434701276673221598169452758397258471111634666651269120049199392453793506229239461238914853821154378747151634765990708658978383223779318611560848365431192446267441635173466746829025780379461847591956139540348199182009683644921301652808544435951133527171492251025347048447389284502191468117143096981319105035697873146836747586094916986882357650569395741486372823642943524716069488764072079593748794227940199663102263343992571863161536466491548012696558491805345943730001042313412220955545054141400055356791895620040873151946511983786781660835638591958949948730804263101458590965278755599524781237805063377639189068414821219703873532552200801378402576736030355959432996301782683989664364825029695773978101292964928437962242487612624608856995317248649239429880396376267551872290908956206459882827338526388049874645504237008146957305045734885925740290026367476006274495073525863146148535376978972858657083712267023135593231426207570942477743011144740216396234024552245188192528510399628056994055122097787630098056431665998799024797029982964071863626472513661906469333281385923884222500303067028112785841502436705472152009751371947070644276304935572805056083739512701509166316878465934878793637154600671405455714193011222589441900731040570704517205394543899608637196251118674672243094140856644418965791914332934485944077907583983855467948518276027468538087907004763784776219133738716445854939887371489352125417507428259651754721359828254864009749016296345331324518539255154589636673244112136020270746919366274797344359383978181572731513305407050343423813903216261970112322681385584762690410482072034365609716369792267034577160592143400414759383376751400863878764164120332142466966147958635430725974465671106798952397468173666251453062531221917391809866268167207436339718679963971494201752410716334244453564673378917596083611845361318839406592712938367453797742906150327325403764486684830927813489832683537135893456115900113691632603489350442688300642189081280810692349197966449809119279784239429836386636703228619763135168506458954139660673663202237483259482637247637178963440553736499260844673585390948746309359054108151731185147318691017906689225770377454723751024918190178799894598881159517103826139743947598606256309956404252994812816864280401052069739567828098573991768167956343602240338403168956584585200620658327627327890510901015180747202043738160021399607910087887109568201395361724320842691693662424823367969533467990534127175744700815171810073185996278864005450871977389957814350341421722807024682857534810561876592080804702831883808011898408476191265108822483243394910025214432286216754770045884516844871028953358179494800716105035317992417477848074727203163279021950532701239193368396645592058647721523793727597425199082301934674908601907922945897388764507315298096181559194396948772459370988831847886903196475055962380931223937448560135757886182257650346433845795240787265186679546558472314910302577966713739512283080478917468934014236422933749926670140760897725377505279855185771511305399253452100380168007142258496469988296021256811242867177136285559918577652164918171852191387034954344433736934259558106415371195041028965223099627660648768721495544775403009830032304264215152938884894240492625787255813650109106120520447589675999045960722934119524562128279002058408586576017886589331442529200412702778057095691249179407194093239372230378448791983921092388105385910873096849279446084465768848891938367441881984016328710326146856313426661240413348757212448674228907382064603511238101260935699038988455467324752575048393868063122511155940744245204974947503246351556593080461629198226898175557207250851398830571342808297623099861798145651199734386045681589147136112445292298587109180724119844412094968610234709133890127730853005810975083623922881052365198041018081008593484367365662229406771202861234235334077635492618550566631910068814621631877721742115588536820566249470131241348307396792994465177358909792956006561720674696228861502389188137169311692164421145828830331563824508985143850338970689171727636910617101502764636670347009821336165247578865721043027021221496101994856224523995968993619431651001923799512887758913612552292189905729769956567061713659993806525444737943730435969125919722010231999169056926401625099397317050719020199138654107019080180803700010139375912011996761360762893494082659350116056034712806020708499800449941380269003136789171840288183830545870344780848725808822042691999792747925616593640029453005168169914295977359673064617225852494176591534980308554940681066029481791544343769788212137276913708154926458771817188747891591924919028282196830614657388215732896806064963679764724927461792078512020401612517998377241466894674836997157103940119337847474154894213295247199677910098795778224308360960453323481562162357100905666335622783793155579869337770053815971734631721834903831746811802484953471432102953889707400619876770655198335140077776801240399469219363694229038222900075039384110208288689987699300572811516725581122034232358036107821184087403002264866571810153832519445512639474736128902200203036476008415002635670468179641550944381823472834759072999145190019158153570412638787529683584067307539958386826932748957261308152089911920435372214803372397463631519631856223075044305849985322103393640478248376983572227351621660549503067705162344629776336157723249906989529282778964096006463467578817070816267364412099060493687934535461431175220469362521718173065111753660461239732197795370914515891614000792010617781020572773685094981488620200921071798844531635567944843110976576644469506046952064035904940797903497268421547592340630999320996477679739345008337727320342394983085689381994905781855059839818163880045268370093922108905001441511514605370315396656094708258544341133492938959276976596848519039883255008186302614925039088173364003916651272391814656097000144389936157254750271723195140234296719252563053204970144569211333374604421108263440405937295452806380254676515158620155958426614043369570845405427479356595953550436203233082692758007773770287462278149850230094163964852002528200590840467104966131644473732974962208862844928357536182797681060568651673885191867251281930728346972751613907266214821123896058590990980256800316665853373850743057629974554666293149881352310556164357084477705288660041381078276129442151485981915960496319454122062666736829053863330066400908007472052377689497628105048343976071882721024759865344787917508968500648164795772750087734233730826975915591494649403891313992828503633402207290972140378581215751920975513044174589713160240147285508880223380044324338940588822814595130546849742791325074533539860530080170724583059557636940136136510837711003293176699415379894698885029359067686420030826697836201588305963396577662280309890638253453203130238287985419027160831672960588975459331659138128550667461988540243607255986862832222558674177192374214826988067259748315093745642821408081084421426665982523731879576387897529330587415910895712682325247332050961787220335870456479910692237742746258772245672401190096896511286743054387584063762547620581331069070659335290230123509613491196125339081773562920281302390394774111799308081704338703763709132032603030151785133618003811864564972393205135569018898012383293907708051128052232225241032094692318115829791536669169742525587878193698915924125829673243963345008302042267350733343707983923770886314861094630549820148578455798861031552059195665837319050802421698749099380821629307591271026288475792780783131310850964330145995880640244572933436131753010089377103307906928542546358617185162787463522459844891202354409030290292632343908412357206700695128762632217539825080923183566352179692018955822921734635728877172346951947863871617929235487975115498017705354606713089505108825262074290572721717707915795516900826028854962936526009260866179280725474181248198326679063135640001211772772259612351022189612148529121151010794451313167322414953792002737924141412232323081410022262768703833213120468927400545055128332611716634278329229681561556729969802325318226172455824901991480163201291133417271276147058388776958606261080095635613972705296251817770440662235040804724589313879352866543423133925945721936190512360167562212364451786157526930907590823671487780210454019732305603758639489530290483463838911902999490302305924572291819077852068599789475052486356052232313148872817533770839459402887385288480442564975335138581286181977336860276698049631823578865098003520693144720942910587381729786218092206792319835563706201482053205824230851351009200220631825604608483063168030934172344781654647558577176948141841561960363571459884285703084501772107504012872033202978725526684924335932679210641452917357484180892469563156605969473334124437275513917900733116276569186275610336199237551550826883182146157068372112740528195627907249621990835818685827203106872983655917216025595419688013113654510174123633717545697305832543539032348017116027682624467044655858859988266035545477125176149152059366538613325067082216436480727509511411637553320827730620318727634320467410309246010075020437923775264592123041360111894664635879855508326545428243041076933423537607719214007200335941422844308819678972179495400249817918970865213696586316576809706796876980185754298403303645726576961675657328570418403951606581508229462585012092535716238621620588218062591434648518435837631378746018947422695284653242629890792977119268553873272279373142696718041380221731500930327414777408366433006388920369613425160084606014698491932042214638261577041585732146780571424071373656899435379584999719283543867590771198416262014869609700099638075881092476573322809422974752740020205510620398968618752322862192342726818464849185931934183812483201731745231422672696485213254500190478386376819490664163473006185784685609761465067496038587085664096320623552175934393315319144532053283905183589961609493945874880925332838763792270172145227061678152658422512273847474474508288681351819232641414251258323808420815218739179707755709776413001590103196243983394644193666340965395242564376547715869828603518857125094073192116142503511452886977610624263299602532813346929415999286196261872802229249964485946699702353786868704743531650695131307700331385209865732694419687862262150613936886336445359267872234923262512840085636738367155657722811622780306949184947333273341605942415685790826665866110557642655952594006329272984286396793519584618266741888233123532380685275319188175350066047357903601903609214544370294818682829692103906218676828178149495623579252421113938788348210627369589231474922962229719580900728661174303858503676856946153201610613671782489864115266845170744063387138488093444038086375767895511744034037608357253019353276030389652276132210469444451547477493565749985976724849302644623595478231755721304616427737182454893401455019418007585636635060326209554592463210875947682054957260481052411539007402443360474313685083623387249747660982460184146777295395044244452281102593648479815542246297517556084435549539404941128539933381708735307692839839083522769090545463839012184585343395474498675783844560460224855244794426468439954776794363049341504398016297344692645190041544136512341150171527759317017426015899438141880215559620197761692856036768197238689954690101390011532172505390747787076812971630659841968159950807762284275529647702187478970468144479615355277004727969607847240390735522091481499216172250745506430788429662394998274237808152757610891555474640676137530613413022768258848074285996654168251931808360541144489862313393392553943282429231824451535601052339328801966162681044029736908674713482857829855777769252369442323390860873124242172445773487503346112699073075750671269518938458349218373416330352942754772059192151893037147335000744063500986978096790089373522731266538722430192716922872330556666343355676570882320024986000702097081865995598609928256251176855973489292930548019805283843697270839222705591338983299352725948255200142768403811175855651317723170055929716411453588077032082478294646185580169039861364373272643980080318822472211026952649804711373078519533108818864358388207149715212898941934983306362928371092825296428156920178066602756197616886280704016525597001766577503846861456724155412756357028492017992911477072347638626969694791499336031208773260757740707223833758176547104420044437431627596561325949666975152447603177554219428283955340698571163402750868831900240305924283594947762666561092225531086507682176006537983156066578987508696091328470756890201998011817271801516965271743577907496928207621640826841281323068600829155331115179535127444193500166559089394916349350083619284035613621153406655285958280733000200850981070798809431841802413811880131583361346369483752949250028892988982524269318451528296730856133031953310767368891423979448979618287972657216432817797926616726131514050842053867404149342864766893684024778565987618220050584358546919394718650391142656980535411055593054504812281544094157395887660207209717904846132145467309674734202120526631476770788212124246794864350834887476422717983861886233110007864659594355134207709083336912413077868583253846213738250785770392481127599389737671582858095219408471487072158987176606417706674436769985330330857484092395587132950085500487013656535494626049488714610210949286736221805265571713559953654899040445192848707902996879112128680179386218497449029283371039764499710373779493571830766977562808251738771478891797633727972239958656328634851660306348209459661634742156601459666005851109740243404847527028038688768791612616472221426958629474190060585984659325406674879971196149660658527007596879977540015407025630483185492915928904129389114918443237560681506221477937177092531297180632586326671933084619836794085593377316169259668908227768922137731749622502891350463961634630975968160375981521749055946086991145940718599896373095804281368745525955516886695678094921413571015761219289412045612359154943550783837192867885400824787868659230485833990133988870681051767424074144481092893120223535692660427242688656334728367700366604349630347985337265708050910096974350636589769587393983134088632892439248016948827015287488826881108566502887219761425776046452194420665669303036616199353215852169680166873755452637032872009279669053005035489275118566596852894208006075504045257104222662492166472600369113387476319319300304107314150163439018658107377397980132147785153999013266293180719598964222842978707193713360392499682900269509804556495252115522785040587294959954174008756370263561127094944859136161406963604000424848996991255978895391617830009994780961774540531592038192899545499126080180290940625324924974486387479850845990748298562668280274831856957463836736295243619248159393146471243126494738791246662077493365992307489463143963524135921190987679413003193763125329032651197975800350545712969054921118201719133212784257415562663094823116441062806122748212116323702502122121158545859178703798662546197488691572585783735639751758267550830464187126949041873829553184896794767192695818926709833212978751230704081482442985673411841747721992385941871079337894791009045613610929440591659630174730499687293657208059235615089691787806959024812328320196278737996647226551688094780059908287624316225628716546478304084554236234865632598912675546523796280324474966192446291589911587677992853373741664253473584327356377970626154453911168814122884649035761382025983153910054462753367461412640062742073579200484526840172956230261218489759006700446495032265211140974272657830743347487978607564082357076819173580819230605437579750636982903505089232876648300206433721668722843346479246424824777667286682629620252960483922381591227492322107329301861827018929611172843161108643808152335667824967543431890183206577570900417586707155579925120607186584297535432973422418476532690445001724323981239961089687391824702215450777884171921978410680917806153027206114763364761011653041574872268586466669870993404300755401809292283219798515507020643904151262093264423706203719979787477503859529048236575626843273342039032645736791077709422249904040556668746343006277565789541693035997874417922308557228872183523981926777137313144089325639887470503487285659805414610741952579584911647379940039779871666221998697894489530044189166320011742766790616178592116628468876312931312717398738553086667136236587861426424753184858123930145632330163987063802761535074994527539084574188445813592437804038379647006710311910160051039934194088843468873051852294137972221773695372937809309877221161407275739350325684927923906767906485664281447917776153422029639250509571554766538683875282127918488280095145777792396613649657699012851664891245482206446205057684964874704216494136588667635738782690760304109877173985491750091351146829678795173159110298706681317191950741469238157227288419780659116852684850415021298086426368186892267975663621791751779882226713707059168327096475857703366055905614875608379385102272744840822723058982739100088783953100442180667502066424007401988926437050664993305286851701880216469632671998866478886717826913747080156179857589787530039910740861836764746187713266841040515474591056917123422545750700292494242479616121830823191209515044831037598657797134062056490957505681019932965087203481607479039373666210486651944668296092118298671311219214379705236821582228840984856274560691256995123335902338069779103987293806372620693168689538368596369466145785717913886290445751030461846536655816164878913468979001086324373926505427356471252809240063842474703864652895788868006593937539784443149429388263749133797934486010169336967910844018438858491805708043323202498995451170928657248240045689277488599053640320534742868708089537839694726558670691849992736189174669624178604253337535739671563523574050784146214574502571995893553738681914228453345661881154126172707930413637835127970593889464033337550252526857248357336270495488599323199204571287579650530187253957081579871230510147534245673936457516039172220605824724547062205436057094415025339174168870584942754790812972270493864181504118701331270423360679597697900774605987752370255455207094632158608024271083797215576115770442208024548761833173796488066974503143919001468146892933829665791368539574954696569012252678348949779861826039415547195664692207158521759683397026607702569035881423343875534867985741770638661614623890065092724589525993691438607175087354226847400570218419644792380477241846281722070020683779915688812937953900077416189571276244492106019305065899694967040184438857520439551772566790731277721898861379825001621731063775066371608032220377534158696157682924297161750713810739315368627257599521828397672183412400763207212695377226626801769827904702201978711341057955405130243077632678874407491530774261779030820383056263925333046253947308691391984106176450822597798697363736183190662789723281553279683556286200224985647433933780316884336233943727564372608194923584957542805393044173545850321338553609077214530064078483983226899520331465255989109581698717491085088155433713839755091486555030623917255787319196869463911241597354699374803413612774904374268584452454395459237806926501671412834417144991623289850803286361490424243195684045063173112534532904074440793160270291558666097009759870724827462683156231239480909845824869463413722435662210592732894353667229138028889045142856873966784008636693316223081017511946652338905118338359253934220774133188945837641835467564160793029235858765283675750777413052709042961185810564634113357012033908590816476884105660891255318640275459325160814044006128878064719039077516413504706330123649250426407844163145963223592043901104115629594385881435596837902752931247741652931036547576540614441015116817740764163607584564605484091507770720060285715282516645872101331725040864844638019391442074723020474077127958530758880388324054136447044433912965796132193526894758743173859975749901009000905854514006960746154337756349702923414628666072447480775466063860766301159685893003826782094776141577028548312816567959967919409665385813886296778196011276569834037958628980054760877577860373041505432294085965252354104785435796161669644927937372848651201779784411488193354700840419928531643132292601235121715341008196856375930177988834406286194757392912017190129346969901861830024006343195253917902509604270838554963693085655303032536512278976199100714267898672366027548687743635874055874382879606895218103060532630096931331965057674231465207584141319399974598745270152179503488778610684599580946123493016115996859791130544526334115923109769562034356114131130893625873435001526447622913140035605915633364534823057385471700214825257783681391598060692064008897464932258843939395149423417166503765414023904903560347849478842954590838522690979571947711947419445279259667752925285579427473061434366242572476952589604677133378130350396869759855745810562053910609448367741705104510070057286867137287482990123906666979337518990835752169110306094186708096403843764577045188437170046197403434000644791153853214827561298434042798295077041839828805094886790501200659451885475145234102188060673910509489694768382341124534769340009154403149124325351870360364785821435484888316207412240048976042318290825187798079319738104208565632380268560720337691182819831187007158554804591394245203475045335225102795249511323992145373900575313548607348654977224230244688864805175451318936853590245774444389942211245781638527286509438459285750461738813199304516912131056572984550600991734376191852029397142726374051713496484862367154035990787806423058352732941872265602609079264472086471267785178586753978409175102445446735642651673357242097173415511531634000618198609762773470102572803377913581807242290608071162174146776189682494838023560936343147317994351279595209022632333995545148709327057448958499220459894533920312767070182886507378522935194193839004292736900813275079340784026408492722857625635819369434443342970385117314724037770144907604775778829594475626575431620549600779861840018997830657792622315523907342698082022085669417724720661924367597484228486548111517582097883410060009625707225373530134545645441226087724869752516240363622803400195867634810389823225617047280618657076377881376448356994188371301519857754258715067020264826643573014457638522184661293196180823645768174623321725304437362151140038342411475217833302923262633981832203168809216221583232513259153617281361971192449754290758744998266153685022168735762219084183237657891784613248791902684170688944087031885956822659170931901007612888115135631145804216721698313626932576821471236049239074480731680934299398838282333684668061360886537287622890093812279265190855743308962015819438061635617486468177630052443147416237886405087437819241842218670416233465146513846812291971982286255283353160543213274099730771181059434743504374142569787249830659880577363719976008109982832861964883990919607308502281217997283494091496070659988977456485661100927581259713425970998530378610437486867855089150264817159596289933920735327029017785529357388019981426413265548315557117990289907403840243707477922565244874291586763914431342038989339006622894675088047733985272436618952764051774387430102113189798362780684816254564175940085015452996413741443690700373363561946247178655447358023444515463416460875690706307668246878380398987391339321542278782587142090042894398189206242980913209330498699254915296798155840056185870356343963464060510074756680790547504237069026255095617393893093003952751505962753618431340436390746758370602913992938518447707663387106778462196034897746100745007896124015776789251684400999261165200966042902558588754522946732198491860376610223557944265625639916264778037220177171707891131513119686923759989343876181040937221477888532219434058897579071672040807948590791193289987265745828704084717013245315471097039530209813842977653152876364611475443675105664761515625405450281627691175806203357098069838895190640878886885168500404256689257668552394570109896917947042037383291591713436481029150069074324428000838550043523899154276808690006248299789619320296685155637689053301012233077658870092221544365497173323485154350558616407264857137398168428886727501752255386501292771363570723156679459385235338652118024179251497207506097484893760193319197255947604187481918572243670169608448337990161614509548693495962634711630603751040173781622020911131978082178585236414717955525858817869444297272057398274605397898509249149077975098444216258347334917449712103635094794780609421399251349719211195225245548165800719912360845981078312312052590089741499658539552957061098550465790078449786584175533181555808514331548186087854895476406712686370834165587951994875744565041155080486352803127869838231887580236959534768072946860449155901664225643665655469422207229158100355111105399157797021784026592647373863466287096831033630767613466423109541798497158438112963080337027143127830992654100426559771777627790417579309562009410429283304242642474426108363845255118593481088409725219422474661087209817885033652240571220813224763003374046564327031549666543587890731529513049276799593321254242642537016751809617773204154342172805290486214256315494440179079676096022389984519014315168874492477997354648830930846350560579146753404164658223473337453313185379870984727562470159473009145109328640444380019942304962732521816370138414731045357815139308654989284196376847083575343601232400469247944657315699051811525071958024743641232056103974778108443783443726375194538852700904094122577397892362965769894200264282651109158290082786651776752687394186285969575483787952519748291320860561151208276748921818304149357119475645200171740187974577182581219597615379660338114887067414399807733974946074708196935365062700988221520042217035793260802790354157981647628525724560509333813932412264323702696558068992223885488227839763423558571356405408791877607093992925990068112937888657133294233602574334990286006586188662103578708653801994047159386911181667053699171556345238492118283265373881430982917287480532265757893705827497288959190319227302657324208440966210141908258045497752966073814540709273727202114504812995409398267380474260364721309200298719189834805321312063962610294138666729841140814793285678808540914294953859853488774185914155198956247158070759836552909230535018785572760838571717466193926799456681221443087296345829260469721417202228538487523427527878663306126963370688893890984430493225904242094899259024941650659635331080599537366129146411460176762746274709368110750347068861270820447527353514566397485615898882228487406250704968571039658728558481451021188252916295744108067873118152093052919456263071737234007414532227933020152030884238036718118311037474443352781226756753668191863372906761814777586461371221139869211623253722165347219499993282718899210175773959532378684649701796357031926390831559553992870422277419309562624809802746891495692878458563444286715162270874862669217049798441027907314858734434432819652318296918650483817416191382095698796683530895107229107311385682833341899128767255490876338817201593077889316671391087578802904667778122494267421866433627968722834063811252594771307563723516318291064137949331406406456795704026658616482659826192554956698623160593502335279990378250202625271320877282241255897789541902069528017851428322406412889061821949994380373698429767704492540881278583702033282022719756544680758144835497332709778990847962695674475859041240939446014457099212295858192805037680766153294148729906344979477947245885389867154963986188337177533486903686172951620228637833502992087479067142934631694103060885651960853836138744891465337054891577447975799551926349512936897779067118454373217210175265758169210346486029506497969965860379395616971557848931656097092221310493593392242360553699380908575050892384446694281787367510133247993523327198102687477724886796394963676016501965548953420747937081508048581010259467314082244303221819221178019358147716137663867016687154133893914959278716768316680956566667657423382443515467737405010762150811649019243429898085614908389096883996424067117587524306072358856913979683143053158773079594914641995333731285336626236458548742085242193008720159612998817171215822085229426112558192668838505649833268975434017867359834106919647255400851391260767930288860182072276192533372634356829818615044070071274509074379590346822931387505497121720908808971751838818784090992633652924937453292185248819959424932672804559931315847987394500431342416744844997796473557107274239026500001497460950144093325865538826337592120795710128056365359894355843877503820882695379641685443221214414597844728455025009763506389625155938933568123652347176038643727334362474477857633275333422923215070337784580979303891695046966027388812500486138935469272429503595803925759809595604024028781071679821600809693316593207654799538863063444935768886322315556206541192269361366252267617938007709130591203994955107201529577830205145865908581106581440784732966804695063780183664132799277578621529094000645900015619928876050707076241822153170535757097037421561443671895630089477733986919592960323273097939441891773166973088594821957868976550040817361306966030545708559354477153563414682246181086007455137891594161035008080687335955282554132726012550972463551274045211149073499568380808824053524375741986498584918313848037929297956379821665935173649210852230007201895150233749087674281997590102112173087704204037506499536012494902835368273706932661924030710077240266865573885319612025332720450416170730658034487174317309175713698060705020270988729871266751114974277361086301116586931783467788983432704332105603996248092864116575879433058244668046552389178779321396742756589018371765541116008895882081663484053772887882747024746984079167804173839401669848866179305649229609269941062901642427705555754065254774422759317826894828703021983974303253873161682860821359094430842840615809731197166271924185579924627978824739175759562161711758074164178171463837640634450924281922717213081400420692884914205902760165900693715024863029043332279289730157611088207039881010707316265013741477421396054262563064244364220468066273666378120423267937966104050562860677800400202192543658253176434936454572480897092925508333347706180487518652381055166466737516185473741919149352963605210993515854217867186343220832125076756187439745464879491507854769282803201445220883374453061925749659046325936034371747685241596322036410246662021791478087942078324248483461375051505467113986195605224051247174071571200671598153344991332571704775223444845058928559265380823704870281780370577366917661540117527176503540558063947036301009713429244097871273451536725141488337831650090175232685536622281774596444631951771701761572987182382159714820215158215009094675539464338923680652034680021433917020440708062261642697429606090726958666558408370603180380155537594067604089079799448973074675787559428467630885399659565130565961707706969409756280987757475223463357862588808159073864255744209633743066490866559564171883216800081668919476457702944900909617108188512770374414925626621772183289785702527476465895694722022064911925827495637691056126086242969369958688228115610630427040228631000334197263760993390085724778136504992765210398071159352402726122325547706579410655006248148492434856755043805773122187915405512544423541422215134344238391037072727773300091466358387060226751182903135357517439168594707268163981260343337601330495952020309192161612998964721532789806308612154942850694765835485775886562194034654971260857723817320812998608729429738677144903233328832082579949459862180573348691900221013103901947400409520071194635042996254388192611179535552749798746728144920940212079136469349059696844541946187843180117565003469200865491691987213109244532824577490408692101504320242609257783000136976766730392072490842420636163156131495443060155012901817686346436661029029504009361378253187843936265529969806465071289056542273438674290145072380201712732343074375743975917511556108833787673737039987895574125750778146103864467035649266767956355650644176616246925903900792674040380101866842667517757349474946680354155703042743089898473896350418490794972606713102369571741781245272974854737819149295904646173628129191096460199649829783948243959184495343680442456798749014565054331915113740087138477589649391165078609808993525136776135043439460558162885365321599175874610233253542242981086810207777223934051606315431141134987055559258466196484852387640892548858364977575830444733293213073423425622985133072391854039716645397848038606400283088810746799155819938421885713641745979124823600344744255009290352204381377339922291705196197410811333524905148993054050982469942022364827183337778851865657232639260497333700818814231119333129505730164914642150264358112815869238961395893347091892724405634264839121203269835059341732428423288074830689598957711815080435771182218010114959959615437529811097564297705325275970454798868377018668953566766679626224430733172886754513065964920695263242989799213957718553835046455195943317212464487391488274639577818879630970197504173784589538667196726640566132257145402191634186931060747836048546938226172723079115915871527186068369066824924083298313772401031222835284697466003479031637969448021722908975054934603394802063565123831547778360501546373022485629656117283250442377053658344441122681393851943305537367664212027117791865371741521014324206729768095326278125763957049897343237043571000210288364441213058787422039529049077471880350535577247936773923154332851956264490312740639003151429929970506260789709881548518437654269460875932583977701848079296104453121747011799201068135328026629151310345286026667990109586834414633512958501552703275540811950723673366274271781880166743121023743475731562228621796104607127664175079498153423870085205830552776499411845303138005640861267709704122339129276644915065451317313451346392771782326949160804182442309761680751761449490018634961280199764703841087407607997158436451832294184871551055073251456652581493209639488871985289316110075664315176456227919111651314704155729070625435450889111790818317487362868182953583884267469164299634683370660095171354363991084665551274623056631087505830331686392838912026177114717698991383530745506975747650592063635887400686713076178040328983455333372668687464570753881864158084655287093792484056817916016145053814241510829027726074433386673620168443318610855121672392865922551338307431509614721422245769654241562613829177754867989414688061761565420007177391481539753052085612004290323687175278639231083112365501207363141633655874160626119878963608243608153477671742192214243034942056895983796293994516151928035237391801330944495004568552621342589649051451653519974405072583910191433401975977109252646262063185311200154970120813752219776120463636126481427299331530311673511096026448482075833272128572876085780382987575194969415530131171506160079775675974040812755640488565311923692802867727514167652320510765748159357746251906648869833669036572445347128924354776171484614554403100882782631178923758406879025531833085339456280335256826832054085884420036511295432503232975296696285468552520940458792276907473125926872876746125152386878436964292675032458799766363554108025258332607001257921403461599606722598350947352572305519306143348407149412511931883814408173140909309091190739941705239576312418308129783413839681879194896378646146316018808209960850920803554942516534054242009347853145451481812685358683912411006634420154601061648254802703177826125012782426184802841187054943430480094708055676121941502529700756444527906405337815046720766441847070764623517502187073909693059330365790248102088697685897592159212171140178033021096708730861106964361863801151063655578839596087733032086923603284559053246279164311833837999045284528393855158429478141888664897439215325112695884587313723505090250834877200838186750304902975433034599825402106133431207806988511019724950580481213056778299491945190653927072456137082756765574540961922597510331431880228027480730607661573131441904376054138492342105765116564222730737171122544144902743590680357997456781255927592792796150316537234609191794457439797838926827942559804088427216869995998686303838429423346612791601225238225414484733861917484355048477321363094880829739307323942191131284807082238648194112944213018295569415673295244268471989823499366523142735687015488293678757069590353390519350659061854985562532230373972858236245703725031564372604651882832916072961964230805613050678861276995646298919839631380902882189287100447807445644821855617687089172149560501477414095113279191420314261765124417176649262484737318967048849595744294106030778385578742350199121917638800441185459770708250596060421044218235386590014960989877108155603947354272948658447439906194128887141037105003096111839809473901779661167577845024239766510481975648441932013793051104791813638004801162879686147515428625602869884249006308099587304725601353215283777745708258072986713324854946424431736130466767266793743963511082959090767799561343262936115738052942348201495412198860927375814945855616861655525256526577974114762109349742745820723810847597457723441367519554516305099821927099909229501099082772241488236153822907370613289078159279440198617076377681028492832835415451158788931209316131291277640110521307892000467027554454845690063334426340550909019421536969706378907916170256749508809752916337415293231979899757455240491665302811112917015685780573621254970104809867710819230001693429873735315977276241089004398393706544452289799669312868466598029019160975423473338438571691793918496973523706193296920677284248063608213262667510645361197313049804608178567392686830579588848651799333142995277352526829763320086404639556466805628857978063670177763231086033859849401565633126085796501605102254342902912650332721845073082679897621344146783721350833132940188842840734607263451408187893991367245276074043156291517217516798019385267604667342804367414212694363195451116994479800526239090992045414462091266133244645465253743722486026799155943776707421579880093567571339798230165642023830994621388086268217619205472362097033227345854020816711986243485873881031017331844977258347267887981461695954886602136354280105324178314676668155312515808105635081841639184927305834359165560164483426705607419439514243670044339516890502067463416317283222752634097986067613173581577063777606784206327599665652164588322606239899875588985345069395161805780832494754543357091424290287279881797514090305373263618295436824028432036958062017384288904896259597303249726048311445360805717664422473257387519772189381021073446802688148807207653696093808331310706229859954470368852036537223658343997605555263996112869359626096803546281207889217179035647204492063899521584794317046414572726590711509868430087106275464595545520865332602489643342435925682390094070433898472396321670814024551045632723561066804944938854706244239412755138426409248940408696990464379116580260133526168251009041320671681439820148310395017071300200831072569433062204089982898366764575989169694400063487745512123725628196170031407495089131814453867040411866961336415222933687694880450241548814812005469893051924356194291405302825937426776434427144575366079933675697803366679796445171824820556063655834082897190894004049669943031744783830384705520656159743986646412768122614934524939927988014196652290418559468021871413090214005117654495564918988411253294810495703630145574724454374593716719496037720516707335578095925275879907888609338919131815830464557040576845448733648245927588867755010728481166105843280919593722153083696245898298210391870552728795651494172820963331506115445981794027513310425133227444663180710991237747279573076192968419928844638458096997510748906176976829669333082443437289679824947868111880649679750095660521243590570942130174495851980877154005893847308692745703203718022386935259285589045629446741459844227655745775281975093310938890619560772582383414305181955821533610059672413110396526109420749692823878648714501804377536232004831974736166471138103477632936037697739061322200474008177195790537467632558813589406197284042679461955797928771203401672645202879504495527304138251120516111305213063382120082090426989713224342241539975965507880421722847762953640854714229010024087147726773397957604960406315848985166171085056263821128902604367625197067531943128699377396371078200877297067203071744094382697248972402492116101799592421294592210065075390586724727280950445567479374623882721100906780036948728799428818725245913964147605899175394075405236011019269044169856271405833327711902468848089210442323215743437964675235804485339011091520264007478603088162866260423493953647640045525484580626151395754355746156989134701784629302740145846924707570662384217763848613484401817197759055457970050779234313393997083627767745572491280813267137211398349546235727354838284565357248163749146735660052894862496723021676697913642434397331710737066507282397015086324157255052317680878103886505073968057494224701305458725707084359313024392560598443333931041394532418795393591532574977315542755302765028021917990973324470734627355572921159550922759355027712516630015570492781916695155236779699860160792041116598615672022925359136403803530225403491820542484442760880486535027977255571623042985392203618463809758885264014401789250890800197284278476011842322004995178240770411874929280077149191133938409576656028671033724141464050199699084033717904863791679919803291276873719009364897784985580321400646547143021837650713287732769295254109668807021029854551003527248282501299135098485998366459852925861713626806841199617743425939142699641531704779882948140707676967892762156651444343553540819697125636036744023656239409944400771898803849956228446742129502994567196500276378933528584604018641334227829875456660120164938102460878826324791479286289432467243522336683695921120949317659228217974645814108457412235137646919891211321011931337400391507003748891592861816900666074409831042967405270871201047910001030745771190482422402581182571721763662865992902933849747403286281361954187857374613110587206184713971001163732317466948149498149504258745526221635349138703757049209622097956650181342166634397033256075487570952845120959500431412873723775663780529308084185525759664716303016408447778704607919014906725104068699091442688731828917464974989084385228531266955095808610735637259858193085680191871129604502169010449803448623159346079942656102809616218069035097067275375371416809446712308841731897681660224863767200330546122241526164496593827583530984911035423323445426259352033850258875281303833904195088188415491704844487221852061899735957533663214126287042022652648231603465473575491708348622401639370335378087863032823264709389931378222027855130886566371877138775499072346622517343504790879004720010042147765605537496867917348593048664350010570707981017483759987776933298970705878196895297886258323255514843644772460998196250635099481500927205227178451055782594055275699471621321250381890568970989959173697201349880037993085328171293733311680105824596180417402319312481471025201496502948413178853283493734893536359274279009815356012700917639951151999291222147788956160095594532615816724238040444777439412898095750614209196814771155564111338269260998055817801445785115939791261631713129232208797450862663867340261346017838830554599536400421599231641978716084583826715333414953622847772562105878535512249793628820758339104918672182828580300160178493471935637582029156832707058360824605726936425372055653412320426978675550763255343880502441228152191913753378364443734752479622248745971901950763253053234931270843688801560280814094878925760780711872784617538070205244447790072529885273580928739384630672744906681374726653180483194718339157526528815545702078434803001205330336754763150721326545772487068695077686833534228427634241033365315041189140697592957886460604619855575741269246982569834653880902922963480449930165632499996501137531659942288004218049175238285223617895767016065865647320482964526670996299401592518170826066861429750924633709779896365949468312400489071310228628942275331306204488548185671863701325166967143879160427837114731074069572555590212120991690213483288123303334675988858747201110071403967149866918103367080843851773480242921936586456186295101981280803316741036821437629765581816694219579571899304291630435661672820464707325609855751112064154313754829639869472316206286507390091211478827968510467544985219570626593836225923802925648310085783870194504301228863678156403867113427139750316112540421357389901851792122685061098289691475237752452293075717996790551213747445677785222251070247205397259575416359551399868354291075525837978742262689092782115791705006518748264184375913029540181055017793893045068089088233443824304716931584862147877649900746813443379316385520822795869181768823290094253739486312027512014250240751468612605252355763129893077752931132978749417150753440513942115053498946282674678648536765590442239022598015254603721219729107290564475686910262637125999877111642572762444448915582745720147821406969642115009428904954165841870096412273363400293720505032344953376890091567096234424037200238951452049223445420709887174512767175080384928773719666065491447773758266007592145686014892080216420719713446984087954349450604980894435250693067166179338493266756208330920350013791267211919803949185973909457243712900520097517153642071649733387904367525514695908786460245511256698039612009155324753093614374957096794998816009312029730723785701491918941814965616497680639529495362926699452945130174980729770388967554250932056735929579622467549895601477570002884438151800879697745018782360880093060975948713737526211589937621548930233752111831570170707833467393767015073613520097650383368556707889031533807696187552353129774715422692553373510957922110222295686571387508031824985620138474950514669029635340999907877768165509746357318553308843114687514044592047161760141121699233207163780558257207825100114812859813735921478380781421183167064376197484377008704828718970660199892640951314186126004834388337477839995300974811704063631009266723739044398180930561830954325300951054321438156018015197464620727487940818227181413251591044170167782411523025224744990804961821734145671213483007528723363510886828899353555708217765462180540661966542336733571700945978055433203152579287220087433911788769404652892141119046459511064796296472393398718952320238918858245065739289596398303734924805480809312386338279264812611024306220398927253560340979738924231826316020175680554408824114183332288246630673453846378202241472885158486433517809737030576662294477083809022773292006829633821416320559837749802616433096331805809007122643935488819335656215126093681701940109645490247283059058632636891370698621571441558301251686327497186923226862599873098944119372431189162990499336911962835210930426244745663050785721953978344507270182277659631940723939650187803837437997470190768278313143913794513722211104569741369480287902092293570985509509528673520051836083055030343529799046627267678683256340029846661326248839350079383990736906958378324430323216862828610406710857817546026389514574119805611617389883355171036599874633229270764877894385000677277480619128871350159666272352547068965053624174888395304089036198227333430584415360684806684682155370670350649588513859214970473108208303991192182535993099078531744431456878823260646148117340526023718610692089645824882283001873305782621740527492751376970713286488546374577880579262838328859704644040642447336625934138554744514750207098385836179053779126631349451402748235529923654172306798918408340088924967075945657482092216116130361740110141974547686793966876668069161771668007753774724464288008575398087223550170045419686570334819617045453480078298327107088289122772093509936748371710915294025622468613630556541942295300402230026482009783878681240701851012797949356015107787494622925829432094258757137492107833098256313846518973597215102920620723647984754479509071568853132086307384050236683699854538201816482619728602623907032870545062927505585061502815865206834683190276683344385595701990373282566472382307063113831224815064375953908383474294612367861669045718642051110861785618465377677830084780271349861838502772510257775123981876438587646109901290837200955953826204355858967518034791285060660269641405091977357145557392058119985485386238571102916644588327234906069049966025368408971938933623613182134787371959961947458700103875269727457523486313784980347105039077654627631451813980959294188968218231822025980989834809629688804164700116512270259662509638009712054293190838734465637138411129848848303599227434335274384384593858377644110168631609390718800020164258020707519594950903576734229886626372065974350811848645479565358910416174521067964649162347679141024412190176390116591821141420234608300641281437151664985016338468447469562002815755974954610971491818267417942231374306215588447783219241495911553672660142782860950398539357838436723490402878998423429137741461017069404770250270130074320835438457107310954662190395912051551176904988842653742899879568858058898063903370330529223824273010242500949043173598324815004964084221214824595088833448720784940034519332136873345550937642615454269186219969139253544488561180022911552110524335093210129469242230239678449189548386509485156393519630387328790498552744353046656497052847744591660244433018028971140224665827293464783044380304853618128616712727908893969673991942277935813000726587264329005069988549965254957245995091175991346365135354992715915030423775458255800908508448921494845797923238176219932593089290143086664825932596696603109113961563010511940408016499482733702694080257937801044806461051089864423696120421023668943805209447191375842595781992675551164803412295765722854672216679881740876459276474151963942881669827199703118054653819817383746180986499879658452028228589447825256299192511377246702565645118977221196067969289583605533416048409966555215758123060570483282701188672105041755445657894157183462069038722915697937104593854257320318088726613051744699977932651013828166235061465720072703979860099722871371580242257087174133040583121338140554281721224283379889992604712893586683106149780781137402363317048383144361698448581928758179935870459774544347801319551631501148099739903819037921116418790603333585349982025356354498770354905759359999009087688156732574907762303799588921907835729543752482499866411607028512831669114120396101772564784807580450958636803237448437862896387680655278078731682748508997881033250021959458980376261174282949832188317278508679920199904785295839038338146805418131371617603818918575474147256134129706613979249602617313108301605905991618786930032583691689415569116930504792844197887979632457900175927444415831012931221335570597012585374341079706462400831851814166432698088352500628209315226707463018559722094565380101344294798852637159447655224294502108677874119030864535660838888266972757943742287517360581548012349404608481458012350762642392403158318019746119245762958791291723685857069200266477322433614545628644292299510525326299171128986809674376983834568330098316607274750994222331090576331013003737161399033190561290185392382201591626508486463670250921525209502791211448010505770834984291855498565127332063247563297119033115040691893046199598614565436873043078303437649094669507643722204761836497842221737937751033972994076998494362455754550388705948205972761317640813782514750420833138334430270300431340502252332703935937513174493371144212152274443112395964673471200948242158094536170129584176348068820720692585255318423537272465865272271248280704769701696114752442287181594463684997113623123175150073117437291974615203283588307468921690061504941164229540670030869973721627211637773788384779862697888987106878692685909432234063778146979670333913314416488074350296270779257405983296605078062917160681545001978856221286264072866768293492508285374141556976334770324880728034505915599290557625826866310567674796188130934310686632686018012360003211747528422037667869073235032510377788596926506636958276412258023708350358286186972160053168730642551010343302329989697614850007535379970105448318028071452195594754616041004596451452066388933444759650397691994800292545838145681329510625372394714608203317150764270700121394195679017749672380556542493310322934864270303056161568046022973676361122123642733028088078316128081905194096690119381963710906060069609895045905822988493837854423536992298879618942343836192566233189877560716536409386393840320034292416554142331102721991123992857571644547984541496136209822333983718194960962796000563995473025668723985027522712825746856750062278085089166337065976592048145504871385112126979681725412934785215667283764953518063393795883131708662201155977537495507715386512186153006947310278244862893815810034620462801824316432316482335050877807400498246808155208757540561084411745785847913538777766200965463971991858642678298047838481513731192147308914503488134896771433352300172200648129302043525598326053607033559186388924729918411214439461988324589474272285860862787789226399759812523107538846947879178535767867680380060718785838878736918406376914829992856196251564829872776401661166636802354939604843969385489077357627025335960668070263723109193770279023155790805397048001266492395045798000706804725225658132847256404299937679601156527786639327255817827208309515347527925595909184036479863773402557382496992115958602871535228045058447702909225891193573644727463500772965226181866107308656890572207188441766504236470849130589750069119854803481654138638028266124181422240321101650556672193046148547978467060335157495393793118237256347097950487178318117594033854103518418271831915160183332457966729178196351703791683050610843634502482529974179140161284991263705278795449619352342141390909207603737431922788604988589372868670177181731042195385220688205905748145440074054435184957140500594927250698694162608676165142280672787492425703660586424439657448638135516994955305057872630793078144053863794051032777668923355842332340508666511547948371769688494137646394643059408803133150120865193646607711361652546610310133474324020482249913465381368389153681192209991756245975651679913874582518996355010749569901233927079413018530837820055740278130987011880981694899721490295214564690094109594363413957040657794266488939995814180275963246268697050076284362808478398854262659721376214387931618158092338134106950007064661284816319500057395168130129147739825893607512670128441587119253395933049226709128630653550321812643801833140073405034944032857585508296466140304466117369428324336537865812561942279801345284903231127338704518546381307524311850661895621694890301256445149854990830786338132469808039453745670277604927189468234932081831950494005309972170225427224971719770122769180421304756303805854700749392858976152514848234273805051234024481459841126847357493441741407930761747601654461526869688173401392404100468113736635137248736884317967386121729024956404527957730786628160984711111329555139144775629310890919775816834592194042740425383407427187118830413479079431605658819966646772197318773534843764709694598316385219863925801453631556459556777314083210097014551117772900261337963047371580112416965327869926786576365350143507023534918290914903122434544655706698697056686246109683317077051667893913804287457733487978757182815951009878860916909647460641410546018670477771905801628019902087692832207782101860820148687457113011541724808499135357314297685317618518405399131965441992749237180917246420856759660911224983650239787683248844246185262874808343181563672440368915357927447572294136208841327629608618912633981420923011037262466897401083740533197337269298971236524637657749416939622767641517789232879537269587207451255235914290274964577480087327265019792209486925947124599768078851303995101614761157703536432730192237302365354163562134206497981070357601717526972900198279548739279149215441998951394542596156158775953908806787241554566405481934197282544477443823251047460631727259721764007911854702649778064709443602443300761219221776194628270820229425786842776325275571762481105489014203531950230134640712737693927915785561249073264922636357547777875082070725156794562339064259054835750097670021344686661443741595590579024111502026492348574199258893573050713050896384031288112320521332352364328674782996641236513900544511363521296734028281111940896284845588314583775171711616317316621753401474799786651928149589765047419241556462597765736749589108540987305012059416558096894752942712051438458980908292803448718100872746500029507304210810380118021456071507844107557836235263554056517067308526147804450208761964917855221126906298941801752012034324503540612317929735513043848222188466126076105163648312107030201592689891189228929711316088368667266128488777327503246790336169422501213933445703928461548728050220548628217771420157454685952451516113195600628016583780916385079382982548785243614951283031983530168850831602551301446845344523417718573452007149106123893195218082518655221192315362468416164490690820674235900841961454795361280807041200216022797402412319682442128472556284863045030833602052184679566432842260490724035680514152046665763820057534757342195572669415385979838108463091866498158221726615658738907868664771504929329381389517921731977304499964724640783828620016173868634237704225491283914577657687008861351771230169447807369195620743743416728438957442877001198489220813481523038974624987152894059739417806655088362407839481741777805480834854834338613824367818846587421551218660697641626590905463941399157628837218792055489245859991738300714529414987478902110381045800324995219771310144972456336895466223352454097433513191461136107939539845307843102206384440629574218172527525859169255112865948730947067121089237493305095485674618487498231600278130365239807853296995711396999312378479537101567521133249850486731865049220265032716080166730701616064153430899460176794037622873518428376512118759582596301515515147112511946930150438807811314201080982477068117585419463130239903637387094413183769646846742269661364045057453057007315244853468364001375351358073240640057137511528629172488019739845906072002172264564442853632143019493797770771616925698969316797659404510281119760078960631144875249492264718537313670388294285648507580414213961266884425136619431284773808549665406046747484882019735907576304828045145583929718463725394347371733797118558760729497800702369700131602725915988889535274918473713970730197990024563565086314321068194367455548214243420684150078531473409750474147478052206211910534982959042400071501511163332517583411035508882147102531892485368821153741684389850356147424955053065331577609591795487629170816284246679467672519536051298789154953108283998696301121684772139194221083046109549986715715792148816589305903478263426927576344559237088328645710112197641630930959475673028795775119112164698375292467775987856113798023619523528839072516758888533377296817832324012705519791497346386987449984168826690746280562981992969824533562834167544698211686022518784518440102230861507183966735869868913675535205546934810950041105915816688189206124153865806666751010719947896192992041277432096313995253998189662153127748003355351470917118402454867502395396674004993191474353599768660917971110070292767553050488328602072814339804999552531368876021075390181417173003124229058502217623945487204218368578767044155471928119194314118454525900169097563165280261585925481901086957866570038090007364265743862416725547531774694962744725795232238719235564114645992952037727981640631732451541330750361691729590451343773334829883490025386495565342710277896076237632310455394762943516037573436701501032693670111777094637932421037975912913564429229260062835263273863380079204518552842413961988501509025569971385577109252517864667856280865811312185434457459653757694705602485984559375429767863907690393495667821138212205009593407819200010266108700699776396836296700034934983006094190468804558072142185044321357899623328137054679300234261631013216713711076002452572229773100511332580458671464197376427401140716098665281363757824819624365477785357154087427534985999624222516291710156879059767001437729167940979748049718172014680238079506504613059975079294238680076156136422629148087445999030635313438564495836479147896008285167438743489960546947396791289180813674883502213005001219593312235642433517319331185977189429242484842125223458586054113263433541677246094427927048367830205342320454482931137921091656886973780646693031780836090931671070492408665175826516585447619863061047370255122030002823311821536486793634270278196900332363059183295556050271863688776078411115664367493219561922788817902271591831170354245858473767397083568382939802312295217277242927547374753166888804911462256201136396876891037566965824485226145586880424727359704265386321914970080325026697337152196160133927699835002168728264648522010596630582652901208131421272960131447733430341476838462653524464979383016696690052234788832593726892967340647949559397498730562556061104068402648473270228138060623612577519092607992977310678003988095922415705811469618311814220365807890886800705831380168194172335974617459839473244711672712970710087056724595094115603395158282004255993959855182396095078887959164589063517775642625586032872487963441874980454326151660243815615550962325040576649949729551819513763620485385058010155824916669583856751865925782881589652269357379324990637029505613815138431063320384034389427866797933067892283397582903926533546704009916189035800504888667657054025408465237885453724015962411052954399763323319668957211880798251883189137553188008681239643825249250675094131896648771525002373105631106267627569108813432381734435800418800307271304795519950749991615610807905295679145386890868585166394405194891183368506754282485813343546493904864599387996986057763800981211924081684618513053587571688866298224444475879101126722958463867434142683793020544480806665873418612119294625147467254386669988490996882523108234617242491057754838465073643281739944212743234852078228871646517570746116699837005567361057193096404020240083036759867185786746232575368955147712109838553477441666425061308233330867264505429960772542896846417015383935851308926748768688007739650443777867283566004253522633889863990663699880621936129115733262128622480441016500926008384744770219081380624655162999277192366741384366768458647605656903449365994227387735811710475704772238164975157328921122525757398465940653383651475000888540307836446026658562492357705701529749109102823547655533557519171704819121407040328708908416731411777699637007880386536261392801740319313609643567364377505693077497012697944302264100092768603952634460162119029283828712177930557001599671931506714752553721755917593724305058834251426150158628856022324056693793735193649458094407985646272740300253042386987002121247512980551752601426157755252883681799110279281348842751526989725881705156751839124726274781578742257070393929741401432909302884339369605525391320646429813998252568044317237111943754950059357085109871527235752031696808576161082573725351148674999111559118525776675370349557364361055270371173307382489241631590115768387526663823734627692541371320391422187985429534760803894155002063188266879710854407622137362420348770577181531847607277831026188094675770695846900196309924489140559247353888982868243504698028024394276449242941089907686296586013685214855263719034427202819881212634633178775029650121098734731137059753923325868898659150670205118901592178706063901817189335106305517882529303466528081888803730902356159049268786271355840465685363097236446591145220636583529723989277715911020479947227427289164018024366214198315679823573762000337998568014364704203303010969456712983588804869067985477509986692140225354251322068152820593505386856612928016066144466736887456263986644026328473542108163257975825847148597483228887311393731127426967280438634881710536086724686315027908841778512289823109228900893589097291859777466105301740199763675976188544690280618970796593535170687498997067915275155100745796323339644154144624536489161354944801666030136316014237134904974082492383573237679770490311406470553040577033891641658904502233883204666473100273252425468767426938299792674823935031153657927611115648848418598111921118517599687247269402665393907143734523685370372223975650067092939749410004297797561341621474098150908034194563658781954728363299138935509050136973271746853273852823786281272902297868548335916375191425877873194129966072036905500037858582529038793842061705774944211203166190146827469696301726224270937662844670750848168917458060208767115959374743187091354904629953106850134444145160499827626268167744426139926333226079925996985502088202634584104604154098042918042602595791222456484588318358667951767001409738132701965212312309600455130748291473689577671215988359753230258068677896324221864030753862828739647001900965698697145858805686969770632193414213964369987735656429100885457998746765655834137700756655775139454649066215767621571114801228055474818055466286841789029214207231285635593734520801173134685241679833162033810816148188356900125567569550669627288174358231588894273146674352230950406981062403195151782855295308653958370274700018501503567116298666091082315299511466276798209892110102262175885583239756522324396926993933113544234256146500175357766529610514447136924435127918571212909974726722725999324236775488532606533918164875995383346488099532071303097258085256103130865970192809125025422324704671886932727308416920995715211069577625861012693223209341689247830334499519563763741866554427946327403018018987045029486595340665863104753233050283469239367999278837843189214387568068024154294814137774726495619707032563589213490137774165665423556737535457932275620955644926793586329632191903621023512846551996395848572033624788496739277017728202263776348838091397662476249917363121878503401825058071543138317523863783788755760162988418274932942781003458125104449462703915762554295727626984393844090963548373839140419743480500697782764618159252145310201504338092465580563740830829884324006758463978018146459183572623709591586731757174561043966774110769234150400462874557870183086984343514644922799971032164372312003421820962320010010918226294972227049529642951797140657448439325145437765067270604574090922775476531646155315037141442778727380550749592065050188500385664393721603451041224687541312557103749167286721273969064908575572548320115592241245771241589528208947164912222082888973123426262534209894949707331372774193227563724709644015705384977804578154612897914585975972945936063145954598716486533432175787329061200849217443876003267433300919675673330359309579440330423443448272697342178431919417835032240513911902952517649918558744886265184819543016946147900854788775683613430626533434063239932641809368159983310065735440899261787012852406382718984338658306285028712857848435929577592719545122756789475283534816568972486531686315058782109474567468636215855380236542628351445609932098767883679821995880402759402855119870828039921753859562135289587720464642683395310452052820395488288202851869628508661740419971899745698594780117332832067241684730707707158102159104370024554288526307143357233954932307950261048852808412409535943710085992152000351043549542313988831496155533164838815467712310276399916686533613124501745810524668678846597985205815704434173130386867614892628859722754291122515265712891823620755370900490894729579661077604176061207594997574719427452622811194392127234956728475778500498937822311534195682057765784708407145423470524080300780589467175373169779853483420694432053623881211565688496545790533057050909630523605868905996891596244764338087599642202189830460109498790540454937526230255514116705553283381654784594495527964937048332458641545564740866558813508257259394457239239478831861506968124634341396567422210661681629822909961988848587468412349382851118034250677407500750258298195144487994216852935365107241770200139647186230842119598768626013626172294040713782088049997287302741958293476237255058705166735829014417252237363140827089372249858412823746638743114725021569447750458101904085089345451250327241097120068121504904876027169791137899248898289038472770416877150315988880573905573439911995301809079964357634540459110352083667241154645908808640403139470057641637612032506707401629069951610002364223699703665665283427376415627855248033620578768206233220777612673630597695042159340761616209187936397896116449053853789558185249115574958077371187100360610159444631270144705298677596467403760781206572489228355389094623910825181042805014679803733047813982207204526325786271052458031684739368304513366036098669950459589285949212244815090983407588733345625835934008658756888660005120747426922095510141798022528814006648947980444841491879650475534818037216511631130163458077980681463883144195034852884066824496934159261010532357931260995414056465363686502822077959992223326185040918930371239879813031717881499959361681650691767619591045552719002523880545515465149826188803609877371902251852438632499406405175701862012145386930537653252641653632302516010731557743974690223605823351469156508382818541219320292690796671543960878204240794427396482027682378226822110336746022906577671793078661003266059328849150050260625721675030917017330650208454097842077465874274029272115110648254719182891477256703992366625968662961101493561181537197926470487482442246281490139887094965722834436505121624303510062025644705225607585013602152468267364058048034870650191856448728272620310582380947382581495475243073011437895449426761290458789899433608586982914027816993004121159238188153831868456499498072644510087623419003200390336332915292384049722428569416894916612897967855163182239622795790377887362681746386651975663340888276163840553534829633204960658759383088990084174691055484029363487830264777762171075312732110569416945802670656945062375491540878525554599071440704487394087300818106275476786364399569035452433655222622226381292079291790499124986128827681291560878922325617664699637488670813555752794802644246278183862077508357668071525041479907269083311449470235488935235421804228790239695390169627051299378768798104439215613417334821858970160265270404025339089340945818243378905452309075530057300919026110000088110180690882782599736604417464562275710438505691281708061326416121927908581361821555995464096289349311163565787450086707728775769675840477430173661308759431393641708728816067115237409492647159452048876972521366253571383102136646557525885588685767618286808103507340177728671681716833411776986067685460197933185989790534054175735739279572674334421050236567319050735643822864162340998732234439222218250354855433789142987679353075442119646388285279314870735463083731281173181280884301741144351583772645847255010300300875969120414746949313534267244366188981347805603731381676723470995384687373459374679090985258553832463707410987565923232265918274109435641812960718824139019678667691729657143065523782866995352499076900460953511891562846431649713224442978112914026394048575928260084671946966073689154289525253180231752760614186780503426634919337996931390235114948905771695090326939903386464167383868653562676614197741452113899191097859855118070122253575628334388942106141447570953309621328073993574912540907096837916890385133439396755611013183168586475984785702563730126652141716806624243256315369244028234314947622639799423716671043255017250575936877673246025121941396238174624167346137473297179635667932856921439600732612879907460492908834121267878848664792215790532308954740361101964243165711355878540705511878646945504776836630432101886763682124165327429658814819675528690857269735497207871474602150253380673766293611173486907930738435161313122699849234715899821801703016385874261402420792156141593863780766506957855255513964732206455478179144619452274049970497669480527591991532159956716301894136124279506630887811368683879961545364478720537336307449922187808958353173417948661756593919287434332362454346071961164126984673518039346298039251924799463209329796522118586999257431805708095578447407596966628429526867477507365515648694658816195390542579657088443403418521677208263607844591262322226227418007324687196798398183034504205112979458979227082392707351975573610791322961436282830646191989618266891622482058314569351211181582567776618598278437542101477842512066898470719069195363035090002968900809167191085814950579883521772089501844190413530807951938986852950522077996421380270752412719227617724753251422736127264744213564634211545892656540329910441317756277196683288252826026821109574862660998763209310378137547139367995229992099049458376799998026403013117559492122231724908067822445106434982022181640442003400068306040785216416960326234525620946182017738847534922337529634691266071590782298672632084889474597944761459586565034838286082523796285571996639832200771373876834590307869070791506597701819731044781220191334106046549381008661198414552699780562201256576506801520782324131738743418023438994863261375255166565517172098565778760248383545201143664893848128720900308852238285567859617688528714119269770150646243770501671300843051635383907301471742930776123079098131581699232651412844298657443575888167685123494829869119961478000384793572589662458135830008293149804526915211837974112271269865540271920602329459341752115052566965927151156546219162675563688410564831869104006772560206362239973696410542122756668778381071977505355230705491358729902405474075292400471074102233317207062252856334698845263281283901704859017047399656801603194193417261980196253185220208794197852107594032026624919792061278469369844745651170669788031123262844136638964946835400765836114649858246194557389932153107718467833411155717417222326078096459883763833391659028994089077381926718832908894130292657603592044464263256721565198672692036122349758905598429704624353573670242988786376694755183187122122405735419402387126661919057061264273616904727149889041963387279460499884794654336929304430193874678782027578908548500029842090714008865964564440553172655418277608330715623198424978272602618451356187601670272060637312759002138995148164258807096100051275482233348270216215548675138838598656172174964832213762109035025247441565853803560869754907622101325627390958452959614020372081477287866591076626174246249634616649712942342416319310441444234171080870376430974015389174381164551160410496177731244591083198971200883088817938978795905054685751014202125970603397123246425354266386271294383156225459044411753253212651283325287918691841179387660024452759356497658640493025216716322642866961279402999396765772533154487641991557642279708747226732007850716094017611944265564466365013534872622184759174520846973469845921317258216879236335838681535903126806557811831034754561458298183073928260769522523509618213219589904458156881053120326252905388572935741589851992314080783653136453574291494969238220078110115476885194775873107540211264906555026951399933619396975820459540655782251022541827496865354011874540908741147260681076439387426700493354937818951292493339340982661773556361530688944423846707711425186437196670790731140022694455339970340186784569089573007838021920364559443594938832331088349374108325043266985426500437589074467836270925353676906824274355097715436470330663453641741184305729027011555745956457141626648802468615302205413538123955505613716157804556622140418722619689823996066007912255504351580387674214698195545574276173348987408495328961728386802879840728590183579603876854638101748883009189454840271395587240636716780046053409994008819506576437003407047748629848244420346192483790688131881734457934794287404180701798539349808777387352580522161818842905011184043426191532351212332753246127838017107821089585182463608095115082827334610979246533303786504541184312416013698738660843361422970557055171238614292843215462834457784839661287784692001987801641574842552336525517178929365844761123719524530301017657388381524314344334075249634428944508668943966951869125274766812187450370930247397859545026939052128316633181788601352594487577853375305407324106423764131724825972024689735594076654256516401509684741230340553043377801365830287122939435987581322914119091305054959290053432360846345113033448223277526770994447754766406196220923875934824540742189339048911846836251198917826662347654689520026775570066848968997684850933365411152871249943004431835903443488978875882789268286767696675816774960149044880996760629597906507592990027623202504115748874665691346252495944537845836775642561095958424741760869877656908246687160743855791341776341412095499148718836106031565838853102278210872157658842606220809941041680574123461957155032351511572709406886198422403481017308179170267039396314762375388640731589714636010439763724781901731300038956783801942108665098321683748153932256889309806790088856746098137379092783410302635570948611197738374134716668770264997930686673051837023383264125008608394001412607012899730241405523533787651679019618189728804386598470010579074594744924195264284608049901939756215823898470219542242205676141226033418706887724436609117662293392115728363665493541441344802487068475620589658852847808298951629773295614125405629692817344127879728652125492580568941150686667667819579091166686832008682049111167086084648940637555628842672648573423481194224427633284315368317460079928594634092438676573735148555971974641551960951586853014838491439693537733909857165777728559601225863633356851121859161635467113671449070862115368699237484493238887722389587903723023763239883906771322336738781662542877931034750955392059477438902934328257536785005326987175575829421257630209154728228237773594271615053096321765716429908026537624072586423455145463174549881559555595067099109424102720307902379086305768133209796738316019035802382717851619606112131178748570018658691205646623764458451312359704102939283749696319634951223287277729598580616567655044697534245793794974067078432001284125158275385909263568002019930781172373891146655965902979373459776687831123713815545848953601746091624479635333712459043610882080176034500845644885443383913884670419263179854184623254512556156349976560135692243669808179062153299028421478853733882045085195272865548019586838598090180821256734071463036542684150899137503789524265579145671343742607700449398195231109400623529344605730092249604943612288726505487724498904842920656559402661359686833162044499719080780795072529777387850670767030753715822966769440062671576603295943814819219008627892480328442610199144066516802155539503717567384870438507693544321582978289418455372243816658491025874663671012347890248763802224098894096530705217074044691451580247718073298829267567802370337680665782166922424520216034517026614436540878962675729481993125571576947234675815680500692634406871153220305523833296866755304451209111419463904247787357098298325839770119242309346125181086829300523740936779801381336348911719800753421305926805524470860857270748429514218940034318556349558926409519868755566393515060893098354227013389847732000900739911714235428262941623139236829609153133424786280075712272464263992116478270149391087071011697950504427304742631795617483730076071306610018586871573209145636917691790335936779833891380537784465591280210458451341113628327260989261982347351308989922333460421531590212538062807810616253681024100534721598592724929675266798371544784423140784560746729777832992929979084323510359479081506524395124393422715609577646887591420008904579598621982911264988608158087831533007883293549733569258008162340805655897311894494090216098076019717346978943055336579122747291431832910882232814699801530403478680654803766769779569543715811620507872477183194340330865129633724905886992947569229587761090312076486670590948001277523167425124854462596896769861464005270768121195798311213661585297137407270011884423861982237046769896116265408814895780993930503371017721645730712481495951458180248511841829498580560544621527740907143168029438547164020437254835717893572836514005832276642645763996930241609778750111126655333573907287216660020574629894120140655146697547393396145284832265831000375658009851452783244890357387872643192013371872685213431443878736582244468568360018934292480236671562374129316783271854267299022019893616615152963847614575097730359768732066745867252835921763360987670368797832587588606023787349736620782219774310560001156926368213618990380675980576142613916984081714328386974050949831411721063624186755645299269960127235236941506686964389239746065151933905031879330886236684663536343693501769307683048360867085323523889410061686392968570110898860566361115217285741365950622319320836852243078362791694407371460553986124943347516661227585560892690414214647879962922151713155610100337152003584849629198090418406480117975059186359190834555821843655686990332367591319773238813252649179929551424715369418939596177613173841191502248895816485288770704949306951777903396097202219420781157604610503095437892593415020492973355304143018849172644627523495445256755008737420875897316862274696121261675666818813145607957083509528101515406110636351268736459050191862180659155979946786310292081965077241344972275560226318040904238693513184959198848150777992042776447654918559849944880968675813002104850853736918886425233833464510363448652582141168333565087361313384017344468917020656093756201754104405857275414724724038349799796836322401768231687349028991669964822081490852640834425768928129545881978657853844690673717841688853621843236936562646880049242665426990795006710959489546760004645236734058145088497664845163685213651979893267732207605916640771213969295642338626960436731234200864517673738032443641571888804938790165500950823644925801943605529338264825827043169831173325157505594108554741963616270205476984953342462072673888560409352025105437148955441639629188821170880766643615492184036301836006254976183635507781189260116568832764174219234320130165085366443679836160209709877384877099746408191154710052301454717205485686032298279052766400996000158666342712013016487978829302446280637767562337192025065827594389997318954167982890881036453454375176807828359807105253399072272303706937560821031737515573248179205873014810289806262604185874213390245244709796734606116811095882143052289389584090665344289653171922450174337368805858729643298181056590059910390500295165790001175075437703894971284717020444977289130513320488976187285567068218413325625179008848298209444523824956415596084379395204041545179739779181059784631745481199918945778927027700281692157615875662039403313515860044270719051093185858705240805816633230983033074019066202126617021704743036361718216750065861498885369498377134354028930789752068700429951527896719718033612011661065186252075359079360068845533260703104094271776174016098267084436971670263939865201955016765664613347073776381552575928899536734087350400918315453366116582419273745813288929390152537577715786121831679973701208274168934519640996247055095602494219410777531323419830106339826399684807182315607827952661622379541854411303686057016424090858680963082630615806269851758771111883658236060160624841210484100400955061317501302400989839303128796027049623176917625192938399301699612835080363895304761120032224978611681411087344028598820686429016776841564764197401119254213841124028169556802853314455616074353573191928019012569278690585923661473780463542142260907605213014755566935793903629055704889133172208151420958074685338270507943796651859098864958984411011047577111896609491583731426320450820971712354973720285189959778300723283477984607579034171562407733003220063198251979018369221513143293764710793959434519815957943752109012754286307107943080179131602571319151355010198084893059860975645061300081966577873128116793432939571162854740765842693341937839732413468914257731367534690896107594993918879847083747604145441895366382359299220056898671662683113939750147314504872352809770554172727459342506516745121632478665639055915333837967963509369630889940761844650828037667472957048497140422226960867577056146379981898181916581341852930206645463038156057567732626316826461065238835331587888305711805052503566505647997559816850996267715618246144483987922442039296733704420525787701845140335837632776998672229338341902660772704139421167326948248660876035344768110204863971983385681708778365304900640270239671309824538134256612643957449326669273550714760621872337736715427684833307571291940984765937706408126837577153291435403662989930691422764656255320272100943276042970736327984892455227485768253672480716248548926440511931675219320205190127888419732380806436836787189999130200206277346718581521705230249714903648646487069304855192811922180534654980896139709805710150243568558495785310721115678021383201287769508304971949223655256542686025915255016495372404088190025684840848262707831684875579784037381061557580010132100350782749758202757055824869449057315431155362186883719568144675769782534023489447006021102545400690189632269569533310650857059285283521984708926420912115923298596936295468748166004256370333698401999419418297729348716610203741978925526866782742037995476789788731463068377833368600891372396669944896962783599247915020172618824578601089354093354590098459364810960681625678286681707785805062322221302407486567461312335663676664509064250166934687229697389963679735267745073538676618019132776437110383693031709301206668171072916219857139733028102794334782685699685795393367106124220106204017910599384428453833690777889110261934159937019573918172239860272986403434822067078737357351152214102482657490703005813898642076177532636854481105539210207720984900542798602776690633973392614650290233880432210626338428247908382349017809463253611736339261384115976609582724719068842555422852580163088410474331806944842104182319546142877159849654652471115909034501585134600436850109400609382038338231775466830622184665115061414821859586420608420223217743569841267822412883470869530552426726176297043605422405464981294424886711488424222198806545194171185364179478443724175721854018607366403875183335234696581515248777579340565599622690403160739567894833069685635197151666489111486696976578797703476841864730818583408283439100609274112008852744407036046146418633394142242306791271803986197186597822386772389523434800782652559473840996704495263102737680855048821891231706333738390588177001643126802306260432998322194273656071546035993538640471850638910450371184936774734753842377315929578495050377395574349713770197325388893814828463359653843326807710969832511148076562626955773258196606334372285991037944451589474403909711726702700507077419577964945601514406480456864200326233185902724459732607399082795386935951109903013376612286655268144159966458282403082720942462980662787428775822429157485853922892655075726042186702636189698096532288436209593056821975533316004585470102375089856837806650901994680582415581587176466644195456829341746287459323972655879566429725470057649399602674428839678690126011056977586160782089458815598046717567222841295925355337449233564130504077864379261001938659575845685106566820338462145036361360505727411143369111322033574703987079615470052677160518373535472309983487283020238837116762095825256380465876389197706653623128627009564408658563718038819464867129066767904611719521363444204603385218469571214894064068104790293601413970196251281538033790596052590379658550072145031277000803960418407943658523411230586983597335857214509057642739036813644361033149554582147984968795811338261535183944912013124398627299309166337232151294122939206047804714074963036753443610579822790883360590949462087103083660622942180389815940163293601283457952749723003710607762620451079289469364097623769224650059471519589475746648599955060549261774128459007586727147245815134395723222286370794441334386611895906496553892500487916263931961119762961675640730452491447235859841422822176853271977595191796431470816721730129947558761481335488225883698274761054843371718549907986088566165743332766960868186397528519772481715261237620347568199740410908162989098469328656859376087398010539652178194365390537185713498049594853021103222541890368951951444170408625528066995717684297668120676669267002955534637060796698483112932431195678752103459002747162139088855272801946677634063435262408220211239794536759680434932931003489125137058962925471433070790914659007412448508007833304645041543059879713930291796655883013656398811153891039586086324449166295385378410135497370049983539542557490321055615104498794237645185671301247481043070347015949616392051052157480054963996786438582343794600818332420374444197457816336155548175776506285527418824015196264573215974287255606517467392629436418890328064030065198130651074453677059490067544549316606382924595461739338488248342999991794490630353141857420888347912340252331230514323986708818484870881631222083891727483421336208389751724771118369936618610800335816920009876273213315246176508905461393420406668077023007734280141949055005302975461053436944143855664929593009718136235435239046148092629198418072884361312056801513460183477125202120424091872470156625766077729241523027595154259928222248008553155910677884506347139375671175373956804101847258489793913051925905186247594019645384317180789676658732808390475812743987596963242788635401846998139454285021739567275942314573688980879622038400453134445211358839810211048133286441204716871028053058523332422705047159360643681187562855965269715930137266141589938538422047616487620196973414373594670435993227033739637117268990513174035282632981784783482260341457703294654425052886657794686849282608555010563099416043807499117712057606710055304550927996230360004044447287655566302825523509479736712686513678450192494027979327140520509992908532431817024507411202263930059876619520768716902686072169243722276222716487152347968331566706626792219847069137203726291007840209277204741648597995409628203720794057124349856001426113887864058526146152059081248747554601248879680877132091628803897634698619072002031802097122045667998683368553543666288537326983449940343303874293648373823719066630921581610396415088874501567026108492428149339487079119889508226153650940343525076131575164057925235829840956338069199615828057355705365553824125453305118893234010724519101971912740923190627880882465337298458080858191054479454073847225474855140397490291710732134227157020804274746834560057495248151224925862319189429697763432918694233518349353583911226303437586934550741179435926241015696509223270736430953737449580358652500045872911440245036427986366926725378180017519549920740513061998558236967407110812053613626022602543974184807531239945327839044036900762450406304955716255779393756169146266443094317594208370643886681251970554680262814771795819038194509621877610834347196380039473211498468991634651434055149565081963785909956062816572659382468450907698694596367402372869023512525063937028198059453024197397662741173957529328427018560689335727308380831703517516267667847065118390839411677742388809718081376823647041896879745940883004387829670166683055633952831463877296948002034325950655249120848590115858371344753054775775447476087691272716802135231395590168055319304593701547205962305804297771273361631200825146618290241153006978827556988640804859415926226171394786351043341427274337309473207390246058629816246802377715364669436776717660898425258804537092685302421934794955147716879615960119654667172899043755118399607773172477936201149105443387308619256807133630486614874842689255669664495945630905383280230021063321727360000583590302702056640724161022363930824049653328145650713026838538435097043513151182121843858452939276486758088435567360912730428698901613885992316212652257542390092299711133903017792921121534263736169190645957770158643401115255700401679080288228729682016238740058095802202358252080065528892937412892611288672223405507742524958242559211354145978153552936672197028627081788942915010567333110121654161333707849141806681935742810121027100291687610620542801282535223296164063234110883974415969522257663404456749502314381439768801670601834500599102870116692705125056584031255423341415465412808526035363613478825078770680469135388008711318159738823682257137102754080959361929622500556626866341847089767245754404027352631866912499104595919408368730249317484666083331903885717758413679060797820150873730741571666623252880479947699689459985102900025934907934145363589978969503951855076575211237218705404186709773192773352111145164940740745642372182078848077690705338606251472193893719467776421618821273461520721465844321301859826091658453556688355732591558846077936889546618769886907382895632159568674165152002555036768611695900123773150987962781713049066034351842570812325274014710230521208013060730292589055055998752507977161034409499962147137892798929507333799947335307379221285865494882826399705119293891258240345073991348503163197188432367118285342698200463767508952922482584992828516625978736217835828315933014516644214299854015010237087352100933964107309476947475264301238540282914819136244052175091381502411370610930965295645408567029069385353053959682125210235264078045623566816985649375940266119984382330910109178621667172315730865130185541218374140413331169471483742408489725496628785580602949652198003032796916808330753010923039249858837661349657684369966373253071888352824301943216826506793657534932900730455153627232454642854726240530977722079703102200127905265573110719970542814207021233129050432914972897280564866895522044214741828868303602247182651928015624954655240041529588159325935075211695038005215808126633794483434962199550668335773838294614234500499447783930043420087154959810510471139428496433608946835832182889897194884328671403637854785178231629256735329290806331038130644006640519162497353108081907466654285853459206679307027942671423831652453209150185024357970845175085518668366736340406416527440808662656141497166349780061796339237089637987058527058786234234200136774940702127144276792343386225110159871800963926460492692149315405119541351632540910003264155338198837973107688678396514301992484374804157113523527775275063568678007345764994644665820955615649579877105887128319490805012532204603729152388848804411890534641474563607896852310894895037244750282232234376164864588505329061568109210663895440385772899975156363855827741804312610258903495118045809782352447749648031737968322673714496540175280195600785941991855499024394336857152364461565209246704516644322183378203313943017379515332778595794813656512354931055585494699278055786442332573668468310701233817933016332492616868540247858994011269921478206244572097570747173702619009677325381742023112489478379931538630413671312699848005747888078279265324740965554950978265226535862340810303857674218950523770515199857056723437422016753768516080028792170349199134425970127351827723084873285215262115432688822552920648844342696958127866245448748627329313294029960583682436768196424573284594781724525725722077174862913871525945165812701425387456023947182212099142279241552805162819813723032655850337540840929892843058760827248764408249538977956354973234323205528213191559901018917861169994739576245020072469707384526486500632188232348258243766527602701895584022181977226451168122839620965831355564900309209781214740898976473828225251319350408491717046768242118809239793912932504188904473480813761129209104148035131055165796335616837827666295356204585342260052301765435191865988599254304013044403918912152411664510198669444600592888785856213895863557088313819956119724679486634644530639938204374247087584334046119907167270720827137025362266496213973933265205096910817041019933742161432187991115201860772046805599475555833921196195027360482238997508184782100936379944114590706887121401091366145877653231667740216780753549809466052988650459711996632836448103465457221596932277031188231514667339724487579580656834199776186796749131062446362200293207629318025784102715607566688863174627368457215449259283491884464818205363869991143374572239890048740812957843227805350470069223783064873127693058535850866141195727035616946571346082770453885821459219308367078640486604319281366986190163295481879738023485178759949089373553555532847047417805845387633994158189042493117536903930041295520632869031267047418833578416994202992472831817538035116059204582139685656776490432294230043489602872542031737184962979510989056723096138098734062602507638114777698449712608882723405256472737622350884299058321631875127505085359219889853581308695478610598935223892215114494839427599753498525196549041968528224600482077907928313078316173724358072007789131227341602950361335980024119227640806179763923371066319340898796636646424967217610515448300387739287973546385571183063524324174386706355784878949152322555071106130095512734646050476251363440442626540414540104272196261111333908146043478857799816548555095384795798558909180650402712707795498835492578468721250664260847441091691460274341528616781460233930612922058456078754894761933191952137155858937658506357400398408600247236628357653056920313497770414136713742935173034287703399737979400424536534248075427773834647363327456561402916573292481081875921067756805623658246534340820090402050918219388040955004223533102115168310703878891044138517449195800707279716474785620101743446413765908568445409111796425181006992144502189127214434948156861268030435239271130405137383807007004119909361051265930540931816275183799387754995036158513533326899387757759715534070386990115450886590760432930247673160834512271644021515601831008313202315077927140914515400844553967458857300523281575423815718048898208189707711211997327973815198253251588646666276197929049155407893078275659081534756780978804692371338408984209624573865564128452123765678922178099339149596713992003321929088654891665250651423531921732592124477297556398203008794815668617392066362652782934785557730401028671875520684032454783900507754416320569348954372629235482031291273161904809837415500072050835237919078778402956481544530410937968681273480041125649806091406547374659604451429989643918101982430374938823584665593267112860759823384568649004502972614754939127524941547949716799372568073111016805733385827143952106191613875472452760315182477196847962591643318097256753206554549616396437181902378303474772402506780481889536067718950882251937869853197010829893335390928117210294544377837693678918737549432652929132562131410863951824690417534594962969154653065334581134210521686185905412984501985138098683347936899860000093877237847717788560436868610377519103124564555327608857781907964879314229736650666796092917861349632773410966835290967274506725984920697112416572527146506880767429521444448214959926638461985519958096838837827719658678380918168746138669128723474343766691256587364766559031642340471721069682042952209494405701342610801052123147314714655425324729813573546211003633280393520177921870087243114058033248607396590659894691507292350622634338914261647880739667928957618351757371409448400948671063382993242829226071269637115874018150214367069084553801140220680036237402947120157388535791378531238842770112740779614729996728730979853317291284266576847987028224023234504987061568355512916172188619172264921074507643386054995464747281928653652661268873497863299026825021515733489252908265857065413883244659732842713418003867295386386902558262625033122494764156824257605182388273020023738970356248314769641503462605157198274432855653689427348228329640726448072708096258929527623675341135496130306589856321648005750721179237048958038038869763611645482055350855526187840925900374880459653781863195564398018299600362335734786934607963265801631449199761039815431273270605795492788200786727896199046338835147502575607621102070914427018356020422687726258728184811750475487199619692262272988547925414097370775373514438405506990062214515218127692366002897317979531266297293631738147912054150849845010357156360910618670713030846332939793673181869038166533730252605045518343210961133263900438610965424307677051472624475697322909329958054583385174371197942165149068215355926140855812704750094189159347546735954864751389893377525114537384968550133483897215163993493441239645368867228421982934471326980268329233201704548266521546516615643861833298362638608285454339217700294248827702546078571272653174542605327317337711488469365882124804295379681484246569006182421248098209270170965546412185263534763051022362243389767288131762630144170428048856560554534179272026283067272762948995857878481796580920646395242859721068412687094971286122153480490872609023708971367695863251335543679878951826851820488972700501042944509665921243409447891337673682632711053406761376943783014550562563215777665088144577008076986324870012366138250362760022012397674330433078227205749516518412494448554401705060827215680821610892051085575717061152850094796965816678132420106836519770833850141241387417567198250890421708290726240291952899550226074178859055363684247498666911947107881080580090418051467354889573738356871784235340441836377633389957029355897165500809853613104125292382543620382748163315043715494694643335167162722738763976236142506474773000615727423750120540836202883478515462561057845272873636436845934534533388999268943377464256736894733904801705019681402189817694852910998401168171936951786133873607519583599144034236642575676624720265515094207176199765017978839200929498272312269824072347787072245091577260839231335084267926996698256916255316241706075875261814724192229161954695529683785513740701251439544877919065948530197072591519395409085256157648285141741980485516498741039543660859245684222657956985101505984630087347553227776602240172913469949090720593067530356918311153692269820051542014156374987718114624828905667197888082304751275252471789835141069390890163610833650514757788558876532651306315821436653232861101938813334256231058464572472673615226503483071784273817254690041094930291115588440797806648546695978566086165769097472511732962553980008356743180565286433536209203196298617722413678180072780650359982536510328844222243405131713077580536185723989060617039459330207226493079326670555496746280033019859283722534706352607803831931414969515063858523702352413843706127496596419280372846901296134905281689092969177934740680641124868184021288284434516163525989181354317460613128921186160647343645055030789417332424401186407951513253795857964155697890061691240278818741449757833357466271055900682379328046996109734666075877674325136024791824314932772660224647822938674280419400110771864589326987558757954269667960237130445867816295006663031855366859948419469486547823230950769284567754187559541481581527470421466718459346860456355496388038895296265153797340172424500542757964394161094716576496256033398206960759722337590780841018224470941280492688170339609372846030474047828584162978228253957880824171145212923044769409280241779096482252604917425515543781673929248974601739539943615916196200537187689717096000210912490125189010616981455915412936572796342180995750203728576428985630605572295826996454653280445770353788864185723446533699594682002065630324380210346701079304423470057746126359883119114992902440357748110071602943072430509478485924307450108614135663267022711230825475915749308496869306088717171886190185431510483599255162011316011029027349076383508853446636372178894354074612429227652079389338375839068019092032397626293203250687257803521855519823295720882961296721553152945134158646357226051824726675560174127284051741105162961172442625156148004248717968815897527550239206426993208294087148953066809247455827018751458023561513832353122640971665988010042877252627201252757131207079729695464047971319113277619804573390439493357610989035619878831026533952381285940450239364849301854797049922149403154097455341817896384378227034831687143682152685321987540034330162179618964177191118967342214032165755010709980309120680289613673861621246931681241344708761600921069744159898198611579980845295475118079090384265454247132419837443338469932333083014377075018805633376640590322186657559404840472404693216494857226289041643039552110320436119480277824499654955708812826979348653431750221595870438433845454350563318627000130661803301701824056664392513601078982422200249472916125484175212286804372938064564318812172425699212278232738162514884077822902418362255885585656900988187420743381100282612897797093109681472622747111377933293225492979094856002915043374059638923282125762334398844836954218744430080643301279823079319910215408430424356507260281476838661512370140955407263259202744998332870763718758867383523022722045173259995289411947112134652285682678814961176868401398526664891460244660726216580959081750041954041971161888816370742184115569891478892359739666495042653159056315459774823809913770287841343749953288810331144989042234870871191016911923549874904854132582658682170138443204974934070814686779107182932585621971178688495684630224343556552890671393661760586759417098738941076782757412722732245971242658324518536653169551223678276785560332784697084950108212639044963311687890707946891624722427751535580386853523017281089780256316839239257303342089156555469255599064967511001205924322453308251485630839863940996714574708576441070704879551782920886818017060501403446772941348365807919493817694035927344597320610739104236108889496196322205142477498454086788072981452552380425868114110300641154422041960807067500584155504966150308268135079582056744039667383551709209410058851273088182672592289723338100732186841106695407695328612253562244383763225779938400583283100052329333276948207056771357416095504906533859082548311050907585407274661907235676757285328162456894544487551937684486785153204921622541030566673680692478088905353855872403902593365933769300425371292167809807213520730087252242997959136796727955909645427979410810019523164708904043726174693917741968036331805491748608602981742468941412470456915398305039854969214363046230584673670236445752077571639384938746223978080132382924122261175283182619428184907201599905999946320014213112521975168263674705686184239469976973663493399495660140360902660002853831310811792255725749283318418899550762366391621886627114987974882097668036315717575313742526969840519171595635873276495022967966916162679340212978543606048293040051996013415482755390045036226782201016596629362495442207646161135884909827420160429441643481991588991541972124925577172398723197427238559166858335282998074496389991581636395218885843570497858797362557429971749353508194900442127801120157917696602219876435989914192737305740064734172357579879422698064166231661870160792736606790843246924188623721544695962194878607987650753336214496094150398232211129959773571398744928094279651571863623779610571341592437450006220260740737464495892665708527168715740756816255566184344641662473791759049582251158504349324774812121431674868298887511493429284777572423751036579167278356763683373046346942442146889829774687029180427271325128232884209300361899677347901173038063450868694648442501184882760086061011968713188774196591669190148320758383921804481192155984774781799725063909174487468713496753638178321782773782848388466973639875600145361201712694953287767370165238907956894019026221254142741657009562163042101078868058671972197570624400176159990688406963770846849947798118300249675717030337804544964946239320982462002512379336294423104152471357202870268901302143041339033512685292798089242610920650503294760090692004840027611004635557108918382153316536111103486691945013175209093630862314782818406325004272565174195649131804407927281814047595324747763293158959923485890920820292172551857683136844821503332572472973257628872262498334844758800543186768536975738980031152505564352549102044906616983318581138865412345718138405403805210138106627922899683801226452020272418436101302529833908011748202782502570404408120103022112563869098779091561694994499143941442861197364126031201026792409477168724995499765544638545020137360215453603786159160912478464301606308134278989149441548516913705202968119506626040390115339110668450709019752120697271121219555274978955217108923377804715495118253003546045870008956790552273330958739741676197517211041879812213101013859667565922962638922974367095732751870251949807791004617724697686607085817202777834951583682888160332665390465455883231519809192175627646912251324528181028006017207159890398796072046429440857964896251383056012401906685853150041816591520847311598393089837060247846072408584578895155354378517871403023899323978375591594879659093595341218251486460399713941270157759787307658627861479794654208315818588236411584794922129316017180110705769084251241670732485471590897739022502699373989730524646000910755144901569166456603482558844545454546989949645625296373597260376674127680320591837407656819257192966941401810898877949918735221271956265218153169270822662933799692196105802971606505838083534558741878798794585267373606682909268011757244167298174840114939937669530223025827427007744029363696885019252814340584958614436290201800110417045472123696807027026321572330288966493187713210628882268297279951088080061549456059160804395575718534604643409691354939931997978858432170466102175267449272208352026425894711078483072392730004774581074572510437736660234697874424186437937436813938139148283104759709845315626830583924699098728508696663607814167326898053202101471629130300587761157680065602517196661737381678350656116677713713004753481725035721529568450892129587445882862265441161182926026916330463785917152181925644004717333079962362548205352242430237229711318699518181379281544937545293025801750116658088682690922705141358304168934657564884668781778194884205649780566622312327915504878468347044973503592074253228380767726661922811185149151822318631703304566623371631188669477724611618042380050181691627102936253392446779825673165768469963435711357251651013767286415198704405959021360830363321812745904035262583604465005046850713451896466747774413508220143151948477688110157319963033448822272160764887230342858719146501447474786994806061027538485004986567704914658990963337055745446023173411804556979334647370653399356889506741827394671509463200457239585493242541880569925635983651336002657206552439028881411902791990645756278790912985693771658718765152385719259311372799597729005740998737056441732482985850750400745324252130347122244128579022008321647057411062415917616710299287239304032096492138603295286395572225629425838832718060166020633355524890472671835014955595504151879251885341430873902457592784922368892084593678621798878220932837860847965982787123578661114691015278113848255761752805355177292867956777661242822714925860543114233527079414337105816043091452988561759851068178918153944328700651524833415589069106685368768801129102391521327791476571931461900989148236276712983069742540686313631311339914077120862074820511036304287758924703745831785631114818499046516994919645477886970149534423165958537834504678551079829233138042606463730147508409218825707191415596476565070625063900101158552006538886257761439775266139781410436635560434349986338262047049626864631676174345015089040744817431872356799439205286267260701219083433675850220477225772103971211070354261378437933466830023238940952673571069728212185818354870327749788641547720404975890071434345641943004131933320955757692519330448263889450511573473900240448685017428059212403357084848777126197953499809391726648806219786455023908350841514590602481729865412890131614936600005903116545551079628474582054863177899483604195326513260227442630495975816605806404257130444848137486169083398805897716115030199843638775897464270423574547492176086773050435149699097264599452788669109692784282868391368770508925522369930251981544960387282401261972238364733977173872284262221474779702925707315373870760818559147491721628502170098769047688131021357853254204900953832814542871707825313935574100344627904017912211876976675069398767617530285756209148866524463638674469817601632193842877883527104891193804589641425915698544555950024570233140445660993134552898926020606981395026272741136931919374781764241113697669952518984479298607481660864318545868498704263291057701484069243266201698820715543582657190136987024029626437957145994522162310308708308967604858590166967594336536899151226335688601460348841398933029606794991468521743963041216663760657237066881073694135487728131319188744897992964056400814433693144110214800301105473975111932576502703263647152984570886517748190696461035433403633542034196478156701133409902839883161172147587567783457862462130442827025742983995204582168238366792199714064810717249090256940197357856149116541045887159258305593847338503228605516739510656206837898019693918606659642691788878539063568872349818915726002908860790483450530526774030933358004947032965837140468001916253470853909091862122214965130306503150278203586759633716832964683683807396294898941518625736426692642502632987957544520359648108525423131080577056819145286314675706195622690470232234858612689511721030050642143657406035137432631515835683403201474910495031084207485975993460188541319530928105490126938569244302648111280741218631193467307730428899598635816330811239338761229927332887309337456071480164265483599900847703327206588155317815881844304724693196984234120316648255296728590094810918173609873788247365136851590304325486680502282793816756297561697321845231492342949677397205969656529457224249618775060879679786253368941749721731504907358017562608170525938263700272952293443769370028488206964737152198511803597371359297694350076222498896248276155443414682911622928966762414461713750275417506113004616829244496318111420413195084514420599376550832443693751096049900320168209821313819509664861524637279211527343179533233036501424543836936605312597019930713329270282299950161835515483011935262919091378008324606894060661080103325824303961118869940664749998814112939396689867644376748320386405572925545074036792822698125434813572718573840968527783096169530805941617082266750957824047220262765162102900384084327248127315606981804925524084061123787814074518946188578707536179945376464293670942924409741648003729418016358886635195625275287800982249330508336120335436029048213916000027548192298908114307921436356008334746848983807441367370921403071010077610326711769119351143487142995303488965520176490212554195715400529895713349491494180032127675653658029830109758279472290495836593952978594155524983007241950192329392590335220323032214692909929482166369735904546705369647162366839718159119933279926070458296659090615343191956930203770146890828039655008771038694327377838493907322954673232875723917131407428347514090188194855977984022015147979742141317345202877113909490511557026515606172868082592418321824812946907003796072455907333419213146945221584370039737440498472884114967797699571141844309141348071132268440633657591852498163114518344786806176228004224633701990021937239669162404811715531581425155630810089014936778211169683643057476855829661631960468903006064090548958179576491848872572673447600964146407434341780321009605882977391321185323065268333865803022858525954348868726804285936161927878648798835444863777531490755893393101193477969299140971791752243580341818794448199946158521560315749317490253700273415465534763174650760334798879591699860780503331839897154889513414154731378489334121654134067722712176582803205955824082226956572239572759150906642772169794204187719729015307683104957006345468613819331796907623205117215332241501252925571615796840572152154736035783436602858126025172286034718587683787117255347320333977171687172176694558314772855681634777347596517202558750843999372534150989413155630916392005877873255219110237816806365614379850972044778955746726919400555611892497141332002611495816198784916683645001621132390566213081861071049217608473905778064557240577525073477209891322851369945938485810446027417305444724580244379837407771998829850382180711038106873873878086597488555133984927202520667699807091837941544093710219879125339500165385901570171212355715376910147130337636287287069969493382734889358325656205153323466432276712507902870815245847323637264638130769378719427135103359379833797263148959715290742955568565958734784151628996425415870033591896757874506146565896005251615455154118820601092779603322458226050701961513954016376303114053690180295224292551534103077706851521909786743339739323229650678906974799044717925891444328613985820975275594244057059265355777655750477303692776556730658130295056914920804981936679495496794745814400269678358542770005517739103505903020478415019974517647178444511938292355890661685468590511415449901195476971092885056941433580884705005272570830059008842201104081188402898882742973543664833069406781597510623711392640000792367687126723591394230667192715351203030880526337864579957751616594436090407183803726496723617365791258973702947964324227588113411746756986373103165823773339349393894658623729284693015472117587548549041968120379046214713901171340511184418260084013794179932489817066639968395622804912398314331018348621868785009222166939278044733039407711852299831865285896008211626341651101638635967320396200091646048741930402351958037496114902510583937239356580000583346260970073373720718920778566312380141160278274091616115982606338303472711865626972666296789246334600729845323274291565249332633173720484670970785141461137603345542726197783953420659501006258968565912372339457651934279451791852465830934897773912084913396387890522371205097775837510129986301508693582400497964531513072829423976649268772259622092186365643776071910443233927305570152843392845005244638683921983237246588455766030881006632733218539161691818950592784580839795925924188085127371636562180432055048073657937562871751367046442755538007611733114349453233294760500429232149734382495936994347097799120253869103280751608433538356177370539320808062920326031161908703138020308913264916442063087685372237832997492363577663267325055717077302843293958744038771445175391439633614527826974830483931412767328632083621904351516632100282100495258096718447455305680210241247490051595104202671013549517665537733164174419303419029045685046655259381356231835005358080106796498757818500444471251088293368555730129549545164400797171469127608557434633140767406454821215493457957834215925722174256737079560599738929173492372335997648811286229912041835341561436418624104316714146143557026228968063310175066206913676815020768161999425398951812410415851686259216257250179204772099019012309746031986574267388592727704089819414599658204627380155467793668688355370304308276012017556220774635592809040323145945292814883567557522890401121938453418447341838759729142007280690822746801437555942617367473984199637136908623044647355894664969753204505009961460820970748732351269121243990170856736698266573921695240247809274751298482103418510780147304470919740821668124751870893166335068803047490714733996058809892026670238097051621229500669142389620605939141892225888595840244977226981382974092030450554098198831644051268330157229027663672029582746347291843476939026811566510078364601110026666362081573752863139823540042284940641216258298395121820969011225764769834604009382956685709546358336222983512856378214120398630748270933791901788020290917202476529885844594418568187582967193712954619758663697915934271947239129464757589011157669162887522565117869852321487812197678520557661762747250655853799777249814737992807953438955010907855381958698605663491689041343093254138826199232676525265215429228427979941163665158771156500354425051700075655367275517168295716831123641166712127738926713412671466015977963180095575893657395060102900681992448842081260956615516395626653965093683629285210138979272889134094149297422432869069862128237076247091666495095610258393161586067837209487883808238414879507498523998132502206558966511317491942558665975165020185616494882989583144560412520212045447514990784207237011832833286840642478361031598288725967192160085094112632151672601783303274820521039186722581479009229801472614042557622243632189543893963533762889626690901173972712105188392286008818117548169666817909462860792676594874076655025986364746705088075062247004335083221421138275808557500487906908243236817494452773617241960972342909013010731279301933494264878535863946249240645463985425098627654810123145281463658253206300385340467880294397182483625720736232496041632534785626276619206007397187883317780542695248899062101818628349695600601425610459789426680855183169276738230527004022288069430794513262405999456016925926310988347246552539817035624416022441384734725485913899921852331941453405555346074827673713094853279665304100158627486349585472496659153180371463848333677378096957165969361591354868806567066759496909487137092729959342847652111558320961707513836520170595291637657025289023354341857495054328229288503203576724067307063204940912743899410332716154314750383488986881629187805005247429464821205793808633041407583171618297780445865245219410960346321260457474378009443043634889836389186111619428565532100737025022002178150325041091626710959981248325406251988912638283802604663795495775595866821997657260294592696653039665468612762003556762801794407552615968745446984571003527320074780580120524910094414538803671084392531738589385976598132329622184411845840163298079834982179123750945788024624190245848542635221465124532463734959881612561058748092567322672341196337303670407365599317508990440988081706996498803011484392359795580877417429315403872314724542282816789368223345680370765291213559130930162233610447643982834461021701555209338213412415595005669858592020264550002992116360048476151785431467518235142285590825109651429254707787825541591053412500668939528803324321447191615162845633770728691307025905295290436994101981428411656212353257869729112430287121791805205314038747482909725202137086242126903641003273551960858406310318263306773252083376286529441985468358816558712415760613555539618098398557748416445875045831833252451974593909189816389116542382067737934250595376494755679074943760741783052409474286090877944846524394268360144153087150308097586991926484349317568977403749182603371235437252535504405107650007493009115433556438588136900188308417637942864261648105800543518877304762260575788891738122383788693082433397478563705892956013395633359913679847367741499348346469627434056878623252591291697178696469706674093706732124851763784388542675091428291645140915706129057887746066025895295909774211777634717323896340423841632945159570763245130279495988270162480498103579467490159626330151395791821431436053931937558021657827512320425266161865957862805213583556625052448047378519200599381788178455231884251259105549396402723808590039117541392496606750100141239317383734871457740742793397065468701173456819090308450294335274733060040090529308391989034337308000401045004358264458057513388029032562341862729790105860919204741349160815137577177226917518889447710724067537858311010399443098055670272553848478249891933922255895455036234827951394492970999739901964407499396458064742172359965588878620211080146658984356318017799046235812952098212839520956270127887797322158628774462063435279087535845550997732266372653465581071495311340924679194480101013582489436591473868499622055810939094955773553987613841598186536816298328286612906697254012735021821773650682636178659868006324877289223007311787133078484898732269139453594493625157213109090625757508418709289608310965469099200234929119551640309237380595828226304199465302519427848319853386308401835897612593674356313398476008316591660579819199734731807989458882504601995647484504477813104200826103733117961980081482766708308618567334815999754020762362758510002491699478629409881692000735854169778482865083772850031242243307909820656280317229308094680479894762452793055460944297036964416759415395847491430679256447635637419116440168601122270114478057381295661302806964356787106887158019955193233391144972452549923335105252164272194963127037396264163892818659317307034292386958273810176653850255839353267969050727179454876026203505498345877719763519224684971438231013341624736261067092838660293992469507663351969334803194399314846766005161085015581975755859722230928638145414010253247435669874446120827670792808618819824265912376303336215901250878440585036323395558292815891198996881556507007350213467563019194003056401975401105360934339856473437417382830480790923834533288125637279346718687368643946276110062314400441628824989410302508184606398421650967422095568668718003998915360470160271789365471882317935163492116459478673813477653890984545972248091783280869761116545459324971295067410533212302852395085405224301057644951454860718976459690929087780132786629435917260467788861955946471297179797921834799465575409116462382427351751342547349103051761921949963921626183745220345887068217534391521666572504453804162997729225942099444171156082956632313030145212141746915069805784482918795224662108416980295118368529479678973087021486825406586594125947238362059675172746195716775775078516461372541256858279426653705633443529096404124213856804316835513995385866808382706229199867908228448264410271525718281739139398899084271130011558945331409880133596630122435219371741981574592188455102886711681874984643655533482308857260322702302420500453800093405001345951744389697015068861473699903878287947677240782433418459310967428802349310698614452597959640906031103891594217857447773818165648261975412221548026931025293889023024951104887530102657103456379171362778070568850946238775950368078781412216296001468781303744331130781675220436339306020715033820015154010531313017279887001636993360424840490839871197771041262017152770097010142008018573423138791868029868411131350615534516615862993693996819989203205835355365061348973225721403904416178832685275108471131003843791742515513539448054905044430714465326301959877164977577375125005804577998023168814872392068547165024561670057664600142762782703225264108228500965997981304732403876200762872287926286050363143366846929334555675540398897237438159024126791633268668664888140228140793441752317389282143549353354276750128241568250700915475887046217108412656151141575938414876493671844849017606499735768777618763012646670480458679242385061430028794579176516627875462092303371408066660720327655144690012358964574000238849743547287452903373838651386875368833547000073906119797287196038283572367343516113729301693390847311098087624300442441826867303017539204983693557193666164808799469650052899594558541839006160411002254374975745436780939675309664441280556766737609670989818609208079618473826985872703082599201446482423372734731610576122815999421134337975634636354226824939793640341291728888764474011751783505024244612054665914760817789418658420297493235680682101035465379600755469387352133988015158772883288340356685178070964517023416339353069830843028914423253494620041371578098353819448828178164800070533270145094763008900786735818059565705309844381421276203790703628652057543218108316039195924255224570997914049642845535309212078006564082168094071629561774772410032340264007253473728045091552816543495548404212856006567525391576042014049567345730756474278510104502812074617615439794969831371755925291252710400197671623772009588734381393136858024660392569709245589089487453277544643509913427746878239988915326120369398120814121755610458867361795207323918281263359362305049551540696750260563797285498282780632358773642162109006878235945750295719835563795151964661480121390763703493973462981201216088134802530019795761413352976302844446879633534374392045729496019014338657975191785063072219606921702030117610566493202944928842541140575268567098388527260208348124404117592955541971786528223104096481641890672222930747372176068223528869053105063642721507293243420211358118985787932881093344684792001731076906156811248975299288346948522395275072027137450658132691103691383517736095191430682656598194708826378737372838979872465341435351156267010527148255921875795489324437552669564241883729081511526487433946655828676243705847237523899058235992108090889778864139038231757141125529829529611536530608400322185453622216727737051917393197591033627458315439396003844432446186488257599377718358566155483436030800717756199397616136751104571381833901219684791896693096698926780178323785614034195432947648759424560090108212412536283295133720319092579027415427281893745527663298488114447647100475205874365284768830205463482873034196055416511290064305399097155836538199217816721917168198757194480949933465389002663666798825790755283491389349767327167774767824268372843462831368250745465048666260158815189997684077195953836496832808900717714191296561329865181236815444124492863888090969129619476604961240684336014840244880198049223441803893401346723497968640129980920462847334158523544100817577442675776560349732866763072508422274456713350332109408888690927245366731425189560093796568026110347286387641304752128252324817724330836569111908669022128284579626420377400695390969407094536006993847085019940972439259489865742943152114092761900284454038070877512113355570990814441842180027285604437199812597828014797219789239319441451432014409772436554759127865725047058578820389467125231983388533319980838205479414616063337659842344650404894895011802218230667733531532353661502913890386408608595552909951733075563694932558397184474200621417670331774126140264051439501177595962606557093148622400621682953780128028766704766219191333925498677861513322566162319551224388396896106738458798957615048647461323855984064768010063272966718846268697470794167539036731659718912362887886087202656078006642696924725187780537173080986856204584011118251848587669423611583384681923091763543965665343185342287817454440241542196391235899166434918692882411864993088613358063882968190574298086980976761113759444427877138498438280853779581187846131387839608958136197059288414573861844628017753368279618849652201285098028487191425136541116119138167999613488713688756037765942030105171915531781626844887507337908705583867783884199963351481709045049048580206601384069902451354731860422118122547683862347780463935662768866615817276057251953364653954251719368132277529549257343336158001771235251181867846767104898657202988132243712829862500319952832070697369430912154630347895727139547035273214705514657212567704270724104234203272906443454186710313938975188241735815699360667373753727577178894936050729118524594812630072421964472188109900247495578188126665697856361857352453619028678048935760665136369248418249208001101193931368525311467362670992600363301511977187081620072190871861780362081074829684630861259564700847542851306422752693656816072821553158659486245459180067995135092229358096062194303970354256164709178797463403837178261640815135502738609035345165676872693535868168827542676521561652332954462356760410138912810948077698556108015551217007675519310079399142549437489738334624578146086954695344406302702543631085969079866676228462271275910424017379952756579895560134365523433625764846781976548374715415777108724548749623809585952795697022338734370879842559424710865852260798813217660087469907482759864863939659205145895347711824435860264026090002789496462811120523397199301485928743607247998046898599229929096436469055736412155818761132101158177447984493549614854762741310774515327327610748521736014776683041244980642136819176954564938661638229172830793411539053149998733576271318733306187404095554766863943852085632162896745838708081850804371608373875575324712132174541646522580690607280994585291088989872255746390571450216822126995963388999250409805500279901248948471450217105275587375535450683487794881811651336867922969685538166524554952759203481656393486398980700703048768997319715242447811292148023814882599022784942219494233395670281641732957359165614007179932112821360380428684243174849148903242009162678390322967374094399844502478672842307583522486727637514400979761842262534773512003316277789816280984331322718201901075185346930511002297943640442251589494879564605949206745219712479694271182281158320205698175001482481194831358406632880556636918055074195762886289873004060711007373186613805344262595186358584810612435886832059360756281459312751199780153369640368981116079744813654505016010188508570730649472919422652888787360542979031844247439149439842054841209918069553938482856755353773321777750071606639629102100370179935110484770847720696911358135080175197855788055772336041153657530282358486750777102605667333825588753061746210812728474620473603198067992919155825149167980200496173876552492958783046079893864299298206708287450394069366734536603359397744609532423824355575528224100573597330888921138694460511750072912584545640527636052447474336129956301032990337541324457281598293625974710986792316181284182845439548905788431258421622359204101179271712850576699425960202788677328912396217796835524749764407211093789767337180828418365894816987196478697762224213230988678895773525844754203191806994033663569303464163377587384186830841718841726838318138115754591896829595763404319040976037879351361043475904969559617128400036156681710718950171807776271657771077455290552275060689281553033150294280128486715263333885997990410336898217540173809274695139108115721379947314531860520984512281579824688171297137434468550613276008085676975244987353144070499237599402488548556372026059268177571761499675741628330098108812467293478142475719236101352299458419179027927362018111766723004015186295159621973725843798249460174997326184060626486432559321265897302403287924236891065939865561946419567646451025552901066153744895826581797523837526175281748341785539950208430809694021461229989703866582043794176257989342295065951916118792154107098116361322708622546919911841899886686283584696239859166556372057849924295207328501837831265729008699263088941015026732994539418409624023261086092439155399311065675194011629676048462184214065419984403911708045902868365958583326188016620121118605813359926106936861395607889486078524133065367479146642402094606837063116785323015842150201050675151724786122731751402248662818151251855728377996116191215931845387394315340304300124569047972077665314338757126753089488518446581674716612744962140656088377927516214377062531375491882670107459437982940978271094422736821568025614223493188016769390620402180936333332586114544237326232220539347431960293618507790208168778763763947790891646634249637147436773006342922009151499431247686800842228329931574467928475638295370622625596881956922039929124947753436248634840797022904729205087448133362502829242763105754676185648180687930094876363744695617486022430377032729431230367985305255518088436957467008792280341668167797759632741856345699592390464870326299055768492693345930581788017128876306578131566303248327089021148101182573639659612624073480701981372786049781990263362891587281365718102818921934124637688046767699941944853824868975101005433593680058395353062130294726897930521444807835158000081331974813133276055737371088571717522590089533182333070830385218977239917041820833120672546302925208898336069500158241796310369770292771805542169987923206344606650555830286180361440188199219908792947158954177122669757241069112623589082871038673177132746978711555038798699360360157945451931697333022899454287360483507104436582970862016153299734241011873577843626466910422981117012880976208452489998071262449752205712409020175741603664553500776738380048697373061394620788789929821107535064441485529737332060057006587886116524412334330905619725870239260094195706033464930072171833224916524541996904915800420586060968176365572673751268595184603756063283899806024932829156763342243553335560530554769443583677987443992641765488022625354480809878501923368898219948548630296115830548349173196181427471330475779392329742559135530552088146972485212404082667516643407335642841353361882946370209466650150117308264441305926590037731869988524168182632970888000918823769846994154284696727397965147341337911102508699863353334555908273245187630649047180899068279222903995872458933419896569241958258175580418143913390917769518864032093233335398304749911178753966028820855587315483276765290177777596264995016626395020319354274329553644995257021141142973658134279339376346357701839900072096687927279917649784836465219908030115135413784966705157254993635021319717428674959957554497648124196948404373594437877355373206380574672888466626460097055459316887651013493685961948450436738452519377174957149846069644027649410589386843567629578696035186268657380136043476128351355229346613388804537362008384596649031645889061858470623690860740006167387060051525453918661095365607935335583440205582348396771853832063064794679610079655685309582631661872988573192457702015013910818950052258450141257844607402411833218966303069511368850915779853713409207025211826376124270938423445897800736422415822903558880918137178996631995683487647983134368690959207220689068696463725324366302910715176437183573532831409060659446158239543631126231362647877110592892832353578216407288420962569226883588561297697004071122875590073402136281597319208249476136835712815367243836195501321560657170158272692673632178149082340940511997384139629379006766756612815762154700602827097516646988420848454239035541976055465617609435692626943110796741133493435372317173324158159148632078105029610312329452764305639669151090727461057202613224284118315454914005552002926924754975355679695142045888817894890686417218079996207459259635981840695305124725046254269814438871660353259187124722316039158978787817646033890431102250190916544352244942912737299911277329330482503467573194728578790185686546775645653215203979558652197953722673919840434642524092329130401124687844936536325931666899982312049128018262260662476134941857971206839411236035105905847029728856995229961969562903538411989870353649730315017967940646038070743877564815160232212527378091297154381356259125720720988471141425814209893673968403993435408488714404354711540991126058890977030756798596566528173537477013874415354037726220625920580927825439183247416359910536229364185017370669346039501155563484393916143602444908831027324399518098233652126840206423936036946596265843875623212479694116380289652922961218692545291824838396885909775367447060911107872835613321967942662342963414358158128347643162604973654115502890237299744736567455020003003611348813090568990186814311904611354111933219085956901545978327029525447181939512049248864151379088896568230991224918098454107948903183038396439700123653533778288756154727031997185002446386220690227291723222762704902278277941670748215444324857396494695932669867915230827947003378279222628145276071375556221838021877664339843051974406696676888208731895344266015416671380955054375561331233744348638493991099324709138764367395642795697695711593347494323437644631952305150610760874710345615833398764014711664971374193644734600498717191272592973556869804081147140299924739888646751189754311770389622526816063300475620238356371038893729409859847846569070959244994345491253471640033241926266477497205327044853177073069039563805175154714623026626460334475324349394378887598903408619758314293117373199581468673958978573233156445405562652477021709286399833080992068787538834720522165504988275490093079332525937615831335190263224399386785689844411250923437744247577462856825092769100066388247483651508434534357558048715706131691200809191230257717970197082699270611951251127857570170414524391860005805748188387206925895447687888521427117865345605653282943032027394379857578148687685770189645007532650724298045697972489903268822003667630378206179767788946922284010000345338144253399173727794349093484215024543921699919820339276696288169014189309798460692631149467236613528846761848459561970377613497623070985927518385248701673673550438958921910587378909540010511086124308882590438543594953117640379395952428721469913382564670344235054576005648839591897236956246700683911057802514352428245322132088164396982627530070017972343574283404233065420481720430231683071103225377136043572652959840980394133142358322413835082013828615515413940693371966866089297349159768627339065844750052880282099771630561444069871918978170587947061052156473657218498480189940193637878016082360721268389154910568355752060067128457271402913956148586081355190107700357495843256688337956508805885227447688974010946225837560323474612911423053541532590369747713047412278919196831219394371813125686846186828239591018194863571803193543518430504627430391403634684868374150242938684829714458624390154490803053714855635843002882489478419791832608231131935405439439848929650105234586987342140490400245636841358191694322233101902701919470346726023147861662764134498941194830168897719590036230339148007815620727094153070465456123840262928882784583245679609472015209818129713366930482117371944417262560946774934399130877264802008573501281099299565441411437009054590384796551047985040692548898858847643292224138987810503457954723176738560227187106782564309840761120778182188108238279909081691674186177375538607456089283796631309674277346015737070432611163841837664053702196438122339674648335557157853095310354170702008933055213624951585979887931012974935457675273824229015922923365974622745730060906972519160415372814634402526669002410682220116880004186610310691551559287305358584239700023395875863036758699168391628201284768102521504373556710643458377583607584445788818945998659925674788555218730055422143526672924072167374935043391659677230515257459194674419702590486590282132390188846707294741428342540539735501273976028332824291915173852107360192895291434003853613319461849160018120861607432157913785656535030188109727940565849775037640426871886412395493329318360602510169741465134998566476508426934260667915816449301336355692786438673896756660502345274292431679593008920134032327542675288220890730384480829462569712628588227429668585301249853084985999540392127503319545241115548520756629035107583333505336866320843978791298876928145530773061422694916728111928054429474463228213473849101443045092391553241895684358232966931841743573433746663102732736860681400771201749341079706982408627537735590710675442774209835941570825183527310008995038890589385410094972012480654866049777639054645815986851120374850621851473653507939117293446312121870222226698872591072322468972911960982267275625819464815214083645626803177955956803143477085376447895007067499899344152855453340824051217479801994585854587755912231803661817807526818205664839340332380732150472935336080171912008825322544548317396740813191502880112117105434658416455094969770976551088183838911529355116420173042955261931774055551727641669019583996877828251234509046281661168832959223202543277065140521296141513503445238627508071156963420258486007736131529932517755963010348300463836423595540330318537044785678514362000636119759081854390343058605023372738914794419144536727572650961588517729360684088710452289253531256547606835391613426730810244316590141729205845256638449363851785172608030573588501664615185372409714524663906303369603638903877659200546117027391299697092215020582805467276603121505024006564339435685053181720671745684949058999404180634577085414589516152865633562490196039484136490713497723053808500434129242147020668838648292525273671591249594413064437570877382055161859183154812894088688628819258963268957125644468851835286366656316827374062201683116427155145503350992091415945761179425173693547868837308489273699109425961454810767233093034150226908695696066569885566177897022083185670971297743551099486495017594565450647254922878990151852631159474408368318358572920241623007032597973005599831086759942589177495652615693562645991222399531350011047971750596331690980006871448356841427513271268438035366026350882717956116772939831186290108391094547901284359043032572692902503550246568690061775137299265518761336211366410287895193838912924812424573570784354460300349526574948940513253748423793352029316196219950887318911237190414531666917532354204634511571863875327801150995330689895469265094815845756756322664898485434798483471021409160504950289057261242580593443808411988908938801091939695973504060021783033606000816958998299719210858610905537149074851640581478929128893046519908601218518864142599044818912702894110441573861232119038604070998692196755663322917086805120749253618958979650188286698789054922574624838370851407592403289778083093954819370374340384335220184767696894229335250971412331135544587290008856525245570110691015105386892335593881587763112906035013765434031044798080129454931596963703181612719830117797608315691616467965775794812737927270476951236603922940958659589891901541084874699802579088267452923171352910640958967013569587840361615556857973986834287376674908356269579233099330438191086371798774809014161471777599140295314775320257480046093007149138432979328075814752207554075214630597391956563987228394289978780225345795821520373438368207063787267611644633725350490094826236529507535830112006627793767814456309888155455806936175251381673084125415158553589259701840503699370018448192621956750750700874538296832149304165285271345391412738630857747008297779935991349266713066303218490740798755278729230192469750340525777506517830330640695395577424400346492144045342060543899406239515954264263322939170497590473905609166476312318964153871930514153867431288076445438053069169537629379535836706337501369628669585282467036557610373180756608358274327292770573304026714100287433331422903430025227953391030885695625933141568384770841832498201371038343281659987030621020394789512100574143512985822828487781620409312977862240985656274127038001857650580465663723504526295047436997373652443742486341429227648208259577041796155690220902028339987954883478263768743626817295504949278916528413743941637034347678654004580141620659455286537495861342555837670563574406837684969130387742122986531351774128322664990839459233127857301657497577758049100157866297836817333419117370082030954553861933261988219423562904930901596445240799637252834378842353912527285758470021527029189277863936968001779905297740378161665578571094765057639752513586455250918223036725991014415091754501651001264224268673023822585812977983963059802417267910900325641058482008817001683116508372038382060692162254911234135387226035330543104551830864527714622148429375818452697608921334955832497179540350280838419453413291284727785353549503534474119125041864941584828997728398101582965992992036599090027380843900815932515186202198724238155706794092371027093754594261214371767388111159612376588985527056186588306076449074225515179354450078139820253587212576273396121988641376836382880214350005172978504117955929176049690330196826892906707244186007502114539538095096468113489254316577211904820426051700200275792036119394143444891615825109188475921388468995872907261970468786429205980384209728521657470447976588334397134483149863725747426246668424445732914356145274762066767872446908528935270302198898726677865900905219911183596125065209882177833352561113894815169060632322336120552967246289115649697493240837644068977053836763250597531595472254315696736941777205878522927075792404764270857988366769101613650455564503965572883238967530964395780299360924220754289161054135568361116554535491777022097690557674632547993015103495634376349518812780846811659202103391777418361108059794835929327780090721064073298683998157775674178888574086528751144466969490807908388923536459557738972358831655467913045737093926661773938649046697402722223042837086691632140923959419617664089751635934577333482822337204052290136263720268070725263365674209983294092750698631096882514713515150322375721532270426636372428045705355679932010292797263295723582438407400417900720920628942019958979981477760561370226931825866228275657916403636994416973497355891638337136056215886017893813662510976959360287945462170099737469125419742081926283419799946521212686335523993253855274254394803366471681687400389211573847919249553276489823592500314093705443752557883077146513389930729607037252778939536683467980474508557397524961272650067257569802304291379249285285953259769452759880290561785264747572284905733109282991731067226648554982665723590814974125771886991745651636348262757946907475654398879207472805450238013478411503257009458281076995700007040115917995440545736372046093762318246017235130420904060973092395421840888818426542574776389586768774536531711077268821048641219109618152877094902215222478804339071766972542423607291302690120749513235557088408648962716277260321218359548461069997007918132777583827378018647800481139122206122581621625776858080105203044149360954277395318935303004849066755446084601104982161124345682877322514664408246270287269379357848251643797194885204516245592617149894000812705517136526145645773874367920875009414267691576053729436312897947873004804917246591637593290252775671315491710608578015874686362930118800544247150528984723727794587193087866389375894013035259700870458431268789282581819287499924844651308187486895845768836203707703610270731207254071767269848038458444806278665991267055433341818787973509957139290189392400200668590121545522552972250496691969489644887710147976440508796459458053494995790147386686372667880559803957501879539644020640978521729915811817203058805896409747410672594493146520100144631959999210257961081023150110443625800996267426028782920780177900564361552852025505076671245373121271724824357882498077592104465314804687821190728973195575247447629038875304124906121025336197362821174996099900726476003542207879808046483182559848620301996507040609173035480617786120944685562896117847279601777588213571113391046311358922372516794679795594019514676642633107020862631140644387396136761341665792562021586744285407618572766434634882587714412285180903216003682182921635089389154194663196715966488400057603015715337053086501917743293328162105688959803032418786702039272310051748077428921601026504904538140966477561494663341142328219442887383094626376203557890666278470728251464136253168334609174429513983966349383875292253090376383988963185853465796385690422645131675049221070503490609185794221202841983874302962151775853518196812825991115061252059243113457782713710716972885750520531135616728978502436028502408432918757083813014164059914836376642281998085576401470003649239878257972858905611145319412743247363906894783169788120677662689692369700134421892048044446955293567961020866669160379773505495252682098756506231440385581652347944003054973064699842852981034832639982467152537443930618438347931825352605178787485088037035382771343357324205203807138790303876206457588191018050741098388403618642009652550663615097450023678847339174075659150312021645415286293092514779561426917283271961352008783552452027422302308221762907744558463219463509719366759237806416205385580098853185061051200770530541817370198586853375000050556293579102873514751834612710130160659527359964069479769739319087808069134359083919799969002639627523327305327360382313794382953969341843043381316518107019095169376263537822013422943344114022170955785125640556425078890372295508559161651197787166935230040494465275478641037765017379782650937450200813809087139991745357912750125180520859881501330170417105440063903690925397092169099492372340679678444634912753447775033833866606144157574008339886149101807197904409877956695843462514622904469126270811379899995476197775157227256131769269539933702642377121785104752589607135903286428362935630787797951909509723326182334061957792888914756758306977191804280782895011533253119074261118122679076196461985003448242662001787355021580743487749706068374481039174617232904473695128302453351992570421338597182287894473805216921904981873985886269506685243160175982195777101937375888079780711426157039468229587975093454701653718461745480595413572209042736700536708707199909166926004575351876980112163495437196308620985838423639619081885968756917250921646028028082820260174843246483565600132272858847361959472238204345271721645257707018950676813288841510564939865229585103542287873288098442388948963668213193518417166519605454687096034259900392555420138181231720285406208926034273245808628398813737950613877775961493557947114161353863571376093318807748312636846161005840516804768928933879068118530593074463965704077185426152648326038789452331186646718320146327809544326788933941400767102829499745970092067327913715278102579087737288589450246610328976145373626272606920067882110673754043724346164352243760011998465180232172334627994660316118999416447518363842475318569741505754128588317212111517667436519413013697206840101661288127250067671380726425171660770428618365919199017015326836372025829143783899056725153005383662032917924841823630143966631073134189412175571904175171674931482373090081810557909646130528649000686355287805964413838721301690560689236700273234521916138213818320834511785999665680476149332557578264855993188891610799387635089208177605565272870890100649213533900123294767221562138077847239811990038220643082569055158834216827306938871892751585546249167769619750165017311200576201844129324767803961321884681646193046028123015881557432702190022158577380888856079337303337007950964048064049434028190751850455499607853480230519063045342588985083974455585128178402663832187902821723845919461673925107193716707682353991479533679756233263679984495675444597982645015567750845784903415569188390955063177402302816212875613798939928213490327533588514049658057262990704668417025030927237415284457224877963438876837989486706377381367403499865824180189921605188748231002230571062610960585615691281053383608948071602539638693451945586862238483506863290557936167917080319376773099641610065287940686675800938468097426365462149189867969618818387124384898006084749234253747581919315962488778669944144660234539010247489034859558322954008354337257135384838386204523230995096219472488294356058221729298665164377483859373631520258297403652933467200326735022978389865263837101324359464961166202144592709759528473714513674788655222601863074003563793287957600125764567705830880052884095566106146706964750529842591976098812711998509546997067617999434951353660332051529842394758362285179425900731608686801885677148462584339071213586509312489240505313700806702463480126215583530000461235672112869053965561298813253453925228530386036854794148492763840657004408354390968851690495938834882727445868384612360938365638032894495835296268352136068335324466902313933354690383890428768364990503184159977045202508642655763546542533721142655711089071767146795452907253559094763919348610618623000124911345290680642395208530580168332582901657183993485885051995291900073031734773188071937283158522221475172385856683324993975902852620037874951461617734969048139293828976648990318247032538091198883534111698656395075150539972958908922669593353986194593150825095387005971776474328351420767003368533351818582377067117967644022676942818179594827804665399666222724932714075365577344435931461504806789617881161966106790832237583887179553662563263139026391910699263551421468275003260740959667583757453598971158671451139589849045928080628710236611101641883346006008970358120014451962797428617388237920996385019820210690487673072376304161506385376517318336814462665725934185391062269191385482998313982924839072175171631453069451560942852516951156920355614899582953814347499723056311855719018085472430685239596882351031396610937776147092300742111255450211109187248850046077750755643487037097392086732106850960959214406104058846639562308353289348529693470136183927827851681747021763652930119001957187481896038301127023392096830927607435077187390437950463222932348562281134428444518991979704637778678629317410655460716763843383451239969844475899877330108265366234008063086955462914571118386467163908187674232871563771053480786062986579045839264446014673342761598444747939550833323316740212010630209096775760100286795245972042118259958811901842341506003495005641059840603917146149348936457099566353794341496951881828702424368938706972028610509598435856388589148718280329012481734595708905107121078639459337212666881886304781521369837913314440541273376136207197758166187164693687795688642843126290684106626317626880095531479227384564193992577912925980919275895160447279152681252416143919047321371886522345193582673583049678463804686415913172545757816412752602002506384474602700201989740605353308287248301075934905078489193249735650459069092263927801680980601716971585675037069713096898549145877769435790158815856564257485956819454419434218835868606521977240784308361349836128831247793927584547582168196786447838674258062560450840381093734186969028211452819864348144630214252235295029759234387772502289101052303413135584424613352095405730355882737671754153720561411356333796382598869999559704666435262445480215456679590018647226219805922302875903851008388954178493814659266824068910569776058955735085338487936910029914113053802616348985752686996550926721005680374494465484896633139791911523471739770738437888947480116317575054499347517944383748232256883209260127595130811673928853364037417814502635768871836385618044769356851326420743428969410192514508110003823930767003376590863209738785502386745209981482315465782438893991773805238446998411372806536068078132499203131882810630972373849089531968308734884277056275114592210715848961950682481531814176407451759620050626662512230451751264824103828572303285550815960266173495570137284634142777301448763846964265993517724655680492854683388981278866117615959446475426749924908342163513534360635789702713739901684961806353918482236502426010837217248896589239030448726395349147253293702170729790139569083875710169855175945051799439910376429553448045332784118581832260326881871608951738253003746125384695381455677000225941942681963321487904318111462508471740030683626695960913476875777228014894636769886694385532268123794827738336649137160115173404594845796851810534288837833722960813096361265191340430458392792290224311290533331453384394193063503509161981362705527401131161780926567313065108670419404985144563372171315244654383328120538492494341745560305208490016592907158526492055527074639065209550102782273593499493049646800939116817742694672691617112804911202706180805238714668621502122926811502085934966758343852339059177431664472584302624352252165269745674833692267270132141146548727194044829547729203845361748509826528229868470078842873500668092146489043673843761448145357079149607668636408174675179624824987129483567157142663383178471355140000693941030790570120758866419613961548106291630730031394832022879821351778465764551913045857981992596972962556163418883166437465645077948374832920769641369629442771990101832061468102715034686167896133366388066825817858844656792615248514752062066195482635833772214958023980704341768506676748928740169748378800680295210911366003053429666153324454160100083697947479189606615311737154003211582777595882621316741776702142096196984112289140564642977163459686710143711241178163810830862524539326235523049566238050762314077519739585649237201730159579027710401376026903612908462558827269973525767778415094927494512576596594446771141734455373387798877570409307329901707557326922221173649656238368299466953554556599109096757186013282435831221911082262741330339047202011271991272626068197164638153867489161855009987660008005607279747240126391697305203437020977842891891555848695891555152729429719321697386416348403980103247254221097288828947361628368281476244827351890030697907084209259153144369041397496010043573821165958753048796108339162904195662032031633778897185213239702361768831761255397444785951974917686220823932323834038767738317112043829749890409955818415970919723261527858720436970413412765329975891507950585959284870465537253379965949202360544520173348719853317420043614540776300477459130393470372110976510323536383901742154743362297224747026489496142090236185642946980874535087027560743143175723858805615653469778864331814803905560991587649766774670776570765419844885782298251950559656168978673282919767580266799559587273571624549647942872049275517026942470117548546697738092983893333339478168654467766396641793411209603557271695815315723424561580430834511912289990045797013978921399562187788003300492805653440294356110620836381112734963564493065121938263109425584184779949803427210083731507065294832012849022702838825062000417945589689392129928893905892494156143092920259586593506548388393911431392160542639368967812776132812468550529242177065298243108942166724578035876988954840225258594469153051382316443482009546451781696997080550842492425055191052633042400360431748458944956247884578360079286714403903851825732045054832362632087996486190011691735258571764986897062370413765628256563292304249336169211327872197460022685626106525281845023829153375111731515508073690241408785452274226183564216867946633604182218648415063364413063103527657660365526157177843488679477874140585657670095644357199350300276581983893473539873545863415474094745832868767141395187510298389046432554438311897142540209702757020564335860215991233226854104840782506029745956560595544138984946510015297989342086324883332534315164378886342630973614586698926386870174991967275292568827915913604711018038432346599650680478758308720437177471225904547685400635650739970703738735347953406997356652055230983611255845677222286797880559751467217146467893116512627011762745491653889062670628119773067585790021342640360727572475991479197902391792920884970808530747965141235677905337532667223816533822266923040626086838628348179626970868243451873017268337572493798563656650561372414368690285626789484793595130200494367237232086195243111579251159847674987555179814598291487149361624855486136449534850055392493289945967156634336604806713212688027222983768369101719083281899452246293519713564627090922772672236946356248189721711388820561893407972769644846151907651240026612809455319824656567258846499356076257417392344503614666037080137358302866918593531990131359674155443060527046359432745599728265319744610023079376450422336153025991099098749822323270711140836881469901691972323763389410986907388372841948318281289271475790259326850176156816073465903321956328325878690679038042796718773454223591722274672747250682560203931437558707731838168668594395665548174493709145485829575451836542618264452946726032228962590187414335006289477311687511944350803580338395794557680536515955335503756465324912326026977347927581214300018393282445187578231793373167617368750342561335438342650386763279573259234620523303486349685471558076490755627095187993623337877833008018022990204804411299378094705990198095270309690281032079369861371830472128150386381129103394712941245562992629651995676128611502453705252366111715762595330913507844142848308973225643672619087961848623446725680660535929722391905058772851552827631321016063944046045626317339540017993621224014817045198125970887687686835867879293230048132600429894396702282211390055730615984479185796018116102874847531283112605490669708223584766496493383450562616381044840572471223379807690341074924274787332544909322792735018880909037266093951517508487684086360622797274658467173610270015654944177344801674614018427217499873500749066281849761174923745973369670641176881275859877444397107841874714546522129121700416788847668533870590698090746878257812256899577753544619246318151089658301992659381532093178526286567259386614110189918945822455912326729314934238837395538279548954933640844867239134526663232470980274998526332079458469045012983523928504934603850207694321437347826357046315605406745317020257067226894521897252188839965744842717621145634007202826690705025205175772847115145691401068311684869380405352610506001584490426876664621449043555181226150828161450769704333121512741212721079066980076641387481289225822004974689833738607223287924705660313148169817285879375550182770181461850372983484477843670374266273694464310698058557689111522259201611356335895584460556647608041942705273491768324811862787742007745734282363253643420776191820297532016683228319583551885055240919744493336263451539302380672354735793897363393443589777108615064190476101112066501117170839743899816229689030894524320609423272078183161448947775261908419888899986069927915122186549656251513241539821435661765398846111163795017601122439654448296479676758952709659655150336547151160500659658063255252907089655613637368908413546676783339433918461754632971295398629651157184373383567049548047641286755028373490629033226815636174449219966758166123103081453428716212570490461509239570036085980277532709135319937134966912781074863966709533848837090817203187902984439714209970536471104346275553730179645276797021313297202616125604177543652199339108792258141647550019248594794623559396662499881903137816975537131302400738850851101021804872252348780398247198551618573154026402251001621719476651918062906621752547257079147409970759981271639714813422155552664762602239971093900495890634813706270420831771412613509597797255284151606885363371260021381869627605699973865644467114198897813510052337328024491449869011921765214835193159168531599156084601389936012992803398363618011693101879129128896974832987158971631275499346075014900700273237295864358291542925326788373504371976536565999978091253210511053544340750787677428981690847968377895544031045177335074650410034005810050820298490447423579259925213863023987347942862600480667012036568498260171544170217425401946692070355363043818569192458757842235114564225462748395934936763127770321125007711718299349355068090642345134718823940472022942688629318795799097884320840815310607909975328575548279141037025600999774829975457568939893746727674061260466763837763316791300417103638676106594280899555213748821412894541126632254269479459830439859176386147432488456951540738772807849027755583614226779478289454299428304196940750979806067328042072080017126497359865185928611294311590098252755950473053734655720417397174149353470022080344555043091359068732696667312959108683434057502158370153324788463527823433143858023936180808412579219359652251183505105633663131824981199704281058016553722631695277880807649577088768478611678955533956330071145791602303393955702370160158925859611113511379902382684794798492296726907348558749037084553650246236691872207590405141497007185998400185412040221981414386394605402170782467410695501575004036582971960819500890592095654794925626890315975163807118013113913196362820801052461425684743419212674556159614905915817397474715256429528695364176329408579077288440994393861964011153577819175142400165400522764397604733840440122576765898057686500107720577989188530206600991408616567972347199044121366308268885574994955942321584140588007768929956846251175137371233803327206494213215589988770658719687317408857170247221067843598480901383800279416565839236559624909503270784983911405169482696271313167899798125508440205469873608276846192363764931793605173398005900982130893254081866291055698937661731721063779328525384807897661088702107915072374904188013300519099447794948627709069297193759607564198258457493104996677861672390434376032853598451845803913219900853286144503836687980078027426933428783955835194745225675391060272739929088168154809583183227381557059599410260384005777797202618209965825410558882926930573111989597363987574235361757478874905271613802222495533726422697759343133793420893615625618464874807403100120827186088745394687353441927237186362274832866043583130360950486954320871882552308613335929040610181097806937952366700281355335966222134909214277840571889341735657136204384673108690634400710687079618619808702152810919504185942781341990846298891217747576229850741664866220299815571501520736988479654578417224913584031536549789247090176416516929912716772444509848643383255107594735433696112007777365842762622774887668671951779972242766016339780028290641829138983283441454442730791602390597871314435869862108560274353915474304813570801039491247730821333659773704527170555351857986559179311051469015064008897623870773516650864755864407812999073284145128454193374779789736383363612058570411090562763735015518378600484470017778582138281283104849308792180750944844016972676085995839938433813806452049886300648232002948579216592197411674545485962482839385210366533021293285916473980725649279749192719353027972558216717614380213855917211293303532430655601244487010339587350237191203973826310785030095781064894398796879627638097390572072893758781920002647415829362916917567716433913146022460696550663932547421697499841916555174056180501376571271101396291550990325526520970509508766668309665479715141374257620305082840789944990683531205568116087924131445828487202443415827676197529716521977649095604235972765779725033477631339179617176135085015186492851571299645499665927647402105292818267006268723896388998941155980929509785880268663996634855388150295793715738455876125400667187783889776829748449532895801430030995631200148360600910494935193607833472925369155371547049069014470935478175120242897270359010660443125117177628755117437289472890557442107150029412880242696713913581142130479312441373387113423828861759487708859381783716133065526753597517347849156319728528221479019016452908314768924804042778049805167256590556311995997458363673700219479697326606406597784253803232881749248584228649839724470098989729760859357485921588645465617315077796538418960170097788874702714699015972266015163970095838970242407731115906053716289808458492512047433940449280113788156561282556753230908446342374410976480868484930579936117960348363485560356106653020630071762646699008300526015256735897091427861333299352313442966913653484940781332374583322020748527685937380895462579171069110725589479660960380129245662151260091906505853182138952441266100089423011583326800212304954661193076816441225195399151263722771403855247516087339698840499422796611288165747225388007957554000001407332060618629737802056119594221080709794303433702864465416961519158462835527250966097211815383919365618954892533285042984705895319172313600779378219367293948543697807314882346733348794071994081038194390481519565267293217389110082583698085575752205992435475453348095581183823697455238664152386102968903743352290894639603124053555774876000551075496559550482550369235079989695247548416843695536176434771767943674051222518111302687917759931710463838647144759809757748580525164711756619161235193577540075287247599853298699224155993495899225071880580799072358559494865443283383249909392167359133417781420507053255336308727903402768803459045729919619169429438037868053116167433894914900269389827936207768641312972134626539608590606054845476620319116352660209212927993892629979787476991209162120943138163226249833699195968576945739241343700845753999839583864447283283387246865287311067625687872413768892208200009050462269888214081762775954198113241761164914666910486190493180287736727485609753545374995604780017302798204455109732870834055415525311072180251002661159987522764254053813077942647513315070185647362538551508061473456252710883256412528102522109935662973016604940207747164698504092371711571362429155075917014574753751273645604152961579470254265846484043400482977381650934256129514811225206767610087601507325016962863465016577443687985644908328004643819339209087085507600894725405170120686597551787804370964924861515325343286391099182161468531320310153969602843564823869226775252645007477580053814433021782888539821097284861460999206302816762661743632872166708060575926097080079242621098178564893721598625616571489026970985534060139528481734582742487930522415551982128055204820906922245710280498649297945735885297947590757791632957783829957898365667305518655057356030443471975540993748705849327314439282930150092307054788106007161042182140893597124880639798444273561098622568748054638524667316737905679364980626670906692233730933607406283073206638404890674045207171485047772111470302485194959444204780640335830204252079556647007564950552191770943085564380290786749556958144545936058005562280988569085359230688534552907463149460914232110380806836355938081961503399951608642041836557424970278339525942824810330553890523094383099270400788529203559941755772194948831873445668301210193590909420551241689994450677720169812757294296932197474756012501221216242986584881029728306445810628565697853148640624077746922908993670961761828018416884360285932254588042305501292037189688899991545324024607418923344633269466545998800931256362828648757632737685271452295680219336227797741067306924882886601420477591006436331586230590115628477492247918841211069444694488160885677584460500615838444989784817180949859813452442178952115470165042676068512360838694203449672392062141131650171274666351003032103428834775255140824899435064753227360468033483130791849556209643232181902580354423734541104102828698532431169929496361975351038521643466972664351733187765949174851230431913638229763867339554815602392826212640272035068937534497182746114728873752982251335280076494900565932179435258981312412891795183144453061177138324057480406682001083721019750134316560507247503286456598466848441352661296039491675375121333834304253040772145996826800413460881168206445852803446673739428809530933330590298016317179911319665064310860393486915999078292230095499446617974580524350763248826546414496426019880344224855589957252766142795016471998491147570206369541029440871892274238864991775376814832756692323899796039725779927743698014399597203485744431116730682918922840574795899631236980758364340676043815033740764690707235173547104592183516804257599550422689539138281673212927374502007290348417675243425052376059150007540025133228325927294090308612345977689649360212122039588695394116120183844449722771041626411050314857459427104742578857030001569095264666611556314968049535028611453262575578862382957254381484654892890173481336284431477089628032196627867964148480277916041000248667080984637026806268612872385088900176693453435203181516262001022077876132007366674062850271108988482067531814883818910819938974719340189820248219087602081446387605791579067777814308610446256516362338558918599016284171454398508119581697025143442933011486386653389726786398695603603855664803037430717174930853548096990241326651261130607916009231681209376346446642414692637918658158766520028684290994939926954704798623435893801013689276065737226284263876886469803582590734828315249851948088535984806298145980601966555025188338769327706142587215191136704324423952630118048695294752043709133041651413362194092314024032831245380467952053378474600867736861838184750771279560184460628609668483142347496839407416927219884284285600417625765004710521600054451227248691786708599254856989117180102077472213311333064923633133166959631455846122385883769560342906832392092955913433949964080056746255512150519382220947006273011501450014007147059268307891416569679714288278831487023065255401987285416453503444362749840057318799275143222136348790134557275934022196993143740895758093897589748445706276557774466646044575820797297530746632365162505348923323911084158135234971178764859957333751424277033697508730042913523434852871404814982206227219420661830989662950050901761914692646709283243381782410314768560161634813312729006202737532981329488634720390525904701961627780610489253388183568469340008559054253497940573341776345056509127650990876001504342755390353862996407633147255308791365080409989486235548693686631098754643290922445651170744905904334423546262209865525711490378477755497356064437667257268413249602574576131074254425227999781937852847055372706286515841601100750576970398388480735677059695092065671777725494938837612900565215644055651317913233905516099595007664844061487965176645219826034042411091025105057968015834096467606826213027446533169528714105203951139205535843084193519061828527901191431837719042244727394764143002042092100964211817514039004633265465866134206984810112650968733990123372950342379903163277166408479015258673186432784537993207492855055479674709559595552435992507083852027679400797117694906692850795384722390496662863212381388564472926874599764535258137968182517413054112414685494682481423914698212653582835911178145405688993191506695136480361294258428769437906002068511151082372374062632626082937597300641614643287821440000474568571662209546725179979848999127178660161651776678332809685518521164203481960161862810115491492056000768379687163028998561157661851082533443652464915742353839181040437445477641153401396354446270214512527916253752065066475550811462462033966893909339730521864899639516186771266292282554157648383386027813621960833682809868993009239764348182110174260478220717980840656413687084892442268955287015190312862402327114358680268198730784636530674389804034842130332760458090972405027413204321623546785339134186822576852708935387263844386941074382907616233553400724069774588832370331900720046049547169650969547607464083954829244655067585741352099466381778979588724772975361951224755598200761633715424757933258578596952461999186748747766377335357760009922243886548265341259774701036216554227775794021175399071795706541026415771427057840220618013690330705775192042450480389579445861463100036235367873599615564941540501885701201342781004444435729210644259027041518481773860343125798824201317745686079708675040253722525340412669947673537206114766026539598714662113702252692797938862505286025968714695163130458025085878181421215399648534331545892888801677328783376034646758549020742784088673456054890507942349456867249730581427129063223202936190573385107102427031468224115871764998110759247927219185900507051087347394752045837996728739304781751601722459640413873379784735885669964202477345390178792884478676616773782735375583430249921204048326777502972937856657447169745295675536037080443390429285744628574059639643829011884977105655691543165592615840383973307888733970641661929902599132114375148401409850929738743905854128031242498006581724967231708117236134433275713913950910509679659722366399512193554367204441403001115703156092060151765585383179723822210158932364318600284915667853855905757228788607029480875056433275231567567117708186090404075388237273821175093038062102443158457436189478493338233532228987015306588720719325169235013905195901351629933742294636420638820177607693964565981778228686537405295046289374671953742920634504276275725764213691482170563319984347087713332413449196421064452648742223878357403776321882219456338125056612431179699337071563552289774148841343176696369199551308332775613309329255673127176722191396174301050151770851451827994206473892591554167464586821958536001814142478251487705307473060883387691572532844826243330957989650964883065122195581132896167847866328583071725693563888102806193909573157822916265095335568443778600762003064487687627832298718057178798878933119358437156211862144894933343561161662990931709612656664965051507462036023934476334688497936158490885645756256916303076785775719052984351096706912571399861630010322965609235606577055853607928243292388664141748379096777529860115691956122113023948994624999026231969600484777029771529837704086081884091294893429363683857841358824004135821323340897950497218379821172195584225549250392243919238441408545409076511470517203279217243562091620082952493522528201859608901934348397470930504595154760455685463930404673067325096631472117555291909747061643667474639528328258387293386312027406237446716210055766065307769439386889294925539878258108301770430801041248721963116047433597951113802505685528171189944463341940402699535823968925691991578768964205908256288364933914265853040108418380125315610626974038189964688853964052219073547318446574842065525835422843828458404689557024947539538043587926083883893273642990298639373434785841277514524106361173482758801961723823028105579373822760062904093906956182872815458033519160870984151186819533611854067991438675697402400193441447221017265634677876130073923893197327115569840601269429921458983123842794827753443633048456125125713000626453459999292349838986932175546375450225626451474681543997982062328145101664342347645059612631673271753533478939672775596948120047389122492234575631414523774826201670398595879086560920311582352533170275218087378012448936564996299827952576181655314817838664901955953695108430924755958914415022861495243009522270394584199934646941028797323405082611710616752228688455478591053326668504348615870219299447667074495918601915682119440140921792585682282703792512788261468883788494549542031563108390009014100917966374121307390285252091392038419011939773730630972284476648411165387324052661893329243091725211099311586790429510264170028112318916983191504308755934098784497054302712639817322201489652080922822155263487008347569421470139525018363092307470083680446515260499119660879341145430787445343314658225701510718076924876793537184085074946473406555366693676804970397026148997409068682072949841730359595946051566959156198030165417466293869247007563016058605708726652312524404674617505800806358381788934734052759598668998604067438997498068052911982498819855087020473116889183714996769085020345699477253139297918829949599729733235690737049463851091129389217516901048417654569384008022011171965568114041717872597092759022232844365466764381359079106850130322276985065657488097322971735553793758524539280683447945587697159333177291150555160241923598309769766128282105015378012425474554412439768694725396692092560073553124822037885636236477125642859869795426232818033462380732487999759081734234648840979516610047212456289940046555777438864466242120350341238811017683681822252446827745207579851857614797499574831332381877630682142321152472073001134395375352924628555281930929259349105439393153847649968796077974994148048873772933919223308728627546645311748217782304151282643125950726203271348543820556969481238915872669037410772022168077208957118501155392167816432554601390425652676509891102831241681222919000612466703770278382779254943921172357305804808554346299288022947781974645447262877918958437161898203831670632610747893418947135166918569343392711830619730734128146026857914368496754770331921291921261514630652725289000013279546098995781510055793786992364103676633566556335243017727787430716366957679747501703452474001291937240619366650313155194698401908549332227078753800009939471466445607625836118131900944865188683583040256756428881282114996044169803133107541142970136558627780080578970488890135525309508597893328626796436671473556680425003976541774020631429384504540966250686545324759812350216664263245320147285498982297125690363918716023897560925582025836587000552030832897740867528869324925951449468306482543183571470299244145700782068026488412545541050784440506421365917861451193645314426338020622080568003098711201795605897760673441375698112912689877592045991092724192998753690171148334932274417809616035841857627309618381300788587966641199549337261329603470883055852345961534784155067824846499976129984726460513864606835608959093479904022651343852883863129278346751409933408865317407650663386153641009407338495011950102821605011322660531624269625815894871968512321373664685889436008335791591210321230512815666471228588109938484486110788088512289681720193718783962968154961308310318956638969565450197589877324752351054921873157464679577508815976912065205471078717599890973992175223424650005278057639733668035649555273033810079075715176374927602685731498190321518670339898231576451863606567277509194444396362204895009194063139891920924822543878499430225542714363707526465942807943230075149307280885282741106675201272575039481774221337013820583651086150155553052349255587330670924179223856546608597387328527395291610549594013786546915427417009915983685461539344834218599604905085286818258193916315630700648535833633433058725555345782956891482540756541936013041884938958266683160457251427126442522606660358469450146733945457858449646069747029709655025734019775187148118528069686015929974447660484944507228140972434154804682431103077824781905681026272924859702142889069843613652945701629364072248681625390165525514759566713682669867370204280818243715397086484094559205039107657889508971300750711376218222972092447291597264848002186383418786744449204038377863546056354238952944100074589610759777499014319463009897879710592929017043617135309306151393029628411258679030027179192176630335218484742487887769178847590442382449314079278034985361374320368114310094671021958134153259748983029203758561361994788393843434408830608479616522476297384327224335972102401167613951168734496749685992404290882191087439969541482062259561581296673609458650959387425427000053669275337812129275397745129292261745622925907471974900109306882079290033432341818092682277444809379493146925485079573160080900277047971794431543158079205314057654774668796218187786305637349551487711455466391392177825523296686135707372462050076038484194337089166576644657292520505603018721604373738777855391913637163073472593093426508474246020021324162063702349498605984958538768536712943759854629415451411967166209235737942340700337578764972577182116951447964846683429422312157039965833259919186388479614729075077147526735776699222912593585709282666377429254524256272205062996718874816754227263971632220570878710204038827744256913326385914060881743199507644689577988519941005022025611320646951696369662945253104903741674603148744904924082563408507469069510737089804283051135405396803442865978828207368125995174633524873951009773610521117436165918320423607487158365418836934795225748667243016462154357103074073474830195945883125393461748832931401513188993325756279049001613210109099347073675038599437950439735017031250198358896547382654239727797664941221512520756762364860813891819358068863027462632302396437848631449181870073906916723996965610019033084570314094349564544453093523211967566804312316447662760181541044233558916429531652501863773781526769378760737158611898434198583872247591124402810244699890339866226403356736015762768162101340997809728503251897815286650508388442828104263568990710935374593086003617368175429445849955546131415539159708401342984794148523448733507862330534274262911797594178221918421156067395599338915035926892251789663627872302050730071587497029647473107205301101098865481889191577894858814811579166252816724673762943867660550706629258600651890213782674465475451201144047207588020639898735005448007987530379940977034471727677429973957151703348515553028105488742402779880727645774199152311738438258513280859708947768400097759088663498896801282943565455967336552537173112612899927731250036347454263475143382312799143390274686130215465281534791231882131340745558137868298132595489062093125221082331727086055114371317142634520220776403328882461102374185056408030559385701950794507972596976073108584635762647986175152645935087046181281961606671898611847433187784113806098426623585329598438494556424585551456481090026703829430662863662936032663910051431774028290123052834455326997857363296453224334361594113483098786241206840053985869464956931863557964127202024958821851677344763866711702643096703622454410799530726701371331426084235278315734691907540334309647821069764281995394843546390763570497548186586768727251688583526747378583352190002662913325168877073991617066164438304288626628672733664266468199674286917188832338203831779153086018793317341099493377962228224061818369412204703275069697204409577075757593695414635435477346449426468958712635449865352222443715864415975975303334830455487432325691506488070767229952093971189504719645146186178459316701552243954714220747738992736809649837653484381896977814563405662254074941923445143678965018704809128774473291123945630839240886759932013706835375721829683397909620349748350582180342751158989964723699506047965120076546054785246410953194336053053657606043812110557671420699926025109384608211293376749535250545642526992693879726843630965482276401641181175376459119555001294227657532054290971530521424767420449183505779102139734899345384864560575993542618124031026307358101185062772707748026643258023548067974106313097634159186398774890532137645708209776267671951761947660981407860851472029743626070180639902879192646695480994469918626479245598192082232764584842504438254005974386461834233101201001250052277066714999169922501418509469654491296172239467638698958911108614320021690561838828637283532225113825382349991693557116286444676453645989018222029036361016636860903092619392522151281619208834128336141168054498320928637911618882151512235260473997415657210196829967354916088648365421890585401534925636805986238861049331985949463107105280156102712382623552703147453894222867729565693348868459293036156580608098081475225461374185649032569696678525367547132957993700645743258496228821344456229823348586777841555531246210793893005584300628593652728123723852678899307135122524944645834290631532563029445109784280370570702651267123910262827140419601674450795875062434953359950632629589523284278419360996969474224042645926988071361095945694673799606602155196294161458363181514106021004546329629701323781480427596863193844353173994844953377007436628135481070606167668040294527112551395215624843308055581712453042752070030390727313960841469976869886790797159378146300535782911097828626274001434211543088089219639327697861564998332239625488414364283814096899795589559061960221118528635748687951750967884563407675022980833489487603678706192050860373849438330654075569708646721505637778809587351685766512541853503073982350798240009169583933854516129852045301983803807039889951177079561322612726331626289221251706049925575433301274076122730536650525321735851609359034233605558929647696623832884139609152817776324590263327783432207939174701928807506534962669862347875025480305684501623094298943636276234283188608324686067044484847675183970361554827625884468929900715959263626383225687867062596988286126459606101138599307376071557134459742316159557722841369014642372644780416259299157178987381884918771881694112119092943329818420194136215584250035107084480286337101845435490213058306876979538617716834418682186454905456510624825109265880040490788357136571342193424598596506746840143059200208597228304978702402655246330542101162554340650926834648249772839805871119957480314257549470044883204185497744786146975115211727574077187435592636831419795737553940278408249988933998893216826653395662506090078596539691649946137188443673398478121435871374625411812620085265319917605846309514719534530663025101449146208167277804335833406033473844938739175101558168101011056199017181402367459460347026864327658624459771751927666533966031299919214440582336152673610984756421620708223636971725531343184797268891943699392432305131919872767605912672804464974187911945320268429156020875522468250545182302170741790788772438823210280068192268285831804454321673103842144831321527505918239102990124469126064109267152253803811768935343414254100383608213203229217819981192705943217619273834104848940545781612725527325160601667981112121985938248000722083988266088679341065463844163218159778260081597463107812479753186670257581414889519849367424221979266774062084207245529363503392463834382411119107544129529885934554925193833557052254326393598132172316389551502489160866620113133097032826812674293747656064368334212252896013135999325131549909098705909238457968361779170920067267590437012299456887352958084170692859528791180769751761853565159057422672035965618532150680744588323739497201346366788735156509446742321650706298836032898707596364311184357183510466690029988811356895245724063602063626509093770902187635259937552997506741497577270552647683742847365469297964946994875074170317572466043730325644951803341381224326922345376067498272739528308916423663595882950234667406291095360720361582562650324724285892340880538282999045005004848051457815065151447368850309785702038958102445462439631377489309973765330183180149443172813641722576288704586249244037681041591579808211712341919264092868697340392317043100103143711384873069281368367665179397140191129657223348537254879525153152419035005535735052283879819977786656178806189066366815211017676626355397805951596235486076379925496338555513616640609929436765586239349760725384549615704748256712356667549318239378584916852206850583901595261580295550623523385371541007890999765923993222459009663090038626971455648412344474523879284118901542259122451625841311775664969483338755409248574492643938853189496073937854536104043292202021671928889664502684191135214795166388306400445123462238863544038487628820321637882556097023315927405994964869833257030659363709403430327324794692165858916090740280193799969642497955935222668668359214660617987617247352746646789216309485247816170679883703927024898522427226301139808528482476348447121181244520519410530785389672079673505103298559304904524862209997121079704189296006732102031471123861779811325403807245284341676450347515348346574276977763645900248978002883169678338655624615254504676994661279519039541745126997347075144030612384346412369112964028318988435362165468861689707139983673596823436987787572905219309871523959159424145200035693586223879072452485469856598446245583606902756411848853545219894946077423960372191600377654246679936231098697545499975485737902991560993001559121482030304609837395851617126452239959016158907731481748145855173179532133586325404465377510578385931864308504494883647979460888828224801356182837085701881816502389396574736188967654987777352568815683028457108298036328210892273219555183058568406143063596604397231255525412864000143098199306760559965123366023001818241018550465463650145028419347089914893411053786711495688329981915861693849073953191764024631147476866001549132264271502292547520642491195748238628160126443734230806100684120150719244885821592423634809096587083061384923428598719027214874580478357244549041005233590691126272336617385587044873579851374304653370921971185734653828477552750042159676419882387645342065068191991556792944452474176336369871773205268586672025144875625586995085862210400057893582428813271846243959764899469077914699776174110800637294717501480130192810945463808886633813940353169112683034417606448227197432431263534300038580096340834873201057364605172331999099560738633598746359266332765088352000596523019272370719628284895428061796515319833601773851827389790644382510884455119280260413536249027080526677602858028700003789445453581451529455339648179724587179324857959922757083090622909294132669118871671513426915516268531167808318621204521524438468285430121556178534368023764481637519745906808487899050551170376378354317720421474007143628088027691897051560139073849349352609412456681038795123439367064567422948891984428127281838685418818184836442596833850754228140365380538721692697204365727150611276217885578103856410426425808656548885842723608937580282341423082449145786306004466928868195694444821347750140194436412218298364141625468124352482996874124475091214823097871196004137250043551635641564186393919755272186225489599525392989859892270481212909070550368456155258949155207344570845987292041327644895678097147980658304965574408562996548368984764429192261270441171350258180827703725087619885942141867271398484753582548657106354446511408217333246274985484656774355448148659627042932781772895223046872295339792063081416054219642449729256470308722777777996445345211576326415791623805049520796001957246990797429781332522155899323527373866511051439976795884218095223317368709911848876730929380028120413930060772386509632136074864284786577494813115455795905180489157784614386651142639033476657441452244081535059253732302425329631169830422814445034128154190432211581735347177839115403077476284849958749918457268283421509455162598683832973077560310473509859474663736013741807970446377952778611743557404306115307081785610020968839058156406123807244000334822982201636902237927175505848729394032714383077971269931616811794529240576041752076930019319301950221159942652128087646799374761143805309033506844858113214441039291505488886589114044004635551850771430577669964947876952423942255680548172301830616861538885739819540493010148603801723148702649234303483576070399378942900734275720791153979721597280032008064924471481913616025485208916623375232909989308854756079619797952707650477679574058627505068043197392435192308259939970082386637904035460931162778654877604320467461173398463294062683416695787893904189475252071039911333284601684481541072382898314147206398785959981727306193816077763489262158949219399493165487837178589245954540352925408552444004820520522855698798622046373059524273528926802390035030987511999987148273514345987128487588445383611414599945299405322415530863355858628247642371857766530448989361202141279761369673869492542399143112845642898247667515021816960397804520453700561881999611010531344749255994494737863450662962650131855298159132004997354540086613925458746918475209525771847702754116211614107233099736380056881311548581649855495497771751489183572859498962804183340744079986234472737272770410854239737090263891010360761705700865252956478837753299243014728346829417819746271262721309947132560018552883836441435018289922331814817119116496502304712498328364801697461745241764019979347831648742011159982205305495243243172119100837214631609128903703483070378934813614883331737969422763814763631347493755365416876160268727285052183615636530037328842055058175631740404090865928678788925362518074181022444335978014259817604588134320967325540737536426759617307580789322368639661448698731232437782100624875827457668807996936108658683222966117997234096576424826859063175757281565127384120597117110192001657612896410850744229126116655553639105614419340633616233566133184619613581522958584108039976169328776820490604986866405949988672865103964698107551500741261414030750953090887418773841645274088735639359401741028723274259981583287106152366756395707528464788039512839638087600624805430348829751623423549138593349832356969848443578632319014499864667348183985560380354048430797564718053468616455074237600702311078052944016157655730445213540725445528978846117531938386494042087347333426806763812924223317222465872862611754357265092271618258144849121153631341381967162064229935154203700289404042542878908339158076674679647731574859296483011451396349839322397705829834741705329001719633704669986268885569415353839560488511671513524513575724521737970873773588860720177201954578184537429913199064460632035257106281587741908688025667639565875896540175434856226856695372642527107194680679175408936814818583827561414736217558159036204172711896040131157973837855649027856614965889331189969719459850351523329167915535780340312063069594256069495575507910033146747323860715638298135281315771649988790037831446729961505320701483697545486140929335481612002556038470593579264988839064647189058631115527921681103516264221884361021021341504126236456296857278642426457635006284196692462237904883169471842207807520457606723433676272006225654013312074824407899539536192709665958056844627532657206927500964614192239242125085182844500965686765329703268463014981269460560099654776695445018874261568012089226384768611770457973903570811605905735332861476634127621722381704704626833437609680456021819140768257942385244985874452482055147099591667147762032899608246666100423707405989875682624068980174100221621424183987532598701991321326019251501222069960503106795057236100508560790819788342457314754505989065726690825827769955301312038254780091105874956223590756816460202628259543586436386415642357282240688720817992880550185923560404014004062675659651337940458215626656007419590472098894119655386840970325031237588134168835733109691455190175575817000648846470935296456073200021651126915673098646932297783475966698086397707061063847373674508283825779718855932969030470062589121024357580398473238348702056584091243667807475022167664122098818656226370031066714198542100037008119043442110858074215052280480862786661176693853653662946553882431700833546437998642554874728009443677102479347449021801073872610113038107727158681492009370156458466832097114725611399587685084045075673840330578137411455166241707411137583869189398907467901748120221831506445791044342706009317702871902765893767811254095369575054989864400002088043112847787267819618489079340262319958264863087759482070360772202159898311086971353726422668872745913751904207852672321194249059353917220822507375035401224284199129660931540206402744488003729792796337788285623803592400980592605484802626547019442787935164037762314640245859321563998689423270450246788293269715056881242524624744541521577097792650498991161542360664814897599421508373492172553537850825666061062486167887514562468576487725741544442790884202456985094368459479828661112684215116421975816031008998468967196126408607278477725406473338160463950960884544204961975654447024875336129200439653974077255279371591406545861711961081268572788234063392693004986015866379640017140483873057940076174683345891354626070474446633271417785759541363092617990135073514814191479048272067270585589325384710195672117760368003012561926404090283226002743153127418956734932005966000514502706839121911981204398627538659066540096842991553874408475366678372923843720951854453244593027985464089779840539483542045019757352849797697163137183801847726566241692601883740114275030239124255941230792508897667179804390310266478620793667896037677655874782731456602218467822849315627173096181923784623765980617452858249116702894087489746608448656090714259355893225174511692253642966700911678713085302964842370351795337525494567954556081035794573761278241654186421676005388710053074926600107172285796632838826680900267351817796388809832930001247403751642091600138220336672177607357632160501023872198218093439902380197389705331769608420146718488286237313049677185054358175937990117697371986881175611193942185287902765002738974129287477645789783655664755979370813473071669260692283375298524108584915631951105760147084093377505074601577504351599989644683416181474039329169372787173234217788850186902873546441576035287857610827867637399478488196021962291930185729025755534858644391419825259198018752613001740036013028140499725927781127853836784225875143209069248816117599742921580566856819748416099165482547583560921664048136688428083996924480861521559780505066819740701876570398651993106076893460235670888871692153619311270730021463457554450444407881230849225090233582985582336248463408513437449093075875719357795340783845243071919780147699460732326494265568952364394666705313003359813189450230247594203059590277292153913047567052574931968833724460644478090199645666892108368913069949492136953238842031122793199651679134442221621267754751987437959582384679632735408240950207371842200775553005826466881084576759628481836630141166632399092323211884270647124799965811580918298442098664411691721837547896102559740734558220897793009627692473899883322747525698388871401161402802572326692896286827315906381288403590327645485116112974743302318410426748319538929279149151994238152825215119461086772502811695998772585692118886007210905026104068674416478749329018813830493294103329571304510880857428670463149396239274608903613438031215492014270291947291392338920061392848676743041211657085760329468600586923229765693664273068624698400530358038735709712812090309852164164335722217456119475804069531042723031227428950493969721042421169644085888631309763232539885453808679360771834554657853532514596920555253028876082354793569683072059225079269416535816471833828050332500525177242028649552801183031493228626460219259320117088021013388002864116985270718139623473984011678741915206609054456793275036704207763337754633741954483716729431597097375856299452942781614159021250147189622070523877542969052877339306826787896646963239835118365412291721992224006072886552602733729502851156153450110737965746383214892029536505694206017889998440875939197220647025016725184360594115162432815957774999663374656345018817159518365302342999243044031665662842208748938489616344798254450337762484427207326205149844170575537339550627890639736880115006013901948126382283286911509709217970226722111100196508413190593825147322345930861527351503094890317235699660443234141502715553569079546485739341401291296600099738430118892989526669726538529345831629081180605192614796115573688351896781521611293741506086964040108839127591581417514202064129809729135117315039368490008789894322008945890548468959815000760539586088087627010251719225832816956899308639472879513157042109458216800492015464148169214292341674847313675844229608380708107510568985661148801171856799781829416708272505924377093373967539574816009017939109747780349279086429678976583030988839398162422050049854997795747437485742568211407887806043365200787519311453933686995217467009006802785161147079256541958124975823909053204075288923370159367681550961699031751968185132584095827559516714838455824550167662935113959036838233101466745986977570719602477528931965768924169393849268724034994684530161549701392657914071223162656841261174330432267148772810208075902502329214201840633617067819085275246228682420988840033852506546406625921625674008035536946136501737663896564647403855441221186465208709424013864013217196539563889349667068935652648461356217582516173655845809308098856964579343735008512430015235563273852139780689678896715475562132250948913728645797302562399113189164589634650144267006446935325690541271892394393100541255511902249627560999043367166133001605426682343978815530239355409759300043882056283956440399188955046936261315241512930863053204345773588552246907080921148192539226446229353987531887520142416524847624695035430287144155614457764572844244821958788027838143413484124038034424285620027083919225395387132944769810235099036363054908657651179472140213499230569587666157705447746109657629662542368694364032408384651393001257163733753008879403600416067467101159667425694047220652752780014927044154231250446053953515948027677129418630859828841677310112125622183279013009908576610179831113644378914501250225372025695638393640339705360222437147678572225816794824759098342845402232196872583475410429732560440501646736192209172953568046796299771609631800926476275805305260861673496825720502279501880095138042765403340812480981234916707349120797996317525731592931945869026312440539264266951954493024246775577713548471142582145793856833628545180552221828576961311942746632720842392378973071829913825864285298811801957237188148610158773977399761213500382018381949843393976174920126578108101768966614308227712457587787301687914863322373183223318651198505077407143161965208923014970347239985981491726703242989022697370580173642415161354559402299319979355965355628172937804588159820440882942536025922542989512016374456402554453994940046647853512367992555950421019142807174516405467217997981980692955274670163136473959142371453542994248124870661978258479470060710996493412491865455792110569898414518677178318705991130930836388517255527362563560167839624958243591769981614488456860848374174242600863564406528550188669015587900692647437026962935690560602309809431910051418594595317195318913345642503836517833716153205064563158098180089704813119960157559935512761965557298047363454357357296562795504969759369579122921237148470012809208051782317663674860832429225205699338406382955423410321061281840958374607891486897421214745916788559217577103312882560765250452243465471138009238931102900367604237125722550059205612665677322912916193257319815049493817714199427067156235197423229900303951793912556087417289726026143603145137714169142537420977811851956717460282686091507848412240726398517994783380340887673530530397909768268336127390308905401715409224679624963384670459976709243904635468382076962770604646809184699714360668252042630809335355825719095271134152908566924420798737895061560302032719092736892048927911372089600324065061453922615450259521397135035250742974752317454297751288907432626932573355429842336957318814940588577560141849763427731704377394957428030571772475653447140475343276865943239915346059580772581532365785019065972122018188136244311988566401357391054181216523955670115983651618125020838035783477191050303609572024142798126468116814804208493288925233366910692823169938043127087491415793242453017466044343845309459663526218045757735702444441486151193620014972710608547812269201552265250774171241909088668443142515636405396167264609182412961814443146017855694964238916061507022171163231436397193834884432369943544895028834870130997972502324617573412972672934642004399147755098895538677583164869472712932254875064956171411425923557780247559846693576832397564871119864250649062702394914489853846114920469878016827728365155131798651589694566527700554887488173244452750731104647499608918129297179296324195163354747745067494290092148746331131048011977635560981894400489881212637331209955577389426395662875483984488580965177087107697417111361533141185972687884247785881166375689846057971408242587822523370519070768079242338098346538552780700028996196468722936539618485344713350792433606186857354482866772474840752838084983824271115956491174901960474202512610747027650173902057435107022407478420286226724227618164402347802884948931527792373184279201776169579765373047816778036226596395312324234845520502880841160876937042806135375610089741187265473818261850148600979407719743699330030834123402177648107325152555730100761436372132630543119317831246196643944219976536517362690337459009891850464419390146577372172868734102039554097200878263660435072635230428780797561444062056502650814428005607672430183569738994086786893529675079484677329353677424622182021362196678721380970652161929168984567700021387549495376321054768664980348670448681642714665476182447314036816940111461283757290039692636334034638210851560643537171826307965699845717049368882776048428393149646482529523554143549901879011819980199334581367556689479418338012341652857527888305316630737508715083395826480557877060203623754359093901275036588089251134592735735935851190478642803898924095042956808300634524106768035843505633323744848139756273150288812335818014954098121435178823461287642763311208065097271114581347488202035014762790448098851139338681308531748971127291911280648629506115293032086318494057430939998355636790198734023364517957732920088728817236483711475054470479917838942629106295398261958920660982798593067146980049673623787808536669137423501126630763736689246534245466719488681842476242065918817555234717927532724167453599045496551475911618945573965354689349817797531399142101026000398794748476453266094965759051887390250711427823469704946406858004752502706283121067248186669730873786566097343545047962318424535958392422899344928323636123635956783777288667127451869878906159964220110888858231882009535407816190581164967323844348087591391310872569949279375174018335426714899332393224004198766795551910422413924992069143429166256699268387037393902349682614401568878971385293075236913736398433377036871675229080114546090929934001788769384796137774171263143761482335421062636142841582209693762453584759025777845042823250802700706949001265640548608413147422243368424915516701389365204753244192354807155345519792978354098748548612027694166552059089489215826694830101280536961464519215648997676576697634367776010013904310648693345291798985380899426350738167354949671483998742795148263802623690420681755307438865096951820689228206583716488914352059487780707998464051859084790081605746940526532314504260463643637713264094410614781811815308569802943874229053282880187719579942988820192809113040515720548805466375551070613738043472726196225330686407372989683102204814907448797109178359951174047179540191001584283062092208310886628375151146327115643974605099417717675647599202011801369355774516480318993763220228298264625371681286795915069710987076359552267994676183832339176897050064723008092709854055497934781573400150948062327525088066676625087099581365718830226606644766427327129689862091400226403823034114887917682501795447041366589617920916047076743926390150557579036540591303787523589065714226789929582543535403836537850501732757398984254168416878681087206232710378714292276226172520738867197438326539320811833162304873967492357458020330203805970923100923597214511400279930995426344423680784237442883795653237622781631249629488225370531060567994655746959259302680902823905223523139070128396866818705328626569846149012678156419069244136411550469777879997400125507423039305406431949274259951584848145665033817646333715583305146393331436849473321275265693834138990162806958674156812914236683981105113654059721330308446212289819839372686266435419891176489062777120533605430293333245816674596619074498423564172483743530549906791098885879306313407157988798149687286062176622731450623880324262858197109344927486504311013678094903917218615233559119335526722381590202555666375516318570449124869975056463443204701014026458066569077618594908505246417589865461247144202639905675021023720044075930873201005653518844965848303640160304745210360602443241014111941385204870077199666881126225840944010304742519587239051712173952805638016664845005497877333097849526284896030630417109014981796909738910909773413849379130089514660927406547912909587002005483039515240401861792222319393728307560944367945532581227840077904826633073787098574347030320932853375500653922621956202128081551145327498737146136131395783070551570525752642871312637193499764449251714715254146823912990966888796120077609923964527659027761442828924800822312236900036270863524289233864469338535326457617735959110621090875297933742879374297952964298329925681851395134680661593844164501842867367503360802698397115737026737590805180908518177267870080982929275679617008388721804294780570320053619441639487609512257396583741374008994593070071195062902021918738749393687302721148656014649900669903188231702150680258814675980618675252161190840052745348028533308351280776369441306034541665100357078639525494709013246831126733446464373529207824202793705523095005998900177019711332904934619490898586620328354412259783751184075922461386176349020023354603833873447156707271784843848424604675837499007085464491729888877928071470244083238651767037845122900039996161212339283225146290037311718590927250883637765543427323971266640223448555887183884370715395099870890505412443779395211880219835025034247893558369114584217521630903144001469013143825521671032960807803849746657712405745612861530041290188478314946907416388409456043114423876311940847929763368286836361031906427585488503962866682028335346633700446965772282797995406807260406451243842179496164156100620261149765452957563941737155592292829471048166965447616433357378738538560088198938167868973281082711207111244417501688369751237501330415083748020491789076223383127454388026168991811032076520897240062532059191133398479072226168567733483391491592945490950885638604107681280007945884245473444399403475677492168564895820132330803211637716583551280525510473769381203006362994887026141295812902101691036470833089973754480136103168063636444930644951807359620848936694371361188478709247657162044798676687078118587426454117391219634731209189391652742244899244446312753996056370358158984578438557015961228517604046481783422773284049795890931188627472294040402774966192622305066796622041102604221180901204322717731859125417143786794868739522641951010825738996840840765048505187755586614940791644035098484998249935194826669879715769976483502501819510175486942645688723378738316528414680694649195829705711456054572368520170562136175367489083169190255409031752249123728149903433257913883766899517560690608213720846915254577214499679016420085846317232519801059852460649944136579425839649544641061885493579128810222540564715126579258702810340624480035683029142759491769299770608582321904393230083858265614693642662418533028928221074048983050418486573395916759568732082336377156185983365863752439467190996815472002721002483456241397774515799440980677335387691979500212144766673454607124753577931237541145006039515937691937461966016278186107219173278260158002767855646022450291870890677981273216871154860851926913899615819278285542445798468280261533399758017252720743261995278131057355554181126607546259624259986112193237260210928147129146648552251985063545643540445392679329376884688154931212727729203568077389509201454347368613823279026899069644796170910192492333413950759363790675899299687346706305512724116868374131275004439596706122386161141838151626817836764418072022051343573762672825914227465272268769928986878602234529246948073216613573260465806865971918177669452751095362818115350411911771696054800540292817084697628702132620408689666521813863640373377862671728331130639230180033545157943107204608581914469151916371375604414085620144270935207694421421650470567520322011997041447983208143105162120896803429324139239877132863519782286895090193433929661359896722806455008697384569317626630443235023940132901927813529062724149221081553528714258100898958171811362234489351339442382331226029042604379870175951164819716899068854930334405377174538705661218418608475460747243988823944600242050216127308258799797924770053008633060330433498896036634133061936923630759373802889124725466226363247246577681470564116692369741458992493070274849326043354070265029985352651390646353705142384963225479982462029069442637387038925407523717165985916041190123000311013167355170489325799415971692332356045655909463544462314222279168372494100994662887167638360670872376114245521824360817774338961073626714875364099650222208601291760090401615156973216327008679855485976147068734100195097108257882048432666580442099003542602808750928625255888552125440366787309329480966982955460103066252504554608982878761499214913743203628948445822559566966703433336914825084470602728442497321865997818075092727527983356504814124052960714029247555767486955325625141771892737505987285324146125471412695187629130341090484196928222904256641016432236147567099564026777875131678890267945822153908133479358796475144823086708207723610084467185107455002934094320691781114535954704698448352719677211640490725951494216651248344494600534200544024136630621321508356490312908523909971258579256891145012283395899811048767291746337280787905832092911923805535450524672484977258932687952151363732625812288704283318459493347467403337133218018041555696680038161892883066468653298180258115506747007344231519003754548474077402721863234750853788004389863079335233440814897164427176668718372324706238102490696330552093559559984343564565762265692195888019410624904795589556063458635658978248252533540588574788745769416181928774024149547320833225741158746864793197090717020781591539558271173317083981257994739360312508881783388411455962369639699779002146706834923605088303501289111941503197711636862653124266871990780223332397061267996052216704610521181970119851340371253712740537866053495047731625234244202574030866451944755411102982754053577143120460046626681010114041393264721111372534385071435656361881657073622991466202682393174871987002563102391227136990358280136695749468291549349669160634854381594543822444848752478288028889854447066706712196516988706727187337896363646184754100209606794351086454418252423282151687412086969910589278795308221063855209705081846914858912980839155484923385395982332112942435858406248721120941000029368240454345472573287181818401279265317770711236565404966572291639404103578060972040084190018305219682743305288360340999785268987187875232618718875256166799502494682990188658632600797908610653156435388569352147936668142271212741883511034679449673402670101953148500370530454305530462510282730423103929371249022892118363110023146291102931754086032581782710188036111264740952503514944801386136633799789435844409141879039057524184975279615853306232417696400376572074183362718331991201688700419433471999848816429971026820429108320284025218633065287204309458761875117684093898388115268914276941321003711120642359392039675819282017838456114128712187700843991389342409436815988303297820490709302902683917943312227312185569864172144900425472261161461030917879195854472928439426370407697605590625026897010775948754375055647273715719918920716871160753079517411540911836149747728001069725238946894675401162836722278521613911039792584212191084488797707445160398672906324405534951819308335616297312520662507443319077692238787590864827224746739541719877783184613524040986394156716586589720422429070544885992058205142989884528066983840785364715316292421866081056337467873750039007878988491403342800111183953723760578582585817188408748031987510458896701337410993555475567057279416079766875366980872724694855947055223856425843612727744605136590569644200552545434496160352582451428581169804192185882499811393037521385935714618062187833194568062034107408472412111874363525436621390083800835558884150560509224927755363829405927556837815354685220528576563521407913787615940770131805682696541431307283040294243702983275061412007566422747112680757680475036895187747693345008000994666431649851184133995935298524066608434145552009015318863574452624180301777277817699043393895372977275943540135368014813482510928408803794146776981211822684380364535035903537882312615176116907058303647891999471241503004414193131873391427886546090972119480937191091630907475160355498289929768599717233979988615234409514389736410213788737436368050610942467127616755476200599445384323412868810649796077745130741773206223882693813589831782729131701239983007161963481619217971541549532498404047727214497500127922693096879309918565424893032540052103890663498788880534707387463440567613087065892772914880062281324294006764437244440510520015070087455002833542495428862209184398625888909531261828126103212010079591783310951768799379275048583981030363167923305608457035378118552102993999659760352350876932946655332840822695033043848640797424189811267543887676264919336151094839576876851287813828910610530339378769911402871550643078858058665318999173039502934836048339471879459836070497072850329557171927538971066591680748667470602530227446463835909174159527462204281404186198659829744096996726296365771976781422063084391190048935805625903548133403663984554517041752795785295087341128988983449504604790597621685337891618965804999303367185176016178434445206778033822529536819181012573866472005560571272084159949156236411649055435979785000895877148977177861859912734500513198992980264306314988250800261339733710786451114880716581439470536492938673125309770557201683534305530717183470517889632856049002627254706839044299472348495808300405506428792704263751164378961548830708842322477810488804551573296326439550848217871225103030042718874249117645523599394464442782865454502737519011200583609960903965126921449739198597559255312720282836774710657731642725789360706829110220459146405171630841164533439071655254918917923237225226602064823509300832938227437108406592034293753606986710621446298152676019597790405847537657954622431933837567016319603991324588957543998361551739079287664275060974732216431087753336633574692224916012116882888990602186575770960272556768888606553183773707718809629874783476578748571283384108811356525492208313541073786145915078927669069575087826792267270494983426912206010689378416738620681490015533126091919956398116662174634506457143580713363401557243019786319193161721107547194991107746133335264510781023264671548310870693793291170402491693432790593005635273254322156611665330038280121043065068368228528189189833240908209630821584578651631523389463769494961928556420906713785446852411579213053323979564342473064425181818531572944117482055720643340099718782250817283510829929264086528611520938642519854691005709964564056012323687397550753989023083548743279869968976676637957515428759626705358174725630505564834824979367937423179409077769837667013513031702681866885007548067088038532369803497350536333833849579328433974405799356029703927139230283109295459040898566066861504164256287115375066240007337125526314822921683994479736001590047777969073636705687785468346103330931873051164021288528403966295766091260648775711190312844417627009744925139150810963996166584152697260320797925858334800035865517350523687515346665429093843653579660611780750117451665554330740089596002478299884128465987621576139648791122192584403635785376478019519601757749066003315180679738852589969267444592828548676504168116566611539365021088478662776192095956967098487301413141232846227474502926059594667048854695731384197555173596815804582615140838990004963295408891189995511817516062031357513866158993058895845820364242799060839350508664252966765100131869466305658276246096548826309799107708673434295330361254316850207091606926584622538409916815478015630034580102302154643570051919306273480340225465020512411337384481739033197490018414453798324566612539577749561944265695715359421565597870086668785772564771206147447649770205273165064028314284782415501797407120669722227368067726960866272859338558546796768913452198053447647086236942705346367772729085187150329135074167362022623084180583245424782300436742830282710533465059590530720493642393472549455588058748125585492854401485846099028706756993416733352933345488291380164306976312578557128742158944583516899536264231228559509945072848655176759474091905477085155837005411231859668945395204863650251385759613179901718251341507139601840046836396429701385967806275870085885375070489918456849362495727200410566072917528677273871035714058807973992898726944375215546832037544648697139783739010784891491780126134784691307657418020992681205964618118443202414244149838044413762498094465046674562024478216365179772276485016252474018143544097573097773749223395155887373224673494774030702879254538045113671694095148548127215571396151249397926914909345257506320847048872854944392010292511759125584508562913274213736277619526175180678929135047830917635087984093520956450971489512948165147795018886610686315083911083281857773632397728290341406530793843528753165160848157609842360878533623023727219652628776981078980222989908407866175875499711897738652873125938400863286700718116642330296189874860091539978038072423934822843345879159570578248110585074861060830553957783911690771801437599400068295641575188194584449202607426403354043071287760720963819479851602559292024820834956067497054312928048833255309825577798449863071861082165089441317215551269557576313914499500385371833649861527738324548495905756794453426768223850440952864031136388624828310137566751563367161794510786822690275451299667181534959294468908526983038401586685683154001681847538605236354858736369908724340969077772306156342298595154985180056933345848836217712859553360374694588253352149102380405777830111113698558702880327660608071502894544575311731476404106980339496565943350884012963070119409452700344899113270467134070588050397048690456258918148323020400351639735007002486175129980043085721919275590362592205252584046821978853061718512177109608086870354193659864561926910259745211736179083273467670618560601393057313865508462812543397959867878135762032272356520145995958058213559327660501501552678572903260932995327603578839959475155032979854207470701722455382022605451028097506436152220748592565662094456104435562089819848745706071465797897637902344546737129955499347060435246851841875721366745306252184028073697097838745399381537201877606365380106690976452402218978456548167623367490654807848952224237945357613170703074113405048879340968488469331312770387819793864685595446875132249841537105472075292118321738792353405802480793120973773071377226685002010464641072630281928781965826825510580592802396151785797098409114702359466844734417884800624910743998915052148463066675516388229821103981608217154845866379589940865910917692914892512301503602677163283111841413598689843251402667781169427848722269961319059501084078423001543938333676996124514341557740408046645340377130224091190826525728368623028475299418529574209903723364431384208394505729296776495917948218204055552159044859583630659831652805458804630777646845085912817889414858627561453234896825759585672572688102571181899357880203884588444664841675404689023560820552548090820529823619543294337864548401690812596778875511618924678984043255942366512226429352304653548736593220960604970838865920344348666449246878557277199750841711491479854489430853739505850216056917713217251353179502468990802054744623197211491957095781030646533487493611348430483491845907662724698583388192083270977531613571389320509882735914738586716424528229778602069164284939000146760311154672344047277423602905952692500096452220990939304751760754287003169620792579258060248474266821340845347873668269052460500395648902093626547513846429259409218054706859355455671856629104175324316192210690752889661619696331447861367274855184879642346126741914428177377239839272460988020643587432353914094268227669957914507858890881690175562904889201046292954542947117239455584155045024328152808370432967463965334494361671518934444242774319334921718785392680622730068616297509120496791698224922810337078552673548252155801222979847109794677195705995710190614779347291228659749085931821328568023052894753696621366486814125143628551847375313136099977760630738713404336437777913774247270344462636767616627576716642860113684683162960449421948453760682768104843701741500618893216399723804733453585973945592354289008871314930380353168036025977749955054223558953223034765029408020832013226737451061819769809367059792190084264380226425491351988445916949603261083416880701446312296368282237691837373687132474227709298903204300168125091206602876919297721972956453667018371215700064594601671229140040839801306864618233466275408885950723203360950579998690645459573898540492341518294751429674856192766943999729810864502799482166114627764613509327904100348048728883987243614905586177202327076807886185307791484896665199748274837294823814688289105999449534288891312176360882590905207235928738170278476737887286763258119314416257472475065053970859507800262106565980014740816158790033843638661261557032832112512124419374162180296885362148024312554430629504366363070263542688436400945233051851802680236375841140847448602517863892321860868360889191135089419008780800636235651475717193293220382115730333800976211473315856836461078623670664998930048763704858940979581843259921405202726331979806974164881454140544976969368276352739121649425919074697253815301781462127814926132708024301255242871109242261548639130663822176517645436781662982162610378447966393870070861602413839366237062837018355328357493918855477013883540908301603128901742745627503682267017366845359426422652211882229998936893233249223038740272397377418969934074254642756809993751537557963397824779141677822912705596841452199256077430800910315760833847851113844094647466907009310911099166619325406120557541793177804250694072796609367948673677557616840185114836012631576206314301292680062883185960903169372018494954280455055376650058394093483652219112473992741679471884970467383495224323655412960063418460222363472560313657783922254464240185143781706007676504411418909409271697508246772273853979846460028677049417500932966003626203121913202793653141373721195564377525753708037945430750445635796419724379380488890599098063751070183409290801752543892196566001712514376189320499362458039297466951960271623440646421510238700222473010749390595765512790949420929029932956805478502569078596723473243011662567086048482825993948782529811852991713260200391207665179066712250482447207066737901228685501855257800956596610622086529842095094662088334508293841556256850769068273001279233003271333319339367815057165502934835723502972678988400870830608830922980179008348869324502119905287772765043958521875166784084000645350602399045994729421430194358635834593308967592841461469415434218738064358582046389072598625139291286685341015828156116563251708953011261921857253687395064157479767208475801291407435372166514513923462211535536923206442184683821663821685033255261196753121078005217495123405645516143208169413085051630665668168461160228633446439921344776862683819786760487959642761513421997009161351612214332481493868494337603343978000027117002797563689512584378423384886376970237186035824207361630372947378143542239072818167911407605193892251633040202927688508685873551091566312203169630633041391187456836578802827590452892652531496358905616561442773872546264031768148177045545594317618511871946168963283997339706587801596655405677983475650018965851416118992059264834842059580738534800198612786430176275669907737863010077730489058679490039379687631266145875273372402058802686221904915556605193316407615653776507900859664695171037477687734470404907048599646409184543612799798674561874853338104190760623547979825022756002407151250090185330453426115203919293836810248032232269636452476961712484729668280936899943548676018264861142566615441506490575644824604601373176134577951512019674898035938733897712324910517630828675247161670058425871081389101655698782117368864368353848197805368199493616437787733751461074411518747441521019327477797756125741931859102300360958203332672972848119155288845425538416268028496492096644164304175706535746772733094566556582863617048348694509033399485286921976739152964006000012645089414847274860327657643461878786867109194275970175294453539464438667488062635134438294272862666261453878635643941964636712749528626196709088209975363956176174987890148037703953217828292759805432821671077097711931218351709535208119791751619374177975023943898642391665117989053782475164334628987276323437051788002970558379396793346884891331150208932810433385594088179240243318166065153603469457708056177348212461090738895215916317105681453862257217363312187729961103073494324522872398935398927163962589045344162791517463876355253713158001794848555462268040847099900589823893148785187987471155096517042783175877777350227915680227782926846893177149904993601092468715133065389200682325553225802700161759755214362031293127539638861892633487526475741346190232285136785201098832790099506980050113199332075948970928143362753869633639322536110724899189172423297416906015774970954765233916019746449687646765891031848836692656733001825717002390619612816774159446644074538034682917029846027010882362705859486015188536452573873467208024615321897246326951862152061164296080990531828095483184197956746352159110833569310145781473074316914046292410807470219384489587403101392956080118900093980634592336712066503697161655126829202429937321260227074131705561131586756379642917275963896383959969617185218461707686103490815973473507872164334148535585265270370375713488703971077568609183915743488259529995535420785321039732121668124975952406901483855716077331939324120474176285975444926496332101001723526296106190779645174785008291841636767103897119991716918597210706385943712829143950231028706971103639675060268411068223710862903157073252493111766905539607357865743649250834130952611536584980722696267694510993120527905071133619143528369646197521863060211117429723445266823422633220887514143535551169419081340159220273263951791124234528685109663164433247514770736282382193325477333431381629850352832070542295458659550054990104875387689964756697962874311938369610250570305976565295847500623731454925578454909794908985970742499641118044933961157466461836369879269573996045353374344478212341090473026522994200277621551481594604541220915555968463261310411147467966581512851790654829727880410038978438406625921686091312791494326661676360233729702246776004080716007971023359038480878906461275952459496305975000880825617007249160171752579515250103103440529983724933011342069293993721247981014996389181804872799740848911465724172941242007977525802450961616949267786130998389313071516742346059244728657312130923448830225195301939763188464317308627858941631922655422418971772393735850536850214775933941858041845511445570613797346015889322187947258082411810087898633889188642899420032470650963588841487777389614652712027978882705346255975959172571346009617260320937452758632124521705252579249639604141341403733937974903113002924948515603319020824581606757946795156113261296647791321441389457905884792836802991392033017053968144823259835926661262530465875980673312991884471020779758343916312659041483134152556038549778545282519632708776789502212143546975645191628591271559924022545133130629833066780722195857540185683665613929213128335862180456251411286282206097751485037527464103687028466046640428440392989901255571856222352012280331240672886167382330847212630913975655002771495972874516653283990052872208664960524151369384113681623718689298652249858426374080056933974517589315931556794326867699571690841203547837158457948869917910707251916258639811675293853749071011419459455956097232656093929400969810377184610355364523755939937452498841933268954358459427114730403706471878885869013080778169661340540822425669734433935864658124145249597063122653264703027764000079478538990545073357092585835699795345041181404476003171220094744958916421572651952085963120716829733142859627913132114225999803488810274907925519462153317097500779013047158887023177968210621588712061094131321530095348015196846968864840565533300423704117762239744198047314245383179970406187667768964549926768682320092246807916767268121687367405073113033028677164865355431960810042286095313219020734850622390039280691368596558399765276173461752656944653438882910352920306947017642528728084336028710545615643361200618181215787509465972567324508138153871620318890017720276581606924460519878278837034448938019922025763513388737004753698720223285814201008886125905291114466451128686923417414842742842467022892834811834079786728241781936933689378562307489546135474607824226364219209635796356682249899608355915993233207758925123470548946562455279741043989644729479536788585641121022798083733994309746007477740874161671785543734120319637100139897687793826294617288573037917773364624224565557177481071209693498847393654470668995670601632444248609819399023752853023159788848692815995873682116405132586219606489165857612041819172911725726444184181334069401580082485784548047134039451132795770472960496788780685562830649969090822744646332802951305836899756304330125026791558618874988914809913211001797665559019323811134295902680074967058577495601092949821435798360189223889809798036499746207320187918651151069286884236112890807868643087172001159573685531390117640923848146156926938511213293656548278137565690320751432208762983601556184305903708887151212294219028703992383590132145525491493344953385811912135391306310944626829923084410345076792246031915255655583099561989939812596117974045105702957591321558386695179759949610341252136510443876962796884541606950743243658232121129020564608198398462234422349775646000733490010149680787198045915424969987207840135154857685674177503481325545960194271757065117448266304577917583760245403487002885974226844527187405672958303332943062958225604169589775848949411844133508787357406742374166846923390257828194001326393982424413238755137495462018847333928990806262996748948916846512264151668257729289791423409534441252071182866632897045453805361216906483558799920942413755410311717834896478784996122536304589388220936256471700151483564483344183726607193243989486075579428408262583566626447203766118579143525782527569332435966133604562939770005648727319414466001138203903349871090527590967604949610775735292869436910429745631875368195550102335589190516332127687922668196195422731403329977850436382190801713043559040549860486364761910201089623989008878308534350175821560696063549376690106063015344428637683156779655219987142261395381965294103709792850195276887115665638411104503019287190084248257897820543552593607798701714507913601869236933777483127055319933653886922156152978547913285451903468311081318590531786421364311882629855698399427227169391033296787185956598303920035481295755648669391166254868390722526233549898738880232304694807172220335956905573232262002381054900521502522677847753284827059434462593264886812865960477073539351369778600816428951721517379415077903860120572316046310672348410308269438959802440256128819214569600703102339669852824747088144331739215969243357422508686748983773203053813675029113142027219591967354119661357977035558032706122734397791082947109673569815711987204984100467553787199320932548951212227477319161862894919456942312702497141617266394403376752082227511963542836161474333790922413867024654213204806057671667203646570625173504473681743717883248437498915651865320489817815302189477166436491538367366012828762659289139489431849431753527961963703524455499256674874573105788876109750796587455068473821929490367279299660620320746686175394589421291270228664387273056410334819605368953798655795276018708911028907011826641479102894442939355531471971848415717734026548395873576774930296066508858248847846873846382951439377498045679135709300352333194613469885874501121443680936771783182404564395615305418642844946649991942585824638041118330351628467030877204290009112083480277551014211641080416121844285517596511332825949137539818783499753911890803431475683517735703976374490550725585862891961927145730247566222040425696068333287666341734262092172466821693151008816644585283949561940963398472129714217717347339385347347876358947380811063025562660015309185647634712643004803815050840589870845559969521625626086147646036937385053513590536566070024913573437552442385002340898748985329241816333650443736974206625076907690248330914663298872826895050869696124249039349143402455811071622474396725368527885754701575905713957913448304211158573651774769205658076027488069054063349126187817626871307370376290296731536245375886850283753636488662609902745446235130883491548926797440029196018117834078639131471564633755268511100032010962365800767517065492753673297325102724748019996636692939148627819637825788039009612343226051707302835866587539332711545889296289671913991249975589890164325506102618988335580512855450189474005988870349924686437788873186744224354350287611703311083901207396681731801246671527932178369349023829027171200269173256857125235979098458960495760577277705608359671199879062590357249851113168229963322370982338598820806640887259014065269199644628293604549346004534360105228729879170737988671975541097325978223730158252008735063811453232622246906028078100268705566849198375481798751595503205265977598883431113104587814885887241582992273124852637247445184760640569193036292270362711400577704592718360483078709966419647136501399484281355189948589325076558143285557628156234452722830101533742025471361679093358128348649004226973394531308012145116682445569537118642791488209689544326516282343159815726277049698063191791454520894911944665679955180455867024201523376686706729651713174210061451867167745159853994838418130237624599521825865549422682534399962586901747114967329755930112243529383665305838213575958270762690711593476042946269742784074698847981695056900658272234186512351345455450216917315552670519156430378108128213370674047396554788540922672761359704293453781708098552005971083465494330070766364089463309831613501350713061134208798520487083641152068446228581554887291913846176803175265230517954190590055066511241156195705585971583508275781040192679740646615976194776223344095623572984795013386829302340487419224710548079348014745878560507475684870110445822005526356084349483309467131557866448646290115933495356363284814485329797251150020723815388430215975395395974514394163047752559368884718862445679341186538011359198681538220858777650364951462761728330654172674171148971682670641601059964266683018671476636852462847262399702020303185424757002938409745131830473703409582684300245201263736402051872374703406238903773300985954548937397690921226153164149563724365158521396908118100009117701522045199129407994909547407208551223769079277054791682455291918119867518098416772238878701764391427309371084505096874065773376297713213792325202179820704896747241218768252205472472342508508921772128204087506200868543873807747297417684993645321346231457203948760257511753494445034453796451967636857011660598048884740194536407439655918044466667969665736357336349030738194602171271665467798163792965014179161318848087239139004622612246982228196992334574627628079414875085078788313230272597340215588490447550376875644390583352354028715096854713893124684970896214646825732262812643391444459154244921935288149918473944786472306301145400076398083868639031161286678148993862427791546683672552501119780992276000852298153025305058397470130218351340917914622188153635481949810023863861160299593117331533554697364278497721518826678592335623864977537944531845532170740881667753361813699785648812661734339123994707457432574491075873719698163583197810590508757569218178746727652515357040041773073001274803871188714927781188519536377088449832099021084419793285233444198106153047932894460477789990117580747524250725294478995867148904405857056753098445225696633265900565022172856829816718119392796102982195435477500328011014584729762604807116820414886944585358293928392567800246420157778829341461853846899665287448841114816840433194202131039232900280297778580121197967649266724168043504063268311378776900827423199577552467151391352471138072138065800665336499132281654109910199634101764710395375505053105541078422720646050611021724691808476883277352153643338580270897955923903250444880242962623305515534660603022777762576711534131748518890718658676035051667401998715083015347606742264562052813409377209279141758989689904746875770631456080572619156938799589298263551892424592371967415471153969827227789127302050833304611736279778470350499611358831813796315426313210468677463262991987170087734506109482796821069942570755712488700029377133952996042732481808303458523627216100567526324698145189716129847874533065694552774004974838563576187035215021795357885053803539103496802475807252556035914513971244352506436414714831900863972680705141332447369159218187640974841847421209405339177121094457076358128916276373408843721300405866486921143809881978054110127168182584106171278159723358135865160137178524743283612998529934594215292357858069862518091604486775531509147022628032241547038793226930230897313599639641381018903364517050505073198111111819493919006905445849635851788254202294935534560091704822410952785086536707331578074605775510035852441423915231237456204776028084120452093816640776626471286406241471585573557544823308876305996286676632665587276387262255295976490499935163919872431181391108062089603816860509427478930197288010725639115383558043589403310173341571693752509100352234954125104776602283027212346550850560441475062442438973424146737466065593158229795074761504794968732509861267949466107514495743017288645187830503051712353547052025233057502625662953418160779655453671397539314406278554892596873290910894206259413382165063849804048527361686559405251909751027828453178718598129577532777591487357673998727376034677018329967310437000226471938507186817112893503142014503189046140834078289804639831771599358507500208832651955347149953161431915659389878427488270493989816719175287781184083078991638335940006103812285440350215935847277552444528276993260438139269630635262888453830611953820761489699025430160906820854817247211497581070574043229259496782362262696121323431589884488160306336520590311295162950985488165524285684118949736557265648663910427050765177443574576856392306993158022638517277359086514801059052767374366175799560063239155585274571937085652297802002023048451414974443151482059188950732794170477362510828995789886427279060262177696448297388057496310356436221994908022744633336441906569260964496327360617401604137645139073401125282998386561640792876053457980988463287616845452716952290925050144037999300118305768112555998219199287182599137169098950363526169419246175612281103102794426530392679993100406228706932002093250036649318386886117992628015939990065789351063651318911081074221682643995206088609527676504099207548641792722650808099262577754189178834777857888430648428789113974217280947205982785046290917470881244944297373634056803577002369977794634476584331233129568917414956091932097641335596475177386133120837033785606703859921312396885834893300916506412129612204549949282587400833607420280227370875447858517196687502916174131011683516811916382403207049666449071222882637184706275908340930691175052496179679765900369768213075200000947314432488217144123690693618816274047086207661432716522625515312942429161008471658700676991106265055991818854543589252699927410466199853766148718750690757332352206148268218046605408342045390769069971256897773672099956142162307356799825666966787211183045465750048401695286089957380840211706735342539962831596083512711766696774542043135643049312515317767841349433978617466124951326216114860332288027024204359356961483568629738600724322029041367411499713210425900018995815199472902301961342137131209079490394457519117466201264712708693857780547032470242536245151510634946408098282749741437933433661426866507285983863561137074541801078500039281358077187617445305592630644001845175709342068996998334810360462787969348853736068466105280398097029153564782666575122321930451659997174380266695530550240626689026042876174357719773924140527940157742271153467271715907226493563311345474681058112274780872665130382119833980361363400850474136776390666129691096233110282620430406890604582130756119186842837218297841033034549587375445475021033066659512723728621499143051065393939542232002759985300423651792978407890165260372851870433820937921012389509912615636309358897532577854097050675069551558362752399087561044263090551272175992481667403531386104692801256440095979993936134578044163769773540607042614913855080675753821378548428274748415163015351454174815228778209829845897350782524785041608386348574467061923842390833894396932026694524540745351233110138529377535663633834771064039741703775354406876244631970112456057310955953139214348715676005137778976764092702003220615774501438336020041844704059933720652160640123946586630244622756633470341941587730918189092179513288126413539022707468936381701826182035582623066396336567210150133013292410130783903021577803437771955481872107280683274469001093871478238179280770177657296756968991221290834019691505037164566725941973472552606227617715034169145722205521006111419693865052477662267423040566855703659341309515669748817140442708601179022845313834291906336055603303161828328199374958540382044834439889767226776066093580266766259387322701112279687787170773755491622395005162609638983942509124547195161177127940582112875961626954651979614202456355842384923263467380079718603776171057935808941063973441002281398130756508513863156205699648117135393434669182709888439099058838952081896834966951345621207461555261978374392495744556432014680286884304336304190476229395774042852299710086888617112858974523158570258234673709569812766495409959882367783492140292917905736112905660918370248217385271977038118250918282222891508006562945726796338801554929091592391503066500516451940449857933468185532326400815837373149538366861484674751958341666455921646371916938370130270246101522732478762757246050811332936531343623895475047575039688988851796914366431996009018814508979604986464780312561128176526402420485056755493089000783350527348150402472729142232968069161776945986170435656037915188509809765383067165171566986764762504134283293827677920357986117400823932481243978476033333567093957345862601364388029350555921023172125369399606559964673076413984518630502036171657624323909044358825972453656194635026534938896950355193737066940781412668151531992035262364650318968597361429344711043406991632807716671402175208014263259911993799871129672082484741140527425512185371035030463809578193150384520711751725461796374536553548896643277802919016676366233837787950837281156440233487248897157702394946726545683755763019058663145896744791855100879877541335088629937566797297364243929739597547393731511946821481110954837608515241455342986170474030653340575113142394458989788589917708973492862600772278660637306476305114926686077116652534803008633683417020931764446523322639823912021206899743864843962926773723684705153237259228214962600556018007798620844241949902199664162176647879443654768043324835279102784495902531818171077374152744172220221247410730351856428862859378776576335605078874319046157649906130376690181104856616558964779307447541535050819648106812984709729582419219289347010568035569209678739281007640319885453551808216001303907708908542299657206076482309329334453710444556055651663099691230965321654438552088974982253479075411549850523304388899326243862160596036868327320390158218450574878105399767930491994294399014077008941160046622866451218403374171802302411065219194079988495818235505528244423264467866144877507559271453060000730564704187852304571823448938123257427227749747182084618307686805504392131624489501887594864267142753269329734754505395628233928577073308052538981838158616238903425817045236878178681160285470764741845598696092028747995378545266119774440139066873608488867978136239685405003957959809593238333453757320126245104743673987813179229935083298334621841679952527977857237880670639447141346076406808723866961854296307093800350860268484324753832952618523102549383462873176156983117622497595672586053578932626331287627441872642874118212163789685109174409912161078882552139149100943017470150501950222966020679497210228132360585226069358750441767342704903709310360514076844385807104207228755601474831716349212428203341741555935150690527928898070533122615583233442590834563015767115273040339615669021039620066241294772848742216959566729595164097280692500842480717801688735329012279041759741732738198389080966132626696364447328426345022664487164919123112516367527440679919734349438011690827317479505678312875418157796550090475066497188147599230434155421619573281289051573300114554861457464880612534952273770522734980326281013185655847792760102672847933077004519889734199963746792628540778056470629380750049529942185925042857454994175201939797161162479045388176204842596917039430660876095735028063034744949702976168404964281169284157761679002340926655777590657165262455740381806356556660232774375616101827847143556914406683337485280942098314879861785169555162202566879285747562915220650262941332852395838650226679193666623568469939076959160942488894398814605265539334819427359276755258935071623921022943378257068446011133409757111599790249142932099353071627146415681106857322498860604486243678953803910939295361585484564139339970234777299345334257061209596188284195061515798157030552941118379655756282976867062931309372863303202907460144308294546320524524626514397063211079422346493950554128400131016953852104688908366831249616768912471200502279217847825485533060526117823955804444255950338068982881228945070238498223862870992036486765395975516839221541199191559189278444285919296226509499722098316882807458494102596783040768656972824603945109019156470379987390756876686994639109923816352747723433166838742643134604045482875467700957609420081862819714408918860487590321199160770025015580221471442011840067559663197180443780606239021649325605546101694505314342431737608362622675071605257678256413285505770151178352200181758075287553674961519084183750467992957393125025483475366254904790064927970449395940356459919132486642943520392186117561297355935354166066605317668818046952534231893757489801938686164951166158777039162654638924081101230811764612637443354464979415402595432919026901469992760194166498280667229597611590413610876584512324851414159378353548526088523390108621567590143743836246959407797460500739729952033331232522801325867349902923248397289027362328097485988244597314462034564633434600335044216155281388927285440353960745587370488789253191661122225076490968973776439771511756809601722431989385219829867857435959506199029957186541138139466714731606307285186099002775809472915124168114170639897120358041481667776927219498256922497630535213099773537171925824179544168357228065385132493019979698823355393302838710570167540172865518992513399634959720605788984959740104805890828700243248996882430661068144344644450220411811623018527898726149840318192716496836110168802323859663086867245136677500211704904396539957796960214079676897233312547464244095670260594929195571501277860651543972919992303154171602560382063239427828938904864829148885594992960235382889017264240144286243647044847133826000124671927503099115551152831132775857298662612521743290596552018897886567401358860268863850349333187983498766821944010343010601592014556745333446134052510220523504542683290906442387838156350232206452248085584648241761210924125864610106983567359527201718239865942186362059970641949475139643725180205585574536510763689787429320958887572464116556470667287963298725243684582749831697711042784772231575258607919815326384220887391786155324253069512431658354115640010470662234255087639285924435561720940615845236228923779604937829715353916376456033291600016113217770330429533604920721502407603808611612415040412173527265820599827847176692664189684735483324421772890032890657645460046466248706113060576100906206872188693216766034258404670476897231578253084334080174670215722630704181100089463928428389576202989384102720168983792068904730498616595784684941811923405091280802161978536610605847124457903416599259034101747187345484892987592996170934325950935581916163543757647746752721723858690277002794686320334100395144036201504440373502848361183764064503252508412480009581552492977887597019688085714879561952950618215451688858569709356606745973380420495947958959640475045806075252349362773076555261604282048246506933741992099770956484592294943423509636791963810543426173281292827014714507254499597813958542995922163192228839005082908954730314098167806078883035226137419941013762911943659564996931347745203182441024108087248673035424974280196425112958884533866682845660085940260450646487562274637128401776833209267298038740139315512297663766477717407344372590975838104104050226841780437152658311791324439152397036696732207642162708044353066385255690823737053672695483022235418786735030161916367108264967751444383700927706984819391732482178739064663501973219909619848074823031233740461373352784094405214238621308896883486445526879966375327235042585106647625488146016509392861441569196306915409348482569011178780914086696592992488846960432563677817480998936333674041827431339234081962148827676275462793233447918125615966816159600917989030279642371734214088444746046450849466566191170408903957250779685866675016102090670708021359654478995746281539686789175481376858526299711451823837589986583348728082649007353643176558386320803864259003176067071494882516073329210208754745704556934519938782516400270444017483981541715616703328233216577161539885170438299220936454989062193009040628181055223234813452277532423590102465713692969230962127327177401094993123217061646033805776156143909577717422730528710714716341138617540249850608693155788696884741608806132166097045656425740605744708262860394235875943607310025474441832628702628288002964973426621879301846714700798133598460699893081156640309647890627529815148210757025644683964933002991743392537176519642386973465776606232508192222614727394379063452904872030265796784287867783838847148585299016813256583934710307247808936845767329034230914924506689309249978993347676468151467812918886102357105390843459688981511895231694777348220915626755115121638204506056293925635840770573318696844574203703744913586165001078289767829997964588406010306728229769668539095681311345247748046485080994626568614237722998471031101943537874142972386309536674741212097261611739646987509150945706988293176351808737095023693081915576081723577312080436759881750051364451656545392656979198747951136899464753709706161148078598280016858519719489673607108889187991117359346281080318468634784955659255840840562347302864691634170888046348767207121344827624549905822451146502287197508553826712297858086335237507732380678964287229038841769185583659198827151744461192292582770557264220376079795236871640800297416836596347306830507683278043514719854766135371475888114958293877233988082092816276603736005662520378116798897052215053341042707869097153762609864368366336909893305058276407576183557572676857389518611500053508025630527407379597201412473415473803672580751620348354208271433388386272214630819811508045633292391953926226533266444702776526852878257929739816723564902233263262159914075127704696714919787532609232610194827165954022183636689337806199014140288972898808953495278390597208078843290918949628596157707645801418003502423803425943844866910857624936062421800223697967738972468412279842402508606925886725862005313455479732009310079318064651643688432912289429032373758099610742447952189490459331438655369356329157285828733474085232086320039068205247880715951593484438615636520479458113054061885071818980884264672554063493492396370769424671054701585111882146069990135697093668313702875823219707013129616127245434957993581884199895071789017423184660244325677249286740570532433803931672721177392794641526864666490069536682490161808341295267905153406270782716164675649012984928749500691008947063713454070047478799755736398617928158762658997582135984695894304454665365839384241569694737006864181634041862170495940265553379581394905853035898558492884908909157551348551779590504371214461341862566272450315891528037029621785489607665241256825948411207106008902534717820887067063480185734936811277837211869403931725933482144592119948275793765816734879279511289832111907600256590538885362284413970464979458830275228982909239753502490883118248193643317864619176218582261659935043390277830621058607318848079224374015896678335877582884784366609857351050180124175600507071130385488499734359040286596592881221405148555222061775234949804274508801951341611956358597766061071080807633547525970715710356505410717967691855707622486970028958213454360564203731988863813751974746118398563805264686709366724703343206889384148401851885145687325846300454223310564051191934445518802976120935103769047113556041266317649439073956261868117075707435294555135975729013566051029851734390608071888095110191792328266310034546846018134053320250009572982944406851637062927807808644727275657144790901401195180015763356330109923793212267848935150278812619299674911273888094874006181762411855006998981041669271508370791177050523646764119197959310647802777610608845753985388228347377342564052122073854079226373996156710545771944292634751478262297473373504925596118887503428558228971241434243560887553795960872700688389121515874382903795850404697093619188464398156628063594240745071301727092433226935939664011704094188947294672908680501910797945079146175095649980245345472856723205872002119267701177134534172921513372645898970480477879750478871948204722832332592174127420003282164476326847923127383188794378207057300475561054436133304764954647182813625397965086713335535977572221232393411464574515601336840757786688247138571498116923994197958548873528862841504105982526354193159567189370570426283831118443594150058230318068294373269048863603305628007065254528125459894045073550456929835296497710019613720118876204898415198945606948649063811559474171863939568116257326064600178776523241194597611561998135362335445933042171064020724372041521840901781202899437256498871991526013652439559129120901592036918860166027401896530309898036823108191106605130278287921274290089307212094769000490803038179435950056185260973999410322432476225310033144645310647970000490880418636208233538546318788700720780484767930522394209980714469401306228834787936936812257424156336640785137988626611368570190438110405311314522408692654141107464805700629729240946836555520924964308765635432289405736150265197612367809367586384495969245115273594467680956653614091052989290316187622432280916738572604253738952514009918701889039780968261853298222431699182202550445998037913432746506867826522734718618925511288848095084704935727773658414841110938835920358896560040483901780695293114115165148428293357326936249273215862392007594446906084076873373575514396996734475887168235033422474577318237540258331973638184659983682637699673027301987583775429057661313905632351045054962166810146993416098742568714322839223612020941798143141737008297052187255138849038202753262348567337935765370662963234839350219356202329380815269561669777197619712239175107005190812538560813821969041168825895472990904975300634153931473672945140528304063148817410127555756109804992035564544909009436940349290674196770759236268493557812979649104754083093371067893406932442037493712120288902801827789967252430974593079092246914310437541440181270047244773421711246528875056833006368942931615769937520564634551013410492059274596472560173393873524613869858492040611472574267487220310780055584011063218871096573069734972850883669998514448744327837327347004375252843776843986051842652275467885493412887429991878856403048141479231639614248739421078521442624835124029529136817105440822830070859241271571135576402231073840643984025227482349197119083291049518458545650353560757091070140137430331697777488964244079606199627509872860686203982794845526413499222094251579885418227592302431734440816420746745779825809913832044483013813950626101199053405094856141492886783154309674501974372714896384850852333458174778593758145484646092904516758026845697084968480683933139951308454535840161150767768349796497522663149708244123626503519523305679284946658789216894438060103472004261388834090209121110425257630117773715459309013468005785689273882990188173189282682264733016766111497943313302680647891046818364813008124383628430149570662744297063916521909487058025201747906584804093296796111979943931044435929824186353451690372189187827537438911133986089479346762897628853061473510245746935251679757011388946071207509162368619926206918079321380320874322803534497718205606557151939394940218761762726622539971269991202204510562086411420152630732813362670747792785971463197733190888125274219299568843430921645136177750133255468239834823796761781487868094024881929407201304554793205717363262217152641600247357342910749147480017124212365464074592617728824020242115772670010251563464609742028902073457169048258841492543146476402851907554858329377790082410741658763409259897479794504582057747007669184935965271827489515771485044867445615964600569545982272144173275267911639534073633292662584280548137632666641735908546910429919873859517774339340475571109437632393482966389015593948098853517252348861637241799373200232783602316848624703785651739351673045547147088746548875890228891988572265365147688903448961958408165694897759830453797195258322367831765506072592005076755980370600899705180519077665964629469537033743927010007590687460920840637316602600517385430093714491110309411097838853044706755005285992048765741539328364373585538221095204461838744358917792285435044122386533223652823469566702070734820109650626786442296735785881519802387761568115615720117488380492864243697982003172263928197558081359057789404530599732830643402802334257329387679380123145394421713950574550200298331125659308629623020938695819630027791780615129455317296589427168559378903664058050805465855652720994673604185082402956482138498025585955149609345626926307623227310928954471361830658898644126651276851208488055055455084715081531076970427631049009193656033102339593776544131621446233120533200991198272666926702832501727874422058889029366029907462310849732141679882803535971187188205276671801998744335918899145264761335569920492443643491474160992894135339032023111577461571263234325610060229994088349057818388639827191542545747647059025224728772036423883305902130924016724349753103575603318099203735518073823381791860185863230178163690749996716209959315678993311692680867247993002884880865915431612178908939780411612440377179568309155362781267261731392327473664498197498600939524409355194934801395972543860487000764374059730631958433840354283558836937710301798073793770670788394874595614366456652172912203200889991411001934828403721157427736680976286973642403240020930589788567044986889946826781809302943491749943591728247614347372415888620006267581913521905484055203343519182845091660601947467489898902279982337791606624468281309886386094821203654855421286739704304354526298477668556421156109637353957549178510196077256872943638845797653328573848684350877757463658762348114823182750235989538986579888548786069676934110308434973770646434489518778625187039570652209826358928053699894096298493967188252868569144145004247133220295426346191273875711886059185365678647018993220248724216695582410613026405478308924034175178907917196844110888946388961965915771871707733511584494735209463617680560063761937957179737182847763922262389673218824755481507526249543118289106034884624281747471797954738955498733850524660953285480765190104551479923844136725143966946907479011024864344294974552181075485435309641344476999150569772807568166879817810537695609816593761821619764519149202682891990732502933929206169038340973454429077083524101243462114686995526503238569824788673889299454478915766175054639501010446613808269366067881004701426237999584512638584314834070728848858494488386082504316495793380938615532580509524367149585588932204533602410642027710375384296742940632652211222281113808318704038042549439077369923611306429310907559226486929780697856249461721932531216938639504936837425695741586815998864548822989216004813297543087306837665415771095496746579805892902979010539933873855708165667750577736986763448362505278418614527057731660598082306306995214302226485638763174831942282200712032551950956758472991512916539125935958268285305569101386204772083307387394761017067274642131791455397845765565330304521564799255285341256261658983806664799470979949729111962366973575499776778410806981633437044043533660879941392987796723515186694120576158385251649376861239323792921042410751791750552514850316501936512899081762604584046603116037401004813582389927560576097193674036546715021968909567625799641944715788305731525685385624050278861354451121640926638076976186140797252772813164663521031418589213226507159058658043019088008185770857026518177678195414138938539397304468698996408483200084239013335880907666992823979765019157384929850687902574014995439400025268580486833355706384799050239116353198982000880551568452568445612745509496668977225715502325085275836035725067959208691646350510593727861112515011089079181310735718166459791705465459946020968988210896914543378764738835000770808516906390844749901288984410500199425973804805289836704680677492891058828643973239377361174570576791538282500636210194923588690490801778406181254802318802560757716361933887828114890946723741080999105816515524735507155974780589850591314750577467514023671175258234995692338746536001073452548934028926174208567763376785657822250335837040058742054517396746514558057669127795979278920184471694237106716149433771840387859665424897258687292127960882436555562764939160688220796569972744552892342990161409979593338771985652163788773723915023603444848568717507364270310132426315416476113577254380089580866320297300497049098643490521118707522232213846430995893040696376714460762084621012553715811274823655370224274282273063684592382422862685691995658100676709551252725245722423114121985881500363328801893483459900115820705593201162950984451791012682076494966496915247081649182957788738545295935019857963174054417912650046640338633461611256535056289170149153351623523795632466926008640236939110393847868696699100436325970728018817482622641376547595666010509032683243820378375149694296350989671478656007182187625232708145289390500256579112067986860106424400815278405950083723797595009746307648985004159883817941013392773158010381551666777411889351563193443683664930721893971274265305729977934061201599951186482632163346803212191859204618802371318511316902731640844849642396245269292153266360939034293513463921790766197816109369513487403442532527715097904422671048504743779404700455448421330085194595241685019439143937935029573296976103528911417891890847262070624352334614480926827380854095017188843042050681059602133489090216648969466194933003660655739896194813561962093937793931946402180262002016781807607980883419081516038267809225093345453941612827632884476651317599552479125469113721224679486996708144068598886531813165350440806513259130663486287123613660745564686763442021010153966044080877834621363856422066657969109033435151127166027834980353148294295165855751087345315688282651888046737214603955012902376050336030192612459680996133255570384722016324056387160275486961051578727631445070866934898628372285498135178839378688972314083648740040506703282257279038155602734976276791312711747677261264169905734108476337057572513644706195365442384899740824316575883451399295928371876869104366045514729049525769687121822799055677739526228622021967820432709059650012343364537213789711135990946226463593112690687190714972507448501718251945380955051401549726642722577268416896368222725785665297305838695865700661898138809635438561132966271781303057124738658146619142373065670880643919510579438108234012251317470834143243915194267714856196205683037902497018548013287948064259630267031711859244330523324600092037924169049332478953110152001042120517408778132356959705371596716498688145114369918849202166865062332215792564640732889748874415951939655845133500322618117423003940304993961609005748719824602468360083216786435069577582822658276518212254923743675531118944692614899073681834944820476878846792299958247886842266053513336800590282804432435429719031575575417591497165430687316944701188699013183309813933832746693147629502400448181691628797701824813318556001360934296369988883535399002165618611688283117734119747156450916448115394417151098728284269718678942137651877777024464118879519740763949584289118557081723394409058827100000091695803476722602675797255993294917937713919380036919437600502789908355848091034707130460251092376617394388983348643949739040878482472050957881831373803444864549175394241712009387659838705993538292081008554580693540601107086385594031166855940980112499066962852314308492545870245128232792418835980606135761241206611836705930438558925545009331502534740715373418938421569449784602889183406495911283048666975441263679487573522113908141440532187903079511307377532770826713278866777269293116350406390104493399587012448691133088336244102604327070474197564515931498687874058370583227421160487331833502115286212495991150355321113160699607488588861467536615069301980101080901744598912700133468971786072687024429640386367353937181793157011423350727689042454157071618345506117859645504392653523551404733315319598452838763649068008819303653339325148370112164286959723781832203866085412855026684702221094289638485612006676628694469350976389816329672616441821808836912354172633642399426858348404950444403048951614234373829095499501398936416127449705845011364283486055985476418738768572648499198585450084417596053280964924369179590917350221373324712387055059756672607612816454682336770037338675298662701213616217019519209298282747238768912159011887788290662428372873934567624925038185355200797738482669492376292032189483737592865235608919519633816238097316903736860543856642854384751752721727202467444351654338626533018381816710588049551062462251274004067611489653833742642258367996294417964028161798770075460319253877537832278522506973019287209619691247141440733587124140904666489166482603460403482759897861258984428224117210068443152470934377914381137962162268495038692258125552259859827361957968879591955893329376966543298500799235540671492359868172100072630074877883870040841889064039070386980762112758549383017702634839214103163925047817998955355143029980820873208213662466937886287632495743299560926352105752707869478671649040742880323832632347083632219732502763401950697643965639859968873300972865271792854260324064769519679630619870239024948076710684266675381753477376675374578380632665072861288301305262440712138016036863081181528747162183536713832772442782731229801468117132123019056312763991015769723920386698200300162920985736896826859935509960505369943512339180783200470377885356255204759051817567340213872655486453192361871648766143199293398103656538163026863033104174810229341002705275729346245923839843879292600674525286631837453850646376636139386584302421196472766815013283349110988087098788398407573095256424242855271553487999837848193827730118956217060394635153521289589526240841951614631951707828526200536273163590416057720897008854733769546676777939544753110706133690574269572570362218653678820579467932739062402512976283424668177292596658785193957828866235316529147181067008524926813349293725864419145624717243065503587292151862945093563158078129932653436518283928670492033648317899874261896349663309186777848436462441967303980049490188052635713558956268790305145535418399327584627311214366285465284213697837872544398508453406370132007286030470124836956627989075865123340267463661921375784088208322206136768649300054512882405508175683005917515779114603516739350232238865841996037150927885377340151591266867907517448548270912943675727204263304755536555280595366677066135218038637498791412408915969707717384392559926103204405224605879949145631347705913738382689516181152682870192832246817287237870131746261232186184965278185415170662854564004983574789336196909672704595311465660873396024140182684764714847807731771008278902924282381144522290159623266683295731496432621897393789817612480119002583956327199545830129754064045127258936596176888192027317051327651940167606837304124354648370215586890536943330847695968111298031133954077993456778067774246993392543090712200741052872467794672263487461226753973604887222120735509923041786303160544926804684928020798645163133724179369347956352515239826026012069840620031450814277292500089411792148887572476281270092632276150017246621392429676690074289106553720743646814974468573747278923888039882433791503305788579921393983127962309650274191462738969400829384677105162889190506129254489358020371565730463181651447164405411506060798964790167827871739499786626707878132557802603065725232546714065115127882702929084454323479442067376521027876662873274190529281695295620070170647139241548394627391714819708908334958870225959421230229368249339480145639186852726309210016840942740208517434685692042200003754467932406247042930506708344392210428110112504612273510991489698107956564308471133037012521544604392377961390596822394923905528385916497446509958300588139084561059534300713239496077163716919531974545018043881374486260905268898959263198110108134806266961948110961196666798903602351096907244383544507372504896163369314435632311567755100032012997582560843016087847699865263302500822443409228376990955504730330813690088806975530513436323855620940336209205388582313551171498955087891317913733046904810193075862205256295663991096387061287715089080177117653265179104203454330171890645598857627595785349276712410759076877082233745478394334719021907967771033828899932956326993460849530785912672543413060487161572048152674252458372226641861267300422869142861418100206211862391441804317176542308448842137043467123422590352072652177525108529676321241829736898894673067890414218201436210249037682815117311174579731607698413625016948408073176615178843301732028439360547544226659587068492698559162096498033309929559658610137230970651242939116124156685663506123458005268084263510580051189438933143206036248383202311038831932982545200380371768835115842401279760849621241398298943652160509631110834861186588398523744737666634673070243861889947441195962474090798108872274656139181940528344601712390156385314235111975546510402859990078352989863945860819809600720449283999236905052875082717865167413842920410714845158172185040388132298894808102540591508204282692159779778702006758203816483671193457160637860340374672807730639290292576636813296245300386773323545539985097439405482980573824525613617412930015314252653688820580169276779272520574026904883087602535258143361903131636570932161990239061057109158400031598607029618476932950513311645644290158511536950885339446190867670521093002008993303427176049267327038090617196043554549142951423813442084240728657402139634183390336026380869714412496647116293939587744933463141438830563220271600402028288784551076268408952207683319063354852520750856835351316603682844676017158084440962832664918760635930570409254007298913649338566202489756942657919649039208902776379927998699242488532820183901595436265650049017651776571177446294677740695402636309661043149960743676486281264009763004753322855519675024637900614606152912510387260250513973752701395927074434047891870964579975985523130341411951524787294275391512556756737160444364007491986395125231524832258886383843055605485971521472414777415883762954059639967470902935003412417224083693184978257387369250434303819434341894598991014990309015337944659090173526286536516754795718295086805749858217126929075100984169111976372256621937251522533810241076594516077984270254973928148925655929510014062967555252827856167979578508986239659779071356852363632967571112202652661165292515016520521123297328145017413402215862599264144899534924611474714300261278842163541148510970016974697284028000503264854045534717846163547923888397853448402450392700568049334087479999147886871096653322471436084541324946693446127899788321902332020323468418617336296340975811807780062340729968590602435004788303431922413267694296474531289247633757533629143528707683066638749578193260614036015506032142384146728206005691061780539827177323180221895807629699068869718372123685509235435894351470121304563202123997562625036958750494785339072904354187589672836575263832313547391846161543835538390317965771438374999826876085699067409172107398022827667313586024634865670549520495853777298432980417300901216021343766020488754359764171447198739438655553304784487221866784349369606308060171312246044017294929608969745643180015133604559166613776619202773205706179972257744015993095738160213898164173354143559668587305069471421960009774738866265581539667842328162380409019759483460202964669004864181511306441525806729022732705443987725182266232016891387183850235447428877880312512446120121998843410236114179451581233616248383597307902828295112881982507832186970778221559689157133084944856748522687387998119405349640546449268697292873690483348042230039048705230990760978193534587600125743843699390495082424106635694958123344529339352974348692151162929008664895638548307419025517428589751559028129969080018290441359927912440630219745702204647894644691637812452734263561986663716114332047560831488546527983972911499235540903493669531958068946690694762793571545822217066543953846197842621476340915085531075385428431050797555869951052509670261253445172511011009132393974752418819345699381469497792822205816672541175291355873180405172036662593293397321156225292728553926700624851659338783519094546543528807240786803925564479940179093364327114948082672116975839952580454327649918205323851644392291401951481619112646669287976137216784375075746224534695600004567413037026450073671376775013591623868610327656126250720273699550965517636039887463374205900857166295198576347404424427214682482402674405449847417934063379320394878128231012269582225757202051286293149170339260633051109742632284231236727985391926100218315591069503889790476386729892974827914578223336144918080770601222505085041078912646924743239927496810988773634054630149319298682758925154022442268249277206267392323672131408759623787106989829709154054771179484056456259893234276910170741031508061341876743748485068745579958694184445819002568184575189090510980820507539795527262425567371323926563333869573636337709931456353279317527326437741315127780877327553438196644976378743061000975613326249844261960283226977145790503898572948014570445328869742180615206863764453353504714600676167354750419817549559182495539289133281348734742759320316574474875652638048195715735024585880167628419343230544562352815840297505087130890203720795813975442682284689389802525669295152045515246963195046167154953929765604213471226896167097937929052291524879598588088346667713175187988859309404200501913412755619957186311880373806685663945095928027872576386616166811597440726612903088374061901900174951518223304159406911836601093602521255499556054319020631930241964706644608132841693480390099927739143747371345443277699817729678175754796461862773816779571643947882890761684046290175281296178126536107529713241843592849311743519614520775723878988310622473996380456883678371961621580772021148213305436102943944068073690146574662489135213241937594477997472531582049890546765574114725553532304817235750796516727268474555332938399709609556014042603676292336825083145648650676409194028496086675555924489686662036610493750702321906144561438802450524172517517409079732177325524233676812639182886368151030733698776192372166472670460057193001697412827539420029291956809794964598932684118375276859852246108050178825288402177340063258332807050161421116387400187164194234886311291258504799393428435380050120266134221867502486760495402491069278166898275777807031234041213606899105549925733682629523334709440043210020332731476451407450508852656111264189996800668828711194344909352711521473820256689376434157009771176572431085772642455207154239620800612161859193796614635716504820399242728603216054495738033007381829601270997192817669831077246357543942357637805974772571652023559544937726780472051138069931011067886047580397500545774549432179560572346752084367816279335673563619421613989198896400443040755787958739155476038085829507807784503382027345071598016366124542314804269007380907843520748940493271130220971297871435687629999949583524832104681121725858525334129489735190938105264373787204120444219480474530094402740166492496661903211318656785041429326408125407563846812242047523917201459973251492033981284253923028317988077542011648484177425624650817656542787722571876835687908458864053896880241310615891557878053326865669650115054810758965072119114468959425805042504071296540479416283565974759708315576520551111895232995318669388067515784193085244739720146418619831621136239146749676520221957337414882823339646095635986693554335040901500891573636349327295464461091328903036148749107005029397107767076552923362755796595209119016132956272499761847447121141619113523363229656367650362367665912177808910402278001589892467673475549647475532154098277716109374363494817443423716374559313373323028893250091697050323701206341839758910651916338848862879787908078446449180690195414048514492834220989875079286406303495638279927375869989975243342005701172900937790554334555280237933659671817114299750783442195850484905425747220589950893898806466088197538070122999607730662282531292436931952875734894721647483294940571421067565162209032560749354369133599516639226025811298340646362445489584045639955932347764926468031707506004060824292898990811500080106235443672540007007561967318362586605329948328038146104281510121832379789040708126336106904284058995626260778110294017289359203717719284428939572106251534549847609525387776657096669088031464283007313437277236606860355395685818265575229091402977503813271346105233768728912757706164550547740958170073295063019420387093080859941538314512876937240348350103697787234107293411084557977446096591023497090591798988755182240306647405199164220088757326384403500758823471405705954747773326403523807592547614313868849995704135665781279283820937366461135654610067314727428792416214330451594263474334250236497332254976200715782065036337665787991637742757206580257933026823619635540865500278322829053639399464811901945808603109477667863432589766248264227506013319892493542225026952524141548594515152136494285651087264531336216876303807053110127769608331582153416970343653460383042353465610788481299319332502462583296911556556384850946703652544107337189211934199281007264927928041712927201141060125009467422730627528986504590437829451066068414951878247871020413628686627577207876573536745840379856349331764323948003991732977751642022490217134863689678861766052256422016122580172507985061034870190227424854237958653807525914283985542311821513925280856705214844010258237774815956232533295863055706063305192801794866533661712293082578199336667398448135874295559509135681477210426146015100407698260286765765399700248941577478851323005745329572235709958578755682031458214325444792484357893339157399868771600254753555427020796919853245746057551964601850376456687936868064882101369414743676966208593807531583648976800208072977171571964158382469256659960805080755292453850571670233235505728870666068314061630256789088909327356513532621718918872515272649426992258696307574592531793837171676496391004114833160279560758991943065258980542550119087158086625390106842747052034748712301945876331504579156395169066085835300853014490241842693483223552725461177833167178929573653069632728547854187493596236578725699683214779787386658223333347852264533794044731976847102326094208476250257672671989618604703936362222086895339858413994583462471953901286123077795300300495597865753152530523254178927731084654832187377266263593290159489683708738206192977790167826492988446250670085795060875751002106166461766643449463613075995063575206976302708225093210753604018213540510265037753162473165292047011111255813036234299453854814205720479585400066254562968994201508255659794954204006916801012576986641054075747071234057385707940323874151150520276082700084466753078460192395421214231397176934664100459449737616403802413190918853537348447783933175573320975444257656910310036738195836920910759887045162189079392957378671699620692731312478823721936552860414623027622727224844883804586335533542659200518320167908078477043429606666170659063513659069440941768059602802472158066404299506126061592947879222468759194118196990078653789306164740003279368675137292347012352776632097391759487383687662076808302749046947285165089497534269000972362539725343334530475444947842353536989672245145526542935053898422702841644136894386657999561780215676828282770929211688066944560490160619300473285406535754174308050710197912101193357597373314568004943496368768681294130661200904917505489047897608386801073755428587138581350255400995170012030605401832565396428732688587508479300364189589557649946869588179596732876408447691910500465515383113213874298962650114395207098173951337507253503875025685188905779687892072435043182702749493727454565615722640352204056932932209068610884510154114634710403194657954945983409995470196903796385369184886539443017118702073603060115817652057740767602292935928608164617541279983074294052362043093306582938472733949982463859748559131723833505494628291703589214874002890110400278547052817739648809731479618022836303365424576391373118789338229658712229280457494592922061972624748108934928567614303211061589068905683656658665377450484158777573573988218382300787877903168272858132870898783247458710540359761768903604517575894825844154341945614952175372463149344844455918341434917434319817043799370497310457872708755177163450585853049412721379976747167437382072853558992780724532641471197661862966093709023007424469783904289715246616398146490166398518823043567105652103855910229275987564714475193732514714333650209524128295742200475135766879685522834670794348848533375456531561521206758321155741077896656488983079824156350286094771765138767598851835833416700612812960614954700423289188048790133485969334681130034973981336886544986320584892166452643085177551612856495930445908926665199524233594464171101346463491492795929944549307475628400667712399626321212455130297503512831173485000516401433743338511165704743545904024620400346258365419132130037290622413668717198781914986683187751382456528421626511800482558925713374503327253059355027231039784367728718882524673027750720565104194840725217785617012881867859622622947688193114000921410862357062643921661584286897274955466625221814111750231155265288361272506563891618835772286213962898905773009930267681617549206914448770515958454201040092252348363150786155372618284194876415811693539079056270079664374129975214608663470933896395098526556507235520869403932526333008107264972663465642950430152546351445849203631397610391271062577519102578348880871478826735173812823396927473380630590410509102377400909925877588476796617342545287493109936298127002912240441645936524984180555098862250321804625844661284710715893137868013013477299742536929897097512546573024058890664267284546285278573636641993610820076863107147109666294007793030927771611195651948933052989585944565195820638091654515738889172821602430650056524130539445861236297506278205447482235392452834887846689085543749257577088319625758230622452023894965529536487296377979564479137449433769453669457329906909873290891718582332233247668266833664351270080833105128065993699225487616573992144679534541085007221583361480065004864385699707893807037037346755433015569012686551361833179617311879970172360703902647043718433489646165380924927861970624039168350444327026927878814825587631220155794387221408172194850046828706215447127041069131354474621638932272124725810273010322570581171734627087712551371636126694513819383932372223017095210685668608185966089091319995840288650778411949364198572386460207338678126574883766597886373812967507477746325397102227464535523427227690971157014648345383315961889302942352249437970381014476526158101360171124838468128542505592002926559258586881026660455594375922966339998589015844223226296773756217092085413113807775439990397452844083960897282813852453197350550829146728241357204161314734802250701789472232794609142090082832638489854127714094746456706371532194807339684528118143431013215320956259910021778493074586059538161758079579978667852045910262729103424389802020932868687946832896586590845379329992910187075193379503921507470154634223875063474592273730872430180042513790591354528769074030995756719642995916003181988386992593379608216735175101145647671459540142751576475913208077538965701778557392293073175316614094135454266315783476201754400019707281144460060808882462251868729663976571676936104442409198145064865167175031080678522608517503456674777061072283059294778271293190424590642925285074396783020691942942560635847632071810579210136202410502310046473172057567093865652406438696643605292322328702827057841237640964853990233665277922419117548865344101998857966461953308666459998671569932220276703637186241962635286966513348413727034974446985689953251044527533429344172107126053679745666474828558301820156493475239692527268362295962543807571269105843507003033779546975087825069368609428683751852632704206940865446826835161526560751751712852980302913426212968717659945290714810679024059626607160121142557216652753213393885993908364085398632122080933268891181585657149558275688692812801791575704580651148977673507400586005440654002848220406333495847831836542322895854836904049172422639960786500820772876538194520316386029181525210722063311650792231342710498308451523383248947380080346375530786139468740090160186710309531625784466193673465031569555474867837794758529959902153738302924695380298647694025383919920067305739775116084827396673507869098987778676156775080134268043615440262545542409893736394467235674499108208450929614648357774044169426730228222585781208775609110297333686194847274026343698664508051275639332690537238742414750801660953445614013786718578994877204455798249723210812576021986262858821538361888279969292850373179692159556587970188423884556099911434167834455067282099914311681888510787386598128125153369449737263169018996891249504382439371459654756427820628185048788174330182772994887214398061818312970571952175439534505924250801719815302168636612216968094759872165766295272482552142309993789755453050728903857803014080044774488845320419085002191475176776989216593810674226578166843917039668702770552062616494684083063671121579516775795265650463801628315873795777938186021484757956480604090995405353833523158206773303186179149853792712669888219654454318570554593141722696317203290918794172513547536775392567697932946288977248252561483552241487906414599053884948693478432853689831351969702341570417727909226855919169327954622990439620563110520099866210154628684525708485736864493663757291819282567133680978771047856959806400110928415748493491352347635123108544220588901862883838370678504386522438126144475454589651152994451842559655429464055164782407286297905673789264533107432575523501852133415622170326170054614218891588932255889644968095148881161637710745777285568163422858037020947292383110495214596267779916391635557467638017601924113778865902486314180321769112062277034719245976260122618830920382239399710793904252479982527752415690962188508716547732655880536048595574515105978566368933586572627111934582761225901245089582804096291994053949721995211084943249506576838748502865510288413368215918627943428018451086403093398174302924512243663123105551413289618711648741273764484879121184037024365807839367572208224572562890381461724569549777599731521098550832535184116033548066962914999718514891261786310752820557823525151284032572417163005800672704863912326915359293080390647955308043378718502183677159924461637617310743787916814611104626019866627081967315412465757928832486938745535498259097750900346039478005316835024796847723269763249116317668885214440851483209864156734040570849288563005821997910656506322232805819363675852475957568586441443019512719543723732769279053364507493336710450409489621532593622757012656370041865463649603705022003820108162458631703996804114045259693604721724206913889258868834869858751431617479486453655774997291856923408364986899732117795899715930035864461161301411140672018124045008681156247968251178483199335678109967659845903215631875659854346439342003718333683250640205070024116738823337500706575672843940368626167200669286743047356702966757269757219104691555833728342976366976493972610776241172548738207971942183750913709275862352038186848578174167759007541358494999473725369035583996806189356762808633421209031817419503869559790215103238546757170226580741255208871555329829969281973210380098352072313332132392430575208398684099043128021752889824746000391957808376953473663002475789959626398344313826550453733942121063879970839927113690376638160352914849334012572429800643033700555850800132188903590472748636871215922390969578727771990897153403301151353083542159738511751006111332446622445797356829908756711480008493273817873632332055072646320680189275866027045715088306127949764501125542591626214293261641400792550865241197028198813631461875380327588204315796394732651567563072389015897324796032060534122773576793266187145582998052953527462156803085832949094535920565374187820496278923159130673238760841326755517446200041337084203890966836399541711532081523048027592645230408944678453594251737039011079122619170451583011697812947022545765244546658672398602292814971691763101425815218478545801753396888318121838546057442491839194393339394489983219937993993653855051712499695554356887879040481690558459893196890950126812522257647215948889536239772855668200381996325986802001287123361259903688794172454554141677395275180510612956326238668066477329830861273889150186246014850828270013565385440143592113316075689905045644620603628738892242099102921734482522403107729189759195840949840059200155660894812903307321873351612056745264435560483512423908868853133642407031638978677709779028722436451519215411914064482770454045062093055294340082570389528733126677176015616931696751680499948640733982401247921985730985584083035411481877448101569909828150679297968558981585352283211806280971268695246487462798605144370931845720646643047500195320859814503834533535188440204720813537995492170951327524101297192753208599938171691625269587271970857343386460040679780803896416625107537104962557643366508399190823255674763648535047927213152185679017752883813194682113120526916858352982178915829424825176994786028905493321176236965109053810774324765247577511946196591868435314144139884295628457900073736170507710695265542581125690156349887731342825940896405672842498788003080585883977831437102871043416302775544646093320183160482190371349572151397914785030407592912055120765502546296991615807906238524675346626969542446636844553502789775516705756566227707906101685454583423753776952102832662683013423883960678381766360083786459435023911830008227150727365084036666846186273865129874623255759010845030323318003149832332807775268924553646081844619745180827764665897121655155895851636465902846471186803388384034959909781014709890615288597261644318620390849734621369439404781586234456005078383278490274541456041026104445242934104564445059834985004670353708892656498634571374521948119214619913516511464491160632139148091124770072673090737221783139607040646097750216882122385369438585981948644277756263064284988659671993309240348179784443268611768116520226287926967747833196547048302501392206212964916780671229162146002420733568117639322938272698121517474928422441096268236729641863574065650683507951302490493643598181751741018300328087619065472139355813184986388771590042106102939102827122064588000937025372092694185862254131310486806613413989784516575567251416217341696858076191527429306478570456769197349672732328642317745624631369200256861450383884963679407358367424495932582439283399969805473783296888522501646695618878779739386966095075076992566595088976806227302213903677037207931874939376110602956037722751626713097535346125829968604201205960277647574210312190998192410438389245330677848893534027105392410861177998597482971979891307165980874518567932167876134208509426091136560359055250124233049356768033656630804368209435483862529755244012215706226757968567988879247052781714049327293477626145204894446496607820345782876426571641062962330604911280259590591324761363366358930571911815822744170032682431073092693550862295767677269595023675283048715644760883417306007648098266516669198285472188339373863626305315143808128299560621290439676823153576676278559583889178231598306645502138212139847173527544105258850995580425150245259780460643290736572485201137564675469965652484419145047271921217909823225683067819480235305301321816146833450991764884392792482110957101035937793785091814846339582960456993755723749006629239723668132857236338087468070172179118966062082243970440259858028011829487657347044693528518870335981948555213670505540929123162123770915439063544355254079763829410070084273977252676785348041937161826101630717641932910853554138148084272152334765464394990945749631822701078733073687014185677948024314921412021764077422616439112714827844813548667970522326894290847624461116659197947092276648304864745362881575442485747267988832589290813321998934196931888548059790488210318860464419171758623883788927546407861082108631186589370408056173745035994659624903111016167711895856109352107480698522645770793474100555798742410255899491902460521014838280030491627799065299168485433704498292357668026151372958958958244246011516959222755350848703698394959212701908791080854113372568136693883285644368244356477339958456790424585334957415998491924120702913423320605858707718009856395387495049422506733022667020027303330299412466753487814076967155598707945807554770845635742564845833765748824909501367055708935808449132224581761877390480854779677842849301337594216417819394590471174968379673423449489840050690269902850716302039554693850786757580003923210136683036283307960081936804957541888644943061637168640447460837242294314668852331397061000615977049003145636528309492121828832251568969492456285043136712085270847737507729253281177765161345106593589257701409135593625143674602374175515145889112609707010485955382173521160215568804431131531911755446561896009842397826051964596596981197823554167560628964106730290874875857457014281774804757890098240193577240766885779944848862397728234330083027045062226749371832553601018248249478241874274489353535616955605450103130592335193917641213265967473220624313222393885044595373688421625704281952292309603616299666467262322704095830937132450594927118287146406848313858537665600167202869375016382450288154946803834025193275338779190518901756988256242549319490803720503967469106445931014054057576189581167613813559771810327332558539353562790146867328118253517160557998948437093395152318810663517223079138631536159682111137181757375135831305009568600037062256539920837679510994842585141585878304553817863975673557093514306912516299559851447584130890500536080122541348610019294768554332069883122218338960758153315931030639077195940476212453528379465837405166425323597786395416064594528134738576995661723289343132827960085620923499381748968488983335707086393449592620719756508062944431039860974790310590392758031758078850255664124599914574899730857585870840761433711971679040178223820140111145779711268193710627200098286833131169981983535307233001920336440070063832181923200427268719888977148896565322618271352423004539226430475248547541616571726789663928124097335405632359803770624795538988048914742923193717668374286066222917383422024333911151755126394823891418426246513428464439535998802071778990907006969820857580313335334130960998954864484264308848394242055787444451967318953570502705011319072353365610187747847887840964893872816115434328675787559527068558326588066116380417729139722954571041259610643526101562340055522987748567467334145767628419634968770359365951097231113751845771016144213862749104857001391864962487813829976899001925608107201309591993647864228618807785266756889126965236118808821748093653843794446407490089544058133638095270762426601926960511613594999317999083077739350458488256262294683820397286639517462324619938016497599869521639591998946125075394542517922190120440670603654519678410191849191310910033912479547472968903225040973642042031732498493374277549153461597521413283130708928148508766856215490558523437142386214516063784954121349759032548891516531702200273539381448685820140438615573844330895672847640213299655850812731428671695765918842543583534128146765006923123688246730387481950299972023229632231343874873682004052595841012739018466821759502221630337078314674480246813206640117789144570898176761496799597414176972707190554460061432728245501362026207074072828581914450512028516291306963574649235195786384869812132719551199968410320047763340056804643040169356128286649291108069035131407068431266100135092836280374575130674968523403709322902478487151618347776634497087774718119594486712450245082356328343565569297017685915054582103759644711007300955051675457043141825472983758555202537728925302373409015574968554286470145305088045994168452266132532208575058471888336785675228922740060582326009806523098544181974646667118911687204338371702033988435681619402876548154522035137900823450104870687350354176439176111796770287981725408705226470942504152156170374972933904911459153788858814722746776210079456043005374324405939030992384223149749550897582977914402343750434816011087203325723867455560401112213245462241027579180424860335585703034878099946548741681338610412838962091594054290418737147935333959182805838744505498565884171808405197248176743094271320527871685469290582109967660980851358359641422696958141155914458104573639830066626610330608943637155392187845114612287084321892693733956427069707621534354877985430972644884862087778334613424208981288682484011981473012285486727794109110617000880702877272578440848471599715075799405366765464341550363587887189795441738052999952666142905293232757112100956814897601436961339201685937780556734085842381709532013504246508644775982311757215542470797191389244414352263884430831374840360543539598044337948940763989781599584410987004168810585706272208894621930951675645666527230738117807121665145229900283166969558666521295262112902057988805795232380884969338248819766519683249312790872179147079534243676233934822278316980971564456722280042430341734750386045785392033367432143839404770148086889288169640103813340992747953428479263535129290654113251673661884593332659994572987722515009208121463866062244012483616623101222345342276303524970850467328484661879105696368285395497940111456318713199567769425889169417600079353599480866127705494771186949102822713298250894797627530023225465167219923753592582293556192134473339340837124017765327644636681210914113877631228432277298059828829523446122105057753496204059364090451101758694992445163631873090808461961251981571026846307440936450570889480241349946264071238037439001481228904002744320720826744819352959442272493982718534262452396285647657154334393112403402956750854096620726633534566971512872823147656322361143716563269125369232071529007720062988000504155640409377909011286178522175375560543077945922626113571419076883271132862480588833622914999492423061669510349753649793584937092934752507719168101612438576495856966793253715381978113125178589132358958318327531251829804969823859251430941444206985559832678918436137254640355502859363952906743950630697234545508350968109759107459491357832831280193089795290864681678313221129671627526470283025257406735434188434277844698960204363252552616646630620403088453892515996143814862618346503050954047253771938465399158438571403470489000689957827360639261605020948833081821492390693965807655653065305354147486248059755291929424132031016671147995101620167109074527924701554517319836704163447913587212284090094122752914200864779283263588718506252296989042299869580610833800753933396597624133460895226813845154729178584987453599507099758064133590245502138113082335779247652754653903039933209400344191022423265619363304165309496875689261273656473110737327625812662816562666919800738537158809916773179147563622354520104492673211107675056350785047889466185747652231598633258047679576919711344614482060736298049297710209917120113367375017586879430411168282801804598672356006096494372666867753989880185310507523338137684334833008233441278655453294469905970972050182757768968535050057060125481208055530117768347767241085470838204957339065793841423046776289858749531689901954914814090889682450566442585278957451538636346952035773697357040428398469112376809175124102384132583439964611539707938048983077238832387311501171336530637336036301663514773581076854083835099228713761733251421265588761991769432876336905377963135129689797176398591455538892280053752880989239390316541981648787916989030725885648073894857116006071564492886975198311492901556685082631118364476476255469700970409289604954180392417721103109366828206094714334275193827883634033817202456913383221718580825634274651352186759839635454763808638273057189915197333499791057687211198941747860417859505297383864729012952490274487812728208105387567029498241083903713732906909973642636818427645089261489160023773121447656832029794671273310862569768834765471682895281403647240630718985989718187389672168197505998366594528927880881141453010307096217560676307176731057716195696909894830264149986818064042623717028409138539976093431696935568455796976208604882382400853948365701580638305507215710592608947902714641147149713065407939474468338070675222642977323688986936515161457825387939686221852689857661719989184856110207474714834815434752282263954862403536627289266094507907751334721506843552034600922868753062136374732127957256277777816893434235561878559290070341408754075024829378229850326747431888146245776779042142093070036582764253712323072298498107626393509453137832039770330749394730004477225868285804752545686902657318787130985745197411361853214329820979654979995145304264186411777950104466697662289718552447475673110578093163254269859261095682483378395470187543360704048705355634352676157647780773584117001107046455505916358741349248752243775157383773461379570155338856549633833040253723762834477884959913847865848615595923255031013887087939563301413147857577128903474046014038972206094014677424125843511989118231143073658283155574056921912523511838584716156409700156499055841162828837053768612702925553333715572734555132564830734301418373537479051969470449870063699968849634157857970574571824824767179226363060246634789655601925703588556442410115879683669530008228875436981720259117698283794141290107884777348285198306641129714739404003643141776007023226657650509931714025341265237445710097255634465813565803502248372331849341041381809726900333051985106980023803188506359975735603439267889373028690626538270582163542046426681710998506147726829622012853025187603674662280557726705829731081576810012218537122405501406942553014659668930432074781212070496269637544087203584289618554465255162815290869507686201094610643409652081449867061810455794980831047928634163236702507751875862109692859017560288913143746767602754069283318147752591973423733428632947195689748921805787491096168156996917043557569095953087487935782811307754136575388289770294997230692306614580772745635388631521179304190083095843646735812801355912487956797874928611172508890368857773514710355820338264472656086062056958107222654728879076826331415342319851797826356916167089564448202236680606254112848265771749535095587317796966385033877122333352022585508559763892424547824093280739546295145929557983946566965450367077570951354511997309819254341747898491797040638181029066788678145594460491266506568522404224892524353213718358420637154724243131522375548930496264340230853644427260697826934999993502475729080125706521093051485506893702346667927512612040994876789244088696398684178955975007094906300447913699961789047358802105865963343175830316016052079616993250955115577498894400519045320225041570996457483267174192306817673948770881181843501368689583410888000602720245391539656741922092770278031567754346381525378293195866511862795111960166318904282206418940813382545036467650290491733375405664529580783504506340320151600029105486148483938355292103926482362204021970842933458411037047611490098479361049814684704369430005108712698676118329388744246588908504145473681165073027522847475123622923922317836081743296698685106676264393176213976326339036328214845502941483203270657077699814637611706260948801383203033066485669355884762066378869365414189249433111318421494551895350160227427342038510744327977246774883975010783245331918116886108999807644803915721812327755870368908236326820887491002831835215315232896233913649067537503421433502308865425797589088278462922199775823469623334507895329693937649564930331861589050225763890342174804623726366901190972811036607551710162748380567073220373559626919619196577880644770405905334236057081690370572542831176071578694687985088983141834678849200132504731236862038718181534970831006656102893189897791141994685170222097364693488421925495314570274287061758287610909099466894098011380839046512015339938697870612988350793829292577918036558589459747188460727086084450929885851982650445369047870031487981413618259520599010000577448742114686409763065789930911857768319795305559716617178768951475956199896506625111522115388402256441028744469910447023602825678428057364680032703603987735862090025437600514372166040575683555487396781620488779016168210282422427755756824236000042894241028874782022774214486475943750603790809375079573808839092947951734707605952316965229765817957083453079292427826310729451197770632066457212132716925612416796160102752029131844288347655043870395064560638852144283102104606764494618743586307049105931369156058537407484562402485266997331366985192109709853633173700696444091268040624892321087469404107404073843722428159240959045374644959814465958915489520631351332045995918153938843069360591914452425643109260632371478494309730407641860617257065918557927635050358109868959784938034713240562011863576343833114176939570755262754588561964547408947474002433950901083941109858031463065455176990491494927069029113176836161932548186738690269421812374153977164123434718207327283040275334208978953123506740572094578881224416002550757257677069906788724050690404148798062235582366064695077022619561409766952722575856436521495958110800885403319580502368946286073724625180230831432447029516932355004072619214151246102813082078371581769025680188601838466304978672322265112139710387401205449236713594232341316941409729512926631104325661459201589576023845959146439180071574750237373376944032738370529150204610729263594753861816695500893191797939612501684738592383406831453310948348145403435080388848559184105205367160249540272889644377325147225855557494729961324610886554146972519848861749040744127936449268391175270695962353053011611479488008382747907019039855868378346233801529750726593674483903906541567489111228547501726829072868281589909664680911780540071875325348434829140204151540695248467293190059976662574099211902440357320590233646336111913504482430684132263692426373744603185716628958487938523917137566352050342671990293783470826729265530469186590849228873011789084841289244251232790891623675021655531857044655855406722331858791322143494650287353398384400410259091780346458440586669107666549948499922701751716492017954558621189914432059111562821332032195166593765956585992212775842458032635694725200636658072302654499308694021448424984822725488274363988088336890924678245338611760186335011695408330372061976110330836474015191191886735486957101850902410486819658559068031552709455407155894240575321961431540504760100621523671957876505940907054225890699498538228914013217805417565198849370226984613617784387554308784550940462766162104491368888112807971226254630278644924353249482751721712235385954764201672251314726209151513388778209103280828452694619434952799523361964894189430081970867023985621410556347337045969672945580209017784627551191674022390519351947025187373548772480885502955877086431928892025990972993327691761349277236625194072765439479708339342493991481793951987116406898905727401604829190479220250664297482677335705752628969915055251439764816176876306545846728464674624491220494863956313306373673827933148790472862617339466151747777503242756986776269947212624625153642013945237265878280559093809355061907790480712439063735631177297347319742323437173411390461556404223512281281009892017633250607639385458656838463096638681051830962314818509094800875774684755346326113362009218562552187260742831318147904388948980080895951464635470395592172297590714137198356638662639101996354972071041250638407226324306552810143187785705018311857569922142155260618936387922051384517403516295341525615180522314373683593366405676292477732775247893920679998654803523865364888711850943182685354002872120456540397077638047545572802490188466716710132508281906920581609473748973001494603029842830137690447129813717448521551561065258926073816166723863083703765138553319457448971466096846513913052537952032323926695637475384778436794538202491060696888334534493936741591442014346730042832167257165315463661479780024944965291572552481158382368457479967503277035749069530182942437577712879882659224368344663556276595883557563099262659066160420100328930610604391575738673704613069631626320296739090086237247952663652433144447183824488140917566258138628778032704917406225467343963205315456499691112052731852445988085657262019223199077683598540501732480363162625383593491914552700604231964770087222176665445837980018652956592837094483704264982373438505462691945644151488249982746143733239957770334141648655041389702472013208253516537914154907779021279038458918847315334224409764110363990732519427474560316647403673030978430182778286608554208304190278032639056512569527721612107466483490503364257896206360406148879750100008218783436755338731746298370992990432087480234679359142198125526573407770292094595596753912962677426845465712561407458602111763528917109898140761286254411319523302727165838642999868405564701916606062665999780510695509675986597513921017831674793825977626021373921239267273410538146881000552659809138642920675409303390909836988194989700320884011206932686689827241669958196261833838119919457171288204238137721073391772999924973059480772213131253673338871989646933590844240484862993486711947429621562313466845354603905613037070425389729337848199548042087554977289819499100883146127822274385237155989741052123050662997074185590205618533450796681017010758184031021083036022772924786992460589408428840904497494809417251203862679086458263566213580421673046514842440128884543032326166361091554669422832958988841751751016140949113540459152894170034578042926101610911935858124899942263182557046547525471825607261308295868362346092478181493468557964693510102609868777183721356380171715807125051995820111924987794961011079799456131439357643643443688561767994764335766528401034014202927861106782936169877465640404076615973155015369502830259309895338400655158665576433206074482885785767089190252466720612074083341313360500142123454718554581742606884683712923351746292286250133372912827554308498344792414875620040551188758490788571455760510907902132145421672944477420796679636936415531987026097393393126520085434214854253115178986513869574991789698520413858169917612472643647513994488242861709253905994592177726180356102523932311021691768393343408355955891414387555392619196476634787203821592299818238425228518498356922114545921628095763160709682543205204346388274816545348604078329133579834844101725189570947486898347032576198541605393302579379349107759667423855158232527016141871941173905619131918475274873931267267817494172007141554890443966464404374134863599718635496765393840217882768417272054437791545196649191749291904821036437518043438844403706356001350411197718932292962208483019155669551234679122793347098599488687345831871815013279780182366841270054781780902484988364422888256990252806386449367346291624532769011684618773459738682230652492236232564813879736066099046940136466158499298532307343907004720016679472475885836864886781928244430286605520240557724637569728628574269561980461501585653785227401820749523203115366502281348345620420838793751838004263899423005842110745481243735322423294671173339476645769935351460669327731670556690653151127998519678313327439291592395786087258526766487639837705925839282744179567978823754143705157502594022626391481119318030918349340772587051088910990251563766939595194623317282175226521859855334354190309067401360362432077511535526554407208469656718833813374924875041158118638316806897059110674879150540731282151327154867021138332431204899741570192098958311054897250688702775069389866641978811961724417110949285308104646132904893540730756794422702602185591620816675169217424372021909696656304073923356210059049997482040430429300415042008918203708974067883399215223379534509353331844129497551630463546888731562745026359076493238653276943416101511099253622830564691846952730995149337742401789372643541068475719053304820898091395060289505972440560671453476128494403330158171658305976379326062863697902591067405490966412732970760806160529435439934848528039912519188228799503039723675944382684434496916629517716007745228705041285769936593911298246646863957551722930985626200899937128341186069936880145999094389543813521984241312199634252967562431109630212354873940004542412130406564240127331810011417722066241873385835831084583129806740754876030297096415852554427252601014280656543846769648308369909536553978168854014339842285970058272526527499701647161995010860892310494420522003671223025060592747838293528115645549306364054292661890985309403657872492438732173808125357283266950194119325795383623273541048842402100499479088380585866635361698157747557603980899127533191392277834363427288711039692852792017300680728127652605973208916143747312585746428198141188917743791152729951939503777406347364241738400105432540106878810609429903555732778814967544090554977186244890705756610028804857867832276266480745945252858018893799037691238992166441928439583808089869260928363325289722165205176227328225744470742955814364996539619407621410440801726417372292844923836272625834286929177088654066122214543175202048114387542113186544571943405542503750909250242206078721247788546186797064161874754620451840778232312516193627965898920849721382079020003432141302805287603731591064833645455463238956437318650077960671847714974761686934975900561145359156522107904622210009016605374987317766304722454631043642576321914461103816395780648521602450566635809585090208466890504179005373417457847723925847729608223572653793661542506860915605078070492487175385435131221867386146566496902206412417098479465891741833995948833168611091037462486177605376663837745749093846124252676459304832783442429659993557540135305354835921047753799918545034316606536935282901132274229785503818541554166333923673056572421409834855954926633447498878773801697728246355031623860472913725822448377320284124741968480914852124910706363527819673127988593036312366628432874626081728977796171622061674348882966663652346146924643443446912982067064529092324580829290356982223671869247256195721331410878592342550390215963377814483179888412822401876298186653341950426067165191014620910897914912321006481770509760388929076746193954186706158951738544053395142832093056422747053909570191639139878881092395409825665531324817038414911192216033938221369762070611225638037267338512347912287248058278121885179990039283264261848664485905521050971325317763994203879173039484566811156330388560425123331832424140357220520547275442887914717661668743887557214791339156642148323506811215905870139120563166112801172053365337774977487623274540453762452726841436895757717533139910290261085319811858942384938274681198898198351721433385605467116692485415657951887158963303218676354065552209838393182541534768997019513054830850642095708651678280214540596763638357366231280708637157001197312494171667363027386435314482059880575070478377410299471404857393350333495287924533098558652835186763894005696082192740837888919371171978790280651100627223647457384214675798804280088627690817338293545268122002633908144601965120789678459532315594222982362179621918706946179619884856577156984852279373999083910747385064822353914199911620819631051980554160984311289645619587449118666397455186119446189589448330163038536503051146148539119255537002096981138103203733899134697477155488586920257997485830096231467961949983203257305106615937356253517937939728716223587359835215783115717284705228891861122673889448380046286339563815694677901352052517984320324382003536730688267299218778490042120634483055950627306000965682524379787523760149245754501534890342232328776954987748695942974767982400231970988775169359261046463425012419070140560356844703982284276120964357565717186644625017808830436299979201721875054279217045576217853921658834444546524607485177468827323304451640279973791219130407369496546685877929539494206534771644451374152872935663014361576397954896560997453586387266087377976940144087289319768185329993546114673243174777101844207339816603352542902784498334691483535598425446360194731567231717972183929778084724045194150605888106877373869305008102138314555716976407736148075952829141020902768877193476592856786524431034925422594133097840715644072788408393334355431050170851108202470235321683242541286561191262421266621214777663458115193781534174947189193555482915331284705884309328077234302218773547067419007309046347875345314428163373564097508337745144498566649697280733096707125043843155002921762970381229328713770765840067854592349202106986756778215119301938086466052799165223965338485721690319091932597086915395771309846780639406563573542333167002917035596929172529525910001110187914991298274631048997759954558199716103394511279059885382310475816191252079642157717485301269880309879177966553690209406706979066133275629400960708842577367212010571606630158219985180935743861572073361646480429334693882209517990479269691573983105484244026889340968353703693565090403180267227019013295713534141000360142929237859556978113719061978147624502125131656916649046864214847682145906308575952851617525241342417358277149857483046309927377846712902570346482398343449165399852034534387643028361407855669564958931584582894744064491498025814749830154086982220794408303523675636482749974815739878425796112686497285970694439891460554135099114200312258308152469591344060453867630471704912283093651268782372153759451707924861727791263640101546704642393806792749010708436141007591994374642120759984455528227787696849857942088492179684962797593700295327779130054356358950187272296167511525670561104436048417689780013322513701592514393808531778772482438547613736383620024140008854914787186533733080166574397842324529739948488510303553358480214388466505834209989539339892647361688317890943445773014379128497174023216894163679351275251244109769066497330471697552485648276942922245209365215500578655659993473647164934137406331081403985297116352783493417441209497708079563827722498995991024619623942061289295538560390244533296982471183379420147212574032957918244548006255137564939164971721736417027019318324250540115247190954020869961992586647171921966374711837117511208813455053091242871955765911561393328128794504254525399072585771829496035392249722047275587556296399293080996622810712925956091803595861775681354152286592300826518147291080600380662035843633077073113226565445871805177238090707111230945765623716601760980621730124452826878982235591603674990347094431457175719240451702590999559090354275108806693374659430598119721772782466126331166896662671193008522486192477224640333393094139016719427273775869857108426586166352301428025556599963274811751564388953543018473548954350864455497014887901026074545438378158177719544891344453582272501915361484339692744384902112097934884353405941279432480164167391875187415771908457954678600693790007998010970180343400601543414815636656764796544220657222837572969870051522778492475414202496891611052911088686604888665745279123695554085231118455468714188013799258812632378548023343440518260211453373048722541353381157002582101913950388953529141909660681681409802698117047243101792785508121156190604589390636393711625193408725753168017081561185627629166503759829856390768314225515168987749821454105763032312815762688499168662929122706512494447329210547822811429486658599248217819808350563174605080885597019516153343574240475933750667863331122207104944901097192710422348459609587196520628862326861929094095817163953091171661754475293238339918711401942431869092510042680874743376914719683321363340982794607851417873247279986935589595038656922770341500313626470972778224650100220799365351787475585615963442453603064122977585738119046078880977637339641546273144022602101010835767015072375634388762788573848088156369353425769193106445508535515867961621256208998546166290743466996847865394795037908167265744890386140492823815418992258238658643223486399178314833576070910468369836366480624856294478729002782569248541098021000913300900123000482694719134277957974080303223405427627848687124376221088550478327383138844930592681317220908555980517001001321914528207391966159725164857357872226156666746960277044958532317804705435116992404891919064255485661441305174767592184326278232864861691424468773964781259345014477607371134260469183493207070623760101661065027156695071098906440271788963592200354724983382766236670255468586109174357103990157350542070646740014737323870887264073473300287200608467859376574779251309700246456194282213753931024904737405947246182654276031433564116719781311455611602752158187560335268545658717801165709096161482034793904719028687872846970188267066261039139221210314047839968086226452550115156353985399730700886147408178684679062516827730365974075954192490817910352531733607675847336933074678504053268212556818957311158330033278525502354577560742837361106503693849958053976981750698857899679985151412586227679535321823204718216814136485107846548432432265379235742896700698006193543468144752176137947608456265535725398937531005428520704831818713949283149279900809101494711245101804700636583988561082682037071169456736037696006359733128404663396676631092960144809065212996069905966133849183860519313862767638567281251074765423563066258092765349474666191227782978687394212247902003068889473026691663810834442826731930116216116174174423026441658037005954509303470032318726438976458104735178026798823474114002411389542826901213503687969297827877156312648035237648685224779062232880080620529789816424610612419118280966008131335425467622389476539240902317325216310290520812767260236805389005600267863589002418672906344159907617090196987109769803272619402476881756049996525720314107989799117494919578556752006125600159906195283272026790866828260814751397315937678680051758685065426635775712142707187554228018768273230982743182927382913221637847374953619401589206946346069852417168630307605139435883141830942991849648326567862241038962339960049998426169089025545984843166603676913689025578932194639479004712429925116065206941626118489292436263331277526789847509262387407870339918010276209504523138558967941092754428402041003903249238742850388029530555209013667844743233738400384814780950023376317513261231118474870558574403430255112073063497989957728039481840327065003699823188175562857900307500030761899938230212982309005646730554460082520864963932503245506970696703469968996691605923661606173131741788402682347575735704661083732479425802671415813945045710505206382112899830625435490145014002631973805306399078299337068375700796222685967754731299759674670755948816057609587602352612702060211534434710498189034923525375225253251140738708197154578727172020385809890190309867992733769503637820847672470988269254092601506383124969924213290246357914351781140687246265689748555652590653857839716176656719560027593823229952601016734172304483486121616949260821349164172368054387715557939135922855919404329136574028797177522571717374477050938676522975864242138620597829766820011175638382392414851453017208786765869249584438453650521142253051520599689090693170175921924777845902460472531470824839945157399061958477403629419716630847441197611144399638686157596490762499355184832899845628188471693409594598284221808247508245347837409513620686297544118281568775328624603254434288776042697814372290600194578286156564436747936873386920149922772121278302249494401400808723595409976190216464967078711715818662991151340651569420453355869443896431185595355776175158628032447158571879742955575282159312429061968624971120298437911036292893679557667968088928195609271969620326077815853176466605165359674543854195227621474041473226932405959971014185749610660251819676300458644998825033463836938756899707221054438208636994011099007143285170561842271448242883119991651810117808323206865513921897377540049508711867051883449964221279703581561215940841220610625639350165520412529631274479621683627623776459028370200584553587780196185427957487571237047696449980229582826630404630137040699222033337894996081535283980487062336848802043956200678073121180984095435237594801137046779439704967291208335101701449422334118622983796527931970391214349113603839486184067234588240968613761657019271279247054275446960441347835944919685000068831440972251533382571682820479906150192177654958607839600995569183952928303922287764518306377665976095406305156149901592521091434599771841294988990165833268392779888124285158380938002476113376634704480291821438987424127603826943145489415625500650086042628784114133026922752779942536293863536025212703065745545853074546954761481904451143033487864867721816775397989524575969326312742908014655303556766709780701478423900171124327299028003324346720049947634428202026600817036166331310917643247924930603149494260085472799469471589370076616880098608993756405431403736377513779285013386776516296345072518679389294047304311359575387052627042961493286637736456099069121375547043273097044029608987332022109262675564865128282572760410122357876352919083054304221631050293940859464773957780489101708797740718159909596438349180814075349066924749129611692208157394407311546893253422195845474535321674288796093729322461626105341891600990646215892600318061553815490568126225973340442722733392523260556506506105040361324761179805717997017778035614646181342986147856861574640890158842738610479585107339549843530168100009591741187381120704784571721088273171880890839984432060909516892660464748461835741285095356882888084999896028418038777905876738595311303258783277264222096661001298164723939213670174114743057571538834720526669401115472165906774942854180173384547630841447125795155238543970451030679144265099388579947565713916109118581852241862029137337520497936772569219811034297949828703505774046220283728999013159022290917010248237353243982794126223654846919352161887497381272382932152916806653643295314282044466866054430889959243955746657291776259271362826524279372921484432007159572021783968613531571621201399698302935160351195166459311703092102286023215294070801516696567071081999445066236187289230417906976949684336141934981957067104118083975363849419442595121967466330475550500837473254535017703010372437886759034477753446457514436963328934859429730394973388298507914201342348677534636161684991551524979545890334943829904248330877444622634479343461478882227683853133203597795508925759416590519850857933056049522768088506864612246250918796682733326400132015146862263949730819868141520812125018034435235870231966538391958389373417954088601195412753406913946886786173701653031776229661580671998735599135439617696014137200912796225804671243277639317262116819204080701268605445394773089931057678354347422247384075730967030288073933498350683676108887707787873481046277832067043110259087337010712722945543932977069643315865432664109483854067577926265145423309808897074537416985827517716189162104307324630232395880329047067427088949403421021603021630625500925862216461754902775297699920693843549528967715660298264175776745996755319551716970091218856825876423589004152611468347483813181529432816856417845612848567798844755220238568576927478104507948626260916253726518222037285424691934468629914573496438439432129763719909733558500203372237712819138814375422969583556678764561459264456679802529439620884043132570533922902267825831181810791858610097711111491201278710013174800528784602845731221790307826271692029143851513635539731984004120880238252649778276214472207203571293249573185594680002361408863072675778688232070804927284763611234631845968347637302004921989055580161460141210262108740589702802738415523621633024166756130515868211341845494152596072979770461234610368696606942544871308463390874477107428981588985260105350593866832375988239259368801483950441551740158437422893249024301041548654134058819660292996625382354545507694793151524581072261494911601564821397520660905846686453304121368494168171813409725904252308972824267722347818914583448330575192287062443584543761143958230418025550699551010716595148572598499938562881237043244566775783419235600460124558939704748920256990077671541542171757070923775124320081027946911443022306729570139355074419399191233985412332321843898280312340804844827153179077167321115554816476249139500211569513454534255964416893043340799072521682280054600841097575467802915963732692502053387966427493730285240534795281251487842700114138800163646010824728257751548805909455440151205953684799429550814908611371129428112850311228451898741786197965721520306283192244834299387174653736999472248115096869253883650924815890802597535374879869844005709972155785032216348231806179576826920814175390834018225799515077032491997102422993813110389597327817210823619737215716306397710773356080382054557437671692017025037422381085784505331882689829125660155136628916533732408096338476236617064555563262003466901027475384546047407386223582237991798913210427263918879722893027222537984114476119590187652985227863857305366369844675375003408306751657802489514335048635344681695937735619308950210990296753031407594457899017248806075255014546132354154896930922741358333577773387735422279279418827789381583794717876237649767648494925629336851746693149381129182511805625174827766279445069952177672891432637010807211480815224881539417783134672018672002459420953247347163496225228095886828087699054021896289962453228411454948575121636571180094810443308625859305890756929728623637474506780587191339881100626168264332111461298566622559488794777652807700422861262454297313291402326892478297637011738541683313373086927741520270130554567440285100107692353819223023357604456652954916319132164759202934762573670096304293548875551725905107277374763916308256219080953817212147101457888979862056247621163843291630627967303838066016326696732467574343999235996152808811124823552123345828726742470359808487335522892060564567765081121793949495060316123848225858180721812384599783680635071109992399955304344827668549251988219542271952970902267374148120783088891050982074151388463840736454389470399713504527124673873786044821031630318728217790235035236333377146888636148789874693468061290334988934680150560374976404720559951644875368448584173980307289183689882617415277103366706736100562255962083464837880218075553234541351815000762322208315618535112308480970817845206779102351417694894029571093368846494948208090087790777115307327911168800546757688149400517420746888197223789820010218337883660256630474888821365355614609878169719816952563605195277800624158945727386770641965940136786786188542987398080833564070015920354666736279240692503997935571302112165327897294514844699102973187020694488836319063601102171374867288757720551421258928910450696955490068567506448259528347284660458245636351800322651103503176899320801578046482852446525162970361290800368201624243599200170638477973820624162734662019838578493209992190894771656890391692443308246852218169372032198150718064048921382346685401318024752005202403695732093046413180154498763187584368569659044302937604492082058891665377783874242074448794515459277890585867767167106993102151480036704570898637202186396718649595029160836692975126067666006114648957563542583442351065757037153271056466144029760227685563193035512008366589264486162809611651718352942366750485537741050058669083387540441403958259560943920530676692421080282166883233887292236534842001496086843434744714333121998475681186091578072219532814051941168466593090025184373385775521372222123434169066747815939484094478876005575804189296970314897083598174219869307648585248607066721988196544911771507108107285285564655761308871116877793691612929862440074319355016461301374511996818777081887810730538959033770070011727256419042384345361331567432397298797685274552890437486225433442436234709207094921426555865305604761998144313196578088176936399468517105318015476196154256776385917314809603987020309722135433201868922933422608293466797873765949501899072829278572745194985219718621290617949086538828325512651423621250151158403740963134661782103376925109346180870286011128370192295504889280682246295034830847950359862786607330617429054335392333428168134352980315870549592408360198392776278379208032896690777809010789042124579312812996796058696018068284154841938390160163462407328170594071649991022355737789524951800184395488700344324185984442634591552119400342919837664445057132029493235930903483179971341158015659828129300304776395105787567008296281965352344674618334747570929208372901984724516066906826881902512669003833414863021673319388620726856424481729338622617010199808107962569964548233176764998537598332870638240337080144772570001134474584566977231483289209063799171210605931357263773750048995639505356236015322521228406671620689609144055765862731040355825444361868825452488739017161701392972781339361519171498625693757618603630926857954809292529557511575242557664512205826757411415435225573931190234890959209344512993962708859916367935273648296750419864446163415205494255560542426961236055959898339786026242951595393778273577727490658752604867837073532030216916027076511668823720940016321647371764606623126584994197321873974215919947662733001174204414989774282503223106563639488413241436860986354502214031103437104905885563494402328765316702150456843125418791060674256234129393014526720618211279054357307323456027258303199130497709423558952613147913368256708873783513393499653849088654914901951594273158794247088862195892694939692312309437074098989368272231297020311267432228713447512311742262900267619223324282479526663419220044270737639141745869200486949399637955686118493285267496840059188541600364878969556651355653561430979190498903674521640381045565533632323005211808040528262760227969084760462392029707916097812685907320462083385667722462235542598669592538156399174962784199708684703632336644940693657286994408759991003878889738786259029104010654335039956165792113343840880294511676853459989614882437020233281428162731985696122701932560403033771859291112729927741323385356431828443524531935601890313797508235707856609897847851016558354194219148461759602853217481339718126630108199363500637510772867999537436165772093729480312749931181071350082212152448151843872239692162700881905408917116447493484426933598666024312179260309598652264897466493303054780371765575646723267705790783622741652140479921340646464942604382512477450579528445887901294172460589038778959331631016921446370241544576109936468487064064380832468160622967517837166729896545878978555648536648336523465971242164417258534500926994797765274442924863858147559818016945351852349440461710420651478127819445165721509168754576106257675394161089950673096480032228342806354508194531768397905966629020138705324918057597406079977456971446606367308371984932290217420619406459470036074900847630589417245005633256721355569974118070855006433864249303667704183560348208935728268028459246078595446772349550916206505980137850138820084378052988478734542246919021723468549776958606947229762211115206319146676015630413978859294581521433756287939714616503003927177756464587884960576600808123655559882570510306977543483979855167033944263723278942447777237240201924589310559686526111753821377179044221362729113024433046163301927043781795120075369207559899578560020230107187090538611981865996164870389773601784432561337905481246850826113968834677400178694101021029000428167662962452866971961548627885564476646920248580150982393783250116319741898283079441407271739394065065854452139218036216695093911779989525038714336153358102249273886761910321906262048830583997358881069187199052429461823722816005562603738523066180928442690185845062369929656572407933387977124913734536514430164881164320068427129307896519072605100490172236621275039232036205161208070794160208997126799199993341466490301579646177802095036191445344200021276432576306131831348111312229819391779678887973295665631030278667771581556822793289067133233455388842363108863816755160032394547914047342453860395994588347426190092256732782635438024720398108422494543903586894402730475047418356529011382653687119078529634114336664216410137755098014944920667939583510092432519433130527526617885934673582008090630590730795185251788447753525758325199984809216822111547234491813073115719406485712286996931992291816121053368417629589701778408497140212090632868611468031236727120136875801634527274604559332589426332738577200325772084191187485217045808803542639254659830527311360754808092923290050891084597947031561418955405489414685963518302777644636782807771702467683466127994183884355087863061392964198742239519578939026730198844031206609711533660995425383445627485427861921807074669934951722963769407128203604498115081677666191631004217867023452356268137323817980226083665271609014143059151164726880620782436725879028716775044012944388298874333066558040714773601069241150771383274753857968695279304239364955149877015683171393429733047379392456302409977813784599109444370091225503613366665997329720173876811428378121201605598173992818635588323009352422642200308127784324837022858264741614940158028574659050122328744501382075844631076588197319295071236145377625788157762059349560944750416222465719579753710762040365022603689336449812495453921812804671901093658535966743531823368737951540422374712257726659610607640072023235373035105740818125881797176827774004795139722667415004304441482678227631179851685895130750898199531241523653909083165582982761128975460208296476547559918137779164618251837579334115420113453237069433191937110836026050660114358032214746370903931231568578481546959240270279967498655387968306572718245676053003271892876930901975904813495531212329268030204967988883314948709461279553797257454006645148743106459954562349227945568025147316724614597355311063438516863634076828992807503159389415082080420199950480051120846353449074438695673473411036150292123751014788466589292816354543984265546964624103386019500884237902557113785186642836677613719065780527162536308759252875947160255604498009655360758565179569675975937206196302991701333750099996025387131306776596893160591487041379412222915584765621067206376501123393184976996449265490455986145326524170388799308817185891245991004691239222350682055995756596813094666693788770318088884086733001695527768777687760042638899950405448362469574503298751357719283779457002180753860239025922317425930266982112299155182497141733666723324053897141275578363068056132322531370593739492490746892657839117408479053193716422775200767517109218526715036904302060609476208215734797690849835070378269666618818407415019006393694756179874779693149403488551034178123818685161469431316457396385465737300620569165194577767107216334884911210211341937224300502463917708938041071249185660024976041287200376269370007337410017380493695915492138834272463085451952770751438610765039668919790995877574291693841717707762935169695662246156585061322025345988220222696449699658114710974315775411778492747139050354935792064183512827789656221419851186199489714276138497961003097491466472166639698476690282011211947224714040406165828976821390659212962356265478313315528894152137205172546296222116632251800219327732589923346314708124479549591439903608932307759693633812352741870579212650699849673602837784577386132150479618183500979188510644558551237524160543986849305722785540892980854192369022421584305758568952875003158019880547601470515776858839004797285860574586875083841758950647706048049685170641589831493810062292680814555175339009173834117415484235093500081592460382175392295720700209465447812374742204970277910696380185579408561161006098430745497159132034580269155874529621379344422327480172895418761503427961729374308745482655883034581856383207505961798008157327590927593225754735358064415109282816255781747355399410959159366865130834269868352848397162660559653454963478827116429265823057376353773041442624120809591192846845026729936802273695654425842994089544279166197229395979672572615697464050837835271572878270765208553883206606940742516034177839211003256570063155265218736209805679110886818991961942695077858066000045663565237934866947712925922095723639698084946539797218921945314415232405824936925357967386783943256781373178198328384647820821564152210287985449229384468661575914154783327176831233697017349612784580532524637725436632069100426364825274133887252416735657698059467991332290795271391263554728796968663877394902253640237828052577813615385509072380704426063246429575849341688859776630126857989731128580393809864683567950718131572817482287619566822740527179104709224896936129627769441638752393679957693157252560825984554360372226285072460811960263333706314413485733017443267398863566108867075008666450852487254512139835852445677523800605936946745307748765775951911286648415150619659323654978648653652991008559339915616034976299824431029353148977354086033001324658225677910742634463837308679368948248775865300089011006499700337870311034424557769523275991469805375891888301399341699894573112970168319867080265522579163965001274816714594632575945427442170500650606144111663489567433142257879100227374643225493477191034032030569946648737630250850001577284047287784133486293918695134412576219259320700924235685853186640639183670429284705778915594631382717425144265789600155498907232084523549407880803567022364159794363295999536348621558350267095997142746620404304409253460887750605820992192012860893473532704823791065705539291064664443428174955322232935419644222658949634896643679292252370081627410734381664646383758883498205056392457602871270076001067875272051896930930859694910440568534548847249181821674093219447650594463755573287910996396436701457138268288932193523533429678154998087909598320107582591169579137251450690443843207546402521724495082615718453158745076506297351371698533066331545902056437006029284318421652502868764622501760890652012214007960262533459695926146870942338039464671967391441287495548670134067987732069231208715916791455983646488498950952692572278651248586623713422769758947804453419197035397974965855655011786241736060318253022489946493797270217718191056554304721498413858888793142566615168657283212271829459457561890571566940021090264646956324844298752915881196461430825456873641238053235606266824337626506437297208748938253949370328073636536336447564042905638922119883285245034967506468935830876307430142789511559761322010811386058173599916337364125916599839938365499360085499060089458085283970772298914208111234251166625512647641517865401285178253439354237731841138055404421342724580700889467815565658424618829392356618797461769341792580431232748671023425468917959729019831901086628688117369118082694604031476912066495569373104758526989902779256799985965367683222652919464211093726264313709792266305431891084380108806809047157659166844135660727593639324604981512188599110034051615671506471731462635230496627048390335370771671534893014784476562115056545844146142028246137885810718386162612216826083212445578113762982698268753377866959811046550557916171359532160166019094244826852349245428166447986316323814405500320602340196203235307044182974514943654365207178180603601401271759855132734078088150691658534469203448600599568634978508299904718398809233895836381399210053753012351681605163993716409179709342152096626787666630112195049920796494491435425601466210858844423065183222956796494338543747962808445058787220603243194816262374669588316149123599893679490058514190773210062382370525474607630878698441154819123994445223663204839419259933719989675321968713366795383761991375865550006574763585668950411413582831788052994200126100207706500574115310756529819565927241935977462225275943838280095502346460927141413934257974180466443603719817158518708145565848996112536244587380146049749960786139366600119646466486689352149994503814129322622972932233912005067334747199889567127922032162713290326514642570803159349533803697404827299095588297470300389428990648814550251894403305864519160312441614238186195166127188598902609932568554015284718980509949091527370012010896775345037671265240330590009248500301572275837275418389245875217846860162902133345817339789736206803231070460013837147690776116755764763254950710342597143426394676902015845461578609545619717237671526086398989704129246574047516818773086696576042203853588472859486277925042054849103792401071653364741050954877692930110063697655120660278197032529413669066456708654490779452605889567018012897589297515182854162990123233082911284128302907843091378224793640749400616690263021373169639787512161926719406303656404252749225407513367764174843489600727127690128034254095879688340688482028145774599139150734769161803823188431427677189323675673413269520649183846866929626827682336450093726739438244378965154965151798246637947089845445279366557338037410258194676438637008907674942397253001233272829480942290254653284904142159130443558005486694249979657335354197983085687417261544755845839382170907615867825540044742518415624045193758417599119658563268917138613149255617116433906342559830827576181865550986075369145755881642922261825891974355218822267117197165415634727444820862466015800385805893802827351333892115729305065600811866797324446687534399262332011391010480839104170877522108904372943743813105283495096778030624512367774401671676199223444382814242131469140444745035844551519446816001657240645123507317093544179239724422040698036731319026924304673403709021239723622769913969343998915083148998464766833404212446607935340182797354032729715977137668747807558627728040302329306696595540727976232589464412866283237217155532399635703155653540345722379628383646450336056467577519461869963062663151889467047213897985779356827414913164853626865842090637407842803954728089804621201456562044715259453614787396661876848170596686159845463774789080275329356856784262319776878757396073896969856899592781485189870148428589519113698095594346782107326340173946717301844170310839734196890472032679699331922324229600282471784949427079504113451230671221522885783101492999878414211381442846571534922044962363347222507782450314209282472983625212800596400710639720661910555311757296776046033365374513859138707958555399202596967450382512465101437784590657591531780137191823706553675848615845915195643135263740557483346966688497983256289292599828438403326918252745642744193021968310526481241974264585254852232648294947615013893659460675947030881124668598190443632898517038654732105555550809016191269295534429177018197646399993153384969053764197853767172712253847191125732666583399054250520430880324809149324824856664801374738046734074785426217211236149805367629763842393126588029807674341465835592859642625482786127431278044320198613921393136965216222812522513018479763095413270392165087863613907634234351002121596890060703263192188875349118277201749052568501655079289241956877407397776822553244641660746541394510117753567147666928780372250191181891580232624642376398039037951617326250939120128635195282315125734373123571278438011224970698974823534709795558615075693250997968756432579203787534200473852529644346832978143978974479608993171918075859326108892387470723234709851708537210110404115069184052790306629213694424346644625727269076464822265889751020740255616749363699572917712853084505943955246451843420396053745259940316425643694278908890866690746575133365660102240657897601814345797334136123595627576296458633692401974285455976536819027963338472814200783246942481125398193801866317521226547816558643844923617321310661703068632257684135071431537150688515422417369351570333382910662512785283243924859933876894180567885097381375812269833115637221223767833006204611395479234788263787301255766935515206207759489743098999585208913392876622996638980100724556916198496093018025309724567909558018029912829255978745580776704416149006553195857154746189622394723346395048551551111215114825529619218891517842499264008576956124236725394354698318995582996252250192255699381150589252089156532156886379794136257185336021311058244731890570950325403436458055610986857512791891739128827018458880965396824906984696471209432528904733291330953301792416096082732416850416900157059699054607707669928303553229070581721343233578070954224054338960839895040289126436970912435796860719395396493767807677836847939642548030800027839758087583532891763871542237603801573672027393375321532665571479566724767497614596100565675126525075214011777707256505028839199859186519792698901848675627979411344238446326985393412935997534999796080053346883177409680917893755657352345209294327104988981842147443605925743509479028164552755016470846687364943299345051697354447802743761879909747701969469856015238422337606274756045608958526788121186922028651871130319465705820469079671324355548466605487650337792547990411524251508433431099968134178560288581650718153011418466469032979418400124265709983255808755277319587902394515286170313542671091168062506447950460471633578583260822582553734698861180026479360405660823093149605701151223806432714215787042078827689660055332159523400125217023846341420430755125299539347452800948326385667793863762552963512617402404127652933549043584348818758635854741587783766431706799090059605365172396757341553504285142046593587526972973070059397288257225472495162973308274484595088264276404031684002269315947823716664855860723135318030886575633132350172742420537493195801813425909638326055226628741058557730810196418444296065767422747004832582378491886871196669586158561386540028005000657962145712932560910675358988043146494574535022228132196821835266238318952179411076564649844814975768631483344892532399108409775443066830044326422386384277428817927091818848970765752235158860383879421418863845527465938490200974455520981293553252183037530190522062344787450987240867005447978590659425009893713491364729515020453752582034297005890350316735889160206202621794131615621437451953975140473403022851321805343488261901424773967923692815242977352901424479391253464408256688995470996000885632084696844668830537329647191757940950026618999264513884787126355900072928871300073115686293798844691601442731630521209733310346298408544140733426877365762194546506025005272606581957417663141786833391576288240226162081616417462614733045598212083545842999255708060424929999004602066576218700533587993283865730888001893777027125722990562194257868161855299027238467959895358126492317152912620657134604600134715187338199706138384123977888200859780595497272414766783048992504836399975310386877775867252208557784943354122267696208098563695790436453769826934178469211525890476573729763898716611435812051984153219518449731903172437062393468585904649609092113281348973584828366490313730157238878420958286770285613554839505460206556688260590043159452064289407997797735412645403128209627796289963239178208552689136271651859290660722880244335112388925879489604504775603104030561650633988581842922947849424912919264176971613810124433389594836749941698390473154516194954108984282799967529734299459149003161972540993009906648298854870584871838145596639576465393960303474958727080947099886181879414545339905971415812558860010381048431558324995578616997762618028513785275756952003949949422241792371662379213751228991422246715085085157910063692607523891263971981468387899904764939707848137379194882486602723206607957268998324304092676101442182786700037372803736162136467854428676449381989137100689234133142798356115926080854217895045484415956025199127320262725041023249478157709192673464147154104010344913578968490348916068189306132176460352126938582422451236273117981459659462226141248811005855822131902943517053087968894655156993707040902336946216368887410712298359150587796686742322038013305649509889443214967585551336614177319954120162054894120058132152054011932700780816025040342611167527297380810683696892701010941490831774155452713929724621486638168689634824224247626129943738767555279714278033069814470671282295413870372305038376146610164811867944325284133986340935009217463719525385504109015334508145570360044351871095857310678273374590422983766526747619987765268034527431270797010008126648218656762052250229727063785699028787907165989252153874839777266084882846726462013935121198542225164199942009763344559916109694156118343871599936504973822746586410942527961285286942384584363719997234193924379523266499577232272018775107592511218113969331136772449163053991385167497902294692028940815876045834695754307766178264739314194336059842620031095825702291853727127718282034731869247787242693605454161870924539310814500230927282813038417858685642853595876906179660181196258660002306360711702829414068649382262995617366914308897317576705601997214694772528882061092250421513140393063949572018922960049205812190823314364443653022221628861303047787179050749457900655475813674136675686064182084599559797826228783802491263063610945721566953150710130610206525881205836772497394825451374175165546098155706940011501458481005264994655163824205006891419889405040264055424815780283519144043844912281465372518063387539083173449301049933848628811658884228978317190588893312519971355261195433370822669452350780430369458014729822949379372040848696958607038991937106734900377968251431095152890566624367897045544855677041815683219652502945077388359656980522050307053823801166878026301313823535513008464097120152442539797754812125479039745044042672838846120793689193545860152705105549973856238067442087373710731985253642727594385621644725833447478294247815568437636080322599159681846562279356860223525178258168030607870717366656923924757548716839390074543928384373859082450077413735874330667149116467528351867298488553355262621571801797593319975140544440607515293799305698448676989516204810778228209330669534014267593579466468846616023126649638923234445782711967587390161757237727347433756257210933562190778386394063882502360714588758483508486844038269263978531342908156832336992890515080762821889374038244760975031824639194487819310774083758998942429566083581385152510610747487492923041393930319523881707069632893063179332761427052777888052629118041080131130857132828636399678523862045450929280327983374100984264983919346103394156542895647349604153367456468571842008016245123904540941709995800298175118133826282092350198421926902297008547313762744966915993334980372443921940187079302334783604397800100559076627345812120901261883644078898332917684616420070661176669663222525125566577591970843203421211353904362638610532358673208820205020278291317505353843637458942318484890732969088807737355283513739940952263192196033667742536547519424006953277088473572744619176195062426083166790421830610271509200112294666521233360215858160470703296947783107478355829455832145402491674846192037430488703517746685042828837600321161748335528415211473933466811461860121953840193439641027361338899093568953337636947409471452849932242456409418469666407763006255343990999737983416923230335160024860097259484330103707363890304148760158013432872341580050343350154317548754752363738459464778347061797009479083115715171352157940945024997282647135324411518229760253481874010760852492594138078050237494094919283247095973564703268846992773664843673512729822645995529082737384608060596108869242169833486120554502442940713988845655984806919100740571744411481753831515787953718727631539736233453396614270938760533379848941241254218553723421342247936182535301115491927764631867939309837323069553774415689801971358831720887281183483469372850621070340002263317783885119165220042689221744834971382169989552922736480610065053460381394699175111268790829602955677438126521942145905926135442806260133212315849185744889273648693685854523873064945348977880739871445318492095197111674387092004106576844694888732928540560874907339444579806789442995521061516973296902075611996592619909781396879406275496467237450459542668283321229524674610755847242851400662980457141225388741001571364206753237847701707334724429156300172548669631056471096991285569358374633232067510649952569035562968227705948560715296403014166867955899082962224009536174041407665587759451676413240704995262792280963008788348664805950928291993043812036471113087700261430096037125036106597692472766300523016121783088662540924739232779477057498036120478738888552396869231308760087826067069424385693542623735066703409702591843419501818307248440600943836810309703410909060770036796186850215850236667301385653356012138756299791030272935254657136719521212727080844330040863479347836273696106236558845782982802278309814294842135506570157683129128790745852172998033280973973241456596229547259441709344476515512921370610364883365914181306459762222749129739826763870580755468183523422234548611096734281740493012965165523124963135697738475273607656707948078873870227112243869047826953258631240453296638514277943058520100926151218161730399043047104065395935772804658497937847486568216760697365309694970788362332578271412140342063128707758135510042703913335857519460402829882005861003645059905449636132718232907760589182548080868188529393511261413702496613496900023094280936341189021322065519827106372950786219273775358151041880027009669456751052329072315382900565277267746847275765732359684839815982075954427443893649592560666487906855224541909557222480494113282014876306069228366980944477251545761014160799931553487585420299520322941671959052593632693279859946120994802872805222910494054403184614601020290586199015686598493328301018668530128591008708636687326051075428790371536954124878579113125141737423791824674145980899656067204600056385852775660665323176190352206379161207408211928751316305565064462196884414678914976663218828422395269772907182442940192838984874779806549009258100255162549517060364783805274892008547264293457600861975260963939576899407998125968847321158304610710281471984732812822720453285705225789561336029110336907671066896310682271889441811768872737043512736069852616002580940426088842888509758820433775434233057550806375576988900430059191695866045719111553916304141659278137460312975815770458152058694051538348549797429676053868047995405606718039408794681476390106491287633060283244487316156321894138061937079814261498298013422741202038980561025804264274270172036361340393011298935755956698392743042858906946954536061607614044836612784681318604136769603290246260777659276922371756568541624838072860001368027251918406990754640202946480966125858807426045779657389651672354389203504574969142423900062290985840390692318179220202305039794577659400177448440226553637979321634284801091870456266589913628986714679057845665338189051779103769640670968859965535638666175385664633066777472266451960984006516270072122108017075687922017528685721093554065992569556750157223249729132215409352345063174598724794599615942373685616308628577224570223760692215320511403697559748975598028003647849262159434236873517295033783572229642423210288405045764124686926538678480243891137833957941699441202328391057210067609490023427662342868147410637704920369437091378719838074316936647050792566687752935959637607428154417960467049253896247558667306088185162909357000537947418064107729528610733129151999756182378580758654283948955748064053617537434357344519332507748931216953486159007621296150361248351813400339191201678431164377105288553427968656245090205534185430943294070837109917572181971742287736068223655365066733128023272213321143518419267134253254960012901104124274650189949276741391429655881848639298906646686329531460841087720303654192134008137366693118361634742940033227463718824022110338011452309331688652054302862025693566969161480157614327291447107431883790751347193215867422339977887411473506994239817540315979653545315786128651317012889448016558512804855877599904351854014311206816326788264604880624443185655931821181850948138576323059601849648910124583864267575882627174832915995810179890876282593765211228524526348346119597678393119732535675826906702399137024262778839335094292667548282019497283716984562585348150650314517136165740994373446958224969984958386040385697892807560158848247415415737244857254570473983492237673942709592707033457883586941465068468001835459813308112713109767848340775124996681374298185626949822870512653651587184522684728233114032016902268211349224231914154743555383021617236467200376556892436445945050796648539891010920935838989871462733717884615370037492628331558767648108215862231274812045487348505108000987797045960857541571584473926299904717415322287133255666981144778314173213955011807137863087610956243450903260089094257767579460316130690700619226642862133026017374976472358264365818807968817861181446340543283235722591596791092142308301605444080906883256272865430758118170214009266858780071597887130945670795782526583542899572654066553905612276372899718729059514546349850917142333038435993645045408023766414476711432622045187518017832208164380493923377867186159769248142959659599019859286328295579089075790982681587226680305774171437924003678050374540884055110098598312430343339554074646810343474246234786922426498169316466394022014440480362639557986273638858383280979076950452630009725035043296782840336275462005920385674969445900545122147998443999432264213314204145267990098740708746223037469993823169921828958980729258661671149257582710145213087831816239601253313475398965785971756592638736196643489329198067236728495247136241464860422445250122004042274552481429872437389233080481982959760856478762955974170555753274576955753527004113289914805820496032941206730091731243506547510431409078719532031952205416705427318468702770650668311335294865434250795221679263641253383259988645562787286982024585527119121370077999060338462554631046341619753167375102999272522714398795396605076954500519752407280084350911931142301367164569366134180674569632168571687893176444053654797741891494596252891889671239854939048783263316825304729954500343821084974666801324678348752550995649081948179918203870575141660102976321614092479830167061111036878971496243434902078907569803504422156800333981710028943758829801978408075407896369675470617702593554109142359168112749839363973774706812631442104840700798942544527549228700929363553593833095095544695172859613676242779735905072150494597504615470062030312984866535578284454435941286185317079061403328139275381912790175087762213478274064468592827403406295739834203927066972975158114237692823945632835437092700259391551201563808992008322419173656053313330354472599962283111863373369537057212416155342787686166233902771638904888803021955637909763260436874339509245979665269439045464282517739617618266145958204013474329182075548279963124570964363543633686427554115677473370761125686371714580268920558787139669626183413408716345755596644445722991176452466541033388543673674702022697003467079888673897465033508731952302624719039392856927978988667297180390014686678312297090016950815589869789994331151303915778937836319529304251818505639565304832116291374759783911512799659631152319452884141527599288663902599387552943943160280316416925373143257561055003297231155735677653306570811486965087738996613318234641770860542890750645006010309043444204661939814121935807189987889906800736581314701147201932159875194989248873262447433435584989938911186129268199500274344625447161050943899699655193433783405938382704951050742904902401904263693749735130891515718802420504059695805209665333625921603137476531395091565329442174745456110000241423063422228186472696036571843355196125020975937506339947492548257845292621702405569831988502994044038890720950919607866957114761330719201848980237523162109124433979440046203022286828435361051762930068807684574455213410719381234673617658857148473086436001758123185070205140809301402968564610173890981440876846549401721273480944155115867149435733173366058911528150334129520141722512182463132661673909169131590084450449453220110938510366663921430891904239535062501015661348516704459777003612462847132297812514122176203231622089488558651614060704947566162520486830711759771082688573006666710073234634101154188203882121195149977842395889519055418380854707943993037349768148869891938074908090448140444454040156167650110958382345143983670349200903550861305537659593469781203882729266144506783926344549894046565509309678589279882145008848328002492354526390841279871268765834362223717067794184759826863482321529301048886676412397411028190188322566840504206531203286667855614977530946053585341908056686606663634731465705998451153676606460593171358727826806534375171754096000746150280100503233187752317024951307573061934520823918139861379216654407001734579753232712696570875985674783990804669370821411574149889305073506834690009165033167418167625218999572091907987222390946837900745331582256834228296254150544697794594692722143866484367583720798597989048982779380544055838876997876395623406874527235911905089808966570732168511191802520076594157133193206012691991492230127846748882370806517341448713550300954973607041400765643044914061424653421857421999041837285264488560462461258204816122428050867402671471034328254458541793157288221111809426036625601746444811021239887216733863661276964628655164557067550491510151684116970096842415579136958393600740200763895709046238234889154496088067147328411501195200790549740188729411658616105424670668150502393124391701216254479302632693673060127974303674526829416290790689270162795671355397548371532757820617994926655945538638329036374472986997459852644333015442695905262918287944355659355653096951765244107111936318374403048979135085108713161501069636949725529532015068587402383606431412829502594883883176522908569108034027073059306800397674264889804142471134702445051143815875054735003962628617781879186845167824432601446864256057088083017382069765645302033683819568552810154483473100307395224901303792133358950290471710148243249501465408244188010442573257225870334383979166073375608828928794615131858811768747784038026145397388092261240417212009964257630572592140085018667174719712827249024259706968895375572925558347801501890879819800144204029964431705592183760831171494478951033242647162897867874762981908033740189027026834649760813245577362219458676953064971340485877328767094445052518749712263094211001582410828123788067339956511810090525776507908683582510252227213082449229662427253870739550768393427470242094279384367029344128481348650301938872275043885297195658717122095247980186113811042833339824528211891786161713680364717274822032160957063998451988859885128407857752816964067218838696274231298741444980298743396542469826245085770055461868576127335805462762674922485595539969976442351486123441782777629216272763160703221012655019496799371456633711387086780641195716731543966426321983368671422418685857381853696784420208733106463229236452716902026685935425153206520148874479741103356059784044176526797952232801779818452332776306465823612930048381468408521721414506616734730406532947015119187023473615193970203688536144747403965824042524482125948783815618295390173802656900340811662857337095352220466831923989831177187269704357615992568842146016015435345302984065643927420147907072738903770775898779231347239121817045321697590229814695616877078733570926178839551405580682102009962737123823225943184212111444116793802147790735751077581177616184763806806274334111593752531303298689304524014230360960982744984970043749336264862424410569736529531450667615576967773338899837554044278102657505644771383562842706657288545539544950623819397210412968987559353488063175882492743051796365702081611506250065849971061738156238765398284641772847437187857166899556701723030881362772070995488657713144263121478479546187982228613101226740644375153077626556157745407300946048599803652464709958874126173887216184640536593845594024571604668194372875705426021370396128953202515790967392197693670361605564388793851765110112279724998983220260972491576078620385565513277937788339415157995885740100357734466647846682980420109023208973058071472520734689283089979190609196819517934134745256540018469718682427206424153276958669865026234068560227007979795651375728333226652104287166057393462782830995945211559476648132084274358223755220757623175225859882506725639160421816397302647936184638667422385850099024320891419181857842381305090422610094412629497323329245247072383633068216643834116834514618789628407255610632751594093127209367146718331964270632019071985768113988023137920471227015157762417944110142030788860731505335071290898004133028878361171015608468238571470089502956043667791113997509566816753151251613460266212229364247792272548505267088818959208914163559215595548972558814758383553440413661384185699310171671950252365103130369625167217841627997392295892667935783500805256240751454593516416640935919454027797965800427393670450830711593850305278135152397758067573755551414396723878434159013760283409821810578121121385501419347381390197561660577717973771005194951714953740568398790604181286810496450482606583056863425064458526090618651651500088398298890637208010986471560491953552640607492036592011769038031750837895995429077599186950695401401628551393287058127520017344094164980648931758518067176908939927906208747491817294517099122609931103721884256738914843922760497402221270873972525151852034617559836288636632234910510250464113340418443279813182121497589718902424576149247262657332901474678013954529013302875941555855154592572482368518746250846497453840140845696190629968365049960402344661830312462800227400526588755570522726155856475655917567115608377016291177830076381128707470562739410776589659614016378820033071276344285736987115778527937301986762307092770775930567581195656977704453984274959402661324812233066490411538669216655154487736467137230336074846264667237129536018660325250928492452270841438044702620540444051837560487796840918458558777889182449871962160619908104323039924052312358252560878411655190085688420851054028804420540697410034797831646091727957906729894649561961470347113231218798147686266928961114549638446943463042900741882220613440503852934932307240319807723443062212530494611339319511879226434363581004611214410399280906183170574523884906364474295975297616604124471974988193791643274888993940037516860649882404505361126841262393149841706827486913269777923787940859965821283461179706183675471486298007819739683782959273372605517217980217735987223351707627143906196397571299870873029761697189173307431546501085543821862986771194891184148049949859068255962528931298915768779453336306270261543926645936039973226893967446192001360163518235435256857777893111185120451766560297609786217781017396321719046149800944779778696966926118882397252386369519203065172831636256418785301538120657938253034171013127148715950774855613489389453900933670074316013948339913609987811791095090278908116568998470031140117009535039618214230250303426105122475454835321093307175101912901804227849063924261915425833606789672123777650561378070337058039624495023460436429704737394267657760635301224363893088067174618713542886964098538674963825772318301145237791000824418300644839221157456189738202210909649858038777889816821421416066639024897465197849456967911231067567936302170368143025095344984592089598254104455834003447954536119066608914241097832684890340166852598900071396542812755659555807801978549519678941829789088764572088431047611584656035990913796708661051896512214545207370941702479738584504894988835881425443465890501852276895145411863121414482668912269728310209783952149903189672876949881227978932140781114207948455935845383829348746133810106753191703833617213131088338675173416038127901862880849103248058797792746821959532142777178039802275608042554804713197959107778722990966631076043170855798444299966490359102315762120396494849459327434519964237651901429521594289585944392452951832292061593389142278507278739283837094814937613671748806983116810717783059796141050716605624706044895050202132081846605235249942146187230066823157259786316263260815092998077847905437534921695536561362838183184319558191359500385866426214905704522125591317569445686474338406948325914026479328103841440306425109061526035335658526404872965962982968249985578801235727592462337128044318898658697663169432768464596453507039768691643792159660716581178286139121947176238063305778398435208586785899644688555415841013866127841984366972235157774552007952537031794755036258940113220191060524820548405965179039364602108851826546206543716035947951311477405224174077221963179187942944026738068332635758896274069958913907849217038606452787854608592287131037999104995990297134587175173085086370109053885366319436043779660369456312117591181633831282311746681076705633306586011424181188232411136697977919794548668622866458831569523015002343089218593892895770995390849538912357953460422947758194739910249703600350848445510021093548005219466305051844398968087441983768114001349817947188819994877044079070958789116685300663443045910853776289659143808301628186945926389321385489956982766558090543872580808039140460876374412617842890284247394869866496205498536883437979671365509659134525976982911110531120160022127479761617390468130841622010571983594240535207085757877964901616079014849038388825565396846225877361242164252615041578855404538001594364619946828417911565470135236124347446323185977763561038953268451712112020134145308710236500121004985262523484264038463231881003813389878345496791952223384198988115844428410405006607474751027864031195604432828615074019993896269649638807327658882948068245432995312356923872540130468049639298099567122914130640433340369229199228505414965887769929181490453302700718298591530541152840339973380999829458631347647962169703607464416566585843521992005812848780282049363038780518043649231909996227220267590987190245970437511748488297895966377281990944786091241887429729181172749263406198016495973359286337683239360768669393746840689565465159060045069254623799681518907700111063858831977662764535321332570980163286096418990704161143043327101670722569572478797002392853169572202305602248028697238509825800345442664815184209152146003338952732189081324530472724935989019068385798242806018181372219086275292657975473833374673761858250975163041127541544299329471020972074682878361326173401678711953476292610606388317606561677328915818033899879762078960238859889671686083060087130201858094543366749611606773068586881432014778665046972733363593977396104624441393128249970355552901590094425114758985910790699850526836001454817559905957224632528504097032636920315029994769258717517547608318950706579832808367414898021430802077523513771744081895524993510289615132023763764070301158320722303650010254326072181158618566775247209346294354619586803439838112282449845697322523885336444397363919261653751053383588629370824418263386910010868706515594983392411451864968152231265161066213179298085220742253129003135865469402935273316437300399443823313891963719807588858334062901429422839949706451135536793871253464497271223572708000567754919734740005394907175319519179727373433220639122477669081179510204459035761038698681389821672861879674536750447866656675826333803379910639396664063272237339008216849562921036852453120832088924662258145956791943689303920214150340873942529963455699866194851422323391933319038204785781982385278350701147226221631792157704845349996305494465459745730293428710876667951988885148083152664887489603740210947714382988972365687474171373837064743877845811763615482243104729008056188878536351742276159568488164440322802535488251323804025477430531710762392633369526047929856016936760131572249094317225339614380298390304071847741697604259904970014842394970876671991658341738112193521997017931474332357833947126799586248174407025111982278942242935367603856765652673944274051777635438050044804757348301575629040817984762979960036453027942732331129278865824431519906514797142196836930429082274746441781390332480117337714944599718825213571048892151338788655948845520189692675623413659074048458462593545687071922466925405056481094055573219657500404543081007025150376309486715881719035571298135058952216553337456456407037227972112495455351829518297571299111462571737988090646112316383196264733467710838968134743310298004879033748722449914872144644102097727752726513379468652461347182669574392446859522849708006954601497944784948166318704162404562931164590273470373665974317854604993155912335888564871046120652205274918114189244942218084567089952052129098358688385504534834269779450366035639152960278245360311231891961814428118180376038093274753652307620268055111874052299806637955141644805675429430089321197987061566126435848861842107060508492682327584823443908421799569258308626227259065120342227973510458501613494611313808506646239179079250876960406542788112305113692111029015687039642472524694142086053288390032504468624282560206396422912374114148812161807567059888397367200232573075614484037605168940654351276288751138295665672027317556520637547376912461786367818818876641342179454657058614079669578918663225491033309887050613080760299574626503203441295301796060765810895310885409389133386951972561986302975318412736342025286840811197368605395436835623817707831472989759918738318098551898042230536602010992098167576995204923839007781634350164345997130835712345864856539649987487148001653844517914219831612687589546227086203937272008164275732270717855312657740238687715126470523764290543079073057389618769263752133432765176055831569867407345946871281209716255954029190405071900670656944632570494718206145101459127544023417623533707126619767588823412482807366766272517826251959575920316199022285134567278308497002189643820153811735839651699130367390386002012426726223193068485305149051802004287689806571682517133450887841647233582423475098494308360180310631241241308661304157248992513433581120139612231912325901718855949623511901750866821901797781110897220829230614324931400529713564861371311422298764709630780819591154966173433127255602592933879597453438365926681560851388280894959998347782408058523694182769833102657232659068474328062660387656969381284734426630029931127700929951435307270138755298166349669130496830724185524792546743032155597147900258259515395658268451589332136693871922011841133481850337307055617840340355267442511027696785448921862144670397895790494585215171272079458286958532149010653581595536679313873528755276558861044220159526399359477057581776999004779849413777479950506176416635909027822619753176906983082799905369578054445623274491634381214819524155853316099046954136780122123429285940634397749820663562955157148964483747668537121736830832527541071113225227194914332034671511092787274014150034675769833744848065594401524823560475420611439150871424719118191772420889611851468261020915952259529958638413864363596100723018168129789970651536590923234567381987979714091723225994259737967780754683837066250104797487540149665909457551452511948806983647210074684145686770842096708861965408699424171829213934338909474165569928488190590463208059619137145094067904890095637998738935121570376104683000311984420287882134825601711139677988041081020563098631568275790906098332737387359469431324547104263997346150702729908787153029958848093858394208191617303300457871487275154908014867540430527630241157304307782648338636783365261273610607327535310986996600088308318397636875423827609118890231931854280416821211778506224550855108331326118219393507425488055853829261793528400965953492249523922281512592963157040690391717560180019088571255959394308353584504341051800233849910463853975360428738086504758166359082338471007949940751732073522100726628535975581140308437324375108749491880447988856676084694524221759574818573494884544481737427224049386108742686681593856487828389689957859747036207503613530045968046826303993632490939916541394785737711171664612675355911352867739838740900967939177729367957146413098505472802531869701389839255974427190881726734792578101662676671881892840245991976289626883435344032741442811301898478618057653743243042649122762847770824334881315427574360285732820231896153213673644712846986569247201123188571945261956325840077054463243552949156383629524940415101264083602174967136501460984428097157241464121352632447319385648209026074318068911942872673137040148414703222758492601645968788548366097320266954874537439972752139817897045256414842269049264311420849129211513715781515530543611377361892981990478402894855891662123277491418204217741211490108543397274763561896347383605962846748536721773853973649232454519495813810981932928270963238610542167705597299340067606350777309639369263966931906867253688614301365274613729170244933801314250352388663799378684250825879518610408357736472282799694567579095977231092492280229133728237322499716358070613930995709478374214607549394452657092884305465459754248422134903862133842938456316450899138906635354551955572930589307865480493726383379156474787862239131943002585674560344726916305702819214987904729812619706130554686038576808820644944449680583416916225546558247392329823955823014555715544859779575618959132035880379077408015450946697830416854421355528312533602951594896499458714927665289416123463889298832065408353484316250560069555511587363862688421325765687310973590835763149681396542354777850793925090940856541813252150590084119051076308313700508419635239656035143448284962525340796380463731876938501982060025379030280213230252878800968849932619861097872602609723742878344396759826999331475527543437701241283458769500435860038999235652249819683256044904358496029172367354200290977852530168758309865633275429803419462476840566073188409029529741160979533448413340501424800022066323763337190851370329630924412520382359019199194141688301303284325676362240675194347532782692631239108331318029840644292364884868566733866247438171074344980599443079228346345505072495969988798362052100233158065321496588109979289442959401264459910241436094951236565545838042095666636136363279886312858094107341794566998130335861115407057085633696481778272845297474569077881536986052063479471085784072567421780702699515983679251651245732657561976652313358890533943703340016357864220592110113564792410034718210993520933790062160390336519607017555706767790455630214853182257813829915263169798328372210955443417052434044305392209420709185109966683979666223622343577470476071730416481599057289110843777446574314081642411619442066575395342321607119734708223328203459704066827119896073769976948695365642092544190481622017449113284192037919555491545607419296871608042032334061627471008247034528589246673640558714390474700949603032077300277646004901320086480809393857280297758978843172102905477502140590191898513625209151590161745146669240966142116053773135471552219564961746768532692231813417001408317891239935099314113042334116711561121076391686619596351537488130608475108965705395646276639002805665025945179871761353786430404253529545085565693868252215158515076359805521416297786802182179601318834241239525746858895696925287674252659046757303728583294232207493958506125994248440737359658592874186488263962861529665464038485201889323544828305305083396398449977810619350357800690799716320881998356807217298086584529990173273054097058162739034011539666865533170297188439356115477152452895960701205369332367947668108917047122389117641680472881113669818335165169917724173161875477968143512476002270380013647823922384277788732797014199456269651627630154098114676920748443542551149518066370894608739400496858821037399180602784088443685687303888211455755786421648717676186145979763751113965181488685690717038498643252569753746022461994969742252834312118403299939264313869409645385904013372248054140581582199298832823395957260883807618908628507367117484642591302259350533601277523832133800286142971076209800151667374217208529053574119481453145614495318572052385748854485119367030599715510304312919811016678210518113429326750302309340257418658861312763662620218883645333715717620117948284773323956176970251613649412493975656650438438553376590268422817418679410692859262764929196738868436964877378829357650738833724308251209458881314899237620032585281438404638994804978744942815598859220905789288827529722427672014357755599513627167983503355110260359527910276407864903535415490957284615072243953248269895554261863280738006846894755633012853763990476914074821810113061738204601038634850438854462576143028962034310263356363551086713749937582281456223604060949903860564806705552626331074262015337605900328702308727036766066586049867365100385834636624980315776538893077465414186863042808385141623085838480029047009541106603572270463304297481311397585547749257564265814798335467145796310457114747238645524143385754855741587411349953374834101361027418482257688205774216376149410440559448198063655925981128821367773105254510280762341266864265540431775712207816815332242071036896878639376595754067917271267174510596852078224782098476190755162633464158544239727743450118359362055539617222957223077756253580360813697195919944150240291091048774419857898196983840626389009612463260226822167623579162099277695375970548385143905725392686630209265851061485187784926022687024136999509208447304202504514829485915984547895855215605350937590926686995983652351380533057563452715649182635366334026446248609548532833880266090328734358855919279223693993053422583604154471553930072825537056957773983025643281320483572196164695176029766056836488623632693918368720575389460457282364113808243668084417444908223867895121477579062892999513860917883047635725423542264890880954032562854818491991348768067358110292186293625213842391641442162647009201906971966395183934899689134410738467478687760613187906131193720340321329960231260850100910577092801078297326916727160891750689932409836075320108075544130839832386950910244264823176928453496994836964822743295253583260683117815603938719163387651153531747035040812712773330232336563189891511583793230839768712154628136431057172029028289205993551078072662091443010792202314421822439460103766740909601692445785583065371073882493755802501971816788230749323743493781760186770750067435242768717296771590309052512304000176911306325077647251420127594695080369786238466477464932637763030837167020156887837622155079826277050145161917868581914212137713764885471828725742294995817565334025880684120379308303506071195725112987981377081597465552706701399791730539499805732855692819818179994220467241299481185961473354623813341172730239644573456837649814586899617017075882848406370839336822068453058979622023634364091040596494060940187571110082239430840237063139914821163963942218395143645214176706358848267197372582682543321386444449188681434272391025263089095426011359969423753499121880178148874911602361002638675098709811759897477975654364789183202303730320370270357735629631432108138967310721585780937344968570228461895051727858700353043393987780375882944814608556016338337635507431846901969553574146479615300167795780163116782209443272140981957855586869636843741543611187332734603935784552604349499067356148557443253023331215384090871000134200508810939540307855196813118004282912449078081436577548689185614766616756635162419146523793772547127530430175394755351938700633551529137616798407469244623155516704371444174171103402611847485289613394317533717049925728224448121126121771318486975739035825319619357616287380030375213635673427863644806425433103972085009412799779898996974423061149856830445273355134927428915653035973697846129341564566229794044216836925585930547028729784127225918202403123139304070285773532300996693209043254051433062806156594675058048172666185936022655350733567687373033311984449494629489260653181055209521666741915647081011748799893696030974732151146327330925571954551250783227893304122226948208676373737761584433325110774267868355741162027268171497868069444653319368614060241675102323812772688201021378571197807729892087095409011559439152630089376296697063440533237494995755787633130334241097528481799144820452603092443616857522823810278713765078579691170474439757065621014163853356085351777500211022279766283158367565114546010836557032502422068314176901939453199017790263154404363985765532199991841409782532157277025552930049482561635591713823621313490257064149369155204086705547135139796519732256373379289354130722183701591633993712965889060124523198538404572327007465529689600258147659140726792699230713367991551376179132826230029718546572253918984900316193250667679040480893613705829722359036442005380402793520210791869713961850309699881488861351403003060344858743041714492351269199413858451848128389333126839936830978574404178931709259626325059493463310669441913393431749288883124977441980999228507455858123541168311239809784124935020750088060050228499529563069681665686662670114463395613849652088021065481534243493894169900348187465539301111764802180950968162412516335771404765996743974430057450068204637647988998434148775981740124252047863688668414678857547328569608513464513876351431804608634920817453654393270521491906419909733082124194871927246613623888131063706296693326007698967229105150876096082129740199703739030446210591894256352061806408803629816876139568388444348272705690656628363821529827116510767340043066045754119565422243230145000033564734030268307408242877011121750842551435722018470747538127696660665710247215251462314002753050840000197772539087537301016092765770487867107860626628477127234951178400020783799152142174453409486741753704081652051455758964565023092585746181013505118206050719304417687067364960988618984000531413531259528920105686278055582051653449380649811497462228535613919106290211286803407877092899886391639652941688307690369681887087630068343307069591856744606717430154571700404519163591189783684217009184047875297047030396002743238333975356287591738987994989987917408260397543575221241642999727201083319258412465663807793045237981070601205854242401420400649632720572373474966921275956677445866109596296198632158761517849842816273618098186708768855237622253384020375382917400274801766946305932974785697619265434675836500150410132962032701785956205579935693683828889371181492179515095097405933107144286778783227945966407392498760724477817855305984576251525077669999842085932201548124606551133702927139829503750240297395741152104066587567504954842134456867563197872282000771920321796015399030569364368075868127685430552554444143050965652437150373070011798099858678612694070923816852935594124189515781538951169090189056430555782307098054520034056965245043557977686454084056563626031948359296633998270757076374232447676857788680612038512026993609898209722479871968163627589956598017413836005165950013357076522856108345832996420067842019671089230807898271582578774771586523221581210582532251822445034695724988943886945032821639532448830782463049148206476086539062095779612388458354081958783939260667284750651497661652684048248590173075867702024100833136955335915056657395332688915509797212019694841714109483095745529122432617948529210767502492538604824294780055586424900679546004439772739667100144345808120521155248429412792770990911783713679866017501035515407784226282610177244544219121563223351732074273957228210569816500737149898657820001488426058471081654800767039075217336970599240288140739069165268542681815392858784829898521129672721648026139089997720061712299405108353580647189350593219544648454061159448369258331140752139896049007263019035734609834118869406118300663348324634658309033912706066381954942739357140798210942531601894010368862107839887868575795661392325754481251847945294729812399702844021469059454039901452706044487504643930446103270632542405365844489736878377283300506929617631753427097510062964683950154583857429614876998101154451257002915468949618576333331721109325675162973982645119296110020095791673073534304363117149496954262173556117989713716824481805237881166579747666718772082678311803684677285123228413752572629319290949285118588864010929167414889780366977312335953031919774151524939944414507202642844255864879582481946431861189694239127951711012741878578830198596998491727261146460801145279633514453527476449103218182389768470725375334479252556288562297228591655010102476483058173704006398750062413375624211680313687746180404013501185278462721645317500759673248894165135284862413893332003874294637762912046122420080465485638189357379270660073956408690415252776125765985716677735312746868267621674793676454197733303746141525460146092544055000586920271953955407474792412212962521007385278774682847114680312661457351961153935275116101699319922697351432446054346106835603736720576598278669212527752645396820395744031192183740110730710698976366227403418023834700873278049825089382564723184225712671863279624867488183650675478062668805456459629601366095977509016168289918325304051689998818285894763305047544482760533300101886610211677917209149101815571144010010350049420748563787681334460287461996227697879868128866672241682780105398094505713990276565225010842639034303312914756243712819226955731320461313791031042354275320794001873547543637904591512311106450200551466424768702982061287203617171900313633297133404875564125485485246515548988356151714207605297166551249374114792116029739972864334266998351781615298506423452515061028479971645416956298171926475518027570671959757628456961352853599003791277908209435158354929683209300644753368064856562436201736811044434115359770042758948344886668553622196031077381983155771981440840239798115651142078729480071888179458717602243866853166066441341539062131715762047116854534372566399585198436216950132273100440876759494204721190826558635923883131955122133238299474466193869278616925971654856637174844748510729355763221305724689746729264837772454540044720507601834881373386622329937221897605463895615531427765770797589548187266793056348284990761137308975721842663357138060497737687090237581765240117584819037131324179434040541136572942350093187337902772473067515005715171227019801246274413323513973258647114268452397363316792174186189542185346780299143310554974658988872138557169385821812274487110385181272703213004550928747653060792971979000531704337321810897913696403227437424798548624812675122315818526166759696909541662572388759781344338734101247531539360289028263731218741910541074406079671412314517795917949297429498535298526804727709295736140382416885170487989323841520258988785055929823052534948111254552226579642915095486294111993319962817285655633072904176348308202465072132988566952408011880575951440229145447766414435371501637706555183313184215134156256127448955634002695652299521189378463162377320716871906759672665405047685908553122102332305774239742199637921808974683633609319053715126379977498697665619480120557708712044673656686402071779236978248820901553822122917447418666784109308952149527501413874402998845823391804124494177788798057089014674654598406573843782302250757751690698986211628962687490561001321318244917112968556212751466419277445326814917240101060268577401780012860111185238138847612778827763601844918238260582512984952292578372622284575620104712122969601791001151881922036748810315865826960959647769722401214526659112345202154046422798170066669839380707849585722333389625440846253550580727848333534860392974527166525295827903644509919840333573183265864224279331273584548310212909992006637816297611003873440461247484946399405397010741962300120206446095581680751508874939796543511826854417673767971472682841062066276702930060765481831471758348836881748040225259479805749849886958476082575420665468966490255746692045631088802248883221080056349058276115334354630957973164083123894520609547763718160590704062208956149481735144623631075968598584997790512674133062653227261673287840512288355961480000303725038007685672235802494053585031726624644373498979035741084277458583040645508719002039735185183560743186997019462694363581596668566493035525476887109152461562232861903313392104175304103665504638396069385408766342690136355212462315146557129138366327750348824826794819650648517047744992123519069468465805608612215173978364773530033244321934874749302325940368042744663267336608467157335159599556181528029119458766226417372169327365864387137762061895895221162946788472307193426293189517444965265273222656383925011798216841085679963714180890518891533900301009381763742040879001312679312564736520733563797048765541202304726764458583385411170435794146395942815093478379419888431379509510161540571076012602394428242964564044359750539714453173618052963822680828541901131359427592804569940622740591806864784369134901535628077730041972291597423310272394842984218613121181276336127955984776107628352348840179206736879255163589949322562384328557964098148968996987167825540719205771327099925789443568026040042344331341328675695803688884695526249266484797185555068082721755451146262377794052022481196790788211998101519041179287519382576172935204591900703352964358864235793336190550651467370224769505755150331041602847893506356632312571757268905036146620638433055153401757979628581568554282245508393194268127905064965159443703900000378778207655170468327289528545144216122192029311839484466383935939353593430459080069143575746077612792407574156867611195679172790697777890437182251227895493763916285510892251212847546780644748131489592554616330166885796074204514988954242720735230047345780755866057460088135418261948458823183204961849932911749273057086315239615356346735420686606334957876807573043689908234219452652140919452715242331520492419330864566004082282706974423665067032083714748884187751731616814133138677460430981516356732092002359272792509719990180902336478492883314060587252355485570308596558056040621674661787743283073331799364219488035778894886292691265793135543360827332993959512106507954079391219143772681340587092539913080513368000909133168290203872613455524539471366452181333010200325087111343832823484661544141882205069581363806580735102461467794443691422736206258993858497763896039611945043114112052384649394916243388571830490350581118969139057794314083880721648460141074744653708691383504568411677247560613477344219367882501207504895069448978279283135010819800827029436566744225343557401238602521922696104677070669269642849515759144477837572327562559001451274116787667853565046067092509492822841526102948247044489588749624957354658038695076999282299814829256261329008259860781004882639450505018580211163273668264080145244891304464420081301825180257687640284980880947581326620533055530561841970318468669786550435006709695731280518482478327283622946700089563617059014613816911313990484048126496911272885929292077152705522443604543172513245480579657950742260302842195797093509266069440719081435328641606985192895545188415988997115043772190855434988725055877584508520583219191779672658916401647452927158088673232325374179166295733405286804081295667507683091896855837880414131376637873499478525153865325310108915575793621091559379793925728067705797296041117306795161799258299343749886308724413938806723540407944467312487901083133326654348507933943195264576282387653544037440094662250954928833217970759876522339583243938138784971893999979224932298857507314942481612860206196954609068722901929238752419900260492248035445955898173774958242616988546071062359190820334397772969465535643736132058822311392746612172428752270117511118993452235718351582650884592614778037670997327695059457419773853399241356692734327881644697005579853016952517801537322955724981277525201064428245828317466259368335922124418394766139591370063378115987079834921308647939154330446230774412944136458502646892202205145312555507401038588774088676824389100035946707959257163873638075316496554491835666342873223345423596877928260791435242310623358448956237156194022820652691307842603973992505492360285169412501782980357887222295355495168442319576150568736310669661714006021584755190774360058184970789746837876839273361440218461516602613515777773567802550540904402457892083491402736657715161776110860514673998627505978065371929875369316450970137485083991536386167278133220984869511452495040019820726428486111076708367203623140002606024918813319313008383726397275815880799617535421630720567860419396125662788843054269307114914544850584124501911617679609643841488519164468993511697523538591863063370699823586013425053583443797094660813184270255698335403501863456312260999320145377323957708977977043548468155759700567760855490959557806212526724876422077640903661593440018861948669989580252807586233073364229849982196246887803597172953832853130989272887364896811790493404794589663508440434490485900006342197082956183527168538218859853591369642181437990838283846565141385560661825395504888312047338370622431145795923963484003644414517106281106252498656474829567844996613233065161337319654324428057896254841270320837582279575916970624221291133933755034813306205077559291556512445950781646555872969967065672774505038712422595692571474363791032014992271523106030343821298378727536951312206562157207899064199191508015665885117208280292899631016760870699028215983714009197420949102966861913923400219299068617301968129044167505302491971416997982749144064388813392205346597946753181998458509366809539934467239424433222336778183023315272977805798600902371061800660100303324934778770675904598519570298285364680040074586950787840547160824255874260051729531660951884112182358015215599577961367494264996323852646600737357619028276301008022019399657046858915939248762799511641263554790399779056671532865010852996966232419290774447528416073244631310327334351906705578742817599200869686116022275776185477496768889277161243994828243923341927868208118788402787040530529402259042580864197528891630080399476329107295758018576679262386777843449664478720015648093062615690635610803997980363781742388216022096157905790622509967507151325164585847192821633471268204995971406168306348900659194973259997084611993969406225902505175140954013178523832637196939115796559143050436232052395563349009486335651080117981460163297289315855686891109803988776837173920332961062701969566016774001873908804225209566981750711060685396961536326262843446070367508299170103364865015639896052415092529560206590451841852374387059138670340402800643134055717685425000276674468538518424543116643270328227106853171525598051010444721593304794943853980538288819257525371132623963938123699587251758685175403308319194673380076612107472843202325648138381098432215173054400775259501668886246148615394972028189972847906215611343121491819700652845798961195569236765691020012724224072764633535214815266718136109965707606681206368595501574788332207090061570471500959629484046854019847826694773524417647216812429090901568719991361639233410287814613128157798824698228322104084543309327380406412470618501512294496821140697932480421469242638142295981912301604425754272018249456559188900960480383897544354570999770360986842143657124045908454776112751734797069058812579854329945243861938610873577868317398968319642210347144461991647677708533870208385426764867426307432506529308171079809532782020163639030438577774159398492180921227753035828856410767855014524137778418023961063352908492360128987920146260863151907583991761960443193323742458369204902824553254251196995508965560640820036374624303677070863633365475833679820743498563462317505949009809794003079951667889160884653957725481927324868780563620716704097771006764923020520677209652653017516733288892850438241064814211501202246197805457307090370826001976643504308854155274702260050518600410644258314702501276504915068622368099701667847883661332777515786683649966090155357712578069846864799781879086521642584375359299566441109779414614098084120121355239304740304258442742958674897467131761483526552784662418170414995332417874209701499739999694846306223672000001673710461999324889899140872567389798747330522110915917553059853393321462428634648509976821094790129048816278402061040240186258376175432851313524887310243278813091589549116954655166207821701491916298135028041131068912381274130470210265820842996358168239958248784596961238485270934778100282100710777131351525372980682183536974136033780049803498670952544961001944687876410267576386229872163453429258264138538967447151512396257602453308356698422415137739012786805703508881139133943595561985532735200063165144759832829091998915719545922372434893732190472241081422869426071780850736225415159709353930840240607179480105125451067180026627816602386083549462676657439329487037516998485579842619574643048307225021066964834215988522731178153930233019482255587101234104714467879565563201783003286068551349608531144578694441904098126196752502239107507188167887091196793517520564869362519663372817495313416932877291998265536617347416587404019307648897489267914837894525232396967926618370211850172499573985028165349056450326865906165026430101069826820680875990444823764345606396397759164045522244292689583316325002766981481975725754237817533099045405440497616882085111911971702102698661581932764438881152601171216863637337763450123511756029417625902000641263631959835092641090990216012304390559848880639133446537144481674862138409813855282568628120011992609644250251207203898818966931025953957573564445664866672267598544399504631991255031030714491506050318594774279983725022366711827468493847532263410520701310797395213910878543322663217537730271142006807291846031447944610167164630234325282494204851900718017674445053286221387760881793984234443083991361624956751739670785385022580721373131443574981637828895076328703579985517893395075073179629323699571961947455786030871261439956125861259484367839878955519148360486713802544643767540837833064878561206990569042602600233750960027366593950249734896737180992091112699029256995587507522617147402030708412361104608722435047019797369088080677040385410136627705916595379580290234460738566297692177119554303796775235616756181275727925981293237945757575706514075302565230978601094822915707872129526966468672718329368630880862155147520908312359264364640380056455723500555449682515096877004963953359702676942245540639642846966134594108213215900569677900984592992271169637216030784850203546691596284522326200745273476836299215426023224475423770220501586963996110944011011609568123032941060615475906303880779099580434978169522052603793658105402981093112345925127897549063177390654376601986604112763508563987199741006390320332872658968143082482371335451563850691405952072026434266458037659233931162985158226766207332990641750854829169886987848436397588941937664301066311595345952001097655754235055793013247286384797086750388300218302846547965060673686220970755116514254493489444789167081554079280869998750922839681604686693546625787728699865792881316252256898932283501369966459481276018332517797481968885337183860793334414591002199721262752824354816756824397673667367109880572804486644541092432511366802260377475400312447409091340584893416663803475076990250456112732250769232519956316658360957913184509670645221935123969090509600299616539050178885087637634714517395699707404584919656125072182024588999104057605933625307741536560340153520420975043572819224913028630060529001720577707916911650532954610294181449070219701464841059831581631360981113343617511900733099898847654630447534111770810721811995499850591255655583813840778954140637696477773474856521439432612381836335715121993286779433314675955824060836248952695031341340246708416217301728953891805477264880606666031680496110023292654282542445299078571119614433797857772706514065855576523940191143613425580310166766587185947506863727026098239344014568398638429268288936010216819173781277002004658722077743042360611205694105692837145768095263336886522949993130345508711625460311852966016331305879031348068653007617473810165866508934766487799757311761083601509231285108221523725711244671002025209183357792869257887752033277411836838394473957039217131972266609690038748358821535646082951512199208942363287418012190369681233719003128254216169665497654180437085225992768004306422659224598905199204701487737408321054790389220888336760234363451576285946218489092240746865232527101040562758768240372910704436633730825048937743666572088030086138696642027672106693374866795310652375404104967624190635183525602452643959324789312556855027426427742112043579279363335161798292307253263755290233530222992281162619739232906680758455164206184790639074578277895406469861612523364434887628936438097238128346975247952950452431965654230940054887990303517039489586763966090965946260416840289440853612635886617009372844340370530308861462471717772631002515370692913600975402073311533089742818163372835546138797780535747236427996701802996264085691459971331405030177437412801002304906321502943939651174205456560476259778194968640780299613518007873801346845121104395984426503972556395012138515504643166814754137611688638673031907284128124363626868909031662388806861420489057129527795295131472459346598482659167197670502754861199314575203042159200383438026944419880746400896822865201739521350651140581344359492102437371849856405746928907913067135184937907235031789478121628246924550623187518928750043315770431998545329368663444299436860124683598127081555943010726549998506268258584544323616470070547548502575075851317202948260719551538744612262357053994361887453148797290629931589559504586163521772604926196837894688524058804142182496995105884175286959522174294643605840721246257217154741476136482233802397966231949445015175171812069677354208569801461962130420305532836918056244497093290226827172050417359146027615057858738727073742092655103578175027109296177463752151959480994223198362195233652026323868519857675464293085138447808211699793656008554459831746240573085875555136882348149508197277177046490990875429544309165176753351776339704845490581550088929803271383036120127698930095327322324508887406256336764396431593457029106823160740219452676344809804733781722817360917733367480035445554149935755255611464944253144617789681751079662190247635107030374180723038866577954915981418199044584292665364273149050175865204177157943172998391753091745895309066773476173467344139074990173908965047504874441308003555747652657081970242115757394844835670352000171014493287479199895794508113362531149528853059707642100510138647056278907990825507266911472285462912831367646118053488242117980329808146802068570481894297631285629424609739582412219792148470434547720280035133678905317218755246621408885148961891891615443723643293762918179042050940638552082362586797337473663456953007173492699441853347948419313931586420746363127281884736806456463875843947967459245499780093682886454907510761264979081736133343498004947591245574059434097548162621949572516673599379328207038411529666633940789456315766510164289398781745289416653787874876578458502545184640163300309563284328547540221224922327708604519809587030338603710738420452551055968497195415169292386733039819322816309800111412213435934023493670223041707235008830226507298168546003114928353892948199204182291883330383936938541155465329195192514410824916718633732338877878140078081074920525065837403362503303126468262766576682440254466684486333715505154332201559193428086458395100419449075505470142366093088223439118269981347119045402308993040433316441097001696477438480510502638724884901384545906922126208311351484457400258881951076952322962616015248069430496510067286723128907088857261429580899853471978948310464400741253471545072051195755068440340241005238339084897495461495547205213666457962396835709218505377239826715908379942364456421373515542238122304199962420225555102605220562127657522912919434766781825192908086646960516202169145183009175802537641493027881068949917858172049622578575795042789687830740762692599133498727982656162349266519561357121901097601128651928750227573757681122322435944538675811753180949421691174334805480501898885498756432664185107857692552322274800404994497422890970349393590130029541007702239907512733691898221810871360079595561910804579125031575808210408773103179885445940561970489034557249469766704897914004997561721883127285118835281531835192230327591780680659950652361815142376449860076095345284678861621349714490824973958113701934655341241729465896316531425789082325660543586979235849153067264700006577934274873431538787887362635837749944985695412790832393959256006822221601273743622648032586299036058089289953927132248129261763112768902108826383264803889983569872396420709935458772922190970506220702824776803423865614411753273557632825251738787220295355344680008954282272832527478937040440445562969146835616234244338877848969007995138688044096621390579809659707465709613045497863361735186148911829861167329118833669462793707935525181815237485655820238431048736590128832191812366107013451617232301314651502407071414358115819651934095230923569360063445117074321958400328557858753473640888121824448455845310723071513212224738053458581971748184228002857776812335681190423246199684013343332686031219285441982850176703386009488943107910355903084025757858802810467348377847483815737025987384713096133588369085639342949627293620607112214815825097567060260725801824292990295035681965106487395853518967292191412019530126895457643383694901301627202059490712914721899439915680235444738553723893607645332098163539397247030447298051947470587293902639876348382559937905560113793882369703976180121797905835686515143938228782471579913265146213926498176888236439350969978698325709608809901408562379680759853940531716681537884866546078310103570327866798497029418531071603714210461343557060190400483376635665129134572464767400596458093048814967000551951027602262878044440791282759133454661054202378871338489785299273806177906079580991344916053098216071552793501327699751676134267179801125105076204121574979052086368173624431502299780102382508041357685363228134142841381718447884228808179516848345988475481917893892237179110958686596665628170855560064712840650140430180733628741693301212280551078167239120392288336907904275607023990340828025282844087505105971284637569713858290882729160490491070828018616067603866150277436192609122436129771591345320190816608318449485324379853498771526990731801770241293409592465693680039493593992529736128287661355847555224247307567867789181954928430033558103625197171829597246363787865954977435891730047409820774590395511751298598233638333107901057942064976814167682382714056470318204506839461150392156963866259808251698775420162556975073078824651183459941322517630759617217001402377253290250112669944042680995111041041778830902286167254306619771592261912805975989781683655701876440551093200143472402826996132832087534224959533763280318275528968807649993222210263934605096300183812965177477565473436282534013666442516278785308201490457744553325609096018408783369360919319490712086633807025971645191259855121647368040972223442006442571301380746715951201815003695733527651063957782712808116266298278134092854723065343425585071879253784006708705731143588179924698428799020802596947351204941519159218958614529617060286175680035768754663730217781395517275611691171602663523031127260666534884571377548032682333021337953421767980865807953897487056961931307177264791529851061296401451999552574131675588830740609316854928614442634954715232017655960808584334600647123775457142039560201292884481375007766322362139866013663113528638808873932606760098914443122257389093335736257971442850374143365872245585714665427744082580206189625650411162003369064488747244705132334954903872902320160812786252195154605917017734950132709531968691246663772143081045041917489589880636531473591261878457469728654952051166164584976675357114285380564590834594083922947750703399934306271429277998619278516183236475255399208530573456086508509094791863056623605910542147367649554147310289565685880171539459054698053695332159595277653801201574576474745381536922092983975935948121849842613894753424091431292914881146608264586630746849065050049110212153398103787331050880883782759985320055633270738889431526136435721079989514476645789714971525672686454074275689740971742005507066731613322877486397579326756198986614635192365022338973900792876797924236727969340718664012747273691781721535594716217502018909262928265542839051586099864633817354963680952372002452216719860062743868040160179974158732417061359703957690490289843780756014305890743067450151556748140738793628186045409932520902939485042952305214459234020145622032749672589946303414021262437858827033533889674121380606646063798492400373331487558145574057306796329648960325830548302101621400809703305565720758982406380281967463527454529044128859459151436947904211639631348171586566339091773221094477310663472772746958343023205948388628455920484085919090706429545752175532192480145332767938610738258300714111200424626741081228748693846434503289786210728381894749680997476094915750810903034253203142460108965297549693887665387236935662095709997479733291054508811560783024257343450755220658251949413611405200444026037398711868625361616697915393180136709472049797532097264042834117004060192023035818910335547444015423879675297405340010370797198533625320288537822814753182089762200032931416518032419806537185527646277879973520338815313774713302403617502240535823989134458050611302897305474488194531057206414254099303743829463584151886805750662729331381506180888957437225307908013176926658629417605857151632477543294446494565385421589353851572988990023353455187206229087123864927683425374565858757720392167805832537927697403261126481264647944936637092603880530712928133839080062497717954182124051838849350333963749840034348787810598965379824008162923474593403491232493684199617899151487950723578379806805384002041363129809539384368841219007184475837084978626651860510148836532184847325748251281017505071984096592735233333492447438503025715453002682156537259897701617282678064005819407628195199391273281741212092371167497195241230514427443151899168177808962204694472533223251369886592565710275171665024254933628220030126025896829413833873774928685707964289791118357136401756596168370685694427243836713133786483793274011515954141335877157083319883389329478116208247399046025921897715882415728012652455742205188684927489371909001202842879204844015442121659256148014575282126566956163307813062320060835560702221474764915517408853648034701274272285320740451279003280628931305416025375475490989234073761694694746591384991328086523214635951818513625032230142401973148018848672204332103314020065506063382576161304226324363716116835988844861193199817484573179528008838624150687429299257711523518978976602211060022530199488295253457214537177453749955543505449141074197660823338169175645127444949392442698068492803547228696602199245501257718921011031896920668984754221170860667415650262208466166281656701388892885144376117284136365892761027801756767516640035794192371293737541285951497574260392962200942823553728248672400500146454702257185755830412934947497427823700028246162548640629696125757172266059284776477659515769177400372389020108472720990215473373533238474427952004359760500383114925179236332278337821257827676107288948729494015424397213152810513356020514893978796644167213577110055843557708235124245809236252685363286621705671458507693858736698833790909992218985498536131583209473109815816358210123168657691605158275439829703661411386547743925965692608421394514478428644933164113225055962187758238814922692947246493352982426158232062988130228275884291859335184655351459622417799570422399618548164003521835143249869746192971391791116021527831765015779277441106515344028130510152373929794503714195360500645792814953590900288818609569452274780050238732618403825606994609001775756861133776769838158188304175441600697307432698386889222856379656674394661497582839292040261754437575657721999161984644082552168963375913495559438702633116400377868252068406755059082627888079848044823995434470981722321219542228827969878149206094337409371448198876398446197950282422696642610162696290486649406970605728628148281684901632173316943292926632806894223237006506777089963992715210265596015478568179561068246738005862766696660489423116361052217357490475790960138286049391467576395825570016731168365996181537337858157683124454220310688169783058572859442361042692215429823677588474906258100353354817995271679088998789322032884280087016332625769060910373672010414009855990120102128096757382294848246696978930799816933956368875480690469861185093824575751832349633211690785338258037310083949683178328465323183692374597606986612884349318436422798084950287052303735424649722459207638820856287837296490454055843036725398582381403487716876600382381903825076975378951356738661081032473906667292857127790568248146850276190742416547214194137438508384322089415061374908524641849416251338875015188624926789848076103103800987097435711126960425464844451855748758932463396264727452593654675149222822807089121589478657271399859408424851951164126301826131931128199564948290660934057624510550677077047648233333074634926589970068962734077217254163947245336277683558760407061147612377440973868614762464987698824647532365595611454778192138472222011070983639042435308993141149340419548379248737814734170857675348437602375624795138069807871779098133367982796549693965484738443932704687121061307921270983088340148655746118139175339163401200795782590493906290677379327756736738339819445546696234359996712366743404912610086121501846333831737923520062952527240866480313588502664591436885689436965959243661549934938391226517947456114833286427515996880725671553039515772123288843890605206739100088821570180467760339146658384816917717817621132374867212519353138834118929224895282703805313099671578304595544406736646854861022466268413442381439566764629197256024224221012792003205791339023959646679109760500290480952047629628441442678385565211777210829106752052824669086850613958679871124703538735250921612681988170580985032244487518960960176225120170481391867156821303098038356833910541923281445952233843292960210545566683702467601687482010050440686038407338203347415915718215097235741352943568675015251483663065043961962226472951682605892524822889127976698150684277338107826365179156779843034875079576073478071335942881355113920716389637981875644525158266534484773536891992048757008476652431641853196705673943539007911500639335179170841887817354993610401172740411039230584809722450500495458094644563836909672718727628441370459883024172727864865047769748281647167097320849493679726495036631327683351439911015719520374199710704092940763619106678356128473975064661853684373174617767328005036125758663215346570209974556499163147643812900027131745391017680595247893296398657813867341285658313725237027585719342498680506920682200558490622523198144320114887511334288180309610484447743146795471594757402351347554640232313571181484220281546834977908918062631016207940598434945210230089516467751118083820641318561296398738300941208284397430685075373642972698329256981633377700875810585230250129515050163665289771858106666183225603677748317609705776994349369710943368529425809793512475347158759691318070832163545676966415026374598852485402328896119394620985622865568042519984120266401109475900413223690191754733910083009342806015016546508969307179328781711156147275516594962288554045884659231351587641489980474304922865193335040616088046551947763808954288307739907471939075906761505261488196215584664771591327518901720663911220050276605312221104973550476678726873775726265853417790866518664440013984842841443512414519976196663898179136546958123801162630496908472048108783716039144389011684288912505569232015015525226385857262241900655267695007177298079144999107542076009762737280589163343579210656997790638546835867651148507558776762425218226582639921566867820287231712134267249989976884388997840957824741420096765494399409896666659231049607725291801902352078201227269308779402434199277237087109912037381172141516735822083127143159725134677243563514001251776747461346828109471850862114219467222717986203740188397719968977621516811626251437066241943283209253907273942345114443579163688895853934799484783919410736170153890414000511315424769083910243776893478112736188084188394910111227991693642739195398906777286361532429432097781939367212411347574348004179589247550382999911280443838540159774024543814926144795150592425375336436772695991277012100697018186936966530392113498064048164174652683540627845462640179331771751612348702392800328146973396546509100280238658659822908477864184431297503321488348890346487293594034638482955567073076080458438278153862312608755427588912704295598519943364864095666807878840204970467374585520186452094290984457711439398202299342349269770575513861221001991925607535756498435538672383618486636056363835485586858606403960905265193559436851524826832253898330328415797746872140928539382873713496215701443378184561183533143268536938343708551523920877142944428697868698628123780909052277053968356111028593869044099320755697393678093968546126096698072253980736441730103311156023507110123476668657999051533362095391274246951100768732538298234020068110804214479112970459077279880710663571907851637100751180005644584636723946201932909244673628664661691784852535592687308504356919211755887919965161592334595662380262277092721023012755629520141312693808200024867966214521954123702423813566119503851496238872678855560869144480803092538005516810891581707859698517182017111715481792699741929353270934424406931867469810572500600164191289267523757367008494810411232239313560002527406317903765255878281694970200284675490578438044638231784065121890740122969407927148637979701864389832234559487813245943027678188970991448049422194828204588336256646231095218175252890780165695224250326360164250613321186252793487164128281989501412448819577129030821824853310880038229462727274803556788031841693023592853556358726460845001769870024117954753018624271487757202090249588142586642456365318738442836598830972378416410860792285025743226698007370729235230020331309070709387030508124103033835731359120760340252518835349486159742690492466464226149691783854459288952371365969825712319083850504627195410630687982508728517886928194137509380489774930462529349933204076579456159973576997438415946082276806914762571802192593459353069300981397197143028539290623763508382525950031003111216388056576081415617250765209810555713983328788495637853690515191905146816404930915455356458486487342320877944165137411751521018180191139688491171748506705868115836169503982566866879780718341956369010188332325695718477214359529409712393287612527789746811476110712329242996274811085464269354289116699153477908601984299560569608355133171806845548948936002645257484792297669732566064367328596609722087069945433102829326530487103402491896088595043456339509667432414375229995021365318235545175214448843419804922414523013326164817791681716494191955649723463651047756232991004895417551787329335240825460101714962272036346237822366539097141001235469379112419069329763279007539963914571966288597304548705468944059376513799993343655118207948893736434356590575617729214925379176211678176434534984887621937600457920606301051697335676588893599700642318453991464869261647289409830141434128257860739337300069943635683696940516234478641525953060172173642079798758651990634991132387353263056173662301276122209196846523581447169679488813919986347274504321619123944557010251284930491063041963208237084590515069727040919375335780912477039951652908098629180809835865502595940791540457074977574083465858858229811356096901772908668779202624266214277430997038097045999546383241268289150657939915498661170005006156356147317469964709793082307885681233503438326156229474438441827643332467039290031221770364713500502743531934267538499047661515522211194944032478757982382588339839272416396720951502613528244755010623781481271916250439090909848370815675348638196107562919799931043386737783933920876329696703287165655194300915256719607043453406994949452082167745927781345046539134406938061011101182550276549368291409009929992977952796538518285678077746241258017233873123295783606775098162534746624150855218895597975209384671564473763690584510970445181420570992551761567957433181107222542505005507770146798411191153000537149943794636581132501771544370279140436187077697840743789520449610882628585284502672380599702383984995416789929243379572866580188912647508604235398733959984204008638572995511397114666719370756402614754117208660822874067770592104087804152610447869001472165064475026835194452601207579447291541363315144633674494664661412892374340538966297728681370177294404765312530134449676957944770266381869800198721501946483525030750771455922316491481242685320589703851497572310971990504802940036872302113811741939693909342414778829612468266956497778135013382887574796365465548928917328972884516099009496411440947756996835579603397686541518728904996827710898511208333965656919507669408386117322571034549362604302460385019847662432137810176288168492153876300334000604116711538515209667458916288263151564459915455592406499201114954592686023031276288849851051491846453864359280493490647297223865182890883369533633382298589952239764493521077991218364415981079395165222653109114371895440524542061891852332961913062558501835640588880663954287742913055309719970850252762258390418143720222164636575154399185812972519401554232040115748865905275309697916345654640833323306343031061759738351182430528394186879334712928027481565814568986817443443367081057695101735838576145143029028949604207286743444912765672526355788088333980370315988535776126575032865072378042631207948348960428682584111683358346446743370743765835056318496366245995893464502774482496194485354530724545695321101228262247951269438191084423375915178141549877300906037084006071609217182110416711446915502116856719415155527748145919677605950950298313959972480785712371468525289732845329924031162739403511493803908033814044742207443830066108639036576950953623972994485844657504948443683934608183770608086483073718462147660711084252326911473884717063377701303540287809649036972724899475887310164249691670341862271377072184924948678703331528191421753462003255883156190055683496689292067567512572855876813742982871837512354013558260311456326617522802159607422118761876470121841886128603299582217762516544555307079868289479164566429671101562449864820313721361628731276435198522966764306243371064669388217028126735430792266909538923783691076757416511209670677454836802113738214668911335294201431372722592621048514654173883585334685023749623955930386944675582190834666254679522224071021391944260971542673540533357971461179567741115566819407528901990109163316093986018422989548679672245328162039569600245777302200425104535797955382269191693387379810647007544766180102017701435395620658525495306436931199033934634519319011743498746859382696616742510448662415877533272291051531692303963870079605842023925386881936782981649295040418410696095579587487852561665335160065766032887946835131609991441260979288971235794159168873165022717976159602315285905371485357858318920196855190320189991001540353310627687060030240279263820700934738649382944875362130594454790570855993903719506914053912643573283683982042464550610533530996046806636328843233315902374426869520787268518862726599468376819969992958537655070932881748535115795346776043607015255020030063384951432938605019802667027005363187373292501283372014364284120678083512198346461809984630962632593936866057105823395447620704076261804623526709256419336853114680192658121221507248701890658475069633184294918871037253376878712119350631670736298616849051946391692831083974064697229770528362339946270660058778228429015326736199678485965365418191284221658783792473182174299582617952771014736185694809505768300096238292345776454942859195687204445541954508755009733736165145342783050361022343626259794100674769816131151541174676770050409334080514214004362741783528639231963519214849489147607396937087581076321331735892058161049515731799535905422918150255123109350969139731188392036426325267307935186512400471400425992369153511561676474682528251797309842082845696539798702003971267878914504311603509224558017735776458435820634130497069980274190545806622184430798037020133787127055041936716048443127223319039253065202927128010321664231570403808757565921879369315369177981684161348283096567992188096383842107472094312704818596686652386956404903375648085324213230862335073722919243907384914163770654309266114473547396177750290968233038257670427769099255619140761532737012044082838077343412478297498503635724520144162470225620259025806086491111434361729716803924512359118495638245263201857637749851565982852701536342960180489450592014282152147888731596448026954541730436885942890877395467837880799047526414337185963151827046682763229933464793752726112274620584936906565174357882076023141658206931969992577728314271234986087955600755810293916262142556147505168648455643518739359223256255966199585835528101246448871729859297522615345653189642817419752013244008399850182311817988726986929033214789684478785678608375644970466872630472605999674319137164640972745940642115578586630135076383944617051590484469489313050155303204410572990181623062172841326870240376489181020439352001323331285178588880983432682613110850534316014112890792817515246058527410467756752454758217402646123466514877382521025529348290689416825545205728748436473039867510803262842127474005688112336849155219312939379852135892739833541466756646623377290713616077437443021801315250956907534425209625490433593888435415903155188044624611343073248557504019087514290978580890258454706116157512538489995505700163704016810484253409871063696353611274966234910247712400780055190456537978015060899882450916937199319093196724052099517042521421013008878027200177490828094085833231513575145934607625415753114545918762553719756635742069951225376577278360355028302504314404395319256410313300880322644943687621040161190661368380627089947641424420684942089145314170494831889874442919530133837563725574617218514907112099687591568879136617354337161615035546083802164540290200172687138782812255124976448707015771770109489345835100854100731905787082649551251630659113453581839643263815833457951545652485683330224501851897445235498059274763379125726393536315227721870258527045928571576828079092662926792900838691976319769596858390196015272196186533752908296706766742504822683064327223853674100856110354710222127446848829593461003060655544038947323453961319101203653387903583660680170495297313470819229700878351418172423409796168338870971268860077431389783842608098243421209185193789789119913617959657913577900304253137217182640275365765354851415926382332634631854013684489622296655824135497765060730729721147157365724468718278730795758428377755785223334294931624375221921571706325963017057766416542085555098269289083592098491904644886263394185053453670050340903719201034707207956280778099816733460951850950451379185002851987450290290808494810044230183213555691025643377155431091774148440538587981032157827271122768629686634631191774666315113162401104686613392397077622216412787498409805255515698246140903014723717572602680138573342266549318535357186100829806717151652466029293204305261018079284315494068126126935637797165648458560220193777145642016191868654796868235282417517624321560790976610251623817860170037566705512321790982338731592439884887159681106213365468700497357600721395205776510572874306807486286867628014951112883002761417530666901288133944501152739099024030285982824167593704021438925970227794921253628996449840541272460312411228789115998863595224274919135885281615128673917588517793868606564176756999309438532677327918395883720611745354400128623658334865974563574338363136891484360902345806940537049649381150657696329617072585702775810491937744500487153200181892860871463267043630355980854511123966972967479947523080265276749120451210271563202058332260233269379327437280947586341779776550631025191226260713778968553685632868558950222741020205560155107907981223754783586823009802483959245144920627792673464609387971082957683397638183195562824983400052486097527941409904923181897030274810717615281984605257932995044894274549244103555674629277482860663953351187695179544482879424863558276908196038590214279153218489522168251118857407219084445096889014581487797667299445095514294553598575713532872855294241846841623057154011407168568555727610672308536425936439368725757346068580171534286086476114369834406772207633324223716495824539655244562774187383185192656924070562351650509670037118919570145387483872118701677143044466987223486838252157389453013765243582968426789600807936109748926048537983816500973138141898859170957167568880837568920946471767028021633464187188455994203625092706069100821139656165543423661098445258497472788478273007079142792754640562981419507903718351353950039000637246003282399204586095726054431461247098003367322261163842069453620272402574410412078765724486194246301084806648811855402673778963353560206672854704203505453060024174882126709658753734115919742731088310404448098810310853954295039798083455930841126663672189243147537778273629079852139332181840356796420751879957152773415421875940894597878799235319177888663284562808963157016741041450476272464665807092812547281698980095750046348565287602423219385075374281558638039880114229062641257999486561258281642691212533120033171222958000878215534503697143869826789964559198593226379002032137074629545106108386103887194055156018878497149155517074678641528508124114901938343473682734026748994188699677332918419243096931277020128487340503234503212915028919523124431101554842117339683987688383256959554340609969940748090953990635539835036666731571539726721968202637174441577914779684961548573356025893773866889905280709161880796271423470563765336870455260162936761716549267383355833759029527058102126511995088571774281187646719783934439138635787918476717070673930920917386306617955383229425781935801123153583487204640113474486576038618948837017862921689849868781856717631848227863009525698289082736885338462791443588489945765645753349236800077427890519841867191984146281902437685519632092182734509027860878648222540134327796602186848966253425938770255347865090007625857838435374593272949366878175351986468917234863667249437988346624856420758592230176785179284642305338929221788286302057927016512745384235531228955717289816913688418138819831069928897421034536172631651475733856946487101745838819868020338885356286169252978823395495717409311150861894891528957258550084300330486689049119727007377725582247011608126759398062485472020995697807236189698460670588666320457655431182827954700026132823660129583463622541178850412716729855441181707520862010634271659138706203255965689049454388854966165869865118444730802275429442319707725054770895067292082289871625171674748965706697546483196950892691889608375800946083829427274500201156228029764948198246928446316703532134645988086405155704092172548513916096711140688834342445667773219789252398614799990472138425205678798791534086777645138994207501738506610166061857662189695000026193232792988336927552532552009719389714574976664172697176258275409138903388391297187704814761135192347733965053692572484934563611036754022713064253987623102829141108031428294430990097282332160208603190331383606610807505959977511811289445241162735106390105229291444411466894093905753803112510492253509737150618272281107381871861841088905094127122709639809598362407357694242817866445077882534651981823072712462889918519509329869613780817513061872016052146882860581848964738812551723293712533668821271692144866831643018725853492661397155991756957914205599114817877125514399322021018438114708350947245371601504503549001857483053160404176462737407365103487933824095273884920439961284933410882216391303464702637094888914875305345429332267688643981964273557674253434268424961870293448194480173874394849969427145353062791805818995080635671821314752330744648312565420612907755677671492269469426824201594613896267273345967481082013135778977295150289334510619564439724912828184946885691296337874075397549083606908807635712075525919697948945928706507555973049692278706453099209340719418542140331524021227178654614443394469882269228455385356255853696144568304498982580348490282664546031914032001891640426844058368387102468135400622632982498147372519507301357163995056603554776859474432232053175681995851037752307077463378554076706441700730967543877000345624144754588841300587178900446894051176661476868897459246743553453344938344591267498117778882924990504213246385743196676691873596916992373411963483776100960445295239201964500119492907501295783885050561586312359557522775330888209654891553173193597082815771254568182722594232618244827714812231487731617136471139188388388683498766350348404992062304503985729445472417618650074891595129897392383962520461712864569081979546417022166880034356601801176781199589716192896676527774642777762034376955521875292551433090504893119844769518253177491301548950766960377659848242532736146295777050689073053319565368458787104278350816916224980615080774241699053715324432188121648930165528491065335823618489128588848115625096113543009023227825235327793178656108002021923516534973238761801597185110031810546346543337485446565318770557104012134291857195349180601273180455397107443084954738932341337983027911510879669526425547267676079150930002516273132859564447328150625731131469168909945393678293054095654286125161090209878348336227767780031604418110584948737163853177186671309759204254511079154606562750618113495621817358959981456323490088694906485848857710422188021088781409740723600888520342929956183042560935929475880225800416523474840557762775125215371029380879571123775475645822856173272049116318979839684457540209666846726589286886832289221054885867601665758814234206603807686400314788228849877852691420404008798773457170885659720500090338744105217651902027725167621248623767925295473364449109797565954659235988643728798296593155458586960694464121331011885998474625845753927640920386730438504474115471882792275164701508078180093635947820756306646297809731583779905791007331895510449216488959790109097156896464097548881760283177995499666337276577325121996226602214508612722642551470716702169384439688129103133578590540824336001599786219397130387249829444213016383857415242297853987790631771270838857916502556167478314594595135521042450436221998910669126338854550922504006389397501058991656792674475999587450567068682640352377367566846395058800684849601745021418289346709725078151828697033792472097054762329846878755341394673706346786660023329490654544975797510255434548083924273569999372893420051777474903852878275251773434135518866876268782788473755059618015955017991901985478013186335006214470394337070225720200051195199216170158220478251848608894489703072272799916699889750166034126524433678167274604871230642520005546426631932990680705051670868368319631805092572840055785985837019868722185962675732967584032608769392377392292518641166398085933001532058080204217353502891562108285231041114052834037414478389220223970674642281323442942574316675032922560450096685834125071588883782360370323022183118175705705084121379579656554816315327429317256350438724895226036068054637937842428904512095261836109656599113261826728017423161745302539838017929568018038742394078901242620284735367400401525251544033247553547912245688071015775230314843082440943069515855910143708826403644758724178875681273079744715278004901966619102433359510318084733724869361075470849684441394637626942760359833944101358411749521646547607387283143634643710290862409352225171816264730512917847634602015670961800058223485443009601435227480266277313166133027126031856520512209865591673338524707949760343508403378929759443116665641752095237690537898856052481847578127443201987438755766050971749106844409624091261938282609661531897173086324558267171676547285550875287845528290506548473346698739603322629546404583936967624349820726609929637164338285042793941143315392528780350543013895674745735552298824468855918794799614504633502568833221085768487388647123650100051539572180796623580909083210370326744704112383247807199848365401985571949759137129900165974456110079362402092340669121665536205624728505522827341365619992209732323156689003903629684979380625117501115695091689968313540439377609711680755897700393171557501472860100152547384268461956610346266366172994155670044488759370440504889814460400463809038984466706436944011707419765071559776706491934902498088807375785966191781872237542728972135593745659330514502601338929305369924231944201556565611775160852369213998636647396434955589695035954119550860870805393583230682300189952893403411007969393334228084005192383010102573119380032753341272242880964696356627597364928669964186003874014550586910241788530562863848088752952926419544827405832096675729772991043993560140192755964730866412065339598367598714746981400190519680480041329878037657158813860678368562786616431385582529922274136161668999898977717993111073981633436330475347068325136512579970202279162786928919120904084522745582930351289885192149876562500425799252441841702535905056442779627384551645002233396380647810481519673781663405391399143611125523395842537787401007053646063254805174873840274104615114406295384635304509831502339399729299627171496353566246197391776726041411218385990720194536492879520560393902032147101940988221351520469143795733489523609836818299414192356082827871708438564111206270433595289066814867695902427031598355696624649672540760563891372881616427989083697795216607319265866372330245779749478981707409859213406554436796038057050001229792448347512740515995349050575457490522782666727210377825315421794539524031751038857143989682811913090844481970355553516127959893072337583372462060170267449262078111635404284612799149266644366988948322713570412934972598910539156717376205875940431251928694711474906787409416742995071822313875382881092336489165294043719905922909151309246631775238199950507413267168479221912807973404882798012949914842724641911222440581837642479008637276851401927089742523085803935331992358961422594822049326381761911447996171834753951533090514908848231170613005942610675471077350177761776732204915529294969638949340884808130720185318007065508821111008490004329585091946783561145463418354215876419460846077012835686442573595505409478031446703329787988681699912611960462909223848806417779164958600291955643303563960632154551946835388656205502045779816030497586928556032279192496317825468042365430484999025783774251900169676638329679508086377301739787489444522893903840511476577134462462378734650345675065242241305366990641057477174315478152687540774697890989205635791475783476616540384320003841785171545371185709074128631414564562323217811469166718118211939048785204528882417051089628011366099033415987505316299915505207671401504321654853374948304309549207873818546829034973123816943192180455875027435849863744089863086429327743055559430721401841805269091693662077345643804193420344730162405027336545367229219597195203071871648485675229554513254946279988990909094364963089064015170293644807973983514592953063152825770171466497127012818747806631128891473757307506765152175467684903464616088772296266476085781236011898330451076590085947568382181279390108059334411342120742058424921846457658730858283826306012845260191751586075773903452183759632475685942355578044523597185410821052452575945149645063580031425547328950951756902613389062703698604556145943447249952437416372555528082762466716550069126776317582453117621857508920349737263686943541942739976751555820792156878088143719226130432035415620477530487638337075728238117071446216782193459146869445492510209142490609497305070030809487699564507359569791095391693607215197567492596951140804617566317063681965774570491338315911663923947050295016414240969692627932531249254191537625209994002630791407427297184053717810651092383531564028685054961409501732571511456231229230157203746924057419528375198160124019777129012413132242629213619403997946983235973391374950585864106875708018048388085721731488761804113753976458606784183203225530943683104486913177204142052128808955908405840990516063009164537274042906680592031196513656630829057987036387581398605181022820225277715769552058079385645686297767837254587690785587604593459751129611153986364303644685897874925459335858489671849392405587227540813784718248786671047114506765031675328822099481992100838583774373210610382334200164012441398236345040346080191028694870877231788350846185129421426692554177603762471169631736584358603112717646649825749756433608990057197247708374534664646921215495514459510681811751762889171268301662642536039451096530096139999400715855442087900360004765579861945815419183726590763754964245819613695332989902040630302909748104001292195813372135194372821630470104651517662251936143624606172752114948467461582135489854566031567265641240116223259347585317460417069684978334007098910443633873963619544248445741366663624219152481494651360435617853077272960992368245049757765711719534195287576163140447145313270160424474699319063245139053724793653946603811079668525396711806138838195965883944051274555893008907089965780732696603519791600412448745005024356018205427089135847822646983737610706393609538393697062854647982035621446076813005533565743034014292060870493127079544052750552082295902702443661108929628304644018771066617447494943310461395518198807972802699492592440024198039462543888092583758228693435683930367665686925231889235015911117009427822561785955126328804011450715890238487117043657198183843307309905250476364767711292880078844329342284375205728468086752270191229355335901673896097451662217427745743799072072819038573383025936591120907118310499137621557154505937699002832244339424193151609027314467311625260222872553025409791334730028016003695917923357837249413819818300556217512900748166017076558943077687876446659407420191276748901095295561961623656662063105685263330865655366047049346020153520188255963357154925343765508420022841271497373703809893403796239656521217900153134769616459267598403224894678385145755879827450365511837169248274493709849996394151894305522642060473591472849584692494914192675913046605441603141888948121407981591701959351727288728671830170789305030686073826826525395611106123657613444723008126243300085348723138468018409693642124855607379927527132817319860053231508806496743900358229394292303913288653889900087681917072505306642765947158941629707152765315113059407235281373290807455779000517142782378186811540222497796385564001569093642921126365363534848729835751972167101701688257906247767080972364430777754769496383778058677541169168544633176777292724734401353880141139184706302431723562354885035352991670200955151028263065299941509857496337349181454203593038779905568794751444489405010533468445407171458816683345324556757990015053051293388886283505168455374500733004441190320625899860046608403201242961257071096308294997885797288264372708245955832775961159940863643179844496249317197872204146230495618105639821494872076535044848751259268540636417232016285001139473352084610059541038249754041104402629414695241235272951661344870957097261274371807722446535367278308352198078092065963690687352451521512786719635524396256773303569208418754897744982539953786560842070292747294712413408577932528788460988817726431377504441174672037092157380777396510235876737735105864777394342250676155352915251932731219858053434887876244987756189121852835391084363079009899160750870641155033720557016780938072102415374259411047414316695347008871118259065132411639182058807160437874476101778564255472730452075081493110515267871427168567071204616421317769615356596584828190897217411834082730881088296911101565984352773032488061187883238742455387179717400735657114875765051518570083153587857387256311363434792072216496183213623536453488592954819022343923663244484668236518109784176311648949401281608622508518409258553279856783049253612328542255335120332592379547442089306162606146816878880577278037291345552774579945048263502370632841147872687943891791111691566602008088506184762695661772750816448536095477238087289445015240112551146386331726388318089309400308176135848319166563032657764045925971219039706861646145006043957191677782084592879440235666577536737364529096813000047145394813460553605694693592881868508739999519562465572822594601544841987707326675625857135127623384706903502959060864281484095607222548615638582951401699265156048879498237407998866640605347647026861558706874292849342639906734461196633626324753063053545164988893507823107722312617536656990618792146101240926662990287715730107156547426317530742203187872522732663515944084934658230107951329053986841361515099482958181111798337733418176557149615300926406346716734528918383831555756038821619353434443145466399406829002442991435116308351415267308336041195723844718769266740318565329820070905423421976533028114049309045483845108616080526823434799192305005804256304896510005932218735793209302243299528382885705249696842053050398642881530802767639492508587016059954293156974722081543065557372130637562009105141229463991295675460197318986472889889876033765168023801656248741806681311883868318682223997744697899451947384289329237596639585217791988707994976456416818483093404865715334836618187826627738930086201145560014554418769364549082478668959156695981974617290090451613805125149642123742642707542738200335239913682445021085528062971317495304430016512316850923034758530405916455005987676198269425071673375117053508677507437668415390900749778345675324927165660417879214117038042478088849092981859960219067419802832035404521699132782102882301930285221206149900168911148969776192790574782571565565614589231938399980146868149643028218584461266312787552557513078738720716826931460193531050175481959304962282320325475440916460302397116410857475087517443294799065059448815608467605491148217746674422309689995252194923488462497088497768970550676945073375054761661737058068115053605204733513152864187953533289566294811465763121676434377396950953187397679757836744381242843481091840053577075937987364286622965352793548493291739914146061419492812832956928902862962376694436815524879538359795376083736740178586471688038893554214764331566753627337127729366686530238529730299092251977118276332968670333389118702404116541817450784094204553717782007693713850496325043326028779101017539789212405950990005070519852672513727132590191414226036988232983015266011723008825289805226701904810803665105077775540398143151936492264086388386594743872437818034096367034987721501932816487757972791945831924217653369555345360593857306813945396774702282477536758840939115340793698259189174746234459809540941885214797413967046038488777728558910687771396219399092712675421159872446944128650103169021699438759636089628526818530357046268518162767615800156803578690972864497534262326318197920017912609607017772191288436452248180042640069322187169246927574414551294400518128571732690430190254250368148387916526731332711738379932269339944373812778799618304719324762955637004265929345900225039885660239248569360634768775562911968695304567500307161665011426701061119988873038129943767226205073588423784579215864365730043358378364865071740650933920733202330556744867341603076389223596303962922374236691991662820028042582088795960345432989914661711271570049532182375094699878505896317245329722272080045546583596506255311540342799395743994155546748963069992434751480799343147453809477201767957009708304309912821444361832036158183886791006892860709490096990788340225140729251364452565670863552638570263696700407513725178772948538768051233693761129105748092103012435215495835068953669289227142077802476467550252224276799575262800695019092479090810158807045517433626644251648434659252534498509652048362669147373389387147207812416922484529251466701274176185699981364141177391448234433416688026138924841359144937040007450915146009296191861968882587513731872687484610139240911548181963394559946546498615704460011365567305861180161943722993437970537642516602846396050007863847029421424567340370876092753986313179645183398096658594620126716323932548569805396687293839666639321075614758845288789178793503913201203336145439359379843044654155471037382968868329405832970008176061306401096252726374352343394594019961968454904820759566551726176747611269988663010208681127538621411802155872589572060190932648645028156362146801284351210766673946957128378189461741870148186267814680744947709514121353550510237149800958234066061485086237002774691242298680280834557048965976264975110873501466199159358831684648144582000082953164982288091639400973850763540248264676938137618780028880724873498023375906405980989030742994006580268739809525266664545339384843648854669911666999961966334530394549134162504204026662635471772669451840703807883578796009385904018328596595905393669641593188129627797799421250658812530581847923341254392271238994165885527287894312365966617495726332601279874206742323935906615041161911706104286087093576238128796242755874566647077266043067578295846085320378380359018430171077963581755606980374611438355169062884612332962052134736808952412189363475999066258438644203079947337955447368897406075962859573367829787146757743911926404070144505180915443599608844637947519340022826423157009879253231264780704053494698353661926670941794520436189607635010834306791722232534226938786170804961811669206100139918025177289013222550589494575969296845716544602937283356533148519997769399799353447568715580923268839416719802765701379218440323550815872750001910802531427986522925411078659995160704609434638585334293195319153475175856050345702882671808720306026658104901118194394084682297241597052697464156013652989997339224380504816053043850978566330454916826011394576626195567822049055282036462807612354310408092274646452340974382975057887027617377505421420707412264951563085147493434807019436562961651058628894742156604320869407403041746237483572744114563194541322667302985760583626586109261295936265646102567855483968255687151084685537536883273039161666269803125917453466511014489219358117463801508471603681371355749288678796200154921993628681926708903039724531927681189597209302211354653990668747186156528485904916795129184248856421863147905898798878281994349200285493186229168628587607049810444339296919421005963409630496524138362341295069822838608544135928196313343576460159661233772888531852639170465672240094530528438062918990662356138042151743637751364667752804485721605115813234076169002064042956712814067247476866423187180575436352826630489713137522235892340296886555175681790944751984164713508306316178682821651045447427734798603714963075728050672742102753983155958048821317367296521145370408607871712121846999027329475966688358713199067811252145211982001337172758949039749914886336337393093301525431611776694343532898994202457515370676280895506038704152710939178571734711122855173250967508088659138860795286554713729315426723302936849361351642357721386719526573327682137265213874318367256209407090338421877089713449867756099459027239406759210338680266131357405022063861403811830274761374928555415499774335264452459847739680519789066755921234739648486333981792926277233288236353133301357027226733693874452893840017408673759668583386271840616469038267444173541234594116324818122126637137264280948669170645874700439587264385440610643933644759854241076420884380661177044465469224055049500697451849418552076694283695646788177736785853357909079843043926948744555860917975071242725194968576368962499699626352748877181190496212337300984024328126802714334305965136764443547640853911710993732002879068920583290534470121633717726270083182182466740877906421985347158669404168722420337463447507965756095328768308354830132697555040936656961353664675315240578914742942632178671547692158385854824104605973301798815762321211643727327743403606698928917036439467437236407707353616805260996494327747443332020791817920216514338152105608963369793547339219120565358026415205850429786813711797789440154763347711936454736693195277102430920741139021440764532904091947252273750622255004619050251792801970835058323415865385868188459708016208646918013119749302453803145699503630192002085634375184580653442161247989603806038783012773603028829369313140038686261901008877952932594054731751844724886301129915962235400893724372314036176426039671918168146410697325948759516606151007104085311124391525139778947032093399688567195328212462005017382689274932093143875813298920426882843348202265268689854496966349758209921301605573588191796274913860832526605517130333151491739518610096960039421414582776829503471459203595752377794309056800701903986183777766363677407218874715470945593467715730896577667953299910656999798906416897884696449424248108748499891693487659071364797270585986720471378744212702243607241400482553519107726685903510558992442383262306572290026589175247033230068132287090443605909379034626565416149190934407796745786186966165488480935308507834040544441932669492557208205472637896056851875017288205232607882550030113315756093269845675645130929061134943862791710361430750429951510438671506324378724356882248441536668268140096515672690969034267216234823238361372215028506252261261530874170284822723168229816731113812914326316755192196923466324854177613433302600243124322501327234226973863747009533096072386144788578307349604229708610823031854252464744467097579300990348017067315081524504860484529265749602626763286449001674333239831109615241058315135315835517370532656515359721520255926240087997359270803379211641780402740805322434271701101072178629499315682359114154201979620521132029523324806123372327236872646045266043194810258504644952907561711777895117420593382337920703769761200660331181796166888475221182302649755935597639143693511126182688009945592084861114150153474670825247061513024642695678716622068194678206413126862929567983991182939825939412462790953332918815766063738386175809752850994822212449969500876036779415728542205733419085895043037939861972992360990624525752161406749290409775187318631849683236597204142654292484637093597579142880136110521393973784761539842598485285898764779257582919073615932284532533912233794004322250031705012570061548783478468392476882777541403718061751588187394181727699226498632555663624804461353872151454428736752837362156773067620602766980111518916573078116259236646692002364017151429142419072830688968062096281839483212460271844599981583655814154510404877982244376468551248423331615610566351467133771132819258067892587684331225070404339959116314566493432872971808876543092064575158935925813024632700195789379013126379989081222279629981735423183904685971795484715182862474680683877683997382369061094621117452911369643457178345466560228022581054114073982006880262564697450050747324062212659319299917650548661165918488976533719757294278451559783006590182318498470807871841503227030812389368534758014692164490022537664886594971235977053775321686861226610524192013298072598999382141451049497843012615605211471108957456008105082467860079689929846379305305857463078272309970148420875508936674952801301061987454912535805341596195270217585582351435493338550820143319229045665600572483661807006089927405678635938980975107302194512755175682701897361568631153468581179776854814099318087316106607579182654272485858405220899465982865297278738290026245679529264019214872736504874042731858557001479534169293198207350275352110276886694310725320081410622202606064182104353472705220701088023229279083311703736857774484184794749755166185720167495793974396658542984609462328696333775930159237350985761663650735071406573070517329902748942242469869923396253091677437444352949695362837426667416153577462470646815567548911587923802678187251445981119019937458276389138971062842094341560400960147446051903611736334031690519390859142034915861622353114703481602157583525992418194399817457360796748726194831476723450147298744117858038016814134348963346963980486918105853437889670287762978674269487752859301781638199983013345322575023446281917155707927265350116232812091666813743627593558931211919759909266361148761705021401651721468116423870734151194071502142557431561095534170498247725368992906760457650273391368927760894599071195333368887730090462818722051472508391164253942128861034918086135278445826797243551039791888763253541048806790080791880828912604013298443316164682072902564134820448385200296389171655681925921765812942695712731103613593071851292322819883558120912361548581457938862968458223307707376475649547990475530162799593207032537962054619764047343816697363179872024026084540490031067232710704424256402345675439385543463952039620496874651441963742595919138622236326830304534942274744616347300212422961045032033032042081005327052520949693091858217434001963074985856265102928087562746545750521237657698218155989970104693030114523594078948860214601687212802792291060191280113670663565427538528827482909666069072694055906843027966850771583139954552082589832842550305887961379420837639389993052361858861825962323387012258273810088999927561933832770166135480267853622923037705305988635035071736128901610764756295500689088972332394987722606401312842522491986062233658054595207829812550249026832091294266646041018930181131113671302831192990492418126209296823924128535585703121354270019275353038746972625598646037828369086546494154508116241825597499614554159611066357288587214262638007515601717482006706227189937147950556004264414061068562720942193386019642038427818738319873732672728865869398324276521578915102372590156993745660024440861058888850801227437226104949686153226709905446692127998298209071834363993282488249113357479271888762237994782680315361590217615880225631997295005355618010146681347366478405869201200356980934139741469938504587848869715438694474778125129943746390189275802242346769267843863440030013806154192004698425058196364738330757264775855297160009833542611477353614634310113359995680244956038742054534471169794274620845078773334933667622517155920378948638116634763426162770219515288608256808738014247485229347189413535032079713793708447316931027358607423687408536802065106754342285469285615673679744687114637335551977656542717093799769158089401542118038519986194899111314549886127709124012175694365240724055577774335723295636034616160412549805732097531383651552808597441437370862913164466155389508959003411502653630407662727048731355525134494083729172969500109890354053174981589158423529273939624536249207126199391541753745866300952508241417149679156765802578546235305119498094619113578728581634154571903197869734731012244606012127450549416625446693279623417082107068134060925793151672682966920951579364601392582045087623527320442792265657919501112328509073130262687291804441119667965270797936595024681245950157262039234186999099932852524403729790832885706525458240716622275346563935163505773853504770083422909664678507431543657222887517546315153613847226663613102416624369774300364242365506191232662485452876039194501546483180981621004056510947187895538664640884566980709340398348532131803280238725245301758981292957730243955640251372198819355412278274470907326471285054226664565392188151976648429601809234265535246845479442434832948827714198195544228035587665352044957491050913171624030709997238215207728278230216236640126393588207247536303711287226415924150169190356199055228878822094184100226992246859111615528132980956899119588122045357821624268252422710430621272213387090923316849313262873727496269534508084757197934548148552320498531583335250595385783190491864932923049307205326364398368682952636728631088484678036026308067331180496481077582925901984561352476173351186695978784627295933600404986776341504391001231409874565776460051207794176900185994416775326989610136402293938431453761346267092147538927493223391347444139993576822000776201490175849644646071761136607073518644189426961874268808694004463688367267449054222530362606010442495676348924678294610176693269295122128321972975650399890943022075534263543606475625610991843329646883951530552966935142711162048017307308337501956882801115372240487693059444790458845675649086865565606184144090522357611784302968218534333882743731996565950807623801293484977982162734704475336890540048636532482258918870669600352845901758324099750273125298070964595343741779798728504153190284062232197466162001702381831709969790593732347881104463315433246619198937127610322613081110345293290925384069433391297207005078836642336615578104878010833118870307571261443851105378245546039798865769188357576044683573531742883972006328876042360981616730765196332906994837668177913459514518430184459167181623782419525747943277481912806999456764389527114359164634944764266640447340966508519784589226108457568483874354501555312185551635901710273088993157604432833839748015878346165602033005561047703350915155084571568544113188783813445045574428383972552063643382695254307987005368226802473066995328833266507090495555480984700667687747234079636858822056227139677218192995267653043649988085746924524394725135928050328313758988822208351567406207909782301062490719385326563765116038659717259406859299226606177134136621020859770599607151938536443838193432941154084481643758473349223617318809832494875185945916128325843881413643505057998792502423480664273483002842346933089437931243249010351154613869765726152095111852135527060333558031987753477394213599232004067797723883304022811852326984182364273943133746646236068944396893390956639333744940636297899488207180861456395916134770891155664609148175429997960513918602319217605857601302393133002057536162548170176783748367561730997125647924494568843973783234559873145081751043000994477669150378569402439517118844552261993353265186786341158387922668645042199374707628723491659952989944529342069076293739926555022320989815313251594121962398126951599618660199578975819825019432971006519256698356262178593636634165389318700112704178422852435431221034722099203170074078646030166491823450487262157322655503635494028483911245989270586872198863341543922188283457256968817071415616811666941552516413408133618902002561273462284084623181117742794487468322468866783640467137880303589682344928696480567224900045223558902900412241441992347677453342507586863627328970517395458559017673925222301460951095939426884676502617264983434114755250686404553265414107054710566933002482223114186610665117956175660694484657075386782051665328700023052441321213664949529788434046868530646789636805097930556951957343226873735169635529348024917544039434827819294759272411690071865291323025195831949889240772315237048587775656166406120765309584205882347602970475150519090679105073705613590478671631272478569560428645815305232915381842556412742480509478745972827744111384664711367951000663984795997238415738697788055713638483270167490483094070462066536890291471333766550511616576961033021608450831047271405396074189314929214653380442479618449575825107507300668471796767160439717844050742148985527899858472895777282109757186189454380102980278558515348534646587187432188682035696364895758113158358585847067835918580046462337855026744999185484741683566529396885863752607902836243341119872807379492852513275123073534259584724987776929797112395395494898636835184974906870312982028053007904880015230626681660632864552334966733243962708281056329712937621337989092687129253515036010738395098874954921905495361726432124607259854416919770754534620899427792915174883973130333137711626983200304846517168367282193134204352591102219543145755547454278706939327411992157384734304131693038038100843639609664156927851583311567945607138881428559123907801249073377825757870743047015435393905436438948403361604970172902760296403521797332279743674721497535755677755817430084044883657039967997733966625848199835476453231001360021157859847404366438243346058604343429958076968455043601352004278697303116035271356138607347835676704372258931223547895087377613637889649147139595851384052406559752496131112934692954003499894763710705431321295781795222855123173381742513446756002473948681897526068898118787822078631516132226107805337520108569126476078137818664037411606362310512575193289524766618861577027159332420955629398354465290172406357513299413996182764370511468794912268905373546440299900061127527730059007753363154285489580772476902188551572737827600584389984322392707802191401580608970255087806522792319786193699162602264721898672270500800420025616450628117479755935830071523164438810937990542497610074353933342793751952528469632768569526969999871690811408832682562632684846983050452701692759147157578366137307768111838387490281325716842598763170033982237055429354215911702743803525064316893036847941549143278247849483429613169610658573782839273706681301461774965652264967964314347693690173500636498858541190098898647835381180119908439211948643900558685941544882392137793378829019821509491311734829841452996027655352085438798316674374253581009050075615364842360273594855737665068257914210699234038527497995399764778825350330370590618181413505361154295954816747078432538764544696519382820652383259304573180911067512476433793812010058549873952929475856911926795629235524288445906776263073107672008592436345593696964355271264030650549226659391759439937899526988534136624915988840220897747601552907020281577725627395179220779808553319332477601878895065667312380131917739563350829582155713303997501759987353161544032556164922696238232385129171605137828670410177914498098758380641741029698493028042497796363779069140526586033514635754674784713969064502648441482194529786782395411212133670213746464365632909557532498320607982539620310658320488188952485846936164195417867969311443505697225887671877697031919886587700170703884268962534002057183707252099029389642180614480585948190968575453857189425540343524283774140257680559010656696570547747348969805988823752126595505109842944378260129690746052820731724032145323502785544917150699435546882985447326310466893315255727570339984043977043590217719041401560666745305087029489086594600282377197217031975729146466537798481262279935173025549986039568653372203263544566114175876539569091692826166910234386420092089231693815006255167438152488137684373795958316814678411936785196489967266904581086929031318219389179649613946717600617116719470010991751144098536383757212321594418369461224841965484011995396986357343795581035809761352919920617565718046568651143692207531032823213095318455982628431669591360374790254068972750583416695946161148032165323599563337359091870322309703492592997636484245017347024101062188963571074591300907399755739754062615013486519800245137524947043886644478113581865324140742800384996357986393559083007649713886832424603468071218173149013114702710384303499818754579435744741642513416968435114794081312728034236672705999492725506191551948590587173139649190692277581635331341922985774038231120135397922187715944723394670603420628294682590414208850679137324644811891005895225073122772557162321873538145428700903763542116943600687913534396217448513713136894194789101911278832299636329477838244015751975372795718327795364281773698186620067940532678691414339589237623284112358907335753203190983050674501158243896287284321336901559487030817480887416874284562797540932977399439467961189319641553064832204321821870058972708542409080017758570158010842695859505469783974628204961455930044707390570377549893895646141168717528043048103731433510074903074162965431247476039512954854669714257609905591233056404954367771792039004389647466186068381262409826507546321356753230859544128704926618137788179666528683032377609493346843191592505848932777986408497101136122903300856286040002409377245402333317293826065898270178668859606245003049612256328281142864899183851132434837577296030730594984803850617440100981951566413203296037736295166415920992116035738127776758173518965087889351638846154439901721534314475029261809152156587420312256803756940353051261747689406001928180826475353854339968016653661194356743867131318698076483195373144764146318094219474479600377616654400629034797832496096782372721864733495767475075576028438801119964403104161374739815577068127937482869162614894794532408083582399158674266455949603553994346074434033698986320712270256791517791661654208562710697886747527201538115415623318028406945557274579476644269213876071872115075489723327195647580168970037317230795276285311376300461139948980104903409853660464857781029968618029705699955725644341013199596201590863178593517849404288591036329854603629617371487993252782698493016576593085462829105120524365423567743442499411205318772998789773903265368107909101307412948171175918155201003042585865171423822494154345311673278854948269973319162714823156647324877691363980123409347043379461698772338892101546559769593352037750231976340598298669274581282818407595225221928525715910588922192698155281440067292583227224022837354374134988060403837105707821093685699218398598079647270878833301711167223709181782931680095937751283518755807493379809420524408018250248869651854399019827722140717567881942780702539954339437210649638067513782434780372716488134951734144334573121335707886038271329416115977185799241966073250967626925047893019554509224763793879346332935509252561223395147185502782280411977385100423224632753500306441394727759609766593292303555906595559630190357960833759654303887574385301595856595782405819935559361919972799329790243035982546120718197695746516463895825199453504055170839975032676429544371557147888936741664127175863147851242527427769732968323746493691156551524734335713348595364812538795234140700213938396660509713844176268512757666844368679358243727108102694383981211040262880248939098008156423862473172540186941251018600718511358887940101236342811201614536863005368868457976024441934724595321615907083733921873667464626088532351329509478328223874950395697918905118699573627427387583591515222208943346262441954023162096160617005735637164052470428642083371057901774993263702095344340433433603288048969437792892849109258978502588669754355105939193875257734926592495413267796581729574328554745833354659523838275571451224149300038466240177593478916350106364472557048783239209763708366250817528157488005616464238340157692428336097675101664775292670799400998497702952286274582981184033488259190870285145692864496310462897142914898122476963125489220455882803915595244986041066169076199404532120414688582672292025544907156905796478528061604467596288417369087688398147010534482736933153404052122925916537577153781714771294007968314773754150450011535187860600281096165819945103394514882440468270749595204438613326501780172326709314236288283575795660906054064714989197424026846517487261858049412397542093667387266936131160350419297483056473499868993069875944599765991893175775721275013202654770591339102162268012973545739507518405821942090207844706571316561173629464540515625512143641221964605450475632369369537722436814137853946322026274214887602838337049446230122643101028082979205202130266946068071257313446388134676405150367338459349002942406960187747601122278104340838473427016388049847593136095431207175862035039750544281483067288868643611402654010481874949943495807618725804965456167436690370283384128845355710874254225035068234448323467863354912495968236334281650432736609530365165763316611095168734977149390837828212908947214597488097945452204100844971361108945825365657000938806728835839115609626802921178160068435176105625965107760173723918141773856234232212718449329054131959709798099090377639205876703559281019884453711930730106773895594808402034206155278294284930642363524183869064097063998473224855045533828566791192787281660526277309033518172141563518728115379780437159595302543198130260853144204436940627369335189852825675032296531720326326870594705750518227817293331759982575949463175301064793976240666072656583615675991735035506141084684855205626790053405628586056540394695232486043793925432564430742887511515642900067378844124569312144507887924117213439269421266429603965625023538167170011790275929521558518897880952834053218111704935339024360055647704568065531959150386796263506579581135855658119748659321969213876793591396916015667571208508069259527321099525007821309421020166219580199248810466755567459420608695762409770017145552879218772717044695619131138253823699025372012924895562164676138350440278197258083756509968230703600390442306849938821276780663973984776061176948223888692170714970313664290142422326455693964168492658425336044630201122215618847434763764110415301050109789566893786455915305718373374481387982456160901382872153344716445480388887995415174200784280887220137466794802134797463427406580637133285540799147292868381325375836646304665704365345496882782796842091523016486823748498464422845692987143500524816059787870884989157774450075106755745684583335285509007126772341889416159407267808419404663391744297579395708407239654162530626328429089953937601117014818765490719799800966025922656320780056543417595271632855258309170603244857998611362377065252915675882807796213350997931274663115477225694875137669142875087883962899718306139433454973621905911916301642578815423061496234232562184166438680126164183415457683050533286366538604784263811695201515441938945120633066164660956717379615728585437287617843699916660473397817221006905452259684990680905749055835608214770537141410800893668939869692837028761727607723517114986238854712174928192678769410236868781449185899187608640709334784662934536951084738692201569816728929080473723493887042087351697991624205006308208758640304709940925009004041759312216246920937119347693826434696283385265212457062744839186383670273791946956706938307999081297749832747341699798486035110015527613342336268037135735383876858148481740417104319609823969157823479223355491245522290563509546333427807487684423260148452398358223694581829188653962802005514319989271579963744059684668495038408137544736779037775390135464201065349160772327185251061506139662278003598861928970992248457951607461953082094786124816324136473991940543950538523610405243592192718402288837926694017538803151334006711581752162355431718322184921256233884360869744008932641990882791442601496850007854028606793528393240696856303610265623598464570230840743901001442830671155292341317068184926930114069516449463151585445914980859342139440911544222308966444977744660618120384050406458721285903347254901253603207837154612127113659966771496196463582091667696128802779389403025022531769342447196225619748863793948543191774737154402520597349899915474812652144399493407425029937751217624740220713956558932146815783888283946303798276245866314273411128082905610373849168188227980942661326526507030977276034885533748330110209016390625271881136425493982307415683958234694660161362196486404666305134517625556859392407593602065262082771446453137869382583563146968887517205582398245207201860095420451796049308693370679316135823826836368230674678057819690909786164192508476125600087432443270436321095099548710607620180492106465037622774490599506701041484819214459462863314644590479212136266083405971333929559226679270154586899607981007884556332573146075067136817069758166890385286176526917102911609342023368186631785477344612053650600895189755414075192825202273072442026516705428878182467129918186510465201185841792872554116194305762357699207309730190542811923996149586111841151989069390432817986385662770153739580849921940031113142763280211125609689044706393359422475132401994238486422735225566424717771877147620963037676425445944043745979449120737193899301828361316197232413354741829823137039993152684581988844455698369361936517464626545418614154273629393057558082977827587664173725705122716194017233444399913616154156903798524326624507230307422469733801975766227186199937569224274898465770938079584893159699778318501220420784151388480808178891925403521618862611910626871787979134909064487631965068086205038668814327645630060888123927162698518830769096673763301071688036039395710850680680802148372244454308235901789820447789826458841244011694977270428576856795024292420486982729920460180706671036221966525837913304883675801369977563280545138281860133805072452445293733923800089933347244930901034970320043696237155518542126940882915083125042576290404859483687774656855256047648244709702372806950393683298150164046928822264953690428955197169758362185464546733420710282692187561835852332581254209366169626134500579899437781654956318836910406833704348968778809368118360162360459731235533383456417756809693303397686273615122849351116781496669779490116979861570336973089299858170387743111868187630407329145244932578557363970619535662033615065132753250678731401726140203959302280013296113008755878287715964624952201435282225234092713316589153405245905933437645328109293957951537066236493864274033763420908846826483746140929334304839304814204379713770353949837320202516501975372321752574599322036623094915594402400009670610773275599461987404591691631992992395412244006868652328416304086789468633930899697871843807919110921203410797429689928310248012041117712293053383523564289977826681302023180650021186990271867882461313839000520434650544839672575423127874889712608406842551732976094153637251146398455693524611818383685017143731855658745315085734827435884127691095047839446449616572952471620505004376046781254889982102398087406913109538573801196433114891731013256210136806289110652511222115409607740467521370940748562329738550253821869588332454327159442715016008529638674956084673831107501716707078994616432236818033447356374089980053908428646423955885622279611164485785609060893199262313020812138460057864337599997052556542617429042054333961878876192884760065694721933046018197862245862044133732892685255003866753879125362474288356095037125342168578413545163181734516777931145503433358452727580922743891753607886055338157450482371556424008976763708622120342104244590712168775261153432362539688304526348213378028773410640006778128110868728697935208401960011220672981539592153533799697268254720662616455398933307060719028395358872994562749455147928506597271273752793189039626995299657153617114999258407553841078501372744229233742532401403793892986080749931217534330926136214290739712149002556155839333106028623287661613005461144082656418050914559501112272878924520627742861837751312593139654472768136502985996576430572975658881917555982045143136427881436116570090632238203860268859457721669089799453217897128423291906793575801320219375801599477204179965103050978814713383188393638848493286831919143151950279776617291390025852953923775887092249377205774285949369888191890279492865269545181429156873491700280650142647342707022961786625003721718132341245908369364631047590001003166381517034694226748715391291933671922975990929752583820348005377805778894234389869863164219344189005901508484193690772247326318944752738104276308173340127315392919067499773532674792642672568466262062865198994236199312621090510951462075443958083850084478965493507884755347010616679253839249366452146581279336045571323817152177128091514321237811312384554616243520670142255765514778133346788551868900213870141524635331024996017416281968939676997002902969105023480195810204859091823557601017774506247956229533565261721636746043540470050269614249249788479743683265469196134690208337309151815194068949041134415429196222325941195616991462193167337964897878838973148211656538921107940304053989415082970137509755925515339565493529865910494435195935336438879846640939341392108509622954324932422171731537443632107815650590690687488690813451144782875107373986737713807841975722865183147755465021287748226884024184091627096230803418822108891202012122828122886211693029935465872567114346732890596476335379854432329432331897669836725546778003655751876042503293209891028262222266578157813230122039470088261023327049363541214550096365347647348200562671102096933754736339966249215080294094278311999767449870228537750344000646431488962885899142618767764566997382345415686577257078203357023447596987008541074688149228414272855306671557384890282479376004801759538028643967501061057335349963671597595806715697404601937173802605139677203059685763253979319180813204136035422096890257086450851076928196804678888745010392977430784345283674886971905075131853150141352367421616794232180071712379285610521826842277438966779601676573326539118142978565027300828163082724115729609224449705158633195566426104984487963791408489315530538911036975841176675223117065048296418704361938710085951623917554643340547758151322350710150680883753788256235984930970856967557247874967017499416625034341584678968699636922982346054050922496494195021985014370828604181717344199163352994445992668323326060950396826279638475536807546489665097605546428768032029473233598319795105142613850465687201890630353430729435576774761845397403858522321165459856522929312849482271010641411581076643517312962927215100937454798226570544945829001769207095171149865006933572197075260490063263996965135003719825795129294433362554014578568932829876180576393702016880301214850350933529203744710648572625917455835469223298188354979393672927683123202458257387689195012728769049458940713329057358066580324380843021250720828320455156723651522640445147510526994115240716742246917698014050326783618678644833148766660801262344845126192094723488656488773370887713721925361829174143930397823707989645483971798005019757731837243411801769205116663196220647687129453489404336157617681067215981460785867829828663390187688350876548243572823762128363967349047736387155931918727519242093758919049665158004387498410935462242573451594724777326215267192724949802447399963074605420047448535209464952427731505118446404406226723878434401156643738511061683434447332713821378092866421417608607802227691791346429165351515277487241362518160255753527990306795889189359251904389232915529400607086937380784895008058710903785889609865406697566306189837605128249098380252886544114291327621529581208812434129376645677930396804584152916674009187693231705478108131278182698638224598177043825011584934559591096443212584148867415688481207515015265295591738025929175826881152948696316867190836862660678025875527747529426762313972158364505714119754094744450646807134008021676345356779144578215828221543881339112978887905799366594035894667739108077603020900705925047093502521772027673570975905250566557867205587075343823195602328851007702073083191965578219208689032181508848836937222133797515231872845416301400161332728116111198203852625970685736520719264315358377409443793747755434562880634804161221288292791677905203733302189002044626290548523186428335600019608250054179951193476830166709613023292992242634350942243671125992728497668030750014978042108631989615528114600816226956931226857335104245384450223629972477727711006463499797175023489415171404049402966034019891893868786780066001041459869677802841335082365928757823771605485975828175076922976500883099441493765568969571772882636799425003836614178569761515225569995139282131153857310317925424177802698078795441999756484930789014862700421598795100646580224689830881885821157934434083120146159261654239747119841548811463429679901757532946283179582583727145558766288863892362561423982104265907536657331076908835617029321374088445911458301889755318804285788662165016869895734840686616137978370400766487648185429355193165747125948213670908575834912855111777413247586480911131689416771928567016042039071820107832697343881505123083188530890196409282069582319371160698056643356284975090740837277654670480890136654165598245812715830477903115318036520702044722262090601627227428278508656047514942713403570005687074405534395090859441667744780219946246987954176210684079998808277440849322339046353452670665795031064475425946329756701638786027932412189105371666978809368645304208337983694857049457593451144432719960778378747363399776484414176942232817358009340344566094886238761833792803330738063227530730024464093388830006363242819155474792517689155614326715683047696763169625856036891081807461500574541990609718361864929511603552143267184792150298545572621866531980128808794721544820838579407127459635577475249354536255588209959672511517764710233843143554966441426780639229828330731725635432605734000782163925646700052611991501182756193834567741957532552656350512209575250382018987500695138276507867496237051885349357246435651551595928767746851149317793829853002557431663475609677591739336609426758891413286522416482739352990754903244076696444364455494841710071188690482243017936473214651013065841074703616675042307909063742102391317839789610179439535019827469895862842348534462109263556448356245047667496997532369746647002393432474202649202429878395990141997106583395989561167954129130894437252414717427825528258962995416087839996979925285818266883264313532943978044634415842539137194007355590707343606570611776950955424142401850719107291566742709170683015818032020820387500918129610688088830930565662740340211378084083250603204911760155097796545719046222652481289674041948444588061661947591768944411379733576470809986523011968404672236195046258150914951776764636688354664252492235745080549370319635396206777506303873080671609721902142391982867322148091732215520456620915025423190044979383789936657561326477083132659657967607071486630448187723155231102129883292421672757750254155003090694712659268691164711695795586064607988749162549632605984581187089505115911458384743142859849001699558199725988694253213458884051936243731556216106567584575853954838188403177609352423637539788515649307449503098837014300625576632343655150668325909373599964333830780131523728508815124081803987462306229335890816564437565068209217415095826316362545706468346736481397333560516715168721180816445109277516698711151911110576955394134353899606621151083565254279697274433706637396827538037270510369836390386786433826912492328044580968853121487635250642569128551922630733038723370222456836998280281272864046009856321095237063585389789622277443664158861004427149109350849993830995312638581364232163951220348429513303162402635392315040219339428913146495212877602486724161331624891823229721658178075950384571199832563334428686138328955737454145544254255432310207855685529115740038840443156377672994718087172908822695140863190147038535313923924515177013532773485066428717503382097829819350297639883516182904537931722026066554512882713536606574419162456382900175110291175462994833423993782904667964497101001565809902813929817253119126068439565436769159637111662728522757174309840886731670915628066380210167899183712785359913701061805598989188111600454985677302064431853867855536634023334498252195572836940745699450650617278133527423490205631301339153176910305826999399106710777506742177924363438485128530281429027436155149749108172953499788949727545640682679828234158389072403500006264368432079325996377119145581000036007237235618577198152493646125864461805024956344848577491508246137868094524931499229593896975088541482494196954521502471754634487095744846757649561780316693617655221564334751367278405533282228085795878158934518535281881120499323276480939895923846919182259069552217092614227103793783208819567276804499200519169256900264623856919902995657006940354784288082462356415815072526019815524904122364974070865829435136839591774313264082731000753500832623393474664616119796248744081272161123419898285603676418970748401674131250415292153140467746421923099949739750076267184562392882890100546603547180294270160410180943279349473126957086470720569247105528812759399286942615926012730589160387574105804898424768199206697557924608775283750612010603966387260852571789478136725766576631969228686793734124220877002487446504984040894170635174886343626070403174421673757934675317227850983832305336310868382646713003665773239512980349279421643809634733699798459748164568607679010291868676145359335101171932729926531604875651180927053680613930851156380808718280777260462157258659215679362761840876475230458157203655699603695907888747446155012277025184319572860392485892226370829783029926158163228790228732538803202991175988217123660238652124926583632858220275419526611398076938706674108454678171474950095111803872894972170830702455333851841756359844194907491580539540933043871620164480764485193951807092884062424686183862839070964103224441780349104763626967919771658500203730472686572455805645815019854305450360867085862072321520229628948034995987746427419127744269679599284064671418820881204934788234448504787201001975614598312134019016239527822606950698035596850445900857860772367829858483372551576126361154392780589973477192454717411661787934159756028415267053964579325230148009840135191209955461486538539622401071283667974652224533249402284212236367453402219687243783401091104961913461971862193827940770314585957323575340913900247677770273566678276855670170769917279105140821196837243361938296245123481483555057367850804590638228315175151907679348222341355938204574169741271075609210345426850437755115055062476014642512877423520408111896015343971913765465982980514116609518363274583809358271356260926671231733801284973295043770350292794357635706870409499831358495238617794274043627879972481571201913969586091550341476133068185616547286482690045853380032052190150041305159682114998778227407418896409270681538331249192519351830677431315338596629210862542831134465870866714369927366998060017309695390394307867146484719106429285382982930887815153689246759202394360454174234791127921568757545204708766080134694741816120774428898938596974201301480104509273665960565503049976607730701553312659495360112845307257245195806646419442885032482862579028574460310515234178184544093642013455861537327199852608275172024609061934290958326541449270393525918279069183581692201147401272940623994057223064605622723744109830279046567635533864767730746385353069648230793912475229375468289476536246073654317287336594422961234427405221946584825549082710629749436564582414915790761370024533934443966514409560135437072882087078649948345539264958089137708174770253068052576327360796363053576489194770301985593210699549112969849578389808646123826669465934647440579182401895370702523781236791313976795153433364563716038272609970333076927755425669215076995887906385340367161483641318003284656301409394872328865356203663140191811322597180168979609684310685461859537958774398776338772041906339696621215574692486928493013668103548768007785752863266322036791803138011332458621035821628563034710614304907696372945709097491003515507722647908879157260839662781223233673539479399182636824739849844214526650436082034668134846924069439630346911319409842083857526506811147533945204933436328419600832013405024869802505849880924657507613358140265566296873311568719471625823112740923028133120952113878548271242832334861765753094122092120626611036169571142918376938767068724886089213794387281776240839648133727533021308413202817081788380810790144711278111622743725958630447811999999403076975215621824953141839764047428479081538560184766689870412036617422574563221644580050635388011824773641535188325735824668123962267257711380723245382818262414485345085336365213631493160524717169737641323982212353103433542601164322735714717879304580057522096623058916186628643927240494545762343709530646206131819159309070676319652168407517993783146006658593835892183237672670869571777893481056036734270094589679038844160944785468936969914084678714405169592894028267249531997120995077797389725410244242377855769715187570562322533812102253901120503067639407535778513973677218761877240674228748955856283966061434618632647636760040064709538006985603197905487247583252402291837555849852316781347055293702238601323726352447631970925820269033268174781886170036319247320877015143401967290344789066697637074038354239966515793644839383207876652442762239186303428401903615772909459652727808588829984030212693595405395484477375679010463531150319076036718419803039239590726684944504127840013125996510120108578367245009031148198982027611143604826440440171959664648015734366335119471463564429478130210022786178313515341445346981062837618228849719034408274526033905860647659352984452718916855023663916569813295322593349972096612058959149255659450047009038510666618440446309697553035329592628509408973626439186623128307770439426204260920133558893155498248952557543113034611263341790723596893263747350731145855281867087991835716534043034654872310617096540875086140106450838913117899977330354686686965197358312785989989113744024956295016920972457662993273211924761770474174777555716723732240276619802133933620895541776795388825516218378334947213922868188431103162877078017115394579080589087039140294001076182375809946064243076994929321694998158891941382848160687769482264745070621571526118507498920442389747789404891475728937983270753827195464483469291210784764519942441758637941927944336518944528468302444958997254346643539500256962971188153804891303729381754523143625667511385716636215704854988836667455737808795937732568621511133104052138153427943016092195467498223302737107917850444144617141889458458705543002731251716104743905106212652475298505359953238332012878119988728198972131241216605676947078147922470020413977005359080529616335250024926127173930606934948062336763133568791192655706813906109958066019645644430264379299537862666404529060116489633520109176830280154613757678402993828655898392354652065454025096923396559557830798254823707287724016478846663915105524983876635801502730419357136567881100660461272136770379868022210497374166579131894036815564280001819315411586841460810445683283020569928258831023197332846624238326494580758456601655653302816117083936827544521851309387834012317552965387858014478370151477990950846506058129140946190948464097161841397387636551823700554963581324081845970139087349396903851111479479031030187288163272771703436010730442523519795024770846688549803892324922139355949544582603234249155053568499958685139686255711035463483123109071616801640514483481482707269259780690235274199421241080369093442483346030481240453360178045472122719428263555739087907747515346597091344260072502054724824091275188023191452321812173245066045166815221199228173000465968712962334724643810765746191702844998021398142460413122458370774416498037591966976016415743708778304084704504543857948118205920478655676965268677890635587595815724856711591911830572724077329980189413023118655484434010774998712432695909512736393878673587619347601561204773632654435206965220977271992053984088386368777738407316765657111741725743039354433329187122922449091388608431332290144064714893016490386353112030965135140063050377990355516198343454368066391744070935690714828712787355730824323675381286866120254320277960366873653257942076345690997009344667001121272453384489525746809060406909878461527636465458090719586911141842540405071172855629270341746751921419045744664429003090630542461153481668077920003209630393958999951096723508042366578792681176880224661277756131537610821309931786184862619017021780453567559814669528664707159587321107910527828376715258848587227829610009885941159631606356604702061362787193000580440063640420109632756573187814971052460362440743665544528934193961535026855611095330185204677109493330259852014198271701779239007389267011466785087734793140044809820478657537939477207957522809278358824856213167288213728270727062885309335875440702232875203478860699712039857882072302359141941897087121910062788421234417491677191209893154944929578381542142402852506567604989442121967457518030588720932377520611660951070832863631035401033976499350156553300293101710831671948787162740208518036556103604486395038762188264721653404397149744432180203427139857203613669205572975662849788058126681428344649287187074668358306446940345522277319680357928890238859528789620404793821110523155668790400271676747478820047292646462704656675371981251084107313687345917532609099548224196100183120755919994893051705078111825385140567212289946306937674036981953049681119297026361750841487439726883813178221855520749895735221317793850736894016991558559599430704638603702673281249570082706805025096286096334149464208251743201515612072240435794425222507164265434108594068415279605550201758857888628102460153162079964579446122587507290693116781703049765714210130554473907965381935885042286800791220423201295376731284797053473160485726517321951330747834351827270583780900078402181002916444425429753854263638113190311585516056837883138684866142982461795726734216328524927267252656718418886309525179626919111145207643387714806432552717042972470228052783221557636314397929092675358373515639931944643668913124730257265743512563629015416986109082744499665990823870041305779571950712746406185088301800278723405202759948907871414437954390974940587647680191701703765525080654119963596838006489482344947824827844108251041585805262045756532227246646179315305508842400334722666021046255209130907014395869381854502296182042667878479264316711351525367926561915549352839661990997920472181957819898330191608930497809362743928430882006007405338315769189449151461523574357264220437634040250602626637547371529431611870116821001245299760171935071081747169282913986732603225841646367695212483051596881057497611031458444584843543380937267147969210198298658425996384534215483357639933877826699017814220283082258089042327163308863716925398923310023152666012535442663336019246084749394793827162258607195404732349035655512002707307890784326362701051291960718274651609739047784491159169145692317577092926120554418047176024973909556538327022753267677820445593848764953682736046193565512755964504337045113020879743829091458877206658152869540338985264650542400717016813652166355340035416145309631868198135925293915718366975280275685156348425200111955830918092967347420717286935915680153427272356474665689280035753922761105455460124365947043466798876561388057827213263956896912831538185771296503853661231636724675791209816492098247353662162563490905090810519840859227667333269049747081549889004602159530629902131206900036216277879855758551689200479798310184812248992347687970895829168231518272185513190402948065043052932226155606730270200741068169381243493378213416928111571031641761415042902026309588152790807114535664710295041097799713587025706802842237920330417350498287443844641778786864284078435267407961221295603299397693152986595617934000836897382942895968576466468783063632347328498639490356315248465429088713805961305562271685604073020064011069983317895577141405212535192269414725241428219374720908525734724472797461903504198614397672516048061797921298823969233494469812412210931901197654525006364224842694089466828061427339096679244346116307230610791727646927434016879590632615095840241539483517308387490299497905295607086543231374127988304559163533807357195998231136724114450483113619588599552125322461337637799833945761258885990250883018438702311002047287458263213899884065877253596457753355246830640604901723957604578287479263642573428995236615276668967042021557373387387054326871753724636818204952089482362016218270114996995728626281489502370813527124123455915817212351148303606739189720774458274810086864492071377712281001315393742852163881636482173884197353717650303054844941107461930615670218951112822653058604434404895853627072663232590810388986349432152220740631649149896851193462369579793705997043360059927907133050335233203758957046854362910304606820113241734606477185137802310575083372407656630331325664852727449649094777171410257147871033798194171760401631359371310302213237224037355087267336099396071896487484046564489885650586004122271135898874853999130519281950185163391070205831907142086402776222908858381841613616179443310828149411272091018344787112941021291543485626772274105802279342545931480271050136816271499625135253655470394202200222453265105141150044416454769222278045333295605402766330991804652993407167384193572155063304554967340566057555751796747269976770639080599496160742217867459905844295856899909070756816700133473051951758700198681447151937482066140129674547561532898424429367851942429108506089482191598049573959542976450582293056527089257618923430601336702765476302421395947759577308736039834383437538657123414025651743696230388763936437928131908425382335581736408627461486499801859807497365614032317482707594980509742361493256128576584365031394066399358050401713633117208289022977529235925355570631365039197480988775990253530774489928044401227753724722583824689574122508758112400118884194611512399774277299501462629897011101920820656078774447851515540462274824782613324207984113386783562788943336491270959457240651631964401212409043532981639402888278648011168477305247522507473546486618362430130837326343717908995486985739182130570644748845611502361063003318942264493772231394573049699057382895404290810259742382128150298245226152943294121384039183624017554713544756239628530445468859868229641478912697114903834167461207999152037979405775587796226770076642599485889090952171732331040734332900427789455519969733977338906849778824328033117528613946699557064675748568385460489377486525456364552046899475560177141321822936442192439070660565541755241823837160015071030362902342943857563947868015342128912160217555286694603814046087151040509654286755843969301283620362210843023459170756810290775510335247533772951629027080712961930413513085966324617009978672942209219133051434038253891516098243678005126210120473176080496354103327177379704524356338231260526619043962909990253730642912237060198024872863048768600372029426989379120265956755827820048300780496885008969606319597714019677995355929797407116744642985031627118408154723933679942922054184619221356103804692818172443804472254798928842282717841574580912772893783167050403037532290561651550369453958607342063280521084690823080020926460154288143292994631508902680858203508536109677177620661448870269664959787442870543099540883661561859667003332758502753438054930800862690129161536276845389262843105718655279747330900566449327713709670405382446000344418207171060666061339848142855846966154486509840463402589988585492878969193541111762544421394631351687702771382305232509488784592732693108268661486586563639623988182429858031294485056024170154137117156421396396727851089111787056484737905733423574460579465587016199926231978730211866513400043667061045353591775749638569663646636822558049977654058202189987367763325193973722343703217047890634761510821756962148946291986873226822844455706462182343022463082448068892889323465244169316003332542252797291167674457110553635808400475737661257455018321207674061468863751102044236079214164102539635651901291317617023683272173708001108020975224320289695960309913629002116767552869443208759772983733189962519079966002003057816005714607289754821307655194646135883267998623450267183488363331128880981331243963238461247421040864646421564203709072496587397494517456098791150885417620601825647838769709671003182131575225116592948205728568978941496529715808867496572088582146965418265936585590981294345373153405321958167371454570745617056967481213548411736583516953436764151974507171499774090946989775267743158088503336232199567494856133852249895524271982420831965091533248789351207674432350209444699287618711348016678720065964541277609255576692563475167163567838264733175637459778632531989903458245114343418217848687543506502885583043249154348750786544723266797602707111785120298825116955502623487859721467700667732036230486239754802902220207698657561493516116023700613051814762205903703101656113440872821241049996428976413882647180072395187503989556711493105018257004610856012285353568370865239212467832020187249780086737350487133085879923552688829151088715968437510178731282134395080082629399791952285838647604059998036989166508376873146241254474164837522194413629014446845239622283661204958358889653865196375288310964654052342917777859822790632935650374134948189092366210404399056164052982170708417221966334008376359747320152365954760170805143519924714668497654979936717186211826540652129771778796775554902973319266646438021181211210454252734376079960424354809810400115660998245061484289686265082634479724038985223461005150579396662021046162053155880880021202038869296042775750682361728537968701365512845926170274256301400496346370833781951268201149771537257036490318538809871232437397384599013487083125332536455117192324632185287455251397719452158879863744270933711172219138789238003048103033861560358233397882970701925803756106573112527990951471025663238540961495647847389892576133012027442118879551174468640119556396504765734571394125060161795606634839666334504300889079068941849133371247533512529637132836046653434597755480106944446750690390891122770986441376830776247261819735713044919356704366319686259070080884529223588880976075699663769307185304418564192150869662852666269802781570698523218071936822412793940230247171779406904425658847276167231020971349546117193229736808467722393845160799510464266303346086724236511139322119164544562317385582232001742418879891385800845394052851475124370258938268308695360083407031812267108939224580572386934615798519454513659789640343315524356076961919612937592366530433554840090646210282829750964422203496067165419127397266359172436234422671950702448374087124667885667790882684068679478589466529941611273073729126695727511771769289265765719882082972504333520605977375497171398195022589080210513693026045552839519545882130568108429796861985008496442585337068776770167968820946544303997718089463283772963412839876253375171334058387204969240602422665197300963467077021213009516565347311127000090449016420929290078865028078439346636066538190353877700398184261459355498491035123058627040390279514937570469759684606060549547142415537887265164819652712598350855497958704180385752731215067416179253831556641622618137899355816224907531008733080338832368473541991279907604633213434519785413931854176881116125687585093869753059063333598095976770554465560328539923507845341245216644977487632288834155008295031027201287575152891863204252073502377749301632239728395184360290174609071421094705060391669906405494457253866077253744569016447261932552484560912359996183925740251206109301068322588362598464852403232387460613825294693236840953469024654111909922304654138300881366124336481580775800802487982401540640030244906018730077524568897593968480867891989974593102366265441134654857544292769953183355534511980279511290737438416871824961569416891761885085443507431977546892993727028340305833158913731936140084831480573690372889664239200995919951705770456424621317332403263803209021504520077233947131846958338126829894490631553855494859137268527330124233171718872904965507755730768828985466969831197329837879846269519134285945770410659653962210868163873286361054791045725288398259991313904384906692904456576898653352321170071157262116859930000253149299377609103215622290108511038992418498096317252685392929075844419971519181397175274690342045389624607514836653297955615285000245953570324212900724918031900799852015429071903967768620654847796788711663542306314690449393032564194681697853389632126837782497652659450810951850011739819757061915903080320150436876318961079348209867888831324644694095477746569977711165773831115636326392798559467062051652574838790034260100118235466323511796706504069898362305789432251432605515831244437147946144442980333734468621694382733764228468123958780810916472221494184306655894588468671572010895896274395671494262878581753856329601066022206757185623789050195527007627248999215778518861861700124092841098694235248075383603742419603764162918421743632031404515742417829425498854731726748031218563385878450435808089953376981183890493766183945997422448879230509830148365921672432747872489610429263270277599924350427422266998973081560206261565463201083699025915498427711457942496980392113806485762640346611054146846478507213784682295238225653579753169766658399249039350810073449238641065443097988763150287693567082819971694242345740974545828219736784392958740500399225433958409489389076558998166904632732608811632671619082231642591639589171927066071027694675822243607795685626689332908980864224375836240458794171751459762196976812413305384488292179459875023530863778593140777415963612471782157683247772280026876597227429372905572762963072386632128121386928156304010140382297066456386291588762924255207327491400513313336642472270523338442466075393461506822267192488788206747813848650406426241767300801904778861748828489031434985137139487284367607279405316716863511834941685077806811404564204500300785860029898000536808467501270269554699098826943727638766552348288277806780529554398573744036151011269681844144637184300589841212877892974235550379783412027835416488936412174024760769317158475180662595533508421584818821232826126464149246128289111673521045595618847527022570132387015104921456789493016475708147138184778569043995307365813517573502550760657938861512828719960194043708143399658176540339575023681439959064034933626907987710157512367793118565428484831986702645060687906105026263483308328766557640782372280269762867296663496214903154937542215035163734930407902211186861143021966713899714674570527412297889536753976499432375598803652757926513739179892416912189433348484836885779732542476746727971350207743004080876855658559364848399137761730353212666368870106283699599333074161498239090711452033667449720655494371662539458350418785727488059224449922348586644427225311209893258062972455182342246758681021638929013357454269615332399493313539103705211308819511795911929471918030154048020952143460791734518587569815989704504455936581800449720903119586069744870344773175102903075064466181730692718363796306807045096810240420304213511552621630156832945051062760822557335560545341313596803374457065913749149513260387809462060654899688936956106158841884565283773442944287819583684021487012218513047342779098004161759767005378008990473450333255492407338719209823938210753796243720061912532042455420259824695286697606217711981672980601098092319042835241665877886294750467806039149621481142970558243802673333570436221385330738341293351095821896435118337311874007318662241487990917977935251578672412515936670641010090113343912386163810409718054944427292173670317516718647797650930028669840975167688919625753463774249140022033169800294096561201622894567807610612505983086359235677077903798205912382571901597902615547683539676202550427038373662098585563802306829011820612533970282585393728043652363605084934325467375241061887741056224471343681133814769744626018553681305389579069498582570455832706562789193607945691535027860286676227374141375771892397367128332047740692028973207287322858057186010503598243218300193699557448860103764612014002850501584933083496897966072781034199613993374315689141187895651254827489052846852348080542975097368816897129007142829190345452098806977963446295352243219596788559623135432274386158538729787228143901889840038990174265936732856966616966893892413779305731953769825172818490414702696275786064382602963781189323847980869628565161743760327138914476487299874681036371869278590227378077947425575325391988866985285435711938500517541894870759258073659973665966630128755307507899914507523964693241941685078474861855989036428760855715827853473492330976615315320195638250689893374315422613840820360303763662463674759181756718587942247358896496231612584785268372404696990515986363756900358187651736948272119364625275988509765373652056751271700484124707968670505610634725612706722867900271838722575034399232659522864187156626067439330173784133695286319683238019901795582374572206226108378180274695488944041594031195276562646253433644531235365823980248527728578781837237295892983959804769815711864123091053093309173858795810783365384371191010043025656247728678232449254290776923628995664079139150611711471654845324795711165146953361850053999308919743071122709436520540478739247039372543745160581608869059180499804450588867422672886845925933159955252233980058502179564778297043319075048915241480420420867109861593293712706547670210180955894289069363958484453912884708098551460695900908708509433841843269802048814274775350388700137623569367923373193914285417096382518653785616101191730748611018890996750958532019947335798454039875605324961004093807714275934925427014682135575332624526714079784508994575516124735684791360630336308864416560610178091544095929991540288503220317463752349977680677168863010182738255368357217875470676595663441736803308694997350075454173379063831824371969487342753559746450238155395901223214136185380599525697016603606221478882930527568209071528162692274135441511059203133940682781372130266060898811023013506330881086823671895889424560209797829178127396129327963877564951899838012942090133246111580964929199483212728591321837922486500435708598937987931375861413626697828840795020147719224567497093729873770714187597990000094000353178502716176690110726566373328249768663408524792772227985154532529898004445060679315787236935975833587823974096418177853144927180234374911053085927885300184689813086142626051724923547217654050642598796890804335999162945851458206229401393003403362625378181292699930295196765497869653278313683674953043442394083414155697037244229461718463612455167338329102318444271403038824719168288122136471202742882283275551082730296372520290402215879932067797742591709621400502465078136876809643087989108419700134382839263073005495708317452403525882764180553163049389310416583907503920634699009857605251590629181988456218314636463982497249691492419089028656112262644749031323119177909972507211516406829355878399421231898121485310428604134834235559228664980700929160066963144156004986012719428204058047182108911897590847404666557078536445935425226153902962340994800475317235588361179769132359732738195618700539306551112094825058493678943687329564076211897322916544393558663144934578113161454948367366179459419112241266085856532546054643784550471656374874546598784354699219285008702719994653243860352297099136790845874504666378230580833086237308810593789991567141170161296488135304480504769391499811458972622790804799178754612607003329399165207240903524874467471301506199406938474447338059810629782877196839303435538879279406450134082992460967150476537596187155464012583754049657789847784801044067558502226998691832358221065421859329135581186640889136886470847891054157812356106083959737692189495510115865653441365771824651816166771349967142322988891402143877731841691658496687007357030385756346429017553307410702127911942381314427356340848592600379329583353439756170472881688361224608269208547582964283162005843187688739226969311024448025375306313243461403747334120283600065055223195870088308924601030627754091166103828700451624443528742801260417777562175616796055885255786442423193118769665662171394606277976190962545668635170895182719139906697505611382690101300368749262569539830299468770163475903156517961781168234471425686087867442932957059981182668216318374842333309605352954292542527244803410442480745110841143904767284818667609902969483863803009183238690288868507306387945029903466739465972465632025113513707325483341260751581679832674197217764420894222152081781401108404352425069652233864213885637165120660968414477322099262123369752108522032221061033469125961907071993255627533552386930376426599014114774637706503333526299947736886460234705408848111765882328736942507076154020851212709545080181134464547440729034206436138560954038916491584646725210536418574293700798672615629112258358289648397983956567635712942502974796196856826346057459237618346477573323225612469650628182837521477294881794524579623989870081102379098529947198457005070819698584962807434830543550226166691423941486576741853548061093562517660676308372920060777897480446752106169359507532533456690531232259835757226897239055166551267291096863661168739739011769366657699682527080700502836013587549915750734066090855072533299598047336788085196072825901128888877817186761292145057435819142504203979509981465751219014036308582941584784864018391073596825297241378420396366468393848030037814553988238182021470210059483708804350665450640088174830690994774302617439399884461251383144748262365496348097110589480770576890568660520313412219380615246486431248376685422600012054713539585220888904989665822666144683633527925776577104613889222207792857562817773692639770684687184945592674885784587416537460707594874311317074523850130801642651211149380507938333656460560182623296241608002179285701228626800106490653520289444377048013874427046865024972640702197959814404877781726012317151819906071812765592412423861067293098961105210172893459254455535686665681154056549436428396747933343145431965719634653873081331015333936397027767671946121735089129264743007290038465170627431368389880241782654982070646302515700177264513171182996582135797174956329579940333143471867682392879014371657718744187355327512421529052103073492011736284893537750562029295102473766984720479793364002450087998358060597481316771438959875768041517355482692827282581135681224193586839341994590193854472944570813432283895624383388708896518985027431769804308487904665005081598970545980535216039243293338965294432035775127659262218843141370896494694795939952424776123909750215194860812174506001766650893608053324686665299886578892415128753545799181279854443615943054563937091562962257911099655918066223335111601442222705327908566922012918404160041608436597574152750390537715440352509863905172489502602711483660439837908857949014594046844231759548218749412703690570522185053054842860349582296038332122610404212701465289936740649110572189352988483942372382307714472229388700189666171917848525924866504101187972629037933308821947505684229328491309699383506418865784033511701970371940746923129328578571948576520790165505669349651390409918523135258258496218885959147605214197851956048446123050111373514852417273342659526268726805772805964893856300228682674297823033426817147424123322724030645539054128809831660562004269808925539717758387191630882427934445119894160517980364898335337013557710764484825369799634852104797557575178643497342207786402655063161045162438577215742510701836225769272943766817670087044777984209049655740454737347791358597619265524919924966613138839317887222423959669569462031639023983831547236418537632789599521753493012550278361327902940955985081159280918401166586759129860409653261948305511431792550805957531231750508094905572122049693427536135881576991588771551753641601401272475205860505315235864669056881399979155812308084829029712485410547217947460898221109861791840864940240675684248986295563918767541751494518200776170160398946711691256714894722279702320526598450419191495186346817031695014149976222005153962451417042541154578263488838162015926342049254358238531128894672630214087323643214071723076533436712243995826288338794710952177911631180860553117804834499475487078529995695989507150204197858835758104247036463681601602245848189866499623716551097123568907054604420129071264387075923590166801755182683743237975918470341252037527604615760957888215126080306166059351032698049947963878958558312010211761951873412711757675631997180668527275497528020700297938400409218154019440276713178763233752674327157936535056693823815853987828411393892486174877330855006526080634251829681174962150099001900884303989554743981526119148120354593836047048437818042388385853237589390037874447041715762276520103304344924223955279155806149725762184831338692720488765857155110174433254021396095282114029410279632695952690649112767169974184958484486243437678484077833837172913142957614834599844040423285292585462943714685423202142755822471091599297630206073029625077866590148828485101463206445131785280697738911090843745134923591569080766627934215657370018241601586870421555327710194044813589345132753839454473608426661876941410964621600888258559984790757473346929840076869172450903208706601552362912089128127576857909048538973887078331587589439600980530064803450208628714200257973457578341978022820207685548039962855471868203112935536332668919583825713055467988938524585657429527118978526359525985963795467341003144187126553560609690917425310586265169199946539694888229101183198751593946225403149750033926143093244254234287702302611426051300577183323145963591609237255791661899247389055529269380356874016205942339640362749475590132685850603399563586827839935951162356530910329345552488960446714021785171023091511980176348260383563655024179034396806037851863576545011983094787520682418880491115571520207735798246011905476011919245745392173461487828686493798399906843574142874180190435721447071183922113061170011169678980048809886425800470421225109064278598118151110042303884381983054350921744686983748832139195506239137041114633026592142328820782170035132379969115899435431242515617647423486141024413367028978294030695055667012731298171868193789490368895846186291788239446296003195492021999773185606454442450553136511578988318559450053570537454721007916425773153140102650447999963769641063626936938598460402172724043011991613399879508975073486998366569669642953455959095205593657930537338983517041048336193716420665426807877177347003471373726803920542249303793697798464180167974950199569824451276681600495224310676957209638830630074602674201005869781844783425549029674422270859136373668474161792329957720359458034142303400889766593059796212027729501052636877248336780975677820563951279025587442763818368316038383243037899824890115444814958156104160491863031690195947718049258987868178149954998454971556290553559964788283443962374607195778859134902625861442763156532115902667480942389017325623691742969555205506265330693787810527434752519554809728360835710754445210594150186309291901557467688362973476801654089994167681673382539715142405168650458311443592396234045351602502159791700089436599434252843053905582626902608488213078780235769808343597578282247331419698200299890876935883711163617103996739788458208853640647050559608006586948592639096494003888850703225665801577376889224507259564003870913987732102616675339060401172492261304060457314315751868974938673618235474316929571436848950722189561286722886724764558462561952774499550003198395518708630344242739763684158679784926771436439384501336772678745472645510092600511982296435823375513217884541522125489768975910104438773220066944777394004376487680757720232458371067427697977924670141682873283069001989271356096680119625612500273436822279441212527138840461077207560873549702486328937215204215090077502036773093364958339175086904577548712875665618169916120288702241991970989607616063763879139402132079129797012680547391296349253646602013846912518447271372409918335597824307634813842668970953853525279901393102370931069743170173015472008697141662963282154476127526439001480319211965654981005529266441266449926933781319191256013146129558403929084586241052528379517681723706713594291146925351155283173005371906754785194971572597481556695334974575623698818670277933995267088422564613107932088997363100578419601697046316078876566608483738402962030557809204354476353092134264952651497460781165915711591311534884832395870934609006301566503175535095599036900564908223143213885855364109679103310604851867565495329066725729174676876642555455909830930856473516423202682247362144167133108247926644936771908220607540845972654026021147848559481387569562040770822065477445537391742401375923383673975764978484330038139848238049021841045660784234258721908956650564492430362530807190570491396968820495963772064125079335410805789188619028683573806228310224598862408490255495491375300762729679475093244050509775980535635202984548697338965189494410633479755672756862753836888827492646120437626320214080014261463708113192663992822300720829686979818600616848513148935322808628798886270069471708215441356536210123686334899658650647093850257261807388861821746660378204903063500492892994188187629453446637466858725585592982732891980946717550351322828515304772098948803625379434499262895659681598777344689512485442504678376428971115205805544009675923050437145926027024366066615959720560311349130689643085964498062795344700224523561920192457003816516460906462287815998400686658662279878762320646139189968992181128688285351878408184083510664765076959153461707501115592687725660597027865367238586623519344614375784985297997103568630832671574925364391129993954718072673719347960856644859659255052477249297904367917097812977297391018564975732011981409138376929342756158629252972971041529323231121144173791184135030850840009896590278904306836419954093055569500583029571727269494669258738475609877116857154558814603269151582128876338073840080527662372768402558604727843066561075542138306290989337992512906270938015138348781740400670574549795951545840256160633239934039613881230113016375872374311497293877889832096304226295795492042015919255044787908384653074526378310581395859107579876974431188506654762854751114115259143362226741367686052238419021710685133163352864153259933420873309092659514777054634720676415509573090278110361309250063393754577134450988008911051095311729924469922873250640378828246737445466542400179010722185597175541656366679129668881419813101826718830301160195580755582422742520651714539180731539543606411743805137576456663142840877857297927944084964645548522596584262663895907399152884604012242183599554566546980097257580302623261188985195365414666449913918698961799111114219357278656654348977387649822121515611122942170823000976012923864749958535708059359409673547925633940787859578790822074152163577344205468148591306827089178037745480224319733942522030875188775324466320670079817151797412656259027723271094596355204051671591526350748730611798038725230836674968260305468984559532457683358508574255874479440740704856157312707613119169691211703604274502221160685470176845910659536470825090839257297506636926288528879532891992016043769262925218709555446538118418732886188915884813728733069847485402527277757905130500851427632542014004084994626111665998627015364280309823757070109943199950952373213113707873368678990221124378493430465177284326336419607746829476325082912077048964387549086358344379970508525053846236237936313426128198436634071114396733354340661816401404094246410235828957319716297043381327041129611811753779494884811926595698589173473855914902359324849753414929010534431649963289853344703759048810488087746758331032583763835945100426437079514830405577445812463287706725784236183159983575153680474945883778848862362309427497269956478343081103551090935878784621140991891377115673680635712021487120578477882045987674694636291965387019182660880017588309416350166832215253605025778153323064553935848882955971156971256762007228842329684293713859589660420754261567174153191675278060999212885211940902906787384135554333924474798156776622832496591203318479493571215368202523922464277458121316142113368433418666866679229219951441198829630625242548581156327101684516023610634514242762471991185227804050923972831353630421061445900717036193472045551593395745266239570379425605764599683989427873626343454705786079417352480589018729569640636438523969733898449669552329290001297042906911184843515087206155806817311269200255895636207995209347605436943853170069762015826265692980485640285515456950147540989540031839672925384912941015428283073481247143861756638701732328535511252277758287268581309838067670395458136189499661665624997565709018551041428474008536583553989378482352007238635584628719562508529481407741602272597794596371063602702313920061685028430875811748377807912168144385992024213951568006847070848845890518595438033802864774105092844670648532404267266659817185406583339710370913238933945403002241657174794716449764490391569353806716283397745379586047962487304203752476773178228456044336996872954742808812472202882755110979928056816242247800533890353219117951167079455830393267340574657559186397710833442611970601490916713096246740444763140651201896936300087231876876923359999260771967306455316198727413404090615779322402654568914937425820833277668767411461881535725039341955626030698480591017373183953905122424767160727352692839877575057216367441115551614858691201257674546472654351546743429400794602512417803661720587520300159414143139403188100423020342915315898187782796505739647885517740808305013218557836297355083487289893503691326339313927804674944129201010867939543372634221647710494871093280707263109452746916056648808302154065644430674185711146035597360347103659328372411625029790531023503309697049526834250043321486483379140473286266393091228027748253017322819105353834319123561748953943172374926762706572282147726507092554348112898487489043270325242610945569182683302307068131897348367641200684822806424370561828125313171159623979538982758166659377643791720293708129205229493707654700422409467910804041149183315696720426831014729390835610112563948713980482639757121676310514506139941699409939513512694321559460345534463248692904316201756975553364781344778765054723980288857596345626878616925674501559375996559538472245555621973305074178026618159109457303771905357510195373231181836935445329656511505013855718080174517534898107322373104336387790572769711271285029717832226972634793970794462108237389507291940298485992356301028754185537010304991433080655771575964886318644580064033485354827205642080046701817800858798735367756604460345870007903372023058595429541108669957551442193916172723384456462339728513970249674254665657081850365295600336981564531804496458786555630538518665054683625636297923945434855861617431911395292170361980897818918863988866018666975297863803427641671238613992646808340573747265636336989540352609660489948243899631669879626840260985418653992951012302177920180604421219485387821303446532790468306751566904655520994204765517988180921978783251181520169240879904673851699096826067693764517692095352934033702843850917999038134111184572496682581206757462642938805463129270953485779492863118700802962534922620058747360459595842089926040334601057015820805124222365622457316448672076597631454223488738982757704905917612154098030040374570556611257873036066355349112683417273784288188313309253407632953265994725203316792041121128460593310946393404438251414930300817066393917425856146257203919480858746505812802941672115672062814653962068266472283048880817580406451333707808796251612661248478421782934040475173509702313739124391584957773180078241480471845942196526407298660149707044563857877657167969082866060423371794895898061473079215290417108820781777948439942452469592770028974388117809175884132785079392175751609265185501903211795623206492273050564234551263403068266130219920901491917495622112229159076068172507313032460925514632418462679682629972208135737933856696227006818077385530258409348763534802864799510294557317579469630282175914408405689995109310315622960670365310104924109192859027065613403538300094261717678378560433796191636460496389405359637842584358520340017056521709408296752164456436187851812916908007617211184198765513528945299941031234938123206258308699923468162553822970175094738088492042895010328408383518971824783157884045363932423207631463778165763344101812406184680554132556986621974534691195139486850719908638815871523324264221774922129490547044836740104866808260114727935978331886707329976173447007178940566762969416044724945970480727421703930451894742927898250338132201325390949192214329446436764093871247511878661054036111659603622077427991971958835832142817298625005129604234730788077400005750725514753834726897370941798517556623747137961940669848702413011335787618047415498114364224168937927121779334310993445287093350880407268344610037981396603032623295998690869512916109734338479161911494594599509188376273587298947696653306870032574847463967321147227914312412367181464599221467895651458263068602467896120547438617193049073962525112720826192800733021354625389123503526360066260727214582792441923952728048310153391691199463375503455193858582298327045219229398346049315659463519201266331810130483254356780974240008097752118284644438041038129003497380977286134604712725493233095726454610641281825522070807706631569562053474296866325282532790124871681248911060352372047966762214341781219151920391887163954907762164738441024931813282627812847918956636599366439459253635747279330343612892269191424664916375236934070935449044962976814307445474757297673977601670276058953176753073419869877002156421956915596918581739356319299893068074557514316169360244688102898144691462409145935205459371857370167485180486636129445810395051970093256869613587360465713761203598180673912861353397558302076828211646915485709402411870181615360047295802737685032601215789102921322246101193609881182174330266654797257570745874485986540813004859308724010378943057564228461995024407125622893076363499689289580965105089543222116316655363496747800365913004054383050652485532734591418530327883846136063826529021303654806285129762664317784186650673722357041728623841647971600398136901897844598483406542118817272386219403377783085720411955633002091245715153920051859389703949093173622124502085491599393788779492603282799561729029665031350511590669920071196120147864382624798478178815819132540577698043405929095959727621636337100607448377834428827548621174576499460399094173444684264391852224941513663162000266641086711616190206401659455189753391631913930944510515298230656137195357408859785544804550989470409292305535330949313225702220506039779502249762024722896027936442222828842910486291800763276742106775860824199239173025476664446535365608691287273503657752763097113884140451644654511573277719303106947532091153422093881232218637979183020443128737181419393441603816776545683412944253904874855959589981108722610214591028471315425126262408534278418971251981867673023642507267087017024546194341868172261645831693571699503611070811440928836915357331469117214916297702768678856547959369881608912533197244172224011458517530605781666611164604810158040030857697490241268327580812062545561434940457466608232543565681827297985196194948963944671352926206248883978645841535590380226568083895429004183149653378398661125312720255024966782565842165868573521042990416868924601436141488346232527889139467500984839723537562985110603505329335320947388603649844375079089510984396289082448444398231030986646606969298349137611568641614043470026417021459119287280295694433969827868104990344323990048300087888055886717808480499612336737021361845836691867387203780802483264804283405759482227292733503339170799330584855356005918422284190542567137651451959640126212558207443628440898885222327518997446862477947002003340383077851338980934051530069024940361883681285282834802850172774407162610342773484863342358347270314267271856250578557877930825411098390937853468121617628133109355684953232206505213707308194340338338179232601132905805267374109340382325991384870824454198193540535781111824210079249857784555605072822275362040923365750881464652509571327787385537107678842082555050806939388634442057319487475646348268123791188988409430292543198722930460732832089456877705999123192813972110016870875423874100951980014121370096922312411697077150241960928203527023919557019565338611661137352226188270965499251767977457087405364712035964078932562602074402682653159914106542381509484574406821567231943640208495322180894003538713118479989459046590555836848109863639249729325495794670920324164323406634710942821018264848794745173970105334279633728958112656470451262626561658097316095908168371065897701715396914232041073120574297546422302865613991596845189757852135481620820964674080216150010371872388135030944804119850337800207892249191243976684051083068965076871176869774764977688702982509682634019761503215077010116086860951924850317448045910215130229139699057910242687646711941747254132213649853741059448679412779424985340861255667144794738388057430858751347126865348383829717119277181385184033897448622015004357894802144304243769465558868272447815524045483512259704664713987011607442013236334632293653706108642641745044591295284426014129193937557179229377343423000456743845765783285727488265024016961134718245530328922882104163019340179686909166672477851247111135445890883101611582364827581012847343028509568232623408295703508052799176480638763955994129135125039716279672077832924414552873966979410119368811824308975980104405740593971719287196809530893533817894029801738523634779484937564889755819194678888774296139984105442628211319442726736709377228344559484278549601274042099751841429480698060783931603149013612062203748903525263680843888055178318636915106251424933802380159734902521476468057159165012295440739609095091239398679383775889675211683061816724705286881132953013370781782154454946040820355145517355736366765805425064279532709670797494239877205841430083779394713593682304403003929232735214262685500675153563235844615896076832544319808487180561578771928173789336929759188720276114286582435115870800461949722530658801539090713259176847205203839703569273631373207445131898202035040736013471503379631641949437954359673486380423146022985639454980271721946558474284951980105121492155095811488137108427767991489430624374811916335040068860330989337475959035757569709071410104479540515350698344650792706783907812014780526942784921096720987715264608165970788894984010353265030905367774089868470648444920175521041267243337887555280781967629240155539396992555611218844881686582523104759935004558960847612369889823881343812965542402012560945814569559293012578190494393867763225240245016349948916986033680865639369241140260273772323150107816322042247907171070711239185552903628427341059017714534077475485406892802402018117246706180534721630041720647637901233767186387890982985517326668843094807697901337736645314719655714175148831760534754897599312678298843923873795049871731071361756368453256299553529181926505292193858943099092325078591530721147788423541901746961558872977401593923521272910094217208124823354631719699282596182916435024997340149810575456433818509297099853938427465970174110430077485297433766518981106047048585709420568385020078449958577219728263829418418943556252892874167989634422444162742638919066749515168552466494122115215585863623850842522606376126223498845550839365455838607575725568716917562657229755851528545254188937061765299003589615180047147512378821780863562097750026259077455368439116612986994201638084531603437250125665742098945403277976085128286323151665059429988078539417412048994362713895434438087637919613154975334478650469839063393497709868980491963709961830249836414685725455618341927704282852405133686073648831732049736054299647790461819449792819222365582480319455546314815030464402904413970667269772658956764903090588351367544695128068200822076318885576763612092727393685225430268949502974862608237016445183331696064985393306055962278650805365291092860782596434988485313031111590536401908753681977734677445536921355631014263833106562120600494260055349103275169502853355164688291555092820467023886608492842870300591542240404731022089936747747505347514163702923937311765828217211447391300210904566240630062662699597999736781572338146380995714493712037038755850831530698826033798252581327587401057589151542796650228578256079474953263951291044802202028618348973954147762431273523110681853155051412422890091177525115288963453934611572086287677823749816821473390110272735380099816491516688221663148611856629576058309491522420965423217559602656713559148656852046829834334593010941347991681493169281073305928919933297961247707898426043353272032057987434395291480704186531093262968611841460164996946396536041833125691514052513556915776929669717089227861927618318545586689972330687837495465182590645095440218760488595134092073249121591988624272206835303208962642413145246456789683811210275901470428415895012496423225800604985875289164328891776342296352541922113231915691371316677311686329961426361857153631068109138888158630639784031815814649997050825119576296996786085301788023395238352613362334473631794651278377535407592192447658192946742641761602347486945971095675756117846570508772577295756832844471656403154764516412800950575451985477142004254174666566165019048230573806132847699196690415158804035053023621440297615294756843191650282365268672564725141163005270717364575108883293682156797429416854811945499514512661530108506611257648640838105571304659338060412740106843879819512993841767768732334283234218650254030380655114874522909577693990829151599265750989816818208940377333354885370710992853912640620006045170182720819440665791935323518414241728953502990692853429728219610449909087602573827007862971650265248482379837454476836756302685585432959154381097323716960030387467893739728759028687012513359115463030793137213507348286099843513501731566094774648409206279421286723282180167595894859499334578271475327173231371576303449954578375316674542945807618913382796936709562393267914840671170556254488450358907947734888809962661588430299872222572153448981858256793758892892616237500317911029164234923148574053858618094753254569351056885387491878440156119083186293657520167456678152145077711790942541993417263278734761660563459424065225698356495168566504262463577712911899444800374343700952928812356224048539640062393858776200666707437293771862614697441300421905727907158825228737362320974838137005762834687859000190217931179460742566943739918632508788921480826167567922948480470195876243943619605303929989540804954162852830813821910311161141231356892010801711871738796119708685766768320033981629694990774509852880411822227864760853061637647758338884469542812726901963670326040753484730146788895681623208330045565403767220415372703808795722173436779232701958619909035297254762943256495111088755168400344763857489221534486250884739017300389606139685876288370524427538083207436727821835201159367771299518469005238268457725997972328211525588111159097245849045484859372124624701195516499613758123951000562412461610463973923649317248504492873968311309705240969457881971548574988744019187132803094332327568067166159797762338857356661202734559745832920820258634408270711606068299474864583803294434986768807168174293248540262301525062171658348435918354351792430675374433431995014860047095862337293403786931151746660772631988426680662899345251443279986151435460617621466664253523095974569648349773082059941852838355383209018680448433358079271825382934641172796973197394367490370343599820046997102044339429081163394116434840436560268220996773883104783865870363798685524655704016098416181928151110187861699416066667461346885996263052686424845964527862213462337148345063733641399625471197281342977624643653689127064645632667944463758752330553788055373194869427897752886697104260616892213489606188230731409550264991463587677465274649887895217241481613013411423273578303793655689608813435218553849748584774493781017651435163667456663413882098270774687552486102570064484130548853336236273870690395354396011583672734879352972917525604716243415654557400374245081224274251716593968165200100848632064540780886333062769339827526192489984337686963526998407851670820028558545134881279683955264857024523945058148900742585931673412183270517106826297673140686483246412587871388395596137522960729451085634169367086217061837606063511263123932098163706783316341818969024148227951765027423399413725011166730649514776211118521166896595643862255649993430340709605074768027800803051532951100507050556413648029502810374686060638568045685401596154367393315401109727765836981054785119222343224167611436486254143653782237145816076008006243522574908080120018347915086938992986769619992258036632786094513906466822031119623293228547638346334290361411650309858459306240929037057213548608967370812119223453109827688532332211747831363105927507307066963190364697842279773975065157354492425382617096661371486785784957623518303060023151007949019889920461782819921820079965204143286390169358157673843934359630581057275198303671827559422697716237039666222438390671196290409926997006968691641513608657773750417896073740622140739516452971733327617464050404824669733882600308925855840474219996624138911299993953424374739349729039574859418789140843862038828986811699714467259933163970946531267004159123578990142791294379650928596900803288352376448884078102871477464195097321595288745589496086658088643566220735702345334465804337299375835992852834430931124070323351883454443127819541705276464641045982633820060118330080604723478304776514191861633543250883741869713952261626925182011132199823361354108271219688263371227677585509804144959041163075410472195170218657644714937929394951544081424224157726147000399603521310148543066331977546066455172959526972513290611895919072881566350724602509872917988477394468297146520480944372314942554137687360439865586115667549129354746541954905825320193715403961560288996591748608539511143574494188019799959572836948803360136823625949000306515524475363308044551370695704957348718339610734985372232194743943699982191502495362148056565778640845517967228453189432570445007806845012370577284215042356699381810414616704941991437754276698969907465226680074465018121522245338505677714991031870050410545987131427427670206021957231186453013872960156862468552184394973646332566759527760164460609491875267489229724074227858171924989137760851538095039794792240072322205605411399491077300471085309885712929184057281685145084396822705256196671087742843520813577377379795409972059658597246822083222216569444754553994775531330806416649531121886884107220005285128407436438924766444515273782086302285659217472232134320628600242681057497406325816239376720128847017655798780563946778966978742245793494627299224004877845797095516451906557843085927196682156215741223321472532329443607113975199639617330236324878710193356945581276142401439875071127295331258758331179326123171048675438591275610610254161112359758179095162817325160098888938455022244275906488895244420867349862141426297437670563362179243510751229682974496924598310485590438573201160308473553914177089287172643167805873214980821939758284354041297249648990190373242037270244468931399782008481300503505209241095082007081660721133546110050615648439612889911564932413511798443156967084926071526217516513098826981881182551722339988190506968536603202704208280148564234342801156386642234631596050965733304120860345220308548226613184613331821013403067251652763963716915020702704868302790444456685991755580185575583026941379750309718358231377006519666195335664051145504425745152121420889976043539545952635582064729257745370812739871308280206004883481613568468749165833765902695256883846469443090109302168793001601364816854534042502958368150574732665435963675192851538262888790052625229736840700188441541558670379966512655417655675922478239939619830404373191550152392391645718658799267752832332778953513716226432957662923435350390529290257731408535982396297813453810565524298677158613515870956076025389065172531780922649662005510112222674457702684185908029195173539729989039435954993342381334919570352795778003911237484316237883033653750735180529226750889922595095660830203019761126705647014909269022919144053417874013365257187562116458168593831750339444809564393391201655910038242273055119770900253737535277368082930190252719084953976665011767672033277477123789651856962875633166720351470212102477837257120298106944247967441929984131329806710105449734417566695408674264651249647513982975821425178576866256242009651322768711189628699689197513893112240631211522491845139558697692260176486715518973850929614099577629701353383257584711341483726064816910616249537520807571622259122588799976854364952775839014151837836460060418126343604488887329153652095803896703755750435818101568147571709454726539387613721966240142076167265744441686929402930065165755964200981972902443676081683636470818967285719731898443279191923759785304768625298177117491166140915042765628821515223618189667839431587916464208746715360010133752812794980714487016786426261190229086999460411174256805490084754766512846367703154692608246998127474179330967872428445766356973302991290104195167077926428368864351278912231750362637713462532199267268492295184038373355967846769487491469579426091528124393216878751070895654066208636400903273658480146145844920442797352415066998315061947616856451423705276417601926747818482519630330539062772133774260034984898700810376345363978621640029935160241005816173770880945302136010792805343725346246285248377785777699715807652750886166068853742840499883210717701612380416643106213846561740621326509320960628811738276698168988147126761840553671109479661032155798388659917627403387574234352174178089506251210182125170029477514648463839549978637524707478144229065626141317441447742572721150186524556284111009618223949537622616116077028325042450932860157286942188756945610087280852205420405964269387420436993974443966482188314019493127039498993715790302662169149520984213751105749791668717450394933122061184645980765482666313947360244487155183479894184026559459997263282219795929585163934250912300843461748306573147537133163137828560565924873783923504577352008425194511505691549177716307535935191621243189320329927146565518192001083108982678229984856332396048348703449224863566173911167174163272648937839041065499610035691738969078481537328076907565277410397602313335534866526263549552367332663077465696690504926784219096334303376310701406769460985723889538786183730520931669338110795226590668885091449281114985847016167331218756782868980543696239795790841929561830470431218599988871507157505533026315812690077603150447973512679211805710276531802509590445519260783699854033696453538968692262203149532229434905411921257511782003180137021815600141957553104517608286699093504573793779795272173140135410959436151455858087253304740792855392968741884216906028608341412993223448491771125930831510308001786153877221216807303098131665892549085383240590108697412893788369455739865701997518411534011551486871534578505587050089868942286170138566220376729212602179432058392000160581309869810540597686887978168168402139591736587750994817378892017403086932087970560456596504809440445422136357812666367814103933208369714081854360219235468372478087919125114005931900202591052850181445774324157945786738431107948367924508511713842286677647540079879594921964150969179441338073772087414997402756360115903446627863444474673972792389099764146846338636403146262215492252883464370328148144577916514802412167311754071685168994523978630189578429664012770258186083966198398818331570358782803634454346956290363887779181256974959850443846403251201189004788182177159134641073959251715348280818015631578737383146857644170727265368224920704712976603192085929404975167575271438084966466055514223512808682917683667918297529301092796795427016247687547231717514975612804112952733236252894268436196496318993949574037217309992763943163479788237382725954332646515233281286753252064633094487136317032799741895257629486120445952838794258830624734363760870706347843595337836805827439180781091493504771819448092716571218744474944660728686358298088496460792695161638987222221877070100099774950534285882441853582050398800333210875736757082644274225155028045133878086004370500279813488590162798076127096829037171554569362399562429511285134988030387544498983945167854175035205533413185823211134164050798333366506330349851067042198059689559955485733081064740382532437017187331291854965553211858655119847976449942670824868641738324688207355845457630535582801596944306652539131457006534350486598412019239516798045680977772556626517093456588022056719134560642003842214885299342596127373709698864038951605903506168295862500787639902654415155810642661776335238485405736570571998451674300981312336815582006966621503619397893926131851603405068837332676371801007195302944907245618005916104752627518824275377547644003648668323712980748059386749461798933929325388038013534258537349507030935255539877596275279344599342198014331693337847664777291326311184964241626398662312265849913025042073190191216236188925521150953132357702618846549246817924489857604204419196856820540242220888149718891616393599663651500584082130931139903854489248579096411041790645510175618057158380970257547862712374161013594631163447893950276058275651939699360392257098947941274395944871614698593468064604175554482057030808381168399906268479592199322078167641543771235376767432845193920370292855555845860715410634941755120654662839161135139696851721006088962495444995032706114784037577852418574328241773592136549954214165469704088225976006833988953108606676822945003455122939441781592528507459238178146597440081188944413287860297262094376520167125857239811502779015935346823063723819694458037616035295100235010521608039352077164282637180797275236184870563501505213876327591837061404753753855179184617633711319296288455733012777409686507102169805714116553624915139247378059057289262575085878385268703279221505707606530771774617543613032977902335747137360912598520301490368115645692343845956957615472245065140068799957451993286966153865848389907018295542272327221273574477554590316043086154292590733228788373599675402543404950210296542708021578154810594979918028070052377617351138098641351554703594193191345138387427562924547965412189311066115001403485577239278971899988589347116932642323390078683510261924495195393873849885196962104396300853517365420430158105759030082050491817840681365143215849578124515498924272717368606525004048284267203054951924168992863789920773948566745220499702732884215596319491632978793953237027531752081737947564949427378880602621091822379263985772754551971625680399221476409439872730440446539941772235258059736774990027690889038515223451034543495341234861588038928818856903197293298157582866497415169983273021286657898110366308217772658900547230815010304428070345768134904509463497475494277309456092648527241457067777977239458720538489656614769081606774522408084637747759188364428938947740150962384120612026794746762636760743913975964873855854073795581436522343095765455649532606048927604680752636579810654216965597697515249542885221646148711965123923704221899732873890379961318065655031140905357195580505300631979252679374489223181221161804490343944622567028524767875843471798246015733219357614455655554688716759833054382095049383379615996750613831378649019935166404066587299740108076975332941834938824577744118736377716004886364385518710113670318646750155172040696730805016598387127332995737054096375404632908646028624390502546896221239362078628015684876757239409450499758744297065185156595602798519367255227846538812442565302050299180937573308424194824656314181296345348381092995281741168011231327772690489487253428737663947203774100453260226939863810250944674392725413418642238213934323601914481232686872409457899612422561431264022261794313658957197185737392923272060470519437811750448087606828313425610624628985138376096003969856930059292131248012041022687638457293709244552187975179545877415628290428395904171651662029491503396535275880183154487275935081524880899555674442503530320506671581523744329549470731595407465753715153932910035000881505346375007141872942989616377895703220561929844924173721655280409829166694972360150392403552324479452853544211323860892985257088418950385192910077361785507639723813409701685706774615779979587476914812532077389321195215418815523242132906969755298955749946886985345053727865254760159051532043030199960672374083214013831569101536298057924082756247214921607781216261765870125395502740507678475152634359732817181952537577515042946413075933112820425338144873722919988395451730784186229078440236222504085777904299189451576641700839247319482232332430274483288454456381963455832611148502656022323952497979199836410644871932052886946129246904529864576746978880661332403919048028813388017387978411964770912039156306433535494422911325778251638471950874948994326479731231898515972605135562365287155422946954898537072834082585886613465124013563085851131007868789774868320903269441707468791042913074661273912217152109067864271472921691713493864973323262682283408152550212271712797895308626636753438749893647040005866610625785872858377954636492355442286472047471946756385896641667427907274358098446780767322260641108078082741041464615800366806849203830911272519108352098805950084389251627316521734017310796981939872725036563849269950648423634642450683258056616579262352911778277262957784863456310828893918906026845375321832996115780342160570313426779258311028204673294242088834848924859566012815885446784578262004132208648197713167001595406270944589718212950035195357893606554502925386912777371898554938911930981596239389865676204240952153233746900147169048879514758771766684934947610539749468552205747984168928800334064304169411249033626373751050357373491302978694944143532532519954847696155985860654612039712691662845445636244842596718177743396887469575287228064532319026403974976538584870222980334063567217632272635328211790345585737360488135608855359668945292114083486176386141000698660704160106750570243716438819891993594992352209153609373670581154479753542335480078044146784123642509805009221174228487678632321757373825170104039788615474166851805515211005892405297542974061119145683522867338052100536275441271683486550784124920699209142495980647596171674512027746209032671553496074686186038579666271350627646133179460423479275014027381496849861143825489549564833199207245490895076505294472518790485746612625938346827874493881949196611877512519251197171314035426070225706539141180401438688709583787714035576322000253869728674789145623469493174932994660663983943898418661790476236740338630880955056914078875479243119936233475556920010540945517224632439671146726298634812729938804683612407231099567781707922614635688873484791284938263014139737739816651965442413537957918348361166496536768416709325125745810693399810307334151462399726895257241305498108191680481663151546872221975112698216452021247181861209159372788593165225124450872846372683524455560012601277676818104964264563338125443518380381143536948103559572569774750927235388135199789961218810489333662155628486104352221241549306356831646190490216880966686723706767124193810619028240089153078394058213629420815330720362759107555534647245706966234561113805067433683471739208193543964109529877132155796278702803240977369954089198430244944047312145390698400573144471357481582894377339057934320962676470516462648735774036248112431483942042483146229528019336139884339803120864217470444193043573107935063109371703848376157733028691479146348829736906149294320576859008693644052959306631019032109607263405381764259099087094149468637599766524659435075829977259110290076184864647837497957917891856114090595702928023413597440888638650676577469120336738722182443148282475251266718366298132177180197637635334804657521731755765804857576293755357926487761898360076240990655070174408227269174325316330727526875267837882743437205000543003569146957333670391500957884070347316940816047463847350488683464983344694476161650881137413642963768368733404208481925159730998257079224435852849420115142485975314882773368073277414819939338691500733903167750892022289714091531261057388752441274774708856513394008664505697223990212362883565501693726395560074891606365224791188080971922519236575058908327606082853876942643450732986695464933261627741688919415442065118963819553453076590604724834391686086226754040860850746748346686864187061725463394773036234769515559991934282393030416227413759901997399266246870467657842666254467072035643417721222969216697897585106115912064588714766872710585930177917703991246528585984629687507144654364601971429216310181709583927464548536353705235296846087629631145059082352691724457272593190373599392122396289657635708652756023434091314271832079076838646731766465238773164141930898853152902788450702756393761926001180496025632798498232074299176373520118041638013906451495943140242611171104350458083171120602052952549446752116194009170645895058801395543760701018832768731216849695182732902447318036728261277999502096411914842718316831657863777838873451821694199528240353601363955279518742372339217301760293155993918757925628224142543488137183132186546323685735322921377919143695611713440674379612052299254284571079510437107335011815914592997624648022871759193355616957916983655375974945105669267321098680657377658148354992347985592769667616295739918665772912398959290994199730257755307786881904484531290170363633849552955182476783178368351739911295132341249958314456706303944035065189965045378336851560486930886000094852245320439991088298253923574790439240301230810606442421606041304143630270426024279096169568571884236927887884690037606754809745115433534101840339058951529803619171678128761487402977731386811159853454274088620934072382816541563333448857061307976919437860530811841058752282051771527855194712498776781226324020337665285815276560955635302609469914372636495571397890416398799517438740763365786739318203999634696545392383819374318794934043315058274862422206340324883198166361361246823568611520715894705918768632822171476854809202538251724612404035659496822579434846586289164679461510414705063588708386983721885402664707267814658386108955263263852768847748102358752966079882250273314026706891751511418714682724137566937037639059886959906340336239555437294842349006475246482939290916359376874640147213737693334540226933598092258093261182108289854021921095476545715282032529031752275637360075883372627525278606657296208746167255809133702056421561299808947165763346775352552102204954722363242547422907522730085874099345606276763538915594699102141806881729801805868475311749898000268070230871154541566237961641794114807328082547206103142100652057831892486738431083344936999864880040104383771618947540111721509481547783599703610305133130473435928859399776226743338915440369273387298800662772625006973379600002755568051239255702787663005356604286791175015806191591655297329660922362627062037884130588340431695713858753527955797004458062165871802303119641513638341803309172625183391064680663750603256938704761962130641634932437918917970596227313672055541945998905513173066597857341856383143227042312145912407312905857779749628435933390354993948998639796173607188951888573449854117465585073625434495229652941912544723352945792230560690287359500266530231121257950026751391588600647524843634765365758882683920147874312753893095023903157796335264246902144387730620903369345867740184580474931735863760284148742980132026267190081951242501535942333542771437821631415857544417761066023843407514082724584283007023445657980797262415850074615508843981102596578605019836343815904066448205862738293833786943914615425254986240395192595408660713376712097389656667388944324369891915213775393365447669747679104863755118453908958324216985577756791875863411046679701520451859230508745070327369055390751861038944091210795041392747119225611475809395888589751453709961744793613070824588912539668418078004494595717111596275533110367347711725481556203466406152893452468268777829526758267260456985606740261259509425163868112817655287081265544452086576388665465396902486583340102604211846236733097880473110834063946028036758264362639847307547202277330847594073267349399665078310296634116818229298395805428926457811250922711164469464029019953218128299741795913712189664073860882822870879636805956291632939734759719012089039678420094883849961015688625257853253359525723395298192195148571437718315551044465424318636433958839586502489509310170641802417419936661795727314010618384066379113035101255030281394250535482449646028426244620753655606458535426717635396469789363840984879865353452783299190553962003267516192033594425825101767268106804997433132356775925972799636384040596717034786545179925475548043150654834715858888603300991720477735084930021265439981074123550876049639216566562228392776566472537373212268173087604872297968754430017135989367047744531985606456141425472893170061702005889588787039116033842826714390463004099186753957958351185730789716669323268671274719920966063896686777338816520906936424757830472656050782804582685579022219833245762097959435610818090165874689271530251368372575942261999627812099898632567979936777938587567717177639916597038050789591839394663972781200788521992431764362993598942948215665838585644300392571431963512257936921849891228136472380473566296544795497986450966160443255626456287456413270261121562977671881355591138897189519051088396695145974890664114274049015433954780113836070470018949170359707980147680179976694435652551684329650134639930911615192446559844335589038041943955465243682944452492187167557363540641763977409646940817104814549828451425110566751314438937582827128745502774089155978099442516819479739764126135824619348728472322341355522063139152996435561972712664484590385164344019490023203765941323305810084703667757474373421056579875301696046280608148417478479907746206700891600492813182361774642419172841623298214553548232343973355063645317245306313901442205309868592449496629651372790296884925873354487574865916771303168752992176917441441766367750582372828795347126309235797723320682736277989068266105175608649076846689479951528107903415814350410067807665086259403994184906940092013514707120502428579481878570910766686716051305984609531143973101525203529022705467453899746149877092543111328580161840983167548954050153501183846284119859329052500225228001886594592515710455004708073374595013286122633818028866503073863375485285040733204074188347795414320314667813667301767829465900972876051774919538737507775462241216696392324111499840904653599176805657767912420369529037295964363732643424539177451013477449185176968274867962153562711074266554738299626716094664032405631542107244318639370244511400089910870006165872518603872561019593232874505558317398108637107046356983137483518145510409750900885237275974703822819172218631161313329110145336664865297045295573211463317992126019404421195589100193253849797539588541169060070943251862286807461189374460598405673324383078749868114519449008033236218859722981932252507532099537202729407179833454103690377947530444598407305859312814577817831834913668597204367772388750785702117087308065446060144971881866049100375709833513679969695106672701657019450861611767940139194447599070078030828388271519538095254256744328669520971548680192572046893554322616156204635840488993609301815706906842143171038753431737133974565791660350094259462915020066853087842313553418308045454017402357863264388310495430701692210618057164492386106801865775538266385589240372073850819709656424837983570705123362589763683889455981040841216199780817272279232308025772724249591412085392934840043950240507344323785866621628726556488227245587257171243577043093970442342918219953421615894100660124475951967130807127973429830720291916031886335265965546850769609149381158160057127962353897920008370920745913048614045920976402135569392283662781843870784588090656588193000126024982501118693606851741885225840250569570634682746422072433752581721161996673359018227926865932780915108773754648028550852111261545089154050254448534540886185573160369485065186642720454765354045086727090249252121719641909668611678808477734790144623253412216542625988234669518588205069421318057628978929933027142676321302166582149911178159195153247817919675083929684244584159482848643437096990372152447752611965985227736319726584415345753251384211005205570584578003707942426496971768897885746360684848018896126884597110449113255257047712287783310485411539677689157787397695632797972586946615297640723243826537004508511376882161159062831631663743292039602198575573687863945364503256763921541106312075917634215421679726241876366961925608694176704357844982329339676191782875890257183557284366231816252847392386827776037566551081532362300865911403924307827584350543179902509415775295825949040991928956510370807008086174722946049972133212500057032847614864908494116709340557346035613919811543797812220330197146831410007192049755464261834386433698354536320344583156215607755611073366494225546186656839911260374442478504278659651109810449571211539677647681013741840192423792736815253758424755157609516351033200059781896293646863102839090776660363538211189810837436088050990038805589578896369645420063054352173235260430346411593863878757621174080515982196863194245087129466074709376104103322718867340649725875372136425825651359851585815302825219972152925002404815836859797777821818696375202262888220668099628085328336803859605302956264669022927921820349110210881466309083171446021035814879202464557501078064884040170993790445607634349389990136497434138159855908019484911769056307620182334207450204640711279712629810004035401305431469970538634953287555042718105358070814651064342102071603552590022701476088996534244844779300913858330348314253974326571512873682837724651185052428335506525126762553705674743949387486808893389936919042525294365503824906827832727912470001926778921694008154944844410053799014266207969063793392530293651626979686147112329735288046247735193812672594117800207167576234443206050728939320339110073069075934845083216749585696991658231286687158008112025237335313505150531599956552545875698809897947669603634424966400557319414343735742004725386640627817809729867236823872232466383232187208023618903005569550842465141385883333866625280228092094184349588045465367400822592983177195322322003437522249151752284125982135886419173672030279146573330412952665854552443071461393203892976445644621976658833804224260384542887011462597380628380567932212178204237656964628604450981100822671830457823297406837023298331776019726749382791155391553335938803776356556648727286737794048775646657949408290268575499662904826076178906710196391925849285050684152077060186174148537973395755055840219360898254430694839454804096631975652855328960959774831436109205718514720068355899429559358226210922973769107242847452401270609005614379180115602207690065231726029743164076109788576745640528665491617250719241781550066781526257201327174568237924497082110960396288030921405334277802130461684924939580341141227196995529727258774946153888966085225919564931460156143347618596772554665433120755949671645645212956883139444863416463265468645560974419736080692371657273971678088999709051240442857052785454924980765554439905613708327423645690952789367605294242788337137280213114547969743539275917181586951892710277667747197631652608204796080941387998647866272809477096833209386347449614670749878552583370464339639389111482286855621771233987057927412962979081412099060909585337704391079889502760272524753700516474220535532521719755724197455281634269435179144511408995124817879228694823079464557982624571718255610882932062112890921447807624939709665783147678286529038121230928266204118139530020894293466518330390043248158724600266083380735015449556866250155739949634287015131094370447458595641999596837496825574851101049701828022698598639359772656392378774161781156110058415049776117777903306762586580274392125148404826783648289882430964473934848134445954214697201818507383645921548180216271717729769590441415773874307828276957397792646930685716272080361384033974632777331145733970561551541483596416544016837996483992299821221429602154123326955892631308978153928298620136276945575271091713511910137321462288563510917379361254411288776421907024196821552112323026564087980212285947606566235518782372917701000343013592265480179292702981129432477783508809763790077321856843814121719988217758546370523757693852469686139580740528255257714258619400592754367230367257546123227750082472038135034337445751125553171545392715191496591762715342020544012142316051270271197184473856862811223306460384019303383339745361865370180941387282467508179529609124288042726163006273721336219887160366504548134908536510250552080477075690921043112955476513844489987217136779835027338691334993355159706666227403156747061818040838599084371705833050325924618219022031869195852040597889978490013711650222213101783625595610173619702281513897904513034528129998681170694509007463483325460834156667450604782176600198223755905009822220557269373099613877243221645868575842497313151172828740507016186263022346292228142124886975758665382462591471221260324291043905943004895688807006637976634494951504499764634996999152837928948588827288810206824296184534480725500977046167344059981652144745025977138144216902798732055567066929724260167388604981434855722543173401610324707118217293276662947612123315265763198646295933474376742846568748614208445678037968219225514844817215807408626897837263312530183522801573882254483900776985312749721252673826301294066899191918141274739108714186908862704861192188940508804753818537198730252285703608069868399923807504495211916371890397654043117722807335617739234988809780894479079562995883224634039380599326362519158562970795868459360937449498958654758598558429310468382597287003069735727437019167414217688495851643075672669970696410224424038623817597782896427019041453470918209392158063846665084512995732216127443892888912242427285171351668134497177701894768339794223990246270036004891719106198489690439054275278230024537764075816464361037093898693949316705013204643364772777474425862591616684525471433562576605892054539214607194689996447712521156751351380034850410026243912285581584037493437747737604273990034484893554635486163819453724529272883858301055608178996230067348624729960921512177124255855550172093361495294522396727169288963298584219378168858619565967845711862697788006329268462385124144077538603079760836513049770256328857178055378650955610663833951473672664937709768894996176429230795217804237314934842207923593365646140229373947080511592976314120138276286521257534065190715328342152407257234635424016286253136139602250740617530647392059164294228238674489468473663282642931651378979822805422705329417398490683673353801221530892151086982618548244953596114259476065602160974778591693537839496071042310044719212603169141471173185585208291603392258299745718122155038358847727238858086289138697530374005232962519088063703113123830576516055416722031372965991303963726751089409654497071383429134643983898584374715490670038294158761632886201118069405845168302927704913773486841539453939776487413583477794185811518313435396074472664093431613900132395164170134071483665047933411731565391201904500586844836708318981034657140156469506746973487113488745652371498553007652317607993456294736741771975918011898191254856090390715047309300667840426920096036556269663324086682824674204521544882616873275152043719174309161889244125230690520622267452539836507460833019900607976279696332083434204548492878912501226199231311498846749289877527961629826750904525298871919910843059162589417703212150780755937453558943453083389560274994438165572816393202312067582237762705780537285238503966880525907102193622337160283611930573001013558516372395676762383383508854617012705292519690673807005388382824557135247789288805267247617669466734585972998479682496242201530730156091631002496277614923949266554121379231572624434441588238825001073231158010325991860895259139700014051105420646087068594823947236681550154239582587096697063095870686849705435463834040762410123505400945812865769983967723428921176242893221788993477849264621055230236352631531204676539431204996200997203573485520375540132401344346751438528228331714717918273367655536610075992797997446432142678614235271407702084484792142662220110539939531367170367174960036719020514339068710848018308544982363673152332836739602069769997535493262861331105311572575459679039988143870662470368572310491219831969843881309448252565734108294481243934067639319764392455803093226399323095269569484479889126523752517212654016716630155489848120739058653852341710490986026133113881359694073386960062716840832798834718110051831336046197763585434248774658852473893095389296747870390684447591032206605882817661524366203403478435512108707273896365310689020285887999862108177597055654446676857895070821607825772043438130006056958257614837695866557186594667738068710403174212610560650672417029763055933588172564648923283474482715949378614850251676068575561599545601406323695850661670414730928722226173514370333827558246611366576047958417200910512001805774100945977486756142252912320449908909710600555541438222810801881167080801799345662401550814518844412250797236730209392964174867010654397805063628984570003560708716506910897266428756600939387949297789906201535432587421543104061374198602444669417813048311107722629593605522359146327573072035636317827635569853813793318878908339052615938646975539239399388801621013184114608344537618009372768459688316426032258235460320805401781761956563068725034212988175011320003934351477987567974568646336538747272147659811710923277927968955939946233717703243809350307868765041804583796321813439053676182565776016558317394886894449076828922362677189257104797659403641471532809368597923211632061038224898947189934064987695919564010471407068948015279866631368754562853122195652662039809641687310681372412091896385295646663006701101395433847104855745863089577762241912619473530969066548715310000590552840877895400128704176236415954258471455517142679824136303936207684376816501370501150384862080131423140768885690256675584888535259474831655110212674448310127298833843863688429294230561466437621080360278221796434613756105199375929684739975937200839830034108991834769810217623452748607720211652991168515248509296339707230326848409366932331226050299811980711832236321003684978092035023104511227755244089675515545936744974579133650583267346769774044336307563740164405463389633242082256299170535525600598730460434158627772348409939281759480724983470657566064199872744922755628918932178084781019532610537898120913498548248649846474167739379698688655426589319511841485417750152572165520359342771851580394126830243662920021697892691940385946455680297624972872759675654982613636208932827136631141677147879300315097566222852058334026348751891729787458130655839423683831090085423769356868325121450458090342905367494106668540720101824208202777569657869038354618030361341239516167543117158235897068933168760304882441012605317696347258733972376518117349350983241692435539592921683847743497589720324872818209242787317717359812713026119715602344474577761574866217499659543228046483699328397356885373195549542748291542361068357440972448783894466458491898457883272911969711372270860010560300156616921579283698961848534986391182008429029354968808018638640335507971559184798245522628125220326797195287824373077293183314954233568283689269552974051288955119496528059888539220965820245067240641306645124050975575414897383622101762315063669358113177642380117063138796452433098076188665534950810152630825669662891785250922102729121890296650038585330310215615450523031719863274638728846683826993561933750205730338222825352157905853376682246632025833751759397028671970857926756844565739049943563609855401446262977391426224461696543330881783256322476376444807245597943208387333633169397506936192593286735683781456602986510378061989933911327897966850728802113340458586715999005152303992436943803017696630736426940573147180625303101925261989073597255022325413324555187962573938419855842505120866893685184338685482162758496183742308001656399620805762218924867866135201326877694338741490644592662794675159132535322247412926221612910172170326610707787674065736462266917780900923130191740573164866604635074595207899254557785214168891293373483701375084733702735159015083333673349188702660256408253042625811306102029985050042733057177306105592441314097088379965123351547158179428394567281243555260104459775949255449967251052558038711742976931921262383991163120993288782954820924262530771880713231581009664212785858604473353066527759589462319758466563819579449967318988378854229413350196088725237186707126147901063402076113647286206300931957521719223320003451787625002281954138434669818643469825983871101111678687039675800053466137517424892869678143647984833691800353262891079432270209550971758564932264587214982784301044759933484253830094794876057941391412668930435523865641162439971495632925123727347805574351791320088097292419845004768601743094933146655925429350498287384776211474221797774940269340742116566324380252665029631613023540072377849459007752401421521808181781875810572393638815692499837152986396847974806921018393626319481196994016169001587765391673534443976816011879971788390613796270553093564731966510385966066477984669356039993654023754257440244297846681069018861637958919267021201741076724020102773701573845467315496384841721800198611663492517645284635226610338675267751546076357586359970095756901622281416147668483215954727295610309101039856590425721860643255978497355359174244713291538611915985197782853229351569523007580420945616102041808083227838784631833721393457917799287796667929129403446310500116124615758148846941146067067828267167012645994389756521754671844519076088241536770734260957123400256461139223520467907480405695098970799472745737938441928557828895750152123300648783607436828602018460190111139411290905294648465679502457389899508866654067873732624493003899854484848163747840163127131838974590041492265554588905778475160461293956455179329437608953068117243817618646801712453184902841073932474102021812511823278140875593663093586914471172026011832425906162099276080847712041713690867425571631774985911153626649681798859907672099937989606567983291399578170832434988090612622116569713244194034656502077682561252840493835799279816994808321038702174635114275262177876012461875755565230796506057522369670343843823464279485627248264666002347173638981014610676992181447822950669404400633871775410119013647992751176675902207744741997833561452699886865870990092734933235261434799861896263128086316420275189899594586330162686102689172950476471302577595144284081178930831978594751393103899615042196961900287297267729401622664597155189009498656854903494187013420171285434933071299877471649883755903130416480200109309817705103596281159401335922563571623022168873055844694694420398426544160945675868983054496015148148191393535584072431718097511339964822380067583074353226460393693470958086816964096261167282310779767647066477802524865476560134615843079080717540741549170796237753122709365574848114332097741536258685061672652561444358913873844590852636987941347705214038397579069345834017877860103310197520797567366527498732244090439985724323459266562458677043970162368118334200245010991787498164037298003344589084918418176675051194507381627604036100938775567171754406565407562784525422488316180317735071674604694530937762600805011201351165450941994719941640527759986289381375002614252399438677338885533980482180076479472935128389634298463126536676816974841082658114115723789120740466219791038506883326035818831050727537426012011685346938280716934254946969597723087735094675392650592800427090060797329690121197872860908649281931510660583016660661370191210330961358732836839889186803432304631623130660020773493765019689370601318772151950313989041174154366658152839834965467974510037518430602733584604099382651680963557168871337376176344782312473532866790232677354062017637653317176559866426998306477685189064210611630397488013213878272334326516608139867931850276669415998203109487205928336089390126180996067079069389571487435737884436903494428627921233747148468970469204274325102500757495110770511046535884720206211560881433347342982695548240110497907456951640365319068799267246786487332079160726989498884603876529287657908115753715327085022731036337725600235494868941803096800010256401858845843929500200781530745761655757364589304675697443236191464332691123195063790274257274084851296221303165324250105799850141484450917150629006904584547231968874889087889367380695095177138535672551936771683515631672074981284803137039844418375380571470124182144352882303091687520098968193761135484874091940310768123107638356697700484407477914018453913298898353392196207407910523355341998341216257443353465749483303282749308739856620006675014020166166080013448798949216859567051165263845748730001200645241748775818170119344826661538569442640405309570336002267654183444406801654558048157850711097558732769690908762303818835292473511021889367601832589754982005319592687519228311940550748785844024338284968317423655803575765381644612498125491769295465662708569917840652674032408992016214300369979891281462558064536210278030798221853108980513942032073280793348009629605895897380484773898602883287470300966202902405190660274397602845585476155105217295745195256752840110072251109642132415924604835859764653049511639163067618440921394405216944733030488633253200023583112131321655777835734027690704063814524754865416826514167712849840769950041477279497458582002410273266329888760413021719564293459358590128318560299133426619904559889215072865432263013684964911688857918467877829505179808317335438306347440943211765179052546435872623140713796402612724387776277703023321285871173098809899406515721100873831542392121122099729538078074283923938599464969571800848993334594643768083655945153796607760496402580246942128500310379243352297646727755364561736869834273279874159702972047284685498403869518580649365008910479976146813166266164709989120957893918319864938285993561436798497772089429249864419717536748348134531181164724994407974615508178903831295525167417084489356449472162548808874884685336578489408930139208748675064148178172297871146139279565401895275825713055500235333810326001478010509773511513654829638984420744166338422727774380051339835302870455851069074620574955026067736709902428742909139850394281971336418049509892117681948572740771899608660574456597423531132362511739031704603463112038117961559900436549032687493978605643971111396661804778911108908780067412780139835939080357883993721491845599985827609946802215469274859141214948721280074673249452061179133998676922275506516837518228833284575543322648950864376143764717762941238526898603902890679894506751466752648979466060156045152611506875783285232224169170261860289112970962019487846407816279104800682206805135955014234146206846404591000281825801976258392422930961540786501782771627392061842346613020832259819514265823783945023436248013504123228048670792090306622769027262053891312852455824025336540520019743115901579156362174503405665094690494169130131801177734642158826635770091092638598234183155463358517508606011089752996579551421659110948811490614977847117211146510383906101955901271046954602325074021223635692912728403887930299437129367823674300276018436621642089133836320054164574269376421069197108173537098183496022208344765019789984774335380151711027874961798710270061006864171699233188975355054045718269199538946005616761931931533801945881722531019854352633072186794415122630546008601377205045304265993436085366536505597156509009914717457997718428113297023727088894369233582075031800611477631079674231733589840224011372377342148203860728419689024395421048261486814404915793841320627645357834826499170854493507800818839473243410860964230260365513379009969790341312242776907608086118598653610231841326421138418139823151940046774468602148395423727562119227306587227637624404765461298717294953846939019806232771038117700434471793526307441124670477579492502535509659132783304063132850909704033451266780589624901317483947222193173910994604782725610901407520696188849273696636053668261111612177842573057565109108631051465605093942897485976620914623334912025909701152576967614319689739712786941843796873266979045454557726704695826864351192307414600353678279263059594536029133838510992681969635166863058108986809279090302311180836605453142908460284574803817299310714020055395851378289369663011328547012700581148811355342394755929302550353342796020379973608445434005812974980416128727027843832845368801131832317299495517156900643161095972472515549895743170191352484760024896023279747365367764545304402232110020380636559954462397279498967990396252907401822817439222378776657476127102971157824420854411704647898885020617188918883861425841141028777093072974696259900190598616467104817936001011326909080598049249746332234166309660647565743049336428777800484759086639057238722192122809089265781885084615322412411918271476408664366994463121295527787237108982470102114115579142328775479720916697405518873271079535241958108536433866690302689649875445759983945204378244356454583767918560683978889985294963964780256428301672697157451844771424053799802886082519477209765677995075558668333172352675955203220641152857126298691485866101949849245140940475785521148616404257513715531701855249552368247633820453195506406759175398390665199008145514140682247823767194247389512681639423837937750780202199809814725010150446826231377657735615954092874153221959151665962746791338007457595788954100739884582971063846747622025612740954518004606108251690403335856393875172537833387859928145854188112037931740095907792280083044729679516412246977867707384130493351767759720962034035126401683847668319441823609562356903128648578990230396578553705802761445040666201773599667748139541743080455799951983998668191439395383523708827937085771025913551816911652956512893866767705744991969950700273807357097731282645429593466515547841717552420050670483904276941678034398434021182302670539586385448708093847219748879635688314078706225334167862454057820678409259671646528626946457904676118713166632138375927334479428548307633795623410050146612477741632310657794205095547779631255915330183012963614664010643390148297391625354371122009135311917090913444470054233883560598610379540734225402334188091144729852926232557335452601109241519057429660096246555664246592036099099742341257622838113939452149999015361623312194153052668413956151979361989746964928249202829703847648499120266740342898012949300512131713185575568220993127705308438827717597347826205758400205007104781228786845997773184690008347049007524979651222395427020623901923287827318210629755800074438935323277575587428285024067574748467835869759399085405718165439566397119243803882710636383843692073434169419019066006684885377582727605011741168861046548914330336481504940294298020396134187986864566553992221612708095431239224312749643107573366115093391944519344082286055545168903895201694224556079321920610869710005999366094838288735677337061963096215792213420069653282774294272439789273872867805557681561700575582668040885278001126226177095043146357968155048720851512507797465967641518272659588779623067205410796278406691089653450453111087218762409874572689791301547466884803562477207045696392491850741294770324379046039070171897011784234272984219187575248373957176342799625457912655329786436712831983260974455111403464615323641710275199505509496725880072157470877427123292596690499741604525690777347252310175130921555060983679045614133477951150543312997926723609084410319653493636716383317956915692192877974910495398950402521519364100947473375817226411043603610652020396127324680648128556517992822016454716901947390657528248473992089924565726394941223798046822876403425475535389707411079978284470709755975193769794073695285156540358461534959203481751757203216119070427079165781800102507177378676070125510638296183127344019602156624694261063958343438369189965034446663162390233322289713256179718984421775689545200021808678852163436806428115808813699053366653803698588643007297856497284399595756448350786375095717604940637701016245061102476095271598132830207483444697046056519722870422598792017078683481400067264122111020659030485671764764451855493206416909777456163941994363845368429381737905868818345666049480451174124164241107638147544394239780256873630731946906305918782277011766675202224254584666097130496587569002345858348154117325540075512486113953218007715794012553613320275891591215246359828534033514259933716948344482176650553012297741484649814768387715337010623147746377327048889586304030062328597997638876235680383262157698263600658335574922453866709268850831978059110459328287336648560733084562943599441978045379726297158551988823658785216676984039854935390449879219012847076225255899528931749801652326810460278165329719176141708312091148422888297000801715847115504690014938480775266083583828581828535691416295899252534774910143086674713185065287951725507655647925134219056196203485886000534490135277372971901709591211276922682198096702212992299065935773564898052279266816630424914058908710449762217253163755635669631190329538532415429497098087095313392940104249777931511060829430757005955595862825787864303151470891732967657463596828246998195659842810308173238509841976984967365345290241824527198867720319788345077324422606286176417955871748444629478627500773126176265432569883285855360503282325080209106974887065192333648486990549400047404482006332995905491427280636961312406310452600659823017825383225421841793267197817420341949184987457810556369224563051645673764528602888345550004944411458246739124017559781526629942903891815207172176334025813833879240625369244361052454779618617592538069618910127172322636951641210900943369111762814642441427400406142387737670068038896632975383240276659888348201038649788452179312693971609093922941040988257208497674923957817851083724155255444634883229186992980200132552797146786713476232152337661699382436823012019069713864628962923834673851145333787208022673567139405455310221655433376843440994953785288660587652624878344939003150345056413996797432463294592761685727444752093928983471179702941732896402697992098914679707826661965759979193638179748338627177340814712025600012596352660412288666186014994243919413528634015398754045531055205504594250044450056618954961612074091822419669628505110329224487354962701574048270502484302694260320393464166037317054360696436011802338172574664806759118226357613644346677043987057628151564983351556147302818942785219855082881082680502834133199151135349941681492846145303110928785065286309986215437639386472846892564901800724345715916778864488648065141403003318533138460257831081623574031807073434893798052133297207879003963563500180584518363507716686281113628618618701169255117045909326080000976763544043121996417745432472937760840436596485829290373221573935295955215997948942644834659330743091632662744582466351920984812030679491920843677909253602370629665603068477397118250410688053090343133724669457695107276778517117139047280157745832084648022573609702101012455766938113112981278226750487456200869973128553371371574829566316229005317152757055996664845573919863315123818798118716964995002428126626581571061275138868499112199673215631158990291855095260449282814689546913392040791387972244364336296636129143171529063324049878961295204466332266490317490636948752789729368659560551140274593349541079027344758575515969816760843135614242940758840913213462615678828736027564219402300809095922874585142024670276383949608925895931976296352020998892817430926873458938526423376077385530700671168955295059234747318814766863053895329240841775743400279049452543326926997074531301353806355623347674708937641838279205006675660123280294980992427544423853575612922751789662442628979453426378111199736928561365100551862630200289261810576743784703515108927062783880241453971704736673508925764031071172332101353173984896977665037160570873217563666867743775387573504476280238490142928569581142599721491754206292597272042503072785274991217806452509799440249363464293454111924490066008950528047909781830520272475612104129259563110602598953725270414420123316027381047899236857219228195518320847013388253714355643860169702155047677931258007227565482375930861971659781167265755416312952829023018894611089084020790468093931288621473834695092160659221700814377828201180029422412747431705531564014016957864283420716579930033252160650267932527310918844232701777691551058013853760663415185420601956503002957834503532873549007910012791928046912066222171588759979399861739621507776230676044901722595198133053523966111903121987932298659513770357105654611784424280772203228307088210187969096965729842448962777155759106760354602844601243190158750246208110618126789553342325416706195913394495304797454100601766162304693942147794353686059821895648284405212780798239374154430821379078030709754496020303487493081353433516085297089858157761113260670899672044391408307382632475248219924787928999716172715047038393849259806271469997977271882522402917753581175622188643114338851144879006889379055052809898810701123086042349782441510092682583561847330941839940140005376062847067492555238447791269871380444613646023694847235702596151303902299140623768203547760928750721919401949706199647405863324673207604807074688012489547043511159384663114696426442529309103721257744913080135097560249095624984970503039198506728804192002399584007321752390195399723403387468805779202602412251677398732857511320023073520350029208761015480961101067361036226663831304950348581901134476695027171000370961231378766868151202864598714954420615967437911801816460821166795671081762985004750222352569636417091373921399784692867516040810148530288985209709961029433910686354997820775693991768694745357935307488276506287697733357045591662564601760393701298774180730867047832385958151336250243845787475913864546028602862863402076209724579326774599299653882279964009537568890022091198506186184929940030284090174879968073876618999135941616596711726815255099052493494077679109200852683506693272427108531246678342084405476950181065609327384273062930182678856957708682648368838096894763038323588355492825090941588245987531963525128090950282965221201981020572368552041388626664141552524063986663856356131513821767224041575490429435723959989999208168935022767661081534710694262108035360267844170937571362537756098734957186508553026191242041714554895518198609741766484099895561830431610338233026354732446138174465143905821940143228493648638361122894931207037421347184189986870189291741560022477926609692570325766644100456409796175699867050474329885403965715594003599813440596439881332711440058283047659069400515322053848253392038981795926777633710556359657927894719667701329718261246055814563683418344743948801458131938568492033671873308180978567376260226701116869027713565926426409329926385650245577643805219467940112388283490334661455102544946269513504922519911650436165796905059862972977105188537007405555077292811549998729572758908889284464419375765120811929806970961757187035222880664375618927889895827289047051409822910927803783436480259276305803876987976445727461504693248023795651587573468772902609353063986373006694963071268834964310164157307818242388665787661775762885323816098239552733295829335508794637579569873022843510731268838921926456922313322621589044475501852532848744042535394290334986031958900503361032262320276985077559745805076181694168356906353124792874936769178058431304726140829621435148724823779565938933542111884917322993168672784603418751515441139617075762861465682972495932026403308363794475915932136766327745447287979079953035922193276165056178104026960404463929507920536820848968510261200629022771790808901811965792500482626059264434884981033593611324879972489817780831641247816117414743179064947865457384944299367055887056436521779990512945199114012396027965070111440656003541960732830216196965557016963996471421198556198891085070340981820314882461283222401782622369195676673097055302912863197609342717396177341898233239854334491904302891191394133348334809861280146696326320845423110007918905974130706985660905814689264516522895412670266206571755354346178886624096366011811463667906942890242604958302842798256142208643164306613630006923069185833850610816425391465614185102656563734002633642225120635277599328677693142146906755953329308225097519799915761476471500181598860983110038076481878576176359356402523679168119763783737146308966703073068033124481555323132469966654722549969449953047568198562334492273597357729351879003435618827769490856965625060514315176256241856507975209226212957474452645788921202328562907636689419027269276508574582202346487755886963250433967035165557516879298770746159407990035004140423334568005239324929132205367288163536601059950023487251620161796436263028311742688916650157003069629512740270715824800038961362268720090146836509803250429301821183043264605960814084212833210376975124843150175563322684594802970961502540632775693808794665693805829127074619993691353609737740523066289774839667865095477556323622089369801710859323551496753694843170105560067993985855827503858514514761788076260749019287885647990395704999928114235177830005432931531184035017483762048420760390588540824755640012527395617823664564265611345855506253079171913370628369558237789691342865047767113718298196769308651032152838951867436224119732561310077846748818220273505743537462757969620323135651918996416709355717385591564943821246692606452456574266847441204846183990974494349871676338855639814092459385741988865319124206763236737699807443322790238274629637034624544112159618233569630019088409662069911596755665405975005813176111399630966767987233904854597648633764768097891438972768450505354544842097217572454788529555603847880695929173759835429946520990061981205521561262629967433939905510779426735382205148005742697860358181069988283691037463485002396893275176238633717360507656779618869489070868204354230647061728964453919404719665684431202998234904809060851476900068032127284382134930993414281647596146606807157471297629211857237891300116871358557477829611455118512145357497249535833401444737423497938332440158961986853637259658695092111842817753123703844894051090073814588736054486175373422815689052207727526147285781088511620777303524088595592287661858181372150227181688516477752129104185904444579700811275457707276591723632186755674109778122173984249535248010875466688833004848332743740727600022437246633736508680696191460072190350167428707583559969825615144867662458569646102384444691346394193368768285097515617243752634386174931428552990803277555685793973264526485866132532587521322152841518758880785316957010308946315914552798838703009471470063029094747657748941714587262395275208675258054653485456641624183406862785544881841993736943281278019351151028564012826621342954412064241156403453875924090787481409138984660363200454237137930547235925920396459607173407845344739908685016026650362375599395151882392658837603118206496807028705243941025505278721068061248122591499818276363919655245791657052162385750470987066607516306232459643322107528867493329959498746177885549626317280094103294624584117646953468980933442348325775817659769803284160575148793877086905603739692020261809435343561525335173376907336657442219425123447530855968756249862077922825640480654959022457782426552253461708157266084155855684139015101334111837615554397898394997925137913776757127700075973318771779997492849796452960177447319830317560716778274915590431588823399815908042877397670986856821011363828887568143524150472015762260807678209906698212074421141027070556682967893778228893610316837639884039327029305117068736912833297124964134098358231864160386723139023566522158315885388933004752424224536249720423458394717715247452475344513373789084360235866907478099811742985085263145165389220022037789918743132129375981952767341223913481974352345808095672930875715844733458424075716044545998916315435085103133993636905013684600077533751780293461964570961343278997071542024344386156500303686231441793935508223612557883149449015289768522836750002003469715433399872448134496020371562208761706925791811481416082333965732732303717479771365471897946325179558084861386597375390480309986030911968842046569423622524334134730141713067351570004476326935687946913267792081938011222915395080593914150188175731957965655607288077042042906012246373740089020028958119301332808636830609858321336245854076422531026923677662702183547551329574764193893799078350676825986591520581643841071150599611925502702248459893907351473277125954435885746646476705712585407177647982007533457496257785805958650814057973874233267279518777955436645346797306502542577803771898926109176282382335383714878382278887556048671677651048558420300180226223129871071804514270047193857245480437067319186113052005659883598394843087800420792370736028011485824320984787412900467597530728810286277926113103528288227834588571225564886244374491003177484030515271989808920615056213201698199136511295096939948284025566924766046789377241791586097391817941223536274335487198969076069358175218163005647714027715876421922333036444760878850398386384395316064105748027639767854507249728320359068881247271737596074053995535991465964399658890087224322158837051687626592577779568181195436003230803021078011322149431009518449343814852904551872034501627024002487242353089119390458243220341375324528240596801244307927163228539526803845467308813289846990386870889879760726888097995182085772955359009591382736859242503196792783684392274702945724940400417824660116398805305177438049864575817804622543735002706873557905822632208443440333271554456879250816528339042289769538207354001039855571399742722706089713014150312498008690282718661899238036729703607343764072352708867082936470857703746949310635788793960980806611271524876346205022830706851989720244333276721793006785510314228145164046405879954077062922544072137337602756042648349388905388071317827175294036724469053222892618258953633214231995620043635381707192213037267229483053940334198405922589047351758157182856188642258744734418946413424289277812253907541898046756066567555535541314743993896170553433326180923760878605878981835064434382914364178547811637761515771449737382091385314460545716818456439397222690146602464642614139649600716222203303288638870728436332350502122315545006784271247950746494336828855267904786187422012710042433184115288676716243493835495796007227048862620545117177818624053355859040381616259256217202468919350008648282567800216852244292794652041608538307508543855547374410632565377653901809497856725811555355038230616782233939734316997300934550257879063293404884518321378805684420592013552548978633506742425247888200923465753529205653030429357117101507712088118877334704763815583267049002621463589536690934948610555490217102539544631553573738045842158830850007861178688187800550582718597838013356394009208638188569126427548034478634440937118363980441053513474578657990240847464604895726930633457551947506287583242645653011216099374399404317302050939238658987874189470281874941636779691984500284998279049883293916673871006684464703207561970550379382505061725565780033188543075154917329144388529663868182150820361936765245402767737894661679276189634031730449870832826242128116337255719086160532420938223404931944521320281051437558156786185205738391110614680679150198971179563758262530497583964957662141927395584792807909824767191217718182939706561258906337070739926461935051592254781061713806838428734062317612703013369370939830756273738931376170070572203592277335259155822204726698358174459060464509576499786865984271589248373568994770417552997839621239618105154563356810459095552459621184634280922448671841089970670528863734434854305546258254528330294186204702846187064664089264827023250496231706484683897729354760499214651338812660826711364065021882026874311782788253896433844905001320723546870617089748360516556356922121062157925597418131138066534416505695787408175222731392920327223059731902894132099638758717252704954260171640834141010835547753420959631866643081598890186284236401231239722773620057840611686405277444511324262821551034951069518883829228284312159631561787472748090222256358270740789841250259526735250947914091387490778590491416752273156694940752588829704373244854786044885661041479769467293183537062569108452430383017836146189805416903823846428310304451239953198411191345102226446705149195936897866725939497165850864337866503812664518492919901704857894497860453257314479516578142600850485187184894843806629828734569864869171339016644372570017193210922799251613772819431308650390431717714473504465971266283912566958051053517341987237132468126857592368780229841757130330207417889593644289605735627742605058412032789302379240256180916465945621077380319096590416264597075694809843509536025160429432590420044567997464040164525472234422542455210126374510594693377027832784670987465106598140371222437739638192754983081007168267709978978347672426122860287819509742056734658867109785035590528398894937957250722850382173122950575695541853974831901716230421376644057188318608493761698923396140509279895652185640462221731345966406702359768920633006203665263468197519530233514320361377956990450382714049627392534078807127227041401669932599866921423967184761078439700411002696751707884667059853045407379948922796467638209076382985814097780215014498904123941601328938048275606699990982161067760317821396056023378088343809550356783187950141244516859873459413317382281581357801959488879915257332112457733540404825033805394940614883676600594164754589787382097539443200603229572743483810790032760162014805081469437280065764829664992635764664942710101456570406412759643049159630278331868206221793758207200647548508690551228514075739331118171232790501542242220428971764324736143035413962080789215223419951697277932928914180790554761873082041536582557474432602064819535777361053832452316264162662039089825875204771136379139156113578879851928810701523887080432691145940486029311589523512217496824306020419769758119018043576013378765691828074046710685433462375388316118661848401965263270227233410091490148473118120044111808076412777785883369877581085912823455580088454907183146087635255794910319426942246510529986305585065496859477088613121005384475602388548971169260627076417675059853220280737702748609010180627143988740668712514436316399416322648081185401128336741399094885967930609888812090082293790876844957808868185462439551316641091140206856060084833135761771736527354086637726578318540530079952983321550403749204046694783048886268630559533868544360049023819862460387722038927365502219610396767948859028827773244759456025431682213193564909833399884731465519889180334421808374068246313997550364638423643397034809072157278793451980862941382721892290098016910248252963938464642655838217103539040846716714629411166727949484768422860220136688197028308928772544168943434218685981740484334478897754559013191979400167516577035968584708015477950819840093050347825644348672878042329769875663369696658544114931001074335749656488232743960406719674484913619860130406925929428484259994061571709044150291023430529463279083130403859945641537717205528130335516655898867404125530910194788961953325817405654567700349189966359938257756014308187433435270449080117376832963342691791261769121863553955358207222191736757011049645476821840667128851892675837149144244158407295910074384485234855239925022052443660532647581853438561278847906967505802645091460450613071753250702266294592321390327718067405890873907610825149658355813390896688038273537334486169232664009300609411080285247209563293589919366217333353131199381050340454054548405409288304712722529634199739082347918573549908394531764138165071346118500936521704952935442700229147402884410312625645069780556509404429317022968633906947081618605757872311735199650694721000110792872925102904147805854437505221022903428890947592728957920460437187892678115691875778618944715510006139723393185540878600227191960817590821448864298703975352928996363648677824046445170807044185342536677971592058886230495592017836061572572349617650508639063509520528725576593889412798558096285047262451597368620589094105559814838850637532925645518899732014530586223927696115683950421394016672857056690175058915996489696858621127961942819197811696077553396881341216272635572793246371753187035597240053612638945766621993828052890656277818526684726888133372936485837124710959575161042704185262222973444758663553936778033502873453381349467188628257477724590479714015960132320126642768448518136792605073896182856602304263046063985975994078518590866808330037986739370619384680278839645172114582752252195725673892900394728200580478123880107093884692057581440592383277514645250181332005648743552684960615111858355752820371872614558256414329927526574987792338701978767294951976264245831374741167066687106493338115681719573618547396319107696363478495857536945778579352304506725749045712804210873920331745100944067534696424960499892623819797974340441126410154470738094187291543873027626980682785473169257355679877842604556336397397656654761125236465860911770908413890221761863113247784502826373786241693997237277648919806697521526598993209524637432597466898616474332843571841937245539363106982466221078449730651748888048368821844547125030280875606901367177666211593420563999431367698626768233803165886210523734671938122195965077189982197713919499440675953254563961448989571919508153911142552500936759352177155074065438713515692217912093821687870418676382149675367034527074418157039272302073087790088915785011189678035103143474789402678504275499966675996897942386767064132261717064996841195404346245489658269496786024450753938984917255735525858625957549384841519719266775559640129148368325163186951331301164188029640406311442185160089307032289649461421571714948725653629299852737056274592668912157680566274188489818073313207635295434821549497469447048420280911212478158093470531044374184638047718254972953755373459912533481843326747408286549919079704555614247265832648427515495754737785861045419184494979427111554015101854478357896752650574449125012215159351640308319321479966990987576150655949093414255096880242651875075183480961304095555045790566266042026605936331436278495538938836483343379966863743577015932336930906081604286851279198501710527681468229602805817255535334441788067102673628598379801145870840356596283246300659205446435458165755227254653180573676017856324357243905122675021177165385501440719437226920947277785636522230008252429617994916333326330398231334737461257131002805547705370744937891809773410326988238239949074495146364631719884931184023984946185814571687240315618508028707143187757406288289414509182300319606773908731801303559543333818776337425204044412195042276559772364438587340547142689727637364056930677471220317137324020926524693891737024611513083028306811981888193566545032487690725016912787087484576348675199165525950274110365977024085800577263088342255019094393887169410017785875558757869640098467188341118216807598975890498947088485176706346598414318737453393787233681487168588784701807958869501085963090487378164327298445603773216598081996935453604100973625520443570033198952411193844594311401626769942680712095763025907072675044474160683891810934752040410303438211481781477567051298015157881255985564923188049718281126083711147620060449551540996418166411885756950410769713287924260023417530017704205859308645283526165469742417906544113770463913599632164623679899182394416218249566529327760518697238473995922027186150213392598315490647373697183928889123939860730715848571233282581105277105990528026552053152970032285325236135245282607447072272586202865011852562857085368863255296058650036670953749749861716043414860850794186129486377872321196840763008124397885075407501811484747767323342263308277920912232119004402692380675846228309501137256683241533784307449179691787938998646988449879454627513026705017030853291933472197089528735246534258834087748990098933674372625605304385401532373724855995434948843355324439997984443936137904778503487221850258645086686216739563849290249615504052553725709251050614697850397939327899463357034858015688737066738086058957691014836209230300537207824678775477762900602235378388055132147001258089221960065463808691098146115963988168501001237048917783413403175928913465135836129007769676167755546888916886779296028098087314792680074079665900811658026907498396267845633252107688708732755627805635143386455334285201138362093783214394084697357287930705149041584771446673421534977200160857443218909165209201398649501266135380480769959264038497546922138697995218535240751334221366641081200283974940220329563885382723918125490018354758601723774914172583591786451929178928856976991953440126092447812335756261583505772025944161791235350781055038371496281822798223564753744768747098106431935319626380777550231630121343473839138365239904102298482516708296594864779892004172185068914146001041618097690751894769388934225212443228366363197047146963941019227030177418267447104473442723859675212311491993122456764687316745745769652347066178008554713985168642838734769016740652321392094335007654871966691481856949556783893527400429460864355925377125069911900786664129570506343904732392443411710103305164729118077740381124854641586026361690386446214382597107342701511522702153957930536621239700098099649542790426218893767248149448932884295304586999308620769353433033888763862267133814399765212688963639465547201388549507454991096114663899920329987353427051810736977571197114522022413925328047850161007722652033116106938023365650386738374267736891086431262748546928362184588718426188969180476382417494373456270799320322185925414650988658795959994040044176485242183407064809424914042073291537462647358461011303349518042243714474123706046823230980854928881233807886328625097613248486110525964409231283609177458420216410939379323228250308015619345518279396429325311634003580562207767734555935912045038941708952372034812626342999770995188672112184717042790012612467338459260272926757468259225962271645159095230485899375412927106932005137123850489381932643002301410547736452252923634969492614088886055522840297415632297425068744164017864182203784443083537405900383508385281790611133157680886381169746525822988107920162638618370972258188159690056166152405346164724754185642983690822975830369116867484743989750138344133267161409719718873562522984595138356061607788401999622998506301870729047202703709339956178292107403958855754214931799598298530269130275646448362802273410856372491873356346691391985474976668175430593266348480499700984396170400181627335298173876018823523418823064396659833679273020670497384448912482140731611109331219411857994721053987795308181245403108825820915673833760784752163041205675936424589220244235548129985551099496489622384965232024041113634444358672163720582763536741159550913917531905484053517389812561076022956867321126437884896074657067813082680636229070085239216648086984277229086298098802476181000493216348016109849142541809131305179071989584926350521897651933820245189896820819303507651790602507992060786921738429493802000273969712533458913703666004573379389038131416012726590946249251261595517398223788916348741916681382140484053448892192182753881522163179174244667359744753945003095532773323334799621380125199801887570541900968036959096723250963230486829456333817231276999899285727972824262704197922431335855553259948899353469865863464931278911329533143664017848307629010081801636174781749288106800878126586963830586855344572677314973675291625240359093506694751157278769052576353547842145291861203377763578691765373747899043337780854070866593264914443249431133912893332410091629218574634729131552555105001297950841869579192503355792445006555438776413915152576877079177378895276581331533186354990781802951242778699167726944525065311128369662404040613878909360657267353291497509587787341673755517599869884778319893548117400925741091244049218390228717861171934493652242130395045008572153948658132819237030909887576968493460917280895811858904533510170997342274731945536297275370452257901063597171110325989465207598955832720478569366287458634694045050217919222701158338779304098218290220067176716194522695175006064668047714500264031039862667292882252216122975276084322186883843238651670604463616951401876136532471895573284956126890334279537488078642115067045047857609585778883139799947734113623827944510510249116189720026255122665737692273036733828075373910697361789319474212349851851529495856505332930480821938760178407858898707609521969753109123990041673611165624744827626694697528852364151008078335841534482099692819695937049336675146799440633794038042484057948273033458193537806397550470843113732673780923945167614509105378815117397382965236799738968016811817799286592042426749695895764478096262658112075344286771426287669325412793959828292032006639157453907413083308564018413215995268242447944175170507056790285704341823311134169711323082120383246815345959550159897923627178310404239718003217408701916321450887228552602039206318790173867119334440252340161188569232894057251861596311493748896566498971403214387761692816848124943654490699403481918719681690098726566257189724915995829626916756971485027991467489626435327763123979669607306119035612432909928704456922251570925127793317816751359324217583179048659271242483180254047217237519793797802027092213944947485267544000725752449517664895195644391676802930036618835715776070382661431656855895033637511122430854118455560152554172834955085862278247729391653537094855309261533347272315573858676576682447217853021561433061539416663126997814327413297810084236099630444172366137008346043065185482157230864308585978773662851178376107455337243960436312170470737014003989214291696252888498586400823279452255191495510907303820466350537583809871853919948793462491186168092193574919992548837127801367420978159488884599740117983483526003032749648227600493544609731511265415416515591270747867113919990909456127169792200857382571031968596657378542794593890661916711755109208318487672977488436486510608756138755042633552620448155653319036373100750411042701338244185039905993283797101489941752315413719442100249852442271858694033920729434747570275329177115766210332996512488160367185874671532345996060842875779211336143286489840156227677838425615331178882470788505588428406324744048536701184273442817126637618164710922034269349077822795196688753650244038332851427126355006488635306659280080123773588528481487251371646577462648083225443855049616142084411752624007521047509008061142334487064268883321691790277993790633719817277915137202616324188679288666444069024622760446842139230300037610605152244947742232317350401918045322804390054830770306622539587473920536338879460679180685209830342695345481362310832795678876845382063666084036702396759974660328121615516096516168452213163567229934937340487346109323187746866109130491322766460595693866385776296296078122478293504786680712795367468416522668902764421901123047291221402302919726563194398207507864695771047136601262486075381481198200180887306782025048889851919790376764580874095415363448672267317400954518777109948624733875697593446776778834806106001347342414250707555202111104169750069357298280536977966606905564462498368334102987901576840448151646599402710356474897670005302077393417982024754605265515723128830986760730534035142710551230808711759911013032486978019582367498246496525673084272864505127970427992181772774497963201771383406779849578127884452243925692030238515624182966682704377351493752617885212143795721241089083818722428553664968704396021774245421595280956838687166605699744016370052470358965198503244481994672815596493508433839556490223423343991831283184938154765233805067755791802271030461841136428445363172717056956330075664520529160673688527512709581088120859515550904853455289052310369947564486159081232998863799174466696552521726724462504747590719912347921958110374757257492465442989647089541870975264358823593852056350367407785829753333056394768017676597414886784180575630540304632283756753734429182810511797990401796180259930168136200540295861486388401054335665240636030019356226909333794138511698334173017662380812860159964092518471246650513519869945192940785143521347437230408270590070844223681737350421392175863305125067061840425010331454825150725458652768683468063518926149987319949844818903901150126154990311650904455894299567988677944765588107857717031082440716825406433832889498662908706223812207066523702753032013559597869620608011140246054251522174213245487426399626093128030129018427317506594375974967202953607395200256098946481135987542412776555175847715816392510299538779227373152067612013441832153430533390510389770480698179311178727200050089437726090900163022202364373636564720736880099442331358731566568535902430240813560996715871921512654096762051918312690127502973795898989669004878652409818959886904036438171100740623182390128378124341655519230305250033390072836840165749714738751840147435662065323269416949616660872750371293983523616216420462670463347576641997034255086579733258592484488417117136283121278636822173199404532506498038383536732042997144706104252707308048383341878084748444152719114611394185859038001819302534029959057151382473085035773398988204133735871554475480440352801146255304763468438246543592387603321531002155060410450587874268132310226357866080587892576505604866090827091089929806835608239921235945387079505433320542576324343970103199721243274004255688417210970055238190384041852970878961200087340090348486214486464716429119478597501877173411359042059208127062689321899219496923442536812653278651866758621565529037339228067379112818994481509935219985584014324916014982884685460343319191354820873468052971639258570050018911610178983043363175205323124461342093772011564586645391869233512517265127012516724973918504832607336490181884696990984159286878083405935989731647327804992465703414443236933455434673435553188574065208399352216685653575768191988210063850888590812151212483857192890335938421560027331488454993040550914522929427435734535676501463381350702116320229491339789156121639226855900647807056180358296771320878732661801387046642935698823049115658680007535680069557966997122924077235236340474177398623911421919547416596670732404103363735025703116587690870600410448882081474678198378268754780902078395780999745240682271594910400159011447257195781447588578785325192096618793691289589900081258774112672034177553114802309304011755200248147746547601639193439660456784660961831814697694999627275648981929259118830929288188159365873517113971516596012920673442863983239263501929202279895967356060449270628749204023683318927220988692780248481365892763798265600728425309704404818701694487210286534558562787947824768941862459269270664266087307603214706720331657701432207320350011775357814236201445288891563677443300688145316053131150114132900022654957888919926306480522659185704040739669979197224838324987064870396699875439668280673433476906129600037000140897503338236043539493761179017604258930164462283259186046446859833297895514396151539230671621408008606199038397202342169432927295068860971778639761202449908796305436603047392908899756041097743565030246683964593898988336781023270189172984853620341817492525204856218381205132418840481699059139927090995184193780388031029485199331788466656778338960690258481855520295817500467074126797406069120849005653789409922235437028525159199645620368668456095560853513574815532390274243755003684213194121856089575569805863031950633215660929471684258590109721631735226187417087705604024214806111470250747476786795057147616569948176733064838144857890312925203456297015619692473272678478997513886110858386515539464871850041680444912168818247418389785295919080259187036875976641574870039054112381667434632298634889050200601231712278328698512284642113298580533632743042636219535267133049431172170099933761792743742740145965755801006594215074566955410030389039605249360251834597775374301750141137217513652304444674320345349511681230356222313992311954274071262342636679247430683385525400075956538329798756410158425850497748075731630190743993641443116609702540815060294616820319120066768314167594168689717521586792972982953997623974424609522174548215867191395787494269675112736186271242739549470355974240464810503768974166758723817024784090361388293584740149515471102371473867116180171328924142253643396416230197441099787078653757081205960433298492025745312113111149069680343416324769887988364096447454509560382891638250274892153606147658290128771893048165021580140110588016908628457458797987863064335660353980490849398688149461946147675137649592954678025718136288896115318647375287702582001795149783676148951649499681278380597680605385215259990117132231206496416576083106854161025815224127558464878370146240927015745661378207788743305950224631385268391579077210299502249360475265266762422307307994199431016549000558629650296601864672433425366905373765038982574309012273932866679618961398857174380176806342180880397220344493767127997566377066985803030083651994984132765700984515770976607119961893536734911727831835458493308155763030979580431010517353591403788651946408076101827606342987179947609422239884465529963016172141532844196150576831480955574098788689975061167015214634536780689471160268590045703319443913267569654808849565745373162139718876249244952682604841464351972351012902692451862696481028543454279422278489889102901831325376494751008368367442969217008135027130652160794442531806501967031189858176428132244587407430383614821572661809351326257461699226957679678909904254777817646139491773831912362369395145897063642325175579849901868661224990986427162347324457511441689210445024499994316057625489907079477932065843234404509621027078061599999771614531531393037857618858145785447387862709530421228859571627851936798413974956249563995735383905399669197402428166127206637768682591974916613595762726633532945830804910929341752598825365522086674415075647493867999324466913253308739543550234316990109693185727654341469030278438874070909894676414454055214380519091640791189880382166853590426006425625919205338877767618442106356277442736997082012155307828281477509179656134500302147736020850979245795685132827402747399557335319101335555974604083229998747344394921517060796106070190529303414424456800075442620124438251953567993146137925355523601514329875669187251960094608886278320498809542673299479539977222429906283245100070597513326796400734245075843712425953553920169818346575517056719279775811323371268495190120889101977336855255927916085932164503159324573109517377876651308825479735822194962446105517693721332097007420352153316891459972188502221153279376740395720132369420773251857002852743816498859564149721962491832337841548970218889769847956483046177134476158822858472294583914114047955347148855439982201864400232994913098126327086821826479642397194001665272982145902747886363794657742364447319842711329425320968914118977665116603832835143463899162311093156751028945998746156015897622107625607646878408661067359078831287491494670663537216390002428240399006707713191612498211513207407448565865128724736195340657209529064960470719861181922494236731033032725939488132959949922389612569617530991178324037706489743609011704717957710812349028492185051863553571902711314142364859474745060854285324913177856344299278226342321297528867461443931501271308041473979516794724556124741968428361682426319014708976988946489715899132781324346894441130891853875965923293849666752525153670516358924547616825604477661173043964910368373723999713444081874308687274868131272727332197491686971800284416801185724645510253272869788007810543512770501541009175752691424798801035787443554092758511734803528049427816694236171818959571928233385996255475339558453905457604141719182745976398393550818935599794665326047889731786492997849785460189925438504400348113770533596487506836086428397546367862267515912531555004547806559771455611344283206661827866975584064023852159084723153962182512498002424487216605289258893647651352639383833938186661435463176890565065564715153140059767229615692465912541934098362842533603251316025733126571935277641966058185080204876660721139617321605816312759902064931951138563111631105880721760735370027688814813258985265745218013142410502135682621119831251060580035204717548234606117530654867678733085286275191751944571773488727695615962145990618778169939764478741123941379930312475382152259266704154598516715521327910161198538179951921303433564206165342297910967970558576118702446039957901816753260426927397503147580254923486090850516327033971467781263246294085219192440025232326558013450072715256234693712145346776073151920692187177627747078898303044577737004519442049650012487606618415937719445407883061438715091820127434204657114057161258892529822038697264962324861625470942508628201934938675200765999448864800653735777383193340579767059232882769858079072605200686801039749105678972156221902500157473266645714018431377690165129712602933750276164890020108856203674256766266342145564767138401872373336725759614499121297916001148296195301133818272964902832379217487156314425588382763103413235871383188353165017075669485893533227322568964314330992994999518661914324346136968393279527682100786598331846719229204505775448350036702032275455558470082772817170207987334522290647525909876003905971839772875566244682060351312652195713550154639529083895280818805973672935025228022000231864897099589975283379986633671411882217737334307888420045475478457511377044220957408640407089258043785799764822374937801332366765687589412443340852023817209043991919382775307360482293604121319093902092076619992513016930656525093967464318758475129369256363996034096068090992523084013631573806279267073191842285939046831927556617931343949083460776121073708156922772638387366449277599299638324336066650060072371977726408901401288441797449396342573826905702385949187857414201086252210638114515800746182925421790167159977731144292619696833608584290679196639612151675250021801946564207809268439884005860265060897062975651685714812195219384277193497688693606205510187276529496866676700992448456175595064234156952708952858795084059824748134201469050760340939860074067128921821133357920299628856247738588928480191976856679863183152557004044984869914073323456380657367345704492610276740372946306108351211068767110186510033152888076085806843660507648908326154578577756093752172963974429639195184507037910975866857689144917860351977364318447827990993582220104760943904701762351905875731686033396846328339632833505281021527800353665766031139105853772869647849449920799901867332717912306650874605360746279443906336361679531448328675017558265464478275718182682609496156958464076806657739013357326070547250706895971191232634817936261824973255999693263202664653081615133065232822090043787716239699509971753442256073638725705268255398250061710706095140673975931404680400354870123940014652526240074429941765579076298664315459185695313067559403891994485426419434519557155523336268820874403946913103373880295522184195033449093222391235433063622957497929901416754368209933641817008996008085885611595283348177643689008041834875111466582065075891520671916136327330345668376294719717511953606980426195305385003488183885823780308880612049453374412718477984522334149088764285890696775771335406256310225822871698247071331940810299661006241719473688376634021160757407700984033837035003130389337619540474739668637107922013376572940400880027561631609551884415169069592022999189500946515086530995262715119059475831488650472857868292112063803949280669270416414158837885442885769023979001797013080032902249309500104851055753105679022503822703939160618908459025854108575833702877107242454485835198359615309779556894978523259802568859547230310850777364230578252901732727696433483817352780093952424526762774912842097324816443153596007710782876277485665134591027691457829817973305364584707423725984792162426820831705332035244511626891279526132843366474912975266739919971489101324159075809750168848975145897161628908019511510311899717266730778284587854391525990493558746417795439055127459134328142067689796597147779959975463536600058069895672012172348319856507689548056496385445988021657186305342310140943430525496481942548930116182715272363576178916366173889032974446614083595500591355991269996391584818711123637159332596939422766776688465085570005532637577867788807276799328379476049806981045506992197953624841158158357175365187767071491731472429381940504082068793543261983242378971876649888530797835206777659586462430712392120013142012835781373328382076727050081117530579951301164315478931326315061032468773831745166945880152543603069974371980457143812035392159378758901601615256091155948340895895302454477938223187564747316581876470944935162524406586209585068662283653133406697611238744410603996831658020287801169634723607860467550229417637394050255627794645999574992762879056889683579913906623380970485157956531611292923201017747130457365367153658281252640656791975442072183126309953113076088741514593378568030123862273177297112380860109376033838343610733986658832778304082838817731036060441050655741728637664691676805226668220254296065057268806422037800322651792340684283253642001317613348095856845913851276339096470202568513018042786804968051414850522185806131617625507653405244617974142904291954781886900946129032801618461914146398227703471232651929289383217570996837389759040775491182202944931031776897297328581847612268313714278178880383461474026849635775607147633815530306584275324154376737983417516555097830008585888573492037756933159555614566090987872796868755845212247057432244099473309984134958811033249017586389818039554583243753175971416826565501656787707612782409461858891443575253860337033975626495027410208849040278065070887297016594940256736696374517323653395536969958353204939283836990795467327273323369512100024014488307142300735836505466445718401718307065455526886113142519493151273773411549374695281790648509255333062976987875676175613136073532148984585495204741089552986427816342278985505213025713807390492184361189977498608107159300535283893593598472878698699515838147109492111686417491262543390490594269835553022717664629691162200552252649589012626288401479816833556763293024684514656868315234242511089520051002752857965885870108845591022381979165003085574046369237825497525900195171301037722125749370829764403646952034939163916774639052886204824369985973410482684774629366879715945516191280668933454628623690383191690285132563537528282299304599538506751525851032964963661298247787561460929769849895829907777717576282830176119579709896773517739227361111669930611751778802390794769447941690450509628547436385973237552057630960870852812027068202862441822980875927430147639744039382349584666247962471056308965854390141207247946406752217915998844333037628276377266835799106968228284376216968590595245956313084297944302233036629322590402651469954070313827904071348210546277241013598545728694167103336839712697942084653347180280663277504390702460026518761220622329772476462677430269710898377852117729888597820907518071188184485523470554877697835296428578191983989569694603231914575165584075980278512375265075161210328351998947127662463153553139559464227076072512454127647587316946009478721754674245738719934072554973006782852617330468528795067484032181877423731703834868020845618345271387082023340567824928052894732042577168079843016028389267221294236515270687237638888366727775531893823041857959024374029445080565774546521400769403481947229214572336691234386282353849955339668557511306132713563125249651701104188058310713750756381973182073064219993371242181337686311847637781034883192756565903251275908660485781447441455137218527126484812865926423238274381589145850713505486189190542630862656541062075724979685883828980028247617561867234083214145804783348522058762847099517368493899909653836842444643608283668016355943653276389090140060196758336201225913688039788752390607497255560743294525557535060962009964506201805553248951085690036254791519774379035374961980041406821458689203522535245666087195132269400846304999625394968301707128510422587350726013389381827368288770572557712468382542283459023906661564428722017416398702863058846316974792145173338789024763620852143770516148605521064273085215662562771256121929192399621843766503963154760809634114435543078194440702212719652206973983511204103082456408712042671907252645370578193993432152325816918757762536758516324926801127647956704751009680698913686366923578860762732963367803772369303803372410235285440518428803409398404115504036359736862287526788657167905403437097620288609104665696462226954524518070515912021269324099998932461956699450772208382621641246057221409763236093872930521244773703826048262169463310390627117429306872349050448373880496465197805723191104905588014172366293576166274912375291346934586924713642227077296174321635769217531942181576645318534871669201094644604823855952207730007705443419500962720277224852303731758493357681848922647353099450260362983979428000468728452749990646918891068832525454435900836235522649885089432203136323516487597642319009617031475704071080759745747183944524379709195255130365310027794235665111645986676778989062318305620601564951817562787774303767502991170960926721302068240595045276612126206235539452404167991804798711772242601897830007952948513337725680348356943921517106310022261773658427466657987086634143556980782777432227508173152167061342347815085890405998527770118230269051651187868911979182597727336001821845099359877513986092803214018721825398985231007179518947534315319886687911604504695766542953604482429442623820386519884494904683569301196257485302441694353251996681509533158447986151318585816433811157972065416403196516567291222154614925477256061586135009049056065773050987942097043132943871821025859334099972359699098374906955368778406999321045020159734945918888681624372723581992650566051808127006118295969460180967769988685264936726214957507220802746381413301720361832300718212484036864705531813364235569618890694992332836938046214523937993440056680424492475810125011186406027059786216143302363373080144593666890566963403899855492980415324209624644427064870823793765111793972846060933637388905665485440001179919278890374051288321666030380254358835201444211535884203533167854219882516816208985694702615860383011154543634823989129837485809738304398675479113083306818225585031955933561448534396323458505639901149934642186314629713586810226784601220346083336483891231751473660583547988472779321078055487552777528233619872706400392717065193338052389292647927524475499844931538334957930892167764074379334255961726894231811406837065493382593395903320343809608433774613556409857733264257394250524409145253880289891905916003498084427129875086033452179493179430853538813330887499652403930040835530249261577444856757604756021175970254630049281551011623615220262960079628500205834164601803618680751957265731721914279478884031269484490328612916044332056323923000231292837502698890154239149296640958153795219113479709690682854895458101232347214144505229842069140609646899936201885410373421005707135245212379525280229173954077515255088582752416804160271008015038564804698251171941766530907993673411933500373736522952889967288038764639763293389015053353030368040810223344571501816526658909810746366342801805846327537207446105928759741349019513240825290528753260508313783820399278607668990172298983901169268856506434932148367310325193166982417077476541297617922237302105073557275261541453810101229684351074367022920232212339055245839364432343681207075778087553602615844773568290001842402071278847394876673085442074517213919014945807341585803969947322783139372111698778392701585107368902870140145274895941808032168023173174522659874880241688596985101304359595691259827348320724177530140220431405250179665722828696591447433122252266187042649441488387986488851100295267651027841003955722098053925430511766697493979064092301917197852055300650072179662901288772292366644846004019482595084124390421833672157495600329062646629183868859111098500247849556496139921690065366204307772517832973852880234049287114546856141859739840922018845584737075533005957949323492931040798171996076742840394281039471759780327551383912026027403131005454145646734649937298064972850903020891444314313462712596782030309490177288936725917667245523508464115233487095041306100691211932261219861535664412185030261432790273490912315154972439154382880208462334876976658345199769862728675157539333238564006290967261709150103103999172787317324283076762693617354006282967048908533803908045696956836594522502082132832528221651403430315572961368746870198446048383426861199684551530804534260463729444952073027242905545841942033266540956705764282009182951970464256670989930106193178651506761474088419892416179742820478607667792806793867139688253939435533626832878638583786775829307050876882896238797875337187105924901330891010012989155772826721216195497814900856840673709963852931864421490400718770039594618268151083605680661078488912721097593439604588851902192665167994104666640600250803499734087185383907226772999674318514591879845044335150672273406219222596186175151588849579764852808048740722993436302615626856232968449888519880832297417044414603884194374096951853856033613489584763911390469206834109687237967918471696989224917821834378307392317021852164154012272506316044261854978567765814371694405760417371050165581189586975552033069207265957521235150861363711019490808558355999758590617303993687083276217789076089653811628627079502341978437483935541336622323851113339567280890340298713550819470151511995138836606788883615842445201255892504611874262352586227751488910137615383181112029735045749609719111187441284546658911163082757480433175194877535997966414538371452712977871700400632599510689892904799228551031536358188754287660697696982064592119703582430628126019363940966098047523690007551673791002900712013131829611296119111275997399590810680809106758366263241703786799052351298385587590495377830424888138317163650878237823040673883652126093318081109678878937463635984995813873723694863663355384495033615930027379406195013748492839243521049060854195037501106435449852655602172259651197375600523397534822204800324208264013334416111258434531213695664914568194180160953618816719494016013508801750913259443040232541624503280616849865002842252948725455037319618102466359959623741583502833346935274719412110206907517942875761655456437659445174582266989297041007360464742393255810652126072647956536249780371873144779152401798720693836977839224539555802058556273319774934745915408342139031322265191545246579231091146214036434116629889548760005446899314810121685678954700866096481505431304355800997326739207948778730756693866165347188663345966372963783358585734200812462727606632984292396636338156072178283368915584707900987242486451333391339829629264184397135001498365249085376006618590666272232710188297375666913554716202784028029419070010753521529489824974509116095172085203249577675595296559949686253664879807945104081507544099642492264214452530123412959455200196275930332668764396729591825273025764576683359635726644833792677062228358044158947374507520690211548048213587976752958707029702215776107799954215234970670354007587040505836857950475665386424797107238449755846608322386069504275568730657990506148618728918996302395567885503122367007754369540697827536108688103508637238682348527068766250220748286492977782441889339310235208426658628296472529821896687899947437390925204162742375440306277972485761284965271622051352570859820700705659025171990504497922929147226975503745035439261119908329596993371108380771046385118738917335047871896146090893298760792040531372742883218442012739265347157922032384842298247022810773301523149799891850592263379830056672836456123646116790110784762588379098571920405822629475968885894013273847078442290848301737994899533551863352278764581517088919989214208083674923871464318479074244656185083910887161838000177032389239757190498902508137263626500257415514126981531018960293540329139615051613224784638660916441101931074654987937027227164895010270698383713135042215775511563875643621118057831137837102129207965353425363057229789673758600607442177291947499457905378981430419245498607229995023326595779576002933391395449955414865388550206489125580667838705483099294473266437815082624988402671879889035100770556132224000613760575824157817182827816963223220040760710582685210679002292699245425618102463164378745128331120405408071480635755195652068732407572902997009803893302853497061701786320453755553801960691460620792411922797709785047236854102820240438599025382329635121392550955477788975299258972907863343930806550302192058024543288578483336876501648237316693478473210406547579489063774824520627120096075595954330999331391871948538552823338618757855159402837081407710890560336000303702580190415459784427222315301278397682330705765933102196552740117272764034286082938868360014136862380101340105590915457253265840185032263645079355763265425104379727093894631881898134084931402931049248138845734583802399540868881801309301997623504160839021468308813762312809955567969592309732252403666822427974239850207946948340984779357825432676647354210472921736440276124434286293813994970463730509514025913254200935940598961672171441203115010162309368314496151756325179055721032946465820648409978440599485333167584830761515526354517916200124221948929400180202220979329777772646048374979590483954676456274732791173476407869401794796219396244292160971503970886384260037098038464606779199555285221754864819108503506062015610451507810640810205383162275780943813033492180291457424855249730232483425187106923021463331407150286820364091425690437110526792073364365119890283531519732330040667799568011795502581992091146907099065804794760267937642680352655787806252937570831046837899973922749445518895397981355418305801523796165779915820744489243596492517347119053134936516495105676033362081247561855207289483694670373978221581830010419612406256960260490247149196729569643985634065986108479154380678725303484607792594834707909389236471237294216714532401965422537732267646690626475816537284815963107048308026999084190872191952839864144441310743857337132389025554968271156011835616125852282551429447924578651413596908960058796201981168551527514270513723162993284858800723950667111345437139679380992421278913116020362044186106566293134356480743752203120069464306204096815394776047444377701784673367667696630968014452472023423501385311036263915888243955046863947102747709693143433883666829924390598580469744032802257903251505443301277046045350135704191571410977986468413139376339955714763656466025492158882368039457748690475097115275983065359181385457688665477668940066361092012479180487086405086148213381424616383359911142570504421053404581396526057641774437948887345906878204973141862739491403910683307628629820244825852839428216557801606697287694747684544003222317338721049351652582980053738513337726672040420446439333531088228078948983305455107238345280295020987579271567564986097145543845161287811932273144989072322779703504577354768817883975339591857977135315332572427728769407181428912227949731162216325580901258860965202243389119856093928153191233639937404907332525100844584566055799599400611951131730256113404355046443555406805016316325196157801479459186163973972881787587052733919707773575686534391958405078247148017221993813836330234346746800194534944734898535654845431651159079613491859200264106410131359427509859621813297645788173011134812479927308565338389509800222378753418742895969859003271880402599236818391307645602651959089132068991331003236821235651960625683730997958008436272533538758777914949312911378201508365746910723218230907856489203320850991624129855692066260813391678182630069864279670499165546307568441034131259559008382641065022332496795607157831340412731076819884203785203706675431564624985507103019655574289769048537949194677829115968640620384085117131810115257775591036895692742762060840674786453125790695862849525798855684402461925568677259655282086273451822412002570096001582486560460886887635980625479692079086266650709131999124443350399683296519965568775692471081626370615942398979230356588150915920844791937871571010827522549799155011630775939162144762042178007117345053064789313522091341136951344302579904450479882612515248951403160645714599060531978439375101921093889775229545037871290319866258858247322094723549552135652566369667828881571143834328170915998966790747135212861614265372715354297973315277614417012185840845895273139700293401315638099393476347748438277402484048535647238192621606987193905724943007208788185997415262770342015010751128883193694835013599624607442902424075649035520473729089830616145815120276474068224898667598436583324274154336480865945210698831345275090787877702090198640308120205526779462442746157271789959327963853851671866241432629990244989104671266425464674325430535273766555844553477091645388727245198052147609782796993825662704329656968699786991718977104645804308079485786599070342409117067498025894559712752249574989766187028089198410112438198850466862142954952457478732146978625372422244994037933644935045429938450427009771176751353868292999921892052342449025644893753583175891873180501183510675893768224204235826085482876609477450570189711480868842657262997277863401232270476955951557241783509987355476972185969712128089948786667834542991212093516614049323391332441022114852062336117381223030749872048044517098711657291960149340841387067480914949398605419101008863737642487616825392524648394762646406839480600365910909905424932040935978443941465876724875816612883106875619268700672235924336480047838550686707735422337801551450138062159983395209514495449074664057384098492981368256945795941840417008439576608701509023716423250260174037682652052235915588051164733370245962408010528910513503130606083132337215552631500138382504497034003668496239473010737844370139405490918850221688141477786950483144798390278568947830390418787527447090477282616407785562558716917993173465681934336045119142354333060091938676130495927173600070106146175402667941544320264839361451804748368161977955944244076329217402452214460062737721373299898731156263548683484513122287748598618260657116991610607739155070005221041177322883925791557766308471193384241199976827828535066035753374803600192750060602298614415625432647802621197119806390588647681540860957113373430086436870334903891924349959296904628981331046428852485407554231227915946484030161520732222857874285904813247963672099193721471591975235122108843065731887073305034143698996942923339951834260441946231564850090025414820036034539209075055322525539866184266887578623809536660596975063593673732731401380584205141597646772094883701704171584906525517288769886031245901999355316185452678900731200573739915040565302945893069675555236659730712462327447296525276653083939553884457526356943310043295196966601974343882429926544980534454394233311109864650741790356867912024716551148615555736891054287577769291516160658078509178772886334048119678642868174810819899039421166957617237401805050676663011002950159713389367930713986040478024215845044866343905492038861768495951232022818796410470717274116572767860590981015686829571569756624902239164140582757852996242101751800774751373351518126305127326229923057152653123280183939994223067097315951782511093167526730907241390011128552093416784552008689652850906289294523832585927883971845567042330220636332999376774885511201242248304038560939628041722008173556117284713462289829667004900355039574856542050593669803238791970065351488900676704982745114837608093963164589525012287591392824269252691365765617584034119102309292261875656377686321214655501457302197226379683640131588793965906661166585132085959614790017870209272340637321903929126301337424785043781566383829737514023447239896315014903870102396862511875875885225274567192840226017246522820041735333505274783287714040977528272159416831965430740170413720758822456081943869232993338573281337200983066087468099340949408892136637220695402860374064818639866816775311961498292024335452378938688178358839907235462470757707837378400346480092560167468746910177134929091323085736442257659919144676995337895258098711740438500973926159172025485028197591170016187120308422908291507140376281156841004172625845859201056580164111313049046038301426375833921745504945706692443504549933502889858790699888584732520952055532515642969781576289868503812667491897975964257321474456373159726101058084129322339365534974413502905109103055838579167712682076305630232864608612232833918295288235848924651766239510960092223277735916771953031414652177529571676379954067407991528573212901381266190098201861359660832032003333737985449099130086767774247147592705682086618822666462362536093494162401669218886737862014199465025429663275939631118157914417332354739427022101693295761440016373180687805354569477166386432489322144116053292934469342028979922599373467907943055048662846156986803066586944189696263330658671664801609642395589785453279579224646188624581855758997640064744550700225104243948332644867359817223087123895434895904102907300867665744313240492603608149881632716195797970898885679894019080978426616514447603559163381929211231672824085031162718334812994904641204889975229607251475812540693407581707959481010143620772007339767644732141851886112651206858022879075598751266377292366706734839935413329376641367392507970135768202751923621519412246357454365487730027667442943563779424759256891957373067980058940419729163636565345437914243525133059793374330289516515404567160976455431978210684903298505845949898675750245578179189845916725172908371374790068247326003460339305449204038720899796440930432212058673175814297603835148087951094398026920112206433664889406307297569107122016636373686920097056022393856080951071469158478753320767805097290258636027338994521544296836397410228244449820170110958712151834009894961681162009877718585899343349771155108276706994656413954606198050507803562394640853994211131611101989216302849179679581435581962576706573041464016175638440599734834279733069870697760486341762645094561616807362979747784484596199131362044677238438433086022499222838941478292346859188697834029417808254819109464436123024159733703076627177867581812871148793057429580341394079112297110593740538003244704403464632168404038089450030146652287135649067978129318519864920618989820786363543906649421380848702938606990350811659419209783075390675835942245438899609437964097941178322908154522236145438082976627915608981655364189855872448940280728428826300094606323669769098039875080565202929585093642857196333484446457155829390689823769999103151933258022543179302082666626088327434285717705692542665915245920130970677245465973182569754800462715171501970595991518534925864216269103614426258299848302611036480947750078113613041658450117864115614801463151298022154562594311819164385789232154736708009958252874297776379157818618675192479675150356510034559090851657980726779820451407037078166656072200162608564524365939002012272571678202329181108888032627915620178478622523875560223522481799704298198740284257225553565985952379047869604721890709571360566911215223292641834172742974846306612725046353044209624841806381736839614323032924246017930450233756406356932005702941676374902767759518243657811426270650240431543463338566136802146827793849159370355644499379606294279326874910147158502511131415873468388823867317456012731980619733071267278245358836177433042212609767040637180743380461330206571888756768443332973738515919288663432209003534753446782968810713142537435988907360296244346081331957530670238992043677548543975267875996808159617977908859146224890347735507921148663174333210182536416313173375479671053431493619874472452206415619788621132805753765672540263759922273958079112970712387961506279764846634616083857414024089697816461151645476130429821789265973485357092392212387597271849812993706998996727587865279720748787717701277275112081831062681678126628903758239199345347450279377370938621930560204803425161011930068359249378706140805445905230840817017059110188594702611084122733053468051243741786580588762854523418498861864005654030550025929298217535313874062982482646147222787985399712288312484128247749962718167612351938593338468032433520710578425080048158039725135661863417426506934202871578045602951424109162829186409150004171849995551767528176512709123082132659376527784112502351782771019474638898184453788546063488932999354733695872080241759475190805382157893004926566078294401488191436786116853769543592497817184744062335672554468714713622903344072830132588588237883634382093422915191816554266262944975934685354134921788182180632540036496447804387307244667122939201447041207149473837361695481462893194268537292672036690947170156469884617011059462996561016187247380525812740358808363886104565942985043580381927494575637091727765942905823199049019313039871669483368170743149998583463070552576126810351348094804830636805310999001042842897984128653194347081253371397793321000157931097296249427418017219045288541019138102654086398132868325796197865962908349604004412172649163425803061415886692257633185525085569106443965780837299052828109550431784248969144771122136421589470633042692996918739514300891796514592705988786410141112590234791863302484288134945905383594755360790012544872634548749877392796935846029331362184358927920637890103169300915029627337818049427311402809945650233423684361980393424494722896514885647347659615008034088577099509993924154502724467540011485072889279320192859502873961099045505504242931531783022461009958050606227948450327860535029811013726651999725562780363665213392619613568462665463193104043504159519620088561330473125039598314062261671637221483129982531438245535468503038636827542496943455552594062542706484430119079309022151485833381598059748112066491470225359456448486614205356887359742820461400009595188078724514686608441663900043935347628269548020581693498973358328707397406213252220583002971577082782841945837842133348972689398024312115210599376375704249110342078633406058316843893653649803921243527482100259166485238558059819563256845245506407587168470312494325610653056425842191727906622607578391804206348644826692689973220003113579588015171614635768283528318074812903356844519149309519092680495959832680203180866871320507332395331268650000310491187832769873014909889946108559881501887471332286487062630633828165480745199575147812062825788127801023239469378990538874555289982927936701547398582056709840567289331671579952328704872346155459563666882113318825318950861633720369510265300568218448667801130839780203208136327835703830889141366522767418266700982878783860462437444879757839365970469241100611021430474325695442884103445099915909464033539627989106466538970948612816403784574026382052811907117093944596458688596162108645869557498778402286226721192311053602252270281956179421845166671791463148584286384623204982507275222835789896131237730925865319835495774878918205568696563806345865562951044925869183844707686035165376241120545124413282548867472227103611440674158920322822972833329877540033988326652527192798562624938766105437096060113286657191890002329663360361643975687875085001804358401248714262767462955902101791898750862995644209298197941027004427911245717897750466518052122108616130064240555017245156593224249485982057063171321535142500751422502045138472624606280235394173949956090533633552070272525685264812374698242618471460191491770855678364323722202223470668795301668285202441804483534802159230130002587994748674959541809044284806598543823427795484965569166984496354533080861467018202168138919947741123576590502916829626818215912488561398196509609465586177111601764111082622519189393164025709510658932240658348978466246488959196573830745239927344151448488949110900753916623240494248723111031621633909367487359136929475817903986406819985701930383313941648511690542947103607932384469683519278163975491067383754695765995925951262374529358641402629424631708891435741261481121088499328169041452647028585914413919643068978353605894013042808518008029509462733111678805923015311203570987790424701471212478506913540036363345405648980148324626716862023523330842775764179546023736888678391697031936576708425762139888233797348956819471863797475315345800803679310061940487586960193567021313035953663029837930938880510714108773764993394575555760925929613871442131847485855215018709226031722486942116751385267584526062970346855892160948312324739682719616370830150169004989217524712973474393412073776685661889289480515213650611237067693808663860668775539494675161239014578434611290672414352999909223331853884751704417425344907004947541430929195708054672135068339671668903279194900772200033876828389573036064275607995832925124169829131564182865083295956608985547068509144092245883002624452348869828477992565160371996064311664517910682169129980093240024333373051534166998820987386623132577511959952797475620136439884045996624067031281744667235979467237668935351986556401819744203477388030974144661414158345460252323666883077911096618932075021868793469940393030763626898061037443555172400584521556920858304703028231232185585095248086557150950393599677152830602778927754537087646758724618356373333835005956295585025255354848423872976875464856366396841923959044335799329161614019515180045288181779456254680691814889926210745178691211080730673860308342948840896722327953883715513779152620671163439603312489071542212906549838555370553840229105628085846879722597917390214777239607815906800414205015834781115997216047477545991372597860860197547941262872420047824004676358343151397784396663981367178294302681446019392552936462644972639171362264074590170128352452447737673448940332686085920277915835761696532746409689108217810051266046489238348198101452404281308663894907422049592778487731916337398519677525500570957180041912713624902796211193059488594039919771362779590622674383860938905785205026990698850868061402222769083923384777920496418072132716333691629277142527334256608715390990835133979929891309489441333681139616472291826463194277552453699996615766770530165634811146592430180145031192645125322896382919019999916421671067248119556138963489109990114508019073238564923905731532801426690247931347321197948894770430347568979331008853899766774348300353225261801107653047581036745619759892155748615857680388254234878113583370505645020237686028959115721517413347674617509686307583294810906245632103640156348423852039267141014582814178900151056493113822621764656359451936940550369119328781239207828298785532893390353876424804612018597906263361137855466142774061429471699187589107366301612844110900823107491824108489760070229804890514950405452643598634650805408681767513428039149450550525705401287978411244971369192617286461175846840386550656363740809379083177538225383933847728139921424424759498752997075608399737281167677976639958053818932486374300339730052324535454399840726680589944217649864025003037875012044224988708231999424741730824699869609329632161967196391423281539956317475024644687172384974671179837507758589079790951414592726045538128976576247618095535449320978115496976789962874109706762032050042794349888142748002349411290855980613942965548651590475527774811907913530170267268578170551065057969071601338510532183897318474080935327415132575930172726064328433681307821801862507398327741397312677323223900322475462400003549687463031298425756717924636807682427011186502381547665096050486155924969976759844682990275508141169805212885478510928651726948474466967353047735894057025176466834614621631455148687916899487747110588652963062174012022331310354258202823816464914112841771355890722049551421793740398035070395529216028755784709129471489307065195839047373360717091609425089673648216025015097861384639727493681486436099425453109886988885504434043947998803346184534046029307151309453771641496190078626737368899986905013480549999468670995150083660069213772269081172298852075695380505495992507370637180648507058379460358190790775720919360657095006980620498374802010279025426978920095862708407223349258788302565449714475558686990240871518416372474305242378017629273866440380685536467814854882053971980351466710188553664645827628821581332419770505409738694367565743855022570958906042621537013250916419488224678464076911828364673860166948902021523183431355080061940361503801860679645702383642492042188805112869923503119302593516693534825130733330144374313670012767200715188076657307829950578122179200424284745967253558149846739832086440618203734207658372364017406019948148777858227823240304414001917092786387549622508941073907330128054873008972684047361816235406400123004202442181913432139318888933095944101308011285523337064818676414314494995046696852280774399996979280745374206768727445692643913981224575065120233374604282213787366554784404234504306741801560926051998127253980802119771447262109679396176669770479498243497550216456087324467996704854572363591586627484389878046097422886282586087993572426942946550032784489187635530216296712824754620290167729954623680391862181499266510729078940961927400702181508821329756159369495926249472032814041427392861279476063890777938579122335321240604172886385123550168990243481003223022217710651279854813868265685960479306321787550562241254033713058311785247476077326731864866636607607671672332154173279809802853375510354091321926578158712498905596763376523885489657435788172982778159899505711877702169978173951369766225348841915948659559419353524983302662667754368799469905497066955014995566370906174570441486110690369237344101310199674848161788181565268604712435490079578284979678451703478719586169016885939535179720561770266720831252069776511288107322158516444477535722224722055680200703963111883608667178680351561499472913828238869476674410120606915354652301242033019983277399315189886779781764751729231075204034793482312316052472679330211334736488765345988071051110506206095656190726703297221818193855167145410171167870662753291996120569577178005194155933785380173659964350215113545093535142599814458971448104115577051148118382189549298474422789972518072375454361293505225282884292859096404188338292074902393260585073453225290501474648309245357148649140979288907317765405109539057580454698777593904202634282995619988678341970990158931552969452854355364276533984856940823973462761095333663506342473815304249376398270810245394666731520320506557696744613089576234867340470559670806665921410210123220911280580768020618996448872718762281611369054462064397785952721374715686602533687889014685337033874010688762907483235449155131589063421000137791469795319059585475164381266095898671157130215257890556698160995276394318729504358155073963410415035320435832767799246827407806020403656507001706162959031911339887155980440089048522998920605262474175231907298723094381597738558223400639113865154972278982766647032838519438439646089596908830891812871956052680116315299828815733258646189638065811682032748761966863169553652872191701457828244656904236213740502560529816396671953799629746584266409089998119726099593108354370942021469023527838544844743376764820595019046860157470160384720413951044549410928417533674865833465530655066321089753653261482306721211936655912428279262576694323915948088803873336994995527892520537346884146924717663644274646770139390168876814624597117863255920437457696424244714171731406449362234076232024257625772322573368905114226301296594267260893046684794736438302364992679461888296572626827063546052011869353208420607620262656456063707564789209229874654113319148617088478736039375737982317779770796163918240868575273647385846205518044489745104413924548686370980514941124838532969891352632942682937830487279385194323805855739189320018475467758345056760118474934330761945762338360395247641159819493373997659795195405004823817790514451901290955288850214077427359515276351732549863822677149977467551197019927371934063753571099079302546747881975797819029303524761147711919310535629312514574208113519331585999019307559772504518004657257760646387980667311554736255098252024895103092591126616044331016546492502202166038887559534723170269944788400058441496524201860646827801152694292070488526131368341117612206963699280153039381654066563517083025239089270867240155133477321426557365873368415378477788217089380818813472273511437740205970166918103288797516145900636488323965626974126030023345423444208101319139737850059152129597456338004936401733214023942246089811085453233818249704272643276738428467491463820468913547688795338968565215452151316537926847690716661148611458553114207844349083255325563278904738940987511662390290126669872068357898910877719782681899548318073412545421303771081952230865186867560994341813818823656202362441305183243639529756616688852928635564857658214001993084577216219736135394466270186907357166518141789650513125621585865151102780362287828441271878954027715418788297549809928796461364579815234558374149511940233909086920762603513083518025430537389270798107198442890001231362805598631604377633619083668149599543850378579070353066721550757581303144175229612007898080276826501474946542007557007103880022808567205040948287771092542209827329557324208796932438556732325285489808007888753017038839673589903363195723538822834158980354639822152265427911105755932866107802714223209840373308385484850706373612937888901204133184233468669009761685799571586360919758432900820603959533207243904388574209629479560846442586355321750891983289492077945037464297480515278202098522018463974224757555684709103425338159491066558510329725786758195341854810873099210505722813634973039202731388171951784929043895008378200520528345942900520189797416762689133613724085636536399630237001468067798669347313596192410227805522643693763975072757459396888799221196046482247904951843586701768512400261068592091498283388547468056732882103772993634881616289402569427358922442579740949370054993224838659481280023805863117896434550042460342720200303277341998861502431791091319517161310750838632417819752628805521235587843774843231563510360513433162960937692808473867732220047784948570872210971366617188988245193333329480114941875598633837394690965505545183073793873396098985797747782599952344820373839717821350323298708497378532312137114979280340356070516840836746541518411172028905964370470192940748466795223193523241446887458792102685447893684191520526699696475982981855749629705575091552393825899691355403023048793402590027739789425692039100681078508340603316396075235019634671235314036626372111065196983728394689098466007634327283889882223656578343924593157374204584622334320679611601996832545505618629751329816248100320372269793122895492825304614003375188101230555753198334005434213806385018745479948074794682539610053291343979245784110416386810807607447603444220001225350194853022376871394335324859629348554702799419585506952839446678302638114855016148831176909347864585795004218437171832470316293502449318606321788353304098728182105611492215002344080080855198442251613065602262166222874862979597116722458534821304723332470934319693777578328357675105752468039960524043172380642865421314518173843243058680327442624234065592446652921423012862724069435699810595592814158841125315934948238297652993269494941492389597816801021577098094845130985920851435262010872745622689729272068203732875702904333903502876927335632394770374535494752883688689982607271250468460917201967085659399629529659843602790835419659235824736095541559562861141512179912307833559587193318365450295177747113724931380066782477435820303304613270096637995339904564555153040171121974477272866405874958240743747202424702715402227061038631807814247951132741404250156346904510646279512588501048863856068916157853766526435382067743277675631245711162826923622695634760301327035594918113603547093028456350035135357405561956935107894405621062231988281439128797963618012958867161490160711887021693145224223889681860265878563877353612040374363250554697126846772722439434670762631946504946856385744774403546643241178230187682070243673411351848123702441077203246723755088386516495952347942895701770193389988389200002903701780044359797265990344829134132043914818435907379117848839831802978567155049033611703761111220643698236624516896510413252893338953261799391520739549933841430467352617016460892762483757367448841226488139265866469761985976323287071681657568163991831939592648201203965978719317553497217530974176747188835104599729822499937418189987011520735649905768794955060845982891050156969585759316459633148782667706554059011218948025672290361304737148871761409194610870445193959604138943702995109745720765671498876674830766125194477929309983890535926933619266372623849674939758263389822424777077147597836752118058145472613412185012703664682917233142478030162039986758415383142274898461335107080525525368584257247410838920283129419522881704459380833256137050240805729061257885211259031913693478038717994858362502680422429983758784344862868608694943727184065578957681794049659995686523773833638478165999307003532696701988130094610937705318170808864182315354338379088217502606724387132611139541165507779608590779431745591550145053662687351127532756183357098947780872285168704696826929231904712243688058593260845677675401165552550183213301699533172952246727979684565955089967931066225506325646085083793893339276978379243154317720965426943402897491512887593430358764827128587925005691058082984995235241994716143776373687401783471096768601378373786440178169679578149988797969648903364555763950643985585374738998294810416821522134602398641544914115196274012197416476592753193403959232531277291245017871616858985931334802774158967259166756616245710300517685684485292601784639199113525132801173284880305191866754759903829322117737013085898080635572987134498119880181907574571591887068142717531207136991406089353315305594070296589155804177177560431200510256037804236259878865496964868706203316018914659881168061619880371448977679232954245271003290981837951851608536143476321762115711693633943714303792489787288830929021824125641265664707764966660107293724158400389382055230893208788134814263722379407995051913881550321715326833265729864875088757789865468815918668738192262885677882100653893920714421640015080300859857745131849520304642276799068035389786008181772474685061694594761630039745954409851763198753618212764334802783423756067279278445426348963235876527301787455060035758726471222796371008248698341723195853458262764927699225551351798710298109151674640898930397891326259283786111373525915926098108086034171789073724888396078556439405227196968571407253712281284525395715049508588949897161812302591001685306541765001096068139662561524508317566894720851041136279180330532943701256581574963708951361148157356276194315506427717287204074386492186918526569884692008620182937044568109103850281845726983751898019214688873395378251094228999088695770693233964423761187172609797018735762057854956473828527935204188877431549254120588287828955832804904387640220197551101724656051930110634299430001813531886017173226545006626327879728441167199843132246152099028813176453937316581732614349655221884818642519428714697634258222850999635298396583083597315686292710039793230360846506461469342027030192964007592254215639741240784007194512488334016502913388953151483949628552365454101715911400227776488055902312810667368142744456930562951202937807762089475052230291379818171312286385450944340782126332164053628070390738500372609361118121312188940111552554168508742505657212930154140099066464647001334708313421463010165876851177851064300088491240807639750024041959609079883457005817046472113700312674146701832901052346687349316566877710296180217291973067476213544376489008461784582330838216462358417176769091275023575649561250145744428611088796557238766762765046947484413013135016668578919379640759191386379652180191254851886449106278757880992043714205511394293090804505159679625786076670801184965224528326486566160877331926658833124713349044728460326000905101782208484763752559806252667786728651561140222725428801822682759549413383621627574585833296255809896058049379375392376657504996123754804369995043841778274920589078271041302284102909750981995150423212753316037094122838285032765124165579212633303587167210883831934696937552607646807834554235937175977828727576026938359173533738947576349315140828412228714885773450973019489965779117094634424860558121391611849144835122321747309819914377361371797964666918868336415468502886496667383480413814317542227458407934569275406810659681153593074093198875877030814500060756841206795883250322212908562580187856900153490328035574747858915404707618912111529203931383834470388007357496698622430544937999825883405525131625425513542110325990541781851673913660038776291238635450218323321888504656121620687777862859683596042631282828958796109283844398976369406337739844297246550861556577048109303769180181510923466437918940356973502522621412458738949876632120038547387365627626541982005941498294660545885031611077200921429598547633745006469004716439494796606818416924733380552608029856392544222897958916218419642547225657564096855983327961856433287784813360945165130652171097798501224856974920551061201437843113520397558866786613762978485202795885566528119051080232123294934566296904938021154836541186389245751763775403315966959116597250059276063265893132010092653814442162345223837740347126945142148506317405395140359518014232202355601979609774584467201027610613207217252473453458547949227335409662409396370425310496788117058071102380591542035626719587397078952125815031975209786172136392025375568276491043889670938357018955311318195212097046698391557475763025395293232845852703292664881961149458382025146424381448131737776418921482782743927745982843387608334331882357968447618938615737506308024407362341592339719448285642671253671739298863930599523447291380445095636629770345996444748799022180750461257772433145058250971063497361008955724272332483142078373120692518636611445405001503896832733354553139020853718678226353098743013487343864398422231808176337077598183324417388811479714809369171427440530046733776415998683952165606175472520313012040694436295888134136857281877461953389719673433600880223388422586662314576625506800497319189176969602794203901534528792181674655120778079118720243119308182327711963943338082981137584742275272645598869006914290533560599816662384321134727105094178267371999028265012508136053624977544435540876803952255798758226635223371186137024465631507525564197537306882992924023582682482289550336748893875439431778755984193014935030832585773575692383884204695000872921693477991384290595830611244115981098734145631962566821862262090858542028850867833764466854378562116642654267426462421495571220454421143559525153268699426643214888730698227044286820432409758437856932310323162163252630054273822465070503707171693678368159905971012846213828823308870831423830689937584833856164427150974776914024448495039935670728400822429831433492275531945697067039066267276762979272020569640074699545465454472605118926457017231003878270823096505608965591616336077162017160519186303152461472511912947895643295615027413420703022383367982545647879818761017973390150427040353117508076170348504234811127346879604483518518409078976329186756770517525158641979298512917474461223270532036524095038943132951336013230132080456856019944978289519996908876076009602638940567493370567443822179022419033217621497987890349026890488024946472777337281527047731055864141875216211672930383404762476529534640832318676274742122264347906771589131002877582922703391543204099627897639410311631729255426165257844571665426832351608576285057125048279737511767141408455530617106055909060134392815548073861833345287059732580617137034680739987272466949867676419660064875028185502641679260584977994496320246258290546030737779100162975350169477963342629047892062961450723408746916212331313920692955360976182040014440089430530444372458174324911590480968691669900238640674033209480586202410718725437498099781493387735394667470807425112856698141930186104500765238878929330326122005113315322559429844629320316687099342196180471276350357274104173637246701526693261637381233175529320991230262784177663839364294283880045612600329366048245993373377128495114348425740445710030585803006480396892491132579147981289245595210031033909565551533972816008396223727125677314951983652228040497417972065210216714219309785704499292992471911701789290181135610715087525424947109784154878032502885117766224900608280272554213370691309385336938320582335222317330236481608360542537324920882571037837460823030391560684427923437197935703535939056652136069555965611133710055094656452158699975619482544564435694040033651038174423836187195055709979509021274156905243235900461434287767947993704192616435197302634536525833199411231358178194985409566444344833180225916600953519540438111626196859484706760695322411576118453525503779797994990978432892925514747911776079185433490129294809068715128462036800976405593936500801380067952488186298391491527506411807681404012249193564400152029914000209204298629258860626903092976271469515137027939210070162788529622290263850863483476792680802189213243498845269607320105879612952041425715494130991159364340896346234971921124186505909632904168882463435914898357216264801208122635352228016312078213607505893429895961501971416136030181514537037553401665278052496960879767907288556805677164054758649556742924978867207444238921704926148503349986426098178175808397352338844167834946836516909284076046437203946438746623337647717271358860818406730187827396371270005967522960406181904752809086358095361017492511891130257648393962001827642058030481216973579864343002191173637759131259810950485421310786638274291969746644093964341614821326915166965229640222522388405784129626196598780311521841525255480332034496429143233127190571336412889613773792325501703386203418656437474425446896791680529739619864965132481166802103882674264508484952419030556351329989769424892639427057030179860108084951688825311793742640881003751772278581835649198591595098176255565099816731887080578543617315876176294750137062105657839617275183257882544983823704259766004931560694985553878008459733141815154919221464596781450520689385024003103241985873554695251661094808974915638318876387806317589056250390088864843206981076546028839938883614550431759678457557564360333232529946228806222497617600855354645399190650543053917878003300200933426458021891506190373353087762883238170297697471217459975599491202860738468196990037380624436539500933788720913034841425391278524802455000037645671738245361796185967283967149590461236836522565381384295410349468593105904512056893163141217485206542854430283818897807991736092270805193047859542812545411387567778412323936956348448058064302082454947695248179286933601075262656543066188150035257495914739325322915511947805398089943087504619126976145799788689073683584904186161494193905257595526288713825652062304611802783091357725196360539680405524353982084647561326444682773930978215051948967348120821989996815938573237708937967438941360490335440037874364468976782160642585313449746271048411418199795514033713370292058742817683275811977619526807237271613744210438039312073140051931189419181672134130770862017534211487648432850565035712711078671411360024567319439072679752388962490649231137847659977860725990563079816697120386944783272046529347239709063533655074231360846538857811840490147400202985595541333485471157049397039995967419374571939710193386923284009431942005001126898953089616521467778101686247047452285607071174876304162262773975807278314225602559884782878443954153586387131960802590986781986454630479688402299945762812149579256520305513321079386202079914930849105392921234396970157645895731101492948736253955819471802246334850264658857309317171735438057395426445623143991402272666863249095679048945807808809082277636660925110566731537012988385003178051331404946459022752814625642331804885174893742923193111385766871037138291554544401582902977140276858076914251023059355262204157868512780606179742568570198947691356163846572434417782274440222943520327182866577205737031005475315942218952666951219213146234838464431925053108026356475058478502727733952679564567164838121964987102931293625641070210884057017329530625133459458366656708289813100758840709770004142111841050521237124502149843529357138557322326316998435705601115566900882628545256294458472768608584760123786190092923327596314587680235059246320174352392183466096337881760493278916505618597885320479366662905318426728211593313319487354246138113429524961237341631962175573547361699956473988835799607744497038846937211703761752063741080562269254370457586018533281047831906014952160671875793343680887101414984156987425538689071761318331926854212835060565092895066169334035443012286863647022065562269548236749560923840695568957636285932484941661978395437049305105534383916627358683699366526012049059910338820508161747503814266053476822439258035315264215363231539779188419912130621404540765328316786382635067958600278138336408547723839655126413736243239209154208646358712304677382566915687935217182354621372674964531543037724859052157241691791834723666983334279492308935042814035460627815626800649500722500126009840605680846037124866560439896308799074006624348183194749277669799680844260170471096844002983788085237176074344739423628357110959437531996883706349229905670316837801926119642802691560820326215266625630429712375005933444676455067645536833561033839127654029940597601684337111944805495208528314024900089627582827828675413860127973381255183950779694098462642524121186950745783171120736288042184120562124310977128354368529165150271599524781990993166631056640415998806893356105363786562804288260545969786169191820921785515829314742068938072264554469317334039566682374474933760554156902515059173231620643521776775601431797957159645620296618629540985608381590618593033976501545368340997838658795558184053368043057244095685981147467446855300340118544775474482668184875077820013498709443928365766750569101358198135830058969098220447182583485123564007394538990420843740898789324031757788601472843149359505860533495082588225844352975636048463216998725543187166705527273473475650693021946860056282622938985109426387035535346978483562248586191325334140217121090863426627766176547086447805625056497550740146249354569044694462534267364832790852843034479945600655694205747962989986624129654815059424594924056929849215954120453724895851624641510150433007534085792909946489286453549631680241904579688978717921130812802310823946765590447945663842509458930621686385282460047719393159648393360528685371601897551190878838898058891373403899365789742901554455055590601517679235546041224114080140602170198476833981550184024963357058215332399373500426381463646270857276245138057625940123932090823212433542509011655750282180345833392993471263329711090027584681121365777380010026047926946763048293906148258821298774272523067034033060930440595687411275445598642201325871639087603774950152020993713625060877142443158025067135991785744160456152608942855185533908991515048858982406585716430672642067725035776880504021353355660250820923698196186932467424268642156161497538447535547179183307946142573342766437693464021347732214101509262357333156495734868280201125431470480375179398321971219409392259105071183304830816838002236713629529159971050854713959852606846945025054440431583985921448261537460469854314002525843724417873616838378900811510508543327100530392878136450871171069092657754850488515656563589742686306474237743495294063383774253067696428901490344198667747009651023108400484179990567820482344961102948755004645258635808837920940846076032844935856983956137621542116115407533069480770485274603546708541256419074650687105194231250218098424805932261241268002821938487399106125985905095963426918463100551641698297823244291289868361894757724403956880738002027250380324080733937396502195410107861648614025863211276472003934602714842413612499097905453384485208620592890405003333480208495679731962006389352187769226450399547061503430409541631743708410557007428376736951622900152491145818325457537712797519681910957144583851459397981800987374589077725283915013381485959403437619827212231530733936946099767374522458914845447097167093024933379349311112691070393875209389541648483433155869606139049765411785030252223646236663896953791901251627768675324032762132015708548322751055731627399554731849371556253709161685905321610524092192269586202887573594589023566335440588544476650827089529015294471998421151018722838832391107233636599437236942017322929136735532938183256083078983352242407783384875196215467000034895633895491983158215048088736769756148483677287274957660065729249615904607632870610183772510877722315627160652679891683448143964567736659851660123114084375848737083731175729008116270949625950928595587475835252917479157552529581745104568781772927285658505888346630624209734997951051603554800326641853139748872482605447757429087956655591389072284275391977419951584339629074937211372761089258418624091867148645022911335310614722346825599114448824930531198165231494682853680175942869478749763632607541420425084778593337051189827097302335778363768319615680971026890479914798612304989261338039332727146703601668548864062833421888406829076223372799991857514241998109122179558994448914079672879407691127625399257625803351767435903257660228491456251200243965685462464196845777773978833332286540249111378690617705158545255462389633680884662985541112815062783401963500024101344937765319978985675367329130362299251863888423900242821392663937740146385198235322391475418893487877085336177004555254675643622754553923278895016936018377377317939095270501578109860766241881056883436785736252975997565877932592903508929750792849789729297239154028330979824487963772631695070244184902431314358615087687207384321619217712128378459602303796890618254438793934120954066612830953710629075740445150785746558277757917923707748149685340140759807205130608886936386244911818723797570300859979529414152835453310531115719730896023178755717729806296707344129536401037091250742844730938946922613132966373155353632566814541033854479628132826158509399663399592614100691548571960088772445778890478654248526518153193475674951356590048352042321956748655309431474808494451359809130861695245648911762683583387533048739207811949696895782549472976377902725396606835224852623603353880669519039658280207389292628009066463370663209145360250746213712715682665053005959037136595552149212258904567211525760618607731889850648317273924796874819669875699953108676075370747073392934496679678272829637412669720510084969994767935764636701096416960729855914197954421386825929209667262714018931799751282817797811815512674113783783244052155383153820975660953239361485599642717863380399073899224771500933824370992669997525244860342125982789915726890744023185838017011536012355168016966001054732509276652134366382904893081358524310760377039322042858270634434829184798284011510424225016367159924145809327743047550979498961964801912764511321840695958811612199880304051364397220154207563203460261431434648705598214401997293238460026387717329653478905939728682635130215126450889219569604968610694087277249292962685277190147673861301122728676033869655061425975384162724801432260811972365774293388277576157633722440129147200650275804499654078657794302211410413803665459882036406398538793327629694858128390484212617471580821873366297824845869315281850039966889794879996760646473321268671816017013749631606195621423108498094386605361615274305507690497101013090962462826107646276987168614977528963043833353843501904781505119906813546651157403168467721412191116490447852022470131471185355935622332301069795629326266027575315554434730738402568459174087036230379547710893258897371474778593834314307475594971044019047212544356138021508211737877473636800558874630233528623462743907936058616307726056003689372428916772623245302748838464891776036607207066249440480790091349894771307626656600351555094117709353846375636696528514984950641820780177765932743563237305190475563016461059823844519400917776732997162805832068733555699203165589369829972047036022410877297171175081518001091115214422792800764931765565095134178178076956385899458075606386099449106841266243624099676698862941065704612746835557643607135151649955819465636247904916062939581001635661039231487735431826562273801528598608774114587774985362273506660819638188289596489090489890189425191528690595764637574800503409279199954606368811028223332127840054752757750832114870658035125946396094840557168654174516740115333404088297764267354998260025727425388675885160698044397358633882442521478588561630050429774980612838335985252060966133647262304028336722452758844964293911526672165141638096503789581433220112861644678247693507220918279339636882475012711495725124078640786928022890115828517798479465308126426680927183814946053373209774745576189022844444300795137302990573618816158023691691869867563326857037181514056796446199379500096642657318896754235729917637584441772277286895108904314779329584221446652134479067899779794092913551602904682112788828579437563696437300049418929499829903154788870813398205442452825463701970701320404347178863239149731005587955164305495032875519476341468486287074530833376297822523730136077285439105586247611070273625215939583223341386163491137846368466842612831451768979864424607062030724123218793776592553317539043547753159604990217621095635822761942755295346578234695599874194835406410974681864983821774461457994090972484859851979478456469818819889047224531088590365097220652256480231416164358600433869751444172143448752383175924995376552049843282248456149233826849214596048756084367950560503418618807899925664235747456294155290589041080380497453889669090219649368649786141451002905399280058853419347734320963995566919336056814646184361371493434060765741190562429931309862229983080750576332477923991041839511340730306678058873926219720671492111241792329120601322414313598607798104696927783845763569363973296031181691843849387527606718430973386451778330045147420696580074745741015196990192251846419756036931047029491098842667189048342621154554694252125329359035584324846868602519896010032639719237294115311656883810385929916991873261909519622331782162493275579960643833747049111822743670187532572510194560188590553824348637918616414131343087971749977830536951770444187910753812812454673603456969267001753927923533804302183821023874548243948324404973000129841007101159001730752807382249756932624717126344641255279663125370438420498482456916406480352142792126875160284356571674541500307848759419438481462789495130680147805394184885722486723062624062408663311488515856631175890785848612508159287620492640238706970069685475090071307062858691127768879831521740091180777163868532926994824612515287297158367732054779672880977463541268272466286942644724713753218630525916471288201759866031810439970855979175915708700480705298783493130443479729805265704307651413557931757198008802846065735706901706763078038801141577173953969067815550215754301118229373367740569338268382952672935384808460485713777228255088691967414419815200205587930409872784612212224567660802109252776023078719076435550883829918750225045724653902886450922707665087838592364871503693850543570594182771742061989376623326529717548009071578649379206649100497998648439916160595718455565564641469116884914096118713541080182802790220004023435570926647204994800268447392495671846197603931950505837156025441851692909905928900675065006403020700876992528848255501553036083356427444919937118676299535082179401447955468990408975316403285243580718286042972977554168436937628402069824630257359304473173290307572081286124015815855342739430141744540856688640582998311596907548046537155450957265532410795222808441871666562125235875917483228936861622482329918030442693950880854534520423205290038674651499035778009269007078194084677683603326512743127222172597973380350651693199054474550627271549461905176088727885474370637153184582015976777815899053898065629440672554814002370514667956375187996158351518413072736626641216296010623051092693622254456246912508591912139095535336464657030617953394327722293448246759075762748423179768001250893232682332956600338695555584309064520991872569660546797192349998244317207114556950751077198063945421670500851917775788791888702141001032256586040658754528540901981001517731700930650804712916603661668569590577633397560321781544219185000163487975173787168074413267650222891522597656998216538450570299625817353630425128483050194184902255383760749188685649743717131040834338801298353155588303999457522319210655477996694899573329842999740836428142239084785434466520967450642265323688234492937582058740130911043775990541751424520744746555566218831457253401464910767483582526794061494086750763736554321255178239346572187201263946512285256017958271905387058441132671998953961473277130710619088428243617108648886573737539487770795159150047260150148445799465321478304029385168623035924059956265840637975040871143287407650660626254860499349597681265822970856920182565354451544205978785799205933317644155868546466208658083093507291348835451789688442797304330047417624671681517193632284631832497181142407273394685910705182008266592329563252196421375637616522792974652402862405626084374217487842682473208377791036491688086276843277761541517727053935069259927012155555139469951288946614471149133702985072415985713681899828111038164901214226652209586987874170221936766848076774292870721469045170777401546248472101180067934767118646918110071803419035567477486028446502546296406069657117139495197327152579125484342705079117455161780316423630556867787424500044595381194443886343104596956781248670016651076868013285955418924112315477551331557412327395669313226760412248094435185362018299479521401602959877931735701267973295647951856412599873371380367424733618934131529970403353986212054233696538737616875484633395511243042678302976674921677420724916136608043834959719830520311778711583848725378838775718840291031567244586888040140595092024617055650537937776018091677663100669803599065813558085319281619783608702692797895684889893456170541191813773159803575201731285051683893503638305618343367271340733885943843336893310698908400894679819327055059365381799180341502582806537710338655818933691009964063653713253817347219540949936029849877650075537253426425869673210450875911460076385840531325190179111720022022824627238715038934252808980142038323501791256358350334467439214710251426186357313930302855156640396894520010758048700375106721181245407845481160868652825257563907197741718630131311820912110145023827247477117244920246854528095950105431545280534031615796431189209361241361630239689675692812941851638052058214018234128857752653371716300464381933516318985675834262522664794264972652058512349177175295791798199136970191371302903254422238659242332235345011553617846193437389775441289965882005861468147525027635155357687290894529917613351240864794180939154410920770061580629198493784709634777028414542049184042659298260939716359294869144482978485812130396655055770115048395213542919116129221977222458271618931798383108009642069355779834872050756516408014405006574339595363565453628178960393825235420186836294265653852441539651489680588273633601812571846097328490078725056144537067407185958157807951484536925547850706042452427011456651295171091678325263850907929980726835190446997417577159128363545789953965536099882761295780017954407551886618255372285426377113580775323634084557795098481054857726531638522985940817217271375787699230719982874940353796668951428303694041334722387354270919464405365434377900025306246014124130574793685487994888281303162538872494083986089665874984918538807835352680336830959530530941271305562281844628295148286760433951509720305927988342876038531972641463528720398348975111800059990880881271025646435802271262811011396474950850055679551959758778410023842333520121381800666834146849689045650608747749372899893820910483434006825543232283422853513381159478977874918846417625472374247606236254315597499245763715266465489435900834896278845811913694345483163871531152734441397917775887663151727526455210286625288289060998860758332594924627299143866645470321766258579519960454808081099131183167291051615404990153085789136793962155476894506889985336814679960089645579656445216413785341716043734879123060155392427421749206093871424672459211216449352286774587416668229033645673627595905529387088034656056035273892914119143665769417391801788221687593200810282401626475077275074455025282425087304697166238100261347923679595915000926719912349316076641260380882601438290505467412324587250831246883077338399837773291503324111651018790438914303438169025248512634895231413006141092484339050484201606799467788987914501277103374018077408819057418589882700587318689851773724759673707793512143640659318343108723456318285633971433496794479089524079271163317369760661338317411832697404702404668595255108975089970893589821748605974885334970764430889539706243667771362683674601868146215013763256027313049457184597025856333139071566937937348561201375170972971878123376140270598469221795362040971516343112925040905312460938227852884933042953480837709775269370226100571772832192973140376227311105792738072492380223835935100931524727106387202893040671384387994926799832334691950920531968254910394665890700238633558961427181591610640084376364461917514293296115264008086026082079400483799421523515077822584119456421565874097033522218714120990220560631186316538370668094288230810186288400707045701182541725151766216930332141355242413631660816227475327798917316499547725858496573160245927531576308105550796115142031025065116364846133882256776101919718777684440306375866817387249383020695272847192687631761688370405618201831381160253533542890964348251022026625792926354556314329966800296852243793746858410799491805712903063057806496874245590125170125161598799081083790643046575533973258954447634730659582477624194541709815172052669233716693264778570423900981857081312181398678120128134196387848944777383650369902503841438620207585812652725678743925726557920986770555182919397432017645011188113939490690384978586040846363341414772477824325404210196262361104509354503643686976296451514965425150779158083769094840102870345867670250718902121727153010230081434361759814802603793913554376558562235291021685278719232836925087070632997529539946108058294267596566768885533893272858182241793038551417705235597038697190649091822604305618473447351732883749684147119953622725587636226195614224627335635080097724134850349732537364695869580531579619723406035946891087900329948491793324584956429693216806093973597412047434212757914052075241003002456392882219536438827581488233521147624688161201030142892900374709666123715305601855306515010960981386037092893998371587762481823718436751053917312336710520928691408654888974645749977377611464268288825405502936876812880894349770009266768797768267594645157653522785540914846007111983146899243609374098494024093158903688264169459114057142682225360937153200697495429819070666729427672606629959172579194853907541850512277960540047280903289070160807341144912027296263137746337435484617325786694734798660732578861127151604875036250917331535616120509074388527612465366911905045651714834407081594830914223619893543990246391367776081839530663809117676492147633687048341075058555413704574353785372307175696544789707220750565638956102661467436876761721059603634222489983021145459730023946378573542510616490331843228808191650620072169182051450165623513490283481183697068415429407947508541467099924157392300235518915159860305550375442395799331843741566390065723446135975433196389902107403981980467046882142964478769018290488241913673396872278272289263081104925225880581065196357843763246917771816670507347870409285713955529432966207448625364246729796877156030405355229492413273194873252067099052433053627569554414909099112101567177892986682755199290846336456801524373005353441735753128605550824472768953799286484308625676514420401376023275489020347087080832007811429409002427080903567394954031434380020510381487216070646923595539441614154942016781611328681783055161761983350678938409859506146589328811013410976117195581866868032510571864113312119274161017332437012314608635435195293617867285167286616755977767138881554536377591584850045575352715025106999881437667336027308252705437913847510452255635505327517529226557215708947100670523637578962444567957407595249538664209897395913302176374050803113081253295074064970504084023687804132434148160792659581221187816722734833908213536257805908572968437454484382469792951984066152537703435319237281019301128623442568136410942848761691079451010061104553039561868249190750626325698963383012381581302995300406369725225959019853163953863991262126373148890187937930231386631539932514111059268340738530137542218561849129151147089222345582317114765554389679011630078732832010682656773001077388844235976771498533212796672742717820166434837532501708092616019201626091676040745513029143172490872364498379980091849193512269156747087866445040297352349787309564557645466888570612035315230428443301814370328682443174006888597961784783716011404637213787016492326196495935913287608092329033635334637256954545933277358850515738284950255367942078504852431630351878153422776722639641929583532000368820960201004161116243021738009901185901854291609746186805255585879283899057694956942378012879215516354479000014498765554978668975278626807096684830880485479510297843346470584571130518675009444414834709322502600578010842227712454109099664039714680738658041997349636976882366264751857399297207535368580304649695113804921514571235662842946785964992922757019507744103307816954061595228951547564891887943276433777677026694781374946673669106127384799637340871453239826328550488949653592734823168847623159404135591064835469121096275364262464978961027494017771266642033890086817151111462717167873465021281389553369915968134245430709709171481481367175886597434146261964183496828114800709722566008725627590442640564691415190472316586865506391509345022523561025553525550861402881762327641376826654238686534967429722972552983008173742377949303939464409468851883826081260811316134404887571637929780891015485243860391332639059727013988098123924040180079062735402777085944786909708616063770749379045036093800843207497381415342525445160621745820507470305699295769136072235458389623944874348608336182409519940065411562513154829662144993373979533316573385387622419893938218384252662602767063971353186371968036797061814233679559523697436694458821406822160289505111769086957221445943112084482577515962446187069411208025658772112432713738932834115876392450216500686757774149542613144266091784601106009673228215640824075703697999371627333938469335596705239917237350429715461901745251597486111559502980386818363634344781563251870927644533574305001240775512362908631657316320043479033609406179722895955280358040502799862400791958385108520165983827830561270800583005960863639080203763308422625141997992213194073560594191037922985499806313099376222219942403592840510906954783000805931039436927982143554173170681711154677492882566101014437913041517147867589179926888164753457192184075226965452451910035874029945011663646825350889582051448940144510903969122767521627664260991746453820036080294088406140005259498051443223553284869123756795235357264601009337584845553903194575940737101515115271472662433784300908642653259898610053796637230963540379994550090070346206376816800182354120409115637582766038412112312860116818944391250026278408754876712132926296395367212210214304480717611577383599388527753229898694986391700763765912696239947235158726785381253114342968329314609358761925359412114613961481662066565709604878154193730980094289201317069336081627202102776411559338681209814751834391688170420904353240379455279355738766566890344465161423508739711103988064348288734991547204333422710283765644377127324625103693719471558504961712796480842630782717870567347147240942834971045633212806891683692491114863430961719543773379797617740352363499268201868002533121638449142006168776132458622337416004454722608990477958770625795113575636025868837215908541960955581114984235715812787891472583669208607979112640246681536680997917949535754285736925016953956806559467141240011494098511528951473312253969902707104064776275002262845465886102370209630844124994960808317462501845554793573049103468102622753116688729553420211144760473584192686984046090783430726528108384611044468520338403095977364693057681245591491284002728974601313899165255976616012322548829761217754361285954250203554512589415601565550299699096709014992314437000949176947403743555111367146871983139250462757019527777247053834559297545682450297740527553810832966940955039028920792415710140480069997789779619745281914111897141965812622122401427736766550509936035785853552944699722326939416242424353202382267197760372789191209438054804948189218020898972013644371065328617226396469503141049858418993307578635149439323874414979852624752547770783585704983001493677580900701636098450255504817279400472961677748447731874002780492579762328981143018890685220807619343514764774617097640592527657773499747567567874005150329228621639461698104689234218726810221378166917716566980333832714055758997095991623497929117780827550328832730796453550041507398247717178906867373878598048244669862820191002942656640636048772865433781161447494073512082911699283732564102261899664670561952780472704054848967082549740747643056447293215247517460828267848377579623267335951520654772186695993671735946202496045775331540739135742033259369724961141509260805604902634153390050819822904068638011058389443551150491274552078642629169146778831031385051958494169510330500430119146243590138396194692701949418361494516504311881518409075272981660252541158569925571055514746374779640636372491825363072980542179523160456698121496180550513081496441521936912464964733497279502224287431635877153946103918739554876731529688773947960684393537674659584867820769606682240942021460694732385199682863445953668587475827031405116860584920405375480570546365486873416759798910520634845397353483707142003222173768868025739705448790159012430305230433694981638527778666356738985694707988443189773282909934549386624456692975887934094774372631774746114995866674115891403361993413974465651634517043250272081546423800240200255709970912338676358788961841440805701717415935399215127910300474750704675253014501333550404666216571142885185374412491584728488636619600776857442703643844104549677682646327977888878020541504961904254633864165660037472999784729035783711534173996641239722696712933096941178263116707031067698303161014302500773999489534169684423108054077623368914716595921095061076668111964005968007000545919948537422696208925535469634003238456885001402183806787032759899496315680059301590083958030819111963460885443354170264637283135817016211899940650067930303126585249458989824038746362796440904154565512016556165441910045668287265867144040507161697954614200030279669444572602924698291784883650595095809072333926287706697991896379005490659141385573352443764707006191645300333360409064267551228700330340530241403553370773243569601060232477734531180890908238321055313111780038580024594713400264768095110223799616273316813248609128136542196523429379173911561586252948216331774812879621558846073863639574872206941636928218248848126531684693470042946785536093339160682123097709144641076352138415151892367193695736118139608839857450548870530950700531897361681818731133221159975800155608470407125729962776120501837255594739977348333147084845294821282848423316988408980902263843331796260156579551997712471357856805867564512434153317438773066134030951185795129877173502813682182162109288127919029453207874925901257406643354268580800408001419573703329248959724429214304242103531703397010427060635893667633471251432356308361514516794702024112904568728982841439709699784555999647967656923197116634743797531217925873687669617719974190967955094120164075150587508038403336248235743261829780911039043882382789983684663396626121557157582618916427120543172119450113052416036758869146087381002069915815162813033151544835198319294155287319453821126012724345763378819055211656826596994261322166283472361445357537353305878276625812153616112461363266234758890217296935067883041921030517600153120045735966100256174351119079082511427776137392523457698649229134424164736638908914622783249855764088247591088040020673012486653213922463439881195589197115875918391107377157401320392160592530410849137758814347053106933761096975777847031842787744115684504533934683799314089889095317642409747544587491082670148358061902969041837374821922643176855944126225371712006767490139777606024533606009566871175928531904126165045323922773616678475677266370335823276120322992201180382954235409703014301236527966902187219695750635087880741091812697723886200976908201795301699877354520574385501956518592281322371211499749862032815058602715193353497236887927400596716213041947534756275899572926283159927616468540904208626758546158067090396364648229833542529938246889984931761570279424824088688268258652498981535194669066705599139999671498612197569000814234831324229664746711316965648241211155956248319795381603220829494060011073605235190463477399232621757358544032708290090050122896388816309268363650973903439917169442884466104567319990657995543759392842925640266936676649257639047980128305734678640710515389115581944609713407994778675644502128194482290275107825573204410760972626378431114366734181407612236078197001269102527548676426318568039009417124095977157204811372015172677635651050590049335156318697638766199671273677827355991432962732771019418835604028544674476983834925192626891949246966820506914965437687081575320148455790100215329833617849746677407709329638198012412157615866794734736466349576560950390965285317878706388868278435184491609444956870458019009271005427805548832452640175231926606779877458039491750550613524397398984166187846517714556303623483776530291547627524638913405331902210200937894243307883778938826283619629961732091799436963569679497428015096498498141419380941831616799058804012980244320897603944281563240986324018841359359428972547220419138208528909427328216760990168076274621068225648351729972103276202953336623289159872876776260880125172059132303995290092732387500594240873845456888719438347434825086108097411570805199916312703665535566825558655407554406876319143916912494311979831950990286683270805450447083645769379082238004050926626436509078913038722835661913678647790432787484300619254113160819530418719671254104649082559268515534488700490251013083333551541153265982252394193984817601882229617116489726745739537139898370909204535009914731681399994944651224863948820577889459447233076995415971333327323916970799242551601701750699979535238654643106414143250430125617840734134527863051777087110750032301583455455602387833831321151054617964693937470275645826551872781924504009689975795533118006762913562209294676426804204657283027427931972828182901447020675818851703769164740726438937992120513864810590234758236357658870847104184657819585390086897855689059185937672998718761696160393112849508261599318270069298351996094927319615316904224574591129495602790285551095046948719842167462631930044621538963165115923067097223840948228881355127605989051752699891161086727234427432684455293796019486155595610343399116133482446629204883532590389415634880087571625731915668387340290363136545665903023557233944301648910971287602666129702245568996309768149644205888401564323800912787652131128157419608582425942379516351932165590943683140117506752604376887907006646238350176631836410604294293654389164951026587211506392215384278216448312635815400054843412740173083744181418731598741172488639605762470688811796078195590499420627527511166696014536720358370616016137058176277973884001836031285958029020748295510816581082626187095450041187052682069996209543658009590132683010464721412121908332195164293741533146833334055169464522558851745948941538879984744232320092142697985416561443239798894923073813148791628885128272514823942441075999623606759672183333054845691976351140309349831157572744680852457547532580348820730201665581037828734407502815536162641776748555419935912750193552631611767663693440544131747390247455498448688428151297496513580264058553195615044181889434794749487665899753020488021020803311337127279429500063448807638599068759843810124482310539165762099602839254343129095775608523769746014876106476389031253887385871676329979210094599881366511580899861295694800508677417744076563654105614467535171426292525824420712692607728991971529685531480687579124770774661924171979654235717618812803357011343940012892546426524944291613851641966062979113163654567866487689278074449575458101317346397625567376747619735332306934325397798406389959232238889473502622485464484747340792218754663850293191683258070698007066849097399759856263970818862851224664469076981314991968078829078053224188177333231262704174797630825932648070159445678916556663212855207534312052357143990298910058983185882870509255906462445399636932406723091659850504912640965497454471598702598745761494500951129124234971121160808309591244321133575063199994491682928540512093990490929614135687082437776401707889795151595146175241344779904904704646301211062418785097000250758527522252823354285940748415594264839245069199180801015614466289177678559306725996612241248529595164292441881426804725045652386866333631090271338592731303665531856621265124493151788761148805856343052760836772477018236311174536200487041193088604714228678945592695150697243651825043911759268526460356925219610624187734552177748840998048049785646815065006296092873636053608150238631903931985284141269254822980728169212459216068812463730945769110473855650390303102872241374682696283869681906172512345851799032875287524471610802720463817737191167954405338892128124052000452951005950648780353373903526304004610727915384903130008570955297161262055911255550722601913920743891337988556746340569303301339734448215014120782400410096787164542486076377930089784331721912305648478587724483200626377249885571708557374342191775518923447443371818701197426129203969070819701566001646464729558900383369520224377881487655160211243394785182404127735406905145613132012429611135928927671751930633275822556736478058825155566787430848049473656697788602217151918796912183545829245497668630606489389189244122644129744458490746376303429751357651392901155997660047465704593711795055815773927754568192151085061345771074775943227405947701472606181212082296263892563796881974864447377067713115435954781832064426113808626507347157739893865467195697222902208969489651381944420655736653449399347346722352796573029079981679009442590685714307382801879102537914028091235631297350402394622956825161703572156070165810194251218249228482794897776959117227659763093322013801113718420953379241519411694883683428347814346265017321618196155248068820852211482654153246914033903858300736531193858267387982156761385598851428427551433849045540175681627374389777768493430473503950394342752632241060049506815894172526531537379084058942843160228350888647280771412484916259166024609765017983772721592907916414355062116304510867618322607033813235554712558699757102230313074165532275606111087004284789468264500600903473202278824129434451013254683311835927728007258747010959187647710756375398665368932737403202748222742170802540196708653922314715787510787985701887771729970015223615947149600568346024525039155599387718829200945612092624761321284560542856936005203475535954446631402070815830622656489777622997210953984470861819959440578434810230230558758125022211754652289904762997984659369603652692563465780550883241721104856691393370707268228979914736796090002764860566952059688516794008031677775496481850324773314545128028570150416544145511424792199173524119937692954650977808212700130006874243091176202094544890501124605131377418656598108705576520269683657309608126000299582935546422046129145644971637388195999843516553233349927618785028826022560269464451774398317191514269140594319242241112284828924364754045534654182266823486967632557237734767904825693782613676926054465030240505314588932461445195479758127930971001498038711494066426110120519326599011811827105891942852845419525415915633032355950191577348321078890903312556174886758495245947655120048977465788309424791945235629821379334607728761517979439365157354985226046040106363134822209144314055197240327352110099523546057034877102749160200224304231473286080999706338457802129867820038276667613615787388759735202766314425355175130326135192242864663805819809386952755816825772693147429043582417012835617422509027366365574300506993130317508748649970824208552330440517361036888183990605162662341348535648604370212089367982819233883544676601349399219888336453684203681600780546723353028158788090563039379513196293860398361647036022470488770838853537666118985908824233234449007627105447764188360604989532308245215680541667633944869384245509601772368821936508919284549039289152366815166012116180721933492848748383333857599539491270301675846695185318109006838509024404197216021210266589192879546970434869952579620591240327161976317954237168406014673023517586130836141889985902686378604154133092314099214576080135547673372822229172914106433706644605729393728014570419658268281839283417444641653143749118022184618277006753346039613941829741825250574338924508039634405269421114371109770525539809529576743195045287551665164346780559518895966174252666947958563882294868244872386584250377132757686416400820833625533510620305930751834963325730050266313992912074650555940452841739602293615161094740870791975611829290392895095098021447793901028608256811619282224841152824068661752124185797493088523699124593626922183808517106633896806034057205527565688758138329093557189844384558608321555265414079730482665636458645716977782746512909248036262824381097982406827261161847026424112287008351214651566766409398146360940517711477209359437812417844798303375466145761464565091020426777016279453450675777438034857709747601783363522578239832604590547308267700355344638243662294073990908637803502261163068926850412681807230129072038627314626349430445871299610455157289124925353841384560725138585266438417627801587587429933314970344501784283848667972177933234139244276012414584337898623386966634235256190932321932862161744274349700731841522951456239691775591783690128798486510031430349894291993619753118278421928329591380785453925525764441651873925069267059564949277731347971538749830556426098635399126937153654983116922460601605141183480841930411126190105475312978554197273127637517789466961644989713380330127567728308503699426425743204490976773385320544996739219156315732930203933431792853215380773058417941558201712631420424642279886101355780222953978214014923124452479267045642637689391927506820548162123350458633676597208646942228728167939077532445742937203066700661433960182984857387095332130975891783323423655220519713419225863241891686844224078885160143490165070177499946434296541786839866272409402233818826300000947791144006383556448284699782052997346615677457666334096848302943652575147468620031015478794667227332921187515271455040887333195230551178316858110033019709429874653946595580723706107661208748843819899304002834165470397066476025144591249699668748866908347362208072852533618089810063553952723069502982190560511929707633430030335140998803883851643812829881790383727734704489696086355728843741228237189926903513550006196034121654777554749961956810129721066503408784171041692118365870321817284896535561658311717002439172066162991904815572986135370696517577595086417426036891680335994634161578449300769170603544016505034705348192173098056991223443389251418812254311750693466889656339175496370434259022394473105608368102947072044283447475442057459479164554268736063778292591873232124785356180892877164773625387836868945524366225362649817068589873545057408122015459399917606188901150791503826188766248419359813608719664438036403538364655937227120099163454143338943663269019534493855035044701078644974389556915584269721801166025860330549209438966681563305739071000984552409311976619148272641105600829785916439869174850110030591352572665635194667731914602073405846020148610242565845582220112036826654082116977598378989995226198465083206365175486079425632045112370083430497270455589242332450461545706101361278814391351913625960176592955131329872161067875242977705131710604860381153766424811409484436339141765543542306356870307583281420124961440880241995547441976704845486874742984798843324413008289680274277083160603196722045264942649998465471195502261608446591982344761553325567999840071389734413886075865679554735375355490483732603807431968800556823807000699855522784642405645984080999589345987196652490469916481503403986726486914821768292079977938110155522858827448387003600260531457375946130045376136429820330243630384132930660592674292502657722439805618064868267580648708165181176684037009496909045612104420685257984507862539494351707370818744218488837481143721940060688219373775018211105605295371521447622621851435451917873258303550167941411606467400857560731285355394641505947496617238008760296728726499237206330634315987373384987068085266174512749879799871472677074896482016112302705301492643370951685448700542456116684715679582471505319146757653187104029308520735254234233940552720429625527363078783104179424520597929320787194309586012914544657014575532801175935674578327803082486289315400704400088425198413258222036185675787514504517999558015929960478093931940592728446606854155378523649524319680175394570301148105727841673237252610685287384600458512328539382481572631183559069357792242667825383551913299112077167103952595369620372797669897036583208681423339632601361254650904852198742695720837053667629770546129583165690209585366071521139272513123885903003479167887081944844121097411357921179256402906716377141837752795435271368374253935788585902167960886846844988630452365432583232865631234610878797794786142350165596179357440239642882933350897031966999383443002934777680988913455543182682383375754674356715419374968017877667311031138124554739019200169143603696641279744255029954760659048590395566877173246635618872815635726018655051468867454486607965618018795570572877481654476091580066279531444738867877402985047695346890062523427337986253305727256227148187658865008525847952804055611659167568366622927825729200282081859479612556820656569642184553814744103013104299538242642257634077667509620026499279675128908842590959154901893504707276487865164686620820705464318822927411850628812199134901473607018952597519619796365403798032116182595352308937352730195636295173023945890078819398991300772624542564409155294044386328574154447332579316244746943330364637529728543904528017768786869484387470876352362176427001405052773719926921100554803049651759637114929614324313468690313536568133736086135207176726591703009902155380309543480965805620033699740746594557381406675937313457073891046770527427880875528447444090447522450038052278268313386621089306105008938726406632209301511496082179041108562534353098803002367351759179514648680249681041599891851846744671523300104244815157868695684262727116664701668176913383020351869198527576694454451033908021814143533921677549120966525295516776529986381160057848985623158688616857220196739406241929201769369655317444671742893262183538670049865364760264951957230892298402251983025166853663723306175955717428795451587143512608798710442883551296311586260233358782385638589392215162394967276618749631904147441022374120365488065054820640937335576258725216522036747573909932419568010294541526607497584213024337885574059739241993205328087682009977182351379084175973987065650799468196968502225291916774791161071185687291454722104032497505610327397804237566172782323838186216934109136004586987315013454490723759974463536291926400663137177263842183347346133711231964143684600549551060112571615753797511350247103567198172755577204616191521572442375345434309396244413593321964260757778466694014784400637399931357852375282097949129851831258163766533822170476860195254905250235016397189962986549064433288046266799176742848433034465784140866967253863372176253356186684977114200363969758793689194602380797048927236270448566413864809295972109281961611215506911798700002915591072161481606773394015448882528632169089054912717805529703774428263303742345882215153980738737361871221917026481061124046381233812388827729316628845739578252721751674689353252479293832487758101551709900622141017270998187015253441231442825897335072488744731359162382972225235143201269459340058820910751354886621740231627797351675055448845626260455417157442896299911801172520902928971649338900544616119512941977817031041494276255055062833330967091033768196802952260957584311830709599806565550419580354110821676036735073652566848965167547979747442340930496841443034941091098674578161288962969814680872959478054156399122268619443021921825093925188253319385248098711076458654709737144173000228734150615780805939262529592567082471760760796763634278632133061726126875682682731103520371380964905955151472018601188584669757175713705923912453224841205748554368731907802664084549761951073280096729535741462136125572087436536936796421513472121470829880928414941264915590115537750626007874406551784261757158535762483405271053999531156415146133428572097338978101679303545981721102904353436032063481075472351372943086845349211302064639149795348474278767449153453068931142037554293161059164324762956441513664707522517144838301807967337910330224955799847759453835611131002092688651413256385467345720832564505514336432357565898340602601962007959914720381812438196417793300044613238677045295006093349386962743308145973035153684982154374881770719089976968197984202148593903775817395424169959039222551661574758805428333909946187161045105868434985171762105782894257900987137630022863947695651639851249927684763485042774655490600553783326977697241153400287044806131231229177107665009449563810723332663150258736700559373165318659231282827666796681741100305082062510778078385348261056528970451696757594215281854872706276262561368643862539933529413052664908351963000903243277038244318924008678598513844941159489735896136041077784500912463597385518304764905043407682035234351474967982414127441182321617460796258270168046323145275783031581053434206001155986434552865346129587558444335909804510178336334646445508279025568698907765320329566907717489678144819460958574636883765597057176299307097684852035729044662714705801970670548026438483047421467441275062489879816754290259578107923390181026112089875949899453861215753618108269534468594378245562347434695135833281650760030053206379723094727335433334467967496432703408164129958688995150019550519835862060797612129700511295371963956776827493604485861804675500099667453012484230257838024109271300066262449836349332298217012656232581626523587843967090763660453190783395442840435342512205375971288958581362856628378087811642749628884313194735066172651564876973491149722285479582860320419913082413702923402829491471998963337235741637473814240666781702871233316017503342088222798500374745002018588123105673936528241052808997714201690226219237478433148471649060893569305559797878361096181294649696797999622157090295396075129674896045513860757742494140512362223502009495833010402832651333697324353253939555426577639544332772142398226317492537942043693126841398998799562739770166669808150588939757804657376110600966139605630487265165883545973182640959792483726795888503983468615723340063395340728222803528271895277429171555861741388335636317228591951080987937882144709616022993039537999091533564751847273946223956272727320252909717013479001698265226358208914436977377785795329681404652998623934274960134756801762739288573123588688293946141824063405018876008195432895554451613477495668306173002505505267371682674727114865499717222561322090670763074663461693799897361473136574528105757361085015376267773345491595370261781230695130739653751316112851233960098866336351759514879783132722568006099914426373653878916162771587358511865477915592478860797294745423895878503938143433467659305184276356690671013637442034358295995075187315203760972546393741445159147941497842243648608414371555150243837575357444822686635025365720987996992139318290829109412665238880876040420906959709240962435701581967876351737245802993861364168119262850408316753598210503507647824766087026043898029367723328972086916691995052177954558602844948230424856614303054431772631524523262902719489178811639809764613089691606526903960068670697221230401525017421254017476210378922010113837336232926262764245611693057951998946903539835965593823946577597934382128723210646872353117192669650368075085283668938382909237590794279137501915414420854826352308763939570410793847694778250475999911298651163822836538261368305524952429153634709071932888333739661485502279512886726568450721024932138200413748999654280963923112683344474334232960603261262592407428256665770503669601898398444739609781879348024647704313864915996725814963901288660399887498691002608964816295925581165727641403866164856511391034093737290880542024766771394830590553967661585473197701234673396463152103231456156936194322067713272326819205012506274773440736983623408421328645753717201072421001793278785527986511904106780976094029064803954758585919007205022458779425595668194528970929961564928802149182931086840578501774772882803010009337302700303620797390231772052804254937167793438724581600892584350202742469099244113976070534360319179242031248690122371285592470257904925098721238209925123091694502534605183422576883194828675616067640263193547669774114154815634490995054202106438667181596656021523598649223368842675912547581257888677054132642261201807132957212526293889423283348343539211214835556562518980019977503545432934457428358752852663232353271879687774394232195983835733699031492701171979634017762705497189379349688880885181381191703969734896423795870147168271181330958770625784393735848174321722513593117511876358935026047820964998464811458759231931334903725050555724588935523517762263484255678854907447360765497882265942537765951012001941721239639809230041731386633562892762062367251640222888341091587189243030152545566792430257104800430759335350384560703067222351541219204464234617000860520624574531932558853518311770454929064327788585550770414619002075483032818027920723005486479217763135345731221430822072101239833143575853164166466659930561459712559365238629093740827873229595807533057061514280674347228977739796782750194263692459033873686227336746779515786354105775005404112971559673799403161928839966827681910062907330509266762242993122408286696648539730980370657137232083142040929009172936717969492403757257550702643865647631799554161651351474663432056725839519815771810939693998366039911647456635882944230530160940784143415094391501595932498525440185138313128662163273772390651081930708323823595046267356615480268071616886179497992506473483129605894106250533154066927835086962428281582787645911521767409809574172368191743679509996384659932011073130867573931941800758148652419547868095037847232039828956775121623796895505134698821659518897237863810539026105518616746397010004766473711121912176767014996606716717386413680867115438403149857376634112484763472289817823502198928349991394963410816537570446602613954299289582281884144966401792037211270909795547329820463224833157426756265877372140468840513904157952726121428882721245389465491202421849755249068870995618215495542599407863075285506281027945492721617459388554473468255377565475526220423726268402441608762937616737283388474046441364139672039510199750878945919426825291726191330764389448340555445762969015799442095836379098940191805058533545505221996099889240736446887358169849805750685133403604439462881620552863175717345432446398155579261647469870853852184621042958772864565766399778090682313136422742817817500242614313315935685182484341589969509927961718357770585127393405032819787038353873945003949980778680807850758325150434870014893510431953451932239988114884556551670612822478224370530636160190297494340585141228858350975113052525000886835011057186027130744923596687324132911310293266752932023651743929554796219891160488829663307156661634553931508957961126156008183369208057045092949245494120675002588966561192579327926777798455450807787380918149273801587665607468217068930048718145836195829197192103869142202555580062774244433166996262317203176682051098555099671970277976739211309773366756342453997374409571587930869267594543563958679375531196525439104276230878660691166456012737475947940815475968819017642704080341618296460686201851380896959652116444025475927829445234064020603035603863899864646952500319401854286506142313804790763104279618889385119162062532980702909631198095634664425965933301864118126862767153404883046665536486902487292479288025958636433146622889586582622614012971584491447533553777099957398856077893365082026743928068760088995036848389873545179395128472572628737662961025174132961080371722723559508880641745672867041217355815736730895189451024063983602415554902609706532105240592961108677319972163722143764824903231147744714915031419011843815615921293717860924535200071081170977855043535222307126062940420325538118473014441452655611788385181932791266687730120788611206060457359021179570649012610093423906295899797590317626623373747690925570551726868703563551536196000602188743634238610510513821244036344845841904446942170743218354598186280841398215078675861800670541478226755402797512249926188312532918389902840934457840024125194721065551304618174230406283515397248867667612206451099369040754234735130488893146694913867384874408651326930164756873846212522665173116703135589163177430498547253777433136652141872280290248485397915960949196287910331862971492134254332159972957379214976960748265151637799534060060354773041541849769399680955334137425827961646497580310534658618897079181603081934215069712357698696110432325543505846212342398746828929038926676995653158888328055294977245876974991443123223098414247329862866927271660192915957867582470953250049073051548918529052952097300330537461668881481736753514431059285669853353586044786547728169265553211225455253353743163880172291040237323762322069802551003295205810835295796328336099520756249315795598616320683630486972620095458957019351657696245677372728510763539108851075643931955913691708793151523212052309851412494524114785711123564781067248270245368388867596539243621718680297837124910645479940961518277063137952074739045971003942704563640014524992009078643207118004117497556972852343896528945283133017118966522147539985994193239148931508351658728391705870803272815649925131361401603664816695812573781578956257602398261297191079658637342039290035486420711358182405090737925130849333864473035386122052090817372463403114653637115763532030005839596930805983251960800535925229373295482540931413813839028537916164489236016073533480759297686957664812089160524491967047232007156924588007813187997169655208302456253018597369809985265487573444610873731211924912651044917884239717857776440932364210772406168311925166312204231352142347896308175968492891641331989562354168677367149031744174504607182911979941078040726784517231171922066482770600124596595523953579725082068681293332513514321364905898752262228631152516721544332017271735976993902303150270006438600976449568946674165651362335097577427262526606141110929923921662596012278323673433183049606471616649901743896902866193070405071223366844736966119809821863652930977856322284663785949893130371785908310957733520709558840708655058817066387932501493788179075090429774288853868772937600457586876661578214803823223645157825198635179136747334445603666099428422976389130602836956181621543498653999969720622035007225479764154651027843296679418326828977863979660815207401035912434427225773937546143726085138470852823557610527918406300105430444216543363830183972468726797393360511086950363676215786056574099053223571916249630520909802098506712557357236020566439834484757428329726648483228399968095775472959056370869755985213575955558393833896681350003362615814362204956512452798451516482061021698048128378539175213212169626271277943115181639180302975869846847258120371519569684326853590965137213615089305788922927723113027990513261601333044605186208562657161166720294509191724153774239646910578900076792998686399066666805690234144032078947208045983172119171666544894534501929153187029351513233339458349401793797653460193707368083086722191590874051431367297779534909920234105231785447152369777596446971970207658558251816547738468912586858044021370720797104763781205371791373951697374669099345081499317573418153861006330177009772401856357835140109474362397483910677167126943211234152323542308795449796161771102252553988127480543580609237752791469306881959413590543509168876692295633751528250188080372866951595777722928584993401680278984471070282072165735643511120538884464738402867714480076288678963805237020734736622958069482828246448075338205678641109348919577493047822804478864541454168154045996227881831172544947391378781536511860364722149517503651870295144784179225121170866648708451708012531658206445695413069050281135686953195950358583589118166966210506312822391511175718419122537784666386906301708924989851795923357130362037859297830682220494799476744333867290771591655120946775209885746748520860027499709758214048783803588802428803109323528298131375123990132393403767736450634825994682352426816514477171805742617005293936489114046584381557781579056530978310536400423106170126264596818078811320585116931744173823856251494085091836679431162134360692984913757843116413333475047306322955291873260494657554001728906251847261175373430013316284277239441151775918782717116516176587136700267181058726165786853165098347531859343575278060940293490456216931481513389848048431097786951056095791947304948430588158347410181235835330339524670665166195033448299740747516697950541766168243641010494451357331665247453444847100475132333176260522040250833826022750434494995657263175763851582889490544291174732064608101390202437311635646986739544251234960076065653749743658637423800483423837204747576721915995208981107653586034837408771105134209429864106349709651412343029475527853169562300194456986508118691994198933984739675622997586373961434931607476492170008181576224771917034799352018144939187829441315187787877254582960805223035268769218981718345961074963688217953935165350720339525590724966281393993199954867874862949345704529539412972518687232055688832031556168783163018896249386928488831703080901641098099304108501316317411537612611156740372333061908331092972277472536180724330047570544954185084897727390153019681289372890313155570362819717229179918869154752715695797841080751885050686857989014747071461988786636508457473900129795359078251790138851524267334695222564364721278493141506306669724556089923005041778689633451318764572781613273114201458931176341035111415055258449392112264376863314067094260872910739955474078586251057569107013038437253020106396140003937716519164185024504259842608202946260723723081644960100428802608727819934638992115662824872629729406640815762520432424141619183527403476187232600750565425439101619139663479426309295189644269284166627735467381023781063305692675395395398583789783650249404338894341464031634182210904390081051276126022487057476673024656522091268944731257079848165245182106354134706814111109717727979431332002476554713891355958608892734603666640645509455944560854501459649601266066876385672417891759462594794139192433699136571085447012183162803228175762120638424586747627765634308599254465695952599466358685138757030023631051886880988033001604809091121452282931824894595268205767442315613605054629809283359118355223736641684928395865833351576827376870888268262005387614583072238080568560507343648201134666185258803857337476998646276004496278422690185282687287179862888617931423415233323159800271075355528003930688036144780911665781528548824948003449810289622564042521002942960077000546916441139650817511021968278711443146166046625582782485064592813859130271589566184083974081255742510466230021124722280868396221429521748466767199091309879877230132751769385949958389018490216246458874819493581610021812036401506949365862655512723785335705599980635543154241084970444494630285444677735400832377906694472676997318235429626435843539729290440094265016402391709512884855079116641268092490641750346338640024374903618444485076876675957330257626913455155577737619777424720088487715309485924761528817136977339999589042157338698670868642241801225279968549144412987952367753549905197767799301607332108837818063970378786284091630348678964943076865978088512013817450012874361978972736142231395522890135273251665151179543193731231241193197156323457485122967484809911118501000074297129768224287443022376301153942761245979534104446758039856567566539518574652021911111865527627612607477337743966296408275898519653994884871174599278036103138211856329290616061846683371129800045870887087284283088472772538514463021672927398855395415651090652476249576766599943333647009608200254596814354930524270530891589631393233812473879684835546778378228257630135578455153955489966317690391905765264720070948567371817943164418255308123154622695439045389518812534490806702063532541702910119988689365211981882804274440865549846585938308957439824419829425902760741052358018462546956888702366462295858701998736428103293414693708155655884347877352483631067659576482842843941712279421134748612497642847733717492526574165470319300313181901542642054023416170018383962846268338204040259253216614663390783722919106549738906282522368850600951238113528925195644832508830658786383825256995759195399467969850278054990447961198960648944217533246785694121299396205399162064194064170176057051071544122722173923060983720827301928148392476680125876616836952237754216729978832871422089806656435985332566090163420058553792918278702919542439078061514604753643621733801422178954317473099439557899837767277081864865052803563609574796447792359850365682255374230675120202756339393084665117752016327501230460895528519656529559593517635339093888660604964385565391419478104623327659157819830868705568254945967911181418871028692986885828317824097702118893106727674226750589901822680396741681061328434750960368892015844509144541136845770748588618318682506030830781937458943580027371910493483378424248095452440405757755230126320099233537532254426838432513769403824823207363942107369621869682587504544580678158955235242121165727503633312899178391347542192393593785470675690354927866131268435671771729213021792531294488799730141354175767296856294905760784292556780354762657248880462195635029495901698704068264334711324086339638669412032106093863006958650332161976449640480123019921692765466277888327158976587333052261152385581784598960886796817899460478344856023107273796679412230373277086090947111267824503332664641704622753241346075916184264963660950092372502419173636018545808155649425910560645768714285615857062919528153791737081906906896000724038368331355625423201050369383695962413866299740805400940329416261632892565687644379002947179974003564690844609806073221527878455073970467749393896967838401397028541107904682534257323563170565942948213791853752308522224644659154744720659484792917887393822139580213690212978804425437779076346116312909422486103935103421492861788608409516775877564008086113525506169462494985522462472046852525857682855307302479233443513362282425120955495740616228103411113634180135804787010072687877914086594490101065073454749925429724384794460671789975707757167784801425163716297775056434189995477075359132418799816790031317771185611566100550690600099284624833695830950901475802182246754632443777802966222599702617512801540854327524963165955862946168481671788592906105805271982017480463862487572029805427065567887691785732123860859136016860300185438279227196045014396378598745756875315915019433504249979881222535904151391383198161821090975998707272965328664375705461078120673590040351527523773342935702192990202653235608112568941848987903654137779889825922192119155401000753906153321654443694192546149159908650834566345662516204681562390759036962118046654423153504896255131343002160579851592120401683436492256306359814037681251596797381752667422652632110696141056260290564724139616808318990980753291622182094721694589825980130794433720676819434517225697325970163261277120183095972871372562363583770639793974770924660175118855505175371479783375901697815775793723775823530701664419043800405796248748490909685857346721093399201844786488619670007093984640351806914110130253226095305521006898363312691683962471799625524711111562918193298811646724586401471207963815026919675449460956447927621314718965541671431588695809498217700981461325776813328516188061236413123579546465971151857850698777240790220850837324519972277543818413597468920561842745959257092129691234756213154906976092545428024445728873189864621022926445277762386956210644533105500425151342668434321891756151864023261595573943333334349236361623110622931378745577207150352627772684725474881909367788219582547788494473040422031702219122348163005131319977004566281817094666965172210464082558859755091406018007716086454839047696791114691850055881132306663324340649194720909124655113569812737115197467847612956593421999362188807547055645684970542069949242296299451549680595046012217773158487298097259202263510225230767246534040089989687440654892839882202105927642501638383761271828105912049508947846799155238933451720614173985225850170824425658963062436080370408850262006238473217365038935605655931278211873812677123856032258098315585567083039822311925707883404451695518558194340611373191163129870573465544208708962573825784010449691146501146581850937372139207099622164789076160912334878297502337787698162538504579310358344262611501449965588570350840757881454189455682042234044157956082377413218623293327487968242138309651570522266443124577501618953694941237519617138169487289995352706441480842701728430879405578034677777124954235714632596386854547624664199101253367923867378998337941904082533249953447123952006033725730234117628210489358515289194338073339972239656993458362603914153938206984158773284722016629921679919447212602992859940227402727647132750722468989769670045680301702414315113275566143940025391089833881724762308094209249726813334827911794004999970183296769522041340802818246223016504375483980744460109337533793880916243567012059116094650699925477793201921309053012561733148070587979522955577631973573536355931567953134124182197394272006740075148440360210300725534427553755985204800503991910666472210120579060217802468195429532524345977223363376402029754477536101736084274180141029374243534171446710307562705375135061139457036499866075808739006761528111340546283574277779016397559223702944824907178714196303483556752578167714761705430730974475430695623349383993699525307042754083568941191458332570888358274105245899165246571090023797072621136116447690334826885333289870951845857907697173348050987514055028005156307587908539504613193886362707698925017403164675414253321998698670127754567271160189547904402456866993728542636653603997177107390770857249693888144672989341558555396927611894435575848178937712005450683373144724215238951797811489704573363966664674138051598638731831953999874713730669723410545497340946353749104607525712611339897290389551626277826824206957825208953286078190893785681330427228579851058343152316014485570319063939850901495796712627665311011031525729926521000027571049844878152897994931882488924199890944290511623962738201525892903734353675454393584300037887041706915394514623406803401642225192809502462641730273297709241567063314611187821211805827364955477567979391083667276444305473230093587850066496224859313433912006171617020122549749728440521028795282088136012044543552185890259995593169356790086841597925133053979894939632199316090864258942239600323214598569527342505040655089356064593906162407658685329287967722618672856390083918542009155099384080344762269880888252113211113330075161811049537973419695519504141382583089689035323247406472363859187552421058438279695303372463045227506098292072562318651247113076784817600963242844596976203187014436747648930126249067247275712779240439716736670549953892328593866917030537016549991791323434793784278131075276315113247627464581845817684330020266318085022048789420539822520675607557276884482421433131937139336746093478700169363177934794103942536784600419068319703504732969617350740320516597700882465307621609089430131171118503265814144935183508175963896854503219343330160441956333918561442676661543951353922176271158023448470122149690955907140107408490630935423304219846309071251122024863301643573648248103785360037728194928558889669210015734857143313648625061683220458379500449462941430008531599863549658233944448442514563029487922345144785179357960964661387515327874361565422267791605491198041309743288286669733588541699425726830498716186141042660025714106832707750253776221831628129277430543409966971515097227307156293386165360452398115634622778041636848960570563697527368347090165207063059623546501103084386100374507880648402354767855923708650536107842846796740014464370286547079615349691950859939016864811221929436918061319724392281732277094590329107419253484583586953954757762080524188990485547954410757639767056587037004362122619295702038214548239767346465405979695873057525356321193120743255338189555605827941097199243816304251315060701901278268863727874346064226304713853273919485253247732264813087845524580971638593566501571425888746620906519311411354893412752402366920558490925899195896012431781687235589404754408620700579601059401889728963434571118250719727641936675529522229591416367544986551696703284036023033196079854240683034191783534607908902062129120414077469839648139801910667594968977703064859385951207907949152812368631820581706061629479002570905302375014620647556004350881763278844104810017833454723792492087580762209454963784767732430149642908948800545287812645917183273193607713851561285657899166567148335131722883971337721356068677987667659793243272630999566159967474370728027257044098076810076729370600072827055975299798348490533483652097187682730706355054249615018056910771631137813756186337828766924126584102562321982639469546939916830738920192317113482023940567083233542894232969082800983389455724840594522776292720409389949115640202595451839769667507003660568284947374703161893972763225731798544221432151214558297287654530385627947017811524454539551907110873369831558326064436040116971705070952234513054214154919640901851104791177355013365194620589390608795914074742302106854194028454494107565928492953753603859929576209051886016213313308887422806003280966828125203196246068687974154015299110902527748789867576254711603297052576429424545888199557525354997721085274985412411579750492115076213942210782722768278234712431504927594404088755865994511556256893603075447643461700603743847113261569921090938714138237712855486613958589008044046728628599355736952833567465308940781513496975311281157793250015510013610882024013113845346142585013103211122545431760651721348279880580224245502896097870062389733926970204012025813082947295142733748750601060496636863958913654577963578084956416986332504566654898287260700727660017218402717300647798432825772630079801691352016243558253108234093242545721036677853408387207749224660762728951031367208121628072754488681746118228261365231988512232641502555825753350453091038584230329336757805276801544271432543571244077014916675153376248983160496609587818080438958023749513876896654425970558818817509331878231082238092503535495309164884963401999925626704666590094239109786082561312671919642510291985367188633325479205533553526120234903599107756087066720285816094510396838298511046591592786074072130098958430988671590189513444742083747798734429535362820627910292466709465718659074884893792952143881306995912976343173143002366595641650330562979863119848388958190704131253294504094935186683345267336439236579339036900667464400867800774231498483839502746586837955383406158528909084512203288589840261894834184958907591824515112389274225906677944220929767160329540226783707222050915737262151612871664044668176220661286334442037865272986595891423460972679609086889316793950108341880738033963174473426984801655387580896427054140699224748319577671382548478200076333883853936269548197502112757882128604215466732250519925352911834263753410516511593795226476360369814072042248250582147446248556225536342635132338105113100426106242639397936645027745867171425540315811490554766750500609085660629557619667138739568075450771337124848934588603116667185527904638250961613074142961960625753380906125002846881927388781944747913258375547765241265690717175898405097806457751514678189816516787728047755909520354835994976940527771099821813157508269583661907579266714471571291771341720101899320864478492326305939195640164427423179140916107667880149743457062870111445998489049233059216053907244329693281642105372710070647376607573612431902751473115867943628157907180047472480764688621274143936253774871909155190020904256889022726789704079923858368821835728716469418198251125449622140340828063901580144476808906706048878188280717937151163729655320441433036637367984767901635316160156112944092837424380413852067701733546803939043814934106799787771099225532742479853828328396020045605539231565035091328982026476131443895910077414024666780631898611446220539556725550109689643987434969074214726275567882679786436054788625754609505591942763315137447008355834814284029082645466959681461175245850300155627033663793259777719399048156024108249947710859320842568329654292501309606455578330346747702455115630453659730917445769606626731050192540771819714710234793130341564679859652499606956035946290531800217707861640210296035734446453761120473981527524782021717527920091108634793715594178164109890545648341452069699533363042278870519150572414815664883534644524201680105633482488419586523420470774810759150173195490798101498765769133552591031011911804259791889520088835500233204733233511286552456774311953529667491221604848044438095507875484556545215651050034414359588113497932997891133301539737069798016130375534562805837538982659915527169816984323211632251849558866321244751336802121650289759094525507090382109966070369953923231479005326940857224230202733923622735086961664244539430811072392696242075403892207728213747168636649064553854665408785240752666985181189753047617838089103326025729109810945519689889651607244839564191855298596926099937114461371212658425378469667116488789963532830931102125178537770536973142665246566334945166539018394423558287671070669678427032823083535058537686513407880558608512716084677455380952382888697045164381123045031859506309758064952507046864872842359447156210259998027283997285539759217990524605957719064146724116591970249917459428207969208264899013743576065404856102031916930900200008748936551366160312757307985542475375485345997858309885205407999204189478460255937981773611543404396960565211302349990726155022707209278099773230563257364447865905825696543557702057457647465562590008108730991474038888892727312104832726765337497685235083877646116705889691267738951021654589569983974596223253988216939271259612827799619615188645264856882520681881534712774355172617153792118113178572293132239282853902942082329661373263449494173624886679064322025240668153397712228316063735762417352868640437643417898803999490842204666897644606937495078634623183749009311597163680639529887362716584999970359185991943235510510922603111344884852269795154252874144564445823091447172683705732315087506341137972509887186637785680494790685298568206857725287336755216708941264894749036163035685024616015432932136397486829078787590768359643114917625066439393787728725040401139496888232361184368074197374335421913201829059790408847056445206967448016159999043061951962125794428784484971127090087392075406080405191563847062481260069025408511600206937877721712784947063763676764734880732643944081697392998867168579872976012767154454536966620063717491580013058497596384978596818700155814498111838925507824233874548860108177861112401287964846847934554604816546836629627876173172995813533781351443098392766644142148145925175290002719271793566718418442437791797507926133074914054447251265844012916080208164735268231006721435108510561681599514453111987176742072724027177885921425545699803290659695342579436295917934426391805380358079279822447999951378859504164262816786333964317757695069721925422913813353461521972277466203707246078611193614662486634666032021147836444760354789623488025712315342182632052293709840810909000883324765827370172442744129734311347279990354725725561650212510978095585680453562385057303064042514288058125174406850640301474402434471726281678367986284291239650143949566960426503139468034698187717583450260883011495411763453750777104086013096448250320227973838667684145918360911925381687591669803530976953887662692402489190416851298012268920242110789047978626206991103194191248353667648649221315974519831051135699022578846034962871096216445483137221192926060029152037956830576049964683111019666891454025563426741310541376377967520056496705674239678239024274439050158950680920743348409337512056255580560155493880375547547640254093725546140347665881433194957233288643547978111814632976389097452181041591308896258623904669495512867839083241101133516399774978853887688935524313750105560191783875527310930273235531361822819086505105781007752779010071771707691901294926296274928208193080611408745015493431204459687802651668266976252778681695680855853292710626666706862294534925248508724606397288949326442577285380162861944065782787340867328731107783408771602486360404892881674436295764262353278671572002649378410145247992985880662404359545171410133253352976495948345690425543472575823447592066497277909932445542097603457118478584430287738768185325224722881677275183551333576258642510913621512588504077710315890144031533090664047558490036406221668055133139962125272106295566920682590961148683796565541558415192538688123575623099184117751067759676113688164759813928460538024059784006188138535847221364926115687235596237577120124180912911856528341102174748807538241092261692484313383166708833266047789073034954253307883007791490732119450327792176100086875001522247364956960647099531636452268685204689318095171434802183675435250298579216406819513530821351289263576737996011139300210050178868595718174924768312278961563108142288885050100526041127799962369967541884950283540943467965267576464621845361911496240850123871358509227939220586371113895195669510881784486126439999306784689567190600999333089119978011592927711486172731916980021823755470109068241520139838862348795991819661815920914367995861593062542468934844188526979021018776230392890228725818343360726476068606333477206288973510195758604495485007367879975625655009940840225204790062785055442464650394115682149791234282963291939820123252168460974043722140670965726491131481788700978696129828388262615333196184691698912043863556601867170267498555081304971237793635859044761675872806994065589943823244625401593329887728924227607237358848169333497028942144010602945617775831435457920560879880975211663205142497287635032253449141194848952745055995457915418211686720502280615457011542978049160231777705025884079039887706193293732906701298694881638437933969975113254274369477722882681618192792989517870833383752517182120345854351260515235361714094185370866114214052313244037174411424366932176139487425152280443403691248417075333709624916700222168898553646168409558242350493585233588501233354082142597525893035903891598245974701192738471057238091384286905511296456363731008841965986378433813234603793954671348297561560743570670092690261313195684734462562014669947862111905552309920382492989101337391408290976788281766546926077330220261833878982182987762692622347648334423450579593852025407299186263420164263142198141094535351345788174901425297871886429756427664100505128976894396872030875674202464602484721737137906376971023977704821029956510768697858409433308653764347022571659765792950755118115727064103868544039020410162867067305669797945698972644563041050902766769901350337806882230778427457792942157386388175090422412875953781503420166808811611711650144918283112379840171094408248741914220324359991374078248475149272515226392684809800158999004385726419143093571485890078875013462927426133201880441374995268693778604342360168379668649330141561360436305393143804358959664948992424694089478858096024972755268875368646437971473483571178560671725174571722335452685327309177320140430946806181271361848305906558806286112690322961638930828093691784449598493911328219420098400533059168439404955159694720943845585813946942356872294471475609680826735215588331303121653520033583321914242135107859909049079805635346580523494397257223806280647030077031212592655238195499944712364476586630916964660286021329550649271798107712313218183667017917021420038473222966403440281038786784671720202526919974998036586765751145120610406313613256809959123240178350270526711083585640670735919192247657008198231323074482951327716558069616773618262877119275369243010229356840782746498615537292534125069398175064532570411227451850077696614551795378910682139621602396305385197648504039336491100498971368764241560094920166264403426730751921104255721411799346314654536491090467674064967417320887219999828485010829879201842177746863949691002510371735225823155965233650795194895154908091940837339018008042658200586697511803891458371587040008588158253086434910108771955120693275098763602162320489141740251405370377173439003710284231923129233416802482592051875696133685861163598739401577412629592590363390473102982218301613612370816735219480891833212426515563730001819390019391197549997928913551756689426833580818549960979306845157412321385819200148406988826972538382863550504319056084657545156657333237142325596850543788821328283735663292011181207896597576080060594450545111947461903780751641270604059233559551886923285698343000141728098160375769568568319869596527126521281802670295368739812161726472267307877290718762816509817007346349703626490495227523871940893842131385691018335648220848373661658401863274774245623237507534855547689085585605470684094813448173850124996355311232604518990907041432687159859818239621609468808468450225389271038638357177282391238443651258671514796308180888456242682680173935329108282518816851188402403460422424464595249169435750934725857797590028805501891188065617138281807495261789207931459114589665017563814760115686275535989616521446506337466177733915403620484961272767173436616297154851434979105793919802396847144665992511788193387290457185589690021639450932306412436015074998104249520074873356612886041104021150887192177822147555856144909278287431517185121558243665209458681416470627003953899683869859298416368852098883558230350860277200101398254927098263875358169430985735780250730885521439131450657352956584833730528148908348329904908201075166367008642296799425514101184641691492854400217296730755537952064958763218463538545244620754884152651332842352923328224095496607099423705238948851786579718186983813440189037815658181982513404132684853294717692284078333244698430184064254453491010444344541324708717259919548723785697570048397169344209061124379470056691651191622564357287316018388253063445216601851624284398732967585270004404701488225948083606669677954360947129351236138428462458356699130479940747473998621097474567434837141392385588263156914337247588318642515529277475145814432474187582322902614936118649028568186259004523561804350835505366384208777697840119413108034775825951359776921608220654478906695102199988475261006774058329748833825075890679967672277292547243882044342025587555208286291831878744917684856011825074835904498339068964466143348138686664117954799579254930711497971450401189176810926916184265508454124430721139434840188448554517632467298675149485717358317908522328161058329547595348351151312002996369895480159741711850424806846449394679904624968084621486521555157823588592150678409813207080099302580851409732235362644177639534941432745204981854427389611401234113313699456368612080532384594102961600692649280898383694952878023413264211117261505319084698750885207654809644038814769092944750045434994037631627295578022604401622637143266966454903092629369518515984680204701912962513490000836221376371247646631636719683829075575712801658644337151416890977090905137737963232646808163087710118623706172472500090234481640824609697337469090208854259197782019532118779439776005585340425017132145012919086284943690171975359019631634233874150611675787918306711088561300729969030750562074330616006008548893704964278566944626486117400209732711571657670671514700331939061495416943020596315347206838892484648597696202466050349139984432181176341824723517946250563208132891743900878685252969869831587117056161491860115177045641265215672507978470742233217309374214120832456894855324611615740127447451301437198300033840036715384945520395938465579861195509473340441755189277082380005269269614103008560782217576487197419842542752226848777829150907598878769257852723160277336077880774766679634797774446909124680027953325265523153383586404445097062365318846930218777092169309447335917024405396940204555817827898590245815448906587191254471696961164486446042117505758907833026015214692430731124940143784998705444798945721764523571723741490368159472541625935306359100786993181714197885769106886827674375956706347817787342604683538848207419045104313643970487583955445011387926393056364310480855168838751033897908050812998158577008241885019819850246302850096321209199726443229838836516736663946434007750622223458568558429053597940618473891137989393703021936509649992023830096041862153620757835180965543104723705859484402996873288330429532810562099184857749604771029704443756336602056510925458693359963339554165277324613230781223042365123335338507587499044227393563806259669761270299672560034364910069988639788127156498395708217719774303338561208982244856564906503382128243739267664447420205908348899632549232920673702892101875107711527684869843982075771784503356977532878096654117370544790976171132463731982069871539820869556422996687489446061859295392112272937087793391777428082122718344796103038993056183683327299183304904796945309715789089663163318060794755347032536397212131341763490054883224317968865854088606030836298426353848735139496491006406850011437082489782455308545761768112224478490597883553254647395848546805253817002636616165867855242584713841841346290809305326652670457339331301026252435401418667364193299484762184295657786647187172927266052076324223465892862041169296158323453397492942366600497952035522552892951994639692760258868579488753870261535488764326769209703728891918402578073446182877019659226412175142042563236528290748594249865397548052449083908232263407337542554353941257870663772758996309059840786479922063952821654703079690372750325265072390219421938238927492532690906394771255724147330220789517079113244555693254932511454353139643207263597006195088097802650973486060129182408993164466423281697175464362390610117672741341660432742485677061286782947214292500102472915188342242699852816484900243257007869218415976594241560448235731487527846457897363385891044688201415304663998907381816202991564624932674921510215763123477556733818664056723305583861663723046522578605125912936280181911875378094863930434692148536844436446331801079740041122361420003636243415770018415379171382105257839418484726577468801383766858011993470784098298464929864960871426400037409338536323610368903399398731720528462377778235017246442840833811396752374652430664256675893978642351438435372317138311513082623264723102342338974735946940377832343765164662263511315320525442111494281867267805681992374752124502451416662378935518947072002947923114202915792411139787394995190193214051146296155818220924615291240103295626586997657220419530742692887397405730465196145719349197376886594175429373474904239414316304517592381039041462470308458996149020793922180857966582400200588664259095150791751984346555604924252006482637275492850740516921014512300937251322170798987601062892770783901994025525484654952834444043261600198558384177572846496442616959497295151503036084674681682269784137167108556681253373712603042644374396313009704362043734014353780969581664918568739688475960645186257258583574607485901538132816891420662363908112489469833997321709929887252432885632830513869375483178662932898542258754258764093528323427836532424520729569885554808501277052366777727228287854538388962162766147392584208736373412652971929391022459226497083772659819003901729894586595792368458980532485691723344734747229294304475645051496379394146559461018802572636370225111783487718978941021889743632973604560282570710834412466093696168437835826689092241656678534680614797133622062218852720394248504962935129708714165978326465079898310307456997033687940936774565300380145232929170353033944317447221032940813950541675513626372464321573408327783648752663385070977100173792407181601474248032524759163306672389541700103170019089382895205873800500201775967352672884431339870627951775433237536175910127677928632835545910680548317976813853919578319353905303408641178422380685214214684446883915129967431069100791271513060448656990338419684070076227015548338658573334215079204212432940944703995729715084304954797729571089826740600150071660473508028561702941159063878668293773438210955097082294194826453877744648891643157715612350136507266045851156058496108872864318322450956590479739110663929807505657955685571592320131818318546437995290769230788295473915913771521600115838891183710201198524342253990614533225847795432807372668805253344469316281159913561394960437678517018247347332815170362153891226937591298522237954726120643766696886071632279798215664511197206045989411432293949839833938331947339221645083343965990935343328327188429194873328347017637105249843188744688731755117070632328979984510511398251457558093861856352558563267071107013434958926138962633412221483186789293193573713999538817239770886667222486804835164802893841943415196319664987107878003784246245271365364151549767749931626690036410045042027536146558872305037696319642037245759393102554196430836578387416184929892574942904626550174795072888944821326777661345679134202074609701538727311289631199948313792978711613227842482968258092146787658942761649525618514358645761685950371562376630760710357747524613387869745307902221564422334343753139413063099690372382693954280754717062284889738605446899668913842289620405746660806740042609581614800476354721625484036431053515146957865343172148118606489968177958333597134702255423897249477753636726430446532203121822263646255534323521397173184215635583882712981457804798905909439859541441258771623904721247362788403751316234664055283964505196654318995862490681913714697767398600533939318218200971119471877824258011932412939812283784983535340435218712989743598924388121755623718825528802505706893504749500585095287894464038258846525311487945303022134552243310477130050210970106648614906513217492202996101630174058650304631586918607638865313525229929286341009522636331088266573037006036740326941522275604769311848511747621061282659925327692744643492402424968371571209815678326347589224267718408358238933455365371009980466516036887226083339458753849431219096591171242259296146002025467218827884249867096174568334937454898754695087642872570826870014559684223014651525129412419128492891626925436664484805548775452412297396723564174769791905771382056964459090377398819860279625987172195315482812725559713146015748680573260856680403022316468571316275846652607379927530821455633062669703866110807256088070764431113662853229304466907888956340885643503454616082939371229579178302569598094212490965536073881880683193591963365571993087351735036849296384436042418657594044418089354157903650248411607466429935208495763646042340161698845779637091554597091042094237282987500626241739987524105928517477991548369455227376778854191081649339874483266140178761806710603283603238296363662416734563538480121507040268744025828653750027088816900271872468037891194355383980836216809316849058635168172619356503701706557313327923231548348473567857922002335320708302918794221900663169473988833203370604583128972802195985045176386636720757591315286241192334090187578908630515042987472647061447217620201389747892822972352883370493450138338870506986565689459164434043526503500124356881435128003020080428902574766253840338694180151789284559859819969374496953029137553615395383730024298498907792964743038530813685985201857733400644508068135849667664443465378726565980675825621977582288181332340767013194291152173177138787693205035009653000897688776745518308178601980559508445172246062637583067604363157448882738296555865594640834953913488051528957957500237039539904531536358115493715139156149020794302175874855104348537667169039160070630164927909419224395787789634924100487658504838773885063541104369341149166573450059533267669141268680799781064102297007674683237368131461188196183194719324409243701645133769298066740944335641051134386258831833604594501318679672963041395131925624937878334241269406794828354007160074448716015928112811591630632575215084442420698942305393765100665688675410717382324307130466845662829381412412394031829524865552910631009358332943322146183208535726439610166580220265191030686886078058070153183608595802846564395317804452116775700421675456257947773221925774744267061536136546213505579411021122155795905583297107963630459854566244685850960798833607371642849033039911474973330123246337996327002391065781638174251482824700399875868606723036983527833061444993952758114373864222140520223906094735277045668858943392136547378378126238304591271426078297967035914996656059283317867981647249058435814319071538582588234984659957564290572446014595348959626491610092353313463611011222620213059444812263009317717663815518195614721335316118076291050735347863523137255116627985329493394826677694621668827950739856225031169895416840646010156067686445699169347960196721691889120342441130035644360206394395144998778525225361070604560720817897265161165905693818017495858228874822791976442650270434034287079841029844423266513648193454575673902587937773282388730750698490690563685607239718975844256693590724565845796795407906464133607964938699709176798128499637711158338397321099267984421410835476798198522606028464597628215259266586049273869549056775625195708796984009622925149043822588805914632846219289816181127597845012936480564683046911105798503028395578917401444896254497624197026515276221621501241569524225614564071459903758224928847339114109204185749058679471814772371537512107809660503480588311614234759920256463059925934462860377366848003500841016062087285123959136811262112662945433975710167846687536791457683110689077431341007351524984601230989692988350598146197069707194313076997959648931007929013088430076723628192101954370835987557443396651662651903970899656321517062624154805671623312512453414849868369465206049574502120544724677164452995116452086547393351183976379792198037604318152794778581297763888788996562739230592692532776053561940018809444718697685394201380710782025809289685427664631801738199380899337886094663684724841276720723506616171200372273063052883202039725694646346168035703402069495956297699276968800487498872649520169747312437456472774368524195862560793402567391912814837426435932106302296657259005025690832336531656531597993989974803220220089984032998149397296031767638951766568559407898434838641997453408032307170501770840955320352332795460650931683171255430829381196804075084427078060756304562483148894909403821403256792218908950263865244125185002571061606575480162122396071926828350117924556197678812073704209630307105825107890405011889526890794070301255078662912145939384749050454987743021428955873767559123349434660136479106883415707940742257708012697878817829709477954231196002669090941384200050135437148205388881673190375614497174194351572853252699394194611733246822573237784353418736916156012865313821302230306134597750796558872345510316729263792532954107124743613778319704058725216593068588625023429453048483529053411275164663302760833939446532045298456960556480295498936984377852887739123677783105818622621091112017776333358066133936032406066346924640861229616031220134190163094059688286650057781295346091013441026660781813566769370627718000371066348853396139773595219651764932837492226194575412578705633288935416466809206499856773011977676879040058991192010756824715636243047527461417916173689137244869707954769269224883484637674251830263801811136323296513308244104120818180301302116028240755130479100821712045360836386674457957474634947073169759465796299881257763693473316398073463410012043375650702420269688156745209042353399280137578468318646311047777987955134583192704097992917110439147386892432424791339352580612081394443423448858322067223541905141170247856354296184050026824035990114112366910896572407932302946919367653169054526674068406105764155804871119540801041491190720374267097093086561016921282546756048285048397165520739763203387941155297928627534185213785810504514279178085470498946481023807473120153108204844036259645059733361558513154718722035072376055298987154779782318530292949602339961950765569713562687214674542625788135806067016416491758673075430504495309260009857542447389083099029175033795349949902975405325350337614166396063092379942042818691993648666299428995913224434682413284084878928410274318268955001209436521343796668972822064980738077681416258587257224388137719534685768172025234890614066509972761270099230525684418208539072040872655786400786202493773203141979433900158716837184926675513216360479388002424897792161725017286250113910590549449731299420179242127970994724007916620981213695195508741103912294187971574996756291478700969780294849365483753473304737644730120952945225127527994495639517383806412013384237198227588866511366553675155148703613490481545400909087763325477707932017280634343529932388282234130175439417741852373941852482299733786220252870969953858622163257382619288505224108942944880833690050844933787407789037567162633878038226725590433237672688828832791569398878245709314352197567701473431861461391624402227575855187420777216893418122932961384434611198712413508960307471763248879535347626482578967178578429681495935388968346010729984340314242139924343526543896318510741764229831565799008585878940764484719174360072105926866913669134551112994463179687974829878515519331049078340413216807124034285053448227954500936238682868083543123333522143612211120731635090377677360643613697180308318378772132433677408494313146738433811034620357066856941471054370322339459809320954749862366367536629294809646150251593229131536069154997668699504321952770793965510754929554604912401806281212687788938918953127764166285028721987767685714892196143107722011696201177748231819722957793286289467588689366584865069786053463290790479612482243282765066601402013488016115393978369060160763679164071591912955640766040315411917618646207651415299865178292372681359040873087623850494424974250392475515298415904822577368318060129639331192203362684827112228505593018351005573046198022387646764064106658050841781778643430897866448170904146101117786986009481914796323864779526811113800255099577607151922042782828858356039745170115197290250534099438204891219438741648468818999692291647291733257331283687854670592552398312329765275418316530979847716772454928832635082328979050763987019259075979072172990097888156522978582416395120917581368145612937435044585061174354777173387529254679467312149501608349278878455603308603836941559356433096286970443086909749832647089939210988914035526531782094112611302440702883860967545125574921739008766149401507159704111104769004151698726763902200044060874277776550258252670867240170758112965153433762089352074967106292045152190165334652005523950639438862588223650289431335420588060744804733477981674524175537714591361692576599173070030791358436598382544386851405104685005648353102040040850444561107151520117265927836741247419168342394377960189722043955640220860522266262234019139753198773346779741667956729618496491947514834452557402243725059359609352467931352138821281328718491629091091619935392076413744498435291379502413261222215423057700682680368519793159659472287791269437973317174762524578189245950433481653594726761458232809333210095144456996933023290659751219236169363128232572445119179046439412405094643323570476620853327780260786155896718461113044587351498091828860292449059671603481830520343674292865515893137572432096608972652045225881291409428107109575253941961265171358479967699493058377715191256726702462202503853289954363407162148935366692395608272083443320946249447120694252626848113717316249776579069811428911783304004473369705241858101500891242154280714174203728433398004584856967899993134039893082759971891431471433167220496388042620094437220741952770571294569932811461300163490678949378322344999879312011515711735323640977928055402117988995072715455153960488275207697182904568853224567898701834472554050631681534096046637148444934002826998121564251563204688160682257425670080985334166177463210328375266951974233935194371146028017395131297982635294919582231059101746096575224307287407479850076884565689215225322204569474254398131111359403501708940563678203481898993423071422863124518883597399958786443271719820098255193170347223408542746344133434767789929058019609231402205449641877291599884761733090071508260638009050263973698346709860282064687670007281270909781439444628948938048441963318939665402097409525093000226593743578219606789480383518716734772189491718356852638664711491789061996856609196449877577229245159286327872719938278290340286037293358381662678782396213498413947552261039472979189656135792799307464936707523944582466587069729989206698640391347288667375529490404581789674594952573131901729626609039682964405920162417606452944915507760671141559137464685877688715778969483543974290620653937344848233041706431263250083030017878811085161309705326794987750768658553262902868307141030683663404839818563474503607650502017786885776799010740054888063293964383257397662863521701853127126071430439002915486098489634386587928285938550204693813570485424660425711561509661711728797684880290467583585067390248263501932986614640846617858611113799493598391580936885308035647907230165412848615194235608308745128760999582700128499355133552487794139987143599795162548419710557476413670245282801072426429826713602921175596733431378518715667901533561061832620652515985669724283410025699669903110023358622640988974775530240440277028440679204606121766488409860982089784012555540688543925810725040508559700252828574528786651514743450845016823507069116505033754143647098185379991132859417626718102745267055802211416061667228849642267510366980714863293473142322460692392694397677883115449666823995201459641443501305856686517439649034234670588062859511045005529449247222732594746183900197200334924860003140897201951902879031676110148037145271593436847778310783742358373599049433905252211099373109831520553747388433903380326146680232119105676979316742359152647167544213303788629640335393234360595331015422072491589613926523928886595810299955972235658293123538210907978637070808652636701202949983878840757793396360011028216951881785517627043382766714030934833316093468241071627028726512688764652343263772066992158936741465597839947780353589379994201572462118167259810599124741559673108804136448417261821045828531256129485925385690919052384138360531182874536886069611220864722131327314662621103714771551101370679876577680368113006007161983521138594183244031281635560491939029915867357929664326990878283717886185178759373501339812770374620201499467237550447733087641408796879321540009112630030293718467218118667489425639833048005033151641909690008006034876010602828817868530731364084279314244130294903805900370295115421498857484273040002140666647206981061799255741528624422994327407029782317712744759579276258203376759948120885221755911317136165857081623943606316020517217678776350930102875536844531866883552957031016969736279732546511505880137367293322196385511668598843804636404155706838632347897945841194219843413549827023897182557495055523539964404237196458919087896448174973334075888055524928155008868393993666853725231772242508492099900412621382772095375348141218873468776215561314852219501246812390966779850239850374073250572911140824001804904723917780778859169936096198108506711874641609265076971122433897207193312065941081893348632421716409411438711202764978646591418846665077149961356421477347972623612836953814613990882390463388377184555505179724703240349252747969370484544579852645231163534238667182262575427339036817860594518843892263143941171992511082048228572451699676009589944752189574354125918262370954072499939485500241666392976328208319006052655130842078007828915733738183715671665933501122820050947101616254963685662721316591672721267875272157477341971545866419377173566345032489743296266186760647733323682518935037286928795929760608013640595991535021889551430193721669700165742450429090385278832743876671789332142408486870730015674159254172069499042813003728009421604889946756582161595759555203913925892502616462477857336451653075382715331383178910883080578071217635628423093156296441844104127376626763842378014956194605260579893591695401699126956409058976960658262691956900083966880810849893686862697162656012894484599161499968281660217800389014518228742447764376840164290651372121438629136440752982350557300270481106894435764333107559440620237679571223336002920776452222209331117514822551826863848895814612611276492696788234931362373932448074894815647531566897249881287437250575193882807856134122698717559808808063816480729843146047174119792429807413000530836113993115823702924957003973396148946117274556953741906804886112670258710459447229312929976859566168056844491661407908576487106787481988833033389712004366534548490121833054179167241218951868023031986154895965491791987143293365666193229456106436528447985773535152752248887930382653855836803136217189673512448826468135593382861724173702335591462047403102932517696856333755211517349986698342303116523811528973772169396514496347013817928038923160442257531030304374396986085706111086833017466857790780085149911384926451621979121437798535449636879994346151317326589704305099736449771013212146095498737778086760938247023207704676066004306508991467986060198988772334966875423009896745554917156227861304817021039227285285925464208280569738715792089909675462984070386943033312330853363204394653109096357745941797797653354692851989111456245473088100566392144932381368035779876185739545714225225059974379933121025009283375594368664088920744438218276560114975448003218870191345659088151293456429549577364402052720159403526414605047357572407125129947898545438618027972249087762288235588058528898524013272660889459837096966534156959846568745119543649635470202611657935781637500655124945232946163854378105642903322256794945327965681105944589036239474233742365784917165151605635779360193513475669223799256102163090472410359883985802065867259095870306023330616764991708794162792936165063031918863317365826698426577182468378760955594410482943153481522328929520112636229094319100787349883175652324807082078369142780419043033302698147415464137122085731693804397521298843329483597661247454192604527479921662673646651380305485811207908436546993019857920209213321896687107670379391030526847368135254677787893167099962736535319896185808613156338852610990682672548410198996166476997848889702375017278125931936164177346170336709649557460887235878270496830482565825138630453146963440672987222636723707322581670487129673333330774757464272968039351659825158216409826058994619693684833152470699010463929379936864772305270725546986252871660676076299064023769579798673749316232873989805846295905699794783208750140201560180650801392414969256216430008420438917418433795079404289020822579465435597186615650326618510178917324612984024266775460897323266923188627011411560647716672827424258601571130982177647630797251216211158631500855131457503678547338193703659550700262813137708583308464691496190742974574430244641286773930341831367298929660678722415246594122587975016246594943499573010328947584223167253018064011350351918482065397765552125208002778979845199484856419017601169824668016760525147167425963170208449332389331316859720308229143881130270117233880325409205656711841660457935352878930386015891291370310155982507823091507518292393398526786008958068457327463655300082981545245775918447039423291598859862849068804261847931614707445856114033957616648412734191709771250921073175934914441505944494391847385441672753722288504258900979968149770230680791882012858506447751619326273334361692787895986741673109298868068011693712968612060520539409033048492276376996699048688428017524511230021161107138187232854407576285554460959366341426070170811808245729471859534519485355962770709132133858144617584008647729017534366307040926158773878978380327357362265770281443367604401297065961425835364460847565810891875608291874271096339383381257336048329885948693936702968428891400188256797951694055304569631654484457390194265397616797733616977041894160336186077986930454101959946341724139091558192516781383738547323515044459247939859071827567945607145865325409448867195941341627266018857903224619248887103158997098808842559079392710848957146386870968381162286647854099249964438922160923798229526121716955053022569486943608364767475514288324296451823579766942231416966292166266511280728194934812618350442929517385403867051248998493219379486001347334184837891241012362530637145197218649727427024305322774100226973512867110873872013298739741613916248081406485390431615047835089022709781627011312836705786370728764650452302915536113848156043111091829683747303643267310194840974459064754732810977178620506652751339176075226620322835445313700240625140770122961003117854275838191866926388034116312991540789880758885497719110709708661087116924267131303778967247993719754653159315735422905555690602513500944979304315558211281441442390890815561326700235379457828923405068662871332550005650694478332535160562523613354807227331313183659196993890473926002405065554975425188828739092985915366353401215468884577520889050815659263870783476875990921695969410350669786262805399451530402563909646276132523222977210846192984679602915703914171778354483169477574971580305367654752524930347050633133317760493346952251814584716939915093997745796089488807799917505597218534227283936640565858633473533862879029833594207713091696668547685815667809930073345325381813493949436102290946550583578187206213398759593633491653868474138956528421012081697284711040438110728214851707734919981713132110831285556114947588837208384729617536906312625699972298195025311079569307123109530023847756528590006440332328664988704438154336665750104248331267542780112687573999402687576758655122142156127670391094412750576854145894187566710791748018964399254527310088258263052040958640030015059395297585766118502209117955457529246236950626025282248945125959729509807337346014128058501105918550143049259278483639606153566828329207560788522143275745405284730785469225870006725803826471705443115237671063153418361445687381009311446019689725233740929951539683175105997588593646129123830619001045907474898073199011000945773446076076377449904845369028847517952387806208271701391868781424477157573291286095658989965391102393531735445473589791244623311460450866705773308377346882448154205498786789047377835140788481751344652787430845197006655905946559055150204293609702181015997043986674974996264867868690553956541013697406221266608106967861848874427531066203314874317150102037612238468458379171960766402523847523179007244362666186715526091821076309049580619902915677716480168951137463174242592733568200533825262275960475700899420911059676096084129549961116938435566867571849528387581524767555345711194077062627507119747473802687752402735430064231145047657393631628632603985616438984678275604325256923476110590844046981434250391818086794667690518034834371580506897631169794046372447584679890805401204437391829388933118761946111450173009676816545285720288454884272806049017824409659573824370694137727991596766287293007854388745534496106547977787865524560388399223081351110570621358358482539359850872588700331857057103630878625452021010720369110443977766222039131655941784933158102615012713629924710421406142686988251793229668047977203977930280261478493688070270172848639744870710489954283258801020190331686842367138690091921700845018934371193949412262105244316421700602854718854088251083086801530282006937312319099610760786731555018711278591130292812884517928238592815854741102400288069080589355409330725309018954836536090271406714559097927438556405295299693624772428368862877629480899506753520958500275006169032951818389656695539592345020289824648328071331722110755081180710657550309123802647148305470494802568637071299790628755828398806399302752482962067485682695962437229824758393709797734792767996718326571994063265555686287342385188121588088714848746692644397684847242774216193555125677397950495211657820451304211204046273314775655567299863114728442066816771917824246710894896879589430672468061137998267855830260148625302714475365806627426702708657104867784977772446903188225037247980975317079693916124297981682670622432759387704714326912106004631909443181095703530971324439670624193988491354751503200947905589490638640224459422508900906361664410934588473467101280663224397343092560656298300518533903186048679239953009972212466360941952190794010496262252441364918409152529946062983980703831940749234474122897414920593037393023018659816261648148100581057783146517925511818932641514339580325890317423156358678286911169282303080655694296588989339493195718788455530889205448128660271141101042824082025893904314994241952168520247032803426472841135267869563374462648855500946836825279859194585584444615636048089320615715542754974905316323017335935950508522170253786446954589364604114718729201332591651779500528326959302716892321781333739197793942148654808447943934396921950884013441309491041831690774960792830335180376400003786172039247220257233498096675881920817352008263410942852287472048497854621986573377889538861519537863967812421436792770803234272012593490116286543048036444793418732791946543681954738602252116566767350717951277104211494199028918419047677339062141932203208259311528929035325331385124321953213965556547572734572462270833869936034936918369713877612561867796097241782268163439897635494294327634816745192069955752474890284603395550348167655128992874171426961019109872187273485290584670523371920257011977829500803229443230925810855958838669297392273716414704313244344437950337351287073393079115523461937664631790196732046292569493236253240816392790151412495301847569097546430982981311377803997261087072745968269620978005517646063851748530588034652901768139275381771661674926837414792307477363137229550955649223622133488097794145264513184084181181921688331976682950486141678374848597008598996352139875182606603709330098134311426584841295353434604944746551651438067973438922588840665629814230509763714946824392584322849797211701990892562770608526777597120111577528936525742247472369425511903615611516395836917809745499633802100440819494105662025809944066921706914386107826674150647492791852266516715379974032552468161748810526578612718644106538717800165617418592581723348651708436806373937458801774267144962566217788238443426673135283902767953428613670152387044284700495569080000022524137192083353002499651117332436407339491101965175716686566375400088389274190861489485593684990883627044545891765143452809474091920662108984191209200379455617303097498126469386656893738839332758215737083917450755112642984471983528574474837267044140981809381526614022092622835393023544827690054931720816908922574554260629080319267281675195331560503203822723445335689875869150613094513695827088027999124164274295705269659445401572392094894677709448821079073489907891176077824793137628848562547770320000588375247977374530985830664368094593243908956920181722576055465300365092392383829991782357199444729540962817589438092169617790098694920223722609195526393178504088769923970963083285547958390718948922975864327601498614310580023261082243646783241730772053052903781239756848673185448890069121770679978449188516202036888019543525588517477190579355391241346462821758829402756080225934592996621898968434886239740817899752377961339868684237232003301807307257893514278154536433297988151509088171819586453571403981795388029712856364328712288571703335790358156498191408455377552802975530251814900903446410527407347398349639781359216061265312621392712138416852699046261041357212908157581202036227491463866249577100662516007983180679829227382379483850899806457137763320491370828004957643785862881698800418873080206751597637763021313957853439053253589385586794464252720635114380094474912369849337839905019877405536254387202837505391442544122109847380701050804253137002508200645130912853380809676887101194946776278885765632258451241306645163892328652980511463036555758650566120872477403591643615679547719809526415275389851342430122219919372228404518519788329696388296870029660907950830332677427397372588188421742546837286610076804673221208211261748300865334387939405223380950560398754020867271725583822656214060810156681115409106740290412138381319890160678221738475673953960308828712661872634922273345044663782444136587860795291457330874502660122683844530388826531595492796553528868618533077185270057631661942666822577604441037089054210254403980540839045117800146983631087870154083335257129292397681235666879271904861275267678277363645018938339426749278060566554100394382086022322803470282322988657736428464691885037040203008934770816687935252389112044968685577088430002315731416806510478707539397936917858269462090991935661189004016398800374256585945410538575029645158165498353649913998558933604822737634312935222277269532486920937809896427764330928128493837085040966731417414860512190990539744519735459832506917199312280818317027490254103121649230395606815365762794592513302589352206681211939364444465822239572000780874236533910900483877414149327309545694231194318976759603013459744805250489747290942347148168015093726383589671396130628697426622234679049693952221788152719197786358190311027050048582483093643342391325969954322884493029424301896769936018226276261182870064285286232744686204729945406663081160361013900560242456660302993990639905868898331595963393256139621548109214910210460832835293132979707059833208165608392507946442151473436376759313713897504740155508065642586560837334101087976341290236669232512790041016698881241958013592927019739073605563603233639990331032874666798758750679308945993186885453819384418736199001676685486819305999242552468692188086106561622614704211580580671337099156950782526014660168170512267261217564862425698121972141673176236245521562037222014242922443834783630609968411193733036723227685902886006656514493860089815659729519307195069326006911798038558253553861069156258799524073288442283354444383802710777139062473309484375446335805636551878186844262310058429658041745640985170803399181938816970420141248682759174460499202079953956457345430414895789054707918302695866300683305492199492149959079360863726764754797328320034651643887628109128332882113398660235616703516741742583115432812849318355869307764228437446184187749233629937652675906312160706940171342920149524243463439303812593134244935311281488946156304249384311702710668988330977768729396616907660371795283887510266625584520784351460791413112265954421652305317463943859955941859822504160311385795810483193376507087666974381598375969090344906079391250197934664290461514729331206814815761545497412003719281749884820178390456679672037119111038675827677999749329610290485750424135610347143422921463183238367636562824016164520752335433805398850786480250516829191966082855831942502450953645909041768644947692917949284122666501985754466386598312715220784704481980216718804202256603700729217376148316195495616264303707618234623601421155203105101556136838395179714939566770526208595854361746912957136835306071206085206245659285863702039073776719564625222780116713356444635785681936070993532188620145326845620179388850204461935786063271785548537555027494356297303473601968187915266647681064230686161794827108060076426529437293462189535228393226335991934241980710412293926451398303883347497650835809568193299428060055125882762336248630534485905689358989834303389000123571592169998240492973032391140988638303915995233217901489087316099550887323669982275784167443305256970786614322504378923658375502869742868287916417893328724960549881799362915599594081311585308214129497220088059399729591268051037208670494686641605169568113168959770246287701195620592855470108453728287136259019873397786624802178714002017762509646235300195770317376427731965470303681545478964902415033056870731456989777363006667318513383631493802852974908312831814293878999908896324961017989437664947013714346517388657364213034700055992846465180671635907477148693622139627960164607206677418512379885159163322573446437367520319958498545713625068171287816155266339708941913934662464921101255948907350405967103102289894817516442056716811310972562774859229294833337826993565552867389568312038576091519806012514267796623728192466336603839443922830079989396372528053421877049789867407599632512813970514444007948580762919152515458856956013184544453484371461405976010553621640171305999781355705409823125793531762003204278112395169076845838876323875682910611613948553021765432891382936987735175220972913544661941174249479909840378190363653634105002855172755907218059039177850654223742975613709530473855710824126255281521173219577060454981724370898133418817944498504223757067183361503004466099657540509019368069165692777767318040943612217484248280928323067336865939990338265093807867588322692395990058020270213667573104487423875197458913317462752903775803295152379934808796269987445971096086378977873230623118350480022425238789308729388079495545278713352702921612284189581327581541667552894791364963738422274013823010103625131607671386751680594478386276661482597458336590084744742731178286818658474912951661841152524311518001768386854279115530792828120633163590527572239552342392808350602731504499581261548992650452898905252887025491610459173850469886535981334065983289925320394174311259273812245206486601512769095148214799721752804442421733325688716206247160112300367208446135526879339687918920105018422673608630763336512701203258528327258709328349957744864688060385140350050050145798933754603226332377496992755696905126527960892543106752158550501330003296253950100996452941412278030591349797090538719041215818695963271675002414409417131902824732695363660076858049792011503346071882759539230851825104597280558525092541312094650217956742653270442065473420906175500323824313969298078439959047317136694904780989194087060716277414339062817965520920298989543131423444136568641424286266741976018358598761562663350377868893901944983438579946106674317943349264838896999613633169287229756749447804403527435375557249340856059566735656700643618351557032191856888909896566368011866094341563315699983269966889847658639386543173691316927798968590493313971722475163553541441946411550918452912271210083444499603958237060971225414497899051388798297467787528573955192400679528272319509382405118645925566923910710086255419457665628555563192272086084385281036128335970152838321042604819829686411867620191500577844787802720667609645767027216553976511045758287100426086805852387548451201732672856372467081331061164148785573642439179341703239228918990198685571919272313135119716334589485371515690033602523217015955619968378657155775839794633463551643823117245008812203050915908910348131485028921085608375174097319401396969066748331331068240734941290180072268868226449458686610525709588849635574181010935859237823806509345580777662236059803883422194427446908033076905609599372613336137669265234003084343681682338371209671850414697979018303227139915504776443939289611909498166569152749540419842341471615451620550526596893450366313676526484188455395302383950810089285294011499655334025797681800839275280388910557100429066940481420897449581460535385653142802335359812767800161654212222256545870287786789558957676643912039606581149852808601906612457554330103532065348044920485843891575301602069266667571774650110322616221417682047274503658797127772216917239910600328711322605356045698610916717414496283960955258753021012628051372721712327953804960256542756010715221805155957206289097098498802686144405240690534132711669687234859649310612062683898813611953310771045007349245493118569760728240469351374020957401872020261816149832490317319421987327376087508043064207569553589456084949467440955283820551104956753090488076129665939877710339364551825348417234629293017726456594528876842883249980058586645544707204509451865919584174642757884614318275991009195617087763221060430363484556855951386948822420113559582532141946092510260414330021056628403775367112492753038301304487045677534518245955422921424309328719838539159826335403105394049937027176486814127470361597833131341843456507248687512394334575027528384440755505945371780285664979606773832978526358104741295033125363787266495062914594449749223563225106575212906140375938176851199705260144714030080422791909309029067307311446367305781925654355642303684886476488054380900983006131000964468734452172195059060679978017075794320374810511619564530631876058527737824673610773202351597965865046001973168815930156459343079093635912578262150689061670564013947219345570543115660905189455792095406002810451937400458462536941595784767195367494608333689157246585225301564520597008777386215131804176766854052852113339936004474680871966289956388742257923940904110756523356047820258618293099410559189153626323535648904062645671434796921119772354380691059781292289023487190224662224884146983151172193080793775509755479465178770959694546284001904249549801093849576697446916454989334631187987755326509360158385291995261393957364249029136389168078157660104270305668295232854458714893074201460047179929528846739528258040293376201332732317223428616701891833056645595969732981966204844353021748458753300501144832016169568391777445715449199152835492946735686755941445696518038644801163588886057357334859214185849664703189056589713773841581868792079881765885355515935197088230614226231288880171393775691646149839537565333164436352607614117659922472465570238797026345069293728379351280465533862783493305482441689727155450407320925244477949103824402198440769216272163784218008874504197570826300239604754943561621924709034181656424370031702263602994952831369405084143058655001424550496398716972081860659838195804709165074102948008043010767637856808404550807268449545078016351656829881751160005682654127357570796816435277047523460558381264384632331310699330384908676121266419816044233583173136682131567840018011507764274452971394653134390170497664786827070424717259593040351965258039826467496360321825166095070943441815384183702611643505074254933358319909935369255104893008041975370190336926270646987970691431896983534901974352280141139960768871425180329822170747159300417058097776583506738578833795075493062080013956624096881634921791580838564573485060097682626332369239598908063355479323088456348975517109278743800799186760721274795389774768274189149763688480706841132440141375925767108555036902665168766811427654170876341301354657922633325263275131123352407842742529574061550720840670605599290647172126051615152333116296803837327739152327344984616936437229067459850652326959528402747167905296315329799782610756848473750823926974433668588075989391542514467456807795689676589731796769102093880811603143138204489269584928176553699634350313958900043838012626721207896439532567174494657929661716636121739801292310934138043250173866408311216203081565469173193570067596943615972487344501876765444601512932530364843355766241513700831172284709236229357747902723894961313062826604747898019565857582225375774674721948487213809814025589524768924839096119095928793662479882402482782492930600529925918090332461582032924405229261553970983455343935776552537319522845594746023809588729441687302380849551111141700188363564912772127012497525552747857808540974065830553586271653426303595616218408529061987356153722134892984687099660931436078098058742255724483085619684822711994993976218164325150109898111671838430493503620828462744154614867113178760693904423730515108905418136436217535828722480948050535612688528899891599221077057247960069438607682187211493253741922401268866339818404949882775977119271197156494106325905487653595705862111547379982853864775996497839851904976207490493828684766281117699928211783346242311107216418023926067047762265908694515510898082365294833676433400830573724469687249716110899060580255905178928595099717671861196474093272790321287625015429622376648589747099250902920683200550590435369240464415352127700420582862331732756650851524461715673893449009600042929061723723198555883821745842079871577212469946479316197760753975481313406966326292375089587098543798749436390726262455489326172060352712031448964989445835548234312369642410408067375170723098280445459012578238178018641349479672417267110255980835751133427194526459387110925418361881191497988278932052066704400396589768553396454805401078565293337517103726843219112858614148767668988053198412017922583580209782777732206833613273710160456005287886931503849146009463794761701578812732031147096887070570095713233262543983116388392273758347455784343697962372138969458962477779172353981225297184464357938797649636524564051491246418256632044707426872141238817326426375761797219635904453153444237368970448263265880136150277191273837487038539666538031969303483016714428459101583631382904096309223733037528552347854411125700133547336672787701392618954720124677877161416480155155813450650792763720288174030558250415974907124308595710600426355558636291051718044397742780031472715461443425067383527975826093411747444134053605237028277684327931354156459849367476711653476968763025864641853973719506374580797259312164965512245960839437801876372994484165306455761091635798603003367164504273798871550784777766072071087419666657932254557922136303720433278668447092031450621970016688244640764425343570921068649744364367628711546128109139162164577425347511194471723944023993405563322465488005257366905198356388241968906832504720918773498235780858279075248805085196354168009765188128968893265351091309868070641426644787752797837503738803548507571526939863769813865469169843301395909568585550898024454359644524953867347125836386033044602971830449600011344114948140957551993719999755767392759648570855070935332896875697898347502476716238175023191934760310325619387302327549340387090808091550834931752327114182179208159482098379741340733605469097093156673105769934300539439207237597592944295126913702233184530701969169988501861452072901181767270855845797398808844637798212310736775379076992002899794267042495921469330029371400728119490495169294881281475080914541172153675337174002923975433822992804138123370334801271006668124136122589170900313503811646234811668118406488182622174754186636848280641220896777131288384409539477778013451231121939085762228414911816418195624761539147261295652862057160112337430996741174432035834762523891179206380939130869057501409233037439641596112887038080427550417713234684628207725743274727424783256917572301395334884674700637577567896756425162409890717289545859138795566554657802279144495187677013565247991955964639673534150257723186619827656477332573900741011343330917846839194169976721276364879684227229978544618014335775568107217433564255812913824183717279473360238987859406254181330993419976296646602130644010606315573078288929536801975287285686823131163375181514243056120879695779182300881470432799922256319404860714278998353873107361264727596060336339169547730697746458401674623005327350661111966198596558785695409147063454439804979783866062011469513030747464966489565513079175650723482369481379296410521386458411205955399654054466859721950156829169612274896358240379004286204144269870786015108213139818798922742479514309563125440810681511224432817055176659159126761266902490531977215160214478255544448037208508357778083906292755382486186503880729336605430205457084264749076807616249144372652760333342833044769086852197152396570391430213306114234924930478524659792472275119409129086192759917743414531633046848457494447842640300683015545442615897269046342099703114668301732716050690128443857856798787526216489009069519951962198181284354562701505471889381116203105900756882141765151124448798075301000707444084286737599503566438639086638438211615759577658722780845918525875132818650376671073753627556887273640139499589258242579156175098429564981567969145243418346685732972143176311955180345042585168134773260656542473314544988489633880441224173648092207484940103324994067988035321898232686662935087860258998940201205530804754110536644423646241854486522475366325010840455500698300943774575700441949712777337107839121060462696562994835743680183464563663269786304786896045961441573209653019033224030781110902824217911644263352368652512717655830854200279983352896136488794062249492336840104927364514160812858433956318461015092356924160627984939311027019658571615741240184049341558998700349585943629533805191951960412507822787571525045920571601311084100047799030184008727139932248294003139486747585825223500933368259085438961805467769731547159394493376162743780479307751179626972869774792095931163311653937500136540695816553512577971177497262630593429770190933920189999512380276264123991545610138603080929172218021343415428174637679811247471581201845506204269639776360057050616043335692760263643681609837915710596913962041661967843943777691072550784188972180800159398463723239695377452770939365034289745764915466238443025014025134931224891908795056862785640675453798697548740303342869248143020369063270394057893821744723376523298700855818028817292823487851670935029433947181162602139235360437197397234024021137559298970742721843382841893076833951386392354727102369083157065799320268598099955928345298019213013780667593678708589364349257937364515182513882688938179603686968178371391724626733200530156741594955232245773241838799423063207773956196264906940353459020236905673446557522389889905309396103313104321478920647214177878001527406594459258318003796386554722140314607148842427266970566161429347301822792925322426807998939491069276866965025885380353690374902803888392037359007465299628470439527544205338501630375913756586000985449731331032128531262446936687211003917923974600387501412326783945859389655366358371353031349027574261633688739961569902272741900347291387037035567985785340453386242358317096782411936485456067916795083968453971807321792501748227618076082975472283077013711521865243142432334000405011502806664820500949637348504039607152540568098155978311951603035806881405853576791473273816183575215656927413947325621832550726564217038715157185865409001453382875714781903045036458504729330189869506184152950020884701881051661975076489569316734308748077428807380442616527121922271758571191083650318941419332488968915758111366065182791251831633575662287623577399533951994351410566678919035060166959406599340345961358760192768246013798450742018471002360122899681578337469485490225404869173486982709987478825893308063437727191371521899738192262730669611980038335454703006963369950309006680947339910115192220872359899123471819759172072313439803968267498885263553941591805549694921203777636374775092831188085362666151672921320073710547728791893863717188866934237553150053893620277603179013419545627325791709018917657433421912751442580749549572472301377976108688617582496983830672560004378421495443868456123554891766852238291426157909364667706672821225108747720868009099005284320273602959035315717581938276855419643022578382238294848227425768136342167952089503719200358538651760581649948773078651407040522857510057317344508959864765980225040187185641190181681578802477135281976470841494897723580010191487262796216543101313748820424540608131137069467405275246153391529448063025179462553560318081460243306927229181600823025762345001635544457296977982734986180422281804555167281876348296835173634470433722532636742471570506415445138626532256121968578075149883381616735298573234163567002097803826789414648663850347746792670566829387053073662492312383355503282038071107362835082789369029409977978749138625202956407872766816294832918861858130896806641250464889371364528112258703218878094578872175829720925507922574405061902560423864833822655403060873580588545489313364679012948554544354043721119867154185161061584652573009140253849023235697014382393300243827458508043361941941104161046709956067830973870198799416301924265207617260666652208716116193975263326797959269441146022349857022744939802036418897534426383762485523444146097646893018720499441240269925916616056527158877708740573497348657357847419050223210432516693513530955118322745752022691258523319464311347681261350583207852122990849683048268303254783586079162061454147509927942794766382757006740325327662788799151868666829638472134568515555900415521976314204949940690242539159213836326099536802011490249041186354272595557066709770897713131044605465838616669532382861799104285381289340229762079225802770385619186819508264984573829577324560750302728942820381705412576798478495880874155913753315117385204671299752164895996669992415576413123714264369635912436888340947863569142874246034275294482835601984673132358918924048191063697234115254901240324327413946073263029306379996765012427409656836015540826383929616011413156438095717132656220987350364147928269140461373529969531534049096507498657459409400966825487855866944028385484557096530621765160327720221809062193682265516545405103030490506807862283965367852577766254999928610610828334150928764367254896091608952600501966251441726815710234464358230384288240198976075049498375650851467311169758631511388872854431727505143220902073410543717300034964522355101686688507092929214784758985315542744631573889661498995233048307495466521332890617268038975522542033064027550451447639408362658198082493726209106499555041656431246765962794165328206851140220586154449499018398612255610712571805296858116655277206907615517055876341427201749069690696795412930436098074042818427172591132998347356890958218139515957767968877629112501239227364068022749822450531172438694749927451331146017837817268464317868126067032778739464874432068831379502345112711907555923701452421169225859306661243815107738153096128164488077350587351776762629846232438925313369086523553808421827016717734337827472267264907887140292918551187339429397405517722570790328616424247151352469666051154590786471410347783582591575374487508929433662071536162890987321526599501436833635852219055737496735160717821835145599884692031613737129388132638499641987878659887168485947559760125859055466410166658563924811503392451657525605622075621376728853186351910124482611064609565698333298912609649171282089925813903236028439315827395980447338392038355455484651546041497326836350834462745355473154236825560841835072430605165612693776114079603792864804108167416553984823261274038403609850260444750582283659380890326076288056274800781816514947468570791577043234987081938908086286426110526193578213110393095896457142664356753271628476790427607749430992587298967625945378705258347368147201453191578940869463379992379131430774317013065580723068115561343644783909738693190413287348680004016678395985782797054985785331190728902438118281935534279830065972573157439154206181188429035638102060625345153076949186838790953158307335306103416038403227238112425322896014589842222895836070827057780346600581941964896057496330606547135463238337544492475062691750263975000216204285337221234288042757220998089128170211212597426506987882526960766956913763804924867908945097176375976800569932578231096168178230660340688788576291664332667219662689823664491803538823951363336007363696700749559925358163217859283948238659218238272125736699365198997130264713611926259062481279316175837472909054090099050285780611458401982336311015822799204589187967961791555380021633720715138733324724427479105179085015342787576992712381603862397606267598057063320783336680941545850238091893495575408000637986248759760365665350082871695622281148480170072755421105793548872859811369434460706700053387297444905156723934606353583095874975400077777964504184988969664801008492833261556045089881272022963737916650329088734695742904999158393680244397467050643161842105458725711400076567334978052868935629909410209291385984994705279179728520982933435978711652525740299073050133253758978863107404573914137414543024624540044197963795264031294328349223236941220866363263935128393947051162545895396122518754948054623377043848084734298794785978149018994201259158388663463437758502475743807086281582562351847664847859618150567620216154150704817190966102084702451177726910206880635100570340620649486481037526126662655024784497325038678619555444675755963464843701249951490212342824477941784773381151737501837492882178524082632746412096461925182230672346646679866619295256864642133272306324884832187998962674128438452540211039075499250179006111565555704596527135766507146275300486032900287520209417461974010207348595653641248251539129456759411218088056918531148033245428085403123498508308804174750472500805561615657330574244002580884320245233192986661140416189746315154072487703044100196951328974873121239048190345363903890531544327299370642004279339075110772031569888713382718474755886805310122850407051832716207065142453119467313629397359458492470627453973116135869778210862601029322796111248684811325765715158553714307511966442355896676570169405556462570057231168030601017998662182694776849957602369965504368247193237005524842962500382426715972943692806832245046598960389569723208079971079666593319320798656258911270215798687911631296285877433185519522094706898411281858997128376932441113585918503322129143568086311867574746888714911845178540769513543831051172328112895521857523566907697128372453623433217147188626423551834593269139824070902586335881995008299656329338602739196237077827773538372187599049044198315235591824115279851766319286962678970580849796203711531910090906653822727148536842844539452610746677106858824328175305826691562764443758618911216710534617030276083461557837131029230314383245344083029610197763202749021680174679059709506145662785949890603775325944441984427545486170803906953366469411791623091744882234912023241434121775395196850588958447710438151289080227824299907578328476517921738276652136014646433122481605614956931878485044062355454913902325431119552771580169237241099610254278344275659032107526091172390912917599083528424898149408975444840506314237438091292734767916332734486561192513484051611266425461358525933558874550974245454493519663936046451715356070342418551192708320591748434561328511071419251025145927567159889876641248745147735374681382103710885774834319966411117184729056249877942871818934783481834484829303788357331973579397424042439860424287653132758976196666012408474444977417264008712338727352519550778734136020346681498797746907764443451310827819474091225603218884969948728249920225790636784813178521168264272547483745839740097331503417380579105135931259703018288866880575971948643595353366165415061821699268986904019260321833215384324287280325392529746735758641753545259215502735904274419051991276617380225544796443202007623159994327254093736532758627431366803344927136083046434421807633821757046915767858486751576928892346077399531050985013869697414968188935438090420009483293078327306439346463155293974098741610664604792983355197442877198946782128900521965962994925724714681047066837233416435366804226483888677383901886051077686702861129987023032418664305536014800617001488602264427244743985593810162988162231583951901729854736040743236072805292484367386623629789814847889925380329682666153988762255260893369603293926788747303559475281845502361062277747565968158962763973989347538526298873177588507748046736867839736819004964837787634376878327168299120670163759663500726241617060120660541408925298363369153648073496248661481256655544645130055193956219566308867644385332337978587515346181940128460296622859001408830156702936832503170911923861179724105113588495729159192564156916406031257938099630913256927458050375749620484634853227443862952065602036815904852976467363072504129360115251174526212871170807303475106229486706318174412692507632883488020524475646826069899915426629676763821319839768991148078874921855084347113244141306746649192750618448291932049331300402048130022626957635648609642708056036192801750211842973785610812653422672689841925280783331144386254076839396795661492264910746956189442486195585572170448977571396500483136506057963015120343807605557357481559979413800215382421446762651874974088987257019293610355314586505084798457713982601729425389745771601380760009368323745036188063579482781833330578866065272646949762361124670794580962978484375152041885505963132667334140960548209089209623891806593491896157830534979876559579931478729751754762239382555673333471828068111882501955434976101270281634711675906918716329858956884180114915108192464676461065460913349133842765216924960317446173507859210361429088874029834258592842130326651190742882135685963075471082910041024335477602350688014069506456483449935236681802814801750458389875532312606282972370121436354670381116182467175779586904007486572674396064584183636915282817153069954427339167973859434430649710553601353728360282056864018454500145793618061629082705289089198542607341046322992114899190105693234372350931126908573529992333851562232669015542847359985718819066449085523739833596986089843330354538579865426275092683780521466126673157429869263759982493954369013191955660534042469010493788328612524864145865449626785307394538817181218093548938125031107762792112162045878793920238531103059391579480375509369452808386182444487754158390909865453710404874116507410589564629310897944697752498539675790400152800512162221513972154743429299253463975310136576834691378709687190427471550732279068359747949577201322065423056002817945381334265244781780912776553508575576435509374748934506550342091952919936393263625050518345571049302743075909083822692916806334049144468598401844429906272227506294370419382170003830430783846696179883515654610912429532173306170485448699214030791406666064737458460939324481257896757713231434481276891795708084903685700622188551365213822711748240397989629364578238393311953286046819854678014981443799767855130300306990255844501030089498796790866335753284878065120560981406475979228600326529314843883320697534161072153835470754188881424398343067515071451124462455753576238467577344746689333001087523776182807585528509850589415065647492397122860680492396161497718276927507515821867993082024768380460308296091289595126041892289727525806923382719773443667153680028266416403212432308293039346091625043296670899613553183920112874717483360052406881363568369318629843562293546287149623671093851128714589774789968810441785011755724823224591975286885001372633229890516723633029846773863162460353409750066934389568882369404879941638325763915149727916285031168307558853061839069584817611549306630614538847467612038033463680416240233314685824499745899110540264001354013621067326376622771969635366778427357644473636075309674367733508761198063968483302984648902129511175709794497339218332172174021764720378532024328641565992971432377128840913002804804339284160727780187387468465316574575743910718302770987858235504601874578140999977374680365844452352677823861806568126039813135440171047362623013473242190716551615626852488338526001255949317590388988172149861027672433582333054904163472019364000496573883164838431012505916083765830642914404681820414513220702165331782982472324819463703278766973546626857692426415336987983471783065431247467288926865960889966996623986090259809137240936336743811407685876925074857790558754553139637387610787206764984924865934350516048865351906656921864115868409269361861651038598955867422349881353764032520436310698890398062600809501152667340330345024973798243817457790763652593497430525908812078202246072546830723393916853549485768360139619752009780517489780400495571365445994462266785636165143731697812270880806282791090558272603358681304681165466126109244666880483307381982907133725625423363411208306729238767523842220168334318174067543054075829413680160587900915287350041618593586313084161411038565290522105863826119493506577129830417124056001330311356985625006906585142294201539887136094407199319906874584327088134257000813514117381630043012502838823059091417491192638302994442204630904507166738793270087088740799639976394348507258904513463385774317616630185600247770857466105870843808023542137237389358092725952884667367067620854003119167426707073047603107467274340663446073172091273075397611003534519163364488827081663300858914639887086683388577148519543817148129348371176970824684720703856682515551313127067457404461063457297701760228063933637273226759842630724139360312756445027491128361020778206465431860219394062075822038193410124845159214810684166190654033818539141111188548789081785042614208190842954101449532988122347464057739481643037747186179408731732833601310154455647085413413396440511983920731960667683764812664377726613891509776919417497743598296612473096379226302453511520123132353172667770057414356412696919853585542161990720175201178015848816528680614210573835343332733258498092015979889137174138439588366294094873144006828408840926610863328031700066617879134122767859907400171100882324336000731147708061307310825445751260142051489769524957819726172561956466181203241765546320045337581182934090192153349479825315884397668872736964722542707942230310051275349230513596654599086248844574116379157710791983587976652856211560085651567277253085883413843701458191627230431539363013207827949145733591049389006402568707115932894617637223374713408293807646830123779148705653925218677900085415500578581695841695324517856931997757256888305905995820698228056989912483403104926538249823380044670327956362175021904184590183509891383421757420650164624877337639488132299858122456541795900314894739785372529788370327925574757616119645357287789426678184492363223201462185738940185279064825528254440622489496073272642642950422589203207800962329762360291388715110503296904660395588696039799627580367649259555188354664507014356690343805501270269046895541678257478338337392175105007559954747961756599766589272047471800710827283516823942838550627732614759330035113249957174451926231635712527898590906924318501099451420470751385597671996153476001359714368949386848732792551669697386366280439707908952430731814070631103465860831226610047134739100655990567372783995701948480423573893645904869005111436559212823397082521606243714203850010834545269925884269498005560806400996789285212505189641712715075207516287093316199466137801021848783345529022612105779965654318306874770013164340470874411183450599983141571465111360162026600310529763168421500798686490260726915296805439455075352271618160573794277489807529348702539593693027116247292802353851910425812614445073547204128396346879341983664093188642358982074329778863675692048391027139100198592890346461063643982331843854527740071416674640101755877169244513237459413369757404881736849770415056340935276428917003067308983872048168311950630617776926832209044502735934018390704064607003896866287794183713369672426897381926079928664171010702789013241426674103544739497432200746665623376480443487807100122450847585382038038237167393505178204723587690218419477342001446010375791910233400291743557265854174942493240169325627533067541701279104879809525464989592848875893530100285800000213840053976280927022907145156868703134036009472117597602504240908370725436478788922583002949261333423836300003272292480917436346188962291629082551011154867065941314227765136074856594855259415632710267318533387212814358472089132293518222873247639215361465911682080821265622447309009356218976853329896354949591310724067002967010188393492216796455420866796040073496966008270839951983754254958458591894457146254072893697388017215794367464741893251123641722733858275804472925289719805095200081762050095387227290702774494347762681513818202881008124816548022639205397965443341164443616642007963934880649518329907773514576653156473657154048275292338364593589254784224982358000290058943166883303449352587000532320319206348515610804066692919553356047385040269510075488967351996058796074747311136714475684772367423078394005604490863736163437317274582227735253371152803052157734437280179722192278881413376560413237871540524251533738332628163400680100017900236424408702327083747511460604090757077666679048061943893284695048462560484610616435665876333748618778047246881392240095303302161017471711839227639613490414635161757225696871913899413136871842038067261968916536964073718876452377246463540419828050074992761890866412878144075595506435310148094208653826480671563537402176585365237416249022705337195917877868169535019505486314208688182727845761331226714132000156513963786437487224977336985616631254275079922475207655735125178419045043542038852060721849558049253354965059035636746146311451295811455482667815306283028403862390441312026662669667528185595489514719094786063741844431464858016322924944044129514611505096257799554884373063727290658148330909105757593702240933279732564330729982440647133150228757130308370390650865592453782579439204223480594442153725232675695120119510410304274922232531881260471671999049524792909099120091769502517268237990543626458411620946148806642386489338863223229587012413038351586600089518308292079182333687508628046694410749267581412491605146602468267187504435906737053697181473914283830958554915783947991581240603926476917551139815126223661558990153653411529887484356167712635761654937485191506080053230716021341750735726210578397964724497271959641469030213170213554438044006302962077318898324054353547375514012173757826008453337098242009904519500842734288254797488353837344528533054779403817254471936002648923839280482371865292061909293443916527225588373711434785553354747348304393367369802127409805063521391459617240990560723781633963734799987227863753881873839540809141776552477742785191789394058130269929122439299328015170927836984841832741199672108088735188595030671626900371817510311574719356657743967064468319360766238233996384873000264673850525467394109753408527900005237210411981829553476169270785451535284853032078430814214473731005046853289269635575846058709318814219779773552174768481738822225059835090217538186440163444167053429709096062906574496619911029788269246009724545072074941324422194258098041517837417685065207437630797814814288971992246984581285770506897666097114271021688825590529791286891946741031075671386747734314607336362144089960988012456165238976944694878850088426278327044418812087243591703022568662317168832833424415993213437338255014324653349535110393068076186914378491482973267881925377503226219372643725113736266494097795832441190719584934461114263659466356798049266553322791409228361716269190410690179672327266466683491090844342823399804721673220162467800978809445243235216260391031111998044876668243991357777059796156221688040562193102947792672709407777182261063716120048539558031449805837794058788050706306598804101360901136371267053296584538658521731953344327174047650288920410888309293910566530061811243631218719721140675143208751661845891922865881253949291362645373313737260560141446154097358647594386922461441262008052929455857352296448403270597592779177330085829717317322721767919692512180795426462293075108691265387828066586486716526271489307949794032738213842356821696886164868758062172910958373346195952018345772009214205777626449474958940849751295304870652685460869924828348655026042110220058680091459951948381922121876151038294892571308029674436121906402072636395111057848144797650684568310652367510147018502551187653924542820300597048655119797862597703053297057989489411161232339796830509609798364531393741453384280941137074579454997193258317931787981107890915098825148567101405618741733886481020458214133916891085981369865779615883235585775274270668885608633282605552259975823663783541985039653586822146595741818010285086418189768859775875582962027329598523953272610430752966721627529956845241294209993343626264304015599529122060578868838243662947566966795541697647026337341287007356678981920563565188859175950370253144112602200228377922800404870940796988897278361661422929701055405003931305995325513272138091254188655185734587781064643729530331770600925116738725481211905146790574754595618505430271058996100328698571984039107544929491274253262596439791589051179972573970946792005699524146251208180396092225707701414900766387587862608272978046389865016113303678808904485470727248107475574332607606598054498527988349974013900145156340744479586250761525283971374219566840674049873303740117330728437920104946544820673069767380121909040065682925208638777948056216238502959969704833702117057406670919468882768484601215341993340609543220537849490730315235310460690152314724350693617081175937274416435474858016839354961078515696752003536191500049187442921890888742927269700593050833908362636942096359513156124574861195854244318795846348826546909451128623904728596609698606578647346924242081986305632435901287045564297428608110258466131719512076087815408125016641673016467940666115906681440090894412832516225733529142665463892288447397014635432658438207862210281559278415743755170104684108249167163946099952258938183859783094064739961941594172074940445374297875190005632110227777136517286903756451186886154755332017768987531773625540189328162551472981988479420139945613795661037722761065882149752276889872057042504860618678329023328034212571747616446400123280679386555172224117380653433497273947089680526460273594797988987270672822974613138297103429226279041039419289949880582510937424735779728985144204876700240646898593083178646264258716952499985394511364681945554931820815906273644664074278746746465277497951525650634663795067354929590942794034629711254556680210753944157351986382698400890813049855311215820313608938472151144204569569494180007547138256173357988156645615078491380338363613940425500681923684080492032130294840816868203215150720734203608259159883215609976377969476696338717332604065950465784161480982883064114599956592383883269156849169055792850728030194706941214746445548090257628969627996338549925185605758913372122211245617023768515295565175008230897504826555439820525621260200311159214000559323327801813147800026286084401389749971742189517134524637069020560162884636901935638029335053278396244583579358830225788129201850310429228587451891991111655240649709076351652936554855979164854478737998518938745407149543361555535582433070066717780573802147029244032843557444689170438704321935977455302329048832991600642201677441657160545681964746992007569285357335885093004448348994663290385829510351249085337239172214316042334063910224356606096648300641911861597030221991607725381940311430675193199778323435273689688266903350390102285874073158531632995808714833579958170090131362383601392772362959993760668272776387730210386118532747768172890261953283791262535032367973688311237253883452170548173989316734206553557203240360488761398963277735495145364228497789342343327177507325960348467523773764319300488726265428113502519188022943915677008563186417799453024312708770211033673264703513333188978419702040651665988394671948549878392473381790571086248132413484859404883965088806917355068781635098837764521149722009906588139332936718451802938567257570279424470702836668214219582818996668653232152610152414508382812282830614956006265767585182412884523199326292530665345342298474691628085593506466715151839576108543843170698467452461710715001252192057368708325886395611253503011526212666843711592845550815123925036922013578426309814015263628677346951964333816855406807475868788479901507625703510877230883027957394222679459975623947029656679800020298243850917060989836150631182910385147618728132883355636590202221186276312997862036738073172836951207652128480022635039149619781672030109256065191625676896869194307760020196356079703178807864284976468439308190798452985453886248877170449137757220481094503661634601988881884382986363581661832088770639603918885611604682980579079953901112987965829099056643236408780957214276869516080402382041027570742007179844234137827881755909501899456709650774238767586505586824924774794481273482906622080689261249446023207211505689539313965422859161901181840237215832402453307867611565101135964433166434964012801392552864800800399033839704973949872286059867191612400376922628398096982857487707081782505204536336168006285039431219029248670778773173754148571412630311629869148513071828374600256211800611173697371563621375779050973992826543229147559966696474479053413749888724717356790568292455815255583519046537910386707569656097884535552873110472808738859590550010237386764071990109514725161088677632536740475962152813808960176645033047533542243021686971128667348834979134046399256529287649328021799734792991393235429049380500897532754120747867576770365746788506831771505834405337240686165622989942405700464974375879422894739087661285464931117488119799376771671164981428055639159975181660697176531026012258679074470560480249682400967120821753983552401468587837254770238922759144888350981412476998079634529752146986184377003780982214074489608704208486464053686961708620494528774477236175716503544300434127291068402064281951821965264952720281093698301377125542048674009129548130261136537800698619132418831712955969192933268165525058791601583896010778347939284422144380017697490849279907230465581941304461222930897964036954981247744846665663707525441927748718908518190709477028466950651512024024561041631102902731254613079656983915274076888238886279421671521518314073125278807636608987372100844921839305548467758793503599131515517868770423972426010724018960104644090350282047711041134717866439976074068994394417990859138626175777871790189837273365612844310165899047694971923596340058488454534962412885271518815694540430470202811144258291393784348319184732215288780810931104011325035993058297896423558952946283233326980380124146072045423541088190743378792085340940556984085093447808017830609649260696233093166064863755323527947003222310510303346254197156872129953614221653324700749505316352514097167599149835884853756168992283730682499506351646283277511322019245156000240699020489993313820193049829546723974363578179059956323666255611153732072296035123743553117418401044636693599261776564536258915819196013914697016651876515608160714503897446314897643707151739957987424107855955107284603322676594251090583328149825390043007263573034153545183920742649229973684796939731495571497503702930392686812183888289887806825626202179986455609338895983853922594330631312228402855129380917470086104897519247695028693387450348330778162729321370088008396514754619089862216216726794320768875492300831703710183950461710052620487872996777535744414425867919767123334047262082951605172888345902758830839064201494976188484762299665580417351098402649035263968108199280659404297069356768194859141986787802607103051062689267804990604185772215255150373975315717047545566697623187090367888637568888075862954079230475622156743089500802666776737796001293816790680112808174541136182430282900302966418509605992464769936681509339965215063434921868586617459592796084202529460161009231951818537203830231266403895364303456056413760963354048014217419870858722886147411129113219815266053973465923562684168595962648728057301872404824401449980409278592114967316485336396428694094564209531194122773885083838885413297644533730292327252877843192324945517075422749090493468709665642751716974102962856320150963849937147225583693366264776498999804415456542499511908805386143074067689544786025880237158312050085126372760303158074648095610382481189088590229454278408933186416025712771192843509143131087327802661238143753152272605512999663417526328830104075136325422365816146265125520672456321883571216784395801925642258124583516029531905461418606573028924416982646063780036978566995767068314973436986722930561382098676621282808381149811310925274179285105304070016727546637425633348593646270667321256002445211707412134237759712281221432610724024095856956811864660654480317701044731388996648626211556242631442374325245714141542591919128666912437120068800036431850939680982988577707696844468724625547936422190033231281800393433890319171409588029563724860289227488248760440232600287045104990358826639329282624298995986137314974409108024525059973301146539269026054167197414496375526765891469140084736127698665353357176181482017406810116089066726432971728366329412553991828552947454499632610071926918420104605524633640970035952391352472767719296627791028695356293075922146309541105743649108390355487788336288487534500556333335950983343865567446971721036909870725244977336441914337173623205945008787439155132063863404661642177267760957746492642468039979701215653341342674944871443265856925822060114730932271614420752361884851173957655042525894576197390375631033653808016515059085395693495618005693702311201718154797454449405594669705556599611980266967108328389194460994286152672180429525471168089667894962933167630684486767305299792789981710618968720717491140164221065050383500441443431625318495448616772720785323907482550300381311485436486434173705123233057069161159406156841919314339920688054593750141760627941020765436947458260454659823092573803240040338210755019804318454318664251208461713599268292528852645362650123809977637934640383232223051641561504621997646148189774595276756896788432962345841953076644209378337838717570816720751467595431592920649170684563858422149311830222645200587881450151437425000895232146750010728515277404500445392494044487010961457717261547590894752223819863133114807498773134160851211859592382428836334926979251789230694358861716528289004711612819813945853093667224538802679306945453513481239728999255586395929602079634008495689693576024939376629476491780273854129139334238203519502989432537360732086375792058621966099305894377143685482747212954928745262763748137864163361083632116430481295070554441023640142142481372462124992656178472207377052981759817583169953355435252778060810152161007117700502918288129187138642001194034507903488798648899729401325361757380744081949098734106320056083829570015522208967032237103022533148380736480341108512552812478156348565552307869042050747193603829185375399931589188530311759758886091925736942503074146631144520456742889522277415985428675809602777331604338637083680126231632208347781081407320909854386059920923778217338681734650126215595561803307889847944917625542953427191378461076438522475895064983882941982215426591854735579006737852258149426524831085851430680074671873896278447689289287948890244119512327886403537396763427473861065509255702544899848439345102865412187542987004556941517809116952094833624633355915084083240573042064123017269279868006182137431087888922033273976381201071507464090052442688000374377035127345645888578132728191171364861284965346375112616953124897377301221921854834438635429874067348651011419734567976891378601652824179613370633779337225877695701073980570861586691790742839185417391977203530891676981572433481821096281114898950383579579248045184809247658894946173035400635485686982761969821812602946502477932790144116716568961949864184215373900596701533117701376828371076805418746454444761061775639094906808102025133012691094796897599581887903121128015481675893067219141697937285935517583898398100133874464385497265141346478200831748618736660609196011447982288454353642447321667986103618694401388191208418769413711575028594610941268282006615052507810586378737711649519562721281156218075542556733806229346615124283282289850139882967247805562459799849227434033425631362896961422618384339501486873272417243410736269930003274027243105898995823808981726800428729114347417351609722108720183409582243744588436125620753877958785965302857032609777304554529925549216556412306773495620442004279153895017534872469379299739091541895269679049207215810080114809310839076708671444391544975221440637707399553358236662579003691189206524674693803104168762358314181696378300049445161581605183832849396178474913502960854057385575092618487721193740496674472737323496443381812026718389766779356161951444158833669164214190891989355393769946505260267955061931884679896839718952923242148434945306546277018911856368092210825059718596866430895963321936034124124805418195298745037438102502892710241559155515050843585708360481325476262122707823947503016377462532727929861851623999546839826764587328033554266885150583205609666623503768377402869888836626497272083699472586307850113449511785181049300477034801130796236097672682954612309101251669555626093074629463367649614573484209094674766580138378822288163445269040600222622843206280279164709204711816641614815113790947325814858671387168096379831829108238762547291070356122175128296562831344729130334007521690526385917597793290572867807434434289041838215693018587745217772358953498734140296162064416681870732374223407961350130136719080517964084855726533740470356615609465723474770805994861488123332021346487955436271370378335371276140338249809467358577229864546738722612076799539557351712647350551651818831750632100729697747428404037684373357382394519542798019784000868039520593073589902838244559294985668990999958449647707323484549478213815947518976368298868329057664890075602720486545471284422564045792179085585345064637440373398522828309586452500430771811914888615811425987225591962284221172452747622701356448051274560193468923099516929542316486866999040317052975103364222242992176796152618060058936331957312335780725912521947640710640657038606173282135963860401583934390760664315210221442777921856388504800461536887649476699139725265987497042276514743129258063413247977806815649158846444181550193496025415834995675010711787465002294396191895774434548227245127012750793025090666394716052932120358741797547844439723698292245382700567669405390857006366128553604254001739954279295808242841268083044162009738056078119197295991544751246590645864030748422283816952007702112435469647967804934319388144421176453222802621582726440358810618788901769326787043410335070679127960362295226678509267565595570132528780320843416155612645177847369945849493271269416665788480162213232609997914424014166668085738137026858520290118289165979734072260456656048159237922824567729216935571321396293375084639007419190523251673160157248319368207672972419655773232884999017445512131803329697835177126887527738050428053878990346102048505348899875137169562798256638582201925239821991956618141767706661631137161137931933568592453686600760335778298499465884208590477960818880725290982387453237902714406401450901930894470322211406516749601189621415697259904656656432137744009011748292565795984474162114954282450447602455206236250741083180393174956921092174770453874045264710908343658383754137596306762603202575404800756748455914873449099566497138576268444070941253738772088911195827534157345164669352760502420445795246858319014473890566335350697138542071578415642406656902827221777053559744496688817458636993955016821825335635979466684306010308109793451661271631825491498325839221604771611624093946314366048292766734041073297212696222669582237670107300910182098197098539921090176488608254399108634149504837470372792010238006277614228355789920694852808546112863631841575021505152943338157085478299718092503885481020572595960635120985830669002078396051224044083220669277861734836460514630718733926575188066672308816620861212541284254660635914373403185069523650493797502289002346110450047289689705853663173962491068548193819770305309463498373475103185867230415700075090320019914234177241513018056694497523775318027504792356687337894236650259435382191563674425091819907869348410520572137123456747488322463767316077386365253354148308474317765345833288821749603240484846651159423942814961369980767225507330824929994892332745656774032253560729038570063835373517156739176701682418693846159309866449416285610845772951037206231292564783608284069351110304364604586005881085176406285791158948638916917938511121609730461046676663122417483797540415896142634028413065385545572154865823809115809134593341560440409395380202803589977402299926873435313898889012214567711199182990553037932102231260046079109941824406551670229749866536403673187865607593256605092787249673951877538441254012548708853308797417793564347136837512456586003344539028289665732581286064378295396348589215278100196868307321025666416980814652289043341993308162166235015904749406779186450008364354212332385531350041493435596923171205608707662174674715537277069749728058791732696284949549558260889923371827918450408751819583405994005795744821851212471569637096889698017602406899744326667870440626116858985042348547365896924959762991407737936909689606140364534262025845359520031257984700742826507192995942065275725044876442182190829920393821503862425256180523952308923818908602743668597571359435437798556513700701901541178837977136596001836438283574035915786076821519259549063739041270422981647831650286572822346203532013391776190437405884988098254656536093140429728166230834425509783902878714134911100082671442350661068050541480698530959750637534657474608144856806786536928477150431261322469263459107357636827608860000375462396226546398126235351242016380540984744973658650452793477708060840605257042326531887447932606116563111792892591699288536380875457652102757056512179526972222394137764617251158013465055706452640819247642174086610666500672453600004705956828354778689598984243920529409983344459865692286476013455951054115199016770734543316309074775863687399746356782507416284058630761443034504953560533929475324105457271081960207705121940605441077869307499244221770397186396669932859623131417109725576218337972139229090205680409098428703900485199049000325826549414301089725222596518597392419886114599132741641014116016706377992550338183919401837605892516354880124678863989937778993884604568609015229777686771641148012642738455685057858273198171278370390258078810315970086504183230779339150467332209915654914998418982400846867455876863414717816565298932954539053937668670616556459884438371538117600868078737237909175270197665224999306315177782469650741534914994676426767848588646363425190727060753473799986734033723553444130379841768914750433536987388061453841727400407733017648807290649505352118934242717858126612154709213170628501742840491629595957648329773028377911352051855912900253740304649569295797916878018464861811047141018325168013388879925584002399859630174147706247066931220893884746611238336788426479646269849268789941755294128463649764152798414462785588002776031897427276594158157975543829526496200019422197792772847376438294132910555447768575825567866619976294899866052816109278534077626860960921346113259265568308208991500858562300546612076704688334595248870412323856726839694429391564230589299331788992420907501467562779449133318836190107604053068902844679052841251464232544886249797818149515746114737620755639327094542706209568104081097652665778826145001206897394372665150381520145573313972808735138122110333658023912716635736394780324456947329909140151680370157221274463007635086516896607873037769951942342503313136352743425931241476986856656435718009949168522869458186332405717534919528844144949839251054869034408070205406202419386852911297156618471543900944896240399245996195678964940148496792277361458991263643171495563458008745884484791129035911890945808756429307390257851192673265614070443676183320986882324648514668509589337631759500411178504102207969261784613774889674995960194777962319238868393645505923731286647887979826833190887177691299039261850792554268002087683107792874365125739767177698990959434547851782056441752788230450792988421888680973244513497236843968280962020029274677265949715229567529729354437022138346617500259071245929062087993410406325593252414481202088863909577977831902783630979966336959992029969254643000674796435162003497107382672475519349551203952853881638371833671024312633893414410632760011094538321848305310750504996969553276436021487277458503430973683391092815748341438951576408704440837466352305090651754174197169775309137402182438823649687554928253534146085381852017098669509515342950149517637606814374115960474366918500349491425367162740638515806973774814435441403586654994646939153217864495707559852132042099525949524115425854136707161938603066332020567858464571365386532098399489212892371983269181683525949059619482197806760969180478674775588044438451475428494372564546500861288387514594330354209868971600575823763413427852412525602206954777083413572016902581148447315240091209857946627361204561945648302940414733563136067480133148757955992761160757449861587531112832398197487973743590372410055529779649900452402434115484374766188514708156055322884001578029851306999129375843232083449211869388009907632980593507457196143709706073566389862845911048696250659668887498695788007764375016712441131954899843331349723441729599810253862007019876272015886473376236609280682343688143988021284476531209720104510003504894906970029673533043948062193704579365838670870183664094221071496934683309825427033288196471254976004502813419037409760442817470935541573868604498597972566421497918696865209309329546942351615908901136561238379546505326365524706153919589119399834008997585622465191781112751521733437843476810561101837520945679829059386443732677684533386889963317090991410606664146147337013582837005987631013628796687006418638948973712715351718518162032912242476940390900637558286306829966380123906154251372857315529080850576282191579954423206472672259931237175102204417902071708047799677710767069806197409477742568695839239453185338365212765847398899231579580701971677201778013697450437905960027430980482720652185229088247728315752382849240477600745232193877174116853450474053215905738138123079869648844013119571181935762030676545258008694258570020658266891093234079653362142409680357493528968197663679122006093889124418179793966807755793216866243345789761907783448777948823769279033203388873765648904324526493642382672954189040516471959306269517016618632947293561864241522759772509391362306310929437066219272992130969696446507462748102908831386686996852350607421013075253812669797119828888096014910376983305618800552674612272051041203760338912881561300281094888620093947248353454774856312008104218715461063350079863501604082968203312280216005515627413075106664455588819043197227865609692214686517044051061172663368624720942628414968847231579065671738974640556225331843781112655707660505678499216366985238193172906574706238171895351140467903240015980555059854610397496518278883149374182223313267436180088128700464353878589895891607165574634991014779651627137414630946251524773858527133273533023194773730673323641898566636314548129226388751923454843196278211415160905127376094747659672157605659854392103214557071244283511748477802757784734821860218958415507900262801675167557667241322324691893384497226057521424750330704124187661220470697950226622480255513877134735578201164421019545858720715391097864165354057676197162774143978880781622058441286000575813783563570809620910046512494274767974578880627683079113314378782378544261011354500450135173896047739229720321023790253124244401349975062042529514117712510134509083150455680782855791216974362838447429788402322610604679922987410777578461307673282443886848216195743334727205297157054148415069003807957867481478876286287895856122635212693135824009392740497307115772535539480187198905407750120035104364736980837339609603188174207232709065663892557057976465994873801378131018723121713669320268745831992904354193189837200175562013448759873997302865234918917687345658324814299880325371059952256763416423307981586918802945324035419393594935879989212667967175932894735264262264031487656974958564184413231410988247650025230671054753531014010596460261388219656899665986629636444964440932347465888417617409002252845358847057283348268253062437727301796872835563332212361816221457334150953783799259715215418079218143429026955707057666564580863436161439677761289774124966607905252434695560277378233474588955878183777335568855687423276500396371470763197428557680550549359012674968609911462998628857465175888631923438105465010217586811391583418147129283268065760458442269694700343053056333689535593694511584897266271863236171861768146473913464657447820089153942708602062365879962738910146220747336406630414137234007930879215359987368445864338230204227445704057424125019179812911742951358658157610178890357153280344390794816077433885677113151544095487255294071306848330951552325231941264092853899513137031505565686441245810010098935444049583000396041446924139312244605832725303517613268270887874222334784386391543465927872031583411463745079222068192274204593832493616951237348478588485033356305169057194401779521222687821956952349629088714651758763552909251249015123166087724571457173983447935418444040679346610243004401079057074210866472601268836396719139256625355625915584559557263204691813858448300783345032519785976942495962639241273641007438783681954707282437967752323361313836541587611979251429820575168264227731484186019495655267451272910367860747590899903565102840331335898126675511879049008947770674051589054402781733897685811713088509516285976302972129960098659007374543622616307529311536406109013816584353729208840062896478466347603812960835867564117615373716034738156371965107772911898857478314918476350263885056184267933393814361048120686829557810751970216581188815282016079257150891130709251892767086581602105854656547241505196363373035055130030818679293403174673685994339379557835578878903795502513269481352326797747874241951207521460306701783894677237586522845359023085927126024776799653994185881683485910255540045373504733450946063978298582772837581927530543909292671351716988105966760434654856858824113525222459330459043505059022280110171951355643114070977226737477315657111610728944714109480276372783463622087901336792991026071780285699347249276908971621165107944294783789271304066960495062089851143321001316605964709414217744442053747822412181968688807965623179814606346617870194216065359790360462804118268435342900454301697500907115752079101955635902723867350894051247520021519052228272652299311271977523591680299594750862680622936894562634660813443605521711416270461328050759022936301702263327684450430488053464490496041249909164894317843881846542190313054789063932013843977827345490394359190497788256382658401525237826722754422225709800325924617604963164421292030913875606208251326893002313196295409697999514464224298202185136377709513285612044314026031029791711580238109153464764977179285057390420672102597410011218951779593273314514007874668386009254938037863840114290341152720516308726038486174391418780596981299212638557102188992286540767033872545115288791108404096366123451902287416747326814843219929604777420846912727595908369353855368238518481920088520008508699235741319197115581664016587396977736931360993179402158156022556232046867064351818865010815280553240963008063732634103911387709512220239704425252281612230215496570482677252439096667290773678862581952418135162866738425684332243953724450216636453974459840282126997356407340839018441583860167288157299487870038320483129384366109149045281154460026280516084228129344719240505770984050901846196790729068515826547211249412494424782020034702708275359996531957562336503472204188699783111524387734036615665102250236440089739250823500120636335837725694472154892672840760109546620238663018534654332194394841259409778414179048780998634346402243772445966323620557784309673461626575035234812805241825702322937230060803186022552972334074743762592393301053413539440409180548169978341148998666740309727420544762724355172764336644157766509035651169970282726246557630981998033359374931914726659228696621622182676260077409396949822884428909777959470724984291915427214439934488484119473698136249696125834370294839196271546171749831523393505165302657531282110951831764297005405521852075368053147080019166295014925011746132868989584346657309710672664644239595138528927027199840844859099836049344870249057523877172969213944479112881871917763663080126537446379706119854947517274807338162250063471919591071933893159522918601958070951050000010686492820420251703220961410563355089958995653805099971792035649281734150584510567007202999413044662710015749497749905233937651368713620398216912860789218265030864680756447026008395349003787999498598428987228439509623290454038973069236889032391006749957986370860397209363042973925117376048649873500058240583865898303596772329316365478134087965649621862723533599333280193160242648609746207177416477164734013229711203572577414098836755011315959801994288988450295534541895957417573176723149474843353603314850160783632164303396422597781511060559667640129856731353079122635184134398173544133280082622100922350670637448884647513730677008824832197711568278772042246198578851572353775395802237752031760274395545688786190501289571078680341609882003970674387257594604801587869449188557707116912090291858095062574419778369113277332303225229279833333320596394251903708520371853243847472642653496718765291035348589416797176565210679534353304525417640220248086922418435294568703937049366265888816761487215130448392085751768972600063976423121843101677064051326200202940773893644838965965727651746104762786476744470461682455643152810895983081470245045645478685469047400827384850487852114210338023216864918441176386844394181148563340208578517987115980318130768957590058165294182016878900206571445532011982959761760131851645729504347480450317442615485049528856908667623860207404464291537233149388234897049641778846637921295046935769663963822191226935213752515085048674510831892876020282133376370157187395281131416468059808886386630253808533040987236700740486891986110618739117483019679066542268393649266577723626906270089788906343621299155840324850235632049739323981559320717328437870102725250497332356682821711654082137936171868132582221503057912812872803626311609858387457903245453500147980118620799491392248832377540151265451523842916044288018770560715117011854422294925221322706715724492868137898188466874668267068661406043272189021973398515485522030010237169701214509409084125695584877384452909320589271582070071720604655517520778092191694199791028612876201205595930481185182143263847661607553300477135289207471423495252266265965175321247892562570695477027800260332788987422866867478910342557099687332935518705021761558743972936769942453695119749734741256046934150648507540881173972476743039609905907276586029245749192327116048274161448099266175293682764335277525861095178162679989534678374996657806438242949645062045829388377733767905732800610168951043085035176898651455535131514016914332599680878918210781369922975638980584595528887595537434202753126264877867580926050568649673339885638802293247264466785152990888326832905480359956619882303305566139213102373653507264504012744886850868282834116777016378831714181683379754265522664623677420496434880895553954952409371329001744823325411437112227350457674076408017349654337440439120347377070902640002824828376645190555640383494148706695194305795588257262025852188392169841138530427582402680134798990005638057883168543318833877526283352452995947742123055051956123868986393989601258900536537914983020066389613401440045598418469729364764473536173894552862965201080614454802428992225558827166689102345379149041797669116597583910836251015031594204523344616461167735697352897607063307986913574365349250244862406451839838850181652102312137621099203534773984371629644232092004483476737860757193845141187251087359377603416516857888123320207243727146479147612269232648919188639125755164047317909755724026180455333273134688934102437785036907556217264351731382591388193139125049500123431523364235591536592687506697426344897288689892800642462667396567983006994879161118594574952934552854457792162626961188331566068124818660310505194502965578279415204775134772603966290734861321885761483642527288702122533855332243342264136046303399873056975651666673896007181622370969463331860435429673552215964913433847991072889108503455997069858004610487371736704746659224856123577458572636914039901270598325263964906313378592258343215951996923055132675297852990332110990758616980883705367573320559264354689623175366275921487560931440930909203862651461363777946530159262221956782654929661905244407597002316989455184343828405400242890072856349002455589505909518931216498289652104557743273416886627805608899732905268104747630667325535050948404572203094420020997501592833959445858581821547975318147443080137348191605796300788711948946203648333644784926465062881804718020533782500368073124640840324489542705143831343658784850932752231830245063138905957417280965273193498988392858084619598893841494395156417102624428795162329916548105591029768417463342371718252479108666044013363132893118240793445345786339764094425403642400640469912627660902102273222122821266029193532781343964238022149951662721996192441846507641217175147776603101401425312679207458025087122164318282915628500279511235675493240981315990198241217261417520131467182589761299155697241599931468461565924555322093231440729289612330766888511448324124193042847947765905349376424767720289390217991723518180898735955883374839086199697751535870691325525233208207963168717290985568275328253961251269023659599825820009377510224989053467256221308385309440460803589915857059309864186259189983774019792055450585895792813532409167708061695647710361297665834644204924317226717603531442314797918329571587893328686254539492549710654536184407945577949671487204257788777978945157363406168845101471941208465461952133488030216748735673771730098961260116859873395446648749708453230180321588398140024508776103092374154305805100376995579498519155274886967869337571224569829030210831638401295599404098153993354611037381200918745493234476539631453219684399073969701233738026225748856884391689537155819383355184871925121835159448395596206698520743166848324575954523733888607665497720556787046284312786913115514328794238353560105151981617591605597475319762458640389547300962511237355690044385867251190232390801453035654997868156263738165276310295838019399233938223082834694682442174796397511063562789620509410764567395809708232010924726667746042712051810401764087678711957746030801409439480919054471470431679928245512233546623135445136496110008862927925706938333254229813927215387712104574149617941915636359115896587786993283378976699482315745271868341072267822408961078590515850094127706895573366040775712760882417357706106629541057921974070243944784556846707621699563110537208425085044470199573219422192074694242034797988504152520593526549435104622328756343258461934405897106361983497476588058279233366041333319290698299534001752365128765940300389793629793538946438307149713519264281613611171270772746110784093096817100088204076102462404836951913199120687921596556997096912613175710601809933822338342676207672776308646043110801221579203913022590418412699465343040519632416482532839968869753431315031468272985497810341865687294724070657247225969530817932424234989679605022266812126776372929426746663423021046899692345612969811332390006859166811649611490801110579937797111425132311485160717794119326008978398054278066907220202593180600627892949792823855846202377675498695321770132151163472571282481563557947044652403761067319676797940139096044857713727203700878107614234011357184218650000320704337008335520797822796565084264363898748733515946641420913602683080480920092531747973085738684996765863168489387410343507159881053446223246684528758369692350002433246832803941550179324865274994654960304308743522999061081042599068458464001121169890958800856744351102487856054923049727124707935210466302829061910986584595625430954417746811961293617033591747083892668079218662069714680027159748533143736767008347120313940894121744300285908618555033348304303260103874379800817268906078302879127380472173300703889452314150497923533617036701285057623499879784608916223486845201221351754147181156374013080793350758043310269896343657610694430798262381220125484170487054995040957313585571095521361125604218536947674231641694875917512684235148450045538050720378271844551004067483878307438704763061364049058213867669390063287406440505017148912143399772115535105815829981583192925478262963743641659317170858017965886112866814528001997907672491401278237049368498856390786186138719273847640464874048222478537189977225617448157019556651870479075508253592955401099452423935787738846621639672874281883237141945503238119128714590825567056899274459926368694844565810911455495117066405569420762113674841255156706955817123168378922309091615697487354126783348729330106174307402869765288366294330338627358576001586366934919994714129961417436257549745035210816475848604957516874692852914885931312326175339983132718461780121126986298087814564280403020857544689355474016138906945994879776499119336826413358645987907163937300168084195211781065792442397492035692299895293861661960574648374672641093422455958639650065200419320677864593881540515965312145829707212286842697325130418142279318501474567654267309109953996032800128857101019458478524427751245603686871478572178256913533778885477757020302132086695307110341871019441178489996809811983953030867663790336824267460350004413477447436617647172218779499431200651266384965783709922694403323777113422212749194507411681149167113374763978134907850175313689952158316350825831428874640890540201808248407433227593572308791600630240265497965199482444293744012801313960486628666749652260135029343726777093182787690417746143871078406524098894171417212367496847849569674507138658790973399243712697741068229636896340195177346648425270477078438156899990329680108297327840821467830970303493124362153665640581443875087324897079909237569651241683593109904585280960674679208976578676825174172439852560405959942188256417245610121936892609204973026030377682381995494984097291674491153957600225332001617816293158298972712182988355932384220730396569434905696210139917039805685715933251120405981304829061728958399651395604583353802434331984942174352595230017135388740163403384486759239861757677107893898546602798753094120411394000431119546715638325981109039351084405316717020607348114367203089642179721569595465450316744867929581141477486948940002919793731348686535481155917854442248687758722672186711055653131163100376164503756940388736694191025214679392383480756298811063374062089175420309300305817652127808073480946925307048159536244812212279118552354339531305155321753246490135354235519760819492350103560696776218817718944670607554205665179452856910700861974783386485799663113078134230488565456839532585752458509683845072231669529914899842506642133818501261631598210526330811207724132272981137864683327092202816414291851156437986911051261308444299448713311381588994543236870075204010387753516043930575055794247380131712624296899680700989256982727416033082310206938195574640346188525626887123573156813687037336739125402273444175236280851651045250938914952008837520235257933961720877333954150580321458710676276094639258678031030378258937617543703650683118930254117471100452887517145709560693468566898430667566558479418643923945136851343952715019872333610925798708670845263592145187276344992311243973293185434772584566333999133293608001872834097802979353642215081711518093111712411618000960242981942856165614525899546207862358642205284012990106314026737626308781675018606807067161785591250647911063986737471383242979432518530868925533315127804183715083681405823606293279373986107466849419664442640784387892063967160358474014427885698196413004395822688164280528342933846150865034678863560231597352721616100298681145345536998075554828411868928326883713792300868550159601857943908007680443507166852300076682421029652992442979358930089214459550418943641281868502700868583196973138190251928833466703328567060178601420804298022183909310916270573181283539583219340725266252955004594054695927011704973199323054686022502933274287632320410453220407430004188989371666528076807426634385481085174153282997985905648332476271577530281374763456912777271878401411120047613066202113409901454877728771924557781150884166296851353933014496237480187946958377003326296120298698921073165865377872129892660789284059319390244008141104825002786662102911881922314658332516242267166646951222078452585273803711985983159802374870305093708403445650447933328661766739029490500455962567999562332010117578411323443855299257503851722977667991260512656633211526391053985018940150748748853941034463893806091168815750507319275047161342305745513104249646327628625469023079700767429914921549893010858982549638412907681914180111058692269231666149999637816384139286820236609019471973038866441696619318935877027154049353283306074578295313050719086503473124853559119143707385649353468094673314807562560732394791564940460773284514230414728256186607637716461482852816762768923492493266866529169820405584803552673575529352859755262225803905384669908923290260853534735751001490337916449938080060630687301096781853921406950784749245025577453269468288075880930115789737336448940593765781028730885485845049823419190690249996307399302352334233180562191474915403886237603224575091482183567308210762911328944341883039086527594533430068585287112737198549738005047000043910884206359407287131660709191678480781266689429295157649335973865927334699409235634590844769503314604717886773591894202558453677193646411888616041790032116277841703760648835199386183322272376039116545903791306288486518722840368640022868470228496202516614748099596551561697388074497599940513189045303232994861987214011458485690481098550863461602621315681757136198647840451105476603339274300964784260660536344707000321820194425950109859909168967953052222779240282437901539931621851613401837016934897411764086030070006931063700983012653638928709277573424926605509366726780647663439042236263342408380836202205681356409452485457962940131475341201908751687081618852933272688342141442923366970638251970679243447920553004021591085346483526259560639087838080172548938733715714195782173945995155460212747648004686332795792256014456023100345548607909350905433520162953262130740322562658259680700837373801455876500707348795752737029616262873096008520453036804197299209731399367303471088445289845790029887611151972003763617838490089061633166218896005110804766612490202272567706346438804471682203615705357506792835743315392940350675054358075478611893463891051600954580016741525477427511023091243070059766036966819145251256134466891425501981870266776755810256693889521913941114032429557904202430244977458013125771947801338692258919541895847179529242948897820132009047162432971308648112964241848265582112212116784310993737561818969643273336525093147878703951009020065659801039587355651886861229958671898637533468001840644787382245016590966563443858731706127134931847782671084105608104868790048674341134253103865787279264846849363165183874927591683734856623337052844431224722767992231599217624117787440852090756037210873577511762797426042414803720420413977964954882225708245106703448352582661659997926464757870513689743605442760692958459349065610672018993487189544245921560475592346625598619060072431005810871622387353667404983969607651977196859414126233226612825483732626962925825139405406013602424773204340058433144121095268775354701055411818499846205940548640731397344117283951838404189771658047565906092726717566927338648128771890519261025332668495024606127065754727972913204329335220918092330730288778912777480517794300183331004156223981443422968229805615469685681957627477771660883562078550919245314800714631596885027624580380015719468546992510718774132219692736306978549570296452856303416496462946424861557211938890621623529477917790432809913072571707019873391701447134603938703593912426875688569034525900981712298769055118394981572562327094196190186328534051564174370250222210708274205967239129211308433771576091629701364229893136317689366674064230181836017783399404932277718561905566375511055451000318400645108316449597386467974913901887828560262182205942857260172378776692057003538523346518709614065794377239015969088665717762868832366609066228073614423289761454189439557429602416294437136481740767018528942583367887414471005731696334980238697811946495029380429978062660302807824343699106181281774648996671544697125719161404068077441264209458792580682153293345992779069209893726557571667087362530364257534370527041301100883980380645460041160854920289226875975386451892113584119984659193267770664875084845614556919962051690752258249974856692169993664955629473632961903203108738543248945516031051697689293270047622312140359246882349945100801297255652049188758316380138994335396042482097888924680305168576195658351135441990733002319979887952954311437871803122246732682071616363129701454861014200357114353941001163873100787713751985525462550672294043913860013921400642632190145853159803956961548976414196884125399994886595222710254030483053161324534920464035029922350670364310469314024193090695691235403239972047571232285831234112152345952102068516473281261620096939828671857432221791891584760884782269155914344117781405503632988694750408301264797435212857082531680457740251132190895400881724057275373716713017193496253303001603670107967807483957298005022140683154948824961528832141403978331897898104934231056506698875749084987163142534101346921602432552826432445497080291377241487696136548909968629671809962883448268584038410597254896941725836499965589086848711710053249780712299604135021307302048153425941099926574152451342407145738083512302249081961802529611416784307987883009164258336120159204817032617207548033646490877718958331588564167415029942252982785382409141025244754154961339778064837167744200291632508008198027216322251325724324223205013535456456438339234854283463310003691355513950190250830778005914240047266696502151909770173311658661019690311244006864307159940250712900743256353325841417306060361337768986207123811921477740233022168973978700670351086115824920318353081819479625294856653190642325319502263815892443514080341576131891187736293948274973915281434615978123470909742244178536596860947512597129596185224181036160436089244492379906681484262143579371613884442216455861872857465364755399037119605546639015351951168867887150535797185876935314884137097362965413660834516807360273031180146320651871602290453375739350091568919350118773647753716458556080111733583393752155582143196338843065757127844433858397729221592264172690319790854701693522284213537932696626442102069657838536570425635731860680435556018345308789753395647363371450563477421314091139409013626083680497906800002003703148801516082811318019725340280947016299647940195340065747428724165967110630179601476699410268998333499387686569830146373700099503280137120580154227288635536399248168614731722797597631666065707977354638677213992072145996273464256950570106069395246017263519905409067320266340819917885928426980525988617196696410142307139304338700613415922066021740555321262345164766159238541479788603804593690629598826132164219027797477527660585375980557925819816797792036110034745398277992659009403876031102372538770625354565651686892989727256506101831549443684165974678280316350318853158496139095838683209554279902891558883889766666080896597341953269302898051211765639015733589225145162189976505382601821665572821984672564999893464321279531886523993737721178001523850326935288334334103355130608492439234243331538222172437791308673140834409209175585816797048787490190729851695245737063637506881496547799962209835041949333384901532834218444088712250783672520103003320113580094438902023945423313688133283142489248880318659188743483474604925962015220540429940760598642790495002950694337508253616362480164308041555002665076475011173729784905292645963109255677503668292370037738095284346151528814334422744420119941045872674950377733955424475138424350631981100838983767701174267918811580733409025823941560743726442498077766055612154528793938617390991352275223768863859334803896649136041874543930311315252186274303384501082422884496877110990340981881073746530750591489591608991167272525409531701001379793369002269969586744280148752557859509555014420697958631948256355237269806822308463463114336456118328198626772162235698319104995215063472343520519176513019215218825020670010965908420936547412843268395287429558924177805596530798199405398676655954593678400665047660317571318227487066368472938726870958734278123950701247338252193534438605822117372680267330571954573391432277349174959451744274122353887451131715681272798961047854824851117631203108854019811127390770582673923947424750276469706618107856674950118469133600298506390068779056479227757095495844208956624354574648224096032781376342797013283750218486673410386216437202938771582620162553198817540175780316548076256650785320911616990117085517090054713642434217653629382006856376862772358656647544495390264836620104445260974574967062004899349184055909889253765659140790589876860213667013363271642726938640650969415510382812741666795258702942499112852753324184542804441569049804628629526762537895664130303472376241607885731029192026391350298120268856789586249785087310727660431498785238224251278160429283414319662947370592381576864275129325548724278496301958466060433478532680742078882629129425630709820838752455923854150331734426715583121536896274099713567040718118210211926481400125593318404784497136159186655492443369468812938363651833130816865980909836780563493599132015216975086133349220278994139993870538893068373104644602727193466168182610578022251826684251937135723248488342830118670600244252194666128127752003761907713179288197358842358831675869005900714232957390289077176794621250217462028564485056187443410239052035721834094204301831861232465874006167300290685829472742739592077108030963994090229268547229753038733873086984653305696383805837392946169751793485362916126667218231939867562299489650643147711513719557817018714541624105629020781199683996198394004858211920390312507070363596622239149893025841423489231609636624669364882297030406717066799763933493154923052278152851743162300932626207789899817035481269170494018729701777955783648116815476518660590138894957908202840370654279006714031951754748662672198057874372253978193393935538725968849940480050466638590901550717913961416778396249457386952607182699130416346071378291804464313343755595752159005045472506097711338481869796049818368852714693730691701866754457829637752429498830792235121778108546391205001100523261016046138767032317110934865651882264395869725928072529947573507485104219696329846598179570806786467467887017589508646882669826561073584841249433159993482490079700446453289096118693992342455944483258840389241167807403109085579035521693710345981392771442968217417755693223613837210388580538267550093484720993564315036469912426528681575461260384874823574126626991596270615138174869774572049845166416666049360720316882168694493819649898141378996763151808102833589529515312208010875735080516535366769420885351553912368440857820689147969506999230536911423865054963185176538172523830695856505585207950841559320379716420984654063707461921065948586274359149235055421974688475449892353702400851620889872179697498178621141321782854303292937703583673781975086279143920881575930555096256093431394645947897876503611772704596715788267424245114198694422898283234423119940371446403112474288596249063227844009571193136203979702268798746509807250933369745325224060316891584847775531516758028922866388862035402675947678576943103829916639949731861127380866737938770104084853757848315058567952067419083494727923250375950316664842517262053750098404459653392019952574480237417813943754146959198927748622544488623505700695072214659851870255203648321376030538316369802454985160872794317150187596381922446520011693099475093556513728112210810507111599223432012404120969958780915654295198502136175156168328112019454814720782883823696082932160663551604811196875980220188573814701540191431928213426210298608492305692420229368714836452865404940975140416248965582575542435078050587264549385296255446120661571340663811939551972460096067812179033217781158766403464989759407996224184380501812458163104233459922864070039668599098488824377546779788340266022303339474684536572715159691915129094425946278265262459701875817749166186499842178942062207274413934793471098682074190807852066679578390546342035031132571565941318555463453876641158658829785391397023047300124305547181167459335564170192214526859605216031696373562456887325010150016239346217033406977254903864443340060984025828266529460865498136836417836521028089016536642902568072000729213834683678603515223081270098914874335283141658662640582496099200608392525328051581369477013320597231660988161551500613966294662306194819708385645006670828675682865907635503359347990352347909532334402277850655364334905010710113938525186020642825455919953045705107444489397340146521350882503427469806645973108576414718277499470486598446052799836828942124137951107016611570836592620784576027502832880141223897380520713938464606173176932083453496247718713416261460225030831408462585600345744158598262210491819513218691036379726253946402054096702991619515572579751592881707706131477387186143122236476654192720155353574008675332347975245615922960486259528349686958691443869661077737114595421268212476521805813625064782261766327268034384597379300119477180691983315512719359291296097213493811321468938501504234661160761925436004671323416718008645620934265233294416881292068995153506624545301680764267965306089698523257677251512748459737917743746275187494672869918020654569828230173409596458312471159482577638237820931812729325244043898094293952028385024974068873347850847640195879394009698880855071459472594550905398306179089592394330696652136723731802578340114221542827812154309272456317164665735617765927887155553542019971844833704077868886513295285556286090840075235292475715303830520323705729900594390452680354843240158383733251944818717187712097543542323277213268617415574583714326610984609944503134725619753856542774908624508520558532760000568873398283419273588218035578358094091065303382415665106825129855524860265763313952053466686750392303483872191081281825715145408137039913446379093027474024110426661388685895977819635254405580319637616459574566183942552520986572718219906476679893843459998739108516750051211948577962649795858289894516613396315144866305255412429738939035174314189255890599218114600799096077670983233429813633105230486333103702667268738229840004654084619944224816432724807654307457122481140577052166028011322574994998721118982949388114716770948614964705799149562001694537434845353970949139131838721383636293312078140665611071588233015708089339012658412578688019930973667684271070159739582360797424355679259544260059719018022036133332269847947037769024868189501584824205293429919887804040310312136608576395602372875042453997728746477002862624282108784339269300940831523723932274369400764430631696595483920399935024435566782173668836717130041994732239761495792087362043045616163565660673075413448845727016825386129095362570400305678015833979058164365614055250824521778175071187758646678043908248327231010596243324586153372032163732574002798531567882296676322599238244498501854502506586596820132700642792085467713133867864972653591419816088305155155788068227202278176669025842344809141144918515846339045344814951039755623171640159435790685058445583640985941871773052575755782761828037511430919562604705042437310596412320378466708977557878591062965061850686237657251644458885147674943735650874719114140668768415671973538130935286566730100604053683398789159986723193246168295402497178108196333833078450361459734804678971066575946686128832708567476239632894343170405148330534489953681364041418213892616176534425331706173808481809654440598030354811144260148270565541889527593777527089477720884322005505054378384594593459522471753596315729889132577148330340283419979180781495719251388808537615254188978323336125040035244149154497802116354975532610791176546792321649996559757194164370067302989049508600670028677780909291545760050084547949376190772775770457209405801112038276067635357811534293833559337779336421605618895826324141796218522005929854896822359248205562299193863296864435839117120429681683726020313107179511297615455079539981040536715787662283873374354897628704384068718821012860207975114926221715502189790199241337381972858702440020354780877310605096008994796859763791786977191267369920865659844467400063168525545591570465755453868017727768855920963420270642869908564726540074243166962203513435575018147766311879169722473842916393197792210355135662377887643518918645781671802153432469158421030325148707880469587846847400353802967064434178631873745009751908906010849500654335151247936262481839233046191631394002730612773459911310032067758218179147219460991646517034318926187697012616431532219074097348717800850999422837071554139086743256853101054608053592106970889461100063386759366868947915955680272876223619502524544290274161235305345304232045081243054382974741077708596719264067113218256423583410874340324450285281811104677455783349083910575661107167711844788800202777598398177938085265200720423448823775751926058994411684954688158025746684434942966409108911082564387934077013998094325207968193258266121833276408316620587837897687280710168812391426114298597365384540191191987498189298452188610238367336921803467942192050892504686937588657892322081663119487647739955101726043667807010629276071603507937713144249312858588834112104259439769888155589205737124709275931316959845276787206367959859322517322831602243804045301975597022305284849386916205520963061609626345234117786632338198545216851342682656847146375697628541751910080008398809415363510412431163432265131830447154154188191763185685705853085231031289968480139684193226764830768669045002044290625036647101719975708532983756270497040211742546626304241488323960384860990403390475906616825859452052089697104222065795892058303001336790894118563866647113483106576791702840163580192006386423665999770458295778481141595759952928673166294873114682826175696613605245581919990959291257410697253787015974387625823620219448222846219783526716064076716021401137820103704510087213396231383994381293169585048272977112815805985880889108679464642286367260253576396131328149134090291240127996988848810054090865876101397690817614468070668290351189905785815176929361657666123824965378224854595981962243941410194370031177309837913210969448257129572934021341130599517659434688812049729474463135467826886757549037789217202993644437959776310379233955402434024494314522266043984123032223387100701739895914194970393876800336207964532730208639323119318377870636811842189508265902591795916573675831474509479740526466652856279374872807538334776748389699792909827714662107528473762295456784267732247171537605050462106467309634993503639266514852179408104550899160764420582751460337124362232643541947484179236523846947465279958655131925234659645031402552856869839580959482309894477337281695391879635892730188031533648820292022367828579972911465771932683057806198737071940445221187011660988378719547697031109587052029847011551322336734009489518504391142434270610583946240552430452077540513399663155100107132624180212972993370385842604172648228717852197588854808969322743714799703705115181899373352513825852668603822050462284550992469454742238227127689141779794731024443515893225741491564849848999337182480474746945508594698729739104624206311796623789467480853205065536007225237836376494544672550621260829629638901546517190926276570852913700733126792707694740193417849754786308218428992792210513474988830894876980148209866991297136725678806311224035680494463145317699332635069131374255522761722590592567651089614558816021114349115391697495593461843829423164404725562742272977723412907860223239050664968915747097176333238731300759168688620162473310333145315725432019201238607630159307378452202901962083168492021902700736520026978156456326309152616139504078352899007681268062004233782282296448304177004895030375017503993181921188308255759574733594124564779878222025881805895252486702052466647315773872790027240684270947374054732695876629578037499528732937988996528902073920683282694275070986757837753169894207864863932143852384133133321564490097551153595077637887580154222228364552239335140591624822219329889408219407310170419468216185140963091003184087890755740882698595080640889399238046530613111047265844417483672558742526191451492816925917900401824062494226853924028015947337911136216283577561791782011667884663559111102891781204735249872953113489643682526470552965616382970690975939193526640088307012138763984863756900210509771860263809458117217870383313370451384631327465758651999288800932765903292375095877426823877008629754068377482155140492850149414595707595341279478009579227727379190761585217858519338288151999855947738762482173880106370886639610416967470088559454190192320409939561011651860421535286299488772126793600262312366112293507997758089881241460487950307552696877611759161445933490277028286646262127507318863746493209555385817046120765525976130000129184780501288214603259828593410396469324854023723814724604357892653860855506292695800459599399190664099619351953390137842984737780767042884941686054393685557189446458718955233158654867650413798813300885068910283162258701946283077693143772954924079830024172871446672996551575721830232403799501164529980739567018869956897471780364519434929405756365150687871617287271746563636298089659029729737099392238455166503570651894616001394861457259898524428152336591669627720950411857796982910433551485781501037430569171926783451978378696784503841967953343022104852498192414120279381096189716270739139784575191923073359444813710358389318056644586773780307945065746801603301224418983655455128333725412141770472710327230441474795002569766285185670621622017639743063161594976561434644275650411429382293225074570055509500355776048760712291403495519032695298113480831539152781691279720336112279366889025957918940597147673049034779316452268313682019772282530235433985728858284288066682921035254218047883478934633368048501323889630139785869509935029637863726360577162459578252521365523270979974169217874838905396018365201650746410072506900460909757680815044826453255052701594387949974127852439609022208887513454924751562604829531102671770515337734517904589917747631883790517555574457102270827079845176932338906327383642263052955022399318164280610830040450933590915921159266457356698385018259515554818999436837109332031691891142073059572575461470229033061670806818059955096041438936963469251072309887051867058537963223864011706464885596368648832714495195494232690771798438928967384637778170964071366288703760924812960787811920827175788873744041549890978758660274264816134015964935411940973305315207378251790728880818249435873237236356278242980804522173526926506963527167743557490555762420194639285416821715796075016806806271102994747531913089735343102912540702398788205566667170457123361247550979088851040781519574353573585716636030203700814735051306665693720545323219403024234586356403742323849392377107142826222720588336721409257359591274478844714249725248010742701672429234893181493569786032585518127900647931393457708585714335748837647268499413242932815600268640959977160737822479826202344224839473085580069543123147472303918784492908743533131256574626853878559060596378039594296478496526856889783294275786422665470490135640156216981778879215507028018282343558816145239355000503748752956974150017229437778013794957605770975447391165459473782053108700125803506264927616447000371909841709907009140339177920638383255521609193706128405647708404393839464886040155575943020320498861639243398419829862932292063844625074854119668213510245951287398667337420880602951582713899864449904943348272110284545584019012748034486218114114692255989049777687932737197768650902353271671431756933428109976622116967341132847585169301958578502699978593586624253327869933619854153830254039826384323678078793520915645601171587171554928028588836503348276786323908039688842446269626043086038895487830809165561741439814493884507386147062732033376469407029025274058559211912797450807786919159920718202170140751787408742260706975060075908769766209372796097020321795157184329382491508971899215281848197070076539359948611137297207248233579107380786033807867845430011293032648942416668843110431391830981155338163517294245948150095260785795060412130915833534741948661520923718042379156201454615120839501915042999745634570301654532111662451168880843663591503793780391854194496097932547222925236849142691699334013534817419396320755420802564277294051702869145314308550979522255939315666212521461968800177645856051988703492693711344158777790839285203054735638493604552765512023659671946641295811164433113339464397539743058937768776554552470133757163142559227376695966507464416936452976788748163791733351469032754559909651639976161067974744193849057374639303037162852480367309656409914020598191877685140119425563390877073729219380692859307992334904830118327596609283597558476794421689182085506024124921241660190999757809314040348940239642851083084411763943031870210550437104042528023522854556995787167407567528083108030058229715931883312653354302661229174894400621781289452122451629192679008545292623070208307739819735555139139810517336402763396550521826501460301260543277730404448755351285833670184704263348925296987623447767437520771243832033745505944505229089210299546452505332593146461943487634223095105074257591797017779354581541581238807512861387358811495905623453071084045356873408945980329463395567992570647055419138363381590516579434027981894582023707072682109616387011552922789645693654215193810985893952372416661531681877704568007862522038910073411448343503286166685515765238749564070896547354101554432704146207259061405812438315295204581668057939642018024334934132571909937930894485119510832275972717348817229930234054230453318552941403499789337690815844210072275415301824920195956493039034138490139648900319130644548258628394318820012728976886204235529333757519617721820231391232703922866040844283248534046099266613143611483168192434319303488582365507929694978625876023233420249268056782427351397225282888396313640531534822535360302189306393847790765443215001183817906014019938081481414798907349120710438421219543012582010270797159016416881091201883381950880048139833331893534633548677970254608138342648230334788360405819972177737818696835400872215197856442897917927526130529140922182965761507414430942264346340589149956819035807346723645752627125251475421837890657932630389267209281884720204343150179894113877080840803402237877836701481440938255449981968537694910548648839232920358512370732707583598901205590897268116326710745166807752359563508632053640347048055284883199040193948069910676090922321837551730497247197023631775844902129825459707313956858654752935471965593656283889931936171640408301066873212973682313894039590710518597788325211971372496664415834480842363989522160218352090156419456303676052254252436902467424142880183752575604906070734223968761979607359994569033337557368772207648381086426320369322569112984712525978040280177098201750126944656777645597124798070494565597620763105114618385058333316075968817833554867676424444420940708610940462212020389287955361467784681887994510302881237004475985645974420456272273011706950751647433090813216676705251694452585724556838755941793959373082653344648727010661290610776004345453733327563309198201057769602675840365905046409724027911717263793891129058277725381456425589933754167929243563578774530369060445807989368512468120026776196871355646110595658878134562636230350989459786859268767647264503820631948246672584958311629293773794225544162785844730569287996708516477964926335100111523026802739943637111561684843097562761838616259716400590324371353644329911036439557409858425793945135063465582964163643174129139672324070193486775077874353221116992252884848612101115184856176186861134599483960731569845313137672322458050313247257323480209983821458264123169061288933094383663695494495754954230827364561918760095447521379082444475699474686268661455528333183795508724781317515669855483997993898086146817588015929359310781223465002668213096060458141963229722643118735352071545927214171321213516762001650393809872844567318430835959276529651190425075868061135280930582456916994646360110865708393979291227655097804845864760955095352793572919786272356876490523155490213691141315648830856251238934336370201894557789442735958642519837780341493064805893763551177203621801318347719170388496870696269889387687419959854338016917765593964569834326398036918197208042182562165758521459777661608264994975789307867502728493335910710125557639953207387821912211988800695403611146640558623616047912566205818726788408892516533050394936010157137633994304410983342216174092459782086971799395050005965124736539906488333541637684539455455326922792677315424040946767728168674252427592475511984152387573933834892273490426564228748400226516251002961880330011223301496962150845584834822180223333055304910197802145249668282085281772309780664786229321292112102380713612010029107785199219405915010610885715634702427712248521061548031234191152453422599799714458288371054305577494343150769711394531690676878098356946252427368871756699997120143962758706204484134974644081600934174535281496943990998098903087769755115481808308844603381949055992602633513935944629477057450659224811403966442701681344329268306454532635559257425363588249309636874648679690074825210286629311105837824921951488889727655842153613145133237892112123795106653605360896959439541064815372035312210347259780029957999832243973689178604438159446888746923494351947881863508631992531974381706254824590104546212286155034165981748051001736876055333655511563475297547703609891361349757237520194679166729512387582285504144269381083756971843060384280706586740606084551154372268322829721784085492911821602827876162049426850397563780997812698492919143383023661513729911736966420917883778557199675287949757055313488625532859827865823626646544398223041795487241255893772091655597868014706619166829354020958959552814853104328053280537827252062178996189337775433583741385881352780821148679210045170688265085854292972555383124717327443693201157350378494318571536649198431066680061845498527872340977057287233472068111465002074273140085864613465814860344203543734206950602065239571375454701263534591461846595618156836799125315947354511835221249706022559444118136999473505527760768728402146825362505148785936802813120457839705747856304558236367592050943417890352585023356295583127496575086363815661770656522476297923568899144596826720094635681682800820148840738315522576781524492260811129300892488731039779045818062161509606311058605806027837000855902713094206120767290958750414974791105151477713243356421342663792634168541456769022337206224227951916481731444635338545491376326948597752237171745887821257193171468304213922722594141081854384646753255538995085990730842191913145957488905540198186684558695434982697825194688557406137478042201055125587215655806459491882793406143862257907084867121549274104762066031650811350794940487913494564931130180183738185354196157573878933650834389520560740609164790904831389716480858617605383397847024597420922912744838924670085880072027464174537136507866779165690377526452618367950316344161306970669505980734910706120811766067327526737538762597119044656280359329901956906567626222234773273906425215104728449957444160515647131822381266509761453693223614842959393759510248936001273912615126972301448492531606061739442263801761743408270695430491614270950941912722412668990111794993365558396216852242889354209734593139389441844058522779816159425867782513507693369308451382541312938171845205655490280788040675588007820186584636763238485357737580581355512831177534473366770330444887795329606250554606590233904470772396800280990189162555574816064064953925797580072242847967557861211133021270813443114305022299078048533684592236790519211117580154257691923696842778495234973732252738235566553657557431029385971920329674803467847675986753606913733263699703470002959111861682206897886516899529222925562348314111451745415014412366791615942078636040453620378927070796281969437950825567383637643082994866741363030370440521946854854253841179751832517869059911857365163389129693076707192423476615205259582950655789305277974242822983704306244796362126202197652215408500988613359075254686868202122158747981419284861988733858918731110124430695148882705354689915362005465938792818450079556775406615674964958724261816418702968496158464275568247326777575889142599934819602469531362848219411682653600775381998832251188037435793518078009230965802694605250486518740830392240227278971135179880891040041186286827689336761314756006827280874915146052778296431509974185642710610676601416874308382360360624203654539017801798688125944342280959940732912397999331155931773384760436920289197024986931254367428794359377550407537215572628192675831661938894185083897932858062943258523496252974468360004090096238059791934275447060681647152181731073752343526889402807586814951146080541991370731016225925677658915506702925638186102458116181871771848892353877877066705676951913567939036528211925127647581240742185067563251372463361791752979675061605250638179425139057379561664805100914457094091865207136766362188429945514801842607051192973889645535123793441610629898512821458156418836724160997767257395836557128481502569751961454170857522769716178471283076571682706680194237284401474763150749508844994049894817464349102791639772136306280965526647943908006518035209302821509316407913454467347733639850975315098528907720180265003878330733703420874921695646343355917278676078342563905693502695895388097390460616990392185889141694126759644162967430109344261952941915257481248173220534742829415672349117846483949023410245370786059643280698435424410350257814690750941613351988196799866387186908625531996583777469620313976759620477395639081578945821172254075339387707133170486073421544611391807368542186057360506762356293341905838446054110093882595589323801160959784005523668566115233524944778655490871845188254767579450448864716446161574476570439623480131194016408809128309031061869436038360002002703844331965898346634502221428685532659972161549792064306531384252267880537321273965871347495092202262096563304260466290487660928455368179342285448433262334424897231848124713845327008912661178872646061554673685263699928220271752847983422847489828478357830000622816251162145032131364492960033347693382254223220135507663057305072649655133960927409320186614416484877780582833040579401776107818049909213584418746944951633386705036043373232277123154266189602533055418246948866965090092117631614494768764742058923070525708264781210502690490479297808978638658622188552713880831178305386734741405356511479843274453343909235460779314633187312763695204927212482956662488035821699223902062576478674060240780422476445448513540201892436850031192158248402659763042542689960497628978913746319609140563661372225655807668253299887719438860633716156421322456523838423028295484906246702706338873917677790013552186524992215053174147699940991199935593419701165369763685415138887521899811067489679047452984737490540120168637188326797227723492556643365782527233400976723662458630083208114007332220693511273415426767813594838470681356913342122541684690693226642447541586909538822593121654931720008947021466859421792760929223353875495111852036349399560719705584070941564459648698820020528244772284040128239214239692427830551993900615849373019602130238995817537167948871384960938771055085257263165846869582992089906706588591822450060942363122742306400064856139730285304740210791680085221980272365807016276567029690736605749931028836733204947169844189416762675124918567161372281557761864138271065724570913055203426112339984976274832441662281548302855833615225622360940178414776443108719831999207184641582612236170665849687129722876889504038500462466900762899979786170407278043952289266741516889739595469905922909282528567890502527894930769739440136163815140918919468138816668041261809995994911156589544466394430851305455573034954134790413560044042784008300510798238301184627112389715440299706151099346933281089548568728667849805139332459035504189139730340919412106888684185784404008820359496947500955508448422595059778054780702475254303721999917925237653637014334323298786750611261469610574201384849196167623516659109490950607023456876281277160926088754816526857844346758723923995975549653114534655310406352771344656558501260713223229552063743502336916406850200690968941554622388293639891494339923761378842293306985567899341780353311658541795830071697360311704358476844886724824710180509195092206618047981434493269350984600615660525199241526560739294577715502569716873910751731638195894898603611399784338590873500536359241545097417449735098161572931627460789874393680518887025379737892253642023324900091504414527663496623417440114319500274608664002295296500163900456775112130206475399347430896758969802091628234155326869997522257338536040727159954145515100426920730370338495415582703719015950169162497778078545900492139635108081877933957117497097774732823860666787801289149706313856919236301484563097840969344510067210798451370087813582940292478247010081521652182135398816248567106069264691702326833113314037089320740829978879674950774252597737262820278864557236242488424493816483289090036162044277823005557696485628130663513885749817240030296498334789406572218047531706611539865542516952021888596116336921627462692661454043756918423182209674758380599281510768792027025934321242955639233875816698176772008806416829078991252561726891511409663949520535060185105344058856496003876133613333583066228454923886656534370446112598925194010709196892827912852653559067440821420604670254718747053366762026615125905184472938225740883590195118057533956044496078821227550447140854717223796878400944413949968215346671212220889803814691343664984804223574185898696235417919488270641815168229600630455397104765344265217282251970412432281659591407342286763436853527215719035326801591278469844187278178977826480421341575669671996057240611226687144873536731656964609903722197614768203505477967678738552885429494949172219137023039929512165518996560697258700883425882900818218665550280961028394202894079390939007638279607085598462802321376642971258804697028668258925853224384195676243632835671950045513454235754463691210113759445721769676901338341114417835521895610029255171179136292305758429843676620200606440266712626062367759648585593480150748938013265555225605100251751414355153629973101642706583000404208295902571842184703263442051967200150718482497053411245576859742589780850338155169214012276431219405726540602486588248294264430701194958481009012831032801217120253751814799465265663578481865707033455704197526737513697497803675734590668885675782620014296712266188523038925253306610517752775283127328171979462361966482006022163203596156063639531535353869253091026469514288178656433606477116336902253289483398704494245647653619948175496933652507620581456135566495754655405175406231305444376052744997410208894543842329742422942486329389310906875107289956222363867397610418917821603526863601362919022412182808594225491233723604060612017904232564068082923648958612634832295602566393525350919238777488487633883345484966863599965221478664279519538082218439571142608677768738645319621792159443475221625119336076653898639661791221372819183145615597603331889924714206333422951415397775395310633570966477880589556620280188221169466570435246765574215920181852876194538056953317021171671038012588119520334386502089593069881102713012485572762713183586031561855829822220052427304261167460246735241414819446195005751438814016403687184524769317563794142680741059902651152054951817736498721439429881047093397567096155749521143091432015463754711772858516653466812920810755591651107601345442222694556876824936825035529603199334074501212414518230412706510704486700289359839175698914796682879871699732257714280067677395899617174147015087273195775096140372621273247704011568085713651749345887878110520099923174853773043948010612771869516724964410525687734718201695438918180218237339078105782264768646702738584632725611375558048657632437777039549869437254933970001742397207383861981406805336266738072931089501874432477079411808787409979777266574544621689890341924069714044830003481966791536035209755633521750633261228074201012217931625652813331034049305296137291505861628496579232578822380654185375172967499657539708120692034450136389997352598584769653207359032864325633038070178758161540413293359117521485486825944625901777042518298046112631479588165229191103680066986957246318164563987945218414483960264629964370491803553983766537843277729927170537965315234001676869919806089051664368097180171017255535103464205323183944506109209005378681221579782080864246720673514733550263749734910600476463773150303709672391615336672088339793938090435150814950154162312663585534282328948102912301759003763878872395737137849827978921728994866200291709611166069753391857348165087678160920858282873402046905282945728524045063884871992347110114887813493644278210373258126112692417664169569442880255648770135545958813733978985622330579184252649842504739059751640419703096689082787854012572025911069761222564906260048074800486659641523487546435522052636220142107316280504704241426044593289171679289199348855896520549469446484170452173214771727263508112609759926978518023518470692809013275420205768398853057990199738222998731485265443147313338773798171569465597719877172402570863218783759426074755710954991109575842464880259748397554970942099709072576541753583385811335598293901184503627389529500352434112794035732514659025143787211450561923335266836822022178870166519125402052967552477623748146529158009752474791004574293907486638779558941720408778179405577463408063997036996087655975685095190089918427747247389780660518036523332465725511943136694612038509751902918376280136768151867778175517954248496420075294072626053068595299798978401635152908157727514648819362883561953805560873472149766526142835092689020365168464496103613183585326402824229439583586066069248571997615114271010211781448788235598271575962146263631963464125971897547497221752505854349220612946864645124756410633280973561215398040429944259759324975995657690825992926737021882417530787014996215854292812246166353950299059023425656028454393983997100988648317751960286241471875016068674672516925760493444998884006513710791146747181274592694922880742987835511697264192416150607613602598380366949953520539172861379198690055988640477979160347277671794737493107333381193895260791407256343234448493694483689062938272394641348488414428631390093541727696725320361867769149232462302954147699979315084583714636497105235865185219593012012666469671130807963920028957541317262623794811124871214659113076827395221863902057333129634451038741632825473652663532800512266232375190819266276607972128788547293615713306294068180472423222590192800702037892934896743081828798941902368328594869857525264173554968790923711612635433277818024957258536652247209646850164706334451731710192783813602936206814084674833717943420018739919148753025602991562687610140178936634222625266736204055306333238285866106281186505891749415358802676221344628334158844947923886202512365818656216264153608185739610761876736782497135539097307188675492423311461091683016667229575047291468887220447380661945615436746828146972194958491878635634509366067031627941151869319341933996113367885147261711560379038597409730432419239436142126257145156793294675696618171943486504805961550854507590701681525360999186299747359038586632606027642622168587483997187486612144036136605094547730519059963638848476139969586070009896873960852168518088140626248586344368274924229234592081253998970869402913230375679928208077063432674101473187309914153048161697995680298151424500291105618055079651834516654967395716892754068022546626854377532428027917271569334047578207218479694403053642593383762282677542313794962605095402656265008351470783933995735415852168293078017656054169329544004230066120175752433617059186534657333584865406927798913520959718526754216850083995917422548360920453406403369022797164302702251177576824628164498840783324683155326028807632147603455936867131467478857229053682888793274895426726628355903430290957748520646833811790025990081515968716239827899360992933635587900777754000874381872681048886491258861284211598546920245085532502500600507484179204790751782996285330350544177030181501011235933914846968772946830424902026037246497714538264088793763083626654386034549987956285026089036996942764160417953289651782443129829760010937917918396361319015383297734134324338193892301210004429941052210710747640137793098670440841477584099408978582114004496341440648987400581522610699818041659862056475914382720379878423688674500176212110240264514963039112751608597397342134498999302820439093828793434714118778685611785781610711989438260526386448261696240413969059105863036046705005432923589699879870641202830449470550490454321511606891156934790459110581690540202284373779171186471007073296205083027712159091499330848196844768419852616761120694225649829661790863157862548324581074401102734528898235325093084692057206554959722533705761603870332913772278385498362965002471779337039545043061490944501408024512721452475484383796194893377615653443582728773506975256669616448733349263612653081025832153223621652265984659048617375088607114140245552535650120923760806558422137460945025182870572484607544487245917062988136397183925423333619303976875158294442766507042809756142047760062713562417032189894681061718076446018142403279899553506256925622204401244636148214215149340527718615600375474358391991124431982693984194132864623402423141235903774242705584087404834638052605839593380590482933216173392617212737904129798871056057576699041561538373859035556259361767894565165161157486183647866604420460452781403133979332529766271858110475985753617445576478367358961299849821098434558859933742115993137995752215555248986937447685899423966796921431080902538254129010053781091380215842412601353967552818824687727426479866051609504769539698779298433626809733197014217275732787906654578575749591887932913128919892848468044779757724701006178288543063624613257909180027754299974989997742662758960683714062986082232543619885309121594289006289359453639895897374637321789722718960757525556970415170373167025251965178043196167753760221833901212277944140912672271619347488735408347235581092799530846839164925933996553132847624599192447215178896737428413605778828116719871592213519272940620274456554650944800118597773980159021513041223283583327901660806678140001567320647258705413482115707198626131814234970461523366642417070635061861807368139136243280704113696936009903509674013333333498271061240060187253955354975621705098392306707933702139625270545068490415252235544474517672773079574406034485988825836743529148852928077913266461233976448535854119059548388540681344961587558531816179849995372788411914019071912370594530565778272924212524587747698346209498564690776558581217490990089516096405607585289950889385272214225075783773500672291386299329713227584012425694047359495584629826911486333283570086707346648277168544494507845112718713483888144375214242913267971139792721644243898157999704718008923340479877407414197328034098148340530637113139681105165571520393733538272797878633541337277572380456586266330581056906063990020898447762396532191779455412089496134607058012596807079798334942468290419782067853906557814355210610453608086744179668537936896044428230574155701974645628832273471333506683492952135881226069972038507311242247140098009510675038950624908346260285999121418614446863113811513627943164133003609076355238377707341950224795176490950276054682173048056954916734088122507301173397226004543923334757103129391377587332816124128253090269706997706107358716485272158514074485701315609313708095474787929320503280099180529904111351239331025191366324728985861301037513098183642573142210694114705317336665817763684242827833392822129195370086729994157711820934588660801001000091146095244880292328195431588650304833587432676104606244855563599733028657298824317171680168575127683721608243378405162326780512048067664952065365802389147155131036423274271666581803277018687696375230414164779269487899254463765809665548625799218150281476059325078597058688966787431250197422018395286595765340722384169510179358593156870228784420071928458456435928401030737886862184878232807355833260813986116069271619056591808763251574621715768365483337770157070502527481177711857724456098485794037854276126711469145866088320775617169230360843841899446905430477033537220180991759058326588326821375008461651432107882368399111068144010913947242677637577514259348598326222502186510840235300821094187945436318964966829190898344028333973421461016135973702703212912222910658133588281263043443285570338762215886647004872986712283272286888949829972263733134822684917771961667316147327159139597707550496893669987841630811860324313942394125693176039143619231616539624101283193984180637157632733395741665985061902095922541911901927646890296296561204962892924436363083050575457944896278569341341532555785157984795948826571905212726199325251943668289744948394016816344489397207445383502576690853149028063212769917901294756997910165242177853190240541644041029980752868880609498473837712236357984924879525406804660811936488577908244786481316642000204655877393382149232888943010253871818468390233941579663859251205089322900891422096669767180496429009462419309908280265588945586566161158904422471390024790001448466211495503887779906012236111815239622870909057287454677302326230056586185314093664488133787730081613009389685742644155727710628822049365617339894703842274775362203443187063485837026743336715839924339035686548187414819969060232317962238589252103852601106864225045417006211947909866143277219759440848410846857662451699984490393502806234758868823106618736244527120119620865928145346026157603055605409375085465788799236703252485585896156528549982759024624516891159692099383260607861517768049156565048168102139354941275422723297174125650357362726426092100151581449872450726376132959522756020777336169392825908257539278785778251312129748082358080939555689818096886368080695827754782267042244682370300800275581457530827781712176758056048050051267437597208379950962966960109123525395606709775886426427626102500900186004449500247946067646329333040953316960442853022771857068295267988258049840153031594178201520868239549947716850010206297425431743916281254852095016720515659625428081488990354161346419314778727612649272822500137953033870853468138576694042207428679542673004468252951755000875434653818536549584113706887175731534547171447401325215831818283896072178177825880896016810359620369128347243070534235335395644944205563038329614632852840134887540419105325657319855998024743691741997402420727252639107374450010544622885133344865112313398021881477457289358491095981470908372472069576098208519163275337102463408351913642111523619667922787531485688242250612148099140197328155549254538538197673876168075846851310719740647040911177946411658350657480359868836780571408985478666875066940215016298928442009876539723155714914998068887957345823936805190023462644526686165726060194604287307112113622890775749518081849747538472451244778910673179835477262398027201895351541782123994204953834429733515505301803081353215666884947414574109481512231998246761257070756666250809991462222582560927563569040527143443793385004481698111690497132005152326168918700044789772794667080907031323287134393262875320992811626868946929960466426113589490079537734570908301088491056102727073779641895486962667740737984644391741760621445319164862751308811417174481664079598144650626417062706475975233880699621865658346194635953157183491835890570408038098070589737404500250507148273364269613722569569269030448780763486880598977540657343337131095995051489999547400781980531200325234051961170958238142921780619265602500412234719586439590515968894725233032380218277931541869004594817526895027356945774540763570881320779774176174282155358013486430359040822998334534325411625400602651306239165461616469683324631068343695869738288907533885845225910196683655296561525195331303369758101019010657087213974303615634521950244664076543534202421286036824899701142944981875538068550259971567995927727220598229333884985468601471663718533630002683557093034852331018648681362329038817301610874061455049920695271689752381068684431959824049579095979349344947259164890471169458446429890558866860453688303107857880762422802031567365274676638876702024146919418681171128622138563511953653988269389224942139992663238237802883160029025298071244186188884382797486080270432740762493170688722063437022329538360571889878381986049311524608059234374928697930397902997554434527231575830411807479466711926184747827199007196955735986244492960244124281455149645887739506004584497428532972578126492237854347206213857831334141405063282241280458349121095606768583936810703464031326320763589730537783377625659625619033601384896730621488754776164419962403429640533468013932084445373349807598182279371971207629066639855955389268424551648347824388817265974515153181990100009394608617465052577088983771138535062590822789220684937619123859435973841035102275915029347684999451116050099941837757157094046572227772247342724442841690594835343623072074994870461620625811707141239268928395792485881472815717162985377675406879011873982478056874169233790202287516795745074965012431293747961542403347871623709231872518330900048266763036259610675110440883905934707212293303217453951328346185816772197321377838975533842052204153351780710884683203944695984228171766070427351976060606431286406539969829270409371360066901738446765090836621360498593757906051270104285764915661343747564508068908923422096882792486728454195231026477768573171399472009810762838062134916184944232495183522758992124728707739983471048205834831685340866700403341899524716690426409206934576383799387007481384039209903475056234283467315683521442116210854370776032774235094227145052670247361789526656323541316778249290644555894793225943925813211482241282382946642995563049657048867357124048414835333532555792508742799636923833080845228767765261087086853417319542454847997696816147030365427772985413051161915135711853739768550668172616248187042649803126937234175683930199496020139917796885929060871105428083252950695507237519238383509461834662205749200647417507623958502250226118005670064526759027207618744551603957033479429673581450694680810385077908979998134509490873836317548351739185795712151203643038571681947838856355006887748928143433256450171055694426902500984200564338274501886702542298028420877928109208955001140102433903599239793892401486530472691140981892902993725529425958836229575359741238080384068894572110131306707727869163866448864001736526023952699821274499791414066109590318307895174671506516750191158652359344809044410091693158172551212397843434779824469550280312778133479953309258300804059906184596088206211663376191487103259368724208472946079636223602271722534719948333437978178032461051879484607945733270797788028959729620364134817609385538532084028937153606867827784486103736611896618178420101036435128759369080421750631746145531317433732394764844086689720479455014461558319542776260716117689467309951864073518057571642976629513668896332656830526458286756056718069223065537492821216133004276139208455613682925601679608536758104136002548650692742562213456037484545409532767311380760046714957685502704280629332494875544780661284999183339276940498565314546036707917187308341824782869751342166922783388056521972860537238608824908942566563105309722945687027924770111389018365137134395661800983745538107809088156705124175192686307332267197614613278865767391786577494118082014710471742013841028260458607850892933838693574600078956644356537216310574675643189082189793930620781764449939336241794883490320206721566078324282542170579011442623179416064421504975726758944621844334870727578516191222410463784042010531685545040272037754330000596956344528245806807156288109319848188528152361702268580550126889431234283801565250028813236718792155164759321629767982310739467919965960020816958313304652259881147289696676094094658012170349044085496905621902840603293477131131491138916845075619107216166074786683797383264229180582596981868876657843348787521472656353459978972336207182527817155193975978159636335316632357738181178961831274016074809381220497537112989944648858544179170818221419891962262387220930809298072474895383326541326210239801325548903985992894770246501477322105156198960414806730757645684736494712792105588344986828367475534527895388737259726800573656036492307916648374083091635163976626823571738658850924228110201823960317413068304565824786965343610387172504470541274771043198045718620443422498169089200209405078742176868777840256919472469441409180421655463651507066144858220141446449328237160090321458930179662353973576620066909938941053246885257444552709572499570384878191274153356489742980759543459856705997939940761239952068427811599087066682683533892430702405388415766714277683428148377811118193595229640775959672916970017443850666862954565255812578931104461137155217940515680204139377824315910047248538591425535660679981871680143168087150881805014519662996667792288403250197963200831661129802060654716869065105582658458315362894563576908262700827758972366208970561437910884347073701805186725131762477873146513820843857720724960786535362455161488353097238350437784734417213925928452908049453596505441514881435973919610033853104186046218661108600873377127618262367812187780190788641786904742827398455399200977951384606438793095592267586645399893005477348099230768927875960474350322377804456387628129483623908563747708500303587277386992473347030835195862318342294106992777579562523953782241768029761290140422531551701951204856621997297066480396611166580914532639700895322896251188532706615812144626818828104713234751051457213792607317283154217674732334748686107512584173819106661703109691468089015725036492878940658080910615233329266359564973617425421371313280206741982762108371050096784324861125173612742191106570469535924561083876432077780217327057171402664416806008944573166579285793632172292604711089405977560614134401272474026281479644490110152033721867378594524280509687880691714227868312208088003614648795378554372328061715946476197133808780856650684118751933525784109293218538087557192361062407141208166622559626763564114357051962549271106573442263368255857640739129150673495974852879696140875733932523063535323481225409106742925702401121048111921860297430527544440388735475206827631950559814254391505711110899632943406872541494535607701151220372954134996717358772368310497934787920176516650576630751115439735236045880693582705163871461779387758639620755703349408553203412855291610178921939498396443759470492387871090043523525796796165334745285739137815405251663626270679464456825175692852247339231510058131163710165446924599601455298158336672841143082923606935606322562941563497695612623045911666541519483684833968176107749796717733183886637122766927265136183628538074756842695759915444789856830202282635182272920463847046390568028244198522859695498835184143956848057150463173003680842354960464319812984012735846452347922040116393399279938435809287165954045553541890739712686726077884164012970365890874115292390891698936794069989910424844176229788237336944023805381654264711817212484569000130264547784706250362900759997784868171890650497613256395555344841714356285799529489327529569371673727829749177466512981141655225881256832712908048263625921804762773710312980054887402582429965279412537213707814342424251849029214177347215613594289675190614736662553199830215659646022423349993200065942375579183644405825352156807128022569430173714291800536247577054568909480813714035842762910760795823041241329512595955840289960398531309463804438920001018939759223543997844837568394097068086544983812804407213811234778467767441977169284149751942221673871541021552386182655382551466416356842728871637391188497290230121380655127203631197544639201105954316499701372779924180737318713055937433447706265544692321181339181498649096233840211172905965823732666208191409795005044319455881693305040784685706112058731543422413768221186535052337865652053252726230334150550273630726066684624968132506370115291690436581841520097238642715278206382215023687628303615121313458260030934469924158939310597116667020841763324036100048392570373497695947211691192469902083946340446479973902977468902384785401855035039033568402083888845145581838521840600426314854393724020653437589855445515600289494190688849653265378095193019268593937077287822554048711576584020974704901379995184783661015348579464563593768796926022536629035926551122783934777061708100178234678850373524662999503106765110202527621679416161148771334392760463902168007939458098980956480527954044376173103859079715598954940183548961627805846114975095063038657799453412223470687914180993033913507362994409223382622883746946893863648912180657734683174196779871612941231941082396623360386764769423327623005711303315818667545103055938832108393210063912141325361322748519527082418051409643146517281572877791354773389117052097021685812682870424804645164866567520728281559484445495797341317407871054216359626697763167040431180730380633099481861626652078162262034508423083206115576366738859173045274689148812856761296578690489777042003450461231076255717162514133462149910798909639240478476600851118514223734984103222479979038691276624764734744683797904319211812368225289163147783674567640606488279960264566419321406039975117369009429598055728347175024716398146649662229739090514432602421409855585297643846391673267521012325660677574641340297440661053375474825737021964079315688667315434005308095135771349476486361823029578969273878399111987492313862286571600814956213230995527286792134538843086618244294440351022511343373419582796817639885463260211508158027927714486044779104831294101111914982120909302428376757695836227635116356667901739642743469825611221763990117643747858027782903070457080672009379263258256704591242657944464205963882504066304410013823399673947712519041687763841130897429003767137251290014369446376719015078047277398979792979866496354671992823461845056021166820558963606413512216026838995636523492789262241822638888697461048874072277909808850943913174158644079355177276676222382617000750620153421829172535334342453258458971511408244589496960430633977680236831590504579157507057750420341449060760988642915483888609391864005858205469412728156619480111375279087232680334401114900935857586283166051797160737297498591448112599189453666369462770566309191177973005343562624844312810264908161593201902241212350055252084971952100587617057819501286803300814509378101218958523575246559026058598297795200220574611339612424314592135567183408724260238630400281864479408075332235782340385696806888953680567205564962342051487513912795286830895673722219597347135838970148669413896511959777754264727244643902084819992760838921785267757840303921054828126757888168811677530332911104060386937220487478924888959686191812731557370572781982676496491469511095046746220984534472603878643531195705211509815236730133577682419300819312708350909774179831660854903067440946046461157463269890864698546038110994076498936586174666972805168536971130454008090865778926110755514118164182059204878666708774482859857792050250823296626752943784777399352328733496679444689982894674292978011668796033455049726416260222984358832744248552155346677408772825362249001714970271861704675327516124682385975827723695613125423799584819068753781466114561123599756239128902489648464674178647025754516729339232174350583552166525479413934054315208176726621551989532908096039974620852762762651312369651489454387086881774124663971080565349356096491285903710268062440633975035086434767770860885110999729800746232210484862457015537386235656203936726050217833136299133356183026598042868441845771133157320135181610810190124350158575292206813409737658832630495603579186993518244325495111252313558553796379138551521265935016900670666587806956175726545189894574658231967684646057557141138388548037824457952846918093530439575081854796766833813592357017174110191530459691061123879959418566685894265849947608492339467727701443975347237422204169901236425596849605419234215385385559002902864638000814340415487028717550327670017169388989752585927273660959157755557795750290417031433463621551663803077387144145045822110018306733631547756942098823821682170099956163790057697909465503607246376767992159744897644491944372329721121492783370724062791826058650592840783505753855335797964850614431589464856368715616795389495902647336803347941604284905713180613361365584429325128757296444681151963388611520769502097035319808834827835043146364630397221552061852312228161015741117591608312575010794419638618347747995121954434931281363174410126479878791889510707073489486492281001893030832601025458050045505053350037306728387456362452709748753441439953278461542470954627121708049475793670384683518896753009462432976538806403451029372364913878494583818318937546373128524949941808451513257741507138611724348384405515966380970422576038960260204273840992824924581161442022645428631615516022876733446558801138175613847307617015768363006932090073451013182624121348214766984788962998122011305586284185330783124253795573853437237049102465849185732577535828013494522101901576411840098427318721439695917518282768926631346384974898831482674431772717689331022441519770318267905646592442305785729314100409576755285962463335212935078554661126589608097156118500975636230788125607892732906000876929671584876422493896457770111249337326754419020378964923623255098343463243586756064206656834356654809691982242629428969081245072104440940200651561393295550395668975214268279536343984187168165545797750889011405954390559983258596161652830757925283000009990816579736834819208497810206230806132913641803975286858952089553841224953407789487373833636502330596342243302012486418931215509226210260879332611324125866090824912914192085538002553974657631573510765484020715697681860932688555401739618587507689862410560433668802011795625568465400781816843147497197026445043504155475333789668392387701838308098791185685981042722957781964319294879451502784541378754201894614425433575010146932865618107639519651670952865117238235076829996199616614678886328949093818099294254859817993125247084703878492579611749951816671317902872517466096368757501469347312542536681467987301945347217913804858662532088264085842105981438714128417053781236605993358809812338407747194406757044213497602234686680802380545072278802693598472140089602041342576527793993856330180267031468829932423958235441014091728624309611645747793034842312033645320018871523843760623405741755091158173622644328569711032960592963679481298195659835150768941683128172336092406685549479467902056616087208897312712599449619226855439560613121410369895887823094129063459412719956598748240270786476821540955793489241618078692860485396214486663448816737003528574870588357902261520828921124429563531040788131392988407337289662014832373113796879576088077327615977706195630183976786260352179111738705628087702151856861527025276455817071490778053067510865770904749538193362837418870038976270345993792741259438624068845722423188560365956267468352401440299941198849342800287000359492297962359483955343939595501544250857529862143045614499829667379259883325736181576032656868550096910053376116792457699937545876449608281493007098049256044966909066080454987448388408017550607072229896232477325500946099532920494101494207517141199266884091346025331028726004928115001616150931971805161849924526845480732389904843505403779735115112103575427389501370287608774213459265124381612946010825670837288359104964078068312488765016626847565520500838889641575294237127319833805155701091767725593505122245368835951813923928865572760070032509797571110474570949934451194107574493492452175988288136797204672793109914756738194343435132608938708219259967300339571034174601645632944473059688449082322104652379007378491700738981546676794007320284066596317097790305590711977905098227993145529501984816943941429366032651823608634639821314919925039848804826261832157608995543407120721162293945280401713604116636532835630609539922204009360915337158968136417210954701425984129922115533032203759303146416937810455068575104184659516982826966520877240257838002254028791325324218879009044333021757044177547419389959643899931414034291937646758042238815670977739023811539894848990485229138123261491607516258631780503240259592458602447871873632644625605513098402589138378401913875262012842524447672981002442199415418532877193494938213373389267729119527618842303699892614700395157637208197243817340909503915108513887026619178312814393421362652632073950122344207721465583748757764120246054314013481317822034817462810572564483280848142837040824141658925249497417334553473529650961653963357255024213905851295958133809601691553217501337561523781654204384722000655092090230562008071602785994122893204866982986787475694861989744430584101305039556715471600917522127755885340610191313843891149828279213149993504590327026773547785110147835229325281702058679164905563543520509760722694964278626822898409132159930095521118633735465884264097679870697147126213896714471639617504451108782758285559644230868929141053392020111124015161851707911035359664835131353772685808664923002727243654377893426817122540268514891367480501952445283779314586233400559063415726749034268617430357203144761466244108528820967054352360962621876902153509962266069892178585136379819553488834135680170319537456317363381599206383911477922970928274684148805385889212763587894430600931366745291521976037868236171590414668735998209186267830796363249173417722500557655346441280111124685720087659425549183916662846482178426722729240142458408760756092531831724096527770406395387617251337908560436204387965463779209142602781631118543000935671903365447181019360070273840598544114249839109000903242031489043688560988903257126733272663695031610234521871256981817376016887065027256149210318001497587543854562905556627268346342228345800013608485215721884817658288481580878970367830109837773448939983634460360650642978249765526223550699868635201410047792444531449288648263284830427842254819371413301443085939095786461630834698606296527849107606404660022643238119310731197937283268081437606608080961149343586474431344957200297660411668462646503474084055551091292955841329192284158962958661728389641249355124037602018508024123935637197361299080355759074413475138881209501366177439630048047347886812974135176699550175695241514194287100370561838411018470522184351322324354397124491861018213163542630170043770780179367597384524831574629205719186787976065607044388540416635889989190211406248980072271070303750092446583756691259638603103349154693545224716924038029219018510550990884653729381831433990931358935896150317827825619153539793592627179353741940870395433488179212115799798647931126122765786600254933614190403261118805918044772711000358961064289154147397336590438347641891482709597655625347088509189529723187259360988753875633376267139503442081477963304254891038301542225092932595052624894997941848112136557884583888465739447092933843751287639596588627770901685595353202614936875863704888285216596141534998910358627737374207152441890906760389212570118796497385110001504305850853596644509637912032456072389719289834440858768446519524007162215658897535608928698016935032923737287142177092693054094050462629496318128605027248018999058052970248085099882523753830810122677142770998124807215429317145003920481055792553764501194120918386951457813710473154743425164920662710373879774194526677262991598611564258473452498462308775296305626233440566586974954912547879628282983432561997086654584466222641635179641100341168892791283674542328522003548019374902469306496288129098327905802676981144379814041115247962951219264129111768188576634233173787378575820623490493082230909948082937487568455158920374348294484014388364481081315552034238050490136475160465647987215587606134058115144277638451158884359140082401321247247295754187719028269083885451998942239237192122039611414799778571030012071572804866638144080852686969596691921464268821091251231683286727105311543234936009963775995318257810629625866824173919086224662196943002383842948245666971185118038495816844441581078363874680196625609541981876995501016381902365185340555793896410155133552788767329844354996157778611706822595352211499458819613192498023127485153627247835004886758352577230995992299372027504262362420204892768995806631091977608511164455606455307922772529595688603744659284162526550511913518509546725049465065585612394484470808699552917198080024272053394823647394139060540447526099309942401591069880406040874848885004591729064771995120817057984873816166966512258995409553360984460731464751817762632564647241471987436435325550213825121614867864094700942600566522714035487466683548202660525599422343036349464373141443731748237559546691640108041118620739880677148250153837406632747286638748209792587437899421675382190494975266112306466596950745624561882245944896638641929208745946320768594663099459747807441860513563096457614321626566279169566558640918022137643400175847064503515441167086944721301363578832528795199944977826283625469459357584687186666879725809407202137848715455124509101824451361252767884712789133870051532590055759709530388068395005919225727281280281998343891210917407624714825595763792500795807701663057585916016603703130820149667764689223200707822423753790136319234771632160729491197853855556935780691236835084218165818238971960225573268601196383146428256393078386035630517770535950405370069361241651241989733185512954502668053615435506766087020540014928273774562327761805345372656752830837214788144387071983695098309435066991544621080079289318400264471737621143357744746145965864027968694239905850334226048229008064109083834064222892585529017257234721313609529130041791506846891660402133922389087222075786210290666125660254893017408330550391422754132441643303757903471813400418259326156540212217074011667751077249625851097409018597423741394379605735939656767384725867521653099241387480160544783834925947710981488586568937903863583264005983703253591354649471302898359958211411431555278115977489588640909475846982005305815902845185618351400149688771609777548314424615222038882622461203433896361158676415340535282842980512642867558126612102931214708823377314000510247971094725923664265399964158206560859416378007079232279280362231422961670456094175443305086997098906795445311816326732994699930450572519713740255733603068586638586426301750382989329171911866675691093579117229765631449525354219080380957272332380025640543579259589811905566523211306928305167225577008676212857402193992748332944728919342129152913592933457020283914956228987315582645995299523064838971228012954988076829449125857195101767548115618417140456062030445670690074651716321012906995207662838388452532964105338196329624075521425691620089147672019073645484457003607533619371232220404491675114746358259237121988652916388717868003235997529762947951880130638986289623799757424851993439184039659475420742716024992952922463321503504119190884552093721448974620901023224606710748654458967967729477902625300318930550815983890669362933516421086600866191396749897690640759703964452473344298203451071014057827199837505547128583633263075700070966971146226167701982777314239883719239934891375947253104737850632940110605697423226848709840720229375176524015041921389440600806382986286009079701805426120779356389589170458283220080193299927794148887063661973376345796175541588402660803692508913504295731077003737184844221310189652791105307628069572234907282861409195614878540859422153611786976164642858216941911786168057040862278494141650046655787141671431838709620156825460827940602539593265053401723528167958168344110108248836525117996637439005756356179099852096357854722452773472937694374372971096024786287143663387970276807049428868840671363809150433694790085561891682952722958174225286177466644308994625650476263074440820021399832300972062613644507136148845482136163697743998990490899591772098641178657370881123793875608211075261877932178122190295414900206379435610151099500843377466823944757841173118621966935387318054673083582239638000716487780985413947431404871882985570213008022471562229739156467367729027287036959356584191769666533232733618415317730562791898836996243115050334372019949010636811064149020093605226201839630315255513271719962302024963037193670898787173311933912000635126048707714762352549115830076161735688466730502439706168318891341199667250567321233937606838864903306111776519707995568749252458567698507630070589287200977894375876098614439770110795591002446011011147910997267449629863293334128730352841315427565374538427797395735671765492631745306138145815329453574029093411624270066165826959878880031395193396948139843941433934919987390953747243048790561210640631232173218350485911876380596443851915415960464965991733072998072008183823546758413609416506671431143591254188555677988177608929347649580443837740045781911176924596495598266387758907978739926467180115030464681912067872998094749114824446295956286101191703978006330056177675149579935162574830212661820775185704969912081053949151957385759558477211301049848393318613898532839042239920771033517773473190422559837023657408799833184962602674539935979193149413235074845763883316765619727089287053503718389609415143296716173829814554985628355035239565929584202889458487436455934913271694997739800899724619534965875736186267547900021424726919478439733876790801414257839457888642281102772098933898330184010753666931794309725015663336772791631240217592114869683078865663293518401104528540490230830480016067477367290426842178559741872907318477594311079396371661867786070859060372041026814742754242233528668077358010818448814736452922184293114853365308320079605317217318500187105916722792641862622162568550300177734984283200778549940755902046880677503638746138874779427570794463476133335754406153736100618318445736424542161597587312533320229179773982650583085551982329565762351588103758043107713920517781956753013094579489398432337337139578480650410934116080159448739970919103546461839503041952043437972492430929406014880434050863274177277966065847270006903939780201530282445436315170793894815607821516261526456900781759038958289649528939980336891843011139506571935629031349286038712723901117383752942923094087490424772492148325203245888741994398095827759970035761076239267850560150852578883747836234203515450743629101289484280597345884268763263815926900824977634881553600992119635811656242546980397969976463920880168767213143974368313894136531247607680808145371712840498299348607588484125988687290980169109140569574602221796651132741282657791835152562529442237202286935422653249892394097456589588196382001753382032243527038148582401594080850911139694243187524879783212371574988484373684061821064775638468673984558569039720205473733866566656872398723831221855199061168085091183360541204918310814664803946659502464457141799813379266960391837699258932756679387373513251481877837109641713919013019191768802093820480326353684062372029869682456947755319476103646985765811846089569345661571455415666409299851493610460188840878893775858513374703946974051878964253802462679157459423134271009385905414733973719667154558873452613312798465710122477223160752128453539771941734580001568439637421068577769623647300219010604308320419241468522824271783551751096838205413271253727208089088909891475532141845390765797401116026037356847495478649973954906567950023472151152113277820143270893911821335888927345370204837554566794222960956260112295227309659230731626811046334592691976247165347533047790572465984620292409673024750735481916569004182272898645992118822989452483423214855877391755274880248043381968321907078195373189369064916467508144694916007304040072106444733174551943445890330935261599500906719835815173621031698729313749144436804264434112536941923744592760452646799534701598288794132897917825216468983514789626145101316635028269059282146663766035595749464060674888684078864839888327097923569932749422787813521436490383277555132322765653633309290106470795502128436978012271631839968093308404447977076220651609063891220816265922641383587520345901655764508541395087802975961650849351685811201759378680569757168782411374296724260375155332065202330957857513834160387890416443510330994524193749140472505592065202684461907695072064457103090414723621798546092158116844364818226817903285404998000550854166550844569393539724986525101564593475753284921255947692834622416629193035492786926407517476023305362456150506509396334621026266942030579337051401110955383132344696688983830462829662991520860921223397365236281271815998217472261906507054122880404995022287284242992622518865366267287089415567650945662309005329078024040008285088606284113747433718195168746818871829384413950839119087172977449790793641520320013574040174881979059164464807948655699003903266983347587332648962138129336628051906588042218491558642921994280659832281841175340248722070037098524019693740208844854733663781998825284953549261739593106991814471079435104965694370936357792251181634690192724793849568851129470839777849673480287477653733936281408855707816427704555996849890780433244148907449340865321014140965838683048633983466096771462272844664230488480776820504339881036725307207361744970680011957537618010634732115504427195372757096131216099299650835452434729346000781309761421133267408844304275003841106345330234767655857609708971578681403630717235643070013262101642186756730586780142835029525652567794859600960466317093318077634924503051296514247433850475913869646470585559793787687111068158660780676362159899531726055126913581065362990219144914426424289848931777368380912480548718107594448067442554876134471233784091725499713565722670939013469453591723254071021079481482959512060988865264157699017163952931361754758278946003273435157966538756635280577388587858638478201678497042620668339253849892960882078656097959338642819035772656187685256825995646854531367021307257787352265614537815883935864863418127083282001164255311253996560888475065574058528269319516164109539276974788843073192922098576315208472459609700825475184257622984186360293452681210442676421372331547373532411744772606001571528078567410411020570348668214644573006160343682908049209430194353643623879453075988592580486531280329238033026996321616069887517234744339151570573924143745210561056092129794683629548104984442008766316708936280353154632138981828604938200468873822732619256251440332380220878678413911698245840644441903822115469626030600831420069376965168021664847565467396350008590632019227771417460881524694167393508835988452883411393583890025325590137869347766426565642397408168946937764962244909832321872682732557254475915449057972919703448798320072802792271191354920584350477769140662275735843135182749859420949154356570103772996788947596989443483156791313900150425887800625962148444157800441947981629088911185442135529338613187367219950869386680944222133766478094090236845195115816986155213158940764089916456059834619936662426354729581443811951038120030310359506038032749564644905626972374263875839648183415996699199348795126969884022886704380333465927716644053645876162665651120901565872346487101772667249772185330851578739891310469778884813166291875268006865182908549973246364177639829617485035934579085376998462765225208921043579706397508201696730825546865893771923003477698172989576610882893127667733329640168847917475630959193045442097850860862949162874340170607627655654602824421838516629533845980684812669652773698173246319791621055662891887395666194898667577167573366091151211583616740210332400707825136202637108730342000145650646140487249549033710256984162863321382346692679209801016326943789940024123029881966216373306234936564529479347661278781322623056763654756848456973545244329101305138322701906383350365796676201053827638712191563630236383791980666757694231057269854373374537632954905973393679071506545154515446754470592120969892467318342587314224039783420873866974299894174708641500709182026072415265118094423800122514298942077736316410673199816289947370042131474776441943308255675513690197888457418681677382763145460613900655966080877541362726031261184566768562690859495535752293115572731012645302450967843617666611041980977879732973898831555015702877449977829222162380779455675205597390994866680653964629853853604559161805619222774034840138048447063411889230656472373826470596263240204038799458576416519619483943517981765800179806479130593381332887838344393225221797308388475947249186161251781935067968126139961695298194519820915996841949396937894854751065071415529373474520146177692969981056473454552735554211540928434259653463491979850709039091156806754699388534660044633526536494986835064085571145247479946066659381578550186284600280671333215153047740607374245145195357927203608501329789937625405375674006684228837484051308220662552392068204418661669950645006781337712294295597689651509957857246735303834982115903547723485826966538348012934836727353360871790826432566983102880741501668830469234844440983046825469177257491235275241593072512386587721652347015583711854407998032679108725496218602189473852631127162871664067807230876297998185021025678156691553277167757678348164704863763002352104142815488610986169368183498366569120952301673259414971621897766757160760137860158509784282890902101685877534583048615860622099607964565951221758855064610356033089712097751779726703620647641230697309822649515965995226809292575974465398391967770811990026229361021463210284630206873534244916717158509576150444099958579485467634999077452037761417181396777337539258841219088486931645149570496689613768582773740841523636801787639628127646655885664871238891758004929082082606743516091593185183881277071459777672858909944521455422328799650959858594537661018807859437186277512594892395656240272688432765088159458316314715989498710425382503284718588180646670935336199542425219829621517384544190241336243488998339810369392509458987917511415331783011051388534956992524256579669300070989037483084202098097266292459948015281158183926668659064958936521551360581091463088498922375058250263711040759269411395996599847172369511769216414381530701787409282948248397904346101350054773601552152414641712064754193057217204952679584075301697282329540318628558309157271093634722860850385871304568721422007419660051773093871951099408565484351494723156117915347633874186287037604552413770653952711007572380522621057022680833714825732138248617638470445229320582654158881462026785236452060910285121652863271845894539051973836700358791985155594620078051188072098242165893814637445555189670127282993245129888981962203859923588503832852362946557842533574207394929937462472442469027029289968293279184669043896151196945848345686091267393180391755908201907700854993864411512432917600429508143524490379945722138336590918241176122165633070208483632872568657525764805215198200571013921810345609253985811535522620204290341595271518420969738110045210313162768100900779932598342724609787935885508045206063869673337284208033000010163497830244819164700094578592293130983523637469621531617653840137418543035047933115614203078553301020096043532020145343950270258454024087039226558145198627522045068258749528556670773515687855653159474306352121455833104383054264195793090791786625084338811471286090471926363619177528406860853810984519089915198463876549791589566493286525957784544245728050192613481491615821166067337739505925378599033987670162735049680978012439458854322446206525658511143940197709285956701968498362304328383098180267391602251956665541725611653241579088944504863716566576204375021323375003867696647703892685247791717798001483214388344275145611344725128067252292953124083597804476336462578711296701644910057259556667107591512829013472506334025424303976959221171766186019906963693714111397145395890913684155861760557206081633973544967024747895613303845320907275686287122573513996169197827778360601182636371052967474506448604411456477317991640645348820869395046664273511676721407378585331666759551804502900031404398618514621397957831663647546574320186636968997495856365059521351447428925043423950961841032008892479289163968760706219607026998945843536158346746975690906502133156882470141163124367575281965665860061370471022409242208399000128623493281256373085222594558881169481414327829397771687542722152924092893395979099173830698604950230614677599548958684779020647582779540270785829165906104251988857347576041762556222261773554865249297217739188910086391959013421080163315818408875012168616495878381613512362889996601295763431651142360600131020002899702134897225979833819826410139946085260547750429301313140690569830252561759983591004633872223408417244141998206048094541179513528322863556215227578791665929300149653287795607469734453284297451616069589126856074102701310414484255971858072067219813568898032761725769742067686716009324449578312043592492830298637390006683046389745194161659013466197152351861967475137348310318994515537043519910312267632216810072913617998427323013270054548061277902839332483640632125969393896232733338004410030054764805170241575961207784076102039412533487992865636393630977373197233786126247481668977518253500259923148946161507231432029582162059894325793174743461532212829825606014910948409291815602590230004358608917985726797539208288080867665075666348720652365552794122994689087531238382324078572614246624035103317008209703987599626186042316789766351305534996291453948491127595017924590784070725460762435697900041583841321040830849680486489957394809033168876164081357490121341395596905016886062389632170647263651216460995896198376573409148436488219726454833842368902929480080474402346537987278993104126213080786217576437896169814062915591234982606886027915036636150690575089542052621231375216475364296766017235901785111472368304415428851711033985087854132189432738010226948501729748280448009227832171993896904478716552773638545663896090614959982668572317953085463467601563500129138178508414502046397822676109995842147264852734692167122792945233354298965218500782306048635130895474489378180255250326619269361420061238152120837194072505518191934091606066168928805356576426648572827065914511185377383732573738383344299851971365190235642734919951532221838795571024644662497670892960459213641549896457447453101489839479818054508443970807188490319630515279174108901968442516056453765900238117312561094388427902822165096781809704014531805588635742588830029150909231401080088414446119866453976683768425787827932350740099702589423211739144197222490198499949088726756741251392637982727071562637157376306495664040043419785989646043082276753196791193794354446118777686102112322387392245786339425211031242172762422557522705081361034046530128395718770410658393688445168463214382183490892006397535691767315985929256906047445948517647089227287138706205459310246651191335551832989909761965110210419083787859801136243357406619465792072222644745091139979885141549519524651124781129926565036559119619545554277111639231537426761289986356743527066783619244819912696495515309782016782794629607653321542429519672902076096212827917421609990622612133253666525656060680086862929744833708384870132768068514163732838700236910793907064101977504956738051859384900536070688402382012525882614786588110553949712234054522045715297233093801662343396598715647605358039118232100369514546802264459592791380634652347722572162509019562286230723746342321072796718604216093286158569878832114427681229802833390450306723179143821548174526163063028573216339363448590220139346466414278387887921355076966140490904433284990670114180610553745281858786346102931741719342341587833223782048126314820531716686243920605164616337761054471568578089290963214102656997922410824616385529343015982188054111643166668326298637086135759798734187356744081017014997687370124774532891000643757148952122959283634619003513127689028993943998267912654616053900100763772032357234751361132660844348835385064934772030503375923784179609016543928425393551045827572322158372137612213670344798138089045915812909417035159821502268925439611063188130430567959617470013098979829767684741655989315875816708674397960433641917755224714643314923859788066411222849103654534044382103562437374538611004494847811683080801628127655939005002334829544168946716510293340476626020554361877615672679982394148340025712783088630158650968026229125831694535623930067892965989980674383306418744343809726757397814326839972553476388087299734256922053294614495208562840861418392668215357884947809152462714385671272599836581705511874674355983502480870991337095752743106669143220804494924417054151406687419413578798321912079207027472389227675159825428811358403579709242848077395318451585865776134659997780310276394907707013925273492043034407572438268054621850713338729598643908914986321031287705429145152971435850870690447532329260911211484425128384934601635849669502229185130013079413693577861835608868773518920495889864662526799075271998330429801446825583912995252211785039589691975126557314842097905825162438658849880854190830373283889225889284809129650836707561903729411140034529763632008719283004901327590308646795675997886683609202402636513669511021162444252344732615291507480544453908886154903762094009049437750466120722390722833264799134905679825513387838604692579444551012045745080953704532764382814704634000964538952710332686271893543553707115691796086759369035039973410607271908820006100311255626583636844608847051288989758726453002483126342680438907639078784641273212374875492554799746942492655512267181456076797426221818427087997062153524427387228635828529814880192742595357816515430246911756294154391087189942513354336627334197866132698349664304722939491745937135114184984879130539838328224268648906016103804826163847814375765967056319201599493366200114720370774588733708888851788621271593497111822170658385593852589326604311507012379323120036493309719295311076834980110970877100525255146470673788424774524946411966795649202232294277934330883103862203161631104671210372188246590280748814407556936610305942849967904977136108705576584761327248527040680159826509012506874582610814543514483417157579772424812569225521736798841526272245199155947552777660332615114762474660379032874209791641096034870599699171256047906973403302342300713962722843118385257692265718218079492313983566196788132092249719256574354501263857379162125933837121085265889735084226400712095584918944085466941800790338511093323496458348277814638626323046153494549487565959911649470832697215777227328659304935671183439623941954237692055639771001046611214725594423181437939355928520244509032378847671267385916029479364642296404674331764118340487164606415480120590858722098606491852595165266440551448764723117485528556337604966760327120792318518745818659974199622072526928970102595803935479539363049611473743720701758839578763530000350583843890457012023146553283474319628622151215743473957133378156875990223437774360625134062254820249137961033804793730484103492192766269291457301256189974410837246258543770450014838973102596427025619302122156079520967300666721907711223993731684678066300393310070909502384143959257452876490881018418756987970073600367689266511660562553905187251402854391504520790623159608301317384234698596022798482235298787670632370435339368353375412335458563728367500091556254991392335482744543745829239106552988789050466921384675762725640739736456367656056797531477564299005738984893318655238510228805427893753884721728038474021009869766640047659728801550341400891366681309879367740758785419780666512115520010633183883254946906816065584887073493890428164290065359346295727588052250034963056875102611323925238500984626447569697702866036761326351399415350349235990865028735737118837504332532762259641129635557284154073582799001538413377097260661942654131284611251873712062691306379820763489280561983220513787404789938342015951876814297786892875136500183005804974098011219263942351457627171429193196061575791230547044645033146238178073202619678426435321345161100475124622283847944263008523842677403468834290129522005743235805389922956669999825610344669577762912240948630597753786802053570530315457406730707194329174579913701916357348896955592890402745967802046091357250446528858144070632082506980462701934776618801354926680923607763331936516103873520053501745575863450501151630057514195083937896905757825695878543556787750866007104722374451556153701764325049130731494149353703894555555413398644833151773749420458985064538734606655117431245099731511366912605936955011628126938276539439386508050450528026369323759542787623698949762581777008375107448413705566184081297936899585545338015129769177102731944022831590485659921060068627531773682327187299782940641989059597517021047131967681414998905124845624343316736242498010728941901533529167840703998254810987659946782762227545564804924410847474426683128644294729543677230484819637818836658777252186882047899812056222033518061394330059737073463168068421030515008025012913717805827597856996877377439826910630425306920054178814415645829773490544050345447885160090396212605139607967191193025090644136627919122748502143035558685930033805606766309558554730891118125216680422098636495479351679541072091126842053047430027519011228343361326162320188259191667682475382747496328584493437655777277779479889701278460723267686278212879525117402159762916980594046305059580348609987568703773165301839812893238367024455592400268001951255047683361708790997207768247839414610263529060975547723123031160967286824648303607518611914520722922127341732671792677528499773447885163560484392375916742176178980575355109977499532924764916668364132385985783909047621378607825451582305611999337605628024615321529852249591242148894038079570453892531777191571997578540449531437421951310297453668148815886989781933599618121024367375019185838534955932915875265859357942704844122474654462619595258585752549500833106817953059417391740715634729697360424340536982025941375003657392963371205356946474246554369377006010583529146729323085872854294636300025606358085830368799401178650085838659978277572838404181225892039824720681728274224193273297396404872954853036344462351547520518872931563094178571872064933641468105932037750332670065000044074370907877561863944078015131898746093254849647612928407143973475967747021435564881733404756466637203650830801492837044411005906898395118797277494976966978121184889098188969328548971745565268163653646571832482222109370081084656387416132063804490981343262181173053860246782079348846246605102604725947058774126815283197016376845453956666711961415194259940235544924051036862637107475851439095477170924003434131834689003625792899188982543238826762836609235866663392181718661223192462858508760328890090245769599883624055847770061998630016590591429120694139441531800964634327352516108525606416579222392141050913713657549119202362878314028774742315429700725610947887555668411857220550303085749369249413105857235469265756124598682582777642487622830606486486362198252112227779291849947727876587961363103690082713045404428824833822981513318053395101643692813776043674687661184344023452512641383309835836055380468518924758583054234043740612147584685951741326510143376098510667101818287862322993622246048762437437586658682023863759121107770289357334588971453260065329819409698600116039061625674816061093585587208005061361856391838821181836878903652030126174700123723033660054669795732241635624325254962028626920738557370484086714104159116505823032688837978917752206395107544714702818809402064617137636977479629581668501797588671484768016047635113627163049224457084455256705779043390616729602071722380304631210857395873349273026012556913490747150954021864982238410095512373206522330418625636503894197444068626486709313174931491152682349503785309675078084249012879094373953789757993274934253535631360706279346447045481695204526954284525736901327333218209793718902527291581514797866142791222394739758266987140920409616012692206728185389303618903088936686218581884886808998379248737460995653810211117747400513079183650903893625763392938910948744714775913906832918836016511342362530574977308421543902984961103326858400473583978609656001745661766060445370402093124705569270800619402494003313480422457740784948397438207010007073275776218630591340306310919970633061190052011321818411704735111587600133141710910951552841577257704596962976952625072591374040049498433072706497748236097265470316873097802484709829157525332929570817087290043004744042747935116539632788467127895134894971229367073215824801557423417459246619706237522860734604803422333273686314563171078102722862298934647523202763976422706060751234218986150591047100005044009780861763332080929602950172091202808134453288223805653747508847839447942323290517666047919661370504914897244607665364528916683855216356222015017697524047274653317176448794605861569500422991601773199631039776731309772644677106565720734951866463870400641479844017679900443446656855601007421214048853405035229026612716761154143195672425945490437337821250010897532574759376474621179968255944019741574242282720188620783786353485003981317495604414257030239944348407165330876678563652371221285464164375291452775319386410443502791568673441279689480060605578785313848458761363978095088805850674351263590654450318144608283393233328958429479185908703880600310211739791551841266033455889499260154978364324139193747009647483075821855871615652430910159873933777829357130676205063377639507684744748858580057877400427407849106886303437940089651119627560499479123988216528622811958286252911469400689279646311960513770911004176638334446946648671779573804983988871540974025557968411306623092394839879275459760825300926228252229208379916030975344454615945731903429652645553288003456057952132105049905371847170451283926925091165971973473344221575206235607607224403347300505725392861200874106442898112540371464278532706079062628527635756971956566378021511882444274396103320808773759825701195188698381394760239554999628753407330206955876899306789364575045523924959263092723297815192033570343743428868530543112668690606686495911343270243117586449252104399461213611771192309671404379424572882295865804237030811878486416835470443697013918878304094136468630829546306475775491102851903432148589399188856699530547226783071823229353190005002633231417084357108160841398231198958691024515723797032841450079030267706928668529945071612784331525217689589110489525481159979323222396292609124369307849325914445707115074440022435804823851883830609055017032387618942427101552851187233183693415352087671172859299072113966000112075178400967282101567343617897224103286161792836253075516803494286937090561632178776490979773397607961422228895670514900775602338378891216660882036718864615447345501036800717131306301046318680387971666754919523336171674448254083928626932003326590634211490321195067741084011853335423379188646109793737043034507141132254712264666069718558263302673693672673054628470426738318300310571609836123514798806063266933371790745886777243651667671411437687167566363690004302966512330693800148641882155206558144057096812427522734458608218973404386324124178862199943233555105089503440848140154125214016874337867708514780829083170227589314977333897006489736911940294036054728706242123990484033246861634948032767768955419751535872093221002400233301030232926606105530738898621045550089552466245547621918403517812587899248579018624025649392636796212127614192535850383992313340941714439286556825101138203225408474606209435343524680838550969513042485087422943623870148994697909892864378094757481661933382084071726741587451110607608015486888589395026164159610215376614758749062636090011213208328329063863746762114154254867934611771277483118930726339139239751137927069712175984054332046985953526474909565664416702170357079722119705897011298821974134985348363642294336724742491721266541133095741446364522735129053761598205671627123011942871767819078778030961635616918372380922538760582477167331726631738472543875005507841328744316073692596873898122890536098140199717776765018164409590071433481773430830014535410224304845181510079324647363808496709313545100285461195642572921891687524015868568670915925439167029708225685646855230712070730257921987384291355920579434024910949131661126332019201341508004452465565084042738384961606077174252862436106531016338697381392304701453328896588864093420776517916154041938933283656770494987467158278711453587573976038132583461551064781912688102112836678426926216946133630612877317575619605894679805119486328769237379182313322717193698401151531009446582341372862158047937815427099877237692614579755509501379954451776083303463196229616422397627723422281381202187557415090839707464298896604295905166716058900743600071611647585391884641536649072630149348997924927866142339494964213266530414803451378403527815015368350127810745841468306037677750448927589973783593742515344175790440456743292410020958739350956168609447314872018492997331273528233699209248520367054217026171871713014289366317863930225800766389457349862393425304996084514995432760990383125648979264414502520536464102932422837799524230814282333718523004208927940210448040729547186228233722528558532417656296195520091635922399829031267077948340240052164917576527381510214575207066780780147691190447313726623099482053023014385644537791572806547231819750431898596170925249290886615919375646556522339830617714294142060081341004730764090177852372023828007886935113496448143839686515738171369306247603017326729931420427320189542756362953437848035846824152066947282793633841562004404407270407410955163964943234898358413829119331623824844822306951335018438595530032895475137181146719093137718078318167334446007758374998964305384370350447562010742500518955012675775403800133193236636937342568575431527619226178577548543333293150580520741387232535978727942819644712989724705254596491835594595480500945676562668491185349105093209303482325619861227737851058729537498929805313047756787862734318904662633536563539267801236296739570286630565495899781768797816165456888187332729759787373067364196702373897163716831782638612895927210708831104003695238383539667981937779587125396486460580154417491332962687104950627070617928872515720080794779729128895447128345975594856676854202765842174588044196633310475832941723798052919916097985842952821862040645648104705361695874250727910749301929869828050474575855435041614995295846059708154480739329824392105045128904777427990275081886398156704212693169879041625614495380131670932144363689108853963146977673183859162507789042002084619958120513107749532150447449395311349604182299659107994831405855440020190683025149273967254565282891316251137662487540404638384720738413316357270574906097396127654535353668818271645571113819611498910827573997998823683184340334055451151936233673197809208974054669343740047582109332955259504377362843471124475274461151828063932995027522093593857115086985205552367287499514670661214511372014634597184583748554414022534442368022344963055717014865757791547776772285291537169556506620499354381816692369886178206154596792755864371149184414277249809817202711180726199722520619867911107332240031343829731383744032489842606830680555972410804665221694821897987748757207809198782440311519940480880960987989955304534587659919507108901397937481192137630971660066601536289523167423895844038216416151574007558365007100913828762353030592320169306589612696501281678559076424061416854637637429631662812385935865767609293962091622757083471982428659914336265430812170690824996467802660139649880085920982768204405333866997718743351036153141968679506044912981154484707214301397254500690831772016968557960094939617420057117495042019543726248145273023543970485255122768737368149710635027523437853004087164254742457595622291521712614686789995002891697091664337733397368651000766620991499226446317355704564504815366688242847136528673325613340622692150338651415438594176957515778107531842058146194118680651966307709479587143913544442010635621572369813190039521755703611818811794881776646697592090819754522128800705807152231122153602148457850591366810562004703547809734888604396422158784134715233440990939020850997505550030347781115541611328071869341033596092441465712666691245267638211963329504915425598383170560699351271620835655501675803373184007619303326277903815437533859022821436200735837841865468323447029144176912047412514358793750400134856477507012248731765080098899304713501118585653939269663985430784190456432624850393947342577034343285581460688752600857917317626329846019492551406859510137187670682792072195316849906868594769263013760797079212059494726210094635719557837676035635724369125547406084150834132045854934112890392202675927318880588360467099243900492420748998149769813431917940167864982959994746180512133145899645328352510029523202443865914600791667748668866501227483156796728393364538040755132695477906645563104170643130755037059479688008982469703403950679092088689389849211919305713723977743879622117464290456606182352859729577668090456627606822346624212865096391983683266033051834465707727718751250821865676576563495778626367961957417453419309560956581996163906987409916245674583783893186509296970545575520587969892613949551268511457344018166180646587617160656032905079892819873702817579030959321114090723817463755490497411958412701945025719870986949583331323745702767129779153396907804560442212152592728976983276195225478520985405675695037159189886228759827625562749119877719663635069746194352206664641197779775170799110499739082543778443586766821988398029559077734191811244852963304850029559136958168740555641625960239087916676525562803386208366591769297343577201083884009070838577427215664240549413473691172170823364386760488689962049034638078868484632420405199262129928595022433961337991476445886641242173630009349052637932712028433402883286655938494517519196881434709616437964440237834639983613190439526811468618082482423737442479962351070930848158927058881459244862412132552068574911157448574005182031202299054243063695526826418567765522054688331239158861564835243098710445241792961056873152538133381958444288092684215770970089550245574805097747717766358701197538869089043401447172221063477855422747598215385259503335590543732954631598420444202339126225114211641785023953176892885606147780040327605536337715445480668357820212700433414667453254265693203888398020421637270641590400251159930977545296958708796623568804090750433396786177718118697470448551559372810732201309006859532031576508921801379455821148935711895701346183946193743773371570406860515393071258224442102514415847448784210678418911119848668958879257217350782654227369300756076925325232833613139430796245582749058423142240455791053877599706141350029670540267823495103248293697372274017221050306845456162752396233678306017739771191815720224857951742746639504698856397196622574989010534447257321953140094161381950541994338207808018981512506215006598202657409118923925204861618319464744575422744551863715668487158469105610834304026855728199147078146510989100576402010942710833880527800316084543713500340907583243442380643412360382548266351859654721960640638025890906137956295211929359331322335147873513209612073545916030187198288626140951600673554083110294742426656811898814765311749032571270205785600879728828034815572573469570778492448113243086576052083383964082880178456338031216933445819446266797337975419860871477614610288815827272849603667347889544092072981115338236544866698927029127037441002941769496549094155423258124628202624819234468667301550795536882599640449291030285023468522158148473203701768173558489089589362067820335665897539291540476246981112322358070069409997582892534695432938597391744700957027318220365893660740236325856841038031963193157665226622404243421974144625724428165764550922681386892140419953875693200665717675549300674828023894580407193893665822125102964218306897887748484954007788930224332281027960566121654621616052927498966847371482419771236195901875248160079860192626679921410776901122329488017741038857702761311219793014653571799820640459033292703081406946524268296268313356779169144019099464182763560516541306704166288295252266708744645535997682573545194010849620563936407590679478564367773312842948632966027511790105133814423418528917009375978139655850057997471026420383375734932533817714442804323998539252097929237561043609353261595981034433073337860555911877889411563325266814921601474006981668643818711324909266307932889050317462952528588221142243363938594848489449768523308837326417396310998517273668015566486492241309575679210369898596100237579190666586537682095712158578047962503800976527595095517172375421969308041633754908236762770957092340657817850389685126301039845379029841744415418262348293795660423215060013202159640481499085715318317958518022004833856090105322859594506935507272202409171021728888579959827057965195268379352811072434125939985355187769017841465062536714412831589138438305602030336421449767361365510028646077376051964274562715008913620235684051590107314390743618316322554511889048558546963944391835832636952368626510172950883186939540013694208293433869995250838692927881920477222173616952741133840235074558336659681066496893498911479213855846402823359844638989182717658607715003281910774707140620973089389236684128658359158215870552832323813763777547494263247993676046053632292529576892745209872603884784415924536122451617643575624525331931831136951416750911037240095917875010088982651053256318840669127307737576479049290521603555667903098535670912236134037321714992823816034669522000155879335498835498229858065346039465266174701742296248977505537947561041782518850863211694621972968103626393364251484686023544506079844003499253069222805337909180761875513553102486993627089306940048804825106169709756185138205783242968290647831690862246548220750552863350589414774746035844804799316457821413091522164522809238056865180564924516806693207336683532602353775796509534339547875436581970829399530511072963991853370855244075377176122856690494603179263797827800502541324793788132653678616999007639125094263060496185542533109458789649900177813876631466365762355705764760991995995441376983584394462446416505990842829571832124683084021896184686729814724611586886857861965920591774867924293154008554936739081118536457658689784754730412358766803402907836384250417386051088344126843777826808379581680731492190169797132753599025045177165152357545464663524522710068686826100332420721712318099481413645764151616333900808701697077199805431142618774794922440892086854366418506653055263946916670444015420293487502180656817549934827718709995056678647639530766412863330707941435218225650857515871398522115414366141771699565149027394563758883980859038500206326262921972170607785508806652362868735643646634441746862599695875871261776766540764982916429644266174190518879982669136934959172178008282294231057237466110151479904192578661186740157025511681530720767153139560755766414989002492575350231897377140439766950467578818351326154572238997787551714102330918706769154399686899779426659555829503081683723699222669270594626751782721366147338462073072218995618273031680501220924346303352796434038125287588426995859480496666125735075771683566654149166426462066544132949745213911041558734640420869322201069715784411225147309874143243904676247362554704887882032269027425345452988683142318925346442821333111656916294887593845525999766973212095588431486974926716391599335634269405514673327273637971146053085015502569101736696785203064870045750786396610732149760973024009372616599002612965228230419937820744828211458548745727542451925403500887392145621149097028091641526065427899080489785504185487871804199621345692096291747845779620242401898953969054928511740330223094737733262425197174130618704090136226338936274458389727433932056322329380063432955584253424228091416518424590184374469206299058942872340786090500127609794478827798611823436221408295184072799578520184001724204233787462712550472539615598400730484097619260248795629205018167443168882534226895662835219836665955975666789651892949128859502708517332183437665635248187913292154641526115741021359435083688414468301795806940074379165198900411361415240284777533776156983775742626461553883231375602244949512819137949933761127093256762075373757557296203462823868240318740696385004122337571681314899901364356991028768314725179928035023101989758815189816916848931224277451432181921791579269276551483643490421405131286161871610922949894515821409152755437834112099240285140471065987871271958739987594058354618725650585984848394453815001012968270111697922176383376106798451207155369638822850390874728390940499315895160967014485680623988269889567389824574419111857149933945384723691551405483294554049439157049105262803388294725758593812205009102496298859389455688154944969912404929707393361548745217228953106313164837737807515284326959383888059489750661490640122318622313777026273470282421590007019554144099471909450806475637132889509273214704881340596373576127917405937832598604114315544694148368086885134166806592133765405307852469387773371108809610752029039505526991110643647645806096012311771550394412647024045431886520460373830930911668920693035742734191742952127139431556633283813661562763709819486075484246745927156757561820483740045985617456095716344211106028195531130319751887809466148756152131162991722692143390732912162791362253990839911211377993224221807552859637355535386074940376761713377713765880793458559775248167076623216404594967093799261229651269663196787175128830951242313391800732035552981093446850117183320706747522472668079178453777872390377968020215095330691123895334424110383042863221904355476211378292620064948149988726834959836326715006824792625741996929543101013394199462876608033949482047900003624446260369689149326956423779594094770450947491743286567925747478663730851650197421285316354206767957853539786641427161425190336751556070501757864829532587608322527905166421687759736898227014590707230966160988190878254923201872628462913669023342470184208362060701640149174289258205904398448785169401625671333915944060983956386477360311283726521021370021923217820101691637354131066920192990738685077157239911555673081189161898395749860306254329720046669922622381051706050544632987891081002689062331231356259275281262173724807517372428708750542487562890430733718138260827026660581031014860621840176238865511142645858216283220666983317513900196256157700697462778754332745486022235034788587973676064450717378425713179484004469896164154867273983422135202737801988730829352506151551551592918914524769092715264113623343949263819380347490096218340666514274667345060779047890146397500168326825954148406400310030851437642264479391496808663811379605275115965088270776613853797463570452652975237362838135532826615544161325166420471757653533360531793856080273432379883109373483563208046450544525832233953624284220667979516784991939751411004885406262635958922569140623996876255391550363299210232268651276408921762722963706159399039161943376538882322679923605614673081460891119569996554348732866902081108786997719511709839062081471404939844858270405496278741215410903108398080070031034649633566629423429300944796550569546844479201080636696981584739080046926340824427454350885043065794616174658688940044049209485144466451931557738719779448261462759690749995339286260685742580391286525920143914377370427527275230575927845824014187237610342505682278340072316289133038812950764466445687510177607694663063097609892361617300940463384851708867844980160147328103196492433185779235408499606561121659522804872132389564286454571395217880048106665895772603891297771624941494228206596057947724240229831192083614299534709816321071488820819342365799277587365996416307715515181624031371878504415019726373692108596580343363634352479309812865905842561310180565171636362660751042839948872390873210215160898462402139147502776482158746096986644664127410408298559716793271340097980066509182538267431796867716191629582946211978187731946957257890065951822283541374255172090241221539546808488813611565666215443306214658995396975440840875129624395607704792232155025854802081023156786352207843036123993643432585304172056050404219827328350630587329675295925945847540646613727458880752676568596479567762903022682581112934832638403644056247656533777252102180191007869652403898837925441160949346963774882527986239424559636074596163009366959505402041344941435440718860480010721578296319149104360646874203127418749193866964599786428233339701383748422383759962367514353140115988784349420884002972780902653191514419903075445462385456688071086106197536204525939890856773278137975772279308873890506055024714139834623451478860376761143569273361077717422754896813433743766924885022491231546135316498236860082791126303939549889817904480518029093187388257442654213194928952689751563430899228635560318515077443112801007666179090159488027461063551376583846001667929426249279497512541426715723472264020267419131368382203244875926023583231892246291770841409709566812023047295609020823934216805597677471818162494793031910152918727771146717806724773858605424536477878941224366353473803078165969328061348776520835603103625499447774102512602969048707796902095192185328525180539926960498288976268975033480424878330881285164148271264387134707199345648941054123804485939574042892570989163280227044761447268089491245074646081408489775471049887736952552137706422705914660377973660631068208613599422588654853520779366458980948529106157055753612692730171859248599994963100718146452014356054350072437637584335983835680236004198089488178631504095915976558651060194487877513897639698492721025528570296638228525278793637074062393680218895637496140518995582899167788807333291884102457771031668307545882192679321383810004985948448620431103741159351053309661839330808997888817458452828548098859484486883401846720753056040083267371797567802443958915152907621141342932208618575096986991058863317502122023471283649775994671105844569028314426143810691968540850567630575207280189950704470747087874941919852461807564983175542729838394705883283921830612299734357395145455727050458952816901003849437248282910887363679430578179857802619539029101117840892598929762050784142255563281040153642767236030105686109693710932700220996520563539195154105179304209609281244046264255297924536131115666519067609410752810641284845490328968002485539269674077638722817352866165969263520662042468371814805270732890752756514624293060850496408800760215625955111773511350875981671911014098175270518606879178150278718872121534560868359527446761431496633798565943068662340516233255026423828915722874939308912811034317837967059063157812725114411719423797495499847318796669617802701318405985058609648079256636588776423383418810540924110734260496534434183125700389736823032988150483771144660201906346815243510462655035885428305991637894113591463913648545753214114246483811706496459602822835043442237100082919082863253572635058928547749162789636678694114962749555667879382282949372311244402923678017985413971162040194914002834550174257562639885850208342974913980491693337013319468224293840127554127180011447619225550470026506825901468170129693744653780078763204932130802940448732320897030068761027039942039619513697111814354035488414650448418762909598741067372322237827170214532047878298858362182290968627035683957722530622356546250422973368339954589941380489937200355549966835749855395134541361397232551820827249437777365256816440521223780972576246603406542254443623270772963721823873626154323373313863854231440527381269788226644069326489241652004301300641487383783596096487047864943672143758982323466833488636711733385921329755298816763990424390348432501486464303346000275184985961396060971295454087689263238962157657300015651596004009198998200593247425931452374704771251642298369465764639081830042902636218727017194772847118778177607306927497492838487618483383875055235588067671215876057521491153005310982374884774367049427332589484220799267242902697020082528530445308465996677804690264161367482731539374680758261026465298192157992958415463796520251958124810608616129363314358411246080059033564460535785311399114575920611034136125163781264195536055853901689961623443836768311867806177225103795369447376544039881309627287560397843724277109644986651638451557029477270367180246569992779102304015164270414116248608776051573736932992755440674454204334027668941348824064923760646845215398528574927151045999835059795482389968867981831387247022550708246313340548700408421632604405122130155530222447692930466855969350086956246918313343362226502169655368900476993660390834365368715629613576134358977117445193309814488417840959539158959750195223927342512771254946660075290242257567097916917133703219468247854607478581729322853497286638824146725703694123490583004610281914371223610746283667700254767061176677042599741952245051024910432404121885698097826093565122141207314630727015884635236753964150763228169557931841443223964606799606221790636319024351176951128120737217671032360060868474787280055886261004998408549498060673948159252225168624569520539788662213889892606616933885123041226018450949073439673825317937177113176562582259143355106653844450730662692415774698084860329713776553055498357908942130890720382143345356510059951822560095034938040213110820748452780002462830553693302528822559609929520859445980272483775389421122287800330160925994738695371235332172468303143362834772579840205476329949566047188245341737929329943490505991360439332014780525543213476508707658799910637383723921377455913598094717015949959984599863206526212366866916635345246204905466442224618629252096707049811316677989255138109999064145537641723523917648171301623456350293268660477047459786090329831033410254272715950553001319892484880834549879512076456699911366665081514839107080117494652896596864034811165318447207054732253491328315848014476682564919184773663859453976540976602551344960180924640916344551019695378947623234643697835737497855909442287672306578440584299217953792225233934495442270483979063776437391492390560727185065200049763143321549137948049232416782499042522458155515718896822278765575289523133731380804881321156629773684180674490482576589429763546560982412502648971081662166323930437488742417873450955795051805973671928944092757925864998571610166542513529081578665952090261249213829817976850863885043869058967444519918841979005896837245399190647262255851119917163652678176354675248221676168344181841816003534022405698722044285432152268751372818900554421631895516010671801518619759911050707558576398353301691996274257016973354788593782526562662636268238163779866983481225359083415643510984859735105870610764914423031510824843300406900520450024123083854337013696770848129125163510533514830449571331873028970580620176375642294860910362821535856611635628334465314571480685675868414026751220536330113121270347823258330925654917025691474889674183171871282624740553113150422622396324911623412813221257836549435571335305129898680790299734133064991618470508971748195336680477488807685035523953674543437214142850512926258635844804682307294794327318431414616206996720565340832447137237389873465479848281446904025083122232509943791011610233469087089767914168075406208856694301646476726136904144351532826767005468877596573024281668554411213437904302781378195724907500479734724783943998542677419486474676020746878195295597257340460439765560389876502558435619948497275315141054898961020511194234190451434888845398226516778661648878870948935248013470573384487813922432176501036386235527990065057788260110694071395663568628733588750013510269803559595437134952663980221248037749734384448525867697133089713869518535077808658479035002642927520950595279080057066875892213902497618237769584690040367169343043900635634414366240686239072563891272054125192480042648439690721029483526800928891588843130455993045718311790142159552974610033005255569738923017409036825335264024239856294442285537291067929005277395319116116966965609853219028003362930697288053770254905375430279013109474830494846297400191632617114782801120573911577688578792237801876204574433609228033410139536016793376474101278171587533798826989786717830024389134729741897626850210533134910790950492724323537831918636273021958852106044763311770939593967710342157342082389593030129262431705291568472293862733675475066381893046448860369602004088529206173615540801815032051603261062773005345257118114753650026512142553483354720457880612236010576392113120168685345510480133078656228104888516735968331600382452678018426321211426406284112647465905832584124502381533021383295351263724123336356792298888681158594294592929467325325428272548410725100063910832021363980022511917668076268762929313805675178462684082902781170149965127955740258568437120542969208978303793926849102686910526904783095008171076564052823739353570727705142220877301975633214666175762167990840858834779836745219963396049439791870177451260409900920387071784073873270410498967621350508826491159195145533164256979599476928791024314091828682723120988418632000632808004496474116367604103281556640629478753914809989975936440257361382005104962246408976459445288811489699388273074321002084065696107126206260929497264364536328858997825239300315466993126875142246797182393435980364553674683479876348993370378672610642832295063757365014872805528200774923940684142003947440060590062360278474729555957467030171563196368527048749395928522227220440516337518828161734808523352832626834115243708388219535000120450943669274508843119293671422381547750713432590974408542015142247467339908400960395526690584080673453328898303397940857996188207894105007574433543102882977324135317757472458078999871927274937759860569019006351418092611911762144332984146701925302910694307364613486083196321827551712604391095628405645326840988411532539769368863354261580824635887381604070071197167741221806130674193988478484614172111249098696788533688200438084803184627101372422371794552818014545101310490460872986746697066902021437240038799163368570982310991270935030577027418742386125191465673012144092382709524375782433590048379357705431804373621243368039575582057513416125691938344136874221647905577905740458909800181949259915155765218830470161803436312309878054730846030548077335681761592747369885187371599576323474470931770325284826323094377984608080390792235990207200615816499148979749293214693621730538734244447859699221915680385874694855253420827947201653515843613632972474979727305699181471480121121471118197249466221395450468429881505958979828024443331302188425550685414123640620983409069094618467366618489073885661955039998550662932719356198185379343104631349497142015180405780036164750829449565562494326593842753509839064862008262340725154767289323469124789228093641531768107974967340657884395627431266401738917049257903072577663061851386413626167265194930329578479561857021659636216456541779229315510710895002474670438905799286797074039667846596287284675937622028788487230099071621997612120890919878819389244354261376548873632470655492584063506649578560408692535731494749263673408520817343434387131669726949765057581545762700286374936614339059032641059452503496561459900622286967402812499637167449697185865201119289764884066583724632703491911596207140039693335812850170521573749383010902886398226720181170695072678514278909193123391380265643949950748812637298218344728116347188037424928474934104509585992811432707868184351105905953641758994863413556138468599654705156414375006713426669304061751657726259531720842692537519372163991356746756249031220463918479648381307106597996497857115871854386166513164420736881846623198272811488334021668781319479878182905791229222703570136069147172832949761260339397235583275621461954620117793439049098377421884288533225705107451954069254530270746134137125703788785992184183070456726819925665978397746055959664473136340504375254906574657460341153019938269248033254075583530560871486754079716941914599000442575943196544541381225752229149516643637309700549070828514660610824096510515958151610000772418034955996837441753247178438058123737746422915572136284102660974492054761949869778602587796449167340683732702978515826234151867072826592418573581445784510839686358016138412439894001358469304121521410203791134634026007590262186258073576392464979359195457998594670893541857642931019663644780465777557649941751059637768170488609649700979271169703572111179057578352476733517762370992632431969365560317584780514602856404414983984169888730392159036456786925087987273249097669360700682340905832363887506239451261179418025896125428480138163883094119170470664369900806399630773363012960137614035011587828561850031461226011448260091460614760822535926673632499271758124157619833138147275542580023411810677401309044068862270219487292316715356362349190423759615382128233278291954132816150545219715987769441164193701128658592533805939737429633348704450304174631739555479009134415550064945706095361307693971560380121779109537103699561788590727508284514562988945292148300990453093184458884692960003922972374562449373827668019197809913318031091891595188499649564384260327275298896821467588505590340037097599060202990901287106835606479636434845950471428927837207836166879165067593165181170303274234569550845540849793363180502437250130367705197289208173050127383902793511993343933786406750388776534086645639884108280015864459554416974708460685130784952769779780205429210733489347696218603026853858638560690237210571182909091818412262809291544507546893051906553362771577648027387002015549517280743778570198894668197086573322944991375359546307734800540438631642113851033793913307077046616437031625210580700425623569830540874554018016334009134281932024800357529804614339430144360850378995523057654887748674700417712541519333118132139889158879570180600473750438168472034239615942839565088554277972139256870655486585451522247260517392857230799627726735004261593508342749673995842211807781559744460463037148949715070528940891863872911090298484018434226052646928850845269481705019606899527590564340507895132926000890548211398457322562044880844171577952285077382167148161325302290942487635016367673265736438377031952412241587651974409349648221855607419056503033408528980413779247661957390539455056147918583404680960260389515454708185156118799424146664338460795275872383582470748084777594029512015763008896551677988522056316983940864503178666019460548646048984530224646562345344956683186766285723503076834487685110429232160145389205686266830851312237427643367674697235354574954306071723360494009690015428980815592889363833841339445924903600830910342092567586571681989766806628045412861833541385346038756644281960752042673424678449704560754722143175667021820807191275673948965021283461301449067095846242023220612017618443468799747969483734981668105220092295332511193446310686968673301799110798486671683435318547484029259431213660265073140618413378949145762911409109753567709765823575801329466473962743487213360983525358643515613595974005943839827068105245376894090984931942133139607685369294121764442769562347223045724960310834766928470917113158698949507936998999602184726948372153037367741776965095357985646939512626295211130163664741245471786652586421882415254614864819322109273864938777788600161012095363183555958768703383758475050809423759913889526050183172690594430051925475946284236806508567323030352983228854877919645461394689812559399794911168118091959346609380559699645762711129659975156852834398569480689412177173098071988154225464794583728196995707163889825200772768773225310627442382536930391052279344203537109534665406083591046834833771474798777476990780188336209885353660999974657278397904082764296618630446308749672414953637154112963704757796396467422883419343530355957490803535955738054140084747706792156722760039388066387327012760985306313346653711638147404235079424031240708072338932796791280978901829220102234323755833638519285751452229897481127987791711573587881144619686433110598776477421013565759176284286030915724731176012248276729342509644373485825697390478490581529940480021146053982309150879698255083271227868053769391955679617569384940855743391660134214466652091479280094178114707861826403074185183293232681441681387891678970920436408572243263532106365964751400581602792489105170526565661136066317416119606629039344831248154268792492600916603526404041390462885017579494967721989593096990415885955387404257693799786108443769160128431256366868691519068429609411868504751520860171466906378637688288334864087593339602703305220739348591347716185732764555110772509717616987570769073341204330318901252196502621591833868789558485545274159107596882285590812636891953909192711107828278727457184204306417884664911853318724524636127185870105859438288169982914294151717294115921515845477766802247484972218639347688282791095409924577469275978044367981312323856107202239477592366991929742748262237328966514774276258048266566482425391853119592949483084260096032277260943374770715767011861112462591839575712948549909315606281557957246314089892246748430938086402233759986277781336370979778841631086352814928375417089263467235953548903630038223765962584589144022560625719365478065569543980773591965490516397905799527723107603353635371503145291845325797623774072469352353056828270737671195875363421053211666620241421720401887188584745380426393332965754154718303605451007244842041691021126612406453099998404606604891020221416198409870108319489960415292850689418085476425527752440294507132415923352475126372604432345124734196541333971451258722869550929045175100927002617488667268254283561871356029955377958178072597978488587766907273651421411044634276281229451038000513341607783992993464333689123899222987566181321866035351556955367615908704785677727229932074385758950566053316789919191096563225814711390964509281993139060371079804828295465459603845351087419794012434937634488354846523114862550388229953093367151412141598704642432876216338793522907816541902042919773261776253765462268903663783060041158752345701292276123097133383689863120496557765844581001201272717588111399943616556631983784862556850786149708609080874161772016795519466829976072740065106746239611714269134936966135335879045567414320038909991555396053052135076950627143650073571799294520233125630617886286217480618062612365909674641969811460549696195324331725115413707576588256786146528326475505341936142546233084678208041495828134697136696468492735089509861956420719530649108892426938827218385264291960931502022066473420916920451195416887400553944140637693464672309613912417170346520785868718638380974976698452654262914287875323396765483713916619220061560216824829754678945615302883704461123211152485577013726619008135257207724122163511362456267344594168445224872961348799930994708095727290647184183719401031186143402348956295127995382236062966831904668491911567304150857640148156978970761496307643979013013350546224601304261850065432673095760104371493220303119991217523703584989040834813517328409783391863430355108027834681785622782832774744296905186062596314862960105999531842967674468893395598666915254364703099020286111731474470415182460965254358574637670165837662088763722051325090620926673060329444748087693895347074537567289243762696306670264440181889881896508937033623944553309455215712041688211420117960233485519515988839115526980432999489270544114786733811184472085462746180888942802676965507768086732447584931225694011808126869444990947044550345785708008602021641422075379384304661460800336120946895312771151664089035045918381716219124538360493883926420779535750782474086150634522342106116148641631787464277022152282549766923846789378244061436024043475044275827952140973868175260077691179903616839762221521330523935934531970427568751021702381919960973754705075921292502351946651646422682577041594087457478497903943955410997447381323919225309775565855352415020835797967159677913644500735447238305330227812955355240810910688895092697764169537785737494014877815043779173578848904258377157735740209328661590467073116923148006703492181518889105905052168030606659022065901165380917044704543485836244156553993720982970073533410544983303647895480643655021543420351926154056532975195000089239636936552074104233234837429881904026923062966306132625834147296922823094895789818664243487045266259849317829150040241450082303923804585852165403618243339027701483883595255779022318594784969535500269992171077203113504265592591558071827913794061963581810897127380281029987236930771669700707628703038899195516501717604133067904242418998880415460961797369800932244907473300448733240101440093368120181853626764321266459012584058351288994244028640014788765594928621807063357992277739466229712250143679806037047573235529025477296964445614821016446963307656935095232360275233780104816899235931242962129639233131174169333171107253633924295450119275645934642575138023471518675111059862835224622981182866072832068409897892452620620951016427185236851709895072919698988301585491074077269196375202859226050339812461015495697224600304663235681972144900356155699576884461790307044338963211768144496528553177338157032600471577052894424523750401355874699873508309661090241986986702444780250780859770132355557618921116490919537444784564183501866154021372388549340633741335414969840492146343082480557029165058142690105939484248061399519298915167153280360290209875777994088449479014790355303132789213946339234435517000417120592496580974446953215343244488086420844240612569129343620784033378801785782896750624022491756491776998674528830718985006200198421398351721472976697272665160544400063757819768185801733363667991677658386969090292686305634097713512721914102104498962247848184915942798108218500408941233562392132223888349817119153941748081191649776961719595737440194129711300360787103769874722407241384236435359922979106525748382011254631523910024213806649961546559810117706098924234789310215650685466425721865244689347672489072110372700064864940754353198814336541053785525595540033220921675959641717042206359413849451888465638671204595684618566167748328078996196120737534074666767806872435056495891996511798005177176627923500013472828243567311543574179402654519810992904247473305300589822053305852594704626077299582728519673863600266952872036365339805471803415957239806017848568637562780295080738813643098150651905574286718016362178253933453868272823477993527410927683860287591022385356413288940945682602823475563910906141165143597295507876931016969047310778325463084887621711762471526059621995400155995023164937370807732032138095995395183915426008323596158989758993758998362779527254948394844235806014125573245527233680003826543019397059163602584426851795409812705476071009781723449629470957155521973624316899378486282655170481955453709359245438633879806532200093040123012262506066101335161546768839234266003222917827582454486973965776555841697381469847133721025273162558256869743330730912421599357907172298391932112435067073426731895831999156479422625904993503619139466522916340413674824149370396733841870220464532177985923488493288787300496248112387246660223601685258444034014728426157427665085198656686323911527840128914719340639184951006366849465974266636319507305556504247907438943573082269228634181220171290972598039266680575047377579364791504730795710495190337520398422988782450870056156397812263533856622793802221040835060521470189164070199705535517292014085314184428471567683557504454202530344674798085870470002450715615921756643988863792504842422588862613082234890714418566221452709235210993339547680096977071099415312855276022000722593395903652015061871154884102521899904615831145703743107816974380746965565988308072399700978915423038886426460141137492920156499751110277027092980537013718480994461291721485637059599031200899075870585076685693031824052404979565503748172811776672331703191476610849461972650942850246402278650360296985541019099225577804636102111925135375912176609298607543141373366167260628532281497060295366960407415854783248265610112174518956435189945225561865804044853802942778940793113176262283411981682256224694374061309039228710289317697092646357075482077290458667243896525059010540416191353097220932982063047436261641868272068219335762179376523296309770774705659470170705372448804540119227518231325831084730475895679842681323379116142365487415785318053554159630751784809162880563368256680637349969448235783372837369154535101779128666750430115526500081088427041849502348093263677307676790864160186538288708363210519297626451989621401384868211811437398460785977729332141974741793856097107888645518095239221627030856740978557846752486882619917148804159243229493914896986216944847536558651841919700261322682568905436065836810366542365578549469999460412300916577924430258446776807568130164019797633552774538921711842807051039845332186080963779615279701001573620995464082262707602445630974396796270118231085242584897715366342828561482161712793782345852663844942179273268683634538698409057861435496453697493058545175662318003002762686119060662717657570914590379137400063544526592905677450172863666347938648665773744169566397009599673197758777539799353275946077317417437159244126797159118472636418638051557474569922317114102088739185757061819507723986341039931025058782233743678400209435485457912160650343867205234425709815797913981769535404885314226940638685515523909569966646826781559588355118796583162766765815889056032619035520577288769981103009868699005467255908712925166535365450189180612015864049861814731191691389526512731614195878460959918034462827129038867659133727405145876894670568846221227897689885573809960869436718149414275852040448971324577643958250556059549959026802783665665060322807211084040315376736342265507089428457707870832057914567410455821773555794997546620888326413759440357403640635995653541084631637951729040192928823017840503282656991384596385103868843627204100348938582882068198614456361757664050793654059832832011629891958079461120861505226355110262310374041564770708639153380184063956324794314920034968168120096066860744467692023889433998599910582461765526056730921280898448634488589563318104380932595356338895690959195204062783523267392035718367002183338817536036972135394055006370824431001891604773114898760541314290685644977978173012477845983436527066629738998448763298358319402390293508598055854308296048048958377986370715284681192888229413236805981916135535904301571670335223025546225792793454583604486524620203518030922964708110824921629787978507119676557026545950403431454798934686951695801778047482286803653531263772054278718976517145117985294134880423053171100440661903389561114296084901904216107642854281589905271299728524203134611351167867296908297743184134722642126807539457108753109223727256586707847680260735971407727831132056982190919507327948748723798917286172121859304872167518698051240495540812181167733912544271859601888880675746454164593474063648666947713134185018209009825396551948251024810037110639897178334755995768008678903388507149087561474435688015129687981866369740645960493833667767638870636563908544230733131782440744991089855556587273696059950517349091353772332903650111608903924790448650121585890124078035375431133889923195681999571254284312792781586520817037924839699671295442589172479426683460111296230601314432993468044733902982410959685302134092287110585321661212721066498121719097447887775675782807199994507011943337401614528145571903472264594484015685671163562288763779739939636074185657642721416514577808871670980488034571384704742441824945505895746126124354815498462792638105554312131209378139447904534870827749484151120720193108868685924688039406522298226953268798570798612505223584367855965856539316071275739746036063755910037503406376432673425792691860513498087425698950639362862138332223737320108553605107685058019658130855950596473468427689773701696705436363507475664447411161098794516517366536140295388558612620075190627288603689301104825502894402916396128105324656313838286468155610495548676825750682028528593426098960853204356231036070657424584586212016912716265530543256446035973714393617364689431520678928789161568341235297051023776715738460880467505176959861619355622586976379071126447157638022399194117293209076157366279948378467494164878061264961156685826288723309061501823106103012948220278903666963540344295683161097670027642866887114517771879428911540275209898924158254945916057011967665201930615161081160228133658324730344396922682480742948920862284522094221946767862174445808848838325146421736728032848805063682270762835657359620399176304289636417795459033592448587364125377796330885458743435350333742892680104565812866381970303444830373081318496131964188098206880564412561730576770367544798213405413239554558422905492544463415384534910074188468955132445988519520207307280906771370617296483924779639271888733266181038054848965235686853492428211714695638978265215681132173515375978817700000898225458787893356329170756478293976178867772715270059861205472463338114080285355990698385697706918488724121602996563187310970322120672204934936750648541528612229552167827073298839366794299342807446124296206740075518883499781760951601259921996243303166209082453974366864526628698625096763942185606220726957085632868242542662892679699303897393781182492821391646555489422008469090272640285724809104533450148251035480919575890940814627855690619340362479094848426058123364218886191876349063798656283912904332141899395002133329038841808619750132074879574809302218178933730440706496751766197972183636543351040167599374794498206156917947568285275791733598449126851471387294679237987683951800080815046020661961209957859536126619465681132724427941586239427685646334087193108105328123307519932715065044960182064968405427885774640766007098603912650318677893118388370054416507974226073811916147538988208356884168620539462810537997441440489998261771329871020747789179047492783844698193008159644887993680132617495829772733662817589431911521290647608817426562317093553364867715870932360283214222297968161855513255839663961971006340986839324003616445084047793448673964829164791586985768619660717392779237009555247187160955278335906741308409095635313670679890587087529042662022949111307865839859034271196325710701092204385870633359203205980573887353260693983429990831764663699884540101460587974532479083972342718261977199872828179825182646387245937095570914038025982222535810446775906115394354656835275514325468383911834636587753352760698742345319877308186687715032412620757752803684601582615897974264097262790157474909124294760613722204362715219556007222684269202318536301062521668360303768290308302936124778234665117481093584761525763160098502852438419639871271284024910111687685284419244388846113603351222998085000821705694606449411466723244765800811476046229415152626906731780080770631752918796478407250629744364422031413329948127253927152928503643034663293401282816151117592288653645898442035971269617925462392998762136517223819885151022930178091971562027422493902509307086214365303974761798627874696965136497422213586742005664391356158209981230113721185297750576297508551099616086232700145664675727519621087517595110789902681365897123276774217167499824814420164838932834765258315006331125213378058772941745488839930960348670563849595286036890788323619666830819676712798421228902927228532585750528523864063203681590052221760729097970465495802929099972444867139759483913927201818887388488075128476364386390128740772377722595663910146265195402848702735286725354764259908652708148963505128247679457711042909101038063088081927481480799134520409396015955562856587897463991633895537026226614128323576819727684058954760947723017446243907404113420869822423163136822851449500808986833151754993668061179371201455081511359904909628013714278857847030901536423595898205207848878054799606583407713889311023174408679690805939947786180350973860156033319598279377531231168335573635843398098165918560653563781735753754479558746452729758261143077404276077348015461389664610567656972517118057796387199149263056689486864748831015210292724038297349778837659836656795738059655631550723704047670643043214578529279452395618330693503116393965295232386205100480054917117906292904033533951299979045063666013599056371830128867346142523794988459448955977011196134018090927279999584322489907760187252654041996913623359361781488317512853523030038013506018845984154272940886079519990483655589029405458966858927687588174866310733692132905519475673761049517797380430779995345143452936404892578793924835184671225371675988048272394010988021562213096825198189068645252880996463839298434550870172933103098656601027281000841503479408457433501101205318896500823816120261853433575463305417826467572937576400024023274852928384372617084237586247073915045960633654959959152404527613989928149825929998554840982167712247222054202007574163878756790903149595882726280971245578214797980260343207580032662516049414621984085730138501265303883510678921136662682818377343671416073196277021432162101510418798671398979666408399992258931350525138631537564442894736437273245795716935631435782856960020020605088570045168337350290160138551375973069407089644613606736008435640556585897420988516530720894030615107699328820691108804053243131422732522064909978965807395508032838520856864156444448119670523951522122035344925882090589677914364226527305374581890389101993166844345779136906767366552076913423162122511147344527287655110955761081973567054465650768422250609837852007240762009567135420162783402832183943176135908053338713523556753901387297904914725013672279434750129443038814619510125999403498217510346385385058888391796467218837553618135133480947983806897420627619407085409867159451403153722353909740741431905683906057234193658555028218031997973321234286028324966659478838316618188065589538912807420354327846871466167814542106019493036553776067458655340136779571945493994940791841608513963554154028057951252990562562562336080782488959569471001682516744763531680631446144012195413496803163084570097447509767562878595767089901783823677619020878661395020838292348850675446666353386384374911834208351187071251591617998147708051978063400791639902030518616492299147864726034610606741566632917718432735799399456345937196485928549465460916923273543057500573795239593334591390313344074192836859853553719959074479551622555798958435269013723530599884090909476118376381930118183040733695651304008414043365067033313764826258674444338938323283056888380677391383164667037968913387208765398998115416013641146959357320648595954817878354975948418223321888083138313531063272085937738847678908094428768380689711892306687871274580623170807431242510830180744015548783913254761012185291525918840438162464757459604026251450331703107311890657037884127447390191752627705170932032917705712542903077214708326500587753463548278742987328473318351456318499039220841669751441130891904195232948688035697253821542678337221623661875347777709436860694572499234809674949286109153380303085708178345524636149074746856953472853837427255291527325076825069158456864504282222050667195387322016663333775192676071647266462734187667487902729496263603363195408626088073479315740984283522488190818053830477568383179369932950950877350753460830039458997524504877357315145965595701374844865237429213376988807498960460368457095583079505972964096278277518227726323392503431651064097447561729548626044081848379467047568761595249281096161591181550754557927087711334518398439411170111849688982537896429548937903115863238585701401489771416707754775267138502901535620041354486026548263854505012643395859271579535417278392991994373733205061313487597184651741925515745232458726614011979896895112210091300056334023918065992124945766459544404276895226891562838653794886312357591540515901794204869009646928075746741406871258947354236118125057266075155220865923939038621417661607899195127633310045723455574992477334883546843959553020335790618168416249943542409121353050298860867735075163932643421911727635444113021156802616172381994424085407488188936984079308021067518231814776984335432652305993540425202006053939755147606142309594906878904487295178990292863249253039754938771841678534615012335533621878745455952174808737542575326916109243662567072925659305823297750954685572869821115788907280243364590894538586671336690445733123643756895044960091156946039689929875004507721952623766467462341523010180968030609554326193636125667528592900825630803452843022764133310849980738039791319558740541411447353595258881980240093813582066588200474847280233968838145343512588537104093950036499867191038503841801037196353952703797275507989057623238512343111272587590525754389388070887154459956407008239442889684482235484595012943024980369989578532262176750837459761657923237229805406497097355128771914211870360338972644313856622095967556823021085526053453754683802834388607076768059060948489575578201421694959289413499235010209686744221489718864428369125635648672274396360402231347778791733385932500886601552631884694484188652380032556986205245826637598727645158659862448447699823497242797841140684509658090073255894813086419027708117828917521076570119620120554407132747238623834517408990225516590680067455078097987844406152868937174630759096498788378396749957410601232598091268892824430989723392755528023120405657779758647548875319461851471593210670250989461653339051580901172700336436814058876388247025127804550637225774616452016877519605248149259230506629498695444053632249934357216822744864297834417481829512285844045662168439281929263014295564129152197402094729199263235646420943849661207992954788004835008900602545998805650632072636097917123082518473002026341237154697481771324328299107042466891773404829193639327951226414695822278778990023587482152655370649537108282282307353317973213614449711845586585958725188215360616342637511517152334503467959432239210880671653741792612392373820193893772385298037271878068442331864660486296383833826317848556002049486769261424462181115847509865556760066533278516427580845663353140789268993207206116337388861795397759871272481465298650287649803547586121979367156475255392139658014251295286822124538041574446982512673401266512125047329715608076192029942255300365615919062186760411218992431604911188167517917640308307557759049219121204251998162491685381297657033636816948567860280890566329427758325737563173988178583573738451863381361125273406967771472611959517850732325028742671673852236750868723816382439425740508070544295249882299143084585472148700363343312169539964671383729177555818142553626510906283021947723874825171651340178302545377155501265577972675948214881758955959073209399559114379552971163174032391855852842955867901509116643200073945237388692979456288539073596518692396958016706767797946979614500281564698523962376514930046302611510004292762380892198335685198326805499966339245573492925036648266379998999872776047538028455322957772156059748896884826890640231736585017838639736308985929328967108047590870767074141351650256732844778704237273462773412768568464005110490853563151995158574956362602041689274221137592124815269590571517301977683253824410538853536232752453820471890704005950066946438791886157645965852331681629595831485049543610829182071223636231293363568702908397070003923769248102479004486465722699261586277071567188355180553480271477089660435834166598410969390640454224583924117993630679034747474197105849305515658740227096520974989793004747967517241500724563450750187547201380812273050217480976195483535311897624585952538783797102220147828694639391918938112307505069628189943539004666072894161088979421225194042244239861394084433602129191895939183431399852681523657319289445965359472957393470698301860018491597248973126693436837139761263393496096137653822203828561916642566737778555245057680086716621702205367971498460899897410850931317640457034863695642918431649532042351044353197034052809317811697476128023596024865913820527838776878639249480371730115631856511235242498622000470667965066774605209148076307210600243074718221975952914009236735419320170374057319094775989310789539417062555660085734793570046989322874304403359101350827877391121144353963167266699548751833800062666461321607121675697209216435412980172039027871870271406278079711929384857167561800842055119685700033938907444198918881995072040426039321680394750529230736829671682449877609291825515005401782042632154810359415963357592642318597113193921424775467916354737767906599633025251762192212816313252503777238973870550875285570839497051393248228136807963191395877294625131762973077571517854078204543688393361542502183512671546360960965338055099673516332856021148415424318802724222082416272160366536618942540087749538960695552815419220504673708575092987423955733631311262562381074329882701064422128049666537657638866357831247968899809293075998203469742821751736190118034007584909802490347470889653612555283245345981201561422862442170884377674148200594362070632564748765831520196425915366173123398783954116316940671992584379400183024943774628884000639482803063976550765765744663829392390577918076982332093320838834168120700226091110695277881577072170507213325442715011084822341430844440304116794793849221321198012966742661489415062812108326135068190616040606849418575027319895505950167712611627101134716913051350899699058840080406243339295330426567208387734445657590446006343170745534795747495859740317994597440935064797006043048114541560623253896770625438318615627943542816066968642306953919829878293265406491460121723197923425649807721115866151002968247131141471725106904915363427003829542121045301216833846425481046216324563334547928413999316373852730410338971679420028849739896697138575815271803432385924720075007061653575789355653300174509043346501311735050137692699351380467374491582092009339888602611667460459081362678190890821281659221421350109058572367452927801942227513383809173541334057905877046467589303014338634047178136544734773030113685036647952939463417430279542125867550718995820360609667184370623225392957653053109815086195467792230510020980368871465653109622405628452821770783771054708279958020126908309955027662673894284117661549105879350358301242538695462445268978048381710618526278223890270700740752137413346569994340918835926858724597189723879328621555884126914773279070498364460802543565859537659504576211699772614110604601325279122164648880091441286084935217119660779349253381441173427495917093767419018978037412124138988691289574559895488646524237961608054276677886164865282308060795840014383996348362686806323801614168341797177120326146569143272225140704290831281529711580646132733306939084367212527737331966065350231426431260422990472579054674746036472238529252071836622044286175617000900804850178800859061987264717788505280083964461194678028794485818548313441314221870075080208889201874257593597038618427085376399993460373368058967274352982761740220421283515706264517130235307831647010733405149078466872487723002054036015889204369660573343951318264685926549240086982167446110735484633855097161179037888987382742357691104010083922852093760980148184294043484795032267830812597285581070677489472944488668390810148611794424756129920438564662844083393670376604884539248215252584192045236431838401852220624208274770397343081511351616080001451559871459610428157789136608051280942563040698721912234935009663684498554896987873492215195243527284523444199940540146280847367967509119405083901111141821974234212362828231086983228059620912922959495421827862183429494007182369562243637634526717505438654318670557754189479463448122036250794262571005227022307617643549001150349236732888945803755335180009328599185417587562826114778419555988873191850440130355651472144854397148773748633213924734826599377398921969590782130964552897222551095568555235709460097915980782800789504396471956703796393275396176570296230649542104982643300464301330887837337732808618785419037208247880157382351623379298323060489648841515182714081794192640815537856908129359751205811300141928059815523311503642293845860343208897764675115806087628009225919049893588533593300872011436935786664770159446561108466647280706579654960599482516080917899062245375317131862613756068136872401618175253845698910861464818566608211241064514413606310774982807785533981220293001661960678069266932000900792045752580105007914112454501162009758233514891806413380720765772397768145272570180674410577067714422125784804888978559992343781823379196534351375501056712897809283106875814999503283171424164491128687985750315840703776294033117229342290825707515473706676398315644673395452896779529816917891716388166314625640726055219160718692665846235002560129558852992661883206833213264473602720320583636457379388963483921057182096279571381730857528615428702657989923769220441953372375878082430138780017943664916798557001935457436594896251532516551908713593367830960193917318203808784869330033467426560916564661764636662518617252163623060588374083387469280057698377210818749752071396168892028784682778835238483114892239611906562854991541236115613795542696405623988192487090614090218840445485054214254419308128764300514609233332281016566779546479471108078908766850900180595088830502427548632747839127130334638691947656979178218191994061723084885697702675832307358481107260344271705814653229143298378068065595692068679971860028062832269730710349203217375445079206231474778449828894851302056887312695601571882696019468561920915061443333917652117255728501351751874359754526511132540385496595298848932767067110520959765723566270912375168073797947520657636340043791162663400979919483160482030297865978185983404382295259598051913788172938854835463259170526368638113041578924794772017535531328342470567721842123611421397057626595622816726908597927405339398311713369703151747676749937276648960554471267259037858689859451331030833460057542911902495734094249419411376277571699468344986103034925510922247482047705079136504400548821473857725095959263686909563819945255022770749128942590510229283433427110585830575015914866335983324201436697730350038219116227568990314196874988669560308514031766665017163557758051403180699305553264487187691146500546953697466392761248970856453751831078104957618853578767922415148028218799174405066536217736340167101564045319414431988495152291570363757705484720079332964516790505592321398742567694519130100716921985716673295977136079643010813636104664392003975578485475546324613319467602147000246680258660410430181817298282864416675745380251990815604348611428660733180369673100278529616949718279281036774306129048478583855320180012601460852555814877131239584024751910950003380831154338394973885556373339574808367580216390197545706234705166589481351972294621311261202324101590756172956480911558901222833731627042934429733959334269238785361248147227535822269423264451797865480129503091677057888266145148243765251172439977813262286767216476974821452661280256666138138602287970976293601578253002862236099537226767113686967362569004063413320090741617431862195202550119419284959367343258606254935206503907624377471788182564772268705970341717434551247431483708458743355655481697582012218060024077705323419689530159303560410976806972656085797097520833152916758327367339633343408540059211788691059289236307012460270984249225062957322561892332726155691273599388367193528713495260496577681351016177143591758346820262803134142346262877768677021702221814535788467933450088936411793252013242822717817596553664592903616806418759975691565649093506770209024508813214093419782298718413142631840774456843637788251629686175311911260437560818686782492020764718478095105350343748793858851620004455619296497666717245854927699940696896088889780646754883718582581124761475904806918464801489847541697705974575086255450165395851836234597382520860772942417280914956020230441805720624174332668723173691470087805114442086139215446091095100261313307171463795745191190666899843959226340645308825598174328305694246960472395714602806353109363642095403177442898409983639346059259219199278493476156762028243593329837726779458291850113637282897661792820897231166845166673150681634141681040006316278669823198586520020929872186303539742520062931045341203626483057092577783810503543495359144350241807236980770348685635569536784568389564992685776357088463032543358495855717468289359658387028670598034290539480879234462713033617555655120562749457395480333890146978753346249468167045227335280606604946568295894332379130476793587108275867156481066068903747393396790214854911015174940408186539577254235056170800973642359737796018038665883296034974886532167272356219810054764775030553486313999384536447960996278840404496211656447315944160277721721559141940516656335425947255484938443465978143326736458949848440465074980339689488987939857177529026275696654288694478288353258280052205393681901535299604054355554291062482735346271401451950034371151973150541829360753015381567693012374027430400091215070549336905493152592255510031443736726702981689386347054946780719411435550478769425249320753185515201410234028061715296781172289199506473773914064202561638989122951489791557903494901489158555300867653480964700890884388012523207873660588815901760975981511423028703104060143655780893495098465641187300411750058291751650449659664456009069392944179121615578368962351004081725680022210872660888687035526705344244982008440204922060160760266212166404992170145751535070036238086361009385471875574909581716154676827489187071069970716415696507186406958248391825541315168365895428752340261438867978525889606134308308575345244922014884556427724424321484652996493810442620802263787930768012473386913443488258234355495169201705141383306161060866160498915258406857135523516022729230193503958648894244295168318864762783796305014665953260892141150103450794058146897543465220704653242259752034351769942922272991023236137531550900507557981047284383281380665241131185835308496862488299868432469962696500033455540818844292380378805477677701478347089311513582628783231111275002566213433586303941098846605447193256939660807787695804064631769458680415150206206715223617800728862576011336424200846185418642555767059557464101539841110214701706951175331349880746099586410505198876214010046150466441767883339301728517043672125176774926588434952677823616692025635275208895976644782915587255670953094754535034620362809087241872736427262043080521753639386008657381728689213083840812692649322274701073234271688948351604864311678374718950773093692965752314409026968302891179113110537887097161994638870291996675833958572688451536944888912812907621291564350034558797650967812077963529319067632943196733438462959309545616289139367598578465024651067023633580846117376396222240614422276966511557905094467013230503706245242957561102560345849075537868338475663941862602968304767259713504585926244504910780114680706123619372745910762474022835670821930172616816847376191707877563769746593586664549413540333915304564818518141080168860656781108705708405421001881871417911509917415658861934949890482396134391077472640895260242134814990160442833128929190722948221280455194457835285266097931401768858575288236874170838532378198106423479739546454203380807576583938415321380365390741856071243871630506222947831284803408611064913111437109142437361996517462443157540428299468955714744463609892771121515649518926676079915198339420486714574937291137733538834358839647295589190754695145865731012321169989894954466918669142527889923533142197434433346816713802860717584508013594504012948936621645775567866051545210064649545669572170661789002699323574088062950250161519969372387420756865830943841685813424805578170203015039450455822355042070535329682839650874719548947506072350215241882491427122083155761754208445865252170979901537011405300658405854133726153935803788844058902916474933961134134663600797432322939567003121102735645422373433183340465744983098296909902352819738738456517667838201240784241896525591396234934088470972463489923221724623340223715526259947051660912936890348789965876292063941506998334692950427748184239775527302661952687975296526686063692248264617054401470328413854785725051154868375380850075793591097486143627547254787860999606611718983416124413181574318975499602822854187697960840211873785442395717284254509695895600120419078871966697989373208060077479253399730274607703490201921532998792305032666142164224645166021525594658458694277464534262049804549797588574768534758706994056197554430626614076267397581128068540314004072014929092101294252185467619033377799103603750433980759372493894533562011867331814754561143116986668080590686612633322187282797407996659833796778889524785156544087217552753211717651084309468672239782891845322855269182533227081728268662452472621587992419784125273954171128374020861104987720854265913817414480912235420449620213283034108544752109061411034352683855567782390056486641733353761142699915448421900524861790038562511252256106657054571522392309838962582643278406913851105256136203320870335444197287287899667795473786750065532844651701728150978766049417769425007481551787017659370908544125663204823753990645019997942038353903620573122994189603705477686612564742241753030830626262956953028252103926413348916887991039047923971455243913473275584432063655463973510982027405293502330890247778410315921009358573562920304720610770070024123870557550187888103485592662028312497719050861776928531782843158718321816469188668829062371572165916669414680977637456482173066645527064944092436139761066369303854616174676699870814638594057237457070250388759570040346118026897224786730042218625528479379564298821341996986167425260387700503281235270381524893219552485616470276570079920105021123028369572202105219924473100212405120297024393018717004460662551901700124729876743599763886366864633850157741126793581374763918909914574588823534561283268531201337671130396004799957979312692562642584523581048556322947783439924051381661136194301743643654134264062606710152362873564347127900361138246698166679858541567755499366287539556570152010975712667920436872977753183688720672681175630750571376661926365551303777768704537114725197978114959378729782353782993038367813295992787334831521888125483839686165174414757354064654454347177095528485658753345378702155125010046949310299137838499281507792686013759208151173608737374739130181766274566059721741718611274910246631694132505362545824295510696615989707055264194938519661116698156248432907606561297909403841974731178089416291832100371084200816088982713962740795034845692195903804906542502390757838585835949744271240680932203796929590085253950510120644732421327364723482062742525200385263520739792769438233567661977828735858368389418772436254369058470797678897971453582678230745740618553355152180646743483307366557573809470165608747685885165366052558338928785360122237583052607411462204494519530924945363180901985550013542563367554529119879411328245627009102813422753311858713383242691069314528051425679078258732362678891808974398821563229306857173095383566188129258915933301086801916097648001022209048083378378693953671953979572957378783512202981221567557531806718639643930942684244431962918292790753326063891950548879767765915661647092741928888718082955710966779650865431800429194597056310135986644365679696158190543275873807755953542012420146026967618569656103276257060276157155504794356154507962434063260648231904629243680758083299189629649107580385099717837159384973158328943378533771526481179970856338864333468335179265057971823071432730884473929803996941827044203980975748167842496647577376739290822342918278449581731119253099298996043703697960813514235399479194581613912272781937555254669902570641088512292985602645791080151124042081547458037874445670361577815549303744414618478486978599762704940307007463911194965490612181856160581143594211288440215780902053399543275791528060168945444783026160004662782000825368700520222161363664340518587336467080167510128738566984244607502579773942792171611797453778321097286753648136683857942582980444143889614808505290748517217809591304084313491960703173772132531065400638717724880423745779146133265121605407149900776948090731031869342171398260616647349674743480753797232935062620791558618958564084295442685909168283563603461543796024352725028594858888202683261018250382831383621984759723211629104895313418263305892216969855759361115484893949480940886965070128614984734296511088762298487050598509396022904919390718170271165325555353589495567918558263995534057628847422676251201332612579883979850707688653336389086317556687071542303519761372332650632697539493133449297340202687230647051606218915052326124142075389786706005833322667452141485127136568186697612172989971811233686642683650742024318851883818837183249349570458522159879238851790521017669416272375863199189420813671226090103197831234602370153672929825584493076477516049043990555372441984924865935526028243603552775371332822579917076084074800325239125497765600020695868430738052668655431385883178417431214558424574408906231911273348052168302087085677998926013703749799557898734655909659907897299767928296701664935706908704722768475632165585503395457429921611532495096426724646997902764167449657486840404060570413183673827515213228121194120307311774231441360454753052937126604737179694540682305241546827358389900432656143313238122162391663110741650613770627497045575549834406388294026355981188532661936248777395457622714962917368935472207930199709159159646459472156668692040322578374968858901685711953277009231515588610013118822060537913704647887695512655987194234756983084259731640891484215893158529849725890613978866794793197023086350110654577441879609361215325946934428235710873977089400610115514775069202707064402613163481818924302356652736576004811449018739804814778680562494127822024597984431284209176968425962327879312123366964371422849985012284964920364765276547789499089405718098504286537929428472400079340685054540806837967402169016135195455469468203842658580127932734805106212836646687046994287774001024034942698116615595703841086691893771058185579733669707969721914345989075513559982256381061721441401650463581320037792421594202122004417719464902415414136981680451351180681762708686839359823146969505616720290330993224192549164900930242441688308789575206107734182229572025787788470296884565563351439915162466504313503323730408161447452866300576969219782955911754656907936327627172069366732509597368736417256129753330678137255543203247118046119206116901573297455275376701666828181821284644964571422982226147749379062416092342823880101143093393710724250857120573492046488329230231830455028737545541099375151387508134930644768979518728821924646510790931714939028573531819775396610636334095615929783372635345594810167928526041491403118259580678375700820295546869342045742425802565995776061292288931301516221050353170922417279698206817050292570872505306978995782163195376893503673346693634515688178182445666219226742699929957613226280239836322666855222731130763672743123968259685629047421935086916190278365526072760067855274137907740205145599549824078422399361269696712673768868254861704692586568938561094900343102017763670743922300931573307807045627983213496212188634441176948795628331468658154792619206900151312948911703583280673392104235140281366389224534810198375769422440383428988320148298075466974571020497570454118430575633229204787189876383594986812513753573843648737992154103480914847395966935107090014600367695456510175673816776167250729755229213971753042866135929886883288355562431564434419923918767987339415339084829298805893503075647741899654685439278391751421800306884714165559163365768981100571867697323527363616761814780725016091407278284399606323746324182563760865363981306634275861297095458127509047478100426543760747499594696595192538007935528754424328508659703506092372056927098313990357718919381600594608920862652928893980749485140405622578259896288776254176597557537515641109722088377472467333092273382808591363970767704346858323709064603661974105142255103595529790481109018988975110441829149213151397824591512851727980751142725035140893981975575926233363929127425190559585238195975867387218357304038019830866491961747429876256629419000045327273515353212118893918088714995045319874860881429821242945255725019375261257806719315753766808233930810605188856896260614737057422718384278085076661539689065211903592348577205951586269385636728502422270975684859275815735147884532098525487809307668483775904485419189808269031058619448949163417036510646423873832105116687708654495903551399436948476484130203818016325781136180276002304789474043425616299460834903083636563018269254497649988728903127726646550772616157300080455334625780172578086371684833282406545030496167061477784342578496796079808065919188646770779402490781028825556771916274107845348408922906948364017991738756167707181258059265888821566047371841638534597536622304038317473933566407329354287288968512657678924037643183547186742039549225174019377708667003116485823875203464856772000403801316045199706376325543298537925799193947766517756514178512718839948980794710202448754930674694922012502708701754401179937154055161982564166181156260710569570464298729942317131859052848144646490342594190749302198185935401626475784705684227013597841562531905601633481057164711067272211531561993263294912324024644032567665896785617610345820652076191084055465551693764836340801939781086899513722403478726093793922074554429411194226321007771595149048348782188418856568409539888735625214731214034081071899134399758269338511711008081584963565666632496272867160546525995450912684742223598220522931096295764374264551729397406639975813265719087575258291053278316648396099508241400023201116097676405908472962481849761007246084969172102102492755844177665617371209514290348732279660150584785399344197922544902460616780491543952260090660032273346121245889524894439212435995034433354557292982246291428542405484409567075571958182596329048678505129066155508135048654247339651514922310122318882158767583063304636480010085630611297970749268447360507912597497243994044896357874073973755125465409031426078399080817738953647847885257316802907603982934383801166995681913759934710237258705597042019760740230313077797082947882811465131356272142167143584554587084272488141006751236245114982298916290886636997048253798664963391413011786014285265264745674268553022989558575630827868063506467767495960588785346484233336854990365645011220559657897991579704621982770273524742853069498333552726154905104149242959078512458222919009755402553082496929472388464992086526852777186099318575748650885609167905422509952041518474471706083584637087060896013034724800132264506853481293311189786656339409797077728454924714298184133083106259655073637651360802344089725038182860634832622053252873966990633458889978224009322449590833157373284999613477395507421787790191267456423465411738786135497737541719281618343898092954106412029090418141213841611768739603368566013478936863469646142300999092575437812307272304380416762995905306153728171445264668162331158343816150606311214159474844552288277455226085885845403715967931800636776002555172053024550956358206760125206326062951249854363273334994778028003699112988571819478665664721549002487581468334828492630213811718084587892006730544271383897872178763311761720357395076255103513296726971573407444594272190410336478076804573317934772492181105606260271978836190576163680048570773239598421218449351446619534554566499150178650580650553249784980725324029101795866174410486646308029183698259317777776598435379715171859453502701693658010811796039371240116176077013743973057282942052402034412458231510068500523355573836042990429050688603013323398685542920320823432524227775404827550644610372847623941636996668447199236455947206399106134799795227781436560045743432329740864699461239875117075265830778725167975937683522682000600796869257328724002100492044988657582069982063844111574258906922907540754456431897960113416442869225614098341911887995807157679410557347981751329380433507433265778310286094253809256974404251696652658095885589495505700135504983804177348220646239569676378694928073722930296713518223473502305068196151950451375186024592067041150655463300623940604610996151718208037156357774481065395326719442924091732982886954387681895722373589521923331860422171893479161298742844480414878026597392124145045998956330023599616132334946308833614405027232272288224542092229489906597070659346953498663456568237973046671965891757028559511280784318090320802211533391007423022189347198945443177807185851602340613914639654710837740098334976672714034878799691935138318747581397650269521795739369119583992830439904268188501241026720777605167837390020084957822092253259632755906057226165150597389692478272609471518623002636123359317124682368038468845702998044070895765065770068200901889503668985130850590883563144332483864117292660721391420055681795039398722778027472572592122065687439041079753083758280033210955638942060025278048311575022091687944729637744585741714418780653013028381184585833458832874259000863476159546463710612870239082330812746829995707203625952594521774287855388054670557404506714068716745294400197043220640081327067312979629065105339426925411432717817315712354294142222325912808687802747137895545360870647453254282109519199478277254217666056247035359871342575863224487585797116089487991271510157140610183258456408817165106533458549279822197767927580189476558892659209250266112959251943923842786425486573708134333078745638324549809125039362684794175359519400365403665635355305493137894887416914867227923908321752567485380719682348778730748201870351090815751712720295476274635738941399607462601921859891457668097228462676528124220709301742314825847343512880482820073040212273220972528379490555394148841622253046362689264705443889720267970484334318628409212700270875004952121968624368239981512099186968349941869151138746679691241526180637873783469995424403490568328774229689135575014194650438613371455812212972491530311792001541393550215184663240501739686957274891295266065405383266683788493311702378998988731841046672453351498498956899285458264731507179888440958853020482968760354397304592918849453844452493602277764552935021835088208116186599565599291146636635053302834098743001198665827725862943106895816059031680806539094005101389727900667382287945031566558351327708866837578865830620610349630439059123901806177419703226805307641356638220969048107900626806614931826808547251512914211794869174558671169406080201200733221935730875100278198580115861382827227799910507310975658510155475291429912477734234280882150618390931099271396428936935255376443046051114800717147731164943842725789242874896793995949524630729045863519627777967629402649695621234880744142542194067726592683524219997913839841434295638053810819365725554241728695362688207268132139795118520755488909739666304839401615597106459042588648258451718964734180079897922400253721916783722627670409653129331928719293930709071880153985418576846462938320784748422092844995183554512032079147702234712517813843176991898990379372146565318709364613831272396637175843849977679435543853182836494479264214420084951775888793050368960233638819733454343683817509735727916448541907224305232894886795342670402720083045400299927162185596408852236167019844217231121977937806639873215363424558530042484781003781448457039299973333996854925825325012759904811314701323893063376059812604655802391521602469944807794300282689669207468415213756225729147056524391420361224649867237327640211471936577705042007737678076403705917099386067167148765605304127943588525831426516127432379868342109987223829085878362245352247929274982992616947765166574684831841939494209668212810766649570062903341084079416538739157042092301383803183393851959212305601256744104610843801097880756278930318705354255818155690186720904760767649333884656239757997269372090467363869254014354812520141111766724092103482190512236270792066235838460758565884416676071180303042363191062637099030526040054539479466933395802803270136438574367080162863126764329701366040687789802176916316945177203756584487413388627736867839958503325387216792326619471494385467050294248527801351284138422648207514323540506350471189004990422672911041674976826790418719430616522958827016331541949140126734414422092336952083345811103825793927222290451383827485914438182632634837714790994714026204641559980687152660480294068315474266325662313836842442469472071422952270524430580376611967202088460888399701559312336106052093752000527107488484147099345125766183242647370499791170845769651091334782972316812671148497378125685216504053697709942368441581013017729245609886738149084302206565523172657331850415383549494663768274272053738838473134550537535683318671136194161629056772227815366984573228987274841194403480827464979221494244267127521310092633905549111091411450770361405868681828056531944818751403602900205206020931075222357375673792702822942203998270557961885458350305782654673505918353450753600119157121321531699072554092156786522161228445429180818269444882523695850122735136633779062938299481399437523966932956698585806964131796563383599646627304804545014723751285110863309332164754998279560159521886218091952180843370376405753140294343630337637628998055333848145288410514129727144439644589841555942332592784451307621530533132423484628230640042560373794879154528978487402762902458929254727215308214381588861870538233258993859652281204664445452324438091357415773903173108653104256875871936487680687110662737936118723508720549438937795841479141964594556888852896798161991140910055279112094670873275595812427126906961263602426937117315673571795271497526794790898220920951021164530830609700216287813660689962588817080919494411653388387783211165281391304490658691595677399533811998773880288498578567015190251101227653271953435286809468138728670405775678312610700878201018886975440825096978372224204822590139384576043988336211134548866402960663056447491298603757458129312916754447946271905088246042239347932381305900703107175777349090805440186560424797313723633202795016264450943399481287653578954006336817677010428977613421698913107309114571083634411746570354869328737047329497457984705946608185166770164060274598963677420015546013440919930825908029539519520794421654082458947653657930776119632930391031043727129339498882621330511329527793887923147948262765401580373054787952974147493107822017010707136569853753495779962132107856685588244141981070623473999092990121517379601483602656854595186386068458979923784376182425846006029184991994438861006300738534700346414814143380267192232738132806211961048649654105819867702091395309098736311481325578702881665240283519442244582324104799848056737535676254892386964581262480576854167474641939022898594960213283918361439478778390689420203396879944916454423221987973409311424466065058064240075835433578668559950884107095211161245673045521750355390862216105967332183880991348112739144581726313936843683730468382096431691840251015235620556709540689846456986188334917511093465334603123095073664535654543246199106137210162286618690253497635442959146831574308900984627057212218795291748464791817286779349424835622303628630733004233167062671321165329633020105789641850467592431092195768213083643368598286659134202884597968903895573746855301461980013035583641391393747187938662565439465563871573014938651591647001770851374813072412722686657772857957699328287151176441841734631382565210608768606293222713756178610426352797436056881879720837339417661975859547107854692916646528120067471947535358132475948925302577998762959288337220338930442804108875103657273056393599914699433683706729557692804362322716672983447683504848155656871110601059679637895704025587091644514736620657986257289492135410042303168154789073040125699723244328355598859021264372309551755222147804182325988066404879484992492594427123283181272257806326511621541811793248206544125207685748495752588766921235424704581332518491313501396213462976560601455272457914178820317424584835704082628460164713743335883770775708131038264955019099602925726222085426418325508204898249546384537412952109461467957430597678221037431847445425373274280013332345503416776564007585934628509517514569080000141357368041625090803343769046054598703233294301417005028556208203822965659179653573678489278734045031368074290161265027412404896970113419195312782506275062891947062800642374129072762335198359821853749810562637071278290301167145617911272433033173457730356051766376048139548444680693742430239011347394424956919764617478408326473739225351877557630343103452759277836722129202262725104446342404628529543092879024483035405302622473089808612954211511043335443230460853768238030298457026442993437219849755490007219280820448415169834114417797648350437821712485844758696344223219955260115372394175719236553903501324397192198216169446399768423584927489746898512339488405284372187243146798002692326097086803333528503976899727315338268349462599012990790279260051413287262895878701992043544874790841147642480190832009578731508638101132644042283038021692453618177301603603325835777386568349786105785720831055219239189122905216148465180591547658422255564335056567276616800546133665679683145391976560342066051077366918640187088581017839193667725223311775750955464671349724984432970665163471521670842432954616513425280074611729577491101780456990195370247733288534400190824287093266529654020124017329487726942029639776211119205637470334640892430543593858254004596702613698271604601152981632724439647567759004762697210343312064569871715118231528338895774104687535203293506956999022010864597622470289834169560204139757769950773963728435463527148434751908190070045588246103070816603225404465979470591025741049254749830150517750229415824211875373299401821521024394324447551273568223580230502327145692347677253992965270696602564719375199472157385839947429432866032048648753793683006481088501979594793873577916756287394047994968406985792645211417267773475412042714180689266334959426230844534212144076496299773149273268824182769701947309015679396276840940813203709414963842798835450477148341817288481503573628431285658501327347315658774206820363940587459617386948932532331344152003897943914966973544093347171748724880027646776565417550077021847652275206625660005217689086032060732409312145040181636967659531012896313441408436799699331268268558515164267440818878675877263670294897048617467906245719745978475788141648168023158060289951063380338031533822981736157147655908200785639215411696390789209320274658693616224490455276875699767621938821975449915591105142041326557870306804307175282549518985486173797038316053567802546382181270714709649218555844308316636304580817409631618576069462137011251570157522116340804557153106010341508180343971605259380060161147178183847455082290993472326831619513453547273911959677233703986959783924033324969131060410743717550258865236614984857787539489809997306953130705933588119936547792321159346968102237623588964329430858738765650940274585477419504785401580355878042505072552790044103856451245837036422772810090985016950853438402231485813718376579471676065358757276744308476177726053293565325965538085701728542498662049642088562771519756692389083891911110587598526684814394227815195103692422334655095158380758824369584849126586137659523327479492942682212915909922600590151602122125396553140833499320713789342709111559845480191168090093874930818210222499884931740182399092068300877849598189684684343002505934372350316978424161256865592039598328361530584558957014960404970232170473989272994164052878788404109961007962872023511207659410310462530727455242464530841397900639929466157949391456520326080834964132382002620801078894622055360742703423753839069636248190904018908291527075733872670478176387339541831231530273875769298253562459671051180633881478187252684047966873215094937217195077642289133281842156955433928751914290885206957584680581150038048637061493255946230311174613160491765756431359374513889948962327719418274166870324539902568813561113651028793026065118605776615279572040328829342135237002272276516651446397992741884323712450480139885219878236341240514229745502584014873691134602120696454451945655686237428037530042862907791390754306575545655489371535393987713845756907435001385066691436841854634156642651111226507066893012921722721338400024815604351626794159007995140007368754730618007255074125707253003283502799217549561562074276099893533583682089718651854399908710143278435607560105104233757347354327626825209754797834286895852427261911012603448213913011885092412844001196527551975275156435647239371500576633428955339450792479231868114385931094468702720474523022423337686879145940325260786142257709769300069737906286486203500978355801242701797129612596287946507553777124374443302541645574192686983016195751640306758022534987433102679012496761057939729515829377785234573920155136828202602718767970509108275812701297646258652976190047922544685495785074948549220950187118708710010761638186998420533396236410200809509179532425235970218127086635281713405744924294843313581316461909760754816924243436968078069675301643656134473179800215101896308437136295802284809552706047938015426782857695384624711874868360877445391032947440855930069612110158159615570383622481476195859466751130944975228589705812987520968582340137826508713226284750122013681937166933166946684554047590086846696580460965803403989978885322842881481166704214071497130264657684347343866296070251993663115004764838582519203360542980335331752067834122440667585824334195460281169942790758020190855008577692851145442041828023708458788860824838470528291270389777484600244362114253447372918232136760701648010868069095061301762347028577023040155157922501406710884589947410309662386328368674666087206680720493802141842551311661187636660589903463965066147019610529771294979856959835704614769932825826727310384921273563067276850022448015583759486441644245706352340101300427209851182309866707624412026948144350706549928959748404198467521508174085272692446681966400842045578224515594003103496128891480314715434323262734081944203143684501730261401143778042089189481642540035375519639358863789324493062611605418547927619415422068177798106890039711106161217872978985465625722796634906950576940812716919099330747944710032928686251581318903162838450644447544701540276507756233645234340055646103950432246796786230679318079005736816565486539253856001129666166084693968549380592346260341290042171292148164439640270064877172824401067626103631627985420218407757086001318890578653217769509603771664903184093660210187495145497369254706192069422119930176370355688662441476937884548459121601989364598323375400282500678535203046823051063974497596419089728851024211499379059871376446485248575124456512026398740789705527143232925743063488231132660612484531624870277383454273120984229347031672132770229644062143120709211202426769900101170115263016033352849610693679635175192641259778626885843698332100678774074008013035374181074260558496197559624302916630087056026633220914339572776226723111257444372352195385833411285735156154469036083344233536287401838975869891007584325841792113455261225540073612973346653168820895222028086720336875594999681107334974260330391957206285939590225707156389482595646540527933866702812921572306003546093770250459434848492170440742276271080734179395967587477821746068264956279828556320296882015196927777663022203549471015650479475864218873693558954645108428933183163527645101585715486928137406977141083678096215612880360816913899057395387359201653528229151194485544512624904844858313074065524626139881615111885321068133660176930396017199513798306361628342055954058363666371551907786004237992314608667209332820382562280867718848324513609816995095285471215192085721354365923928491113341556926267414800895646539344309921549921010944474652751518369649108358552687356388062129783283957245622661012726545992342511171607809599756641178701550524579106207193391442459715530000222824379617478135277073614297875053061047333483946969772167489734121123425970638971620912816433674052909791818947226769288634054257879432885133495515343095325988226759792737021145899336542089183889353092973011612454293742359485926638493209634210578103982252027285237503792549416948102333093046319588710991941148212067093546440787803121938187519800763005358394355526612744360859744792297357271267798320917929391917946964560744608786364168538410977379150284818517089260800924289728463659058777066370497433658914886843779941836505551057025373488162034798597039882898943922636564109157134984577327097697673394114711622769628987255116785607608258816584940941707827451826687291662635810471667724420950291994042829443495935710913966734176058954220089547473240571310286973631277151623478058738368385334375031585505810206790300445504640684660469168271655991043500398090581776802177293566722425924649336435536378208755703401261272732782605682054848843157689914234710759502652805532586769470241581121329287074325201173807602871825114084450773303556922608720215328661507364494906038702285002556948506946249807682459313646041950283334994780256163531639812832881963730871416748663010217003309608962424929188587995225790536830483189694456911041425810650090925651775279551734488112700091209009882079777929445496633467932696352996215454362927264989221396974523204903061318055922962792120277902060458062578785024263403174900575692667117041520035763544530668951394795402764711174390585495580546179466850989014714646464588106282695882464134631656113736689853839607327222133254154854839130313289218809482908833261562473858000542909369218146479794024577136678514798719220320433023329838283725258144944807958355751017571688501607868286597499088224512320168119223096740711870980342484426504427918243544327323351829639981791127727909669735279908906373108871226769839167904537214892672080109994779243375444994223933029483676241218951396176782444053353190387617481846949265435559249528624987167570971038130303893735295916434743629896651328240578331299924567082889358912710641535015462690868126968276427002225102818880497554956501573492697727857202501078992400421161787367258647353377201478891827495707249491289358066091721266956127709244289503701698594838879039464752693029555220716242945332407810092033045085703578483489253788355496215060196554395489201636104219431478759987490658759867895779892730819459792229542637641298403380135903778655539029235792787070419889097533596948919409044447789589976924474462313015091847292278785279826471759923776403094998713707843282845957651008374376158792898506130530253524318540943296660229496166295331962550156095849547549175949734898153097364330363782953813188934033043087031042398817540735494346928463582513631516904818775233407977655762560093310072786991576023311490143410888054081460510533857524968006888363894478495858652027099549779107667788458855362250200104113867912764741314132661397501093415202423143449154317976357147575369954468757514091516709367334974859547873225506876260227083633083494011154355610265920768242085958640179832418642980562485326228988407910697577412241277950067748556697081261950267040802260678529523365650652441405962359622573249326007591715578720020888040906552582575958975720979732037364153299576487315116976417720591614199238391425395487698143745054059356727352089094152870604410429641122464440550177435670476390193927565020836972758528618004118456425888363126203822984200944521169480849467387280243730861640784794294147892397304216601283286365542616518588158734197843584763445481309960132438583239696397246799174091207868607992876444042923432311875800609360672775537699743978405248398104713468329105315304997067837037891082211894798524841045960089778224835697000386658818442725223487016848865073824560207275548896442566145799247286565967110948569147062710614751438822919049939557977500131193067399512285830276443653952344231768385873868584263436894725159127702169322536892342820841756438218734469887811679256694153234533229798604710743212142161502012995356745260678089549122737074427005292311663019488417617467603073162639197899251646541285942633035537854424989636808854317937829934311147192876492513301968961017253541462648885248179422781870681853002656128447354035490058794976994663074236572221911331892384521687057505074698286635616938419007436772759777933705633654435642487102974355290725476835772396867384610365058073573231805929717846679361865688764898952143151331622621639894630924066060438520675382408279590918723491107198093787726915672107062126226230052787782099983637227590011453538862204005152720940767949594127572752603786627576935052561877704041046055300934046267941439041460498222798765882130401570736422161165805599018805321489254974365914324311102068181369974042628652298684072404483712650457388838843622077831062709170966731250992826916253269795179779433120743530846430149216181123224484023550594063379946136875428153065238777254339568030456994989677542091928161685885230714401686133905461115038112789350357070273209788247420399369678184505419645182308393242590460710542359848790220046433973105369250092892073730030245611831655467563847400412948641129494560792116874700261734366774583037814296443025962977174167804763289190862655453149829435152738786469638274349954059937518530290322086578928455026359573146930197555855754039591973204750890910337484338312175480937933838332688333534271861618427450071695058683281081494038864215623713348685549976384885354819550673888964418666484803025877486555404819342457985878502042086959374051796396092488338817161902048980588894264555166398119390369223682789413055230404176012397685223605905342501476143718340419892425105504971373319737671444529516870126414194111304497797873728438033513633360609103216346109051825603690084711646072888503134555218521395618959536538307499154687173653413520910778182235263940048380704369302445644244185381387632817970689827620628515496104970634468557043044455274455059792979177280750544741861257347797512982209067047975771889600214662946662652198880512759311925081108031928953749607917855830537140541544986109353959090119671274459243847249692796130918315399462189929590665946045016943702795625992748222698172466826288381764732038655152203177386432019653229955878052642229311014728757795454423655314248404299137208205063532278778798956691907958295537031605399238716007574532043033052242072511044490505023657831968175325311723080633331469179759329676116525620482371592271490906789189161692434106053070892409908805922709461102973708590873848790998805948394309786584383600058683331910134684685295428958282564604340969004459439643294183967098878884709763132729534431184938520699300682709188563325583045735384343171745084239993435880642573465762438537935239718920463567911278230131293235668418859693089393899480039391887721461057815972924493081016859004981339969071228722320148733378822062555349278649389938233188819658900297075980757874938104887883730131128601739158323726810152303943438101539529964445287686699259493065393900860226547575761286573424388403955337763421690037567569138571958588436718718170830181649975873722649067792285011477184332705636900416436025397299819707286531559118153844988261644500258363099603401458963376592816853761470444741792030936085738880461977472421699561846095832088611799499778121466593379542399844159992410973064958697038455710234845468212050099764667656756050956046701601155887897177887639972830249068837421390784387718052099768432543851855138428677115843498163177271528589324301450836332756245156877438852339702445330161029256016426033788461774845340970424659498613747478414635857850973563083830054936682841171082667952381331090110586435166192603705988968002818006387698163052845735553289193289773768339415388213567552004933205255171686245151310835016723931085920929164500056487891292683662385286064923373638143926311809692847635359424893532276371387760785233126941275286149832005646999856710114031306571762217383898879577337137744339832456297780460335624535441688532109006242677482480945696122287814518097427071418276153756006973142559610302397757975433192583895558706817549854992888352549681647413380327102244697139688147727004336975481012266761113759681855835110458085649692098855900280583935361383703236533543816615564360452706339604371945366532441427977280509698800572988716218772634858858845619267865574641611715778065453470879007387885110694081442975331254197899032096659873182913274080556036046270095632744169967461946350561862285966149149771056544920860567190348000091855785050300003422790745964752871188765865697879477434214273421654880173020110559861590222283459086593791263025622187137465944655138194306817189580040997697798251743846928827885705344082662760186219358359996132792788482943651763132881658979508165852819165322146532334651958362437385887556118320311370732830699616827431503494396909421509227011527104014478219735197846927090727633730943870068813640537191391417829837077314036419989782280549465564005256432534687923356523081268898201843814621668154132767378726906298662317391281342952712970848536066367008995171986849716534071421129729466837094931372032058546531829246631964537110296202866039136870364140969658553273164730966707928591083717930355930575874081814696455678859787871696867728679487031481220504326162308546415440237734169755444475700011633944600486775105363921732351959230355848230623432933437208668028609052953828265552441839563361338068082250902513092389195040242539081473156845887293146441320512425465806873710099459823895762209460644514359781192345252386165586956091460891807354948239858952934539559622574345983942710324612717030876408616891841758886747847994354148549469557051270734856280874061074837596355675765615404608769022111624861694274787855263931925700040510326469463853350175802025788045138399462696987767681219976576479943004117854316556327778345769159093855331655911783140937568944439556313678351023510997755674317736217510188915092024227509528650315140657383227626736004861492059943317455548819174942236295214741640412109073991553571302129152004857695074208371885343645135709423191138160616879122687488109820455140459675956017892786557692721444429213702686098977778620251659258493113794845694860680371721751623196385302770405765495358071975802047145078841552646795964952476880068476684555160300702895091710614462285198650007760132197572765355808523106860715185246883122119915557162970626061375467293235707419649883624796015973572006567762589602110993628007067594738017906396847122680777991051082312747703683854054351056739410858321446515104705418876735557069370156275540097922767629036997753449466575408789780094451036747651568665794629243958015677642901606240612896946931356402176319985361994754635272284974055787256484481630353604236755115312129283427210564469773863857437800778273689165102135309047113510457108745245102430227901508732112611564936934647407435854849365204224158705712215773138466517954678728721955948901951168478599896431483067764890206336515392980349645484032318510488102295350460681054665605023775887809793054794537874837654338526025946142471116935802258919748241934043709186928918655668733685660954641186941025024459377024070845319484886821272207616057621623173890819795163711024981320924355367479617935934841987034145952956170446275126040246483764941255601038463454902863427093230011542081724075684904652945791345299621239348948063136541159668894908945946349160569404888973730022941849791931674561348989336933745121891610209986269999662234183714772293389941309025996537182998515344133272382732553327584978750688679175432036527279985306434660540073488608247942845584260402140394669275384192912418800183168522736681953127745611614772020425077790527346333436271203158315997327486854268621376240250704297863906113755450936718616006940450903335298070389520552259487337031701001614338566243917033791731557799237321937266799577556534011978616976032534246264734284594005080191055013908383970194688201327347097227813362722947638170165716641483749023130818635114986172044230070734666502231671744865432114849015563327680744477616982918956884235989742474494606575801451147179391764761242200566496210340537556108488476117903774524799646776347166112318502548094131811990121942512871387352981931277354349594382053741106797092676062886329452493247022741988272026711764251394712741331167343073882882151703045627827021852935959435474508007438561965850254076583182902380373229487057647992858229608675807431823376432259278740836601674433201514360746660225797790301731190337089640311068129939912308254250576982600975552744577098099317456042703218319094897358625822803873544152570847767956978768256778436221570099626377318713464420301810349848264320866367337218654657406044023963815177336876676697548895196433034083737581506982487307027081864289700929761726565672227137728256920607240755034473971514780700328201896423793903659196798924338588053088565726382367812178973011632640113231625728093457505869528354039805860400402085512142773296563477545726251811295265184097000715283821837373623260381704938423518243077960759881790810240732541443842190552606990429404651715236825512466353513707321913206275187670763720948721665951289532739469665950605401151180559795737440724052085211505845598945098572917078852761641221928972707959559702770999287709851563823598073618473741799436851776217700857237214822868777033777788460388566596343263818887092704272194952294810752731475540711396668180295528991286434495653513714136443037415066033194440137134948172026676163462420410002225237293142573986379831595021299408522846500848051308514553395641478032185987663639351922814186777502932426382209385490792788832881942804818098467891133385388876384827454628794525617881715842549404345031990593876826582209208971156028264613434410138181917183639361708682397450957285561084672364970853742884446208047082836612058917865484420765874827550256118870746612228605210425254648160147615071849634585941829926638584549420330967683837556949160976500171372034014221095317983683442040837234616503048261043929528078767704269814820563981232279606238191016072244839800832597657166422790322156583645049614455931314972242290905394473084792388839684836123147101815580976376339509914317809039473220649392383665866843113241477674319931294078943080409831818399614190472354412315419811448185473010972039642956363177631905027480695609349624917690931558365300552929346896787903432262302576359825190483030343559138404266604141110042768769162831838243948681382639685517099530282512866176968880179798315878151749468858151669750055511158651001286011935841570910875192605541178587499624466712786302476885930664221660069783039547776737123329003836824291654997931880156065639553569115834315193694751979984446849450033087086648692736569531391595870322316610193207723493232477625055015829729375171726292477801628832747094477412429293235244875975137977521972940136471610431692921118880377709613574304671549806948822416838637151592584856541638771822222639013935414733163043007114460976922612829319631449927340806168933720397819266028138935994587286999561986509058182254055595520289481991308634661214714588346280024704200900032290176953822806638497719757559013283198943133665072414996053844608124477504613175812422039122411324811543909448935894937369009650848868760776986312983463519269432109820931762889038789043906018332623696387800245918181340899352422354094580931243217536160894402693272387946116332791632258241085986869743466326574554723697138007263776626637253436989385306564839917314465384657677283735103608647511196063048029183896772742674662935645160375413709790318619177949019895506169444695768441712335772426268446713391578698467721771143633289942730184546066329356783013526266198096516483066391440396956567699078176937595710094773428964001646381625671860259406944896058444640165363028344720139950096574104013197627390408548806163069856120433639712985773651873656829246402075656720741688217219921937397185668122372437385496983681621115764133436487257144670614357857891159165991547419979788781587638976994455607962931076378824641162871212754546877096300636927830731018649065547801769402092009274095776114679993234582858826512804466708000344819684010862238182080476421852890566863714398350067610278152370567341565303834506792272703684056343054842465066104663738540311085071054752185161105577278195274058396638186981239107445078283877998529620422750329270423985684468022631224352514197357445941064270021591891079393625772859551818345610464324448421617483097500260975300271300520446875138733519093571724685557402819123723725967885395589546681129677225357870423495022135156159487471863200953562949036021313196376481838322812574411013470555061993445779114173620248298293291692884970147818581019366523108900675215424243893797512619601747875629319998916752264033553686958476784605558815989062449989032737970240934524694094292910702561926512983984322518075169502656557421819391505311000594186962378763633859027140915812932598470894244404165110504693700635033022234828251198585373897755349296204461064799752395456283277402468354314425278117618065870143629445808414036622987568243210601206818047253220900230450406054560764850168016245446032557479393707000425484375698094844885388721867705358211491440262620723106611313754672913019795474345655928466715495908648734943416674921384461725420894813091063641204767542373579643346799192529246706062530798443207777973076115649399543288651239415110048107104370113787932300944896438743354518574097005510933154334106478212765624438821084021308570131206084455889476912052605510172185838992200718203407932455911980354246573924440434092803468023669936090007938814686974568252243885952540933887869370381147267494526599300675965996801327493908137925948404133448032878416629586410178043807784892644220114559733182207086843904324300754128040829996867781410788665919981210081973299496841491391016690387438278031058996154561851243725048874654858939060301911144952769955053628599783343982912182073284000256077863837554296730021523855608735092926774766357988154360204017596647120130177547669217266050931558609766497930430041213355077181387873645964840528139268063721035646555531958442568930567473424533108029121466637275283672403994151424951071231521871091326102972672406843204023270476186747811371398406076244500836685595566375493288967009025235473915858195242661695954525031153503976904670335253770600016383711954547451090651987626229490888115734072417196512432671332932227762753406057418508102968569397473006783925952534932765329370012687074802369353110790362066510006362456470277570809897460883071022634635488423725011492133789886201244321078182233175913293609444635457826352432414813126106995401591999408579108803783650231241956104783093797622580506658354534017531966827886476789315144349735494553079867033060972584584392983646108016977809204324009019128848673115833763308270230483449599323715112908824032862164822408140254937465359616001067239327122303025614514568197401054770996307171216263810124260985915628135477154826865898308773842833862479484058078269185565241995943088221059134959450038086192231836798374344309995586874023928448110567112862229542413262392234233701041634504513856236273079248280978507006380257246650432916499854534828909196620870184466775060964806147097010203534206226434110219833550129136508937722077670627576609972760271265251553255328089243972879324668540607583724034873677066480479981974532223491111738255346676818168175804177468126912385908788319912574551923450011736278011804690952941321043741091593343981459416692600160296669502886726133577189663914055708259523626757806450698514083965905029345272206645417222670220027103510979012023823752001096587457410603839156855135057878767168818900837921868245471102444617949080954394035415850363563957813111185558074245733016046891693161088439743602781645364335793570981430290769324169513353934290690269097107126827461055172037656305034352468661776220998601173985450216284981516454444153161053198184868554187552723473854223095882145093991851027614652831639838137454041874747872249675602594677564071809656828243032284730792099002174905063014336179255847138982062971573443829205494918309236617308365242929663051212993322491777738718762115073739336006550200488012160223034415192183984606985094214484799475977628093981322442133372738131062870903715115465287475794660711914935567044817543039593112789329175317662970549007827383479073714455610406781006958955214206033915173394079379149966530346236341644305553228417318876376260163598588793847570837545126118638452285470498464551821145541115998764065494733735815272073631381532081457466311050231488515251748344721001798578236118709236312052152116888668746265178679721049842427794523203173792616174885312912565131343554096056974716686810574905072882884948244902179800678845503260587779001809481031013834208228851661339970873101454378255287318530203844924897845791158497904408634734754005074343964458260907831874007605599581072606710711807297512633638636390750158964213999905868707822611222189371900090903874835567434555988347657444166185286728936617527096567994220787044334921216584241425599321483241355024596193536317211038282137926946830316563447181302435663647314824919245872328860959367179061401760512348960956972211175615430152578483656745365979735357984673932605817348688752211148362595446917742873068047128524595076834525690904367225290234694900754977846518697484386378208629766764965139057013375024163970401325864733437754634366604076411458075245579599370036285780232791951143132842738323662350270619215089938969800726033254516287765742984914814840838978036724528843036235622230427691519436768565681421300658010389934079874342624481285689015441585985309304368883606615259391196711176618787910117733638227415814211352024667183574672557804112763181150153054243249285846220731487746868370200205868463462088596162497178941031957117222830970232082262610929155616070409975306727087638794231198670376166559776946734198688311558602917514590516904700574254377116050175235251454196711040620128857013277353584388200855057606923471720348319672716311086412220284410476760334923346563419334322834092901070271627510086728141101350919128046674766280873752697611002272187018653839611019440385788077062236247990601157719422225595022771950431938625823514244841475244841218044107300456153487861537535497519022397870573064262015472335829439386486649024035891365630733368114627829218598166877351674160297577288423101799946536717738697225138320231025387441418810117795129793989188672469218168438703034774271524543257455224999991055970153534353747702263539786594236488060059417446866400798356071936910420275332357598355769465345770247633899973273742975550007688362182250912248962520103848419945759664183503175571956650302878061488426828028057223009034070688010245324758391875252537735666142897548842902410324876085272445535723873145008027093055042465275697792027449513536221440477422535163857018480598454455623890795536111533815144786019845312925342315197909336135751513169505600314430908251588620403313801742279674591267679013062154396513715860114928802632455612981518462932226149253489291667654584533742910829054772951720955828638927468483731959419191117817350527776869774791487511070290581513734100472289042477240805979882325134138994996790880252246288002670821199260227909732500473793551314387885981580373207586466602477574497993454192243784684364985340594397476518394314353357895999505654907812655220260777094574146493381296036306628416627721406161128796506269962477219396359798205558565083847955974997458892115421830950785219669793947288505744742936319726788004365396732331684863166668654873262782105966046052924468585018460412484723008428208780107063431962328067048194716885830227390143324955290919411913856388644789082857113755608122505684363515576640143977662742695536436704824637626710609348882812591380957275514633546528146880708896309277930646208968026689800642893779023977422445149002684076008296459603870796593529864025931284637980205938732129867049774959599133724462970095911990121835836592959026765375016163375249887028146491267730643461384832413888995406002616546488056776750603071519568009648621277554495022470423549650042107907438469333855408204926699531650225098109600415061576455393564860486601105374176485549733558558243721608765570333002539248746517724341846702495110418019661822780198976090954461483174438463218447646764557662375374608107994112923134192474151094322408512761193692767238749331554703883761916481453501631818475794999777789994248168161217619905928405762266866169168278266463388875154339490852619913850352080972209088856751960219700596734190155197444043420310151452202824586023588203334205643611796148099732990768426320568277437128834617431458171462285229652386198361460363585905027844596138883238655976644282384673909112586475285097782360886886128208575719233018179283830249047594143819892089665982799046726593078181890645544055272582451773426981049281985035404363389598861330008858681832249265648843884117873707859132133962045567895123943306962145692777037344240244843517898324363581281670082083878995988126101682655001329281147204297411589285962003748229950167261167508342747493841663687473236201544089018451898554984513807379754840158855908267417650573052507862947618654002556254226396218936549686569389326235134973045691338975841579442285568084030310232021159511018934641840875107772650025921017087861781675370414474576124620624222621211978655538761488657884962300080177569859934695549398020973661825611988921513907142561290616669580355008277079138282296312336080870572324293157985416678181396959397514972577172111852586918363982287752469544454595817349231425210533853888495210447821693792986219593104838537418648615032760103695145228094509928005240098415743400132561256707936046055346160076933030012581950717151981714389989211525951551400795359309208525576231541468722889749665622112408130321855782879651828272628910849698072648388896731052921310378064191067911663831004197673174068981487104363354329881758056504642792128893324334837677644629115271486462066119900466719556613768262671188031116825840693568665749345701951743173010172334661100169916620656404457209799209588127385502285554999635941648537493906457086053041081754557990594284927339169548629720071867424318716812295294103213573049256893527842705036734011402442678072940280863334253841775763404671274201763001156970160528881042340643953130124428133438364339342839070667548347786560071132217692738139231953627054890648229529205501236572486422855746132701179093795425625702980979972752375075357875117809430161910253992906738320949657318205391229119298061696236296594835845859587129412823221849451264872952787725474510245185933687706899107722565107631329975218653592045419999441851545835985649262466829339174816115632147479513876672016124176372241365906130596303273975444507743964495403812980691785818745133068508086661772439070820310811093126513954029953999711927202455221915487930693898776967037169895607725447360784965007763094789399128817609113694588684323085810541171726443152958091921100001812930361993396555518851840444205668859516802066225679915946589710738493842937186248816821327365264359236312619245461764139658414416951750317420971280750372928278415629070445922244658213183336551201931625733505115316364122173863220961690414312745015644680067645160503178231444159643797434816895532537918978961080508743992140654161089109813984873764109927237642598337847476518589573881743955189205425653956433670939215512650129694203270040101234438516334485933613145493394116953389000066691084138961874647504862760891433159262796523977473714617498316536653630789135065346161981558154883211914394999295316765718054668853458660098114562015626465514928276506577099827687234242295617006035096020668799247006262405271309910875340854934508659985985563752743984683272225391749090848584223201775161387935348643598578089542065163573819196564503525625498034082036936678584823393048047190636493876971904348193372904407420504479044941266937697910476102693406046822125583335304660855487937401974035905817925192074702149050382980857922579023330600029580052743753938273937542390369827783262503532918340445469199026724578884929640518654533294814683544301180099284120573202841805751208002736088974962834177315859114748594982531725986056304105786900613211159021613491873442707877540324865780449877991260011138053275835089779712961781316331402216846545164155984541625606900755986266309889673413062817719812696740564166768275129721781562193970782903337878741846347500026681579618256053781219059538415021978844846612742611159224058241288913688473009723322181901187902823208486651824763073991053752298973118352988227435281001835956468774589307708945047184562429350143125409645351090895488128141979103860430892052422892534547709269487469674798899671440266969552140424768654440762058568166152200301926666025310201465369769321167403313343243275487385843349551612629458360662891871246305972263612515354005336294412365684690410489051990041683350613783866551672699673078337997841537938336085614224687952575788411585722057791415656612394910247103910413407683081505231256211582236181163940933194123913379908044630055513941284901635564370780423158469181916065133186430065746240662951067112085083462813947964377422048877637841665880722960889797642163744627787932313479826369879004289650056288266755051627139723354232199119661599857421966577628715731784167989464695454698816388849749611791404995959687560780559094173899269579006321310737678923044196596605814993299381617891884941020212615359074696038474146548349482934578789359503257283313482620552641037841061244536985921855536971452940162041094508058652437730661399486566732081506612276937634240368391039456113338665441043205078080486236361931064411331419882298576348728363565444256698858239954147556702854716001748152585658182826609871549650899253695201548043723399333327144475556039094647871121763192497258645980540689387573966817914673615974765311615192297423764283136699232125963994496665519368824484133878546172638448627970927588158029136466961917976015165651220636058783462051045704281165641742509225416947494418263458495074079211440370188963881700349431394903604484839204541859461770300285858397112620821576889935843962200786602100022564885323345690471931431960895263832051970523720143330975910008941428286698291988414085938635885345525025203434496915922971107704009439210955308820170030789318145006424666606317970660843815971706122814670476302075095596055108117131921100361081677847443398448261474761375622860909362204945626730549488315638784850222974338651895535380966675168393157929515182736512417151312056666335803885496572515054459689777409076312812865979791198057512737050957577651853063308225371410101915840462042184971451020814384138392977994318822045566096184542029001738268123145047316477460024550756603117985942284573201256301709046530755480805823738146422672432894978589124312520991895461800888543005251826618332681642358755501425023103370157127757446014559142694914647049758817652824457957753481008516259125547822561895106070090373580313920148330830926593296782518928178533172578049633737339537382367070485778759949104377420638975239359539582524202194785215899834075660964330842195532995040515682545020453741708775442306102397259271854725284680698013986890712486476285991406205967388267095074211146436278059093687326289348176743498321584932863089421837125074902065079118799051695344147243370080035847349255876207889431418580761812345514992167607653829876516269353914543434330253262831818928511220527590730150355891692612125545935348006852154319876051953899850545485064394256024386982221964236453446390477293821711570542324211945921129578319193940452811864174834509731377109873251774243454805920515806455015966788415547485578563805883649606285724119691190442595966449174594290805768137687655007729550156320799731936519579465625814635530618614974164606749594646663493266139959068884068021733070763159662669909552882359229335723890383565229563598093265108454725498874095953931780449349695862461901153308861796180702092115844534104445343069840118437525165019616609525112755493591824729203684745968113113535723509367849230494089197035031077653810112279809616949993290447382628400767839900161190072612897354545570743319738266714458346442675266861586038069398561796554673730159138445640933290887305208279096250457133784600305707000322971341000179094626009644603290599289684233238814581487804240253824135923829423106835388624004492502275371345051156197899573715862411768794477114158358834373964782312856221961282713107671324337306029807879816484220445307209999498536505895061965740664928227777359306427634267971114204847345195934323314206288765314564567618824292410990035908372030387383618749763799810719948726147959815508658950253592944533803238195555104418722547032930676104509338937596890263553236972605788171504535355125274512934841284932625182603596620229232429816123582977333422182412794831453800189576065815966983649924270458852180275156068265853759358843838178281528429873482364951604293719947295576918476103354847508235911555561720892681344355595978885819246612710401284935904087264378969410292886290254406760346177011059445119043809011551854887338577218882332526677531167030822517056409778534172825842578484204917356186889969656746618342036050685346973712200232044440943608146024598886994411928683390765501853799657303149485736783765909025382827901661439040596429958152234161602461269737918438486454219746782203966574613936014730605133905421881767611401319307584558702749118918131066273368574813148566999782977693739323976240314955556301670174631301277497041986622936831801355379641475184788623738484559887828131326115491471881020628888562299071557380543521737633210196825984668893774147095583919452514693578983568609177539529149294507210988172169680996252733123390295104924355184238912163825177103649550298044118631347737437280259943445552106303915845182487250684645386244072593370502183902134593840889697342593158109799045535569240464832974912282291099324600883639450734588777232224452935948321622962264707466656278200233898460740609280748676505814062361538393483263834624573465438018502764571875081884478360665202302698939280154264022514655878256616544473445811595350471906553875122643391811127564669562845395056449470049040309458629977441070018944036074741790555792017093080276783387055399819277186558864361139712362163187976529633518008292980718568612818654827945846124456107149378009349235923668337776517261873098757496725531854640407024021649749516122897757721933749478501688553530685277360617871889429526030869010390356205128331682475728799737493557692837893548219474495492118456696987367658984106810361690649924109552488427965631847645690071175620216248174149530925013764551772213135915346414662525755778701374219745686575878889821795142667550335101270588793478699622449853962327742991700284389466136685307834627059594528912357359635160179472313821782505853766894067968159335593853125317742156154973462022940945598419188126605736675986932257617416949418814204681988794731061496732873754699087759133160306267944702446427805280918922532124852901197218865827142569095658845293422843173148336382416408978545007830253087256968393168244166731082252685871407533340640146843217485915933422288687815425834441169933148803707873597792185026943606531853715978313147560560052617539671471014117037708244599441959939082703436271998724453909137186750713871398262105083191835307161049593054284315052067161403359393610981755814896558447642590239336230335722311092171680363712999182701868795706474965558187991354900610484211240748147589365346925389609372416909162731510423583442147042042756924133131803731750024221708447243878051871915874179945574563116772737508324450125446580368877673739138062996036705785158432434104425812918524508391064417429543679776834269710339874585580759231235951864278685569090688988097796228867541574273203314372214974344942507810550755357943827158539927114811314573104807866136885670340761001453088221750770662958631716458286067305464480716410385918699134801180390834101537827953075811097493104357888859397839057937364284207359633946056016103319040236916058018118958990561920165242148104176164272696906233104710492480001674087903704928573976162491275562430049599536399112846212548563150224558924611519922721329081288668464316388638956025137128976902332476196087476951901971715883892116468264306926882287989752855065979180458688019117264590048151243216774546630932335500827160770840733703833653999249175702536471069831976466511433033861601558360515421618504091467087903923395623560674865785323629403939557797424025946945790651735908996277671764922209682450456011515473614329937143781512543049047171324431475231826632374885199341795236522507144267810722022344619993745631751633188755924038580633844833241024344099427876636996564504383230056941166559445874396330235792788845984141997776733928904834584640246522124662603141220653645083035987859537733219687471133735300013116062143362045931986284575906811963482317359860448611761101173217712331886622660886788329068183253310359204872404487473354617425710867396551345212072898153045441298996341338706251053894000689652628605316665171484657190885091287911213296534285929028068248917687858192911229811154912785709778157569990676467387970524059919332593209996149212664842872798622508412471580837999541911126834000561852521081099759031881318239356277455134568497055078217002944191060110969851796932692626886948130414538923530135719437309009653930904866921718925169061893727830588291626147688034464961015508094922004908727882182888466474278232151923858438702824681824228398315962984259643463114246347957872322634396895613344007102406197315018354398344245009180163015720132464904427441050368205870319897275567128249285663630022308631286656325906674504352411894267458149015968944911181996535121238326002777250821385681660893319744283436354474332094115764714619009255163956817955858203690213284593003385054670456990306796798797701419627344763619097041717065793055016273259724201095227342650099035419301841817328146195148444905587416123590824442156827443206586113970153659068267102988317737667757796241989718408436509509536112838853848469714528403798170846815278352703141540776009930010744060292968542862216758740446389382522188577153161543312690575463540301852946154248644014812338084173775787276450376833081774652865832746951960723869890185839964975269771869022822013988976398469082273789145378522818602061705297115741533555066832482364070976439407679746478538700404722136308208823076076672287560793854576267137512059260587837894420215013058398879741086948878773366842814434562502558255937871122941490678450283931594132060281722020748336429411755433894503433780141032745609845590970340518925575075545201552742682053394290373218421707773977435738122459770067042281837825568791623204483972323351728256582827249031739715455370779177419439769811994263936405840767004888355900930758784392149188689674124764842010166654907959285069367131603433461412413736736355435190628746030834817630756763012100573968074934922609819250041953282232073605139338802732101083928906672576826922349241017375724912363860935936933466957887494380277398314593083392439240973846714818770240214989853746740550383773255084405415685702457076136818181116731812721592225386859920689575429360392400160602032239680688279947791136067330713785282024723784430485889250285338101011799434300572679790406977271843480448726211139652330244694874060444807040580801722487098753379236320304210511319387061786626261186414220243792214399225697837471863560751599395620217871070070810393123410062266610108733980791898507612159723972469770570106253973654976915408920541972454842488828508652122724928476937755846266593404613185691718614327364240804334399433992787246528410671317094412869830642901969104931714231252911562969115803856576670706701077426527458153745635417684024834961820037043123962946979106716795634601042137164669056280308711963504260432920000013356485251920893302634248886497666757233487896971148262934859712972715919138342994588013690405794432430164487152132169193317804388696301343473068979095919240695756478203611432638910586051518850225903536755901900182145273077983885499993367503370815671530200570529087200950964873571013219277461492505924377807362495311409618090408981245711497567332190092505564753219489845409672978571734419559798506291840816366459345786640997701306970005915641061750305610815996239043747772201684980914863032856666322110415537700818456845397191114798226530362307483762784235279421344693583065985472179949812178067692480529238197030252413831457959548233043767927392737542508730302563625625326754385437096542466675276036206269444985479426317185593131586633010197546266472329300570239749743540379719670513400219112938860401212160325645420072399353715188775958048350184273397782347783505409519998886526340094098250556200218184943150709047976198338244750108986717902488746887438132696325457788685601332425694593637890471646298570216284944186721127247582745909295222566855601261174406736056865045790400806478415484737298330217169261481428617840123989910741159602694479214227525334225551317825280015431631481321461415375805853249250269070589647903646602092954246790786982049561262885382122796533927011914708269416060381770210598225871392238841238940063772289082988709644009903944779951321649068731064093374910268170770497650326495741379741907547406679630339773922236634347013390920655631187572665756389145733171787789919880250244245531380530317547643973477303380387840772628161690080580106573626692750606003681627070503490013832594973884907360047067867530513698622705118540087194758470748643966263675127593217192669211916489281055031275834658905113019442437585015014017087523596882495197542256719463405625547198294050543223553096545470886134121532040012173734105152288567120762311084224985376098009153759123889065379748781524546827598426933499974027576222381419652713550814992472626112895192613395433289851998197323558334653814043886892378215457214315561406550696886254933964410812025044374897578895616158699588022280467506835823858191929386552004047893419482170628720053626013365448319417425311403173341389848932897677574602181747524934900918030689100792552867324522765856229204905321959229081816833881671657644778278787955247255261975008387730139626192944643853498417556267412193357857553915179119785883528896041018114744969089208366504603850337411638057572697194295665203494607511877066206217514982343799702026948324837113573967978205955233026268328982465970001949348603922662860747950920755743652416883689011266172505556957369592403123113052046460464296265299822703070008165930404009126142030926722063027411704804666797560924875733259449675940280058947743373549581015130244261056778190798611065310535847478980943552742764746293458537702351940515533312760520955540697614704241046411775032341433793750865521163027821929128874324669882554881011918625284042533107607452708640183764815534913243991654455657182777584440669268142593857589397973083910929854056662512565295648826839206143577111607385082690302089776345974200894480385129090309145785319875209622807179754557967057941613842194697473194440310901685919779231677279623164674551985214988589366229983083294808097725934309971612018442458783784242276704714723875635081057138986364348433211714937624481156349769620993450317164661759656589034994928914577267979187513987577749404808415213548969604084698393816495283283374089865515334211449363327631587379347221369974934754824226320382716893945002577212986578886063723636808688662287247254318133542957842224504427312595346043111153812177613754636003569631250936104510963791792727464742958123213945730868339277949625340408239237769461268093336945139945740219202494261409608424240519555940955705139968404872989345307126459979437291204194567977603849157278047057726379525262995837333610893726569910190010304521776222653704602502684973063807998009777963915470165988452110439528973907809504525441264138738080556745582004844217318714085085025833619649508237847350773607085878314942310269764294987960373911944677472930638918546518392788584172638606171867252720256727686865786362746233627847538815753068367078866104186090044072978447683922226903826407968821218813065118275014029528662087026071984726487869536518583470636358981124712511220822617350146232329980960355714151185172294689730977435528907917200976016808600453190073844435885582417235360119771096647671595745284242666634084186257832150561448044451551540290634330242444869283897859105379438458108384938092668987336047503095602389853838525882785993397947841171720449887344545753412798107277380184761000336143017284390575593617454794651893260811886701619518962585985478513902529608355203842016038562728638691286894506616579718170379277046705707164712645304389738675905436608930056596841643168223758784115296325576222963028632074820451120598883415509806844664076620751882467790957624074687634247529386226552691983269226941687253123890598528058957955236324582978605456259165190920915948324287253927828658421518152668960079065434306015108744747296667506456063474019764921565018075749891713548994019495964949618147972522156564919955976599367651233571110533464326016971795578055013450138597654132234453791757511626259709541921813181572342781737530782136090483978780787337820192384256173062539307541452327566105792036495023658405901200318679755377003470870652593740064497183435423651671136026219849038272599640124966538903708673877196185543640767203871849675847779559917895178430506265893629130700835793187971728493990057945556317326375062162163007095251790556831664665064168379447347072339193187460554688902527523133422851330691755720432890249981598154764473934917143547094906686216563421203443460021238679405847064906701602098311155407499591132194978233552203172952059644631333607726088432167765919469122378037374922784832478660968192269778201632240065158679505448772847295014374332772205569616119454247476215676057885693834218082757809937987720868936336097878874355222274146946469375575127659307163248444720176987722457046687041744392385993643270458394235819943997006780850874763447144704299658663773334759129943047215780455446996979694785147092730605974712071625467345757909740055810825755543267511315445643572999336235097319433620066898573515416878151876049231444241125518388323833639556027991407311242227089741349196104688651050241632621720163024965925671200026552762946875531826057353338447774585570962669329843536262638342765624305858777491765752851110095893850043228471989098450870767374113757481621105334401223380673529233489181032807199502917378693668319142403982141553211803145943851383235057269826753964024807144267587080564355360671440657482963168737286041956708276805426591494269171797585213940080219949499387613304242867273108964251592971299535064051847161535561264625287689899702592503686574903466126669215072245352624937561676684930095400615462778654786851668997058532014364200469201745477905564151615177289123462534851365421092172258536688005501964810587884536596530252337140291961150485917664509423920554392626078114534197581178049725275966308046309226195039187466326694689638083640783377748935878299958683778009165763259787657423506809006799663121258340789966112286749341745343232186704230491657438113592589063346643753226905712854174099241979270484857493259097350147996015928513297607467833268839534432534019052838180263957870872653524056534461664809220846333020374539061656841731741768496352617209292726595495890526272321498331980868297237616939121819673047560516371439966149222667938407583427394703806909119832479383780587985191277808863303876137940401726767810692760716053312756996908956848615738693209261563984670764795840140690451509512644010708881327856356522890186022454766579501165983637271132433803902027236802215442954170358759131041952217344106787975102350715299287303796294863399736622865313651264753653723318333451980438083466242319911094849908015043329599053401473525344833942690430830356046749701667241536451696924725132656344489282542604090920703705031350967709558395809696156985594406305327817232526940116766086768161757041100870801014982531293768920889787723060523022120137847548422324656651375632231789727753446737396403259414612846404717182339657774801460495136385036553831374835184796983555680886696958339609377709087237463768141395064745540186135124899026890585588131618626838915935009618907653674242649532888802676842012684225755457116497643286702997841149943053614413026930036208101746833325140686685826502687665456309262776632261514234086800484787899460159729860415312878529667856233133351030442660432084893415990911445292238125355710012551324913010880446914842477250700126172396736212264745105234007026703619264815886320556864524553720836066133922443005060683955849853862330705741090090105790931592159714768438721114201625279001672706339011621466773458258571126206531817695414243997983648536767147237813837783121839315958475412888636102662318212112808251856221213373159453177723804444634278231150647527287738826718499528128116407593282190957865650016550659196311430901617757812974727087573574908677424622625364155075185717255018126443433606795125662097959816803176472196459256763497571929189762182320841527303979351419183091535764404219620165229475042241851701551930466086924017139340492656143627943605578858109643203474854858074460901272607778226855404493924703169434227857833921681227586392652448173496003360293642024366479799359627298686543505487420539220579199160236581538440445666527521712990772041572225781403257092564674708753707444427983286901887321821376676074826276038005836793777459756866021427540331067585380184794000063248455868120140638860772640584502457321050063256277272117731564495883662727544909692505335249814397996245819165627856746001443908583805329285653399327178154472981554387791054414763565549862173674448563296186479849617538430694199045296801108070223431086337686410473945882227396551216167683731957928552628393900930510752708525708298001769330147366344344595047768147144736075303549635198989162434720813270497552137464814032750721304718008200982740654471083095108214636008163289281738377049275352428116544435431242054283745674396156769912276452165646870089732888861941992915786003296312650262212079782177842736047949607443165151568303117628602221246504454819498765188007796432490395563998894975549485785671033389573243406855629304246328205176934264311037576957561989339544324101668845033096551429534113502672918422817262828928213235295036973566683898663328529144634171092803344954669247510444541275414762668512631997425068752256827097158635940149132856919071587965310310898243898181638126701496647039289173884442214636574744861675047224726889795265548798279240837980795839946740026379427715439711302114900834743899524056556287190703243678051821108113840325957734312740357188624369074800181679065465110096561055800096888283875079878332616172150581109410125212430408628245128891767738192991236188059965862215624401153979377049526972043655344212074574888504461400573951232622101546218479217763639872303269056290292500847990806749917128686237759877034276205920457831695356783884733355872074286174924352087747989027377293473308731412238386829532666660290924842541781433519556827926356754907068456334507587660085005794654133652046281081378190278760057814962213263278586073257067167932963901593256913294136599364625431564914910659100736814338585565726559189289053294915310397387649229500957131083227113607570389534741652237682485442509837281769948436870494016813354997382357494307095164936029597551384793787820001154428691670685002938422425785812003594100468472854535796755144996292970398743440664584356154443104765845282228263899403689976193753672601634375436067916378751670088791457286632079125153667372956039004691604381582678973456252756347375837915109266948634538567597583352244048656224478015092979758596591865116233188121073849841682590482972403016552447605932164053049326128811485680307786597511824459678775602952499335567982094969827270497322956538704708807682298353384524055623116254660388386605801680003941924015237722377788999686463413782608309855920358654967421553209635284369266870541307328691955479782716434365301211360630912469200985560182561500854688964106259730973418988471546337913287486192286805242775811754609606486753618198173997679060473030873449735740785045611811881947564041497624823788404553253827063809066758109378190980748179375895790887155053090393399543892118381899951487286017607845937421171415666612513825706765064598808839133800180357057309557232802844075228218095589756983954827558282989904897859941317380805619299854420559788082526036234384403053286226763142363483158203123259188008901332573319084673819695232820394667146365052366974490116678191891332543807632328063381303987686093262231395403970393463617408518311434646715437091575612824118331439342607600266121786526871027715944252846795704719619166609307463356958218653789813014841972195975647800676240350343396225760506932027664731332615289345125801341743871757113306192146769794734246407240371035221956002520876104668649427852578147355594282470541576109847099057702574502810392017362509802820725020409688373427457139937748587424158943607195526977798307340664138977100301029666833752027738794191414449145792103940396907879449302692646175483517046437920171597953991192299180597440651989906820762362708341532217517596637726118089152556537160280083563693915017514636772838940505467666542940175043879112247922098914586088197928815007986848654286104957789524785305786623524757511130473877762721068764649892205176480916603115946824153679314629049620056623088494277094388855856628555389551612641311364518658028300161742058866353038547867046795434347088206633196779148960385651755796307070310453933424458342083308978702618079077880655595661802449570844580683731779948024187386023911442832028447153007062163339538784371265300032832382657456314834736987942947044631018735469312054987109994633301044932407006160566128204549128431640413825955221693784322313728557804974397196125229190176904402979471520453579465234251569677269430527453963446622649708983865420322209819374081511192881637736569344553558556763846497045272808066297743497257373254389228850969243739664612026797407541750745212148084917592776310435394607646672371033666832785915798365255799149068891292217974352459452426763213761942352154746369942389771547161625465618325013728120266229952751661991122744528784002952074361659248968771377847295545698611261329178668269047450656266303894872664560882045736833287584520257983465870378189781702055982085787854827825186531797021249819735678333396964723998401031210098728714681644757536895981716952986197931337260069697519989099541347396143516312611255183590558059390609055238514599892701182685058610190759164171787087087411668830318830847742538277651634326230199117690210223528979069618679173394512987306237754699713048892728918201631108122178148546645676237823427120654788687402202938180865410476527886348515928644845430104842606617969854287290082339401504698921022129110566051361196415436532707460204519684551401951878434586637922084658410874715520863813377706022923725462826163321384703979759491357289150654045744723554393088724972061712319566280144385017875939165281494840767225791365271509269025132961512416127813327299238369184359083482428289020993428323651105289401635983800450169728096913337586437385664836550342250756160606219447915717691097976035113652729089945264706939177901911107227022854656225591589045472459294343575082184468424869559860038349992160823683769923520591638666619419154023017351920263532686221702686336619642296227228508520223985524402208597855858569393928817139206964491137635151506759217255861068903769081427212361234677818879825371121661675083422995085992575483041841068640375630034388575188680669128558109733724540948853097808349435558211048951763164366286368408660816399982269584766201863538511345658507995581901891215934163926580187758808587725626620806447778458917971525467008103989245849887226725062699856083630403681962782426196886280314813757443926568143823950363610658703229518919911074322411408619567477118291608845754624573901557203725031643706998450455253882219173742300510287701785517637396704071375857413420728600996325712403694340023422037167219482248212007265582663044934288037216075396176196874156966685348047200057084468405797019883854534725434654912125983775242697716863487978404861632204389199358317982737950647711021338131720140814994447254774787457690951129983672808454494388711406278204151586564268421205603881107817502282098182110555557927630207611771552503687854981352303917478282374142079006212165686007329661877073781732549906183247406835968074652577545027956670025781970552617225532911828685892316348290009004638685638807478856534234221527490360387188530242544793221261198261731676467924291889498266269907697990928644678138448527087110571994839933894793810041768170121628058902459979948523251022533750010982026287587252268217976113804876513278204892538194739443036704548216349385218911171289369316532146541051537917827359491894946562084115755545953289560972290904341468632299551439612089705026939550782976214426715485952846593233068455873723072179278698189221851860223428496652854012448553801427552760987991287708873823300155570885226707650350247109318059541441004860322691072370813115344680307732068784018612435818626565595410748038750448715789215884919403595008639775525527440091766586944820112632144630553342718982766698772107262668448212429289891308272681793350386675491291042542028215538532129698501779941874501011740041653553092622088098363859723690194371129048826766268860080423695953979544789336375957898937085901255437809901090269571834390430040134968048915857158201328761314971412426469255845544979608870268424665235125314609222306422582469905918925355385922463338063880535046125030628292292818622282199234181689539465791283811684619238693586478672816779225586951904361872903355708656630216985026178746111395139163832446469053427287949916954901711630466078542364041041142298297959769290609570010687615027485413814406726574071160363363499792579801345451771817662811625699851708580241507504919852134582618740227297426791238791861057715140193988209557610216745789179718586608534190712464310997371815964083275317055671125965214574756183953879818189993793387303041802265263416956062757315220002175362702073370214585862648667991789713036804928817582113863586125568393249582937617591304196457299094316476003743221028973514998745692648969231774500606241446009527211928410880700573345299446377942720895026295677599967001485563301342366553064505595855355122630028673263651044390448269225251755499417770297473962179939607397000917379516644716265019140007681687854075680997221082614211055166239879483009123540472161701608255751947467328120579824947420761725937697191187118832470001884922083117403359678904616456851307564250637915298817932539524298400882645796019730769547104895384925539962664324932648018213159223355415828735477511560637201312188871641949986383993403566224954681210388461877244947889724724353339845088226834156882840572132413504457569872929430786441608866388203581385765968817340884111176856136801327781701361171061017096534939469733034862373104002482070505275210756998480961504291421888017603638280574573859366997265392147335536559527860894258880307483324531451727514235042935057085066078708331454356634496494304556455465609275129806594171781793713162909229621884797718089147789141215112455986674063040703102174429672874724907276313129859249977028655123862984319376578106126585429222935205197132273546670262342245593635999995365060646503280170953912692299628799339563396966605756307151510498718321067829616036565899846965795960288827532782851953394059223298351765712243109139322258200144576573482985737055611550965903767760883897051292025816685747081276856083818268089605036345282027210668249720507719594505108173138979431503128961338582566493781706918198298294996080507828697420620362958185204928455891488268164007190624479108207403303412530261679564241314278669221211734179195139756214232268740919378710049963386806074493952505775519562682685530814346360246253057858470467337240239192726853886112755251614046117019535213282070424403874765197334223454044390351324809750865247542212943577293285170941710620581985793728377470863035038438817150493719334899086320580981200879260593601840588313555492468396507655526531848251130695348503080143968326336890375377017320504717435091702722774002515415757437120515749961052626982783278139121635802287654614036443552649685592507181087440147113278669101516724680529129996723648159235061522468873810028860640577109545905056924797754119927952255374019212528715332279951667733293709889317792767440282314789054610726901668337379006016315425029044918838567784897112254949436462515216581254393198852201645704472472767173340631673130690793211297913118167916956829566913251152131107901956433381232762154231005672332622373497651233150811526284617261748703153858979098939260728781911619231419773325559081278107402792713215501384468172524167685971287413798761651669361878612523347543635465117694669349456417995189019120801048901945996200835230925500764834141930501952187479066411388017669845612808968908249452562198250816375740212565182121826608963241615995158593157766515310185353319836517943903180170480877829522595939732067373139201282560356998954694004139129718768838521170533272416660865742194612018184431776726999471236985131818964327950547289535924588224196897854302690214451248464401338196844667578066039794820110775021330888718343102301933537488745380043343455864288195999627311473132873955881641200724247191143744024165978370109924889558037345349332088830177782073949005845251511894655356862200614765396698783554533925363060709280976332172421597238744664421932881647404041204070492054644517083709714593977045706642635691744703219367645880594489344783900283307076372438415074895439676906817541217742066660823260915870916690587025770045478659557863361024242755790568229778192102381824514211487472994137588920921433380778169895712447839774461225680708030621063911400751334003424480363511545625988888324400799587845430197608929549685584358742881600240814281932788481415854438336137857503688374823451912143700323965046784570519622042683959812074904543996589511071369205895527540478198222905653802306228029034144736369800700403680501318935046662993121297912472022346545368627299897668559253831650441059758849495048875257664536216956532230686558732239533567596964461762838649693379699807974739636141925546135593239486356274074721760183317008718551035104315781159942364364511087316293365504905809111928195735175000041756479264504019931780483345994990938928030843001176550168028840495819755538624333133525354101342017365551537960861529119541484970289277911473839698855868136354040324321150051043680462089181057136974164978352146190636617048250997551028529655291102382123814648390496392817880804698867487821752429190681754092955051214266267858153743458794840349438967675939699842441069725208063863458544939524663154587042033129231607011667147931095790336062691594074190063375828009538497036083467836831302070442427840325391696472031166568294621444899291496028762957097179254297783031838654700377115681392677757887280084482182812419472687499364577433955504566956567300543854532314013168226230218504120774905540019537359863316260975599455379071071388395258873830302870938691922678152883207698192150807141361713905820083414008942076562415620312187005972897321061260643993673679644072937412309418689896243154434621490804567046077172135323303635059753612098656314550841959240964005121005764601868856397974465162622119434174863134178390015531159114604778509120403015239786012379533917901388001225993017995738009893065503295074841124498997177121226715857721180784134810099909780777862058442430246653310359594012078168979695164979022090617198173072820412791729655003801894480059738599242149696358874795852130114254686751315060234389902803281616963561715979454787488352014130218815230257100469860768492782484336468388682342554734675063034819868916462061670650465971769400857242857427883084953344582988888675344996347559492667370079065806785160042892317713005075135585143223255298465685562423555722244146181696810922259387155712846556721807736108039262012453434694466505113203730367911101370934154167764584587625936962780574714069666539863781087825569340642635155742722192407173678254730767797141877508348076842675051265352311464424762162865563249325677320686855794498593842493085927023015661887631744730450554315724562772521036901567402030674723944593067468419975931124326409556222252190873821269614585636629807602473359254693869277892560555823347931339850762792191404694528957826297446847622145332940404176973915359186707121777564765162923877428604382264819635379008979043355983434942589174475519508754771893138627283624419589017206643141091239887112969634221975714256591084371905364274989188085860494916962381267635423291567495839980432882329133424717320118423714237792290709498144582351508882232759270671066904574672099858401596285948697156928684143478002254607136672111357008828449392244199039208118366169175136198284406022172379489871014162828005307940224520891115573081438878316734120908411615085033273609849019577501002560126923975338852169008107649497646790370477519635180417623694696842017036903942375451387729985816391694319078024968745273947846021697358009553500070365265398598865754984530057784795375697745557622604813811565461780445795301742277280596061493265354074449726459409168652087710265628412633738183948870999596634206431203771045275876627777375555578636756175908738301730695132119390905190228409868176559368940168138774497297469979457000208039123181003288530993208125114701174835106645323373589791308394862004749281921015836755955812683309279959917857318789053829934270516737068051942482351882250075424544697766413630670949819113872361369156635611398279321612855188975930722158874184473365278356238455052502462272500484355846886856085271675936989692880493883908882821296561901082614957815427572641324086895390833439448578432899586739256474898687530267367080661699316911607880294636235345400216646815215741743102864882839025134230684710872723397058984762524177925438354299788507031117296726982009698758110143261877202510509136009281163619049329201215585432193323437582210089022329971139712076988136228882378991160622570983715083865025144736739889062362831790741048217386715886039012279610028301653093256623386684850794916843080375297572114592171169041892364937032778444259981672909515054557563172104126948391268456079684181106861269269644060018210365665482439050100989792185186188925717591711759959600622001315637560990388992453365637225262347269870991567539834686618537188707428463788722776274101263785730965935891881836307297794710181372303909460241178398891006042590543096955115857886146696926778506264457096141378363741843658806769335499194852876672534374678141826403752687144205309271631934950351488786795500261709548295538255671313220691098128052693271229285496323630042113399257114713431073811050527439471437890983116177794713355075452761931630913608059139936042949719290879471595636163412393172568756817658735093891445000120603348959321197165920358991393786240861914640813074084926330592161557359646443534784806507279432932330191112257859307625631597207086925204267569226859092205551638659275946238962942131030692619337498746637461585777752067435470258328047162309329566466292594843099264319940125957749300013548527223617088733009420557105106371810742513276783874277279913257255511096054327372660519344390548754418022307754667805305319336739256974324236206313449533659137970476161420877033531992795053189996803421152833305140543887929073789269853711678945665558592094454408299612771547695520296429633013878560255962318576192285313629410650092205585077710746714566649781787939826094474938387135810904098680927262369021217097560095636905758213814467579076951471019695808128869977895839154056064766757965291440098195403518205638480375197950955872066920734165453073568513747920016471080060968689806274164801771665942895933948750176116149184216223943552509312466478077376277072291463841489524741528558562561212393801572312922856634352806217898181850857669461603990106001920895385852800288975882188984352816851064298152336719144941500093641117157701753821699338612655783187686103548950107296119726421435084693227494123569686066963133949463180499575047079663338434476393648424622166087906003729922512938966477123418632849688315678646718101476092966135013252999818328722419775610378210491097870326618720705832465606203999155051279181103327017929767572277894358794573548089423320716651153923492062074663468149866186761206181724047988356045787726395540211324179555754138412739375196877558550640342995736608606059516234737379075677391890490453387810017221702931095828103774378824524765942283198397039456846729931449329824958676169538987385856641939414221705668511592960716915481590027677831811952667237478706654637083260463752925013548859032520174246709157389415289022252990588791498300191293586088778726216339367647671870114149551176224870523661690287054272211963895426315983684969945468091678644482251705104484109558132955590300124629037218076441732284185506511113101827648616904465154811714336807009119176048096379225541911594389047468564211498821287551749581571999884900684451136965172236285128918653611933868163996187937024293607928921609408805610625003287262091676765564802327944275944231596785894544308005077981182717249517252367572624643856839960997732931090830057052283131392037437157279538603830516319357164845755047512542617363274797099462935006098637177149383221067991636582123084944096943116553125111782941855170325743608164684421592650650072312335778292855996461021387239255477353788452885892455635298881347069442878552497956304437349834311064484933052836091758325564844068386110051624775105213525909473131837205290933083350932300575373283497761762388124864389025626630020772805502114775057321125846438530363130557764330656539592952423970700721365464880767899945383351685930818436137970551234814634118394262922795145004304544811158346012856730417987028895416729999842169822078310982202317550160433315107992750168504985903297503105138243215632801383102184192450805462401797576023224411796462384806183258740654936926235635565024761999400782584844836092549547552896771316203733922468401332301518892816779756503678086364243708450687063265059998177933327668486089799716578513772879631512381002919242287012385424849511147064629196959210534204173551120881844180274650506322900063816059733609405912529748208856413528915421427469571654739804952108798735550714662921308714076349616224948557786895883936437814825512132766849741784791345544611792636698766251452796396586965265153166778541740144467965362213905291103830145039988657071534642464605440720438749911206508941060494966728915571632521670331749441960381456819802156577721100981101350054613930577974118284414105940487612680057302055795659798694559914502175725353071012748077202316402572275687192928908058211646810404810468750700287719880477136820408085650440506497007884395705415603070470259618750311820100921890291814609858760601968432844395665354578126720424597100363404439309734413215899861736526102761042788510018643944341194328755366477815534400090175365379765017067357488982662019000040456809101912910200770594425087346097343142173419701111139933307981227878295054064762793048270789856191797976892047316718900768629043771738953365119639790162902735776252720829185429523505065023275476809644618056743312454308896698080809610779348051919593769570019035959075117476886840796734909760466411656931984498435520675450304702353574185580110811427304573081870909330795647700047828259160685701968570972970789884456606777208847125331192449714797110691993215149509168257744576085309183591119722085561458378283021519782181398037869447384667427940681560163917755151676853455987408836359856867345325575353748446871983845492644777058210544541586126992308092598497621000743883377910957194542081126226649568481235497208361825926152749718605478994420914677967283355602824833959162170395310989460227315848481895187466169045634381897710869348437822116893956251880621549383833591813549125805914695470407139794795637087921701975634234402841195521431777254234918723182267653909210344812988792123869076186082635228519471449646717231670989772541920755745125136854084996172571046812193045725694979847903214333126186197959842571381606299166553621245509560678168514885613453536312133816639092324470861344074749352557900652631715968404338129085960805239182528468264334881672763183791771500865570375490437959683010100496368296336074780310453219094369673300714867910777639013796839955937745348419778544209407471584478793699611941734407564352815087861390972467920454311764574714685297845634828613315409802775228750584277840386408096021739590797641947147617114176329803652552486097837767804859009029914528193498072586166448610713904479231338449860164281440694754513717142968446187320149403798551900685647333196567266815189726203207237656887062653923480912138583475137215318729884557115388121201467484471561983597316987471004786792904764002206046230343625509977467121167670699209375280329465325319758853646996205277671212372718551491266124517708324610247767599341246136216746453969268816669727744793707175868838761405648876860076240688851172247572306926062323763826453556326856662449086407753028541346491162953574086712202617324535156210301544801648657528563042825092596083217710286283007435771813060888653897271744848491720909115640134621374328247446322143353022813843531517940084523856789865602162901190094592740214077591078222774322218072751782871341672336104247947854694320248763290597910458250866746002921187116445063590439823119504762063182377172797145309602935078314400645868304270307141118402368011310720249760125824131712689516291095716286828782842313418980412397028079172963341862707935440946120419228323856958956654115053102629958049231748965456472150572127321893586828439972191838907457453993825913468324758312068942142824029579428922294912375492489839332864255176959858897007295470444702482038074436026441686904930812914394002303959438965692181924789213381913564516430243995609256597561600991295679698818751546483288846904166268782808418878218500782537373945161585892539731539632260926527482053391130358921913972187510318311742995142458008166791384769139519864272564092978992317415220799380836718268349285913107359802069876071815750764760902519019791241145036892874094346759577849197484058021581120451026283202920234900869110060156423469217495169487400926417600432319337575579978707370500067052966681206764080449935302303286013133726934527358422149263534808905090764467610141394884814951223995631737205346888163540353807133047774050529648294551370533112321243850749571241410532478668574823356757644666264050758464104168562778838959111257002371256600032404843061532309255738295206649644097929806581475670108360210540489054738334258984134234902169213668872497909204672305575087793726534638508171258386191740449224724571954102933893032397443579691406328654562662549228249754128583992381696328052739408850242309480376041533981053137039937244084292599756886925959696595533628598223605023958436705146362979338825481788468393112481446565869828531951891116871560629568415805121712148890476541941051203023018820181866056253661583485952430584610901848726637869792000783079154202855053193463215454507999893018784437417425418257527667722095188049924652637734211566399884416815543907428454080931953996222798635467522660449569756149578662670892563559941801238357102993576273679029304321982942336793227376044103419266450886313935360452959313833981062292028967007521776071129542605664575048743685716818947956538130254202580693429869117657789629222993342615226628329350085175258315851920577831642229543005497669934082583805962090303866349229647618709630143591716115739201883719872867100148933080207895808609466282144552268302979692000858590011651977875043696812503353566339084131054788564294733501792154340011328253357683401279196542001629542513545549570895322965910161560581710015379304867773735842006571722070785184613842212960822225695882793922354811994726310239508474206419061931301161872995797359083462393549629524827289154202574478691501322613188273640695486165555790831784221845812077153717519033161820005664544768355891719924623280214172851391552935288378273416979135209571327079769127325846516856088024361334139192448024633202404504974357271005158026033536010507301462125010176721894691102039731818321895258106546449581311807142267218454920116535686709395436757319294135690171550256388640825674135606307513933193710127603919058638369147487833685727175149812923657915227960021403239633822499306856176278167152344932366563833887684068791392640844518662431894552268937262831596126894254526397814578700300242287290528409899788680300554618583256180653825701164148000970445516880382337901630696953967125313472016657112687527850655439014461781917211078558627906992473817440668793163802613669511143830772332604020332253257818058157402572997446395410113668917531718614222547695647780494606895775826282646238982063186382448839396747529497153413915474020617622229607714179000888884720367471750052964947666589851305083221157270447951614963872320876234472016020351236009173556000488299970626879079899410418695428352503289951930730470607402882261513244759737635388925416088776111478507101433779551018494295686243026246309638900604472578413331324629138431512443195652646871801147489138887191632894883307817550669485098853616769771314163406208040708451804093958645178968530961203672535375358068937853850665228691215876752064732060684302028248205927354880334884945697320623944858885363119985085477657798593374103719310106169117369874951853592047063164659191422981445063193873846544366022549743836602434360543313112746226911052198584938133329916492730311109080315890926624805728184796888861593162248968260442148279996038479789734953896065904410561865890984078266502835328161116474012587222572169902594274655228847526759628756760946438910696544469843224414003560283967450450604570288186649769134912507383742252757489790080665481504978826559033154261992032189930105849655061871949008438616835895425682671394492466528260168297353895215487672838717896007085046398816796102388611181725341314199980993381476612134776388977163091099632830560481972291632270990994273237688091318594047183312845031686149094154749561072699386667157944857311233159764028976099595531885083812428447033021665615885749964842411750177626902535011399751915519898060138904999901344337605927060827413182802272864278250106682664053784941829919997980801542936839213882762960964879084804790341987436577174501417262300859039464735480247049203331479736587031078332039427741490300113729467066445845631919704381464843477042206431370239263166833116070990754469654198692843914271573498160379391035005160376085907980430986799942356679998904220867904869827595733882023174338692795351875279744934594900740915566896040369568065636029259570432529745075804922332329038348568826698432596757887912848465798172483580551913702901118027525492897449786410038565501096142747076530326129704774965445934404501960862065571689251784018031744522802731129985943356496876797027860062555921938334251116320122370462739084100737692343046786465501593424434187606069158199739567916300809920262351628883420429263136183094496365353349630496771780651970206407680765357524375587114355737417814184316200933956825078083584397238888396706904654360832621526315676295839900672918069153512480809948622776669561074348412576832178286445036372946298426300966150209191331715020634282068521806660928512387599336771730406298107407748758672808049394251150754282442863098034774560099490884107122720342212205619553436844318214993538224140243077296342815083939352842590736245479785107499653826528120080880828575846556866720469076045020869329281621349209822489543428989680052229453563402419272238375805390455695666195117880889074028040085877754084046627504400219117620486058262134060919275169464991819804077566666845426670144906005956872031185436706825779134202337451681261255841293276299555855882080441164199319277206208178914208929356314903092922884850080057053362313210581665507604668919478570169722782801455779790199003830844855422927556156996304959307183455817459423107522801132370313424691518724050418327325515986160900095607297518766393829933902183835805507786059119314979547550552579087989142264591895716924417791483331195025410097764236662087351021502678559309818411767630602799563114932059842696622875815767529206849621197827579618252851891697334582348276317592683289392918475735381345951914722503326234343832576690799116145394824870174480135801819581435513844639688261876079978929486776747754338978138242157861269304636375969174144995384172209283449347187974530895553802919394765746604358606297597944117308681356853436314299342931763974659336528777762455074768388858516433496193431091733438090033057237685218462216540654411294858738006916201159790102023999756425926104943711024262367411514311952772378901959995105344297309841909015065962128732361025032050877141634204920310539593751681775364365029745992693737370314449589184621799622588611227842835814549804068231864158620669155611955722563336728397458537768755562556656159693409201386572254165342085391107170418781477980290645272639286539423321109153424691374704009237507096638790006974005522515436409544435377415392922425274566928313374975188504655984238302438792539200195200721749203827706656999752949082140112062237545830893400441646854064882645590429887286518971990240073366431368589652957563631423047125982270588784724926335602486133700700707913191937733769570937655694643194678739942078000976237436502532494640233878563778788227552373805651111365475721828691576332462541580893875790952177690208500490182883961888380944503790751062037911466188428194910213731352786209681774760612965952689802049770378626222117286898519976134874895855933580325778195995958950492152754346477491080582068969931629685877303962448202873650332784109619184284386187654220521101641391247630172976344687072779292781116527204517005558637833193431530815348888233056442379477392833433537438322131535875315882481055938857876709947246796393868444635499819853648919147656316014367525418640720561494989954663499039668464030737305085179822206830292251672991587966353035987880240069202121272590044171996266160593727669569097207535958391341893067745488140242841236508630034415618828575663059151563527960723660920996659013523739883090815552907278058787734296310747808391829088360480915765003003063802586785331425371311783261034734255363191869192107273203016306354728187222678416602066353492309888445363491819402426673632774800562019799316493569121241441574881896553882168919114480215292692371785128532261718184424578655543785330855050456767189774862159770975750801564870093355151853009873361384734066834380475852426551518699929207753318700407075840339578715610149270400587463023958570427385367156351066299115062071855878567351829262209940189925884201749881219042981891623571311805323225774894617107181549927078674332875260946955608022034803942896547850792271353253964849588780315169873052673840998641818263987968962863966148627675571419513094426861934059023152519216404606955633830276692738054551755443479706047322405143163778602058241945644166790928333288893899420966121051061350993722829929880993210714097715859221493386933197336350106390048739581800339373391023708942742849048140354453977861585853852090327200735716795640440828630568036684775536510046418492972527959900916932043739158339880637773384434597091643868728920568660287738656108581807482485430194434800986098101614832814185143245894728817669522377965342128836667493039784355961232038941777355393548849984722232764767983355883490891520274750640373949880692596735095373256914252186788039831166207287059058603202485652929495833883018823636095662135527282320706897817510423473793082570013488918440164648522313881455704158319248994831190243568873857927046404636851114410974012967039336669199871117888986518586920424252247502639202788754276725152601961285931483731778963236052008831941902838735643570532288254961626671524154484839948118058916402644168157499524961112985346235769093709884974131714098790938883937126060230843260871253118656694337360510774953883141426398363800070452218503409828091211652919289762476634946293545196816325892240463784624257472607511366671716717974570123259578472980026444288800451620434534882775805994562327695500528576791709901831757228261966423662786940074223466511468848580474572304011611229344140998319387318343713940102053995827238846972817887494680221309356635462542072973347486814525647711018629363856127120793561820220619274810182865425664064834537895710355532525285679043137003053297936187401683929284091869856587510779760177770601801593042668134860720495750162127060114319116624995976572192406517989304144087388334235759307796061931504173716350103700490795335024285874958111730368082435408329370843801898825785282578486674971036337102110340675089147487999210250471316729223743907889941418447188101595743877810055327228779003582975826044019859909011895474266094854108529694788733490214957798996209874149110496212173707969188289676577027498379673643304267405772383211426547877307852092474603572860604462959642676833508832345852408298614429352612378103810360022251792496256090478147659768296442598341642780913115811760108251965139024752364797620695262923281966816318112446616278804283244789985291468666512000409285702653362313897033629494749965156272707767500148252202988554461039265691090805837983134518591093084478985869239031619684971814966530117889810618275988105779463953357316425698688521283980431773026051683589075822750315448469985983539625801630074136224542904191452406353474555322005461252575171560464707262186850776601873911713649465983174796615225225107871884597409953166811944355506168939970584029452232139131564129918296310018397740344139499959250510960744327724784211258621112982214472539553091275467806508745426224322781217490414607512349325033739825766935687669703662002360204907992251061351752151250704553966214014020622285298586842464809811857828844502202874924728576912271696575029635983826393993391247325401085370845994200023740956850374859577747602294530163215204311587805558486230787130868445787032967671740157573856509422591166955215284088161947395834805905294699995919813056268832300010774101765237706487821455913476774497913181830176895921931719864944560372899078179772563608352599646129670405526819765699835951928195047225762073778834525244384322892398493590875478308985004580182134140043439191732658163792283462739804591162954100326486729085656148870087191334963011387411181534078381721093696936392502890776925035205769504026305480563517535912697863575366179285907676484290242800750963728402379159530764155411266020721295222443659626271218581162264822517432095505138887858015868269225712667705939230583732511750156549497858599290076165889518724827328483567208899620418556070618065220588710945521485169665059260624008880253088213967207992556358150834237635399773759530607968934832036822387247421458187769478186257423650863405006842480560953495638916298162682671874242238660370416657214937240037666282736017323056274421893597770130229897939303579829026845367729278898567807414268423528096653892712407903059899182803659910296446230680107810263343445228902247890599614104974179215899723206135821176420790268857051010834195779966750425917617281786089305213297726008203301811992568881316527158077660851597839090820493495391378845401619993178248903257481085437676049198594447862169149074437600586309443506039730599557678061940718542800070141650147838235019341360738323371935634237890972592365992526725589330651534122243517020847027688665722258127904003445932462698399528016416275189000549751852032013564622500548913880948916251572811287834795631929528088060892600720653323500400345911762257547703647831907375463505424435325882286537345226055222800782463663984065116067408028824066123705111671953668955024627636248637060154911044205555285546374560634915616657040864728554714377509247499184343635667752287878349222078703116550040053228516133396080354171624566075762576868443426411709209695843383646218633106905960686685094943263086006346731014849391848061243193120598980344287943350330201526036480540496360809503852149320994146321699705444915184335827569516840149563200125289015109201192730230457353349002869220658038567961753792443834683250872089087631346465188721116442347288416327854174392682693062340386884027286352782299087575308967836662853227925186730369276477132227983507946897935129593700112250922158174677310854844451758231672834012604829141805323134088582078337690214001971544524439603954672490578944068167328324365050978711147518160393264171461944304945614695717772073622217497864224291291127469393711830399105874917018321812451933342978803749182542021349132306541352176673366317011626024645336530020096209083692631219039809273191864660909180484064373175022100749214630694777662408336584292878452872554834744992772891892372618240407436952269001950808398562952464618156178127697528569060540771845707319317064820310693088414669656039795652963346085965536100422991092366719655454443792956310555225547703186412069875106695895562600893908856057778048004213172896724156500410404058961109606982810897712061787519649555939559852593859291078568441292403597601154080281925466702190548892798806756031717379333380428574201583738160750523418218657270779141426696605209307254461344209818380723775330403875109880780493519079723866701281160762749995480696412631903800520756413701189338861008420062950157442076927293177016179560543486072963720817392070327979932555613860869896631565846917674228049620721513464697145763162671324204452067185793116073450947105150108050657453452797264215254524819395646277803965216523444095060694861755848923527003387685141114335667607617191380069843290608469677601579418670726985756071494692777287866016315846184414811642018473479404525334283017775808564461394766689405545418023328954150050119087945556870912944281726180722764992136528160339436230996003611801539164794516689048804654960561028346652651648185510853092170183464151632456462361879459814841889996352824250738193881480376309863158988894431192980484569151940666920200622776392648967268187820661530887900914186058629463619661163764222486773777943901558406535530858216222467069579302856204291893018786582837954068378143657195299844936679935439516120068727157796247494944151940107395539973613442567889921979323996930935316678050604475336536317618604541937080549670607086008213426741425444122334932685422330301573865632263087193361793630960132498528274683365196466715650477528817759355301545013114890712916965256772423317730063850471382447789680748684243088049068688028743297918106562071461455685830974689360764729841183541614681990204232477204419578646691191307256387925033955775965941970260097491479555977807342892664840435833659495003313870674144415677123759445406387960280034867130367317832759035247960440958514385804250857453137739020688268768399051947955229246365305942092397216684477787607453380378801241519580803229002621909520613437269691367810277478912114440092377544814847088437455379867364170320507161053283383379070100224563085564399044494173538282330867521565046863184812718108225354048818225365373928733977293326218212166624088974882324458044408234039979566580353154120984166326111725275397033893665968215791270534676248999075022736437823599136820095778047297468059418221392939840829173100272634291494971329195635730945847799346676358035215227006373791332981102529644669488732022338082533650418751978625369805087859857086476133394553666568427022190346378384821065837985839714448438855274579177799261134033082219575035870044048100012406414315542429868268812777372003286221371863812123208673501647591355262173169203466393678135056944564970138979267075775229446014040430743980387382743727048751866218079386432061280208093178770546081566266963120763115811400131636240102697614662386694198939308627186598173757962981962313309319002155198771587058866585662157274337423781950864278621707569751551694394786903756890242936551105841745238602217116611057976503265873231255616198621368507556175738426573812163585157238142417632430575329547984145248107647399208667217753908526547038594628633062358713756275332508694832984669062306712261494591879330077238603328490761829561099726374122182079472939468830277946761228416222796386469770497742845643815158615081306653832536499831265906704811658868559824091150972688731777275813160651135328898919556980261266449741214813388032556942844718422629860234488488075706459176327957554412485613741153109162988961034850542356015029794507976922636849467132436918967586008188623885962671363075055873368582448455360182686018403682218968132455186439266362781049648719237375852154578236754617323959523417650814553335601538544740847613162555822676273846941267621404630184020226526784128540822982429961682644407697678210396234482750421435577655257606931084098809155039370974053898594118185345374362873559322435109786272967396080246946862285425304887324759561000342927002649851562350806163800510324722103015090429677499985788733826165671198652195427870468821207671258879193244907835746246752221822871608280326016485184658051410946148253926671825091793790760352072793751782099610687452661013192524662771396739115412126839461894383716927684716728450922666570013956272489617530874725170158543000948777456031650472781768030890609333662246608062392076501944618379445417125973402482617903387148800168951529218153572383180603336267123109785294353743585312906787959547233427117505445080101798283670315627302168349857508553202074929080940386990294432525635008557647741257071723068566265410025567634711747465615528057096133908504123261220984881375665737567141968753202896821165482847078979839717650040824250493018354090433242181746093383050974575201023499796872951103383857411867275521802172473788567742293670112849321187788233805883855891634383382535418738098543903740756638534689204788909958947722912168300348639103682043176951008907280059708774312503136591432652116205651055278045606680551711312126524382133586867148981128463868751513568611099137415686432899921621796727296566452387277447183635797956569622285798328907379954369212360232035397541614370855718976326191534728039721539890108886436125274368235108481837652792059016089809218253112953930844625723706033066677096700001858360569846158444370313241897484764659881104767161044417410498214751916781988081453109868956004647708753909440859864120928259119864672323515203162264306235630063574503005738044914120567015300731434268307673390588565189339198238532902485720811523218424153338765722820551141606034886076892571836685395807279164227179668475110215872648383717061822787218065948466392098256004412320728486941791507387989446144100626726415739538090129775932781082129148396980961070314872880923567808968690628386865349894154180056881010969968483911319088446566330230078062251985055223395260401566374381354052902898508031513223189882482905653294035745921228312801398088081922473428462177110330361297676469699620481418163995642821160340519511004289786536890580709867806712818908987836500097499746104827819256125954553971396887331478446070847353253206326686061127622636792530299418255084730706409519409478305991284884497411451406277537113421226038227153306908671472765422705794271829048858008476841647446563265854204504821928547657590509173760256159022461255847756428687808818702155936344549681025848385550906202941620439346375185183225092818508317310366125994246059401524691382266918897346832822888156973752647745538094872938944013800857644727964875278970354353988421124920910168027525487476340692999305813296753415598896363965885031394779127024766942757155501520596523634321705342134891140916736330975179915833992494919734407432359205704996600444189983879966318195380811854092466074295377767308358304870473740081256131244138147403876422714710586082009345846977515502825368195440080782470120152072706354424586979212245794663355232680336030001004452752723487652750959845332484113054291306372855279376529914522479871244242652630126364436245998263321486734730960262112772061782749124528093529415488834206788919417812119885949995422160306011818060870789885160170984124976952565327648362262368493814139519861394309845876556995204385615868620826470241728248669632492491645041519791978772034197011162671440194927490649292105693102505812972306145176699835729445140074341150970435051430856890756473349401889075800469169632176490559595315057707173717265456533245003961149540690166266501203774519118218836372097738718620626771793865234216155389168501222736574840333584119621711187573238284025603305022354913904387733082032860029201902686407417181613895683559201755581245366358176762976988236871617253752834008095977981250391405741287565765659025723722627350452968629259194371359561820233094517349502455126501282167143009291076273076453023975440892812219012476139661291147142761019540304292265363722415509089461386185444844812946800571123834487038752529553772430480225148420634013547611366910853773585424260515372644809139894196876577902500842167760369409231248296303524577831910349716946905495673218691313247992954562898968377559410667082818186542183377937304357387520058915351019145576186565886238508818795057665636703061230397663936271449839819844262606184145390785858803257956429038848723999235738583979463722390595326055363961157942390661004995649622906895443932489072889510392167074384916583885374495275372360928141866946733520065434817995506094472916509022790578608289768923881827319465847469523997630014136772055122262836640751688178300471345496737335591817729714959375876555730624767489345273460674345611619957778553284396333190281880072956618327529147675982977831114728915445625204643336243036424059815715664890799239055072254003986731712777800526845246330941725272046417832469027098210518160896893258785741892446586721194041341304528827595205104457464244626970196138590785082735318237084187628786259952727481068146552531530296134370449573507143282124242413340357762511589025828632073647177647113171464528793656251391137875019869370326354931675754056741506586122088882827783257164083473350355973038400920278512845462990401050569107068619248554537604790454171566444514628264654749675690186695991685881754130453298562596711876197248087746266901645227188609463204866012112171907095970311487969496986574577313025009979723423585147865233563990455665500297221965925270962248859546592957809518109775167682490686262790924099403930665380619527544765202735176213036004101755949718631192758700833758484078721536912785936173713852286602095495495757088524482115426494218768996319628265011266402360668322682859091494840178204344509987384616159697421504755614707847997206713484268518519883231072497837007640703189699497307117333578338902093088924970219850023198505375465358747578367798830247594825243604816126668318248418080866838005432538855437111609885727819520908373783581939765254156931050692260915857095479555927423394886090652961891313833033634508613007301059845004810549151796342049677618119960137180216740861430129555686933432407139892206981884280797447282169810938002764366884561944478738868059032731804520236894501371465724505816668847408486775217992574956414546860287643184694455506669680250940821197402871692899820254006615357579857134988877169149727996181831121126311626285525972521701530309917274154716731752825121060508562081952923264955510924215579929724340072717480748515082808783988199857667061491095664314284241810464110977899506076607487225279665559005134627075207082289933550244028363925290488576503638728760836422642126710947672358457239915442257785273903818140837451201327203856402086669603110286011665407129350495294103046760726317830749762109754796577835619809818483925238555157755716347888493453836575798577696092303971921744664500204127435149526917444880497204093465937067018724907119824834557873501783125832131357819153959743858420030325044401820512747041892952946978613153875666680865453537414758606572336881753191978739617174323116067732527454925265505629688428428075780817598830704012071132068174492785075457731803430812512434221504806159838709858897811760992988265445772770770043154722106285703686628661241026543175180651823081351936190896933811978732700785398892819686070494085810685160369402147873770252035406154843076846666662781161452175519735842041028862230990311718596395177115955918632016109361953114528230235692893721078112695453087617488805607502710957304762416870396734966584962979816297630097516322507911481194331286993741407855457834061853236677495638545859252050779876585848538690399680883722560285303795913229831592754687227778475650278543270704467091907403359340993035177853748995720193576509888075333375994723203747190999505184183744667324943261909000132440262531417552145781442695376810603127048174644551509947625949186080454103211881635727695347900662928405548532892485671628477015403135797533388617951420316651362599237208536892638617276734564984306835130886669171434025002812889827677525385452658892932946241591763934611575519104516310303524484003810030865338959741906181403376007678763943396755783302384689927944221892290326569385328877226514889869600111771044044924288049692391554223662872073623420122099768351549726221788693791923240814893896842743513191357050409382650927868111363812952894191972926017704476125349463967666434140121546092639167654371667077717591730367950957308068166906044546745860561207269729897570517179727627332341849008821465590549196123065470941468786098025326304644931456989460626037696342704477356566844338504773095228731282922660856599401498624489059341208633574837382741523525182580224411106222354144966509935349023652754943736274254031336478819655345208142241854751614299227038074024628964954738796384557650912693960170614750041308069844983680327026782664524770552009797144293169170315651477063563941132133099092212321697789869069708287442242738169705389927752793033458160243203486410798858118166562509294102831724821240644894302006678000531744611021685902533377730580078809498585295713722356980158693080159262121041267512036744602569592134946894282365468791782759218422607229718001312617776354408233597715827773336605747071643187299778915069187350766183081817699036257759615115078939681221729975775740259115288634318435972154701848668229877554387799325916791123617769309170400432925580979765030093044113801711281881352687951279050713732384315013080806269229590586668965426743116940514791551764693480096892279587209083849232625569871034433127540723439636043306515950328422930790074072117174534370784941850123306476243388606304886428115905773214664642448625492646568462412150163059037685198672084158486175720361096414381555587937536855969030744364407349346302845324924753271826739664935107516276423565775953253494232278313878514014074703217847635422589949360672218271970647906522213256974293720991817582910386132241754768777411540437126822456133502875220906540900296661381164589099260165642759895673205779202834108037623697627088910737265333291345297481953493404295911476101495482910593172585571098178811152050922640760002257560714519094379892684842183785701677100995148353587414188826692426838586703388378032677112573245438848886604294395123584985358865815884474593819783433212266040628135955115917381454406328088843781271938414709300902187171966483222979751684477243491002643873511785881860043459283115006030883892456204575136753461037040624121178243781172023479553447343633789018917483887845471175258410633479848011647368356256209352675560751729774740946252523984626100205621237646188114990258625001632173663217492284145299136581972274864159215907862663053801921306733584664826702055314316789218887523172509413794652595399346848671542119656086141748229246791176781257140563349129526906769326874480227022695152924037993651656599703063847482490751348397035263254305509122920509505874099569745889587413169980149818593823069098012333249806577142674567157302186948298297917939442131809267752238029214760126272710726469534993151525608198233602804963886802199546361671568010510012222173671209172918271282201863628465368317843545186530352704936443436227896890420956599867042895824198195251725944373121943399290621231126720226222694401352834934054984553384675679964568632576311452464351684401182739278933541742451817414111837408057007438564621053002949779992772999835476101198149635967579969557354904644664565119258706967897664337356300901289145768217667441039819793834393440404610270093881748653678075916237363587569306904465784807875689124166947752605100862608393245667491783355853315225747609698501735340053152659109225471992864982513714864830110599198874073922664608319634073174644002871815038708341529059111540868342586662345085886393245839875324023709993256256496859757821664834660508228880484132734158305462613125134579077938671026899882317068359097545837249217183232257814782915795175346226858701705826496156440148417853377239025847590613378475287253044540011726562629196834453221418933271290486262583783868817843902555861590739731297074170476028019170557154765489696224900093371084894749204355646349929847625770610009559942227665635515928774465310465480523409152570194509370412462854431271086336857470789212789015492082448342950271009908610781815025726051550032231940015455537553578567171873968523536982299551438313627616917379078651130734292301917350630837880926382041602308047097530454585021176888918356692233640498524290637786461716419320492496917028320958484809121998097693181894235378530557621622138338396491765564657329280723474364232510808087608670937524135026426457457468446026696809500590899491283975875993422296185633815763564294795105594864815357484470983641906234055386981415749980562469832350394274410427490626694893205465665411785471154304697414340523476457956675754374357402703612295262788573663081436798569240259829985897793988109039944977783765538436659262685329018741358426729635880816809247053925233698920414705086115387390172139202323507502627710217546104011452066824889722246502765551493037277513001954057360614803020063754999805391119056215990498254392307866486131563723410178197698499609133867149113284566257704453504438205191889508387952219051767558666245590180513189909264049097656163934022333613872455909721874606909536053761296939002917174496233458366683377210117854166603260521670512997811797201164534329987356761356736169028284465474402300933535504269922009722012706850586914880075274318407183705980617661143454892960642741548326088164045390784218463356139226048383251656835177199188883431250558077374594860529848838568856982969023709014613662544387106982066409967879054339644489265299594891745233645648408698299157797861375773028887549540685498658713087951180956036263105447123515635659204835558648188711093955833595151594279515986902376750669533666071259308046208581395960666490647342511442365679874834659317400017292253235917745184050657998959539305964394735239765744785952523817894497991347514854905783308410245835120492855242373123019766733111068131022511357835000849264713493646139441389071957475957222878987951073900785864042932808452556086615132076602509057726388020918261572159826878535552814278458142084363599839604305248107720183650803520940724709426466979671033429240113226875003414921501309006198374997445667640244906782581447181949207647803217939148555380656486505435621475183672705163250152206831168281667311507250301915618153455738145443957828639441610538938471700238488472721699334463963075669590077530333876020729573605035589107020431434000030926588550720138683995837116828900850221024494549336570314257662605177552799549001673300876405079708083156595739901790968890412677147728606781576709638900704734813420776335992743411277100473062812013502393718015279979994110118483354513587891574878060945714746636516417470151835826968429743790520422608832021213564571694949398919226633719909579471284037104079019804607324691676528237905846996221256722353713251407683054429500089341775985793362741187621481506868904756917607808298283369139673213113371420463767375297989083756896128086712083423779115413111139154018640298561467190253565373013430811405690763813665511855443097658015454256751092931133193630376223624246160188264894621752650251954085971079019358282272193619700379733482748302484831220666462720181061303179585978635947263284651650986752048120361007599382443738321008804940559430836352968682417916106384383501693473932840142982223958438532123006145449042406969004517923258282587218483303754074656827410006824730057650597589000721606660205645855875744193724717890623139035864657431911327098904164614522827433417433703691749148152975590517935305921427750649877162119746136363738428738453073121575584094786631177577612756812081600498328885960235360024219214603862511541153769512708578538601257007002166067032566599406656158162254296286835041506133330949608289601678923260311682653320195916182607591220797373005718508897218028272554179004518685652971426723751504221103980341050136405132280531504317882146121970457752014062098046537236254639005877467965549933230114890067476751535114914406129278944397982905914697211986017911023983504529821610504769875954842627704224218873194227781461829318975324014191158934844012538090417886403516165417189207606050734497556360408080533091711951445081544046829963810876448767821781860768194874626825526181954985860329419455862337919622474737593063236070561819404731477538189284568847440593482843177171440640333070886235691325504143629108055713696045728383703288030497510980513612140439425014926063311599757976279876276010325000704231863689726732536075330686965113387758508761765629445011384352428511413907906361417797435583940237920977688149972752007794195978436211010342822386428584914839559112989596774706048882432750072738490558888860292819739671150774648671806747085783605530126223372829938094314457112279445628740496443455290850477403955728331785571148306323272088156584755031299846611519515721371954580620213034509820116264479609839189121421607181006964308989091620211105498464349728114518168093224499601956264696395881438610099200396015077147617113450018645808208670010902061035501289610560660673797897194285031279002622667041300813063561670682611791684629877149519090810007949134277698605905046716813864033424531631498027272654144448458816473705681647993090768151603451604933114842455631764287238070313594728193024924731529631340615740470635675057222422853336356413314770586636716110183142741663348723889107596735430725015984674405799808810932271728434536643276053976988864958314717766631943017592961967545449820885412225117228903963631169511539832640155231519398108699675886402238493945412385658743352091916388988902990052282720411903922107701477227698129805944223892813200617411986469973783253228240471718315922497359762206303617942460916501175104016234257699411675981265714776129025091986368711347702696927198053165081154257417101529751819162014184730912682268591619514485258455724495296430365413994190900878351126736724554546994909711675394626869619333278487358384796517838596618476892404640495512113135236503573098351741339295119003155931912738820355405897465094194329010301358813811725926518114712166059807097788213922364601991476713552572393702548764648514004687115929385525175762321046191127531977020164388672465192447161737351677359095547118752825712080900352940468323548340715084720443328149818383519157351417038266981666496008099428214933973204415750003758630458228390179110492072572892670332586640029051328040357380134260852731415290323079484532512923853980157647807653931467012506678228223671587929491103278218006861582565821382601475965815825097982955352581444299021476580820717022983991759005636813395069316075810323709301963160629137642888032207183859639351540705172616146003067182705687715259342243529605661948693098879757063217371475604389642381601919667597217805842809744174719552325576526028379325612694168093456410406235561866274392150857423091029609431677209892387437945498644972215281271833086812052513758695589134110178428392655554229455373684386420087580036691576861780483634144870177805344573960838983396256901695799736646450720673141839933684850850446744982349106602858602247764080515952287143572235804210659295145223539491554838669643580953681046225707283426896051168210143508085541775393527563369710982589054435932868291975888433432815297330111757389622370053210733483212902960199756722015173217757726374352389027348391629456507905844760961409151313089882330739870294981746531894569986738088102340980049519493093751763453951937623911002359304210759585531939480052629645737442366400747827809999488289570456746808525504292470089655313506091030637527268785520199965145418337669376507828323454592431723791526166347440293881973766133093787756579694230017606430170231415253454094221647448329773507511733208554888887587507973622096072204667298207562313034625975515293432046602174661149816426680680558167467146390854979449383828243296569810316842825242034589155048684750740906771062024029474853784374797141429559062835346842283856730424156146022076314094099767007263612572276884463654927966186255356641468863868092356303258649346219104832865323243320700637541905530910485553767284100164418702200453282841561762827055864926549173455331107588945565583946601153620832697534981992980712632338146029554866797188397544627678442218406002222360725413964098154708240949113727509118016793961015914224948894866270536846896415744018327794472327823437609189192724014212938466371973781788582890835155048163843519881520208460606963430908924708534155946710265832254900769110255721859931773211701745413869473845000749323596001895350967805018096559201326436706440027237977883767070628037725774534584696110363996256900410287349044845780003752912144926463893806838814404912578999440433906589146085638202382753238405710829405961591191772073059394432641838160737861362486133841865501847766460521447787163267156767317130735723038758362984945291698299738907266370581767288821455523833038136798216003603653677853248807183694383062743715278999567334048389686758295441815613426819215387765705926181929026586091820863468675368675761636108111814608495740556692352239351922247092903348844264868160302753226837788359997338326210737615661801158091547847301309972497668602887394901243426352259471981676847301736031244678277076623667770351135547839937495502609310460045334529844179663753858690208802110471278058350314551587736893925068265735982333674876788571386687757172885806996082047793595795469059175466806692274985601923418884697184156407968260862436303120534486725909018513558696364781746326219837472138497739419475599745254363146443484256434047766255106660967855461014704641271388698007844608205070226862512974135041885653519437379047651751764913521117532387926306407521264246427252517435598978739913905501233090866026310178503166381081612496112120992119862026310914688383154209923450884451984116270316287416775663762021357509702553107945191238462852340397254382671363863885916553890598843626150608974633547812062349564582952553727830131440266622361305154690505464943991554167403666228603276977615556431812622204032594095122624624712818253253700756790617619174582854855945881902601660271295136028774829244855184023507379919661070702424011077173292759341384072081134282288162362048702119509897240849913058150291899632454838817963516172467069130872273506442447998528599272734169561336564553884746703955550293892991043954396160499091081061743414178528629324960071629812117589406149014950492773643822353979605435443163770102566767632186114464510857785367261125411380395914619016158298594151454643686956959855179901919704679415733270738756256903882536365061964436108163189672387516853556924983904227416597089858416872308001320496882289980294545440159713291170192488623425497001022965435859075769409523246854264964276536677805049738048711735715020804759884921210790022343196747989522251049459798090282987872476536989426864422413767984671501962990564135920516914781630690904839501237102189994910794248659364499104536933518403241756178690416058596568361951165412674754184531329549083816021350238455711158330139035780028866837948327576867940110757098977694070634511865476321933296789440778611850088983318051841649103556437946049587244526167035111446468010914193002741981820476265604221434483962612519025336214733517092176152159423338051622283668988495474935877201881245293841316693775972929563336367972291928205273172409520537833038187831513182590673694859357242048302466014731598764973207080021186500254969089409389895261037004123418573607490659853713029150424003527983218480334444652122043398241869495641108632915628583788936745625290557958764817492610735010834329690138190980814439642307999180161535622660405544955257035782630233546079599973051770297769277676322261239764562647248741476942676383302306041816540921372677086675835353570768521418282545845956122252237960485116211547552190821922275207173171886658993969119592907035137793497591346929927791725720942328169420763134174185096909977662809305738903394959917156498158443052298309148378524863699940765632785442380019128366394718051180805927702309646519427840777361578154403018100600965762710378473397337345181045681864801586422652981773741239045239083209311279895569906469741352133841221126765448030339267153944081368365892940905744914888312889396071610941420072250394929457207753221286954756078707488916310871487511702369250130694535965435054665586533003727018928388215045212058355878600538023119500996418388354057484099801397715925478422619248823147299833262148525816113487247574322573453547404033614997553948594793555718762559489626110707504147045801995719551639163909683856371549467766412844314829081078462887700215772796644220814477556063489123117088218309972888571509354809440212856489330152846594478048631558823067990083117149163568324877260231172189222853185809419981710481201511445515526263770889824440522041417238373776288367958073713271926526440322872918621424789158267772518579933905374877992232658908995145318216461206613929351869624865695934053391637481461553834033591357244058758392136841600346381779097154074821563829085918232380808177343715353531012148537709228259063207106821298852675777714934242598231828070994771340887917999351268069577932285839994855926562224276470392680755616008367020956979632508865398256243418497484715831298025074337423208717079571494786780618597717086804123506887470758308044587701476102677386147395056320276805944277859469580734965423957896030552515968435524906867878933093079695488411851778977826301981011404866689540854313071735472154328136406606897219067431551904477582559466244236868231863803812802057837370683593649434987606766448226978286828431086233256340448804254232805437590839275038992489021294067595187189026470092300146870753426432100330268426404964165058923398505463546164380881034767432678153034858635552084492469553839767999654172032405480968738886378612207808403127552719012881539858997053468344139160067555773467505730556319180131122008743548532696801086559881851098692772609543572141507965906400551724782430716581888642321097841787700367200614693245063072930854720050951238368972465908549243420283704181107264013302233372654232257751187347035958327592895596830858403439985466250007764258322531162771489258477248560711405140235465664059949473768087515235808864954062208247601538032226104022731004100898503081185779000167803299126048686732675982270411887076546071768247629536144894123739127616403471702588745449319059045164933938624852644462648538897245363518360639650766257922393516861081628329424643223899261232832870008817897758506296245291111652520678934542236553080039011899894746037274089030812797784258282730619859933186669252251820296475400167465246858126455309933348957647475842124637632105033140765210007669688263765938850242224326688701631495463767461877778795129033459709292636764037591501025501302819809047126505297814299032722648082047370684803192528274147655607131735280997583262737001650980688957053983217611897596736838152845791384526239001149329032945844018609089454563933040174626380987708567179643560099516364239969834307072431839615621038904767064187530889179773633106847399270461881111007108056591303506170220600705980414106952124335504171468384705717357883698654119966026478876782703799001813709476728967179193790957572342058233573472368693070797736656350430439941720488830123138923493770819797212276422710389415443886102122090745762938630826152974493055479425235050211815853521258726956271057808391641954059949508171981392452247605329033272975932154549552163522389382864131928424724942442332809505811246084819991001028510931886622287536622387438598845756397461033918917050065723393444537695107551465904329826381332461548668331326400372035643761280601012093337510428502883667215535911666279110478684135628121581654108241710659440968396367849030512666956631701748628406550855744139383006291266280800256879838154229405949856159197316775860482293172893735740322117241628066444768459458200197571635203636694508111625653616363477258127636818413511106384230333688809096354180169386749637729630204552392904591739565007503476781442496859125162721556655050482006504718254769174566680255408083339348504250190290701246046500199738920749304161951331154687921637123187911492181057561660877626890481220685110044795910907942681790089892607404445236364519099594396265526483960547012173185492455831636112198539802255665972655716915471109446903069303541527719694648317057077535520889636945054811008784955074636200044467509620855652365390039279519908569096078258996597153562963505520585769677208054941978142328906927334421239009940594100559007698624678380013554996202957170687564342171450843278852469659971080203032445300607578806373782964694503797972225948782647123262552910593613811466271103976397444443405652584447311168102892519007710790687553689635964884862019369285332836455886398148227679972751937919387132021771092170343453242070062082037647310034543370522448898835208426257983501958276922135027380095418684206673582219678111669004759389597766481835264140821987464564947206479769224007275222257604824468045378514478361309942258496818675324505900913402046684095003386943985642028311804034338491344025154629558086445600796014320119618922755910461778488388838370079190802983267167439283496670883346044545840468616505578434945577770682874417645664119468206399852724674367336200849426281874774153284407804274571488994317942666294060976120301610798864818749639153648887301588573221529994928874141351909420928775303848135222230793931519712528695854903754692006453239144958043938317275081428486850285621955002911423620448540956918556416678144538809647258406826203948868110892332404862813082032463173466555268742564546489830886814991289420172609547119617211247850024697182386860277895808806947035373216269925301097029758999568259396316061271350804227553266111442637737546544295880056396244783642614683882902007220618840233276109792461751890197488087579921070126956134255772683441435333490547773202243808703680370898113295728060023915318153385983509456790425566469995205228363870124605390565120065300388865214533442061767026679261917063689064837245045841495282764202818377003061861440027070012477923530605369585439697218149201805353939652292016987192953108040695173944863273414498377535770202597973679912821700869943884317737795184791710979872972518632488899920490129836086356971953923783693551149358522880364843985601341303537017964335159540974744057756849867642867843452310058163569183764355583861249318246087793496012710089414017574250647886298431401596386123189015676882425355807810236088525764417414139965533514230017587541285215205163119978632462179784019483774261266563382716911525063564276928117275684171333624583037531100392184536888182470987040709932782486934464963527932123079188072351817245083103580720397952599311298384555894223435486094284316081111730504025422602278944137159558436960376261387462286909236571263016549957817244657094425102899216560246492069150213698748345202826324737245245034287637935783408108127021809239328649543274018449916820448994715854975520106861493073416784077887147819164781614934489811537778773838743112537783804739982518199829245305412480052101511183530426694424894707439091336140126954200079090413464869749583296792744522312544612979189488500714136698687776078687959603726748741848643257833811761515138224329687500343362831885009285265130751227181202021614452404435487876809041048064198866624548615130849206788637447937227460010801606727564615387902030512302489845784700246541917357540023366894810729437555566372357251703711163084959074634156737605493789170226845821435684374737033422372524389358304352509690705544815296439858647372354594495364518530131897365027780891127305429406615188302131070346532619043438487726084000909699593325043248893902134036685835782983761220330771972274269247576453535825498282189765152299083521868288221022927827518825509229135219352047383605545986702835895126106559073695339607944227664844617355890641855223059294476387251209998741575493790178326569640230152018741910454688311030280901906155181953497337440175984228411170516628960752663753013492839981149375897941502258370973104456340199941563784622502812203231926275392620842090936820276543364869339219597351686686869115292899110757579909930570138886557098856027163783351413790985883421990577206905601522604077065119630113110033116934401975655932241671603689025976485222278503667656495080098871147315084398109947753058483039722857974056978493416323216025369473514532679130586982586610859290874355603389970303776513396592951667170375137293558567439672771016553058832483376724921685298245010418672891820882156186050772696012526490377122531363105992500232456577090340004128177703682693256740389423788228861250246914321187286154884092003705971034931894432585478672742956625700492428228514659710076039471922002460739995260310861172689891061008810813099841236519320737378802924814742265893564746889105377353451041049795848681315681224573912527462525842243196790630624551246761275785964596667876001569164876171641096816447530120513985375363508588526296668071936300105791872995926666980423451870586945496710108264655488077848132721090552826308162447038779132257894279430244101368957064967403354239833524729455899074462578157522811982640891848904157142333918271657326455882989305254246641276324909428011357659335913268825270762076738648000662453172851714504816817984512340809206939881931946311937463743586650272432701607853020050946717641950381760537477191780905411273156103848782022584405252867938383833417694303296134132013938053257179578323702075429086302756668945917830427633555678886205662977416012558669986803426308501135187829892727802489768385279788192697833076597941178576845231750120486971752239818168471361894694800771051363025249048088433941904407480110463130490623605025560350770469334418695666126868875763837037449697219088134576943595482759154319539307766979030095253481734099266648438025502360972991077318401111915739737309006232469680677938442774740809889785851501911243369326432490502405550862990629659776481135437441418880334435406113923592177225208646356210874067782481928048109165809581491741762268585164359724937733013321706923793954010121773875507749236949078919102791703309033069698114777932503647353841940463880157639786797976422883672698554970870555775513314062361731254581004789218781022823650661573698736800308513507850153439677352272232593028125640460650246907565386979430600065320964914308218224014018006144947508218796795080628208123027763112694312708678601875783897932199844247976312320072266446640093538249981623833420646817816128825679106234473406723340049948712091666567698580311551072957262172157899016129968588076746749346738599113657629362658421142224107670384146634325477517304830324220529514671961582487515447028086360868080181381337795384885481515369778799250981880785848916743937001353824784665599229178162013638117902045368388788420290331517342000622713777406008725154097171884575463302662410108644465767755587275161878028049384555013659523383137220940213941554809562811534954097852470847552988836574505343143723056723909645337998710362076089175659705804111444966760195957951293038981741483544907929987329503929994212646217225369256818236771991307820844860063817178704789651550245681962936760080392117086114214455574106303911981907258115344466184349119791360099215545444660201216451891027283114587888097027643311070122505715698363680766287617382771880526974384021662583858503594627498349659439501895232711964485990402998919016694010466492213397754470115155320089570343789258022750104190756497514635440949771033585685997543513631227727600061722764804872581822727828097444906248236168593722646628820918975309688851989727735661220325494693076970901022545237502323419160186617590519348069724649195665057481213506277701554981595163330514288501726507000632860211207576565121948814466659038209024443203283946869568695930262940362669908587072406553294602263858999442500147306147545444116554975083734398930245526580037166649703488553519190366910782971484939251474953521258443604272007615182168740700426811674155533161955760333397792175244420645018241650987753976703838907763208259386857671450115513536624654001166325801874971963340257723078754163165357647832275440247001662531594491370890282413639478607528339330894419457109041109350610169884631756952039339366254694456292160276630297067218232025992808027702910528582835268404122190526417345152188964975625886250234610866438663242640013054264742594969720143220118326544754692152637809625152775133735787906110465217618503562252359359225621883310294234532273487752400524105668079191061040500404979918584908257946667916687026611550718877463487805115140236282742835423048613797692973200164463184438005371725639544647799586503602513993439588568133631370171616994788126923939815367785802412818174250391939931137965265398634272726732317948488943921647998318328769606418146990211871410522892184135778667850526426507283244227059686993433003776139462215550168795464021562677520295592199105516806490326713199725271426111030840864012730016883630425726014604873394891998790217914482187239179531714321193139710718075644532390163712149481548119963572911204415664333074265106456456336526689348508361555507922787581220136454819123689936631319233216433884982868081946414195726312847953521987636488497040834913852331199916380717533189968832081947306041439154205674878988038797649511094479000528586582357793259110279765164861825420989903328525389083676251815024526887329016039178675460505016295878060226294950569752878976781612227645108171160956273144680756513376966058269391021589897188543606463368714377380239323608606619318967049127083119511933972245734116600946728265989863038544957527646683233056245064402014393583634124487625248983096751743062262265468743527091221141138587995489540405001397680275474757664937557347507784419645843133522383672798443599255968501926060354420045167936007145536767572718403230235047223239779009162175497688812107502041547816648819800861762483437724340705640861445502621996100246777347038340382983786859504786046955888979856643096737585459460058505818908419979186875432161510207844256129068438393379933152649331380951737657811252858448462854647129137131917370292230010230018477743481101382965957159326326643419171938970361585692062050054000216310319002114886707960403798570558144189177092130624738624090923195542988739626007589361163186661879927181539331836188531209940237004024836734913651552327315152080338327797147952691847124288890420186497969064319185477948639383133144452920852287422871315576477502893847645671911758957004538081807648862924107312582381629617567622300441219204861265049356629855451428856874998866953201647959891605802231692023471148914201152826174321462928004023099646499159279853326421545596680978036132080785202800851162123574953601892386906642269719793373059555642232308668387116297491736306225419615067964444294391493843755299100057602244115098039260662078435917979943102771760643249610518215649812784766022570743677099166138378979208486602422665421667966707727602891809804546970417498037049618341609196729978285468800581926193882155290205707091088764645604956318427001385510055906290977140109161318467408417134502221085015882020130603627001738786501231205473793150388806610494918696340401030417050848383690203985026031761663498039962661506891663250022187016496692107038796715290997887137367899287543996499597016065618612005783607696268512710495059787963495137675271590778813024423193390015539955635844076132659710227719596773001335775456002140748059386201741008005608166629296911586488312466829512703572193437569644960037098613477548297965168425721514488070202819265196451672796361390884640440078727888812741110007461012282631131531079852509053683111602622317399189214815697298426440894219705711744527390127980917871829376879742163630505096309779593627502740396463853124781779551764456479943845381835919668322108603533049878621972545052745353110618723784255750197195179083463345482880675079888171217226714011669985365796159806386053355736039346644156417301684911596902601914481664038131334730894119766068026275160967790167558595950383055391744667488786952729985046674677360553854054357526848073982316860876501528800747500199130680770006808358885879398810912957195066587137660039804757001571903698107933560394557112760374736135186178362175529192040147882423649606549534576329589958660102473876158084364766031525493328676956722768946371313162467034208491826025126405341391301194124528488006568801017901715264918177515140850645703327027535848712621913296648056843232398790799537507338447469507981388630448960732175538361272243747949634964000621554195158675518652293836218312297014100397978852563629629462194614314102263741096845947572635643217183753350769742490848361359200268738131665372302490037127782845786768996620832572475104768867919644071149896879921762846801057748817331725480366223260169228537852630798790105352471099648597891357266953611726962173032922978517569555097801251805476948844887947523768388957467302373237145386266511193413120219956329535654507456808368531291674861086983608799086091898874991187755913000514777314753559908727361146589431469766009688922201047389220646025630602211436532334666792677519115670194733526849538833018505868768052444618079467725088363261303457930390090792628347419194818216339524228705282176611337015423799039480360852292072472175249571462027223113740227948173661742950317944753570625341180048266227677070540433510573065224263671694212712216082650649693695482171266781163401288385147474478718119284452801623797889836757858997811572695077579462547516256677968043897106818850755469255132260190399307747192630158319403556793351120064995411748432212434101326482718406247549040959068043424677282669235838720826388761072365212484977795240423274009051784122729189690763527394163723349960617503085758861815447372822173175945150599893599626615551045695565215879865467139468561659005337716839197805481679641298246656874828955154013022007655205712674113214444438927071907212577055529533759476787525761554387733442133183160744532913443291068005862458238741294225524897285247078982581802244542468386400051712204299466626516717363957651473657837305732836114117896359463660423964535729712617430927530326685805818681141963038191229586573182656047467645882979875686293481980262347383485901550326768440479531828388425790005039450400349905387167217802202903242372181949223859884887060991558149409879459544727687799132909115257327571423449315584060020002097148892338415270432464950867740489296838614702315554215734041567410086898316726766668285361198111485679526641480056666589051551469165380260315566993104916309099525156005305887356515993188098368252719629368188337357127137208171482952303169161225600416320316334051584476591433445040018022062882203197134764293618410273589191649838215784617842846757320324003583841036878822609326381141444241762105626549026779740289265678910137758442225205319693212996246922955835340842992286050231667163443586602568984311118749482189093371005684422225860295941472971533423078069485304427157246963325120433858958392640157861749761659687003667359010740043930828947930694029230791063761440501777429100590446442046175023459770913809198425914383797680866596462314489350074837057074083514435857088682596997795370672589890385336620198477006213662215253277333272272764417909715970996031302849530599432518427841450604603663131239043921253196088184033061966269311768891698081784726255751034345588296990912396371204047127514999357443003159902018677704061170447156980693310316078988807305272257341106203379824716093420201608153728080089043235317199137028635515880111383480459449650732775020649305665440934609712155680012682174361343270071273368622806536598781435671155732789322999084005376197811685195024383958404396571783444985588217680149974952505765088629524730609832071160189342767950433125634915296095383973712791986471384597335063286278815099822163161742444523262581159983498262108693109466924983118459916736941607891293885117811026093411192327233341361611537944419791211148486603432820310717181706676573507283686449820901548288956613154373320067435601412971824421375378732391270750642951179936514039258778192410013777388214244766824786365687706409464463582806073822075666509165493835984381794266306756890270545288686123799846954334657524217189514789000001772873552910031403241699203119784455532728408859732398789984621099290443645620146997623289514546827673137363135864323500228103333025639516346765202493734227960670629473640878721929291245003644589946352123455156101492630053376084595275181169246177498873749089248386397515241603188974161950874279460510480377558964937045911185687802715908435416439962928454428716977163495581539169061832144282723617188183112964530270160315156676418824058787432750836488336242449529823064543274767960103729910958889778534222194262134652151831558847895554921465429295417020204738408741835965212069936979911384816518905222260567541299660973194729160237487030287224750409167386899742513139486731348161250210477167126344877711654841570418031926190011153441426018554595419070440356054227831626222806329892639940114493765365619359610587829473441995413737006439246581871248126102403896457401098340412136832739756364418768110490239223988422956923996711734980602900364365829523952991749925721426910061532389232563613705810316006685175153390194502023256820113750786300842842048879232165183245570365001090697005849753508030820697103638196985648055419858118907344365298671230083181075742506288686243628952142639819945661728406685508421695692502737229989079052580843079892981289363439867691678895212345320130930010341174547064071959654361425750611976763559944055584412681012913127240545561592764720065733759330750021804735477455377017325895832501782061480888737061624287478431100266689718067757582817338186815919457840105786642086653570490373431176396109970271566070205160443359023022670249779420976178956083210592315060507403898629312708788453405332145462246254658431250995014260602087640168220350677460357889743985670244828228399318080576784594867486419783462523479851750768584094145504732523275695298997466251484129588493188101489173793604100055774454389528919813693468305448481079057451790943774989399044618701267530419691485210054320079523730674294561447884004660789519898258919780755296330846314227750989500754447762116476012549862673831694518943627089703876222414541362874865458164426536743325831254392960753470669807365058805113864645635587935684631958840790266249979128899819938666180928208082282635166320034085459148894439192723146343547257705012178902050765300565013534793246596337437547924512410583734379472911609894320639252408117015959066517723481499707795483730795050074506074598897997989748912273765052014985918730386812219723870291882553457762593390237454000556713628353587053769880509320200941433084555135670201479368582935498934319228976530113509559031686772263791060161829639648495121135818642115005432194480794819271978173749845784447691487581678764192173591609901093291993297922849572739391014956721785905421950951700639370266254575763603001299583227147474849011709158288112396523277072125871886325315164317256400404983779934711690932652007927461451367813458373611440832907917027754834027591617597444517978282459211653347471894623857247688211362385539077057828742000587624624747961830383003122077070427632537853823062182639369579287607140492920286374128320562819098810213471351521213003766468834800912464802896961298320316747190952964480896499214520243083159567329932252510485477068921277028124138272722101544694981502761587334943635784993307070826425655631466223879329306663401284827714957026180350700563589404599466885361668196318093946009530818496517315100000041711623730846867667878072426388952806832079375232400463748810407037338137844234461260774418713120397044105963068235288619151546766488637420141342580257661157887344435489910160902114161256030267808734177646757975997991078435485273897708307834372224069818681425877360301842873195522128997544727721979892958145938371628600373067614812015406021226193098686594514573373316966897439713751862136559739143117523542007801008264459231849062469807261190618528945571209939828881195533970454716543191859031242417049081128160004803467277347760446493351442383014517083792756095310132119554748446944941725920132303416477085952856422030007282758106419859558029480775866565233373311221371865519272044703179709932361432132372067607621669411111560211457326646982819949778216091696944078382835604973803140067317230272908584052832447113708552988041066413919410047543357509468418175289139770994740087756942252505124663208704992412876324693423500061675579417785599933883695174677107841662424891346743884669913179087571849603927014706070162855160663188633703140046897184094818345621874771011442563769431732121351438646753048054642798835327123303597851189114675660509076388227788907512987756272337117471201933799632757189920869891605486807092473916708521387350020148296754874493305339159417098835043767563177737171174533857252706848566073902667514513792212530388079190577340148501732286583836960535550028899860434804853559035760668295806502238395959721322573031064063592793225323685614094732341730937752266670196233917854725155775098641291326465306823154900547879667788898012237794169886726009120043523363394622326954672403631658257766521297953986197658842777608787716770654627346021238766346376873635088720923500233017376134437336545113661156330164322781895597269776290165989919302440689220643156214113401666066054412510814385581240667038122754612475761624700165428028114449444676224061668655810923745742264807329270188900359282496980573532820169434147014755279774120500056737432300128874369398541605974356238181412267831591298242128904751718343119376651319042425398876425202307653669700751909528610088198565191095353856005461751610344340128599685833719870753952465955626010860388786571793591914364442329447798608826092613505012554644928163944779656101672271549943357050422515019987316935043767854141685391396951330062071713781776429474941475355680016141767487786561763473875419753259142048035192007323615454021329984991471594534749579142251796968610286326359018083265393319594037544088654081823187559738787258080329854215024575338493329427522591368895895360666978445610799911450378030641255522015693899770313286795621238817587218984370334116653815541281245921002111807175816017604885754458753466900167715799168055687248863934705437879491704112433935534480254265177729783383561926533741244568714311878621879476280491118290553013356359928682985708948789172401780471471748917868186721740159463246207321491143513627237147374585956068670224616187824480840210934550149136201786561332922227140174539748440355810003085244231909698977396586818869655111564560967000887974530670135407138092501983168216289559104134805811538192565147940776366775095576834034030871343200483038300256665346816175519874756785356791932534130022187562530308597934240058756819397302461942263674311565817003196035318526772067008169099261483079482365308592461858723946595333761256442454272685442829691910088247388113085238248832975039510160664630178842156021825142358720318673258706030179673230896145190011599850874689333019162629479312852770805645172793636738308387581982944883982337581739596043020461505424872693754945139416165079406457122309771471529994797191148938886497506963195253733961789037907015136733961378356216109676153231925883388874448448537440072837505678019916715803094481886985062514661690935688938498116721992169125199839686134021337550400027552805456979742399662594114499535744108404159559179806732761261101866416865877567075801906419226550380446852992851154629684404374345454953951494052185233303600948554772025503717093864539348504186882104106558516056162161319419147306714601379912185897805198770255250985531887980846195186894325344046344306884264936558818315597298357457844232503963104884053544967280197753910219048651440711647892017028077789134187765415899457728803896573728167300776369598762296075975636198734858723968398830625891288016756133099397908138554220723190398248994115669447541578944026187672966847681422766869134893450756620512510895547163000258267893700030470798627776038714602438466663119127622495381420601104987344569301077058549282773736632844076511845099032248106913546104533000490941116285048539378146525260636515897463978748939969036587794517926386722849590928018894626031468615709101903560646709500083304489999852096901233447765075987243918038318392406671166246886985327452095994600019494552289093940420397411685647883021906310204762031306458010605597362475370417585256047047507762346343693171299964984247095057064520077098905836757982729068189690988987783174841511517843345905473126557352858706304574391785836988010078946081778963514463934751296362137432422313926640955582510549812491254085452138180145555984346570084123525444738366056459628274261982863546169280349925919258790859025848969435054511876712079324369223953221445312679147527744729845087188683954916047712565909828088930692570593756864518363014418491553223524299611204348702225819069913211673733055133956115233610697825424303516643286584183234127502442907996665857480241273783131240919630478407177231279460239808912728412142872929765868290030137191996547643751387954085528684786388005840449877317233789240698854222737563830790737598427335068658691689397412532623095756631351166028684000131457877436698110420482337568050179377066806263865587395881950072288450817712990376434482793499682652604306103116241528858028045853655524843376612891588616922711908471084210358816118888722473699290163200043652439725363148554974047860350482706978576392161616968405134373048064875293014462747720378469566027682080991736781830523776894222439522947669867025006688095672237161016803833348112250256681369260874577992314599877872306901101781063068279760899185600315749254847995231246271883197791923839336174617176308895716541215969254844776253479151828173145481915807212135407199789700314380624763560724665086554429803635282366576143953866622841499785545247833177594459008418312000345185671993136228186901735401356776795746534238310182818747200432651063119114843616618052832864607455124771973262764029116472020703244942271436556516496959977362058510966861940738956352003341139483713913543995553559000309741336441289830847854221598116498013491442451953594083612558689673230655680242349390465499504666904582624799226785436605821343730880412533134344624790525480724074584734823584627096021669949447451943270815352925710383783488713534144682563990421973037639989611760712931834880813707103686871093857040675726365029095976845515993862329485776218332908605327418608227050514185795254607593021683295982311145340295489744888462155943577878185910460316525021202822761314760438514156293815996756351437261815512434319451566659275078956334251800578944012414295120963265734682912649204455358937264541006836152110677455098001217038215278527819563516654853785002824504617897485294045487712241416296996068434734633273975961520953370533474912112675450124320833345875115020720839525307923467735087222760344623203084096659482245056689594116058456267223128944148383007955927613965832209892574820311043377928543632917186666025579695360547914185550598536600805206126010937236212539222745614279091783771649429470228895946972071297384930655237058668322559907262840473468702820626222896814389812224702307366404525098940630282146126981293600543494194600655304377322219814117801898728386968950107907957921067172504979185822805123753028022638738039741500576474054422437160748351132651764668667427689504073713015576192461679203480801988035490177463231243587844385487314799466707743509140784602797859253287640427166569420372354366236890712852230593567514420389891340129862280375045047305190031168243497227202937537074173468766380352675738851531735936735489095337793226584123497190905369383104536132370680331939577427637369107720593207234231149133874262443311553672153374366142745835297068230447325321343930324122091729612781365178892519793590887090083986074969532068947939517359461627350177038957302319112764136254466599938142634800848564647781127246151718113998459123449287252618284926845441122007111859815046614398041360658664134904514022188141678964030008730353318682477479533510900212765400962633277185799804727539877901912406087624417463589560325016073814860615826945734289996685905046721042802439815148286843499500112488258495375644964379844305817525217490573224727525867973954209827867033539262305868100377322593165714380317992207333490384238383041615615086072024582355991246910109825761482362181423521881515364362613450195688007244674889199930228467136966420488939496625745198548534850906481652806226314873701546201788807196104070150396377522700819907060929238606628539673870828156895653596606052182996734273852541473467520441856131705814205434602279195902758619872833554255955956586026388033713703422263008613083369689876554552512786384517920660283400956824491332299421890226745986452321396040479088185314378372618629301044112519005512870150869292280150244033742234393163585281051242417054295759926203687355625105390837761998715792834008457206103838912504255195656589604108112895897802297348565762887031360876754891587028076978626113093752939593695819923307682875551792688393489004738095775976069797879553748184413224445701322903210184327701040749181281219256507148608856734403617738939832771534984076173407584872161958300492475111495818770580733086041044264302454452684397351816374023925310715005949685859844001500901366380599059016124851118871382630758944121562255719173224813089638949261121752673314097218983691151299196399796483627218257367419117225340713717932745057321343717247385845530716588569484650752601685481038141244545323645880115608086475075064838215632327396698464760794827139460414294740253490659118826579198680969169383019196615961428284801694193052881447283220681745956055638255559041732171219461266498359930946143777729018890693549241858267290237049044151103359190425069239195001244526333162017064105347106854820420413994271470762269635961993341216961456849456805090519107227830909880451106788896941523686642128056387930825265764772448099502211824311715856452773935789577886448631871514699627643998853024128497038851216607567665984642487194022999345000335267641363102904959796429867130850347357988932773384396401943335196972765316351076456988821097643150879893808322416230796696785807527836006660043910329112106590206044477690219336968484960455023669558712682680827881012635147274696657567121495868193047361839888269017187691828219852128655868209456249661402410481656660837933672109304590093338160288434947924853726422214277141236517471827430811883195916753370256163762655538114395133198592707167498404676680603310493427271696177843299696690984228185443790943824955975369295443634341328589243307127839937157502266003318947160038675166452540748281415196830001318407300557280086524214792542969060372514336472157743909904211376954163445551820530039035558938953584629892457523084068707928348738530835612984693411950179852719228169185148464583237569925946411069537662491235915776625275531077039818855370681427924608140883753567496648150970749063056583089111812213860022666966733277314331491855398610702912227230437471998203206292115638628339982594174662797782615742451130390642269859651293292834286086610074327016198850242226865123035965444752982386018096444729829654651751422716999655685399135598767839274149563151702252925293986096441951935015133277676248661633518195996775630840156507405400697320961460913163786790275341450953062520560965186818540350026731782098132551073282397769578161807912808767393625029263583209100007751590130237582429460671969107888330310155995759371388703492946663256233023631399437949522906921348625717558165452839837037045476539424147649154894596060677054076307830517232464162266087752837282844985101332050556878501122014621831740376187328304783774806278504800105980897757759962680445417661760942460663077728682425378511220810047519095036862551120078781617404175689529676299960989813732468986102267698274909345286787460343206326345413427389098325896021166683655056632397482454485883175005946022443719480177959725015426813292336103414868532358076528657391245974716495052770403773994116053984285038624413848987191262911486382338607863945779657972963267650204354271535594940927927714442404426922909813069912101108813550149574514233214610615813819809265705775797951961030085837472762733724590754757847924878030496689793731657037625275794204883491776974334099997156917312089405141883417402163168973694471427165105226347846800946515545826028211150668570916070960147703113971332814471664323387012400068902447620896068565555805931366757912531289661250850558014442293793254654490556637745805874136256293453901630455063385632674418589845203715399392032290764583870644122444008852883988642112077556195134544770991861541396858507331682891793492093854019724507554178556342958949232760501991296464318954477111144784647554740534581089640820347618011190444247618128502175065303379242086014898516109127992693800889085983103146786588481526820510834186661969503606791804186422193495380140702587621095835995002525980047950295677886362135751951120016348087949316944695491179005466732763658086814675826679961470705316175578981410713330494582536784330260626111013506546690810549004416080404924183227442707186465826698794409827658336112889948042690579823117057804153980793633334595108514247378210163138868088312014803034293780750796817987393281846451853328795066087211860591107339464269165896607109632350382521680471725381110250837874338872590450305579968188618558746584171718633813812520788484195734210082164067168344670101535106768839834604069218617358165332065461324522835660478678828822215508194343939454512353773414771015600271646224494862442205529646027152826697021192684947652480986561824332654570031412656508794250944424742938444483988811942358433333612140149855178363731191504997672361040321335358533136073588111625466899522651882581404028753721572657007489612419147552736292731609731847923055139028380319792284909267064567033946876550970241750862555311884090581175302892011490005561293486011383963456548715142439037824649685617273657027336075474850769504653070343868809590608230710542510659102845110334217868882625091747529966739673968299483409689178496794344324594520587625819842052003922397393416504411968423615055534447513540679019030835417001178325928683962656672229603684331506108749373870090570028201337688519439123966980180074294419729663666060623280811328572519910139935767434179133288338107060931520896794325369154325419464918122320672019770526197428703065981313143553440771514118293461721998267176209533241135653437216812467728528086822549379029842679307607814938123078993869864619395103017486341148579618062540280834418474083751910338366072208770053526489949650967428413891078779076534017961817832277086861788704364344423018329522545416634645709203520936570422071359355829125956924700635570820627603512016733165969356818804482171905513828781985334489588048145070723443997737882778569037230085779551629797568225281731733395085824697524338945546013062268256521849306793560093953826266969180592331001754200539363941766326216732115376745009555903945381097023868669831596803219385376365098073548119626816457777638399014142282020674700738250473468432556220354069087762761655833784382693359216101083499935317731681022696515828469582067599402243179671250121033784457786747418065940521004392334942024482088266630734673108431306486759008363475557943759759400979402682634092956353882868174142502106912711049581479737086618457392824390032899063181741894381636106460407843875759119767579411394190472595146043718009224480053441757532013371937420873384753159819679170816868175874735366737632464283802769530401749508910992193161638241063190254299349744699349804414423304453240553626780346303192598024563856418966170771078660822559837216350549034878153350148594222973165340915232235497614444024177850291689683717985107529963377450526242566252571106593301837661410727959707228800509662145440997738303330763465209257938198229248634948638333780911806677322314956650571075908314120451781465879039784484505509522789009083800982442141554185702634243978485897422413610924567065708852054371379711304284398837969608819456348142175767501013094038372119889820480130509860553928242017924414788713907524801817616612197102011773558190485396685662782437304019442760593577069265177328368668613585262086723848352963457477409882592737372875424764926808781540024564304775538260322226822174337082776825494320962761596938167055116466374079727291604784393988086921735251658953291343513796994463474152340734277918037339273224488743899046587232146552235168691493678817598619057352044041881266007397971413703037442516115364154078629532170552998696261527602344334891831815957953579817912790549095511181228840717177066567209095585352498358763435571021602801363663090436038375090660853206557827843932414283676024034996666478380782395005703357970019295953632025968759493888420229233438942792964698342681334968727662031765515923038842172960146469841056486491921557394400113135776519634965136032862096335874684534300023757297557511138617383727963323147902157978087942175626062908650690071317996262504643649756616561993972975974623326488317198252614490116946275655037739397149348289908610953069746492962599648841019970836178521303725028374020342822043941520582550987482910903658147723383145090984058172742238270804299507482693104053084312040057113539711384434164430351640827850305409938037405365636181365150696074943257284666731603764871699396344615645450422626408236481207440847478733776130114766117007212980241361875601805318382601410302774639250556240445118595314966483188778588397167129458352801920879269966325087874723161537476462125059337525306985034453683912563692506062175842200758474106737166349834270764486670615054962675837910175408137952950711832745622034222379938466860474222813648763551215407448233850097590547334842765152801645313195030342052666337677603184070911128855538969849907977584760398461789829941970051445282947394546574758492361051600478915305862785678383001092467972502663660394238837853482500678193834864168753674817739722606118437494704322871630076205372838148088328842421330223869376484014373780274955047289324298651408569083951234270031811662328869845190073997351357091155955937626595406917322526394516608819829234355943786429782259761070919571487614117302502270998037087574957884417243295366814539124653054036934127183191700387356748674469928142449837113849078308848272067150145899785054338622384082773199219986891457396324231462757346265118593470195973876189033448089956290079931031389444814956344255319488969103146162872589355490912941117108647419990672644748708427009902136228477245635022843812885595400580727577350503097141230748125561515726448870527149319049942682989515104835357794422864599760506651311301671352562086014573242044033886961837551830731113602321443576357845783102372338069034149279707911226688478109594061540126279468526380788955375584687162665175422750462738457721955118452942450793546507751453409102143227988171470732642345441737681546226875688283267323531227356505648883323554111182732462538717388361164041434801744845403799064669098698184309430808947719831935989736637077898381523694118937773079793242653032497962164623227093495724674694599095304815455644849641060950873685556824107072351865017557047996817600679051202000015254511566803859580535674651991494706332824764695021767548739461292771194263979921160998106466893427716181385663770911939274288769406147334208005856806143347777434365701720914680845928507015090181690606774700692516287375549089042578521628640351799924053088727726112461193647655384134101534475214897719314942023183292476263108710997040181483865173718285727889625763247197775629443023119081663328582638744953032472975223673347711023164637650513370991913758171739946454707469793212656004687463309179136089920996326784907214382708865661636722789380405375583684027226444615570566197996306511052130658587220333930031515098026761856975190019088311968191615717085815383220434015192227988106031379410670066929922877032139039540299316872726397624104845985993872065412160644507268192287427404592507882700522473637433363225545673979165432543627611605899231046983689651617006168054471916923699536063471791694260878761450846691312663878777941900088287870341323693126698901594289724104236335334137377074098471749443593809869462533613115573148835507558562226655054754376231242999351430990755085044410266947364769419119229031136320716565841645828440194865121371048528339918577365395060678738153724632542159525915367960595494160011236651468866117217838056325330528617562333692810392442812668400623052744502961090786353347805728975746840302162877953618349099089378886604703010973508011249226189442463171341442510669072030422958220647695820876222575728316465702762154139250714066836308447680961037260037058795056976525580708208322251116387728991201154955728966675515730560659985532090284183958996632547617215074412423457198161706965778049400287956459916859090466525716875579182700354659419883440578297569167183928059206136640737474267891742319949992608650451544644981456738730203457157857009978624953742677221504573945199460173798209815205555822489439521672882563454231817896135423488437700367546947169110862762146395482968178702335876027971825430247409798328127612753691578655072476559198668196901264143070922690702524827532238011462452153496767375564315963081015290046833083853400943199012427678077405300135905088968218315261002286507171009887172490920086552778959984242726111996370095526012443230991563276250075818532726922696941888816865785985755991579271991556223408021499326410868376654714089388675581887117905520199089098651660032670453497412637024352723308388233692102740433204694509208354599053642332857435238909263721281568511237940291962314185689167635602178512876729342892471139916572122580270103530504278903611479229561817377096311802053110484991556582361924573930067449427748081535867330903625406482352354212091923816377725310897013533139068231254293900861572446234475006634362794329747362177886143476232097190292608398689006665023564533858098051388277082447205796133302987539422186840756620671280315086563538987078586077875078290227199796503400516793494021807524345230281401245319415777653343386382273756777395971825900532567740991027721365783452440654935104461901870133504692721446547584417505599813090389495761408935753283946348402003405621751274432625070070883060114461042144878675310601514097446331109243790895934452586252063976657374310206488749261562845546042551826127643372113668944193667457471142015025180630328453861003815836562657427671979116153987542867556147494657869433112992686522143493399597297435975491263045474777568628255219016996590749114197779032431866587132353838327971579644888496857607465472858943623349079788141782960165803390175591627183623449848042481937276595030672826848759530748297788066099322007697407350689492180488697955340252073382897208622803190889134280050492584495294065322377516802290174616214217609532893862517514389802976570587574994614255627189119114477449155679937296438383534596678816470881523346333386238915745436594360143577536637273496081385644924716065533298571040485273837219679261251037947443971647609860187266482182770522895740094657616908776239179465773474817567961519891798577081526559573377111495354718072767718162176695457972357367387133209248198132188528483021869178283318629311687511876259076609148576949501949002450278609630293274099741976774154618623691757868070125853195471487641762129904189066771770859273242452838969579959296630319474555621544971673188848599170420914391223616341574431820786975724506965493462451152177295084280092867033534264456273950852844806035876344047765181311062941116234541687278143919957371035632149530204874892404601119496025800658870718399346606685397312892133104160543096987563791758336433507261518017502344298623644428227598741536255323302176148166265966967621004991325328698637441763744530925473146735533851667082185181805658426706662039979419899903687852817562788672403298027793149934375916366311343300654722717656864502218982713296376093112857030518132445548079161217956524039709425295301527093266621679855027489639078056070067851410049915002748728670027473505408435150879514075039917348461252279784548078579224388159778366403296746466323595009546270498605382313417144177355366732041394320063101643267651111085999623587794313019164209145401308114203825303930390616280615283052087509204059835340854419925370184202742544398346147078655033000109625105901793801712972544662191296423693706797862317509568708707968598518312207966551642427809503501311736153858847219262725955809977222646026169388288349733498600260004705386007857775338358553574350452263705703945529314664529314017412786263409434604379528958771398610642157180204986762480769554375211700556500712006972072417424213733436452106924954988298428891730399055877192121006434571612740383559528668970677429447296950777393743303296985322471046674403887812017673067198964485150558406347332874792905864554601860494119129096646646823567302672438352568602861228202572672918950425095981418566421956869683618959479393173481096131985177598519659419848668457288630505687381767607370017572313941050340823475837447810220046210721424739059215998212678979927729188161539687820148137133863030163432590771389075639557825641647140724051048422462975116381287939422591333760060280661121535706866710415403971915638287398057753094710645216530679251537936451447820041063339646313599872380445801888570925948913127007374283662800545507207733880495495830626009298194524823620690313670438263976300819509928267670510395414235565581911465901302226652527960782664722736838140838140879009137741646680815126359574421801317341685070440668076048875223176654492815096447434618922162121041524238698853637972966669065100111311767218095492258375582143875822547188830482915644720546948680610419931540242527516294168415048514593959524570563917410945783344815088729207691539889557611602223392099657492395767533447975027610167591760340605598029025313479280143481738004417595685275760369283343542486087101409371331841787005316456646218645447927983646795508214308987136952865802715491185824250282300944745583183072195408058705476308660538111297125749743620559046254337889518343570025402667875430012659434940903064980805505973791095958439691015254393078537434107769741186040244187700081061435624562635720101715157273558332877867754968953741986530425762603885086811485964230496819273540140056188510507533693322349339368769308342551141389639609340634813747359806239052328522263878205431533360118333402028303497218726488066902681723256178178365886579737669923052014515183959872795409644909953094396308944277314922234843076721652269801869102826444606166241092632201596394149880182718039815020193063451445403991280927988337988150086042392682738004891563192936592482191610128807153377447287342075516508974446739245614413171804471753752676190722761928781179899838429555166579077864749374526263112649379949453805460620510611790990079549438109031241290055867030989199147519654084462226041282267021785705184225552284358135306260632607727672044742217779367895852782197560295082067663503092604117698648166546672622420919131738401159569124860729534854198474176813592076658901990360271020819834795934139890261586771227027261765060624823353812515202261918570654467033340826945550123557930245353682266914483004206597005006237741363957951411897480630162685305894246210736738767222705570416867084928091332919603655942374616433342287570599646801054332710318247921575532667040517590502233024732067204211522618130103011801032131365961797926093338125111464658038057949444478578966282597417968482740884353617715347765851702398696967027858732097629449054328839843860254927703734640228498904539381230487426092769146701746120944994183788003349750185843272393620913568688817211876132393311096786546375175823997709871890757604427962193043953192713363676808896515012475678453001442478968317937466174767844212899774350346971283548440090068301567881334014860148333192776647392578911586369120400901213850623300501163910777158884795602387626059778652746945691678383256665382613933980353394420241221180462641290381637966607358447520622995801731788948579401165632743706441016056930983995308009969521494504824513501842504360146879228567692094477869392649891268238279339640384180627045541447328232491431563838653355303772591427716413970280362394800992518603942080421291167711186243664404810248257677714424482167319761377311784222495717793250459036861438996632151241243523478945586346993238292366670383449824561920268986186207812690039096841863125058705110047513372397150325902254262104380117338600925734249568736716095276053898475559057760770034924198871245190559449583331520904619515643881650052460186896722034474398857940375293473720489863306834989216863132539010208815781502953291250502506508201331191797053213348086192831728225623266547168527184935690337871003515295083825061348024926580212254942411904534020476432144083253314815449154062252305310305822657566099541227217718734692690229792871786355041912053583533855992652942755839565087595652404605447519059399608395016062923297313295340473366559384616705121601630347882716710853960571864361537233813858961059848651157714144097313602335541085016836424163070739200499683015037632642361940229531938906656939038581272171548408426901943663625988709149224287075689774288417692464994507923642995472984474935233835398453309283207463730798797931870192827585589232092740634840846671732003896255008398926193687009751130987584602360807692484119445230051346127357505605339388703464289814280494563461515499717898077927629579407725413444376006534263298528896550597979039096129303754783185993392437005572926988395852633283430968413921129505517133376451619713189474197835865775285684633782788130949758040979498344597866711947754694373174390235880021741629294711663187971312540716751039084085499128679730124268134243163170919881801128199222498260099283088473974587169577115138579760970377618894840667583777621630726190981316577676917526291727347550547260981973325841561763532729672065861884037261534617917481480344320980057276453503085288413450746545356404573669425202622780539985364208867796621201296208303009717734434026115391910482240864721530783271675020057745452433238246839720081677326875532106801898531290811886983958788342701370837311046912000906705602452490752230364408937549907610871399612814808492876977372388674713130267268794379628236856583647786812041478449354136352694237896763320235127028785309413779838914938906984287116163227504296742106195346432670745742243155616457905799721661402488241239404391223718620931803082477053365798572726918775165367291723226845980370387548121758672778710957219974969549036999083650885702352544159222037238106163177243103250888793750808232800844948802098558870060138844490002396110057642755353549700154129833394358931337252874152950253592303918406417775186954627414980624611182705237784311279923606643095576331499812040834397061185649079517970199124595311205889880253320462417139067984611771311629874746657972417873490745649989334672534928372343436835804190211810589946266411162476421900203128991230066149039109943036781018547172421060955687627779821319912448070354827993835549028327717209167784512417306977851143435394774122882400218795696883697851363402326773906383844748407218265175573914319127702432718104517113874813361076849001292044304164224886818653831121378805874159172816429759268863277893809019318406183874932725157551122964293451810015349017968709134326973317657464470441358308144226701476476461344734445437754243039560936753838765495473868695672909932709937302103397550469792578297593276817183357589298886866469752230668595596903147009094533492318357563673375922427033774517499308375747323400130297012552265736514725913220655769674902702445349476784211227769191658713781676142543928013092740745886305822298210819194131114856396695643622621450851944110449674047993826329053468661845402575978740648610669275727681799165358708549915894629614408692133754054429710867724272059621548750320933993031187093979160344897510893704211755752879344525052157879904017994559278340669000409409382448475342079743380385209637588992633060625005800527065409048923525497114964105209966406367277077596753005060151304668279709554057851309357927449196130221080687423902274779422015902649239968969485230990602893492108911020560943972806105039712620528838449025577739240604955863471199577026027429182736720700549077046584600614082723279357315924434980781884583985389692875622931881288549846261165689094954128289918880759836555590026186984657729425965637667625685814297226262751914685803867122822345419782281758284391490234812176827777641990917662542903479691288365878389618258440604162735929906732211380159572130833546925761040117582553009138848881520550516742904119948137951785168228545680162496825537965235498514830582288385430055450607744929014006905365694552525091235600835452735474346709499694516007903665081890670355522915232180009947593087980428317567472668508865756657181112392778599818344331342323644902178321714313619161844294856064924979929734269981732492586629093547801707320950010656397412365075548308270067283148845605936231897285983408497423033859553014921757645343149565746383215158453246589552663220582597246986179046884322676585653270848767258650043201902963586919959384493964311051608578733123809269511508910395508207682055554874274727007941699201529637326122481998567873153521958553087258498173644701530882609431084917235091218087851250236828116701057657054662561828113677021075062082879626081162937322304115211728493640772560053124396787402048039972781516223323033140289827945132234086119746883695993181504395182499879227686726364956726293515039505220932039597186287035823826922138600012736184148581166927443511103921925931928919632441192334158797007833151438084781468955622338507542671591934050686508386891262784577390466547348434283814715754300148422010790898616893745245785163001734205525657490083680067877392491428218413013193008936398632102362452754328652552270885625118236293823710748428448309580261775040400933396677631865808056164646848177463785559390659347187168122502734493706978220777908860031967803071648928675675043639514702227312066445682696979875116767561982869735800557071633128324294032754030546842306511641398062841780264553140161143675150818890620726128346471414085378053434338093581360164491025447876006836715310754922081641665803358841566398231869231049935971470209861269622817284589090006064691386165782884414651917208223982676711245189219953295057845109856986318590912704336278230269641192954530159859477045515669716820720898755535636949431011496762917357432104834576230224361108800409700321103201964805459797848826852089032885650912268137022147491344090414789395324284544855915976549479985195490358282601072810825862967603089474120055051115848363421280426162734270746081198561444552353489810503374815305782661769147563346361638371721002092843175322447800018304127982101209323287932503232930332526203694747872565521854741933437540607163083640140595052890180723753418806852290230370591254007138500814670394876137502076974330547788057304149043893931511508227924726910348964353820844610803046162161065107827317190557408428087964769971215809212868211260487664300276329819985375657351238377995030278724463714142367392794411497416369547496902359164477698856268213928382140827398259888663658761890062536403446245360220915814963924857271282198985492191941850968522683719189252707425140814222075676611309651539955613884398890417097890875796342454178947950634910931459762259776024138685163093727331223800951326759803323338833106324237198011072582034303726542159808496072184579764602627534722169365384133415616784628718129363101502421152809618914410799222547003411220557690885603524016095733616061004729181597985805001671205374170394973266754553029843077443860688389314115329426822622047956487564028151949559156980302926065621378281684639274485781952371700766966646116248776958535107200488212072146987940397237418933170613594789802126887469762469632131804946627594431244262194190026835839627009814529855447625395192339914057257506162721972059023177813629403175573186061705742207616910141060464898614566519291359852410389666950840403921910411570192153120365105725964703416247487664544064594043630694242155807450850197655967524886559461494302607494744878530269879757045104811530515730162532115638645966084071827487319243281886414340234125457882272638088931896447115735510953749078523434233551091269483739795517289759166753706237908315017408051269139287197959569278964142337556585751683095198052639546518349544992564469766219272380476847140120348751732447081304306977706409301632388736204555468347484747348874587898999528224392222820780731968790851351714949505609811435838140097634199947543619520410407811719814406539235878404256126994999352929725054112957443993891467603401428541835169844182675300674858162430663587196368619259155473177878578621920493344191753180827387064759947053920558346020587120720580174959873563648645443175603422005397811152123452250336674169505325414916433284065714318997589017760243935646988375819191954321793687965048744360215380600970223892574091329463521915715499105557187944436708053094795438068695579846114167817440166718481776777863782648954581951792565071743974482719283970534515931282425524436998600327563966583508405419364765221637545758566946425900235871515175478981448984596879754280234752312197511302023492385322197275910440780868049832501552031795462011523988408225570174437813368294452439039423314364626370881918294707024990895146045052934293784304310862379189100281996523345751253805810314718387874274954130357016321163885835532353404751106339667697584651815865541896139029607434969927126304701261752352693866028154206107673236049409753170762020116235691955476903856564097498568198285586269190617121730584397673003562331291220009545668415865217156564123010957358296068803242534841465648557786303652466550951109280460173315039918553973405101301159923402482556766159932573147755170208522754358828678633900683333314438325543834943958763354081276096359249156422181437342427750720416243968918385122640081245501402793187772475697001665072072884820562645351106313740709797402883628622252240952262484604449203539718653423782139779499289795192759385732398501083120056571429417596794934016187899272449504793519459743808582333617122580511376109820933793273429208566029333035844691043532091177426263991643068077742048258546853678082210433499463936092252473621337352228295288835653372584693329931202392830364123183787903275187599388394612406001894367045175078142385118407024301423673253509763761488257431124712949058248250003103503893523408427169353021050907697597915034787775720872437822668812077542088094727804727393958635796113921102727367785706788269468324639929873675859401137419769415873467860316014514239358354745575569850167417015031666984118895509014959826702198397534938416794938220512790860352340228486579329895126127449259722128962894236752576664551064788812760871782620275334533136715908061598315628661091491382751922834768621164983001435956073570896469999012351112585690397729646326669623352412346195618578990226128452515856881143101408985512902340294260379239016018809839592002952605792895821091273337414902322330455277911779884015027308664857326622332246603947332737721875954885009846799416108537748332631503677695242378662918283194066980655137063888182312069212857087171210135807268566886076270722692215143123681173179828210825517147723417459001691119329372214944072368576676992644750496902460651273162167042222962254870906056803435950296306273356781036761827210087401274004768459699571216645826920803010376928233527159183524691895847332595096129346058773951082515321449220242990145170768439218836422412167194407573825060893097416604072796164528927638212315300464261681652291875031960281614145435851769175536031337746432458677856669786596825471675046905888600523557717285694479613040259609661599686674539761582353638540772284093221618627352965346180886575540855880615176168203355906760807376828520895944881424067944476559337068038985204356549018418261925921164489451784054458990328981237304116905632374669800146099407112067959516022523410945993817969588319569511476830531965545806189173631609246685490033073825530078661070938654477392068118280353677762186041963677217206884758067367080100235521810043204770895877946154421476411071335874540370098561800445669898316306635984970164253549100753463133519532484175503576152382191455032609736391309811287858398286287016982160654991374430950982522981143195520252982954196042522770406882388881691623055691921208143999171885205472797923840637923952372617067796084344655363165076830079850660035614815195842958312870858368910413414337984660518325036850340234022575495836429123930097354441245538320210318702451042156048697962760176061509966663878828496503762185458575957273183795097683053341016383415305857002315235092608477734107205606030252478003418038702854193779184631670437103811480797207903655126420916510614519745788518083374806303416029553476294586104573176248609795033655676183060640180900033797004355233397505042247292693463189007507450599517160459676733374178621623264905552953300811541705684250331517870844352469487731641072250059404894767340717465777557083251937742956289697574314188985490810043744452408606384682450744683224637430625331608666110472152815261895283499514585772259654956661621103689748446372492170213795760771847015387125754083760334310379688466196065737650923856275890681914462605956365661923089594506961452953688924388498825648165792169862354427691351151122187161049227952625797476670228861369425316647424982488756250598629695038632214476373765399266222935689300217466752544764354901175951816982095628040716020138457869339627963346531761242993161322566723179744231908439074920108485734384068727324542986483763432025279510873954114880263813619307764075795248398654334668350487994133975588213189048721898413312123479643405974666882336445807685300111786893085185027254779347836648790790852647417525299666142594602705511568821246485744601840103612539030864744376872339024357340698622880599667445229242837048746755039591370052075244912790300594444538057362169578337928561665577270031844485497940871490825712591292627954401462146480999250434141632495620405166986046413734411094158404632520757552655752940235782624711435452599800036870764716989442523181770546901983317763707141272635270697677230276400739913778109068362496474539929727685720512861812415105009803413704368387933789863298343497490693400231567688274514865980199883556298687085221813347034984635450749526815929216150286126957918183630867864897285819028582753210523603698134663963905915936468720939804211721904104011274923954928626472889440173736121981335481218904546338046737000454892372434035944766635999892783291036618013563486194162849826355499579760061706010975672585235147284145030925492777484292291878600064411496911132528177504846235772616801230682540513754970615722529376667169028205724898542913899422806260490610675528221695956755230196141940957035258437876441270522950534356941729950479687384089518657282968237358878790667982735088688664421307022226487614448676668749809091941246284731564638933293957049681838806400622403638623963445765668105433655782969227823891753179094994415841410369748960957678007437460959118001693844040455137325568504583388878145930520300693417794379587606886561755866859398706138664997038843926396107193092932506260181777706640959671853324581502686934269534149878897599141111707818406052021945740852042597569331118431754654653666339476471115393934777798930029184465277986577098497932157726369582110995938602504453623131730671794427250573488868246689590534731215226758531632263545302487781895668373887074709486992394210363974395614296487047757207468304265475215494260424664207561189627454056748465431251463816158487592324553975129507688002883035083977444824611590958234507143471276299780751616114546612426551964498326813033510424553062213149841654403773396841347524876264857504943653903902321894906914665768698047701392260325780322942045279999478415131408017090708842278923547690260477349037898800931162828665276807413576465980543985048557717483994720310890760157192649196919763872969065704369813773967978083579689199918102791483264997589174473042485199211190544308204432793548197762504326700857499872618479177476926785160562424302106517698679602012015127452822634518054031270599756589801925443927536868914558622470404717239403355763521248213263642574989155093984522881176493508836971209665682432317531356791101498905058359290004098883429630667299222943512134902961084128732224660172740977743976293040178328193029764846293188346565986697112839952864768596932667130333143722952580225477799413766744257928874881610174686486402353298829590462125737121305492551970169645394832489463140699728835469713595619309010309578943766238285395009411514011162899383460534984220655323492164691892716207408396590262796807862919359725971161486102191130240639058385021425098006113765893995583865015471118078384373850827228459835978576830647795996647413630375072698570462993254149287407498517048641753192842889457965194918068901454149220539279172131164540159053670845565064720728216020769817470558091251796887120975563051908774675788509415544994402967587710685886354530812861758169187030350437089968945836219946804506054529076260930298477744285389424247429953899408248598020360271788255259548290126113530512431496014842547530817443308455212228170302676931340108243283640411813473006409416154879547772580638440653969964233228054378699929889764323323018606452798392010924482884987713107884112274990267235610335022156668060088238593445001003705568209161959589314231920212743216170056264916697147758211633878862511484805048101910810625957751824028007352225071228329230452434792690354639287716697341250296719490935924945821893247079104664884368065719418400115117801921262328850574061650413347067522507673806013499785443596506795076135156482237135581890758120834243638547942819695133880551393100334888670518356081861531663767785978061603082131084565987992479392341619420510735020428243487646325617764681113361996235626734218460674244854286266513515006354816789699555462595949337820612167553270401178796064230726192997566445476038453428215570261026638649693846097404742597236095018135908943709913356718394693939760037060331916079623759198118787343955650769121434867572320474677394994529291233081626185712325332112389729908327675377522832155480392129802585598188617788787225650485986714324295039786612683605887265193912418607274976132596347074243480751317260457173728095713412059511669077068418260566923753295368305305411248409569378248721816851142145910268327854248184988402906044314951474881731824691482164528694103692386227444898019117007223310178238777709393316914982582754218139374931737340300376059455397848325660866966389298816707023102460625313227929597026517218285396634319870816765777339424681901099067000939284052993518352020508951425204317691880249475021853022555275011871596776880469801683342899056344274208758643368665094788771566705645908815524555666225822761388143282764840111226465375939736927478380131497720807100393119380598305674148756279093613223576190492816459993498404189667526808846424018657440165377835759473498157207988559130729924473910228159843413683743872426002010050405894460924425891503387079337434778975838685180030191730651127229378267209675837844228097074214698059612259289415233986581120568457396574835571410626675254389029638519122436680928869025742014982413525949755407226814850229906786083250949872784669180075210430584290818793981756556209039344566825739057562878471805632046620293221687874053201605366587803401474030481703670654071651682304238365897959057446200455599024371908615671717804737909350605214221880547804652377897380301223359925137905693661172154706686869019537487681381038057676982569640531937568123107834015665636829117271904613039682932984272561359022568790181702196910205443480963491127583774881161003716760521096583890206749077127697840384183919624811187690772591230541033943763029571128461653537919839170156559122009393935811457984808668913000168874705121965428653532575659919239260446950449853269975817122548124469616843189284846917798679385283988661798889119434086222506299569459955089337135250968791521572578812266728949864147861541308090057153251522489467143847914038841608674295313539275912296644401683067421292760251388285271520073965542074948381619756877780192829377962156099786859393397512960670949550668898998077228461804531532722916342753804247538626421495362141161198661112861023310155196002566321032545168055220234990264197488035279383113525324648081345845039099695853522491598984470166787983064265380602130112512152699921912319164176684346057873911046641091397929656902939345812714986509859655450331249766160272704713226505647512891896004779904753309109211135159783268719113956747245446289443202186368733204985059822779090385914584698311423532656764406737937798615376193195513891513430683955776665825413545175654048583611898596901183084699781853577690689978497692953713011751455364422523385358789384768708852389889639692054638343243831393161124244933322869420387241684548075968379725155386543499675521347575808639516279936046425679015043392484316742914906515618781526807534620221162270528616256076651543762581880348137558694678081766551287721630780481636129525986970039371937664825381219801575885428645483325636252848180055617972550037611687640144064387873027667107735589375862884702760156461052205129246349685958776721123142063722935596627130435195663205433571395418541660514833249037685205970937396381599960598486053819576646682334342842965659597870063708874747127252591924618035596242147446622436389820863080063114615214416906231810021043354993106141071211018045340025022306144210159243399980748260375060337015194508574222509714778239939612457926571635202860031566365098142779194079813365080101342811845646631100398058951381859637338428541331865085984413393810739474612851641394074568683227279340810112200969465181765156415346871030184473762605537406187261149465740126270017259857476080899566202737268564295596031719874908370169736021311525411130562038606940810486392056172022141811759439155255758377439646914957605592552658362563915568577543399845166310144427075805218873397391001195058143358263324827099097127153096559163942440664425389658917937637042339408428988213573645799449580684139588334219227600486570856264048445955879070662107968471132635129001137317934600831724332372838969755414080673457048543475098321687239588185526101479673831821088742537960606659847614013402452414568918436002858432090933593058179120282318514769025589170482521070254678124390616351927746604109793665723158440639544062032925436964573988948701253961174812216872428255576993290098184961082057661329268343167643447262366681491179893203707999817302345830716072524218782200487698247466247528595700752501952084077672735056570501989562618722433761065519885027299874888590415200324223686886025892778396582905253128297834263873897814002827041913061324111846578798146207372396466802023564751610705683447223553546970658826293792716445855647675507063467710119089381054241449165820827633512983348373503743634575347245166164485413342859619920259621484266635411131853398569818896172533321383312362247883035802951844215480013689294737054986060281331335783488035901641805507060948713575250507662570522071365795953053426204386452519192934725283249117088070058242480367868562633856868189630306492693235543188586858278164068035590770809891793798573577712536812061089807106586181037594644544196438484344635709065493853955681817235510562161159649290911799681867117630045632656554926560188216015687633464568151572189708776830929887339630276120430241412682109348205308683631349247036461698587530509255834379282938412330962279492368538906121612833300540424587688729988391525205551893392144442249416129834598923342509343054134530450818974265227331292947825417776512017909445069770022083543302074557105202408302399364535083850291641462866902611503059520030507251902266494682093871185888115625256258481024827994791444803128017723976410691668033291405223378377629819893878820474765555480750245611985043512151289254341086180487590176589074391156099276545389429281068868209380657905040290150318376385029932944684270024264386172443509403494334723144850059407855752589881719541170543372965752302106142844578528298562588970571058435612882957517915440301587906047836505504967914389308403823595572101768807181460480804009598329746546054755800637466027421264363907778496369979188145811132188648562246065086427639181031940759401099155296195822491862375101383803131646682596216178867258088198334641623153627966822131393163113554221571825830884686556263885125871576413962933089068089083461375534574146679484596494257571615614133488218576554797375738083474608932507615562399416558700357233701888159926664074217951928450935681451151276401084933670559366454728859652348585800874817465137463524009943903908952341833751312213800269609319518126051073932119377674135342459585870743766012936360863383772444188901121509353400916129543993193725332772021631513353370321652345532006476073488187601293906411210482836177907231461999933694494177367885586535535112930049583715608937694776607297441307556717823350065449727922642815858910848312265258483230056319599612799523785234966948238884272896589321346504519838854495550130301853183200830683160466017014861956708049025680372984699328009903222924294756962948120751948308755283248886147315585303253685705674846236151827419106843122636255435838250762160624308566138739066476195896313681801899571043166848272097711218622008349624607981971905117431481198190781767452508939377226825377179668790831124126059816704439036603184568142056312552587062727892352313741345214586825881086618154327953503581511753355664340419815940310691019320948459659540327060386204400261790911133510798342214376350672540009903202748170888072514305503304084860643943446132218675334037166208335452833740798489451766311068502856404832570844367337795535608778475859313780677404183603943110429012005459646075656002792144642927563063007236791297036972396881636200652806942734369636805094242339057487494770379611937517576288295985650788959438647300423642139667052848459335299434282967833913570282618333436632885213281616297701923480697363084289760880203475579196492899284442849907295581919962285266993519686423599239105580612998938743607295414064917219091218059789629252882784341339578863316061935180103481751238127269285289798543580721937164911724477193783377883623254731494084185257251101701550780955803088027696751853167857065480670000090989472915741641471110624368288779904562830970327327935530732740426208746773854233794957150104546553332903447531103833004719589519738184249803793014500657836753137476357007100158787306290545659915084815324906477118927215636002093442286957926952810168275349965441737096244757918049759007877622101255530897353041536863837075891265583130958050344445534039468773444272454266181964281682098584971444005690796742621066670788499887819918368170893358510675591155780959021196537300132897804240468584929994306392015788592890875443007915491989998254341234992179824485702553441311025895119682362326802523769268971898705580727878083563391074615009965900949676730657042306908754929925161992945472531130680393490388963362591641137229754233620414357818927250860773468468980930550856531088771394362844850719791968862764646316319889224495203403122426121568622098279101563664317958451636659621698980456886901205122896411450384196282455284158489574738036575252248905312705686959964741011338618382897736943568602792821401415617810295410065665606561461439362139467394874396106757190761218499047583769970814875302510794252721236128927064338371963455567368766420735630701933410500962781535857436852431281563913383015556175263157660096227159760489155996781812921675493423985908035137924503956386390189581914725785466813572685100478618013911368697127989420268164809719996486223905884600580880417004761157454250510029950223429875916493740434773152620659190410842960932798843097146090502279727717867439126747111631776740888134670117198860375911197650635566532941396001512477994102814425310766572040144092908661921449207541787426506979015716488537724600542235021633585842971222240075363192301619638019449383700007234005977871906668137508998243223505947984466386702382571305831877743802674661984167446898336538234541241739820482268951145583359099162705371414563590947682002652280223760145206576969765445013802738491405752180725127369757639434938914298078390691696135198659144135580177016447315343950893365140216356684182795623751463004192980206176897002955063405968297889148461271521506310206240616963424181896352415140892224502421016628012640190051786520257637011821385996371322532861940672389741568477185536633689551490531406834553606516013797728215481891130963858596487904515368547395898674389929014116091251210273348598642836522906882606727561945201591079358135535027792429506872088171082608203188220296424429986449765543482510061004060179162165344632619966858851544615620635141434360802652765791461519743979061396363571208597841185155966655959779823946907102403831223359341880521050953690878483586771253194089922973039020263629680026123442013704804074779356186565314899375778883461833430144686381651937051774635385126973970961058256129924728841539722399375987438850538165500539106944039337484966150550944899556085549495440031128803465963494533250702158481050570611951447827570655475688304576871379139085938963007833432913021509258039215861008204485674964046005388509123472624282656306855043803452366036907683283898533320969383328204169508040780759264903716263056393158388584806780826913032710010062074077940543090107600713330981873015120830323198098963091735740785872924426053888585638573179586212901679704136862733129977465770876493901306937124296828281910856896799413457467502414507066602052150793538104584494507020877024846105465925863902330159340989529488759277826420806525659524787549861641371535701578214001093807038828980095224304322382008445614966230001408505823907949864365025358931135408305864328799312504487871767240320006117412398094568385696860126286226013876242670178257805017821897648017530671232570158496498485686691692395028002221432759442322768191614174414028245640793418996171750408632863911513819962354487627003348120013473114410601957383239592642108561118919114341860137138461187529754322334744265569765790750768077384345909528739511446135259710314503227694731219113865220536964197949290280940695284647014170937483493325082376183267163869360882071597255600021658357581967767347828193339311213393953134428096828162703614465873392183599729702779522789763966048724888808260631081751005502142748023058260389679428188433682865811841050725446456731484101801889522733911936405077462986775127855366517358069054876968917114356789445895372729694579131568556908315483803298102429471477761875526874698161500937380734452950151366037158069213994972421006266768036043186212911370208599745923139045565751767948370789603864028568666129370225854601596398669718963385735556082335033943365863938178128272219250708142801082856950341345097150539451657506058835765677730480878993920823961193657038466076145397752230901603885672979250817789680513044771726526748550443748595474147187221334311103274913108114228916682759189273373384727039598589229083465819549665818880964874210465137333934629640585451120382502731798165384649282659883513641642070796346595900973627868526254184003632186211347895006612126261995045372008726244214305193181726110207645151898339007975447006622536314188965830338952825286597905382470136810813560008035978966877312685160054200157894680806859030535430981197156464336650502540573590985862732682384720325851219747963625255216191392217702033390276020858027177518213263665458445302913212591263924074827509787174278929692827074109419100906492735337434674906299754348444487927816788644758424166598978320735116508470660813339088064834345256962442277322017982953333923749747839345911247892528547249716288477583671473506396954019702055508415704628468964954632084870889903050144168140100060980951678104107536470840749417687052718277747982337773681049838887694131017892288802080369788372111183158768053808565480835701346764357736657269229860062076659603955919939219724406229469779760257429282254362471031934427414732285515317239462793682686352504253071924110532166547436342647576596106035648170064342400869461058384527239045086593816979218601220285212829290141725033351550011063513641675141003102731373887852822260097549984689483164741412221752796750459388685924143876757143091408620355082593889621929335719802188679439206696796470553222656738467851450778096592663191829528855662611779549042207410599419996507362554539391330530693144531202278665694919860458802267311245039274468610035557325143903155963350937189995424874295048787774535404166734958111109143413233177388429349403023978731628967372493591870974948215977270104091256839693881635549922906609541284706805872753461388062115561776639043103896064741625423277951723567060748529936042966096275363029886401116338250067812982447387272255115841779153793246845718659466321262937318247642555202367771047478902881047055263406082269713488158394540082723668790364438918914115863102794514808350398753418942624324892493795661831062181575607003310916234781510116657645270383552931208806060127808635670187441225435078565656528512428162463154670592958460539583213425006429208860139279029707318823026535709735821298135570431080702989845371122525006205159830975164896809494177334120752870222415687581271328039061367078594928728010789082466321597164955547302991670910347281889523303813172108269817594780156633904884001043525320982269823969974240299212233722927670574848948613901521592796426625276610183387214928773506513014188006651485937559019263909590141486030194742799241598981679535565535924222616860023244631447669996947393790911601317757414395535599690707255300314228123860337010134843076580182468829864378883249317011035885063955970648075264297071295878840653322467748147206670990003822551072602315626307258934374752730964850717518921394714592426625957809808855149261723529927512787658838035978752841371258582800883591651249281520387746956783495727622786928927345134315704496788341754018120151241395073207942533756043674118248676947404350849833386927023957092052250907517467687940329466063461302071141302354585368082799635449108258699552250929099360287019293835346709651643388500419811460639416011286479164248117948397451339960891811797952485436401963351940805955520563978167206789706220017684560740593192818351643152311572447435194172903084434849308156245767231511376921583600855141264940780149475054222689435672549826091628991501213211491214904525204702969237722401980457516503505804181419751827203422273835614630744748449827775555619801368054373526142914851816343070679874395980423805593947179537621939672779836357751251604286941116864140151274997923123352029756581308517553645459925658338869927446122606334600391399621410080773637529739317053721528510695967741458432357427067264952578917750663426769007352238249237683169608688192947714457231967522048184061415474084106289286362160664952580040910998857995541485428167105733967803281626120019508540600662344012896977451250927669183965223294491207669389667057332646916903953893173698103710470243016031858587829009154782810489028311918369510534358524452840851576970601499643717556144124760756244966888375515108150980281554687873121503687278918686871795488392679547338481518181134924097020724227623400957819811850265324381612681933895595947572119671758613469000990606355529109407551435497835723709430367811590665087319439102897337764711700586566642369573791707990200877300567607759453480757555415886220615460241088096591528505337410179149949579168907724951116948173272616030133486174029634743476809087973235718570750385184590981630355463777345724989593387891283315539134794278601700117558786661820874405749740647654580365403756064027440376375250649796905438465400919681409789549531168026546317423550480878842395579517254453838383903629031710295503896579412249467606205989476761710553106570905947422557379098302014547038561720757717108127739965187185193249921522178520857422750898125410080016895824019492096797235824516284286846141514603191362336583785171270806102739739859033749149975201508460965765374445598841940246146838019145544536489488869607583665328338928716605785448474267493254288368309552148437390067174944218601301472986743303484105059580137699014242429963439426484552125091966868365811618759038294187618306690924218196068847712886437250255863713504971011283259592140478142112600234523786419176778582732134605015483031575586436880380768596906443396332296261613930900061374930491122484182810596888827410442424537554924574647807730708636246205864472139595672508555756929742450454276028107545248313402627110050108764651362635998662179386606091992558953922800162960752985928221295470373448725718558843674633873052384324248006087322043140899410164100206443015482902768908110422215501818843804241021222312313895091797402075266658113656941311363588324039193484106957985806880079167919569561358316319884612037255646714486023039306080908362102322412898226635380674008774125068184737412388689294395727318881765272948151805176033859472980255514289236698061449010975761119586003379038841408669501762019415634883834576341563504241166034198949586830894641495748268784571087221246420909282992266995170106231122522231439049718782739247392059217799742534603643448899871819149905695888417457075687582248975520021939547362337102559523200901050297378747372984968255149668662590204863163930994218920852681240332259601086275764738551603109536237845715195459388404996279058230303368916628556673315290044467164382367941815927973409443293972190929925733092617387396786967416610596332652544118240150736832072285931101418950785341981878904434999667184173946092611849990879877993385880969477162247778439442125560464400477546422916767354023960795202973078690417439891713503047933776239852264055216417772694527895930021974953237423669023909952090743966232649602871616393037914094813177016101284662340068242036596814612899550121385105528612119196135561106584774864890031554064999888430892685367105688859775440280457359638446720750990985205095019899494602310378521293815284655186691851528589049131028254197592102254080385397926008691009356584050059776626576729243687275995700788794743683282505967504360254247807887037111334381641931505067557248767351705009750944089307587894118416556070502385309840407618500000186774962326899812030207465100171319768361411050142168962140339029500986969750295229973309219666065852405859538636005724722000330719628214098528522789048467794615844250789296741190662096858731216744139344826943387947519296536855671611295135885406465835338261079872530716361892506456225621775211813601127971493222969087954347751745896159090286196656998612527399003142922878280404584619000049677682444079616792993056716438656268173266854456295567366036128938492478983307921332816192622596966134308890580125010593035793849784767541536809344908911837290306182284010617022428755710404853317692850021861610648313442651595845453488656622328588081156878677306565664797071617700214709562894582322293701710947742062697952409041695124920741188214107103977813121470544821726017966206866471530576286030573842460090387898602385778621322694303022792398467002154908891898867397114639503894116791772309318138237553604046051048461119873799743739075164361609345359742623019861982629399787788719225738630044504603102130983914269211280440657768153553213648824886074694111728153410607076247823820958874755150323627716184972844115005152428350540468633026293539515795920732352564299544188816032693791709393542229164235948500393428109731380975013440317489711416386054216971455129248225044525497055884416618344534742729963426631167910613058912164864181566524125637228947349862220503216339222300811825977974365122920919635732964500162965877469063649676777979984911124653871292918603604054302849779948886151616861550106289989104682146947266338816351013052463489081920025120849865380638020175799624914592530825947549971329034417239434259670084204597260356378501275429640021710761620384001681605831473971869300228458369448923309689767857294963759456540903607623749279302976281189637914295944969501525226270096491933376299370433188010330991004172608485636973775578221196505519123004472085365093374936057527890494346447536416584761129183399999119927948776933833177923046442581256307847652145347112866339232426319534718882404395675330892800973551309162959073658594753229545401504417689755785692290409514135246591829319908881653170221095261464291449158343155435586658244792894041253018047809323973228305289091136924366851074434018410737040114729393154319143556198863457404467597263299402532879112077358961229241156143592036319865622113783043490649413985397028677216166872223886137063041224663644841415708920272029100699141195828639194238404137546394642300685251314864114887681919373784185292862636779266184086168147436837869027767619165101832205259960480150946045654125107792461080853136425256224692603657323358607355095875654595132588986973356700427549066999701388056655691553764444020759603865752322319050816857904694050643252368642676812587074984668365688631533258054880929898786854364375898848675365543279915497864524859202574743959374428287047593913828903741754369031634308027508936661925178734859935729902960166838579553698217785541144318079327137544692082567957525521345511939871168621087819995038377366198469422246180882690223853786376526090373876705128880002110128601317828041471266119255323164120823419090305005093403411414929448944140121881657482361588011416157186936015475909811784030680035372921993145681976922529279345698617762862541164627031586077925411813653968313844210950233297269953378993512592030076490774026166776864438850609616822755344016655738206130985038466456208526066711792182550965781886947472507041295470982137982626319097914924861657547840582186437161769004939142344979582079060878156738882117173661231575984621426231965825172578938066476845556833974552362492069561559657954539042670882105473041346424030960961758966491859112927806005701023133322489621779926254683943742600169962031520853796832139357675248446777185302759883530183259664023688484290578819488225314075509924310066560385548430869228894087433629538985134403819120046262439573145002669652858978314280732923140589880473534448230503529489475214112491137993763036287652015073399255180803665956926558311599576108346753611928095944825329576744173412451385984147693023686192950081901228856640532178117040325049924177116973092311248139161779559569666705286069148416398717871997930505618430286722535717947708310139475130920407227907187686344056187247409577148610040935138618528778842508248316143317759559809672910299729824107325860546819099289387651287014436473143408094330577544347338710548505152812507668424381548211611387734734089270951565467361927637408213772970592432893354238916949834739141713315519126177629010386552700801937418574631151037234600521794059223259436753618332229798899302778234514172616319056908542837106450614348929245002499852694685027058817383053910769089257291531988570321116866777076120494390423937192107758437100569050847128675679099843482182672013231879980010731164795671047435609838575014698347105942688065559809330746691776676878711195790357877880634476094297440791611310577616702007337239960464199231417638966614478545664600310993963796754278590357365968486083325281408596487738718126477717640271926296492715972130360723725143766465973860550548971659453678546446684206474351202982544513219771779975193745379085067118817905492667526959321431961812610208437585690236358006418564947970205174893939351053022416201028216430421164043130193969889899364524451174534097870951317451805429677523453942631840426291391467765942649113938077459463173587719479000015532016647349723854878587542551083778422216516579804795815427856028944082474491917705949026316287695568663971974271498814096885231300807378028494432361235038665441993249546663197155325039062190558993509520213497689917452757500022294248575328618847555488092393565907935756827186410034536174121828402777289831239886329608469970987181890359323475799037642351941193093366671706640855297186312840938290523427296365286299579709355074159084190822777371011162257146074001586599358330918245789283794414898818773128840163822659253735867533841973556899928782668575133719342182894621131310129807525593588057536180996799435029386038219108956436640236534750285673725483645288829932214203709762297038649086670561574321901932473358085809882493830726496451869933712310168827606617937397839212949041749761682063548497422132371369821434521294677512967994796248999136533203802094765460641030762416808265201482699484786706958097785203553426091331981492067218963425080457263298363825896987449012916951468312980772183778974370463732482209238697351615595531170515491180928013974661709680619656379411104157867995143830392740940069628066389815101363186884177006672766729903531919917062031163744259855262780414599245140704498840021852183181398170161307096935167016676544139372761086656460603222269132491738260876689150942689727032610534710871745844546498852838632310534282719513451631713331521788881585151213246409332669756887708795376602103900855681579476129592569114547760015054302401169829444409846036345494882909476307367959220939641470772566180603916000152543243179979600313420640105659016772165966233880387806964711612497204536705664287217480340204626718861417925416930576631615033098109636653952782908461367818905635434096584584796253429890009670596798801446301153505423208506057351967903857480635445565575009249034815663366099033907327211350561889324308867245937724490840006316510946525896993545823479006796356622906953856946802048160568786018984400069652587138707484258408776899353391402370568577374622076351086579444569496809318967372604050273122994546496133961555861495192731792013129705309745984303459036692777395395313752333097926363431837846533292485708636592510952805765683997713761551858531715383863350611297257100245750182654942258689206577379847508865749691813786394456647971540199259215798593787285583575668270483668668078529084176096188930531011765715048462615928814817710471135955112663698191623684727233313358958324392091537207147235734539970505241327221017736514180147469830830277066507098650817358356823275660868320909313487233038611260943090202721322043468379164320205660091248363122041817177487248613292855447065294299991610162497281674145834263750906155139671375411157030351999864064081091194205159622496053566120800097869016051674627147456002798361237688785120420697036786471605854690933496680951374214666091168994896414836464521451636486218699185008999673269006968642183559326213927738654510773048500820315308510271159575993457042017731186358843626428419546754824314362215779643525759854146622184718260055272482970402248256813673160448948843950542634791552330234121818201420643552076338666205019909893435925326505779735085408654316801443288308452658955090453502311661378968456990768435085377072533570352673254835223543221027448843950087972811914989490872483989677013006116773475466491028255434312095468352301233356331390290374411318269153853180696269797099387448714524799086341119722306472806819428880784065767166454380892465489513903269273269358077273750311022320957671885934887065541809274250930774428689321910608187178865483853403712810139483555415817998791341683934996759192253347537447318850286541387224043606267933776617222604475570322651649392254251292546650860267313023700393047346346369336518185460523585763444993604344297464024432847339991742597039468990275756646589423686436114061998809880383747400869536287961741323309791231311021670008906695332818988824602193379455311670565819914967300806926410490397981850398269709014300177484502526545578496258891705457469208102877730948523035936002274506205601317587151561784162099300010664153649853468148333717369765582086352405874141525095164403188525491248353420485435104074134853599047595317389327461263061854701290775209943408072907678986787360481603100693978762441498018380513872359630637519815451504718680838858933560159294895007112813793135482847643740339662412455821134585614674044046436982223445515646657513063273542737800954776478116118029371484045126745356344610541636597889631111470079811700795208493592098139556677579578870891581182827470884760520507058063491583998558256327220551963864988799118482798598661331436533294249164052327452752300164487598478726555932536207129489711472394819280042874774639634952456652271530851361738895586256600911230468394581300342531175977504110122361274045825688254544572782593393476450318190455470441487517683985293435973337154440990770946132170834487202185262099466926956850026524753812165267415444453436550614812724753600831227899305038204970143722426179811358712248752574412590836983891826554982987130937027645643990641593685699745877895636174129080894284733546778144326534774010728941498846129600057792935374419282539251767972253703294554370306341299424454343647889591377272647702210282801529133843652809186212072443308207832408829792129573765745958788377413507433468746786677211468595550407484873545398701869174227057955364928965601968445464546869967305864527184416725744341292530430464257916353475922724105812107598347634739211205358489588835473237211012921162821436632175481918326399145124065721689971897994080336149370612564673994377377224680512531746624326646268523383240576242723198835456220947051104429392286872399230415859729339381848641100566848971066843628066774785090342396612559463147929619098567920816692546842441609923183342407516848933886762147402594002866061302594045392843061018347402256245801385726422647485064663211691063319866060190871176306528952476561100723657518244814744467168461888216084320060112500505818423920586833575282192466530912574094684338764268516456065371896888300079402323988374335917566587965529806748304433917501429703906409262554042823962584164599291489146402648344976275320465994207036174603418885261796615954399182784071874139017942661713906420420634851940826956593011224202117534518373334497261599782875943041794974774929487460229181678848659505774816881467979978508890910176894321663796183687574205181621311179596639033986943774746613038006939116783907931379940441145787995835389111414144605121172386801312075100368814492416214509859270296835671753398344171094856817466578327699431853542971100537889408172972946784148781338171919300289131932680533795319188725211164381156598225927885752561332616390541226455611967476268938369909844209838033299372625397849211432774155067574211838836245280616493064770614449057186144428168023007250266693477885808117405050646440695357429629291909809291684844327892936961414528921015298911505026058655507402506147330340808315039202604846177568867756535087351051327120986876479213601578776642477081187699742675843880270757490217726186447703546976858285571669797400409111246855350489106371039264065867754552380095995306357343844268753954958532834629684659858776885521999984235634766858583351284664409742121287480162280758424656425871928768690778369304890223316622441093762634322738253785972802315444166535123905956444649924802348022903592969121698805940459474119113707509481210518914942209018840785291271605790645905092718293748084332544215425553774797015212006296507290703325044232794235058481022257745220411103252234078249388992881883821575606771277096733763576858846062070672962664005170061993757242851626230036939008866030483922479580558482752622191061007086262453599525357311488239338061283468714901954166690373920954964449558032778539609806172740445072747021729223367904671427806609373123710374829231343827569355512237854761439426432183179204487947767698777805671917344233884437274159755962915323305682977622119886798817550402462224453490710753562739549955961247146138574749582972062301546025766376376906813493632050624376594257350718459742983203761206599545404592720220688620726022413452335316569960792838825239579095513238345989201268521812295754449504085175462926351841588812681013331122056374622548607096057368025891449163986992430540136467284599621926412598124420615322993020866291081996546366667466635283636991752239987793887970745490087230334917722274648179476214698684895415774743084933676319007670901246903529564721650440537607435148730981520480650067760570511531367349718292359992301027936420390410748763883444722243367825772810678186821067765735079132798579607853834632293555507622758032830265623252433284058805784193872969287326072109186212771472700643183538086769019797479527730889685107310367186922326325808404403223260776475139989225167215160340598672393237274286420724529627051602939467770813935031305654030067800033737067319907589595473950800360427650118820793572508042622968264566934110683607846930868141035450000063017046526785640952952377134388229889401269798612481379886133993609158328678810629450084302003127325071710345349516543684341077079649205000005999843443351088393539297838649504110293029456589388701333717492472081629765826522567987960985773535258835297539455706359428518271134122960168674230815638989433086933958249035249294328094373739505571962749471882207884179809639994426310234573131343490640316434888613931597440315299142872600357340124833821129533973636941186181379775547689737594084198429335623734729087178666787744704684857637055648441460023416986851219646813490207849299835487346039331601340993522837864131610389783506587249272051174821132010881147717639525748263832565615271055919083131877124836992095091370875506788755023157266766194742780067335607173856218623719146925176628861236630216666126953760436998997617017039838212212609898386375363199132856417416829254179891699744686094890984893241208331711943813568024324576183619211931283937073342966222038439456057634391722578359679476223921886005415916061916952710586815561771365369989797481748440025095784512160701653254562755846919616941000466514923813018248617396000220349149028548244503760351856504301896742268557227849472536407977055596370257833235062871454662819086844278331832948616977206437160265057100437403955394354226824983232313199273881323829744288489556004009136427319255850648249293180548313728748755175447896830647898422356246652072417781454084674698024211386011615135754999134727798781389927563910827501696791489187703570455876619809834438983981363591479960754901685770380644177699064828883654888066749595736234675454221985113542861333927485318053844165147858460976751804906029774660012691955776206495648914794389738213384859526420986096806161960862516947828189251473311599423881218322443297994323594004872581138509323780680031875424771768022050675962856036028531755560438859366347584834648721706675851088325542244925906833377069049148183692269139153383351115691369938311090316177970868119442270043207923042561247746753560363021634877643159631461787239601554183952291885079385823785365941814998257504268230599450445186792425634565399165461263573243913418331022749408897517267325138544183873722158825455955094341008977416314557585079738587427455237229529563641779468990117212925193908836688886589805128092773842982017378186497798605561037172906512137357406568265166005254203666534098066457093254025298423246031683594323792976926396749989880448974659335126326280285900495405785798812583839611769838879486240317592802309460769134652324826140735855841061568943327475386154061783685192802817244037925029168649868717881217566647651835348470277454327020481464148106943495988199177104830897210158039086902775068942011839529644543066709181961353064378022744275698973709999546660843560268366288053199082349148122806169481593858474746903502702461860009310611856511260391458627460706845119066417281632692573483014050225979687180671996901159078876507073912236563066687737190025807545223953346768967786330409607888490204257055146608893888694429695434128964004551968081170475175422202167670769011273181304889928533095003876692011557028147613539526934100566965155910761048664973743662765694186815110320485607470691555033124130328114326447544407340567121227959067784480286728210372333417482713806482578970540597266239257161304016601195029062660549299955381377473524500144179975802238751881713835103539234809320924757610904886619178892217388116680065305721986802946788663519765920679038699370398792353067180439447664228137757229012440510183711689628922153028829309183426982724425635322250804011548013947054841136452405634148071635062117546451758452458508198196585603393196555806032097378700376621694433177722886853327244577202043976850914392907373768637873329038881708359617749155062609139554317419366647229800299761948505540809405053986825786920737698377846886977096322780155112046528520010841368733185591326188225860739927675793660802244267580129502863191288173391107475872841723685508939567615844591297819073384963586943703990511195697479288921024255501985008561792925918862721068385410036360336023327728120270492349101475183011805228263058580339000733002297835687927958473356247159792814674423351206341826814248855836311970190154963515294536301600080807853893260990527968239662783001561658389851983589552451270066263476534302061935261753451209264838294010308037112616992009078258654660400090827645208582241647177339572581590642202688639454848006075681821576387679023193299504447308354683065069459412913414818977728988913628448932087001323361972511503549451427218681274576893619967002865219425176074746883384073085572237895913485413731317886933210212361525367025004955816405128120820703487476807508238460888538073853788872277296685488865836465425773608105045034214317574618170226920202206114355491948085329205830104959735226180545563735109342547139916885956267414428980636649256458813905662829724197978026349008139923966415183003948937781008602727965316059157519639997490484198145333671153250454011646171625489660958745151950219294607329843611949579777126155089527147021255627676199807820124420780031676470422871473193438233997952712295620413857218992853583345366892130622091799940122312685951967099883316794279071808003213707070022423624119239345159168860036220160304830462883623397344777728129385032958222976849949031297506284640556134027841704359307220907918713167880565555084175469214883644640514048900512548157911582858360081886545344279676700160790565068644559550384338524688274453618778626914593351318003331010815646788562162298204105229928512084732242901577819372191086393755906947647820838327272340649195061207193550699484155709509068360339153932606953000969258208340663844217086433956717387327521439204212575596597936225476494799113138249535058514761001595519591554446809461931704006593009949852787758276911338111465586914548168528635732212709011109147190607941603234802935954714100271098799665414427147940059017697258260848708878492325393087975449996591442714845161125792158430779283915631726752171472928866919296581715330885400276041595162426431179806541268781419961069021692098005783234844688583329716657846919192153611944225377971066976618406504798434584763040189558899174041600255488613442681488705244014048126087819276993793223100736075267468773396470383225872514660313302964922545481712614486029612156567596224395914767523024787090527316035268851486943062811859910991219005068107325622797675787249754027549523497553688828838150309352866735788643314119128010497427433669509721486432862599421691773247241683557703880097667784025746058732076312320178510178161692727946399169951860413842540954873993137151905112828004651510469835005400253092694985427583066997756960905460536222026611070129708143810792760806930254577560048296508896195200662983030755428218792962503878135073052177834325638425844851342474034870635218395751138466367285961454559493611955189109216634077165137312325351624305446070313511708059823370289446910281967554384600068582503578754204001277226157653862294261473638331203255909521501210493404556670766172493493707777712084318113003974837595564568445300551809507415796592758053427202008958951605693644202641270871711608355224783600207667081680293752124389089775030474799700886306859007730315630440868671961448713886002681343625761403473352055967339674155800499713212043537473528992429022906096946059647907104175468375811281395423684726146184368204267288936757289414498401180674297690496192704110855402377756623782922532449943737738519477139385352673966351236732298532895381872755812484914734343874576109056134832779556765486975247311905546924467598742356004720582166741891316735409278607342656023694688340899941352335904111635836354847523991635793286086329379655031563972208504143684395771135971827153063401258782772812485377962529013222035752393101646213651475422460890613716280932772882403017816903675511554841458940609302891301384068460738706657331503942704283288431071629647313597779439088105374098068425873393730022788075699555100263229323486204526896224671744987836117635741350955366877582154592138423536177498195471524225533263806053792786427424701830159941134092414176264253106445500114132565415423991357729094487837776483354518221541510934864829075723292662071373473994751346603791226182975560466399733945677772310631653213111444167478412001818235095605734579645515567942320256772959034522654139834022411352473316698509388000820824497528593315287860481400926249211940127816063030873189338548040036049923654352157964653694511973235352690474614580927659289438641587957018498701317064243685291489065743052592237473049524933613620882100535278185966059918489995722223769967642729899712234452997094851514540432348018321293488187670411557324390268568603949118912536042113801492333284099467376803635966063553087699992189396276917197222293298360058999865019280873067521610227128986643581332375798268980761382386457615088577617281463559585669989875954124291989290712755311785518212729584738339912393794578937609764385793937672185510651793645379597390412525585624366826353982834120370600085095889481446096709718809283509373886427181670542048209456738350558401887898367787970373445300936983782485947089296538191146059234173618061097453454332211054423627851696288683311118953628384066943643833423808816455126991693697355944265096876133315209852465007866128878267405597070993727728967928043951768431823544471579695331515726870059049039610163336298054739443683121131346627830171578362759541415032446143029181423354235412867596000585988489050898923410741784222251863263936915117114931544247572791471327363146790294168574364526732683430471682589502345460540931355959072456535459043931882922000773310303292679800235276161055683405460931716697718083210965480207488929436987376617622634034162254337728068121128362653870881864791224080750549809767788514873839406582070426767798271547854069223337151792038906810815195349756353760030419385571702671039977315152207285551908181434591548945701299974359083849354630753857887946414027019946189173369757676641982276355389280173445179349425578653016110579803833530800422325739034498330266582883797660490828099622189298264203395227854932724664138645862974369248129805460546120043184461385901011689308423021852356226649728615508330187761705753323103660786708245560110632987859656759418172683260719052727892892981151958716122335969450297963256124319512003214160114422120398751652330090252837663411802861889814151402313592813194799534777126351118755230007159742122786255473207545717086574769317913761282937834090398034716709560466977490749605294398880312062710164449117604724637586287992300856685641372897720003294808295527381789037855459933431572956256608861234902442397887075101100718929594860933861564415409341399260001973750340470031807983168827664485583945221432635821087878276432371631400208586585376747597451146181289583165321563424352843692091219915891489292758250164279946412811435548550555891526915880602358241983139151383067376677823841160466894704519799009086400015023722846995059059195858021185234592239601526466770052429413206348582945936435646790797287218508368141596568562202775497806197657112158398918957200967117171017713847035753145676894002013205932032887635269894719787827174817548253051239310129561753331038383579118834212989164608085130548435816592903642577628258519883391661469461899908277859104740607218782052222209016347780996496601462065815505592826683543078292117682245113619138602312070909732895326132756677142719120562275016699752968392625806588302537280124387779193107616480911980473584634898515625037214407116797555413276011809571087647228960843657617564392317861289386064823646524089149422974834559275702548019145642654866321026975528984162427518100707714526164813892703299764829016322236055712901139460162542092046003883472245845913583790511480485511872714759693083111759994990766007708295406890484307578988743630288272675091295718245295046975120433672466964625705397422316891157451440963905419371685846766013431174134034432850084489198396724976241435109863569256893589606254141070318529073450960631876026724072993758428950334184528870584723763518457286950167386285379727155887629292590125066523436341619454630545363653921480757072561621650611209316516685773317656589755856837526771706743082714183317080685713647328105204963834578702287611998263618155257252956727976051562784305046005723548279621718456213627428692269136528646853482687519371922626369991462724772466080632320416399016336698545413260993155719672939818949199774188792819168345791180948832441080943037151625763694119442461365693565292474652437414773214674092839164311704995003936821146717939430683465180465574351417312352105313689481768063875173522621009817067284323668966840265686345063809324868980409315847017423580813901694708841878660400588018887518176820542744163622120314374136048410872247001956974742239186535128421013258418680562762501159946597338360863192482715379614381950316110509938722314142293518818627052700757878820804262690943368404737590904985831656143357699450951934946113642305303359520099082432746806344179003897050880487776783172223673648894987823198578446566138726327717858472969547349544020905666533591379039116374795504548533911361084281877894194275299759150577108547036305084821157162363776962879768249151097100078430910558530264857576153644101580727568077695135090646566638296552838735501869830539534047214358940661298658429163766940382293572915567769490865410822273312475807340564747015832561898080293833092474795035979385221148279996919063867342618138821816427960868534273855386701985788393400729844307709073693012312035530094486377215005549939339326981346704276551002936324792870132513520258905490738255871806288052826849179697038513868256725751552694693037430977137473631750251908579132605548049358190308577015681437173393392073794115955378932435582809626191706800403864635133954999723812882918034384803964875446453958266310489474762737604509250129240274613641563889757325555426976932128024948490969167683052969379364619672009553147942869942404368171779822868903452510698052692921691459325757461762811515226304217484106809533188211734556715058925954379822034151329633730210251639386852301721134938710416935716529432130713669429402111398599023636732455681753211251938456781312779234226160501042849588594151992833644691322784819747155360975456462069372280808387959507307926461894706039342363141017341555833919110007132689270229766067349314376202141310053266241928691094366733610459994237451155623706263843204412450162741665190312275185164379462850358483430513945192551027985680805249529208812301817730235288085794838549547040537162777016976062756777971212989495676265489305155691123002681092226907872240006572658283032290140567449786646770756158587546749828741778133414300324749474671878883459240089461677636982807333890811499071269664865799639586438477246478678617682731731988752898114208563004813486019476138895557997991846423424576238519372162367497754739671719246793895525681111487265167526783050808653402638880218601282181451270097250212224805935935951242562033381158043187816561777083140709326307009128670883890657375767309219271469614815565040158589434171715279289642368986436473836767813570165772110760309337213258289972558954654238801174446748697876429652782466605518669296908969094791926066131857302389626548474658346295087719158995949839134833917129055039291238345904110005662946351078314444972390370208633963948187337583358313817258522557878040723432249735526276695180252784232005222271037090038531386049841021317945926209906917095373892963586104274279998825895655001567118487898551887368891650745551004065672258677355120584437837650094699796423594970679980102357215344597155801343273024116001512651785079808684990518483858903938060032669966420653153247696596599988218538559414761029286931639818565284474779915347804471286304733267484669695495110767113559592228356283874168915476968951852875956591260160088347693947994482030553091743995924328200126628778091194692841505313553242515484796395545020874200090496165419171786134329356961332948425674572035863026981455420781652148172686010066130613659770733620686438792495957032698757080726679890650105330154717609723513220892488106774046314182511104181526303211702526372938392180307749051941719488344249690351542500059226111940293756236683278715786608938981888582038690242140857481475449776016770002196199997940868319326415306993574653055115804893859427050954971624410142347838485393264215121888102799425031565449737797687763758350502913472259518767629305360879101831574660228641236724017778653429863498269844059855952775375902724501762260231565098455785279066303292749738428023673822635993566283175151727230013112674801109004581248811839916413043411208418546576336825594569867899306175378394477123565888180211793838151572147069885519927954722509918102325090820699087196279070861128867994866527561227760024970767310220746320277322821587126291318345274517565696834426366868221308039031282978537070722986210354472838154725569235504345598278403601759339997019199653100942140848441927262127989935994392256259268920259538365157289658213182835868044863970131168091896176613923415303944050760945029313708111491307763508930956832366804247438754156579130988575018250811917232258827408634426008252804671782424871690625832586825265757138412990533523312902600273802477062950004687942973427525446318627238870450642859082957576723229981196259050211016135949242329848990007757080159891938670392276776402894911704509915534138850064117827239199648248962219963536680998062478520093029745018021237638220112982299607386077512124683191912948884102026450861519813972559509363003705615353141973930077096877748352020933261122245264071612014555240244081915625748466611551615243883085593093233509806100346360490317758262652441773220828701572302407982233894614090688718789018060331527355069916795574928592342402317294774390281960192476619846590854253939728873043062570581437678225480502293438097757180716930242554270171785344381786038545495541221264067107063201986863875973734246339118228257684440755524957323889890402717338655901173515985629143994919890831369187974991986477537155321566694632328476791909126085437339848336039969013073246103829442596020341123987306375776624735607741573808333104539354145225247370537083985682610166150818666828738482165700433462460047737411591339646813545823670084112513149876729337865878087543212756351032539160502110360226950241667894972924083333600469630856331769409800846532452593620823985998307739847218114447352183820247742843223940307680814444268874324994602045346636601126846558277035097642646524095482989575541267905924902570574021496462735836050435516112540196368297903757375738155342086988782039324553879262028174179694516196495153803961616219276382275281917274244174829975188128391238243827109477490040423509572703479965075060184102977143162784401859418972959684960056812499982428934786903882680237462774454573297993243089297999171253867095056791573910426402881053981549983982795257353543596400493825322653883882352486274488126746587036442076819788537440536144816478868137470795480505783757988303834953054812747713711446321826138092211769446887823280800205156114387281998640792612064989592537155665430392286440623710111208503910262596935927532991740317715602112245713037977199507917158407552060878624948231206659024376584171349723311298451153487850905625589576918864669022056066054612832561092594194616532325465694679802279047612687261408852464099581637872900150291770732177430316045399800778982057350558457050787299820989646481130266851176868899883174163291107393836604910807928474889959998744377343372916356346068630596658772511952151901078444762311349717569829329488867566419932317199982214995057482720796956638804498668278830635265229570795394023191796103258358125429871710479090315579495470094961140132095541445728141238723605745980963089631091121024621173844500625622235452048996276771843290529911881588754335865122614330670321323027439024213679463753024323842804469959091356598233234909803009471894567837272001823816426721810761690043928434520049059074648929328086080995119866483589652419632705179465648542494322158810877682545574784637098779940416568053282607892510451130766163573801098337741473954919886474595671056804545833345918304600262914164914653981981311097190565751965780353988484915671206865816433918539412992417813023390303411436072775320549184252104427308585650553582237879155580621925723207055711955272553602391190122331481773395859049838438986016750537458422403543544435441257596585372579761435618801286759564826531544612436657987252355813678013017124161281894001567187209538721821335578871744188113584473102152811030059525470789010862550894231128013679729188730390600493642590211963331359881716098009701286632407430138979016936660333330143662165008318013637633068875496255335386869608289496893644616115264019169633451780679893687258540441672936644875207043982364181596358864276420494258261319701844033091045374064813906949888765182695148471024158706715609860524732289981673005919548177812314019527790091123671243385831350839460145505205009672659279405397811951369511919344734416852232249236204408319128604645774244062595227222241478314336102854571277413088828462186907251744623538832434437910571768535901759848189545565901605537100142729772114608620568955057591145790707482550341491275796839326029263256209214251273484469790367695985465632795136890995315636440092328184437021932632757890493264991534902506141471905495611672580512071383844924496305377999232102657277061804942851897765970877949320556711689409619221964355924242602528310096471807212955802860422797169788605349508896588973476636243726593519538494310650320384879712480526045944114777665711677809482129122564619804650224126536535859147096727838693694498336953550111640423011479628805448552793297206647009826173094374584803833333027694539104879084828343555432637767705949397274318350483875600723695721276132925487362768062357396496879327541701511802234139029047531090751259453055698752003771884224722031172461764810799880829791777191422549485887205477272772507527882501963225122159034823516111381255960968670043920671453664556877406870101405302820279277081943718898405378912826909338932423197876579662604453834451469996565992688668760129911926837919154923085576948318038899573725456488391385851620237201769302225863253695816135284802442359883045973147589288121367991473067755128318931466171922371081656125549449178349998384038207912689824797353461318353108523657842310374278352110448546708145954424458665088196479587262997299722373437184582753270447321228613000607226126411062440312920037154404779817438806650454181501472573223134189782571592637201625603721941831056360369140143432098427688143536937608215773593404179913691749271780840071127613742100113410477473493186700209107756725327589328141110428453042627956137972118843926901571340025600112830705877892391184277437723092734911285121468172767493682585607979050084901224854378753782650638536465480347942629272542764042692951326369538455721462880861174537116046726112628682689314948607561397009396282254070760532931642356199462305524661277775506235163727675316345167976315872115203848711745994653791311012216686617282822516486105206479398057858127260576050897479179551673542477655805820621834410935436175897827383988389023428199487108818096393614690534720314566375497269216978044430572853160943972671381483448677245786918196104604147450360121471678268397510809013243150632110651862324888978732709360331237631210983379542181271178402515056534091596145566273793899939689452978691509018615073328715858632462081093765119458786981194989899585631196764426615716789828066441228747252669309265746165872850216415600270852539753875519965644447768611605519790617803588228882519300737508845530290204127314644920154744707329497320395331451171667268149973870518250940932613625421487061855906264165384685019198732948419539191771520580358559790684735267219482231317953659579957812492293780869222706335392047747276180460517374977847222393152632640076334418810880530540813813405451755129243546501502407761330807934059734221255548847266771107620620984652454220468713029971251149327368178209330209863568698920722505333988142004162589031801713491435609303923245686622627759245083004283755734114112309165790322545341490977258116871341069850304135865772644538373521742769723287165675127254432116574283664415036848046286807716132429614684358534628593218058367660385826601579231004512248624071394294083748734471043270130170503319474379163627555562630023244748652709874817251662124353403601559418702345340312018542576163933261535321330369637748457983689429463430923630375369493007420084563512065022876057097255283463448853449889719723038294614351507047072343959793582232585151471295299171324693624045557675650259390646122747442892744182659272217030655676716293467522523409973174881697622833414969462376617080983459692214638872932230900319922421931747202715508537480526709071121356570295950476435458930943520424439587782971556037494990385094504370345441394296130157861782019512273351408572154504026916536797710565102095638627752389933087415933134754428287817082515362937250652094470464852040502729975313293894885398846556438547107582567529758845844769642922764291175621520527633384971965718972247807021055592414270697180817099077362442021101503441642370333077351259856116263872574240404921949780529822344977294669216962309992659086717907155574772959976858257993756920197339687086206802149122036095999068999342983668818764936133316684062037626048642885977457257026358630352118855908784565227583876481062845587770863618182935322028871099972055411911240836129978818104676030795035759706989457062651266184319527551881088808322935412369138101036148836769441179266574731020822410516779429428766407994091871116953622988888747986729134615381910258724693473142333931952318152926950901400690809156095523695960864784555751535266414900924589599599386626981841433792405486555520784274610214635685897320876480271853469824838641020246610703232223509138090939973034150878356589685216937930359778157014545321007608028792794283458442152037658808784265484129758865286138940302970752262830360380871469408297677499588786635999842165661978296949452833374956297419065660032967887833705064428244519152780411329414041589313245557575165062445265271720753635715439920595099024480190803777935816670624732687285451520835204950154512330224353036519405276909270227428918748179691925172350078727955163482351571005805783795460089580930987412908119220381030560122796814313540959444401757550528423225806881053261107050384189415661300989481172976949105462082892440537245930932897505606908606776230339862285999718759394971429809942844481756297100802499606528555337687705095320590284311177821078376733516842413631466830169595111572735502310939041700308264080570909497731030666790914185269365077806761422773128197724968709636289294908190512719454685167305788096790975450142212147582194471493956968814189602332299572689566795735605916210654633281541742201114014468833227521274982092391097833482232323456984461719879767429210602280631956283491778638883799024432381931050525354031991384692619019856911788909494842513166929427920789090616226450613580938988422763851987741539055025179989121569848233180271192752379220917835464358449127272117930937189545181372266824499627546368236322764331906875400500915706190432476121431692424705905786962268632523213990256028760340523291260438229707732090487774169157463556567220376274067968298438333995624657561462403989549357534757844489067850199620039990034043823285069003616560192584276048221310081238778520492789796475746174437870280737183642953749900335109730623359581557458004044655321981014184642715841865902183649600738689823551261525780130602199603356451169156727156020749536188673061981717904474966446443058204856639631475810906143521732551423796911474171792982263770643861341153556926328948799198537504989100299412737499190172720478988485975604691631900596299585832747272404326264117358364611651996629160859525115561329864658242810829591381379883463634258390941535830810944907811596851553344882117684641850022309363168406659065213921528380750745746064688482458437331174077048423822264724518587815954472259900151680102987088592683889458407458524740048163363315741788231913117827968489095611904137246406421536200689294081071342589500989234666949149725673206345249388881294863359895973735762574545895536356600281834432371905659451529293574269638159121096618785983158163048776432438117503550770702634565905533244670205941668190743087076603317434423820694550254407805848148601260485205082113336970008657180029905130678226447512556231034008581888843889820437387561437700743561286477090182933851748210401794727909183818996262825370001930489803557088109396016136871164918392663320337077784929726318633332216558575674957431718764479645504339357546913339139417998262177508471943384335504916436761189845021381670714141223114432563434882197624684583085289083720950182519225545658987364518671244500852906892687668343130587572565495667281866692134164729080231517188336865556909670834783111498109224912458371006546214094051622905489934768148008632922426758729109408553893914760161822305211917150232197875211334244210687558868857212872620853656814452568805773930844826720741866351421990829780088911092188621666969057205402009008728321503108452294332698596662253003416908903344389472275468858011693814554798401992735234989478611051358955456909062990260691591382970639467029426585225214705919107275684311479720035010784731650566216231794563213959245086947932344519175601508558727698088998122949188526846124435201699545907629741832296088194770814825998893086555158608713892328771513571207412284228369080798914937216992238543518648998187784038068585323104206956319117033291090069683902087863551175445204027623388097253159682500757216801459697168687727636534508726748769868399192721429548806298492141222824958293636006864978673067210605212424116189161512727467040954082976268601121158765467896281392526938276952097866593873277567629361885330809680533492426946727702790081961875945963548691404724798347563038264919966345054892957116315717292498003238440513908735040243189475061273957274590314257551254244955416224567787127977203400697014987741704444371758852731241407108836099752484461841611118046435558308930111552446367258300186440872696425081953463857969671254738643834752848503667001998358979411637938291395811962081031282002956159557477351643667896498688864165858964957354612667736248411143521524814858096440427836717080112650136610756967094828317825449560105661481183707476338448594091865329821880952637296979868720740157897527129342666061894021790542010269097169513741980800737287001137099175460153073654255723744245328937617768850555624922595347779293772554962206712920108493566557932938296272676737981154963051243716532903290049990613760443157102598194296028855943107900449687610911236311799072268250383651387715846000167892265332550134655098208602151246943946309532185985268760016516381213845490571091073961191014648681278346006322220023188887269203805996041861636541906698184335083135201855713617438550951632660087561046049217003760073241105795740260401086479878613152026127003016813945720470842872437316578963266746200246002446172117362249600714922751050842949866269544303216682570795922317148470611616371752757775012179646294664085507384914870833676182006838966405277086189600958629048991596781530094002950402325110406562758628589604936572836358503443787363693615571652732828892103186224144898677342271780417860049003926453798759795640470396023503587550492903113224568548385328681624761877110789777311211282655003266144029804845408398120023978564955326409694396610170520612132122791901021822907339420157450220342122405454650672754256559235539097887978166056456765270375866280286210234139366165597158499586864683374406881555684569178384327881656857911527314149394156369273819322770521803038133525984482782644444738525168862867528469804795748508387581333436641785970910728275714204536531346923291428453156453890959472196365329596195469051031830868919585726634847034164051751479854122177616991844565270932196817717222143349017892997747056596428774527663622560355074477827011809821955069521385745066219238284753987085852378149523709229010829265659492679310084469415353613713240046866600723676393395905069717216279396059179123798694507375878087313153211043861529893080501731636963538693186719271289975266148933554122420641588915849536942211034631775429859021792870675710477152211871503034569212376917175754264600969256603455705654498457650883027473998478360392283493445134249400879139897760207660813400538585413065897932941698470134495541101461894924769302297981257218109140998843037576202693814114838822401506984067410631750485421548877801365501792160130876391598648722374103018643246569678130334472822838181414303675732205862677193512542748726997401278263572685773557399823132837632190883685054393033779155715927159523394949036721267505205411779466624491768254753228693188230974942116565047438618898709899478764658549885852368700919796767410925361465842130406369767372355041947118342568025832864018994964337482226043577705741200119772309928963911315100179075227510853221085973629776480595965165772875245596299309963811106251997493218193908088668638821612414541867814143330666209118847103792046591019442686990024008758372121421997027580737662674581319199987731551006439361991356966770466401918685809591456038811363156322739444700295506701331243420905294448024565061636997785339853268186791954093466682497743222438035008758106550482843271711429992808015262805342637311442927432910785046033665988667533646335669158328440874981170348532282350748957485908577291580531125080711951604600067675419859078702471213385495287911695625215874685081159800161232082365317090671069284933732907007754049290602064213500645333579790178821099698634168972558685374459326423784304344483664363079713626351108433753513977693942189610478345092961720500573682072573886020664897747113712148757951107734122965733880322224318748880198025165103509454872901537279125329971201179106430944832884350551102892006058609690343639603559939265131488564810235187004968727199210564549009244376059450656436680007914050836558518004362992821037643006161238941915476724154163415613587089243046890837813939226654855352583450331678902478873826784420721793844512863201729346602146934960902113584171643436030164861568632310636559510466115830973006733962579936147038059051234992997164310708192774602223441314727622195131257068565828664615718331137695726435333917118134978530848344468804717492513186169106731415255521451330754257021104547182428162802406948174916227148561449630390644238081085219692143715136277618591704068810513376599527196419817610105433089675593906140312979475634094981560941057070535712239088813891254771173337233364659727215896232861702410368994267039089509973493155668111557283442025401371441804985679425343924261180204149387055548948159226000265033800843790301188130414366446662766111409938392945849596410676507991284860582781362993029692733178603493289991558390041348832743230091120175913849633349314245700233060764020140162624310958291726802418536869015843952276774760152472193261540351792495109951809626564830304003337707471311735595663431708175691152627441385273692597688895969078377970076846116144572044380268569684032855551086762007222447300889670768179051702321059704585402021884578174630997888193621265680399221730044364074221601188403084573082713323966527889342008192745205506284666660909029270193217616274076259850595446752630693099819473053747895392852328597389458811508848924425782847037490949515308850559136686675387895023428317747703785502809515033110083953772731384484698987140245335183020986944240063046356615914369562573451879178385980123195757616096275965996186853349600932732114457820964800336533141220615172013543380117649013032298082870637608292701688392014397149510203812709472582507809366486950387162302763244641304129490333493654492681478469547021722585153811017258746035596134038871019643129876395821090366062400650733862312158770976600642504552764555416229169248566122194791593387785585170332444104528768145537246543841812297280657720526053156003423865197066916895611433387272398280800456635604337989707800865124804621756356712631744657100548462069972069196078773626401628516742112239884249891776997805504882226829550866065325326474735130581607489988911941778783301277690416246861563223933677680198161989290877522842580622973075512663944086471896837700546881551468960973342526230295104990163226479216997339924597120373413367392019494222774742114340812541828427885239980878314057508328887569065052163442187210382861261138666718577733729935857802160930991587218385073327100852307066285551521541011228008867762617197146469470373711882976321079766924244682911966239720052605785297968282753175832763420847489581031677014590427773552120149883804203173412480413364841513925753374397060529128707308507837704648417491780542782823280455773123160458233418743422571823288961774221715471923775861648276557786199006271583110642713762914064137699591580073937597157711194035954340539441170838630402191985983882228633210319016733583354206239088841675128769757383722869042841168883833726228568059854197828699279488768285143368641696569790735728140223015035932083051702955093343489085288039878519954450889692822441889294269863507882659739659574903482829674224694403625621206016476861617720761929107632431031789750976823018474499993224727799864582816905411317772962833805258872714604225702398237281366741433536348203079959303753507630580789485314512949497589162573036017398493879913908110688810993930547103851389886503764924449408784328696529433045973669620535783788250718055701310602290795525082131575386206972495540708126444213591193397613552728700865922546823685350919661746987180435863411620897579806166759067911558772022369629066389176436311548501399620503785350571195722588064521248710854264928178993074303017340307520994316847720092717799372253569199387410109355240836513495786193476933823572868606363970214342568836714091819718017424426050123356090167738656264798167427731369060583196226595160248171119849656077537921817738349932002132140044770735090525272525852177136540425724069932853264312020238300542119414950195875164914527146255987476738438007949762390858969542668503427220850737634018143048049986110056591831424946071477302522806299085840743580856313947860907785380461320264510809075859795779143122836593988425235913516511349875828323291452957406603475820531720502529788503091518948748858829382981683007562805058362045803691545665374016773480412383946055143141110677027114185552702362611541759839694456909525802550678664630097415815741206949662070881485493963670480393500638273985889965304927167768197856633140133221891361559521470073350584438061771412438525903582739563815547244639331127377359835892618944524031219805171268092583244975849589545103482544954271949333838251568573528458925493193788336547549234488053855101784948450677645157703665675167982316238689304730123839380242935113033120083039078069808620605832135408799564523831428780332918224546981436621913362821491582035159468365491069496612743323415237876476466082100673267764199811009393596603568853112049649798954859596594069455860228114712488030969060627373408223682665289786408191282206575328904079281036492186698397265429384501335162025120197042394371029892949348973906678119392002390245431955630680149165218523537834072462385846306557861660488810395413836922637931554687304696765816728572669830551931964501205462652258616187076620094887344069864883029925285571232867391978314605617932341741229255927964672975862559007077457296749565813561176409175548961872247898280079748298216602812283055721070014672258594019674593307498740675213803710508572415222770915051782278217136164382043139124193632656497830990912988356282677765514070714190436083324421012870390820678442896367581660221962095454555398688396603916734437779488982208590998722586553447756497560068393948487528594679335071563318482545725940344689888808851541479445281878606718639828473994751023230428987593300319959276829264123378599515189133401189732490687595367188815181562810078000525834917953648466907279994818511963146410955861781817824860748799091818680437167373414182804955055419217314274438810847427757534847428619835115366851971436695652663682471166941491884518587873854179940708582148195365226220700023610991841287911311264104084040070196016172049156140035380722288979712055951583323700245867312986849795127893979515667104359518161500629538441744540253897295753902025185597808052454933749879677282628931441461749602785804574901774955158204671800365309293385181700494666073804342198640151579723672690846980709264284472301285273380043362089731658418596584012640108127940719367564708305739484369884065317278467112520452031917561921161002964226104130742293683365995152057122514490590937965997842460047947218157836747567172415973033603578923733035324634446841316971769139033518233624546314614344952168891576959428309207736353143243414121382193791016866576012698971408246081887019457837324788987289727477089621377671097371163042654104273698042123634819625526430964165144623658023090310281427668157932251791043513482186228441126109115285920012811423146266294466905526524861912456472109257946506987542399595053103546413313253615522779540140748798768908157287872142029355693772895392992422144833991869074910030181111231560750182992472910182940051433960592885542063831020388633243039634888244885517123755204048141559347481390514134992316329001188360973028630289534219768617344610623169813882997948070493297050842617549617442860941395846303086214146289979153995380768990498663942405080675371066077726029410239705893068246497719670519566964767758724203512774031145446582873193095043393686691473767577927863026793380102774110827122990070286614512946818898448486100093834250226550486631268751673677513263782756162637913927660911477354872155469553856119486911614971758837341753357976981149405093911021058521598129320218901998504970479063527768930909270743558411762212574310870567342456429970557043913691742827240107216764716259653451432650732226147130360929254660890124779786513143299733470192346791388631215295619653197196423437489919934328491024358053685758916089838322892684774492588862626694439724080405189161293078684189187738074600273183706666244382454227369440330264845781957704249208185594708057174416309530667000301096386352643288713284712377931097723960041037074631130101671744243226991495779661443174853083613498853599026774774888843043377803200770653687119759969176511022157771013507427534146237966342535100876037674598765556670307497591979833240427973118198362591698618171298481175001090779939009596419270303434662786852870767874335621146572718229020825201612378653448617315529863957763532825301126932962967707718695145332097544871664978140678452941012419023177273828427489729370836874443990522946951883205683119328619074758766060790553927944449565236450760278408082345101753988816785233619637355209855953504349868527434499576449440761888409924057279868771887506993951776730384695327716146967291734818315370049172531225985046661951726266792330211973616928384488483195424788110794520176211922933079732538200713206649195354903389923575431260571026114858331964400039514971800259714333687154254672568831127602025887527958211699615374551883079888630003121026296719912154528389258010927526316518196509012462794915885963331537425719029163995246708103225858854541718991612818842722033145445404372376982986432004994600719048279941612995962699712427242556762594737379157351820570915021266628935467588316528762499906794992839767318985666592785519754354638535256215075520055506015648877009663414982280081536545913744544473672969141996314028577895890170638975383671286725785251942947292384778034891148939351268425748187614694387670023904732017113577312404300860270190701170874122675039190254842405093499730881107784227019554356284765303980288863568895421960586497079978225586521393124735612728942392122388554993247257399802688506774288930643587942785787609684207629285855529126332384674905404063459122353274356251451809467565059450759129891178962659022229805999602423598713350799888296573759683054999319921714161790662289018379194508045884503397537616641965124749723044249914315238782753014292483006661509217486504214094079504600862874492668227373619295415793360346642222715626508724241943677007144305299832504013776086334943637806676752320560062306935867788593880054354977739358875227951516729362593935189829506523145372738593768757401658080958416208791533095119566403817349227893221379995295297061960584626471231629429478481255870523947137207330678057162343106783820130821274041960911274280548819014387264856345295167663203734030078552215849856749315821549223125216809478286940994979729144932404126128768604550880357244685553126053230193700795114102904143378652522865510078091116527098234957670532878050587404661475274118043833235642050020714840350020592739588519619809288375235628263045768596856461917419451349664477747474583991943674087908287106621448389135890547417136767753964493096470034573844097612783318454342247579640212895075436120826771216113178636429160215997583092977590949468494455655938301450177097006316256970020074486577919549619454283971234128760276542319514581662775338777414641021707528658787653944513127603937682701782878466418084489796943138317215159052507464070244875702449066152084450475664898406920423148625444910205652702338112098764538320181615669017376215231661624970545541363880578035872588002699014968926052255163501895528314318405041005417195467487000616652614738854285518973583836655973762259030116571875447860171236073478126944563627940567573952922604775616266228170494870222007947644160513071805629914444429463011466602860631308453231561431944065365500926579256797616540242535983502247114354890764966626822411649139916195319295972559605576496631558512341759305587388563591791088119582470273994108594935259971455679070820375960281599640386485760264787339471236753293821357106801762451422717253653274767202281980333903204040738187363251046014827766343470916157234353951476402044226738652056783077614235678528402904849474908106953889700185083690334658047869636002396907566106603151699942347151801371986005069576699297475305269563842421644925300790244084278473765638544825581241318499386144640605439712210013198350375360122080048352636145165590182620373504984437166672621145220639687305666147315019963274136776350088449320296721868749686177774938628680167382739157566286989670225677274061678628623397494293044300075187010348953199663488963597042021798351738473589819771805142875323639851137032640370285165791575524953809444911417749109187202313755726299378300449307127548823740339663045045210101314670139062878373910646160890775142500403138990216415832997369228957749712975786391326818601117427612689235492701141546529622312605913144119912557142084032338496481476419337427033893750697910045462364739329823615356974707111762140415813272646126222159053614545659128239911892823203933751373109472660085732318985331247370498537076014577361122552593347640389889487039919065473879013656286264082875982577697930818871435741583374112849995479862160876873970903010717943789552182787073831847317432186866054703735452759306003367890453744288336980750709460741363717952222312067576805120321042935133638211434701188951492728083895337724494671241618440426167090960903807529517003814159472496699507203398835190761243942121925874660458375813162861812877909277219217762676315352970175842478036767132684758366895778660895452796624223194887921453733588815182006458594556718737956354982456730456068916436843990690069493013130149460853669497965831221512287361434289569386384909336048201334763123400201908634939133621680584203375823875911606346836402435677607249015688944208025968530872218856534140335385234953988122442648455690650924852142625121531133615458368529133041811302007193419068472230730348733118796693294517622449919417653672525775424431755500324902201777610126671890581473271886009197217148331497027619747379102161119630881012091182473125461459867561297464563369557096203819538413338915547519096300768995539815940080917370299153260394805372912119465889097243542536217387713324112630935701950720602743145578963584301613303839468511555938065989475458805057337578003290319188536768989742552802170496671109264766748684457854232740574978263436003662244818433023092575005761314315024634103508727777935979056319537125018444870324875262414182950219109147361617118528584947579200009383537849113475241391817988144830228300602522526642621435593593573785255663352541984869917266286600563184646747815797363329923195209715049648919872888321338442539543670265522650259743836681059105905445765831041854336758055165094620709337033926633174993796953830371420354249313546414577148461144686049232443749926275412211304409519133450563592718917791769157918486785827456085957799177539454659892954650561460573378483089039280815423878011699269199601739577369983409661500680689598290071501862928495423523189750314183400186144043006997549282319093957597202778784658682644916241601641250788981058121981176554432717841190075474339242571679260674224403563459099941060094614440517527057087631615061365672245851984118273266894776230955558582130418807851038982695356439302914025620333196110467891788054676674368868428983229283679086973673634865807125316955197364897587345775019493687932975372126175541310364974655610191153531271620389216813633833071867802868859279398056678597082088434302347456295989359394785643668327693319528644821691210347908551863733297010832563818902408865273960130468820100026908387405716080534960397048865948431402831619090193908301578921311040019760304902271612202230538096866736813676051389018275204956284671483864576015163185049322725313828357839268255087844862136461112671052143690104802967383429312290249086933466377826284942906691530250425731042350929611809112314999932832189734236942544694614509728676213121722282122579700307437003923815976940523842132234350091698601536327338368778830847193585174615004688764235224579160494406496632692595694311970959947219726612661408642239898907638536629703087006276641557833256091990078999766256666388666657711668052599556276764414406780461595688740444135216249626774472939457080371008047331159717503440685826242028796201383533906460081281319007634013465802717496991193875464676429660623083204900583784608634704449820726022897754566528236364965687268823444615270879822828744088560313324229520034075890358188828775525853249048154215794551502118333175692815057592967185046005069797139922814456009322485133182612932722722606101009517046079125536307873244733131974234301548188805900975490303441345816552873549637996325537446487710818194282118778375429594236589092108661450188265593414837619669869726952133185603874432742003606195373314853684674974444081110902318212974793826320263591706971416306281014801521996431758149301053418450338444637308783692196561958580789834511022563549018614247201834657002625374652929792300073537157092112113253690845488548938456922078113571748515501212663375817337119075723440014019352988003176084935402007057212719342761642373489338985030539144477351657662404290578357703154722859121018571193392232040335221877937341823061098813381181850107848098395956772245444208457930745683506138892459786546386291831508609714301748845341832444125414755269433911376193407124085055712802063135267768041228520978911305016811898574232216828058861006503460250423563700421314309327732634595162303509927435262860018858640403141812681378468969721514159149434271332671801301711313987927962029675934140202866233809228446230811324322987681889709188731919530636789791251638991559676818628072173342937406103303347295560910534973177000786531657847666984214155411611962202149160858107255047819028973199178737079543284462966557173620947183798583338242396008228765220979499747398024480860283185025455148318143799697622360544195043718451191624049324454139114001733197720164443633128360619578644056352141246021562998293493474071174012785906713970615090682454933462777434742161673587397424448730734041032475513925768779870967723226549567328108475184385507453915686392552098901334758557574935356515769775183320233765734622753243872585558399957482010948890606914457334373840804201678419459091560505420208558635551158216911646563690707258516043391143689199441909185525137961916180121271814295748541069589381399644056810034163663739426993131426494722935421983239494181206578516551027363115615173049331906154331325438689151233480173655462399886212853066905662241201755131034560350852822266661866609598674831186992214589518682870476954909315302066744077612772704632591508973226934477570328021219969974952590509153294447477571381754041977682609854075685637595378606477746198124087952134599016969207765614057753113466608129254451024238549259777778222936050679400819366773948709186697562898710296559334803326624687986904239162014305404880376606115091049073838889916910938702621799631259625330309771679220568513648162262473154523135135958450811902934939129022665351788844494164623741433983477352100330520862350898081916540685459092209349617556500340185080120269312823948242837006387404948700288896417991756978883345916147630299827967836113317744737345027173241505786469289728681038467746208463516738474583638349884858375466321803993871427073941775378593984964530278943059076815267992166126009979908627327936500476972485365767501822326441855656189812537308483751632247800337417639446651193973443645734882404549279934647065142636096164100971589093903947720318885895012635144640407443626748484827034115985442464974849131263896687792006132334550907496258233879553703482275350528929092067837593308837395564468722724372156929079693041300804819316695033120332611983437579670745718994146142499491539127042664205158013356475448749834740572714341287523084135119544833138189374443913101574970085347896163767861161635781852049173654955030094523432202377483659863438874451226443740925314134487979740021778520530111752826586850864182322368512830980832544024244394411860292371853401983793670777474583212579915150646595049518775939991870296312146417898883119587292491149816923418851289755207662098757136137460297638791767434726203594947010199605596107531313567279716764382963735057589586325741236079284588934346443123098206130619420451548766295287689652684700643722257634721830799012460022941835661257376161812977527997831017826619864490786082787027736407653640374456592908166525268381579471596240969362652406307933299486057572569305407697763919327510581227574555437026393640945023057915697197221244121265761263730873059076623650888519614873379024144141339965408631794305300768536254970716870663201742438424690343382975054450183618078378735503387484327986689850572882377734296853853144503488107665994493661457184965050470612365294447235033182643420236180754536616201421407423141430551851946690298976178095221829620718675734367965614813777182602681855506711828264281584710988815885075764112817945431864480712968559313658291880799573756191455272568592458330562979274000765225848845018987469812239127538041609157809178304344163211453729614848424378130137820803427615042310692332349289475159661368745174327295541974727207834488951177204096330272924688574698034302739603595676424772959573484283533809967374450776490293219532992133904252018400076830213341125438553550499215627879910465143339426477451983604220580773199328939587514811768652370071842601682364523299811678227859945821276431734633315209369699688885341057544123319694040498932264501024966103144043472198669813062133063088013623820021689814346162344753437397270383976479110622965458869268544617194526427773489296405092529112042532103062030340520170587569582580391666246667098550750937895194364735193300423095382338163750492009419557343778819566934968236681170567376146986878311147780921884002331368357124303526060705576847122593166014438985520560530195979041239750524263358276969090722602556683082980693998374462260927757367942092940015940723195341994761351703023126746131955074614863202358862244748077429190958817349172397233235412371700597907586550990593724945310340108152595451187501306149173977055206721003920145310947784167071453615484154716007638668996959977183084143452077899637204456602940150089941407138531242467108329672760255894607576592584260469167823641777403202740173695915478103253030075076586939935011804020375564117092437420196225737845624358819849129972822717244363710878205823617818311301688467103828660187285882939811618619863525415725611817276532845352254696375767709253953612758937940180625515352152343502285750051754143340784809208851295336407408054052989625372337261499245812619482778744626044194080123401819633435974114981301229293184169411604150541692276740770346408754660641611441208715152290836682706349735795211983936748467368748608664704213169225393207045681099763189968679903974332950088767163786864777326415549758587410449693114744929304845647163736018872134859964775706144119454538767238824154815174539688873591101957632519486542058679889909436410138313735224525318371624389717899786499433374390840125480913280628240876621959938460235083377397091800261576864891022620053806515886958187833429991081818045420681747433220383830699852164623137548582028036377163764212357636054472093505809302282604913900318783935389563288944957033963205894343450281428205084606954154117539951906344764945772967289505525414174437775192628951567410165809622439527266839241404737786646885526449951646518977273270141645586954722985073869404485085390685450244501159305023001222991615200391452632390123094599184401962013224553250311550972080276230760252777815092529886749493834317938134707352852245321874270789846612900153183269602925238043386535480020893699658701195840934097955344195325393247704653927171245011966722464913965489613769763336964364613062792733843455608305394431514531243690921816510872828397117902887696128197571294768395085497116903619076083809104699987258408572503669016938937644232096780279242477924783500978441614056936026088828876295910481750344834674205338253650973915060384093062390943059169931094865904881360114488103418445780698290308875677355716208442380175226029835405301171912467985681174683176309350993749486616057789939791685179050162299010274001962953932673721643255309582190177479911268332006287409944681485863742754021706389208599218587537561363653651049304913075446920658718890408325012008562742051277509070548130024468351014288262863986107280179179511801881404612844105962769766820631226642015572636829908050615528845957972057461577645752262874294755790487351293998811650879902232491963384262153983295887578257463804923166583299096365416703396837658992419636938734985952768048828311460933776599357729669911541726411597231327625684463284200686633881998962527900310226881061252887164177791674300878727326705642578807556850177980783906833712853527421328885174333925875155020611864224374219721598240595020893052153684402828486712319724416872261199726928686606802518075753457718775580038863520705718320322416342659548960314326552103651680802432086562298444535292258509704515776468079987571649007355275364094010961407533698972059985875872886346160102214797994476588570603559087031031849620494465110240417543116478763400839031582924509377406403947170606560752410325018000263032878224236199152105503736021564505156179025179817237064790038564171498390106232846348055135675535056625340607136248125330690248331220949880934351444339363289427335067264007351467904860761684436347295598004733634894025432185929514829940620059273658836995189404623594673589321489361486547465765564208357039577388892859074133612232022590747730735501856653905233598383987698139967191697259805203250819370151606375699262227858383238331873786074460699933713288441589795323583181484734618162149743459314819587218077934612336863133748567252790458965386066296391940687556058511634767124286799863276232254906371325966931196608511046847294828274750137908909330684376980821836393797739184944672870192335759411039426092268235853750840320615629993053275124359981468525492500290068030634960991046524850612411341195173774650903649516189342709117983071972908684350203846009958287694754748464336003178641229285404045513674469762075421728508352796584351385576843067783358474885091441289945794688552054960356159313428386481315844600292141994365869243061490698985501512271513680212165002689018283543251264785411402060495854085162470585711552977476566486370185335150374648170882045348799136443166138662207487970009033194224275857768604757972711272536530570757831813758083325510372590749978255649514514741406209670136116281179267710689978862041254186199051684331819407980700878553675269180962696515165372498082029982470471636117171804642895140719116519839475975178172024453559087673128539078893618743253667898533504259291728025500310336430714478775020451374513846879951898892628091623429606638734910689865229341542753740164250538722816269327053683117768742021032253756363435914087697572233969668130153205923825760742605947071180662347740190134860219706327668175169981214168613928891760175136869513686602076723943816293362414693312959768721487179948786987549529760515528690784531875651660919119925332257703941755353978188219406041047682222488594133452248133027459680826867186139905985980427665521206080541675343866931173776544007239174801485255525287576488349683445030685525930280863016789385603824299221692218504160416471268322224953048831190775345508463221033643071341024624528760302865017931345641303620818292084815814003600001594581838620360671854757134476227431536657870864098422057859945005952191226335810053960339023717444047408786238877521693848774713831089902762355882330516145394923482235639025441713585082849017603146352583779915896110898233713290933114797025187924302400860186977925457101880857403368991152542666793901752415047246477356447249786497478890046919349603477006761302185900653199013832707144329684280368335452899286667097058187424400330834759680314338387163322371567828696148783570877656306751643366851604094409873549432104797950071617280324618099454899306548633741396170470117286636230012293601046430908473215008271218362164337751680202191241610002811141687280832841248406672984954140047847960037319254263250670124104514527777196152720299386995530665501440246509327334074446002999773409134108415526127364814449702963274335733077706176128815574002779908280389952336846641104353410645672629416771566113188481190034839965383922082001383061340790071862532646809558487340498706954550270311787132872470903163671094258100621334817327366785975161626226280846592098495212471621811684344107738592111514881075477765935877765254790234754371399506300595259618688630491050389726350687327436475535360938733926599154000891487195534638443118181528342631692832200740040869992258890797117584427648615270040234333888178174487653365821715485152721819953388157008573239672863121802753867045018801910705744850850850886305163193279439205657021601483069034987291474163260947918804213714126257981251476831608148074750348083035599209211400876693234181847892000797927664917021951188931069648753773038751969719558385779947331255770936156131608987240144908464409433295813169777051662779287269409059304389082863764648273670480055212691535042381745775145168182130815138999438263566910404492000453011863066134847711014458355452114258081928560222564779642090604651428397598555944143915415660060598094074515382818282932778242525322512591951017188357509944768308908549480418861001055811953738631988147996561957162479906374360476239842610062647454110288755969092916704394214669205001959529525321623508332989727705944156817473003501274776000654797640221628891378425668054809374703289644665560840523832052360379952187018079709280118981153221938581816574388175726287532015381736222261732357212044194931157917850523674595473707583818841193385352548633320302400477452433463248937796562312152259873045115502544090650840368868846795137642160375590777245222503059555436713766057678408986506263010099433574505143584782684227453952908306031474103616095327190029597626149766563215098123640436071145938178888798655772355459045996503330637471406509024992958975375767540364775134068259997834409654210309279268849763576749231256082875167493000675077807735153600598061980021640284655034412250200004791120866162631983466159785288172506583143307503741407714721709635718168620834697029625426844593142748216857844023254752971335286689488618982593555943193774828905189532907829662448965285816964194225052152715687605557280776260835401160219976355262872441359502313563530622643907066168910855395251251665267601248600893860705286357380762590551978572076196679380042282518121787731110213102631827200588893055998199213986729615754883212763104431822195123331868571373975913748735594179392268287872466900244883642272713166181050613174744072172997369045700884386542913186645823110098724456921037606204119485474053306194320735458151363093558725606240581183183395966604810562987100790518151782190720446533926931355335322382781995491392910311028661282388424022916849776875963596034178187798025643462453517604111779434682414984242774460792867931044839798667661587125012990282474666632528563878054937321654676043996218230087650548644138676962434242614052153921925379505208818735822082868283250890959519291505096452717504075840304559488707959909530375974223361930123106831464793400869122106784008942805381212925940759591436791207425604944220528829181143332571057376931249947065772153346518067933711476047407841939594908786316330563858754608428048007923416013759557562117239223186705771931772614145079818415960152495379842413538501964753167675688986085490544269526873190853625575462725956916877820601701809953366036335217160958517662558075130397693535931173113204960057009421511466104635835059927105331137192700525358609488554814094473049651486873500559089928395389064665738956297517221233869340745273290608672579442791847019891393571264262410185732300358166588841344133689454322658403378241559216070767730381263150147129661291157833076593098158497119509001566838111981558154280158947499358515721249150157934194716742315247023895914759770176912836866498726021919784145258612440190733161725955080043464453545570343579849418181707283969725950863295575132931266696270664028819463588024930821505300512701407733573866860211499609510988476478846939521868073065581818272772920596876011453108509741707772916213923275548387084583034049740838480012406809142518758373246177832651932891007323207904741519061348667913141107055406110931570065723134838235673504089631074359258644293711546768622223613330841669523696594252654806896875362019201168650196885783135492654921601057002654689336523647538034908176106472476096035109204218291080619547880719537974212725491148166223214923674243708560320586184503799182234757630553300290953828297915418987574799251723678489042432451892183327522577512549189151777332039309471940136839928685995227437613927561464068033231201654559173418538104176519102211406214742118956184047423204980424336899411033419305686880432408531864175524849260908704774281861301397252193875162167516289157224833216234432615571365951295877668986656357049636198214679266578242826349626131070084236171493672522696478171494645714063580366474501488256625546774523697761770926938099061064244427230692005846943048100614209004746761283306389687785019626441679493160130137557664035668209734399749190027802709706072058250799479204742707485675966117144196709340457671533538998210831457047783639590719581294459234681561281568435257093087673689816722167140564189527360499193815034197088398904162212644361788226222247514590445512049775076042046467284811985552525262246655314812055668073490085357740559372590912839799337818240462203270273359619690230822067162135040164329797637643985087377295501797550659403079467482620772455438246426662738186736854094910568836225626643560475532750461729357802905651245581515790755936853803592763090291065266469400630579361499770597776642808393904965263772161472531510150990134297586552709763165542768908742077966484867753370389286714628067740679408927448242373055974216626976372771102346145240415293375840434218067112565341933076808464976052416013841196969182229662061780504014705392099497564866859296840626369579941863174776282360962558554274361362833049522792437157969007554566054402716496484801429107183405525905583264317212935215952019747339057246922767222006416651297205489565515794345986361220164620256545222181824510532057827210676158347132765446880848407302650428743260164124796307055713161192192443629451231547481779680010554673965369871388963710392941612880305057001261445987660951314668439765685069977725391870108183970980040687453714172902535635308095235669168083753814608569881781417436917574910470948197385018181546160063111330646098328225702288026485689136233708924717993788178377487011300959438520607880200213475007552385019799577454582482386032629213752471660427363825825617017767515588676808747716749510639251220966113219361216687224011296561349978795781195885459568329111618216816102230405403541092633295382061009068426958634662240717302192924476137268000954972525200811888848267018755122517372800680137324101941162503608958939727439828264282797379809516365910776522338515021618235499128978627927180143505214585904053823345403016933521760894466870536242496702743272728324876735213360917348777060976829974207956344758833920934711972543428896362150850804171234555870219046676510341490524708443587877810763726703758991064122449387340096519803047334418071073434721320805180648570947752882987559442644311953534107601006736136497530418063122838893070578951642844074756247246339397441645678433238428359713239961800156116004450077411103725698368219142723507372674955037106467278443250662537601351346926395161005068224263513965338145567303712984177267463908169935853395131689328311093256249036313075991172959370901936537419352638748526241017941277575925225249138816132236834554439598929467041184736368443119919590560038204171994737684350268938984272893021175436982693396658014772516884599003390974537695721879085769848808629550406840133196583187914851902473852276025435087543301518113162546395177811263592509864777483821503075548309045416726360604161054830092526637500506860731277714570639808805287709527404155669676855208603845213380831030098286543062004851739609953660793709648642651437599384440373606089619597067641804387279624114877341468730148622051677617431707666890438637501493506293782649929629619932309350565557051723337728218825793914159837765826335431990788166761800490615254892073518222814081109572737724235549543336200262781013655272903573575162686224638483524666870926610460904877751793753631830741261779145651614693850620926513151886737458894623912810669529196125435087476024978159289341510246996118154246928701381926838563019190684108940870146272543444706819414842321181993227765711668681081855456185212324701268558905711262774021138305922035563985451376836166561814726455140577585989715577818728884546464724327990696597134070567871826705764878054446523540901451275437270789413610406657169187885260364838015179506367192406077982942724508651344787650161484632772659672785981135111209195346775871135091062167077499081513212836424309044702897196293360236825346554716233816852842256197723244831146548150626384763244463735731485932222864917443391194889006063340980992298078639014758476481497216616982412913779024084658088218100500680190537013084048060204555857550116267478983425818391566765024030987057297476347409277075324117934737727825626988682677429909186429217392380843224707336320398819186806858781870469676015122198168510179961818217775371221491163274835802400713669097069986877505764747315921353864670400225636106110583371613246281249025435445406611141502554618644843483660954376789777741448090874227047109787112093765984078831147016517603434607737124340641350482763705528835746634304914528163235286619923940548834402975507167984623059156260542295313317020696244016771178741960472705122739927496594071636946026949499357781044439323451824997847971316883101414888666106291681113196625305980699387778031809233547580547264457142562130979730956852017333064313819786848684207587462236297085058092455484866571317031237511958366900388203394095160145852243021461700747151373741218223310604361733261732282636849578969893567681923172443127206214928197445402434745789839956176049667991553863062882800278058083650390944975350906007515635606961889331170522475934772742497066621828240664017429509782398088897636138819501651634265113843970718831560948427325571411976924275596942714871934444264532145330120807615023403506428709589824007273736614346864146242710597944488016887717850707732052991548260645713072727168998726515296040172516055571646464455464507115535895923316207863944218563612759018954306884179511740475731636988410157538154949028660874652557746489584592772102045596568046672292450652267961863736350637696450085704535427509280455630772314332131171402918971356954282870277517674793083020840184267303033985721458223738953360059838037482016740646935911906779412107236968071483048764177440563584972775271615932228393625953845217983166599490229713375762479789905411291597376791427256379551738240100684810842073739436865990221841430598585874936671991170932231174285583387783041092983465088489819837869337098314763047511503641110879587992677762950040130663260612526474774027095176926394938412581149091825422909956468695877779816440968960860041366547865098587779218076988596462184836716722371998979175326597765443551848497740519646990925482694767823957171264151117384893421547935625409183768968700142615047006236188761680455784336687400654873145238684879305250842348018698566984344840062599358595437730976432667178665478061945213885590725313179624463720479496497054410267227012514469851858752678127954271060828583149797574171267390594266899742617399462619807506866669145594874715154173005826581423896778298095600865144288615734315261943080687111537010747135056879162548470849348242940324865787318147312785249483957172038283222523912019698556343146094531767130955080429946701523274153964583167987004893835457970345874543337787989145867471299376660810220475234453107811317736753447514286487582814152064942294597144836434071033928955552655115838421761418314391241533652595938007455469550487382834774594492460033243007275924213886185984531550946720109671614068979898193803761821530019084213472342368166726616787270055083025986460661205749087471791619497690036763147117169099366436470802073690737453567365610213359938835940661162959462756462194791002106025381600638837264970654066461564298575743732392820669739685565011085152532294232149240294517985366980517187458004860993812494058823975504945489950969743005316021685765671534251812227095740997122982539955772243841977058602559944429700224202794034608659246072682398891672578702884660532706281084092232338024261724794097808776031699062386209328001811875872211381378946776815130144970124372836076119222496027216783262106957328052885103421015454147950256258325846312293422284665683862835857524079292808814299126585530484884850330603212241289871393383394034986619077803817504974808691777732826669685142940332282852424115388529126875603038680844481165391079231859284762289347722307571176590866263763936825576286893253372213671993310805001683220974010096501987356471909872042658494672328596854253491250452742240342114080013404236399331028831457555675454079693721612692176099718793427450242781119785714405206364234198897402054813888858348505833919621492030696061255922892405480462859992761295921735250867464702653731703468382448781389116783264010226478512759761678634841965618718877930829130482044128606312451920404261692971036568145133248650645880677724620460896232731981490762973665068134776127189362145300668612221777867178274364814298935631459657371547823226458800530988906380295317668473868626215489256669652852372482099894044846143544472962501647103885693612434072069035843514602285770582092541021791664003257191524624961668845627758172485224841299661712820866794202495721736814080799714520752118528685357278301837871447645213292630041548113684573833223644880446155998776267135211043529514206382670854061778499971780791428470814158659344312202538503543630170048810007931843410127697173342911037600748814493691231177634454836583352276034975356201804432950043534542950376177879547762467516946562127352957114687559381544832534367950716672762883396714513572135299938152681207392556689112286470443759623132087276823059615536026719002666500602250653996802692676190045404178873950092680638756670537991857864049487045809546810816214207613158931613397319227975126296928776168419528761715263282499141159586775071596678728113880018782055407035433891165555186197942519645146718852438096476499711092647297836367276907869301679544941830624810877021715194264206218120958741586612149241906539201413896798550873325486834805747501772781485929695588072814207607577570995655853744043539394593375407191032347601437018476043821273275558240134357233059230393332610404683742833388928913135330525120502300044058335955241115866236546528565136052724022922064914171423390963909563693026602517975705049685184946590924805953096146317494877903212825993040652651283132333969936086170273163974791516851348393214463094121741683379481614463515828401641513951048069050935963060386688752457922254056704129732830060239038827776618738279464682858212729588606955854042718446636276420241808443922082893434468961224326955893362360772155265362171330214153897389243534186644915809451651897525652120112587219689423240746031146324195092653064725939427548702715065403712043375172528047667658906136654320293625039463932263303903613699959084136626291027487205078687159481477851939349211254372594987177324790391283034484984845773270822755822593989661476690634606042353390575893290193650570574682214080088824870546112154714119012227712423487320758461196853001093735847775241704393747098777617356915023973885698143267156964567436125870243817768417570459589036095262210436866409851661432726524588944293408120666675635946715648341110130555943506851481084733415079549899182468616946092830067606065345980306148130968461619109383426347215852000988488068874242920855020877028364966037084843882896773118329236180676597131014755906817320574757320117927984293159692792571476151524321513607410930738059307244227479217075430242881255507756135942554302211453088305020256224853704710804051200230036157426217950786175631106802618462716956507734183550622246588529001967692350593480750708624374653194895180791090717989803564512561020501783851364904287596028478933169780805918049376497707207760881922589007545319278254973147897723569904053806002765119496997273078849774246765837926057056735481418226893691784416900158207757991606706527334319248248077945500503298888590009430376029408673004365735446548035193573322969438250322482283579566756619287693414872295539313580994398438981774423867855994734305454122667722446902308644518148342228981828162269489910494511691544593535347721456235227549063473373240522052036618631455240217301487128496396663925967771048564184262137964378019535014267840918631854999119797833393855540552659804847710320905047882673165118409952857216148707257841413745676645584964038235049947707279724234371916607868830388046473623510392174396179356283784946861457776392879107761202324709225013358417139624000783572946205804144034079675546956249211904355106585139272058377398553990942698208437429995324915286962464080701045788960758300350512000689432435974600967485722193602161410412429390067693986957720747450867632315689693757575615938605161627735270496700380135678402172493426696180638573021856188293397120976524666331532419691424296706526387883433696726727922682772269589852106538473561650358694918548056792229609765943462758520082640504473070810182180799745931120988729014825776379418813779461372101318607012303084947849723908042560591994805968885955185393673456588153540154652991185142547410936905367891705597051689256416615365829120475908383990314950675286109592062883394556281323606636053198156775914154858787363375578852523154176570830012339296252671472461292458693565096049539702199408561269512674187192544579191363861152971177201991121217592292388996523029409955384301090108790346661823311568790306457035198920646730970270537500451711309457506467081523807659219585324977048866237732490963332444753251341220568386705306708401042710578021919057271579517220863712521705008243574961361950217064336013866748116953923120263155061238423682531441004230908813705994178207346876781159093417934171071356535175586698550365868913789303619042280629380020730672688262743647023874869712831249218795962028900485863885918608605391426727686463445145308057359636594476290973298754991158317615479615673187618491571347616244842732150556847624887120021609991346435840260448686665086000823565902092236932295904464381131778206978702472621322765063518905786446069823434628297612973757232512339091113316431527572517257304677577450969098245005385223321894809394386296035032553582315970338429804812026996218409242088450537197748089016603659305660542558424175981006921733960698700698485747862479416064350898994970199283016845546027005114956741060617553905384695342902118943135082074929391085925868795500130627013934489187148355734296878745960199366832031975247773262749167450947371905362228093237360918714147964846989325421550287018828628912245409613743705880713747841420592979927095667306323011710631931232189964780440680715980070963617940741267170164179759528690197024113872556301476965635656752833815011311539337653385314312799767072989874393999854816570444951214419683841282594832841539959667441884012448399679347554060444866118413607159372514407127687151792055113246638946362348626700961698623663000845785237836835966457741005141649263108769085827090679360868652126575734453469979510625206076148580089636121957332229741963351782766655832654602293672480678472145084434193485616224949234338449036578657871535149902344257280840418000746839269570034475965527308748827408324622634272595913716840406368551192187227498452997121334350832195785826133519370593982496432863842525532899405587037203416369680416409054543722650872596152815479558766100375387698376399591521953898113329217803670153378029291129043076133637807032475342309268137081864370582483532702775540573432427844618575528643060987927442985496224879651103214803365517461013226117744784024306714459710453250572339591784057195949790458763768230399653442441953884759759236731460001115620978194433262886321568763986849171019815910381257840936580278336026669298558257528130156905764257782516484651498611690482153029683312341886308021507683261031685276058795101321629440439211995485705056389253319118057625565219249914907168498470347179532191549465062054950287412953092926002171209800498990923367942589163883367844558379055313765956414868675843922028315815099919180058552368119388030378306181864606869011732829603001136596629346825767302479400429850304795280818678900930929905867834955591580479480859924744482326956951603494541357567443683363657050464546466033377902435339443111908090655721858191909385275534319343008161138345827072719607227367196030176830332858186632705049652311110066038231513931085364916764707947142694460164169626191516868463530994852319677072390290546170136504113562210143713054194770638135748466664735350188118985953070502580816853989829155432561975612298912621914253340506463044722111743459718239637133587510560942775575665157055947459147531960994943361280314615595984369828924572359239264173983073727966712479483878389855715544822711640143672130052050841274359264585886631852961835648603921357192255665607034010053977339042719787113532829327971918781791286844532624163781009120446382208272793159946308815517611462222396201337652063938773099318929712887072952348015502663759738044254853740624258347079224448270030303427164143317294817880355340853375022141852328486057077404576865841748935788870662485120719898507692575941129259752177101688923127574148612546671766672717950350754858227199323074087850585645433039327656408819978562726827096524750924655857333641166483791305857762977055506684446041236362958553150555388526983118778560910086118502039162493946417932197917298669613242832430164606361271206645058294010920101766395418416201666076725725447757657260310402060416505184427493531571763093883028789491805957395384585118364004286109272439603086178522042494320176844484910767510116656675955671115524450199863838359293492668482292363881516349254398875560118199456182951027770798268438635680543411609627530025136766678043520344564292153471184149505641932473709451806322230368958765678092577330390188146095529999042169701619723375427871503368425155159351057610947959951621900555222309654465238190429197178322986180334343081896768799854682610291459558267873150755129721231209094802518957810505553628129640322709359189336080182498921185507904722827163688886083068004200472201669681632376056194226632616285554466882435265681691462426538410520317837890946251782486915987633555229856641725853857595067221449924676587276432534320597273891632680813802331136243412352028800397768212288753670063407146585514080600757612879752151817753136194628540750774026325776315332882245655331664222885275511543370626698172461427391656998923949982674067271490844704733555532821749245142951781374478292733003231601856239684658054167010503278037394461919518623098399441219079618807983862727012665432709313600934718168886730062811987608140424792605667048676417776390007451048148017976479910911506109689333949320954612773207719668047422409052130329093401431311359763839588288724008640145242528918371590338362726864476159767829869304215825773274660182135256007338121452841756890321795241290409854352393745700510720688205225597354644969432942262260118175388237106533871809767928614023474867852271533663028537455556400436943970756409257771547399599724684489103000119026117374425934553192090898606808445892670786137509861506680213953042555852932064735836019378969419128000250568384010490642447171330882364623187369548607591442683490613464547413014154558779564273221587982295369676696180065089759589567622625509828611761976585582147414995529538992464335025772247544819832908073851722864507306855988397911671934707626946426308296644824009596986085926784175125938873165431664016992825203614941286549582239268968852922223944448636631760874810712343690821027852533382592659613128321935779582138979370643150319285172476335152137345323931830047572936725565389676531322339978037073499905360502621973669270988553672355929905439140853481532142482677210656873076105772494965487794780314498153803021545238158169971560350829993209038437800151259828668775073388961553173318048925364964864378591511877076357647026980477242271436045498007174558904994402724467296333147158050441484976312707247912420455809045907905889665194019436477397271195613150174163094070082095957711268495399623545384499191288103623670651244514150716401289675284924045874514762346139370612406242200918670875510109781944291764103207987906881615083049329209025635394732480379573668794464502695770790725031299147992828014949197374503333704419653970268038835170254214338342721568794116455224486020025988748296310756129841413481666329001613145841184526090271234143952066295734779284915919271814496375196481334254043065406702413278265949655191279709669590147977896085889816227195270205041371566506130864843792539694667180371629791599685496299285192240077078114643424538871688108449000686591542512046276373113083656992014164483711182901719628342707672875232220617869571414514959841634431177139461616404644233680657834815149738857559331917623075921085901224608092445602243763067669743665247988920756635846222256674829998785314319408662037151482577391206044910668931638367271781326456732512894862453247424203211768645034470664936619988289987985960550841459215836917365219670250921849162287215401052023389335618714210567972569702633604729825766773424332705469347414281192695399724725803844113089406633350851798929436066807647267653715309618767126917583764161336583094716029656917689289564795093665447597401182619702839247113181658487200121191715681695507266965371474622445845231163035258344117594991580989432353104274162871174763361872739794084635957356849415344085762790079496325508524334030991859778351276247466404115688622437153416771715281453191763893925594993087773266374711748785183312958206744457355935848923799104426740219163698528597613810428290328430085383433650930874598482757293633971650102392411357401177157569892285966458711219784119000889455787759665895687741804578235110939704014550058957303417356936243233496981100271098473462851250397373326295869075228211451839281660152271663210029889912611453609248819047888811827135979587868201661332151810090350943569193591586884142929507969284378784167260090315980083251049523085437690011158755474866231952188709579714824518302484949626225484442796679207053727078037919766608014313132308886095935483547420910824133644768631817684489639997305818007014902247778560779059620286130520770252812451535190795784832873462690374923575770575117702744329501458239365391526416922087381279259064996649509985338745037667845802794586914830781706305067454331818657961176199723203194093543981971964641345470430988673769638629155065727535280309151195645104026159961505486687412004328339321013596509655554193643831565974365892837706696264743360529150524657509416983536360886997175494357521919440708876413604419957228163277999602334194132187372572907630899333990930662834290547628717550587225699986271106791340966879471524765767296946361643840531904953905266101812357392278850401707350718529720478271324354069392423672964578583994560373725184379668294058810492401277343748599871517093517546996401521926811322752353620164692754904788503360531480430905386126808477915956214096429686114776551165516563317848088133124365697004614746269136755876696978101400210082431924015467959448909856163487505916276889333746284812413599094306238865483864998771315509842965708989439585810902930987482285515260486813000424427648536695124589933216025151930935625596024059760322161150114448875419564624936810650544299024372932132835069102100729389016160019789898123272987385507107645988269207238329954869117860778486262903177158995070731212833795333495264863556897075861840614793680099847192696901864012685240431839262075209692969675082559355965786486301008239319342368775718988914976232902056918362377426276540233224985838575822447310296527380431160079150423242857264901233049738087259671577366808052927760081101363319857222578146363062163673294998028978932041694806581315345714573977562770124221609069485320565978663586479454149449944399921838161802333014026563890161998727942456758920374466713852601177402000356386273692844233831878368857973887308233929128140525248973391803683799794239226592102731277392808672239808876320043682967348946135307554041703977735616065842126364131065618614890397348698550109308175284103360566969356654252776871437672485672696554394386539667624691013902095377207407735270407293244188977570322979698653518848023088944689648958059115034649986702149112150516844096404348770028120110835998880374706303078126486044814427300803590511180631937310128757385470863531547135475785152594261183851293971259068230409357844787045610110060398583234210357614593611726297887789099986875454965730884500817940481264102863902598740364399049832117166482163235716313327690912258873101421415790232242385588538648753884478976761764641537083894461652868536034259523964015299859804464222512415215227937899906203034149017607668109131112384202467850526306641750820921626296253469944200639452585834014485724374371960411582835796794737805966014498143361126370992452835485120275239380626749895363695035199850962694822283231641389218077039333832088687979086300849584742834091715085050857646828634641842543728198836133823537170287735776831985423930686243416199465560153951637785832317922905183544159454259553310717329751585626890490266109724032382694778442007193773091698728761928564612482599294888108966597477945368146708126111153685416178480850891167841768628862520277811184313640926960852597771798785060546868296220642158643674895395974288785248687712750997507484236551321183175234764842454150543110243520704923461242157838504603547135751514617419027527122616614337818020000438914921070299193984462639038460836529516776561420711902098948620151582147841984463783422577318724601838822010494602144685934368517637960082778806235586233669801208233009592045344646672299291119367076996973208291775191058564681482032456751267447662257491537121097712560188870082210892986905878881835050149241375419432239320111204905139336287110320318089792466053120006333171101688886236941900927782738784191797971658966429906289843314028122465396487658498294233703540144979521116661789322975153037385331075875332174758089692088486185981009230521266718668509698352999506860391543751900276626370655084360158723201522361795432046960510596822930433448712104568050607109623219840257660159840542161549828275858919856655359888769218797552811120349699825473962697560392397899169387817561818699689907708088664688577785476275401708290270210844284839999468200555393061967835485762660264527614677333856452265008387109705767632387222139061631948006542672228274226378861932142279573323006091544315852970626877155619445752617407132177290763696952857838350527610187046299898247731521657541438233687007538053931767860304614487811612136459726026898085634015277893423426050374061561472698573500772719117844182318724254128734731409798087169296938369255297795949094387443469785552330905024315528531466334482116454468359996692371330732862000191737049757263590724311193155419803319132320044548950176639284436790635609137759366563321064942790347050507095127684214317114276483074771179012606461042595770854038490422547883489488487101643042045788292804994990057375652036778872258686681236221492397220161996332893081732381625833447090710353870073989774679616382181142994099830849508420041711085226945294810677707440114023746821401649497059371644508960246573289894796740211077377436043896806355844757529536214036786713108463965857349074919261265507569274282875609403796605440321059602920204480600757443613920243714620117668181906305429071896900261568382556757253053071739084605832255804685946140455395045761155091622800285739593546446763864007454284386422074736001320975020273581022307986662731307810603335363502818959227055965814930412331972407183271345120559954164592499615497946027374506707947694199731776788225756099602394581950581700125713096186633060314771924364633905335124946051341638490729479424031088517440114971628377986474415441045166149653630221313354547786865054765611924088343783551177549550193487823055864240577440236208080820994681111567886084171623534613444419758216380214240149047542135730957365325904549578837582263600546962270690891533697739817321333871470547198241584851863258093661353397444720649335540708363711802913353217780849682583956580603571303257733461285657702325985543003242164081968818825082603747886484551223095218283607536030715061360075939856618663466086276479003211573121509129874295883780198850358851777151927779956790352536649420619579410720727527000876074203108596406080368370687569776181392332019102489409189501422418850404768949442191978993424789603284362605627742892332945290709724694741722099772056896109985830289793324532157112414617229400812245419416900126607611204811567873150048013820068614081470123743862650009912407436819791019324557441760179558903620106319904400516373323987888450090770751868602641959578957824715589525515808564109427966891009848028683852002126809749735837095572171346843311863567140098734997654827639172531920622511661536710682704666857696071088498918452703286845403187860208003760675576383257034295642339631477389884721374539566318346712630406597635760813926918156356660741730013659466908422126114140468205852460950681884154834287865629732222073954637452035356685783634510553683679219158359351794966752682614721631682808243776711455172794564516049891477720040888312466462202930434756222143826024753710786441177143114762611451963253502129619144914464873523836351634412062053696821252914028377368025870882135180987973509183925371884826259382106808587848023310828429327518040204287142633513425527286558189302823087656734861748223481629275946358988379299893683005641130342366881376709886427978599014198967362370256918430511455974383985084980069216663294145349669460822304508394622468232950994812797859613968543054013392281719540370441709022023677839485108334619469465783953954408923681360068180239955482853096827407505451120446297066285415691954579236216482031384176857990074805075588270239031380929843477180578279646168067403397587199755990117812253227057871989822081790858487289857378005722213141168389511846549907398112866250444063115038974230104606752600717962711889567010855609025557407531332533748490582576888260183650138930408151712661969109276403850231950880553847191901014383165981264772971030417274246792866696301683864489085778563214971595378320650052360248961431007646269659340201083201777028219042328236433514731488468675841831918959756845008480097202486151311775675971692660943371584305644569946143676602275953364310820267219748267838943931786299810532587683686388735024680576505667065177596345735825795303949693486075359425660772745316678739342661043516448484059315574164178325704736109398670944421333354795604823508186111944219714132408948998524708508339178279816834822041739015198066784547967264042278034085062013751938275027646517946549863152318970447359081237440845823718074305270158911594222766226837619029246663414346300515656444887148018872339321215036293578010258208634029764070236391269219717571746056242597341607595979958642921739828736428746046872230327368931805512351139438258576867208197031890303974069114288631887213053356322809975860986145122971625641923151932332888412885036241265464973142898081135613960034768108442718998315522195684650172742742618130548759845035926269634950695614682931132987849331275332242994683334551461519565263911412798449620185764782809118488937588979727059417926946793185103670961177454809493613301548904338281803517940502638419282409631873494370204402335032127720753821959054249700188611435653537350281762220088938818863769023842972870572391393739577487970282718562807560086224803153206375050621943440814827480775950195429929382208173137262333196824339110833734296457484584504600950123846261731186853978382913619275371807924245338574463223775632358491203540050437761928487488468937600406731982771907827306085866419921833389110201252986910553190819110475332720348439812400358031765193090091822463719569080559389843400338907778926643074114646510784553694978927558841029167591328588867880778489102147942384264315593025916158292473785305745444634233379196508483316558934448024856127046177980879495232589138767726608124154663191694341934502174769508374079800533563624960834466994643583043110072735565099144051055315347195165019999517390438388639571902387716481580776698242743075013822315671637762709511732648873552091926545317403112043910275572699866512365129933319873831890454197160732491881017422812332276825329232030400323521622681478593608585566782389813245839853494890219154622984662249985823855926598653927208370864638180979075618031833658616568578561805610143574610965192063718041818861955512172907215596718309379246682085864127940054775381874996446982985264099065373051370293334004614621039329302907909112324209804043968295099960472092226579256154821674560831514737293853261415939717625228230833497330116384985018086382359257106286223973387140899415832241494353525451813809572397598602278593534639501467281752767364584139117942087996345622318476145192039877853192796722749122751655100905034763113576509501582793771503651775640965780666294535955906106806258717463410323996770840670457888331303351668035638865692640486452472173389980712162702820619844272827683559332150971840704295134515146418387529582200773773959657710201807786897745955598609473547635177837340319566667729073993066024963224375184649820490731426509362883593915667560866949463015677692595713786932981247311582767358808047168470144337462709765112980866239707356438754182425672989438439367489763067359771412361064885411304398677693301875597264092248262745178957662525543005833522602932581854872478543364859839189571511864268704766874899378032678195833088979399689108580198577273144846910226433077379015000780178834851953692641070710277716904602451772360124963753940657801036839322063798570012587607797840350840783205111117661810777470506909565160230504633274541418330259084580079660084834669780263476144830831897590133866158098819989079140493023664440548403314956135701398018739110958671079867433464067109654604836190929317098092014602156821958497645444093716464657782941069356401940392647618191761153100601142745228259576926114070742622280425907284007704330951239131247495821003747052465050926546168706693172642837206363420062285330701161652551859163276077089113303592059004162108216979034122134711214658971789057839655146476276138318046204095395191060321932584760924597663538302809344948109975832277581891446466143845766446957617764078426590903443222757741160538709380678051408174827131865493713833827260748886635872974847651505664892013829189380236804719642744169562459796401798170403422702827425646192973391406973184009192318433410472552124506151521217719730825308807263949800624566012054349935791951396615227241024104423263879139540238840905824843047037845679730576915763776999632025780968755139050712097069698777120109663061282744395887420001832728195015249260610172278520299631040508691253229480979509599216428605167459233577468526420777223267791486591717072858807657264139984668672617020843643329218127294527810999442505132394442013698490704427899017325070593638733929413702679780677836095374840538325270443281940656010986637282206752111542070602715614054975537274372749466445324570090967918172612936794166341941988491983421178300788290881121258388233451118630538176670455445595123637906495326771952642047950369139478726163629596620728759461250561567318267232989375774558001351713956215788685523199044341562651103584385947066435248463727363089560733683813464321594023217275543370880232306780689609171956636065110175477457321882978521449754185404166003194275077895928102926323812848526069116225073922696428310999366513225232334505343875803498002239417661632781652071314992153005585681434508837435289533339656325564159136593196055435027658140608975303977542694217464841907054173649521271671720676149040585321312190963307381637610300615617946724190840065261373920431265338806735601101748580301259158595989045050392365186215767500724639807212953178470890424425723251367704160470499633660569394491253589857260813788310693356133568141865975573458128401030713629551804279265890039825833641557942029540596553492315015272647543052506717901700892882303927038057068814260672714677922847525222817329041881567846832350201813003183036451981431106462817746214695155685752220162266375776563660953077487581301478721086295527112087341340970673532394984997975631891293154317692047726964230788667519020914853946235991293822056761829924979577340351329636427186024951693297494289376470797400533206739755057458375391062903757577266297000501892407868178401447517096822432232724115139921405590486473801323191199195094915474125265352273981406767181702572185123870810916542804071029375941998166775767284618478857645655524480978310221490155519081620987993860453799906264725760433404447117900264801004586322256121610914369251660981372973395252273630157849190757001395505799628310248531434686106971437219624797238455074411865647045389968617554099269798764247650120204219334442308292939118184714401508364735441032755799220734301411557642188372628349965124536908523704808035149949876456954356210566380809557973979338788005033184917969784482012946952054218023860128538216153153085490796553123547036757563225547259432917101526103432501799058027740134896999483948439546896655608393331848761156249042380732703796175062828839180658614696214806569837069724814441159162690997942062934947192465890472476852793121681964616476968206004483357514095796466982485647203224540608690290151488103277764500184650269839425157669640330266628964110472439902977666397352385642731762103809843120731085415084027418233026275806466278761814153877985150661258723761464694609781016117461555434677465075681231214633221636523363384852223006779389444510457226929746938272941297186704340140239047463304463538038280082942359379547715846038006782239961164421883458109751369680463368945024886526558081542129679313996766266265204934038556270237954887968200767428012447805293237599844686602960069145321330903950445920446113583203181743575035544703474902144039971881636791899789751014430343169686227427180582568713635955347248723104830327164199582863285676618059986512673533366197675927970355763867824984067948656297437282984629476509302969283321485473970085946837170335172259857145136446043543000439860133867668085235556643498767680298481502218809823236515381224917287486588864152529010025547124727368918492734541716608263869655025268574569557653883311198207511208503459736886734892033986102515413428788220729403478438008763144686016154128588546218631122333026499223017757554997835322683466389727135221398367514713991196488061936314627527936220029718288390240797042141922550673979699900269287298908357568399667194046343638315031377573815855673191263178187716745662999924685241501049649237519568999268928608426907691604590122749502808579145496982880033962538538302307652271331142077563169141230677838176312160049181446794233609204175034859977592482694686205922040367945107196445232794543593775776995213264175378942162561359600046529494283347888039763227568993633121875595578766789322962706450995500997309146254070396419963827464595517090524433608649647416214424404395832829964044161897148854690879257033534146741186019183320037640545651276461600766828168350923160638571684804200011701174530239163996322703606032430496997986892158885370639551020069438992335981636369233646410746705985686193618453169406824710207662747891841990447398107966298108607114480102162899217188405482772759933518765022755570150282985510144641979678542494135238221894764698613595317754232196842029822689131434960982647031932239573871918755903476948190431753136385644518377992032726175346254145707375883905334102319769654188874088095100649992754272093099768479209833835229403756505329323344372614772095627735748566573508511192697306656169219588278397451821884607341081960319491025583170884284728420720566395948864494918322566272995931266227721946138831836185222068653562180692361449899615642526542671591979547406044299998590836237775424823509301162207759864527783894921769631709925241392473419495480143521808181643268720312079672351258349410109563839088420965296937869007220956621242438625982668779542425422191132584081683158877312600374853870974947730531169154151969835122943278699211677363616709671029740417766981226727710145660807909607094217103500522843631774608517396964885699462226136724906111532693126844272515139246819066617656088565866422484060546637573925483334653627967767467755488620709353669816879159039200386750440820197916547994126856892025530311989954197488416433000715864056667884043569217892033882619455426429102696723842003765771048967100629637458192965760641687334448977827307344380061501691083753227014814535615158875841469637401628517753667468782781100445694261998537430501895715247171168891181950993884356305209809413254765879326196245945794995003729227108953390438554914485537909749109850526732933472883454532771013246481987202111600803016877229175637298068072409694536425381698912119437348943464720784536523532901726403111742979337982508622726649267307531691467094194899283469694887881341569905090407501583319855353349012059314614753954031594069030082339305325988955962425965641903641177868065663147706187737021155431596605645473834461641694872012510333325127198173431130796807039516265535391069035136813197225218963440456977768062532981709910914554883839408475286874615746342532299558022627496498556868245946606077703013135564774377984183782243273840045382815947855745103697207636858286544429482312761770886762480819469202323978092150553522754714228953749365682392910765722321393312488192079542979926110919050205237869769372695818508446977704637746611748022000212661070011877050386510884755832326894714408006663162993103760390618772998232350762124394528377068930518424830896349510450603190296003626710256068535794916097378082844375701623998882086384397668957312420831388172337848220964385819126599216933068833654590348652043615496566549481925250241471625392374182070924162342999314053423011275243237789032975105640482620301049930238032716230803045438865153274456367419050593551756152875600617923660915148321431081813552488461197016887625616253275406396216462644580696389633560113369316267747618617890665272098571807033510201723301252155513139343883941431406328680732542268807757895039723415311169626567285467106331380311425175289701555829375818276239450221347003567606208469889400050720672551357912356194558379062035521387506416763634516120586604983942589022705288673854429312786918300583177069724393190956850602798522100177067419386673491937832741684511952496194854301765448063216785779084055008686716347034483716287865538413653610093652883939168077925890444581775016261901603923238775715114168828108546926803165387814611859509341297061197210618413300280510970718949509132165483820825562321495279071679488843402677751517851865624252496948530337931225003649216316653100979829906638187286842936510556858927716664872627521772845320382996053042529044684980966789132001813794276578524623866227945997164823923108552127524059900036186408126804091773141772817236641508143737943303214736479988971274997371602820570559194658557232840192665759342726164848117314172739168504117070385758262511225364586047950356574418916434850150981768877944023008516696896247744063633842403084307816144751509438202888524740938289609780901069510311912245299541404029029342865741167210280675612489797404601986227337737225335218436581045344666279464467155374514703775203180729813140693206301936634774776544551513700230752138681207580068789490486743875953133373515234953338087951479899985077417321608913059265529157521884387734370044702021488093454033614144423271523758391543384013500509872797331171742637915230507913894497234073628784102222107233964782809712648110719757598569876488119082755912040485364580138514328697792990027814437882159827521192881195613984229219632154993047378874914798330918454886382245460157534268574508216090406872256637676391006150389692854489014748666981438014757674472490238927611988625296553954774472989129056270264316084835683991001953096827496723232373518823190409874493980201956008150467690089120996144163478842889341618171270739518560144699152815749341050052809205046668818055503983821229260461365286043969013384034800105075649109929202872969435939022530456751415227522514306078994146501083299505669600977959391131265775926556685944151295731540094499857964137819465814492601731957224957404775044224957761856930653514208647902196450050110116062570182528922890697798398763096061892638999601064737139347782696221841211908778628624430058030839752265683881578144239571531235185937541453145667802914542685924894986474676103704668768641095977452008694827372999006178854667584759888767750960954628146430038922234072984650259851261886761959895300295020787629150610813921146537587117397691058531260726894221539487639273589014916809549067583293060310581633422437188743468114767618827818730077402057406679554153238571923055086864489220393019623102898810671676399585926895607987113023912097469682676332932582471405865336348598242133185566202633693917420783530469681043971690819108932328211642112127327646819066485701959409375144636627205899709262460878549455284204242392096174410480388178500112004325081622164418231483875841469560038578363900738711675210044105761227796475364632006363462956840276810898350352213621321341948265087631495177464781992632412546253542852396839053530982121995409252708675205929432822593267360798652565697741618185375638171697951290446033034932141118274286496984587847482882580752341357580672239439413675387901133697225140655270132094062167828254221797306014743535419746381288784761066830529961238604801514197286668561089282167151460697741525128481645705476183723534429582194283260508312382526736888553347462530868818122248522596650689657706314365679430854492475996258592377529058283147915241965206037824419315669263580209591122233359059516657270648935214507835714428119711601967506494932289520572812730274436447788408144877384157725411109270263154851614075107949750480149869779501111907401141477246024565828971255754994620016002035684569697860966855146125809473507493675745744181749861817075134670148298809437335490792149481755258979200223970051008712245178701572257956590524130904960082449156895523700029621157554732437996435292578355399968898302110862133667582883752064940241060335322937027431636129424506312794722249835509739728776485958694909821842246542510043516517556001699426799573275178101857966475747426196177655868319590950236309980436061193284142003155559579949667344464093583005856443132144721970945158156641566805302367389774103339159751331820367990924879457195255597303324303461048950600537406976099812307581002965589004399003514480582572639502093087686174774361057085382698088475227105759923512140688891891817855672371928458093548333152190949094755205250864451673614073038153088014713760803699900522758989132800268209845371389607354483959905164415576325642659429523903882066719383307500718106578002591513929157056027406119861465378265148159442788948340348958604981748348282454882084961778678852326440540688264876447337272471526785229745836741266162709528198439034949774234438848326708785737083105429546133748655918001958883231742527355800601322366496494475282268859327978760300058074108032082545723120511843054874612996735349432493820718774597185094670089845823185316598131122119845457946336367007025555958857730060611356453958104677809468081572591690309613104185505337378514585771490082692716352824835866594363204204822721251298304970588598442192535396929404908207218047291529989126801957255329863982587233170647534069992597714498138194495810814126676092183867798482315287208985007969997624950503477191188281744175885712269509155348483023016083415322783404049509039643486857896537806599229949899354804578241980139927780587194528651731992809060347660320081380858336270713680423107606182638158994150824118614226674117271589111568165395866198090391741657379006413721327303811507201835793808044461169744140763895186440878324226804580425535056021255235061413903588743805072156638284329411404531478661333065247692302434060139892193908960109590951803787312210610717539463354754236620627994444687178655722126806895827015947246115563057375648478988394531233304925210913907717965710876555981309097327461231032118235697616731823655035621890834404058057660752950470510119950475944058733485858035536562517474584976191012290684801046516033072917643482216846277961389070174941708503199299337493801011390208265139098381158422650307283001315693455321421801440804429547810649703965137280390015344863780032100671517746799138176104374155560374636009668005992261936348768506967402692660366696218266956902531967497813950128599817642643342393465011912369040890752396246182852656838395044960768737849399973775968789589864629568979163118237453206489299219663051466125207618987983478730925412012839929956786907693916753005461272587252853553980130534635442253088303948134541074556135059485538897433666359569795837622320839278349136205519297803506561653702458379985537223569817946322940370212160506329886465289705213771674942557859611627959592660659410773942751133562456094121819258868714255987469431734151378572637559787657079946795319737905261016359282386087826522191775085717265894765917056495979922274626649569496576214095174943740101555016270598903855263569723734541806527002497021233540813990844380850373185247123814902032914362479908622216713830386168239386326097706283463231095241857364468396646021721663528710111665538393001246431889552257923851392873466096814228618598870093306320526711397739229200525965075727822205470356911766858497355380111596562474852390637176533648693110481111740336472104969898325370297399302346329854504217778805429953493113056091676527500484456948723381570715690883635083470787269392309533038524883822322820537335318267420509986630874405863204986291134593142853353005987530513186916084166348307528171530743549178702361972107118538527639666944156095335933434319959568808207396578113163283224369149904911420364228427922204861272094636529780521815492283286057150683950954127546761747822346204570558488177487193955722452748667801280731060999706161324317746463435310803948127993486352380170946000385451543695281077705293347604727290169062539857861668096541112863639462381527200397318801355963600166249032775992267312721034476843678178461083393452964521340761036208649518052143256737921068601931035757486447993974863149728208697287080165806188798283430329878972852143777365650564420264245336410891949865990351429006489769039094597819942783981228140800459807468402018736034639866216488779960309222887912559750595524212879768702935014249226018488140186848062526033042078014423924378549527621818793836793515789672380293272428883373992146429494987880550399371257959953789839857757588055443004794522505589086096694133551508221771013219236634908496033765883207305749914162884259702752657034619962591011998377563979564271295856341476677266426174905868415104383596783975182134660285577615195751457402941623025307328970022940842143278057987334134152971857772914075081433160751528661494175220998541062419203918958624228968864219704433303487960085662232380401448698031237492326127558967961899927896512154616046842714783371449042574248336848094442232471574157845586328048893719277010750182079347727744367064109522422008481525968858860703439936398244295053879330295085500447567853520262430999843533402514463776201159462006184838987996578145234552663949049600480532614295567288843923002986939587326897916188685712143322868544865634784849603859541948000661981890786143434675023685096723208057156867251653353344381242235487413196435918923964108732174802535895147198574028105515783010642434622405809232747785410116462429700345588568701842709304746929711515836059617351976700451042689932520131304580805882629466404414333003768971144679748096138986638493313173951344725827575378344355892364253589680793394065964236689920593889910248100287302252136177576716309362388483965433069525239831860563073685633618200596425559240684096272290251815663869819788404019062056968931462454629114160583316487804083796110279644565473748943155951766347911944602516402638657532854028813385694780716639599137451553953956453832017515248727876074216367050872358078438590283319231662038804175617480449597697340936661725244455547895109678213083451407884649621459689973716968709437603505233701268039836118395542036853182804275800801897054190674687211539347667295941843392214792493520399578830166526297636138134251843211793795911776033348952481984885950410503536107228763738312527247004733759955743767068683744809499078128958593583337169333236516482077706422473665672056039535912691629803188238551855955502109757400714374339850025089655808106338254306656675828145840613623607133192287416116572339732498860019442602463437270251730241151234702671425194018784399297317449357692905038101258636899030266124171295434947182583295062508122459445484462932141710407605757270178252348350851395169933266705039265925759404746461564171594226604236637666323164482327002609523030982807729703642612372993447380796921030709139685586354954090629239585202719478874103873667559706207700298092072319246075225194412185623465866155086547243087604667828108713713437770019417394622084613272369889925286670089590592210341305686216961772153589491825585096606277291607762147970904444623061712964621246505257971620993948188149688118357111220177484733605984721620330616897425678231281300173997742935617246039412083534391016488832169883302399459484689102261495483687864342054724031030143698561630278248839334119196080674493612894277160388085796162216415953934975792971647534631317353751800378111925928034455119101720290591537673954317830621048753974300579928972486886032423685341445157639405284993536454932706977817455365273434283169279216788133015753509251579903106448121875943695993924214864236449810470361371244003691236040995228578370352481488798837961267229579977050341280410097816411664608316970604996043549452097695558376497831585595335457878265370794921561434654617997663261214012851576371010570766707323649813744782181998773122138042730286117858177398591531435048867730272540806477134451816356651219192677499382605787828630174095959145983995546078178109748580262022676475436585146906879013763849778996890152509117102385083019583905572562100075514978844576447322569036480200703235527848199408098163333792396266047652340989436951137354320612446807338989280642903705428872429768917040776288535863878761944509225571601988248641083056958842345135812665149676131021966639944758882261211995580986302286784385770277247518401114511243707518664000685421373648855636976153762733574387065452801396343782108763877470602902446690683228061616039514642070697509629519317213480135774156230367605635144013144507077725223912734208281243071601541495926082527798964168230335343450297709101940157576185788431624673003169196161868454379952506896585071075430875540821252043451085789929517392918818363978087702460624228955600196774163254825740138480300598987772171341961477474519956574724962678610891936759204337750939628440101120583500148610841526467033616311249337004804160016370347224141429658833168578424790305936698702283404925997649701219852236936653302905934316214377390845166368197341126528320995052366480632451125151709371381643236242825658226377335969007763203530306487584213484466882208487191486257313972633078791713920004822393136494356191538012446609113286796062597924697929806824625330727994347600887304713998443038910917967095116991294853036886823832818786704595561374708442301900138650252464697937202402403665309590680960830022887255553954462290589673512208920685959440774516040040434439055450916033016605155358126832940874009110813221638822965680908512036385540659624890752471071976422735719115375432308350156236467030731989415858543690696381027642206277473349040182586761500855628821647690241300318228611881075675035214657191600326588344335585515733160157746854842778237451412059117547966990460169047579372678189310004736318289253204091636692650159969973782655050282364059573861713002087535350362821803158358670125807690860252617782421541932811875303282482411596037397542525718364745237076280730909867662309215927324928810816377657743576781920231197732234434578671206323792412565142639612069417936732115557583016807868066889263790405614752058803698129163304254066851587073933737436567507447223626227196554490726979566988951834186287289927494011289137604066835742603111610221707206272762022992470838144375390859946078599463818874434321824276999194380582618153597768497565165980434068955824274067963126679840489135799519492470132144171039487518471647466700161217273981510980161343403791457123179952164755052370196108651954912239696782084202722515210365919882324650693396287921342806781071935502442604235150034304220552520862819817418660457017157533184405229703510466959791575732984048572012716154258993041520390727996694550745452766199696501037210144561552315477892585256638144386286906810908806670889499970728193876950099958033709430450761257653438837927539539212196144111521900327716251768823290134648209628513660404063196730316761029170300798258615169306317994634634759758420242158477657384205625001420788510005097855625708123867471909550540486677776998009827164952043794486501153130560825692426980419412549756157587490522265747119170097157415675971164565142687815763690200417631375156981791011755940495720923819265640261837742191890824222563057428133923155499174216032451323194646720996321188546489875384451321677733111392483009256471035200565710020312895206396688241132618004863128452280369587801980658428299061591436601934997237174398720902569402611613533233081097498746212298416821792479171248705686345302880454548994320637838743960254985009172903522312948733231554957158194819335923878965328177435437572319235514232763536694936614945059646283755689852915083220378122566205553802089347808064945784515670811340546626661426327651937010872686477713430117463610300606115644724625556751861059861171361828108967903001123859795676857425404323148657246488135892647331802924848525677418062226569224772479647798550007194126135184695562837858090426948348820214242000258074833691479271541730642366889320400916671190623552398885083032921985736477913827565128410067617648859732636926286107577068977286305764650501951535225224911099792005588861571878221744245534118848319335794832367128696026116994467892018731739551821423987615273687206866077706336582202878123305497013302034604404865928436078990411255705330873892625578727387125747001644390552542474097222653833559578926177333193057322340243676551206517925517194968021944293911927084047278747126255699340701108996619633211089530075186420387999283064231904588180366123862497663582041757463932647521215887784272115555466704266279331137780388363343146223785530404159563974714802604679559525351808504003945598691749211578420455060163888252261504878576421070793297927265634759201116324903171905999330837883209659111736834262077268889596959662070560063546926868108268602168549310823709014082358658113661101829523659020196307923022062830727058638589786076848022879382334146281520555732086801085979009371793911809401224793869590195485320809221729142416720672049671010605213877343244356158801426859254276966566064756214035039029936750876855065852542804600514253357123445878548466451973044498587970398207722915312034032609314494977663980115801871073980151948551804459720383678656181299228371493167573648994053798732587911160945579491457008771536699678197030428427195701774365370751625463335187378938014763371621349174501357953996809734483965682543288424081329998885645666131623330603005271061128016463214517190273928809236363492073227405279314634848341492678009498977663879704589631438791121569264863986357181682336872420960643956610543365124145738826165508397466345283659733048700614263387335841509726466128888172373492951671093194096531205063877912602583607018071752903856885493568303825369003310120987593089083314079224793390523868082110010466269911622882735159005249484250768993547990293447795465177118157616127976417963437440988591125376491845478446998645341010536954368667500749191705354773955337055672913399307887687980977904424623751106366432855367732499590998690243097355444453640208969820136054307650835303302626034610721391317575869814519954660678905281016366512574115316699503525950927105367678037553463731636010215243547811048601549762458291435964042297997685563664844275908794008103861551633860619524626121683641230498860568593028439808880509515401848405407355569113229068237470414407207077171039081916483423568786213631417339325841027752743415914488202383129583149712682831062887873084112810237578111939516526480644717036072048375484873582273506418166864162602588955655450550934342320772170543934304350294602142638120875553616944076170248149048094897879115324168680367324224741801358733013852521344859041958619201979133051360467500061701955082877825553175429872244913734381916676297866297782324618783983698217210013925950119886098303554913321371579157149983157481764315169799122005763221263738844553557718297191065570598975377987910214110978093115087631467793892544133341219645492528422951853271762255627676215235265704984614156088374766583427751841844654184752253723689852533453603893646743368191546291033174133704414470691459327092175390327263250415816642263732739365635521194729421496198270575658820336391576377968178745442599130206216699855007357402261643871985581678343617835585811197584126414449388438012332873825249379622613103013115974304679465472744322212642343306474943993225537849243080674109520057619377777116682906605994157822847672076773536818801281353377688952337430299843449837806626487968689982132291825867992473656479282286301824974132647875875347226102991612933291242690036253436680340279752183519041192183599301833464130677285229932118811248420891442895495932663291937780636473772741713934501762510620476576648914946616900023611183886562187449081859130297757125425404921136907698351028019143721668554780067920009548780325351830264669682778133374885400135565345323482487171462759352097787818749281840995140900200201919700229697474897374918430819090903342547093354969087182799710435311198190343482511378591736692648183647217402520283487229256545687675689878000237080159843214858727218272543181731413675848454906822284846615092448972214268870849255416847432127030247223720416224760435655685554991226211305346867574646550913026213942535129913502732385734182356572663786053258198957619223116658920064336245896363331916714156623695039726623166583493269616087541849027007054868495757262899529998158460973856883302363342719156411139480444861501870835594487985092138467140698431232516864843519881693696324612243224589439906435292246692814671237379373392191915404501739083970463622070069608383341030657822718713338061018996032416299901929162081709928558148631242961292357915710870376511004182951514363549849677294252614903303952305797835789447170451644285242159110269204518935445466177942776007662298434597953231972936567821422401566567761429254476204985367596796587076212364351087143969703377135353356572920053893275231025823421612175945579367389203977597534264996262140498733324297751368901484019670370287333809653810822168085420122394803266314863552068034558707016333965212270748020599437845253801529647828332975734288359870184471767404641844388105251327012188930138217057853418099770305668368167661804770382502146297859580780974258296409727605931345608946852986269545579422151050701192054082630340927457587107416461638803116568249838149114317640979947730038927022209368554536915132632214543687508864133373938613394068438870025815930541273154843333860091225731839329722442294154066846090972268844705721000458553914799868048283380000215072559400021645993730964921750305411311171326131544946905261676822529482525268397968659771175063276505035663978161346569331428075170420071086031568286254852011913270084339367040643513241650706677811472618221075737547188245773262083498880976663285198309947958051943714841547134969279737292058774876422536273473843017423270556605461279518160138156209275751992100192288162801382445586625563091550185767098138820302254207295113458078175255273755168590132317557973064641279686137045633872240145518913948098803894165060942213307307694500527333063845865654453804941926432489851144141068616949219765884745578645453410022193162514675641234983236222363272573327534372797216430968819021315310528231481333681767678085544351391545310186947645152260397160270927911842398019278699081908674553900708139005305719956773698922403820525635734260785175432763163945594419801444314100613534704284481563071355534603054283875440024622509188006626011252069726616614731005146872009283217665603164721822878664321126428640952581569713216066900109988679614202463274317762239699161891726899331422325349917046475422811196830861517452215970917216292354492349848928124473368682271375501991585248043083864717212364048221312628686454488088838945276942615282623670414626985301074291105764699271141100020881240590070065234082544753764810002025602513301433613844212646886208753861274571532194038232489376905954778322148473170972872862492646332396376192749084336995234087191023686106797830295273512113398592526741055000393925419013779906922293578687772590975281743959076744031129035859442344943594643942815219164428872330057938485812045173061495578700457230113589506497414955960500479045888304217904552904829227942436739042298855557670757734370168425887354118576226364828360037082262232069932671821833532035625394658041789891267600854074957401684653283834879493310519550350226005405335552350812698535953648486617831010360109992809499620626150816719771794624368900366448383196924592060271350532450659748152556356782721782670124306983984056483541259182225848869141359254304375120804244979049366256456817282521584537453631082294851553496180916368397034752329879502622437904053249037097725165649776412895682629280619703937153022315993835381554145014224479406132683611642735181928278291483740179681530360785394259964394053122821106311108676228541496953579089799161063813759531601329580531162504610677844982709564108277453986104534419589228365723188962761785386668032619885650984558053565597764199559701740490648685283093888347751270418514238829640319594516801775187943921356187322316848415358664401434622840764644264478016986862916079052599203803025543855107429682779959175429336487727708312402194459923127783967039671145147887336906954930118608415559007397227427365669029480818441201449005294699959731304717698046278908999647528309673903033670915868128884168904513711553754958212734173057553465217519340790313145080466297057045891935438612171264529284673721427701723410983512109667816272734597105765963162084356653538954628289936900670999760356812543289322681150220767865967156651490134248400856650044726272169748537956138108330478813100008339020302031284099896823232079850834591551089309808669188985158289764642971180528641609446600008207678699800469540560956801702885851995235883669643218198172158190576444653410711078617922148089232425695210825348498808730696074067082003949170576759575086306741119809911233898569670348416310529715935270205712366346987581448454521722539727092693534155971230266939904892680058994128831101228865335607487167215989326675862481189063898874912076774034818996152108241509251433458682358504551925101204013473087167220299735773854380957381009492512571236341195746226409839753751490838885370115810863526416797634065481163648891472224977203573631541900158850690216316658223102387025779814290590858321169797309697373086790796001723105397891165839415006068343852879255306237007743116209585195631225039213967022234317035374135657056460968679435253061393343516014493208107869226967511696013050914954199854354265930808933181764668288376829506632348262453753978535902933749128198864924292051996151325817914546604495353191419761581044479329084813312949312118537226249850833250010003813609231220434269745525277432044787258895044695510745240498386147053389607504059003203760394517062558721690370810870317301102442537489808485622566647798021361934724846564837897315675989820050352539547669429334877086110202121720361789239003483017177550607506225754548805426618105935095967596300161647448159416001468432557989030962189426342090962165447686265152050505298710100421735631896289882328433240682967725747903180964919403820733666552059930969761904432150952860307583877241023541826536505530080091487299639394009071737510679773395249781703578184458894418014782851494762448893867781738184002952670522245713886490715811548339853014953711335960534554712640192642196501270421843770999747916930731152945244256446247801324076584690137009544740875569358065127407302243021403001207696061811780061921814621243730156874452410492756461115054977627092610517544537175766494906333906465435155057944345012595492932251721158000234999999499101784667484525075448836606995056845327794966181316129347955504197957715157737754445085446078542646676869474484163970281926933794456387307946508422675039480538506786812836583699587134691017936298164883952668884141035626369296938228020865814707115635356485297229719005987250485125675099836505541229340804942069280122759727323247727241986745732754241530956898276721974980981553921510700130957477886774147516707754733182287796122864308728429435108865215497362287462151904836827586207145380362082389541392772967617345764166522373176206142598389571380955452662842846923141831597008463797198405300345130487165884554431371381933951241358680192949389256633370932390735482915556361228199479924660476529359484981652597095242608596583275858792505703091321194681997992566397451053682188298271236032916527862684239644457167131933975204993087636996454750038783110670407167766762142354366737611482095589118243878631319059491686346878209488306710445734647150269876503792394530281768128743269867720978803313431519382355114781559246148196885288011243113179821777550426370794019908551073857217772236929985289570180116477873587079323386664237118310617082923602918899794485988865031083173171232507152386747057947324080770179592967377721677199278195071729551817894885335497724483709070462783067808768547334866475350790586867512112948327052592489576298646379015277346412122400737237732362796858009048602801692388121849961188906966165371199243988311334634986653566952375087007054607030854321689362475591785011473576827488055671059374191561112597658570412206426639194647865086283664383687829699851870691412233087903415835293462895673519032034814592913212161132953907016767235210496628235281676099300714737693523068232918536229442558871580734564054737984090890330708159145686388742720316657460187049212775848365733611718117346744186941148100966387172436165342326121553784495941400593845138366095948840705784902606807207123491450876966710001593823627842862583760599993259314478205402470710354369147252384859303272031818709339791471567036026718549770566838362493065206134489021693323206780789778826142233914900588051317523904216720444909139671808131968889648561290824713902040710126824820542918792871459425263305137886049146710134035577797459532590259853780572100705260318023188785391344933313128005185678157324621504005895135209869047840970967873251091773058107952086313316712095068636371266601740946013882825350067582617703819820009835583743926712964938876369348398571158304108158903446130556208066294376700308940106163783978854704939877317940321007669939179340331460928136129825354824686816810024679169543808950324033513305281411282057825977898565819290534956505196052017212723751400654499729130859648941903752526251626759529972601468792933694285432434854836499600280525974077343821014263499571202968473470084873726753510045079306502635754951729296388720881569388864907844702211117538552592411498125162212137083262657437449482807262172090691878432362205480570537618007413810683325732982773486754792181010994979932745461501301050757733449552957049670656549904826474098691455060096980924265884046590281752567560741110571852002552837685674616640311638443293804964318891299522446468461126357668348896518336788969013534090152243362888713886015442982555042540307884093206105904840806690810312771406219428005104356334666964339179968483263619053411226587188244116073546974513451166814074085401414389742138576462129275873478139768196772362884347732276971590826885316093281301958541246210089878727767939921801138539537070728678361866644128746337849497896125817713455207555793695773213418286707259341772977556568437083517241877113330157919579748272596404536796337761924493463020787510135330829520625144195526973254772464244733463135106573535402551806410864603545760613794212185726598842027398315550008106523810565596482513327716494910764639441854542238759824500579977030369647336295452455175775549112746155820019891833321119076662769969058160559444613717868316675143765325113254226955103320516686378887339672331818642331392349208666133586910928370032023233377976196907172216340338549054220333623562897075747282658798272138963377867885462224458337595297203347283254830632607226091493230038411103422191889352234581331437981512627274596298766662543605555041072786783173377188527421118472277620660750791380253810879114271055068370066829427371486204027731853455517804963739902498777913280985747961085610829525452058723478116402844455579593032138395301189891880388829196045261186212089241697104292627558505867708118112289749442948250342620955416492874980016805734106700227617969987017531022683020214008744538075751389710131343628815801082648838240377514606112402724062641861688691912035443230002972793103203919850733284716167180052006239590384189562079151553768593494838359032572604588802950783865226657470368907904290356132369074412141176303063550613434068986515827541590938887095106172711325676002316474502258346823383552353960051585232376300997872137536463942565077365440072214949660403707290325347305118429559494826942274673272633372876979733576472016828954310965878122624382028695928508069952700169118772984133002697334324378153120099540138469864411085218357938831441534952386168377065166268299716913497722540433715561267564442502258845413423441071385974333405604189306713355445855387402373578408915840833598492984496155677449831342705491700979175707720033187665688133562220522746445195099293046754664132616605070280588451856199307722347022752368308187262545388028715335856952600018282452710224604950798910817664577274561159750914932526600267753375818673930692253463833258964895428767435348650862625672745191579846205598612513171042150493275552182636737426286473115407790451233353447782407636474986849343583328385041081047514904940922855784871060749284422051299115723095579650079730276506639640200179877289335430441414324256466852796592392535788873915523297489024255379270131887685155573987294523751367126768599626056763746164745621807055914723372186605981685241952141183333777355785218846925459805269764745702983263471384874807139054919238176785902010326719292388251377657262436254121982764651347699038445771096789409503273829716846976799336662826961306531260303812145513099416873831043296167929890168684752526212676459830124777087239181669701660484706658805674882106788828963329688832398150063973250439070173364333553492443259979886078435710414993694908691522074195534553799154451791387437907827827226417249805758948582919493908730036122422165695085676525299397976991615505791458087956527114810473307374889828317092729431813336369426082222643932187399391386307616891929712392449657028563170181817154498746739293482084709179810412087401756920372685260649926488407197616212174130710024825970029017098137192677265585370358709130633305270841472230687645189761726335429448260926284088176882440843983726278410642024805039554190192103851921569498961307471918092206135028524392357769928243111132435917912993006862581866635686946015774050265373059710092269906124793439113565450998566559086163897021235599645511160112404611705040245148141290828488398285855161749874523049946191293128791062269970540011525733113555480505427623120665221854887528411509910583647818079949915058786961336265299228688805772356528468886015659745692618526601647434209732300270801784714113231726746375064649638402458013242215472653669170433762275253163742069982488290511874609767613747488403706331410297823925784758038560313157403844541988522310077034225886436175557894288081865325522970100794711815106603341581004385421098042995954172578539936259667309933275452296718033109377135513034390292257251537056329513875942148118040112777120103258045283540391861754703095954000125438574549816365679782515542653996332415553739495231634250482184519143735047121104640176696707720614937255422637452036804959197319844632962124886734522240966605294439822283513636658856235938429888882021478731980813007507433415467769298304787873352799730058864636410702722634091957986270619178457279570872689107146545495414989076182843950212110558686087019134368436398500450376065607736268342090766483550852094816629615010819240882806912315974234837378556574108811610994997476869159985493729495244442196077168819548393897490715705361203245858425712960670894058694957818831103633540058349332838950856950737472926487929068824793379424336313243953115540631680875590244600547509398477868493814523189380446989339777534415965030288274796399882975313072194734696325798135669810387364086622504277067280150056229193555745196576393333768236963340048399497174307282455376894234629992057605069645417909096578188393801586319781213173261940683452498937047525839198956494396380233180345952759151064709606953116241017767237976784755437531384615001503487236881178838339896071801406042766783698099978312705546673034372258877748478514160765024341735767700231556955153363025333915688570519541666185924988182957300301635766526672432997305035867403981248937541431849031792512437154222695931421912486912429990883862593998194778933060479077003469300106972526929120317338295964326247591251928524278291595109272486926239276929193783027562015217323005320075367415889630714981367664742195986887955646258826779507681469400353455287275890421635009614302084009005174251819845546894879732227360622224769612701415697090470751399181601904125171499871983680456883718080744412271823664331760447463775143873370755177543056529261078397084399103979708298596884359497859387601883050490708641253037302710274931511561357261772528460032782742062629951428653871777293407464873424584186384758539532001376786425246653366177949956706807917908950213152981225152685917820925779396690635862840766131031642252317460205010751072739849127152540953865515222196486850040949248476888909133100979139718849965243516626098095768765231389837146583580961837248587272486774736294508195720333312856022553237607433577569329424471833129255283758492078486400605487408126889741560202709688134000303447951441471209109321267512499626120812984387562853172413322150553185837532260086623693837101579549090010164637216157507465295217765041412033459537797042421199401483138367936712401436161016480625975264489526736585623274345432676090521029282884953434693211118427622524150061678277027104221326927319473698024805359891117107912576922055398317431470077316142747490198998046791117664683883736575749106872709854756754098053893065236076960976578126866332508685422118266461323650852178841365012535223149945238143726506876328876915951921442338805086449607101142724809747276223813570366038613886945797178611645780248442594505118192178088577614741767605482160254619863044484871597512969759695326337636610337193681570827569404587920122888885067081762048854744605232691930181820009342322047411949874050559757297139650094593683133076839688076353493451740748210423666781119315521033096728890835366374323877563063754801729940981209278982415456852627591866570889896004676879183557022724970258352956554118430000880425539884917940860550453411734350161247697643659099108429231944544117947648274289892875249729827947555254066008009319526336776511791500034781908262124283199044970380217011365209755019035465172030130576856207741356176839518393989395637083024907620762558549164204454982469179174609209294665683645321098967427176172269361824077529235030667345958468269864058729582157598966805414180814035607011188935230341170827746778335849706506614105112218952033941908024342358948326195521550323595652554940759701842629911027858755690286842651953691580501634137099809596211776073264156219669558122055703595726979410200441704414321939008726365559319638522083817394603435534941059857298446608998930984235637606786720406650115418036286737885006506570688111206152842884736304731717117884054311536032901239940756151979529754175357684458040287083815866527288032578696768030615392694630959569717338405701638177938375563816347730747339196126780492026640141857939083004033335043240680929823299261476058107491550729574874280447108970302170083446751524874988925564485698216247153368762210375596522370301351278456976342558511243456192940685673279233075144609545511317765295551935796607798228508657851282072860564813242650560564575689255895955274797110943171071586001715674959523922818920396529299713022823197679443136760098632097223779310393097111367346603590910469955610000165739474551857024764613832978542825541185529190757452151425615649856920668679371836794323709412396749910258100003442704063582240131506642055446191657141678616256754396834151974945906027297595192971307475616584073288257080232774691112287941875542520788303415719153409918423324576520626428568012422040817605129319493393762708366433497404248871292125466984373965118753729870774080718111765615974070147765766935334319195114639890072826814573601693771988238441360427039264378561764146149079698875938075367725337876980961972259719895307782610960500936043653220985286790032090248082829022433183883155572345994550104279369367887408320164819797391307499291058283893106159171860099675911942859935254124404600642604386134321633179757851557175201930965077571285555201795607945650819515385494428209244044926460753623854115860103666933117942587165457886916656779538501473170364408376427821292555951735392391756416524101150908736400369746258249962898871386883465517409478323169753040355673127360966626764997086112126519176575384446347771079064292699019503830053242247460634965116093383929246004332198184870499356990008045142093194862350754015643012899619223188288692104447044612788326146203836446745603547019331710879535744753607728836644761689295418148925553160921206075523153124343883459387806033742506683847824319100436161407488480917036806437004923852189307131421340557709112125114383558491654341458544540523264296985861950302690299478926257192040570409849716804215755156262300876834202540095250684083726685609574053495546819890289318516981945633202068370434166395949388259932629591412199715873693862300634167791668295699634771406345245122040465982892530574542458828685863760967174333109108146376655604160146178843230978581971299557262340292861432251050581334058704826525577804289767532637676055922094852095785755841692824884406138061967421133143533504714439025958268323955112875457583633458878612137914635241197531574517095778167848157699022588523188922921843320889882858117402419965685802841559694016733778083665709357544829793810881806325448900204575849517459387628030067348865778270532760670009501619682603210667852202797426063573165230660503152199751810380960388999503308222449087127704292840369225936707222448222535947255711718421110473646310031172126909572883140898999354914569492833304185868365090087791605629781013857369360960296778016794613850093504918486797367716196748459501631713451933631643959607068740265543442720019111671041645490392978374196830133073804944219037243038662058658605789685916475636470088725267609617574027578993495236273757064345088847940282757391129301454628975655268664178765160867783643809924525738977024303515440168432575492540851391166869950722095995644418778514103918539627382871402306097363624778417779655315839219291766597526349199414448183828115429820219755876495267641988750059134147032386975959793035991291071812177032098968274435040480437300969497900089856839882530324873253617145822915224796883800463261314114095185509460942494695761189104443478029341529045850015477380877024179419570780734996946633242495770841190823573193445057695647353347379769448386559222805633471166999503541329753805803672750447534377284809202545622744086990189864416340635020655905584258723804217381028409255886615447170012711876116932880982561998572852576488240591004629514401146650178753419549458641010114798112336083043572605820138722039059989964428168442863265265866190265572158320656430483593705923795805396911535071534824059619681628257536223925963953249077849042069705850079221153083865804607819362313060116951886555107058819880841010594855990576386231657123032359000232807023144875487129716413995750632329899993808375564995114165087630475644955396778716971272901513447058109600368430937202466374799833643805261655896820353237984696564248497277570094370189297464323313745446971266029514958218805783904836770167207357512241698640744632629979423912015505671146603392558952705049434978711342143170383827146607270603333870822951850745405514185703276784484157461614971710236508949119285776436076909516817470920867600917558671356427647095954627941378271384060378646104443177244769007926313186388149149352496055267484678414050710746824431567553237862139332725756990825253165007966931367590211067397242047236374109031162708446819529640584930007962024989704668608145373914282877629821729264131604675410587779117276883342832982583853667226430896435954288495605299303425843215889967701567098994061523609984309513667725642757341404056316726982238637653332304158841456773831095512658002620604007877648460358898918675853082098444202765727444753675854063871202979307410943388254449183506064960186637554637617926865683253331829803206447916828895950568940003752347388181480153748717107858979559282935897723703106116965677756758833153764189018897739823521678150945595143194890657963757934585581767026362433052262477797365086857091084795424068464468971918497181983276174814058595528367143361237019751551773510173757643465276544747806761591736546658101128645819277578002435830789531151988645606451973623503845263571001336554013842595508796766344126968871822127988679147235105025285732938707417577866928101056045081135966789614702907641135255751300211203425964871287087791497865327265881944877612024760458396783361377044651613906977037897462953879291385062596114872323896168725500572800721703954603640663958229388741729312370256130849921301474856503285563641274525845486526861903237518534502630361812743961755709483544189598574246079372914676101314046264003677884426131618682718493696396007144295164087926865924215669957880904336759744097476369771457842034190030141449246153549006125013979890997581869014600853824868367922366630262524516112181280652097037495345901281370508016918570982567551481781552533695746483384558297936056075193438090412763857734651234354507368261257767531048784052903138486733042672831695187335256605446293441566030481941474463730640531513071524069775249394158603587685471189032529697041731708907662870073973995097357114129036939401037101902386478626595508335127438771735226873684970364343154724153840237707996494306555831185374952823214746767317555220839667719974196958080046272823338830939233920296826988181959584504123495046760302976016271683894891534413657077818738340512394474716677323206124843684673542857532454630177399689269807791311443656365504572999152506591971362594016974369273542721862529398372424773348935563483757349310593478490457385945832015790962816631103743401171545010378025382260944678328809141371483992363816910990234490775285990413034300316308481088741977223784439589625188730495439777084091248972655386465087289386840308920417864153631045733068408875773616896732804732257547958603597111252741363662694139191340652523524267728459913134753527191323789327281090575616284719866130633602181644101125194110832926349510900329175850264135739370781727750776774404529954827529139673952360232562492496736015253955630521608583836574129613059245238800444238632710752414261443841913444637050097374498274916846362284747763793173228410679454664157358507714158303217801791961643112051301479416224304813642135315780951367684479087476885971890336585069014868979789378686937446406335078397257006236076364248432924547670755347293270803687329960671038558015970013826134216397267107799035933629884475323927839604468618294063407560391784538156189500972784948860221207882751338775948415552585827031171111255103607848948450003355094480553126313528977352365842973083741024323752848043019433724268832474273746454303204000701748650282132809073521040990042266866363591752212272977603032966853212176839088345261259294536694791174609192176490848759337099323436035343147607077882909177759309366876688966642922315030402017949645432663889127582471798578099314687935710700268368351983323839357074599017926812256050161403790446461557673097223554726512458481425436863713817521631737334933544004908808073245385271876246613791198403872901845980282571331422163996643951232339250372249410865702419963732249596029867488970333471629830853290855093615295020237742941636081213039555661136685438038700889570875121916910357902843248939963637697660720288448834342392879572879599981164594491376760735960300340402617932011771926508903962631790168047983452746630711347981146178067093805911549215392224360461152936446947651591249037651681026898179014272487643169739279851262926013363676127264287441537996337757974922894394679141991109298842414423592870301929178315998670063500049927564449552762120381780342014593657155061009760267179152927234520433754543661777900488639168170565151509842335234132304972381331278958915697325510509127549433624630912130149459722938048522480520270730926862653248031061900268173352812905596908585501014487985760898362227994010017334334451363150388701065338186751106727544051009572714022174428587693841956048872196515828675178027609562878781673214338568296828118967808888311741001516487560164658702728419082348773555927322521261248559681676872121722074357588092248021250776511541353788784932119687489399262313229365242416685586467054662788119986539748756095538833821894501832966594169598930125541401367775590005923035073961658659675419427235954245968323548696624411270499857818833408941254447333763148103666297948363204446508837464969411347227213918731510940641979127458310204982511134340476138769426289786916593671668626807859067052121252846705447196793672204897230607243859622415778501301220437713347492365183707765886602189633788702413323264011942458014200799613911749368074554097395670373262512995930818310503636038265944405706829539895951951480620667626929984464686130551871221583951831358513125370753690947806710491215130884039162912493080213485982043615718892564280980143939369161520539961209155629314717759085894184736273069438656635635226867045991163968686776093549285859292358629777045790965096752416507827162944661108462683529229983020957950371942895511734338556670433954476962912773572773062823146623990609284144548117812867993859991771973894155338300016449380287123058314313456102914570956915612280294314173328245510725595070828904299618718733093997013181764273980661374426965048349471944151719028490811264466778927062352730433350851086642541253110887160263330384552465735288524775546578485125703133210489429770543359404957679344440286767546333485136731546247944364441336352761462318579713830354638967436364303997983249196425709715219746038463636510311048032062941969476503972841015938139876409416692189721756221106367343041351405055927573545942192368955660560535594598000315932903835401348815813856499523815841853442306264608231368770163410541274556475858886519745332044206150658063871597811875811605485456358398336768824176287463833028183636917161166469847083839923529118673717629791610559932997486401065163938483127067806269038630724146811677417975921176883207626593769581435353994792658520633879932695794263460249318287398149725185616348184411618593533150022147598849560310308432496699614792609515242102151292091604145419378355960638044727699241772733672327004101495557785890401703545951983024267958352401573940203537340357518069464401536724470916873152992137603873758953239898564096896107919099186255539323428220425727805594661920818694966007744056723380431023593013962144065689708457382999070551023520479757589581081869190647257400143925102330426887606504931095376333624260025571945487079516648281165089324082811804791429788973846714970722336870643152699205514029577337531824842904008811376218345425286988067340205246074289972478364735877087016615313685962981818393258326011755492189784245889544953338435564901947684993950657128615596016947348610374787208226419748384178519868225246316632139514768400645599063153097418596921526786411209410833968781941501975445328861438112513799711744723394078077888577498686264736151963084366258751423908350591013363608098251161678435313746389422163603042442480978317256916608674878075164916375176755064811016124000857461190033043352695640639178590629041748419633578630312982548983151494262348053325604398482524396938890244679385376037681363425092865867260269334714298503655556078251984957132383435834981178781045996352504991470116888833480130716415985663741979233696456331896316143811950402966185600375551958643387869695685849059038229301781901701765601262434063592498409417538572775314925167307693442127402532234468783882421877192508390876463861605490333861643225885153279432149497314611755199617786410906923896463926989890188474889795345344856447790786251705149977376883223979107122456046835636441626855574639467540819501844619160344432683931143199265761674228176797950464690972210919520226816124836922760446092764849012580416084965428866373789192049398650644262955799233352732196243054182822067625230837580217520890158951964605068102341052928795523485346458550406974051363345282028622579598479157956623404127551296432394378392208089368885013466534306102197381494990687999419639901879570214790246420792020612100488207699566652142909115830114964112289703842530949899537195070325552698436040052185545000121863176470822934344194828240278013227482516057585027874042196637643051609371155932575911700727479907127396464068927873476764072180283563949444250585225064831216280750244302998796749600803585451475810995626224102703293889303642733997613414094968108669756028428654112776280305061738248823430966971171071135544135042428172437858597561913253244527098439367546640549845793010214259923586849849308128091467222006531030719148853630349527124303521598720067501855028682678449416884152899950213331355838748159806065939552404239683042728240413854912299310696081481409213195854856098003869959001470696387045396819421108511298648041411149828066627951426044983038803974535543314528966031990725469660979580852129073842394122430660257993781993026944132476530364215104808295786260764503142555204758595544768349366147156364718929864126826930718061964796422480646079686506495407803563968751791953523374428833598490191266595337950735773192018498076817042132984498382997803725170228239149456160839984098036085765234205857288535054543200613457960367368360658309610390575477185386784342578657599806256680652477911506576420873799022671126210530807619810349835891785872079195136522565737843625331823146696408629117944477742048643395069109113767143959376282622962323299105030839491364728369239947756463993781808359490652193344795082549818465836062237637585784792070432923361076567145726217941699244994861652857073975104209606857947093915762314272744730008033076951945850034344011490373710168166406155574882402610096236838505965061661107408408346036414744440140498488544163172097154986702734319989367033765196797751838517069108547542181041949059079359258313582901841927077051573883925274555981810373721765307437665480835206166840794029800011789937159839980110669292489183769672703999488497096753590648625685447981513243079276241623161504134202751645242049596127010930579272084293982304954210617855664760467881287800688609456473920266103133570653803559464216691633177945347307443299211659268219585720655019273857658575261697803703596203215562558728255037446223458031352264654239996885294904289291409218791168407444553651528582188238684264324818799183314759052265684628532746436362470993314708085224204807008263536543876722186693770548341916871509935736708804937496880505585614365202200157666212395469772714216245091813279431347021723275530601507024705487853768754397425432399639368185625525141206541189314200559877172820737837213353676704890633940523247617180802987505360429795674496065409619459206367939722187472866396888818536111614335911006774924510462395704440530307323917014272085118508256761414687169135068947988215194074958275713845037175204363714691945726216330569181440635274740827508578615479519423222168684547613929883585847690600395647390518270655651406856050370373505426117088202925902623119733229781698246912659784244672935127146195696295337557590219935381503777644216480571422887412896506611441263523607072767958333649214942664823892945473371514721823315114244188082765422389480019130559930493503088110919477021261343351665000584367343726747666182742692392423098248153956582107027217172819414750050143593603220720933649962976609199121304583368128959398268882129304256740621068530833519676077636657010980927916630511431776910572093849663159087187636472751217346789439051451277333454165054106144248555669225628601483991764900227168961153481658799925804211880996396633929725385531480081812376149249463615387118116352984378862125203322737150238690248473727645931208244711077196012510066331950641923791231912514019265520410000998047328573390305192507295740819151102531281126250113320973787822175328253685976877022897831955044557974904772280741141516576661107177973229352992996461305390977492528339867908593898448625674286045526075073149070021150930788463410227056644188355677524725282057116194614000561144395083059912466100328568289687870664706216418015701587867189953162175787789822041340794790681452593476193085886525756609253624534176593254955327654566275513510789218863588993048989373869502296586597447228008733479088263960229634105343911435009002849621831869581700636897576183930431928330147207346806021910525633930624703695651241533286781319415329491974941633678680968262447605287801234053568237196331517407753158508875146940776117929384889346942322876809773733148909724678762201547336204538962941853947696776858285892919872806312828875530295217542733685995374477184461124493783468440576527620909861669317279744789605868912987449140796371466033628530675262093504162341858803266045653666991884223283272157182704968164046515507911145230084625863856416513056845732820917747021565949914792480749584298795473661153120134074775449903252810259839636816500312440352878543421633674860320037787607956360700829594063141878899470687845484231584965102568654093714882490184974619474592922645881040640478201367591875799294969352403501590346523408145874250264470514536661828501943429127698617167494337893644422606178287170588692687625902918530336563204974999522549367958443468187775046830701748444644743618934954925674266683794895538786757595067838063444788869727353646922862158660126950108991302555472165287185244845047324585487838664415780144231129749020563465809257207744386469704528846381389532661319571476679376740158781518532314879735345533274421545388343669167434371105244179617052388277059232028624156088686548749455960471184816886435187958957991769426509219812797094879623351953708474204149883432947085885604038427880714491309130033387458823897213444047393670372879651062833568980865545072377100266733221023001282910631661640269716745592639419748459594389677184129705894643203627378132390769330861810034443103265304980792437671790620017413692650565673508210628618000300575838466049207369791966061554039878968821630921730244893285124636330272398082261152730576942497883315001093311958191237614728147504475482204385413849328896191463041238908867552387311443120812278965581295393157244785334499751353952448422812405306976439791906748013497942975996874652074198564787006256449818292167175014906123998414985451401636443456807312724628974520251861499186440116210336532862488507608847182618060379161668621371403816433282791028310748824204415651341401281059874201787891246682153981518472078323480676977680243843353635914165218900126487471584538743894766084217610133894943511858097734311164184874374354865135235154185358042753952419407640384522304270532690124584694835806859718595365299534570079415018709425788119668060606748428507509100707810333825341362119734954222541920169883238868107020177757361070559150169214985686200165394024265351473140201683466813772855223986660797899637622827915052227767036450830721495475638828349919423393115814378874889494210617252750076554066760707137845537870150916153572600797919767135527691985164666114716388789994835417283660117714504750640826492756670568715439529603520335139545966417074587320887443340054985255235805773025492021131818023512910947732528431168196176212032106452419085586598501054213686837963853032207619344432749843315299376993134271435572047670495110857944696550777491354090138666014506617641621049081031748243646898421475948436601398037027639874491552100450612585408443427919726132503191997427298661211361147341581829300398202039400798958770135304481820969703034811099586212329931804374020450246352887468264103489392781154614974721359163542253210830160212175734389660040188238370432006871809433808126633678971201623197153930073798464853546672840824362348352112542466617693920424885975945129586155687275625183688051979368942523095420573980176651306499942424370249479646593650527570807576711253035264255990940020537822816003843416575089860201449606489812392528804915689058028339887731074973385080156506787836581502321933678448365871006128182882498412194029241091705183973669119709096594252837358798940533249569002572011463343611859603664335625563913663152091272980319172184026163928337439555635707123479381072395522013446730642263360476706579190174323159417635183810990916383588670727965650604162934438091643589460810730935631282249828773389793235393346613330247735525983357962268023574163185500969879556350254314271660743412419615147640136068186677548168719327020925276688800856064694486311899305654148208127609352944276684587007008371908234205956106298882211347830569805183392041068234077188772524180924371043626350781425262176727455908885998912554604579521341803464344376908102779136486588396142219614084159650703320227135511229267620517140365681391735166679619068999522964075178202450953333191219596230007228360918442628680354038517210585353243217366709106655477738765479678596973999193437697218955102416503862250680188301449423972425946540857238832947995520014978081257243779778213442747939802884871236816097083930584388685274363565864471887589469254161155603706544070363975320874484039281960942111087835324756098857294375537670865380424251461121895546319293978280298876580675525874254247613588407967806208075798044753849977424566431603288938029748540035142037900339395968704617418362287751035282127145304127469358408136965220842109154245036266758888219126574317903440494745749202086832093085794130627711391743887849597692167779876724416477830002493067928385624881986908092911512094260711806675503062629542667594225226497154434376656504803310351659956376894961296019439637584229070712538354488718436449751454426760076894752982276057741241074333861706113347338250455540972283221213364007013361200515949565002297434347638268805928333832932199251472787057403256545169378675085201436483848045744167924322664678691568881618650677765971616334437584538855131217903116721319270313899025046521942188469113005994406115030357869378158751514257026067015982310073108678652326428294635009516490658123975797240419002169657403966624813838855737177110806927473725738747317316963506568659315139189556668085363619975450239043992988322770674839486797373183680777559676498465015265458625629731898105812923638335555882462147279879707216653998348293537124218721905727566190340790088881737256013126794855503130756008295902797199408510933002264557385907636820578399971559714394915024129069070739329249863065296872015007648397061316828842126688840046526027321149523183169407616207027290201143346182756762306710340740296748722853058887250237244493552897668771687667648265382247841000768626661861519871466028725229653648102221776480387883196933629332083656606143169674189013175933573879539414019413302233054354023596722798832172164449950650795037654947976857264709598239151588185106590409735434223367402295788776245916810781993872151173700949287054537929815412434837042602704712341571891997852682303235566359978622691793474278963397401421357369077422716326862522317395452383890240060476199412938355237723580512194270225572000503142202263144010034785097800060697778681614856174512319195431202296453037533874129825241536552790537444457973122183343063407299730639106964033875275654124772091035605114588175860720427864604530976685972736265167625991555509391914895457409633911908052554135533952244425070498190438467538064859600807684311908060843686073086093833184141672277084020790461358793742864801079180381059602631409677765495087194929466464863914358821403785912168716562918460616218637110939921664862879572123962409629987112349468939089035892177279069395754764892250427454849272947738033194608268459264824625122606616859695135912153761675085438716228050985801529283129316040953023156425778843753636831876600335619618304463004284613487968200523842797545415235675042206013785848513810046901877763703852174507389993919325064961493009390582543733721720719516117129547850788363232902814599363582741851313285721539964292242082903966925782664347479955152577403037442935217800862178985484764660977500701875653417557864145052663100204826180097379595093756184228947779080257775952692920716462733196986960433738006934780441829979657930245564811765611756774892496028132870677936677637363335845066941661901791494468807664338917592672846283187966693923630313552437414590668272512926703212440578838614578746954444518922835104103582144945857554917970068955082242302657252919353360670415456045692268650278849462174718090580362208878546985728646706576697064177863996845734249093969871472078611352633834211221796336051273194330103218479177714668034624406263127785556073282930955775037247476015967833934510038456655681518220689541102728853173336450391849248641460643390275192819299229078681188663415244655858472677235481859670116625222683551266548821381502403540676928354444465685688429609726808116101744026144365221839187180769196298750348087826558521658967349183013895463986081987769214834780359047636737055357424770475950322379309348075515493084083219136311211731982626740367666121904429829169820054381338439446975261559614579884846504425055097313580988397937096587798905303328970719609149720045082906261206638718512233721002703140740630067670853888795193948458238241904392685083181280248754082920810215088993052591260932722820778546342098473283469591768674195339619637985009609961838590049662211965745662786557620492951312317508183742389375519124511888484716314357689357792888231954521340456605482661307851382044600587659468520834151839781572496782897946849422951478714923741313607380303377954185502392407959075812949450648310286191929869789850981876285360304096882670589081944116348221020128979292207362182011632453718280062363577935770357592838214410624872801630979278336974293226662153402077367536469407077918463132060922633032822148951335655904751583657858726834256189748925297284385125175898227185644270764058461728275237711582768641010843122141990049609036122381155163821791533477168063180595985193495818336653074976686920809287211256795422818313899956278577706055395618358517681246499215574704288769644463387025843291063979497600158409035238217981309451946417213886787483621756763810401695156646407124407543401992652670262444733693986690976966774307900345498518740117006745936746753683523054325428312814307507083954308457764882240376243573731205553086831829247774897249199772743851015839554818663041351762485828361866880605453802254607572343222387075397583066248827198395806017272603653914921191319831720064049454688103683975916615396801941170497530853034073264781638230669297045425598923117942273566999747757484510604721699906545570535752931032873749572797756457343858305685937685648609725046635802639526459915852177834583008310817801350412191662501641078604586921668001578815551858815674214220485469607192660923640357248605893659673869746594277392036384733225186303290309768621285099193443238494841356215666951633151321294446758635057856066609675678055095036709291348242202918585389883328453573035190683050370740697270393943866861079343448854066228352021380929721476183252073192488387876366724077940835973977604598924776892831748112411096305188517863184096797170450961650600363573857005829558507232774275721259840394549274321764378399080321836242091364899022036981497161647967416849142875425984208960761625520333780475283181351545200925241469171892927828973987758230655182907708347628023099359487842251689625038740907819711695115164473356851850400701156285110499554122109180500736936451558921361559640260693474294319967221241964800034386977746464920814603908200450392645205280554727029596431951782148628455815662156550949003724473061377682302021403338145588372361141323617517077139373443522122645405194940245420363795837140980328365065392874246489898986439001182829037938043018506213516323656633919714590917860250091902053768099182474286435622398946717927563615159156314195094132897660623910905334472233824815050255773844292034350446682544269659865615749746884350404352685237680303842328336754899011972951527199032372333007114942666514721492777476430832130993233589968047627453602269626284631036103314920188682924809097446391104543544965625939036639288833625361184693247686317364705834779827328529824168488820035552216031784445189804960962596855569307589235305575466040761196962859153423110649475102558868798374622674683130300872534500622848241626540644010887877916228573930606999210159625072025053128309419992034083579961392935835181925689152840872348330532427764995209091309626298282424315729466174529715774059213380097914492718923798569897280179291870541400320651411559650728760927359635710482961123327949007206389073152514412016107779118214935366720010483911159227124562760581697841529762338855675347632299447717151875306734283708594969011138950127267954316808904711004474936590382426105724566449536275215447192233697160505335306763618484286630124340748066558826415912610179200320502668909030220683454522950067173685372597571987581298274911540193583947851690305456370767791179438739120946370671999174334030725994945240916849353151956833483401624119469951291677459649190348556488139096797384902648188790685966496209268314508602475019415028900775538046065421382085041619821291705227185206241319856251217145325434800582553547247078128478272079127621617756803488317670870264073563628968336465194269801212508706208547266563626836268369862243840113900295180907086578465998282358433163017279114016485283940434376382970267177103861409832466729238795802894311619516243892047185846994597488204822665579937037775386982674548665339651817174015231094011732869051855475923308955485940054189433973035435785544766750051410652773673267927653879849136099134484864556259004525893416258257916024471057106604823445515683779804709286312672250860606236395238942009596217507002773357628602888130672562078390131415127894928782299890349066491056725832386948686471422635901345669517335177608597908257575542682421333221462841236158038752477555513615121899228067826332417894556526268989309986478198289689045188670230933921887113227449967531344913267723782574255760176046082533055481261856007333540723375580913943403269025367784426244598254836128111985111401539091726480151505904155136306129631438636276781366358584730314429312878114532718859496387672304309847744848638007112740614486953470263065561296109958200801665225202322863551573827572467533800329281323235125275680209608530881991597746220401103031629757179564477400995877014067260883869364161708801310397962821460136496548665195862685263702748440616833760704634408359322350199037789009712145921073017993934996228857654367078573171301777849518856758609220196284890824547570034886998866144450883895981806468465899111112265140946438074885695949328427488076238915668899061091044689551959564882387154304195916833628063077707843919746000515988484851897517084584774376629125463052412368686535802881209779467362150908443621311369266417353488939806780820503386866664808564106683843550276638200776381774690861761807512978847520024857860732210068084559170131670389525737408176972833190364892397341023382731347247804531254520785233864974743780774095779655055566028621379664949579681635794808195329376305510459799572373271791892706542627633469708000020112401280292205919274623667078267378772576057866243463957187041800041260903822850419372583788003554518840156793366335894906956153746500078255580561208460803933855413095773610425768344403547307461277397051432839840500248300234050274974831674985703780788424945112122455555708885691365838370191175441192934449458833644594353242394078399871608127592034335877414895899583873649926403588984606072491620008739540256402821469276240245687057043610176943494015141610057942765101334839533653314103496608917654123595805563466757473939722519901976944444346566434718303373255830164082695623236787158532417821544546071062850026509056301768086872094806031407317331046565857802160562462723857691594159774566912488459632220713549135623728757168037144199240321579342745737450778886315690796514251228093818964144833744399880708688415289834881849224222286293374167316316806801992159336452031622030757906099368581836194780261204623563151382125658889729647098742121549459850199842273128508934072943670927719962099474794379101759475625428789275254512128499904237288464131541602254105194523587017007059580351580257508613741574000096660818986011801757153750975024854077766755849699427690256355193965729934723848967726545387034190981668997004906547160955890949829423367209708675710972330788872714797261435236991084083487833294252502680369408068793691210590517328781308620003527555623647614604123326218107676229922749755387903210639201938107476059455586480372054880315806686109689100477987837660932639827068427522932990468514947065808542607912829090566478843178244804250525671418861063787471832057721944900057900091707714536364671395405972308719423854418215244032585816179737485945184057878039425543089471845193608356023063106282217826525195031572632681600280025619734279303834612373357833490264088285046836663889785083851667035095994951346067215325866223333388525401046103928548370335194292592679870209840903020631293902406989383349087486694783213721822569933164908185567291860080233060168014808036398680695135188743011869090806843989910666099201406666316424370778211150202054165976412423226081823650697639969027300712347441394234216840185666617010106509345006958757931704890861096814561174351771835497936804207507998840561271231141115426810794381702495269720179066311967042503406189681231309922916323614799183389788763247349083101649270067973565269467701819716134570658142811749350609403227580989093739737729138416361272630607875066932985708250796475780358729866956230303770911676359855024582443167375043782826331624310701524149248123444343976938394336084646931283705638727175010768848385144636542930018010242433172985555778779310032515129925559617056220212923186906037379067714703633503593798827939120666715857684217939869148248069449287009741295145639290351362020541942342561227680236947970118461529431379069900586213745082784002560085839890747132314722229618821036149109264583982635558294388108324106700600252546205469354575852324659608030499182629221029890998496565065406218531897588354673238341247261565546972958682432036474683442319711814199730129544775106145288454615541008953025858363693317800858034745139301104092601611293298222619033078190097018615576746639208990664925870480008076797546967439345713548912293171189328516720896804090277257298953414211534758916435809594459924845634977768349155073110354533410500135760515130678561059240726765304253535062609650896483833279954434340388313236870796280101599543259908970647013012708015794351194283718245159764384759441011672125090038837565755120818461621099641535940747068693046219756827497878996079393456866033725283728646347521392415891903041588700132788783171643953637800376036948296462631028146736228120308845189240085992350269606006875600614203176738047889725719219720263942309047768823045507347976372826770227796679761632393220476185597813674301159354578315133317816739991683388452917174884868490676021359994844885039019720799501243751152885249658316733176658056988168003770411781006023396509961033166782921928183853286130012649039636967146729102750874224417340780447218408079360570567878848501342754821355155718152405621128905830009745050922708305447752084821272259967328769250018222000981381398941809355632471446444571375317706759472183777916372291808943717429545352466690290319189147252299835687389414681305840408476601532817855568294508224980091065820827794782612614076081132131451279225749052731019525366107438367746403863893821752476658307925954276461326867630313732465553318130436171355814184826858646472976436452961186620060905965418531847978852581061106338361756358441260074630681306416842551432002332647804732543084740183301131850353628675706511548528830210147593256329061244795625030254393952491333871081452057369243624142466424740317176540595225723563794868144877453217308748858225602104354155348598696740712970259911848101592789940616631288646988596436140435241820696364030625789651908139411629156141282889834347584367267703718210433676846269513049331119463410212354817104137291579752662455199960128598554475507936163029199636255366163241314848314903072745764352410005721890639611088702918714568968946068281740621777110850666647617806350576460294054683155888626853336351845204215744264232620710457311978019842765268785751915656480094936532059397234499491948426254319084357091269825586711690498459968961042714289865059370079087037600722597491529521761820930013627739320613183742605899156567916066991947921497858748777802276812596399580416862753538779377997070725558849648680416901663910146621118920584522543958622296804061585674030674149424352248163146714256585929076818783264973786141797843325794584305021049548243676966931187945897701119663832013132210127651684254608626985774544151304931731853447721521325178798586144969675632779212225218749135549335373615319108329915957552768627333856311803440107806386055791325752918237098760997464998147700169387166543882189030448250826506927611502915624118155796050115611511143003030403042990416227888323052215803761545155044437243178421288837975737545254084673786595688919364972772358078192627929592297471541648363734587220740696112730049773259617715216326051927984330303469346702270396425974808558349617886406814352129317368009886850469491646659243602767747867021678818057054087347131401845903095547682540084606875146207645624391702484510897397900692546287762408104665681938643134766726565201181797329501801889801852572577637936433908556507576903804047608051251752392501351015653973244595386216158058544055698489382244318123898162681706930625471742349568471888014464581666574912539638547454262303173386262027467880286954036925103946526834118728554953400240211724266011837481149861445672990031736950181631412015533775984136593353927188578491635124894097112343182961124159650157685394431637437641918014965106419076270367099795635915322051486251960698903256417746064412437568644687803010744666099999054095086299967723676603804474725379529090705321935146008921855830590393367033841328733264492673616233440631983014040482157025141203818583085073942069554186538728843528440270992946193827269637505540190095849943883010732204696826689226230301869249616175810136509313762998343971442823264785626648109196403548235658865378732002047434021060439809371863382190578756056012418244971839524418806235602907619355402398605176915503971413199652743589617892432885784111551851979815772700263381570364957299083749299193984047475840017027558544974923013589173873058952521655491912544255940762590953240606453904598156811223195172390139947676222099769790614683140178791098254813037795895483856291620022650190424600476475453734592735694154297640503124972801633374298364839519432731600149567681310429755936777891522646641673115177482633354577143191313766622893894700866868483082503826985601070588612225665563389421681032587081161406284765199604318515503348378528372138231821761558870622156309175735619191501761244726612855011160206174136777874181604933517853542624198849454080126547212148847923897757295642650664061062399808089184092989135451967695723627626983326912947856400145720599316839846300207891873480594939151086531894317250451352693961110446993658113785428795515566141042364379358905239061616196744853447286609121005347369924039253129224938238394769667191644570355003798544547226245078126337632808010321312998266637979605251321611467456032020578776996488090292590748307118637317200547699302783108268630881108562892481831982941277376861908861299597853061441338442937584498265276214939976297274630877929613074042393205863655626865631666729441401662074896592284107031746407495241229331747328486499387193830653994888206627083861244131478730085968765987174526237874435445571161211336718343803591247416746386091779467551783770160146217818420271352543721433113523283728656707731260881938417356683380964142368958834715574252839155392457886820929648096355704548757386957061697746047094050402495993244342568386809166098512411975354717164847050288500808639648034590953754082569204647754045539245266485047028924294279433626678988609220670845120270547422783280313586101678235091424108475308271394869131648099613647340483469522990783191968313596531177918140989003586679821294254858067820565302336158648043525453599296446549128537248273059013645566904468888758660221955558704059843804657167384327401232661916681004206109093712201096125140573279823009307182953492616383357704027652659900444449668188264454463674335807455451408070469823780042597599216374267010637971178523956064839176035784844087906153245002590183298985092808442400745282205125672625692962671288068762781286191721343203208281676285772378023006865633497426706591361301761631029856157157870734197794078202360564545174168444669483474586093695731895475575496856233965074733981880095822921900631763176806827652508495372982788403941582665818699262363616934537334825684963908435098076975144685912249159986557651184891091746192767789693428227933269205726539737085780893170304789115072562435253501557046436601346297949849020395124759163781548380436447964524931853160896894349894401220398357867978979472500226078431343976263900945112567696315932354321736928541188523176253777403416141466605939602729892634072075707823774363704743053179878291894895780286902764629997948707094417604726038877218913389240360053461843256378745534149041406525858279692134442769134769628502251903362461543149132365755969842343907713468969043058551948465041849417801459706755123554169734286469273699086818806877600437848087187688986122571226861560863562360683788361019460688459656536600715072344767810875716809860338902719698958795812900759949394763462693475330806825825525222734591307536344360432643090619279551909564392934787874780295265856584031371202142185445318078417374655120936140112190467347709412122735643337183862853080999923987422886428105940225943966156135732093164692084805266385559095291808576708914982374733448717759931614127336149284193322423916003736548607391413607678738242885894667190390525981066752757123786148263537571459336417186313070366521932483886035125872042368392221622309604358177377744273156392056325740765975091684648639388847856483668262638847285333788760242953361871330321502749994946215691471081388767350737468732313037352504753044620194216141539824697962911938001068417843626193298079210040772772647283175609355213762229473134550302250294761042315754296953619158334071912787194679789598920657474532536726866566861307098897003238228163057374874321112525969044855127817772710698548957327816191250619014815314797798182561651024999109614725831755621989999822322530132587774811962364693396102066275203109919818224073369791648878210827402684512900127486254840646965937540485781143967010006572950040861579998958969490865442456453931248719856558957770787252586671998036852453718205691062761536067571768320980549758820951464194349508412760632979803917981862159482865587721896895636571303286277726593316248224262138612375495009922472836747114881776027194728214987382258186510969540736581283460592479564544166805849686644890238319281636410342485934613959279313313629683514054933340028288678985589350954755019330830549544674314589877683901812155470763594827148183969943450919455429545720415201366413081858922232551195740513274620495638461215881553684291567300766083270062417821507569420935794200564309062060641290566449188706559193913456428113935678306929485725831957479567148116619171517562331673125120302632242227349595555583346203826816650085207488859255018096765387247136523351116923538388088500892041849076665536726134388218725057720124928996790507756080844234679625260002461940692466495803710575265096525685436270496508019182903759382547239385096674500376292516329428699520364750473934170203040634432737434102100167356670386132372818228858252566839378517017057364207586957826215981793321838014553931053442523299261947905256710111984162144773428130655289625889338298747511074868146605905525646702136439135579437695725719549622632436176642358138748384308779858526319556040573721141698325194991773486456085023543376547319951382546631892025312067174071755907179432552903134905531497793417774766789440330467171781808432537219671767666975716848229131266309219971354281117395328344380041511488053755311496008260303822146685240217309013849454813432715087585911740888425453418705847709126920311460081697083050301556296685680597699462157257391174509573822744222988421815675053855750597946983019711871793428515765018705785674762266055118664990879996487610729315028062792315969564002080825741651666823934754342645960884068054408062209260492393589567418138294466378350297848827247086831612395526347816129626339233801410843622218500446975548490238224963884979580325840463180933640503461628022352697062589130700086021857874368884881139074355720602896455126746371266685774146098785990281530034017396007308122031070023719573089947900949216003555599969054583037696631244995998529253882878945620104923711764641834991569444120405651582241173383935758227417020473034556937744636849927323412828301777646859993704154988673725493280820908110065101585897763508967391188391145923789567857744507864218425701178749686671210637966229451047487977529110734823024246387122591456406682948229485762114353057829426038846574596389251063984888720512249807544929567306882769843923563874388444544061958483801352970649117393129018181301491299025698310356011434246303504514163214709632203892410204221378963483008449789198205444250226060045824123308813216722305094540814766997136944086904979948800629981167322049485648349705843164899201658727662944002596425403991306733496516475789108168545185374856756419055737599543012061170194404669541535349773766009343644498887879357225447351617821022089709795402506733739197198540089007939334253264564676043000741823672146187958404799941617160179702598648148848729678315497235441623348654625931671189377166464954565417670808692711841321099693079489510358697234565240526865294642032846294581691977502067524085448374668948223180927071394458065845285862329283762930795617789696943668986123768895488364472232603459975167861299441826941332622285346799841166210364924961809007616955427269068590250437762232045790130822699576194471895036465743806366941162907145081271674402627579113326957542896711668911425938143992040178589470112864304292161770434349901312733678131982966488948862039103881928503208685967885836020540449580304881443260905776793570140423756500645077106122952723949133470467298675811611346587779181605265130867555514793307965087250163273322163491606863637814326673902241081091720493233186505231491040399823714758491920838213011933142404589887063152176293210005058971674017299105105802393845305711924939193094990115981965049978377746285320202485150298862740200180298392330930249259005629191085663013451347301631420945622271626707696744723160059737911022600479464566493921728625860208975320091847016565877876975318387126054267404845361275470016554103967042444787217603385916664655589231238212497237226553081498043585729375832133236946623529168949091159035567840142722429716073189459970428828132927776285833299923921585354322616904096069434810718098364131943648357838412229281173658722539313725305845077727124390653682706299313561885357918009292272209583414558570270052171260331938160238678385142777003298415650814424778129299545572894266583416663608786820020641254395583889614413592709076356971648354331951166651739324476918748967473754294959447785057711543113949841021885646283476853866074751312846501869254701034303623030097018098186165352789001389889278322156360270292138885435837012095179189531451253310756781094242038773858391812331531807573876119366386792435337769460415497923570882936615995824148878194446224546190335185057310712522581875502931347793780356299093972354363254527468175542603110797772794654435271854553422301175997905263787498945333620704765332977673778523395526809558946966084040633836335898294141888768166212472587763111742890598671487579003700840515898801088054594281053100884478794844060063891790686088589345438578812301454056473402614583596557000144825137418844497623268609526387066277538383298698638940866575933829969148823443450039013611380852622516808570812281567898793493702120452799241053462144776985339700479681442641398798990167881077474876034140038344722256236595661425090090275920056086224275081458003825747079136040872168603715008962255540071563650135561844035539349242204404447919077477862374577793699427340481073615066537258771115542059036487386703879944063989969432170946313142858991006318488387969747010873444974845683864307095073628171405445168185953205393221911629780103831171002789303820477546063717658209330027361950301030933052183200664986658909737495994385330883438424605546808877906080632047646877902566098942748428041699990308078251171885175057974458715477033395142224680804962466507881454637639356955498931057311563431469308368143031691830432008684251372456158681852098880815793296648884819561632307428175138189545938612689967936082180485124556259803551415620136790348961622432712183650967281969286085855469326716476727182919288409628271569806176410426442328407171140585944019849277597503366569407720338073859576284570187225206424844469426313682698703445560777637997716757973497710374541291181629715490294596932254292857889363167708567255303276006045283967474444860599221819016120468422514636432126548521937979725330833742154225197741722789649484905132022550573709233712749706417468032189781147164752895822324102459993784683162820923809360090193507886548679415025911084174142283295107309628744197946156139099393589321391191005591534640029815119098945002672027098113257107689630455700713215819379359786023879109480621626756986286455324685067156181636652775172110747610376142123348329023054923530576110915752839834909065581004190478843670865552039206654322993494639775226496392265287919311736072859472773938403201179467536869550635609947631346169190896943222633229968392566631813771585569366822488433435897972095211783116782011370718308495139908897881734168001227533183980229405453525022613871636561476296627401622006000284361952927632921099647212144577097431846685861411110252180119582278775500687867153020428296674916043382521258025909603391124453776114077844262022145066692642473316041953038516576126126036202705850115059901057382046946295112572994410591784107858732441389401134934876232273569954389082535160200657353245114364215115580694850092157331525464723544170775119344509561851227175870200604507784614579643245801893703753379989083378510306699467694039983329534588247874105805298916881087421638932254603024410815539000454612461159180604946430393181226623817007653273324630575070693903267157567816861983072158319071308605246993208207694468515285238637417577334047211480179246054393410800942531212565080604254761295514007894194107842159005948627362214045243818703305823263460064822007689737979547042953824019337936581463933803761065582418622038489007428925615539165777468587911549296413536169692279165217195445556899889633158256757727463676713152030057912898060794266590828113839819574469963005318250254172953817883096814376691981614428959484346924133394721264359895625551602037643493786856462905445108996485703452980613766350204761373643874194880839629458321213784920003447249826727025238937693259012509039801323942327431986283004787889430632591787632944182584657456281390459008217491175719616806964209003966565021391525362340237397621482867153211062749977685195110998636226345380604938021208622575651027723433826257493731028534990204150287949123826759360926052590608116756870968361213449192846068884567794204245570471984466116825133400342589033815602393488246304775148358880541093939723323367264979904069813427413332558708529180350912717574146964366996236044583938471008934516854836198917725023073697022407075214552550006133881410105836888719005390204729315440349161191412374261551143314509376901697915887814752577102894763393382913864375946827707138418593326132935908066892545706560113424080582938611579582895158587125127347794870962394502864383102320618723012505510636666470306193801265274849904147918766125233465533930019010470235353213716703983329146608460610660606392652393449539209255234625739663759446989421876789614849693128146565644174262693461506533834860398268179975611340711684224213554089398594067974414541439307104717776393562871873886251465088561381638519973026138813561272855393385337809297886766510574147573208965433201235658036675668070705346998880939137309730410445041601033971166129289733531896609513360233636897703932656203103268093342320530606024233523751984407259156027414600672362170740863686447879180512500667630990520880775266295404312881607020065921911148825128955027118630687791164722377002479423168950429309244164310436913557331151443618748312975005134806715647050817363031047062490883438852842101882162727909166823472450848688383532307334146815440081656537619266117608484053971375946247110670513845847033584057170927376525823258402915706177908110794593124083168047983384462494303131743596876909999180679567853347821026429710833017747862637761143879513169975393866075832071246991350174363489101872875820479589424849887254977338618570471500256691005315152929599104226634171342407013223758924271617154352385253215377348257835822338222441747794305622980511157891750630313009588745585460499119090263279719956925041012102672242549028044592141358079400412215903332389660034629094991461452850333357952317698725091613141892259215563249576461216535525087551299005646933730325872690303875196379010291192032563254801323005030532168425991763625978874743848516133761595295308640693247438219123105219029226740519434377362227636938959717142772647631157285252199759654596996743968939346285629130476673884837998946764685074306582560069751242303732419185176536817676649347471474230944459735619573844646148642049855066649923440567299332137918418483370194246623276386281072258494855990930846467554510239561461027612826542995933547599545062304241634447952949026690866748537823489290242619443724579044949015321154533598614542758441181462293700137066831113844855202366439745482886036669292503031342825440404513000726001375603523302568021491473839516912089316203723934498450662455360674143292744887837232192415067999244714110049114722347200200109955171469958683927535095218601967826714757067962358668821099391944802131032584000784161085482035843904844125541133082013783757664585823829078931153323928580496917619897344317067219446896427850538624179123804344653460342942463501007757436706026821252411926180185792716386990633220755919532435678740241894863735471513529593728239140698313940836079418851340219325380130061608562795626530967554493266666115330564825192403471179671291780394233111715874094459150439168548897326800487270258985412237154456154599301296347615526695040259102455986151297358571469632315773652598891034982052127307342794642358767733423499345652731650928557245859324232351956955135355299432124098426518125267195718689390372295853951045476732122166656602938977516915966791603287163588117120589640973859978870095047793439633814922429770877255647963160007946879874550733799989149531544878288946545777584744203499549452973634251195837043075266671319805706949288314474879062846877809917286059919605369168363732195018613028326043552642143688585484086959866746811461785380870011150679585156805880714033750971814269641073903233873804251830769219433338253267309787099404920854002050359890053383073626425319285666574175695034243019468893122240832604504435694530836941760684164751664691722241569733115447181816011554512205397025705963924800208163640684023436198247924083032067454222538379549683837994819551315994105921514843026816583192729511976956022906950146913712160894362802096696013702993743177696299654542422251309746646303302613463137983445172461758637467915657986836817781824943885306405860417843269350360725776282471827032726779853305447896000869354832269957177992078023720055834761426454680814415038940178132239537924544057131799463039336378948856720120191405751801672549832133127063408453173079681670393904402311124183571816568103621384658906931510876404254980973423945137788922872951591008307740903059845444233153397046644161822029316963495324701516137835474115001775439400102329948533740133292300248424333983926846140756795528035627737504630578125256153606693496607811245138117896461370270822407450261057202389853610700437463891837462722989541900249554510510346314236437375190808302851983412831107192273517276233702806677672484110762917851724679316440295899231006397807068677233531095931215586972746081132935223209508548923302507288959879896075047658578021200371017422078095878024210494355446863329792737956750935697294504949285066276307883228951792311603635063365811772438102758376424220483699383859298187192459140014533825339027687805205045468101674196062605362100379834083841499984783258545492515240609530111353813336721893760597096997898222892846235547000831279397623526099846546766612207671883668735028410150172127220915205179859704519654722794068980940235963184425469232789501954280994166912789230420678696143401263398748093461647493044814063830173170085864387994124646159681233496561050570188948216306330066670698204498314577556250859934999980693375331185314576083648329267349119009843990365251347249654832828074119185353763378124713215327086014329095720651853171892283073348191940896238801264210107127512970086207238819328546369246805265366275507555552326189610153623931758597577288395995316381887568523195655308878258212664203597341462417240513974606886970642692655638016486380073673222111311933242499158378172095963054827876126147837009862785279518018712149558943509924404938761053848887559363828242428888022173932036485221628672265256353783709348511423824455070942760602635961600143773385951494708843930497241196711683923719736691622720989582184216445152640133541843600402651005968445101840884612400750185938113404160899486132393756799034651823324200731530892518523486776268772748442963440731075130582011550075619898232063651077810497125828946673623668955971133284239050059242675410273014239860899793507053557144652725805343301523753902558484238987484349197099191158361191111822943607952364988810941292519760317621931072603518235674799145288950744298029181035664342951806919807341400066322308351144976203992375496911203625296080334696180429453575310891283214782226617256735253837579961260562959204201747911621298011254693670240965830527078850981099519237500632212351384911264824586955562007084543192714993064554743198101013211045182690506948362186865067997164779308871290437624176052236934799334412328315101263289274434753066914625749043746899538417709444096946641378539622625357590653316410540474043827390204333773860549222636480757040426317161602115270050239153662503520572357552133422959246403371169922404987818479226067896472146054061602678544578531187432043497556138642965747773271332276645740935709957721385159963530755811233300772402452973786843951257922976721403655928920568936932597197326915579197973545847584549477514091743394662564801587418078743700978303086949529402068982294138103613734793880026620580019293816317325759750309521786580420890194505466083445310876170366566324740436728412837465643347532395209769990425127497067586363755762431831212076486397080054338811795544452116252887658019886208486182428716175918587757788222372926561544260098909273406496771353744814864443465758052618417510018099162363265483732132245102840375490649620130808303923201886322145425572342859670063614289480237036494905014080050024475385024830417691218712995441462405411409644532798948144761546930362276398102838679485803498042609626211480754873856826403676484854818524109877538769068308081348378716206364528338995323762160361858890052601624284589731155287624042581862792190884653908465892970495699232526922181984682558057379064478710299272212553198807244176059493845330359957178984381388801165408976112854946794683374553357117850237647745298361011955785704146727923678916363344120625129944035985409149562070455236315410159051297632333365247425738196141622168595992531769139016723049027725341976622403210663740502183785096995610545850693376664534134082983699463066446443265352929828723591423311109024740931318664112582562994233105451147372630344220933558954929827737625039243042209118172550283169358645546065035598681210619222745531909552509830617719584865888656691306496195633110110792062822075110140529023339607377919996582383499792951834063729751187008286628469478213135133574039848527775607322058841193314182787654353691988727588063425839903015131436080751277592702016423052015979829837589741144805079997234559214377692452809987469471483270157886730010940763253568934299233506217499386668210832971605121910947459728507018324347571515951177026348842219136986871102159939918074206886507848983583107720425149222038136097804079436544505741767981328360031589926941506748890183986635324165042718284920759942035153261720688859277660226775277868676138083685359388523510349307674083367281994540171393733843073072995781948381015508342078669084631085610421680144746357713626972818570019834092104067062656677363011633280183073802483826139643309137644394296515651664972816258231331146346226024267127749937456240235978132526461027850994695726862978203068502361683624136201655622104303526948045606332334971289204392833965245084839073103524437846984153324475317006421776392724541512544266326607193329515371589135324843998265706080326160567980784159566593337523480466210421893300960773421049538316987758726695520990027550249914121928604724368106679018091727247563009930515247768813824468962763151330101857096741510250855585719698128728720737429136267337076804005519428459891636082306780906593008003556989878619443202392204747950901403274046329178344609255900220271051924640843381529250047932596520529934918013259528377387071243843642095125797273007735358707658401876217448289922700819116521812603170475662898244212319353726746537571778087703799123691126988368237030941816611544537151413555761583112259328733331769538435431899606615772232395862345904937090078825457051087366086836785588687946352808205654087893041638574548799277756737718733658887721171305897818596895795095101417265644040854408819506274266702657980425680786154187864658481744409048550240430072602055889090772904812368170850950165572954303795517307163821827053492616473339178605206112835053418710178854602315873127887471338400258686119671313230297576119711320742666813004532575231096953984083346986771173944899752439688328584267694716802866323339431185227281782493297234028156586314666870879520565168512793133875011826264159534892266026813264700888440957723183485274269749354794469183494752135542801549568235320105093704589818840499573205411471140215785466391244883298805328512198244012714780603291363657873996661203652792637425135326942877126076897248052773958521790958202655630579285751788138895273363852436285730497472684307744517037190693972690869364512946858240894939358938650268615641717265342156962507478271722674573211321220191504417876311234973359711205962729065998698401308384324944440733540568296731884729463677207789756870014820117129339223998531714522706530606806410294804438011022076800370789160305511433365322636073073212333181219753665172402113306388113881963605237224591825079692803443519100132190652278768872223888734727212883823117284837669240890688027665380221474309417846509803501772895626173777474384608855077086603005502955603559850855367227696648253434393243100789790133473788018371204597358722376727448715729915377374890211349995487584812821681493612650650452081628587841044635060160962565379683925414924814289086584128904705515049673401000865457818956686794474681467613485258907792600632317521517830747469048339466956559042329901673981814615043986842798485540806351579184040326623477767876434121694425825250739687139727893257455456241899628930024671435976301063099664224921725421024227898090705085002205923004528289568082248381893439700737535012699337774788313418474916735011677591106496892654986214520209840267204657946143201731091428299020617392191063019966433114057365970619359396853039584727078639305367480590591176601881709138521620627103889276224976632816723993297354300057842098029959795026488278855743680988398316578172522088307683566152958756998587069114911601252655666409022255886080934641695321738852587606725345116101463296845904906642438681682677169873211109798796629809507330638250658144605148782165723322474433329530462582577408841367645061154724250941540483091126638184810078963776700035637616603460143102256005442688746895492859197496802402255944983667785624380374758112305813562891568278499094316917218879000920056278974014381673011940818297475424470075460712259129150556889963602123352969319169709475142037494399515850900568712764254747195294094549332703075486054250649459640440915577744783994937876084125261260200739674635766935395626026383201288173718443301830180414769783882014946800023681886052819103995838751681944844612706934270306046656787057058089013522076217558975886569684412613984822943473866856086050910139216233119884956376109817137983905196689306802234598881119711615879071091547504386019162439213719750037719806213380414389429060124569580238946043015591879517963238513599502942237989901121857750590084684332514769738828074881522927287526721799161765337397599533068902462027761907710840444495860889915204399666073442083654070670578475063973180807646839808052614632153310382853126566165057617469544487077705004107204340773090519831792181630088527730920723326927632960489840955586373864203321814498491441943465382764969569054882075685992205417204628504544869723092858323816319025134046639839811125391469168488943607053027842663044430514530501531965179445477088728307590467059112390168348707417324742746595057624535247713160662297473835319105987517455869185243105063972051406360689936700374020547630871642471591215838709832663865176605276925524112687626029833573861214086862781301545135380987912707532483438122141271726403761710319683905126429214818149915922698366579809014126604253008047662962017290671436638162273733171920883659451211532801596892026087784804550066014341995261164451949100739688078002194586598034389663577872767688706237195622381231551062409972639793597154070997673997273623123346778720294005225078504598443190824620747584180668808587320057126101740765572610143209602118315579479343605838733533465778730205170648147152620960144235653415324916204659073385513165264134832217640753268514385338510805292978735892555143104194481138395407685718491716387241413257447780453546050779524105170673918036303284909118807159766337482261909981463190036122195530039121828061440010498790767610654366081116592603185192632308019731529922102516398226886119527633626877418106214918147858416639560102180103769229792441147598053315336287892832185473897520094020742512426153710664281338489041808806645136830327378197811578906069788518316655106436587823688735158714615804316550047220065110098075040328022199135964881299668851871134224307775361283297380486921648349529694847845880246348575543656760616346773204480214395291865259420079910775205783149123926696788128087120095025393402468663951840801642347096150203774973375698801729982467615099303480652135522312755184850062738656686840694952932747700985150256128065552272564244568766189069250126831683138672483711332580609940047566728791055012907041581329673118995966755300291002078637236077710131059386852789271893407552308430000204713942334246336890292474632138024827858323471315741674156212182118380913568935037044390326326695024418636168112762725507269202460399863575184097042499568641863354666393747823235408632596983030779691764371924053248967341792980602531651901457487729548395768524848516660142007613798927701905793532238682070134834287017773336452093314075752777624152194751273075801126339212092660223305537787267236571441977506181982225491194055688247589064292034272040460291138323617392205168172392299406843599376439604826185856288549209899027869222029194471472541399026553297791481291325041491608494202942248077652757418368300569115772305333692079331309961707477253747269102447469161928439091243087062121943489661787395931639586599786611068261225263923020415520675266361982724247056485465112009240583729847958521698186638411974253896301685969938662226078101235540809318887269745722382789017680498860248380599052161203146651795156154034101299288366245100945140166526107528791221914432435886286447200653594046117020146695249886180981967048469757832195203107904674382717141084788800140608665157200026898655983641298779105902428831246597260967485366151082528545815626056933231556102409095166522087613915205458964064460052855233682155782896172565462913732270055794753440579035230596615402038131930556355316009374540423558281556413070829731892889847622110761451000696048684609162585587200054130671353679783066999618647980479491460928064892769935267152287295429736029951797987315819043909648240781288297411978303628161398775679717906741157062643401204382216898224457250270496456721279372872002916395643354737448061923429161411318322000759653802965903274773033900288227435337195357814691028911725404950058758502396352273920869102464168160208287036193360013803735448082419248925169180190731692460846172556633481200779940096934352674254958086855666265185134897207388356987157673819264944719799781902030254907437569649860674202913892033759282443340900141096871306670052326374074773496151650631099552856465185429546495679423599968887503569576140449488062909641180875566354356223051947348325917803795137619225807724209465236598676470284254255284183676926915474031509901516917201596624892637452617613748072286436340103250944009043810211528307203087749935919133874027943711701003748727259587045564018625368433453623837214644681361038134290596264163149686743225042850333252234289076028197228770934869013674909158786315082733901534205068655681697258031674661666214927950054370833393651952829007561755063075165874602365120181631548706667105949786002125964288568922363857422419008779095077855863437639264047762550379340021265142258399619753139046384596749380040319373740913104729948828097292762948349165636804434320417891450736139687780328952831968618290610244368607999725798596922646936813731091037995730903583653649050105254965699143878425546131013412811973065797096367760552473241163363019730181449393875543055570857344884540576499009315892399329131164652120071177571826708052313978480283889217528453450598542809818547098493491530364306122112112305196487475987540796892334778098529234029996825730126854865289264891399798051869462871868441041628417029561174141646178514849429999556861206442944075306218188135564657445589064238312988631317334823517877780427366195123398817344169956817387668550381221697894044160267346876880161995117014690642288886384450229477374960857936907961993115165140143502971761987105535039819473295291299468163868177147575703555376258726840739260717898824899302357185352844946692768601068688398353891825501572555954650789525042592625306683532041079477648862634515534160565282265219103083264794717291696866808384697716516744868502496317649859549136032123961667044607882975923219511120938181289150186518150811749190160333376076626485936285188365931763967569813646814568092336984765193555739024189093411117090487723428782985179147930895058983942663936890859265145487270539522882682144401749356057686107707622526526530216914539106769024130846844187577671273634742924576252615101832045063700843061724461901897010182394256305850050416893848047519427246274984224676463246497505785654756711255074660265711342120188132822724468249709246488321317804234889947362570156596946563730849359347677099459425896896932824836711843460587423201445675803963742174455612738973289181118200895420928785436025370082357535402018109874018895693177887418377531683074260702009710134554132152452358429817455586796670582684291687610321434699144412070560354261332575111452694069012575267873282629788006234269840355476603447977803867646292930166061542779732632605026965631060915202418780818616112891862155120945636653422723367456440782840404048851832513628291886490000971528801738901028767513172458149807634036552200977414866236203027138046470656388902501615244271273181202448177221506250174363955518364754862707663000527720842211573307781484604629213211129236024831963951425318859658289272003466072909942225639770335885638300498666145281308218884551804387905122831633574214245727151471451373251872619119266221741154740142222239719706795251846993084267041252638366016853337036121262387965144480022929227340337045529898766875023304880691583884017430714039490708626430682788498467144145308219356267686098795318168212670969303792121327136957080764639283007317264831913417917896446494710970567218085867186805548259264961786331777786588447334016954240093729468609144546885435604530626185945689072951776798297820120111510518334175395713210968213093940373294742031246478106323972918533921166269137360849228591298237809507690448894407557111275353672921105209640702166083116890615361232843264998750166641011014827763647055995972883012125674451474568336083943320598514859770105696417448600221593357850505359473377783559796496036465347029553191571007449034546644545275455631314880814191101902575177859193895265231672665720655160385015510186257252174839781699958601558066673702695287935133479579874432816720974293663677136657121795233279445380678828592399142410965270500711869194919454413589050888781856984497398687016814283844415042096318554863742610355086988842945317488219816304673970494687681651220971639094767834557316553756705887371270652209573018014066294648920138751553306197218689829373486564205966081548230654523852523191253145079050080867326559891038995322479404533035281090672015139192318036234553083973471622129399467208833883212518746055738088843299635361887498637086183181461158474532735404349705537615386065931743072364438773583646617747526421719516259131957124239999292962583737221411817010491103866888373969963564164635595048174633260464663870919294514104881790649278712875205276298309187902611455517088847316845499546516598540976478814990209964221747597324822781295498785137383904576231043900935041693934719838657714014606716611315059804398085411329328387514536753990248886801483576148836916837173509075735064274721961643121562177983910453910600449610565922306934299298034752418749633102686817486127257132396882659216382990465383500014192864149566661251712560793012178086056832031638654192822627382677469773254052192737845522390869032768345870651158976904462970597222182638505793641269709285798874882978593490074695515198990239017963291568870072147613174586116927369405827726466842534151513495637868124858036165222511387547263895100574102081772467554062290748124848079781785521928058148002668879658928473126571552776681037613048442124087510467284988340782768697126918658981282275272973582195198171903377346002544360169869344010443517878864524766182627048149453673541752810326349807489250588608667912291150931319410623397142383475586914091984544764339316388159690837251977963005092355857719146478274519206451386341739451976049102431939614824771370619208466593644660705944022646124430236599911883729950666086487824127046549611790102169579148640049553913908873984570469347204244604815158724970051362026714887363547191071907921223386058881178756751324707943251719849798571151382878374534680222039407877209841321260475986221489971454885361276570392362429761862515079079760527362826542138444593014340194158377577758926521950170199407382535616618702260706939747293519293395808727792137838496893218655365664746004909427589832589002452038377810324936420422787733797839111065976656274362766640695115074562930976530083543904406961487019144713521712193177205341761000374590829824611979248878399531488482281213264587193640599365923395433249952575550785010122890854790496064089618872931278173716118029377125017862534804430527490162994950409362728275377609164963411948944917209229223410502804412643487836995370388546402108464321838431870411852414644360431982720847034847730470547792645209012309466210949090845616182794163996191316023935083355903484745001809339975191428477664717304897323144607598090226563464504930294423791627031929270923750869010191309981126556652981124759884094066436647617507783263601573851154541931804293548852132090102166069232633710667604855687133455511416523289351620921855054933357233014612514549390737099642684387583435220039336786584235868422754082818640566583728602334213084765941331564823809558949640939889723475171316200977490529068341412315423084632243575605448359161440654642824499406422578374877781409310671073390445066089774874811434285542989433788880752363984276026810641594648845766573420787930073827074860254779655520972597317589808230003341762496981357227221115212565317809765234519547642668851041851537402429963035040103932798884552334488981649372358919181367266442693789620692508603384364068458167920010095435468186323543896819590117580058861784206840461846625690146452347068842043584594236542903106497867327828337299075967915943727991257000103172184137576644337332094798859980258124462201684864855431342020719605377242327484665128627431118992438522953008861439340292562477860795029096426532836095804219291315615131843478983753709143743216963511438033750841087991154988391530196801090350058806322867251292683751519330478250228886860148760986368279681789157193238955397844006847269589449529599201076084942137493405809980215908334383568759475757839013101768420580018055533633686953837815014094553122274005810882568034347608022028418515367360489918228306466617241275829300730503338312960902875441825051703342665292510588719932726864470901755661653402538393565711305349952232368871653649225162359735504803330021969299195103022381017316655873162360828506459753118833538971011163321371107236003450447919461429963643002281125616109234723401024940434172988925714354124973431488742728345036618570836934658036858393975714727234299215329080199352725221131092716891486031096769380050877245692665467707747157459742111209603548566474944131798136692298450212409030690576739382843078273397001199548103532502963897245221293009675748900111224859890255937611357237231667771993850051706977910194878898787017334152790634869414274779200773001034822813399117342811484447431513821434412120252870618229963044825718765389063975275966273748545808135628791954829531876403926812456173060891644924778193028807986480226725182319562719504399343070269467199311909273381706843216929354909296365085373285106465079385458653185906207057229000390845775487844550186132907621204502973171107295008611746614466250482570549310380868964740596105638305332321897829027265297576199166653238230507388634063448156375492717342756911934958273337806262924090448808180845741911149913951163282110612815202063542932743847873559943378186952171112741968545685206660655807553772974556119538383054488219349007165163600100914685403912356858938134784390488762802601150025746498301264084254123738273178021346261286147022621131656693082073564933221113908061521305861238478751407863882171911478176063469499168735409078648210745439599619572098050896993726908472286251911571382058091143065600896201158123342645825134539575974530230583173120977447408198111416586248354916011172568977726737458905021478706846970698811218765239886363855190635348127136367179963019093258452228421625991086722854919684887485815997247330900345181463317168334956423807021774536956783560418170169325018156581273971652443749920768676510145431846075809623430403841456382347889199708865978696697681788621006908987072649318271507318335744574158690986412414371373300030737755367567552593287389449909341165948852212862430900904459040553160089335365164677777032923204728300542181640775639711829828330693873363367216118190210871055420394401638993528868679546920574469967022932055185913968171720982918751297474049923244505591594255640696570160451557192754518187670360916780345310844869721395990528083127484978421201376829415767372217985091251874616646127840040627108080994415821426180094550964841526999987737913037783170842742979604955100595310955897022088214146042676209416457379715899036097335888248362335391954564961274073658843436660076578517006422319621722833881900979340173367653348852174724967062146393717102585652026102814167228839042962308058125433199998320768011726306090095673684981512305682490540856079733347178195377388205755191970223059918338090519608838022045950478087368100146292861353550532056101144341414446196335041143299527854345586717267412400109928590192135716263058047475231272563601417410098842280228230170423788078195867314604419690921303502406470204949935459015663387038997607266667349223080648129295039798126775239576775651782488736303869622972241276383921935199797753813650396369472661431626576495512515998014935407535013871585130756820044885781891337526313296484989974462399099167725057616069184875234885022582957132837064304241395436397565046480232690362810332261244369130043029948169838320299473146965252287088833103287128615314554318979022396278743171513542897591066241851438984832670677908810393529966245515001178314716128703088902953554832323934155028024776775736435798226659915809517586717035335684633804259307318330323956250551853960585962638826915813505099464040978715471583494751645123881963463627134718209028533842481868307261949228322414081869704192829962860263098145926025251814278664772942126074941956874410926941227788953788417526525275595638966847424906869976411542941895731836785802464684492793979295166531151559400444329460882668029043013487556894561645078172886485476696754477607832339868731395781941065523896602390668289535144755930696390840777050352537190256032015500020187659392001273072679160532659422253741250588627430333543605322976133104221150517236309964521634848659989719623122019148990013527327730616007945494914980412067243046442338709388728618517999313366590271960907073901966312534520891834760236512579738634472935127528291160641274254839065122542538969343689400203580525305968448950497683696410373350805403955344291095365816662669200549416122772726579592933820951458454543475101011845477753855140774708390252863764718946485790471126617064148240461382387924860962863207369454823978429063529216155359047090427583220357878087775663294103393724064932113548984538301802039424757291031725836795235467705755632921422844411186441220180617971092148941314211541915027975504422945705874497759246703837504528941904711459094541160614722085127683703793352645574259441975926158896273368086522159682208866075464537292822648258935511505404892018838289906375841800430041814795560419405449084829127200482816433979198963057125224293188745901482501611605540717827533426242970967424016272674674114846158784096394144167653208718358276709982561100800274881504584766382062304031852791877271529358618868546652040619995392445641028992395795722765602313798567133708267216863343157241548215375300057610014349418154052563465396066570366478096197481912331087893117638864358801472016769536774257506396103266778664062292044913177299264263788942405477275592646157721934626160762163823729893559908935270873007099683664133072610104825772094124501806305236114516726200301149158564453003793556197225598140921538597971147347254297380690782896896231650261451286003073182393011910414506213560117955794167498070358511649661017703792301616676051255048867639129652144182546067955983288817588066867379907708899463642686396464200071916209540704561641759567943591403038501228013756655546524865297118639020590233415244169555470138612499826198575077993802133982027612194550086484915390179688851497834929184421554489765166023550743240967954519672857535212207155933952830856219796936040564457133978533655906806224615294936786843692099606563824440860403581176317006941430205296983221897962073578446791769910066434323457257500694290663719712951442718717013521718885288514546875294890863956815275383954648117579272598358782744706757994030431806579109338247036030992475074297004991822408692542373226954310810626868733455197642189219520656320432418417273047105898292164301208546282951460149867782096933467226829529267817268119895588429148252386963332454593852967166818175814533498645242918760562153769030686812984672211104387905375722631375460466365977284352980752103760765109740883136186944299895910301886699320686702682923190849139963387281779420846159871957506337013926880083150965338321389876041334885092161020775290558289832114043694471097878770891767681844878613573153678653069106343980564591176953776337311091297664236569412513569398181707338202653789275270827452791483736515577456271402764230299092098864639580086501255774530304325988913249101723254812304688273629653130393148647235778790335087974228303602171299888933837387104685306603828266211830989171407303096245878572368302453896393482212023437500487984234206224274618424422581420185410267560346408109310442421284501628962602196851150584942946002357316904105162578774840574978997607901490365945745488472929987448931789153073450749039952449928840211486033766955360452587948040390086776684063253851898433043922187179342294378682113407100575654620703013795602120842655159919013952073191830544887286172139459134650559645724291120931841791238429248323928829528204875850405225379560322919031859790721451989185269172709468045069483206285028614269231599538493617181326488452644290097399598714317839245294798189031156538282325866630258206102742646346431405651981101684517474111892448818448162252238521258670557066924379034205342001549314962736826495913301812637783938544386154580835002461515890787350463245456989495013281909925840623268383197600874167651219415934349085210451255411384518380468554123226166872963039574319482086649081208711833406292220404839400214030530412010062733574348761648778328799825383691963437201494679154604104250702124755215433042680674684389316411844401805471907819363187632729856455864530711375276483201422001937191891581310405105716180625447459416053002997860797084019630422486174436028714717799876810991671730485922016845654858295163111110527552526776257759347451929770569922108054800533958575123556392273608258183357113899519200692490178478361159969054375316443336069558169635222054178230153503931369510239793404185325142469270721673111915656474285712160227830475826912684505283164108902199682094505832375869568020776284677111711193575172338290226875796379964668993809550534852387981846870779272233966092382904646738706956352713920458039135345675534689211048631037735195162319686829971639158879580875416637538609841165661613029931051864100818951388809530548646549965986112952245154610614667901374587048465006269719825658884997785463951724906613039406754681356070846351397985582767532969090939415643929312493605424674985043816272772203513949744205483984122597339893499180373753677883475614862248802496551509970453172032002680023098773179722097841595598146381749079026438637593748228766144457313059772177428412086993694549453248656050275904996292474221512328589623586642619832728702281151418077837809866217062246592536080132107880992593198026666071095809339557561276965149861353425634279319376480283869925616003541137697074926453325303793992792115994589940202729268016337874307699607491331349404173436363762321806747788488508178851443500441492799127458575349349933164372687846935046245174824657085523152180077793097406068583081319422161108338911493208592402778155649620814828266008113630310836432167609575259760230625566120729239772102699364898337663721452560184914219144663043546966584967162126935159679298473109050855131876114252258442704055480310343091933740840842991222183903759722936884242090152168697503271687835202762882864575741255791089486704763366861689042335301052299772324481362788219559797968513712799115024188999609882967587170696767293917169754931119019903042422360739111614653893907021205824161014488754194630119903371846139148701654016331132792215333281122232589351981169172845867700255689475171666833337952489377658199303719623038305725288706577264945002943964785456854791400728293336746012525997564098360779693620652888868311997885902222124231860796914317507665455636447221714819486214778177479163547572350488617453869062978957829106540229012494504256437109287030936793275094646606335998838122358576770882421482373331542959276980968816215673401795365738832094455122242326653008203717999334584838866424125291102609943476229565461969910936356350203361768566538733803135330279356897717795136056966724113392790360290283065506651823781259828976036762760749840138085216503928946373152233565151734616160342390731886315997013952384012150770294476638129092602341073605408156979892668695851432025481961184887872364582357479381727158896828244335249090307389089286387447668090628191768821344266040944816946116411178240272821337067015691074614168442693202003793303701322583007197083020838970684325750103981554885901977960873232541940746515119460712177473581144773324008597185046729089777782165196877332563463915334428807143630494047603806321934507970464850888792069662027665883336010768133197205085056026775758807863829833153870117876771095550093826795372144140991193926544678562751688138950631181147172349288203033519760071666822012800532890463031900367408909935763579019933765122818967178473206252477401998931565017448626305368293343771011417965921753575529527439723290429936507501431854821993072772915947077204997726424426181210355379010343061496583048516464515618249282761413417966569524886439129768724691911662672963924272279440668137496433110485312364455387393362194069802465753096762124367375566749438336014798121511122204440097156105372677191613668482092907394220111296937592926365293525620011901725409156580875268573665010010732060910751953955662667077168349695391190555946677508431533950169520438079235838906043021530025240081185557001308007036301580848402934590228979677891082146916983437899697574727985060909256762150081195439078289699913916987993249702745112502222962532314186712624726497912326578366996284219018812011658030708292762181217598535102745409150165561017497564200698140023582490012889863302973106449520075315840365508683180276947986945067910069785425050714632546932729908943983872336130379946886331166886701601154703648535848104185371173047690607265823827968155323623627674354234622462315393085992422345191474285456074251305919551125775456260497626325009184323339828663950264613827184594308457138849821462704422189064284646199180408414345111319178076009577091815031052522026467671272672596819249392042699555229552089029379678328932026472059358680044060908865871013805152983414892229337159748142652225036127518898383196911170211274856590815156647397559543437898471960459680794213680152193020361241594439394051100848533708984005047966855986836366217331982176851439124618662695936587249299495286789950499914786120892307889734908258246636946698316341379738668280999589253704089391430616141889378136292919851304303048063230072501200325767631630114270856243850589753990813367476485861491876440711196302339938714383812261451679757251472604452498974249035887418407454899172555161386974544158547796423583253694303718591014517846638464624884029384504484468392939744859867939764919531576911201331930701474335531198180531066464563170908899237651038814925404348269308858587371793146680961881234274883639492046778213913475176002694801867241262499922770598520593301281852918775138010947349206623137185677872315413376632222992116470585653207697275088630233259647444223971251768170514430550181597095073449882921602682881843162689693501434056134969402343898211227966176475379359022023922439622065683991788537651459168924128812616408039685302121043486787123014901279760448529056005299707581513495631500367112198150852898746533032449618957155918452158886789655866436442306082265937095796865224838396211205947885927922107620740331577701630742567383976686734834739660307866665061363905289301746513266347690689790703383936450677494097680995259980449268837036513823965759242562945346722588968175338551689214842684764767435357525262814511921622562117286427715623543527596594561451056057194603778080535087800111753579866896819234826601667579485908207648505923290194133919200964789685954025757976827960934097951073983826949222848151375088315642898933083906678910129889995994053707945631462036337321089594664025956503017632217872956265882792741392332732350932056966720660225235354655283460416682765025174683397505758129453159359538118482037314742201041797431238724089775836987277281701235136631547514601233868629481981751659440209577671506713289009547159789869711081766994848656902734873170789245607792513276690293222991970405789483572042814071469811381819199951437482651045004338452942192304237654173749670357738788057948967630226858220363213294024514928546582374937933964600085879909600775604530342257011743273402835393391098136344121175314201781416230598765204422896740685062367433774198332885924601449772961792184476163117542185363343429509957598360069899105009056366912044874389134293284885876567359867007858623107221653815470385191943953405808133550738411214924765320381673339524992400236463758573334155018690394615795561705714561744029430139354034423906443362802891020815261121315309540301096546212129035792907114501840053268347002185241024608706051552903042191698206545230475716787347274172519554468463537060727249164279101035333499690909738272077777435038650732099114923489627619043301821819103512877571401361990211453072100976524332492511010012849490489847751660527541574891368365011588729739614948649842828831743091959045369049312956609107359278826870339607085535972111543497193599119661588843088207373028120392142825628956468228513894337419354686317880039270479584269427418215074397977393894227968605492422989262268039675676105222370205940033132739106793963307355664378467277429111702145619498416941443744652249277304777699878301208739230209185159661632235961051816318408663872094738048923968186668011951784950493121885822931114565425861354921788888622039873533721095809990736716627845820303248376058608907504597158102082944443931715456648090696561834877614513997070052327951215326636303395335254396133807282302032292877620085794425089926855937292629976503211706858699305866393902667793947005959884850353846797250794647085937201123950382232390300105459703805116647653114717768515433342746047158564396667516753236531354318455819210411530959274039121876001239236045690666433360576066800689829883955682780421460672648078902520020952008194677339803004538786731956712503983967740960402578268558874685506672917044354323738076524834549831569951090613760594579839451524303713573247110632333867487922981151834687695885942201876343325561068086030505822306626126958000036725307569482246745813758678102732875801354421927092278075383401645932560204542514493299704192276009458799916290266899643295016471056657109151461688243695565949775844645014252440965748177898184804388248745519976692854175340996573511132342283599515482826347288153693431127118354769171208968115469406090053925808725208190460742530898939519523976588813442687859772068781655221600172248331260497817210713243683944185506444490107323085166906684980760250353536486710730563552188631700610984665848117558770258801212908403628874174216186122347692829277568345060047898447022603168016179366830358558000643522702607020031486044798391632537586941003171154915828047409520252789554821148741173020482750168541304103244748757554140729867837310346006389074402093780957041924225708648706072516180681292724409034723027527892374366383149842645953114831706027940947466434043111316497008258737853947762067631742176162655823131336990047621915126773253272784223438583403172900820695456378106795728608266460490227067844111140496059711641764019098856148756385283179664519495082271102403588770954119776809681004031101510282366099342733064530268365206804665515742918944211568869001121389640583618486988961514696650624819301466427658026973304575372961401888407357036358338138480859529213601950587126884931227557545520365978643291933395757902013492416709795430896305369094901945327337274720942952464445640755320494841919236399011825041437054748127252024571789202277179526529507813563747668862919811484962838602243470076088445752683593068557726545806795775208773733141447203757989452668928624032199457152974604200921145173994203822143362604334231071777782256936368415900629380589357906756802335986299407632991617707122380594511360057456697346277269932792406881906432560791696656139448577873027948210512392126531330733166761839026260514396898493220098384746886335733494473020369385715044458825445996824982183148703048565501286475277361994884541778869259071594894180071817174484695289861080606282754447470397246173516836772049523204386104714673402134330741763808391992966103946388931026839191166196341964871076932700218452124619780521101550654294072169093497486021604815704446308748089231628712015599527705158447529494382369733493515268098406676688994610456966004285687284344338625333924536327854160686379410280308232120799702428115506537749921061836222798383657533096530882707186470098275960264474376388272620653048049903527288634158632621136667199841226797813651432181532505417175115911256063996309422150129028231987082174190490212153515326551723679159814441933384369208650826319516631373894714266000657907363067792743925855191609891352323280460575177970831684755781553360208242395524568403964697420197873549108448893365518395562549721774912737489396149613303434150401922083598265670492298145928313508414496470565090684567970229612459322605139896979567562721492157474067883798826763310794571412830487856217294991178684387044664398644301201855819161446690940216117712156018820767377313893221261717793563584702219287906149233836746192367223678356900231657575349547709560199923084359185842910424191189832858121505026524887022300296460545393164148877817648441706439457043762350736786121563906046625183667605191609963482319096091147085779246366814119846160851487182989971844414690927589385891247230871779322274168088653009473614412485717103230525674815819789627240754949279468067953177196557543854758495776817495189896687295931163713178326400494068910799535760592477861847254442563864895016778101404068508522927150952180697141278969835912286282256712995829210384178916825206240286001782908747823389344850796736084738645478441107549590275926397192217569873739881830706557217902869745275556862508684688735329095314339897564806160222790596812526339383427091856217977175453530034557408379500401855368843113325254101347632117790706264615021541662823789390774915275007491725241389922162989768837827215675559453673273591781668692157250912233569658039925788371245514164335528288703175520644273062815541757743123534322289134292706367153060880429899626848096109186246371941461867675492672775259065398497338948798884074894630539480342146191767813044857442313062542386706932741735904065005243712755284733051733755245909618584984922617168117097350706710499347482325109362155200332536329573921935449908084150419475895384822217775084936760294173209406095059030988789156367312492475532532626672815181386359646250986276125563162586141634674067239572337064271043680729899047780928442785970326379970320678776768013376302693065502107414594398370653145380542231619414432285286126478139240485346866523805922734858070503143234875782099345944741416373336945395517997505272097613638131176924401764929564709597788528062204594905926112556066607160704028554867379996720406420548819941817210429976646303746313712211502156709468156054546340657005611449208216233277977530416265899629130615008651344563729385633935781348720773249016219508037278443163883975168420209521689125882299262054542912378501534725583543675475875371269316024606215864133998120110524174047309655081551952200350070364315542658125961999557684510018029450931154851798029144923581113810248063879450425289384282856679699976788589790151633087152335747347791280966781907118766059376787142935295687036972460873325551044648182586195664296242192838801246736749322480690195401778532073479787770527520193741655657998750290393508130781231486485900986725772391592018347911262857921207504528225844562624881167520146535719958509610301962044802864974481800322070470290172308260337356899096966779593162859766511000785099043986214770204545692880568693333093332914378244236848526412182904964920619650552206766091562797142963549819990614103456893998252947781632143805599620270181783222560470618563500825674035557160178840453632732854126000976256142121904017951394697520303850637535510203132169831618185485733498824501758176967050613394100373627652722936291241459744635930580473498035767584246677546061634120617341445155649188568397277369570511463711806257526937933460007180483317263965042164565299398057579428505292268177115046295422506378249398189585287730822185952060329335847101332669838229570141493313989702711178288288325014652485057199535390106443825805987964687680540966152340343723327184579837978397934673131688871402066500189510756371216780075129490456693838289617787363412464339228579123758956611986758457065879091757425777307420466464276962548000265354422356100682812327071736895564060408101613119534045988100240815899184228669688207369790533801937551436600957219195185215477823739582082795855303728996078407523985580801994047072456218562150974785652875921331073185254980048597912593002033714929647622300366879401284758401266447905516478724752238216701002107558560722088133194625155988550643240072281997450889847928007015943519599953628708298978873502460917531727146277776095477829747739407188641033254507042295086014559870925542779648835745804523221306880100952735680272412840361813483500246832446725023562617854402873638700923133198967795281816601571257392857323460405548397003915233030226299885021077694925027444238059195101934016990811996369444385380499644061198927959709418173760459685743204986038873701719811470045306509329565847586107471195897627500279943663814468770838211286154584259912773225410383523068771243528769635415107785316895789269387561555232767101864358460282259228070292168963758667193088469169832082823811700118091322797878975228643440683755740854719304577764113540130716931330501964428854757641339319796526371761137366586337794007676094364058143849029648925852375062176409937211126546017209538580339123524878222718276845165500483713427871928508802325480133044697706408306670979941803214387065085995224808607742140599888968614356303729634863824706419588211426592391374034575424888595342682774567664452340360337549559285226936067750632141826679897640113266356982040747666922143468063270845872995868266834774779509538651410939364353237212399988588529823788108482846560197381288909956483214573778885891010580667488869860476192471368966822909273439964470111164627109907915212564754087240002969032827726108260783581530693712534931799757282358108349078616028124810797552991985436152516312205315861364427574651039736470698665552213953769634340272393507491443261585010488926826346695018529891635478751765490311532038345385843702010936277218578120232358604789316858549280088533055009473036029961878657524521230922922531928050538669155735206573861299513451512761093065714649135081900577980746118743326432567407923046989812451813030511556401052468587216515509331221539310238269987259171090623208335795172871425260433040384082072218175337120205828847166027281414432804247925470486601949060636956340833265987530561458881274636404101578294729399946324694100501373041384966177025866114891562975883690255462655472767727049089168690416003929030398989986151481161621187975191271845235735054610359033591494635616727711357615302609590313673061207623562967632620573565342845991730244776738816270533741184229201937411594541700187823488151828878550911205949832605011598086328026256046588189532524824963538207758108454602840668597505010681654230572359173987667703876147507780400093421639650968978519277235014395018436583765252806755892218069693716741872481220379671485089672991740739883784579476334208698678352107080514602158927642675609877452144689424473884622164594324767965416533946225593954672056655657207023986357790520362273915132570620513284864526201113902096963823361677431787381874771921675749915724165436965008842970249892989676648811858038769606332013098845517293058874582342705688647056537632686784356745262289139633256284769095801113377918748808315311496439294877478979896300246107106664663004514369518259693940935958361858082655353108407632307650958337900706699281881883378205796337595877715187130159300202754101736147269644260114286100485625253433320904027812314994299413574661066108972034908929123928670627879416157047731419638754408271499672893388148211047718108766567205978687746900043575738139970196702757564638659477642927081808954151627557243266761242772007070428103697256564171692823646988457342425303482928659774283424960208402790867585267322830049338776065439805410945452771270753532646963529295385972271311086524736814938719954757253546217307307918561196745535489764116982983761741742571656533526243743600843866409936468056284889778208181022782355177022461160258480108819636720689456551443187883576325158857122689605490721608177780634530716930603865725018495735636086969325158305804974404982978265689637831696565145330571672933824031031770853178919482197754383761964651028337449426313725646281625289815262076163598184638202016060598991499264094934210563784141344499640529249680420359314615588633185400468084695775570525279000047091167890721209790872052207161118013713975619565190343018036607864894318396108062418924313534659988230609564701421074381974935999171900998852732454390082508207203717397014300262431230955112545177799207583337023440937233520678071746915383197260762226065494263721922809330639384725660501994552566711219306955208284245934423324179857091329068690035772496935604791869770245436433842616893281895759402115268165717288128808422211098928247189993730582383565642358195939936019581482308211378886072505118563108902248291955301266283348383594102239597604217387781247847599640387508872190748112987624937967227719312565896926383023962232002129384919016558118381582094370979305098371575344027774667973965459331628176157190684719062900888655551370137328590660245911933817781756135787746374750646475446754679107086905436622460784425177154475864181935601623111127620548234447113162219607662511743024030013210953603446312278997488225109295529807815845345762749572819644874625543894792865792036237171197527377472346670488823081795038440095847421442133165367303216336512418047287082364435448349378450833198904179325183051004656178214407901170750555386337293585680156711701511770959655171572238951760351401980970641620645216798119496663346190896683053330035224380117433372491865005016726794551161509540775375935507827026165080726265185369174368981506019271932321692030760746152229285018334789665701695570840190769171995769575163906496800199745883121651190255168989902284717940289684667070472833666226247005564522440985612421104728690613080490204433754938750830997730604049346075648950021947936734549846592473516659857830099705098364206609821202797434509573728946252832396169677295413139376248572623647345498158180039727129671860633299296368093348025878648521004771864679144879282196172466978398981867988279033113939317202730713630703300730831038933153316484924964742224110282010742195846294787012945051762324764586799864998201854060513512735317516700403394737220137530425421931382945281223638628014249650817128105886345282405286248144801342546296999464052533352659521806239174069671512116548569387300726185118932266181559701287303239470664945880198952474733023792095865770833749218525228507201472125345631404114966167362125512056434756524530561807943659821031455742392402152232703987394228631450926594728244306955789814652241600889857539602232971477932847438649156155507463414521237120098954905457964079532671080890683649228267798596758297967956254495640489310563818319241856040914049293009199038078535817530596850586272825136253298487539112451876171031030144425726927758344315039832580606549354016473561353101437659786241210100153535176064317947366155991966588172471017037543051196870378626299901421093038057126100475117045237513626133697549237616979983162996394506281017543661867188139869863384938169200695309085071014313148717343837788173518380508248711647677223011085082398436684785824358324251938124662464509247342129946802712702575637372284963114177156123904766685596215677375662426295210443879634154451350686599228939905315737109708896572060361089784492111945383251331577805557865487635623953030495197164586134519787429468716386011443865813201374518655135628369036128119882682794730211077612804222186036080801646629795398744260145473082863064117963101755756852599842596854225372987291659479965833305626002220194901384770288924034242439276618005367858466082643729696179952231580875812682751784053035836228091372104343563689383700085990709759225749172437695581848307744107605502429863690703319096068478634343755777358717552471174084918468180307290150143815882025991867666409483438320640743678501241381839402295315385118630104611019017057802638718158794336833789974541585329017210199244434032004893112207751779280299746564265581273052222871591004224884583946567625293968519259699023568421809692806862341241614605712172734844313889166597730809957405702085609365330203023106154424119394743998759387767032457831529246595678542925513244050133001620901515162548871768630663840366157168609814127260617859851956334053540871759048074726523966515893439514847419344231315075042815686667188999027951499192697064242748011008651652064923259225635109388155231579918272221609485777006065836864467437767310382095764959400096805780115998325125454828090441887978745011077668673959274645555138329553659225543400321894590046322354199359634432504171417467030527075230542120404990636734177585054725856940096028745025962016909085714362363294684297442004974544017026238518401564795273961092818360242676274466492634368180516209398207786464071415672276355907746781622436472219959291373064422923581257806501944921850071151847589024359058372808495233413829238092532708874706244135716511169395645591921728366850855098648086565536476882971158272397660836992916941740337685190836667814069220670350267918343989677254148454768898509553708089180759322513202908182110136358327016751782180298199357654605607365447819939903622580591107070005020517417051564801234248576532609263787117279708411727258735484105054859100019104857739502042049491280247152615669206597557103392085640465703077196610897868306696014502546073806719940993371033065569370054343278424893624208358300538391322006169752633781311821298736565041244769645269885614247997055183743301741185946481407539713190836383837374064502297112493064609394479899442249448183273038246424878216225038009661269322314110494110177347480378492645966729848442346812218751580699889649829947129345529265809140446055780584967502261192299166491752189748514204830204677035951401416776130621400131127026157769800847979398022883481655943118135164069824231302442557670203526451647987983989154794098436694519742393978577614465726161136296136907009002096720391509811926393334528988112975435122263412468261901762999394583728524106975996505717946670935444865187808170893547450349787496932657746779970890699248363267644936776976243569784478675590144802841753376571711630840241773667482232370008933389101359100042897686007655522575201369846801077595693793681282371767580151446889678199605875938849706885357972188703043543285475127640849741100378974934096046419856416644691276392388860300226811201835468984422195212070237378069975529436354454363320462605338914411329079661029962637939690364333761532106917069974134867557423386417636474537100962050362166434463702215511309020839249414724039382990993831630975096451568504208577556038870820164829796696292108240962004773325386546472501589667105331346269767006852663058692813244371110809603722328211801520405122649829021765597202721581828277861712641832679929402869826874038404178329688318419587794684884684908584766673846358859894313369191625408681964759368123068992608884598262163048811739516202665449120632518185103304851046994918591093210424697476815311633579232843854497271234406951713440404751860901581534889281460343930895683768513131517643274887073926864357756642315070107858563013616151875865244399631029479980450383889456193931391648791601298553900092170993909920591939108570882518263286327000990630145715551037178850051090283050555782068800080869461632339113650663923569537075464856270602654657419284882972679783761934749808211524880120701960187917648612176799767900146127230044047234036557505061757089883206650501015159303323951358384373784829191100089444859266446540673784749320535182861836075862523464667059433904945712383199903982002322168272449363408786866139048161472293444889259743458043342366265111111705984354730140420448656497332542618525739076734199253054439214717917056758583020153459885836893572054464193609206862783777027330695779828499832537709557117935441104914455108063876848160686804311616586912897710627933327676004592856755556958840198015619854442064864453066354461263311867192083730793592553541160572450441893338085899157689467720863302341785156300905626210842393061715538968605697282738064572837203716726529577265159234224115848247337898343002064968288644928844466684039598102223161309521039586214556053967564680553904986583841198685399286993280671138640998275661575608006038862438979398199408705793329901258577552363001156126859413426851532984355311801082619132874744128990724686221511001840411802686080356918552815903996283100089514196661095998181438772094477261682035344513739639872441145588283618735534415270080451100313134280331172988301749232085832696272612241512486994954822821217714764350776947356044219441473687348070121831491262850296524404912283686218420696711538827252987242778995727092083764332997496243709466359745010916272424002630379281285824598953937998012911200944397921247050450903241173390006256952380263780760785865116336498187824708664626549046029133967086794458432280732044991134692470942369074815113990245953830132692157677456489105899339041777205260609046346927518911896080707046502504511763525123909784201062907203889684113410228520974110369023499103545734070193635128732632483262913268682964425519043009976113190868141652812392704443087142447377256407488807958968475070408899869385601824413836455263309932764391662587088115794327878080649690295512929795092917667278489307709134492932400760902793988838808680045136309683177367190506305338376453689560829241128514856593220195058185068207622076993096310466200063059140652437497943069713802739026871490140660932811482280105937165259363570290193927855768894023785329264944270540423551172258244659714235496073775297374197239480539930747514246640804490064393801090075262307231504302548432341521916767712244257822207275916366845826427435751632082864853995523959703673233943461174342753975697955494825714341241111863440727552865392940195837483532766387460234344832387428878643494882856027511588479189869863821483613580905901274136827445402176357127231690889870364700798840789933780418505630837923924783380658031607270608884906813830646117523170736205549108538935720498284417336004325741109702827986190281569966728229625434437426344004321079097065496229090856943864253120738802076135017813690784188131566198475389938486016628598758760837351067341705479953182080018421936956209839436099940335850365620974530484140716634430880954320804458441607896157805057867768103407076094908988041774701434197254522726200622891837050306536930700141081354348337342090082810011105947109194937640961535197327837209669208356033556466053683033392225357501044882802690184195869152972824584737418958326507457333983244338397791755424279312330083274501182779939175470632415708242182487034588500705056912958692526211110445528813272208098442264231101625972901632724403505835786722183915674872326824064455576873855029762148896128180663317976349380911547107228929836903486863569244436740370688018973168010070700115847527663824181973821059910988735284811641994990583692896779396265690419395103337827124100462263167759044081932424341373141677077463327070980948601545769898124401451071245942058437088883993737356010993466973909845716495291244720784816649708939417827965814847281936349538589495399250576615739637696531393727960839852582828694601553369281955351344754403657548297101318199695483898316356979428815358407438595550713829973365709483441336136280914061886625286099219452074479136549318616891494692376776247833274960336875925513333719383180882517548742281835722918792880827908434973580075773125367690041541981727334786799445999267771513976212077879814215144233716018062479056573900119082746185891473779334013341500712121982429144825543693846645982830245038403976359911449084641572348614831305220040070647479272636695564444993138218405530210235533999948156083637733271465288601630017112629020411592411379890830660548926109073379104201920156280282610307484053223121773120818844108054287541915403119288466661806279305083268577231132259706791363496390429594086286627012138712949435210558739874204721814330767415900459643070566035721272786417142572952149594718268651325250424657815117485611879331467694598486262770469323642803310771280576591388491953521934364565213744457101840950462269604492846893357039675000937164102577043533182256557305374493621382729559690612533647763339440014115396871545038463308838567334511704774552046564239733242077935151539377801029285129331845446919112409847451355329756038712728231396639637945560249411828746622081949207243515969255651039476067373015524794532300768853622334564607271425415694042685154333576083188535978344104066637589000362321830495953587414959570262209201066252355171802390980539474403994229283084275232708234712158217108797077795130138399357548287962590738718005514329874982669314426792715505269182843192576888798902223009513538998876015942375703758808335300847955559341727400087441716381813044699177955915918819301658946709567509938819796998950328866319050919493979592443576823996679933570345165431979883673284354517397702395254945289505917514966510112438123126584788847049075803402802868057875739182732983824371910460960633863272611579017595127397373396834918849543245922027376144579688997826984200628264533144710050613540282458198171065763432837965417266322344380884106519542207379421944426602116646448538294932122725560884347255007624013657659295069110874987737675699817727124822094841170319608547233981759583246010697850435305462845056686388641720882594193074590644305863831307861250027964728072284720195518063463977273308021952140028103517714898897307534125161209616192115170595748751933212500511113553303817055446321809655436463068193111794778687465597228411841958221168854795100533994206439320388055277267265311548953519613527094597266418310442146989287430469662761456532531558485098719680289030283682361741147606087403716904302399496466824289705305273396948683320739621863758781422565807454229304536705379457168736502925017668523871941140437897618152344715664599317867747408645447439393839387364913118493305317036631103219426529700722329772414258247910778381716583775207260214022307571068875243675546021326493536878488101811580144569184846268704330509606565875456397518183041430816142961233972247185328208255559844859555528488490109208925938561878255137264795453987144985319309667368263337198459020785930576842959658714741392091594966393143754326517047214831699239442676565315165011499976250813400274414620238934972468209837339629317754875599074741282403312290593214394105277014832081598789699954864101738695000664546550366677286378864531931509510068026564603644059047552167533988685597646137015271195316675541918729973122138174925781105242249421008531600702350653596864047811660508526815051810087002691238479128517696244047562266912462700426066734804601510798463174911191102423937892317724542104647392482048998708991166795910472844048815589113307265455726938197238011748110059227728283431717563633663197690562352649185164806593263211383672625395427133027424778535015411753945252969379107397556369498446918687244332622301860508048868538210784767422438261255675634439731948799086939863854452590048953761056122351710771399044657782759486086697381990386507532989964070593785309435046539092190657292232133374037304964176678547230420074677165046474256753301478117421045738490706109783317962926830817804908076938730535014467538241906880390038458528621007311444281810779482810629399026174234816327092933695273472194492360859301296753448311192859917320912474298499336037317362285989228841323790437099387609853224777636185089131154510516001482374166061084164509242127218097519290924705131781171831950689771232245314161231204973504463054862675352163086395871151723375344255860885575252899294725921990749088059904434338792861446327133957447522011016119722318231509339894109392817339065502438168138164893969708078358262998659617595961030619557924749383602520125579549639333486782199012967343232885187230586155585149809657170952198160608461292350249274406024345675972667033076961155414116994414587933730557128381223277719433307186207309853317403902269320122987591883568030432000020350050498220126136840356804559556435418022576247042295237313244134086672612818765570659749621348408338983952519770141493071914364603750722885520308058665017607840884340283599086901046658517120208844166865952328044213458718866506562004319855070345379315199474164863061671767674247374019426628791376161167130567168927542290862922371325823923516840117874837393004695158028389903940790760666781563124849728926824396767789175753150418005197609941675067893821838610073820618124113287761325296683342851854104246297420878652849234715137293599257187826347832023949920936836916323735158659877151366945638262736669041404386107457974600013802909397432318969983478715636893149192164127714568469438515499046110483829200758338871768807102374713792136785387598071768650809092622976174937311277197553446558056542372802946155662708621245238002716421061207005734141957062356816242599587261032217880630042959678644146083545983562517991325804449377080695910068891198755987114165415208807855849483188915105216595289932966218920525561369829383586554899248686025344230399465250068938934456643956012971945059012056165640716334031719415460529858195975458385861839751256694007227924943267650251950390210046260543648205211289564599106566501036917159706553214405822203852890088055311384719147585316118777519636691581537927558567537026962871370039750485038701585714338915576436561326190510536927225442048318154197436635948665551861558662203054987420342472777241026788088849602398073868386448450463580400782893825576027645177716269521820147121622883352499901066139300339288973985450237683684336825233333074708745559754794762364829305387295880350393725672936328663633412843398540247222654617316498870201424494301574549495760848695032199025563080654772031453989167200588543889788333717934610532389962292518071527756577933557777998982066554033720804690760449643693722373049749711378012954836238532347777388999813676412645558114440851649078097616169008642647445238103499361099161981246110519270949783123908499958548321166786910766163664217193060686600207319402309219366439765310078732781776870856003758309908606794382141001164893486400546516210078694100112371465888548754128982312994306192897252416180382825760544230629352729281056284647673793972673835232448299519301266643945817131540936041987981592766749049211102245221590111343382513048179456801209838930392759180611427575811060268617035652317215807893547840709439975541715179056547447160235367153136025357837288365506737222108763743160457975465990956715795996908924793168623369063107151899061056984665446414219486499647518985485424475269415626394852105180684580992245713536444376073674879158182587185960824631815651829803510560262429651433257522959100304630256016060817356378584401695463264251209154777517541080753930760746787048823974171062114030242849820465302371730623203781469891205983191633837725988538052176629485452230194628246262501739360643722278612816663499314930417637350976741348782047209411547250263904187429140262633069719738898390791214845705242974445645972292221163848046289425073627370952871425078657410879859269205739322258194457055858791780238759482794501353077823403276537319295581359772597668984902124323240497365927559383881930163656565641333506362346654082995576900279628330088500606626486284153842501792844407722394099320545678406390519101749282105449706589584843771585022317595167701715615770633936138928168708642383848895023113291164934753857927077338050122544463972533936898463539380175232958586550645207458728645561856571517645981940090894083457223256073444639051829102891688391977152328719478365949702868455697059630841335439824990638040739192108652112524970555967151787157794404553791911760020267619750524416704567059471254578048616475742177960672408385387937255150619868583262928108577735614941539649945338340920274050015442928398060347203847112706358449472084857211004282625044613383602000718736630864221692808500568865975165023744769203583498676048963161475322535353796474341925003738159471412738574379031336770871641115685098648149589346248066436217017357209266557701495592703922129427413899351044733656754897835880651726002225726885823024440857817502948147384665691956150121061321047775762799687281622892754148703624473900233682696018390904911119518970716113163205532259836848115313553364756914006733897372850283759768871342898047171401393538938900301294800697340455001060176446821146346462045764601334650913264254176016521773467639040155938541550404321168411671734714730533483012579970344117481690632360832196880213179346996814849419362708810591201872579799113585000598083932045652471892587321885654770229144059929517270966040050056584215181496777912764843212284937980894332911093860106078258824159586301839231381613513298569368691558845871228220837073140928720996490958003412609354788232286010636787631226119539178081724383843608955434559496903400168865823830227974639214783735397139899367173635315515124907910866789867982508345186088652434441766695674962882875785707604033123518629415381166829157689839035738018095297360715060671494476716425299736738643206584453309386130148266874639343680059767618170261435479836362852325553093613784121348796395456038320855982375646598475468753397671682522116270224299051827008191950710621911471832647998451796243486870656076017438873822382871442297589272102279128115110086036550634543063653185741636777097823276691048574589049771410095847262811098185804010932692393177527057095209793820796764188534407418190497619543002810045078190833582415128036521933914282129887032208433084701077242676717604996752951939906432337547033558832965662728674182281196048035614366165365740063380690730602634041277265656667143873137683596540190563885100283407840041997422693379012968435257152345687727586917042205026798736709648920824665577774681249180115258752189177671014218182412860264092830626545712231842169365354187495104760493769538209442410141098003177987680049926457164822645537943893858742197751287172992513162743543156002141277985882613523616054716830781427505337350048851396243002534262028202489559630230883794925963460102688606943838613306078192097511832661869414649907528050577479430467592285950713968812576391193662345453280588337857282056519747064180521998125469857556641862615783286118795173080001358353958192990681258226703257876295074342349439759453574963507076350545363358411765199532788185255265497981101362306857102407069677714020735865653085145368081161342666437566260084432121115466632081581179936456698930132710299063249133004930468633195041932288566303688809089289317893013391141952184129273762142637019104317440194127840044234674151093833906750779909252887701327465802248892456638707218438171673837689913176107246938923481118647242934296720650263137443904694101238509522357212508991169114099372136173563697812069680278794918491474246502879452361361714074685877050405541477095185712575529340483210199570976395093915602712404136605720796498039775291475376157554271558011332436556022696687312738088377740364190969524762202142619733165682614689374125722521997124362126885987152675994592350887212571749017176810031269379611075657633713555619771341271160952166461658592133371876081821826225131756667018715257870124669881136570180615381837580325980791767038519004173962245533185550011168118698946370344756141707767604253388221583406641511693336287709078648614899151133816587253826975706824979943792491384558115681695380922057932657836022698352096489876267977362626631262573889621018120912518286754813584174252582916625135563867185844519276826506709595097089985367449175177241467890460240451819015164151886753645428618910876419486193255756588685071785973641447627068993604478810851506342204999423249740639087917440379019858504322202613327363389905813908890368854944102229292030427668653915292920211430805022651303332853802296228068275787504920277585951876019246345475891625595182799026015418418614170458255977111603617665757715610691820162185611710824359512592686670243266888388568318615136184819303649465970171036220342815890682668227601132308915940038073376741221761709351825864177116234531248937935711055703802107361776244314050339314771764270897670164929997816434248920276046710241004476788093443932183057741516015006834088704822972124375858866400337099697473846738918000099131828740617818708252358786880194123869499129602711951996041138808619627000687632668364140792699017728998927857658225929520967168154340874412099905001599299824200324210940901306572198252490281638458020563951479456989487766311127427758735643520333084987656544702475825551459942661597380715082324594936902765061924378327947508484735306441757746951187928410553501345724832026951953054583925159444900384212533479755975199892551321282019759279504986219124862854936727861710210885657946406498879529229483932061185494830849664927858699120812487830633307267068018457001551300746318535625478216003679549285083210244794528825092799780258119244829651360545416863757665024096635145936298345525864266288626250390360281247841676121108124714513738363593670420206084850685397980320908518182485120057043162477821120779956269258184292362890314680635575291380855725043923577230273503068428760250027882111928016000329247828788971207994859256312832350863515794065576154233350099723810795218511649887194051958095274772898900222463624078442755861196650465527565737136054545766745033360329725499578393646991014882523251582845200417159760764562712483798979549817754359792137042076414714121555609837732886635405486471051518162148523225801189139739144636963476414498862221443396423503406804609117495858564238766867436906840372869686498915295859185198620991206539542946739470163026023008846540212775292664844911973482756345513797928951620757797985489280089180527157633620763140929929204390962133861292139900214392284461418372194015939581361908186562421212444380974336266438096568541154473710585322907001518379176007173258220679105228118150584105145033617410116031476616261638975117913420145905450925654892661664154248131074325322826008733627557939264820623353928962150830365239364092018286405178684550536950195727658347417429890339224298597162254527501665996806383308281265343458284805631943011229072273677566350456869699540824539615400916627042767432265132157550840510638905876552079333184211160197649357334913328558671178554339906966546451133994341516614281867471669395274430478674306981007900264261459378706065099028448107773227066908082835605283544683841004054633514632216242377870883104243615285735014269836690674572305086024257801553564161476635977749776982755183611288519058743630285916255504882970607003725423719563016592323611772976877973577840845066142233819227223649187474711803961676224559209062949212002320274722325403384285368039248653638015714621626342371883539373285042586453518602920536689215959174001611717530037695212061398707840484654922337879418000698368537530656627324852596225698972433376803479452543309867815963197278894338477516868690955566708530650227337490620228166900973768274884549723279661218026140880672877243429337687562876536325189047326515562520878590057849769582278201225731765563728426787040565961493212066100545520778259243890188841255072027212233623905400052568431360015653683949302820761932147444655312543048821481034228812757074508478026041201819019967904882475414007832670995136586922489502358796221663333196425603751303251087688499769162237848902523947831116954311208289239213517844404752724673550597455657041772737155876119609757887377761163442938951782878472789555399222708903112053013536034293268589524587124203094296326997821024620337173965500909655635787147782748945542776642098460928487390872948369556469214145187906575483406143356945185835153075275552945701246166315500441651280323393477001160301120317905291213123674847980259065124259866665248594027058250920989740049371886185765698602815978512576995220807432527390142554750746943189833045942273196702111606489117346858386036312142136752144501839160287301216969746311854488030955592080337167111877012969594208040641503589364542918906255864493629387367419962405480521226942883707039912974386655002990142311822175594875759864053871727274858323607185057323146570147289082158170375279008975541347876606125894708093350013781804827811607838965260735721480162768590797041246930220612316748185470164720766766630155698907244743225227107247679717393717892025272161046117654971058545476678174138431937895570724359469514579886336374596470624715344973148247027106086072100173388266218067757160128351209762156811541113400204345058321059734147847453939610611505789292188004184641907431191698300940006731520731866824554312123505423838966197469173591190179127314422552920216705231373516873900628266984288705060513725658574667229477748837474709799780299375022244088331839968118656042302300941950061977734586423452467663330481854949029815236787208952581284555794952261630058574091670750418024003318444256392935249632381692683174959651874211143887580634000059591473689960583140549593254085428286312627503210509986657401146045633705451779922997427144178421072204544894240641040137696378486473689102702015960366453397812149109536910288269019650714698181724578538230055077364134073304657286112152237999787114283005988008686587131807003580559298893324892064626011687267302378708635702354494965794105497533238118580969956247976280381968435167726639576410572684807888423639048024922898561865169267606066339670540692103898216691047531914489810341064608931254407517626453582985236916768917048103843696616189974071312162395273817366724215976661554635957306562459231559357062640878147372207972227641576131217748830967622711338986001762933745367693800234408572946997929204028964730000938787119647631817765911664824883269028551172014833400647553638817255780964272508707526852137596124479854948689449270017117852488222472785941725652517772311036818430378859573236975676411131183355158315064214338926226989262167103008044392341655151261295700621979817276851868513545888967491225990419353270271580441218625294786289064923766891070836100433075114641065308032041109076981877181438378253761493267387183566439510429090376377667678126667431387554721693114110996700974472373296600789126045046985845686828083762225742356473251653324406139110396944975296401786283534912621684828837324881837952909931700055916416439839018597566676016442537837786239865327820088920648765864120662223230685210621306925427801433957996462762955676716978070880249508454620608254750182878524370605609790875238369063548203639062577866602766731345939408580944900835165970278966194708882114106757705362234091743561324560711397781941154614917271131881785339793784245495818030535316002141810589793776140642553834443125561506645172561640212337917244228198851095253218387965793797052714546092787264853013215391288504376581411679563992470795153576360903937661740628120965592903637090578226245000309471708771766118322935495280590827326135779958255910346681398411970938937599251258181418901381219394977507920372202300690119040753022731802233050553433993069527071200938270489294912863933334785044716043663874528495008702584705187496294492625880682576550873888776246506069777358643235289604894192843536005843174702599695283605012736840753487463932077809779805522912346949023865490460528656120304811906432738604288833451922180114212357562407162075730555336799553670968157988933985303300738513419865392555503146735838803360649003611077361170606727610004861122040777144761673137595525799280264530237502825322926466203570085134716403771735163715054417858274255632706576722442374696532198000958878245683074427364265725045699270128277564657917053145079123934487169614734398387617916213807517166095768693553960434657034104522381709124193956512978924313824877014331940135632475592250483772893819846983827364877247970239856013382305991874474128594099082693478012364837425267305756802047244138941305095085253022926932014035283409430246220174325036599765768114450375559863648784166235541811600236755971642552352769250898194490575964301920849774371359449711724811593030629729402253129475738346148920897609076525980395358751491057674036387540706828797022234783598248035610218955037828782943827020477698208513139088071568746978843409971162371114160106450066160379973373879077545350904753569523263442385668239831513623470356587079475689311559934495482941379680220824478654415462496933621208894912755936955794995154178159812619093337223948305259370241403854105745363833891519692242279008564941705213002835402644732027993419250871987543842997283036920272455811376657092630265610245855266445952971975522846472379242926151255089186880262769373396763249903357961858190682873161772291542144087578609993542800925752957973955125415323761889827764294787821642574258128615911853944618632830152380764522570743594863223779601817289848691308244460830673937024309872897150195471840206743101315088764382141312124654525415074507884602605952325979373554535164940610263270583522890874102345696026649153174503231586121817315285776011921774225543435590967446893123459952691807353047663789973596153567243992073748067904354431086947976987735384266844545188175407907936389925317698040097961206423849125696748594876859321809006402327610704294579686282240875972253294321005865200361507523225506591531617929003840731285350284446115070449962267031581404006891588495935129715400586516954334019150142534053677736815452326540487866884901789874709405949171482668768716357672069276634254668926314879213771038688400950094462575904430173017923613383688746978292093236510243903891481715274234201375557539127106296900987157862915076094714284958507120687597653443048494958797501730336215359771975008524707613714298065014263980100090170919414066181984487519357455825953986896286545694991215000381180212960813170448436364595285872294635907240591870537163846327213448141024958368587404493471647998522969841632170729805818042822811642934045701941688902389233301296068841369916617326262112755817347996342517982509122328323173115500524132458934494944563605437931888290021192565301765868992611952427472001122670247014008724821673683187259392898053751625934817179582426399368888069217515971916560063667862685018588342913108065346631502823337467763125142364472356470479760142777087382953834745485577214482044560035472752192165292638300546638011848567202259372609594094419261425947610235658502732020207384310628085234853151703770870367011116957620898000667502541858669020563899152832464536950089912964182571392359699817079781380869430335712011958554080120695696557697686610379124726683577225258634684380087856588903124112648395052045813091454035209017497218802720208037017166905193208079161350103163021319567808353249434006835030359480138062728723392472915229219048408484878847456080470699855266282721188803210395672036420665338124130308957978069608466570908282546676844811319610608926882583566427254432432811350527308882580174254397715436256767452565429656172930762835220443586351253764147375814837256194418552917087654261962007378507495589209775199629846686216619345429959581357559422296516084850013255402521205432316348821215321636316596746709605606789828299964560367488686831413718857209838134887810851594512764287872018120844704980588134825205932132532450384842842279663839966640688433482683692187047402450194878744100918912739842738631334859345129483255364426984913048415039774710866057868639358435835702744221306861096778638427964232637534550466772540503314989722431070861854325790641548494977231694661288153512447451703065545803835120104523383093766866841002529140980094282857983820913213772645089392556116436270190373933621298732288550958358895268812485476481444367417064428782624178577325388315665153833044530066517672375067553264663922685208605600180947365796544842194109761707592689807129654679171178771099539699795735916311001727407268001150930331528653934139741291294733619094378418714697967557317115117853233160196782685118549502490629939042946924467450286289577728865394613407275722724167613283949528490545374438254654186426815193047102175120456034911625229153529778257551583159309907218478668949125202480200907343058622371093767249938898845955987831326418886058458006010942137655627216495185996224998722274626662449520771856572005825652966411488114636823689807639106325918620417379991729788875286231815677303321505110965108644944748997578289293277611255774499464959193585947771573334736992783957842082153927632992836515841817965147940764680266001705383197473747650631838488261615507398747117456351966128513001877580542839864160737758682524441942792918058705533849595416349908259784217149429348991898002179075988450241287735083131246830014927891877108991865452116145934358795999960844830378300563445445508917568036373106367510613848695818481538388693677556303800247316784728655001889564500428966582783102977419996219316872282264233793344356209263060967422728357513240896156306526104325234534963121783828077399388893774653486057333150910735752239819299464198379481326567853164261817953327012913528749710074271064288765678062683659560039934326829610081435049082985473325048597514117510802468596451586049556276545145414301246366404046235792423409927694009904199660505860467932204502275558135597847640816008798186459515878939132127201364618028554162533351446787717105656436228608855191478641128708026550059382946745433907252103276694065992783569671667858773145244262732977824692977195615360207032120269943470910310971647914061450958283920373362507663798863388351516216510558116355874680496498928624976643541595785950356838600751849987364859607236927959106886803169971760765775091294416106471203799999961101860554944361246706923963507850435797917470570696401498989474691937684498144634305460657216694217165285450642436972821390104999081040793008312673271409391000679771456447074676866050427749743410695368674867890479583293609599588185207260849403677946040986743323506157343360518015069341506741189828228361903669665201532384677790300599603404794879482577994543263230142316988887161992339690872850324989835477703891317124216977446110505696930396733390758239893699594791043919601691862130673571626492236911622323121847045527812143793943981686969263454245445618576530125308560817846063655456724457513404629537221039149594760180964143124971271925513775416605518714428476348152590610675327760570378998755442110774088925129511973351554204354626238923707202447166462363951027746360529744618529749142661158548481247219183064466225304780711153676839867230664290195702059740778789054058613039638775017329163409697152157001425578132410243327192037674673210544317272393849831395204537978395049589685770699771527965631078723756010018133571161046870771909064751561042911863981956251176586165506026560321895454323900495569805626768540366938920063331322155083251525058611765158830676016453310433511388352338091604575416828173494066813772612029024246227261144541069829287144413902270185319717162517965826331904213731098974559815252978734238794304942421000274573160393286852090919625455539092132776360796663001296589267730060957109221966755782657978843881735663924389498089850677462938020812253581326996707717352528514981964557377399666320251693257574878222996481926993588368669540437527018572784512181913060681774253143801549431547042841861547695249481432297155007834404746963537220300472708934217601993833651639885284114008323615166135778459429220645938958974731098120243565479314449263482943930841291045307241768019389177893948873639262859872092189600631955485999795174772509735322454597806743152540119038675847832776238318794408841543497490994972765659149737004268301294528080162669260757430774870206969718347629975749307335063488752952652678335020529459898525548538183241357917515391309918842793602392872954446849350657243519370761690395515505274607048213446958987847526390799153444179208388859269705649399062919749182525654981600005462546842129320482749120401373932132199956074151721848202873527587417995881226678692841337418287114655661798541501577309728479957598820438832287560834964541369104748142517103271792709824390269806624513338989754947141618598962271151378405465317462099108981661431553729591594962110328540175746099249630216933784550570731472649277123054431513578721848929420539595031187996550467169995102502467086257076911049077760445420108873778657840752059003718016380077293293440941279625989046622402997429375218517466565438367510612994379812762911382000202996571722066172725250304052856951725991951134989924524178908769417836962987249884007914701160429578230038118909186928883984845599458343941453061144280968773518097165101925258769377729557062850539246597724632884591140143064141678244931409680555486421413765886643655384872546826258364932657131531740862905547436373921366955952209997686202762702193423172734331437109381725848426952084806568762528622116564023933857579146342378953236412834497532564844693879878988362949024952726818449938186774422432464512766601786764632539594699717831111163531183913116312084852833907024843107615990013317241602667672376469596654952527258148439637360893580449201605033908794133200150268932603907297594575797316446213150728984118206533620601353778462149914721723576108354929586089011936250076381499211106056867645023459402812143104267937266724970172470197010592844991056587008239865336491270506648222942070000901900411369759883161447093158760150457579900921772800561313191201284176335193187272075284773981518937591650562055334870969818395601485143789634861972228724501831905724233609724030274182875187168704219209015678358911140921359719544419499208104826957065393164266208726191814556987069433940771525483098174362342627231614938299657500203549643911999074544388645901884421594091749842465708953382142593195406126675901104842872057300209872035483406738363391415015433545485114485757317727311133244046650363127450054707687795487104497577373970624716350273634460023530105860131177250416791353700052605233823579556212698730518239675631599227113841354575451436117898322564976594802043885134534667944631765512937511451001355742951822783592607230420915120134671218949040616977723877672604598864023772124699243061881027085960194483979518604413448715115523928693910103690391505391265304843345675759989969430890794183668980755194730875612696601872700247059007931260089883751682251419919671063431764838035674289650592985283475940015477849363064367499486353361197940860015038886104940329785752992923807651415121522644014524409705615594272949409531138510339689196857704392899518331753778675877286930823389468919270899338032864136153135594772098755609259782303596998477700866851322791985275833341084260605618979004267586374595267735002167002249850337922288303685054474395608659435406028201564915276003936395559873123855832203301430199288152872219668811127943339960284492944178387484332577471161084908893929789414253671170287069115936320710622565665424565783972533623576404498647280521487267954797759523206154831777946703390934340367093295537965778272574870013066096966625728158658603840498833196312568304291726562651055557868729055390390306640447124636197589737672226644355775340956800666378806280941663574356191166289690436443422142607984012232446254145308580542452611791346705945061824960496850354581545048861467465115450598419834333319726170595330774449089034381588895330961585894863988823295411984471148428943185148643287649425228355673780845421709309954371213923160575727149552306201908395448968736875382402999123348020551057967296331113368690294805400587988839451193516365334106643870386566175341329161490321269675773535543417944642048344538169121910030827677752234986993190700889430658063502200586699289255979603452130567521053161967582007425298442782497299044769879871777420850734299590467712908561757462399373709119545972593399116144798126066878166981980422626308972301721227429017961267405166416863142408903213740712712903853197507525706051797412620463849947635719297079625780514835788716919568559124544877882718093977482157049156923770598231257980880539489281145412691155388804037147250046813842440744303772546839015909094074747709231581411917755717133746599060276207769453171631095718681661174314682360048072129236067554215277511048700251111416811254071434559757361768458579887764131604401604966179942119024052988728402081080441557433101746962001859533298544298020970758339150905663211151116155022645874871472248016741914887286810936696992980565618246454861077380050179229282804603830368536091997128272739600834160565288162453614242483766891464256078700972356421897590887486943973979326482671342394182132134976813031437923552960452590076916849080637409331821536874994057184944620855111191167603566891178967495555123459044811878331395258314657607045529975916944488766215288422793199054685863198229058210221184523691515069648460595868626480131455874498092434041619739622003791525080410789046571878059920505800160206792112234170250148157654270062216944620554689881651726024712311196879364128330068287140998822670148309215065914185738931843282516135869027896182531483058520723632984735613418152171386880634918353536854558518762188405733413311552235662922422131541391715015499577564197759295745991130072271795506507422047407890972810752542836390126033322857338470815760039050112463800331311577541934994915176022259874675662522008924279518637784038612620243654570628192735471213885552809675439364936653646790243839662994050900977626432209916896098392885931466196473188548807966759915024522920485940065589563384438270260249216226413652834103644428177978590769817190572178540154782044314408739521828653353866904946360466197902643792587369381918880753774460777956624595903324361485224633348372447553129870340006337946972423244939715902135900057647567271096507295588907601521552586238557941141565554806127702828552221477355764501452711192745653154370784554851225955338779233984057416953528774747573321501448368585920010593084094893095714444398233376435233762022003660273083222263782371991538012063705362804204998895754182753261310203213669746402590244475773275976706549407317172738341797405414300913223390463308983988524010606693827674661532268673809827330012404887644002996399014828911993150486326032408777292206364338274871595088263859667579157845594276971359259770080043327124406758214734127881706007551784073979028846455754316086440592305422253370292554002726955202872205228278729311443638016785577406858962224508916911484965069481820166074069270801081099973024125339227354705425711769796466023034863246461887809977049957047878387448949147908174120654143582713506955994016956458812831340504768720574475062640606042206192120628695451686217452339330308014934631096489428052855887058296201795685447078926673050333498621316499132225764916061522204771102081487269664958932735225103036788054373225495742838371295492841148169682789369877318062285644474620024295495638460329361365999656082273935291975316738179628805669880657556987727572197906668114439052973252372058082216375878710055578254401465075010897180551337329356173234334071747744246931532176266959526370722720196229205590929382393753147983476647117963486540317168586704900703274066380223148785053204440327228028685280533827490039404991224373373894397500925813031190526621373023407558207218484630113358359179995725064506950398631070834564140488766061200705459513633113924788419492681740250390154769948027058597408093249037585331554732421507450546760746413157334246881329076232970771895622726554514090727889601248167161016815416559498093791427702138351867376518853766139878378355438694875549573529309315934611546849998764865859201156028112948723418304289550804753285607166739920774068715269313699611378127862775373283181155789393344435937493004564878088400214341672675554430336835354528178935275357244025125759803518045461549043754136968350434694961270742221300597645144413923099307039701262260689080342153576816593810940335277733847718085190226589537859122300244247654076109248067663149222599380699473149030894023568696691500000379569701100025890580881129059696638339370574805247988268344738649424381032935148691329440209899880148993487039686740565461846550144410402833511531987455280934319718019824991440972952381561678800531982247018384741014286162792292442826963772105648519340296665724004133745133008217539813932138474041949735220802929119839486712078049986749756650290801918877987191301662403733998474304132034285786492939447375840423569843741407214783730816419734619454651854963848811993584623442451257379039116528485606245789240097314717510397819025592581483329941130115660028458310705875471147543835156171890200832214694935835288321066369725409523629993358372391385180188019561346470712308523329268951915593018880993984600345641907099728961837922478310309736626958681869534781201425200452988103174531922927946396804575825035779047612084725775335692676419120057098230188243073602936537188183150670466140844429704341905628352199084692915276638945291069302893333846996703794595011138873935979898954772847581769589301089051647759661138332861640094825633472563336580669119469352109409813114451266774758885735024333425987858763635757398967080282139080969882528356605846811215873825579920989693511816863575412675252956970763216906716339276165457784739476899237343303011561327397869715072158659348718745306835832434699017709848952687836262050111024147973886111443335269239182703028306924220172624550165132695175100236778393777944030781775708550027444579545739867498083607879049280548679212215223283668734735228736601042540078349139118501203941933883071086295555620786730829392880909056992068459473155127684162958171795268944550344248866240377181687841480998129168362715754919068781841312036821336117080803660603274582236277016613870408884295642222528387645317628464004604592535198733344159294667753741134320355896665123092957387427790309155009685020349951183319334661682421485242383062828819244514344347338805859637880987512436778710557653845367998294239091557082488334716941963548973024304349186824668254626312315088036021386706249219209853239496532681275144403070173260112400407393675306158299555029318184397161877447315876166975008396208936149204342712034634978322841370472622045114383533262631197915548660452135147528804082743154998517785751935241283468191285930692239378312224225705661593058771995259899569240026032027897420067356237653388421193373520418057528533988250486055302170198422487425658552291654875793376360791717081979564387902504859261744531450122001591802323079126936463789644791781285958187852736157050789436339468719906326060111807706315137658522249809099192332015148282084488875162156705273790044191494536771112394867453489449172842015899803692824423628919902552609982705826934704373989928019923377246190877339654146298069478308861275833574021059444438638578625661328262443537330234167354227163626296955754684303115617100845197575470034966585804119803881041336178092587863230921319410239227629049466289962197816670237673157302073252043767674971347648162857632302054517479060757563323127461468154298158558266069563205887986083253047537828471879665572906232707506907323018230449254767138699840998020776933018949954743729056280539752543554379173439660809722331365710126605186876267032958670147342374393627533830971694609889969281667023832025417606720055056169915520046014725374977367421526897802543774843938089763567884346915976123199960385426995108188158336555692641126748331513006040125406511875848731492529772740248375837446269848599586786490566469102833383563089825729493470793194727320158132887353063673751445368492096239001147718473459258230439260242206891418485380729450906202081305453595829622694002861019620371279554847994210954410190990104059884361162414507330898959019782609115206772717513083145781656982492719041379989128135031760852891035844568061497495055114288428971649110522533304419904932180963674371547177663304463273955835984782994054208853644668583197695391298583005192727640422085826622035101563487022023982535500264692461602221677736159932013827241671599340243809703200044389661239488841437033602332793047708558293840889001197600268782409161575616683555311980264030933399001692297133259507446096719984155640518292011162365047052469394201237034026272802472640195086609016096143250032151471505588588628808967399562248609454512046007654420683262356011595062332979619791312878622231551624259460706318139344498213083615599677801940706873561492113142850683604247362887322309966054628523716350391742473954200900583577966700543222777238569164923104441914923921838420527486164481057161067085360690456059338830062429034844026121933781255766301206319226954731664564990497121509738604499104716760324330716706511520126373706936013231711644308415746792262139644577169316742816075857920366776073113456492802752300110772940028578686970045719456324532647234284749339373777409748287793889507445286334428411691169252959289365651258194981089804871503005325264623438351793632732917717149648220683149275810641516617435179249908338208268723233820338164321520067637978451567578624962713813735630600950017295002560132311361503124739577419965668512835231962811235415417728931348753871041436726162375747056409843255085355049614140972958994057356388496039590549444707868295785630530220743833951060540360739023558158234958352421987629751625896333828004615365873426683534178063509480862393285909603776824451621162334228363792344166894569175145556909409944096543754040184052931132636608650364891562930227791968213578156094971767844802427396542219866086881132930226392175242939501364431560298768428619012921340950575635035059867339021475699301358710996981100286012048647007131666319661026225478290507203852416383911994191517697022649660980420210138631161337782483510929461815610033694696095413959955118720889799395376588643109053205994275862890451702574152608856084932210784458377287995212724938884701775768233901415426011623582769924254331121971096203326092077675885206667165493470712244096661963894808859366324116775888047553318312278131765866688097559949620566786575289803451820560542161178648923843235181453185967920897525955912331655518304187816871313115383674727536108172546637966070485578996342480068921421226375001673542491234458664628866301348408249480944759333007793829384369445667433991966687182101582354211780769338254673013291424260265122321218401545989190487565937385276989773831097868582610785687438241907555633974046797392740950307228920813493947356564001008467611766963520489867792723484916597616556475508614763641411240443472043262287905438304269765523736686870637269702585653514078019505687911342164953287154569560151401080151522563475624790433616614301707955948884396677184624420725251792943669189581325633991775086392745417965295427937403286005348685421672721883872736478594339195277232216336443618809283533609626543017459428425719244471612751698244615076598018991885176245434523520949849149968706750500911193508543364197226353076008190197858369285875244077031157797826566370174601319417294656873779097864803005526209203622175352971313588574653758042017496689605384097488508849708605480933936483582962909998276601541057064470644014516775958937156222017359719563031276042835864240640399095323044527848939779894694378219379180949119134158510451400692493054254746323473752664675022590486990239007881413895969712995936353587517368986481815446365066175936721966281800106025634134827518218790273346024631782752125083839784341857639185118893724019257642173887643837806678669070723246903682111774210832411671721316599072037878878834160346477537723576918203898577253268053615767436449171892158644175108462633815521257932443862702980001897447625162683692596903154681110952640203751056476639880142721376043518309587801738758323289481228735460961242714132694450240034700178472478949432318824892139554645583995907062651839707981417090607640064119696280536686639419211946525089886571823961448164666628418219517947526119458740927407348977611326782479616050315225415215123116279488812844866516357498733701414332685031347871822322605562338817671266948323392902309644905461560193227383513021992569317544957770396327598187694652213645904231497988869017602284614226684011753721801312866048392471004823340678613586636099015341384170319022555472029848948238565169793649212421496485874357601578368708765986671775003850687898693573093351072848865316918248067703739916227275891510701430462645430512483262591150698936504665974538545032693488523498167190415713836322891662009497085942861496890834863243254421585639242951047166499191604202171136512449222520863586972701699258722200414913973468348850977459795464670713438862197221544327306177323226923648382901053796156621255216725351206679690962508564342338035367587259383271472128219104709050113661401882850577683819576423710642094506721974883683934662374532501351104523374174289821330822967331870344005671617254888006921293554112931759814873551305868533196102572092789641695122037875842987105193421506553891411533940739859394178284931571037037179461016521805603756105020484098569286813488448801037523046679604304997377820009233558460817598449683396745707789404510617441966030120909171768875423985821177971043068129710975654126424052279481094317543342750781719764846457026598377354324817282134071238653471170075539197154773704598787129805049217360328841269668124824882719333772009576885380107930919667997949945353941382376480204229860006016746917783016041257648147877646129433896729075404410069015441869458182599082696186959560718308874836605194912727052653814831734217614475413935359995700898745732681573138036478873905626631001156754725523257014006824240520781875118106280995765225096373034555385990400271281133420537145874828908623902792464913135254624385088880549476720736106302901441800827623754219879802034514901384216122222241991355288998977410906524884372018685634418942999156483407053954540804826494552544884553125561521942329625536181528108706880274380114963705440212173115312264550024215917280618801486064326946903574165213783967238127473179991887880674805358889530420944059962868150303871175477940201021882783546796418864075400866257020068257238967795011071178881897037061643041073909622708814197297451864304265353036754330205639264525904423321761750008009122454142214407828418386734714995561941486795633070965057277010386942154032045471415117232302135697879792413965425155770117639674359382502929321699990137760060161467459885832654231660033937410257591219184475256027584904851841585799157456079059964525106707184654324033202845185192995289450235832572698370633879532637632547918645670492539957182898339795743913889220823593091748511639706096745034531224391438167309904349182708997568620690260094846813955223972543426688301401545731661390358712491628037182919617577544068854804218222894714656884644865856515435864350016072676764792556094945791166125218312518861160719476274655957523416003663538062934970904571882279571812103804252665546196171418676054349323021951559618362369830701953129620415916788989705315307907638241299823162548033260333263835660238124353371644807787420167949400067677064097674952494655013954084127490320505316483807252432512798959573291753667533948792812586122856942629333785740263762176221787176880268494767866044597227736936054215304005012927514224522191366546251638844920275914992266076896927498525893229072571686661684377935253018649008826996039754214092624877948140140033908767076373264073269237659518455527017365952153959997148285570535342264539371348181352794971941735083926810425947996845746522051738921735482710460692605836772673873118421539217398303678559758044610406221971134095841069365064848591426761679341333753577780662725631224509524110222550592660311381027579363268612725592461762855414541825557829453260754852713768972923241153927119040961166918461117558406689873865029148267368273950244852044777606451314565648772385686248372901683394578875281626740615041528314209629741439761751651257627153706310650226626697719649692095386104352181502320610353087115088719461676482170945354758027790650927162668331589856107115073193704665767571561252379307859252632169870073382580832178176971231444898086789277821133510870137918529676325931982237089514413143828720755157972728135774650521287994514573213282614796803750806374350910770447252290750059190316603627491967985978976820084563891579775457823584808680007641987781037508167337665395441287900956741936925429305707277175071282270395799900201278569076240118714504846600582875432071371408491457097780275338082704310853256141806030070788291708849934835373265904814502859206708985169170492707109783003079214272612233077087732106121051182175329497086051399004558840089720211152781025603410635622701757671583840165828557293998493293430110520972130530496783240324471221945838426409610625823237123228172983599324096960115899711213180758895236285932676616361085629232846754847165970922851618911643739968628015400058295700383357787273073464257215492411017238829952820589228792872909508768597029593552323509232957468405667363163291029738263790539080454542023174909371244159093228919200163992935984080422660234838085080254630949702921935822672471942622558193221368254648873834962502142190994567093112682578173089188796162133909186831799281514562212105235406816790787404179963911116286425314490360333565554268594058038802530019743173128964582434539064758566685576096560873845147629202848705272030390889973153958472684102153534478392565267007959236819921597566180172595635071366715799145007619276951865970767210382225266748207753299061244038247880230851384725943085764249985129291118652260914584020347848489256577140311817914468327673908237313486770508951895860268328752031548541791656945748251639107221029338202058228850185681373865565480378518610529578065001630489933008816038674290419767684564784668409399802112914782834764073996655768400688113046300670924509302309900274981459435193840204688080816946812274980364466659119392275430654935604262819449464786588048930397467081164726423960952123961714551542692993847478337805309388403612318440284074354120956993714869756918657910690424118585539086262826727649479729422409324673999442870319252043694007853320148761025871047549200565582508064367630620410236428013258848782729843072104617093607415040594925614500042985642781771459533156899921920324146297561503428876370352982321597994108337838226704073569422690563727200050729582834942424640530313906497065318084542335804416437751542319303905080695055987034094485895851926589044009735141597326195103071524679456373108263641797930503713780965036866014675932781562049732118509662743105911505227367862382732880320235228623918023111143954302421451240041449656804457847265876917024909384129706238239280099512872683124899357170262417394823840529961393006631990927474640782897088164067509274281457043977816681160352675602727123819305350437798825645930066766895237505545476370073994560530045627704139424889207795734012389135450172341765282895772858172622372844930447590733639830023713384379872252945235921985019899461227983990494994487362176938576898990064144202552460330507324236122553586181381546908651812275614121588844254067543357146114566602373786441754022831349835521795108608873263340346715947509302319720065061379968316137857924951068207158742143130151315289693645591320767487522381553033136159917741781139752539213759663296986126250851658650691876223694607593298659594310382570073953761974758553180769271682775956236897601215122139381851815624225022368991670319809968437326023785789941802485227808733857964692735010135185149194648300336915598222403442993494355981344609573417139638382773937532486391980589150942146077934628639305435883363439336555531121789826332779291824827051647932746860433898395059074636518076788523293149908293115757704430121858272562403478099296059128836156719583017650022375060719380286737805287304225469480641201791396151421252797838520141043853714656793028569700046506415649271503467376899955640900449519640019984337391802683179508312808070430075548040388990473148807587750972734830354888833636081804846970565314608584037242161650576250150084540901305098775467508781846379443716212747534483907256905216674257598637368028540243362253176204863339237368348247484179053829352785204104372155689280218870769275290331541080215564974342289861287131870258621143209447503807757059509456369578358977846192467597628321533187268859157343500764534086371405711436866736372345371532940566349786726348269275259550533473853152453453136438585653789974659987430898579003933930934367040875683013154192558061088710295314695556499775190729271424261533079789331919321165891494273107190732306669596679367245394391422908377053587566607154839728432050154904999620355835672547595558333721567012503563079535970661171281287592683106064286584542345218608787552467926434439551068038163556304833942295520159147042073459422266379176637217441220647443208936830932752824554105176778700141863977943825709541242181080528097760747938417689206045127298165145541355335498192575858370588865037058154516725010869151649651248765988583146332178271324384402807399672002777131859741329138984460194993274857058908216421772779532016952912882378284675470099109025396484387702769107967967096319646664263005282943954527358626593290295605704545464185654495285922568634560964029423979489232237769292309623729571149818544495840689501317499947547089820736264405329903667118077775308468155599369959252044347651442779349460875858832169691278842912040002852785404055936784156408818954761344509784507669607741345227173384251961358609807242059571795474312149085340715129947146562670636880030470739454867528270623531828434131214692122863341269594514381922490803034269107062340005738890509118592992708439395132802114262784677413286258193666436432400042993477035143880979224085775967375636188317468340442250251244871518304958013124309729635940722069146825311744874776284553691393612209551134633260913976697709354461804471961327767486629437899923826631035874136452423687056037350920769795492900321936493637781773688154329557684644012863618033536574143827405130317661186084442255172420994399795002612197110185740538466510341507829662661416668161414524836185873944307598453977932903544993931611783580656747132739587463192312450533639139230688931729815969544825118320952568877551559757521067981230958369706455181692091619637157366270241586319314221385588172647207163615898098140103788259472758986923151385655359345798741827899527432115740418156347140247367977384675777775467107053644461217366596808960044291120031218362076011531980359273431717759769432282023062135968752548095507037080361632903797030310516188366548568481198389846128377277961789123149245469365511721488728562472944974708642740429665425159800493608925656544201857413410011370980789457975929140738701876535780977394975821655849621885033688783853227445835003174318288690383799415945193201295113767133306764991685221019469161985132364578143565067253914720560187017102880056802216081955582854670325317537996294660092678920450711394369937859430234608133821876713849383189039859987605758764141641547445292161850560147000551319188358288765136250685584171082667302502653523839828167086254923134904718160041385112391352216491378519282267652736072320520870370683109193598519178546959433692067070595797492899386731198462165912760344194860180488871406738276702015144307755644766488731739417967167066577772891119999277574191646139016592855341766069598609074662960683730792582988385529528813829393523876852035870794802893150324404523016360557762654990404525201818369477627615983261825087123272287918478055582890115844493250551183985805214564153685735799356657689327661496806970203534664420197826384701180276198709573853588875726875057594679609783648446259330886213177586539963899390956722790029779455150896264212589153281027286723666360348513167247565979607711495772686189646166891222120211216544283260581301692250042617926470469730165074944382553219449868029335336607957336403194360240573900464480225281237669799111688694167658960506181426578207060573250795734846313697124116010210699465997661257115960502840273928569646748756231633465638600083788473888654778724376840273692545394200594258537206085946152495560231710692334267703740636357404414603588763397772311811158645722056577102646309341554146103492030044033408408373942139534384782169380739001487689741002372466945811845292161369140214237469105811866707871039901975710508629758061591603300223256033518538500951408632032657856471629466255448067232526611489491320423535814709186728856293616886349900715267322046176412660907497510530256170763970685125965715660510862746711232647800089670603872649941261481216319172876467415544633558247512904072882822381706848397736624132705824634723768764764768510234246222470340940495477535117361167485029952610420915867231861310553149771335554237077500962405988630896782594988317421680971525002302206056067613141321627370237512173817079339241957353655269201722496897012354622015571385827594457775993754419762522063760283753752531506126785490245446122233813999341906167779462802497530746387098483935046456459487402087684341473974637966910256348736896502517005817360438878313051041456595147023966578979481579252397957002192515179016347224273734797131921575817478173768907588479588846568722498431968246577135556781075592821917465263046144242143249150538548284142168780454613769116223132004161601392832317642197982469824401424297013112649428392674030457548299260475238610917606869105546309885435807808778604059249526553345182348180215042506686025058585970676731672318446341038304393776017353483568946803174843567126953223717587361552418791737611638242141241937069820515671876843959646800399841170940985468049490809903754033861735298062338084018294405213941401194928557066095914176641877203969486410839073716584177495027741667738742959596078440491687313530742693388448006738198712339623747387239777885609121283637154963737129209443674048195154475386717426935260623402925382382767945365029943798465488678879130116505939300450742316467076401794031996227322344259399968407819077033977849973553640255803524559243267995373409990499338398470952744131494770716230626902925446047833171499465482442510057649779626042619417066726073408667390219815964774896394193697982466586474328412173969546636464605554072221323250180691006238837888161202092120640998472979738313730269281988451721068095638454584692744372297636629667329020143249541132247847159685335451452157511565213513350385989444622672947027289510690896491463016238276451049286261111706288686491285584373235605781800196916940003854200584431776631586050820506812308435401422612254418150799898202730934837281388140109092529823222743950221158996680341279357866879847658549010042894102134115143380979447129961353336281843629419920257515486210602071069096716578045516891029499924922586367737653037183750678669433180491446175729688193460359477954628771189463424154461154812372404197924315510215583677057141846815568788717580337281746822279975940020581189674843638209756464311234143355461319657658165088604797703893210582267424142694025568003226933672696500238635129561217937378599809140977360542350364320655426177242810333105783920658971240134100656881310088403103223090280280796756275867362744581233690028427473008186467443466835367567584155718258036790136764033538252561679925246050262143137392458617649137323667826753884997328905192295684138239704097901432979751178453713296119273920491282312660252691450955825488242132115066690606743839458542689146351436599071791689576753898033794459319154514513111394654792242128652570463327501629979593612793918489872544008464165669773815284508709672194822669811344430078192513592362796194872838220945206557312123543893266416321943085926008953176245783459834574642122134930136215944640037481159393253706678657093310294278770651155398289694934891751918830032541494611134999475139985981141564058549747734266465280999998392714047048738177953645517127986842050346798900625745818128036382976754942841688329333269933139620877999179209432813020623724281033552280359355980529441111838750849159482689942779718657964670835071642456646934618949769262972704728804521634296670018636926304268867273048714887276348482802300384044075213886541930936855829545407146492758307901594731511793824610519918311881549215799540458543691556570581639718786100426920424414279225477162542589146171765283153527044036663617816687301573731168253126516190246451671261593613061317689121876753286296754212091024716288039616145561898843979136773741241364011601053538521614313052519974173389102557288685958559493901545786486897434109289409487842286825421763303458107767794291568203755816904302149753959083429558110857410107961939327365230136006282507244893648864710785430263441868624239942311685851969305819755842117930335406165002507704178785610292383432998315663807955886408019193940880684888785883206709116764766652055004294069870449567800876515281466520265908196877091419803130200857809937670913792564953666219176873863826154249352787300106631365604953094157663087672114782166862135333363300594581971625333721023334949125217278473507588956386656376944810375736392410899894392563556753369595397641075265390774215765260494214203776658457352570741950385002450159543749138291343876162586066863719721849048715817104314759770261832744355365252606300006702258845011604901753523825972295347090467913127041336651391377312840244581727769289758038763128562814368841459752304251026222936089849411989172753375869096461012017538680468478658429030582096003235446127042275586333974201821495534560067965102541031689230071685588799578673353226851860113860944963383451048266053772257514906515431439326186173719456928199354972320310620328386500440045073765369161155870038730176682818294714271973677165135862802823509090256857021289705278864568430245606059006575363999339854341225241222838632941019415680803806594450334161597213666126968387531103004006852320781386201338153115420855781118081976677775021644622436874665952625761504699376773152496776745470106025208160149832459319820488336744550508314048127334515925203681513620648316279422132944922340741195628258210603025389861913081626229417714461725968485286165761368981241641905713757909518860776750477557123455527015445641794150832035584745105781575182078202668822965426014506537793955180041714363458976805493036428666727761843977773682713248420337094203775049766818592731729474440375903824092707697831585458589082759256709734376376721669176421497058144713706265230900311385085169636300708513906212925885933442653418519504344407133925820468255096786954128811158100740742187477652399758966134269945535959156276760000985991093474540088518390928752027310781255881328553481780329791036001455084828111542513171442347094634326256923236992298181129280410919830602079207796713586993367159297962053517208623307394244470207787100010915786408283314716006933899713226180790874080981434758708535324817431117709028679511452998448935204206000278363580554661997160837927218311550075321779407550073591550468726978325773742560287791591671123900686765210682760508683737539266891533719566587227204156605990692781418687785783355395963559116343437861053129580116940294479869070814173195165187960210738274745742918233825337435748435921982757915281255266047710745803388437097658854312692393770715246045668897685581181000503471963717853315794888706344399984728272972293967594462068646349207003544843285088771753129576666514043707091566631834526195037982942202311336924236716094135698350474203376672919546062521585207268417199541702163593241060194987792511412739891012713731333465556621054645422007099414939898706454021451514136950909536816706009832216485487451236661028051458472807981974320981691075463698411479274339232354757966907406418596869830952211647507853434632540630815817888741570534720772071753046891973155845027530944338813481672754099850788929657892752841282306909363113014850116098561091225439866110609905754533852466776429500566136169334815754050827914067974753072986346746397036492869962474653173392201464522789173216559227225767001533781449434485647091078870839446455571258226538452093616298879338139765943765895069116984216452937183800649359959778898989963755920001830578154578789357822875097096218859633096436416957295353667755776646380787166184692150549537074195761456734122516896125539455521210913265323015706784796238983981310668053081837784935231057713634980506809012423623269181802051403311789701250406107170823160319797085533731597426091055798256278501990017949997613568886409370294660015704501356937442677394923078174135027891952910179659401528808648366813146254205180537792794765349635020413091965598081940655153568202782799030886877026852287015078542585756907665338118504936417787758001434983452896960572773123290501970725368756681499932622645129033503926953834481676050792143061668086349629959111810297954211050028894027266741239928151213581966578058013580969697033682159027780611052040882089500539264679300214057607612641528437268154248576491468293015091984667691769029546033111096635856354161687698395695658329487886742978840027832509932405560114802443303697937592068609037520367838522894379701470642670339830939156532652257388540497634060501704136857775123216368321723703267228939257782584781134013178168244379668160040882612901065972369998964677547943110141731241202101294068375990463598663226594113891138145459253898571685289248603254494361033347033727538264168919616021359896763312797962022847945781021124183811323574309704274049416319219705159431649172784643360679058072006927565526196201944988150091233875085396146662679040370333016490360308362463882120133750377976103336787301609648712221771534142138775459024665463825892812498969983626674159796616053564175886913677039674515161893949830498875518902417002210778694137210157159000770807682010755155510005976967505692272417414620530836545841654912074260437321624177621726417338130656133094919718478133811047780057121386184343974851118312775456438382735672880291050978589559251586429469568309836477790197005102109974981336905498664931191950309263807172619742099534129643038839252586945201556928602084077176170310808092224378584027142672822214511588013684428424670330128386829060793062853864298865348401758753961955597156656768555549879610158098336008099374986496989542988463769398122124909093094401501417715884438546322891069380983730638251819660178279059130113399561863729941983739792657068813256668380865344070401594260602122531532147085804416657060785565817795757564929457094481916200549997404814808438945259349112772583856476891365702720894004846513587994638216418146616761732498851569118104131406005601916899530960103626514505657049611868205753577429962685649007338644157657394903607195430349264113543628770144581922119310283107970451655192476875230504440536896106367203058260920871565446041786820785802196528138338007767000323465450859964985076801424542844352792891639042194216852901154116910887707018963323317053210034717455152580277953302151857864868358378539148263125027052223386130605997403464433453707143132445567206456853220457627228266213559959767676435381672298359117718037973617907508133574402311717526973474997495133404494923477924203280565653362585769536007604344553214499643442234150792705718358325954837020684417272746730127068342826621659202053034532437870796927543445090199740336613993532388127566491125737367475996841688857847028646951955553967554971527483135235387711323113877270192871978727703297623172869543774894580031997765176310757618970281530725353686539573802453458408506749259001211405631224729636934845990410527509897128192036864832972844299965745740583843043127697863261849073173464509980542128471534726700867752964606539741654410938111953512845664080896222457029028115943282986473019530792982147466834412846940023585910972286553369539049796068644845057319580546744160899197835564292849166849114979418495853554759453444206823592019201332199727231647735220342514747427639129980683292028182078663585147176027602001883681957040685128329184457482061247331913269662790904271746428124608101207816885832100454328097054775582992364798467285975923739848398649359622154191003809599824586752566186590571705265589653460460334440869464222180788629799299415651097599780833383295676536870527358932759836365235828683673022297171726761590973009043032038331103404391443056141354572585305670351634541447051143279664339586713952364206828112878678960973131453355629321583838470531058678052339145231707828779005180931393250462466493399152871329379807099123226204703896358620216564434185657553865564488265807124101764861080843086487024169107575089688644003199988610587557799584186409099331908328892370229047405109581309633857187546467926214413700394620982927637983805361881542996607470434407422530935511564518241307586639627279578245911291429870777699253657681247972603585087393123012273409122706732491906305689789633909263091473575906431020626530121752949928670214057393938229528861286017130837469663584117187999090455099132420772683281641746231695307667733167242798840042555569238398152749289783903109329676633879668637631011647429496428175925977953263877926491442767803501777832805418604961087336944005698371808935433328953048890575189396112816660446629662337838600034259623564277788514926204696399441940556226504231284403084812262628824947122063101875942887419491017824530169160799228478381682839057438481921235257288951048983035469970422334841605494321369938663639193766911775613751755981018490750195474839327855770789302936813127951276602517991283688000663300686151372297202461976288897135667525277186527223970608609938291363807256201119483114565526337289615013238424821136068997502394393023307568739616066202702717756760725607089100544314766721941837592950011968833906413993930969728459670646477575511499392278484756364717526879774141130162733787576879666364744895698171000004264385276375494664361748416631905098589318174322192669605765837760982616836927415284363184257103283457873639199411902818880315228107435325581266497101655464270085715381141123362039349657033168071910832350770533260189501471356195050366728191094264542670383151734495298126127597263946692598151175394924494886524724199371104263047890927617404294120604965260307341073808285124373726364601693576217232374655297524289071726257685324893021415097420141765289452005987414852926985457037812265182384485267549525971450942369292472439616635411698068341676471305737484820698266251772270917555570297939254099128467770278811585622439056479600308745425731981230560297458302840758906092441453306396864792469049320425923527453179019294707011193556562857564743830186924003362062402516973742520920711020747378622930188202606731103326346582485384127966901930093327918070806981084720045286816648323817279743975000424252466176456906899985358444150047145186744103244807870412936675548224735043408590557053956108861816543214598621309159132154988912220330021951031458966513471676990334537248056333356735408164482113929891465868707128350491361706298262359608842243484026367620976782695282015561748182771217795482504551558443796879083493952034832168344331818190018261637979003819321331844186392478379891775165522013787948805581718451656547160259477864907980167975295551380602473504229800545510551366582385447233668307984914606645526838867910395054447793953849838168504762724434150997209144117939802046067322294663319223144573648573628440089709995822669434393808931657862677159696396357703538108092263651807049180174726355402327596900879855175039341701922831286366653994567435373416652918559052768031836888720688187054921202456710572745103896482235062294017335120261991082756207830708698477418223566391502600980960373331790223170748500847957006686139740784059790541986877553753708656094499609777826240972450490717235971189474452616842921970453056848946527539268530126741062007572852544806585896900413000028260903282153732618430814477940333320744972078747298478014565362696763954827333415150412563438469913336189888377774357154161847688106468077458980348364502113513384107815334179634636062388211300899514689606965855751403040796428246400382804949896013879742318718477854354444330280535186453525691212444236674358806949587821366257268878649013241178804536614024984640264146912967065785131778954239358176972621605065115600398723566930841077698582963045825125042383260700122859726208365415275463986425959514442760744913867069493948567111741977030706035521516413725017590699555338749544828059842155581012820662869104218997715771346552510816048852932969871639184779634512437950102124037363776885844077606702548021196802573771916381806705730366128354482101467707131042865639348831787752505867141579487112343275872033936937912192673216094242243397735219319100344635925816679314271243886806271811478788754442593001319241949555264774028437267919494679915946432415942196069356323624233460122081776855786606377039014028822870751795068523506678774913496650833271620140945422930175995441357376265668140391230810107773050171749889452727099599708665545445059787170906859736473309303293926675148217559702535840798445213342530696215112757760236572287663628593817016457468100981339134799702601310931874088280304511198380112176305739221137032107363854234064305060246489400122398143645743270555443842074054135432214733618272034104806486644924015002353518752467663556561853119414601320380004227236022118406241060316796128649872417088365036394429895354668293274498329307140462067272359908500081080762803723983094649313836110357731227058976915715055998594240511956730770971616379323657972422345483645340941961918905780613476226795217496883861594287047509767419096321213012518177117727482015511597306442689903758940350884297163064383591984438689363351769901968643134393789593251541826594102538259787926795028798937429665460157070127751894948627081293406209496522980394763497347002715366430358698562002952067464163222279529855168244816587327567525587923130895404022963452655268576444927490145004659654708954817426470478787899184150308719956259517126714662837832129694844672723324164118258699662379006420237079400736895280534903777117900858850693363727417783587401444331036130919903076857176095304190443613932904096460684215987925746244305022225754283160687263918894180334682794850158668184295401501497213756968825960698989892623730648154124748133298208314185453901868709851540774165928544655488061280285866282409532392813036896302594665866128032212289056578341909238099822292891949005672209681486057057927563687394910013543995986524463287654651568328354950548529963753110683417976920718723631906252216029712152239833283008591092793081369502431157885704926996086138436741502236492572890623752255498397636508500147312480883557487880423797645748072495097278186312292114697563001384704720553376612420984435392261054653219823511360120584061823916493828850018083283421624806947525095821375720238586142812212934369722544237213062129158580448115874268144072313335383441005333519834865707089412632197591510454460044381587515748198392621550934187036520694233875133777433596482164086320159437953457000471384387074681803629492738731683294348962051521984072654583691231784686711564257062901715861036850673364386179956574807536551957531629859734274950866224696177537722285904445388543169721604146194418559930832354958943903425370727681633701698007539334680015763057215323243270623984142295630502427654587397248227689165358222627497640198707953683641223134145590882699844061138884560939253105050764352207425307867577485137091793087460525629641207171966715767673008120933075954263532525580222753671297214011093590732849014829897026316581308985456090919802564256186268998304142232491158424246781607807920404597733913244669702218174682430707381863970060044707304307261883831291130173849417598291739727848749114661790307437096224025982933372562480655321568684134528691352095092700969982314446321167159609204906062154216353150557608864865458733102345809057347637762005733466059902035566605229168494320904945721222382923511117017302464429599995836089584659069804656761319543734070030227069207973573839979616089290843432647999093749165094374239336289196549816639957254311212012098787194702336416566639085584314049751635857746601945799019263219631015675596395018460955929199414649316995284391853867133864007004501056433159721653807872931547570775372230653976653475268475310596567864380600914649119738374127054332117376733947379972574175054942587595856712656177945516468615034966600826230980963561745552609291735869607659028387945802180733702870575800097581619236461005160505939912099036009383464220881111965554049526726898740977599640459326279263869091011824806582414307524865466545290160164077289341793113577140084332516612952220922798100746528150777363781229992646315993607809404760467251714156065534622340921883915923529995782066952906559321625436186108253542641924205145849273679805339762336197687903811543843261541540233708642769779611686288737199928696068412613123244316976061622224147428824434857305025077518944954542066556939030361828461463117053110981690563985599637766076392408940232995220965234353920729167656494580864440519735996537972152548804049161717502126349982277236825052624344626505425942909773655108352718948734819401129879701651723083769089639386220033947253267398166159351933633851963625546163183149779885873075550083409865203154890700046972663178148324998064841297730718542014249700925754041783113428666222147320833473148194504296393364026470781158947018758701509183840568926057791244038867338370833873170236653141128159946785628835240977206502654499957713467344800688915791039873820727892373680294335488899584589721858639030848837390564239511326848731895875612231517999821782365335406873767269804873487716540774680805602372507373409928932548914736516055006434665560346748679991410099973514226015499057086249215452541007497322963595556295721291806192898665211287571630659123264632196092600687199604800315986802821703172836697080811464659672670218136252055735187511189744459836536517793346839174243901807505821574963805778001602727922326009346837422776442752253583010759659100573914184558445893612291066520405023744895718200985579783194186795235890343468656168971830509149014860041364424696014217381387932222132914885880841611870706148451739854681528841876020780598524110757881862983097066284230627001491847769371674847991583271196525206137116891530185849840426358282634481119792079456047136674493523056138217631757234625091740677860097528021958061553592426975469087377888555600463979852426126816439008946756953740122042899002198469832535813974820664923918560825715579939127905160120898104386647722455833977646899531608266734432073150829451633367973147307854963574565898557727867024976272659516734451629510937634032157078029721253364420443113254281600789884499210511427910992293410746241919090633990378926844471033698177597297452456738340937347665867352858057618165353689602590100838695677693001033807653618450619676808842962981616104109028686259645973645380737352414135958063142251802981968106531928686721807994375416780746149267282990241463762044627925279077572521896467053213751486381438554040296565838370575487877949550857283401655827848244079123331260715083431337654156588757722611988516508285185941954742676453677684189357249516142505403776319613142311393921311777899089399090426708112291871386333499669184716994991894289964472138269703062387251799593990680269250688455404608282897084846792415341935734383935260436322398429919378520114319205970729595637588302031569524032689450529777829142075012869590918972852704296471458536659659333550547728820177042548582578951980131635504158436077533201639543219809690978943027777240630299955283488702152226962500591055789981672491065032974009250522139831509935785180873231291810775744228931414516657371072765613774747916173463002742805044471537759373613002029346732409321500124816308733536124344300295599616176143082680165628084959555974143164619110855765448167814655539361225928637549416605314816389254601667258670608221375853647750525936390322669908151382003629250301589562626161651609995668189062926392995668716737057205870528955120208840379629205421508620194327468042425850053188058113027427549846317220825904208810884444827267328111896741998904925650248516606378583408415309113272538782743312366765598861816667487429014843888358286586769175474985187358116807716700293425731121171767928083129377927240441323053619784674087122906288893239083490239699394618842809261299200473049874899478962605387542646176038462851425861132988746230839506848429382882342276857404608853346542944394049361740634903050887221133667678150608643275567031842808209491086639834793175726381623232861204624043122174860229167951482412534810220010305196288457469363954974355036728870715970130919855076366336247585038528877451438137513652109485854141349289758718322941350245440962664750082265013104837187073690391285004869918279496487846152003707290250716390957490445537193538627248420275026407620212320469866878352060542978547765839773435211418620245899329661620994056274845452300686005694266388886747551355683402474937641266582242179660583903079843173706818997559675667380414302365889982462238750506439946430307547640276534931976191429634986358012533235508709650320583006202609562436787055033126240088205091657005153716311404440140222475727869667398527699001775501697159693709065288068725752930000409130819468686660185255969940375248921943113858966335799167047169328458711635242392230581858412021538856951644401770517424797430685689297887248123085372155401825140255968882972096244660432982500210779757110759278540623203783147878543471554145377316173233700739547678226899299221174943900710909447098655895168937809726384144375138666126894859164475896594454453564455807489979227247181857492900741880487927267308722677507349254353684946398735153274398989686503706372610174292402420317654367536526585263592422765174376547763403031827523995945876893503682977227765866174172786789012601519287591731070253149441113692978478958724449918750761251838132032922325264577333732578366007231381929843879106369486528500626499083652085809119516951384209617623191102670805586826340140350967442745571733845029468800112583852752336679472353104313928658592380822495814326498742059503292766924894379383219915086872132377797122766334953297941365824922638668090384545086107084892893158302629018035578785517477402850333805126410565688879265228759551062958254823135573230394189993131980225965010632658157398845578023564729186260046984186758387672595622579601531658849281005906937956969383731835470961821211750038075015441557453630421315922936939094166087471991974250222526101800503006509472317328141600946961260303586611956750560268545885752095178793531757176661461614905895557321663798359435355282127986294017052381273516901154336869712867625111876076898117247527821894404009938792206548373339323660118228761757114402034211052093983988938551869737533601645324413116772083575364844984379698131170415572678352245457514248233721046476293155724578727200720200006295766590141915887948485133283403911895635329169042927382903202800720858002065007543919835539136874678781855052927708039115475344020879964319502594789529545223699592364413317493968957347410294261546309014962104151964384220537718091457777893089781115055793486064027109431042174405163462176868490395472000521512733930731096980331752359077207232589466940766194078038535332752646150143021202957274719528393082993265100658209810136865249789485037854901589519555018656664114704146558481255408519061178426387154184942170307225754536840727500299327099175970695682842102317172015411023312199897353522825716494601800910679490553223077534469687321601891145335729098279476554741835478943308034221631296170052347327481967378319988042935576646352640368966466191316550056199679196919441668288437164183549091656000341416894122964030616614973436197947850245598118877134185475643840293826447300912089772234728708324188865336111603934105421962123500464607147744631949659378079747491092051159825982124249195326435001162141792862211583701649369645457435371833020352207122790934598046103810755524053504416884725966435086415815668991785476813370378879829862013650378226389535425880733499525012647567393124199854517449831096186724042723821532581546931285815784192939732133695308695946166061000541369262346162790939776421363738373187292736108272428701139729604739086616628435443403795889492216108558085869197023049837736859937578768127480783830188359037658698864217710803572950015871275850516990656242353605191816138106835596725963753939203152227923556818508039339891640313264877420559017619875518784148052379371467154547068692926733794886103982500951799150797308556232060019108162570202302288187222061688373972996358461631714520536154239069856175445740455713579931722603519711189116986679789285962520717675515599769103283171308388793117054779495799005072783002426933935320047284368368033970040342879324439579611178857572540203781280453674377689487413395259957699523020471362787280543316950645253001432258295363684029671713038872646658487054763205474013944555593156078002854602428532196169685665495917652774301537532575429747696459954478443349459428959230959797445842757674240904722613198615803454343770437410202504401785402509858806424977362452079844632226334343567924591113289244133393698290396895851656876959626534992547154036402702695856503185313227707370654190444153664182120873391879777223690069716914972296573107334137878971210719396514348187001813546380023639237842712285365334939815801372850865555045698333312321281316018582135292421874333168993934762306438738428989223484959724590187651137258102699018358912331822585833862962287004600964646205364356957157152591425725124871325080054320811461275166597221657899993921602663721802453788700544222918032477431931408149637562113551164333206841357078194029031565297630513379564099429443366953187766739007831197138270689376455606633430003081780990889608132809034780939918129245464518252341730349128415379736740642787709332191286047997053143726650109095846951631478733327792612228030871715034978155554019388052923634210298310322454545034892425069763238578635887632614564751996765617126431788841502501502050296430422368334355217712055546432665887775255813087092405096194909076681090524622000305037948408531783669766983938725941918463966871760220905406839025676637809249043170527404563442161585692816486362967952866481568447553087758631105392008326190603683705576598225124401636394705679745890741523348503958895793570503010834143067080755375839944898689669216892283858743964284594264970450213778151307761190324252080846250145154053178076943704698058200229551363310913402961132050994421598559438802235535503356303891710366431832904485790852305931306278775898308297820903838819348763612774556499175180397708716503455130012345433623477486820334280895874637764500618434158303585916752409874955997109459330689123156054419934015426043800450758941576039432039843693398977717774568444130618973763691693562651716044096458484666128526528299045953495724747881501846409201879557038544275897266154711759875025304187313204491533507778914030954962675563215431277193022542450372755161405918734326751113755387757964014924313149070445307774102291098981318567162887330797321131521273837061230560572502685106311892771825252770248972851819718173050456545960910945998571923278738642730356690268987431884676344109645268339549791289642325192188294821699617101335354782942300242336536389658257405957461111959227972985654413116445881483493559500697648803885565242067109739931445697899624505097133762606325495048239845648115313858522501412052385252228242404359477238775671201320539948107202721566466370934954395465516027503343063119792822892258599132705350406848257420385863653337508173419924910741545944557831432755062079167157706270966911281063935873112309814526373453405696680973420381554885444395143618399559507565227511074318721093976627134104987721488310107319420768671841722780791056942500469039474070404860207316442979224392777966204344184353410957804785884262502891090379198467509464684958383590479675446075641872751917005287362824897567617433992951359691655441629483096894869964539771310833271009589970757919588434710997513540127087545333976575918668175444152086436636235868913783716221270548381917857050763852142778893335572484636287529448752660811800959433278978850253901786268954183989467570693763192420441163837106365823697546323395111624360460067582224741651111276299028840057151937558754088042959713941438026321865412764015183013874353057951853279940595890548404422897131676743450654450578562500588276872866592456256740037260495016143080950327862265287063954584585788414463239763190080269440693223625713414656146339851360112581854304845048707532642872717847311908185438918311616091408540654335564647994299670314089678334433004607017546714375474217349866523206564505390872725552372355110038165239501248330445661178026277002506962756711517970378169304993528845729809671604424975359712611616540803789305924827698140465953272568532597423033881458447236760716755067648414574907181486871178698336284187589772348445330402758746839262527217188277750927676379844866757778266095142358207889625990812350489698204386928297900741104376856518740226387004377721111516629703617799609731992804714304749511708931146219747103517840059134037091626202017364189248576930056139705556796412159563809824139185634199216061998679273834799760094769178742985556374056059030115947029629868448112421494238664890126237987254506153994623583653736104316542099073964309215267003451752712504201679570512165017122315164107657458042508416050802778947446553133166369301422861912773764777157493696805946615828396563726206993134906958190113149801822449753098098478770235230782170532771688380220939242786615342753821953081216975394887606518728783434010805319376268984475210080061536070667443871093498178619720643612113663277432088748798272702781450793553188991083602681616790241086879187238191964653146654073605595170386709957800774733826742846687919339828510599265190350747442609632772112488314730418189929039203067022293251157137977939427183044824160881272810657910019124950354150820450023565783969862294334950290941394394771841689280851307298123214249322576455686330971208187890023681742475043234787860252412591282669301440327480472180775870356325809305583771413480527515010557487305168982422865575846801667767767092309177541684889089858278762294654683190273927289696970662254133083300165608211992088919923245473008085620945405383033027189262123882306640976486652483483065391713715208948016978460414628634242537318412410883968398554063217590728510929869638676416812535094307031825176872339101839984936000804421566420933068876951169832028832342726279146359300004772155881838015567544755877391680246405956307941604990709652760849069647504087896414582147077247649225147782581083664685454842834931328054392051536269781527179730423842582502311507593768027485635776050046210324278574221912789350395817172670052696798953751104642010165959901435580107448995464966180234433300575342252610021206137758654490815272933391531405118089466558834227278855879263044594466164893510013089091198305976045341969479130330003432164441357996194611547687322017084491309909865713036592335868484034754244719945934693449646303057533091301500024697658072831564190411299228365168917258908727066756065537253185310192343323736187426696438758034883471176323312646752566958954996459373346140236942992697426705691683739913147406016559394807622398031617215668014959420144040905601956803618290080331026036558892733981093228924268744197785388505249120489239234045102032384177470131827886603689652491145503492848153331559305065972597782255125508189938205436587813013591763001936250355914420561876786185721629931474521743858006810082214980369169383009113701519048636204985863272476719280105576019563950218235560895907715463044225566128801741661279932664649604976922228410996677470764912116541093826994034270041100536377240336306942974647921628854294657015615934006363636638493183420510188915440457378812938234693133509195341815668214150288199325581111064100146375323059033333862208659625960507972104631746138277987592118049530879298466893480776477054331271263662577661326812005554591613287762940125582768504088771094378894050833681744159583567556577460921363627109995267300559656820713021358493200563946778552044127792531493171238511816176359192763811205448094830276350759686897173469178203618821975579846051718555612620730671425994187103307138017109083865161230101123392437505424614345056498783605431695347713855106743366697938571105178005539380799292246574271759020205697164567514391004536464013515410042526506240664466253232980295087446457565412576744568889413378127843296871731192823209013426322505728743964103331395423911857506760265706769401772179118127048963657461952593128242589665867069881380838751218109058085052395467619720599949034581487250349461957608946551990338178309836837258600739864478879835877451502481868204274429625061600530878828768009137148562583434602032544044686921192989988887033839106442719903249949555001581152519064414046322076303003785303557773093048347983836783907952040666312467808536981315760698203545850608526511828830477561343812558751273763734655617883198423468575166058201757385405575821658277204682772235888710665174890472793517065217488891306829828806614281158621316278287685116604192313943754453939610126004395763511146286988387067724014029665092418424452246435979353243619058443923874833474150287607142520927386527210371208550170686486457731110925188134545360611446942103178818020795190985542681215701089728562003275530222226002121509392942031082824106337147826042179328430517196315769192512492420111523636386428243121648522154816051926677897294654049433054819606454914715895175852572319571711051936498887485243144871608937128440267230940211527117359557250582383721373129960163071546167546760848998051853450697874422223948093551784208438867676292429670181346730270985523580104731144381572685461612229144673676590169677016586789992352793581619086804594334081560473042310316416081321800232894453803347047224091741631488428329626997239503514091500458526562354248593139084073543876058047056032413883915872992171882738428500161968853755807282298601852646892080574574151168219620479889624535170517954605716792687349592859104229516183178887462913338035353943817753559443984699710022101605774729797450990407864996878141630148689385753523663827472440093958009061412830345935259749766055969415068040327000849392441677863333104091765030907721852196497570331366493305941173903470352432181442111195174989940835372811206261927077508422321864517394556128810487043095052305576044074830022371128305509327014086765374842955934686058480678048210968208287294111382104840338514697864580565395781834152504116801583440063427124195319532779796079336221580118239668609453277327527856123906899004975359581911051052463890197667070572661256691793089202707646421944234117503743537884924422301635485375997819035671697672195876146943627459455379499614818099412596932828646787430328814699150393101899304151770997220652743922322008246236324288241883813167248215729598398098861007938039018913114943391017720044303536854312915533516653029422185381252366136597856299730246993281365037401597403824495072096479996387048342633623295040188936479709667781325949247566285816998042286558092783106919456540688317151598397342831695871987027546364954289285367175162493742305041072496283104511957761144001500516739830674522342191307403538236931951841387081249550622301490459000912507983012173519563173807902055351344810513082302709449755312207403196965834669923913345677798456881876863146631800041302764129556391537967221228784979816130703989847673774398358099103582548626455667351546879071739161309654364950169552300044508660362281356107228798788911515265210129605346176769271872903262807843468041655345370497984528778827229888170275414796962196502167610572577203469722947199859951778347817167660841566248383810298864389255920571187015483122810525443610654031671202262714711579729164459328952834805596672372519008873388055433240313006812299385969236076731136354814520809706804053697091873439509250558711765419255103902085347158549639943635331960509870757693202036780762403755158282299186442749357174458358279231623761733448680833156826935839436681953240058468043144428325716759474493396563048985453267817617650356928573448616691657956076700160922028439097590668705126074743502829032014388631753056296540479232238464092653152463333371247829474760563520315962813752212044968056346360592071725783756187319074871076930327886288898596185795995011523398459715602638402856930006261820709656699893213814326188268289032492714470862232355216840503220227668920549718423127403608587536892580036941295686458476566060971126132876965709665087695823914522473723173989959113888572845431131564212082474159569282603748363347510464028952800382117336066077297539403457648864597690659717814642926777187925633652123428988526950747645822751712028505311517213837684798077576304517314865370336854290234869485112273110428062054046002420882970328737807503407319950280093770738748592900919132289745475861863203233081179567241026180826483483113265984703750106694477540618027731159199649273393015610511063326563223648615477256828934890407756585772398883398235294502854404006140983471669016906398288059761650550730805420870967296576133109720454888765054330746308293492702473670361487331777549032175360287312103476025876885932625987911340427071842799372125472080817119137237248871648601417360190284479540640678157440896488892914988256517155681593922400462399548604281211117008242024281071403624422708410615896687045891631028384992452785182858448249878146058706303774307698600854734881728135190103291901023827355042464943070089444796041707831311872592342365215712041679390475007851179432841651835798747755953049747995306633051628079093995598298575057206870942547720797021582923978076491358688417524756670131228547375782978757322804547571897164148930250119629148213787207069041345563889535837193311267569715474152296868296704041378189523657030065158073294851042065480790472889846610275022999110460117853579238986144214791367042770091416398799900907591132406931131410653278821915103738446154674145930298933636572426664271404916349133822225481088969237529628286891799280393963433338484788422380466546761683929813288757341702072204910701240367805405600757565675281281525138067689636610793468807647996116782661286738960797386183860958120046239846046384635454837722024077521729758784354369675009797201349613661318325425657307702657560113685704132018351814676581024793977263907843161578811744192899744537699808390987599081471672404186477006292187276412865773347670709549679066768046090148472153789783486985782715239269813125952472797626597442305491119144691884010958841575057346311429672730079988152651841790129717703326273326026901973812344252963236244585084092143638753726654594915506572964779073692092623725028441763151643359535118284407147861044131567796074126779562235876238512816854506716306904396706903561083597125177319230180914377797794870112974333366660230630246550942583359258235898736876724828165154543047601581174393991911790666325769325463189054306432288871726810799175282990817237548396157676328530082014160652232969852836612935553586439482200167874512303931848469927956706879627734377623560341218515259648562212557035810678625973027020177194733652871003602279696829779993798943801295007019349989878049158265470393151406719529107426974879624076956083328845836342917188194647376223799787768130409331941762949195539971796023918479431277604035298437036804076120908551032709820174273895607965296943628253685296245903699162400305051970470410739770417066446123522918571573918477940182849552151207319618579729000342130708382394688327369131483165368579290790278359759772465967652742499173480300608589044867605412108160174726800099352621362203165725053727421023523333496847108667171117899601840185166788598694987710218520965627031319522818989920128031263262652000653847292643149740268761438170310275076288387607881912298282700374137720397522653142367474237051174484666762681325436708368649821823887589782601121308693018082514216059528352375642665627917324923633891967763204269101977368098004991873954293728283236794988544022836866126509437162429483790180661423071433353828385139205625604198784867463403336905946309918457487270980763938810185066527887734013473262419053661741344437331282248679765449313050619262547695324288049344252184992632541951513056974172225116550086781566637258483830337693064459951863409202806945460260663091783944893607158489565000242700920409856742229561091198712953677351122701478426279684423548124030881385662798818439548344876311815847766474538055892873222394599279190110544037411236043568798383621971122808127691774110763391323636648070108582218861501183580027597604902392661533792508050797846448531899563954381680861007669875166224013571934260217241523106282880745894444338701555850926165065702052214536585634861751513375784450449175902640686762803741697378631104624840379980874269788899223762212796426120960593474423439798297357082979687631253507089018861739508985384635414944156684623358669121683937795553928351780928242633661734736564582926671908050911533101066452911860838951226760283193737389941123006921981124844864897644494271012875053245418454092982898559278781687722732820567621617420616747809601778967200248908748674149133741001777674853993111653542864678088057629551589237303488503663355337929270841643123204000262419864309435866285395872403663842071797714345141365642183484996593979421649973858153534262279218084097596637143486143174493443466411054537377327249617073845586509075013293982809242687978459252791990314026532214884823703212367872982746755866384359809266044036213909741682655927476683219897027103489575733880419185216367622502551298858041610634182638855615816851931141764241306337980276424110565894475473950843408713241630478458119287464028556373832536267428673842301769068080442259681309034825434326116546321253367610509369251866906193542514609209873320074988099101555723700231446251568223183593928894031205200009079576437846810603505854068838931487199397247742452206932881858146355499370132305242761533575174110599760905975392967236581123782010106904069979905642249156513629016220020239391879773329511963970484239635539745756407665978441854677656361985146606315956303879760788061273410456518155569542671199949468203315474018149641252587697527072730227853033852340718499052064242123728454938785028066598612450280867059850054157678471922462893377477179194877281310211058024653202553321956418205095086023451522734680215941721991659618004809490248577213006558933790089898785037610135130102701099535769239893845204616508388834828473447043971903877204033130935289467046162631849092420642098371659938278822807391165942878466460543590846125274384501075832874996787598298236601763084091699273267187402240111544027295904197935881750645781101196437538376036719602133926744232176642409784645620179101046114288692353233660853654141032326754939800766063500813049888412640291188687179935736189342978554873519634302484931304062619113887798649935761385436030720809806953734668834414909229649514501606323494748721313346763999116530012891160906167757525582996418993046279711049168622384535963157303907726960829271388168519269252072571755045810847104087969441297433362108021998061855040342135765397510354280479211528329848584061101738777587132448420039403798671378353565134950377328525371415438754675307568108946054549618579144421953466907435630617217138906727893414275370263785058735615291457461649548456730505360795218080120897205845839438255102468669350716511341982045373171610025530733448292969283988735447853829447922753529221779732663126425799288618785919914410418704012523202337472471436382503667511720397211116624451936451609321867107142676716376921206740794546746034080412245994107228930484249669720999914320563657398012195852527402400244475534304056143336905681055229154879270249359776140729122320962495073433535794005381236904641968268533802107712674473359284219397071169999781282148920929244211161734840774092980556169642692758226319606057356849830372405855154271503085461642703584191459765414293847296830846403393816426421045899420539891075855646953458716194214923220982380497337042881272136382428468060983442832288936964438172646844594648591450475543847251367607226065802687744649028780507665907797514935764275889122789565946881013753376788958759818154404042240138067162763326181685848772673111799570738957643535165865102119064018879689825344025746682384440980373378835783362632816060355926516141513452531107676852860631062485689629688106473236137253357163887568593486965669226168151471727883090040073765213816317081200221715261589473440867272619821473613641878400509647887010154776165166328290513557815557711403431127768910929002632998079846419290851247856137034581421882401899189458720198209920068170685053898011027752774243492959311361845625822155039789432254896755578755436415722832696426698973150050797106335745236953394524624032498121277782808544470724038605635887722290330155047174230249681404924352662107488371540836418205187552096091821355492607804729349131510498422901594353736518930456721717964696401419785770464144871654628505491041194672497178094701233683282773006949645586169182826585198539481254737034565461248809865996864072739202330093379827671691837606233492087033810470898345631485043776890398496563685739147296887117190494916476177445055745920675807377528331021464836506035561272253311340774841727142451162654552697527346859595902571667444337647142281945181260420464728088467716249946377598340155029784338828625645222156523081291047333235709615246050514971474610031166002844543420913155921641522404660844110612039511838542636596517935489668746187573154926455855402677831549368510125639903349299863765484773332581743970905414661265193609505911151999436165137468547049778908531126301272424111133018059774716206444478278102033202940981218735228147278460906042065966974736969385610944121907389848257025677524526267696757646285108501160695009928916078760144185596702717626018205115474903064063484882317738664395302238939537510062178080597557286647788893918373558542122911295419906865624984133714861463692008623392379997294959788924562569788582772106576286046555062887841036842415428832037369063020713086694217682068615143559372565356004115474082683131740755821422501408431242873771141615453358563058020473351872821430040357783433234136977015600307623678523715086104584541085152245214866221638763264991185291655682840875534935863939774102450597439899293977816027693516744076418928799350442506778252552374823507676903211050473507231784913093021085437516481011805897559160203860115844036586593539550119565789825818797430277781092076879879241648665978156163069180220228772525782660955429474361478028487782522415406821508199785030550867684829394054776081671947070487122706009581234753002683626626665644174673381998645612934901733977548329678854207710300527430622339416669308875815125364301924801442359200865329888780652681309716481699658467391042466695420646384215992050731368374117557064231667139201551540171364385491778133297999429183655694513539454327776948543194049621796017251498062513503312131479486588366630692135792466587020037520766869503174734817252045463121651487337968966753540690932383783111387290156300561071833482723926156320672737210448939910401103007486617144145937025112774965570512589733122715923416124106740304455327505547720856592437344908005570001590903866453051012143021071729269974240926221472152355923645225302627576075434576742077542886394837596513027184468332560370579532115668887425183460974227620404117524685825140125204332838160889528342649600136677201268365427951376750321155718855125922976782099704693722840918403490887375061717832672458765166175980514985227285944774087680565132539500541224242433029041738261277497442269599815083148698423526097295929580085850381914531373944824686365530883597579188778965050479472426911194952836904325533839019175411872059009018216899181284795788863200734662054478194267084911747902889618928604451108560761003608566769356021001158074668428523031253755055648793588094130914530457700767017152504844004759918475390671681806935653040134642205989479925921236661566430452148540846826726460677585699702285452883792268611152515748549664127112965885043452231529768909349705978377583348598349354770987797792354452744778816657606862669619200382715976013956328018538647486543625881495682824534818931761637009191328598770105282232792430335241818690952230938735634656441658685143669204194867294344629930510868935375757603215524634643485527003485210852203870217361220611898697466309808023807404471994162346281627047339116463115401242291977559701431293721505680100735939710980607162230644341212887207153744850914932717215647700568815407823489848630077562228265221798022691387050207160174650167523889063836882345358952219739970203204013126194119640711439023019436543555969735054877824193412783698385213628824551582685644285289162839561621923276978611719745454321772545490482878671118852733515207905971703305842298431905402295429485733108982527569857028357199051910348257612278307564191448420143730794911637989227732384817109749051238036797750032019992417529541689990820687362623997510628372890222436348191146655679915084845830152777738231549917873643238668068959561056121353115730459755420575467123762958923463005667874593683259642212151392763834814450766479842235839963742221421839369134800888184948834051809224297566397646223051042714068271931757839482845987436103850838424585261860637513534566156018490286029636713909483296166358128833531016154848503217611688279069531268442029450737622210988378541391261243669181844269082940720257698502841925832603043700537811557782849677690371924298879964416909865120160634385591540852434645443320323532899098104081554990029271406548949393731956550553301826802294047341187635536911020758711975921964054633290008960753663257189505284867073467592893513138205507777916184574283127635210065428740185495375834949207582632839629001859928231677294386276030950679946496008721344560396933002544444700626002698207077780900693529934279926855765261004070167471122026103626586042634407769694843919925840208689283553417133534093122167557957298656286853444841849175555822130491323068314524987310719476267961218289836080305257602573038245855844541349230209867649767883760560207970168837285865546099910458947885500064698114197454926628441469847998674618566752158266275212726379405319789224372627221702293153277922001302210507755354667399493313004350820763506208218071768663804782153406151314138804924586653352886525027213019188421603537143992611374833611327495686603483573467395378188996533406584866633082789734526473836131397646717921256603775206239566993795195963427083385955106820307598780096827002715327125575101589412919353992933134796623165600388585579469999470944482107228650844424040601238670082930457533823761147652614254854930915196621573344000591790647226961398280632356355739573542857032857962462978686000961207685635470157641310449914179868025064467291957941765383850497669266003333464211291885312260644364264018732681258575675916034036949977700516514732880762639955763292225000544937302314428481108618472834696817139643738495644950000930828175636332545490457973707296272520516376511543453038318310138295997826961690479918964515928158674058988382126677393255558915177092328596799729940356781743788060180700620097874609856520176207056351800067905455220092227363503525104381507178323062167872611891722670013663029281942974988989293519062118096819885239410058390023605075708202137226718432353851204868291983222230926505378618653499939271906308093633092675074544539660894901250586514866633657104565644391582543522202753232746422288649428676684773784309231393323847347720163390803295735254769168395596320515567736052101100392161654676395658321183571232033256923316943519869699511303391007332723704127497102874810833779926560998662010937676256193773225249464884761079089838817211565117035883969672957385494100040151359361244429812415033321139356210581437177731047898330983044704128027811048053679141507296811925999782890317159263077364248902170383478945675319932372022963801527143186258785875788264790258684232986999365469393915177913501532140516298888364354758333801538302757317193075694428298761211294809946062810789251036687832867994567474520917130133214350563899903563607754586774905601018546134310063008156885170544760502030538423957042282115775713136013109100942788249574414271115240129002662551926084007434676499762043674388538690852804820659267539248837196022598685734381770428666350023016330917531555712121384111919372808604133750528356523051035621753265317440198576683199488026502399571914369456322842060825125981910420272960156463326277550391926565126102853045454503455836136688244454685928454711596299699467599146550206015318669733770403725138085165714132162628048992664065042618029101444779548427132264024902875269642675420375282256130245870552889307932929467064452331263943432241636931812393008956933120853947595104854724895103389390136952604281864338607535093489982532216124234270812088177329563410294247757569073739076418276262507591476927671146207829863755497726414262114324409104869994448620942323519555493930465704942626563199491822484753169564269147334686641592078760876706163449066567204666798339785080409439498564389141852734591655627673890139809724260137141229275955541353073947082052255332042969712461066683177934241224609738432035209286290398738367104377959713982945330448881665150564142525247408372790157552824892555071681574718415003129502266133589851868303040112636655257873227055600532399378411906037584500023297498255037470572994958515144180299001802000860286789381014422693263081439231491696197455695362241962145447572680976739958933190394030053865755259859703029678124285847888827857316218163702131236975886813717786339181107601843095984159683263351533195799792330980300035564309961599703221822890946560414764255168361450332499686373501460851348341589222205546925162635558146440046386663645622606130843557591801464079815153366063920710401400441527690563890922404613369904501642468633872239282928161748224049200184706547747014825165785526053403578679112779925780646777258407404150105417632658009912481996147847593604248772610068233598147395165782325178229752850222296311242387277939202601983211386200797143165434343143938080065978155510447025789449565203620296709392859526084475522623350687794672275273889314790903937988934856291337112688219466050917479382937196344376993642982724948414942779225581658341817655873840724798660861839629551895777912462656793055768074226176879168676001304249871606037021711887416466680801959292386380947377832655114994563581644184309942804986338459897469586974127437147441754376797765138873790136763817999334353342464756673195421928736286279357994683231266698271442255170013731771533890894178443556352204196169703350124875128928161297915177483159886492448142242764275072032303274208208731558495653810105157383330224079509618693367874689165067137201140837924194086806010080070931021277428675051052626770177990090974139279485596848333637980862600715554428622345257776402458928500646906494512574452166512109921228941024644417383106549132661273204713498792674292998716423545421498083808418676167595432240674797358984768853807707851056148567645616375638500862019734177988454770629257857808223058248707006265560050847421591216862001421232160339468684979749985571298533064418521051511121712766892623718518716792528379785699841069602112577412172666633540726528231631186546429071861543734522878427205199272017424549975323238986129280561966600325598377037885681006788379364591704355160819686560883804415279305618441803209682175279998208209146099942130622703533955855887017826181807717515754875854690512521123674232916504303706728195374098579451767301580498900975788399342478966670505351272134615339546252947142922110988239229651755970844209369679899618481272572420409921310155313820170091328852011001127737124558758527178471131180975506747556502344250753499367364410794603845065153859447924828622138497060977982163383701680406086671921993141691783637493212938195818140316575219575444160027788325633573727255183123575683235000561901651905197677574960085406204039644708250050800918767498306811305170986161675148610093955041302857202361264644330217764305569573162555194048775095640821805567772035390794759553952942804377022700503529891810986300830296819079434526036704040249179811817498772823375832329092857338555026555692729703258941393836972570826987829899297293237449273959769794739388184429405068888116277032432181917732034386506484126421023598151795702894985720895635071133170037551763903522613424633351599277842692195374135555502605553173286061508635269760131294614759933756567290753473668477800388676253011654390348957148648145406549503378403922741928294933929915539847983084881101904224260887127113083455490708093928952841295202684716291827263754979755251816483822672022229018629289467717342039290238104099161222863242804117356725257074906437595047568944088015244967421913621015619187428834129904686373503889494196946718522679993615516716249613564259545240952097906718027427145227024185807505881430417171858414891972713380849036357975732472825523546554275580243266593383923114320308976728487653569753518738400345482826580788456516542626249735790890407630556905390556862403792569792615405626290434904970042622292582224810033542146290827559480486076479451230147198914948074220118135001500725060027556984164800181007799977163188375827366169497839426088580584205058708406363879221190731607174383228409624974354445604682103095883049350240158321646797361667883117677441227001737073694595492198947078757056959058776384626419209583548216703614382594047597285594632749351761375085899900300070537993474002959067373758455681184193458166880950995434997234184022828304753513394136264909616518699408581049967461828774724738569385806670642146424039725231224720059137196503312878451568752692561892912719335852437943571482638557260383154236391511858161711614783420288669367372094352772961740328904289089082316448642809823829254738365752051037669064822467707834241017355552594568147733589555615696824668856322588561057649304140914666520216736048694588056762556009324281557439083976858682704547124478764178513486859196278855916661128686322712906438097992164777330544552694541304090418862104841633745948601422707625721980680821312203434117145674248469118923270982602528427120420057618165895167342596938949914767808378896792534806252315094022331368319462877091743589629014495035328415985105054496645096862960834560047941389187081086227623487887794666419365426105341462083097262994614776362142262652210303442071151854522240216659034536275397471532433911121320777843691751966331869859170191293516984579161068497034219814252311053716919932351789002834354705316402451996494732556648350250267774317931563620409723113901089503940284405504148356006831182964316089436994701916673714918792150439059315752793312193059293515097903579807846688330826102315561218256886766377098881013869535358476979530937896877197936137821294615155780569175597277761823165486160340206900438719021060868787623687575447325823731971905099556486892741946731585136169954255106392704525104401336220503790915006370972244902235193147391695369213024492386908820029726039231970806757508806839113524714341831491288758762415496928355780288912638633366457263511069097043589293753827447669428994295997074284304619400776106178977513777810610400911737288835058352514906976581515729426309228460315339643696025825211425452792159343151689145164319421936947475288542875230733641528921875690342219000956406403538272830529806419098433835718076047664291255798275524159648183852301107636982240671973701791072270449945259711751696015508662674848783712233207729558504146038620261765789062633646140234128994023384524834286335151453383491363459005650394789346589098405932140480855330390425644264469248964671947826153578882075444778077052556211306312826912715885845243297279431945984648199441460265200507854107932572011563031605504109489105204358590830311445023945783680299092408756817753943987389182684324641178019771177179055744168261616634349302949495545885814180126781446702886081735201831383647035136675586871791457249222146030785230416094271152218347770099875458738326917250180834997649065058667434207140283905087633627672891784062739656238069262894722726177566003982473966139453128330889331793850247921538318621681373684810770368916105113932587674174110658752618221485485546016572309721839845319335591647174245950057246504252186906397403508624041856571509221663900244619512229245685465037347978982662451609128747955565788602686440490540998198619279297098018329537280757120381785384981008994589624182761411435387493152836688667600240610882319858738064322557281935268118783101774933932363622786480657052032639713115210717677030507152871234616538449605023050508335415284601594999751896841401739916275692150874485991747218176669947889114790446790135304330913335956209722317964290241217421448014156309660753815352234072704315364515586605901204237851686562357037434705122486693807873452061159537464828706350888462553763582670746102467312897669802877426473847490952827599789256161136131268420804568476748084847570063929086900122854971081213373507447978694691805292430124177778237994458894634491756778706723104469027316796242728830290252768226064264701049027167167584482371482483352557956839829427278947804482329006186192571021108466348923772075241470791625717336607321992986091023768398195790291610059660137675916267356092193524808416535664910389572409133690537411206861240423610716972159522507499264744270217942060502739381929848706185407807992008229267604063731253423451534452737163597421826778219701003156664937672429662338239757222864477830653316105200711466929714323265104405565332664186367999913723530909298653401301320847455753946434297125528599412802929175733100036143957448468501392627807794862912336182001237771778266926323703914867164047058085473783856734023954276823515568001053626621101093204679577323003268000490323252888884748451900623723258751148602508077262030118632149578214218774449452863499443673285762867297429129638744344929814733950464658212534982773811797344528227936371436573353663866125909181181151477559815867993779027586034492673549661607358189177299383510816870055131812308163074082773739566197269435567136420178216065678136837243643654768292529704078023332181869153884906505824579930407717038860893535153080086216244122384890203961670490834601099649897902905114025045498725603561955705768375738925641841409516061685989396305816917906221744986753144943650645205646063389781434318109290108576053497703185758016516150083251338204662347618606524592316347257612939917337336940063314771121524179812468730554677040017627211691341659137965398819938748206302511026802706157160470024329196470051986834427665494279946540154482251187894002444268297732482782167413152283680931339085594689527773221691444776733637984042928429186966406207239769598289327634010104159283663089964537523513632004526796460727033729326573432064832518476007630369385919741961054910238799850477124013340438526511181610941544151519229922187490660514396127771653251703312702642923523576560863653073329581099356390770170038594587937246884490208826166823599724682875721727787559486986323228145505090911766405141206759343180967590756024244675121992938473524042091725257774738571455964709520035058832689451482986489560803397088694409821538763003309697703574151277892375421317208600393202339228607509684506127577127172669640033151028052443828725054922124559502657093449909802628519856322563906915722010943790593875871163860586431731683436886275925361129498600891136157199868089165353312933943177926536477152156767646765108229915486779635826631502037482082934400135057390769574429991639273040235368755655160580682542926082568940154092101434049881752636813022128544353721458615407757936576884496034838058948949716810241032286170835353563936314662150423336994972999739849993660095609949502259017625187912914185728499032991268252398299488735332529302655052262490535588311005390489238151592559395957336825904056133209414872993561300741711177472269260480058102116852977473487683690068841476895578643333631269964892234773778886935609755210146376275713016369137327476729941540290255414987396277509989782684561860910517705421723148527358833110936506069159389903735868605621276792619420706811010249367700596299879196243107726284853694692472203361747543538227500911881162668168800408521081691559200936318624434160266283620958091225120904920189246215895707431792475069377288068916273342048786400921106281096038648531467896735361596594106025858078012826139133262760255543345256770801380342637788658914975820837847028011747159343259572264012794036021234856960213398628801738181155498931626955831815334408339929818890874388383158901286359583305016185353179216888517298859191835915847166939328328978281675369802333750490240295969879922290732559466465842837887270352806417953220963463685434116388957944158593626611507368078021747970209265904999539410642826117586197716182683266158292874584116544339727326033789542665396010936958459611653001569532909077032126528217645951614149125499237237527430973378540137838390288583499506109084414300002007766646159798723518982313412501922997187033162602238267308764504745158963532644474303182959467390303016756261059717944485213550730781042769029538970164055056221655701748204322678423793757814013558687676669628605055489488884067061752526478041650370223117197366070335164463126575540926579613945070906248266535148602242760234556356913877789920068981463719000019051232430677721695865642888058289583115532385751111469204244677741859732965048290562977428632603656718128666057061436674277022000077312533517727679442554351473586469727558399840324263248282123695377449708975645610382128193372843766829320949744299779751986134278280018831573822452308750795203730549267170529484965536660294479890708791493068122322765832441797187526426582905245219288065006334588672415414700166597438824493511154372065328401349149325023654114036305746314308960668383519492403566064591693574546469875299860860848720054109269050067052884926100868373662892688778119648519593172387960035370429127173173594421202426516441540559987592108048052481544652454959743332358795668633321295679959977863582243627157481654701154956882529776341360444056215520495346117896947315757581275747142871608450047162709887729653051693444572284585668008629780069771272869489761309569705523962706903015759400608883748450132691174827366302197000790119425665378660819132992567429576083412458936189835607833562483015869861684551248777232709275550673995935354010764532817263384497663743454765158831995956444844096639633835094533651319247994339193882525813109856650453733948421609665147987038255954244878888158871882476145827875325407190666540323824730640880221447633930858088337835694540444980155516350269331876667356026928127965440767400167496226661584638430100022732210570988770973130653707848595864231281108502891259557045023209421656444543392131863168309517125313873036345791828021233775460928086343568547496943060610206605856052671042675053263730808568283551126108873276409785948351743897282017849181745020531532424652345394394164329465874424662401741874738847196274542613109109398229701529639056687827246974593168230835298505941170998276681991000023933063600776979734767378088315033514190920090353085985881919328119132770295620550368671646010001237427410181879155076889357547585806415484716076971697340323470714702633872258960980698697514388240152898403441329327216528044943447601585003705712192811034134613603953161885904448855396407972885589705003705022884354724662537004390672257095455168367518609400731366544955337506922384148189356006392138622350524701784951663221546593161170310371451477539511879128853832351718714515534387071919291871111884645965892375641979721083620689388194642902659145368540090557439191187300792600092109696515787285495039872567407793533647527929187817413413492179379750403326561099085066009696914628573402126655739136930787691050160449080989554452571485256127922433978144373064095690829259797002487049367404871692992230224284199714412691979735230205713132849759392170408010840186864344140618652388192589605554016479105448400297982261534139553314145909771662999400354714199136733869955074380250561211792819311471358953590180869149603305720414650273538162032120168700517256141923596127721349779754571605123938634328646537300485917734814056337114349189804188548822735728570997751842878194233189701377324845735175798876200653181216939352922998522025559820735693186194047313218907199766303591716392219765574489552582950205116295354294918788059572741368762535394380033197853075165505431118040427526413397550328493574860928889478591085685132632406447643044795502449810169471646075793484611409033586377126790706470940476599159168382610012209786811645669960278375089681197181234770323914366446185439126700928457402815456890898344392260030013719871802259447466142464902659110507020596645535286083990090688561899043631741337651292363747294310669800650778958343828400424290663811512511611975712028832511477368489188950904755955460126182551161624822498329752890933551770339860264228452636746659632686533879735793203247819333383121019201100004557837601049346525812416626449149288966682992383725879125624273127152462610942328558325098968738272877587739253801604390491323336571460539877787171174878109571166325565343276043337437541209854450572373810164917375473733527036254730160188414234934205166054662738743543886577739605003900834487255000095655842308876943615623175993584234238308237530055272762343464800998442004210577462100016122612304215460245102981047058287357654683689116650284510278704377457254593080620737473599643996306182921215044200114793050459366769430987152600134621876037401567414432023438496829238996097675949718200761780774198543856433956912678543335152863951591777515958009714469029224001106563916752494719570689186429943020022772207292963240085020220738948531628909528878364648030332094539045106351673354848028347339355311728263907539259834361676264955150268300004270039466581732867099190183938722622462466991737790744001400589068258617949487966033844142123525715858849159211078270464980978042569796886443942576726301245810699174017336024755956310707699488951069835555972716588330776297078986851666322460250596410377715227377129694951738665835587985208563948750083884326647292292324208794671294897954465174810187920806622965761361912167213819531692547555465480965644432305838368215977651624971410601755831256969196961256059037545262529436306769045813877743075958438259296612599620534052414098339992527727197027424231597982860703295110609306768449406439453788866233134709854004484747031274404703427396040177628338997004035471702923504244195166778209916288479848951879705559565283085502047561618198990385193842125435619161325298182402339669415707753107972323690586291812962751527451442356034670978361444289186743076752090788653018601680932018038552819465672956790108124753124223411956600204777758611231119667267080443656909780840219567396382509548904979715349135289195648083906846929534910323057240077889121933758629480301921579678454363740511792539802299007755999263080816031210265759745596411263306437786225601465138443909919992529250347767127008466553474142309852477758332992159480382177261851744511280112901951669169816015403861042004686779696894054505873018036762835447998980114661782195803776245271084652635624791745527122956754967116271524085273002363099153464896381203769947247322375210612526197786235999839402499804924592203529743268248621534800356807121367215769283557622254967158319881002954581379590506318417957895844927653882300225477122639211379597627944617325980822203076187075359974928228183054145083477892299611408538876734994300410905085919698818120071416443886063822204223826026151870640688458518132467567518688426784879836127707369160836832448327780950943839073688883278932567834448171415641732028552577914289690261031918037943802928085940089827766615865652777000490256536666399329547092989726858168853090293163927241380821629052772404920933309231105102659351135370260406207846989766965750041485882037409434302854990943320522062426080940339359786810137863301500232189544710834710200837355151364394054636383220476470269975333354773655098903078447937357427176149926774283626965116921763149122612544541721482794660972200416456597709224777365012183482727892164803891873866447587366902555509552006547800018390360197494465903017607804400524525997520469589704507782810092789828971923928641181916891443871270155642424176815738844616058055290647645379273981209465592215035655186161030561470810079212923202933247993293858658907995657127407197512399035819138593506390234712432383944883201856725253896751168348054705370882033713971852769000117989950110161121420191134937458361757558742888139807499412741376791715909788226708446314457958297284993463972704349514629428266043356223945365041190373308682930429858320380711875493505855526926529705841825906115668652297579506914495491132641972294793640192246480743519053034653182086293040448157936836836671821187837760189874317428441061574202960406582284284191565741475023648619068771766188059128836291412733878581783326881421861344872023118687291272563533957847506061172126560346426015762338737768120202204734269589860130004817950170228094655553629755744836944335858616916329846674843741713763873802277128585918952816697874246697611044466005409047027168888888442509945184575419222376685289374127515095667616676283220767705779939152761835822144824720169804753097594879366469706851165390183794176638751069128529803018498221438891555992080792529681265664022687163802041230771194027824628975475102874458484543225363096153761082932238693458044010127060159833892617532464199339366425187737717476452320538170349522633385211405128061625938714274438424983218595540177615805840175753528777713297651472561505869224505170400429857222080772826337078771641512567726791893576946888180208159170317056291964086558716528036277814681557275833037770401502389370021008105434776264948023273276331276324819846405898072794960976248902094481763470650615112085997213817100373408336942223900679517767346550575521081739687335643882527141123117553289058571609309145106601671863702902456085050226048868665537223218699716231267048156144442683728069966732928489328748324578864609485114502524220126165494070255666145913816139257353484796784344000136478341314235485191823512594030574399149954071578824017431336750775941027111162690385030042316625768251831891534361606574843425848224946943851710022019083834231638172371842804977957516643486426401479120130123228934136848582344204549527779823775085117464628368953602863848292271018138157435644390212746418060620702225937759022469513924897987455314762878781129987319107436811113562216487403845790847211034041675753502648709287123402541589190245458792129071076287353632309608240154088359983344123968948134271842903163064973582335013342422717026429568311040909432612723694583691013099737406770906594758816048093575708250125670408079493885991632469635486791599037245066515470147750615719522453271871897370415357416656966480304557971863381847094554265200399355588399943456438666251736828859028211412122431103690844674718338781464380475178010502594959594794688959103672548813532928861845243479682526515828315591117690347177845982745715678131419165821263975535936144292691598318210496023211635023333788994327527212611805847311877237956561328954890759274002451981896166622045106113972792099813272079142640771699297483991872481940895723342493187044195478938507080799628032214688138569801046932403392755500909491264546792688859994996856292378618232192407221925667055992209289827712280602875491409525164840979404993798010159474670279779822312976433194874818572896667952725686709760070160963437358349783187591236664712643512932173766954976500933446481397734202717693952831956909810211348784849975522670040149438986943006143683111065874589667666010867884383290638601657023484991714333219537689963304942056222669757045628112946766653933869200047425261002727978884570532740827681600160849302181411683891188553857100126049792944409824356862397947423439587382606702009315220856268188501776522606719386466651450158024981308880285430697376792281869088822108781415688393617538315333628505612359263077791370048562398164462431239522492557932264173227964747583637832838543957184272113438221326400898971133019547538356358427396774696271510124025424169809533096588009772726038068281894411406646836413185445161897396643887907898622111934049311177337529518087790917898981156862298665809084896872778350941620062889457284802712713923879743251312160895444327134085909155210182598663742183583344434830363109740481129904817215602357489458185288658878655957241449196764640017035606270617532384503921497577658132708175929020463909742078705622867386926829424641333221069283493399832353329994027698563977901173390657957026857486784053213846198689254254862737935339268150163667774539902509612041270023835121623500077044202799508027643949363572895199312464700402973976336375994348573534795965305419865501226773662556519293629182942719901288115979345319369413811982727529754188168624042097266637846973183281374713138370774254671444342997557054327209687842876170721709925006237765361545376781025465891361967491650962335760221284394816530229817255504488379787812052947451100688206334832110488486331725071218724839823632869051328834451952846026283362053990487489768208136753144878242047016312368079581061444815720702630352586947417317063100572727688382242696521436902977968937256452537308405370370771365202017399142527664491157879980147531918361819990102099656928436606499930063339980366553289761963057280392172754997236341397184096354902270146421933166168050217060296189931666199891734100942207154421658759492681770146533977569320713608751679822378664176255342037421348100332101805395578629947272222945465658399231757970004005677728604599170765271541320470580745708803742976297290540807535208462213319002063316175289847438840899510883318281351004030060503010188001259528115559872849133077093865774700927464042502526733184356430151821441145081160074240320183140984254116091955016267150956779564496932834893225408248444194474077045944562610596878880782850243671196686193109712953078307446942634160348927295527988510985327324707182257619559376784636038805655810072894861774404174399486899448787637602802752546662902578208362402946698881116476110291025216143529440477789482184616726459339597071676372872862824074816283272932842130994139852955963981814063464270314922606862404913606800772984037514126815221817481210988171360336735090601113736651718730942095836406531999527786326980244763219570248802843465865906726185810981481050916500485977911833417169992562787907031292061962360827894724391059574516623568490245181394719570011195533734519633892192197052626921591352135084560829291351812740276927467793792158100309417279174544629595561975141149802587801647910439079425399979150294739665172362387899341010104326499066312174359268060227491639764713225335108768885712598679502648244740622987547374848337067528898433453917944262383088346800450044636988469244522725336853370834949349546248479965245742428090628877921282579949928000195515357655739273796704507900034238237261163106663501422272533327250547342069734690920093457061882170951912850068894487464834194719464040993087480355810528057096453852551105595659710453305861096225464948918808258591617785071244028277751950281227772556996419804533416240717024781949652902827659648800758218041271189356548643570396595545892190253460781105936570281050507175856495596163339640444850142915350814353671199676754478332426491633848750978747354392465303349711054020530133268408069735185914160367731080860398948931494982341517291481645172296823429378512379132361224866702985081689419906663642178260869719822019504134528882710099562153296392313208807365407298396536528934820566118326400070672898516550868782538752119011647530300548250870472879119561535900570517177411759704325572443354762445244705264245362883593478869879379502617330162801068494490842457665005136314665195525692545585720042308109607444105940554566593993494396609374547175663418374065525012762674156441680626617890532953971167578440691783701843302027863871462349349894460733651962598767472918480201931830028173119711439150744455534414625204770562319674453696641948639471316295873992746134142873883416523353695863255175663145736461168808216773908241908627412317651228277593267463121231706244905780573595180824039322128651820993474067078009690735026309892245281960961111229812032862796406015681535144119919588115030750054404307787685120237292791247763639891673109980222347128617901102894732547107450142534562079061806572267863346675572673776801897104987177531309951544624805656629007327200273250554237422453287225858684429751120695736529196398522383827409804915218047281220843853238064495962590222347823952947075754115503745836186291922566809516071484282397002311711739063894789345842087078417888457003664932343964644861014666457349093054636005008106543028331484545771829517596781449536617977829184181410212150826831039326175775768860058505589892345358486406827394435633654265147620838025380041920708216726987754124560985224642990064087931212020947004541565597020012851788206195334847929242814268528788062788865432243986109663098780041143379138366925894971277107196307901530577244425813515987308198203181562964514366794808029169914416921255197310155166508948522714720572248534764065460799788013268098365427127987321965334919932000806356331169175701198031140341607560261550122134147373462980631899071372189960268680019468704883432503337512707611105611598599471422594377438935248135314576788115188355974039850476546491417946724695995726404964272384347927802234317466658932793223781922151456394968572979554677170119276492368561250332980433796618717386890709640577697919734374532474771991957465336060704204985299610115879813995250187242192049192440609061004509753223138273335380067962051037999916059322278786609179923224618690676803102869366315821035240827014287428088653576022577949380794044554632308487036485536426336810290360683135968992812440908882727727544849339482100856987678737237145160874103060828619073693747779831961675453747633509185732146135654411051169450639525548229578897867047027510774038987769360013449029276265708580555301091493435862149191970620970849408077165274936856828227473458228680036055941042271892099585682701202163649778906054564106434516490011220460415321982006406493868727082440125804203349627369987559144299711024416194577222061723765417044880601769812446620956907697784373955843744819762437278982429891077077805331333522995924443601293050286732641532512343185361105519666842715197945934589256532690582938549199222375800026388361023906484401952980789527597639223596534186589090371821428155978472962939359944320750839723982215954484242512611696459571239576613074165056510872455529464228649219988524148036918719212802584843977398590775725268490984325573326572807468907881177836150328273117593349301465646106749294580974890078954817824520202862975490808435118038724707790665300832460102443504940904947782105533895299948221186881474107858582087348089606916395231878420564902070202424192685159877341737613249245440164345843402695020910203826449591261916884937212003726765258893424074188255152285499817096545490958656184918804447939220031197958984605951251920698753600610582365144475848538530162562424606749659465091417274312905074535102733871675984451211706753424467521754017554636048902195077668100747605231937893820441670122738764673186107440956648680544462095185065131209837102551887329603671551754814556847942023682050613724774406794840862674600121102740724530508663894240678220027708885915504975600594177255584351342764045637758064522537128335806927150782805716576206281581937604675878113734760548727987238910347315398761015735210381373386999059833814272806750500291943971571567044445196988251739152594879486631052172762971880840658130817302615708391349671503341077046705365861889588368380513508129453557832645968623448997510848326295344266175737901960699547735884043320822447136937290714701483674360890126325519254543877597142967347696875060994973755179937629079851241746537438470443236788076522039335919204346993462319629387443519720877052105811511755970806442126824476007429844941466232880253672304056242864636204698170203496700898635718449074036383579252293668995520169403764814615184153033356385970848355348529262422609590180493331707250562453495747787890572921983275811103463979819001419616087456410662129886612778618645434378737913321931937915219892693680742548337965342827206106222934007776395123228126324775074594568739157130726280102353864159803705768557977845866472955639368139256148453257891120059141438414728303667293216665645088654412361752009364003255344398286284799194726520223569743078342100110975661870352179385852035559813586651920761306054899731158029990341170391353621488393378249676152704421935717687159473269315104129666781292413864988022247074584486169548818719974200145577849789600339418321284718855299820159926875037536539001636946515137132195511562135583079397394467294393237724512802762221092271848159751865903058728124754241337980904697588426134438576255177516928829309076036028425948983233183541463540060945377310991442851038869220436440515988927807939235329811882441040207759154315731207997647113642010808163919929518583083085286344872446150685983206413213767226420302041831365226689922199649065451812813443573750147526219309533780312177804955095093272315750372429696023771460452996396660079846490381306229231803595476411474185605887702036605574332787557047588169959029773436489955211927412288009114411298299323722826484303104547041322424327733098215754065269709641898196652440623894244371284399130144321400519578637348224987358788511718144074561536993669465834241842059219065723294313928439718865263249303407468051007696862893943349698319998000474822823370874767505639453471388223654974904107928659416058557825094111875403235184894707715361407818029151120257014052378480529868818346027536238104203475502105538699360378945580467620110931121092248955043151117656150713112134712306618951161299158729701198856065886587071532890674974937105843438705286170894276351746029040116886241480374378998634566593925525321072766057309216430951192999671979679115741839290618924069690412372998329164200924466828581311596451833486535783682181026533822661119481105502330991632875608511688129323807912501005759268285358176462234059852632407481062629635775952752881261647006830611365639129658384688557989378399511050912384934597607361711661339196030977008311766318272805270120149688258943710263526784762417900934712258173020841793154099401631802501711704981357604847785108834944072758957151689467887053276195291841313496139885487725647555691108976460835525121818715933700809656266666436833965205054852991404384993321680446396747434401312108859351351606100717898061638472200574634526641529008593325070355537323913964208929967612696457322765469078166723353257399308532590843464096862753288701469342899887980305628311922567155382813242460311572127455794742895620157534451583539697701503995937502064243060490800010895072465314815484171746290047595312859910509818645314879471816988009111970446519909247987799364883131882378905430868445070011856884277710757802200246805511958113311389541524126266953744660672765037379689093486172806135595006528742975154518726870561225595880338037784205009973586164347064494984752251383380873254017825827390662834961536266906450325620807038209860410812793501955074219712400346734979059187909670897405850205653067659304433738275658901922496285650009796842056304399813698486675677773467615740068345871749115493652172932763806166250476350664865203087159311500872259505767753700709091373990080087617551810260792221209776088943962041402840982239482046471874767638136999216723533994737442259140302889258760024490901639158658254081178173312828217527096831792220396211658934852253356812617433542148969537779456150301889110219316423266599920563274222888402517680530217285662116726079436173492860381043747852451369699342582543856979750287747412380501114844703729872378108067509258874274659419610535251766643048323134121999561462977023382840604831757993931273734751605294494763512711913959966553621449205296637847740707589248068429996818707248253537661881388473871464483377267988402109541000594738415959749252989963517161665003236251439951492898707712464189733176296163457487761426959289855496786546025872453022571974558187873040045284010175537898281298566417160256011497284446845954802956093390170428957273030494674225896163038569779938974020197505058106117108118685089233520845931755658544355677274235509762682775801237746361785287404641688976587717898335155038328997656270179024799477142984150648029625060150008170657420926606259324761315573322131015336273291149271363735053887380534068785527718204791363025487522138870140159443213533552775930764941999473197746697447397167292733905980789982229097212765212904111158785220782002527606703038437386466132017423398033310351681386879399269237731269775058815149618495271765566635849972920258259611681487384162586678739453759603204077293816313815890182846083178085031811576829869778084847243643108838714851912278695353426962261546954187204763632665270220650356552631384597947260757160275291651212199385119458188927205601613859549695273263480776917327250105159563828139027309599388420596879509211607004202569944695767106324879437494860782309148429805184863248399805249316107433645735759463623672952076456280879844861863108247335637642959002622054965876366364271217772042959176368282297061715694402657954296677089764165204940989013199954337512294225875844415724612156511627056742735332952826755869793073256192093160693764486304133375387367277996020849227188214599644278946663981986016493780406115333438026733802244164831879273520260378515278229636165413370475408147289487637199460194417996730576955437369750101312244753757456808795934975016691019965736454837916092841281563029031772366054983475132873249353457612403199683166474651319826884353500295628161718792479600958739255521631774329498525278354270896982760227284658899045944450186497926609669320119338060785205937032510851406355867358361162926796901715407148507955125094229166336904535498787149008162785453931109507519942249683899200612633967335260256339515669009320276246520779333921312917063829279721429224640749117129756037488842217436806037901127554325989805434928680566284405539796022684552042565370518067408092099685356272133982111969630672756536438404402970730261480643895845277801149764988185852539661282338954700739285534215555317183658250957633267084250325613796387340814363865104733649287229270401009814737143363410480124895978804416954300613849167472709824945443214114895712567973083930493154418997880699423762597980382287459212530019875328752224968123575283080977071034508964062005524278583070834708359432833284286000633100851375335432982492792627419831020089948140853988126701388576900805288845208680859873292922654986072622969049668787127217148282821594395142236353540758320656057040762813992038830609799070215985386544280925320640430070452354098677410664844223012928645228796340726402145254794762317980360055852934615996210032163206302640809920141766197464271260639946821992634256737143478708567927998744301740566176844637029615760223637534880309096373346708895262034780889071265332757440039526825607392295464752036364335597754414899247860452909813156107035260415242219190602349379552089870382725552204772950627993835943622977072589551614277106221119938539071243754005658100907545693335857486239691578510885386511556363357640993459998559473342799370150538206218423029059427215792954305020453229806628026956378838519711896155867362185242416657720014748186546726003732412574736711438395312378999315896968754213732099747719027191999823395636256426337065513350050457202753241649370817205392544357790939081407446142240490455937219132016077086534937268967386037151245578110842719582896971157247911556766601311720507506146057294725622392965842688908272709675948913584967192813037228093678315475068023747181370483098896550726634915929664695992450836455804406371777551651937916892960222348186564843576560993140741835856520023978712047381620858367008018701753898040129810967252108240356869549623604769735611220990018197039332165325927070328563123726383950139681797769800133284912854979613372501545049578527945614015552203621377965243704862214154117816777091801362495335717921432786879162538701777955938050773105604887563732890603598538011042947762245516811536667304440267590706448874305943068361611685931044017168408167620729174715064058120419808810583115421271181974013193481887541693829809947970346261995318539676538396359618234185522407380078890858219073682069867155066878099686263905139274553113887010753337950301992808792497294093570902634387974075968685093782804425134590002450645014655058856263052452552379761113021197002776524308189932631601617651569605689488528135212246977393906380458127626441876653219680965247629689297332677622477005596288006176263814832644212920740550499023867205321344025975305532709704132352905024906224812531512553418722391281930479647542982098789582078259057571649518921135606211910243508904651893395606491555759209375877725103672156436879017624559157537996990262755329216476066004082317789166578407396093068543845736033602698080397869043840856352841849283281179937707381836901243835782999631058461061796593153000929904881572458965316678637863369008750666123783545452987068074003917880890601676192901858703641587340344482293397500540219661140040010957119368039981110836608478277203109634882264311791725480752185010527429302716779449700127051086138758721956605554274664099975348530584378732697341410074327262182925762718175601076393826227235638210621085741616962787527457739909585467347805187122755562359448886195041159835008936746724760881117477466768138908209029628635007757190402020278128105467364229689167583033437100767685024949011719941157099330229914619805648875702390028543482306442177940149057196508573869136976512381193128039471099429671129023351926690776207833296484535512173933680882390415222612039960744556988292637625890453413657130290684336756176891941792814423192629844923651564200729267536995469832584909045193128978310387879966846233692201577052412796261548152848703919939324730813665600616740567238690444370915142541780508165780407158650056208151741879524761502019193560048040730227393918817202737671562034125182581721460153016585729430729699548808178840216707568604768115330780850425085634753608884951403096970003278417711617639728064269655988885433897350004119105553966130270504655007068804102106184241275734266614677850531344776109708484816414082161909189724752867596279158380643355767408361980846278665059031526190829781289051869471620253142472635761313985417230931158481682721609547136638854985980065754244396433223403671906241796077450108488393596094789925426576289995578485180203131989594120878823332943178654038416289462062974918553837745790105007446411657316244528141640599728958896742367620013974052438828755634242397495968926279730700546623106718431105074601458250183952519535622297644058466717059522395379994468396033438229166462692928980437359663863435425685668359638955262501811141699748100953983850417041309020493867239135920767962810186455337198481380424629589031583063409956865938883391030405589207295348337506764577798251886184928631848276508075600483123106755448508537566413736902358226931989898676104945149539449941442008344453102923971139855786420126820026764394854251076946806206983395448699642692139989112991169813679009623991356598632626565429403042767899295731551021218069648847580343296241811291828266786171493435744022216549605733003531140412132891916880819024790552441785622313356987850489268685151018683392917515182784798053202107141265669807407155174462309429635565369793987435243714910623109574011680637488191117473621407885703571410027059356341389808676297599275334311920121410319082619659014636733941480414349872522146335205225826410360025045121515500503630429681800978031046378096290625216635788581817009458367689864654986468224857718807496359179814355186619080812712448181822053429903536548369600938979292207483959466745035806589926500029344832086233011737129744296574141741753958741804039962682461418861206189079049559581414769815898641333427924843516124160596138725162352621163737516338826890627163079111103447811008081036093046667613981227178356259223310613984837342173770942507706572587305925598802907438711036216888068268122473645444848287340070473017058268755791948586901159240303741311145669284190255830661880126978669957065746344988528626263224075150653500275901425542885666446142381975098722686993955191889997001116470959964617105185275547015610523566492435644066246064611135468133094898635073172843146226875362350553077337745601191755498268263860386834639887972144829166270444075099056633206257461744716375156968291544956746655494074149987571696080974034541151605267940315222805406709829445721703271590888354579742299171959980176005365233891616247371432351603528902077960172555526929574908774642801432278462789153525146173936418710365678371456331207096800635949436430446629181066256549225067258970266210702585479013127524901027564727725112473447724696628608088186517702873407148170963542407406962516556336423553056054273041093823243301171248658275116620483841910668617896437859342445070392355496728957585594645448597453133520507235015640138196084088834982343755745846089166550377695233386800167664564458378567310130158469020580119154187865341427760599157138768036309022349601992159561321183861695805384184100201996499029006697049993459035176500481948138702111113492590727799079169010091193239048392309149197752389981080633586876016846430825314574534560324997096152655888549221495126431319333348390693623174229892786847247378703528451957539199012369900904013595829920276776154755831293656171753524951379064340159725250205000148851463613341658705264234169877128490983301198771985494629887623553928988753032118147314373916046445144208512013745880162835137753465012790462445915102929332142986697876218826293791881583254041826000976658445307799296482821943551157400474504065490727594018858557399341139092031234099797674220874182457932312496877758441460141826062496245338236007369834753456152966645474227040637974415840447810062771127148864119718857737710968838436899709751591159284952090918180489953292185071212457592375614505156748284790431685418784451804537658080221496970940629964355805965681038995185796563753669041875748194150871851341169046984245309012740410171389271356000185803112602167313887360373297235116531009293517644629367824565049932369495892330318340523583327561736314346736628673397683034493396032275940375836332714198340385076277459854326176698163575992932721520344715252674638412878558984691969490076890139438635746364273069460849162401595622073061813788655364384080424823293010882547043081578987450704820058622442216858249416502861907246031154178626302822128660049758261802027076750441046554095207446979554073786561624343047690684871307475102255050892436393669735037726676749564998983187601992706756897879373188155851097209555954802692556593305730263399711107956451898331569918175588217694621398172367219283117183981217398186690937551680844846038184378433031595987718825886625445839001775501587258533957444616689398953739178549081834593453955045981713139784784663676406912733741418668107898719501797916739464031723863914004977817728124595374428270619273853560033965653793097206659292133181930454857220209570702150823531063929589035219486300854324722031716317046400984802420661169772429414764138431494645149308214388417136310148157412902185771884579124581017862997144779106639052370456950723660509705895532235746719136460731632531697424400885578719668592451673120307738195723548056721395338074824642413402986763588438344859062287441749989443495791206164923082627536456085331363220690235916113900717241067936283492572210223663968050723900490401862968491907963259365566615533784791398352382878814203551235980637565333128509560300709029024714645098197930714978937968213765496054814533609825382710804772384457575663465229479644351689465380447972480671400473895623337982547896638190657954055800157608592984838828875418399668482109786874186313335652133156400388177069908689879738888946978622795102187347675632956198684641896443578152688916856722923128809285366898355194370424895858039594550445997550056679980729234597013949161806156499171211292979561981560983393498118567152324028340512199474753767597423484644249759628649285039092835398616482204626738999985531997128162279176119148761293410848243012493366671721020987139593182032412000534534045424772514689067604440854930213798499191570312503643315323390673179041977285617345564871127034995117791818464643403473340579299686754813165784768290242897542229067943751766321582419909594667616865164002566760849758842960299927585390944685360928426865304063818700409666991621970418702503498637086298912792935214422284699827218714994495739172751925343080777117643488502021673553594651435176699483661988153237230963269697696816881027409318646694068688135678328804002191736097574354281929419957814923938240586627752450731675177204704100294001435014767414800126897213690935105209238700859390110138156585184145512292511346530659199780606986515677070191601664793707385932406576271431784979671011703837630017862525102478045724240605691957820608314516149763469139105773265316141928606925039259380362005527024580476203215517945828499829081671109391001266107813386441361309022330556242450060747933482491448884470827681761868996264995858198738642342162711606931806406885695768996617878678970897275349803948089800681714079306729012359916231729648803297104365035431371319089016867602139767377670381747905096000106144475043719302890720966701369444869054747265152354457853790398909845274044125032320944552458699005859566466665712745118820754572006761263169336161937297038097436541676899724072365271842441769892854112234248651121160587534325743762682081245494677457629392920346396214680543065952218350971595657674942375716670270437391987003115896283134306519747860870333496633071788795769745773761785610250796852450002021806032477717565672443942793659385454579981137326474551940063228543570660617927381268378621211128276685038829553120231520928413234940895951751992917336652016949188437105206860942919946266839674127289047136881924195383436115727964479440510168662012448325322769773512642150129716312270527919677324460276895949349096773292602198770466003451384273756118728108946755205717747308892319768873013188726636217913930628187988771611986247386415089944211650568119360575445732199209149095859301053405426776781701412946862955087683687560475726503283151184119257105869927230939667673748440676098466383384338646767131654726793491283144418371597569282653075261799960631890002075184025246137186116598676867549924342229825833422898365291180796319193640128112607736981289138114506030111882620876391790252071490660168068490975027794313825292197579252020878463663562315251918522853858291306318942834861153042358058316909518461338417837944034478758708067007370971919352851055146958518529672977275441234915143400598078500556089518972015882375462812895166048856897276992468445253438701861609021495470900327355635596690337476414748927281241075587599649759392003791896616491159132643957186260975523002831076914949753141366357859673618647502928218497123432063570846641642579356732312920335711932374093092174515306781995355224449226410624676329662319708684188252184782587452926431340872029179841942251987305906901293671029922163420065593990378581382733534536258013718049436366488010904832561492169270643431752785395688641378527744844384913599236376882024433231855193415941862704218972633287082225258874666244649135033229801791705312470843029965437564881946910349092636528928337967722261387099964271505515233003965657504958378998642557218296147533794681876928106419030564569204106900737190140454706781172488840808048612070836909519508669159818237011216618030225560154116511115492322215424666759747623475354115716080881234024372107507014132109720053007811575022065300036060630069810329676114850510288336607501649945322289070884392626001416794355329999500095289516820255843772026633072798649081022479648274802582776648210757991986769634221026074845422674856708115177249924153059691464051638135324797485150748661272355744551850853999217671202298583966260865793209721089018777132649393946144945587026977335427814932737216083427707226782686823608764324797349526025754367392837582316221739148725494354364089613842242421670048946158024538038479833698830225006625748462859179110011703008225689523542132456683243232535780282331116896186927116928759949079773925003593829736459074794573429456982275768710547841746755321437593573570796928647562236530531769859778127462186187190320586634365191968343639947103232625771576599424186880127595911764527154949593351319875446357916462907313380781469985347471542173975474751431281518932267267077349698673830422373500686230748980567117316201150904789928833549855157428697905979409032909175314383403484209889141906659441528055657143702555831093785415698517883541065543440596330038756455712019009361836551136566879332894456920351472910148346163333433288291179616011503821681759098151354097627243708005114876206194455905588645722151702082942334116411414180827714188222406727098310756059101642217208081228311591337727441938576042792199134231492849448312557203037501997808519073540704605652467935436525839360515669569717722939201706425262552396547983332160992052441260374358856802598317881065182126117401658155728003393651021192708846561390171125806246928656694073408650603084675079746995443699441334580174042204957066368868065725900177965480351594116530101981835515283118614268993589709381258826079634898744167430723568123357230533854611656958751633355952204452776136596135705938910626014746575732121201371114668690203717889131549722283019172596940972337554428270751130265824288763178072697769746086111230282439557451825678142231754241312959407013381356808393768214160877551923148522278850090375382040779662453660823439046545648385272220585851307993402228560029319621421818220202328559071704849495605411928018131957720483426624673455789524545944339822046736341807565532669329643247946607006706119859799771453389573289916344152407410650583523165175936666892909534386281349533955001930794942971353627698188676616650269396411493165647013569527255344703667857363289567179467435595474091879271446198161625362165559478870586254926492674819433381183870736882220773319168634709670482683920611941563780105477253539207769210621261176882877075959418623253512608461383853094033076308566663442353342822373342810401510003773304908827502782060093851552279728192324235767863165625310114183473933056341539916666959227381313759296001105129572093826885777529785350749412200728486798084976899548615124132573791069010244463834948825440628966065285738513884399316010360607280347913047726865534576008827633386684951699492905691507931250178534578933414371509717598417199985392146147774029246945301098724816130353596647266253341290820934944971624254851878698453668834476188188655074298416712000776808292048725841801741637598972531957699784264955893745433553192242125444973501109806189823790583145478700858441948991015193957267753090099002412855295591431507420293920487158524903902809568515806100383678092988437885807460556872958685351463693389195857220838503319813500462424465092612796245265765360865887471620559171555620753201406243361188164178489733783470535620135260264745926972531284707553906517996214635540609920718542696256493935503541119309031998227678811053555335589085503257842707497434165055457620813991232372845202114571733447476750051634967892644934035247466628008909140489638787828886478156961341082609304506876258482060691193695342707866284040661217051864500667760322358333419810406544774598102115726051929291629219253644985001582669885845461504671831759161019317196502859093485792276299336681414224680526843721756633860297917440152159582949594276882723304933615478670178272535351311006139900820246829364872631201823625211208836387385784310660844065774674293018598399753019350602137921223325778566010449615817570741416863999028044914599121812375047819106236331792581941068772862525962662930500790159747334379591077302263590000733547770551157961241824538153608457107046071698511687771928822158602417453348041489757227917459709579646342943043597098603013411251932789597720980401995846390225638748625572911630525556099064026356720830461978459736998325180454747692331053194262098337725072083965999502257326942239682573696496607132619037726289680065441755515758698621447336891971881346118961817135037142304057215075333430845813442989837556266583867779291836109923661795385175062364936004749065624786607325890435703839860138155672121667898931715747678569779757213312961956120761574838496934284503888583973435543230366848446560706505215555985679889120705288533168366236746475463681473119641903676973609774555105869709628330411734699603296998570719403289708996457196994747321374392800026919999202632238320928579740294598448523499614091228534911107723377675335372460943134714647692806598318651943595410751053025053492127069830176677987849052871224835898751732169562968684102614423321855865506321252128459024969448130246039646676336995264674494513359283380195615712153124030581128039127101786235000321441266555327382279559028604240743038178601646492002010833568096992265315577773598783350384242647871708942900421797195131626182441507936011413239556046628214145374473152060634621165306230919414095768837325399499866766637837379548333273309013421284010305166374120428703364269401126997790448083710687989568625188966055562406532804529500454303080542076420543747372055539936084605363167503190583104837293201773034294339186782089450327789991450131224199379703032555405891397197746900258123465632332004488616118657546145599245744789218452601299070316232814840540511501931867651471336387392606553645867874477806907129270044836710959308075165535618633310766661873895775890010177397708300949945156897124370332469418492962258215715491990102137510015673368132352083969575812535890863559345517526662678493929813805615640278630605817214937619504740227059743701677091043302313481422055077504316696435094884262760192060072395390470428557864900988967545583664508436049593106533695693152591291526818829581368396486260027257901785282969738968140172683130628391437171048197594290126357509500589982308320823457808102809713744512359528703265958347182081483258206820232061024070070529458614928887112726909570470917365735266837630445676236673213783983898217310481147642982906587794186094909277233673880067479631420435237436415240042021041545652098317312684671377845045066598187357550509462165053893286458298711830396719240897303876322582281643948457725916390448171782516089854488960021889781203605581517730162903200103903608420467387742039968410434171487838052476952627258948835623103369355889597964208973926894736234251018069517360146750594921863078800834283292955975641449386244618124392191385067030033975371704999434137130080615575624245539601265242839275469366807500484888787572329406663825992331992498142321143614117551640164966639901503332846837976695441915021569805832710648523915786396620702350793693649356363784304737371343365853428883794574335159361992223991392422353429696314273557704879595752881457068934391009304862474463037525251848457151529114458390387750422869625509292647992986817488591183487349218407999890711906319737130088795951442848983056144081151396469138826441199444985173913786909875275816998918452187281885423485721319961148515901559295533101015468842144542239737908381315057532889697333014616367109932061972141910056391106178499404212084806298427187165710817542731172424740005327840833711817493305600149483659555286333670034211411570914447139914331996318329912872873392165163707853800675290807402383675748301089928200589804400746203554486047709542910090082354241883978395843738481447752189059224285292149174478047111176468722174440981605696704538604344229655461293651066383879317844099779708099063124702014054820962720892544407005324716737249382036841690105796907774059359962453996246790906217386576098861894630333259179842232240713558460014271447287566653598604768420985759709585977035223288266580582184374886868049539886510914870269421172183864394900336560626369357846133891516511557391744423072781662116763468562810839498447643973789919631396472371365140203194310262826895211589575756215702346075878622822401135446516771598615545893933581060886191828934337626816020893411599336353453429423226307346122730250436774462844450230006675594614308966410073637032491098022376954729173883711043006310769321238004466836550354808418649470846865103026042086669805097000013808810019957025277933237433830361903042512368329860685615335713595115011052840110091871815427341003782781085655168397076679995485529139210894155466459952154526640583245412770699863873227196270184418969933194124360688559002400027775890078875703524890245100016363768577071177793991312380175475129906969572505772440642783093730520913941615223474129645665381945797156942128392219061387051309171507433550773746445951998617543156332333590930122958414404862139214093906997818146426055603717102318274615539086919619739244561464866740900771174443267766983501851976382798895680921861807572945750982275655902362846441008356543822448844048787565476065301787933025489267208043381558208085723456272635966648722186545589279305685953107139001476183720032441063822840950037562865149839814043651421962513097580623177084058780830185623473994706971078146983805411295904471935310002352149630040754880495104242757738515744471035713070941314449655848393588306760973912883293750062994490222601333484316130197236894111578129943470245010562364331269658173056410264652772063231711254549405254201486919158794726258690774958161817720571865476515934462806576196566165849703943421546896893362205442744714829344399876293201092120962982823579264020239810792275709140882172504808369817820962745983765343980780157992464813857134141313355814747109273308852720857740311517888237607510327552488959333646233741077357766060401058188524921233094114344156572214766865403705665063521823709860214579511606013276424955779649392525660251230472444819278461665265346977211974889123466577598795508803303077559799110220073027751349933273051980569354662762846863890947733886104109051174216242593234908811230586100595796585597381146447951690664466696450986028025095395422808389261495844799925329315845675688354417539108378370965186608713999038704856867926604119820758952037843049719407533079654248430966617852134421957411997265017978884909287575355900372969457750807508338554778315769276043167712172917197566876413080277973197751887799868034379226919391669789647864133365292135893519600645822159226952080297824588428625822846107783062248595951281522836702672391233424918938095900886346874570386948431529618833066535959124777017930364205890416955169362149266029796333104227994082251925148656274994611531938763262771296828983949111233584509335803514121635098720819558328021699629857050038786299202831910585719410118836360999302614227769177331190353576599816788121585700827033486711721543480306839544667837152829036382399080019012070941975043728248522811211124069593553641401615993494484541927595873202807158639768636551460875597505463474869833401264455008294544677372241012758729617894472416842846164879011079971665081687921578359693542491830838327319626869002130929529089579780045875672654907720689599526351829228925801725539605259664578631995130381979714369406901983385963190673029544659147913325969739437274525564503439291681418100979452284447465288862559849163540281407803279977566796705329310839406396169824738739553392181348083076688802947377596219522246336654947663883702096237929859864011305434899950600081756915362606382843097180325056674566093550093047327606020816989667546696476988475568926038146834749078376916195008317382012263711810425564223380052731513874102494945457234546234639553915520237235975607230400243715269115715632700860875320993300827974554643001772717200923280936878838866205672926143822827216927997987142513384561367084654637197796629635155731634515402811580053258340924535212113748112132168723755032310030628946557334564060708148492543425456254745004334864889817484045991658013610382744264369556064818453186782502473640345316428266208476306160905881366211260361066926337875569094381336612951157617775236756331869169146335077108353487620645359252851487322220941082517371026365727163288440239831509898410057906541686457562158504559050617986971123400559978474352102341288840380252075141863072660069619921292588382608678922416001753098447946579204317082365796215773292728159449473566530316630996762171333667813201893438857667727192241348341954150590247868447955644519242938924098408531890718286986305937977586985200302468269447398782856703257604627713601650668352102726329614601075525156283104064161162551830351908486845052839091089346465033327447475937501327924036828412889054254376226782792368248331499070178137308479794202637717644398431923073690421678532640575180426155181252815568785682336463699110917993208573127937431896215491284117712724806427701894105296863023503205330479839596086293413826038968442364521421661599073573169024494752899255610951346696420616733292158545979375007359017779597603036483466310000592292140876672654527095898245957868461754799805137155301548537633764411236433055441202604318757126154017091990025905796438462177979197095434997719585102172957959279062854955343882092315848720102955186399268639253942104973801028187578399851748455727757652062098583974952714932319850312934434522448519488534675721343805011462583430208231513044225795650265884694188882398089444940666257947908276812993286133164256168051847580867283630211420606538204799621768785065950536105991545096452807729251385233438652515070699204309325891238231308385409878327707944963888305286219259626523595800089523844423306501311590570050348573117319272571862089953388406171128053536775476624317528532637064583873872973193059333571708599997410904455803808448198661683956706165391403890405364187971004635266295841923757586091598086336779781389058321641828371458888404150624212319053950355691846168878558219344346743184680082050026099168794712001093101441522998151475807585382270588054541380515473903552020272441115760041420073009474413934568622399993183839131663853702016053815141073661988107535070394833431689157746798818173449763920638058326513001650769481632921557677789521034841156028984238103156074655881847782418095568623762642348242546088659298438611206124647011497267573630541676835969732817096592100621849311316637373068800920503474962486375052429031661361071291477517914071360671520010259557118781548951233314513785579538053075124032994524779579616293373805221154902943158938545846170509540755806268984446178930159660918028272020850032995790877673586563830339234251137835249510469032403154054024780357884749774878973188593778957809139197940261590019011304077535434809027496840187911777699838230093756469286379601365633698184486364980717656154393133136459715950837658820765428823459154269714870122433798250403867455079728299104233368850394326284270032314313208516149014634648451365056987067471050657049761134081145504382477867254044569607160164143541418962128759636115421010575007321687270845663196069965848055590457182355992679926959932334885511142247317996033857526851568158407719531480068831198307082989358950282157964285248220777053331972696549721486159879513660855025485032233893415581819655689331448997348890143986703912352339708790526196649144631633192703275947489233164432442136329313065808742357971967402676010042220407131897370391749589197069941636850026635094500778713899857576821600474270551216324595919313043865678250788269198111573715115698619044677038043098183581197398494918164640948357402236849227157274758679196168449298856916752918513591084783482283432096966683617416999481389626806931122217985864918282119103498608120455537281332482369852189644239507949839172258245854571541399420044400612848093399387826694641184350154090690475544945859180607034937661627147511684626627824224548207255040787300915496607934620611808842480757398685003434661012812623829055303993432181598798781865214903069107606723057677347122662578280435929693037114331006709034370734620430131639103374911804806336829308044100488336591830204645739903452234190337169699782852812224486046823549335761731213659575728782611978925443726241730322023860426329687208236009785946502225872301720369494757010468405910867531866496113935735543900706590419144468610929955355823320851572341637490984642560246621116681747013200686110799654058366921938177881224711458795005247488436874556584727300114904074901855150844601899856289792267749689100912013353491996045552219811924935246570609521222072532158155523178527304654295499858731242727538897321202178365732983312508988051372019812937765040607596078104841569850113141951929029792870021637125497604102361152342340567385273755392663268571298964291934561618213076215486456624424050174896220642475645420212672177347389538197336364040845076408987274509943540202955933413951284794928042324132153841230436354977101898389697745565688900447408056570909744242809320150752915504597628579472200523792928957770756071410449794632652270858564942240791939547358309528502967323248391177089025558322692052092668061564305720340610029097815718832824375362299343384764111456172408121096394767391829018897304014307959604272376673023096608935132966449857615368361226222436178626197525249224194750830395999044929177744165266428033375779027465400043355614143327032556189718078506689616765376783641867323740776265216414522803579339174281437400325097084198659547817973363859521285423121057915563241249402719634978230263941005846617876122139690608659615303525733864077399823163004744478951038479190076413236357882916916606609976514148070650680474755852154063194422291208205413120445947194293339049264496242780521627077554514035584256246692692498844484211824613589055190662327051065133182644103174414014787714834617474506874292839310333532794684871606247665748260093475308305508485761325239121955962396217283906546709855747801241680942428409183689822621883488853005143576400417017339066125650227845446934310673902036684957197492855780278300635516697733723369113226380398847416895816755276752038339423915284979471502348395122254227932629965755733178663178256945010962627547972875596172471022592317479414965361223703494395712920407646694987561422467796039333873497013120205022025446600860497842331953233651359333602495737551677795031101790838487442905750817325003776736293006591262400931787703664102118531097277524421902641998919758471215614544334025907646437095804646913369843484655084650470364828350157715221085136078712895237680625526071685511151001522026503361170608938323666266058428045207646032762630836665425202483265651693342486829467405246993880775184034064746454801537961930578653274721585506295920999073981775079927292083030202343571934438889660552290996757201955162862744972385637014324326966488538372723649625372997164564074437539400274846967832701161418874732254112775977974303313809287023094364212619636454105722070280737105173477972065831583332199490432860191167052031008738595134810071404162047139892128477548958565108173994721697725458788324613076015686822604663762783768101006626540471749566134526386689325348529299078929361602193392953261195486664245094247571617726122537155494907364100146983566756694282262474790189673740605705919467745111104161205732971263571643908690453233523231941248201861917243289880859198168794547970388842860879307359504264871152407895662605930674980093768450125534407910447092045327827810707656801720307951933844625124065457701035462511706628481921849448455467203734431736283139091538171909744268485055824424441399316486392555478428687921992302824568044355477178201204124432344904671904219698020310714333958530059750416629407442906994588118089320030264121618158849589745801996374701066447706707647156211373381005993634327736696270323612991770353136316389749946120070467219035095154399818649689841085882520953218318884317388225446495301625811052940316609696467479943772758752995204687358011093215715180518158370858024646497844859858400150000338594831843611633596909508623146052062286798004131108624984935195583759162933634051221287249741818839190547169617866644915091237056852865984939483842891839226093817441144315648472295265024528110749332668997384305279927688535360354943893106621458611876364422651815014683355301010771480905099701869755351051914632295131689091137478177587720281014483809061585080222560245680996273702771555755633314600034425522395144891650644993060450490712608393623068935434388551390594210125028931324486274093059459906452351479097028051179541796019340947141365540504997861707104084083047509796611494358117386570022089974957589702328238718335996492798169931525514846430508533036679813002417242048688142410367579536783873670201827660848852331283689434911421077987655489978133406356861563340336889710413843352478095830136679434095098195780855259413265922322881828930286634029643565914492336859034714124891627044348707057266532767234799894740477154980798096998929957167244086407025074784229968384078635363235200391331849481846315442797980929730112012472923211786272064925491631496117338175488157963189005185385385935341091426101219407774424271819681379581319936953720952597257374731892801575231689778921397956787865283415496825843731231167922302750838944621597919609463374805668119805666571016685509805194478909858263819935332907037488399173058277505512674921039706308368712737018998245652176936545071047780748385167701965368970456136841619320250842124054727786177198772265560014159802069873720710493969771452572274056639528283359808998300741150075752601155596106707287981844297561008715783542616462750757451096406798304129048359721787148570624396614830959644932341587333613896045989078579812945598219144427610795544768307191007279557557016919507076219694121516304273701757660791935656984725344001137561628328073354869585425552614724851525989543498859948695041499406412616211065930756173806934923396671196025172522753248306383633289257005048032050821484295779384114805346034872787686096737293422957819567347650612784012136065780964912127885489169337677232594993445926697604493696648543916670039307877168287730091254438191536483442369298228242951659719956331913117132785101516437500257146057551652493205121548017748705656565475174827933206545997307431029114327837860179786378205364701051433942757302992423939001614045409573786341424499880013438960053068266173099907712677696864410625315240744473899513593175548599216146671981095497362040326562164332659928960867811324785524109624775195431978258811708084325927972500122656586010614573999968223351581675597201386561371278426606692566851074304996328962891101638528852295096270012148471531708413368363191075763768277721403839811439880454117521467364583667301946714779022105018782356719375169359554542276306947008968273842852064895304217896857446633330922633672422251312589088457902107450838460119793557877619233480746742949335808923389479262104387455053182813940160233599017853466228759661584495585402316399951947783421228243539215141991720350165179332302814538608402084510941079466505917109324717807023861906753173405893082730047282252945256214847162127928261450322511044230630692088496451961581240605738252771961110775049383667815597759972135354643750425654394220511939468436235193424105838156930152379369870517244131198164475208374576925820828827175236254168531136976869328012387095780612460779608408341331943953482362686461310607574817532890198278452082682299844610312546041622618075479267990969573910185374228902446344310484522956365136938809811339066998257948674398834411511944228111432369254880895716674306226745806720582326392850318354123868225403252272651602924816572722105015445995061121553930054675602611591888251582698653050300077856173473788143341964011585263165469649449628119002426877831287117636233555528055872620694309165357715213518047646767595225403375512962467694991646815428198196644711251382392528085520034615314003228087791501469829073087430756208451739710791830742735995725131241122361613245416865807622167224685354962030345547720604908095864905545050293843145208919914610355796673815014084849874188700345555892417690676519071855550386116804314203478806094929147361707903182185770230234645691255593579836511539309076632770887693721914706522499350076910512695169942458305230187622036383465854614104022784113367235000147979994097606886201864480816550426176581884682748978840635398074670063355968287152064545891872392167997957164135828669232261634094664928027283934921458487070301213780353285883861219241146102183619690103384351639752831757640986646564260079302587473808795166638897164460119468125211769516893105063248764068925139238375382811888079448929972346071790252507111771364399731696537658773346583544995467063848249182651939392838616663963024629646407001522206559842990026074797831788246480959033888977992987099395312438332561401677083308755278810075923103019947020717808422503376143996172662649127853574456367602054166858108984793175805411107651355563469668387414679991976826580219756827095963209349192883299771971892059584059687039765186747745681388647542168601169536607546257670562599899364663460083712988618474457471424969784091080703899942732575478870121750996027006206353569063937414529054140032959922522047200422367463219732470736272678306204360187823966092898484813437170766306220418242325416079562630193186155806027159379361170890089140167265819403785565348961250918200779965915149377055160448338449937521625427813689280550184440994578199751149311427429485458473502011091756949816126006331204961789285008111523245338625914657136541243675407690433536722969575230369067351639272941058495710570756476052224239044250024325638347186319460327039663943054992537983323704964368765919118640199500318777602732868233045036303687101233047834372025971742260832270389335000641712187087429924420205725560924190051840400695254339639347326828719737338163745846872363387298171398105329869949501251068683134630742595420184064954233442054433612180234082937830848052381289391775352864275869361164087500821260522542260200355801143178522671373268933943820192952618045449437512150367094598575790018097228923162793834085247881410708841657621555904801542567500480972796981150824969459884263864069665697899277036982350504209390511313863403013743554569802956758355507101639379495684940119893274709146708330606950226985390259643631443442766480283692827339722680140945182895807430069954111404116553511996930341285463363038889275594548173421564966945194366757182871732607250533248646572281163832252356654751661719691001286188247187150272429353909300554293006117212720961982294767836492047975368196005206991197366949961994583772323960918074799074733373927425300279791122533053371451282157352853366213297177324153425266248885859820400660555621185616161971709708634449088104660776074917015932038158181202927872012713280960225315246941077643239992116309340740639251053583174944230302990560429924172688652943172873587546293748785507212238220000596926887207573470974967939473211193580169646161986797465515257301827708954446195255963187334411517890608421029484507575771263691869048785269910062374964137483052538955559903509635692479757787227440947012438116356646907190422386001128254201225452479309689078984591355181914740529889730779427588681119699027684465483911677182559129909686339284722451896683450074502863310990817000857378129696542066280688346375285317728278251386430685319059971517807582322838316003843040821835145213435085557306890806709628549963228378281377510377422557454317027345015219128499748924120949911672265343726857441190535443722454392860105191329027712667807360385643203767956014238908215202726101641623546778206921954319927494243030592158423024328072275767065744175546860366222479987736541598841155976717819531692616408136971740766741234802063538056102474127571100723694968981848728798056417119011255335032833355172730188586494532467160505335918655261277984191028219859461365241135890439851676157823808603277597154480612545762834732908105627611238250317001984799958371794018122601155459633850562369211774149271342313417851926723537604843863370721491429168690064906553544710328246525574391127088349266133168717388725458866885425910571286333993479561497483008870231048109065412469371447567895558727177371948504584740663457207702214240359629764623157093852244562407156205539101479105947521567746105133042466802310433583828360445836579533378608764482866658512282899350819347560694359642561970584541391015174409282045967843886125465137961258029200566430425098419592986242085807915505742970049396533822104664375825610573325012623459016554781648625098231676851826856762554564828569868326184964998876995188386551578852319587504122526186729848968726453725154913784149344325089747592375862663704700931883084844914231405210376035912560817255747610984447064771671750763007599445493966667278675587171009020234139113507300504043180271161456489206543852246510686603159094322383910126123454274579720067557250898448962842203175822905246540093979694136039173536878304809870605688510797545327139912705218154535812491053337605046641405775391479789805502699965968895269327952128837545992856232585626716830388798488203327460869424592615289439269325628888937708716141598806227651371526272928916885040184557807838073742642143724892937920058354772674614528525579415851528377652649964402705465690255822944719663011295280248414119179975912970939979874743127246271139245537192196564191904986409883063058552022465610452518121400528939273828380399237000863899425579532593986427562385177337024896680183535967769971025233036185262053733532748079028319113799637530880876614602251582788275579955749722600135437303602256153348428442901085577768866805204976182396451662489861970204332709801546939273847984567748058874857593317295401249731178853898277969300208027153812950981933067541376455583134721972894045149931142454441300920900339266069812242707705527454826327992385829594850432731604353523480997119531862618627509003028053926527764150259442604702727925932853376013534500455969017208249443621667278312820795333862298015148241449419929725226371332025285349421003453752796406170810643662575970072291562797664965806512805234189925549523638333607266037248477446927674015939381274650763722672946923025753427542075057753443924453216068702307359990223665233885062019502618211012832506243257720424973698929366222500398916517234713701107231749308732356182419981858319854843814385586333543738631532870075519135506915424882756373429033078713673646841303257682915951732895644784914398234222401637485899035544647108618978015241029964852719668191644398735840022470219589349373691897732782367761972448029468595528746037279248242470589340193323664037720706371135269557015010404093563134000178458522768421209040620460933179085329797715147899831729194022062588670873051564147133603898138254584183893951328832018274043071675359695403023230195323959494843774701258707649487082735978671039738980631608131896741300368300185428772631736939803626854702346735284200319737041119184121409933506086897938506251231471755362766192602298392605996748418247824115040973857190720963852748108399377971517098835283100884929916730845841302878697284646797915828845757008227663870056287029448829276611013312233701192019361060096458371641400197128705326295216041291165235525309505430758536908379517629656767274642690547515136938876830468879088976092424542950423102740024948541272062481382577535535339567319448192780097484606930908224695457201999278530215923600064932873761168613977309726954881941637990469664449782958464371866261115250386254702156341670963077415755665099151386753418208497208311498265766274429774476469499244170807567662606101894139523870527303839408102729447359808520669557850432237697446853463037637623472614777598162576824245028079579059547738357148239655080969871395427206388220998802613398764785262739963201535822056859958920586788261514882519556814939940019120033956757605181592984882912222385883464832045640309821341906994390424679215125608204293025454913323452597786600388987309993986461992633388347720879378300883380425146539745362549445621617121097903137944532135676316447879430338257750208408249840793158063041445264249239093316863875597339263506616304494153699339043736341984027031886609925949054833520768698321808571475218517773035518342641334694561912499576746969095747983871333736263246239817988420959383869630931457088446730485984891651326678302713221315518400274876518966179109746752736378247660005339492515336000392268228397069046164974109892114303292263857029887935918265459961185179630032770454390506119373262443918883324846886647272498399865090245513241219298268353999024381658299375428020237041692118169399151101404060366039310967695049629266265112034339671961758442140156401121522035362640067665175092567314571310378696373252748138857546937130962400077970338077845126235049240709837421485556494270531388714849394150064598598335647457076414492908156357950797293096332149631858310741738172677027198658995257371390419534464300961383217257217280556195632227038978955726916424135570012198024255215225660845647142608081655450875307685596241764259952179977624851742175153838897721083399222326058740121900648892618247500108366981111563933632193524608805207299948836228676895104211095881746279836879765507906917927144768548244589655827141239355657620865707274203335257177455656464892784376723335657079677935261971094012727382181122072446929914374112442456409998621585529843618986152537515143454013760832451837226692514182667114734215141026641904631022041834965080015924457525510261321235086398763683822525309377796865400370256607468666845954003793199556159718615746612637036315232798571756998637734096124692469677942828342155484237119064896142285807620767568666310535228350150888988613937925368259241274196337199344460814047393251687974905078183289237370253301625495738315481660010799014384252642665564523954042295404416327455466458143423913994048301871789860901591104423220248860198497144329655286248887322213667518108314211019552246480337171207985079669353248358629365246503831683777121120623711938276797486066750725953362302627241127213874318197715548387805238231998233164564669499958641591622828539312218258883498093704580050157271555634234417728372663572065295467963489444014801884717088611240761818241102418008998293816093055627906898907901389725520121301598609954229904375036367982609274295258937704556938573295855089979429285833515060805027579342625587149498823970864746869777098374712063432661711294210164851070864759002068691813121231091693449684894476819708810523218159764492478406713084778028614651772721395498742021429211421203816712127478029491525377486780761853336396281532422238168480679868575158801990137106178728608061164543622880136214466326583257408152066878019813144448319512725748140895805326162626931345927674107668075301229765354001824658211817962352044823265978697650889003939805590881495593916208174824689152066566941241124501684587569454084256166575990353255875469158068414451037756112738840325005160291317735205379030876951363121930779723456460941902984937220576563246996983486028226389219438759299818481242895699818235781703976908438663436082196282753194699669336014474318611617694798415525968333767640538435342266206551865168242235843121612339163155443498590065832384020414138980331291160311390893450241266048818430228436889612417146732814681042381220312256729775335086283136121841451374527978441332587568051310950198379443803419087395626019859161542057983166970436560974351964734489722651836077124108940221307124392088725413385045605338139541707724015179513130247803678662617127205198264378108772332059519078020379203305400681063107798655569798737933442514570853421723110479010623450530930482867984222047097360513162645831026009950741384234170918282797208645593209611398739869880178068893565427461795846315119957681594070178705497262260789365636053886202406949421310491462769551058731780705756387606887036448430751447333020172640787442178100010896305315527621763586586314700542022051154446216605329480942257338850319765267200060530004199212848847896641751489225031328803648859940627752722563296646274685320957990114088494414641918667878070757121565564735319024685463965243081761967425067917986936934954172299297191412464629364314822457224304208974134929466568696229200837394756153654073260544873613077628157987357665059266556532957963834603186405022431956393489473434939986663604940480976127499583941710235903073732327044129584043942527876503913121582883254065582260525793371437175564620295069422486451119171939383074124236059008725508291236155217086566033806974768057480939994647500642955269135829209855948369847300841816434222968828078106385846491567953648199419864754621544688220617785617874745638263256985746290525025292236019771787615069497582052780594745341215217819441383187946081352668954286295881116152762168550698442420523786845523548032441355336596281198895776060877480075955920017033575965522347162387894851570881895242044833239802061359906171890840612584278283026734144881876087468167172342353815085181186576065766228412979345423837788381636800263499242930709173981483179113038493517967547031766123872424794871316192924683400313256016923390626968812997474604771206977718275051955347213506331466961357593381556434017153944104334874697720598861626347107949691369239448138052733861765081570767890307848180007188668792309758185482065961106078919884005833532087984814796221219789795922097298020240970788513758279929740532703081756938893046444946340593958984560570925310778143988920756888684371697767410458839084392588594967358037074948791813808119498850397019666826859669171716524559887294175013322085066107133451083008633012266068051174279832830659873110163416496796214563765808043417202734362643293449895740370991363291886945125451072146133090286394779178659250071774840291243820379174935041052395238592924079595892602397773698973192569392717404504514409198849730340185389246371603585301002214461589698141069258253853566739672624643622285300168022945412675158599860094901872101539451331672661239539347441760080509764685261259502851543594507262555972424374008474042046009760609222296612734127584760998079942496446011432580948891085448783432756836566720469468350886203187762980987667987106685177161377864707856979899075973061047974809349547877943330730066686348478374462987725572380331176666468022876771791119764144881180578959795337702867549449941164835509756086859819892359826956035466357847060221731255834440766403096171899511107968684391681477652010472846742381643673400390435040455168474143939383109263111068088797942555612285220672308587258318259577887150350475404657805888145286746068985817484080800873595308674875674589596587190432576278814859099894838990736167632126703399983357033304408800999162640612187557627713004102811962843816451021887850908785360873297815237857895473612507118336515055676960006280594963161387358345379921595970354388901785104926142034110736291641228969585190347267836032554396596771563516838430593421531564595417936317682472673280488192235337977787997964544882570853148644153747906826927412323389272201388777817114756848595675009158170959700015033790705897591149615250716326041136937789876435469101954030467758356944253167337837644562141657777847823542128278029457413761619579832826886797737394304718652610654048198850208549204008924751262609410563468237740547327097365666780829313330736902566863874662506592071575420179653062389254861191940648563491541312283340942862565254463303059789280324742873500027851703839135447097489636937717721076250329593013672351604184367638861645061673337991354081701547540077601828261690961620799508052846506186161586123412628868899673112332320589723441723047852953234255610311917460621352420927830075394276036417968009686898449340637774523983951917597409951310082867689220720172666443689397682705756821407719635810551490132489707594419387723393360442666751564857831420181683870747010742623097842212679282465289219396273532686310049484596354636217128752203585995658774307046112839453597578794662603857754935554661822915439416633515055892809252633183740144508741740707957937326941453719961873286287876078264338754612100830941860791439549028000459539786044405022040646863278232225278780404514673764204813760858779131478292612489293181679495081809477201836593722137651170679532010331784694851957023898197892116713535966283568714833813159333479343427077080752985179853391941520168436642351588394777182156932166204946288943856546863054628893822204974763152004196425161119539354067684644935489895302860035015058009831953507760740838698393540522330348524962021886516487374032089517252239826136199539677537400159145303553176790998643474569353186248016421204182928770212649753993799252884561969240490963886002737370846024535663673627411921349373500893770161682979152629129168259183289923802572802670393873290486216145903896269173261134087929217795978475697222503289068608990594670796405591674332549805713055264948013568227779114412003672454454504520814079524622617268101448105384342543702482275088915933401585893994544992450925931517754559243481042753708540608463633067995164513281724953806710527277817575868003141385613592643385232930380071618213520239461916219318063173146191724857957632437531554104131262975672049668492394654314778973563305458467498146492908228615809304749798947787066403723259219977480821992596535825781755671771319356023121142236837391205595782541869583108275796406501865785059467648931360696970676154028845789632639413546046871768659670934726247112200171270978707131776764152136063767483136291086044922050442702038967919193235100807990646836606392024535549129412501283326869777457872793496322346865054506629767024893584958424695930682586735066742745669317987674319785338327885072487232731749991974850532797461906794863256149573571191049626285102755775794789306113496804633869303213127683856224388472322308868775193963209309091803423149443508611799092798392417124950408920653397128546576730743061229515913646018352155199375623272474095865391115060332088093598200673162595835035622347817250779682587181602835555986322219810336866617116295067269022356619535948981321856930017545062276269927740747198313869670355156674055713704246535872860333540008789450954687544451836642452492030864152905345236737494901522255674960213521402435557809475172956739889966788230980126689117108281859980343927216016389968937588227614281723515993945316843673289271758339443564699177914993438356259642316600409769033090812019522586982869157517976665183952233871541406678686560267863046497740902204608189546632994479610159672642030692508002863040728071683275583093588656907799994988019137940696795059896773937460897759952486629173558786516482095294629822767597600691487466398553100809607564301100579465982783612442216835820299658117762642949972540192994527267854400979036448280663530445515050298213911894988983397826831623248676672607147688504985473827959991782929606034432269733251898298232907982503488667805840951954132896224295560479273112014733687913923711845772923143902589117863611762032433940201110912284200573842524759087030718062052858696228535572877386766331301802922956242658890481117941283066066127228227744909357977652642479244885287822156450704381295583996279170639400049931043607847152453845472103620664898565971592244945441639070643901085327022891583689464695634348911426976931337485784389886698313454462709945138866185464158893099566858528614215348386285264160638015984126348193093073779481972653461579954818803560926918382025604504703651121563442316494331015742525004077069502618629630337817758980391827976338619435286463621325968703531687401988893396614267479207093404792401040183719423396988555657564469436345489554714074588913209273130467833506828903990684997935367096823377437618029478648880052981359389958135693216832607982788847097223192461265000028546169822002434038101646734656122654734174701514747445766987044547941965214681180945367810980649053198546810541005822855822779811469025436253048420711896163188389518495072651210078914179672101473535029062869146806052058095732513717847985976412448699311111480772075227190277459217442551272386400455197537698789310660252558787895184693809292475765002854237060838089000509939721213218778837653334673556769628265487635062178430010577739531261029369251485575107776654949633821094421644903399569769717948182332858993998856414783655457029304684850799851698180551372278722225122486033471392893524332006090582522554201603999966713755720634250030580312251106692244459873410541519714025639504028708585848847309120723577474193141967996415197776850081006677361411424540642691633075781816382883019982193015374419848236191724791545648861598193843106515764757536944885268105567067002479921933733551548013715930694184946625011724851944861093585596623965227207874669565648128160822039316831327287274104172997733604345330691098458688588938417025153768435496309638893465993341744738807279418605259460236501749818240353198195082890597352583265193564818515342761180942935748418229575346752467678377900978988672118442664928840946181677245587275670745921244580006415041996527334897282317337583974309556108210899122442870940668734995852894259611056026931784348223738829705678709247634601283856995495670753580499892158286707457037979334390376154023650618868209169306175150213374874854239677774265473753913679579180162947832554162179180324358888965042784834362232372090153851264462857634086437351951330493678028691287322851545923853637447482643815208074175988355914907280214032385528782900618348145649280060540919449407940700585614999586697978786585035204964871956800786707727730042209052144258208543421625251535783018663660922270728293771503764802820213574631342980753689551105359056064630395040222232542454396941028615623742883661067409884915925254134285410787803914643134027733847169096832401420351438472616958045423794720664162107162362957366324358643196198207254675806656916867641307719387515874792516856560525042938650694941964318265644822962503144143515504007929936527387337900484654867573640925961834454408482185532459803499694622318283113541981232194461697111568362434361985540768262854339712383215130463241508737984337352462079252995973227522099601524749581229960638777109847287548275756620427597001261632200971514498048131087790180639965770107103363760008211453597383706804732371105944248735991971064538154492746605148853882950640893943383283701585164075327410502578649223333755138087741289660201379876768114034745763906224617317205667554622436174614643419555656758398877948030967501460293797194618865985678911549418979782382524536445282315193348736172412609085346893945742826941169827767496674456359030557898601444268660969465607734838837632465824880099403144178671594001934086107697809498585758584737752296834717465092632537282664798395238444888898525450574239159388871370320462292658856826197105589513170749501379027504186616618001683120162996439147354954448689542479857307239551391360577940751649868210976792238480988687358834910699955125651430070923871633970750833833945099053473873622971906009428423748196727857935609436708212008506196991441177439827887890489526451578681259224654051359830160734684169642844777107884696461735818255562846087232637738573572414112737436496441949521857815864439950438358170667781584158778012175828788176775474682967441136045330092805592393484842719188129188772270341890111861835295081782099055797428209993290071441575989650102384213696911807150926496904618507055890187424278955096568758702618780196604003293731908770303382408374378144320840361048982590046783684536438754665429296936947299500221350514057983892090720518199273287141231788415912944221525774650729697140789416438408188898412516938789957718352425407472823901886323572603016713836462100173963373294266805350408856241414102533969349915440361256261629443610448888834090107505496384277280016381743832940239349483991485509354370036971392151781849559985973332493623859772856113604832946901121932074773206574347090851521759986633592227439288524798593317951031117287265415395548835204487115635706947693890176976935257535548510979561483732398403818986647451094256676781174424872691793159891087304126993790886475805858212627017359274338849639640774458183470769241753722922499562149813558807414102656914682438149555610463320375851044358316546622519766564253755709110662629049820611973970322159808991433617860393059970296437407682609907418360113199068374972827328215767619320003682118813242249653016911887451317496883646727372692032829673606047899087919414056583165646523290361191426504800865337128416332124037074261377838903556932425047318618373512491458826853667285933113147943233993787614231984354041245025161755660889135092990527328918405884891683045814285870153733703474368195197017302680449155236209778546886461433376773264469072244700993870461428775880549691778655504913469408978217221855923254219227002938558063759367896238650646782686170382227010320057297655709059769795523135609245743871396973371229592629796526555845213282537432991724455324923985795254352326480860752418107678854217445823506518160784443246508238263540512033139836036163227433173848580812980094879279153028786579469175496512148698631725025299656231054299965062314045349447438930223077719051175122314250593158296646269798908390521816731163359092217526909209179562829087639377394934955270332245343980669517966228351816612748026637051272180973010918092402153849660814702317330524861490928323700249357312547471062288640790814795660735219487495747158764813060374859609047809387152975133102206626718815461176976380312594551308855239470691815909139537343751275073082620284218867323309499787879809158697936042969093249151478814663374216563289939604403348522303557817662036553697901011679497152736879406852568532006723660410051307839868915700713731656164251898168175362983959425869400807676139367757873908395701985614168003380592138911863583730162428736950980143204395200714989218862169278519194743176661812749091913524013821810042331436492404087069555223155367419874192101735171813383953329972426104934578510426813323538187300369014103674642451772578935397323794943101889956256596171087136181462271579772094322485521043610360804362051388642940216697517002129931631236070996383593362183303131356568730596540319295397394924180709815783165535063833769900852115432067962211465519189860681662807685154593819194702587334633095312623649977740424436683522528038957308111856109037046786659322288203776505358426681452057072985255296551719643243772618405769760145028548085783408651331318526197310269943303063537638850708908293004021721295206083447477599106395514025804373932810921059516068332573814508706260643227097057615998379815360148999748254044114663592323641669110244476545475941687821335275857598041378339442300976736297310284690867393461840878878797603927767957529968846786755279806866640337258213583713783052518544417812453947048805340189815233840157649960858943046677893022083753413987558860572451988154108209703449821333674476473613048708342844363581799446563477813981579478066984725473148175022985486106731065600755974676646935617565041236749570257750880342979635232717346187788347464107922764321596123887036352032533673912226203400048677025447641188930173407227092736953750239346299250382170161598947699455868689386464603916823774619918400921402997953403934053963622207573735947817772480559550044292814300432340235107143531448529805122908645699144664741475493298601698134121511983039905763104609776079320536011005139565366784227293568248949306377364660414755624286696878048623573709622734357101169966277783665804590025010626997176078542716488980158686872467441008488233676911968008673647244151890920009853707572686592181817338807168959768757700074082828611347223447305946500614461543258099381053622904737012284452817416447466919789541902442101353123428064365876173010919029368386870097459530208331736926339705640101311469747340280010071912903684490918830498863990552646297514486287468120326026800398773080951989214445317568356110948171635381919886282085502625809897314809941165474438799014205572250720823824340405047435126124693233934143741073014773256953024597805480028299007519147478646825036739018612436938464268264486115060213888157359740240458920535759467650124282768520358771347642346391436705625668219403179329758399399090047519236124139918800221789552231697623953512673274440301212201099310896779248559780440547355219118191797811126194869610619113676252898153697875007193815414292313338409673015559028079616833982767064568307571653604854731701431336077986062476705429602374017780398371184193818757984366786620492572659254152815652349755261586333852788975721612982187958335986295561800464948500675078092874834025106770690212313413083627822285345000265701243903593080873748996802017773004192447012302861558544038017568898124592803811530669534549881921083042356524260822162491513530610003748465950216258026126077436548204530340523282478555632099943295723831104108911730827539795439922534731766650620746847258045025095052114193488600037647298330543602316299027704029162151622451378576403722943220099271084223668218607270707047904885352414911719787482290016997207299901960048505557928296196347422753245260915293942373958630179526317843574382759797961543866122968673016177227005360692466338983464503618071122136619507866806676315027077558784160926748613425321031293773455756254904821764825140712298101714609044994269182563886362953495743992887548931686488315114731581233777320769191853910262407805063700745655132590029049986988699551622778694604329246798801925506110940097724079875631673636976210527036302598157809157873385468785485465712210785690802095035149475735675920343569969746646479842743461765192536633994799134659208147017023232237513373606793318912841437906799096570407697193860315198320063313825761139758280121567838844122864096013446312072189094874802551192033000948297741174632830282583175755092493904074581042318709993475531155625155300829195080176040993169933239234832369262198390649722069659526326873959139263340989719618108343993399123337816488291181458700003324774959798830859169521279829970555144950176780495931882695687907671632892040608322427024308544762289515433626325959002991921540557967857651693259232115133970468050822096837428400682011193427977822138598735603155176070996833502811497147663284562535032071866117888354830986909839577277703683617832250249715253734132643295714790373437532911327353099210010133120480566500072330379583258334020065254622478381798507839464202606170013882935715897257842800072425000218364284771395021461134282429496120757634515962906778644830948336704027137031523611335842621083681995992543483276589086187957552529238484288427033559265029989543582961086781975769305410555789278815142995766008293161234708617678054772350649545987313142010977428256921022542959139154735391627480002607537432641931520290506562436192299644300491826032076862128502929697391507352702211244085528117516623914416229785020035785288224748037793819470911038714244083872263395040345863143161799039563522251725259367096125344535998166562321597809826921200771460544880037058124929705662909400679002095355940337368642150253423367414952217409727241140828102561432118056417391875651577410010945462212781177665624875351060300084079150641778502650318855352550647556508039931653610195796438249699339032842686155394207531179688936059746198983178749767271115450297493549140029734599228420732858546337266080859228853954313611101330762706812947808485456532544749153751347927354298999027741709902315069979403168689115267120067689363840281140759217942516664204549385761976303505043817602314228958726527117262802450690220063905825655623583598434579268601787002587015475828560652217121077868438342208706176306662597826508361709594678142529755519360177264911416379953073953501395947517152099530546602460518078324054710373872771483235846203700081895611248634374256209592488570569670575085444182548364815496175184037501134299187884076765701512144680477889016245703902067502064503959076900986819856651119512963188467598479385284409945643782441168594409345072091466472520707590995800420172038877336769828417644717836502967270589959627861620067689319343375942184363231306751767163782488293384286518946944293197111599148711893562563303106218219307863418494024677752330442950498577409488135906469750542658697871523145788911348606967981175683543142211927468330782593902268952658329602767287879261586165733250341322251274346182399847515421863393747963427431581824415374852753452784690318480649089556010011502670229660546365215889336724638290660445258078168825347343831197240698244702825123389420170799233916613395108031210661396848529441244741089067243171203284288041156273730858204309122637323455441847597945864727098433339356466464031940859880850909997313627496820813906340081387971952862682342280834475178874172930862102095766947056783723702163316175382274856312302429667961059079360902833326606269772037340549241664212938846889449237420393226743796575327707752559971031849311586946982723644059390368227693994664648034078809074325074690435326036929688286315963289308272127083325147458027780674171145007468720085389352873055224059711093997745739773714876274045629303146890575946195156122072802177754027869715326817317494404863341736741029836022447501400811938205092639900735313868850140267256689484648466451816348759920268350846020101462174883990474740473569605598495841614552133162541712113331063842516904417037317154161138729724531989108453262598825694621311679312531118935008182653973831434794478891812614062483781864453432682696505829811921537898330651359496449706814087494877255109874539566130623911391670288486664566802157237736947988166807215139836708900714115215576475202293055253474626117739988526046846481788612625269426784264897655923826393579686379041308172123628978044950472932574202653910709185447611487466558381023489749244355570006154481842885233471946184094782917503023288005847146189047325561256832165840726015188094880871865912831846076486148044257526859880679562924399145101428354052389538443984434316037069310737976322072090898968116521163177443124394197301733866511265020907239415297493607006553751592366219363951347814330182425966281908093195703028205075086641429077565966766113410361045951163757450275034435690879629371505011297145822556350188989133871008001705667418933381373099587091315385617685663872329956904590881781720662668638216318261123216946271760001012076778490445367321044441982901441318379778776598603430676896322885555846762338212428828950583459188378502351379422336035824591447766841408832357826446645839393562380178919213224437516076409522306681222232539783344312928121754691235724576679075094287573543296504112352184839450854420763661287746687755796193685095032214560588541699612155065762714018559639675921657546291386637770388880909850075912180626880565866992468089494280655434144255537698534374642470229272710094891423404965248555158053450952573423066778906673738491151688654931167653908568760816958951795530651583218013972998554502925774909706173971029118681186296142202669749234631751602427943095444620314386634706065884025262709574282660722251313347309929625840695481211667560378618451543690692668835338377675114032882219900883319926621879697728655284184352955954193492923330942494619258232731699357446932902460810659554457202190961964148745250996463849502518064708342662853279043865183937232049447701249807751082758164905858386696129412137222255743047020877123679345198119188818821342178262107534000139421414307944350401178559156607971822418879557375627485860180153371306438979154804706030425561453850459936780473438508137075101895018304139595068603430893303235608458228238608824484139271427897139498737065449531123836429040272694104424676731169783164311250893764320703512221145174323570577597972607276346002658528586415995014248239916745153665787405981430549370922237669664015061570931993277385277198090693534882248507901140569167987873642166588561327643048731631909582414578786584776997902172116539227532658127884973598785028813362658257599680501333168774086583493487403700423703719609578096367081056089086706297331213958858684954330149536908537496452417326396437976335403735507220290038211814658127332953964978135676130094344438194971864955393286584044515848201714611074509062247820946603255428567336378027878182955238262935558501216268204587915946457099932590004812274620059520760398260086474227117321884388902320534447857387942103950862642101932679460596809075913528789715503277374853024700618341746720059698351535161742299715427127277735772824106017113650767679199553912526448185157171591798448093415725217566166083025078818298077662102908287429124811749016154768571088893985084523913719509988072234332599058908249543541946519724695783558707129575414713859808953057628774195623595282480049317889780319064743160781196299483539976834410546066428477810228531364862726886637715578311940494951139645707064434493733847146339037634797446202515516451335984479505203027140561450086851553255871927084099381816274125794923065069033970440255769130203834559506515970566738754189218359835205666714143844983510629827663665056911879109311938755869317409558698988912112391493948225412000666260243106775984036588285301989613157575864197077824145717740822162198473085824719870136226250596806917569213613927907846857412802551237613253601530667908294897767336084990370789376852850902108562043610604127140260322585813946530959039704242358364690325574879640550854490577467754235407070383484233074252053606402022130035568264842100170380733645990866142696335196627137827444332497047046161997412207328843563219747046166587440257456989071666359931075855465114146215642462910871316450094410080320409017830201724794065982017635625028855737688761658486374096904189720712114956584923617260367277664145394435183673453963296269832709650476355619504686588021943716448117002396543868426440777929286806020478402434096504075485589258563968652359477620277210287841616566472782193246269293216007097783058589972681492782955255668934325004740773957070494473326939392586866223259402854606128438559683928627504950530819422554584947072038139357274672062383522067148206971006452489961628586479823118741570970712791615417412276191121967274864746435797956115227823271989498436718099747119252839226827349463355613939618757114260562109882071294297746822276151282417475084894291455113126339521045714353011913643246381099067648804139946054062811780573104271932221084971901609640382297730265575214709662141033131349377738826359185650591237304072658015449917154921859949472244886966779778240975705154512399873063580454849062558388601501630176408462728978187537509551807953555525840830847334649268688317626132969414513419707577473638481914529681333796228854484093926021769450075011458619514568393447123910016727957466429096101992990506836818119022952186920189545288307879926659940046322470569688744557401929901152061053667930934565289759901368342463809793694639542264083351020083667151705608465268158194582394265740953248461653443376895993934752524512873828100024564056417579380672085060110370984166309509648666643306641762590246267304994837882154074955192039542425937364038149124230960450940038210617779036805742603828303649837876188190925313813833021468898201241128990307549226769979189845826435439248647287749714589812821292070319816395518361970497237042006715619836927507416979974463214166787896249625750589825911618255994910861493502201848978796108274133634160912149142795690289788709812403989893589085476034278485232077439244998657442782063521040507506369037953265437459021844996906838436408566914173603681590124513497146113775273883627731088578791847438545228744519632718278423668187840713674286329250862686295489731781853379427779235385728246314366129807718770323207333064109677620242583093455119865686057091392914057153544141203513962963421903205157991627810147360973267880789997134147985647701689619607172236678166219121283899549432689825609179830816181887187811934677799757871993484836750668528410328415833381417244056939994060289700870469900879934333367511507858499312683416542773823396200384924838040584956753421235675419513403964518363984570730343838540083258836262714770211466248871474130553531876690338058488784799992065951103357672910165555106136443065641491846783555744913868008331503009733068726348184768196186810416989885213065778071981728919658863995959038403693548438536719777048747741613149879210662160924263523124198133589368764654690220686926377765597443535029731826108948636475853742038321786372625771508049813560830060499309443869385681586259200365677450813827618042335093448567647168440413331094137493656725474034006972283033017473317194472065332841162480399147239254991629149909820959605619766311168318193567556030290403400224813011161333323573324119223431513145168846624967756251342007252740215846377583418707866768738378867642221790316393581616535425128804343731136153328889920318966499263766608208551495817815124171568859331248601066254785012801230078552287782326101664697379715378380673440774738802656400518541309121223903284886760476296503543393115406042705517898870620512979804123700763775836472397560048960117852219925933330314894328585633018778360438143991363165159820912909368572740917661468132120761516323457294471652606033290568152022563985813011782499880076265957307730768425623595788181795867853300465005864021332161313216864732362228276869539709795778295331660249891701810413604554137877923293777258671352725866881747546912247841621218779233396972601833565864763680405589835849151098336798882931353039010961975273631872227236295447695045197612341163620797026018244328509816884936963726622376932723439786613006153340923185936027016033062444246619580253685246595142741860291961674255999776714816496874331775407369358629034179663787829571254488030536644265028634324022686755435988356271163523990166631258608212638227302864778360412705915244945312714609962900604602267706226481237158512657748924029527256711438437181287685357707452330541008329425209153615617802729693494736364029608166038417438017139183689847902129225665377509244116846663775620088923778641173450680056061826347134646908815882604957199856071442979535957280242370094741098260332013970038802037953865016953520450427108378594855587709822512916203071964320726400066723905564187737018204661109862814201038199666282514698916547516028376373098774451308829914577900485788966411712622745089092518698469639916200656728966371879792435580733915335602224873813959302456265039469825944032707281413087592274933252190990453444185606024427665576310738240138129889594052480167014119209923075414733012047169163386690989019624474772841832811151413260227528662088853297433760929304295671042527265801679554881837470494346487000179177821858508691321126002998858278382547608358678198137822926531983953583211075853276017818984694073652123228994543592523680308600925188371917880985109636681406029852621041395741441909637977225890991578542957763473594300800365469051173656922467035072267338219886330578998659801593491666669406023516969212993751066757508296166459601026771076382640042423233085139967463841594166555566870443112072818374574955200594672391836447538100635454705302571645345041796849487993430112185836229912402914596242989111960425898722165353521873924884905715108907448672817172984474126179578264438339362732993239574599656414009951628405317799418067589376934174279842379963088740479142569726656428112548003839270381106899872502830162017786235673386906604371157528741338929054164282493992347549868858150682108749550477846444123041540331999452480006364969872467666190130113888239567655854488231178801592955383552010273623827107760900447334059223184186830721466119010442714523403631594673110894819119840196547864100740102651916824026978419385621015594130163044678744426400910872131488867944542906848662478692055313537220453281174769429332214992402399872751150422598323183117625833860096421706940987795378843785161227515613157190336184135338479233868536276312135929072724344308315403478253629121307781203994325567996878188408323587192374865989196223118644106046626713846761518247622104107897687266046499192692693924681874439972728216061661162917040307882410971774138452753187292070838178918433301238528518888078700024235459504963382894579483118401203333903478141997455346942540332711842021408161700748818453342084809042712671004047592082981250020658205944835703871089809949224603157153664855065593304561415947608962070466987748501773281117076326886461264179020037601648158881274075389479327920729108930344652902598611803602195376425913592265272512227593468791913100276638091737397589085505278720661695873305463180121824228580581328541702546569537497566155774349732967245339786363582115452398480811153418231501158682480294033471871952395056462325004922230579825534600111984970899288024629722767977701584345418820706401444692981979821411743894604416867010480290160245259380101015154928450249165382744076224612924102265086931468052803924094918865317572952807156315524717609609074265589664986471398710827561177791648050680593846053148785645373584605166278380316324424256159881615468145868197974086338708101088314930572402588020175865338186889509530250322623389442056633403104710619636182827244551123787938788522276148593760147673834517962137149155551662175515602068802265253491073653166276927618816404299997473135525740172522655961675911889475371715428114528487712226479578589393426993573313942564096583750340475425798253011302437318215055382384325643814449264640622837688342333948007861443192404667953499624061438166954818061573299792419842465417134799459033738052419701955815954641394520437274707891618330617075863592534188762201686442036676599121098048501226179473143799173704435501819858581789115287548823031192976899907598551999412827874175307315911711758936432486439118495481690117224379236134077843017565732366024813538167220011465484390509367372923377868144529170194468175758262377833580544319637493942110023734940216116064967107715513093388767493105323316915695390399168225624096348284866939206780482533513753798596649156462882890692294219008373801323505358817994345751902679577430822617239110389012005173858255279633526209872973537507946268062434089443182480824300772469819474231297271726788115837404388118224134864298886897194094382131427436725149917400640775901518550033763883116576554619439027912902067272103273629798657027115634251899032433198568555343435111559804978181839606884730731683505840764697440327560473247413680364856669215352443100882624391608347095954896707643390821672340437970700533210237678173281582795916508823170428534557787235236119585334759429699380973784764387896894580715610758141362354461423804060387227840716313170313495173384392571099475722226874880580399187048971338092221352568832012462044243748391879896073460571472026780073874076102572137115053101699756207708206726805647329296413447991999805573017432096951805728715371942602661213367655992773249203846569819067132776926907946250705579179303518720003129358080283280662499713493025557471054567806808077518435571749814944493612198460434077914018300179884854698436621856820864237944880007324268056477784123460242504002388639756900341485150745255777108327349886204888589844048468419145844398462657546801647720436139831029617521517444945339823561335282312010766112992132969207481504085614760896341171045354123876848654200334850373517191306163868465551959912402750247995328008582131224249553817853064897212928787739992062613932054369087412458035039613730415901626610740946076223637272429192514065646343864081764195627120427513061401184906057572749431076008144205906228285937652580598974865245557989302289200985209844905821808465435448250597316795222558896084661878935703635756681314173826815900762822992246725763363349505144479364593733535898926502378297705896968458031862393798760128484298479489775106197386225756009303538773068638257003384806064477776971173049270279764159536498826536062183153420073447546446969178242275564319398911690610287238774925976448530044366305414212549273523267993672836386645426992331443769327300465348489001962509172272705164264530553139276134914546626928153027136769829568289050215332328797710068303937555634876629225481859308110158125934622858213352376175441531261731644931396212316758846735266837058288216050120332920917749011551070153172718009110717296822441242597352806558645454374008303580555048592937036576822129244741076853098959424260466869049377773520886091092658987710261168981756988873793987661674334751316093096308623422438553829646460043284521184090810643852182569148163361742145786465105828368586419984829508916597339982003246851749896992385207405250051338365538541148170377739114804495049484485525010085519937907251976394205510541640080219701136556164258457418782025722453506576438726101253602284266736432807526704016695099219412484989781273346816934990029088138622806469877261633523051502262706848080253468498357819148782378916535931984560645839966345219099262854342077242189594736257030155789521413158491847226302754169161359348001303032161364084629225382586547562053759817148018034650472127232407503699635322656265611227901979279443418361965303093021829321272860363675682995102945955427124829767822316361653572340352456926080652720353264169987518318468762287405448351521904884759657827416835479991986953608538931498910747257523546507980371977470666519707564597749796061942210203224480350489086109713698356903372719223448441870008721776719153434883771353768313506674097206649458960762844157122200258054889575967552537624018879058983668879577803838482420860391732639959735435993565902711263925612934427495847342710120706963650752344874794464471773918972564856042374610991463177896613699544564664510515016924724100880073511339328636066877314922614274994732632635387461065252841043527190402014085893813765046202382403215698063875905218763695338852807967987964303415316398928172882130628171467226459372935124285371000460033984417889134400203917322860784587966626450032726540343670179496630563340699978941628271092431902399334731037176781412006045674654598881467336306798189191783001685894708664560403840507284611604542928546641646079153296651452936151158358784388219410813105411727170272954374831117301828640044708470665337962729265604632458863645560157704590944191417696194755822826556556291186759898660604266886791539514103558517418228350572205742657005181908744149621398551424118918625524461442623310397933403185925807521110363233277547200417126111224325976885782087677013895031135949175011625604316127028096690077984176178683371154996419268933363968863718732527192532017949425077167131300335690494251697619420392042705817653898838800413696176602734289773741656984943743393704301245240346437841230887407868179873770019334213628654902810486322858051659993990857707535325445924913015043757719377252804469697777111651635597514489965935273666423963892627772358138564306141306870257258923007251555363809514075613750767289357401241955207598925601812877899449141293905648863151308395746305708816502472964096379795736767579978229940515715100875493747154149423556290930035591701873341442654893217543520870789516658181980199479268985633523460777287193911792250347933534804867796564318655294471620931271239072667516620528997016870713673330237206016838152330901151912503066006290014942601536066319582886601830824526146940382086216242907193129155850972063115989909547516034595113011753005387490413666790938241019344599113755151265609476258628860949013197117506359772215206862947047478944159956325877581923468612073928468867438435446706481329441605223548721400382369648234043830073407195306959643995283869774739678179881531224074650237725981899699572508581227973485660785661438035102373046579858635546009502584686552752207787616693753011962937387695691930432142265465616247476879090772098907738044432518944926749792477013387266213720351203586854990989486460766408025864605145378337527509550729153727417388622631533365991951535829486941184913985475827758409987985070999482487309678511105889003698477794336995926320070492041867051494226042614155878113085394356532348664930766781405650580809789298387075561430153532282147013909203043396558392451418421867952670630432593387982929413911398134421283063326157202655142493735815255701970837412586737724641506720180547107224098069286053691269172634973759211045459177671920150683725227154862878288529538193118982908501738965732674236945923917761098219075242887948362338437708531163988443350295913087891928398003445519449244029119955543974670563399175206509620807988818811739264776894332622857311622181904081325430024689092945710972617392505162907000842272670462942650883834246214322053330594052191814107141160617120020617060199888933990822831810058921546780775928725293777598197344092085578408335741046065920558857476609738342700761215474180599165711060073129599835004092032983798134280711753806864669688136533480208047382256146911790629992322192164423059192964419234986463832792220444268584544823779452262088024437668724881549319319745496514251386616685556325755121250233002113533518181865971342817064543946121079579410567444631548712492754302694395504044980184530844848009581381176392632027358327994420281029919626858068493906150429230043052216260071206077412442302114142626133809669172078532134788399840462257641670837003627497898731637765296980626164897922854220445242112066756275431770455508136098556019444208876826311329491328895170646354020200966216518747649495075333439416701788099062048881837908275394597182030828264489701849431103942461063161617863846626471268959427577110224296090454144297221339844201544751429492510622241896787203164364439177419624391530290649967972548846712529995623100621091634138962763714068145734765309534954320520607104549436150905164439343325602805108161075892971855944566218766753379712261894333850212821734892728231041131324314824319260446661231617774826235632734270558078677049527158209534679584883254666646197147336497079475937811689486500074615913188799882562776037836913566603522357569929050494587832906828314536632743408971123927609546809610588901337605795008363488209876206077639273519938325115377819578609610930420612263952399446018586838267476653656975624911427636378093844923219246369270348632231307733873873935346204893380410559519848210576480138170869304587693940561718164200926244063877957964859760884778059617728444530620248636833666558186945125151287069654962141253499315614649297755310774775388621239249905608667393193142257444234653931890239902907981432992330421505327970895943277408855113419792693920070880947798159315952638712820835121793348092406745658891428546124029529172696981977372059542787785390964207534938670983476082427464767750499675027421846080879205394755472835121380784284179528133950467740467955266092827360547726678150019679011713927499669533488709065253573361923097796120829298629479390744903762462909592805883603605957493190605854747247942616185799329383489623724683829575217588219848015594736742800421774309526450866707095402102370410376871595243038676714476489256713417221466951709203984411369571343587136744464855685127484207782479437085915080485602294218614298951648143971218710150549569149480067484576804491645729671804740100445737958028801206718720368996784964304338179647207319781794222198117470013109331286532803896815028627988690897933613487213486611504174046393621528498007602483929594551630895887458647048635188928518297388058591054742228267700580232774164467930016014560425207748362165080240946453919245419996571807692723551455556783493222062533453054665345426651307247352414733656083014133520555833803091941956499138240742583162431999479975825649684368543747871412830307666137084689544705841352516025673101173952115090522570057035497340731629332484065876742933894394915759818784309791807467190902881386210985232884213393109283404384784348391537414770363954862837378737629759937178801058035206305129495889699803637809356415824308851966654320624374919497000520928556495060478239698423604063075361319418078462821942241747177001342987864905585978410503255797525023451429057131837560030604073176887496810172121677734457061691264167811196160448758023939027060583269254253332330167973880596236111561685039309029201930709054284352525372359751366067573128226786120911509668273521789226532531277039710233212004526446221578501305796659255215022889965659289849726278677057550768380080128174330239946087806481613115384628494342129757933977166698019986239334988796360617426827080162972640939330140646442179946440865357791663773161964952503166946633145136147260491325408042400425251752973397911779421724616045787342634326777022238098428250883574712051817868145661532570542477660405354182375723872383374613527816842891824895040873523163502471008427481148296147245048884504550089157452873041526678826424713002763353191256991543732257081443737070461312462074770062423599257950478442901365888949740411112229790483129393375318012923743579191198430092663330742107470196704338013720456613380136639986796627483122241515142668406130446597752627401112952265891165245483371261930861756011960602020825380488103035456220601552273062932481922142035986583647112005672236106128480842450050004232128548096255989348220237384362219669678704516021020624325788516620531109446987835087172889105659655112218628232912319588800983898416436223564272079855415292019639595890314534903552275509951512317074838947345963562678738122884271196267659882800283131843488714451998781794200966754924814523612906639815314310162885728322546743952777338083530775226080552541470362743807363827896661229611301927914605060208116818210868229669043714704869759095056469326345747865030579696607028236962994915645176362108335080732090428229496654971156604820509246506314268029441293093433196386922721171609283602323453216743303003586114240115491695823637285559732187556131400990821065663418710330190810243421315382857487748380346794769359015731004630039549461150078459234383426849448836602790904261454148794428529124932687449117507411457044238452225945145684855814511063516699346755465974577603697059315713341660335138374868036174262104898200065053518584995569119938370786165289804171052774011657074243419703854318040455524803949759776970530379925901159093588951658237298816184788479685456884938416620113576230891791143743209914857953317249926198471578461128505179068433556181273540036608341102881908361108776490865624516851677726496490285021461858138031505004320127284317524807532522821036315318117761063886122860924764309940003833970351020563202845018802082590806815673893345270349645251339185687612509297758351625887936158029783144024207101910672084636332126253489839724889717788489632898468847193226449231057236921986982267493302422992489703405404502576767958129165685323653577439730213157611158162092245334234218405041178061708655947845932600168434026730842171592717442153314735467764768192923632740153069423901214943354256797200570044879075102938865499704585282445579966738950596976604412140675417668565452238914598888724613614226576314180107238206110304081557880477335549771505651471192424405169385643072169954721228320849976263413794337474798871054059486923896241008852392215053735013184397038348092625316967155792418148615493737659872695161580561535549164459627083641018881486653101237232383605922858697513134160843728924496052282561578302847978281461941578267082585522147803662576003718843922543337309195300733316141495058910953657533835276986920217497310933061360317851264489533078495613334793028115284447181763732162113748350718438889993833996654120235142647252825967798740787208263392185879489856462751858563957535979747564193406553825267149891473711834848828710427728089857396948145410840881444162591415257316214338175919068935827942163282705360427349974708575852131596485238642752266548417989231239773066605227241665029372609782310920147935577589807750201479864205917957681054756066202222814817712510213195250683651949980935393313593729768265182583741360618637833378419140925730358773369845422084853046525948032224531138610250199631140701019166362329753036792517349870235178392056536606113565908756736002820852729162005804455003107458583757707706477378440585557919546259184789600739130502896772454479536151314795672923245470246366524878957152885033228574547408478901202856242084137969833787576968710167394050388177125474693756672142825366330814879928926708617011393936597981025220438133653470572958398314655038813482723780733245562277583165563971361458905757855618377389412316366275381059447522746221514302930736004024665111162176542106139314061925765930604695973832324660067562781677976125120932234135694513121840912945675664446801510754494322968060555977492716428747971505012373336138935729502347888086235488414236263305033981208970818415500261328148122385585073051071813292636808177688379721867807138589221220981881763191370610020984840973699541864801439585766365835176424626234845770864563722549111466978916950945249568330177852590991589606558145007935352317477352844975743441403338924577248870126793856403024659452684881284933977918272837900804903232056510837093015344709037556269028052079525848762552520562622296548155077254097952842688700740985032544959218438252685623241244060424042693308097306946327236768223504827585342890587127549268484671798616475372945280586882497927861505552644430578592710432246160163769939883295430581402831736796237919365313598689063377500289590970200658740997207358385560622131307106470197617455230567699208854827162823846907418864952914343872446120595557111691477704263004995957805859690050402178953483381693644312828686437637831819187197376133537676489798717076076333568299451689049613348152001485316972397293160568885672802758422017762289756448898636942421315439424639775797520841768180350723211694781133418785259278049519230858998345481223836991098874162953683715621257427309387948477926098553594122706814825087444509058056268984066652943037366787801099188197230817935404003643454791864449373930658081881043173324048577330032799264058842015560020447520592548098810594218528459948544869168895784043486155540005591473348277745954634593330681899539518419596813692582412636731465521652543496094490501859031258234282229997198901594956773206410489239674803485632855784009917639735264809927248985583534949969842566774469794589441874076916692713522415914754671672940930419821133818750763918320786453306361036567943660854805759283515009852293174781669055534942167537157726322305597762818822780650408769153528924024094542373320352779904251799473639152237253376759863447848646923559928355820395304316462087479682692007821248421896303076592486759482288720366865738567726063080100664157962847906069595003856680357557507611518711490542765556287103202947522543825987633474059522832753353761194107626559367188580495757405271400378333833992855920391476240207051697969356248580600333335278281171089254906955710616767708580778680434271486606153781379068914407312689739496958659952424890112572538811943024698049901663213785922112150909507022420324269200647400653848732347808245176508719454465196110263909172785004502117690136574267802897294324424512919734194679681854985997648402571965797346379990635157381138416696793658997827040786181763587295919721081509613336653055932966958221954279891588903417960455092077236534304220388855926168502275301643307377770884432030934777893151156348562551287152872451648869849983104142164174060290226769294107373764439422737875351487732653041903371820731996726093674573515253114426318850284879640700512434782043883459457970850745129605080152325233273017606904748236252823776743071367735725210937371988561395255664696487912753053318317114997778817395772247536367726568426576669304712695649125233217350554208038530739104490578568690035017394838015676817903057816511198893981284026132563917855486702675649991479801148658152088374112652268885361036056358638025872275653796251840716904361045069920362886716683153572626373361077813663419787160021096604194542580400549631849683050947176075146601271258405060976049443111239335806345189162423145268132645663775513260634932080895824793308339094690897814711183168178683740525826651696814611909201990228558714161188518044666405804418082860718413792693033593712606917100589897530867176017872161668001495426112398501556997410378964507809355343047805433863134867728326840835850045462768708350607909483800433602445054222834333419367821154068220386287943524174482231562685812912131459170554632790747171057291671923026045700092983993044449770247939935672892572609364749294815028241178005894462871850006670380774156316277003244907961408410637497013300949417508732794169954963402166478294079521028369775429540807346160914654522775926810355623843349169167897913510697750662056966966509120202016173242063486347872740201457648072227402335759737054301689438250573420253679688158685978314844502015668153936000684682625635260182567634079404592839328144185610075838605922261729111763268490554268478673870687941701929293631798145458569500939086682066087206976748737789612919108509310290528874672906506351888629989204291823684160030956707116782113003020177967882085308384300280593793520873479633609557197261516510308292729097638733112021538457404331588711116614993084693671575170246956801554601730286056349606973808332892937116985633773408799127385408552881299713700212005006729602110394941170672814799487488991829198878092106329064324654474937431638677788809123711440513678718175426540297229161335237016590707290516098956331484145485459993517644679114942506430868865069867247877209832017188571391328443457002636028910314836935072461825603940141418236814402449998411032652000554711468862838495699887826610263356897296961952387692751479650796572235507901002509215162148657560824518998089452208946545073876278265222925455576286732616935138601521403698426909568576820397710995404460498409930410251614468738723966730301515840123953326432488553293717471666985559145248007445254398345797556600367242217877210216538198137299223410367242317581518855907867826722115647546918016740860509493533401590164444705765343550161984932822132340466256403718653128738321037886068520688492795926175623278479066119095132732906105492131408622206642942899626084519492255433034556246824833156937457096533215579033006565539088550446717133375895816420551104567411018436362059554383298114412090356510830045619517168404913987167163129078666560799508571009705898081206730708718331249336760776262570807457448050421662754104764522190411448923154492841722557733158372379940165966333250683808116330191533146244009350388187417796447754086999128821937808440305591055644090445470642698058183266827515695913047241436847438855330438478255510753835052183244813678034246188951043843296807977087661211301346898936232263203494080169643728656843849827609880102642412840251888174275869233746479258416393558365799698590297696927592000864834426628040039254978069580275386170854922807776549127226493065945734212786127938602957577380392512357216691014007707174447689159920215002121897678466416681006315589375787486191343424939779520189115937090039358172770978986197612138656937419267522175260239725332942490802489473758115669862166434797338803258310037456226273465751078510038172299746444395732827917123014941018351898836461193072098582483270540599731251772789598420929593149153021287918152031405375225866508399298633109044196784068624103690763341746651751070449114824531131081874627886692010988473584548405991280967240306989388605387050997017399519344038108005420724105576298294193705610324484891990858586008624411258229347449037893416283983379832244432121759184805441669195804574420011139391435487833719536570047459730067222257631238104066039927358304410092835311033020649894839227315425372138044459601886516113427488532105264097564781890172693541817144052563869252974581995180329287687573219708825838995431844866301502640926946882822818578728926887485584659468987814192636021969740536380314225911628483164617281677852121838807931448535168163618010223374828349037653567777738369464171602692755240969580630333261469891647408811899866506419953561936004740532377000438609645417390671138376743035786921838690190302804685581580300990379627874250695127262547448279570586956563013495201391434288620388666789999506089295293239672522600680188504118788784702239812130252635802497507646800733942928377665209988644566289116485757806373918034835413285363942995145279815453492445370352994826694335438533548166641104267166666064207430836321684680790795030773993831573019315623187491475040973609624798535770068302072786740894044819200092720867920279605156897173963587611928566138529451721625852453079338847306347046041541787910500044539197654763592460812662768560352929091488543721795183207752405290825551684353952832776144960116894558625985437157086194733751216820813250733541418931909575309753555976356313954680817283514063903040846200025641476711644602622354943063901561156191409400868561020436928778229384755759677089344082828040538913808456336364407763594173688055631072869523690753879803214995997700339574825457261018209786445183139376077693031310888308650722066162572951020014898613839123358230171225213192878379701782798266537478470194971529779234665643815145487893217500293976092199622901407293877093736120742429034651319318602483370528417496413707879234588543295693333998153575984763968876177198730738283016467103423625117777947516000735850553605145153901591847855763613868886355520415701063558336016441225600855768067452811212259407019941206482668007820185143424241119073971983178926392537495041970408136596021870278304887850840464942598741446468047800651528065975547350811925662504673443262476944173312962114804762205363116937000966961154603313534576691167740515549592977901174013998614655730683271843948828342479880490882221050228156674439435994289099289413905937685953496302564671973144424334493319716135221615511994154987593782893637013252961643416513657878101016898259070213893037474136725705433902458363208057142571153255229243129293367228153774929270916220893509300269052575069127702234363903657559340932889084385312774629017494321725721625575205185453728479244873677887062029302985087397645254539807579246289566212221851088118581298179228992404980987575214047677105928151049322628896273044357418800662059966392553097166469919042819426269603541741359534418221763453132890239826414687950894986345326659375577990834606460314957960706370726103312723169023635667793792106813415024351378741884065792748027311642579370216988407255050772119985668274054349360128979930086800814570492419825730643992220073136062569524223342661972303396509328098955256855480004450669568863505584946078724219306552099699678526808361159887043696291610132456767737223695878849353716637977357716348889468392426797522975230904740827437843038337955097657914823064966984349491474493438221201094769912921675662479319940912325167266451098000923230776248028349871652946645255829340998225796102402701373177339334431842902485529708583381825925722580991647061401845344791407514838298970929598661961673030805527986438988327765162616279068366378225078168587405115878184978985647306251398180952806415604165385621538822749031596683080802489829822479343215236544936679263485355554965750179583037240384450648171419032337702772347005650637823683316158449863502637215416165507747988107851495877508731044258958079972562491275926107168253524051145706409494159020034562241911592158663895082339479051171107794965441018833167286532991824873448664203864789943247713483269751377727269288342290304403157920445181567750866219178087432031642165576894922010427958691187158035900299586065813648283371934863715071047978422567321146721024615553225950002625501589009866937449393340048523340737776792389540199486332150988891695494198759592485552992062241303758039340874445477964134505650160715823732365710822120756997529743781025874390416970244341542984062915996698090955537403738463337052821395219019757304797990513615763238519612771753147567979928072351434086360753306796611361361670820764939855338368145324747988851954148957013047989307968355606459882110665125864774854343744051634803132408423695246447529052052969885648157306622623537284267321236454139210068678941755881998679889625313606718356769241961605455132325125127546284118208735019718807583124496227829134225146208683363866994051450648425866681273379691311739236255518562758376850061053272739446807301713827613514716929271438728526386467564176737540102461461058921520882321830156521372256279823648079421220664711701747625125487021875445564339744725567464685152606797057361474332482453428016949487129095559102788870759607442748885391351746262061409904923276176058147287116874398161157621930516979906778729068338283082341864397658257039453461235037917320347076348942335904104522205816045486000500300866008646767309855924520708650815547251385817426646338194722890650598020116577578426886928544583897466750910137815701226745710553733419637292168124358982401720802628855104338310339876775573771885879593959443757187007882785981692202121423590567043885954414361338271179408464741899122507671783320204292631448330595682337609051664545183792393349652596508746330096739722512042218331439306385362957798730978725816086246492803620413054875043459527146176222444805704189460701456337621009836784231543835425665072987539597211171802150670051792509324891800854330666740901755133652098560492597240302309294068999597416260713928356288302303389673259032220890007381258227013122116825902882636125809897908530840753334672684647033866407718619066394954049012719982690736921183208680563766722548266392548970067850854253351379869350898291994463574286401130800536165611076232329553985412985832997954531975765802337614049308116215976611320260298238840597419262827897020851870585625925104210350751514381263386879769039191071471323370085624051729905630583713570806808653826577141663339798437254211053148886041961968468295056166209208721547496350952959373512250005192070436543457086778099166675436630491677173638407214924259010328420376450735450958622578561537272002368994786971786269183361235512870315483859939529069838513681122824925632233729532210848022601469708295875794050513856233499266867319246297431956022044139537859779116318671271519591648887015170082531012567421829007897681421605244345688071230220624238894195203135211107617527539965185589096370616501150292205624356783233949711050156384913021512215918403155419391004594059454385269876698235897350982862334823445839141479045332745852714104795715259375203008260158679349198878532348480900292184702151638850260048218013603954935536691614952938112881130477810306991669343090655913833341366726631290521484346508632091659489332731306658388438911877739360616804118257636425115022750758826449876521152094633704276445106438271978637517787735299676307516967995977208983745535103439351751341457002001432945421339279974545191932297619663493671337760369811301759090088490256194114624828346299719299084582493459283884480967701682734744326559067912565355712237857609565134195502016544548172525975559181005856913940472053596641377347505305327906363344758076459761993933618857432977076373223897521878895416426168055562293256839568974146711884109206031555569682833391101910594443054121544156477179136942701805678857129957710198544789808152154716765291672393471756923680054759848482125096433790904511681535101698152133868908473523049633681355809526226801115382562550150644234700787277511746618696262367936177185474570572223775038280646362212002228185489642865299749943531113433525275042552626807504118667721935264909427245156137246367428055371278951499629048712120060525466789998951688484052031231509582281340509482095457083141518479394829087836088708678404695604363232588143417526314971489900465617869938429112599014461504442513933568119898520627142823654476313838030112928690031636072374827950040895682541463136752391864148769258387275273990068472981400419879559874276917285350355731890440612369333563166117918605226991705201619212062537565486428456062760004881395135402381065156944150660297628232096940299737845115640766251717363277417666554153511081941451533975362097058630499632776226522193744743851617199359927488555796628064304943612600505669131842827461961170940513759094288863980300000982390254212080365189311419726126804880142653910044747875743547149778624164227139071256246786917584948576140946963037157005098725226090432937195280036910249232912437401218301063161105578814286076849208254563131849398867113014515730820130332739553504055385733528385604234970728850505386575480327726014473571630313796160775761868164976012354271735621839866035686023756001151769053400205262972377165722688920355289041391924507413406374909478358256657619506594322578705482063492031890529616232246327266336918050782472647901896045115929767912872864911720898932433538503768327678633929238187335446660291140344869205183362095057709185667048834340508302504014622055733027500185948470372912963424099422330800204148569750878544225147667064365976076747420012460072962673841687645935120503556307784605663735430973341519604700005882869429970918776736666795066814945473673310312297342769567553979141080753498524407445020696714356178622248988445228886339735993090622774771288492340271560113239512930357237342109484189436015012375238019685434570285271679827215791642410676934895352231388635512106325597789311576890890002681714837452405795887381616911577272257704827521289724559620247451772193668101904940856794138571903167170768091805325768614015275647890905203346693317692044224447781176147236398946276939698682602047307489928938335738758453171479248531427774514296683517758661671674352892617051501724591152392968888250729965768695709330934325195482112879221571293711343131846330171085320998468801593810734552803009320256257018156475936880534151369320553726824329649732666553841668323551416785068779368249064528111155232579131502896627398038919187592442225829701448043562343866131205195737451021492544682246995680580568036264527398654065396751794613471238652149046695511919520808311261720813244015856428882264896583661913792042147008626993226481326072082574857205527059617811793077845947153252861697565243809412037781535802933471075672552518938191591039118404062341903091823594303786037270469171019793223710968250538979351798447848838426268733538299221291810593391881551002804787521810832447695079258930453294465601070893849633568904509933469874671299390954922734818504984898144283509729078660224365605094933459030905522809643423583039051169548129699305703343544015189878535590568045279187670704919585142139699371553506395973028427803287122089764457624515395651511064493513792691553112265320970645750084519140950217397964393100017128982672942063415592367437992883943236397745216274488999111598843848040416053324790364781638204203403449128576509247237421026206523165097524916736312780783726159146291165359855528543972299647896482841073072786255738404314131851625592167392189138620519172274900699183022013809482905129261423755245160736285906004227327818934617359444543081150765457391052079241862635802624283421204553621747881487688911606714029767525541788894977790360923544555393771255735718827855677828760241931230464588301070369227092190324766543796472776249873160435891496249434012712936939885394737288592766384448350675686606162334647365372321137318337865234610216671506289288874951997719302302443139169044098550535368850889830222647763413496954398839331419427943979012536191210259949218582565590266466009485346734418158335131159780389071045592076999187476490773440603783552969700037198865347665077480433570613632746715655445867835064370457115179837739503627267246038545495633315571643079434786553453964320821811503683831801960417216117436722661392993224006732516119926108673272207793833878834453987033940408840761317561407928127181165461834168137974674467419998806328868060721649415143439860498420817055959576444607171479773790805337171265383263908343652913934920186351551191195955893288360246838230396813382824160790931004301021668219991532324792979451935160801631936128345908400791371494048283688751590530821908887843164009214773178219005284687490979390561015308793082163320940695281217615535376834993305974653182338985342423848497986430303466000454578955177329092928486383327038453023814225922764679780332786018081380021685879770338872815116238757465679452616109677669383022196580503530756409840515595711886369738906298445494643241997274596386786770023876243016264908265559184124900147566080533702618060182991124880252023916392347765800341522706564136843276220641362790620598758018503866029739400585249640749956823482915301218084421462084912823310960066973383976504360480756299587691324203092760580274576038002896672158830277498065932681331657033768235677304329689131339188093644355986589406743684321284174757505747174610710903903728927104181200420266454861610707978166703981108243994623798832907625921536976555246655746519416489147899747221773290601410834413307851954427128956873490735375308997282424816756546908571992121779311463929355524873565340682744356874231880278503701329900789120695102894284521456727966052790901525334254586960858826249158565640857576048077197161568224923510536495852421273917530469530698535375818739665824586524265313446784721370163767353790579257940378420934811479494090148964575080684679696083559647761954045637203897880494734362055950117274942370652738096759331716494367541127397126150660047159367804034810707522646920395872694924403419372688755859105252631965681829530335674178721568441973796530179731221678320675208549909404147407478564519032819486410401153376768233795125025381646598124328042207156198920923249098341793589595174272396026249573598173905344278710558360232914674991043934948993587090923409681998407159662521333422372482051591798174473814420589818791198624438688977173628821157229164714984434901484425955545728029184140400087272665266757093226814561331720204377034257351942943878113110189635627611929637633932680419329339001182427931214641676383646482705308820584166343240518982074497381476311917362350515717382948983282186781008550004538742373996852812340721600979382398751386897904700195656812928188901959890442493738574166746909217390942478852344287099919593716164832971683311358623573010167728492049662484464108756163418346017796398483168845467758256436269694988829831606246577298505146978977327793026324079210399463238457086512726073448282624342187112180620832050538528696234515839348018893264024110900900925691939960899124592494028935397228270254236217701072870396236300870610182954599084440926254493094759151516768610228948256662789983045152693958167813746333175566598898799669170193817637369718182020742917068929503495579383449392153998290222050647580213366615842367263175342339394980284810027594504107569075085928696631638550322074680233062228819643338946590891282828030074722793988951363082855407876570637375864408218003795421459026948192168184488530837583206107658206419730471190877924743116262770871083662054263521489039867640735018486960912259352842700525785368898064120090952252653410572578405316877234591280867745278283755925521193696579082277839082088235754928584590020139074171532310839219066000720245964784036805729209305602755154441591166396824891141912257294502615787589951744245956637797572095500172569904128336892377595116496277657401790130238667752945355818737879545257231411969512016050197657874639395066731764467544046612847048787366679788036504608963092313830043076254755079940832761146638213199650955077700285675200339069160957979581466057409818757744503081318552907552366985938574478716408629578850852156367394210004783242691691098887359013245858441538477963857780738057228705495307454474966541990359724882717017889176267176877244799134285206149309714322906430916609147450791590703366343672524354212927288092257443630449124046269468740418162924534795716086941051982274911812520906573480611967911899463298356325233308936176846891530137184219080589828057907252921961080433157739580965157318387559233783204195866324699423227577602078129251465509408177985014979124496544137276980452951044710031837652826807970056735235236748282906577576753556815641500924312768832930118615802192983576355644108278363127825952827266795669089221851268221127634219630528695878931494533979094190320093306406518118254094268137526185332815006116802598010259603117054219638957081046294433522336181144380230855876342133082818125237789038433032573061873655375901128283732645238356730724769702513378318515487385189754191476410921408204904051238252961369166931738129618232086020659009142401631818824360544497390954023196652190100324667471919837735210756396261685743377623736245106663540241847752388794147353216231324243371972651363249450961457883163764466972209101903299499024588811997866065049792839266510310684598953110047230200336726945572147462096602058563782368575097821708263713454528224317019960218183003728899644506410411500083596987677921857999448860829281499062909420371090048895221066411460656547203324762127223460135532512757129532825163926550901837200483303678030745400311567757553739199149060679303495689872523930498160600446427161700838449784297786192183858566143827007554142933108399237220457050667184738544804283376805592782840341919025779378056308741539174921955081886510065821335224678786687429290942112328074372594053442362437389271026032506206110134936584477489846184247531632386772565317575011568328291146925799678347145307556922177908264678135959251639086797532678566331355218100769183412635882895401960107371748117113056286911421333631804881017161273306112589253945162173561582782101527125630010882413496505262892881384342232608843702325915694334187162009016767999400257865793571832752916244995219283787344565634506445783748172520677000411701925206055612827724743215512446730658440779631424949921250536003878197031462261779417399110609888720975419896373918291015934876602255918721020817870845815995712342199489879489895508194310346371890925207660464686193258962619619230054148802722364707962869692475667308144712265419953131649670263543472072736408738433544427977849362377585685235131302081519318837140042596281070737982014146758572870983112219402361009328602624370196560405505311504662251054701274204415196160415323189772429011635640399575002480795615144223796935418151736612853293995779728091811792736738788870562342934017763844383612229736743518343546662576132600841037835475402414319910923721550176886187552191588385032773619874131156699747295063662538949150280330282292525989948570342053255191368004968879472532477512622515773531516639823224909839929869539229408824954795265956560277181615413034366733772628139245572094077122032514323429820456891865401226431448314238495206101587896657024774568399687073176730971977917853278051893577294320917848101042232667987793846374109468920264651739011192446499490641062165341864182144865606279872123991914440016260565782778033895211728892007872614407059883644158975652097170176845038475298962278164888972868650002224765266322259893873154616498559264111445290728472976151223667637089540461040972942845373527770466132014648734375739250063374910449625449554617245593466907266560046383406913554158340096902228274185199194336594526079997652979666793118201045050403438943817127190609197052579014494432447925547888160067391254496313156136578190131835236168452665974528929961030822559325654278890889821046426801881651705460951516092920545400333071977237074979847446720562853858300297298886026593552281962375336593685027421977219995503936779954571773254180411322484307643473377410120368734523707341194571433657360090659589025686883928692990070835989261407831697150462221120037898796912922432610053222653497104881146644793697938867888883849216578961115566854091019724804370180007736236792632455882406215659033930202010342865834898225774912351250615177154038154280821227676907613645160535283104035104893991243626605982173391288946324787951655498060471743507431661984977638591374548032307196481645589026047073584077480331626808430784927204123567402734587008796392118189222178120672963045121768181622457738895402564970750651293345446289425126003406495211019454970540782241354845845947276162949064961400881193721241151372041340849806971453656940658608037460826100968191764377045417645993533534131750184890106729554677433647160830827958327206649784216999017835898876569318656984452536217936557259324240142703250124628445661167223859083875542529325534221813396122003603337823278711194451340418832934240604929394323529305208765378656639816179141607271445211689977512447666354222395992552785496139500337438486528066891507338544123974851910087047081794013005653378985642830013082413521268563772721027819807010405228677657865123841858661572198239110572608659054811767189283561309800029730973670384039031731921972805127892170688895167634949707912276070209994087215942458930691947574001732351496535717754978492807699309020594094066826967510342847097747559455041906360633224705541451093226058858588345014847621849641178287251844344427297236410907174450242030747463519887431728679406891437934087751421313135623048850098939069363450261955677496736952197896171938741076435065949581244568398081697179645623318778263854875345633615731093402596449044926699516098469780920417689836199028572423626815973682223697040830018306850369579394059940157959467949476301881602173005422523815610456360682601135232727913005139908420375467289380904819188781948463177549887238526113132527333335366338168845036785504772621112517847072819140081764747487340865184359905802463857358510550688393276456998369191286319530811263648998889562709269483962269040193299655593411124354121260247151589404624825326565374976190916343074761415082799564232344171141017901859453804648728845640560909602501441805510126077524073666796019252466196060975548224022879305617431688645131107191824780006680224613568858311191049429026160761265606686770435673126390531156512569711394606124401390335420006137146228841919882277164296124911876088265866639768076405285060106967936495255185393187124561879668834297336099380573302501495891934995356453127419338646912766231248980803355988706300687091690785369559374620417790908523144550841330572463546848559696317088727439995232729575467028213987848241831678993660277165125413492489924761262946321140360145094463588634920054595710270246135314467573283262928257428065056898782929690502931136264298240902498618032740094101967622027591605717955725649411717066019923007790119321675573879904678284017588575726317401762718346002632109342420211970558511537926968047448616284071526757670786297460012286149771842443900991513492221670628502745542750653304215045901236327666352955619540164581100213284702754653488346613776223576024344718093117902825130341161774187782018366525191744003847412385274206098765151702807912144729633765744835211543088691314629469709403151071697275908917110356915916082459841984338303392048000401722609409920214571604313714536655845466651193420437129195461596062335997717137743139301511863658751845933740782471616185381258675362489276690199646955978413703034240125626283557569359926060244033579609364976964723399071480923908770339927696569438635133389311784252209754989391352270309945912351263675027096225859435749237421276066437154455981610623510288074722426445880037903748852191148969605940466387939632504346994662855672207188308094721637210289685272667903754461973709297061195135332091651567494778790719387655160336771007276238456324330588224785855404797119259955671764898201405999042409072804964799077481542542229806789821648051633696036437141780706121047154890453782294977628383433711803996954948645668871281444487206071635740462027754030876785043228615975929861726412378135394859804369526705628726726249817298616669458114106487561363907243444358737476267964577597985712205709491118764636706211816146627797975635839922897547710654765243453839819858305369596546320647718570150899048012961046469632388669590728542061874838066991392017394678135236806763920348848688151804377441088960433456026515931379679018135504507924952576964703706191168883746776050147758271544538930355659318962409467568088504605252535745496639185049701469822739828887451501164592856284131289675597856500129736048257966065065719895831994114311036050951633235007815683757902409321298620152071590490888912020442085722833521925880462202470745090023700953305184371904558734366075285307148215480371911135655045108861021377656674879387918124159793666433001949763134603585218148070830750852592312585356973337450526250674849579116686565662744339111011546291652662980900897866030853883796071397192145328282345578145622423536253931846611797784345265698690114081922514187245615044718210460172564162684852436120202614004041452585477533331730449179215059141399422007132845565312903964165026863167470849616755338672807004831357440143398896158050233437995185050518322012199443658891462031530586022950557731813819424978698726595055914613620310464198472225587716005354951868260375510397529542375174796096317289447861794597790501798806899334736188392743599969667515583060777243119050645781661910943996998239342507104372186277251805499314778095862171406310844308137205572730747293123099609735309927466145668269169525754699626347275465961755700827372979150975563284904108782135704896305625739799248307540123391320695787196275882369437606717257129887215734873749470134662716260631434007161775768224122933457195047887735068791470688392805626702338567805528185947531303166199566017179756334182149854163698546003900913411923019723085776452319499730846132056956370656318001334920066229744407321978121413782776783006153191964150936863620961627359820982469880263387793246720588273272403017582353536194877989588084722580003872722374190036463902820262990161867416599477075208652699805588518274277409637230936816329636103325303467111480481045143823256562998464950000865846434785018920725013373990723388772355914800980606353818528818577588010090846905927895265100152948883534441178160800411794450489295975307552670815981985117790598382076826467837438339750501873000263746873786105545010442410156080458638464804221110430632529828968341383510874715477980064744744168092117736137878898800650173982390421950513524861165741480049267197883309267656374057842146702386535865023072593405149439502030290382661224192232797718475522575310227613223393297693009088813780393336448373785741184872233185723757467554961962557535758899080356783220116622381393680954636863619401596902121054900963942853175184142267955845577798748262327310449389676416078735289949664852992594639141241199127324050401258722049187990871189844706046368395761906300301800973057884967659247605828624303878614844201930926133773316614991871357585143404198488476666363858840521920399659426286694239967023553071145990110409910071437003436709228745402912058841271714892073464422140890857470663760038639174811651600314645753236439167440663864426008985997318356641815189869711733167875789375061140908377574562134342673140071404654529349992421994474200210365511225659521422662091338028351370469498690587905098948420864436344030382677097625676859458894700573248004274186333662709030400126746251218268555903935994201253152892815346560399646263561052867523360954956860608691255183528166066405995561016006768823768945306081420276720668287183544630971388561584043462384692507475667585321601441315277118083147003543431987366870025484645483464614711067398705045836123898121022480164950117255311368373943936732749903101222252677532724399624766719475087636949622283536718192928433934309167297431311856860235813824703284778009601609226854523392967297492178642626723430418939495781820586830604987285224845911595334068481036059564228260077561761268249105844912855646606003090052722720606192284552627244115143435126411148279402136588306628629709759280649426597357363346360475336365016449386887341451825513194482633038611754513307308482635894226829404827481183434612660085595687322811314317731500971880003197057315877410225823266067336068549726072524068111440356115487285598158685289991476795020669950229001594232914549148783260868347629725921115591448238197534543475264318900799514723676252331767829090517164345978752525520628336810842241970818864423124827700313865646226759370978033365193139645024693422286993655900874031293339865738838498728019603994704959022818884093505589856140233430202540831918678845081255717258019159594675751437877170318410498871536049698646282375601690754801084295258150950226645364681747288569502205563909565278061044558752861602026803197062651989533933852765066527040266008149291418442851630355485640106453022845603259819654269733428815051305295419020903947525313733386915526424513371964133628465406180097662188732895835935480308820364750682539203007036731424301776168041161181068216535140872863501338160881646117256703163092619832890220177368791113838614612779756551903742345523653621556365197114008093190405887489210282616959518922714769210787516996112515301871046010483905945103210418225205857593062413752254613797631599080133732355031677563819337855226269094520962766840019883558328511460674221492964789190881197503317903686209711394049124217637840153821667596788922112473136882305296096058986693599514585074404327497100876619539344609309116771223728517088350599796759355132065371835497436260780197473563928938227108335739701010401595255763377625943923600904364759779473068784689327121006684191925988495083883073384965364371425106175045244279575183519838562976007950777356950678948741412687610195488258895264038579806576878600677810517296638655039350901481378667455246870489209964006639752294522729256443146852941890427041095506944589263156137026492134378689851984815609305632246326292371606238451595076192210457821860372104365848152624653539399643095478128659765126015741124450305675335861831943534917672933179006039634625294817589160524593692631304900586406325905614917581004876285455887854574036368797311507491192573664831498586326661455535721820240684311176846895736921212020408740385878271380666131799909992885495228267012939936151316620434642550885740796189122322721684735059801723048696727827221750505941792824403867754864755380339970859849153451222345607707389691455129961902931346994116241834725370302270650037060974133672606821745654581783716935790838067326116859769293959244643996412701248063566750289011925187324902479550835400585292334705506646021849338182053434165835591706356378578614561742153146093177134898416993195288373001414925506161954339398147456498954081344150757385728098787654892958497784301008520835476390750198161322974823054645832106196277370963290917315421680173914976367640489292786194644909139537092088345812148795517124214575667336540774269219057418939288712849801505387900903486395926824824530771024902310555500306208954905936873168201720226295988071032868156726676320721639177551843963650860689124982057962015703406849506941622493574369843112331505001503619145475366926641524225933915757662812938810260325373362523478738188088270570420311405884330547714354174481642739425933448829655503156281560775869129765033020598152384858936498933727187560482287061423449008037662341702018151801645972651168389060251103569627333368722407180646579135004784810220679726748308840105326949880894032709699155600077871524770127468908452421750539745560612032093402517842835800923386383488905967306264097094015530055662763320369758771937613364117795987560898285081905942369983057783803640903313706630979934869708900458981712370091523666638912597860117907276314896350776937990096761234753030613906577864658388167172744541903896119275869554831333139735142088756626559815853602503499625301562133873707482899518711122310010483192346101599869492171931126697069506560106845953101073146475397819595717054976321076103570849597746662007020676795608721955431599120386717152305246869587542412323713119560947209752596783640291287674940104430430044070530482485831231145081693582147393761661786311183681860963785508460962364672234704717871151682973848220950304955874176781402596006535432748446700163806454513145789777957443289040419314696835460985423315336200544606373253303886564223220927800108969457397494486009500827924610527758679192008818753694767367293150712882233041902715982935441058419892974605767633032957841472822634247802499639434557697538766321518077856919192632537844072557766522497215560736215636275607550663299998118026735056234343551377333151204974226521859673814292820430225751488610083330632151868966479706804407037183058128957602147615946454090468754313395097987935057952632265036562293673188285316342782668051254890322279391198071388857438251365575611126570679730180384498613766481640534479077424521216745640206141308450786997901129681891667221511875419859058948637232763749603834997764400436738155991750902314438221030859571912169245536088058411219668973389743619188906093376273519146570217050356662846784724971150372527848072617841187295861819042002245024517184346961338649214292998806239444895849250110892557202165033225798835253778034744256390108783667794552001667438496773970793832033856696147615827553293214364997782750887776273512288682090443780574349018037830404263606395085955673723369019906916317472973896821916344955833686487913929287007665277678924795722768652934417386188763824216798562895955036683545468644791670708798308691158974953691379861903555685297395686246994946228842536859174379621719742811834229218056270235549491961251644062858436613515340852645703985252255231215330555871616718071933641640298780622958198909346590729433928374950559140717238463206988348320034642368170086793050918997798725241449833101729322139035853245883272558078037105429351294165771402601867361953564275756418533516370212068199683026456665957686173359905999872908645655912581733888535659589446832332921885680485973966163424245113570625227851136895730004816386607291040009075214406030685930868696187743541047634738157177742668819507461839513833528991928528278043686185201123204728885233883243212564863374864282686376369112132457381951339095022689660474720741369667115988377211297954053903876224357296009364381294513771860792110495489667003486574217044810152914335677871566050243022349705089986004111549738469887425514517794010070132601503563374038374210213468715443839633729163745856459455684091515297758607179032208296494633475275755090267997989567684720159837494384767851281060769826385730295848626271166802036020633576023762849592100615488574272658632493443127540455159957542645005886743009126135314303196754355096558138312503785321844497382274947875489212407436129236917829207819734326416468061195063788371685090122189947150835983298008062413828059070948032125366049450676780001251258437549606835052487576713149490075428918510904686483260373889852527525955282176645951321056211218744250602680781917328755170919111107002041186523820525751156636028597084219963976473150991028413059794911035526047033122463143037114150555917783232501243231881311943099899573185944450480174642010416315606093312269961033244627293360675979316101169903291717359658926920341298815854837726735135415392827758381994412986632427728342189922364661324721161205403229570090217911611003458095979470980761405538091510991051256200164248718763113958214366535727499657881741136772615134032276497656474217019982398253090348607168981861847919740789290647705535610192781057017130305582028118658949230168659763703482269026832053544820248447255533013118333428486716255994047673640000700273118213134237934506621767463760794742119926292098979713231204026109549985574858533767446349752926415544617736810687788265412074910450249469059455798381153618985242165603402178308877203618198684407179786822494940843654312546644658994368627966839355520181815805755808511547565936341549512012423609912482455082650744652412597372662373499865620201201047350403078812248773473578613669272008755754917893110049074902466566810819693562128938370912684769882002440916490087975921605617074990339625615978123095062912259818623747605127979137686685893500252525706345490957425751258076567114960950298280222679914210627312600601096259818527592574716779224542605518418088738160635171494090808978688021540414561102645279721768024227614577823850768463230898600788225448976973457802831669051138438834499034602418785187036543105139193872948664909452407449158505307134760059764320447112252406423630136018704449438589097796775962892455746843088334298193379213204827107374961878627578460725666316932605288972433553657533240483603147070061909858129288353729065676537687268997409762745954784458994158317471407174440184562477507180409209322868008129844973962711890178039948159167512415975680140023373723323343390491593112204928866542304417263958998233944823288439945977123898397750172526971114869925970878309553238181251493619767973955277794314135688393937337702617223729086193600664032233779319538744358274473068896950979635611298097442369491826197831274090616987449933496800964671145016150443215666210246957649040501278779725643613929144402001689540694823349668243226623290895237147176877705434337088779954174092201215649458800249373694948939376946332019017802179925018019388154994528674288313679855245905472296960303505082920539450860552289566543864302595497561063312082007960711382516122805383476308583121488647951086690743219035616339601507661047525867517107745118416428638555403426434634565323049898579245869837665605699304288742088287798366883284916478718528442901908830695354702598022762378670201999239878795781580077965264191901173487087118826574093518481938915981995868505516887649045761355834530194422832280073423436831530442457149923819448524597023146369310084944223551283912163638681600046958644887182897128021701279486263626180700078492109163250831748039448650657380361284880061810013303113903432616461469351490780444151965020907173033707849102759842476016364339344985726395672763058303338239923955897398323369785786994114969026619034599195372218801737913296519921865817351389478996788434702117996116770952927515050959327955545060603046437936965832155116207808323399000366962398504932388169514049948399958957867483292634625183131960639570925258893533609199655047138191883834175813986677840659560363849454412106555564896855486672502691694008379377163438581830825267061607412856512562483832306461634388966098287256886162631920878284234425976041842657470075598706327037616233814434904627101948316356374774594272421803507189681368952660318930207031100069376692632806976249156797871532585934788929578173535386331680252759671036343626813417278413858928855391061986969018459250553847291740980921058732463064370708914138147466811285197017604773600959258557429558368661916457382548569872863445118646299339972630195515123603722020771905451325340010065383810023552428245274714236821204561782750528448773341993620825923977027327201011758365792926740993144219177714980716516534004662688720036397822282001741972552399958730426617551457180935083862343025036540650741428878740806473420494345813659429641272725297082222483258502262230136330810260859686250734928413862707030766469221225500160956701676828110732960541236324221585349570361183509651924629930666494644111174497281673679765498872897994548172970697419305288721205345727946468898676259041701156687912871314644852015334799854925387668137350493346711985419972886582397406746358163700986637577461530216766877555322532204679311723690996146940610287752738480328430343790986620899506654111923891321829966079153717490014245193835158695570707068568550323209923960167615852363209432838527915700697174006170004742962096379807143554007820312429499743839198722046023573498284719001638156989253451334152861485497947435019179499307731096126714660692423901657101705205616947625700827805950016860107139478303404858963308846403539988411664852967126875012004586585611030520985968352480305670413957850072168739893792188052162628232385103625871491648763118629074229018894431227145363283188797337500713149394234821120122582540010549401274681316140493140507995613148866408144105127331389389156517665983126582027413365430598660341260472929748403035746692291812798619703015775091427097628393264300643842803961955116094007375793399301686475987084016279940233327916098738399287091733016183477691719042112081996675088017927368746610568646780930310646386979045566139899648831928640032677783223765916547646890243432957585076791315505726759852845644283624450887098811616104959822047709398037038093219678272020405417761349460756898386044688222858752845033452432144174307581752375717165726865929167427075830008801026631748039486958546916547533634405103822757150642361055759003012076478446604820412231104475179275766900343629454837978417285270896301828680104562566732984720549622794843356076893584567074804676011012572005138179279380997117260059301890282893268050774028221763921300699634298727723095195259450541590698512966997828271033150859486284195656712129144901499615847950161152045428944788282917090664058907305132873195369322040815693392737068962363043259059135262015525217359816395928522526069412160593747193277018162096612762577476328089204292096853904353053136652022646778492482008347577468397220798263747575260757288980444191951983777143367825093846419638772725533441548742821079554955036404571122360376602343339073846433436784794891213801788178394912760164592041865628300469261536621923314705469682603829504568382680493010706578090984855639103388417827377337516107034448871547369346099567401457908613327887521514958554904299122831245278737179992929656071643331774950165094531606774719029609744793366820928147936682846240169111803881269521033501023239163633738120931944320919015030887448083464567979482993184387803052982225463706362033099974954771417490673549517402835575060780552049821194606798013001534152486646607519905081727487696585454864486225195302511675790026523041865047052623084549163609121013402866648259328532807577776344435229900312398488696514207807817425704656482130464829090941102750512293611815183318681247657511590700819883361623289585735097472312514197941762285067777891510268456581684377173100496405737953697608582804506758120053070848529190428828673700200410091486600175072841045790630429117343391547231343972070709376819066006848357093130029726468862613828295018954022245450165102739355046731558772157277298942065706156488206873260008150897860368152122996690789591635226980687095742877746385843523425413837255271146039187223193454528527717035647388351494683362398106647735699767783958567160795515375367325266828156823415479407814699279475845131324955346925739898781711489235395824920156002705061723012659953000432456062563161818616196264261081471795028520420481908575164166022137523303196635592950777010095270525831643177880006963313747186170174224819682108098865095505643796717656899646941624462756262275730644704895644858010435426809319597635905307842910201518489994392184788690775190162948161633808428656149171702829017902746206716472600722577567547386742137601923563543969549548916812632197263542185298752339818157552558722929977649935937213940100183541880875573001318650976164406827448837000218030725216823252220319634504794912504853399920744964273132726824494434918266221941153120396346423712007863605297929943997928383555131213601951197568030956572112052708075857972847714639417503438208659336627806214321150882552604290637550587404523246622710207538904592789149630538145476303985035895284146891910444970628419624708174979619510513753980048123481274590113165721353375568091283369543690564800599840732569306559736829252167174299251353807366779894083373107735558227494881955867040642815751726090043766589328445276861005090313072024874320995069845337176798264602901364504308005012051994771078076285982866362314428523681933092700855532669653505764220037731274815725272371217499710160264836739944878716976225332170670640284226650487731244070724256140804344237032985021437358596694006927682756267887807104463296732936077242211187566803618829402236711412919058266798283069778660358444061190307442615985404178912741926910225018907217802236008839582461052550464652606366466902161563355073092327264863682250814196473826846673969802801180196680030331676391342222117711032647244688190368311931694348393665620422136121750141635153555170422046821534949537138638183216492257619692902073979039007963007772603261517608851512013543150331513612849348428056013029740826805572574183699384453892841809914728674646295074517540834662525726801144783606293601685420743097136939827820867501950889003356796207327784664425179476500396193062499506446674125946336849903324562434920036025358481517418560095781907902383567372489277597395240648305287502231234168224204752234956709731423070268451885018751495611147838338871191438280716408521584193607675054883334195992180880858566967753177924214549503383773005154472311294080993495571467725374614839655392180702348474402450084244418710496200942120884011808654373714101970260881065889540425578269824835687670674674975326793715942890781988315136537342856682458463491281569053667183624518354462773886222917264967226350305699633392946114046563476456051441261251869019007321435699495154089591607607157154903174869827843254991743685980385451296683802195841931334250784047757444227609854691205173989910433184989611537341173778072632031796800928380594001556458896222937504127275811083518978676537241592833892951781755699976009130525198702938054472747225835521736937323491551046612851132849464165027745769080222189969820724562232169652712903623703719829714859635971425740454355280688902334938699942056249264758910329181486137033338833502765679416448916276771394926880626424183063975380513465159194281472652349062072210731423124414900017586872883688671400731431072677781781991750413222612093888931146613161745860043433221210438328584793349136447960194802560667371808412308944029807237531014645992785801091075477108947871220196794496960795034992634797508817995646637561308395735849522671958886926152018300870383604988625305428278130656022825740261154203818451429271722187043948015153729623015021351227834640143716862295861453415536357933064604448064264429996605628718288217668221518144459022663179938864337175896132001907872600509119161062100084638370037654304674884441115071266225643642621393585181370194026354930098256880702235250749713419828280805341883734083890676011015782842043971505944871068093553409246898897022049119908498156836189544469122632028069569840242453574469207863752918092993847894372181867208122387792433155682765424699621936063629803883498561629150330224222402113898697132014435480980941297737962539447358293211380341174219626344117450174684032506454122512393053292135742625414495195936571909182433096050724479513855854634072122882692670549546242523213813555618171046400512946596840951792343988481785540845588827379025978682661069804002016762141288986485092979258461834940900870343260824818923841936483568210967502062482812232994526289743317869441711230092849342996607167472319074416226398172243180187942975681901087430362605473932715570714620893383386233953222072822373976852426821907896397563412249337134608612359558383870718209440714798625942804807547479228681970640862427000038031649042421272092484478749738678120561007881591294601557495530396976134840917625195735023552475755022397690338084123616229494310683954121261590742325388299866628223270721262541049640975947970935099954696672863405051691835299331495419527051090363182490898366815251594853325533758343578978707805490787426365309458112190190051849974997328945412497828599103740628468398722505013522285126989133290167240323774672802362078123997397340469613352219600547901881886349490890589150168271709469544470106478983814183905391403803037380873774086469203691190770496016654028949185245998204029872256260118917575998630525295968166445035052719027100767985965515202204246379128538786043743296421433675589148485504618789428899395774833702271581536921739872217493491419254718856349423574274131447228999910409627865446864985610010388574001441037939336863859536866050945052520383722861577079670002903306443351693089004921622934203227212920324910860073323838532663178129979989441271391527545412369091649045893239198961763823861770751636270559350884321357701128125693720696758348399329281599154158707647829341235442646962310065059585257415242680933732043424843847232059313613155045732355272791972187603419362709135089546331379702861926763747543714261482397676359287588767941450230351145548320580910057658203111978539245908753189859331237125239845485431777705730935876351473924291524022168767993730805900263484300871775638594511787902116597037342546135326666949351933788569150352567727799815880870529842229338443195057488635972203353141830711629869277754398214374705217832998545927262884457137965540455510240360053359078908351173852928995118128631844131704954196574358167636664975390581224042488025176720939403418303822388366255553350102718503723660870130497764648579499041053148586796238777185348672025667836888613029272722086990009320899638443578759681089956752151223491911569377434404942913971258699277055437394014961519423523903649160939070725119594160973082813328626274677483801019602146653949447370951200626760647886277998328771854628943189790918218013012767877304714512285396117328825301512315095099640948402471905750855211474024134018258055433739871755683939568091165433102672899718486370305323032051047743574668419223940758322997368027473363540805220469372394483913349174245642315550309318980704118923414412809252130397040146204199487418719571598701417213185769256008227562394682973515773595086620296287607012486264197518976971729219157185774377838455381487484760529787381770486132315696507743463207623108777371731424868700791259504415431405779744449047041285058177823907384628316621696078371044323845610118693514517886860203521403266318731596858459037864039265643713710960982156973837593831247225166669615151599041674077427263585836828833734340648224448059522111749394252638754520414796666323578349836708944889074637752147760780989742232151824098125308355097622626483315705518050221142754480334171542226868136773877048878430423875557239151455093609194527198831182025404307400688905511095237747306075294351484083309824535240230690280684622909325692700324484927763674169513951439010508177709848123613552706798835253855711214245175131303867044234009878812754694708287985892632919304082004097190186424896931940138582679736999443252018045166235743720945047910628136055012284078826196475629614307165156817822771277895593623287639283150355664486802975974004127617816128723501785043624623471307652429349687588931590859931693452546469596046231907049660222687280489010510581653866389221215058337976823213870790649694702706032660524054821541934444024425782591472569724133983354891184988478015353203677343317971116369783446305775574327792297705951963270309775085529988780315108787462042919025561358710190412186268921744475694962131610979765100121289070408646125440183400582256670758814660120916665307210072952882658147580617645586332678971153432193129066971991037601708908841454972900671102547229602863122633993980968970902061170065681181664907816263840531262729460336278355615787564418984805072385596199764878548238324337584246559979194168394885593552822043667314107967312495779039958323965120304339847588365090857990021057232372592818772237499925917674853627736815895440764899434349496651635830436460207426788779815527964016063411747620267205627499242775749209532908781593946118699279763158117061231294633573293749828451340124228362347180978579306068703524887604152283412298403049462367409169681741050102722053071015904250460405277391560333430566133093274025891145395567567678379865453761809831793357164735065700434632814860844746970362129562063800351425771007325967442631000861950399936888239928207846031484866836518262666716053603215101004061219831405682316884699478531423420646958583655115311559799811354807847879351005122414484262123200621059888225854176637568041826508431362422796173268421260974359997359557357214277851836100766719567442049947480298236550063747660120879257833484622306707544198449628880959777272087394326417347072888385306650959359368091482938350425338032669969785127890123410904482165433116797948818904033311103986699988364844531428638410440551707696151395795101587241158914327093656420230494747199088120196439785152833200810221853435603851949034522136632921758038302213112560356623430609099572776153871946422041080036328726268452860547934733820682909595082627725486388245375364576105317483108955290981511531815391555721599963331960396207193523907782392931422966579202954847801733112500131590597285665884490477483857548563889019120553348136341931765397213986760628223011251187685999134675913647051450869333003733730936590918108753567473555073068413406638163190719437434865295624906670261197474838931422798434069092886720293950183965030444586119448025033434710454364001457686667421455959105004915209697404255856123245545761965187388735564069689193487111418161106123939608398379293735080836430541537839045798566422439559660027145723183333418753224040192999556448072517633163573367657647737498241170872806798971392029048185988434671673438481967576504783539613552550328222066740740461777749545981431081669217751916894808117823348593538021936941385829043190066742831963812375693401476761825801206404628882804755218269953661981235522579665608626712149615505184299975984322235065657056542816805458524153146529231872517709085172936907175813694743157214368729627995677595186585031267441540834432626771534260037260081143895509514050653292637931017126562344360383139292839363233224128793718924910514166733474081757952617685165060435148465992745471993350961543498586160151507626899490143549797445446108349400329730863263933300943656696516685953463673246007412493727955848249724488562818508886224003551793939726400654347360574756041027912750207353129134741400291814820433353017500819817465747325442019670227407120081623521581088615642699159066556598656169008080213611423831290981328844328211496562606917409741973947488902922178144275146484556445059280603383346341020270417262578214029116173015608267030870109191859744356265453868247329770399237345890640292994395108941225682345759277087894144299766929950233240209377215076638172491556182993556354024862811993048388292683355802367133970142830842675946247312964938266036984262369299329334350869271870482798789328130750251982957211505488628001971637553587000672031136884897200681741420614634397065894210241480362991228639957088979485090151755469420533404053309368076389792180030633370653903662412261080203395486143072705140010712523072415003221666670193602505115549590773955026825100957196629884318547916189272741270901414567640008942111808784435733063361389052104835231865267346900753353648130707996992108219637183461328140619413499967354109933452085229476705776673640171415569399722505748941938877247140421114591054038273835201293911899295165315377434065510682415244235886292022514223762157886462789983724213635338924997368430509969272102239742330115129082393865299616475406879359699269205041883926181158709734850375066562913947472448666390422150945377971317769486620569358220000321599233874934870569155552666735417470239470557291190603889422927123893146744804410428921723200058649073220025744621472652660745900012638707514961364136901162995510809056280808606498271096200353888919990258185952586690968414615060967546170880069215655006229882108942634356527290029703732326087833721794141877846562256322289420428813821931517085174073700959962823568955890927843390719250351248910968335075973331854301149790596834712342747986350037695901113466224805196939631202610167753426397377963554659093713859879490491990487544153685577562299051236362947209265542156697638386452132731594662511705267756851813151144601625073103834764876012854182819338274838685228026189069999900254219838476917137063006184416584682527201146907880176411373191930514741513702563304243005634943167351609510998225620998440704504240989197287640590286120020084834143511476079010441613374982553804167548377142745756951142190021426054138354762440019816497477463362539733931801976116795079793076792016428624533248239828933692677329770753670804371326456555374371469976808586339943165453884250031223711005662951215225441198546750055495232940702253203417563616313150550655687909758930233558054853526899527434109062597462302125163484520104716504358770495531197168439109664329004688126793570210468256252489835815579583085217304683204176482232310748310750146845805215778890473073169440833596738324836795353686615620458330989868822693719538784114787520511609975883234521171376643087020556191383506116503815890308520848008146122881374915440939936211690501807303473885836910956014411455445457089515889260395346646516603739505118678636146490406594248179324866879677983651835005355445605782385973010247022480214451183746455427189098113255795698459907402795321741924009947324750235775335657916331279307712775997364448464624757206941843112727849838445481571115269124292039458900257073374560684245766328674065710401863174920064703531555467713390344483850054420396533744603030696219812848413203968339920351559775345013539926124495044544953924264149419081272992193517573915410882267941973105041698566145093143312813320098868444389555200381227626917627598318195253558280502766395261873419403905882883624256219021750323847710660816248828139978262333524658264142114256545688975655556632433527355215523897395510296170759019135732055632979099031261389232855661717793149850107192232655291964305698370368705406658019738512336881565703468572944451671614834741619114840305989927362047936425479183985768041178032421083044632729337350696833286164667494197641350902741469187635623392556385324350502194222419502409159281451321654964782283289261786320215941462248615115542182959188548861107497834609342737419668196046919804070889742620684932059664213068834806569388297219476804923337373263680407826163602961278656078767070667090288326235274672495231879706380111807230537623008666404565206628470873667001804215108952592574365115214007247606968423952802715145392394419557784129153692361796076868206937506660606102228080445645581460534987580668058094652175590193830110406017668963375992897705145971243293012743618414858136784289165520174625236153636502341517547655291654900721756975287799310493063721995141535398516871435104686265018867593970926433606568458202666141173015415511515408303946709700909316041778039743461920071770610103988799514107324574302159716308979154091588581796372517884092005962308950376609331637113725051621116176244256603886946032384555817473967817040946787138831349396961222716261505379729121742633650285727615228209324945207626498559377544079148873073910496145799966899263345977744366847792382471194636401159173964328068297407580620537672020910909562622858069599983772449804354914449807103928741037523050163952587245273288939823207878300994007358440681047065356066023616529363837300993788092612176790179665283700988216936934192735307903163392491555089823703760386139321549990820812293256621266386409974913153399738778667508594054368191437405091605715652409439352149640368367366694609284694298478402364699943727196326729023614993257213855405969309749807084815087133003805950398273123047833263746198588683740138765082434751534535272453554285602932264968505578907388204252644138350804304442877744047113611395984918465098043164240338106924381267942724874690377355531319138261986374608676903356368408626307917921597950018300999430874551707998796633640609249157022985406730871118819170857989478810103867310520540877779347584640293544473713526790064900785634916612499314095020617648601931044752065536245462898593500757314865877422805524617418953176401609700234443165893120003649664100797932429399793843909027142481469545467134650500171417708860720878021090071835083566083626928398814104963214922870677706392781413557436887947727629216588867526895426170383801953079090854080716740958813630106703903461057553829021962724739791634035840584899130230268633208807761454933920026423136791293487291876247589225095754557826103303951800384756835353296602304933873636908216711578718200461896224501829007042578220270351381240535427260020718903675490993330701757189583357898745549945979964953828939823536040480596831125483012838377621435501385280094804686697478015945293497419083854869380503564182129117408454514152705694146323225818514873282201213492562492225499783971728605500476710510320636147403600599237075668756277239817113951263451823557070356859542463925198873639886164436420127478941587466109903501255277869421759406171015632563189109347731523847414653037185746246936601132927297787425275571778226192489439611689216100688540370657590558863396490685366174931198044397552190723233467865246722959349959735306974165825054140182592344757574446253135288673694837607890717310640518942082109233753868580758267950847365726830236474682672339173385195413928922366232018506297181326646190605761558600598094062281650204956766083681279725375770691639774387150006988797133414150813515347329072613479843158212449713762819934608576739414782144567621964283727718914852731596695365923793659290552687792910009388414082027864689690541619626525153035232441261894054228601909240556724957389203196209855205891751157322676000078757816095438657951493019055893997883236282940046587743339116343477336699188175643405555454044854375413098535613875403416407203245442608639810704702194384929269754136296014985345440177894096210695154827775216537275014592369718144232629062131921785176845143534494963647127869213749044723923718441066647944604263991694726790632254879536526373938271542606130354594717877398157620864325147852882870869780274913888944610373553381078320049742681861539694196052643300346436002225627938643306688122770346632030845134871766057182128087072815901466735441126485824318719828025244709581457466454772622683038608587277850639241346945434424426250879345789953618647438847620586840747199168542778307356748581797337699054725034549164079880132763661131489599425599770741376695217773518101106387625108767236329667958170957406913645758357321396434289819703191226385074642002136315658457756316672986259914212978459186551916889194469060686756847226796256789417138987523732260639144447926099477709727216821502729056626164136481797055215980163234445400571491316449970107846970062007097258456696602851919476853718961608525146078075093075618262809818994565936744477558774494901069177391228914282315117493911115719450711135529125586234695744365718050734554302987278722189361598042562289591221272869953305175125012902665824217726039230053094736902618541031644113272448008577619812198649158748469971957890191018846212712287341006850637667809417801526086371315414386853101313998405464531952151530149778845475351102801006025686534449296041996331003889992046730357639100781316490617623909751015720802055412863398488788310946703314083201464434362966447269577356641754888596475544941029238170347702902776867020120060705615750038591078281362569516947861216805929254997477963577528088816221126271542472165920436996611847525486718434130497443170331418240545867082637432726991132441303830622697904807196335382412977730654114801973042580857425668665938766791586889906186089159833044949772863280885948139922215058678887524175494003693785223590092146841268743774721893594533871882373868259518714679455158456911314548646875146994020058368213522613343588862415255816050463999083735835653122196751148902042363489783856027007928884355405590230548408680645202596643939502321665384035515587945456848197718872225327189964057973400999033321710798807886409444064412846952120652595519688573468159731991407224506451840511132933347338298511041936120594949166735255857922026400771396551448064351669564938714089809434642304478632975276181591500862914139717459846846520622549268978730285140791660264317177062805756252018324191609678005370002865295475558229363744390258542540191173972356298866710283007120115790840490945701329296258976874015311160618257106800591650070016142291469513350820492478992119978229322413768194600440271584689879572875489533814946698834684464092529361866438519497796545173114526780119925328782290555572856086819055771767938388426270227062045377098180095168007326649789248772168368508183206178138220973843857386145390435008901553591871584931504694622706027393799926558239986338633159126815415228775980901270596772256784624170108326448184027173784053031679436161861706931381356460496701375850661187619782054934298777481635537092139156832738927185194857147959498509070740606127440021341031277844546389652176666144144959722297016286468449971034832935746024845391139542443099036526169003550352082895968285537181062176159104623811509247049768746927107189354292331936896069907634406107514067065460781362049146820191140850172324565604804122918607749084152442090602771033567905993073585646215492958615243160583335023707842785578869566339469340523953718123250842983674630845526305391081488530682918222320645841304455616899714366536495523461231829407281203747989704499333305016509257248884125547381536940745909747336797046395280310490921173772240761055131646415264054725832954091332591554325221374465443320985163314170056138855785712525461883429335668724636167844588638968009131723285097917390499626896417503591454736662634228517746639546074691095614781417922765769637358973455204531097797049236491948257369874829747345366508591325865496093880877100795343245426535014142352176473741202628545288885922770644017275647265329303360022542367715580556284625062715239001625728243792049273365198823168358319794328366630650100349987014683816188746590236507691192065599328146010402014198469964376539157381441411153239291515800019715356654813168783054253934230657533064398401704508965785012455680043008484794493273976994093442435262092242482706483764472064969812067439068317370872782121042175878546586368661466933593028529482653128233383650060151547773770851273736960149676587299046105183333748199001600098773588375130736382887912226283458763448964872942645289113504252353247979221777180815129928852315271715715008019994076682448199341699072258620945296823634292090384219726742484862098610746755227164092698555142056840432190793310429935542077092954637983783916605937764171773908259983090963279267999891707796788165168270596594211826253229451046860649067141748037922770656454899508285485849395061896744897128757376488176129865925832237109776198023852613857668135291433512768104250747710957570952065713894529527088118865577012434381689358505324847279975828076366388995071009718350171605610610068735614539636459895020936901959821764163593068972771471750714849342634514637003201146663390702040649114189719687768717140657058139252767926331051964851759294591432310176775513681690647215728691486229252338848797900407867157359095083409873222641421744196453810838744192536478943363561167731363748811020047710957079807581417966831207937459213435802990988570798377889047923935020554945940592478525321427318084546512709475132461930434569908535695375226618065629533235807069918417990658387937243420709863331421585002571215777309360676160407318064490470067388321984315245705317851326701191438678226702509056424324886651234739415169773575826692479080799398297855931974772161264616044317121127623222287878742230111008307561172419352170925664932855593072545326049969132012899866223552146846057219346418043090246680670280889988237964604778121846457209207668745962185246218339218401513264839957278397333376359489777458054508932410831507357765378644018271360436649965228970342589578025057770998980457129488061941776964654933306382321349202624885449969092751309366644448051762500864064441178316250325351218009836515346724188761762883786832808054731183436337414462389179885527449039431984027815037873041448847105508420816340393732678657463314251019904439903165724906352498733519509395026460433826937082489097718199902353301664272933363239692485334113976990188423071628117799833893969589217214460885219631143459565805688594319630722045707090516700340826145648187584834748231325694617837542979150359377885894668362302974321172854991156558690764171037067840544307862980278273207353663148422400362092346829112101069396622939529240131967923494250190975174497447307032623047519290948424223537071301085918870076205757785932756014342745082005035985031601683713317861166451601954244416238511781848456945808380631245807121061491876857614008311124636898257141759091759024990579350882848955016923740762191281974071954965620582512671749105258991629226839738104451152838459287047893642588765615841911478443144272544256337444327705060635270595267687442152234114094910643976347108451309189793108659880199591782120976464819905503938626063385383247236200227588531240561690072455962588666701689472436692924752737804573005459993115582194646402606173648509891120256114368165439873098040637290886419130298768607347388453794478061074304921196482309461384818192837402476718045759779233434544731081354882355074482425359792610972719565497002298706995635561330368646885794349138410381767319415802761620046136016445679165249503272597269018812645367042639844040256295208619363444809951961222763418557508452650030562331892735730788687852403781631355491793324223539432539063416766406509545241410522863222180016641251053667366607735370370297890232673533484438526062854356349173005770490609250682646177889563399133722590406359265573530680373479447993815723041866787138048144255151174710555843503775376743944701284391790677602088326168595047657800449118638224208145719854217133751313564753515740042258167642607432396475007752919380228557659129258225590672444893171531068252975218232592796951359272063409249658164712830086760321288246117298796558793956315548200789189845938050254629041882556677674765982823440086947308190404085574048335489299252511187387825508438914628733064605310954083996890921249283920634195864321567789307505618578973121402677746837662579707392878724123805056378944267507772608295772372089920046891186133971244734508656821864080386677159130308964844705910960973649599160179539967733125578861566178351293932235165436523805286209324545895227071770817225904586985965321657147040291979960722085039507860466656236990794210052579215125452857476780611473396156826467209929437865506692743520940834652675113520202910155398217819206939246258305523194924571684801800574876825930957397032655375947540973457324596822124131195777895560416697273604261028515915494011502870809053651122043268100003446832505065874672129423814468347074838369200659066259601816682813330411611630421213399655980484122785857688848860744680799093400984568106821488532596913236020869383477794553392699360412210904380280820114076979244259882054668190774686440219733915817867128666761255994277792366295083313613233833984648641843078350021976776979754365560630843969579401913239737228901327164660595884833940092813431673742218055962265563904074353423769991686949357951734361667373166568988238449219753163922524957527022643797217949989642478375668802772641307939932074631728179559762584579893237661897481012408288549590001117667177210043581860061863941783473348562247931446329344785760232534738817830675294048590634969804689916116840142942970505755694502880452548801816106015593921052446910774895367009637126939811938240993769956463841588815553948040193809378950330006061579955403276596301856564156653224816028718726937289736448379526508439934159437914504373057269346672694753181545316716903022882710007068365163965634996107649898939606107161475491638322182133765295165512353339129814549721674623463749824446885993186526237618576835267708980275135491851445830599126259202113884849728790712504106598740642935565010486016781106953832532849583602459148156841441050084330104780742133471703219023247839503986597279676815419186426077266270465809922399120700896870205597037464363898236187582957654590199695202168500675352906974793278585369577053298158555875236830404833767610879728633975387696215538290200446965148659000274560633619470006743377891939851210835553600188756602338805781846587675885447282565512025694040324643502420445908915652419938570129132968243828926586104809611473512173561658164133803976501330551956449482482904893220039769698093262744602994913928207587163435748694560652126355221278605279866550472629929665952652387285998126489294804414763791125834863998026559149045278647582805956022194863193630794834928727640810643042028668338685309942656873649516537374805963594889814971972189619854813181097452856170286816605938114652864299268975653980904878487168727997088333135125297961177331025774259561519155799962652617855978298462465225713520424749743657967584696066252010082727833088156200659500851873311271401314022758433551756210245890477362636369415399134307370970035970944865748076190633843297688966935398005005414381796514276837285916855782865782412582948974906051861069761144849486107777998046608104705329465743294832971343241985013936513832670417674424523042169649216372515172813646651312281994829111127453192330749341820736557253267402807378960283361647068623444529834314265393917751774848983529369564960927571390658991980055932328397817623845641909362394781490655097105273282562858031990926198227501358039811310819357438589084164874675457420231626652756339945079362781897245989003942704976433918312066098226324271005999504025037807820082436235201399711202288366628433148548809134568231357334412004856036660413252413815323967952991234703498827512449136812264613055166912211182200388226314947709568333389581719826585459921173593897822423383735893678553172971368035313029105068827693649207865265586712775792297297474203046268589284244327912665264523298340200427662760103208051864460360497109556116112245352012818509483587022566601349030185224109874948914995017120197799239417011958300739440818410359690177815088461157736706452551623573654626564090018525442396380321334304512266786156906041081346027388235733283516823055275367175532502916446608270330887163174460224004930845830663342871931958293856166123056983686533605669069873008557201945378720628789438607388651855673561490583249529805417449467864512782235398189738901014957296809092735681490804520742983235816365097090657496938285544691564104615876213409124288489336161446574743660527784380306955866577861517212478365400317206479380133133864358437874309397776740686951844104326759205981556781478900880393556924262891607001641135473570665699198824259351783994247490813673738474448616558934929235272396829255440724089948728074908528442615101836249429622541438956098962177688307977580156748216095096314856966530419890585666692092867827231829165691382092754331059797984979025974394543809377145601926311547982277223168481342400455791801714381298645612937780576594481421090005180457245773036061853218455369374338267503172813753183884698276951456706468257593959132429637976249130132176518378774149692542264488212717568767872606940273938085866340874612414328836817579830670040521701381804626564039310536064511952631842214644981165293554037561934898903724978793969190116705401365747210571519125989579894622627666348778674245697779257573609761443957486841285742645310373628263790891058490879644977831261865827764198015607864926817649111592901211536674725430223499800798391043076155088623430007995317741575873383351196031606074346819777911955059703736725522692485827079203246993859166273199259782306559952214536486282041808930382470143778667217934457858673783398429749226925776871683678466562908821220471295800016019299225765894796984283350879154756440695755333786317383378503132413924275132125065209706689799797816015611297096081791151208751562779511288800884316008610826620916880293143649840455131442301954598938101166470493397124736810167750102117660640125552914334012292553466066391730541656526561418251772007610060815665366516042621621874161719484008040927135012922642190041689777093712700172872498836651969448814220850698932406117171267057617964805440974453720232941563802370845317182196746478831032532969696429803712861728925920352353976154985036554613930894090668957755391689558242521986669481889925339651898800017265412204056947231948305195673334208501839506980739384200252972843201650660440716070214746646647258133351741308499516520302840380338149786064444039767058626973656924382378302690292927834328102696031243571834845013185866605669423578586996496382193133382624692470916407660614060813742990671382666377645800727351223939880778554368201818773540480404913003276907865282128014151908906985202324850401474572864892808246094890560887814840950504335864187005492889486231841222673430489776979331183716360116808980889232232329855762420717544066538398553436606417058282514847924629837348538146113110113234828123283955169755588814159643243410869385870809205076078087376932159182936069436048416338561537786555992379042146492020154663502124724528804180989958879705455125886739233917958134780546917536554984302594973135614834660817525027525617632600133734204707562514443215098256566624285143485195158651808595786014694811204076788093420185716981809609932030880995876591529605627019840388980982138049402362310123928702249216531332997226438533929740143240417130819604074098234665765245880690887457701578203028131910999867313635703907319779129912713176958416165334437951340518933541671534709888916413152878869757984039611281109679596407607015967807789494319503349221861605547827149423581151178167870818501184863290952364594112589269101149778871220382482779389548680196561595840403215286195925624790480113323430802368423775454963278949271642194073644497046645454318469277246543634975123315439713443805162662938248478624210490082253261910593129629648296535302706624079751878017076798661438195458612123276137946290912429777082492821458651248746815236057174704976038816715472629048300385628965631216973681167850155395979558710950684791104690817948290576771396900292205028593830104380074555501702455900898794317323198556805628665250597278164003624402213413907758672659700509110577509553176186460063385465323615803842473959632617399501315482407249441134312562565570543945810450535104676846754140126245215601479589244181849034308637080519906255318356641395435702398582100313428587915315506128705965009571184698677029499592150251341135382992833651130217475915153488891968845530759353110130977949371184134935170179083101184827973539018875939591273740317214744451757613577611664378512778128815066106497710198471779080449195754374846461135269175720855225151654085581680795290800551096334324303503851964423262444738945387423775199137473133098529833769987840321775476185356966753419917923104641227017208691753542184885614660100123337829213858016541874322157649952959751024773085501463536243990373151476197687862463430233883527368334421827707038336824137816033265534387321558556782408332351217709205043342496484770475019584983596032596642611813086134296829894042310717299605252352186264703941957964840632027437757722799347692015370533358328311122911705564560640970175488383016598961067842400251156297291350708826195468435713294088954285776970916978769885732675774978289645968738801195350047611703129239664792345629709198790375006632066089640613095928655785038663351959338670286603007112277364037876596239721359037948656993270108936872953134267874545489338613597782131103298815391737234164075323766588034886600251682102157908949418560519997481871744571375986351253692089443927117385187273045600655443839587051041504430293157185253350536010216907472070859553040853729881384121152366276955683217225752103286073602075800928252465148313898874757876410083392046905818037099408894497503936859832423561670918444653641421758452130916400929117618895646652609479601605030467722435394771298555390861591553260491663647328216039530465525348381544453701431166569954625708686518035482344951601795041442463335735028232568668787149910898896398124926468612737981906038273236020047582273013522769798553437536363072296866820003500533727378364436169058778859525279763846341959253940146051625873394333629210939369084489028616923015791059138043400510498173858901146987336997116579881665196059814553823409670937271851295722245056458151734081891357831327251515984995749969999581199374822623153364435312736121467548199587644478407330368866044809836821405237392323650292479561516222496314305226561320812666144865370392651929543988662150898154970765478946332216447433924909508051617710649187879448717133176317935644375004085679083207378180733507387852338039304803464121090530834379828968262614912667300257114145187551668222353961648631658498152306322411010962218717991724868237500387938172929264395851358492900093236291346548786133581759565917175489135560861613879635767713679983548282258318052024462148721668442927830266512700336585583463870521206926115873458672732883774338841877114421537125587503773724555336604685435549423179284392987558667181293236906385873153220283754066351215643298802960525146354732807258006045624307698255578885634091688968652767877254279052743120888838669432226500169287289045220761382747175144241109739760435783201602674464407329386580240491923033268006335307086823189384967930387080595350742262797890089845490423037444668596258151769119940729600480517177235124069907480314763575337650489818380311427141466457184851134268622557485720387995456804809248821960280707800783855436426544664272157933859900820524216648358108944052053068031332357560111504157791498472056318018591595222156910562014642113017274704472439630705544238406835426687099730868358534314187661620541787276274432461040399910667427843778300419082764471941903499824661823438671463221597524938392158411559718729224521881751582341476100233712584433351797113810260438114444245360639064887722827786543215719705379531206053005712342919831950197200241037722154798820212442074564297789821004294221620568664091204883825410283606595776983208026401746103704281264644893652311476103750149566118969447851106925351062711704584971193452011504402810300928468599490066619893297429339697201603041218164334465725117985165993393023902480805795899479101546850561768549268742487673614021350732552562311604029191876904942413112532750324490100783049986823902705726056093695454722523688845080261591380287515233081686847816378974898535857249935767366617674878419170290127954445863033563222529017815137131071337872853404607400916849766821269000330506439853057653026039387914339260099095776196692894397622472300480251614348870970909644885288535053586840166485700287405704354797390499248351880574114020779530504010188188389833912015477539297986027693652144410433193719919162477157544484410307476376706554770047528722392986107892153611144974176399006528925874688179924940810970163213741932598406837388556795460912114838840681834472544894010102834994178824134437917469400989812994492817990697015271864455124052325511086778876274538449888280609752735789326368359168603977157522710444456476455400165624540616621798443862859075841517584281418643626893935910440238036165916915177765875301595979054064920815036172844582540656132114159897358424406458614936893498758526166440301066064895244238610315532036150914007648849084626622279061287199985554385519443824310439122970718151827370427930211251094071051280443081184116041373874291776554688468311377637113805421899172851815355627100277308417501622730214605196788339652794552170516521644977887770305151245395236868660723267652116567380514153298241813823503043341278040637540562171923278788010195694180170085767883722109476435955076609952067591935986349620534530347849002116904959716861922781633433421458166260425067536762843866164982481646754382972885174858201243533641473553293601992661970156259898908936995443998420109658726367799389625272534954182680644165174785792268583257975382619985769488897784252804199466366852960739543030330541071696416108438635318475736816693855045809093766901727449972667107637702274068152938604846880037877738100604050969883487429019689013822158062704413069890355416560579828083878480898851572612354606125420181421354455532227410459735680901871530763306831558256655722068040323707704419581105162514794223677776700996752380985896846148173090918719210504550407255026107048314532047072135410764452499403964516477372279665058077623922472458362965277904878273371715226466086107513660599119768229376291109282548946342550315592274896797370895064715888173985105999856789248692217074860662393637620483696105694780612272691706636199371147632119990371836380537039971279798570350886668293490879350122825679862419975620402570301223874537677955762691336579460724801922477861237383888604340373764510649088783217080772372650989456943011951341346383607852188798952339816662291544222703627293123265987080761391552808180972420938150548497084204463892838777386907664375524387960950342305853800000432901272353080771401814453589451502754441204172150914079888215575958171334796282815832725179205056541456234271682126212581791483300033079995144602174097483280205247473993560266666383894975130348267552528414374841679062822500714894502405844097213360407597702429637722942940208066885110672505259200762720683487159080001026087694550347370634140359345722874778343755345284487778565231300819883715726119454459078482588073845643016745278861785940331982022086729059040907181167727388787172304283984838150577005512438299277663589005948877676026046095272328616269609398045179546007790097821043902806378300383020695648663855377952063369142616137012237807524001699742849972692027688943102253652813603067592609183415637916538777295093194379664784734926922973655185614262175321915877003341856747281634466032688831432108096330581573460495492314962272689767483667796364379477309572022463789548650158773054737460551972540745578741639181565974984950007127631972382101870438494476318358087936790807241218490690126209590057390959541673637138575487245646841981577519121522198790494447668458262097527318885340895433190073042139415134337219012510792808180643243122810882928580171952814699620216438982346068136582850076289907474521163769639869621786528837880282606035573949578213771358523210735569400178970370399360163915495983059443474365738055242093513016447032707174080523925073449420694568722134254294425253358131911821345384904793101100837579639284583620759099713514099649406749205575766963729470785326598420810004674057890715129061533359695166135065907509615588125317050024395592609332142674869913273518564655174384097010392913293625929606052227319178798555305418133108555834297590025451802630014203023534243503642224751417627429211789443824729273432795523374853656221260369943401916245877487623917502780461575507848004803463124644517567809515354968062650371400687627947650926919448373255549480233211577234411600017259179807710674070706290480547296301441105125654228434855717044924831752682117825420729489186279776083556380922085050259467601169237280626113245527783544159922680042488705663052379609827374542037409469921996943007113646853657423470464334641302277273082892145939235511700975968978044876084261009785660865913153273253210615500220158122516318264123540008111365247651084478454754936752353367007945582972245986401150261875908238131533297336958656966280337990453202484525644917810749288723575515963626602072892330664591013616531596569457100615691137878271175433026255102328483361473030981032597620714021976817358060506194822115004411469169974439661723271740571301769845112972690410489051423773557745996302233939386071720179667257419102939908188035090379434614400410127106716645086151944115535184784535389895567932435137678040972600802581266013858506764977984654971470091319585077505453275429564054728315769252610909971857863334276346153357556131643167896573507446816654860217982451315749735231431625641603220331471247806787189205896013115342025749322281935059311707977043506922679058108292988403317582556031941339112607265613519947418861274300607336299336110814694179688590758150813814551428541781210644000122086381436515125264353183652010279435438605805395965710110127097302459769113379707515402692900522438541524966697738636810329804087443183881175504332930359052642914222206041922524543204833536442058641692367967388531890002188670688871152441967687304643064856301727771890456479742312193120779544799805165621926799133848285667999352004567558372662576806416146187715880963274326542998041750071613226308587341388715733647287721976565044617991810722389911679617111336482641703033344454713269401449372971884738203466904695506712263393136255352748097272651740141448970969159916303106376231047335939606976967404510791979825425591984779372973629844121566569837886710513429225538841351968819044205375506480720944913919849367131984575022530650921670168867894873820285859947103963898492289686458300210760488764413338874748564450494619667956677019756153576081221424794736957294850027590109833405077348309229424699606493533395186967457940326505358663177311687318170092118692933005396036740790026829052726532575509255847458631029904531787131668650282383210201015633274846796180524672553619044981207189278492578128299125704577265899948588017438643123094941136107864504201553813475842593873006253625887428252166769421058674888398486765032695112433828531220168599116470417596037803942049338605312180452077022576867777247489962298196295517940125843399555167134839560402301652432117754130125156777631979303516919709332536069617431802819000932619952427512629967789976476827514956117377286219690536855217384904191439770548530840479079496314595297328980895867517056193837133155359809998074573076143267743089961957733666872845055717053151690571719858180258198575222212963594556510073629044903071203194405307940789496878918985126692245184325451038893970533531020839068153108315996546298886782508548295417395982751758348720871397440426299494388063826853811400559033582741283152540364980810470469719022329966832062867073355805653056361643806971974933077275504317275743757023495385668436462233736346445399877885050905925947034268575178957020094567323928604726703858982245270194294616783573635082871036910563040480090469736090156076611116706047696013595935580811332547883171718212264621845615637274847001678660335960713219621595733654634515147893322836210190782559851097915274593175081162072408683965892492820901417995248058868299765351047742872701021504550162743644163616118403144260554186979372443033356319779509993959832623991589474074056011956486173241640469775616273171877529814370496994931214940648962690215085052027641417666234106397280048045988990911990198879135475401008167385216495970190375309532162941685826122602658672594089858150061959605285653468307400911452992523649028584340627044839130216455582883425727489159719183418820961818646140247231564646189752702852120355776974282669545806102488217504865157508631683822564667927684845890264488482578551656586267116034069789960091917382911759062014032028886236241828504220351738904020239947558057183445815219733800334330333552626436163116549150763349011607515295799140364631383436386105379802215638994156002513249265396146320326779588208187118095638958983682321645240338977129010503747483729169835575004752077367126570287205879270221480758899100633236992540523960576412837486993129012140568500504790687643307855856249669840082898657713400258344097866239534928852918983837621912073804273821709170513527625045388407220226382863524187024110715088603068379902120724052871609596013276840611742191045237696848461747317768017527123435716442067399673082650794179346722070931312079162619001226625422620116383425991247988498299110586583585491649048442166624943368514984740913062990990961844250795552469301494806464546992467945615737229454030563248231735236690698434050916688993314187871445904306426063945129844974970150481603298213936694876539559251243747802509743086773078708485726339725467946692072730244183948546386433009181915866011545867540054230183748704654855171619115173581094383767316927479337228987471418552761758701561932279494755869728545560157015097115373513303975894036428813568280097049002760904279253712792438462364796370431941199173112901589854953511325972562827908227251484710649344808007636013299044757568387495175186308735729981272420962536742850430272213487063424875298977941205724911173178752510047335865610864051963706326284882221911563020562329477797294514051328910387396716437144160561528910297817898567970117755469112229179396573907564853171503270344706958312735508854847666921759409363533731847418044158942996054858276852749831818357689622834803333310875537524840839764465382698549138278923632327553232216264315269660608954104243139556707707693295289808911689930527279121444804946626094099458236058001961471529896009139647371983786060478817419572251031119070540488177691319958965627394641123238326928856161584703532175320489725310805140937255001806254425817553928209016683666810281624980243145118756852966884457452070080881896418018295244758736373364108661445674363511430433679902591899886112572912569382259184306241921266191708631355617272233075124799102406112494332700837989676951704362336673211678311517018897241485442255538154259016574668893064958366421148977328515586155389136503442423492881827787522336324850332875463856193868224548346930264439924104278065833264744294773095154026192556110660263208307233356677450397513492411193527253465682221555216674260147400677281832298219498819635774632361617536614321697360382901245420531041119026906048924541738735430338002997527066801976814413042560999345878208762656898141966832338493731120451762665751618853322381118903940068654016426604317701118202788128104497264187286648099415775625426270765562288168936883507624904425891185735994600142159165231075336015058672712610934656389569912875776332748266390452948472221593752083928835553739962220325226409971408560659566669120562928553746039925405721312674454242760651212676998905857855443386177564880426494412606268575604147535445298011070520439578326832541344568922607265358497061263377458740894188564113152702367141395693160831247239393102639883933185467436194969063385883974087776460799730346720885136028130958078673909661132460493216192498335314498293146085330614508727083002643301217287387884010445630418735214759563753554526650281061669871217963259640341396569627340570444155662918635186674096251672667547535782591833474884785878003408113871944627817092434022232757085098009475629819861315940170280498160119969966955648721111201956602460757558382770605605197850089132171411224993491837607240219793692505469269024455551419170440336833003108686403274662571650639834960687020688132162309138151251606521374916773790874055015807875338750600038076170972107136583247676324764398301976101999161666721366941714733832288820586653229966431195230816266497727534828232406592445049665970199132656991558629706005606495371662604339056588202136536426466247993470246953442550983409393587725390901464675436913249059781252348199017441756280287765519327092557700403404869399681179588901807707948912757380056855654326475132728391673257088731308258041617034559718955348848763114854370723752606758001972685303305914383165161074719992442226947397191485938164331275556730898423679353846154247522331800211220180360898270722878667550705130533530126830254931090569675568872682823658760727877038072007875680540952445390066843812899435925344122635987812141319413641577776961329671393616329431391960663738626882574268768497051000117213928180290081749736991276914539665163227039860426196245305614381965197178647674336830578717732678238914102607386279832701023414321068975339019990009763028508150652201466170063911852672179387699749904110334675515817742540948335467603556698725591171836830467740403315932333933889915287024918539807329582129722192853045287605269980705037528218360443042507232133553953778721067600292509654390170846309150134290719995174958271675220665897876205426569255191888870739919377036662445847884029217686153484231807374151410902693440745400273526576456331678371454387490970494401068294772086815145500379560745255202560373463407822432723193317713177788704688543376251881924678747186319704308672283094384455633770949812313489793912365400922133165544994147212743271610536745434854947400823539490447789587330199375815746014977808565367084780931516754418810875648238984819413288979887184579418401586152767716718570527711928641028260411776124997527649123932894998430743116325105914400613280150625405722866882852028629435578522584823831144180093704006769593096552666848530517209525353114177496181113943277970572535062986045006410281514802464638117206433284140610387454840922619700123723942714463836087635989799778164780413817918309944982990832485805896473282525217801538020764332892123702456616651644941306075818175197867585282238320736186361270763801900033955126244714453930941169456444052213050734589924008798101705552590419807828358454410661370070124328999018258642019473821590993721660860665175924567451617037026995225421919260541880337220728644044924382312338617516149817223764422423207905009962957694449171348667615720357770615228841241865841208403703709475683298152265688959327832796083885442024716036072302682426801360027427382959708079309535965266276515407740799633519886915403730841733564961926908492574354311058770563027747178026064430472904626213201701396880784605675431198393071789537887171496177010636871893943083363066645792338689605764450612222714850506135416028322081740653443110132208311343944789374207105004367131178946442409019220863776566044297767475431556685086690870654637734330326661035850539665799951354440040311928077374650832566974002495538824299026314189690676670015560372258626979718021309218479576711252355088174322896113322806080998098257722218877523148949583606275420474901962131127073672762291969842293526960406310200089861406228956348573575244215440167474273082744604432957701947913264518129469677252597224357055929303218980441442268104419675909666518409923577442003687044147318054751937525757191566925155997347310589561344236185707485272669478187585203625889768788107217807136671856087690317519434857786612535954596198320018607224656809755840421233005125331608377354221259470785570155419429163675348577220762364868535256557239429903544344167415558325860710720496687117040775737381432620200426515726811814334038901289166526398127939493993418517593996455513453129263022219990409836465192121991431462702254371473261303432508030858376773850836243585524033558305065046249708073942568230019557492884485434573668922333032035682599356810699034739892381583601456263556263279251417261871542160523924681869359579978151531881534566343232430977319937242339921820331782763507061703071543172452362626570938955622301810147626603372805489080007617373823334103619374549756219483621993634861862387609173270728640158054646581078081566453130011643856821391210367220118722621631560152977493186243898257833820992094002885814991231658571892106117764875944594846729832684745894105290686606172936554618252036527877783869115621499530765981220554128492098571913539194006624907889192200609478678627576799833218674177286157574990370021217097205769197144398004876405570554747525580475375814000563926193604096788122654283870531318467076497272389305840496549604866151623198814041345049959015915069307571680606472163956902544464874844099761531335671326328127030461858010020336269129643645512561452288365216991046761440351684250215780081475129625994076613929093768092443765065611985506517896601174769008171937927352704630146388201648442455764057987587101673019372476472307107454244317618478397763040724897371827791609548680533765033759746681311264702111956490142512552756429675919196320926500136464846806946960639098934890216739451607298527914871948105174327785397449421968114875759524937753447566640879581255068721716520425028217969793947408501800978721028384261102428235309513314483644060010716970827241399730169064433418140773571947461026439913640601220157611272304421706762691794127883438401951179742735716727957737305443813521846696795310057894003694202188854879157224145246265347336294590705484315961840675914942976326632950569167088115816477105463123713271855638834984851875548032009194331948745414132359151475580037989035990358524494522281082066952370306818836185359921447737314748251790183702927016120881673465706703809212077663034063536718478534245101317414034435865231628870689917528593054661015665129590520688682575024088819929382389138748834006304050198939398068540217831376094774909779716784854460766029238226408262343982333362285984806350068498904939131464471334500285026256559794421557456185586662477753667005662863842353061931496206420644926033986575061081150424594668445928014512986666327529479214713285251783266250454800041893840871188450233830702054747719818709134101707952398634003183878997464916498859792545304536842828365030918067738534929602618720054969155658373238693938919373485972236808619953217667812827088535523254643989951298234867204269106288961351154452204479051318490838343539169260832424771765631658120162286039365975497098281403668733531179741666673589767556166209936053660940940392933913508208309058928489476002351289598544138019399738079567084584759879660898030733058839684095378537161882384137541084625096533408403515895526715374543337283949340668796417537933601179976797484184599934045813507925586977325164873963571525988659239035913858533489878843159968031270404666127202708546905683996231694755604798120339275756936038951199688169117224930665521729932168730535012832576349693557548423475839674703666252798511652150444719950790037653893979474753469301524377329053556875232062067660712208318750229588784064065730750241326520556473715095138607836993364132138960004949863849607383669469133407687139914812288567236098391659227790302117538208851090231706185721922167092082242781534441141980052450076897402390236636816892735130716543321648850816156846604988703172378530460768177371005640264593740894386759103047196429179481717443861630796026409732288803792747831918740035111985356324940828362815403396172698073971583285256468605752999697645730862023210724093434976051516653952193807039699585089699614934078407611195834056765953838100243817716127087233254388066211515783107578245870558398860752070814070599803144473438714418988199884702818777301013169119930776509192702293420399144946860151987842447400797093163682817599493126154517878605450928750455355263588668849175633194260852209443225184322746379654119398160096217605284237254877739464298902032912302947020608124741335417671902855190495511499087750872422693063752210556717059064913972451793505185576458087220922391446080843810234354538296644471700637649575145288276329580701095219887411624705333230416402919229570611215775538065717727380080180720213938839368251175600264734350051138652637404406434155730487781760224543691767531174031421254094211802531889617424971844534164845653327315070071142837821577547212676536984594037947323435146687960676629407088073420246656933215385742652535552224705292818748483577527215954308084006387027178216263264394406587435690638419642619689651770468413855738196381174953816099699109636927697178670192871226576036310886384374951402129336597730288290353845340972849090087407774178479449758249683062384496329074008055095587828977595832861738079847432403100462404725904269610379113675255351630725570740269591052046992100423962774773846201453514244668530324760926107204104382114633065849838903464454153883077288358344033329720515448142245678580525851552652590701713238704130212918769189567591951379850713232724930350697728453294038070013371040136600975960729346191717182409347282548154069818301026446825462433746308234109831066923919085073460433227903199901730150258894568274484124914683284238704704591318378769238144443826648636634460906201592916350319066539759182389991953730319348753066773624601298370165880549357520849642006586000619279788095966680277568730220373091758240322150018776654041789194549068250300353940779747538880220442612540776696945298769019677251204970695633574908727349970796715725479254310542741955276251384752038518223807567832224579906780963253321055410055702733638478595006639799590000450411399771799994549316296991034950779313011620911314222816577288924962150548672601309319547523912360495450045692600726399178606248248056597286231452673121376585546076142940522288336509476821050453686351399526878845551798545688219140067647559814880497934227767037165536888078095220415183119608806899425046315403503039924122557478428392627376135177428571684775884537579482947879463502577716108904355269463389530070268432711996854718274308280640666324743726719812942134993892062361400561591925714478320885076213312379306653904143707675851665984210479479624812182367699556877036505699897981160528252829350108559055926478870553759891547435496785469801926946932785846889667422265373434174766143016128147006825083196378796162995941505111207104407906151072150869594093263614978220005532072214845881954166353560195160142359726453644187908247366440571885739020869181857846956994374796583441838197254008580965053561602344280480452939581002439836273153240451577203234988891885608747349723736816094154278813588875957649721835348291440654707683542543131247097305190129819847422173407588154994549888220806548182988583972425970729258416569169905394914663344071575675012707569441835461486563882685269320996808763980502849134220311509476342094498858389278685385482708802988976335743235532491291201917056050872557256921149038616318736262756578785252026934286343120963842485689419775106879055713873663766995069449199958667698276806736643004151168912985062706719927881554655935611453355526447945494039987782201212153324111408515082328426992200187191777627087488533493410385255367815734529318705582577591075244105087400246576301425890022376238409678370229583284431253316520529019305216354868903921369423140561545235223944012392189374333600689191228038554280447375102095276599868376821949442078970018526549378976736905283907575763903205674841852142045961980501404166468913756060246648695442792884540298284959705402807613798865995082500512301042547638021119665857475565676859340487979307235164986528960407749027333583520268484734171222828421576585382950669957815719232032880179307842034333784541633955623166768806381909042565239183273001989457860324605236389083455331132786685628446051506269115104150901479682710248859132395662231615229575214796889876466587899316736157893410729736887936639001967354003913779070921151094843970252510423186893067773161813484096895142519579182341378257439557779923064916893366927734025325477174261849611869447717511266761030240626957153407422483673305549453123834046807899847765843674199776341763768350954757146243748480420191754666128751040790978514407752327433604269874724526320505366256540040058452556867968273767428204502971111080296770304556944077757774954022475104079645173670594896337421223754156414614742039254145160385009225522614732996067421423836581878857597513035853539870427505145274370239283317591571475131906813765469763300943808908590053692649551782301626077904595139245920599059254540217399540616454266274610049623328746380281302711667414302635448894435314272495492266726217152182271740925523926291030405977444791651093811199990136607544810049932464772544787521687716706164657586911408388588860592470967189014702285382654135166520678764451507715725459975614458754112252708865434578834869637830868512862991648739856257867482374801158642607417155975050756615034903667444624950820933184804998725819060442303492235820310259791852031330310105289304895551001775610453163317279837015570181217079547772718618095233402675564785659530224069271146648907205310010307262906858077314815961111100246820655676490962506458444554163104195933544521911237863946225630520036540016171471142525987011562272566830682768767171475065206602835873376585669648725753845521731201047319997599288456740017139493486408323653378986976159328683283181290832761185190900497931764664374496013546586889391026551203501059332862912649007046178326589311596694969740466089707525732750517070665479333202346590668317162820154828394594871789729944652967500814370442612833603596631142287776293635896021006250562006417709285717738849336981650267636214374876366724229666786913183597902062746707727906551479434594131577735752497199340852197667430293338073707562511895174502528383438896045893877441988516012586473127276632016744691586302563582995800745363061843920724595732660500107123216853464939380814710768657641368502589504580310598422490160048840343757815875525765030860572478862960184496255280979894950573361716170952207786934878109515979590067310843078836619784412471963516858223343734865783273190253717512654817378351372244347512119009187795188592408333274400602538424090904889757707312975737862625681594530154410420961065673611478644252309418753329029790891615549114893818263002793482371103667476707890658385329745989123987896724411989729756362311670903072713110186230023549891964942868625941389595814429688595164243509259843971891254222741027005724839789209493294457252730372820129241164985807986620439596519174965717299789411553806247499751122801973849589208228485911164911270720489227634398962455423521899523402236234230551340302491018291286550469791953207005678391951355385471090488737989436351679080280275115024379907999028804968060201635030198665318859521198541309947394746426197439199732364268567512226157793028403483621344551131343125541605351062419911298708419001294613275618491140061556279820625090155588696999665299234882320722448013082220258268061926358642266342581944349476583008564942204385995568917106404119856576919181829424936140026438379766996761848911251145389415171585522965770015670318905843672376484450374167595694837077413528987155273636427141337931708179696575536758463441543277385055570640519399889001242910843541305760687538772087139230347548630001656780607525500697194152721539087475831578916378277102274777296034731594869284793140108920198470907298114471942231680814348228958578706048862321630686387039680243243656542226539408504510355747331900790850328326986777891251163826900262448634902969130164579386782678080992311239058585537554083901299767961608329549098912557484359222485289029038047673709601946296591862556406873888528009129027356751866407749753371652982547504241792445756934011154554920805635822848876238435643036823662000234597742456330488069986419498613064278252795685610709217036713927395671800215425923913260842335469044128711662044554811631037236289258632706722037292816248272970860234277399088950748541309838863761684699243280807587862675771684163029107693469858930477050421480483231681794271599660174804534700955491336190703896218045672982176292154825056254578385979616816760209176673428105453496082910121011119102625725153592730104648047215789089518501187284782776285776229214993131938139705202865736490536701976012799264475848173156446228461233148245086345658378757741450255811216436183837516630410957825710184141770907206950006666557423391165231621255216491327431950720641043116845237758700593222115128585914204496379414738471943738446401598248797451070158915034786098772380903336423673418736877666017336600217796733512185337193956977064659294685299994800946182722635967863307993500573093358299854268850523539062087710795181148124038843485436403980930725389549536484928658014008874183334373813507730563004206018378046569907694572082077087827523549450023462810349608981922318387202465395550071560496746454458825484473014519214498885784314348411705744682222315834361759070747436767324371761278518441323931619801124360988152737932510779566998928162194289050772224338079986119259302027938959818507289044349154631388079619871451597651422947188600963763392755731763003213300335818986009568071139803613707563067000114145196592966525504897914852338702489061394400612339841534127602131506865871113635827663300902562649753537992516929032792349736674871541678573362523559400122860396642605360573190799979174537731736339277912258703815661792514800231283612480976455580001913634585020429655347411016473220181991206924105967571447393958100213080548178228577746515448545185803679706867001255391576450950179275973297747888423886142172432936636721243526555890453342328265429946868675639345234685207110139351156434167450930841512577751883092667825344147423932600375018957862736970153775599202085852618473728905889384173948129776154157184714849998263473785746908406503693936151927942613249296569134698369611749111185059020625149143277075341699786549853955553853210582081959917633208708001997719537273451321161132115433639709776232954713112968187232309502725080372233392915861137896269585111317668025163017398123543431576129164573224718590422828783792163376916587535158983347402665719773597265433375551929319579752015598294782297542499347843194863731588744104543233647265796746487999629721081930443069493128987513121288195585575564593627691830934945293701896241995993326863058762102702061576980398097902647750854577666695553223285946172280081539852300382277796241429800057653317926843764819931054211428837497124093633616085028091006080505949281602142099359270390660485292109854719003966114348640211469389943479637487521712843162858402186699319164369469983474470618630951941471134765722893666680307918313069658304720355044962889263864102637912175426121675896312166285195628403676551607935392469013931146088068835078657867046653593474248777222905968369473467290731221667931951081719831842158131765878212446303233144069725773698047361698084487028572895382733657534048900240278827159711134284583690779493997094656601370529635354596345862044407426661278366807938141490009273169898412688973064205425022579086139083884445989023440583429932999801466560583579894743589799214123730410201965569509595529567640286562088035647500721843575339476292991171330723656673286557579295234357360124440053773057351834335249444942191961961119161432990257487636600736549281411948802871475584190336210580321296357547108309055709192511762736195762469487596484372212295987318937344709107914818192744036465714959064846767806952040250215833024196418572756958690634427317080944300212824990357269100536269864643127872756783642902554243838052298748346858819125057347650134616998468032812709556041570987070692462292664798313267641806364793023957021596940854772456730270420109374317368449083667948761266493576012301842259176490882624285694581104032982152156523903413375046403594141131749005182760086898246683366449861144228896878322720552332480878752597736670563605152668540371771979120369508332459763199647746194197317547983912836877415981897660557807393709606080767602433486241039368730906122109584696832398787022457701813126926545583477614650043324259995951226027016925425727667688493657141206697763699319867174044869570913009182090112604432771528399511785054430160051589384494834719970879546759904147577106010960881871322075759502934455297082586757845539405203432958664323906942304041805012070462104782950278305292608021293117661946275661783410637579829930346344636793687846475351042456944991730380264640061203763274680053423241825899054995758380931369486595190625816484320118780651511121181578638028361728892640613293152767125011594774636007230337679418174633595378872436465370472804811988004027165167968866827666887422276110673262932262822048525356225342939080878956045713486782642472074135605142503335510718015636605943423198572059057792421838063321616196250160975098828604517913109346830341357129061090341279584289763167442601275298786591151445847180632683218881730562062540087339617180490416584094558589223906752608781608599328431870011754331337639770812993377952023629791372054507761502113444256078040611189706066901018401310838773397722558608418084864423793929980775471012587996502258185710938505493769929110411034241434380999222720738208243819438049145044745757125813643424092813751509976936618651364980492162658533789332447463616294958425645628418078881477756595139986024865454912433968126506983129876342226424410241565414607863162161964239634642510625303031673059283415145763192914404990084764497817441451348212095757174855854635385852734556993691924563095082383063692349519089184157565629154155344723393618145396173905452487676641982684825034897385817929170056811030351685827731178304428538799950097358273383251213326127991755070419820720525881916640658719212623861018511098050013988890142645214262015139713844924346664024079939043775446471679759400226322687021392261024373628523037755414623163904838674606081762333318956325155000146043441389690202499285605382092261179846879454655389669431956801803722917003330881994195152548357388939271355292391782299877450674948964189901382542657406238820478338601126209419251543225395602420831681431057618980517371292820416495886552791961334566892213807740478757754514335447279321801376338188464159572807687711618245805423756007720834546688520068334387984183919542184215587521124680375710632201264983102568259317652403491123918857586591057826391490137910257507554334638110110514691735393547332286776750864289894624243072750579326415182133333714367915800936250157631510830424774997826777533280972630982165411376489423601855361777921872494246003270020975501062562647174774996000828006000393619707189362582723211124406391129159522966742563347448267445078651415082745990934913011057546293317528473499569257967548069620727694451962809188116411336802604941928120433796696795693406609723598787384760154898323279650698004698601881266991296497068551917924680913891223914078784727072196245536190123664190807048522888867450854879048008293849129531563615732868981653216206502338545521748609573013879456647347545306226933646235212545917615037019251986234292555592368664781593518142158254035079582452017254625698759700200886179199403371305924471543496380860366038432542074204835555332127292420083627709047827598300173473950888583231943257299488129971448580196398668686257203551759070164538410941890972237791391431422179013454414395775759448651642193693599984169648744647180706555903698000409086626506099371714841287082640014824822249739766082015355604136017290743860357075961283405235212214808398877631438272265426306374282451435961784407079248696086068997090340794116554384847030718702603482952436034480694297937117451718626307291437494366844704031193477459712910790339950968215311663685311670785040704940730031044429268597357028131675838633135203526941708032969841214437366527402366293536295914445602827664438953836014515847780451836756054002924336443402989904064727411118720514721636994143283496125873869889453656032509721477327227554103754481325870315630607356883479472796341781870781575094358846824371095061465906802409747084050664213466127556187423049423881798188032946606751798102926171378696081986724034830151936364086984375143130162044149018491979796379012046860158425782120567604311248531139647168206346910371268397732545489873400492555996881988109967231665022209566760416642264450735361409556027876374343258536622547415563523975297185826856413242440142156394756638020709965831001861564345034579746480975088460577167538812142088744921420778976718101022772618015189849584735026358148096181121171736118017994169998308699799432490447025473411937048769047443198961800387358190219781588672194658487974657863187049217423566744139469734660895708317767982339313697502528441609171249149801045994817539322566778572087298977649443206521324538322750858842131004710349549674491988755399045766713039929682053776606639831615029378245107098519129924698644902406921439873412379061312087329759078017441972238324540055616795781515004666221874125842406276689966150533830509043128461991290729055715925105561445000503149510690048482502765867373302243195362421420987491996194291920294533462804871792957316632402072162616147700469617730551711847845467531472786384678013688607839353130590359002609324182795949086688101328426057967394399550711189949332056078679650893281282911340393519490683466566027134834993208241239113498005952422058755735116763622877168052792865076826161350683132835711878356560811736993941530807978468238056955638854048682703886568407719540517640758440010651484502588876771268379473395939808102193959503720470936155478962912042188942251323196687498044860000620207494542671535327542745291990826825562033409345228606957034186526631875978303980478386221194095309443018915164675913401638700837602596850209914075037823654049983643967273811894108887389669573030685116280798372190366235113366980227919705768160488098372997154854893233056080189119280766833525915626723743959198465122365159525987690198773685129049831784666761835408865538229731779432136750792592274170015115614986770148471818431050689767061846141776306922636443824860803876628879549739336773265975292077298568983987113014271622017809247716667352387184978453838846949262885573787656385236738810506738109327581478738655275527411498347726501660808292369980112492441166906036402393158590589726540753912568426602530356987565550130658254863936199210410398644027886340578335439014181813005443007819112270584053027419708999673422489581753438174200505239235520651142063380544050728044155101748872788996942908813763149687742610680430045266046884714062465469445076328006988780278953429889545188035330198065721688837576274307978601135020168136787764553617273220531623478061740373547636536560501455854810356499833997898619020223446024470735197569230362672493527258828873939150039982843062801041926874250130926670022127980597999109383311775159093732630011101019222133592940619829307268283549619626390616043988683293164031268992436904874965885499762070809644571529790183847996689392097287293702920877997452946062187973828871984062171931975999949884053496406142142664930962645578675063955496630624888895011165021868170844206587809593500083878104937451665096678742071610778233041595000467181563292588376588656034887109505485009929353138139978974252433067320576657361509239364951149962845253465555923209035465583462544656671289261762094019161295658976240686552450579415622529301910044141568658819057436893553273487438794016937563986299099054937120857361478796910156755272072626660452305894316546076680129539908553048948535439552861852450457657253521068842365110610685181027490355993620675227572988126275583342845793008672548169769724234529214341414436052263246827566870765455898260468328502213756184544291475970755140145202734852093913553310806503289935153914362869304163762387769267021686006961315142089986586738193245840546561619233841566634781011411790061752554618846405180789120992326678271025918360998425267980708955822004385957514941465724074533602070295029006162517948851777208550233646754293915594282601825077772065384034234605271031310746630811378248558416653420117892202437640831988563685126121000668112007760967922374923737396545163372982807975805902650164171625746971650338125057007517472444909245854706901556223448134040939292143019608820800622324842974898087235176425711193829486684240586228348713424086749404727395355354543165757785842438452021364257275820231412382776107581452812971008588007843208851195598953842809794713686330369907411020866177713750620626889167851564082550732368200136937451997517238421878405294406642843249474893333040125035509202276500313894341197981639260709037594518134307100705846679208304265488589817413677528060481622583608993909311470928312262830945562502926183026399236716293141389815531629906052970355313936194826776844779621582384920620379609993663188472844733725674519314565313397223740540270506307812960422130418890542392692348799560735933074224286776708864928141989128245274959024906863010584073636353739687114146284724077514128908830375578336575750444358068328699964986552363366254527864428161402074830593013673060819435793261023240527800644670624894802557659681157314802640666149130347437065274169136803491151012766686582531927555357530179053790828019223615246927553798511243910936494559887786992455806631473859254279744441070450239123835609328215179898636168555333549050853168875185197097480873447958565451159818825232509504625161793363225952777883800519322266956472019284589932324360635334153285669129288104212981229729748949511982078320523520276569781921991698191190437987430783131500923786503631070000791878451971807864413461187135977764735211861024842648409194995549618913675738979363575505005576785923057761424403662195335130705833480351880613325137506645950671070691650797612963833865442855480844368177764483631890249803966019397200291352340467033282301787764190246086842365991621887946884005804258459127928628058037071054794385125852104399606066100226746192200909058217905490310385835758165528954615785933062503324156588952224867984958372477719806174971502862225761725730788020081601139745783620583535477749202669564147044978769432254866099873766056770295047513178108560641018011396633581549128116662518576459880296956735341619635396159881481710004899899856480069488770553140317196448283747465317295895957840525801822709021027496276345870082082457423108554053019099617033854515830538036949543836238376557814719307558459136470776525957914417512550981227373315774155692120452497543100143874380194430999747467459950855368141570698154316525411905174321869733152336722321325941033872359099641944999278621021422194391807976863000537587461959132629702634696766116157850890433616089667805278119909719654115081135456944561527979900705056749876714557147685696545333266110314706298889131260532047839213690946919169537599526127556418446077848300166023093453979573780280979611833679168353154124172230589851875946206867231698202853495392510198914996527687249419680967580407511204073552028436323604123519458291770837657320456097669865576865961228876940184727868062372070903987422698723567348749362586933849860707334080941274896203907693097214561818298968085486059896544599160659388859473493534022283010310378781413418657779707430953460273955013293660985693195019589595267010786041745808050356402320769122107280650601419350590062193832212946768873663097151000217761895227622102629756424233993742072319424236678539354670320485231486037077091811120860479495771150892242165352982931493252718856651625541056149563179147052085358109986562075202287911973255190389347994670862881869056201979089520359633947466168897004784887731685325334196551701986113332329598070046474140898740774006125741424058851774234049025215324753908557528083285077534235268991672035468176061692732047998608575044465522913488014302933009738874559078655409188612812290650274796065359084818120338121595836125258681452289021625721881563060255026454174532663464163370473018581367076214338457241850868935599682784690388412338209722878397966330734487262951490952940168063706078936874253882221710780788697348680177108039228023264730795249078125666965844744062401101094764850264290001153377131312811444939504103243345344426254751797413420091259258855143901952874658231495202609277823270273270154976060812174486004720086747448505659801897013491770037204280719442630698778296179451858123038493224465264147384783368449307026137898070726256951766712366894316914902833503276736045818368479517154233321467165897398488225715802971929463052879157320376455172027384811409658250704015014085268449603648879858059757586249388760716623473047853416905342650381533716668657388238778202099528322882891001259635893215596196709510877727713843319154365504819415293286826662554654236666928112421582223560922068539305923734565065448646450716624565391158280315254391826823790809412612491430924715988632679738227945131244163095712369966537896411118568535651236127322719704848051838266924252901255998206048792465195548724036666122129355012603647651589464951697942610426716016912556568041846109472215161931954017036206712334361581008461519870332884241187549569484059685835198811478210720710699771788884511268742746028470508247986376518826807781461974846023820903814394884334944710475492725882085303360013471169390841798925040193688419601048649111853214438168818120137406541329736897577190007457695075544698792550169858597022927695764361852870992164377801679096988696718994816818895254398990928858297302136015279707540715074142894919963896156352878189178184750823590207255173179785679346614513233839697333658665313356844303344783764145611977752451497634804809950211664595709959639486209619838307793674308124149407365612503291750915334019261782082180314586980649913049973828556807261118464634853745792569472047494786875931234637766082912925033173002021722729827567724575141365078436492987550227262576755827996511281497192123062156105996165950850017495432282995006140537027605055098825049857673892090935749887438245817185400278903236185151053271182186581420706567504123775183820961271003913012378062937375483306035775979792900180551874575498116259855528405828569536478450924755717279677605678834355365068855578254005393824519649786270064429046728321077211963779405543229090053765607845387646132503014119952112900096051863874728802714240692280689868866731029269959117963916515862966333735125479522241447158237730934148540054900103353932402298000863551188712855716492337780752047453293912557027800792715118033860338694337877942444891907553163911310975164068246030501172457637488492696517474410453711626154683830452466984519514032902711087308967552132840146862539603937091322823096396338756651738903885907058410124434486354586510772656023862336889799153806293215407765913210038757178078616181452809693687723156192494756981698378993960337236914934902782112145379587425162604889237181576207665791115363692411572972583023981189274411459793432468480912565955509038860128267316659514988683516268648253060049103470822063231326597968699711977123126212851226363874342910013176524806733667428870123741829073173844068459301949011689891546618065369516599694300379894994203369400793489956719168324698067110968993019996691305869063209949337882063415586646637754080280630135950404749410952459244435368499329418786984853521828936894377921310121249664511780983894096279332708297798182030281734602565822868002901741336438498357582247054157221460165185115806405650495448998894555649339591482192138050973001056207469416028180267925983252517778738189792900268357316548773552871722252025496881966872474221959854712887802647851623574464203590818332044250099325626547012193545559896276995969995628626297234501842761401776673619646781848525068871108840001486109502376099362286458189024351254063972836547982717665547009738334261713067014614815249952551087818579405058807229735139986219050174436912028764710510388243226903274592996791468154345940929515117609508212859531286803534142478978428769828768526450596548348402796204179988329065220809591159996533422645757390493771098528825123763758691999931486983104609984908106454527008303180441265496947069067713908652786364254568582081055990470840090548824061046768833976428147658122259125048577065461501387022028303441424363197880905746247010623052806517718392975777223392412455131093240158661338730788226291730446175535557587558580606434070795879873624960071800903218632623986039636420336297835444477848183011178489507697587786533224147618780150497874912198696240310475492967461556893435662310799990855626769304410383532201902367452066656489446760227174494680639993755419005625226036258846070825738112502428140428665729881046064343180064875785511611110854524626941216538538497515596701917431465292417423709521330995090345623259700299611477474065009428556050843314563562183467403866061237702135763109430734182476057328752571048005014035817914932355354955761440547866232021203069138824101472558699269156735752927249959948329467736075221060142088398067818320102743711961556078457969782894935842275900282509699437526178550570370127855712742756385880018585076789883435548274448337955766448311230160692858982632790810860013596501602627568743150112335129387788275003289473550919000160279886693149860279435125754609695154083791255958706302942036486281410859259597140072159237313036655294857972028276868706377703250644364447031607466626577566829010576047193263597776932916202525434411332264082627571677284935455160559169783940319212064878606509851026358653297052377563761561991332666164711504492047387772782082347261645153379376372935863180355748398090832989481567595533474443696127945298904912333015515005690019892079314446569034805477692984821106569161613363637651524591607310759494114083865449796363339126225514937660098618974408728810854567889392137888492262251769838370910555023989081220181525758570115492116066205577855818619529622834307541826205105676619136473693048781580978977159292820028008852735488698194606310376324905185161362207384391342254844518202124044322407325434735728291217156052085975511543041906948359703890656411188621083236399056136113845565185233578912388415763930090089091287116514656693482567124730323116113045356878007065652197919053041456600682991545695018960605639815263865022110761627862530999616651020307886203196055986603125389788108925235644251546274441434697125585940160597004943586268513115158120009875526089828748349640021664873607029904280520958450555361312144998057319164677711678434330165505078837703342115696104686552022672483392454025362770440700927070856324951714372768186490161788126868913576396841021238731052412825868676686549329154954987491045251773263814432587271915317555123865315941798238497556824782674923297693037237699105361164774693492624056216783478583059350326355593033158242706262022284932449172385824051486171768951291105469935291590035066423273267151792162292902996954082575571125584717978561485551977922086716957433112908798330791939588232072100403878245686352318358214745759683960401234941302494165549361740550229078978937823320381264786888607394035310322995768113162621756417199939031194852616851172233173199760128584229154157474017469974631104295743195724077869740020847531067804413646048476227559356332036858484941057487776015512445089063514548091693543253949977353619257853355809341538088511995993325325966325580479058807103804477222147865071277059073192350479076311529215687009706446109337511316615945907312036899734480985712189758309089648187796195437456934965862835885196546748887856743840920520450920183039563533793024807876647414029794573746431461581130098008907167003789381112694907531500934507118786198614938479947073856269702935770910164982321041399644194737251338598314810009998910189140674935168952818931442539670978163222920977330064548291125369634179747670817488031806156017997387227604234907622726065695662140591766844114866756199776261237177280397192947879026020703120759711125547418402646242639543281106150260429623097924415264632099049327653923810656177473263696528451630253644459133214969715201690799066457587112692398474635959452281305891928787702725155305195749105614715323391884130728036872646091341910565112819457404667678411652058534505199240570431745749943683870747925330975010427322650503236667245346286216084389567471192371457281744709269645294073304696771680363242939794187101189375195950575112255748774154390786884863192415799852145165638241153790433445322357414970236719988887399689500679673976134772115050659100247225944807270228025876270099475003703688201550419903865067400391190948325934282619870404969849087557154928550598821954980176397325458860412737582821857764239995099669924519641187678405873567794306232005499119665656079158679987884923510767713441433674109839614813578490372085626663836710952976925635215646482363418834431800976947882952795734166465345413337813788742927206061852335687381845787765039851777568220080276331030042379069402627671877019477105822816395766647357676199996976788504682713547833286764132697239243952530245709894020146831853804877906064211065913038442219818201388125136142618122318711386856848056281766425495556584666377450317564889473666867358968189448635427277525899139632050486859515914057083811870877610933613436441335366945441519874692479826199112578265885059715083328573861831614796969595637321420586814332400018613491839512411805919087215603141815574096513819630708873529465915879099460160904384294817431538332494555270933189016787726430336678111572914199718292337320347695115735923758423682835930041545711169911649102975435298382015024301833728305430479793760849934787615652366738320214883830104129323569060256671458295149473397407359861745209582613450672202861305461878765407877053751553973396483970239822440142344402047107899445741311010780300252403306058212499990207807093650430802368112207789680344331147524167683259617789824416102322659720611671789140555156431004823458251158964868296180226276054566629566791066802728601215166530640779859939552296640878973173808465005310924260870901171171998541371272504379830206921514669530654435771705276667191854116389998347456066715766784342276544030686479803609588634921465096496429182403000715320086721811406530705149855009257690003078302946499880418515973198681047256142146748710205476891081699235514155593461053478732506869801948576263410893059478004500106967821895577828727002499300061962322416825205162864914051960747384010799401101602830198391088497351894206766700640269196255969513977582809568997800197729408349071036278490329537151383292592518749069175084312013968487893021311353801731283736536116919716431833149437678311472761909963395579696604573928506277851844195411794090263692460189435633314806614427218432427763919825998297105076525802377546513141168285424905200271379143278124080299999407042724883346126197585428132043936729427757177904470957607127255333774828667421331339531169096241105250844669475341636573037742916977668294911318111579042511907704417758151093670188409246726127246673003696298728704795184174930815868737301393245016216277826348193923993125778285126783270262064101586662225440154956533566489929060912158052731361167389220565633068922268870199586758246582053413838628624259281812717856362703214261761001419084618078392376235798362077057296635624512895617485498085873014654103851438376091012062292172345178197325339609457865837127980907483476104389002961068491531472775471704464924152548944740979950405046110644182899496091817166618614713963399471601363700218721498077347860029339592097514872202817887787219533254665402105381803374520232648662967778935910993490916460626104698932067426720611442511436960266135833042056118593156429018301815802966904331795811163894214516928702897886223589064247125788065719474021592765985221593830945639712646714764488500539203830844885774447146352078069293271489509826541743142744805641583302624491592733114494824136787506140344965307010537461863441067077096438706941015356368118525252622823509298063450179616112246183465871688459820758811845566713174586905124496489710394234234065443498138476513004210630756007509928507316741249444469631000987399857626225331320849857108140888484668717291819535175042302269532265070265401463450338882183509029201523549417025915287758861354900315228452917381492903063301865358885733072856295655901732797572302551057883543662227548009579601184572856095038551601034206569842865435264055074427883872093803072976562285984626419495539233986129283225715408751583904854329124533203716674327279037897656339076465426743986414751326658904375773789968060843589812925764752581358897474468385372049501451696196984017333260497849924302799408231182959318329702375502838276159110436899946952616090282167368150560394637339044754640939604115353396997771384242453401124706749704507341755063813543817815584145443782831784687111999313333086544179091278576465983118238336609686693439221243543691898061183756597803502865304596426527396574575384512000272777224785700122341921004360123336289211957013008531362409053167639687430371236469119948062055201218437606135635938297440987396310099593810154630392494711342752663265479777737356527743310558650530611175779887596474405640332449661961388225304591931888956839686804725950167763795900115430307869123633108353750359001698069865057405949617522008386924874563026922709158865855332799119003473679195938714314364500572123068630486568727759818154652645200404313539601757438885547107085809823230288982166477461491433140663675521947071844417658138720028367585757313662741742143499646769411597935534709295631139459726944287758638171608724113191079654907233550993731729406337913788227726985323433698084693549202982608658233420142571133091050851891690168946092749848371216249855605577266387140584231935880875942642904764464503696459460522497562754733307225311342235431372578342800073631362448801781328711625892505246506236388707596287085290936139271473344823479084043128283735035511768529924653223065946294476578363550338301804767143449177569993759676332357760045837562782941808731688949185733312588985338177837139743070192915940888258301338352391812481314895624594192716009603068160908850871436844044372602232120244714338293748400255269357738529912493703377458355266353607652829863640715999524196906445210584281779657592559258793872321402446600183088600152538439563445845833265323807450207184991651665635405858863589702440085722737795521311425907388634708295626497767858788116321245247475350092713927442411784721460976996117527263548533156838997835373543800258904686985200968562902681838576338923666676666484983961603597999562691957131798814733307102551034557197650032913159893676723321826944885310338703342654217522866046254161334051564458857513515135560444925724459112431666393290581198674287141087985027452660745889554717343528977944687165252001484967068080457818959930569299836793401591305569995977214900967408628707327829542651335451775758654006813274164848982822230991507205378282136307201931656836673034741830748731333403680842646076520428446323026982533576627746025636484662261147521218795382960210126825905725506213939025704636001796273956903381080894354532649418098952080129170050968427184065554641428810491048853821553231858974575655744847957674271449236361501962000453153497520395278476583909784497893411449255566705059884813347518368588237224872266565628968936204265155914598424101955644461208697588123079214068122753688289937094697766478382504038367592417312660267603249890273752048607350364554290026073925833123271924184771913312402569364658724585811532494223636088044699921387317340560010259213975128321391445712901356336755633580140705654952542977326744481121280492485050560427675540576399111446633341833936243464248186018975342625972226936826241791516322619543252015344748312464447410155226803251779830439598751276606677725852875787607172921056072885891522684467776442269536197747555363881629769369507224222635365002510602531472229338104747267595269076837111650014542722945684989574421483759535208697235816015466411413190404437013197971645560597349463402042500794436982300664341157696628238990328431626188369794564603054016032469912146958308915344077648284837456145365885858123707104763954545140267376711009650674476095658517721969380916158518663415316456545106035868290871075338687349857708443279970051586866400867939006605380344286387091305380005566281184014907120010397502984041741911815110612958020998181743347429630732518159365777399245025904823711935244612474156841740642397939097623256035028255501706993653508912795784466253334229264061079746468360860225478858777473789909565215039829043632109209147264698345849799521631507081712981760273586446744092304057984017159033370453757803728717271389678487061402493845766394611484484591142215551487111605926004731524630064356785031486410504196886247751898277206577945109568737183219219433773684431959399623114809729086953624071331909357010759583162831238249964048203543742428445152633296461804066212909238496536692642280062222846818182930897503311058385063644067673070913777702245579395323133559035902261187479045927264767626065838856833328632925798598784465376939353480606427577412018403428050701779235456695558190153223689197688380183530210240914162623590891629389832687728209024755306921167589062537054957647836802152983383674366927861293668212935576703006473894554299062778084192709196574110527685344452021527245686344565142013344436783117260769069579425978087056394921195362981066035002304187860390631197350162332653166731122077138113323777876625729649986783299608152588429501143212094184466621672732575045677043944509213452541487252440693963412914976083286193634219877790127466650154140864083720509047402622801693860888874295090941951354599600494248172979918338911927485019882955011743813349793520810288650199634810676646011830985306547228728632147352379750672200510288985763188802826683089944967622876877484850031640748356155195794514940752984005569974232361102002385205303724097388788462834954653931825024164606692340654892943555804740718771305292149691777889758768154803875546861483623459876656915613417986853005448478880974069074319003802580233393503750069123218424061753282881002430285061433107637848397921557303702520864130839505970908944712379181731504920524508323959648892623915849956173008358560153043435033311328785788335400450729148424402490849538606592246925320892803808789114754761483703610928027529508080619048672240603231461591613875203136942843528618883244635437278640809391029592936909127742016518829727664902786928456812564692142057465231253643022625589163426267647076080333323630212434704050401932985708600978450698970929008476262929460142237140172279576059809015197575202324896707687093420324285266422821204954814928733257447557187771856795146590143640368420907147622208040402255087581683882049329143017652678815437444935712402025947995485981860749634071278294577145218539972725114107693048863493141424127838202187018699879515983448057126768279065568726125403694679262789617869560907324550069273465609906151776306805728939206472506618398154258192061578873264185475033386645886640064696205017649304950090102111517290507843510237998430953803726522176160368909445072985946604501009999188392918749503186930511697281803565311924368016799577665234847118121238378419467244671022815333340963883347699630476825272447090296815124070497137374320362979530572695895902874605272191518346423017278307713661291914026098352196637466948875248977465781707458643486264956988910338569838348570238957859475608580906872967124583823926375801859663679190137379557625266812529746664781821972112422055562129945305391939363543228858157912743339362943069806979169130388789957069835266019429083166354738342283464987886869321707134468779329254569533358752512708414792987472530028308166967145671712795048967578910298468878030192707158802314710675854793591920509766168151282197143596250433736326119403885742472952762050408871599466187487392169048291636360605086345281948534135653654452383633254752192144381217700436180843512725404340660184148026856608047791276507085007868560774013542365647136782794728621995458384671502651784659386756261586009175799251340599744314819548518636889576064146451897530577704159857735415602314196042299214971518205800262781434902907752698973422357083205682106697251653888603968779786084665172159395056619089767644213350449766150318957329582530236448198206646625975709729995786579548768804696257800045154919813938558512104235627511339003267197351101622914251164630915122171806620723910068782178882488063405579440499739175838697312123829218539697197138852004775547092025625202783312930282065348971742680163902298566196876980121370091033506946705114223890103746865482261972434228640693250922106102444564552862328494899014985146584808617295919453703957709574520098780686051238355542814412167844795149748254734239779698744887104165234708133884827997999948024264896910292101308089857210349724409674607527111214101104271209575969856438701680823515229374704834994500838724126401816370291441112140296988279516079321301050947547435777942460899607597968516854668245695830944528275484945776432995557242322610561253811453948240862756583631094323112952548047614080041965998752407497310096447516556815325804404398776403178718010398193710296317254898197502620406149070104864290273775345518962090565881767689265201370134766614147464784638436174641077721798965944677006513990167294275335033336024508029475003175487691604143572638461175104999426851255766005792996400567123485048086144121697994411842577128026321418696130784911563184894821265478762070413665701814616075793728028822788159381678583323810091206161505874623217766267877428480399351812427677967680951808110167476983177971397293355508062773108180794946663481782325003896418001940159670083692970325345719341780354444498200217127724095491026667592193338770014737176188271675018552425023305581586019823964284433838701035011377963760595623949467555835631361176230244812706714424855390922665003993526551684858358095737517969555678970222510741015329809050664484459671482014014411023879994807321403335867804673810754765234973027840943973040988661679492510600835793278324280763633809250140874531928560252147825425506405912770951606452607297239929638693226751576608794052405522345721877410143073333567056391244371693748282703011929335229585686722800611853736211107162061974424565053912310808982573130501267343973170193394744043392808977336167435509737585452039988461490980391763492442913558339934815279614033198216952424009833580061162522470737454756405785324770608431064285049801998427595795496241352433315258683269526674208781499829078449203362861503317378917653207954200043461839525065712589376866497159662080198648978753768298434340024568148935452492510361743351607175285316605936288413612951170816371680248405181981432222806397852834601368665770829491715803240031862440795328077736526487901245397354208337291057794862466335525454030418557222627285459450481081384716080046534998250080827676922726526211503061288336198404052777822365392671805705001832713669467525681616858714740404298717653177353453767300707377531874997398277756463101780693217293952398239384225103896482181254248644443876361363684872733995352281092740624273111821734544451241568311947544502257386169119599553589623646604346503039151220665903446489120656439816322842991900953510332121463868717228695340154381070841175768098353289756675465485114611999167810502605499480803109339250521152140298916505317711205648269281263998533596147342427557380959994943022973251101297106719860552601836793569896171530407406887120199251586983553289242551616999581627386808840098206799591381421482018022439086513410140239838655769208330797349743834018703179404879868430095006661834915221962050079855769467783919489264218335857251108343840328936841408758437924585030872086005089511396950386270629553483360328832841256977950933102067395947698097015895145989326463961932712062144018350102923217546481736068475373387716520387340147549810011710098674731166286589792637207189176883097650074562609195801022723511872812344482269698988855022685503951874983840785974162346457997211903590296644622960819880812302242489591087323468792284285332580061060020096221583106391377857920308274931967417281172188263976038986547722790453584686055550972620084705962865857709986059041453893953494035880348828853689160332314843249028458203038710950070881720994984171192224205318263830625249671172885833579066497665934424400134774224762713628926689015715889869337582875292928889059518354489408447382550253766642807815179974369888468231908361825150042069196084983578931785587221854859461793653105106763999614748387774062018170150089838026301120070011498534753923974615083669342537342836670732580979470688048745157387881712085248978744996709982459908039151852472584412157680510942889808277405118061445394421381049077836792937465725622556071852110239484824976948760538517761734909907034380726108943727275373683981145464231923808792786705708303915434762052514239125784938736178532438957240780377405084620485239954795541895606792322910051137124144347407818581094230202676035375281659305714343215950140966674200181109071065745213368794097370925778712160875750418017197953080972675258045990110701171512794644166591290445644014723843593203504303470841741933187634877916737451877110851808453742246306486815771657839297261175755401842263265832894375856776584154259389953169006219366979388588891298657653300673893868304035010079029757578103468889550368180096991590662930818284252731561373536836788875116367021533632126785283330046551568149805797895510009349032051674474484223146151103003398602690532510959064799435117098965160823860003090688962718772058086674560830687848949272230893487403941950225039453722014770435813324140658217970583306281177292562287029817973934497342413134819001486314819651741272996109097100682738165999983377510811621573662496870860377592043541893329927941706798415967127348084289083525390671532580227724366763192887177903621247822361999880228382634855376714355564345501997967496542956579418570090739502117297845640052190646936608705734525516185093786879808503234398086665448737424474270975291320556493544041976765896132686135314596280859215019910277618861278476617291729026286222624336537400750831243391263946046329536602936694677188460670231226125603207034301648105923933356750520610637077401901583407562630684907232756382486790300505362012925659649376515309389090922190231682648608565985664885790154151211736522693652348090967828498893745193924084151490660052988894526478928323338041629924226416855854495689805710334434046597191018927417432610076717920192782491245188230997699180786872410208783985867479944010628309238619073063796793739355369352052810844124044990648158558031758487330712870628883848241742525893614247111231870123792974692412812799395832342467169600184662049098904286431951481826275572539257056883632139064053643422021447971587560782874353603365106544717208549428036325786771512424317224767393376875894407217397249228494072720236388189216141868419685091211510589177229202725421762579569354475442670053276617751145994679619305071020308576496668282955659340488076501486718876600048998929018052305417936329966299372242811907127736768827104491498170467934139843957999869141777510154212760284091644015167163336411767008983059075895605726821023458219925291894325732924565524435479405570533643751462418337752338202189481680650909480224261978070996876130185226336951855057372028524701921787239910647149632559506775091853953313670050198808610386247132567034053578607793664082246588216279004903982600522812302397004034130106873209137403907593737596842308772832587469328493975260002351710126133617784056058014727892315360865477304705758885690699201532717049909599948763159073603766558137418585230119191954353004812416802819647376604879570256427416262966074608397575981390824849164308119958276915632041705024679832658805606671943287801612255819229747966367753648076382720852228534060164365178201800227390983604334830380418774368616870426057691703424468454844986167448737008993722595687536955381752205089060285039417254219027343699605536508640637823563921669085151035717446994771384986246208533952466608107208569588390646385082441745979015535100003076274505790006204593127367047623407650862367904906500077286270666985472796071731035940941487395253333097604601266774261075781932522925801619795491705303386288065326658351365622387370596422728766053928256256537890591469502523440696752477276686295390905321522670239647975004612012951623414826824361866878964396722976329386992790088134182503014010902450169085119862461865098496375020030023297542470189742367199283059383433062885074775511739116497189402933771892072926777894417826035304542122368181047540162691933704879550210684005329443835942327219477328363937058090366632544947770608182710774057133789808148644730324753019731274266983772318216666066852111218523980417842334916224768424346127457723617286756963866201657193892046903431705228838475276415598377087054604795872774580914818315336272565465490702932420353688197231177193133051179360320029646972908546315855529408285855412342138947345428085066493226734871044428260151027015978858427255319603102168621413623368085055627661001758450350259592927020512790967391556153029666370023592367743274582062655822558768767708673000012537179277644295910985719336945244500231163538704029473040100100288278441689266009728918263244971500763287554426820438489009156830621745940481343730758222628492739161287583448834320298655505485838478232467969124808658576423241025793553919561643368818448905810711457327182777659548065926457885750795862830244000856626144187623527747413695408730597287203686797912142987257603653786668382767979707033240243394338152494882394938173240400995285595523435648653295257087610046967337918332559947500650335482617102044811450834074833046266656295497033333909482514432010969098920199678777805760377029038985719210734311403041091000504195335330056172621716635759532065704979041685260583204467199779026444018848808122548032920764557491470316732818529528518805318607185013910705417277769840040281824991736441384222809946022757009650951364910598308993147142889756992454530131974980582127390410440413799032606170296927387697939952225285449077735792224689326588036531675876135496412782237573365770464540176012551943705481801491833804502482264463223634478352332833233053605540546808927003211762108307906452615525477496332745871457504557570526719704902087328006244294864545045069522825242516250576864296597380168315693686533869985035277272127180633577984908650707830128128027276456670506787633651120829532593230209281681699929062419425497696310176961011420105778879688051411032194155044815236718766663826796857847261766426464673491131243647279051129082803126132514358675964466343840629526278879913514326704081835749715060815396548403726563498449635539320934353549811393167532217056412485283463141194163056810613977829660878985625452725021360195025494265232263675167297982190913994366058719709466982206749203213211495031791594725457565081770441680848337256575047823013211906779629505118029789916393820229445278357937136440892302557912018918434468855745341116066504403233389269100620622732147482075861207396517867812718952710568432095619992437273189640303748878334132456816954945558840896717507639240242861632636662749292743936931333327416438215728782510211065627406916348369819561480452884686693715445097109365979998803263357908195916550853624728378621983826074714072513558808385961407968739158390937531555346856961557761615492806631246708455882942827448831514753799568247928172563467611138213344981097803606876184953587601445513686311320306150220836488472600167353861779706483754544375726649994833931687631256083119287468372221567029950215617779147021215587924144794054162725656530262480488949062593215695127088664887152958286318331055189866041301500748037649330661661409629058255016006983647715742621071250338630973788103759022178097418010567200687230466110105788979048873945823696563703604367191508238532413911464968055679359523706159683150965725217370254554045226122271395560315902434145208412589897858335256657888570720927106264737819496858897649384482324958938084577620841811077013629623318773221292177762191590291997484372733329963778678673464519546943133112283580368210898384291343361358608338364101555784236304021213102117124150529817798419961764854538063535065195082773123176118300854586534095983620243040233578052443282800550465550094075391809180883210812814594481936852757438070030755723817855799356508347606467067654874890644511314806174453460264766492577846565348424743697509804996198673830953841598337919621807944646711593250156326963472423241437862534387488691884556121894582311672395992824267427561142460800632355729150184065683925216210708246954463764221370321114922004976323627721019751012099353638598557523201337371347637725297792881399657262702417934624616641010391843940430882780943137441116581391279821072890742802215934648170844243430440497118873626184364467532201110836256086257235050983161737376303897727507192304037590692250444325066830621063217979459572482518139884761241008979787087819236188296090542186770074925659356959704512025054101806132212751236056365460532633244920210923581972368418766578406681625095471708451164333659022806679169418850855691756961317038283282164702324014693802386222630773481485570407253907380942004676678602400429920375846184397809821288992582461959495801382092280571675005207580111891616518878862388717907996033988872987662937784007444111725393494940805059066347337700197434050780226050103372120202243028270828687580135921767275058084741623659838006324146879532306494147281888895592704648211637386199626138982882700635129413669730999939667912696938355580254813843959013583478421296139374365812089313862513139016915776107179514729020230815162293561231357961032894502753590911848990348620903520026338076208585528396252849326938663230502927880102175346414247647499915698789867517703524192805349109543846803617073002711980468355861363118161281466911303215142221808405873687835318775811768369145068798828084468932255805893745957874455645506976340097268113757279968626110714743172322365854292980074290610279833745906688350407756868413365210947207467451447982971877448571716273230749318254219917291303467974792611466371198914263406016114355688733408152092006658512229721923565752484436866530633750514973523487926881827829182547420225209195656027444910916279664653078330066648486228647416579408111278172661424530989568878497382351506732118724656898649705314430546382170378345152535710660218264794289813098010638109051021615160277950890606482593101287556256058099317035817024423573880948790576226844385580236946255485419934493761310062121347588639206312594020495676592669949701005642459617694490168775689094521793873687860290375722168232406210646893703102698698969471766326234696657502264136703890548733430420369591005018238429324222041292751122540471323384773991090706207923813449463575823782030727715605994779399260639349670251644399223406082875186451945052344264246298959293104115974254537328649521437134737909844327649842396617787931231927906052649420050803236047687717179564266736252229556280049656084886151174001806271089179792052350469143495353772237244653609795304494470758763064511220019128232680402220963085487439346636159782479862229972025514250588533325717323446585922610863373483601924895038057331175290390803098244743202486807655854576242873896323408882922529356920517811718014890632668090193495535703697176755527570456570381896696387473219738982792290959074649726157773437090234712036067317610243267266622427552685471977438354571815815873036399807442111446553065574374208734261884981278473983985980865775019192406868405240575153117127496856501149166829614586490744118695352351368779019521202848693072429579419659399578140359868905958752452114735352967012564191928027242745896502233904074135475397578096818901401832015518446057576644691450670095156270861519008442535918123231880788119031848592706011931274236212420568243390490026923486217881122735895098982257525479466965005900088172109050191907479249289226275071962555802649162806738196628932476817278165943794663288439095284056840718021062845292498820384099601018467421114851150504700083408169187264447828905878229277896173243710843590331776018335458055809800566392340015874209060435009711015238049205767253472043247120008604747701785217988435299587482061401124428688827065851728979100034107450223702919436523520815765975022173491865347718913009641315105243207210731266201665007729069729407597046559054636582668587916884528913120349345084641693098561471729379926076224656847032809892769228871482835308428758896199966665253698146314146946583994677647987985665732201081369977228386131377315959059986014253225464309702650816020236061541623947223602405262111890284820896757228174721300869750169285599984973441808128638753209777515220443232132491306006996062824223953003152671085884710295226401949410769900681573345431838184810761385591284306433729023355630143268903489503782990334891528816732165293114375273445215108367760420677653662739395240870869239044007259142512491539076591563723500951120026841667226826637809820024153983022970976652534248241953270231230210993710364739844006584967307779268044362725848269590617878323088998965195633116346596147562137937929648333261249964764276412557337200780049990698523283774385080421872170810392461939387666488098425829306851441437493784863138609882439211438019443178576102671598908476945534595354335942647408878028270507726431602653378290073631200649901102679492508816085160111691131853998894495497999265629446662208560234777007722719537292592142710224018538182473417372870010826537338993532107065611505799397645633658153859971741896456470365754958466798037288753472148455880368670513480595727565733104100452087862409964649677956502102842825074870613824808760678235893441566261583799950486842241972323290941524166351312156394831025568079626268657985558602060789478947397921669695629165804867610054449874688705759159653681162297197012547497787059923222850934835010832119244571710082885410730841056150346784273222402449798165413892999004569543166797657899731598638795408093532654953181816545878096926211016784806061489749056732298160045445483073768143051066873831436086053784523042438087250141166566020520555080448494528006232222168614355837242920760751284505088202559492179746386792716548165771164914570942850145602206642338254882287384319259475033390085429354781509536190447160193050827925340855792866500795677553830478163347854390729368186699008905986760205363615793570477265887899589711363347798806258332674956634115458312291686664776682741937919537384647060663859574378425520625861813092190403501391499277935318619934577212694085161212920935015453903396129306115526401631172543472561690270616544586985835815953841990969088881971138543042077800822699899565724721256957605308777042065066403601475125604666763834171764269707400266774200137769316131327357944618835844531678885529407693672558453920605773516478923892086978155961439235786010693636995637141680488173027818837300785198829548363924215146369552982622444690677548476342909903710931865953241788974841604489985446637667843889575657798511617263172465470675828659136815013466072250476677829500660973477125959714239464468838039227406419286892985833000497528108571218336360969991743693753199580155756234358125234095449171155839460672404475472690743582515952471167759725861041781183831125631477722824686310722393083350279514867141899648407403784003835247224745295432209900205933892710335906539461948237015212664076957315571873098066535725142304045915825803952305904016556802417180620354809723162663555178784827578595059511704546125200945229035958909839045366970408583070287033967443901869540439167317233148566813503711150114519909572929002458595038775153873503791260599340171496235590118549848352156185633831565910708766553675370778146388334538270928603724773757589778858601448917750112977552652071630897412932198957054559984896923216216075902224588635739551819777215467608924178469148926888739440239213134327846831922724501197843131976775724656530372359683558825243847978098829841585511358166046760515226985385372914061159837253378194943361019636200802707006081631436516761522016052955690494446898993766063303977882012742276071529040974060650923493350709223512039201490273428932117853835951654386861832994158596637336338191572127480658562780636168275328193042121441043388852061794636230959101064454334845110473836409992140992079952283202770658013269061636491470605688122994267739853828510020466630803346086668755843598536176532833386975701011039187169114821082619709028630902081537592545716137271504685039880548046828349059980380175204772233529360197582081238089924121150257007923923820494348824883476928603078837539828804065244701383676633754156855477768117232207655384442418586704696098505342900298792237829841075664639980018799613894015654540835121504546992297880669338096721119396562391450571943792934270353567707116139518155998024431035831885032053408947172449322755512112068982880346093672647015211062509650166060001577528696241150711305468975633787662524978321657065583650941644714286679962458069831604760125697683521381965504172853820293808239951339491094902980338763951497282842634907105125750892447805505420104723187751781788532403298743226841759202551687357710793131448331830672063585826584845803847675729114502060043180590645165177548443465261800592250371640504824799187061570845383755939260454071649335359719770014378466718062481678113594654555351057531912534750110935335647963664838857882598050812873726394897241297072233913574177854594845501432104199290288017138056741099288968851768147725559452716646525658412176380893746864005063458868540995931765621339008592267105558450322028167568545908662748155074561482170246174592269924863384033639530087298781960046307874824715344756888696494100955307333128215830429034751340212523325964371139943744979428396667796597886398889708221391248758222407522167013829615082048213548302414822998881017485753269673870868400306122962095856990915979207105433066606434327337494354046257714926198429594427239251211020686053243122682757734442628380953547261846383356017175478312945619509731267952648127170249265433162166845783633610826124353085845056126204056268893752252900545551216244154722880617133808826344364025261836067164140050492129873098694372317068014378387531850826148827435727480464087832255479766836173199056742530083900386126247428317370068351226330817534743217422256807500919375112055026061147674039153968730818497248518745051013248745966558725883062357732536484899360613382224417678480350851757311639438121596893730689853455082975056164798167383777885418489672116568924360646205546873182735479837741683326682190648965952247907050415538843841551953744218300705044976899044924811824314465870701692155961676521860208855398442330575410665794605623789937742318195596184402309126924303445672691808884825022042546805524600638391775774222278627660475888088435024314738947836345689931681251441041056117607145964771687568073409760328128302777933144723994515593326919479576642301098210707671872129085677911489969245429077833317482785045348638883299826715979918061701305512557761041571521051204293701138055514129192192829659646845218665226774245568809846848219245618237239364125802233274898708465532897096942667822167920292402632049362931180650298459009863850654597276120435331051514647354197665820800217013195123444176172531805386698858096509010041408184918177266168909859240282524541043844318942301175763048139618523747602109180027595825628821182867661360938393340901285052977141780842826088296912016766448344922826019370964374845244873527047804360095635337337806717290488453907530725862300453852780562307013715139824229788083927686879133176478647711966070417603447244471480419311830896396839875953553898684378143356330848240295703947236498874841609015130696736869360432399425716670762707133928082347254690760739746058001666200854072590587084349953107886313885249135093949852448668516802643818150990538256239383455081785598204382684248788244994865756160289707836268067770677999076196853082574603020759421334057099360240537721842614518821079073879050285171315800095551862880190099488311644893784625014095561082771566501612782052204592544017987002803283351118843476097307063987443576770424503452514633561371853216261173452503358956042093053228656115164690915872229449390377394555833504137851814994596776519529432576674654364502222835232526625297199422270738151386343506394190578931416363193587063487813205731135586589291259656133865164730713381183206019047271567535445730464341952496971085042197818762308553725710323933685404241692631107996977414397665915817569340431969163384548448044637462729590965577064390711899839721295830516616570476773443127997036652571106935440305662471681441209594426473033329042378812401491514235275751065188827960271522099634936519578541340916662582105732768870556884383492384072200563838630829616732036596650390356654816730173994499397747931522592989945648930059432145554025164143968363849868060950974381949291977950172997675882598984794989933557081762049344305709833631753546684651026494831603246278489381190497106172953765140262672287732091828424393123916710487961511776355648446044106261888997468627473212349295929245522866169904656100683083237478860793449745148583912212340267816053004842785708179926979679237718680902996535361964024232585507997701087452134263318022417633555191288642657862010140732575636959344734856063563030038135867881424557996862425227610952060760311894167273094821480316932816391933540764884923666741061877152668185104299040112362396954008311293172059308918562203507882482769844260295729784908758058388092825927246511796841938333778836086067104444547595519539013116273744597388772033962195180830984975078125686057646963279758865248261789009138770116297698563834890583979261125704158942514472574506327417573697598754374128606755079190317253482131886239605897259991200197061842024705918237068503191866813462533177895659704055104975988197984666389871631573249850960563097459030659603859373658837822720969495641052637515636810867810304889202301956284228297345321684414812908819738122930594111129972682185851820372958508122342130121736249454455656558824878320324192463082389095884845336181930222557994450335137869708857640243025194172661430241789294190198210681294012865307047741057018101835028753296957873946349605406119958205264675123086410149881648652071612636056030264492017151563267310870814453234212076539032560115606459899236975962801429329512971260557969905918704634049286335437851653980627683538783656304222309962300837017531987267957389427494467570671957402068485982752156783553470239095299354582997740105878236708633638789128037870829680529483541230264495362016788943898012528499744706379574915727954274860542149857936948247321170480287785290607576673251315072162947358227863841493351121923035921021384922493078388488179425295931052168587431757582289252415195542155903992930365916329329822701954045872981082454939301353606455670576979216954767375624574694557814293494512623956704623577225007914378947189600476582713034051543274391833865158164458451651562802438848513797510898240434355918667083091376282842514374758624064039146876616675489112411736538764542364563756858887383735677388208813190591463040621179473154262435626344288898536186585040862163479172582501862310158106821856243244465351569402477162923749914572991505080880797693879336258741862521174973311359820262669040765678676296401631650420076609935613255639074758447848752327374710806321651149650368511314258924504355179828625094268623220306427689649081430727781501946847063536480824200140988035676161010612836548897274442820669787616985576055398993422647140396106205544545130039337679637190435830358586273086683824181772593194119824839799004161218457467798827232823876869308374438103700294713974676887051264889760254177246925610684381955144293255387725319901247435151907907386234308186391409353875064988798473395000062372402816020244289629233140267125549154464867444600396555218313949508725193941636945901757625348368599888728380425222456939529916500603716910677592117833082281788813396077098558962596645116207683650722845101779094351426853305950288325899155415176895028682718204175443392522886004245380386090319238951247863635752905304054129291374951079833506886892043921723418680220629366523134505373938962559596177757175283597719555498344575803639282900787604697015593504640044563135852218356755406251278748631581290446117555446394813888437461269628752472129090696808163988793765884270950040946101080931165523727966385670803146047307492299849069226694276476128563083685301950581972307509453161288400888566292579562823388761592000902847468125423613936835588210076152209800085329557112400948134248822388673710995386770098256800697139713968017657791702362498422834978729975261237327347885768183038994441110664296308946530862453021558074641995029373085441485306398160240727648807836518199222533261374769411274963086987727802097937579370359797703949315726088505858902017217246389799946771489961710747905552311962359173809368911028756600763257446936526829375695035430021630865393756847321510790648248377346384813286644975105716673297225582773480036471643820660694245465990404263432777430237945912351885322593240407327107172624775550478745000607576682792040298063594528748997229962455151021806624161487043660945446432016999694770226108654321427550232948784562672652511376345857900423798247261592264210684947592690210034586504689075057671996757109323339767150689500826301256359950475997250767109395837376228464800284822192669139211650181610695800896888206385303064713402383452081081295155140905299221043537725480143040541163951474480121129289434161720432675611746845467125661259622723453263588458701478292538273477992251857127395267339825967319390257982321492638990813848771141566255484737915411024518383868608477456289806037230283878299465235067110321001758337733619569541339431237915316988573778202222768000268847628002365682804719747543234294346112803497948940177536080461118265676324971316413673339767965636202518096612245228757367942724438783484167575857868684417198811718542508509482486554135223120442857403731404469529463980048507442606323706534384350781812152856003281706879924549538278776756920942583284248111985514151729728338463305783830273777380855976069614322150782900634407946172709948175689494282992433550627170075575943188805985203561603608582119426183467479064107918408876533042193033769136517246209804580775696198255431471840705531983985040873200215043126658917009403959905954991511621101649663635700469963733534352441215025941317776210261802682395976976398544483544256389028180005670421991830739828599886822823121001731162258856332483173740315670196994150104902736117850302152077793178489621519252767130425885600002091717701962367354240468827813768989211218872009153963207449702274416197390850779374708507709313173300212176730781694866567754157060023048088949705209048357640910750484315750317957772385416136485753048752873932222290973292940265498194566542810892767526382615824958536997077448983513109725790041564640025945366102978544993022321782062929671363834023108251952204561383230080315492304786983285709339439435400474612969908908239621706395465063974654352881327665880898505202598378879032566614088868274443132173056233167227332818923480480847703086834019976859903100686120036022215185232999935738297576929861858045575414104440798305438987182349766317394366444204253307463276301399207068656230800177763511743756072296455963098050922764237425702829647333448552972408054188324692730247685909885979001209974374000762827135123521378587996943360528054691507032960852885598168266989839231698279192533294063670862854973901777550057594973455089733653883797093880783133454729465713120050393888922193155816531606859490521293897769237619990040073761474227191546010185944112212536687784716055010974390694385475987456458628799869515123574857154982258047432907176367148367275573735323475592703403347776338721519300454562338811087662031930655275056272218232808304959334334322339121486811088552362911073723826849819242875598150017991490991695864583661194476609626359903140758186664342350968656766917239081373074330670570851639557687284257459340251506921622116484999315608437880196842997347364967968079173098541034373274516751506351129189207059205117258057175904646934510676841367339814275129361193589044887868171369267757281655742176566296875878558687600745936775198174872318700702752705368364409720387970984455135581414281628937310154166560637665570306312493159903122762494062645154856200575619485236200953094552551444850550449342530569565245024326916747688440109887543243533223979443834330782292836727300707781460138350518542462760731111405739740770074149411151528329192037779945002782216875291512925018274589924529611821893617289023461968272950038703415513857096534283018321201397706095350051557484435853911035198247558939160863845591921867254535412178510467226195401422938047903576477624051093427161325886262153096638466806468809169074731059259059353191199209347528908650021902090048753870124963578611320401534676113952866165692413020541561707095891610342652178038550237314779531379448244011206746146669650960341094435701082019444917300654083416171812156462030701282436408917552918513978658940527045706793823654165529860471611944742549051171784143559133989949906654683243680854861974417569588910691556900679013599240419338771729648302666923099235982530485717466398828213939302808917478315145422153812870717523726954040533822529303146179318159626285143904066658910713445482539282133040855120109884461980260918399824577613215996887374491860222350948598270157941935829127383100360802299701673852907402181434346966508134540810294600129594217086704277393540990486117723556740623616786739299656334216152672970096440267698521224585691498226915164898195062854798652622710657619221646424563681156033740024762358745662584547317007084387173970827733968731992345199029155966491199860952813938890113372827615635590271536288199392850485632595458419932620051506442304404079755746361692924970332350852630694730206377227944608391712792233075514765497444405752955221613426372175697374875759167798039857071609151195513251033011472117829133724219932063613606941871529680611287799871875771520111915034466296356885685876789208606785519335279259062352320412703380060004230759846843018293320378605564038533931578943487466173592253970783879352285771815688490139111906121530305417949579284192622469723336590393126727018251185520944551278693079396096667862526526418272454185511540494703689832428815479871335042594790165008950532776428337877430060682239232363213581389929980156462764484068287086172457402575805609274103105681124529983544393561990002674330225638085681031388012324011280882057062863028821492584394265973930113684116104385149119818688242130437948019760620201750920459446732913231618101020868618098394086103210738349539565143078535028436780694598974018575686493065317825603314021116846509555814972401712376399811698317122388446112705950417119061256673512714999439611687960680777979535347946970791725044448961079572397453094522293124857391033357592557252858766970304454650560948746948277109534739741157341904597917073860359607946969364178244818494647348568647996725323110618264238087934516703406633661387649024454240646021327593229043452045857909884059578254685838779390892403411045470620100047874481994557224572936806588660273621584003154211803649550005139727278331845669149544359781403137351316626694891062134004157367982114831722641471226028597136839056939813845244477458673903267703357362956070790422607587140239344878753790505989392156611380839098645280743898902370765062302030311607593852643169037408379233194984408214216449475349077874487105494222729672954433830479473441754709730860425135151291754043565492166698010109391161056569761640697617344552549782121203221372551945891198717179417807627141446032866761112833603878264471189722633282354880455819707559183619576085458023673414230314546757800560119511502844802697318108471705463825212088117356450412631508739203457051550843038990249978980400977358706891030875167012022251564558235307215629686671897023079873323308903251871633017973127518478521110557428907962947423483188589153794768593765646261436141074670672540839440017998384607041780711598985379874130648489163583535684116761603198770737713680585067019443294949378019307705949615238358200620692560820464221244893429718330375539098688403608656748963184193874718162481064169481931600371114554782431185134647261220562789926018917989857049268741992547019663669330192890271506483911728113193310311320845771037415462334399881332684898796441701429633807867347711121786688234188399550029603625204581278312240595903744630476795461439423380734912047264166831789989806863214944374013954651794122022839620900205950938512694349707611471420494077480330552320478605482404538274855142359983247750259156732226220912811984972851117350221086864236507420399022895029304238338783170850936467518718768346640064813960667734443081050653503925537530600718801572279600125042422562890054042828589235343375230994251769190913647760520179556563361105764642248779456867586835611692709479993366783944361873471678389087530092837534187976976749001441515595037038776938287227535964724520849648210685573097786999141281349486156587307167372935652831678907813236737121168293845597814955704715584700111499397295925859070474399552387544619891773594142132067541287606003059004395571437088859722670068630284932816552507190781080201741044349986718590328591846623799972044022714468603755769212880170500806285474775865591968798208404930337960029459992443734361831652151754363256641172933679432947978272597144800726696283181935077806105599654825377461104904233787874587687130669036721213325358558606004575301628392397764974798886683396605080164940750683631086398205892906873608473763653787539202558005696607420202359586292965362168460594607022951042817986209268146611605018983147307077265988222702475421258800498719937782004392168758250502412446192171561259974583344591587030378710639565117896972514481698028572746259907456737538886093548478518976454807893148452502939959932978402762203021220815077877124977421332021164216837404584538722169532395105790040290777969078484025244724621944152902024021775591497721192373710559362980378644424508115401966993968711479420658081287482633707799144004063036444350070567005617224102396655793546048967593364316101929526386192890795472355314951587195068694449607482551094281059572144234235288666166629593386780913893761508915783111885719920873751025695881424788755811650673642240071324951778165550342342141428674481067087420821783136862009303100058681227614638125506433564031231853013912199697030317561471950771006030115755173014077600467231045379876864725493106660869677732907285018959953012488257201412704104700412981193263529443180980015878013496885613983352354534839051205534947502842320713190678711400786119838044459209706027594738988222708226751223868214669789022565418650519194456116587443927361030022446057801932661129411700585154790032870238685717167250295353476832289119124515047177656621684025908671225019937485008529665818232027323214785019000182610907513374983107134414783498839629603689819313563167344211612455584126049050134622316692559728486992109377003958812803401401346558927811818335862153512396953170100047230122046242894035708283925593677699884736679742549225038706904281543720748129805812062958237831188982558157224589555416714501111273501674825110438312170823405047471879131004099962984186481894580242984063987793871180446431839352917627839363719863910583787097982575413276789892987997678826546300490287725312120937197725311690591898548989822910361129597818965017556753256342485170563076273382861043841482546377740558990078942745780109876701399086895425388203557585481839297381771630786127017102280608469563610502537149856885658690228257804999533694931222348305817195375522598091829088794664045311211924462870237798184722585729007345187161977848884594172218307128992636872328412043091266649797344370932727547084903049244017618670502781314561540211387828821337049516027643192808928731963055010690170705942586655988638484537916886821870672449162584024347130651898424381343920021817626168312529057860486619118599957852381411647041237224160996387378213905597380752334592189189519437283405327208990715384347779991396045070566997476732810531005394120290819069954852264978397325617417860404871349261292625362469614376814006887862489986997518789064942154986474041105477498343155474933517347385472604992757814805293049091223910853196077537715229009732511101340892369447386040956937803073892951395058704155274981965286764250656261109880337538930687066974768370165353535404479488934781420959846015711352532686398729182608674563008372747990879427420455325264536999117639544789459252034153699946366732271629188850790013191853772524932875433325288709938009438724484710945040685710518035570249171794794195028359948020687239899152756504280066482781036359219432885204538296537392901522569005169460129991466772303843407786718278983346052085079134793349367572179992446051896390365288912966897333479419958757511041132162770227038337998995000458675019574987598435906849205175913518750605900205725250942799390436083471311377639185514780623026641951346955649045803267764491032497119916555358855105808354433463760852226267578893324259688349613162792916757825785591202940400796212732924009667797532822689722235617535737872988897252561572524454361672167179947506954555569695799451453549069954120667941559647419322367106280101600214822325348563991011574580097470140976615703104000636851625032323772455311194965775901453823532912589796993138781835150474206126515596737898105123990827059559488705634191233367014733686293103337566801706805595684363018638551269817626914328557525751602246317559319786340778820307633330532147333731319248044811479636740311273183839126634564151080193877717629533925391211838473650281174898024649297352602095154248335620768151466568515191957972478330330283869502361601249687366460012717697942238566594965734658369796316176991989413259076614719144303958229983688124644431947478288215480204468597555922844171521289485821052868251622948387941870968940546446259383505012278526091642214881142499941504594298246548792637077177135693748189007464568160500063091552141553397147642574089854831887900245451924212088745860641408698762243668410490283446528845626880375834835645549255541670009851752959011729140772497566831802129553965915508927451751740628506879233565686681322797414720807619380399272289061253850394314524516276863459506340752492829611193351322283675844362346169111107202201375255904171962918329485826302149066797250034195276201670147603070102074282139667248227077062659059096181086482004225582909798898520302472068848868644586589731978614560691492545308409057096016503917822417226485489942402138113510459471872524041874077678009234822435401103469261260654480311122904747407198389135876993653260415663417901201891492315132361289430681997084832887207413923305831273909799224313925530768748001757224515767314043712202571805857880664694304452265700781498088541557138109536343188142768114830753537868304320375256319579201866375640655817444328705069712668703646320501942704455189731330284364377304766986379429987884171510196111088374156132983960769306311100279935150926802126440643409240907271828623794984188244331711092118032958869124861167526704655149182983515351166745982683276500329891093557329460690042830799190250209543357158548172721458449946935992263423645409105965103802614499870993595138414183815160790270954895728445043076263443453821566927303344464108589240082017943005738167871788707921277999498457587086449871720625052836621743715688697371554596686428360599653706108546736773035675053278756702838598964789843909482474951611840434880497562634632786296290640168665677621483944168548477725592348687903305230140934808283629995163913089577464639075423693269115420285203095968618565929469246315433703358358976968410272272093937115180333247695334596863364183399716990459043854847581668268712142522497051760117456098506998128487286960008766626702443748192583136478288826625820174630059823864305668442976003631621348830252066490263734034139675012129770289413570049168038342977110463245631931779635147004670265698882683339915347571899315644344334406497075905717948763809893855368123188678385611561508699457090621246258224506000842850505714031966157871589485762524323525012084756425385929876861937090544796438702623378980664768006826919261255101566325224549248780909266392014634313902307372685879737904778139896589242438928757354412428671142448769110575152295072588055169805023435322129109685345522915393389196921627072430041775897497821175280826300183372288711988853936668877149653232978010556710619161706992793947627334812198797873663529486688973722420507374925233032048021640035674055704562687191832439278635016207721914552438922579375527235630251306904490248432292115650068243385091217558351158958749462684803273038473844673443357593607376451131777522093462772231533955269673293567219403468488549552051634106372894910197240599633717896045650231877679475663492143215670623821514609120279667139665198312676470190238732484766782388260246292906447682491716585098185754453692654193675499063251329383180178483572174201673423590538145656974730622228332909988163669647341721142309019497064955149679064592585863800948329869230257755206566069340303756694827695521464592583923275846911578785747568508995803395842076231825421680074791291969248409065174887064102287176619956154691609911524921306257974321308322822190814065912157455429008507000556018463347031438887721671567644526916614267514057845496954958967123094432343874342333578255206272812353009992760545147784448430902693107366486189096643601288322882586884274776263318581069176897676904073258450753662656015517785005133699259569934657286395888398484656551153260783207560113623141716596540517655591518488956427979151276038639404598770961050172104574502043188604094567360725434244569591432509869359021703099070609573205113119712422235730265347298862188158315321890611486861259915193694467305771934547017501856298632603629180364540057137904262896371027079258234718245528125665539121530799029558991058498812256915169659341948002481424616322686668433490385025735840263739302765215314877183343530895745809202115424723660760460212144330196570927906677099225589096574279200499732483094837889120531595843921585408997055753211093361434885566005004515357659139009115314609272357870414873813899830813285572908263332988570200186959465137523867718793914042962695837377312739419545698252405279803700898862668801376548044983218037032143699679611865136299694875736579569402853979862919259481084634385128438857186368278157611988671156802034428834922888673433338483907410475840775243461582349225964461904070668665397803573115091775357846094546546675743988405798089074135983335015780443265017800335690710633738323393206281457903532897257911804693915878081995608712480340154409839215619977692054425492385655253239181165937834158052680005784146367294527793571215574276626849087698297189915983958704447041022856091585984952480909938653223264866852718667249053077705175598718346980343478795140697477179187884043943759750603048993115166377270659100152826166409351089381674335694654262415339690395786815432802621348609014038341364793120039757954072661352341242703833809260404057890700472101606721915954118199523239437700299696276202687645973441763439793451195157534458559550706760137885127647920484349449673168876501607832545865171181486910905557893121297805176419189509252761757429050772751077076227392735036219234837509298218250637607683184797967914074084718635917911073612868279876224842494413205815439169404762469095487640923426420234483190240219061430764950366113016103089659669070236137311822684810122116071114426109398562321007288554762142934679235569503563449320891963037098409617820251427318580364654882789608366090657959151142400214202783059170599960723959392352697433069683202676700096863964524555729867091949421409089486020811913412947989182571711829995020586409734681306164838835673516394233448166938443407105808672520470103533403316146665462881760833136655684603928455945792384105632988304632568352555796294571597713237147969538823909866168247709428009774538993886831433279556755727104859873411163488957977841501943162662913505771164751177055741395055457069508102082436059410630195006662511761893737699083344794695500702979916364024281391871000936759245718963993166221124811748238771921886392518559765504644673042774918992932007037173412779654344274587528250382273305862093753428291426279665887439814740068329423793718328034359570691114121409593002371190420484422143715378396923425177542501919972648211870363848925520803459931381394268629921120580011070401516775097085373689620998971968517615610882887319524085543184397082836307920890042195543140183818221769524665553291011362172318986802123375615029459671076818710951418866450522893647883870945447070542270020593454753037765389925298172056805807140653378454007923606402743148421603038640075148341006157691327082626847635465189389140380516015758160943390933278178336397053652068734817280320002849062095696168988280207912657618962362310850593809529692278249944092856849857588535488174248244059076336916787723730276054464305620205547169966899209338280833824153542140164562922319305272591208607473290995336097343078323020402702286335064608023226461347987357284534232411787388112142410856365230986947997432624624579384032491276327332427018912894929424305255674096436307272481242213378678452944178560636623364813410927475684134216784182537807481461778363086812244063411928324500032390041156368671206061207509116411316479609586425303080363514085452474784257213970083288999968140530915182090676405742215282543292101041893544691243887878507986683225881265626198951475524492688717999783688205303998549039221514492262823724850044190217055925425441091800896653619389948990620357881034439510981186435389963535106289833126028018567714600543827093510187653688476570802973100445126729174457271702851928744703873398112836661091547556271206593416749860364868798173348935161914130375354817898434500555650314736770896111537080190489602677816738927966368443003303490779304708500208802190028107198499250014046719301850213100512725956370678397078993101651275625425136386839130464290847011839714401521783096268182974889694689951587938675394493884263671583700209515078376713852509736536172361604360748224099912950811460993636817515938611788938808248399239882332574878889823786673893874588437297005846404368562954131567519120567774071073348544912889205669762455145849628184310635613234618629867225130737969772332782991254711314947410219249693987614388734556683790523914403615952629405082680950684227768268677058726886838808681420610161087616653288212068584716244020905266749979091196166640546711828168561901112284910408699610240998031595886123303865035454923805526391622670087623275420578538284996971720623395461263145334301517880597515979642047412804527675892112984499387177091628331016818628525026272682752862192147197710569816614051710191356748576864151468494555388218779907071479870577709108051996321306182698473518474536469946076086092360325533483269519054588480368464654323168950149238498967416122593475648375446538128655445280242134362689218948554553538874031684272266389275280393996061214935375934447914543287686062428486218876829859571208932689238539050717729900519945647276706655386886447755294849119314951878427600262162818740632310274842868045528171048502256509378979575069380882949378866750052821103088547509791746416183496545742221173651554641006703950011697902610581139824904714494196341228242946573807799865345591282553252111508492347352937282501198804443876490964627793213382175999004259651834019322391475197853546921186306845830884979307626655467868884785241442060213939960203408016382427094767339373723850488022854730857770641501066837256586157679633857790445125956794800187858934561204855413831378231848816397596831813732875738308000693965014975750544428951267179058596327992310429981790142573514954270511655990227510487509779858911725305494445501594820656017491176338896318455692364455016748806491859799888383206184057132422874110250891789270011505385440395154871845928061783112704200229629454344124101573076942355795365649463886031368375996154298931347830422446702801974491922298368448702273470010806247682311389650993139167767226736694304178562595121166630101376515237936081445953752908418072504453080511520757912882460949948361601244341660800709161063784990266819541451016531449999485571761627293104742723388978919512272314561693385350916250794293710374539133951977480227713195258366211047308098034857501427497726313938280375489903916315120960057446050293395617283616743094465814025135281383593241816109048344387867391220488146276291554395269943169855640014941505779143340447165497312541425512939511315217946093011216441151143694136641748710351874709356188442690059982086168462280968535038679961871687883102325238068446414693268735248795722954683088404001364670827399547410711257511121466127039792904070450508514538177161916304515417197612082082378185039228837984338412542040962143830320459258568029246658599136272225646098093782141742166247730180081072812754970446146586887412258609044867148403738754683675773254053447661730368625842967413403036922699740560428305071679992733818869338663335095766208168213760952669305301551796376393723015003335548505945935053987913297524713830900414749072544990779554763774903162328869628234288763879636452571135072064973266941999174519619044364353377778640371623928478893526476995235987060516395975681622750599137742250976366643501222818218160596464262238628244184051741300423118574357428037789651759024147943496518965335167876619275964101088477833713651837294776923383507965346668927021411862239824402647285985881224894950177084748993583950244186762915567533924743171254572553475145022992426016512377851097760362841377713814682962710242253052800553933059570025262263210422015781542612198701684582130781560355079517123484196522335394144402934605156437826212266427588654382998849192410852214806440075968928917764481533788062857922707376038584196952590092510736757010775185366957211531186826145700599620708150628725748632716545019772893084868101807078061316031889445939952113700012406072798111327729444616245872505068675082716986121363889039471703479235447419051745429539816035886994324078719421909670605372899673266734623530423883703804128476207113482615567966652538453553261555638600098378570668441064356234032013187953771680880809747158940634542439533327355262056899858788487731422253655489175055047143247339661607612084334910737702430237573442675032223605598182618521194138535136958550494477420951027171027953056528011456280590670960286502439148334221076749719207969705638821828039184312673765568424005019247204246376022444713354224664185863189029664474950685436653966812146076672179720416432969105558381584413201972100451515669244747580507425265542022747778043091123607475830647599244646576248216019746081571323515520853828696293265448271771798477598331298061825642424973427391720321387490896722103933308996571294086074046092381113901414487533131718995317182082840629625713384805352640789160025239150826307680589709461463744074999875567205082369579859646302555164419615400041742394721425543145322100964091929382355674442229038269638345479572326611813875969494662671407807528820754932391842415192692894018398605098835091626230210531636360605901070085094306452306191571356195225455284358587282290188979231922888067556631939048181941442420613855878506110845349692341544629576742937781580052779076616443694459786459298349003079346529319671800026189241224544976733204077892111157795860643565065053652214562206419883219026825468804944682789966972290693887827398072731488397093522673552109753599994515495851665833663076920314600525685223588582449994287537628629822190176775812924828722769957324615809728421567366387217350484968507342129443464435291528515073845381164981995322766245275541079781757402114384654637438325614332422289324873279420563015786553689037974065464615871978194230104355616174671743123460315568184602725421467571026074959122939250770965800589732623587969742426997626454361900778870573351853805582389668718374075585433847976949495204493540811228288208650654668704290371053909624257480228460980665663842806875258078450921507638594790615607144023490902494112288821133779440975921792567174347700324857960030174970065011300558985909284725580849371576111252887674555652587253492026564490860679164933429466803845028722122992632365942841553389578275936172729865044239080646799029473929023391113317302979176154762483684699128340573569288770543995478800220347428272776951320625051419525247975883076554361414264613860247438162744452711563782727913696642240657899974410874800607456348605970678203294778838040022286720028660783860747864907274662108234651858193776050869973974980874228206764995713578847948900447471280048766315797403865854542882562155227582688115152455348998436160872360168745752633721678029905354715599124338240780411827923756781743168800213959797064298722326099008077254066747613049767859058323097949390411603208913341900701248236364177198977177867111068639935646992608460787920448910732821057378362517787977558688804478539790359146796526923645886748360525239100856726713544661256098483653677176785638959325700063070372164246846780936764259998235664627133263888668136378185236976884149221494313609742398613040407146262817051831169967805780047724329021667485848791645608153340905335451736213798228331398330628956647112089103562776669311062712779662670067058370799343589066317650228024475206876499707598575327703359012457556649400236526131478199974272818342420850989639503884876893349426777290534904154506378795599816970130366038761150376592344944120032937190599800595801260281622306655654570845697608571063426681707136059901769032124368438161536217958299023571677871872672728123906286224057348975233843992355094152123961118097593045362670799747090374355351377404346404102132918136443877372315373136708774499568163572293454525685787427170402257143828413184258279014413010930320283882125907068640660992858884062688383634282550169192492121832300359003860495381351171332550254420337524473240398678514021956102029821180860605088019542577443106276711651714345099898746757737932352132451592225603080233201438131184066391973913621629438628376613309015991701616788365295285753857733411197135331030000129149687050952850309534890657151422802831420498352971394514378821581376222423671837878093163316507798863967640372059337399757945357604704874198944118678510670992256699136517138120275490734105123604289492121033248426302152189548897443110954994694332622599668817499288935779063616606881858324089996140732448625990514269556895082669562074621778296232928078422718573451885949468863632028900484994804731828603175409701787815143286532066370166305727935765466212833490960902657357005337105799404000627508780960095571668124700854172635662557070909365588389052950477108201324785418011401849822058161261456560392530487943279496441427452864928426000369022492918362089251084513179896026957357646645304420164087299816140069496696314810048446305665340240885331853726121462313751221401819494614106836089485939197676186280192823365048293930989228811936990477326352931439505532703403459837627510342475277517800626266235606141632766786937433675402867795335434241001735004175667501593404828319199096672957891473368743842689570680150710843310688241792531021511204626980319145894528381423404642257731172867377212281969217315689032718946449008231171634879234328677512993549085442494374767718912321070847502144078580099951363060459149371448410442613259654053931366795669907655388506167188208210810075389410250038645342976943738406176372488258973403628805308396548498905935931603621175914047899095226639896917718374395730348907533740830830776791819741732833402574578609938379787046642443407710994137414154495233693064858002854756754862205989408015013559945711167221943143087699703124551351956077268252362827824381551393367611072721132939335645993769456805993858603929178909135575841478926776233895089343694836317984686663086504059985514997090365788364234153926134359638568881571011480386495463089771955685058653874091246563166668780704239135803732255746406775780597215827346721477002322990690178042811197065940267802918453490036235573057178774481356027471979975413078161463821690774036553036253403791475696254394857852896852667754107631652046512858044733863585860760748786548249879037638622873973455069429982569291400757589078112232034471820555982880187884566443904298693155561429445232411805398224193623391151050338697726281148129839895830004676595898804909689413671719389485931740200722153126572710526339531439491852499949687841125832866645354910385993078368434381576451662369530111098585981548119900452529558201906973001845761788627969203456448516927501281842464358811348393132797331295256651328755505909239240570724996152079123378164921037291240704161808784010585062579487248425139411741467468736203387674682642512289657436279173625326326604094455466259749133147250083091912919224951188140563522475566286652490528636653939786119177877847185262601196349883150622771773367107807264278152272495855506378822447632523483527084387713133019074348096456753323598278827123924924581200097100593011581462064433439501603048836790613655900112460380612106524427515429077531484585623875560237041873740030826235662926064960395662146043652080950947969130111452979775448430851481218742816470155044247409993996294642281429078242910772518572799664492880339866880288391521870174779554438377449280081821482347759437369547084030926822804147333088627342480103037037921169817831164611985173762863288173674164711332342019828725051059850833411788058638773790117605307834701296015783111834336081528128453728391460580060364894122982109679776558042220371343048209423550643294419360048349032900194402832706435377484063343661683004402652220879760842305455034615400804872562945638754695850170400266010360849596200145606383603423846259822100996778591981667765296295310304477009247174828567599611617722160659784397343120254845178748102736680047118012808262121981176633230357690406633822655045116905210919307570197545277392105822023482933651748441705226169998338097067683311464986150066443666758042285030916374457812120325550919701310440782024389854396715261659818365368848847074803567490335779835344816548109425851369811784440224821361682782306954582874253199215959683426615861247681645569761890313568583288842189491795259770505798085481987913188258475653026396376285028989967039937722692522142971732992716675511798693925637245222866007015688988968043418588240425016293234474560587494326383275653010900406414502449236575302043063896407989982600251909348189704240082355863906213955482949237347105736245247582073079477150449631600724960927172044445022681234052536733520579091552483045313314494639167107138049546719483529184473341039065203205574903840573138689123375236578294210212802806966479624364801486205291864742539450114016795506372545867981571634972730571005412570856754946547598391908813672800729372854474051974827431734817004594960799602462054253550551674859262507413926344693653168679782475402917935332453709450732480002893162401627003989873721442348513564644113343791298500495648460822252629936254524569143941056766033593040190666170639662460649109473166513350119320910197984923515384217264806386402446663358081844453599542342421734617568439740557998266189739091978819086152085807628878679164147793250218548617240562549875093246970142297108868529963774895289173429782544365873574280894471999982476562380484679557223621262948263348171036813037326872434475130142141901072422428763934979740449679831590313748390284828316912612743402488929873893655966847436754368064293591446507911417978717345649918975058367091396762765365958520676875223212620508870738201904536928841315057533452623824490271789802090822335992287672116876394551356120888930935917626920835077574797114229579406009730624978314774134216288270469794554624864576286740759061836692234323730950981131632248093734081972734601364900161166928436486902603723551261342854950657479804955583837440519063447904580555501210645640893632655647629731649367677468981074927435088540388024798271012248242496693565808638842276648900920229835085925746118526983273975012116299556829761966316977610723613671548425090805497170318997837447484424360837946049754637278634368741343811823353043245884779416302477211867868208215626466812896246930716168113006428257217293549237641969134653753980428090049914888704330794871880042749489617762479335447185156001944195477682451318772821618358427880425531228646200922156152435178150015592717956587504712534546968835153064746069924152382353551977166509501042481210767102898961298713265408422827863824956106864014044906339265749871434969571825776690234011221417943691723371711333108913965462294229876092477649427974264279078825629470756812378315763097089076777542866358393351228922971304721467601100811877158095331261002480454524532797627088089543591739489257392459865776876695218574995566456037757632727915792693191580283707339148174593734507788791877830617979132037105188574017019628535710960367560061220778839037476057111773384660721603001729762558756714309455119756207817630817582573686355751968371778315340155143477131246142901006830590149619924144128209374139815347964209005271584557681131691538975859034113150898422796399756489911472662924233560308737088750275291372147258403870726826322248334589626422299317312207891677595347331189662165914201187513334570833399788972116646292888527085313014100582496356926862513821878857336176392041810945394338070770500515725971821746723985335459882967941576126392137481348663569502127814461894005309854858514130881580872064016774995174926804488478778139806804072693071299883869170603614982396283449974647019015503835679829947420910094234310576005902954966212664654719815211081628178910834183752001618415797031530191408349638613015126213146061304443747640187782666770175086527987706331932548840971841957347552115378978822748383329328454397576531437127189443306422375664131906877321318902171436545344154247992101555427952982201557259821872208176234419583082889699846795178682328656225284140999476507279814130704329038009696765184350857192790795798136311523935958329195001378188196208817221200408442955956013095518280755308630417285991347720982625947791785899794930324835226526418848487641395140255433244878640480547773259806383554576252562204065120346948774433637023708963355880168653217506317606710749469263235056851997442266329851013282378134282706659223013646207598465865591593826039191308391721725402451727547773667480842453913503918500813150621927818043930617276597770783806738725259259195386788442226220362678064359113257788653626114963436420946229163868826183868466363691696982040390518154876264876352329501371796225822266270541479596002232064381022885932345776530375737959174963364624088652130379783335779791558865816141627340279441867544009968118949092804396520698496710361326785815351908320552539325160528227939486730681625115917596839030264126225768268527207119648387790998776639110298151969552052462466694417539145882124624033300399206166073488843039220286178424500214143941372365630804032507483495765378939102983952086492477949280908008833977384352442976105994324701122267644806504778604518186922263373082360380325851043997610785380309574738068803968336732504575573807061543009596012248743834108654830500875019859417313111917957871299746342601104133687294387665850773654218966446830656534160084588116747615373496506825380665895518819726494326644483826500770534328242352014675821224348656311682215078167395422876248430609404428857639089007971863902352604864227414526260286526791787385010399211140319771848590315193181606402102173458497322569515657445332274735552742722111306540380270016735703283876948797167132803938983814060666007635165838154440393282828169478532254329455383870212935581520430785594977688012732579524920400202408965599934456370161979454963608291551009240842925702135387485501402377678390482480218936754364725640448564658811675410757963404830362884310487141291330175169302816259517313812453123075895682669075294908884700047455141870154734295196716736187980856953774303099956936272544752219131722186553587204033711608558765016951452909600655777041623168965613625939786457028050597411021059978346039612818342801167528734789189456287888114045463637856749029511053722674948534024009877415168157927585859784428063625674319380594352176178746873335146495406752114220159715606026119804196070092621953565932478543191737366439154582149701510876955443000358242131901217104954508850634754909703507138390064664820951790325126000860614455533088795270434026633622358547298347507964305348863638411044536592410215742887524075116610837606832302630681001973029276589195856552835638944786038159723949094983598983935124151751506999316763566213954513697936325464623172406126010953657388064349158811988575803192346046073070229804422034782226986293771583868167326291250318207668369645487496026338259419606316437244934720259697850892695736891873925696198236606787302664317008968680181906631045923562121860276140816313620845563516016083865233316794108011820696874068707050664886442024002268400603880377705555539977147050314183012949194430254285126751986291477767777339090744573992707345445213579742732432887891799526881726188109753897178929282206322304279300789162231627702150561603466592409382949344349775470787025096279939922885913832679451666109486159887472603218537863802281705107845038749934387658052953392340241371002128013728978602693186829091891277707366708791609442286346124843515581031625897897663977793442293634746447562469936350972833194634715533224648018818897781830526637081755178491761488172969715942337551544302569710826952209382599762710936201592914441843846302285657205501437578960405947302556281265858397176601056772764954599615565797517341294739143018942777503403291570052407145717633383566091732602386664182022891262342396044361049156544850547820254098547861267166811172735880241388806622740476798686866181897330715012423965547109432513876362969779322999836376353001625193308114110994496128662832756145960729477697455351862032429995108773827973463999036852520237550839514390060119154342406484326753088456692456403952435929191732795150535652130756724874681473409349343111242879853573143433677050912834896019300226392188011449259360899564164155783077472217637876774210307831869814838957277375923835323778306567469293389007332400934904552514336120919703765528715712532046768006673439339822914221731542341111465861827271571309354577815801227545071038345539899123526347251346266663751822065325820825971787767916151691291448331819513544927833611873123931114408098027066529131805713564705896654091157655348445640283772173545631748684771348073205577359756776951605992628464956370266788522184545990051027177842957189912292819172501824131723094543557527805071252006941713029478769218448902447929726303531172810892830503026826914213464450758335463550095703438517425902872627149579559681610584254866542516944814048098484783817450073404633278708670484119745912394512652516018314092232225310708147364474465505054391745293784539830970125422311587075973824319257153158568061229927347225969542628584325098268435093117873689061321329699709626038673340700814460955236838751233570621807722451029410965061886604569609870315550754249984496155592780999402725023740919558655726368958717716809047302524332532764529359337277254440821531337600512123166858315023348006440833838745231333773659784193315878141911887023964607700971900659252453170081092841341302088642500107954704031595687929444283800559378700451793280789556632305460741944216217844098625470233922157447837741935894426809545770534641887857905585112474683291184113806584191006168854829792230183007870299453946365313162758023338168103943294310994378258042319136256609930545301947854546861840743803307143707377306609371169579412738002528644914649379849453948616574713934326414120868276857656660324504371110313482930572148282307564086356828584452177997195624690317603330249367236688411357712780197649584794571953972654852427461556757747302510397472667083088509157826627213801646846469402634722235290093510913372751987269561033272523867939678388648611963161786683712814957725745774068214587667415183780827679928213346379051293449283824223954470012699196370271516477458954174890095021058144611340217972141242265200616498498516157056031622133389669594495791326637456737791402021926041761411657237624435053286850935753114050914224280412210312406602925300491508232791388710666400211328297678338761200772092461697692831880390338946425653207819130583495520450401481996030803190572718806228441559889434881036258117394450554940119736316867116647252136417819226420363303259352990398475831076683443731287474017376361628155292552671922827328353043266729328549597578467043613704910345317351950524111607640175173614731940219293334796685603606228439654712964203059884177680994333027943671677330675646125539334461774330998298266210218616921467092964044579051261399011697363375135648718132752284483792524494338871477246814868566147187403367067635561635105716710896827915323463178364129112338752603175295733507893996223446412891905621758062750915371921061362617070821999543945128437012595678662448306257394754213444880008305229051978160139963137977982370025637305715547804201077516128913575331371108033454405683865279264176227428595327324466558509158160889871764217517872685676245907738702568959417643729780472883594039519440874164013732986105840948157310287397908042854657302523897221537494640752583198774993269076969845609435549622507980484870293125485743378384359034318709491865770209938394558809761588766581636361138125719366129748640633114625439255909792922313519106471903947386695617590628684314886386361001097210848548379185181292966587483416706216106841562921966590089650492808697240759866900191978908154009501711840138813004487415927961008043255961378850226298815676966688880477612210395868024397686831088863992840992099593326982058642855315842690834016227883084165287609237231416005866886709668669714646369999717487334995326129545782853640309980330001746889658098596199967306897663513036523525660822324296528662844396793392468514983996359836296702270248878535118691991253996694182584471153981837599704454849650165511530339049998556018728244548168737426545050700847596926287794729058421292715809119932917868882385044516048686727764119028675861345813059619866385698207078875643891688124065857964772891949479709321845225967826357142888187204322916441083362178456486471554960931331910427500305000639110570068726768055854967179778772952791034914541752363807716286807304723968976155895453391710094030512058854044314955925910444310232538711560011606497989022498208342460877502435249276154101621954627177171271799846545752976891191593275521255889788871699377232753292213199146448700129015094323887114420853790251416033676240888364736448994774535691079670033116183199453134753129822080122588527713128833859405373922660025014656495875752761921436659945627610519730765197890421819187411364330306431625683364518610931571988992604644999866239199229363874105193067811296809213404006709737035613426895293877029099258463855767448179440109063894987769697821117538650607879714846958717240790057433826469432317463711195383283921953675289497069050478704457544706596798118847298223339390549128454803420086471099963883308489544930978939856654989265838932309373512205346543315021587802304506308295997350036764435622606330161649896763849532632156782740171490442684470528536989891799436532064794830483589852459288061506011745418238432550756471173550999486575933525408433795322603109115950484970384615635914488994800530958073890052223144311030069960541589731088676783330097674122779589822131577362168834657890676314408018180312146960018572287844314904816574291017292435111275047263948787735053023128832036236218601065583803272798813562566835145339133708923675252645800813957481987625766152662737181176450491282815261674172671348443435311972655560724729405840089955201683493737788013030792666395320283954072562202198445544615578114850769238112646344947576452845229108540487946939097030039665660530961181681215993501047788867626207922427161805549674417422730625771077450914792723251347173935197714497180446168251824247511491993567275654352859690179868651261549558890986284007458935059451455370757588695399874327224306635175536649255955620427450106249164444516603296127410645729301371680287966487758228892966919963199100089677557997838897104037719654937497005437087572875767648964948083434709674999393022124994632771120967739722979687482088020011125233548828615329892706575134573471783205996241879353250120534803889058317441376661941489107917322415922689257134730739317426119093704960356874104419367489978624077606609426153165835433115296541590098719715637595561519071274531728476107492405673176539205390048498727079762719281272885914846391704413417763299648388575396191944076412935841754394713574818771732255506664192908354586079295301947349351976666372254425216776182531664818371621303463743703192767020474818108670541227869617612719350223952433505293417695731016368573056496202034975144029173589187403725822933718960987272625179598580471506983393584832122167978065061741592436634113388854597441952923750005771932455964611492248862705817723784321432419076229904202870905029621917572508971620682873704985335098948516546103309325608933985311082672134908882278868087801816067488297071999754410173843151768193389705768617674974597378782060055386805692029231730964700463927805109443066188885584500209460360496817473214980265809757024883183672031585121740061168211518264423751390801190130325082740780217700510231819574439493294556375528646102054617654372769271937664452899534460711849137977500041089990657037564469835521772652103697225787336618124051274122966469361299552906154604583781633781681236451088152020209114057162726230408780079102213536382416614113320912721420145916878109051714052751569129353705453820056746775675825539938754191042897898717600121032439614437492506116713134118603228834211144533964979991265725794527740424238233166404174096197841558621002344663381468534859028288843294190475003991190384414066857467561077924246314663110354175937963802717943887848609994846081239183304116140476256586502246213068641370750733930031866281934227318540969890960647801740093867712163208289092425855427606429395729110127659730237651774449404737554698101571952233105351279491688726835304108668599312343227660650905070958400607783602691947546429647826862397494988932521038358043795393967641224276024465057171054382783675127213960959881051927243472846887494303760909452023555331297712471250325387185185196495313143731846578085931597254627739932275574436565376764753194553885145705128406242723109530784194161606545791272440071531048310364245979565517690790794072056631262523722180734952474198655353497604870808814282811957058514936780254530079578535276162889195425080303696205285971518698067086969506124689061492845215016862458365545291122023805592273178426006326830786080172451674610177220752675683160060240058541543496189244035316669383701612663404834184028475945950863397627313308482859286682708377265329032128091965074605722988709333468095723636413306813785319621398457242574246594973992950940590112299284716057784333681361412691700359311364253716487715569436663011023178502664790507557858114384074358855262365114596142532244136795306175964986954779599933209154380645172467113594470818963558019118695257961300217754294559115047066806396285077251151999137763545163716738387930623014634629178822390364763457877083590371220698402241945467760263038195712982260346383315639303480545043713616661573135408389721598412948627832996714740179315874878510174825787604770325034721202769694618925640825633808535011041611718513719065554704183795497595032021319000445328320019849971966374016316272257223065727761349787410965272586356778072054487502408842159320677231269567597453605363672497315269887160494721952205246008528282666486912784114046554906721080190467765595782690152586208887803669674757767487919700989308805426435957661144354472486252389029951428888461435722424024438628094796543335966238156481540977968876920604123520810114632507216023590882220784973853822355598733646622567871110027362432669308031857398314031786646237474682765401163726752345702620516184238937701128505404192043806552904479652952648608912954573973509806426489954063158648886107990543381819531047501624155505717060087566568453368306517674749526468345674737266939057631312220198759510045163337067108807557108585816746934644920130815191014164445433260647517425104187294446955306644111100576811940628493672686276846904264669327628167080595718620913580969499272411439618826052421070579499580530413784587060832457903985997396625313932240608554004761812930786370904686075616220067564382482418132057795894509715902618457297815372386365778486502301585498482257808612972628545553423622164957275247922197326523920286769955951616906966155946243278195298992010199410414715950074504137129032170355975275693567056497607053364673678350826668623721561449219874933662257169560421203317080084431858337029351040651317163064774165292348552576498178655087105374262008582366770115782693726309891653943963481980718666624606596287531833997302880924253632330768620097849135824070809147483075093564064779580408402467152759562201482834184807990949031096755866129152152233656797445493942771488702774380352482039258836087513869813570146282044637270748423809474411238790592394796153860879605451581108593708172200187136878743261935532664973587579761472788425845752570134890935787758544753891416557028352146594072687346660835516199016701808918503179740568019174636353085921512511895528391686947209495952789761803629910088573757252483332539280194751343410661546434167331185117804064905254685674173264971578073046283795389171434053448550509027492585031504296185538880738280060898490635460104911971787681089389212685084075486011613425493733202879928245746215066200215177738722956617368013683139495059902619905425736593432542032199409434890023734823853615772571292261852009493647017576709089471408518216992239496633300264412912914914141876926120792349759154915831955083093095059310303912937824061418379031026826729683008519827853685229270325061478269169892210287931791316088883804858181954811836994826027572926383650651322370967666381548533529318979202981523725817858432977357527389305669638642866032112085142194962994272214950193251541868292874653364705515837532809723582262650134746785943649598141448468209529419456981076396099058746827004461156610405438169018673604149240382431799715161381827130245269151533810248988213555530958380464204547099642559997596760520427822180596455616741708680358247339732086276967242911014849061952997228556403335484430226005811671798748688710605553797837903331704740317936070322512546483631417328344249360013001374616632337255468126493472752594629579108378028438916097832412853639311851646680677604700206935904016993216888010679972790248266257941296734836159788411250748272999590202379842659873804996505386489963300121172191983164385768713044613287698979354766716917511418887428100239977135088736165758889042356020802256316624092266311138879262721637884702881333852216469009403936583106688000003425220153743752614499553879300665787259262713723738087913540059185397299128370538817724352962303277542848776774295374965449256117537644267918566059655643001794263065130496807197032359679171959159491719456756940200468871450193405425596710088720250858502790426553693515690173824891611378743578421138445930625551314240562960115275224404773434880755222445861470899231852911566616213754011007589710448571276063703813267747949827252407051027000564555332692808743667123646912784045822675883450863865893616927623088961645945012379038837241948635968750313741858892153946550492894136085987914952072964687970428758203301732127823449543670189134665786786941114649391898739747201541559554682700503014032833437374712895497038294804969477545030914006994489703669154010521314949562531748341102989628071652088439226743520089850183350100186139869196829428845172394071834298447611124140683405787566338341215144060236648965722840749176199351059501878449295311010574173642912698123087945681150643067360726032413400902274533060433465865239089717637526201396587948250720071839961653476152101298005872338944966843443277688554070791021066409254236258270252608102576626250560547798394177159360578820812439960738052728036520634590504347633523477449824960331860082019189480710459820828311289248581052819437179815126341375950212039981330905510803338871667740703342491643413105088102903686585044204126750253354201042682068063785985396155004767163119541619788955628367787827013971128958449383732707697531337915082221896440327215757173457687036498095618453181858633245134482073686827008089953748063916123253978946767403988261951185998500017444469956552404323111599636497886411467035011012601598744909373317563601386040919196981856806528569778385307254330510475133998556985854661473534865411403282747192930055993747447691232054793559155863441180619412827841502683229516070791181823637730096130847169315863427377968309370757659450346806856074907908454994280808482848604007698451274856558339903471962174867597122130661112116956991682316439595085891964360793388458579675156900205162799450298539187567488692475490243352766656156152778842542480668375904458177390477297763509091714725274267282012004657956787934276273123796228289220779177162466841909780834203937493120008065265107316391549103803840233188651078526237317134528427418509974012287032885931153354659635620234080870017183975143771491803901267809976689261742914468170782594980910340499371391163399476468880305628535682576117864694511382306980120896737402051371530479086996018414648991898292153429552858595650545720666366515697274433748197132373289979350750646136750479733185766587508576556962194037950870111592851151477904848320354570680101595842128604739223906659146127656716866854972729535792357678623028744821905479654594587892641293635409748235806283485959639780315504852216087639858999228950662598773786878369634240365228096530357021543238377556431267266800165732726815479903034719013140192578103070340556710703583850134677230203512058122499063309284257372329872220081882318109052502542842925648041556846954250769289783757032881390287331993621152631040246198627467467246125411042025335321453561346716764574227478528773691810582265276098340236890086179054226827674858767895626430822563056132025610795309089097784424015112336081176741146656189513149843535494588024601230366641418898269020176125078613725847030277296888036538638015811681024600985029654718865576368028720381010275951157782638988727316335337421177315544796385811962461355861810452110439876492984086381755566261935542270118901132899088759875253388857929629726286854015660692461973632972809741754318874982745623339021898412797730229010381703259767769784028034755892265037609487618121130217243954987151390201830451084184132431241411625790336523000617981981431407542534507470764100384704598246670463621159486619499246580432318901015438504908110891081326390172966100816700694202910639986786762451548567314351504016857151173433681541805278285097940354084489573079562315276732476824972417541119071086600302548369146228052884257768281775009877214904519254075057700394791387908764440795703184175761525596526174467940949404193857361891254065143862247055484395597609923293677403795739542159784784783053408945744652326669238832942675371657047756894741236908700670575353319773887726773491885363144682606064479478555597309953303008554242736736161434725538377683324400131090722811060734946239322255681465716748969078331668710920532912658215840936733331318660364948639514247862460638794552527782779749899056352895850932259780801348013510529247309248606436535626353259166753495937157480843879301618651065375983835248427420254981910779025748461202868898446327811511570265124096861547972658945297372021786057623027002190521862346195685169901555289318688474935588309841335046234452338032734287258079629526421324950490899419011842031841974277265367202606558165641345729369362295270142143792257416613800887186274605915571040812386567551262216616205092807128945761806181803698896690148139414402798461021239220572009738715529324463187483183461324501118884894441382370465506333950075071425745652651715850746083841386927054807945450734463894168502947156443413935753440965604594281322379183133554488970455566852613414091527557217355913504429446151551942953125910192931656243435818461111053504936744764097596928970158076113792577661819003805846275977397887219955855118968536813816420645652721502254069192115973260513453817330395543424469791384914499017769128613909640808958734950537025305299147645992835721051609947421424014567879846405877684525829610703197257742389263686229297728219264712532196243520580159835167520699100355932840391826413624690858875484349917246633814021964192617822823654475460741130188456430152926868949237366436878129650921797990725514850402140030888705854010017605164848316668352612996859426762039878608147399386238957677688968760633269753296838259942421642000574281353557476990086956583533981430729810744716737246370807029830618972842311696677843400979839924143694992249407446186567566954079803472567327643244380374941854910758002296479696407358998311793740132608345166985089037301521143347427319137810237626937345510816940422373572412139415490858924603325024892543277138469079334027340153873229718856760594175120350344268554265183114187320719419026897801130690720386298707898706248660188032886449698403177947227147908586778571180884860534693004094902539274379729651379397233252128352874483589473103289306524594380570309671979164000678987075705166519189116267120514666623578387107589358240833106323124989753488838240535031941118614056906640291053702139899919422636306781064319551549711017301788642044198299153069783467592244277473517710642230939085899591818026902668533398925601327063793422091405639346300065524885271256149419803042337618118067657741828035354831086872044240170105016403183556879432502341218715233941618787947283448077353435390266821035465489907093225128180267109727860323515807197176493018173733742647201687348933387695240375232233738234656332790381142892054214391889336048348120701624570452473479545256030674819894175628017128806128870212884700120007158269905933130086185162227956631119683427614333705896303013848986178346004897463223724749647842930949526204818540041863615719758627382080018439073067765509732820683840415239114586921574285904542068125409948894484178644269987542513074972329444714157318832856202265830640061090132884917595255749734113239635325321257805428016304606960832871589785316021848368765540249170174664753283801672183380000582455140825851564916467366719988414624025568975039439956140985592764035393918192102802706015561716044249133606062072884021054358259507591290112903581883469003730611954731584617618070401985795462017021936760533627402494995096395793812777648750244697150081884057453659865272740335409968452276575321963665221525770541749523603851818317807299220367910697529766140548377741076900774103189880896529395581960292044075569099034686124107371064562153521204591028745036860439446125271297409016173665382125077082153710966165294826848667504710109975271061846492605559767637756912273722938483842166294069672488909437815963717890838313205602935545173917221821175166458065000601333916267094048688452156633246867073336150316832070427240937039886545916590434498246704921041141360935661458219349594233164618565307594107051916132475140428269555931739548954355335731644355648649124772456828249973961850437297208529570909937167462780512739558256996565142534879263609210536193860706723111956558857825476859259709524267518347214421600380754721561669839034800422754318919839073064614071476955376432653138159489869286276494047002696893670737968270670200596743601820301423076324097580766068051063373668983126204702776817313179928826331109480165134835058705656517844432363537620165141222287895954090739824800155008298173393995187046233381473581380257423811357185728891243022158186572806452043605794656634994458692111770802329557914410380268110670786063716597520008008691238018789364779917209803539881698314044621420168586321336387184341404426639240601474075106947848500357259993753813819553481936086901907242848047565681295755686020570737007681512532293996015721438893823761045089330479464341360211999415106141703689935086336569614884218459056764305993974049238722312117625214862492589941136813202522536349056306127032836312518219633416071464938212683018489776857697095815361610121298122591090104433152519830894124373211757031401377260130763990982632181816225394897948250068856011094144307766472739941886565397122235810877580328709762002421804570535521814733585333640429751451196523615431898787109901703055324730144617951997278965811213731959701839219560318706150953922695650047766408057803814431465860693702936616520668434223751756847684085251189859052706865709426136957263365216592492087290343584800654831858168241540445540493436520316449167278426215611717277365130712754200170830597019562107616169283882711762625589310988303615142764068243540648556273423979983146144102924120571792055645929484839088921497527835494338735715354197699202198978802357567032963079467333369161287371856432533960230885907378360318350700266860368343490377100438954710744179291706947981513004313283316288844014266442063583722248794926886166388581656687509891494018590630004569284119853384673819397885707115824974503483091948525831306775080190022606851775728271798202237713113397282582034574736521748996841334835713895185850901265266085772931043299023533635452412862389329476892610846978829854838701220788084730836191362248625545255882798428015860594350163786616479892936344545047526487457514607303810253748575458214573833136892750255980715252694844541690073067684083871842165174749931950269797848200139697516997489054293043867589341581239321137890590621903603354246651005160148106977824091999384498919926396165535428635985836792693565002340689846356260791310114571093211509184727502856855393984499054602945168086300105157693432537033003950520806880880890840363597613681391485459464152488649087729291445663137075592481375039240034249502508926650958879755621844038064629492834739750540522266470984656482664356567840282355457446192175911583193407170820024105935200200549199296979652170898861854328769944379768243981768153572308717259717907718644848030693089093579047793431255845711636437311871692517609847302626636681122308831316808770254908151018424111388883555671876324346408566294041112587871422062107627733319225972544601724502715361003786371375266393605783661949176271508307318382463372603802740634801866013892736026083872724275695734250381530693861067087177054130555086408838204336464088103390123632402352236199076174465324631403423069880609066378410956536735274453973114337209632385843945795963114417433307724887409977289149849919259386448978083534892246297377253858789854756143619275510007439382536730091250164846860078740623460939853828995572150133492650118433265846990117665697869890784567131297486601846800320590519071306127502304256074782689050285569464681398689362222753440958207862927564470049765661552445351374615428085955490842876015892097188135239754974906350235145138861994929174957110153100113818411505134267090528345413381057370996518144049217802212423517936722724465471279642618522335520638907308348358206584032825761286547999923207514819118049816321596066145170831813298334108103196443787220513041830554245999083632516228162126072483698177626627725066702289724075867290311467394661309691722309814576675730021952730095992298274072942428399502354055217411926249513142661243174803175372359934435977826796076885506406647089164049249641500256718391575723302819024539829581412004135580187069259566017041882643511362251828162936136779526399178008095230671198634688642974991619483041780165730446316114789335064700098301431032269738807830733870345372097876067494550309236341790453123627771743580439970357225248021956521428056929295532917844180916938487729239648823979111971719797085988239902448167410246378397532261764343844958035106648848326769017962937657335742871464521357270450512153330595578568249511644081164537137822875544295912497352748125381389592873559598352625386082582442748972083081446856569027456642366500625002866076203733413918907888365406361637967247351556215936440820315496252990512517334089587732071415323113175650121197297469502417513416879997092902175776389314543960537897270916718159611107841774263059371552274303139984374224804477366393372577246469204620217605745170633167788526789718337396211246672674817004363985058046469100962110868284250553986043428357269578406333745902087037411964812417738364342271628082037018515400848952236485282796098540662728607352411269838285823205890046865861335134788747303199265122877910252101057342007966197757713510665049922687499232240913900887106871182938500286097563047584199942491169551670303499167156845935069250204283382905787780499091747060658277305657183395864983614804113443984138933672503399826146209533760617465748009197772391210662474794286527142902949975169601506677112511254941999132268106309599969439341373449141220192896125099958212771426416938898765350200679595053746945081059615877924099857861824342116098120817111779563064499263909153924006702996851012462337049686792099771894042392646425423677409372721469261132635757392555234295904882491580204259828743860444285737546210760765946446993613898835342658122653445039199331985602481604197242663699096682734206921051180029865017108463738378056541378500833076891244681527885537211009442567741997094214775732400086492023301981156357888298860594742411959457814246070176305987352703100265252993553247859796709836858099302169596808088255619210866947770756801566738677481335985583858292128745817513155186345142533493061477335575408138404575212619122257031681297218049958767625821450742162443064010086891150633914148401766429345219195545406075927663502155444200431494794411647059455160490885925241428430670241547680843954765742557621560743846711874216575232725093262901409816397195148369011175652214699274165410370062001654979712087277044735197272051317150222177421547090947631778906884940681915314081423081697229035242369437169823665363431426688066149989660785404709446525366222588275036265521924703776058276001499844536948784123394229768525402884659220369964991529055301136547355571736931935334370421281824846210544434762720300899128374752186127881702046851420411795110786214585776686154762645159054224466838069315509163952563788718793176839965158122443771525866923550941278930049700701014768792231949857858448938006407565013525641678084393910415825715317842312884322659376995430040127748754860724441542940277351353966506037775040007146428563756189019259211588105492888185146277673637731587656068383422089017259969811363274667724105367516524616354630465799854344345798034955109954605973038667105103147510275753691530988095110759461355237251857158709362756110858448782983870051990413473837713584989114363738840408820234844400640696829288772607852682396368956472185392902056482081463212523013765786173366092173232590894267494274079251270282877190697584520035647743773995602986567616500352903110045796522908692211060025712959234148860213000041180665047097797998979121086012873579726544133963017264207845385904885893490783385838265831954574008983241753013651924082077692031010866104054649526554888106345884034344033072695229075118167652121555407882747798176765852335868101148160176879765672173810208571895015742333418871923658428780172278824537116440379259811444456998664741271333003623036272274287788708622235919522781621326193450261757296390011365841523033013397999092686412596498204166612478590656928048111742508615277840962362615647377133550280927909956790590782314768267858264601873911387155487539049216574126075864351967587554407576754037941748009727623349971412883141779402744921953802715520768093334519137293273149045974371675548828524289569170355907529682863661804698781489682330641933299058891011122827652256485652170711085009186238427889574192568750658382791787266731652652206040207761994687537868862117194705388830399947333198056192910346375230238376641475344772119395468213972067003919251616206145423115184378320805095527005592947454161145955695066942252366057377814767388802017786909678104464964135786922427649846824145293551523495360899037123533596946798982024133074522216649889942495940042519706092456432001429794314577297893956030246787290684566487105419688867893997121498600381559869575090122874861322119203172551597447938038380725055662965248162336578793618584962282665996054095645198380029722322988920518006658365447542013396988524716664299532665588399302967806992963276420854201096837807818783137838394132827268118126832078920425480980318636430748367005795335323315723895689376253410743577615771222734572332083507336277442355504885135844984527744255726982970430357875553637637498162068056946730698061101611253922675979911243732344537585206374658595198438346809224111611196980692986736032773731323240867594040172755261543126792676805303646488462734502768968274418077721554285401529362096235006794019258639693173212018593515887003862756133285201317148959714681957752071673582314470539377229371275186135476265884364212649002108449626815620711301637902320103153190428125961221867452318525248901255647184849139788784595624066003624463719498911072258410241476744438469754347706516381422528113970825964459238648316825668432427480143319532022105759302734721082003236637091529949562214910140317122420132766250543374327511903378715817779077835569320814997150164494396105912774159248004559571893635798043243670636407870415249068780666876471870279148876120021081842989652154934929973545341103460836446899208903387934589037767977993513228777303550215091939448209090648806931612113258127465337071121936547075968002658149242058033668232285707930588835890712326359453408373454703214232747673410659008825710367843178053335669138657259960888597053149370598645925985551572190039897917870821396206607924137758746832917158928547578213186990507104604252056120930262438657461345236119335596994545640052400305271310385760692832088064241177643222803040543732353393598258662513516605587684887119223664532453962716732472363976973129933513948359684806602051368050289316209315943659636302021292159576527875933726572552826029263259187664030047082378974144755855300590729888100344288141879136888001447180636595204377507291130377800577075692946835239945117565156369532274319961041704881786767158518883405217570827656710432788496116522643602285650963298599357281678430398644976818521874973906759468558098357798900636172617681998062842316094637498327843554551895808001314744549179176946123735034148560746319309001542876309644205734704648826828172716497195241318023756126646681894768887816116261159180064844766783207888901957584092004700566101414299493452727945953084526933619337150288764170378863879642637347779043853036227837872551584703711359965826660737220226348575119398249951708242380434957230597935581099326322034435020139572023190187390559718297654215086389394233833027517531731102013584138438372805539756724194617876376186369560664349745875337173101250832106365984646146090959531849813779512711890837829396547932477283847864494683368107165817397202946356746279460731864054683584315780374122947344225812789088680425945573512985419043851769377534575641928443879504193063687786559551784424281227032001192741194359794536917763567358761483594945852198640615153350494106627823334252737988948673075075395670057865791251840816850920984279697439303831087375323990829263359224985299323024511427017212239436321192618445822389249043466182632196923902697998654907945392915289529365096651623813620925337684286028033910266356771268044467486995935099058533420472002525121301010453711118647900720928606348812110290777643313609098677598820200784248807879118347187057613767787033240291155592838539541233995889988006634389515794500512344534654557896533081355297891522374033686105519805396072981169906271894820497022689455154340895120690068189169425891310577073548286677949563705016870611626861076310274370384113822619291992811249088203291691556248227512834105016143826295279358935629697946054324638273306545578591711262678179358802677147716179909671728753179658328383102895642674576067068359251498986725654583212508647456379320081525561214907885432946148774537785106494010983146458443753777528238283503910391166233626833000146203416573678851732986672182834576680504207401382701321895702143399234464723456905552048768797338605252950881350744362132250260275045347880644038697975954695903699067373055719400611585366155333906170302123704237259086426044726474352656576192895152807295980796027895025243996613161800076329532986492692694314562997773269233662711027278311463029754206752654809957818468401782551638434702761153915447076764947306428577881225235762943526663507924197303219791551201950712531161426363729977151723786026798487500354143317903795236632490408744622646356748292989904288912620224412997427419592046170214273237056656682525022152007117960585639620852555724091220981296636210823374431689601707039763966588858063454570923602576564149565570521554067291154701319373808504799088948708313000406122904239912567645166899988715236425595155447948639096960248228779975206160263403796353171652583706770852272336718332435703601322247307109309722008780332198985625219542594297991277158616161393281101250616005176132211936649515299033975720065639270030964407086564172380540477546999207526627620512100848813998098663593273850443411090285773982146918738297910610736985411668495466691135206009741312327891942708119803345948338567267213987141178554374973518030479368265287701714319071996442714194706899145920922250202157972452411314771971540437481658280251005937993987546487567084779240764472455343509185198629316814031204598070385138908847515045280540135998958453012337868104855575558135360910924186390767649751649274086496226799530204149296048466119821873503682791735411545134974008389450618587144452251558328915619352920453384203264777758342160823064688031541761632993380992078726784275220703651221780450808541730708317196316683157629741155652877805962813106125814152950493099359174657794594756359537185418872581296387244959548499141931485832039235708107920259349790692819199889017928258083052366934591968236303010774686059631721014967647617465154196951385712549722710275699470853108553591279393300179793674770723680351136106141140347018561470680983697672782996650459548228034322710518025407975761934314611871711641828401827449155907072209897036701463293012956394024885412421014052602544550265509470715474713250705796019677051641764464398296239485628384125553819052719128451305435930753565398292271789340978198660531843787459783440363194754417798851953955456632055496673017919462415144689670104836952653604153977355450873265768496654928537560072150147839047643850783632122448044792274776803396958368049833269547598171112104248505021635173559827977152584615829407047951170210923784652495419223877210752210376349450051462888662003567951134089313644831412587333250915990327766809292246381774319383835605305346492509745161146802712228524390674424008375989109082219043593910312135425440495987968560141602250355359127058404177579618153410992005339777377477294842513783959246906217108271965166843504528424118204913180251862018044187136055248187453826378604484520838597428193877625735388396002555202375123594274981846375636224576000630261123438862487204747086067186673217509064265644306719986882701403268982597350419298749136324291075204024278244073643834236273259044351616658201675809596716045709710567182688477035227235333259803472376802421487427820099997119387512549123514293574137029098306908412122630668118636792405904284193730521251819781081333688467181278011475668310084179973536325598044144071477941711313648791979946057848140414361692954907622834047494257014496099454284427469752531987923254843057571367735830962897058777409765372506127514835743956449267207499079413521549832083680093043560519850475076855638521064917980193341846005527344938399999253651313490797739612445631994019998019666120407375918954698258386384850944647634391408548866861615806641863517254525677535789759727426071817742754494154507430767850840504848567112358308394075929699239071694335757287488453785574740574870250066994362673915188052541464225245445559725905384405095914094705371007209853310215069527382179237921690151219102555591854934203724020562859875569414248403848937519671694980519858874832735526079292998773750976120351680648033053763317146541233162018175877971572598955997210557563612512563199749321294408080178612746532000981613686846563446936195190613153179123725536249178522274222543332278683171215205759353203364244372099896755905634011110209002935609734354597512994427999193919378465857688834147699130451750284874490416921251476050889794944765577567803896150302994006268945710945327018344315093590826625278406513278703925809130070041269825059488754507716656856568265336220579750088661533663700404708984775482592150337105604584739653653510986852882187026829910436866395224440410111598354109117484622165735426416933354435233815869518345229519899100897181551520270879963887380993418219509676271992479895812294386324232526697004402650301673555147564757211248185515155291824658530352197916996474783934127282757421532546974518672198530592907179382907984121342704836546812248148622396949729945947262302923932991806442253470047866185888021980578153940096083387590825991162899829090837053194513542688862171384415368147481684193478390865771999498290680372076403453997785907077870097022391059018159585666855411753078250752143141664835823247249783798261926775452468462893644347080200183624162966171007459428520512095002535517254585050122081883649432951392948489589446515468769297790372243440723274433999532234581343381337673907475124027635755048515913546807005974432078151547067598056351115011753455770435501534954968024504862750571316741744020883497192934500174611295789977055633306401829681719549089455374661213191596791596265679188423496103161183886603817152902016124464569741894208108974585272286384887241594115884770882932354717119865857211726531435056943510449107351481696170177429324353786236898875204097350668942329594721810559617770110135531846499061811873970404159080678960809657230153050599824569437655359743881788022260631173775135042585120935540171793600182117328356758698692666890703016149819622803522482655584254923055751807169345803481920763873283464280754380020096396294176064465028788330197160465303356847310468792091932206531194736230490331618544985468751261671347338653742614268081928507345808168443875865934439363192002428635929255318345869803330222191017323137713966828238454887068780617462736956276971666028430097993971505546133950515501554090799201531777155225605723611472154937728799742792726986989717184357841039047819951069060582574462371598114324620375394761615280012778065934874134441662482636669978683465815750226670221135369085484636762684974721356936876327442692879639592044034390319819532226805380301555734199304818909765407731197985510284780615104808733886833326016250609327887858567232424373520789440902953064188096036437260776728717902617415811305504028410474892875742920605498023008411862157468423238954982399000773242942056576751447108112225943098602282686157320457114832296873952390556954231297500984625747624985411330423240638031667149065412431263745834532734939730681696973648461917774458516682665774218829674592904487389311561570863946946661909786910077999069226557046739791532668858138423216235493126375002826345724548208638101181161210741894100046845764253025384891376773460803257197709919754722641365139495724441806444795956111138876509305944391324839947244002493148376211339768280533418407127841680447855198346506344529889594520611676634383401170974809766432344028088166208265645808435390538403294293960919656671381360487216201890918404826462205986882518769046709863839543424549793743181761361621434821846284589251721670160294023822842856736481911523555450352479622456070386578359723125833594143014722174574546559393135733929955390736528845699737021760222174863952240389944781433447995077245859720758742374782475362768809082636089487200561628775997045579746597958231466268605211371894123516751178390824123270063789676336845520383884578957235908487213154178980458684455434540674444201365283099239071707007555385165490916249668171057447310362387103760257985122196861766188791512390548639616571935923104168090911292028820335283721541330717105451133355652784718717601509502026728813128344990913882654238867565466376570923543533543896860009633131734193686913357629374515477980421334918202658782782627313128759588431951652234376367339528483059709833822400803988296775928501601063891439702114749849773464788113908420092891919229381931213448775560361421306306103657774827617165227913945670585037990275179042116245403421327372741724364134454737453963263392686874755737103999571452219925355399728384693213361434871847579702246497140381550450210018653611036129544664401984021158557051002692377290432470085521972051673602902674393061196115027233349727492623911346055244547560104625687324214684083862809617125330826021674381318739569618037506153532499835014864145010586912221645521237548856155445139832459684519381389027433364261562278427047933535532118859564022193554303345455489036009350338325996051443037784146400606845825106547001691857716900238882130555743727319138086896622740987670533314828575673983321679179134117672222917533236514086821134990167318838576098297253830057635742666880068233165669394139432892367571347129956194932598653648594235732310612120964211167452782591633285447774822680464823525258884281956219707598854288747043604538390752735927999166537180065570953945275502340929389030003100873205160738627353969454396583896392225093005363529216980389156451991412731771941828191206013814752710796341625490294795376801290062148298890345583610606402369884384408901146040090216915977441470424344865745233384214209454702398384292619858664449554565776146104811175055981031625180691598875216302365458799692089162402462565163431268295362375195967653433196684899006205596933415665677287224510212266665143379940680350524495397679935786525023457270773789823815732113377750021523399149144851410661822821721632922748508051962434850117097357427401762019626008742356299993399924922947914285816073945861467430549005790470722861410515771613650586261052391064968916455402764689832415509826690239872299670534323322958322815881102078532856581656945496663698699667560565217158796855692786515704324392268185483034647663809413226807348782737634949736542101618443508725864337931733684877572636102078844531496836279289553650887075164391490316913860640944653121205189304103520304775140465454528528844885172008877681105815995450318595650490522992825721396728943031701842308492450097297111701240302194775957441432329221379434791846774415672522742898252404160850865994374423588816482573816496597725686699254627610943341437548694622050613368889875358752384237135138026888173924016669372256408790092716375506029352579319429664696760759790813492017399897101460458079653902305767027308439160778266127155172419441782624659978706159832642499570106662867674303770280612786266441103889297960867731175820101709938851708513832807365396997480059413018245784512948411868317836799500152917545705558391245894511010847437027288911632276625334624578979158384506260469531344498185328005028973024025082569581477475535457995678676349675499807879926900511034311038314150976043878444777211960675069762436535168762966780102452607658629967785194947371066174497431050800685745017779428385400515042612686559191977119340681528716677313274836693277047609945105210717792153750042097317065254455913864854189435467538305496427818527427171821727405876428054152973327892900132596766087336402141481000792335865880230022135885009616984986230817744488982888000619044652411454399856162901944402441110089221682933369437083281828639301970681927114413731800624572349496543168488238416506752961474180896402947464409004628321235440015219294355017578222999862892673891754963289546002002839254003514022555013747108929015773846177923210737161604261398442200264283288670331053905650490504333632765393400584456829705445673217671574955500523484657537621617501619203234098301525468621223760627592129844274808843379319501822863451003858317582561353313196688386676549273314710937364029013819274605526360900897630172745951732000906637364848292708468515095213037349042092112828832274080111344257555345943890022378226640722386607270286876303670627162555567502695132574174265211479722682431239761871470267930085913153876410931466743265831956924154989663125545723586541744118826529694240592494196993875218043502802392305050133356128037933516465725717198477059909015497416146730998333073266316225764350438136278662804954406768904414871779503979251948377512481699349398628409059417735953508940546298958291782746820144364759330480837497975469937164877764077838278805378259600030886095978473492650561404092239600008236231156759962164821973922886075920662763561059516303033373857934113591261958251038105284359328036754477107683873531010586963060251245294491797140339860071808702315915247861522630096385510051325184531350891400486380642357396357902975338076269447317085766396018406186169720533016916321476454367114134153322402558596257622830451930111739610307423277954744962556605052710517650631176323130471719546000259150701661364133038731741940335042709971437285407328722595087831823495261708330626867434453851404847555141948605171064654806298205870874234931419019087631111367594751424085684607608547764122667613079343877137488229042814590024589093710229255994044777275995805066447138773642610273464532233333708432482145653797849366028957508810884715747565612791760721757329948194268367620558597023477649955987876343150628648411921859666239641282101083073956652176197035389048890159076674951038294979449174042041880268907394662624398865902181282633678074810341516570493315257498055735550744857562618303141867362040696404240668683294507793090454313105911295500437760702184687721078041774937462287951642942483134397831805522117410806004442934534458271781117316200389807858326547784538701413253022352156897058138480286475438069785467133641938189298668902241855677637539456040050777454867677647288242508572542053386182680101626884291768508363399051292714631370938671199429038295299201091878464538179882832549776730776805562697932468483344054558928489923368498857877143119517606286008548419523235775447118545231979412702258657961863522985624005337942744039419289847403200411988275768106513292388469807548320554046464348938217565003004128366744235873135412425367979604515788568604733209047497790817694177004218430955805326361033470481922041778324730982415733836947331394813304502067508387530716298945647248946473783328771135578971558849088347935572658193254657785413479029711759878610454882523939196570292927669124028683178025399586251294876732863270647752206161903104655821781301661516406969872639159518465171527092370719078625744758807279309563966458115387955946212470010696051471168921067675917383008867810455771883319171094659375944360670156393393034417554867288551730662943175571361438368537797637380511495085750803720228981686460567290822946197212018549582784844780996897371194732108676780643042884387230189951292899834955430530486732708988342073778950689577901222276665696306661468507047715022322320412645539957526753266157314782092687983236553320371613745618455242337183578095148485256408035989628841506982843474262691232887320896549243366274218870694235678468829331756234757012321193077980141252169119537385771666246639477709362759028292318889520120725593322248749393984913220383471616315832984883670630253361061873977032155025683196925663178214849633801295079948298370951065140311636075495018332836301484877681507909249504195634073739315779464773943039126585116736268760179760706962556922551673745659312675263430974768260203411401318699227543287474625044937979232208657125092926339965184919189631199642827443894673068317173607608743578804687280360594216534458468246323337980745453572831231221004227674774998943430098307577438251550416676104286436998758100788576824705679415233320540280723564604199822253878261679458873482931447950809714910110642620660424958263538486644784643050543777205192784745815373386203187480723026978678090737675542968043673714001396831065654170066190105477438045519308169894194123469372746347684289105781621888708642006676226200691759541542848738475496178295443268798454859365426677294454645030290216468035587462691253639850622711659170128891277614513035906719367742778429328990148828126070471524638652628174775188800699800720039102020149209835269953966216161184177276933187569478163524295649373504849211385893054242585437321736977512825042342184289263221773026273721233752183488928134955147158807849261262183261319297506548434805984215808798752334877100480558011572057424522449344030185192376143448275326755946237234497431887361620684380462879875491242788510734354537499498739594603898716305833111769223227196717910863475875642767918613238321749368966763475571114166002538301218869011313053972366188753365945913639632834341440016480951543119495418977533070858807156720480670728266467403295696643249616770746266833168410299638989627842405865789356011971443242913027245596930892492928901617116528479329672495199663302228894826341774560180565938381223691672140112262967831754259078704676801659597204261470789358817212935954855629149259885453598829782450671866158379477587630566365032505641062698876943974451799957139495816142538857275143037817932076435621429606946313679772625380454616394255215962262031337100251716391460836508517884908255405495566356784574284768766106895011732755634005341488109081941091537695491433985220602246159785234258950394890755880183700833849372837979697833100871112867859362491637810294469101112334927667375110824658361552637449482506779407063608445876685844681625699920360898933978074370696020734174921673684674845752060192361014271332943708364880972372688632211779138870411496466107560701127794158837897298401515526193636163506426001846764083249267548308365354715670700531168049747920383651926006193725829026751489891479707987757547144066405473626317186480980160859243086551045450396431131193335633538594535902480544740768108202266984137645625252366426419911007121771419031876712031413557230976617057338237683543441158384043030490241503808281157616853944774615451369381702923563384092642051877182855150100017335813791021349023639001312346760640771775654102503620888454499520628041824391269295949413536594497238620528606160831599703241296208261684104027348444966379493689616102867054411827749304802292715306612366645194505541919997208862492821623265751288118720681534254813874472171998349275464910348744795645160197457900111482665349085754829277769321957134164288872229107449097543644653947817681835360051715818333235708164989651543697479800475029774128144704009763326412589004141022639996749582834762093049686241925666049574488499730399928794852556194335400745278024985352943493171059557939726357077114978336456765950098928573387806673554970420750780030753991754469269520237288104212003947077097105475176604644986439733614801068211180696539419221827681318778796678678231587455171393988595266307906583860306335306702567588736807359792966460803355285781283787621874299030689446872449188757183931892803406708761645831705671481358510196477137306801872858763116464768261557601233534815132686893380500732186042833631093088542747510245773971818334260255758184133231117856165107929945408596738782966931139253152495768317630930307702780023631032707870571951720898467445158735606082286957077830224025438124723329470211487474011999027764319469783307964313774299854892183856531052663707662519412114124927346560293987767240441496378577702660043800831308266994463355959210931249414444003145938095654025005646850412507558506806061933249830818913875732663663421342864247010033154437762173919887378601325227858349480801491725464761170278349866624785652350071354632557313062718094794021531399790939699308242951865506244945350798936807224560085725940712689095007057348055097435407531660156406453441501927584441014911594957296974759598662603086331426926024284371747520167216714345163280764628573886886939922697548616210984295300450070594727284365947525155447537290046483683314487319885942404553083759307186637794619789825093081195287725856260241498249870329637778976984904127490829131672042702584088524532787045587483482711868180917662879132808061580034476152596010085974552859672848952091174228796650176241853987602738306393794573314093183924905738248294415989998085749637302353486723810310806221734059067433822845681505639292290157680188444310343625210182363145620775810948881886977231743078896555486332387659459275263186487959663748822565959510915175509192977571009502037728620793307678868685685374205562419718298397274157836811018629536584679429176394424775884452033509542413017243140105458721830268432338758880389768974819600595728590866280055323752987106217297019718696718961233319780474064975909001094036255551815394658374744668158297714794302910894766184117888214277557936377150968876153829113953861187915231996544323149900060481566193467707680542090042578680363613824866998829956255293785206875188954211596682407777339989454966695149200231857206107705646290300172790115608758240745888807271068857046552434621009268721273531548333112866409618519498589541749809128017988555429450179814150092339456038822697465546348858048417129326215034159910519083667746514216352010002102096874620576948276442130658214239647657498332945118047563359662399829870442316364509278986483344258241072138141015827925004583244187847468267903896739872168011460408267014786091697484268122986479337268665012629480694207495869309342338517630721215319262380289196715548569822319573147674879291057258866513807437567801437655621332200024324136048736021480144487409997414219800584106634774730570198516037496454588832019472469718354401743340033486615388689244160354579568961595204867026209809462374098399404419114704773192328828608788314189534774514295234674811016933371045075429645904705968113668021433625661147266154082454809922653626839361035750213821167465808526344939656829434827658566613954858718722673955269684568694791558956145797750948648156171681512392661355080950677954974063318874189330813506387606301197327299333658221750447485700435978376776660058142178309851738441903159408259392540170294537060817304950707310889074097598743303754637408859900096101363892342229254184074226615760325084748455109259301195377914867313023015060566914400249245776867860378513749377599134588876118190512464408648576129087816101948262788077998028379869524193408457495762516250794949956139195645336257010328419401239888367971333271750009114719438531233711704036580113429713270438489740706320391606447461891163971942691866904690055388318562172018360196866026457838185186043037153984275694744469820210475599746613617532046671181634194811645191439482490176096332626005176504710207348525195267011295334995153825629022751985731022818633129099599186318682540703197326763167951323774966625614890229594911526764677123130678311343800901258545760469622077628029976583309223026149896537965713556035234790701398849107885523137069771540497898376043716712138523412957525377338900101638298079511218964823315380662885107174849357222996074431282913714126036903993740998251228514134003095853694654238206424304725052213204383034246719871705266844093982521017248583918865640467524301440664192584563753230835057497526904213737593892677773525430621164148948025084015124971368637488552472892957147701326130826820833321820230997084514496940301364118214951108491372429908524893493600005481725550623503464644793254237604408530664207396945761743812961074388293542322167360211017347642555489646919679941114532472831264439007332701551819835467801106139598814558483639451055782048657754992915752590346773834361338903015800155107849501030500202546477210779579655995737789531451056640584211463823413107861918071684872651304795716231919903990928066508027614763974233299315295850553528827773419255210044250207292939203311895649900928884269972395862977749628505292818994512869893569030380811291009308540212030391965627155594692883825762625463074019387426748593179792773957744256850650145098868401765153143361284052488480401092096506010291186106948484068175838678967988449136580150617409643879109823789500932817099210261128148085349893037948297734466540762438218514379119976116193206606034156942246782813991338228540040069639216027839453760741513359917453591050607211476435050654642714060009610043871281417089149486725631148657368508371835082454640935546675701613903659326323021420754781778813990747637039390966925829672373499759512655369783087933475451597445705762599793185381657262246093677037043087738450530209508521046279855517596876779753371244087318444390775512507030369586727193375209469466522524724354315042945030530454498745786799713974301330163622858424481148159112426382877732473561945615961823563829551616568775690409512295851631897206955313975788709375306830509475188982119551093527734226349681452826084394870715635474132115203721215729072289638379020694856639308775391037566429375118687136664040192556782920582524209367156400813750591947609076766020142907623552203800146119428465983615274983838864424375314872094411382594693512419888112710042219401122779318832438682678818376516392288614362108117022175709490143967882630371559488088847228322061210291212322902330870712955296447689435336345963420392400055750822852457536140946049255028725667624389087181283497705782934029914196302312967950386556941053968758937038454264205915359614833762665601624158535048435404619199121116761163600449849936669499065436875700535680795811963020929818199247341241295617110335053658446033428437287201386317763887850099568990485603043956253859397609917119847332343609063898655813382589810783677868292593487143828795342469918869487246163384691156155056264393765339696039468177622924785986183716518860801882847021777771601450838540445370608141280709405943728380441395107310503490752435087761052647518809333932725238818299016237110690626988410900949274168578130545253891375428209399000306713134524396643780710530066212786030829892536611437339931959531388189910991170028106073529906966349297363902329583633261318789472336890933528591038702917202755736135934566439577783757305086848561505029567504735863226075696142730697122862072995458501872290146421125480001970376651585536583382030141885669801098192162236323884053103700012510393069642795512782689548339565064821630880013955997994339904489654085322725216196137055001790227274763701510887235422643147187503072080328352221612004710715704340434004235300755468884413596238718875125123058170004522752077633741539716536855523699819671915015760274381039026601427766414231254876079462361198390954508324674677260278041357783608996793982015558421460979468198978606166300980088173060483483755429712971943833988179400450435798394585147822754671064698262087918528820691353461716044881136529214741326409897684550756912432407991915336129376557125537190114109845528487353714605851103078809000904303884428770967675549171712820316728785477069577924234297262888095644984514880712454952538608955673266741293014677993789107736002463654187396010789589465526943284766050670049628435208951347073176422370618697520099270684947747216788051500536987853152746202413817567976733569063333883938402394364467875183043423293681093916320345226472919489875765498590710690461026722356432280249763222788529685286168560780218497527335350552651295624841107994715611123531419375825343630004647349090844544070045932080090221797112461148945747430408583713275214825080652018521811043593122880594864452260707158792194219199125459187601846407048968602888947168977332790958807668374223081028702210510556946682087811882514022497766603579522324607521684856811927318966888864341427788724212862679247395954364930556566824975169287193596848903336302453908443923254309242788918855891547277765407531301569568444130224147072316752940118244397515798517266333104892361996732776196607628870185880361100250404346681725992376328864559102223930144746795950978499919199234752129453877780960709762470242732992233034526301483888011673818052151743815766048572705918793052247488817968399731685058663089173256582340757892487102264844351265057968482803725953867599744289318219027068770959832447391996490330215232252601862295261555181274028042603091516989191754397804589005424508185693489185107880471932485095633390004829095829656309226141013580632773136342811950344374958733835853467247649946384074620797403212051888461753329758369642678528728234082584115359077081451260864640533349798585036725010135521420874710742395479733249368596434644264206698931080344137413671707359272491369157625547015475628730761918344481258266902330728769751034092920439230509961081921711808490830538596518226907265111304505272677494698868615674002804776945235477398658521350250360033027210083581745787050757567181324450129039292831557781982872242094164739777335708891575565532638146077263085470267099983149787602722364741439114877003344475052924910314114050866741978936021086984492949596379137281400134760653752125114092157945756440085420238969138788882909248938675045232768587334597693145711978018184711865079371633311952855549065864162877684862605490921970114194860010553787677432313476358709032432709023771647243613271810107123212472080917052884991773144278269584093271108077431047079647981541656902600864534423220056153174729693294467193279578032756641465086401068575223998708886980849721286529636627049818842912388376288992561598805038686871161188244119062701555738080636436172507237035905406750835599655495989589013052471282650125817344916705011814163496699505066676123321159783414349045371102104206496839631752721450760907087113914088817503367158912072683417375417108618940035085421570846416271336878333681177703477132339795500577397411428716063998866818958020610715539059858113350705670454567330411579295630581676426725555652734443365628498580528373700205149018508629456738229304323264841104121035170143552436819367438087233088957166718066033707763673069149982928216007253877218752178266315641448294720941571011938787682085563477971937071239568567457301069935397404805455741619909843877287485202933139325190634521623391413304758663578187017102637102941574424648536037342122865895960224446919013662819280461034589872066258856929576852323276836311565779743084169710354804081594319634048304710445742764151743535921913217967484900243207690445208020540863151355116920954173586311084817088655043037139903651118844911321709215175549917104507819549989299184605759361890788195483971066863315090214923734872787928551052742651112451266525901589275962517670879388660805279547171258214977756116954294372473878277306798487580088713972344275234294711130406030348516921400774865493658531185601268629422105063488345946882234986399619132809903402199068416889906689074030761002305786583986443345095366156339531989481204309453752151682754625502810941646977754363543080976134187053258492059073549119189334616294949047007859887526783299942007324149732005605014294199033319164986745473825507507522497503306087351396118553365660265062085895156925976602631808207375443762824804927173308161337798857095591072915980951560200540097291330014368069493656949987549552305009915070700678835200995137053000978844722331486555396308043308889845126810032813371066501129638405312764505411403465278462402156660724048315516975535530708498802405713407489625028105435498402057396296711818737295591493754508580680843602598229083374074887709276504992884504169934584546687418515681200009495223057511939843478461826656468352957083222491445371469839538206031289428636214579287879751335959616317822423077603995544158597277471761442206711277619852587023223839417693567628231476789274970115901774574758477765479648878546070131315092599932110746261599003204880340082954708447348986023405908374093398131978462625398034085670590796715653759627166043954111636716980145284649358985883494101054684753825984765549556425898950445109496676801322398823524389141415648010873481500565744872776861568580768967910197091227141270851244889884121074908486622183265364861531358259662658961155081021527224133640989639452915732704344949103665070305282746293124590984364406153634769776723581760691443286630126249683778480258858487653879030256480392622358499969269742250709107744438803023592849479520987797447136218634612817320017281676141505668283419159434699517675517649952024882507335258688169315172770230159515626196297988299370007592843864873642070071017908895057331607349462213939811308974586710920708328822125284421821462755758989458926299141866477296223750228488254528224030473435220991757198171282051783712527098641767473023762433518004075768049163296822251652661275903891903186246437371414875286724375831745981435630003415684934371223726619245902429427248122119281238752656485473100150579353665216627197769768483279646936384550775472326572611111047116255932916071876701576115708029256079327595131324280706310457385823360083828885812656538455995321794520168402181085916455318640531752167098615322894336831601245196840326434140162258637868572533203379274144934291004325852377894959343560574770202351850845707540283764986733337681421411972906485730280221691399552819792061035885362832968250820035444029951697343118359146377663636359357894606364979386310358179356454079283412892562561605419802190610119894145771299053199433261322440590332355137183587368747468496554346962740571585708264532701576569453417406352569591920374487022808103584429027045690201909720207880336259386911899654070653367189846382319588218645490072811325179105278783743043973177962902855373018576113197339537282855713233139408352409905901162432850491671113661505172837156609747970598660533830216155606774959202550031210146311333410640258979771405603942300508538880910504136753579443530951083671600256523928836730600723792670089570426747611476544315392771447133569453841947156631781382325233317054404769688050850562773235282101670334663100683914388858245522089845574060950518091308147450058207919503838186968902569431949529728659512252156829221946587807578625292058222030611617975163438891339822449822369992079346407316942433538800157855834346083305823331265190958333423510537052730154654706459888923048479246413429089855618036773385709388119595973603585208201547418709874089714740028896171903399504451205653286006961269622965193155250742428934745054946318257917978272785488036138790575780133978490046626274249269893054714792705867455022776132019963200015813180381820238524878409770801043653928427628535849327922117716107136310863416370534548621623997727210606646788136534830718121789510025914482190956622006438061959537133902926292491679135690311582470657695000651879276027074879777064902138083708063749961350960651785862396418962013609389604901602269877829677149790342194413902637524747579186999432180743536248477597535345025937567329738940392278251372570026164227140152652041189517864900317337682301056974866118346788485339560387721119004355864003879434238895087890573634106492964899210527328668025624170836009665300455721515037603311748900590902200389153565067991624710074827895067115748236060382875350443960843388913519752928417921479442745024949804958514420973432247406928382619497166321889329045893712848170726551130491245358836418687986976858921724523838764213763537841200381400096985028529179379162017764916681906897350542254742902923949950959060525647276883452837351718679587926086058099852716031842588235800258399353751127881390366872055537497062375970679343685669213214511600247401550616716512155804341277635435924725416198716336254381923274126755372665724910786573377544047791914608629251267360278550244838246385136974737290276464817891923136638450092966941126176985990112641656229795067043379046159283910902394654983287174391654291114132234958791387697753393540657039623468541261603744321853438668059429688851132587638192564277027881774814600394754513312684922531791515252131686060364517179765378308799984073940595571746123923281922012321807003854471410643952522729461588624296532690784781889937532611082657594260185244344461421299284062689292922283697551833922265365351900886979291750684046674023446735595781782048522227336061223686558919565551285188803411177559820196421603513577529214758210413675490345201200286479451773879164485941224498225386284589136251066144727552391576251572293190787269886254743413017175522225600351700834988154845907718820340097514563118269850232701970029744613827054580945940298741580449029177689702373523075509717602088195602097716790048794653616017182481586036868612641203674657448984229424874320015256052830579306230943263367694413425198344420210808646695383671343827532318366530135348875908539801695580198673222856229880908534438701302513255634355205268431979178730010633331208246348118966673389445592349487764682881797134656568206980224846506845412784498821627773238580065300651952946332630123641206600866606085891435172538613315146192019446796853222340267720962606970433470867327690294831496535427081352469716973058162640158697257058760695098057654375158581086544599312756837572728910795403043623077111153320384160055178201141427642918612519146913755958247781249271916941782868469509664000219634805490516382852650067199015463764036214869901915292300496676817258539307119396861738749013110256799835567150776698943479576821376155252624283779632615114807953628710843923371794410051859025375272238853285975433490019930691520743588877733767375375224466895973432566500172674410547076958052481383448335905152388595963705544743079244666242548539769321938152206395239783865371723652855163262543584873630691102499346631091345192527990175105589452531557748495615520487953717510216752756416960734990201114450458805447065871762941408664453886833405519106680383923233692278618133838436858368189391658976301016860913407465431617791351323408982483313597469157199466625402176184278941321434486320219704354810258773160386086084449004998934625831055040946965946634170550812316188119160369869812024650973516790857299543938025273387948443255897209427602823980033496720604714882395223546349845485429623861667879046569438615518903162476778907277239637928716872586813834895287600707026234951121069930341893722764787192645687260248290758616535571547272419648949389371433868039639596244568085542885673446291910158076889343656795934333366598171407658996950412626561356937797098906916442416940503389015797516357074117659180783164039638157740533850438487949052453312183097646205435953306171401319474459279509925931300642469139564179805839587623325222374828802830926947442140487787334525479725160107979873449808441102865603847270663959719696545349028212274915373675144698451540204659322001513522614022233352721896770695862238345496347009823522426737646439293730381566855686131045005478009907837860718956556423875022633446454583271287431673521617066585599016858210955270688271144632942901295054867144225191637955524870880718421313351528881596612995702529049269306424914658017835769651581330414591769599699760342030704068234363020213502975280319247731877532667240288086743872447961727180198407864657781542007133336862163228811878108853270323043378928561798466444267054886944648343747885540929911572940266984604944072494638735850119509835724604540127579805807688945974398505443407154442700034164522808667313842975673429322898808568298354898632337151737319242907392862578351671239817043285480431195991998941819793478201602566775439411704123835649398287712084485521238863563446190204202768347433425994997315163785987650746523270601112024168889098245007869869163367324633029709345753961649838508211708184673675639635772326779710563663700749337387149023252655994103343097329151859677541415913487346655093769057757784771873969148004415089014386630040119410054789562446347498261535218163343754391571345399426347002188287698508695789300403996136918306445349666504598858107556113165325125960335849171275387177319540463257524780954710950441077475012635445068814221812735023125697345335974815739659192484279902147014619597427540113885319354086211569432130561246395962292792206075931397476831263074948244278701558602559522270262836513391417059014659862257079913153200298057980174479796659796921190091170482966850155281978557026010030800908415675249683348878228369916586460652755165184218722971868779036299241716416553742728601481176233381124689647263700468505404149639085178508110554309793935825596821834393820314296636864809894437595630626119235510024691373950370518582669665968518149842345314331982501079972738406827229044403527368045829158403889371979924450541448636947984213082248463325069831208610174209151624863486323792504600956210589047203982205702642622888894323047709763202969892325580191674743976797259387420657311889518478947267858867613438361639650827171379191257346385990441246481947169187915808854904746643832381127693325123252955718302969243271500937629249209247529547443634914355006454542647718556053823046507809947562187161933006349955749020890024848575913646788112932095483822562915553625846155158629888766123311542180142092060203790238446369313737725174786731201923449844929467106379943858352838767023947909598891809195552531241697316806444992665355318874510549248075240497783520548524134293439548162589034441834710287018787633481271540244381807613737177626844533753347208431333603787602807880625435340133837049661899451674514563901513388777685462039146650193945686044725172607729114082509167079004010066575220275621403601724824369341620719107626264311625725203001338335984757060270241694072287153903756565006617590385097753482938935991796018039026054508957097322690752776062401077874046468432951935012320851437552137037471804490362128924969358050784073922564717582978111432070138839573018785115427540203150711078134908551407472534475586582506277398719908749995983683506630247570014111409136182457553891890269191549932910572571123707847460472949290875044113559726377000341436356503563151675573626584576670920032195594953959745668812470918914997405906225797571709604234625461687438770638739391042567993755981900082309754400062763043422284410049984327382051143277866229191636933654616509655972493509377829911088450792090486591358270224835190652717932273703224726635122404993187730381862378117241297260054754665580561182135996650723264626528652879791566604995748613142541618844054873718596494983395078715089912974221889222820425423477806707913010106172729533702568948933278311949877784816723426322133173715887709092897566697900902480973238366453053002951315276821501800000252134718143978032079056860925816324473783555203235019585783398570650275699502396680576010223169800666591315686262779852792190682996417156535395725927174110896386652321961403138128589546575951838277985093871577656165610390069220240341036939691574181677811687313819100309672372295175425319461986164380709126898569651163434047755138856765334117151551167141216773714760343928590126426489370494555704912156146146138089759293739427541806270846238034174898146879175529819512969421766824612055089318002839473897557714562335613640193999544294976723102244600431530107246327218411095508145935532347932742281778478582406286828481890256170853546282345127396760233988101988834064004550259592053120557161593184690354505899257836477307458959666620601321361738862004608304842020940533002384852525602930013778297279342521573418728415791019154283767266098338718959352793082660776445199870769908764052655653618992746472984797248928470677658574034979062761007583433914359777118851172826241144320200792143509167020774634548989150631942201920968884752521916155405211520504452154885583482751812194441382073608755665196383164826837110057657518991771226084656115101583364055375035044125181360820188812476010037806112279654883779038245919012524926795039085674560404812226631539041867722271367868696446856686551255839096525129154778611731683375395677441342418281289631783987553977169202844725752985298984230668076560410510524391638417298838304735261771781464723657075268418205468364704795103118437170724417167184045252922988994436962541988593507420304466531973387678760668814074961323123048457314092919883483092176270621465144109573658656522298820750461731568317706542085932813753510820408859443981160415743538578643718046509995616612853523903956249638549593029436476901410904349943590710473582369074027506666542328019857419463073573961086524943034022204479833629362503936969620976256951513180305473780379195738953171837952430686454529199838836130603964889587522979667720617229112163569644640382153315026795789688547352515530294918068003113992995538764493671588802343810146354132152396541268137930710052761401392311116701546781156935554400593057263329010207051295093294873949440722462944552659310155922652698851186395733749887724721162977852491828100301967769414394901640184091912203763201616650385500421275016410968063313804200527526525341553593246155364864264895919106389956612784984446062634765899889974145096682266328534540596953124033046664937866414434140760374728817547633303172290876318272496847441924378917344695826916016078188686801724131352401387200627938898889522432667435828300353799481855935511659254410460766214884360527570068604206244475477316384609815218357101670283323511729957614363988813275468414554768603647484364113073797289754222285098136156743640960369192662936784512994464962257659776586603581362182096413199996830770041503310784262224091191454329553400738447902298051098069689751910336782633024826758867487108172614889248781789738915965177859521944730991207144051575380424910433951739864293766597416214658048218974331291294213030171128583526457306858667791869789017428684439055870750191463266435868461345438713741732255144392760591812020119948453961676373598705264491480369408497385777182610978401901975495775082267302417092518054097836688489860923443933894778582179562377107909319964089903997382449471365480803128957165262197467512318710537019314245842019395157116162201482862187589024549156244999387055603256659806376522912024722753474785443091106634473178581815364943074132995286579562567184565045230683843309279757679168526126049979446274218679276239748021982469405409545816941727452020600270340311788463445692972198943223314740219534270916892894686643243136252661408417577769953694109143824021087816616287673534624315116905856607325778572645432755139619945877358428359688049005113657907976451819407377288292446334849282327466159981232077045496360983808386128627090284278915251292085681582059176494957749539624905911243144752959078908600249008201629958223144392680850588516437172267647631269486562254797787219845989375962828698422218509174112695759674528359381331379017250773999057253956893496735487092135577044577883867796639521243610682441945242368626808401573616981418377455998812247916542527206876553551998628098461330937973134320127044712530943025749752253215475183685663598249248714292550690289142233143694707297561137063326708732098249034271169636251958371128960898927332379020158764087605540759816509691824551714154673472657245746539373817029751520362940494624956644257821444740706095057402248309116491426322949843875353065049467323656995568983762758225612710796998396770369154263343128982998441561638150616260350796108988717049514308274881241699364779579049526846175589316132584990710626459412278556214942960916132594501759230037955468781791512354085102789387839717794606292564630058552053282396017075158065247299358207633413156486827353740329698639917299436839917048743432841667271771187875142534083874651650900987661923805219107825125096829292335791144157179246726510573180916782709290147278803516126427342042429638304133014110445016295639471547008659259662388487618526876219542009520950317973228383723554328299298334011312401736867775751035404457815694101544042790129722071424977892899583724901907017285203466810185495639693373355784241329169775704444605923821205117135370873812597691948566209654282789200501822192934628508760545974586358844093871773620465886924137687397754503718792922823784528667507201785378601862879164323915378609881523339300197437161568910257088701194304310468305545938516764020845364536294396545016530253141734928565312861794329094921616931562020993571581989089626450944894541773868340786885503401209574059607892034957272355191925941742157182793935380480126354610437658908684197130639066883693443616817986287174485831962295468299708054363713579677241732793936405416388608422638548850101177952788852596084987026351522310358284485922924015305287207544169924872418032526243733022511348513036683565707735932486789293286822700711769112077786342781367295547690960962941978275839328660099588789310647157944647339276686752010821787634195781323170613505908675273894009200840040091746904745144549167975824100694592383403096141976367484183773614654293787480188629301384774275413461324722880162765701029398893907991415223795809892359609349826792035590471989410698120587695139474425385681678621839985547685960949730790405639626827821345797242640993545197410400260025496203732939355827174682752585421298191783483989037214186767969508488233024883081486800721896783591765596283008513131343710014547327044266675066407113702804820991473682584965633159507102688542264195788989763678894641755229403297543014756125632677376790685801420252047535754774056054500964071042162850750746957336911947712373219443630453602126304569475088874133819616112426370637824270325236064556489169737125364178308007455664889232286720448779573940813536171190460484793592316511876399773028261280064328137452007725934167054153239652427685387551777584355108870485168414366521851277059507559394903127809047246869782214742271827464139778152282702666028153193729829048037808645228331027405927606458648659116293253964185698481838037626165516868410463164163836461484411754373244037240807413381151201155827997331247579732151588291042190677745691894815805305081094125273446443853704345096492376090085190426466651067323211791647266563112353060746540849873746945126269190127661985203951053584043862978227119891283006584366318909823819438749040593402107546143595380311739334110835029454945306418724495326180006013914871505770722296946008551343932234042942292463910547831486364217276907480315493372913530202430062897528031903039918533647647962449645209781925470911869776316360907831962674391608307472329021238898145103097813644864802565582154934137239370474932776766919924105220879316583444833316510199759768226504760198908255477241459669978411526125569279062170800409481968514876366297319779885727918768556231259048408243731582005422084521859104979542736614531147554074275705816688762679944575011511012670513610704059729035645544830332810346182000380021004561854022224153743043970921159868721612241077936185084264257633354396792652316521934536848167187036798630703359437199730775547772011755453239352561655104635070840445180128258004598981331997767740296129404805496033612856676794184342672093482572988790987145569168015891024183511983533807041630885534762159369482340975942355866423998867005013120330273971141582983066946612570905641209587861641786170303465548366694220671209951571931557701025671093393855699844438789384324032376841708993333589680824644750329441940410594965775618634379089794172889783253965027724941507172282367635663106548694939229203318812625358805700578903805493916571077692215210382897430433968077735453214032728787274625572222278297813398643448267417100147007834107236192571971601478580589917087153712487093120759145815207053253680535571782700540056035200911036874079145390738911703039350614189410579498147680830322277097560831831288278315498078076340193302597337597262913739093839883582869739502063582518257503187449134994326613761805309978139689612949087943110946377395195963274101471164311461405499944063287777329780287063405051813552538612698257418136322210239690795506520788340462808367611016753633389593061412627296061041897996147826888028143946253405354151432330143998335674719955524732492398524297444165831692789582988346432997821089931066248250350092960809721721975964336587784150507737655619702475267240752273065736157323838077318806784209255508786137802641143968647212581709632246342742619149745658555533224039322891469590973998849204750937228745453485641332594805884466471846132723197725568402805878092663419590950600068162267453869400127951094070017638579351966225418946270360550248991132829810775456073581399987916355582024368515029587299916901771172435367306476922619167528152017012516537238428581609908492718205943944965635046758836037106151299752277902080146235171490843955578380232295983303646365342934432232212822222216916496585712679070133843526034846893253344752070786414369889359188948563714499482544090724171025411293964962297668202944694436950900958070587795326005297576784219459732606302565052054490256024888149650847763587267905033727675063347846029890798200297259862957948693238382540490816670915490446864574433615491624008969527242420165863613775932626218868801702857318813613537491268320525745276779700797462702871198338370168359723153317985411050545697339772883610566304499954903788120825340042689677133091973021964399577457375836144603745869850315761707995876191653882928417160734352654539784796838477621184967224670999230154130879889631671659318940779344761495435639754007926385782828705497979136881984846876663104459216676271942955681800395691656530557766307958024403138868669480508679518013327882663362199886901959781895550429421460620071534791719436432130089581365512511037341954579099179655878991162248008187821790301551723934636597696225214987879948501286894232142639588583269971855239570520269175501354597190956154635282863806917116826949197952686520429138151707924946615823190059809968021915589843256765071618919320761629122907943237200258917443032029420018180066853695290109187978518761142346173941227066270828751101404995844870546277236313755434554399683652898624232323257766269451096536365750182353408833719255039758289469222381447382611163610264011702036162432791643421525167522227774034733079197194165185235161886654472919587155556558481786052483321705258888840646846181742576602966081854435239051957116866888236429061191685076943756765663444016627489330446684538348876351934785879985511056549908635504646767540878056609043706272602867633443362832677172943090071384023348574267302846271266714462153370117079308984729057046596365746161912360112114363625309648802025693479728936895930319419040754954089348773597365439816215480437877226215158684485297841693910765096001580510940219550047732898459880113892018172321316468575307256955833768813779142665865153767002185938199571617895572983652666180117382063052651808247028150937577095326038618501800384627445364853889486195345694706544413721284165722955658758748272932294664870244809176471424942793443955654401101436148423938204587114406486486001874826400926775651473676142999683327901748438828336148713597389846433179197018550484795317149542601500826123178829090151532668279743150808463379582327116607507721103541118481151363820708779458597787156538701565900604688843833654513623091521207909717385102469041089655359409532159805313798720742023526227626557719900008584949631438696520001247093651830022678851870845134760571584900121507013354795176354635098388541059120739494078434989704763001471003900824205073939390295776116758498957646028895229085238902148153457531634221287913095522968317848302845906112878361273898299341792930514349348173873028401550951160121266859496763030597192317934747167877789799261261610128875206286604195931994722745649806237858584839483325283197274695606323368807050400452366556671891384870602106816524477045801566507079066415092132863045669393074497619672441292421523768736591007700322966266397777482461666710967386779598381423497979003448197383641921250536144814290516337702553238148439202991419165960284049600836742292863714432511257536336550641920145803517739339480411966435392046726370295791267526870435460991814838138997376707609726966330101840385730341571060999601386849929509573441264622719831310967433318076675693769296622917870217756300098782131649839632440964881648009612319345119552004379275787410424254054991240228142760634865005437178813406884448245763416733816451785864994507056207149897814224116321059216912042099051405778443211848176260660789500850354389718510518372031272494182363450434900734635601158079223859794004953467524727370380692945922570896699311487232133623201360760963574336522091215697325536341831462052074287774872063334624001896057186736953534340219862655427117738762700768881268051378228927050434614670320309027659203481971432586743114856418907588706971035367913770992759260245591977780989626997685064638402879732695826200710449610146752639529006137521425588336695287845345000449764610411199085847928329689820431762601771881230580459692170949527603486888920131284730357421971220099256596248125812964244049463099651948448234832518380036304286511358360897017180666169614570030847832842918564021829650084609757887666382691970459793151073554201478829152985445898282209828318745435004242831297518405029285627377310392127746550458025994516138126197232584202476478697074729692884166552662185485836516821373604029276923959996061828486277753053252489404654287168557502328071699709813250110337432891494531475634757704002098238920670410448742530240880640675857340952859353073276288275788857868156928775009606252550320210903678226220301061398183586663939556927986470845293930943984478326707943344307398308830153264269778961030850717049376634656602587139229628452136646532988568618046363896085204253446772319791783767572555240880108290198074650103195454041790221747789921266639845603682750971763662167469303744270509652051603628353236636384274392558306904241928754480033437651639073124762343132226290104965352600933729126161198759095428889784110088329521832393372065166569847376117603707524794383939811438076268435301916209293240233207908897447933477302436482721201173058188690990100346087524540494063557358862462993689143115114599398123520316588637115887596056610033616243524621835351049297573460128585450179339506810638441211438955268732993305435789996545981680061979844876885286078422568818941294356870521238133252623380731604201481940127193841876853871188187316609588130396040019905587473444656927299121993519683351051224551306530272835726446267948427855597618789694894528859684070744260166295022393568213879802838145611843865467916772977240434538256839310220429257100357719265363236371392049361720349462754178426545018756572304161590256811879036309934930255710545028965055367768160869152641659100976933917529359374617070873934220368622514729760823190105606155475289554277791701893251547075290383741108039233940446932775591573176799639684457002375240171896962658365034733970235755631579018283051367951014144471353878150557296196444149019344855803929330894804697296423354172896535616030428006479385712354036934214488454708084456355590480969547671075388385255540438272113618572599214531177739828519334870239347517867002015988412186849747876051869495133577929654144094085803701283474835600416545667870438830129148476349620696766432695651191397826186123448166797230101239284763142451554172554587943916083598057797654330369548892829778739597766653080401391218674416605281275416910828035348458189430019277828748314288877745501385034638912171406926255492450594050095290295319909365866762943733146503717842736016635264032042294639082871309228947757354628293805860714944676213752228751469457134293687267599117318117476102139676464145692842108012374540467978908437171268788631577325782400317495780785862051702001923438005098363888526164222550543326635809132216235642907170834304732478547373801080400673266762327030203756635824454560764584523630723928752668782601346824715687626467290589002818732649749382969892229025952972628623623534320567100842698256152412360904138901006714432042672450097172326964608861687743167822932452493176237508974099291182639212110669495299081859248113516856419450118335303887071871289708601831671927804168159773002281499674832430748793927785748065674969851214106181143209126804352634038405552080544260691733300859611791525419758965267890129304536394584402071343715190168537961836431533433048935072063194102684648509718815326339981479277266428860516008139764222398022911527989375618709302121577891251839983945681185459328021318607667916811531348048619950999584008136822677934497921215082905238150401918329917453688525068999950045288601738974325867783182123811028330144349559824243666612429798876397255136527087556849559487593609370455379903329726363002490193073678516582769381664381957018756546205497149258635109132351212689889439989301252324973965758818439230395033556109889228234129616071585516986295074273473735661286645262645027919964744479197277847275714501855372234824189204454575852911911424775269294832828147890928706770524403342079630864909511231829557328735377215116493107929624302391855152885624472820783491439078206825290634035992382602214779662498036652872812285869387428256654185559117927191008797578814528484072382250317472585725735261297081793604830939565902827899584915773439745239393278141976947138183827758629024099100665914197386437773466725264424839956750293270570838622781390175235032032994868803916279402133751209998179918308450462839800293648454114977782307246991184983567214345998187983304009184704270800972266065253347740471931820341634372315229796283832185369928343754515716100122266489353882174019870807422037687777246282017961185083347658392374670870396641625541941016855586468065526523175625218999030351724496824471552357568806799857787475974356520212170291890566382052698186441026402394589512733605415156182173345473063822486443275096151696853544303071151410722308711991774122600457286568117545272874187417164285898854970524162317869566344956689488012541213423071904961410392345981758742843821270419303093621203400330597495779183735330053126586083537276531550080714573107785669010570668016008693671384374434100841364083969026100686723730071022967154571634001484181594813719388526033067092428322624768212933839246851349698354552081719734309683600873139208100611175628235515744634097669158490387339872334286639988718770540140435152052985436523441587147177314280398477869575017582589639549073088981352782359349196278865502964063237765439984048807186142879122206191697595018380630725304502204372784697686681130782044028565927491698849236976166407805566380022291139670434080665156611060818118726676985961509131034180313953437551812616273357366454060032928289512867636733371945594348032782467473034554280092034161862768997653172944912030674226653373793108677805724435477408840800961558720689073334057149468493546743570541381476103779902673272415545405602724944568771048461934226970212504418269804272366023747329721377832326389530006027425986757330669020944751334919026001314677583302042447580059078278670014581001265003022311121054902752685885455588209524065797499960383758872875802784702264105414077543244749091652667813630910426244740109432618779618299378645595215411108900210789462890634545057804821609163498057514969756791198355974345334642057344541905186369894580580449656897040917839314526087751997074119453170206732254063643589032561255557031372373209589615599999931988830867557473429911269447373774585829595563517665078771817605746305996360714596219537196812266904888390707224540244969143701518737742237145635434275972882616186283926160527958274252957377192553094779371595871625289090676881317911586207169041142925532630769446456112012855296631859267563475398170872566322649483547934803803329571389296871871434335032919313179645106159269465529262177047355125064122780708907188183139275769604691535561130918359632260397706336261897502275571355046983232815409049018041549668341842254335075739994494056615561545838913204482679397285837661974018504071472005639069766787910313631293604858519078044822172803485426535758442957778151206229195484211082767400172521738282040470223315363228454876496415079652256267605180992646727643346119463869181261078895633906546633204237906495047901223645165715327062493146468302555436858921143791066244926401786672169979212048885139461908145284916657659311226410717078801405025957697484056179468257412301601833711681194855079963873804923101992121494088172728117464401073100259155643364041283069851253118120186519717006896754620542169396599585998074890886906220458338523241030142349489304003145954472476989351082578300648188649201683516748715360901363621549344368912892998240660424292982116590395027920900721155962298309792229350103530343833151890165027080980451106225652371027186335099125628975590464592592978661769511119003769459789442435148073784539991189120695432334639775648726377466325788217219340595506957156236876520083237258402345915572970919410603400235915871764841281197982062817965180102850602149436159269124256950022944216844006430642038443598356000605285195519787984024365763784276056111157437786066617072540467400078647388986335351041501355799562425581620537823155834122492004231088828781348150178013501372993339550115156500392932585362038353216009606688968875184262111480303773626451351292873080887054263019303305139740685980105778321016077277798596799457173993939516982206720780250191970840868229762291083127608997224358545075565529444627064908518835384285031125328599246171192899079303437182128526959601187288052104960275281332877442206914715776118083098344118181000227556050154118365226198370603570959794871105158286989922661785291733923001557727208957058377689974622043532786730348092096143501727578240611506705559232597016572100870169940270995838998374371209993692413140745279572567984176332693307684831538575518591072590911806293884740336142470560890137776248610521622648727446158564294744591210790021663869824491002183761323189230350172543479944654818668914968899098639944639268804351028533788501443274174077500090637306710364071697002433793668068443085116066479601390363930727045369719734821986914876115290132410313970069395004334225442253483095026212777791987169286714158114781092164714180684997595287707202558664187082140390527156525296359419894796799214798500378202723073080832997662309126952939895091018400080270539520264581692483021704875167897083553520532071738519039037418698381630599042298977127423756025431592231122190110345857035269875276106036468611002130426705600850160268937010035295369060286741630541775169706892555618779756921257333509583339211095146304499984157513068043899151813746304822845461811062717433583062407448053465996206706674628537263419336009269573784654740606150032049153491822839781845574306693285186215176061017366416358854669079931673947472438316428973121328124665840581713177719066994467138587738770780684100596204582449535371129005788332944431793042975092327531974365795084601303349912793336168491428628545224295958857752465608278676581817869132660393773537818390358726524854296835441317746606066740211305913037547400202221198417537846367988318979815541218032604353633214237421521156580390972843063754643208958510753170674905047757855921675544625125183441189081233371708967424390772470285039554188986493070430309189058287538718087618412114188979794991948007078359866511464211918405043372975324846946367170107863748424540029045126939800729554510586347356387982352519998131943665032601293205422408305557771034544165167797121632849671717254693260113236995042722875114526445533900507411092850659005853522357416362070148699087850258022038230903946407187453175523837354737021835866575714663260095481114344974177249025364143626545008146776173818950960722123410811074414479029584282276904706017556535523318209596629402776718894660536830720979304489464783623799986281212243096554432484513015003093041354763433588379727190139346480493739363978604190790103513497556891091178732948037259691986649429038451723922474984449280305804453418496391565212761675319527250233548634992043100644150308365864903418663523756278654198330846335422298765012574744751565993061151987626558925114323885859685036059196449301620221649798366448779432763973822053999147761955158768119753655960755311391835507171163792179687378434205197594921579305522821041757630809161465694268347148253093326792786269941181554788266947371788236863273924739417772078490950270267517125467605377029098819554019216306129703787359297182806240253565572553787369769457909243168082391432195017995213198539521522689298057815775817884786746037742571446958943542047270051831643913279195957081201372411661808554567422912224799644312802638956604962796520813100803588838360136916352023845714566602430319031839359105328926265436253684889938337094055647031333480555088464702906373202771164484214082734639243022019826988814642468758250989964800631865214997220281219034162893024571969384620992530667389342131916645525044456888190509548711890472444086621399797156890520623286928564262060609582492473632237973579864665274226050534007810058888034858138231609733142638451400040971112854934985580970563309007238363598931446571901761178834372124885042779525143923446082315742890295333267418213415304980432697299903436497017323366536148427930681659226668373574838919729016189461611348552682949890939547755678434008491194188142885578414426398466034256337184405116966973427785198000444656758098402880271273675754963168900860791143002526132772866485956213516325855102775268026187026061359059285532032940898035766780124942609381511422159018568401130375001536011432818788287565690864478165440619804272190204921101533569978954059127373344706265205144315679182233684189678905074080750817116059875958870963938697402845038032727650703376460221082068558602845149673038702483415503588655514920899266202919308563019435740469609825640592444685615176165282582347700874488040002909420663369588491880684994858662358368287238313454162231459871752159809740325937701172394735259222284683435634878903147440437593673050307107278366529888531499714616786101986375758367144703707501522679590571384662187981622227429717701059463634296466589249896898211556006287776627161180573563267699936187635808049153415346478088542786146824296582290038198238098077714432046874582493007953239055308544325363357250249578239787627141571984646394389440971296972514343006256895796125291472195034597570011423107735940915441209010256302449007571734751238271377375010738923447590050989934018608829841558332806433219122326036696008334979649194572101392569556890380453551088773525877082633301972688766820026144655216545097793527633902005300491581797795456333540304401281487368597528816473601763229524470799722610145253378251779275589582053839438426404618250531841216537341448956923320015390357852995601777210833529258771560922184227424680401734761496084979449149465231442584968536755442958217881354082648773347277620460005130600502531892706972084361381536195874517653793954967421469940605806743725715596368162872195445792478621846579438435820362295293956330860570598792420908632631666816505469655270926997549927911231044223824578493601488178863365068222432323395045366444272657245438573601531380429802571113028270834829407778820783201198654057400888068566617620507042368888294835904061297938516881624126140951586501661697527668039093037478225667878647759773993256724812297266202866737444407570076435003149560624399081359828491536745232355180080610286736964673119774367800329119094537987067804568698275554265923349355810159849283584647025103087451265989905196828752913935713020936331800538668430716586823935909455781243652211037595053585630101811773313256834259278754878999374705513154544805525407805407356308757335227286054835572915305680601149930687221667506286981313506367926582687461054931612426953506806402251425115237537207403767477054631948002946232215213323221162283239062829078771162803239446570003121235039538080528183946720890553116201253938385593958666449464388151082667685983910805778158284519544760294902686370061388936119973552127063517990783035083279939720147832664306788769762989087031945428930910987352289980104476245555106486957108467197879342353334958353768226720227558785594885934037424072300579000820819993973783235490154529340923925620240669883088455888575556779247321498644639956974635908236435651836938896878938285573854455091136911642062590321238082918885808280832804239367270948803551855473804092628468951676420495765934175827151328084181562234138620870894598033137355038412959162042141253589629256949729107579550864690379561103047374044518748029531770173829392734142232184782445284044451957357670334702648478283026799501351733741549631002184195336147854082790615435759708604734082010359534588739760304564323083626736904244457897481068467524351902568169344238805251667647531958557217766996080415935258191457609228034849379674084151738891202788482490117191688037091048063375268259986731411746632400112854956080895440074612429017625587164920392073051046176137945119399954819373351400926918200754591875128131009370553702732220892131271734562886956765943020471021311634480873402141837165312157443501484532106254713881125063880692465810815567086066279845341394762619357789377932960645801088783372955128715916966381929620527253898389672775424781878815547863659961275907334906901688398261322120367612499563365516149962539738025920261173645291667515461002900459842270524456854442517174796159237923834968970324518887331906527282946771406323019503226822899086756406501284521073177474613515217676557489725804089154969124408954267493085383602309455620824654085880519929139336426279942411217568379831044571634269365291983344664357573422080773025153169963877151893712604440792935134039518599120789541211656796155051641516808436480561586719892715806915464540618816426101086147018215161072334981989466185860822762429682902714227584306626411401567012638746955001959534899308879144091287459916810179142610776010880359341368072688743687458581715536250797183245675042197109299624834561636553566255750694804792465227131995528537728441266303932743792466055985969946177666101417683950150152163200070211408629253189370722704022503191389025889914397972752723602823466252758427574429497957877652214996120043491373988056154262899230232313504159170087199772068383601441201639181698404361597131391667791724798601174456319119070988889265149453339367949930205211547151597595946214531148590832196278376889031326475435896560509555315690634032135569680691091125382065561436108485970490870192475104882795012674368768413677789302427336618608422509354241998144879780535192345851430528482470683835191181664840404057036456582367189096740129621941456043689716750056765889397569249480135709292400023330395763777503434354873897163208950677976126351644368642446069565605469399686298705675884530163321603426871436471698090519119377795462451217369821157005984160427301085866700693412024449289481738687201493264548131832443859697149968227054048538696508052192723697220949715191162371904258299480454932876742412397937313090072060474060171156217251031036361469099464518953023548763553932504844405947244399826655280067556187019810604562357228928672881395685439895022246584355026071462421081873467069607667637210341999699534703319783146381248320276035642794409638166329014214781051809031538674217438393994359375847746192857609232148258931059355498063917315769797559365597585358023282473539359434573297206117367326180840727041610170638006216125559608528561608201129404813728837148561665900237145861676093968369215747960143533527020805418212655866346727063285568303387240307184662892615929090105024575503558823447448500759493833738053040641717739184304948105855132372354269086348947996637627233552145199193541756456052035906249869564070251539612244529007413282432015414032613296699343652137045247179395224830932482561260991201383084745597201317488243066508022732036164898739434158012414146037576858275238042849914893334498381653403960754470260783313846330932299693688062493013313125024355787097050319564274246545120295051586779750193100618907591359296118340227079952331944182196750566737802797282777540132425890708335764653422641919658056852618754642644792143006445960916109316377283665070824435972984451410190304567200961786817901589319019887890702771848735678168392602836550629355205694804444629402902453928643578877863028003207767257872464311505730316686417571889962758070864938168686889881147034325183198847951181620704664159657673839851154358073784490367166342900188523138009348821736773085273075406336283150945967253148814998065241052451265553651236419840907695762508299010959829532745694409046231002933389185168037932483877229660231025668921206757409486426934756702623164862687372102001653353084847199669281491295903483309398727784004221973462151098846209412358388350907889694701445007614536016801471505083529168337320592127546169686080806964871971792094347855660603817232866408305454703921124418104664539899348362614463296643389860070627833760708643002742906730228173874657526804181180339415151201550697298801742744753160628330149328274542023675306177802853963936800741529749433469064894643823196450603530451987263133945924422535069536965852129063420167859688105743728775183492906612110567782668275242268538979125406350280951860479463008168031797298475274556054689689775587615836606909713182799834942888018253007572368650663938256063675683414064525412880576248957974038376688075079252218196538538820346130026919435845480521048024354771050529129348117198542482247307563682423476326240930930271388327637774598893362787711827629968350389134839314912230717041304059700401872162250024092079152024817104144167107128726184299490428702311125026014271646799428960154840707003734261010734448483358767344700996509222742185051703745198544068354395686912529739398361775587687838587369480921594701589395667563679693651031739756920702510104553621734011792694182632731218361469334329429547331416353277091436419935276114847677804294347636801195431212311217254708437361529667125251002290285725554587235630550649789135193686591882404254862891143815543072061089110705421192958938348984268261649618814595654399812376835705809577314331385374219322764549889893870685821851257030607726082788586447390885259881452115263662232251175505320480292679120245489535074586983399121770046416738394519830956539411943856940705961700240782483826135004621001314911972735080582591334593113232146494693795341847684053263734902069243047968484422579847364672986289731857216939902853574543153613366595028314385251004208956031153104930016732326234984372228435491906754931472501173321218818569960226368578248827161798689210377271927034710620016662177741310629515126493558944211716659831367584006330749571487816682853112454490669440250010677317263863426473318573139452974389246228146413497922731404171516173157653487217632854639063285120886155996937552001933734961707168356981355879855070073657275223405136496015974808087722190277961834013924326194231851608969241443319236505804119469902333386688488429708677346922132745824912155960386487706931268154784237541357386911087641997357079974182335013406057492211745757950805431670672315598945948816506113968866291204570905567344724841189572107114634776034268869227924456949120419226671797821818845933407209501127109357636635087015891631680753912528605091710354474277787179351056911552082954648724406655905371297322862120831812820551304740089457416611367495465653507415264097051420224568559760019689816421790234685653182025534834528993145313069947346934189078994752546005593708575550442178621648287709142830083533864112414611949439244571070654976008066068953786643225015095677280326147515370167574881824442077923944567883332063439442680163264056017779920137239743681416493084675309560543863969455575905372370672748562013968752670263012213656210448547642311362230618143396672833788391533892746491749869230736787879753570380012110856091246609890268871220920373000700124355857368879386303467270843153087367100161608241596219825045466727867137666414983232278850284760485843846104421496846152105149866242438541768755832215808464976776326435441397373670524880824839904303270022172156613714677743874052724842269756242183753535435609527408017810044513205605152330861869485821564123063159734716840812285827885588607984950818712470218692178178426034991607954226249260457866202899948160795134025615918667837916467565603903023143640979355109289862877021058719369340723161323236938928029561220720091848962825396118978323066482651368136545408668371100898867151932684675645936641390303524315127040779131444580912899004249614090882732530746020663074200016514598864708152137898861265054545311822610074808174590143127562953990579339247667648196152924862527830401635636960171679908950802364425134679517589248179632308826206663317353016026432105714611624807333513345147618277211724425893833247247684458771304461647706651899612923144389007192120822014848113931436505003243006521862630389822735306992234078281668828866738269812467198966253532334727071671604799606080617173325117839889352176554696114473487172475421233776986668751927544023789742008399571525366463048707476134699498453407866263812718387635999924240540429958683691083151523031864939807583178972196249420887597878629895868099083249879178752110158481580828729372204527916257152249813586282850507756162269407435398822164724998138124050199983183595776612517729171012263854430321447134541466086267432380116292904039953263926406547027658837031388484183834730349788230702456205973374147071504456966069336266729623203819770691304818263897593115097048409024459412340865315578266528083533483482967962629979530222524054676227310995923699464515319374822052343896562445758147972147389385340393569634438342800745847013063641767480246656774580834489033219434838177499715730935200706488115170028205169681124180822724519203263068436296226261598617588521641246573181369704222433946572673847849961912000114273337134840524130784179872652910151758889750017656492309129680050919100066723993207747976862974970818033407990679993828895377677435038128857803515302230589133981787766460517243706050214821402534037571948645474430153435983331435115000435393028363790854600777249303391245966679130728354526074371117328146882573868061683671786064741976701980723116924963273515785767047481454798629205323547732601121881074461853410803384181274735435804942613530527473925570248202733428751052586771097730476495826567998193627210934126906902486513899947187910131576800465267607728976943401110264156045355560828540051374877057642363550820052221567932095098655796170217109088975627379767732027180528474871078255049276280131693472480259558037188408708119349220185051749079428270339704109974794587116461374029236283745770618716344915895151009644583735291860612206831657758278953785787364257262535027420711575278354355639887400616005031554911256035156342460974922890896884517122411185010589396951835825723586431280260616112373055887780187531876790943556917807426789878331544826215948999717589810483032981261942174010757200353739240631189838357937952335802619695551761560189927668383366229385747030789544565604002777175356515132114321633457346450440017547532753530361087173322712544694384735109154731927371021937437848835910119976277656694627791376693564726154372475650712351164351069231376219532189904483939055743599520137236682855638968722444338468519817939483670955216858890573758673221011635283040515044804642111163059839320905359169636060356206475952124245878235197118037861357873634584321522436580378302368084153057190906904362561116546495307471782541090050054329108611446944013800042951282296049315705087934095496304569321692402439450026698142598444074150458366738986856127152769433214568551643309234007436411265916059117537394625217125501887002828320465209273334369572995888115676818638276501840009224508600040313773542446857871475739760464829798236625285878166911977761413239316719170415584016331917369256111746133904847048122742312673671883298791390345423528008105662348489321728613060785653096663695467824401761476297211498192908475408481940252447221743095066438784949111188891990054107247215066586199747150770382367555974620080830301037184622826527847911262486975563240955292337104380443560660458217454918567935695304857025548547348917634467374646886057866717244558612494926210193985579239834665973907738111629328691064708253353164001411018052442791168031866513795870112427470831638125003962514490372886769241826619964236766235837040189426500230690786422005702334515281550747166086671343532695456220858815732371530238145888150574985350743297207876151937800176392940710773802860135709781273130823342350064023708989044671034922553833747094172047036851361202571534407129906307207088387245223823864840187802755787510206994638079091105714444915766732930695465515869495345740098966449666079845515328024351705881614757494618617497940088161997134980367805424159255834259577181597939238712484588509744179616514045583612508618698915699292496747628089010642480205561946352235203611917830331242502704122866813567405367265645293038682785000001204978764627879662103347800693807410661586703967285959513146870686504877427006184372743406903582873366194301797840141224272374469742739535054990096258510832058332786867610236814914409781006918841387911843667356114536326900084205897124611594142344491124933893485488195218217928401959299536817454161366866980570733867737595297140291877663633152932080589345442794124767856330939050423444173394084629261155866089495099273620732773791201120838118114848573003774094273105028265378882328061153148781588131232518886570242447633739494156226210185761255897750436986350308908273005914838474102931648688595570251988640711176284254150527255393305427493733715799258457946940230895794888770851951961490837573363799502653496493717157449810058673142447733147070616854590847182704526069016661757869444158060209788757309991830424536486638583083408063518974873891384238491076385059255972728401358392970449430241632248241500054235638803695562353214236544268411524597759970289767567876289809917773591604376255461887402145064687614590601105510329512792363143584473988453762328884439551448594101269074655607649847131359687444925558583649375159510355197197182880982592578122278041665442194476253096709750149960900715784795556924813780389459792907778568294922716840001469051359953345463799626823030706446399948237170693903067345783665236596218232106328403235121424692193221565154189716649200797334588961861370325440489458730626556011131988735081823191077195842463164064629609316388187263172634005289807508429270800858024811331270630497603648995858400065445929443956746712680336650793323538662773992288099467895047293994079776942528039546362150340123862317126786688423757591882838247438824738874493337668150287961437677901166884310172627187412539301133827661022421032866889645506463285324425013719287081911888759628705063141264119822373482793214733620811120095478521215610778353374789282754711296569828384816612003302342045610643242476985185238907338300416104096002776001175865917383034437261309270265924147324505254161360008213683700748569289191863173671944104750543474590664037490251468208501724852606171748573221357020047642991021426046440352800433557074147291275987845473931404796194633020589497700626348009263960295106717159538624170376085626118821670617295492660615823373930197327924283834719014442208358628450901851940289950104216704852592564357849087245751159977420181879993199117144373729715157775576338950690953006891724840265753374390883520880579862925792913171135853180052597360860000298097774896239231455148392436696222389513817802078625949336928656980624641444948694997828283444373355129848857124844446282701974575002743131920699325981985704337947034094570926428478999101503053685775975186022470047455395580608099708898717929926414757022099187255971609467177447012531949129836013870221624408533867246074231011620862278849164056523501392437473998602026298541638275703509040097803346865134830066152170309995773908572847465985804134172513860966757854209904323720305267181733037518439183590116962078734155090575865550529903636391477125900016101060936113309996573912213979767089592908175307353375920172977314973715522052902642039263872319061437693281360422634359653938191161983458201266620541599790346125847018542474028282338960141951181803778852243732989191609128097564576311150143169933380893347806390983909307036256641288084641893694474470690531350526397059081371433466296433431096151104319136207696292770611236781668429980920511415621989501879749496887399680431754344846810254759086142461265824735106558505970787447649729300198180245913768161581763053998989692152299889849479738772178818358252251592390352425147231158466250548056004472252874679627949872394017509086776050018364377925956645807577807923638953871735379222216208515105003250802522479179979501970394498039573685575918340463761340186734392572672165081193261490514747550149277269499327021497700633711680828375448872361057175498609210479204188521491689453235473097646742115810949921761974264322416104083550547894786723126005019195150616457078949741021939473882865927717130506945783137958538737378965344352927949723654501421079397931751332545243159653715157267072707663390784890975638536022378135623537490332686299391532776425429001541421685785524645685354870911723730088032080388426764608270342839381811514328347321601011469879438782728520527485970219935686607641018075945049916480845871223215209624891486356469309244216205874714023942240802147139300741445723491265067434220983253966454189490614874237046305469719034509916829099391835816588996706422931470589494232909428114585578498325831844303098883175679824253286214516486023697846400624697102605023451737528822514895511062610349574989454468494891012700555285328724180754243220065672413369201542165914374577702541617843694502672798828658398561457315664427204607120252771217975445928926491993056278623962241079554845610632751510870224289868249766543560454741538086644754614688560505310835622237609900137756651594924732564134796730519663606656470012309095412005071436206142323908844326487561094373595759873291141689323741304195071099374752447720408219943837361209679656853591367007462115905806318864694983893490123831765348666875829948609681113501916303018942242919515941738318935567192386501595642265916060901928206015602862072113935182742174933329296149441353827705562932492210147321279291365935314084024416583879935732107431179149574572314071780419157341435386422528335981733668158048706126685627708648584006621788395575521382003181743487535158631823346906006757198951479522750276443954802944018917161592996028664787763178580778972950403563980867592436418404640064604410926894662422749757829639904388922808877749285788578904650014358744771308996222410097883486316972880482539952247020709062363024899939016608943621632121658338908171091555082880193150222838929679817171077818942254785545106853007131936041420742779861491115598168790870427572570019973557320881395791757211368441005447386719820711470594096618233216177593752027848665149515833415395528258380299130818917623241907608646821533585751482094547638266982371068166908501654508600486554981455953012486483674010825691973519819198873550404266944718228890896211038044638403550736741350483667404156649140391226942139441416551813180925209731478417197226095439642975734506972317998557617352595562702635788196442779989673312787093741196646530172443435268936345399273913988635482598501051012194768714196473135967097222096424027433985529506307222563709636565284422970844555253384868746008502144873485804635118165700849106196536705016394200237820765808570483756749254973113933757530322385768002244030159936464394574487903199504187485085285767758450642844415397735768128963965392532471109608361493710130073586571067707005416792824004575611048655742226408853623691448006967651281083655437210245040396487893759146172113412598389539684861509354339712972066480510350724824885027004543323807504070181059528066288786985849220748731604542268186677640067294650810892631878058182129935134481298995764330703681074490366627263388467149677303247453332055288767056386724395664331219432172300701494984370645167960459624193726225342407149738232131223238778757055312646358721384361837552450185120082260628561240429075479718734858270338493907173564554829497059020971137967983555013132507041341479440223544590292152094435739577993156057832453404784535100295828543385243396738891986172404513672520914245571782522646545218766651591986758628109973512951876795203539260606091036308945147932720882465678122946035864290233749282598801183913855592271275313875280053002428367794281613914015530527043643435828842639316280016238807087568329487814023798175814417822713978343904473865350079655308625936330299128402890690043940873298646869158527087111801998489402558644026613032098467128057290851320232599385449076466859870788591523478066489489668347476976618558359112485808456088210642141267428420886514297626119468284846722667273997391490349753530102709691432572904845479962237924786707152785220379609735905374989715931114399067219862718542153130841194600674809344229146786038373017092037765413591870029211894493270141547736147643231613047369918126621941278778401543425717844592790146305683270329695807193878433670386612138590365251232191653463688407160434750530207520497796545245548869369375647054644751592440822085244863543789920973177002886718702213470848326241287935664087845163836121345796057851598371595688034270837567948979448460711507371654206089876787518531270217836221755307320161246277715338182441750389902803714697889965342999545369156733192251461377311950408310237693396065862748721464377087900345937440904742429137713646249129563221062505261030011957364081539429532978743224432588843988917390203438341582420380863219689150314058601947976672140571576298023199838295897152953429299843055942764888643568809429549861029222353675612664677965058934029745298877169460217581935131729603598160535374708448177979574243614063142149956276314264401537831016409479502860446449906659781006110541144739553877926954012453197208732596651157654233678923323060815645632447426722131840235554231950366588573155306689379505814404820957788274200528885486157680873448489291897069585558502069255257885249667713854577296307631439882779152005918037316688033406172337082676476003563388198066670796961005219539766427998824784017597666097044478061894758144849761565171672312348627736438747988832293169799429230744390495946722480501504319487687592841175731983853370930468295932616931100011042894611676077632716459743305204496774426027465518017672671294421317848203286644037586668527944035763301888782581068584492648992415516067794733883573849065178454914424322831172836215809356827927524488260184078375182341210614456311006948109609487123154617653628614438377616770196719977822825121455848970696473764785263014413144879582451153942031279201424034455768707381947484329306212120150574028085650454705672332766399787835617376381639267882123751926651099734747260073923420979449615971672374654006871807438921647416746482762812699879056883710430938994634556975985727988097232975475292921798629156435259990082237550088936725610312291219312233517141000973552796945999477699838624522723423904000439544609201889297980321376132188259370837279291617905027116644535750303124144060127060951461767040354545750985440703148826364918158408126187765537361663967320562609727326438161925046447070310215140031815554725765729356164447478567287367571275680456726923037718135848573735052279491337241096592628715183563688577814282290879796729686693727068711576008761834537869430822606388989337797919566162795718089881895245822316253425046044005490073463369927187016725537527885992331589644785494051463816721367313436687553559685430881442203817688547752676710791797171046197335427443257771878342112473502969818271646182030143888606170778485593618239002115710663569271294858921347799651713280072986884035134191384007477579282363288548636007197027395017287533817571296642643742574789460690826681923461849073856448137393334864460113665044177249638218975961564023795301943526178299114556462914984589912249518129875713666965929490302454346367762450642601242365642606518965603318349566555809518821217306542149096655955308528973444092966083035601818941195258717234213379385072654271654669623545877315843008212549497739972879197658054914143079169623313881813908224646485366164924415673124078592035458049207308542325573535022928285836615926974399648234829288956771083007846447185508239426783822113745871132714951689127883050294891189467657597058422943237277825842247809201712066664488355805800933878295621185021455179606682758034122501187609852736699521554724056662216194551091520479923042063555027135618262861156719765602076426749365686960687192916910846582014176168861004304263937476497495909838057017627461685863089325972715235450810355722676325847141196350581319645242062155717572134930794709894553025600723975608930646833617296324971318467628558715874028100966206627520570094598744184809093729187795370660655555104690680485512675118059894407746942776387160627623296354722450331199931098358074378397273527641728516674815208288055573097444206909307843443706389422280249294513630739945902257974652169859181148581974175085658409578229472916425574001267918828666116842426826244333886694989531950270150235920721273403121268133311770801394586539979157638176397793103223679261827768492359944262274966171916054536147485234730421802046358875852456502190214484357895897113792572077490213411777298068257782432796707680636254602237222574386693841888499077676882465289963927026966226548953608042896908503715698671323386605737835605206968666106549717676205295446296673252894001682713445375787775304622245607458623043086009633040982885226994931857885009037925785340750266506910197352855794083354129732226787760257761956840560788304694802679538587894187517186863087447251673920716787427522609128430249045148206860753750912180008217597834158619866323646003334505022169206828574605034769356422489623523733394704113626467990503484736701489218604436279317592392530621593110473967389696662879845614610879793278460434754305150984955431454410369962713102908505101777876537926669477582807058120060817268736507624591419830611978229176371989608110809026070276217610153291356928196703203467851241874107923714120776809682408123455836345011404778864566752617171708935521534006784882843278267011112938022867082863702225139117111627760851332015209441703789158146449396316448429826866369722790525748178765959808671101342645616191549082169634215129023097916188279680610669094115081317466653051635122570194960087533258877969788511500888120536251892463851977180045541508703246072710768604237605228022884835177358835873205918545878252976093231362649532872578434701242149237035991784934472378556952295910949645908786971973188270637835941007960864687877448978576258976297122516010139587774918706554726625353412429262736761379343474033768102096492738785060566335195717750749551140376688148359977931641248949844280475864831824455555764999770642401045519028498499662855600833410147146422817560731939354568835270992761899411935157049496462361381609604378530929740695721781420964626434331690795292983214513839094573085644577631152914781546885406240893789691735696168568641459383124437983692680761093863268371650397566486210284265004732541057837972176946781252971503808921581218299394765513274986462078759693680912867020353220629558929379126186746029158334659336915270449976814100112007945704673309670792807001993704875004188896667036566740145269951818993891593664122394788955802212880202789851368425964478257479242611916495869442244951959657268521996031611974709683981799502493751140941216810328115747073881900253847002258795405460634871670988070763687044670895502094878726863591522352337461515486490885278069223739141670036167096037535079582638726472580294789944531385615586754976811260247272500419664375610449637049984277801923026454536243498523768753910286026364880325640633113262729322460059089776703924653619934367631376664238957889068768875418940888681189388409183094784494420079479358562373041245844651285278045269844800322402522609378146417975791502530854652078173847984767653823042585768487862965958985092082361142412213432743783350586750697493602106863555949847963094938480580012919521406300973552000811516129154286955282068576356411866528138527626948098956084944850198889368287285915887122234978438216786839611275584698248922790605327263608174108835992282669455775074216363269421939723495039438059146765067516088050923380252540850814501780494315745183865040368395318470414798014005027057905918932811895699407864959665839214556570979345830631926004503317081955979294081145934991900271025393282827754739591469034329114722767258919216052140079056034356892614143058733016829070445918435131479446400124901060107751604223887901017268256397663358545150773969713846297119204662957424319811574604260135141629274009752920358640345161241729348356195047744502434703470986332073601030089696053371271864486100693991925525313534869364310043020327611941413913333163728404856550198043853369086680039981067053391116119189136416277981490170194320425771381732191438203688979446901340951569597197220531288484556250490183178893005373069253053683684592531599303127606993655628064959144011886153620603656439876834529661662248158821076746486824996520904979099753044372336480209051522799466701278415866533213074563106877448677504809244875820278576688764126898722977373380755378359211342377801099700183883961609756293477250939446631746776437990970926736795883799001864942806572169292408768791016533891572617841713641313106925195719496461564028215809474233902831023579876419189892354127790056604979331910596831638816070414771330599848122712584723031778554932472125249721671667263088177076685419516682402962420701494220795019702628909329723062974820870626147364313540890073803058576117054768780509032008716226602655142225618446028990362902909570928908295919903505822811795603418343547094764910417800606843722098868967475256076446097881705396502879867680348740931976151944052083747858448570693226514899580000202784361999755919647854533184597260692275127265974159783761091403371295213856255836139638430822798148615332053978995807977831558131516934841070511197845186948975232603111625567707612631092873153884677444537503696062604320011824861944163112793239878739892993341402322598799630151269246444836653858223233423895599455776057645305855802625291877170030606563368626191127562082036255208820359645131246452764359663055452203670245580803870781690843639932787771919372360780879354796361760765737413980965599267990699950667078203154559318252898973422365234459762629437922626962967452261774009278929527412560425623783919488253502990076912982176136901599685592662248984134023376579669574001859288117076569826731052759821367015864503573886413527123617932242907696009218619532702325443354121733061057318711400350791517557974517583926936196384769301260801692500111065681205745790946955392972042326332867119122935896214632685955619717274347278177135388882840627414363749927337530053920696988438763397775794754133658660058600161043436335611564942751689347181246707019363342109352694118416841494863676105309051141746456948506917510388262277971448654115412299537398719093269104868153361444073338119950619275205821841587463460392677805917466200789466359871058022372835522461431033031263397856892613132498957676173973898182703345807706227344494944301666682198111481645323143177716693861419658299142580391209594055092113949966531195598559458174383072384719042578876034378402930315808202046529426547064330011148296033136828149304581310497855859213736267925123558762609759558045601661611798848484040048517354546901558464284798342519965660644504204227276908803025030577995689390624108416688133510093181886193247812587498983173721011395044596754611612947388600100857731050155398123671281925869134375317460017514317124830162878940646139217901339426386621040065819989625281192656490623912150217105814846710257365849140611582484149185863434822515444679709362650785365816956769582883535563457987420228450995315047787518800531987641372318720586211380700265095996434062707798017230654558293677476270609980276208128437172732135989733696464265331995578686972524017530016021123722764123977332915809816616007679872946604844948682935536047217280912325604110372065114952185187450811980659834328581612578584671225867167311815904388946700664490958617398284745691366024142990874036538355464642539245979879799435844152448346166602009633228898849399816593205563639397562263657464383426152087876749130927173277666611977568022014972999495752854985641183068373542418894331927693402745139363509444094483191868061728475177933833599141585880359049166451906190012775230722670919913790548237001188704379209396863379355122871806201534756413748312643396584592425743335984818647099391215826048439832836013462984963470864780760003918589652664535386719506584779804641923127991712947247092765004065067086793068837852090248722961609141691245320178944111364938477963807937542786927916521370438565211619956804789927388474784323043299853136953454448927032178399108083470003458948410235594507966206983789723085886942015708278842905108766895697212381714580056677222219797164522225858354900628491934850218969387426536716462972498614206534099444413917090314010322376445873537249773485788813666827145166377279190227825119380222077304292482086864938465199774263921697336277341380796309051661345840985059272384978480441436064996672952846146868099115291366458229125702823819870884062616439868038579105903391286079490246265379198422670114030611711558748264558364178822492048508513073122384203863782079887261412916135024330520175076917527151578964071642421534094440963977095721772034116546986404728429529142774541209080881522811652676603228834332228637377434889764321554274593317553927428583308990298698152941067615035763622523018859609166144634914028688795935248362996980113072231592298987793452760966811766971958236168534327115515398937785792709839399919892857729431891930129071055247860244594952107722039858779562443184589519507762922688468640185195457150320256043876554584056406402395812963087567514477486913248848581153843057293479964451914777186641440481633631475874788961878964091938059331796437240552247764685492022969770297316330917031679794035590128530875552031803636600103142532282967324663060549894411296615935975141045265945811415031431918086002097489433790474781671814510165018139548740034095814171670399651605682264186274532358883000917278157856634710714977387332734129963896552006819046252290726242139081217815150273488971021385423262383414802773255382571457070469559854225772974048038245947605549949629763232665745837187385620241202445460223328498701619254400525017729310634478998355289917953651089928217015613528366339709305191056701058501353178177350569155654554012175063977153990582472865826670259619025922962363837037069767573888784731103609125974813227207253464746316389386067939028733946097378185956755887823307155162680123214121295646551200581797693737952309879101227671960057694252161880556801411075042954562688848987103132663717620638972041922166184666249129356262439491214565687886425940900017958388289423964845410330106803319199774371359655824094405901850420606806578628169694249620659697861698864783856475856056178502832560649648350299964474770173336347338018461566426189240350893118767262228699732390072956696766050531473825868220272705554959868353465835762303511468188065002991989111410384123226144343111268472820134087311981573685120854733464448233154984159241002884412059204036962998780473317913380519954541889757594027668549533722418963362220364027003814123448769262005359839583215293831750690084560227070844990671311671126986880023042492009726694166254796211737085356223029708867974257163004491005764018601657600095572473167418517366428184296223158776773722478851841386578615914287478871543572007529808856378671344079854315645254533448415649273243037393224571696622779405551892144106864917041531786115325008253471189361025043635051408856203185905896830120838142919666532580979952892372642113273471617979868788697392997378603190795945582189041527833881856599429616326102664507655980393063421496750096711059562058635351741811986022510910344867585627304273018663001961868660236757090246272241411765777203648011911607149000083734995103978044738474818297254315181765086575879686489046581360926383438447626407236154823049112042372478405419530016496590051013695438544788944744684163828195957483900639502582785499508109701600683038882619164745815781224293462897001246376700913032573111871358794429687731375270273607796631009196792651637588122550630158675146485457572250126890917141253474615516295852701686420916903887635654568904662937104175590271389612083525877165762358686894177588705878625265534080698642915533766002794088430593041444689958089924260515369323902905408950303754734917958745233402467460773709817446330839495746731605472714347695298364906989713983367152056152957047246525801720014331821919128666811905622771646173554681747022380694674148973815651482933438066727914941772413835745507556052174714701600878574635689482340442948738460835147476919588325346240043197873042663519828338322984597866670330656302462996531041654529434913814447843369112058633355836495612129745022360212966691757437401625747467807636246003553752621080906213749275042199222988093567300840287322438938180569441551271661781766390306809679998892671434566386911293516422606858267773691212494733259202549467038512250047385223730570522149868070094958384942333074774289326632083459398363292106277298213645216799751544821681155139746638486585826855616873737852752706701261823970882178117361825513140981941877003094602070904139135265499178621151664023547199148133054289785744138224578820271211150623591002164835711542415429266431010921912034749836415345071035680686732571429099438704837662340733197265213521445687804159746161324062287799952276751186614872280736986709040247108548287807611965660541117659129702251025175397110421437001874213391073632188993468540667804528447323215884287061296470733826240436636316688361378958974267753007661928665085475664226114238115495129529826966158080668366454738616556656015504079330666674631757080697490265708108700287510465852445940400509871782185184901296027789480438627556418658712967603021532065707253384203061901537756218263754826648011286768970640380103395080529357450710456774610944442400723160620366657681393483565395059138426940300172116510371255974170998688235019052100795599527033873416161204982132957609194422913459299691051339799526882557184524423725791004734071078995183902512802210923610809220743974266010363600425596095929039274937975793675894780113888564671113303575703156700612499614024869957411051718251274675058130224172419611000393299298191802360058118160329638566283563307614127116572132359054771327680854230776709599986144891890911342794131191701973551132911947869616876724197800924458735147566761639900030461352433170789770922566251891531781023589154297266202906090487756466473081370143268251530552597219757403724940195504434182251298818345025429439697459219903199363519947953850241095763899661478694078369309733239310284300620546488550352314572547720309718426326100351666226499296865860981761227589637360164770363642249944343580316779818935564326732293653675608140948739452370306941082043442253074085942311915742457176942896116879868645382512041171489551612728309676727803129012971522759748442084830072049337567157199088710040478713304941255391415638079984243237517754624274337828294367929536549692978727709151317917426541388797067722771805983615917976234403133339902102317040628487020486476989389236838144312864366181025170387233497856144526558043703976136195221078904135410912219183354137653785153309736447450348466895837431755521829294058148437519468712732383718488327566676379298966009921640774782968798806683297156028556420705313161507901494502130140112767062825326816676715760404329372835483894357013725901036618104625457613669032095600808872469240879485799260710099006988365532589274729937546451443505944256412418356023940338387139888540816438835179284040542682155805629202986239804089107661183091217615707652836375141949696616609711516575602522993928763157725505668779879401714422627887481230870156655950773387154755731425074941351031289646375079667194009761081305580722168739660287447886734386120157317661618961782406147419847946380354768422266248534370404937102162632836052360466186664795141744856664057283033306102671881516000149978975303125569497114715732415005721738440926168033878550638709800126614127021515531367565181256232879128203412445963308111922901433316756851930428731331466258152417433705791324743169206779973576247993494860953377720584751846256330521395322394041539135950385933327937322465133497633161809734177489342848386540473356299174178382383570162709387186873569196287119024270917861227503922489090340609156739660048252307249923257846961256983910834793831253825194419053606876104840323817833188190576420907883169016927818005833943646287728047435040952292362028833449587521675219107671760638421127495788720096762967406429260315987982922531748786478959377678674716951858218980440901256312710349697202266028885661955193861847060017391221821192666931489549623966030452278211019899012238764140520582210011111437569752705034549847147192184502839308387045494884702365824844934264276217055331869114836864091058533936602047676113312264091581853181488447405456352157220804926200066846040265369662446916688379674494989703243576778896089527186729627574596321556930418976113617945225269991397595343247708248630760815693366739248281514100943698778289241620422244294966560397593193887578983681304864742308218285938538292954418379850057454459044388937549837475364478728198317482873739328113055007161148480157892189643374333121596499422627455761261105646312577533015956477870827507623486900721910184094749899861910453742601292717902239748491465842267875306359338446502931551924281910634389353095972187191714734596761004200257107805991128822174886711954558514729108725487172302055788152868841144184777325662625358881900240657440973598619781823682458857787916870744164697494118942506893264497441365233320307969942543902416487576124736208716660743074102240057345182847511240055648505743189864153887030404772300112439787621853951230895453715611184501430607265228047940394739140402278112295926840337426030487920775103723101200143319057728379069729451134890280326845530422055380161996572857526072589096254164701045621186705941280390462821672984886935291921082976163683821714878117061537764466629829960347596795795762426363007922915624223511477957794096682281667369139405318150120056300623318182627555077634855063895331086649402412080295082241122080263477154455882750643297834643595964289982329696106740361002306311743718874019646610984102897531112849402927973389032882631399745351808487201848438393724407286751996037164365726215334420457143964669542114948979582262947249754297321072781364978523733308599085959858274453112430375896752589769568967978594684628198736087036614602694114687960451128955104820761797162295278511680334509719642645566368745822054292540041641094784037081250703815356230791503305548772005961296437665793423662575691551393295600340620839598146939105182983598030522333937777001263227216153949800815571183858343482357514478326499448743369288928347641058999077256517547530603827475379609036142011627862005078550790274910414495892308002741032850731067314807138881938964432842331051171659720233662136600692136036949206978712482063185826746131195192082975639135701242721909252516506021303406322109099694784110100923538437888193658017245768507983564328742507308277434160558788364935332927286361923104720722207826827828427396591065144109229858865763776775115256851417513815086070206752338267093605913223757620537700147301543643761447561290598071905237988726266891181459349950506946449620352523465014414002338190167490358820605010786046707106879516007687445861865200704320455756666713219398031567716488915281585532954764886089654316456231384570742550817790855021284109406406971483721676769085652326434527303833642526531065237099675547562475354307784891299006011518602171948801449364599843248426636963448060211024709721762327562411867980247856620151105639253442720681342382690433680364295751192919211211589333592255316536753318648296284956219405075700976443142708712974230962923508003080426258110679655499776215632576767314134943656698665508637357469271430768265806359520821377854193685985423450099305378296269570728827702619597518996454733110146009094349098865793129251307464579121490837507680851515274148453157796114270290914397136127578504193945915523930570879529594884990523219774742365299740324505839621512122067034096104568382895153187588588520281769158431130436298199970264745646540096766450241424310871643968179205211230704395997247073305253204952779975410243836913860241385537841063033333074503219623315718391222845663246875873924982147792337452585861827895887303254710377740897902427110861186349887069442195097930938160595876542747407131765426087233359585300540114420179357185749502515181451770808214162280940303109897463139792985984178145730303085840085254757807845078940764730135217649874614823060471935268881252931208244075125388504021229543830070477538954053205295865801870890816960206035332908137798687358761253195294635900718060149983629057135904987051171784002096640133026831803428506078399711534399291298433964823661162036629031360351764350013680273046019609864900907072264011098007391928224728038546801502799920673711168821024765905782874989633692758928421220654885660343271944052237014741901010774369536817215990871405458789808989001439793932162708536684316032010264211389676742918399808213069036797273851337795609757503357171984379392891546804207018735711415217318748913599218895761082135841554240603695098965903845879289443508798527585785273807101982586304595134111180643238082026995459528061607196740145135265757156746292422384589043536095367053155701843102262542850996866538646758350865988712647161211951720246725618840240519070197987995239339390744579814908554181263865714108927122305370093225791225140672624347156441992484114942704900798473981105449717850538712937904007477384445109811441978521697854981237210938335488699504038941105492164428680318621585512648424996551788726305898295361251094623073038120055342215615588107464084769641571778047271176829671201891214690757221612090118786313102466749691564175244294776324405286741853239966787039573174459005124295617038144482689883029990732887868226751989638212050378143488800122821573958695209169152908279936851573425475875810654129159837929406089815910827674925591174049554640061492349460817048345101963989945604180174724418496463926216731712147131378923148697279408768330358262225263322051817470900548380406730922927653403612037540687776521532347156180130639210596124128311129881505317332033161376969517001990228654561676075901386777816844865025081785436799759738973124840521033855968515682155281362613658436685186894133637203625905686991948401951333682275412845096601203376985495536698594600622494144365106553900089568796366887809745730812125128165739930713732283981826094205856980242504045312044089204896460685885271933776220112914068379759749563362818291538632309487079411719023167475878507981851134034401851768147930965159076577316228560909108430630747093943556455107586579459765865662899614326206372337291837551141668907553644864785692152140407683529771553785126007886225960215615501930706981280782072547052740326391592679005798082054230810016583242859113702900220858271107988629884061620833473789708098414618132978647906851748999935655798938841251330405344362868556469016886219323182059201014537495472179392302578098802941085951356899236085327814842237042485790787553894007512424307908246758914899341902959569294311340955962067595748520267205502494191014945949070646157108549260991956905703231461598608706955470636602660406266095163778230972980718639014520885825750613913894220085663042397424027957300816528421093272600488020303257772327776199443952104362752323510119991393032936636781791212664987144572175248637468493031090652328793838019169806636235172935803008035885708960546510682732359226197094925662332432183937090010038701216733544375090732593700120024444730550714486661474327539846242425499484215422803119624808553389395402770646233601265443303419674608441892500508865625198773883858567554270837805355318627572915155797376334637674214044108679023532411535594209354264266223024564422126764887800002932964473654205979202041185273928949219532397477182935618309567011486233955792477003731492843360383616295917793322818541215580146453056903982615668010272158162848696097898243346496807724462228895455010173124437017756622587641487830960030282314104991077673065773887093511606225716896293955486362483991470117706153346748381513197265436991696295280254955325546245577083538071269319090699775169123760114020195942732962527537441702645809398564020592795841168804027247793761227003947943138393009374069390710556997468450940174396639821350628989430260200329386712428992413443123084640453482172288465878620178593555866046831473374725277179239951068327152578707970283863789432242173893571674681158577886099457231296071070899360571747016677896259061014612881959092762994102834400501458837480717677498525509986361597517673158683192245490217888407040527749560967861606613313846838067063448037820605355810384264685203466642712569429994351041860992363449679039440441256504172863880346743483606595015623508739376204227860231210035801908393888003575361310016216734416384198604414473820129072258246123435194230517408492701656791816891091175797731412965460684557777858794703801230333067852924199040441595111823765245940567614598639804378945666510279386068047457178244434543506868138809854905544550329457979499566579752511606415605270178072890541857930651358591298819046395924187355244887250474966281881873967937006763174898474847876061617029898558608712188668462015766613307867225056900310070715741740923242248585370399565535258514818039909002463361984322395104599566646148390834479295700847647138499094276440356374684358759384033009471834595459701823582999979550298573504769206227448569493357992357240202800480096334242796276974027534929664980387400405616006662937827126580839486104637740627489330071006045513107438683832261778250201379442281292737176579145428373666891273313633055541321922395513067919209434840165302699207885231846736784871299233903848133042422149936155283449536873432048856323447313348414902342899333890972541874524949989001727934443399043076782606628624057434180833418800517910288107206278037447526221539004248465484379419957954442611289049990283935782794627925045718593518865744089739881453574445949890555127534491261742494492643439781134601376884493195836045229768696606390243704789308219006312652734440948447074336069928527987473424912049967656321999187384201834213575365394314850764444945218180061401179331864395717552635288644795386583328220403166660301018619088790266780517320026433828589198516431638828306657227707456161442890541818521775332097883733863948783669435534317664369271879511540919880100013777797960175536985036924438307488669954365293014820487796095915669957129501745670307715023914057212259158136492200828527046650476826962070919929954864247067460489229525915317224424243345118678978180837158683002218036903819318215569620362425121083349951279604913861906334451409853745330847442310940762024720242000622820172704437194624816036633264781519162518030798633196156537743653899149541866113111255134308136708964412917718006083898804276503320920577596655168118207024649891752041649563069351750559963023700206848911044442774435951959550102398531459467295104000932552495043233825719629848271666673870993156572031123024936422602742748853574511393159909172869653562583330334245517237763235438558218046045677472731148254324606251906865156949745244098648025003577443329968222154281143066250630157765702038857222312809203891665709054245883822972873788923419990255134278312734512623575980959271122001709450073589742577437220672292211784160016425168275313317954180378606933075975314242822597020632692182713594622113829878799445100919075514737311116692233937604218347667996733211738529726347664272819670682462402918756995956560312972305684735202968848949690994902886390744358825111548815346910292481157531436028587023716071650348016068876232223283059003436397660990120159679912754769588684457545443626459029801267740092715827953234688001243225604403143284643822566662137916988344925999038304216701482184607179829956955863487208646770057812976207580288612289337417391514520318508448815133405451839501430818425423983489195293075297007091632831835817639168982843548736035623362295947930464948176583215059036687314730832785551602561089163334026846994679224217842276077846356574704474774746466885784523079299900130645998306418188080566732079268517919234588605436419370477178915005557324072622367591835519901167622735984503189373144872996307607640730314572463118679837969176481810284530752972610595605116321517210109073584778311855065050391841337681009261346464429675058428375205908931444943064222846672491505297366088065610154187486318270734611125676088739728647063941834756713223527669794417466294967828853591585631323062853164485309553987755871849427319351576371987275500805946011000761858109851397198058304933930964966605256598339082749758700047396198725629443819472184254356034437834679945659689133976723310565002996360641148639412091799958760559136446949013875583645957608819496479819980890884753860401081101413635114280369331100873028773262005850039136674988193315669833808700367965726548854692436988772570765647008485193528861629081952685066320865954474263016348315803526003485745577678003275621669134944903174442211432434212417432006408967093447668700823686784937216441352307195585560522716789399741647299940887719165300163182589348493720409432439760090840672046970479267582809388931999360213297967055822956580204606739411522162506399643207112022662441327753136285448648973932440128349351129502785764805693060071238659792796475448028894633288702692369508202511453895335107922148735844622824917301794240768562229438610529778349720886940984237636010073937461164832444025404626418339980246956443305112399886411453221379776962373591102132976763134637626329505069991633900614675912347990937931589628886803366390273977826027117371364853413549669980129912787278362914958923760804000684435028241136010033741803440938690413247832556973981552254689296333632611349931615778647477808742797843662313332383012998468489021650411791293012178971566069839186782126039248195172009162507442855987480147909097785741289408619091234088935022089487438543648606774001885264332252797357530764325664725066762593735146597794500254808479905736321704424749096119286845098783326110781661174482825194518829009039399216031044169534979566487662775535496781979424085032833143466425394172276105501563863987331818929925593774518785580146994871666528007210064454788161170977974991832226004667437206616872064982406554442945340546201965151125007853467232990947999754796065478186028447634155006480391434951782780767042514394447996304540404241045850713252964097961746816574808332310304107383859774816405190582558849789382094441434122271610453227054826234031387844614697067546472080731402345532748743907172203418734897890254866541284158364633666654363833449546430416518238101963505167294099137964178512591207552949796522045555804949808953901021466623751664611132704835606543841964609128495709375769523731317172827482310132663108503784320353090288570313261238932591992944161867077439717436679349096651303268657990322916897101974844583198929131725709239258281809444179196713277424565326862884010184229910034186110748044250793027261842274445792549239013203444599236124585592290834817688588163301754971502963938914229804328577160465125359711892195741471663253046528777280655100130986621347592276212968905289256234477444726981614161319047192654484728034876700680970773753858083771636423188836170241128051706737395427238108180416048965151137115814114924034713677657333192541027110500877875380565407022802747731256194923606920487113507812903295738785303372210004282317140306570748259138748249784658412481097238688883604243960387894000479056511347017336935032670477149264786363798113590225574288778220974068367221718588702768780300907664144149121500149214643311006055933407839888077079559521140905620205362779469992414003789057895050188348138898290784028892096503847001806611058189113600599347366330159946976349571963574282035160218127432763390870945776857025351270974156071919621596290399876757996126207209605083870530187681362881983417262032255370636374194770998321457298854613135391615246730552877722073705683821197296168945611656843015239225589373707261702633612542437852632405467648261798319750194452443467705809786317296444116661372380439891373354409989671639639344832232732791569416280375459219419202686051786442035884800479175658662256642075739195565470233193135650356972559527942840569624486762197044053504309695060265515384474481754914630276205702995809506757297828725811514947673470724943740500780945746152750230232292277490353759177967591894371205825776303530634494226479916171528587073117229785205656337055236925227879671325566330263088257605940462718247486181644601365507087651563101571959084555185455199600832189756818498323060980441732711240421355646897856866204642556416565231715441237312366056260032302769477172327257193944440075506697495008136059246166878865257121402013866260578071049504750116008485755455562362492412617218767598751586375856251801162340013976693554221602750515325250295423491864933483363722485314886331517777519548522650092063026368904212694063933260888596692789632825214487973682482679311772222460450264432392461965357831178909137099587953747048421551204777451728755776925412567816433378771456072079750588079293135843195632031348373028760111747519964522140424628684767439785544471343018881339538042919042690487092820862534979743547954929426668012647483743304613550174801453032606740163247425612510072465020861327403959694141772275152659473045874874858850354934944586064563776535051494164190940760789935243316340592065867809841193501836203288619931244777712040428202048320123208545294536271784541957532178952729176997390944860038305551264607985686935832072074904579664413107023093871702235602222264089349120907560055138887974472955769409852335495708293038544915051272356174964406864074497049167294441033815821483064955506972984621375709297184448433320166559072167309886231260696227017179698712363402962701095149518550471366302726058314411499689800900977438166970207632208133882340416459812603723273589207179913920883187448548597911423235424668657469881708735258874311142260891105561577945871305246563735827708887601494547250771610144837452893569505918867959607346052572635713161371724957847891691248875007354642701449048030525082073364810330688713958148077384054502442499265230809790306924134053266615044082167448455094863226251983488063933536620994918451871434272120404929836859953103549754610234684549151462062041579842979817084192876767403415730901429489126123071592999196865065670067207301126250831205692020852662243928867594294289015552150814837426810164691923260461439162927066133395402006180908790908737023817229770593351129927164188801029685679638755397476410996542589522872882119554723041231318302069165979834343455459007537779071097969065390395125159103469683263402947245955779453371063019005581886365706270913098858864952605557684182736171120107897341361975122542928702227064787441978888121880031079143140739527675673022248880898641762034898101668796285331946990555016586670021448322763292351231471694549324958391504724696571048273582183799303654112706706362780705374377011212776481867722512128435877849204215300608673797341711715083133131685518662562021004015814389837004067772569735346779863169059891178521614019442697829000804739541302649281354770433817815518708430701175215215129084842895240121331444869343689106969577163544426855009265483544721303789366078829565498998437200868265502727015805462824663158897439914040547105894472858672627776922907721915583344115282947262263579237991066497068292357438031861195881495345898721284483226066164434479209667637025443586107342396607522693461577623923337623220633915863823589794921860630557769199898058350699675043688348607793228544533590716574043004969458803696855873670851620758355572431123616052424984292717049483837395626958019075751422556385896919464377077019742848356954882530829003053043951311010351579755606391725131486804258361643883145865483769048589005760954518124400937451204690144018638719596259347935992405449706932370472015109344617236343154162213171739997571195937399808248545043511114148882727464009099157762736051599978963588235509167969263261913586017558627064363564900802101873736440977239200967755660938320815725201435547113971231688397384637795802160994800520449221568734541875525122421452686644724941943154898098746707904156854120553354911457946802210045663852179062109197569844193834458928927661434846975162421455990056049617518760042150506579431727987085862978232547461595881259069665080766511022669013625522810592288628547074532171700011892803352561844457225020051472788713216866043597202027654732056714821666184245723222383219591788373530643877612820886752934045811727228358994001838536015723428898611403637288303528602934709530732668490044474498688257604402574311251424000079047786504651760757582380726464813616470703157291412324080008233405645656611938062424370617015502135194158454235939569503370618907221593391118747099169857266427213573744000590747528874506353214286734327803147139397105561491748862144474370428697609163147700858718863493617186123896855072295091059128645810662878983678138036921419093182271637750099252741682354426298088339776872834250520001973394672770673845829214903741654799285935823428154172606485506632913974243846049698953416536741272860535557136234969473189674893065878631525201949919694940741856052675341478786933169187698168987264381736603935557993201482700290899470616608397462652140806149866885853324432015192750598179192480303588151101597580128600603128681254063989539795857014572640486713074572834233656616921039503322505066930005544754611276944992463992901013774103340826678991715870528625206147258255767602144243175998524793035459811508457811415825788118740469611421909201839507792339956114250736319256074737503947035767963335272195157807273069434310265942641043479740208616014070084533714190095688757415746372575033934090050236256945762694188031766977153130006692735085828546368281549390197256160331754962295754013696104643217191316307036867049667828918121624613192264974659383620891784424273783856070109983368169888362020743572844126923322483510623710730430635198844205878162140472766114782958428683634944709592385238733941690178532355278064175008866503988880976513886669841244421029858807553506203094647575489904282227995783362655910928515409240567620087762753254894873153885105681549695981820550838588390553519085123744539783040685614952066065898111567890623579832625768349443884219797566999890918286218517444707519014004825263779768627824914568185290749358185869628221568057005780217608045254030039371450697776844292724085742721588349317043889078518420124127311814603925781105595507628680281464853470556259397415209121885953301325659925949675741567708224972080568584586922389420572981108422266703178895579444708076343005077737046236283293011527600139793782246275984019659328932444464373493494813718434404658045584337135402606131014042740935574307108330152144341848372389737286728082906328016166987287401570644256967008476265137097266424509743109191076385799285410072664125001788510752571913075986755323263580798311892477413118560793769029322491290263015233446939891911117474103663347149713730928554969868598662029008857798519771524036928537013622457045919501818600115961330142342024053618152212132980297993920898834579396811913739369408772591364973757179240922848566785387912985663877430957427097359877412982642043661990786505097280489261512054365409100459901614323590464755458933616825473434656904292355877829774929879816008462986652918853593478929507735892138192474436197289744725734737460338952772885735290709488659763639264633375033726815439664372280157036113690364939365090850141728890528940230787125075807984019034108316497501172278325111463044970441934067974664775964330968290000731728095115131084556907858203370372493157416333141067149059349184172245037192944252354346530069915577268708764381137475077405322527975858225498054908332431321020457553267055298421271107988377206876963306687216801900766503104184567478116809914854818813580817798490852634233624126343906744520631782803420062147321727451368431899154991291914281852037018329485565112612396677158260437896147072422622468097245970254884850214316857944073654938584528965504475769137649485909791893769342541644985449435494679894530978842426460334261661185888035179802172012702963368253707586494338357594992259405953135571928900437175485131647431301706808550365989103293814341346093577447951652218375535521901142397263302468559235008416779802055782752116334285627908057578187926297507072002684863913121590689574719052159177449559640744700118932293501864940261348234170063792891644123697419757300204217799932270456693219017944353346078313869173688461688041774955243525973689797231112767016462205977296729306908020760126661914407426404185237072378127357756187864763556331314012777628355770692569259860405043535568643137422954421486607069193875412312360196153035496529245626666119969031682490812942736849945000345343148471088139622518853879486800265106987008662045801814747195298489446608662534569147843174867251917237107893375186568022553405597160948199898573939544449892198218697277866333387387787812356467561372409057341697883547854501529055742940115631557147233714021899769649016952149607440075063987466406451401875776310095848324036451742649427444828783264420465792153786371786504992039900068550045889236980195975116063318031641651845947241007101770426915573620239244148986271731512510434739576758300751514190925775306177657604467134424597717013463761838845048992794671417779851475446090241101102075316257572347206212223736660160725981285867413448750023760208656754297737445222643506613302671810513162043907357715252941622232516426426395522513705847568451720817310921270227540714604726924209376166826752881207041363004177504418941614704400862829424870284893863299989025714992759808757739719851622575606473944421960778843304793497528959819778443279834526774844443126245331511100637941289026124859206133291991902973834683847882878495458254093627072051722785670342560909400838003122247428701989463038009664401623338412543799967031753604517317627859970475758038500014536453082522027336449618475900884599523985423243706926854234341236247828680306315664702686624391761611181073275278474859126086854297764885544081562369485307534566336599520433742024952666226550161683136133212793655241872119085032249691812046900048821745096411143709747351360368486663504177748243023584273441823988000997445838233246101693402459565947896952703525382475716755412433612763973466532641714863895242739308631352249701396648329528976727556497883618956494085166950882662309681551080610620089736095445139356400330155792522127838773792266496859012854821422249316493587052178293299155975938166169973256638773770126955807489987670677367642948915462068650406916564829034063269588240038126948194883508450405876784955668632429366940661581024204381304858621648224623880813930336958684758356853652132057805094023866885654579500723563847273081596533559559397751011704094987319465479334231109440184756442848840882647919231634240037448821348571877855653778278452520156515581120624561294618968078087002394466855683665888370912672378614236662505658590055941007239927674743228327950980415515742302091417148143637317575946550719663836571133911445288534139036416061085766605208806133801679823259356318745925602627103336559360394978354479699094281180160670377028448827478950014766411622662590507458695884631576278381361662826113416553042468657988166808246975015163177480214394165269838820001854367527712914361359771220080609928646804743249511502264407775417751607778476021241225654056599004835931677712515002805815769270313771552839689799328662761017841759052968258925805442089765734357085273111044327184899819327305734519370479215663429518840302473323600344004417504550020513262942886181049211963334646910794092220490492640785014515800180430610069982131473315392634389122185312395752049407996102041637052739294750263226837046845697235386462445214261234388855649174655154761855010474533412879050433233862606479317411231771598650434215308571924788515892164576559801874906959466211596726184933541735190530024376738637276330319023398875396783123234935169858853952418340995511437097108088962893690404179870562919283156341668160368298016914705656457587919521414856004330382116452248260858431703157198759502874616742372983211625939109627417418673238710803711142541716559005842159420236421645989760005768355048026035940118492615081345696282020441400963994102125577093358087851846659037080435313781030244574610252959545880893660736163509291009666468080704274304882539392422560754606101140678116426738624054739047515906048658625604236063601625927082862721740895363041815905416451999475624608699121988422490078185046696536600956516788524586096759278514020531356711520505018151834803609915554442187943444920961565737663539082525282701837469073075062345023005278337271603721490118885146956003863979390144636633531871519600735710871574164985181422701896565329118666715134213054210380116201642685162899286388694163272230539453453580203417991181033189310512262147712041161280219370592143598767069277654149455454001828049704395645794601730475933744232009606499277890010584932955728320666260016987096554984050805712870543899233499366013985863019654479627622510974280284420253058182749762160764166600255777540349183179735087462029254312482664232892674598091392565491329262938523293819566634709052332274266685962306669555114116020035319840006605513145874990443627909981745359468211858950445633297199135931928407661114887405967012663801129788155305466574684349989334592616369466717721863735519031936496646889983197084840715063173469181767236847073958952207096031591946115222471212367147290544906598525347781591637501729586857108898461632007866025323526927116936856889311833372818450515370576466123765483539822148909728293835003718387868558607018345436624080948403038767857250784620521110343953740478907330758061294636264602778205482206461715477511733786504637380791919501654839765295382534250593837016663148912892500599251383389352361942438621924189862940073297601554810892666163264110607413063272862851103360210113274545243872989601567911615681236685783785051137083390435786389203681804846927194313254987203883593330376819564163476957433198960754959714383288348099701238355283275837545612949254241718670627060387072581654939310158279376613895661306411213753409863304720830765735691820676193407242684083030305532026332553897897804108169224239464252566296380155821790757852538326605681656465570276356809518172635437144607286775945154188284026525891112936406319631872669660012403137342122476522658328445693184741897096901883208252877239857270465327196187693656288653657748275035599462261989295126234078643191326558872038045894566447274768857899960562602520120649549297683777076889552174184141173361975791592197255803224054878434210545338890920223178005103210962992255769594111377389834971231170098773419016569568209538975654179947559032382746134726092422567870978064283033145664544273759396535476514090213205583518108048372241583973258282413202464454928451380934258110959707022391403251086404365660085149348180455073731098331401845985546076349364380168992050449551164541912774959327615399313620445781741477350411436654261114351714090544498874153490853122190313320407940384091965882656358723642158180163461335256213550536170484856317931407440928442791835347096904547477157738434530348304304500090728205504573305309233136779243876131817685606671297226924154765421803557923065039691920649074824810436895048009830020256568207465364671677469050383151620765413049290595562406288545107156369668499535861377415710599939142340359052582326134552292888009333004602869328632923966389428155698933971191608345652130781904387533040644698506375627426893891393682604562615123752604936268826364617036470949054982333720505858579619360147518963700325476891687769780981847554833677736020335435426340906220244077916736584715819193253315361645555156455281594629836349565271500474603908490565505876805361959683610196698789376701146874994817585056272410706786930947686449988832530552247186042337673529256561863713991044688432530718441048290739660993352580920459695198227009030274638749595436227382035073802960333095491122186070885886348541063960227938539604720239991123394328346816767154640791650276401038015552430417435455063875841411119747029088646599689263532455353913328501349932721016068297682662428154057569295795807691621535639938328203031093470256223323002908083411328795749001368006631485878844202868549210117950255687867628220510208388183551750326938233462451119189448679228118715431652932972311971156410114423895238148366729309141539430051553361690272639243458739876166058598186518153197251564934715501379151330071036263445259926255655383528291421947069947526192118239838895764297296146127209656939106583547968208043974411741922995155654086211438029755617519502629539957276678456909718895027139792811527285421934605595384046734752705719692899531107871725641742338747593948435322766849156622783074813813707043331132297223879340723426098103237733283428343752166349519126556243004967495438030097359632744885336218471571005137815067411530011014138472302562647654145772844499693479249264895627719294785056577693947342880353496311437400606241802042367728337864910915798896399063876620828166351808756616340743419829492602610812398140571860343497909804260963495459057717339862272630015087526027705813220993815951783320968933477333788946552128982402441983501520362162730880529351383639761983931447371136479598257378908617771814936931651899927631416779829734610799316402476036087719940506301558937386519534413188268683393158286738534094241909047852046381876449054153048660100790982384407287504590283928811145949231426709249913437267569689720000482952065941901274642925631854540057488463201378745829778235023818857361350737409648461846635741958277111186610060707124875747198899577454128547694732925192796918403397516906111422801880576313900471225739561450782783533303151410445944371225267529347100812043191268554138884386599484244409263394145686172847545076153592107774090392439066571498441957978922977902875326974799901542455778734611018741504500723558397677366265844623830101531194356593621504936501528651436253136231761964141001476019615711850580299118580560863092353956411281607536910100646914315993569752069165953106657932626065743273196069559890024043563170372375970588925952228139166981305749885225145612131631106463855756894263780872077236834643948480053235925219825991098289083364449617644496790331295975228800153266076332368785628503316394897076633700285967237874254424687072584740564056800019392862071740371553061894911389331799151065082991569788202202764544533102816562067563363029238133243790595227601355446763673062730512571784543765454551125298715564969227710427772926174127272656867729030936202642712177895255656518888897074112792247422324907165967624075548799233677832809570503507640445014599226803666342543015477718477616529813236480290206203353782398060907228217418947660311785275808847349117832145784989726852613162377455524520351517244375808369555387971557130152476784729559247493703779064610910680854409641502271243059187825890244673315509103925877502812439598643144408534379211891395982649096375952261944297242429109688602744173928480944478559554122207529434959012857772935945981005301926766660171265617358573709604783387085156808892933814078483231107468076507392007740470039785471566240509844070639933470326601013572428345263202176189264679481667600587078309641766151411991623501197097914953626480299121704758980320658226701916571860938147529316496554318469058434162491617837113503096745830028793071730444215968593355417456144526837186544748644174659934089400163604936783249999078529424988849697216808755843891717036102874809138007900094925940462006964893655287995292663595742535329132763704574406600411782405325978467667301069883643313735946063623672546777640978711549644406085521432616114438528358908786839499525807288711888297812057116015178428668293935788094511457663609935750778709704353819957945574775204696357781993819249000072649218727209466311968210271046352388910475791307932348203694801288243521661328206997579232727577952919753860327134663761616289956388592604953770504377000350836406892747612328862871479249311008078042425552851367418482198945596479928798922466588545382694401150395173637643425806633470021142026282607625514261072760181462822363784599709958716489024242674419711132459677428888219505702546114424294339434696473094499488097802095215692590951932735254364154713457109996100364689165148204057432991438841645182970752292618941958769356285062703638061818774893405686888732477844142266045561336061316535182873837535338258816008986993708037832040927194521750319564891221142120472708522169587619958807314801152785341076263209444956499895545936903683123840068346180569946428205250394181844792315431207943759168588905552823978713229781670718917203510257124590908114832436568071211546477647881002519906431671898165633209669801319015972019003949544127025452318871634313988886443969443878276561367459918654286352083399660105813680038338162695857903982302714771189628601429389226616298607839079277795498544917491536221142494498648583046723927648252212280955832754060099868100102344122931380985058795891471497618162439031040467470812389739336564258219769442610148637745017805850353655115363352635617317327697968223583273171889808634066966924745453514614299459384205077398130889453324102904301218590191049894991797449787402850191442887748739762816928538691737504725470059751644590210442206372384423370014498456524717629115749489764556985921714553691713275857245403224375957227664173405964676493203715231779339322892487494982610498036845150143633843076362156302984944932563738768780923922101083838806793786931636603845706323026153660273196106090020648720412137578347480333312653739532359190415096550648560372777764064231879524347643411352982989621486248567952074220841242239038612794293455028297998657352906348704504980042224980324596840995429883267931022434145089730247363465998437315242469138897228830590349700517936520715025731595821682308009047209492268216589343674752592836987219522027962836556942236458327026945845468122141145409473961427155928931502940125534238361948083914170644769871897922583744145127821791799786905395219572815364717797430875229065107300637858604043863296331013966908094650387504822820895774332369369835732559748011670018746038107817198974098791650374236093288001894782522023065692472181933703873348665596703690591375940377272490858722133584477952715577963258541046135176470226508578868432140110934463079007214820284897950892878213516213914661309476149961837256249943363849565246475527508875439678162771376792736931283917727126442095744636993881552475814088834340412658114945041826500521659881748174077176261630576910735640818655867784102956505165826136174069721318583201237336009931225797829971038777356041670955292154425449267055331051052228701363103541511782731564103921583980373601368185082605855321459057799526819393425816879664748364355577932614918875097146344988632013042799933763157252372984513834706055500647470353636421250393209024033667899981284524737284964061104696790823880501802796507104527941115337829012697628968617042354732016346900315214377696218716675716344526777764713249461141294550468294248990468579159515652438088370406722484360058264383795335805381867034128460035688292211631254828411747429839845003451867087181061652133755855023006699117896901218083702740442240496208652250982747324378337651175895812719453856809063677333875300761588222978701150562293584282843453188914181178393360389088082581390749008019249607688913178667416735866568709422563281423460660768606258886660039969233009781285206694364608867733380342063131668215820536387932182169488582895525506418951652332688732536751440965942280461721822336128777249843998946664964084450053668048829604722666024456343845968581227230197109003061726212268107587587502701082300774853948281273729812992577402165288116534609843843774787273144350679347180125769569093259056221071659321960355443683195246593100656660363995563927231392556248513782569946159721919562053045687984710203516202955267955057618508985577324423607525201244596281819488866239033914925611466854837665585255310801287612954515888720443222695072082524885610238978319468418309811780173511259855539382572656209034286668659589518355051365998803049627499881077759166371878439558168643323765117044601356870789733093289607825681726590970232999442908025452760336486388060541820093285422783252940258249119978337454954385163715325414987236402712473137634792681806293904447351064432458431324432471347720689245791033168340536040044273166771629281020562952425057373553920733418779133565113513535558435714486377134704472825471874006296245905526289086624832591703903409759003146526653620216762544240240467005518352728298292066189445802335563480672040361474581319845242117813143116371519407066876668209220188021475514130475626822408400984711082658558073311229572055602518816570340755273151848016469802377595543248451863860743367796871090315708438565449947494416702168640116904214994152092898764102241970561136433864094055953461965097820642099173934144376593986535641386531874958174697623443400049466726553846651868159117485724335723272170102107191483886591019579398700496741296611088621782707275492377008475171670113687441281390867154722693508730217861775550672674168701107603724117044400990951116767052671272406550021953274698339792640176545474458449743965031348811253313292993059131061475418556056665937515529350791458198762642983968585934569632760948751469941236849800254007758017731666406660957801917835882346795392090381323486354084401745089915240087053424150387677271142650412484918763596912847892728942843298684148896531620249623549180908066680463149780148419071925765883172719381103490129348187588935511804578271098458325807789137248582310500899030667376475342471154226778214892377568639382037119104159148659084277195443325695059010915515141615380630534889318161539342769571204149293222037485552096873020857099237077474861507857616883312266789709823600712390921029041003114999509580633799898215264904138983714389500320893477978977593535972672466126998093801067452547650292865363606731445685466537415154601191737431508404903960088689574807505374626189153413845203575347431451853802855047773135108670048708429507211715031223690379290359341715043695248812068049073409955784308008509623791727056159579002117461320079435702501953327111893536551263296535614780994999027567293492096861477835318506684873361418816043922910837344862011073904497732961495515874520308444475204293552298050388403384295322204681981602424042176236427662110648247670687772452716619735572570561940033439481168110640380952706534210835157258633960572401945779313905633584416482796757309920005115755499630961831343069998874936910328981036888322707572583395191721433148939918859828099256839170150731296787881099338019617449814046410070269121605886779239957858771922664196014643290834576195492132644808463314652788592526105747050010534159082823648950821141229874963428428371312916599352175211035493524869838565320520874913203192363156562276889804971125225386068053891975712776202491477324478924072382985431175346209847271477903044458296515073768354948436577748213261466419152589067776072336218154102581228459410781430581140694519176582770370944391838530370640464161011647252503972969950718889261668065795921972798224990513460911684346130258531391604647503546498882351215961079769397750632139873911210275645290574454961549748421859272860981196101948529273797451849909208120272401606897876241722282580650860415209493140336340381371638590760509317027085057492548836521478584795981218520821132616760155403418396941445552050978738294487820773757113403885715480556031375918788548497922208842756771671269923317211677207423305627490057260732671278006289308484007660483720245058079645162521109924895705248625344681045109938545201673848812796879713396356229842144950615740122500308565784633603963122798156332635802846207880674400579803424049498920038164090866087340966640025497318680108633193695698273978023638065367321197752145524751965255464569933543926073737714489436781269797622165407057770747925740536188998626354037940539782015347283321186605580793358248472110012217792413776029071612357568239623851744553798585562946915357115528653124642716133050501889205427342673783507087655110057755917876705153040213784876628584356524134443255837146588613199729799900574883493896116490678493686173487861712965594270604877638485539578971050479496826039077718770621662501634541596055547490669552080256312362600537435266315807558225121349416254317331891037362922741702580455761310909535360166629237143536872723271718862148730024390835424429500520375716070531160044398477526179207875300934382916913770704257931087343366866584791062217936154295876155709514998941510087754738812208317554597321542062035599516304997467511969115194072710187577716978464425572455199323412538427005756393160490309052781043183621850585901349240825728827328517303457275178026276248008153228891109817974674857055336613837713356543692589236622063847156553977369204822189328718470817213110988837874706354442409743185800079398201846565356253163063828027213168756803998658415780610046107960036060389946864548401539313874218835714741907101177348040135130634578600849034362831413297998312027875546089949132512342862126857791449422479190333423300981351846548852844729476570745556931088867950498933048530148584170591207104910193956513860549008875780749784668003649934336488524897244499351902253207131823421287228297154299033530713584574592656158899232453580993140418824915250924965316772654492636577828655825048468625533133390550284781039761847227974803276878801705612891993088355656861661827285447743767507943721090963077290097253738013385949748248724838475871761657551006286389058432454397479831060963766719302512507585969988701957465696981661140556153341671907178020744532269101778365402042798655333688808783546084979460085888669534495867382068401059265081810728303461583563591638085019395099839594544786878625903225844706934947718236103509418895563511229655208579726875201373480237826234153435643481419284107008326913413048661626404391016980420736880408613558210334963934987678870885098084836499356707064372378725718180008566485280279993632253481786326649463446261348709256014467599888254289127085125596421361045282567008936668504691960629631871016459438588927136499445956089956760552569728529358732733423505486527407957749525915981240753140119829539075444273418974310248710163810138166053925744985571074035674973068457474289025069180585445359993671010731174801270896754435918180750665890022081259879464011456902815842575499675305342883261607238782746733802542480039144128012880887829007706191310065138930752791470121692872196196787393176579871813761651957262528811675281269208248094675661978926305423824904022657555828522296122870674862809735589640343748865243928103090392988583633029336320468215838074401389600212820472348741236137332754640252628690848822849973640056061707949683373846636368821024543055895747381556836339450153908679790713259713650004038097976091443020518727261523311046109230622183098319164694747137685000349787011683734768479286293858260026633914676922693523467689495083505548337883994630884155316805044518547714598196085028405470353965185971145920654518969472321970605919500545373909758663460840315311648029963212298161126615817866830963893045170128037369379913507449836512036569349419405385945822687337610541567368085360322212802978689479923816767200109742013431085058162338737767115417804716788244247887625304620333923517516765226311375605146748942879701275743726153279842962923146933194276154785458222280943605207828298903317659568764972432631456215923968613466863802475898703706684281234735409575170358205593034102333388705872621663981403785419065472698529304534611569510232948545417503393410004321617514571644352208292245095716732624675428030424208155213544208670409288362067172226870926526146015280219021809924215809025683440775722810549217664745462284972653825743141867007562865863787801266594182554458920591729542459421327950220953725149783013225018951221896710606191148833235190620020779536213434281301946096173133750764897233021398850670790186511532524295745445657829629207159329238078855126033876195704076015005586457446381009642797127242887258657765207666503337120727809971378053354305558677734226679514778029478900529016429054961822565567950220904647391992716842719774414775397044535756793209393816511749679834522772055903416443774874916984363760602670266770847839365349760989564466501402068802211051076385114490142678811481166462368603419310462278146516967025833545303229854869000725692474648773516539982523904259417677205960164840286762832149428120062451137454144306053895977874957338853237913676645191707369621887568933866836373657205460736554389640419035575274487414524638274023558332275581665132325659339964123356141067866120684101497248708669577605653590271542791083879104867258564791852919521823914598913291932065225371292357220902595853993288409686487034207559006033016566095924756188344243570039727541966280735673139633091175631431764185096159417037440618004043993290565363136091618602658663905954960419053942259358900481699173195814389136196174413723461572637988102005494013865818515898415798212006651136406372981294871937769911649115075967904184314289162808628396361542503661063336053589580098378487212648091209381725003022369722720168569304239145014795712373442975874458024689023041291352409148552509283306843244599421853993794831461893362276020166651399674771404303185530163582593812995254416343073287271537342188138093964424135632312315329180507148164780827024899591685922929292640626026085710649083412310566228047874118769666138076495350132708840957122480784417367184976730808289529134831232034533512012659550008995128576736014898181465191040040078276695956680279066171561593927235524008787926881129102670405024697091451087291679436511714602079819626791686618954996145289170326345045819073046158945872890624107368143057924112209428419081536818338764274351282804879556308799391683771819761941642208918742702148668221325233558587350897100871465439747421220171156415111302105464801994772294164424869377986229463895839550043182817868873999196542866648066586441574832937368774924157404603700692016712495276628530066419246884969451114801701518705793903058512599462488660956816045972951279712638211457626325302716644742872600916486233479929531050676423710268776187438769601991228594048142468655232153312788859225570715456717966841774206130689507170820770217039935313754865459655353957736722632392949336699016172501729764622862740912606507516646319378722028173149385315138817420571762631288198153309951077130189283049813929592617493335724242648117397025946244789673531510739359785738898929132861792772000386514607970736921551468715888793361983798224393182013164828100152120555405480439602217639224809576603598800980219160378366814393289256651448876836596736363248474155518607853241926988149944860642819037633426380228630047720962774128322397318253668771755508013464248842428356147104605236031545104769854799772577478300964302084692865652694447186871029261606698354731961028319090652680320437635392166185393342221898551865409511671172297383755997437137691767177092456944952827242069607208653042734764422232595127844517245859899125641156358800039047368963384814464072184749868105346339058777096593871851792435463124097625843602695312024598737112005289888235931646336978484220993860625179198880591536314936731149268160866763347097878705502150102651993298503126906897694740946199542008841373171533863462745085332360082967260103783849997331694355685101427708111622953900795386276391638637680784296335288509814466235902016020103702319379827934423713092613601910208806799090156302565913428680223978603714180173164416210289304450202852627786975357100897004811225429429043748080807244635128442399164816182387903248567295145384253076565666223872777324745649113893675164614502733365882390701571635703257132228297570311743537772366553096480267167079698092505407668831491587157882982948003568527749190883978974143226305114625515110473827638246148223062733259553463353721636603788345656852988019185197661830120915462394213146937984049924520257459565931535287723850920374321618306892326263130147657014714844263939327340142245127972869508290973239015303880912753688846691294092311652054275621849900857928934343206626576263964116366528054590370818821929047049828680720001628247132907505214176604378992896449716678156275387933378931395906939089194317995828207525101194490726281593477085072849760384093169639134601146601875951774831041381625706720484582962421309893933733137803955799104998096640640256280029875704089984569914742812805852157585129888127634826515366253900041339747587755535296134683943926734187530487739201960140140486099656108180621596867256397850764796943611930556134156589740530280192445129345636444487214884160596673873847413723023489039243933064082346100275800934004833166656739444445776576187956656157949924228551788303005836696125000455379374703884462871947840268377042059817736672372098610191397574161076165036149017098973292120373625690518382003495872005735742116979842133396075499362860332299494088683869755738328134349194933215637861294580939973134243743618001130841260182357876271419156880493319393189165741477363845679034483589673696685622192699803948161622082157870002980398582347233398700676199422566113819961217753966324491385227039432960990750224189741765987748727568795722447791057852471564632117269363043520760890855719074393329168230124460925893479193687460586194190958664623782706506883187027953060306560490498900955855661821457289969873935815536181588281241646233073464399915561649332826402188467345340430075021478344158939460793667973451524968358783991274617035044917160168923197185486321550019875252621211081198534977670408590298340338253058069439507730127226421613536431372999051827573588244170093985956203109305540116959571119624599759684768184488497919816276276621673551887545413349852943713840466212111592317069847536242210896415263500465191999330709042825037891183326835417970229713674949066947616472072868443093265807819242899979968588360604374475670935886094055118864536587880446543927982036541323278561334251317292310512996352453755270577348384788532305305838124593036601427850963344600128943281452890320597282407402720945810147089433153531943662996681081775273004473613529674561373273821716669543161758065095954176857131624227974358416509829019912311277883775928935948960716598438791521042448402977337482122678166543356407809751241737843070125627017506750590643393591272152974097232681015685383049211551018912890294110931335231795816481024705556677718888058386958252735137973764387297949869341222067073555671515358497620000734584113755290452583834241453976839518607757138634361063540360902320165776011449046053638755256334630285312952305130823540484328892446453446800419753302399850349522378729677679917396950470749688119455581742514837095515451026817346778385932067851755927841454319263662348917824351198131896149241160384687547139435264157766865708124218557121311107639796106335328133881737786527435600817061057747312214202806143955909048851748750782271948328370392789372125102121713809985052004429777715137070265039454901229729190889730521547290067026735422956414226574342243590257583975133467345794104698025509040110936085632252639287513834268720685130629181925239456442332787575184571036053789818513509992360604138400814937833524989855837418585106401555301292764871966908122636810312230308122091401360437457910806400074062458816148888624928628236428972722676422599199567688995633705921310890714220268058194391473573681716046058335507533053211036466257166033334160727944508331345884059986692441454012277241286185162043172383408396951633621098424401762962580135383329571814327599773737650277755586583691922298685078804707650207228259835252647727116994041195457212481174436809089512960573852123143874504572579470143381018935150547644410291558022612451628697150295965472494142130594229885653864058480007975543585939620938451872317323362692605855539366750210339456965355069216638125324733843927165735617015039390547656366978578335276354056909691871078801416786495549442324901294177612260964990043401131733525092999810974158130181735763203780926101032588698926624800931631324772198112402742111629617911644930312948937663511301717596923111638529269001377628149990365830220809482088413736623352986020386407726023489390696100901265207384060255579934495566458518285636960912871314932227195648577478213859906972287640790167529458408594233990659705130828151541832194720189978257903070612680519616860595259077618872112306484067724127551752232619664850916181875758794181088793623431822647152774440000892297744450776569456270139889879120553649851289497483327861570089861448181614109641819464859647793547374489298698089425908287956005599582529241328339308236805104584109011037021450099696338569082689859096583126370341114605645690534113377436316929172339608750530393641440551017305009785909417094797078011502386004472240042281406665007302170613126505751537000437528352874337606462532928471504079776642580717569896952376779300598122521763139240106919571571972138013272807579649256097372269669752904749932173523274066155734641231359173244905194383157887372564703701403283485598385305095084768806884009549439565390690639301534463069520556256440536880408959527239882637525964802745645978732238952506110254091428148775130942380705201113146896734437802979592899942007623833654715553557981408900160655140595714270798012867603145615870783075539082811050151281821852840368353439021401026896116197951260158604452807437597215018510077274298627591509933324372654521132241243779056024683810501031878358823262272464268410020233933071410513653037793244687725766854861912530302286869132872151157573098898466516012114122725369501736501191415845833084246801052887903510474870532328678032669667254473981120254825936542776344507291534517479395803147922591357141064205656146976481952083778266853990918555546585931194287552039524861837704398710362954503270365133216102408736530611472751727091515842821255053155603366439996603400888230623253482426345816896395703072838319706256476086178268841487501295028460004923223146755524788383775355558716101988967079247653628109690280423474237841803700211878230495778362428498898014899200336074163321075513475164407125027201917562860954724632268083772726597592066190889837860311897986705949006708851014030842321914640948282032334194454708662880960482398227507325969867328637225092619743378216170064947735577196043214003136498017296838491635517694232521270013010083868154707291102255761695956218549054197330262646953064634088167307682291620531309022087691021077783157317450723457500112488032926898715348873903354946297592864458727573468275209159515341502162649720770484768557447240462517720536745097963652313145049930624332102681552179069638935069919658443410445974636080166338987796668522396798698698562607706034683602248377426172205496167827501278218781505643186619979877911875668848553472868850444761060934944719857489307680160589921339679576469213486515087739787300823677332640091929153425507729227770355117100852254760481134581438353222335571334566562683814662047889730356664168044511029904414087336623735067747102113889881676961574026922743744573653518298953023744089555338445547305737254331861202808395534943712010047466051851066100856169425800122505388749905715851217102002927876954971983421766140806633475922896135857475058131301624807825782682896831481321070705093140821169773649598049904271049505637529975599208711551681774072432901934322123059701505859135037691378126670094896899694727122399517351900392812015108312514598467001119776723928620977610739890289330671681530282036400696970273599728533679953877749495726617293383298923067448011011346650763613339546257599231421201520056971035091984005992086472254177539372149075721960790988479865968687586359304731630581928697207768087827617296310794055540961949795183458397359486012868067699333136019839858955435161313327288631259647094960584669083389566566589591903480031161321001209958326620306364975638358302988508594638429811066427034168505068069518515034310155902760078562681848374320892083621191213749208060804789397102151039359176268642483875993923855870225860528056012600021492196715575336696737301480132685227798114001335319693685362566615113770542424072555412796670513032576487502947982588465829667994044819002546249843451401692051826102792241687970563443545243372152002195215171555592717412795698249996610018289629147670212660465960874039722491044747479323573084363613028050969763414628503579424100278483612074803756662616336380431084537769399799372114511947344049975157665634783675667992582210234177569637449530465416490064785243626082579474078189445419888343257063153009492004297364864673377220926296220348831277974674452923366278766937286103565090122473487934855972740440343148842048814994183324691919906476695008426197244383964893569466163112250814993066954516829669583907551582835948065260789622456252085239561289331510854128333919368151818441943650839279748557368249483722838922752864348349537517287748743060000123242654925206229356092297167784291833218512212929777677770817278078799067609441917396722579384106311445459001024005567347940199969165132922342372931500157152766540239785353417934995276557480528896047213856882415666977768366485048549035791661267985643918260189798006903777899617144541531565430974723478037394033323272795168824317342315686610485275680288536201607210809677135488849388059780301548144193071131763331512698844418256020578118026187858016525614106015405377715952320807614847236678157876154435471662668629755730225348253462146215206755956182411161358492749531716774144680823884237208717825799602236267063329510761064576383564042806323624013973458764558191225202060349727027270345095209486168641906148764772103211249291669964571849462872283896931901988360604913807770419072968596644191906277510443363307130765554376193668939084782650288876820744659135372859190233756437805650579131994709474888574391438068255616013349141238323708815767293656265714166124874884524595098868750779383405073377675745162375643244978224662967146962719107622639912054444252952291553327858173582975842306702225124910854863818193455191152889662254511975861125677538109606639933063978568561173187100190141118885023192335725324485394120811477519280233976768781991943342385780158590653022900018369912406356190266801988224059697559491160412185822255888518818034758356352734271889688737767663099953186454490311217849924680766143883221891194397465718141459112500859980344402280619180267986530146117705427331798649074998793834659280979784800787812818858951653874722998319599023888633574727784541527730057322224875982696307838612344029068463390156828162613639698490661002940916824847298262158201750609761016978815375901761301019132345438283994794150419062672381552088263756446299397798362346134582774337999288638936565285403790326643108913270669429685014298725833998597046496994479943675475790298828591519805252175252138498204062905787882485829021694979498232250730627737431419123826847492692204222423255172178166966633326827021407442522647787466091992198928595873850131303123855786411938068571467117230265796431406832432408571807829085459942992378598044348854589545179989047365384269410114779637265020099802064210904233201884550033399799605644422857281282567715807234408029233729253072677475721577332761714443669500102435229077333682226128489108752129473457116182607947154912599393121482435552609416346241152464520213569387382171623290156140081810355466520265412006396400922819512054899606259822098670375953935377934939980875351950490185819063836164992946110699295725099672210026026956756190966125780198184239792682269733317061494810032274378379926715821377887882999393930612094632724291869394940343842660559207288656325682409129284767098406608465507730465056905407193108042770272787818813668431646788580544674110883872345593309126796830242860713990766272967671049370482305712154988971659189453810778989199147654378320883430160526210487819142762498333980112812816675734107452365261157613036226985295179951105053136025183204490001745732388050433073575711082539685236683027102260590398109623009566657785126835844967757038702647351612916520692042278130594944474817920066704548462442040660868973261135755019165671774894012102766642383169728710891400942678761354781347627307916378662085242643224194221439766920109733890823226076798274724970088961860077112258608332397082430240985988472571272856924980123508156234020925301566909059528332918721531698632114939512063764783364705308386187560322924916678367860642283536268775833594991675215925653614735918212388393420672292304948468037814340345664339171526929816653443463337297759133863993289680921459822201604756111110242786166255587977347163268099162222805126186926210895963295165606708460888283351160476872439828638346487038002592538037402748998558382367515463422142962543976091297581017471797073384322994049482820725361414339679537673338755911604040421637056959841833930418145935453889558752493978006413372756507448256515786898349878515306695601605649980351631344788004420215047367900166350784443561675623911897212738864246777556357278093224425411343775003043739511988318621496561070573347809357467519800464689601524930125796153699194393812413232273625423608705455318176772740469309001427450812962651524580730480845595503049598143023101294388486506330165382365913460590282892488039881340976605297935343037963332161011348299263628042470224401858106922060202182237325319067292447075494775420293680606356604443119660606067866273924621853653989042253210934305179992792166589791929942536437314776489765506352585441181601216569136103695093769071291293649080119611261506600915722505844949795155815799848598837126809093730462361282962372781871216584605340659403354319036894963690272504940952577144455960682627377765499489764614770343478563794858306276067060188176442408483132317015854400743599488874321028361417172181328511773070540477639887918088076459353263815927473939217581785960142833755530939967114619029660982071013081094417994768576013306993294532192571343807313363445414905091619754855295300262553671308131614710126758130612991814601528165803899832584468441310330702434644026168331651742524768797678849008073333316335602268218362076427987261046690786327759042388110597970535906457059249953417431784727582600406042759358375236899178061746599361856084257245166435601128133504615904137959239108578586943733295344697219192884705528618741362355449622396732501976436800468681430920619371228593791188636419141670927088128462402711785575073580770311772143391780560350948897709727526588673789548216876696460474838990163123425915874534502529975135849874983197120438014694633684222670115256884639972775038127342659706014592692204370266006093147747792036702879345122578992181608712067940649165847876312796908510097696361401838014461287918679602972737089943554032253225494016341234374690652017840878536492237779437209608111703993394664015217821720419179825082290024617088473970290542679703822824324693074483106622428438065693111885393186535182962991424455243430126392288806638812476063121050609535810639594743225487608897798509042751445912060135358472523769446051668132687470658620791173810594226626527407776323040622304239290826658697656353303163750742037236334972220346436153247391507373600232969343171874335645957509140445784284152884201361344811210421522154760542902706381686213335495730658888940885460144236280351005852548700122460726200873727254259830512165540465460867039511219503469658821863371491607634900379199191000170602984171192008498846010849252503270088647652166417630991054286598940213365837790882704922780924220447924303577657196914668488395249642212867875928362535240644801243453958354538426001700958566885372318262079418078028082462762102599859578993972664277372512535440023041737350156435583217475711189061251075519265544247449379734269461251018451150676045258218997811279722252080796310342276183656067236542903608823442275839753670423966544527320156308521511286235444458245011307047463154271751549442394428938686943964289907046980761411445316325219489364293684015225369855679044270695507300900722110549071364576230308109573279011791794919104228212377393551181903450423856558645243936324870217193558137594176470182516593769574563305148687326781831021103763249552285600401907326794306003248459749095923089137654768915499531494621557375165893106290218618011007887921770645801495700592193493488403544399910611691691149494123034568777375314932990810009571899567024805137709825714527117484282061001243307316466450343836041417957503148644533297803281134791981589894959476743767321566687928516045763285470808195285385126898643582130794230554968445340804910480672653471948919812214560259727068730852084890001574168146923725734474920261861191221818199908143929058721027459231919231911866605452891808391353258435304603364439953828580880309795203816412316391921253173921569162853561549213127627388090696341570487589180999919826745517793913060750546521655907841067370920395762096205010580836631695906659600950945216644671563909283661163952112925329501617689169327972031989536056300843964248982064877663284840774365222235068545500204739926810449591345894072108724413099893220923587733681273445920907949047370751974773717139109288561663160570159211871401202239097357401981390754579787782686843611847094811737166209781654352904494289578625601814260050452146872842927912343403429390023209741157269497766510932576651814846982897753932917104094219662404420631634556811697387494641338331381327562110788183778319994738915282959868464324005254145137772960500517204179672931262779418527314050535518139388855475479685614481375991234176498141922577662366313814079684561425400360666912713365603635972709054119602830021532630516536711629133579024619191763988108730870649179052104335296859975191733077842650627901524353384501836263210633078702676925212692969256238506502382192311829709996364633564092621408962863637737000492713612423972753440486514031271859692430042795648394422285080576819674919029290454424827481981115125607505470040291007812408382587244830277896110722341368582980712780260896553362030966522965392982309894701390917899093093574937773217352074098371729129673170559834079839539381067315038455786626702580584670808910919805867304403064202925807201060122496439649358499659630429460424804741277679066983496072026352519039817647572396385326637676064550187237184567703824512294750893358895204887200335717461045744340685854784937536571440502138012552354663472140911911253860985372855388278996993047076511698855290486779950455500408647594633450427830852668525356194134849877607586061144661874098714485874201825597018860657569389828796644724002121728525529054232694155350144508780599370609771541297198844431089275827471877102743049578290946311061333328608375070366514701355465931476815975450352649137106585492325715742529305133676904059222819033809351873235343760538374171813402218042570555461458357512253292933851695812719738235616860066839761112362440487612910344153521522310024276782393045934889865892213356046699531946743657827530081753908995231951305725935986853902538933188658165442271977995835967497059391224971790469204205262563845919684115747058689068628797775896830674249874762698663036159977244364433157981291359512263828877497621801225874300618080048615660191471494752189894736216012819642988356524747912352441313619693713843288835920961338630559481847915227474671244870720872980687255871809040128473006336553098023989153388213640208702857365453361531104425051760112905941043546331891786576275807248868573207006940386714017318229532669512832039813045407823922286631748389984635096107049282373903043692031098504140501854455213046361590277276951223287588071102426878650298647091189265911212271175579029783651566358020320170543188617515059806618074098396878161847897266657672040815668141956306747513925589815633268355455536260351581865624218767880059139010798686906018892565218091966215772263747128989054892290745659974496563592216767160235622126882455731151754279808508304032251995805919748622114105734547585457566197305340525793387605015884495701736368953834538905057409375834980297024149604906328112543349840115465128340494801567479409193368945554905852735555893298519140103143130147546849329387762524960746489899651252452310878080387436148669969824792212265160611773756364157054409119236773591368905153802824654215026308685376256347444729283954572834204291980904483259841870295967617689108468993450604109436146201603163799776394825791725918796906061532735418341538530215177494153170268523784769761802650537653667934184437129596578472589150838744456302760850827346773030018310369345665437335383391485968909605009253565882168607783376721109377918380518402180838962572318921047563586448584179985987744209349040264205113667652322895038992077858674059048638785464620006402520294535665829086571017760112188338651991364610863420306991500024078817749736893798716400534090114991309397562188367174588214302539438655543050882667953119405882540526842392039915189294093451813750033696764802852371052183124073210959437710089225156755505576113894787126986628130353136360776928572134304447190243561036766680029855817206340448542638173513228397344279855743768047359360862494175193411046797516373360083754069093486092855927571553680024442250624324016674706831897439087799868866697647638289858926105549915327097982693023026453863904676850703318527061062591053839090668708006098146286889765845873509577943865449818525600098693726360004392582666972770731990962498138885642533222599173028326895523828397458449331771079937774842740382344293353837574939088403282513457566402184880936780670301109857602880616010552815548949202047243347733454193891090143783958314670832553138570463422029324510675732446038928258546413976100038045117844137187054934305236771467049745284430549341907640386601067914881033707830436496844617523573523528946815402892408073707802157363305614667674008551778017149751846476199702261616866653129198775353384951087445029916571393012097175515748446892422644837547203028385833443507975812361111955855287796719748562675765185806266024094786240376235968305793303617831354661699711954849193357586389076546763295722205284951657209795416507010426043639261287597217042770122544048226332260368521901269928997286598603931594514742039506508415379969148879513620168931624204502647056644180323085567713395329122679409475877542799856384257315810793418950323220623032073153822947345435721769615040730593027239056649543103214011269752137046579224586307792461119189683359627203926107957157501122887019098489903661662001283970410775194504687593721464420772196923524066124903197792195118859544137911496017096512774431272207856157884459870709197159776295914881535497042199211893646983673213010603867085854455909171634108344760259747251888712947774174870603041968741003598017292951109907278814016800291496499745958455689229661881652835974369601292030828066038639186422531428300574638050323915200271694796155215757711693239107635821714015691371202484030546032024064478702677008972015629144571133204411198123869377143538901333422044729276231806223348668813623076042414087703217296721020213855092590916606599045157966308172757698890880468878078050923683807133210306503380644037316679089858963761240463228096875556821449518470052523192919720453454176111134101365692721939126679043053211324351674175819576667318495054881492267247990901716485887712792729307565969553518248114890547030120060253413248157424059648984252019464382795398635156239949181441538274847631001644761737067284317317413560733208958420971142705936415758931060942941124399403227028598990886243583577638634552833549733070719678490615005449622932625891106757855185075954785575538084763514597210638104678040438887940481634869762150155995005045209814488714039812264860351516024183526423951988620416200151745073995954943469507696411464784599015153767991188192771055859266169836087130956756058924681905786852972289772043113633593477503620589037678492380180079352346119773119416565696196683562572260455342541105862192313006188959555697901176294990250898043394028565308132738102582524917952508930513872714851548253135074210314136187134746912926719920554659280435277871959344402002383280507382616922297409917731670938603180901138211567566608323632657344955801584531871792544367884460864716867294366085818112871685714918463575513329019670781636041848757045498300980691914829632453362976111904653699005991581948481804318646555716188565275854887366815319316717131763883162256075402421569738810936173246483810973224179905725453510689398961660918371401671274747991934307333065707758347148323012379025191463712648191745877375941307984754948858198592749590976315024749689745051052336634311814602804585303792820881070390904481761249593282160678383786566645259725324514709906911226637109222568370107172825881081919699503126329867295792220435203460109091011962534947519755008031155036483545938664757004634737319031069749844024263323371604696038359810299962898682889984579408636405544748688146363091139826347491423925426883694833491601149741356562278907489805623288373922297171787762053465045138096664849223721523664469470122298536440509340033928047125795203258752968890158809143496960546837476089071890853100086049926765127973870794503527604133965448523403182489719937093740681577195838931553686414520657648104893331334201407557088217311450264429718900803398273559529134522005845357810097275126412899563610579261771756961903542136200728316894080112801597928014791304964223268362930186686848104761493674664009771791392418854624100030283120125467926342186044680154097576152817346449951783272792074525330143466127975162010379196279079014638042405402954564596143727930277061508800606800387176552912852569184510000152805253111750906126477211941963454634070129811655994875855357571460088386890244175970700201560230505617376176936168089729569007399172882344739072917292150314813922927626748120266777280559871101794613104020457883618387487390329855163184464754832206975531557582079827739819700383598030681108000597224047371563597755481349818034633899383916076732978909947467343790753659745216189507838236054372088090483869631003659068269082418058993799249275808366599201001501680718500882103239830585440374422106947708660043833132195980467984064399935175737237870634037586886936996468184836184190674912904549746993652114601239067195421067016399707108193155545759592295077863366893678249127143764637967524675948452137005803609937019295644924733004928026360226578223441062877320892908467916918311077750715434006401572027626594794980144123618546241549661344983862615203352810720452036649259523232515010994731785544843663245082689514631679174261192653895196246836597186614678594588760184725097795208998345757662369472399571147491879657802239236343882394910136060123013311270810252339185082600443714844410619201056801842007174798671421505875886805816860113447548387286366597720878073218588053692478289673224953846871288385013728106469673674310588053636366645877433227477563240423964973093306119063444979054956351828065068932629229315672101474486733897674671157047351775878086118755305366700998641557661745527313738676275616129492540563075987193881919902233551605661379964446496758900729761349247475695333853750716860259186444521937556166435230789074445431381976697326640796406891105175195441883631581015835583755573522080674018361647194300027092385581902324948204999487246217448486149602066546671437178598308752520805609416718894870213491378072258051744896458773051004780613664725782531146278315144645911050244891340460571305594561589400056866929470220680270131610881365848258768871602230777225336009609738404203041871302785494391535534698110027034629428041161535029001330633687736217252564453606917005328994768911939963699017224960399877329585767088971781776517286030890105614545534289528618477638985091162967863665208840181034198288563612519536834714532606986673756353354211615066538490830971953232477846029913857277581384420156482056718171602237578484737232090705962190167119732381749190946700390912184983337745152624114752159857556423271506644410106000471178523610005611432981974337483625107518399988184889897685524013611978567960933456365841760272809784365626646766120950637308881283908702736676906186940202217061991795389357527301899913743719213560030194304295155209613057244567647536342515004734927023948951706652125054710423330086595513869949301942357060969418633401389073141067377062121857025130004954703877906999197692625255156902826063626382169701567866647154171155829132709540712094674358875233729169354044809591165262461366648249829847744956713132668439093018943549152753221676430611401950010863447399466962682622777330402451422581911945328335793613958972638307845959804422730196707584577299765287041586982743242071254809553835373134742522232254165551481707974495730968145449137671466804019339321286762517314220471074468024951422381660511859473453493310832585097337309655614032869792077940462072734592236936196374775660556996696063075557191660616051866550922430296597746046301146307301513406212251634890195183672443649938750391213736826167129754139040507853737736321888211767827436145662706741442775756615523934785878181125046094090857440075040951610879104952700839348063120658266548368345519868717738750165004450541879427533439287116612332839324228248795905606004165136878234071387932479736555867868794953643769408830837587644510068866007683723789875380200255538038554984300083125726048221997374309654710978016504897357189143119102835630900874737274642037581052744593272660031842666021002565079035799178010159310266736174753992347525113735373342763410865768378536818371438819902068956588393129245537197894201914862829001907107173834733856518116077430617628751848437879543333730560591153610389457102334463928668336532729431303285331586635882336337590696180192213326571922817734699086168807199875785658753363884989808213020766367216720360611411269713538112435840246093743838627013896665477548757233513800866231475558772508329395305942076715665433934353576625015543506664413939459514454219749601216000239857735369237600668535042306062906593499893132896870467564177322729763976089442347684980898020679687124470541918162401444246746671084765537151545354454788655242319680524766221053725183282627864504550590988007619883449720223837904906727158276084342129829779495783371379171695418390721282085110582457709328127904419911161203673858826264542125030465479797175809144285082451286296755806079236732015693098063689650002294069965345426725073890386064345486551126307356776300592046298380051599034977252268174046370530755076775494850945599897681155164892663565033922066996859178118534280930861202325301048513702009989856965113249739305119365102343989115788865453152147127108641401680922268858096509775656188865240990352329223937375179159252596092217562774861703118223949261796860990938314438204523139272832435055872930990108409901383485093302091793102252221928631201154362648891719313274960573877969826159967390034873332119645458582670125556606746774309665135424077078977220279629523883331247391550561995735408360744203836276037044969892871976842036947849667360312936034664125387524973490815774880826755829717779232842565922697008262850879490843684388665476227142086209827892563206107459472306463491982943223947462676690774565008791781617059512568661945924135070406340747539592729967264769574182649173507938650848799698831408109112096736439142311945653918792006493832980336075658884548083041773343423059176504910843408055134111217018111161200438179408117827552916024112817166159081028255400225235212520473687116357229175673226987525061284675566378898463985882814367426563127564363309157942976252860389057583000284820198737415587722668992866139925556227965720642372824966650358906843428209938800863379970918630531362110244687039605818468706652888443143072443376463953868628586805421413436488920699292915487059996585855660198949857813130565193094301498420475525357843784415245689867347930576320974756951400731805899079224506150178132498188337639560402810169909499387014788507699545775626755259335642994598853166823566777597014316134843183930785494590536900357298657126496608393239399373952643484518140015357056633408868140422299638261556543505389716694588208604519113592550270945901172050620634512031882722655174689325076191442031804131696169490001786718149086126280752829128100947139190433328087686961123934330031584934744611282518305110362599859225587483576532431203871285390256525833061923941917122980586519778380541900958942810172938411542437334881199915798500582430990685530620856179464532620811590361812602337777769718109132125259007728086949350103354853646813362581583042947358096302184477790953256591224555810452896865759414321494974231868105562494733098919807457976073177639824628697290374939677880362171853519314060152447767163993119999269290291962161485131881558564856399741277572220946413309275784093126904829915921230830877371652010378354483570998015761708850445844924181349221533410907685967066771242143604940504380835891270978005323526272713229538102396015757513395417499378095018561992564889076384689466660262202180822765813392601998462209369458888842111406162852933229602844663413811037805040616076423114237384571082375933701268802649527963283713047790162039145726682832167059200706908869571937071404653323322737527364491794940544502612210901077842621802894626127179390139954001484519487866421123114550385025343926996652597761343683631265337953719630437210778500926411524024379699306262286375198591784321074051854217380054152631595637301030667026369958759284656856103889656358934181598454957653779046339837118184818905772429060779070800618528386465019638926436445428752644860567265372735902115355570019217210901374323875256872690553717352408895518522993491668092578764351257698763305919281994782665536406700507736122965726533574172637652456491033425227163862301462048199796594982954360525227340796335341729218540275068742768782667732012571117374996924141446441649839703959947455252990498559247923983716029527339570837248026863780374092864707189427681221769668917906489998088912789789350162173175542038138719498513387335636156761081868510894919503006551573128419611653729660649487974416178547741729765404839900177119946620620435733812105328165024412858395672403745085315974638071494995569646706604450904467845344280816706696154932232891591040744948119891954391869555432919453651076152695071213497315368936934663693676963327315865311532333692925211516081476341789151255949540094873384739309441915528679722142683025924746066831845860453482332821812672307280121092353301210394930411308267689006791095976202398491369165023964492967354989654717101186488798077076564705686295329675829339022837487117440237275372672478539118689697267194848251627042000409826484449197556919264806194329629443281509290674464792924881156234103178065200251722110109627414676792017357547715502072729260446632476750449340682829664215001388250793513131951145207466717176552541806876050602082513572840599600967509554241059135166619862872714230554376842917533618807054918993960311977384894208433120123253772755125755293391140885704729732674868089086701983017375039903610407521684823380642731723802960956811831900496517575928371855995754380182216838414082857754472867354507754963231431103487297656482624952070486656227793388812822765096387757518813830114099915784762957331467493206043398024761317598751861541115974157866564361222151877764525015416425066627323790656246783130598949329492066471223373609606842444783988598340285411332816074368148547623898614187527187321672042818093738772058654722304496246032748749759590600264274140376772369138509327414036853148417448128696854837469599261387642466919518272647472246001784266197352506107527898523646120745560508851874226206401796577571911554609558101297526898175658655991613423191124068237195352813023645970849490572709863152283163902464293530930022599258347020170972675676836082879818754156692891502478379964706304432047464649407904883624121756281244634095930054189329052303385082152176249787382454476449142426335405016173540965101125513855372392616759149602918083857650496143645354176392865242284296951260190550731655225660702919827824617401306298756489580683721756044567329877699503865304448019140423803353757552898575486616858122184555186565970022807528105135319056536711330393376362383592077583887241966625724521055645280077513665027064247029336089159250299835653969312560000795941343242452976681665990924091744066863470995279156375518284014217915745802586974605290248435477632012284795756287587191249287263278802743111369327176333960738785991170890140788931576050299784903137999138387198270484919779071905529033269574806967722681192695358325344481723726032741242521287900601454330742986127034325282996658310101439218908399405902938681289943893935539034560627349934021118349176583522843723679797676216467798635505656683124162356473692524102534671408024507150047440045210993662678681318183834338926229169068798259248084782954341560548697419829606635400775896794681781765195454320921003099494910178433730398231298577687665124076280940121791356539823438607311442430863018861850112815696457853755438467312847737293678712907800272264090299571868711755432455684580804849650839720403729919827535513033771191264620293207799376362319184041884018897860252828436638322259582700134484157188213498306432091560726533822473645691279422655088692134155120787424858441836902108207860982986226915041199754409115727659479364661207254769104217741183410042215738150557918358176519457093189281198003236127642847706870455118912474176361513119579098768817850196452285185978055042907871379774226449555449219257611196978534092220284003178543304282407584164038862088464982798112873907940706600680202137071197209642393435768433845847872637030922325874508205717960785898136126512357717556403978840713564367493677653958947766772374640486534677611561043650790839106922286890440190754364543224291408457788325213807595258506809551600977296015233215824074338618641819984773889281949321492974841588948121410012898020892610630890569609484878730108214621172894074193164194777686775130701105726979206259871272072247103210449313499059117129820174305531775967318514683881608624437122764760177027519640831645926879234071897862669856072286032682473301378709198030902251231964712916747201757106864962559889271483857476175266976757275662343976726709481105543934903476615470132928039000376037787763524431526971912161177769354737569560296156111319615982069296170615400610583632362009473940460967238082889050071755954544375194640699783818829163316578584712441241757981786739085906543791963338383002052309799668361859007845756240911813633170207744566876873736249765445526767890075899114010949253589997775271763067254498197439018935630586747692439493437091665119640722814127959565604498220146389125781937146333963275587908363211192988459945846376666465185193267987360013447515616949191465581897974772042758942782704757391648507167261538001004043238981556721365762937684359578049382834511038315833624812092463503815479324522834021743262691930308212653303272745871833632327142719468538453566821880265638454980922810927618265449322131984828488462642707454191089964943104686875381236213215200004781955691394452210305734849114085790375879378186052106882269716687765704004304705960656647276426460989706574416514991368925146129027357391372312832621494619847774699517614668974503501853436877930598742397515959746361493359769155976884987881830392792824248684765414552732897183128845213750530108117234639054406311351780552751480158976668917783259989733179159264678594523066321883541663322942665878020894624975507221810355675608674687533608784958683455646146331801210015531022938900088497575677615327900587198071703372560078856104959805176586777448762178935890414991145111365326104851663280477319115630788013572663105788715305019349396167839249856172147806636348810264042373895833891298956936485243645241601001081141193064207577902228359396680749398528460771773094496394258589980797238195809255212886563424946636227283054639435985955557931893035851917704332885063929191730815459111840657675157417429715087052202873825518048608841027770359997277646500965641234609071275959064186383592754139435642102414381525502035888165979540751667202846250295040963552937514529774213267675793579575030658199696900833476703210795581142132595899883762503594511441161137696099630606289415011601568756520570752171983003471519514820164857213655858620937209538591311489069075710526484768401078830972968999366949215778537068306071833816714322331503043712329637773377032407084364556490865795723723698667328661612227318010215963053916360267402129720341143717757531453385889820276438987457347424447635580315718015378639924054618577543864601810188831322456484593784348405870239051855861795693463921027953094068232751229211437190883212700467381378367391084506204856515614695541589211743286346831866588159193531322775947977473123717852722602440672744847271159478871072106351396259955640478254405143799486104240103314937186521120155708386656550105392052197487253214165234255835248594904566811357855138481372383896788862536112349809607324753495609443274893214922015514969551440613476263217987304997611375982202001774633625848052909675216683223409508592262477517634847869765680873898168602066589373198056684205577579237387037850555357127318100942246140955069286207402472858103592713457264929714111499027168407907489903701653840726906303627168083890084489117825579543123231635927000863508183766560981526347280966675115672900050880499761681592622436782600696967382981689280947940882399147523416139227072626279518030762251631869490772314679241969496716807713976254993519006812341272675317599694383284566162721596877585324153147651887599312858572543587364095819307319515771933490825914421173717136496250514782935957722112983251699295557240579325663759877281033239330812318436288298385938811470211847447648344640807938865617053309905280029850319839863015774357249976402918969999050792495526583674851273331964635297894822220706763854916803481783064388261613510854863353488525801310063610504055484521258250738367809859679809565673735122989319441694516919838393400269096706173663852851514736176898157697564976645254281428378045394478462823045471107474173029052205724201157507042710705556609492810840476224125863471270017084507225771234810171485558854709461426916674932645836167648370676233690867712383162523035818224843441119897767510125988730048986107421485012670626359076068832100222639779979253742969286173741656131840604578543771279107476754802918654258475420420253287812959295428710882109293810666808960333394357317388007055767589499234046502745528664352220371197599123808295767450854351021685078712901517828315121933680871982494956213350883915050999426996040223157120243315357134666841147748616032008334891740833488329580095540006120354101080884332416429674583722737668710902648530227727966886857913490364544771189937658346768873777291415564926937078739276450005560564751452009701457489873310399080985363458930567085491770971155228478906881410797092540316580893338436438802044265491803096221872107338157852403921770861354772797748094775290960823355052523233330957845075942219032009777798034330323276040624044377419948657588086058933902634484835456839571571121247953656029174916394728285846742749401267119093043862488468246357688117598042960096526804239421824379298913120559696707390652516481833906959259484876875833064888347957152083038470517395503692254827759210039312537240540969602679288079030114734427430865827214884049801964916781712862672560840192922212075441342801008360617937147851301182878601539344938171123408599340833547895989766857207238488506693559249077398021597335311389468635502739853041090071400726093296860038560933348115405061451638885949740679751937564932835216974395107541346905922812696022353908842021111292981006370073715115357875609923277819480679306372965824280828701811025779463213320447481842636681355087272916168716546389415732848136810917329631955166881604610055481869601208484733229971132685094972047885687366673750691299787555954188370222551747144344152867403963910986996204197159182466805322901029778593901474253905995579382487288200562631191445504819457882551460885192858913345204961835914532432617971216745258101360826152045044974401779706274599877444740099844372612953131609766081029916370220144249184003816335036231479295258068916509052495554379718201506006568951212550684085858418974877881516285524248336246561506206404532155783464869114166132638993733443956147488639832521035935793134944386589776229982522974521898052509289494393874588301995707098457496687069346831740216888114412611625686481796281463481951092231034771096637766401175662962764271889571963720417816790901727009611702204794710232675473560587911455689999644728106222474842191625363255489367399598139469548968402911632921144415849405210125685544633498912201166708297693733464089041928156415447433475976599883107633033093168105634471834028749692564353491262892857781652516970569531297993262325789090268864390901071667133535940992731506712859556497255614273968978512011662510909337105590651184921357446754180566871056747543559949803508504097072586214611926055909784389395171937207966350419571126148813915982405740207772293435668590103023242961363090849586336787210861066881736173323047994190599211109214690781381497090936941673604080599964609381086337129353870570239345183230658909571284967746897023585689513775933352209644604229590484292060465829259684576489695178191466182794910043369889317098112028505503196056931170213876215699719117845800537026547553502861723306540742047643083128434593775485097917253309475780625355971153823692906543954678737260676531150022639615585853823248505740402679722414451600442593460291791458820643863683203158504170868484181739645453472779668510090129034812386043390519033127965412146115813233540411382064189070135575442455703828631353884830157426921372260007099933315831466549942329817979853209760912356344283690544289988270945697521998115031446338602755120365620830731801145107149150389007761672559777297425148995755422671717850898269615433407927846511508239908172082261486878493286531772048946822815696264424507527471038054026563705813943470310977075620342611918534044209804257831717897253738700688328514669423634854400341570683142990449849083819305366063378652421183940161216116991419550451793879633659009596745839489928905224528276356916617267163800743717347879377479540172186051729235178644803052637495500325596002388748306429178834852694706050669308228481107213459644738681280379485625805336383412054140986494602334557779492007939713833736465552459082289620640731916112272395414130940714856673228477062116286668956998604436960258584811032669608951371401178598485814729901848853250728294578345883921333936793362411237885739454394761967774491132011614838983487819456351098810361044066828205268007959677655726104472414585112332341430948396049709744448374309003723804447550908082133890744724785940535899393885714854060696387439674395004955333887269620445815279935349625910516815957332435182438953093158153126238110539064769842154762139272081925754530523373583624397352164827643093731462797852841739348515462335666124641222544020368798492765107785211817292261865176269907244163039425449870572799343067886621586153345523125938701410304872969501340246410071889420625029059212876845561038010833704003696026595572403632684661437849326103462178965325690116507817566811771564685782617527479090078134327249005522943473443743465411579784763930566136012596927646950922568700007283113356775095455027519049814662393902212759748060008260027872245317062258816377428065104863484909167226543492165764874443466763250654563262736593825864248203034811828469882862144267912430697789705167827549323128544007046182256771534238184741718323322191919093988007874667190289882229703009416851230342353333536020167891779039380123159621368048839329087267983549496467240168851833076857844939801358325889387697934596477881108957416870556536776721016912421799472049360087675764225759202215651016161987977943564902426801209430659198609958619415949764483752878698855516415984121791170655992335664034732687747990570027658817839956480029527124686552361572604488307262504236599172570045636524972372227578549005634118885795090670708165348785593089912516845631210754334032218889548617233903692693092913846482585413530098603138412795845273477821640039180208107700822367209938110903122164341311845947543307561372442138372281084861766648573541628845028193346318439169393046036127253756434914305430583640792770534729390579625590016867705687465773785270932835079308053374917581899707520520457631163989917556486066591311103298620935354041066510492454499278862650969095295398641057001882690595203011114770367449371749318783051020849887856410757229760865673395973747517672730701601184613595855560703463949252826831084637468277268935630166550495188304844603246074793534474345926944963264280620685124614015351971062582237531344198458255595354894919529143337740468353420499293490467349449166923290893939480141216226657622936368456747099447993819003302330613625021412349937535750659846482715971135902449825938428576179983307358518030314061307299434381010611177088591056846238234967241919984636827575877478503520233106496014483207584654852797264731461596364564779730063516361174112290112282404469074150018740350398459060666202608157462642134721459428537737221037502462616615581838146834834338768675350059732117189481135683634719339585879496074881974183496121856014380151584963343483890715220155952621397410601542282935237337882386942843124036339457678619218722059281734681802522222858167373194456496668712272694976753248611866045569194126407417310652221071636061740172820173533076021312545672383908978837335007633073127673674362845930708488262115527460066302650315666782931152390154813900084495545570604414265405561534618406008524023745514541430577762347122813069908659818293158729093737686162732372747521408765544443538647795424695316377160329806787570857748789461400391012383256755813903984992705285238368369209880655274208840160954580768201674280734483188521235687151506121010533921771938280494135400412427496260730710567058326437425691928404983169738956352241026533418983873858221528042778903437802855832351658842512322124680997455965989696354631317727787800809898178491548219935982265303418389639910971845994168630564141928609704444820751661884934077309348203077815791352386520580184370887350573802256646306832291045119678168762211676387865003344020031550000451948120429463432774052498803354134657682999093792920503920392908025834965963845430705693974745301550533916731842532469064281563813699295441346093377387034241288560474328248292742612202895109531096519122726241091771671756603996236588948223997367906326593136385301719059435814224932974429490630795519047701815338452115901757776629918582288985820364892598198994679932154541375447348700254634930958427905870604094004107634011126658268573999608701964159466226339233225528350954328209665780483271639028638631907224820108001915432144828367351757412385436599909475863000072142641786540749555050645559185215946977849230405340507631194560232298910466488431053437414777033495716149504310192103887409295853147730435595464104497204035657513889329430047596124372282698616626126943721855223834558845462735236203008972110600942532720511649453617451107612901866506515356370879477628859692312348135457805438454926098167403709259504876688204853612558858820796189473327941920760335419727753516801743911309117590639616956898845412405916295739661900953999175112848099328683658780444853504990068108780018978727191332303893241575603985386459945243032703396943284962682693228842540562796181706580372895285134626902129506705533038954918662262272014323085838188724531385944013429020994988054080393162442514439098242131374840264097749609682678019072623552628111970128059453765278998083803401740702418505777266111127002258336776283271814482953657955476170748567239757731668981944010291567385506287211470131469776436132434356364661579669965190202943594068329625104926797984667287494156132468352795904622633875754144822652381070887237590108039034700785765757132615895750606459148017976884210864511377494231720839216294955956815874532458544526866400852910119361920637940629357812705819536047410380613584354617546288844077047749235737202961469997351970918690509261960594901556746444950347690933987235517653289501497541221006537709516131471349108454694506339747178654605398741974727653136217651263336041809090511031907211787338173111912478695722534703103863382695279191642508537251900726744613962008782026090327215628357833704585572988649277839036696592948556980501378340259574665288390604307794116743168575361588635239780897905729873585319785131962119646254821210712105541761287262883027781086799895621497305052084194912777673264934807372819240726364285637236865663942656027261151504335837108143214335290684320031919641562092884453340216882217848382747387981532205967565019340505665640100270295719845055063887642623475902195400722474853496315465930176191474457371904213733860762495673751029572257892173824030197692454723675899484914773220450464404262245353420600636834801060128859197572110043011124216680596775454598211131092408073572853770110213025426596514729308172459370295926080863055914239861953821572495172137349457025692049614277109114063388762599693718221079029994436696105493066352079764557991090525290175916919241243974163917293167048863176442778422594204976914255759633508164327201734729398236699730461923198538929968381432664306385396714893286826997123001590020891398005365628888014870241261926749156666078731164312010768259290968590042834775050039841689260249119761421008913334931608249944545648557136955290162732534531302966195150797080738701900372937226683994201252079418733675460874536856517463867416567938311458444293103109441354000869748135538445373517028639927441872052032842155637898933918180892421170580233921236892235651086550260473132866550933293962714986348626738231988583530138373810212724002386524826487398295887962671011300341043967667114301512585917482897139133476005816824565725547756066307978034361138650440628202749491792300053056080837091949998225372880392879213751066570581619782356391524924210798775247618406734275055868594735926993930098555556053463691727943194585758791742267364700919508237622752365919654008957229923260906932136388903710468979597277086173862472581953159728727852502526543386274278149270704193543158458218605123335601272498752270748060434276250582412566923631577951227688770486681652849772807207965807582820995699441155116820459560431523332173770097887438153005462166527539626140882614470666307190218495621944240116774052730324145081812028014685445437685350513926627007587096979378473125468688626557614292284222053597568606268523049094261241493500801999009648127878819042691511399215027028721123684106229909966395511827869142838813069392231596563287445500782445814439496428229461370598434022537903963559998705730199669343137393430485540574605382715614486437836158120262111466814775322403935408540487743974806599820454010276513253808796495015381005454195517839767742402644349552966032670258292919356090791595067603925278197550835401340631585656657481257391928988380078830617830388661303831633773882137887265977060351757917982990175345877857444415354544360911919940751157661037512821299201482787093411866084759046443731668426447282208385781431881092364688814065422346752107889789832433080699865320114148554811213671869043800614745779215658001947238855011414536346506317527794823951223886425871213957562130040749443758466115863954538835261337533308781597635934542021522869452163461978996854124895975634116837034901565632921409399073812014605867348765573703994022104821916150082008314275749522782467726580929594394080514432662749635280719342350182045429402267051812347721685425267879604868032400156694862223298442038472073430258388147912263748363225184186240381923441217955960638484884040861316396409567722359384282980433513892785377574895426542282527002953594784807143297730676953805042119449467176590864606556287602055352631197031231001856247426993394401334528617102706248402202775744092762429220909690748135271895248458266425418575013390187105288955604928230653930178563720653222572125623725965683175039788861728965432813414608639824886857788732610526781266167287604446901406637944905226501930661842877836532750160974610704342134585309741812718026088097733965235011936381117601347138848478565565913761612906681829455266925249128979895319124021171387983884616556415411750724246504326912305479815089466325048507299895646515685789923484784309682791921718317489314673748257250899684936543654869452637051810907782680656805508460569545577109669402128848151529678161397362585521725961355854698653188007816958504761215310600677276204479299029498820830253023357798218527330327590202777239410176600853518401634124117062235659852790494519928541895444524965272795349563279055838015171317973177442816223176025593392488458554098474499958453018454952133708506173339624835312965818788024368631805687593598941061415104069795894631136474901438227786793484385024892885311413445596770093277093481750707819079786971568816325233184146955128188588166648813832410698255176827775064691126894291154102023142507670588696941970117460379840147803222545095844368564663873168647186318471381746917069797660181637791191530773876406613616397364660775282964787679402714412518785762599602067973426948864175076783465466885468578998136581362888746319288880022496264988034606053598389668834982825710982930849925437478805479114743218079570877985566584661544228053733577272003733759260297716336482240096440904491595500847205203664663361805384642523453092409347757758769253311412028556312897982091685922878502442816401392891887283898242802725238476710054344073856932630915762851855893994914197060887298240290146095747458984913075969328047199760613400881307184393471095907344683440036065397414249674681455629299112705514498152632022900358540978865259177275793318545208495710180894864032009544649911945858329147257087509344533529188901198203527484666914575171911550624432226606133344051467747565288990953188033893590230245188625472066948490012664503076728631700222124235845947774350043009976565422246490058797247251799824256024772170277442360524065437722456739053300934006742870731471709239987293861192642924416398113172041490453508354000758373299353645748643823389295533964294935668885940637101660597221246675975812126804157720621908042167422687276674397123693956898392914374180923922739548603882652100935368690270727604276230759714809190577204646365448905194482737627897203873493186498873833961086546506736851595302888735242422200863618412213795097127028177887739881736765983403784368708470311159033249987195330137759643408055668172229305006786025457653867133808501403243000650592277154905934335236030670504426897235188338289450117102512085414287351200543162475436981084621147811547944564167427811392139016587546116081501136540246961151521797700448460846718543825069244400318043452637485391493793825600227531298988905989747807228640013362670124891894316713606341921871972241517413641888564271736254534403241201604725363687804702048165746126556821532684169101941194835550775653039550786920487754019183934847950681234199361227259644402449091289047976904898737108699924746132474897086402211787908452182110358798104044783088337699163020043818816245791267642826924295086886538771165236597389309065778611556027678415034607118661249162380330496210000182737015499212606866797149564486113663254632362864020374556884608203720882024886287734186857112963555488647836962723576084906626810942784123679523097222052399164427011096311711828316092248190372405515337229889121166701800132091451180417874786290448257326431633080536973739829468530877671215869706541198472425138108229757345618782751772103878075938985933317358450989377480389406754217109374787378583298357564757690369969933532129322349094838382726410571001717742238390299792714754216170902372281726491850316814015589707956637004781477970281266055453930880212772041120953222465554025708044513709237274298619173947306616721710372571713674072496188287270902423840832854527883908801216593550265131810993456832407441159328682432311249035351548431493328866272969160333546901334236461191603818497264400442673107145027587900825583790885654553579974851047340392166628067185768283211971973132449712460720062980560726666852265996554423920748727667422091661314956168413827089255889210505640776523270099356738521399764030785353736839573311696475814968651556144790454221220190102629588837147265016774658988107058653144233075816837894287771944024885333682959289297490452329492414650092235724982719679534928489990200514094571329547769697802888435932331533177379779210400652063579286946780418141549703985814037559908794525821429159751812158798830059119506210106009918004721294604377556045362997242864294600358034694220581976611846135855835623480785556462081548467303382339256821727136378400709342720994799775841092361685742808743557680560470829788095842301834058879281663989961257573938510078906022696553204185800414446823304289442655191042520789511467314294700104048028114804909902250340771358799524626678270757758825060353874329165896783753623511417025500657132921868640535958623430631043695785935581483771903680048838836621467641601856867623703985537809814022118083116141895319492025364353978086015432247314742176741934591114482370976945687680221705523429544457075812396588777793994729461304764080490621665050163043616352524575940386866381550070305714390701963155379789297878809039012088097870506820990186912151706700069850852730149282376755324806667289398865281395782285633776956517988470019774775026070399258203286376822511558858253135390603660675372526967656122864922758844256521471576414950815036715093700825999922533319374326736001893007908925734971792390964277448494711939295514290933734192927494104632513860792152896628177592169416988432479576410238415435309845039947612167487563026374211052737592913462547761945387264991460889363370866215768640592164991392686993900354946697680476025504604815948345387567882152459227403219781713872570861611013221581330607036416969144167835570070523946987947439371258387907983891769696278986125356926631404485136853914601585524836252125593195524919124060718792647343972595823354059165847598241562465945143296225259442743873438390049627859779705859962837845135709377997562366674472511043818086378875938467740526716414882331973199516497021906299430837802790257324382791582123999069302972842749423777179557471329001291727519499360206252997245918479950969153303356570373257535020373224339983362917795569961419286035781394152675848462995637676471134613873869976501644507836521107428990606698780012109730209388980259346147963110903061390580376245010960328171987655265410995533339833098274107931853006184608692637421313517163040869681329805580100932651808475571830324041294909764438070051275375927489770285339430731949570571822969605022739189155427411574658055390216326748770171483953772917398711112440873906461761401146493232792884730468927592020899974904565090169968860581714886214619146482536827830721273594162939323005994270862206001302416966184914196353033214210770258329761947622903533676156939169374951520680576144660894907093770691684823644165521087436074021450404611506907265756549337870329483899141705712118435263924719500148003845074871420744141697159624401487148050280738602391850279324556983007077249580767065432745752688297693025104715357542680224717133882585196397087562036189298868295214035294352538624615286744198059177338120276048278073514248496218598537918529673298363203309952092320332713402457568382143190642508990486277482551289387867707890481214490199504607308949340116782445297781297259062426660974520014005075891096726779290969886659649295469720025627864813819740281205596964557899244934866164852407569185634515315370771630886139516047282720817367937185580465061716477220693105253166473028762711455062395910410809441299111053627522132109218543052151289248160713769167863676969968644618565233217742436565607548181640301005829451234570248131863118034058833465606852315361293545240642208264330712618802439255177868621286761949238801415542589959627563417439258073978164538202765389126009689093133170220352743122287997580403944850594917838392007817093428640176751627510572917791512287751347808153827704156945833293602314472579777996864212184781354621151182502806287629860618680019256196504056509412898531373559038978416660702728921547323145057746655203054296947867451140446081304708478432124058986398168137144393773915984879770487548276093309012922863291466227259159622299407803397902747039451116120054919105221330057397481969945329209448133233828170151028654187381128742701515922881051859938227076621428856881699452126320792974508149480103378654016078388623837768651339413727411635859970341416745834757844960683285606345000872382681046397587183763000621910524582280090834505764654276832908094370022902903770387291872792126863533812980526013740614534204841585418898827739585070118978574137386457040106733195925943582974045604000101501651383304898350015826725246050077759440012780415691699547450521539795636884877925430316896221502724562737387588695732557935257779645345742319662190825449714053853245342141270475866324638257697427522929386886060293834576532354589802373116094339113415542712699586559184230980170732764701367878071659479879010059759171407920730628898618362687206580399493958875013836869673840004854791368643329838767116873776771175853883862093379069085125074748794231507531786624246553160113656929705759526065954167332817698471783164057229361548957512203302977995415528156871668785217111514789304260084980208907990041182989116002241935370242416807172285175525812975383982012263739485683083697110563728510575775982047694873087991482462127257032032613585131456706149439072920737232406937813786423102286581879179279871349701787930647391937551451032432927455456944659437441512496564009937960640532674508767693353640272158531270342586628858488060814739999042814799617494657993506346019669141405908740064085138074712132607704289883012316219672261451898554361584031563056685297749490930525089143858130987330230250844104859869017842820169492919769699625149404795793693473818724268200003492019564320294502193442552539111069986880347270296315223983019967470913511838110453808146895157275713332871564706200013260167948250605815281602455647818844803172577973714788425998330998617163754655990054563171411125790844029162979168581811944631214490186794963834330178412846583715682284344629818756771443112820666424810357091232592895303607502452037881898210930467671489989135063552951647692425601123456528862350560531238363538151561115300000868241459158179417242519412067629872292997747869038315824872477629086893423739267872938714773037749327089333700445703696643049962760858298708599597558564177201506862535166697344036724062181256608108876757788195339058825046867500934087372162654431776282645952868218970353120916108889092869368325034780467750150942645361796909498122035227125412861060328957936025867356182789210275198069124773558602264866839363472071344658336755017355116153892558043124454620100708360139447724741093481172024536995134156053316025606537240119626172687240561990990648892200245987862418191475553532264370017246555078876340375382092871422134722382419699405529116116597668149423770414966068806535056664343655101334100980972168993368374185296918712031465842617177764988944522572762495958570580554229216430302038951268400397384471300424865963902349939974137567074175702011982443600807304705996122370417972223261374742986553858023700867168286482021650705662190114635841439779423206567681680992320960996354725663853179913882652241655115140068979391013373893182021362491984889609362025271474900785194847719417611065057065715500622744578810485557549157819738039591444832732921073940434870262970948006652629317692082905740471263810122494431410638983330304742149225311914300743633521777015246047782646237302975342360405301041672884277830966250107989428134455434610202765516030324249615037671217310310676059191223642540317305449961317216919032550304146910414704827039989094479608930608871218678848089192120901652379828617174441124377296693681714584698387013321007173827101060010680590635200421599301631207570400942701979970074395351263290216557126948130297725581250321368083726090157722776335214623360576597119947434725476170059112651288578319020527051049572086372936888350778414657231060847247335304653669452969155880374936643517811369704670957769869907152234000714410391143121305704938766848004156079113609025344359262461440202836435171917451210074755071349831786937632517697278603579876761704134760893000429258873729922655005062246647153900968508156562076114799736899112430550305770159585207474778617190107109530874630983118204982400121495892566953737108486569962308572716483632473208033533215700088334576135409532755271486329521950805788605989425724967768624797834169179694861515934353062322662006563953540354796582404850244136236270168122417665352646477989975308890672636067206251263086819871669618686282297737026635628685752503510502708359509582513135746437099820968814493948259722267262673090088731514632061315272808453726960004129510784281352965842169732168033991010985338486893228505193498379866986613076095922589056316061940768794940739576098016459816354677442538322941874169658969654805909117458690160931886078660837927766002675055064085851270300992112523433372768201069274894697692666483705512260410707265484428503909667819694755582551981781226330698006037583199838189491330921802142032163181834050341445930033972852713609796873914921023718670947958550196229080313203758801103635719390156414003704215758421214634392510199445509495241546734600273867198557353762023084485978195437497984834094013131282583001048942431790757502245196902367423106388385160708874286785112019176870173634342043792345114054375682483856326599257114661346360674919949406155249379131447255997652642602163199837678746611665718092026312285296663862154077587302054813162884014097980860152032229877253225698963280254972794097161342748031189032038238889828200815353067269452041963391360605418810591166336661154647509840024879886928818171908539259025117125899101135689747723344720057229293197454656905475625202100166774777699163879072401142769401675164938724236207260274087293884641816936016679600698691804992586666813034270519151971754145571123760281791403075571076548207703075551165452661585161824127347391196511431038319607584969931854696846492373983285827684721324293045857699138885794368274254851630796313506343726565795233500335861242593020508039786390909747153695632455424039575484937143410269431867184253762475952822133942642209367859775940650706774979150990683325340739239591409879574028664544612243774094984808685766735540524076937134893092859397043668498209427144685800194698573714133942234375493448926770964188114384313780494273049361552009883670430244882949268350835148862747615499446359279960345998685667619031002029537344282313736920508164065897135742556086462685204247285786075661075182742414241400123570688468062775695221876707450235349608616738753501501986565605375933421592951003376840675262401106524064377250776315117956538785635000111034651020659545142768025761149369338823365157215112918263904901634155782852939326149494758562769826476646770849118778699615610820173119678075813031268899581987238943394102904354310571920481613466439759775910180402763576467024828169500992538654497608052108483817861053549744990186195334992364953870297186540720616566833791302040863242378791757715086746556990977228968230945387847165210499970901238635136962816519904635814830366188031690366497439919642562905852947061277076791103473012905898674121277903584914340034904113696643214020559269113917470108802629571356521932811112939273055746129053209893077854241293047219608537704238489509783795939508586359076124434183118998822613925080936259915551716127206284574427368500701073103144937954350859459764405167882921903645138525899207488523866574675092214112822806029262428169948491617673628630929109085192298314435738354111711779207749059352103377570781503999456281064118435509931811598368590207066793664444181531037021833731909223854262451481433331045669167174398721595847157102735998789723268955907366110736028152233502092028665512146165532652197357527947896102776078895927348623563575702968115376540993358137458671828260036742773345239880057525442940754346742053320572073150676311902960085058128309990712783200416140265443183694970016381592093658785745779610417980434667931452934893808712698285955303839508171188733879079213822547103205330871245907882630296431276549493992235860149307125864349052731828570875029432739653588495091259963468715961431428607532498396090926976909529098488389479949429823790838428941256999572175204244947120860740924922199385132354154690770294133447839808057452043883873008915376760003769972444566379180582904611698739199258061921328069287077646301788984015199742386916563803522227854991256230879402910141147492221837950912027374317290094867174062488592657495792560456251749940618093144450223223942660719614830509473385558249197727693396827607124339370309608239491879466307154491133926854130486521076549517507574103897367906583087191315078488979071368852103706246433989667149484153808696693154594780148735462786322749081986730654869662728977480571172711127079042421877344936044546174600797668116477258295585082674720952158986404664386355272525142587863356286665260636757862971134321770269769390679205344462634993465663781760047863857595512561993857257345133745436337396859248489987688126949018011957383368348114634866683746238625503462060516693923234767003228294597313189219279222702475976719187292103938000545869448468974731262091808618494340462900273562083797480192207375134621208147345992827303106083335104581814379130577390726890679866489581222306920813434535328649460150701889812821301974381119219831875643110107192568264113818346874253406676789905418516061235136238199059650557429878771802805588546443864328831181726111316953825120541111436106280122586442141510002506319697173801331488712726447181376030525179264956456362933144814623414450139286299827562723103102353390785222781454029673046791149679217941188862801185492304619785380836041140455930741478376836030316534710022046417283421846106715139970145823738289103308382936538651776671324134282916254044113442899760339352313598524751853291401079855627632623375938737143881530241749129969642379327341860522169422639780517506782113525592097324695322980522139487137600430810372229817970338657595551324330647066259892726107831830357678005086088472489150010900065233143973235270399796418057700150202122931869416456362189029462345464040288367190486465561649447364406130192957163952241906002107189609951499442563496964059869411936322536288592346522011412206585615013175036866751195273381990036646837308636833844536847117151511159180673057236521099823404193976846706372508578085507034195926115282749811995719371715537785699668160882805459596109711892595173408139418724455217011336441069872044315718337277593673703061333340702725066138311847242014629541307213230207931659669927461352769708163766363802455194982661327199984127084980998583345717753899852277075031700642536174616858817902594576356406464922788162862041019473160115544546403500112793875852903853768286775850069219610454420372597013627655754998992298482589899978825033570639416982881639255156830741249731804750409977206232289054373401614913263585578303789406764462618797334449178135209027412144513708900785261120830844647637359059110796851406788513902200556172598002310868590779916809808819762058085842257951282837537697603828404339703933501895554426507580192834086848570283002222978767367228504918657899355075083621791388966388278654693830486295938933746503017961095202185073171483387061421360213198151481702355984010303524447990049875646427892436184877872194878869144242144257633175655298716617895399179775861545014379725500886999170179874521936587337118112584343047748562360325061133946031079013962443999935390530394669465134781415282650745201725871579427013452493352725607332202421476072856997969385591975560311709101325022009702407344627945021968361158809646193802623305178734733617633313779609108918046450955543040435023261877758943831865099074703958391386988510039210379031951783689248533589277564205542361488287271921451077446565143190552879267491237568293442199973040028334605034378668480868372391255071198520156543798231205219635107105004622372637235283701172032275764755561964752219974532378767156557347174936884846505846258810407842080289600148122590816885610020630091682284388151175271707215561729817923736378141322271123166177902033619289456885263129368213777082974653625829684179778096799197035799473972315993003717433250729959955400464144639912054879830283371260530289850474242184152529087773421829756549314749752119473098739591816342492864778512154571174092210690955356106101988902622463652100448899762681295884127120696060080673388862459584549231971721492097455563239919865660494476647253960461854275664059749079070367584935024160483613327321220821236672429954140499594868317869719885317800596580295747085896770117064529541494176026289539637473659669304818360859831896074035304743190576423923966232060172024313645020902592322095424483761080515444282740146671767261581977972107550549611038206409866440132763001997873801550703818022238161501374310657537615042827686612442128062266608085992742598581936545119697545896324663442233655560985415229985239741952542042919941144149342274502982101540159682280363215242637296708591742211881687599402306359363559612895317239364669069460295041689577182118610463064029407964956486789464429011278337618420137445093374016810183204082956218967165143181918006382682518314207673368681085587111300300648849426935227567879635959812995865892236957137345382199477126738530298881757370372597281101032802369942031801351148289518681979003492589520565057081398157479220547260364061599268033729475479949192082555630070993030485706769089116114762337488422263419615756725079536391890110733665470026413268454394905622496016466609003866128526755691106445261314319412202805145861432520374996032299967621231296543601987260306159081134143332039150425831330941367719953231536072067344483324709632766413040915526304423838025745005498075461952443317627028546686210305789088844330853267638719287578739214914516716546979428225720989157179607758093068383459179774327483202998655212015376440423767567195550509457081885608043576974068307875254305407336085561961609817421396503197482688906127932149872727707517774908390290482428589791510894257631107178391095769147635570875270578320912347866348401780398507060541519774962237513242389495516410627487088292474015145003402419201912555263874342769874237802654770583112469165867623329997800407648914687930700202398005598205573145567176038066962790911850112469605580065887428528208952865664231573585495122694744023386485570834040929303176633152610957759422272887510907689895945823601054997050905011413552496964951859739017426036673492298413801202144482862332384964570207973650497763805764901753633703759538783919112092028258905428714887165546425208898493420098073793073886646323597956544289428314262562541343481104306285338277032104067441967115603727487066597741629790917243366416525171990879673669344496385030276013653173858807895879490449875359303166885415991753650848285614113537086172201357959899045304848713980788098042001400639978986696091399640344509459490984926942578123724454138364406735789442419374837553683399911484873343993952822963071745218594068111381264639612635601947348802869686080962812585000743089689686379327875025041131438983195118964490921672611072199232853941141250849534348660887705579118228651780826449252480745393738326089263042278054862704302289436920723830036753477106567224217422533439659896916836285353843713197258862561073519670754327742445449109349695345566707717433325014895889561848950256906966548520417146556712401843584718594801756562748784146148454660675398240193427311949813260015875791633096744898768418848415482682954878254457105843877821295602521004012078097353631277418460132478746022519562182583319082153964864668192519778182073758184449925850815460590484334248577363197327455402715975251231078375225895911460296159971875736418163746923206059354961491627905717455921313919890022899269861844983568562542668096544295233609614671797220457706535142101656920317343618664115422616848245006278299213792680954049884710307889090392068583910914905100165865350344648353619677168627557613505845330442666218757060218085773905944328544289713974547960284809992221794369217295548051494046360949370999853294981032013639476918672731993017292579677177233013816447650667862406925246731004891877880296311650788767866362653379290818236790858873365767517317974801000340559936341256106549179158254224835414768196903073137342152318990252672012475536456555877893610798387333759184068677602087334413188474330622563932361074021113920917970559233989710566579553388185963469441811697279149150590995622214445166521134357847005181060681925792988745719114181450534045777289748791975302153399423356445630313850186656044886565750915418752801443612365139954084280815416347432035440904559169605184923802984083330861221903372258023458782141893368970465954881339239517505515301403913739407923066245753884254462992609468275322168147359170172560956831586231918871624452966081069254913582980245068866744139812976222759486510552084549105972588352121357901262559068155851501434552032934532256706778104577179885979772824347941718215677225969212824300883958382314337995799695850965785727234466370885303222970930899737545137694372913457903424878972624936398951897340462888390555523763411060811614197759938865403025430430160487977135924360395792944053825592291955813411599562150875881822312615842429907325205902345046250765563359045229382653664227693501028064385108884236902627020100641326067887270073356771627185970667135036339675282495538374807802306194960665327317304250744670107655527081260288724439234277899232946318286936580415773344153194657039838514370919615630010376963477075178774629179793505089515514029316859631697599796538128200024851326213957904169755374537005510823138460111760989376000506019692422512928470711929056530501733684597844997322050402196152249402658914439726062835077012356669946734195355445087021084467621176154197993918508645482965948233946913689208412140378873169795277969526672697741270710455882786771698416364769340462619496941214451123190366223435362944213941266251583710426945085472473276913731297272378490376762958965110845086327176936184382902823790750004717906674302845239177008888684397365716416526724163141361213639040995923163754750673706807146248821400935701419468727157295183592984194240581031280375183618023848215860857842400097052279913451616845220006228439227409319069288941166243299965501154102595470419967915598182182625701154628002666389898006210187056930262245337411777723710933176537509937663162279524589043613090983024616613005212394922155631053921068555432998874751262229913702186266301891763614791992790534312042043214936611719366489989424020324056573127084162349266933510839774374963964150973011496773452888019126171586461330869896578863004768468590496362260128111137490467873544348339560543596037756546786035528177955091190474311605696498933966336014162026219473714641602492187801234727866553503382656730522924107278529003121036743195408188982197729692613312061423205270304639935942417557683614433977068089826074840484532897001241625459855724323944385410490737672196384098685431288948874813688802680104817863373717833277092292763627235180558981306393912601216880141452862027550120163695857808266528486577670381918153523558038422573541416702848617801926369663441483102387897163645601360611848642856133887027659452842762829625845785647867204711386242705949945985361809520596974090789875232172254939007318882915278801626933082554654685511204984272204866573511936274866631110040538394458635081648957040340052469250544654307563054010032215030064673134535368975007596251630668894011348698509526196605715089342994020711731647669002669258585897176938094439383254640268339901066564615368843103561167119341044380095199564952467789041070484006786394360438597354150560798799717150555849151774654074180050275469570407496863502553957596102439528894428640640883049893320502450130244887545921159747098680136419590350127756828609203568978820248118312039905631665693153662439263191865057198153654415729260295043659467113816833617294864691203483299256521963347155401763240798758126574069122238334059999000080218157944859900841016286236260101068215674666303985478425275237969148402898490949057544598744004647886610414233399093970205224183659919491479649772070443988820140725941685853207850309609964424436718885543777059698614365220007103795574629923938257004600597963807887676824443356913716443957320644121571928471593538269497496285287462774227286901012757760698884687238242531772462955551176187868312154868298048995828514073330358493452557149477315331337395467540031010758106781394912913709089438406860034633369901287058469906317338987795848217311578391330332718433320087421378812217747058261791047324623935833301245182036778989210291488222489913013837017367048959248554433461323215867354336531021230233752802759674954010518064950446451462187205467663798500934468146947805179033776639020557023060209186728514179530883802398247779050938386329506493390911627904333399114155490016652902037745908018234350664966224334549854990007468518296238391225323802754699401727432526664243180170864386465543451870737560124698316828206114510201912569774788047924205549333907252079518387619446522905177782719027169094104164019166141185572650161326553323658727835274551401561073362988002628155480895705960151394428626700339819207130397855133286142651437876109025758570695760182257782373474597525066775987994720002639358336536222266822839108328063652112832030502430865740220747307013117502888873146816710241311245907024790428460064366154248140431560238123974805191379829243135786933930645815164721237685086027398044903439187557910194215295362341691362402177278926696455178440414653166920353044040220613055735071093593924262822312669095436130708216338708568514322960841655899484846303051293753973782588913037111904098122994726700888063120059954268945858118461378997929256679248040700953492884588601990217866570291202209396168482545649264026025786760045612002132086811950565978825800445866138867845716302007989916431800332351383849608294505543457073870268223473714018908562108970965463805850798312920978001625796435890535247330919789082378614450310415293348816054435734331168789237789541961851368714533933118434896887534768617931305553497329112475980453171431237137224813039266477443011899283568949374558509663262457669587699879862921980517711474548862791028039332510220907011496985434738356585814253743535628499548696769583323923284335594341349700517845012505819253444980542604225028216730531154642792429294752821223376025190566473485226865898823528792973228157918920189368479342664680879727836375099784553390604776842529459940964094715772409943892481178059301851154542477579212662651349530264134637529191101798303041425446747114446338306098692148890567679987757868773077969128033697391445235386499780511912569943977190921222206151044920904087735676627538005280418414242494514222758586046898267980431155899110492255264510388829493171845328661715057045049426398462469562644556880494275603020712531494868611785432884847634412267895639552183211341893416568307782746446243718530676982487582472405187347790935111677492518850723623005041140415828909111391998614417411096698676031299126694606649015187736794577263526914157328721391898103597847324829684458554811536190527665336081873242056322094863168361701259243870766818598098164903470348601147234530106313656137681295707255250349059639312562020361743311244983924258848929143478772174509712483673677751774686178959629837709224741717986335450049502145981556559576038269764368357816020704003456989396362127945218239058418401977257181995042655785862308057976644786985298314103681107278844232955356843755401706550884304010014034543386741744820912039632182877664412362782604468486178917916335166560602247886475721438994453231332270806209073692145023875582560063910622757056748921587785339076762197547363882317933157107305706829657576511497819756863215851454911091124762356305444900498389978418666595209148811516728829320488443667017903744582120359249448339916791469973943778240462605133443546267497794890595585942966835336673594246084519856716501675395067804076059298672704450786867576084971467310656856520860641688646302500271495228574186955636284939993086905176507898164132778852604686430971165130557131885519884146998009642055205414606820368946487063967144924893238866007189945125615369828062126031633179924633999697576043950021687322511132356078537572544352582376439640538684794571238255214312420246391026066918762083222246648963000257422038689036589899440243899011209223839901760900025740186292520903501604576893322911484757813860193899006283474556806699120805700126861959224881228578799501620040263885369743861883168423128643094958181171645864976124007308891450036594863949125702108052210207876866584587429235591769840407926900523402912731405922518066346797425237885616477826525632690295997902056359463945117761721664211131382457921314879655436290991581294911646399928382169033379157596850637315706208001881434389756245829390881923297738669225540456208474651848145477192242311802258567376272135422323881638162605836646035089663506075680124769462393732396972645484971950936242776240639873567451475508461359113907144416074879705680921834554862336414111244283188946211627966625401962029753169306372345919077192070981348495864864808045268412253486218935452022786949848902471333781516299734231065089023417716590509351507493513730229871861850661387617471483293736148158967603879340587718204338565806671766232849882459663377379765640936573712379633203748014736269567005498035387751773553061620986955647367140461128175771579784781026890792603861940827851981153955623200504109115632483692274289595308629139853051188553027084910305482002898586690402453580360954884462875710796911039519582455425975033775302388981800254107726910052364005558066934455744458383073100561505432195071056662475029346124167166731709972910187073744598207517908555053433253303157349600392625642199520953703025765102728402488463132389372942080657448149179381367193815746002269622482668491948286436343879599838603990942143394476890669321166037268151745120413227711780999115247596590130190876548962066464041079679298690397073005990504645847596710460979614658467847362333785036965618876823438057104757903302851602632204481519845498816943860413297586773557155949555194652306583427707866346537851188670117217907798302945141738336479028954775730239052472955497525474555287664609732533340228426613872467653141192968225051305901305743962321991282067642227556201033287835355127335392326272404367136879327017021673053144642580233837843543601397274016596740370987441475750023151309229406528651266832399704269612738282789257973107230221649715760711921159206310773652163343944711769234249278203097388865922999982961924879994741264755770890597548096497962813096006946749004483078757511652740091097623287333578302945409336527733818395029774528131099005795004606119968751587845368697720501230193489961612768993625750258746744774096927470889184250446559340700354255983498415892353695454663081125143398253190803581167432126275531309681606149992855371091273085252804524666573651993587093645221795483387242558912044043243903026048790843469316230929864011605143013128606481269886085049565606770670617243701602376698536662038301222051305907181486806079897990714063299103381081448923608564343174530633613193877257530137830318233142127438870554226587045663167399078534713345862633661628458287609899322793761454315804912318490438613147914477680342287094648202859262960452916242474786896997126269669507089359839321302189738770916082399582602185915396602456851085717660437201600820302485206996354687978212728793141254518150216639551805078570439601353726078123328013827440432736123065945042613509543814208580271907525784866973878444469158341381838157505105786812073170864742105401272648664429789076238926620312786528356578771868706085239856877182838087367280820078338465894836563094558827848335726468586520211038972029653468120371728931611793557781198504328657455213373710431363506724354206584693717649845111850743086905372549454867303134015847832788896992587888856904852151808560529408086652584252601859450797081920076946792852126581208081823289876274426568768477326153877975237260484283515891926118530797298406232475861837744242875623908267375973195150950456961097081162965181452400377811539413944933074815606099987149667866379241746615555348298027904248335978634677327309448922003401921127538838415865792604429809506448070169186715127758886856428023316108911722013347966034158939761266776402822634066807383361824029523173670912933246524520128009142541829219192086249931316602943483534916799317116629605340482882906714102289555382812831575568633294162598105388518157454662605832337102900303151558159932091910966831766954096089607435134386891375161516445347206331509536376742064908954766892264495425949791059431593920618311872599512803110707706366446914719301692922124208191275842849417368189554701234548948190771670857973275115061408364009939827412192237589742235576393837790293851160352636026540573624542752335562880472763555483056049519101425263073416699129863533413472366170349079132303184295602394858545854679515219344234993350388870840369480519372468555962473122509855646016311436441056328119233457303091851424342881914920154027175428888660272360357829084507632626545888096793978115588035776136646547945138837727667880282098436170243484562743321904495376068998285943136349143720168970093989067884228476266448894344130862830215458844770595450347707362856531799871831360990994768786867645971486892615727795044232583863775120614473791062812712664415448115808541520157828937886745111353061174693121932674915930002867187970162141243326153278236058110331933381621322900501194344905566524849660003849123112640668234973756564953793659078871660771025598912018787263509189717761668066640579884374234091254601047981443070550166833419211593884873654704186088501486973194714660042528223708670111182552528777427670563580802014725886344746718981590892330732978291378050313331819181067780415230822380702452625319893977360584467741252526535637515546596178125118808409161086801069491810980159556225738927161903122662270313118640719813009278146503067755072251531254117590621986058049263353390602164846445269523365500400833014026788857758900265854143804441247178068506361778086751353525384450164931478969101679889815768340051809191945493722642142948647506095980817499889992242386589295259214471140433446407615067767688293692905019167562797912575692450006608885039615664015368104601824211153813468994437057995421873714954102797970764301431720851652959802106650427212973671289678870360677613497291334699277533038350651300123797806273966768393633186595671437366262457482493853564874821391734878672432905522224449944458287103954246306073596595672933343989560482283703561452870229539942789194091791062389298440856962415913004008656861391964622427607930073521882826026853103836709119727588864018825970224397335181669588783328955162015499010296922052206306455042807660398430510176803892218778608743377734040861590882555328688569809302175555339068923606788530325043390005105624047319686110197839424081058571749032820147050197463671001198274272516934936385899876259324808429284253695247681388748019511337818708151997080127294489607497217186388632662172088830487829106786105892007313519650629811725150036206236012779683998231040099676948767665373871456863057728474878739654794651497872324728250487802634782937142044938129975907440773053398600416019954621029118556980517773976835223638642224590057473592201783419339276101939500243124829520912312539203785116475284019125398521290598506992135504648630857918169578958394297141949688837981272728096122400015712048253420695174355161145174278184876579982724481556331850713985534631812254671615349030231337317744258329435204671828093753097151137749111971634998775995028333536132375005564527549088512818304679642095430459853914735487446095647213216629378423538180062107175870884013217417132777500594653273953093824814006836301583843723243845291883410984683665220524717413313864903370510463448249416997976200678859141763512508953690311774617945632027633904041735161564607983664101645058117973720612337948429286134701564993339806453580416376353426997204174800056904641352552856676406075529795181524367337769467108641031402171377851842700655940980667732360796686198457615822665639416800548314896026615696464914581704765954899321155512631842973338546557777083659873454354794175028885978861164354685361308183019099389585706951855337545507090188730335667463116986586282728905860698581550601280378604511740447393737814539327458419461604743773749310232798442589314442088970613979181236505681163104758814820198387658827204319349117972768073541140968499040278168085151720653439330175003275544819707087261254598398420067903173038746215041107007261348730446373060189163980132803409629297204625597749470756790822470009774080640226977757314165479476209384457809959046647447895831505077142137819409082635990772571476702528213613699525362403008861507634259921209078680597683849840777559580365553659161007001564618660137905908625174588299659772430253849120786010830578066121790786825325782251288163178719692449055325915425656291941741209738643084094514378978140914170895525310838559943216414288621858055147786486433518903072874530779481315124956823375888391221930533832737906118240670455018216167846325103678530390051093814337077273063962754476406259187545652336644326029230688549570638139345085133670630828350161783882934609084559337851056266590943685313807783863059762458377290855299642453358319226246454136004107252173053041401844268965343909292426313217261934227118611284860118132672770139967282264612806859682386171592897421658650253428241414995481782651542915749600814940524087250324996162095914942514817759000465395942169462538828661443727515082061737231409919929986127502547287673769852921393001019518656786411303599209164097461106841827816285817292578034909915786821782316359540433121292836631528806520009973686885109640540466306299600492911154867243507493956251651200047827496020093080621677531530117898747004693008471563830875891001188963054057128319442596278441679429922551192267728618835028054955891250200043523787079667303332283776575124638229055645419644889648613538825595281425280345632709000346247882998683347179069580023709264281426669654698203227600244557583726464220523278820530640867439189321562863492151381335422814160216219044766033731566661517142152879348847408502271550006017258467038192471694657308196598671400636726209912076804870737245897697825027917752253570853001975644525973559313513081929485213558162237602155919262565828476893249268201177779623924946185627797095517109883731828790231747596661238113517240180137701266361612757508017801112867916526767998871453080726692751463551937851782622908280747091979451992264069502498338479508312167050792279021870579243062103812195952795771535987278780184353678089542906152357573882874119766143971253532274022940814791817630837609390586434486899755969770134466339298838145400254562896879621835404437340008268082624748383847422323623960437670904593921755454243180217851488387983545268476109699318434496197769061670573289816373296792874646318630515889624110120592411901480734193310403564230288275649196849179698488785205569023605035227432683344773427345468345703795413999784789534207319678628332454733500234490230973657300954416104803018779990843197795219410791529282186707317405687517849633953130577773877527812260917906389302595871427939367469413614942915095620038872225933361888268076380976437451573270457713913088737907396390734232883741039725498160009158383475819138976691416389353663873283736635346463719056748634091189660716961358346508565613038004015345503352576498890885967527888256043865051504280551272861913612035416582326390984601823453753816608050615063357826289223911760691600609090310362962412886029888236021343253712264329331564078055236386863035653803249657707139717140929444758259800592669367085263755573825530508247215153237826610048148320986467889491688942262832172557805122131761000890599291260282496841088879443070683978657594138256183277272696752334263887659961975152775455763468236729980812498335862198516281938673628309854415169926610190952551607114569891662007083589450647035537456824954605676276098283530366003472775602663687262065368438616458733364925657080416286341546958766415476046685179280537694913020219497528680826470153877845154969731502002247438429211463895062575692551387789706477329828231491165981595338279966072647352836018660533837148856373648200328671189530289066116853048717517579376142550405928886289439270154565486731791602285462934527490747030622200676799576173976772129847278284218427683244660844253856390084188824254996112486890840708100306952038531944804582307654404996427827327312647997459494690128893907711021058023066664824644059531526671914257427408726135983682453648495457227227310513179657123723245345911609095207490627137239635486788916104121330677041319391344693130835431087710637334617666392172205067805682338382517124615504401408576846206759484669540866496898095929829026164719267762293556861266563411936028156406688758091260640522270239088239120951034132530682770838761291659341403896961774323722693680173343949830400724045375880294218755844779572222203610505793871675347848200621420150586412845131734566313376591454927715323943116676339655363467349775134507879297186417453342634679298568268201821466421360197285988327188949992566523917504904665060362153351796601259635844580537068927695380559882759553543455590177411871074625416832683075626753722305586474192194662527002819028335760754667212523209147199746654607688030070085851964487835961931162527175406491607631359955982333636329644816383651885504296451395324579007349546414458606558889975739528734346008128115289885704348743109245501526778144318780879803557805101818206041816694867815638989350559310689176569815814734259762088106624638122532478778463896658929579168513165941431551065980015195776750899346275487101809860971040890504065131043240319885789150881862846174448604707270044463987769533041992922645681118053165354643324799220769772055240976714409316414128714949615516368004742903029707641762313804011752460310093353755538493773357242542695651348295985029104104443061261841268441298361024957934010782816501981504568106609093169111113857642457757881198150417672639684275247895786000242761276830770859914746426023009539704514534548943640180327009178672331221190854790793883141978294207444225095697330578387069361215447572309779036520978156430713789714784977150590200485452848820209219817985198998168999916208556763578542994093637600726111137614438145873649543103938518599540452962548161715935435841534253035795219260388847279792566913357082066611496754119064928866160549791899782920176210770288981677278208024533250580426070004128437566170358206442174769114373781608702781319428190805607776817884086766734163020202274640739448370131523630820964995688322232440299126091950150066951985173068096620144617034867211370420029071321476465893870889141241171775070535892516721578719430936538544720559134842500088988789580535977912440624420390813627896753584496252279814271208934701391627841361844320747464251010699470113425968627952793579785522497147743584372306920016353736052634866241437748253522795330727524066865162849938301835729045035355331469316502790409086618274229081309520660340346663117553954021637911310790050122984266034669801489957524122455047087907212943514152688462187787741596696672003780519160994232497055371576250216369049458588624731386317089364579567484012718928850627084824514515518718933514294350337081094524386882227730425242411830745216854244042513312761261847106630200514161135033474627061410015935789850863912910416666559712367253469864994300350977502176852482328359695888507521240701495639094833515065242658871493565693765808552422900793948220951100674775902398466049864863919495865450090381932790788502687173726859627880091343211064533195554917904809114158191725850790956510949229324957278292969442957340886505047301727915959759438384601996952403693778689579632118796248076631900218625401560361894937436492082397319319430259594978962092970006742984329461319084473082245027276510361492144082818590969846233481094235844293960219031370884278614658763089382899268023020576063856909712928190383544597679901618958085243756877801922556467918764111411598048908480085645234273185201767832324642492829868422857991947643008206816736016972184656449076065663961209311686890629211170859563195208409763907762413289005335666526139726221728649791811149534622882528969614295281494714487060653827567735100153614473946831855708204484061876630633175062136265445487464925989579126146976939576468703831137422162486776609831058921948795749481650509396055074487208565600891300117172906233992515569475958384946856383952438610392686361527046234780526016814203578632440614393446785366724035321381597088277913869261324558924810291344644348218674302074228215250892528722884243579999227575409714332330726884009880560505151525943928689093128919031511906886140986986170399614918755463173742678389255748743637306782419178302081876352715503149725350785937281007354502627201588273464312536004843614326233232158163809472167877065564468966493292579152501244156664976037830972232506924619384294674142097096526024545242853516007279890749416623296137255181586858625315256623359475796255453653358427982007088224120938415251296493100610776929419283990955357241426021608953721831198550038502482989765983852193384752466454566583436374250900390359208528820538394437122343503048263989064163644971406454607080808994143871674625774040411485407277537361447190432412253803957306372691736977912754030082368078986182040974381535800737564576199773161606814693813104934092857005484558777464261738916676506409827070792679930560560432009902363910829676271702839726732138155760232930628009223408801451155134319973118033588348800549840996296351151267775412223538585228499846795113330861197300259397824815250481090235483758975113907201129034943418806169321379832746736187700936909505713275600891656625067371464838251649184228980588040294215387754884946924615274857393428871612112584170255511894392709717636372794639513050364733826333479916996530349119908430082561908007362679644498211501921020550444796645268901808871607890885527650642235855995636941786296915075019385126142561598806105881847933522878340607998236690490532331433790019692406132023274537965238148415451966720345551499854452577231959226957609999375072010638651642312073577607953932998325754049704888137336853716725182848717476035018008976933725988421900759684870592243322561155014466073704908996480144847631073626088311957988182577792079157087746910602200754478401634656307624164511701424352936847383826748659541446696167615536175973961884970077061822343022813114640209152285327177807462137481673620662482560000658972266392994673414250681144422187615308899372267938087167743398103173568574025397236436552553690916164882032376784194668593004948694638750822473266703397037461602395686698593288688589851524772676293959646146248089852922694662169936125834376119802370458408334017977162121867420393531346037411030249771384755034060986398138352406423701073795469401255492891097695221956628030150072012039914619656736007919431270032674419972709250754244864404979470167049878983754489417408655975730594756661698546026495949982896227589003542202772398218216112983392226339705857897563287697508610065212061406590630515711767221374697237728873399066370048839087668796536053810364037702427382484120055870220554026941695044381631321114374992635575174441427067475536669970610524898035737230555356869281173539169166165454229199497756432683690421913202471413579973990928146115011756855547632591237520562033875183422465879338629166184265310859909225918625985366392652256921947126125337565072870951508893189460858383710392566897490181875461755941428828436489593068126835253434896691288700755717940544779210866541624870329400880703783243898431202738705140071658789468678667339626177655650377420691819394478125615380657291908960991241163668247619148137412427039097802499218132180211693344452187247604570775483605396625040642966841506501414646249527751904943238204708107257180558884514752368534333012251789343174725406492589945306669211942205440248237874419579202572134280754968612808600021510847071557171932993652104717326931963697443479515889387825285300585463177079735293166730537563846157788878952839543757031133163637890311546539993956943078225335254885501483705185487613738305140375788892600768503092952101397873786258208960223496216543092247710512556883527833065251413122092102515566418716230801066389505753125838686731629335822510853526786869093775376522037335932956762853312476373415548712014212707548106679530866557865944410366573390757681768999852491386202594798458486283555337805169121018102147887692181593066662089622316602291006297029454820662426754170792850394617646205868860023937755993998644227870755003495279501677835043535899209426786449517659325024194798088899923219637880901240777657973720479311045130103200223995514644011996792101645606480668637805372258581290204949720790708909595429433023933847258895529885758731293863352232725712650786587303484573037445529167730288987742707166119274264286918315827800312663615809690746266765259442870213855544775944507366862854539603167537367201275666441249766063444115835900460553491862620249232517949203614421588847147967458114400674364698520574750296727125227993325023656307717537779055343194227764470988191578165004285811137360585306311429024939155739509169313786944925333633471648324783998768811159100183119647398538557369972373449792794507936041981910042436378371527217553839469490119760843576434586576608714191923998068487511706413075854540115608389626405581106928943062665546193347957895795187464303013926659732659682876093521038634040671025126875601073204574649457793152218215885396031256386239108749979868373177195556040619583842336190936651980193300538460082600572695213492953371313912399581372926889552756703823838793684613920427385680254483547590343707144287390497611667024192428152289280419658797042381261462620111149234796269905307029913854298833597635435589583599911213915734900269640662240551656543798993606045695435884659622910472365870114724628818576151923912486627893604045452636913710122986037150605821502407472204468669783146456088064446710310377573405352162017066331082248862821609838499354570705751357213494966720593921431949877087874720122453317012839568400768017334250440366503448711388984509474104255052313368534376531844812865932541276387783631763146350102273428097336466248877843225149658780365048935024975713822050223465454079696636206997134734345359733949551905264065780818854569770592695739755954040516980339801730804139044514655957367256938171855836498165046658889025743005266621627777555256604071361774114483914102645931606076371908059312539249580491526615667227946452720095745734152922724842067128082505840736042177645499843072156401995734209095151271158519156435528133634106231556376631965761090700755409819773025800298328991777426573492593694152495137767091952590689201054160857921371035405826040240346747964178888057068835534555228371473772671489262878168830863188079697951904122975312733964000015068793473618718684864135610682775864615527191265699126510991229620641252033911553713935053968329098984446828656853109466304188592384234853814159930446528205745983612362993287153379772989290626248284412791631045649977452665136200144417194313122938534188969598485534282434171850077853918176948134161948363291798667998318728094331243313752765721116807098626026492673440886594263020392461350082651327060170939891787056126377823789614763602479218501351145770948575053384434107750408740597160422030083326786667850472728930356886636535230067796892799778912953345742060656150972230747633114986940639238770937671698893273935039945452975927885952483793362891413539383522378450242660770771196926090013957077903945371819443713306298926801674243887242011473663592290327743926005625666035064173622648346188705666068228025843400189873619200324488993764799253605715857295187796724197192697367865445056171363408067644964012407627424118477812777953564259890937357559290705283859619872474552457777720796218893513829296023400906901462860932383865214940576846857046455883162267745407314324415544721259592019484206347385776404342220918932220278623259668509391892092910625948502694506888130197234811422777773724523661915278827053046631861182110267837842748416911023793993830148861838167218321099838207649730459726302044069578399308278846552516850743906552818111500440705626736133225206636201484247484046050920737016375273338226464439053719689391002823443255337970117068850387699359262114454265711331524411957176437349369438414521203593706037486977602258636006332293956601514702911464685680443770989512169161411042739419560160301300081083150365869349814980248527438656163844804252635210773997216371960883556111613554461051592804402050560541583527031110373628669474118154235408091409975020167558567706448344964295651397328830051386031848944375310149883845486557071922008182933028953417781393498957131198104964665308494801458496295727039250368505409886650201248771123599128018966966068190995720086477691889066884700995463760138849168672134815042861423691620879034647790640473110670960426463819876898041188969123623732561643466589492356469153206185002681600512894830028064869093650567359834875480640959771364798774917802430087356704386952087037548113592500265930128132154041719313760218462193005618020671725181716534805552738693936552021146514937841193977580341665160303022208169235133926088001248643117425612786177185886162766012396338186407180006272900472957050231892165825773585821893104998283418949227706035369566118605172959080056605009816788483533497728258755117339196909278589867926385432741144550594917096782205300286351580895198365411275326275063825319253403712680406138692517193852925835837348462358841821489705655216168302685746009457311000577932332832246017811951817115336571545719820846490028113794690655116784119652338068483131928187682732355289964822019135344846548787856429671979879737968456849942141353666811542121521290036939637997087590870290962058794825121512717212254058222406669151347439343278048396828044935800321467683046103048932587902504830130246749403354208525933690811663970209887541734583976055537181960564599656909753625621211654132299280525066885729096133950419803385966546613947374538223664358573542370122693920858679617806233452049976535135160313945433945988008815138706097465936122493109507545453445994097069902290730515674568749903859445732585688113731694385699092592766531035927221014647979143005933219737687756885051372139257769317120775544757244671551826231985143683988989293096826723101778308501657997808440475440910130778584520403054623854488554932115149220438941520619477022588078167500793696774217720750706105190465064652094828439586975482273503320872757311748097357716894011778037809319812313098933824579822214305694990617009968387421719010693903226352040064608920904259512820762033790766147857903189436332413340705588332971858139432855330003110130829138276859672214093927950354409577351687639716701677761185149482055597925119884016013838669368873108663231973225562745846647593770599440212401961163119590320755293557164661977734573259122829819146993072421744248868817015787371098459239840398259438280060502696850952556277450272521922955093562650137371435098425440126928909916316706369394796232004171115715111043484391873532696392256363782631347783804075728104550379868650780279380460546256496511267243683657569072440231641811170734624622469613699432137037564325766645680921365239596045965101530257958479613046734307901513912459425487604937073957960763238073278272147863603828351720051954008302838757071715848844720382692453044302647249983651506721013039522503177822952739322850885706702300331656336104280420128506027763318537092070986283943455706985613555220661995623649127331165284768682210353870708158199593326206316133153261400641343678719679626331674478203754805805080471674899873331352958951963728658084186762836251332446725720027894127733837383111491562654537648860579545450199208549648647457303027980552576438955885384251723070335087861452819564333418449486516392924114360332369456515522322220539901588807645007122211450700963914142009754436848884872852585354420713517655828577944226037307010445559533816373280598541863495313401558364117341630466521613423301199710754876464748781704631005942209657955297016525044670557916504761840799972865773959383293311940588923171814879462137157570174526417176608479843067376828068261623936797442907164197783510824464310129484714634753183662576839628999118011397900671546014893331351933855651351842558184113704834690143055346253170024781663636748985993918421707487027914225634490088509078008298886256544504593449235885594979187550324655513629208060791737934693165016039569134295303769009757123528405227060620843294490152661011973224285676681796837602571733494439601152054871212142425093529118807315885513696446142896642473499019330801086374421065859462401708868044727338917501172654438221463366915311862548548504073069983694133939810518061461400988207257727384129279662642420009292010059344006893984141488736667643929949522646744842757645637796464693311844617458032726318586305146143989285823592713653043160807262689924293755671849645041180526010129323999608401213429103952784362113777303693727957862225542664277893183415079113457576605214617712801861013093993556062299670206631138760815761704573874509842704409358901317240881163120514897995545886418700828973954839245533277556446117541590931807001900230421645836578603886937610256676604579659137300354995580541578279789787575768052180328521173383166047256929243771334877498016220609659049892904570303381726617586671411825427264646888438936361534648480881473600763469666479130945931674723377464675138293051437029603838743679929306528893493816669112283796375290694004208101969468334131151254176656462197930588127052633652905090290395883898176757439978335709191406813781355952818209605344449798634968362221628412241390725163537990290737431515349747920501870822481230934044107837075896315705955517707126186188249961233753820418368801929971666461932941638950044971773871821784233044526771389497069799141846400626180102726152622631758275416117685598257493789094958166859829682596031893240264151626059396351370540557628060409052569653595603591190004429121247512946807964526679406902568814499673784337002099739525412604625859295727322495511234123186020235241575559693738054444486058733822332788658977464333594681100117222309661268886894916160810478898667814096041523548727351584135506108785761945888449211177040064396210975988803521355145103196703598187996097628651563192195422122240865737227711021760819778693266353299898458662872989108029200993526981770594354850261612317556553455535052436646820458616614794878295139813163041846216102244372407978185739588194867667766505140736948533246901277985046983834283989395919712646384144193748023553422505958637681374539694540910524215072667745961892070147516103069172470475477810875995515515299000708277011253742280814204578919950576810619841806574535654291784403015123642479052517092137481683274852336201352808841732376662246851231023824000309964420951426027397358625047558226130676703744143259420327605789877690548622314240259596714158978816774745530098540286383735226839685574330751918457845742578310296181542607047791179432588564824427119734646231345757174383214259534203582547064580048291483439154075930515014114754127261333251550168844600157805344048392632803986347346544182875582255258784410840026077736800648457891435439752393772915622062831239188343295001578514407020513841022236997361918474831228737510213906096397651532877673642343381069209391846414433483652860387284894603752647867016474767785099985542683278230170117374449540731743462806893026169379620146960091318893510573162701256376355547479956817580785635843729614627696458090273829742557998949161607281744799446865201975100032182655314833040404575685276169580770245351041425409169779956384263689560291016548155535180434404283759440069345047956424100190739609162183823569583179838598967472288245489468201012175989824304164249638127967783317566359222421976790534448616388302112907371113203664061964719027044938307985245983417240347310978584641913867978326527172518732930900403336425188967439874206582898646133096569694672993447452507772525803956274174385481169236701097165346879115005278991173898232959996130310324836829552730791170999246319097182144262005980249581482994590088727933944641753409720643934356429115497163884394205357795808482928705741445389185525777161057030262327330701140521645759614561032497597593906018842270786527698944577754520890473864007200646565279793685923268990794239138581543064477707678754727617400036864187315773144933296178460078220069379835578606721632157166984467790331586127171907333416351459660945417223024656650268668812319247341214972146726059719930038682530130230016422362831001872147811355848615618520864160688363203016618299377385999939077297117283456371615277679637906553682088645128268600701677667964968894145181059463526064344632546404125742599719634867017124791159948666762451990885212308323336129061631097971887348644852641775108211852003591246267513478608872079435626848286741928255152691967024489751870620966635987756936817868471819883679144564280844120892307599496482978366898794665167087209458419452418152275686748093778332338750882859614986132201316222993758383600129583845972660476096117229048192675279746851738799982148029810606047341758039717473416479336874484014192425982335772966360184147098855291461157596511732963230047523841928845187142222654769721399817579221573061962708673832090639190509867575465625190535329130884329953951673300220385684318070878197565571049381197001725116639088414033024999551258991189126129530702117995024974891991790090154977491576733392767421774953075093833769823056385367413263285447731754150060213057428019333791783834449801264118778153527853449980342152282821590037651597371981063375415798918301926319902363433490894104900286637963082641279838967982569335185568659418912843427373060872852943439470214171038394749202382653451839049680214724514240107189750572068998432897734952741659585800168605479148576716670387624211422711112548688199473998330077710256857037852877597054600217933900032304137401357658884942563956073518139404380971852118612620998473553900534302918616533463555065555549614109810159232854891247789062996481501589425323326749596996004803012323312378530104951370430648568710022288263707802481066254090800693683442408618203915655488333752057981164199376060980949202631475891265553413511070895651463064323708708041159936960890039400953214931829336587599645403932064063023470929781410012810031992011633388259954948928771027359881316562805160130945787671561833016852040926636751578461556955437073236124302795407130966477537508329824722811069413329134814511933382793182319036497690026607035090102601020393373481251109521042082856851494162096776124750793289278680551490756501023433971205024338187756123473213634858896583142855460994473566716668303772788978931628001140560589888769668570430284524021915524102496510650700989410276573082987585492139741562824455993659240943045213729398385749364798264937750994099348711863483962199771817485734584411593918513299539241668937228738798067273003855571609235777552788228267025459025714824382160961985147953174347603772514541207467107568644145617902469902283814517627933784112874864978411504102597729432950491074141303412587654870469154556727662022702606885022447046768661867357234797114664149410995872270389350492477988317602796367005324712602336600556086190230351517337670643162609124645009861536550077889955634397896963507580215581749582336612672461340577104652648002942472116996946517643604596315860792866471278801291405687636997293830828510323767117740965224798277974916669061384649737473936144430538084052630870711208846607465521759507306673575865584614650491916790997471828742931022360521606130623450321473067616529458385279414477700180114531023402159032981392276126615287881112272992379237485765962939231969984292452004182317900332450516532099630805236497721181931673298552427377472055861482397557588361157196443965523668243280181112493219352943586610032265832611995147814295955217733451054125327011827252932438705195305274641068244255856751356707734499152399675764862918088806669413600161726913356847106357993344396761670831733725321821524558572711893126501319960146154528692258265581059870759019886873049672163234522552670721612388180909448614268872456235424104409006651477850136180218691049842312961564034884085462926523175238103378354358213088382477713926125861301368291661267002767708392264109136508975800694997828910873147233794919372195597775314267937132575288471843833727277680828835479067546222014821025142275367507434144175938936172717144912458753406419609378070870816202865488528310827802955221997582926069938575879124284865469320962983958360769933272217724831044485884705934366657069805724117326069522911904714048047342484256056213737370391000246171304137113614372195092508508667993947975393349355130555019850763052091261370385606469959889418092198853881711353621548432321402481649358303369592073838584028154602756506399218532536767838805766226114657700334499272450612275506145796025726888709827291385800476862105903091892690057458875551215818484693752094706097454270128025911018098662598747623076104596926339034341357014535013060530006623021241401943840421516660018471920961301136735770250759861965196874692620525448673767379487937215185769643873801182989304463306319264899213886553161064051235755439534193433894906163762756795634772805231429345914437753547989330631075717977308922344077020715504628209203519452975459460129749448334765486686034447370585488449056155210271661996542352775869704818502794410242686156905986326276396425040022942209883373291630101944841309727196713092339787962778917731565383168141486418272691620984977680985046553152927193864010196971987925398249570958099233533917233496205728549694935814324413199070273131613379716115838996044110338288533426743831757942126993828071963223462619921293074023818231490674992021114071611431970109327844314083258049331947864779586845714339707885824855822479143919150308198471748505607760063180153519173111326432130382855540176873042111067486712213663118161244624638504010866743705892424894903058755936434040548194993550872736956613109711312175923673198437230457911856321604050802802091900566515477924988171442283621436419627093930286354664402838096632522796372456008115837555389209408969815240956712154164718255823619644435210017128989556360243564890953340706265131009005187196396115783645461003136391274570455157216376353633391221487752838107686723232037742851335698239698973834800708114173596967312257768229384024822411676855541888452315797108415093264756773368621100979960856341210147508626135713875286560089931081893862001879405583697967335805175889584912727303447077073996559643201209130048315272172317228514118987882177941426695483052108308673533899508516964619965474145381320345185447311529457957672246160168374663435050395535345658733199678707056558518217706891452607643164897435322702828015935833668055557167458401969326609686168954435941274350886873011454910319244959054782501798103085276689229121506904564510116405176474662419898972982454583416617447695419838990912511952012085333754901996411151731671840479852963328212646598715973354657598123987239670827174460231131218312887262735217615414837184416199750282665970174559463877022178142024669217488749213831960461673568712682298287024978993302774676350412515514637160738627268927742387634532218164657291218419061570540145147886622194584115881170941066414430782044951602590323856640555118770889737721740572335051189187432275494997765836002701397561081884349383050241787593219436644894925615796320624328772219944418055173613757058715496766008729129842773011062940319050442289288184173419441469400215509172647895925788710045846838908202589857056758469954281274524832353972366230188526110656251386064734631019448819503850110747176038181737143789153890514501858138405244372797362596734604786525088793536597191874950257607457271330958726807729039275467804553367920755014528199993408713245548941178761856114696987430335843378975497580623778077910815934034090160709578804286147277214988456675304486928256754248377705006589243542657112069312104969238904122772497771211759441737577120247874372212647466206458410364643227756333073365587450648097868896771414619749146328481839464618184611967765549146683662565173843528612247659427553994750011361474605742785982649520758198095922486796764111608177278620966272154766058894791940831432584909773036294072559862757889762035945533438728707061362463967113742215777746399505498817037508640599632978130036704428234867297579115368079117526027169801442392444752814438632066105167595236390102615188343713967762222170839810218137844837229485549018048558442407379610196943089842392880471092821222372525984385633958730781643017346963273437624387562562308452594732580206984437495499752779090938563461414570204708285426176280007847269422364991299887551729526925414954100857839492851117888863887920278411103166969282796590708786537565949460613173343140435473576584678255908940343262928321580286404102816109413010302332723201578242409141956582300870177003615849422346792805619453563260442659108666235074057940735271615311138333977862856421993402008692048817293708769102226056484739468297238235403760344816457066490145338142900073435188645300209404180094411796430262026756145864808346150925665871135939953952123555781224788868268420428037858672484445914692590801479617848503464643940362995296313631965717181150892735208581013500868231808822780111723291336978921757774534138288042557991418005453698864283878191306067939828489749172280067904180226682441692623168898337946569848972132307272760333784468638895010552466335626705248814696728544044698401332491525770514320273654230099105313382438129632709921059401932603727513808777999473512578494468090027355458010333279197399818472040172790589903436013072601707346981478003039616702920541144377635486745355639215828004883781200590758334403409288771593092335344709997174915130079621722370437934676856578120432727609637149422646101417344141194727786780058812230872012942854579347044428487589297137036158403966626542511441590496340818578698357137660753279131055996331019594487909365743577460248829257319296522415718078184872983393232522285740025558892230243462678372098770179446002365208330371338244190108974851889884817643962121823880232321357488185565164231403088551980098542827699248625895970341648576473677783816978852134068697756506623349183130135315736723656837838127215852824738657972057125633462648271551370382488335506455499296494716108574788970153527593692479270848046232014966864934546249919237798733389932688542268153124187942001689347687015411524211253680833165073117399536908257251297467062378196552753119523414896644656221429062111080197062487514179057820748715604730272919941939105782876094647663872536265237267686134463119492641724938007608590869880215689599505460426124301566563178419271881940329564006674338834098962157450904559217100639164450752963642769423642016517792931531607408279772968280912442225046655808847672932160851553765622361205347435301776725533182103249754198708133469361026590024496002741969596814057753204618634428039190170927331388752231132727949208793332299104607785722451043292067480910835910983942078187264614438926040604382329969539853309480281382270512628441621226768670053432390910737727394204207192051214562141676096650280743502518757227152550571315175053548717445064165977762535125072355242679372696569164629553866612580299963999383567884951064394909857531297898320491544905327516056513583325435527924409877393897945735734404724086376900686285161294831400636379127842135235306992690360704058901082632882739927227071160626218881894545424601061657438669913682992356342993818680779020882265313750100662623951971776995184216036874784628203407110510534836536489924741471471906981001983372633432245394406581842670257349092964586972254426037969931080022433981797349971954002394751646763206985009835726596954661225301584888968327351600170734829876561401283256428438027434685485395934679169710099096868316592946546925017423116294261544134098642820547169150082226623946948367563544706691853924107156192780548660461494000425282149841556988516950926084044286940719927847808691299327856623741484309794152064541379647131645115062340613154073478616164731576953813240085233816582026659080622517025966649842543755111788408670487547573134020396688615297179832220204117656741535797723706204479095009538804104057327544588086974750538400132301185013982595133064292312057812260738269202920389013438729361308242042454115462521228563881708652110929289049934507900249267888789974223847210968232874215943163746483035465942774216435704352867644375643944998032419644723958956407285184058657740206714791369633544037863598060422461362603795210263189893541672881261656449819958995108857255159711217175251664586730501120001271961378065756790090597941221742534996613464215572033189255017752768019881611057415110644187123636175831568419819583577540893187915086675033343921305188990937379101798346248738499269217902510793024675022332729226343932924191004873180925157684560812814790987557948178118709271139365057187484731469132324571583983838402290316593324296642823416856048222658016994745984518998130032445153594082995367500576490176247324397441492452814003193998946620227364515596195634551025103424449185952241534193230759023589446621208355283921949258892201445679212953627936355645661036939074533690272941658372410810065065317593778275947199492134843496695640231185448582026282737275005520696297391113671700688394441087054353983874170302985825857521788932681331497066500388499155899405656027889510982594065877387154837925164390567545948433569961395350812866426982525047268514123648675426987898721060784725464344782259081183741856464487779589017902981972200512338624668593525850409664306860662922098570947434669098488044615712308013996230053883824384879806498963276588718897317212248916388106879736600848206610795053431194624460594643081147641795070289945930752752504584015201256137787399623108470457979469429004411843926060931044346748522239910806953258295933160388533088221771048261150548355604152478230266857332485714956464498202292560463269774527846770748107343270374370506795362051434919701286896297639582533577773210537264096157810275204364332022117950293544605406754153660575006507728214128684918424279220827504589235720491763037658753186588708851237803680556184636873802404471879658332509260013906171769580594055995082695205890342739792157303552731382181435772115894436099518807822985181091673621875199617698892865833450910312569311954007674842959407492961194411766318858385446421903969737306318380015700728196426172140065850674462066786993551256040209860717016138296293935333251219808601575865971074028374237731628089558077894583750374670399189915049520981177029341224708066123522144083429798315575640246616323270637523286776048084244364779112483261440593361843079087358888440816533714965398664980097872842156780478227917654310107182541179203094309205080716131635116564960367929808757279943643388042686358149991517859174170782359022232988849784586629989935445510261085693606222038997196298090524654824163009940529913896906300236634665635857738484207211648488413653202894237052867538691399599590430260190916001106407116252154463314958962981383513667256618536536004038231654328595848540431330610941629968587104818121188065656679870526674018973914424043249887526761469597123286474678348921953649925508348653855524729789237527526279152582090847118851220173747468321876190543843693572597646678451295108222069050386293153581925429634036114527592202061907679881261089259956177894455360528509741121521096870487021098858117425569874641413968819775196121552878255378313399668736418765570522386513406111251088198535147134351424840376280125050940519572832002768688893898321004866075115638005277866235128510890523517399108215647564211198173018581956222612679602713813709359885637290248983846518611442710983361498215137775912035728689208476242880003935304309804332399366370611578085845766042543328255791009047650261973257951221118180940419815248228148862770031298740508875800563703301205800610347143583296891146506885700242834287173318854735471524707337589659001033899132740820424454031592723756275902794067593442962368893993430934571701927816722458442490484411984276696129001988667724536877131958848020117668395770321377209269056589809071169905138859322538122345691239473209738441656412297830939603566092766407871564379805353927199939783131477404714526966522904283870569492760223952517894159762779485887218262127863492374801293133346828057912953036141134528573106071435365409168848099806766041980251190429758097166755429136219956870180016132828952266218628658092078956875158187406082205448974023162953003355609279226370009899106029568779869500544486072649736408797520780083872480233183082116342635001735103773285468378187779482708044597495264283239632732126464671521921162342164413143688794747335364846442700441986432458287622455106955301705562876201673469651897122618352844241283199743411402647607343419877477179645535196768482592538102969369866148722463468964728048648275151504999009972907042718416308154211041165120350564556161678630781886456531267070189491102814420022089178530452103533483903370043362570912897904144058089216374972015433575013065449233318180621244019872961134995862044256332519264878525876343465937112022581609290388372941185709600638890510653352846378604642512253095728774034497328279819811525301446603557082374996239122518825077400420924498741954170478432990992738451500552786359266000203772641164549213821774463726276127837853760449884544186251319539258777160552609786559062324157695350742080638758156352692725256478707166688113877808024411483631959694003622604363882141722476502568640808144183086290829929681841009337828740122054142733158594289501197842044022294302150674972983858199791820454725793654693166894298841718839178647223122149697917001980568988123470063062810054123582297505666762565709464431497788927435063819244416593223479395873866090393233868224655128496676691698864068772345919668655897365451105732602767368552880188333906811208550652968540901736214794164306230108458979525066309647204975685758233527565205282593436276891314962923955660450249711771215836693216235165054939076276728548492699923779508431931787034143842979749187356684030462043812704308691029186428357592379096454814435361970665636409175701852302745786270185723585721639534265883967838780611884615403656537786239525398956733845178992501298447432606942412906058262361939484848586131140581843840815344104896331253291795737719350753188425844429901508915813537460068412589865852854121481546682985830225314968624068385341415359455001210297674109631339369968874332113808452814071776590284722903128011677345715646806344652317800904924573114454947758994115286321544021804036586152396991331265079098547856754653396599316178280502601452899226541606310428914445171142533088816023183522862217011290960131688716739820891037207790276613414494610639307791444807919844684349109526593664475008064759855136119707384594701784198137435473415598462407967965946751146586559436412897929216852134342289198520167311240716286613190171610661865970650433287040854052736235839436484574933513184315843723516269986960194669060784244462510035477752043552575785288342805391811423189437643072499756363189414556841364902772368196035623045888515361748959296837944143077757633547927633172330095017360210888160387168812794055200438822519962444479396108664504556645554359261839032707442126692996697934255252088173917922507225723280149683733751704268624131441529394977143895999906103154553255099880529422356504926526282008893308107925777833676575900501206328565876855966130425198638294060249167342910100762569627777383085282749779267939032610849494834478032573300923797051516575960418013892728666303667379152661991735244838378182502441649816870357261934647463264047933034526408052494145446809829582747639067441396848024913786210615759952512895723035907823378302879231532545802225339800338949400360067173857734250586437038031626046766755792022802051327914302673280165903061000567208809177787898055753074381664989506559173888109213973756214649970739061314531601411464336611848537603822001243024504358698279435841203206544618878838584976338319079916031693237524105995522888835288035218608861191606168301800135905746745993670630749903366949835643260639462823330150856782467449777411857699767694774290954705433674107573170017181884547576457109589221895226667355376952148835865452990444274513251697185978696536363275557690111222892074859044970534912443387236543635848689556383017302429503474326867776021041257402438677139552366515368609759398092601222344096640748626631589697529194126125912986111111381834198138956455513755671067252388129756903087004454009476611479108077776571548390697524460932391051192366577989791680576481093840247765777357198210638066483790565548923440590406451356053459294789507200435445777243031562667130395763746289039579284048208770433510368605739175100371178964109198820279544523616250520743107928128828220278013329670621075084261217457218466619271520716828130071616648580890433942876098318576601411214117724828203061917999818565504442398062322006273730744279080375921446979276122438949185229256385028791812590017428308879954765517307774551568731788418396729431489383735671848597001082193697387827911345528044438129633145353576477827323551302878837567985715624609461321029246027790168286911317336427151770079524405283435700540678915123268780922933521574783296885049563290579517657536732584204796935222453600186849476582688564115694294282912575910950545830415134150582218831953914829385022278784551697549774563997012202083880416538789184191502457898667881633614938838590595100262428022127866312959187522214426445008587300372853013517887237215002346606758357825972104854305143184771465362143457697211039506384413906905554626011517740122106614112713633225132408143134089951034235451047132576080025779584304452881390285951426294628419354139862747144517753439011567076539050858244259107394683681167661978819030703173165165157938082440172708792037948270641746456458322115180379883176200537136571366438719522275266261951808548478403291759239551696859708920601190258394120492323148019300823337382571398173012492250414222042223250444962964504050066871131562268885682619457921180647828655342829604066432018142441447607019449172600819389916411139188469856225637301897506546063334252950846129298385909867064993046324541565945549787381840819623214663912610913665834352522661405107307289142449069235378145130734788300378580592932693448436613374989190649994574300453081911922714771055516151866918422373335610758602976056024109306411706862609816834554396108945843966834642297482577265862404230109503190906166360328772660083565646022001982977423784316214749855120247095678835495309520492427515389434012381494895969519870212301264931017120591522963276616777757641535353034444425044217494955803318103278419083091382673078532878218017790724711856229232552219843072178133466216145792144431392951298054842654298816863192464485418798747193016895683368221543050834426859389507111941009074667568189436029786482905818727211128081227241770314235829779145320562873845119077587811799597711460573134719141937958014022618305045412504431128906081372285896372875101225324934082848446606873360937810095851194303947097843528786155417410726522217713740679321752842849536795186393499467426774812053657270967330570910172571968573237696171736802088667803027211134870910717387845016096128436110898786454374226972294847724179973449035411454939687416915136385880064031656416160638648192269885618551352335320677069210273415863362363556516566577670513605545999973290901471757782413034240624021856790082774791544355003672739614589790045967049558877775072053733244487997513063711987599521217669566841564225126301774478303723960716353782369770361052063439411386949713164967381317018371912795452369056388412684789736656058280200413051759359113051922290046548322051990170138026567337246274158854154068106440690856002575183027693500592935189696811025929381727764096494713403214492517443445295006971503241115833063602453772543288769615808560966454644215330414335285429001135602340395895291021807142573663580464367540860986632895489920724366482452667201286924329921182352143622944043707824769365488139381296345803116237504012665226368801125607394893920417043880773514228905345639584546950966155609814269527286540537994100344450295370816872183502189061582567751444304893510681889898221892549875791503322634801077188209814794492068401596718505009740739446702553584686432490863412384449439975234580406659736183668698907051696932733421949138197651617586303173655961398283083423765820151530977900806171420278028312478781364366124000878469380706085216789223956578004406424602082054017822383014367733550868775294635977128671266975070899595413752994915954163023772572798607539703489249019402682642624875695087451828303771367250408653809258754256930985151357035709630476516504814220747461671719048567104676268834555811383436186353100914950449672109075640153212662207310139867116300267874842357543433721888171223599923369372963162572617439269902294362414797795937730169393085525898126602317545627280652489172579675026652600548301014644331972340476512746337486903328943522288404690938560936664523695395254411062356266704506347228851468443639999501100966250660005321657187782482468468353454152205964397952706606781770844792635158518867981323216879974283751930254804763889373839324567333820746265936515294968581202648292851550381849885199332892806535610501700309606867780018942187943740548560599924489625096490861768677177548172508173494737089495413731325861251019635569926816046475052069482576420316356824052118413263433558697846609897015721705341249332722221975888203961183224093104580545456930596046937424112408515794974438206309636752924786975659037136299733137441428286251696184391637189451979993220018456123509453568965422749125542713222058852391635480211343829991663880895339621208697318807581931223575170438810919904747534218899106170968806184890110139170743062745327828045310885241451720528745717166054698072769963105955485885555979945062169054414357476374289576875538312495830807906838632198656108080838221703491126537304024502683514556740112060727115802435092410843195531309483231578396626884951363456540424382643954044151222707833256925254340388526716696960243163525145740699703784486267015169707976600930715939845404112971635022431924209081415207719633655665304593800941443559384608479339375953037857052369756756663189533136005292858016998905789401100142415755595944292781119989412330616404054053523340752744645032387582700014230603965568851760309504399804696354395766532967828749521346146010496302149094531568964537564373074313202951838466065869735195743764252757599815399008280030706912299532396452124325693846556573610296191145918445266132411957149869371903142431536461369516271149735561536096141889831197936003284116102444489579918917410869285133052177689221235620810150527525983842271684019483531621837196240293689261587594884652650134359219817899555397124844670686086362421720221279776077820167132038789759600183399426016351157719691558162601503373940975780961881465671380849149965122087477291110323374082380948355017102043875799319594310316777585016497218741773642780259503351527020604286079265454308473091766636888644466731521049513734358831011549774760690728592846774452628862181998710102594007695924583592868065617592669159530598496299485437781964894306408808746842597026954588919170910003463922799207221844639315275775753879651524397553529752052123547961330738995042224924230673632888560605855321883984179439831382293298887257929306808775772900264531965910695971560010644248498998799575753772943592865911776803949592172420793384247728894504187847101285836441407597733817982851528388148737338461895027359030189477435929710171780815508583994947059701668562594680186926179491964669429119151374181727614998481011080507869053830110551371463767516741540875650184489816915442482664619705892189643890737173256632911856802172968330252531259684784702445778202712865547149977525117953578080261740777146777943781544170805082534480876206562531775549993315181339016923134173242926133223708250454478624117519928863382828337889107301604963240853826877753959162524878021408443790357782017526554618691866959332096760154135123627093755625165192765510990633461627366511789589243628200032464215356132826855094228929155023374635024811063035590794132750465105969944193618155435697071160334218459142269468580941717185192951430042783736516110006296268816151741474636178605369546865730334934643835717578590082665548348779735238642510299556132303105155085178828212062204225073618418360920679908308146755959359019203910046371889608734360884732673521110663871031486393832803841533147905259500341959915434086005966297569416585581657177813424848767641568183264785675244681781225342496427648275084642895862535855472706241147527767260010021460779238544089547511285000197672086892132739404026653455417314494709417585540793617268387215435110648311129612526729429717608784615067070096638990934190494730846380155272807195057060204241954727384433806365746345313795952815436778558230589690785443453142278698724005233065397226390283656497268995710695002771937454272843431501347453089465010457747667771358310220813255672584840488361726179810579395299891018105512058093969884522509832774464837294882117204282894524819650479525225904125482723640228209827986129013104279922068094988447092231934952753999237292351962693529551724556909275176486701619985913535194302767756024658175775760310536455436240270936951560328310375089554540055271579158403209653420632017855281053676550289733462021829406994461735680556679023933375173653524384817655777372437488246628749030379915611490550805834519475510474965726436228181674430353028238450617115656686528263007085924858443204451926140976779469320033693526791254828228235560826698919016110126352402248890233876936421292475972084456663663343579583476787878111651121493371788516905180911152817341218929050868410275799329460738939420378672645554739689957777285535075207075868658741441551469091427666868684966130114035825390676817845973022299811454457752133587435443408575550305863040672476452445562679907429902648099165333614964399801521711338162787525936237809548302877487511402831382820715949299146678773971734717534512815913688687081505633963570060860386094369748135496332137562173301599796049215508570712663763444410502775170768008915479443279083601494759858142192892377046852212991182280578283902625488952991905342001637816283527274286542267492348904800797656751498949000609014798647906675910159138436410198452185331751192922231937519219850706272514017576227860355947592254009695713277414549037335831159140863480465184092399725299932943376502650395488218170862520800859912445260209474961425705291268122829650949087396136102781543595622541716378830464382657495311054633966595366768564321461322693580521399796214437545823035137005839303277147189524984585276721174344979601395511341264718590340688715727242184617872082833486728229056621220986331638038724371123280719605013955541468588089937706449446756758878667461051760636699666985613483235511675885948325909973219286585183591308142312998317744860780273632962688184978521819057529148512863780152198731292710392085792081728762614918675272232980134901671838283086553122871791316666617962193887286425369681131312680601446730537586682493680060739920644427406530044430064171651163190785687191660658764664889098698281265911398636010084654375882316012748251968536123526139050542433329057321528156542221423787316335145903273493402210254285476044965143929832000954152765253731446626500650142084282971234214091982193957009805456672528709368318659591289951338664492132713243714909857113686854076145248521960708255028598035420947919901500954134016863019110297385062381919128811703595448113061748435086511001436135805746141037335420700073894619337271949016555191607091212033064070575633633244983718094856681585452676723866615693450315465989314333941148913708797425721570480573301272177116404990944141424953846862985594775020602575546763047054637113823307376201447508451374593386443644585393735890157534169722223727338221029648045796816405696858042694563806301518688591389213390959094741112920877663787903490606500719381962042945714858391685859967644379843300448492983103213275359228770772078431048531289477069429900385876619562462849866535451945793703096610042680089184274566978744101195186351940096778311904471587812255796221509435984977420270783825302073835468856350919128226823139430505219346581107919393305765848785353463071197140404402333076824804847439120622855916827149415870286271355637546758316471813841048871319125067836201206645306828729654056994206374315105967477961677491499072694303127787063467119602333126093625697507929201095811288103876346720226489924344798368459449387685964976831411242466796070568377384131069607793793465710037034069166204598505971597854493664069682881875453518206000222197243266749115275245470828894455221140378350035546791383643529327195153444907688087637675011637163129875492684031902140157072747067799292569037813890884281440885785499230380555735261751337345389735763636505538403991413098709493804730586255671932422340623808718844565070995837104676902763457217247356051153238409646201402405275352089252824682539985165022389885081250886166847538226924103543454057284661665596915793263571676835464508790169546196096609657911291645289242368888942388329581852284256166075942473121627953227635384408259254711902404951083623509526753817145357935076063704968953162397168132414958708408442540009690925832968215651003197684511723009778560103758626788566811317052218444637170423160546371070186597645758244683874165385803350742502967312371580986737559072300020866834665188359788039806374040351926629478647244096109093643097453139603081750265455826440284281185000762683610599233635348628534490672825321326590120238563505572777213220733869757524864513401658612054490009349756054462562918760563716077272519142883993234585877297087664329922997936782172542465967414242906403459205524282222915061162323612625411530218769335261359951151738258210029649291674325866628056129630420331442937817946576223623893233383488804581659771913549058623527186345731994363753894434804531249092308058267198909502818679946670427267306341529836784598251130538495432888779628827515621631613338536652290319146752444129494860639705278842691633819483402808771910066746705842181818145075203270883364937416605216746002608292169737068957547645688778166584481742792806233569833576202202406730145905650200911174325073542650715473082442444340613879416618496872462369234424018449338852265801122452484191580107282515807804393829185594709827345836728782292409605407832343198529847517529001444040399077057152397827988671150628168150573125153237878154489862526138594449803770647282616509037832591584104014986401670497112787287760619979745680789783068668108944949733268244378777674761830872009602240888557242821807593240321978146048629425084949158651510304036216601518271787902919324281934131856381786878919563700413142987905691875479787319986520239741685502732083664992199342073209245980279369103458743277308741370702060447126960237298441206465181648021076730708470563421816680026512881849042151057751721183382912971044997349214969856161297624013554166081024221085264159751302656374803402314069884461933560537957200793198334299531172210035475448691212410785156909332645712019152528572791776306508135294604516632040843506665034162465724957149368348505853275600559984142307414792794700946430888659794053599544371374070674546386127655675814985293602964145384654751260419827439429045374318397788083290114219417752390850471836852721672195514809474827613218837621411466964395517201412295124876443206933439630926064519171356235605163968583779658694569663721710211054250253819705348236636678000162888131706172824480521098214667885601778618753192110356981207020751547280687730066868345390412840012125553512937591192303897971247142880671258552289106799053332439375296870822813109941934145456838940828301192425631555647084016009276759180220544323318077381578224154054244963255003149837337620282115331755758866874159260893667347708358168607618231533701849927398327137791463496877582669908813294658291599408477143141348297068836419765900521606253376120057763484372888763536163353591438665943872465821546743920292364687464078395597069205093124401594321403076815108928305445622905037789505330850606213872664470321871298415734653330798235510575911635781701525557124758641970815892015666370780269956719275718509128559480250617878724930352565640332696886091864928878698994609441672991629920037472333112010430987103368145268955286100825156885231426695449266864269437496720505520910468819593102524557507062423318449360395548569781155005083849018136320231993005589889146909157775038267297381732598456862600084413390610655166501463713164637913217777186264659639781177771578437054389246405964287776392697751706207984551966328364732244493772631917755473268409078391130342524468140545327790929265786326059904892487959882931410706003318157281358118750330627795169124787765830875084288108338055646683171411336119811841705975453213539688423886098526260595629946149342843565273597031057411593635204641720181507770495388587835628403147289775646968244510585106559543280642923139521764529908607825605586491792282305224605926571663562676536453306185786436839828461306872922086575457635170473132882795320109103568169788550486946630897374530769984793853172236653001455120116571223264338820373749638262737249948804556966915846069029482160424940881125448317686275593931620000794225004403525329151915267088981192642073196758641017848004660930349249997543755826559410397185950014777373647311044817881468171340859040923647290323063176752005146300653304341296200714088048534218648500971830486107139637211174942600247477281850935274072087134984281648423653081095277259620194865785750812984134913653096069700143170764431423232491031486538803317034887678515355394520544352737308329335898744774537366970776154570203841753356728498828211470080221033027222951850571123967596704994046321010573222251286740560978709777697493775606744481545940604826858186977862578137378477860609304420088600009738612096917821747128466743962302956266873183049357487545727391668242189213693115766102269982667973664269202255541708875975469133394205861173636285480571361570770468297683706241828428532701882932929382078970098458512375735982574844571496085727807650751402268177900043680545157045461302436761066790626668719240638555531694958998769173780821414050674589241284996008551135341790216896848121182255362903559655518107097672265306984674299136358599818195053182019120593733032633651408232100058361428159666243613976803886734354812878230370957249071947041335276502268107913196633912847165045601681957383739888358266055512559768394599373880901196179010843295545064125405741011906952552280721222869608553146450452256381098680545965392114993863405251447561801943294747167810322101381981441080217060867912905822910228895913134778324792994072399867682561539185457651166192400051513054002771477436196843440751469124656021556291770921123298669793078223328202925590851577111696608358826165920393852404416928362534540762157279925495197651143161306888070782542470342776225610755146623935772864787556884020277432054484046589179484292615572073498179713114457385062431319243307704249521453014935774086196242157752198841581126830829068833248065193403778856286816913457313287795654849156862146047723484161411531895145924432850765671887370214880057136753642254840066240241043423280307963397506025366772708180532483682188743523308452206968890822480414476081260247492980531872354499499689713782654727557799792502274674733111871273784348917307934868729152996288180291450107365424704371705170102986344031113819053666827261220184093311745010454147054362930147469722903588543966723127557715426422465002996779589967150962817146925776390611467508009591541776850656414329055627940516479913905541674221334793477622695668882114596685882161274341233439669609364249824935499012158230124206588464673595363108147486595752707798804094120525230313859706033333158253200929538366854205408742941587416233973810223673875236053015773877011498289024125039740980323195180366303793866653285360258817071873220094778078157824801048569931278768921024845134686774295689759086613547299148853122822352334257051055239575039586458025088518119371332082551222596894836917141636159856223689450460549218158334056944018109243867885299157012577341926827026092726525036419583099697358264349016415103875669631706697252427168136456260339793668778162272033988810582366682617493139345120293884311577108207760193217080609781286016298993653220081984048711237040147104036256718849041014064737375864784535202561878270114756264715394093491388051635024517858348866876924151757931558425047528782218817522646486752070144347427024476120904747105479283435409282647588923427952654578295585809004481972206345916792253506941005519598897112847029506416071366816979322244328540352864849963692784321315412230683985437438435223602456276143427071248208397463467610796783251392144193191223840459198727617873851375029312819577832582096697183306573542525202911481250591617702886573780174000281262933463423387820671608719936194506762971280784490878880314005897199677424603140818660713020335694047823682213652945747796843837251296511137456473917743994021051627779380766262820061383545624960475922752962829908161281010745009375475058065490798840739197485772692022540249534121874978544576708497758582320427496414325441570256053380442844625123700466402659509385470248770619638019318940842857132985015387530674010078714388991671681738208885285490263697209808301029846839847943343640952493819647677316685785105627300404368194594356325597876847529478366197390923984613876731670801035713917319831041431867226726061298392642925490707887556340710101704244732374125521330182067273559693743443365046824325705956404112753706764596891879769805938701297776830346697168789378748250712762335796684572901150571480882027782484126273367017898080704489829909786184233618030375131929319884383422290030740762986408686394231044472477737752025547562298739078206431604363700808689865625383580994991504880094681682956021683524548130154164091511760844919265823264384719346170198539958181786255805312087089659167935261152155252553757294783076590500518580767425679131196347330689755582754307380665192547268578674592037111066839239696443353799897831081448885686780632972369374686548145070456309657398893563404061026489360270715743132520510908063784420587770497545275516723589702878374405501201302846915693377136496402788963143162265601362677550777978730861685256539589257405300966071513263640030925193652133861136878647854132066114540860336551416647995982354178968889112622997820381439195762558258544647753413010041129010228604148737012357895916595933126155085753192568462664199472557114029120394176774496474579841229648504390885658767364882131087991545841611914096944059656520250854689793031130764367978120156176349396535898073558334705838851200738893684657516715786482129838610128661759047730825283792497609992619946093143253930497575624845465917912494081899554615232680720852376751689122719038340874336504490547719865657830280432838352696874012910852173302376623248284776998862011301800848364725955929057278156783023079054003756848406091543743040858787130209286492071694563812489037507170625698912793713511631717501654396352246545365413505397748883257431651917782016143691267316681798587879765272151940866807972636599565792194374269041155252695651953982497233176521058052995619335218129936971967434494985576260050510571290922289426425474501638665743400369514368329283802587993926336247280533260411503202744996460848820158245104847808394955205803118471897932637497076106559569140238273009036269602270096263879090184195046747313459641597073229584695731456570013835246521940395581514610671674512414402386562452642153247034679240877932398632567365721829778613429790756767056682303972443180537081529294197249055316945172536236332416430487371650887747704147153110148977551023383305961774733792647824189448304922589693942807537809415714529909639870964945425599599768106707414224388782960635017342017428172277355465476603431588522414183763768902877151332735757087839387799268339247944275658296742198768789480653705725469864172188439527824442042735920557818413685987432697081466336028832980756803668642853323336563434299046192971260110221130239985478845698716673401781817976633239210983557413613287406408275925460736320244206422991306232708294834501106346392237365286880894687812891623163068512063670744668788222245217564081781854802415122235840251548977934826834897477581664984629426573882551107525221808956694876722983267261044791009779723862715103889660429640160046182336802761924396549447987029242076066555103749416752870130849108137103237897844413107718257375020610218303663105594920347747961743566164298198578020244470308929676136901802266885854116213765866119281946860935312927539545464029572769076379428916970277782976553112613476855912742269344861192689059580010900463116287873998537726000558151534693987879292724185311365358263974500368311764785212109573025037456232480135298063059306411275077009793602669146127348873475740199771045107812793223894341129581444749208323686781755180169756352310028240755562757137336307800409138392774782077614041608197975252662468109191719975154976462976870621050644401890772743161640528584997024919126469333270092557478071694131288757793676807784251118846001896647660471321586389410585004866475759607442711683711179370952039623013062449199356797563510603702121968880918549358730500888432147692444117953271361148879042864145461118386661364059270564238240240823138169186550968516947789848396099017272380286898894281639824330738078631206579778238294684459961281133837810522981304708286537175723566275563924168240424437020474569594503992871286984966187239146774509520873370119726207304592763882077742541603062398689426006379055417097881717871163365453977749124919902978964783489696332717439044041834954374294326168788562999219841986634960511432589616893332297093804090526358202134860949424427687665915089893993745159512663030633286785596915458884721173442976349471849810415087613274849135283015384583295444648766259036579650205775153007762063741007698414241252639305052741955950523824818615487975427373968180049289931714283233594399055053152311595243112139658314625241400718776936771663571230248116363317015427512693427126643946597978450116249165774296768160119979511149938143575017001386975426126580072881214968555200482582658690426464479709351020536478396230671014361315038205835024244787347251297587627602563975195822949863281840789030212788822705195167430639981765052869079068604769907273575839528966907420583672015463541843958207388537669642534501696818325578353139670133156319774964813991210648795863513380929098919885300698758379583597880333230254661983224972337883281369562028290562832592674523131868483104739976970330968816211434026218689900264381954374659288356541210854194499100857687255376484135279963527778964994112765591512014818723979140013764129367232236740358560336242106810919522892979903260512186599568147232541138942222636395806847507757013878320164711578239532793515263221690099968817549316024392771093734155986158214481285369495754555500936076890335507468841168914503248228134131249777186910075370339742685678852580937663083476831662622247567351864750841163255509111121252436652722903815107788104658276477696427477195340563537511783275080056802014523155321882181446845357566308260988302046007734122640688506145810628212263774505205348478203082916287759950418439945368418638669314900053950902870892384535698026109800868768693731626606792921352410015862767152050992769183401220935982079262391012761651347492391686822635219839142005245293553217897111509228276483599157808003137294252295831212656758224735722647014879965109785059126384927199153829161616424273053062570587394074223632345456373033028590234022083841936507553405828689988747483966345013214804016542989014498244432057381189659624847660043394948913315815252419134156934785651435930801796292396909722731212478031635962756216458129466188188977260409379090018598704450176468069002825501962343650154585086749264356815492925781422226716398724485443932299578211350967468275327269212583861220210649635799912792528635439875602199174709549772562647328571997033932068143115462429125899710030089995985028690937714180807489101150933041698468382156610125246372621466072980664961705692335028434521908450180446618569640284289081832272705446169531114489240153078819914136339961778313134055049533409798906839573842876192399533164900652084998116969858555398720212438651864262059218990026514808178250059813652260326867395558175506616516645714384620714388073054877044895441987247388724841206242393113421639810067642616596355903654521729148216885690035093821759947691683725290641991578380659276913434920499664950213401055189861211577143778746966477047466817761980360143058857771380487161701277802423003720816891310787791475859638512561202538802855671112365547177172709707866691609978052399449621676325154089555405475581470266315786827179806953000826007316085899946073937727697715789762614869686192198097931945520518942949333294169220646042155608371057864050712105433057559064518788802303244316990710370915406582239553215578241315481414416261748657036937956386275563081671803714281407910071911833785293046298498998199506566185991804505993553021560256043417193337638280940864046488926327258059032799841036310543385553692673857993374224961991633449680253030245836182998860548733993091297805727967658245135115876348375162140482278414141690357055475605285346535099271542282678689250673828915885093850742153878581242901195905334516658542422385466563482903329170371844366361714603613809012198778823379628466554864635183254314350008351554100837995401606379015275836368318758935717385753483446326424643133220376147634392118599973531580040306991732970274239713990010880114184632231359443601505660483119797703982735119064554448414232414544431237649188504614635036230249785464663905499957317392601198184622843015428649223835153950035003295719534855640429773955774762989802012149361169129096300801065124360157577794861861566737575574708637521321082566420841229577681321130068371748845973484724560934186933997384428389413426047630278093698942315357209946430524521205157067914398108365301045507414371105807218483206499192484113355583338174066840136931996639177216869968823753754601450235129324481776916294569201794128431611914209002159842098443085730984635481881964444001686815911211849341186664192088511800017062085663722980016027791875105596436585551590151297009213853964483289066058010815933386700076481466518830984060807960647859480955319591378919442627874030549721490332281605677076820046841427103022952330166356573759886852421971073461884062991206228088687759026900629032487534424141455644596438124990084123337073204868087735787815597189757343809533375449233718644415004903512743962342884129889673444769109894112788276520842647333803630756296813267408474903975093060152215198545337205119790264781341618900330475736517012153447140932900709171458371256122338632403889465038675643586553958104008617826694285509320332278820513730474468041601604646698109789265119722377280091319789341309026916524986692926070776259839422235227950027614463224868531743921258238496233583684675972986336812705455934568696547006134626779895762706852034065681484914848106941862491253005116519980005077557546948227808850873634513980747168741596812795983846471320616785132135215117651434150128223970730042371737604246200286287567760588706851881182135203896369329827997377270356776123500128495265709257294026628320777609299904276446037325275841654419394331096363575939747985252675880138619038149175948019698275416364742972495591319366642088495592213380921634023854807180692466003333505617818289074531336362167233093439382462052076094227694169658571755484082250099229680723995976635817831737285425758643126832966903048566638085406142419859710208869562113120118387423439067249520470119890813732640030610935049912078607152685022353443719781575745030129394198783244266921846731164363661956564971906430884835362534687278518853012714289687724357827574939307055590556366574388201092989395850283251245888383519638404135634857793588880653653510551817448954534821935314134660297731984500358309693529124056726861208703964248840539554377180897388847468675444779966434369072384482621624843353208224738426340054120113141238197097807778351962299234892812624061139246155019232735658648888389918392994579872801673653686400343200740331889788455247490274637880901800581787731146782101356765436184327282045951699754669066014321404559224575609718598876875175809253316803117312153485041561502022994422158722823079198966342730560965413233735302696617971668275861603150671280483712420463784792879101961548271527416763704957501105636239522217323675162774377934061820211828107919479189356376614212687703712715221991842711451095978565173405122240289922691727551190621529047108201339092587970303763573594356734935740899444752100473111819181947369817808978511400713607138336651515523428453363381455825064617465484411827833183788999154505944182865820832622938145300463659994436654771492891149889958444231689815512281581013269286575691082164248702172733668318347365552519744757201195762449841848524895840611112779238219843590009274731329868689784830045418321827887223427049305292313986061990894718362520480394610274975275264710477966183559163589683147602587492380843908455040376690487777139899293410237524411155337977928287648410291606107077968038378483518755133035271581680146744899428526312359889612217980101199984538002173273441972086584861173960003002055154562562004502848540074186701982376827413851743513243708285178461568957168140985047777223949676432425363858070666403137567942291064429226086403549723103352697205668699026660056098596191018774941617060310431988049299092117943784486285485409850063754818989850504855740501322518282708359266072985242156864947959669903253318382351230583453381130547462709141650238254700180525605517633491795881213420438006778922250616702473020185197605303032023357342309983431337370694133936780363727645014991627912457555721910342794694824723905623077177169744381811731679419690345930584885953063049358399473613589154081768808699483881239353235377167055021855854443836690076392413323072212062838910358109725018227850431633458471005006191146998246381833994313674684566882815776630690862360843757915091559812243591220583411956288636496685020694264506644753994866261946318656862730855229475027119028350912890619807439627330427388013194765188488676268845314814364977699281838886577912883726402394846329414299698277715878959803319148714492952030546180903128669866553632552226513507097943178991620984282749559111683738460595314255713483158765176042092701165638389402111285594266384644851919592841094264166781586272004876080901943148936335464874222898623348978223726577170106630826266129645263061417208851022898686623981145045271882798633725246104802882110759512551737548278139091916706753632659743078690629171386773895596968185641609306767015230020807250752815014078236081188663816097416929436551829242711091551211116219606559273097595643062860003211628733350238897776418755192436671814800939185157990864911791705980481386296797064339976997115782399474436139318654251492592099044271844268879866561701324072189650132252738229268817564091530428651404314599070544609883269071409372492969425360797106937885351403326527330089474099514636811323512340478002921896388075736924217684623595693226147012060379452989539194708048497748983164560687832288270342687736130118169389269896621128874815119008737658730088315301472780852799014477301590325715118949061512631153375445436226331940156866561516796205592014451209537721049458529858987871479081966220314764890199784797062182346878942837318977382930871396116059847893145073735173279156750537084948299512177868752714865474714506126170684291398071043744841783175924347297365226943140055862059881319246679281243488230711358891871941016584340334002404726583632350392909467254325379692637645814017996474176047171640611273528371978656284618781508639220054113035936929739573031830773790901954119643723039089726564620333558329639550324066824364777539596331812658524300991804966118895708656912050872441896515697055161722654635084462581984635975327656843313718557407137035454714071387622438263515595742823505131484715117691583124845170334694799123604479005495354758020738359015624011015282374976859424922927567592884220668333307451310817103335951182627504543245516039394547173598148246127446668538549185084207581151238346582568567399644047708773820667781627986869936060205885043699994148658286149705550746322968675052801857075969753700187559982728461376666989681221831499655196562693518833240469443737258055990772985574597170309126210899446885860546498064538429096890765242169639583633844099274021171440112695836527428457043017492876551947794474199960028846204823244974115349738320154702236163036905773184303873598405340956545685084531179595652539098147885140893907071374825753268113682503252039219280720525997163415637968775890844629822662397630202232549434229034753360631867484108131905295594496229090542449045127344941064426686615753589226998008584768229542354069365029856114798408620068403174977702507086604793248433355284626497768953772344635917043996510784435202889302943201340088090423989309442957946665304180801747422413791086810212748699001477778462629119849887811041963236571511926126136189645008062721401111938947782500210572371085255456029170074787448914953319807506185798059726385395881857102630393195363825405905259052244076708296690366412846212307329030150244982038372813450045510990368218060913094638508347662680759235413117460431927412799889573382113485286695381147289020694061983074105795849164731783277668150397136067163586414961996985225485162725562163438186289619960503614725837623954431093998320301763642718347456373507531856256523933625774408956546284951796898724779738212856527930698221092098143621470012103375962918021751744706008725241166973014526206832899031154296578516095294479975176085815441567838127546573648579544304830066773522049207541942544479707502992509150217838687649159607705549850246426072601677204510603434163547163602134056247701896518981180906176265862074397957992086975107621109966890254243762010138684922212847342023350199108826944245010836062099431387814180164685528673843995430473997449891632545749622506806339318578143803637929714947093567353724177947626296857241319451462992622053170037506968522568390957966033993145350330577730719131081131362528339633312755364694439010983013809702028518098242758907509980850564125899527356198054708128140829848351355247164189201340856849262371123478732548642334943201484988022240322810356240818967059429552163816922527923244885586232164017147972416681131126785646430917943616854364328466492555094646740637529233970505939473484088894345854950334138539121492963043939840056552992571758633557826611341958967148593504805954237414431691603051277563274329938523425679126076459749621247517166496260739715251270103140394455632191462184049205249527295492764968974519789789014848335501347374127195982101156685313764982369459394500826825809242402965506548190333502316165869972742724361895756022189517492684732880975017783107734275426048786890835179252693250217672826011413049045956937959509692445505220088764439706584372992452536115869686553941098150986020569585303384354996323769038138106874849820756981769278988851184895787768374367199066683771401468593496892113139346690080394315051269946514636389371752069335967617821412570604508240442650155762717137721069551052800089686815593649264396805417377272060262794349057988464092417667302484237564997297125965256855112989168407088912110589927876345413876605384606026372872327137950041193004184319563946448930792663808247806519818519630755567827328129105964322359536170720809093677582096516257354611859938483446822943816505805388844349874744654242305369044593808667647254581933956561687112387474086279471844955915908294483803118586285848169038856854857144342580828343235193483685284565002633499313066699094647416145226115715419958835105494109091886409533350754611205032509720128277135089800193896778717423761826323362682670597674946261618167506539306849455928750261197936984662212073748962253784247698131466345396130543372933979721447437006434763907001342740166715332319322695580003354925802375027709610973031501658533378757818008213684238105366055511841516004231415528040670711257991415816890381208199017306587819339141994239119750044968732046343567564289945782128509903425241665084998231876572955538030218336983962014166872841215745635144771507921880901915105829090629082087213424531313739186940638058077871079186811422902798381740373169491190402462159334824699459025414598320274037810494174907928208262292686717308157742663781228220547723687570182194113217134044041970686168976179096690942683629989247317838671142263533302928520796158292480609968794499274129907854247200593147705260378811744831651400730495414573233251177204988106285337659735619492458299719153868292387032214745234984727815827667679682912878735905419711576064963911470187469757491009327851577267472658724779561878146489037423158955448526618268198272880643592104908767258867280811254220421925229032871264063616347147460521253637884156545289980624305609285089231090980824071319857512783341596870532734320936383289269700143260205819023759363672705739536689612889521807064682002319782341106673910096377543817014083620419935676170487282972495614225654540126962471023208695930320000571807788045883781457625673447043730918427285944344670062273231514694084721503517614015988124476530187757300904535288566581560363372838503190272165902706731046601928565949405760965330000159387144001400973586322130882819605555040914115790978052033113595216791285451571980716486445306186590412764627197093167595736736156004183478642734489420466375366433701607172664845980117550678737578776717405200358762461701669920109796900251172050706620548802569750861254186906214324542187102809377767394431160330438459591442601090345697933257315631986113319840301647298868950611914389558950798935571591266246324412876216086735593903525345508577267583784050799202407270632038427212322781232525344505544273295585500994069203826944897575230186773868401478314701055690907033647752716666776697891057517386348845137437160076877343172020871476395723281212324264261535250809506090626374935317025437964129117135618284790439222966288974983491808758320615291619580840406092785171798667102073330036959357702071365072794152301111374699897137043111326241819701150173332413244379444972293249713768630983605268930681373008228910893324426889525460618555890689218565085976845243139242218281076183591671769803882848443506695940674111234120318201028930665218785587991442707614576412753268976432532263077946288260146730823382282497191824638335322373012054501242674485489290070679876990353275744950871493587884179548978885720511782416512502371484750983723681316435561336278993663426261162845737613509218846893748571501073092248630557821410860162215836543646935982669782657693231780459615920565272924680007385050007232537156955130630380467753470590913065233074158835915738619633641965701984243216670437371121656163202807408466849362518415864859024743397640599610929499057543515338638038285249014573890953302972914313218401796576138513762785049463506316653875803929708196930825323933892351412892868455302643758909973719239984640306529017724339716132488103275773858003754263109126105768052434424908863112784551292840066334463946989556328643379555039347213711135367848137401732082352807157297184798253276738388488975490095810637295686197247106047881735750770916639239198605885704198728184778397933734544123821218671461947148461310053641395662697869659358523389171428720626782322607325897679276212555988069156886593898861279793379430088416551765720455683249981938122911450531879429946485916218916763399720003563686392129637959719907012024329700953532819505051948138543315350468112543854447780835277036067607285665733255525557835761492546570881074060281595884184165320703929877127475849687949883763220233595920638126736339352211687301373792432960040530279580397220466153062840444078352400978034388580616864594645031109737268057053919962632674648371434775356970770879325612508735095419751179151818050299766453744580095658241978104758329970422459462512209128562023670517377808188775969270829454688594710225502017411335342668542360139680949303448697632328778687526635608393823882326437014289865945805070449560359493702660120572561625335940136931725758549466444312435078360268746503936981796622275288822573346485486705615133738984182767083511496034620387955231875127412175523811621233342758202569298668710537826880947964994919364708940051030060901722934200531672031601400133350054402594269042387700259266721972919949530093320718165290274155357979255741074774196540080572609371593280014808258294175593427787230718500989894052035884551858497160772687827629907849286568311778490858894856866890419974789306326122837222501333560512971271682873273832766840795397646392753923390068730633396993923258274710877570030369867998647787332187622488122441053294821537161576334738065368061634306618480725563304809528811435427747870429191261218538156639917543120281821079494441879356593580309178653079480316196204715816356628378388389289083394644389262434491867692954531197358997389782999133972231044005478105538169684504341557399865816066252422377760341744021450439997348133969420268383177130497625809230669623808975994099389171754855582213124699790978794143374137040853350780532479455440753190336889355448296387870980029292459260186474420966696891564416625284566823063365573235285190280072576636226999557379336937273108550322307890124082664668255610605633353452368769451077149995546023544347401368916793974652610247978304785709103754283740296611596215362414731797923374279550444911909972263168480593916920824378478170145365324243697158598176299493913392972282936856574816325524909858744733015310214983757601712259751940261147048321471035909712103374886330960915771303431822047157020301813347267477286404763814035666203335831703365539286665052794569180414702502020202941732576008789033891475658751886400733755869397517334327655197229189451882836852588168233689816201117734740898020796084880957286674532236321615877031254567010293731380855654293730483788409200806834064285969707392167248593402159858204524946724184884769395277018787062755118837811200062104538092437550369809941970929320290762613141492583406512540181533465902606208806651781465660288155301270749567436408921492619168119799282494561392829067453200764536163682461192967467850380950659962339048229508578159722662366224892561625240231463926535711112286336671040692814329923685838528313782909484853982075706966395792682193258417198195510055796512613139131761377051530456385687105297840883756126193758452434105590657292613182215588016416128892639934634060812936733896337137380515032052590140153520876623209629846392608882777597875043307933226235730073949330620392837102010577001253933794290531714017090653005946187354834735887631986209737223305990339532154633107770799845738374178321711382365886252185076816287833604472501376356613870737680139223096116452223328283006660613003574062162940653549892879830493988814062399827695927003720168918682252290124953160861426651007001153715365786804824629231576429478008139964843610861455362251509490737213112131228514649885440703257325900375966089493192687225568488609053329573909427830909658462327240385351398979080068479523134867819488933157972939588136742604332625149436822360507116885535338827075206886123631790804319818821615108230042934875553411843202902289180680087905161628702742469087751689874009891500425193511338235862182419301016992388004630410453020408479518325589420825614975035935150246138331989944168825048273135265231033339365176129120095786123196036445063994395059800007392718255718386534751214024125043679607340261059929182725278442444113357001806968833491811910007055122235866914899468923009287816473281761522933786054881082343234172106907030062231149366186979226554964218125768731406942833664632595800336415735954125775886757892868911472938832252309039459655557987491755878215633817875856584773242979209633269399100516794126768886156697636910930259028560872610699756284129087936001332035701667187722780563613452904830994448020038129866120587103938528495089826344186476653883322245239030763777043189281390917061373483758630070729065984476599942972311970083360154733324264360778961381291088318558727709079308972440477013230125976485790457860731264979630684436904749972773619768480156770930917638580841100159489742512707574170409979303392572452115275413990543355264626483657419037527710234096220259456581884789710860658818360282933818935764380828415220719136560379716079347600575210757910996472119839516445402087208276431323212667362250681035066632994147782574645346958044912674327569848752472348684452128705797398515266773747408129962491984373233165158932613670142136944827815724508196517469484195099965731577534680737211196774294784818669674396427287166768168588248397607619232204153637958537417223926212679207821530512728492053309380888748293698061935018418765777879093886131901063443110052362405364208743134139825652248894714473531769976272149057533512015662560625993864591290057804408035476071736317407918599140547989674866793671703166191810642839907829548898846390261978862229950601756813067711933125753089277480609870029572655290465350704969206319654475882359143579545678522935369569410811210256396151217067586594084472945803331281115759764012758579104887181032126984667139349794667218797426233476504110468680601213016099322447615354025836992382543882824063930595669799519721507156796985852406130481009199072756188557591257140140463207917964272290119662881347280040034458974091773201008122765208048575246317551631047104470529802597238162538871551562294514170709788530277487223019990802002534834133888348883192307425593796486459826628822962923831549015833565767456658902311322486214242548988598052896450756758684208064735884725982917276744170127800734957953355987924429906881162488007899493546060152704595414443401547518601693555202334097344573762812443721280464842094758634464890228681812805323358076616601298561165598071281567900055922762816368645192902228456280069281298002208878168344386379989108253114434137483589115968215833083468859942841954753994084383451164042721243813251766467055076587039165995035588357258789027560820057069791708922567281272926611223871328021402107218758101933384614323839168450345693008749648251066504974880980368357585798613901370919960595955269257360769385678612831957952061750264785248666807705738369642760167932008361148459962644697212775975135072070140377516053830165937207089688021947096463781474552149279396597638019717031219868018698046825319029917662802655069993397291324621594087300142826257768293678465579761809183394636165991343585727095717256139937020356285926431595479081015465692057713496041714212980380548813248164339434416359055101010613723277874432868450597280768483156708890151677930549271135630539513919926787166329789561219069946021881513821677035630736511111756196978285857315430686922523257486655790213952378906459197785859319877815089556209960366071916127160460638131565732954680955104291210669743669469572916399735499204704254076463778133453665352619078330355101344980332574522428865218178413152478540984137296804168632267387044001633956773837163431117369797046452592905794852321465205594578283021079919398944973462979130118312931626441565864704207129471194655904085065367539932501248316431668812729478176081576445865404345769650639631074224234056531458638170340860359149487656202098015141337132087503111650301783361742505609021540161315805693689801222129302059903914331201058600247867872205348953401856857490784801418451520205070500473451802511632155849319062868866172083500314684801180512528370101333234592100225400468998449750735081442514403470271840718301855126459530904923187361612295786459031538738524396045232293420057057958472071631389602502321642406061127022470024643404293551505950888398768281655290212381211460996381371442953320987838974398262096482448823764893090610505537735232049187979453436408807969464342393128167090903529302753025580757689926619087916714987319714454001011384168666813367224286408277530513670645806037035626517778510600183881563377064990921611056835741719655501056214305393834887553174721536608804014575641068260228719017200006625343406151254402858183628811699587158658564483072127468568517811714582546653314393349759070772334857180286219992247255304370722137056714352701250601417762337510321940475835662297064168391755697710056528549311314092245171459786610775303011185964676132969729897853523581667979578357472189413891533198180164185047226595077974430987382555262695249102009602796216152308787544375301071259711352013593296549751987924354644392001751411568613468967529075401203995328113081683810160318575122038192033740951282030228544809696227428076131022013059623509279562641136267225835925865471048494927506751694114134169844069597883880604640236106470837588918323029759663114965327343592840312809470931161701382612833990126927184448390850682605601004128166522384324020387774191581159677387068910543812310408187510603505362920785077516552067680143592929274551889874484342932281361421826027900065797267634734298468859787740380044773320603385750581462826432246910783625072319352872536643510335163426924474596491420722037326447519184156451462418680076045089769816336581455219274002128976266790890330180070879578848490770566700759711059696497972124322080922509895652722080017885699470096609087050444371186790895741830255417690945969291801369561683226425662921125895779040173918128643321386162789825844006271967594552700532066188921152346022504434939008922247916217100845926174673554453672388752029941951191429853623097755371678428417966719468009096158268454524426160525522133959855875706639989804407802217521921830798939789539398098327238811902019484724982305745420805069835590033947842075394874621149013667037697336294702612129126059906401373649072969659211944834650607344557909051854422919511241963255757461136936713103702735370923511713401454631653409380047932686363476550017644302305874554086924423788619488744490164903436579355108392925270782413138750524520875986757072420158151283072562677595412786955184103468246016246138605837669612310684299220497071180413574062941808411261247323996889519109614541821424870922138648012809954827302128778177582790798050689075909150001790269198003402699552455765996769776605564336258093851813309634560744584285138552534132544525622906854861987102575324183851496698664375648786304454345883265086268037750124029512330870994080117189055761015935210226294690718451074947199547549481784993645567540389182342112539367892144567992679732249783275201009619093898071109363396434740912525373647221179395242819147200548475870108511410400989918583170021432527407247108527143200809777445215819729209152268989264926328529823825625197669147880155353049703081423093353171671396261825120817046613447485060814339006168377139629902759322902696563644100674784972520225119549817864691353877061203798522624070395566825843197295143187832363659167557697902825174123733818652948467528434568765950485064775178707290337631495817277077470144825754542233266613559575574352106223709968883609551541845681065751540387878582379845615704762495880264637251184926442775816451374865762288260804115166725344449784416118215368832575337261769867071490927699790515179809855870246165836249060625731230515920607171501111784363946355425206373072886886431743619393085000066952506963900554066448507206312004226658830533436192983423957229882587271316052915689601467963664871563512480986715732421820381434873632774609323232903518591522162480974142779155772381313051759572052516761652355929584432926667241584506889403599489966245331467288481186911280647960829117774524598173870236978085933857964069692742040836242734829788221816389604613399787107875144930473305501121719870564659340279065999457079413293578979535451445205668084514205169996858292820304118600191479839953520476556345276543224706497437053344249420681539561302998751066972644074536517964826020947281518731615260799236992239217568708413718518120451880106625146277428854800944835220235025391314023604697300147405160114094901572789577666705382835793854662987210503886356213696311782270357690896956474575885612560716720260421104102805007762362612329169521163846279152281896957574091651484322914185311824459195875515532272237654217664584312897249129528638789807561627308133906704939469097571409296624995484080100090482143301158122811811788493727567845480473100803535765315322093180872567664069537447509593060263125633845443121502237028191064082374888014580602172083592473432114817155192190244925022144536823905941535318470516709002600582379711432786043792416106536785445910134162854053619118734064143696990950475701937479562912478119277024755511906467944234379735409437714329043013578113708226798715570818815267893253604937629956869065658043408577550789837240647232113229344452913937743770455735297682613617906762266189416266223074819974492173952838785372234865674173194107801794017230796246350830467443766766778486391114172040169134505818039384793487051045771125801139734260322560738296259445067972497206374561491501053966750141599744459814834959553809729886146845190107306375899323258105688481412376348498581786529155429311641828481580870025293359482726339077773371177708313850463066223283176688319933690138361988321661990549892944268211514504584526967465734168458745841275424419443838185477136130116465665205557804579720276163517244459917295493111617089972376117311140282641882349261534578803689017316168379297765632993532134593434347363189357484917234938212548141286628611953681799266702356449987235566984985475008870451866178858355450438591854691762553802301676825803014032719316830625828008374331099554564821465929667957881190566026066807935036819103364148503432518363161402629864157870492607876289487669320831756642543466723883668975121728033193789557335994115878031847508973526380979813149473781176817861099617988206864974002006097615473926910805633046526742940300183389051377955096587582935425857093511909632058760881156250003833084990518638538269945338669608131074700295589075916246842252962240975911362922217457600095577643447550295489403287455976006465776946083288442176023791728297415328091780463180686313327168676484525453969530351522148840742117304011887319675822560805134152322249383671831845805943116090872605010781914845835872546665786279991501413802333873629573263298633912596119583198915415483187211924036105424224481044467302142251155723320739737022829399017792537591477059779346014980527286815883799840492717984890797943595475517036763613689210511967368402801467950202990817371002356847990186206592583771281077305235514668962856060735157764407931268285875051370379761588395392666583700895774318224759363092694351260912927353311421841229098219528138259087372556094888992156149467757291447916325861237523324012245747072058736184828377625041230780310028120749786334336776206962812625299310746149342194165062964197392284867236044284040605992783098338917206396835232210767437392703628678954894519050182537048383356630353301039491934720479751171278748857108860186302474541631853527165985960342150305108738603242673300777369468541763188035052756779087711046271987333015737170206806105955876940718235125672326646795825858884464124748675421724139482395208944144283409402730080248751661594225282550562381613941711556917236544493134304738519023256610155185550936701648752229529521968144938640408469936377871509044670263863342098709630751893821443613683247377609928563288212251976051079331916786927632737916229304958970385575112140564782029599097244957338435301819414461599280494952273392104319788359144553593861428602666665799623562755914152699200821047690117060262876706990288554288257579503624630941328601400489969776174271863597503694530311998458694311298296150732127038576513110362614330502326396316984773868989319306634292056478888548896955642688706810780904856938838018073525958056144708505969691375084220069937749512522511465692743355153850544247006883214197603570582049927324434563268248988838224416561270330988158909828463867038239267825615373437454252713168868211790707178043270490742516038054024430163517006358754504481519054555807580086599076070464755270944326937498282008008477702511926870932574326125009864943126961806219992122238677679254760289960222899452552621368217887279881846005908179970888599846866101458337826338163648835910580324820431727594942825418104821096146802349052120969957550439545114575244174440363165530768195529941006996076331594609585697939901703546275092435288381568308601371036582555316403250880357462324304292706730749625843742421518055111410939783051208374287089241462435801242518015447386431419128227667032455841875911516305757989865723449919288776276405787011710127103538672151888644164108890001170325249751469346880870063153989519155150996693038480034346686100762645650952595881509637204108834800156934724346351165256922256167637078889171742626753815473402568615985612703895921752709185508974283790531521426890286012268119068252117922547532380854258091753541772513524920297505984864128441206620989602986620533465712619229514055015164802640743635083298323250618371874027924904922601784433955233850521229541827485649462063045164263384999065215008755852903559937411841816633612708238598723561200654616036320407376843531893260584445250737016960980308566608551892268329038011928104342139416239583133777591700996078047594255203041642919611140113167279776458845520027944222630019243116060256554106437134958740352989524207891205643739560790962675466808887007887539822464162617436102002081431396240731280345887693920157327437387692559032150961540969165731542802510775008240668774596814768979682012958861193419537036619914563878648533367630337058102148484832104013544764488217601609342310279894601774079420452181264665359128858289926478697026558303731209950303697711290586371400904942320350231981350792985128764588482916829168190895951477436379546585799126182968087801388026290395907158812802967808698347900528282090826114629317655655411325394960330758861448143413573765124190827538283638324907076289590854562187958009288636905937742623096354087135447178963940736622040787784548331583541255703683696930026671810368378701620982692827449054538014055028662403717878020903776735007066072585928850444195687737178532568453151269241433562394705941883719402331391358955187294500256805123781361163785166261205476722756972277338180620660035258989469564081488945417942403296437558608973855647659595262714281227796199490135390242233110326352338738928250166047540729785046660419135312406889506987676603728715103945974938192100407040460319992552464546082969440917028025332643284613213489524699159251774358288103060302404017434940599258437635397047831815334184322123433478589499811679336431964491273391179422299742174531303140316420757811939886962717626133097073289446231837757960430989888304571608475528023036555587236129567567854492928455088056786148736035304168788590627178604260186604411028157939252195278043668367442161070746775842845726347811084504374138212065361955603554430012267385546132763388192228260799307348534445507818889047694025958529909948458886910433979272916566880679269964981160234804483591642689141300817332210994909756785553425910593512652657459661328773879743787706345352497135448786544746370804556405459550473429951877407971128009097613352398979986346990209462096472523026343466507554926741545118692954469032981749969980185113013070231608793834948096130173830000562289852186514804810567505895116955250228799041226587666418732657828016991162082568231579351280341898164295206016277519168149207772527891544663938096275950336949732346248034218945859084533109476723768268581691892934435191346937477172705460844350365337756206360064105626006619910562364165102579597769317887972931945176700093807452562717132522658601839117660242364042986102570247568631565261561481573957465937150125017171740068687236866011414571416898200594005793962371937736294046595624210264789220515629635902017711051019109807069946124955777763876994477016286467768204610173540501304877663375706081111356264148014799266328654598911005667043462882376338435687183358175800052087218434940468829389782909633860356257569490551039436525789791244236542377735115133829988941301515305021724650312700392954608409128498950665774796406271996995126092973917569346033879954463790756062236732844770590644704703587280937416932496560567641625269286203213748766639885636323709094603451216182065231155484199316392105726472227087515035855110789677596805859129848477867531645461656138867815581551194798263585440211057212308124264902531992528236969915191348021294549983512879994258183377858661772524009789021208913616792222993396271288414420981839351625161042342755232136310272779658614487660794788436328426357823233085255863236102858995741766807046277064338595147389357644587903388090421078595415647142379094750826022704175250469704087688350707988761640337488357936283769952753047812617695607888346248433342126583088453957911210478303068283442360519893348782787808167140486174671631866078076305802387798820943860878281666950750799517371851006005114973790511436500558034144055489209664586472233755634418843354292241853861480742989337524327196660459225935385551872155694459968430614367392121373862761981501947806616836782324971777934658622667696907199333511331537195793351644881266760466190218983706439157640250979901753920891727110470501921007188550315176604533652208112168598824650411706653245063475450469486666221888717193389887372787765625346367651362956822220014750765759258938874808178922719881506031138746371314322960162889354659412176119242375314954309368500754090502763468461408081833946133459501098835456173185027920524234293128400127051476945017998604584923530769572417660387200567931353880918921034376517484604198812737439551107029744800707657277453381170553512955593670110500490198952269145469001386639303030386670490378649965054491372915061315924091456246567468082456289858306675457304439609154537863916008297480380778043727955037662539264045637375860621949588366003359369020319278569479193432424358061572990372054228433421208027944323782611756301947275831602552010728428974521073156744628140272914424218411311472997264084128216823016324074664614606423312525682594684135933879798222956547357704609187988273844183900526758791191148462345555033249321993060907687037944732345521173954327681921422806190441634439613750436086711944045459418938591676014443773115710440744718662717242929295648886318188083787123875652235209785854799628744811913735615800860780259693553633140734679003659976082441447080361123082531334770336532927595258760585193201845009932635173090131118161654955099739662126460376710661203487903421928173562576779699548307176665804759093001743746025861245458764962540005994247081237754071995331550223736508998706032996083181435283346402574888927940790858306048782663674663311416634863222879699977041311731493742018431830101221454163413424080105321049590516943770726333838345049918135049245363267496651645027295429974706986996271918889769101207844639283891153127982438422397708297881890473278371839128794258136950012066458139088044726041881464552956723868505400231317357848930843525412662486918763791823892536987033871245462367845159925415026127335564955267839286321581108040399695394453721565342949640978555607685807204222001394075489747888083440347069061081155757598175883197054716598202202091725469896316042153332128440056752340232367363439094406359105597798198047471965244865313629337823741217445679089829747173284927225266627897056123162904235955555635446850659943928379262608130375819159872372749748866910936083334613658732293108732374749994473945011353746749776459195359605803533965392362456757593424676646407069140539781990128239889233980028930881085857223100743809711569348455561784498400315100543270017240109845259415014120024293585679106146592577050340234188039180664451746124446873899195087490498065900804390890994046984369851342816662981566563574156595660206906518460703765231745671716260404181818596014590788288534177326140773557638210549311065768291988445520432386194348922903697237321607874217185184936634562292444303121105241306261802733844866124619358450911571826076385924730325884708790418274962532260468968650526330057244720838176349736403879363303022553618581020113557209337290069126183427512702698442003729370138946948442130802171856429763584137870355932968865668316252986686591377103829694963615992445162214498433521771853239490609008525088172793265547450037360777324150051175891970260346541808471540189340113600803101460774810879297890674284366511152589363650983949829767151801040901620589835014770773691750385769821808705775793108068955742835133459904828260445660907589075570128676152479569284203338923992956547918124509810381712241375834435688597525091272418807562577796122444192921776839873014620497212454410678424359730733016506520305174462348153852348618594451735916899576377555148168427304519762433889297962815764709284745192387425329743716245121565519304321621397017590906058123184625231935150987669268646432963393046557572031297113578622346862544720677679954062788845336749803460753862002628463511583021929107069128520663940286871431720508611629545645025357522922668844887414654751190548876448911621361581083623591607885444629487082258165589656777419285142256194516511410807752067920611674976567004784424813141339267596863576900668866561368947932041884781076163308372371315307126304873883366662239510962249272180604078519318916312852867929399810529694034092983976287774030599249790573256909427554244955239447868902568700036872759810447111873622847595233356984516455883768639811208255152668687772164221748214491669802173283537710247473671605897092199725696859047511438090245991409265971216998113019590147814294141562271288013143239786728685834145791452258680591970786841792566700124005383068420020718857145416591657261532403607290764570068870309063845027680919029069448169887664381870816342294698397202958014264552799908315621670039678174733644230107073301453038148391089250766511295621101420171597136791545834098541109694270501296965013657122444646486680737839605146085327813289164757970706457444602872108966605031684332901457141281524123232024289147377420469930683726085292562991152792133173582297172928795559681751205829737990515763790742270754592488151477373393960017644042762307936158533770954533779958444499314872558476354956888747729137144037432155921856953063778998654492252488506200925807209648047494105269932761559970519513128676292293803756608974397039253160143694244074298418926474183747508247620104839211551988797867224513095189918115116828044697899829054343153093764047266922200282725621710564261832111750492784659821563484792153119113788635991623819220635485849059471958802090265794080001130865116769565187993856983648417507914055349193147089540534648573867156937945918957294246331438792822264089019648243866853541588849052183842077847795047224122314879604921049694796387177297163415543238636321353192504798443127696501427701474862894313695785814632077361653227604390990383818522890679100353608061436332645694374875405442511727570182569560721898328979621690801788977434176397650094001451396204287014489319644045684217568711119482686100783288837174033696465183724202436372917551865395517693377704717638125046026165731176294683298279226000386187748358064667656215624055366853942828786333903070911842934638881792547801865640174365140186351251809929823442708974307906180730296593952546208826480879999422463628365238248837980003307608950207344156403603135796941530965236133965813582367658006437742158651824759283706147703052219934937788230489875461970707093423704574379334536141458750957957687331841382248187016932085302784652077573261350902997853693791683278097460167465598831199753122991106906221122748450505219642623749361999839361907563636962942899220816842187671532378132572051748244851305933596932790765861127659761002081971153138794659506460232621819664757722593273426067679963169769073439559496994484074995194223136143744366838623215409307415058181191564161102864680943743859648888008233755925153596503456527207251824496046374749879773417893438187125083891582474549030633389812300957287197409752637870202068602173726668329427004646466556532162433859409819417892106626173461217222111382662349984601745124360780537476720636609298455131572822856380620389501663914717108573263188825345366658384722176029607134517494784662193212075662104579204014272750269525474876520362232612260224219146313368142485783871076182961420013317444234357664564934861392706591706217836847693881654718426895308282591785868053691435645356747187113034048459671016264840362664238018832298861444075014579849572544326089052297382138515188774086937922188872779834129806908644393964579073087813676830560294738027055305058580096398087098686762129661049088817964821501298961832409112143475987648926031273790964866721106652060741683656880296291844038540961753720612536802017821197004173150728167975009189737286466357677706821338579619760390198349649717723986010344287283338394239159049461892334722952160571571508644706577532505669365881970166158763373889127507296427214393146995478698065953697758974704356313682055592071522317608113699575441532306923826918563231049953206542040021161371634423873325683665785967831262919065035609852294162593440721496011048657841369679264105781167933027753955410135230469835836786148432143469906925770085021712055823832458887190751678565453984739908265128448477836220793486671156956283069783763674429605920056626032362853698066642867256512245090786130517941388837582184033356842197937951831598201819735328453284891126404252411781546528986765845043862615515439274679205796225899576420453133913545171035373877318851115186824050498274409281036565760580988806667412486913767987264859496317659812953106076566746199475891245829511644588600655994505770398770148450147865449456555805885693453357079129396536854138771786676396101255819549297029247667867278112388397788562201712009879121159369847503571959287885948629211704409220192607135619255159476026070848314162017078038043810247147233346578948601564348164095926731814050977749317205572029491184647314921684750302767085663809227986115741652748007252221303862895030240964418144979684847932730944241416245692574960600713256030762401232969105584608668032116339419507343923828968609674510373828566430514444510739135589365360849169892209054324565485826080672371809417612725025682702589457316164862173480212716761216584660497490521931684496036701586467339173626567806760397145117901016738510580753799231455153365316639936336832311893816098733919064551335984284177726274945574031357675045626808746070774468935798315686897496380167951199228424088596753589031858484778121816860939894214142782895708388545904718563085681943964080507825313262626698715234013523456238499970357324509890077250547507127074152046711802241882005290384523543237344898261358523857014214862598017040377075102369664616078965459666889889242272048073800195532206354492111669416504175789191835175059443423175365619365540818858746540189814155112284037199505136396039675135588511857054603942826599665891600181139931727995233624838166173446845839418151820364071424799037918659138139419911993319971427336658689394064297173241896616815478851733880107279133740695843273864755897263231581592957381274797383932283159788301499216892986862991068452852373403825284397773836729595922067180472982466620947585010275687927422137194312191211394246583946590795157181382877091249751994865234197644223902037642797142383979309414986636059708540913773986500999143158894295730188402372483380346689293458193169373122855163957474940992465990481634589248165095910999360985398698249139249500905096472472454968336339427288538083363940175669138733466832325352446569876260732448141172839345599302717579424529842296258641726640987434131540801960686587817399955049039545912594400605587859303127701484296842010199808173469716289043092856081669479820695262858922488314731893408551328828737761160829771604329618865730871204822933649972083533095925538177584887487450558985239870698619941244045669469090897983087782025016738419575228728347174836671639113796347178763472496969928283461238358601657923391054667249759357896387779885978507960501275817229545737061903236212299776726962172377757046059996220857559448434788950984020332245000782728580128516822149664047028174262875319805945497521855503521223965255062233566875343204578553540433546648142952170237237645706348849137794756883490505456420989338573012711381087266368814891953765828710101640582030083299639638634972634089440171716359328582220180272693357471380035961221569101294997660192134714366433013311113144386876280950535586187981253820057918310915689992758730631912178795193101720578969242458143643412990959748075932396522538185976518441316926850936853592876015105309244965729404585614379073627478919537108105874224632520382273155797286093631656737290749474365200875235887143992892625576989446655415925134871037017730580519902499959868905191977956634093222010598038598465397071736553544228627080077498133667484401355841906897988588042568772421167416189630517034655891987643200641467195674328102908535899143825601281662066144139131914578341493602276240202054421887270042790535937442437217791474030717940581975989965824251961127536564022466377766028954624822295504477066627403668114079279035108729296785884352640421689793880024377148147680597491218351597623433068279878407058118374832106097007073271460194494432910490801882977478846681297484167474790579636737604770409116159531486259238965743740224707418422623699933295856970960863206713783123093784162139544207651598569840786692910169487975204374701140118888565313318028547664060478403188147037436320633346439061722701416736744841342413089075229790507470327641291843984082956299309505274598494287749629236762975966932511885216248027680537767166736520802074348483632118779401701898832376420530120185471651716277853645571489007864535187719252197838724526498193043464675599379334820991767698590727338186200411279595242359248384768156619741759308889480905323903670050215078160220301408751431479729760504335011816800794093081830264342419284651710712850290319990122692830857539074803318416598041844325670315017949582716335520786170892171609637970932935988094965088205371811408970192568606303627866064774593933194010446533056987881625562673100673153396419635103071198202294720197883523002554683551811303106858851037451590826876654783856017064921139212584613780588946632488548949262107598938269337493924504834822839205945441915540884808158880382488591219297636806196553647279248520697134770802980988431320502227413134852806874074290598682286630315013559157863615686221497418373501573685582309153190359492813209051306967686800679403434478246056551087753400904127965110735235717689096584846079139336523050273264155392714986237889961466277383639866641096770954049566615375696869645296463566193787504802071868913896239439100858912323693762688957807096299428570158564269256072648514457821855692064393908824976159256048125118227374579468464561859762579221551636133331299982926730274396530248092157959577915724653699753633176574231782662877838294707118380565008586740986857094604218660932256918277291171247675778696412732954935426677530295180612098969564056039799028439320866246233501461381254719161340419707167180438226927092965363761222129593006267321706120976158955129061514979515731029545152302802137151044989620976339721477006731392959075694267878164799698113894652899040260039539569525743111891748855201351813670756644765511700410029488967771122108123293281539075464296303371526668902346935289520863289385386930944131143345282947749420869554550622072245163224529401949080173619086226580643431796603893544678424678949204686915327115582880583992345852716221617525090185576527325265115792865134151371971318680041789002286580448594965793940521563391431170703595825859231246302862801580574538163542477939347420302299073424453700723497181577421823641384011781886466676304457755928576224001157539692720009642643792811005298274419170249354378248124442856693618608993359632288747494663120131536268120254758685604486258114158972715703869410044885657119198952842245329787719619641684940434834472252481840680003320215664959185528374641876787422977734720741097868630578621070058994505033637184786889764987085560286527578299954022732053465524296482712996648401939734256076223626677451231727068698809654599425752770515023291703164497739491039785121732010717775052050401003285212825467771979816335370137576640799837022773348575318837968177480117143533416006162969126932664670471581943048779196094794095888553512578669652884494212071948546796321618510788515776253819746465514637232536726838171038947722142811842682730474605950041504272150199194022546833574489199477587597992655032959978329489496597804428519952995122133149549526686301985904607731731217985361974215777160055427321459778915172933238978899224416989600669218878462219641977206097100672175785410066633735426733153611925651490766120931156902297007048751185399700003645377315611451840110172151879347171406285152925453121615658864567174257809954506714187189381455069176120739961865346403855506789165945650566601996155642617937757610327547096385206648481913178784133600222988633533046538844250388203835422726275880270853975292858394416831018739880747622483288519795257152907407593748806144515979801653949920842809202207800323364265349989603699289970103646969916549889486859816694733168628655530080184025074125706843413904287551026894613744065430063280171183835114227915845331339738166830415929876111836364427035980775974023051545088856501553178508529853134721692875616459704620597632769322548818253308296082860289805282222030527067205630417519759926648184216261264913569903146696392731964269446883784627586243022005827865101928151915420425324939326606487877204010823506413698314686526926025141469112599774662390787513851231978262321790198142991365004694406746822679366987957284281638956760404384237489902317341041650379416086211426085499843575180095769229142335622445118541369792474094866522349234047263107043543284153570246797706476623719764691429722871742024735137999744824749896790145435829660331378575708414522582235007764155352611302116328036585778822045514304438950926040679603803645987299441140997038247595963284314774442076399069641145201000238308248187091562711769801860945110195177221923348872524227449050801541457252832822762784811077585188654723130810258089359691266749481010614249562219239806181807941567310828424076934742502273441947325538136527281418391652026479148407882559581732995536431877703739614241449520079737386523199661030006775588059493288783480165622125729277778005033305611414108398566223543247283093466991149789021962839195485532657065172344114774672037177682555832215896261478494001670158038737937329870089531185868498543406826760507279433483479175073042285981409461896201760157895116391980761475379020583978089105750806735530373256501158471642304125117040452428261039656868152056349309346033935338147096315630421589979490709428670073462622949501873030911095066182100161578061854910802040679966272540567806984326511727919045333409087665926031923344517791404019515284673217175841978817900001574474030498785659500426921762919016228651622513761408460690175762277037886877783586752395154945971309089091233931256125983443410688573170611079136868009294729037537027416664259197264460817161770458218456310995461925273927274813272736480503422286367956517751509080172258332357382188778895763733497253993611532015385205066036356516920191725745117998636697908572860680840732952025520486050302707141509878075509778228207567780379984849708441539187791321119439538871095083782455471525502766520150345616543345839500334533084243496292016638962981151665957270700173754894157675548297240792827865387982839757659365880704814741077495245388456066292730230304821043104919991859504048725172855879286604086394940395966844022941765702933633489595186981572926330065546685124485223447425489760529122780740228453793769712107233047041020096443930952444586969901273664423748109846894507436320073423493450661582055101892618399033923945935319066664737044637480354842189213573014241391542184748818541505562607653216909294961104422458979934745504633449379283808738934809749416046386123304430270125228687857509534349299117231992077242550203551465048857671037255149818034999544502878256384374672676790857794528064083839812262529287821115991857468342889801127292116037280306670314037808261720355966671890611768122894837293249829245446290676115921573759931354007300378502976647653036320742225746722215150410970543085316817437104582468196604289415038571016932304904637199236164733133511744023939026140227646397708188755541150052203562827886134059529284478469387851783241158094276409571080368375921830548887234178772942373390860846818997789832553477302509433063295140965533350654465863314562533857873857651887419581775923063305288344563044468140702370682144849529836409354423504776020492313034773441209309053268383886832987463365576202676789782740388776883243387660885173878786771256129845426373581725304132672190148672145934081486210245918025302151488792210875722048673361718470646622133668331058303445863276485811956846128149172578056015825222329032709971244024261616816542320291976729257303908408887317117273978133539052812053269277414656010174547482312865122473796119875699182873971953711473423499160383736563742170051309262908546065668576165492391140568032326905634967395191745510948342221861729856309090185507165999337262656544066968409566372445865571992564690151200096840765193674932705766795015772998133347947699860184014986011150361098509033768808198273873450643022368102393736436818748058016602622929830681871675596914882964232979804724692860757784282856167409021932835751027546953181487784344274566005613143238245547062702561532133857029763243523119686434554632022284472358718161486764751205566331561291001251941309626837224045496907221622358401303914650131750230727214271043279180260849221291696314182891473088938137687138561944168286329939890818297907187650803771602828961275068879548647354230574839499549055461425784399734806585502051413267917287994685179518198519953304693871422145888499882209943107716149258072217052490466147013076434547613300815743275290112198820580711967880182344679602314284154406607039253667771213773184653694457293980788408530428114994362045903337861048647069481587297469807144584442381858686108545714998380561392579080858185570375478050749060118425750573336955826026854477852107083753142692669780228979150046853347006990099591722308536373070938119367894897440153005850845086209335997831836773181727553165822958933716651467186072319474325027627146186682478192876762721404781118421044263852863217351292377995445615849963839063069755576322687514794159435435282376588069119863083209733247560269153188750222787864798835409884344384479081790056186907029785303175765529564441470306369106164163160080023822282227726583944772043067752579971229302345484012854978025830467671886151363095319732775205866456506756731666359011296794843518216487766421094961144085920260284219076933152345419581973950339083553876833888552924697262968310904639762874174252782128552900657781051851415322233448752992550187258934013644612265487066639344912229316455059895037582722459023841707512984281839815163745753311484125227429365213511610439485259138100941890594251741375620009367916680169379614262362928097258724674234353208150630839934485268401950286986259658570563779882773022420901686997904524254363243078894840515849361226899680957024817459319203334510453334170454515027533740720269050292532655702693452096187627238990395010354618684091097572227326978222467566518942844022663936065852221381319113705749678730811069690684020849323355438985039369728523924058506255610874369902270470732669762524899102516925478751708115789585690020774848053996590461404790777948697031672574821419494232300175571807854345221800186590200500193880179217881855618868441622576422178266070618604820204514189832861392659002729721941296390836150431587231755878185455398521424019307454017279520099187512879091242272671730559467730084959110224570177926130684444974159706135052203905956206364445846836273886680852509485144659876945445596678861191170059790374852475841580134989733083113541676563986389527228084473962209590059741429217872810766743061534362498335908380233834321160277384484527181257789059124804846475447699389339357109262116266896289845654310754132233339110753221566707056020838252037423539637157515184027220700357818671652043508770034536159799087948566515469479705507545964044060086989970834713915321197236684359291177419383496937737817381097991618465089019051943648831073276754066268421668725721552635927571897008389614125306279632198587832786304474365809417056348309126797315874185833374523828504049149236079008325969726432837073648221905523224479678841807784642429035536787559843477761635937466295322166839966475926407037506861872778170042788134491972531446376909817830707680180940989770501116901108566244815256921514281161554409220388576017238629861962578578995753470887685498087131071377607620144848099137379119389944229252207842010890765115972537031984268928982563567710837488066204337416232856008088408261618258953999033181687309469364534460655890804614853978035034374425485243633866739444912320077642056277570954290226148357844432455263819738053924085757213261011145489886691621770247209103674175748460363511615492733933712969454330737403686834472400371984918584103615259007125409332887146035648353786901972319634425408772667120404803602556843827286015273618389588192448266563829785940864420484008059164664001990543682786977302335303915306320911207428868404972320898637852779359430270222989899453086509081419865330373760708809973987834205483257464347117761863536205160610699469080105725797172328686101154900369113908662583524983605864166273208904820795982159779933859078541022935299685238924865608487196117999337531715801165152567071188351714114003839262447053254894029655929158548700880074623712305283239679507166218328715906060624161995841902439677549434257680059962263250256136956288173232277202817449744464998802112044468355301813219332106696832420214949456205718465997182452220602825335511581716463111461395047402644094765518995655826647083961364080648069036036704709568766599590226295467074635859694457557778159704819203484567018776289198084734015915714773031174858697609866538793914005031811093493947863043632381014690248608460604376979325275260435956876332669362622595160679536112366210466940331808480451198093072786519342471809847607150130930808194750097217478634432599945333780189284289729391794982741704898655608835987756473775181818396209775652578741896883949382365980502852666066239775118658525740286121406226409529359614497207003658906429932211693440573753819536770063733669189488807905187371288796136847028206630311146985275252549702664330237348039909714157126013445667011268961003765090838404168377013934273899510689381056771370614219852240719168681584477970798631776563823904518959894433130477032011693163584961376487354143864218932744644384419599350483059469811734808129198913863358156956811904864380838881214193668423985103300534615002264993967137707234674116953504368587982935122229125476691034630594271916536186518284761786494049357953527557473955341153029026928670341662624172114688924865650095452018763571528192202667592451794806010659149389787863797383922941650695528429949383932272614656732936500946228240724676641153508406594006399979211382960644324062691175599761234590335398865328946788722792689282025547033195675356920686011355281501119853035742998159041360725729208491016053395329717899986312782811897503562703622421141263206080847408844420147270203339904568909048103758517895091184509457965632951079064212179608484232749065667923209009730627238223000027240263870839643282732506699189043360154722884933934247567065358910273239489460642197224874811173035704039027897647429557431871576713999112877719248516928269108309333669734314827594877443723039654659138889018315747908327392682831176737664227825249351079453310635954970393957235849374614783423467886957289497609687049932171458322654799589471647480924103281420172492748452240863342199836260278829688081124545722282753811276340854194582865720485123645339065380444552851850530854549773364679515426226945253565050975201776552925151646238496697468066856650071917288694074333520515401583937076298769365930826435827563940278380457706260344879018700408151574823822071726292406267223561611001932785578923774504768519663971194698979561600884220920251763480041952728850879814776387639863207035732310184104863626707413416104567056152494726544009670904132998199353011913742514077843986624208007847335352207519679050345407935688561588966088818149780530546558463048793122595806851325778203977381311300445789576264773640340725469393345967640392239763838360603242039194306392189999396574096329949604237836925987306785997643973422607827393776007996354844806847814776316312994133483178058367519261465372520140267814250203617147385397686163489080006021885392817276459398854556448098222199907941881108487194027781616699399417460335310673748228467032366873689816071804720201369907761682811982583464139746462056951846547021713723807512238886291595911842533512508174708894099483355980918804873136733431943367595174506566072408068847080572854588959857108217915369435844162487731014937497329635722992240384414572344901615180913293671119557153321856603249316370272168598075344093402936892419050462506697571136057541676416893890178702151126662854203943374900119596381889187635162856491657455392118713477953867092541894702626449075943685422000377306247259846922283183006729444931982488587414141679645070645365966759615449349328797519724484386487581993519199309162583739302200530854202675985809396071911719335587110243521285776584983074387324952994655142834397216759459685818161332115550822149354483655207959498755125460737004908247626916671001259808836820448404501099432715358878939055424104552241202902383461260863508948783800954175666969683797170619261797625242424452420551153953547193049454430981533075277641704240189891284216074851395913877171675632662260496889433931504421436058331851854978562424561356626013342362047695647988005156849793678071871553590336035042159199508374033117698801147713791866012719548809894135427276023910676058761297167461964875160064045876942944971705306541912876749473890307475697275414809095983555833274285811224701959055557422463079046549462684717911408576783093629652544926375444602940567118400126450567069530430906792899080316673517864687511674027743017737372510444579253281499940289438551447829628406418268088663865395061358704267715038846177270211693909640087052511984970071436609549222047875515466060287756889648982983372094832149337105463439397014444771542136185397770587120047660927150046924955624707293470218698788938574231889325102386590876980778620512433017069526425562295559396648668088988439661716495736399702111072854923795455012105071182692495651107164944300653196108088484622828152124142107309749985814322545080716631916402162689350508016155264700696182478648881496567534199025905676779749085866697142857135317136696107751106663358722345081242606702177356657815900429883212804009409585454589994544642593477486962578956328507258188449684084654403418348705918649789314792892143043159173776262770553417447492902189062537978532158325870168908237738179663853990351969957552112599550544936439349064117256329080488725830933707530486709319142676773676839654866056167849160207649681629475962365100880494516885512983511660508729674523344146706148990962464666447163577310467126577194442645977217318779312875055599430857569865679123996393792738795168793670522886399013167461788662578745010665868718564812313702734170485976074517181644434938447649777584643570271357805954733344746681141428261143507722795984135351378632875641353628857222136616035671525439427408499935533635658295274437992214405497881093001541249443008959558950543422942330958722203894095167420303904900735677560441714423887324689342615528651277031731842834112961229020952188167805124546688292474390325435084405515280858867753630680371842511901924606254526985129803222512501741125061606494661029466811070126272818027968318916441256404139703113727069988853129444050121846716443293013982653350260283806664303649358147352968954595977284190335536811208909525499558315091549213095928144439956335879632414431845191908096126412946351463455145324469198418271749944615558406568961515364073565388705617228276105635826289941568229351353368806367180273168395287113082790954827865759434856107408988508032925303979668247114647852537730420936173822386159137022631527324477380535990205064675676308460981735936537975208728837065406587131896252821347432808615122705269797869536113120152632402907700433031803592766809763960338163824950795665962214303259364278725956665277896629567544721136358251467561026908158949963707528229839548969439688897066068692111623457620245996585584229344638319938226306466548691279492366572077121714835968842849004844232516708859725593949094706330036839977655423188706588661166640195492393356506954645279674794711620474669206173108148565993628388971124495499595493155679478289840275644603620934023271066563396309607494617090136085733257949593713517575666172685960910644299207862195956492545646789942974817099258272236254896490903948330216774703229649802498725954263424650555087692891863802719654667435448132569892586102721764433505513801221281588437146850519046709248799863708527694916417040741094097023280463115619476462791096994149514543127444698120476576637030692692269324132636926702057611248616333312610718081845159193952329955874629537290154068117526487269654947191179887446031287597435787506857981997943807569316978759290743382745547706354966715344666313752239513714685664353067899210201660840852437574498756572097432204446560754188678524817895685819367083142959433251894578671754689877694029021465860700673640435505498520451104568492611344001679464639596896035841145149984924300258449371792573445683299935824427939212850867511227964823163903193905001325253117408379449502556829794930341807187842279992550448208452584221939969365106767960720112069742111504362065757663941533728666969830313014005191592828258925146372558570724735483537964127598021617386051152301956725640745539895898540857190061839646293306117005505139846091227265082320197059021752694608726955460415471484587571058466718736380007837203811467016881792960381015552537465974071162774572281459546340705610373058658319656144079812478361476172913447950401701765434620997904048199491387956639223100910516121440876232810806698017574714840232522991013217789861787719205461503131826171910064015796457975905543920192193582483051358231475654192185669746871783067657118814204014202261940514804192944209860804441567934939214699384180781541675324589125224862906434406896738241075827626232546011629169656242108648155499274687590131227808041739233648146986737377980401918666137219810755778804150828290167158876132049875274901793183075967720356779840292962642957761960190996218042943072530951435054614618551827481572517675247169937401824379062384365578097589967829046130394522837373736155261691120188786641080908140984830430862380147885974018347413822510963889368807663458586495702007002443075493554008736497763143380652261586361590207459869991680549774004993542568568079479128492793898760559844912581725072352914139475566914135095886899363959183966503832841194140167122453162870975314973373705418825908348183937799254159717971710136476056843839096003563864957931956418524683883756561427577253984972583984537583159517080167729291425581669385806357072198660419539898371208797759608780328170183209321713028052161967566552856964983685932160751062845263706087174444595740828498151194276840745878943468010711537303226268339831224238093982307522620024634419566031041304588423171154486895202983824769464416953725162979965467173286209609495338090031302870482006011913659229049606786674473700909572132738511428755806213171724420255320813822064136230793221223446876869593342671900536071763583162129865007508282727113595344923117870469706399432097577750928515130476772757877887796514132238966804275025854454466419107349610747425327234855430552102610806180788240836873747860781104574396237636649202744953127772205082452882689441472050721291193453336892335581206081840613374368314425028945602089794540433562521449665981019922435388319507341834854429038430818706113171908552441103177567848954569538123793837095447828447268346883151024216349708543370826450340775912186455118957927834604057957847336357964600793097523815860897507350612336765612763845077652861026395588212298871472334818353992180686411020297298580345851252014997333923654301336478025443588929321387604070479435267406902020840970405069864608215139317159463713109625326058408043547662295921244808433845120283710871162623643061605872263696502404446434075438235101603891474975591591041467437368118989378544638009816317622889743202927746558737254568725895043355345120992190390756508487330226836426435219604731323396324028187082949523569743619993042346040212194934712218797791967565897110335877010677588612457554990988304058180771139111450101745992693019557859067120652147777096369182565667780959096981959715749200750632561877996978638303438665888743036062529598263863542042534981927018847888199465619090857825756228585638527727955898481368309422251974679769451393875987549442638264918643558592551774826257294859573927459205723725889234114399786740866239601894154356080467680721396534212809974817374877399006740064054521403441829734569558874824630701661890046678711678386439710941372545556890613891071688196791235106297207352545081406158103637034265767723074404402823367954401212456939565030880807620222350496562416958173682615842185145331061831351660770926649579746046505299631343640922825920298415198595967097326054257025369307224658902432473976554214950426347103505565838014540754423551778383153002507065706592323735893223134569756208097800078002449491513800167763531137897384621639554678867076082534330529935584259677909383831672473791767508976635383108286433014304095173378477647338943306760223775888773905341167478620621253398377816873362637982208015553056477733933238646283503604236120353157143357771580576096358866665159322646101750874998317312709642925170234341611510060789430536246958023692857348863507891684950249304750795577288281256918208395604085958830023614900439110609371627711859449361617495536844415678357634907316409369657028398822837583988306698606177807909774783184284823372575674983510565298134336215752307885849225477319043720972514719423265109306073129190607911810384656386900128117644466341741449533881568029877793590244366087068094948619399442602217781714289075751695200531828054800155146684309450130471666883327130190813714912402927956189020670654608989772607707706140121409005064803060977478546553622960255868328885796290459723406551472657758344748423640414934526086057417458431330951351553660851795808935707954876272092454107740248701867283070922831130216808577993614928481680987640015071077117009039043527763855033082591242855490706262565689858887549867168384277834516401081694755648262145932462693760730821354944149309716486714571111484568458400781043082677956812104730403376887923148031797022442605011370807198786543060532104334440586281339295414405579366318493056525806869252734190273334630955383429995665417867770743289787964390586041792634408658739377673504121130685277549300926538840252874643596172414046339750242861589380048976667164404258801018106746378828043132020940221194855587238320039587507725537105014333032210151734230731362170399931328296122834360091673713818389072827376392577659793364295759925030134814423690286144172347501403516987064175094258521994866342640467535139329836675732732362712229958209275676748354554227545282084487330625686360856280691079616910681837525343838296387700633575396810741756830748951582830201168193275820688299433950691159008000170069509270916708530971992919066974371250081410473561514469887811105130785609805825368422110391110202197930374771920727570092398899263069147638090877296062859516503062750204082671483761806877434833819950967610308131010888841537482939315445229431433589364659996271611436502951873879941882628361325261484344316532024806749818101886509283681695775403012397416979966808746628494593481386443887470928382859348908037025085601227297852287785794209997085910583159995053323095501626566539693960584030718029380998920358878883930716153755738010220239608206525432785650205061682529425239539498204830662469044191829878202916855214788720620728544664467245160003565851372523818034303808587139055511351458399187111817320105356202257437343030751998256642518864912638458913029054160491799724341153297968136486581868518508605298337014747363002236336562509537169843767036894419077030680056596115218560358034028450854042776646142973661966195435720933275903114199751908360388528517439673817156095554120379649692971296997565516262610531719927558319120981041800152424515482245131605851456935989521845658054128613419069267979642322016521075568995950673814255963056990967399660900025894273252210152827099825494235574650795886895626395940785584891348991109075297629007930033751678849789352608258054938324632025597732340644299335261686972178315188662131585092972159546825964973141447895691068831433189189056359704021341200406173327603616154943768335578411673391356342605410179090118050095333253103604664298507091844546906326678553515679406812482149052195834162995094159195193981154723071456749832080581524199080338656093400689371566864732302269072144995547540810974505407178975259084847020235731151886579520756419402731649805917225809572931992796696863154914260823511208375498441366095634263521770373019193426958100593036882367551334753114491297652288157470138949791310911030770922871953284550411913531162863866271158853106022258003206106955404297717402751428407940388415855202435164961871845014272300066422749815125876956356717348614176261192346544906073435506693639426347445095801913153354480086114501146928669021563140429282780446883626947221726646779430246024936769190821657281565896534557425620652666307454008471979536931551283885531885948971236072080193035166826136362177238995475909867166962629601844513753486245416070052484389869106495699689139455943801174036027624579931779234329135468562894577593925390559858990763296990166212858020219673495122274844123593935185024832811380372019914677638622138420390305475469777400891273121245584093391894724515791388935674294372748044534150407703634506007520333813346257907691008852236006900659586357282992871480351435367790565952258970754297968368002677748279964346991941250242591035611804282904553377692913470015133922528732546328159291606318455915698334658947418191066369267887621696900030406898188168667263286470836152343417330607058177516506311655451034269204449062829945002940617123140236099435538521325377041494893427878624219931867374036389584346221437132343277325431449741360997361735191448365682919875170921474974909198842977792849657301586395386490169841722602478494335799355138361295033950904204714143697168746381573427027892559320076696035146661466991802619684157147423751113917251278134638740095250770467212918236203087166532868967312289578500491441351329774163378419409746489431780610558522938847155121333597845356522772523727135665461656759758475686322834047560610280972325667933904779851386379751910403037848825624032482136734235040712794639048916364667456839829035928042609415682092654570897005242171645980118347248861867319469343494373826118183224546994319278236335899825893501602278442509938282355241059692150948796486330668176149301312006856855994857096075384493645253865478078523514189507278585689307021492796232289097842110018416680751075824712201781036608847026700858478380467001460179619011163957227175908247433293819343072281756945910070628166471662416032524640169328546722084329330767056317056734908647855131710176073885165187946139295712047512921739886091796476078202326583010386950187567828709896791666697364584203684256753703241021858974661527160921396623242084199822603968755041046549430441348248934439821558104737617392049706849103249921137672092843237362025714992887967487342162813906966611923647675016163110674118954244028187760430518908987229317019223627381528745621659947996466334187822350890356136744555341016319606188584261589438145068559414618847184334156693858149423047323662711236544634476436912299862364320837265555053478428783786885971542785168891575128731561127494309249997329052269019936919980869748178058374374562261372218159013703532531623528055357739201528755132615372449212282353498625657736887245011742565678657267733800252035404050448831121144039044555022386990741993437890406163592398888728375770783817867196362539803455732186240799820751553314696097901901029545499773476223932763361531076923791933806181924267265811742053544476625897400387390412400823412213574272753304268593098515117901476813144684194072019830472459250378503101365306743830800070749663081904182319018316472675959103865564021744350718946457260374436745409011397286033664704413529746052205947339668950251804349539890768822447011570016820299710782646919615754158969471877545914266200974734422110672029324867867561465511054624508061341190096660998791096609088972117484392549406624136737016762668335675889916194859406396858220378961978816152164885459052588303592734078943741221133124885885391359837540160293693312840654125430294774831150587018463927750457507257281232675981558918332883230355014587096018127321983930955448771004963989896285978060847953360912719531315590167336714048102884818238651268391100770867823190556351377760987744098308457346982427638734173182987845462990687418232548253301371820696464256331505383245204753610722199506923028972256935122874736879883878917760341319541768809896969141474506893370987329234714636073986288078365432473456454109257063843085200562310228032453458427081382199991545063434533144070002646574600394751048766449547783689751899908646231574130820384983003661744618813378640279071840879012370881359280807067323130830814387713223899664898655098993717641861293591278151792227971600761240615761755077987815506519486936210054883500720813020531915014643581570831406643981791504891348950704407671430665000665459315271447615174085213723886433144078833763777005324220847580709903522358152935599190784195076246066999224054463832531714257129358917819768535824722461824446822220831033598474540051279034094717734589065039062505932964157139153995531655675768342659537715567986977407967000053936603241128504668411931670989749769567984561635500734053461087740805088915782953780785201116188981887888739230521494297877052872993317100162922396547225906182583368038436604612799013279344346254093443907057654239474278488296716621930101452784657425503493578760407564067429037922079690614768876528815067847564258810465227802125229549668052851225824831093970543529515365399242076241505291908811939301630786663617423063053453168854045602646589520274244564593937768657758672270539811121767518371439805096139389597781145144772549620269878538192471641122381325893647735500001852921158487030497943623618438434659753032559079072439594201050265648614312214588270859147679761121820739712481643400356998186857683841845809374725644523880425145311829901736237853108313207223900493497449750303349942155159177100529415659967401948016507630932714806251466649809223176361445554902854697299003537975400717450124093012475309489114432388082115580263330800768966380287129870953107464226017192335461040859930680050763552487407543213029498450994609250908950897844264088751954723369660698408294826096704806422602307366544865147723436860370200703853121195283410017958830019145519168244206039878016607882095351359615541519049406919272687661012442736325715085574667628238172661387763965621613357817959792392769968241067809581675504936863564332212629732683551638977306242748551136901143298671018458408666036097780411210685437368012481452173559748568660083042104120490158985205628256426807797384953041294843473720347665178270465780079142557770846190856330960826540221367732820997118310299225194215535752522276200859575262282139364992927556331060569601305790936589850111582460996690007582852121350124171588246054634072982718656562218783839883868591810880710321404132374770205909449570481835410568019951038150588174850888031544196097646262821946898096974055112943781685415157008250971620762219975426529613603841728645565874545327214737274619264103905843141680863697470159607682461736626938103323247771659153124418250803188435586792504602743114439616916204890924378479347520937672164296469378480418799226073494250272663352231272187449228957187217965007130054549252818680112379496381902808180941843061767832716772965084030997356417090942174239489039379629672308645647375652060150336426014879586821508111943388565948587694361067533588922837033793547017961879058411469935596964966703484240366010529776830645170536827916231819057866940049246040326923749116164099072920354040344675784414262462503795682121654968571824562462686419902832181048949983532769592868599551963479760708792384229271773047139055185505331182817211579645432525245523618321265434147255671285709204302298601348137315714421458088243075909926823750820969589172120266673503645440182714644683346778642058598278897510128718768609181154854419976104733362616205442270719900347599644408432396161179794048084418536255504265519267190111815685535809462902488274630293744367350175596911078782547742527061359255519594851369526085366418671154234997448777562564153890597081512668394617923212993662669378238297917708314318703927990360534574191451135887456081792343213339652933513103620014053967623739679328069514135008677885046380850809282530222073872049833492417001897592228094379748495502282658365056993859678229594242039819745351702574449726605545452793138545791765587174481127323867762840736905754289489650276603591806273199465975075748246685551891549120934427123207682505484005689174447685406092994240281993152494321273792269253797576251689643700424557525200794907654148883796586066745930100858524157131504732141350774400108862852513307442480436487862487209847402416459371746176722107327264672417509084818883597002712079557252680800949481699286972666434417824125724993299201125416135222020497469788699317611780749031645782661780296053111483334969271249285106261121571633590445381124315754151639884708258641886439732840461192305222015318950450512213827521389123165629796524674991651438360709826062756888543126300160358739833169383054682261684877533514793771010940675390086412054364408882684584640220910164350275170144359136020493067952689309611521352675298925095697949917911720820717238855534198726295351930682028041614667405089474188105097534771508011754592715553596693864547712290077045869297843286376319205513366743079091343022182508825270875175133049825238205400096969145904391428510446383178701986662611651938377324462004199969813791245283369595890026962306144586605268322631496794400764044989250800591935690499049115411911067532488823315025171965781990478695954387770208741546669579470894745338078723943466024971075199787969720304040933685353799881027206837574768761755820052988745436065124366177111552278932384416400207363530456407469225356125314132594815158148545570494486655997545804416024302311151440483305709726644981317859572699347796863984848794714654713971918303449077294917498065145824838330627350703518303467214299974994463796028059405510049973154562662797998739250293030383134307369109793558830030017382327777286304695772877786662920778455396641622486232905051237471674849938444406426433949053662493713054444871488209117139694199128946231463366464525075344228272330880887389910206997823417820074274446241947647294117209487863911059983576761726404519373181405967747835203126712203068092010513003382933929177196417348628886180794906082279229476768566093354291729707833136425403082348871792266320214748972251733901082441732376035072785835474988735061497276529022025528334300911685161119547918110682990516875223835051373822223759048703998935277838450877333425137880811338447135434342531335080904243065753737357364306555556900603721899318235981528369202035230459379003305134606904844215160363711336726518420412285361227771340316315960679206958711970143054929560307185574705528178032080051697779403217522922168445099300878705586529944970586720171905662262682268467542361284128506843386839950287597586733983586847779083418153324567971929407260367280089949163155947133842037898401956921239200755613654663897769661274912030213138697156911989070307914243992229740524796967113706960696318735481401972715091213720238253248891288327512129889963089724852759808344184445637966265616356735717219232782160377661217946119175901561510501787752427208393450809365213844598684464214457410754204848080855901596681658623627697138911945807997869145271087692142499965476059289153857124555091582065575215295302700926752581987880697402447500156082194820054031531912086912368250438760099789128035903649673104951690104029790534750529405079882378413049590501056323625900355805429350599111836580110493831306525441266002288967447513129487982434440142732786233907658936873971849170955815484888282857860811926202352729611124581683627653787525452772615622919790620623217778560688587894659662696826248905929021000641694158155301301445502275193448553012822268032120685264034333151848820305888382585708013424235777785623506988947398355996953492530642714958965097864013630527495779470292793608146075905077251477745386040670199944848003060700361360490543577312156094118186097790671883593937536235685022674231664580299680257566469816962595224045063935085682672105162781061740604205265554769845946735745207167058382617329835665968202789959754348232860136210659525226495606523656044735830060036022333715380211400850868288577047703344480773019223975184946585168073581900234402961494682838264666075528224641696229203628531949596700379954854334701724392883454237969848967313710667055397167739038656181291369505670310982860978138481459188892032062911484200616925057839274573147867824697649330632670813197249031205187025701547497665863737826233014511289577783245748989668963349982001869089504075051062472664737738315829194277507834573490737580046338216795437664051914482057269691497392343068368491418381792922566420192050749171997878061761891358488992818794666633656934734743491961563545955169388430136705120549798368389558554719656493101633387322329899389857792788210534063972824879977921000848999110772137842632871004197569723204330725816760669012585796986022096467454219547153462147611935582938789545702224572411191790094981750318564676575461071224866715966095064632280239508468241690845567740818527984468194068279856273622623795558636286545088146355916054615136408639593412042645093620633067635940458644891270222328120699227888086228553481332581112059426097529935324775138967393455177022832476496696797362115584682961131229114899213308111411665909639739854754704186911047911160297420523117337680248266547009359402372750443175816922124851821573722532805815213417532056583544328913547819494043756965660538460556779377158505435194602679749257564803653073689302273707088297947575744026341786208224847054541361664651395712884677221576063304985935682759000446237489591373594900272474043195933398322047528459917532227436357798391796663876727220191691673865787380644739579818570723586328930423833842543914364033323638237023446153709201629092390955835552773758496526995420550645320930839750364606678924335646741882487627854609451972399902370908522210074135284528661824964547732042632231391271844864944952083128024460182072153454723637343436035097977168157596992535917495712473226073736876706754082605931072310437089784329668698423319739317421514806736292663944162920455261919980805655096376994429139572632527956524843693900389249712058370748462551416801623126768943240059613359787465545354475622045198382432074518034477273459931828417192399475212240906722958538131515380315820536806134117812173853840233591254595316844660108765683601733450212725174284748642006268832986236352795083541571525219508408411931728158518923264419091508104119356790252063939403790399887545643348209290092325205229366235208985120641556532762528768088603451786327054400345455720308689380551520459553995145142458113561308171144552371596169281881924929355960903938387280503013842501023131149699883101725243511154218171399816595992074139594723435157597958658107481837842800122693500673248075668219814714854382738446631879644579789974123239012581536396345978325866703427499156265091497614131054518493032725607201647812997238118386976208406816731767790207104280342104996216713070325373461046007597836456765617736428186232067763842577964681998337968150590223249364547906399482144383882161013915108672698165203313802795802374451231228762537468480712963916770486674490502428605036616212688909858393961092759269590392142571682777035711819797280211219450133919736954336900029505083307138459946215351018277408424545672907180421747522674364691254523739772245433089368677502220941355307760422729388016997324740187350440108030142391086593847165421690049912875064008856418567095543138691049375801877343653296840235151296369255456748488628012311063299735461910827324229202251910558449777495450969556482523106691136846657429375884614763969335845517622902032026694226314543755658080563944517191910498546347253079851000554329967910077107415100627949129267348075043202469693348646256167022279719830122585181109068702147384158479081427147657923623253357412390291791393924433373019335032550039765288849855827504680869252746202221466328623257727702082327749245847358592916426696429267225469195289322990495745786422030360394355552939740265416862159601034339126247968702379192886092565852281324156091972101622473174732527381808096608562947108544454016466567594485981523582746252446931451373873449671548704619899659724909041171939646896921417174631500906914088296644629930011885911148021578119139387441498677709228053415795622904688771244145620617472510929224321120711125918076451304698608239343063392944243984604775285850005049576497128637420334164403208583351252336261136444776333298966828679843863231494607685146174041504132351695220808297985524527936559505661992919622277318778869024399637663374181639152070884966216226961723471362904077329355904751893034205755301749131359071335398017768275684846964204347505919938284175572774465570362678735091607536720800171504864521710039142059529725466387071115322975580713370070190675672168032519286339879206562637906942740846044431170389850238779677528329819489284852694539233102155529922947225991984888579914886605550127351145610500950886230445898486742654807411856366281748443726055980696081575587531925697102442597493175472321807128498988909412495414891202750434314289828988922189405773548461306971031361368271614232370482749557860676741371774274767305916723983862600465923289032335267634918705620236881251833842893942647146724915519320435387947679874663866048613878945112645784836656754503165792643297911369938760992060305793393543166442332177550407256551345151622839174665294099818801190024931952566023048203498437067326808291634535421686584072164030785146515721343375412017583472163007927071277596341250705024923888658554811964938139815055895220907287385634065883899406433259426474137064125733024935384044427416845881620398501571106414114817411754534182319944084323591436894711577090985248266700615449945708807956690082505852313315054591229322314707789837839576192168039656861736914126888890790955893304396697239982770970794151530646079705271948355050514604155817510870887867280453890537011144616177447027959214337516746829254674699993681681398865811330946997444878296217657273293307721595758328583682705399537874923953660954322520992188059774611845390936187245645989321836888296611943350447937391801932579597691318520427964399331920176333551838705375453129753632454795973652128222992080079270822833429378676468940567599314232049235346101302172916322007309705203798215364482387211604583957454571297198408455214060616827452425922045941506716417753764483688299784918423025486027385691027954905208673614044548714292239022776543938897392852049793576883631482500697538615611626067748430076542551189534712056275053458092362944390708506534708983536999562799022902454366310590986252867400572636534441236089812733765068022878163931966260714190031890433244823617686946264678300000061159490764513727142697447482877974929627358804752235537779731883732867681110118368840203958123972214524658778422548183794969665523040698974240778979053576428600736447719215879440789007478032599299924597828920987814168441958503881191005817068142759668453510374235494663538629139058464915229092326037504419795651429132526120360130349993654347206756340380080824737758020029891551447152141672017592591031036109316317901972733709446980900129520630600367758590879654036336004003425090458643691137581809608958578509382324852861922940482690886747361183553818264197921659757498878714150730610445903028596222181847539609319090660322777223289422856112477240406240538849188409831696982750085420343994629960399247485934521645161498354087789524640473453465292730185970473470905496031852908966615382236028726255616664888828960386354354663795354516772464395556653782988840797405391052131221711375782820272067168324906580375011149670393565142987619311002322264919351967949330036600238819301187918507754644839139475964675013595010777990992028634887422773279279933686124694455882008779159156819511553368692539199624336976530317391504978081158237495081116512817938182997435333081105815580567946286762335547808461342456448073773371604609682781648155425732683050865208964261264867603622616916185762683046069632360114284036223553116906282153719704792782843835153539071391156980268470726699205288724600128582053545559854269899526490271572834225094921027873724475867155099842221965362896302836797153595904283830349347897310224584601038550327056514345516103934049736262363028628377059226860019046271112634801345038328233035021836504873390563829313088280036643436997245588672291301514625863861469407844130663302674799356007902533277249869077258682801818624117554018120276770738862463451295299333760864016767943018021330489835362548781971900178593608921407380352565064137051034634108827591355382997610984296896454911871326883120981941188783174564404018610299165212440979211468267488680813991707612823490789572163434348815377716653686945419674945070238202023853297859994309968532597728203002208269559247611610864745564673267420260432084726613619721559611923917920280429980992708197807590559684740951607187995104053365321775657469432843066852950588736126621613770530910331160592180127637712502295873535998454084048426005443392164842974847473902892751880608729993509746226658997957738873201852684415718645875557501523359328676272027701756296987751079811304162594734565996243923212122487286327428386888461964222100163210428145515300414553258332574124517629453342266723572932653624347571837239319225550469929400917481092382544257167933767559039166672013567287802902837488101493028408193870112489011398784017339913354767333891871386766552386252921409280758130517829526845829458677799113163947120640335127345338834676583522449061945031937190659247765074959908022712152061603344765697006821833654152339955317996294798976876648042859845373572481435623262102708928576045352627035638181102176794771613586924516039449336061435566812522625610691896818846495117897522186600527443439794751264159855622347615423000263272390791659853744704374724179547795099206998492170931495756385940426907034188733108000101638499482322286163822119931830724783918534916665991617294754239488135641613722775811747152731487336390229434444993869704483682268622711600107907289136000391087839003309517558365250974567691529699329057896422423087101990701175896473641581384239991211723616974262321507184399953074777789442428840927050974576058510731067884137451446640254571834459790668057606248333045726189120588496830739644535644468037040672173311077233318272154393929251982776999032919209732963343567213468866127512249677934030873176097649844938236156204011533317261597238195443155717012763230695773601218765294131668992901637797067026538558074071582453026152690961980462883168005684044059193388122679257066228492814083988392249543253647048153113666980656583020925620195189786115111556093726461793963285950098204818707300643639175635393960418487353751471968748722797836272708779840409573322559596363041656371265192540986473071230607597371191409105034061240150655739641893281215563058239813433608136804021945695705614362991293402376062687066958599058874215590691751451207390292012361660361599079603226158160878738016200398793799737089496142816967532242606735751455940524758142675650206223939421454980072056106023695860829405565253752360699901661625147336303232011244806454649074962083454195329836173125338894717058505649620742174004449095423584235643964997522669343649280377396153617760770525586114493948881061767101366968373177885426831875539837991071816634877824442963308172685891742226309632645879816919895771288913218616492400952489272079853929431461317372508990159107490389393818353219705375662227397541255994058159196069894574513140117137608110125017198804913745711788323320955877691890554828140727328694013923809605144250128642704472135948666587045408627713361275236598387287065380451610174444530723272927040949532226747736590859992786944557126439019371194437303336372574806249429419323850796826310472628587060337773120067975789469239819486277060192085615469334785961631313064060054507970477925699997064168079001933585071424298026509763227538139781134799770191993524696454532641236127211067041942623118442647139810588539766889551029316255782851095133966890914981894548066001395570551391957529288527047345522484245280089592612619584860214752336699386289683004749946163003209183598831453445290195684597203670242783060350966499832382607115087077545173597965872248859830203275049335568571314592936381842334099890433231613573693874536898005358228985238293141425959944688449007704482071799168425375215585275355260705476966318624438093364530365857525085049475019145155076570553920513522197622577162377537948246367231949171969896371183829644939456126171078961725949238209992387633887313635372426749899316071468739178195894590722156422912038944180341392155164558462236496368203414088194381557585792592494788247063812610744610280554934256154863162643363852689176847166607959958374030888287435150648582251437452869280163554654019763312263955841192332301375118625155281876911426624646624482069042326014642088798489982913790137941197949996583063053421283376818603426131179466464461562103335172028165814270781299732357512610976575505035463274730939284957888936426568926180686769158028962092316360057956212861209258905560209333249313567589685643030471662612041523767432366956423623368570716753515995307581694711313634966684075289220938931037816871399506398042775256532030299461651842108666069352255184691317980325944866751759252988514896849661346348088010442840130653944788311187703717314424012778553917121704891559270759173822553839906678827935609121662324349909043318536463602435040395634155703201548164405936875884516956825036859965966612948566752689709788654448196502493281804325685266168707802602674644442378799826714540364441073214320988134951702096776039665452614862483170941982022924712654372928084438087712268047283409977742252488298650538127253058769089779317014417070472204838506138780095467972401634719429564082405442378214389554622686580889553755128096195094069647382029938399602883357470548366737447803979400214317044090560036890333792922812364896716649415368271645721377717100944682223577882363183412565248709426664114784933780761041072885197660749510948673679464882923738966365594098966540697099792678916466579257018121382970631710498230942851519616849848829778136803396816946893394264196044404469830362996749321217089159098155847426981835525472315409627105955523528848720788903355213194072476867082607995781071701392767032737252799430957808167934463192992327091837002351382251242663242320568373631728141430458808340441101108657669685555828576655355466658021083567481399701791982103782813086503525170131501560227396086166939158291117242313482876665003152160273905120797590260153204292195561975344489257920423849253962983648694169581264457067648022952288397325544675258296723264407013317246012827162414163234324593347530590267065914516409528841979039847759821326248458525917304728893769205721985068186867269829591396076382174507432124364287031838385687188748176128598161267341018539709907357544019709183863611069887782759936380857279392707536299741473786160064298360603639382544392137807446923372282912078530400223779095542386588034024767239631701073983425761704707376131441699261684963885310532405976908579319087536810905371554761479900318646697823989961414271811969317498937217534531955397046551590117786289338828051224532897984490575575444767080963315812543484343437809769170265235855734694857948183625607991240462946088191299557732333791694206996503730293345569997098625812749092409536366289808026058711834860937352033821321558393623281192033762673862219068820209333816392514975379038306451890782680141766020256034437605205931549143107703638740495940042265764576079757184356421043381967889014389928865049117342082486647890812281758671433290190113223258959620676859589075336097618379910493429522274163761096910271876265121529623337109295182068295528742991780735342124090620961531102514949892262994274847730350096192835805716936289704163065273472661921719851608686478852906889513499114381073605265282603685941980706519612434502425947775695247800907143925038429859484877057493984742791167471520420203405318693888190174695115667369881805441913113045313462078421366222430275034590246108536832019215103419762172903311731354515675303476217481356818486510327466551346005557188352126834830583598087202286286999292180503113735234278019396352078605370826004357589479511495827902449368696479850948341630975639330984685996520400858927406161933449868579326994462719018644434547914428886873867003619276299369349822593203795818597047026519093466329186840565101582965042723428695212528204288702091716108476123070027250298802045562841534163546696851427425419058276050277253380638501609970683881263819108500925500057508516650156698326102098546667534265350631435010921172750287514890330507661242523117770140191067853121051189541002186891361951786504821671962762977408505556472272586985833461271344926405061193282061121595903506694303547749135958926310373766741584244563913137480310989566882055592060228044370769930942257346397189328483950208603629017224313530157975280211862250280387693313662187960103332003566002674533741785803149812677736405887025809801151790216248716191840198560622080763264987568885028522658416722253272877334325671539053968772803658953365097638560527976534972345595819127344022304071015089021852068575973880015103747782204470629806303993343805333445151870629351426453758686061691357841323073653991142316164809682769117403927773153844971303884899353375485746458285572555807899525719719699784977189529620200301078382351063032115765144081203699140831844497630183262879769316585492759458654325643733066809549124371298349510912542448362059774696187728046551296906290888345045487022989867380506102409431334394600782343714674345465910147175024639667181981935794417956020007323151773774882477182390522226164043677088041992531460874562760278195576248898072480221672521522823969625057615690476911760112722972839952931361476752683043821714050240634493532777512791251029970448445461121802317678112471856510598320116007537609229535829000547599258002356739862904784515206509977706052372784923914265741703909119814860003324908290306932962593006072560047989796334670396356425706563430396114325810337089323390687539984595265149136936903193195458572257346695453596763107332915101313232676856614127066283039622033440996436523727896187912163319162405198395600138995481073206451935248342916782280463934376582197598539662908442094993541641504225195244011092913211615967925868061530320395847860215410848595471398280038584249280290841147591527665222324575560637945656334112261397636580230788694875554276901410452685437424715054786484607010283593099817098788893254918902252935419481518624666005493248823598389165420407108635431100518117986680280757070702012803864305430694288098225825956221657412869522655774721044150229084027731637154952842042883743362542216630482283545049216500159565798598874314158485568607972497303066870850816495435765569237365462757242693867217876538455067755970044459987653744672612723494253163505200925632132565524203893453050758088737273077570729952429996096048718589028596521390499257850590551850046739653506018051417167693209945427654662078113722171449213639164451543410183445469353250254515535736070115649229604606403205183599235205139753299960129982922598056349400317530028811116184427957773272751443294555125554295172483050704369960568423126775672986865323642920735850427123361551783835179643964711188244246544834009926392360739115654487713501879916845532296000901604492253019372800854117543173889889113008927962196887787523463500243006027969040472312412224005795329175567135014999857947483798462358828430469180944786911182815881561413428611930804228476408900887935593686784345438494221691460014598031654602272815833134979577629412027552333154009278648585076296467393453564296287590517449962709071158633371808384640812364394515616246238779910600014837606349890711785190493046397365143228598202010443944929174063511504482594115743370856983356303166546919890825418442029226530000892594815732545312005465571251550773235809279264480617610642104652960306547194546065081715390814665651770076350261493454317128913951914902181080117996301367321335884422254638482420270857620636065815331952284924345970880058756755766366405738766399142585394864374999171026345803329355273917212264019274047444652107220465706039010747506007566477440542662430468588154482423314049835724168514254313010363670356740446493831049774078479109511446944348470798356211868490533310196287891627238987559745975131305763505166290029804847962437520824044739060853099356574270224473485464957535496002429114600592678657580055605846144914498384449903055739543911501104935749239701588030761108020280128848167220665793143848029670771907764899222744329945083503887405073610343801366742195784790881072215182738698197884660300936211526881154850918147159904647787783154825391980214786703852423185724949173463352026693882079526755984861762074771584430866760455158969372037500165869891642271875961935783772342835228447783470774877573915291370471342457082120167439380832726257276033679101885476032232805756212366887955304996387591734464116085120951398428565789072207656716591980835663652963806737109510937332741098135591662077429170038215987860593930647456865812000694700500848049957862916390687187405898613237421320166389527933153784310214886188749645177985996010153812075449306663611540448136238333979368631718725283870636195476445377883497487523616367366078809072237138924239101161097157008434056091740206192856369220681936800087236244374968248684444278361459580244760709407577048027863182375498592172691031351384179325964170146700362210307961201427428623555489753798506546108477790417800813817937716866312886716570862249771857945871359783084107376378433899335113842650111187477680609880309146004515242012057177043327830253022032938540333441329992983755152040812956154238671466004836097760003819743152572980951350833088780375986172945580014306785524124716575468923055948598245750663668416735863901688403493084192963790979478508341055191414005787352946399881292760767240546690837900398811697866362435732963651603020681950686416527453693337443758225368298499280715404293414145273092437961065513668162208115671708118912921199324883231560895588853058343554819659517153047396964125581396282295888846572807676870613034145509954803412712923883498830085232416992242259431492548465007922454956452361476660291964278676461614390109821916478165480679115530309926337165123046643744102199351123961488279529592961916537003198201997816174454804334132977440188853150286472996646133851451409326796347469836508884597280347859897279983012196535808008385908704013233337331272808131878941129731112340829273810821676900231277590728645070829714249805451911805100187819599108549576020513385454113293937415674723332119242670119475950318834186715781494037146519997564234021428997998451449298292669367443311885190710144702925837865599714321802637766718943329049899507970181229939737970406908485619703306863120100457834241965475690083361539324424673411783283058992846501969428001449225916546726576974580525181386576816870798370772046918944999934859069243718539001589992545645358648806206982926751940883237321210197783349883819908018808421555400814618794451129248313542722374342514122098025247791430470203790992863468053453025653957898901317863517754391964327921341310205490745368782854749992746825778711933848709189922634546888433585482946353296812198232710085460393530260816451306731221710390385413240816057841364315180310947375185144514492061154900882267409310935098882945258274392749360310138165039394610089881419348145451782414930513027875021804133735799099751655849151318418203731985730017624133792049481428190633277434433949283894548873638260684397517153451448628072380338031084427035515806857122741238081261758278574211775058278550277560312536770166202193722333333048268329883162304748708308608871144815636046347983496849143525840442241875384156610263834152723678292816670188235098342965674118169952117404331705237311020071743757061584126243203164645769418200568051097468469529006237053114268136079625172949277797497877895010434702804875069742459744830485456624465093335805676633248882420047742627855333637647858813146853141509931342489206433629860006279085984257010234049047832357048461457791700944386039146963948243014252306629138102516247004554938570967486770698790406048277900784169236312927236527041717411485918526890227497509296622913160436184199447888989842908103367265009737469780581724034388007900045720290617084659977663382169529772758896733282636561522192998852086495348694835707626944268223007897843715349594187636092965724457651474829748349811995567566506008599703650256659877318399816626501581273302446816629781361350505578974538076766984201769752984385072180249245697848866766123407133233670482010451754964606221437317424156701838459885266008279735806096887902860123784162624226733208568507650576287685223878846581016552256286108799260092186478290534468189804398924311670040047069755804853742079478042110132501364809281655384884919289851842974137972779050574947046404484979110965575877735823131864264582293155344665485417160332030929827233554451424908956313383360504341896721208608090465536350970112080026914781418248875973979303280424245151265280364478782190533866178829334739673595074975879144181122477750235856085625392036720097854456973679531633056695811493375326417728582018527222470863612359846488781913472085231834607159005524435070053003229150361204866733000673700608699925680106011340220482179571979213181668528139418728325995055111272579461841612803210039111736037164976628540117673763860367460719959622304384527674630389761663206510157246595948175805746970466160608100581129115120575968022926047316340258869713586356331302199012857165583082173701466070564432253949278467706126023462046783868447024839138484047138211576161047265990018980562779157416150804270237278550247688114262685050252130951736382459144536952223321825418208869160367371393438498140815873911003014332081451758614147604876035227575958376197002380046180507359716993700278001642138624105782236452419248466673322535728439387913197212122402062262083453339757292311900888991077863508608460102074537249986678277400498135004017431447810179814421865322829063449046891116040939112818865742839954576433942545969660602095474125600388104655030850113225263035058839312355218300140218835049091513521858262441151904169640132239199784389608269983178752718799899387002819422537499143683506206081640022965078246088122829433951398353556873895488279065052736599589924205504150206083210645713424002784128732745346050483833798572102382399677083785194665450779473567903784317875689264766752430176031260261716027537271666409676645968880453357716816218303680426778357242015121435572121943053506094157872840291058112253616474471466242568787085599918478886346082260359719530776611380409944604477665480307837035168697458516706233749701921813302376519690935760926697092928814475083479433720875654473712856571328624647044743761748848794437782136388408511985068921016000720821498130268814238804246980166194584975678530553877943137142750471548919009732531755000755451638841733611533742348418847491451099037177109913944422028827935119679063775920839865145084522587079287682210625191803532526222191306675157898395785086314431447113917120733836138842449927204951122049865402576292402035710474095304815100872921732666534920702137907562804195788164563365295414086126014644436428227380194879505540962042875419679035898221205885569154090928532388880214541777570805378282666700586126142423694622672705656449940846905614383985430333627426235979405141895890969016431986731114225923947113784119137464590462131893542954750138717858505135256275911195648742352977220979448605840514594158051083701344585054936648346034962221198535109310517677181584489065562759675014500821657161307817693818037482247190282350507020448229544008143961675053860031442930732641980160655065999243026740393374464192763530794677557295923728740422282435391292500231986477554771938650821451124640522808421653872836109449889771001709152066229044627575313856607023639341990085866412931119193772950463593531359323822876116622152637431993955432071740209154971301386499714822024489497643578924891958828379790589545710084720424829485874872913924394670911274821736732342593988960909650740731391894106488180784898565956555169157580496207083427582503704796207542409513327261780847674504752129185922826157739759432307140829782198873267691710079033034093867831860212766676780867678484247723799079965499522375334933013196424273710948216046858763849524253514212578254525535127594407726138543648453488267735464985745520183913824632155593601344688583598912591839418243613877255487184096286329205219106509490515331536397353517354869402222987712142815578913183881310459690419831449031596848859513696061551473155672202094741693198717578600484666399997061292080003860933620653950217191360841434749098572079706642080742628641106680293234476563832361190082920088377618387976105424785881289204128541102782896716895955198136506692030460668934369731319571856038869507451201682725804283060646772047851474678437936535800430919169561056087929265869361847587376163837415871101338687504460925800252011690287246880955863755789384891641939851038044146219065080590238898049487426651846092422124347661414735947530432290898816845744338996057335987072945293170250259841037519721798666889901444457051272929383678979709181340737978085526360039794746348271579525087427200974219430517188930761444465654815698494374570439471327536629403251139378535936200225146445498752701522401182609397000473750895147216095655146086241499120710581868529196931274867671102641784975997648049061840750471268171432665030685736089186453060786354301045373564351570477505265767013617558417573232433156977155608442293906536513844858047219880435081926861672750038340882276294552834363772101886032136086629189744460497002859083257381821562565121675918976830715656539816300813116248678850949735198323839006375035506816451170138790485661674783570682470710264753710742772454336065461028397959360826386564497960115783667639914122663877164474998883937206383642819821004085492683255794620071935001292343393042203784971327892676826622310715773546966896852815361379919040126220016683062408476793747780217182250989589481061565787852070904064696025350083225152444141462900448126332941515264648438579693143564646965256249636179682790939853242302180652638779170326556369958850960195280277435758933928700797097348945182111823219601969786701274832226548824387969924303365431048941768195924121671237585139526284738010313887339834994723190895424288185189677254774164566330748079299716343435728705384892226818390005446016099467658085982830803159477109115295945224083698940140111530041775099202878831153175041238111949328263229498308279419358897235951006790935920066959617587449841581458822111150713755567602126399469137747808042829810823059720146672039694773151440579236283691138552932230479586807674737694723280618408928880199671410154060421347631472790643412833104982861142221518517188193137086535321884112999666829437189437580808144889328771553263999108629035651429310632517661806561788550564667478169320472428298230085551630443876529216224409144488136745021947492770949070407010283075184056271934193241059474213701471574872665680453378741599963955140079414034467548377594627500175533410444440900485687068988074678226762042684252467837031419779997585748703800576886396437481104488640001285404751536764540934905758942989852333836466247166766836331689149427799696315994646790624345767342892878106826519005730888541068114809133675406291937838363322214364363327055117224498014108332257314186423500416848790690950362769177465102780079869577065795271927576378838394783409109643092077438675328549649797681319163216819477622395484966169662329664919497877824565406761637804999849264300181796845031534072432262519409514639572476045121221857513378371586576438983807776474534539310196563496461538948992241661760534129284743281408958000355236582665960473453112955803177255132992319845064509472200303689498372874694636223691330949467427410111930787587533932483873440934559688254703144206381206063568303781611073737124316331984356215766114155965860978790211865601060227269641113706392825914982153138040312522620165028132030438985009510333692709238453352153248192568400046468254866448090981111691746947396935570784362289443941926255884429123904794725478324771684878164010989368204563730700936392561318105261296085300001397268488960252063087912826491153184086597035705157859899756793802286291520440805018221905280039827724814351480553856153818174681210589535918217527223896051995564395576856547776781829516728501806349758064752860457444266633603702365955965629235512226806299541856619079982289387219229816387199480307143250777633184666070860252906538834513576755400969223392267716157016164214699059601482915240826772755472386504952634630137593398915511356099204423600876208744108019875297630066578146038127603096568229775414551532581375635509119300303707913407848683141722769648525037492645098507673539916989345066515122416915540106791010641861346959384200673133859584714213504858782011154647070480408430007295663004499113889863215053255350681593582417852292928155156982005786312921157473228469136968602206771915969657861232669224927479249915924925619637982436626127029107249819614957853656338800227805417488539499036038918079724740865304628308615206242677122129327027201945995292508647486215954782524472457530840224643627284924496245095719646907163359760894615707743528015373542848598746575655751830854733029197713599163049411002501585923698109469940439416750227310280829571550294343157910139387356413579390497824262475149764426136405579419865138348030851218756859822293155731154560853155144881768099689582308226928444255943316452414047113222152722347011178928706040721989086315443354273186367071189297631305584385660209577742792890890493278830076025170528790549242435095923622011158133739986595073354131116424185040063023885092273041116476175503870234964162137600654049588832289448068744472420803502805182676262360181323527179212303463931065188500567528702297621773806354814172426947533472101023335369021148408140674836707187286440695723661850507187041564951417839138751909305363009152200914831538117936497088157011201707783748949018607867113858638056134969321355386348073376330079380416930683588041528802366610273689783792899617033920252745548749193572134503440313050016383012687754076520533223336577788325704180724255424782386592952482774310893117912219637759365139102488653240780927876579997759902568919256011016580903131029774340927353825164718178044629161872663966133539766030756802873592045542647902903580447944870437942297141881341508803272158391055903984133660834984279318800386008739191845875200569974880206862738519849065205965392373277770114713939439073528252679090668048921165743890411079929998273103137303866457334969340462150248357204015967943544153455126901069796996619838770495858041276748689925714798986083341874260146604347590931330987308328666933893145510095166937383191144053197266592227815891986748875256870563908468762635910420962359841317035764706951067264586884679578322678842857314955144983083199667653200664891800918910399618108705878644598293127185324225964675192792006796994575411742609671867110822047829599827775792574925026539987322059987660094021794010358466079338779576649803668468688722800626636641378993668375868736023426959304111525826484081823849055596566968297410568355576392003824877102702583827440609017668896986859635856512664176580684897807477032149682598478722601579265524990663045457426127806184328790676192280850480102304931804050455386421455409942188291135301477443615500374530222186693110524922703056841067316116217764164330224576703406619358310810481303719657533932618746415103650764265587845564657262519090668356378920230863867144253674714972168573738092926361848230424152870883364573879204157364898668452595210848831237165748217248898599254759111265256926729170196080324088441191427471961130800067603298005872919660406323319039217928079349467289188115009968792465219312810592430537908628632869540652526052397912539325899885465657920705649641987243463729526538916294078350950026540224779516378134039369781490560997499256242068024443614411800208569643515544528227453768155076621445326121486719484054049332701546925342632296154923105501112844461476039136438975033840000974492617797247758585906747519691898983270684307806063146942954582353870048739123323292599821286956882697049223082203820529246746159065017043151700485971256134392902222128274488405932015285768305437948318402245178546897800067157047843781126577205020966176760028036031084458103213867265722069040887378026490847045994318271393622281460302206678727105260628606094087569756693521166573028997266516166011493717918162839846913223406666112277101690635380236228864236839446602459284462547127183486822816318805945763018087975266649479400954559176088028959713935455855946788841479937223829082502859896924065396109993463890600579713455583401682073108258659275188800414657976546479432683276509489566437204467520718285356062704235150427692996922196476616324454336481318628367793651877549352326601966026163543798427421780944273955054421244336489266728677531667541858135173301294315947962466614283041281558108735551981314556669723392736097725514230574135313092174166572997525866169883165559330036373143600925756710787526472369744822622711050284016485688401912544737093257584059094165240000254129861289117859791022299044720615958622223258542835515624495704467136992407918684020230001193018161920419109166585325899766718162089712150904695908161801074149341888339374013723260914262936518041002400793048838348323334519139489163157488988918319570257633601700041558265012348265976658272150751240528950254164462157947491867084008069440235932968388214732183983746155149041407730342684157446059057261832951553137839304693734642843239820347964006172911746844429743808229993898076890231247878529108321785617469777835071461089293397689275044386610120880485716388337796254292686679239324534993234173546591250303321887724249593175865811287978056272149210273167403336402833341949153320451737924463989749146063923754185829451437457947881103221617753766452214823565505448593034470728198917940286401536657869778179946580107356842211036008457581665037678187544306649221765616700461170481104894199347010951653293312841998964884980463550798193946846333771838329260334221722802066640535949216825180747184010425889854594255815563878320482182871910382366961957745125362137162719597198765510645633756014046253475084876079380123714483497691887813162814282229829359991015562011941489074193216933858345288066776427809738904424241016496602887595564441764134727842348881396190519063971634160832079808035001288969882000447985824216858541574648556778456078726131743746808301114728252154003107329070192350809547463513174484338047997731439471741238194742585000059857277897328693207864360394832251476239332931760798065303461947566247787965299449723385840988699584564276885659566207236655233495263420191222956419796276605387283405965061795777628599531844008525407514920429618802726084482203350179480879168374036974847436870832678741513514647695366204898465183756059945234624059964359026615912758878799493429635912578064631299006528524138080509266787085638788182349701459216063513874370855209518440593361044255990396346643283881410007455317757505542111273284997478224683629313949983588346334046920067422389504987403358256869454266620826000633877532954641066088143322381047940481210953575287930881153863752297392903373300130790142650309801433126535100258401529292503637414581437020322895084970375527118556958427420260914391677532393647574769151228797928828749037138929436740203923486835382679553906684804078282419365269416171523689671599694861058133791398781221395962709706052780502481560773831381765290405319138292631428449664835649980334894918215872724145885947097267397049254592515477626075286946942283547380609016031351319320899482915573792995578135587077599030756478594384439413436930366507562729799745279329697101713757219301351553849847357570136198474931585642503003819234228635318957037527883696067301131711552739057589444827010226275041011103516856849214067865792257629857479305524055312843082479631527464885412551411074264653636758294069521410241199945452721774364873086838781937971074597049456125408307068060999138433635191402665064142249951793570158366041428902300132636978121973474607670397468725484050802337838742676168959150193800172090098015725823990182172025905442557364375966972988688725483075224598908727083471689961332257644319174966119950740005291595790082051926455117045896954466664877608281228885482443169869142284020412359888328437268433348964563413769766877915699829525437547816707715989263624899921920076155367284188133212011725854106319599164169124386459566846470187033175730850557107938764837081689167811256603114945746391493746360442371868898876739012792150051579118331785297577743418025143311519732173016670460982692164571936067671102215305398903645181804676461168030531029732750148000074958865504529713123723392268777522375280839542942933603413502484874768691811227743658529477651612340158499481005218191987731177022279915497684192910851355586489537077623987282148091484438004903857282832126300486565924178157593541129781060134758030089885214239416892875414633807987309765823391183753314248009660689405694277290064823827252984706357395883768770326590948681326861393987388704525603233056272436122003937527278650131642452342682135494075787151752096858125466949559882468149048068661597577623170079032375269873872148646057103035007539811290634757127783987892065470606957823248695793935312614987261504689799893600710574426836055938786554649650884522405324234540574225339039973624432588181691996530652626976742265116114422463068174450545429200712447670448675411456958967108751439605914008156159101357148157048445487237858308557174300622803178306942614431800378498463369280023841384500030253272415219725535879810731106048982351092412257557944369682130330780008319246089080710574528112772193087323285262362967039609428134662875231214642905630882449282859823217343796549198800495199900362342442322615380745284967127644304401353919685492536693246586914403492920998615939856260923989513158156314793495152170083839314097319434837724592492679671737567286241283647680003594438644615662845777317401731581696230632906671481585428328952235866919202903669386751676547366703438135865305453025715848469605988386356373710847472495594719238845781901396200941875736274440998864314315001437652301765857926134405383329160713757055086301767779040293094736730011563968291426341841914928818322165867987100392957830329809791093280423728163570456589447951243962474659232632178391772001947612654740136743017633256050698858228820859628153194376200287310961073385211229285950790411024428560728652146392976060485106579864019893011689982342531059125947880882947252946933317103530163244668774227749906041339284971316106514606397168397724264541180960038976847250392614124813822113917751366724791756593767271849929501736544973496032485783227590069447808641031771047429837066800555569078504269335693811043830385101355984165511073394595047620749181270039553832127211929654600968611398912152387058453149498900742554967916109197139414153110085577759036350250862426527622650934522932966850825739211298096503727354648823663031483567416278400473360636151554639177174550899725610104572429467366702341373540225668019118922720990759709520444713429967238262294425982705027800813048154654527987015181735227210807605657631962347517996510901563174179390814791402611400988175044719473064085663822999277328903495267200170378840764319289088687778349924086694772522451866792943586767822847867411258679454574378291605298699082156690717766667865451788931612655244877946771544669468632248698108839844223705575702479474738361598583602590940733790919622085186492340430334423953374307223302459967284358654538245847120887964824120696733932948097605056502988222986536668769539673354979389181638639592440295300248096599416748089147878079990434846384471447987769892865605973639485972635693176961880028987086267503626974178876485172200758605875896787653706295948066622389623352479808087356444426665208816580222567961235752905747658338371138050162448941705324606589006908685466664374722759666942705100643890218134633489379210392556852136470062978922033155033931181977683940184258546043212080086315937878568555566268968523948098167944505331371860797339083282492845405645332227279443930954317703045861748035664198123659419475816028976052065784841089832972517364361229077038016777891734843402332762431623151497540735690845895100992294271809896546815360143010973761412260280857327884196953834769572259403602693423110796136694017611116808870435250307693299793270125191827772422904869040069525212096521556580966480685401487725653802165929795370650701070411935433889547168870452670360489423955311615175530080011983033319743723696392522587830050829181635266101088276051058246910356790263298192610356756077775523035520750187137525128918672514838774215418493459137119272297812212414284884569668444039069409040642515501779248860195360013783489811833173117964109921078040951247226692694162887036555442196540871005143662112410601901969665367845920132225019411811394590717092913154513287931542503759144951715748152389725471107008565444452928763724551011055328048888267278819400735575394277640927960391930312980153357824697724386276104995621278838650823267986377393650262067210175886703950070195532083982523412970021195889532613205596939303839481644177549175689618701358087002674173396942158747384219484707735913466137133663147695927633983869576213773356366821420741859399140654017654069204325811071936195837121232710421868581260375822317595686310011291995870686736476978248597165083532904848304162744768404600506592373999804615239104729296095033346155735843949031454466351492188381553400347652140661083979885154659138138265077352012095027915187945822606125946313907972895669786870699859017415155189389036751114237997703355101381105911345349310059912715644246204662891468189494092409763048485552155768608177986197378573547852229687376886870445862916242350244865805064099384374331285740524465859660339763958855749537643507200850205110810334506493023128238614389919820717275978010337146848262513943747806979454342081777053799745154438876806269682016873494987321955468976345840526674056361666965095181668026112160543463580372046339933706781304778050277784623419569904980937021414210009262096696099539519010056636100140613048011063780633300249001738439727878331863313732310398996625700010036051687646887895454064997466257844321640600683827434142872637852831973941851636847396598331929060315113762102251338620073923013345635688967961215933727721831596743859489384604551984589567010546290677181162532794260021005420771299772120050943898932765311938759626052399893950831096994706178243956344206128560857488057204365561409521711620930760614072554423991946336982759120211345263047660938068773702033697311585040062804228958197018857027932486424273483607996717756597347073105870362054032272210435235946159877152035574313665143003946429045102083262478045773379914993500144192123543936134043764040967092828431783335239818502677034264278937304830481656234132642609770756176561692058377439048043606328962897160791182406659169332753085113510355267998972792472639009692044884968721780577906647256561184441636431651854072908340821055584484690971306441647821650979933719505163171569155560163687768885123276884156678208715079418179571309569543620685789768595543880479541992488435524615925528399680184598509202794418538119140087330970176538708534979712489102568665836204349652271317409284384072194815538495369900878624132181520898959214996399653562396963630749882890102660754236757545780448634529318271030629180694307603125703202549954967458160036203725758533350459470334203062770507451892857170315882517843638353518643726658196390179050259176379791592610342554185561640818048270614937341049793308040966482282708992321547751471907999433203207547173509947117059174984509993971282721947697828868680396187157154531487113305221146202738059877244761674285515621069370602444464823105646058939446599366286611191543819701884604558156875956155712406684131107788568962624001209317646681994052887164776316413276280124941243352849364332660151008950292659522791921806833133671380767847216842609772858189590607837106721855227092922596378784019409983915503922155206098968487348952594443604083322214498491227336032671156663553293169540905052742855337345411670347834941585953743471298979554978486525434455278298174213860757431693588936730859174728151325016320946916864437610003519291153122784227992777775105875665446696414054769541044163690137270793156136001191096218848191566036660432615472012277202280711478408043531326323005998712875664012623935942342272222504850778485625405950719661884668291968639039616315779667981552387300219114496858252366724751246076540147198429684534723451218805259230365551210557808855508332149599186731085406927230602487565974483413397602433674779855484799053193504618588575838807749031517721878551598322061373781533692890987809889335588413027149437922601330468632723409724640885908977334670976642419540419899471213794760244622171334559733315002044768674796713434435308648580105759922726328716742139929040484438148553726977314725173435738812811600038147161312019563847921498195424685065793257065725296588579583352731791218013107176997063863057628960765232098601886998166100206281662785210414767802888532090672423015164599193238168579057259714445034495632425140360058222032218869912371207373615468657172550689974142567472818102279159778440057333199278070140712677312849964279400511838522196396167529273830676197976650923885800265187190519638686265439947070417845527435245521926753399590949801409726009788036842531372248685840769952290285486377932761502196470996922912257719491843775509776143347420589693661424788090139034974001024243501454242717986750023448417232276366717422397580389973038375997050974901056913907517203903772375841275077980319744036201153602713498258460102760858261081385236855617303715963204509649726954317316096337564914953148532647206326779452956160640034488752567727130639002222245353192559572505801736460826838613682044704340656834896615813336893431205007832728687717151723274553638873685846948990639200515346047804439691555046901447581505491329078652003851794776533864669256033626683353312836070029715556899358549142025880260258812823503022747428008164768210024891070752059678124762639123652746973594853753339513856238006688057596397957569534145870774498047226841656838811937796879105512142536748203744604809649177956685953242638994224680249720024721456844935098534730070547583706966690182794813175376074807709121732126757139274783357611863457246140534883557542711945911669845116396273125153318658054776244623470746255078662744975080592621019147102929087993561187328557496959249137020416711964447939587353822960567521765170515992873762644671264267830770256227318425448448085460053427123451057581733397926576629226040802149953521448109927548017501163458160587645774630494132115699689028475920308999162852525805587731603849764617676190106446354069833196861147392608935826967246757339417935247810385150521090209810624766519916735294607827354815318435418146766178823439555660611151952931741385375701158587087648679284900814480591454874307179259214269851053489841206209947975575070722937243150495831897326415804844110959184369330503024587775219953301354739676349445426071725140399414612571996220795161405388215154337185162433555399807281208213587596564733042914767087710760348565916334358063826285924647220581549819419116076291282915414673577842209246689175790142030184490691557254511144000717221437846712061897705363186419384761340910018359097161907581430674871618312626711050716702118408110467624553102877933489142982442235718864166985426085553604819953981806094324786123884314105794599487342611083347897420733850958720718060327882347780190519023880524119503701351341628289377666531696716312535760864433236698168526844667139290165878083264975485504909133038561848559938558543462229706439838849035329553691288329105627740658115428970198792829348837976324527439877939462011083534007774738731182778268900028197059970708875434010845549459731161057736409300423890377314368050492830601627777868044813289939155772469272619584276659694728424125716886562438444346253659338232861094053966460092257883024209150407578890023944382331294690862612838762258452353510445734781491823119979365215831345145213994919684620297438693902279695917669276919045393696426006997826556445567596010710633463794056750808026203585284526493413483565604989332982305359187380261673195684171237363568590287007505916014954789679726684426053027565837881085257236970423432290164191398898231179136380918649241907202872729455970937016888889895456140700396178315983840325019491838476842380936548143359597100439413464979949516878890561919621393940448049277215774004341940828720007034676979713347522146661295159030730323419728959597640335433952958589760872880147069970787604197262638381745763998669450476368228970559729873916931250639766065231456319024637266925478625633442383028277193448557184133243247974962001484730220463211130226570057476370041427287370139217273272164021416800750007231123746722131002892338706596905184502647490538013057920295802617736016111984901324858471922672577110965047219427606559657499011824717950982245943035602120429542564505265176896909056747475409485915032213621880396420785371364178848450766448127443337424086417528354000345241605290633482373286001262774194290769266527044708924352215449559961376071272021451915520272116309645932228410725617278727560547046805925954962532234926845177940261273538008859946503472049289350333533031974981674174865921186323257340327192311042189459886422577966778034336703387482532449859034395011614807177353676627820698121651942808674149674407832647679271915555021980569589127156202620869043093450745286593152197128993048291399305105745324134625942577743321240895078133332987130654443160890924283498962722743330621423866675782914811101486286460489569135661538182963128207442541482105591534236630900352352522030302976918736703907606090562479396003636857597794603609805038651459539654364088905961870385135798118026971311308412374405192661263648402156956694171665860760358829249704434061551832298693893972951312392026728135248564646485622825907471491937741239568924805090447386075830669518074264109594710498452191013105167942039842064051015216910307119764570214788638154533439499958456843947373286897512505379362301632484557248930964426630658482040248587419982573533559681543408743866138435004395162835571258193796136615359825632839929339133249761271956125921569252084318303780960007841041636988038107606598737374749871660257836489818003796822575734616840567606391536727153542893267412779946420109578747927645050105744299486184675635456053973894606109089858366054598548348110903421760903692197518304949927755940273397860107714176057286838360726972759709446094920185990481367157731576916159354249505808907244361298146675482411661713968844815157469091507402958470469130452204073651505787540701961766886207122938723325320604354383099931151105969887571134407795764875462259182981098350043211330240128421371006823920774406593696578927802265828063373771867837651936836437801748634917653815638353868856087426025534668424628923823698980306990628243130181347502014838123834116584792531905907438381887882102442697687584817540511933917194528527219608194555018859636352882086155030503449466164836953354152755941277828865524491252843083642515135182072367021125315680402428202530336484861232932709993109678795427032417941799520339420221968629341365396436023637694496903067617053558022854547616097548523132292458452328572970309134919094288290490012250246226492435522663919321323235005131668316991688068799103640426746159210300221912402101532694089348352115359698344725455493317534145643949049936533094115867326153659591484858356927824850506041155237272532672879586424726703246388888143193239594896122059182926271750287755889740135795660624146033033242839412695190472652926679568755592100723135528133031273498246821522569057338594487769634821542085470131136275083229123975749352269785489932582006459965637957669507337225967687964115837729520517784038798957721388711726738013671285621826026114457658478495491309536234249033375222499367566972213616050812785359743185594726901785753200844304072323688523851729665550864077646880747887405196817675590153614280441762451965816303310031000708403608422806194416830397619044665815354498438693175227416510701511617846963806124212579577563073081096664891593666159413808261931282488659444608052547355140714032994192446512754242893875049745995506096616788060712310396219286825554263862542947539391701301595002280083218148299264415380713589441439276488201993962221116720577330748695804291309708491658098383655756316340125296221255794078126630611157303675626100671518940420617318985721258995786157585811538693061622762852831112219550392038317341108854833549310216889834358474016418157264868079673586613706120518512816060975250846502987203275941569956872780115796266613449898618132183139061110220397437131549150717208317428499354820616223284935796672751350503203124518191292357330411380703576201294279730693798860809461997183632215197792298271150164837412806158615509080058048302908643438883233273543083581751174420081826189270724736459965399018368390246481538793578371994577514443870027588559671834693565402752792979566562866506250992786065692966788910820852972387760353221678163633962554726638013640715881924212359766930029479859951992361381501922160173057792434279126394934465032790666660649662184835469157263398640997692106847650247899740196545488140358229622027851449295452682009199632576340411676174324341520679920409677106210021677448991610593095204054334463229442090702706912843659367688993149398737654763365200982081822035504910745219531890028332199790417215526855391764726706066713383713675308860371747704373436263851272363745162033867519056311706821209511708563148898741575694279878560779910251086364651964311153935159603764306749242938820662523614265188968641531832737312120892805514543341124222421029252173448119373939402030567699494836500964863409425437335115863092163168055978444163162573067799437994454277492937838352737200837561276863504892664293949709545066087639265468878806172611634335078352464751041374709794910988932074114303898807521511072745734043057116307652953511177908074933760507240342102016318734793941188141055023126275720668915385596011732173647419804345618032755795273130625417688774393742104080480354222739528583645833871450931095472213508651554988251656592702927296459224410359722304601492707300119318465575764055655991529154475988430340541316979648695603467635994962272529261572250433750518140979685183872211245607833154749539652532876559992586741599094489281604004177817532322961497802410259948274376470370654616986547533095454596112376558648046965718028593209513792014327869449112404808461500989599400643593439023327218832852074232352831822204505712163233266455335532492435960655334513166109666976973839165157239737585973103453592218858077490451166087209438214025415260657563808564318535557047892242278079260644878005983544115025389677097231399528263627167192410769057314214583519899195575836543246096732087052110334363597048575759134171824624046740619314577818997648060739635133105086172020002487682566054880067725340542700290003914576384548359519290621209048988440186217190933340767978703864736340473729495301143978706785430708512162640817667146229196208756858163839178502276557294960567483913978293259283089887540357169035756708996723676145793743477441749544989972997257876133028830743670441744166701529096316719525129991794819824792617879201117830881774885666131790978590858151473706938582085512366022347173889144252368648822286751046854473062643670815303126612892174026980185460481102249181888774335186552869805178770621910647711207905124126312963209144006118989549444519581410673909946545603776089292205765836554387766475840502644139010919496655720678889467402518554708918369165522772767158438993188754992658214460077238436116410972735786035368806741676748312034576191852357509783128297685453335790390406298516677975485314088569534173928301910822965401166896900340758719672595618361796488295140517050516207857099250882118795293192056258955908057960617377674442642123012677258636570802763411310783869133023222553031385862499633178141116543957891642843530883416963637776525433719093615235669543415443751614775863411298538309074443580711826553877008403439523739706790986541843155579550757001059434937393752252615596091738135446339499649824309628604018433447079359709158809554548890609517985426170430471217462497948796168243767311407492050664741259739958253570468550213260578205613929870158700373171766483038934030242566468502418731450178586168671211086074450158593903668042750034980907083849005147772639549732428799060391372420429019088920919316992890041938541692592510962498023733771225244266702454130439252056337756849704672942011216339819974473589375773291892891368862703723011591908530737583667486122257237750051017124220705613167646496650344446299052903486162461952486422638430294583232469351100734222979049061558597826681593013897553704170683055709428402251680471583469060404708443134892672122143539334102194931351652149048844659132162546013261704071563776785287981631788777876841439048276257178021176553396423295887328600611930453154235596545984601383013508068196043105153396887229421462508539994652026005664152049216677034114606635066045729863600376221223649717851791954168051322315784163409391902575636505737998722173745529898108047361293898085225302142551973927055634157498348901979859990340626572210449758870832928708053473950280284993288463563194852517813813706496444171339628854180822002758649583600132526367484522966970545001547580351284616431829642437904766865511350130280326021113393312736934239869707207535116475134048272442939584937213904998715951478931327734265924566562423663663923054331989212028929454038895633842015145018876166236803715189652767976017779075420543238044414482229450674682229158761537389051523792279014059415859779048294855883248132050568732018213749009652142415578884542489142630688645529199171255652844290550591692175335378389779908428028867308518218220802937591645940561443042800617543436039698121117421264449600213065182059060900316900060773284399808796586705331801388302469356139016538877331185469353757296312328648465229578858089908393569846916106668100843847731857106261567213731121825421609843653952643591589958238167061368993416497188129967305099166450429420540488366152982751516202313982677738699398266304763078815088013157061986635311574886759181459967387070476359403852053291035481227615803669831059713439601720394171559098131295754453973866646382553526606609946672331338356949048972996233806911425068478884055044561259755539822651414322375328927244602638816856666893254041302396727747765023631794311247026232510353402230087256664161271330513497630340426807826072873149353855428222095229692297797068333430561812927465224730817036210468932315930532135407038039113839236471078049220141939259410199678485138604878565252219011552574642170315240608984311876503632269385477739290035916044280006319842183582183490116906442488398757348923663820416967109832883496794968254050433757493168193836330251500113680761404898354875059901244755149070589377805452727404417138020471558530319086764067094519851324699206625980373942937862411020514783816385542965590752670062885293913206096905953765273820916570418986461153355657979061506590805990926777207084456879658732901621072271029437010048254563053904573778198012861336678704534103099920053704036540391074723666068819196293379400995321626654972800649178316684744177822169956242491588980125975977137721337200351228749039526042359352878475703357220088442516289954028732943897798572864151569064320980679832072289635968615647664126086625271156584276407178311883862335213782278130948959067270164408824262772638109597520061544740485185666070737042631127237484609053274852807720229754907452225441407421342568885305776113834085528585266500104860849541426922248370709906426528811334432407982938834272068081315756948190329796042142834248910372680541162891559246640974722959343970584869765823733111113464715174393987803712871206205701471641768214584556993517381781003109877843547881760369179079227940088607241364411893353704239345238636809270849506718721877220841569041052339515117114726397952201008899318250379916356973408663697267700665452888698686835092944539243465795548553163509089697434754886108985087277699000796190631151999768265676373059982685084634561383172534197019376979511537437831504086154504330310525927761498437657676420895798019568662034504314851447958661682153825098178049867000598590633735591304672016023089369247613408244653293091849386443461607444648278588261457880146468210282081918832759378528385648762946327804251118545616248191363004042831750300508886327507310238568673895324003117813326643966405123617274944134359904224350045757049065296018965222861110665430774207836581062030469284491893366807744318023692711190644740013565259166307950125454042407389728695397955315780421683900119905995471645733927373295926548034775430730304539739482851942807621326454988302288409271144612243965790922626402843172350007058560132961442881730206702277513162093041974259925285591776449604587044692649966892753038476862288039990947564626712881788377617691651793134826074115347503725859869568593663855437948690648381253140979334797396590672295547214878821742345387795262503713857176408942036800252060948329495825174070968069290455020408685282719953514881639792119275825745516096228944543561591206434546519406125853978811374049545397467293242911223235178883244360160570456213415380849411135103096826838330084192655097663298585577370816688478504706027227249910045057474888804181236498110293229204366698235320596804394576556791419257114229811171467108277387220888857245202039672971990357600184016681057528141330507591308875768414680322741186820418432380884881571290479408294875223707316875161698610411222825131402350943138515872262401818227221037029549521936147199112489512082974016584366171791861884928394026536955853654216807525655828102254082693974406434545335023639997349177482423148323804166988446026439984108936444670215529283089185436934934328465087324078708836491238105407654838102063514632653819677713598710621864847139412260963876956875476877146518828124247055919057022244341622618606928280008750338840276239627524497496790472785204015276561301636846568026790766870833114345544488442424029989135145693082286731276237656957767361387444649151863760189831602387578139397474467230651900561760502767438033667981329335234923364148632677374607020559928303615496233588041809474704710678806165844541607160963882590866959373258102089541949600098175785456033080189398130587365739828958483709912928573780434438217251636560003546667567584935644626131217045257796225652192897710769739287709754603886015868380820967808544362525018424357208139514525047629940666765137688460622476014127041049805961258188529850985817329453397626578313921952462657903373461138813466148133881775314323073266039010542388699893560513072834305067510076461802895601932333527922995333586763703179870849536331289407986040333225952634018768684918328710093814566598457145561139745183031556541649060485677932750445571833751809852358947346360822944534994879843657910933640989085215580300523657427486075106264324140659746091981096131294852003752592139917171223581039827731502479679424448813047206987912002166957377592229840273555683612266016527616655851235814607779477360055800760837214607935260636110496445641017450525473687174891340620989798118903298563396985841490436131759104325750108783235244041910671072177991611243310157024420898656410880150992868107659451310174635118881595042167036013157613341081502965582930244446600376533234199519244237781071642507333343000869673971764219128526753468888960498363004616837255133477727530885914246343163133177759919121959049791285711171349857032228159403248143828098344514656884594477351973610920276764171139262305462929934841469600335562527641069930034307511653121556639154634226672317107572793875359640403228149590484940256431999968344782689763289924256594541457020396346702038581221041069389884125368095806386211063130944865819949039899316215976721943548443066924030974345857500808590254254544872510430504859427843286437760707482807869909578017740810106079806724008106888523508167938980489465791202947094646478415718799442828785008290908056513756931829506636710535179431374810493069957047042516606666590245179436153885927846569668549141524051641176747022855467024946397890337132061607865304640255477178094253349750551488063205156398623404558847964476901467587560569877548110249167216484275048420508773434627178722988220452417450549902115443994025982236716218891918094725869524608529732329557525474177570785157170647330467597577644315086083832996160703310829788948712152916305884457099298862975290824117614527734918719999790457664079989191076576360756421361707712455216788331104234561842914629445193808159407903363477960238502906067647283524464252676720019761443402255741423313299666031180024666007429829218700342575758229883535928259533061513826121483613809095658908660723859953369616477743231570607807021743071603290772018736061824896179875384036447884191569711385242946318089105081052332879632208572383964599512675576110274437279059636418704694093056503541794299948389116116312245954101153966383896050507864877907460894454957812712110558640589354728596819210729315023157511830983022971885520570871900491537409243700183877932592306723819450643702719999784122380241014453324238491810009214722001610563780294454711826995724855405645174709069682026659979341104646292375701098221646431116739017695608569732134300871574654079465684311659321241726833821521532337025463581503227948662453236890245627201567780499324801297882920464355004418513423217186638280741912397116515322220462387502788649834468654338013772980267195588628143349915540042404152030884708565528796950817497899594990148717737314155410964703656910607191395967755301210384034312829492879916535760135574314928280469694427192163983597184887590489988161802598461139072425046967291327517988815238806863483758876956831425081089723890752158910819174404201563047513197881520232075393570251154097419617544799107719701978249292887278393411842832441407387673060887061164391382602877816451618144073137415577476295952410651093528874217935220626610917186486594188551548363106223391322489036126749108517970939546772027849598374608620450879633500992417341666099812976443372362520673069775685133691967260171970687334427707383445454989488247328743952644259823946580904504913235655441936173963178519781638952415167718230390297277927449092369326563838966217318080336518632608019355699097723802458978253619904826183020508410200733540686007407654390828005196767778172548967209523030196902747644173055244988511331577898720784370104873498029120889947699543963138743079118876918000380599654057108009610511828710155452567031446445624097645832222699800390763098106291287883251163826504953648146670283175970333854554217007055598181124817125640385111716777014970858907846766686938906620932623642979646299383288775942458754311994773565906713292470936767638675739815755489180207562285454685642003110669925164365536921438751856835211895452251622428348485126862687488165731021507057573424533018124131186172294135496160248691924888925492286738807383169643625628952176359979147531272113527972480601065690411522747179813569370861936470888315110793563724657072345880863553874671632424455022225077388093214569697603369416811484653278120928875178994532809347950085647755264359956665474811621755210135272491255733324522685000925044520564669823975299933807459293918661460703541060983871764652829956539273449264835314736633990717223508171047805016662633739977931161080528610318340724154253390221694881569885284347146332323710382926088965357428749064260291688541464974998639963510722539300678185735832996201301955648227400029806532795750164549312809407009373093802907259957381359292024991384967372211087227989959189388066404592375002680074754034537647750032641098789665392581747143086681058172300028700418010393758015264497189028398117251297477595957628871566107080450655838798329333665369411802232751003474615894267721576555869446623509199784087486216334756288556667167023579754835020518121520081549171524303024826816299825883425099239883553020514878978217387169277393714505859613424669482248662724363503535440904980320506648584473346059802264543629004442475563228736748674418282113473557491180787179151982721449131508698312963873452186139743726472306933602783417669196089665889398690544258649530245855757045183711280146992549950687802958911488660838789863310908848740468821252198528576999670286233548240760185529438861192414601175528996280204512688269769306965431279053846121651061371630549318740030590707238247564277942374836690789867023650646042209581459029325327707152124008737336954026091265138256619458154649045247622035605406571075274970221295615969105797129246818287952166742616260561580716159193737320074187579714725557820149981214609526092819790993413418947286903975467865424402824895964378725338787094550682201965527822807524653468730760998543536521699351094787389746857066452843600918288382957075942988078366756787554928011966255115863563503120013475896011154002608862117809990922287301578110607782364485482898200923098628460632144075094733489259876060220891513916370384539542679009508545701203877633389834241166396638786991886929156198476959112673284947388494464618037523021070400179398259043408270566773203758766140993010331308543099946990902190332684965639512689059694389734577254619740073633327978955838920587318441846670980892108572433356365277784125528089165695759241044769814691480942560583796349849315298745934816621878092481648657146025307041976275822349734829104680099156604228404969137670644001900039327032675804194459811217767560819224393702984608894513457811446728080401708490592784824989680777784271215555564212582225382400333617858192458845491405780839266927558480522207490704292338825564811319716284843311921140680665373658329043405302646468671058324438048003857237928802369584402044149007456033313179625318869187387756689784982678021235890386525660528506165583491486949584878300239159246206440179056700489144642017028567016784109301438970307457544891032900519043128693260376502117185087493615424444899535729188967460228461174333867788637833032512860758586762156021806494150871626221030284158616790659981402059485725873049436679123447080350965453895268926662655937396357835700392578294999687275992625095524991710610038244282773011308382981281335629681899568300572223481890738500373675335206929546989380475946788667464013910433686541755326115962741891334436613358397881441838600051577443948679628480384497416887850157667544302190953323653651058573150531552855311180168235542973260404790680943871768290557814917511489999297289327566840039047255203989502370982986446743217658710651112048185175394777292487058431968478846463810417142535063344960891279036490910234039753588914201058084130216641636895170552508251872996247850478952153761695934154351644611181723637406953372788958543762111889350539576232961836205286731478935613075033724433634449671665841137696007766658458366275495440409649642989347181783645507073846406921283357963355894809526762052206375047071203290710242096532677188141133978424394718364035950576751820834334884686002004753124346464085273205235697304111223620444589284604157894043012014994836786731823343101723558278678292317786832938678966477133837394855387699736873387591460320536083657824921640048966047990177439940526338749294856424709438873305283034051165575039169023211145654338620490052094790375380867823241440397303978025956851442053510740826816721275054231383633597171385052151375121816699722601599495964444621756604229011943608730642772537380102862426323560287121431164461348459240569049992212212549454597530494938871768838890694218439698865053632092790160532751252813428656217828655755975873867093111145700315755963310993886837025884937277150140395179595343502959587239815295876617580995961028328815310433309566115043248727554939586479822377302600701114941503403613454176303685522084785895135573840324057884046000121231901258857788894400689684892836623635717648429171672049757815731651244375934250823366709667937391816305157563537271613509320123548630964859540460604453520302809916855308962972875125619804717015938174875647367775233948177944745798809706031878154820804300578667720868102506061674122637901406585059338490977186078829591729058857312580867465382168461199382460175136651645072769411564780877155337400878938651802535626719328898642632194483643682974148951475221584911773083565451786005978441269147641703420324630256698365222165680080717536760011231284052071244060030147202941582151909383875787284423477585052853594068030356108448526095042935724567303055744562602711574473296104792772890666739087327633436396603111652429795763888863427043476579380636202570254718874821010212338146289028410335391088326155465823665173413342313670699212772458222511171036878316205789705587795740268821683601344594866977687649357803924550719836341212606070523862837524180340944176859864339936551400793621379378411099135236231599133227546486985808554481754660020140721392572402299125645030639241842702237695243083960582785057638181633092780397201250634908573880331492582130540008625291160573970617099947866267270343887022329879692325168565480058803129125652597255924306038189571508459048000984779684075001329755008635257495868562935711927814210358641532478736290759463988045075522961535903748176751164170307029407240979695070881534081539708051761130255877403798131925991225350585704370656169905889359676569261721865513440142193749039680183914715081459992702774034403965864852171840274442683538673065965862188239181531286546119545643108663995792156320010173712137269133302351331363923378363654871377166636360062206425852650250558733218132309140253696111965441108968858817286982465772201292840504842675220252957364988209149129291693040691472545131070583430836542234654860443968688179944626712594412066126739667791640674647228273516846229526004581859512887346594881671057127633326688766497287824519317433816326508447586035002113066840735243475594817361065110019334631297578262674462864638187733373854212940508661866005697294846132705635700833263297743645394479870905007745745195744534590446847911560745604164719598999686294687390916487394091667090859416863454139716361855498489862164945652529875695692220748638887946322334867791945050590603091735194155502193793448876877531641783728703366677206130247227864924553565543280206524057409481290561216198177358129195175208027520299335777866916286555797641820805792085210117896772240502937809064407495753674681470743080838574095548740284582126771579272903144271087743528269494777014636030122930074801363793659931807960108204807336861991185449387497343943324864713819057626222825478046765057584565638757392479849356929044671110677010968363159202273993350808107763409395846489336866203118601115371076700328519027596007448080423457018519000870854719005843615291270652463974111903924641825927253998013597445232292609292916856444011824976617208720717548127731966262312501768167329565152169283174556261426240747563635043023527703200328093264411456520333465300112315724267292849126083119975268479266655502247957939346840464880802606142892310145977867097426978727818639335380876099493572591176293795340867545469273379036089775987801760301145044863278048813802692000230304633657156924306126314336484156086850300163667884922799648587965911493450412104554569559661112580466318622456042538781778455862512268912081423323456895184778589383300061429138095292829258589057152227937226833433177073282986063027864933413449178837917226446645826728155284039155122986997412023803099648797188624174898824635085207458425562244440127536470709131723208278406126672200036029505747676129268013561099114654137314408328091518070415684803270664105776777550290568515174226946180933104426298881621711895909225906212859422415669771807945085516985875574970771696737885852172491462785163042894594285689627462309376114781485984279628530090060098092479107121376866625821500948465341971202484192073566418668745569251558179754970504225100988249140185427138225279386375235500250594266886584738552568732144854211674409922736012674196670441593423314216081173902898166267190156612500782443240742294201988891912942913247670504445910552745166873882039656660912108368044675884950354970590980081896951409698961222614350388988840311845360745354840926998565244744269271875180138966646435399201822328173147252285768252403606622011738626558033001015426137274455110467065735687887164343288490532980308231234190375297177665916920354851041863167761737865036462733500118868785247172387921415454921652889077461294533182807380576719146115067336930089143538421405248052102452741674828836750342292829797542616498581967129654586362507889329117173338997585492156515399261959682088574063944500146786498173978879860752268103193643744050276202136762788770384444567556463805468701846133195664300332963614582389120704052788755740664401727267243478440066770646511978264143589970963905936225555777988807775225541423192239927903933080850507772555040293274791164434654722295275818086585685763326425674373438196661760276140981695887538954946564181916019656762262346442382243964340079224517908815096985102379521143900055164318641976054575384723216136975855669710323538733408119561325419633675138837445271120587417544630946140154775342936007983904104701734100505198646817695413722452947898472481972805774375277499535055159451365984112773832082216127461029232191174597327151514610069665610874993114448135632093892053603052514035958675625692725094561070059087857848636895682670419692461028720534969629620386442700172918111321760478589984537026964674993213871011374439982699213383437446572445160714140711400714330198223081158701419519028315830905161897294240771388768946783220617463926780868970245384944148568818213393951024572093262102645243800507291417935705175169438630071856496624866657623671602978482994252048722788395446419109689165700005064733322613575750262634247358649562272672024155862426791470880376394121685711172532077532991989287330211823335633391335096443267573107585979332857851587966047130253452358478563368983312675510212864403421202371689146277400523333738903646768515208178246906446235089822527297505123750286738616613208037029142961293789360433106018781542974760059725851672861959552114986438179407325533907050930224379008150701268233660895450759174503305869069116483797510213753602063626420008452926755480015390526049432655605573994516455530775597926825539501281573043537447828631059510411845630812555792295159012716407042540535404074280999456588012310631467646269938711183424734025749533756655705721999893077635176174540927335700650099793469237500310079871420257636984418493627167281136383277948478114574574371222668353720496763523805776073201773353752206492495112448963368104401721241883274084405991430802508025644268461397988185970538111986852270566707965199526789000224188283022489172866318612862596778187120571336437397644046411962137402596838226065836296652508058285289533893889419582086459577373578126167787061724404280790602388751320412090011156094434083175533851637931561173269477296828051767289211645432565450722820203399038356867298264606322442999498691795877799116326616693213450741494471816992310986203230807823327828276016710467984100300979344712815925907976478013426971179409196889595008000690904145989868384955810230430010241364174259739034511853454235700979537263436926702696123222886287618573678742519459488877368042530738026856844695950041447408301614207805540087747347602408212406785576350144809475557109256449266304921650986351703247172352311766956724285252589466862605399861184762574024075417834439436905280098039807700478867501218412346728480192420978361765964664293903138084652690574896936179481996990907571551819211131939364066186250832417228259818625869804899458303260685346900189674909921718205960516156016910066460589218324040282122544897811672765377113271554528514349246113987829804043231969544157179279725574770847960242163554330601775870730284779665345563647751332720280169685135282828478788604041802347244964916155739600384714503060052788145611578346276364298758847454683558024164177295592449151642367381149325172094990747060918187546791956916381788022012752405639382067035397434534807876081811911267465113357483425021669712911272523608150927101539010993892358839591968725497663305179970447428808324641546366662759186046816637055976379923957027432827791054424900735196111219467894984975139302061603841178960963232990556112978361038493934886754803755849358750331096934656277049466022427556026070561183720012533345356315890033710604015310555953841626983585191155916121685735668125005448391362927022711353323815603746042994048632971717453524392389447036638560002390056130709872012538465314510919289062872916254537649793641934887094210239573628063879655598857962705051221625463501197047435996147524525369123926287861681632782885817751704513632577258038284835784743426297722047428534608546000482113385214925511963668333932324837633258156279071343184632319907391564786009330776522439608006202801442388045518941047271363321267898783525319859534777836242517272623809852601044917183200159678175088238003184882042793649029130253962174021320075685257256513154682880281524713349960311190567785271084244692279423327904876171488846193694098677349967730762013137435396994418752785810847660175203611928378935820190898538809743593394896628758376332598202973345792544449994342292467764143510618524128756047346768083097403467374164984558788605071261185480361691929128332215482553216374458970555456011199204574586358216713717220407976244732872717127730259661429066496668434262162994591651890555673642528403748573288555366018431798896862130680281577897329492564999227620003169409403353739917841326705807052415093673041880905944789200582038787388829330396599292154854967906567910317323774582648215822327103522899999488804655253973271789458502689856130442438547498060020088009052838758431801194703033160081222550151712928579000659647804900921130061861522998968760478337974677061576772431747419076776900392935116413134128048165400260889073421415770091819356214672240581789352207733084453986578951927136249684962351595449788157252972216262832448293242268186127575452665451360850453375254687481301846132252033493039100711164023865830682728945260691389846856631697041080542193547451570039213183419978466963770672824279611717249511187213550024728909606623589638590678413490172739355546099866651744051564494165494420786332988239772862452910347982078168622246781309108926270030572495674884797362118125399304346991908845890426748650706261511697586041600551859233283225981950452675863787544700621126207632084286224617340860082856301584767784273905022552695109673550304544922395206903301107502197412540470930109719371380627643324331508789304517638266844234372537915028934841902199140164356299462134366366948530884380830857718238926972200741270941381913461375508388704982126508433226847996024261306074386814569170925640164599029398220078574239595538182303561456709210897653675169765200071748033517971264743472529417460870198116240898717639622087196024213519449494837817817140890582514631045497458381504417496964842583312532688737755616126189288295465803489478781720503845009397942235480668609852827989688935802580857100477685753083064222464488522525910531284858148376660375593357128843687561167465446835167808058304508019167445104873701196395537764989570981004050102780486681099254992154386783553093561295676769582455022220091761450573900127745126961763749621724290441378111726092209150759398604805308447562353752605112933414237698136633567655197556301295702235922590650864043647515456039862854069937434436944579858679073855670117019993456392373791969436771814232661750405543397001077986602086761026638329819325764103253892554831944124507913391151724011041556923113920452738001875062899021813680761958841078715545112130601031314288180853353320457101733098726398567960044601491715293127690274334935982464759709497580831822756602588950017070193553979458236446384013863798425020801517006407028181611153980311846980692517136556391040151140631025616787816617387173530260203407148152035620503110543877676495134245771967154631275118515472990895640936334612634857456437154514985583705059990096906940370958471493262098993095994685626259475384030276038724988417418980135806560849485589072794406998063545020772851230099861654543848778675416786925594332022729248907246856885107756232411440624153988693799553845752013331021795527498315282710276532657720294502727132974717087376812602595392196434443628245360562622377851385041169892993922574742248189573809600595609022264000246302320075971161979644573603856066230311640772225078609961571794360666396014472481829749039101306039124613533792924134266569357937440213142589114652173570449987833944372409203745680063257558473463778928502049378731976291460028338890783122309616854098968162083631953732308031519361281119118711303203952288919970511506355828199826361619331114477955236098285690556167881177966277816095321971128227364717439454526603542169434044427425133634054114433462650032797364251282742932282252051442037115960954398285347437889528197531374146582094869136701211214577616070929515349012037417465055587047824710772278393022777549802064727537884845246567573367801261182327385083045514092502335547313761396917273872609842060216154547704519113236696203314042082057630708203047837713946451984114665716540115436689310029580416222056131750169963896664608910279080222813483222880193268150954893586406992753296049876438594166168166609695181274677743443608775151607122950370836677575979594420969440684364754561749686711888812797427458547084339017891531019274286674899539357462012206239822221006096287171261238782898903846185511822788436903987099115140040480922316079963530003610429753699480166631514460671599402280269051872834356720372965249776572259697779704237728159391122977322864491124709074361050630423231538594188654704548126733028265307249637613795789376868881585043902568152218313900789375618984784124120424612493092091517647859772612252039763099148194995277200547984955289338417689806481605647648660743821961943783462769049537896935102879629034612656417130906222364442186728633952460672201786266820513019732122388624376658587843826085793290786655503339242186566799349954339817477995430298773250277448356377482860529836813786666332355533191441944623567013731732845264352256542743079573595281562358776826752700974052231793376946728234538542667065329373177441377772100504876075031614890913919660489335319512118825536512528818932830648085324852032293467752074098617035427930026998797555331151990562699313332582832727944518187680704840077648417653571155056383618400588670632216931242588037520022017601735751172674042371499162665575676834799538646002501640069500915079840906514673039357281574781754629906991678935454723255260104542595279324617286980804597322533284630023150007964644981275091983545175010216994411531347912822940731899778446150018303814283568443768248492815398870912012728361909323177989044701515883226388508764688162111393019553628555061701538015117463569748973338657525007790954576496108063924991072082132958752044727580796539847277479076201142250947653958755398472574760072553967320919519425945867191042987506672730905310712127763994127367191718456608286461001760773891781788601570833063848660484421993552724824619231468971899608109236491530111611870033436973903862812131671578919377685645095779346494041970820128367667527840713094390512491357563947061464139012441250870673602663074766140513987405069719804253586843165431446329749204977184159668239731315176278494609622887817279158324134701846786809290187794806407000237722606807487464519268763244637339895608959111523804694330648703728003986657526292383057207982589660710866121287503390394395925352504224165491820264187310429109098462013197256766005048899748419065530877685324221694320226140977679373167340047517127098635706196060315222060923398049726800522346563764439476944584412811658635177224286765921612754528339518608930566877873164302194038650050352181745876649396219515098118349030657196437583036536354247022201735092937875085765907096318073116851887338239932339881548437562105920911422938821882230798624292969319773134294965870717651731060543131496375330307043999610384355771023614840736217024788114816517682510687092230289833592231288240517500181082175649062474413311190187666852175446266303622106170605648588309648277027578970708720338039097221081599127692288689221179472320299726179005617686411458384474421461386360253886746258113461418720133751913400879830960889072412248276617161207226448185422116588462309788255347013083176909837956055737186715297589557752588868771180345922574376258881119313324666034615476035698749785651616864116012653983940666819800504751385555686143300229059932429374228937036065116651409856675362061221873264477901022100059635479067266257899068973028639221645990032324316729572854139553562667997822544584129417057468137347883627390092551680623630205288636262986981812244091659725491307116794486368724182179554032489922958584577013006294609893694466138089341044117061529866169676367939942653256476903489452814038220578632198501862959891805595896686620088670144723500846336946994566659150451972084916953690005316423007042822339771151596251504272052050945913440889548085779316712732035349586656627864268466961033165305981834581105169978704318609200349018876612947056565019183103878038467506391248358852481084565676259502114693723253607517124802721915817082470525967937694335942497789353833128399351382095986472478855600651461868358169467378311566080989946754642238329358147577980858876569815690786454947621202768768070254066616933887501707732241365302967399153071288260137520820863457050905814397264054153687826302614820241286997182965614340118430443393907668589019423945313085768893305348644518845077393714956458553544671372670496500234854561276176976566942463435765052894407921736732266076512467633338899906735487779108867947013276047613987205341485572532156309981055433684651590198404154834648804100748878404980542209576671106386790947794908279952769900568894041030327120800116649949885757508491067187474010990408443872746943276189609580630483978825838662324124266592819531781892970176002663107990239084481032734046303215780145123279007230509548517117186854583439430831589694360498500271489269137910935225127323917342993500996679161210528910926387643496325167497761817335701712826909147228041024511288381407449050810534159498475933060853752647704349417430270333606036570556612817050508151029097150392919542813523252436098399588778333349633450284493459682868393728070776419944851710655191678948789755404050892732760254429508436806407033534738484789684393175274294393909287361178410734857697242563999752339288606274983609101625211092081927327051103156296007943096346190635717742678673497078505795509675622130304294491183666239787905380877644607551717188795439154619431997702695053727934400932667552103009952097277676594762306911403660975558814581475654223592898084562631205207061922727239993291503036307861696268075254712728944341950737162072700047324800726144148294800092290103450432129213638221154470249835165710641128572028263824714311418810668453117825415659030405131010990099702620429441770905928898037643211402841537344309605064341571756204915550407390828524042777599961953725259948820905801816301078309482297352463096505714050933156668150791680395046576835820156785196062858975477535233142774501552012842095270474760704304857143028768990189818166172501192698064603941453777391947004668128544169264112050820017687602293102433337142430254062385184140305621118991455938725788367791705439901025769791904604402318755662737919310922760753001821414167010208089530976671976719655996501796943510738103560889571602360336519979637833189330523517019873795827664546653452162136764808751347039504617819057250880968177431814372066853414327056389552391220985702841530062224940018389147402774674084617661873459555466803900927524239579255921741174948632752009841389944928280932417439088111230506146127899278541851409851309758118355637487989954458513522710219509190662756526339544413839464834185679579654702406309654849644370489471431883663584985117235441391890856784401677732394463348773021930332242821044869873615577321113328517711708357881462121359099644173682470040662027534823332502418394712404982711424570599520727407012331160594528530664629721149039931682950485007743682473244539980697391028078620850984421736038922742912581571993250964681284279126196158331018603705047897933683816309527673722664070123629108095259818650307733375741714047755916422131437877584055455978924398316504253972030094908800436552644055230111670999608359132625398914809341737887694195132041164946398623170756777874800963670095182114293346242641363178918078707332943763423645685425517833543621595707203104377344708144073085417373489878482863791381714280587463017014093482070921233156785107737364376855757334144630374810858776856344314986174632830892511898340171825761422558039114546293281472433972798540244138020653489954597216577223891856426786197018450009191284122073524858060134991699885401270702752177564648470005739318655257991910597932312090209442653064145039564285156150771071013644276209986471514453823401902039542663552391139488999032496137744463903578801232301160929832589088742295999247283788409904826401491129948551716090005073234807198613972921518329386794434371274706474297140091257983523975820222990781870156525626783643658966190296287911959645082189586976890367912239282765306855920417097335772649351120946972653088999490424420981276982970485564733852417868236660407982870549452560531993218432109926309119570873876224349889514934500516678597629353300012020301012556612493251858601677547934676144728078731573339303260766634918267625430910632448471582133450421120781975484633666952366422749102214737858475223500292558757890630659920052322198281898319905772819536908544249489450341368345309661659491613716063663725967596754287660181047521704397567239001065043348645843062809095815335030561029846465795973322343335274259480947113687452193824349822024013324448038335538365753341654837823867074944116336301969326680294380494179165090495529704026567443607189271478827400715218588378895670112449204650080985057564112892360105363650917416439930823375875340373707887623007890533016086715023789815010055006323912397408946727060235187908859282652421182359733080473141066474039267667257341751106906356702655837742207684722406915303475331108090070625324255390853343097424341802252552284268290723715516745431420808045474438121583693983187167986895557456791358290697509350706130883255582171134623269195892562361724173377758116436403703275258715546935016820948888967341384373077383421107234342237886957607403144219838125673051516493608712441872932765896644264035700571362472608696672901688515538907305571746844125224944692662564873069541066386131598754755252854942812405768270268397943519462146290712610838302437376085617117043982321169265409413319882213715648005280283349701138845477625594282694266897639119568747766609191831564455952940271256898705662285666994957656366398747476834929628232019582482954766159352884233331187755188751567265078795289439321142611796441652122001691630224666670808547783957294947262191665632769540844339014472319964754645805389176219745721370548523233222371865736901920318308024210320853049745004939092071221433745253977207732111147945943383472198259005320539806319154915034153941976957816097286669141106809155069159661310350503420705696778705609885107218604604712970694697513029177053121453821061710791806209458279932389509764061435149729085401454871049821701636934552228722380159353420213285290496983363495911277228468820538024477130295553672590861353210141241195994138813166777643427568842108095972046066994342154561638201481379185125543710467041084123567126740114629033445978594095890271608942198371776399792438410574026302035255922916786042594028102178678676796284259024884553531118578329276733457680269998077370812276561203334545197837353537913344996835648439470143852649327184680047379233922370716633851285263667962103111920010217880130651162507093855419700108098756759206617061299585977244262586333385697259644150626924356204057223030356653180676657443621607676885818448218370042720225112098491844574297825487371810400323039830727546965568076144634684970543082217743734069907212495314095801336288737437014775025579809417074684733200710718504242677882535394798886144615339148516483120737437173565633760200019342616637189443714566065128490011127112698283814268574612539986875770465393746123930734066258402409048383562589212273437191297190535302344313489438771782044127431297854608029054874291029673596533363450788281476818695938503106802524915310944688669486039931943873709236039623056805846561586950857129950888349932639933670820025165166279969850413519537751722062788131903538571034281846462855552493509688174336831260449751043722780037524833189223140948404041944798371864739809610513469113132812579496593392925197666900773691829258095098819512487563892102251689201786373526329594341225180378388795094148540274527036705900803089122306132984229096516688261682285356982393206189319386461190774043351106152849561903204404617620021957722649572681913106971854435105845597237498474043994571321475885311533539960133537219870710864577293344525542472676310308914602490324004975689102536992015384601119921983086942569293678718584711780353841868552209021874352180062503707390568504303614854895761918361145108600770288622829504304020563780111672082900177125666355387822040461510218231024361772219650343846687604105448327676920248019575552883967365541716950409858175595482883970037354904985861426813025092272248160015187588002952888948649763996008147894317746411628989591696492506038343813512183441515861264875295190704892357753605611655123708500388384674584426826772046466010509435471094346481424998581382199353606555952142802935716704860789745175244640807280803813176106665164258656729526690185617647606747505425939323033324318865110290151822891827927019439145947167055897188908522080433436202460206458338455236487622979435769117613948861581859481599610683276500111613538718424832216551492368664750527004285267664628405933190912470212127924616920611900877511501056035805272103702605194373408085151019068646115090836794884602462802704510516436986868997886939625092731672537025486308835841651146108511710214229008410196473524640622221929597686524179958594371990871862300620540989854863801966385627939861001885544084986202275542465492119298782600954841611000949913913012548623382198411317909502123220959137549987145100893419881896154395172485943527871189813278207358267796060364639262028281633883311455195574837413902231003736026758737228488730269585789214058278626679398481581222999579700572767560216991800326789579697355703330128234280033940644776847495607113829377524272810094124527417122877006811256770391197263772095451288336977086024938401054727913923477687291405503431604011805510689436631029863159929525088591632156512196560879727912612173950431146595488029931233438715184594859345218377237200342348420100610057379594893903664567955776299058446462094238708234057533881707976359695428531819086657110230104316340189638121329770341239243308246238489061331238361578167903717758851029173077385292274756994957744701200284582562766225328890475339397765964029128811653859785913192856728224128248082720171169009433681476866811091038291115341403211014682941351089697231412419177143012487245990654005902746862339054670113898727981105696385970851151514006123001554948610965898801467681984334704483908747271577792531686757387860738286038828628221443232443963684014543592626457032991160240579912817886001155916498382968216434439865304535814250107913820970182479049552983441427633164287079929039583360146944873026216371092740921635782188267765864799391335501583251327386554452181061485630751821159402347195825161333578175644085999132426480694266109746297761959400452268772947306546388388833426983529016382467102558133135896407389465503179871696686044197032237368772491745256293114838784394397250559432695678095744086359719630255484811287722544302625357184583789148870340061911461019802815242548837753019899743976289461231501144785545993447498379135262809051075563382225936160639663795676385346883173024542013600175103998071236847282079028769218672428393755090339866793468282111340107165143958201577830932447496305797889916096998052734728559406677306146864932320826424232082206455927665719833505428692062995859938950486836648383721771832379870056632880954354207050463362089967568683468921550234535888832389041247209696889971655179502005268906288814148403722648725051708659074543384352171944420891622856715355663165353678781773077599798727490650480770800730325046513570668465761272995426750735963612494569055764264236964649103846540013894376362727161607722358862275137667424206965451231617563542798126597370059261742432363377373380713557394203410918601872660453404092672457110564208669586713054558021227892983470951266226889968119962271949441501137480569209778595560397912641481019100286643399994958322827733031821074000079304272416652760548636002254417989942830256124753123444699405760966069868473427484752949532706076768351146392176119165320527345282839669603603438861087415778712103476863534623563621856109884756687215749779619356915516845899201650794062278125843094532962107340182840200038938187558447894670611049957903883030865741106063213391563474796558997640587258831391082386783006609103601742224786000828828011622885884934528638535018422228001758515137685480880622174989794017333901782963570849936843690972724092374640388007238405903881210852689326814248020551411339315303880911798094180045517954973192537344931933411585517183660853070344344337205319246015827638720477647431326308986192157169086010163969875203957512567986664896721229289741299621527621730784651867719963501285291074718285703622619780715243419970379598299619651087136555794900224933641367205246792207041600684731431887045749634885849720555093735051120944557934881603145562337681755974886167325198118919855517296383701943852268953441673030206129709604535797993506700360897917309784705086329295729273173745608981965816276651289809724231892941758200132049991739695525169228534025016868531822737880022625294033189039667898666882597927455533325317770702137103578314871173662999954546726784189303652309478856952750544067949844681408596121077772128530204821277804703617321998238502942888916993138448443969650530124433154408554240690080112404722416056716575494781547448346344874455738484692120291036860676151829032468544543728410413304605879871357080509072587345112482315195102552782245968117815051206358463828715667762571280659373346455074553440813287076774588317657627196688135712689175200428639385016810863264120792789568392606765240994046711491005894067230608608236638840850251842803424047228960030392354733641773833769984180006667410773409036699989580624485395998427018521334630558342743331383958012055976074981979981272912676297241259790921313684847170950241401832738874508883750080631995004231577050491481849172801480150063878550968515339489570265491050256255994073322183898890779182279457052025443544668308609963458494268610245362333435836081579407917759629118130899694614137484203214663422424782108384314281279934523764494133887309980155948358520650156778457554380958665473188311059580710733851514929460555299855376190369782432339879312807525974768448971393639072586239095873307927843091860690247763564679849847980111284640396106406080352962132493706247217084112973528624835976843765416914374469454231159478285064434770087338591034580231198936403539101257425109497962381401364597707573010398494124847427191102403852383082997309539354322727392152409455171882134212934304638798672695128640457634608277200721204832259899558595560322859882056125543867836485847757859154645263689175963174096552220094434973409947433092229901007260286504997146697505604435138464861326871227863583743141164525653077449394165253430573611435086993599551326392956781110213652596375937285798213897263033388274911293111179628623809162399006704518871519905389651245940066359473450721079467072657880675928517064958035555086535976233759571707202041737112385117591134140507095769764686799006610318386026726490898870348151046557301886541319866990527791415276943479277828653407815750055501687770060484787410237037427279137605586339463243590353926984331176681051481965250140549563312745357524604119535295170125971625001180070767100181496211703686034274682782142289366886122254116881598359371020731450005261981622165387517971519900545036535982301160042199871233498877866736610099034834099965951395560859523025298017556048659960589738515030885641992177240272396482888028996691947472851679886198744671365336532612014709773483046402125656592936456524163160458909993018818308125745576133427320990727426892689386640962517143663291208787829081866657545286874385473550264452322921427498749888215503583215404476666809718862332514685623121838524271031345577699335205459452967069926218050658191380629832613331586545968331732704957522003908548140340688614085868513540786768007421340409083121392381306719431226748707193677897918789846644919169393288885391763626652021079036063864941290494102875623728175852994647034857830527529902765467033794917714557248315868892418276776994746892615100704239825500148016472258495486147642438871448956465748741473028913794649262042902068126758311016597105989923034137837099323084728544782621045010291417410312207891123208516240805355866900850639665852687596737190645700956924013921248287604765418303101832807422190247974176535605844367036516044739107933364346013226790770876753237420294478109327664908252364118933363403274505388525816796361604902969577555012951150235058726146699214337598160497245161594197718993240815394674886304863362979780284133014163766108156236236354920424140259344898919602691626663845052582944040760003525440920204039338014470674711704353555626896560076232961864090054488096078211819153404934482791719565177490288352138609183142400322214905559928338050883588032408251240269390296591556813674428130418007965404283060930763686373311871710736215702933383878107465816388497623136105109685268442684175699781296146020178628875254873169972618821565868665666998781384068676108769636410678478572603315375938215113450527586710265761561298836604369707972281631398728514429602970407547006386509582679506672961629136721100825839153827635262322462133308867434584196725490570516944446919287858776390793138210213046798635305424714549644428822921065508615690917519385851457130075354924814042226717696964866663769440851517683127286076649299431473544657109513988881863119291771853500326958766255405354122816926745228973057072667462111717692823358873438442169116358390579402930210759087970212951289206455470061482479562128251243523475128924269782312061674994314248202989526160721187980164658279050579026904290697609926761495060838376929719684598347675325891415514070766924357113871950528333721070567332763179611090678612126230337489566324797023989745016331405434751624042772942954657037260063139156497182535905305410605465326561624437615583467321973404221042047786342028682204014217013512132182508442068182531129196698480653479231327726527530051185474123436031374026972328784469323313607794656007669742416017058410095807814434853242545466131375290821420240845183898372046606212805582870476375957104273969930731754469440718773703332937071195037236084466636015317503896523221373735034666292571969258984463125398697340564445271338489708392901495081960581890479966594993305434143706287257400315470689976732774296144606861590919981670592398827534553711628476690340765109640657702466154469896222540745457573321891603712039785571496426161969724146705271168918588695636860153645269287122337579709492917898321470565524805727272060374795672750645586053808261180253976451084954972930411879429320474125612599189941851530472484282306644538544243232823623738245883953261146585547381439718531651893907702524867315693402615783994850069359103531113624934938180542459452864170671112345344758191872631702086211842545623615161201264912293224272194652158167445380639895518097151707499033140013528174141528334966553453061541936749901216341742984186030635670323944607087358792159295626276859086883829836530213147951223352393129165456676436722786511502165425953447585137627343702090278841475408786904118679326785437347671421706402937824181702672878695922720390027916125381127887373428686374798104803108851915981067244684704901062942223668067580429413346079226867273038225354387559595477416579385900253759771642371823825461413811456080305230196159809172800407545198360088285229687927238820926131004997792263963426078089243046221087940292030454011069787079760980946188936504819285754386565515744923148394123611218226683925694813931009752157151765761577813201213721683591617276693126841617155667562937578589708651177985049176977460696832135936752674942558623412000857722799714910668561817991103838006032253314423014704711234098423040487099653288977767007607207540048373494253633113343171884293649712138144418666954314247026629379518702025357097702257302891765606598613729840887940281986841811254783402883034941737039678582861292756533741369090942786828562349811349912319257110625441845531739582350175770077730581904618478032534098070170735123355955606993812966161865843926337886411228529816884583630712725894786469594730599447099692987825047416935990202048000888384590175094465438854945900535309731027617549982740587763613076476928778368117183495462090015697297258195726269122624554637468922763309270065110573348976922837052886829952025658149564458781317043363675667380411254432491116944080218939500166708899468078142730835901989756187180099566766218024709878324949859534913367586959241191917506278603034141199913860328399485380650884623382446516775776891268095883277797918333255419567864902507309755373188317450322857920911799643201997756984940921917203979958826075038882913204516785159526453671360620640578181551512962851661905625289549292364642956807876772179153316887742865000923761458064042341640260715377730151199108791535022818495324640274763057671403513750817013615403268095710921960967454896619053262464935749393906077553744444836244787762010184201013561727249056129241821776897940914871622690724700723697015845724192696533194231796044405595459317014105598761018791178972994612172336478410712302939128845043213998481036852786285645294203775808307553037539645908622938615978753791357729346970275238433338324552532542147552278662837661828777588447005444474518284272123502409476555991152651870367582189320219106012351990393389093647383475374453925754367822310966965541442203987953771152416335917037716482414042878002272870349573839986378498341870832127418346924922423502513188352974400564280740300876392494532982642514420448898047550239666705444410169363731742448607970473387342467639457134272339782570351236272793958881730255623124536737425422200149088090654201331556151081056645722873772765779508331129211160427810864619552719664733659393600967907410708928006056545014512071367536536539924816583712063122900278335732792445742988169995360589969239333953341013804967697851836153323413062309214973071256302817498784066930624928541668188750654273363826562691276501295895413122427068080976770881343373127827522080353591721394152379817147540738423382315684979957272300136765796667594861545204840239746222437522033417939319058425760098907895505928332120568481625941205173611097117589026644533452740435488423710228456461698867993483293873292080593177168193930932568583306303935958910658271691361719293597632494303547895668151466044742679087797287596057531784732697970007957158866608823587679141741468090762166731768195526631980148096156395020648860341777358559535837736039363426768297424963135446593335285027493309274648015684258404977035574396870704046387888000870457155400259609126672156463052047123338813775464482553854008268185127733965259001481876880319983708741950259602045192744860303068750716666829149447449275280582650203331501717348291011418691348075658046391643194673054966492862221589001511466629853139144295429436974517974281275876644259276681329677738327495395561105025654399648517971340772848086887879104998964110173022711172631435882933421141381517070401613139914121885972961558510899553628552826928072882445218649816667242665281282246413175810767709523525876027514704740321010056405686327746317497749949582589437324068744967313394251614447211273935242644033495636984770961320172175283832738946451543424810838693639035271147573728527101511042126625806321339978411668300803172235878059164410430976432445118106604631505643248313985724396757487566721977293992484158354435573639042920616115278008792694680049076060943168812102502634107987510880032062206277409874147306323879329543300838751003988265212263944849182264343019920179031896670035828196960683235953744448848431955146880653733950032394739304765316894552933029973497805278255121633928156327754231075251528409881371896122978872777394729207161404634075530533065772158466620970045346032932097616571241268517096370875472735915838322015095210211577939205915952215850140023390274949875211641999004754495726541568421421524227827640555295569950599548690964559616543434485286786646150414073698756289515620712095262058052921438599033844690173468728423384960822207728665331903819264319910611795540246617590629399542793824294541522747967357391968787579899617945373281345022481057615880995272925367313251061494447584823469011904672670929064355304408402835159280666844105102299434920604413947865062538282922710818599971800171174102694738901535747351138707308677143318773275765836604002876777621699652813876327279118070927875132171309370279611482726393504876742985378263888600309287413893596272131600009030943853873438214635363769503648618706210817924992788676711109641253349521101318954158601422489933700970465690699960882570922170140557058265027032641266489695997999239950492391149064267533838934176919394300398486616938846604260088866429581607300765858048018468728974829065085337245997580333435156081776717849212445229535047910276643393521968985867058397399073290956115019501979126908267862017717852636503333595465538955045246929918527901195465737238083114225365849345131237292855459187672694974252736752709836666681504681466395297496018310641564088759902427721857504979279410190829969314046749147018905332301274947256030436270729084507814297477790839048218664621704734193758096187566489846712283610772808660103413560738251305562451451175354245478030302417809078453958815264261213034515812829883061230991464115337807061068563688788425559266802472802614244974333329011522101526198356119899227156690638970501296900859140174322475591265323667855462714751051724830314656052953517256125665242199168191926311668338980477895003359231234796479964911234276922808295476678336880726487375210140839295667504761359962820672115832245164290070191163244040879835838703130280576500774647447856348416404556498658999065660113307407917290672481951828123322462043281690136672696421450498594639328199900049432859255377229665285895981636260665962083982538559550564796387385251593078174489840442045418181424651608822869152083550325174588461474342435094328444467901303212201380433054884436850089216224149575949491197944697826999943648777308496548862115694187345953858556406939107854351251270051750157560720362358527379729924515350086453151972543135455887073859063637046122218548558691501791859184545402653592944718626350670937661023407247431899614434734307478115783684870307788320826879252645435535283263350584608634339365746290202507708416965544267885317451612886819609760400099893432701374269624571134798476092065289106061190992386808378557364093184826780541020518649638058349411580047845521575544851961045134209514450011656685305501512927772764630792169322097334993676294891716347499114116425930600653777992220629478588734571676662783585480587024335076693494514164274310456385021553716100946796735828160742003021773733504727465646503790394412261774302101077826373261767427617288145318704808987066587375024606017373574344114658393166481375336755239848321036249502901344889860915372314541685726591074007653821026808091885507883473980681384638514964409932816052125187726976146267331927873089873383810981040197711507783140265934176061544861715270467457562452441721363252347346957406590024448715360424533153658721186199049658255452859006687834818329746461782183460341786856522854628238765602379108516578512599916668753163496084875404125148858062607681227377393238373852536593216672203010384689853358308206927208641619325875081181690802567150211375392137233466586346178613813909355894218077250598016279702378824329303305412761428405834520698757336423876340593701958451320315212152504901823689861532810831326089578209964744316511296009653735251375049856434880200146537588691717968070002769826860264068358848081575876310069510651872791617099075042224978123849559096169934837497215973638369142301121854730341612041254089705445703968461120238041221515447654693655788214099472406630453057753154786155695989704305297792655121738072209039200167920487480074156104927010978042290943004193539014121138205751822357195620170995092240109818361145140639558860044556039127828678518859055947369431956479475283496074635884207008861335723460902766559632409232420385274624919304190581403112247965923722352502294765376615806443876940777019829671727957688113423590778778631147196384356520127548851971665035638730069047076748003096548218173598647469824187319661389604732746604005912192445559654317996871938777194601763748765736313458798948043742075291441902833379098727696765943065473030605493305166060713729351804631943370368436102971908657376695327362829209585589562815642352539117599120593276966887837630635137916440222150888407528207481826786420304142003323866027019392774261139380924257803006820790860095324860686530225208877560020847903591387659426221753915725119970530351507618204945040184777387070890974150940638630707655607655968029751499122072651041369249900010008920173656633937948821740331854012838196599683097492341035605972569293180624624679335529374522900604322172989967610760175845331837839371150852181454737497432657367469523983198989681705766984233229925742298125869899436566749925503970063121177824238665406959020168745745977485732557850370434067955597742743067135822806142848076171002686645913972429315990498937450220260291117690610049148874000916148396673885764464941692436004221185640674704826300504636400574762956821774953590571800676943165310743605865288745375077397304764560538311750385712405101309948399038855152224291883734997756858952801927392534670599380271214544658802025505926096059284406629224359390095649660884008340412393730582600042766603848852014234440458301698602169772370637249207069522431715990450186609456025588953709941323936788711165851750561660884313195703205653297345431787791458117373645638989046206456190390490814481662482307801757816769185792584219849888468906616869404002897126974131533488923623610622369655554609031841829275920608135499668632601509893855405302541611585892081428798534978823310151668356268229645678475105551605709412297938773957192720197857593945660926510976369682530791758118454521586334689505379069295424628630008657408923692337445479296609371850327833367504599160560488023013977669448236535263340646879949924690279328666368579331321884675973366691336996148121809523882017184340364580236926439260557822899221251895438535175068255540318893284785329241138428750625378201094078477782829817604124628698239830311420204774076666699666263277789422203171283236378366758678249643531511184454901099240806276475656519147774061508585423387056968865647435478531824490106217045178244669678058501808678571969052220325305208949026929623522799138556027395510541378770065804849282535661548896386431513147110319315393935477276413647574828384372332470027005308572600558848218268966413710319497471272638064143826119137301657195283258309252045214267053948772308687437175065457526539311231300992953047795774097987594025930129652858639605392469653049929668885141761816011651316269719025177939769720163524371298274145500145331470029625283896710962110103862631840813229720212999615021270592840363059308185564345768144489348108885288391771729373355676330146824652562952482540506204861958612527192830455972840671488870928503335461575020130566631952736295814768907212155083808386629746226006720838448624470848539534184616470578381644065502683384355312745395719697943547079916539640631811875741085858174361325563239970453971382893150799495910921396938227949929685962366023443637921280599976147740856142211555616051557778951381529732841042772993580449209874676171226949930911344735454965058154945669923077864709046281772268092787398402659382652999190359925867421875443215741355803758909388416611424936230011382135512723226020139303661822024259726177488891193279238653276029671008235770779337369661999048627780277070044468817024554444466390161271381549192362576458649839001431407328844413468593593503901098275939114087199304315004034952018628561478412214036009378992572780817338828456551430334591972818907606607052186866670344084845683112545491652755818825954822452466888679298320236962546315121265063894947459026403949918686051262220865030777635304467440047913324621210607366521411656239301275854921219261460366669431570426554262137976941468824384101673335745767117796698230690441462103698474267124999758925423605832121385077769459851883091541618389711702064156444637405355718679471437768094712243429108546607723357750629536164254433002252618351723860546041090592895455661357642814910250659177649665728652316576961481632155275009403165459268716064381144464626804573576887095503751907400512929247704047946264386890608768508353412527744090848925967015376544689882784848740502731525389206457803352877498646367879895120503476552525590284127677545596628854284442723253197949561931209484336246431116566364256201225418068502575417820961455919521656721723486216969986385744614397649871836345989332838447148159114759673218703438426851221896809166931551384903183315876441050916172456908733008545737935523360010092576291007061070403955377009726388633650849518259593525545301179948934620803574533021125794275564266881889552005374972323064187652183121317643660900959314698644358159942867613177823036622051156863478628338218520510838397126472899760961580848397561630922300959435197093494321284489394367857509980367943612270811014951170946002074723817575015717451843865914358860467840042150255222397950106099435524010917854461680704651989993624725141759821572997106703822617989853850126340901248757863653954725698211581136556212270196921437774508658217458520849667395161747205495833152962009569529150874110966161331526483172325150238134109969303340207692409497140096453207012683484268015758341337381030482451877148743761462663796991674991881056467569633716142186233781841075677894115641827294893781866415287837843373092654267833347203799766333853829548048297548296204890269903548453761438834590421513602892384808249343672816045924256725069584753057720711068504224760889619757044129250935143701879360586838064786545235753389052405754830666348752376265356956902953761440980512074606688908136507633252396947683097301173372402703993754407988252164742567334270002903654424730212249215151393474294606438470144201248977587137378502147207010504495932944135322997535807855909136411714576453268472133683725944503026649019447187007053734244014735412579856392097984161518022303355161716685466857469176576568023640144972287657046593346558730490386331090283185792411377440320000786191829906702612015425973362143244368736127723227329578727518896722022805808447908528875268549159808354481966273309084762269183764544035348753435544552094263482729266867478271637153274612822023626527405554315518558840634676267516339935972528800214429857648374265250519474322224686418637391975423929878145186918082721953532489773436828010593742275674299622803867519010989157366614231238574422464428733817136506861133729990264647698600607071939178944405749393511114808288153449445796900008577953522438273374829242098202269479654492887453721193789463934934845242549128888707334221470758144178319587618419834897566541040635797256175680980389307345839418477541861171737664412462309827824859530009762365271634580650395882109036770675967684940311509120825207319446734675708150363444412861812437094996554463258649764421802484791159634401059313863513400829788199622571357624303441225307296706299875430269900473055860112663052954789180034464988545553432301042834869337838047314602756315598963545064934944894058475793538772601658880257564146519322475563497027544846825678811521885434271507097529797502970832386846663164918196615426326699377358049874837012523313218544920835711749121861118735880698523639328894826966097828368200872032557350434037427007293895743248983194531647523716882152718988299418808197177871672378844292853306402167504762586964990756263961465204987093150276006991736352743405553381418143164115863986158706107727308998721023077345806230880012646886494254150891440758439373428992220500691373345559549493147344931185137441724672466061920029544793694241832448366851203151619741503860794566419488604323390884580029627454404856746786881932411833506339589385826888169914140276919066069997548856858972789233726869301086324178047347247408819457351800013400993450793039270250599897196620469696466843199261605493835231426844515079745931984917918738430458857048338084535132521932128590181972955969028986649565505274695913467832813957562803510363135564583379202544094504650229547587569911216775263092269376976352313338369904819736442454966483944335088204846338993090779241242717031673481131519476717905057711032816045346394566653354782344760265129352128934876902661603615844233602357969276260824076952001622174722980668139491407237794837158858871004176128712133246313765137887282605562553959179923429898550104902100122570363296988164975998926276540013752847454012943822899309251775013905740878916164014143962108882631136723336375122870810256401922047985253811765862042946326080346425881075155343379310983326676783233965164180799543013952211493163372037464122766487223112964320761010426845147648804562683339068845502798642651440072902345691914157014355032041360951334587814034931198279203423961978817448025137951912782020696900882858654489072932632750930989682337066023607303891935175248893117256477582266885424456628692564140142710970778835053089292745970271864363728290672801177952225672280642448317682905663887289340622507461319153090137599511444278334559598149703597299601766225616029858636716940497796185511242119732696574649242880385393584221835481258377326739301421671779371180229596418457626295857988891161727661768953846772377039562072784689646001601839471335590827622073960189049553846723837820129358196792961907206843916011234594843802945166573520124476754102533174278418371038199873678197637364770198175282981253963473064614363916181395537359417704172350865357076618848334740132406225284496709137099252058184765668566540064670320243819146722351231743603853218863215386988127550083517486292670202340915431118889117010698628004176529705084045929545141066495950607919258944800378302278849742211392074544634354662542710509709598825393549990777922171872378173440583599101838230021454429783762081753527623101710944733260093185486822772679559231346164635081709089507153780646380583105467562445418016312414359379996303383780124750695914170285021349107327479207503111755945067450024200050136534492791795092878041064040672236316565098882418774951690378342527232493860740940510502746382609435712682406376298681806233829298983432155825054955613728178962253295146499759809564766116804566327289323035455541144142973109982503064660015404449026673869108307292256342087558675111080013889233071439578474248383503040638991396533028226904992953288867345781033567032196263307927301317143728781211703014889043830338035137415822144355168862466233985643822870773359014509541848033013762185235529244207846182857430438322797559231000840628598989732661319851055272400122297497807458371513618113168078292054254279754821125859299417753528607648621688654139447339684955145759688368394870328705332672326296256505647783580069132740601411071481949008571698963073647024904486834869808726239768558130901999878775265488631717514384183945097309212486587845577232806268610785924129445572094647152555734584049054070262565116398042073234672477481277203123092456307859898299805948191864748492804592490229762517590504730849272264303559049238574562288171369146597971360643303773788772543075684822350706146102868103488207430694042171312920230324498463483199893004505203278660165692869444339709305457024709496116168882157957198594559713572730479304240487419099670910835597514759127108705675779815020747261038186104465849825620745988035990215508037083457052942266502387955166345636330942342135555667653318052129884514725985567487251213743149561070804813291818252890299475576254064318581779886826729132158302529740030716769840762653390799850258927909095323046020346463757240699943530761693218970359766624909150645060244719823711077561097699253656382533671580541541071217384911227591563135176311319230735264350472516064604389412111279264529033169541249680295333286590271133145523277345070794100155203106931060507110399316586212422026293756338772922634049086229459668168317390774566071674557045355786839829311270508803564559135147092408928814589251754550208375217270462662504621753133536045038549616064394298384787277714877922361530963560962495368224193531483665055455800857566430619805977054373422230122758885690799175620569763789164975391184920636420323052362087878589883687747323494256709305870361670244893757898227272296883362349370010636185453355022278859612215064068590717104412380744159808428896667300885936563971009139227330765413742604529283926887585636590010221421791917015638637112037128680173832708962128453867409167000728915775722082803777241744721258780559426763820541856609332129701968727227990574335747749372995509128519157956381350703377553788596046770138847645912095917235683676511129604357639242470239088809706786705599065796462162740931221026330123751441334584340064292833965017869400187225744691159863114914647559426091399861906392724640428492123729375265379624230242042292818461966663696280793493832277505531714365285990279802563994137473679516403926088534181235823161626203923701534318894717070823965580770886887622515688662930913470449571484373363778301111739004278396662853128264064696327783312473316198655333594514095232502383985840736411976825802096348094606457095411353625865613803094027435744669312342107506946345628573397773306793995101109336395953571003302149782901930555414262532114026057915135184712299984482911234713559480818230670998224473801959117938345487392280882301615003118622476921132585137108592012952905542327429708480408328741651517152131741436042819624325848425792988277572855351323307625017372937547677104577114652147694775110372198799896746618984521776397053434486747657399974443631764419126804005922798282789270917588872553816476899458214170778730360736643013370003497796348476305307866799254002377129899409260086178713167975261915289099847879167049214592595547429611278688864368629819501612683963254530208079453999090183413975972644069582409569625035418393056249541009418465909862336644991977966157118109847322485419606035992152729108528036770671833692353661223951116054392826303609141788441513682606818048729192886242415089213367539588044001862165071041629257214606791127268523719149915844059598366455508308541251573057381833501809084247608213074909781546618187958739601928735960417021528126223858206515894629472494573903558668382084493155719924928237464289368409703616716049830844978459851136602386961432581126746284784516061133400521540236613847422777059698766087026557575973765785774604063301272553884613117511487708279470816126994678492950140492949458741126462991148836541191077495010286146421752232025575433623765518490128213623754904380422841565169086006169095532267039745339143383057900475640353429209514005752978845118403995248329694703700168287027684066024142078459908831588826336482130105354375947352906482458730800035376064080804683045716581939258302636612899325788197156533423767946107020602079160370712344673780453801557222176102336091113518171859013929770865476253889621564713980171665320197810939706491347967668750865761783716624847058354584285652087902286617144613304876522830945011329769871890501507553112587112250334950706378727268554541818399287829356484735830115111387455492133950716518777369242521476230770300966780735814013820876871759843822832158244975818503802437262727615268262799643593760673002599949569470602077834940059780620520985189515319566229137733060379522912430497096061258155016449019785041173139117173037902877066966976680144342243707543495925945323359570625677323660047790078800453266095898500232941052140862895408380715882873110644470990891926862210951922245272571479265235817833063551039942417516737642173640587835366355188142988580801673575802539018742573430616336545951747423154637216099198688175340618905451748136902273187098072262830883190397431304045959873550818270094879476445788839864936925944262276036250668394451043106483660053223144524190413384128046999916402033345951214878668926472214294946013002141843345695256726651234028388744123394333916712424913510091165446816863416656955111570267079793549723326533982289469704089102737476881590030807324970003303372580816078821159285538545309283809760757282236016068363750414738370634789368940409606091004689491748989692301874509124946037429640770515343291446205571768373673726385751447785243250359132055422563547910074499194429744703932055636909612005256016094844194221310427576195562062049134065203452508559648362349257047160930169320129694753293010082256437336680301039165036707060627464687439525581280228575465350844580919729883837475092136894427459250201810794443730855301764582107097370763208906850988995222028963489324487853112483834738751898455501776010424181206464650939096286496641370787169722009822673326626733650876906297223307273940595635703738870961278372037618645568712584752133348155055549350481504127784337143260964803810681009049233830429531122233408175439986549307245621757472793237784431699732106480321772958099048311466958615748910645185040637482094163034931330823070073886839254220244526116238649866508270916889538233393816345170892927771513161546228353784964298716080829599361065300405330682717727216680840990458006833814093003171942916679297971312924225103748876315877875619790075822962076731835087466765310558216426452807369989602997682863578146754352135678052511143080763438144305678094005612777967076180790282506211348511160550658509236326900321014003209107215533320544733857798902740001569442790866202295576517769387200772695058235305891651760945379714185377418786332230706078934978105198806531660058885584375058526440962000530195843265412345852896797022305694034300936512735864091251075042200691467339916227117618141639942311576106222028532440647807781536566618002318051117556649787834794733586808859808816392633540324628938197385450131066254531223058267428789763256371085187626919924468649079146676257170320618620890053082537086788826479021595905958330228708073725161689551823296487949139971050022282695187360218780459140412640401719093678176356037278409775408025156599302818626539048581905419262503723610962885708944919945597791315541542552414790119225727479268890648405510092832085753764684177802447801866785514781639376301278745388619512627849040790393449075608152107895391824387878375858652153508347198878946013590043863882511873006858863442801643566680776660442742195031718306709760370158409012583077628983567370472035895338368857980519596000000259616373764030229611685865319126404065784293588540428452866825562626159092701357108707224503994904909078953223839717987954477029632363514073513476711655000669194037392680246845420861900508827308356901851483992340563731499153555358514443995144174155848050932687967351985763555737199738863293187455144397974701704284920771812588029782976778387880418447152508672564382052139794557637619568484181723701006886169706629832525640129118447084222013775796200440505089334510795337949769945641124399561533952947925876602478079490044538801797980678477919854476082613693775500512666519314124729236423249515511007041281288060100989108229353974047552859912775464733071814856779273327473482190095859270728373745523372036275927902892479205532397385618721602433912684480995685937818076238266688092210057025487951731311847022851002329784780717530326896194076276405875673574006728424356322893281373460696066674413374437869964317426583359331902162787533766721329317048374688606894548294191945573578798761401633583370462761297785127915718845716869412406883110227068924056124732333924324094488743249806509676269919746752850697114984693125336883864150720401423931824598055253931843273746034374449663581193572607818727713716429440462494337610922382242572196615933356648592535461383314821793953250804850762413589701357724025162920507488684476165574445791861868158112215058788125047297500478377543988074009737791152835067493990308303006761692879574534844053488146999601273063977183607128799448277845289321689539236474922356551544030112982666341174002356407052097515772217274600991312068794859031652267486402300800679361647441686702489972497525707589446607045191962151538910615435158706407373723694264065976068606293210242279815129025838942038330237015732223060151420559802130485707087165091826273781199978310526381295769012848521904199862286723394362176659449930292217907541774606786899368538934728714578884123681677851952244914181945564113254354835930648564487473210594296382293180164965495030712818070429024861836160570276519562958109163658991651243703124610734853063968754879146781255537382500161233806500298241334112649741517632708748019381848742611073270420517412694917898704537225440570341077510169483766828567740908201064453654669699033598210716079564172023109322848868810149021504826031785164769319756292930720995434477187955110122353107518741614447976900738309902207289336435958471835679210388629164529628627695634322296311120732768002184542655030327439569153063176391314157821880968970744290485216298294770836383720320267424618065843931534015605933762783658005857714736263744984067644400053190857520849043856562189429334999004326297303849923106737765522508419958977688085462441369163455242042376679826074148359434406864924283954640246778443804739160568830214667299019484131715206719660205527787474670602059378881392689845110045179652781512930997966384253419114957242302184066630424020008278978365797175194579951548630182894331579970261872452324921396820828253089117208274490531450163656132260361741742769917600760238170374784766715151123667013702102076882871684946331554105036918436951785317730624166118498210792048708155810610004301694839103700906985017458024199868067902631937670273398370462884531314660599807322515753469088222001881491260294772166100410637882318336945797873637013841160124005134635909377821968883584798904783886974505126449281729614880200177839060598210632268158496366852182045364183558936374449604522484328395247869315951069175371985354631521694613384011139702872943605186427064002745167187866035060302634141959618782227680568626698412331718779687084336371620848427004352416509670031968013238671697550489854660916729067694074313467955507842130976378354778216855248578269499019873708258109720751406152423130929565982040862773681265681237463187413221136084369503751309542278284388858916995832515288607453569777672468073288993952098236019022669985118557495164512968459487526247937483129331741504579020479913580753100431769983982452717985038933403866590899927379555939931646671158988287441570989958701032587103344940390378683895933895170152184146039798102780453464716880699587206324394174805358633385214206752410796910686926471986081448790611949307851596013772721950662768738997796563341639400446501532759620150775088373560742718870183917013666002414813112803274190485010564785599694160258977184799631305990101015844213337387392686112103284345864732643392596260355109079448353762267140441085534348875119529853852381112891312923258539259585613919156897814172009367075772184809027647916753928642120243415579868715854270290722174739899782035339485490953027002227826838190003010114693794023386992859343270448334237280308579644021004522637446591396326327075362620984469800525672594621823478150632809276278243688996123623063913771031441549408890028057015490028751604834158495699325729161365747778865450090764829966788845460081719583906682842105840460055106073255774686917147558331270030651957900703419277557978384294209807818269731312674655482342488584790099112715208231746401189896035914180663983678413152576237150663810612755976809274445352556018234780323524287537285869776140906554037645911529730060993298513582611434897904723193656462495771410416127735941261160191379815567262184991185807860574055586956332315178652677797324717328594054545569253026590921486681416137377869728933135210516603170240265293936637247362148659532863116169164947848323890161353115775940469851084973753596767155744502039524661185275591956988272496445395772296528045758485520894640309023210688133815860013874121912939831906871377212601677995605862955653503472722581503550999073935913384996673388846647752111567804988662445690067745482413454576602131900617740205964406524350630516043982323948176166743027134683326667120241165323486120865968278537171770897342304987692399897581997314310825893744267727501243984977135331010562567322979591457878892271122883816713109592103272984101477119528845042025028089984285502990206630390584034400226129669929302203160793799008513243992705631384133232210004134197102855744189666644200406938674524368187834052200424057126068869512180518186849243193708400747658262801105935170856558443837315972312519231841912561569831523516150586569047230161226087389426582582414964433258445652433711901263460938839837753352868654823232106960945058256150498153231342780742147160179660066015615401497518852987257993664492722169228384505929298367860783177239261544041741372217764037193797925792528087967319439372724075325168776269371026845958161828557107092298502902936501328307378568158920112772526367641953343206922131375266559651560710018910565042441140922169769973858028268998886747355340520324692137288676482953293003955836225036970645475866090034792895764345550345798794117096783090581709047339879418602053378055114988383655415562141695903184221644028378305303184723867860464900601470591420303778847241264274395092908197401486159296735549826005999964816784889156777828082588089249492670724801794772681869466726215377594391466529736473728648216910409826001815498241592693060761419618137386191276424853010182763912820108452730651840354930424375298501456398531633771050299247463935881019492721199240744169815127056824116897183791852900004850104606832033807982857386950072019965907462865810722287968718710685730211428861542810021089466124198790173467961762570303612716878994486641483618815820615292040859234019145226272869428582708595297085356526881378247042816735925795039061579381301696773604224036662282152809342704708629390317580553823535475757684627710807583596776770510654710452302210342946777960545496118820900181551500950313676551618494735704606928628620355304090564396756423100621793232150173410914760721903051847492573322333594445162108137868642550291945894075580922170002175579456440936672778250331550380450743387675932869568731163227290483520200387830178377160297200367313589596704922972567371393691545856025285210461872706632176174338019047295294209997674264542018840535970763781276023054011238320600108095784125049059947374738102241990624059979706242588567085900688697992234185040299136513578121072536547223444981464443306985538597895967523546640184004271805526402861183230992287525740250662795310055931481704214594334087404552197330083110851679769063985812289361376919128084721848061792046501841785135795370426838950757339025943150848089858675537400536622132902423029759097140046362623438572760847647390273111218440507859744607015187650533579405029534875473518115355009006364277408273959174518549116780730476145531351142509103855502712059404049203009805212471096449337665241389882284593059515158384386415841907941796890251599162536248294209233049036337809925084510047762607196188357132468695487090289292486837819388836020082440197523932092214619057423400208372502376213646475953495639217697586169440186444945881303920489101660741227140854865782213000671139823658226117255865172412325546760191960218808057757385581787512882972771357015093759009444497255240354615718595735033959919678065353566273785786428789177775755183903840607431831706409373496970323438516026295572371564972383213405517419873006724443912016729266702579093641739493853559121685932760274463830977653925282321577918637019438098806243992059000895620525918525746018799526310755586275559007898026650715249580665549486372451165018454911101850383813715249125146652432945460814313859578311945644362818587094833203356336708207551981017360765188581681448551311125634512176096014838272024248079007186690526352709462647178258334173423681865560927792539408798763007765850332807611841765489762826224686945184915793411991976117160594012106705196548652393441854945031458548626645703533592935506518547186611128477210825822153544917412644977359614863190955258595334702715964960650320548116596821815096793966469859020990415714653948494315682341495308206119539626591067137421078026410666603585018422783359435711943864809671694737154778168685771550377427656756278605226277548691019267894122262619457103304561126460436462437902930910750365479176093056257834424944352787555599727458689903698934862471471002694854053256460497585404352852402679399680557181862829654740293952410434253363965468420431674424252263442549875549834465787091011175945031692849112673544933822175073175298932251309496111390466711808123352207372770751616899873418881535702054768109006166607773413390730145967567243942728037935068942911298301412714602668885112614683453828467008990418247130198793230124753763534867953005581836275824185431083860445475356946994515339694175858124786408571100285282590311498833954945950089916627332286112040198926698450157652964397594214914811308045974463660007537625916937650373930386983662011102796516280036554091715347649856702658745588072224677418824512515926751027153374958699081866454083556137813918266484167833717951756274581795395852063086574536255039651233158152217200060974475260281236239429087243415275133431870839358960432977485917281537802811480874018725958377378718084827405769163384685010861459912566383161705602019745302662670991062975934274030001617722386217270816220894269313897853255633097619784684989692839844765367674057902249277648672610053090904370330349496648091263269111688290305985507739365086295149913674947553338338543229483301965749325252880043518826754364660039173475445496413343832273988377007771456559928796068050757629759484630073043146870953383314261669997950821872078835877132472361691308263626205115223660972026451701339838890798133316480292335006028844213389387134238872362579339961166865106522281837425168444266879066369525335980489305187104501905080770612701828180841320028633956341146774005575402833334269159853220294592222698208505365725064886744807642822231291576109665990111537411250488336718541096155825924877285009625657623349593831706084290789473863726088492551101592338423072663029494881085257304435762339294485421168056207053590405974741814890493670895903496429480499449974211553943779466833028383262044769481292310044039775758634442468695339853656309047446211219387345787493494214424737814610222716523870092482429867817786576990571560267794817431882062331223061163846686125828739017665041587716909141065842433241805769268322348636693932038102491660377987379271247145507212103242340859348085709683037584163559302421087611034969271275716192293159817110749695620804503714487115589979573192369332135737756141371519221502118696136090680769380536102936386280194994268846982998743936539457492716208418807893912441396645425257746457340223098554565897035877355159843865552533238441908055736584156010120665802289345247548906121473777995744518016378718769580083404632634183275440501877827657058465470198839887244149467273929535730348178031394955728906790816813746107588968253831460313257598147993331494902037353845085790757650926180606201095549279697310676192211193022920312515740687264583978131098085832117064087770895908574846912542948812324376007029373464221071508265622710831869074215829286015696934977567799914640455359021124582137455950154964289364100333434816609147256210926305801821943673616204696166010223447487661400363869893812532640495125396352720699439090208822722720434741608313339948350705924213349957152985886740814382593169286658953441476614972629054822859696957250582950424860751257902754234650771246475773980391701130007574781941089108895387276734009038780949718860428711454288567541950427863389362893793943447951132526606921211607733327004849709799304171208471019313055810509402665801069225480258833262282821153975311186810692967973725904615472931376372304361895712297805646940401411400390403873036161356554913701569207132961991023920496063625107768751172071924700382032847559683917514151938565549232473047102319646297510166146084236150563118476618088912505144852755346553393487680548073612759016272840283178450641745788825215724039495747261913628286558978485355410896024320693213159909435736928741234797863135602741030206375937557215014352094479509597126360265965180096125656268621753795229003999601326418157109391801955785026347632056392213620399119448653396981507207060385008026724735019438214042697341156872647629020978747874507552899503163174602693788493115329643121856407377389696437592702515687648641842770423405332545384120460482004376093807008434978390945371323505333979268398212457789929492355423652105619217187118078918729691257507028413831775640149393500409717953474662676826908935764981735886071099666891953357526929392282719485187924223653557242206001653832079105266494958382223299034999010714928432790860616211901852744896198358255324564135726088291226614084480593118181314479421206603129481457849909048896054130194850119822188442266162335849823310858133622717923434735457181156163763006548564857957142438520095750273574415151919637107335628447834921108588933811509853783980633966143589777422400358035588269654674897266172299592555232753266455257365336139881951336623369407626189010133760853601377924456710032249442109908115051342484065333661837425514576593177251786796967779092866677729253585796683526458684000114957833945229116300303837770597223250080166512556978088807357999763352901243947219004539535038069928196372572655557022912447791058234608795572668112458693941699977459968071773894772134304316381319796030725234642876132478469762351200150934492443254986521497688671134142342313081215027620991432761944908620816880472578541420027898710643430729424356268965334949827373224622194115626420574497945326576257175284606959113539662751456144640720216403752931018783042133366541760052876531954467662289581020170193630901566526521414616163881643747994453969191523219392074358799147252607655513805490368235466676239013288659316885733654059409353582078069852622222653020915254358680669240320346771985619054231733106094192710519499455638587497096743708885981156169584466550258002730740666661951879205923801858485503319962034453272046086903030515116992704709623891828098785003830112891580717380065617125535063713432452368703833341903523833864287086038963008212750920626025680871820339811061125067908038652382327952171620139181195959941852930166312281238381390271633726330001965916586693776826495965559145076690928632604659557072206723580295471693625478223621754445647520081217680835015949574168621489818675539694790416522978855315807847729465904756748755018070801570991592449120225868365494407299506889969305389727440188171774489284262037217225547155777130494658575800963740848806041328813563591944985384609984749385831799176904459629879537281070884344473193674337931433552526434449806943772266540653553112426211874064541786766753158343412114978677954247877969367157050481730471804346067445320414303229072681273029217915439952047569955641157739836390871901053524664047450394853102968401054285177273705655299516067841065170653843261721236011884917905343131584324395289621153271365852529503415799180916794091788246457799795527121628327428838480914961248957448712017368348417781882848005506790721473866981805482678746112279648835812883193256582419393002075340186780145459312731932863002638137113351467026487670010598112080286646572481890925807893823310762184165332537929816124211095481475067515723587050903262565300547150796493081756341577772207185709814532152916335146961291327063143385859351599792822629309076609309304112542065851777814128903783447298896274434622710956996447575335182958521024655211896809580723835755543293850614571728606457577882659833430482233540645946867417417156137177381583078505307997954355154660560878516637240670461887731210746535626778052080299838861987085491045847275887327922804296469595427098906978452982982465839298750061052148672190706566454645408990111931563198896941906645297435753680922867952433311850220934620395509207780613535807055045634032979679466598137682660930100109268962953142719852710864981910556076093340764592681480750926562760904551566376991480684009923847500585011484949119955752560002403171671491570432068305366607974034798143994032667004085698564725421327331918413701237051504173533969889442436241327328105926522774561757887596565164391302829636530917715057117513932565412425154851316361371409523537072984051018001624392563355985030843281487607865573346273255535360532156578097764874325904480968447122483763961814034280983261208107632383133847763535733700196360863856856566278051329966021574582752754597370013994292690694437669569895669632395914840547544998149456250900529009072896836788413218715824906506204265476509541578522792693107704185572253107926422946605144754085769051552527114715824918242513389393787062790852726861518282298646404428928272487297598703409246537951446310175213333872342535898956350923422578031798601379480124019048265487562651502008151242765038199622871955292706917393183247925188507517710687836779318177659951458868712730819057060395160775591031103098895739616544224953773294327651091522497545530955705855993392581677885582879000864121809074461300115601644864411241793254877613997901176634976251855250185626818432080605552122673298673016487357758745053963103031642992446276030902640623191067580804676323806533012867902850774417475585095603375475440409126125893350033583737699386524769589108077438735545806865147141394242977588218593834152504939902181738239925017519691252585462678927012462602700350409772338632949585275575329800699364562621724575051151448980863890984715699598165250611499518802382315767018461876950037755843070357448236991018623429522697254607089493563519154515877950286256315858490629299561745614128225523456953234223019319074794580045574793831643982676019313335565018828849830657493388064232038180118511820913794498162483872460635817260331494615523444443827474695663987984298363968080535715628109002044256624951228521389666823764773586154263860437780484909078719676076970933023262964388890344654981589788133237534694793517767058017162844235384792594177690728713869190870333682291595233372048737169742241873726080931638773994936157244947173689148591858784544790089450734402098326980381896101586639191928197314495128307267693009937556112505769043564669049473386411122423083819217683086224312877518454746215056156287716336752660310616345908396532706412299802133290280847466918605882981493685076175388789576914125794237537860208917980274750841590423080396198901005242334675027323321938268340867915034180980766577218509044783000413704504443396506128722786909051779440704198093061076582454283874101173370727672533333430549648616823257253235987261386850984816596321075976949915106934959023632473553356632050640566249113847430042924223921750209218369376094159360896187624535854652930579750126419241325891508628702746322351607357302738766912983309594820513618851354130608009914410341046246318281773225223326971746139296381659842121880030953157809178908558336010953888242182789331360737745854415943212627770439064193759495908429120912651094304268830572663963002719298440239264894879985186817807544038735695322135751886968871587057878427299089998884352771652529764170110094216904266701065677008858541914565328832500683644184750061947800652146316350890740468273644536010105023860656779080717309275338245856015337733028226597567983228621114862398649995863721832750362982205008675713123924295805500151766644748623181323503661763297576330216997185550216537793029010555834834209716857526217463601627278837623791142203905754319258823748355813185284152594204702771643041299186211908182763876475905142360701151925421923719118949462239862756574093038634318259805247663617853657814668649188669880345477890677567388885866620879306245319674018534905128783263497252555855693463418625109240569009584265011970277301475981868194010356895994564047250497472385510586112278761799120300136942309261809527556037777829794015578202448630754416957687827021356869037243398525486991803803015221482959593386730944437639215990010856245285624690449625388845101024051861034525979256068311062828728967515249863864295113445953295432307869560859017158523976089505612776541553756436102087714092059366498572112116247958162934116614722145874356525299442341856668473968685283934775509171422848463363951095361031604069645423324003606417981368309608992993164562530577359057271537344480009975424865870495717637605153260818533612891495072802043804840419572782643280569902464833236479470495053876993903638156762419921801085593480977485201861134572012927851551579753708456046780557179216635949828172661790643887552238929370501451660280057751660956354847720460930149592681130722506617722824688738830049945521081245106141712444407893354270325992394059412357842014392249688516974119631699825913755678068589567003858888541864293737990316658251697502943326594480661201039402548787794186712177575276084277551738925165429931837737840006883090259254066476487472876304531249531892851100233721712598756227167266600076920273640804021416377652901308433903890265476198414252816896062067330040700671058385688496406451444238662262506476984203810456843293406123990240439831866904863608601282344349652811343583859296806494893204423154184324297750998999347517543541719717312669024439255689620369834855840425645771699342411559461950820730082724146473676679389281656595010682638053915154088324843025065027530516306536196483958770794787517553360155502583676410934629782120691556862787295358844906430638723051409134479148702504977362842193602110650022036452131223082122900172227023296228350277633442561696901669070945809375975513660113102751242636653970687821387027953227121437003666276984372198098044292332518242641128486920956985084775035597979850263970060046846071754802222430294973007612622620797886185905858719131747598892553263686036848454211712452489124131474669645602514392988175283854843887933151119631858205891112109042102004811323128554253336282896852880609356213730601261947609658758236541344471555728889072586266773095460021427474657845013453115621219189522913206575504127855585507930411627761728366174183191040588167837790269170167279358033915536185953404963767950478920903022246912431253668907484936460838312889789539773629179711377820168918435919812348240965308511928291617836115899053767011388837039317600997751323497851698787335559340366287712553424208385103690830589732425947643956678221555175685870584192782735525847531469065661003526382709917878657480213763719842108862572870205275823545026358124167145019145802466731855550461928378379222092994711456264643206301477650690360653372521572553139623675110225271409855561213835117709767819087000165839497258178798149665943628363149710445978808375529707825612925155485630886154902860663060939304296015638449067341053269241042436573817317537118035132244990504651427842759995752280071800529515761024411585309178724971331424712627435906200450453188852136127109613115340063926407300430698860122811062395208108497935804609435161765366377892952947500551929626012238696120059978843327016681088468583833220757685027390424487302319071605887160939204043393160355820412609205961689596572408231106429901275901897303634390582803967619462850531522562993130525593191609714041988686087614678960297495257899529947756819627616246393175011030346229061197310644978391156013134794316668553541660853151996131007317976578279847995838028610874626580613042746553786887000045269278656368645357521475446404922578935166729662677147299783744043293840476581926972906311492074907144704333742848474812958174425591210044682134225282546724692718645313024306583376775942148819902202164934433402834662294017367744260249141774502950145878194182215776208057803979363922362978309045901511218677015342933527171125978966092419758842047236087067872142926854035860191359039133455044034692836646470938884122080771883766318865877405471131527147667156291524584247105168257220456601898773647733969781434686945037015696901585164134129268978775621149889916769201035865705507359303040219893940773727809308455837465504550378970844762489732283277158828975903351596431475613530944385925093331128091713426571550952180874247226143756592740324576706885093407598209905709384668394449809110854782215428815604500962079805565746740751254427081524070536440345920104170226876899382426375400945856504490016412557959376011259812890714266603356972203300186010463166334538659983432587095463646751930343156762037597714652753965976573071742800378168194981183619908727758173024232905660408580442169375743292221708571893706942662377212253542214496700993840613142321201910579300125000962791012014099405766185263517291310310829777125717419208235511984251662156958578897309449502348744212733146116401176451420585382655515800625549323548216104387919334809821297968428124918640098748846116803642430564633015424314253075222236146885246792591833983077309900239517743093239426676958083072809279602989147693112156122823077099415397330632225357974080708509765825325637827297069604139786507740374410473035971391768955577665828813858182322495553351903590262200317742507936597080487787734059244375380808819143940346076756961516982064467854360206981375127354218154133152431371499084414471462536605724745818959126962381535096150590920458933309446111214723877962144208925170581865627087461775509940106167394625292353477789190929425877134348058849182203318571310905031889674565148241653936970004903480390594505428168714146741607996635711563790760175304955312425049054335099678048169621522003218589529042765881303426332700937668208856322875270109209035781462241228881230621385524540166928109718286827544310533454034068208273402561138102577799530929319942166209089592088827136659228198684579837472090941164927024451322852778414432833251058463474569357424077806643508859210897995942623960244628311219647325091409943981456499992757707656248201612433612868250305896605758685827427073589297262453114323039677190056590611612463416908238732418978184226053474298935899636192789028997786647095768179683823580666058795926484693379300933260088769216779297434484819503956951857040345917635483335749274344039037990716817468579641107285335899083742717629592923180913005963118927240022163896287196432860919803250868155504461037418434915188785914347879467156577073281702754653235464804287620004476743472886492448396496288473819044827878235261510683052470676465601104568556104777868800756986714804380481326509584833476871728113755137623444577411342310512882993618891615363669412337720245573655950755387717982980696230954238645873807605066749760851367883897752714172814759312472143512895167179536334767981760754802582237357437445623241071500159156566576616638061577133060545908382632187660326619506415336183801608666286915433710532958660453337992096365708456476552801594817232653944637846480416602928675451942797201060178286979311263794115308374413872171361801469968613653263288396054260660501235201398076284135397594045570158191713733911702647829770378559034162108552917638481411218969844963670467549473517216410348216665316699384338317634235954394026277952975153764938632296061901864230527635791081880716746361740490972795048378775828687686403208928753109727977219871557896217370912154898391392393738048448761154394161352238486814864647983467716243234586266273592082091377800975910933102648419006875547615304893494664263788272245052765119137079731370444397322954814051575330242299447962001362514880514806361231594788427139135335044319219580564706033274600528035941668332596448446919583882036988381230912432181606131051329778057025937354354309222684396202500774154467265581116955842670192443420969356407886997786314127385013830106352413203973752801173737137430607038624785100123583487811954684275906877291524565515224102916633467637944746557938620255771053548513960646610740977987653286182064974082948810405945627537716458739648182349804156986484529292107419049776793749282681452807255352867985437692662529260277237461692091234193100975201053149282155297526965959146089932260906942395307658521957700213912348278043598173837982407221266488155840813919402353459223426307402253770979412211773457543263975249903317111510557576819869561641977080673456660616462674187759698476404787503391720957348180029989106914785321540912874649607480422492225266658881751780864366984326701717173506466791911312835439296534643622675682200574171555830916459361007383659393489457593875721793913877572059261780282097650128613065017318782371762108303828858222753987992512573379624715777856915902448005700275965551247149269458556294596621618166530062761932650232617948624497974535080400380402787902061895198140157170770545054747432473402274877816015329307870398323868400772933234705637741265247776160232104082339611499764411632873040257363212870873548896927194065876321144937834736095337169522057170912468733360336519111428196291317585951778582521422918945942593275769784441168466679427237287403934491983827862059570901828614378291435495288601710327326960440651272850911125207960358026618742024294140483268062928971456736214730449735834000154234867776965034542281225173805350265603006122401188097698918433294218466059914985377381333303753520415429060147028033932043058926576470742952371608667843803761627837943217587554182529449775300497427661164450443852918666621102264638292121415563892605769131031120428451749484102945637312613715240873658246799423389377212296599545338370390264588752953667329281525385019128472565905073338761656926552839284037770024446088525983469777097210107556665333478684183757465963742763776659727254393609660679811509586710430907181968198476706994177761577937357916426247014386978163927321043208167864368561801789785511510560705883173241630484729099729132392131894309656902413904758485485058256521381279816684511647480697522778917780445336921617656566229623199165953773977659761868758090922633092543644510899475416701013422526561810083862984856176088718987025933188353424168995599857745894192054436716792517754040812916680830909322139947823854922753778383808887080064838432214629005362356313442162582408712603874916492016380923473454461582202921745626512645273617064880093493763009902282520430903623802330538480490105192346690322359777474257154835848239683460217246097970501178884660423865432352351328276859276282051090075844697992777181949216873340388439646649763054502989315150592097501769218685738895371940642256403312142081054968958409868386450018188672260514547320145674843612637868425991287152735135137448511465074890921928423853788863542511421377842608371744207137576675123842656798076788339107687036553418994700340091387633909051190148343561230414341169906397862799504881023381427278181744285597982641382440052706358443327081088754976924968492501856298771663791497124096564345181744290577235960218988656705449441888793659216183979527745664010608671124476708923006428711898176192404025259665829277103559911103982122326848732181879684817085420191200523260383154030756993119850718829991469308671574711816471569434089301178619916988544280924578796414992020895194929444329584881121139171729479547637889740631651372829181050780020040505582479313699705002929404209528198859957716443945904116025439574847319502364338573530924330010848336199577123843288060278048659388187172208766949706071774650125890784672309256891694940889680009949857212157369609664564275999928517233140870707101513849061097990948847740251882547126013473202471783701379724722382932247144129258731804497641800840600391727279554579490012487974791328346984145143252380907649133415247035410494966054502237264011450581764070259043140308802395676031306630348687267258897686072648676027560175848087372450341453608383603492229636799083119382907404969971299307605125085866673026721795958345153287429734964487947108956521072494032910960115940613981143376616204534239414655781443828794800888487416359601158327138045599174292794482076171496561715651822490936976187013623610083389711612084878681476673404135999773144226241308183434718338269820982730270061976503055992902909660130085786694352272337186957999044178691721584121730035803069675950681530429890012871978865321799632366593074936054720673092282378339422440256733799033345501906731451204605155270033452539116913677009895555242092043204141394664362770332604371880201347881886737705603703692340493518590329306116938209585535048906247421835437729063638082247528022333243826079191648743858850581337362145672952363266172900446756732214206020287324059392886221279578938837817627770599303048258490220199389521587733010179667655447151881520092319536635247983902648467301244987377996254798630693561150799715856010849603411253065395880667701513785510138270811493454301073253432055931100779308636581145884823980879541776069975543515237350136250309665317134224343229572285281339080508740132452768718835080549220525363098997687618576910156820110963199909182348148547297497325902454575055487525458000637087486047295447302122179621544317013726815069079553417676595776694179932958300885828739063111442400967946815476501751986858324085912265906861321593215664805339304951615649803251791574560915630581807944868885775169546163998805635337595343184623362663554175299556703187048852735764475571163360264346358781949730403201860885701482476104381502275520751923404214876193066235307357298195216640166328963386492671569690389563600209685877409363557893991926737378939056577504126273697022901437965437684869943079256108622846497185926846323737016769060287570567035890117943656259326619381655564308832715516309042193872239723196925991749246530623134499002401638664358895337216777820216691227454132962251880864528360090097315829634134030392595892591767522760414986019968806205595703358856032171120857175126618019926407435842616382038802019209693634811419095164342654152634893735350503540800261069024412550329822299962131349236376565615629840331834348587897303428232027053560019181422590031547447610263070674817361004192721339574364911047726255880755309739809427431433570274174887405075187482301479147661988109569446233771315999440853078748660702764059111046123480536216934815485484199257377946928073654404464901335123858292080539008779353655610437625229543832190484002413366692311806966480042970395429337430851970644728642506397122363501758767144107835289239377817729012942799381270809705665061585012750808576507251651728863438056147828770093954088109073608794365472239660421199908699151006006306153632647016439254394379586812033079074366981401069891933674449007383134910420850684288576559876708748428089160873772475077371222848879574920318790535826963600217905614779186303129340762801279481438429433326071365099263730211278866885757963013794323647350591062088141669583924592496914552094965012663731685510893673166457438024853043895426014208187686094686065905752412192858750831454919229102671237269098572181618409085064187672625882419697814250523882815514623943936463978284133867471015917346566545436935077902644483761215380749101627975233536775363365990955592701321860567752870244316625840297780510591006607430411836955831940233755026519155381005417769060887112909219099117513352250100792859759540557500559944162498196671410801053885621987306417479723838815817333472219078180413740591885802900425416463650237789985931878066081771163562058264070650306771735577887392213033539386789204402196828828746100383886047016127658463474191281977074156733840013672770010449330125367287592816421216773032460624586309002019373215455642461882685718612834502171663305351748643263291947370031845370255184902127054227282085185084072694710431667970570128429412222475787104157142213433689341738640083103610077754471552634259016576048489282963864348665384171152312337797833208347158821522225330557661529181442904535919603393201849277405625833734848273311583838029605356501691721072528694650289269914877529285445967034661129801759200815598365234877775461272174951066617377190322036033559027992883075447127185112781760154153413763545915720636878186480696434082447722486768061088563209535050499561129756539289266696542747135287810100004803261227338937512497398603371148044384916455698511958213680434675865365541267923111299577150119320751942117703861324593500905505821403054548272627447130516566529628047910998094803996360418239339585050472386868424056359673988411767634677298767665580926817256491049378028626535895627860364996465484749497170778474749282084889904927138950800188425164373127663018414785649619294008953662925099042353747528056955427415244850899637224952408802000112468215212756713993810227846111880235759988881665155371659432817680921175259631563378876233663934246505959512723243966445913074668551556960558442198634889362387127168163438495552329717634646595944591553414870900000253674089901781413178348444159894497464608998144141702729558708032768811514761782337134087713962804406502965055482927001418836071199353268032312367854254585920903851648426826666274421933356410047964207829981802261491896697120861694944027170322927242932611570030164447199875159758266847011272264317411635511389105970197167397520317041686035787973430806094517487666676334609332774077968384318975720634503437581064486194313434073810402681583543479275359631120879873390541013871996437355635309237413975089560420899544998307227860589398547993436414607925580342012119357684019892825126631216773589085896748596567073951689630659023922086395410018371825307421374983988963128102283702856830710787646188512928046422531537419544430947058839214369315122410442813472468790270715580209388326277729217480638992527870423973837915027738318114770000011107047611633916602677341309201397848118713808604158961805226730137599567792649466539685684520931007176067944595699888472331756179277099624921610494801224872091392348383242285279277914090681534094743329003223514297326025182389539632358890077030401188082264907181284454555951793158425243133857601830514685424385086674501303691811081934762633493605137449355148648522156216357413121621910499635505578318935432215936201932078319415012591081912215263059555699019559823326395683936158148283788634440961849062688995822305179505179326944811930808797977570892456996914025362593792234175293286015963002359143817289545547339021248152153440996898654940044070106351509620765305319498336906079201509893951726215932248259656477378041029118451390703389244155725434175011734659076940357266113053172349726470534274371929316132098276093888081073049995037976321511452638260404787465191030551297352350092949808181010399478862535687168677878862482767543328101604504948445485720659438743138883923095697753699037301702117820470563808905668492702248524061310687468743417389468926299458658363793176366281484400062708786197017783898697168426155919412912464177829844567811223852146778402659393292552466637937048623544403547875913247005488323094273094288783454222905142327267592496687214230447840081381713086768296230211851301701586261086084752329030234915970704852014073524079043232237523143565842995163339598432790982751896703478519887935809008053994420158058557332807063482125575560591623398377856226049509044217362060790283064319379049436095210943219558993823635679358928281011977099102258469345300071681858423150458609297114396375076392885316105277506918200604420441208315762609134227904004580992310403287636995183080223630807879112304054497246110919575030039283146839321161618633217747216595934319526737942110725915720991896985107893499118044523570562489887654570586538573419297507059435333622959375005547760037010839648145347908611681747820093355628582887252908913381199418792923305058669541802955766432389403922878596288989052311606659894344827480652279962014879817249914362401496630895674845072400547599194642572578768790805288438690598383795456608678481037410346438699941020298174651537928199216370977595435570376375548962497722404151854554738111934871278425494693574833473592895764300285935037083608249690516969092082401948075097976680587859939055453986827898717846017809068641748396115643747421484225697628622109512867099152021433363040950810952653146312469334217807791844169400151074413897369976087621953617588890843180046548613011729354704809538272011970125771420426488837293040827801746531228239351679588083008430349116589173219051907151554836971638580015752540674866464888735915775943426131324152306733444515333088326504563250718136488649580608208347426942863218854369519135787744181011350042978324727828660782958186226249857575152995484430272173684447693297357350464483859053961903586998771627414200106706744205745934443790663943870223615738886263311905247999686980012398310965368056669218007338684667035150830977728711728365953286985575875080547166647333238397959773539162151100974574216277809721528562207948415186637442192033179449293031867188630924062577764310759082314028996601126727757490291065584751052644148735609536146581437855535561144929227135066146484666464581193472456214677043430038688644946742134723723958524164904001742219737286985641476695264491395894144288104293385131751133408154013482736644882278030572433471529206398784496923546757763770064079800965616216161340254858572539305912316750884410589056143710851299349863304557659526729128233257065835758628096463284908120426042095498009200225599399935887492329223913842542862500591690100275350284606926540125173355870675670827484784092224505467822361958775607849569906480770454451635938761377435917996230638380449750728539937026653244368826752480823960127574691317798666183452658070720747688996710161162280545167777221502748281534526604456517932419754885116368355435918543604147190168082355316446879354629380570019395264162144693871165191479267627931070489963030982459700221052414055459737992126056165044427672048464327206735318170095409050284230608188839564025146365909993819032976771095234923307392691113237158444355605478956121991506219866200680508529910901344756131140075206797493488089905027146972685749758157229536743047303530370474527666225401671084395287010270369412291543539672577970617517709524463155539697200574682325208163589445824344140695430804605515125074063335488180018710207593874701394295240981434931151297091347783666142281668195467306573937249975211501901822642673202409406129104198045566708165638078814141075437450102246137545034904744259178243935127754118552352080977838558223050304087386443519700110649941155796712478999862539552421791221454444119879475608227876071436879407188552221599613084901713440525162868390486147573031319041523559178465180105084590522860492878020250306118844192979898893003185157103865559686148158481653356041226485494192299093347972216511634939610760556260587575156003526638193876674395030499583673044585871259822268068576341848930477422795118411144370278377676839290875128403808234586742115575163715991207753334692416332864036753805316924384973147091063479512077252726099271890523288777630900236958123911802097377606751880737155679086231615906790466252462135036561070680439385292710642923518569092070737127261862321169135576901833669130676294409236961887435410861213694662385765688688995328023279299694182100293823279073682037312145751854707539415547759426229912919166669673638302235186006897374390972543629365445561258202000297751747660668349026607626659092218037614185977159607844546004056930392778976582747448840814007919349918407780720459780915291745066396280398326139427094328562360293866153062542903947297740428757422719125074982115985718443005019305475102151856687519160546231160049714294283875875990945577618557831225824032859500286508442756233967090817904295284490453821995659341748586441639574007891256047351152350845029546319406265428220997270419587568207494580256052662828518691650076395457912465001411995642015244874141300309918430017961121427103021432193552481374444560499723747074527266784915566092551862302570247887415985881892757470322853572205799173269138196013954813313472724209871245929274466395446889898812068819583320624264439977405561725667818271575064805394697593866235702824253636306748889462507639618642032246357708174343010389342421178529887137239710006045462114730620852451881919022374175379298840449678914500725519530033976546645343905751893241869130735353287438113573776963810499276132256284058143285025160775288884835233763363277762646416817104953847449310448684028282301187594674910106125125538411741759482226401738053005967828652076819073243760586432772804441431342867443533890466322601467997521104045618548670930868737125772054611117268694002233632888710562685096837497757886657577210752339185379162233328429589728357991350682778790529272130862414182321114652910518366107947146514490545195821120208557204037447988515252030320559886826141645268589483503489202923816204981660805388931436962674861629403762288400785591659151581671639099767452306224190904661488664054609246185247487296316869819390214599698360832762418802400821369659710830129173575493806784570617971457301300655136262900586914871612197497723991247545702441087661719129146070066465340453865475455502458421158723179788209949198060270740651844201071978604449012472732110022730794651559433775169107061442914380821741906113263575137714949396526831036651868149788203240660505773704462693239325286429489102892476335262121996101938523932945725020923952806169923498315462671629520316483516541650247345644555261915931162682161151119011038458715431456543172207807780823064876709932569371153868906849191074313580698670887771355172361890703385807187757890772731424364667542972730590594450049147640360710726250871024631327026369565888302477777976379350743676368657522621288812807110141167021153362933343493756969477066521749402100633653303692965901620847893231117186826685602979065849249290007790616349857513955288154375282089009889891052946437937052001211679433777084009782706861880490764577603887769157154981803392869406468155290305508070304025623512965326626981157726522594935315329853749413680966095518649834697316770351645088953128055205927903487987964744593309833750699528941777072968945765779844904407454167060228409609428194159840871389379272228778224485011378079392282857461494909124535416983163018628048899491455215917212260182551270323465992379581714688922418040121882309281798669719957519114118516882279759156816688713457977217595127287516944343452959572687904039003603036022367178727015873548187815684311198826673438066543822294611702414553658950385138894987178863354462998601234933295225440320732272517097899536914134465379135922851207692062329426995759013494386890029013657572067544500653836667042175952234874446836523337759319143788301561382447083732084306094078576205175674317198117324076043197128208825554948882614723759763068328666888446341446013975895319016650549237108475680666219120810721592576860054210901726956997553863924693681219741176186677508038346735346984740806365431448831112869066474644167930059052627740563375970256636297467912057126340085127285365003605423107216801376757319992788533228027892168119002686003884331301773098986834041764388488456688333090872442293318904628893330742285844273657113711861150686886161523660598519968523511529251569597348174907622308137308594287117779824544329578227130541524711351011989752933986320005127840684202916795424629198630965752068639667174524924601430455459603630326067923194474824185156699825651490213429778117190365100963104861166371790288887685609943190564645823467574009995518747714410374023995398071781778984878954992296347932422207223553795672050201242243929262488492758804518639864283615518098064720256394325791599537717436128614654517925721861524408292079090324991215017139949181003149931623131078473170035526068795329076694958983551036485502356848147355456658091523214911476859327563003250743660508956722943016128518658730535264681439606982319242603036340264154396262292948950080428738391435740951484098202016210452320876538601188183048057651301826877686701953654483957089486454610323834554909179208738461213787769829601529620358028841635478832788333914378164458524843904066700053265303324523354361012202098150149464510286430203583752953275037078624376204959819835868588086893928975958253598043786790000874120930583190112753539971363210506682441647055135240014123150830015341026722500372474283589744836883207116820367955454884117626017669383671927169162652632829732647131511131610625796701672176756526041565665383544359870100434212617590983715830677636899485436545032804607317554954982158755949483924966441942605158249730355883005807985556256759018330219454884387505404468686263144614251871175946205328284815882267073374202679329156910061794296264784972186826857656551374572806120612074034241399570552557786434090570833625025473549660044493514799224838070026770057107128824896652952595495575825023813747273825146253099101877699263444952500523932575238681284668379046878665744874457959968732465896049977347041390285477438818301545883997085327030951460652978733247742268451601782612812432612420741167806064094632691517706953487291714476762527791462785174468697550126210267154506235614698010506261984372274214939144430637247565440916550004908309197390010406073405831613761198162723554395775217131639106128426668565941180191730968209817776031276068725136196305750494089748087608410304026344799941454786832482071359240381753125084098449652803577428561726186815462661577213841527187451944010156887032034458801880167217307794734777440467584725344903788003150919269963371474928839934576960389388849807078639683701992268045102792647163938119894995662595682782197909111430562255908539162886528354376262768397156607106718311202488893007637117227833144569480757565096431550212885514904510915658019244440413920817389151611110217043968869140870489299331907372788890328589863128858459282362412925724914783318345991085157306896882794602146963462631099288544706151884177429368135796093655905149543265795821997932656110892860666899494924586201474637473263760823871913567623527700220046878064064063329570977907946418433488488270184013414582789934097036757514206622931835432787772640835892421130917321710913164984596508960121605475901389895125401294980269223292226974115541037404196889291261965451068895753112008413225653248126530552238481395714281137875736043944144495347289112210277861042012889684941779051309191473621204698168393927646342808988318315711854961769583839144376963120367928970443555459999389421500731221569434842154645765765009301104119680709332727506118466898303183496968745708951516140333099624265925087159591358463322244271005176162816438342569166687323947916829454775668166095232554322202594119232559070130923753292881876509184248455270807678374418741579241177639142581253484180379428006397026247917705606580185347856881857805270536470042163268863981796441924740569885904571162387167211662743875837133991423742578613001867013435915719621366010282748034412285481917642405865011543901133356761326472971930283430934988034144190824152388633849629634262106425964733508213536246600314760579891828029555174049543733059736489385648268844903963348431901748734704480464510777031518036957560878514450227756034941553309614918920604112910338333237913789335404113495181813528564254809315715225807358580627401638729345899319948005474833460522784585451996774758291407504261268706733322494017673583073667917351915892292609518214871131897459675435175637512195319090074696174692885661977268858133036327658830802964801966196585382380394568255454661113677165637288420873507335401146888664565063661313865161895456723653094418813976650256981240206837344204265538981075479679015376466824955421807773309378105297590887769283261639293064220099333883120875451964252847111974927734171977143572321424420795874715688221787580948192205390915765430743233008762319347541066408325079477183325476897862201111857045358746114974807208984786192395200381316228602070221003910730182810835209553889064763414788581700227340652657276365084147602905921055233861393051298162446894487279984230223355860959271214792164727947275650163530385140670599467688128393988395550987798424304788906647028994958230268391507370376175693357766698089861851170112801127373488772540544090006296022627633932218594304894775667087892327854594754107827095816824260085436821814649235444040852158571448997843794772675225008659569085765757654341531043916635986859868104948252654620624548112857586482053308718053061452164907491870615798033974292966021004947970395508396552828731774795388551632477217148892130220561266512561612141390104601836570347300445475409388255195236982629577448303072091127578299385194751909081151671932835788397558230566333967722127286687904592571964658852596208189101143447397541866235832003637620142549844554462849075860917576386790938061052867837050154726514657101402135874449237670587853826786138412986709571894102176012768950504630626876118203475134801816409472156839868449665998151829222597134914615041010446200988539059400276290383520305843235799599790541282813371945117698222242018275184776360887260904112930093720627440880383960995192382503092271335798117454109508294075372352528803861127457836496256806393932854486267823045628719174030385655195007050806464861127938620349863931514044055614583966792201578253118638942671785872674207576081932532777317959473391307087397387199800403594049493713943415273658682876699590836192814999244344858222890031053606932658806261257592968678250067595564602513360145149938715699861491176878845415900727847853877805205957618161375542969392739947681409942082511403257969378829647426656741033662063263626037041525780647474916315089000789524098725621078860466413287029027759484512547700930976574152792554309136129431517202579318912933978881999654375213357207052138110810006400461343876077427516437678844385609699166817301273440566697764555438519465191403254998969238008599598094234863774862580996103225330457007106166609704550455953981820577499462964508809327214454061695950504518524919874639866971203977196433045782984428166209483713684180644023131297090678719651177010478033319026320605577539549516126958748682265334165585115645718554578584175985114791076944382686462494338300048066694822331410336024648495041299964745337253166011172774773028966490579204916682260100390070689806140876200689982534458648923979788353259959556652957728796089761845726791756255852809148751589665746097047020421218312296062724428785918022843189787219902867467781363594995892128483131027591981342711845729282671611175447361984354888522484276480058735946649260976658938714079566066728204018857598483593542621686191504661635535257879370753143769320539793472846118646508676665913421164443192952313349722884429660404519901281437727458034330543994340600110182486077942961556724107074828095845905740519631129817326592865468461699447826242778279308249653442732803378167836506148775610541929245632399318750287150653739069630046916501840355847427511002330845955861007508166900784110889914589628102234129206773036499846312216683939512213297911938136348828580397898927994984022895998463789440098660841560628312200952224002834075901371687735224791040419131734680676756872575174589370858726524085046656366484707193840410425610090781111449659495720981477893517156626935335881748047065916916700665508274634671691211187678887173404396646101316007644081912979338528637756466324624609189617888829110046209340001019978127170819449927288929231646002251965314389353617528503907971577438934182224253205400167535044784157016130361605108445143207270404566104795471704746691232528739984579478787702763079563996629742633329761394960547431210122321072704962604824978102544674412826293787836235040397386894263153122893482853250922938244221509053617534416361220434724243783687457684421186081028397071435261066586749220543365040338655927990189595134317847853295798112035925450376076872754830755477346345570393621588213727195802877662034823690039633993518873970491633133010130551099189505370121868241014748517955216051720518575753658943126578329587313689264276663012201454087419510847263921691513977916910482423218554603774340604624595046864724742691112833788688649092511450021635339630409598128835028820391292298356852383547321292080792861446516433554549774749738665598385458851757463973004234228702033751187956948347597881408019281181743540340406197615505329001952989088149416312582092767021613864216220431711129600936586923583646858594841252498978340933394137407595633682662549893977113017578125718992729926809443638280401995182106548964127561450910035240576713122003757608555228302958361097565800530733967097615374171936574630214522970889798547342452660643559166842849525032755851975249552204695043161513123375218011466096809725676506009566266411899421011028951293950679887271063202676491631257456972585141676098203032623937856049656615999924538073963316721874908875856292711681094974605782712584728265026156426943415705879761217534270344447854420832693333883275404465656550369845798842420414408152441658901643758801629932403832970176262790880675111234067690033471783096750462038225068826562399958780384152815213828444675469918214730712742355530816169858262286902402039320604125024083514436298482028375133893871759699865161174324138865379703050167744237144467198813456359386208232186244518519102447357967961648787895857839347911556578638715237747108071905720041005598642152989773172086933239456508499182170815536333762644247160567097884931632021184991173134547220056087322040608211049794970956215858715690676049126417129819657235851564819471063653519744176799591318796701382200421697617867188922422718611091842251412845470109794955685159127283728914903425771285389368875145575627452735915691592297836540682944536268103821104024533060580572746915360431160865957317672423820162586851014427412431436061692168768051506962519003131192016973190208941677681017286974457227152398409627083207708650348612085635688438910780586985733196365978094771480956846953281710740695393895961452523733047634505393393783478056049198297322027708074561866573087788297080279039425732477617273048306532732570151544587295141867520485613190063399818435484511781651207179386450708904060189834096419279157425051795389671021175633960977878332210054254466335523185141077764378016399604505191332489756288518641745833975114009261430435150246529856273770404048032810007095002986863768149287016001912209700259060932942544282950819935188014883750875885704745578536220402325318592744870723529639167556505749373320522938742973712866625332186905858446873335405525842643133566340035256080005180543650939602380980914674770126284407119062052751803492977334030994763393308754192978164825319244168619399562776413433260477368996095354593052086200747880501222888339097683665189845180852223124759579398068184206145613928406004160776622810969776443803166121156474691101124689817727321586666504798413259044823509898352644029230912876980995359884472276824002081363860825067020286220771743055941818981263215009046299248134547273724733453941754469352033557585097309545035556758345494050541177748240296711174129180817589485232494640472577214081173443755297112693516567265733059280589945667066496829235838188653522538961924799934457179524177838410041271669716359493178273418576052395762675767886155582861325719756317575570552399544360122787176052223572107324932720462198135124781042021237888760473644993814598946080663840754304903846070648405435315161576658874723218281254494444849159979398984480739127741183666825144918571853570647790793929770380002881327590169736564584662114863081175343622200137343806393410056898065362273727337591389915548289635013612781329662570458607216200867289762835810682424309562674203315389919611906933078018274020071106130132056139709727118677817498751346977390180688112272559489610697830627815882743961581631092157939499821965548588191521961695628228801481673804918309051784386377488703880897654719896401677363199622934574527578126557516541407618309334067170092776825599878219335777585583665438066115251837382566243190072225536348632735814134326092383428771582460605105013303731672066680655388261707710176555632453039896779635700766141947515821314610898897646356553287527721087092456650071743738690226736177514863659439133952708312133369114808492253024780246648350716207181637801899937028756669627052040189791179668136739626949929866140954256276716509255130854721519605776776683429211551852498028617269572354237179995683028164300497531114298816343274287356885780699409316472759759569893033495421203081137208682379083747118915378094147430428899352524738065615848009299066246875941344477193496507303496929573287678740121511875519716006569827687610138178700416628478778910628299449438541463575231036521223493406586956037065026840495188360701130674623709743000547499758915961241178052389830780146463900845763744962860654115824515075833692174717142613414432743965823475424893594861050440699693325473107792564730791876049026529431424867221176920805204128220081867739808198818498712061578173388160321475845312246390882054699833253166735025817746825039915144222220219655094367098102549786137155243235055437176574241261683146757355809736330502269181793066846368041954778047413698673175977469648084980224874077466051248563730827152138817734311489236531371846355878931245691126893968999376681650196730609300803695002236814184758408351531690883000227480434724510260404601629620400565956599906156608855004189997799018602111504667922135842590637791354332160021678196145873089373662953617502405478946632691089332258206528994763143830846076847751033496786372349426903024046436913316518890635323310028609476341041174035253617447748409785536782112184283590713774761829363256095952297078511307160220812880147376670474826891094645820301628483391760226524599969952386343613236329902198743009682479275494288523926225336872181952883516566225425150024034085672649471822954350131801672171058107535383775967564033461991463669351074464102603031558762845471311679539860952739069256155888619458866209254991003224968565219870654197661482466288419598584985273976109058333061419054897022984617636754429307393775533296572220728161727888592557257939802539888083929018555067180229828750660232717984345548856979411290816107798400707190124264864117033225042247765369942772337517292590255468730630060479272549748890671990738554615324587173321008666377594983577660544796137870296872951574522598764016835523177983148608073987377714279036752936049701892300866128442796806242902679948282156240887811147422156170546203327650478148974669427770694213787219480987840250362992220570494078808920520684039226912560708647334195391940363218978664577332273880944412398044439100226800364730786096596635535136146318773554004537018008790987078759262882504787950977600426408066774084883652353499954023491942687119310220967821612185759177921147974520199804132817596091415136038388027438343439811407460946072679714956959924280619612388745196448497249203410671015609939554841789971463143580232016538013197629470823498077164512984024101666093990713608551776318224876345387799856579095755253349543657115048562884324404974701238990827650690613927193809468840148763948997672711735911417724202142696292507889721641346893547229836091706552748096108125940370560082225932919231457878307964150009805695954810154958121625545385184943746966321909751007403279017059543660243813663765554995849099723120305575950815586457452408913987957649873038597237443831194598862676607425698164809024084333103975059189033711370458468986812639345159263181187824033220571204917460892189702374622238153559461142469230654473980605524157064886885718828656905684760697110668945692415970208598834398339112787317479158316862506003595472513693312996654667441613018762607317893200327981344014520693134353080396873578738263838550389890010417301870794442723054071692877364069913402199553712636847309541753833397337422503914550279047938188753599833226313105942864492399303489246471850354018321956309258659216154369260637762338394591752241981162714575609189047026905785671603658386424055115493480492413705731288143118264506631297434301246709179856598882066825084164229363685382615439833764304489932861995763611499622065971868209811904797310445719621349547247737495181295209917305173766899448382601709612549505068564948075603298204273067359647599597919129379583914414927115452030410128814767458531397528138285186123470559782961198911074822998358767832816229771930614676034547004853976759404593044144183812105060410164979709988874752204412979243801688289892226399390783408054746169007511765609492977445633301372314673766107561612984621972979124671825155721185699455002788003777073165840130389978194078941591888184477695171802699783466683422167447427711305168635687902699224067596758116329991244726642744392938501707931363300855780111754111625872415403982006787233773085756537835756779944462858417630199539333396221030190829062723240476341819686825840923322084323213036545200574456547372929846362550080428813308333220698757274909417737496724037431222051515778376733625278835703608965707924191766995932656077882563472826817469276453611204180879927994294451629650586159460333103429128045885816692026779482982716893928951267389504388985356826828957204704401578784436045189102781749354032852501251081553836926259949327715229560773692833377028295465663930863378066549544505524777402138168099233304713157420069087836374107109569121718987136429578311717217663765238273630166804765751049499035962073113620996748752275907409767023484470426046284455907119589325048643347098138635499095435714352623502698775772877915021707530557363462825563298576427939041269784191144019785798367273913203041590893918111847696926915630465813434849206991368654692829281191374833620080123648143198748538997274789764646511044630424739443914773943893805180528972080547944913310777920914655551337288336694372390397014198952370045613797015215438571756031758211469790960468472347700771133236592432632782166490139009310522296887338193321576008103207897712983383615101862981441028280885626647365898174178809281179614110545180163893395793508665792478167877227416966567592726706964670709141778997644686494794891113449849333169024667596170178635491021076788551751452766218241747325428804706551709105637969864457599186880068625087306798543335517660695475395227325545548478240864264348098292215779899084525470409487464626606256849720265807117526288584536026683621138010143387387178947633773461964126507436742180691743957246317133138386768749649645024457647994018998555394254516134401219661640182669722349246963344502824528096852280739490448464520057236071605011741186363788684125272894888750946471521575921769314480759980476582997668908688995149693037319321279618502423075168097618030517077087494522728614565465410210349928318012891496463638299367851414477591407484522487166095053780147131847816509557388746917559032396778887287068414866552351855259317686800299185392623774876813968151407501418883680835790094865884428437541617970402516063397693488596106280196188081674844050707600416367813638053005213407920554723861498468780993933471720962563343041336360998462825524779078088852290517077386054949272223404331541074453401629527864357417198985256781700893508111385963588732460948753006011276271390268173544896260148741614274473897833565365008291996592358593419415149952673512275905904081782836624733085403816392929452098075774414668235258453970864357066853886243123738866549111265101156036893252756792160564065226328897267620180251349835581421864025781662138708917094714249935835343792342501213852177741429235666259712625363208786036529905652750542345894566930287918252502977217578979167717490588942520151620541256088831240474723132172982115682355806606247205317749893297032055244759356663283997714326741546641771469627536686690058264568354850325614262552907584496579639179444338337778743366013475558217471856271321008036420981070822444627757882892968728434761728016113572276576919797972674980733551209323512577875967180548953362314178089021676550370349022249792824939390306747255507845945761738107290937030618505896941676951991970919410805530508591752091985951196579080603087539947802991310268975594956806446693928237282454323518371054713962440327089270685441496815389419756372868380414631897715189347391108889644123924021818415183189046075920375426892718165243525007032727228010995959759819013131373503440953369478512578722618419566699649936847116626109142581898281996121298904105181291461890152351817195084768572269332633728235425520944000878609030830840990251846297445476075947891838656849395763972102150601715172532299056264774629504602330291922892077150747346594483712730206416078029521370971713551786482379296054978167537210286978449124989544387156282265291621826004579324758838196425661132629416584540476822317853912664202560641385625868358103464134778515010011881729639963465742142979178184097772110655376753732570348765853628636901588387498083485076660932247774347695571874148473000475127836299375700828218251853046548239947168319312314098528612068792950910181290324723864870895020776154873881670495808471620467287180871838851714378149689286937707256958094943363549096817008164487247793190857354141931946490897054770781515032818622953525661336063064345821368692717482728583025735100976241226636416509390750051545526291859660124585806003100022733708726151649522755621057711974925672233782307906330413578219915856185471089893916809361877740136616077726449667733099818149300337076530385814564364588827527767463686307210405602661762780940666729799203043040557568998526354121324103493623047394294112526670462604497877225407361543957278500169970733564852350023420713507802521189369438327403652127916690690709000355647422819710119505406849328569243975918579399826809479050461802887976912087237262464696728362840608430178203638409713550735142162733214732171504684964204284062986091124996640414654436871541490146986329630218188445268811736377313580349319729152199434911744321748750775566482469795840884598817576011197647529073475802166524657749416236531067386637622698573639295861301975471388399924173128642590920520074944307989068938696567701927513881721315175605994830817441840299609267402113967121365377253767875212225616644642701128343271581169222250765411443367957090160543506282538300735828985640727252999945615593534491724867459723972253227650129471308692837988204069373023241153425001498198510475926212982848941259405617183873089747679659509309814121594179724844967389768315217486985688756051432185092737181482639612619281705268515391394900038590350648756040827287830513177929884379816879921272232821953397101703970269457725877109178423270833909199930989510438630600935154386129042168639760818656354149083832468039167323540779348876558869255996396420101720612487918759640339783454762005298997348009920668709925670858924255204138525826719012383068534320339781896761577572544321807966117669048820778380166462387266805301950331561493626784171532180320216318361318490834863300502175240679244840464088612466492261638988791040442550048106363722136759534733668980663084048917576125493814662000317673081598049135197421617171615006351580461469862674260255389997364432661495302792408738450388354146020242707946104883006562499211951466239511926237595665029358691940083242135888539007177119053973402100949901530804729979115352536070914543810117711962267675193344660119148631320257155857025367153206597492727039281474487092649962272019733511988453277941952704126358158545076405196190913219508447595411221140209052276320433806342338583188906346197149453989581429530482578205604675393740540703585099603773806529173187803471112439145429813230501565767392461935250221886905004816972578659564107057441711699752664798330116761169220710295600612294309802349670195197585130632668329012019102611222199331250952473888958085803970337043788354142918586256370874765794398178516065359715955549096774052356766530394300179379215912291747842560389600875440773023161806871957617050565599742188252266746680188559638462022195915135318361509816803615361141296991962251367147500598052906142546013064325770224228362740020394596605612211516001641515946919324165985039789360473655002046615791691670565571994011988954397254459272870352288684806323422099535137607375554158584188613428820459428140248315040354453819581836646673138896069699188423718190743414315808106633482082023258725061144243598751418223778926512984799623037290446335009748651666673589796710005583776902661149707389259185033521690519009116621607947510519264226385825232562677101736341649096069427236548154110364869806489397081792424990103303194117028617720309001336281308346046196848731637404929060061627829879587754450962492487583532709428419081926053951956999709643089589991647282979810217741654846662947543730690787212379288515153630880503527712767419295977079358244078029595630443303598883716543770403658680502143576997723542149996458681650746692299261542391367076009128613070973323651057307817688850071838234642292884730888554973530744960056618220439327512980299297714272143727203045880406861225739309269020756249623642566822979731213408839069516643802746228530215570443632395912955959239882248991618622980881486709822455122061580975512997151505939006101421300580498137488593035118672857359539356600202333350455514567011868904406220848525163641044153884983776138236767065159720473414629096767573427801637679113176875171691289091118494065709986742992708928290778199772769053725110422554011423022576195904031379475671761437683238972482379357485965419079885348369029413910159397733464362457975630120289782960339620856252402240859576195266141837012511712992932956656226921419370020195614727805472966205911530032046817197052769758430189006890133680653361592087999677440541397128107310481141172933827597165263115930043000068462468902625218586603336682955038036456963126732834299887913945625222204903697520087836306327540122962361843402293162598029412900346714889503550939132937217842317925095573861887560388167058299046155401450746873678820150314031825948567719623841042088074144704558347150194478782357939924784276983266087210647196140616461305619048248777758689941488883687157454950783299698673257705602629614723629602178924075260940177670817101645705418595836749068394414384184737099987563585038603326966722101903734126285965237016732309678298472493653918520448777695279453730627191973875443329130806222377862460462115439672703852826507779814215910859870477568653595100030443532462121263471920826665727965727457093428453937277727094202443359873091298985086170593230959523386484085348485892464118674501803725484719612927473227915316484607315314734781500325608024725944256455108811068145383882289879392828152551610271924340605145488438450943651063182225860232311244251914798937530815440266131949848061041345430693119442549546585019504709880102810156609173408909732339237897643688885999054442164482094730246946548967754085222071026467786235959275250995267743965249605424801996504213917759220817689072514456887473291826040325920105519623156447634832911450305590670561723084623606446913621311100356424069640593959159631745728732694414838380787611402502489659055765166751781231292223797550818830821892615562932076645013748117187877443387969042814578439078210452069190459988587693714632960918565516390937097355927349052899301148938997866305402196756112620319457926273787788610725514260145736126821701490706058232261942436653160907999533278774504438880393528002276750244064864902228169972895230101699484191298940209464754333216444805075238312104730716477558789146163554625651002435861588723381369377945381525704801317639027618989389856426635835923743085845897354310406828736225726332754525478554688237620291544842202446106688245254786697989820778494854919474653190669610631833853346312645280700619267719258861357143870586654211872453082148908231758204844899677723482077549477777608461270468778196879071268194197120926546078432779350909113259951542172261563978930525846113427010656153225193485491565225949577894524507627566533775027355582273313609692841840730347529493180868048912947309941002629141336364411083465530900944319648782089813793898040870406121951089394446243990564962158035771181744355904234047970375212632245034234308360525670795309873814668794616275209895470031308357085596660867330351801447390029162482131802556795749147005632932638669745993200751909954468468392535749604646494162522094542406249087396967885527470273233422781420771054909292341626515016757557679021408386315092456168146719663502338478756809126240927796704256025543340256555067353400686142083507620549370404531159621787855838100974892125190104163639616099104388917779013787173675804057562670628059087455544193182759574381249957660380557492471609791952553497863870251862261715079381891886115277001911217210581049963316436325974865399049993206329672411049494453145928907581392456227290457730385496746437933375340323822279031694042204699634722714541040322879394890092631387537466102501324190807828962730544724017314485289089458779035850665425757320835930243330120869100454418842143542182839364270361717608894795308835600233723444508818071600403222255270921265021742251896662378315996493153475861367856058887555934370476623787207443287863684041442595118975058239612263301457127358725433965138411288650276788980804963776857951569400817517961680014354439815234596656213088574274981828983188524625009773955239341114555710928290634977696289437167151479580720419259107288152797078427957098376353454794993243845443886092761368076646319627633362187947069076560187674229216189466791410145697710654363525886477234164274497768165869027438415795312149591253595688220470297627364624001449948695114022317879371298639570281817816668933927405082017821215349972711939825795069184936330507739365999109507655727542260917989184948270697262083527875007919100729533969404913996360648833400607159030668953542158146555142815168596498326498640839214945375443816526968774047895584621132222153725305472755525587012663167588277371824761364795350655766680791557820018099930941148614917103096786572013160466840032394443315780884443121296047783614415390831645567484918431509898878614029878582261563924444001177557973860946221436023225463593503807596547379750169245650440313772037065506628167302617796984616772555081556354146142269300900103878947657963674556316542490480344850202237224138093924082973365943556738243706217203179140153304580299596210920071245933282102610291784748802266574806816311553090911236234204952745945755112379545506045167472321896577398534774570567400227054288469108194565217459403242396842017546039178419943541434047937008099914159882302318816102985717764990490243402575335391768297225271989009861575891173048922511878542576060606906747692699777813964349395023585311602477481961859956128932706662286246470523801102585541169012431352898914701472938745631544427426342056565668001299821424612455023903097588506882799786347466186241828082289504612350816523803550363787934990077188709738063616028854623057267540421095700440605362215548560362031105460159674919999659516326485001747992988082507080381743790472963372121086764959498291641793235655336003836083593952189600853519400747337143470938125497923403438783323416311648326787409344816854486190954795589979334809286995367017198018808932847342769071020953502175823809244979426848607414066997501479378333166485300380434732450269697863063721169898425939372867880687970728094692765096346175954074981867037947437542856267069215916287830062551517601476788430890819979862884568749928732439172233742621854863145832865187645872873753531373222349187988067685727276852514961694320137645223263485767839909223900175753629175737770978667956455874348233056898522580784922495068624253073266484620845092154217630606586199275533930630277844590809820762073657449160393393017080230818658844926891314598108820544822611980186507314336687365000526026902202557307850091492674390357213563402108269879227318425746991787890039974529107431872110393056809755485692729096352778329706300673325833962111166761743300881003946588144964548657814641311112841575329880354131524727533811598483540370228201671962251309234380378594615576366591964121970009471104922654009885137238553933816843135811444317958400718812750019004947500481939162764851031064098025505269446237069167175868782848748651537657688470061009807944243582268881010690909099508168482472421106124653101878297710627561812556504175706869150873482049694182058683751690990527000016123744140377072933228818693440766305889614379202629768712863589542444545337889481212445360866624916941208780563499446741673970865374326419620890906057180485373807295184735566013218570076433405482586123954005127539628364040641099859109150784990071336668928668805578845940446468095952265278086932070614580031880620967834462391620771320547767946307599845173635200294020691145197409147360206924119436679232438749415902519963621666241196401101198067628895445706797718101068317443606048910848794242321842512898577005464314366901337698218925450524657750124238517368352881962692535650258765153884356207515647491294158216908624356603272570607933400680647703873293291724918047726945435718601727744122190066877668240366133581511264366374027065099633130053210394108810737913046856278896172881603583360273526313530226057346102447871215929480058748460998778407555456898418169190215968558702418108874497665718321313073646371668412535094819493380965957412441362793041236098366962185728582945326402923158634721191208071068359638622161075928951227933466021738473463115414366282317596238372152033227958286860563546925215818245020687436723529314637947615921676060614674373252512253935504444761494011235367922513250106865901288442029772729177471655333073064811806926594040216526753721376774717196460859402060955674546252737941317058926821355106658379351883328380165422056151812475860234200084098739017065371015189560523575887639885954365407186437582833255341947451124331842556838065053906983444280924727807822370188892134423974468726752206972399586289747720280421756647580201599484074461368715398680266874616767082188354767150784867477340346129344008445315555515291129641372437493885602319034245025700372118888520295065338101451188322477935518715161720831377448077071669409858494094290911986077703554059232024290333842388713002939042795475085233926816890628264797707719642300691285452577403560444760662138115506571298216462439471443681437961450669098305089122709327599955020847304361939686243749782500763378269768157697963842790092934126992213088393310928611238384144246647739013144457976025998663921193245690741145122328569751578842129295649244651932259264282159856288000431706595534671564664139974916391630121547778963868693191705397371968620002401475444745441411079813016785081567194160013551476816291936472507976714358508657980641032704963867825560535327580615605269881200836122845187682009377462233820633252225756322678341118639009752326316261017611128473928776895932182303710174103311978899297770483318065769823772430550925237356616841759045294326741589097119912565840277962726957704752297318118763431246846885365176218961113204627902791065392446850788135656970694726960401209426072395493853583777387604193721668781723427139032726087709678441929290933577098717924036240867680491634239414812749474993484602959476131978408554592677432639155787873818817947603583194400770828922270677082477363604754417526446671469078947861773937965040166256268447736344855566465856413656751022442496129472853860412134320409732531747934478699185854364018439124635216489898467560991305868968680398446835829530379454526586493098627377746819335994445807451586763097393461058558219867031357284051394598032995436480783776845757169737127229509109938665453440504682513817891684586969632444374742730474290766843182647361976031572204814437872005101594266866120503815927426639714733168736142064030541945890748648412567155381469009126152614958773904367186008724445871216270331266769540389986334648839352190568733403388878860661707815682206023838240251424399575941470816866467370829688143403680070370895784028877651430526231871518107133590962633685041255814672246531736123598016759329252178442979963951438996245728109191330501424149154929045225721963795368113800862380382934417432792293340393399446613219711166594457496867366355044351205057197669389877648087496836883535913072114151299901507350075282057111840431857854940110505273623959541641987472277645975339208671610487712156317745612675938059450378824716750912190664543196001260610041047665967957396230273281084557604063852467909880707785948107998982861730663047818628304488748910500463787479574226069622526512509079734853282880357221035672850909888113771319195517881848263968972514628186588157522737914589957586797205298031880586798083231360124828597803349681415019181976345649708115161075289704928849184540140244544899221881776674751530108194970976534646540328199482572584628632963938122559990540730166620992873904009844144403840982893421533361640399126214493613634179489252074691957924618491316444691709750197089576294244167283346412252693838274447731456117279849302512608921416790165947379105518573298387267672642282447557568990833753497693575269137448492441864802788696298516965264123823468405870582993100414241591476035854038693576917254696239969685282555679124077903835050608395011517599705695952639296393236217974495259115741304561223286226477019252184663464585447312929601964699237217439102636394024615041359632539020246169736469637207794556116594088256020403894665190181099970851899772773296959297943407193709953842436856689614973192982776641165704292140799499382772234826383777673981819351960757212382180514322970409963926439913666771357331766377942701681818690429554444914476134207058659256133270826419762155810292002061723740902685561634421879998835475869385270242115618974407567323208970698519794418188786192654349013015478774712458043897264217209393866087234711439606981206659773838746200256710228806521678756055076397351460084342460913298712822820216364973838441861236153378878071560462327210637486537048974158508474009124668416566807715644950080042032175423868398143559866704055513916367402502376135695824890684802320005155420568912178116663656230820823708593739101884807697830620174571151323764030724331543612995006633419880505829007747255312359844927730982814265901204278371354491193004431760452913757944416533659085269193349300339764937424267103341883647555134916726430631864363128155322411053455963243384375527894914183238725381404692408173885878134936950330799029405786794477597175446760956781499708067031096893688096419817466946937601123832080440389842659861672736236562175893640141698130217385390359856894929609263919702783807779060385477207157960642209933957783121559553182996869590402118502474500920981463193585252774302382092924813882480738841934989010952937300783033097765541908250380492495872587461917141209322987874333109217122829857194209121554929588435772359548321835427097527505272193404961561374988973230529162009274746240762363376541318914113576224529976299081995910189331873238758634709689193940085955960113960871689863424383853154658758786134317096581441980330918864495097911609935080831450151718202850983812352617490128599735351881818757201950084696594088318032828763670844817749505096777029948438489288461782190623791413522107695624836875633480553041816665327800075269831154356064147110137539962383808852806685746143657666575513084021299156258102989017105216096976276143960303932547984532800169532457444459275175809113107483516005420109589338580640573887186338579358900940191643823822702077634279609240471624323768347464753741600426982577671090130280793443700590064433565013537902646034612809123634907958824630902289932188405990093998810444076695919279834137963220177249487237224756810383692359890415422069782982427645781381319826844767332942014095057267046597002418064614646222222472572010249037357984944793573587119658938102647805155192430824982410218369200384438582213343611745859826389836752313511902501253344564878714527973861664315317858346439660701137029156029751883954643255138931844699786028097792163010396351319247674844729826784183314447105534614853930510547895022020441614355255259647609221624908336956124856409946528408472861457150662408361809541197108295766689012563918170028442654944107372977417937116277366859576740106415784312374469882347537980731562817208636978060100837738417488639204157089686555514529347824041534419739257556244979630045145602564593453067712508712035500003714819648780451843648272576650903174472782297306004256811572970751472245619416482174768094441516256693234709316007853756754400007635331995451280351152542022156748863626670038188900855325962123810320459150686197246440982834006383490237327252135412827523515607116497720895482092496119899214986206424313171143635758845084439885316913159234512757011208073581199494747558619902947550016640840740348855200391544471133783855643853443453898993310929891161254444409736881588137617218704010615380110413245130283706659668006580063465699541437107341038138745054610466359813345573531753558616447265349002465029593585835397650800162941496158120904565077886142792483886340682347360717966436442956071969688278556045847530053235101596344375829750255058858851049473132911315099717154534277600480745242526178582785296228731039560449650177115544475811258790451661416893612072794295115878551987721546758902793194458468343335175622761640024902885321589299266822856953729767694090915611000586573212847056675224604112348374199835455294194831541485257357711370349783900323748983582167883636702080013250092916314653320701210962326134887529820014811987816199913322678681708699496798828518541131514400904886064543319302761627707643995063229098652788327634392050888441244090680832437196626159642649448038647269246270217671678887470102522414424063183736804038878212166969773234986668256627311820156965412713849202489488734409398441512677881095977035540559942575909921483234048769435374695856408076329682621363002807599377489133794014351086142362592519515246757601053396121098929290927008257636951200245449659382288356975295882630234730225242085850874022874623555807732299916483398555353208598712456993152492427598916183139912798686956196156764068830498526184093143042386553224364342447360186231341333212809885611242227575939174461349803628770389294527395163927713586892349252788875541023216693389891550014951716732589585811013264449064952196676224034004774606332862076476320938823376245910858268990046301439236256647229050984384878453832334094970040963946032898602355377189834313661941601355481751248563092946791874961724847944802601583176330822069110738658247736535073338875650465706308780095086494263217865955773654190216058971377044128419318771028154478616590151141624958355487250389731404913097854135196954535220695971464933498230651720558637967384614990615611185627543203441653178902232673051519697251017653855379082851971155594308488314368817560776948295590955625949056751745082978421524633519015412804067785181517714016366771374874142936319013122649244586397518126890030442797507325234950223389607168791357171945848581614684885380584426824643165549311406693754248527006987210742146166755803781482893435439237902976403095006361190182728531702722023516816857453034446179850649269767567739999583992822571190265832015065573957056659417409306146932800674759020895071465279379738047697385422544228846664971171939145753970449959025997208459835372492575521273141481517347128820963458840592822448124459455802995236375591764420236506255821637667200002999015401833192504883997693487617325078985583930030005940346459703700949426329247171886902595512478492945460803711954777879270572830245148707512821791085507044156565213544743056324631682985360360479114452204924694317300774252647115123767702893409177846563723121983204629191179660168162256223008853462133526596703126423206201144155610590641942797761258809541581926423654034292439740639919233364892857453536964632121068199536832666356895251285414189875543276928733198105124642550775605468798564264256580557652292660925177430894317468088970318181056358106775444589647149023246617551520856812306161153014033683080009022105684927189718309068487991273269025451081700196715168072937725724503071865577986084173263378779527610598344459314081538075983929650060171077244756976789421697458437558908780408252336578591563958585590908630649446912549301318039547706415025425457490051958497622921365167172670382863850817884072754495223405470376118133449191185357535636514938570971926776142632128725623396879249736162609507265186948369120719042491935754079850522282395463838438963321683519055170026244073297625798033747003278303386120071557924870818534578343524963896905628468653307916992016976575617718495315697722271793036511435227778642800542346458065798687462353671105940326434863642624692874771965634657850975349114406204391920666393696129181676974567720539758590010384826392791197398177616947249234468585636078197608661470960860997508479138472536706788002292053271606609564620931251846901183519811013819429536078898664863680594954376766957071728069917409359358259245626167586120256926670906001304212391625368777655033141588926529303379168185665555758204864718401558210449924379268786269761087555535152407716960151330437969520425070669749983715386311515749815940805687127769166337199026932289004891692571291509705829519750502951179675525316049135625434440828760232973677514344781920759653135390202752731861509619487048022533381698143999979910468690591293424851661900531178746667278126744143968163566436624220934079682391705658150880582296952504762784037972464099945647178070599857552177191672145427959173371983101424667338712195738195680308146722245122898316597603631592968968186230392217072086301597512706419682672799359081980888927874761043788944921204601974959595043597476003844035181694599197415759094498418415216650787868104043672370639051451750866831933422504928210317070497880747678838584234908408707842491972244287019794050380399473657888810462617113160636032155260927845913161479223501316063915302312564840851053908426214253015707131742060151623067900540127491506481091879164552041441818223777289177165833158594432763169022340747723334577633350576552974167142269301345477820041448953579191697790266961933901597344665685947209873486856160449308890527770133913962288877046303719017017473823617847164857551487063821760644073209692489165052674173191614823494218210131890411695921595266136102229027734515381146694211736814691534807378658355986343636519142645978414344820973020610032911858649645749958042138278756385825928280599237870921949362093645683408556961431543432730141844473883412674318561713884789076666119195327020854560050275584791719900571278767744680719586384241239159310725280225571645896053670431114230412516672598793048473902926096615447116807977419734505644274838007669669532657831046653448419598139845806003145643439306978812481400318049483609706320154853246401926680055710767577147760391675474988027042188682961335566707177928482469386152729007659602127365355873795591594304284582415160457829236069833599859948117451235976521954358401109550293292177836528046830994957992810656611161582856050792164060830108204127327008434550681801951169469465050084881828277630630007675174824451429416386133919887666231706065050754914427504009464988286406030476285831640455242520397539346864060329128622215508012497369355461405494318049076134987818692473641642707591108485477974486474785009174035294341869752994343823016840084011485366634049647360291837888276716727155005976140049423710895740613713139125112527054747782846080748991449117025084649367888456482194377633974293618668241447417072366024813312885344497540268457289832230975399669886725712797987723264591560996411749225383101964943678280426231342278415676645156976412243117828349760980981945786212489575558879285426465497334961614314035019579805739329296624775323098091588082499547708310574063617142091280689111228373254758691167688188913877781189677591493160854245267827424591100791326866993689361001352408784395361051580048749786460203131310186862675093076819186658103559321949817283359115437925538574535270663275323956146398132605466179130958275610858216574071415271835435804750411903066362083531097150722724769543382259697178384688839603209681057475707164519698832145268236578989509894054145422507291526667147201531450457971755531881165324047545537387412205069446240933720175813398402198799551240129580453342247653310528203036653878166186783482374765060758633054013120490047645623959482017199408867124550988145506249535146572922946199906622231488144656917657654960195482927825557759600689627864950249638824351309732443817249086270546259903173645568936632146501390591373148502189595012605912750447068925342357679056613402971091413174373318969949996975207466325682404916654931926500445149629233048972963426907991898864071991252611944386783248809331058399859715827864764210830812179007603897917710510288400168216560220467802301047917995378762942286827463634411890815090229426451434908794613921880630999777409823477723105631638635912467323478097817386266592695146011200449514914096245128587060532025341834764617335634831916443722162867506384976827506768017808499990944093032116054504367031347214359110442778788411545599302521487048610980175338459364186013616733116023483069108701817959133562776627903933723262723041593425852830805421482701912934664380190558381707443269391464767727128529537359622790887199353443909394125118388967673529851900281196376310713812814509345299787490565846125422638581578901103509822005494484603897552930537223966823481911270405722782479207841777734438314445939998381021862347195297763660905972871538458015792406556048888871377283722728817728828687833902715275421154924081356928467486779018393717020914595402863724800388201523063121385997823331701197245426978196238830182534145092144488588421742554323283188299264147626041944497435523158468588749370989715430142559063499596253691228170467803515940092475932939906576111285298582460821116484785814074354994960520499268618196715491329584051319251816422349638131808828261664512788623175966866540960257961727178865224526602000068344053861726300202381542602478422172820363410707419219753016758609475475045528345469378015138474749422858057846297119197877973850637909345587340404023350523702181003868959099412709257232767438740217848982773659716864099554575801449280683614682082641295688394166386250048313606195326749770516609567601113241657314845785585862078915218704916739179323801865529244117135806482065015226165478744621644055958922421604922226172900689672452511194901321847346576521048608806881082491532233717678538994842307814699758641706172595069000762010738848132774859385059747813955620714258114334250461530703350359504650748191494703196843433851000823821896556728828925582702518476673622275156437057382634526920625441060964241792152677027386627042593117833610723572104058007242828578440309535739464333907982421396973520896558274680243919605128795719181462419204810391056633383535821251673955966245178201909240223970605361576363909797131064731937937319028284580998273982439030454078622445259561423803266957595491225147374401038965446148135477914184685226121310374475829517181267499222428324430709708963095289880393762444958625494563839001509342786138089977783585838806801326530007054273323275771913693552706400671673014904045952161210344621349046892492102904775372750700544919555490868503700601684389350852275594600217821602946699742113216962586489613439531545486399033773979644566698475179148551517450804129158128709036618279751015527014783354490343644301850279297698316151672422930329423956534920975813109059200896858687647783909849011354978845122372404863661935988178948972467649200617566509577086302125383609108089097174646356051793726102366822636490129511239807502710346649898070996144949792828071733922599318974914042741766426831922427958999653454945814123867748399641073795178516520087406608658914482607243905363936869661088030555024759532730895897190487520697898166044619695093299169807487317712196550529974437641820399073573923492384383223379880972674108635483585081422330209125038940029872911366857875417552217850470629876283922821450387815358423300360783187209972974025121757362359181825296310705286995665845163026852181018290262798619314844147134583914343025798317045298575829770645094331032821858507740042890374248385849348267202241648594632889883437188664855318432910511745469466658211870707041247595754771183647840712565621159228505968809700089771173454472774472549320095836044923312775761204904237729443998601608934483949565670944842732277438685545153281276955401009155709905318897939833072974188230986448181110389834897170229344681158649422157398232908359077222007068775817046028828165091456147696711342749519333335673040685584849255243366487946717388814962649612837002361950407493867512018346960806204717069602858003372380722132633697884143650477075298309451482199823637886323170828681030131165764410526100802226438520224754092557975058688924463378963824966245997228188243973439163278417672163384420141564596321704080620621507515216550765349395442469758622582144253867522951957980066824739200999138652952382759264907889207938565149845414692304332883928193866394483012334624598238146921991094541704196749561313866236437833599601780483798781861051641100216774356430669297228253094139929035248994483577577294823016568984370750770416149316531176407195334800693607758948593440105800731682422189177428366173218598662099310538178375593757723873533359323384598058547123773902631161511051231559799120967392055666114781012434119883325476985416143711878629471468062064273502247169542158368880478811124145918421860909728986748994752837380991822665458263589098259098863539707125203068488858505812707514688644777659998843287800371677810150873210165225566523003545002631466929695624325128501386355237846273893286613675312238216883163692065301038615232768335615324282584831644832561189961631246975680363562739162292845627386374110343782978707030517136845976120667162197429407110102817983111388645186021883209352731651277709977847736155227329404421153140940276640960553434240434788010623776527691937809937640726517089712141009581298263388830671929012765481938374587906504408084893957769006858561882115880229633656258959626137295105844652418756295468514799945664653745691076317526274872219061321636919141941281287103561920762355186633454262466639323955741241998482315352031513612104193922795245754929495981121855469447549515228641903436489502136854892340620489763194044147961229811995213874831009772183915433146339931942886187954569919686996159933151979122927900460971696140556903454597771146142060157912335982272596549051209439965552203777980291509265529875963954720162278423527972542077888525525839696911507568906495947186797552189916875211708724697694807347708737671685605213577482163954468375069023773191523669417997721868496054408631376824063394091227355418203312003759330618005298827426469461125897884975877322954631350945452108713391113938427708701675595472770362051932449681103733675043837437905931569996953779671320487165373130767169942009005807542185120230861664998968331936205924375630328126302143691931255603488682173775964558593986931082594472974757346506053847919798895819912294826333550878257528913353085872852537006205003566211642605689731901026099425830546862413069156254580054617897911182327504082332314003810162848893615695052329638528938185991651506249784823879520846885680206539978441490560873724360964123640966844937785255566363674822991594173670273240950548962182978684823086397164380627915963311853379398618278586376368722446780099606007165816362295791275093795498344733552523867021328521084839274971754606742716224685789531076471854788150788638368668489713636877957925015117316282755560543105208291343549457953536557224238272946995560739094083375127719295517873954728797602498016394539522395055504190421154498001642208578214168632853691925355170218514031432312691517156786517600951703906895907342406816430896234999178148873505365580500496431311693541630240816077026387936431341020390298934412199046100077983905311769127788382592746352023600771748077917113297119502621781375818083013171836409900657387944817179249085631236272358095972926739762101698146186158205082143857451458394610948163581567287199245419184161707293861383999325908562340918423144318566178451271945360651321898821154891099713906721478420225542577842476802319048071668534186185052557133814543480075867760022079623435012014392857552526362401877285241404311619322199512340923570074145873594779102037740082168243375545732177044404529668452426847446567709581251659882896345220180500311311262874126925989063810818530212003587114452856418536880062664097003623044743886167262311958964872761834020608337066637873135341494820940305030794501211840304489142686993511520701504730748254259391513933130152767637606130878738158929819763741013059079272215249444736079172803072426665135716901014041498423451046447107748980584983960092900675732125283157848920845718042521151891179697164480707235163653738183353781971510139078735033222280873582763060740861691346669390642975107136483600856253451575802964411448008066898377710209271202623522985850452212619053002930633389365479954971471241610501180676806272076434131030857790069997806025468890121079526887653298980154559561773871663185046818535861313092736060228619057418188630657376687891989246768391507102650474304583511393858080745301666545420148840551714523644793079667209917679209706002500683768601662224956750594723665606401528984410312178435643954203220957021757924598175117105417270068729775250369635621290649726335825826292879719545645489229764762860874021082538798501329657334658054472868367399284259703856556461827253733022362974459687575754623405535942823200892029400934448248445622782977438795026931935901905418369810382112864517287956071390308391411649030526667216383493662303519803524971993610803508316211107456005806025593661402717356410230499871471497311193956267779430651306598583988301059576507284512389418671181313661581883612023164659039759471991121981547265102715259618610897384031171050640300887551208266918078764853317113643230595833124278801916685952882367536950713615512354692367879269560427283954766402546986651057153202969294164182251376635649182377840787275245007906312112426803103280529951470768217677998655451214524221951287135633824372991108405213336631369201361519045228018620657323931997185607795776263129103810595013857565127167588232830261387240798461818833408339068237179911778054945634823744636268712303289119934439215746537205552531956935611270450462907720439136540906613470480195074159398004880685054604267090526680170533047087440057309846431688316968741703798782555299134434391488031220651933056648130719315099401621116067594953077874242999106869620427889874976327611062342747186592469988347924243338394924567715102628759311379888906501518113293546451070057883976229443252952769030466529194675787431454977386772854375613641782686247837432299274695627646181100254959503516415780306220127076192821443298405135450362288187999246998205139839444892959206116643788283057942881622643962615589494770654683415557597176751002370238328032122395064011943292679330947190280697440774630479921842282985840672049996001101127744513713775654106695366656332588882487584293241043248342433861929650234454555354669705648100832233193409881261009175567679591382698789920213092494853641172662057500600139767973501646373848380348123871902833381492893112983212744738967651102955839372774915737971275757916799368007225399986808948252736992294312776989880714896142670799079433050890735540467989648891869963931325044217735276451861111764245038722533524268237987034444162825537686504167723424671083749399985457879044387480625805114704720750109317708802667529049911395277554106770929811381276418047396409666314901173085485443547287470646530246240292919976813091220481656520086185162820635315764184004564826205090619988805228566763991832475331718764798722536808992802254897047747039168000065536626827490178417600712065478044762101059957680991109527971637534145042177306602314716258844312379241537934420631002704154847272826596763298459422284753481560511331820203312292223678588581002346370584043540937933449218459844391400192255775102999445462709148450858666168593461387146490277613953922869036454159906485869014023952279637109583535370860869841398048687064514797149635091861314258132685991321333255639141183265943040186254270967257101687535085458690360571543173618025626896977174205501857983783710855810635841726782597979972800691396859627517675352735165309881117340146119962878095308694953212174290328500887401598051267743970797450297857522525095061856130257065793778091311644183934362341118198347144239324686936560478421999432941735585634725557226824850388296384906116914039316492983761669904519902286495934462565549066910879928433708845113015378224568401063465304046398783508812852266576319829627784753316907464362141856268640666746799356065126853884937900019710301274433994362132000787419382464172687591455776938291804605235589837088587718391820990130513345617956428634930311166134753714781096059758992674490779472631209715980460693214098797087228155581199073524445959608118676288092351815916970416083416401119007094211547080661571751448093222965689978244940374931548617113466543404040903616178535964221805668760494194940037198219423008845319003358218907475886283297325009448783966164549602713195736519100441588348883457146771494708969779053456462135377693222422493384874020454716877472823960248516843870674324023765882306788252109474837824097750642462099508109273450725741951169920239079219616179995806767393247153796871584994665487783017789519099526373369689778340880702257603933634850822061880681951012383610005953825388915434733750210050414632865929720245580153961433026299855627684979680842910985904148659200842537160385291518540821205998058756992654310200255585625922079613257648797639640718147815275718139970502581178282702917756146546701285547038789931812620187251161503110541437390144523959509837812586429854817248521117467279286429558505501384955692743708297070297623186395675779741129218000263273902014461437976249234718579486603990327108223124901958698577738191476183633033974017623655487265074215050801946484069116862258621041406298858271525993400458476312704248781741045312062557539340225719120447523082888069848432988649211308919261628271230977540152230511189337674017838786894882439384000605502330539293145470452500234359816681720801422784805699603543963149052315503255782262948556741827959429141700044653238863029408334952048194933022939417237890009477163915026403903981068795775059735660902173339508920490666383761590334138817179956515202322091193893109178358827367014596465744775444498690482738993748940976434537747278058023630507953658484938362884271752686217553754176588443260532971755118270365286120275307359200484037618055322759745329650433634044858233130070841097240729373745869846736277310112173105910296960268849108956655928715734342138372054962421993459757186200314206214048186829102826048227838575037090468112038289922003802431124554973807056805583318293530471649336864750579108744775615697138234058043262656313777163190153466121610726954426961569639055821556604633841295885802934760891291516916096606023345108860197431705763224940302444339220547648423450518478525505317655904806632748993632554275116166962296341698901837022626712040890598852050224879482951408837545922477014319567798626725695906248468792075986931213000080867771415793999204541692631094153132380586058808452666574703142248855757497594349808495713169600051454136723798099729273522478388705166238427423228201485816288888602315223128672914330360522838768126799769634981207522754307310535225361326657739447629823932228722092528288562423708227089674189605776706519288702769821560884732255367401705406686964440843025248680729258070190613457733693294269985244364722550163547227882632533503686660677937861067186660227303345862712237963994205737302381804527051631382489426989988448961176496380630302301439718533034233361925374965841910109232223711683598526902868686252360391034907091880173919322390630965350052728766546497591273799159461920161764861264746792337922704158478848379540801624868966885339126879332579249416516796106712520500515947614987045223873129941784341264791130073874268020736594726043988591930752079220333841417603065818663403937936597726892452714915865734359324855641812862643511227260608079620928987086576095570367278805380393791454067000316700446483432576399403539712863702329947825217355188423098282911374569193238129029019082560523053174332632633075199521052172640252752814414734540820843783059691755124638112556618780263128373567199072463860091502289423680985006091505238858382368864131879293759987576590049646517666494205937598138267514858730715390173394242689916032960855618893164598859144350561076454458258593873327323668759362755520116733237645350986810036865295764503665222036113015209226160480388922529984594122046988965464408012181151946170550876221839062971951586903142781389455811314957698371077485397801446489915058000367866238509450403394039210267752859316634750011231203445945567288297637003555268150176125122064906797716836603692905371662857213076815816271157394266208719787415279057174341255661232989458638508787172333793696559507195560425681199485153844783392085700367337193810490887451978037652575402292954942521447835644875937328024759308414417536043415787606689504771356197853424656464218633175278065681940018680295265636380587233911059020573252009498401793011756678576537298621535224978109299509437077351353452774830230437299837447776895367986006572060150014585055145911571824353259366186921234822117287474220386749993834885883449665000683468571416933241445015232770035037483418561040037317193656909384622729839645806787275406963660022860200062780878736864190575257443876049103479459642640818852126477379922457325932877877296890468827970383722672466322743825401351816854944151878767208763740933232017240489879064721168456302123940151212377315032826412880985295747459254983294496989120674952945399756317100142623373992678728784124937568485409904705300608147187274174134232135666018668315136322535940562864971570401428777434137091890676215483762983885960457711305765630986453947921499258209896589459168960992033677787072777798531927746839233921937312718019898094208230517753757508286524552532061032312769084989744641762598249689946134576572390102110865198965893321361230182723687043136141167340385876660297865915838599694235222784467219347647713913439047314633342699629314520219694141592395859560517913683730534815445586771229365467326518015946983972985643648589258879078460036823209715334432862876474143816422016386602121293976670611539175284652357751199751105164486090747669831478165829068040666851725147905080436043040128617021653652537855592328106348928367212032108458825964883326866341734290613853137249326176422395688357718261910356728345025883331095808713847353572053753739565465860058247258928981088652600345394483062329593943870042335395096535842987275980208753089481517236886543652684158713617857980680182037870701162148873883856187929067296723140127686889556132043983436268207367220857869349170868587312534852915370869678861009436198636197613336865130559086114565912265503518225520688618462928605442533912992482107018304522462347637601033596938367616679475844814061824928414255732534521219443776145126987122031857374242819187388186877707245713966357779162814027937485293915013146246746391623926578143052396019290197367098272328346356413237292095274461724272845988017349213196333106548383767159406721641234593819386627859844301572195225529342508253037119606002122951065374404877226058626538886426900627954874524935931433093022284844920029933575686883288791636970299269310558457886114806873283577652536194251512271860367418740826645348105053247971752254782189911905115789297627742097122270019165684029755599928954354028470581120688282107947050240552563330993345575720769940799071417698553501084481055766301100404885281532302854561924038078648711655161291310816484678798303359174914368979155716572510478222569550462411718674448114627822220225703956275738666740814247912785534375159101470128197279489968726950678664439975972301696041507066477411912834423130848759602521150254291114012502612182410897847709026645812856042583004493102370444420562749057878990709069884207817992724230828676809042875598483750062849001417359680529774548516748021587125772155205002577528024426418128729443889605496869695422401660515035864153322331478904263216644329166377175833207739044285628308560607169902449207832276882367543812775787748149215233901429707903041081568585097733464614315176515004166356071710571368071968319546022451352192672702375764385165773908283396459819904448502797893146312124644077095421772495471235179169638954424290344562028266892804040017338622517166560332188157211394082726866880928767815799057321636703852441060965464302382793452485854816291920291990620942346575755580289748354957267056037893788573383296503724292466961143179737758898431244071421358861307361561845495293054416743888657244110458762680686991013592006998393572864861653917862682500476566601446583062847120297976925123898652671506982446838069432034771408867964565753534073457291312327424993069461676965171227199021636697970092293926972698087536812921641847441507820309874522204579117671794220704117821530771082991775542602827519551876078872732285973549620046570205829325800152923094891783930591192057660444850480753258412416814774200615006808751527505955025476298445239588508639936648410258547429702283844426673702696123919917125934323004093773963874701942520145247741462289645167008581185568371057881793162580310841856409480807819965786140401492235745243920830809310762730369021025053579488464785015403212502970332201461730432004092559799359928124071369469713971559804925958806173588493064003027346509603376262229778196698920015896267748654809245797502952108137952481725157684767065383488020297938984723920716376504570184484640971494084120886207489103486235703143202827806493960280500702533014758705432232869902733622931315383822397589470749159107481355946892928890286668841602053498551350064113561131131747063629558607007713030749313364029861910466140994466754950552092382961338715401120251062810569669917739852792740920425112985501231600690687183994368720151496099326735207457540992144543830056452377220591620691875730205846381311930772677139895752756374228411929676816430183808591247213854034735778635424158815681708704608804198322455703337810943491226270448023684004798530435482637664657647598192759619694942040460087946640477631239143232362647819539781168737285474020189282409105252041830029606846840624965800852318321337471057732900505203325806554341234132453167126442657890325983116457958958695530996253298239786845693213690326138970980120099661002758027964638169760747600024599308868949817707862715134504025298836438130290078651763032102802287870336947166321188783573365647686605576094454254870408450880503569447821443633944972262807633284824974343053991353842946886626510287171498670970351379776558297923807884171338826387940469784275908040142869736445593235294525993779886044689887158699360668348840102134556395309720217959177585516079760313954475200409494691647783081419176185653267533117647191792862047555723382313749693893838402272259609180823831863082579329995075614123689086766324336281530817734010273726509916303267891447581164565074990515030902678376579126152083401558610093380937043934536102598294296432163649802194731287422378489387430808646931907431143002030618668723504592773363770442118125082431279207604557152906952265994888568540008850675878953507393454426563565014437067863679409098098150318875573475675871811419632864707798793599208062078863686437493641271487491695286607133912108859575602249990425464710493929239483275711378987791399001668520901896508408485282747992260769401681574523931418359642895578062575538506180032427014158827579395220511914322968168123677211428369742679706804979184053285707356173099635907789197817423508516022102371067814330251520630980349800204626440170225022752733727660027091691088742257754220144732539355315846810104288608161894736465666353411665651331108216413786561927837971127551292648985039514604309829579417055721784268539925213239503224677956486029190465859361671823807327745028685263923941086680721414649401012550016967905680777912679056811859654811581128270885350442630438981272298680408146973837608132224494732634754269707378867560759615964080414820833803468400431972601726012963921740399373462518736125704224101818690072463756729017241533248506896289868182108578025444484322831441732402049687412701103787573615313549634281985918187069656165757993583000447251262796822996463918665264763319083094694680017959295546507077533076147385394987353204726832998047936570051923964612090546177654090153582560062069818041757869381323427948234541578411709695085049714066591773901628865205682459695810720644529214681397598411122056033186033604513638972444185929845202889401234335149446194384563454549782063877532386680464560555631457702845101983715139272021136496609464974269295374742786851159738078956366720300979139811874850649019204033678667829968804647562980608436663341980689410428176498684448959859401863803895116749466613098956869023730904371264679621313336543424211292485425223757074227218621059669441233376823588790502983800726805972034015611244952704524990991145982907325168634587048420012236313564409676361231873675863323308139545246761641307278003028606990172931499872576352992616754612839457525078119280329998617270509052727724933546228285434359647562138097595110447499972176686299782430339495966826008840540335024787029720999081276987130046094885222035620835327654018731133666593774988484351629920592252170899436423648980483114608300117059696144318390408186772618330450899579996209817906817334605444407115226240491216054865235634778966126397455006950555933021061348276016830721431717440776552150790471097407510468810551128026253120799787013105240163930858670135401798433601568350096810720418621669500951044189258909422368749494453957580029488894861357462841774452422430532374745079627929528424761686788098166493256179956852785083637594359950973072845541862384565482510498443993975387423731400894629683101370635683579312781696203508312255066071172733086219974986141327087135527475817417268753606952717349919108474472679328965053773010822359770276512569974707462820197336001265456422830465928858123994821776802873484780913540684275306291605405311556337557744424437535395552018842503723753158031187721022721328259942085106388754494350391332458142662853672527759268871604684574404237306500936536790995723199807566360534629248356709800767624580215209589179028797280678401435876058283265836567762994628716238029163862936278528416472384971574859365744088439926787338784245616475939502352938783267477030225656613067792292874421243948179161943715874513642111747468983808925565303811878065825653007946283258951066083561237404966442160283099390082681338120609559890409174981728159856411595949010819121465020536224137000024067202923173882972620506035692696986992630125386217490300671029501622123435560914161142881881660356025280032259122210976071028307987115202321422122473138777824653430326909474141952874531525128251217896395932896369577582690547753810759454560319343158685724021823978356941342193805823353310811609893627646494093418062375689142389459117809180295339675949529529220357829123886151191574945084441825667984491768559782702218171675843313773695621258730846463822640273788204014336979890994346191929104232425302288136100938264314979472082893970315553980712573265487094272516240555794913508744355907093408258760977265182950345991091650520049759444523815910085240917955189177236417545548967298249354921713436760049621577960151910159140830609143324607192590719351911022199480586546444039947066492377311464522628748230940693161104642247092397816450443125137933468992453840197362963117058118495079324646936149372528691246170269737920460348256403198882130896288464934860426755463597524462644920338603141898466781327044238013381020007243257522052538929514110759768850938237031934378994616010710029343146438004580657655383052088700852669595682507811897213517385159582758337059332129082931687490566024360268431180808657966760921434578311867671551234004335508517172051447617830807914280707993242077148847518555773731595831746669572250360208419488526527319823372764416881674449393017415101202378136612971726628524003779074982741043818873977934991007551422684276176582397934146678062925333237751825855225991506969538419148591269785072248288236411983805762006818712354494987419560141361580228930526794759405790199853364986231089451559824173669391018551327144117670762539656943213512849174801394081802475413407424583600159949559928052544911213817641822446864857698333506849623988180642445538117606652681394417554454564615745863319040699706929014507891230490929766319492650161292038526897229769868269874675586847981098672617505074061216460526680680240329846562325234773610052221953813765703602053983311588642736672459038765133499369987848800850450532580285043376793322646536088601827625892926162263970660579022103529220054220498940283590400527484963032261478498102308943425979872215295476423631924793208175600452902415778534624750407079779435473464252816320508879395310294839341052796674760001203812882636728896518277422796809077875549449208484582303141583621797446453600515920481818321247039281926699226838937138508199222796099835261390204213552366763021580795302590130122277599735298810186233489884188651922749411914312882113930729197489825585609895484769441842874010711438036351798697463559074936596203888615424825791302884269619936860549593184512734138159969405505427810523814743038120408177358577319260888070782812476851114934037601934019324888841708201038722509120046946729789619026680441834980841946754957503770213380348742443144077751926673377446753008162520122674240999947966245419735359450534231970160924213848305257696569948953059141589821125841712622252146981827814217722673994593003330819304590690247779269622443272022129681154776141519306998840567216179463988347369852302400365218482734386037151651229498627814078163934990849711287442372636676654167885553426387220958530810233953213779350899571923726813130259991637210403657213130230841200081651572590620852070578012292378184250344752985692660441156218551692865265888714522192340606839013911423982193144302579937299974185638292690713918056538074124764543672671353325496562832172681545558617733410162009405548167929881791237175453044815297358866088810131564249556168639348449213085441796291758314886989099778012466198337368230507172373943437595950096766931990311051735404456133422343908052281332230259317202344169746240306722155360292677367519117053040664176087863862700201423588034647713621908279739846830138543442726592953135446965469110371148947839283308884839448379879445442506511975910973883049080711860557893314338203475784506365447880046977729532548395486359575494901925104396396330473023037739443436216849567529424670255841207652796192108862008316434836209218349766315337469353681455125004985769738190333222209578723565762892907799832444717235807684827198290038186058180342626839227879819121115210650292646225741879128956125720802292178893253930737138629835041758619156536575519760447010536784776503210644132521124108483321323602580019795158977134585987753659629249759053019674091688878120953835157249034394184536521523615970768880685526051247022460464586100615568290693741337775506063995071864640382447902002896088092914158148510574272225723370280992639948482832063680592338783282626237937822642822720129333478963106975212086917822686368174620978986700159703499766188076869786176859178589395707908068751397309595047712601129419042577882202746238456510405248431100238946439527809929722060326645724869287589500429349849462158896362200833950430601718137719326511561733888447555007136112453169129288677956490339731814274727765709937161709684023686421569479358843720536311677534436548750892524662012556017126415489205917846820611443566788697089917168680714308079465345983503918482959497396956952308543434321804432668389707492305322261651784099115340739803771020265089749502473331578863501041642870386524634224251177308244958155070419183999750266949158911064253266885372295689378879314401011142858168160976269392909031422488027265194086611266051690820869214856718701057880536645747410919808186769072985928000736313097227143649035125521297672150451099571995750522708215288113850283536208724877307667661234508767073935534438700520518330263509142335383809414032907283957791858672970180352386170553923083378217111174850046595277000106224747972257414571940017159848447965670034297129921507038409576005771923898597879828319324835575933223969985853864046339317462201648170570430372814761217679111319482500756644488991295492675686590532092076314365602727394385877141870237294651946964931512811265018358017936673873177010866492119009146212464988983268212111309261964721409616697492320319439942722182761084473267522649826812349503631818988758568525725193810563902768564514969486973329809610013078690198922354529730590131915290940440335516466309365821279101481578460430209032672161229114482693644410169154966753329695730218134619029482746289464180909502141884956152100182831279160983911136081996394273923183514091820624541994449912708290424860732684248647765051070705522810189009757088302266374913637830683206310386969428436219008462198116472728525303789420857564476659192330932373471030864606827339626563863978394409539835655471014786958331079038739758909310764115440000411324413502725047695555845660781765386231148628204534106304028220414836641639901734086163783269379859013955014288951857985404128961478933398997333848913774405652790848073046550366773312449951287214598154697034731342978073016140615378306474739471476278704088369986557074730726495449401048127343726806037315808185055087333878808487278283879747292459537688043640428967009151412393851306985996659384993374636544781656665830942030327759109208198301157708200921508684980910541905954357320387592655177479705269609173547885740332677105831372016572123040062194716715596126217255106977476062444703848626704487549535111415743516075131726036023292987978209578956155457774379354373302141625295725965236618783928121533065381805064882671964295838665622694408593084056588436510346838672024287337366104736258383970148918456535404096705531653546038458120052196377073695226543029158341130233637923147983807315153091772242049052442623051897800120586937241336690146864594643394108759551703062065899420527867443563580318849096295756796296044551090356440782454211002292292156478471112026666007527642745585741233640898334294566496276750874642450270565732706970425860880600260517361933732271340456975251492298513377423536466928556555310097280676981825558487555272490109710959366519164728645650535664201120167728435566277322320902152895285155257559930005574621849669638829631763550344766625369254543989084809059527817890199049129258751938233115729231649615271378762711166240212855607495586044260733075803956621840273944301282519158484645023571344797779459580651050672396746260893038090844672282198839380612198759034643536695691161312696204164366864745168583148907441317720702622272249559783345555469928176612119291373698253119331903508958104583702478601973239845324822230789499268394799896749154290841474259624296353327278600600345537242672094339437593916338644567234905461049636918818537262273322500949874820014112524053560447277812711546220879412688291859932943025114287191755192357770845777304077262787817447103150449718216541349814331016977691882124507608890614616160585075895909139928281012842825692814690294942044366588896325283383885025162945746501567584996533700221080556829873263812387016612180097025715213231681427319575643843221281425043161339018698423537773005373014288846830095687527892546923454338454207848473333531293961749133144677305998111774442295356271353214700320393090555104996554385256886716566512154262003452049193606838802957626830630698567523570862643996291127123319964665192840835678286537590610658321951276052740921223372665767950100930789813259196648040596723700288258583572686077238055797658875125749461063532695776824767271135954427905085000057877942624123786156036926792173840274817386180778849197709744839220825275169765130272409857399839884956228834575138144631676737151235234675718255300167186337522064017100316706194999107656524230570812058351709493673716128544784594997995346262375437249580576471879221694298550188773254035987862246065833817797079792138322317091997893717931651463414195180436804434789743860842050879813150639826056531378275708275754968931290513275609476110017981912132342884014458744141265737881701052905114070330885280786616566754990641234168695648654174239519428786082119959855328287316927048239727003384091087624495100499216764620674249092418477808723394448022329282001446219816116242189626178996339568079968114883310235057902686825082764899400130647503922304703049969746982746355733280255160986942076813272824455164477200121027816250145442335607720562517212307288496558377374157548480879000142306686731268353543230942447666598711840538197338418669579742950385020360678902285730245556835293530295054975349941630212613194290954089730202769372470334557348986724536555736512998691631905227804872596276269609389333843299402766831521962203744886186211991064503834899306608806988245697918069753820285630707275207141569604932761654534536682080994133960098110930443017783598318059630708088561491044236008208508824918863086039476200568850984284427435167065654154330988623808150237828429436059487959321514824008691792465045986760193336322539545976718802549941295946839065869456014484546682259510981213876505927888705819825522474430265543119363440703521783938772327524201565283314807771085449758392849586535756193431160039950545693197883809746991997607906916541409225356985572486999719587698277050844177943670321249384764016496872078271987961724959933059022539219625579660510037167101573381921342428213482644062884220481488304802640462446403508253947172772636014854921263955265013288443670506643155905327846327641303197994832571523426373930084132435260337225690276922533601005905846852566733817156167440579043901751855182119005390759088252662254340572176418175167316823567263340070540985633286859337997621647865673891539872103008945835841031137931287804394467468710115377766572380614478232156316735036369020958582501482170760461741681986444199781825661676946033684319289624240791907726473175461004134236863187944208654258828051260170329891268323225788593162806506576462579979266513247885754330148911252443164167643021044479423837266539992691736829128977650593946368282193963705418090183262360921857254690877694693947187582814139376959523646852018746737300471815390899665092699616573146262678768949176159365164035838405363089172029152561252970447826791643726829040803313534840020099961029608842073007911203212908217133188909737791377561635894331477713682348329670164816540556061320223660996812578168941415681908909359951492456894832653791400756304854141051449963827801120318877998031276958772747384968232252758859480343004221256084159807486779782660027323031549504266278934324762613771443884178177556111640390249719930349849869681425539791267143477405334674017013159759191115621976525956604019861775268834152727677161566518111101386647811045880455325397466443933192941806659490359626332004757889151065797738940836498837503613754073289386122648535697516340742290752834950311807205545034801866864743927154080000654727082286310281084640994073331679380519286138416615828983541980221333035768980442566045867242084596751153522347674544815053154905802983746507776255906765400649670783548172041897439746046369108816204073648444982518249841092611827650202214936616373147283598296993213034895836475955776989059248865679935569972926920283641047688599776815154478810217128435154251017845219495028976644845919435671581063856682811155096804972616556014924083845084169583696189019539714623917346823842080506936532955403257619183100662105295769595210033660725300503478648187138990954179807768194336046461404738515828430360178211876786689784936313852544230028692830021737491757280265578551521733912276589137147413053588356085622686448436670990208677461576886028309460650876207621476970694806617718417615302628740492226634126963387666786715072418782720700134881447924916711251948679347277994989153038087911369785930847543768171413711755934026724723721234748907913644201689164201872576788434228878262906780336170760118243534041665428610428377172877882228841989118392821976656692818906459074507011123830368902803788538581799458623106923448680323475029514295814787946570999258417294280287775319961747992788851080386790229629998574439049451231847453905877778528744464562234237611060569092698596369814063632153314981560703115417148344482278000533672393277814100618827844020129455300255540400168563391036847222170868593148728799022183087477252879544080103256502185144450343663088852488517368881569173311694095899958413063618309680466809869028109442955773428954743205956427219507805697096273975631507544232495530678815111173131180078572264893464619993343901933914087492648978128672580553366828387634414783644196047631470733626567596060732212110788286930008513151443919857840985244378051535840896588586950902985226757691988467673361606876534029337802875248262142959409801892310109476123184019949629208229130240694313025557730402104996084169326869143888657910425753379000769800940095965162050021155482220499860266829648307552072020478475203542212118890959147162072488924721477888506250604189225407748871487904204949033628798217661355242288295463313626639316908528791964409027450451345843909720902885139156650494582674304880865038996710740335978074546294607486645100484775560474433233356455718950888963842436227441002969542230074072194039385789439253023637162598810228118248894911991455480590531354604200351208601318323387704240900253588762645217018079608744706764641463861493763584486589112355708069609075389876414894877481163962160048706066983401164583124823365230180864120603672587411458362713507644138070596250414616439560746483032151185309599503721807913633216201431150076557001798644231754257361394532571288904956706375930312241997581080290047348538252330393933676009414685498453819185049566471828952987153251672101932564395937936389362830744242289204048087971143996045695212172395439980945432378190789174425790675619047248849833003295500111509916693442636304598024015474726594364013865351719193021414236929074550210488367964589865861319667393773611016978860828147580098419092242548891018388572702008079956761437079406300951870715711301886873163234438926994292687850679081324042366589868050076438349472447129856054035935937693516073829369728499501264411261659056489264249977783679529887464615864271802544820138982878694980029220443429161035987011859373654756170846674768133083761914680271487071054603025309553768911548689362431080384273002517553409770918071008327884842608408735051792646467599003860178666588923553250425562681642859106894840419425242157403521775541923866466749766181512492977008440010345068593761966502183038207878110837129810943648720663965643410222862561814021770417712288668736277617549714982026987171596970242254890453981662079411756608907981667087607959075352246878943712401459777254645536426672022826201419028214146240205855482970809846940924653980972866330172600965375431659335679953912127305517869035530513224254320571342765324300042509785130756287799666061717879017845256074035998765155140135595848872694490288583146595565422883572945339029069476820241855707503835522619019321653431692540166528088206800837843218987218746929397022059181461745335021157302704432578550549347109637202822972741441509405499604868347321522486591666882263242340643007259062900914756013074093718296814223159015504501237036343402834164837191309729205570157070466863004716251970306977896616301814209226970924253605916904643772294688573238863775054502835182391370606428488945301743336376660850605040790360829264465067507318344441640701546709693801954695238828944628640720055678616173454357509540131372437332516815421708687932095254420287535168195311301382060882109799765153156929564017948100448167472776517137122854712719469842296842042627567392348215934031671371487599939209508834181155745473141808935066590561324173713829594266217503175422152298822214097161867720143360636642717942058245132462383631895331286631884641087208246227921236866920693619538709889465959214633402469005307912820974110237133858358140385911408210047739817241100397338987405095719441036538272779108065201881341344979059471330004389483572038721384298425239744299493321182120306036160684215869061409626503870872568139319924389416322943631631117829550151232522392737335623159221172329383935883953244477369369804589768207064333815060467693511859627673114143574738132324947346366357715078531195335003800910774981754539322430421309391675996901285213597801043616651379496954259552251006184066630094009307220662703793442423971845487976483977462875680588323407122152490174887825836392621785229175533594952160197884786596370825099437002612175866791858661826819471679156782665964106233810608218982945783509825758052949475295197552837279611722185455387623194713701300461307227863395897081024874536610847536997146414137793718726781437413932162225945603219617364079403150611863946743706723351616197040567641072226573241996439856367610497328226130339630360111608044668703614910058593482694277070317299161954279390819465894613246992321787698380341599029180278966407911049991236946734205319578272679527588593891278799976857584647258831055584939306776500974313168290086732407418561937080338271888874899406890904335528083256940990278067282202957875420699671611196502349178918112609155502896995406093665749470271015909596525498350337821394275212596450996818993847746782917957343797594742271214927618884266230690298906842472880054983312342620970816928991266228601910819659141835608665354964504044404965939175569436076831478174510551338444151911031734366674459916361171849480901132307657279896158318946615147958960130103105822898214158149454596723151361317229722007638169316631677861750940118286765913464044819281353104615444084581950664287055721527526383133318497801126423895830426452480846920371209419151400207985234324247703991698917564735485902341008284142406447261425077380902251265541234362015660153435906547757018314168134774262955311441598137122675511052262747248910238670732065816367372693883447399198565184326367354147780326730195542111956052455137388279261566101440288706520637743290660509857211543481682188693017656937359349919666473562522803268078879597676402706991681654310001870320074974696486676800435141436006312903633701887081303715456053388129321768747480779199850063100985440707102474911685370335434776939525693166872748300883503144329898399709382372396425127409058500188835737672580851627407430002539931754176000226930133968958657394763057532995768504742176730407491020449558199669378952665223661593204895643817727184115568426445596586838329575712805139147668157775251205392678196402788575452360629154811491424970283670652668611864780556289910702749225280864576044989834084352249060810982106085950820573445764451435844863498366245300380938485325495494375977518077769367098724704546660067295132284261398696403559188061113565427321146477235303497253186862854522107205286115257032320639458932875154740370774704592327752070959414971167357321948577944686749114762563330374998490183157999894795144766100464069776642704818307304261498218532452311366829565640094691325157224793396142627715827079777411984967200549231120347991409220288334269729493566376100249077978000283826909369931867812275126986749775840387745720306461009921586730514265507890924765755905152049045858899997748714740500936705244058673923153334743335477673358906987433195039515069081295518091843300910191480888278780418729040455164184790400666708669192446339922507020778224946668763638354160903329852398774562545487536181269534303288864594490239948672898017629067269867929361065420011846598140060615132973775477035013082172021837645470847974951936235509015343624911377806843067100178554338652475474524884125332496543430729808976263873201486617657217209225126907969098712193350193140689760113826125546042998718749632953079766820896689972645048634537252534121254403580967573353948222846707506960715236391176741639071304188009513566644709612477925575526388141790903262455415023082893276595653360786373487754074089121158737912379655227926300266755150822771712287638221523669722526697327240888848465855115850123035775415492403624123253150386589789414147507253404768417000729146934887458165049512083970479351951578346393933856613923559073984990861717766816396925825229855360674600626302637567128305971997988296036451098888452033187335589484761762762465937972831490580414314365132074462271671940026489460244466904589611015498853285168940880274001015505655439770135001341927017779746761089121799437046519723753990091460754244518426551267469022591806837103994777884181614978383039953485292940662695753619351571044907497739909443257704281476340352267499598168916864626958978391110250841850486830421625960602614103696148629868595494455164085875959765739429352353446579715058015171110442256207116394306782881697135399745869266114713741916548914337967534073129711777707296010114075692944243521061432623383444346916964390312813675946623873143792015560366948365680866271567199590028212341746774218435767927660757710608812030221816168924957455781543232609889692188453049929075246077840047485403492477725680337709412878792882193838076952177681888850519729080446275587781547070472843782484685709178135477040811867601412790150921449598219211218750936856811857831795822520274292651050501216055609843062238118073236986379421358291374290366383744171902640071770980079097469068197433268366158468773538474281689440203194388219477224980324384887726992832203993311500650834888972299782544828203531528025822347220499550776947147023139145889111963522714447054755424146478974441143664408847837957031338313410141151239592672936712407350497887036572820791868160692273152142813608633244297282350827687881135005377297479238599852319325515471092031661897608159864902968654995541194093474454792731417038986185515509435896876277239829704525368535553977477699479058512681977892434348290689082480469397368888222669801616271722625218625312524194955022257489600496693775956619630839662654762143277244928942409990031426379851354021106344714673135079937223692777170980582193044349790599234253317901743871982812086328044732867023156907720269951179425941166460829339785055609781331582595861349672684553484902937946811153434434741488881438922701406108851878298997332548406574108408710786137366695182938394937228906544109409199584538414124478943657206203321361004086446909049325840801603128092696478539696173698942510469469901101012628182768264499080490879436291959946511691721053343248879507030953969972294807711764283161106042290350539896013765425576746228890436264339146144577354697701378059708140190386980489745292233175529775015837304639795990106095544744959636335747995081365110684536058694917329595867958001607152503521355731634375708180068187862394834842628545666678840479886150163793480797515030436626013388869200123569951223324510910410455149260579055357392188424436060034579665863424591581586177982311661378185036226836846219589235813095606075396595350526250620619103792887932460861027259219786517592798764005452542972836136467014776110652859633798014330085022651008072262236191054499448425925891372402166646870220923834848848893633771179636961740080130925263891656639848245546359803798821216494431723223589294949940840734556790880355581218304911009399384295908954246096872421654824732230836389836869408971799670766716151668304648269220430527704940970833896147940301734821931778752253135017925633358563139612887801543807535100482051110926032944377562782670452170210854719675131562510741028295594820280093751944976050933538552796997229249729578296938082637046619607816855686118069505869742279034313912466278499528451505109175384427563446772840183599307814758072071278736598453528324291572361213227257817463827283637332599364618893115579422333126113984978629282486546276005484350148472923089973747101852859170011901413338675984897338126814048871764691274592004409875247293080385272974809126921278362510611276910326529899004619712751916592576223250543201848022215887943824052026456455473379333040991957226628316866813853532778609181046135172678300401162577078808553416127655320195321696020651398256968679796137713385478435466495092560532066163751778335160878332428787873941733713563007460527531390653814853131549507745852168558758217100234292204718585834755298858976279667317799470907215645225843999200969355534298388116889461100620423332000606857623849797596756963549147700619082316750510791491210914564419247657350184981672768311766917558197719816836830020041530923786872955915741115800074099140404039691738795545558263766702443259998276980713388846377616624268165855695346166151106564088950849838397194145253141035636354687761210137702811087904792472745497794594544389906755754703730674790011932885581065994398867911377240930340424118087223668736206042639888118237025979151624741737303164503055869763429600939739894579418944207310010775998050341867551845296036850995301276099445250834659428524388388110223107221335802714172358119535348834255903596936554650309707688931815257597284094802701046110128414901111607965749351762661028076705196301454821314916473107862134936504911799137598039793230578843285616428833937370704083007286722805917007151304024106691509987046579563359636451807117067007892434066372193182441722892041733435121660449178431172356436988053090905418888829156965846725627207019485006734282213132479177499887418217651474838870701730309944483496612607688213206696550526757938883701332244628472616482295418837619638394985625384857697687506816271928805093565029800547539305339705286488993066707768543565558633840487910194809899661648570117845860099909059070978180001869431590874128640331856335564243689429957859733939841592989559828091898162253448465984297580652885366156867192205151065865903011976324149914686687942268583875564117136394108848638083190794469156997889269122262227036011858718984333694009863197194423281759084206040488745509957439741370824014763474358105685940742436395040987636318181765363063969706420115397281268314485947724802976403760414827013324428630839809002584663589030319019440202364579978549870713706086234912859674272355934754872363211135790052305431746282683835398952086634225918777398745021996719004826558889322486133772410774560886536624324959894541232789451236996221482984678939435854913966894352326885775391120917187146095071493944218260468241091990436296911594279867821329522174224397487808539441661482666402896924000789056484476969318784376309072247899964721686741113245482610060269140410538309303137785390670160239776298955663725873254806817315285838804898020864720711582539895986742741579299851898729943589334259136918423034106735805575634838372702608137145828451626287222647692932406710315259697790892147748049853302472595443627395502983468423974961535001634522904907391416497462133673911364559729819063750323375344098835106920689722939761216094148031471095255267627782218611401850566756728676128038517703580771495215531784776031131501610242689834727673704157264968559418734023056961400960790342276113084434625979734994326697554258668144521500055946973997890693719670646417791952129329650335518663514830467826584336363846615544403008563267950469362544689210223059171027796493140793960069124952520009940200831350571679520243988155405270047456103050843856642113067858193255449338294551127625193356133698808275912392928093866426991579316932443270009842726221799899328183200202086615122018370913014850938806444468475394053837239669145189954409671269642244834264933859099760870383977197324475502308681022907280284621313876259158167933689936192766770584236805412575926798618673894318538114207454283564507252471057997452506498297037742361656103807969049115698763323172485449708683054464982409329809934601560322818763329958308194227782169169675553719091673682909801441664421220741792315111993778268124484994227568111830661799937762750373116749074202582597181580042511507126455143964791977104804681542498697313492126849671834988068270942098289607016170339317872212049724245408113717906972996758858206167261898730425331535306189304867933922915491040382231666935126791479806239136012790104601929241173695507692855144159414236876248561387338744327420107857860362301323906110708892005278174567456941333090290633495762258174321051298852944193161005100978728245724547028670735831083212629201104027085094671874973116101113846775194845293988432065150825107476634865428079010965461874536495391941327479379120990240762539677298127621474091691806992073498025120074612911832800927913321260475434581935157179136215856099677430004506072785916517798741449130100363849534961973663808786104408629738340356237365305167711884564847940671196406615281087627021620570298292357211312499035506687717405693372244129741978900955311698311920880634974870378105573857267609136702567934794164246216134702079794707526931015789205959057243145470447821975265720395837571197770768629648798139944165200295077787399222010616963770127864676008411354347764516362637493393472756407428827444821379665384184525758964136562279748068221862108231273816996055066197730275842073120905523076332542861295978463422489612149034984093538604985950348707470231712654863528281664957698522946310472746409828878501391875200236258794520340328268299458931984789927808902140138266556419067910244967701623907272804036689631840197905542278432382351917403076560224170118924890223167986755004373894379777456842996177662153296337932221460623337660559603930697480178097605084143181565902353488986186529194861557676115104935849149481541856028437958004793298634567193572856455363949087398149244057467045181470064008373181058549050832294949885628588114587466571097317638357558622452751804807643941947455106022772001703846394227605473229504548013650567234837466906534945361649904464058744078037437767533748481256863770678700461783966663568746514456522434627843791139828304418097744224484746869291435172559261393130078199699431018070111202624726629060579213692909718065916545055700952361787414611290211960873461629765919251888290120749361478807538756912271854510321137029373126472248212770850206549219025509782330965804053358694387162867741356020804294538198199752434604123038551812619521872467557281961258307201320908753625098180619422537781790085541021304540677707037802023239689302138034956740682287454818760641913736130897588376519720458969143599693475952254476281896092218547681365921262849976163917220258819689048286383133104559047572723008642955951272822409935422394744142556262528995350592679406912121234588061688067497179647575056569154782146803958174506639214339230423748268560582315339552659438346057613287203750018504206996307514663052357018759032592547204861931646042449811627894066696352487449160475294286940478913304011592245442992360453866035760085864629146503848174336640269800345153239167120399532855355679009145243152859366051829557244109260825499275586747513494439859497841803498040004431902083912343553080036371466726357457121419079839736923265345637169847536998460861906188726227137461113011119397238545053995735399247166247060169089810191120509705573065058028874558143221196359346785995226000599382880774553012566395811854178308684926112373106071755131277476487871992159736234616214158793742193119815223157203035708211634118799390786639446772981476203702687074821819205837064133267787438938404831529201803301691823356445184493766692275372548025908606869514911389941700787186874165399326144787343429772626500744093138696122642394735848131551891031608998395400950003625676495111751763537907520949106366232589683943914183451687968138938797791482176620359226925127300846905938283879012802102841520310814734198284469670410810268452324132780787768505111895465703364982726007142297251225281425981892680246362824011079228798908535545783881601108978411736502374594004852999397087863479429328841026675513412621855215251290799261055747298717996211118486775052803821874034357965762037546610292187103990244419183407065563403193612880624388035635487527618693840133411966709744882095986779050500145083998308038319345242746097924655999361175964491382186864677234223232412253627632482405344262576836056804407878752400315552481479867087586990476882852409909531098951141799737339410456718906271094113860370766153948766778246559939893964566128712173412692684283422003348756974833933072340672141127273705769593192315878309167831515911909747385384016689241375328856909700758705443211699990293668414668849898050424770327611702022984317389781078042420825965887378967801056634514751691404573438043248927600477952967237408296557058196775032923818458292979560289517310629332739766971608537981100959527232928171880963530105241240052195224007849882806239534479127064208050673454096396210279697710707280822895881654792751041348495604016692425745356326736529847686359783739764327317406967680703692142811764452424923581735547656714581677816100672336298689340361234874878494989253192215868162722140983666645435087156518184249061780348057947084492363620480318382373911281231544940327746276688297547054183284517540038215148288774329120697959778222240558549691566451946227825607384928707383414093701968185381639491952316009812077208925370709980723921648935589839055251977903199522426058689443709770214394210633744278489403391853253551741366379613530122164933943148288536718437901977003725430001531178211735611532462161982856624791605346235186890429827864203987486755764370464595517493097411189702203837558948720044552993275677808368602052241714926579386869583505945146723717058066969071456394293388250990209650091640444572609936939766446702100788081946598339800937054038816664789947552464091419783228759789419889705518819974910781624548290303824452517811317872549172950931716733870364639504122010403637535819767479919879105321161778743431889238167230742062660171438054149228216761188483653175753186341509070633681436615024006736971660935781392343667458085531806902255057974314005843861532413563154053205569418691052812209792627197422446819636294898350282794422445154466315246319796412476316836999391271051451226400719775227021158641265810016235523476274979813104950005263498705049697704837743409980205815748326469421249469261587193666065433105990494293759988299417431665085974941246322855976298888259951374470681426901828951544316329429012681981184261986313137019826121234858774126309630893137323292291175050915442485456515532340391347240205293635438106987239876014534136534476658956549388714969482689015693323527049109931252713620015681168809921880842750433117608142186610638341055905405699610869056440443580639851536965446619500351521511034578833437187671459265924745004175467795127071939304288305343323536472471609535839101383742273244019975834455128162907573903163346220251780778136879074881034561687417264396420271373648247946836759772440106707941460058667182717022259312269153122945031237152818940917161694711836128920954413876721663861214552791394516101005207967008330877026509563237163136786137256286114623751934644603453502953551091659658726387560169027996476495576472806563147294229970326212449689718471454434907060990417183726765542913306832261361526370985671931450300706540765099812686706305485368593025245825690474526206933891629828365440311906495993518673708466911364696928057114979499938213395538295942487747505253800012201187398794823757706222395309416600537336459914146990100558120355941543275723194635173078041646549895809401278698259485561866355433775300456585355403000752641901374969371497041399843680866276929949815353670000617854831110518911582212780012264736482863888964284065879715930983967511976453749688585188270192077534040699806421883972731176880709126069537280815522054040485167705020973693144871419312645934425682170214924753293080552111363567334755396990216824299998303025406487873546061219230958552536135216391341372303100517251944794802702493155466111421210784198183867030238915492154490043107828495783811696115466625341895709130792974039198854474927886061399943275359752722976014606853399007438948018187559621878407904173060758715341918642008232843574410136684199924263139259022107616892186389995481880272822916440707002804326579697101650269662549357686422348050867674023599611834225624964224254292403799738277968726182158475142552007165401128346877936616423507357264687045218464080604475956595539452272729553188442357699332188876470526046179117408700414652752364191107205388147240249341756514521575344167404406677232250164037041410580457304804080451600070063958504766631665468020194274330668041955430107207297351242350982304096737698847222037881521778388869003216503405030254859267023085205200962240877549108903577240380476962299682361358697364741042852961529715767136977134209508535126497488051425541804923318858362867730576032338356103485804902965686014248655752535616029035419649380463900636081862115517145090348196098685299012251881373507614711881882884839104721139468547350240389961749926690900269285430160356292981227191047458783559199486694213250060697066083557985227276469547017036131888202090865123365960795001037289801951694835088219629724506447347754850642574479791887134678221312001776932888933007766152261758936082703158491229541441498593260466699151861568408758025484467346493185116170455585932908800423988740967988783681890810097395245708069731989203663739889883362903656151204547998819261810575578852925207169553408412364627776676515219307485107199253974071704181744857183559343135236401760997566611727545950250613997298283589758340588434158353772695913447002212506521627509039112456243878634809885116789138076409366065326850533743644945993574895755936467863718265139372916828767587285530809652919031009686560115001025027379917431648703968345890199375183168529638791998160080375127277557904038811834394289962595675127647346509010216920168660762964641865328215857680402127109566888760545461294561364556269101225918794987999216330224765767988765957400105132199297994606385340922611624972213888750674080939919451320083836243647944002458828385601579716212712003319221285474442919657152975641280798057110736629995618576740954731120121144938372999297461378838841322992049721230102566622374993872785286409408187391954848932104144396107460881075428099653943814826842292553509937163744053753430941690718749453426771823986567108303654793742843014109127105377505291555317348699147293511404556409567211769485319880523299229894004997734239719572711662997523593671470644931180960004765580269488585386330199461405964243055396474574463098785718696910038987259106743931586922778634761308495771112454287803498672566548345774663983284909841641599407803934407083285703990734416020221413929597638136135299796379582897082553710721658966758548652392918448519591910083889870235612755138430766685411797311724245725043305951342462619929806071287359698096585773227888548400873313710540848727710311468761384795164766821253532100398732232182508425222483821103704528338643153148433571478384676161653618815168231698851802302704325008847276114891313426309694269319197502609116246395717994646278074344888526638198754639631150999070538370545243366110841833573062473530229564862887912202473096234471923962089633706061570675291315282287878221262446912488145531694722227749760820244726884116149233741902562120700265804781836517135941063583737893635311799123874507319326028160305840088441507126001238702245846767657917728614381588481659540473236899205059153157293174428113812691261899300993752654973867358995546167425564565931103899621622777795475416363171058915796022338071051225472399734028315299866848615767507029965038477264496919587270560537922213369501260709442043335512021156385446002436379675328179724884101414597914966711987137739591298160311526924709225926629627514518086012642277948875614016335648412694104540639346657075346262288194750086467286916506448416279182223400413890833223469626220601490412057611447438848284109406661327101848149542941796396753552723206307881582327752507827092766364965274396464320224842267056296593636704169197319318358677338350277035581132000786031965756655001673008510768024409328823032726494699565201291372391095032511340308844481845239196272113355886544067759514553621418039474652185002234894919198942228454023148375860337770045317491806914075831209503129743774804296193040192433352612584535198234672553205285286204220077943448719651188334637597339869284958358247863210429139986575949830646915513434214469475258661808400681537306023288501874110409556004659275276566842567969144243295766254685301009896146454169533014054419126726048682750805525324389582514465006055030241905080519529665108426995885033696250738666133677467325446201603075277241650478738810634048637362330267662432433214184195588055061603445737957445118509804576925696280895046312309110752417531136890229376371908315791891834406174797845600865576342678860334592903829601167672614920438280239049892341025666114664787515200943100270544539457791889623121773035164697156330462631907289898257996721460284250699344232808135189363337452341107228605765704842688801932759602750517384274214917924831102576209405487364468329898555450868013458402054460852817219768940229268669304386073776596978691773845165084775291545881722519728135871324898079071824915576207210037701818526234882421963446892230806207775536386945356346152937849161875439100790967659415822310860822666221894649644312169173413003749627358916213419603653633448964424892488832669571922576887680879903956493133281328242914447144288931559117687710739849332875920443351406705348004326358787494570216631480291207772570298316611445805571521168815090390835425514979018479374100087695011791763160576508075744107731190408100117933926266264401879781269835149812262447759050839043038185926879670117557275275199715391660270935986428650819754980736617217066236080383992495558983868887352317144299281603946318299531473588895693013973160915782924278356286716357811448439307546895801579930080263273778475231927381100415094828993368986405729842941974418483047804935728733103493174473386059979380370221462113331271743546247064057227190380289759317694511074020099797718654030486588459688142992723008033551181418502347614399172679829233438756690878327030465113673990639977255816755086151455348680138319403797083705623941813082390538284654242412646686007148750131763753517080698289868623714186042829575592559161536824497754295956657313492055519094477098678479339403121615845510135155363475818023536320679090153173722027902422942302997988088278480959011131032245289787113225908047514345373041873642439429176395247485425174747230371873779342421192993846181916181603497023353136586767150766035955506546209668507097528776188152692682389536722383077957652382741742865835690954087241391940114035494161025959855710772050202134083296253863461301675182553383211514191332182679807813150810041808608783814238887007012432524305786133705606732495956384726239411593413069607473371387796274874925919985150902699402044595274244201315632336693835817829228564328274542007998998756127646081158013673191008247551556443538780822768153384120448043272043447657870223679738057864689031462254088726522202331398235669868434946064315223796377238721423141021573519390317283987217508908121774955558255298767601089938935770517914725652613674854249950081049104552380434346084388523218895771044263813504193138523815607143131134797028000615171089902297549642139856176961709156898933186891011521320037904797175313767756134708434640954712840178217424270344462853686078889018093969891935975707824605267199299750897778247004456428576487354932031648074867036125802900673157922611084238296146609264948155091652210029716628472260049787982831800662783994896609075546583257789188752141534685293623735634927109660017330322722576997093516355288826302958294523900694315574108414713086478792642306057549827696663386343230593557136450360026337113911024326632148210491137833075443730339667781816501895024770471552131386697090618999709230118644357685562640862201869703981137261424672705555191667067486004319156980214460648758898363073299939709398993321864056674537592170628169670526869338935122348714362955715586458201920504629732453429519436827234040354254980440427872307830588955691024825095178507926607141333465784442171792765736932650606426495432683188900938541859808524324620956136134533589369836277818610703423950684914298118908543785742201821425307527351570738382065708379974846400212006072689786912322710752285260214690466978249887039679454236835935766039193554196024397083515830956377614723478811198999070708206569361282437730966162493297025151829209480237624420140451262338762002422398622140354262215025088745414793711792708773296156125538056082576966888067037943848243423442863579900685564858326012266845394670571028642207516870510681493999498689397661293753774291118901518294455873450107244413781337469278526053488081889134267120622880850483813545323627366036107039351702316032338211032149418495038307796132468826274199441923975120342933782983112671686439154003313210018886484012851870877290460473528319560270685419064243296437901748662699027767991679721571421913317794777811920421566429070018355170324027334946267742313812616438577974552403464649389220967182972495284982032286983071198333682787684292130057433116786509792394544271580510896094547297914972927585870024457793258400710045005659406066917914058554025473112267177051886324836672039638871755529884634179648102260386836079809569785848335326722238933273137328881389096375049726481904483792891877363993021941409421445239969625221528337314620775527209439497132548171879640824466737014495296269003214673049237251859081350345773022282532525086400292871328440646235439971722888234265264023401760437026862789108468911320003050245156048397240080688510353286949671369226534004143614699729945271089592563875932717066116964410951638289594582764357182136181289137238400913612653543788391722380824345680131265545785805564965542351918489617545366214016418106390317820150246419161173674907863974310971861693342602144016094952895346510947222108902624718235062618634032510987206865909920093168634325201790709981080668673537296087790015196374014710573365388698929200542614255649458929833821064381193693089835333809220545798573971719663782503177118792085658122653974644975104950507281830889137797707241004036959468061634246695961956988315034334982079811722453274854734472051923074262931474243987552187617787238535928918307347057012165576713506009934510210284021744741910626957527558070076655412467892510134872331904796774826446567925921442345013493346986022652105766925006902624294425240560977089282712967829763756315536296190682522540743797766665129660393870770157578255805306520510806715788831137945753982163478491963589387637277608977231867195281527782680044948078140013771421043039559936599533050141662588491387430978708790372833926611403836280212670807498200652785646610576998247398061284408845004807253968537169353033398290117858745817434016892202322087631145614289052513598857073661008164497406048920058446888653301119068247758965790883052433041448975806718682053481451888640729735296979194454384024141709793736939409794877429578240516331526388809681724745682508280769521997102731069877411391664901961147082700324345732102836554667696717254686800750608364536842414743668035533885894075385799454278089680367655397183441990424604248606413586618781066794402457061398011889791935931176407003580920820312766634195436907247355301647867042160484842173322527633291107490935583626420376859012325594428151373105608400688932052648777706785215330819273822376739240462005002562242161688871797864741997482118017345776127231319577678998046074957133892700964457467919006122014101539397127201847407723441671705194760583152198398529454192528825390096420425973250730651550981583319235092734990478546075863651226508272250344528218476420667962064273531790484497362869603479751201670178019450610621803219243417211947681483569936084092854901126982980371083867889727492170806377966408757569999887504360360401647892799639199780195472301010979448461074300837773964186217496485871542602446292528823386469190179911033975043833880035169879898648203952906223219466532523512311724686000434966140586813667154388263648290522473886001365285835364240238420430617778346408129320073117947069433112502260458428738636056233194029975655992698380356802313151065312476958131248147435422189070509235947996036126512281738383036756306710035035949517062870353623883544702754718201078320354962127860924631374572822795336778352483466629417895640692029415409405634641498410820385160083409470383780325051726448623145595165717453546377129670911215192398113737355369662159833862968920157932499290412904630875383641193192833287912036570344680055930468937901084751395125613578685840865856424042537455039830038235522603591709426933361528688520363932418830647483751526924179324106355527190672197184793437191127436624890407389621518500655560093481827789671730452360909368298841668866091796238485572396041230351406773439500424191968633323352323841739682446963343849554266152685076333385145846787546877635841200093833018817645296224136717626731222329494734856316245677798990940000207518717643499660532651072527309970868742738025641464939654529466568805901799939049458816190942984294066696842726448205932158492966366015821191901281197070136806331928128599961793342656335938390695087097406065925192246016644287529959397955091846213219282312637493448192574626611328018891177961475235236638558744566712883263096491516616517990206965357909328826034198956678584009290660795942800607298431945479012894957626072171679092021158260379733114314253855535509172246130052444803286980359579465131370092880953245699892184164389072688764723152521687413298675009812403868754457513055286585898799695969649895709392749327990018345837916535970462496173839431941156498750623670464313398712528762706483620601347751222123143517278014449398326538129393251399214261189186796278778766290118294751745054937957072265877419529363952563254572816129934019687158120445918386877926350460241595346014059380355305685265804805994888516653701453877024832985837287238516517387849189592931235393477064216399241239492019358486629249123773585786680180376928199005572333961632327677621895433604158008117523212476809038377466872252819386976189067016301532539068953375607023909417553940948702178586587907682293483178557577233553295529155546104884858106174555208839623763082943056272909820227913694625469995258547485517905822805873373079651280624911723432387092520268151498079289601921114769573365329180396634399749611024737480969095623440985674100498769400619177227736102109837912658762849493053222855873356681495898356144702053394444935232271548317632241506762283925191707637082151450126569652238635523334058137656883075603239582304469927903843886093183501698945276896033705043084846359286898614670135980490253290768514406689184453428643055665706247330272104901570193919539655450429942583417054401947694374099792934620272920553835486888723227083374586898192118160561614732168501554042362156450128264678727445937995203876766487512181249888928575943945235941810598874706522641400451611158992219999499278540803357562009555137567268460227607988801429406544009076069553536925268961136693821778598053128922448115773001369893552289686119947124090264286160643330086563854828013366509417209748977100927948751970590984247520057958379043316237646502400832866785011042217233217850564450747190742346851437870838141848165243758144709402432650366891044499265386015794115337140233288012009062427476343316838477304583802354601899825486882518939759576076189943366336136280258198517915813989729885447540592170483916988514817878045778810578721440438168999008087870862491278406691100086845528421444351228633233285692725853531796001930396259645362073723331177236895944108882463389524426790012114709800231490216901927687937442954801306887790408206182034869869007802093996571264505684081446709626109643497335448995280148368489203307419998240066697874472148309555482690086550883944783131736809311432362843726681529805495038935066432415722698455946244010746889432218555098569035430098247919444029937338146326123986172386267947744206632872432425051151353213209479491532450249673489562603121816255340426363697532931712730059542401041111143034492684040894104642418385331256053218672943422516317462857700957143248734861058912837506271489455954243917645177081915001614397788765999547308706010366263631118507692016433010262247552497030686260751993098854481664498406123710916134363015382066873643502464754652969517245035261683543804401790544136807806055502789170477909128530564838571761307811371774740636574707167392059890871457864901496513238267822515483941043232979188220793800966161454556582533079938729406247018455907105837104885212381596835174380583189040132187262510320993385346151250605401778666311115426670217270096749787745885097709635649894337869427448334369381707328992995422963172457623398121951090630671430966250056099712660092847969400856850346247145357675872877049841589065695799655571602964835969699078537616103463780269777556163330918097579525090927149138953448074722931910350130079025183380748386567206066666204245768803237779648874798115762909789679901596608553985790875950828244804652808485538657122913989947148824493504424206443271399051204460348160009010040043859434085990122160414076615519807601849937740289004642099617794391336706445593810805559861180739526590050900045838315486766492863665771548141114821427748300782675520211989842203139642619968387345055850276824660824708892873059382266883708309587194253154333877926961995698478512165697215833701743481607400188120341373716005677753162379213329119607128337615881920351280117913026728898230723672834135863368734788822285488482018382877962317516569810360461821658946498392315541369393223993747215781056987448059115393042290699316513856058337323667442779803774155315833565805181034189617371406055736313743408326784335723608886274784192553873774978035877740336133681595580955615493140683699068517508539578144460562041133057016163241066552463392708913968836721840981839437292380849143092407777039455424471727563631409845730125044981291378123126765132022099981246094669097372285265059906846689402146215717613461128468192841108977698250241230243699651187526895189152631954296775024000950228074139608298951793846630322186066212110043186394874970248892665624010776609977645003441489160401506356443716748033705475722596096968335753618019696259871685587484663170625948092503431703734854490804888150702879337481243884223856066470302628848118357953744680125145346048726830784225462236188252061096662347046229411998564956993995977999248814000136119193638522771564345222520106017649455177199109925289214772359352617531097028355936940113043251683579891904850522054813237061435504307801912706474134363908612280290778422541458307827180889028230741967386726303410549246431029906262141280733776533641130052225943890109162021991554277794771778475985146145854719761229190438501939511021800985229608609878166480728185468965688991617652974355274225189012030666014026177341219378073129159673794454717063287057493657597975208370644029068780271331602087770118901520366660113336547032943389762801080913292801028676259556146951350898677500445557491910515205100716516592080578509629944048074241593129230410889355361417752714385937294523930987059600262430315330768315698449906087648361583820088001132642751088576152295568407053555819040337560047577374341500622106317556371781151665326454349152451421987074320683652545258811160272147459998977300668395937893172411510253709011638517912459704168078354205246720465063473113984724205366408263003231900457687622622248488014780661748828183411564780847174308388744582453223275762444015426428574619649939099407708270231005300772033367532582213152974044788375772047437910569823504304451494812823824018456559013688728143889237968227565878209386845440217042676621895730746609728906999582649132434714662868794628310517508120766075636174114941476582985562184095562192137454058523528595761477139538288425202563663075755453791415353085571371464495502827359192710260440143133738858451759966132280188299260294168891863775229206375161385607917364993774223197157677164891879974211399192599136874131399039140187099223047183453444975500060677299649145776674575784233741813706319412079958927430097117054083470077215592515260848994867239222244099293328683536951411361971940547565513080122392884346101176816268045203727822545312760469461784654379596668834362888636262052315260997048772680304111934891604217542111525479229521477668912789750777747232785166755331387795022073580747731270257740040058643382030541692673914389471733995170342974990851113009836244522405867948578894736432911816674446633496105578269077553602475512643186623514648585889224212416642817081003800686092724314156496322018775196437976316394492475282217138042362380680860989013714309317833901986704942828513737515400144794874817597280316864229607279647196502756367442848166197163212217219969797180550235163294180164391280154248361409087736416439356647215324535413227295025423466057648056639317098895981030091890029265940993927540599446337873885114204242693998491160161830920804428005395650202036864176524431137163419876020465507621535281334006531289431617748167144381004676097581928472786944610411135073469024833519042277561538195756836786727190734714564528088495078326737157524896950546772552441443530194824070027171341384925594429588422075314686957571872669272964578514236575765868389906677159822859343066205174057534343341714148655869995355695449037879305783092060863567317431329665472035280665242045190437708849178366067463001542170887065672646856986752432422562279224442441156066271816475474810555886653394673991399625703565573658319584327191889080200625997059004001184055446373819103221216350597809490340170637461327983132753159744667751274974814618626330130060060204764090194215951060107437662377242312619140993096606400711325129008202319155754402195874556480708965745090605812549771345022201895014955796309916621867650473361520496931830757577152959568416648471557446118192171531821269649553975624533885364056398588503229060112012190857713808981038136604990470907238758603155254902003107323645560968591144566668971792225560505735140585662063249195089398452617327947971466623604261670961665120235972191481295518052057159891909107610988307801177502017038320152343565876108355573139052069241131842988659071836180875892028271241776353704615213101704516356300817152596909697435350352370170806964763111653444220167032168341358376115225129104065655547178888188533719912391918131505364003403347098549401839592752428054640236766467020995352022219633377782948239980048123034010030722208890273799753875072231200106880295621587056329130578447280320265410806823945511583844356848290956679332846267791249584110433972042621595762875207956847477863290909733564258316205971983880579213964643491451886969664167879331829354616264335318697799262410983303396900438773070595725011210458120151512818042238963492340677162465120084462570701842922747553803380593066132384404091061517971035255535292942137613587468935223924008314866069344426037862906260883422221009094317181972692623692713307727445193759507579081693613319737653272002604713404942434044317501777386871461660603566918178992385463297431858587140960799779457856175890451633989038236844595313376306401281984788186029201533786513081969936439626507798785959015867122312959031776474283105883046506621208864012505989365644407600740613433840655427005789236174563006026787525657841760039197790347664731218994882393629388085840592291277458280823461988362876769970196247791204213231385042296901074900394331500955540930598383631773206824688597943052695936219765775113345571814159729333917533703614534278497148457912110497042249971227269133814479404277156566602742965624306372317870304542357254023591422606296029579195974759927589896111832655830094344497543312975912845663915670894605067220513599991480494874330059127835781524944063168091155747501002937112700198070025031953406977275315535923633396027149634585817318325312188521671403313174787683505800734516722674384424298411128096323110589442985067049913382399503725344578433655549847847766208824711422337684101492129101381280135986694386936545535420837056243205561456201436520861259342149050695051273396504941489073201720867938054172565234451522350299538336456630006288663897974754452664441472211536592698755422322694586152516064456040973557059015772833276950463607743078968406737343994716477475766864382247892817980921399932377838161236147900058281851976913233036173604989967368345257691521037701630573044485008353093341626696200315947901148226158138241801035419617557772954443903750043492932773301835587741347471477812811735932059578718912366851785555204949963371660091953999321099831205520075391815666951646516101167041497397649012414720574679167705244586636577553111800925724777764498603943190715985025677121656196829905778808588870057848062777732049216800886556388350079392065487061117758279702790429909203720465812702370335265685351698868349013690767195250716992378685351438356099646931072547324763671404355602701581861238199075531776051357291742969447444004033561353384612167710918169704398190105207020474635383408868122775254052574141620617044126411616151975698901429619493663983505365237358191570048828631332776841234828437838993929486490534569069017666904000622166123618104736393519743920884265821267141437059071858331617203073662908285657733720297148922663493529660610297411646037785824440918054808820443218653280762314706835661271532698673723343112297047949295359401617954388112816304252016236175697357777131367704287799691235835090867814326345292214311513763635567845380167744022980767298349235718414990580413858457590266870016012601467562427921710088339524519366030222458698190047942530168688233125610626644279920304888458740757781303343878164894168046431712688930063811923564248351496226812946730200022374172556820542720193775025098779921296511949038959623856032835704338943815180074148579144806618557948052582196714613837644197637307554193096522025327421584577100102221881132334917328205428554020926794035591044481798658051922683959500996680791282304016593109032792513056060217694832721691798700403995805614173332112297781617718047727363440856013501651005034343224222936646347765703975534096044987731999597191767094902999815788752230054814718905190410539611251895531070519820095675154046497210387802780347226013213493914220808423833496095267620024935009892665865545200523075809903441237574157349055582604472443524149988127718001334391225467723704206196328937698095025683977414823289268804943181681041901907363315972381351861602587822973341150096852433579125020187919750795887646181546439562665094599077993890734967794332568913110718966860777334958472069174373451344938024941092318562810841023775691345722766408326933918429438892830235607578925921859199425519155296768312114085431179771305588722874363183422203115847647770709680991790467703893782253233066953458312516429884377630957421307928937756879508403282890423980373498290887453297113632248780576496861313988397040304316026822385814024676622106068154516261201401709085830062083633398575054290923891858170528473260788300583170571838124924523047637246982399874820030711295957085538310267065355118360824770892663954119742208478298452366994625514977649846218450741625871721399426396875129887508216282917989589448106723413378290357978323036557750257247091007349524676600423207502976143700612012879238836854096739626373651141471886780159012186898160353540576554938431146193405046940669805288484953671210673630510187047768659165300379713992511057304938983084427930953154223684563103497838944679124382108615411339541298495159039626861384200226795132572565824466056008790280849179243371904386863307968141783930830557625641199120110174996188373034722181756936502548648850080906513202612173054328006646179029643527677487774629551609485739479922050525958417075819761838758294188247248373436404484086656353052788996954030365875793031608282393985879132019146903368677753716868464352519834762548699438537429591595229381744791886389803661499376431911225115030959686759388832425117774686922708531965200831968066863715824724681205919544610442938698857712256197563790050500077713004753240579328087442684439739028499018705029343282543400803264699479480180107067892124407423515672131758530525326231931568866287881583891144779669642569517627873668212842671490565998530994412683346934921536010099308435412869342819076056715690612183115553461482735727004992140507782552720395310006160399449253506406221608935226103537743645804410021440188595130329955408390806736208245429650966464736715476742293095315711539220964645500260147101209369266658458592713959982500198602775876531169649025779911796791858771239999184791081770875044065104771022632713574915773634798275618190706696138852690014234407754971891492588734155207137600578326544493825074546614468042613860604714561992617633393625160039768794651608775710410542813621541215760712011506540899983435531560996168593510583166208504347848595337090721409835364876187380778425091516095187829654235562066734651050182795292393729640270747981057004627057796750094626295681740465782129888689170546892087068866296582254092420195150313665993423968720535092499911454748304410519654714551369966606191406619059375719504838493953276691069512054338630791037331540594731407188900011276818776478597046216308925535587274038667659290319222828615258617540891769053434626830388156991293259927184941538842894255315658935196670376321510405877313282863541849112365853032146992813529713461144639181319651436954911531485545282333127480985775527323291398993227142696556909394572138963007332546436436040828689714184960330405078882205399090130639335718091769519930788276210960634743036594355830017257282907094188353752856159671209577276052984885456396968626972785450743485092040255190527350564606578410712351915627396730172005258189295271641071773402191865041414477165223384675325605227111165126179720123788671911487148975039648572895747413500620907129951323755571615194983329734980893385845155305141549689863923692532178333029193549506785613048879338484744068399303378959973464516157399075676636185230395564706117825337391366842493808955783449472783769065349653750977756053436258333713830608509878542800637330732661880020512138182515531605455403806360900531866088199329819684987945789007529832126171131181032227056080917218163506179563095444149036539808051624024998659056256731406597946952413433437272512442114345611812004438667534145346565899176264733618521666428832259620392784613240459834435145691610115080434585287537512234488042360398725736917201406672580784975436338605998836954261873807940381244272585300166970875815264612851050191995809093374062540070108417599238438048895232591455946901467310816730989854174715732475625385725491613269443671600607290235407850407988567742575320722993133099489929619294758478940154754020206776484337993272714370686088501559671409596882182555693553847166764325149807257193088371684156634083996087380304976548007801532592195273259410643514448511281662386303747599745179466360803235578334820459050710909301905344934370205362636138962489220088668320716087992864497699743401089904842258756733429670737672719749867232318778467190549313027711175476340602539989244069750868428848190694442319581766169408956575988353180754432884994786986175329378093624474778819587293215843614396324358439176610234319402936729612077730584300203294986249193011240140440301719883729220824906173843955906104668054600599768640975351962366494738680073653381989348292941735464270935284792535718769729291061774758781893260731268130274267614431531595569622175523929279192885471422256035493564137957011438329479785485756404288290363952602807261367402174192915897540384136655834946742494982199172671129058529598908945370941207692249774852075620284994276131589168228367276624830436290852140203273283550599876031998026485815593219250036477163916541888983974133671021572025310484804740603848110681180890244639918354667813260247263190913109796994979892090555283871598628631891562711279632063235475026634286827065974080000400324173340644869861431591664958540574261917448235993498730684434991346888417135818446417117620431001595653630638144836163439384928831344093857815026778781325828959460855811658221760228564739088124613346286663460896083120147338122062688426516722293992328304719542285196478937514599040619742939753084857127955758548595589069383466140366513950906858600311533340501610530119044527896701234840504476166061414946063925536552632147296193332581903162988285915909361137782767031727074181430281268308744083708423799259710738260785455843665452368228731346339394674867843788829493927533192563749635325402691717666790958242130167814430398357893045815722544360727529388917832347321148161678940245279593601406510001392035162608333937287959637680401812898063347026463272924272082942933818737816446721887124654364773257046816266873146348661966228771987681598735773697412422175438421224698176568367275908589292091481952866778682223961586453558033829244325063312271074167665246389193683491576183228689830789767725180709369493358862425222091040300651414798969162146269063764996351342878268565719109025104407251729811230982194726576809366944178870615649937739017033079996837908819736824830487325507865081079817205497083019728158379813552201860168728998580697531976864446628613335819923197970398817788384927599832351483319017283271120036847362986832584988775396630726271141978261437832506334743258979585046417436559665425662006065806475511441388637647239727756261710963558485047840886581940080270192957451844817598849891738478282579420673200830528819028559149963562945288969517238674558598411379555765394132064760608416109608350360895190514221457398722598099592501582674371946628377339332565849304772369886834696006412596802380742858611690493343907022139611104869300164752619447221698451188568073155280986640464999092983860788883286217121546501738107911622336222456735463778779314742652609569296775583571345411627377495218376097492841962388360562251524266859971135014982205822041610748265107479739618019124630517066764564237598592845588506730900557707389001719368234240564960013135183236715401390288878644903860457629392589095519866821785196678759670754503994896195252317687431265518074269012753021558430447522042498507534891261581805798091042963361170704257167832317063479454586654900772400606988983598704702149382874695252373307081898073320975703938417970072210174995209070216886136953502293197788804695413677338345601050418170714548700240644581428785620897303630636895911715901466575407480477668413758129362079149953637564913995817008392642060706578449258603561487437108051526639281293984791718068576674205875878659792556609531803399867830743235259011113542520843752196250846097748742608768387804582889896925421629525063773874043281549916705098479152465789603099016023253241351723101630887818065763674653357386650508030153208876328252065853352095202147545449476145024316328065954717524334474344372427729396590103976539767753376649830087207487636062025209040509099009088317658498877097824670926757818762696486123227822309126943492211497979963848453493765736130827979891595273193960519237028829880756177147216346832221441888429148661248440835305519155187192745342344439504287367690465825748255073599065056312603277744057889835077543399090804771249403562058905720759830300271667881915010352078339363922765290134396051971617878822992237308164427247142568336871363436081521850673273273702040324573915121087930525413645422820132553305979764036095262739926409599510451121444359957028911372615614022155875002316175248837730712165913327081988386565368062635464482266980816356237018147554839350142700570131545899072191499761478273106561541594243880784448892997080572008731468878654243916645073532912824306060996997878415979868895049329580508618015701421592881813406883526341467500317812347923933264710155933224680294390234048224085379131094091742491943332163115678293471945515125317251263713598829593194586388449588392393710891743531434960870614229158078582838555996728658305184346749587920642744794210123133954907243159057202833350349074599038337453187339067707191778316240500140073293049557598328328102736672944449691188397444899742150502053898598776813705095147332367604814217423213233206066143749097824451379742864868562270504447489925796045153017147713383046109547901562861568531545758707848702497273763351200723684041431757321840162140550633295262150990146145026256449238498895913781548994719028003760960324109696745637070143987829807736586864067103633475623262159515889246152449640098650234514420636252994293499907488651379060338779617661265128305816861602549238062474564146910233892830269343484369166113096215171440177700611422311182685825183485123991340312395652592277784076444795875273042651913248112610728009941298867521528004082223270124188724433441221995408567050052046934368267993239028214163781835966027744144719470506950354330311328029907889275014662505083963214351382919868166991594375794986549839478678476078857378220880179696254066564674298179291277341770842663025951638134780046600947195310165883072137020200201392204530460535903507369838027008831320760925492338132977959693038537049043046359943003766990685061333262849268491115488405312647259323269061978784187691202737956918250318915524426821227795323518017145579015087061694488838454018123450752821996317208153316656783536169575316002936155860340786231397116807606834594421267624562734271669134832731133760742446465919535720705907947107143573462738714643235222084998518097719084186353081622427767636120257879763564174627573550833526962549231955996571199378669356838309902869798954975976666115739580571582445786793619083034346853293210411531632680524338120596957530131119767289680715390282718877415050030784021796501301704346843765640647935857240343656227193200482272393767388902463939534899902644848036704743311272521482427341814403175559740897087066378633765478612005854261927279874929114647162405882437034755740059060927498893624883737457564451854966828806194827450789400628615516203844292720186581012367865973373680459700443516669790812849925388625368006758399280381140906085424405724858015442088961347600294616360095006587537144570826260466238537282817043908470792995478299425165588093174282403042596461864019018517631245494539638211814357753537541977857872002071840507654942303214633707243747103905036390062436756058846174597795815073074369306011443868600839426116260241873375710190566891499973370290183181736771041895624487222945735814936042239238410151031585312593463195626619057879861290116619497502577325129870548310574615629103125487850333546532871999024075110162670401029619757809631785368668422347895027979603039936787503617389529237212219754867491928194777303633693438738744670253387936293488252222276410280565035953761990381235214099335524689730139277787558215689459543213446801703852701742257806286042596842627844888093027209852739870169480465745415871673094912852884314353188727270959789662733261386323101956865446475689577503607003251167854444950673906693349569952194178584620688269833792355866459713428840280251202708066069988446986605230338221866917026733214184630153464507411741284295156762084234161658228158524008274497188769404025435473280391903314433849747516452258857937431654808417738526450629764150544501085492887997114925231168838844116328393915235113966685904915154755679699741853437045231177931962189189734039731994899354122564100484676542959148675302280911978359588078243705970194131810686391551381977400173238440612345081546983193994884431476931166916513938564056346115144933532367791816949233365221729848967566249305893927186896333662579150992411788282512028029987907953492437328640929185810158642071322667210438895698389553810806266469376358562678720624428447130150922537149411521226558727448574086643103358466277256977868937998938444964146096581763858642422258575974780344045098329122797700068892426543155091261057867942325724403765027429348263913965273938373514711098240275231689552638064250019249241389978163621514440306933488111379911266765303177199953138554306156433260912109247237272480362686592319429341291736205536227632956011205254649401159452965475171284449790328600278539736600494563619705888089971765469297745766738025857296306736636196879411458037411487056672534581576181380116856714986696796082213774129526512399296687177402881814044522176368378367357989578650594744862316940730174136758997207859282031889475370201836440967911187660615295461534793337179157068184693219101683394443558146061324778919923549999648329148875910133727433185483971077497007301015299151768473632122324989564839258927565352811773278687027381308922924326057128393566018851217947058780332382466101141826440292618658989006582464013581845985433129847104065264058543697181789558791483800302376584125958687959024565615622201745707132995993403325440474282093943718374313015931887935398437882402259318769252859022922986142222294244142390037918573559460258089163486907508635886479879316826126378501442010471005223997679200262181117093618100402628175911745766558872308548576359811150087226400029036307079400820576420823675824547634126264852493385754155951946676298687813611601692490680225307685501982587877020494236489791830405021800577826818798823869786732189328884596257416645861937913346399172041101545901063408626210001061496797605635127454326532688655565606859386291317163225273318566785233761909548787578413614836130261012536010106843667955377515677015522828149294684216368393649913257714588900418249713443753412710285845324416220449617720074236378581408833060909481478348580273994084413658681437368850837607211711839501655121610151407157188252468788505151729228317944121174226780105764567131104862174338040171654054630729035311160265573682971521772982754051250701979586517898600840328361113872146037567452359391075985583202748944813357890598985012653246349861892722629998556267222586764592276669804262160864784400375996847539255225690936914971116092897480163452696552260191713900827384715394475983232464778101281922652840999547989997174111823523585295129256391547236966162280482765463103165821524489402319273938057275012585734951933029892781773521570862385589229765381986242497382300302268789162149443061170875997517710433911149332400085719842706728812530550694891625086391259267255165738955267732649070224297176801101876751888663803258001496218115994091573062467611516488593116539481898967410075214866811372857922010230985686105226337703613050965694769406538268145288766661624327287661765329837213885980278030222657960486600511129699926521231677803542150511269338322657696567825370500559835057851391769132269494597202129717794604650275294375873322602059398524109176867609392371657089136484005689068862640078279541748665892033889199025911541591300691890197716954544726963610932935775991517029810774942260465202479070060627954911396597021345169703617673596418884438870693429515396583334037381266184739562373548520049325167216606174646110327153336368193925855465536673902017685736208722087517597622211656839504077584386182749955545146513682849251252419163893333470695951624591207562708058965473392468621203642649344781492195189167752544992527137653566171507033497286996862915633160411273845076366821823601862495832962894735487341654303760897874020749197934196016981585148091480384503557368877638246505289363147793967774956422068684015230751575276897491063723751142133897054366290080905491705642258258249399635678289280213460391987712920631085279757901562521685136043413783620064784356127150352349619015498103804767293096913384410162688704976285604631623469195688310920140742162265390204811620494735624781108056284735549196294863024266745522790403676414075133398629612767269909606102033123168117512969778414641683469996723344300506437078424329082273406799033044657942211235348406863259578209581938941234744534554504667317746416824660571685126188093965617585984354604152241502500854616744937461725688066877225567484603691072008230215614741545832473475878090909709731635190361237928229460313478437865483077634101590225179784535883816055272571428862593307328624236355884427456524463925372834602843930815477190010612474741823747369578159013103899564253658085344949031045801197995771648370718460283936964883372176047942792528964326765405093035164203507820681546628055956598515377469933263119228076494477994119335564682715145338042647878711384890870038825874379583918843850437696713781804515683861054061433497914293573840692285915971722537748273577217049628000167290239327951387236198231684882232170638263714267628282724862478088980462955655772973399874009109167327703189785430672686363435300647397453039065749587185134044082551854976421609584944582579462229050109891449729993024800174843831273851125430009356448848491853040887738786335642828913341366659682356666550708913431400070962001265537814144076089315454286704063746317311447556525504135525922859520820695671643907595519681179470109433046553123811882169321986399962469784627798395908597309505055325089362767032147423536781210429563497815504261956174712866888653886193588801078291277807616742654461532932743185682026046665808857964385280784864169975215712043708564991495662376161314100663444604289951087423940062272082576101443991617248366775928359542124295807042659450152513920096357701173339627806328564469366227541642061613443434194370923506296210203140877502814455147429015134970320265764769914221070485700174654813271073562026407861932612569199801003059833484601138434126628987710522851442333661758261674923927378958504775119554402772339480100654854808708803793084593510128438124238883308461886004151105104539699563342000635255540529043591952913971003594286380901501408104971182651789978043938188661598079868222213198337000570680028769755101190437463606474072453230148688555120330135801494814331149394764854828199654051889783859500804934522441371906786655726193004913213111411349728170375597363623254242567369136510271363603088555513793398626028676578246474269797264708945714950068077930982769083671552582050078324528688004628692087887561802869755214013003198669884662923938413309213551816002137866514736070629613561712267961897888976373778626250933282334901086161405490362965318996004917121888857874044184187082851894651542181994001294814756972354290749678251267333815489461734920286201672264843689187098566455049796663836468220810463385613578348270982420625521360481036513377182362304185261249719509619013072535901695799095602038852051354713732851163911147997896414487838480849392849964169889224751603106224100044948173172332977670488114348265390955455508658724948124261371714178874797411512460964811093738315820797331781387200256254946130493188048159408159356476246779009776193070328903874582939039061862489593418764131395127983458522292750589654598640523113233189315043198616503783674611827086450957366990191841403058019191277551729054969993070760445327396412384166767750633605017172926648792195627471865995560580556320425467826632673378396265894589065342940836803263548292556058758885530811181163850530371646424701948025709075714365022907547001620862484064526665029497068724987778348511651602341543665803777807896181960357108094872710115493934505623246340128791914218076814360003431148106783420537117504817149939464623777626579265077741281663837151019021909356889445420980765259453875157761451197809241428289015264385980091409430443681283336003141418057462257659036851338942021126123941526357017362369858023697581185010308427745354141561833089638298452724457478244054905506097451503235462543156021322481958582116794063045532415699512053559204940117314322142414492606001157783435886503409003251646620826107125079746612433770447514412800193132360347901068807849246540520143182625429589545067225563805763330175146080404564682856962053532731152298399750462731865636497309089436643252801261319651396130147184465046477017827151375926258090710988445538575336602184148706684288625628364520568519775933838381300385795338444544040371484285098546194145514835252789695821205872547091627431556457104596634691236385240051259449927955130962378444255557048252943891052895245139920570608304711972560320370665247741758989595067519764317916408361563869545351985326605332273608475163788740155219076933241032965452308960276088047225306038630452642896446246651353028071932002107564805074971100701440390666035148430239464821983071372391944999822613828223188555538246639726790883379803071009971915205662909085994821571090096336148028254561900635294496460015506716575284348918747291356243146937353849587897630766137291513543816512252010699532011385379152545956651215448640780776822176222543180546695223680642014430505773276341777459347842133843710682308309850779725243156758019233138245217392902580742518367521413240817684135307412686194134244917670605834842108837107473645032870366208545223628153530290544262066727095155194631946659500568199449336425373220415227357395085397405360906624021563999800456095914668179273478200473933696776861698918441921105553167177699552822082037571634217345906946168591958471112449638624029846902293902793510070604531642653851633575607386499001173206154979529227010605131702069781691324262766652583797480920957944161284569664680886588333490933062380357541498791378256606745665107129605595839301014729035167436505720014856916515793191493908974152492671161963019636304665436597116594643208068122329651376163833246127986011269895394171406942189835989796504308404284406114959567290003825073664408123473172223546503457221384253452840386848700174426783210120087785029539492578630668271587673459735945787321075585736041483838139217176015806112176276494605777752480235693134503449737264334799876125436237565435400766743337145589397058684923982254564798573461747926825646045885325663373489580952189674266191923759295225009145335621834365765537168765963865549438068555532882127325509558001053490896061803472617423372867363340474604194051021052325867238593091593398119140992779935707606309930386874848114390894867492868334510769422656410542555598459212260687622791192928522372502291004280695523734697563071020242684172603061325577430002614837307622914935803671870621040386307812342236157172426252119550256809583598494873555779318425662622762119325325857684617253607202790264422718575479694331286679279807786388900308819540385092896650229371238646309627858232417339970238150827910560466479263373054215234180473603003362635170224779099436356857778451138315675575277987012142072353385243859255511372353977026908738578749976260481371530533459180467110107183319270912579631468232775235942347986764216878270358075068871601201862354381575275753470961881018428008667773091995680844008642835289667621706509131656063145172963546595861985440487016184310166301447985649337599833495392947128650399704172497114001621142501004936491644095815008104146369532058312614340137861550009237588623868418298897622883342281581300882085685074447855497961623166663282890449471619617188115546834627007843059306373078147136528960562424927724460445884505221730358960862592960224826634803613109569001579421374873498701132796676137152231280712477124612389468187359991446940064694486618062525572338115904565058155179835738936712107729523986897304295436235626192245730867069783377687346157500262962862762840550110731159116037512164115302074625290990584236071048481840524566950065911940267716483648849692464637283659694565432338759508338383632662286240740904305377239416487492497949808051288642769624795671589412189415638083619633089246262907511477944080789215247145387738050995296020334185957194806763771872933376781003232136014043412654875274222072496317880518815736334645181338751031813755805679797894678368976574743145719873692695010012917194485781851547326723420287087493014221247941097979351230193125985880703716791796054594347110648048381503351861380750707103109312446018280191393022071455580441314654467923405153593035956109978339093437113039629881687835814657818245654304778208042481170056472318360957610972819597164484624715265530350505686288879634340813260787101427904331233455405204138236825768954673867986032789570986525801762749641186137085382256041709765223048232521271213449186292196211008696757065689570690404860540949874055046455525021164250345771727929992325075968203711812532520263425400255132465986186420574290778181483725027177687722269784814329753084162941524735598388027924163975623545122788338281539987914414862802936179765824494461640228080648379431810066486692310482895385897767422314138028475737902695062827046706083554503514737187038882157154555972829973648542979289684623136932408919549877182754113646510787947446897917823187305550208093495968929143905432431782809163624292611190550814868285824211522348458342745285982791734186900733160271416503370336700210262438311585596145796896159057868499421348292702529237399627848325931689017935843378360155816828613547877231195255312666396499857292499803473022868659045286187849774018765491371635011342468131451318151261706927409795585164280119691110506026415101610756917812155238034582555760410558383576279177963156691893903504304229918099129599304219451220617850732612265249993267143755902901720595650860966362890917440652186334207465488283803691736274613251301605338779430741794064755050486738043206898632667110371887381208524825887227989159270362599554502997963154204348147319082903843744384854532134519658201805321304007571013035055868412293590280669807509130707748470504273432662902603357153379605597310902812247632418625767904017740150526400045756513901901373082101766433613298590312041005043763388801917528399437549946665309426463026585968038768620851677551387670133475470988049103392675365434199723375538916982254717214010647977646233703121242861904346245012449405294036405072697072826639216774558966995194227926745868216352774438004235365759975133062883987117617806062687012146493694632729340831643667718261468741822244636524204251552711471811784813381177760987032093448763097484894737969314501609554232390609114156450551231273503256028693349419403891573686558121403954758925939221779846423445002870041068706234427360704860516103535401878996548816087557915121689869307001464499061264395236076319325099179059221784181356066182974948665111874712118231222840886450603714457951661319914020887258660653742350664309802301921069971587419066371124994357972755858480360662201278992461390374617975926130339041865927858312364430456277220830471547415414316013815409173999587256274010075974375233560754159043940544991453393701145701969267299810276457456405823650603708314423875478659033621497514427769439044083435067262140461298690469968804596968822661278746315609144717382735545028678871148429263791238072478340314120941401404952196907807270306654148885733548685707355712169506651964256709431931143340363227750556990714900004781476326036621837156634459471784074161561502963057118198011045575714890501556171024185913212084337509210232494918073392454828427594832642950070778524794773023736865455452059019988986313955129829340205648999866792691911811913820546123204634195980503056360190519880272511148150800123451507657433431818121470754102263278719199728144367427290165743422122463412769743375481943957351331162022047552113814963209346931652362599786725757188637295191066740862463786513456817250706202623383668307014380496921330190345415829862094699076321947737947227055830847250066748170254365443443084601097450810140997829433414709398856565558032939734146233604202284739105339694187038005356481022159435516379463501788125543965590208760862879335513464195619890781019790219700436237939206445589442090884624639346932099006827008515793539848812320768170097544470242426278530885289650765547154165760337051674851919939888110175466598039653368679764634704445006686384352294554172624987329115398932967523412932424619137857724569863267682934801954157228439971981024269572825579879533098350265285474678860334841420246957888050428725417219251406366583125401063360694334282775902807131008124142257815225051814808040880348076804654197529991209663112916051525695074174928819209252700285125427367208039928228636105994744099773465010136543376229046792921269728648713912724322694787645689548159784708178971519851446467490358147153727151239693436254592209904098056002282059496857690375495542748481774294061159477178925251375952996292096300718114845648525297373171151534375289446721846670078515558267086180182889177625775579551496537131839184729633177400278389215734455613508419987045672506423484327448144301474053196754945265545604223002324854194752948501939020291915011675613338760068209128351508532435445464987322405724288175905357533929053586191094934387253037120351646852766012856205661323174384809852335762639432653143741651920544391641658764201584578891025039088618449116389754312853323056740928907771404046450221170101627185323512513776859265809319006287861962160761800533383171149422449554067135450941004014200460735461088689920716691403574577501227437328293657461697086328060379154590672473858651999808368882969598042792067986843124751708235280213193741795814892090234501691747880461830804877555421321666743070578035146072053939205747342155472930639724042103844574206433527983351971874977418756502748956275366834659741910703272056830891278371119331841163193135518953426678614766172165289546959386326806611540008966841736392045715219401657709625235594728065587461988136945935470725527864701688682168246454813464219171935393516744194566033435157312155609337363703997683741917278879419572545060743727630404174527560573449794311426246985987775115089270915639869712260612917010967449087333734380460975562590538281244630795269752772188698176935769024334684429320960000444971086817299992678645141876261333944931107897641617194719456449533019631052406483678225384960400926045374467801319294631751853239624261688139175628125059238051237579633348218604937726760744185519028801612675210477423675116434280425863322729632621346668889371912680707229836009044089751638205656352721967861171938853373604518809684325460887157931106312457999413464331078956728176935259088138190807313475884420687059636326979020299470255425324188041480384355867201871766699705807317085954456200869484743156033135303298248435571334464700583975442186773379591380230858946245888888291213197842741018534151525693151898096895412781398742750889081126672885950095009687516381419784291675142862827504635923033543162576534558740745745881848590708149168688598963705225510886776153290082339071434406413554707527703405386704707459889792306658642985200636126998142220925842969795590939159908927457650290830265075337120959292171518297139658683262188936802533731900631530267288849080580264931541921413453739804194465926539057647964770703757615247521102560387580265456178664739262675724820263152343336118031474457891595954495742934364035139722328199342006077515847284138292530294245324399971823957179731482626095417878014131233987941536728236717670811233094194425419796119422306372431963830421460105216531582140167915404971182291289703896878268307970248293300047267082142623257602879773642822722698684220650754488111415153437172029689956797183044203099663053586553982811332295037978985331988086557864920876380322900093088050917599496994538725625222331378016324347989485513478318317266468668210131326750813109585896845468289329816822598943139001333316864293653116407591733074902297117556583287661846993221731722412495701494017338588115999270034766546789691166624166039862197771954069409333654710249019199805160166307653285174934419788712648004840319398622535175707030436866961276253871028326658371201201974397495430588384527210908969428792423504664017324724265014384304385183257604393308421751075089035974926346410672993426775248474036108322233029545647363875397317568998125911086847191690557804547902920040888759001964860999552980551795278724510138995551737949308155141020187138743976437670795270939643354360586153965085227261995343147274027273497234422543534078684007670778126829001114572268116542707284895974637032338188945520009014571068634360154771985782161486191737696434373966741684026056195165073579059612719022860808711499466297312490392015069506011893078816169685854576738202979849726134823829626479508418344784547566554415580234933464180696211275203886439024318526028943216583315901416197766245917757535314539944094391342102518068603849812682174029876281228996064510790347490624243922279193587718557242403987735679288458381244180633407607310692981663456680766063368973104331746086996790875597937154903948192534774733078374047964379807197387056506414097219331342419416042950185207553606687233853663514545348854230948577770841725409966454732108392190887997301481304705313630140249528266595545135154222889125375380545839389914400149338270466073548715433426836087594268493296375268906481217178594640389527796566865986487911389818107483446957425265081463031033709530047791520418762898190912968244803784146812449065033617174812523358000916889306792045458609219747739763644412467682456494417332624861810140110248014695489400611351183373005556000528217159377081981985002383361783062726160858848045852457313290456000334151888566036980130819519812281425758462980130479628090555578945563716843918507305343714655123284277562145474129073058403114194769109119802779430716352994593050560818076590882842281575095896397391947435773512787666169327739619086219388224496765785450135426565613091179118839567011120770675775510878224386942473443073627971275085091711494013586013467802634888670094431251610375700748074337152220016803495794077276519024071053918739116067914598237398573159716189682254158948898950556059983869075979811266992359029809393353273031601860425247325578123333980353849575097554721525983958038379332531874640344474179439124781029686137101333774586685784180186135374302189470101505263492155406356970994797061963968372836798463430054949908641527994208193559797055027032426407296994167582241764353938590411283925224589913479884159624559407941978081017567109857764447322839354246905942376165861347671077961360999197629322077179133959780629006625588350811061973319014539410799534399746447843184733428897442212980782196434578407650199384126456014916927719337384211057237484472483337995666255490657869619869740575985402518532729597633138965817688355819890445224805763915049281376460521035802041085618343622468322932438153014534705748946362182669898424071261516590287990006097206129975605245967738444090089867445872021798026326657392454768790174078711635469883643723799385299383044330513597525856394646106741225882947670415549975439515648476569089044854881756192901015012418331193988613085782855110338544642325290052763590778548243822546394839210388890961069664522311708294507034980383969749011492156026713309505199961224319816972567838717530363701554371861593859579023923299971017291723506965757065661655845099124312940288349309423087412513542011928817424857522804733683180241434899774628011688107862312768943653440170458631426361497520009814937775443092598208899594526493337378243684940524013512680780996038290679658014155614893815550527498275845699261077281002111991289954065051373383760228597639185047908580059944136148721030697117795922871995746089735424467229935772157912788725501993781416695127971068789664925966913190401371178215279099748937475083203354529425464993719337018424595336787206033410829470285420960541524820509173009915962778443131809352536463807022948222833167607763543854072409622807955792731747449946521890761116789721126310649597119561753995124342186360306673300985112147418344115250667101189601162269039179803793667557014327744877226004416324895192451894786967357651224140145355908356525070345415210183739626012332483968098369363059817539810468676140795857665379485879265615550785158053562895652230077794318124515446574887610004366478944171856351039967749743699920643561657686249730549417117069959676529941247205855292722028804741559115622605942985094198864326583410042368978842844479918658935636602475852468475887181916417822932532043820687478863986160617874388410940729183611699458498525381694808619691092043970144118841180902570509005087187318825938279687225596386649738737924768590474819589590893680702442640527612820613907117452585082466395866583631485247000117772380548720916351773185433216582046605794612728867467390982975245977437087161890836716133400817824007764409142953434455670607072393291173581655230627497064129734032405160783439778779837406256454333067696521893671164054623859253256705062269589497586878303211815435621743992854382911864040404302112739050493423943693320884248773666474403916789973931492627371491597822317550835004891289823725518698535258324789943214433849173239164595138334607488289660197254504736751741141846515288392245898735446328998731104846961603039796903656550172965013202603330382527144148436775027470276046645213521879177850358331614144723524977380225470811710713890919904936166654831916778113682638013250490189638023488760398126511937491194567380170359618504276833762103660570159321609655386078327187608830725483759648517849817203614291342212758793756846373317264604631171361830493374985047495432278599822703139585241646102145595722750280427303878218331784507724836798401889197347019146880498957548384711293402417278452977714264589483084769010355513922876102351046433761419198382366775062530178415417042702208915588928372973196657794224709398001319451681859074911079333657404760935677463850571698460953700734308750117174450816048325344318254279438383123555698613290607494828935096515331767164216768921817319131276223827808114192278305863319465109858219720743181224289877303669006673750600958168584078486978148744472648585724787545436919651376927517538101770912230822817792493190353451527448385405428314323264324823564156914264561414599261558437405785684011632593462424297363311256368676916464201174569375395482869879366252216334013440468580639758521515941855157079509266605168266844122105209061340588521842889693808168014122350201793091999412731282449207782410545945351760924029557440567480241263757228732765253873158477344188556526435952489541053088109683449954776940278425024608416414524919916446922131643638144449586703393322416330433284881183931116284260539127018881463690862512742547399803145342039169957702703435447781872641563779097121779779793422778423202938964552977094627937649206910492250231860786167547213038269029566894888477049481735962400733988934901793315649740695577054570496171519747498430425562305805929137138789291949207859512764795208352617197354729523109297076781615194087283853921833354039874304403320652638817386059831730901833990287490309058385001214872731587661916788603390045124601872969174107233953260764182212872658740604718819559824258012594627396624881760006714300606802122203437524603039604231792393942490127933865228921773390678838471627430312116198237726507326454844147721282339498509512693468938742434128506645159799192032475900014797507257746840482571191696550940764284092769882541105619149218448228190693391300878316849131872052173107279472403449626246823826318248808046727777657498441858238676063360362363828081172985931614359200937718496137131439215162502699529413798336960957247840283765941060821658076508684056555426880840644344676439417304663306463837820657599092571183389277866225451443766786149623171156654107637273871025955437338782901954001933341047131710711114590711163717200897487198152331369785658008715081946823361379622442742804263960274614410054821077524744503900431311586059777825003543380519093801885644574941267011984005895896606419107983098824552482873932244406046235457771500518779135501999523243648278932086895836011083865571354882126507951621041234855230618477503338346196963528783863307094568238235072605383234386103722073271123243951252484646940471510356617208938103643328063112645318039527301222059479858770201835609695937964102293360079981471908959406164392901135746013066167120424918830083656262591481325885377445411453599776387714906682868385124662861184485518908246949387077527776480181875023707600297421638543963067301059512687195130092152707974237988151475924317912843004036781108795172493836995811838248616666184996777899204601726718335601214630026390759842063016370293774101738399717791953660706899141303303921614632546416965280585230785893671626595395418696332805244396693872170362932481728700832756677202719057262758521571745436222030681561216300159990142447330380178756489866961452777925449052483960044700701689396172310073366534525813717609177208219284539111315260441867885992350239205221779881313767204421841647409306640532014294841985012584539332106855598344250627174948374597086554888016770006028330954452549958164006296677081590104642347682892651420564828701026445819428550772752569997172890343004949415938005688687221307922028100642872128517643266314139010117003053795949585194099046069540879809557762511636259661297743211613148858094410274713868102446127515570491163156858523203976772229305868001217077067357087756173996952458892963616367115513849932568267865713816292760126748220142133830096760194930839542230119845338331503896264204152358307246591131027204530228490649353140156675676542928370865020923162688560920505699239471187821746596977427791215221624340190020553006015242232998374143598097245345854347991635042888979525655559671739877653168230420294352888639090509202612904560915839413807496242412448366129834119858698773289530446093655188006979165470420163386530926836098790260325967340273717319161335123718723424997953303760294549853096524147945014244538100696243990286957101268238076478086454711094786048615220853402834262543252135775186868703588818050134996707291994958666906637117324160988462530048741630284593597170787436120713106898293239311049378842458697744747626246039668617374765087278365396570656948247405424313477109298016749211618417633607335790772194858372132200449386064371916945472169055496859883776189577104047460903245497261299395502724611311549208100263077896267014226385212723154027266749155157259012566665981940072942984007552923791521573766150013918770130144804496806629398534202132411936960418923250059578142688758663925460240728266630351854667972521546910427451061638827964718043152221634235587201669905096719458143610446667740758904845306235794801249976515322367644792377570007498433608601062924987848841032607663205182106068249173575947144140836952672167876589620123782202182298339948417350586725912648199122207983856643896846961883389236160699644293067641788483226915308876216473898413930799421881116344552988335402447923753015762865824318470775910051222172722813966149511748290061935610838784237982563919108840683182690377081858101521198884375584004602290106523189462404476345716246501808606505994230220050396287936623040534464677534699177324339770442289785697386867598390183055827182773599198082256686685149260770305922318862525860845333291801723648229741752186468254817882914106692505687269510171657581423714305533665557238114817523206554106539955407126249975196109957915731898439595104079967128837053129905822396689560395658547963245187728442513089026663893327976944434205890715383042333056245059377768055922753908221938383980821239468008767751707427825529406451476784798498882911254827441315420821708636981229392043603827519201502008679274210418087833347248341544372125106709743562516874542322198972321228264624141400508897044767982310333166513627366299549213522994688270366298718958240938518177129901954284042506823928315111956812267085914902784559520685590942479734228044011340641524756599176264009534570028291604798588423011018970218466739188658436120396102438885303388712661848239652045935999514506644450492424588427560409251719466311125140732242622168087576684752724587115040950221572013881772475961004915897072320669720832880257397881023649311862143078854293393390901793565413914607482350029915513815897886267522152385477791417149754036274395923328898637631527914694148695341416915984625233939018246360651781176686846022041299167700373577093878914376282967539832574508829923042011207496841280282482496982241249640939235655606090518357419264507230623990731269733867762247890881390598660592387498191776630723300515381672630838137475682257953158912953149756494179624829195996719015132792035032918643638420849640144472070402445393273846894969682236842569164366998542964164692286556894666024575025332671219886712164472230908898982175656877052624695622278899174200265828131186405461709093361100677837265764409776594265386416230613337336315494779624306072609354052523740109052633971172484592107968069148505331955324025332988164125040407088347287640933872810884924219969298185461947684800969072074754946777915834283874280216675047220682378402725176582110825215044164433766812607344040393181673708015860341251836211000353736153268603301562189614593141864656042347495509625324056852801107168647988227474679884005819014304091521688704850784494105299228725294434930099277338920596663933887338717576496367641163900510641269165204184500765239006581858479110896699299017108520924626220586376512044617226600052141182379044243808274827942291135140534647099301721993238573358389451248688022643099627890499990663690339279123548522100074059738012094553211955286921290719418187717263735560387085093170253261734809984170616052936691333738521486024759922413807544878568961104617525199400481662365389125556553900188367087713558077652171192015906276926743905384794692059486899580857670086301471202778621035625127526720915616399116526136438090516029559668795457895853121473027706278065378125842022360094647771158777869197698950648828990145971161513834837457733686718095706852079431273921622785966258685894756338541536696288602573502407087433077061768904571959254616814733153116764812037039345371977170411625334802247461105279542079243362719783137037488286091234725327319554502842253639975528547916507297944647528406526596451527699860625438836518702836872869573386301208228768197288872394398805371400481112156916608334494219603867144360133646304167746045212042598190425105863703345347388444751592212930340766820155480636966457044894089624343574975059815054367307404273305364740175380049549501171346541372413281070010989510752631401052439801458155168842570257408670786410879393225780787608328438451074942966289874450466210590408275063711389884964795898823876289212431109790090601443320223078808713647260620091856371181824405855144614117835717694669118289493152050758927814535786569494613631607530009048869951677244651443429656484155600965900644530871273935182027198078946962626618427863776857644609512264031257675721578278123455845508396828240542377186123200016093355891854584629656371585374399649217090168651335193775782798983085426238078816843971197915679654769043096427498459225591050491546608139711983001934256785718842537099533947633178557387422813912024336580174174472270489311966009475391943019558385143460578975617278485146029116234948016920563011442744552148566225209120936465987008865937332669386705421765021243335867170470944426746688741507942611610757769964811587103477225853702111261261162013527635962045900217488907390352663077766426490407866109630446768795148174373407016962594177877913043839437667879284259067082600733487495129014777729674425278697646965413914023402643516073856242458232455958078206133550289009397543547203438203762530562258232933884561125828164457789145271239829416406576779545290240852723870282685355238947294378131391586970687144312729480847899043605116950286577015003679242540949168328984903042063914661296617155442076221451172299010512555858360725831712365770709630796908593735448930137302356693177159614596815204543503213260293776939662532507351028394772935959650474165988330738567682579192451691594675578418429680029214915784855086926509364975431805156319589570477409118193194885315482715737580670556394099772127951840924074603859954071209449837851173215363126775357382301407549396510844735335733336200932540745196741183214015622449485669542698687756710690936434708978150606758652275169899607191187127788264280132066048496693326219042200675664940046699322573747393809739177619574202825165023339970402430641393012216090099128884642109769649241990916812956377420579995660132736879502442036416055489498286029811846369656916489386349325916144406102753921033198115353224608027346888620244317140877136869647980575710546376572740413285722365226017071418542816212371393828486724955831559835379109762827997448698001801124952104266621209102358641125450821195873574978572006171567890217979328883604491870215625849780614687617056303666190148050849358112446486747829852931087408410049712867511612668525438382195018855028956553482764919475104238534279973469489510935813541164488145927134511428916911839367196238631945872598580695749531107711197923121404049131994670958293706792562586455961414111975299969394351647864392585225295628810135190252217408551332529851308421863557518679691035276057177345164622598186809696183315865504136942827576780084822407002338970438446145516672140018623560942789675831023178486943651194202821732983123776196783726180704673673904732689882788077838162071070073007145239938457491504243059380432930133406258579719834370698868119779927469271447301661017670539634925625874280053860566818242920026472214480367906979488318897824709418117500578365129691418883347981565783250181562357016807804764675312284754154935743077564986478612209118704228522893074912543491266158626010452445144255890878004588124351154819150616943868501028021702344295975488377017675323467803998377228441663599804497696630767260057305454498404371220610383115739610295231644591106545225917900317581491241530189630756030401710608335592730916144031825056010888584393703910432214584637925934216783168548835181388375434932407263504541355914237284857360827090098880547023970913225708669343171952872818210441080346590190311003889203794643340663161493599731988652546912137805243411226824750024611480642697139901039673024848931609762254029715515952260392043766305402413596163111519689767703728356904531871188294941605782223091860487694072431729449379145836401506055303116686569744106036174556435495875300821619795925275038329297632758697089394221231583696594436218471141778174697630817058030137629402992564607726735585745772147579980277154024679403294613208120762364449932583709915843592521876139720261317583355657017762329996672530921976150861923943063165490609612321326984385574903812754012024750252061109992326897598889184983419291220341712206374307029039132236090482230292217763180729602918779867313120105647308358135258602847325581487482874559761312460829827127988112626195842703125985869099900905138364496934118831270705528853961026152988996677026449936584308291826106575923813362585895128096653994092739243008623397416797417342496621454375331046720523907376426949740424776094565148142861510075150142601015246819519007324132299595042377152747574407924905734807944302981088053933427964934647106201141457125426772052364490683508263000872515755840311754326997689275172430891853226894555999675780579150834605793585767354468755909837639848193685575433406080965732314900546658748969000352685556146677067589058800050046938713372352798662746444618524626753738328426979627167034533945229881577205339039706774422545723322309720158346455258880664091930878195826822424630572290207428888390192234096873914785508084928175290336238241888119573514085915544174532605670839965683650381037397359632159853259283976277684752462130649758631928728970687603571773955184302382908522474689099958912607653620338117177704699833360166826082982333290342801123054924645969116213303671124631848398026245549299348612458164867848175223396613474290970069570683970640882378490454497110261513681398835297828074608893770834648456659585091666465186084204943615019689923144962795117884469363837662639879001147537459854128832322720746771591974015709282884436633554155029457022089268956797528968319422295324334950136387876824749226353593924526251339519088844294478189961141536186671195309880063828803025813977226909822624186725521316429464850302732853426996930941909079172338071014835254470975358744609734114753135775650141323170590293463071285314815372246542815543949754231449569650862183602609972166935314914245099594585360662190398605855069199474104262872458889560777526763511473133690553358741715715339113124879676729268471586674751874196479750967481544160686136498219810741515458679311453889196635143415928067682324605468915318706821717242200386752955035884262992217953671918202507134696316611032857781844187884870992000454372820971315584974005182510357708139214688950160794580805449586662273847943061179350078475545087819689037938274887246975973857001899802620604133197234347706553047309278659898429660471370845985912135480457341169399373650682089492147579800955991548918976066085360374672706387021432110474713351572150314275459523474993154734268123419152625745201761175733072392512013247989019895879719568195195566144353622339293400563360254750051627331224299256261009607958561705733453224889256649656038516120989418714255414603786331733328687319074649446108427536413117210741799600797075506089284363441774341427408893054821279916116261483305574076916360833019598701858839979845160516082158734635401360313323520747801084144775033592148862265654541964522981399201689248463769909251051408672595296699012899652343144435500957581656996465580884580529318818704346879320156112400043342903199467707934892956211049243390768829368220353063051760560744614167055248483683717202159474533876968957742760838528938438605988574306951652284276588864606389275326676448606579223829568684530236868428420084030333109293874604030487041319573144797266874659092126016959591007750049993854885737821401392585472420604509126119618145536411905024275749841258935307459351583480009231296898243563088464682517813080492896350865394200594683946280334376919486350545666341981503905972192442624313639105697353106799990715682367116124469701549908741586157252434149765707609064917694681241525272035143061318007997142324866934532126960690419026725671967828394558762960269537418347567756503348266708652308203932717986954120281801436695737145588121817480299839439773498200985507399722596538443325649435705864336061109424471601735556227260752602047656688883331815719608667760344344116749955428598432091347987752051617668765713402726299140096102687703515836676088608387281829060451105111026095946037745429743837816796389204960059152544013688368937071728293545612388442885016979645359186206965696691909462026275198284812266664937049329207776472766196506211778415181572771016296849293619344687270481102015568962380464786898806605764963376029151060569753545558406317744726678723662287779382714283227199897578476930122842367593824239548201726974944893907896761736413274636411584187466449896597987623961760051653483466513272715014823714434872789982637334382063430393770069917976903746711352478708853545737193340157074972991273131485927391812235132236621962264423849298109319074400014833239148538527752606051893209628387540686242622009597729255599442345051063147328700878229640092344838164225111894076828022219350007725178453455587531606224793270560375211223010962823218208532480828218215581984635366356263598286722859041865213837877699498055155642309443195084297797305641805025891301064089489915339343112195865587157329653297336821232372413422733901189457406328912228722262420780412213759575671089836930976105740682453629363322594631408582431594152346721166512083725695394330960431684412099218419280755687051650149578003659596377236659565480539103126293781686701449155576438962911928842924156655409389495521326225541370879084827971034867762390807874230398777105666717697858871213368840444025265039125741378900749722593374192050325282199761463819787554737191283712308940207607714476445463513378833194593570413307000602211024858601114029089878443802912980225965450607900456251960503723964849735951293270984973704781208839512066786794839779981187867639697694044274144109272518984567464175627708703880388384702088050080666829581419038511961305254437996363457451190961749778218898559449036465283369240675172918704462802236342673216166497659294637846968684847193651470609902613041276536137041903533833469115277760316042285405382871242316117916965523891711009318210093219483392540008123896408598930058240915508775443152503855356851932939910408180073037303954273613340059666719777511042645780625810644016279536660678535211485249093238424025965299304021441418605126185210136858505279595585881914590688693783886967092111822167675532510147409918156610717267913547988717990790472200968845386136115779475764595222496556383096790099058503744235456779315633936140934631958674360265841972897085067079557493339459700075212085226623642852445395804506917896332004894878740399703432650778365922345167355395796913817315923835578217854269650270955270773861649284746600460468050440170874642560364462609241700334379776673417304122425981820306269172047753581828904490325421626843862580220498384895166132399361141353657504389687434308484181357363947675068986411701012118939030772146222610688599089925741091622939794227288856439445718304220069557161658130918726607416081987074533739306157305969466260537561468122122423228752458857371156647995076487110572670215320499026140589359745762908530042980507748483711834065899411085848660824334759321363506791730676179566449468649424964118456702935181922073999645138457529019105828450389677698297796658765663202438215961610763077089253923160853032311257499102663380927895953031008750533593874859569633770239377114592227478847338638286948212790669914894886646137206961029982768392149733042259029554855782705056092028124764237623090438677620418545227935769195220412248360986945576929092562043628235731510615222081921524682261571015750709474441142661169645855600357417155534669742089740333863095604761038189713413693277507542699073115197897321520615511148580477168280254985868953068099681966524611433574478254085270944681560674204760177035509782828846758753057278662802063286999003852978101145864257720305947916904224654166423298474156508777148601193523334734050168471770520177568295758767303027809643200944698092460830492795749092025392112279766170287684134795884670003606318371070815562714417983465673609289080717890432217278026188254967758017120979550802111138414085449188205936620390462906197028703048259888354550353539837975605485245764983317777687959163517489294500948040749445397078510962303406576505901541186537058446587838399519039028767981520324383344141705673795190661323533585283249197937676444765346766279262242392342853640138005654322940252288631992470039411771682761027376861959134204819743653730752854406237492261337725278691197845112130764957554028012605780649237248209305351767404017401307719368363505813089494230211784204321809945258555028514304724104485973490469613892146724002554885257604153259261465486581959334941460216638280237609384586814088764352816548270262047877283072009725379773308418277952339743807910950189708586762408079838436841454115991304955477952036201807119604735833051441019227847638523931197373752268052125119528050398280601199703372940924706546815277657447965991133443970590618019784006803044925899214811657109206530335896786630463351848818018774145765344212925735572995909679912180177433649100831444442533519626776346351334561610562228061221457022734604576351439362786838214331884155290652792124724323087288677354571880769278675403634476792803950599809194020784903922649236908787150705487929847191830244237695165780228030730902093469632180909603067789985812356182853639279173498093364625906637428893192897620736030214740254697011566503714351545978334315012764735036445108890212393357449425652143311762605138802713324542191799021915346469870064235917251827429473630951796653463796739229852907326211921572296323982519650705811394205011656227766923905750369086531033996245257398415832564617805185912426313649585243995667817297012145902042729146747915540406297744563793815718595714788833702603424335825257844720103557730177069128485801032753073188908035884520462238491866092014402823064852370299314176843197762523710320881547583180886433506433981597932090598744506244722506073114180211014911327246922183037879757985211477715987500295627328401187335758785621071547451879470668387898949019684490163727872921314460609403610618419995197883330479290628546074722022593701812755554463510864433506805534060648496737017022971689121216253774311618798584931610578218276911817620226255517364238840509351733817916543886115882949641809076364033395717226867952574355224258760961981823256155588160352513096608845386329450472547696350358447653505877635096901089037289901529557104040912609730798789108608961863517357360983937667497477469126538119478814692028798820439079512599652245412885215061404077260468884920713564233101821753884421044124029782715352169405512823467562451891846134148297458033636421699788104307917378440119648368884824404517859897803802281152482707151319516026270657906741927739235247352920352921122509180885696531392526080311002740071600101359256494127737804992507580614164527764372030833488962957421922569244624615008344205545252056426271043737296792555516312046975484886435245462437100151494879862344918153522945948715369457261303331459796566467700835777276242644027712963099044711507041762790366043451675675882370393320211686017918264261195823388244414498642937670395843544220860092889838391699381352846770298283066514814637621029888204465652072056042649367941946661433373148453904515046615307526220805311843550721938181760106140354106241043464272144231183303305465033418010569957817760394343923662470682029514039084868242884157738410625078466462064413951192109863372196721485410959147725230520227019715911262970780051954381735565525185040099889907930871359196718259159203574102012412895726544912736490914539013174587548585290494906473325863628556161298966478620143079983880333012995058415190591279607674232549219458779765488370036456020985172030788428220305595083625467393191649502303853896288761574480611582239935599155237892133491729270914972256025414034572317112002724471133794139760657692909357635051390762394764652765341308183592119116651365091306240313644386515092521814194817970815556170761794334474830838622990093305659181802322970131781915536467537983687697511701008414152467333953282078112918170883114751718521005740116390492387029167503049153653503757830877444244820556592965623132874102112651203155923144369848391845856119736237800170503362219579566374311624139380658982808487218729372911625427420438016310488129009629283994436914583533991487188985985795249211001963857806805947852834186834996311468253850291924082416142064759109516854087859270501947877680476494110102145290976948622313621459442350590335100547165554494505242680648476192830275441925514684385893048662664550025643974457934632683249088050085326978721539425704966034321824558230278683111972992346250712040905714889169631205653981333518484344653473605888071051070613880088161135904558800897656143047277679604727152534684344580070801176765423687954600956154582974544433149792490092847416024523942777830733225904202364193128296834070203153158466710829194122490300790950793821350710439591887056530405370739369099926848904684398759320835341493035502160381330115576139527078249590385618525891349755101019113077801633483565767062504751297954662311263214232489797881268306517188025343432902309985480514465591467791034484297717723285262461669182192959034793895023354021018565694204041714493505760252264276215333773513065113421449061871698866534686715623561019381287010938464464452442857905268032489635671371844866165795266844967013975326569869742293063669270182078525169819750411753400423074502129103698858933374511317456728905132657082790421457520352902295420542746362220687306666872564440381625052195594906090436531656013116389277695936885042089592339005735394958246581155902414678378039671680056761050600420472555514096570697844651560487802233906527451076884195927525815872508966696393534433390962478773699036612422776592327318980613734597980042356543208307806551723251766958486126041596041383945206389833767168461794862412289771806463787986707645468437060247623506498818516297760599856810660025356023282007932801422626188900319335033674839929573369355497940838968540215202023683912018658102632310439626304857332854555875088357807296187454181532578427605980640227169519084049674892435646039648330620139503370072253820727267373088222013274345954929413670973140951085713970815679745630487593724279441718140441904233197956158263601836213024730994770221478168948923231417877982301436214856645537321518288803497982921211236771882766237877357214147596922846766116770502564445528523380066624111814566018965262439041436682988762836698000879085029757638644589485128218142143482029739319185624834270709402407277172368422081661006425082466084586943698389991467852402923567036826929618905756615294518306047638316922934189756147509316431368740906901894742489584991070177905519335518551155795980834615975876418594202745986666686423054145512043861281174135610707802663250902146571156656706657834642510263074682581154295891475130673895255522140103017695577470795653610926183881649078795978130386014718959280233311814100102252798693383942976075334391681492150358395312963467566063189721559759595055479797003416981477446323752226081462452613134189784933352244342803341661273611706551254864576828975696160451590397573912235288111625031623581593695447001998039697078164400380673000637479287177532369262753248478228543597955339541832265130226203678141091730574006535065924432769770834595979719582560762276687366068379961595377198709648886253619041153351532400481806560046860858921967936142853026493159931113189356863950669171817138838468084180653868493286443106151411629331950319891663474055057366695840681868779518182913358312947572581289453254462410126567651170520715752224493370048945851364535145133272671841450625684317746178195860857177108891628306478212437329368050789505993855485934862522936563702770108948630962532442113770576691307834627564487122677735797316575029572998687389633338934621428060581436597999714120017998109238798069493109266055964799428579572524297708294425439846639245870142479862690800304674001529739302775754042644007175302262115579724542964866067490135445234344324420692179422085226230782082341319727822766880238342953117020857458360427187289332581173461772775949168013388102760473529451132694516886281530687036842224645965737933091489178832110446806474834475802357216548301272845472155400744312325597509577966641292141532885262726630810478600598234052686356581283150351515203026102802123634640027901757944810879263359602337770265217908122127434609128599359265158387789419862011355105870870873054030500628978347149887079384331427905928656885162565073403136753967283081303543570387987567279444629971668868101306857561795567384619266015129869003764092089768726594433870922335848107202964611917671308022336949494956093452052129516227959167682178630535735651177491534106755044041476390101059322897733038018097391778485775452030325652991136805066160446595176518526501925176137992996865623008520238437717847268464790540624926001656692047300724235977882924172094957403930208937857827850709164227861025925503190648141799721979887111745180513650490155333084016632277509468221390164895329495427359053755002298115840780281661979112998771329224594428329974825750381659165965670398240965754375205433477029026374864932632755051410733268129307736097758830316525135007725150361952717006248061202665015314736934427293729353971590805971065058103380802795914762190525823625472567521781373344795524955453422331477808455613903569296654467806707806541199900700812709620278277465876440243164638713499078887167778953792880416924625871330883477779141443634867093016961006917016713256846194929085521047627708179771501329887365790820185352753292973973705806968792531596776152020683957430081964103096973819031727677623222092447773525383685122017609860629989444440428205636399068506796801669463368504333384905585754681666577754509780721871061339164443400906046685652040893127032840198189256073547480943484470750108089207336614129304688632247692238440198223125547654152750314976782767948608077687301023428594525941114782179633047790726739161815179578372314372478355347242574915823779020089663914970497466033394304228196033146628441671952199567022043177979185920579563798687757476973840676711336168406477350268301211979414488727756727149068737661325168738188488250900260924275742785084955257847389889229957386611773345614077235475627758102490805493843566988056246399128400146401367266357242524461037057690108568134251644255793377911725646860530872316264361935680513826707005652509473695150602614724689664636500141235378945402664423819271524538687154119961062904211708544396913461530112110529354001478591293329447113615564068602824981472838846715241823923857394518411987997446870372579394729725018270908551773366535586431246376843752744238075561235679198598341999399843835743856481898027339593316302753836572123455623414430620365316934721513547994449930230386078934125925214875048890435729695350013992972697057713416494626063534909947845005082346317704785613527766685187828379532080487970755161278171663001751922454516017968133339373184882090893217820571212702914353335889552088287696682377591600791978808178724320626513347288506660798833027025129198960528605531767786962000864062304857026739398482867191718871500790889246568925048934789615542451617780697890242663105456684326105056734095374462616891434073703189243374285137359071266329011418359424721471403787322887288682588397910917636256002211925614919762590834918335101980614883969627607325481108688945647326414438005336864453302147234949000744382978290478914671003167911813142665823092183651074332832425425897071269854497073698409992636823921519105465531327884118069397385662916247017043626780385670400473613127922579773891644414422437850464273436835995472112598301511010350867605282908835344732332180571253693851545205708136053377779199333108604543837174950003191581290577053800611196747604092862731970228811917480225539052770625116792698931483473703386775377138725275378446214967039977752724423217263646029908037772965494326890649724410919779796765030183207708922196938546133619058218684815611975227058429114122414161362835844931186787307975989892682498797766953601794116669339125364287689182338217023703678961429827835814900805711618637863286919877325277223244562446091263690017520511343253546936015053300483222078121471935801990900139003784542601340657437419778058759539189074353726107789638830331190522381433079413284831033035250021668315995017742651782901048709644931742532497963925206164607571063418826382167611319379894876974935947906287576437666262482276849278234441715215984392539694865147266811547152163939603221196305380609738650045321653705325599619312520333238884145244118764301882962115955434427875286436301317818493215526589388550537440628138607342795705233533046481358709230967554190603279512298270162572114201274214551400644075927344318514681722320872994236293115154994909105422010990363852574632379084523786373356829756683987515337754530727534973923218958665780433708066367442433082569705329127826044283693499100240687851100658766817624176318861605525653835927047400351412421694617581232767141611731288981974138506881941291313125065198997056774831803296621225248033948536209489432184629014205385343012694257986480646654054985014191496900942406674029705601534030129835998875022410649430875942466927303532848279389304190571970083514674257507243048492080712027403999762722114398365146007499798184994808040058557042648402141666146439941342740255049887763224288394651342350475533639693642307123418266674768922640393369813836759604710308315558985026659959715894848107977735042289655398526451620115800769696053268923753612505843930638405441843399870117404985179141502417408767604178946606662323199202661895004992577176651311256232235823139460586284869836530726668071610928481177779159629330596657291106064153386803997397209250894863696880692614885023867877882149507873078136835688047689562778580935499333500799604957797310834519599382374315762228611237143342730263623741337652282447997374063036355579159723067546457980089434962328704541395635935407664480801074079887808945932054227496509675286515330179721770068290782396358797114672176739943582676168268651757981478905755521406575575098324245454469615403362048727026383009003955089374838518225267449794018402911132492110238476390146785082416367076290229870501279153139986905173718194577194565846473992710163150124513109099701767163432191842852564699628652453418469258686859445854034631954889029429274508967281247945118845135632832238107230927927005142480809959149631048769110952878950064289228908996025313562314590216161205784367694995081256315254069595106189418377480619435144279064879522855517185693974120610644878288025924497287634474548514084278380649797870857977914951678835856155770203387711533984140016117778087743602473539528886612344805846644314650989239363197880887508247911166887439290798338587463686064318879126931076643722151967858971176536397554197008444302121729692423927202050929493755754337980671269009712863118667519940456212894119407714026606642845840620411023967297364935350115450683829331072060495531963143687234951359615257663537818042290858607145674812935694513172604517216616738676430745386149247294632762161612067168269145794152153166800921571180831709006920206131388619862734584711269883922676418753590966132946759012833145729899691437749157866446406888369941234354326480486808077340039049724597227954743760701228092017485011779461851318681066037605068178009697153399637167577461033154040382241615446327612557590992320215346913286497963052085509667812579298322317382800097190026991819676916210954306065707884682740060077164008921229122873915559000145067636188994928061743009107062911115527084450269408102810598745245170522259907830048879394209861667416083235241918408728002004794522769566884323084107363598751232034890084434978417357335155899271314860691760666794243091523181346236079996622045980127234611412118913757796698299954596555793959527991155489058227219802486716922493503635085271762824063997168031301056248687803388442523012404662951662476457320843931091503991288360367499346681254076280299388560081391252603647986260657796809529296853989609707360523581191158169861441541833929858819091391759612764708327612675173856787620994980961513797494780577407341431754776078234489414563777161218037056830523532097250292953192530204101028617422458871908540791843122812203336452548124813975908117877631329478097832855739181401350973440015708966241290879243950596344029201273596858266058570862280998130869830653908328379638458398555509192514340763552319403594815862433265941075501089186301592788719046309790291262755748388216201237309874545531052710746823312004698611450412107604185931174525348206162883558232722904626364758646871324742471521570179808074273235546087268416739965983779353209772559916353596835546463872714610753156311839507009722250873479659175086601340843338838001690817250009513841231194546327536529295538260845231611842714057157098726035047998279445131840702150582426149927792199341482413075556714289883368555316411975628646927258409118332668407355521064748927462498792762894887965167898969794019833866269004557922918449861347351390415874586469535692210277829525882141724573287436000845221117643087703003844058718432067119982633462703622806484633332227268801095898952073412717884190663823436467450092919894548604575316933421897480867140452443188164212670312262628658795482026354867795867633490854061631997142132859895657192762362506525535259371817925684400944642402912990767758167833377557478287151048187095782991341194771874708663995839554082465318264685936738036667349440156051380252624963947864831254029267242971766314212851565505046734408609874683479116325058768561021995365170132897108888761028117158769870647447941434627881971313018476659864128665254903555600067579618665644404219796798980700400145544791540989837727887119301411978475236723772432194464853341069396576832681211428258580242239151497617379339253534353629244017723529704749388381124112931768481225576873265702882319914180800492526500306399814465461367527123018813115315730386232012997311210977326617201701031008085343334417725778383806644720601440938987112746847034567788235131025831149786563340949558897549179741089747688890677690223103890440456524644153674127859646331008281139387119336489117395334548359416698295159176776110753836893884864004477873110810255194276640153695600625559513763912231208177503810818960264894883391285353239156991154084939304539913179645984969686082357347594716789748332326114137858112253010593913034350324495894394344246832862447998451666901315105867338446803107267985614179226096127889157839345976424765332352623413543255491530250892391716550685271396548846266859472997017873410316707540692114891828212617758864989683730002544685297011823609909835217617379808979385928439996326805244071847144510157439677763161246873149303631522507874010011670461928419840705019629550504233715769491013529542259502811723200395360461366528696174242370761307024924557982312691013904763071025990794567176398479559490199449598256373149056831438354808996999499768898340277474930685009265075869528868514162147866515696094652235761318673163751499010273072524976508587231384850644320896557553366859421572628702629174671047697202621996888580371078983600308839852276762712977575824859026281021863413162303365494595994706443790400890328618836930349910137554106325877618442572449192686324785244002144352737193242844720784941154630077611488338579689697513356256422815470532721451163652709984180745982507370948887488507861070190046979494251862802669921586709740258028967342907717709443242609352214912172095064648886513118957861379084338798676633997265851256382351025291912081618789154541103440422379024469162842919388813939596540105400322489905341226952568303721263362679546529058105290056704747134859347940227690673405549913357563326142372377226673692985621500280950813242232467533853412415386885306973303888860992504185848267953378529257378749819032491430511025886383899849669678030208638496136987617398002755467423976810591257946832836194002524488830472837026259671102100855765522870272962436947858079467243642241732243329368487286038964590737843854508796251032419240521410613821715592895978937224558623001797077897777864793485379216988923004851207344001784874376070866370396706320033920442449170978636506114118472041210990434121221253384563122691769348185146729920637070862498226684204703354456199127549789658032993452839766486607243772046672621119339328636578955611035736758853779274369844389279033633371831003440552564936045678954106330422275605460218340496634037386674530541790225422131514848807711563813906965238283830915055135217627663868699089392458035902768691124063189869522443650145335837098080481987025229845500545724957494212420725310183659472842515848037900188686383269199475499713517546232664043396853610364939782160476443537412875515093301900661503404626542971855082149886838578464642080780360854478555727296901907641794215032174622751067699485384475710351710732336599179405008767144368298676000592643156842361881164876155024154641713450790382791062698868501128431166508501338799426112103549098441031770083240238403504768529379463832119562623249751731330563740380799501260712287444346801427180901242998482149818488575295028856498485054075574983577214135907660127650236460770118938318023699770162179156515754162190537977399771516471644035369003742860383859947350042396058340152295356782315626582852825008504209704754051216843869248181643655833367356276833354708600932834707943175036716445504856596910841730525308379983372182629086645071150878084889060250947353995404790456495659046328494725791522749594365495618615566496417965901232184301446135119598341419147304153285709111473520713404400284453962073285954304875239986293125181293258853125420980844541576085227542223799140444047295746893355440329625309519280816857284528523078146412088692571637875604922132549740589820282996615212599705163595702627879419360288326228406420248805166737621606725195203815000162707959809926397174354934897991006820095419154700380449662952940003779206851051895771525237071562033664990516135995794835302277977766746347678528952204564871189573736108364697099708506504036624915811881804570906627044718330224854521181455269300458454970119782009435089544731317385027321061524712831143613590512863071240440943120174260817894492029619822500456378458853696700400982590929639128765159085018319795021159458484703281629274925111021864153914194465779283592082911046776619363754739538217874381779002932765557863699631081750360519853124650766793931478277534295967308437874942126245301592314225218660176222547625547830723451777285622775896827546741915219089197677247656319531409208909723904197145360617649837774620652757931086850395558552156893562101719066743548666578287505970204659833878552901426868191407040553663256473578098633937728978786484887231181987116384839682215695600798698919713514839026715997899621728007036465034621459149382670808282569388240291256973280457417511681937238373973336630856963407716870855639746256652734890318719567865726782122803270958462371215717503468117829784941487416672563866869314768653964332937116692342018643499468342336671577757503406230500398682066533310618025567032020044874076170414703560593413190603307222948230430315829325052700931646371495766613228117762847807179539515458684614828906142489341134320986595485869731520052689704104755953471389891039360445058151956244434857026141597897175904784115862674190192851184365206824211722785171586107463110579595496720671083789430505959675851936433441068341206882301551309786012990359209126100738700040927509980740796091859110241669012398460636078300380898511562391902285289414931436497843616510840199094040728186244803229060087715684842785101274233144970697722312665742326207992275099001556449128999043361068484557223779627603314079441688228959337155035586608878368366371841636912663320952856597056362906811382206622589021662147723130145359440749790784312410655778048761089326842840313319946136607025981764289862161204181623318599548270873615679819511507807303979395835549307621884617699514603024963609793073833171565591421764887528849989957360908433245172361525393866541148494501751723798351992591563337994383409965554839829904569999536518498442547866613128295395369801598975314874025737925045372717229904124306689389702282138113795794789234808122836996652935739638189539601140333384619401411072759482238535473776213492004445745149918067364054014614224999975185609683605713533458028010926573377394503025582198534162896657569243397062315810348604811228595927197143251848156808560570167820091746213308530091907704928586066105667544698309614144451896743685969442051300050235115150207435518157117031432068083539673449061172887504716527403019856287567337796963736002444782754749994087703433825505943869894199799026035055282814085391942620611162153102972970085419297365090493772750924691780898456077648134712478351656876921538076734424432632945642008076057519915037296198196342903095815742972962903637625448293205588157514785155177834086046651550174106478071218265435364505765610753297072788038314779137841779270727768199217849416319338809748575839810330102364734902932975358307599423991543592641602450966274684990790061930825864691015423782031540925297497091094384110785909872479215261151856524389799980075709258720403079682928249208471398853997846621016905531170266896338980041811565033884332170293218193921234639156854550277031732399161211072392595811378822429793229294822971091662314499535222570495042447835312848707936463943207431776580447615020301532368063266471149609522353242404187505405642648645617553631569803345976464133605455995916127679378253560798579862544078205331319195073051258140574945715067157318516671007539767353745607932450222637794268563029616544354051729263251777269454628628160863063649475738758006689355486745332493164237978030709385626321308539127484534247668902947255863683107482506654827539548227954136107792236853625435774781244934541746082862865698925983546051403292079065509299991598728998308415104377905279931803277838619589095140719095497295481344139696092473207879695825304674317537731544251489192853593496007961311822888097216480292863829751530002923491350706343009530220282754098386898283536455623277721163140773648587882205841182190502635132385104135107794730081528391521920969463388132798848472962875659856531798958755708035125823131294827154153433569604854137971530994447381772833693474011990319050876135418640104787268959789859703965921012387000328273973603322575920890923309390604563384183380512686513264082636047035871308244381343750060108268516014577531554384935463618728386792684062168225482148063041471236112221185270277516900488200549007500178087225712188556850427351692705879728199369933421029652945034798596164277030113181314605828099810531360587007070541613038963976489836781451767914281368545361904145755891138751307547117571546190831247327934963273458958397028503484542478097564558336748465387151050945348788506939021410523415244633568403424928393518165260524812178316122884022266101556334663700083200587796439833921178710047416590627480497588020518094314203532610947443630740702912152080691018632552469707675414484481284175087035559909166213572816101130417554321530129301067241638608147798510615744625293200630725458733158574056949783017033896314772611626433488789670861760846261249719211441257549114920651647138161861245313392555248938533667245533545056470814341277401804771584471671261824357762865772349612265256610485970254503842769422206507480920234060696857879211702361623655718290598415830503900769704171160329506890532639157011067864460029527431185880563151828408233999724104875955894929708151378030167326422037876517973922374392207951582430956561466409594421870901067673035881737559068569754840012137460333261919069310171077178368315654328520876371812154197273416744983299240947971750551969806510196426520174034079332685888770108596131954020949229047302387922379005850984999404593423933593405188238157752223058428552962278748191183082921321161720727527068382546896525849164576947869093821981028490990056713966870188771793045683792202287946687729675964532271766311837671571442164654561574496449633044160637525843039949209698714348437381507591148056991271767486763790865733608605258008236570703055420426634175920898799845553149015718360545215977249156594866309949544281653637392050715132348649280846306760914495052230692194981072375339718583051930092429769303168373521687948928403085873384815701942677709597379909211589293727329564072100198912387040957349652397298240195603336690913399612028496330649515884009350900666392317398961576453847016106244737471764622741422721368571200829499395069200476060327631457817008642663341240405117390668873462657395216175045035460177300610886925264702581419997480133286309147368832487497820154289483484610877882737399228327707536321212703518406810819772876789935546184922976084683920201182750640803600067289234071877703450289665976412221350938496732479893498561953260973613729212811607263741748931043110845881290443102043523108900287589723040909045972869393290784512741692899701862284594940921197780548666188939153480697393675400232280313552535080017461356740380013005562390874704971753452582121885217844939984885431899326888146460495553694770035317048809560431238445761833909120261996016356440531808967101087082714269408520050155393924774472312753094624891023873304700638352622063261291817511072118542113679893836461608809263129691498647220634996643043967669886385876236325979768547397219742513502843807930685592971742235052726889145963181278338170436520694770990036165030122833592813601848898731612346239727905653181238627095177098593398843196066130746212854006862285693483650163002047688259968081333779498110186702885570364731672907201300130399230628322631126439325987445104902049668012661707689291867623995625382457191249126743022293906407819707274615935419695326563210779860253539960162395972462318344512785272912403985673348888238174112141987876081544257751443209466453247285330171271144654191907167282306923390207754622118165741279334538393586305689757282664756936956612814958966627116125705007893388771608809772174433033020277232452015385325605660693391186347436916797960274030475357889525373137104227923922049701058852115002518648602528641328777631282167358203362045038816790380854673989647989869843190119984224883547970572214147630432078286731769284556908389441653849236993873050595471115409999373206651488915644290913342135614430899450565951955236160453999006523863868815670385544490214568602243618835531628881538532892387671895975738831005966262554610308808705796439932465532439327548950519449493195819890734886484733568294536959968466377519419454996837420084567274097723456886213685606860116018263562392049791510490009534429521876129380377400599363732224130599418782644041269181655346953311593187043144360649978530984376765874076917961792439861018859740107292121077648423228773883605448887348731662694400967278140982299334368933897836486919204372264510074670343500707670531648492177977613641536096727849367292756178621824691467198375558660981015775634012341211816015390733184940779028182772366468428500103908971544029342675739882723935244354959764659135378382426950747444802780562877905102624625541275115787995646365362438086557025161444546378645415909700314075483910730644143185709258234821618663050138937749431830609054378611238472590196707747402279144853635723770412404744697113316824791123159590570170862593407204211229657655876058672303942552381502472968942388184216327500918458577045851405316329139563257759508772502926072304101251297947414106415610299396886586876200820576207946322958772718360237295190776774938225552256327101518971956567590722202550668682558384762159664365185169182815781817949643484775521830156502228144957643906561079235115037356734577743091714905763170880255388810425193554618280442037123476525100134902286268052892364306690039485198014261445273570815722560015945698571969410875057534718667737352808418798706347922663547317039366514258097904083003650979825580491332000068034726679011125556330046129110928220516928970884152248910676238522529699836310159721185195590400053488948569488755663553287097780555210493202858286807906226305859205062701976209745130111375395621639566667001092773681440202552639075736043286262621745468377547114488432947874043945859722182777240552798973762350994651243760806400462125811315526806063969093628524133575811480373957136641036392484483446120355636956903654299430794876113505062598086855142530489998886945513176316320241028895835075242068670328555350031605904009381707940210017124584195664518098557625510348779823546001032227495443532029654466228325867179291837341577142971393569407518595129241751360640449314040448463300399907488863084486148420708882467792272300038143012053375851688686928054186915478780883732166530139944997550268433326418156719527951150245073724494801425607621009791732225719635513812811116655213799006401089537811379352296361185295619626563355608951372075688794489517783172148093060376302953205307187815765380249242755143497894857074510445947895776895354489971977248925834959797932734480633113487788410429056764312407765216179863699281622729896878391676736946656175834203429201191808680607139418122774943987697841579993176029643163951378667490101055295254217374395645854226491135198713731217537529772620288317157865404434488475828419718845716422791770532344828622099230590763666664733608822660009350747296069338385624322353880322357332206986279204993100314576375068800554319597208162063255121274730280812005044355439284259327170628789466448585977551174721430090284220445365505259489704815704297361668282046081253103721424894854601815252119037174205204352097290944530294025379051493487859475584838486614790897710530322557998789405882607933047720820179010431889781250871618388206708816573469739936301071940805731151886488416704996869761264784396708642646461551252362674841822873169263801187601200405796017354248575030214091373839911066906459268991494836209448818423009380396081907245501593260729868412849886152685225979864100612015724750382158109079001809110065771241382025412399832567928513313361324726687236403799775416721518637033558497625708170190688968077803704846353074035460392471463413845752837470445353899425442822354763392559811091710213479129079112324539386621843446288168086134651224301285923671713101905426010645662916946340252337674298601004240759890883510677431879493679937029920518282946781739966416261958860838217378118675512516530386594903425622849381650808017092199705909690539688251646661686971233589190242750784759122967288909222325310278328154338085824733296967057482182852707558661867232591018513389323238228169384344854278941749753212488606508612942302860265041000225420311864485222771985263474624675800324799060261704821615039028606468034340421349376691976546944592682050624860066097031872031539516030815362332008217223336373812560758911509473894647647557596604292663297292139445792560676103044616923768610629603213311574902814043459919609636519995108166295159193695149675398559319277247909102681516233531501397615110479757701029405432831959281459310736431552222808318622357467883897444727698939536960695177952639537949743639150542778664958034000687798095325016642914373734363732813921563553290347238534801641051880583278130152862091754596893678243193158871240209217650397588067002437771374508040537379270243346579214338340085735742963837483589332767071102598453869247098018852067406894301062986679461891302238527659659071020082355978632061023831636948654303227094894382445820152957456883692682349294006786383213404428354092663589721305524118717291552907325451581129679893912212701276090379909775037164229793621849607054505298551265475126217308392214741233576570450359132047245977745918820483544461635759949166897155868896252592540997699759542849951347469698655554882179938812995773806959028795689849546944969804720143730955886776525647243643586637095204253904693032875214292770965080549174168451101545312386480880440013455804755689611057716586119906901986710717164618865684897749635429726248272224750886197649918133856651943112082387881724972467883762336043708414887242357879856470623623616910811022183302064329801700946318214523680873623867473809795926897894165863524963415800749691470862166538585953031426825195921064618649873366558873937048006484537066698026202202262102231572986970035490188252812113692442303525146316962013533035563809839184629753741859579210065590074449051082083259666936984515148696892878360730770167006863166950063226720434423080865465721173389092920096674423680909395384219071403226248299738331414080755001990198400115676902714094844026847267814074848708702577925364910505188219691241084410172583985072408389146442013346863909478088062600948132134351355795686512472474123252213937736925301335346650387513571335602634814818355144011057077688677480997924314099673065275235978915191139650377426834258034063438499651864750489581579208025894764903988977124116057985762224240122676719768799840615631935975232104122970462908968069782063824298925171408527836867582886809109572200772068100614157694175380442672552021910422386572709925456248661889252964444371148082311089591521290571876427981257041397940180033825145986698630624724237038713662817326705049746601837500485647141298224352925548908784431073405701962080082869027419684611841002299464001966172515211723964470311647413095629534656226644538506698351572780765586952511771086573013599643945937956203155703807833233940706118688147741194923587726314671155594935823012768008901501915534142630729068458898030242292671483510338458796558558548777868948300836955789286305189481678549741154208560012377500049499777963103517325102686634447036369443380408709188238478012176561422630627216244257020903028243979794851334525582160576574153419062993620274436007677381410443222573927856287837110946329253733509352950053516891719916196293432246611294434756587180919173874475775360312567604516212623313921827534947953316381875303406108799838109986659259921261856090469202305427848253444723516506024597151061647084025337553967415863607696300030355386046223868483515447683406760033915284012131840211495293470658965348088308678818266139887752630398658945268549922255555738559756778754104178597224066636810330993644553291636391060565983147123046435219074998662351165789780895259418266530089407238271887078403847335180736334390633295478542288829836364743779944906800012133098331378413247999923138348486482410496056312866421025816399485262003686077398043461552436799537874502175052811955994108718728289561693547969302429708959863679425784998783586242120659086358798442748117530811271220597950456201735216897670501117530041622841435499397533686784265944963580283179406841482795176133785724941530759921695244414643014964966587905716684784937959081169122049643800767498403712201260584056601312748828174303453338154326183854719159312056160416853193320793911449062312742582998911306329667794477678694171669433128445487292944132757909498924287105070620969925606160329161258696530547007184425661117360783486261746920220988391685549545333230917359436187760115028516693725984184239297577822108709371847012921784230618923721933853879064333616191516691780904508056455328087775733057226422236138982618325735140946398832592976166429387666603083872416979733206886480707616139354421171667330888147975261759577450841253412893558474920418711106975208640374985011829516973779540316660747688907197649206260871964631683870257450115686697482664956289470252248277990080980838444942700091280031878995328409985557265727503525222402647749217903374603093897047582781668381016901153672760180991169599129942005294022602364381201844450263353072408663728996278524151590574340055770147598113148565352808151520250336318557865752408640170832560347046701973938421670788674959206690341885153217623708901766081380398200726362514569797258599066256075911102472795453393818417648969538687820977344964888085844914569053507255444922684447319464377105447109224839938113071822298291754741361013707213327268768687202017126347238574092346234959487034348176647774295349313065687374992290804788546925690997177384468665097046238972019185922539767684199302234481885166122430195727969732612452495512177452952379499957013446000409090282322401582707794724725662720605996758014288025327172217093041460526556489766205915785233056065832280318985670231883816101739347461217265214093644393136064217996503636108984759062312010693361079320468594624250857998268463135105797583957105269112643483980528401490746617634338559172866316030644134099070423139780010662517213127222303285583428639598384702442397287873399737442445152377813190767764154868803062355614195521774334709101039075088230737968028585002384037386939017553913787202893566471181203391759818031279806850680426145006083981471955914005561188493384729159236704162874989968218594658889589475144193005409137057578991877688414022693882688633566726999999352240097055278194497715237927223558871995621208903876716177920059853664122057256430478639112167753524812285520105790023066511875845486702182889282282368384010848866259322095458383933510384921849909941265156157734568311891358596181564198585711558428921944160228953190805334037830608953943309835133922431882634499404729316592677615918316122663618431908945616887228283202736738431602200659745690569768973810584830302901775068990179397662132258399081891329074482733788925991292582479291237451204379569525427008922366182309180260029261287270037291189626651512832849682326268871369215418881993047972614730074758939389954459053544611182099862432337649650909831104116457806780713850041690825015949979503020463530282701464628054783122605502716274261606922879127797773944019368242745311138567336400861890567559243931683356692249821270919771453829868015033092252343441257307722395693532877691316195581532902848776894124740843048463928305779433679490773370834104728710119627599635845099117060930515793159762196805784178674740592115676247098477719239079619185275622000362019668223195203851042500087213058757649130835026232710221137716652507612928229558216817906994079823785020021650164763467112270734399353239641705861013092501531707160950722765867516155720860360926201852262209146146436346517052259987125349783119720692605269977509002037982711695576551531829482548731493050057152606822818245289684282384133925959112388755495981366126003110965063484438236582191512865103490040742299948304149418541594350904098508629184810006311967842515760056890823701488116836546640185659783153709110266609775570491907645647368472092272386063183034071521084463684404808736847831435560193855897010730771004204180547926207498469528805781743637305318107565299008823642679198915806989147650626791358804822819689203111583353727794129868850566443940958408734717080226987280090068216130732228282680552651673609761841837970061546522117717377947089134989219184228266629088283922345368400548024734037278904078065184153982387917897846578442249405701604922834003474465794245632765906843113854731556243635911005755120737979157928540848157227619051886410886733588973260851902026544043579040531844299667707174804583347714888890427198439996123594474531637188651131132797461424925398240502632665673577708029212654842497513693089930598280898939552123106623419216303864896637101141973905481314759422731428713745493537987625692710060511085348157320296208285756253219071381441742707839924749025755415264186852229248810826442586577824813018070895362481454417178606354693007359937238671582732239387003696187589174593458337144639413875573539160643497730250273964815198016639852990481944341667839132249347160059722502471751638393026281320670457294539392168026114320064038966381787413805925899059630376287833519066046497449861359228573738427729839841487202183298749920238081755873450381892282141751578806071948397276242768418616101147279931611152327300688094670214645447665156737271667910489867702949654793671681156638276531646700487563520755885933813557876237904878687809944468526752151955881425504276843380692005631052578974705492061374551863476418695016300246184154170466811976131522387630029676086063402678385350588729152026496661177177055082492183040571947376144661096690319107881030792283264099653597997928193671256110984037133518594089895065486014248019838107508696115072051800969603975060105318643352980317824109871204397403571814940807476784935905708157780189847014251211911325801732862699296952534652748157708374358737734788755491021148093575234080002747751556682481913575590726477763098921754926575556857917907800564000534761725422413735369256533499901196157051987862598799383305707576408102327638531048791814816852010756531801756508651135537237769271401540929133695059249514386390573998602716369211384338013110177908031671941743068804468512380157668356931152120762368570654208875705069942408781314244794123562919898723073357394444307816043267581113395905974440744017454511058606253078101053579783142384748800383136059125216798898238474099850221905779710726235743014967843295414204567703285703060821708433768527662679173147000267934202183844656523144072336571170034711166898237402768120322753119356378468211768616790570030733959764960788580995725556429528875138563401323062055367036777160246697399624503524381471239384450061458587771782138708754392183873742960375395359295445743198084835812114236948285301497058666011091327427103245352629395620791614052869330985930966515256770094553604037759861478327066037930962665931099671715341379696691679889986956022808647328435253778678560043469432635399230674724138848688380459056903065687224827905024868020155076328799341241386329631251500644397164842170667053184476837171082921496579975408083994284849062301110135123143200926652338576883059035017419604673911453330289721586403989420354936795532890240415761669933569555839156082974720051525868886159642115646946190353038746261618648453951160497209127229566334914646437644750775169442880761079432556054017735783453117681652603339221673493702128361944976256540567564750077193453336682077698976735637428770833433240558230808778273549645229619214750693218736357448606119011234324835425993528257096844299960806903010389633020546825339727472933868088413283866123926401104661804892505452525613964611058063546546296088183255098535023610160416074411989281478885932409661954803055154500886381250125336570774479854496212715416903698342753037409654396221005711604699472582553379841687745081715528675093501978793509799869856960890767726766139351889906951617316162995949618855252795039135417809685564841978986676684820057607171504468411984924489711632663186358434561097668568013284668342077440845583613426720625845573549455849012029656715787874983318093988488192708925935618958883186685314782483500706393651901207018822204026386843575247131304958098854525740519516845789548041824000309084454492284938305332901043269740027543411882798318691667396372023840422706233723652792731100915495041833905913862497757762224191212350410295498513352407467816454432955528863811944644276287966549177657963882129470989377339097654722498469216696015684759800768896058779245283876986896373084410650578712359110167344700883163023561295693889040105662486787554801586023798288912856819574625156045136855159357290972955198820841439461607237226486509763964576777294048147627223010163347908590136635082070460262921226058324969188355448907208056372839059224741299447272853746212497251511878802127159480367690847644841764566461429331840034292197824142245748984806563514996909953277174564434952276623886048129399407394863096517568649198743545358185592040091642286255888647156491439095257605108088196885480051616720728778974909541935753150530195018247250436029279558490505995446410343579725510364453149037118613518552773766785406696374393610347372207689123220515354352570367453382035705021493933925975052678476486267783409520889759734106067663337600357115857778069571427188591914530191313340510869767505422114374644126196848001925282331858422234767077419656884971813610081927423398430318277829435843135250556990616513791658838772819419181442690685706232340171632189330146096564495819940700938539661241279789809154610656150143541207003201798899135445289132591723244853043171511914765296296390929548331592861895609452522056228037262197735905324856028765959097845866162688771213704690187538295770840536902501312523941612126522636098138942331468264058116670086670974025525990470893721616842138227070485872820602059568350052745561170232772089730746153445659949306239830245630882582426642303654973328331182309793466196219786234480496420924899479056310517012886911947469861081125615769653768483266948439869365709196087855312697252804354506204072325414635731828945632821136300676887540257389799429342003780919709407220619948883100383981460987216385533881327736839401220514124806308260209947960869907540884126365081963350741559246139616862257045158781100457601921766057638415806245154749267440955848272549287218276832679678846634772243401745578494861616466959809258857730033399913428958223464432388327379162713011700716300270606627170134920122291333546077100340914809162817123278907138288780342635865110204034088470866779686932923210148360360583859385319063432417587035847250193057209851173237415630547769132120711417365786815547084340686511544438182966029427679436220744735586943253126794083561019463907047306092481946471676175522831065744800368283246314600095643852793140365095528300589918227943016750913863022274942228116939820254548671254686022329423271159746482303726091891564257812896308173124446657994558408952101832319481767694657356269382761757051530143982457045072347072199344292319281373627551005774066819770333930162564607280802728746220316243211248097092080376065348047164823935863715521682514529161828948230209595232505087366559180302497582512446159127533499645163239089287774703060210587730544534499101648893392809623571599944630759974547812773251394716555303258797576127057198617615635953447893193249082324084006532867120655106602216956967010585113070460715934434614663421880361014936058685799678601803236823607302803912599934940470913000468559784956845270206998339952044996113109334006028141873481337634401901952240804678270897101289982193742511090082263727163988420887303558468272963832314795981529917833711690088254479468112927485438909418823775490270580674842749907273850595009258341367264144885317620986176964837064789903630420383841701785348909922325416319407758880767983283020105845169417310041647759697486568995118064611608053059714634619551463121020847987514955407117886532337395609287122359572502937491853098208822010586619768149099901669548172932379698235800201194263177431548467739972178262081012695884877991297979709444968352260652966918443450363262492118604720682627233600498460181523911694583184591763935274554443580211931238540661602960167649598023618435918727556516499726465685658032929246552074569872786723811015340147190921675183120809325287146643702675296099272363477006548189060256144092021021672462562341042768751192003876308534571153515877361964250338117445112399719868195739889046210867929881267449476469520105578358572926669223269231483066335984374980239982045533865706996931603271732126349706933906497736115998098171780667883357914472971109058371901306955181973135982404227641464418731981929867600942323197572663838506662794082051785095611660719056844078901049659139945052309270121781619275126472251982013468344612129742804905229164365800878814494314547507200228410387072391753463352263518248071439151421217604445288838453911898009799405052161369751158410267932954798749105302110624607638853532453444760043430389656843192429612904793163699095762203759877583789034229196409447250286195997074384473118041944641085706918986880448714965754033503123888327916035915763546046166711837112088509442776812453223255033311143436660201942135612929635232233597697286633686806733540146956749843688345269019064732302183717951675492729780785641585482937757257774657100179287059330410967214738447599008341948458095713078612698567704149849080215321575047234161996996933542733714318688368228714245441330666163907520070978048210492273025263444330603066811837206138470771358561795858231825008115792541032738428460620626639051836671673917409737486933328478070120755948234864374831968199135865186584141992958049130854774109621091942334496102832884151510057875441909821971994903586428796379648062990662671545085070785137531804839238934051458924459245765224671409177596589675734054470854859348031523575871289295741980627017308029922184877336897295529667196315560206132069174306728572627131159060059318593561458646828777184528811578908991222830859969867793846311759549150776488945694856655727024024446265103958998489202195877499277744175525404793048798306264024599230238833591693976425593767128114853721331404931881941257172974722226435801199815167653558228425941015746996458055556736210439976037452376393668533953697531772845548614426475188077125501805963616295098784368792866047534134548590989642126357559456101711021898085824695361061759188668897353406142728290016914122789522910865205565959758346106655036650829284590734183499221658435253908946054920538786237921081651619349175171801470624319853359015805845537354857075682149638539450445888609880444644875861476019430301647718435338953203593878903912516187695470041769554696780861557720885394177501888190480261503831267382856450362218081027161016866878376144529073465805395215952914105234051392141029233784985008022864692744808782779267504385645181470844046436576991095346908193989732495777525262725434036738649896308607399116162562988791695136882375512779791711527367481400688325403860527833679981193799827877006104021980118188642649897335669303776837400656358399029358758735931717244598577357862066354364834121450336943993219352251401075455431893924208603032189848972076810026563225462409684161491212818312113194995830787927393227599132220711352651101852739445802772479463833907802551897171310307665183937595579790070685805066718992787983176613049965307354376521062737313316243300730059963377431256884818934105194684374859587850282997479070089178282892405790952634778041488124715152231121163124438290180483442619412609741465440926848772625838834462233439806778462614841342992855311889814681657846201190162178496531302340400555365092853866123245317992738873303165417214244070196034934007631963361218771458740853628479153189793510646244864808746374082738006777637205536538260894857626557809401329222207663478364089597874217547620019019225135301657888811779904213349506241248502676113281194427273113768357938806115792793556596015644508466243904269948357705422994567457084630761227889379267931042833698166363878280299506131527020950373383987554021416435361684086873779805921317298487778893406424777505238019879644666183537561998784377259177866621022001043378833882506451048440838060257237308189054236627272986578387993276920124140063098042645566124334611808951772213253907981454965216575283410952289686806978145713267555226273147191353841703050134815803077365564721175021535278887698286259425716873946219064373849310261693531319551210724397711217981243324070159576209826288458184609280493696895452479732485843767336948479616493886302421488249683333824732164958904767095259748414701616267231547659386171476605418041491089383093757712064824708198200988350573511964681751912048262206192510235434468692652918652265017792078433951794881458470861600884431375408422756365392719204858964599148468367933957051404854827816350521967638681414092149309885410852583667425256826808433559806045730571293496514387523730936018903328588619307648395045885405958261268191046187122346755429884352598382695117338439434329772658858384361179843470522874913546717546961574256507741922307470467730063376088195060152386655411777061410787828304075060003877950294137572832721516729710122921260700837812058667498703272351028189376451689284556161324870632742040599622555494083674785680003411411248362491924697877962517344412499510126981274432961112280525150759599132630358305541104944835823602997904446662336072654863788213169959255085842565748571543683305301161485410709832672385932378102930792399074083788175581247209930982940742073687194242503243134696326087412320065176298186807248715827180721741654479551511584150211592969796540964164417206989792617587686610635098499705870107675186526765998997080536610031982562456520356067102046950397984432930990813637502461898528609023747511537441915435371339743536569688960646528809490588017094573313294247914475783979868894700484215650566346713622202959044449038143465906537628163604165234751553100083067508484030546743352657802343018353694483649789256408500847473538266455803170188735519952388923200267807818964325312851739230097340638519045746754616339383801890730512232587779431893961630405524574308032300759208642616661524583107977279079497025119126932675071609140821220404808650298805854986365155665361525457982625277320822239275456623777946269937895448360013932635607147782640038815569956880184940826521288000376929695420685554853740642773267379254621480562415110887736286799882562125962332154982017432729764498069135450678692590228842817672918146754301622992767731954244145432161280169425747684563949530049895394359364537297016109133183411139077151022458489058306455452705941730370814713129266715639334617120977323621015955441362437793612654728905706636773075995472486241567152022935406496931579767684983044628339207271263429094621473335387941549375123959942968200505335136272788997123196133117939984330003059455005119085335441403600886443788951594532513399247457675507127763966996130549166490466269036312103408829433856079604083439554226730424347130478261214202895108746516411775663963468390724605626607551017992642051522306318348928143662079396112329992005040434740700256247142263896647886674121613456160990262805411328746972185147720568919075377482956002459909920087384952660396059251949054702604967345837310031252533636474588030496379939543639708606972675407723057923355113434642136750478967970561103893796980379440963898942424806879936895002166408308332373207914443286665010355246357044202984577704563727652943633515788001610922559627266504502793384624453292328913693623315301468672872803384912773003408949429690723512337847999989566582640323321311327447012157469667129628425976125261165316068511368138598992416986422680308008505696278995015851789375606887155973197519289712736173746731003538259926185330089749478979853369304171327501018549866365465555967685461417472874907912304861812444527965538401458970554764182857584159907222243383889479380272883750406027433746060886222405250052235079087703950110924222604507514802449180532033164459030805271806600214154790691103634526133772273936999559085062258818915787583351984698266340323505916235531962772363514239944573956954759423049739693273013846034609408942628335398615843222717565926208523575032002272454838194715465725786281163056762581274939764848976069483393652319636701826976348234874944263335600529477939692465768660258792875914553075284569204493848511890857648318329708648768542843606493247952009097910589522316920406838463173998292127401418369909184885834210303691134870696584718455275188127530642683335748410348160148522526406268004798503915988892911226630810912417441663116461188911450737645545701681265963752741815492148707845927443975709020922537738218291294241642314763116350895286925879171184153813786615993655085418237376440241216771618730906751912031652596540833680893061916258928583630386861577860900588046909388000171054941006017158096719623381770741507106943079968236702001841129151312239076297652889192431816904456553629611627450271836940138473505215782896017661702475714688325252726942860857871798092186217353185831442349625450770001029233132978788793344972624142555147117298136855097179257812750224777963448458131514312660304698638008287946990151707445335642511660625241472907270119016460750122016142700493858847850591998786540886907706506575720693478344974138184653768616575621114718356238932395523266595812982055146180937655609268802227530417729099247880146589539059965729669210575877971728132491114008618137059986107310449215940707112935170289117127124271014913516147445947963793350890943559785582368360927081177864155612367339950577676701970184982456186732978684088029792357996170529751563484190490659685089657791401773579421072329096529747164332645763521511343388714011864848035549107361917067880112395970868345583430340060444051347092044351323204818421661937330742761129203424952554853690321826573770226309480792211092992145935670991653507121210007900435394584367851404803196256303715559946507620583004731539361204494203816949811720769726126000204893506866739749988669762705277292021076856961084680154040805850166041031119950215602340729933989567709283883687046173922784745257283832221151798991587525939195572003892306189081274550718174027830429149810937522404440782829958063021586403731305830837593079585960326628112609561431604573214803579618248597988720935626023202076472521951769094330053074120436721044304269614140750538974516522615352395760563229208060746050333553451177199211166765632457214228657560103975110546895566339763824585273450288953323728233156222471462664673865740392792090247231690941374090961612568490540339269043565026380248706854184505339868668854252421946825980707773696884624546886799018907288127988675428126431826229556824379001747194003622632583496292050150178919969411509286358723467784037474392580629298697206137675022050037901561550342180482506878380103676114189475438744826006042089349009675851019140333980349810893477213428004310663542749408348748274253777547674944177203990360976479402917453533274939145704771436499568737615433640842886280683774570993780812316917789754813787880511900948075415356930708287811233533714419465324218593669462557056021175492103610774099727245253754746143136156301353611738517323485038455518320755602875054949452736112871397808061932315142425660265659346666589936910896929353153115955489332860045122284907858836565454964475652106940378525143930789535810875103336236158954958016300166343501713315323248220474978011676087008847418731150358067542376276579017292935241957900090491898946568644070268214861550895058633480916555829848907161504619189749019314555135353056296350730345549526661595516944335959578583455486754796101274648886150751712743887229108068274013822508004083758601813291115808456236812061816606555751998410308212679430751728023530720277299590667026321232446710537942480303741505620747047841289835439696298003956608744757529481553571030386148909335546584726922323668836932702148497397003899968123727509101899917716922014908168611766573217487544479405382437464791532728037923217355221196215771909824705956938851620506765176721126241888923165311023687739438591150311281602934854179691555055949025077489315104504347194033340231555698677601308924305359124409701858547430443612260503492429880482800097241983532093538220850202065065415201993238249677339895949347482860438386860425457366840916804762622520237205245134454657873199141149033578306088764130185682858945619289653596639354946492399001770952755481998831808676706418315690783753025705776867325472234431859268059807823165548590487972086549418075885155025895061598170400346848566989669573457590371313822273157883497202976639039558516230136590144329357029797167515189366695346235372937934927546326511410461367670417804868327636073308895284517315347310697803524444521969113608704831287192173421382944677115066857822496277577265574377556130418833843241453296471532192759545103703992018971371784022892104876868879078597940650436638541520077239456345879717240523479262452961750561038504427424076114817152885684984974660745727207858655415988085211875211170721682525963913946932362821661080006464227827815741419638471662108154833263878495394781664342593548741834956237439121750370111769110794429381833154500002538914415640392005432120771497920223028432722976628145547511250453643984499447120026798553475237535502142104906805520204004279012645669534699686909624936911127376891558807704981940560463534358253531358972927054944646685356941343252396188187966059652482061869829440488460928655091668439627696307870751575182299538214734625947678260617942192678736342353188263390448517761154233837126129097497861913410497933391148537226208543013600113676104207916154503671214632699488607601545333597776115270342745423271629740762351574842197949229333798825658590848265445183526185372262939735960885718310096461090644955989578906068475498931100296518860410230196567311237851055871886404102893462318552853752865123766656515245043496667160523331510658699725834493620990957455538290276206150961369743328199700794558204210066617364738778131426427641654982456528583509044157643081885723503471666628483318970134941405670440541535530402523472098448406850609909064581098025388047941595084010536134639037239810695291376447596590595891667821275433752931253837646767692743789051529273759272442060855918517303564246539468114063596924428555005525325704842897491295969258737244380091436758411614312386180420069610720689688996481752390080557067715145664938666896904562485316359501885758111332249884943646840614890654192010940079316417385242163235553423892145606780644356159009877540766208669209147658373848815764120165075453845751964084825098294379708793523078184418415879864589721506910266220473010040483197556537300116915318224687788007692140181322632177592643167037834876583416689179706536247357913442419611344653631949436492337938584923758206045507250295803609577943748279720644795202103107693732549334042839664002218377561684803866304858808904679424886965232259060239406040895385216264109236469693927239836001998380993351690024101860396286543625090602307751947869009947526633419245726111170593786688206446430774252684111844949669206817385561366690669721416471170060855449089399680980411470535155484628409062091170006084334794771968186968930592955975289609455933520106985096138859109870687680122307949085462539276133354200895697332381707379101942327492922830096111379161985408221247784695265507765280140471060982694823470897004257127311138037628636060359054777004782078490754841655692108914396083500378286150059481422052101831049019906441636758530869942862399936214533885573694415151197537011861725890118573747025824703449871955962783387573877943136812585174687438711598679043982505577385049549335440681073203992181397675057237260968594194528702146253484076049413373527948861506564220290715371255742417377885165252984424707205247850636618591109084190791905883538979700888272133395733668600505724461583239026792229581335105773708804479037915450898886589992720296941711952109045146323491997885951753049340607714750819984887598993994764105114943256584619135897208884274876911514744465165207066452298141901177244763594718586939642537433071368720544285317360445505538764812020528912858284572575493666035165397539916558055183983380067766720478409564507143087675218575733849608092915068488574333705149127586970990632849780744518187106959635781845931446784759322871792848905043467681957716789247205898181678299226117607311403796831745172126708552189301513317598699335543235132225952264235487247566520987342094463640705842311533316387793036261741347309428926637556062878300418601612486785126810631660311670311883180296757023018531222022485913373729413967663683471052214638744350697337748527414295493295614311515078927570601434334288704969839917467353131899003232787356144003117991749273267899711614563169850162719218318838846661893864118714751012209958668152089733746653352172979943112870371749018707913202775964485675617696687512072494986680338470594349540907177910327775431308094615037232417533052630792827138084302055736786185569433858048860255038256943103856801167276293664097381886736144676791067327947670139097653912225313178079008800819248294415481428168505784079666129136193858151707224502187357339660212036248975218486761726073161724116406237860914675792544260660668765479362548949066715499432619486648037395218410224825475838243971733401340938416718383858877701359492189579061242811584126199432798437849868917650716895111552754540967214489593117659944282605084702083231055190580531758771330604390371969155390419808468807024514644689715210490172818136520558418510987845350714035632915453891230272367731689872572843445568262887094130042794591929136494427420063801651279385420592028433295366723919688461557806325107817828381343987063786957489642730155548222970454967879925902317093158990435046471625255276246634349526048667637303518924354296828157282271925452308265754101313315914769768179762379369134373722219713500158808886897275121244280139681820173108737699412549706057309536378936930241120317247614976309209353374513155003759555046382930837843519866266283686103884640253813951175500429463934392688558556809471524094155194907783408531941085784236362044126721396876194485397871389843505966882799652712385135585374310771655550061196267619403934892593291556393087744107159588175228038835938680988170907902493966439667310958502047297680062829811162860234757380006801202808784886356832607591587741203344502819260093468689722851603721996268776219447202872390390333002942719305437799309558868898030609947892703476947914182869993069304626915261802418129931281343194309346320037437740335300145697513301421280203432047660683775379803179895875759352981302956249059029923386871721548279527313331971968169247388891385685276538654712729167088385128206775474493347209799449494996463665980894390432001365113671505874604296976617792436339781012518640463257982538320028775056051819833900558573112535271471784275173975660305312847213877352446087440727030823689212106579389671158601405991535592524867309694954777403843612603262649074730770749344051271460968506887307105698056351665654606389956373735669167024656403854711508631377773366446484778922162403057673283155396034654562264137975512680356441967379372202269029874946344575705694639903882205720374190005800624118500746017144338141777761598150953811939229512296036856057073229647314199028357093570626913857681239799343845299258092947443259184122196504972745860825568989403870294049575635915132774352913432475860838366079222234042225977435235652076165523459566166987954768497866602464545649362551187910354848852857761232082742923974633091607965303049111217152626385195812096799204085013759750195979986911086184051393145765694276482535152709852679096958693609399890065347523977903058747025821809686410059554635878464259364448416904194613577063668540373604313320148977265395598731303706127052564415742564699693557008830763916336715473499151016375740049222133184190561272751091374629597941424126812896529941634101787822079371119738430546615899811981926503413625545696579691394020394938617864919929020617309144343474634137225577604853093537343980296729287137266625301758047376929792547238322141087247570297589389308098535218074005057015533244483982974804563837307612138061497762419248987501285922299423709068977754737856366628050153821572785626586764051367996771442084644990567934138861303116544358134316653347011588039528014438095457984596227577815720659135601015038189732384560495160121761166452775685959479388920530593620604292889347003933624299151597569074459432950882365232022107388198837396437169307249739706521083184063664899582622154464496543187378465024058184422416639574959487174023054478872925767195477292998934191553614041181612759274584222571819585848057404734511803681616015130996418023121414260910144472405764575744023516854214859934174657006457204571411289399777541900533168951182162141652636230982421297077396820055679539799330816030046805803624423072203778847709051310703331239798434554677898477193454716060871164331765950912617061516389555324579176113098512546972282666537252533675841147422271495464033822591238416129827078127946685516966321303855905360357865020962728504704973230288431643503846358848448541994398734302589191175566431393465575946288201658593253517285831749756133542188650270927914325024592751202110485022091020334906625286795946253563696104619315842226615145010796868218231705056810156377109065363128673451361996986150001410978630721063161882720551161679863741943082917762757108486928011602452934118609233874442250215092065079933320984085912855209386319173264412332274608015574105512449720456098554559903826227195761828946988758100179465736557148357586637699453970890079249340171026032661143858855335191641740285087729663354232081527749768056375606736257624017893808427529503434211103996740459639192148670808210776169937867521139876252920925406883670634397266118633702679994614447085766705020329728844044729922470369731096236864688039960839413145010949619582487336586346761767479716314245150635406259157111196349427169688208776352648631467685019081913042415178899034821536656142259593732316046129738702113097116503378879929812908821473201824815286175862289835040037948895116283424843730691901764199779549766918531864318186660868813697823755664119425383533865455883963882154321313079610801129033624094102344695030796614307336201271065167307908133464802753654535113765168028508362828286404992292240624691931400061970895100610270679939255241507215126247101724438678964659510025330593957490671180320257041051819250137942498121278537821262132863942416079164245864888190911490810357814357247535948080371074337079224895097501927735958838420744095393433814930769739619924365598964836004208327146484671586063610454235874219752478140768313254754641235138497494639036373575806480078486582376939622675503388138533251043968365722559507050520747460822017275281405706920558221665613896558623302632520637728053752636601737148788120815347772461639833735453548181100092744265263143377233606649105292307818433502693548032759643578923840676110530915533917192795361847336158707998798231028850770292646580776177243258541406874611594976247787944786220274952871020152559328445521181895113438317412829311787073717269529377997204524937903267972147266966716869275578338083991958588014647705424701344540412949093956524688589777212589040152726980065884018623189114200395863307773130085265655770040258195904960413069591836935971818027240898555745675524462267465931953140627601511435539170466928967083127210989936902797783564779583100955810654237450022577856853579578849332820925709392458671274122394368941742979708946236080059913642485242082053592890509057897235693407831850653994699053339366732607604638362097891112876505634093684811715562524869433290095807842887836177432389596596530724023437450152802742411151107509106692143646793296906202258822654942007016338870438515088689489016545077765670415229265442102419921985572869558852660129624816692130625706908134428981312237474044770092515017476095954789099995887743310784869534929560860521295088753069522123782364634326334749041653667660741760894347871749600047725245750416200189284429624194066004019357947996198169137944098357961331654765397698226821429461480009045529855829882255555565012514535323669395345571134558558861165006152445836489347962167881901518662553730423808364315669451236544060159580233234413774900942729656218784285609041678413589179217860731376506177957299193540207513057876416027508278693848216603676512467974377106938668394814460216971628437139182741171936016952719691334398235581307428044728526442748205297073418823500889784487915605731322774315073662316241469276746074929929709002962279366050034411067643492699387274776884273572904248811531088680718870632236102123550024583177358507743600641922951268811527420361338222896341832259052936483295423103111254141857035728366348086080534886266173870662901888535046187404786348755732237521162406221744493362835771535046291081695972842999181308444277873634499424562558423544506411448934740027819843229091563188157064339051842885315356085444761194293640574764993263506351582575921101568289289852067109293443077421525229489694256406965942794656726245091161056473255906330579327635569767704264684365647364736867656942887163489144769847545269210216993301827162566476251667014120155464207076152245190534986283249962074889430084750115207449468058401975835234233377432354090804597810796533923954216523133458142969147495958182494626347127537347034328391061422011009884989904223421611772349860011304883219180346900352077053475989133048819362754769245034430560777016206078538385674389990983346864814228323250972258843707614023952225035707697391692460762583845467668224839775239561040795230953192519460669708416383922770232536348908079574293958072610995273430204282299092498708788237557684269074617669240681511290564419112824214686585170363096428020134309319819424949071637830196471224874452079122339303109496058605283964827338426421859898536646636137759575210075070759189956403689336373228219399935817208260975131419546518666574282875544981631769265022579484109759552236745343683818510937390673821875174472237077000679572121684785700543120346606075783294542985116702373435630134359922441773530756726512050483685928643046547977783428144612843884197258011548042072672650090023019790414320149726476305808121583315408351279306270885960328195238977786444508909707520790440154598845149431059383477245066120352828811028349719881033145797793483298665886842839197424877104097589339944851236102669424902876656918483157519228120221650033618178006359669314778390733135679578041239161744481464912758117310020662577690505525230836804659291194392445991534904005181848577460628993618108030170110007866424999440386837714648657108389517963822829611575857949463164685921442825728232977173908253233655181389773212903887908954117170422322941332574808883285730776447382478810585220148067564410072658840771864802183822147038237769877840223906904493990498910718931400908283966946614604319219865349537619882402638220011623996108520143589388808545262872898226456116937184066562849128875907397325654120639064630163979182977511958303552989050526877971283969990105378781203663461166050849752430683450313731185141864085946751105702568893682466854824739564171586051979601784976327581433215445634160277879002956460012515448584435622576436491777876326617738931663480343972061972324098936937136958495407191426204305163997073847017606532306579994201040942043622362539283397307607088695946580472820362039280181558935561419516888002388175928755902412048150455295841009027508507432042925402399624231808771589588400498025060697913094534496396598341924581606280445899878071765793097980293102934720241600417311990513561083759882174727375260998646365653215627486034547040393941670648086237438387609690145401679268197951729237208491721618492404284336607820025073318532492747030659823188704895392995975531422548557996554099186728380413061393355840238964319402144139875320119067275768014922759188214615836228064565879130469939220531476850780039951638751815435134229413670499036084334446414679996668343079386726536752106711023690661843057789105988175303227278641702238356044583292228641830998282973995051311653025935629828849390454105723315684045670252928199879838589793622543070975971932511688377706609839350621382750341006401826598365732153130437166943251004806050767652889116032423227003608654680559227199199796912004106963500953886919674977022871381715591243087921364773242803349681580179917266430280218688026734499750608811654346282062895670280124427929793361401359560152232815374145538886517088488416020805797591294060696696980561793597546537774694738699364303743242164469992295614211340674223001081104462806806196177080501642187848038647209924019211444297043344830841026544689907379187823163951899944457391709771068211097084421506451657091803372836922171864216385366637628409905970633086141333251736906340158610436857284562774373030859893308764483371195148542228259644752943755195798740906122330139940537609509403673178734849990532343762611592553025193234208777418630074486965460569537525054523656722134711281315409167269486899792333020054486041745012768889669283632962784471400116510767816299977842335195031650007926874210887343239204071081784832450626872548926491204404168752495703710492934730952830873957843177502106711542634360463301137057003727201497275707073260280630787814756430823117431445400311975188725832408798488607941377989872922152299625840135774643578482553192197414293911585662278548234821327513148599826971884187209756932121969694889269487630094453216886001174487750829611986487728825176045438578084644675828535803018849328055402395543788516316829100311705957806290132698565502274860663553857381896619653249146729794214588837908004601816531178496567473060648420692681271505730426435100199021543045412456617596760561653427967179823347220277856201728976913942169485766646359109812393946747816537805568031946251339592937647852776559197831306362630318327378269402245683397682241150517893964435703522063439145111420007024470534985062887805456836633217205017186612335649990301341448379056133008375684504101992588706664969377335279682062053319600134243260656493948622211595783935095481481861024378176195746509642179267833522067679634023252559883032102235348280777185684124511459674502966128273959890755325054180937645994337275787274943317067081145765908390148110071664354778932107592817064088786687682493802091149956915315023131453895984065794840170012110356702909562827954136848193148453780028436733389259610857512240682792775830552052233118473933632359716583255567889583470706567329581963745838526486186603352229304959071651071610373442917508020198989772693076017073571664366763491112557390304339617725311446120182458890410048726199650055617443732861608194172233403975538400146309947071398360057943561241932147148583992472596702830240968296180424828427486280357012536251111262826997860045663718116970609959879191403295700413962761475431513345383098062935522556444328546802348179931199308072934380643285333483715301167982959112462718257301805968094132407887881567210414632117999035380882268210970517320133859068546426768960798295612873195126679638426465500630271375892083149858199385460946335553970705400146406254566961735473892036139344348475019070255401296221924415223813477524573483840019283430946750181498892856405740601521900921518215621682803986358087069887486233853680402417748289055520177455412319473809725479742877666397485620616161790090848360954018382906561917320379615238899933007196707778730736655652921674674589011691610886734200634560712480625607570749377874852485239927511838910053341548325103803692582984619769496376265748135768442762423540112551979400800856396193149918573359121777796257168017309339582896386971084701215695352833024817850260319089161710674122767447521112801779969341553898424370593403469312202541865083530280334029501100003170025778558149758283854864045643837241266079160391207104040282183325979970073700844518499575500556193031412609725640061813344645850298570671276532377701882753674015250252133765488503659786289781610030980105455814808547919848000800900431960154431440735825471288358379087978947844129500582469769430470091144486058315940512402641977265942432029670802780797797602859040093908687303192351707822078525499978302801533785105089375906527132536783728292431843330727701269113478195989309322294269641182259763745219946901453634824507476786343457527047156452165663401410883342164649977920662044590621015031443308848960881163500929538845771480844661491789928345649476311254765188184092229308552322576365545507530154465703888746317129494065874975571784322541229185284624572211707997302441529368372228661043763276457370100284668350616507200957008447151887311445407552316141797956125888898425636321852746699377687979619889408800139019870650157391499808435123997172261787064678514284789060888081534242369994276814034361738005244230984782565610273096232104411808313039335561106657092672810542643813500017604919475819613295020284563920307308267919890257675431727852987752489593004773630865548255232561943640223451464167567059732722595784553574496307480803818685459725015288481781175172852160877682304616177132036284605512629892062090208114167271059620529703014380320273928080068171008297416797603771867107501314691977362258792995329873482942362278114980846095786277728815625903847856472099664371492378040833102811640042515737775155647801382622986525381220195275983285871254830718472339317911206095386378064596529972492296766290990990836135165605556115362996632125928195389811133639384724064514324852976172827287601435079880455828480588854425038247159110871323211465034212381231512185240528110927111549989766784260411329849877652890269473870106750050223189154647599314351450497905602307064448883767766587678270660837669164698735278570569028442037967351109864925397278571094080071345737108114677678944712582152593227287624359642370674810039926033567532668189955968857848636506937917057752991170004498897231813414182036178419580413696229791425518652187533297656145577116722843989310932972907591385491543531547772065499271486294899657847322266868061714856613959774574572782841351407736686430398837201886311205257449079550954830759244796415938518467613615226877635755756298146923949852608842298854274443855330837961724873126879397772226391819853622243393540092500471583661493358484035988440079413462700090773385242794929813573342037639692605930699439236249359097071735272537068345404316690352124218311483252985028097923110685343748883524813145675557258534344205111066578110484330771692575084727336128241581260018329886018925755727498406500716245943513476005436450293878224206976710806750667702373977776878878043725454664777905848672291917729526808932558217498122917193979538412776380482718773075878908027862241331123384995215915594840679669771743405901395162293151356056958028095538971084711445421871291986750967326987118618477832855586139233967212723653835897033308652989896294409417735099378357764041832320367352732585132934311102441095505610083659198413671257951442521773815045000529892880635645587449142699953232879046990821613884552913947014781799716394633507835509866932229085482957468852631637297307731165865374841766547129896477279755033351395380785354962785159982566579909222271885152490727076793351495048720204856079043231779965975895058933151217459748232719915633834951867724384751549283947213326862191824222709460313817649015048400890318247963114716822093379731896787313529628671152783197648574390525966907460551591117292643249469586602668789443688686593853373574087970677988699828521874568487105059469258544336060735075680086825245475584681491521456370181103413995746995859137888603078528413823124362800729229245937668225049739743187398446035402323167712717488543541097262058290192303259012107695214789825914450992159078599059742090656199989745291567353140108929988959646239620735775725821177439042403015846745997848174128084136231209865132784038579376088615911817595536202799333138222798630916577296108128054749923977951626208556071676440718124831897363474933736817847147465207372442872111590712602311185284579540841540205691198413514917538389723395802096300871176650950312876474229368986542995911111731002179563634259907308375400480708017288129715719597693003780737867146232653636540716565258801910459701032493380985900867341008496149028187652638579084073722157604668936242731968244202284182477579897621611061187228110601518335682423033124384387251689873237020927565206974216446899049667027751528520211871555140958447194499408506058377740437012430749686508318725336005043326033333871868764289473203523677274429667134194835802444987340888725205626396964992328737829702272475665996545360240269883376731031488328619563187781423531845301781739058557613894060955371097633760187804171367712276363665897506972065297820166735323168833242777138728810583935665053114486078558737857906130324585044824209462333301624069780871125317777918555190635423085406449152298589237938213408258049103249627235325793615858361010299620240973310252211983547326279095614199557184130969523723113142164075391817312395397181346524923052474984855667119982319399916653809572239463388052069134984086562026894675606395260883761551965431106704113293883785503352118134009972357196604121556657113872049987202174105406797979021321156885774937861170747250197434212379188468040675935843127341065431967331246681052381414401874930479785931997844525359107020693179388703800933568350790060939648107791168282224987195142241564835162915635507640351303660038831759864195647441019737932649516767137493783823201980524469898283600376078917764149530671913596430530129193480897322019668025907924985968802796784716356506922979235571960659176421544163580031170454474043844893887656988430991441777237362885955534997249407352690243756787730034483296458545497804098714883222613012878424081615798320041698540144918575410615942921160703153829657510920385190480262590837281822908153289955384352662998009019898012524131638534065727172698644349761861942691582359189945771892938212795891820430385029217102692168256672411477115812914903978003409732946166621805394784614718341516197658016396517194628451750399168010944419830416605038580659976049115395025505536565475478517499299659644801036119504243940690356567433625061695741644515109196758416734835168530201815707315509772574741129283417297921822848217454049796535212758148445141085418382249378871726829949485962112756198243598869629114671920758077043877920550238528640661452776153700211520737097892818862150701331082837621874174079563857996088662020828546101643425713903466642944194631688553839592441597171386801321218604065401917056228543004173704042269106494975234039146757921700530386822495322326738205667699364916415859395285032947297257566019299434979664472301710134962340341199189351219009976510257541341779395802403361675035927638222039524204500489213089171440373661648943234897722096219852311226259613065651241599663985844867452480171495624993372221113478540955171600765302872242835369345101613518408410535142852950926731802050413912849168684702548292430914700296891259591293984869366296110111053868941798844109985656764641698720439717364926756020424242541087352177644871400969481503278865197003984257098082897037528008859173118843205533125083789667548656786874701566065366621628798191055317656256450650203231282457111725270446659152838477861219616978797594331783338075446343282891613100100875084062818982455279102232266600621875963585548299444941280448700061889271548171457955011537998748840570238489172878451131559293067696674389118463966723626842352724897426798265178221909521398282167314317336280415912333121596570142876918136334730383720398595555740003316419621159030939169654943028204577780098944184568086322496205133019032575580762236835442929364268092028069774400211452577548905420766046891333226715663790346060735063802909856415600455865713785088553318261618797301376737560163891100074354651283676388550091434719648253701714237961649513588910325404962741866611013657886113079925816437827663952391194444852166289291562951836309113515012827309397803739834982398637330141525911169315589049114363910597639891646012822298065250083755095617404093322557519169556789151448679329759566536434848382701272505638109295371870378212121836573284667598701725645409841858710283499458639953242318824206316340780734815538945895811909709304864105232802093618104402908825633232164606003257396287564094175804215604807222411367511673485340549852577497107310743575260862902856134443178204828737073014668249044633441403749412145684273493210201956818746719084753006993236579619112215101850162146740615411166190124882195473646614534366283053065685952631953398061649513957767713574297870780205984530024920397422348887891186205156983922378459562863571629117409984671952330100269981145573510489714370575363758836938472124955724519456593751042005864273988089178121137684728657704264884534018992760899692347273170169883878863405031323273454076016642560474441217427674156573924866961942536415043908273226422446700908865377892007629615002277998294461042853209665487468413158627624606059537844613773925430737925419883343251691818214572636881268600597544811192709617558758088957014869837934278684648695730406740394418234659097025090239232325373281261770940953892659830290980847675571784340252438462817068100224190818817020803488082289479874281232698027116986652726650176612358180666894077374499765071276186087571850761074097625139470597082268607702744494417384436592975005926431822253949231985521005499386090322145751003602787436670796544298416016059328169761879864573080526354010655051914211350630643274782106032444596211286320728574339842474445862921394664292567965593442966991467987157681119757767595882404800293775646888267319738725551773675839771237908800132279428554059873982967748637929187510686409689600680500556976436236433185690004220456587668929619067295707784882251801280384136733570287038417819750764254350833766292659868899740337238655206921809735307384719497268743143932791578497420762887502422494106796252670590382162126737706278347588162106996837797941459047430348920552147976572686658128756720849197630759766082783500259218611662250200352316759478191311824226262096537393910327113579333830022243739892332491739651251897159689513361966136672412738953615912528164737099746012581431373916820530384802432711647144696877516511824207418509031170466835793360961213392115690909358332438825005064458461701912502614975436871062893074574233036800806909161769796730277027985653142864189147352537967169654858770992767696636834508224221486561987436996308111752792610221215912349938001961850785262239212710703614242042635145021702856783264589635982008573115336946312072796579017975045124654093796859900117707148498432009713997365591646148292878286628895728188011973264154514851249941241456534817785410627728289050947350846567154329975057051805149576494186262555619273056677354184857183425435651552657233533600013942565617801047499540800898365150517768314426407261665217730484869002488920219918962559544474533080743673051236511998199558738480328147620145307425978183427589532912708333225823264515582948003669941777495304878344636701873515227651806652512507822228752078893889084826602959598280220925284593570640552755918861035651915353488840230857050616771535147874287703001683523114733378896422221094404180986578569159757795726166147965388666689752423347141362348669579299155124696636925319127950121262031143826858431499886667799736157244779299507588978671182565317507623368086894561833883837534117465986526566880492777028440297879482989832999717113475287244969615121274538732347900086217257417797950002688717798215391771155835104219837246697681097417668692275421705532339620718758302885568504403248621718627489361974956029872121466263840907814264891888182774300136053723871093932325305124450579997377334767699151350148878528564860593630921527600472380100067929163589379192652133332854378844186615761641888823698279725242960421033759873820151264624853784881374106914063802367506291067012356084538004472161952679894493459988576577905697743853628121428147846337033496088459097971975009781485879704062290365845210076409286691614775192637531218776185273894230300044880875633797923840289261761445038500202328899467765792492746550523250025853787304140484825236502289960375220213940016391782264715905908843824256178093961070658215675203973017097712981042241410686936217187936272194208023202289005952238562831653296005841160388283226139077063648883976032011009187546578510821173949173304437330836558590762148352323284912800239568049017091843744427307494886727041817000504109576607277101216367546566002822443105620127417998718858239323861606575041510475142286176894885057803835657807552968600485778900386728944206634151302187124194305206826188365470841661028007334962349221343663538200019444729732959201164516973595784640835341466910927811436900826639245736630178227433328250930790382230707495653415405245427994662810152433685310711484633184228625694638837128552260781699914723631695388451002638096083043839961351835709759608492461615490194285215502100926594742143511602068655678008355831955080123917183573251513885425578114550831907417406097493939550181551798280198634151433955777373183198419788033091848163570566110632985295987372963467465442206431193522327473674266431539462943799188748794026626099374426045348011297256658601960849310081552801882132840966730360336762245663108287923815886012875100714501717500479800746604377497503462787087041971725803048658941240679693094876357738140322084435799858657769597625587474561582101166935891357768035925169644507653665802139154983985507886955916796836563388624083192928770926293199235535033721729501278040266364347180563934731979605942594192029708641958024287181407511208943428965258005299540886667053704032744470417789825734672028827513587479703978855801876149828589509024702535681525353442439222634401725378612480837672232323854476152929352328635961068093635542966903974285409113130469726802175602007429557922242474569422201355995226755415904484447970717500043702836281393631886275637035892712123325679489716113692692123218246304706639504931587887390965828126519925364873399535687747639912144605305121073483149365973229851438588608396752713506244830556172136682665579487809124076413444498818754223416661728667418253458017283986016119441441594440171443602908452348201373382091889694510321418160929093823244567053007891610757996768804623892660797935363776407599541016240338297987783095055318274259651817354716545758561705700821586124738427467278487734302193623890303321310287075314458859050376443362848370156041798670177261108245085014714811542689244632269795950590008535881019069858903771284260705193297940641034277758856716976839739424083216727040277076682601381483319582510026372001871480322030009560679234306049120660874464369275540712065877733636627701267914956949304048442647520426829662969190071506127425803578492097365011773094847796814939805379669257004453480604526782772956387387902557181762424879989349820181100039939750169459381050406329526291613936686649704913364959902645006484994029613202192420441472747746984915765508514379687627518426044926193126691579835587409656689883437644486063061977696334267731540301566264675575826344634114045873002237671295731423636783825283999950244844655144871401225206612553632531526099334519617657512996787996038391682694318702441131252803870033000326000553371225722814098557353257743644166571344166176198820983547091589583211100769225994756021855619132354618499207404072970256468055482054692863063357990443149555385994385931881781473652098170186791506939122707990498579616165241395175161359933063146122753998662411510011544193922466752418091277798602441796932807466298539284418662904688911823567567392689025185816216343725660608835981180524139103840298732245703216109134065478564287385910058453342933258550815084534319058558433489701247074962590808102732522102810072020853451045673205738181328339917139668416875904778794938972466861074794449450106206495865425510576577850997262284632732827693427964896746217076355417473162401893153152130033692564665683292761063347889751976715471647213336863452421564344990328357676476171365637186368020595307637220290669051942686325821248443255320295829559526822586510333540976572016747634862492781835849071591211098164445344255920439825596581337644233243482507022489315306632272472981374058087679054127887466034710028824761459169841182325546775667275735415650473280255755967121671888341416739602176945274468518056890652688663014790310326497982954752935491317363847566464793193204661556257524388663779708197772602440796836412052710782007559756146255111620365969920853988487394475735215344159029020193770485680111214783498424280556630208340674894864286003036211392568298150439450781502529507180807743496078981778523305044351605551314168568013417165136670236465309917992983296045674465309536864896202496160275082061864280580438007370645349881892534174702968201810650329579352536857190779135750490102116519136284836016540916747576465196843955680445781777187937496554918964221590569671154978367261985333352073043604539410717940760095729944590624094746017871572445062384579826155054046178641561489288153866182448460370034962217620085424002096860291510798424408843840349528147352203255792733174808738811491902697901185346035255150990456944221785761093888464593141955109662244587454725825632446594493680882515244146794926892897197759202625211350808738293847993805106096773409963953726965127933175092324722677154958022394297641604430279914058267579851124591243934135389930680721168396861294268970375305199580808895953430485135257978685105476519350500707736167222389511531554407013795393490205304238723817193896348990717015656920389104241445776058828795829763614005527221025578331339736535135331784112839463961657231514407022073992111192922953058329716444544808826677282908385453839162835716334414975164796467993096678989106976980109043051215775006930784070831235826104293747310420418242813344141952649083896334091104911838984361334319750679220346745580913862345029032447752437055432158647151322164214612518380262567793814647435491573442508696909941313031890017832349714197058945533572808885891477651390923017178332371363694362866677883018409197507782424301500554763460771096362173072187396310826926481259365316300861250149318602763059822964408963017251233565552726878076931250204532862591203704567954532683915386118105456934512718635147378769445833209003963263545807359461302025597791200633597158215344918275294193438541120577170728490786100379032209877708573501891507419799642852515161569264524793985057293447818007902968743355819068930090664722882826687139319423298731803523250846118362965075995829100553250917356405315318416252850532651643300034922567136563210375475085822714584714388833212725725928007836929119389490874611959622202409239189979695834156832673179223941757545548399749419291789025317805925211076894129207470317176861147751939280891877176080336060017914404402716116079130508521768038410464012414400684503995904410119056792620776823808982128374239322777703871600372515907101338481185447480717215682208803049061698397738549650017299530201673733733702321383982719217353418490158931484705527311144101511877472720920523828835698954284049244114902381512203494638713648549595581497728146208341731946143443704246902291896102299267844432063075963399728105602438408202288812395365948943431101689352041005052020412449845337256706385819788380685658191358421029899751123192357352590599042486700299586866075169727319374100414996255720923642245311123410801674926828689797845238291153410049266141539983430692313300728783932846947294983174810560547947508589528499467017110569651914094739497839128998206971049351571479704513566708195309966557198107494059788515654703101939007609305507059974156225037096386424715097797992722764177645157911442663409857235046499703517420061625072154645587212655015316330610291268431421462724866989339796612445864058832513187100643032443347573637150773339194371590557392194840629383724755432737239502020010050865779348109974139508667828071601922657548938402846025330234825858814070242952006581190076204092594672302819485209037346923320794420590853617920556638149127506889342860052180656323118737363998201204745820266065003547607665027411542001919164980646879091341282376687976168662115356573172583714448959631077935131593132108863633663694519056588602611799896463572497193450062411854858872878792621522349983331204408689650694013118353605135245478650186843228370146456097661889843924642715616896379271127081703606669396863291329987311859286993930297437307345938999203484885793536209982246744571238128015245173103913684391781230540144776996879908893410728802755708191101386965658837285227199212520383620608412500954284087628906354869700684815373975964552735806257455238015893737512471725686943441288412716248029674165442411620930209086031910629454625100915137537833813525915357355811399326771816662409114145368496680993749874200092614985799047026320846544536859977106265848857577817970753561515379791339039720199460033748316334712455156743886899044738569204548546594784941633024041698484691407226759594557976834210553738490787655039208242334611189034369276282316506285438207424519842433731078874852762014884748793198141314327746677639790580908454511527043313336565437446829817409338364465126549394250827390790084954278730215972815717773434871503379696893455403543194791173165401398799658138242234229557719858227796223711480857637825392404219987345824882609892244958170801846788549683468754665924802739012304439050648077365418577416937431435989694066399765400938271209905745458982787638942918528497926783473030845978257335306045703370604962996399400814508873265844442307948546246620510031427881494747515975825996132798814088221724530915764891118827186806381361400640385473640811895588980165428000971030848128487136639910694031877991982679257633184298663859845527109870669076043124864284543255991292045642457173689756093803849294539511077757476521196821789599436824471651494677892045275165810024393294281826510260759389257046483571706117493285532938055403685157307780983614625650916632389538698890883270847421477508612793673502572005121211343263463614677510124049905783600852742026861933004337841993598969443373085632945111226871349850264963952096124816771985898204860021402925000800269006164378921443269222109768409160357125133498658996687326469553533233504832036901128956554145993359903452511179976222466248075821489137215326853566226549193353080085727256366798752614046277573260727019015296328464008615298691748785295556836721572538865808489797529280532693674374157321155412506305509122285682613952140382818077035181291917540277538051904680495143784749733889908276451621389839049754382752715779431005793398812685471659576306270332530987022057196680615224627609852825254240192892371861636045662828157794967073942923721801063235319892205613965723941275922021441388142960076479516570284742207101369240023729179225045266060049892895661567606397579827834837645239346242549656221055407835075136796854394527566542555546208159319820682328580119614031789238369469742655318232939997680249156419719211456982912564286052988580208597019963483131020136958704629218158182238126409057651671239601227075526128660157767658490776856166233576393898870075735550369443038363645768380724928286186882499991298580900220602521216100678085543578684815310527114028101630198818532845455620450211160289794439864780836827087500216263179936014138236478931405472673352770385641689706228468463432641940772477717182086453785967311672610305572489696617536107739746255880941693508530275114569240132589365122855820359724926734625676097642225351866927872371528218485054284476260563481821381377908231297175241624502807146474451585418599146794409099776112319768481265473520468295853426024523033660885858032103014887220878800400724780074708970382888417948173609419560849597654128823448158974908981657875451607140842629450100056581453045288573012164191615330374818150453732128223359167188967870433765651651729450710140237293503714522523067052808752935512449210137028121269828851938926212850874701384549682345870907821717714886480144842477032444119675863110270943292196016148055292057244981378716810726950514216523177438165801410394871834581529043831605401192472573830602542191558741393089893917341211096151664780612965487539522083177662388226140647138053753871995156596163441587697567341755424835314950174193248792075635950290035627210657249632648417650511527262784945655217082474494530000634074655867588495438035599779082164396214924561420007823272649229584384686503581306326797803015023689649789839439046243723351821872068413259909836496055883364817066837819502502348670450071554510666365665021217895029308342214504392330045332862028413129897537530638131007780075148541159353126195728369550017275900482596390046471346585381816425207034844264027244451917304759459780905708072405111340322361348165609158395549613602737353635234872376517542725017385312860175244604856988375090556600909461626172360088324299368947459934666384245560556523043026755631424054633209892223374561830672789322952207553561834695449068440544248291717244589970832898098374530084304754316433492586529428965960836912153632930000754664451832147781161853669548371471203541290697582080054075773561939758710467814762124900748971544640097336338575980624376752453797220996402579630373599231522321431314123585509582505303363540231278119595428408105682310005432572474824663393682840367790295807911446060490377282614124499623985675244830885891882674345989360927908521771046666339555873895890097514250803570518461944709764984509620771658153263174684583139251992323436334980011687742452248314833179037618168660896702378456346547530106131555420132777655197259219297973547208915451433575620500249040802438620988842292440260069982106159400910691607651398176073105075792489766072834348600840657616716169135183929664900438421542537378330655433890598302586217145544236179922600673706188991004081601094361033820007058859796559145990623148050735351506399719790233363370757738412694130561209589991743421608735018669054666398831423550161018317639090513064989494831465394274651621786698692587026210625962085153838756415333679745402935219130575649531391559994959124748468918955454272836764142819198161199429610273394722083662147615649114361886506932093871617722329095013830968887980626422391781386741124077355927181994253683647653366383857389411644792014951002298624013525933644626180323352904066133188790876970752578305462095173858175920867809503426852300316800927457891088454885402916830991889887639101932762024358889289912549070869037104255645072102988318070840938576084592836336547145692428478892908179203305524147526394213963900488980694915650376071298670486308259694466531161758094241655772459170168178206178523625188815039858569815007227031812878106659927187000088234410151368913519880130331791821757201834673913254829174827453499854124526877911874102477167589423440358031734428049697705893145505128770507795856675647255217060412083766376127481090150822913365965325277861875438480302794101589227817889795049821782356551347203478471853923905756171193755739218074915388637857169402240503837640348750110519461213537199076781392129945760965968801157266901498208260076853314651327102726238196646120424715968515318047280380306594104802815479958201605457507218016623169678746705878451434310557404511851952954311285202496372135819193056860066225962310982765513910988793341018266733449763988491614626612330127506216205699543589982083423346916269151406410493614378581986298636477074785028206183829266562326810041681868970513507171281985728731041400090224593654533916673403564940673790998641636479804895120017886416347688787012992796340647140692771339287311344372491813761313431749828666248912528768051830864237972210233089724934300761408901060883309053001050909675280226886928335166302254260146913671817339727892998373294172244583826311373506896948927327218832197747771315499653905651702647587758788926135272662106942640277519611112741996717670177906517003255912288409322595932752689384004445562471981503183847092051062249475714673342487611291225068957739418943884443628214998563252549312910580162019910944464874773020844934276528009650788190468420182508543610642581182215254896284122242192235960357388214886571298649545283131002024784640433301055074310447966632591628973368890572025064506742762247169679244196160166985693869066735196836531936999446913923607538252851384312983117452019492061613575762578331245575218610438188963193236447965792192129711465159447801513844756300742990759327552631898493911392171428588230422092597977707506928439075524409029442525581085263012831824343862477338099555317047324004760707978039119531466246558406442760553449253709587393742587363856605368977079336090651586198215117484330577669147549938454395243630674502519108378586484790464338115717920645094776673052847011014162095073649015873999570352675687332995198804098662439880507430399053137552123027614641922257363210065638813019231558039994913851056900923229057137945840838823892308105689028638152991519399201286087211781287821718053322774628064568043858230710162526896350394167102008380377105760620306117969450048899337926417979009594754618852697192603015700131940397068679995458335245652511910161633094645325073212152762704836667494113984975695813120180389862456121297743520275026848197084982996910117475967252647883736787888564940528469490164316931711503794106287126504885633587976829534419221755702610154692250575946677482118686373088711156747170505917998637241835320808923417853656606633016595376159553420920470097293137793130654789166125827315846244687157327606933155015442718517850621608873766019119518129993889972000224056977172639877764555455377464487028196683778011491525162359542039993331450206572823116918165245594734244268990363993009044692072302136851173066105967508919529282524019699477804167921503962625161686141943720645586315640087806515654574828388278049702475089496988761169723660700055358916778157753743594737588419933845329541248480647388184489580288635567354145454685416995172825101024998221756452577590347876780351901135546374608062465622373989483394735698811913146372493451465863870796859463931801273705341560545293746067766633234649494724227411045574944623506502578950815087632101202269594670510511371070849478313472405876439765750696803187632511009770530094777119393334514522368671972678012500648778731964720386299991774382991966888459258981882106352239389471182349422941021599132167707644985551249278142246279113600851389332932362227552720726826295549141624339760217789162556443134716233738449786876322832179299289235339680393142827230535293689480300534549142691736597448912078673372614053477115928180163256599696423742381965115370371007845624200028910375081431618357301781108416563468283817988922023707221579277734204257102029469373577132243491128178290085957850508899970017020717107211033594388073677300502956512331886578811656571552004361891346348226805671405631032016610498772429089766497572798505523257402910641703559477814634567001894327700515731770530196214484275032809188343000274093072772288518390760359171517443634418813217326999677960016131585587825533105056419408343288262172804002565794744200983396200590835594860473310945907300598871806184718751610730985615678094359972543539342630592231293263018840145999823600530253504739989689197697625760357740776568004974619448798193714142224323075244018315658925825606685488220978467270120782590614555271016490643467719148221524728106473380562903376764793564337221777880947455012160796178411040665014436722092591893030681587962226378728021823797840917738613645729381372116823817194876875664763808569038841545563819431064549781536145818944145417525797013142951934280165066832132353419316184798780670907707416007369083708864808425203879648972299666313667851112881846382002512454805858081344224810329265535807785859437067915282537365754451659253781334991196338290049705272900362916851678865344770533677183325352838509166083181331373205305979083072117932784670786259682490122769855368261683803814385885313247065093531424648638567534201793171433723354045654129560812048572415040560529775511454898092547794853835735135483004854271657978834752374766918928485028692334537661759791376941074043677659092905484369179588827571669488825035470640846145733240087093939941425716827735723613578994927974055523801785965184458588627576990370373291639711591478846446650979363035942621109381117505049148044768371797366525523177815082942290951829996450345252505720252366502399748782866199923154258933245508806034537273573319496619880299819470466134156182077838539426741372615725893211439712111371191810627385446219432420164532820164896860059851623883690220243682247704293774340894831628863084401530271053411778105658399848668859468832117741915900255813878183324975003117777259501156677574222718458418642725765274333097500075720902043914716792211348831677061927011135727282048391173052587762552918380213430302371369576360712792998329362298673660091109363507964955334362747556519547454633259962304974982119004308515668096076955120748268002090748037806954965299327040677754615208275605996693693185514329133110728797907655317083856709291475620113792446542402168687160275085708196813990487868823633631861300410948657043154337561987788531617177761274522203954517232463775569851057523780340934239860222655737586973390968103821970682574911512977627676938890794664718594760454364097090257815172563026537239943269073985222495460542825026599520625186594809621756087810563077920893716264348469617544830434788817990085311098588551902634314057746094885309083725954274273441698288750875663705750887621904146697409395053959154810223125688738240884719445889079709038151442435248458104902227105756812534884833381718208061736829834036693105089573872628614021722168588220487271463012328865475005101516738336611323922578530346270365277221278115608372737400475908574875874414968023462940087282098057207960540725752826003874915019977862089698942731615547303115933918531304123660345064675371020105937608424278506238277587211663161081356597295150189780900262062634850685002272173067757625334672178594174392862947116569286816246999533575342579598328796526811877883554285133686538106868037973764287039116229923385328263903728918773685090250494528468003910516239715257737528899143063343536909139168542605758977547197101553658967834029604056906334814828867590924352026424010098495952925832153657467109141900786987066954898230246888771258278475239294793963483414287077664813961890032117178904361890071399444419874984153250423008660957402897788687699677311977768736027545136988612514103796627037539265579527347560187987194092022127808439776186185992999225768444549438909545273500480417469986153937759392644622412330619232916660374770036247501958704734903514977207956548638378271436213161828182701583415314422893520296977062949387895396195275224254875345451018334511941820567752213949761853793150348937833204207743796515763059806463502075782101005222535366153154588891108567890454545766156198729272305850665749281419342955140174393947421400972179529023748740874172330481316800598667256580368386555445326054854744216019402102747613750437887991166047693969541495152423940122274538116220714972581949789756833744231560868230016931223924445936689237978358239822908165175700838462815916284557658866482166807475343524961580090042095468605261737017677615847802529628610118874386796700207987580646519585889896704946803567542461736014122840094673457204395788896740306182484088457227308162000334197329724216941358498034299804880848790668210870323689515051371902885359197672948104354547066476442947810207845324056969823982885342867583259007018228315423633674439797267996940681654349418404814026174496681927422151216389888946827832695205552536067862154640761381433097689305600163069277339234618844327831924313611409427980248631641384041232589589132799245922603421112627596426705189532929459918201610556064316104745011346720403198006815546279244160127801475522678223871098752044958570476766295752663638474368559297147127258524653236096097975680261453506849745284574059260504254515593536722101731123311825330506297885166330637835294043861126212883168866355098048956315987015246275385822873227220018144992656739128980758874699311858916564927135419992454146449204079457115731271923130804218345839446787571898641612425160435512132728435810400024293906689278360302639577203010484220032636739252306218765154587660200003009636163878287248201975255846290990636474528689473901806032901533746426167397251243701580197011635966423724392025800046349061441493625368916829529466186851752548413905012317196681731581038691511361438789854392657584035834814738404396902070117629647040529596387974621648034616990801915068290540807123515515146242626791655454231781489986949916134657844560952133272005845965189459946767251001200990569810993765909711608208488329405879097773482331333323460565079104239817998574278099152833541755839142927446717377690113219329642855121556118522521660670323784901314766158857638972724508095083931898006521204849770400011381781701955815162107426853471299750467794267949475817971708201490133055538873197364940040419913517153291747629011072496169622962923904589569019816932840211233820517816854228204323315309773493261536325062095248194105928283989452661431280634512341957767183451872343723572519013803654721836042302406395194038981284008368850286958259892219068441350743287667905166515176241544713094584876020309257337299691172704639811286683881524648075628281017116528381862341768124976389554263873451512794647512233388890064274423950839731477237041431964359561962236199452757707495529564240616915487094264014968963633975490034245370871356991153336524248477365835444981690060843437236456610000359634375227463261590655111800695268863346704774980178837124942683345141700777580068520222520986111910293506398301030494190649155221150996692606816522181587721951231203840603097699523758586410873577374996340261889809072860313729539147026405943137264330476988823340929844791886157734618735407753880864086416746884621338935847616140257850716651237637308453928547164252773199353804731707870950178320874327851557891800869614811784267248631237356238112042399730159516278056322947401419736630963302704318383493743632277889177376715986286265167435057155274399477785609675939700414176196645174698469215660010390216316427743319052233156314349661225366974620052314063430111263433658837067497411009365283789516680525669292421717060896283273580907350480986076818486143624528886156798968097363545773656018728195605944375888652365479846882089217421606029463406216170590686752116694580537977255852830145509844292377738566427841323931939230924609714069275571295923651311125999379770528731661181767640633092464285689575017128074288125405489876696118502042887403845452756545412667886331094603264246572591430103373314139571161903380404313456795887670645468535992789664006751160630748211278461782926722530478275433116736159526683285117871536025953881691668896895902971605048928218306535381020272148788721026908533362904578090844983178382041953489025975194973881801994613240219229734006201785735587862658908281261829532314013464459379904914958050843130200028642266855420117400300796631587137118833350658192635759942223666899609402955152662042888730231608752775880335903085441511005861962679775955523785328353046212388172411589320866514708978061038242696988680405797781819847204596308873741167609290781688895152840472777972049234974205568005611955036027259757793423606447207581186934289621702949605078559661739022609078411591039319958902709996516589005847471710510407224874844905356120080671008037293044123133539316698571006967329559195200660384533114379401339125525306482272277766754985231482683450366146551518988073100609285502867513460924618211308260211446701373838779764087138604837834940954445246130467703393636587015462710453795418641388144527715053967296470190829601503626917064783756442215415340442221836918078860254520480041609442423862837730252290633912089382318176736908397831788964052059846239972622138333639161314144456437021454888703291522130816464925401197267590410295026123518152228525983270574727992825948420484353910196437042907708879659028367112673810885177876794307502543313455576865261545259661461401477289143562782129038430944319886548029932916352141851599564266516384299596522928961617924186414732080981299345292099635019432389617497939767383095558656926503272086260509465320248603319999960002312366560860492558629686382800206951662026756592965832039786509738678269873822381101517661384986527149058428486561364875611014480959639971650110357663127469065721007352345101021741482536626065410725907325187534255070699384155321411968621689336105742002634683775192041232273374957639897559628000531980975843742316508105842653838031036265125057347469915267158122822703252557469026858533770569730329002080381915685966248194455781532559560370956411593706179891118904895057004584235391057051936266752330796890683276874372918029012691713022537651384449513505543719206865328574129946754844053134048298451356132141885849952122333131352680855095557975635913759808901236439284316534647756489567915139757967513060980764137707439834670451946113987836944801756259939197891727475967009724695787278272394360348818211253028205107291147998947025975976837985735451152694925895799462718016400079026616247408394974969803023994367789655444236695056066150865768737897417573962360610014367892543063059860428037826414422104915380803492738472040819964342436385760990418055000393271761147986098091139465800009982149073163881141694741580609293603318174646280381737299601449386261059945222083918081435031880569856255354300216231388514105606518596953512599123979579602267018887160760204655072652847814289944530241264703190410716680967836581835260681713790901366064416281967149659465177939857031132597850009029624980742074860155141189877488327920397780972638968939617054725478492142611950206285422741661869907544478202735662463957989661603697457640822722030973126768872406016589379225312138248195650262426877947509087587538738521816657787635585626462092421098646031960249073781984105607184339364396407000345516041694124365562611658447074986497175600864566726318842420095662730817148336257781893688577291361124896459651776508635238767664092529828319470056914373968054770816876326952883554427872603176550278392429028382066493262902687971663471736058953940536993072209578376005128538514687355917288048626748388769762123510810266345488010867850561518733906327990144077489442153390453832005533352022728924371814093262979983948310957869122841772516422736160845934024363576707796102512703037696438004813771960377521886405246300364540429475568659422371653392193695978372557780983771649594432349095096418713804200717534097234197475400570708183033135909298479234148173337498983026083859573887275287416460977100249927253173997473515511898914862801644517423302089860926718122451455974664272349397955720883766702994327315418045709964732653919839172758939708663480763784580824669894069573242657653975908057218994874365633653537786256035709030682636408184257092670862905843865877382628146728761343689001523058848845965709330013578929166855818118862848308170233354694597529177747010451597275505280515536007785267399681141134418291568719297988483719394939208417851260659522072438077219726050317315620023099695097688550284262929015048333111426775449912254408920629460914191697564955429147145451042203820579841680545442804937097256532585209136571904074347790616133978065911453533472689137553483063167199811439970039207610660456599644587496591768858087384024447521189570280061225041508411291626970043803720403682049956166056143369747905339028748597968629169820951958641849425661766383793746737057758397239767880780578933379475295706830140731689337558986215113783101870083170012294382885106774147513678620057080733042970094284021580673731508578852605654033090170627487020769761543793002328534769488966716286650715011911336805347254887770835022367087936345593206638031505126180631132761124308642473872581494073101300194074341430325532355445582571163868101259445864851780959638557413612796706059211282787195007472807784174222504147201591889263831253995105157886593085337732020533990747403473421164777363155901047801439321151736369231908208379964376883931844051331768092990937303991873894523360196873740135746183118265589673806883565695214333955864458807203425198144135086100796455679077703212806811138098024578777338283623200453458348078731071105975672403923067823668430038486074376553161496201404812028537551421142659139023397196339726406142106245583214781002947535459409375781932354795923344334456440212510469967373998262318614874844359387033567602776380085655935783781021164416985863762344716266041125751142942008131506066301085158553799271514469935291084653914277280910393228198370305977481981323133995522308995472392252223119695120083651919842776170924007404645987856789192354721941270254339490372626732644086416425224730075023333935323469987962497222182023188392720556554866914994751139392391463188068296720332174900809576308403629147989518921867090145898265695519821950871068343561498467925501251511776031691226543810840419971423643688497066727653093304939040060180565276403103445770045750486494354002092346581761454593820860180480268383066127427976428746093142943961157771097464224857800188711961147844372661564906444816068600835895918937216200922228002311314141195420009153932846847506223825820089467458624718343311505101757668861462490580317908340417827372648898756822737292376496822378296238100193320286321139195180223483806789060829069294996628557928497653699834726249182824830658296501292585742320104205498243672758277445311278259123493456018394325869785470458577775009190956960768138826896034000361605060076004332217694082879247977875902409620083186209745683618610524124096123107599330548353005709527779967134805201530168360457469208182142281247627331023348441787735169196505267916795009128249543404477686031839623837790364969864799565436434416470649388693258380979405462720202950807934185055467917343891011022146168824892836870092308581237466991254924220876018397738688926250121654419736730978052319844850713987331470798123652879234533014221305053494764053488927983886027389391273981405445712428224789087913632976026187175962807591848742452795226259102255054928297898269961677371253181664115456914454760406000171719601585694181801500122414339455462109948751573232496575347394873506927642553696595625566423940287773254975929485176896526791783112100046039429065706035282148567440625669337902521800824671525172202820120600967838183126639905421055127360790030226589269091411086997618681396729259334835735449377429450184495719915931838258553763541720613936051283630452029509464981527055096259181216480031016243021411734461682624834025383605105216452796544815000777848102204982394990554626076943671962009349943054877833795570652437820863090310200670995104076465124455022347283949596064092916531300347637391616147532138932124548145290849742460804757878705268507805259781322899656973138492166994855040489515133515816121166302033138636851066431812557088563021388465046399767699103889019504484917882674366324429162494689868960120541776628139062504394337556094118688962053858122083360024703144478073697505221651354385432439290059165100403830075666608501082527963850656236163334115695055134572004981116566889833677252076871691527054073215511272524986504751841483856614636627032195870450346611476216232143888203738132230149314695422403880843490769196939545737455963040913911633111262507404148432432388224487308710995136764158210950843774109254245215267952131364944184035546645877647342731574421413058635526486300690895993767028480659730888054004713226604972144570507031051074946532802964616446376350101817288307950198368563371157218160512680026560681459017360544113885935098466660290810971166789869547523002620010959999254041117390980434279112988131660953638281570368376568009334114499203239499134109289393078208726019007815867757516810577866740061475914464777362555762095997464675591860977058803412680197212136316292531838393434301400684441722703631836039092411877554841520985310789839392399351578735122006882409108991226142409647788431854792286697114449316077056966185669261057767685111842383747446927814699471900417515925917204665408792590712105984175263740871271729760753984034365241328262772807838698857835511740891383981862540591010373822298855063165277911344860885386960276463079444679820007461627972671898394633595099664793888649158424623237417338423381971965541859147638941978750253037836067975804404039152885533425681936239840722683230356619560351403227510314690451443323692441658307641821122390095488385340277222741994113301318823770836763213130153037550496982072521696296292819299310678161110231332267872153867287648667105485304963152708394701710996411443323769673993525308815705783126623260638522291151676569041347788910602983220233968353495876035377251697508371908022544222097102855913250322815509268701321549522868399713032083538671584526503467424784441326408642273806381710870260396256016917576068797911585483566805317761611436313856442866885855426235895137356084967972064322649693023987302652073365861163206798622799942838867440326933332916509496068611147253613988107199916349130976124109417465138316362282250820158697594514447056833232135686384402003041860096125140336948931339045905003554415214770882402984314112059291887227067683879100473097303607993057434632859615262854849810463865507917024713856798238301313043891327769708906803763116299554258806412478534724598807161140456008775246452703103480932541711624691417362205505986208907941827213655968893794656630210216256616080754422207444780220385751235801082382733637647581646662616756396256641404655287444609827603336434499822335804478767884910681724953475838073186707503732271792292445242866425150860950323061455413661900634637418360243123197951327954513305611310013514215451821445131430884701202374717748487409527664788274404140025103790071270341868319709199928222428120717560055931256525258958453221384760453751508487682140722687779946051162105825489660271527360616752427347066271441086920466747257435910972865662848206225917948582281164486797145485977347502672893377578431101327469148844122888866414112642848858566128766166197932349404455483438680951904223082358018564061970112594666088580126673962654591351929569808670059876454840611322194384232012089313816799695034768238752287248004176677372200405909236022440519085127990654754972792029730497836867652617764124430902143727102316939866233216991168562563803803056104133908656487566146750336099792886479386957314843521386282319027365922774863498661989774905416563715016908414198452333317693976505794142592273119018217516132132235450477900938379177871570034356971858266479875610518727168614986438598215943715291831982154515088607172972872830807674721934117869039771643230965648467044111947889230920893611789009893661349707973668417809241733772998967773024485345170119619495959703309713257386423130067501372184622575090435613946344256959954245716945749015344672558918586944427772777745298758695953083566991120101941248187569615888122992886880261279233451605184299419606087547339796317900821760133041482500875635798998388468777869412666677065129461966773683368431302279385593754853819878101177875492469618241801857509907001948075049836203813528409271551661092108033609279652883299831771881736811545521766860974923779551096654091528279559652731861022700713846110950231123707361182000094751077810832677675143769596263818265197473880802485205119224996941880413209522443336486177388908195888011641352769804617060304793118089937419627589334469234314398548985434160582147217110752678100145033237678469101342468341043019922145069007591453070906792123284624631258931188744340990694877795128427968228466247150483520246012549151246274344385904275139992322644127083961730394332508255541939189743832910969052472839871770497669090752613362512082410457871896506105429615890464021806976783667300778891260983543262476536391721635485545966098574066080952158552334866664201971637886108775486793880728059285267545763089300978727955921127624146920078762232000196007886311097880119012378847722822109292616764391239222275174690821387445679943073321038771348820114118347437006624635324772067648637649851707267413236506126995824530178120437621179218670324374775580216162264196079525684051748236747304404520681216862092648480427609780389422181633901397941391607865760775752075519231642833147644993202708277740145644170297788072982619251143524648811605504076529344538371504459691859210528712425419482401602459449636573322489242225141844401746343993756577560924483832878297707823706789178993712819450120838702041637803929191691467925738942245088855132660825879236587900223237555594570660970581956330803007353078130777413445519065843743201963474059112448286785768692767497382715610264731262997241911322918264574389488920792303002917872991736757282206102908865840525885069073966019942451121271457843083893151376193418508920365489639639320926419834775281572414203278438378521371318235332326800287853370565374464798112282380453568784172926327983363913363194104050904348226024935453136300910483703543422524334627403426558072956115892583384285127375175768222956868738746163294431725918289111323473038308214229001447376850605462658566924530912960256388108526915629038185683822225712696562301836259910475799314690349649196760611368316173258600151783334491079421040177154953769493554659463162122464097345382920730449822296602951653417998000310442188787382359290029257401976795042268472144290793475351747050185208722221656005727985644127085007983731263672394283972169477928455387191311619995915892873848990951301757492597834722240810125197682514970512235557824936373426542778195879063734876487135658007078961891758442639529362433793173751399322406801299497664880399090090519725272245852005555115903780047235074019274560326021437752859343816694972159151940515560465850535755936005455617863059053614476541329790596311384842140957860137275315399826466576781224754775614010411683480895134745694309435025420902166266761895151202467104924675667916271836598474912154597061049805736081716675596130556973965070114632127653616081461701133110101571733515185474801067408404699060629155439017274760428338340502004966182059248818138363580029693517869955703238540859049703849513941908716486565268895901541562801638384331593724348447032395231970342436049396537508728247964694452672330187135180866397716466383369271870859296740746143034919242736215686302817306502862504966557077928891544759491052946799159171980192893763008238227417873206293222645682867375014358237480908502906501904996719689595295434893462939869475589436356639839935332545788072258815811232068778820937161468958080341089271933114417576459228184630735656463811889209636256924904295902379323656276609542580425029521230079292222958595045489344754677663180260345872305905745345333845025876479704110125921613536743668969941799379971002467674221135392845882997487413672046401614605379171487986402898629347055528161150497163663831180271010937571329750818717329334669777416082115453991243426973764488921992088477029271387534457338192718867641095307394420538018097418274238775152315900095833944463442441125394030775236918218755861298156112534496353560988061594289732913161373212356871122315454738742564671442413475209295399194994720953884773656791326380354375844053599071023708125505404494719558065452188499643121748841424629986845153898180620321286841089292944542412106105029898221352314388660659255289587840263269126115380107381013335480901784633427683264493798229447028877560686414942221713863068723639198603859477834110901622543354967847661412783483964943851184236335585283540084432349738206782146218292553795150880906985507293241300871878995179985874315666750338273353656884324404698588044259316466100606524207467794866539097891670737087368450363973758282451572055889510712940784853666330441007015374066604061654982274954078834674335866656649464774302351716609030750956924569571368028319577129660946072652824569972572366116482680418407330838783051980441622085855283031976035017332342274997732872159175852732910538071002115655853983951011641371984169664036358897094572716017051634291665540672852927082104458154099336733357717698399750268002942385759044358798096033479516826187225468345722759197826250202102015350126199526065192613465917031228838701626455669298908889030970636702209461285841468413509677813829979995482604758042233312368689486563076131103890470309714617929836679792893486676729476360209748258350881181503671027977763213032973279596829308111722433422394590906811971090022881018267016426080623019202911068420951939752198309549995855157112601883401140534618344357548898124156956029949656376134681853116510963790827810479344147641056940573121209642142416497844889496512303809944176563263671924913203797802431584797259225072563682066059930992589036704652236912049629665272481931780101516123126122012348177101656547294116001083214463495676701137994782831228581145324962344320918591085895339585511740186332330843397688474129301933459834314259243430473149985093847012395432191766059619067438325555810918033705649344579410317958877683134479459335446003169493651770212767952269530080438241907425192320174535532338602773970229018725800638772123601442036239216574439033797466393984779396010960430601831429822733142592586105839787959555436193688473801598568993374120725741160479932393265712075672037040187456642180598720967586498723080477775045549939871849224873544230391679089642850338257478101488307465518926523102683810897679867238312724667359428581303085536591900249687632765169471832498277750821561000803794688171635699197809536447897549653590716777658416582608883238184181734202233898169384903061033125123097318720517386419864230220350312741015717491052030413537086344129747309438735545590591141675644549491719162080267376151058499675556326404653761788292598171508693705823146267364886492872923304907113457616539548532123672151657965910042883805477207897539080147493556947309119482930722722667654476171755669443726939628801389182996891877590081687760112622128036046902547851210459994246296614176482010437210614320232576936583593272677602195729494822750365105569119381351421697496620458396497250652860069789237349341099627281844660521805325744841565319071094551596444991392610261047812147628553422463835151954365241532316094235596865093397113991000444480533208464615251583840895659493539332737671409008772208678528055413196184817119865578893996966769269892616394850723965017083619324322448632816746714401993747801487193333098029108323664987977458709956025685279225378344929281362232218395831765004625572866201977959994547297406822116063624479400286116448169069297604907150338114453074296459609419782993962103514828607712748650252916317448976129610392723188572868298725013677826764797093485608524117199145732003626361192534148311555519842807225166887096455034624456234433601507776078726744442763514303470718372710746605752118214846464890550169000608736808552997212499317667294188373361803637551149119279360420707726994038332942684960813146990704003721212228318523756740672813514122121267533988777069918091543864816626573411882086503289616635577359756712150875451739044333248468762587285463434935381821048044416473500367657115720482797317728556745878948746761041920302018984197233276714356907942001681230707293400680505713574582024068397681161232269691045155479052392515119321984771175038083867813373415092471489926766335901152046303563945008354809110873851521875651207146554963286839345186455677920181415120364863207442074374018389155535350883843149158859384971941964725704082070886942162972840242038673423399906572046303796599736492909731638573987203848385146204271618681520741904172363051404191810836957118979573095693831474626498394052316351906890117719757088388823463098925341166368914907341365106927104212083232181928302916836098246192268533982180045087547983532744781051497337572716566899977812024499847169348262844731447742184627153713898594400606535398828980047301472701656782780030701212261706729629291604592310849349553095457905304039063228857931486697355651850835565170895083748709784700092179511101392009349943246233923155412680547131483707992292748773292949384116886763630597903269777565662353760806704128692497501226615733444335079641170013334914907534119682832767171077760141765664877232081144445009652101186624950588632443277369400710354328102125290000715294262285792389973561756014040614725106750604916186304434179337761268235009556976290464730975525530173630273171800779850057069056228215825227750506983547878616391110254510661185722423961539168294190070928667891286672896657778941098389262717744469456505842310918549826715722676221142774250153284628599180705317069601521580135133961437382572808068421627718780415626608003130123716660107908104769916421532969721749791906652131645751887091957272920661079613555669247705725604451251734758990905104778770741604665513216083451240776738707148703502559471474634795002701879528604445013136695553976142916745070385858698539818929677747970203791032843106231831427484223183061152384763456441700751279743957058631973338755129280152538313851361631779483456894645093125638615333802504506916186901733065874109251785234663808808698097830946506741065770331666270936923057282195606289405431524257583218174109673304396562008158739505676250594392477459803062386827119283994813793492085728186048890993387764901849730180603383508564681925818687954099756698933097516372466008853208206047433330970680125000154677724059563452878160282643059474526868369977456416819755314489293247539489580551482883362093502347400375733484197953775498406234455413265160704205786666543007106934579618575773159930884387697469027622814785278542729023782281742611109304140621190056312174527515733278643562398642267491478282407192325320962832736484837199540385078110694990412083516293442936067313418349174842126709439127541374430362523772133449650716244455977262359671076188653476529257084341976602544740472306201632341433322511982024636948899568174918713152865287495347057542418141606112301029577178070946528282867343395056114872770637392446494405613882302293427380534308719673552085008319017574854598784218606982133676904525366750653954655197583101465852500613990295561075878875503295106837710579179638057101670651482149749879286985219912522720372466804954509986565371285265310376487312323897579176812149327637336073532830829030341270237889922013771667571389109536911795418207499778324758831711652725491160908561835824274896572722405040724248435584362126540945359133213202282706161915881631298311746105437372930252624309669993537066474926183159404874241942658629673251909342625573745514696325215570910625349609162686569436929970645751817333177616934674618364825321332076051104489815989962588284076422701664231967794858989775281386304664946695698638452316693325407007825691325866188391740613267430108813588979340449273378675713812871978711793010804875839363299528764943391623432676228849151678444229317217221569545894358300820003997748034947089233059386398346590504006782024745718395994132542887783716861776427790435908239272192741620220447526996842804104757842053695223402061463378611347432157901371096792120704168858962642094114603749493265772875423174437511007432447006394195426334662907546305443956675578933883304680710999620627749834750021356492587061768046329975595281624654232548466377039932911524792430290799253826810869970494313424136454572791376944149570361238851308128580885649560468444622356559063785557321294914451284352365947685650335643218936624228688095778480688723175056904041590634318859344616273459599379500950184029642133813092132124295103028868753868533049231092625970968120853003931454558188819304889533235683989515450452516786697825559237601200386001540218764815677674324357554725508359334573081298708659519867189878616485121546763319836415271439637648843573740274186583571007294522135371463345829370758632894225076628094731006278676299847829924502875052145799337674252589130789547100119295801569412104230882423925954485323660984223578350990903229495154139558506619919842349131651781544776905154580628073791478673821399134755963076320583694095709994786703481355361494726317140161492391354893353726807320617390821880932888147037148149603023756277157206636939175124806173830343970914102946619089898131131427671816285274873716080160408731763734959046005511697188139788537746952627845390972304220450063014894800544799644642888105619659485498430648834172446328546699669001217775228517420020785487376146209564396341672932693991081588240087717245127688743953542964605918648896889062647059910491990461343662102415804349185076134288798027736510242082576825305497611153602425914982736105143529116733681150221138389311103797088326806859501771746113458717465665176107683443892515518928146815961834105376064931068039760049636254569632020741905498739296885175426862807693868917672530911793760808814082637523587665872564485544824560815106925523696692802888835453352998542878545119956470621229647262118373599883574840376505484696266995477607406994315236604845218276156283043725441133781853446403896774883609268802509958116776161936784584889013406142393863865873759416876109911270534217338243547418190180833125639433447054871939971112918351187497652086411582221518561126281141774656664630354006632141578455985743383451287254717278044395984383374862992549736501633135629384178796205845170011411009449650898086886802128045449259512456374512676152198468228522310619937027716782308634011844123264021651102914410654178402233533855329523709287201896245666587932370342169805000790967211279984750507162089604468546352857780378221122374897158419236727850757789110504403729396372269381632568610777509703663667515622163759760963994083951099637425227096982743764482905021848726552834011922499406939112836326808794301157641324929830807219903115972660066814843782867613627475625233251922644285269167619974599893627081758840353545419763959903150875495279564279147574961659319338451286243426123054168177177511639855196520143059984804124413492300675046771007611396491445277544579304545833441102088514923629621028700718154669950458547733209021788872218143049774319542106443170037901407069764138880554465862829826553183063156199188560051785593987368265485660725765702942666204163902920812882058456455036481667775289891800050240237916150554376227638573663075159910795116534435053558128060297614135088745685533557062933388626583221912433628245703017677375975047042455490489191397720608729498676152062263714286406840344204803293326777001787867108359383596310404573968958415073553707329028601363511260907541509288049788107524397082819159514581402926769148731660067144395151200870465445158987167721140099318447591637648257245894392337798851032750947543529395759664816853475535918732657038906647030372309563408288514561851807141288886719645513277053188316137343649857370673786000380647174431895258655458096354160008437803485098157622019606267284509243185859340149323086580168262971001714270637158836115774821589612475109977046624911764311009855534563160282828847880203299274156180977685973811981273266731055404660104615498766518210682815606949424981326063645544688916186818090982493697746940712150491761183933746933739352975682181722481600375482276952178981089325143122751102139899890877603823381626961527405556443254029485316610812910230316717092959899468963889410511746535397651931628557943797636440472596737509308478868750372007957196012572204263179333590032646217725561079484514808812740332619503377108186632737534035372393850110362508822602215225829981049859033225795612698915677615061838250799302851533995906978810314854089498443896888866056600497897644404036430549262050934598756905085959676487927849533019421880742951257095347277475450934678044723396199430125366954306073273663825584480284168443931995288642054150941079254051972097378687535469097215525884973184030430748685361316021852149422178221052883483484452898060544179604414832300026570185051905544429795987170628559683830810848040031709759171594881739220389009990125548104809170337555729556774534915404722100785965002830474798853525805458751382056383598417202858115004741710129119846124482562097857939124104465440306168754520119888535653853910192815400347315226129931283584732628881020458523572836783172887777414410624628604501212720065876827341465789959477078910907764553053345342204009060701048852661383184436271874638826669122752266827569038629942862820787456569548136791147362793438962950799464074677712936912661318276996033634286203620547256750034921964033002988888983051947481145190451228150341395163977806583940724415983315134711081735156152871187600891933452814836896751547907460570380523314393743854144202307377566548260362393590730576425450646752219211316727799697917643166904365196830301757519408810641992709795953788642788375708931688004364821117861182894640380995115511785388992512166621284864609814773996386473447113191735598985092772421558739976278796636701552555006586527685842000504981676588720039307329689117177927014477639883586223333893669671219210897656864313388423922656210288099682156154008594247556768898793722733280981794884969439608637854172013318633565080373373257103017787320021598550072319597064004307319685427424598047028655385817591989769283066708085535810001595153119012262202728501116270081505964754183026516014547452654819875133091222374891752251179828266016201047698571867231071880238775859164890343028191713033348934365113543289549904360539996757225263702748513450926951336187297131174123042548937505237900924305574200839844739772164738041710823576160318985691797002885993912219253245798275743320880395837799245132408552837184668105147688537236258150885373424533984155508043584323667910415068364997925155012685917947008059353788300692794173402669878740339264598200126873966878674632850793111947000773013605278367846101393367990362614858522980883485718470482559029178419244160694811751079681380429728375912844799079597633917590910453209621078833247491145107117133807036125737773907824362073138231155796958030123473072683800347781397719421847269467309399681777401376508869987596049369688912849317655513250971560272650430462818315746987302051591525980551766160527994254553666493580997869063301989586254830289200916011552508327743608158498264272819195907267929918395333678538832392446331926124935378553899163446356178733161390847301144196321200351832094210725181383212354645383381645911586327769261646127534592162606679861728619780846572516163023291619494983179045645341132189598771931348232997232571230692553696359204057047682962905581887822396039724805834820192853429647144002514978129467813909280161098863873816103507739448964539733411548952902727317227223593946354131829113395102918566528408272913549447412980389129976293960691790820449789649794926136335923864278238317587798732874678698475490371757627335347439695875274606904154762132399304951510757811898675527319413218698023502390203743911588924664495976004583187650054808111184629849872986367267426464062840354279522723027388427903053968852181745472329041143128404695395119613938230901074337783467206158768677777783577940992530123106874714144452700047715506572009242837136792361947020145332168465236164346389246739537777071540681544385806834616717865494695668670746869375651470736212093834248475187797181363540810139966452682827285129008180251322841947770887598610936899004118388987711121386034027653153279815103361202489677520581957578248344880756430045019543010887509918205916871931210977632366340834056690278493578694638129396352378625552653408637994940987983455624906291289674570363848436608299824677699192076635126092706213085770150217872749651618352651887640932350615188391885059859788927499781402616544612049783313691101818248285830347134826952682467903451026790794630707954336517024382080861566588561622329407237867885342506239227740601808023113419448930644794614616478368397932296142337700953379378749504988808975868165604872394525905916144418121706243980653210918608774998387918445842375168100471560858887739711959859931984220300095474498335732843887746416235466830462080899722772441735891126011717207065724746983990086417913668018898667647478490885354634036186724092155406898274422928690568042296182868471964485385638755788484780853906385069642455985004463116105031831123882958026286088937716909244648722926596948556681870099268045291235790532461166043778125276515020169114751717861194771787992896851262098614932831248448495626298721966125807922877464161812476062680755233033661722442518754121237481301652365523608007560660107859490914243376467981093820691927158787174644378858628686344860367296162273646407924115562694753025945585189576196913179251677569457285447894007290086466208976635364702602253800403375276596882805531530418433373579618347602540322880314295752086932096275100429210476327754549190820802015217532589247123602556561852279023860433530419485234395198096736220040080991207849308967313274696047969070787691805736537898233140858903603830903111018639468316906029653591110431305293096199673566243261346623892904238753448950677231522114255572660934469360168411021778061132969014346880407214698542368272274978338736972063314682439286877411751384577437409471569755588372901928970790406224620346251369348649171476786642367694171381477390018282054821258036773484938037001179249804531293111020826740575362186490124094011153715498283661246793549112558666237274572682921179427881954234281720123354237409814342179908547525856243751555912000868776159620616413183274309259728838920399293127975047918206410794417535176319463141740835887916652336520856725255213258074947726082709688431999614763831993886528347303955835871231044945320835262716017941455576626691082450453541212814397013353354578067759258983575524195192786141255217019621281021691868389988104924402637642121505828953496349436901144894353679355699537471308344226571968439840140941892726515620967423199955775664833296480294322509120321711628498791398381532211858776492487132229005695798675922127583326122342062928530381163901551034259965594321757733040697902350173951847366262420159311407924678502148148147565482659599954923652667225845285026251638308492871124843372808177641179595549759226685790422720731029396474730480085178127704925824732437602575039940242988916038445391072239028450109288418211043704241804165476023828691096201206545267857955559965040478709609507933878682563040980759466074836259882661462921524762306825127982146779230289668387440184114012096744409425416126358042240743389838260032964826323105342186494208587859631369523953357719873864953252883208908623121238139465691623191848551223159181518919882833153768500538752182550148894239764154016978970114214311586820145662804656541901540090606142325111670494524787531054295989249141440993811841137828440900638350198239122015817179676093662599450209527897689908474290688894640239534486666877633973644223656359597252284598704116355238765741124238578701757428855553830996647712598010080290817322701558280675364691495604068108809128965037520154184042413333307183646919651836013659035548061236753951885406150541986461877391072730103558845456952137270741188547544005554969424246717219216043909169317466423852619021816636018341985471466259457268633715371967159048833492813979443087028582029214822102626974903343867445484530953819286707006264571124733197716625824607880358539389718104309962864971699051724673409836521135456121129455738865951103550086288015653461421141549811406181232624980735321692218071349166780977012714876141652372358857216485198942458244609326712036923096905203103769086926380813040643210418908190420814602207151670925147201736909993329268447003883840637690872757385606015094666896063187041184407145140046061840093262501679769835792635303106958636744718243576247188754858059973824672704436175119718510972325374787960146205715855689352660310535627851773431012997974516554189311677603500380701847535658454369795940128685231356706951167422678809960878560607209952571481378115052108004700368333689744506290565292526295819266221400240033466043204385191710520872775087252066455662101903104992310648492843900514057335151721780942065760251725124433983586118472354049217434869194201366492657974660081206074836796535871314095876411405253459869893515490630551556919719233138748526453651933024306577135693191757697885278411057915035586703700870163775656676029611773010994161576413207015223826416949959732503520089246530419389898037609926537489747838406486467317909790024258418759027030188308288335343188980311804329766460708442582164631826914568944317582164819598594043481807099081742534058636953013818153021650653371478290260496811682426790387586414973495935801052693294680217270595329997327123772910531227583152703999050256757102439135500095477233216524128501063590009016339676435954682508173629692836136396482350704869685951096413056980136882904492360247561540562423886780273548166146185585579955128971650278228705035956882144552170550641137304485168277984167387931172157114416273629635847420590793721573666928966087009949140956272460368035925038941593553070972754064111155692469056912069301476301891165391552535046619663456576264448403099379164770491111615726146421184412263607923755801654376931527083038512551664177226268272114218184118034424004439316762886533143687466366149084915518174192776303835253487906800672291882768592792447608146111685216585379335065984885005819629344645593122580188713111901319060521756476004883825037736884696160133761506723694140249784177087321501762611828643836316810559049801999173471295565704727240425498057358576490359854094489277513203072937695892733094515429002334984660178052496138397612400724151375985538742466161888951764671422064498741561634560332177909482345741700384645893395863146709868274476662376012359441159988231989288740873118786722456936938478271449866715768664587545363733165975596692545663225765731102081058686598516516966285707357973143416736172178718545793743744338554075081865543618654953891433536086659270623716207535349983237982201890788518469513213293835106222670628085128916705176954590025575482942995290795401778723910197825266160904727254395707975905815172293519292437830268279538111353779867669769077513614025153901811967528870852210606162453932575236081709007146704563325906356357699143208526538258523123780105340977157872118875932797358278576157289677574427561214275483290787781852258626709682457999760405056569909409436255137583135920982876321739321305049806987429637843474796202879940429873175907369601952230338220993294736795979712815011342373577486530309635602554133640327718606386057854344582939893378677249912183772241473202350176171494831270858722540495390800280262560140110545726884899919212986758618196666541533367640612670088015598976439134424736952953385149028602720352806685365173092386905800749391026655700814725598710036006004774884976385284454358953314402053000909303819262897930575141199600706372985921933286493600861413068645697259929305685473863798052655454539843476631854725539607768017903705435958001432015455965662619896463607420260943991257690180380515703560236182816707300448087306787199835809442913815676278459964155856115601786589706310807183293667511895894210842447268072908568118712163927104039666638759719034444934613468204622719926843824896073599700489404606598909885635320222089124489306065849537233481149151035499673448238493977903594608595188266052426695559603181816021155163983592960732424611309673701111033007184573138340523292449772320939001055694050126532252569682723565448686950967973588272271043411363529433385295610554288835181341714683069560941588882632784154847769117416123151603128595244129761997444529996356394015480116540224005606439933829436399268735984663397557898456752279769854299025093777028512648671708093285724150363361553511887193630178010837036737706862605701331520006058994205641872544241038401035302429465184788660850200413268377233197802061685187342026732206386241531418123712027767912194445111747398518010441641354495248024144155057799615086759815601971897233164880985291315772893138594530606100284845501707453322399928208123268165998003381258276316450966808269295842443730716021417910467763598619795327670938208842343501870813850835069634515843747505997562503219150348600939179807316647091140305989386157895005571449444932800978904156552753267227236635469678853642584452613203337683014979484709707897174068305955362011636323905512186485862328912019497288272787821835004927476307663111766327280484420746534766297076366982044851672679031015454996152372221765706016906803716987780685601820716454711928071737354423650471041046514496311714057374086653708439236221007323014306589142284639515473031684149979727818824724506211904614242086510449765359767688861628332358309267065860436884446094269950772865598743711225809771997539241789041755752124131560267707325838991463541121478587631322312499316638457385756581170579464728247853562546381693492156333358756769615377447811604880155481747879601682826883974630264836076623582872924933430110798480440124119426230238141377384086605150881214761287283290481020926625226990131098409894031944600726648508140147448215067301298569449913062545861695165443437959470626640673793897012497454547310933805515906063177641266606553225348851381133620691234178530765422892134217076590108079912151153565524048120299899912936924391185789563322749270999715297188319721396380850728450841973783453254051994753540666462092494615622454140372178096888273570359653049272522477825366971451706379997982315763853131045108176208827274931064856475026836446832612453388464019215381407486747306224007239351440324489506409601044501683769272139853899302167588890113465662402102306126603672865133536743159235085374879165885047865826266874655449058189412854474250206552276699217625772669640260901511877090210287595497445303985515422861192704879579218120933032732017090561069406213755514754013365865926530754751957839296703336344989545733173417398904347385184684572301293310511158112486660707030064235844638840035601727190428508087801106078292788027172672588743082334504082349116336752670057279585065487304999855446520137299344507515538554903819844831830833219464300179161401000472201864738263922426005552333003412069476739326465985344051544224874788043028886412433686787889554927386058918901805996089788762999657556072217279629583602195924367227275191268796390153720535844389296942675381373215526523251501500763662227254897215752719530397026571746009748249055924997493925735736234333175553946677099405087548149347748060388211534509382390733006558392339335805029948313528819080313390788640863283109906038345242273257103287036204014637384668924827683321064453489862899511521304424205493149648894800599891359735720002297605862107654392596519543876334678474439766867664882458889740733636034880261294829341825723832698280657224089510503872894273954506537819805201468016302420515266058190892840287177630476477897465799383602395157721837889569604807661449661350642857670460161032037694247880299179925973812205145913249949445160324531716607641778169717896128603628341689922683500973162030083503697106140676266218070918542855085740871975040820766570390963056205650495875643437133663594865064564026436025788287875144175592228334059989083747863873297323274944420481829660070577682652052898266507975136820123627867266037724858653127422805853845973871572699760821468943010940215414739745417838074930068438481097947451110552159425099850197130165810109933674563862796770015096838600059832617089146386272878438982138467320376580988088238907829684795287620903692376089108978747007077487157322825616488338432964708949615081813435258069793891541160497196431032761552544216318451145460760274913586495632780469987443322884645119782579805587206283423741500847353499515974803874879494249123073061541004952951910908399890574290830774254760615720771755220283597450706139743446552150893402534543185641341495184109200175869276689327874517720883996008070570517909394840056865293333763569877917166644301116548460791248470150782474838291981027925968765707785084507122673854833144150548893455241263399251648201563278615837673700524359111249310369689198008814535520979036900136905060668136596691471771654250406297974084346220846325775420227401997318516506746606197541944677067250728198140828894197855013638819007620068379644631025736223558080037300037649241100303154279021007550472696064797506615688051915395798715081460201038443402041281066196260996535518458234000353601082189606079004435705954102863042033872386230620045978334028491988091463283906936009555752296025078203782280450900122087537235868628590179507354374139600991735162984116643156776853378554395060391303409503210685961120914397100812071195371338819764716398778642044602399397123789446582639273406411891018226716087092334241930784857058815507671077938389112652986614287039997300467571521584435803414183949803347955116341988008553251815796627320307613763291619206752757002042840312691401248136475825636272113373401872358366838185793983654943490276864753275629091840695943832493688796090139094433535417633574945670909352764707287864262469863868488618568052766139956812339503230268289796204785059932498174942100678456934171175940349485177093445156239383977075917227292674666239857236605183073894868442353798175260903977386088571248921205731752663493187716339015417489802999504684379126386954442639006296833162941408139956345580677359674989891995251681484342006232315851361654853585713796746724290349205021984430673655413917339985229256046624019006661287665122663299655113900394128804865850268164306623518273828951761719420478179322323113558604263605445326735772275474129045904654612152795244306362648523428281343382796346286645254962414198810071195171420973079340955504671453722233619608668699063687754297836581178663582529509288630961579560542016704108080896649778256252811249071059385553557079180390959032334610298391508334292427978718440413086233897207654219006187703635968997756362374829310797008157761953788829754948241399826631664344628293186868149983102982917828710006649049089929337632473506218283056202990459077564241374048227700667683901271173330761453936071074722241265539723153875842862267785658709449191131597603313604438796672861966346987536269578135812344800908579232468956674933966068716091940244242821743300782357103246851600302313495234912160263711911130554311156640496334501367217353746327058107444994482134899564069057517931308716339831556599148467639593761021749633475695124004723073138590390274528789862838134311033619093801099091460926164698004925454272885062252941220358155681738373164988959783243895213823197789919253568839536277359589507461644848563735605689085012192618077515701041716729857721994732333064237269765826104879228404246468357299636751117211508485901087353281551813773018126906454729771778369820010129294968339652327553269434596544235146267298653563532246987294871998897451464642312622795926436789409865239740422679945079242340601642862642299688969902288506970308413936051047040542149964130191184067347267297685958408364327072595301246831109628957025764742108170726932731831580079490068903541938743505636294469051736335866651600120070496376148114651352738813748555820355624411542130664900080261787397251032176687319437801544907187768778814840822123161860110098601406824704989079552307451886981378699410652410316573789360103455796556627445638005092576476461755097964414205219639854198751693684334260968937030610995641790076499139753016581941430278942549832147384710906594564039232493944035000871587981952624663783350269577304080552745152385808241813400540893538328166726497142082120330509386509109484638995388060082972480068680911078335705041061359639158334553231229259825156059478605036845581489056873676411777837805324162973759273507927280457230345810223529394396451039130675322541950204555820758165963980271399792425458772529638552388557996119363389235814381951168662181103862445280981191892003778559512864663798464741430670556907973911838441097088742853725722008763161672714448812432306716590668421909999289416669449107628098114640118680232689665635220430445806596147130571333242087611358072295343841138498845786493494250056211104183338690260259038881324944295931239302017168893033944672333684244100791472905926563631430368430582773540191023484391389526582460354885277597525755021115390589656902662925897611395936711500576685100860045505842960226995532665030918429373893806258553704118830355293843003218115515126142843923341326690788586216926256719819209431860223724171813162617592251868624023830577022663213879626099724542281310724083643549046555057967981193899324004722889013280440299727211239197305341912154204330326911855272697637672285545758790946197132899214281498657014220463904889495110477785399194757072775901099961223627806431637126380630878178751264413713929779000063661060928898679398381363953572495933232590088457690648500283917001291715409571633149296123593175255840309824055696611185419652776693400148630066271666659005691647668338254881532296191947941052105761601211958685898045512329981370208974431965478457201793292261106549817747974858269497384481813063464580279220326464321856216831519329573480216142050833215424382841297311520651606212842349724631894389257396960272139325774046001234982546964952374322123878217693523231069516376245195312357892620647407262456464911272003601372120630322778220103992632627622741714304825338017693649219346458544159622757930805264902885141283965163308207493633647046546419992680736353876260067079691215511052982056889689819098128524808036550130808714700699357713627365096863799546131541571516674287341400449179175260089735879866205912555092598491779863274832969119294977203753174745427476174748170911899424171788030617367105369673887623859075628000333348753192087691128347093450628084440771060999123391824191716679723789137110243596246766914480032645938128468143570890873139164357267281379029955089729672053449605237907516819483263409770998205932739906419508794920977605910757619232203981052857595045963881883748565299679103244767094343536345432869448397639432081762903044632875324126575405379483670433582478408539226571398970877607132655523245478598125486568721879960448575017410206568262327502223040433448242897658448684839449023307331529711339150758634601296724040298787121934927350167356516262435737018102815413842656329538198616561535447327444820531276514901044495146182483622466811196807414070252664843578708681430258395018833406724293755746929982701166366377980977258762005297446779391058271530979200410752241002241571971615072959556488686503991951951822924217615396538871646702963821852233981548208777363049140959397785400832602029701034828602214392129223418095999231101380894180903368132774005623224704070622037051697977628625521405514531494805755184260991895797557786565427707531521166916605698811053708129148670834431920754200073721024222942620647227081419624591694497663185617785981537843386045495418802585672522779604131469146410111856298258318551492544933586227186026305255005134482684096935846761526099817949539604395192611782611058869884357474734223988191548915021604228773292897687983400185122146681493351389613374752748708948928024010087230593658008139793400352144689183514896441353324036324989217497593920074657296568930804276053480239780234589908365917103647919502781401773578270926840370331904069980116905465501142075567413002332885089270031311202704591330677000678812076072288304842359123787957501209763578325601955786512034311244535948665609238408498933438186257594870735428469139445743724930224845801809418530170943156423611921897764247692159508382423586945367533872884634131083540644419599081046020899320030246275270099255121877928299766414594161275881826765651102499040690652497051513478132809525846225106760413739114529327198890683831623786057294771590724338863953755074589142224723188985418244450489133292161726868791809663413764311032911671132179477525259283854331856182561312407808187099966040949628542745655614469920685615825794446030313796899693802444960463696799570962357491454263187408462299028211610154004329892833148172741408078713397958793299385746339814230739816047317348301447245160627452412858541545305267663932779011018720874283023461078002077142978445353408716800676846123151703908477116191528892935180964535197347118609872308425089716439398827207921499496839816953591737308513850364656525471448024375490694386819235561735745429762131945808611261093038702850675989793842414649963050651924879816981020209646958000717438339173168909263911892568451858962616406311804131178646977699978077701497716651881965401676346693665615533770201840998236045325255231700282659517538557785805141060075616634076361176978550241492874396266169504739715692494688081541076401988632818503287817400313896990464388323602047368560970719007891014469712075505493451664825721258592170105766105893843569032362546746647086500037776243914005185444960038415130647788258730262792437889159895003819878746699413617697511768705539784434444236109210861229156615396962159821353785584368312700431997245702085380838824824403226453589280307496598051228620645485109863864474576703015807321965399177672916572929579377261690344329482347979383903697810775712307344499780276518950072102417756440509955540084862773216655901715706638545709240643730770467622111747837280897199330096696782097015923111122237810700155234154227978431452122761982954584026516433792074425382536762381919249516418087854102586952510266559942644068619726637838788735204797239535579344377394670676456896072561327790143313220623410723192220482076512182800622956739309084349064630514934736148280050620831539683130072905821582627369061409210650346907128394349570919785136497516613287501683539991028228936037022710849964521180395944770234929920815480805446587886608419094629089742908223800299883433273304616941041751788627701896775883913172720685216014686575307665393190046864220406215997215974322345770648331191270567429866201446178715123552634930644117384322450300026868504609428031411427307713865035008156017495041890334637113438351818809996448276647254841581235070396953134551771406310969410559900747137764531579134233324978709405492703845514930164174169732393320840892491635898947014731253513390319839048082908465316858580448721294621124669459597499402506353753398547764388613503728749391077653237159899707272411359332004751434042437822061510853713994951073599767006273692160400446286405995048997717350250406058649832780355264555952680515371787461993439615773997015364306727602438418425412523877170504450634716470637864700797729497620234298112883960877611856651655528154339344930126748792263784850404586874178350910205852502062284533423848820511685543375971466356381175327218391354576078783884457825732600928481444934384357286784665476151318156588799053079501523365513789490067888147976821144799600762954857348701631980978481082643532144458475395848660918169815304251172935699960094674927818522272408385534829359815743181698488666946765679712457169696277523154034383535102251623070582577131851507991059338685706450886342183274222857933668642919129311332008831885834249813445117323903932734555854221539463793199917124827861376547829792516907242634352516821539485879971844881473921617746972701012825464866796447459570924129751325976086327165901724431860794841206279171506024988610085824097640008470653761141763932379004749456095122555077023032693693034091540053692489588206269923618129530295554281623061478635978600459040013331504298878646392083256527576112430180340726993793644830731269264319727211585286666548204107103607802015919788508796800692245288452581631447371650157828281971334992809269952556738326596455345544459779351599718318935936860521501705301909116718972326413454038792741447179533012271863529139678322908187818803348516534150377482583527235708905264007279773937838589713118848767972718247650020794829866996026350226150756551415389082266919707250115000881646725822398084368150411400502417610841266871377647736502895281153689704055597669476877853278006495648568391124816732265801565449684996052389633384383054951439402206170173927456092328075504104473979966940193385990918697030976818580024566236456610318660236377759194563739340476372638623664696603677054289405349793851489245378607758494425788669192419930520138355834388715958884784307318078929448318281446552523191324987826382176884766054615501147889747357242152857479411427866819188337125448193140236658247361196151005985407277180495188466573124853621499846147502337957893878820476993554874051406766702880449163510851356943207631947161216127765440698625405341509907176256229684819412917610140314118478186318106642822675594426107899000043900094743900874245144740209755031352818024183904430647104466062601871320201596437448161665561366894026535737046646636580908236201167018649453848928854436445724134599092228860143888292318360286255901394319257048660098480274523819088136673602749773833976811327139127574436403961142315617001687685018687796711159878677714198447861520332566200211635319369814331343850412939806272498673169968815685962194848739811605254619277438784839021364880454922541937534534549608561132689393082382874176683902795327087288372959116317444150318135718724203620269259958576055081463782075505933486738451757682310141169160154111040225667677089763572925462941786654953296109349071472195585071947462248043780258035074405809591527655425846980910727213557881185241924576741735838884788192783987102579294787602452208612952407329961851384403391508572035551121992736319353139529495190786200724101313042751118717703414573397013149637809759859440223951393576382443637919415857748133659006746895236839951707703403431380281273525487296404778752713746101662533637109124478194813336968311531255152499636298726761031861904585817223162206058060192499898393942601769724330509942674208216144197711471081185686123697371396096224951963859274531435851541656031063702681852891093207557114950270431922879571956512288071395521290987398072832689841987852013007305299604595216834235383935473632286885424926730592731544844011737636914240233286551274072715512751678439591815706964919116819259057851768639450663389838394763069439397973184024860529527257859011298564181646707907390091297858839585599937128735957121633526052642604963591678552222810924934341933505176573549608822050170171243651681450690569080594743149925332074576793581646521805141720593852078078453064363002794009537893155935088050488343988651917077091702549343727897319362288737077808371835884947544690496819671659864188886358357866704692832665470382032622220452844806146465790039728633581262187046673651110667933158481649535742642236606582808009769052852501972257434158568040851327032079004221630064549517502683874502596611772463197582603856576741201888806398753603136505406058216109472636918078447662839621797667761521241741293394320089792490969923710242758081306275150456247251305829399243661419748164984612406492970546471079286037754862373768695719208274667114152099375616276902588388025186616368472862644440701615152720402449056934578047665627562237366565108136645819502713151580903277150898829078229635515651311573301579878884572825945516723356086150997807292330755594068470282574155312527702994373638056561845243145643225300407150100955000773495891466811160004867712686983641923204955212956768580979624761137591666393374139420347453145454944705404895199355206753606103150102324411772370437494294171304759665628887168106735982634603558336418728875233708440173243955262304243143066514764747532666480845377868598833068062768788511755943440131236883965266143899839519742065260153078985308763578798293383017010575561237843777174722903942568615350656738206278214689716411564629686955125435369892182796395521178190532480497117667230095219441218952596233281743660531238047496668877599862784719309846050836130154577406267360244263235848658440793107921197001862257351993797444597885899018489846205420882425887160973623226394140713218087659854447234937428780529391646996360324248910371487031406866841854809508630334787213374157139630036671570880872766695311085405789635193967174122865315894201785709265825567769311992577533242017898797161660986203376780739110845817029612341557111682545470302469470851627950257960358344415615657668811641639087397907025989085158750973281211935162065547214385700144909185465134983382911835662195924376870173980575601726001982220308465479538108062290480155406780927827182567094896886435213964306143241339024330385101706638706579700786612979469849035437336387691110960012811517679483024299721763259624397648936398823969353229502934547679523805061601108322754025204170007323372505163975922222773214183636004689294976185437031699054412581012531474793128877523751043206854151444919038006768609772760834555843899214097533264062080383260825100712032353575846911114540558403811741139509619071031896851742053685001695056292616101142394833256452362700794938523497239505107042507748316038545561078391718737316972715379700152587163410995433261820292701867934928389861169631383570597239997756409527770830726543753795044043203432643719205146596681448533973200606918640841813876754215511581881432079041307397245477787766795031244485915133212286507067640160791776489543855581518537999541084645001616179232670134290686339294270217383782359115653043551012425745324095379111264489793715028975596543402243205182113807046602314006533380556759805234409584701207837948676616838149865954516977345559579383005731181714878903824223372373702888685505179654093708288426604422646290535075019605339354036027156870595925699356006269391053349940188067009381799747127111509094097879087971266893961897478487948707297366084976851941990272885569913013787809940219101928922984823340681331251896754889958401724016426367730768188923030035253289173546105710144316277150441105145712728544676882863609708550864700736422496222951560665588712270396646899431065583691781013808333649233371447989304299841990586451073721301610216947395876079620136438267295689170759653371288079428044917810640628763826664037805709174887287885484692594344609083121920613413387878594070885814942592413019917036863848127376216405918231160378430636002818182738595949166385161513475849789996135671983924156992707572569250497225386804507461411930555231950017867030341159140830670539250530646016995781466005296906217444741937073132201844342520249184573850995600954796713659655752001085278898324783902430173275877383216809393051495141820044908123829102513939257521438446804024685111147988716059505766178249193660209878067658496402896456779973499392901969565573747630856099485943270720876532261160743298452242728594638083820559994992514923086644359267751157893950650817756169403118524642007949618054039896664626955082739124719753929808044569419125588575879703779031870047132528308584997909454273728770510954004953031318761185020235014956681721746869348839107449973865430761965492682545271685059512159098018984318906578338541999065172764004491890874123042485747065971541807209962322688761616630398636056777994532262728724490472317184106680543141164382550192552636782243063794181929157530632171574199981318546739115111879129753216810305203094043916059644874017917337285064348949745286424584197539948944123440410311108493537990958305001942896356128085432814000068263504380601431912260319515529631130635073169466199695875256753978000903090676559305022126517223359146388735493470588879783450892278578806030699795300350933971101949043569169468184296722140207858796115809586698285954021225097708140408983213164331470974411051736420661844033560523028441016930955392045108086724529267336995607231903508993366940639522408804266934781816525218069195791907580944847525972758158726150278208969167672813569525013929372963584351338713104493491056129891519859379168115515360189671291748668663892771789067902110878377279755599340579679227705600017149895454629240736277498190668529514415762933638370914383593234528912250083080005667341244763115051729601125274846073613981605348510465296486943747946844573462107687249824594421413557084291471159782244465059944148065513507518339372845305639577572926958805886012286940206801727605086163419354868181973057173132245172943930268950853076089652706692703226768740515533362068684808139337981203461984476781226706866122279951295031341795880333491893218272594524957464319018915428758198753227901523962311084790904838555827706139446037169199513671714780242100765085474331571231885071751680537535742810720188676101367150870918308626234534947928925565278319132163181366416426091768965172110048703442898477962156524387265693886260888301507487171289000822132230992567415758157151514137124554135921297179456083010487396386716930397521457427010302372285054389779934477514177264652678097913231997648994477960804767714792617841409894569588411277199635171677954123372643100872172219394743143775058732902065012061645379865695408867660802860668012008998371083016563982367768118975510269965446650405470017296301063001845833589993958128860358929878723472038663767593711272679407533371600301732567488860927511108999367760307298185376940204029948424495444277550946924630838317045582341391027343434628342812760379835482355319979391451043301408824906773778500202026331696609756950854794466655681020350350347992719352951112585197832445421662307912616580654793609125351589338328320877945987983917503421866117291348698552165140915517806937232772451970145429514118991184409404708272740708043861331783665826542262044384914863018618742772291970778798811849396786642421982014027499250557615549779895373200679053810768605186428129234814813142752854923237840642205478752494861675238817366845849976545409371064172098678252608082686940794579657013682487264876066389048043194403869336060633106656632593271805500338143453485608661037092273944573287883295797580787865997684039526592779578337980605221964237603252576132167569964651701953570259751554477709970037250108538176306115232444267548163086925147972537524951215962946260775733696044412839176769942653484962264404773082114713584285918855003432729801543154865802982541233089890051897063803416801761805515478150685438401611859947792491214734334969072967816564981607077322996331209733939444261679198215608794652014755284345657265741599897880509616501343904856236344100133225132755346628470902846337743590746397075754630311106606562340921229021205290681541749160324874787986466116885049135188160273602679986634313211846059268678641156929222922159404333728289517472072748763338736724958545446708911386076923086339984883477883244977094977467298602285161318594064890796741750817838073094035814510812688314497612808747534293064203155581182090253466270045388326994593555519246377366254542755686141523708138737179776030329548160016469791687985689446404429661618409611852114078567217362734099074452405032077186812356365673542355824374693281750589351946446303787189249031526234830160689577521830436550949144536071705088937530108346463615580220588266239915335926196797836317725841957890746579916341662285783118861753840358158833531277701988537101956214941056080039019654767602564965106459078336766746993439012505480012752682136232056472075355712135776526208970997724272029537701693685980864706224770992709702051340021155214950291156446449767946116452167633027588489289955362541879238657045575014868191337855372696638769204876502151822505542099378080733586735535888615850485566265067656562618314454823491230669880995501711116082468184166342217205104308855333978970284019549899546693913557573431176947707880137460487881418976282681336885426960852085856163984294887532631810080786322183389874652766342689109943596009959398696009936780107353778744212699379732333584581440855969886971894030832904139224033660281180950468047164265154626737816074315503465388036477961473837817500892372247611937291013903157355456673625132851885547479787780236101042688194399390607059882232153978332276254402996591075726108881847510047567369876820315435418450345128847618432285255526608138454489299365955583430541421043674849982594854361600267083835861056194697346036914193355883342907249215459075239909371595858937198703610130008849880909080390981552383408926226189386680539884360243134925914050287363486651570201005207063497770367249188030249010803211372446995856664231519882275311349469372473629902378251074896036253889328681584325100810918904647786620529306802983779234032175641532197118285323042459307072236080340267736835721920867068953965621572378564797560214356122031070205259629079514894342672158141753079019903872803247067762349019706490104053599779581940600850984300439227532968943781024741983687156700833254706898993119964209239113792960531082234684796523743397006530046051677416668054654161292752825198193092911657209799899282507098823829400362170335719523398762183765613586689438299715821549473064638083811663928354330067474442330871260724733077225679215300829520271908624031484888079955349303054883499026148916382745565200041634048293235242608517340734712413507297418587332687389130233702400823407152428441261069348971441753555377284296520188164344819065160499709639849280139495758247111018806048189348255779528170074673519525848186743862687791307946960993012097230024351789912690397261887810527105136042329475835792066484455267803732438673090097040671818336354910645073720618357015295318142838995882411353094162377049115106712308593610008474015187503141431514435640831978989978102756861862905384619395793495702127888863235388545454101613043273819025370485088391801660941810058247658801109088002390117027826314057992238160996539604434652189205985540231466429767039729551647117427945351704161361391695468079636440921837254509927130588263350354909903462194514934823463007470930216979931837033174201115794063654328093154948722321865124985811995847499326342547922884675280049015244007350954080918583010439409551747204773268630031357843846146659704704636550622013753347858834355303609321982021797262200334759106960057099321733140692770831518689067753053398888254359971930643943226714333918130571616734257640366747180310911809113417558565313021819272673137456748579046018923726141511783530564008122493805215710569048691228885759637371161311100487107489603071803631740148234988640619087454864759702197137395322884773637938232734885202468035250400013389384582131644763046774581108172080665265141484716025858703818656145927028333044467406025381221680287877598018890375115961397463379223054475420822304368792805296423611074542789392387148913643656760741746656070314073028061188130716162787263457046443649156058994690401980742696208745519026208578915429883543262266553584926359618906889830341530973513491440984803789921392305322552957209011482153161673159860888180163470523963847780581178090107351964732341950987198575112209387655218107493730085847306880404262934829196908718103419616556260596215374225730952279559802441753616805293333008531187922329048063647372297888249948123485848905078948322497111471671551871373836255562864549480305819580131668936676989633250298041922903326735343812000043313732434700677237198691243628019558354147093665856144065612739031926615191670163492375059995597402015392654547223656969337501634119422152404769817489325907735746242579393907682055746995955108287406445173963005300967706787671224281330254528341240620439913019404702409458566902957474204306116557798839666491015786579742744924147617487944626185511242246080957291737729044436643005501351579960004828570595557449815272772221326932276224739357578448668095512014677045202946451685559812242128012121207831093791148751416343056120979587051938919353175744621773866071802721465110815669173014577438360856535201302628933067107671419900075566178371279542324900047972472984740989356955483426361017519797974348141362676193790187953401314863091759265954742781127665211796645100212471303620838713860174708537091679917772059599746210052726395538629431484943317615117968128792626514732541898420406599448962169621645965453643311438192546707480519112671761383938641461926004988323838980492026448480681401366736491652097259534550604520296302448115873315559694009140021542165688803970393160244841553622362056384033427952303839289237750059494902542492594504981157354397188778587588051444325160449068107161827461542645335332333950059996748784496115313164520806084582942697186733131727079911123212603447605212102201059326784429991012976037093286631336886247965172791932649369320886979662039018868261744263176552861270946285986874927787898377115056099066351090626915896564886541270614301989839212756512278194859342396119659519166585619600570327552643745292081951637391418899754299622041299207732478518744653734492171804977065115764231631141893348753002892803097240637413322349453051432747736527256970074371081395847543653164704793831177493208684404516615129821193723898954906314258010387497586126364819218845951016389031175309898679835356123906538015073383075165106366005446556967142409528641387090564384189704597052962051962536194548292110069045361967460803432515236049840862177076423932462594388024875410555666209547997662567947960110461279752679171936159906353534714531588873742192057069406479592633077563550897234506163482678199824051621273380340790255690887596317627031821854359631466236629722855910152931397170444782356567169980141451920369819648398801267979310078557299813031539300719058996186793493861627428289874558721006472356513511035283263314934114214204196920350789687554535782803707224821246379601092800422829315495898501642925582811451056031920376932173968509762234761914625839856357280948692650438209732666171791436342686739444518106108201656606785986773559335209799401432074286174382661578992652932752325406949224447259013073470861780917240009036443190545402659344621904291116952685392784160321832126716091320548989219903568587962822557677533410926529514085316058895553516880494340280774775872314642243052154197980759034639425744769331026969709214920152986895571109818033116693359252608008235178609895578187982573892684000356483928182415842751072310511590298219827030105198579836766294360902038089603026794172854894502412674994170901205894081432432602095136491918610887078385633650377229864002938901547486972771193569420695896711560192270917166837096308676241099955199864781836170226705291316942571036379464507089315470945718396927330013994605430322849071844968601273376186517692752926816195757856645004801809045906837674762371989735970279642264916321189904980655672540691423136389769396116784612274196391244802634306257251946669967569228616528608602437794580169583429759393708110875271673058437881257209838075926926262255042365631033996465829739045149359647265317104377942896294829211761525835071599123070841305088165382402627910478556324095443205093061302394599710678714895978019297357622072494457067365051341515054552268938449210258000467461170807011955874001347943073271091420987307719647809553409910075953638592955729551740347720747165516314821557968398085698653732587979432522663094961238630750109882399881445956038262499252386927184643540054234959601444513561290455012915022976977361969928195521373095442952696280562399089571942251582848600204818439710938380896332742684030030831778642097534396875919287048723511225614278258983761855577929527806407415673092102737662714660938926028163400778822874210755835225871789446008572214780275840393033093758016174774976232121100282872595053405506314928316171879367611677178975589539180983603770131258868231012245163424945464079408037196457030878646682378096113734598330101324804465759405626884668995102008640423475037165768130020893227729593207924695129270170984554102763721087446368340747698184450979375789676148762036768124929392817007828177490086791791179617454719374289248612192251908293028027567286268296795015771482161523397423680631648030467450716182835259107298969733075042755716606288389410009194280159514735434867047617076670795214115075577291139884826078362466259011654267422359930589049960569140776523248076544065645145995981315191907655315103360968436830797621928542957399277738742035819536661716066705873707617504586542530472117721289502497534771876523179437408161930791696551011629764074321230925020013138718141285460213762856089984390306132181809577863321346029990190527741892794966022257104342490437796458903570951181543986020788273035512012571572195682558784722174244567050044228106270685179369505406216659312464762194165474406252793553819445089047591613274456877752391337206815632244237141275971558592142881822230534057359896427287841404039157200876989908718644069657524804370549875292219588723936864298673911609812282940351765554356693728834809795103570022969656849254368837184048292872909923124288380063829173895943176164269332497646249529328585378653890322355959446064940992939223408604157547590374925388478926131602845340515203596403723263656401637069495412182862084327360682799683853323768088839457379470442527557910924140835051339730620380355174163938207374736983118034282185855665237055246011233790954575608689047789216627156065686697744499786631076462296118647416741503316447042071290261396622603470577996502096738308502513525071950153742967350889246421584307803858007623232963258259029253492232788870331232238317625962309236301271802578304617590643905702701084763361969726286816270396311501163597983253540759299057028325496649874753725491400407882072606297434697054687371400930313908591639310431017814850595217733619081679158911400821571899867508081317364788438723179464662648222040866010267105433969103093966292348055023728688353716988362702846392557087642168143247701408354197766859152863570939054627927929399528043798801351475551930145289713668800009513035170615414357161603492696581952685782345097589898041676994215388046717919897652598296057890094620252229122165206852069571882861307456427125741107678101391774420704705207637637229622522696140524817323498669199122557636675027389554690012333549487729420530864649424785003229197402593058183797205801365582734304432437433619739733788616968300893420569377215832831689848239605952556166785802126561661364309359470224385396346318543630618877371039232030472546859141123163405194992905103602578767850223888332732375916965153537312223426116995717043467328198617945664777942142655017192732516675251131312747942071632398958295281329535998565244769587869605830613819704538324030906785278202527736605016578438243303925578461275667333836466018902966525136255837230992197925040157145499072896201969571188598669009815751864186524366300305072156956700706985533497342552162707406839733661244182490963108888154067483049176824888378596321613866585775493047583152779327774306597829002171125203252064376805191943363187224052298039469934777377384036675538460406784133509509851424682519688790396738614003205954591853436778550729067281313656451610184544784084123690733626950353152060130755105503482934848381635325600261139814550675040457551267283947913903476670067201681126411851699829874562212183382503072835663766504297695331713827403725849460423304682312543399933834725153907317510096624853818962592430974255483606348960827852880302982840012208261693866047668478565509554917668432372696249778247986538001959988678951378733741770245384142705571297991157177759205973968516090169476696851472238865706901872907491683521445907316813341319403028070802345112603411198414049932137851647419801143350692118512908649837809194576786691682880707916054460578191100492736843028204646449269130595202802682048628975559003368243583923673669208037161150382147537495378403693021137024892593614421199307352978165413128753558963665289801863718446780834617380379701536467969151888902411763485441508443134502414556996903881888906007454710131004282293700216210072071875123403543592477218256175049642636358494138426661299441605024665321726742379586145307303036143178821930656708223150454884492224305770145235141651168731468737992321491533699845008042693965697099708282338763623408740473227913676286724616717615632935247452396616165710731322108378440832487678616907951911847291743357212639073402439842251211938555269301851886857466469826664169380077559591253019565669035003066803719194840931056020372196811192502446232654678983673849768924284856921617813555241087901955713971752332156803509993263878634867211468701633234118210536825394815067832308567859939284483621526141852089323606856490087414668132937012935156789182440463478458421984295807660081943786773113438594340937760825301500595286237481588039496461276801872260359010669335377833095485592934727126957932935186663253637194162977787741492042393947924153306885401179772140108524857674267403042243481257352445817954487563284734411888350690014930945271301985361881725195738208479288341603647086962286514696430817484719988069973663075598967889380359823760577511621525377832128534209593576948437332190401722324666750492899107846844695751910796920294698117791223272289457791166405078218556416573191863852010475555277360946091694431630390205514384887652403635780547678628068170808301634513964478745596613964993360231201145429765992510052882992004128803688299786185699857435989730208001077980917841538264185222480272331385139770414508492200270590523586036019427994214783655086714924308606431644567534198562724684306157973653555182776795364760694942110755554308775579857993953663673068821822270671891040707785696953863711009425852819851772027322260078740135911394167776175974636982456959817006445770442436712060405645525528346716461214201415502389462271669158478578710257564356784451810015250472008073235522327654129925438772111328100316891402581966897086604890043827315777846336085225337385018537038765230359320132883863678181234761435552269151641183453562735018322385996376887820778671945965673308157822198624993610195055327915511718286279555798011370312294039552245700201891469215905113458762734644854975480410741414014628170720945075504994381100889394062722523988315011260757663386484972740064055478519091870003994915727591364621262706982862319993319443134003753088995934139927937551450779359780094210713898842336046175943066899422944671307521081372637151571880014537931573176315495512353517708160569962900805433810218251294573439727438912809347776104093690115343839284935014551867310462784722411685297190951220018898090659458248095958789208880833249109595928520279020057872062646452744955642884513585744793997371302906165449912571053830793493727179051269715851409663823411238880174195923612247971546773745636366301137283598475489849523277303460179954469492826245237891999381733118610266992593787133442468337625520139409615329018596427429363296115596267480347243227416097781519002135579935675442007592986912305350947657397879505626557244591202648355653078065954937336390889027663533924301238192359762843077900512092299661780140728189509103742990136322084603761277152228547524007060259281830406462070029745677962809938790229242599549692257369270995126775560086641767722309290955565423660061345459053149925138286756654997989922789292823592554874654442269539344290131505297342906966408781320891267348493308135283752468629381873953178867408698885301909686361238812848543814252213263767932404197394497044706688782259890533033068387244991509562596592372034587935219098452781597655973136226488180024078166847375920329602603090147999656154313278014735661961319891846417839505829388250463641318082980807101564955013132024611766363498882878213623690970713875418848152971517098151630218330560212752641970890699499224757351469608553714256611295905739441419117920564843724606711896727984431028645636602729716872751698550935906052543069526004241173405894506206580891921489756818945085197875125226444735483712467658808568916339271760941504251337483258816647509399677601649775203749722789982164328636232076108288767949963372300814344553455748089981297794015688456759556303565080161573495583104348802167977468966797077760919793788272934609289400827667777115545286538346479274724007478326443005601041724490846934968165833479518165099244077129176777039035870934934194591448803154598554303965426103252614182327389611229569692200535845461307612632761534821779846511061606266171471490538528273075682195637566005134277682580024562599122098779266300818420765683208741150215752565879996281995985059702862726969043700312488516266079864795622781801496768137072712254194603374434618533134782374098545877665278074413867567535944560935014075302468987630475229869086896481100709489293983447643961832786374178162483570578174201191659472351452088564886707598933934865824885711032134583320701190955222249205311585145150337807841143155947115570084335539486104146157400788431829452693609468846455464616646830094588965572777371110600121307096524596714505593929914172313277013093977871609199436415612325586850353665188918704806419894748870505450764122995902383813981006439725658201773384186346623653522477831948739467257844711585067049671947388501378014407573174217102051500638220345076645375335869265992518903171510732085802191007537970603992265273289290381405197682331149474044139854352428157375642062555277302356366507909591252260102661277390948936927851991868809770687662906966914889794637986742427906195024227760452188868767343899173371651918037659082470740976035389460298782497250792102685927182055798290506546220699269358564745885922714920708704499002681993773911365786609203615781207156193793319136481779726685517935029595353153023370590882407564446625113502771390624179962239307482235242558242111652796877936104220859537936972246598110743656533337107796073436167287950295702018051517244818693670940551895730721765801761579056912626769323768289586211763916648972727520088175281403474689149780757722803766627737252668637039303029550036731625959815378413037114021060001306228333598355333623719580606431415063844659582733351280332805486494069560877364361811691264094414801338792394467234765722411199768627121453390926951651166699311242393268352671981055757854454629935115036418659991797991505854417543283092106895842710885905254073047299724442947221741045009818543914674365634329911330239669877889574980789418891683371225201107600605002542189606377447103566454176280792304649552973929417250451074162033001573842754905056956141877270116016684362806822452628835635198739721173336141635605361752677094315634089291411668387519267975743944103604546774739903413959431141880281259596518665800620336083276998796119642211324500977962643894478231302729121008129640228370446444419821363292034097683739880388364342481578456863974107597991090936251886121763172298173889518340948857834463563052599804218112384725381465043528083020628803975980527908612115065419744263763818364421439789996473581990090620937312504988661988961837403817534906121498269565754373023912934362476192841644461335802100148452715405624126223341599183458201741597226189364321389666128932067192693606013992795895262424015999284778699004898811633356828721037496075484407920170581895243974026845779463884938068159576377988786312794720001700559952933808724930682349814397519549031154266492638705862578112102925209513835992125000679777658654431135701742463069409975612719880702978276486184072877775464596164272586483138558152064407878287634137861626189016371035211434336255807355053713299500926651136603188362552798690139070606401911250025941684316243095182972081973100022688230402620649768575328736369314110206732923417184594508973189812219610009637947827011588545593197642669881615655162670574396203183804854238184801621633425330421390383642092953774133820790308192651244482854197702841623944517174434597368736906060305173424990256885965179957110930309529708825201160529794408853848955237043776639115442916986395744415828425793036157930818010900796485427605128179592632437099466594672141771762025122017934919910848519699243489253113462442733476845866468166031734183720565948825720207601637957084529026870559098791657298995160457815253578095363697620106868459208135799016790638497837109528667661761463761364830981444249759176746741074658156299366410343856960578504303377666408544421981005879360067657890955671389852540053313731994617681811928564881868188498494402892270784184422552886999688724739521508532695840350992845896311299940639949688808054508698524213721938762563502463007724338833142558448892229793459042506692382837896374218898123589449257427582584913545536800188001159815443911943841994068835036686484561411976543581381387890977090873179075739677609316486815602337309819785624772396220372210312793895255941127770789048086686875834885248753349957727920891654501281732571258996519494302537829994779000166704032848276252089449660025064240637777140345191964211176155226066412358290957073917577773444682435738100488455694849581440571676780303347355929101968475104985169304039230874395182278042282321539868309845837708461679605269081115309970591788484756389604762168177074479390984698665669231030748044912784731228627969818485188713191832544288896371828686679260175882237921734971728319092962105316204584616394285631513366420012397838275723715204151153273026225241968973488818241063145415706414490976272492771697480523609808257709638209863553678779127982867183751538158268898526577124468314429712369351334236597989336602851410556713757680886707362884215317729024749768245902396087376427024706562902934574967128477015283787403337697703212750871377029669087883901936667935294465056455868537125168969221420061192453268671744509506543541925134236228035561294497745667778306247838325661834376933127076418549710274731449369141614678105309222113015891121072800004983672820259722849901942388006817450787639628951012646627210896922459649636868883327401715350444034102757191891670931755278767634140318589586802822257386748788671803205597766567646749042770677491100446890092857157814461247750717239371656332116307562431464955652227254426642433278173925912525185854939284839437633097766305447164681301689320699999269367607767042980520091422147737639955321751508812923669033574655374267999802739081593566507395977402522554477549292880285719750584986522246748116460748737468992448107891538538967182937512803124640056692067952556761348762789891809127674634606075252081566249824495128833811264744724444391202416875005001989535082076673320436598813947955046847562799958388304815753192804268761988960704490280491171595843867885933932448581321176166747156140611324275668237574084413912274239648005468173409376145577752111493421030467475710863290469231908008419173300905183750153591973671472056537770215173322289166922350421201606076432614868136227036728205434145091770783798290205427698571032988787126044153579206773452113597359846876133544565036627813704785142667039957120838739430623401944689540706011092821560126329929483790096994515255657666209632223912516086401728253539618219785150254672339313302439828577464887267767113177330108403860305860541168403286470231801714526050438354935104210249876608986635523812939286358981053565170016701683190847107873065063299252260509864423244430391877093148137482144769492873707548897171835434693466973245574513857252929531108824904868153776386381450688520761903631753652345806422636013423960232380926143883160080057509975164611717797590028336015540767528369906979743096237266972536912034532245024499198927219142037283567025373141620452078400296004413729582749234947772719368989307843391316894138973897476060725970033493449605085294649895676570161497446818225585435332264962255555936839193033838889776146910097885356374822587443643085584306466035892104116861627360554951476548254765949180478585773581140463826895664888363749021823651494108710000854284156738830596807448763621475819235114120536441223362572208109122594197867291745587252709692679604824198923828170590244728672234598778199041286703275850024497305646505533530568047239276913452533893473717538626342050796560916404666707845482526753170791756052206944825515791879306301097208558130777472882091253259677992534290791955716980401874066079712528758307410686743582574684437207774505543812393237469115344273201497108505797530712833213153080196481192891707738775231817937127558778730781394854019299801240610879438922967407337642102148355815747808214005420267323524182797907869606687707439418270956653081329270360571848589346166052321567404187009150271128693699299330560388960623537907885108668619639200909091721974223840391558229201912680080616251660054388359672772382199395921225326847648364823520318926165286520069468566421690142095427535787033397444246554494506726289083360842714332540179604662945327989187171301657117793278256033504432076844587414233856262756048863028362462106069440454567176275656466973328268915007531017160906048739686785025842704249313155577199989160851983352068476520305483188834618944765392436449781322349441394916501565861180389435024949562539236670916737006565004957023400056084305979470699049524648252325373481405572001771131017462096551420267639458431928132608314678691720557754171743962602367628878704781955015103644830515274641988285378793809665209716861500753899779063794450276778329968900633316714028051345681090514192120449783930918552836005105159534291996789296079349145278495663089952393390215513167665698684306167250301027515167243687466840014569907723518914378590693117300730332238072501519285496278079412222180021150410729672912345713914900573122390075688530376565732700880057218573382930677464592769476341971335500026174979494262756707034354057304381892355255911127382413387348862669370028161982527659780211969804234711165401549336604035860546267111700089006381444335435369210386969213844852984376834029384638515959692131053021439432744421433216177132367678209395956608411853839836192714349984836246555287721427787072351806165464518894920377462821134072856189960850599177902322457541143856375955163243805501911849452209374458051671239668620200232731429937350500208478917667098193457592999708391290321800885566338808221861082802497723349066006348077768968758627627246256202578214588002739786053093773273568233973125993942159419694419160058257277198748404037839534907685498597923667933623908989174487693346294293710879427427303637797460432235331357130422279341845198831675961734093446526843037979387055511741551646845332076427581782501603740018191106646759754320309444542670626897758623664984651194284096518240003518080008312824385056203752293044651028935909997622822320728152854162272314572647181766392725952689728060417734032682949970150475379882620050934868815504041212530060339507868242095288296590569164855365860546866390509487834298708903049783099213334294899981566050862837093865670374092314945795172769521177013462291103820773189706797563568618859621402099854530986651550256169784352400663926322189560035968016434759631541121920088494164240909904440651190685621366172187039250834228702063901744262402531957903802540999653771546621922173420186869517766621107690195454509012069666801675933546458481821096524698535450126972220633483425105771498820047482633043519745771401540388090097993134352493262109692897590117949037097150769865290996350632561186758908352760403971751821142357535888238786708503143902546594973265534442574206313328227338344664307616693353134289317690139662976527521129580618924847363673524047250022994992787219101024534210298797603001478702975564592830422580452510978490031521007101805592375180586102426090521373793026363530777183841306348343582435046754451583823723512541688855529091943845672494397882757484080619521611696333543359740371133387904900993204909933068129886769694632784036846949060386767683610380846342761915901364427119373324761462869340622402251718220291091173287267029971270231195519880736542261198801278334778160491603160713671898736567097065969946522848702311863656547341358352320148020449772338154073871435714996667770761726208840295244854908107698181512862459707774777958363331812273177667711272443833018685703490781812434801367788503762173102616104033852520348032597893083912730991140686399404828954191214769296112835526965707354466988508534757271767484073558833329448201101719858036062648975522150687259146849811312270832847181148264814916878421585344297960417788065505249290182174156551278663444583298955667375051521112519820380130362329992437851327173976535890417076647007151005690924946437284077967854300070800744212670236044772072107982373573052486165420566125109308885569946737234332877986727909561273471125498917970359003247836778282911485682243017692569544013676602556800578847240364925110642568783882287456167910522775329811655773127866217497918499410184961630898331934777367509263266562381128813110143995293098418610148283339050675581967944456898399778226932608920081067129859823857157897111060098640158962683808970297383151754851505531149038641381309633932551350138756566321849455025900814086423496463891602204012388320394718442454628933400181664834650815824253536751710593421841224709611226230975494894690999105037936461526966471797597375871574910144752986032814582949293715533043422815362407498523775798131198813403445536696940105710003497376059911653382923269897924273935084652613771253970780157007246548702074732093329390607295751933647977629032527448886209208198489847879058405241193551607422492434112420683211123120461050505742821551068896687880701495719792283589783330865833457130687016957857670552944946867290630401892337930648023918174624486936916596230756506571507195808129283414105558809817860785607418263292709515761018806561087119297420546344834062099057813692689404645419801488722958102040959356807687431485102251144953181455603279655399679260919408995670144871756472797468504116843152730548702686938426153762448590759350490837307185958681566368494052621933333402089105069541643653368344239603067369325243801242325732266722782616437853675100540369701921501224376693518753006255436627150892688674186602004714570578656119266023470627673960400652127861928450337734452290708805107559338298301756708278923856289732026113482565589319995904347985026542666668711782336018071684831294119379716979484045688218450898305641580947443102547992096651797383835904973701409628713985855534815280056419310272832770201051319578535043855245342059094903032300561241271654604271280554468087238381015406095188055529526582229977416919807800604324580270048494134304567659733461513919472506382155697210591360788002790231319980500156078231022788553132855914417247778622640736414573606955706735871977861691200970640754167411473206843483865143069947694425201479730298684925303455417675116945406878511189533762275454688566306385349739994930223184435002688644842422233541907983057563579855720191086925285598194859524432597957305655032116565273146285079376578655104957472299646997016235505543405495453112013509452901166489661448463272636736813857244005936777551121120761074643017074763274351147296267530789762383687314038447193603111007043479376866013844073424379278937053560596938212135430322777291553357340275497590298939793346827936660491530666493077204460176378626755034946418508704442580490052248852387370927348123272753594839362658967624364704139939176604096506116030669357133532720751005425462906644362325268321964837732752098570608073857239570389227714303353420949486721493168766357422844431236421909425108717139180420927646089533823204892731481796930619863264128630561831632162646416367266981212011843496232868185794897988677144196459940393313727790777144464731078920819246098024297950543480323067026067310180493053306203881528667425455016192156443287016634675790683633552278107483011160926252096285437574644428241528304262916117930139357879253430799650753220915955353728062664836339660589526680308522271381712722314138980473027138834992121141896071759813875638272625057997414570006379323716469870238879825853022860147167560850696484866683163337782383452801404416275379886522819284040474446908831597723229462853260537944418105952573708037510658468824877861535520190588023813976720692627025766653528317966260913596259272923527884969657822027578053224351201480349106670402716659777975557092251426463687539130420755460094262663120788115409650014829799353252718354803992597685452210698729287467453186445563719592950054683243205854110339673018742643828846757914375836313767227243582516264732711815923241191945498913112115569052436823384899967049652253020115564240029497150118929214905312581421500119844899804202694725519035403827184117753634517188533098763210125725233665005166978022540111367159605302094815385678763033369160637816326742911992284592059037799432428054208844281314917876020295981036560350956515189472080849083805126644909425641487960453307947747122383396725256015401885688512137019457563547089187400360842860765697425285826085246277761153577948713064891407130174092145117083628940540908990289409045111185976963074846934522895019640240364417036466488652133485356715758645571870210514510970321823603651580783260660893470799809489334894995430838902135962904632404002397375746761514700857213927101382240784592940417195052362003973607664148299207945341154570669818227448894284843647030791769351726965789334824298398068575251972504354746019220911443023276127273309954041335717429200775029494141965730958486995819388957981322335152737139509723714089991376817229651978186284901431910467219926388238575629894167832583718796367516597246664943576757644518432080920589778816735955972536918445871963992678016373883031792071452681972981437263416025535996981545468315865618089686450044913672424100429074789175253204970144879259154837076802423154986948782326235365379758875214369050784913309285368046635610824459497951495952676656046265039751572139419954481408675266327856342794437663679882244657123166112258074543798543830349088372690226986515050308247008557384578517892560671532005994408860572493472398064342983896405246324619053488968573297406098285972480332054427058440422293040035475849155369859215492718989706114743530736234631916615625672118950616332427558742126212415019615248547642946630890098403332839374200818565250322732146474612707703242569612677243113150674969172436556774305772870357322053377076127451842692341151537236337053790625447191920990570932869596917115342071934746883477090968662952906036576697528211771535955399229412623557812729362698685474933016898504993128004606741215922787295774043574345890196772995398049619135498641038131987852722796290396381728779374672642556864820394772117145356062313644074293888223591938731728513786067550400234692057847583857271964018473530066300526132643270101935011956950554848862074021313199481883256001556291050694587014149822141098158970478601449261743172523859272243712779213431516656009044193867551583992376977286348128738613684025253812710934699663127568074861914551275760525815815580082765258454679654698945486001530476007568626257554764221896054391654846437504273411273453312737345272567435660826232640182072058162306541335895718300345025607543801762169389954627984319798480986159121046618489443942204716026543480564035019519904431129653253550682969657114715631632405408141218788116591450582998548187476953667937486590653823651841700119155203436598066667028561851782886425911405251608052348925502823578015428473491014129234079319842729720028330468501957283562117469539879128273253183362707805084727262289536408959347068328031941974548834636611810207327319757155787930247069152482833840469354882916650208561287888242975678370709597989873733383520225246791449519276667268918598391187539172640845394935191806551555702886332994735810216050894398888433668194169199208435694167372287940953086990193956377933362800908412470016723963191605713561253503009242852905464520990370336045193341812548713219638276029600437488252994886574286050602929534885941876844079016381232205604764610980876998163136119550255563637414048721261032735983895410644169025900797888546957717144549502519145999443593742755512633335285030056714822645819698782868785957421100326817405197242524113913760446867694311485224187591224919546908395753579515162319417435018963474120470826801927631927053174521912519826535516392007786666886487904872680706724850699733498355924114955107557721970508682768864623579258095083896370115022105399390117387433213691696789172490191173493647633372347228085132426560971829590120104356830444939784947385919998634451995867711726855811332374093910678557872108745636857499455621013633082542593231804953298223886429041905221387528230169011876560860062471450536757961077079617350149355746633908045057598255556027097454907324973434386581686623228154895394641943146846123110352293082555856395784070003140357709556971840048003879178228767825143729610232587257380923775590430009157302079390570982234536564829835873209708072364460238869056865063821473636982185958697423718737521773889808995280387678860894478562713545549525883055193799084783380576133632267261325771652952631916987761267999641446648970762891824312288392412907157765869546279198753017708355116535721015599471350179712677957707523667597913039022392004088132878007541504846764414523067878041716021742677131867165257933527341379903543391564314805026533211825771706565274700612986606637810449840784669483037490299988276585318748015567662804290977915110296492620450995826447466769513987816902779636963912019672766708244433637841546369710426174378870545299885844513593443711171395688993626706843600640909074973683178362332803926649211707169162963497101625047438397911266646873098724860576209308513178758130869819970983576740568816308403370270517865512446178192715539907251920159274072301945872229299466816330065873126483197652419010884367058172720199357500913208059407502749434361742260611948055189433207166436682970805973219029638720772426052414649034466804767660614955987998440227686508089512268222593425590389086974676491777454748989932833094193941289612593885703223164870221334334083804366825419433958590556583833712316694650243018746074407799565874736122798284530510853739861195456736629253789256053381282704278415827321095362946208602343933393098024628912852261399376708633526674804138690795361667082420656383910429948896581542209830953354497079531781206092324154722126093453122654918809709087773507172737494588920782491941399854727072188781110510777658183120445385189039076480514408604159848193560524150884374563786820350666578526975713642522162334638913560335176994798780111502388896754269372393053554669815382590504864053843489613034245400051759947028448549899964636127441795827146626842192340466457508653513635723582450474752630261322278308632917928027667180129086064291346303281184486548780187648182899446522005330362503019393922007575240734241260361663382270307269978713572108350253266653814376125317335689328220271858758565561820059978784828759806689570564628125057406368574394764739748771313270432438570495906319469419202308784979593617504922770340607715668183098245291032129081292939602772727556150878103072945041415251202901803365276434998267255764101867511184844620234961746083815261223235991679556946719403102931792512287651583824319449044902717796802786798986148377648709923768654561950123475183366995889253806526058438046196486277206594955861274726080335063759655783043391105434537224798756927468478194096209791194377703086322778637447589343374312229968315154554519967087063817752192310659623385937072618152102497336909109482657198276720108944307103579085960518981486855205837301829913919134585937800620368605561017339189484902194557945281006296622284978513259281238487200048510699812270431134880717194199761140538952176979202166652837980812593533963006094370013810508398977575298550604824959779944125190604733536401819068315542828658667857586730380321414920323358798248633494784338971490256247802630445338565389131921030918996007555224076637678453758322946721362478282442208946861655837844141403903963957523860539390057825273540607731565516428035570208077091303366928089546598408955796244474540010143830275350774424298478242214312792040728449077031050270900818357783874635576019923892331766115089056885006672784273587547091139585697198267354276429962943637489380265863526242533843419029414468745608286609004935874401802776220336466995864711182400832034996508306970055672105950503416491502972443520481178026845305940414828623209621746647354900572885369841345694777161776054276762780813432807751286644632135024466087817570301466932608014811593151532057782814511380187793774843013760482377663545220836065118551510998836182003861982955461611557899450822364745167658992112902929608380827799516792868543184525889625901013909955347006314341325274044220019055905147912143688966415043121066819330497851089792370561617574526041592171873609900526154036135843223171942588316108433375953972327520408049674364688245113821915702143472599058837683219711029961349828589854828051878079385520479395073363481523679759808426823402741476965129709715393017901205437629035650339699324305755733522516685967553605873041999023636651493439967014133168849749972498927546411386206305731844657158752471398728310870323508978242434651399804726699784669747887202993650362095975114542219167042201707229704970151999767266242535060363707841570194498663654721289186852069636361607801490986918459296479261247338161265035760310038206440842917835407917982226525032832134998538921347279930382698414871489485020943941558360846335086415492240028220108321300645545129633394149263878104149497091403380957541523195619439142622360977819306917894521253177605598796638068998182947207273618836918617630185789434936656811178309128196333349139063460665049529358867982235800290926819432170848660580354000189632318285788788843500582000293643876229049171809768051343979331808564622965224879862259155603550019919286436522361874333713467455354026438450652052884436543369526196724232816030677341591524302400466811217693524194841671800159461521025291191301993659232729351421086299908019258281471040931046560850516329215594457435067566683697285706107532830351840567311124769167132552617117149483298726445517101774527876436140980943501252503540489527476367543844156776312627445942365598619545085680798881409649249317381598076620611755748181520255187056513224211579488046117046852562904136981396565279638434250803097154738889582413570579735257750511960164993116163883784575128964373730625035818519791730895166485557609279396538329600047638855896142036144867366451448367442217809870455953778886597807099451367720512115950787680798199842643872602693193722774572382757701054371796563130034920349495675013848753016889820818972032068857013227003722950676166593586773497955272434721437980643796759774146704401438626900462562132078357641221962782134057060470549486069041665750254112571588687754056423587797442958776636608066732900551616197178949091842626411343969993633849637414504502614986292566087528264260613048863065642142473504885830682184039051005895525589624296456499093615024319591671790125236965066367871044176440661746046640214269524159709475709953434957433989095899455857616431128064222041100053140296333515288955412159505105378083954388857711865200863868116623599527035633103432858498967437903175360550872869824870251234663771379807045111234867940335675584171665222942373299105490578594207045234590143702668960758955923077662775269706022604642417251992059071790789161901662049384152433210734571794678594238959666134346038524299835531868770851619263049800872111473803513862063565383084153299600520368877161702088067963378138882479930223946105621669166028256687588321355941822267321523552192499114343024677994429944720328044526331377893875944692744014206736470049077931059596610222661385879654090588621326322502338465180037776917048856848293973913722997046105186306989230724249067459937883905471027066937688316746227145368282653975888830020638815089167232632342155878707928778132738852763138774765345556850853227123870416662518820371543200815925956810828278458270476787679790130552462959128839125356904437499896504126160837801661047092333801953164974057831933855770848116794570543148202676207830163402984641922285865711439394803446372859390441764028128906282725124457872520935954957580219975488718499398593885470264996663327041189158779666894831790200302250734283285601758903436210100826587147704093279163209131992455431969063931488684599601040695741790702039045608184037112488357675020060594523282319268452205646489381168008374533417062313665063085455682688185732962085645003887345801262748854259623592184128572226510008644047311941886459246875726447054703748667163419925543777049134935105572065274711929691836804596225992869267328243792023695450800776396094013884986605734695122921860726412106102256600009145899191860541183212473523120433911329672121093715505184495276687579999551483105262486691732318816921807861688757667323051272164969672561369105183257101191008911417191331722469875700746179973281079951749442586555939155892706617542181637284245748490736222758128228956861356263669495304570822591052058337848889417644235566194331828895517998866492349819998035393798932504804285453181037591256522074816532430176097498774374935699793963323530616237732936480807003163730949107903620761790164507459598392463609990380179664250011179503055291901431308783555663840243458094793425006704475122764668702963997791040527676329880873800741574100385442458533885771572373175344808063408458850972374500302820232155920137863076927300436378698947124886085121776125340128559628757739790449438407490293402631459100463453695770991557125259992208782967312227750155407918159701279229834606461853251359703488629193332154713391124440911492676491697182144427014545884033862263707207346561061135651110274678537769746570070389860382550450302652988275098021101765383036305112183111517825536757870591169896160940134082549142745671200782265142150501100042938804716858514891373392167947966008628150687932304073337194010860338560831150850483104803372060654193731168910379208601479001560821852977059720015885074172329146114392030159722739278690492388621638783616554634389710893425103423784493069171930407607245291312093745473365598006576292476997772477977470917052609885598194448230064849430197115379573379713058102241581301064107431657950115203050505479438497161461312953775632655986776332590024644888292756734050705207556232204561951927319626580046095051631849247352827984684410754496683355055279255225358834083019629049882462612148135694789741572518744879042915898337319812523820554271814558298419149447447582118330399254236231414336247867971499654432651712359918685222116185655642019013894537000115238124068358979697498029304244562438184455158159516491191117372841002941204991715172583538525368516599888606628832180185794165436846834410564991535266618491406699761475172715411400070516537116427088425551193386377111483449668033840385949423231721578391563767373090975593501367631413412751800412165645660067793688265026780297301736359375573298328959626155826538052873945096212727476753797586940059113291720749087306595356052211005774450515555528135170887169259080405628369453412198521562018301132832694516195847729379893324115842994763268299456043463294867708734161243307631077285957830228260995795153283534864300373458412181589614125678517933236757575970234922811370433486441725751421437006381551773574941369362848914477343400451237177108438953535374781341815773805474616166635599277375765088168506313419018557664871490895646017113091363590439866527815863152207237439266065845071469654152216387548180712826717143512342761526828681466641240501355308590788646377839204626896525029118451084720900777436275481857068126189736665526155352037135057001112573995569155653867200369912978952331830210190404532620723319687456594150187735605826385392863797174433430867825442790006523903199076241533771959687694523416328419828909167740182629647116458724133089461017508401376496386092636579359224405013242166475673207141684097275747862192494387005263599331518397788033951314365185337326866048209803657658974369014332445084350531301471709669957470491869967381048000353382475888088775289039974064124039990789614078702441954971566680482056611951241690515473915354173912745969699124374942823118161607172059404733815434636476003547609534464115647395098253688411452310902137803241904733420646420729845284494779415081012539135083739678580124593115342061413160577154759845298019406319577725212106294657029949733075869158004137531838806010671641171434940906736297824715222395622039803445264856256040121875026342574215704202795734122868416455173189185599088829032722110295685518665622248071825896532694572839699252910254008428963335155157487748922747401489277014744523028506573773595221449090161557480579351592193156215025263562480646081675429412732920593249971241901002358147344660019068086820497102057523592762584746347017683864617398658107159197952720805652873103616165531790466589014097296222817264059982717251538678703132067692172546277562387033062243307640639075404473391100572251159426858030400949002249256063267079936992598975468504574768950541733072839692393736435366787436915989017936309754332828816591182646143210913454666337907888722734883558630009803774416542065526748052672726590476344837632277480555905913949016522655600932306081421205026062214689405348274914327732469352487972412961892896985551186500823883485932018308924027920737000848257157349706272704955958345898819005281573645420792419398137301139848529962091128162666692355003074771527937811291403429585906954482908370400266163026603292003359055506320666416281592085924811630804298149548254082541260410957728084176299988884470209524450486219777753306270378547769286672495507584937607295259433933909890137027676476550620160525223444925679823733761315588620541955505586964881599649261144412079442981158639895494261432621808278835571329686820164970281103562936502211134088885249592349600699267073674690104568548530853324998308341117176579424894559763335073901260133711436623371556845698830437877448575172123373084095166106009861702372085871087516993618287324095066590953546092088648227253454970214480637010023945434736806711414878611342237738652011861573981026836432636481775902982131365932994106525846276408264450144408631196526731379109517893677957389151696214340514415693620782862769549574607475585860734064921724109826786130683820296447853646430714419265356253145406762953411236893156836500073592314830682439010123894766646353532212614338570157325749205427200888449220813618234884984844178141465229428871278412913654445195396034218815949634435998578011076512172952394618265966595025955979484252398147939570361038638608110170493219604962498266330221519272988055758900702877123183240390183132208181042791051319547619462054169827762582595404996138130597430162500998504342651061865432502167800295278425128986750989822498079100146840548242944466050380210236568310911932886275270543687766680327750011787452116511733581603532617705432136758169119547874510980004527795577561047885010663317499454507188775000092172974556213691016622271479905394824432574195678007476169031475091274766842876101102694183676376955235838357198242874898164246117968161511652369438786424500454459114096696278242186699013077250621968017078086180082805794847770719325672744883045642245157236344706061635645732454924976111424676910928212902288118568439197607656947791846120888134924846405573251376608791274497645553633998508788096942930169098222604356449124689863655823814512196646919188379032569377175861790555402500872672036275729404939582113664422068460799301203086654086788033851005636172418499892996463476481806321342753905178776956747899821580850453943038242843329648335581373973630749258609164889912656426818127067448141986650050671579209784172132385884700445464133525101832461677860537471105531300108577575017538700687518102402695517602396566995368873413264552928679711701603931806150658652333996149536128601128247000577196866694576301884625958264193785611939221659345497648857297543961274415668954466588181732875169869889119947502713126912279499327658614151656608575263756048225751218135299832035254349343390285197873115743702026120163058666281164142161167021879400201543402957439120430657025996837928058700355843275707255490931209682096222429732381551180422010010983674308717300937719150526140205313664000628114161735365417515563803216793157144693210901136948795576839875103538159206330723016626446617030602039888174695027926013284475043829621072522406546566886087350446940557231277935040802994676386184490050618215999143980103441735945369670877749456641266086638040075260986264522313405265707156447107910350771505505228141579612351884855832104544078913325843657112172603932479230549469667541582586468652851935870112197542126600806392683373701094248928987081886199172138191310118929731985866003320715422457152131422884921632307497133893557871622444643368209412497386991831794614522650754790482316663045101990024241132188698558892208726729064365452215562870253594148126627667948204395219372187548041727058928924538918472145814097870155676002227811446011899992072472172948775657715914919587544142501286372081712650216113889997521752292790843793434204608904089171860455786006062000491963394968974635840555946930669898770167261919539600083499975923256631923281297326477899481876362531035806361494277605444039141015560912952864938013178934036915951459672595698797617785517643875841210046292298380215731800304156264808205105982999760832053557861267421013544418655136655541371435118693953469019704869871448924152462135892900050598644710639497283920545053064577040181387327720947182793143779933376199790403350776362664904654446566925762683133092323567396629021795162710292947225873953242302595841392419173267173605807688540438104781043359388648578073913714840492595762179694667215452467722237470955128410363033208324011831828841834960449521349612094372209364504451613380810527553317190729599308831957700599685556218405495980000694682777244897346156683252270659487686034977417639441736018365911212257335849956597798376222514099040232102002691410965617410562013056996624763554272555860880332274724271769684213122909781639373997937835232370231899039126293549369123825690224048510643504299397448170127663569336881359935419187944777107807597358413299881462239702725039463359572069699123566940704424968028694297098651909623406691471968953930952623088446037939080718660125276258953945664539872178229201238553151430264932386929971819191434794130628359146638713011939224350596992371798238864475018927025840138168858894105814307329947474854014959202492246320419158328704427437814826211763273152020831519631531534137924026327534582669665384717037642207322759936293954358619872754476902929330818020028421113373811439053640209060684767651458409476678723082380870032148543542117383202769152274341336038573021701106977657134487783327199156457819594495800090911549706475694406322489502542641201115073770210404283573314378930822358692783880273271501287034863005825518882433532989882761391432773573966239836555692667209230686196345387175677425407922504585482546384588061313039018371023390740577909216322510299828813386917594887254131776655690875630235985302172582009953194800209091617435469258594330744760013067464753575652944818160365370309106569143623923082417775475616603973581800468713124953539705614633679969478733912577203808482551087500331505330105625846502812244304058434769208879973648844613239671151064295731587682558274804341834751349384003794269258142840371710332137763005247885180757278180916008100618340513473819025659119300081199760290622555461850512677764872549707012235080617426163391687170720200778054348227664208957493956720888101081183600186181041098434177177340193330415346162076631123438413108935103496830553471028621204504835951797182383571041742411595538940355503874850951251249947092144467639046278842563369895237581048187483313685528373288111030614527605280413185064360749319221456854249683066417405098092785010046209554915775732323068959049970615093216595337701216040302925437893282014134913913971195520308202586746352050521535676435793813950879463993036365526980747713266690690450561947462136099361078237628673456622245908453882148432256275066111558968289156084217896468410814754663636451038097633481309835795132543606515596193519652251877038185068709145647773337186149445120681791767211029202834434898200356813260078935390248948810597757050896431319953279348819676678781112408648968882623085902211061163538572782542357359739136698968682804271928094474861385733988889162976277507929797082130490365672520957808858725980715560070565324116296352196479615305527362153517705877071487612002342600003815099796081772182842329338932120714635706373187585662457116171264003863248215474459970602316559801124180743409977488827112965199691769751585856188608842491288099703043873130238987210904434189834953626796130022980834339142524143150636449071431948011983399759571185374234633316785387835919880916742031127552227739345536852417409932747811043520501542456150038273329370563400575069246306356472275000448516626144010644943185913940781126268959333957031359783443215929531288967136768958870165818442611381753018254897946973201985386459495191624298519171193586571819238906384170117393970450944840083942118312304999784526727268781477037378780721525530461200187456468378625284512255355542995135441376375121466008512711831538757858974985434907513710872815184355321378207561342223843208400479275096618903430648801108329800978107123784739527616916658537131379708207672016851729398286514900694473730773402567899369853321623160551825314163076095197609176636151831819279032541975486499061835180535492930806167230534067810706769444075635362233592109687437784199040355026679614279275214718540908748838646636796980898255107706429433041564851076137530379854248480720329155228347953185660644883823657991523464741752900052039697031409966863152915723904210936325230447365171620222291716896058182049947577296911092665621098527969193408735383586228256049316590952411301849847110492465888968946846236473063396707642847336136450438739712696338466661269656965640336162075771789885724671227138741966694876606492826759055026749798229053410468034656547580655988878164541718420268155402313180592746475832609723894879734054901399105728491417341468574448516173759549634933251882378240323503201027148937137814901513211116627012582314501498331367878711812391680089894492431937894816451944328247193891384417103533307131507961043362113959622419338895906720198645451652157790218864645807617454686499551835430089995753935006364443952399843932313840321776864137730575693978610199286002879690707781988667604266304830643994454046299447519912887451629627218762109863039365363252555926330048967906870940908472637576752006062877469992622899084219508263386866048103174060517669352334505641504451585334778842535969496608415521978620263481355577902391148163466733143015003219933595060358714334315024992647576021208665976337871921998030953757088581401836271266968821242828123907089395076041202729691329533726308762658174061384031047314834569994771224648321424052731526760081307900111523761110739153295197726458964753485637058877019946832526776373995258022351952368464266224557894329710206230582654305132303396682200707306450815075613230094175389473043469308842539685135367862106587597797188312578013227611954684626068467433854771481651317145704741830992336368705126154355863102968386910692906421796887525152473968921991329540954957307428536197298889549770414278886450198031239218523832616767046709912482038054013907159125853580909363899654805280189226825434458760733763104648360365244400770637094903984014609747348502122759160293587973609512265221872987576234085994089984563719448022890003074140716451950466641768727121750269066365668402886424863049258377283483946170862556819813447300815628090100420131222044774111224371638531622011147818670964074943135918980662211874678005625837332750022205143850849178121642665602741428080506337741378997611382132480711716872374171018065696253422382922451251262433848184190360087842030494676156753279234850974791729021444324288685208269624978407284874854386370950984904447333191968393527458444884541314256106444482179577008814675752871923220504639885928598794763802965097332143910878188047558644150508008961661555367268119209368398013817185779763358303417390810014591636288510953491256372030937506300480653541306408046363217140586640634337244224764024557813036740612718975732639835321259955589567604509443501797392073046166887738020721858860911498522310958883701268101237949594221537337447626653374591930462873285083421048217542269670575106311159714142009922284967723649351215318729865332707484467072530261151692495530970517147043597483642899977724715259912274735024267610079885630636517795234303851292870115394097051557514429716171023832013451420434578261071144067595062768714978312129817673884073328838150402084483858765332684061919848197560991152640931445221145240804609896077782720422715124424004189207187415189265414950229674978505820908294100005837355988278593962292199327913271786996674064724362658065057056967590312664603120857020880861949989534664770262509476246810517314694835882379570633809016206883665835426827316041389972846649760620749269725108882327280402894277699551979827233362132783243655399697421716722673250862761948632166540714571258028343308918109891279236428606912393244964928456115524007511523452391217387312167200859700585302063805888473739307637454479782087389442629604682920025695530572592052695852775799201967706191640724374379091230332720580089900405357819983999167274838186492522513471911344456096596406834668614063013417393098677036531868457713030463533642861409372541176348566524741932598391441475425595082285792005019200949786823095090516773254518582571619421202213034398113894764064943841929822706657823932451751712375886438447439824232314125532029603648495973700828739451763097167382034409414651865428046245431521976431988307756764864776601394578285919974801672784882286787125379771027726950331374111496898877831026530456454091163730596422901720314672949459413853055086048943395858481147984499778856934795616968045549063167184140189806440418309765871019930855568114607304690783344109190545513896342038099255505108535543921582867479373007180023967561863859045464072708447958438375882682151977276480718789605566431946159322973290016759446247030229236012378987923405215315222073885341844070505428371131906611739806593283289570111497312853551352789384006123153555119769445422705604220600708502638959083719857591141638033038306859253462143305137687789588485147649902127920236889117658620940611445903035316236216021154987126258758114473243594150539294281743540191421209258557752783490007089965010057253109514356996053649406016014988096687300797821725539691776438178202546379265474788706322195593908587178117023898424229913807067083045646046902489611266350338121895565082422208069028980004150736367535554627620084312745994467986288491898760134797026470936839238125497105665405531852706630614171746798192793259378976013378313837160315763287002066326745578952875982492028586555183304016488023837481364652485088151569032438336636312399689564948745607194858019024135047494824544878049063788873408891320646762945535215528881568347138141743298896764646930618436130265571892303467951177987260594946554228131857950959467615997169281155390398211012170052540651232745278669500708760279654215292778972686226071945575299397934794642221127400752661936799083699733940442125629185838678958594144768984584154214718369808676039577701675389743620718755742424412015155800970807893995120852057786662845242809130218221316146136521776589266597830717629019226024591542116702912668015811273518520617218433026036155133460207726544764721623560117163800000188826365729295752713984189818457846815752452771525656546849827111361349575729313709661747564422872936638442455142000084914994306984828320361891865935630226542676597616492998442268764093738037635239555024086635514825281173397415462800175288017287199217358884312397376606805610518363250731327040186833960876258003989194557944220347372949884070720888090909254004225316818188298257566197600368037500377087708999421002577028819120370318746195339208164077400553838546523680441550270720784545582722942630342587795998932939865124889572106455588496565506949749432818561445832515242353841799444229396213438645397896403586991027471047959178484467829171052684491493270838947188790956923535539632377726706466438226668403464059903549432066831841377490188156556828957161389617404375965081019101022897816709980114373167901294917388687020329342919693584023224992383766609609182099955369061530356816335438478218026498210537607396934963327433407797895806985319822659885734964601864950066375690800946238644801853633303134901554759270469830014412131752591248732259847813125648162559982130685419085315638063231816293131801044989951420387650119474157599992643112253719504524494429799611329372278737431607362939012329684265254369000491296932538871680265526724962922582301298706974269668668107607658305666021679025700280863381950329057781042636521266149329652297901027729991867623914474690985020117268833822790181945488446920089995847856773386204704466849102359149392630342159938172122443064372030937781373884912052174388519280298649729705662817002381319589449110541022147404684959353480746331193641029269426992853120408395293759136729535351700245330279699238942266095162008199334322369859255057724103930778040139297891085412237241876411739116452230597218856728650928465758529994816570259328376736004702993702212353216086956986805941033249892102294005907449178954164503661102735112177389914113310011268066062372796097968951500213844042581293904414176942504673164288278180606616221174308999637895065963711833979806542380865546807585416960903661291002550845215679971627631155374937767313397942073927837990640075402875547463539658845466518306143692325140122600696218025469248944899121847145053845012730417431632453342727548791351814422102387547791283650212023480169650026022680677671357359002397560307734873959882316092349925666822712461722325342064171639639538728528421028851162093570992134406476211023464734181550591173610174820993335743830608900649857092503489951682107398019355910115607033014252853220266489740749856317638065794695670401247404591904864953783323215112227577966785238185696694320372426071086331275246245768237256905634767791771580688148917556619951764243669453131275116361829800085620866338548189546871921295507487858442653146218589165504005690243211085971149011406858359460748751693237175541510342084559111505854350967199955824542899956960071721478908247474370421348307895478111483892974381632085605892888971354481048795467072206042708423216558430576322195803066631763329866921529850547220295573449971180044295234626512100924779291339906705843311658839608351265067611570405109867466520004490954440739760270158438840156011138759699596428157220387023383678904521151418264282993381347374766989351770492608138587734944042101726976481538366474207754789790546123683542380721393948219800004762418508313154348779570887113881563135458417715002394068680827930367388451587096522809202417570425659509090145249465013115630280782141771910858927354163744376459323370276639878249911505833959612782973677737400350592711752726513791312707774617481317840820092538454336635927916607732893404050136355668258138925702898718020072640098840741569870925010442269841369043747681728610451293273471909214177317948036680601210144239201834780501327950150029755960017017425294249543480552197878603742573322305638754981826721932576209452924731504244175420905605716852164716015058502710787717418637003438359388330974912545170977557861981407046971347513716841990259397035229604672616553552122181689577671174236200117952781817297191904396269802972108530329248835989681779766038644524661761456969359924546432162182213527748919971948338557498764359975610791623053087658700626580588423674764619027155820926577108031889067569097771773933947006175069305822835794177505424745283962709045108536100977053810005013671697226652879617752732206289845383257855303825451697691069667422899062988981377767142993318950247328777209592099200050082298564590776762686640750937576083364501934937597130234731155394386294937875185751352793146744206377931867067878381975248957904190696317765363957967974429262995649170243328930195910490474374361359302364104702287745790906880258367610954343960177875986721156004252253323420392312290424930187572247183104543653418910506677379779243212999181294054579586273182453501053653613380041969653689899132231080071679979411735873790403159786001786537180792276345266407009117704009795005152543704642967752049248500300557436665742347550290313900754070776130184838947970225770493771449471620597710492782675303078029636982724087256315348298575160620898483726287334835215036267244770327361117715937538250087421435408124675351083677418102555574810725917027987887401806695822387281126491456145756603859458688220616531401406649151578636851294445949048008353763014926499199742429298805819215827206014286480952800837867504034184782303155994302111629527053543892296625835274831685784994801534831577782120944204838573404796354135536605502829727495257383202314509779973288829682680862210889986860274015075536926725404278123617388515620399599586400301076369473029222181734043217333883081194540882630173170657900649062935367279441934058077544339154979053748009563900527888698807540853655668539928989155867988100074065850585271732993115451136197771441415129676890692441956001512249665753769626621828642249078188687564021045322728981090197081058743612019479870673709280902387605360687399765862258638157479709082689311210603176589337626312142122884206961199224025981128481141183960158035794139707486717751658819179488510658496668029179377351250738932420019078659324118782182834899937227797464054470349677315230365771345567742560244378453365597341161638791679804250648991344164898139899298817432674346424541259704347105777908875861777065628180644694025524965568697723305720434329730933512368949912711040229278772606714114339872339168270337666024682433913877832912210350242105768780141213116371288284187286866289617182353920503544235587709273932879927817397807001877364269990782913787907723550315727151776954508271977982223965946389200125147303806455964460671721573017820345482099372961173932741241990529576593796857379147613501611517410112677725817262733666489722968114093368280661088458848548767193584610990698832498446762643670617806480165144950866012292324108324224613068386034005950882741021453945536124982218172173988133387523942183245301209611869011897903067395191453387626769269269262126095683014343233442693454248124146936256714123464437655790894698580014309021376538850756867449773639774274236042352754238188554186565652021169306537182551392401224865533258589678904644111569613617253472137985657620919888179882633223909658305868971413973432552046612071343869289076966700260817024715092130550598366815779272495826504450708249823650530780656968755561458106648019938302021010403828084541193277469966866283654157659436439451320781012402556672942239990730566484002318149504345725686320769643505979710165445748265181990848834610494587399207462768318095815684943103302378094775626433606929614192154328825469492276846430413094080318109207775543985721602599291997587061885334727479946423298071619343587950517548213206341996676646408113376809233535195029486619956692062918110448719264192291245150123201071459532114194983876622523091572748505644102597211122277327140168781851163700357671815628919141441997468691387063491236234547243077258316993136805112458029569327606124675411750314201638676277129491710833633847044702432929620115754133642756431729200351251970805325028915693123670574490173705827838713741085504086209983009623405102445812555646200529733622348579766404014633023954421535554307999361358572694535684996364909824799009247655433977015290797261454252011379139541113432116906688535904738289483010013282103023191859952143896676484378209536040866141311801801169414249065989439068342257618130891549171325159634661409731359216382817732534260480298493425666174986207181547713499438460218613052896415530067576660946605847808226614022157589543593636138365331475882038926399060568567677581754655585314842437062980487838072578590026223119744405359729225494058616997601695261950666598661327190680704128390776027640195097108354945285515457859929445555940389755170878041520533024813556473148869331105917781344978639603463510808297738868467185991852135223144851164516231779026016099684987333723686344124248961608912937725563682035906673970442293730891360232898475268786863075437015995452294242656002032001843872078218292885698130914467312377110838133601082383020897008153042974971041693112565396273020104294473632630548344696954651291909109095746746575930500714132497953749718688217938063266386107945611102497008776520933083004188428553967177300068215677126702992431576095432143240466490930313572048289317736773714770700638019263085353090615482474891987068328397963281077699051756474417393320832635415754735993419132344370384827429099542452778801179101846652844721926903965574211113577505192605485495443136805535789176146502335788091813906875119709972731794296100385563532439253168550771622813031979278670351221245307211931390125883145247728784253394431431234978596493410036708496163288582180241496550550521033434496519119469855042093139023475838609459683662828293337731537139954672793741361132516498879635703754142296010964825485879254331658088464716264091901918251548750520846252298388576432672737189688146105838948589299225413094672742202287795413885950188783627554878394641496130018591851088876922745682555519031436586202968149820580215442264096055940454370699889482861151700557325461389169437237464022297844975233096715424398217468135214775654439596477235516727515046770665208404351315614051757615385445662798816311657926596892306310730950786361753287408560385000505444299645714600889573424528574666356934578462455625413776897999292586634595781320285223183561521139287403498710787186795799955741732016762479272809620301957597019314810570960688197408264050912013860529893136060801296455737904488603180793546772408968982632814378354019872682300518220495587006627885028628342799413597003868940045956278074093158206244600886419408299759626540438980967507286559094315645152595933445712778990545786135466051254995349979542693998417756799743405563526520114656049997974714643286065397645943263078601789748424671908035377101540353506934023569506346719994485644384209353113925207627427829004486844117744262595708918136547663684582621387254061722348545015756261492493346969973000814463652666968331697415562070452628518397849982072985809169775161947036677189462339082508396303001442314441355352518886471019979076958043373194699502000511136692796723581567669984341707271817722126292752403320575329624281619784236712297983656624243352608513809901787982227636511216894502511362451296587354712244014986925304525507418887038227397239941780034961471421075086904254615138668154447134945291044157207430521469110241491126353811677632548923430197616418207197509936245504828336155925244664214607294799537959218387085565574545085937833493306212548485746728549537740930790336076869787598891728434724750014331774407763037411890806804559958789359702102736438642742206464024479703914431313387294939225570048398653988601911457090466889644631047065916489466451251442347954797279243290458689039770589856375787915924612965968206802868555757658881154883322826195080687738061402148201753537798822919536448472515594015124250654948220741497844966659190877673290993601438774013115089919259864391660797046368819871966556316563937243089279827890801458083984330391039166169045139093166531861678026239136420242456291971365349304842172113269027749533541105101673762374242954180311069958762215136538832289706561087820880712015069035562620907416321304880367126054847664604767559037240079170192767101638845704725281324386225734883029989651231831297093364140064783477496748830456193277639123700426610206808604337542707281200037213618078899984722609549366228250373746170589171511148526402880238145120238164705120692257816012309129307442109983025675894847388867723555535698467702132225153917442979433933623991818811147796400480306107781211103652692410710794407470343958047304795880502548650644547971084854082926320025679464924682961483379016348450349730114722849947158886716086857030366850935996721680487225664337977542496100068689865122571860951423393554051743901812964545666668251818456496781222033015259156983945015488320549459566812215180169130175368497325852803000995056157321226714422576782542595661886116467048531377893030544717256872133409708922317410887461823016716369053337541611868817669482303291437460500579377327330149882475815327150146761208873677196001780494375807953466718041669390113785282345545970237397994434359643116505753560440069218186993943494480241936023570372372219088989335850515365153120599853004109633072351182072869693243069046503720537145385526060281432301227056899614935815557280037755145995344653963477585603987361436424276925414698549816221924533261338424786277335810820062408633831109609884395089225377984912909313461568486184860317384886625626401466071346788579498340972540502950426809013596027900893071530434839184430856771079842346298542812106354450863017316371443735103915846656910307361138119223697454614305543130853177277293927993642359253169343711453024405849741581132440611573210578295856710510564703956583051601720812237738305605593490879704370145243176512636932627297570314854546558955631057015688283842881170087483908955815270827768437147607260383406482882084040532350557319019808076400667014798554621415238981960124071805511566131199960222872548670355864229234132679322986881202043431621140294643227803576182234779481715077671519668733397895488032930463737207016024197287714289211506607367542894485226771840563322537591088224908244878495995483528376500745066494665480920938716918609262113121734449729799065565235157778371648032121741292565758353974098555575569094767716777498659003059045200424562386802255169614903897856334543243186827503286198879373137039870440043512321602759734958564613699467753128605106174210119160852785325297198391737213932178925256892181869604255705076489630670908518220699990114291780243880207241195496663610601159516276332562674889124019369764754273663605353431532866122159565595664823689162850785841745537749216289950021966826028077745888794875514544297309967431924044815898795624153443897565161117146977945275097189601959276700197066698973732501951453222072018676975329080649106966048237675253635941254166403806458581925560357786630253482860640213030274913286319619734050261959523372679708624783033109911237838879927162706420752711825845897061221413538726771132736404915147554677842248321002646165115920573517300572216382124788500588026546235857181068673841523642289477247525641607162088951723569046604742664345607325029227926609872235093691256554335460384282146501116671506858235018680893415531695928801695983297990869294054543671423879254301674984156252101515587253704657006302786924558898862887283999328676982572573641382553954513814986779163769368456436195040810139017783906617837338488823218466993668213437428721356929406213850195073455546908496489546221768439254948859606260450480988138921399409405711525263947010495060874826453186027030234113066468870168749470245516143868676881802130040398469016206736876648718794318025607874242797434874419892363397014496677917665485691442235334559347004597612164604488745292352965287460147590049076689187902599497321277366502305088251041814425078714012681986869379178789591830464573123039706453518049965891434728462013766670848719756681846845495763359381581764682242758129561092896859687257911547293391770715413847492543752525669465605772062717170942407768426953157184348740534997601044221313579219967644466223648198073855268196895016810758970587779273317637048639754761184589375728974022772947366272542223964058279616792095998508892960551349838272890408985655849332933201700101458795327954229314455180167444873932821199197216452361247457636351272648077702447012199303515930677618252593380233108447087454376207802987708541163203506358526841653748472671836683557724055726592330372844124276014578204536291255047231293335066037439832946325048457861839939714475671972844207047920137020432807194394258444809516864154015839766672616895815246642674248475697767622190964794540515836400509049230960723257086831338446196015168140951415315143136156184991928851714206263660593061301243239670146453140473980776474322406157957129436557088770259691795212699243047864546481256446312167133020101874338840434805090461465332754324622923877900976104539972591199078258893327680499587624467386340335277559643084023600342009322022699606925673279231335935196966223903152601526802569292562262770765200272503101103426496442255516682896357174026585005716150652134616711005049759963221147328686969505311939755718407468914417817044602927847926563307747433737605718696803586648499080682555395725013403718657900425843854249547412295428985072469108194417946074978754342156080627222810176849868110907702811907776391150354602308386771534613670466005578355738199734679251006649667162688870348232625350190037629662230253753815119295516617879279480634476357051527746977760240632993734249027959438598921108893123304098031875982562541751249690928056060304958753560325682595377141057352823711753598911933616809794981021060785468878205389971378194839763134766699026606874639245574911131279298721066075247774715796527966141956981095641922789921946130413888531766317777413416789743527586167930324008611528532248743443543247832047085322697845292305741113528551596880551588030681088234549803200999402753923161393465751623817386477500444452496370896219797330021809983811311224920602470387588635482547437960063890018200260669123582496692429243739772963575866249708106530871642823444365919828077841039504144575964016037025428259640852088023533716695397958666248132228412841422833036864715398186891396142238797098276171036283396539282012986493740983854391480686160264498785378764798021964908153141139211637905897404943220795952405243390941214739186191732570936803893316174975904900276349278496390293083635875308421351727810273226648299648467851475817664351247116710930389752586545873926287558443610071492833809792996992647743847889574811439293920993520986920959350623543174692259935561814314622424043847046518178222704442086506956791203170303168222511118578264846823037062705415960803315534856976014183245163327430360126289786129052677462761626943464178135599669324532468351903676746901626951961222382993160648314902577485103386266447194720851993711675891232629265401935836343692102356285122492363250819877131729396108236121292710193010165867717622905054087917016346862152878484059765734321066233845407168574436962279619203964146163182935278028538394630229125317886882170422977693016297901264740840938664188584968693742939650394480297764202371905783733566071762626677279627289740185296251097345023310749603132845172440689529484668990583082850075946380194160563094479786950225972410225155356485661600803817121848390613598406946380390562288739000678714991336948673207858881757160630204680625579214216653851775142926588662171917728780520148544878687402931721241888079793243345703635837577569874527460536675012065564408548910894915019066992104833027904627121567529893682934643304593602907201897405559449390892301680622889445240269557960534175476086624960175422028733364185834466634048695667142644949418968481915417402929619011023498110215118741848516151465964186101466435397098123527543404014902075191391221654465770122122818766662273619617396692967133320203628087685789194683540416620798836156317503997892291268756255842715702120681724908314192446789563577674440808921841530360437658717761260906183713966713706884381671523314010113258459419762000321162638438226326593332210175686229699021783564822916875190633848247672417360541824104189637400514782248160266778855051733946896474673225187220288736609383692433538911534888885408112940550010060425129624910116441185302919866377907799480690708307065795821728803966290932371480196713771854026899751328379694051587780244411068861764786824950912278637675180545454529116244283851252452510957645990232482945948747013984244746012001346729091083240951277721752789679136799907927030749737229628613534822748168490437231659704415608616063316835188912111662755257321034004537372459154208982212382901425211784189770262814346202769755678089897978783103174507598021385353341707574409487218576762100732087594775423519664360410827202811249125053911503450609203367655166267669674589756444437200287396899121451459164406392915874399689585850134159057232083703457400829575690559013833175807993747820238767274036146400895898704651284308656670771179438066595512948644031362085017310104459844408928837738054387701621302538214077156938669613630309208479791417769986178152855523381452878441340281445921963831026777289104436118831878893381003670467610159137514906291059176820724809004414704105054084623343044782575256790074584884074032570813742061007077216628520068832975925053052181785318837509589443112071302434899604782874735415542681760630224520706080086071681235004427299160188496120087542124102644057859234674192352589519651465799345575444008707204748242535948728935991344699302738040430021818685819574865816440374284088434403734863515745489434785073910862890612669951498061281383814965300055261963396584262054131168160377184358876372687050404705012612773656766423489921406255555751565248369623029113843198353397390159275701434644574824113596846833775448288743033755890626097524549148600946357085206209729418959429174578437689144716239735942492808455140935065735493754591751637274264564017873937178828441621651288584491081307262509636271860167006464565286584112008041192993713977227940915737453013097915883967132826885688822418507681921389459464158168847589179256501548281673606660929138026697115820090647049747002045778770982582044869390611471647000850371306833478537928912574468195299159163596870488060374516248623243359999060273676907287158192349825598479995375501033780395442904149389660305298445672857066619561910427595318423117603134573214459989959552867826871161859246428116168580443459073752382141984956782535106236697027898032913144540187864110641912288040006771881321790735063043435995598289747430323313304757311190425806892995287116358483862238341042584581867355796969084436101289903777378429140949504056590838381036229730789401564908624781192783496376386878499964050677925552474521655627439366169615466841045585181837290771974516130027167644491647841220857159049856155717213225073527078834163618853619306290806172218456570718483394160416745758539695806037413703404067799973371354327319617280534475933192568134537417555772904603612569007878848901701453794193334064577927571546109894850574297702635242144854157808503119215430390071894284577333194101946079030314035916948416299244005196188639961446892079885926103543280918406796254486529002362690036124160357293292597948155199308632478224441699270109870100393113776621222557762619756465993693791301078680880126437519976240179696758958100679568932466447709013129808767358371841653130880084731093823359469107783014252451975211577355611989868740171295188114636114363614328756567739458034156965631367745860094952363200090216164510704078657676516202703494950430113895507529083879635359579512670800686448435528189570272422894832686580587318196377588204006297127616978568141620818104377589325297514221223264400013525989792607921847475148169447606302045153934509786700734502655536314677188650514955339224239787673659228480963277184746390193903606986775617960688527673541103323319265934357820733542212724382659203940584525778918590746337699441585422153487370443961836268301263025477319675390670516649909445419937113755724047098215363764566522963633482200392977915639641756425801076087799233579294698293342324677904905733142752292421948069675462022741939056158226820876735364237283928011647898243435384388038874939245531059764050584144532379909481865224671082081788488637955486476601550080999505841520327462550271084281486417123355352016701633003606524288498132932234490767388646822710015284313827203260814308993106036777489856192092761485557038838966221432275444819764012581436141226912049811108837355867613804665841872512147260349743959145456279866424656792783654840072078765487875702326232458182943735096946244717871165553043168387785744854922279065821238675504787430039023845594936398525562374873801366435330916969398781031617733493540325794228146296682203692877345028307211997376719565062920516851257301523235098229422414569796764095100244800399158203575005475819021576072539679316264646798914397549603180134582952453888066018543277451472502343007225016438511136672635193063272751777294816027681035473942176677785448886627428242869737581729670325330658601692431976546873743573958422068948421868263625861684209946547430005736854248266779555149353221669146456492364592413388221390661015362189680039829393758052564333509007345442266866631630336547568479356178786508680411120401529960225851479787697217607594911123972637718841655794853636784909644539581117503388350646199635383243021641098978619371103195703673551426912263309165889083512089871432468260754346986377052554816883615402266048456716800063047170187725972006292471100944623458911922126714220705840947973448424971275161336565135364936767964505027884755418244020054065835680678526190285024327635707842884018604196091899453278063132147204718605938067305549541957969935982157924888746120226294797266083020378751887192889607632348971737440809013508495457936843452032029150162497751671414408403985326788806593414469962111059924778110468699049648499815788433050878116851730134657180837991237802201352747364628561597531169729268648364352965917788822075475667878450451812580966477933956295653349321642292347333882072068235859061990658316669659546685303061837656400195211768930243912427606016357467642243383387920691938681905409083415358913653009305926549109777110055429443347693217683941158711850913639770285136944121903488261465516999667806463389233004600585345566801779589754353220088358133104420597612431842966900805789526276810413201944809858369044466840790199929148203013937970164314084198764188867486943592928809888072510416230786686050959227709477969639686608541273432595195974427319377309290477291714649122800657946115506286894238727081662172314678176377815792258872731340524991539176170086485326145751622285558325209181305426272459648747785088960419843694520253703859937471841211847770898981541057910514756341516890761778664093265849177488594494275824595469554700232235326106171479323790068504497289940090246992791174146961694985558562654514237808050732361374997840625297891079875775368773408417906577685196493740156400035507761322490737493863950910314358673423375024197635604988790835078572912582318620108184666729702084365083977341063038756608010339220844413598514307275233109235179727255887098690911982004821221334115379935171595879690540386998295341576529029966376498501171662339994623403365200870524613396816284490693818619265978410729170630758232187366624729609873733649061079308454221952659446878215306979572404610293866919764454322632178137322419773806171295879093394273410959967048114077224750732608819427467154800420671818405864073512086660081574086849153690064537733986219401942553561380381258157835076335419559737724775000665113727176946555209717318068072553413717447958417092814188712702348062047960845017627149442139489722193640161951110547429568586643521373923426419271630098969940404865880137190680218323516624180036444450575540460002287981116710220131640918037051665316494798149672968739362797301899393281955923042198528004400557421786935870079826721274411769180021958234961260232963610057109906615665110768612545746214326552681789739153008881368158784699294009856477546920106454450549377060984350718419877324644773843027934034882638447567528033773107425039298019537478079345762927929996520900212659058462521581979495791373066041583588225298455589376311200576122549412512777561855461739031752210678106248004902061990796845338718775820649238388152187145538383747093061031422916499422693210744618425804158982764888432097438172858088692145114840193263637718078888307821718829777145999967769691242677261815501279077558324948870983278954185941480186877454345271204916609086119938432706591297080030085315919926460767171098622626076491768728078240136344282926198782239182410349236861639018784385786841496386916346469189639761921886656319209270271109382149193981964513975783953611052353723755287095964427274095371273580727513195421845216821769666784688640859880362733818440981832335065686869912166551312118393021352900300949201104399444336459427413201597552678056351101902287225308440904781914102322486790010587138522098230685115711959347321814939536842968593604768161823848928758789269947129354184421550747353297206953424768067933927141047115280728721709764444672375247179626830736774475093338014115221197198788283479082302225476120851146303784800188389930466368083309344007646268296295180999625853193718576716823317038533403979873957994413235681428410760233653188113622226024808992549399802461827872090590888291469651640915804532480965656442240740745033633145449439254448213164848931135359916920608509369434798211276901929643571570780156450196213046161841132768702665179226843141891895806323801193026147947576639354609200222615687768974018617157107646412824873021943104107041234401051361078645208395129514575243515788701502267456676782941256423956179124047546303629478955057406100405577417964678284651003481799937739537903172930180946661021030426471592417315471852523859741181251640860159302222625623731762157873013457318233550373361931101979446985594619569950912813488450812244565830384431528053034842200416064425526755800173415728789281129760351567405836270503330804251192028334201921134111080125025057793494284975261113202533899088697382654239287412756202445794071319534087730418879865460739689391025750130780589881001203715671998133649553894430602540457839805650909963978709540262897693894968229968343357020680663420877105241520503885971740917364863197678849527240547286039524760337137000096048865757889046808138776304557990216308558763286381262280098785399036042408719570720668073134104549794508468824668170763554323109097677187502953315568668581123909938613702343729513800168773145550985116177080463096609406147786052465247684535520279986866013147998213787491634106276704157333158907536476043644173659348213698991893935810205700252680451916869291303345251484554776543589419273446193861025251396960245055763573708780297952190969571763972586239271696537373428527923675511613914836359364755369564374993448964851469158804517856928266646578835191638718139721521885594626000732898738957027302209496095003442380998932484306942880097110150477629426883565725999105243760083049998069479676574951529056006074282341992222441841542086695921805974470135454673626393950169577678444804305178579177449405079905995007020798467059599797531110006199533879370376283392766990703010934695016539353876911855443942911698756875237879375904202954301418605709401058054343742889741138830379475843369869707423021644044364805590180204280538079085362729183653328793205184234660876938312759269590765023272771104463961359668554687193134915259895832927039899971195177511602624549095308730516864070510930868330430557489187843155242265905869252937553697387992395939753175857849088875367339520351133509969516146636444247307175253437452552091208663335097143999697413131231073174910640015286667346070493668468465199589535176304145000923632836660724419637417180588379463734654058541891017356420447408749660952378083882711538429330947684393036537017770144906537531482404260494432665464860918222032024942834000903184667984863715922296146231608512158896291620927269234487959545538267786284676574263935595035751383819482107608192380675973707997784479481287953207743886362393996864944448686224605448147676691226951832276772163296984172789679489872609407700364935205501765417212969071468737844450337583863076079560249752028392532449943436038461906860168437831902242476942842289588812158719560180274397338710389194557957331071612813878909051184987906542951398363855489722250765492983394612238576861452730920747219245746645741438162888713895944737069931455960204841118370740043877797500516421894278603047843964937205207879170528915948112158988870073225956356952639011235198684221275815046923594922425925433256328563744633856163755597943833298765968002589360957314514096850148648742749932601432579955613890765972152731886172016575162268894707805218933984651053524934719938448566169335912723040926460529307003652872446766061800245467217020293078189119113688185091501921040067030853611131451264008945913450766833958718096517509833461084321124415549396337509037045075096491624543572920878683893529626005528414372476689471829734933338332883245749159127309891412112946776900232092910340752347229481633458242522050356915510701263171879531262261791628469721826363170123821898087435241028635886865482316986248752138130867236977553505403025614847283135841414503377032178413989058379916167995541931816650012132203509413531528789061849652684997057620849476034817963124006385247589093834101674895360790857045225507656805712260751213362872971599018893899272802210944926471028810004227661551392606158919797017684686131434447870114805441778569004898652407834112007208456357100279855845336615963022822912195621475906985082667608134680860569994943907079364051825192886383140034135171405171560884246408718056651531321113713910601416914058511793842745342729300536218126196476833251961993728185564560119080561646860574299807415100970928578296150452449866324693906067052445320341249028409884364358412817808890434425344240573607727084700726992239966764546421343710511053867871835105447625058110085088277103973314476901185861826619904758789039256456047056209879707712701542483445563613379217979672099687143847228586464033629405053190351081860830122724411491025508986848211017718206173515807447340393292090329779422286021032706138081523447979807029402980233593783875854668546251754783648025179601965811876049161967874454564486886679667403334829478246857704137236926985249571549032681950438414535530619258916558753361524069285297380375816070351847543097286275871964559584186422330888550267745404929342404098602857241912730774328684198829272418661884126745212098498889065649832910176323461323728830798242911508954704843545030742818730919820706600537361456040182062482372477829112994115337673464212290024032498008298627909060179049851842130642051062053341222816317939141788880078332018362654248007127930542276239160380695870951569630999466832301341605122593124641777884619458134545481777556147916414502700903260505493347231369098319627067429715055090607327454819119898015095634962096319560120691778512863595666257398951502344804834265099987058252290005782885258744585248038470905636521259874329193568531004591324626336849394108109665638342076414841549881053616882467254751872020930446423345297452996442973843956389931145275447683111644366034029214173072381233348341716719273142927771544082615542067828526198040574884668498666439880609605577091359393079072465508533084010392665494334316033836151965681036472344935326272592426523206655066379459179833004076252537013812139172381724974827366345876245821399031341833703947872012718687477966851636835932017796224169913672267701491634095822148713789928480689250888809966541424172083067198616047460970815309354940788602670017405276883876545817851210594119624159265741842520122876237994150484938265727948145145993129565907872701109566547820255486794159771943822738340525947313693133207312378442161608536051640794077688302906327023719110791422348700979991869823694456043306740105688342650046433195496314506987631346724811024817038097464005805633213918885590932123553599028322498567208924673774274928215486551424403604845699053248308749312726137562846636731401367067380143120879192789862608703632221629631307442945680277602472206345161582177330368119536688129211774572464091823410452811758974016594824860940555388586647237143240863391547492439506579819691313210284357617398298106154261009482798170578821543639702069006205063871650401275060752890363063242759244245936843648177039718773913762735141189872878378442391752796818083416717510947862956039499205162569440730689956434424288273850205333400725087712772440896076475311598426014902773916476835258307254325384221032014555768621545717723840335032768789785586299369201348327897500857106444644488343708168215017821373465782241189871151238752706728015154723124203848716051606706060361848950672024867994218743329482423608098036862002308593292858419486176906733565819241414124755262532095056918212909927760949131570492627904819887332588870746772583621929869229231252379409657106832483615957065519717475110197448206212058449347586885911815330876110181828733320802501404904409602917349507465467503600827756084791764220908375382922345757728490373483852369308114585972287274386221721982542950362391515031037359554852544674487322132204163853588024349809535765932840151559842687382916958669070523151654549594078908976458892633046722502456597383993656561076762428525938696234233137948650114666615574551282735016372859395680087692331391772426065209481366241357487750197643911831113999747287895017616503462900222930045510470717319348970583216970776359287510685948476777097288460200388611875901610585057099773568669402463881563107022871885473547889310705693012223879727996185973003685127024606010470509472000153225559991950329814174249281740349746192444372696496893030047142163294210006534764446127441988260772113416893206713781176955404041459460457685373614384669567105187292886134279283335742336652120401320085680510287815344502127746101772410968680460508776493319138750550117026180165355343978278230431352270067374996605333455424632549772777933102892016239986958058518726276603131182229912588937729255429687582547920826140384206945973511861114602952795600881308578435662086334404871316916515893405720849663921476359755712501961887084526235471639018984441368576407580743555950195218703317303561641702096657752563144618379966960333073796679968426352236853684754268234217313589963839164326192963114559430619466949718697132158963906391956273171276382118022819197290912108548188718183841193753968135823204441387657122427361712362444928155068109816376910019888634455240346341122693248467801259993956895999679130401520481310446324611581038310544515878752230351585530329686329838836894232474638593287076947613050133254821524509215286899637797360200356199829275730310803994665865069728508566885368747363477155654416242130758003742067716698915038336148291958030066301265148031016465658117974064576777740563084518867645104634152719684801034903946249891054301996425170663038983451431867192415883422733760472931874252188859474251454077814284643556906053039037116412053698247354302832200729525122154349091450055017444632663754498626059067359155920384431934972995972455522413550455882985155540713207690685212695090921104295885951045733713057113261932591780929234184480596146848433511729150550394828455428456429191472519218248905275356236792733301713707851594424338472168856058006792396376149654068942642206284867393717541174178244134644733708928171046311198226200326296540858452549027373592461277979020090879258276342919827851582258189535002911636408001381404842868923537655178446134677360588199384777532224306359634313301615009282816485305498603837698267451989777006450449121613324391022297348521320262948440975926630658201335977146745031252554914480998657637687679708496685850649472244013846978433391127291804482294723158539213411835665912961611584604168842101106339413106454064667656575333892179566359035163945306450594809333945444418780816876332286658552649316533763863433442853732867448311297360111999208891310443837120750736155690388629157236769416609274907227440492717548528196655090863776305008628191453027315021689267289899480049730639234237829521759586081574470278668979056157576210049187584213098170290752301415076314426431526964296300528573756368970792560310929884882621619786025010025463819717675052397969280936435714470790089223963680183726980750918850567791622974006799234338107359976303334493328671663995591770272672525379661623862662073660466777782868475599581700771249556321056146465198234404756662551607759070759953467882500664372863643755668900544058367800476584451265638884616966771021994082084741863075748118025037897727919195626251399979224688316545645931885109121009974608856725547248630433576198158798211668691664736247818922906175930567303164441955500583815742212319824319663621497457026920874321959889181250246178469294278455705484289201784153432163580879073821214405324120993491151665160541224681228272869880257244874047874221896274259537386941808506776502582488314955622928720818353839601911193690569838663479353806923884552744540477223310983969462751219367223961348472430424857120486976272402479889538554665718832420698905223732785949676570434793862814993249722174985034151275996991844246274934442743360706258144175836368341160773367455534486260924333573282530637993056298070402869447010288797520093432438479210467965034638131045870458641384142967778036135563852973547751409550960550367496858407567252366689095944308821191831772368137829863359276499475432674443277824993263380117618137465207485956977257437818711764657101001218131639985934708385399241247431437424852406333195337835547285641603952827790023089359332224649360855794279485702459165467648933645210797943178719518751699705904298450985038077211242407172106289081334497567820287346349224741950170315405325291223543256302394872239391214704602673348031497519678929835066705889350379489549791426329842523507669174372803717172589628459371087501937982600056079483638882010942893809606621119790568285207668405191704020395615371705922978014770022660844328770228333387622168153450448110494305247609514712439137168698434445598847470766133754771667959148522652413655459862884664460932365893232113980498389089247923805647559794054218817957577203846159269567708809643987881465325665766335610491539197921471854154444029634455331397121618327829313157148588285919478797614418943596235002852339045189602988388126884197181235867070872482017534665130677250166427049815136549280134971000230863952199605818206687588621681281849401358031393087507594995763968104030006848105421910114609826927524355067761332906326843359469505118588514188140956928202609074556405442046957458249134594578201261486050168944152575088246232905227240179557940721154777685369926691938273959607314423283222252584864320684564333876043132940835645158066066701733883705308347910423392965357154418059532243174517267062027328742445300485582845988940191958538363149368995885208100622619538754726433007525155960057840385334775904922727121829297793157944245148975067821018077204177724768206607578992731591066998507692258846061187393035275774658262170929433014914088330758716824928637653542305701361607216551033086616644127025564476819646241939007659710570360119142766603634005904244014944713625208397412988450443826833926810622627421968735165267369178978353064825354536108246398190665011693583018575124275597968890261683004407364582584035134092700301810175322188178638655609668289165497089266779254107944867889916364685391944945689828784315215317880471970831085767872948927315541982614508346625986560375813030039084481238374263037875469997994746205089414574010398030933948046663540819574269352178926315725535424651158295859185745433806084071687749466956464868757311861831954058245377956468387548835780031250068799776869634579107788954287691006419159092289313925579700353701540444635757164956083085947465859214811256026781804254268727347114332975833887754779978635159951859801873368419133042170323921286462580161258573586180024500450894595911531066941907910006197351047832539720441193003784019426081482568484416498307461161726847236432548045194836606747968318201327122466786672192839473805916123571787044938066242931705175247853487784990951874114327658002582316215112146055358888092474330154566822813734677489438578065029615078974775342499876306085007571879606276960035782468338305561612475542408651985958879838653615154276485534741191195705437845151884467417996090835045359122929756863803424655224887360203480253530821264285346854022863268332831663810721125808815457608277482966427677552786292715314518061456027816313152783116283566934018321950101603656183842836182923114496135320836491823946949551821781495097389685689112045021402636826588790510335599635005542904277067793335354706626707152146423435251897939031457529446838065154945344526497944335450614049335589573987791052243399371208343816793027478251826650763329217423214788703649180833848439538142211062788571202037323907607181049973552959279808950751771912581425859699336051477490300812531999656590453209421012551636509957534682670285470848022600094922556119721611151387462715370459988412535328345337719729093441620944760054690218170350097103065814410478034843257900221440275520223413859260312807655379645403722110398311213440756874104715858387027394486617195429177082931526151471017679720185791946592298003768333104663324907290083454022325056116693892826976881717980915752153133948206725659090325625775090207597694734686245314715612778024350343976264768705863733479328631194233469156538572186975968413126072308302215491926406898877403541309185451166461430300671845229835634612236317377153021060011131261334667736013032437913762881334291890540895758042283243540085042959849553646212900766827786911189106903858415904968440234632382599105985992624040334396365270559764716737255617219138166340311412391332772663710091353362330636262619155522481225964546792794461686689275228188333820250703520938469672092827073447160827382640949317096514374065541470657839022845234662166243300190992222515282271876457013270238654345878356807088684271188299617731619220231131076270145305302276370307723002448957151837038450612848829931829207150131669321347447963807448524028540710250728137120669345428547354643806534853173650389573401320819245975458155023453951856565051602090959137174272099784519431631247205169898819180433713387559117878994049073090599828788812356579175129341648726253088784964396850170529597635731833396862797272506001509106862342339998171450435450345930341233740046620519271704726395492796390729901486956194234627589949370957630257872006270189161462127569264004245579500771129294700367506414441584673389508440322938728358327573198327641542386723037589238486089879614968308340285849718235917380344576748023078768810888382130364370925039072946453038047664904312140901549953758779967558541594162322644562873712840473612710649792761161247097322728649994821118130753119234615104132447189533922640839170067920274473440516663529946273301837545086716415180691619424616501798481697213081303591170780024119795220238547225595958488273222750657196869707101552619489247227577080531329690276975532576084864332970528813224542762582324554906921744510265076487215019451289999622096126820341910498512982361018936393992414185558950455458942687275072651522658889361332059683901121892220567725928956126450317516089170839203031156155553409492100829006234755810581822037752558796390704408811269691715682369549318742033803209228259601811264465540927297200653917921108210299954947470218818943158178889347039470553888107920145729223376593766485407719379107994872119003851339823184778417722789287193411582126071339915672486495206843166129804792763810372203417454407396685131842541253221287125919026007593680399120459888242929462025153866315262637104323624235831936892603254582208319814341152360936469335583254426790884145323954336503509198407758397524723610338401744952743640806306125333526710968909634911833979429785341955326454707398772914203765884426881335407263674247710185686684741635906572960129181182142512207493808446525549936529174271949396531177032445787711959320941374736255713935538327923740697507988489372727861106498735081628871385861552078114144598136217544986160972150274159443067166437285551736740374858114561172668514499290583433496953280904284737914298300818122429533402524363671441357983808487643315503036617394281670790924121430194806583638427588262431654423722774711579144633252851895952288169034876369075892991802947404926356804322321377561399496959248699668095846842445917391795184183720361253345250111214624127921580500562119845094753883382161203041456199790351949372925519537706903720963449682878904293342852321490791763752971061690359063517637349978065674269869881551528828490693370331375334007721258842407540761216411094762421508800767260854275858852579377509879194363126836955390180550305856907223476876737024393862513266192736983546323751062234148920672008285919400592596224432437784569858925259199864791632095244317812208563819563776148198753231853432932286472664577935172785389661586565411143878340573661732946687009828072693814673539919265630344634950506395563796247530697458345288301736368975610685614769189309243448078764788198836211059656067276628689606547908324644797018509179320238696454288667154818511486364901996705534084334270101247238994829015625204032369493391079056967643117671077016876773959556706103120263269388789230427367586333699017249841104110096506266736312304851023587709525110774849242905685087695826811434948239717269804399858012743182691226198885844001027304324818024219089481577243134412820443406145600602871486128431019237362836668760420476029531029834050132103279156099006327299092218390108508114461715225915121456328681883860442646116601064859091607070330388480884615529668271622362244882932782248938764495539677868625467873301139785485485326268165059112935203022091010130614632486035045239032806159504859613373253455714261289293586201565386508400849113800420636243236243412349282692215438116316380823098682528322350633965982306449278767041287192230147154376795363752463074600438230151235175300810148158065229458754771509201334202028049625680304958239321388799012044836279093235756392708059776681818640909801812161388394677788878047100923179087323355012997762437996082009279876847721854779272061347826307061763178363906671034068018466700570286635016433912587443422821600248367921862040969710976917807570367381078395217918683908314069689134520882157630718783606479891901246781987052258882941937664990323011403845985078265017976083498943222264156245236409530963467176016216502555346079524028841535365328885289245685033908690305510295805221667609286459869262148481453361865027945312715472356236900077183750492365107977559691465465876959028090832996300569527869375335520464661958212689247920778188085110714282219985203706028854696189253455312443875685656970665734967078461550458843387803080822032232482100089165517134606847459377832071429478996280201347033102274100286115775864398412788961913056728483178065036044090785442170392103413425910081416287771239268817092123362155508326891740742846673707212775409216139857057981489498369686255603075814941411658776239160961685730789011318159943455988177299134947742024322097024406033446677191387868027666313866568391945922452980086187030068154108383765970282910985258887475443300461630741649867001304616909712215667515765815418001927653567163093023227476527773354715343134881272628020741479457881964695290394825187634050369565708488971449807357155105878922783144464139887162644329073367045649110946557581227731155797438452849315730815213345527546133917623295056142862832702002949357757518908396933172055206072128381115363644602118502733292247374847973415948564907212960227211217092994920377482875024036668664874088989647261763466675149490846132593425921079608330653944034600699202921018814692789032137488569433027609738758523234068877294074624986113049770210850034739319156586708092306949058199214779103317312770662505454706921477822906946064696660594823407777842624408430830795942554175708844118754975206469076920203316814799857468495627640678451100743726027485915954999978506758073467328132759318378765625070518513947807006734394920779994292682081612526630077557539428396114006668612997752340119699394059604206854515322538516772111464494505353494698841186717829001937407499647366145354806949903744376367156514322440175685367731367855948826495677798255285935811434648914843176170380324122374716229440992032881088702388471377925768426163369817421310081786581163882379044441989150377299065156356179555471322982379368468877269141100532319804261813671762147139694854169732592075850589564903622764450612635737627624684754941731660399715015513577498658442646036638355439218433671318484609261730508657265241155319235873771610345619220346946432994141215520784826880030484675620822343443505530161228092883672410362948973469934474812353044498760096428881326207661627094261150497062847734421177871665561542845147183081754577997021634242657432064259203009933199625448447497177550945296244825796507873304750773528283622291254614209467019555577790985684302037655300078170216599865106149012732426880736995296092741184595786041023250944183288939334316604955865123767103545852901129935167572560065348619056893064931729036657892137605583851890450069816202171081229953670793448155628959001974289537633914462430621459443300518646016880346935301203889002554995471402811577557680178014936691545656916648389313325301008782997669847728813061719309001040873138435715436123143420785666357993496709944427467858344678841568437904586696257395515500733007828424324801196931472079191698739771869436883974413916010149288207445046121804647954718330396083022786306277321000853773784477273963174454636679899723297243847598208822202115703822255887906224852271490331935808768569648494460158942665663538718707795691391721862537823663532021685461924657714706815493134455221664627858333842392074907956998418176547969260724257891305431190604559648357070273728170176218955433002306972044917629480448012513431193554405868816401551467235745353941558514908500989677630520701037192278854732647557184752510481562247934622398704340909910001144872918052075737958061547908715054297006369637913344892152946417289997933198676988372253948177084965719300973983882039317818204158774530257405597702640017110526072931430183983768141491871304509145386600750864874322646404441270124557702185593767103899551558053487706522139781802828881908980173277427621812078679892803183968037228563344549503854172429416556714946711194705695426459508063509518019968207090295866832902341301794760099251908545860503498230194208044787853392704846581944428597508228356996508273712183088332915914703154866277532361887032668166564471789972350198985964600749942106311558777414355711054503986796806335705396899004394838567816590248956618045506381485070293518251980047597043565526746311586074890879667102491578863882452547900149266982904145011096327117458299072922249462117596258720399469877338203139319260429331352156256107012269225316239268467158606225970429957188745682740599879750481936235550466241250914984165947271780471571290110443733766468094549890838580834561778916800008796345225240024426979576673262601380313973868383353455710233627970970247701533701480327637097625248929391208844013991457741506456487833155710976464945160184190391324393698372981768283804385358748628353154693856640425366360204633462553087328038840964747873099833391179993142129403004576629677931781403974309276863901109960546291974368445265522614835952871600706811079988812839481612327539850812066893862983397376020710840446949434252271255713968390330223160739193642966175123166854414791139486825299961108372470073410773116592037417010682638361611269851285922063601875694268702292360324829578158420188050704968203344277014627412492867913289815204418918035835141054205588373301424804737981386116135156093684145967220432333033247335272951300737369286126411057905468700984900105763126931711090301304208823722752464229340031681169087478442096610335587768728027193515205034850845095058959778097561510409898517422302052776581784546958726976929251060719042454264160348516936310215627258908006948486488581812717850042118643534010496743498686573814654465733859551541884379985473753555465008395762259880275905177031322810092808535853476995443380914853301438744552366563219917641198250941172001763939174000516178731348424592317650439531244380388049298581702171930979021156981768811666064888752869709917306706895902233239242560117336688300916636749922817221729566821209273802274718590199809133440826062844111825248537522628688338169049015489156189607762520371728979145441478692722951287674953243719770049016593468522040815646594066460429860778367318201263388510279379027592744764847645462096195315859255371135607165439069002324672255781489301804432231684952593803119112383959641778739422816772203844058282498642680634919975127984900077575250986363278181608987794179629891320376972363945975689749865206614760606502170983527612451884442603489342174583505105739784150895734405875023220052765407948939711954539443714410915790706688765016942856627027408189689758440118126578672395704960556577769474764526068503419137934574288621978547632414218344293576548111603778537554765892531094429297543148340935678827564846206524699130118184865782237513524707260901114803762959057224637603253964801680571069145353762278635521291800788872327333882062389591501974130642292872006063320844176577836751580950523045804660372309516384941222887513797096149804285266885312912042774270025171938091744282384688775245265099116234265548576192742730675276891354884910934729142442916995415928554146241247357893809459126926789089980854124572985616846874469863405878337698760592879405910000636053634359816604061182948906556510847848706020328130392133780854642592990933643077220993266136516561240172555807684520974976727866081573378742802647640624293037791716300770644500303633702866443291080370667430113037770843758532381720029917022231494590788271860476909425582599905751925214182250649199867213355276189935041888053152450105755216486308698315831778909899630430177345436158788922881763852215731278111124645156790539884632164749995419180748628341955717648861306500820259356175826025403049147418334231851524165465931959766215319991263419390746811640843390808485111364047373281363691083936101819095882428191675773695625714293752350655162684495725002783887825968814450877920884380349630931596071508884653452810914227858324598926839384667328927353555754990511758051880524302559736708215287047724676140995706701334907102618201695595223738827315313268149595208437760968448597584013761527208721111270420476942598707415400500319103933029170058903703980920704370083092240338196500560497887488452946696886698173046543201972383922689226376165571228243879597529143983379738976103785889325420536678560769913421233823788627254778874417537494756991398045648296583031062762217676247357339538172488633160966037081318925379305495116512844293692749839949950394988911238661269196963053577482278038707669162723992791265284047903897976964719425701511442627847590969658635724652313198446643231324664417829327574914635084296896832747508392147133793673538528651704269489667463953100735931954127481049434909942153192848823026096339581732248257549292676720563567167405676285227777603965142994761418813522058924258942855695615773705675698422192848673654029411748191112431927719880465798162715626137293628701385775163188281344983379485195194042483170791521302474412285864050208270445374990120055242125288791688716160592095611800962808260124140672379128844925740382158950056442999065401296589274846193223543138374231783305595151872686347957835147011478493857035239806519926579078147379874723423495673432155708955713269502705380267969798580598426393708128994172116853016393777474822241158199687019070737189049735272357703229263700369846047473459607778588425720146160590100681947130299964550007062055385108625176050998611512013177644012906097774212882430975854234961616614758921881038354001058528637442668641266231731705941478799956597958484068323922438620734405518691319476284756981051855489763725161989136219638974825361207878083386270857882897126596248089224631318820434270568457358617743677893885314438811878814191278458057913068434791445851956209401317033721520628987671353490570900166142064867171384105679531737638367336886877547461445217113486461945792879119090632292808196584410461768886133387211108914319857369381250340664661716970353054551342748949609998738965289069192180666548137968128695651336244497514945654500963859067419339882366891442017072446268349251256545419216335810439231402647705433468211330728430151402029860488249316394392089224487905294953583112924809438003682207981193937141843987790472064984632143526842704207926908416498417812831766140148780347760178838630719274248719245796357493115625359905592193383239128514370448680321767366894425580482472499598350580862038263643111855930073568685667225727303493227964471287805918936176327873083664136175095784673665554879185506232905921792043394331537797704408223520226169679165925097480106267231566917669555251832722324905387531838705882846409337081255487604821373435510774356981669592846000462823344043125014815252404470037682904858078126388567884641056221286602932522102910258348906516860599512570660373899861619770993321120333890849303998615538484343130848737805800053820100051329307054487098991092183697023278735486952782218918062394112563141427035888224446028365456290345656104676208497438937017324520419266719184444190540227145345404555075688818585938476589850766160160797899124841590622532725830350560173858303622600881206464119620576528488436665506218539905305461339314672164045159846174413773569230378974695423763910195008015899999528067465672369373290093490172388984167111388839866945982572430720091429546577953235281262665456801445170755732519056820236468173744688496582613600846628558617127105657369252342053723361660858689629449093801914562165000682521765411265528697787294447915917273041734303431922304745722074632525926313608000408500723385783908675290368487226995467919116283681235179468540456350640556677398421103172843500230750588498693770710566165016553467029002418314723512073333345506692365117772075509346847028737452558151547578845415708451983968515549311597086211041708707580303839963360303723244777246056055108501249857483986834098717451144754628251785597484064759844577159101070156051378534744952626437461918383501856891657221543760817884858795535008882465169898908029013749277434332698281117607737551825093762123789318103656281944351298636124712513190359059655700983796441376521153308531425778661532388525406917213513206831952565417349490895048936951843284284990440665815164994007154413364039015840841888436490670679065524186707194935194111933042586976708229312893142491457447796851463035109413304351771190458423229340483046433808690654041022081418008320861186181071923429794012678830077664017618478974960700408899809416274244775287034303929424880544722221779921964241251826474163855971574013044188259820442305738892250264844653647641225425197831712362072643041056438691379093018018250800057344675288553668865095132251459377641620164138157766584834687004242444818289996808533476639025053631416678851412738792171296934497912634759238979540272977409956624670494982347840648228086461128528242628839050323888772519279918951298771442636802529644360773554380008507415493784787414493648534043038267972961039178516104104137645171694684215150688251175376083114329063596373613020084556380059942907839811097511467632414714601847482106751603174935467072795608091693019317240090073378422184312292246743452657479463486400718421049302726860166738665024518810075884419655140439771580519151550052892174333354488042954867741958222201681459390203093864774456379427839274765947532990760400640863820450297162292780277811315756128410980613873231433063901619958155430923659198009257962956782835056758299645177725685333084108757817435152271233725230843346873699713853178772466040853211203861855120886196050736367906371076809462399684241348658521011565738392852381444670740636604793480027574801884872008773179340138230239902463060024419848913072911625913103662827402537559530569887023869276293487688628541227771327628803372484881283350193689386337085639338345711128958938319698229986356102520771929073755935547918665435697808429875463003983930693206892209764756103522818130486943547096765164340280349717913736856247521059605079337583422035663812068517680472623403963191149231641709649752899278794044048904407856354303664109333948171759954482840578222489934098708246800459145674242298676601213516869370461108525803429086045094440293088235159993453612945717499971300003851047942187381962151967724318622370569145760538142803887358164483077121174744358960327652414381958166810540339161236770360218179067778157421661789006687060554767668522153192385209254980366380982867298468471059614427627405388205263573347923714919136839986572935228493874854176490028433505537633931862968583396688183897098174172766942122279195874804870844218666161956696202554041995995112976397364337324983803835042092561803057646835522603767761851485509948886422856354491477779887974374516423238754383213822940290147824301135856382713627948039660299370887128835883874955154143090063807452919338683246482142899156631849616690635195305122494285860726364038236103197796134099517008306964020830961901461357460053426327083723724689788052605722935981037536476554910839565758259904248988654897432012999452393270160698932488346121807697608192608170281471968390401609486588456399950702211727572058714445602753209286638962193587896699918084695617820913457217571325100708353414622275578722688482320878909007948247496785730327191344808276634697741590793559189893295842016146066039070808279265648259397010731754272652583315338203092963569931297215888036470769581194774262310751940325795699397617197249983799838596160187601259713056363629245791635200435576880501269595636390467059896130607569067948154295539973632387113961949019183972417366024038136088948969410783661967559411774364267495048458152786037545861453933355611417473568863677106598848303086253502351339405971436078845227749178727690519610356901185137681003710167115953660594576640592767963022995863161040661372342138027705542910891414370327569500638494270926628140611125412144639091807580675978822051915536820861937558236330064450328377535758443969714409780357271690127433780208622020568750186173944379977897155304629666032726916456820740914482527240942272006071499971674497583561860487615138651108202015757691539157819430892896309862748675332655787813675099897912969103766202263203050618128633336225321621770829090580060679297364837016812076355861967103456684688172586832424110037910800865594149807409595465916964760808612426386501254693413335271587015287201944381481928552656873427366382052038516196920073324892328833730327638550272118726769782199968038881985291636208152145115212702435925740814548374590389091163049281861269058178681142403699667653788466656724243417436849866478706344868933854066772143742762688406437988962470167559738483108183074181521669744393798077653245427542709628499575269979812592450767155971331508475275478931634411235348270221073815378568337417561350939036030452706987106262957613359016042820907269080361694891434120910568530218764966779851012496630432820682092597046718169154717602608776229282745822744413189467007689175188669742174054736833919781756055464502588482580155646930544945337027661206493101158646337086391287817663167567123931417064597329006307527388468375564822765565738655175080933568093223281514259156484915526587122448983682203863385308279513081927886665198678608955426575520052419793536917208101052971858533452682936113667567007112363505683306017995263313754206007809024816524406886830024070935015261965513735635984716969767417559207811684465206137868180471117411425413482227531217749600403154973984260730812218090879391895910297048526222009679684615705412982162989714152795412452683903808418689580949528452401734178658814568992341053542051809207813277156875025797968863096781648176319431834374568141910829261274937383983578342844502327682973342945995931478458318849874631427868646111302520267372564366496843072948570199670591461903635190173346494851113666030216451217007650925061865324662719791566826548089004547148208753320817997099672629938535349085316486346910952505554069002522038598490246035461281864308666001031705942844609382059523290148087545139121306175962592804644506579475453048830736339724716837954437123348928974933311455500793985939636205503370043715605638303707787952163204459274770507112128163571633850804952108615463880921667288591039623478557677035352869958908170900953119378437438172942075693656484119798798950409921068025083276283522591302968666234903881159406306037298420696951007947365792133400123199777876406981713078282980817885360621589504993292203580620318145829726259129202114624053954629360647935811489701379953075488159300234151957613587332151114380692219799325445459110480395005474364181506923974900921330300825028222372894089070202134624391222862567523836043819111768853647628396186817668237471102747636558022243382845005877351888354430585962433642392165451400647445842606485116430611929967280875868698205173615414379277793948776657703034821771933522289678064861271532860437740682531863853739252104383781668199059935802178885271875113270394980547667249126844697255482851640049143380783165086470459085349679242446323250734167377805890150999893198040367867321264496230445134678386782436746576049021563408684472847755375758045185135781026217800139530801023535143443529306588621413944767570578923353605828212955753914070329209934226046371408785213646380471015312170669055031454314280431138592694604234485111949359574923486701673664305474718879426448785893296055322340327131637140836630286799012379197756945097626198091523531259775814915042375809396937079931146991789685642756821516318882161727316121295058598738922038122763459753299659869412028138020111038900234166203220187055456632186073481428511905373859515165199494020936976807700288993185923709553345273291031356590283644959928628756209240258815064148518070934061548735804153052639747442923246235387516114219417268125757384305911218578150227688038468000260225328601319027064417491236471781414193654883034571088556652822003253682372946556753939325454887378859763563230359014964534213323352384939097281521836710083462867308552427750216547501884476843836344590253132166510060156768612701964222164903074450719691779499247555952242143631489637485348826817780293261244979918634178326592382995984142310740684923911411884944160664310672260592443866769651114714063352889064354052646976346359941640693122468205352893168463316282965254689676025324398386445590350766251374451647153229518770651000105909837616116768981869750031347764547107574854011179726106579498703637816783650989487447914855057671350973037925303503555241017196229636682387662298637148798649657007470948823411149411390729623480370195656505290572117467772332155166790861050479996965311049850748963083375606152726458646766457734023970065509754389232662760233204910248313213270396517671128213431061714443157943879273356405571221738809448158401369670988669831975776058544631080123137701785027413628638225512677973109400058274634324476550580684397861099964755831911007722714359172513262643752058364127220783391718186617505985008957616456028605711804823581071755252159595576195377906695700974782125681069651139567634925515984013113964872856659239438389480038943751672459688432933533579620573404884707711608205693906785723824617868003289170790516943205685452106042059517971582656881092191868397706251625910594004007033904211615212750680584393270982619467168699954289719877234580208194586947166527229627952581750166934573916686747219984817181367497235151911305132739082670118530792794963291435267292884920999342969157921626375033613541419302995150592651465639481740701441778805388431770683929139324498461937299485611771036111398597295632289073391295736228131735898492756841855353467748275645334129445975511285617681260448777702426338642329144556816946451496470652856324256634756501027919472109097672698483016775641906556686289642656552742922855533234931811268104757353779091461762440256619929571084063451964438472427811859576407676963564339011703401498814459272406936382669656063317109754805547424025460734983858831873517072346375859435347151488020813152978393899135512668623419420515729053096700544637584814172586916774805686209340489906659437659552239013806680877916584800507370105477680259791459867525487424604791304928569352807274956214258606357922175304082449068812219947279364399159603146201689018713423773989445953218190586162616996923609125366239721357374183712915505239607781832287702345973224461748268278804013859632648333317103663019484317395359390959439850843983745688639865554497210827123873133143152175741489908934138036516798696609123156753275283767776085684504515167352617252073216987411695497502127625325358864565830040328019949705015462293966157882155189494106466428362006773918801440991086530321014785997969791155134781746834240972289492631570741860676731850394380212618803012662898657871229727887233906401030673481603526779732538729134629176157142783775047558350908925586159010854070010839560212270487770457601731697055971088629212358301950777995806980966793217465912435191291928028345092508258261627374594424980592388616171823196428251033716227548385515016148833833898551453819397429404259271163457724526379093726687249324339465007323977342368277526448497788129976885659662184782720646813805712874144787273436597257961449310578033525690227898045037907447448544645865840248108491427191308756074050282114524787188228566968114742508046094456088293377897760482170402459727449252516509339270235023366336779874852997080707324850147955585067816145033716095056134063579580964409892871907533785258126247309576151486049174973168860024231440783375195910584864227777769510565964770490062342940579212899111734906605546003708260622000848588050167122779244068794377409667953736416294571855327458058009197809374565228262776654192161205251502221615979041677259621492092051889782238716588665451968866753089107424841150149421546505544304066241718532977489891952253597720680455217059993180239210516882105880359349953044284211001863135041536390507705423097290390130284880942414294860642359576120889799622371180210194135436945076143875837647767155875248028983886733639288664707556290110730468166223867503943028811385136476397712255421281578683665733832928587922359188965552966989278321927840466403126799626290455330989358911817301858658984343385722526272572516190542793177812406920947169249323871752376359300071889582869518745589434125057294639372810620035894411530852313584514167745440919798089858843513149125656225207833707292276272095947248699485235975087080131074282191823400476949334907497511845577025849070096652677477071396917745359505688224986457300299767030974251689314924979810489976746656948140060340438521853649871440520020284890534650548845635936274932469417062975254991621129708054220016691806388867698098372586978760158280855448781851006779982482703542667687878544582611231736622004609616694172865135807320655332701177209026777178031322844733552033538010494270798948955104331572765640680378944559382055391469470003670480346924564411422405952717084056821984963405940638723214644673983973888568032921767225716829330775588914402910969783948865133007413601006991325330483477419556012813365302835130802324455582652470466189462129438913822654389190527289464064438441749573078028965605776185497459795481314567903757428961723413799776996487578268448609455002330923343489112343364770287338194907457266012950304634691788462415010101568644453340372503956308877684951921122283385229148777401870415992548809233544065790355117220637764457715123108472924274621246261648798879826613322729837309536428972924231481299619858466333286356265345161366575758745643779631964109541055731987545562152046924788102462330296073616673788519638245595840921505870691287227720126859225913687232311049128615451246665860670653104338864895710719973872599673844459354737572857720202142440409409612150677726942850192252404475933624409996440741017730467037436627389716940377659342740398949935339385504045537694016380609846870074646037338629293019419528372728582843728510373335699901734124578288164144809458731410756538409050887052053701290599288067563454188668545171525658966758551786518574957368387855928700226430788374886398926572167542696134421994655742913362690671200378700183837330186245135292149618022952329143798777934677955395903502696591951572394109904136714217117199511845417414336740055832306045174228565551517580079405161104573399229037517874751101570577320746094749877116219523408651753023602202822056748955194433977918532183633050151325198969282617174637888185809546477187485461584458057857592192302630084105898660390432948674212157334383625556483125921078808700843296329590783512164460098544537312930474142214034995353218869017471315538276296301992974703915936815220729180777421735309953136194454690279445020415920689598627905636955036124940954131596613795411359616099806382772964367052022800475175828465168107751677983047676991658257557867164960463951404907364933224810551112714276973025146908466894252754748019970887637106785470295337339488749752582039804806929887714009339240968392668006034755398409021187093252111369844659126360124660095898497938090757746433210359134980701679622021580669476514092466417551206195895097334575429000745459665343389773957584173342693563546809544435548951850679279322068543296623134546952757801883761116060804161332178639861728388496659372717419124236514365053443486194296784269257693327357138110262184758815769451544334896723199743821355582029738372193623664562334673277835776275299732630434614000249350951852216879355355180252835906926990496324284046933868973661730324755301873879636757538005075002449292913751465332456111644300510329852614510168246101963221441447107705605336779285173816523478139786376321259014441877729746784031607361927225862275732154380132027920824740685024467206896624586067893957455036757672431224149450746456744493157811375783630719773785163731565880512839727751489284479647786806703596132039188727686608657156798239426991852974931655454857057179234538092169199755007173042993773778274622110166866298953998218386569362873415645086991820900565098961087736291232002941068259640516540125924436743534061006191069120877421807050096433495405185823926998026366927637293127191919836083920240361475032656619852874872499596115454621682893496586590322875617123822424149152732478918678437607878292276677890777878207428658975806666814049704124589323436401057913128848795992518299279316034258943088001725369879798599360677046307891060656473501850331690743038270472356804288773156574224953431209171466164635232213107992458542712050483452065804108430064008850191285272231207528935438469352979722667154164238668300854586310785181234080582592009710609585649943437313054791183921192732866477800102934885207836350920080630836147596254549396163400738706245476683269673891314296833052092057594013568207578743556828504104699019393678149346452294135838089807626456206519969424770394468350947900839578902127369401888811460176632920830815729753260390275593905464105176491969097519391974204502214695358891840894152244758822139100973600789170096820214186031873226877816737153671338392055290534734283499133071246915352445188872873301271826154382906651917183003298784775216466421129767260731352322212691414339254234199334951649240464919517579099483617732192257960597909919807568713210662865720791972800833583445353971065554181408811259790437626187934750332841155191747702266033017836699130844632661698751835990738295448029967662350461085832809854983391471012472641841568143165892321953716474073936448844326639968081548555084159074569502507986865581591068794594160392395692219770054810153593466083266028372893653929386577768915124183116785951907959961184704167076584793975033786597796959162380909071637430680488255283090050136527594495439248304224450910109962410568056069878280738138362313389031555869234149437465735849584006354909936071731991748500725857115782904664284833034172562086719273802042179847857390875796836535757726124503089763319547808108034432875534677714769786351369572218752077411452341659531833933121406544042994510340160685760477344529899226494466705358271156550282995611730524450254765916219458717548347159898291601373464377901889056981532049277104868011715626981800572980109279967697390398451828742147603736205736414208239254464173630268454424125442279401391752936052926519437394850821843207648951077075457583185958656643626106379671697170069519929470874851210916136530236888393404323529447861889180715278567343250032172729578352287810267042061276108489604452571260023365869578681677891625924391570198729829759929620514997212961000024403559276555889752678185577928173498933899787425607673716589329968842167952000011709806355498121772839791189787121605839741213983486742915410480677457209740930702559712845290586096697848645280239910745280990053273494393580171701652359637481599366008077760671699154076001365071544464003431898312715103617202421322850298410983452981656352163044732149371421090098682635265829404382208594409529847224265349820639660220896652620701651747133620778462778331786056035103046147616686892613520786934844270728757163007947873095606386598125871962364814245114364989599864548414802430456456554132047716878031298946284963206314136650852028391455856819467619208941532937662478250931114961522649128367411941044206486165173444501163689471171894574765175032182841882605753608514160427932779652001496307405519845711242833124112583117614666259039709094366861291339898691728327151223109727507119955767745590656544817650955235074851178624442896963074509837368017086880552380254475453521657548130908362241234966795877551975933172966962396260151924492187562822133444400713244733379502715827897435554738626243434000715161307082086296335299380992359581180705865053748324005649604753987519123810320179220920317054447417809210334921424960354024867956119723850664000114615187317536131965804917023788169074229954149872557643347680219236874417080511712416067667990487840283743414390822070970877422941359599644710285353326319494954943043790132218099125984689698423597274715550077790469614565910340587442105393788824288677428816615013343191608754387792983242458023969982989991960525795146551316026101470871425347878331087730391865246730638480419439555028659625913200110246267205069295646797253151588123664453300647905569204900353077736891678719945915839243003701575806247606871784271147410212418327259647064228688156152717435300723043608275585657032370295229617630306879566302161043091822362198485368709294401529992843711612938771304125623396550383837618140297972960587474906174136637327278040353160649898625340631131443702846414245350090745146725301551203980073346444807423436832167321593860594209298645119774068425055226548593806272939583742698663808869357888729642069159597406734992865266606807289161944751906326757591275133836258387723425181173348139328995463858505876380395642482963661250643651702776243307423641061895353495729599063296834081459676449257164305791572925565047053374971579618755286118431741346560397339731736551154514591431687589612221942599557495518576040643259479623141995217089477799863927095217336800418964052053904590706028478808818770974353565896502701583670644779866567610332738204897125277825405372543027029405007917641764413551654606803614732997110469893746803390276631167366433303662203542660453759077607479905524531073233660117539119526794181884099072050494968555837954535888607785712032603170247717179799685119979549072356300069576549229971332332357613713787633734559504840474092634738844398248060581951534666734672035899825117756044307819717254474521851005362737990186522169600562676201570560571111486577745256175084110559782628254820589675136947551275734847175914377914441131418209119477355697499817599175694732936389455506436441540207703090877490356798336973795355922451312531610864395550193573549338129138128664729606034653463775576309013255860673893866607245138501082417387530247828118633978488269070637596373103785377844685652815162128092901858116171516771069841619824944447474311387679494641930739438028272114973116766123768971608945613646669556809710606974439921990268992175068608581779228124752271413453979607771278206304955948758278788693422624791497329959072039465380972476789468066880667806507219761116720829608634776448270715243700078650128629658213963720900545392119928060971445018464409041930932285397109696290389799051455504932454783046705703511811860898256677878944405900500174996233905100372849902122348451644355066282788539861973602265325075148683423478157314986804364923295228145025179396160833035856786236506144873619205569635720539084122210996027354797385955606373401689272965351598292157976552828729121901905285049840308931482811582997031513474520984923360671775570195261624184656074406750348671374780073814793245876706566718863271397867760501412341784438352818080576030519155270254931965808524027509638998307974667541777984123237633912386724659747478799960826074306827037910824196950969680104603516957742550281392017985789997238491504762472955825351495528028270582103685920959635366490028965619914887943660307906933038504488389835429217878660447866021161675681822666785329681892079499063546367959614594295684183334297197716645108247185938451009846955977481238842910785751881059699389903330997887677043588348046439503350982706832810008705207315473349634517143841239756528186336273668895212739564778548391324416564030015006255965513709780508795549581619367013031720916291320468003382750627913036305098632606184355213720141495672890714317571680204628725607114057361381543835782770522255326954515518837455153359214222535451483877036119207741747032930958240119868675936582668342821939333171855574148181682669860895687101519776830905840172002969219364373920184909497786907658942245848859497265244408455715808890514667088686960938123271093859359628690578585499294959093864620583704958359695089829872733393611416581654663500385106208940611578194851821627548103849130139199559893950097590639531419178788705531162634345252900075652700757525482892558617549819081807102546742043546579155622987692882979729376821309606829669995397584939466131598639402907418408469743843499505233614678956272233352546560579312950517536530429442465700598831151994749054235257674976930934403968675714269890091897808814187786032179341680294251817167496169007983527166184370533856919732175209168408454768264379003918040872501003470578377615380563834507862024591737099544770968287260150332522289558049332719076234563489497056694702246327222870159038363822408300944445391635298882782019558260863435528126835753114083695067961003712743427400563108922280066269551034050933966297810078469766938326724840386971344763756688125347455231104440876746894499237274303543024571700608767248171807879198108155456264408178400562233050989235146460495536006812289007796535430034412249119840344270272731729475120315002565761276999393659773372396158711603231561951710537979611053591869260567064132954998382501206692427540879542801816873025211877568108439492168792152976423225805151635589107749475143614072979696803056259339487110351470425402248684361677094771629154111664362944305492669029622826362026408324687871103302989731888329427367269690525002135157310432534570535830270391006396186575064230386982298509032599619708441321428315963416291323713336391693152204724686386777137688172723192980400400630773928113002889526351094528998063060990587367084043373398092106668338632589919001352777867924257840737049722486228044014579842408734571397993254922423130104351118891399763668759373249269958615822546429398146089141308255242161973210174980375597555188686929403533984411078617294609157192234693925955490013243845580361515766594398470539282390519799099641419092555951298357197221035468987569443358261227820369277149551490642847684471575266878652199539488740182459762896272371569531998130391663900246905964914765877893339425850271207562606139060259341412157447424371504207823744077664073374531640123695976923453770381910504136188183373566404118214460295909505485485174140711785245069123946747808511706579247286862703458169040950742327684403301750334705803190042142224177713915307691327087642964483334308438848816129051380599595263901572585654675643096494636328923419107836528439973957586188329920884367350602816220647606041645822347379839455919172769863898245919452045911440622559604160853121854567126254232975628701591047846888049425469806703228705347893525789482807400709320741506445951792893852940301182290465135792759951787540517901840066724762944273870539213094201932781960238726161330345489654738978404637622222806059956745343914130392643759050575950222995463465325333662025815169682786801602395617530768944655315733908799095846990861123119648439932487211311134967598968478986215087549674864353795303903906475548378523655890014518368839482665087884706283232566326297919607126780313599369162315956343565742150046416817796410205478089843927594100946374852825794484127299517678571046662162296057045685085385691538559772614210248981672590950340736104039759721617621084968401802727534252240484343105962877126492793957334633925944822702873762257464221940423260862895990766951088409116292982420449265258559476755051958625865688586130221351532517706417256957458211298578125056620109684353533117770679256098592242105257331100330598369531476860972407805393723565210132930221932776412482175556465030436154110920065650262728365739661818131715936709232203957703443036980560556606008649202089118826723323390105439245709804294597217287287526917503624661264723684403713484276349231817404462912831314693311818743529639008666584297086977939189994861002235576230471635369678283708114911983898117185044488782994313880688300344789203175722546167834695838796194620811341258505559895880675950152246054369699393503152070260695814513271614543903212961421212681441282750370844228718921806597823634751871419659117900641716248790499529462507904471840946274329697948454531367980779772951456741683150774941947052422502745270351255683766058285815454516649451585626350593855470550217482389070504617955744071883952468553537898544569105548976517246785819666773895450755273109275599983539766531754058689073649353392270300956988149091306374506068405807846812387903919589654106354969828644901987335073330347336154131530985219427510872245999634556441582572562509540432662640701260270369119273290603522129820746764935900896465036917215941902411354096665797184730986768038665423794456614908765810966401675846031649030038008462212453101177379651353074860977015615225431790064104998052066152438869995322774885702849096582591438094808760530281060973425448531692472764779176173422335603570075612648315085965538778399521458751196693891916527607472644030183116142472424235410934667407942460113196963800726055670999342781210880762377087842666605668381888777360314781296759873476638724232541539519938174427295473183737027127127253859161519306556474092375208182242552460456627230051048583274009046127754738368894720349946268358897868290983975095990487547346563071499132281890722272816590757840538664719992294128543651096387881217055730224514664847961290104052577394047096783127358567287306400450041849289293296496000447735482390007553623217288181142024891029382459716914259689136705520188954487322632657033414968327577721852101437575723226456107401069400668439480333783597610864144355827451899502951737183032746661526026640156601432494341618551177173440351302530271578018408525443542525034878897832730051588996119546467115669120844435896611559287091341356928870469509727437232315139218989946312479541731505738883879584910784903313290789958483933954530538200740437316150101429303378946409141631990542473652036100720333538300225789149382072599564100591168851339122276510662422263232414218254660972601303795924557768091393096436679875437272926375146020513376274841779561689058961420709353008911772802331278750168136425076394993589445139969162097109646054332766648529165765875207627015830540763389923353951261012031121579886110355360293550721993329720232775187585307079028805499907787057671341323648869076332904397053972436754747247360046784160209710800971022780804881434414050598806507771821632906859659274232354339589009849567301667155658838374031667476530690906207927405245573163081837391290554943771379343478708013057479707054201161110485529343724259090257698818125994419848551565837958161746436293904936712942113963410860863017129351034966062852717867830136008387015792458816282003910948596431192820951161212557374006832257524768904442141552488687312105613446608962320224450622060764359957847915384193493296000728017727653888616194465343982191041378273131791960211860101763864960828816868116045743122995072866253339452697549897687747754146459362955690502198725288281716110617201959936630414733732855642201012994194103224084876333449541294207695579458544744192382848809727490277689038846949199599935216363913566523193356211107207382550329379392223724213013484956255477488724641527218424770328617095184247667848738926961777565665975619405539002603701511393029670866411504232153499087843248698084925589611147431573314376045484251451514791207452448110935568840839672293305435869438653772081256013774429279148034941907096778409001763863036243035868766659279500966728773188055050128755149091797562522979108085359172015804588476389872499307489357827552805094326611165780302703543855095972543242756862917734498187063599543556047505825959542712272872370439546403038223621996635214342771218883483996539898377162895166415137763786065443375032698047309240149314970821007606955897272143884174919554471306068294350045318532526762361351294099033323561339829781086839773401652934585224409719997803101356560035481473598121226781544526642204605020320912072386317682524782599257433899702444318407272319340246899433242639863550364661758337950334717409862276977816795459083956441386912924770423516764148733547596570235481246920883681322535635997133069360638398113755433609857205309215532907979330094188609096273340455324550677055302809641665538404212591577500463512140017634504863246595046161803593197356198678198665622414380491995087146742322201661060281959073827691243802614422758803357538323930306007161568726350184320226802501896767148612115256661923167819966328825416110674310792091346671696435918456777309542212767191870148314612561163169018844875911819278457097045245845705465980448418879895295657931804836174147610412730224268084268418289497480255092037947679715784343863307594316206116618037546105239370717085985865624904791271080310006819750514696344381607674115038081207719793658881122970255478325635244038134661995370595210287760876761403320369022467108907521184777148680144147915409921117258198044529375323189978503515225369399187283014452421667455243964140515280527093278846888505675018243786553963055477352359602978179629276157888454222089794094376103985722913747533124617172123782494393733700318162151402287640525880251726448204800397507461163326831834932441901588853142612217573886689077880889372566611118325361419528794273100585323819794652094343443495988375654372261869929443777288752262575766055072998543356899537419787343135823719385107805453711697141784757228499950556325485305296044977734493925012362227955124217983062989670149575539881026952371207628779854486222095442695173993341263368673769100103388935147454918830361043532564309662377132474242830734426690609016676169910563989871626640348595938512871496633516717247564772091695875704512413771176076646666025350217779215336787509158679397521976660433967809140101165209670641559531933760555200063171295897257304482164757294458779251153317458165564822615394823304533748089064163724600983821748345346298432048489579677031970404682408474584938928424206502101219217086233634634367487431780454630090441560919832118859020885476818987531603162200068728937458607361195961519425216332080939847959062459633216877312698017172879639668440786777201214668645089179239658275552618319323999595726855247220090026677688476382829289703517258778819518449937035572342626630223188272205616419036721611108770119882677594713597415713719986500148380940785331806335368638367808657948820438704732107604513202353257465526193378476355867087057084960929528561999119492329312704309355649875851634282229197383622502464408296181180007363486561174189651225620358310623524088881747537986933343293920933635297940414548583572967833522518202614612040823759180364083324219937582196508810211875892778501635385274098652261116463487524803208098932154037291084174911981934172237149393687158293750214519249787271500690411693979307928773993466736068028709793609677207125550863439999535240687095123063097982976538841132498240362549833199743924257486737577203486147893090992719421296904273400158264223461481391310498218701485416801360260703239799355373263092311973628618123294921030009992669113527589619322600269136934614296801618696979503096196203056555974884591807729315174401212217776288533608185064400269981591179707528287453459451154942321788245799862563628948668818428360923493313463169165847682769139143887126643911017380457454576340743271145125677441366271194114573363809502149236956855503646529454703855395408233147272237395349042971356800121754302443730592966144460968030445434332252935889582691987876658683218552329198243810693670653142381772198644789853972353295023574049690561515431126909085873614084030477860472073792871632944103367102981385311454140830498965815693608548293390709015009700499878458667341001146813739786779546765394448942273186428556187749168521547798763961270002530784385480494783911346956865702143277753042341389347184420467981114779614006547849883469934479597742874165464169954076868128953601321128987653972235503177267928115529654574446675535312559804060860779505786484644227533973735436218584456712294641794250732392646819526259470376841474437049567143557449661776162357035650969981541999830762484974123685910177631961630912989640727325456803313593241870320565910952980914896597972652068319655132087077353693252993094652648262166277802122709814101481445884417656620407594308976898864439146514134045767458012243131056011164314462775309676985242734480808487104974947236185173215151101072687673841910431065686867981288974899782277065494186206738750802534667285850437409013633241978600597535639678006465635792729716483378261547827093833631927513884436448987954627868512187007777444476893898807965312807333963282345703430633007373738596482385455503732532125881540344128832128981002466949503803196481786462667912028411897362898144412805884005176182141479280321716769241439849000111573617863725429661110476139526926292060470556434245634013290983295247228982584543327815507268022048212789247284807370033377133621461322401204652489884783858609973660856169100415282675389117069765898677812565948061491879486847400483069890742767048085514829316044107935202002126133507307651618789750033168161734825719716174627968580382272051421757116679747694047283043734650201751296913093017201894838018133324079969096225662042044932491974307314545608146835777850621684607318586256077387514897504271069034934294945803964482907160894318205584193478378543532909924746557519957722879205456646699034523728413322875484709317244866631162700246553331933808727260260178867845361195376996990509851895512309484163719778258862581111259196233883194756547512769141536420566010229500945611418738388515856324971475278419371382450460685058368261655246190942685986486743143245973300364077028929329557625799593637585288417668052884531972094608655067151040199496526179261149885305780777138795715313567611620176252456382063569704400386140561126491385834323948230962307332785676830676054211042262328804333377175196531966443996929613731163052277981475384235642049502005760879585035711449769369313372396829328667287874987593305842681822974072358197870822739305242919416391806192166508821112000168142362586414826584311226883544419454732623554278252320902348187926164186766549877347377674932740217312887719594979687887650127844465418261094457302075204696289795781998389376439432102968258056592120526011069165117176656590835797803811759879453703242746787518885196250122095552511675353028905753669458881225105129313988732197360118669117517141734484488272516028634191977986247845863976113213733334790085988213379692605346408362202267119941768507009173223000465791180683995255804292499019964326536425494200197207821817338479769853184584823973513331308803078520032899911450512134196554817506916579789102354070192505771856290990475196225175747561348759129659244044894556149665806516103257435877594499295864546125805246871359305009048634357398760465106709373142396319694955595095783706148182309002502323976856313641218751664067296421790400175742713799414872985760904769199530300720847836407381340257520142722858547597080956160765593492563271356959750247649537614323328989059015888934402875332998012443800172569483140983882169345944177291371865916981932936235923108678127369609282173795130463107461499350305664877092152635136534655780791205935430128082219276487587035060470965831192471886627899944945256333692419706868394794141713099121482941940958245064114446967858674271816139977836988379873804998992804650618340021126629712520780802479422965079970654237245858016992424285510933371098672428655850472119197675808171820222890715893721186783363996609537413404713217563032787353688442203329734693756810535431532736068261855927782087882376624420753848974074287696708625502758654425671076972808381823155093243026072306606985229291062283662944435976223047733082082847852202672487442690401686099418745543470053952096472805896523965569754146210817190876530610259675450751375287520391251587801840655238361082689392664091523400439605089806503977002310154079119479481522696592409282905311616641710989107478308058560636341893066656781759141023824443380467301737822001589224006294312174166516426561528722702268984955011968181747299375975519147175199478501177641143751619840204061370569476447586986619581904365046254702020222306083045867393045745120449937087082428653516928591234339963556094801764541089332805438940583778554741573217359225232835757154941761323481438994668632479949149892184196446583010348530583084507058152389920850663859037915909107806944084054566747101183441492585878353048665560686593147163535652580476362903294105815037674739890779759720124510374501579268587998170465525122804570378853284809053028510493837217561412306588616197896094258902388803346689375676518501597606303464845040166190199565008664247616325207018565752984224995982225964602266965583013541985616388598675352093052382928043487070040194536856942421719910119664090781768593226184406478419840912103156227830621116071380790854261878867955570648031152204894539929064844872637607003621498045011687320504113273848762380360263220316195520704689617954143360314529108216991773452969292665643711034650425102784278287168631686086564594471299535641995063592483586587729271603880377053428523007879539493465424347972997845268205779273050394409401499679475878447751305222115925509530575963170270690892357012205039800346662537474181534340217058123691398615911371561934498044220617092113487717337279802717628791320296563530991737382123882886690147414923621301056716052330992511058577594123769238125792333349943457908750412145112826572174904031457731288519341328873710025823384102137212260217916729061567024554680492062522455481363935091925776881739627372874417490409159397230301598958979089989570775450808996640470480731424292371061453050059398786022241798153717904272310038111989728798645504489131136098372842689387376506693898542463173854923049825906058670110725193801089391549189818286378598754358102553935974240969942972593503702188617825688290454640881131846311684204367131451747702255131766935847539080206803598111903847796836973439832727130645855439390491430982282483366826152714576094388857712857550782216740900735070426356901014663435555649038189161315415909930828608796723063846131820360356236389373060357758226645879768994379891335743384001514662716817383245044867042173589857636178215969843783321598533652713138703916033952699163297480820674699606483009110444810055677031702545125245459588739631364073365047283122663694335064346055475205898904479646259532228563830008890818677150764898299502221493160787571544350609535470655865001809826527940606026968617803983929073110082612695359658389871531815044125072510390820820800389273540720653061637118942621864018669159099444932968716132412728310894112736849927236243256402556676524979067216952853441784012623749241854386466231363979746027545269142306568451821728877242670783497835741109312937632305847395029109427112492113651930536358584336113313936108150657451389401779840700259473126364515710662098589301591932548500168435310725281665472468169263085584253602279799067939069589042098415660141619261788243353330204878283423234282720965714175484453632611510487589285558489112596567595318693803574059599539777130924529615009053320965109746041555281491361420781444157746706587846699910735875463285157611487802254268493332989227935015083788187976154557892359712845433558767506664721430666787223960782866217034997761777280749450704168538602940994879790536411451289104422211945393855796561233408268800989644433768023330282334911276455465555198265146957030022622536614878855216685717592652105435091133971677964953309465866236769337258200266423201273336229591445329435986445631655697047367148895466744537602804784303318647173509437393008702572863733924863329945848983351071518488728670708696330996921456674608713035667156392249443166401131749692975784266275754820906936784405553202692220673949494987811465812098200371042923363381852102699589130937439558504731692353451490378298862140859343239575049491145106650764643973786000783823709914701431560786974791072207500447682850837852983668599340187473583731052440473094959077162493628830652293145325199995241043349598480728915802310214161818806681771574718710301178669746941658781934129526080061320982483135626830174773876760703973690322844203349985909197849568237585064134014751754388834328698783019098900308177229678462670275364543670331073363578996338827954005257566452266131570560011761207316964879276412423268305178265314962506779322060720825288750007698327906402750042140932333392814136021874988935029457676243719609959419029377813057247305325719077971661929024698972501284323155217334880048084341644887970478195956532144979678872523547367775345697266065987765135680144190224273576446462206400855384825963414899720598690141672318311695742203934498242186713262323672281981577979531022734905250682121888150237513437919190549568837810471582051653529147510007625305706324887487708334359953084221292310365111315182656623158505519621890102703132450864730332507361781957745279246272810074637941908149824438878739546241880149126530083280962991889443644061149120333438199314579020153001050353307156362067126286503462559052529751913435365970939602427534536848470327133226767743964408835527561857641395444509367579566701388765433397260292570309648334105968686184690384202110663441929736360094968520260602428351299960174542203099249507669604017942244413546076552647215376162850285455881319356095480388541340186078809044392780590258198967912569802224987036748302872204679632135259060986584135778990151737744294967017991259417436421144755389473241894906827309240501208474671469769012223510983231342364426362566568842932263185429230880708287801094814513680078819782381622110106721537264605488220950188265350269449516824452734081784441548061516732362319748503319132925571584402239527614508498435458065698163093298258484365280016013350841665434486723059770102835273029182888744370546707635619169227723179874547058714369336371218225266580843862293651234271456901004105610230628656669677346631854776819306195673789278715498390669238334671239467040674474039337025821096461946293385522239390200633210636669281666400186274559143978439533084936398403226989771838125870552936133597252884400118864502933484264176591002100628394231041924971217884901376433705256525407639772951907599064417824166289282053755325184710966166621445631358804150159247733370917226388730408053310903398697132277667055240326823214324268012006714766194382656556817787461404515914344665601446443508062337130448033863869271793504706653451690822834258303540144902964990778543276700789053675478465476472409526818591753986180166822645921054264449722323921899946100172609622050887802288344515927682015337842204529423108379149792372589092976221551130304567189361236964324558192832420826131742309601304353212669124517393059061575725673373040099352361638699805952405526127845294431249840833450767378895269640345332193066241772642491612565095741614858126719462109777344312488182265578263998838219294956876932760568960285867198412578910150228032927019807641973858719434429159527095034842076291432405232020605086417292474689350417521883329568496769985162546562845795329370718942342124286363357358024676284302956652249095636919962980988752024422441998248718551777454636103871098593364973792539595450563787800403376207032282322201616309996717892800291773974678053333269727308692345806965814900409795087438173918095529078027511509851960025316586729098045393338290374489909075939222470846248799053744330163403752878513595358803348876150276170803060457262605841258710098040204734040219250580892936218141625652959910981366988645621708635391162832464823700739868469705372755998943968065426308339891058008142820999278554180144818905941997564226553403894846400856435386416872061407108450259029063864261317924534318795994278934039728827721931715133272115082641340431077120566007754405497234649392846570340397004956481448412491338032748613911337750517201407089283423212174166719421366434473874581853012097748066842921058954641794640486679422700391374358870255478718768647566136016785413153176547079036948617992161284884356172136653822356794475244624400334371466587768422049494185568917372442339296736756252993028404079496272468988542369098665474347324043413307246451770731082504746460354924543450830198865693498468275370532744921320010291692995756273853176890691886931085257971786040321654452789119870029882515872860462271048968509942615518097782559605898002572214577646864527975940834973842339620289129651557200025657865343262319015466589854630322235889714282050873277910840970488272134302467090503723615409690372663321369079783585661039898422024917034084181261190376387392427376816061026978335661929119791224423741626173713206859749560940947031091257934727062067326850610164078483839539091131526010712573332309030893525609023993446353615269946291158484680805430747772019929022175016867797360371321873731088386536374742241036535275370669350796577475262419225603262081475949034222133824746230405112974475862009112839891764851044366378275985019121152277672821421173252132413910112936875683891538658409954912799809518225184792382265122853071122718894004942586231779105001223808231118788830841850111091993325405270836463483031519232658677819032117929714203816450219109691174978782721298134233175540645020955996793837150094405789184604720021305498650125976426576509944961825337664932543157308926709460614036354030720624047465445730491332662199878841094150611281540730583217104855781472923384726254071998044156221253758036057740879362295767132428816117252785039585061470994393594786466940797648088313750507219364459938137521695291453622966076428290459130800452822844696549731135312584286044313715613863390576236723970868264181121913778589511518186819240435927875447961288711343251076067503816313521942006579624369790904892184510310336553553686439960585411677443625856559680752089127904755874401887012336236650155953766734017712487956088664455688195163929359654279842350137732754360121337157787507342192396951082033813966673040621515522557980848616751572783874920431182099197120122220521850992131318953170576255424392956626813323944385069460082330791545597617245111371567605518408059681012299096816483129552813370340255302604081002269232243095488547312092293198362568806815967604191364430234181337986334334421191941708591226966757102471916884491032039515761848241369860866076601304184240926242676169985154906438219013062609163278027699976534225750938997214481171722004968482931731226825359635982081324080746087453320293415074132740039020322640488463095448881666812767528310449381217173448886922001602273709441032990604888712579981841256891094496704769739469397659131129850011902026801242579496938376396457126085557237226075809967900954133692259481659489954917715758266329382110161910827397050552405628492811606702010003312184322953218314751940744913241064323729710373100502821520083568245151712711050209862889255029205059554747415314309304777881965859969504537534312860899482840283244924009867599438748630377787013053787433501557569799089205026540635641794818923069497950518827764697661716647520438427835445023437851625406827691410946007880576207246827255192893649451079261486424137737324287917376685830700724858713346437992695407344224200125621386498618914201016740075633513457364619998853227607245668430369876498450613106127898968156248321948024199074413214972962732559563875198351844691192788770250410758590200089772852332172168372942847497291350954829998141450761248241588409393238936093563260148192554621832978422040448713908320122000291993681888873311861788363634296734081143729392293815257079280209114301390367660507261220187078150100479850904147007217271694442160614455590070586462123387644149253857471210703879780199893095910292147046524891628066552707779876567406751164601944040814090175164821167247669283117003918419164747746295277401215143624852858975761635643641000304138240799681999655249429883208121173019545879843215067213295570561794850198381224397658378901021434591188480256069278544889225842061589382161043298519632875664959613866523640168740835947716911473930833069399223172149594479026000107677864281225866131341750235701531078138985805273173440773555879713620404729237180253073706420251879751613002305392367812751568790184312660083458485967852952197465048117692610675513241818912770822288227562757533246964333152403241450866753273737146282035964167323150718213043933025182240705537246060057657754852053758037265251505369355446784254281753062507816568967795450984700159951270161591204201008212398816216734938062551173019811564235129191387624278341938171279262484015949348105597847846395758049536073846429708292856016602991111886145206071856132384680703385475007536946075959735576033579642745092021575427438457786191503161179702792238572715539917765590428416426636962996245974833787679375011608867099654959179589589153898172508356438023123349548352876848320630631668293106513609052954233004806782203582303142848622460797126746601357376169709369036158191421425964906149934219653898273028389060893391515362409200807603300197404248909805475218215955309657642197733071494838565469217378434239762766443151644694246142718563924045398271021457532233779296899849475814527361388326081606856256801799305931700479588181243074374359299277088649567480195862901734699502658299682672061944882947667757708392517474126447913576960778881350598222097783567041187828953923092011276257998958144878550547829837001725746829828519154258278732064006148329664801666729601746401467376654131403938577813063825601242348141873105799597422003492864338084994165585545769553979910677788271446490613645781239333120398730917623415415297376618553011287399285780660909798553311169531373597197517795562819697288474453137610727368646556845608096808795320310470110733034760756397545239543712996418190020096134108812325082229163643847266465321450857244270156135468490824668521705960146759224076252360038011170032041265692107679215453042074767929228989712609544767531826053501143309035371351297415223199508475166987065071419542097671909464325818764907861813590449080511094020167158223640629588196814074663171805280195463381550982641619888003942350173690448568560725457446996049531160802265471870120867377800067697455643028841713827592976890759871291249539570627808692793733712818828930493137131791415874349864910787277045517853369680716051509795824631751787861205023860768778332572730778268909216429475568289686263418904172544372144403128423892509170644657803380101014927347075302483081856887631844896563190130873270587699278221262607695541279385093823270811557818001842756430729283689445195376439563539979981915639799729310494084953072694861467450248213265632119686215272958179233880028978899277002834348044185057337614827070158843563390711881051649076799625265896414846232574818665799463689654244381686760331199301465799016528721471743464682658782080806849267434698170010268912278421094710154071813922719092968221529686258925166435525999015811103990343268805751702488799180058904434595084409882691421179654887970931151247287931669874186220267586607321448908146821957264915948218434555586392654651061309270508749911175824802137533627374096309516088635662189152422146439525327799945798544383543926356632369465854182463789282649861330771409652419972366498471609331635917952865466984325524737631237840255469259191589132780553210712087728401509814693849378435232736399655317158422847887985774483041608721881497616327896865089851244156403076627388172263351351227854806211287048022644315848554324392502295779972668381674089503943452587494951085697110830790041189865334068133097132736548637231717477140258214980996303223375497358021255153016744179285127512469849133297077919865141793709866976922220125156881599410405752251046951157289815659973030336393280269275938830173537604210022026943089730993518293749671119880362814504705137036453449970208944437064049869022367445791566528246091970164572491441237631437682438257966862237566637500028279966138968711583033391251645509323307277112071518815672792249670901500393347464103134984801283462046493544107076905864258383433873536922527276185920661272623777776670583852222178380917892579952356725160017298191474335763453540466739822636316032893081551845014461975897908820728836990219496537096884194050405950990619376146469337614266333625149009885864252004831222721494786245444420877193000464361533108001625669198521362676093709568734291667839074284446234951863448575324033605226690551759908511166122394265248880527725484865205451481934003767913177078288268699529322916519511750362644573322921404267780906668861999145272119915353425279673704536489476853575289406838361129271506807837039180760590988045617954113710825688735017848721397322570062377600147501035771354921938736440960490858329718290152593695794889063657914767991656272343677245683519643344838351462031792175568886120181430235678277310869744366486039099698023997542661468486760722795007435585439476842762705068413359017589231370767200332819258522253422754342250354065382028567399062247886253417589983176972931543872831979105778530425154696614564356475654959421749485158842615639994582729943888939844277440119594729893003901442932924203837135221462086069697923549574863766065389107452572315044237707641857872579843477241027129802169902583679014048417423163073919377952011633486778763910626696849820111515554351876930187421097179012212444004895030590576819991968887802510099327535730795599740820648142449282902873002865698311067414488523399856016436684235563506589067518433233299129212818847115013060411463527450405766239721203371547465238013476691994952061211665272088207114880859038112184710237769924547972905419923972584932339787824468152973075079050543990810797219836267951287744419054741282916245583906850175646381611746695602166529758704513130012577752754496300456379651918267280983257604241218032525519746248611680407609147048091813475093045943577274969346899138898873846990257911684404782833866072473221278058458824308043707035840463106381944021799235335055503127883276390306165034611199647681140220162188944947295905030449363189678530460434456845514709318774593608679419031556826960449832855104475105185745022594710136225111831881521034190312214244047737189281765351870117612450085480162437239922132575769705446876829395192059098102885766569304484773391647380904581696751944607532150951724482360513347735770552026991182332250258573498702226294271039906926325566726526270708701375605685320220623115320429735894831692886787295448607138789153255570971721822050870452846313010511741223687484964356110227863764722059018601632303832717115948439117103013083722933914205358520327707335285156230684165977446172725901486873537171693040181472735463162567062412801835380033213357126741014790913586014381622879515013534606325019724586877925924377016451283214925135798196901017633709674921937504451945831293318120878928375274961809380434776813415373298313127817912487303850422312566631176956145060672694885075123545223865986411455928427486236956671171040122680420205258326193857688402412053538877968134035885119101953457938482943455678737386767974105145988410786650651804515199283471578670885217613537510394114485329969260267699391445553310568475734667046031573195510027689382956168748426685328322826615994316256945363303471602716609864867812149911834444682429047482104106518813415201662242521199904064046902339564083121617867943218528402887506691575188242388707714350637739329450521425839228914875241369436504216895630983767763386921498548288069428110255268612559055181623166924146031350658703403207622949316347577565660156556804537998678410190457516880777220899610041904491999427829684378486179339336086617216292430518160582505481624538471783546816199516981133094515825405312071473907157396355608957486555536003891269137122116080573367561878694872683205981136250993682563733987307300583434695305833672838076868221160389096339561390339010351915061367551643757962668409640910379648041574927669026008923894844492646395844615027653754169829206006676519540597298950542105978935164153219025353584626122762297178508172431018847616841767327645940286619386808668871926011221603202434159006100042858218896076194516813877327805552278019696275944815891699360225354989463006105689360056327738966799238255334973230451709187366179137985849777925453081875046014457731929797540900117193765185242064594964305908322428654285771538760124081180038709951881478220465923800071708297769799668414858666802717286811706919791655268776141287704142500185535405707899836542613330844457697580246965187751130157498565971513153184744819895779227700949995888425502154480204082820985599321770106323305246637633392330102805872025060299184622354305066840504759651299689620703490260569718384248146484245794276952976345652376957768884364729734662411194866515697423108199274706630211648545751739487986873649813676792795512946592150655101751667692023652136181441444227915302442471302053340228390748898238596044011030938679913432104545389171504645016397037613804402686168928495305362057555601991810456817833759443327485898573982981735270931963687523945395582799291802968326904129427089758623565938608330696132873739432334710742013207416207995384286807992652698339815565084190631913158365215798387286808061497858315651253811797937765851796004458946995569676798750200121322837741015388384730648925984768371093950834962743856730921654564084590686928669174618878134558574156868078880261435226760998050375616443706140202458763424599067367152150092603084581573763442764648058887619353348728182492718373832980356099369720973450790636281471074502200212114379400906609883809956122136456728408865437724395441587451680307044347473950050170833284413772765892670078543930037525728375130465730598983685458986037925681364875715482024001397431595904035963973770156217492461017213737797706673523873108316833894187349677907687797834621411504072093017022827449361054923533595584751789847844668028525528234309137961158506285017774575904545328067318032335679724075645665882531695042153735221788142947019083549213804641865841196424748081984769991733709481923545401186205075382495040931765022208333113692340420385128156348656783637611191605196395309583595610105687481366566818136198055602118498656106148421995084832805337117251345778775778252180462028356806882371724246449220677767083262923852369055156721145061482770802682145849539634784097080538286359244264135336143897905938543438855183396033148411543048576904856974502927018909557852369646779492782011969809002266639104122016114083045293505707027761890552068591715901657233537081450013137127249977452769158868242051481903892371475699139033480076027204528262328648824686709324954065880070738002919430562070435477294803527485488887091168311347440638451962676560518376626748431171321723719975309205231903973875937518628286991856448443742858488558382862114011733597922820740369457355461603003040502201159692727778714953407372194481869545824573232066168408738784164867006727778830152414132724933724606102379119988051113956522418791896301039493585499568482992039229209862761396782117109527376622725565816272938956781185189940118818729849711686516856992592803258122739311717446870288655612162641799550996410406512204869695102405544136929110991373765260240164408890079479839044430745224050021731725291673905526894712388410296560818676557646864006406613709644347384042045943798944087679011975673506493542457910854738668649279049151031018210295729591938286225021568452420183427617290759891223112056803921774228621837266712267957126896348468347481927195580543862702506157149606519421332056218241249328368756871843350518163076902671086203324023023469340844253438943628168981170319696657852184137730054741275166749110291780745867832257841575316729372371960453981034570566260921195247754975960458522372481074521760128724179832304391497350281020940681892097536680746094714673914839114764774613552377686045350637136747909086026837945115289235618850521693942946367823292953468557311151727292152958861302302285583706030693801255944619219000177938107002712151029659792210582928596948606977708654794793953988071503527622039386259939923559576101593904325147243387817710784131885580086312981297193099939100983477283471635268506949669112869560393324317012984759216204267989356537226702733503701951521376361998786630002892342833143372952346776941932183859411535594285866276790340741697845451341213447638003209705356143883106869851342333618534690863179851860827799326887063618461929536791053191176867458312302347572820707191051971230955489228406474077885677433237372122096334718570315284785725181782053141365543917439959792746766802913543168655694804175599462491759909444664686233678777957500492538016398322123609208176950780577801059649975556367959603500161510198364182947843866684987723297799788022496474987982261481955327615926558983744693424299678127878939199171427750999115348841597549393070969496596800758353065901986244009770012937940517951918925584558807746396920607620921601240115917091977744164326274040063902108970484586229676627453512445825533291849538869658858859566568825385851505126734330473890725490738190759154425433695742527260374242215353055369686765181211831073384250930523685056358971561642826078313306926028902829547337615161808142404303793044368161618258742940491794284198042179259075284014075981531742158784020159720219387061920343832109338341490840151339907105605152463770877309031559096491551661942711891237291457752068940307106012087946403668413590818627119465013908608926985406005095795459391261008819455627962653204516691897006793093476826862767493537379192912737032739400659173834143796095395739749086545580771975132983745460856759420773557344418684216815095182600669872222165206274440459271056022209143742250823018104057234013090273721253691399744983780622307043357177973368192494856408824570156020986959490068473546769883013590064065304611732096033147297881214884427994901469295405310780930741673630723461377539247024485568522377910953604155328422558431418045928381388889778070477441990936423558348881413213234449761078549559408026423466863911234648794031941577320208642036972530542802494221554826719244106525704384685576771225217889434745260885336299882737783651007274735725706148029515276860626859287969017409025073932886692053021410480934365749034564841397971507248120183660167484957841381434790604572380323893328508309354151771730251990183868388789653759315141426269938108986107810967454192768392998920010351295183706389207088865238294128148292061750776074508248399155001490408298405140624432715586336083573986494166693864436683725768863890216175768235740743506064861438228605920071387024477433624740701401506501224577694345204909599297385613860756571722729924577076878833868335805236362409908164824964755906206174297646976252963208174151592452015718021427190835250888695413715798327556553352936955355881937773700965693137291747420374595811173474560430966748857668007993024648152536596587045551241783904581949471015366410958091968522481596126087058257460052619872320704689534430498032111198966032739655995559306753578624094752843225027332667871591887866286279698591811377947882265640030373140779597366149071407294290655046995786440403195876231166916229460925812869596511574455395185461618695517822149468754505534315667753817408907421133194621158274612298506911125708095758864458143508455919263079649692089225868869680947771781774156497679574074314991544894292752131840905533089761619666057336334834776291417573301207903254816996168098631281018516525177838295097577538649110971773434537596481112377544927747075929472626802810246118900298644102160792524942644936919263267594923548297763878232949854342117191023437584913633156057824538291473369207181275368524108980731102948959296477733429433565861394372778932257808805352300773328934075229459091766670929485512902489304378067578956310911846417162027810474103424214609350247917081216629908266478377260252939858842169344489703705044315181407464498819701048508411038127672344972511580018944730817229620965335385428772359901368847186511716201392908456520706801222129589164625308040450237035792368941310385064895337283287672523782118268749892108344486488207372871033671724447106571552827436077436661304010446738966065057830380317129605197946069429900231078296661003226560381669484351599552776935893440855017268144814607609382584493364055796941024664334584387183430427191522501071728992016981674843394867556146954486598791933544826874388982856770447121687928497161350619816087923606542195575385111475419096377972584722295666572819688740090069805037336295469644984745133487072420337139153526018369513032643490716930884189530982683394353698497713994596688101125521464111717843762354741532970359063632769974033242400792550970923830121773786906261061182820608223638724557417212592927030868694231608593118198472476703633604454933941208267436262592214198029764560688232265907207479361759547043324340290267109085473860169475959756217107966814066757908485003883624475621813407375438193852857608447943647808494658073910189212447253730894741981491435653513385133373458828955208041639448495722235948589997056323038079641674125069142984910286939781244188658157720261097564061086138933164196781049749384817690925802990561633724481190846355123391487913926120591296363036942842724959810275649969188063179309787621336361084549644870926047851083174587211665170007137182411902585596983292730200591864174627667050902098549413014941031463295045308839046409883033294324248474096982984568118003664209202075976832782601997154573849616836694756532279635780665307363944506725477843830328651741554283146012571755551299479757049943165346367920013473317090024476361045974086308626437996651235457622793577637809921606398789436077078318809271792080502530757542569876024845246077051800178531766988881408456123748853409507696758055282547840759697814703356631765712410141337695835240901833319788704489204178640577967302632316941417389446803035639509207204918111351901188810853516430010032969424736255706329449630137564310621022516057228608793720377332493742265088495879552997973531665752943201930159350707923509933452996118199640022044783360548078694286345417052422681108078727688805307043723804022171625730648554135741500654352648456831347788585057397844134728549941723770734520813987280602002745189701473940536273886627527160608624636888496229653575740490650074952588073265752813719915659133470530381650506557251815597586046716324440687164528819509718265834114055138710549335673675613314023372088217796841266524225226728624123183631742073507423238838789366350929578585403230172578749101692001057478394866470096594381430785927068711365026567137271385154962957319846457331536752742049658244329391187381523473569788050877032808604123320857994328299857251024887805785795776302627309890206972332793330370680927658337958214420861781134958056286761876672689408374085392224717901032354919157841288935519779618621933838796663710772313919175649711648552687739227726963728097440772121611278274534243527001486041818470709857787510710191392927615786602599165670341341994038649779124619638617380782061361576737410670677028759098173947459779307267109254725753363789248943599422854051237270353672953091747476350070854599561160030971237854783795457478099151126542985490062532054167410319671771355046247264337248877468571597731637671312757002392975163284251941686724254119884662120977987452002016920427806520752507143001136657369791906886467462119734611522520482594388842217111369066741219599124702803866419078339430960783170800917614116992691935642975207858744715747843409546491581402016140608511756864806382528593362943298073913967487778404825626115419500849573706685302876756475852732145713134883928017827075439962626454201645620231867951222783197271110863362453187464515467999439589817043937292300582658525310643510035946066955282481697007365369667144750242023541641388811981290279089617298437775751774515946553381977037474996248445842006635437067207471347760124965900909198394835786633436370633396681392425551357853536161512749250215569218207565945099444281168946818192756014513254868950094686940059401483524727826771223569260537591592937621204046840911220348509625071235491828076944651450455267167175255937896751700210720709278834340523373455292507781919506469771785834301056384280581499206433821331298262104384164233447272807136989963646895377859561950183272447289489059225462126477426111121352901073974400119868136763316878845877789475085235754073248272801303644192582359806759331058651295590569382561090960900813440418936264650717656978421061851698510264434030731431410636634299826992066160132779739857835225019038046922804759856359020692726629976429335878165419582506625369665737248483382074711635449938816491827123964873626600074555784062582303130999681007287525070115243942766141970830173741529866123824527231333009349915076702018729346962764124682835498083899403424749956161731262957782105071804225604041484972309189358957571853429352668623886203007823254397358705050442444820122291551415704737447317878193837134330787873021506186341253533466956960567460978507086401160747025217804415889466727121358006175320372734895576061891397051646092928560600733106507577056446708206876804077651560239427449201691609507566342340834501040235629164667478047215776577700043803505493360720242770586670100118023535944120217353944214792388880686839839030897485852119668975190875423916698116561029492466362246833734893845105677034285450336462504005899640066716494279255562725410802507844195620891790786751355501695206696294981350007444042851151479543579481722285601185900108804882306064632305772895350642798790611810173905109067179855602377954436869061997037271657707244599741924792962610606585486649994187377565665156176209671516612221331395138694888908056961653219304959531022812787668129079683376853362603285660376391638316292652399038317220041336666068534860051218711863684611736219267359828549968517535359948419527554977774582836577808864518908297329901385889795924884707193934185414560948949432302236493368728612558010872126972207570031576825939190995367553595140126862021886000828983901620998907929999997051982118216277165462120862555470352060628720470881835180145906781075270165178376464029622027822887955244207340458409926104384881607788846797277705854402669015443720099230746863411901139588278662994215654812004747884539859890696418581911292384110392475998137460778730380790098507721778345776221119488160525579436323433267746358546777749928204572787303772010208799192284968844742082688590757256945638969555574209081942368431978446732626098681713245442273566861564011896162765230825901357671543995929953107865375004685322937175701682613242382681066818320200507832492979915474170406673260218296688956388602546215061165820683988300640761996184717556152790774946454288376498828893047855371605033069080761214381408200302934566247543653744573081782091163844153192173010809954275117080240821570681267337519278001779343342858400549615923922575454450715204440193685432228932185667767803724070402607205892437023094551953156163794290561859017671024724029571392327337655804095372383626813746206885263935972599613552959694096972964026539671435134348175200413354101531052024300083026878035108125121652045401376224187624817670983689293319331399814950914697902538147127263908596360656295507101069876539882485883745762008337578649071947279083973639444434879988113603300224604992378808140472771554948911323831802286904547435563569717498335231694154047253241718131673685471059823968782143072775673058059532954219481157772674640677953832388012456621860527810433686281880263527766410813038564348645188749649311779233020704873433252065667251028176521439156627100928576949056654388709265359601651331177655192411806127742300403804698695575028869329399533670017655739522878421994907570037845101334578323770459040661007133125255961764993261388987645635493649923908452711646891149048606854171465056285662455398742852519402008682556995606548471186717514061547634495721116917484490770700802659385537125968541559885594025728867435952150927471275885671778281998817058755431316156476776427321872949739098640817435056022149248401974441021081957179220182349993855626871854802169021981503691876672399281749780745564331777142150620905076007924804173825074143750302451274034143860420998237740908603590547366110004056861675273342222271883379156032653202485032840412449054369861979824762301000784050030591194474032946515997539582468943528651235874153494809838051124065717137561664408817305056819530743430095978737513642454192107835382412076418188286031844991425355441999447646628250601208419203573432241585023142421529889248329496757253158812504994364759757308233187190050896337615304681317408660561772558207982909741865034141833036211671391938577758757973297330630276116888012166544773181295810602696848600031697138434559565496980159876289121124795113423378613388972661798105975341984120392488189430845947637058897001563041907545984124068496502418806269682029481902723760302779352965203955762608289062080840732931885108967590352892971454561926904503443436238384901480634150952760228666388101197623837975413590450194774428848809242578279067568289093893721118255736956043125874384467275512176754340061748407627090681438663354438891651194954565858280024195959617745521075686737314804260642765742429436862565102434307946602051558442427080049983605313117810419900486892139811339129692365040511981075023771274981915559297825945242168793029246553499906087041127920347859324157901918376561154658836330565678467891883265790482973342137096954228004203716453793805302389816333397155577876668106330777382617123030599293366914044388650488349585003723589682726193791801562932866326766402093469963610016035061313326737242122800211347865543731653230982414845574015245465372104126057888992082814854757347820770601734247219893490446806394169679155510577896057680578195884636474935215721973506281383634980114802545873061890992344962663351032458797801875591128993344288578941184368439844892262374211018227426346247701937450193762097125589866285705790956457913661111570278493312221117574438974855925511328217874011403513216557232229575972212319431910141798331620126680043126396054013032641307021757305658032128003497696875254137198410408006816360735203377954483298944572242249557113754510499277283705957580950482700211433040464798692618617753884448235267807098121127296846669789425000880338770309046195642261672332819085631144310264472789239283383343298425373415784692596040170974728679652976355103140435840356830195313695280880025947580044863557451905778187625111238104089251497380806790491937641569057992694563778227896134107644863421472857338391724750001590130860493308094783509922415111997942268196085625190551083152556299051060473134511560376654033964412466715093522161804527335883408868638318943057192135191282252291880850678965296936894002972155715552945557806544367808321605961930591380384766626150296041254994546586228924321195546878257504261573529693835211628054012435583831218619114421379687978041543885489364186489032434198578951074885515053929949147765089617057180728601769182996238447899440110727562590635321911238117515216755398483616465902561668964405529975105775901187179673432195130133286724343077617384362291526573103133087511189679058443340263175556296631785742406891048365682540901208968453574735169330629003253618118264330146444930846746972416317452641070916261171574720320188407227492499488421917416586694664533360341531688449989028913684670845679834356691007256513358032438935463586517361169430795771335866445414682519435187583832186442162065789268286148929433024275276583384424891708915965345051955108776380064764106757100835091970601138519280599533937988203834183863804043749553102285446763221807481301930483557768972953899018035030752145122904859221880316047316759836467592557768879432935602653777787442174517833672685147985190766749281140304774050833438914868799044416849220791508118610745228267167639514836233104721453777938790410670136511285648655349254519544001125092363294690870560755800803527419351733617812798256761305607255865450654315464684342295152584217269573312702819878280367718843253900454992871081277934045950501853639341643949588023580506435585297946340181289136256544683453421847392704359911292559085804018975991746735580409772892263332113216978018650235020353376426145040000005449265770229806692126292726257154830996597078753272609225156445483659858373012156115900256709039612313949237924910445091204554513932460728604029982584448502796642973730427466658768576495132745155466222654890098591342761343164996794408344699872893039270623058931557297061943718546148894240677212020535415702572145922069291658959881488537462703429303738929239131006119465071655749336502112346822503028678122887799225833947556327209478089896461076248569852454250785932715249314413452534229525087133949311201050210877060737000973860498813115993795841042720170044134248281687458778911962771362013402437941285192393115910451284486064339317507335194111172619194470623191780148204595734261820394732493138534881220436993502659732302351398589186712197340473398274072755963326141111476456515611078129936322399705925408436024137271074724796138688981133077320889216164802517530888624276289167820875279319738556670381235892952705268706939487847814536257527112914099501250966938618303472381487647362730889932191410601231680343320819354639427341187040989207295705576817546083672459509730607221670861112399506928794688281153359207515424179297043018347386259344261616362888123933769696055958386536896317778353636130119963319886419877451625559710070989163963752726495006279950994261749773809791036549551244904519001708933186614104255823007711438488158561605880665322349379697640818675088112325781846926972715748506424178604072989850541531844277716366459275485720583454944546549826323936334072411054343125396615917579402774481189423796900006243967341727615958611328744935396472890872132358002079637116899206107859908562851584519443459555217553634945510665439099133820160021593519205008039375582550419360015466839236222779225827631274466621429379233713915999659226810342934623726618233705584294756370922044868780355605693978322576615280398369005614630507388299762876993334168051814915254485738933462230941085893690310866328225484858022561781921279037434556837587111074065096780764921654596514726494020798020285045755901642242597565920197902690783695272938386430784163522165754579938573830667387203732742800767081161614238826905096661881731153092531629694705033066620999163138231302490362914703361687113018385177952236037296662814078030016894684689980477477791416428019896849024951020989593361568406711035964167942637065481028936399157546537075601306623168118989785829883721917647675583781247725287194862513776875217656413541565800384815733102263254812367601096087449265651177553555589090840696684332642227376906024999311070402323577541843068054569237740898770959240301182548650239906220373986942706425886103576216046867918095639681883681073312555485271255306193429509223564315791023676622877458389810977902497562994334819830209483118058393172954590366558748858435914254123936355340795278526974179315365211225588750135235011496884441493432993060954566703002268320438186682581229272543241998687727661266414600255682105472894318257569800212542373551841557086589154573241516386486001643590140374163778200025052710328886765490900293253674674174028277743239644355503439267843351856141718698969292402095540012522176205587906799547503870470613063747859626305502005589206533152893303518017366668735625306642196503995844328573863869168593318060052495246100118252429550810531693151493901713295254084749896583256120440122350919143330267137736210578771438078712671749382468837933254965358886280324023550808852751944203885007106440114410667015907245657699978064959389816133781959179499687478031455628647600559736848498279912311202018017053130235998611452300790434207226153943181027454386474076201994128864456122032022518296550251416091413642984119957404327766768295998799459295503780606358557280908553961789408661759465337870890421744814158030459532411874619976507409904546858236852686353252637351588683914831026188560144189033185508732879432749997272347387168973874230726552715567238546674764179329689329542336688632913241487359942364521095866236274991722197103434885667525947506393385330067446470178094719135522423081643362573585050114624748231292130579618499671659856352053961558916232862320578854499167656739056506566384630991530476712981249913702383869809184123615048358708511206984098674891170352368291976067734951862675019738949662083189501560037948138057201733596323671976017897549950719063536415073826246164137461634270749679657432929018574468975164818522348688487995241019538127573354890439965880331363558785977511836374301273768586971489731031246887177055004901157435732390920059353642198638185491114199658618102895714695392790980809797366479432738408765520026920613435894091278684834111715829371106253436483746789444874289214754936882740233185508503013901179842956728141194977642788936360560845016072850366449683941563543632866816595577193812239472113259880412351796589239924414312996657233433871817233400053064651716427965977989565256053855975958388213693169251435460785072426795799818483247281208641574439451204186937999430254067871206728400870277804704504770517554228053506428459743028261589054977762420550699644809882782917270714345436417883527255227113831875521860577748905685824501049440255338978049107244592013622683684897595833456169545176020122535486972940949658061781027634714557137201286542847348658825332846585000565875156825379422685889689031422806398047375216561094660735179478448315984810887948445178457678509464426323379748654738475170589357699105102571843165960661272994006521160838023017242344163613968638532180443287172131061299517813758055079401720172799835771660083061207770065427471767360698608637741093447616903783576695720563202590564171197467994653840652759818891281768169983755517699831880502577607086759171050988475537718767953181403660297255018800325886869319003777947678983435282057917243226047011167751964004224468120303857214234451918222328307902538083442172224712173397064919774190209196426759214759329071187171114015233457892863801755410824883510970359865272166235683822981484228345926559035148109836483752285040651491086131893187764678038440941312886605859106302562166270107601782145064662138325456407881085977001478480429603650615865354315561184929826968370358907916178586756214366351294902690064616568867389061937524054463917746294036579192063590480715056714819077553248375340276309130763835814989243332710193900743188884288411776765993904625114315850947813166988732479994208885619825300200375797444462207221575291768073773741133617292642479750117217056307653841283200318864012168722395105494434798218581984547139559881698117299669006449627906932172262807262529648380693440367288172914938292313698835445943023730295173295521043957848193964536401623787599393874499657293534298158560227252868878593480773980966122123370068828071223447645762300690723201659311194611128727057072340593209036118698214106178034397060956823481169193709536841803188327927407083909789170273971206191973469311349465755764160798378238509494700631681033808331426690629525409500697498196098778346419538248681772863256000728134564188208347130091567577597994050271827101159628134985399864967477615009356790489526593357913659761681859410334706144159672679519625649994677379901310568006311889194874295748403180858904000097522574962424444592444572288408344557459384199134039842747220570424637697966618087620108122735045259637562408719472162231700646919150154060835121236876703982939993304530990688872258894807457155188861993735328278033923327000739576736464833406278174772798401645099815929717187654461359739338763869373793246954585386021059896549869654954906977703669129596716465787583972094831303804311981087939544636763176931275319215414489393741228964714252966949258973429099668461615655994388045611455604748115618277840191867050877935770047941314429637078279715234589096224766786919750704120029887791926754438445779367680058162216468722573153913489343353894520356731388681933743822808922795654148004704661544424947238123433938872627275113862629846349249781965760852459351073416998548577768942013287847951438965007670792861012158280976397597888486689214480945797059982272644433573665101915969963871443263043936551847773371239705387075995347879527190506844243148834429772431761495491949283544854657321741093810994741422168040219512341029337355672207428567102373082201699690859648862038532027627410192997773846184468701826660508106881472062502595553905065021544360157660950352542400809494782108503929897849119243886270488426643879395458003409784357363658048331999389651774859355825952315101977989468994352843448823733756493187570925378509954589229249663450511357389533008225712067295785863345831470250695549285450137391814660628579919335308917616059020781155565771433815931061916168349540898248808357150093142947340125542649026865144943822539023575632702928882266858415965390219115775880455416561189478281047070367883587486780103810900920148282889936730413213946259405550392869352348659655135071783986335964580878047479484287399669831188286555625798599916734047200498575197307823987982212334460099348559043361600616926909977512492029288987151633866558416833569894095654145752276634711374183692953030660831939524665373312881221477523374630358544203315425473851977496611081040821028481872199017880887486065081416949347113705511606462028048536567085344543100287507588885706292147335808864933820726643665667235933581795897528726000002957326948148380017367828705876279217411900886319057231621775958779548708991345385752298063712232579238122649023355234857825681631335029374511436588966202690755750336092839615123364749252375567962610183409272235895527529231784393106173904143989764545610304660538756171824866609650548332381899990574685049768904781564666402016409463018171984834063271875074139784183254990008469453180471760440221523292046703213826170853978410737762502305753561676926012702765851284949311990364123291076139618169967374348239677065499499242641958843272002680640943629564492602064983302138529221512625248859930779073022638413231952585353763892250504260316230070984725705513927713423166086093718479684905828774296911864487196389979578187305459847628626112981486722415599518109720599038532693257160219652000773373371810483532923615246788896212031756325141373294373641107204721784237131816548612540318563196232294542156116378668563539801018710581761890715380650149614435604367090350205911658636395114245022282024012799547169028069051458674198101488734716923221168667236370472721581189378457082104298866537708162648295133994161555119488331584037552280509981941059721802626534415868110335072899887384916285353359940561468129497242450942350953110776000077837718946673409482897617598307271695382906208687744986359148929757445088088315787585280566998747334291230103367862390906001237661666260248014054542926780054768240119674854090601739507887856970609310519795344516684577228595378639750530687839659761189196002396892277529134188854392642904453089009653671272517932221901559714285470056996238883009797277891701479793463160859868434584020209696038529025182799056016898073926436704981860020607831373392805208622588793710336126809841830390326492086914252718426946104277974576217722000921307529699470029529557123576126425857545116494050649730992260717099422531336933762525102281022927487605356706148445422389751838756675768610253865527083558119340317165796753275774757693549746624706340809766591073143940926219207591250872595950527095450661836332372735167788312353256744667364880754954462982265843520450314801490722575887330556983565111106979382638909808601287306871607972074232262967959161657436739230581027686405643080892729658624781386592599359929092506135544459093563905165204947985285429794338707567456274578215888390774913691173135963993996100226567130600337491273857373142208779444687187236226096489627719205549758721974735048522418733396885252807962347139832844062840781443509506246112081939767703333425529737580103572319279276498345535460998652243369768629806218152110495834483315653890227343033899100075307882255008432359052542997184770107383180364998570310272786669695463439994117249351657438051730247633751266913459057943270767525611136684762562147426637392137010654034666744550780760876087167897710202215246416207364885105353400321194429764856906749500143968256631177399701734655034568814854889499580483552470244506233491585819237418977681714695112510483003376987033597942644866378739461206571778010184413319252824547305289346816207852625445899120853378099948178306071473100254740157640503799330954900475676208617882055540903132485207440475061088561179304419203556759911142352676771029727983973937950366697432267857735853442735111652615664994270748653055132832488255263469246014376778725862873379555564101384310977209284410803508965022065642099015138927978684385558791758878074118932115788204655263484523913373034085562081042369842753444478034471874071591000120521441694137715767567575166351490246464202297499444561481956280138363793439853668692662770531174688782224652367383757184626881646830134221528870595268707728161225023514260736869130892430200873858761558715953439409020529635938383465582448359185905898239397433618169430096927124272729663168094409533946243134047698476365106546059181269315240360363210341224885057837381966827222574709039478913659489938864958393026308689013018434262924749193079752582840746830548369803928082176794258892720474424188643026289947028628332010265562787449692015017832537462695950991102381165336541581206073301068002106257528158850792349272593172609594413752682196129701611617621955820466707573766840920600393647036271137182362514235728977554566326022944794775311600118190057470064737209588295534935921071824050431346265812883040520159654328401011403329751159777376628479344269330369961870542743534073992270123956103138587610000692272906912291234263386382906559024781326555916451935682000623828238253055858521187613842795184803591328082574335448932429571475468290474163184529239189907657184670454264508659770385936323104194295181997048576568684913184068884408313721430060237219190799188150696809360451908315787577597149178978655000192533658074170127764919895548629338476771085217919342990275899389320237649977013708875795403567436395653256160878275300565942817579483312738066736291028944339703528547887631964996899926479125435624455825430498699820821830976300740903166350169621069981725477933321411647749183810185394148526899296371091200664828652257568480094382393386889230958979347968466837967078191070071105632162246787779983426484282538258921283412172076856933629808293235412837606507833836113203093710260538700369488083997317321381164354762152406903484345967812004760407614326187111931741211666736922577233444339416262449491999496361890505242075770531235383458147957460025989070075660494533441155614893800476390484394194051451546567289621714454149961750237857016976664730829147083114994653551339410644201538300477929077089989575636571368522814398976771282482150118278478629561471815166250327785338299240173991261840049153075478407521908693383441942783263361866252657085834634869735174940216870366430985044487489499391889900491630907747397309066885032127618406011383204161656453298563261528175410304894369470371201963438242125949183902524396000963038711896600242174606030336458269682475625324579122049973691703594332060947112916116802049238869180755048551749089854727661888088895498159357067868751056580475109845679908518683857040631439443490978467150181764518444647140091701258994855237895960308814013798884371998198118585779866772345889993546355931960326070705703505286776762976823339419037104808739553008933634834037109335247489745645789825655291342610426242448210054986392033540662263727376851851126313528898973053308668451768695226885135509835620728556435758460805786695571953005645622302295285920770980584843208596065566985571889874606500655825529124238054758422264877439716950085888666265667281559967247040795628252569186771741846041605092659458935306447750644652486169161801948745390982733259148282149073763944406444355782015440601680552228897881945952847523455567734843292247513992918403371269318679153246972661502117475789306917769291683693557703879999311026494788916723759834003460156486477465644593518110238637608172883983139775510367242311201135577159960389164099391741867240571921008003366555017906483586431335752650743379488495107368724121826012906386107544730941684597289124167502512405492337896330173293135067342859683043973580642629386911217860515021683463721724038930156315893712711146577286295770074355268676251530869395381758739859345985774887454538751506061806567315994658365162443331153564279261891854272349861617536464000678515135061584393684613743741365182514738871658299802689757958768817535920879704921171492238792954535759273666166179227568045395690363123843877403565198716840150261189353203475659269047549332976429444294182979177730145643365830266877461800220008072724728850942572439651003444452027271985073912971785741031597486741309457007842379989597895038845704090060665402510273987503662562650061569294504854354264345107312255999908878574405166965860941804478083833492650510632179732024853473453345316657009654644105368571587661991934042940416632607076718005617327280398659704991972090648386830149802512361083862465714757047536789921542151863559954122572423100524264026599508788218653822846278913472987840345229656807315197825682955192118634646943473031518985053591542675810401832901976071093393193408061507558464456711720679542502045895208661220724855169104134463750784671766685062625926092908717032152340773052523611839573030825903692887491129385247985896345495177609756834480189939598470355491602290095627143463709518937725273679184977147100831252852334220857558073492857221941013816725581732864563522251055743899562927617786052704477296204866802421875945567387836827379778799184763452973828380098832946812375270761171743142616648604083836080974736046164126396400737100515983045363892828845631520608654086345361367468547455701848439555745547000971404695364336430530760356043687378637684521512893346116650048759762597878541113156969167568888338287220944980603180443951102395604562053511546432684149507006652550466893443747652461777745530963523080698231208786605608057035632906411884179805233103322514879929207165720127182329765141194163064337597838598164686323381352229567104221345135188147374203746747450978799341609281305891937799747325764301410721613480822948780661725054670238038766429731161412464540320489706690975608875090800509242012981207522991033556851411325290334599449235325406370517985141469254114462907635168777574433561214358909751553385677910163355502131838877503411935860570350182290196032454630305209538270991900028403330347324848612272946928478040638077491990274672780866035196401490610035376634337547245509838067314310176689245532577017067672099413595667004673373197916881776101351709223750870566518250676563296035228311787551475841344945325673092902147454229581584195745092060090246459521327835452163800340753352568009701797663100096737131203288255979306598365003104623010103379024405450891118000291549146024607869306188446112520517628191738406976366425426696198814608687895954882968147615241277049970978614211102815848583373587905001365823383111331629106032996144919874612254076769747825623613735377459861728111683821457873419830090855389642665815112254140943053684654754109306410952759926968123888484364966612889376457680013909413354672706175170134870693200841295452526461786460855509989956352175485118105543960244155302368180836755088596976184698564089804192520161865622832433946332202758792137586105501455361686660407679345855667006943840491513998785846456013490994553951843574783442274132477648135280444147413206118340152680195954041040744769341135251711139117561895362765095071905102082426262854137221740761081005022854853416749455888512896644357148783878482180068784511292944466247053409714895167792191954584900677615046654959963131334349718443755956308550180105797877041315555401105711177525703149136716903050718233470916384031924894142636734657714630548291094413526978693972975222947000763775454974782135370619241424834952468554765882912066183679639396499202583187624328114885463543948249397950357605488400914329487091976662743254204144546405980243785174189346657444990214649185348467678864639679585386293435269416811963817142726982937491442278565741743114260109990261940575701912543492210140197106082150660359936659855380233175886206826705949638588084836404388049786186719634653760986964979646028315132548349109872093439214037264256137155093102066309638030055707642234312131769989354555080774544304341222826994744245801545624091325398060913150886697053111449799629164616513552135446414746578418361051499018668871013444278961323543125407212622731724635297769182222643835411614177809760553211146318753051001204757337518965292470384309071605271740507240839614284645258168887534743423441014997841834042510776613341325999240129677301493266458372013181166239494426830558402191599716106051886252080721965763108312043597755846745293933361769138169038797807942754047301795575285814919308719313680198971927981136929206731866622098053355575181075465318909725291242660969253755216019478825828046084173578740386789203951227046041040207263429710319350142189858894194066429831880482702536775107219572986187114987718188936481923610571669983604767024100101862967088661229687561492397128216230004280176759797864793737374039456104308983044077538067706347389969518107358730269353925853076701842456081474244528582744986665285994168654035604458469106811947038834635551741239016679029207087460109968025167202972238550016513028304960019944728099615501510802617773326124223140035714061779587572686118541440718688486533169570926851033001005806541144105876916546041759056655962244492469533670732213324439575700435592626956603049734183256470461531083459121573324478560565588286906239647764965441345257303879580760673520983721909998658312177598631643324767897790355702352025398062616875453630063302667101853109137561796648382214132631709862039456762933358626419593388565930465240740717974993626675555382932199241303283060268697707786078194546414737900973800330340588951701142825628904855660306389214586956816484637173148228051316618984975705926535637158781521385329482154113750961016221106855155130458626500412398085291741008409494384305144612066613794307430306491661826148363668114634259468039289363036922316082439812299638342413651021834304636162450327146030135753830021540834151482870654154845821416479046242094109261418571695047088371938228563433279761905068740561465752286648251640063638720512166588966928233112298575138619454942465199069173936695600663585321098060759041334444107580900426773123653624753823356997193122268247528721940192676323710381551765864038890704535023463460930322432744508784688680899597304135575491040668231136036585484163798717902323668570640553965183381857466482519250120192303999181646029371517723242496673587315749798849252183659333241781248309889852864691357082677607127929469461564502962234487317590695086089548048167057500619323483302094422241164046248751962232594927736294775636214732279785094397305830025812968737630456765829530719022019853234820326546935704990638765319725442358008526336822205050164559472461068895594435360048023263716791651687664308203591890920882945706287756078563978768642527622988970398735615584012841515109814462471891429147323937358070687429927432104568397221941052539863103653208818359936130769082901782535989849931339063253402317809017329216314955480030024490155185810997800020760577226436919650252400987272137746456336854195753769267531024642114951475148382672887647435967121473052678332455785647729000918401251565206624123616535836436734369995009315218992398942155356637312021324237952598851960056639285779210622335091563869665731773599410659324560630381801380272254374365783023058686129766217238829788470491134174637809065584696521768602305481367977298856770133347254798075681860400049399317205258541589171099598497188715924542136267112332760054989558003048282305560394522154961222702262685400180869190519677027945379828735836026384915195925566851162495691315535789922045023679815832018070289867993113649161750900728539965360762798049741469587548289784750657116043910461324473756997874333910666373198658809213924969895046032396576271299672231762034569825212454161858021965227631654668739610929193132471121718598119601552583315013100557052764631276246858613967491345160784606945424328278631367689409581232624036448113522699292254122496985809217016622054951877856485515990116903879475934987425819090613065562051697923368219729776093258830628202789126920235079886257931950172936796134057999376826418887441940057866883223061670893518128055051183410332292450807703537968094203413320305499743327923871733353796228348507994330017650739953702404433121342721181074817560099300523721920309802502641099477167933298633721872325341595550721336475950204752177297935519898771889229523415542036069703756523643544024938053430597250125414555078265609977946572367241065353327758816774910577030521875907762902360518561350015757156495822122850245335886456892114017343669645121932122812764487357290492762898534147738957418331003077242258376086971544184265026621388940969945330640179885750712095682900585574174892430590056765237648984432702395726388524366544402450020947691309338764733191644549408177839286932081745869346960366957839000212447507728174310815601240555472298110987222808489347483145908342816741443008773899863645605713861685279091211789191957948961586661591803208665306733649423536183858078294994655721295843532052746988040892623318329760053034069773610165751685935970611776517963667360248295830790066550759717956447780647438311301298527517920650628447475536283306995200240617701646182231799928232999568375507896084384303243368061726767888425846724509947560119071049139736013153388604458663543560236653355620234372790469688272463623530460085595516612865777233936429839552698448395344441844494063577319554273282569417536174918862551707886075960696567756387066204693674178208518683297998630624854157962547489665790571682928924832719941724484754447780428335922510068039962663156712021214449778521919988407531617396795092574018772934821312304980471337151340205304956334311059195422129478434052476846053637794643417297912523641616122248978003072529819483438362141221271455374671785534046614584330819319588088504196239563147806439216770415174514300147915327095452510433673004549850673096844502909252857527934141351082090605832212423319135777290565896521224712477768443045567864995251858647705962510677533552921283556360493083325625785100480397724155122453272570779489114910518237541733476317710665821112491542301193946962104822216715231264959542630324060843918892857608753722640566853554161465506780290123280070127314446319489675170059044342586132178442814322243093360973280049842731039904966687820387393132150570142883269644609457934636504396148725755276169953548726818974711969595272536737449649180875389282915947075730242039219070341448760387497599217007953953056241141796064534368395553830311616126079308799387913161816531515470789801588237460550676672913871871759248880856648337846286308888345965229311102937298450892797444243120789654250980483917953720679084546811570611618738160953004962358939868920437760911416858067651357297181505127575792085403398873657693309275708315816443033048245850981910040022831173081382641346033308851102629958523210732395396916328043355467581071669922327854428109882148921708647861974050503153444754511583509654278814950217563967647290426342642680036240928064872601015069825497700658434191486714834013303784822712148861938051288540558214093101694344074030740788231291858855147788093459174873902595165792671369740451922827460986769130832157151054287508547716710480763789970233488815954749269012657765788229673495030506677973903370742464468323310510648008740902182215651441659715192474997179196257489983175109893071460996916415124536084975244590498176773246464193515556413754354474748664326986148770174201494336855797535984445481285372482823094340894973852981601199676516411702780242212281944791558761638919686734357685120486880858703595544654396339923107379569484429605979103485230878689411595256509167745760820598633932975995008623621443132038803269219398809642722075198860906508849178633027259070653334047263389344679013058381099302451186901700629917903860391581384379759184531806798903836244421799978313156654540839219140705385416804240621069653381983156184048634620592598594604232398715573012353226468365284226398325513888454896268864350516989399739714295573252316775000577974317464234181761625180635754022401677154199480404014333858571325163288658427537275750960094023739207688348090890509974202208778418411432796952534598640415629123292839444273229389442007525526758861770126497815353244679532504302010536093510853640261675676725332666926096671732341429470448254153286241496363854323400474074442682143256240472095376871846257775160833298387448360758955176513557917533178851783545534925426741257330362850093180306729229307937363566568104690926551534037070245359243357269945109100408217396006065603243360872523271476066305580166850381050504338564888919955778695741989425683734758401791509268044959268170298614935124437349158326474194623223620190223938544116799878189817188636577242492299480465895242308484365406856477740646207303101009874180845045953599595505709066309837407392596681883369512297450779916526786866609441794052971492097632732866520618569601769162679314348451685410847967093202397502202673981548226331963485749988433805477687919762254701454234946107675309688031551626148716722218534462155761633198329878531307873372540327598752111896646105320740781076272392508700566577303627589329831991644867492901250948420975134755379993302136155671717065452641465739592126144916464906259162241988537788061875856038649254296412959976634801702418815090539446279931673017852922000371773825711719250842512103503519871711958869276802361337742620845263007803362355727729141263093962062238609117043671054394713291183189290969722492787216798106755627369163322076596337912719894174430864385956166162028818360954544189965620384578274935137430129431952211958539775883702167279262126747195760660346950335191622607732446148935162011027307365810642461760855942312285100895367576541743954214951612863679502794146531514783426644221934965952763660365269011653701931225293216368465080919966969006013296311667326754200527583035540738394033571600583722304794880799701189215841129616077836674567867256767177694128239494255819978084130167372455391192754377785280630683732596792263338023993756803283285432381679688027502147555628168823081779126290496187810791316046783334089800895549874602238100604946345610891819338114173501557634170192575208847113487918446897062225003576481658493223890343466646457010879841698548794576714142802121255139407236945377018497432820956418154099413925174239254224223093188565741824579127151360944353270013314118328073797373244718289924670468555293409586473609206071780330565382960987715005512297561831923268273851440692882085582638819537369615051733592947554334204431783414714791592702445777759714808025382460290479990539154558404113803478763886749331422132134498943458709083100150059359702006563714805459521477261909868709597802867185551686103863315124615377129210722494368164761251198479042936879350214138047821341835490998775069666407732911595239010938723396021279494494456432335592492307717354585054553852761175816766996668301535660783971072532208181195154175450082382551071461649377886828577487493690613658039517153824466193031048354152785062786385423839599151116537247327358841292323432186488763549618881239428179971849575592967789403075538462214068089684765390846711992442725145219756955411828860531359906594633165867434633514161042778421745126476500925332790232466504406918295326862898753888094999667312207491727624296338222344420108277977422699439912143185840682887380332666775161119358240600190603825857713489870945374974125707774158981829503064159888059732344779532343076462033588967536230604731870751142205362811916051849603743234882651318688568886274727018612980211836814735625189589738281975459632930051594780730128635542403495544426067943842745335746381576146760175593787497685095974768249084700829383635374372485141555519025485097527490003695028321371339974244344623318171443294208658336639667969000696335939978738061852237410033428831003523531854349590158082594639617763941388553123046711182285986155078928227945433895492349562721062791302640969189650896129419241493899911471771956294465323400439807894854772156952119330827991830099870807809541025974550405318139889443027138802467538777054021820757712681214894368663462688554913924173112766909455954856804564209029325531256848943832686058764202709274657819518177904675287285572027001192994816707245245334185852510047798269959359260496051821512806641874202599465394576967805413525568830131669223745619997209076121628841138950540738738117921199303661771566059394206756928528630130692487753324695436510138050136682145616291761888638417639835507739803367809271015849829728765503529171868292804125604411356055284270423509937215854439860629955574418859711241485585504878526474619556757858222239670108587842322158934213726735255749016480023638136661229795031612825074710798989969964759230495149454079493837212389694949708759433237363203932126515576132171714360269834098836292139153483996564578316234954306708617063164104687762561868289247052962503996063228847796379699058040351755536154758365018202959764249039828069965428457545583198254306052655172865569538280727568779338881463738387966193958248570519884036921910206092688067476265440774051242063192844032818428969400025152500034191834671360735681957342863775707338902016019564166328302659405602072459317517187563019429949202701213256542602272648880414570364789661628298677884793520951638404064696278576345013993649263609397710483669688986232149287727476577254397912459833304758560549877886635541166144046793405359113156984071309437236959227862090083735161297414488180739310015122850926412703389196603093612035406518163788682048934037464539437483063960085669080036454393091413371426087960964243773935618369812516428272446290976846347774972919147275237654319280293490924975641578947714300529349803324203034824370975570396251888982686696574533936963278019478225880729105756744709231438596453264320298764118184647871194955706769221837745791546883453880305807752327186882596487287681438517859537511703056655501917724388919467649079031256672333941340959953207647232102175124372870573765402229117283039871802463858419993370899636110499871661039137292016658342889157565537376497022568619796763798466040239780722385071422010894134433396256572481954593881666239342938341197845798337088275745492090232645732316416971097222586550403379518351205838845412679359817490784139037448451734289464264188246247251150092474233460516410574944813222341090345565285815127407474210719820393986507421545539933166546420926357164825472230871005513896433353587287169634434795381011832986193198665612099229509976205559118791766207058926806618274679424283569463517988702453116802205272226133914115932884642076825626800181016108692334750164558566342622703841272066968941776824605841799894989735938582398266293515400545841251356680121196491238336776003679125036175541634502964861252022203399197124905661672347164385016139761704688698962919907836510499484775048741834419065953555469236874108431776434076321710904361508243814646244642980283779746463627803703233755685756584218501383884707547324398914381606157987941505561629161886374981002794043266019401208194516920637047473257424028590128490311020291682412304661320478093299194540827806695405794718154196566183228001638542758439296540659297987311578379692921207539015004810801668038513058208032542872873239726033199726466702231965303289934131254942233423404908483922690329392716006916064359607227272779899464066496889660666308854785334325113381676158235766729772240902039194290984093128102608307004556604225587841056705169518531497384471529335581948933174755890256686144075840661565703152188006624611862625570210711055932504312713762385848828566442667340243523922191653050972698684943465821826605769713929309735795688736677564035142203072502243896324526717378688701918995719944331364289764986411282496032432133391060507268452324597138262993837898943770033556527822669830446021779008275521566142386027114120741415425737362541402505789697908127552365620092177644978473036221486070757179804043570031859294389935589688498735380866190136401275505378310964507902927034351087604822045823487785880634395316961436798992409174709961060000202760068818774389375212034270847461280268161116050712601697068102436347089005299956523653911222493816795612803874073881461542683664095521397233640710504678275588510496692545860565352174474793881248073214086191976688906107669268625075160552582649781176482057396885617256806237606662480692661712446703163182191820394685263408719517123160140667946611621644631468880173989436630019890438118984340006195119796872357503153958640850342790414758127849458207771963207843790089081152450689212661251025305671668938038558288048658861654491860366457844779987646038771344179438837544509621180035065843964474333008037149743145362683630300391473883560520833359384913616521762118415978872442628119115129843244767110718581645798645458258927267450962556825680411542871679320698023042703080316306185185945101143528809016848901901255335451000713486108656478351749459435911424639204219350352162261630260676715341956164736398488397233218809755473067463653881263762002359128418793912793589609632464386728599702389940396593128585659622704137524520548961950093801393853910414594163506557423394971518025579440115796997801614775516837438565342482497568411571291649131143319932782640101890731271072444701137426007976929636781385775207239320768514334773736835202144100507442929513440332275563361345285706388030210362280968666620294737103916158236936201136397182350654832993461117676187646659799284040973757104505304869526325166302697601279989411348540540134897123474945048044466121262301194493227703551014211209959906219604624600451041340679982944573911957583788699431289428732180760376930709154624962746182403228853012610860120178046713501855791909862584930025584464321431507775571382247863340058041539589466367719157169221664312153286779253273224883972058016840605576963779756780917312307789809598201964813118781656264295288507209575303405474046002556726487992088080618739614981850325165856079176988420332636885722076267254554476589957667362182999343226756523175733676135710529221834805227633106842878086596280847090991961326943062731246679878383066183156908099021783740607911494895376813014805311936468590352700907690862896650171038751986255508927283060898037087871201528991104479395269729943152581416911722781981662314588086658749938118651004836952165222570745769292300581813300151523797323759166378410343469785551480050471721685556160269874335098545482388019802398887281851792928216079504371889695691249207024761621607266950581032252464600297950097310691905221294430283105951669419710893016405156888429436504522738039422087125837236008853327531150625737781265975071664452941696777780687946038960982744307122071090523889094095466620158688580160942639440178042828986298221066715990910777880120264361175434557548937652526222822096496799076484465229616129974754311455357900083872698845487794650149202801352301703995906087029367766121912088176623294141880988028079027871367950590299941547743371916410059807813968809482000060937911735973188031200192926837494886496466028235235546689706941007970313947821206351272257332319805747844663506674889608682894883244116498908689994673394794302964835942410934479601480887461001653237384649973690086265013259343538690656890752040909291957157022033815813801345257278883758562906330023471004506839015832941918823050390468725441603983961693812254293045035704806162303753718362486865363818895243981055477820221488323190364188279186562644315693213234383634641831768385959480563302066399727685252640504934600009100291525692377366353978406192697721276053240731156347890763479427204030937204077432452031603740755295133943648516931593938221550484295051816887792261119241940660286382053038147498392519268201463833160138768801290960109389342370648366109226586794132293949759886006968164314092411392835005987817784044516889411420502126544548976714917430472461639051162979836164087802433383554155236471587032867545797686458774682976924102015656000017936467413445493818081128820367104182167383752635351976543843458215911998084142983146037100928599868880733504660074326353938173652032318844036008071266341856112795675312510282986476604936683735337362116408702875428361487484945862105441508629933999985945410245354176089957340231882539734443197539891830608624567639064453090572933650813062086122878813405941239156695899131327561900475862784913509821531601211382786198358993554543821695845768120791105960389614262443129807797904110736983105348447763838378959778664064081384025864014142687411339181844023199952337961250850890914818780733151278193747472351943363521153826407633549147379450584790868113795034650888388717294927007423534697432951110442114152469300907596706685944035134019398796584304817192076917374871421835965271874259758843767082396630027333479332053624693271012819058386855852487155945151458674994869063214550996434729208616564323108461568882521559319579517090077674098608016920114162080973048163489299819786483717528802522873137292698166058239832468035680718332952469214080206993629106571912124018915658753236144992999366391028180600223356098545130513854819680767580019202770247662656195831654359433902086321625675523238173183137439851611609356973116000559508447582785804431741155003181882726043126835059936681115839924696083461553989449766185276044251705023171465928107089266816712386399161074514083550029653744641182851522024167721110071521872706339645629256487030723000576099737149017784303907868951191062533230360698199637209330875666952158657657369922806755150991460403772136365764482984120118136576506094505053007712065966609516484734771516331876485541926411314059886914040855872345845867331679556155429515290272397938645841476545974279865464343454826965007523667272089401435450092704195345189052694047724475722198041647152747703148895024911029489687009625538721032018193908268613393661197098364401706487553133998529092176357944867299452767787570036997145039376303209044052288163139506456445260760104585884071591295885272536193699573445344566360619585011242507437315629019452137150622512410533666462806574051110919444222240970327126286215339592085734198883499928158583851369099241396991808952220826541604695023381328625759703514939306500806518908324801588171131554387291936164186278941487171464592206263313887861369084325625987974061226131537169756378652600367332554088671079616881103414373838202651313293914316873577011178812485010457487617608743678232802808318434368118286430037382791768079650051431849062013571755498063965156743638740964763660662392685902516632859798605967448894446344435649380012767743659400318063997304089377109186216332482728481348500489811329706073761614430946712134892021824748619189326360722735872089946273961275873169739237323861652037131235630617048135075667095644946210971254103711603932757154866694437236715819009340762149793262351024054041719022652599171006036106513772693332881003450401256006677620408095308558435979110573197924350987599649737638131674916115276436534709439282602113093238373569299108513884807094434331310604487240756432407133453945088898971691209199899276759663437275490617506185190411608599914126636085268592777340442407985497304191077622533217582515830868991623427045044940452216739126435171965204793943900632661208929153046324901510016382784560768562235953050423403408770766570544664807146769628914547681100749391263211623612860263374185351827499618416566913273312837179650594284777653039170622201891966299493401481002142882324456859372438757795223417970322455668399479985709818051015118288326195042382654260568650168598884971356548968979848273505256444590109860050310753282490822535429588019058673038435779702335080223071291306293911208260813793060888935134679335594808113391185517857281975962848739338600335825166959688012965793685527102971196400618415510905682525250654156190214713866113379698525196538228045903082410501585645877918796408330671246936919354918154482170696715560253601840206630349438540692586801521960161738413442013338357975465108391977295133840733236716300897255725568631774794770907933346493404838108013144062387727439278510807771447151055937180809848640298385427754642588973060205987055395544249028310055989292223147848197307105938960622736653438773960947131716667858504250961247271543744380860329092045843407677827243698880932956029576579327371604105475484137749364172669621926718712564009935122046101313920183013650261131996317825306316705440204970404787480842871753927884752417862245792877374951402804803266033485082912012877062018462870286857285266174071651390681705598600057093794841816008494689262629478186503100492369478735813311068691523333913030235680641382654621049848762255021306615183652393704768550936881067629017400356378714966533947463328446695110443247538833584044874571311985428588494095741553897509585759989011997840483923701552228912965473171877186823710138287691667926959584405743245437583003000096838673047954773749401633470532295738114163646046128572350695365290208178794842419577378616916464008178709905641788588492412787123371413110884548594910202191387931348461277706077282948438244547963053719455277071123243319055475678094131531861286133704392794780806093583903598261231539066246580056147249655849281679774521136487696935211278294673417510565762124827579783050400267107636062034294659199706410710045626979129407776835874108849415103907638369083779762947831214907533573503209040829784603861589339249354952172484827766181219516935363756074155541647313660650746837684108361553722969895380714222689436301963674633193303502471779844348378437550496896625383593214887568987788886373267779942092275028216231452359122565238654100025494527168222181740221941239747521793245266667476341000417910604747478239079241576706773726426891812265278506217337815575515297375617354107335051527867085533289133998183962494355962916878891074467460524183980107661212190402849313660425365809262118516257934715811133107377342933379081974149739831159600157456555136995202313206553852219881443687151598760176939761208053885340071113010414854624796615208808441968312692703495774931438941297191342230829934971496192494390699680553342449006373725528553218853369104793149420928816840754432836541646953354301686367864227405829702772817897597404154205901274606188398727424021024192364375645994961161899054710634898883382525107378212119162288340002067318895398349376872596247054012390831379777024906388407997588060619478260267631329745030716657307176206900401833717562933071129967586706315653385874272651404007821408602097234142343528624507992145471512601088154696758882206957808911587113179203987369778717386670895959980718710293043385181721991183404963333111755449493811364870421616657516556165786235109249031701063405299881014557781814482722541237090540823809711576192856294643385085357568568268576654008531328333850034676378335741274610057568316381188462387132716240553260875148316132397716845624692561362271512032827480948864010549192873297764918036780518267816416019100867725851278861994506893390386599012983316673010727338094045681515848374142684928982014439451450097631365731511986106325866467325922505792721289059180874232452391704508767828887505912722330855721277384016631647877719919404130203395760042786139806503320068204760093311572198378099466723411824618448326530370679049217956762041074205133834455154591980484791680414843463050622612125544223821272846167511749537140034218955752472105993965090235916038493781325118195033610719556913689745563325705929257859201197566338033930650773924891831763556568845490831966314668111671196250682903957974090377169070460786377948010741129339529291020047240948165603645994630855638613786728846606871352665174785076249652257928145521428756940554595499539572378522419772034852744833739186104802621619425237936913240730366801393223193294920694844635974002778737681751621892064944233723827271306224159088875787731950267033598246747632227879961592932947046260546431959865139591204108776417060803367887724929335230919343949835548780743963010536075748631211246627604351972985362263101889633242805359508311956870263292639002960790392816441283982045320106817040319573811316383474191659866618888618735575288322661560759163628946946612661802018000552750835784250739024981583481909303806647676686461770755836661631437056260521281278269197947192338686204063449978925525108283144709481659814622704417238663024251692472830332789654183021265254570928235426815895346712701121380625079367125007152605504168625772889288533287301400289936562241212776266427519967635473116686361517752159037911029654310210161985391288727710055477603397127606905267456261302331190033910956546506605856487815470780599807940547113651407298408449966860660015675401663788490288299533634785324236665675597807402243144705302692969490855873126053263751043560382680680985478470467174977115211573433541060897740307380786890241531140710454780146306316622830137537076586649777839369819492117619517452904334887529133047490364175375276979908600877449412738703457850411195987704544680918554910771685356641968982313656277311195957309510410958326948715203100731368204557780048063268908163172540767073642012625104497736115518814931992340641166249208321941732133680230794326767213233077208144352985386657799194108412504618959933219980512863509727721890429805429518936079078002439938264374782065223416826956975733703013837520906877238717409768583663529266950283327359277912774311509570843268730044574078714222345797258876533459624762531806225124028971393007304945779051070482689228912063421749667501294970617975508179603769403806953687203984452784091009343067384677021721859680696839544043959400732297353098558224076135931072527738363023537154734953635344741185659637834744434177914169991859152439844222149844037985627959140474410621705155077981338126893931726305017113766196139286214169266411918096299709957123471571660585041914561187826349256406593604330796602621045091661591764324648853157471567476415174541986208343055114424129068927049932906746853202795542346334490167610343528484459366061933009276551829504241863975820012860752049711835695062087210310355537388123827923492471737662429720680980818216705113891553990154965793071053690792845286363497140956913486872809327827105610372819740983066862654983200234551712294896807387230516417561324345921086488896190164748915606796085896982448806865959658224688147614457102053132627922621446434647205361081280735192592143175729984967621466670734255335340573163016259293707240774689817713030413412645057557854640539468010937235305032424584584117752398404253459218820247716552537313696848712318185248752716819274181881877988127256456662418790836035428996195740594705278299540654676253843767417795348618149693975205044408294663817976171347301346940310949615041419589239504474507140962265645701145651770969547511777067471353646749658154462082542653676267731476708161793101184748702345731976251515732957687976902591793263095664444486558315944879914659856090415708961095757617060090325981558115706620450383431758315575703701773681773683937842192363072104685295382857056993444317851819016423987964999356508545499416340040165612406977850228659428770627561296726800380086635826214530292844049331496585852330919519923871878366868999425990770790448582761520114221253442480217477542252519162491543679537409638022700735723050643350327922539161079610448881555951179160178484020037454079486644532265335705855475495154609019918004093736404635937468271875078819575727860873637569685264868691449914436964972602722613003735843706167667745183017394362479309681703728754562892728761723638167264790073721171858131832340841010512178508123570022226769849892934502952026469612476745020663349050120201867462805457436529305768536975314935097135720750860916743850306111427290294558734910548205373724714507238041470271377062396062798018135843800871626094279440415873863020405643526076484138402087093455348160064450182500664482498208165715996728521383599998420273318373190868855967997190229289728056571946272222378269807877406630024557615534195902394452239549173945621356288210236936091702601759675196892403506820334367318072549159155097965197527263990917249311392081410506740108527546372098853143093718255146975605575780366661016343352472445498624100407132959662136801712015781340197498968652111996499678090751772778160522010533359453775548905113762595089238975770386877544703109472267457076579588677156425626507823087252740948271363797217591724122632610911414604125613466286569209159445662580307678399221061286417795657677515109087558952725140481659571537131632680230156530337802287042767325446291156287855635910963640899584733601590449575413406388861231402860529719198941455380765722385063668879633353904360122954162614229089556660542905941242111883809060260807317147846804485800718050657992445792334235455612415022364557283010225435777987319274355311039090698899390622131378180004276180057376694154017434288166463090189390700623465064885615785263447925079594554702439413666929926955387041165588643651748877823986701526306694968233406207477101418823486077499419814485738517991115901087420613907967279523676548852395215849452776369095437364418343048984591000885503130232910574384213469403939549139205563530608306967941056753675686414656073805773500643061058275770297908778066281463611266533523124898071666493870187517810144572589748208395280930576749826429667812660974804777759456651361095059778195705356066622502158710298048357604385485028815981167902530926102543231235215349704028676722064955759566095925471644521531138797818457358423579367905775080710094309116281042586649785509249775731769881019403907817994035880217147598731752778608698293785212189515927353319866081324841351273334649934814165356851848514566721792904344689618974496322924956600000759523406210408167790239431197892822945875707894547817948620797157960330182064453053936165885769929696421546898572306357022561968538061526951118834664247012202795280328779065375289619591954346742612752146502083117346196247830877295191606326916409801994828893087771136415314490841743409224027706221695020124694214683108376634626864724404976078374228203242193355952287184848483550223456983978403701691418765838798027834580444649202065245944693122011469957009298427350521028988240747230629795704247702924808871631357332775840781041807338527088918614819518148824606934900960212190298743361650674222715846770726046662449450169997764741395046969767131155359541518007041674957591625522140092646288557122176205150873488848367906621026977819231086127669349839754876593250083211765477081711741726748496152585160168987942900051997906724556541371050224260944809575156087531971192169243991174632159772948946422910900591542171986461665591477693150048476147517262151479407824368763430206660057948042727888460274072872280902858521802862336667285923936522170221220557609867153362491093452113440257508183294726264334567503346995988518523858110399069183776340846830974834914082833443353181983445252960007005090586245265398691830486417210933530251299786293133976088360137380128455897658074980662192685048264145796710451435030079765260422304018298083908718616776701251845272838695359060900637136483739207302017745308954381766452611738386604040458382651270034904407920320444506603090937641725689400360290792355194964777705563007409705576487412252172730113259344129727374045104342795383301483027016431406931245786058264738575352324093778055996292619777564256365650691983770471829492424575664020270904224595676211555595788504108954052508463483592988707037808097565537604199424022164352524501828361227766552020991304989268603742911822087706488226908047758321868503930716584465776335462599050563022486277047728301710036840738758683146060779728208634027834644128362042642504346189405198462042660230933550169615154513813837284163441854625023095687638420258257808068660890650922030011595308435125195518596907890357633948193314429272556896981034118507981428137062703420946435013789278874699110534257546689369633704090990090286771489767423773590753843759769278336046760914704067902611980843287895675916445467913099504475865991340673427675885597051856009194002439268980323886783817500977868297772471713023766916157946988085129095376203873254599130342421030796098099365123057158204290737532407956160692557178489939815542845256346913953383197738641800437567746899402872821438061885847100577746995421208223078481011163282254295648646055714334640331188979792175327112916575634576719042893791070843827225801047627182212370735321493721296736971340311887277615367244292927835462297564367547885043894246780708574949599110417842004675763537068770062246419643855054003638628568516456157292022375717414714587984778239587277972934947058186867548238995148225667539951808124778573404490128487381634686881135342435335702214418991874952476554419758260043045374251895337731985424328559462281372751863451306506852215817201905440259777602206351478501725120254148115410573569430674133672396420549867589292410207586974766231385435919439260942853838860564247761237784360302367344630239351649801402601826882783139760223052419829551210066743098101105669619200388286859399810911582649415597932517381067044782873722525080155291276480900320499638095641405086201828051466778109175923386703305458631196817606902109271590055517707615478382360436623331233213487456549984966905164736555446336983396146488030854165808363714128980379117833214794779343726087712151908624568119388445103940951069221718321578717433652442689803546897201670891325388055704159827116086010770271561213681936289261061169643162859060762015636822351065933393179836668552247651042909963999734031364594536512966478034579207611226470066893339873947643751890110176306364809021876337642557202300590521770569566956695990500555737029356389118597973561418805705034213193819336868278985640491013575402441231390651117502171191846956210600686114901110935798662441627823663675200627969547556890875227317515686905695551292446931563687454837542451762676945843288891303476896904895249141379132426902668231181792031722344731737536203216482626779468620672201190597357298227809931903970579774257289986135288550828718491015176478505989863183931497248950606531777124133186603376056133125936019450590445876535872635282933786871467709167391369094692348684144006302485133846245798896735081069834038840735538242586912458745558043888373202584369594587875774136727666912959123035153435524618324010958684727001158635766960732591939200473785594661101778493245786061456232589864486722768145130518134941521244799568015108420927557204702482941323633778435685527576117031367079056251680624379600033239139048742200642925028414867288426047722343249910244443208031951091533615119929695560307401557078014541698466379837027537575178673693331100988401599438818708446342768061478271440843051052507215073651101365739625482586871469209355505869125569241994303020283494168785225133351258632560879085781692151312414961818605337238417499519305480285092479452674344462531169991438922045793976735012666492448745332731319332813419225715147905299984133572567541143021961455771819855122957752953001205160264583832136150346426801941200263995925930693439027003362705405055214366997005703008014452963289287325062687119672767609889565770350272601007644055519848923714415175693040885406652866880169935966901826127866286548556302693703454311144466857448954673148585170673832655594125789648906279541706179412823697960124086258061605099731165142086227532888285310923412209728591334975380390193019634786734254736776732221597187484160574804444933893075832066607345074221855772051611799032895533343584344681931409416981843637737606071928352764845479509606977558429474164799310323672531617826456180583444813133834691360295132241484137308390384192610851172210510334126236473734453838014105032469475533464455667264485843415284797515175061193335599252903047209670185012345430260552744854771375900792937793051125633223439964875220586085315342144111735911371702342083203681019850746804832181315257198837089440318240395103444903954569198146344270235749842934831721450585933736976588718013644194598548265939972518115469910439620736442319277223258095523285027232977085850431891638062130663326182658745996375756137406808885640441240210441884784615441280647967840361981574491726204462186569429139847608435650959823832395381799193747777278865028132559525274236344982354815137532791705782229233920181856517241679803089467968982406210596934379187180593183444459260288680394876090746039305554613684766226364077884128952205685583338600919172385241410963122417349379810265867426216943656317294174404160218519106867541872223662567403660045259822969794602734136444677851143712949522999903429142057173117464722918496007804842693215991034982077849911355525206687145985540230397982666073803832147216076380236686215513625134919597223134286824039841643013297513529051844491686991261489754807685550471156382373103174750567908256747127844406758596561066551725428507841335478745581899892495646292196928867040495920004608969406411694812784422438860089793939028568575836957225721611788307727037731035196435561582327586272333112327224988644552810417313945758874626074735333078221222811741446624159406084358804595403956509707870602193733203527597297593905798200645792743077796197807534621064803826125515459673323029694318339111018458351082074186965556048594872344315816740498545328685025028616999325170848996020036229201379371679891269847179319807070087612056599207155905893516467016183074820046130735084791232103745895682726506590511249374178456677083625469438370521592558661718483401670174333923722186606827774158237849908486154193554302130193139506168109686167389104281670724284718698878622482593566899523184398580595687438914534891076873362110180737993513338840786483869965589431681661869371870872602932380393133555057298357708786873601276502024250857570978646657922750299384418995513740424626248857027521712826715079391173749352205673028115468110687324936435488014467613751597006965409016033189840771949725426104153246455706279106018326515965204499775945154871476609909684801599488349768896927653251259123030390119828475692729849074612801426084687926307925958491210205584737858699486310260362528797817612829764417637105240835834571860195152471233808113441089219910024732391740500399675425337075422639822762382584072394970079040271458114571152662703275226790858413967831131725983660724220142867081816005652719423456471626908197789691500176956459967293692111137195028830578242531605138524707043786519375774822811903242034516508747475649005760807961215587276630231540750089178979788028378454731236996005615407985238366541961301089195681740439545112389500773657299948519330141462077717275343946432213601339472937013303339919456687959340800722709851557563075771931049989809855038678886402008841908617386976186646792088439089849251144886987948301820764083337993939248577915410205148279400307609435244452216478380917138059378069908787219489685796442634894875389097499984195565359571939566052145891523676299626367798991890215376829224654879092921606007832649922076443565753031186086233695523280705482305338465217696210684194393396124011771820480162634584124352521625244674995907975193425055427902619517846939284876412159104645744430533312253976402721563100212545812002323441716624606734933639513118262887948946917227537275029938064823773275436344215870377970715175134420884201198053622251016143598616201104015384537487584902950765143082184078627287592422780072958453159176566554011701747520615475764695560574017302750018418570917936432207970532927591021504578422883007255001095041762224793698294380467506635827375409654505899026442615137498142481007108446831445293545079998101640941504645329606527832197019954587267177646881697938169577481628257552363642864838281852425295782726744638781513911465865259005904294855864536402902125195300292997016007589381501661419590947278731607444512995409503597204183591073151285020880996581597087496541059447554495455566928358556067499277962672105061232703972790950434139725110093812773684817196610716661567093740906655668648034319530435012898844566839711401545281639571309303659837583845486473433817581044546234925578541020974105992013199974293082745164262576043461414667027268095085248998322836338239730849043523665913058812524388673648340635964209518136449452086402540951446116901986120824371999580970106622090051941654495857287625463803113554642140461372727466230571505245878657913027689926979190707218477546944099156955371324064426998756162606756892429520408544315298532788588158298716064230466597465211468226865842332335775753460869600516795101321730709456907809056826179626194670541260977993299693660140085130312929014944754889610161892640116924446971326261656664390408571324417286405343626762762233493626496987804135669078334861971924699862607605280473018982979247092192391014282066894719265325656333061304828812404849523753695471386158945653495116916436760711512774550018512264983146715091542587388609316018017250149234182603325443727102687110320434375242893102150903010626742326787874624057455429008574196189149192424288707947654259481606312395905907185422346811202875533013328137573184871051768071828765489529912305567426233549127056437707402545076438561430845390789836753732832487608041825326295294125077354411511145195880544328139349061016739604632994685056928578026793207579865110931021450373684608530975008101064991877211557286907752595230478532256630537522032283629448151418367344219860471255141001002936160710916309864235726964526954795062200823191960172138130593266811099903139517932707477011254841170706965779690424794151516771195717531593201533001300074739001341749397980065756697855898791151678659878458089293043326109883169729964137157898967072854994299659232611756128741693224871364681116708921739209017940261195220929743460182769466151663252806503768715358020788564880704763306110447848874255021110615286150301886900601677404776392118483715740736345791253366203951064916815481042984299010992958066710466397610317814796812778839962684548512180767890549297825285207957592103265044846159618738201944395610998429216768803364981450254440469507455098488868018610141574664970030142285939474978296132236381194388012326211032779980124788560660651086289201117779316274318046507079190213705735562393312677468428270107339332398529978560626151584302901724236790327975812045261186322433234168473982135699831921204809239767044711148251755696035424139785048483394359815797737895678751441799271727382290725850205160035714601205680024017680714555705540008345735901816106974168174809316759434112541659873281222713467529579598431725881083430672621516146925527513419219953153345131306847141499186320579244914568465050299982949435713271976050574127323924007376184613123985928214979097103949371855123639592548807110553250936829425289323056271554478243303403151693274228715080658452583497516936703463479019019237208001714130068662028042152175359629873075978092087745028300221761454189941734278691592879005055615651122548459991124539657686729849473160961848058813023466995479523446008956289448522671743005021212680869557507343174185138855606038091181954749736587202329341777284027218565382744205592505566062816973710764824271933049643340802958880533848271585456874811542278553687917245114708224213654771882524935737500562346261756429697529288947514048467998750382225077365767870523749666508627116831565493338004865682238950538157021943260022823333730100036939821837471557887120299403613034794042174541924774621781604820858302798876068092646862123408789722102810160452574848429367559501652199151596333867742801208024460601522081092708015561541854169748482999950681579179152785784115770371523587921174786280897227088218262252596696648944459067612256010644499677297171217433794665605808709932199122485037211807038114935231670232331401933236713421737367779319748263491181820889307925859872826457919733138961808627663298543791773175005383788859890301052760214629246429084251117090808910529162454337600437917313851665082412996793218695405059685268558541102882548418003157929049937343357805267116791964067417564256859885389190912174649159909479425655869283435078248856982563182710039034792938822274094568514627767824461381618523948787157205965312340448152392054859484822982798756627119094102694891420669475647699788356507399921868805062587502769168671136980420264942389230078050508933575491538177054304599740464369222285210263995213329221248135052861558058201112271050739038584643951298073472273827016872833709664056107912603943917943518447465743073881488238418139051002319392026824319441656826633319216131074684057786143104796891074302109799921288087602357303991574463405789049304256249356610314808322814943595061339027545706822686746317651697785337688582189914207111050664692144857979919114557936321486325619920538802783138991107349967151362480559715195131380645135123617901785599534107260389837191667349995252609796332852514659848121169960526104435147121066915018084840553259229215848289917224556407105948797037584800361712935209190285869970194799284480800539997776605567158000291136604078355311166315211610429424542303249668400004657065553276187332810970995466524726576136119197767770850493990649243494522511584439804417357756957040027772863921922815437466161323864721203592154567482047998797185561462603598317602864825322608808123139809768663613782234868280105508006780069523830004608898382913039417711081327521559446465712740168246499329200890519443843242180795807007545578082998126493834176898575156015376504807484680776249074774221668920779236341220145876052564471740389161920661684504486366945387825822586370333436695217934651952871092908272220479139108281278376077621655227186796158636577945590946546260181501663535885544813484309531201727260595592252115874277264563470456440100393719504150070090178154378309949371240458985584624475921040781608960299129937015148219636982267915432710609390390866130848404007252041479558704302693422126995344070081844376467319845079806185361177511160669284458488174097812187855568335898194539941960906540964212918167631315364142852736951440735334692023566571727513924632072323837907416398320246730493643081468929702631687904230465032104058953089737042531288047564798736953986909701397049798030722009901478133727371554246583971734611172867359765816022348012140177000757516342068541274450678372222517713193908871662362378373241138350969882912356436953264949239132467215901608455892305840719140310146947333308650596995101470900976011614750314138791728369872834629820960963194282069622571030902292035343910253480239439661653759128311553771580165649634537838789756189881533730699264595378139403331910820660993370646727722010319448589462435458798548254787145134476556380882624861247431457112109914926491386804081474911646854780578474583794108911209411925929535127503197354253144680918255160057459580596099014432880256708059470442587796705565520066558036720984105510209750417122182211456603802552338116986370148785416641776883309620736088319377842186871760979094349544088762594570049569530371930942570380798318416985721001175261724699199357267662336347273270706040288058229066755214850673017573648928261977267561593623533746047149170759786761015084453496413838671392389698268566534138420703012896268771010397834533597485438146965669449936480730266714871175364084838692291240461296140778167383712692836832467946496501651498008029377538839752662011530976012060568801586273872022527382907583664207662185236674141447885604047000499596944247554897238855946760400310332523542731668797083130361684263390124528209909346745502995287706164063856603656064949497142669047114079763587734203430066510808861311861383135686021787582650698359470547384869071806493652660158181807067156286080294277110315694961881799175355066247917079704934165280558620294404607991099786103752697488924975388989100141316281297547994236797494926312283315701001058551973002621525168635280448597491917552837403229953204715022973478554415297169908240598368665275462982646511823418348847636583457009985319628761516939337273953214918096836326054688247075620553654066933707697618058180119705791148301213569577657087361845204109056700262828603900954736122537559075268962853405638732854662434568854268339754037307277845711622704435212177010630509125304880885679136982266074400585607295028724881676516854810908080795421421468168542208703978763974671235337787174675544175670492564653520103076138303846336435825142021494449296909481906456659270948332203742076783206753815547404023650785743775565760610994020415212756262293370230883952473134778165549336813609614417544135748739716412497305538402584348619667296302052344211531749159866380378586840407021674006096635572638075143168146208212969815478588282936742271265750278266231563087609034204590907883997836309435188219602128870253304597346002930180287035684888960758139342939883326942692650466770495161492252941372354976787897896426437736344776166841066692779324676314667505134189688264898091870588548634366068325389648334925576652678854739517759901512388533000222418690595236789601040355461558936426516713515072303976043780859334708510834531829859646798242991578765477968825526057882755379489611585559871979250378157814997231340438945217831379162280956967926165885027491358123355407401765792013931872399500568084401244219358233876306771197072099355825376572872482315137113115143020634666862196369913302846747974437832356246179382340232103588335142464020045093714463323359955296496368387563008942966456684927250028886273922628177327228702233240216348304028559993237480489833785431943142593259019070454978475648116700879202036102108798168708357316136341252795211701785122486174103293464594127007788303771835477073626370285564184313966077022441799831613180067672844823763312551961437644210125160965073074134531257599474113961767052588333212693318938110542427243312750508758842266831590043026967128665526325435543728844415464096654038834779349814979502678842138439668584637661297489582128483235647200047283507798695741688840313362877455195538135452027198861186053417375600935015466606154477755773435275733384804508056575093767359902537086759795424379875816232678252337373352026196079873086651456162385714448438426164390406100264237310565263012487969529473510869381636577606708929441907529396724035286558022069873067032424482853692878616785562857364264217476749297531651266189486341618408822981955018928175684897808668567840023118988740968510834957746209588254731428344682246912628104736243156594691118642762668144807442840331892573531208214962925373520724354680116399161498203744580422383375225621488085723905726967209828257480361158478574700244917468768712827377256069934015708041179192153194978143513874692162845973386465927931538480027543311602206654006443175941914960440175741792860750347277500333048880738921930753718761262596235645882863658857970226215672483268870900898280939922454235407175135771741823202691050563550638961455376807919139935984081559179762715195139863281671816249985377696173175167925540079497673747042684496265197083424606437519530465967501368062392225689485381239979809231796823476604789442228332961171929055145358685582965539116426060798195866630727581771152888374960739331664201393605104993684506362310511536268160354855729868985640016895139688322505571789595206359123812669885302820894035614938144477977373094008017323692134281497894468505272124083498334399835353392275504270664934295182598921181790365965870577579583380844692238458106644110986399066463276558614028663818205806378893010235883276183302035024855627219949023037663684833793990269315756020849078306913514593723072333822410263430219433689822720098210753020008955312052331649462460009125333351304557045845671954727188553581017090415620545951647859228478836248238526800206191534803686154456171647023067751287768356214817059510316183294637182012340116001363539738313450504708252385161246420423025673378800084127835993626626894351826021264618807582951106882692766057062986964473053131728121138771576913602967298145227798221822767674522305321512913773448726111809908663140054619521132410080389546693167778840079405333635962302331735936210944508140944551555066154626659992806271167003464780534065968563165587380726511555093251418287862366213590023279882617118281224884731618166281380337476695496024367689677430955600905029732002566466122001654968326704208060363215615537937198204466346447254258811100416311473021147816971593329162404626573211877522046961353544329366047012981683803569645868074906739547398617628370523548521697285692794709233496044179118989655707941489481544190898803440261423230995005867623835782132992176404328163435117378133485923301168824977922215475897984196912418159523155410181045041698733500134272895802631493702308045798486732137868436117933179156576119771955465770457824019647358637718902972679366481461936105162645448041080053385050801959523807389736037388167646229817231318341626763814426665130933052588422486556227222711244941814916441432991495808645747300749126673523992454049964158508917031189368619981897241918493470005127204904522120207361390977428684496995190159902311915825682515604886299701590934818886739255058704409961332807558712703099432729435314883175452130108087667919580871440955317589317858807272709874665481863156429067494845436133928244150166597086092021821654622220454879725705268599422985066344607267004369288632450211714704421202164751633616598921150503796997363429876470054019548219440653494487984193463315180310138408370360968714582598370882389351495581605528093434770563606436773129136873483617166523769692160649956051471657520746618362189380055480691094201650191029259693843292946327788591826694427901422186904847501656401871441021848573965750231277579096391706573285240862032357166926080350053115739471630048043243312046190288025287711628505285364491496227593624040239129866473334767502171309553224239308875954353627512062706233295177443733594830344464701683324100842485710899703862040126494509705165838310557323491095305599344107766841248406626551498344986077435045125918184404672213480277458459936102487689957253220949705461540088540098121898434151480115356673529981986246712681540458450326049511541934674515321040404214089599391610382533055367087955562031642657267602984302287180605304006954202203668297832014627295709291191828558302685126546381763920573965295738427553658518067028957018591520140237913946994651154770029803060460921219062351303111880795834255002800918622128406091969488076080852921446651414650463801202988066867055248487432958241871402766360390999586570784328910891881866014172491519906200005351806532370153685249059268825294042770952816298257540712005857636504372512090489169613251776151602463634454665728248277514037346644526084793092162771852422515043823570055036933912434822087569799109602229819176652527505186472109140605604268309944410659213498423408383174015629195536637514270424324239507034604307847949535539234037791081424684362705977248578789654751488390521056765398375321522958405328996632145836953758215313581737461635662433240352943600396402647583909225901685303621554038097271427074702825001593990808829135655399663754543512071964564296486085255092597014671343970954645424147412895241062940818322983440752407290279518519399035556330536822452651694427030058887605558680803946879021244749169750207833760228175614735887283751092491213718211742446458236521032386973125944432619655129032142198492632962236149056757882496477694250384132994696246668777571904826280954316415989484895832792580344579977476963135368247679150369604437648089185858033300154764432005156851143912783642655310626279462636117891665286875512965863760206392204114999751454554294452019900313545464074369130277942410015600132244871854220150091560271695176102164710300677607301587939394145183061354654164307879444595780886562437467959441647933156163689488517585099024031068395434360951434648348987946312605400352572858984485041814869224763677935687352995889672676570897167938094727363420742752378231351572724372307357244580799926262868385083862813889801033307748357022263508417865316595929934147473634234764145569202671535762036989786355519629970499537827805120040613368410363153917675484219065725586022219132755701695084408608733091158655612221507724383748344074206151327896436881899741278631115976631863669775602084595595445440917307833561154735297873923595978565045955118861614344816413331143520952974423707165996441233162566666287027814774842769914434278174224957194372579764389272541903241534519736279594827836579022522065210880313840489350136299884744351933213279221197242461141380839495618187105074323598549403588144708215459442456069286605047830035246943353317297154139757846568881602513079086852755633814098133956035067103848278303291906831979396829666411187934380245584257651429718849746778332436414558889087139114994737884294956588038527575804149715262386181562518526151849485383944077989908505608324275274340257296892743515228186119968812110672202005555016378287802547464812511183661209913369345613788260991226426706847060727916271776778972763328370551657144515681725268200906050300783170180327966521373647916217970098736230515544696517099138214234488725791195721641734077064216800602764786197690558514637192850761888286576577823416120751696151494481629129995559148953152293703483737676190161126806870925720824923013883726159693802905233785780297950998793436300792599754551103531443035892566288583602781734204657736357635961688605081181195502333376306045170328269527403659379206600754504860082241451015803529528701363016682931866260152104076910353030217702224897361196698073622194380067054709119132225289026277561174165217591761241717443688784742269532784395501693834839617424120154428981200765828703948603899378317376540984106019495282121737068346883450477589220868369693883952979671036329914651771398417761168536633605067632096588927968755216109230936083166246109172034926209483768703349826679354286501610330240698962606902372456498210859885586488489505230918565979230401497673828108508607314683926003323142370852041840852856957045545900976199758739897682384154951231695361001116445051112027017792881330648147838857373770302993032543660894045215589261894735318790531139614118939768371160746250954837087677121628663136451660942709434191500508042959188942553531867615990907569366150573687156759615859308341164159326261060306963582621452552381143841126308643756396988019021939781775348707759746339025029280647147565372028765006662137396979508145948898711551407926646699968752829974534896145007292632232134057591728017503126832811210687077438578725934657483055312181289901112521922594413026345544217939111657918383815106039135875788567432836328151447300034046012368222665912834837457435472932663382580008804686319009094974582331210592948955159240382429720029153333783756123971660657490748782577500767367493320302886845970494842305213643835416703094425689065069355681640189236263951130805493405488357125183090567399337134738218542076500187410643595920691615775627685736814693335905919765482137454741169218049091703185247517634542443060837161007703543803155354367301792817353055299588838672124905251395581393936941617315175750486033897933128723837798557630184042827993476099431139958612406437577823070157550231779021509094177734688977754531818346237084466863122845305648677914221645469404015386803999000854372526919040486438286457376124343412109197197634271668710414844573817853465291595938351866660686874705408746655548118870786123538163353419719836864045248310152809332151430361466238653988657307382641714628953158422064670969619222662775983332208574342357728978030081235476486151742074537836805598743179598346455658305247336738181647081231380693677948529126764107920287961769133938661518445393309950924187131766155262003584028957768280646565774805564256416751850030506706853883600132657704189647195305457361999635226150898610049044684060755150940612850024386330196121494943685672705041590831685030958362714589679520723118734376884076329541084462150781915765041429362022505734763716334908219352733664400452750999799776189411425079376263042624234496690120984257506125421138318309268309076926189027305836730331764377570265511165246181719002736746766450001670574666123832968301615626364316955088874428966139450711683029528406944347676095097688571439382542359838120505682220561014629173174732666667727824221454362739492174189725403896868227168372365110788864100109650434269563634794833252939332388449962769345892363075912075828709604101232405336816313809716757118451460499914770903973424564750476643587425297001872963727626448803174289916073726443953829172028021619363255440561276892669842265938730463330642358693536550735062183767535179226455993008177943680441866538374958530556984593060278605162964162326519544052204711714779549056016046415298859330193523855070922979377141416106567255049120707006322937829972796313080920757496206264453401974118045925865458671783859511699439641947206139521695897201047467763679771119611738116638931930631939325446023191970650819388390217108364700199477516015484227597077127417418003337473590890043282753607572763524612608550783710888787062968114068225695521651175158442748599174675986444042689444248358477818715944592823625489698270943395695832224054129368409962715046660011497931360853513678965232180483615684379612554715971533081265779753612177311664096145454033725288302659549965071897572236347759658241461521725985533058869086984678153292079277053829448709349357280204857796267625664606978313763427837798466883627730221699971154695856508527580754392484099349478247267218775826504047084172478482334222849285547076340858055865365496950962374332451811774876806651290018158116761675100949799156292158892703138326295533591724178323189915504855923921586055599834953186720465235976373907085543631202617635392352349729938615428597342633872642353354652328427738179390072401094488527671695755234267587947904013175004351396894267929857789589363421035812189549832305746680545776061868517362973964408571346345697314075099560949859154391373510417192654008421770975480387697855197653423656066042736966360786674209719818190726400220679801535466511141663410090374590911244061834272305983377219226906823796229957824040459906540328938024442361878714038146065142470213199044681146254612741121006209331102599058229164554067826297422844995158846204301077113500302881738802528899152249637514584111135884947201871597867901829274610125408634581210117094225345628562439654117153962638654106961586958394568630946275951785300739376842107180060518416279907185051332565692594480808588473402786935654113500910816262446534631085831312201696695675051805466941032220449647884951766100432636333759135280028202181652830280427112945571470143388457537919172652281844542741588071156064474381084554412001642277272188295079263284430465533638580557588970914556666338740343620255153886485970055102933894689695196742902314280480950779041439469793511085488332088633766642970962708831001553690469378658473558892219368980202964462879170877987688735239052164899222886278265610780866724946173345540450740518897307263438808372464466583953995837482766767975412549298686135323044735187891386290649685028635699718507499847830469539998056229237418364284814065373511874552267577981143129841851035862249285063355526668793217427837821901354345013028261984507510786833138777917146271242681217283992637194165113220855033370486122944795777410294472068089672439144366738143511959642087997212245040888019145045965665256670175126035179876765398838554908545777701572806223468821089826955183275039208463178339174855850039169486912160928657099372734280490310989890906123042247612664508615688533079042468895107904602976114018137548848620320238155748591443327690495180958523861605732896207470578991491266276013190278878540910193909302226582310682766342707174338156761150166925844511130089451302164845808000002991160684484429463028775364432361520526113614775248938413000724325403907585326952382243894477061009061104456846890928113036133439361763082646225389764050114048540408986423351550032223729782669623057295438190952758796777084297214256515661843347457256264924073197357506027171608397371258164631978244701990216215631374714233559991704202483066118342815637261871185148199326403503763809833443197857718614627898411720171873007143055741962042109537324729524272158344334441106133922733606630189191343261505613434330543084781496022078149424589989998623206891233381728791499689953828382460388631210253760181606796422972686389756780701436772650338325120137718803946637408925837262684824146106694594927788837592289607132501169435122609752763888470844675579958061429717207119615511952131122948687036148650396573169540039084278569852314848131364978415839032005018352253657042293687726561867550544494563215908376675017875569883628180384822570348018534509322508382913780832595093745176836892298689174799306642943973638567652682936522591178329877025338011843023913073300371264913412380418277203680548171252039214265857387200301288387343415709939535187604359636055132404373647880873569635805917269294336977690672187998129603550128576898120926768218325373389260123247259041333670495383475983624525859111703974693661780555459870984480957412917247435058198033092076799533483171756302323200007222647451574437804657249024030314683664319400615336652288946989659241595315014010809453820964161253889569513650633652736703379273417007159363436474946729308935946877402582518347687758324854173039315378352915724746658193253193426883810803326865502908272914773361324266063596477089559881515762294839433901275720599057310722918595298233880814443071261542766945023595384615542133517298806340608252612968973144862527144119640417538882393096636973993033297632242108980656702788934815849598506570951728911133858841724646285862452783892016468324594922106570949392749855324894949129255976577678410281151855464953361618910035705856091637145018339506011141513731490034241493763302240737811778081504639276416207583133729643385801483477377057115282768135716224777550673950265012204676050275463898677571987766134619370762635075474413255332838393640911799353924563157081550026107709156534346406209903170365986193307887177266119812141429277712095363551039719227973570710100192209011975878320159780371999536846408042854369830972034739187615372488239266184406566479491461346201999884981742539118734745189616578777728934734513888343633376088397821429662373118169692411450670885635976146070002364192898964928722884394823819463942586857101331227076880191605745541893057978568280561671530495787805051949711159852878228921287558080695745612370655311276454831419287777783168552654958653685571911318138769845875503056125393869818807770025758586261543496495437959566676852254312721552397150132755001507122802898215638132609203072132526219768458411854998556794343185394900449616141962224673581347671986536322049124819480910898354875523744033769459710264189598091836603225061521379563147783489133936492214018321972095614447003395954165386793528876984265891397260433917231392670954501169455497342838484737832795731722768033977638430269723779911671484277940839602382054319697889496303940786697840899172023141583236610873818801960747173547740883332770142936267294954725628336667688810855467132665777960942794319045617920860238846313450251869524655654654680998006758932433739977523180014713035058136578933123367022679378008273129390754608983853329123110234410659762509934408707118014098323033298669238105536025973107756987864224732338055842898666272122132225097478553831831847891733456691444925099145744750404993870297488187778432926252919651305551139955002443614383726921996752372143649977775936273678886690297202564946269484016525622985887814272148393418927411321767334318632828620382488744371200331914589351587746220879680799395303734833410949331618477726466841970388460540591409288504071040704989570552354933365995850753156774933962609636435710223875473405613193720585327857191867181873333032253872935978919484864325614898686051245169860670372440220043167210270060448151469661519665975738741077680084560277357375642021632892352753065917362609894869605470376901089119646243617055590550948185769014677006540652323202879457224291934866009168283841142208522658160901845281618477823877511592562107537723841804827719889350268314366787968142038369323393057069888278837693743315452129197365404079113075610968276461873830328655172387714122372374777087734094473604206403307050327574546738801286248072426707334860537454064409006735122123033637956475122475670430201237803308125426182259927717504707246685055881494158820355827935574424301218058297298397631884335808645129738467800014934841279906024360595828587131676534844677819778827727854408620163165034101663579799316463837160256578929503732924997994048020474444158884885628765199915544341285080561758026242040614411582973281752036778696280013685195678975005051640566642856515076892260447846000178638116788016202794676095572473908032966940966479047369336480159966510183978813689389223373984943544672129146344237388803889791610347216622824911731600257448161211795349089041955824560571238754594720872919509782433624419608143849800257179526623319155940496304440667548121349923688183982462325587761140893456548395083436905256517796191436214531414003843049927408087312394019818705512638524917676582402975254369130426599084446619645552851464815391408648588473763467859133096312193253450820731522235815691051661858175662279093690851969207912494881129333735433712407836476180733554025869420610288232637015524113782194395650200440091153295263641174592155209953828584880132180508282890062946359164284832867552933955436249351668782072545007563948232464439524114639609080656674341532725728538133757661439618370902970076540224641957943048725680936694046463479452038240162171390292619398267345678142121480692769004369462057733576232777068288115571101658583321632901908648741274188661532015502219715967743751733599302861193036736295880833926984206799135146511444603984336638710880498368554499674357496997655085160469353890227519834204713677030383505852966576636092671680405184350853620905853004864107531714060105130949480695300613463745687440620864774901991348462906864047878941938583504961068449758171158873907207809112280863645066962553949893495359863316471228558245146348749571367749580086482278975411881066103339635376918185069843178133748193823425542471999961977630224558068883100901406327310804291090554507479986854163605819515340282132663474787195845218162656833840029597032074997534271496369428650659123821467969285216387687770698938121470167012598939933024720997117302392646874181416951327359692768567047276582271376567887391845397873468287216565453556420112895646365170447281283500802868851959301947894201170538071019677715821307854793190683569212690947192604060611260394354991645147922473778505628975550588858919280209500851132444826647185896163132356784941379013395935767220564044408890975350404787772323973959653774249835086932604237781423248192376249746337104149571493330322502586935241568369780567210892978417871900264741711256868066398560994261373652088165962392469523641184350305391926153548740793669453194802205662587313855747062046492584730267235981273090785043946222479626403323644541128036842893469186100243475104475626002822725250291882785213950786444662631762933038346547990430272821652587721149759172520152159478867453446530369085395644233484350486032208003581030596273260969087569646354845039342875954411382642491513920287148326412324997367208010539820380252641181264439605360807976751894162137215980583726051836111466614954195494728309293632835878216593268560093677447817468957297773756030704393928486488843058369998605872409058569649796154632725338095562672729081584626320136816884338038275498349691724091214556636615154573473790944508084646749393069948598458791559013203084258533212736705104777566950382725921600161677199177523842753871560178684793672903565155333539356789816489391302174347339021895533230283364370143778974376907909803809075341125414535137161957155544623303894959002151073902725147082780731579883749097623051184636773388635912946206491410664036475517970302158867952012798791337867181609276411670068837304821212890836244480257609990116824897738356268242660186793027424710458424646000649108967649667071468502911977650054301370802619661292930635422905812126418267247677777731286666186655187997664032099925036333104232892699312665876124598507960592601647099602721150362961518390274545320935193424178884256144625758487388463114791573149912559054105426995278042840371620366131432842777083194532572229597617334969849283614341083557614244594821229216503275292654008473542594057229672225493448127530455700804649513331146207938188821654392625746928631955137710500507883207794425789355232383584001028830242969754486546009804497614702266233022279778469726411807535908290823343387634699252169440296204449115797031128846902361168589069775734338545793713736432473961768672953922739859913436184853588452870687607842178120827336212270257433619287304582087737450141041941144658691572770139908451453632301434632829667467200636835896069394819193868698478186781489667671601616527872901649272957406826039612579817845450677576482926747508423078817333092503158665675195573230715072914618193016676467885636346567558679113750852614892288016237834836404814263673383337141087029566485023165401632258963446853205808699417461605949041570411029403910915262527340344039679346036623930176631467900889639875364198487249706235319984033339910180355846991330723978740732021699311434850522499854198094503077815737634784729496341034566726620428148156923600458971205751748490401332991830180989192206419582841925341232315321000077850505376791379396391974918311650918177179899403042247021088784814453273074050856603185810177499482967570552432613273164029829355586153103233831945954832958713097619815125630961446849676999558455375836374109744598953770930594255051979272205096003110999955696086338126644124917042280491779027153115471497063541009439782990535698284618874842573720850205011412500479742900892775342579383248879316660396329439391464702857443923825082954078665660826964961415348263054414565471204426154380604664300135595710350366592377718264794522016573432821980599453479474108192292849829023181225408358607863585409706995208271428699902168317193550611982343331260733487690663459140439229845786579899250710723130003176915815409055887526603541856155060855942899681652566540822116443807113276979128505285967464811191265867558229628892232097441713485086951763582769277312121992674704950505332068452972352206619996931854219594907561426855423825493614062553719852684732753219819924529063115774426131188739391044491311448663434800425341258311701815881643517107076208922152170633629874405618405169808708495128485524312439423796087239789056426818653427405735557469050792297641111667381708073372576671687055427111702916936634839423764342129513534943753220222407650504809404532781586592024879145805870796028296900999751671854397669633753602449172051738313287128178595395765120415465961696996853474645392018947208101983900597855542476173988656093664309204713441115365805541416075671507614811374880015991377353775930211712407338527193193137562412665249118274378977904876568867982561035418488392834242118929046205972483022926295518522918043489903517119312618052686500450118036920152160344520973122748324160981547639318568219893039991802233106999587880710449929770363743319291251494974330242932677775228793795810007598742989044401156136071443222848299670268210806113003145951767987939575360972252123280620738162184013318103347876814805475008569714748446685859751103211287546711565717378167224170048325180718382686801292556309614908529665788832885147950153384562853776226246685744424936374196220678991175723958979534596892512321922687486146823854590474420686877781071567869937435513912723618647151012524033817775135816441360863660262648722889792593819844699585421776868010481525427181805760399130181644104323611746609964911916071273723666417202119320690620738687793341576290142860215306161628306536774142789288372203432247896275964946646402926677951343619013262055360003757827283972152594773713319909467550321836716463551296371946027217964479958222868027783238509460016307929203729555992556973216517693332261994161878077923120650416465761921538419557372891349098575763443997542815904494088284695491850043563681415074527065382428231254280135568991354614510813857274469321892629186289533133090894986713471150683729775896512223419120831478619948639118727148951913828849986021388904588517928134442581285982573656613863482021935814507701160921304356013032622716586221213556671401321539795788817950836584169906142273832700473418385837680549887961553042536930810575290120491170892217769282726067776289570723590120973134351013224415313310693846865126729808419332514310167829552400011089849094226260434190364687538743523622396659609187118105026426528348624018818894155010577312648517833709260369294662192202303166987465368419318791807926493857882215112953103691963128593415835416509581294543648532568037134919102497832765568832883032811608059787854301711128197399901787813938489729064710715128403130664043160480310069052944388812042901210535355807556771743895965029970198268319844012247099345047662270478245707626083113234548930891024446477214903355705161485873454619303081087260691275786883661116875674910602207782772629678226676898336864138089424848598948217593254292761924879377286766551969551827553323485641900615629833957440978397808052662826661160937321877984398839830472884388024810204638386141233948299510156557322632970000742948904136698979864009838354890257206333569983118089560542468986776486610580084063935385028798569836347156577863490034007972400748853551465320527575305466646543325897449242870160380480611346272326321438494757233559035805209844361139484890189353540396329721018554095206264144407080138689080770434250837556633787636625510036082302505475175732102954515933921167986860711865121560798963647760893406885717655793101829263787003979844316969071994315370360051410146916244285796819511426937837642658732572974558981848520573613664053854995038709695249273734257555338901688297441097861630242654157968669857842638290433954102457972375369897730657731142297354085059189843087973909078497789374152733563031903702123077755998264066395761506335000170846172419945057288193050262316708384920835647289984303066455208027958156712547384516846654981719412231770284436903206301311755969615487362366528426372912757929489595007900229147940701714833812760898297012214347222120993167855903177108247764239465333173708109357289590724297212693673665495635805320207132172765838077186461721294818638245679169535943181939953923899217913538392648934775098394109619744940292146676532011269810780662781763117374985665511305862880340116391783206863618291786088064666805135527043603055647144765006235079266434167796768303549903580380112385254847583363765225937008590894892892085393246109897140232821691088248509341803746127330569874052091951231374079249934964563465400027331159086970917759219940329948589939859159944445027704879742289651334654696788702288473264143230161511573651470363013620015360029790784151454026810807844767963008526724339084680343887646402850749420997778314518857153861801190836122223220602840112576087450606976796059532215033553041958119934739702833668353457993637223685585392757994925920825409947500289086021543897124896673653113663815849160033570028473040638516031830107573323229944988680321891095395683705485492712508652827541979662543293264143739064181271125964250065744709196144083979904610466146352654952038145131849464430702733432275095099420018652442936586493295872359875169870124553450595329946184872044380527018877610829113566297335320608638272878398208295604739915216050347179036968333002030473616011479252303404189885232638848302135661072795005260008909284853065488089515093651631476654749075416237398246854397378560564815501408956048450066133943594578557310394007777590916516210722973701783778597191724192134956741147709801626992122822676555653684027747769015894599882928187245962775691812292524641910500835263869298389668066584775462659818625776157469072412143499442513468015871233845395439239419287922624135734612441347477743607685905985714062234291599469762855407152395488330890173953527320960176421836847335414129105344553903796203354045957876942472452783044185917290155724968026339899564124132862468625208599424062532729098516741590325548253507105649828339958548914761058641658231105404436297798822657297589474734378018327614680183848725816164624870151976329568484389138228012672002193160043411324766254673180976581165829122598899791183597599413538155838741655411849113128041862803171528040745467886012471623473180638922554299134199763476573129933285498167448116057276783175936047587341724935137842745556578314180790766933567155457554741845003388111121423551190802233800472187465866156316519631542548076410689949864195857132896606242717803578224084856273096067497630949822215649587616153183195883192036958412732411368514714865609956186505087487223776641259828503818954196541302070881626317703071674134661362673873243367649638997281113453464575973380896798176378481591952523633611262870520126610285918187779654199500535551816806837399623457600957075678114844221896392732854591042388058596625954689398183520003485130404081265780933231796573426123640922089614835789385390220556160187945784617618843762581926048043460555857336753325967562053647519359640424717679005296187425473317775413284170147600653361721384907777627663400454575055978585370131420567289280772294340626557812888478360980709064561675337654707352219373962070041413476851997331757032135810984156992186266300828845195892857845888646885753828263359656690442432162497567945567953158793997438972283416855001546319727089269689858051769079212699250518995292205890472899779937744300700489705745917820381314445660768934273171671953878518035516430415849887818871269630848719536352534707580558951121551618634591113033814402469007074199793077488532143893871513667354968287606858908142301890328332706644443858598213271365541431253703778540387833653659969848698466712242660289268285407039023387627825741216609586822687285193619981527169786996032558934915479274506110847429026277286905659593968286750917831520250928259002434073671428756552831305988648709881377171767858262071543611770510078530876009165663783094205114744865941330327045007673047982312510820679052028022011465448623972778002123455999273505285109472062376183526694155175798274652283600015632985056119638971638227448208845281759140481298938874844535906501456444177196887024288467681860479113606186682128274960155358382394672554223070755934284756583540104344801727914592070588924952581286616206362120484615660734699421948819133220145700470518229820132307616245906633864338194443404519241792189384597347392090922643433592496652869031891637751439723632424760484666571622690205469723526433533285753582423068492740202170344599152586223755236770140914401654812410974772887659663060171500331211290842588707908098642070969756587869383463908661756581983257254676761666561170314803549983449557614850359780342856611171338817629757194978522763538406347072555509963482086932152526719646814833073154380276929314527164878500385836539836704629586034491538079812349126181477846772645056364160038931599931740640013889363443953359529976777596249508913186440561319767745123981669604509184699031492000836090425334527378439998559755141997791234605148854102917056219405438044253016594583339175537847676354349660323937517061843596961870666402322913871620062721625302916900073236016818677645171753998659640448242826106106118676000178696300649045856654439069073036056384074228671177429550211137332158009864591562386498080219289689005180365996668431836044369125002381130288929822117596968235349525550406823050592028109692765521446891260222603439253765336620538404443006027755383560087617709089702016702652064766366840836361436569801752283381322161611122542296846532819556873550834612158238988982689261743282282706802798296607870609659943856125688501327340958359541667658846761933815543641192720406120441909211298011535706164597175521620654912420817687307659285946800482616612598432043991006781479704046670909504546290621900571703540722290055172689518947316540522715772417117874355529034018588102909805977239352962950465407364700076298777675356842590168408753138817235973039240690466631650722170088604563744299999692334811238403379279451187995068214059933327076633839456989814301065256740496314898054416857584049996089929656323536160948441836103188774714589011133238405431566524865758370858849839739693222944283161132794187928310768478681346349637193334307626553489592673328688001288089249119038971077587236289057487927781860107923877043877257655952518463470952032470322671785202206808366692589690460876383845010738880361809437915506443041662756804252336265633174582533498917826449702533614287751885085108620032702345192094984374425404880589102819908123853780272181429981575807419505497381587453837244018179382292091375471485217464872308800313402865641937750144998715284927851775681972390658666144139615452033058137322175229532043554716682876010210755635565619675048535357521198009171050500174239442214773639933956906030886423105803766742338860993984375985408024447461098959257183792556580138952604025070681263697705489653742574265601484019910029756411494089818357709139525176162777222894666520855456181821183717494848144803387167617556693347752023619035290719379548496636093956470497449674604444126535975704193091270072999551368369991880673129388303400467381190022233679860736794002029464972477098409668985474651698295646619601898229977539478238842390970833209705182336989765713634770122152186099116771594503932166268084477941443215080521852310939915441931166601575556812896928497996067800624131771132244457635571790692677803894005152445525565316987742645166269152364964548412131222233839514850142149927405227164383868441216071411464922552282511061694540297789892786429343137388950933894226653367062695438819611660795735738455366744562271152167803995391419550527634304156459843969751374345656083445993932678625741250930595681932164097107527081766752247962716245173080880761575747315773730355191253179979223781892547554896906210868755267465668372248555294727633144699104436316241620373020662142038516258813312141440097618468566558799509797544573424013193801755774459936748704578117828701459089744215302062470532842951776192305811986883514882359577125468045137534929204926763089671614781566053391047194936990986598415784464092546282154211046971786485267631218822722707046977054186968059906440582972921359925622194780851066343867971261322991172014045777373026504666251761993110216182801522990635863718509526762626312327584515297943201880881194435539295454825960929499983732308171819484666063747104644206755017805698829165410686958037771257436658508798781056674826627478450013712162449127777086840594125663999680140719406829088463051823492129304489487975493404048024997321656735370637761173384679906507245068630925186225799727993805099896613929595886787876598433256184840101499551930104778250759542548638114396998176569212730526535480020883247119242444178030503921732395107550821988253725687413169272474095125339201754514676383214796534982558354272118932899424720334881837160152921904306429350901955697085801805258127850147815947744816801275816254411107777644330013578038287602443247677548680802697236594365445786479767551504511488889951557862284762630401473206608311947361330069301147291051070416179223801858428113792278261005229238203446989861604808490330603968575905953119235765875166216882092200578389805108196636447928053282876858026033989883200295768393487486812395401566385119731515686539887801459411524569457892039401274680388810272056221362370038368618541872479325726773289910447981465334314582759794511113413462940184390816489653268083161846443929587186465069948064832398229858831674479031396556604184169682261494125166616791311448510180604704685298798793823677112288976023469322535957621620345662301428211321551471705844099858056878833860283365702204828583743018967144844658821916585482125119840246258362937549677504898048490252540661931404134250425588954584665371020699834632289122999223330542690062386786700976582672286812392310656770792632561834665922122672872230287262400609076577561358561553116355523669259795259033761365522149882938290015298012319948273059981846956124082298825420623375273993115200542337300514973754664730601468193023184009803433084751586135926941606221924289824559564553497056989514302644921614469671251538845633004433573868943189558982856256033712142355027489092701946558263438006381343546566358523231238579811552740996856348862543445069140326657231757538391685859154486519763729187717053099084229822965930846443331487260062875275470913068360230049344724669034521327221855892558276844424066431757422614524941445386972591482142883966520425768993150268784783892801652728973861141835295419870517544893268855809820867490029348285474480832442060391949268312344628348721950909075149250037171563210663693219200906988253119836425964092480028121193934359087536842305904958588716076996734899135839450490580591937552102056699515189799091553582664599489573590718561856639139054118593195091613012270247122693192421959343524507073200178849393410190186660308154345340132296213447371460305388350401037196646811018854343499804863780034545776702972285488514959152823942877796593764093907864683801722695014341296175784440591492075420124009978658214271391243368485988991178997272889005445271823806892951620506548191780778643896286312239383333928773406574842797633060933916429161370255902818315964402998375348556507952585090749489766475985329773200175771634156543667622477883082264698666645869693622791157696645673703145359117787968040848301958442731044742937407950315824924432395530531120689551763208417032310457614420624400178764059709038585045040325087719487854874571169929168429739623291336554613479750133921756921227089688712701133847383520673499786458279986305406421548202122385280503663933039710607761899410335711143380546674346091652759189502188788948811223154902228674298683944541770796883884169694630625664333678916807267331062300787700700652599094788599812984671497685860287002442675049698985811970345434795299286714914108960625583481665662728177444663635485796614172613801052194510595892239828732198871869515374612547667509839969309951623830166699855409055347346235749023135218183124270638816555519531994376488203571410327974777388068210106136902636490231952337171798211173891836383748860818255537770730974423201337676662113927021365200168048089845270113415943511500210694528234700731995825501852507517546745220288241697668399660478732777697124750257247144849798988294499658139403142267676168619835957137818691369130578416204624458307338421834252036756420164210197915269095818902737125691155018404678178796616248968205192245328755745054311055414560039131388029733869424514228972015130321493588050821955654308541201268555958327939032289524197670836803473294966925438909255894052370828498145491563454706409329551687998577994486655617262322622229983842280610585260722384795959613207353822560561929114696683430977018229895575151661672335400459879893754730815805819936106008272487569071336227568240391956321394367423176371039430541316373334652181569639447686679843512894032678365615707942048243961201744067009948024980460264323453418067652836541618582381786173670274497217147307540032357443298812859123964197890290542392503562081051230227601843845404345720757089635904527856534601206654614935861534889734806065918310935787872963615256501244241687928718309768208780225466758136507969902620806247850933580182097576878083760152705037443913223100374376171936887152370161439024667192805800600863348490240039754657552432610265662338256630223945698788860230385798502518550252201598731830920568567503583686477328452875360638809986068922812878747612382520908147044422578321804451053564418643734555511310841930088282987702007368046775943294206417884326956020659756438715431423364116932206557340969544110084399662815653059909641241163635817705199526507942809272492364633979664220017764590906764162401011675332805246778914822181604302026139487960384462006619259876115596813238196082569606492304537401058368943493859199274909566696000871952553903483076886313453707266175854868689678526132200736832899972027967249604321953069031756166026097752598079149176232336095207488457349098171448355612436349210201751781693515280978080502676976016353948298915936769118102767332443944191018211312729292981907477711865554318539295701974848174666892844566364688465075643580357578649849197439880400548250410560859684741431201913022618121853140350005851855757721631888168346752307105650027476839734625358870436189367742645734043470019798707491372598799504321390441745626551648386672768011656361005758317825286895821662763353909292555944868509102420621783347790819796105447726946797055537564602191669768520009500733818407661427802780765946949265939434290145836066586894439777698425091980320874146569545319436542586288538759984844899126203840019264418487830352870924435493393392093517057316223514852997277906990740134634322670364316488209768706927446667422413130661615600211275289268973398203953894423273068118868135204712895459616756937128122998682192319083168062749709273658711039718153052618937672657558921135079558996050574880261237327943533130947487841150102340656852470524284671482508672740197697698284059412040171835666332570235963833786976601462819021332568899025786155302251989164629166031612458697213494520124669099803030552326840413100588307799775891562035569767468839327978857344665380196700946865647329253817507753051148799525605404029330565215436854381147670194089802740755626834291339383971639663080758154013331964417842343778225052074337503009738160002297199074587741602839771477637477584081359583988227858696453095772103788126096039338602665832871957516404176823916539286824320466456819153613158312935557724139679120521242185092022307361762145172473705197325209405125413902837938748113028155235588790306825088258506209302741823247436711724635360626672018223971617415020215376132791010392892596038638251346861601263996477374809634250632780012274268683597070400246453797146602719709319755224239898251410589262215934678571454316690417731766946417174599902297382371859156612796783651476884137619464787258430794288305891679514585458453535056089030322335305350411695166027503508971587201020720128907816350059128598977488179069839691925831587570958734990830639209813363724202309679368935273109782038578720470244519548007798804019599462558674114266577732097189436330989586867888489947614917915362483139468747470441536083421585648953180392722233772242224797103136887699327801555727324518290475372037104557857123910178324621836614610025074211494921586759495867134893026418369502918690731112186799000245471722859188963631509398174841839432926377789199458387935960360215410969662821190558193669363927409151853651383063070675132177569318825675175250646344402809725625612899429480585610112227134659562722668249033967102584679901414427921115618333727351092896165622450101550162857152094025830165606493688130981021582161488497110264875447611871192988794228874646230653218771401488643698863895840602830397151451807931568363815185437067311171557173057949040221901458385694797581030184585102428163902638724424668493617316142664550325670061545180376297883610754952482976861390061404568894269183288666384668408131870344390836566712476219041567961694153227184888840718189070394056066282371172171720600052818483763016346709480090313266070186653435662743268096688067880050915128902583639838594075470088092675514747890262135077943869067790287698718123683915086028415143714163457756996775849591962156999776323479066591458618232337505495419727582952312089745849870232196030402123670487674001995987177924492452595900767428132127034454631634093956833314696258675892063944074166599146331609347782618234393763006458284940594011815255964495925632765229946750710611013853254000279617671995447945951071137750685872324312635993105254771625506471995267750452228647482840446719464095287052541444132117788174899467670357945832003296868912288960347567708169316980387777446437811578311811334552358224651869415181725669027526548723382910818872638106676691293814608626472501510268620765658150406323330463214145022327645631006260892885717946539517094091712234468995276378399670227492523418307987812728910108527615153550353227548063939525781612545597433705644758192584858350221311758222076968373336449262083274949856459474964852075089816419947180836590714471980424714279992607110631086860910721656343178377440478023839050578912459887972554333583695515789714951568967634395985177356289217852861242287611906517831011553471954651330858833557720250280032091954947391018476645863255224603652029801870248860109881973685612601753261343960132515375213251209152465860852755435762685719752608287674059433464802705065653164534175696084848877094462041445299098074559752895509782192163914878208052191366787185449573368121989670568403286920973542550020648248400260129087521071819738268176568184241788819488602865571586221535484618278272434158626997226835224532686263448606311769549181836328975908146686206400413422697626013793826800256665794643669321629312734322095570948263209346106982060041216030071730975676629029463228732092007898614053609433409997136492734043863902382758445357623785587769828776539982486051778790935197906521752539900584234303450247596837243234088159184791940930289566703298190978334219430535686096340252506266483898563608279313919192273183775714697129108378326045498433503032633184554351999708645771288319407680563228883455786990975921611886532897311898937870769393298220229793707229698530171805922904414243068423525089578680422066904382523886668838973081810357481941456366246312394748320212030389716161984555348879546236416175228975894376748923494695218099876401590800388301918338988676140734569202437220218710424322324433160870852301882807584963743496317991189993066163962452711407935615275351551094388176749694520694557231912237137922445209090725828004757776977256664822265138874331678432179534134575522671525019415967571169577924417505977876030044120267175945774078869595413343363705041255146479577190991363054807130473725732129535385894753892528733309799220832425010327089886433690944391286495152805887342276709301999150609563489806925874653820122278911589680521936958525795185549158522661765299003049696761109336482527163979533497692990521608392276898422509085197728742997771046870860942480763999471476561763450548082009140157185826463692969515766547344806535815826011328162531485386303801733928970105469983828702218542476949972551192934093983935692761802750984680184884247216581345332487033070757231498344871130739690786551912338685551593881157018520457698888489428607003818294613584631799459138987475312472102466431566787618866935757409045912738071042995844300471196255438047555414568611191958155235907936336231468758031427188984547680911455949259354940972082659269926979591680955651583536215716923376854736316861940330436568909744479266099831641012521241723967451505735665942218330729662494026367118466308323889886621619221969424397890678688704764327993774100781694299612522360363824214747395726721342204375864114316393658504889141393350445871606198163291906360633927954077949919390579675237479854241748537544299634032301174068429519030166671704093372974618021232965276697106158113800676511853273514775825399174213878521394823996680054882008764322214053438339274265472650407226716838454076363247081300760394400376881069126168961345732702506541063516115675380933642057678599786707283369204629504990104471943692506179465844127888342060372440650507166528567985118673423730400394272668848190002569037074176764322106807359010672592622001823432882407129057172019847928864109611837988783768197018047162534547004611172589823020954303232472260172515418473410872818214253775953040055434720359152581672950416211725452925703980798558675372196425224683109116844652159788404825974736199593540648555196655834808275537292461691420128583271742929460807605902265147243909113602093667833127617808246071769575792838312953887565366912204417796722469230620910565916379455410324695038971392925178676035610887612952440349785985250593004783432524105453319862862232716046934093748584624380066781916901084966583595426113201462134946488363956531105744244759301961587802671553336296917530575271826475039909438976610667768125514642307543470050847090271970778341258875317837841554595119769442421802286739386007716568469145651059627106018271814355192170329403719457516786493957170857633385253963853035934941001566385475091199143450148722020089318119765912672617192436644249182421644200022898955974720424272033018816122981394970688668635242350635060766483586582868107901588612322704124796258086554478071438863619199295477228724491441440058942913346650273617180570337922765460179570759884853274309439719337525202806266958628226318723277926284518574846003589571950455808226360867006884530035434466444681547830194182053106686360015500116392400462848965044676215668427145706290927380435349540267160324464685231653930757319484022246961606491776374944539213396803362424556064513033828731094447975369844256939766015574765627185129171147274377663381998669694755146799928751459697944549188316037818301674460396260342544032980936009531247815517026742037363532159651901620153757188695199863948259786773020474673725007731253177911302463782478775691350046560516835287771335062002298767954156058750645880148621585081570951794209820437540883272696550480984259069818653354306844387934074863780318170794456463088294266123236701279114833501316972754987423407413004024261958434455964840998539889029715201763108207344036536209977279513747619900580512293559031410074126720554197079796262697968017720622289914768091474505278997768216208085336193941994779151719227231187358389633741161626444926204420035260786358766426751524079639391903434822623579515251138306758638247791779369321195547617529853302771060712457331257191189567298561653703002182990889260891533614172410545839128103539622823733011943102229380681390616433358815515535022519456694741367165691826907796094540081768574126204017004111213982180827347240937603245156433762077472795450707225253747964189453159146107129009547212782654073944795839008327333342080566946427437430639215645103679875311499358324766498440499026434002340994942259417238383276554306209882264833990500632878072540405938035898123793115101060061720675237741541446859522998573951395437364246948767336441546291652232131316336690571791917301882875391123473976381140859106472639332690935649092422508270551548861929733937462151341221483869717613296053283531822891973488475576509813580228161779269430687494509004067296106627653564658711638872279519374346247893082792702655601527813675561305852583802146943264096183186698409637057030496931133978588004169236062930641591709206666723348712421736868473968807947985051096464656439741626256072612763225460341234979694084631271849029425113395466755978682057099222992079126488770201064969268342149384108449405333585827780711571519547989582069055188390920890604713698157224804777106196431795247848383762609877838618720219112742919369926159379680184129846151234928166865918959719284914802047995508633776560746140663242817246298654494450453259065303868696484949560709858146929281976276186811610002025104724548239841804237847737780242611241014653485865685448664503537590666758024146046783476430154523818525718732099727454745314707226300328848818642688401467456853551172350204950284597936381261420456441237702625711724143541331078705829476361285414547743790777665757503287563003887726684744282157261559178058642628818103332817748573550445132611076339575489894664640849106932235859467376523867147183230738434154832643235950591894090582242063229931295378305583665893913328721974020090057959697258830589399098750118231685238880194149372490594155401383271644360670279007697095598509987521203245532159004303700017473936058393041520746720975147966336033950502079987646826771353271653039590737041589387320600140721503392244528709399455409927999865505752155168443989739314489546566240432249099344152275404424294033609034923716655058198329676431772389731689368816342648629240281698789989894308810021634146555141191543161084197674544733581848177936074448198022633567297519340196899998147654663404124165349854333108608577269873377729892530686571922914780050042601238001048951563363551610995988369154283454284001682797800508742803789815985544275062875272149628440776759257063683928804004286681782661815892209534434749564992267437646415480626856385653005637087021000141269447886384433068397592390863896421493335083146090146601221255426336004382100885737913274328955445799979103172498321757130062337936647496864288187230125296584891272258585292535433035704762702048709856464256777550435403557849877445790860568137801189439556297516063462986304001463010447240830398301988207408444770120407717575874345618744336128354366977430787601442433999556059944715216167676926374905786477115964910469668646894461329517470772554437923057519842132157588870661289689121321198801371619543288680620533683496733861253113129651075813922657513803248828247891499543841339644129587732006008780283364676413206285319376895131888131969199375500032044817794603384688436928205252948648788123678083117370587051100421479397947345565923031068278854832754103213954367642315507656963613705161106192983184257530983329579146795495946967199807938807844415648798419102690152223706879325608206441081488712521862808186401304326108289355764986040120914476227695657309409780884565326455174394432217681433027082060446123195582014472839604883281360270666799293422864576338966830760874390418764793861434494526919938715333645700981050491644260337140889641896495999896076829190724216771863336066548085247843995612290717202090929961215510926391207416869262765324132867482119996926679186188150339267928229311798567851741123271052426521568807664968339070589463025030443866601095086179630570832122366886498229799543833493633997719156284370048041458856242110952602445054944590714788194191447384578442608481929769333429021272070114290016791188754955980833138880459240627429744871089480446111208989932562990368032241359623505527901246895056284743140029991787765887451623065708184415857219586428905232040952208671475073817699057759613455540844060485243531005566658498151250630063986160930695072558973105292628773643408947474966894677855651324392993130543083814698210424383134571723889366424567454910370851943835906190172619171425901563062051242342039569520819843896004279481275871145219625389948667554183727689822398609970925192001638850788274101125569582499030908178479402513569940499785649000857794233386033579478070211407894639028205953680073370635509666052736349845679138535846538470365199741963460403343136301498657533157668247324378882531389707566386806167673061774250930831729420482253227393395710633530355032577943701680479475056028980373280996015249280302716747171178147873276430741252596114954558734671754930606421923978649152857683827844717134107322084171628777114410515936429341235745215471578564513238430708667369474862681821870258412521966439123668116546601021580061290591998792901713131550854791419893388512658374984254809858171106440273756178277856251955546987129460104825299566743186436137302214857910718237127034148246740765509335893548128045976637932092727571816754588397981918336216592634162149262793082163251043950050841427139408102464624751345869188684349233024022167212360496012226809529123014423801421443027454462139696193181889309744327541421715221449720424006300999116766950650913852134249420806698695601226795460607998412828893705833664215871410029042041776145076496146604489178905706874700432805481226677036756392213298563298488769435745865856630086484320376492377689009992976487786487181996546009060921385338266203489048510195746403148946143396422485730605403339449969084665109955953601107963144778946674897002997927730684065696384149153837443712151465080801452525116143635700820481576066007495298470276109027960570141220290498634761765090501941921176095435228125110198447118751682168439244685147459595053313821725145236831979578365752630524941171914701435841451439364218167262467363947779921609647045242224443442859290435837464699388332944265079732152045081270451522528539231582606755669933083832958600730940720184965147352608104130461026609473851733261692767428663742831408618827353106387884586806968159576068009504767940183744298379107285769096690984586226756283058378936306293654947154736262732790107567658241193431493974864204577215143219208074520527527327006499828697398868119833429870344306773730085295084077963151841174898125647346744712449827465779336051845977715265998121972213412057725910579838524452303834358030098365030782216698445505000268999601043071434347310872041649355605239699577149104471078253319773246892261454716142284544161583961668281030176366891646719682439922891110348766554781022953671645863510671633106868266334530257972101214091446432598819065095836422766688983514368174350058229848584250690527495500632474482956044541458474877170275129101126290882707067340597912667357066617865537419096501904523095439756289727453378894802017670119875614029920926831119140589760102055278030133245009032647930190957281731934912013682308879411023821440471710712420110760604669599637862315169078823834446422902062079810322265520089804440097042768780079083092009591883960753794112960377265977620301982395303808402370016282851236930195079873464045311100836042801716910519708339199415573917133352669494181904368875703465957582156714181892741989031917660061761212140898346868072560301127684113339051129256450190428507717644592270666858088166075364509927841689867276595765706066395902607541544252570176693707054572202793859026094931594587579112315015052729805334184145360765486614538654595839926303378264091655333655232237445411623968265092038124459393680865513579142469069427684408719880857666957230361697902654481249821231014666636610112617174885374693129293630762898265806175727096009846527113047399284955709283985695995040982038103117631677405263889703319423479636329057271069553081493034888486330606747605512807453700855470884581164776403079941270816693644124942541440806430176009504678370208581298541400489509809076686307031820731411713533157982050307663021961123881793347923110357538694351925231987567767815086245868910521303753379520991719265303610074096448790255431640188728517181618383257469069159405109138242660483767401227227882187671881990047178599461281705568419363709844516416973964815225038869136172460903484760479949852133017331562921127376577834136489793501723542427803758692068519197449651156891050495896652047791702683005333987219913713164531699900451895897000498996559872536530792396858036319057373618200971075818038088496996559970679807070156376151354916371513946928709226808701610121507139876444640183663357138458035288342799094193428548214318146838727162075955275361028442531965936465665309690312956426210451982142295821034710565446629906817185866463300332400544871950888306236987292794859973178117667545684194115356241834098708196816529836355903663207101648215834270356404385038784834778224060705790941687181921509785242687992177438643291240028734131647663774730097928707860686251253224419996360811459927973278279751057768908463384826591399920009870533521868765960552200319474703703908755132603454787471839483836907877815202317292190305679566028828604153650661587533175870718876701870031086555687109190124965730453828978890071679855732386777612422057124487962391795325898710865382902053925890039173560689100356435070929337936872335293804671400688201415107946237362169381998414666916730328219677495435811150069307193707005193831988577627760558810453980719414731529837735916388626947273544064342773469843842081876436496433797149137482362082481280268754093044136840950006351180578030326787944899302809893316181640284735706726048076588856105245809173978489585922798346325809976186794181279719379468215905625749398710907879706539601042209846365150994585460308409584366043374164341487369231131981988836282816567452389641319012960286097233474036597888477407287746780201424027786290643124254170349336196746706990330674440883643679399844399237962650489861757872054339515602805382415387161567332020712871463443731911479088789164434670425425871474909121641378798376821576942551076071223716602217778668038805350801516724859220867405718339073522611886772890177448779935787066733060122989535348874902814961861209534644085472662957533232441791490380827100235925608760630952557109955478385347624278983159428618722441603525421220356849091363636510258668655403032119692426950207758093986206888265214733744454289413776019705939003210263617612432927579545323957014006844937403836785946672043303259179046258152513229212560966055629956782775667091803283505459617131395675423252901939604832608317825110234995554027398118659938437125679292674627322453808259512970626624509528108822684779027516174861966126710826663697853922104501810880645786957884276104319694261760708215672805031482597385555358236412066250586077480145902923419809591337060235194890863046778314227794971621616151609955743695906171594325478608708370013364627194359521690061144414467393835917672154760210156902230736769068548733634544311947730382220792465464416582865670087772908712283776154330029644688271313045432826192347025305498344770460442231681793147855051651902658414171334345318867046321178487848623077398748294851621758117697852105986181799658766874210310762766748678967841131051113477521364398994986397605048494030767563056251360217622516111621519555090397463609773105050552678166803316245788029957014013186714478777823905089991019372494482636772170452517235060156238545396698649099152000108771139153500511441695728146880337575946436174508823958825310008365946757975495681960342099773173562138215478312120559270751354780041231308405439382122588745634791453977011509826861109065350028410887566659387619622603421827919770630507949054702514068166341218040766051906192104058007760258928967751632354691499659960836323137233358740286266416679751631036973008138193410270038368046440015485273398715046597051639981193305858944264315984669830037540981512228445446008732659166898873463799861572472934289187681380637250281065207949958280846384597969155092261714355425862705242544774100702339477769846511101896315964654625330463551340965742477992580271461029645498207852093477774165633962207714823408879930890920614859911874117820116226504555303418799494125158580027252927375718266038185143640148939791933355845754509182774934174278081480931734375954503783415594155270670894995582825590009408467181283807755359157566757224011201459612489267742730515008646953435939380158809340809184314030559370393895588813838482063257558871943739943832455548563364794355533390306870887308343960517868229706615298928324695224723856255964344366230182549200058056202581357563698994138434487262128656761762333214454725396445227244387248442988060257279282016299399236087647984520037323727654292542020770238055804500583233786252147692598582539669842653543283160665907781673337108535920241035841902895305626628564197531681030946827978965238017099333979197728254409959325848837965123046366093950996845932198879165361855429464731349587882153233828622724876646785344533646961941282689509906389888577725466125840448814611873808866611226313864129488813361629121735405848702148628670416336042930919792419858913505736889036560423962598197337856249328856911508971220341771665793668245722742426748161251095119999402659150852243750176746690228964714036224056936981304386078472049103529283519383737745904053961790729974204066618626179546514701425962651299129375750371609516109758671466897028814004497835551628729303044648033180892702178431762684429326076021339235378927408926002458509174842880741147266526767133332647073504734429207849921099875134891047892471891649312336541021532360220218557967986834490595114367149368717563727783656539260888889718852347965441633774660964530649011315402553750395828700261162096292986144082239170872715931398167377265940051881803979750762704832108252145219097692614068662579805009570075920354093407256511576880162596604864223752536026944684991492079558862327705653845782321379625591238353531034149667752896475724290823096346042654526594242867276642596905677663210862213200877324801782855812550417939907096851120944876054489003102483792119589380975948468774677740588199831782263209418482536009558784723066741648402085428032764008142919948632307268550040245903908690484224046103217119616095328500606299843704595198943921930806319166871429722905649305175490180695713932124093043840876439928803054112082532362958824686609238282356938359808375828501335999725412008327506914616587966784234788183527445338625796531235217195668151007843604524646644704479438115298889543021681511164426613724433258252237809128435014836765823496088252701273780903678779812154427183671860030805214363277747873735871340226253107977884745019411732069675344855015125397153126393060445998934271626893551861912827748340329012764740185652602787241465669745629356203178047716839922393142807252705861195762530279390176148792325815695541873069061411556914403710288014493632041248054559624671274631182700992985215323213146616882449031830924603487155238161080154612886449342611306798744108533617571933399159757164862218565492196298918335096461603952412958132158998467480053552525667700915849971790683991636740170104634685651117163019861583788101689769704173975670092986641188230886864041314743515472931063531065775490470606877475645375839185814659108268174070660963067438846558011670991787903822134777735828918475385372026912698933384790553089125986516495136617151968243279476606682095258303636394438438440339300899880138550311355510585634955957842769147508752568312714852774954603343084429161255335881550071294255498920655584588184107839164109729105199168185183148631127273937281325150907130320005663544633900828389904900598190646088144798404662479068519764610546010034040803648281326887642992357497324020386118086505194679662130779396307639140524485669428971231643223092803961500889660523736373840089170775490322253388744408181654330753931802926980902938729045076841491411999632072359682356868867760175804383769841617799923380859557529606604475604552921351695632585526440453570310922434435050856224435687005791358690527270461762584606863718581926729147767310408562930654675317452328837575001009564619029787514796343818982348417165717721358471080132285475181597107722614265258616066760615936411130514296987697382320949234837012471609187637597812204603607770093502640500031811081866220745546558018567583204779906262114637782185054096252559739017734457899376579929045393800372303663417293350513053407935309373188587557313823350870266075621122887777728386049362287143969117027205770676972145708617366901866687605378524952529909045302622592024644133259095463693255512349688533152222577071604969512474109562851744925196900559844976170921136471828732657224575354030585010631986905385515984275959323520026140999259618641250309719391761323126901848515621089296213738370798029182986464044743461657698454665478044105713258472554416460901323310727800385486397632093664496989624562991581938586531901864044878912669989296949844360325051810613529414436661861108739446094870196459310634499195448736582530140144449318062847541649284806008367165476279365849523484139169807153349820844274382124518983152375385281059744416945347899121949473116386109805636011961996884672964900117798654479758681308099528023921278405611333275681707720877591223609658665046073850352855341356722173612850918989520277915726204568681719309747451242303101499274937062002137557227069093680877365496290571661950666102547146688308396397003243882388054897414808544932899086956867218645954473064146464255807528574664320482833056190105216648678962407944928433477248722578740226589696795536646058785937654881090368969343407924132665000537450124622301970557061285488408279713897612300711981641681673967725261507260353621050422262375289855735594052673720364084419513817677742410390607465391092730326211979231351682209097449935030985712918030864284983591862434858703843297387985822620609085350950786600986207627166837982174992842401312007980237650705011324058077526640940422126218434867248444923901144694699572886911964386301821715157723696651523493333088774732071867647324452729646051642742549108702036901854921297236207063459235811110678909718975875159557836297594429254827003813576339097672674578951182723617353409817639743824091205191539972780202577594152744510233354170218204483106168655364589369255708707095407471742059424914919442518447898544620055806574538501537219708992352593515780990330702318775003259320573125199091789121825773672174249364086617075776866147585731701168922586143497051775767359399729515802801242419143561264134390943445047106360345281906603551284036622383714181895331043343713625823924090222118358629181621252165852688768044287488107144496258449423676701830601269708893933621404360752513077500384636994804796315056498019280360620139199299193687505837208121434615726887650603968415254792618645195696579347144460234281297659721070010078251088209384515449500549140555210567495277808488010502527161023411408538798933235821058321155832110242367805150584800025295636054915369950804212504822526484361586058419275642863886247282868004468932688953934546127861164181814302579471612623721425027736662225052418268536931585452830477934576317161783351777903800955971063404759799942735422807546181861787781585338479932628013216051000339273799618015913005019157411164575865463848580793074666529860996137179735081802935602729157487318848346140841986529914051033178100017250614893289356244298863361054687001840494761678496334502372512246039885277946438371521581742394827097654284185004182207593657406688767036057301463717840577341991052116430928717671632434298885932589849053509656169397744394734140710628844373524990104900421346460647285989262982615310516923378299199110764884463852747886111547331747428598003946374477387476300516688658251773153023823869845464125629066366537939756710424673155811037359719244500337609290309125463100365179936145039166925853076330171527537814050588133203666511364468419020959378959088809514382299457804252037179143315720763063820604206773015807848403891654923890956051095211528826462610525071129731738384945348479444677418190733908974643764702809546789899096301366839702470976286294043051473754979162478847369689882295040060985556030245099816709797691744774546069782373251991216100929740225673381885585583530353484975900755299135757703553095406628827713381987788105082313853745005456392302279200107432840026854482630281208663402963074710649562131487324385417623741428874412326690567918286758638845031238926547167950814776242389970925754895013307368730842128198770205853280948179667529599556902335785380876447237647512925712776999163496141501064216147911615985923240782908726178809394271080764019474272784903817154445617889873734909856306319634103818685284457272494980162646708822709856297109765762651639924502226722086645416764669718337763114845922886723339643048078233730122939347069231702582282186519836449120159506635520541757942752025023806282223603138271502872162903366157731384480885839428704020376448790623331278322739566126997790900278991641431909575717903390068300238544355007046271629231290358652992400437107907314671519741852719698220283678640698685264540722050284793588793811762615220531727616672142411292616439538657312877104371523002465195386655418874419216227788083781335928838140412965860332651060576818985070097199165712383451132439551007464064047879687564313240457822789178528287784878433730185787183529208961437574776621229843363638920871010674230433803106314583067845124136383699300962442691346948799668784072241066951326430459119272797033670378007463263363781064971536823973584925920057822369078805118893640862838275949809620528482127932698745455105155893049093928682899493708653606834725938380067060957103157606455719189271134897797385783087970046242519933700800372737878250429876606829697687524706944032327212910488213577940361716673675191282923141937929307980101133001205857262487748575821120584522295554046643705463866715080182813030533843508523569175830583663618647094918091314549212926132476993458610867868377290632615093856335162651447368711429842415945142049480499123915204518680525636363337291475000213515090287499418157275684176225328446027764608516073644624823705706615571716971577448604371637996398794830913790648416525623362758482195090539695754663306230282209846768742439273578473981150473302877696813128473134568540409659028421665915281173620067534068527016377023783056993804334514300831331184199805748129298847648337698215597149436378312613195128788690040784036837232029151224341441690385740569853220264543842632743959152756152897956413857524039433698283736525250884644205060457623246095202257486327523356121042805011841357092314766437083157452436737065979732064449238704613296616620500158772397005190701279084419755924278771416856422195990663755388610958535389667217661947767100616590892800616019984801115473222403084232507904963315030136634030150117586519153445810037997303130092930987804692525869130028691513207503822282603518971387292039522899361221558108130920369364214189490402846722118823801003119566649904006641412232676877895190940169277029162378420550809369456311184065075473252146378527240335479021671973731381963840374167316748990840477682126743272364845162046382702387684576811794881883867558809710212645549631035436491721796983591602782048844708290979567752993141052234994489060296954317253480551872991901019795344507244260617580406507229481297520222054848053269428418678260972730425577991749991955588729576453012989987742171995300748919842466143085579197070418935904874101491268444125076842951632271365470616004821799057865981458183598581445343430500524967032084927485072137672549734950638387259640674332737686806775096104185597096002783415662409998726830305333589697983358193063342986459532228311549644922110896854528350841685904196012894945345128379529376207006487168541703768862840786792509333902770288928306763704445021844081407254348128892027861420265917869404289574678872162632708881838570901943842072285787671160940102987947019381275145730179992560515618568188344771624658740798652843036998534236143208615876113240432745929225562671735495095768014100937392022914369260362998339298791147477980880684971688133357741427156065295341027010987791469879763056477952699675727436841962258912123252876399043607552200668101650797820825005801367590239535898034724319700008481192514127666535395873159250629398210246237134030445520727149818004367890585007882409870269332298879953288751482358449026417986303398500708138308055384408685564037209906519554256212940707791917798100420720372084727022028833876956708749341334276700808689210509517466601724836191733711208548733875615410847135570056597965995913453034890742468853222365113759193210579948320756071736804378968590790197169375494554513850533798962208119996594858533948749878727565795197331726117089781879006149308476666454918399407908136925134191047545706396172874620396118801259396529184796483439881966954524028598680358879061627806074548341772357781487284056612861887350527599440533207465027524630705217377426666367832955865844353106853629520273437210075258077620842205537040429957459610161892729732901151879860089752972689765641987755278848936557846693515673458930433992401575174734035448257567679777902869338574396696705212700171842817999339830884115956648321739270241582221521471866114682820854908500627736394294387981200477947752570476973360907844662551785546553929225182947570898861379822196012389389069743017759603155004734478804804375362493324589053675726848055506155025314907132680266184279156168323637172489693603841787321946312834864914336943402035391174559982900135361929591459431213795506366537124633934591326801665974388219491579122133219428973879466992517115907761863970498833905501006427590458513640478776257404217943401822503485705716812710332419510034491183235977179134408919635436578761949022651657824035668227758196843162115858077448826869478600812014327918440572700650668410103615940071420491258542939162164200956346639425556515624314112918003837759953619573357429696518904085983470123779687703238909377044012676305056037513713167431818208923754874745242069662443850193093605723451681577247270497652130484472050836964813504745685360616890205474544585313124286970383509005477278537936268120494774719869181842420749592242773601720493971945474689061292761989702945011314663128281590021754232526984862790234606929484415612445574022518123700190073996527889293361956120594697053690114367807081294411186107750717058952282989208235675648722264971102977139463616082920398373020285726880851303863099510204577842159591779969672472299465388796975738427930649961839941114076959003630153968835525202754794267333496027464325212325248545540721289644302403913024541698356915846431248325256508433572532002264837794462056949694508868092958726018617875431574991150668827129707977467313586618240343698098913934719494273929610490287682634858816253646912617510739432209586899133102954424205879492073062591845460358940105345150180224264209348462050882305880407274767090782060517357147665230575574776359586664810071634196897309474739395044253239715509499522171146055444355963298410533264593259118080600686442323398018541042386474701964265542084976806263453218615217152500802017176103873979522056811470284964861816049442556202346336277410555189260998406914375156757293674910694043984026520295132769621912438189710769253444884161440004788754199000653152012075978194816544119725764074202790258656511663250473906643272929482814838689174212222763857655339570367695345081393850482145989110536888465474902149692591056913163341571270159863104916118707169350369158936793995683202937338614061383455625730894967109976932304551242633861620811498400899795800818449161049840519625116921061305723972788392232333965277145689415495929594179957241037575551153819970793053210731837084211808905170930168925519960438756855487300901498176851196865110566297737244519118457987261920185844152077094186798338383251306572171017727326350839817059844688805059983201125988083759338648146669410957712798880352619726705369151059946267850700807446795729506798664464509778952341826386532755904447562583173603887014957760383829911368281569358988872494948775588262326264377014703513880250355997897411924218634047391080098227101644516736646575353222143699358474513085016937738441601262799580622273950800774518377137767208430652366972907061159281247940421677078607919014657110413242832786852686194649365696698937235699858335338748516850503493148948332426775676457625459425406842036693763085597388223800855762296215738938848868422589288640115185004741500093717249116264860409722652520385115754022327815785413716891001127898597411746295213934582510367994057704276623659153521361882816895507218809876383696917649434154985861202284441642876700349365230799464831426892607721051128533280749962233762528769771371695416039879565022879325547960894750423792369579254638879227875746703517379207775281982369640659866069434939427950945392492866753611517584479906380983305220737638766219799874359205872930839382288793940722549347454964012266115272813242714709202708703149747283576756258724826183778255567858390373990624614785454504048664845722085642059256594700156618665779874054862073462652220120554651922382991912527530101882648788848718512954449126089950451589319952409111396391426805225670502887502017214947187364400217499202653764771757552956114146244420464648149860585934444208775196813356614157198932585428300714920373503887819870820684259673644946545707745425860326075825048446266363995298806347546499378816251449913724819548569303358294457460416575310613691565864119351803629305988813390426865060049104529796405168016033517839818715638285334146074034082978183586309780944043087415500375395276167294595872876928343891553107834104926920421224024313373687028918179225404113146357930992559960754196101846567274408757957675063881796561042417379395483142542771697673864174089763695192949348053425641536758962522503369080541418750818888076893725953730668174487904777505277287891536094996182015345221650946291621810018286632434717015163709646816909684109720872145689857003928601106132123640787381011283780350988455541171319326068235119377985554936060100362302649226320245085215629331358493587883797916031858086896734174386194567028815247681218281174821401514481079336912385297086324913149216996389375515033301026431719244609915876700721495489976746206422326556623648085769037036118497818320398444610552849916055499976269054132389551263886872020073293174889061939285154218731309703793118531803181390275277162576495329395449539566622754901641559984112166756726576811627454742516793619504674762723034931294202463869831174496365016575481979886468632780047772747416335516414678874078752952993724280156269610474901265113387232908194343903906193294771877312848345266024669457539927495946775657050529766584159602428753431404665463214818494245156096033199650485728571407346800109749306212339604783638217808888613117396881748897177556737421168153270110226762080080575884705195183762561379410661462287708994199002473916913324433789671629170854404347129298145657560899785845219137564070267940939351450899819733881643277962764215930081629175123576312960859664296593857472074528736616648453217060113675107251132438904539305993686647737993444999102310420088149089664619346617150637991652748987936529303817975048291492848828053917963115989659042429838035184091006606437956210641001351911703950583379835706417165212911402221575250059252786643341356017541429768823582665733673173830476980756918490986490996436912882278012307465455404983533953106164151480773595057746263266891801520648673709211203917046975497037586861974235836217750607817514845637609768358291795665090160047803118435403458675235380121811334163106846924981479491827887093628081886343620535605525467361347050225737567598602104429109764766507595848597312662354162083539480009638323190499763585973493777913945852994994809747424616417208216603375862566104955480312600319384768869773758235713596616309925619926411262675075458984748805072002965687324589747044359123486949419651530023031028612718704107172024084045706234063524956884186317101205695260538605950554260635172336135574404334832733022801919003722339925845191591079255569637171337627005456063651998435772433335379133094809168527766298939077280371656556314738746395343149427042603739215022387263080339894880691912682552004570351037882387176961448926473189948755709934583697733169728809785327630070269885353868437023735512379025549935784287602236437444821432340497302958065977588017798633317630945380655657600840316685601115108522688470574660024916321279571779498164993563695515197505671786753097539808186424400802672478667978120176512168600484878698774381945529127085620386268070216694985947778437623479931058240846173777735137050321211632158204551440092315974044950811297934767211847850291447717464811860676257846156019817328348643484552028872984629419702839862417956804703973254146829865203669778793310734645502105128970998529766989264153883691829071612023226457633334085567176254038112425725703597137663448722285706949365709569831681715404370791732220444061307814169130489111983318089757939991633766041838874284098689198191688122370711276870715456714795531194067264439123282162677236034028220232436022837199325002938801209360164481567922089820099983393368639963026022450751544000796531466325624428545579768031378369281604990339934155545585895993210183429868466468507671940620095978657280397729052212771442278472267028261426516134820890276855367024784112450264933620128135379892974196175552086967333578925757884220917379796680764662618955063917541996713920649394869690689101471832356742273481674995793900025000298299457353591772065152659338524065109814071461189721629745991235336968409440427470817218266021696852504948937528542074070999954161896480702668376810165738047621934451808432055262460438122994761799363463164109837787308908692788479864538727448332696208561121710136621284850539630793339034608116048456621185363954171087735338428788980855726400872891383481692388990931600061379924672879274381138817817061104731228892538753956823935068447753025388780481114446455932217439241342933077651777606328304730085929638769082473758179592117732233180501567895686734563788511972175809172520314804865258221795830436054439829398851124661500458588233566588845689849963996973937874092669401926915698931199659862276600632453235326747537914454356756466821038398652857450978438480530985913464023827287415253693122452950432607925469072678573647142931224458521165012877403753755284493746820327685011526547938811881319063296126523796344655830965521790738023745548684580533758713238291722780809078932920749333114838254755815042530342389739559148417072810557425458756118638393499317962230238612576197092197466194533022575513537982866518500051944224207499269604396814116791891717728996096194304901882268521575545877649268623367997802528483755070677552486596363336716206498150320072841964977908460339028235818454989716108534564787126323069361654433947493137807230098847354418606674936725797497764228512995892555034122906652679160461630429447231694796659370234631683736819895722899450403540961307724560294082121471793150407584896806064920781440617039525135570985642701790208541915452582924494365840803014143115243550477155192416975359385645322320693536580030177066693606142513666111335654559853591669663035633088288297344011486392841013936530521524865748357552278617909353214910262493111697999017961404300095604038208916444046457453757658311900345116520827655707419826338893549002182053069178850940367702468737791809007144356587064134056707797181871216797055338680922534526481546532932776744222414733299959686188212489397365472992164348552318124021255142468662732115753244045969117998194812248977942325868324659655499462132546408306919514002749842046355240483418311847094958920404431110539350048176866898720331095146849041234978848828412283754283988384201380621647901528519768406192462111916703615886358584571618202090862803831708942099304720574201390367798278026608096352984417085558809650833513013783143975716735541521268244967656896698722494352507865252118808362967778538961635987597711819322040666483639623783536283599396562063172571233346380120202078088317042012715565596541023327542218702702292408437743792129775076837562411676524883646668953684109944570707042304354577975827197302166000092500220950081960615532513708725850049943527415327061089256808093462848180707214510632860739466186626396510704742319816678086915444509621822074546908119877081066837741956471704797710251874279575052270896368581807376415518412587681370474065598474337300422834032789423828434423797991143543660650284516142333484474450505253731645757302618511294594957360951645126745455349318549849397580116210197823400245774005777052916416669139364411672533780540398163268803131222577167993830192288672544639642209370260488300431592042042018271907793286899636281540120702845652426571650053548168942282694311418509574615375574610353420640609548488177239035819618900914607349270054449838697969039460869644585269037767671013296237599515972344110325783301443385199984664739318857736129143579686600639441631057995042681050743836595534524502704631642408888024902794687407304301527752068359001639592282514701694734268298064482105428504367960972129785824705233303377732290693918468339283811419728563783071988439465161723135711097034679611929952200740360266348340779430322240705663143928672750056285060959605298422619354860454383512270024054664915636066791138094957722162757265693131441478805608032023958972173477662527633842371157540441281496534506846994871939559059265746645523124118987605690405186591272037368098331428361246876207684253611014014336877635714171731855869182354919233611907976072700792500899367532837342413838702328073132030068010142910248338636072294585482054599739169973665470360064570353139144342622302603164080028109373003215468820496219690167638999176401723231786515875902312542205556200808594795247624234787148787636800070026701047250277595982861718157842626254198442779206763004172171821037141055420835127706206230651746166708725150552793288999734143621178320505458060263739673926793926506671085605881793867642955643909637965500874093518302834425404121179613953942495828263887704249328182943153073249282027080107340843395276877427728776332782230418219810438124863801015162438329485277664769142432608730359785986411025781002197436731694911091367254979786159571953122961442819189350587008117838317997345633250193188339712468695696563302266259620194190826971465772255397181320053052568681711456575341334164031245749174501613565787231384442875761391954020776033284136047443687835286211659457168870627024911721222014438852315673633862042832850061664070065473134108889338087990063230899667469858891943748969932921771818008675876194988098915758668324671784356922910821466223891852605859799251609388477177661215337751990019968294895340679814825520867064148844543561509157636685229280699358005438549952913140790351859594458748268665274105595268829892473268740117125005533294261355341601770284289787668132000161751226734325917812082233301043890000111604289822496432745174682471193971005936686542381803511305494636379988246696451028836353393961762201001825948402988923966563745169956945031375290898720128289191851053249271625389880512654708476142096758494417095912979178350627072484747953313697148878177035927007451664346909068642061271100339285185567134234291032342369133288699769177743025106512894432196715101183092006839349211761673806238839849595718946502801381449961903599641212970411026326679518769018764464434452831978468686774211795440802783380307715721446663154633719300719001284712059580512536975198721162290739667359986990172582821139452278612269762768801091764995526178327369914581006911035467873946801323108434910669822809536865967155613670375716095652925727737111949471538289057633008546049080274994364110120212047503386100055575688660082531390219459438150340252303227718742958567101083835263845594705916344006477425403928528983850698648144400136255276838725524761101349311578040225830542294541527962337167467544888318595546232021034921904967726018901154775347937380907284432462832041200973433431839296788761889407293290144178494482192842267538779888062566204963095108317362094674626862645514399783908026137284734450162229148671148351015196401639436218187218954743866267102579129229439939840658669760400183581550044116339371884288706697506617612694876982908675436186108253822556065992742806799071971220419426894718001621140143570276246463258491154095470524322001334250205255714932784520557730885987065380894146429600940844114410167330546372540832640534163226273988732852310513226089705984468579693642265532669518523980113112661186838898528463965217705730626501390836352959574118652985700719167110463166353326730366097082355537969977453766846599993200768605871599956622821427558487988073353373630130177245221603445140960617567682319004633661733317201311869475319221300821866948164279705690332867569214657266226824937069417054443216118222018723031899964738914149296840594252260264582299330308123593024385222524240003502295308325549144809554820202361561365819106906282155029865782730875817469067391789596628772136478936044316387709370842916535282171127480520614976446175003396925843159425852486032865416932001418483581264290829112881510813262944798995519392562879075851948246994802082407015083918545687030885888066321831137352191180709999042413391502018475823653419552945251638487081127893591967504129665304970121472593283983594225270499897325602042253606254440980624482250858711979625261681354566586467903920808461390528050490019135975261696148118055621758988653399732950921464654582147668675312539310586883549111952387355868229518466250033093427469010574995304234440063621731644634773369703355923715232855863893136162861405880504700951888280936101024123607811335988949399537920261368398593618234995682096332145852413960827800067569841908570257962785618270415823202615114276838294751533267827336954172842519846141748830059899362914749079339968722311331623493040679324669743369371969221607218354062735058708661943251932057401071974425756037391948521055113188855128971479839614660575312873976974616258613969626726656612994306222103263522769626150742366538465682504627200029332521000826405023619420361726133798000844113780242713038637188665276377686288272558605045063577356317306861575126383831889797320719630983746537516858901024569296039887430186879907248479229893066805026277643509429212637156007121748474208432527673209594849028308733223581313442072760307636141284283535335602203710639052752452952673334537375037501713452727530523126481350218392489281635652986936594875199480382105104140722149392116263387473289151931236143310208582668049418313388271783550304564946076245960932608703401558150777782871412228689837132000992630102878812670263278958043360937970257353733662889203526926460649433769227063416972128804877533446210924950820619487138759706758805864766573992785997237776439257693314047743902305352589089095833389040915951854397113679663508433052631533293840200125202250217586817887110296624678929338256728787019991273917279248842734206645430392106072990988308004301504758282203031904575785746020180175668993623790840973099020880225111513870067167297498986075941568875555051155195281647010460020367021140593800554640327172624527120902666100832010617575038639569834319726248964805449724991835480305262210520674080183454154184497288968057858675356796236425476475982763586634480070770902098177045932013588999898595922987034141195350539494403323183619101094673530662793134082736520259637245859136378935330320974095674728131774710956414451692309334220307571855224803307511433938930833421615775641890106897777199100974745318573373888511109422889032315911356629400043354780609273941189791254967229117629124816989077994932814732662646543404385293368023159802060225288768070531695975278906052148854775036734528162253879579103254233282666223107715391335399962321160567441647677535321932797151447664276213771367775529938433852725540343969470614842586054162551050168985614825531775175628327874730909341996316932766246042914369183252050703487924843402341379404770498491206890681810171182295698601526917967847117845626281106305209357498484466468301616342340231588868460102932492148911335166396098370234526940453507914504848894903671016328689266126265491307646367274932960658131629045413889859974726503470931553281961851252873207673096539177805900906316160205174296509719396847781566429524318816557422283822310178907970679382482496898633497009975433563873685577693929169198128597087947399917449816622658643050884679944474086573329158281075603042412035257443984587134615403930394212632877024669467980513357951896138126962387188268734428033720209624475986034582526604972590587071588575215395385545712681691810380994053656550014604649942041687898020261783432108467352261758687825576286270618291312923958346140860361133421567533537930487852512295099859513953182062658567757567925232568586116699276314788615384774320209520312035630785558416525115873971634883571845145348831745957960962356459752453957236588873050170050058784378798903999167698295475994831651629773554425800460571871643901361358639097320182640499826391234349673914466555511093295010434834933524109066867464373567367698473189418880510941390319252169472172046572283637425959525035700946212474836794502095061703857288515608915429293352952118199648574298187103688928843476969677429706945470138518302196584316084059231848992154724359114577419894261626759659010839959281756715875305314384885625488400606813649404506718970430304705890444778544518289448686684122275042188381256131283164070919084142603764337763966187885422196055407283752769870207089902007828888851797467602846906411406981019855093688805387307800804860692892567304495557768703654102487554456868025039343549251034429219211914373942529716312913850887977839199634945839209838384794133293355857211750370662766079029964343098774018251107504755836084302671589657366294114815848069976909594980807602399351256829072872374016750526621667699529563339214025172237974554073620411677957270623971200194061395033491225851705452379253254656829173847351639682339784246127615632614061151626846945148669785911532398726266024957504356695037779326994982587463734430465439220739463324575093053956338734585862221190685098234308248400337391795480616957104397333333990378382808390460093568372774138939428279967925696351354733683566338134604079125413762739176623592819914978120307660800877495667019757308655230905291251942975416511924602363472090885501529655185842472990109166755931542934055587654278136871095375797273137846549101305287342618709177015759689668384714318926177335564238940311913192360924494210259290916284862436035342173064179827432672836797285497241078107914510949597668944570922626658871341055833758105058143002788951444693528507576063400419473345119456821102240405083013663353406309482349409109977109276751383121848063474686066674792339759111495176870777677404767940307442726882571209365250616865116672558642681545324096517355339461411647707382065755377233900312373131088695290368829133484435585609087232141489925123991945043808700664345898717823971400730806161001976215035804453769912648422862568361889090286886177910093897321334601990316963130285616500702047538132159117108064202165227465161462595443279622025261469742552229890890189884535367964301557139992047183119959851821273072284980703262888247617252810696887884653109039695681637025363827211972854255299674254851054428165209241555729668553508320284890402999216138266114958573653165169208245396221329290871401078921789482880710914743673691515047513355428278145557399482186705641370118519351754174065953235582438717831314182751213126036923597195661451987599779368425293817633312331964975967281725161931493964183229165961298271888853819391661164583538033339409853556308611270685530441079920589166420231926601964665647651601639415572520729872022606656143759031224699078136240990943322627859499777392593371984942187340393140541401971930133047122105149747803051449855602609104104658208849396945332293292522300643986185332292299837781135199280977208483870804363927682177253295843606063826575056453466878243836979402168435397100414095770398122006600918675591487039479757493046369846563314555339972374748850818323569506788795386829301063969043448284010192247253476845119099514084028955058229213364281711765124783478451506597529206478768217118020418937384668796695802293736809446735718638129499956761238081150967282786023572229441581270506434417440286779451040985279951933099143006381094214641039205828428879098459887472476342527587766182671910359173449335529603116062064783103998345869168225078062701319261382464063293793401941278667435154099765906921702022642542857730367891926391147057420976053499273207707978561522206407976860515756609807664323451902178442186423209844942035529349846079508005474004517374338797159173426262244562004360791323423674775674328974932928589832190337531437357127518907037312308770443262319461021958731314903399522002508776037830125420284085104628277661914508132371024508125670151600948684095481181200863776552415060318534977138500820251074059695054541955452170045763338838530171034994902915559298587141487694797677525726542472941329855776854138899874372556659372853192473151850696526908083797980073902264447977368302882774009067610262601298217017483860420044101551921328217890171916756455742150353996700553639152178804034995790293708743988621121259562231506241181374410005063822557575133755807859455961412575849479652869811477632392720954132079086936599385554649818333769724916291410487691249174066639128732570716112251151235329850160126407112097724608316602579463521036537686697838224406919859390830304867927941959112798468859924384005697121203447024663427206192536709357798942803776487682836106396355142265115629415365982816036649926318202219124482733269894088020155097973708293063310336797290124984341122435867448668935237037635610088323624761349386463580402790368464518130889112972976426774851622625785026197424861818943434889341591420065531803184008323770625596375651262617416124821121635137991689030633909703732418898976177221489360065882601702067825631702996550502521362434330052228408835662551417314913257250369342032636893151944926704224051528295859146243149454898202961470757856745665241054668431038749444941989608647195149193037651319480481971135440739914864150057477992568437742979495565782324404585698302043257551369540494492262169481109335933789371423737321153574049456327107051568329447596765254202193629009319708772772329299702450355603673537640965101342244792840466367161852523081632972319916950927640800330232688536696482542363239888554829122461899796397395654046672743729520361785447052057354695883911529647328688023120526539137588327654182237519899661746770451173018850036432466659144695779647012171630156852070238034945219120225551747899576686333024959291703015023007981619266462068316961134399359644962270824597406603561465655501244670420610252749970063752508422197689487261169531813089958934956659679553555553866823298453007305000590467681335045410367028847443127102550158634952815619340279223924637941802465646141200737354299824824177521931977911684465156852839332548461277790188888757891836796252403216723248814791062033352352048492168418150241963448203970234021263756573170497621088789218854321907964739292044419008783028268902783424383309428438297532872449884147906070673559995392852414176593125550527967290287801901253173785072987926975888221845535196093623238852950532392975153458971504150222766791240084229602751732100130240291621855842739275991445777839114616503234348020405359080427124021315002643791990885211901413153975841761336416135962128763394985784558506978237942319344077743655520142319672400474319627987676389197034470503844170351283410719102427091446336890276688860590149256327788436804595848772819417132374791917143114412584001478947691482009506829352151698841861726803306969977104380105120006011746174492746256926673050094654118670269039930495434950060368967972344421175675360374538726899736262473060237951056806054001810753095670025069149409637736208665893126562480864521785759772988948546776442427283732384473914539408452733848133102842043776396918752428667864516453610523869774398139598233502929440336506233549432078183849244973250981467888601987341145679153953816378214503245819776597399020366539896539783245492484805667588745461754597805720874055175088057623569632611218171268567277204131775210832074647159564651306808448959755383887636238859199691012177810117999490451537797992657438045573196889563758128186439504600751513053973372928250645463086952578265749210012626960727289767222896710211607288814482866348236901871926109752291825032377190634861859074781969945671737794032628805670031801826131460075649112566293261397064315467098181710545591237368040450043004670118021661956227907348916659514108729480831305463375383749569594026472110602163437237888681998927306076341113592768412123381059096849853424390898581489579677699536658501703156779277754594187211086968685184292253264537046638677592209368880663870870421187747161610209767202529841212345084285972640464806314312737974752066357362803111465327718020525694719672253262008763097925842308083115492471427185480633860888840593209646441789035886072779821774797920885250729018487927432311422390600899412012763792953352388234858349457327709734726468492308177898508326173843869462518650768910174777946179861546485318343681199304164220797726006598255616617215395310586618920288133939855351869082218963700156973480045531099418077437904963756713971131922744481116057869759361818464241899590894664918486296091672860403966192975739166554532094246088195946032192671178562090999455436927850310822520545411242714043183652648989069216670648701915253882079542287750422907453549154810591284720303182071473162346798076530957190147760802442143522863556664993361573452269627007651021852053876220815104038035195321902599609447574864939888438344446788472579204033618608191247687807306912983677189059958600785057769183047015780880521075440393481072064139462430754004004871725353925585333043263233138214216052259414202546729917239881495189020776813557097346038991051362325861252863007757727808737396103105969386351797993200178005563634482188680927080783081911391686577853316328857404516732620375970455820653715330315044173360122572802515800692549966407108290864803606791587478340196832219872070518720873336887881754697211548230235521475442260916928749218187110647238593751292222554630640095917304318907397306538265192056700867547077799082261333301391317404577168511568156540389675656546547758278482755024890270210245871383120593248404404177221789625430938671870423085178058852757986085734727654930318800752503450311418220456454135853603328639701477009386927987977897920932191866892697261534244167557838007414833512812916268637765875764459380393711548469314869454289189061562285050692985331550903992724320683616437039440789326643580860062371510110611824620797813634885768303818227633372455909009205845630297939692429056313304345284176614979030533660088196914315618971605123482570848492051264346538443093479388045203139626340154674699992558086696878141895301686374966037432864394866267479301130497238165546920991040378230077662929855825239859483896974934253245100091224727220391627405156385212750202723708678845456014364120570571683523462008589285070771723457683299599553970380782082321484981614428244833588003707516853145250661136495926128055281583553714603448149794702897671901980041522508985402197432819127816277840732253071688386022245234425823812854575109406808881883112226704339955487323809264828655047457076636870165257313975471019573951635898274670483255851845862177263171574712625626892454657828967439137678025735157583889694798332804027035782080004365619993956463472915049586012926227687447496326685771334666709436367496198394918559025225172652353135220817057812491693424130648746193278451834358886195195365045855685334185373003853657485590562129190413529006758027526104686694611491395055558995930051723049259468666037188333695116020820559304077977334272836745588319346600060562304443236061023073526663528487792804779919243959813846638843553597794264950760167897369571519914534990737826689864094622162024461870829688435446138628107458914328544606406010960658723641204634703710011615612582067508610382778697975577113673307270020366026286329632360980156332902293707730412248812321471602252425803585808439901599872741846510932635626398491623899677078076174837648538988062675682722036362865690893993039376357336829273773152849540314482616348965723653669151674270268496305664327622115648394078063701311950437187280792300024833395377063408028818365779920058591157469300205125502534286117873619461049835164202721056993448338223936871277133688434094591599785918059420722109861635586417573732661047471957599529798800932100785705436032776231183073913668854057598002046086495889976843031934415592260268287851200918124581106370219406429230787562274681078309465193641327883434551501462329092379270754933755494136516335871342696043243645563822537278822736652378283202545159224882762017976445424039538760633043766886416425804295948854571068891207127641829569442281488467298228385147605267785794004656639926433168343334684495732443505966732879815400247122389276212713549033856155500979808063544393552966993857679398682979353694331532420279557138585342714039991782401792477827974867428418296378753149305050351761710360913256205804102668339095471909750455850488733866668254831567786576219209603405294005061720243209577940718969588631066757722110870738867498394407715284175411411672880815273069630774111036588516303060096581112521805178529278079659665120101898907125883330022786710628814698993452837190450597025172166182565596584904722135092448747738591789057656725377218033350164988834452828052919876793096826156540672802070161973674843579417692711244704844650166681536903374743650450921987142237526919998558885629929061855401557321148456423050835297013185871544200942757920324391101971288269936821340229363336509088866917177574450552961126048111753133628408363558161913006846108832785556982273891237672905282455660570322178972463460018886466212690902145574945113893611703727425350899816202285203323922810250043298352900270762686927309552514918523126539255409746362345942978505045775190899383911282364055946047546128748816297943871886734421061334425036241078245558898181691281532385039292181686981012246301846752099970257665368468924725889469776232485177800724080287237101345131912999008703782507174940726681557477896654133095603904471891483320276680588370321756973001952765380093089652655867426700532083264739830002479124699425508888828033319554129418108301019087296945671721889744234725542379254004521184338356581723492489452511707226527507215577280595882445056382341306923938841489852314620528865453220893359958415165190764488902692576990883416842747638723864289109676809669631688923625473308366963412423693733125321653198511887906574332364641737861766697135700052798764403236096257909326011778324417335417415124155151392126126789625543867866281727337747998435414550179433950535888679893099633088348171883982339238998536914514732677837288644439226276410068123262415936283376021968862532286021368220991047029293246801505318984761960853110156256822374113424060984169226550769583134078999274897479565734079216924647420628795458683170626165813315328891395246774211891544683753363941230136181219362543727190964476946064128483640149125371462723162930233229198353292789089122574163930072835410932169307864082894677475904845902222660760954200191443575265495126725414555299020029980066585847348928256259854025303720401142893818930967163324469151178235064896525544710649798556964160307664081906898057581091230129699227000507183713066222520660617387770967915059437890978992811672451695678518225795181840971387673271216966099505709155787164737085612478361576656563589454310533638375572878672407248357767268286660987186567625719556439816637895821168043588173966564841016048559825687655692832875859600328319335742435851381146981399954815675739949610984956837660204542142090586738948805374894422301891137421698348007189338363895786539876151287228118723092948596673114770063290265848606571253485839225200774457625237911834241144308787661864979903633314313453861900735006677705050475141408274425652789163766942525623434331609220810467748813035656096087212067975632154867052687491208515738753300509475057857310887487955054319360739509140338708888418076349247846562820318299848014565962284489654446143306427716925908290695884816365008464034132229348105820810884970162753786595860011569472932351848563782908416423647201007861748674137262758425864284124765045192372661576770548418737116604265842970881090883476120809752457044089825793502642470056412893201287923789015270142210431861995277503077340224661006251077073963393877398786182000503705783398950330404255298929649854522060651012442475094033799140112150674302238902570940687943032196712304905564548354252557128422160319941073359597420514613061452190520311046774117389940770415053168106934466358105994718429459979765441136457288836754491071862333054627495897500518496422652013870121698358888889072528375384667481903653576609220353056129468659921682695151651348706563333911088769510238836070287755982890649162653686335496846228451582125030437159130607083368210845818410989508007621649860618200649063176883242942585659880915177147988865201475023116823232800241596349724189461243977736668295425002975664584027673321615885439083577787870043879633565111724682332234842421458366614653860564398886341097925980985709156955607713588098059167802574231037493515626228986253491679918301733105365366669734342314437412184583145650133681939615293370100814475964797203549507297111659650352019650803425706207031801774887193781600085360566189539455974705001678885932345587935196177546462859838599076031300580980264497598770419070513034732728129954671740177933368251321965474913473885358355628320161184916356376601069234994896907694003163133433062248980130115538932478747915518667967222113608277999145342722340067288438077556400402073768911807747634615901730500658876781053838034765368594359612790427675271717335251327169956572961402529981502049984468997390795552103041860108887003199497241840600309009942981734974127557711738155920315982898173945845023670798010795573474728126369477747163213481172783608920555166618008244541760573170793587290526175758005123184772993356652278623615660139291819500052671018323819819938000856801830798583271638322916866064855317021893295742270557936496357357271495346820624249741917758591114182467394826700912636627867201470893326538754595992816408977453212908776156818511468287440861720479556132998985961267913314987857402367093569658970828889043135028222883373852471929421100510335646722816616436092427746033031345686265158007840013462306153662297126936929169587599817554595655754354215211449809061974817905679624633315693147074249500858990140078405006480521483628237928865968926591467687348161605289161880812164230751879422469707427405700508132106993485319296840472015943501952833530832611570335567868819569214334614797405820017661109089361732779007474947321560074763881340996178386901128398235168171884722315666088652708133128818609835549818838490109041672941329666723696609876568125792903098602438630009006067996838146426065065926670722578627202396495113397825214635657944149159600098129374601088647206822209769969690540096861405930209041446550312367957076032807679818577123744433721686238030458316654609337697517160409927279592266369588042642596551129844854637144645489157631062224568874875486925852553567289098845768232204457144164462096183975462978416542947245463776285110969396511452180333982214984679955852940459505396807020801072689115253975731043497033071557105832307511642090623136205329556674294669084475279926455313648241307367909493008051093286185270065738643740421173175693709647541365697336976638381571635153919795234794329783846534814847900210567764228282031246760030819362787565765927073767242372812492774941416992591710573610234327208666361575779297458040503934073929026498072618329036375020418120161468396721601033847118986705170923238520486715188123463215285409128606289381004862354015830512706614623536853954780894864369653784276924970777320135766092496657982186495717443675963111865350306290564397315391120833302078360771174313799375968107203986099899059519123485144044278644473496568217837775074632771663758210512592138579182709346339649915215434321497925435100100800445449037646229401140539019843350335520793846832502971053442347005813279873200864912281846490822718307030223494275030924108467357880877690155244922759456106045255178298577442593737524582922160952057765291471953180200874024879184702151817555407373837379788104922247010327546865538178640117026616148004735518772626341355556989168039807646219382802479014761101163440834368585974582195841002692521456937573507803146796086920237267434527834962666980272970075108384641696474005358747017997898725405414875422501616488433883850496827109269133961226521818866751376357114609609121353406588225884260330702987847092761707529657358993570082292929513086247009509919498323502447473184761137242525503292414374736557900913542173213427199959861561324694869098060396209638001949493802371998021986932457268680120850854793244888418002510811307150252956353887129230206298110293447669781569443914507062171324904502727062821122285749840277909847804425714389884322312516377739136049624939681028475848796801591035809967752580704601934666765080054527125272571204938447310359417098860920532944036774632797494152057296275836207386241021913184017676634096888985282126003531863586725339220058507791597728665873341844523101886583950997401755306323785725471659021660497331860859469605224610851053420343954130655849021531551507888630244326241221016763725117989807455090774961862419392627485958942539317338571147289940716654525898177364777247736725130989591102236139175867259192727210401790682326257179590726588004943795335163072649760325523305154078008882429419677400092264100542731887549064901150426242882497791525546421249973850036319144272760236778050880654949410482780637109014775746345048461462817971078336307603829368197203472250381989767183431071970550541542345117357117575266497308720916845324342252608744921522008715504190268081018968694562428925817792776501089672667161430325241194876590937580627121761821618359727590915049227781883947223487028808612592949539467102514167739671037376633551959013277558484381051240036317628561345927035367982934280202544786977888094982650234011307044522761637712830910534356633359338786549900687689275728326886575450301584748071997797708177937575627150067675848267335536885322378306489348105277807064268331416163077063024727008898383905198662104939390094662294742513958604122486334344928116824881690852620440345599408393375611708605703233584583294261681020318850082130335584360322068137458150101706478726317801073187667652209830523678819115041311272809211423023393628801827079011152581222247186827395160057358523428438243946402639817981374918170486579118192323732356728055976657933212712279846609956081452100363434377567888885242436431375417986711586236220546456991509742951316137468135476194462876421825831376373882690222769704919630756961215109612229497200082873279083562696336979027928625938716309280666851959885634335885583785071066853232814060266575792425239870432723207927505776083740254222493543536443243719897434176097155003657357164968701615554399600531788159120168140380172289279489006127132357869494828104272885964197765820439994638169970089421115380713565516246931623100179132420518796542776610045481424267065776607072996670501384000660737693572340386863572627829410051339079489465154452101458831293319373882803221761218349202730479961920160379944461146581176559071794772852573900938888026703960401340655600923426237303119781268393938325176015918594251058099264852616162837478504395286840534302851224610069478678256119957279459484157854294618711557048138222966503331847588798597949822628036667485571633952973564441272306353452416660526391750703385640015036451807007854763152461372352989815321373102953645007824999098069806825640693153845709443287561315410241861962202869094640024690574118797868443656707452174960981233844486859967282174013945152369093609862557222144773413235563599494011815854157845132074101487183581515759517413672862756016283500984847829706386596122686885562859697829181775848911920708977320856385007873819813744820799183489306113774309457109409816688199103966474452934981305089421061417347733190558999761544952520399981998209641166598031091514928690070634834929637055007432079397334460698241993685780622983936595478135377158233177107141961233395636093357979878990615618552214127651022899069675516863931633867899042122766821854877288619466380193493362141153100274193268855784206758902671390143119523966166296184842344236096687593068493088709221461438438730318249923549995398230062560790688749461655183512501154403122530884488754372086888429690733157716545219298033636547011777399917192071597159100569602321383525283203738938911994596015149589867440782460927899102206602647408975912412899744177278078463979923913213819050141780488260891291167965964021450790401856155379888561167526568750620548953164821770657549975665188497952675933985222605655746900411712798371190925719347523942398847633152328524590211823024157805071166062987768746107039780645240067280084629427566852370929116507842977260186793518021722659607605799208708073591645829167944019890765841319449745847883073744375372332049234064036943289450177755207165850531433176562842406058883276031562533057153303525737790087528424777881113517682847226927630259839132809020859022069410017500173827191681304265540118197376947760074921529442638295639518238762304609192694381646574365840668596836921156669859016120557914022238252305808931875425586976603813295366991614318007377333686106448355342430558586330954277881182272856565447560978216391542317176863979941413133352821747305852908281468973828769517768055848709347748099417266339960236706079616093627396898611202437925060095853348471763938831609829101438646582170016384819579677506011739963087517977155765319801397659335889831744866508986997599437665705531075171801018847015016072219347350112289027289269420179692197874557656123911691670050298045578421774617186418451997574151423070878332566409237157897523192643631669117054238580111965078436525765091970295135826083718225491141686178385318387674955802332486711601313511659810208729776677351928856155426474174814024018943913063027679073625228435003566227278718614269910073964241386146559648808310001066150600890284865806095005454081440096253550626399084911843308091159322457464318355329232559451716533197900302935701799700317661141220553392713018244974660222408683850997220966337646022142594503507380133140309124244759866356214491811540406949249719663138613053926860745366704289261608171673377792365934420921747024377058113945883091369648763313947581026734474535100195754382791201692181717253961909707205945873320437653319559037042321643503252286222816264021921640036598831228235655125089853713304551747612006729962049725838668858447719555317685617566975091270875258544064306761362277650424004272316767152672182193975859100163830161731499255813231482599702065877180311419785678592753883737887985148648190795066510389696615117929895523429388148645660368744362671405782650855903569517723220202627371128885493110987039085086463885055754922739208382614860929391861661230997853044230920870258515075438818885064748475609681034113798439955430242673634912633540864769298995027090582661570554097235616956579592307700322458404950917638973486459833673846558150683515842324818086866580030634818859421981514990658862449095384364595477406742988939939081749995170933459465206523064128592489508852212210642538053218713915686844685151739460895537934846904893915513365489256198496363659371647395502305924658887502656507775050101860376452607965179843810049790132070027128456030227311879652440289096593471973940671216691414762631516019237297700172750709628150874021334439479855486955700208088947705571414598073285645509754101020216652278626524093282576279834370589776191946938596724958796505846090511758720707831661649036553200536507909282453931554363201681988223044190492356906217386143599482302563912341909257160179137018259562642440820818189101964604182684987183306422073248064177833883407736597425517405534868369277064888276528776207917620029779401716294493674684080929354148306495802375120852429194501826373116880557838220362198402136601492313474438275637610569492290266706464854897498369775665453316980298363454923083868887247567088003880732208119295191263652851116754690085839241925046370358937970706785373255933710851582482741215623472547601150857322729674778967340082858069840858748324456739292433483938605823186288769167975659575770523367726004294244922832327399360483704343557312572146957623984712249474014642902419761455178542153488123579787714995268153485713006746813153128192005630477306241470166404931494160045141391577592240597626479031277936362097104115204128383919882747717181567070625503378247201370473272670197567527481701111168767604865221272841963584836616898522632970685033720776672656963084834381288301723008720000339828258791294115912578629274519948587373345118239416726560148000818105919992196926239225317079109494567711378145013364633080015778880180330459448110838383075679098525538157527826252607607033696776890906020423994187702489760782849958819345977451874261069843444733167007646309226371410390526946691614179204767802627225944216544699111564595055291807155273137838490982627027732186810212863843874157839091895804830427927674723587047652835232827365519624337637807588147401285084563173167492390548913844866858161931832856450304302709439388360463751334175336312565828337676860164657480960752267064134594477270046690994566889361824477443325656546712136815336290992598062462240057389029832765637558167290755456173587902184248753036387951593017157801429886167581876200435759599386292316251923221535619551844251955128591505803824432250895896271579925929850163055179710943439291518409452659414314363512416748421401702883967726529711835472094020390533265487482976476690332543189807887882261633549569586901926550626195400425411434718095603763973178062785213903194192522860222256668026911585194967299837430563183702055773692351159072587826692968604712953806320043154401810183651276731314855528481250122299202067365634180814225504326129378303847518085929929329418237163771648358355434242250839099501814469340177456917816629767865341926786381424392065036123952277451671040543247398204699241546707173801294431658879557702334842247782824531275406303549515302641693408120606484066961530677472038917660167100451063523844423069422842241693968038076770543966984937505190799967290302004888795820555204513067562516978203765806115217086994468855033362668637987342814556559142958791511830455017992686240953328593117337232712011525174946411786269391631980497675066520344421627983816208062375387270514203658406230064845022476190395408363893784741376056074478465312310603608039358291679102134410933101609163452762206206831063396770518788326853759170159229782178317702058482835590057784106991632584477827560183246087046593458075708637693411655118961347957191302631306924120586041455938383666183969292011522468376304946541638048288048818868031098275606595781707175193584685843272531679809875542622020949115095482998689874587172218639628864495807546978456594608400534194309497406171714290068117401482283511075975223668358626323908509453767629969460458398566489268386024984070691908983527011069725629876029184584903198388207406021069747066625972653206055143406502585738742467520516378980841942156966168456140616408915432551077597097194915760196629419956900621529857955462169233952553815315260534178928225947481608091387453374299284245258529879260781216511064160005545867766300652763186577463116667684968229636666119488494120611304439254839937802114193814772277621666554374536992105756679118060343591760803523266677288869960556583116342899601678691472249114194550466034509901527853059426207999205153658639856011976415117241042844984629383882588811815123518855518385627448711466490169351648760460276862033142238872436302421646345310925863091743453776188867372359492500731339565483911329861886868977445151562604174957703160862251877517978490643840453437601612359403619200973627500075055998637220324517270110260852100691440569095853144255590920629095367371941016873156079454029686591726813460688355678901433877412176497873757163391326149115762644071182044884534649596197903010713009336933190667875513289140204340143431044243523579718864690875353850107162675468071064630476253139102254242566297686613884105115135152411181436771485956833748012159259906987938202721766795097007828652953044801054786568539714828183259838149907307100335307332427470472146464288230791432624406661100234375527369474199765139770728526830476085492652321614676987083123453866898120196591268017302177539170914761729125195475658210740298903752477340532696027619251945092453930590991471391972549654487078041310040436818893491447788170128114192445128068037062584913699557016183560585392575444666207233323736763276648374287112804706128925718288550435839907651248535459891749030272334065571104214500789448717558841527462678900009466947473120139795584969857233319610204197598958610638076296983114457708775931697272063497254628926130945587802233359701741676181993859342682967203775648155640654353033406342719024989632632141541370360597499490599002397318935768348773529061971124465429292365111757938357924597985129846558274691639783627516574789802174316379930699794158412632258401694107872856068566387675429513207197711769535184389633537597729354830084248640186372894062485002535190293630694286140134950974596430463588112267856319047373264602704595912938891265205154946013592222165526559652168179041088194647120056791229771332191393782406894101581822573336337323833047209222035628783748228592847386424554306083069981435898801588772325260467907802040442191215339193795755892456075124774307745200859526458875329709033091171188856788942479534349973808194637869750255058087687172511931066987209392991570027301494517241563852813618729320522256446136751423049760250350945338207739533655073101865333432180014189597898254316534204708821311772080850909721922703154049092092068194272469751291314432154241553293995522887514593273518012051000164582583717384968141100557139512912573404886390993756417636704763494080278127324117101531986152343655656590869385638892306050289077657253185240884532126850269664158095557084000123002694587608631810802948262852478856043812044954870483137735382269933927944297669555765806778520276865741276155704621611404213222108434743406489017026830353464482154198844271024474098879924233103511341057375948120126140382453758467298721589583603842665319503907622242928905568011738675499519270500956068463579047891154794148775560865979649785907510871683013573617225842027116306553853707040129637523406479460276951426603178009533953701547516324438551933647779010052405642114974739687746157433822174519615194435911342652398096828119820557673440050637166168829522689191976920492121521520553437724578147316113281509725843865203597132550856481935108702249703812480198283258111908018078822553872167854547639090398992540744846488677408664551148180442156281524276813606287780371277484300326062500366670841431329496535157241852484487335264917510171832746169506336637813021004244885106817504513901644798454415015984120518058005150113512201897526753937330865893366253281103748335688796220695075770515171018208015181304477551350826226886109273951984373201333433259652938620515190805532390356436662885380100080181686284013472310430463365483345425963999116655341996466946708952623389070182351682641015109579209771177106729648581405926242638989939029796611448267352562228819957246556912057116981369699271930152056192288342814006918204087772733406828082399886775846980164203128217749462463459266274067262373681123963315299673180172711723656359704243292189144339814452845775931607387561555294066829210668743309281399589658792987579586652594772253447798000236278735579633125415903347947032439234219298977471654885066189061693114200351479831355875225640954627139859982845584326900710969820055529933418052516356432261015287454891028566097526741704533627438749308219034104075386311077865543415766979275982061497180810270212790709659609012381517849998728062117865470030862095454343411747330797576365876947576641127547403876395259644884476507963301680774299662373986157012146979760726920042426032215891690381523247677799663010167669233133636951479543146567042234500232785979598349695628545062381895979914870073454176029415261626654165478741158538960418526235878012214999179140143177920352012399396595249533402839602483615393590612624567162583304712634924488268095611875312323744093833144426457756220025355917425059371161521162794183611426577077159244970054589317077689375450490294642227924509456416889503749409312363610977703433817438397179115134323521587231314634419241731602568580366951205991775920907712169316034132204696732578649213240864348753300769949622125371998319309514498784487621917951396846285118310052144261293573845076590071659604706687302339564174736659813793213233227939723312758966626009761101074136773834976452767004352584604227846479692618193716817343515487410911772542134341742503451501966722626478241256934704266552109433436079805131523829380356745751393948153939980407061707077913092866004724773830072499620234067691069303846492427598466361481508631056418742697902748125680076292814163317629910579431344313611862786076050244524906820124550503642630065787835347339915846770450428207190589522696296613915500326321394943918847565298229803686805035798082118791328081360242015619810571951705715115637464022672811305000222096352763238333154141830091780778361045350691081313793920354937665201654595472913431070200842735731121512815868016482481096408180095514830727379377750589574625188387370058104190469876384958286674547416234495860177006203571788359860546816805604202626792428431368353169309990614398661444319783216339337075384722940622364406338577798481872726197090302876164060883805681388857578902236550003916021820796185425169042465533417689755545512209103559404869624270929914460461272269674959542502914692728989337524398184139016634936301254471488527136092945920666381954665531010802499224628098793930680957040125005659330168869666373955222398051016689514466563109906959933853946572446939003045064405760254711834277461477659464252392416828836718051106742842842368275406002353436394476457496550531262199498562987167135197386841919046155298413375775191834411576374603654463020965993361511823950626763891670744885346745458008679803393187690775976746969953127745074507805272433796722729517106260244005715614500254155619694704438227131093180107669433070406815087160746817051686427641947715684489581080417345475017450420468677948122756859973645462594002485815761216315996326733766069958520642290316067403341947917339804651176564109132566652741703025028881276623071744440326051394336508327340804569396001487850356750023823283913258673063697401144102687007016127695786735374582734564779305579223656275714170399918351752046435880975841327842191903207855174417818031653391915261884197328390321495719491512956500111531942189868391396474820486028966693175169964524264644554523604161216029375456279900970537880174570724880056347231712313642058494248998859854889009429409898263876750224515322568292485348081781604150890773066820949276969861986506315725879930592938172661167538820896547808719628038457374003501382660526452750675207325312780240593098959016358828777107872141385633291354390062579755546232236605240070552502303912774907544326060947556678061076040314232639046728987968668119424047986694386927184056091491601611657708245898683012631523013809640421026208908264554754717355761145586097792184411088486473511638801411012641843926946064483376697853526813694039117939502817286073434072022058371848346834382337732196961042928261070366051773626918425566628846274058004481648892438275002814844044330994412386436868212800742723196642041045794724994613698773759999504898369879036942458232125439763096381525560124284346372774915840907598699286796034167207193680970420665379054245191533351502740298402441531342185902979663035641404647709337218402087711222219386702499154382917306958575193551601345702036019419515610448744390449189753384323729155392104738488531821498496911501811857683293611305048652204722741416779782309541162001359053686219877268625757748191288462217922238233272840244104440076749143175965380917833742707458726116210349927451780204455972831032577060878574559181573038954758040656138293914249294466220644359480795301695210915963295705332942996136937108522555222561056102008762993130082536745724712845256122209524317317708497624704135214737222240605479239110134912666597263110711829302118167516181020218190391256421595854498819296601932091195370816624412544439039029414592368741792871795206479048425650368392657887255147091378198099134608342415511933495855079666353097773149999583172778096471738362818851395855937447112459870876592996292493742490742499465552647026789748782918235356903654324645276252541974937733062620360474667331853245896195679505028260252404011886740086357658704704440736241294188866390310602267481435108859893085161544689394518058344840910289641713132981395849639125398739125719573624314545158460110791106913529589974809208155288571385572699230231381633724019072500089259388445793002374134893089124610301318583623251065270483474348845719320110174465982750120188222198019899899061468571734523422022861576736124592145850896745601854999239829979781251582237960305258499496715280720661950012041247047244434349597999458322750681402234852639823993244965977964010230043584561941333905415559137091190701366879853474561568084133301371347106364036971719160015361897348372445283354719377804573354353582342062310762482647239586476020661065525226424897162953326585855034879044755825516605774271030177619480400769608843926596735665781382081796103265936289022190798526340450799994052946932373074268331300292741804158236658316265957662166832784357782194293223075338506676702002251991935107938934028533594742491886950280580099640376231148718766264528657718284981102077368072721829948939405347045334995599726772728373458222563443680461928651100808956528438155298245126153341049995246137563808891337432644980482143604309264807344746781252426379140173845023231610212854375259842007093068420697229138719397788689583138313244883619368921021254713955317896668004186346593747366979613286439167165172432790163798707399912194483859773892928136399273262577587923160465455200033066070302642521928830387315525976033621998775488922046077532747031219246406772400164345033668436648370268935583746448375153005792516933728095489014527545689260611129540445210316731915643964750056551374219594496481760228305227048227282978548356949239925558298103407993023510758201267365770815116050943124284682588883043937899097700924496443881174188604849239816410072299294557103449491213288303339756254343412936789147405368660078882069822736194405279833992044235624497489686074786933191105436178242771894089193535715553448000291935652003901988799314612358549663279571349737803227302566764159539382019101587497184817094003277739961400463297965067015806261436127889780468774895615738198825768025039219592986829291438294613652993197854124970965677819841278520888949983121663025648787135534152906013938882148334956129052945771787651343312515247571469844427075633813606398458870685592381267009874214410428358574203020745858946641424509735949136585600407816001432424148945437169326666050008329791819782417091905808766715614040238382110321405478201838693526887236351257534935400453647746127445550863349549925532600135836764055763317843235296394860742961339665154070612233038272612775742685897047535766819021875013831266224353344084658299883053111431113496763024241272972788936532498613226360218167421113972374023634581933778464843754996049497184630073270595188459073309811124271804940238993528904646665851527273535156126920828556134289049423464205752355313760230521600725754284765534704880678719534171633692307985651457870382973544009527011257711013369132708348683912267415980784776597323475474837019802097689756775477207325214263803276046594730420201753117819781309350859585024358071909676869115262707000019889623975675220615172461831855666796230855681948765821801705821509744875390629575049893512030969644280403480788158019221368935792556531352045359520070979858915140799318794347518256564333903698750565850488431285135160571133758159091105841292490426046750421594300598261687123661401372912331700820842781580384316515858749150604190659034227448097757751068164057803972308867264261135270255498271094552142906484514440431831057210059161423225295374809685145824993602830311605551587070653084721700634437898872919347770921758363800947513141341666462112394272881247673748898906864843751553427100386355005978891675710781534918358578140445833221107711819860320350437892347583926773440844413970024593484759221349597385119419259321890046369089846923837709107044644946190051588631449517982063683233415804780630279207899881697222903416303351936099620549804590952581758027897759338672099740674849875861349957847515314571430385220358424801851380359404759365824202717900952879560729243002058142703979022051186429462061511116060457911966443246054491324027567818764262470628798588486434648286910636609459586014739799525645326458160656194832487030591753205841112579114379358397954041169163287522855605683217165217614663583773474716157362139135565943662316517381405179776239320836498593479252367237381534844482965009396796586742506274353447351078699905872218597037598834599210577218078624474105779966636793899429538006569529424233595868744738327319461616337168033425049250618861975972201120150783122998839615799285973873429566433653683320122607968130544762066228229797195659878556014382865802386733513701248842274402767824365546758721308446457729330098200364127627244204697577040840412438196975214379576688125864089876019374671054279063607954510695162061620150419191442323681585655829427569810975737576830657119477249663543052459464885299938383327701177365311854896787033894957369085115613201036336026751398255753701805004811428479029298955581113829313356318172757244090769001361557643758491916190395897499752175394110841267198239951983706168450580277094412563633814587156429072351360576161914108698800636229375762866556379879396117007541412001959209099814215220533262831524148998060039184585683559452534801216553459932723773970236101167174699303814792522415210568409499203562045541284771069618154332832741622146478495797737835236962190862543288145652815137395656461074393299476701130041827698790386600893889573586306056909181760796613091234011425133403419213735457498728946453986020725039243978930790686081109294449710750081970553375980932067715722601179458560356760194031373566611053328602245392961013590702896893814200700404072448917880761307604829359361535371117007160625558011569382653119414432667322687805890774719027459229827687137878553480230230308972801288619392572903653575115328762882257809894047963522060618905673492023575290261547240894428056553663614525276815063989187459230745680879259037229781857951324006688161993243110933364579481060152817240740784589191748938042794631513905490806642709838988462825183133686108056305176987269458537160409121431059392901047174641031749815405404504014807221285920083684289345387944981642964467892969016542852561543267880000380495137212425280716240007348088131840897132247391166971365767165818287560230587736214665351882814155943886229066056060322546004309807472940009209273520143622402087498787575032977073550663768853109984800743381694888360621089244369362083626330064874429534347609117226083503254395982811281105615564477112382239269716973301763761242160121341603176507177487485302003276705577885411448399543718523428384127633324493506955927165616713697318500051840088366392762603363862358201517386145866453190699270104622138118239933876981904709044311356557599781535253153085916900378025989675757064167952390254495012612557072456904189874509548114818976568618217231028548418759461169317678661323284629799433239127446056227065323809304888028427853370900822252991180744506815537070428856073392602815811464831951694153106289245410376233729387574491525247682353817122126716236645539358543912774555198585296121754712288550784839076415725633516702254503656424402067571865914673528182518698294109992886486121498704770134274722575399388832609764202184096869146857056224744784909639468828131712284210455038291153936917443453783530160590583188850939810943482303050817073317933623404913435153096530295459801663898923922162568337315669345790138411764317191168084942435825805257698511072998962684673680657321828945761169674535993011749101500332178751902863611152469486488877731547005735458655514671553871803337917345470375581343079201365997821688550834806782054259818724202326498225778249839302272433475544429539094485910973839406288371207233195248167449188741121338802859867261624561557990438188282108308817756785741779217272533662907363292335508774850804152867031668274257030332600180543591681971780432852303785309377550142733021358438253541991529779644446002606238313422743384607332096799860371612862267679956022119286756896222169001819655647154337910632600273591744306600099694980497351487520720760669266570471657365127613672859709542476346424564214241167634747866695409190961273760760492945230944880190580601477102942297523360083845527248863680426051301642345126658034951053720133751047215265562387138837432769535486382408308820227661192463010794711741099777672871679446077386020114188447325512933292262097736139257382022781797555642085114307973567572714178532617551083567875926205456661170076180293054057872104436692047481429330229919194087281421426263110355982507884742205460257555155886739400505340999253607724331564755256207731855189152710474225492452163674239901278518983929733758236409201538829824647053148643229590391636133508132312596179995388851986681654163707498449316737381772112256718260475511855340329995369483431291321812287897875443711572200026080822803409532291447827870904887029881710368910259147185182646067765998053153896575794095658036608673516562285470807616294234582832361505290474381502395029357899016362035204610973577411796052809133235316601091436010858910452580510269179131961096944873146272936393439840699311397930599065639042225813214834018877384698771020990017322475658220612680110913945346666330505132882502786628240557760972577385677536264988174347851060174988804328015633160118341946144733991448368904519662486228345096614757268486222851944638530784448411607625615078321088405346511356724886937738177488614431184554257808219132277153380712632488123467250324737396620668920339697150077012949531935987909334880449659600504000216173401622443828251139982811673030660246835009247340163351203708243567352750388613969361036579796165321867656186596698623467620657175305182024584404459721622203606153487016616930797596360353637054925338065025614978040183805331812422958555171009066980927167679682319984923138513238902249774142054621801803480550389861427210402664738114998027829916113241755386697219792743053708303622093505932503048616460044852221596113458860423218242616501511067546878881235162107571531655509399086982079311484701658853758304147334896970952287797244632864561995860210954976591427836247121311428219033409556965179308475299955664623394251400774957616282608269436642753983627323799822330102633673699317022456079160922142192002467850926681178985468811468312759501852770775357611457948226289014150929695432622932431460183795726830492191256467101071121978153896490190133767057957255781120087568447896729696089488650012414459474807484435060606175640890027333475216227805637932252917286614359502300252023453414036050025514437589934451971125326201127916867640071967603447748010260808878745970607009331866414278766778755846396048566938176390583698646742383346349012861053545637708761272190252803794502649829424958945162885814302505597384931996231333040163770908106153561918528240767017248652787843130505563122586258749056622742977814703138500161888894347853796411513150076252622290574568871184253579869310697416944808095355696079880341679208402448182216137430758394045937822874040153992984893955028096768597376308435490190110237258030000358820561889074876942725057830330490927975946030517005799439071107057440301616274124998205036372832669384416485929471588446259425808282160641111790804684122238150362048755083720125375590910017056025694022178158792241264914208809262062590428011403161383782430196104741047024794431255569771397197448510753122013556623560093671836598681784140491354751271381240729138589886792629460805913826921123971938036734907058369531719340229011778724266548458878067238012102958633938837075918141930647089060707010496061842540386214515494129764127065600174308902984810280856895195773387400397169381615177195385998842661509917960165044443785270456791215162708151389106625109664755249371438708770371572866326184395492779448578886977436293601287497234598011219984003499468057335696739930200464000901993137347886659021773968216777618531162987221149107806967261940163402839399298225512567301918237123014735145707539092569537168651559890784485342036392161224486999508821461372057723990798671794179824452509399388558427633460276240172052387986543148178825017262978344212164738729674898296726313678023960698529929343939033893361157785797487968881591687073633601709960241250583129566824920343138634918287234104167570554502469672842782684669891487120517342324332887167472415650354027818327219375099910029396440981412999431822550218622219113628522364306537023990560274583593467550734394820525347407642418657479039243320279344739334991553978088046840636231491134204672830884274549039975082077908865106224731852775213007068318263068162244223383112217898571291401821066011018178754847343016389684010038891096737187090354770651219068758964976187576893117779928465682457959196514460207685619105475148077053196747055391251443747823836050445500796783194996161501854379067750518915110846150150600982586280963028540940916989821113436669420173606396658684290832790234567202748071444620176762286489138658381313015424963634109762317616131037829530800850501352724622461080593248419236909731176501604469843872917999754261198518655185864413544066401734054652720916571246520044306364487727914148509807346237075147215757871618795177085307730837556605541045515747050394739688709569064127899131249939182246817369428902397110986667232384968086242150920056197116070309808024130854977244127552864349763707933560647835100914863780629567069669453033521171387767619919311899684167018285717055720662652257014726470829366397546172196821634092440878441476629979937616348925080074118463372906333371966822873494809991359982616799204799800492396599929720374748729767578199101673443590511181115698310822279154931483600738253568658326817838608653380020290317701162408442855511371914809928150670287918394320753839133186552498251713955062889759591565900730650186739128048505285783484463344486967665935342755120293872954473931994407640805110373608757962735192466492781857180279112536656160735999745880720858595133750422627191016125058800648455247931708443870118676577243647070391043846531099746713245347565966948602223576481558056896664927261573396014486779562272713183291667194543158178859930423383914599351693684894587757571078548734436694209452570121364788397424075394187354256110530990580344432159326427340851416458429900105035264472335972449666733189228235794929876691422556591305279326057955103783245421730991238278003132029167721986809990770862169546603063917714422204399677053899277928083549337445289222144314725555425464656605400441476506387052032024296878660081242627974677297788407335622742291944721975676618257518285764558007763821973514324458382514584761351098330773069731559095507881071928681430636571723240820435117124711093944744015262325484057366047893497430871871829649657015165683392039166862125052663177176473995694947285245012058755611971273905864824608899143942999706570901710635359893982549067622628373166762261115151050612629581438258263995874406710670600032816744684964441560090247068717609321677793407513093225347813653568825406856455782072168582014157930840380133783040526116271076947916786645528070036820638674858847626411370075955339185636559099828817129236846658346866463741345900772337233490447034998451732131173186700017390198162806942910817332131385516423268301675215365988150775675840626819774410582702648406971157602133831017620026222313836038915714086584681724940208042669072418723253865953558928717010343398408392968879120119514153511591363515891887064804334162352877913699190035320897346209817632411366070225866472464130043437819917785287768692367516027316995761452589386520342292897303985686537005753887874127020456552829695239045410687076267536887724926207742925703417574283683497267157989359820733036545644901356222599232375964237295205848876436828622279565555851596325980387494187871436479608051523295632683565900763926040848902861024681092925595810439635310753110251230252339659118613654744783694473809171751228150809114824632313288022088025004256558927967113436494568438739543634976503646774799923491857733276475525382977484052056517866750821682454444328053450376113188523728440898853176180436112241021468953785708421313111151684830526649755750716331174619008421015406263541214125093857950485062245526624346943925377756285423750703408542155703387951670832847964979735349458298890455340567836343383889021033443965053606633963261450869659454346106414325778633970558128716755626772776102303714800701162233433766739711517655868254240667345802085271135008540347918546532763184198651801598352502107284508229110906192934115371121860859256281725049550516811759826438060361390007579691276266648865309221710947638201247240585069389110924180038656332902787063775370000568480182550801943411169491917065280694146882540631956933352640428542953542978843172216171098224049132821036879270874120956141799152882551334435380723231564111200710061539527198062031048880944308200577353326939795495522435078708827096873319746701005566110230675792783970442935675071800238989704969925637821906197991580876479654577602498860187282121930128304865363114296370345250847213716270605667758802172368374678430273930167547889300139173578770376447207119472287396254092074972563962578386298400276637566718950927320447820304799761654161241591577335401409011532649702862483423111005143861310173943582571276336686981733501095098079606509626292086959907364976195587677633487125863530015882296178200220387866216060745028986388678903484820840739997379659688655832256165716925235428885737571594648551202930920627095707857938273376864502607683020885311529613167080015823920654929560040760262350726703650262000479536028228070654100625115675145174231202424835396051391268801386238519589284387270409586668364393402964887767802713606317710967028579887788654799617193686890158538140822820646138703317872656395557916717170372083951091341243167668217613348885005879687152404410559715254937038841699761164877862276778681828832041649596520353226736292327352830698818461190979975954952444961755041187282052412877013109494871019470137108211484242910434357279809962954639528771401765915138810164409834037254920225239566014888408836298150908877715697900655078123153882560904201617924482888371259160859337056635217998524629212572701237598202428382004705918243551988928901931801044811039991769493764776344129889312838702930817241529268425097189597763967965677268384696866442977879924661969829754995057377205972131306427696349652216120452075463925703348298885433478111340968862066603105436509286167307939412144901933346060299581098620078520574430158533062088543382164388562928725087814777487325097687886299757369331510997717089673241406892642654111918258346244397924204297692557780428524017341430587486096978525067120741610751797252730502281775129952736173494432972869060801330082456188801767659272064270341175596105135689795066876753537471341499433708551279237624044681816607940639318633752460735755165927794133202589452353672527417585486686217803258371083162006770614487262830207074536198526864484799850157924678327764242955605911867819224549889027759541259714363165664253724667255124305419632067657357997572656321425759009187985938115915027394464299267132501485167194189408442170398961410177327466807894817506942640560435749634112700510182337597969474315564873025423212087617314868218594369283904462204371178935686372753196353618614084957337758828490137581770648042643361913797663750047132468254709357912997147453517548510681572127339915341418695671798709843802064564169973126084806484873665240695968475141587806801097853328114850056542449493206077423353273767676444058513475870887344223989156183921020938447235108671569834429738902291994890919132272314896992148257433138352717393636172420814729465007727528483095816678055291986660304838836097992199179395877164799460401816277244214896034261692575265555238595123778278369279858129732120234470032340886519188880138317198485207217905732690096121779666265761127470940175382918464790835485359949488755023491864847091958728819413124224460538925908116939822710246611327705407715416909770035825476828816243210604586404893601691717716334570495909188290542844633837973780277659485754160922526185155120458890256973786515610772153026111811590840875899996783270767506704650354424284442952737039365494105692727241437940242285558848666109995234894911768194365304702137640462551492953065043600538532370034160986325044776843460259639923494743756658648340641072334615081317692077058737988551438059770616879538392987487556829796088649407708180158886849454539287544506819156533056790963340245052785439698752072617595031022040453110516624294133089107380239097449165473507414959034779882107882525831243426604124750957315248464657144553481796061900819184090876506516725011733500535518517759400718817511501704443762995008382217767527626023183503835369119642516250921517620490044439707970722183867325260810269482298030717049278685421151250586657744046511835080124839413166140290854019792360076277359495655618810889990227415863520179780278789515615007198591181789977070569207237984744338564700735463360932875175790940506302643791541118694539677936064520766214924183248168772081561757612986632727731868651697251506241552395666093958388886683119135396417841227851002202130593425896765336146036831094712105516849656449733073882879418540212389548191490448228193998630702994860631884704285499990015310656003746439026073107494336108746769556207744648945037079046244758577742156355560275984349237305088624235812486492518808651333707775907504334055960579058576767664891785383184358136478599813489505428768956477128337696144847307246615742674764943815187364637311580894268446262938982741634851887823282271831321362929589823225693431948548499389824135491045186678967793079676757747955792392335871691193271711889250689019525673687879239244782980871434663974208714393729366843210617647963216186715410200443036219649512412120470309221671742873098458499012248941540916623952366618559472656636160598973340936347259424488348568229934803079665693349475927223302271755065876276836096674307621952896254434620092084684428363801530495577647478475892382833985854869188175030427437611518815908871439740214307122863941403976970212669696635589179100156431931656786004608419946244671300420558462460885871916357575465816764123428851381830066645801797872192211435188050076462242686372059282169971565310496233500046855208754906215664523917702119214412607053019906514652807742218059988753991570875268966913180923980557771734238419115006852523404624176884771491373707056542390153073524992865944320885750156877903508295328759029921141566961807926762483676788651854866630964594329365181372673177914128931504469207983829332414277970774097007215360947345681542844868351867678102411028590448671640330154143909830095216682170024797178647898967878633398685330326595838863009966915007220149552591418464333723808556205795155429090824190394207210082882933337503597409811118427348413512456964276178440083025974956782661651151266790170688490867582926982498407746155833088803098536109143630541724401797510143666810526912605621424930677629786829300174107057168777304205571861142794127015226220240536636862899277260956206234441104621321802562838330043866897321494217888088439735360005445913146932601151396554803645084782909379134308183838017776286731407615649289330994500979480677129849366105245742154321681690041991936941065426011673761034562675382481759506945474118852378123538682086661564778603648239540128523351474861833464226925306197491461537431157523056335279195037891034455409454309735034179778750266338819606802043249060431768522767886995235631377181347291374244666925988839505457878457743826371223885987355362789966597911080167263878843414630814938893491415076487705507822026811392601626812258965598724793549683038840377262017052585398312505905628721844923155183933235845832408470639827908795383657337742724575567097758702788043203855961797720548152781037627025273093761363758799924072392014062368613124122652641653797872540450798937705390899901215917322089339040289404317420692298282798693753209864104789250116894767254725079921840752138092723102329840149969188646793120657902342054368356525971361425998947689247096482240209347018677978342977356495478964501897801211633564505386712543709738935292846986416716566188655087621789622204048163338357830542875008833518966313242204730750248909190886779810725436021820838996439929171473741506845684114609228741082274359263671928423647455944612338534472768994692501360996716350606689908859483141585852941858923842282945844235449643047535876370001014195594448383996692811228184293221856619119244823060869892257795159140071669492611485707473314738236191337210142048297707060190631725824249815115111971557569406129343622644958805395404981770303283789979038943496524306628101376303569367898918702047862068365423582667941938392751604921222284058495217340777197176558833961639398730316589284576408731948767035094446997161307971497797276525771679226661467818405966831220454978379850506365486377131509128610514807472391880810563457409361897680172013247450529927946068275678004672787676815357437084543130017592472510360210664333076491520906643442531409840422588717268857939353806390790674767713334838467065335595167802704774229626114387243827905645544296773027786067243557260805716206117244014533707450025334364680214911738660182511623538837684823515771815532896887399897237610827173665959802188043269966491385955669819711582057189630208960436686079763759798025151557179864007911818986485571479259987439690864044212337379006437649616971161154368791162571371348504169038794022742532570107410267213656865797518971094695425717969443973522717065693296724970023663187011427326027537177268554554764406716882215969406459527816640689803923558511208905237517497640468395585995608689073612386717431057053413548742847406758495477793906267166240667801229886809338788922556623420527939658986521557113688907843167991599447224458887831301950246303111804340479649392825994519861264371670542851631423926552359633159733286749003763251127915281591824141532005264601527249977637088971179775419825895564763834585756421128165606360072393522338783897421469888389506809650665087174767964908380499521825819703901656601575443706034396412701873882444370995317534312574627194721528153280880020741924079982860250616651737297245252940194619438634543330194397127298316502160176009352422019196662886657969468709981550211416411011338464618229781839407959208692554917739090434598815758255259902364948960836085279570404343940550880998010958627924765677905653441230980856986864029839551257861794594667164659793317114484142610857548948047016245145442243771119365799830629150554049624168762033632257675429769909802945596695744176426330233441478128206318528280198883779375815501117854571930152918248635950307383082330525996169723870987477862732391752393443044724186529502676121605833482991963605579042525439044869497383738684125310670571110935921886769037524903286196028465306567294993895696051463187024997186523368461831774449942214142760151366702100027029587722650536068396216561510864099636042955993427863359855208932924832480003014567829704934443898216279101452939146578877836825994697183058205665997294037298918016861410556483080675637159732373257853056205565687845720669106954095236077609303614412716451293523479906394836209564321368116610887089279636754967451831911631238377776702621119030367518338995634339944296431745425920628270710767137574548523910041183804079392020918304088447085691739172380914990038159730796607400821647340714032681245516997862854973051173959451410301583697446400306974832439688134343929709669944106121397179683137189809525925590140583418576019665644250310891186665899262489094200626326305358903776180474036343485622670064144504280199953829868446465128288886964357844721959214681799383045714599197972262527354418671110407860397613532814870056678261597627443341726505725344679978053243700265777669596596113838904315000929266202652713104886559115190430874500965869105816331365273468255791066453513414432629404953877511911992845958434410192770495661625975649775108136213099846105835962802966997920180779196220169820143317062537874148597213231285002884437452315401419678718116030902226741329745014982853983272213534060023471606503837578579896112985052828613889996888134556984875077920669948225660949474034573180959913900194942391392885106979931671830544883117506194509000550157169488364620460623751288652050194379865768782335561135095947668668895409479745276677720781939434437880169136861865002789598383065546891246230477779487248708748397422272976460717197390534671560062704735207565297256396495829431610659108394411304131883306905446648400268587758448311477525536731735480868271614238037327253193463792357248341940982100388655532759596792452555504818099861487088542552947404406073690599485721841586330461176740017896411356567082674612995131049767948986429151057144070992982755704480601905741368424627452833417874388033757239504893377019158151781166227231178792068097978234440981344632043880054125652562082607154003945410599092782478721959268703833549846234244437568001718825252075494022126936941819547743111469108420979087643368189157537367266656918066390640244718047842371632761651319083286979822243622394011627608958153145351513290318081007496522353334597280363452297496462473487490054237756059988536133481460923364002270393010338119503334708579262930934001096408534214152294884493627615522969656574953654504483690914384674513901988428354200134641465392030278873082509189826368430417561961491280125938526118141243325598036418438923283757140659667642398901349172923608876336474381660827494266523257770927989808986083957999554778344328476324635832939484733040557986683891875157267965064778066039535580896171146733416351031271791882018741367396317735033059587647100670164843801206635773346621366062008425659147135368877624956124769112609029132043880342854897348565158150940268514770581916630144595619791175904699227719886634704703991508004025667634290743034483756822432454621577781255652481555330383204728264662224901107569807373050871373144798353284998433662623468718892157745733635946429126835537009182684919941813584120783563325264009353357214511127865423528723447485863387931503603803512131707630686433574381406299587751964497914208420923229316799767713083994234942852402200945195430712080916294497883244932578247382798540521735973461495459242977382836381228209615424752957710089803672178863149996129057740169965099604974083314519014932012678786519620403498895080400786882166710744154927681934410123904209599353652601066734330041233892383394711731881423019333750121942346480141709552728833261801480703520584083010800421666279609437583786758346949763427436549047971167475756248307692532940806797395227083661272310762978898356237636753364317361646108317226786418555771553262695957869749908435241932866021910724660212333247022673403655528837443047214177383894123397865081572544852564549245270309758908473098722346317294977567678036074954726636231841817056255157261717709722805465747652341821766035233203798050201931728334736348034617583397661323419103538202110300717385073619183560231564943809997780981014499349328117304141682208197158269211040129820361468295146833040060769607000257210980076186280828546608318423589296045472820313821102839462683416687321651378902935288612479912005704071261312357143150323029625686198950329580254210074949005303119614446310991347169190018050289586544702754402946114109781799176665586948720067440985466558710941334136421198029348140882737150809845159899579337790465475771558115162429880526646963916553560321425813112373209679934340245697651079814834853581580117804348855468284682831233830508894763846950893469633698021495145066118728289394116011187900360654744412890640194958564143621064351744770637081991414267579269476097623265880163529362148016014228411307063103625266188583935432115824917575348450837074847624968629094134376924467406850621652269403738723319079869227859350271458963648053238871310357768773906780202913689692760881635005660998064039235011939346238669191392291556104354558870863303497497908383691769327985093241619544571463303988103589154837404543437479997785718663425393107205086049868305256074599272189884100294175732952805068011571662006865652730712916734760242673870341150788723435761221028581605265610165521624934275887074018570216723127396190602515110233146388232613906077255006806207813466977163257275455519454083355548138428040539920196602196859676996046211687026235853384446353397093752018792253436481383228860458281713703126450748488290512472627834787959585117566513969537788968161021839754264669999995450825512372710875242244900263601851495691219450014155196169054862767424970024198793643715486225020574720263794253858000845303073801033154179516456609288998092798130680296529448862410304628502211753780716230404681194371460534102442426660101597478321034018018658172153989321152025542060355035463683039227493909800646244691876564826144607145659634204031245710252237373471737849612373986961592368555936675655038137584944932131123443511825760916695623107362647647604700253831283490586805236114878921840470841186163976421435934582988338004966866768599792654293107374759449989353481993287205038404706307031976742802112180753049113614533861860860351950772604859233998296690103378100450672892507251497068801242600470295483126232764790470009112198755486171312970155206903059113252803649189815644798772913003137994781058896411299649407143042530630468615677890138008189407139822113054168050126266782387389289175897276227279808047720439162692384523886771553112527526237541533241757753018820449035023489356324247458882967476464938959705470303521756074211979018733281803535710768769538019229876455867072671429641269545311983656257345481605481564495035220691089550999028567309187974331133085102058289668133792975935865761510578132770186664869866665762215958902192431146356085403175699188682793817893166662777337370973995203410037516873425657032902384360354950304477520741472707784399956857849158514355612478717547019387223353542985745645115245914916060458358792082252893565969641138516253203569098063809617029368743339868921774612052930452531419069978376187593333709234228888931460755571142701178538531662211687903002444839756966821444521558346930337748471650283827471290814603105863360831846740441491317796855257358120632024824923670413519985741438486511560404595904696318624543769188538866337019159635951795341362683770659500651462565085111998133230810784278161255273334359931114766206778652281906489667497396562681370741536497815501568811309281227527827900802683271983632261879934876915714559636308682955382200489068151457489359156583122142245193599308314542028839995477143156520604672126738518597283804590055506267171409776860134341401348441211738905290043425139198748622922956172912503334961041621611994540357384528595607304329922323664924706948256892837129709690324796559220743663510813251453254593687969112637930610062749981089348391294165461426554095879291378662738835841504638837574930720562134418762750819730204933507886805664368273512948959513052279771960449377742823184651132735208004488367597394905398951779204875673965717740840466831410689373919242156783565694703847136352377400358853741799554292949152548966002250589755833173882592206088441398515577696987956315445443136459848439950423621123278662012628744383478224588427044232707931155554460872925269822621963967949583112683440285214985441149606727048577890995211152655583516683112211796867987677825306333654992368511216172241382334130983670438028728909888971180615630863486338752596060621865993907341989046573520846723030370952559422749287539320429297851846432599009723910626734887636533826934615235773541561480752842945647877121200012514497721755310397683015474527540199379371586005669649876670950177575448707217510093897112155937229760637590338446996092741959335177430072658918507383438600309481042165794091056761684751965351591486674897638284531000579618681460159706680906727666260298936023801837091547399558456772648870833923535603387853660225340437219350036316252165384481229126693301580882095639562116884046906635471956923282473236893370125064376339418006088812996846106904065651750364660358716761467918273371854100867762250623460428706354825805814162696409841441503813993058005592972783676254933800086498189522466774990181948568321386218997240619700712259847097077676909195803036450969115542009140800063781339989665660622998956231780993132541041290707050416578046869535101948323720185314911929664770200097366494623727490846528891070106424906643441478410445977969694707768221594449848957833092987372366047887745294851699977729851984679955056373975827789753975701196867077742286198317910057409316347630211043532636361361384460860447490809786108248329453447203717710027636188276757582329087825058085777209943549494533072310697634306395100379084310570914633067824859221114078223640240471189861282134092548538255456757737364505407443256393253323651494274662802089813827829234125852837565376605356202921006673868270252540795913926026988076712329005059723301846876435773427042381460645277845331314668912802800009053970330762373626197538525069481621683939763777844565608699435766312777152790993984920080867114580804397538289340927125902432715026249029710406564028338711699238000833243249134392874598056283766880040351015142791731034070779413396824024999193802020224634345221664416791799424916370891048368200836719826480204336662055387073686051853470402879414107495867794119000766160585758860582098417290952923416984423600184658669637249968132035760732697832459511535271620648191930018147266649415314304770296845589446870499008704835850312898016761283387093253374375497897443725734550376668817381799476689721821236345271687313110807822037959712233897913645881016153357181795808059148681485254781231519752469130883988572775333454936651725115697118046144446718185776057349169873866052264727290020961581943013441528151163443791613854973184992590568290292946866424266574027552576486937307924601302601275350739220447942347849648163802037312117130409830547297517820043037564549206541286719717125815005256859542164506059416908284942555269504867845919233616664418511906151091989003748014559315887686238763461728163399411943543352535301818425492634235544621733780110443515392512595178355089202342560785707660266587602020581764097177343634501195093516960348360611699123809248497125601555289397388377009637358075122290333190234781295810993502044810035411968632575360638841721410231478150989937252299422265939059770384294251276135840479541307719620097567690705213880898850605760284380253487550987644474843679179674774938707940082247959356630704634708488922140189070395818251310945236572285660681891247229419536455142663220536779518052951999732742214777385473510799815367436346112173568039979210159846444722055194853478204449672084337001863054892895891912287551818353700949171401434548020455337346683056908643203775333220723409393095436123891256337812998719957876890078366035702826238165688956538528005067724678125065259838858023184418102650812086656799198651296590657566772728407400826624636085102277259345489543613115910444002284623744781637070365155696430622626334005247143202037977514913221327441136179896390535063859194044031355545746176561126475117613031363043509417713214968279765384431097197490979290967218055837427277949403253178940694270229240366032775255245045755044955606195178338398213852346874177268584614535493577219356814946304140655136994230254092313389603960431532368458324770081475569756711783221110499250510324758638525701047560657853439987138074280331776801422587890540621039134798912372210308604400967319431614999509563254725955126157878227533136892845231306959554439908569542331624055808223871125616571005300711987838480400332933046044785054997941578074742491735842788282177078209608141971127204744109532205038818375717325076671799976528191330651766772350477320668465568652268851159357964129746524222309212539836729855835333480067336381520920091883682808611972561435713733534879473155966042184454188782949386016063514816154893905602679526517089454838624356704622984447163171321679754851855296974079311391389563358878058662381777844990817237428707087760015617982935518392996860944432458305829412641888052349582170631778291595299983902977267531927210203445491817849597707624275081661265158865552943482167310051232913061817085083152117893474406154620580298618019728674374234541799435000411432464485730571738254758692635858693255252009427969519459391532237149413008424273950214704154072577445815157079607167047268169075156905322146677966523917555461790592563255983913099566812304146285871684935175802358865921905632141043416071535158852810143006878948322526135766536755205800943347239515423881663279019631647575845170156902504094665665695847166253170707540188256005375645134242068099913769809893844566671424799139860685682177158054047496326854415579452255867898065199837489880723633288206588666650252769239004408593107269705311077227112306760224334562555987621851320806854809876774528651237803843168250026723415804396495138868966106024115239796767760737720290751643654751310569068068203826304755087346508347915444286527149429256010759227178869194321284469440120194384648799082356917886987337055966556527927120428074811121499852780514799270612914009258269859363069321023572532202231534208820105345798787521653957164322463367515629751882087612573776393926431359670489525945294676411690121186602351834772691426754286927085322027620513748501624498635190116891447386548854157634878367025795152182878357237916768503809839806447024176411898106913824855695105559193983483065680905559994354224195409398532205408707950445858697889263744892503220386131907155715804500929126963341256559393276273020080580590959293644854172427205874175862305279368219944746907929247704995116680042459834795831684063132242724991866194857978934520583257852994165921260208501815777045118047481483654920692778185205139246569541387536280364659508896198384391355514089419107280080002142555957710876375977366242028459375948833770591756888178848237939450914369362745970574374439421303061976424869426316876189481621280086949500003501310956859061414272583409080207551598060558347177477356124605826868446936394187294905733182826458664780780171876320366138581579231162536541291513542064023138985356241319623702969939453514744939367006607739818218873262395945619499165439296192344867532652701847232736584245276171346799393897443938809213489971546963679235865338335158834128310672533862856283904787419774895108755488111002786066647417294716417302192419386549378615694768285763798862077080611992502973778814272924537367327822502129997171475357011485145354464195848396956915355305297629854826352418412405272417090389474187582204019047679563604702425923285682476715065809893898304591004948161783910071624068877800683620262634134985743633030161215434330851675200793908243679497743071519728598646408275054943865748080476587855002623300053110653298819951664154173007933780475193337210794404433038564677348197350392531018008335548827655927577218510095059149452072981530446510400034013503136935871724480969087914256950946376121843704253950404791646619344677674912965716589927581726822707402638975227185382332090386628594026341965713877067997119158810376665777044339494336233539937751705323731337015206834089881242500518361785568223649203161146249845851447161939947965700071040337389020281248265628778295757594268200677283220517667617513341738364684763382187470168317024242755227889804541163478771098041745505785509296451936873462737272779919780697390352608555671596475535052045284470548681762643093202586244935100241439820552888125443674526152942364901188995535221363581915123760645387984461067046114235721597726272566406639015946320564315664497375852773804282572224122330389238895788109691164518574528509188714001208288252325478826057207842333334998747109815317318242092468594789624767895417826830525414762828921423403592656654362593553158629301846171097525418516307922656261731070921671366547069606616836916579246061067984560817979707403262359421480806079715741018405628162118603083076482628284338349231570132829541018834686946676791320721587656974452341946369286349822559226487014432872464026372257089047366678674660864599402915617057553804426875095073747467968909775086130647464009506249655386377683140461422654985930789175589522762255571259215188518617294453991357562923230468473520006832529735868051166239247998163259607608095330701299272046613333767873890133159108662763234482229125968767279387918466910909226350846073981715226243346611689363505652815728909129241269982950430876988863170793954647538057824874345038023606043621227115602892653754307829781640235173737129321992301537696904524745137294664623356657274402401247479214166793583920369990589285891612795830214015581213174001771698128534429615669955162946653514672421516867599459626562756775789185928813499150628626309345284310776650822828965219754648309462108332821720169016531656830368120143002426506377538454280086516125778908220894360850130803057842099739917559805506358899891693654245294006527614642251545143513798953695221028519701437298251920359400886405434322509027492684982687464489852479314057595322278509677722122126492221341274731544466835845470724435312186952856824295387900360385259322562359574167627926336503060927347432287483254580874163157875581210323201937470905330214027541159556924566762495780750460828996176329585243108005058048516381319758429843874870753684620747993168713415054104966168114866725514674057189085730244207054195741303839560773669626238645641557492562545581102353223202421829286151036834863712399356325983157912932631604926179968425780781028740880073017542633951020111652510610776755045622281016551129899581737806961057456723028549828959644221753804744842909205218621814305178111925056452632353258882475357691331360574575449561015442677477352085441454204407692439216158499215020212153171390972880569553957388048538929557594438124222606268388510189664975167929308839780812396953093568821692545202173179208051906454855103207097256697037613286484178065860260722813835485506237329579520675414273224790058166142141818193452490759740371415619139815400756799234368139839309460929783313604678747060742239562094377533627522009985913047979331552216099164374460237046065797756661651579947854652745855322717156083626277092616942310562671597557408368167671094381520650755514257972744799120062854946854517093266226089373150927869399565720567984598348612569156734276227848281206307523480433615392633233240221997109468423037680260843608699861656806061933799602611530951063580055884694594400172379797774832727235516997965283676641276705781673836835147844353799861571342778995269042052037169305875358933812449578492200973686587112905798292870586148072267732990269476367162313687348296566067803218278428022268144325596308188398283002950444428654769188352640869496323153918101236670476319169025283009743302463322531858392218233562337484353993457429001246385484315510700311906440439272448229108687298262827863022377354572241454130565047792370491118067875466365100922569920236218548471776696467215341468133659454521729079257683088864556776053829671099405070553133875257673062197073482388791522233100534220437815521902068333497303962045393793029021544725292947981032804541611934545259872957457999968722551575925291260955239085085504190669524782045766951932509700726735848421677315133016428798030730951722717720370273042598232905807284388751893580035528352444528431150316560790476953042623360681965258289259143802077727512885030269561253156292097606531620029682397653388812673745947035000280401765904020240847168960425213283397282217088685835968528276665530136818620306204945152049807567614013293585161320914807364358365949084016066471149451763751852990052115540754144119644818211328745187923102607050627112408310402123666754077024627060774226327456360873849902538103489625755817732941761484351364262713817041781876123739532771267561977522927980568333687735299736371806566988391341824323752602790643729594872701544334439484166457940973259537658257571211558859225589330664240242822932151632810176262984258563789338483379182144640933868718575181766990504019540531937833408093527337829043631731566798189681984674199423023232991887269477180390875273521716974516984148935767642504645099076670807705946695978851435731719724659215618823373967975129667189337846456785891537252277705660860207991379102228809855686896776141895442546042955344276948746737512398799428025220123905614509730668546784105654424774398685281187930167853920058186939086572741094185523575419916507770983841662767550437295657673269993820830946194671406826649118720213030615343849200348760525826070891922039533680734378162638051637866466830508001928281450704072176861728540199401468942641154790355325626184779172514766719784584649940040651405135925448958995627652719403322811214718842523870270748152763251870373952567548814624268134229440190665061753477353602272824389144346953564014488585817068741929639678648093950351442103905659635970952539327985834551963070466763836324252372308193644746179834658555720044463669638468735048055611442831372891296617146506167970213989765425648214362317378458201826829533975684420722273535272249510287514387274557784440646616794974940707630533252449230152427362005595559272230360469520790458688300764456571742961875689911519586538493966402320933641263721068348351298898724136378971141902376012071549813652185649976087201472023231189225718077428288913963926229882049495888405062607130151415361055540210626012608391073871630840935735181642346519991069152866403946891728585424155101988287480339047444599171263753030579093534768817730313501832469072768509337370372313244480984902700976621190709077979945750082306328651937540398035632928166236359998571037539257618619384525694749491885831323639510921060912624536198414104696027927384606287507859694092844196729870684380185608942630049870146079477124824608469960492022677874608404507171052124717296095188628805833597007904639701063112908701312394282020412226195368695487142862085026973357580521671383938809929644581768428482988164345124695523825158220455323932154297149944467475159224447011741599643424328314593901774911354129724218289468029083670176646273347213852745844266883977446688854663889788378997604946843537531880222132415722790660078816351887428292411183082293467413762557899431230017080271605307148929642740222921536738436696896646038061604828165765134163719252168347383061095433503752042122943928875739508822515038700986413497104901501548597942974463640861366911455046782003104224807761293119031598815976473480426249974131885795387246881907381793306183981562005395776763958602165154685505710649633104423430499915331885329149872343423082525985717057878434036763271925083090832541599136689783516221628363369043204740980625587116076567081798330777048915766308128318529175491685943190595922111666361712326905887654366546776637199748713517179743413607788193882352451723227072799453013570275976422725010206205446162374859196391648606362438886339306238117077040870046538206005227216052149680255137905728665318992886758392202674725135238783243525635769994706009109707843135778109274505392651959265326066769506996721481191322071278216687608328446578188181812218506944502308229910262521581488259250584208358993047485426591005223208876412055375019582741769533747291643912057329251880303077313262780122989034990528708041432095546933812221538216671248592247727925410875955004765774550940955671283654432168148358422163582978017253906231087719611247843826670605150772592832918799168744905180075621824120353611605372583773750096269019504579203165108254978924639453339367693087332019860089028426054034036439999844896426161883134870964345677297848609417399010835899649058865913953292309956367289053570852886542658630862862703698123057264548178350378220643347889730097373382210800145097819579695555009191111500240843937868057800926616202671775190103665216398692708746386599069771506628146030430919117122092471230934117498028677399271440473135768349953621591527439647045572169711753778610636002678095314994343290381605585565856892310885924159918394148243661633073175155465478834644584944792353780078680749387219166125074719422710781495685428276667794191262562550410316317727082377299953527260984711369537806821216025461487666108185547100544234990022688541967504269111284973120986344057147660307598615550243277332089422444930186592702269505451658953119844976639117796480248779832893840116514543178304968301652749932726801252069887691929672489084611298920169837638885734112193856799137461702947842531548397777471207335844466112800649396146361504636506113686868428900524645292869502861143918275256916867572649120969684577228458430667085742703641759099018969023655725165852715776270488704574835979009175301827306518552601554465487659368889572427668214017052275412731509596268283116341770207980138418700300926038191952449445383146537374811682877407318210320662403072309366413880768035220263477489373318520321107409102083614063000182494877668321234847473324670827990949960614513508241464970265039725858572150783909803370370015736379035667282937315381780042396956640708786839925189464166648574944257523781733702662790834838882702783489103915004639490123411634169816579014824696569546381546538305562624583930981363559056099735499746147104128092802075654446322474733525835671447305522882492368282603572334215107800173864152987062487528112123499868404872145668631211128475904465780599337940684471919026157956895253406972894958125722365345813566671789271570405163295253140645548955822765522190681524529484125132436719580521330563212240675687603565852223360887140722408605128139167330768923076611187620832502248598993991665270036890974377807805514176431794532112593886534458408445723696765405031654992957870414178260631162159299233353529721277490869396778581882927661929821095126109552814929906953136113480091728194754805775458650869937694989572965257015658348486750126419004531380610957720581514785967490966394795955868228776711069019693710860227156099993728401403914295842610988386336287419281540445406697742327071212640211787898506276390561164888078839473757714709807766970939884943690255364200383824034244398556592899702891025315403710929203543063333975607901515165845537295463010794303231702500544993925051951637406684957291418236266996374380384374964459743405855938210027819314301337792161721835840861572889224343562845355064931483919945018232441236229260803895373528941904465315810841877838074717190938352031558408918726774576685292561109050792802639818151386981642379292798179819644210619999907439598298504861840149721419478460461734955107277987022407828643421975241005685580709808312982375049290667313325814065372705348048715105022440630757457923075296165796246325567400156994423642240626817075319096014622409273189999151815895349311542235851114274608832015103846099521507116921218917614224031857141108125425659604527070936738605714177536594895455917667200395614006325054638903420793223558504358525965984786758579194692016074968548407882507203955449368969094324534823367440998217246118530076149147231215488287719182010467056652694586317170007093572271710702958380520306091734268985132472065295163517095268576104790995261133064479124923750750660115764124898364141842478288197835296407641722418937579523458016349575610198350115048684704207802085760634685000219587008686500536003865202429446418365079344621496376428124749397765871011710074132646311017753643650625854638672755936526805262585824344857129366529739642165894324554276214419302761172796515852917353097101601546231849146432281823363158913261886224817856504656824328561174996116161791385288578316347862086981315810065008372612873638852825818843932578027172440377877809468833285555696087299149316345720969811103240852026812289483133071350415131521555336320935340362134166278036957791030188153266473687455061479600012027794258398736734137392225145108020543523508968334502937808390581462776903398723546637676266994001775020556351223647333873170070886569384062424940650267800700382020687887876653214220297887481474088847037427258383532277028277250329387280562812957270617161797565349307130316599034001277539668083654897625268733265745855412462535232988657125861179964648110728352895379674798474999859331277896967709747992432230349084676465804657947945918766943718554380784242091691504404994682211537271695258702471452297886269313962011204186555334682304723764091242107748531235735590290865890429410033231865141218216820496465213646470732973270249058768054407858991659627554217638801508484536342548548330240818911180160253897934305301917384716952728756365225976853994093680040762941070299347184118693587848187110701988312169626219179582182239941174426844981986473125421261067050172530002146470327541903810759250017732250932164941426171381583575955516713517261760604351456324533140916217147121700681560871085633605754195501093004013417143130323481698101842097461993924867150033147123835067036383752640307026778897655959850527383478281604252867866020234290509924183677340542106465222452988813027386046161737850712763617708675765136340934235210848708511868927216860771575670486831660708772972668539992925075981425902769212705560854277127296328766025313948842372282201731537550150227449776850972385139792882687421908098426942191860503145620721581545193521365250557535967639138589838966588567980530946702129419277331823335456099590392375751823415221719695923952620614495927728582029995281567347960343186590227532411338217561088130514196653834752107451231016493070744850990216824912148285937559301972768206822476845640764740931149028975633635149737091287963928497367014310788930540541751692194156628759774601551385237614969462636708247691849901118526233956645891187394633751376278879939431847845947789865993678017161489720191687033909828728623777974379332814154682603285021185335808133564826911220113762126084918290693985971472961316089071450950070551418818707623597437689200760164521539090465657344704365048144957506117997403763124977484289127537347532131314866310432093409293064038190833763836983614956059959636966186852325884267255999035011372500216529144552160289640491455395577345662200964320279176876007208607251605415014983733114666247494709603183595416115529609970918589152702408322662735434622059162620616084084875988119899349546131434642355221183062811617907834791662535801607913728788782554884324715517150842116649760884306523902894649203966923341786912812457311526069313836847811629980689695549448305280472094761730339072843792040109392545928816704173501767678696346363680043820456148626067717122178170473063556698850316144386098887971833708745950213820681774178119982569986858978441088340662312399269574017150776493535412560473131081668124198887082898476305034757001151151756946348764064759880385114783038223880001213837808431048330127659229074769407160963091954332007996687491020131892415030469172382464314755676720921615078736382348565798938875616740037908111161083374080789763477569320367760870083931330412705532261512390478114857112657503983571053457718542888103329343692718258383536702151997205606637426871453447844143154637679389306184583336127708723438715263192209488489573629983199550767893704402694715488117461595292805228218717568103221772398269423345602294289776226805098235576331849977616017040274937453061258690105440909323962071915740407281655415254324408299382148926937673240150249144690324993065425051777545055955053070524647164427449042994277088507045583460788292921357639729709645453639511525247767472802903423134939973637611598239995187233062621678490325750183564661995869249638812714550011643263926851035405166208079990266385450563526393994135587277560215149238207800159051325348665794752095543848598837934406783126934447929592893953439240906992990380140111460995931384585428835571239867093515909386762262221624712522080604488284750979087985629764989958319504980127025456161215430628109845837531100737937369390234939025608585805231351200443824432802580749755709927078139749744122829900478671383200286883441441139428135031728096716109980558055597855007329257397348140101045342459379370801815717736987390617167201792832273847698633211385122964946278198227813679216618113255031716757799195087536571078102973434071929415297052186907946785926849930198335226378002348497694452828500764589329511635524338855375208436887092826132972411579186193268695251420336352034386566474321422709460109369246387467417000360730771404882318625355056750748422650455119457466375923341264682072416595370033543680215177661189143645130335363639103711655343904505906090175772153838277602989713113623801030848832283195502056201851907505566151437709487509443324930671450578017751334227943252230109027734887995689043364316551840785456709713226913419596604860211918251646208049135751054899035580517703872297212351122668962210146020166363915813211866824917641235294552332629659270548205399502203754524177497922866908855740663035413298133206774555735760786666918222402066799874177536714230349074596052872695119529037408077851551980165757415931901474936112358331729777191553051300688175502942434938661854872097483388373221809931845762969808629856335612068244262285440817081987090047601952031517985826476287845152630464600605182881452270928261685395362922602444992095298614187717640829372637517716786157644278791633018259399673657859754919154709361972279677910522203216075497877347116294862566255045639932333074604010265744984031138057652967172417651664350103684652454100812990828717213465451475408431848584335311577791808197506282942979128962852985727366771188758309205670154066956271466523794804662541304428476502924170632239710798541904961515759275151906186376267030155213526043886531300906137961604849927631705223387073741213799807035585661086154296003264371025996146846515304397579971481867827669453875736379439676444353100202614681464257577097490608035001786620224320213724232637612739264970619802460875814257503902622249376948850481260543658986511402981641625403742978181247124093315803266211921813105208084275443265874242339171580631380372071424672368588940054339468789057487542394421553405563528550716113072247049076112118572201943979436171248891207051031035103495530819668244374802855309982431443696697000450993945410972140482813722572525791356551173616794136766099222785878277974884869247098335735698188172018170753096145273434758169496675533657457212809533911686269362788162625006899594431517210304931032046018037626324712190679504662065982758203582813603237556604588770974571967937698780003720402436209576722015413107956451272465906889552844767767906421153722225371297702863930204191945887848303084793830451134131717427298311971104220659053680353998072896887221652473184925688885721995721152578383804144749071223389138963625171143646892777462098163876754387058426246478569251923058108297048870207178003900500035346471890967346132006867716908357826424035306074796825172947654148814611293165591516710498394682061305364722868705987751133773390130422946969635775560339609068532469586527448035361527637172952200598086417828770957243125981159586447251118237909396661068455515700348781021288434908912872223526236034774700750022043530273625651359965614472082678574052660876147185718033595536215606343145993021900726710295114625664005199942486430700773647883162846280686123605900565813009661214009867512091546735062984734937812026195689676082021581441756191536776494467788777756744974227829419005167104536438160188642026760636066993319633457366326632393908908499389051405449286341995391687583434527090150287220047868864399375246936319435330365737125899732514001028450898521500636675965154662532586816690733908802541512927518389254216057258557664067275176984223757496227066394161239272545257891348888563905178989918794478195216533138158804421803568543739075558415297550370428961397277259894721767004370761106291814089191798786386401732874220644183209901783302875658056902279247732680475803930035104829402067609932005183732611363841219361068612811804186773072171903738956068875385273669415507876903759902017057888159112541276854863205037925244429118417734622158555027010987971674031703347967011762268961251014308512348979069834948564095168970878842626369747091496552904037885941206382383284324930213411302002769886005914780500081814890395507427556066795845250530238993286492165276735858018194725742190317801000213570996333603281231586161926374750062581971549122807291485526622867502580895029388219073668215796847036094519473393820484479649981892207597066620624492466352099056836179511617093593237330841890778275877527390230168928046419458425190036284440884657260273503144777464714116311543555110839056837796912288177471640148499335216797839072392270203023716542113535698138329566005954330028076124302203664835423282772197574478354073535299771194340389595626706164323931952920432633245095111548510727993085103298119380396045193019592760424850325974811195835576553880388602984967734351198362265276573958361412958111257462183966895134581653780033386244113767563946654495012174451592070480404877553256383354342290108703891349684645805925630987183767271636544975539274819225324222314221555726406324069530819610717042511547610828821338996593017697381664401868888502220750697213588257064498479829022285367586395918429192231650510361670580005877305351110517244517109278477547365791391517574407777228162394860553000438311615690517267472171172138658466536150274265747541188253670439451931597019117743135538232765916883872813748569639314799889874486656220660411159462236070574227463541614229591465700624325537325273395990730158111689473233590467176690866552915281919527625800754439575903379366129053984359813286377841523817969324463894820395223836352120573804173117370095637340422543577257261526427094203251046289599853094009978499590776128917836675417078811363470599162303806074995703171535441851176376513875064434368443825880216121408006944182613941423025703588149633912881281005317136305472511703704345908660487778977729210384253537272883835152308232160594255950281080592860958703261073486945068747563368079225347942447494189750034144845710289452500496872587421110278638147048937911446512400016077714148084342060365446394441834431016314867879455575096955142596185513029453704287682792094195084068400520354300489507421398725730618628173937870332859046431437176854586781685141048278791765255998757645336027590218448788747417451670619290055245167551038997146653106476428900453856738607556806196397180466193090724750174897962913754288808134983623694340876286740862474645977947379299417026945615559915291590199753357708322443543299399418581348115896543463993111009732896800244555579137281055596540816891092087537631521829355761338519243061211123257834281734320935889743356973736569183586851370317817294666266718909625264340390378738309716433819206399600039232843467585021630550660435208148348887980797238220241369209618477922714437287807136982088126818430169679153804721552631810672517133591612053369021718890767032781616978143626553494387212605650821477542843833806968063486321323591008208877115467270624410282428139496495518280888159855369655452013636857514180576532826296589232128777247566377870168428068878410576589958784371047050982584809260056502681667050453239966673815335762666735900294891995614664517102968459361878412593062445462798895622604783929023036990472203874828314774604439589862443847520941494421051861002521698161080455627531473162309774459850942036054718314335114617311709318442238570999910185856894437800611744239650341879875252205735701812438110562289742820017295718696129041495879198794430367499191564687841753670422731393797951907574703311993641336097127533570501427022112533564266819882095306113303492875280551455377689594060074597268556235208978236193500017343083553681698220232087185742174267086388570900605224491103676581397908240037282030252744283103746619183940704132859070557534527989699163570370475057165921710477305760391456470699978194680763350433029143177222806200034948664507642816187344946279365831161961802945563691522490045445736420391012448760945088395718812211190303856174490595225906298665665543399297928408995135187137812414198186329226745720244892020221126598814425450687816325635843999547633830971091531257220575513630158985702292389809079404803104171628013659786898799675157113907749289747079120047824132538850778961621603650592727817989117792940553255096983348526310315691319840803880308663326118737902473640365915266782169051568062880287836504153121516912194750185658314328346127234363735491607071642461444080620519056555031152468660175030547786919333157540143120336162994573846887528551184162294065289358232588435866411176966905328158685647938202773191512846389734284336539524455502614837262828996098001380365392624986735727348195003461432022156564843331442422950415353914283436631863012760497547495642497783195967926532930754897572153053289313394896275454932377660586008355350975772770892715400759303358433096903679676842583218808504040156685461884386010514697333809341313218846004036174309244445099351559780819286508646884060655361458492980980985109124365761303549233101534168302680489950346057275393442133773621478362883803912951120534354917217737932796423937697858623472065182591517145870920234746674613943049763674847279176521091701013187241001526945855924250564236536905040619613716548334974556808864781957683916039329975263088965832908193137827026520517168361090415817962551095330901758144933663434620335524943492963373689048298103818949180362090908429908623931997097619849216157865507057809055477837505497741507928004667655088505340294498314568671109792025557037969264052560616020361380346893898686571772652550865069078031218829261760759602154520267439037081619069692314454396589689903451441635943312731752711590977009030740524425171528606039216293615147542057988285700383125539057349661349326236217397786645218029386873579728646246552688778837072964922870854801060872510395179107962295907298540305951672696523846191924276774949924482055442397236614265730904096573301109895591037789664067511292549399500893264103985410751504599676925457744092468706584091609254153570326755964804004922460541615472699282711945718083365345471203663972915271543057702547202633064718136752485695486435545798048192801079682655389345894509632544223477780299508445281112257209377528533323520647449171578002797666321764177375982132005562403998639512851688300740498514586978169407683215922459144484251959140186496620947054175767955743654876018094315331572724509781524988936259727149944133385882226754008980194655314749812000582711062666791691135850822507808194112661100851193936978165532734158980840230955184712076972426965323307826290896519611227736224644608887075699930791482189402360293296348928878150265827323679617494184001752233176709612815587333872848666321670828620082453621612064306208501151224715529420694973038942245331123117106390829578091391312720013728550230759016362743584874509521441816951159245637710329254717679098203072782068610435140483305439728871555138164711191820285831783242097822284478059848262141652993856850507520352610877775547829795704249376454073327155971998751181828908031702785793790066831532569634637545242417899973743827699549274771116408208061025863595017509107402392716528175055521170822852335369391072507579025303356859845122507189872922742832205669933796129006783556862749271199096658057330267882511656503750930336969698432636129766103893416755911034517564412530223095059033142208580060932823026413751020735949522539950701969464145765492150425139268432473240677275529008747352222572579430254917964097329654063973403915553836427798215661077669242452524387698953523444503378734462956206565960396279593748233491129748745922433252063684870503939355482115652826588580336277021715981496850550448991257855478717633972547873132856963709650432368105384570406618086590530973954329881900607502208631907125882837830749067500270945836517977171179285735565635515870221847422282655642930783241815823388737509150568848686572725711843818499950647369087090389106635430327759812512925724412357128727106405640558071977447641946656574615181812329691128252273730517106367860493274339223432625334778291082510466687614403478632690342159137369277083086140769397642433215513817265826423590715674690032912454863876153270824151337329946300035532489808116563334323548248331967742507479460918773160805670987091560519872576279730560450891649837967339200971807279239139872842266921773971850691058799196702083150725337396408190140977345914774995488025235875785944416800069346133500054860808067519586985918337668444507140913697532219134776134222809699202541823752905349194140279051260350706894704409517188675494852309448573818088087467764049832252411517190579640007505531652039838379933942446475605811535097063916474171861799343385990169400227354309366270965264899579983944661176253028743792864894940428334147248150480088033627645070880988002397162905033664784021187290891090889191874268472402818300603780782733858434838608592625800719100135020893424930823428097934409598459691974088157802028679606351326338801297477282627448818174617030663561554272348571106588026769692370079582762067066489922823906575991058914784476805775412086169542525772382937820008667280484920930352349690340999014666791458370733806672004458838743971344173354852680716392582447064362178603584187639439838017424874211065059379522124381465916498656667484026947268770427578697347380947210308568690348565982023365890244008839120556248724370177730236423549757006055247512319396491641991288315852564640471047680022115381514428618467620163395579355260818919193469822623087007677828267069460067838936665564031480017331669729066066219729578696296106211810001172077851320832533901859812142562067226081318807020924463233824589866275539456716613052560773638259056598070476685504022532409240340372258160479076963437516943531082083063305489035869578096115160377801657987197878660546779619497998563484653951035543244632335894109643202763159048657870070998732780569108217738939299901708375250669192403939106520331489822750532134812996443840652570791613647972457056090878942314687034738664949930685277057675638971626542158946202426660767569616242608621877853053819688037225205142311181369615841099762310501705702396872916190470363183062087469520167245403675784383965993678796437406000812727444516474934022167468802916874715944618140707890464955943319704014097447530933184793978352891001045804449132173555016705237557048441396239440215896436743682491364403397325909013969812291612106921137644637409480928986562006900679190207983287389124678301599444215587483653842196452527861712816432514248661183269339473018731509148696449926138105391727372938224711960700980110075253989129136961392072383045489465696154743205367908466008646293788388132517518891091916393213449536558507233193148065219211378627747695966837619116161374546996522157197505138173784207042908143652019846291568259856922289979137380145927317368332629060659789537864249796686067439191968132134204226964034721543462848228838947757487934084047888265988028573617186672483705592850007371505185300240902405279305768135009623443643126409730865387750769366945493985575433722911623659199010021502395438106722029894329888559707545189078780348203545008882542208143622417213836479817824457854850583747372036266462654522390462176844594654833454193920520336907625919000927946339692493397062350365210453063021857997967553748353377994556987374723485358623524538426611606075146116412787501862484148162795972877000049058678998728472841895522708962938256554650200731770704092953345111004514739717601722061292275619233103195225548006684385760589444545310630269954606793507174197627609433204637344191682860688909100706630984122180616849919476873446833189567359028345045977263356563546372794065607770754798352806609642258409395349711380309578681484397155266499012592557501005107595442452298144509082875055350433806828967823609446934135485687750259824317587892172147738107413368125102325572387871913532115148333735346208853418000340077177410901710058804602470118787325218663643484839623875800078893693745305502755000950469733810410623865793509037625913434503891780033359941947275864721625982266360234323085726302207029939002133348840112121027980991318924808620403193259568269640447080653859020736424547116291483966386478969048902900676254705497285806983496904266105888236616712278107857304523941242032774450286326290475423338491391844921674535372778340108777301634395774983218353588944403111854091526265109097028117922175603221978037699828227088101264051865963075334486888750488431272525654021299575844665898667593111332382400603617784086928832723486440231336317006677464281623518522388704195990982524877794665568729496642560705325164871089095786208791077422678241440160064759684794216443707065822244086308361868775129928892855602204830691772850542713054581662371556666998111179504274117504095919700349222909296612265655379229610374614040748498282719221119016144742390274890243185672333235506041582232862471801223468667157490648484056445725216704465723540748467570487790706094887627177851728416165164351449094290614349730560242245271393791004971781548937653338155065283217395879713085171388393607954414636493678646439165246911391727534501430838041436779205972101567812048848512796952693969448128445762101069823936447746565985537056508135116504426216209852436377454857933094761560609668385137504010194087699983040330984469060938616342246879042987571431264319751201256487943793447787293858911797427240478573596584935517792496967228769798257127120180849706079388935259123341960067428647566004330060753368975008177356912921816535052895977383983796029032535473753863869961864481609055383997517694523851057458450908245380388488649423443340963022235812970160485995095599844846055532539892734345990623910313047347363738530090744690015556453293493536478059865643525818872582246187685402510712099952372465347320579868726867365088021788057319538467681560229597776982194633046823138280396704511672859220069581639792735021204178330353537096985920679962337798663464104556078551634572804990847617920805604127439692280615188303812871601269785094328279845798676932230743052613174155292580391864979152982444392862006031450995548265455617385934115060794972023548295921987933193347214461597783218785545817783577737353285442651143946613386581729085020974079228267732627601252163789820318562318304824192292007208884089306776198803164538121798038396990343367896233963462711657223919516662070425865123754660881386202167053995029494882975432525835151911028503403602457793322333359089077109509747653355703621656643201624608519071946349198689571957111240310442024732733576939779501377157159520040658460640765526398628037456803207355903773255293417643586885866220016977438160991609552510206071781206910527067224562242504248470932889160932185983378637381396543275823460947041524562951382589192375708756810551508463368414806057802903239214510487894767937889774554579494954209385081814788790188338652852887398203144924510579220070381484423548132200459488262146936808454813190403805682955754395599917045749523436395410132367040773739470822513178190607980909774738748864743334286741222386422854946209300753424314597700288341803837512214101594232734456025550746769556410474898923614891770126475776910650976021593321761131848977568389469771457600413100542135972894663934792145727138720637587764114271037201259357753072224468971062523021084353529747128414337148752667101749510137225325155879177899692938926727043517089014219311531013540472256149323611233138783473081926495052185605443343282311439553675334812307446402775519508855156954647191982164644299064085153363758052632274124453640824693253147021399326666718923019525919744565945943957866824161521001553240650369113906681920187315835088129084889987875854602895456314040766448979439217225407436345275930161460472758478243274822711398106085429557959421572572382757834727076476256368327748578860833281542844399482899025342744656101275742261327373049470143394409550857266909687031132291455480114416738009707820588689348025453554675720192277522366117979568697249672447893987442144756371213091488458872986831211725507486492600801209550655438770010925289009774086387285376660633446471011945525923153618243085653542026035935634480750953718670310003616995547982368634737039805967880120661962929725818477124562067038477406499772139251683415353776857379136627294690618179559999448864025554155486670151271743113015452787311023978719181918066743512048628546188673417285044842413486636001743415178901787304735798785031995826935463630344404573344083442950223872627837714078347463809604857373932430218461515290408785790880459337445031722624228025774991270915777965950304424970972557893284423823490106416408279069910172210115395636279096642297928566145898471686369053611527163894790958427925421668950915404962206614286601111877750727646074073335090530652120043674461005768201709772078664648438546516792176737767241749836542862642933592465473391154828102985133031267803370528060458010537656167654479641942612971654915215015166183410068476787881052453255934129154234411983548677909112195544668313521332898238515113429457137196760976582454310330813463400801579653691908441468346289983327397670692821334870589790316206085318750887010543151816101283550734987372949691482351670210766125814534572486056430574853010163048188073862715013396799935824059803200782875637241193260773056997258012915376112847215322204447178509301008638728106715746811863834603067101312912740777514979229917761808734432866235477198766133260768033230673360482026394723925771302123367001313144287219596610778879761485605622917443107892680482804241456506865502281058054097554566970892027554827333310895860237875439275279770561184511158757629485199718787823096779736622681657188621141604895932311871297817273604113104805006987347110695548468242265357422689978911813883528707532716218215136006583102919090222156714587178109562931468698594592780351927338994124019910032525016521485441756969015285091618746716414708052764664783183195928586870701624147455203247717203473598277143679887432273307358443315065187873824230296965742416961850278807682273563339744664161515665861748842089661468035689721370198735491810450983369579992058808196618757440010646572353234122863128281974734444338778667110245335678173554629289010943943780937584237788258585465337307587546250119004951902106273664405736446033772865057108781202831032051537457217430386863976914924630661637630545192088866088349152374624038668742048994071235641476066541675393928062390062774870529219694038022194885223151768543499468042218727557713365442704667834552860760674424382814538167761730688479958877464061322982376854433586391775704021606689920904336689249465667127831265696354496329659539723145690750064292648184921553869288122601196035725220376282847696797642052701010903773828270465679383486147514296296465806444294766754587111633227515282137913301014226041387924178311023108751096085703015890298070212467367128793986608240898197707774671169755797946336593234222559189156647683154881435056281219808919419376071655366717346136946068950337921349521057049013808412262191429129129320708806190611909675029432505333034726665232985390236277925817855455720706442974193082417508038247196580401183000762807598691464742771008797864588439132553117071292713533305091323641145808950256156850439661308975210193572120015701976360940067688941349232210918463006685110806309945614899072494770256833287303386209840279238190728084398175980391233972977374595797290369936665429416035612231490073076127250249207934847807719282987947091923451961095434461423803527084872094059055310798571392643967311619829672955408886657136282184175652882759783368148062143052581088159256881745009698368315178178076779922971891512003190839925367062430083096846742341633401348768566333745092936189448933429353490337484924141056997304264374887609561040179359658167591050198762517178826914739894324715201944890374732162953507167148585483975874068703050427150571914277595819262423589657704952189323107581213918223218774004617209332723531791781481535121336567374370907356604561043051586550931247405353758348553600179359630060152820860763734998189440654386410819629921235222556147660862148281225244743598883755065642589367169431891615868742143749734872308205313075126459341102399540538837510408521986439137138709951508049073659181682494067374124935661499851931352478067478015745300246610240325603202471914771681308876056022024199908189977653336649405706121728351252230790207760443177765182345238903914431174461280656376446287469746067813154909631077582011426867516606728171966144670416323390340362809255659204503501126319170175683981730907933791802961523925339108732647828730490582266383632225404470955014228428775871004806106621825845950841540506520026287260564485662807486684024459963845767760813112150338359928723357354960296630708491906283202606861789013818550291543635716507612977752919980605997608334683332360350904303134569267850185252733531224595151103975443232572108711461267479434963901267467173583729646836670729960342929091469434739753152193623558119714515237732748988783682789670634234919065757118757934112776728132412075826239185684434256859903788079109631740000475881799335871570909432854940756630483545042943927994063225545885355543806277188622787435711388872582593684525999046700117702596548959793974235553542383439082432840392048918345018997006984243798897722080513209270116343838433818256802196986547551525963786828601915806707527885923089007592713187910508712779123776579091921083589640684354254097944076317672391558839803711820972685247700276611847426679264642914246291884887634324163516455095150102916989513418391302062065195345809533102841952874215394612677771546777035679442022336835308768998876748700693215241562628529795901072822965089571705492363718448031034476292119283595188933314353228704497537325311058060488556259199700890527587964992771315893908891059223950922426560367347916112749632957423008692682809558849145770281331751846267350365225127681068588352566031328961307024798613059733066644802319617018614703911666248941415692710300656281585906661729091643875457488983028540178107341535864536405846506578910923009960829464692966899187951448130191552609516444117269847650137480388051152080212777967788737938523074867109386040072058448738730801818273915630255165701957780186250431196696270559756149784408438039920704232493966513180534849596772417229824746276281257208799097509543197101330307423340045264706235470113965073630784296905777442896948996717787556605587382370490592004215845261790961919101727924446008540825178518403433316468213490277832339580385913433582662668417955440258152729317035949933177094169156914779251250117271827016627695547737028555621736023146052436581876450904111272175109057112882382986823953203813853037548387909004193781815176944885508357897869894104206200630967707185453245639623047625591807876654238887922590703636851953646872328400112095044405484295888986521074702288867045537275627393952422652352344210117289048851649206645965057215960113871080254978545487103972574672254454516120031380243951857561251811821505887941980876111643831930030090219185688315572617490745290548804019814472457090396841010528464078658296649521944043544051074158808249811001841804508049651409635894445143654457190286775373563925011440037679009819467003267716412064975925441405590195502179410650536309835071741849525278388629652777498638008424740579615147393179171263231800187519286549971627966241944433983068074985378628802140725764011807458255057306969208482761391284511148649420367264642618031110304260697123151199679647674234906349400285408201520104205130151846117159988184021026385708412932159979269809945304157163361111029812650047849708681821925441649962319032138342443217899796973879950265284133914597482303282276683574022823630315163608638976097897913310025816609170583334263572713560495132165691083508552543714126535467528951779397250859298064881757864207003474862943286372585982747503990582927678047027208995604685539050603190831005313472861584847933751229722564940098264835568335385638557588366935368873368797383445884348083471328672114919061302519357444820966860557041815008431866216827901749674065476079850813345690691633182402133320466835701861531838333788346927729013511275690478147440659039852163299149975404465388715516776857082962657352064441048676344990803695286000528050237935256453980612358833603909776872110626116307926308136557471320450608927821695273927964096916227646604564260515467790127893344345773981936385607689823981786596474751219107648572261799643667244268919829650428475796726707118418587693839888090146392355412004121829008229185969756057413251847681374261201540387850017734061581730769227449330063415218695870452183759190933941681168849805540925021082870567704952068728032210845364211763052056566678877335265254575395165839895006776867457313550571437168000062621629514569986165854559966074407538362377582241318521545754573042242565816459110283972861208667118744859639907438826424481529676975782830076653373910354029067831860798872476918501380514199702856137758000676911373598315185577617117417409658788268316200027162348082012595514192726983989763604644008085297613076742111460521761361237903705046953971580756772661453408376909212937240010529990865969446520035682031826273416273255405663277532329441923776472373751539015124302608197079425106654201709054022683686274929629290461832630567438055099949636307130125894502850956238192264146322201791706935403371259985964558355651511832826720510359090317694189382041816296670228271447850465715771774218827976600537414494560552786792341778498848656456819531856089139104533329199770310905709204104629759492481396608298495858442763606739816663201740423410552838100526268999168773905300134956718488680583172598370080707375094122972723875028852525670246790323010511766557304971171107961517798786234626811200623761315861671932903465892521187045099291741603133720555429143478736730113241556813805437645030072878352847469660557814124117651143583975894991499987764914042528681182305064497360722608300497874529805767898568661914088618403299158162686756317873376752770011332861703166767059651632782021409634012320118686004092109384218625885855439109977978957096934239752472213293350535223258794387786512193334370177601506479236413481932343663382766100108481770175388008392264941798644651319998717381788646929019997255271786657279584365366413326153329814022067939996423468890813568323565529492602949453579104109458008316889323320450980750385608438328998952811274973826028540861826211979550008432364239674294917503141623489153663851999298178961394693972988299143430385531866817058389677236350271546609522372349704197790328114080778284893810618363679171405122759590813895120112731727011646085513798727007761753188016887847140827740851374494387056250296162871916649555817114828677140263655453492267186799323194582070110422233947509723315702348146907933706089556270877220523295522790985655678866189350800605077399213717188144261302370851704870412356632811215423070584898994471645451491015030684146950366689557196531355529583547665414031144734598545482462311741767309614280488333081415399047400779800284992920704160167925606693740486115579419655542296245084287373170162168237931587936801336277322415217259378258896002524847135685740862212776302263458418463258558169682366915096326190199410520520058391692935246347844796968805673721260175351545553977075102324375395160265744112402036669559038892176558474555160900609892027488233714845794456956765659889994421104327304492311420467461883044230327381318207028946590532702838340412517409837823867645626196230611404949652455173905197933924023989718095002774659272227623367279906233002001779429685790171462808002387751223748629739342119273043893119247506823875268977785234719075380865586635699618416708866972063293787868099541186267013060354309360050551625041460788890990986076222446980373199650829478698048440908224315168431013011514515179574006603261002693489738102334882439368879978745284130894880575367170995504426493770010340008501754677886891469374582659837092180113889491046090238520749384265221216949770641814480156557019503430704444145415756818603506275877622838295893279386350680216360136804567198888981480096541918487629832523471964729762592270684823439483667752174108517000328365412161929979669614567313461064883166101763773551766618374924269659978672883952729483795620024058538485177027864097326512465872497949211038516092143433611614450400544698938526267896498657424890995137111044969205763272109434575553403498792871710260067859083659751373969331031700625591610404684439938467661399068548707922905387783368067814375516226650996890126263363066684244224311155248116072442758771190817683980282116637673454336007330104624686628229993054447556144026946868187053117741665997643711090980529871408934993354342311742993876609306527159941591680285417828359528242311858415453122388294043156652443568856963803664934501251183604804171977988065426479032677551282551009686564955503418071523620768500287250294362488291601604063869735419938807011517233084380661785710238598755275054788105603888031599028410553592593542595113362662183674489214081637072251830542621710616644981768078537497127801259681006462902553652174671952697265217985262553926590545745636497218470947261140666073582433177633570734733594221208610345985873731827919773971959057618465279573555645596241405526038405812139943133347290094592962225729860673934716397479173058405114104473655429869945207101797320754205040646868067604523266772873689307907414809015004245572612774201201550731460444263748785975930397383656554929570285694940050579057610642710316924191044361486001695090256289065002172528731717232091745027162588548933494293622401467776306308157423021023468894258844344990347505265133680647442249929417055905821632405770013625241876162535948872716472020672512540295805038430456427905772320227688191020635224704813248359897997233461755202203253469777225977389546864249300860471955135774652808492795265964986991168246892997576702405772018786226238685150020529610741385123222425144917346267313629453113591272900058942186468628006304590388613579628505194867327654011565561886421494890244704557643521490649737760682002435462547905730687140100073341054749523396496724261107102322343678487964111340697624879529536782281729458610898766625924051129949331165203519839737765954087233605600968330730266305050661718659041013661574955765319373864555806890785866227475320234221575630160910768458483710643370734878854486193277190561214104062007750357360327589130207292979471563265508191974609276899981026032339308454736614861905949344718861574718318777961969178223025407579949864148414289913980915183989807508341977373686130479562383078353411314829807731131992756219756416847055279548532397057749582726013065002015678292790507294315988329295758118880923529046458085670887389382867652149799575180503892479749327127694439304507292537855775191107320042207821478737407494144111672472584545243597475034261063774140193390292550013105852261742299766577809606893342557816608188690796053209482552823064772046744062042709872156997488041328169467166924801520171552942949701793362533616410863769892819340512117226889465940018657054418283880834444860390483423927151814251157194762616136322283550162199694423485276336082276437990900905278905192615207854795162905445921922160002343532836416361661457374931411659701722339867746781333460177117637170559428528694964392806581240314300249344181634338937393088312774518349665089564343296285430969213374784796156916709196683468280422909169306213604474679270510544908456050595908139150126870374486247895660193050154015563297973596390317031336059844208312916253761887631170548571468508097994164156592633308292074700281383957639169667486574094702781960171464969702953197400637285425412452578673602365033758570864616140740620139516842941700268648206796555369935858125338644897260341972061961173785791963154371571953652914849491306674235129823001706930803654095993691094406753677919421067082843736681464078440890577991057854570099366247510363188598637908143431063679840068154390479520110077507471843705943650083415342668810409006778162394202770619572773993379058641706166657937796808557910275343492358018164203324288899992145409902607760033656280207631671980233281749192632376835368056087122130402436226087637596305739154064795959793328644047452334925488283393445618497338501829710468411352709283402779516192357646301651064544340921853236709591162929868049344536038087855959559198346785750245305013049034571277842909984292335761315128921675237332373725151692232196350637427169473007635154810148064020956866317885530077759834862537812856182908208335702846290185901006877493699196042420433241192208946071540473799454347742138827319438997449929217039120251095334026748004165275219050539462741087908390000900743726729107313982516976625968719890445386485860448705408224559725796169458275873977035363580681121427375614396316289221443355832074956577607990014951063378613071471652935552673816607329030332653105910947095442859540990815468552976814415132110720581207823913281699713005905065198767711644906248335714173614861922454061051835811767971412040877092493505786928823029828764659312822979817625472248675563125051534463422842677265781901753266076893635212176398895445647191115664332979305770034599522126376543669145604329453567529446905805195005356936525707514805346436298247787400751386553486237508009963391490309702660237442725890638618195568023403311795871128703532702800519486762690284693117351880085003214819864129343948647370068561431067042178941439306331390287879609998643009949394280646753458440035687991544813423441238240374410659727186526539700486992806187275292630794335692839464157435822279144144976280874408744265831270162029388081694709161736312544649442886742803455976670944237291228607085971020123017664049864027831918119304817075986277523079391920709548719964098729738621741089336054362780226441399188013787774497500610997104279607854741373102241092477754495154256273372154322802294813805641440690748429597767024765828968607397041014274458196178305869233050720304922480458492022119786314403318087385831017665427760569865087652649618413325547064277968010075348144961439606948490864868051534091897490407279745897445618785273769294319548534089493225726329797256813608714061451963561945372385993621882864524519401772459997977943490263962063850743267648123874184398019918452423458899748829559331548367371213879758034372934010666970461379591408717991902703399858500611415460726718599840403105000752454771833030166481007601856693676749615118995521908370644105975199652034197850205117363948226884110887256268873988682550020969578354004032725734101971126671597258243963000359770691339638525982880105461243946593995935267761703538169998369401222065615920560016455388406787008452438524047546601080323174686810965887277940064626244614720875943363020811885653424706891367444948593589355717898865727346105931843869224280513434406941495171555378250097865564606477656306587068095262669031319063855282659113299330361251187105108047294613024508840856840184999137935578920473384970520874969618369052717439930948314464178865157289092808384571645141655364121100185242734080689586357472507512366754290894765909277966217998316139128228042439466213698725948963060730418706874708969446204297932529248402560519847255303809323444114903072718790405001824893973939125198206817211960011096331687104912846645197211099414584881889747992794179539980256436723903386551035371850216782233185039274684046504402191830899212160769098592519834630105639016764637330225554704531130711217869185229004016247390218245696908728659142161359927834047243420028181662222070770213937281894097363862570775797118554998924117585909282293902238082418551250363678505145822376624966253555677851924158884580008504636809973788607006966028072787946194386623226337308841109322423505566595217683075341104555396427509936424602743732099498199657749931994226900182458530905228068963388460803411643196855358411910024594514411492731480960258676673063889823570305221463209227898787323483505163043370797795253767860632230519774089597637393452899930470108954916884284997723556598275811246594545813465049242421308937049934510777081156816353035001019065272020914762077451182025224936250258751417399603927756223985774860362819374414813101042462340468175537821652010364123005856010050347339818562140533099781462561311114452610480709754042018798284388219987203640852433581602894850063251704878353042634130671670765584577131596585058484228782646958728411193107692305933766036183287178416293188245952680929429355796622522788660595467571386611498273756200113458456292293860597554305673701756620422909723370671273217488462794811976205024638138039674733091223554476569188915850928328022075790151710525046347238808357537783313098456998965994316713073159573842104740173736273171654605656499008104277515747081298060506652464764295553937873807995491961036539500423545117586915155424586026825894862524245650916323274665243131221975282608863282957878385750238298671519702374855595523460960488897851909626239714843497555038308898286216284299456430851778301621121536051272685012592632651510651604682107927435136581263493018528150791519106221050125154592539745304768943414776996441585291089276446007593297180194975688072690105342556823361831631302945490874104084634300340963982855213210669462830021604608310983666378557040268387709196086076882478840334968377069549933474922951503996255860006384217278560938065065061103325655721956294514039379475196435437482610264138207326022562273578411582213931087480010294192271329192485570363374963098317605500867297810720517127768375788608364398135695800350511709095286577056564456183318353141853485625483759727694932987372987661668850599789235348239363053677585272110449916251540168200158248735014534666557058824078751749596788820641089263181038600263950717405589815491113452374487984084906557343703148491062413156151061998724808920822418143040281999700499775267795362938611108221777963788399750626585297665090381870327989177518119877657262878588489536674286002827136319314012577735215485934112570850699529601943568386289056570132732306608708806898103025238972044857398470007152315262676405642425341297979167962995911606302433876906672668890767287666346200743480919985298182266300318175425718291482673338884144718055209163381756515427053832359485976156179063391466807537919667481001631986132318532582635356839768108438666894510589559720519694901468222500709545111198183660588875768177785388096884602407817675443209668090243796852406867166256611802921164138407121336333262946132207796536087841513948489713495267946251260249438412726122722618381800978556239331128097470988292126069571809559845180772710890274583689270659291717874937697799764274390236215563409161798749826574563389318160474161701163123595257752649415139285728698680218099981233368555957434952220485874310951599073636496080805631668950848026166329917393749658663751261851399052757444492804442840898343664511524519437674940841087271404415244004391042275398855074765707035720905084585829435616417526127278493804475239684458196330351610507327362641663589128839281194382060797061112553992354101995253227119909761135613279414266647287845566964983869604817178249079478596993340764204656350099841676166007807785744051731291807241086004671149661193383848481763538927503960847484400739733200293731552014013830030711944864964909264230794940082094004143637626613040906301185117712256077184551025278033855394685286470064219983101474289471475625934837358522843168848668534178920607062554137576282333444525893960614317711355394244380645800080213119845889185510159068267067649645756708907945574464704746552309571840924728972491517216359304524471612983174384484811680272645709955917462781465727500699080603211316581631249444278901330438917713306526156274005684767095849249135101613493831897682190724117688507788088708486299762919298230229947589293058930801456010726082059730353670079773859652649825215404975458490019213994744443580228145973348368657039152088131017935140449264152320202602982751930025535608416366590232056522362510926606242269099906322812061106227374041886826220630237311336283361867659238977921689264692342162923354426826712041492856820777079301572836872499835942745286499235836279527274811152216971456868992934082199720552493555934313366298636337772576117154796716829531776466753274179079733420587405519924277722463011830358574175691480748880135001884681541655241785510485525781390485455244440154148702150652304930071807032477519633907497454023190865493156968891904811337897163257157137743989596497380957763171664771869766484307646764919235965548841883507035612523274399400951287182210296289479153550195321092382698638104426889924390390397617039290795616190425520010893986380279473947054551577853977637300388762057667900457903950583320652069036821304338013100082969296612374429025946409211764485921329908792499302079142271808498823133977826456707473307118230028538326757065071696005529721285525479315111138852950432000771785775020016352667637209657818038215841142125636406152092853185232167603703423347017015246546982498056801919774981847482197511224193613779888910322208962922379167746479077127477637123990811888757284605715054673595728058048883127751588356197905367503208934893956931692021464182124215727801658208414795915801024665252235130658399917918666182394319926329588788441404909254670417888503307438783825316508858140794467238397700424917091465850381041166744367635844802471277551844308194542842814593624662862662211611850339034157379478378962408687594153079847081380524114634742564966875670421611428672788906171282943343038503575286923208049382462073357732159168544520527360548201263141378300733806315281697010378435168662035378407835477421759370326662449186539463073587116879081966922879328097064873689164439110004192188733921168483921948352391858728612074204834125212568139731906319894543823735265528194585596212515286990892257301052777475557163557593079000454491032684855220544827768331815668165921133766385508110896471627788908717052311678887006026245957521849254254631126691051259012632326987782499071811931668031644333541493483051672117042365549999878883025435199504558560785512113726797941395463016994043317925981774274500256279421839689413290425821216658673079296811039982028573383314439648325674912594473164985790909950777024995578147129089458114543525868092003390787944483517709920010677855435002086385946080049624295531933404353696020457357120333546401974155257714251631235197517255409005882953214065521296761711293817101295875396673554559672116553346410320129923588679955900660566514070753161891266001852336763846697718360127254973761517524370266317135034291456533073199091954403328396299097640420691904210810625279658221997931309258932580126076378968924602726385332022511804278238213987068787196256569540561199952113637052168331002476666569288302934367741776421728187292256462763002514085912435878384627470585743405861645363171865078978856109875066827656448733325122216954863790863580008382182900738743065063392447903969466240635688317976983146583309086536318210051070251110209372990140012241581151013730262615763122120788620548247975594783467113388071549065857195045600651653131463376206509699538498831619832479431957874618198821332534382811668424842670165462188525282976732541809165215430284217253588549483039810233827089886715940946015528430708441300179799337061353156646191779640696070767937046222432208682705482274848176910469935423356021928701585191260345471260031104976018680236618450419652533615925379575553324841340688510068820269841310881923856778477914127760072559635379725176881347471952450852700982842646312953749993965082090116748442207588065976296732400359201003156266546056731127369510884527917933455880537951531283929304582368720844279574177906741023205091566419364246447750031138448276180787370340930602134043767816969976741668872900427441472596922567085643722702919615647932561407828112945217438991254415716423523271352275442166819068772848519808410045074477636404196236184881607042181851609501029641022481959469218929655154115982077153445707883323542453088780795267060286569773380909219168296911247101814929262510392151350852206152422311871980124849300702535515999960665383964107239516300114712858492802833245299284964440557000341562767610637820906655666845936209125527232760426453240609847343300538847878439074914621771222054388760701811192566894089133247058009264783034967366119429307065927298393099662573167123447545093980560136721354265821414895418630009147476324141275803417620571696960452717540840851482735144589703422905335732925024516012656296157181847200845738273856496224663207368724123143776122568061456291470052817612949516868916651504051918311955256802682238786808536318207252389953128186195862208507741685870309548938130121242575777546488038899930872001623110108571796444404993772960295601288917148539865648401434463926317250984520594046871284033663854011164349170493285174048699013946726919762477587053359651760675988958618437587388903449825421801525849623239242924140655185178474594333764143451982111752333314173537108234090833088855512154988646048996746259831692535472161069794299450975642476280149793035552555793563439466871716508507106143058802890918139395563445838494674392598796241845067940156625644195848993853880491593491129720678198726587525121962553193957196838391154779267388054190672064812814521893469181778169763645550161205598969683477128277279646633664008916247084138638964798229081533313844599265907235894284379208704418924646105245215238549802028368312735510981039662432670791594207477004911866160272122672115718443336625223718580741030817078712634450439332875590157113426524631590896838695029860217469519315469378431894751792037512808241087854147672692204697890632312432872506049051838093231764381716089258802185181297795454065191557426229474950467273647044220088448876798848543186122977724173711210226993289125399374986010440737565454182631917054468716807608846999539111492704297961670330251426463136145734673565458449575571379896627942513008545345416069608691158574815208815450628925835794753275219987187456539271713545645012554139279309665167073349089332219216123642763930289715544901776025497544454298124097787544326893212681284632713801983377394530361655511568893633331243286909310397318533293805750459819591289766381590611925817147487720493652757993610546503058725723908350877160282096222855029541792680048459629927142572579182075216806592703504322371248895685227232681319703761812331750850199491685046500372515350972180171177572601433324916955153275767135849766188221547829746698171431822818798307882502158130035923460948259722599706762408869372659060194725130134502784568221229587026954017637105377344293240980684211658665625898392489785280679755690033045848471747010582981360100912360980044151116196693653524716213757107112620723869013509938156234675977730056159520572491118725783953516738190761500277986368349556098446815801542004892280639640861841348904925274761154542970642932338936828728020906969604977018838579307969634603348217209401915090053139836030001359088171156976806336936555367316824638689157850412534424313694520694916790656529801325539540195531510560151630942407403124990461219514224411944105162104054598835813432542778890854018201498494706822867228716688255388097558928229259088372286035178154302169818645441160065030905372336986761188585604778979939872868546650808793950720724535590581915054107069254791216344139722184155865749462614470982391478847966277731612670701446271411027507280124794436157016875915445701428787789572574107132403340153043831584407546235625021355217857166137011015749272570490588820531396706285793112762230901607580490398467353177491967949053311838897683410970827677531478476716376939197947210349305674646219028768651722208861069691274647742350691654984394047911125775094329097417735204884306492255556018205873867383603034263898070877306967773216379768375989091315125001281472814948679618533324935025066626784917278042429297690420758099642667825906725538131715671150265349225188767060143968769771960840857841171283653972338272463448246585520686542890416483690901873451566071872083654618392707676520540951105393299168343856771093898154756545149579967813019448845456091069173450627483954379637223160634287783545833654601995312391060692877258122182707282181034889337056457957404501284483672773947851484082157646548459689667477977281284245344953218228269146076043342141955554124961501623903295056815827923809352559630733595361583144945416024819458131108488648180559596897213970111131316577235352937465126125930507162328538747816102728992522275116291011591145472367572078277884087241588118334893764223994415384917623697883904682729151183563295289397896762564224434602604885891302647209127083583355199886804567181476299517839681645301636943615409006274770572517925814174324449762744300206232685940364126941893860685148380105639757053492248599489918177769776765006176823703164286264918314553828222385908143052351677437842514125442913347519451665458203773363216387877050843127229973203174808471118076315185113188747924510159175564559729145916007155019406804796574542071082194591938805477624475575483204765458417464260402436322137277751341868163004938629811387095348860811400717631099026992466196529888151025611877544094021263279556717971304942727062679741006996649307031950772437126437923172252817441516415221458679172228091754889103414574868587045419703058456897570090701635400201322796642682968274528548303481138279840657647557398275584955603294489250030869823981353393367535370525228653648792205756494526846588934885151320923332436060932911670277737036666477127470240133268102147964102670711944010295857211913322479458927682253298450475108048761276587953796640180330129278128042217984555889976953967240384946139946636587396285234285542382741974746985510504938695545654423946834998784931929906690201936765385512604744505252580401002487019113572891345606065222393751908394615429712198864306099728218408981736462484979710980351138228286120183508032114480677140041437382700510976199650548982677373023999156190743408951473760511707956319731657464724428989404957001537312034318989572351710960701561144238125692891664473397844033887051445031757712697079343599989036905188580262522470386939730010821949173885154777375124371097618858855963467849746728675492759153510745321160312325017687320407864303438385723494813221371716293160684183211012551684160204928447569363086543875336534553615782542057502267717295412590057323953993182161310694614811902902100212094292097875471215633219422364343765289766689465290832399918985953003849246096168324233642859465188881428185647985464045877255959294467597126149542839848688191165365222049588513291015262970175574375760265654889453969376705794964872713072825886366835976090294640294005634459666908838186175411026028081135872418807317208125938126384790583961716683995508751120068330668998531785227001938686739458804598655342065315063378424790457173394264265637624746270711916668906542877198685194749992205918722113707479974530070251798709131651209407469908503881178960811729878098010915351326970086023640462587571890680570676717223977711580094642158442427955483022469643373480879853947119025207604467099323756249053500145104432724454901292179617062034393277975942657202899226218855009224417964565260181849923526287417168397493238758603530787212849361918546739532406355725281459116505553457157394250207762680949078313072203351947730782616091074584329706955961676428074100506230747529307782691689389659541391529252182146683944537043584780343260787331738686329562987343259610801440606266579376991201097176159202883685926293580520358844156595187555710269198486270958247052803984238647457678360784757799005956885953294860399723206979030438964088801396440527843566999732320425424983941192989885050860830307380085412379393023000451691784065938522525343308411351440012472490712203074099811465601376297488914637846674152875060781577054314620051287347706102620730957617139966787267660278421578127987493029719621563106353616524248219287214659591829649978709862232944190902079002234467107636863327863269285568906068153117786832081063697756875789616507540026318066086736302663093514622216743615130561465024563521250610746043557004923361789503433979250017258795203165270694983662912216595271204714324890532022158694635806829531728921503373808798722418910502868607978452721820942754127594363080920905436854095180150621657822943549984083561547299766865484546019177347123960654033946565736700548801135105594657291586010023699085314187366653237572773555880811746944286723714652722530854102795244372051759112464097174359096152312184710578729990968171251058148657148293760064152687486121190485615689422118686040394419333831544132667211784986942572003365983285447010483235409540017158479301368666063322743629154933102976848178906871531639157414097387288987301787236304868619417471506211358687716297093389163472597055868015030705992587551300709386114769554748024224259842628641068646661369174657256878367494356805982248601676905677405611373475416616015133161184956506082336337270799846562276554156467501188143398651681096899457017320806477818120686690885141569117087876044919487713279174935164456396263608591588010070532995672738362906521439010506941507831290231982349102666364123768178443282992889928197131746932358213090560271780021869050612031905245141082100809181116518295596715907059813031533799808058190496675324959025432777079261628900927228976828562600260400451309720732332104928686088555398067780433478732861019741741677169623181550176344190450908710610776479261200440556918637453576840761979585642164858319325730813946624180061673300083429574568321344822457907464314350238370100972724150851815904955901328190692495564069629759641284057795529613901023830782023358721594107082847728186278440698318707000438330283624552980247162508793996030832086737734144260590607719291834071869257563725211899910086816498536982269542646805988892101185161818844930971402331094948296057864192769800622707789464723300263363846051924765686985892774370376719377438843560916420653968961441075460382235522284403007431605475772754710813694425560807608101285769434758985411771320204064900151110318432353578435339995751104212624008077346184430922111985668660324020607199538002016108759086959078228981891416049035754263410657687925878214183914589248850542321963217762819084626960749830843959207530177077566706807628095889848521155632433216675616857377122991148416880833895063146501727540754084779013205624714404577277147326524384030380396139347568944914302494595555057416757535582975505533617195451418072612530763743072581336251721807152326899544666271882557483054699084277968267807385318055753734216049664060058508158481612337574567353126813145230042961350422689203822125351090439332403533466687538218773992737786923560252289800655681617379431129866375893954077490361616145264343716085021712052602941697230518670520377512901882120844232706673537886895793048200631897842059926392604011395577760476991472072527045004311970989168549917259559034781394361732816207308935610603752217699435433156960744616941658269261140837263311311412298684350494440150423297020898610415747632763483680412546572184690433454261477025374060756962917424505880758662908195487267508614791872316101276221390547728187804251661765432512600229125036081134978683502156702102932162724909023740011616613230123417823551515205798597333484374910322139946938150677830448586893946394953850326563229736940447984447657958114744926496093309015521105916346347377982429556383036006578641532057646377713054537024198539092219309785566826531832021140548167318686294417289600675201815671106649466967951455114844152534186603401248380275570634810569960040994764623087391764250665071635340647205987581739629760715828515232287912297987158512073894149508492758224670352997606040688647115335316608995017461523966767126435557559652399504895564329136322725980465121246553936600883157697125875272502785475412862189006035021817188928086322061439917062615892571816307277196410278480035050616139143453352224546209829014279072321657682207479045965946706278140704904233822168532807834258377549924546561542973098788247246739189064879866565574126448455341287048400533851576223582780824458118490431420844554614660170911745539170316092626826469185724526385179944625140940661922490974508746696266736462821914918040512825304361787957029311867836592669754053291216153534748015452305193804454802391054538670784265961043462236313099720205624464405845175237670614687811547064000663954493435850742153302628224627358574220868482860666627930961737495766498858420748298108278900306488378275894443993170515424254481592536924016156079914707642588420692949535369684432374872705299480855905888342150225693702111392457821623330831548162613975260203569746719992909778078098975035869758204932169870426297272941726390522292442625240025458290522754859422081465113148856071727108543279078178405486100753466249013886254659274898094251377207272148137273113983149719042802145218947159334736797441173675236286110518852186088721279011508060664871788975491693927203464510113072456386760004979894013418837886062000960359122700804541603873615257896286257623587931274169049205314716853519729449798287621398624952414519726765853460521895219737610108969803779506858086160070113045489312979632906347121865584941569640187874552175071791613042376647334066422140530978255097001673627600788018823103424684531964266639848585235112458844078763200677736415470506895484367538160503724272720424243107989639982487199437418209830971989811591175283280541722076316731359925411594943151323320176706356032844112639008985074842888168317560912786111595800190199328021211279226191823699039935877140225398510285677926049772528354119469996848590405676213027918130287665963451770525756133993195265013157906222332791990543122975548601303919289588876026646174109452719219940737165073142591748058144651132524471484986894179635646165920442998616877075730794225715687781495274182977075124885930820181639226015746763680710169447759534793957805875770752728532100634644940659665379191432796725839870876209810409394963544223879275201382634974495408306557454963161864451766362915379181824232280158399950966526641083029755184020856487865880067447013726431465128112511271960665465081437809560444681600117845255555970587865952365017841443186047364863190205880556075881179751384768217012215247197149430010983302290662047957231539164697998828878880458268723926463704320562758074561932944501464346519570537259792530873619378550088654441727704840517274274852605259604183943907077118749338941469857109798430288496267354573647489042114957785764581028212261972520476837018247393319893806678986312146751328843559124107549795647475454703107961936388358747291820788607895626424807044637730969491489664213531605085386445686511894705459002730904615428342268499353595203096120400079542835699187281117056031074764669978832649679242304900666154902093680254062047551659856320378352158171908172745114642836690149788640755735657677705180777615544533671742768443656980982480343893384688161947535343366134671528084742961739548916550740847478699871422869572199473302729672325588572380741708642772178990960214325556333430281232474200816276016232406661604986936910989404245611444759385618388757592574670492100613341864587493080826222002335581803720053464797083496009988739050537946094609818218332518402181845457759524821706314472611902491521797060978324790792674323945605916964771699162505274074390724988369289684847301458361163484879813986527083939555019586468910251785460955182176071201302725757444856331600552899412828012357864388873359019736876968071580025112700442378473114184416187867102328528120583165316455075064540187977617267823197832333949053540730755912672158858934313481155238463138554920247149910565540127009265667815371456354468072101458028098842492293394320032284952519450202644271408696630950626790293576019538858261624976430257174274948065250457105974564415070434545139228474884320577220448258354087254995905149598507837006845425458674142858640712084423076419745650160333576664991805964540593474485567980599627339411691397038706236719057049173596065558231864742124281726701228552589605664137327872471967987071993118449049816094936012719003933359517129293664480972680767310912298970775986073306668609864905107148592153816639383998204843838727757599732560900784589044153847521831296603959954406105264700223947937425470318696273367683317674409607792697040866268121227637459417511143945157980044444226455211448758525034420556999788148232479845756832590196379681095319907095387374047101353132699327716266733549291054063708253509002471439526452933608354814252748632098421168453347706921902101657396230579382729495896419262747886564868985156032782963720897441303678476385191888040006428652021002258265637317858466470263569894567466025574836734673568666399956382083438605077730153478814533420409910845470568328210548876462957521470676744287250231789042371337994347090848594373723403624307445991252558756910870298524203136563224643786180719053820561596704630037738780174582417515997464208613791738358433462538560953066812672803713586090530163747661106432189094140347116858272000375844379192342344165802094345173576555285210275639686484185978086558424798909567514323619872780319931639453510987149721632814231955522351552441170192746869079855610697623345638253819750222274349116054636745938729900684695719134341164250026568403411936534969612337297432899561205494403370817734089252412614834570543102680542017073232648979363473160638926248040525166628160676164960770052671301718136661925555514232762292406486356503313371454329023294524922771845891158812904896213152244622157156842788725225826205831789245026125151889187335184093894103950070688531551696423861113405951390287660048778450949981893464217221491367909613188328343744619195100520244940391657833185420241974541376312239345638320827443858090056185552644698506948450595577552988141037747531112879947757668847450136932583975794584719466599781945055394449900317934459816499143596179159737344029909130154018833537914325698984663249778066383408800171974644151948685377075784544901283249328080283251270424695677618579214536485074915105313447831525841693136871282517857419374328688048010563565333158788387411711304699881283778260144102898213006848878939062099724482254437982807608255596696357778460358762958910001644594075051467203301370939322631384713539249781540014806739845981675209471931820636810888966171082441949614169904409176788871694859083876005446160374169157120518703033272260177460608128904131718196991219565898698354901392028098728964169786626773466015382734085904631683983507181120093520904177342376539143983147687828197998703462767568380860476116543010427034996233892056822309788813757001177857827455830806204731665461938384272781775378927422512133549460633972212319816160767775168611365024276906053978592736842247973343943291524373401210593879461029373844695446514576634085485074845612601530260927269416006242518545603819364388959482017805246006935034145464194530701503182432554346738924967371249349888878601939180026092384842899294560836013150817795726375559320392694956049251503746344668727922385129301614455265921418113751853866896336088965304749434281476240962308691695796689925574761525691856065120450855640648962567682021579235849488449046880897384688431186687781349707428091624729615150406916024352146793013852696248967713505980679527152852102807072909307045294155453648963068310316243257311656397446537218690990720083324373017160759874541104957112998911311345639902059450311434307098044889215478198680656867288152797336925267091065020706936338681261958993578701982065034548466769282857604340410442555721515036803121748090430335482564033489862023138076438281174327219288610541299620193373597103737459380555270337838268736956825255796783613574923446554299523342536047328143931840344489452350153659743500347537210738122219373332483524211384910541683322615654014469166055330486377373828388318086291830964770019808106996846503169902433263589781743855313108474909411596310468627213766554355264537863847212139901477530202151483046897366319121882248266176716132465775128072417208696557295821294609691836244916177463459533555839346533066595175337787039145313999464755665265802263726998812212072098922383797828281466273585646156298904059757700540806035499438142915797558973265045981759222797617115826928792947111941116053399659480904898530746573834401939932442118733722100347088681760961972658144366479416148606391442754246098765400111732097071605735386495545777617112394560590870280965158184805626585668366433218562792296631462493734442721217363343090786715282120927504612083618780984657490792202679582629763812215492076557916131057596835133529605514217612260593834346477425743754775919136382160151583190433090207570117330799165130478950911082506758135014153181244412163742766916987364926749713234087010204700120076922737718143535597052074106439946494217128078286159506166091789950681424858437554240947206578365929133739721101166058748690729153237166537836829694557241761830521395792958155782154981418214779271624286758672986537241077971751643184146571921390454793111825379225907387227379543380625193456067979284731447447371374491444639513028097889937359609799156872273458892580249175552013730542061986658792795010330298430990609060131819788216264643421534324618759021020033391300378420975760183221213343447382168042793265936648125060933492639729450514257107140645978529855266770676238698373485145998135472520959864083167451466587814354040123340227605308182710180379398037283447137456212863878389487857425380404164057194827507196799238490940849460126230714039076830015584494830947543165851055245979972852436012575275977257987095306105979563396592535598777032874244205690833137502621151617202190827154066594637438617928010040289764610035017239491898008638361093751797971559118812639177208586805343892943927430444880914952767330157163208477917430701820276336166324221953029625107178653919112542428319565032986004424238801876712989664259993035503505008985243318036164376829410808771584905065902520407540745152587961568779137567457901612226700611003314935187094221362630160445242065401340698373753592736643644289342217788163735314760999320792144172839944517386429354471536598258159371934162423648437719673087836417968494378860233740901444515029181257778788611762897441177115103991416943934802280390694898590823442006400098874386812369898269182832981975116567765105546293191452471384236408234516475601503346665471217623465417710445287874112144485442515212840936943134291184978151599026627074410856757336081095286759774890935070446827230727978674185315280584652543414105579379582510644655441664966886615922496283428708604025822509807540435895086576382605230650242014218375203282356167140393558434196731115389138019423781781534560916346043039747606304551014003624637050065077607391789076788713756362159945400087383178032589873567102441537450142317123667878263937485027268647093101778738881176581271072665444864203550958071037733579550901286236546168251449849363071984132847020645454512613610419818041364171487762126119107107393780089013505574155516497817097578167286355322475949718648015765438424239088414741633982694607456871334249496360853104473486219548134680854203739843334047018322860275484443843542176798297570133931442787680708931303887616996781809329398299175501541620327770698269211082691645693043363900160752048043038514859352874277176200625328892247111414291002681178960674227125437175014355385214089032066283727466401223369137564583860926413250437812505604101804130311152174960515820799818243987334336283847562815441547409171194690332142074004467627131404368954090823844105605485591066933998742865719297810156981937318163547781018200847304864557536348867670230507422606735782279617511262516877027160977302852973354907840279544975755519742042981661153404484390283337548694151943292280267586140255869156417302231779462984756434521267173410155249188897381487246153782290530026121978595360683474498245675984115130138829887671281446218789330135634850497196664959393653424935033697691530884160752589283805519352207471241045660454102031877501055986842211304384252795309834147000482296567712976241312290091635812657368738342292801259226334301343183800745231811633965655680186925465660132467677155758920811687163331567183683704245717931738311879285000669713953753757143029127871330839096494852263280278825938582905043547426209621925603841860950475752284443028985760663640683719788360877362224021550490029074410373743472254964793643755189432429679570347011078586151299655476682312359746326107453442526689967175408757237281744310443077646690952171035750946244113751645558511488572043184490273725118766352085658366598913980493269892453975777998974888747967356725698955043088131239106009984501062181991224023811904382309760697252270837734291548421638047522315765482401190608106379955517833054132017392141701270953729895902963657805810109174463057435323897083943482600126545890756641682626274576467545835998699290718496290141223193327304489748332133136919000468005046877063710587128579714238111901691545807333088948008033273144224337492342474026838108356385442400283842057561264734813044069569428434450175286928050298373724087518822431700227236771662850024943707466364830127104564921791844209750104065651956769074268173393785714378085744695798920023149730698533829809737735796426097974911673788976395819926790166601881603968010638501644807479777717078278084271145684643598043418369694593442429102531825283184640559813026460400506935407057086156914050717358180028654785986974646365965599802318960806846051000721022891406877212957356297679903955814229967103172287789027736782601886961106224788670426595190622993461566357069671839629123767007322737327157982154100671689627599545885087255964503046937364759867561189034958000289235915355937219180854770617884879131191888026699912607990772432560676714838170232577344623686351895061120079837532850759017387725418549058468237651887108112380101718558734645628681419367581935076422715713299500654604443905010240947751261945619953695180121028348081622155295193289591963605850607857154969083644281860733826018180992326517609269454855786253731974030709249333335505784265492675024392580226238250636775231086357782354075256168925306565032685089389547885864954974919821738927716985824472308283290221161231238579464758758656348594438329983949272569872039190676104784073340455144400850641309009763894839999479925768988093911434775555463999525890081521157304292381833121040445713427145173872707425480738534152259720986506202484503166794381615696965339264401214229973283627099973055404004755686715941061883871872884555648595693689228232492774742053492169220605026097508975808163281549042107215654294467551450178741162983722896452346888799517872650615261330035732511905352550590645474270580935060871371705303928912511655049697716216861449803738211730973875812241522965798456242826862813735951557414513994919477161705428279669430712859804388873180124953816271899121887232715817297916915727874508255080254088592898269225182891342000115954842561168761472297119092258017275075315859323661038847834653597990832982929840673039681099169181156166188643863493968897836103349441195450173454282207834495242534938179118407315186608401619639404210784718790411581376654777476736144967488127026409003194777398009398905038767331960462338265894208218449859200766508204801099649935011316104386903807644222917084329069238294218711981083856078859022177588326186827423931810887139271081059996903279977554815544485250026501032989363746637014557860436996959471728538916234785889218050736937846484178350506720722241221100399722683749095366097897700896898376564829896195059071387087268473101647572544776359257576336739448416317816034619600347011882860214793576910581662577200292279293924450304527400383369543170062884315441254015914193397327332233913241988699226029576322779945982913268091300722804784643189059124186819735414351789798123007441405466239859144911749924107444981764442557190620930203078000386472308986763488585065609254243405448708309569792402911401075146907988073955850144768405405642993768200392044420187637804682820868125357379402004017688749378644854216781634603986839313981490195289781879845096039331973368066025837081007573306910192116311664609268834228265246577671082904652932973763965522223317705255351062066168824506920315661211929710199014309435950650997516448829091558039178955652678768057243964881053468993354260208072605346654199852916396396335537472885719650301245804296065663254752080170938465999590460916011142021264876530218848302982668719946541898887704314968332171333058434911399576770050095833390343185269375853402359010057602919120359930133664055426988766034338859499238608296979075741498392343387550849833496870555823464719082469929324310840707364368218531087880216544581159212893826024886790401189033213892244592395599646021328387736078143347713007822275116686784128685918006591494969744771036029816662551069556820588137318223446857249286749165133216823766283919051723997678891218695860164484202807324714133258868970283372856857935431096259828658325934161572089480744960028635658164320621026752550066556363003634105331320250888997202181526834034269966953191149556639182935039524829395283156428410128873131666316834945787157451008279289490793525277199033018524571053703050011938413715024273761837309014481657314173403947786814517244805158225031082131989883040327265814469650378181762246246587117343856623957271404251694657001526812713411041349635796392340745260015398199243849189476053211145789423452884259245097944534920138605244684665089901358870329034093664259724267957341199536049979093861000454432952015362025200082094936684823651733945481537634443279491224303796270299729484011070364250990434675898935932956239341130172302173180292725482727098782462797813520102403730534802154777268811351733859821805411231384067201598932839940164172704605871108192384751353467080922724653939748768412559455971604566542467915003069413232728351630717050394504340825178577107363079024408948644663873990317783002546031524269240531035337703829381725811156865991632389955262469537708221465502789392667389856302151959161262980714078700997933745407187646206122798791955118640212876442157955325534023923068131688311515120628497296276512134520722492584772997212680724519076198368111851551447520597210998292207028642850271284771237922384748209507796038617045228095192286701242369373576361676196984152841732583389594658168533284366177840551663077135336624004597523430034875525861601073311880339661454404503160216336742946645253200753864878208823824434866113016469970717903445196189801972427146593532611602905492107705022669962992673291693496445221596885334605023867827111243002496444608955384478354130873507465629828850917872675625381323798545759994989460989069924140923779925842694495653138688792350991230712188249022412991548570075588677296766722126618708949670092406904531343637758204540532272682323780597737848722868009492750317446586617112285824434007083047660576732909881512300336288839710208515698764879958155971828855269753786471271726580431346087746637218221702460661493650978100935365640118584985431066129900339805094725291644636032565180384502859761842131062681727685129710829902054632609230902825786792948885413970966439987186045668693908236488962704368576888429082927883749178370564774793836683765461819210840242503241964252332861069083045980865246358558254121388042548615812995265985403843753269475650428219307723449933843736856917938134414755070205104673829125498640953465880361006121965790440938956026481432001484233364093248822864611319091361264358970982299383478468464534832883144595089464724030801916209685700269260115764347533122250151624876980674398284668395508905204905480979964331999689565248043355425331144104943691201793169868848035438548525786474622660493699976366501396565531624720725459917488205992321424546249107782619324840728620627606353980478124520188234535109558221462964282253485835843730579790457941168614867670163031126775204387631382975654734137464654907215175049848755864162814229005444778586059585602082218076666610201638739389550982157854073815935082452486771178143030985654180792630141122229533846096959043779806565961511491462492769065826386374095752853114517810204978517559268663957506784160464134220661863920928114262167401155434679545907343394797217430474975669219760131645603888733812207022511635747091140599829189075161636001686214104054671913516256113903069419933424182676933521718109503144322235344951888434523756439112288736155705808050646041502304202880351089388603568785224231391711012720919696643983657166354271902997149905121958723591158689793393921891328616966805719378721700988623169878777947973289314700613266350029882758890284356073072787665330153472295183911430181282521000847443481207800128355528953971020257735438734163790759434523535741202008586403635771135096527532334256506518577488943294658858735493980819040407167208141414335346246169486840317004023929012127981496220676413678058207515954854932161131549253850219637579198826264475893824456502661533889438221149374153689623450408568383020147927272731954594847358779233100066480387661481152773148534482248947962868084977959230842785837528811926886410482984006610900505105971808881923952570753902326195589926533132734580866390262410578325672240856667980684124080586822177950694744064949519755770643085478596137461225837116250444941253918142567616591852921037572194025634632449735129245668400017008239713492097522636210594537121698859234876244488084179090321767757770446200973959529992370959596007866871677274386905174837967370029669477963190830279860734697205397385819473990709941176869428104508425799185791321323307754423718939970448341603664672636762541511186672259407826899269847422991036834169182820681759219199374485724856049548757696144965184011234129129857466374043345040536255637677905351499679904981098836930943056048788286449110396235309074533670436175532232086865782378099054387235046076975374845560846495626802027250929620111784318219881149604565827741557277512366654103741087881035604583079013661263153739634035535581557165192762917919780229991729923730356518186175960187848340928617939054743589126988476587848936911383215872027538937054517594026303907372314494101416811061804828340041273477432690947984284256518848261391247262094124325469866926849540353847369251866634255984735546389453148175941091786860075064489567757393587375829423733088853109922157215835707409584270299253656347478179360262629296479436429760396277708023354042287128438350801820242287394289348333811114310217026335993649230744470262618716031229706946643102789567324254549221345995856515356257644481653662273260085439736817840537227248453057074062067951329035027441041173349051564302012014334773361686295068664459585927469702283910231924098343839054782917055388358871354669611679936427693185248135516852205848448360282803598872438728291369070050016027112530649719753354485915866816016962968536563965470263677524996996034603013649511690046330172195243912945945941282621185556337766307203601505231411792281633885558980616425374365077780484466068737771765253348536458982858516667838883937591799590403349230278912476781955614506524553272574603189812238277788707801935642136182448022576715778024294327786736956586996198488664730434108243295273219227281111952575159175276814436645693032954052520881560083674040466407478736439978093499214177071700150862647306092920475888320928644060845017574820907590095240147051907154202923993127020423936870436924810372527554572883292299687222279734797573733126961852912848720667951253878484496695622774791639448370706668592051518190760064346372102779100793953534158279386539406988320880843727790845951777546526540923921767002741192205821349588637172227014878247097029580675823528797446742366008321894362213007959148988577578470843280235688327047505728238281173450767818768855768654358216108909143146345140105232444529937817139017276773338405665022709612784055219695265875870375152007220124029202910357275063371438951335205380637939084805858257400918490255573562738801771045079797657457382685580591339793036242134585267239640519106885916451556402922727915669772894726793165420498587842917683598168994735760319299102812882682342524703367696951996631636757778053916627850215809205540584902881242397565841829738334202173605612883117810429891760425881963996844623369426171872350022739841678886814788344753067869188838076606596133003828027900335725083695837817836397713875628460763141169109774865626380366113740591857650593143959084254925696812698657583183419348557203132787264374054398532377684652523829858827523299045458547762824972867678721739422169546045058757477218401845858633815565102643344043769136356070219322911451607505022595679568818540870645973597498313544279408957937695413231888754610241011534185104378917488417959900171862280146318210341946333791715489168723877863544426264069713553952500323737512957211083821581731846997807089225505313221863849665907468236685304878867696262688091699672595376195198725060638525733300162055591129013227148627105336216061935470247414372119191812852319215980478061639933441204673925677948482074518905708695794904173285573433120236323042340810599040052225346525386873292244275247197096111269950493871416946368353696385514712103691060617942874129628968287356336561075282763228992832956475596012794283147382974289441644213389583467456883637255491582741890244783890756747307469520041801759345263153821371307478769386393898217977990158672688402780948703039668420475675346189291804857901609965634269044846866496658113909160135245062002737907858650529885742572032946424240149175798309098121858288276372795755387346788952806133719362378820066775706421312811645824104095712675654111227629768491859121680359615473581671263150640758437827867103014936206932442936725212529775247356125123350402106569963912685790518768469378224450295206183972511702893769711018567525315793002579560601680884198674778979127412466784507935999980947308669421733396189339594281970139314099842549558046417455879368008686754252299090794500628462117007479442974111395724406799450065522541986030019153142728553905557021037577096719880309059401543902911450526797419865600785532536744091214561723204020057476017988411399066287953936015419336529290098040989113694896115466730648865922318949016583069938916078130905980989755824351731279644117870713028383636583988876644781957531596900264531641493090139206337429892490187079571567485498347129685632837351313015192253731093513661671552714394903014080267352400981192691631199028709903617192323803354306885114344145789195614535396062033742434903634244890902288368951772983290071438455427959299006331505143902994954239413095658852991100819915322543417191634689740115975201601644721479868249409803975358879508319714858831347358409037061272421155885547221694819306802944739668778493712280084842244207316768749469241324929202869473749931916122628927968892605482050788422381073330351923028009311111610455825282786811843759528286023993870370961266204585688762008545294261124870253492492605422798819328550065870359163498506087861977639233530827353622185142141366741392851803341592532596199115603673495292393225955017030505086792564155481778922420731157578726670535979949848772850421188443317311181368103962698640895023670575583792575900083559973269993438249182086665616870304648814520448772372016044471309856989673013882958409257027210621320137814626648345470941944955164648473043429654012648855487359392843254965089187683888801864290099581602794096399415514102496318486021977362677960660234750472207770265972405600704771540411917877087777088301690404164040998854207656629545215748012907066528269961483403253574951457885499427829651843789579675788492050161392697893312879248607706567461236707425990170877853662664374217337005170477491044226291102487436963531499182600939740714991009907687271998912741033253763298451865065237319546138420072740281090968678555798981776660179210387805908899980255265943439442852017683812999380763862344776068726223964334936034148707727980270181846246420015446717032587616362771017679105236732652738382432028042442148756571111518208595920376693934021651850122317281443144188939934915401281396326365065009088721983309844876655962348462698187187900659850591242213080756448384766416936213565139838209716812806336763678261165887949724386029423297614512190436309965851726629627573751357273964658229317504532998841171850525546622078743395478201864355607475984989380385284716462953317786097542847359412759815439957476961636987114173284609581554883225620379671941396032127628049822358829328089444951000465550408073157615480544003884603068681932449751460176872469223154257369447927084263685016614912593240999253407601915914940927586264120309757185001973920519657398185981077498478232878100671880389222535781206154019396954053801777602474330674377858055982168893144065619286111153165760549755685246763016925768369902645676468946815479144349987663455263900952509448344530444102228351406649491779863425131865522524067952492033762272769334232484448860148254761154676188376466912126686636466986380161715140584160719399268389121235315418137950039073580507334916883445009389542775240232129024243344764526186498107899908423965067247438026820491828237443661406238986535264302319536366598141683611593535661329052772049632162163139149823215286257446935908953453125669992835660432360010262468301324148452476539326957996943657597141428292920026243070602002029481359831510809283341400262054909071837455780166025155531917388636082044623405848333358851812831734739391695963768056643839286856285091477484800870492184313059311502382990578216581889506975453551744264492793480436686082006909994010926128869340428820033115914834600671022591357493544763414352777348688907172359640828708701265274792574636788436705403892092346453009806195101785112106186084343973320519645310945809518081624781916586891392176418947724119941221363215884421987058507110699676566403930510224489776851463532552379365132661972574524266154129794285441798721661231930002152820304657963088916057263742782051489279471586420018513419670185368411243422334329747073401388958146919203912630813672296756095774112998858677782716510562151708079902611231524588605765656165452867418227716582798049787425301852316457259681262070508634672972123305143038261615852874871392503197123761685814516772411073918542930010269830251958634500477616613320359428864180955042555163820901157056115970085874017338985981688052999624965216886837359079531473460518750371933209946535237284863264655402054913490644475239297291794401149055806507715192879414136239168848055807289915033488627737451861543271235317392218585154533138632496537788736072059768565727467743679123485415295320488058105486786060640992720439814325873746285441615429375941851771523722407761288072147697847977851223096370442103394850816551126035610715822547545325270583759475252916020850756520195264528322339502919139016427378288664343762156316618338198754621868495152988597490498314817466847349089958732983899295223143322651926451266518563641032516807404970747068498775422444206604595884389623390748910135702943650143852499933517019218661727301732542734158336618061439520764268522807963318403099562594005314614129364558414265506064024446944969142376880767900726608470827256479423106107289428658768869697033819446955259398049012398830745921656800971972609333775957181407836263541160780512643703504175043639272368453261477959193506171174208081649080942406055436401321496856101672078748721771480560671102699925176894207728926264103689235763810508697445319781856889594580146961450006824463297116089167237019391537864116157861453432080602422947556838167707059895566362136776396334719980249123082678488214073678377557731976131812281574770733448185881283203503292895202359205640170434589111488785287756504876804472949329531662569714007400341586104816284782345752812511982786337877337069055101696108010520254421491082994955369559950965670571986235030620309682579570183942957666311203375990390986927134880839867218957778997853676919805337037753176039398349517297794346708947932349101212759009877266819030175574902987633177653341863416242690067222985709263589033389262599596679544728929902918050052660047964098931897619649817029570356019212681478910566497511822347559470352591519151310489355817647217256000861845392355877323366241052869429395305402976853918768915769830392371267850563317668618807035289680906242855195307131547465579233351412566890257308758939264357126466730835674797504014645826919589689053739481645986309791303182069670864188778682870505427582377810510936691009524946500848761699670931954077751904114620918872288966531268373804206850360926521887527097081947322310268496895555650880471589246369400923934379454246839860645191801895759435966964937052732964925387626561380807142515908412192102769754374999877350306930747556482510557114581811814635966417989204354276394984598019630279424143347162361024502165435371886506749466957041963717636359483298301800669214129866927811074704364082194950247304726536779019176899789360313796335320944566154729845773898899190482367054105278384318327209399342897094800795987067301524479570347351111768506688590867187516688598876137749125579074259532095278181523223243736117406171515301877476862437594849174403695357538180928927635348684178106790908978405481662276392966624266469346315852851757123216798849341354709627899223766857434331532191662096257115226969622274033652442095060285617352173866657135472885668167265888993401757901137121924138861447599381843351018855449382335463183011692712356825449011913309284504804206977050831400192852149131208609212501544995052432332352757115169004862986195431545012510297801154961712777285175047515691576824162830715200147398234420765168690159051085471799650952448530712912899132019540028831977806915196752297374870981503681777757172523578950993640840374821718992795467938715475837411297906159240619654145739369429614042084362048749970177622646712964435412887603067192549919874102924056985503782691020742895343589236301971438601527895927946271374575277935043315876174275737307069773284636297898329475097350043601593937685126268980399311060435170022027659102982593300461806478888289931177679634022188574106909837909801418339670003932508247377365472389472197681328478724774442300213270055988297290925349899326703877366051749189208240455986107809369051101016523291388664364280765427104262496380546567468240213714921299844621010116631776747205875954730426084797649205126561440884662380628088687262489559573350211636099190487043249007444529140901428989215448573751683123487936018565428599349217815581807515811063765437621131125457979626709529080555996424067534976208256434849783559376839474839977867716401247158799472262353529871486516545453278050051228519351986716254086188288189346572776865004405392919445346581481709713040757204094945055346110413742735296306449556779546823232113706679209226572175599911046090921689461946243359702277614035189771401210833990729592198736776283185489817249271497111778364298116993255253983415824807066479998609022846823874111097887296268395631541424040985929472583410180836764585699385112084777587543794206398751180387750064437118186690837374817463819413239032331405144465860400731438705193902088912620648592236278339506956394845732994523496999989158349075866703907016538147297109734094982373357246424543975396623255557227848068778771798738867914420395564012465981191753684527396617058609294767680515538829453871207260268480073291536989007144007815876958337670803150338048173396432990856859459667629130531689474977233804936943645091158693859354664865190469072919987715749388893115558126317298939302236519570503294119463663156740765106225576688063702597210834336585204470670366880126069967149597578693446494714538614269231748655367134539039259277038545866782803893597580301371891561147197297841988667507733706519440718783691142063180072043520936956834847489096784128782186720354922491192903970673728835242311661954114646412663795256633116852341854735956223032027792956144593827198941129130460783248662592004698382359230649676515650334510340389421317838653003540161849299252232686676027170204181828419728504810844421501785582839080020506605967173625642427406971502403837706215678796380280327243786693489417217427623092430631699310038420630203150197472309225552959140204080993988005344404944966703434817155249805038683036575860696370282330616086163877699534829612894949737163910115427436973523162835339404196449173162504453462913756515024853281933598958692581870488997617493601365002992571047996479760297632881252147480918841190923821384913755152577447887786270535586379759307640031685403346709423486961567961540267260755423134951461162298690645464528386384745063854481671589431779322908969078668386745662686141997927015589264222171000734332988100990394907381167265537929604413843327870341635513388617964895633869148221558229053299952295835427286210685872759612688546860523647930219755663488310247865923249974319987959202045870108114344591042328807247062030234406273643810766727523584941840404758263826436730944365179641315943670820848159443773114987524723344998337474394130400053430236883978085820561785286782836376218761597460809366375021294484481880927024845925845204694043976616873213270923613702393125726968782636407020959770175229777105779103247563418733027513799461791808387086055770022745960262714214912000707001437085738064200228834884168048364843030140089649268368457668149225556305338547358336914122071176696872240704547481952798972737063001150158546171677632800188016313769729369177227243270914617003571495944747263839055866653571580969945389746496801245122370150623827189866219980413349957880811569732625064184133382702086361991923989372586010170210046863411880087411778899173336708392571728403605664621988220306461098552277233591618582593465554539229618836699194348515172312662625191158619979824229021918141245870189447543559672671386603525935391916702019048399942355501681288339163917049170489873078431723890123079918201561261240399298965763745027746739113258757981819440375335039080177527850157627466471829191577899500600177919505967322743573785052329516208951562502373454038847168570810283187481626444607832858888144490242093930701532978457779502491649261702432453708913137730054937471539540319184139628167924694248242476171394274513409097840373078336458848359984767586902264895815555757324879806815402584458639200619433438066098999625069034839202575898377800855578586953122542096348328969291278106620398984913053590115489680887695589393264548926764668573351944599125115464073993814538667298431894543644693705943141460212954702563633276319141544981080616312559746555524699739945426557232861223508126183741402056488875980008747640625483766784052925903629683165645032079444877980656848543611109878551780624831081245660062211162015014961473223129263102124789649669673671250655134348726741405519292131762274735299119938976298771987576040562015198230735280646441933101820084499709718824084110694224551949778542616610511057584538418056869993686751206458140118225261048403944524340235371859277789215863162055104213035567499594763154427922841352433212478649944715070024754433691955870643204617114731573791001128334456234682126158426049465089280979224166144409324971292788110124901958196941470330815812422817164807222377991382476215069931425442687687812944747991995177325490822052915121862728397713456838995881897249623288024499176232952852241669509998462911072394627527557907894567309294947131390623253775677669184020866328685228729817761499935346691799514025724106867416537756874574815308944744256813133752313830152282997800733684707032655391355183776004234296889414322463129412763553407457914502450571307972056600943574664992679382239573206863675194565442163176752390271902059418272186842387596765864945456323538149060604403115028722573906722611459066118772342168521504639374389210082659011694772439084177296282565063572208121584546043302310314077077409246536131725596392227612423478037170979548954019211610981433564290773559168555198978713846761679330635852145352110080007412653916092572303828446896044114159578038314205314456608323930125398128664822938725660471376587359519322482690287681592351167855384270510298449028454168054243616745412390702307624702811775287826386406480126965959656159692663269205970965516935693050372175395755027041672701287412629202999936714095978455607681692969240878802901275644767893156138163387301900280922537622673549428921490670678272575423928648857123939176267017317865055478109802214597978662495224741808846352048984818102810032686875026567432074290034696620243172775463867410407212626264959316607290040985283186621326853697785681947339461302297364011381710333701390500906924050971608705891702327673885612852911901387785039560242622213506092801073715726483885171734242142359520263024995240533877168024578155748777447446319247696863691735726682049612937860386191837001904993283198728914055717630534707796027370173774752340777323720708378814182782545321463768230545031840918578476051514191761158211766308252776595466234754304094031326497111544846462260407800454384565861285309255491772900089980774405778186683377791076763564032377095228191319493157983129893904534961969082222918062684970791519142428360855891926113373878978465631529017925256259693398387676114529752554812519987544527474811928810336055913532338294844411694254535166216641085804168918462996941590384436606263445975815720867434606228135002230552525795929672238303668148674722809717890599246770304072748672214099633208924860806561994952505642950511270966662145292664513481999289670101456318817325721283528313232328036216661419433233801852222346308585849761859040995628047024501980497634133585166260429803863524369115081022574038746923221023022116511362957142100707383408143490572829889627273554014718038368745216946869814242013668845880280361464864698582832787037248218584945671076618280424619384919295076641006240406696548574146946157777898156771016087241738034979905152143930124041620800967579937298778176734758880336894711653883195013653456688058032499527983843420908624229556277439016345553368436184000234998115905682720455776915059257300669576837651277022760385108907355611083965572734513656650245951059658973909171978929417268061355278144253254818198133667393826359885175576057187709844933429390110596852196420680399245514240490883337779326860715046375664224660829778913449648734293988638945145866266894256225548732642999121339361953270063978036009971685875438567844998563134911837356401910267597374016582437773339897025066284303102943287142829191326132532843954516829079743252711546866248048581282159110750557969424922047001711905730863801599946461175547616569486205732903118432224683901855848391906651360530791234741875625269954349683201364891665294390212143721573504826147719815017189135570230778758473848590715941154122783611988788425077923244443524337516769428840907016078619060429817240637077476045290738938301179242973437597075715341714253128289963567641279372187617489458431248712765284204178408256463377425830293796105552497737840119521888377126602090394484856773328090890544191010377825489286609966224874061208743205313159231126765648654783543701912724381642684240970016961593666289611882424365402409196869242243054040708384787990456684883744977198147506878796725424866597700229351657464121682740256387922239610703604126783971437962658311836924963146644815856881565457368753296690821808219583956695440634046136364965784871650087656269073105543533533182907011439372771034723927142613798823886930408661239631892912174384907638311740816124464899542990176320116968389899669885140788428628461662550502176663348342851564363402072786867997112745139293468992225782508445432394629389182476043785438587010939565775848918231879147315007900194584463870194266279384714099395655951080593907205310290727955127160740769350714749595437717114254271569603103923255960953275417734451075541950071262784668189079275407280804071943407258833792595687889151129468606985142628624016893756988683922152267406289127639971633956868687451381202256061063625069670588314010835763045751125956896235820452290030809884617778546261665313466591322937232070614767470403570904225694060188629212307900349160017325365387267611244734565653772719937485907770233848469108335022894925741816464473480391149261932551872322359523477782788167524722542034489617193808177689486510126426030005458243145234170166126037053116575127619177511827892559025487318079819449550235513349161755576732065564394933009616658633138734558541375908316411094909600979858577033208809246350828778946027923850028410152450875702101379084121242218197408811696761049091797938510955926345143923773689427717331752377440964370145887546046896087407605978455779060163923459281418774718749466726179475043910763525464380496042104482059232284482067564220964180155487266449379287568438251671517228256442714915297065546531068976964402936379645208649621295780731729893734490776183562120641758950736379812661303551867462519103913797926873359962144274036173604285404285648303487670151441618812061406153882302518639787479709429183171052652337083028639852431400292540775019358438215361257169008149344229194370326523844804189781357630775861667778660274521501226149368922052135001689503431572444608316467951044204158977082685144624100190603418563371037611967161129518602784406603784366505272430952284387281746770230112772233726500389893888969757146564968898450626058036033819173720932623322729083464745185533125010695638893608147179841006516038586729079220308661497185643734550976129608420712786486614550717914446620735813179679533232469222959965887161656334000460419584391409661352085469611626604363682468822406645520735405986170932194860088640474715284736989296352828088363693080350060732159166484773923892640457657522482729088522394437578625605829524999643684234474554890290867027387208402101778824482386669613151113840339939838544729178521666201856152715278238821727224527543466834339888022204582364001472876281937416472010014462670313510947836108076265229122435877262890607658013596364863736789980733765531010070277194564251193177446518411550868749164955053260258270946575031299093111651017254657641759090107843051542567763444662786623697343467557534012234712658806883792172817134515395224102188302541431780170564495242532272037172697273789728638792808920406513670152884253941059740197604339666684635130553053825777574404026085097770196054077473642256045596849984402454300688180808552998071995936795378450996216659591150408282729859583775976995887977274042258815762317260962032330271655012271039410891231811451022804148940445094752493721523287987794954938558411888002272975867629365502483229352766217221396243415427085828392688444514525118444565641623128391558404901335004260741093999501292745005893447738906735015272481828757167418266668501768746402335484719237367306382815553449912866007438885095356972148638290528088499149317370142476406029381653322492228573041826846514062772531512875410436808714174629253039304407913512384984851320222961919116231111926486713812855779735057567399030553828417057099170751534341096919601213331285976646436485356229412254575900516978944159577866461827532187652831113470639085041645988764658814620861532129435892749974910816872599855380114316337374479647906333287545957172523042198172445935426706799441784169008052134935893951904591162240283570318582770994219657818948826332820982069623098763744945502687678958018819512949632408112207655713912074031411912978717663166270560237886837989024355975038889890596436636399070569639270668349451767674225328996794803796315837683102740096772176195490244306617370100993451637972314006022689444778485865861568553232319292680767096158956824161642682207149762126271148071542010381511577448517170450097085825878094007533848296523300270546364345478935179726741189385188591012800400731426308267368685122542804482279976669636751348308008472212007907042578704558785624322075802605967559808577588793300377270342841026517047417085345251998720907524360445233075821454600158303702807114659199327268705954383567175413279947619936219619159542738740476819079774547141322017193976945515904554974313915663896830144335930928155411718112847354584373818180023490371164971425872002751986653434353217256554446107508420395022754483946261115715835418795965990397888874717157035015550701550696167938036447278430630558734310654014269592901709210607876720717971239123566134134958613076780574879769739634647382801641926104395718683463253312278791986031948132600531289414425622980970030892784063160231297109129053005145022113218601092192690529809413776600983498644374735188465325169327547881870885047970815615417522711598130011190724038480493154261612723665189665504794770318239580875299982872865487675567186870699258802041952117689046313191071196801829110841758510891913090796359080497168319015139501550253325175061260803102303406888245431220030568439436350706586968723495890579600419659782720543057397825953569638959709649894965539264694489407298012821707600533446129710986143025396973206695158618394063504063566480007793817764461526602478786624312540515646133965193491746632466109936286595879112399298890827728464573793146096066590198158003324809535815778836751102307845929705902076067888084045536268470653363004436142711035762433395194869173899358692248799332456713594844277135136896835289255883656132664127743849559906943587075815406777325095872142844833642667244788453765475292619226467081438788402227619138421565687240834947714017441599587748961850194529147162678350670891298099875121221495947918046387310607814510200406829783010036762615809721347972141779562258553526699442413300646725474296770256490419280616248567822614677584945194535531455634428605536553967568380805278047895801568598440261473463065264514515064176947997748394619397692486761902082793968121553854752987716521315474855683436709552953204481098400884557107568904432060431045841608491449809871007041505244204330535571290541874566266700796644297751252404901566278090216835374851274523536028147709998335954419854231631724094120542490077233299302510212019068378439671030580045951653019059863746917959672396459466725765315987846537143231782737934188707833042114322458682585205806487635602477207289783311273768371036636470875532333874769432134693849108422159360547210637670664960586701805837650709046009404412798685191038373158090430406151964699816782412251769201184930588341593619469543475779085486085411336393614061336576819441140287776279619089630593090825033626572950648568709833351181607776785061207714373192184215138425867074880933661206984411706459022069841872991491697170410827924006554922144231327727502285040583949155839626930274090201382903363238127129150048903041429357579892402790364368187735109528136911826818208880235208865875055296976594790611271278060247944543792718634852326048729348283402291996488651022674629206377357439782456551256828852923038253943441958088868173284060693321966030468576405912306765301407066385455740132404704978589206154457047019061718560173119131528538379892670769407688539542674712654126657210796025015800844266364810481029314265643205892173319206955007771230178356468094510768516841252659013952012693865035505889996447529177045453004979634845019092158186238700613333217033082022959412149420369213562408281323339937004009061917371295073015416784002763373994474627434342513610016135380249370902869652490381856776251561351323838343308911103630080470512821945833824978026810342444048943086380468734172606311417643585408632909800831760200078360155245640866391667327443441390615222897679071918622552776393516165566083892808576597615292178261582838228323057877923727333985027275813432961487799379939629187939751505865892508829213283602531917943459227291466863511294738974730828120190884005852507159821255385596016418996959931903067510438907041783493349424626435675431120542507598226121715890087064162437657048067021125630870925105087006974415365469089890882152522014591347834062140059171764639730754124442247989408509560086335397888082419212117690919295142622459111684877038413477421458881408383754490987462522324345514360570106681797560109981384010161556129194860138629024063482473152728796425590332882219662742285958598325900856799507309454943921146320887563244313048114086734444259603535218444505114174901380854299496799596769970517363109976331125061407116647228064360933805210040164721955602920406700320723764951463917920122988555529109833524549525848897984248646257384660228568652522794337263159931377064230711436411529382126825106379391313366497281089228028096620391676093329667610871064379161759653358962981689477392696530582787799953067295849459240427212200475440693091824100337724721275761583362197673015785690927156621506318539582201036780066598806344020165550019036309877030143508494321064065193496474208177817141208700647235372776208378783507132929679433176641037805500388655012135997300656569248171283880395187533675722074423533861961038712223613010292149996708863870771329237633650660915943510567491807504776288557357553634130981470787007251286209991495954926746454244585598667206731876946939144778887781415730378934185214385904175254998070843569160031638641265014723838520678812213880045253642846626498262343803652253823529044618690412262228611374403324353036864076257258998633340690276929128613027659237341937044933795813891880585485396845598860466141163841010416206853552676498609154449568527664811034453154889202455623541388878826329698480688272441367719345321006115389629245146237146885761081328526815028562640027639457245718282300102954348446476011383940166778845672213758369376114594102386824583502903680797068440972581385875312629612934183003962749493301474267808439719058208744182636320432047886350830923049074116367599368232302527371321235009276696374542313445866811492260245368083334804073917187813055179505548271731855104662385386715811607261500890445407031773505718438690634883565336968922881928333701638240160827310682420240809292786568755928548710884827033786581293978400050241189450707534028861668170611911094438457767510873974157891837420685886823030880470372968320777504700299341206706551048936404116943866859372527551790477267883923783488101665709520678603091363434424709224958536791002704729539678134571087029646829166471487363855653210514344071224718767002598485144386456292456075164315160913011374356989931192284918386283438130234379837839400889588048513500094325012525817802887602453566047417426211926669634694730969861674795936745913283037524540678581956912360319583980184994750212090826035859570119473941682804112631469086242058236928959934744038128161827325455264139772756756034014683920953069176531412968445829029967550837843153021801574563372787832874369866718713773920053312152152538721450901578924989128845064132810095559848277443275297399720730325232500387837852700134993220466584857726500385016573140213791360624727051459225614623944117504416393341636386953819533010797949308775853057259053580854490384847953306857910726653997144744943685336620542702339034422297974148918647393321200327893149274958079253616013768261986851996700604318397424582400447690941113732721956751903967894156006677159346531820260093885689636599455813708793233742952504476764564811508682992464062744156485001494661232661799810623546401150044854584546318188688205301545502572713571839716671146492968511001213908531602199884755460709799198928356296221953822295074243412893535750958619187747705607213536528877480348317092610989526465367648471621355939320296834031897676613700337884005793781485537009876377703898712703629457687379909097813666259863988303135108141673207625029112816217597462342022035472067086632542336795387216375125093516429560353606819877988057441976847080666762750886133787357229747544370804384928716401809259502191190973708839257095997925556622884284423236874949716486069520143176446221525013281470380680004883936178263083826024837915301778819679781101041144630918860061709105668160330083844798809424202806616911838611848885276650869040231209028440056731403393074902821172247270046066504826876495894240096524563063951730930181129108591437299673339077627936370914594118336973660582546960427560644328230886110892032859373060732152691394819958009266562892171129914929100713980712652643602169556184128590973386685466039654448119939140641642026586420930217660966173910457091211988613562652685156943970819449812514017322812153691789209231031391524816795160457730406703770545954113824454744898995146002331246514123523980245972211464141704112085391282207805016899422189425047868091529980052330080648910584293465628187901457640923831502710926996532433060027277390601999796192171344096903087286520832575818244992934789715817452128451269922276279558107773645214309619843546703303555471283200661894718509764359094170445524216721271261593373570997414652006837082723435111692964865833961527973056325140370821310502337907578994285359875274380985715385285714418475284019348776086819191524138404730981995094519467365936814396288895744851431298459675145593909112071038048214352033425964768510558480300502794976111047023388908946860165909465593794746727267964975058481635491454822000599135452149860094422720594932526928860081906474047745871333073961018847037692536974620186013936332448176656138584632497361130725032543949150850525183350904748669092530876941929180137248256674213501454624685587245982791765414888592700273599605330578528194644954083311610497157647918611145785922902897489863374077312537561655076146012038317857871657860365694932140524108537749457128879303106025771253187901566086610514376418602966737602652712632968608597041080092776368151650735039286567902087762710718181009681600229544392600376753489266774536906625493602001294255704249083452158124846029643302040291397881106060198118845409197983765046533486694810441076038999317805973222939189011857247452067486600259849786249264686316946461123297280284132040280289839230459547873594052371077266417186151534604590495655172806017826085505774825896759949896822700750378423959905413122314331063444932340162202919992963137348172066035269327599901571313606480461500552200570273842917640644106446109188234581675890357838573007248221604911063466167725842857884703967635861876652089235120336637253295070511505907941353305588875575882828877218298403535498772403495648815158639128910646446236790709524855847444561456830505561163280234443456447885568355024391914127729991662056318819262886569425744537866721476001209024321460817419684014594928896877378215426883872910988987336785689858486173227968614534755067387338620546773336095139396474531014697043789647805128687541650168606124227509187283375251621733642187060651399640102785929138968229733712572263352634498567961936705032029185493036258808931378495934992857844668920851938834950135606259217827798705941760091427335082431238718768670041639628218316873242136634207119974443693921153183944330819287886220189270483841272795520391242095781446577403685759974577067467398611454729611058654779046970732410554448220981227885559492341137136526776027976982158098860157617358700712836786268135984813393713637834910552787692073149322078205464187265351983903698740297873106446052060964718365918761449511591445682739506187841090514384435364879487059214861009419351418083800456011841801656149864250235377481819655682294926670552213056800951012556122981501555846176699825490089022268460574530213885918682815476525622027213319732486672789837476735576744144217918783682660249509278891183344716163832149580586811576523614488435918733504494295028688754137228780072018873557434690555663661820144060299815693924518882341473365831946588103897243546934131700459926757264773652637150940914997083658315082165120320880588069289882726360120397828723445551327531768589594386706273578957740698483892361773698814244941329834167711815921951170822307879883135437934980316262825027883542868736504121970882691902925643565639244222013883227848250636139756082318214330647391279575394537527247602076791508581740431250252791784580887736990975362313414659763453610262944941501593653271379537875216081750359372589705197451435140962622040611233034681550384229351349628090715707869519116223091725946363612935818024969824742977113352695583033105610007770821033219423554005564903181656688473392290439015439158989956933177714316384577011221654868020029298108992473310772184008658233074828464264811373089996826812491355944952867120814481047735290663047631796554116371164190600759534330333301324981076932631063822580938452449763091133729166470660043668873826695380778670155692705273026398228614140913735833995449996742758845663806355533982594840677195644544595051795966959407891824247990696739636891759027474527233549125170641170991743450004467093729482489507910932904255618555694704492119223352097237728093745152726772069485397706890433446455520786709910429643424157739523140060034092422492880359975361600119576103747809989228902186633830152702778858275502760783376922023207156055625484224310692158219896939054760990098796514484626459267163756861220060546380696379604231520330233023963880894355078667609781604525461223873093023958158215839742084200864691567022805600502559506826842260859157479715962387913504874593756106667473853006058586333186813038704116911267720035140662024987837355731080344705091377759411519915047065382155504071833854365671617321807086550241782943468175503933146065670955969781717968168250945085963237865623117071931436686602862210124265357921299916051796288207312081599086460461239654135772592794322272974334626750438251128663809265487701722134824972012535470098458916844896649847843211055049309743047879880449451596098164004641397099709024758698476594438506648869961357292827785330984778955060938409148190918653152892821985199277076709383000825951561085836960538961346909491828955686709286381175229365832994903754810114074702737443114225784841621168451623336703465374603859879855606174264980253308978707532263707496286094290091933749669919951989307233136597177225390127249742352339083341083183945436164058363301495885739403382132459462723418195749951920714541125369407660184423796035833667173516144660061570310926434926717615228759494856853350373469569896310748838771031298234786790671510973072570388217446146028133216406385719594169969443470755941328846619164084505232995650628716429122784228823068830157987151168970314358019053299122893458503575130112256723167676372163841482680826549112720370613736862578484253750750097995122408407434486221787808026184896154609390174058765176345424790655748674729879611605101065707524670883137048874774154244554936038233950631675423899909977895162566450003829775339621942735603258745441677925570098861063349758024748503384141731437781509965825328181761440326183681195312590534149498630514414275921715377444356227348314900287716538389723896245413791240975237733279787333364700248635829730740656723698408929905967657971968091665815371844223936494818278925104126074158626112913028461335329759667900176833897004093377464642770542119251731191747666133706309565268761340276305016473838735626716764729098072468718415134333260910025184383713963064064446017710370990232818607140933338312109456243062964771342062841707586603423852914158701977305236899014091412242526379085459134014521036201372204574397154430663353311502264895715399594793202818972122012867650360778558229228673540536810026074432153523246411909188519932457719582927925237136754637686186344146719374242772208512554365487893212330265731292056336026424663151407214101163720449858120286079301953391283166180509624975995631780852804546695855635152807890510750868233316507087841248104602568670543212635936348808984882873095307963743930637552320201265698234240866806789209511748087521394408429763280606249713811640034809992607085780986399152172626750591256507709392615944825176151542398705454893430472648187584215879426251116050856946130561902953962692201003897711016234679859395069392184603192494400249832312170687465211021394150223146039305247174575109032334448463165387163093602249555993495310717066555381221810668539003298385318921024331792167858965398405279562155353094493038785911521856122527271220985976392089565555380996823627419342124207773825154569913668904943436507749037667147937905669639608078230821329522874065915182615262349671239549392384588907956387058631732974916323051438038548366407534293842761471554445815276659864187772237553147791403791379149773167759315277661788847157490847988703759118454128296533261667570640257241082427641145999568323972834880529794640473231231113422996965949273100583561910503607195309216502326204150471636314410580782951443658416477172973587309316871508657703102530704641950325104865688260302882205873112568023594338074392233109669364854993821198704099378950422895015859150291572307950848505234546700664483432138345818828626744623718146190656503474933878795333891879783507987822229023544473913043192485425501152822575550231683213031267344252782758386582957781237633451452426308253404779278298879325603768385366775911560387437263213483076031798023958477749062695798910019851100336768677363138219158064668022250784950249416976934939675265121362430957892329353907773651666830405936995048939678560198111730618559717732275742577208598685831750036908364157218474597754810078217534635283212372144415539184449996151979621289788215641709688671061450820644878114538071363666591528668929176259476649956718383891705357278950909984531027356743617311999519901842296314156444298158802903705855857127731933416828845522171588219319097271969687173952997799578074167647583324475730301775257056941996306701419293552125298857484996578896246978747129676452388856842770306757452940289803422652273169885147439309831527846634421137894350543979801341309771436457711731879876351718612488844343398970949917814496479157615536514639849240157053182386098704262687916034826601671388239930453995153783806731064508720577853808459562208592452676862297212241401889049086417615732096778203126342915905517683228963281981395490096696043217430544263814952255947042298108723160807404327239012047374863523457211204132931527925350622549661126588132247082218099746348714462220473951361771250922228012890458782425898840304563806722942466041073930969393316234569201424485934705895737377629949864955110396099767418661647342264714678914877071969498145283189779839046756680923756395633085071823958310447915468527824403182249954954096935362299312719145376306625987611022931592480240835715122294071341039794906532948677642460276459383242690801474017238238765589963581393204472066218551833667364763467651525724564150947386630191988541071353422188364976198915577954542920759329132559285764400223407578598277623875750013202014647181990955446075272134066919926242607616927564028171795125094364014202493441130817540595748407968196590727836955841740940092559148427469317137118363520479081433270649237351004427642317462603192963671669331045851447936202594378406395739754704892214831308182950053927126431289420422132505229545286308225393933518027688934261276261092002538710281199838963240743169769236287738478611420902356382732924610169939290670918796059907516847855983152008397214056700707377801867035647873456580909457056673677546447089791844467470859167469641553290276398528544940350663230050151589186440880414808752330156769038526348505400237108803578388350445264440939424503281827612441000625414407472925045594488735578625029708267121467220789236044633906775687944602410085741807985129101119404369423575499547341386629906909116061691252764299437450677957284251937701667473296103824893674196624838022645850430843381361794270225375888150228923943297933667367537764141447079763608652351156074708143019558726637839861940882757884615105254573588963742978443556750849773900974974015394580931806777317729329054248980791864145486602665136610153439850212704048690170176584750543463747945848469438934449404813602530279213129739103820954751954547252113609648395415592917815131229436537096698931208942409598549923576382112856264424271134528494728102208357948661528826828240859292707041468769745254813282235467832510145051171635098328862583979478419618104642265702251892975998805039721195592989316720350802861163299832611581572062967561607179552909817416614992417905906681012460567240329056235800713877870150255286623486160627283126903445588635220199349759247956869261311518040783464192056098121303101510745949725054537203530039945309858234524805706345082958720989251494643258660154290154162914360360196393098995680075940085786173788362478882795914628852541870786601528590223821177769690953291722309837016057673113604718928827728867337980144050187111585333280735124643804253013248224160486948369702917616114214012741810593672189719686799574810293713010460891903715259026984917685820074152379705229904042436517085633895353066677631237641509716627746174506710967879830681393314341127460977377045796833027678200916964458672838730732423287143594397368816685811406623033823848080725740180339340680256641712414341974480270899417799958523969102245723159300592140845911203507013912341627207082292700966168328911206158330746321902795781094140437197567213428464490372988216653748931594841273797640175739938121562160760653512858718509393510299111279588956588692746814586733051434198710331918849528423733468205463540294499541660907444310351552948448517325470569905875275676830462502883579700209896458819380623465648835280195942102244224316841345226227722098961395577269000451686425710012707324717210171491633155706611004037055848348083302007278956680596156645126612795240177536877815940984742512719008372046927867772792422121263262437479336800971851284312779524139796109201051616447490208065199454941066321734002799548778144433557138973477361116538597003087684110069722752836144048488454047740592617828149917859884107685562222412950051736502910450068817573840394683296507999279478839640725922746210833939195328051797813084251992072599007639903558391098439147704679201723071279360606495025507684870390408841363033115388899975800460405509755276787522969508679227494773637119466362575461775192768274481994911161511918865512102599205254825255893323788824404778952261902421698163084156441576590147670082328200379279155650666918173092182773472737851805251900440262714529393630074480690218334465285316232673026833976585760423374327688702989304915928980685478063448812283255952568277713339727585657709458203047092161195963883346923341333516051967215138804293646865096075540665368064024008503773068705550020573556053263980967691650215711318810997365891285378546180337113995264088600921693306544439091718019299475829593321600975529144326503401807985931101714628387770037360578243736160927375906523894645595702528675396998277593161112857345330251928704552950500000212080749865088061233968298102263247219314480750870073495095273529192720147284537333845869508338744233320687422645892766995642082564498307129219193961340752889741221425746846602974901557642412160436566101763144019563590343657466991308140703302747905345887860444645014868055660166003504704119775324734841081439846702424534825396472655158523142032899783684219579774650253438800498533756737990319301625557936540885192459706027623248400445128123850572135516522967236711055350793628875836122566164878609552922476500641542694081350763424732231617397613337864920077327249355888204873888616625949583056106894862126221524989993407635372525431151704616897050917393343988181557127368756255402573436733277605337117205579633170879295095881092080369012820014847473547049080531943506356292948864265937142299316687898271087093242094779584441693798467366039692745235013377497223707647695844186989259881003605254305480665009020035656532022113842130865813913651675963561396093706996295976817524016969427219315555034244734705932803901052462363424464139993743531157393546222218164912854067093683453023383367481187596610291284917755689919174329324687701184522308623443033049112900461264081534477170441952654800021768166296143708563923922435916573798468643618011597469095576773721660750070063591872559880644262954870871807854973173523455449706284213576076084678265824698383033508655616875595742119988547097361833602505276596369813070901083530447400997653096845898261343916312678668173958064920378148537637365594827572665922354145838450129468562024195149621381596506162478145871252969520005708736032663304422846471272913417466546593724266215039414590227936416956711458595085505588273119103238823390825526558638876947585828821210657656785254504637998601804163332219665455063813995294335600413743642696164101465670025719813693781614592810082128039370081067629171743331898178533053609232598020157696565567050703745619306963766533197349577614641036462273769491207257127603573473389780101662572692659372009355132470971716549067896017859330190916340040561483451215266678623460716360392668588110832073063000516136211437841706926818962273036442745527782646269185779378836636381217477100006530832262615642077472116633673275484063835031551951398398155963062180515000888235690627438399066552628357008723612585375606123825212749395804744257628877703931732803470624562621042716032480866870098328552407044682969977372527863134670729643170297008843346169682074392419820329424864401257924991904879898353332811203853207826185479455394401453261784678305189232402892768207593339034382879657909006827203687149689436853656434041168324420525749518569437393338059086118147249730499810939920553463148311275940743444877531796976477741945389007330002881130134836869002852492355043669967419649644993194614857991159653689600704242227217083954535984940862318446149409920719672489173654285216821167273009156592420686271245720845475121194884306237436031131059833722291710399539344709624783217744486476003734985020061361257681958062876077202592960835022113685561896274747468256341607870756086332889097008289309008370639152340308265219665644606454072867731881681158101943696640293126392366611533376460704802595088046221443908791634209845302605936187946686485870022521339677442154079301318263189318475857158985267919839394423294784474867932422196851140073246045036034679313113744157530802571503118373224899302488956612798639092813415804671733017059663463206762498497148421168123972790579571529903194436611309831864026209249700825214569171435357342197085925151222028620297169064607071418751113274022408125812385000409208644819313756384488169037065325172321633529548129233303924682382925085530036808519205855911777490972981096939297653819203384212596522980417360661589754102912985731084200684599863286500155346853086722700697680991459448005004643023702939000571027454908793006862683750172521110937282516172292192815152719536432324527489940308025383172390225581654890358494675305156360922066167541244093636640899562578481990362602576900696095830477837825627519926707925115442673820896281958879316713065591640040634930129880444541493543683889202866602249876893556127908120956781466381443121415962268249337661440904405485827655394033320349986816278996439381101912531285567892441852485166884812137127711591976834264709663009871197786349143237629405304518183662018443698836766001452391271149043677833779741115514814685639037611060288484878827105726556890469474010172525042015418642307443393867416642903561039739691503795593066965567498759444665565126906997642118709053531669012593896452890005226324345453203069794834456256875495730893016624368681213930170467422424728056057737669537225108252535674471340402484319591147863728309329556515670193815505707482391269764370999468000610334791077581681436172358671125096911021718002733157967571678416514189061368016266910176804221508296214025663413262216557724788210870961382921548857323903360930664260434454357879821825717994390718205975217697342519603231776673684063267888130694252068807159658102833706760934958139307518448213548261832891450564727230692867333729045704283524894464966146760351425903359529091112205798228279524085408849608937060132293174326702241963508697450231828184170003188406038469811211936332688541678157826060934163582569446268401803519984523516885824818868927670515248166715033233803786728889662190717365427543495692621721924284940572881434468191683138582136316074570968546441407491249582601141812545860635602407276021169313278385698940296861584187335176677838376019775325035816183527715296858077624359272778019093130206034015749628867285459463843897867640119353749711800595630129706922246346466616680036796841419980145318771916945060684009489426439015925748948545072452826364796001326101532031668660974711485794579718125344901027475205209494208936732519630358750303548260748476717800439325869667072292182729229519816792594723362326995681705418623675521991358823060192039364578420538922435464434400595531217865559128788113159244799824588970184834284983398621914093447976664506162630738771146110791486401171763321422261646510800481160991582064604894462960949553516457355235174009436481889616544895219492592510914464844205448505140732792015481300976777990739735947939453648061486673233154929302088961593880761386275912820546624176557673608702512389150085173837784045892106382999967657799582606972581821672609297832464055083340345032159243664503373588879092107171883744469898724720303964053499268046789339852831598894203769641010576558999753289659554962042937426597575909288962760300404926996108727787819222954736447743227027099405114009473139170845105397935220750902802911975268398815421066343412725683439517094265356297148546445014838982928229899855914763496636736475739232887376636641760915725570143316257471885309797067027594124386999929582562913433804190856247989880122350226295044576185275889377266858507816618688470706582782984767918015050598547209952630688477234974489473434846776100161582840232303155737617541070816636065106354809188058766035461932304128850226232039665595154532724631491451016263550237338938194217233084943293309019738353639183605418388347648141084846845506447693008307812794883964470881728147658998461079973892010715327298486765292639562187640249135616733455275028795068487370549466769432858287455732951608866900937001485107009945934348687031478811795085862438288101717451787391564116912660171221767538652843159483029057595946016687151096361102770362145473937272631387653991464791415501218491589735855930889522120800440204057482243146471892458109374449967723397982198910142648417426343844892835693750483276657867279297041559077299040482890326455789812895136689490579782999882260068326237808511918950814858063479868876151863110503515416008168724087842465633874445980057146958883109641048870035778341183186383853008716530153171111375584229206217667084575259850687384116725725868753589690146444289312982114443212933428888508326505123150614951732024379390088189763091655513013729933513447559442510071432439036947531967171443979885804613908691240358413841815156103351711733834356744758843094331560164576312772520731904093153372355674996989419821385153420934045409717832311396412196301808455512474048477682787311115699186248404404178954598103286564734991842319294571834652556448367817182626913638841224684755753631809504681942353304848776205464861361367457857934613385545546798972366744520450305304650752171784161471481294985458199476350520291429669017793995996696495968628238581757407692351771648937278957748079697335416258726724382942687702555721763494480709878096713299624208181707816085020342434829946375996575113320166341267066773917344829056939143605682991386435846120561145160991219624440057825158586388023751114226030555077766650577910348970545173611627961774777852259811332858908286595705552515396737422264571291756970132575324441237021995351038322245883454530393913762270781501973707285412834624140683394811623042604236588930690421041184737933088691577135990269574124999692743162097129215740216907909409844989277100758707171799406167078690557633106793065968071022328458056251817815654605285264327821409606466944154443131769290707519516694000322999183806555385168863053108131980187782166568212448657011250560744823628602654904205497442931662163396331023849920466230148324997949781548195176872904715834099997973806307122622182794317953406855652919432660304666942174562143846675948903847725327695065471407320497114589229657777014008851001020459725487968623617939110765983031308330337655513996621821831223787351816260090139958566179986455542918481155227912455401850860874240789901700985000102687194359862424757429480258888642845627438072951319426914670216152494102426336040734092964713811723187601961540882087267382596922208868149633467940610971517613930589491344489805909791520430175329279864485574143194172932199154530365937392661620068028036464083277305170948788013495017047404037661400455056411908313698340212371911030985850073685611567811301508012538123589021672917283921420508175272176876393393440909995642637552950939318751391793540107347618344880550867951795159296174422678540875103347820077598806587642854215872283164351483093485594968579979535747357846129496951034834611882375026446131822919178983218006337126977516200584347263610475464162821659678966192510531031147748137772838939490029568467922068051807859286090826776671470555296352130910922520524554818548362571713358780164175808547778910605606479851195892954593613265650668604958755183089731172846489418186766938214034524401654628719023882759179874507766050561019751802307953985715040772306853329253573836824130230520591836886649298563459088931206607327840519588775907510877068878405230346463876541632988054677057827359941370574145402738833548781451316174711516330747727031552062418261006223616662926613490381909401776619949852505457459464262971042329579395798740286013428014778188179660363369533670123433839128321699053046970359480851622324038066504876300062270387256046038049130175882308293797895570080803320361897815271493281907271099390881466075413730410231689219738130071569012527037900839595604144496240672770051025441157814839246277731458881224529137722137095913603870992249889813930859840618519734983517324453490570352671752240578471547158271129988246690360063602851254431695464358126177705990725649391361057095159679419477494971706126829210965469316805012076534077262032421650602412363289819493062828592863594857516288774472856025124280173320400765794339051642266987736996760648856814136809933305521862962519244226411091290979006521574530122990751948872784074742193477167023682195134831895635313457788161245265258484768456945428486295006144954471132467569576494879660842427789295146088486470071482601517841350789803371611835370105245806783524158871023367769641715352152411982973297869015795426655319974876367732317185008169551938392787986434461455295116676726706701534797456366322123152753134810599345140730601993124929924915335424479618033751041892453108197182926549772699037934913545009369693627554693786511953966488130923023048704167472254675500049961553579683011616510699525262312700859883319474276134607984970262435378440318045047274705960083332410551546791111738753410508739371751638935476932144395274596655635589088005918095227424283167702082735721730441358351775989376146728743871404332125396127622853572642197876404439506435415922612884105230837408755875121828367633180585097167077213519025158167373849069563167307476397744594857372798077526999807886038903771709778075390469200619587118626884479935180997067656368297903986988423170696088519184440348929133426291489748557492407108813961593580441337321485182115819798422713822835987745019438930035652139641840627499813732565536912824970832979098510769836489518605243110251021224734732903390123302352435241241270920074134692034751974126540136967267501024759802884984236096779126182249390360086693834387639638316433591166099552553489341721134305595567635946228548603516853476053361056016401850617759348629354335595173266467602900548339935514034677457087993856319166042571603671962666419738596390944140624187846778968934937555251752130947045287807520656430160939891629172295510551204290539561413024393256791564555417073211349958003531805206330304774997937407373266476488044299627988183037219446573876713244274345206918049719700416699559157475658086811846946909282599899127525011447821816163354970501836266142242078122722826848973649613055761966890543064063948331966102935971566249254570082782307730565347183970142906334879002309055205131363377060324706963942824395544945715649206066248523479084981312499909978474248468413935901021900892127582672480759515448942403943350734818117908341018138022898159244766943162752249905951875928840892740383866072786492418239192444261206408071482917253157623023981742706743067953916920251775665630211568790098163422528024566071770119586451315711039787695653397839028062982574140757975331569173718480395643668972718708843132625547886596706954589267660673167844862583235074163054403714481301897270209816625741398229925418069468335974878577756397115014619190566257161153441853948508360668174087070005810225827377723527774174564368920369942001860622653235569530876186395312827064102326860289160730236028794012701433677175465007341306801271931350088417731710093196984540269950820542330268938662581679589058171687993515185541931217928595186221559937345873674712969730773254893741443721585899201043093644774976381539127704237536555276753988239601770486366314966813698087038024045320481438447429159519402788539907950458068693479678752669919961254175855956654984873510468629192725326570271072501299521409725347694466182607716110565565974390115244903082853489645854671482437172110560110247956630541830165510978224755186782438469036813233130815782768696840211696263019328100724721312714244486995881596922007747794592342925882989565743910078597858796284508375106607241092703621409395748472702124600815252335638396142188129053283337457710280301044971531094930929029078732479687401132238761988870224141754637382396861558364611315212745923733906934656173390704147205887450197274275600715895132799892000581377725128776651825836969429096344457334597570863934945094697329807538735806614733605042308843066329661212594197476255167849910371227702227668913501148450124478495455774140552400419544805907207915111782632261491437845349121081879886963125922040748628100037897538392807856318250200211665601672763756134691029399642324635665716673547717767007765968381236153561251445379942646965370919654583331635847595760404782462960994137585378022674197054612284252337576921418494446084180943677772564903274236402899949596756269677022807692569255414688845608084608955564892113509550561153698128006877163012109701572739504073537929452828328625092749248923674064465098057974575135989240115633330112785633491215808221839519651411158827806102579498503506707231557254905489750622179762221412306974135998418367359297814454908937410010583984722548131928943104809576971442699758166344509786486952293331925521321437315963253753398050189456307426810865752408568219853459460449654160376376198020925922100113404041271722511185472733189028757090420360847595386540753191443689148676356165954823754308264560709470814274574337382277630836356746256807903102570382769872583892407789773346512794187484467199886339956298355683667476523866897181545407797960911977038419691620579855675191827150524709780968558177671879899154161611830955142261414659425738744203499304400224196953469546100746803788344302446522743312958047376324646644954920944112660545470525934179202384353048102340090555612212098273112099503216595402750982380169833460091002297484743123295010224266705802983323829220123265404091503726577694063582550346543517027461432600094812112557401817035270692203538954657392051796135257324314189593952027383665927266104073248038502383474706030824109140693271263754452766212119090305784289768362705593494240902654439319790534815917040632150270206794591352196598148988196996403610867226672765239362127471407100477312632698203616872967137132346386349036998170420279549695598550747870729916782497944413987021559009170934658274927087806659251289204744336260038947426546508914879897018842454749470184131778749603529015744641365971502233386903130281696142872064495809158393883069548779298484812324653772044353447604372638776689726217678058520372913801655597229711888623477811162649312658944292300389127608709802053689438175501287076597352305431247720926005104383270994349979144867376376641950405567254834981529248211523845014096565266251693399685741042527252212261844655160864563556120012048423336963695318083949863492375089880067797918600254532555435392228258659485115324482444573595674544127999327383285237097649164573261208387187386724837230458517940935868086386297407390617714865770605792889545502357637438742877253982709505853819272796978456460774683252744887973964948165973663407609921193980071751294707194220131408557176193750292188720280320945724709497581971631915155719436693360727861723229869207172982004292634583869363180772459527721323707145328205058335332872417823523329035993391827521040482350288439157775262577696457278329598205647146355684256068419498453667452378306251763736343250436256719177250374061659757557996151235414308133242868448783523630657298110016971281504500900990625555991760462574520068398441481929779114479824686171319567905076238702019822204564493113297638411828989887055716113993598493685785618990338386278258676960640763927610743946796389951528436378683796444631120484538743236971038648835110877966043293173222586323033503093517269869081444711909279054642517311649300356385979848703922035515009866972862053326445857544475092122423700013952407264622028310705037911360611830643781893079745131945718204787188717701224197596183584420631698772494224534685574104205538329446419765627949646624840444792221849557842822551620101124994790832072866024887525716723926500843823564448957101920458630228296095528547767869562482429479096704422128988329861878752204030712202769891533746444852549243772410109598607270887104693392200351242813113459883529213240419654926280702877353056195911381699941302526816478832411377314904510602378713779056385431354015699259129204571362286205983379896794402002643664057555241027901362375994153964073782756180091333248041329552853577287438969347963280947662768211721837906775212915929455721014314101768188147270699651107551622008977253245958755363922059412916404518032598597446868568737269958917636424348021706049333244660050457302268110483950716998345285118553333532706523320832647028159448754842707691869113949639289593011170690684368062331064262008070789001654640316438727473254977609198978407939957437134872738151071143827744488681224911557558891824171021411012912122021262960783876796365725783829728702275896032640208576985623555275226648926898325298436920560557716624165128985864109177963664008824941569108732455720723346830995747017344062210512887296058415540799837545608110184409274157149346810006734354942744230822010170441424133922409952138529939976580824451267425467411751427276521938528774109335143726018446902783129853912335979189167420113321945093706456323523037602794699567797922517759066053443629764587018103382989506004926005181123580292512302633806858407975570644901279658279870264488809216642064056118285269985227123505794733978421726323978934079478681950532300541626011316419927474603295395032265700191343183393969068463595231708613526053896771335962086398149947693053139127892753646498930777121628651530517314702937762575946656276806900775428141531708497584163944823011813136180696066278251027699834692181199896192941737255351926051677976576115030172904848567513459415550842735362161525934820459133011836629070115703350693924834079356337450413029537369951466306543242399531979395165597025194678844088825501963260586055144837411170251324296639931865542534507974287739846504697361174299033254134322130264095925806047673229524622069557534583534891006085797327434952985113361790867135284714666102120374455171802970007179907314254837679918957344250536711898949101527544927476849213916414180103237189859419218367693038020153567223296566852778531541031124234129138540593910813282666647063572302532511309198836695166168498108701694594865460621765549861375426432509734154224387770289314231901568952393044683016285715570662328671426937100733040192879030684229874086832928030629121243935943584927876803243172482622243911677890672756802146796484073328556707034027462379660193791983068881653052147911261807619503368065847564707590051855061205808280812397904376183482102465762625673607672948658296156848568275851270716690962962402076973029600005787081955254168433067192610322076632737662301912696979697425646797955083719591725877441954759841601519062239923672791145085517286394678542081392635048659507325287623783425936373626441401643265100823527390343734608821490480665667618467001906166646225812410060078307652282377332335915507215779642190072950098913009497997478502387587721350458717113093508754189280669785421277190578468576911684262197994482197833605046051333713370094553252252312300407011950251552831125792263817042465837792097453376373283990857017603222388021753110452574203443794216635282936600724456895970346160827599106768521906092614041622704414197972819899953528863716486320632833159391449497884761717881725202890784799328210498967282134136873103413870416777586776521857270215336647982290635755713225272725314212488709170342711360063159166749278920603527002521831992227721999320547961449620636553628573976271542946637603746169946131918514848828171182692224021722019182207915339148440174767940914553193481528040560694358616487898130379830304089013466003835193545127661017668799722139894123970578219319171803562750471102449954884410867636798244599276314732163489017462325263434145711325979687889926579950748102283512618424656318704144118341526016042014466484770088732078804189489629770835072484916935519837166922651120801854329045390129316197262687106754635929861485476769032339070455264951424830104778331278533060701141967159766416609504550444403129917006360285618054009995991133085988701703089772236888335504899128882174476084246263335873796656990489438413241313551323626317045508837286570965729636050841661412709359432968017927621930058324425010933901193324980698552700563248566908509260645396439243811402229776018124054130017034876718028578002357758158239304199734820379969692650029054362671668133314667617606827300337820443799461854829740923772528877909373690873918609646348875684802250700503653645782352845118784997461755430654178807750346571094836689205998155297752375422943977177153422723662699913104472737404061484431362059204418513155210841050055967394510550315221361369849581966232517527320659748735727192546641236081875701133646690928140928042366665621505298671247231948517712098928984377718258545132375582066677535771221176302938439493094802066628977196975104127708996828920462288959999831152402331891305512545658744371752642420751470038156747644188175678429790888243542091731704196560351188397598260636606606943248481854804300685172089815619332507617719409523697882590890701048685530458413002012672654835881616244579309818831198549259757697152680201070475955936212343728159941846572166536569825073074506149474924707574589429583805394011963213061179970452621181095021529884056089872664465694579056854739454253490195150435061929904278902339542994169622473012988894572194279919447470068525059761295477114092686519963370662178718735698676763404295071380206291766852889735879269731376752357081679120536878631992145493458356259544335890064481865441322890481354047681379179297380049173949345212982130679419144437864381116446251730720614791045541357428274717205315580456102248808664922257541986959361831153544624676329087690819614861328203445538689054034059644316067339785033580842414440573380009592108596970582036372796188128509976787663411015338880487415480438780912095737043741848244399244685150383103285379481455844633149742393135945508015609425749708999724827815077442768336145040764029415364322012469385203962124046486317856967977861219972830475031868071652874737451908535727287511824513772570624850108027200233991470075622859368118169820449802526251536347165592940049803708988636923105793709859021077876427828394115118952362707662365690348615772345894762168078490609457812354763202735008174174321665732547865161401571197969804588550710456510832866813369511989915057919549700061450320964719775087453079346097659804153911742265368794144789118105550918646176908716178772153667705130877352740857708981902453794333807358566865573024872065793539835623158087336513861048344450047463921978234536311733591808559214161862917077710621931830607447464245462210448175496709008990723208592061581316385703682768098283592279141320845017139977188621499155057344682408040899673722126124606502252561328857100694979556949491047961814208820714543979570286433199784265012289947577223006736490884533321503637710555737302737840796717051287215507741489741540440231583945628841116590095931203962786792230739881400373429516699113202702063601441009119659939917624258045729120081650003002578540624493150419752203652499569126784572721462439674913254387339153248762807083967101459752423367612567714504451179386718198256814796246147255436837908260304636726668829553035547754400122470914993401349564572093255050401844417037939598077598168181555016575672787905743680019331036846202705443286964932972238127693968766102721243642947478480244929485558537767911948970525849407874176254566762575964584830008036636413009235956382945254725901811727226053791071236270776856996147156347676787131368815424061482261651488778328632537119607897832097190664168358385723415351971372091114782680594639180465700062933539667638740266086590120221391456103553166996354819193005744664113326197379174244208706709260076037222095521701966497375561613007227941499080640648831293073329418304936583653635145328847457366570955518993178187814492405406707282922738371769698106998615470468077883309192944828336649895661649630187093647217534227102203510241567825983846361278332518079737894046394898829242350696130650295702015413609349658833181858302431013887610309733503648449208586390939476223037986732052031577987894841943310133758008817024102736978996771427339078665227173416129920196438476303148651850041740597635882459073027497444492930934628038007386080519747501355180785747113443661714988635287020479123764172077508705400922488612904074716331989437708025358526516966054356683355283512110019679443970777773462325394834204374580324223353096931781179477303853737489437370381186800453270685220634989798303563750301756797076214773939659280809386005880103458013088967311876789087310600901788606212694405463035434549430040830906385236579784228438211044578158897659658019806465434102794065723458228760107581587292212514660772772908604408512472496065220850945249432087981472335427408876724821946918920561425187637009635030155938915027541289644393420402412243277146720347030268458620561933575251575943216272480185635855933414843190646772103365270261271456458242427236973846283065784017266483012529764703922303331666615010412269126206436712468489211844651225038262129625274647870517669344143235670470950107432121083650145268336913546983948252492291809858405839420973094769673896552885292502301454487962348113717817316466591097789230429860430492555276881918916271400392295384820918456276081030349710305554055311461151120394325894068690230936572999749248924821011139841358085879078259041605175472995647421711801935225159752883020855728996059563262072590014133226428773651722770369189228675697752307040187465138978043050198831170396021351581525927073396671198640016251029128383342719514194393142934616619536402340474174897470221691367881295544247346431502049666526248378222480076789687886684381676141555252102235325557212377509828694389221847109708848881286044038919433838610251826137013509737118484828524853954151397265145520223040917483348476116158474317346256185223005406648807725593965560902504350653431361594612651895220993468875348091773776139298448931467325854686287406754570861969104636789520138939692565044530777938774560566101631151483390660056994766766399954574727977317406437781248012180518444566042083668789354339944574380983996744768088174570268753626604093476587775327531076210943382963534133132288382950595033397689990438384641144096786092217381833827491875325353932630419248352858512654519963107789952334125540082897688038765694661952675445374922759444971899050839901741823140491803883961685453210985755277571943769713827592008348633428553591912032616820348920196702256336978593014004272659286187208866540606776339725171258843659758779209639108295391618660193905045078314740141161651594622973790798983572964408879822265177857424134635081848249273971497573578509322319345412075393489565406682450506176887814414754211712930384715953943676646060080659407907541042566619508944602391475561677550993151380371070790020139772629912454134692780099332159882084641602309775910955621127364151877543810183660722677971676706631944215645728110894920082565906343972061776475982975381785063354521748291670259679774824802315082323216566488721073737315674355581765581228786994587028296259088626378461772078173283409182656601975594372153912970734372605106812846836316620932000292021605660174110756605291923299283390535533264413781925791595507672784876859921410247560267669750174617947841213731575572339381715656967607117396801436119840563029827251718867684436936696999466968320934163921414317427015317110310895950523115114838591028626170560476496610627907889611842330535832098256500948722939044805292738316726240799000659443437022762741502544758486157935525068574744337387630719203351572163922181710231326059578848291117183689635508040872056779861980965180225593816007521432933411749910481601336440208971331738933027349049400498699722988660832635693426566519201116637457895597142475547374851475341726620978594560371491648720265790322874143268554573392485525868560187074361108291605397021989507106948210734946020480740289247401551067543174633727262410691888664798567662999745912629272211150059636954232008924648854001463899233523143262332401829880528966648573937138737774047660714458580335337141716068482192002078746408785930272446174659900558092607414338562950670644470139024282651978762723859974586624775014395414293907144660655324842083794652248827978513628392143722505816484609079175779189514661995159638436851689118527693598989017341550768533601537067619055118414156001721624515333376866123277548652795860592425233996432588367042757629108228695249462029845667491728856950846274119626306122330480063180665922918725487556572574436165015886026951335685058073292287749613918478585508058496552376939926244458022166566629417293810118087152453797030547846950667763452691054221616159263561276385820221180097832024782055084859386051035362012630844051372676402881919661029361835815907032027043711402451458904823784041271335853663215038982354259326981849428010082261921274389387356667477618871334305339131737986986781198326156427567602192158577937429558247864605564028616304207152173113405217551372013055728700445573318945899116440714314803340616498698770332616209920109889352872047120910112443387884911165272145594442600739562792146142202038149316645975986090708425477405959897317125044459003113236488498197124425990663461435684163144180458383684193007981128309360716632775581808925211074791752556079090335455771965754820151373339981146266215268384780664328593711132554955917205755846397057414255554545772758563875975607881612612852267578177893826725859575435549367772680753146784021126917312073815496220663421483564983383543390730793669910278395844972795768814685805281707461871015798297837143915061756847987430490388810810153585061934412707850112980591619256359163899818161332039353397598273511843542426519113287000160657358689242547608835675646150678568648411122119986177213457920276463804748868215756720398161098020321801064484969245464465782195377400433323300437962185628604488328214345683696905091665722570504666059587489737353749687370542853343030052642536461088339144886183491832082283809207451475250955166753416476759342040645061434384437768548239049234421753370301963327953112121350796853010172985015706205530611424404394505252968197777166761161219154539147896070316571841335889833653901533351418134359369050038874474539399141545319047287210652219093765048110901781110167347306886807151051065078970545523998359942797395945034589695386605324505365064643540457667215026381942916985771633912960218518189326461738440877232397861506416375098305942606868328479173347303007558270105547784106127693297872567290200935330880201732741159870102672868570969702575405171084124435522178334691254400610376350142817010658074200689144809944372785674466350061859371672695062123461429658339060761414684757036010295793655900759177899501343335991457036308141163402846995942050666682984114074030392042076467875409463037686902885254524958965202295904432493377920504628266043570327512457555240082607746063149758319721801915224739506210389269140983625528605298736496502469710228294669244026330225580815863018884446562397275368088254808834558809184725047135613536834030206664664404301278856616093477725174252338129819129190886257544528426165612547712625238664858189711107830805497110706524836598874364618897882825908065061609659928925657651888061459234125409995955595078805906560217170970291758916518609429504873421872525994720833433594396210086424140213872399032867015525643384413155961347187839349898947132242100138106696140805296802413079232208062413236126073945713600256402843271710916985749315820973933806136494301044095391301931794982990160511112841620673995341985642872009799089825959799671096624478182291972183248381108421707068005158446412788675299632655473596147665355782566283853572324136799626857959879231414126281644896697326492994266483514853297089436202304685175471767308825683398787986136662665985252420598688803634187462784777985748742266318847932856288169820063044833451946616429174218303952885230751997248221430323303019418210624608484925263141467134856414655388927924033723535393472825110545920100617084327642847910658515884537822866287547953284810772472549007558087847977408359209199532780171499630479752003261306681343749837388371644807512904011328262377115307736803351088067253914485888009872825599445600120393575449163417406644293780096083705360781450175236738326867349990585431037274076377618616931700040327445459139985308251846621983656641587036835648487836577741498440393346077164654451354062058038514858971754097022369006987749705474621217624982012550383831999562204669078851561825956291986282590149151492719357648179808613333867095571558222212519916957364856819381244265250219477855030937663055589551458884809847956139128509950263384934528647770694777713548982656379800365559822671474616575848411412962878338321423200966833648357574684800592452098680145065177948559815754218106223476821925632661970247798582543428484089462195037463090167470409968825755739673046361192941668680679652343834980300869497943471485938450804031406655801514956885183250585362817559989306024414190063798781072228078142383920599996842598799224163771087093315934312581754482562486201678764539622794487242951487934574159090582260972678562453344543260637372531206491757908680620036799687493234938048062024613301487143183234012430810359798812165177096960238086190422830949987433183340911465085791108112066770096566524465601660461590976384235765170494914524159967635288010700326064839523209006761387013563319681327286473498776391365931811293065776409656487398237954292269169092772135513293370950118249563339332010213752703527755133553510066362259637998295725391996265680966618568306016667214326700803902787991325720512287639619085450149752475814909322193204689127937495044037306226733419240535080446259768363856910763415226185585952650446901712599855537938862707246931210416194340853055564837642800342679527402082682508228380981974655882556480502254477651152966217957969792835998818255755795493967858046444948655282577038376040859903608432975032774113686254657450413078222371925103467285031022985194482155073955706393435700824498660251221849027042493655455152364041416734144303187294243023161296777317070011968608433779573814841603148869842122106557043911951919517887941614085056029118143515921554308029285090028072923294559674087341192486016199430240237452174572973826798417050377952415906454847005271698102257283898395421889228689174275343468045450549955355628780424450872472679183966765259124343505570954350438851317541854483772826636811419920604286701826686647302206980772638782458515245933193418421452100571597781863500981052686442496228628923977306041957803054566251801293335491405999759446033693908128609679221463990915081921114558351190124213646840893626393808065270197124619007148513073644706626274931896519401220551701223043164091113454133100686183159531966047825301161089637857365392276881798956669899659504680141719987310051534395308764565240397371419180780626665904216702751736129028651807524198225963902432728537508150358310492308317338054110557868448856192820137570420903625407313080796096290434925438517324382549316267611080855504180034418040546928312560795294200251761036432839307643466372812894188136503304342492135919661121371820846771601949279283218392367660965436682049131054672569280987505828210157543042436822868218372344859469082253004241409662237270117716331033138350964492782370800598101865958062219681761285270225346875024021124081424893962574981559416835978894348705275229539769327423540029333524515469158951858136319812437627229890260271987912014558170320090640015635815976523830696455632888582412058584199918650953894486228198175780413997483415273226545081805073023841686157684628031237989118151887828254735422606080391022697586820950553164015519126794227964323375126992795054276759621800892008028413115400904461486277943415531648186952180707148680218222570867670434499886830870665951829678725099559353061979988044553633975058459209875890380018934098941550972470284501222678464222965207079215665967100552844565429079069360845576629558636732181030586426883030258635109302013398395539632263489726034490157672640579347882617240014428148126216389041705742177478203595098031694545534839840807938232082907524753105631903730427617966672200722075993720977899412732961388332772948200807574634581464398549996177097202237024288709486244234916616268997239156832311097224243923906366722692097558350140030446351213220064464234596739272789331862955355888153702130178851943734588089708294591489722414340733847237158882978183769888826994700167757496554228709551820574809026309984978770672138130839393409220893174714719044516946079397813689949942625011225362267935914091892637063450900409617416922660001121607270513003006007920985409365848480341504585895498211447656622743422603224659687332724070237270648132304311623670526921446188823174164511115665251454107435072462827784478757251018224364413843160590173271616362248913273104592910757185193206156047548343946368989192919580998550443869916099484913760804579069173883716980578812929700984402916188662088922560360093146887618635030927461889367922917850019885938104036206744328191204610436048697568922789221969985067742199666297442791018944185779509975903145994016812263380696117184628261569619190801927225395418899158736216969140143024650069845524324363106133717928977462849237294428506383582657681881914975008995579860844244585598281519654685761606950703701403772454858777811131260032198947684656675919661474284430373564694884543288631628725298587086684939732481872710536702549225400683203268898461037857489558467713212633653805914426710941911547571514430353960313657268686235748247333721433890764452696630150212506100098044942769480285703878980275481109628468084260249999655890042017572000751058627309800712491722114841392933227063153117283861571930958653075805747911866761116661821334515188537090114504835817528257491440376101117010631753407926257833991112379941559213523569300108538062547405903215561055253567095848503069131347927931261982905261806150428066108709038806946741278969427024522374191625395963551586418600153889040480811814904307242134933330341040950114835456436123807975941536896825406338803310735232395370859812359582153737754006382153757790014744928706640268931648819207305113403548632975686563839082167160257116422191439817243093351539685071632113633682801580846634636597652728084851767355630513540290377904394221526612956692963534507153823075415824306859143526598318256696409234934637361989392097237850042184695001220056731052722667565093545600598068525622913578663373022544674537676561393327746011224203751319779600906309247590587233655793900243998877353876976766545427726697325193977915189076813894770674861587339124472173246485087986517283096948226086921182782384302289637231360222983517721924758749244706336439422004330084109325256137947001680418526286785854830243527719839083910867533399266416274396179885339010165104735748458977799291360809303134886478813721981250618968292079783720492338413498818903788858442002167394419777373762986858246399619674273065502208949397934955986377881083963234822128153975241084243886372997904855530922378515605514307041106505680335831944530504308931377871269847131601993730546565525066019566663749642736715346899963416876101716836554504768242750593080209669688445085160387260577339832982585167178706840535646438002625077527203224982946788774860050499824351135196397085782098745547893618090570230908264600733309104558807210400218976033782459683755203050908302256301905267182342032719614091008190584749905059714014418658063799867855367539755768629641735168779676656076398099253564499040898874044809887203082444931038113776472490771850781432481877880912474045274505340405894403007028807126014185156359957755737184223089103094981678186587822637237178394881369569422002600723278039294514571202146801569804429846008015420526187331407961539473339699310390311664732051883398560781028870723250504014189342205298209012563067262829948629666069235800309921082666354450020335908948084903617043775337842865458169744053473173165956033456462841994033053698325675764617178463909047240624634536955913320586218139846255336861843915075959267809544082491570295975436349057360006504001003473461095206005820398131479886922121132956188893658872183218378997987112193357453806537664055599413398782964924648998526228745813470655109126836647468284933805289012588914209147997231969250239396191199884464269837814714072182779503910680500130980550783572847337415311302315207067346947203375489259336160295028706779416004147022371004196012436554934801487080426709264490145127105671312948723218750411433574372189731440390479101895617745652023969997655031035512519445293875543195781460696344119386987110882535936731235251988479706697195136074840956294238770156244014457866498793876681537904392180968897141146942679467851734678501513281234066328024006218538136639682755061551540724685491170114498387103256252372564752787277172665253826109485900425893505617865003214509236689545390979431329953842326311685687954708376955220701604475826554947828342248915075552314067021056760164659150541065726012907597902485453165410166655143339919606549550193901409286403231654597155440483815824020083739652141629183664574622549669783362810279127573136468532496735014783731205787385867572316114596332707218557453462971257880200834712017029508227053090953146921341721293989702599384837679728969005199447723576321251902472602764994666311515345281385300103710399832041633485144618974263472347644210692343760782139141741329923901726477455313728686733439194996432052034302024690804096081753707356677040456313857077790808641452093152225198413156505639625594560426873712293493317462712628606640085149896215835193515820561693025252461159123950663022297599972469822370925040853740040016784528413709524655290750529021695635180729155142206495599524391022863863005024707162829354277243868566226800197023884067446977296850097914036068491113570092781902786709584155756158780622482194030948584313808196521402565348889726216952413550023098649982790667928603838512906282601617680064466086357559616471024048118165043082353628568693629497023284327460815390139130074839586675901392184228932134445524340567467288371996770614402018676854746889953953863502830819150507491751310678076263172567438302236787846573112404991723106341632753678984086742595473095957084275245018857952451778533866990218326592667135824941686865335861117959418515543723550663515946082640180552640271717913338101561079006940090263365307546872666421005431773603966111307468588869359210973822142990725627544849159391200790127372222773981223487793826010354874778314862432483920150645040672453193230974417415486279216827849858545706182505011801546204273835487024303524710311611886218624022065008035686868008215101425631685604959293520288250243247448805276309095867989594934618615751526419928642438234795022422363819757900590174735654829056463330209846446414532918717833769616642571776140196324048174546495002693153531785854980204802460916194805956827471851903548686067598003778852304901006294387052205727701905241287995498672768141434909029602801662373218233722032280719373649755293968605805939831515679573802268716765314897852492286607953800244824701155456325893164575422853315839719682037644936893158348099847624578594094836059378913741772522085956529015588738935925301810270039074616283547037317772401311837352256157723087295356373329097278035868779888335960101002939790226229558756000347798559819358135365640306783806066919413354318637989573652786801469499849100148997323323096736463038479220362118243876221553087631749293414807016973002577348792586029556322926952872828318340217098443658294208011293186222509860613291259931033575509337011425985426041743168808391746746190113036094571894716701395544560118649611539034162979254178801601748388241172535335814511570647104491815008348686097980207268539201745115907090798532308826708313887995412698399919497660619437135832238331473313010490554222417578325287929870145632232603405059694618630660470801754925837978707031423184206008968177335021864977064117582454897879516756233466323646442899749473389240875775864642840479556596013046547950174040784707546217944168663174835422617456224255834213579133952879987491682542767784818119282507188210619126225809008390469108420307230580629026282536545180252421486452945225797449118345178173913386477828759991789320802805953000300185946826235686564810485129659604022550540814193332843617097572792452865941345063923871106215496924075969016436174204099991841855103858131891673237054119822363847679826890392456465433765320354564829154256438437867331245180063703439099710554286064556818087370468952849385740199120325456572828535159221355683497573877692908195059000148811578879418376822891440409241254762554183703704244219950942366572546028360773973934050180790262365267780049411699321065337300644512483592223566403283032118512427500022447169491592686371618421480277597468438512753252338585114492202454846215733344011040300887957697377699472436297901961471007951886458439045338744875119837496710188467998325301831199260967196554913701078105941736243541226011045599710161580766190689079491805693242384674584841636375927142184944901131078347098095301701371963425769914510639907676417625890338606271455871031880448383912007667519589992179490296859748849046176365122211840620681955635864056191595521974742939778936958821991733461909332693853679005589973033877557180218647761436204435579080247653583522391957416623252140790038026480816746065938016708428687738340910914771326232888391169165538443911436861201797397868968149450651423392482557071117257900340090366952822321219962333250912514475836380668169814184983845675826197147872574476789770187229852536833320640906518088026323445037838015766010262106789921345884117943812756207258994276853422918468773071066515632265980804370639283494765943755509857053019427650814331889602310163487345452577057321738055430422704934819592211028769895179407459697492872845082542373591279333376918098010819497076014619893914818581453690168114063358164160348959850264197533434099670808291099077357509705705369161768904826898125728631140286459732377827151960405634942184933796681432431445493567586661848875015613459787828861274809777267035357899539485158217719336069141135137552871882336064590456200766169747973826481946943741178559602123425471762566915391797174560179791017935417613827171481252365998718809456142067206496794550560459224062075899875008045697958196311191451982544004660267181394395025693419104760828736811115886882623196109959665551305391481019675794925216006892130507535606881575721048089941360605334812406889700100268245801073545931820695292033346764551577408219819588079148365113402851506778977822191481495171499047099392840322544371876266517446567202885817626477646030817680645517622778278281118321687932436477253784786095713037160284889876417119885728359841732606530840053598578050649722994126159747854124967936191885924827071060614288282550465769698716154579362123490959673846493890412209717542101366360383646434244627862709615395532464759532767019264137879065402920661694553602202695250818533563160151373361310770058197981174963584607528514403946601020068797515856818194108526961889679372469789358893293683475298086004160755731091523869755779317866781746725556470463034964583199430433658754475291895248099211129738165664802321311066613358575082887824545300967706994522205596576873149981328482603053058623390635074643784565567228690980855431231653153910410648645044966305046533496607734776231103319042102786809783298629117338156800460147181523076448292873275063877860521757402386048715633750959405262170282816564860759717426845444272181183247318942457270565658827248567686975573095900854691366507737008355574110218887089112685414321318176778428411319205355730156644967605258698493410714692125078893759612938434928663466545152680482730524099955292172602587520547977785254341602386948385829538774839656315602413028599750750765043107408753587273221669148408051656937619649003942401115529227410566651172002965170720704399654253434322871942799626062788489673870313744580626952226911632604218385873906800941976928774892463855337045136168430597855788674719788197880693809152064527458326235418885251866493704390922804110560212537210393282999040244754659920323068361848570055957810058149949950702099532088256158692517098416514758858698131926576381274004080240988775350094340046118442275907783389965957105559583749988908149163224579877284292911360310189602564427537817381956020336216493645340073198707005378095712439063460022844365516231672867909815814191474002337832402898381174007620123718865085866026983264578333575538916465822451104429246000939952105339231064779355345491476027137835955068300123365657354187496455463701642868847508200833987643363671532271961864027240938302372070333177006770764818386895919033784646883124059728407719066304635338863746417539745213943419232722396148432526827351740843579622390686926142785474538838301519302331089384612812762819339469536529085243393491309765089042475019838933288680375250203112150494285737462332804011285833038675828499781037371612043145808033546728734178978386845562026074940565549028661744088726143278415747293537607364076196962950409286328630095420905335583446605721473710067184212543367946292932279823844930088389055872711385431456796622697190580671901017813483685586786073117191667417450567253557349563484341700243850737528813323642333780352801608008362241967807378366481351927945037243175427972465761461007341899002673570407698238005664347508456874366630216750159529014932925910120478341134915197340490290909644920571852703763316977229670299826718839078762122079464564898884707409777230021162597933598105115444952467899781942950062625051431460201733125521290757486838999464520913364534863587787648583841315251831988043542957167866795992395159721171639406294800933115158338229720797290112971418865872226428919033974175312809836687853229549436655773409136028618174089029936224840595002447228896289187062276488254082712803810841803691656729054457620590544512168658569226978442655737955419896070970361057116064856036565569008428244669591377034486018045011609958678361527843093160005748555544909583413024104117051962687436326306867549512686525915809660962941652017836221065381441240625369534565240949338947119431745593564803044097705487297544276499427463890682132198218127332874220528854385828262480420725618409916237176734173805870521059269617251349175545818518637757094197345844406012315869208058951256577325724050347398317260491072225213634152213198305079702171353710047787778846232489855961833577540451691317999517601799832934201795124697361544895625045830060016197960115111012355929027933041131182381822359395631339871701464949800390150908631960910463315365854100397929129778476729090978395903016032398959208217674221142917963550500871545545485708069968120139819442933798388933004096441608712400034032887550225316121470574277625329921470871302690957630352904811205843091236498695167252493930054942326099645457667293933119015206548216375450839332844847138197743569978550262517348932358801123952432909685515459075257669990989441527826234024463855679501981805289273642185738185674906318904126487914696430771469789221371970872783535824124929168315949203436970896369654883710920781925241759012881574175156791375045321802232427847346466634273038408701565237368498420533877758890683420603977942080044544189943114727738803086352104501556459361735192269023238830300432904799264917862118282693816226321115657401543445524498166874735787317743505416427946142395979798534472145680599570877220903862227984018112202738062297895394610380904807333963377922829043056859958560849561833136134982084621742073024429737545975177623947494208578809870052313492137035975916402856900714035372949841972651758314265581937596640727673428664196547528362691609012956296019032109185031827464569778921851375916621649189793801816431281432633120502559343743721685037908555060576861595886261297110947754292840893187791250165326782287192421151341066476441826235586116206710681399512511811305636821185189184023663112359823790062493795597729366648190509814900310009549978994306695204293324464131254638905885004328402843085681769714759032929499353890140139750938902780908017086974835179562483773032757998233517320672238779534272692103855801970292250508613855465809835122807359232042115229173234660880319415868177322317106011866829735173629327809124453324389033268861326455657620137851286655360124920262235427223819195118187389015096939958620094996673606718701904278171757305936090341599774015544317248494088324422978889578113222571470027754961635124064114201553419447368593068037515657797484554431038308782338890001398935191565251313982852393091392741654347404568092617820886296887832549610098254188530894156438904527960003639867775827153249266634418367267433236519082664610278969983589471628951559779001711192100629501233794437323146372626548625383408873735340249419547777530222926659771110272908718585318565656651359121158681859336611012674335063489247026858406643942134386391789844741517232923466637158684568017688569837682053859705444076403349410588134866783064224882539977830111296786098555826307022596215901267672519602385501975741032799630118538342478496912810573913731098529583350528502700832496605360932827743942560352899945552662285336585038008770551785916124667707661907852618333322158055728342302595543661009437049313259697720366829626245994382061886624410096228666741310822816098953792201382391297727185028331188787669768565710463942256789807116642824895177088044763110816635236231319353186774672396725304315092058658726266202957245590088332310080583616144820866356864562184003953345588781101455546137526529549625331421192654281798665072606112620993771662378498060043792092407397788072625231589712558802110863974448536378839538698941027671218255815700544398646426043508437438224952191670375324716295117984198715498201081127433776801811322095246244868501608575530120530623323540170033031308879950166497347365624720547803040671323123145574727118590547740805605501763358624049040469828037430512134011871766841070143510516381947763749595372849053982088364169882096852177303271575084817569173569782887256210888415364771334886504380825399803896287186927060462831746422666149955812842274182172609464524590252815014582688465443681701377128453913889423146898965540861555140680560044406720693874661367238871628121597794050384065516821296681483515338133583462204893298609687917982645444652950443258639738562424088216774868411090063064371978869044633303523781643623525558532938577635417216415825051818592125889993786179500528626313694364354541321471666090752955088662167818590232006667884410419961239023319304307385454035994299625275704138044308680052768424543648019930228579703505036135751317864458169531433004515832803233252876602261229226486565673575547544140500646777369555451622790728892113767062542327807217373144830465989694402214147209507989716195028197694488616093854223946487671631806839110925658698831620976396514057169331532827091369257794430208675920965080262936826343529286275964829507482831340992357652752678026186586866910085063331017196080771709385809866880921276156503124046891118547416968052982592380000685716779644818321459736414545675570527329253432527767211047695635365083595395884645549057091971032415862536970441314260963324706267942487968639672944278763342224891080421678302893381936885203110917179906235099955557545380999436195339703038954158338984490741436273267375409270596362206458651988282518583587274484791307058612427972466648691075219577638450636369491914826117109155455684141622580971527935352280049868950963879612106166202397714025502785022543720599110538151062106286615683504476760890052839158707214010147304518940671774692581176190750866373022356795979582170458438885043261122641358600769939586926955631900561511490225868733798158947750469614155416548738592441348134535052823392734644791907044307738636236289609782163119218642854576547420710323336048669501712020026833427191787093139819048587840885121012648266220569371342840988268672010915714956963073094123961636507273310459882497583880897836146157302333620640243246029217159896049676653630711954842836049974818422610061130089704180460176395142851030614137947617387218734481278985689440060608838347452965761503869915378885707524257447885653508266810617312697655825503756153843713879998366844306861711512800322577331893323510392830024834703255235994348698501456476132135225295522745742396407585041481649504845834175824236117157026351970271105152711257741054118925721676821047431977696122936694631485241093214651129059365135475817252374351276646147310082392250761408586803136908337332831964920491478645348099839173280000621754303903880300033826618536163746990469629698493128327405414921273867933647963084185884925436202638509160596919373951457942283964869673210408502285100745346033269972921347693103631175467502103022688249593103299581067395627280085495867351008210578439357262233146387228401070063233093814675891415725263014106786001275839105874777123096911256515610868035562892198604736751266207001487011716979026674122991710154418354603428550230890675641425798915133139027378196983812401288569361858060232529147596918547379938002418018377427278397844353041852534759123707396692516302143299162194753110902543860012841828061099369602000099699552947165840662172219030804871364816696818107181133149812033441298169016283269314880870490153601369499664794837875905932441230930145036399827395636601222751401667436705443551069562530080742973736202106043365405686363366593744614445551632842829077917770270244838399817753666653096860577709314729416161565801766392098109472880597209001206783904289125417669240286760536115655910733050138495836882008388504480951515130262588049493126428770373861556485226172191557352273954523266822832342037690294619213604285328158349245109185625437539961077549628509723116739909400953162119156502816286977321020239389133393039363864975216910751047464029777842943383562168112959012768316986680385841573535399289759814589746230404054973796164262894242717998461075749196192467215547499889928878834947623369448367106307221483890487229115175749971091850173145502186127490148030761203995496203586007312572708595460093221704953506135816410643347229256731024827404369290554793426111332422652414831180663461983350453975443564845950763198072332304841405296925860703677866179858520309655542673473220854364309957525489498878448474776015159698503098499372440392799093898603458686420699772892483050064023886307937454529207999519045979758058010011264802610214580164163172436291275233311503292904700951006178954916918880764581838448971410022976938516364640480933747618762305672293929689334570708100367624553714198290934727681667549103187109747830686286626358199386271787905949503932112778033185565168043896669790772829912494914851054747888486309736272253363011551674495948338509204637991957178834183097759691696647846103077437179693328252935508874117566523968416382890903406915607359512810757373862806858800534765657343952073970113793593703650206365802095097513198867465927951068813254837664112000751682995570260543511386343917151953299696212958674810339029782273198048804753063229827530153488582504059791028039907857393894518361026630961239079452102802882701636582034525766233556943197063308539773101594366907119034960636253109191135572135764495422724211230173077769819367346407972277804632561709026569576389491031023945057712406030066399361597478918207863183025781516695034828768848748578481649068278085525857419457771437250839006882220218484297528183639650018683383344534714699176662344481629162823133861181014948477191337744295511522574984099274285077458891068305411061469933539824496932658627413076638944343718891218214874741999189616398659876354219238251252098959186583090718428644439040886546854767810707825070751740485800497796680620078568121791393023117054776905301509843173433356545547987537507847363036503247753914969661297335318169762898961656150390423482476611666198643551211066257245603850247994704770955224998029061129996536538010230803299276969221999644216975988288021268005008776737294143576717907459696374166370834059300465026245131404139043554596312316597393204637231558834779893643167601983578131338746281164865522178778025708709135181427816967493783235839162682817356919774828025067032891267784391522187085252766909957915886890357709988278441290829220073503062965837747084146950087400676032240632289222261547496753239680040487830495862376091370321813836278106639300791483655017413555643542112472931599200293856479551300728965945880560946063746357525828959755767027449649042980658158222496083165151196383464533866832136472435591337902756299458553005334156919275417254691888538038779424712694044520222280306245313940043366816195108166741468485318864426734507794382928287491503054490120757969052983397405127741681717058507657449378809883365539932376779740992560488387071219669350732685604387069194116760598820322828300619725849526700265104762026751275937128880636254307816581689175745566750512715067994299923186136963301204126248804992414416649406737588559907251130898844858496356150043975368263855807008374274833933366610271072266983700726856218241354595112820477993198583142547589249210022029279850211595205290538239499733964549356067626044189807249767689603865431489022316380336631688906536803266599866351410861572608370620311382695258966772319637240381478474858765544443369449624352323577158275156816460280255967244026315228813146873563286677756119638218345690449764078874568552843189985396368701138929276386942826445966724862240516320129334693038225178535838838987083985940851824392583621991687591874730848276982921344255896605490058758170050672163244548995413227632521511520861946599298735980393988494776936300748132143630815797021235523711393721636354053455052105894630275414977320836214679805560837596216540838223978368351034383606422387598626395114302939907350499804390836354644381032137412870253792750098809840790886695432735616041874908881496538616847522380376183640487284786159214245463861594775943663814504402714477173050424504437611517872346127701718499279285590234215291570039183901002149974766091063839917534174503617450514682520256398426837683013443218146670848484477076599013538495054211240602861431064493312518263086755767248899678714652368189486414569689517413157103665661164543228202775997490082462326912502008484495360749589040226414010056173877229917727763160591839296152086264624203543962147167905903825979517764097016721717146257281100630772294813443669965648540204175784036204787611571548877750091156628794344625655544490852367830393287979476154532921686306908385423151686421557516069286543887674669317543986390897648883280859502903851846222782689811472472685701200934378648632221716440151687783432276704275125673753930964259335607737946230686107509176086290825293684753691639697371850953539725671700042848418170361821363761424397500759122124920738666562366137599681128448634066747441060913873274287192279199010992573472123633414428565247954970523203178748633918181152324706602332489107401620994277797882595905037146777713477154259323035558203754006469139579131676209247352971195525422704349476711534168176435333840243670298822103213312150975236462157837246888666007574935084162621901548785455766776616101138497740596526265351454918181558753095825449787502680751092767230498939386951653724817851484462635292181433081508734578561342487717883219721362870967777575433787360394496608619054266044441343034625831004438079326140010106736458028664429786135614258141081866404192447001912487491822865193375287816633615745181748182473467600483894361572196136741060046320479058839916705032712421945385422751192804630975119724014158762617556462480629088920072814025781212760448894557323482164578467438980606932547419800707024525856798537510046000159404084223382200346853503402774318107591287210117985529890767189644787747106293020900887089234262669905734778523110796540843937223893338687711008022098617234583552043177591939538814938827415081887894299568897312702920208276243239155954751331174024418842730808385011451079807672606985322794182105782445647510500892028293055482335326400095203712247036995328703967258327645926480160467962558541872231679156389437467817205431416818924764812383516847371334210741859353067456223217203768902322223126807750752760019441335350852611165538987281556321838032625602574106851647033559143373964211880771450631971925860889292961485374018895192189150488425305120983807824586531438878647432874380498651533679933410351256439601521305622954307189568614110620577011663105191500628670712557065120270542888991061181007317914396685800928182735582635338116874328563685786832258026669938527454154554113659697597475277427479279090458410001327242269930356033007448033657990996773492203877746552064215076117437489665151455519221662073548976020432012356547146359497250424204015966169176762446328019680498709473471274829033375040322597393892471138032705227707146677341258489936043596343572899945896871000352487033068229878121868116360643696715389994979180760847822602959264779452912545770336086762260816817856484965804960622563524332881982767902512974825901433885476802213838805980925690743914181314610444238736052590541887208723748059554192762535205135454389854189558828244927928088870122138331945048243385174291274547839135430289686767261890724420037336192356365178852707453271336187540139294438173020736743896956246546185177125564870441160434699682830176572587253669295805452196941942862859102942726840765132887788877193000996725420669452484139283864688299854258464901034078341914157284731766481426118988084322165652707506214353013774413770983324678529964744259184833961789240890957302362847439106667816650854705676582882610280617993132829669950097111738566495342442350251375908027836121248211674973870490823963546452362616489021595179258590248513934170522475325044253448419099176800365273071067435312080158483782512378772943420066653901743273339057635801271626575850935990212929827157778958147297272327258551965745153336026184889207361022780949596900638661523204297352065014838295870172096986778355814747399571104508392025758880478430606928365444804952638705696408973678118996042113215465015186348091936903019427191125417765439478151108480114373477768827085567316192489586623400633933585740508412994122145137093936455447344513506006529186937750776080422791796271900656625502663332605262528249851240232315596980208861723758664916609391273132558992400087178954517505273141191226406108602809041901681901719045830314615384617664851835799822571382566338620371744214911181040309631774172637206442415980691157156613676650970355187715382266264653435167963713171322726909209356909888370845592937862319353038185804167733195265918339415872140661127337903312796563714030449263860013538881193742464245678670406805339901772800095211499127720948888556697106806242675177908877950443349805136202268827779146601115009841880522006057817755745751215761076478391740766489510895273655082516103231041874723659191850472802509601058392383933962318780299713666784611628370268044274747622994260283224338380762429380509720277512205521991163427699204621179624470386992076001973319432002165800698188556153838605590309942138709599506474978094799695422063767021061170675961602036588184945097719297334310452387315655372955579218532189854601362792701991258889155184388075353255293135924503205555263777890203543312831450431680311118654625258891138198030729202444519247139193749973505778974820121365298483659986918206072569933627585431956413489400862460000982075102328554362999842631670411234667368691227838769862792918099990362972857832644564511999761144787740247625606907997511877506116748297360104842088989649557629047241623733269802497778886598990421883068644525381591676493901999270698156404045082418404192379480490036886201224196210326269017696253233127925829299876585890319437415713235127649195356793094458185436586219807644862955000916962615139151297065065028793181148742700085428007939542145093834191402652233813296535056797113345664860448079120995676921387283153843649496264047108354347081329181667738455397092692180089301999715515435950701828532671079040800500497407181917338494444324007327647571397009829845365707368527849502773667375026945010905167146209242025668765542856337521286915353856120671266668486889337397609652668220131123671044866402174698977783866049819252423629761183234558833611711716800409480865376348473183241122708252796920208024349985361388833629209469421886966980302787444267722969093092569415289176473326271352551598525417188437437117483301750873273787650610267011982907215681019436994747033842457574195250581989596982327080766075497512092568218022917200560138135679873856073306356711347717053345798829879873267540905541941719455349394832925693792487587854160969970451638534983226113896919549073488067617075722931777033758958378132061934300086148606590289168798314685139831834653356787912075337873054137660700936985058022476973255568680892117634902966399455287053681817338393966795067572076018462829014546005908130924079024583483762455969574740772252538952259891281431018481673464825973673562787007986404513838942060396565885759062145678745067762116045130020732523659546823928251228038592689338706320032037150391817333385161154001658807089949517948452710129614151802403508536274087581600263542091606182890363875004280002879925556274372919414004043644497980096982536690289972471074135111834483821083899795088160979121417158714883315537875621374930711382314876728305205146284498176016735818280290884898662568752245664778448222371099162099986377564520497432590397537937619063969527928472931681370127967017465016073728381560391253923651295925992167962185269431986186748158241642584872443628596477135298949708735519663400744071094817436159706000923242600134017961425921590380876980519268559718814128607470574350972600409858389577596708523699134972825228382645526727000634728621304012940495809970577595385659866240204256815433122002942461378925454478833068510862396810632561944264297458910282729045199411931654871171830650026328811111575267420361070296753788759133281169741567498331556519113569749154011443817449791292544067032446951571207859995835864778745881056201749268073885519996333296497838408483624149782899792069504764013198771281490841274712232987205393444601478926863632158146715467241381049995634026601373240318499390599664834839390820946263853837368639384843636500885444874840434166727720644075980036067540742285285187395188377554544820259198978201527432866067200665628135915974761649785423294389724787327654071689433354039741643067357391082742841339145731201445326403080612533735897792735646626023072981232392676685252812076394444459619261476920998236588937202047704374980935340377046331338286837215236341762652498712286312845618239427871118663195180135646767106034948628967282713420178253231137215049388830102365486922298015980389180534053822668487478462870070884709430076057900308436782839946495369925853361446226129353703134726991574959583661192255584593869172327901887911967432158902512841183497906959124239298284446224705863820861800629041916183734215462890456310999424940733555903297388364577521472192842332041397774925130372504626496292448947602283706343502107067479485242253101059520159264147038121122565460763691925271195035944643554841003541405730187937028683291880394438959704161364560490520290814167066134634678145469403364928467085870087323788337534513898179219917248062355568753070477526991940698044661251154297897928192202047793695063745330107401401441586306029652897904877219603664121200197815774116342228307519051970053353381080739291416892290943030006145372746960026761896948251639684403555440755910454043723092294841743865907200803962660504515287720958660979626512309848095714418597486747980860431546546533104131673321083113417259996900489997658029621905704104399522494087489541087942454290487623862246530295282052926980216168518841468038632576811272646111121510608298718603649035699254735977964473354479295281928103522421185886374329795564685088364144874730556246111175420003035639207074313239888622761778078743662198952767144298752298224941080005526744713123138684409801246944499766497902473533108628219406981002428376784866395946240089500015605973749331955485547979841075449976054225806792755214726301870068008549962249390404163586714702042713679900488375873263975467495211461916737035172881320912092531332313884312604557869607627080631441732810232867571515648977710083265066349049929407773792198292892538505613335469983972639756335031613306055196677161655147214674558895384773724024402095364766480054257458709308621301535211809575765445096995954165170485436892210815960806445830047347242118925971758041811388331016455906499193747476360441543320883873300823331925417335434641779321131263036517669156267624329823922474151069781252615781195412000578376625956869131521261101863439469391916888923949889072712251879917460624691326652230895701109442419483355828680271676581525332816018367189688313681519015133471793451010933837648575123900965722468093153325894453981454876435997451592947267929904669490286092365545853084599103175769829103401716581517700541017590516590314980446164949494166006441427139914242829817499094310605452994698648230652887236332492215286452150978141827594633761134638160932130017771589690123262378325708521353168371518357531551964733591967290195895156495390794587439212073828681095790136568586577157938859886362705717104845526452828499885361945134721536131581195671335980261817552589269523755404265344605151348370904211027777431111359641884731273240507632675570219266309103715490417091907540885762306129002619543571600893623479775467238374640789508268744361591879746864433853398574334967574160275272536055747872377183567910946572974850169556292407022667197811274408258323134600699381192100211527888340982727983957258742569043865926931568111495105513550920902276481260145571494761796521279695401498261929788770375795935759554665498978695568088882033968577507962205296825377103666849290478332306041476387322104362809443451095033817630405403251080503566908813577649622232526083182157484398029003269926445455892328821283778272698332451845271127722420835937458458315030717296814695763785065031079945458217144032220311406208626457410986924833843791595818842666409259528146584920027556374221455810331687465220873304499937694087862852219895480439166152809877481189733014550569300426740738429578748308268021866056835118044192936469738773999723427374837921675239616138296699048479569296310220112732478535013974761840377013989974603433126979858839401122656755621555874765176661449840787164604460927307910619047292354220677922918864315117573912032622597751299979467879131594445662623754135615459475099698737031080962180658288809193842854493757498433718446918379600620906249949257941667317259137553620844059094210446924551796747425132619128972407349752689165103427962161332218597679992926983583539661204346018785646308437309649603313394380147119795060114781353736211389007902399074962042341612867466187687965489482098258556760958948126617175050981676682672621995803341444917950692019672154703190278473482991091088668611279556430737819263935707696404018900567954925606182760514846982173990942881593505768594804041029842165789851639028328317186826395229070786851343227799314123460407373190026860347959649596206876616575603391245875307604171048436238432016731904011682497937801935910790358364087296175189055975659135030641903491040216488224572136259549763007745075006894056739793715581561471407835069225523731277830595387640616701961528131240726597961014278020444187530849777840924552725346465183327460933732744681858724265713365087945190287375287555425876136338745157872343991433169307898268447188957157581839506181820358260376741268244805810500400601552186662014085693365686491773041030009882107780691083444549178692417769487111699599146887235749591667939925705988904199272637186350144971122622142450105549358807671473296767069673981101440269716919947798149658323857514986831012670166837110715583566133131454011569693939001241609843575721261083608507994693428948001460777734964798261320428377304858000873896856081357150478822638022262633502592696664458659143371670404824144018951156044469977456202505939231805940715156472683929183183991476170308597534222935985816348503148329469941507147066085993495040954266227778818717492166446680920961969287330916591778510199262657598750474373132685427905909216965652324259121640632207302335832333302097355504112667418861126657110969082076298418830666649707053011763039458090201201603490272711757971470968836897098917297634635629706789569892909153691403472810524504283175689520794741598797083798620608158457076517968381092550953853954415620871883658836077394110424952703682886024527113601801612356367419028622281285507430277329635942100048034968195466763231811506007247016351797881256430210421121673569377346826366864425367880211889121192211702372244442322763532254530375302698759758137596674068789542948144540589158074907590087697410166584095459596743626024992215288385782677004973793551056528359793209469626918232406663138584001872295020389741012062897013728885051075114409920883664577533786684336665182768233622698951159368389906922102369604205582956787073836311648451890581895342742985439803951171146529756150526639159917210064302147908867690351197419196245965005149248681277305449929827555823034398857371252874437424725661124143938896638133486346287522840285893938962728253351419992912570214371610419704991838775980278584902963154144664473175546290910303292703826000926759178660671264174994578461439838108844504572770125346519512898100629460880020542692408407912866491538571030515801072914818361735054560374987849984672874441360700129130114471239414380042361480787906307367811142787077240101399441615572123381575669469111635116424460064229412202618428378221286351044958804467531861102096959414825320755377434668217672467454697576970758185594664891382057665230217439724013335876352940864816266659323480100224376799318504045774160902717033996981840237521571339390087780617268202953423439680313240825944841633332619133199910297460258379363626475469749055853108144171449717861396866013460982407904386533083587134467868122967325572395966412883086582332450119853633805057992694857426029731592628198181177410490739928215232612463279436629549867548324809766042722230871183911662282872491189061510571073578885263591395673615688906966035965219636696962947278971690653173205621313749004941997662315159020951028447400304848443162818748242169119133247016532245903703050627504755943403856034823578554402453530848429528450296428667999420138728000531661501586371495632362427376789197520405612168375035366749218824544764078405693055924618484925676710802817120876684201445948645813923143726196772313873235779433331551314634588957894090512708283602185226034282670945102672808048221773643309483711172294748067136366112623442032078548277015390188901754152287696075007012914025683219904036255315167333099614162888540003133217355846834029617494080143737651095311422707034376900710599034580742203323241674575521901578739210900674592836702767389582485844244236387486992608742831682738169914166394234158193504276704937875349521423385364365102898033306637048041874195034076356841171271030558081532522800119674121808247364183915981556979132202593932986543535179246145609167990032717832545323565988540437478150877272162760524458160658577277690579140803370406495155334550912983396480484564159857632107385281532721451810180087752231682651127362396914162567740901362028786095847498230987786261934474589328825937162754105097720745646042349772060271425323503486153322551071420472850229087343930511548626622513243044902407659669583206814006626669869366958413556623031140087005508727494091182268305520396058109402484979767175965761365983000156161255978370279131580556543078347402132865387074341066555256276462056741617773793556712047763200232953921244234299521096437071032938932469254669816686934801141059264418164000721124732081503686986111894521507228059557849521385883540072810412908710090918016441447275162102890198308247335726582535139854086172835983964921907656861609716211684540268182442237881560605410946439029926867984868490335727260224591776303120684820929628811946330445697151476227571312140860009614732423231270606388598784179263915821524821624937551475907272981404978354590578629085343668667809268368893425261430601739168601841739906554986101633855614932323290461334642014403785836581733268901497864574256949925717834670294935882080403893458782347257261092595218026313200420215322710458127226967678134421157726509630489371175925943256158255400305375048956200540098818588520805796337734915110020214800053245343964696792606096729320341473853917171547648765852604695688631535428438430382737702177004794508246986860684969764924112259943548061695195607392248415242812786105021032938597871002607290798421964482933103012815616183215310971720796805857987901321856646236491932976605751537155009026233968054240533375552468306442346105247505308354674689872211758515289636717440712764619707927016964784294335335747289338846058455474468850059379589755200922904208854264664053929951479501278604835972033044039694706713248119393012147796874822721583444254106051938748313358012605727800538448863910843650090020004713400331135360243866192318544801273352308532554576703184195736523977856661537085422838214973870765772181398748852698842554600843374840519272485014259161813557110376339667980699865249380021034247960408596965636926765969086335315483189476448028095131888178001575026752722110568947367058335283467275341266038017460386259534293984037329954424219035257114320958979013389167634354654421170410326221759388751018747202394208693570197854491715143017299818638037518978638923674456824835176562150546207469996674152963679327687343825760711461830538070820106186203811687847606965959092346862286734733290355571967666954270775120135851369051959931391402083084538873020546341325271141974596094227100605253879012943870187167175407919073472593948535789781826136773039210861612603273479071899054033770246020600254069725966416961127676815242632735728188039249515883855619829297896275573451079866679604756508093926361525315688068165055669702769582585975563732003782895458914063499620523436524898700145363172329851058345032420366116697760856249519120208473933875078726204327436271285370402056426979202078663648021406050080998242242961379310718146942964045487561574417409870723015241609816982200851242627955005828348085251574328263933787060995763909345614417190247678171118941983517218611310416707698902541403423344558776699154225895827172431923611211434973480935752348754421875478856105640923919549758826675965057645572090007877544284454375561349070102640434754172533462714012931116300375934716988607031206990455799455632700282762597655689861424755147299225295718263101002884571529415313482197935006641156036290794461579028933956122681231851154245977829188703910830486944972790541763029426115012581997481840193516896781581057269623759971859572699473394983165411299489533632667445529084221390641971355033395923330303610210635512868545801638102805167443812196624629577333738187620915279263572739340835036178593856221236040977452255141536069176951648632025097136246112394217286525908358871355339835245657301886890051221477810204626209062636401647580310408469242346917266244576267307748298228896770556591410851622922913739559289105806963221701152688467020577607415779042340639893232929386607945568759113858237889030596647296127498317860356053863050418695981721611999451129837928102663280370327658503370644205996898174645711343193161372230401660709683674632982939443275965204035081739959511637873975083347048475897014878130375419589946874776025097128204390017655920515087381478975439459880561561953851331983567891444465988904416917208905527628840301762869696265870094213510145801083101127638364364778552167742474407351271403337630509524991988848038449827944318246250481144915802110507766590943521916477777370458688045232101076748399593961884438519416345935627018789355273285698277964525822238734644359741016370686135296182501230371989175562874221208983514088476286807828224668648167601337202999501598747726216495984140108431565751802028466653335971617650507603483680591276844754137433016292523197139809597253777336957821522575879859167478477918541245919401468688549457822869941792738443007705149359694368981925791123895890171906623097130467957352971537099518437873796484271580996899170530268434349801382341864156016294798631305810429184104607110288769238718922120848111080499264547187933082442801271587185878749921699485645013644487070309775405694664776599142390403314831938743198193953941803230337644030404493190844622314702628778033765331241072701144562613886930919305087952196774178519767226068447557380441541640758895598337347791805883465450264882003368592168386725582251914485614398605120474130984845541029746298922144315021530407722452376584533642409446608409763465333542021267023472521174962969847505826302314389825090984409394661622657446020495783015899692364223621906542262955540069082261051460014148396468674268662118019849181195565576713486563649115139658015543166517793842483502113369327685528174803061910976340608498872937471637954483394012759488895600342673965736008286057871180631936006530541479595006529983191377913565728578359562247056462841263991502849722899529664075734086265471958583037291329679600862128739051946327829927104005900816371083795435288553419482755701266458172749650414663614545828519335030227426852096236175066058685788009826347481108247630061039638365548798727616317854244279016795313790623055653654230853753865089628534094138745379535322185819494874502627172950198807631000047397700574380493356784090414529880050178216072023136829174408627303205762990728361168162377648101662111665688400854256597375560657633555318888968370528076219774816350927224933657153298231005754011261083019526091730651054891843320950728034061506093495375723105942689051241940650774029090778714607616461023479952694681524963107361115767514412669502173469896709115837873327247463807862300046713809176860956253326873040855714274568964759718150322647096062512376486041695850670793568435370499034161242317824120368604541198004165108292147465705494873511244006130873816843462126750159016727005870859338579473320903280483389383248710901683483581749681488404099651332506157788234890015746470498201672478216368324175986603313017360037202772141924301819439982355534286888874481559751915033311967550067203441546127759641027733163135846745021654199494960314772374153850646902478317050916997697954894963821916376987525112590307584952636109107217633839175411251120583270180776507253275122216963180206620592172544304759747794174756363068198681310526316003576018511293063940189221750406124496907546427904475176362716311511972143046545696246933835938366951303427050917954051089322455487736214628482370124860649997820031558559198714742546685730424815547977384956849725439651950729172284244523826618897736629555740560261853505998811472971336335387083074531243221979039679423924502058122888089751694216631455868244214204586320222085250599793469263737275278468765721773390288345232567216868457029424191294031002628952954716769258227787512349407486943324191811856751282677765161342470857483666187638213456683604327418596933629837280334352010845396186052723103542484364003443842552360249515660827132684503973757633675200882761403088811344803432494718426030520744862218296855593209525495935583724275373698713015929472573477950808809231786293433834945085446512845783176229746124848316574505239395470029896471152130360653286977261979602284803188333568211719695565303543890094910241005448871732952367684427418483785399529112114041759444282479673687660901361922307401096533595609907434742395214141590055553081553275942779694789581478121843175017348717890167734096570671166419337230264690997352658659583140954280875933609644124287593186141535577048541861822416322674993240208782444406777518525630072967364440805085253641598877431036345940212209259664917878084693796803929816746548334999465464935806588749869169484612302578823659615348498513816627718497434236588992272602409492733073273696023686091345362455147806550905817835847434937085047556553691227532813014671326637245221391890060146783361199267421431356322839897684924866586768501642245885934432401451396619421508435044682744533432145283879166374713830439807628637965023850492387786676825810098349319390154547509419054903101538873318834381010348216772554278506511375660572171499742593766207794903507815359329529396485592585788003881337460197908581950578102967716888529372792799071766137241081207562664118039976080784066316194827686129433558969549023684920555369730394297917194126289191437557346523644183624919566098589300813422858433764202029529384249603092145708320445360405500977794543784271183889087041805456725478753979765010878845410896523158279367566919700869785643513492143797886117544802376069090318000876207832749070525137118176969988139397912001790627905784627473776539439193299777747725691942277701742251609367852173786381913078019086894564571011709862029942245732086538032154167723042410113037284046614341076480115469865677515080478823106588565763855370054958163560645969240574629683675553703225756992913446525949241930875881884149347307600544953533204354074727462043914368472471519693697243142612677427326321557060742487331024388783618308267526650743029623152465805085738911612569174848481229730330457478690196009721932313020267541285820215261001659175406500727910783518517475811373567801127843713228733322186941455106475867207571986625423480800264475489129231897295430062871351038005331684385876141534151916145982064671959984878529419011617558679455869099397517339805581159461000094739208400796702915136081858175995485152373418142616504238344592072076067920458604774831747419187151919249668437809775018037571939301209796146942350844835120691238573811951466694873790796907326698121946535916413546521746385178947536397191093323772979709058397147545312336989482970995099569846100761917179832021233011261846582846234519666189307406064238758992348770575166291375930858669117973287030970198691155686825264120007662758132278509238410981918378910981707157543374384290416937101144835746421570719154599174766175088332218010565727481614219752708675585543756998938175415208668866241663622455631835069314711847348316845979132676209191843935410878148193371987530364073927998621240049585522353625354073481915489395982029809765677603303395376864224626666028447805514875487858553179277135153860515711414617083627502715895422894158275303656383063525958380400896703975143392524909300789621369237609272304588960358744381516507118809062126411208011928211919270830820976529997224631788310755655274445676964576121414837865332558692885174691750712508838855791473347424106039145843751138388001221956214777432376810104773408110517310840237622745224827122817192144188196463292901389367350591870756338215721465403277862930550879450149706763082857195894807602807004100534012277295604946413461547082888997919106287238005908688710898572053536855063742535216079955164644862190901439082111503097258266942191130894785934106776556224165425803095313213402250075696966300527482226959754279556276893511212468646730972849206143255053311470959353134100438650359339524244760231268659539832847895671524293235413739063563561293182635438124143291831060741854506404347907142137738179260435851530544842961266110356925790617905078363339439960132085888325237245463234622366569686877345530790231038980361682450199809211950529693203700118503255465795943597897600432612287341272726036948098862609425904967535468369146550482508595447737636514579110856799605268006251123517920587873838593160231866123810066078998948987871496714683614744777476424037682607198705337830545383646992015837121415885786431663320449201167578863186870930914652822882451712636540556618147700491753907768804334129988995355258346167330440395475833228955157327727087792923120103983509149436209964152154132006498819341521644984637650434789984795510374423998485289459024128774015808179517315799139821245464921174267282592523303329513091909689317371914772904504682037597028593790388512971931880189032299474263861627003855415069002604315048099883758566922968340671138210003706201735756153312502786303239558874136163641373369338437708822691525756546748821052350595611623934639799209765849829993929633109463687845800462189762710452827643287376322756847137469669742238729674714789899943999860258816915179422962853094667831825879698485915387545552119064114447348477520067029982424345825460500174633974876232891547425579357084950924637037345180895629613920470114174896117614177455315270977473034788500078926086888144848709236199286933887965391776204427070643557934365927092493742925030658413833652068309540791781414473466871066338887856862307786563275046322380106353528073638877645704151457120760331670667872872431520585308412526983337683157303408635590053230837161937161690667195708847429897428016895530452628212186932505602289114707436090081851945340014043086806392593310501220684224595751970887996637621764122945957264696497515894030516744059232203994594944614410734004018336779902988533185062690990694528647730889663538770615276059096619121657104567330007242338774413252943256575969136760381873198189934078133500056608633638203721006533183698204824477376387083590746615347622661254202929031644823346105229290675547194928578516311680006407917637768152225781324308217323350109550782104362824359316843018148211263183891702094157868842133735526686005959335896739168250590315596997009961699662585581692383630487639261946784532364896273836442786842284013569389854827185374643492494870524078939877110672299579058852365708327592941231803959535657915457945351013174111765879039646821098820099198293087147839020209794119200107700167931383348863218395500889291182151857238157499967653671674155096276499025060224853605377746880843604623728663238359424242063172806945893682022613450484166744254663377538687824026919647466798498526995994591084670594544048123551072779521690386397763822255024505686370484301803727854593679978470543424869975506717180136074139698108489260517014219385732610522887406904307000602000001783534127695041569015427941403852899319819374911260595074770540674492493531551029230863143797710817057210664114808261391360702551132467057402248224175196771636712095990367746314032062848753115821237542061813092875265997636981110345313710412742272316675255019841043001830726352976692724623497122404142400947450801714552506587316847927947347238040903260540136963688670612617942233744521899821771784980220804538448598425621977060096220641776807263876057023259916667565595605958317160443415698033009624590624371009983453301237609680739699090983209998912695840057261353124324948544533334099009764506534308376439641255261417350734960021376763991173148938311555873526259532549222572279552587492750233551521051832347020328342536115468181442111798235804392946984434028096598976566628968265628238058145478794026616998352826657345559099545522806482871611414984307265521044084506258265139398416940836561427992836056811669041806197975795653642006715040389956114628280731845633824450540061059240017248774808247955406491368016174754302052769907824702351931757979224421567871034585913442594859200127384080495980210276697542976884511251331190227290125375250549420529075770116953060362145488003256556525351062654795265606410306800894309347549404933727108788386120572909286952601277241305510053485937021132522344508778186615214651807581421743237779303917550200210477288535685671775858801286101305192267726307482722829653344392394445256607351404550907566710403946202536903241101335724978488946700890269553114621480385416275152731867227146951683360316860973871808890777385844053989630347536400615005504338008000137674315939628943592849431069301955755630513616325472718864043678376586246076671470493891459259082897897679032178413171908070381762628318474742809717485702613911719511373166507191230254638053241852580052805071044926083342906088510444661858819413560455610447743360644100657681470745508673516950376727444070136961021139523591311800184204065155962519544527619623970942176074806841327703340934792318363416593852088640178839934283634131609192752147601088249428084941770826944458540738221253178099517165208108286019562346398225633864128384597817949516677450005757092175103889840711358115870786444452383036108275635057668289591164168291706221741609827893059333881449621558117259375045644357711716700533550637455771622435652439540742988052253531849402484572914656263205483048170978832204628614808572726988276926988592120360487731523031052511634154026302633310529334004374563674276386737077103800104324877327512411611907848830600863999296930575694480030468501435989771348519965653545402406251738468126651091276920968859419163248457393338329916614167385670324075391723155704102014624927476289039430282327877710341994194468693057505317920439604275174370174245565391840037325508110384056220740290865397985266870767119670254751402649284096375045335596067868928501782163149801102935984176594569047937939327724625147935123590848659828964060450959705269068745805391588691790448854302267338973079152068225314140068019191754252070219123847527886211039138228109296422784762326390007679402995818436155130251403266596672456909285263833472110968230018673422081212430813742393322422248529509772480816014606283136463009304069803712650722187412772706434598451303940942602621241559779520594698705389540774403122594000018827600484018392235773538174723769796516650974981673893848782939854511413066473054929063577648528128299989276523381253398168338874227235991227086967609464410635912425950357399568592534072742692423881194476527633226193218470600227035612213222922619635546052049420168340938800975961258878393679081798162086877061933230908411394854432979865746266604977270601288310039394912195635060143099277871984210941158080264058858480404317563581390715348949921577837423188446140520040743133784956924336696271610737851978602075063978844697374279295916447129703698903926011698102896903736027730746738367925421426290829718761921680909376976019837902524036136491782593707395158890004308861136567691629415413121503458153437993334652690847669721139104276993236691080496389149079821215205197857149938159057674468438270037732161294795488459401124115403468040937025253920417894357795209758410445302495605112871494370743431514476140857842099082508192125125259427598322104135895159851569086465314039747915731212575889154202672573774238848587782885912516824913993569300910790236497027059890997289521402117798787130656912775238419497643667526416750493770012254720749205664726759193688418240153389715890230141047365519211623964827370873597706061860757430923936439747098851837552862168646565122562237873003449935803548624475161046590075950420230918231312550063520146868789193750981614040892987392895296150136531996062419015497151546950545304477102037505940586988571106393866466176543433364684559734387803030369375561860806462407626429637506861315272616920774398909757676379290920957819437295741584573714872056668891445466046246910718351601033451203598191573134910414328813551715289459980537708786312264122169467696911465404752999052514051086003280272345775532695840449813061342430122035451201521815261666392238877759195547705633147572736536785543320612558873042175348268707635506170621243531608304279174526558731425512961774010122149997608914110461129493459510763501105861800085959341076671183520280739635952428406496839363582782098608533481900140903099967870179285091435668583968839666221217517601371049927467395238493648162516086857823124779987177856245520759736967745831892044498908657862508162961327135941771869826812301174701792994193353753455213168450403605220888050610478744584532703551394034309058625394645794941110609538295301919039550390256710911379451777687238908783141757288075930921361064519579361371842379838291863674521450302649497904927283628093336694992805713805178226018939060072323046501422022042758748570200950033187855291688162819251402900435394482430496647840123371590477131235964178265943837174764364885609316459088756895508301560873983637041412277834740479652011287701416278337411176410761203798134897331569444632844370478478570777099856647478233138333118450325037125395319159175214429493126745398848266069209171143246064615567812179674449989010446247651948649819929725348292823923253834627902006458771420037018134842235996401184422556515570829776118938194033089945889215021109623731273434624573007657611519394463708030460952005105267632347800812533754783814324711059939274600068211334077685516348831200497393718536380095077570442220663123738858126050621388677885009322407898899899556413524305445136128456857209711290191496857042658522812956340393270414352664994879403191774449946795602484570615995116513075921361321293352455276476449212195057701370761020202485715457263011123311610861535465857729004970718646374996859274720836349707351325015717671164105612811775046470589466624162083613309021765004594114421007554635573589419622871695200688667764417630286839262526948925197691360628901837043499838464349225462555013189152329561703107735762778635365334193641267553848243840478722367053929004049777180960967220862181993521893321531300404328985890443228920757051474744773004959403048868104452417928027891700669695135955385714015307332329213161034953242952001298232968515531359034964319864392918298843242408972952925887050386979209560551383149268286146690475545269398510851706394729079205832452158303534020472701891140319772580416293582000538464520168744904061855233379586120537124624159580502558856507697371826522805217578996124069819956448209862545959859035083913119044809890829817791053180083466403757790315630377938032604433417380205844121288397742783869596223845883203154318920468032204436347194903120549132468292960410991422625256860579281615902208327235005299353095816539559156962230687733377674389113680677935526090276359015208566351806118538639740809324507007251483645185581475365651463667425772606731759552500995275467559670179836355265632829451025570567896195826765357890826460879628510423921731498450511047220025159753470013178813295373155820904405506274201548428071515745812212098422682912578295335705525377117672794305567569578896507790656856326909472548338382255647022745338142886036382067620487855509398423381623923060965455175667871443021513008168917278917772197641812816094167304812587552375602052267750216909237092358902280890955636666558750717571144176196478336089715608180930958288576492220970418578200239325414287334896624079443662419877256991306814384995214868615449662427734028793189414570784570472100885238917087550329201981966709200862457577112276001093374781877492487237175481192937857115003734268258562745976152711445379364068211138782087204862401484730668163579062074944685475142248221623227760027355942286612134316194634872473434002209715299703412632218723343634357431248543531448727517268427909975662967384217162533443999382767140043477303634748149070709621028701958461352622099374442900179436568709036698425737557020371673396543204737173120331874671916383156462113134873995361681647796745086463612018522430995044313696012737168534902224507754965235421192293026896045152212340799529470798756111084410961450957117833405418798084015213997718328321875692909034021310100351491997489151220998838064692622448970723450525925674450460794704429357835883788180069968835993628733805843512346783634523348144869821124088136694427737388101151303923642297750786180077803232551340580339342523841623264943109691991212401888047165858123822096674845512043131453886994307048593572040844986089872312028018959174335008943793336445009828947017034562675746568458021925706377348034209054098552122895888161852669132778104627215705627793542946727281787575398346460169448145338780340726538268807641945978929591784983694310458277972040991676997539768202110782814846946696176522386779078534334199751127360852700660817741726219318564827839685993617044533212538790980731612252992222380467264773886237001090935904077680988602803856091536695578320811000446753152289220235649031127847223074115679077238461263424513470049833652543756425272030341491958083771467853568073517616973829985865251390471945603675124355755725840916010348267734551070058375507034800573827190833584138526601399202383316535889789371570471416972047534835962723463810929421154371303227141578907800808564307347098122617957061883428098573932915942803433958500355998381260159793724477436911503395353313572293627588260197857090231104024206535778224963985748328364896864825599319773917400795042487495218118438899751554248810384501811203131717363809383153056670445604044340371444364442170383517821547023641325929143223826748048543656398469022951675208076878630688042404565999780041032886602493578382480002957794612700033178430135713300813643277086311928313986086721949716840354766155233139246356684992524611137789868981609769930431476074702117026203080541101425210224137434333758322210150470175901418229130875420822006750316965125342780809762395730235692712443640923064679630906512354719565373237720574253673358910946221514306442709641932384236725616507956525857860414365586861081999072297397579950720569955248209350960437658482555815550831144042238667447808328723203809503597527728856901885707220666738068702577924508050802784450463868056767538991212140486725667173826307133118286279582637511121032203526127244446264894720615502833935303544428880625714144028068781393464071913437769950770954038885919745156747100369577081186263170455338938433487023294329484516928418310945278444272812186493840416400868498142527835758573735338322357939882331681419122505947456202634065162670138005318165494583753562198318297258798356655138714914951713807542231081753486192900132960750212082989509187803121384437685081346327511160368411509378224343485152675368802610404050537254688809070831777094240811892196231877125811964686338900034767136763555163092281285823338185108957428074352157780562783522663115104205588358395168361936075804714627722350591483170410711035490664154759227358876181959294555032291408169583921631289161846179837964604027173218983857436202760841292721809281334038382305373202235891373347747508046646519852175323041884864876236420616623186511307308718450482224421812582280855852825847335172281210301228057287214698549808299728136063482996472215144613891687523926704863301458893172952108930374061386299710017861900990964638237068789174587676627129952824792265728175200152243062617611500267529861555549683477246471671848717259412176229979343272397240570417964551449329232553478272241827606572292965608037369421530625473709844567147923049324469435359578260760074181848411941515131257373726945007593631618456492163706705441093020871669799901505500209124336062989111244836702731120352352551943197241714442320058825788763062416721334366383508417641421686884040103708355751623437034362302994721514340748695530095822407744204642000985487489687965010310272665794396965044029504623790312749111227009034917613656086710983191156024413151054183696451197175951001609596179644621724988653789544985180623206806341460183884092255357543383644038183988077271833923221385193815902564030745756821821990884978491955571829788124189651470902935371341545407331235343902773007885682757915068632434837202942660472261667736727741386658091282818739771428424171309078382455213138164595242139119915393784907263922614437559889990572324959409424785822911608968721859148324043733582135883818813381628749892301049027452596429144794937065688999792496981479235635198940097350651745865359053152206170238731374476819546038724349034248245160573455121478426419282523407636046797942552837974847196336516956281836031075738770958068624863066290278110580166796925450918806682950341802040735850212073403275862989964466921317085296497305943180395595124294715676541892614428764701113135388569029525631961581509196705910200217035614216345749901982410673612427839736840562724178946722514867787248784174433367962297456039501070860690625046439502069310377055434936233155891757516821248804983980418401854101013285592084493790222651170979601634340951083948438969304883725294242554533325050483401622980286051643624543586949624431825208536354509195208610448074066099957299792915802479144570936046839709346677774851038924962174923763784217363955355240567418536671527808857264163522903342353283017925173714641100574636057395814113818487172426116227983263035054585296937696878099522558686247902790387826894594909183853123264133133711741740461783321516891640068715314951971840964702094649423638241012082979266610812401411908181429317536940392754855322168606236091867401861859399282233827783955538773865580522397209773818047362460093631292001913705524290023944640967066587090152810809664465740909667822596648642247745708990833071987762460262313233425434474886673359345548310119194599196238127749432335937874213930278758317846599433133224231542175882534917027333806095262778870494470904307645113479221315358933755111573173799296137964280709406970485401528297092542733286891691211829601755430321377181400432203822630436436101976172636980196080196462662956649868669700247979757511929607258856013910284981325841745766459937594635239032643947507856672376090371916808121034234130587142728110297598982842631097652312744095267656979132359607658329572331669591664542520150383154875532913140596764593527657471158824248282423084325610699946985367108674872507575380194984167954207262781134693166723422123496408427631463079912358997059339657540181062878214737218289526325639966810303060336576356450997975841535431481610290592829333172543819232853732596049257227360629453970815941096237848930230599924747650299975943207909034038286988884596496949993573081678084712028216824506970151907485890609924119440860335020519493053793037608857750544549216910614886116176104061179614222668594012397178605013608697431809690906033891273014096506234432726864057787421645295630330378612439042254490433180824496543317779241151721318644172882817794420101152320613917857634128638602438411701254824132001986523248736203472110746740383998112199137519483973648019762226486807989820702203946595218474039235088885633131163476012101761589742488825305630915478428518406607967492722050773034724480193769046441014954079254973749089948585324086602020377868460441339575248386555175594904191049778870907569576241724938238592485665264151851045566130014171552236876577368543732586466315971322265992104373634401910723630502204826320473318023281673787250096613696645486989638526224463040717995872715883059798441735398937113087531096082526750636272328815098389600847680844279298997480772698642879878541221829347551561378544047731718600092492503246395371128017590049830526656942885692971598427238907148299174263599371590345133347109899593847374829646962257097800396530528696312161540214516331060359926968569127214827494990361137691093857019336222254537897066394027550740854063015500418736693876054303416949565053852713941275526049402181121189231622147849212074384312397331175639754917762802396729328267724524565711317383506593297117744062475218794618057118595434938679420804757905121892884112759568943095951540309034975693524728663559214448133176645593497630418974338634160869713801383015057900851088659384504704190094222431839629757933223441310199327892321768554057453795021955894748500135501346206955417092684662235117482771821766856960273806881144766848365378271393933531641816468910884398038490310617512482414920649721236649192268626355863406209124360026798068832196261276725427403418405502910838909063370787592999286518149342626905690115349824477633795258616247326722994422876496819962480359812477399350564084831172140995678038353970156357051276169267024831235320842666871390991751407994380054212814490889726628728708492393830129420584086885804772833645581132626971598145216387176490199746168190617780171275100868288468166973404089573402496229770682105584462075526429162272636162263284945792294512364816059213188858736645733251872334251596705292860443839783438452271217782057914376449224185019567643931768569549867736478939066272589260912917840558751866738230162962670416169674950371555603918888715028218008790664548972441287651666984746806028480869410307762376012422804446908406946508727265986202684580410834900424267519895883322818954880122136328345813682626506238360704906778442024344539405233934489220795211591462373817833978244296958806223179526590030662004697493867225647696487108044506541654100738800466864298142897164411806893459868627564593809588113428050009690865397833840375090494988561351685650569114786104469076276617464311411402741321654803824140780041803680306980945516550745804158136400359063042101664386015976585662902752014276539305263212654197568107722882727966332289528207630256222213569555036795006475444952137855882828325787224074870073306220114250934972102806890938046242390017371849176609545693925313127432487743119845804116049612782446306033148673575092888341691630635586929645650275510057980405849964773797623632211583986534831840890044457979894276178026059581437277061637931163135443987110702532800522765011376655292522681641434960157443213453088357265400052945876864959437540267125246694970769207710391539171310760782036921999741363011702804677283256385559486662715152896891547030864131811094123557726256162440276842402276351078972510093401912011247353019804072968773345727564642162094900312393686517216757378699528844258732042677669006715946896480757696946817576074997460111090867408602845790257536463701629643679093325073096045973777938784172568991146457076897814243647463130682999389762748818042420315428339324013492449861397990561972048739769030055747001494887564712144334130651341189754092215588184771645910316968904843118038676237152473131703631915632098917341665964626730961542101131500498777161452215608240294096622958891568761105578837153819914473990860618505547369250354525889873185113278899803619809100366142884741561671045028060365343595490697956065910875237370910826310677608143422935425560544233561484132521339472168823608401110058362623371922987115700115742184265257188267912818442642156687076039802002273577536931503894499171061367545969738225313464784611386570076432071231760753508048980782107045859875358152683579967737184171780222436615084321833979654635176961946449521601234383854010958610530132970857547851463867122262711147672076016568774453679703362552075975792924064292013988303237979625889714787608708108390093969492900202698017615711400520361514536948863332321529428943257803476427621209572707976067826118299358925885389691344878242690665459519327383666926169229943293299052773298252985594960781175545399774776023274942025530541145463275869059199419682633259351024003712353186734826632141486838762267722321814591933360291046469368227553508238572525991558080340991854239239815922596229585568791912492231252634186688818303691230873130672339296918580921648554828642673169825633286109351368029927218367386531982180349608077504440340567759269567953981348497195878901745467190736217976607265980736829021046377736658373164357760951868973514559027164248111822890505525617907023067862912767318043584226362695977904478604432338396092534908915280313400114948080152020455477359687890677323234916341534399571886613604440409910096248754145066937349243501993682750305364360819620455571715822720060744903124180510373281142486756251188382841626716474610054943340548791225721689331890238287323090569493126300382347538779958130117715149428679711383534096989736221074792902178279716403458284701396786741585246539731913680989097143713894691970595990483021648604531965909732453228581139281949815183519737723607489380478845642797341841283266760111430547826547634337129905831653408041281512770309968081421220852238985520462294341559475031486382998367196043219751658305628315850253184245117920700466356352811115647268610687624559225583418798755172179050977257061111847189939720428698406552201359656414146132922214272067732135965166509621031500201504819186772563126998176996366641990630328021596227007767251643776116764799804049914313581697214459006139101299100963247489091394312675785988281236367452824167472660595390717764461421573791854166796271939184497547538223619284864199923723316590475077999724306684449527784053989014778546701762807397540972835499013386279639735881612799801788447767094730574907412823329244851315500631292929248021327768480900039299369745269658892208770995052480180850432323611588411739609341400705681634482449034571987421156604294823550545189095863310394853342357777016900167486626052003913212250441320557901416308883765464640621277271848092427598991705571427923212358982124416692574751040789157387553008631911673621936317104574281788143657713055996027945884107850350716358149236184623382463172737413076460920951608562781241291802785360199717902447181979611075296044087807377530600424260038526766613797569436638174319847729979482152385134832573585127696663215733073935347530250175375273633067644685402774428159641157413247007707610550654487025448563404429889214827713552379978816381706891139128625836351070072041104526340077813427739287851809496498774704627207136575845054342195423218887267692924087161263984286529043713777231597045225275303864920249779704061661049429751787676085524895599139426631178563782997176188318723651359700513257282379357523098939445332367707838998747619254811329204069223178225599241889468112579404837699740706848769047363605489032737914254217533929214552727941732403734747826044023337809651675890878852744999006665246450825460638966466096984924042267351037228244898712173395110205953518650362322596273958186001085165587844677687792985125642737837958973980029103877123258328073262168691944341715534164314252981697053183286391447096117820662838243073923438735703979816282048621212365815249464166351972144326159422306434234306615081335018339708684197252028290896478557263235187396134210800271936044609922041526745915581405815826528614499538213570358455336259080143774957003333697653232831803138223247105514975901497391400899538652376821363928303048155799862261812709859446429586437646125418575697862789750004920405951143174908605581375058501312091149160632299103848286712643198877965728830668952272769026671562804328225646806458880822984632157497077752736562125385865148342102540928168358861176962640831193083747460972935600243381509448765312111992571253131411399095735930702612237286717729646607814964383690312459427494758277483002329416077460682615011427186739961895228955023636202694685315101621943491214050561999973737321911507506411991508168748561242855772275428277511959914673987020213249437164934103882711660237636318747942928807598654202126242824872735367911305107583136815319170973411559279267932007831325271648126917681309453479793161767823503006153893182758591359909345753852461333264029670972595564281358509038329653026156907217901069978692785001701182509037821907353347727718293873911981724887964845306248226722111650340913019647498037793941192875636933835497563062189642836792686412513868775658634739065683798351659530414958337511228980834355194899086004188717280389668441626178492215219605578628571877296946842863171561582572843827920660360814152376923614976037672156899231297463802178952969208235799340153560446902505981395838950618451149731645980074878909236552654022880907011276670008843676346179311268554267181766650684458848187861806347080788720163314891889221521528590985448168478267031600502456395289448240271221177931232313281899113477222073638976612758447749993950186581516225019955637269791690259972791639802074425367888614593825839186727498431150611437651258256106534799163941449533840974516202153704449597348746010907756040108384427883095503180195081168010460738665083557514353152107813203468689946635497890610938854481121478283740530926492489362212159447871013808226546135252983855387692293519904884313812538745867648425868689199586116555034276250365804907155270542570960431826872685399155906022825333619956031254890429898325651794038266220102872130564524146588313245482180899304343007380282846134086612308501522613656123283080622458730761126351976985936850442633171174798958763975434044035261978034938733152105890325299714089878723163440953067901339563354662237401377341435693870504427122670304551961064089206699540521240843581959698035319262532722621955793262194592215462411048997685888140417216145078694041639171862355010474613972953753733757427374211351973102614897951190752273501458332881568068711019179133458055460290075364282515649793729774858853066880274040712124037751196633424564313763109687966967442368738453120410290196531838820718841287620208906120258103863002945853543224459635205425610073323752218816534245705966481099409466931368628895029513853130825119881633035998899973199970124491019698605231213597388768205806373639455127769315638301743364968946532552738259041673047721094145922183210760446725197237715675936078408831293270058891634955335385611380080562076204159142530281874453732902512620843759990259387806636026924306333515164239878856406021572812462357388115476083838969924328752728847828666582658499293136492069348819289467992110455282279107089547115249161341223269585412724722324363739562833956945334801094676893304698236878581623545288992755593734620812226023743692891655446565393307313718600045568406154434659745646927963729495542166375928499873516158913257708773904220587862331469934224310960107196853968835338355787952686198511598523942372613826508692700923739287090810809860937432834776351450648262111276110900601442147488489491535132713121649904365135589091852926681460436700578057855787039902186935169953121521371881403500805684247336141386639768548615083195245221301603272651853983645293067783422069212719038394716525486366864541905737860693623032364598223815051537374870151727015094179228654726069946083405702667754484205035132365018896215114612038567746779976058438887949766980355077782217575599959457895389185151229034886758151396583754815991918445008183724593341865913275902684063542899552644447775952479586676353894779592482383623045205095542615734233063049030268517286709227767255409604906437039366416982040314167076102957347709646134897555753140731191396693940829479688042724176794469897939428079543902455836553135337511877813102950542406696446075139345467580571925220620687286306340608930262874697987464718905640279744363718765705648833148243976807363180531522588898618515909840342314990871902890219579385943125888303169057210570847241918451918243297820112431439443175770925761196852784535596750869165541316148849784048221512394156006503451171365687695131807261222158244838354925384407807310441459470131014143948317978584570866325785701911317010322142246524356176398784842879699001509307127528887360043527972358516042304248773499051486075412272093700713339061127814087563797262388713087792097685928442376638050823503450736609376829901225439820306361891093750461141136508743030468476966873990285809753006091676386559277800810216890158685852204888734195771754562122740371598241189611064858199565813732740476386423680059493593401262983063697043152065494231357748702972365263755616989520139151254428957308463989864588091546240898127356629819250514363232627360198610306909668900946030111538553653893822827639406498449013227530095523201213525271269595262740743919103950291912058686411508307692323437860727232140342016152091836367430655450011966673936319737803352431145175291051317204358820893226286535133263951126582431587338799254560586414242318320764543624540817859254512332168892941510510040690393142170617146121534046001802909072131117055886155201913704979404141150000383604464354600485471326924643219567844385432365981955086156993525440729230876568281487594147310071477412698130086363302658104396563971449715913272732840226770595637656201366617399221530294408832456565926408370743687888047366862503503443943454925493606254689655510068876893311371396340419887211547934592766574029961533164311177706163073430023197966668552843011947265895523074424305485624602863074002950197113644501432077593998030160339533506171766010001776505764363829101500351653492418315157312643507515639339426619370120432342996494167888085664202223189598054527327368647545686328557985011210989836439522308928065005912519164540784034939538620592673813981269734586778105190210647084261038867408644167404652071037607400223402107677874919277738814494621314320276262537252022998930077444630813084804504919641078115643265323514792323413090671986504876776243644035547498374197917373472385239620294854138539054061913302606020620826918341585394928386395134516205074018745837029692549962200605065024775430137624577303970521907408839269456561347121540447707273414683659067660141218933065344081397066874824231836772770699559412599241434801331296792551244361564490531654492448274702703663415045019071580243527383137468706985306122068072157242729908603152156754555455685458644026771303287816897769518209772372145316583484971150914611147167643178702291515512345126829939062082636337507271856004607374006621872912978782744291316686982001235752202945781980830802502285756896808024698891946124441066110728725284014851594048215060234558138771580857752611294595008599328488706572810065916634094762722332457825429520006302937884584193405712845717945733866301883949010351445134198514954172465193782066147499914725367005093136622374814001705465123630462261020444866569285865668582994988944082510671597574743720904290218518411951672984213573317476592245260597843801227837100133925863316801760109916635640999678959788114403487308029084960835475463687286745565887083351065510232469061515020362564591409833506314579372486529362718607118274585682901442723537375169064582993464374162737113272634931358987178051833789496734177215077336314522203858467893021635356021963872737152556846210904119013004148013007536476296746727427473215708990829527763464763511804440874175234300416522879992483896394242746368234234059611618421094762162690139540350604428647329503927021244885009973194637492747261395727372477066842191376821163682198594130913735151082204598391488259666164901054146172340507791127289037567884918217621574223714992079523839351105726197989641157110492389532106338528664919791838574091178527102244470020516194277919672490580709759493381768512927693438063658923390159371689069603552399681498145941808497210867638158305879518972941225716987856841392190167241344168436073063954729406292271570054478424057164707586590325821830906759618294142602912698192069464256467879511556810450008258275412556080178466286864877343657500992479788415655171172529831445088433644520269186187971699940344004497820915868300338071904685510757030577762211914161715476849600701473442513996886734563586046132744491695253880156198372318363132377134450511161427144515938078022185687306136078887243552137131329682171137490124614934110038708013895318318829386745145056475897685987282221787611808858505299389658347086496101192762378127737336510008879650361832550054888463219648914967646195103350349906124655677145387724374725237385348947411254109671237546457454914327159654767657811622299149929618156666985335664527576812213368475273644565331227954567307690052675825373487202496993142761357980101219560282597064236077415987739035409006584082988339794673682354286422536312527773728243775680718856105169790187854058648138884168931072545516533107200822891534226766713706432458988452446279914756244624299414400528182923012163891363247068348644255293513742951547007757461397998964793580337579776102617402946732670619359405589938593762697626192143767041946740217708509636714867172671535502264480845650290271163729594504971017410905962996455936394683105751645524490556399684853890572827205512377288107501628361558885111483355069011912516288193713221702899906750740041466045464528836390747227814492755393994598673414324783016814458768124860546578539997746865054015192021397321343960541052271197247410248636620940171355240218380461450663704311354860222919221388591998470555862071441546019012315636046194046054441483744281477172815191949156530419856327076778518658263849010462634302243564800244077273720329239869159102515239868529467986555416943210471521008433111535508433145151057435675122071491510450101843542843337676718784990482821724056946368574222033852835277484834410738690177462635494446516694021218368787400425833735376814636952973870362247966943740801887680545551174376675990584060054758932292593686185509529447843883699833104634014602310186097680049942672036925719379683127707263579738196438949486009282477360351234019798168287115004945572814447864735103685611687577484501077108292728029836315380273335776128782579778614528069034868028752899655952601848359984574600304130555877836173136538683896129853794386064755477473683209716431823097336200580120352015389512347912719787163318352685200408787288463591812212512597502630460924503616832822153058396833756188192679420787718107694014147888200682412404032418759004422925142764353227906910602861318707673777275228680130016510183456895874905592794022190905472690424909797740950856217308623398434950586382632595397177894269594740104442844934120866272217296732892724780087763242636883706721900436940192743619860670119760409906428316040406362472575319258716166233328680298844073050513060338597483647093000728044543374908510062505965379039729691674907602519088646719489262312680835185603778159955682418966823232349162031915614638801931816236484209599608465358664216474229755123872953591807148815965818153391085930250809906355828763718074664761162792874362419817600758022371677835057686522524608321248013327906050668766131233760362994925221685501251286742152707479108814558254274152766097394093577466235316593818066344953539419504042988444654089729173995228672520872348529528746644067145254819852497892932475944344081972604515415487505423448407899828925896391079446958237955091188768452831262489410574337981821907488121240637716083615807490362343626874824162156472755565598767427451799880272139501839632694755848473265350055238731927581756694850090981554429799964485848510896731658490491476352813606983910852150428647591257034711486858846363855927348502111238184387466233398392606656216629155001071741767929038205048307956829949185386965023486077653523317347992575891232475033012426268067495533772219030954515287358847281244169704713431587177609135477837386415693036277969152111090005902631336085869407055721155845094698680513207617631074833986937505530300494972688111209247112752984509576775751794570679072181794694559772338302373239780501410213962161500134644559191975185939163289718903130639001913569916970601541946631791385763305538342536950413407520584208262312150900439019817017073841656101850842424382092021272531368317714339489240733592054298298564412402729856542565249276726460058267923297840480503419723951635306827643657883294560194049110761597155950747051153270163340268141776896891942887440544438059687975430968932006057360875218732820721827824476245173151686615702867750708573719701138057810553717848782782657052383074400111651238473054759858454316412902929612346115346589100646287296209995259759914900713358748310091211552527686877379459082515305063105235006678391404677180570495035910209380106046633525309750714514367990024270990540883399152274532566127822182829893816337468243448513246046643895035357994585499348280154351951633702098640203057315354184692293593793053940945868550164847739505321591925842066639395358810033669791785480486040775655907294856859585372091560962293953657739083503214628356999099827729132761809186489410570425422980018002627076769082984036559215115205419288476859520755758842529034525524347755214149460881662088443491793590941019622324956386915978048284114808923676771593936210513456863653620394818466362157160068398502400030834106923345853252261762078012580738972018184742105624831223390556845751470787381733494638272177519659120641749210365262609238836270011819305271747682280011841104289474642523025993953849733076365212917102890492282164904876052084802129020788302335350083770385431985424501597744303217320214589720203718299553594687780601452401913794599825175106328313174075896247146653735279515474145344706442232593043429959472779695906452321333453214702142801512998703442414236881739183328433389819234832731355964718272098751572535792437156606396547302761030176949548081548048044376515005359550984926923833730159236324587734807238787930943316183829988527331931586010642694502659212060262310428492247833701237341761045448907163010962148221133433484039063191070072645042471660540881037451209853630447486799165802734475063363381099410907659215668152954215045213039885524370827941396724654717423161307833811363181050654805386808824867535856777404733933549482121026756006178932652711002080743529267514535563086108752609303128879005890917960422754207895025094850446455184148366061991235647738582166054034448817830781884405080642182937805133850766906637254483467409510279127502296485202298362494984241672690265888818956726396710271763437458895854696041357340186001373358694992575172569855092593230590657975499061241172428944428689609679890342640775473001062302743656204517703295246775097500435775832645221777731493481000497317856170582987368446824988499287573972909385733348531969164444295079382313058042046525442871548411608137365355714771592477093187773142946034699874472854114337702641291974390244820348087906305495892145317504269881257472294204399129544114191077874515049997719643386134965654045278305684630949670467529320714718176505006799557262136319702466821630043627824486628468931633933612822669986540087881333071443044295998218979213718702132299384193656289308460051062595848585756192536616165547432786724855157056691589624008428241230137344359251125121776644829778952633742076429556437159213941466908725855038213031866897505249105854705172091274304515177299258286252347011587189221082754829878280492224377369051196068683632662789809171999058158014356317972198436915037945853928517946339062894580943441040549155287802036685176141622515913546031467557738188801493567846445800627584371937672573465712926613035343520248682607400917258011234999425256652320878376767409527954456360719589688186913065174825138950999256245887358762956278393270353821609443781805931598304097354980922898410102038159004088209093854240302044795052723886273969690898479368427107798791280267072212465500740851273593135809662977579020131516049471179878885872703176275741851533704910444915846402449682070703795743488982579558866052557249854835279026606199773038676658889318254634016624907491989629245382248146851316112516865686969912433430249949178080982193860664703582104821766757244808023298566352610947201990989796231064180087653888211189011719386904670448785714629678014590987997718974630050051949764307472879046702819786356631613007397031157072988482874502615721023843478769759799481518951922313927537943344615794193548293884543414430729955630363168385325671743578751346796069643878456949754925788033396166870112839650676693409175244791133276685527279055146630957824163581422102723550539991026174295756580967596694449502685592196700072964365778907366772202701105636205896968568375300931519428128749910716073655593563649844823430252384895814365434757589834008493924684904016056015999389418563432597068002814682981809209598388872405922769317395438296427209617430889655425698677630856013413759254996760463337085854865155752351018754922174500199989916709915149658156695720029292976568219996984745369200054458065821835852355393928750559088377889064697860375123450801525653738608770058964639207779765828310767780643620640464808742732683269667592068936484577141125782913992452832483511078947119891798867673722008475280945609580218339258178602049784559784074318550197145935531932471507360130661250899474541120186739690019900254616344792551207590243335964091051860182269689353436430377229717283544160211982318490763431571937271275334720545633074686604232037953587017011877834160414155601271796587441991843029007510665336064565425469847068262767330767384898818966132087619073767478572459069572713270614895971223752416819439462558965275844189720824048016082515668104342631613520701380154898495915727000784300281357196555336086990452948555965070482994726689551272580860152506932497334016912068210453276015299792209484622428010854787668131570121277226380305044488552144575333372922578782256365107951174584796555863269619509250337535339595122232114911935241724266235817201041845415958651221100488309708527532126257457625979203943342324917241251012373523118925447570792694547354536435357534230082266420527945981354669972352507570818132760961334322975674963614229355057568146493336934411295350527593185080783979950563670601179117449981870264002477460967839838307551417477922577232743156976699284964105169085837527712013656294309693852522157063486860103426489139207306324221430003943966448584737940668972166231782235416107117136579804965515044252892080204741860386967027216709932627729414012447671163171558403708961849230104371524309754456576079261888676054285721848322296492034976162051638320991202454114935074789676079649897949095696797214291364593299430659400508984293539930971500965226913887855589012830909223586500451374059449192621769695473911790748982172777457917069598471514705283713633886817005799162892043223745755010839190222958702508752345253079938122242019810486003873092099292126841884899296391049829609807791956122041984803364806436216369791896758681484197946844398671210272655292970014515938698566621485952507752134928458796339601955256578037354197539394385322404391125153539471947820908907369236477963114191873813165201250485900559557553488659652888642127003819034189174979899018051131307042810533451128802942275694341319659345260546879589669940065340334934920993608164128318241880143427250435351715643231642964554910633035592988422586515657954393158670550072580925063206455817803653508473184790955418724387600332883629396658635647614901983940518079678836009261576624183093158647313159594633853843903132535950102598338407760355924614412843700529135439574764637976830770301900877147531191882120162695079402719075913486549922315692337635136742726862963462385912530198618532460212139127654251575649147162991568533340491503841669671109597078111204790011859482957816169633624969463729977542579188566299029586397381846533479224697813880710252586534251669674914406388788486369225619130378765073012575957966824775712672256352648565301585834272053555720655218605857603254808689630799034315508562874902910603926527972788884257850518488009951010868936717240025831966205665648727338223448076718337063322132649697540808911234438117216368632429456556844658905510870197268669103618816285395154035638341131929289217114563153394466569915170886353523125523994823643698528390551319264495492872731352967132090447973634916284335529352546573867801916956823454746524069553957189145227702428964157247294827926322364025672550962967081482060378968206131190544948255864873422113928655485057265943769923571323365413152807153096632634505645880163066840317447463121768911719217079921430130254362097217704049924111199673491504098351672049577087664277347888516237393267101866701494242122428405900664485191770759445903433487822285639976440665358424165990550208476806316912017778674076982318403278672157064997474271181340791455979715408856858449530647194545781785747087625664812137599503042265253501095504655784055093468505682998311501138501431877411967651017293239401618572667219885149699546215790819034113634152514917336825752526246725665341566762728240367199922742911209214192346724666794667231587158123045986537194165908716894839610138600984381299908046020413273939907919419406919148329689646306663963949776280088893227304295610504325065674156095973763918863082550962882266717379040849391344901620713640001712176072474602133539851104946313296706393740294921635057856275286832108949953140839202577446967594661323679339413996716770109310741092846977195619198269382859729370057980566585893820520761111108201291635684870791079244569206715324470144965864589669004880769080661489363923159710031035880843187854854239167563323787932783412047169750701051499496372382279583096038123692567799711441314684825602961961159416550795825557507361491307184886421314003447697169296447549089859861785168240552930249810110776750545714451019791411574156978666266490323848310934434841574329656854859579796332024368098104671830877015021224818742297687176197869565483176122106488247329735601778923732485046169358202598844838114165864334420993011510519835289436168503547130670927531758921346063112483154686845538292934428158883093192003625865596419348961165886146539343609852627688430454836500349639483151580218356662846935926833544609123158669526512127470856866119707168939196004254292046903205622267472559024067237050307835682488955023380650249524062599046279488282800174130043258207479412560784632659446985813333037170004327994083309815739347691987424794505543623364586924900431637963333995069432589857856650192212445700511599214190561765142859742810477489828753393580103857601630432112929130680316130419173306722965367778653814720619491351227345782964882151758211487488979109087685082096256538706733034535207339125276981168572625163643560385817613925336230390032139739596524140415101752271101786761859173554195999645864240688744482155831271076793769504786397566781181384827596467079285987044041034063226619004265829458704542963932628050278437464823331608495632469339945695670984909167942418561770262107621383290833298173239975305645083525871882293086353498500248739874578613002526801962453151334036311786422317479185585779196075198387440662773543436508175146752368450015388106935913616563558158697865196888513066464168105513254448740219454326367013784970916673047230528728233660776607931312823981057254272370564045026201532403799701428112609457832458777677498077803292080548316804394720555361968539632911192128955753363290394874911066412090776067816295533157184629136355953106319264208851511863670997232542633764228523694358602751216263009262097748340496121827359205462275021085655330713160172291980812500524836535199433551192028952207838260780513054583531930442366664491408498187136770505651085150275295613287233294339655732069564459577779909940677300790016067315507560882885786994300375894196759613529837415000730956193721838375808629351076833933156076399040015893806005321361707679546020700128371101530173306343005725361198675556421735400830222554526279348887559876810507650734460020503903684667413802890298192954809461810506094397604793978687847534348281180047932968044862359302845192130756661496061571957729096934633790111761282762077919605935321683990307942650425174981099688155714765075100453921159901818042457113998420434243891632816644848656342565429408912288791807711218020070443906052666661770611069375919899392983328937883308496959702285060318801037156136180108085003278042454522899514279043372284139963162249869090110445176244920792017629898828754538069655239762063763333321885138702991350945079243373838759069881586772531315164111458993306355401430817643969682957655606987663144301305981755085940754375967682705651861958392423629356593405673441079681261861183036220903572230939009199180945174944421672301954153318207065780874451372735125818318834393090773215438500672490880228430158856214410571118393380658184609525260794563881700495292090641524020020405123738239270112266875484536113264341051017816710227199516892607554412167923922497509454418317434708095772143074225317947305287338435643928446126396405954725244927018057084495941682509123443432823658630384784565470954304043610196757664514675992077307619891848568220889060178347605248509866735489619162126105334047063739925422342254482450289015280720653474951370804786705329687313969315855357860691514892019699240955152915705137805660217094055590907149382312947257419880850639177395221306298360251433387935525270076443808768884814352413520852885015033785702242036270905186575577820229018721607193780691078901541960983058542385133234575742588897481175563076992753979338127035335742883629711810680508097158473648913542414962942558314179141875214991149634889824522086296407221198103661539818186740996239261231318251424226663206354342255251268125176792745006171438682068694197544087211851524439290623357507358143808317724838055287461631467029927965292652740782328349393657055341033719127850051197165776150727088471586917114745675055228197003587249145362166709412493332787886891092099244887781244326543844335150130493028447466011021838902388196784503083386631084124614941141843881924451515128842888207482572273810904784964936392102698974271935064930461808958444189999061538282083940144674614408980951254528170959455231504504395623476775515915650237718825040923083793797269074295749847457794313509592270820347693182834137157742927745179182618873663429179437036567108375635738987135737923764833649698432843307021784335342941388097492544039626364170965902896624699531169353154834976034537076577178028351071075906662137574099434613951270719566346243018267401866563237803697026068757308694057280496784863266304053468766441871376880742825144101732025650695189923014164513897648209518458963397733114158003317131468046777754870706327756298092787853067928202435876740694815320029961276646274826449378122805468089370806587709619211746357786530058462757605984681985295112235196669909133918087461727805239319065469768518316979459041718336452154802374831276564682638128441396971584005183081491425980059166418840530327535924567717209401055891295329270279444383379554297592403443608098272606701556445574391525349836024602373896580401889009718460213173917474032416056781028621928560928769021894727204504294039460099300245186707107595344734950747679673145749480656786641836928081614561947578512509930861827766317756005234027488270973938543537823364392444279408779546267769105287288272856116518693107634341422598065278577768296846931670263018402530122704606747986701527876884616382563044011776530909480813692351501596843084816893429411511602879508244027282198935483520082336653344339231573734215964410705876905447398579019417239365769330456586459916674129927629575501038032566557080756743390649081739733946032247016317967161027812936765074301887628477757952016333612373346638048019618873337075076070602906899772067963222492914289482097194425432889087161561657670033843800124210417101871283982109584008260688941310059575541628458194020899084059313533456669888925449999335264517319062050993912728499684054763962483754654658849248020012902615710981754634842257153011510755917526185178555018177476583295838319891044120589374841888449597967305949189608977766662450107237129125517887708151763507233693854975444574008521305601289944835902752510246826173278581020050084081963351966396476432317730441293747346519135616649083521953697036230522308776095939658659500332857312881648857492523425057808302556048959720950647414968643145159308070025570414624338521887138499836239767769926572429631971676152852625207668518635732075118591437801094461358404636794613002651519969791455720004233468798783977931965216261318784031488749706226604114445118736566981635987718978750670518937636307707741402825013594827472714174759992751221165354475160117903207869035568952372032509032057383689131419974827391909766806827303991393798717121330282660230254988708432712773838795539704723712416512591371089825217379432701080004198553652547739503177168511041812182199476837266886889489465015582895600376214715515965467396008136605960202112374752874575454094521198699787118992177452193447738432030116894544316039772443228953704584880150899692731664750502546338608632849625790924373440567642610090005963475800599659793985656169120035041878449063976373113928591224430182759099248970353465794704595837772858174006219498618907869133849600981615054302326747463490909722841621471359466222524613295034137493651072334266805683606308396687719662011233862392430418080471924322520579515978867704035214537627392786387034081225836822235117726974969640407655798212753926800563084931261045884623553415598819202154339596791918908870229402975540287634579013053900278000808004892951579679149032356628076682521701470685226915241633067293115388871062422489895397286135344138043568922145444287165232335931369005709652263628327352051210545265359916166560733244274113821761152209089072643124134873907276568400519966531150432486142617928132295991326063230712329571162579118759087114018266903177339442249639670458954659054359800857984881745752606162374163145852887807099336015264027309587224725467344326318672471194491903102969577309963699817673607971838114577580236276327673531417970772711788362770271488169361622695016446678457156278343195218191008922609194295696034615023223762642969401377725301105886522180568306960081490041647314951110441392236880774298642103326369844173633521811468132379859769646901815764634857393150934189388047587104068966768105195305629775842533669317413146019436186649996341035518784237591244351376997058739276250961916459916183332689091009264918535726083505975364459340795104502196400801201404530851498570707393998204707175548345107405315181917913792521433830723420168544966424048817867890594138177757687118525819745047253079251065407502997262438028232251069339798933479769631464987209266753864160585019942694085224234135442113892086773301660470168957911448982588512124715814786773086812959748951830504769807157536581231519592003403451081301454811811942601766679273080288095090197629213506974908221890205486854075160667698444877162754488494406489513349250816829581344801805808041364143684465647377251942563854636384033953641976640415259545708280571671441792839171622644118178315200163262498570353257002528543333038891248943814178341822759190261923028862942680845409425824408411745428748045381271286463350721289226994502799307465468076921215537680041542919323670957932181434590866910867380051565187692423578186886601449144617418606637173074316825374786752537910748376677547075626251885187746691984653220325183040366966490323045222612293648538876889415353609477810314008262959024839854068206124578181923200710691976627989297101291441551466626035141809178147424681619902891345638308881632823349585117845027449414162466989834798944455875807059228537721913916460992706561467381764844159022839875726148135934034859435443262052958052131066342077119729103103103961990115909263037622964997231898339851968425865006384554451774143550781989066766396865630014210174532142911058257515012495988251947128147004130079794723845392977433540823818092494454822043374230035327683417253206017866038959843585021351477126236865744152503101696174658130875617228924529122994382774947577912313557955648298330611987273054862708761865644731989056607327725229899509761868895701455340989878152660610351393523301614873651488693155626286753360242774890900428659846731419502318894605666109982583357976003414717247407539742203818860549921284834345587511539274246469441876477592504223652180929566108687189259118863977158086661686696240684777813986590852002280335695439535847055938324375605214537040043078464750395624885911870847753863079768981771771487262198222444965556023997093653193525123247575589026340868895366461172655896993796522885563045459769962627345495282158784945520195349526981873604685276462157997857808844471615945923199811563263302762035344829128001368442762365551124424857402468415066579682233414841734839766875239003669384711613102881031268549458151170798516034158148745258391090810095419667545238998298284604661525117135646593482916044507655564197693345418679609254436862634802226594291788068767261031617414013055999596595913116135539737754005174293744454418750784424658021937454131780860556463434695988958610586479772666435180320238416864256714133067021855204190648439317502201721808868607475640979900203923215708282601840209164536992189286201082033906773536173570407789257775497496172657226203571165025150497469646936530107523968880906127866067532890056960955127302927585263417206354284157230041177593403634446929434069261367268810840793379153221049137957853657299670469152823896216525079035318086859882583199780049332289070432488010917532218456678033469603272934741525055118623710795905365270722187069751398859348232522209837060754830963306402026466770774458974178300225492949790287745325574223091869397302334362314030899752420663426151938433592573093831083062738740879938545073612550830872672812139740050182922911985988197245702886266099953845466757102658992522660077638464173360156672525645843195080085939991610527788635958648165359933943648310653862074838332871443852908076297850483756819189327116695940446192850359595122816534690218712815691513574725667691378895592451769857590906884236202307106086906468843605242508076190169565181926564932410659055319574874820783844530804654318492604238594736471773875240660385488892376583416529652646215383574893879055776599328338825356945063458057074110148126550455769031591461102047617254323692886362710152924091552249965739432635358525980379204611156702442882458449571458231715499869245148682647425643474438452844024422280995486347758256119894951049031587458222224756162788749835537408998899895722223587388457599209301925589059450923168738452281024431128877909859285597214306118572000793951256830144573683658752431610770688133275679620608270144849507678200943192678730110691147413821099019974167192556949842234534611706786460896247904586503496993315995880021380672503851623952950710336194708828018148584406684898261184385330580194421362090325262898925186146309683658114954822375283224902814902691807854048249066917470278108122269841783487740865499565346945797273130327896574069543102152248982740208574523148461704399462392621611680480321035130425238316513944186197731154010729805056805329152847558150404562359342052606792251568127336005304436824647752815844522733778861646414583883559974805185970268627005990801723248234667393986598480822596284831694752418843665191289540697155472596629494601078078001582654051837489927619726026906587557818524075340794943057108416729924199643296861192452390166451633559509116808648379646655756446978184268961534069234086147891543510783537318056024082916879136077819646404653978340169330094811535055575205090409299497719308796167497719175151737614037438284518411508452489717751481817391848504639922945344197098227237518314488221546165939514348351422314856039472590780485009932503698429151862484586801140560167158709283112085158879672040133048986256641844789206021198073025211642314464711949079540102664241448292924820517672763953422789188639372630286315606716424569954062942558141618672054917585934136322845050070889083597116344699874646452839727832084187563650726875057063840711546128877269813622452653704600964056994893705840022549895482095752523632923238560120771875522274359639759610882400908866992322521642464726352457514926004590222992506007435015695368868280229097656855501022336724369647553726287454239784840616843640817948106035752831186513587332085102050994949142074899816262006990574290348779505573603806049883180946535479476742444376701729634173223374616927019150355010827227478093430568078913304392282556339890954660056589957609090073649148863134987075388538499271898392804486080464742988285499963595749994787207430438030212369089154213412928430443826696328653124372311109393237079493909821562678636060311969545415827553465413458567910338609841245772986328002664885230957544197959649907248069991629869437378999679123766518490344105710323617023380076903928128945899956582039331481558109476767624736490909449798174955026112457824160793432154789229926889156346465841625236232789012481575654745670714301993690496299163489050684736576361699276284810739913207541362830803326581488275711260141714949217551620443966278103451681389085330722478594895017893749173629436056731870445493376214620710635011851970736142412232621311577726598816836273069077555841485857525294299188730343999452951865328107336518891298489514963944716295141741711564446561967803464798638359256828668135296315294147310891439044311068762492702670728900723151756386801383861130011382167986790254479626754548806715854328719708002893862730495768358314839248977503295390359051742718294061063299220750058438337592026995276861755790801739845715201173725733564196795548676444796286945991762412869991859737037211302219068588636824699961893448911347304340691675240389346087954393225116702476843708241514442407445399444597736799638545990081298808988461995800977830452576752676027618560781217065860462184690622196349918868825412745882156831435270655605409297896350895064142062260910880728274672563682149977459903668120142196761103527449376924156264865972604013756859089472657064926628844586137601203223319278470949135451396281047749742598510855229400479071057215224028300377003796101306528746753112726852974202235748177798694342338229624026545015604158103091157914657200481776246920695269952665924196117319216636395032221166364447654060161441630884767118482292322933580487002653513950950629741080300655429160452135233203385264773541431624124596061248830859063668569110724502557162475067062260825933582824250213499407071338680679521182564513862389172130221802480923681370647908620921344484484618228068321508570232869505047227376086445524840001876205218559967037911095124733827553795658340710046482689750279926811781122393092731133340532562457408198570941373960314694913655493603012025640121547802565978878742266436803057863811770071225933292222366476334508165878044380245132707427525369959138005681898738764863927706074548547132997956994148859408068503199567567646908467892851670610575131520379181231042292896974732599815382723143520368520238674900439815344563132610413556144851418394441809053180163990314411335219949843014106145622208778943828912932925920441417741636275553719475858489350843571264876966638537949552081096909855756061013786455518822492184742485361148167242689161770880053074554269806842366038767350615818922791154563669824156962114447318194462049875979085155413058651011433519989442367246934742963703128778603576105968437625767421104282177021004106692309921862828591559878594600910440063164774579093492539665926051180658369947691144257653255320237710336787135159384877889462085546906056524679081502095580866654242224364471111526610900919706019925517775415669391748969408074061718630107410053215095723709374626946803842005572445036151464804980120605105668010415947078016083381538475675021496652771202063776805629232876447960057440819074406522338318703688014470230469356992942642535329397173469636582604752064399277150903031845303736756419504887834218641593810076106074108592845102071252498570589817437136587679621915699935427520866967527151098739463651571690777654851237198505823465269088442592068914777253864720190054800343309956867320766068629286172679111912407180735788341135058749431854800752723896657930747082451240920110163366790137737339814758578725617016178021078038423418120007901487305342898898486137554016493699351007704285718905946530492980470144678487940658255549695273637732642988103751881945901079854203014619552792471532550569038577046311213357605580751400942690363718443671290601725810929782925545264232008134359008803198892168354502935905159055319996706496282090317047324634864284404344134338715284606661029713311386363979254188315075365775655090942503726043779056522169857493155184801626015634822542413523700973038184493307923002578196934929309526650310366518177651107669861894562957068847089043094282733640561643017764483210072333045545593763013393173914120959605045504420077919575200695002521067775405616539334902263387817271376693911553363012207120338129826183369115385445290782023489145927962235132777856792266902504591491907715276836490776464524476517079878445958927121651149034324896870039637854608544006155928052960198244836116782772660335149823389215334767981453842734722124434981939302965026250634681539592585022455731784701618724548050832885346484315931981537210952719027247544837910555887197745585753074266114815748477785639422599057025136812328008902453701447397700185343405232482203345496922038058378385164749308149703185548514920530645491689110877664916404774527712858708671411044636862085975224346412666936123182212662127979627088817613756765731430311773117608401258742845304607413485740843928164882187168412702472422576904741055862761695288222259006850615067797837079734739605096017258822635350580664117754526330121326827361288660757095207812768856060319607807966283075267016739897875147370544549139444089743624594852790652790254595939811719196966763982887386195506879488938311032848466757243212531213525268730473822315367081131644363838867652449830147578145648534438274826505035127701063080594973712592155047994057618246830598882413377091352587470769875786107273263778385449236964010387557875253998152140874854994638579465356338574449090378731399610624139303253595630830378648917242057503491330597248903707658478054484713072790438470146198742563810886968018935906997970994082448550186818647565056027225397257280606632253084824696365526108749223070186581528601735595430600836662332652546176256357818864205582664446233112222193125315494164854731956329000615815780909907013250921570101547219238329955378268522779231353282699315458261932490873169642846081035453579185506239559424691553161486284743219836687831378529369324332012888747029247010995309022718903254923348321147424373692817009506240384019479239557962919508078891252267959755697590451511013041115622188218621287366216534879820739323620281673515930717865141536526765961851116077894595087589564952573367951450089519498166084661679836973384996080844764599760268410612252655262718123023393540366428615172136691635454646161915214581112408425177769682878509232331561016817141691413256030753376360568470355322399332758898488814859458073197586485289902258193783509934772753402765880295402917489843417409706911340868111947129929360180079526611343899589241973238299325883752489603541266029165311552861205943144285951236213436226380604779321280144332126775347096411144109769497198397091998018421050349584170884778319701031429393063499504186284973909044816869024790991731083114552494413998609076473688623775433043035671141295855321052594333090290253493733360847913148208297293873995800295254658991203876128701386249653949021098997265780936311842025911994277086217760152727490338683244404937531018779544210133217986008355693556608642410829218653770259681181540470760807454654125218062837330091360999747712320156988550674767192982887729502133517351181434139649160815673054865331976953543937700083193866814073057455906314447779099855373864021350219452754911202606914721913292371723648718496671637139064821989822039700839078528443659266879880955540787028670445577449104427172637781588294104963772863594986055036080100124289471538605193528415297037579519726349955253819656007136134950326840145020106351094847860472133080766520240183243471138005757730516540998936684194148050776414249220370239245287064828621141738334137934394896016697339695053366159097778298032294361652460011292535953151096528140897967395818505350851460950361044041090997362926200386394016970057375493417909108799384637086393149628371478538483261227004890982549351593538234634728850771778430678752774413879901833280816958778810081957773554514637952817065181912595738455682944047306922877874160536315826925332347708607350294208819560939295355702088040954292226329499150351032266183734436386021885883327449044774178805076165078095030723256550450063804637568593218026686869518734436559871044163888479205772704417678913961860827479994307216049211878163714957630150470251143108876240001280355458156807061799372248122819754446567508836754151582855571406941068446495826996069410596311816037002440762797301145275532499018261734893425330551756331730993885626396211016139636389087550072088916944929969005013820445617827377969132417701360915816304371046478203309618471685998474970329726595397834397645544143918387127832694309594670812589620446034608047287686842695503789347413462119375925424955355077796147614115865243426540183868560757005361398112662194095681764549021126577836398437729755407699643496326893411892300254720117218349814577122712000499216415648460003413157413611561621031407023096206626882412247597902446870313191267562592543680307311686689195372262394598724953455239263834830638636377664350049324818217202618903318560726378551829023634320879266875061879101680796222659498746236462028811329572537421148707454842845735494746032721384455741802815037682633757927816720559316636082630783482274769459563334623842346015139667841048419411649693093746214507024555864323317462008436918555666689133744521813067493296324508521541362486110390618880163500495572536250841634428405674911166370636169684382033085380396257188534115044452885244282400477853383661798256213956691744511878994535903914070090779676657952988045116875874546241418095527008464285147071287405258948002849208637467470067730974444738482894953190049468365132251923339619265496046285471161608455165057618506362665102365923788290298954464233180360941938879449507943964433613776652062961681425541584605077350921052653121774871566290310180941035602168585754898043757313945869169109859642516351319855347889739075743560941181206217374226738221370030250408869207928719491496679879492778310343536586844590947862613620484105895534939268829453970203166365878180962576710285883844796023812971194851938464533709676811315078720768709033317508220772275913697662040745905320988460289583516496231595983988249973784627846988591981781967895513697983062057622884744518154563521596673464207556836404822766864846058330817505919500762060153713016951275813685048246494849079158833736819405940821897164896389622013355824975838512804111840561842708459791927796997394146024861637189540727918632306304082834765749564390978212430931536461775259391204967464229351696704924016837397971252734994018219714198239365302551937836038830104953032940924588531623650211313390069255453547761381865034536563835543321842588591382868606755716212182779321971844639592311898861008193129561073221598490019258826363903111865405930311861578655367425236556643357236121662576784313400462298169620000874537540478613843138654871289938598216268254823363263346271694468468755785566012104169613987955456679773630599359022117162513493274860728209666178417870912498947250757265252253465518432591414922755989644988797935806082838656265878074455368233000314459828936910799562099237352885959890043105292374947094163817799711197975186020914517939523078930958025621420366122383349489238099936752702011037365832434625632645123941732179546402086009426225943436156752905605212034738447062095672181815793506241582102514595588533736531622201916403088282465377864414892209645167148725760450102727482625760955405829068041624100004559661530523248792927277552473689756843326497996433852507800323227641165157667808690384680807616672080415267555648862724798004475630898598587829515513702219978070060630153637187854960293718809475202700523439018326646310288655836033080003368564458049816484953800262300784325898407112723731949625750082913490827054240958684082436968620801057937376173387430411480030877878541518004297870245056336632511688560172207046734976293825721683884148377902515994407417193682622456675126754651129463365160534837101017618490711397752710493666070993426893900115773083965724914785461940784599030336686810431419899635751608345901000215512312861821767457208524010948037686907023138126282071083939639416927731279797441901663253409405093919356209220805764880051738282350998452269728451810132374449719044432902880472350792738209529234273900598910001450421883928724797827012444527336506003264808143680642141955499229151008664105910019928223570370493165900408092302588017946396061294445690603914073527048680568300229860606272424246820805740168328093777328877270670565936679257014374919864292586097206889876180065238397520951470821128252445864562535816821862941221953780412993135755799845522784443417389256594452963866534700616411500271828456138443050403973058748974978346627052822368906666595531658663955461984450158250763760965240557325655148803328904498727509226435970837040213772080978446140230499414819420925384327494107575527469515441120521999982292604596920646359621913072182218892419798286894166026933759019969550850916811130621366578538261933167602445013693825987999884056733422901403172504109426629910692110350795583085997126292894636737228368539131027962818351305557742302886744457619911099650539144869104420180622767705033082798080870686783401566610991967990967411059876144400155879681716899463044661306706567671314067909964112528013646840184570747923607848856902023060550164282039682908514814260179904715666371710488175795649990991499507228611631047407049337358472578197952440571555334616650147352169617814042552896401249954333657035013174274089867914030152514376144798902306845118368575396659738423808740125261582420908855606827973047378154057739979980962864867555773378445694519038991560220122456530095158375828134984087949793335287239171650630409442126839542112767870706110596218292195720123180924118566635361354884623604893920817814520515458873860523675549238445366664332178531255703074435257525185485304825242278203167180271379411236517189307656472509947930945592011048968337874610092950612692826156703222743875813058768265669265353373659563421227005612762539026050543001335195249732246125205171292100084814872053454594287364414221753108187537538395814320203084831177924901571769585729711949736836768745031686761625156357254862665850523256626467284365419035206195876212670670548681286462850143439625811092312889902683020513349798418331131073538377322460843515866205083964648377268029230246709790178912422399737914238891044190382731178242330889375745018168958829296550495649570622620694964028092292271972966458799214802258029995105591556208535712713630120781915067472999820390393418385737289588271029489675178690566646440243555756911539035862625512537576251615786242118322158684531749153980045689772097335686807685057500896019650020204603537768275617983574582530339538940404980604034054477765793337471443911809421365905108686106216390746372783526660494225886761285894985996505884398350740270869912419017697927869949880099879966507584283899339099167716708242349053913998502230052811569892618629619766414785202095956102854723451261451684456074727652809461125122049080139485463351651805220651216728474000433862252981309823999043363730802032687190917504823070471148292365264316602279737084470828370503795282100048771117524126716588777144591490918717045208318787037377293924634434016283947926955057033215786055137939478446027476775854702898098403593625640118605615890387181125883628290260404819918294448727993731516428214077547934985833391148323642416029993756644889444059923680340654096993650724440771182953814110638811196954530192013751958608390929898962835961216449506441460739306394360813794085636182650512624957228532537126465696989484353144573065734876490052503024361833185275107093414711765291561406665591655781868239942657370022498328025660488068493124416869610143422668368456235296563878395872584059456797725662551740719911685227886861194636347885082691588490014023885199038140912139515566108492168464223828150989699739909950668087472681987115088644523956978600831576468617015734822888396596988207301993652588786332548671911948689314738609719741172685545405441754693100811898865178013857824026724597587669457831144376355870277161974952680891249214512597020263076646948115923201816836239714147123710381432452988317458771837601167035596127045915778256395090896847467300398846594353811383590244740606184917141088627460201361406552882554721434844088741382787110776249530895849809940087065172562165577531607802738805498028013179291579176241588940497124890172698633995996304468352135942723803925592420717783648794547714051997518734693646617562910046797453426854196590258180169997097904485596647292121267193749649510204946402034606124873866278701780583639265736833305659577652926335954654401235938158180565012237047600739349761541087288371986602336127541417524846616178458967463100875045016105863384522180892609620437178199218139234202661825856645480626630293548056905860645550038976139786517330895991771446336104331122377295104669201345359628928402681835639596235921183133943397293407937897297040483703068590162201416575793706107497623840250937275630142001444719835300431250878049677039060863264914449495142335106130086019817412057601669911666545719770762297714142363527817130013749007900797472358214857955144038546973239438587244064297174195523937774910322761449035568251691240061892718603485981143675511836447158697395459839715372750549821095317262735044123060846855601756850724639472978650530557733119213921218425899929895631847141713174418721483319493881523929922082457692700712979725207355319558545421973858650720434831437027899811885452426369378198262436215119666990071899762050560457063864414685971397191988102637914983661169129605403497570522410973612773133632790556164887325341749865025333091356120400955703635305617038756281267204161539389457823363644611548311772949845254584220114369192157131077915357501485984070745599898620263626117411041424709396943973311552959856909826943864767053970531457950697738869132780244541572876871510891317881741469615551127773685290763009982596552576422039699819480811130416993584139468772161456037263196184270346572804578880579236602051893878617921099620946354110974995757952927595617014783701948559541060036156060753777908696150866872375017236657918419030807554426150868297056386976269732177063512331921343202117146167524497874929680406686152638069915162607910511621711961501455411658272124282050126179215765149149979216993292403979288447626961813333319093715032335339471469110457531972142824068826169605328409252720041756419699540429990684847419742718109215848346957591398460136587326500972237053197022388760155028496797951264162653399560652060323277612367811276598260115295393255515542044747757433095778916020558510726709095229270521608187606721130365341831772793916888460896681494678656148379528731699122674809219974808888062303885690849563693710545052439844272537044622255034944664654876597796042183874733784093727577015165906127245923874087335876038118837919253502560086720726960562924561585546156392254752975005440139088941386996771950258939415265963743931817264218783539621219121911487898422036648705865151351147352464694440274887495415886754040107304319965757724629982196005019575929526113746072819306999503785690772196460533378740237831861795501089326702395696577149757936494116317381169628112461699341808026071377132602184300094182922311098479578405432986696659380162520167395638294575677305498947925757660059320039600323393378738069149847129633684282130861208293547504691867472293670597956960845136217312016357742183504674384303001679636205344757577111734902416514762561703736751094430698570279356812351263758866108820232356796906052745871231813995773152083474396114403378603234301505075457541943905763367705438485315152884791381709220928797103640682455671359481612763799219453310166691910960935194823506490881706642160622226882298067113235214849987790671999078572667589394910950821982482096920844635938672458112339992605173738629216676041325728871140212451839707513047592689046727038546507336641693247727464666726343784004672153306885633646280640665276173440564117213206756893196204531790542244618658104433025644423450329043506231562149207932020051181682814449215048486011511049659371466110475608272747538143993963278589631132961788636211516373807538051709937661645381464820263136715126877477708248259416939369922862972169034794731391053092935771366315185189245551868189844159028538638411630795760054510802965050762479088246160838948003887639060050012918452355250354880480839883293106169920577210179465232697969774826846869654691534730274081408494320420124310226230457454794338040459131367464043134136710299823870880455672611233204188567124966762989913805981509718372192775188713017313457464239911682140702151945841249829734436832971005957206977532197690367534436691724103766922300413651131756215502437121049962720538049191976509313781188514031751001386610713559296590774034041999909549395397820417861780741797504034108639932679302148689873596691851432091473191084476925444522677412144759354712907801618291733654426154808762659323251368348073846035194446282795217501521762189585791942827982064828000278081922511805304102672952457039644327161613885494729580916412341010973526877350091988547003331002288378396462592843233403241347613859082996442219514735788119838089600055857640398344375818536955909511694097842437565156129049289662940703597906954564147854628318510812741271232823853767610810060293435901327206583416628696002274967700887912054223681990702212450204623102172189788396661593075415100631381243335324792855588680332103097944822827584577490969953749573320164107078130877318397760318841442370625707755187254448985716852212777161452520815215409962625143909237015728301464706878953331462739913180943208677571340488710971048425729557424867035890503223161498795884943376168386288148547622694581826592168129971717131733927068947791033703822237342283438610483195204055932300280427131338198942938570550739787650787934388296763294932962296122657562323246818527299944728803822022209486993784523901345193122353850617215060184339913390535037651240350076155840935004572255778545844679230801239183697833417183687991276649609085450568734683032753040370651265075160437562015306204092243080398367589397660156707495766950159231192870827797987079789554953229795931131770381775633958412482566117868881142973909825857750552501609163503784292493731882089820443832579050862042964894411730044472977956523541653762251603139935255764959897472315204683016974203041317116318941485022403697458793841434620081096875806288814046808277804057541641598835029662866548974463546604300634808494917258316353718736952485552736840232161262110478987180011374034119591314371201524201489712473067933329655475151888693563574744625301201329807552130818714485014902181923933027442243843206866443873593821971650852340181758464260636255558909004036353478141859414017366834381707720954200224818713864590133891913996247697536477682027221806879417697178214950969315392994695984734949580174890559513719159385367123040639691804855331319869575789599782261383697388458652910821130724657509120785993714315763591596255609340161365214216793749909107484428031388376137822513607958986515104680355023021589611780517735204791062826843177578905521338315612947301379207653642227435704353553960551391971807650398374325442742641088179328450173950813982212462835416227016025844897398255062020739021774602917959405601884707085870816868084476268168822423087675186546864772685352691134300732346515315316461172181014269575811704536865643743429436978154786721848408400685890649238655261165372265253029370422195999663986008890223723290878770386613689099843426952034154071131124209753645483051898891226365105628802623336722210177823648594265741111325663183650233861130599286351236826353809310328833994988632709526814239100036770058723123086151474318246081507775134689930259247933211404349794647579034906884429294499461217548899807550408729480858103128564975513391429514281216408794116569928515022611176473114001611323703483029278265664439010700265389468143929702122844243196605405800377313619003310591023491728098205594107641477697378527104680203654984487777616822460667004343356011554361573270301432136093420994971117887033700856208150938669750955238964658473879270622449557761578799593089388920328707521692703247423912930677730686755381916155336598157372862284510198370625106340016124005973599124170479938293643737441136062630200066241764316870546127188054378963139035577475517797981132892586826019825065946915317911563427504219335178455515614317320594444502556196802297067739126023278191462212311872707701054581049570780586220399043491852758889972607889580785183208940286760134597748763375979060055630791586869442566970130776074255153075435633427612075475359260321306990505315914578376774629699399246731921929494971584449520876083101472004369852213039408958405034326213387140401430038698943888317039362373562831384274173268378367050810145926464923452904949517779272806034478729150014735822245414103437705807552353414131602842469595693896172718298185238616327597677947850012785980119827284054511946692316693563512106471688303406694419439375779732211636074387270858425273469765414912185501803770805096386331886876251803030225547722439900345095159054856728813415321819231002223782426406633886407734866975433751130162724148063343397560441946425032428655180616439065363664849775030129413036830807696691686074408700768197863435694154945657547908715038378343124340796410303436575063179846688609397643228153213865187791619387871820797669766682592483750980023497376717990211779136053529815617392932639918894144292400316751334113255986699298760834165929062895306888196490902882350950818898036992339117783733630149454900766540028213928677379201223811738615093090379035028903075782314864131594088033738290023965658879706256786234301187497670708337382620623133792425696073313387785373187685894492939432579518825205287063697942924419213912669477628029766338278952988958173983433178164219106971848493572793395280780283459890053226439495678050678549646598682977315316771715973515570207046009240696092606108823443622040626750849109042157604063599156822125077843285619449713681223503512815946964424531007563810951237411309641175357648520682261791302071430330052625179031894166774827522001078204323138127863825727232970326758667100074990719879670447569345439798740070223478609551231848913734289027848699609867649631655621176175596404894528816001811321498038016974195093417422065199290803453753314952072955363363466621090950390261615327114992032243658629229253596562062136118090418959804041642664679770558139761589301524848275204342596613361154047322163873396484267446821601905142819068004278556359818921685430052715167629326543644329490478515562739721994820078041101671018146198280519831197432845707445308883824007954677593798091955172620068068523727432570226976173017319322843506495065966765215091900560021455635223633805993604105292885905777776174407060986762063284136340080823538229891520882166084206113392082396213938326515093695853709395579555135381812147404148170392701805287258585694650463526437448379651252204992499593619866106492545156558925528033682007260498369940967258626882168180059818932285676573980018381815008114685290358426766061026449513305186215993920877832718350838515820170508518532137153840224014498134027453214923650829483632701005746491146593468069461237778302334319222701798003528751921899974189057577177218450055842468403697314543546891683926525451118512362710667265347770910271585105303092607413929981870367163212015946641821481800731447282945060424556825821273561496133061808169722507791958487026189680199606718211743712941998691602639908218588124916713306610855691976039024826777222369455287662988275100753710219080984582281416971040710960175071943673945473063179276866249724444644833586759172676245818494404278706732625335244743954199889324930279850655449711491433212310749157223429884137423916623168579164947245575417575038881380575396612886835819276894268975833176552718246072422650818774337846875761118958267902691477431137986901127461892561222865184686904583141587203368475594136876498773317862138439820188096711564522479404343449944348213292778975793687110471689756612444680296998935692797833093033759763943621723900587677178285466254510177904820664135433332827215803671847334607387176113339969969944944737908705157882059033433454016592506146793010494498939619411776384901069766122502178825965099697047128549428730275708914003830380489756195969176987289766887858240384873760480613861670104492255580031703931946417455091481037304440992943107883249215914635663725927250604584333550609655980953255410808332652333800993434267410936831558857786007165606435828274483515664804883160168492978371938549957460945710963220764139930010460184386484559846405363214408571494722043061207974658241712281139670821606612313172070953967124935372413233131956426937767931043783927725300005541360740999891508181571891506698450093778863345949461119834109591700113776668091176114157908790272538434107334664561502633077584034211431607073809316539942356462486602840404771921786380629389335443413568927200262873324041423989886551878073503296488304717102929275714952558296328722063053468294933918849237212089899254193292285930302507410858391736495019205253446127835909532890880536213909802717504020945952535353142514501455871778788925430738664822892459834720620384088470596780701986150085211914346336167267836002224514742442381169704841298051693906090635511266281452458676092429397113872257865827425830623949861490455985843813126911844056402249735248795540182982251250037412390224716886869518407086951281984635882775576964069496831065638645004929041929472120005485322887221019982023961549212914286245320800996269831160555544936001303590140075391565190200889359125672839024042384603295761634687631346395224016879970879719791094602309494600231468056796289718554080222451625042538061452293664744994657860545340624469637900549319158986452458630719043588970347594556586954177352348526916183651083976347217700317697988755088112763817431667093666317853093645431977961424434337039401567388968947075374324019560221519442747278298444967783042637580137251069651051694555080444423554340247534026687036361020702499660632149619298122423434334672382597990169826903215842723878617313587592753470540260198318753703942366467058383358172626276053999893997012136705948826925438740083951004495756162471067973647573606628847903473679147515138702216528794380298664630266321921174329142574328760793989331508465723816816984678989724972311282882279809246074920689272052901253480148579234509274341894033976949092981641189983317238946631961176966827955207084114850167266920529240474562339910240353348646465939953843079333990652837700905434381499021253187770493368914517554447629034347245078030203374569298611281430515513384075329578483599150647438901240931737333199980666006360554741128140047020718591084057061200380706998581328590204085278392616413262771608213304885925198193189453623218957250726936471881495541791984676822714334452376840876313680695304227797125209650454117748524117542456070036516493746854237568682528379465414076821616431100680730249180139551888438219083277638230087191039510881335079213347229200474744794582488548357553946312649730535295469632493930561494042540054389525934438184410027515540421937771780038030881379422444070975344588702064720297134950139023877963875834439283386897043987502730853538067954081956481695258429128722445054711038442474015101605491520722859041211089157020250823174004934475330191471956560738875767475751943922648143936002648340532438569620531869279630594210001549185861038754702011646605374719663709865257243373841709516932879580572832716958195544780346962421593379530002449853629367626597874895505917085379509046792703065283252215997216759534417364986741709622175010612104858778230763281617678397673137143900730219314042583912701927166035629079276077512002036121260832011270729612048427656156431331673298313617597854587730531052350270392964834047851584996537909939568372303219795468422739254226918861396902564180042847986513073687775760222008215462027727438228220710492640961238854984345546838122100088832386277142073839566761676601121681527421382833559793024633190594300359394166436478604717112654393695763781812441245165825430295934112980880331956139324181275677150857304051259357363751661508087828943512056327103341763691784197393911701445173590758493221075756920224520687429499363919296535880246927652110885994877073877048324924610266486165067254117607204465106400344579112749896296490150960251739282392692248265648973902074663462903428458433804456276016104465506030951054620430829292835415075320182346387924281528116271188581099660679953791136465477046131311435094971064907646716385860579890043442407378322064153247563386118131466713615895453832547841891802205043320561809649731938358942710768122868851206409980229217829736617327668765552464464306452656853482389978720119921291606628756523850366677869568179792594924195635243440495251084702512079182281999018886259621894942407915591791337018930839627358362866258948010061016727986264991526507018012797600523141805173770025465505742938567194715306016914978205928114686919098862574375664972862536701366061864205551457136053548624055273275963476403602334068720801086571864504340434515134509624995053052993152969745389780638732181865162053984900982200409245829903290253062011963213567463657425123736522254306248942800992559091893138170213390830701697004597851988228961662509622798883664112393694726837462686949236543373816584733881683274642901673576682747232807706654040864238043427208516898649482171100693192205274105055640515127818054691667846616945560368599490640158159437055674517769489426029900991923333056715120317845976386147731588647511160816105343046703209375390787124245121231736584048333463486071616786257904870859790203497368056881128717037198942589959683545004982051879504279559146523696369252224302741134120137144943226892870082668737398876773640744799499771769882333619937029491755279372857183640244992380517258129833556923629349958997684162688442264785515355198519662434077882636041194025249277745258451855238459881488532530086681109975512917597619411147181483606127601202246105648860057013297289863937545717025135391122002092026331689174155754084938382229362580609101852101925479544475591832011266539043054393316846092491604371816778719574888936431152893075302415918581155582760724478559643647042107997876363404169299617467331243037271230189365120049912142467440530533501002472040630931597055196155255343256287268446185947242644770725893237238138674007580894503359666727454926000346258727488412469042039953795945038545164749474174827781990578934222893159481058955131483513556642438860191020410270861544310286269996621473949894978906717463271098945318249421827589093975783697255894362086191753683222582714118827495551542632260932892277210534984897680122106468337302325336847741381706622788390500462825923882222644286846489088802235431413477695815183856142180906822868093003151972142712159378156427609712517411753317426905331421412672668850025485040982401334160169813244465459931359584979071555630791023716306491262737290808508558715173264066112579279618551773703676853716239473766394904013237124054963951162768179932434775743432120384807883318280641925563781573710400588690550424477768380331513413720563380750396365359341414361782872331344231723928635725834260867964066608160101965662545610600439215123418549504992705893263222696184678413054215649993454836640289019959201449168333838660479682553521094710077276354130071482431047808921377536006789564738116044028531194569859178922566117575315081834770812609498786165391474449935937210089417573085586376041710458424125455720293431423774490140258829315048502476743894011117203426154720179198097113355704404236377516244152542329378635354732499119110860979870644427532207172098858157316807601422932468759744355915607114047703379403266176353906913041442701974096585321654153809568617675330480149365080543188670290816955566269211909584861916674172068650686011116014055349144628484043029871300508710801632382350628264410055813928392992835951069723998202799149107305211895178699453490388910077110630031969717641523745297146285164241542658876578294755222246322105902460934946471224316854440582728379214055739750476083073120908896493911727099643497702660924220576338877867279062991147747371354332873989240198861566789539477694117073030685337158008348924435803066020912403092777479474865360290987036134755356438458798694507070938657910569354364922076859160167043481828784335773452867935467242258342456335848560630077559303824886861001599922853459722835430200095831527259953836700677117360298437905965345718989973112654343042077106376419146353378932745895901448230078102280199894684077749131064280702910464123850692762287775898529941853688736231602043485382981538237975531962030792372211858612763934012890807140406310150205269369120815223112616699224834265492012700733166542889626265615294549302543559823210023244966418665720561606318431077595478087814786734344776254525635116907628009112122116539880755242352915026270388172816002132495254668319451636856172400603801267244013566684132317955572568430347924014246260750355725002322367659353779279656738113317875373492046156812384064128097475495294716455565704406123462106558027250413328083313272484247811039583223405664199427060339385375073454220680395051992497037629754581183070318638803185409969769124526463880989145433821894634637572221087014231356586805334035483479085625136524027333915113093207747880707433348181164651327688250085375313741556895359336478607867322382431591065792433096457183924895482672219671325498611206756649896165304403046966676756237947804446402213111345916602185147471491857113110355108596088477593430701947261079093336439280588418895519835716306065890953739658077714982438802469521850555232888339727379584608953791641958393716377838076210763055209011382189750998573832907224678004526117773780391302037938311225173452091911379929083059411726229117074314872483633611362473737598399743794633937312483446493786968667713587496681764759333168546287961000226934791122262697573164319507631386987710744995542656689153278228253259506034675971579830724412447320678500342988376712813550228853975632940977635494922231750285060235794083711175570850531774574863184603413583936379854641232201290104353918486950603917603588927309753912278165888767712101082697023416666531889319625913417977380847144536013710429253443109995332116351263591533903779950692802163713677523519752542964178663020058349518404455931571809643556213030019360018092108280580552053280510998462661702600969928811751415510892682586898804866159880176101238583752774808087748292985067503509353211230557354325528422088518216003078647179127821424598064016988913011830642688053476988340241580306242315002423187067883590415728782028012616142273377914748412646267773845663127766114034743685419976514111472971197586688711379897265571040477777272777626221729922514747749366155579982435569387939965646581982089593032689731931088207636462797541198170483326121832590408947068791076768341237570005016443738061494715030333896930151235699600377194524661374116962697461271498386758565398368053397563305486410375836125248632758242398772218292579143023589498587542331022881741177486033151849940374091422075206847674952496214262587862901372017451307814002474264380732826701588108087272743495878220645323856608857422721503058800359160583200493387979014399511279401702917679269495957002556764362527821670592925083648684402391884048095909759463035431073391409429934238841982091123499834277140407655016749782255829761133328060481656884877533749283842625153604355727112171679771324661874386979344558285520309790206080965643222126269600441322390473215453855263099287988144383347477325183191400363186373573939404628899570480352506399151329907340073916012799348755256984627293660105948367193783659095050300645353581692336689848805540538379507255013044556191584980738485133678281406001501156853669158259701808152347322089112353723724909429170740417536632401633332229448899779188891071016723652604621237922638685311521954134193288910395844121489633754785014619745434827310672254345564674965087511590512719990339384115791072535528972291450360405584728565406909338231579777454029553546116514911970432427731652419529839023750013987006476199550999174764576101327226492457257127769016622324677186680724972106986870670274606474681048386979121117107545450726369302284951229625586532540837312391443817874203320950652350255614113658055317899077529218692951216604475565067130558113757932580189286005331161026847858322171818702400525123535461804395479322666503386641523406628881873526888408115399681392654670558436838284279686350296175329285599943190670694536489085466187458480961322004195809045157833589378074966805365452279152615530318849972749670091915353288944553747782587239709886653287107465710150361860395138186619829311110800196206760362107138510648231489165727254466952071402113635909670444519722619600210857050249133364715617677802501867047548192345963447377635741672797546260216275405800228075242718031473631787405654324389290840702982835700743813528345569903103130350567970641437915924806622806664343794676440969218624088589843972907613118174591657616487415956381137816770443778528143294868527725180118374542742608008661601061552876352330855106116537896930947431611266130130358298600521030757003188707797764428347396028747668652766160256856985796967173988147775152737317172951946924438042867636788664974156606466518235562906521283563664070957375670337168066427344763753909108612282802889670335660864467653854329148981072081926352090275560778742532321934068038947508194402464118844899367046111997081892712459110168636889337982836682787404536964138853114184158294646427258215298651826761550821317881775575918556588980989417965978577411886084967815322839045486965939496829744700061464781441782927710293388128357343357064606457441324767483824214937585047281119646709260258714894265133415433390242331311035567345112688079484488971708820833929280147441645289197062034917078751742119061857749375032349949891321383057000572823232606746519259880689670122972254759609662043204699837215833869467076372781132604276047077309753327822320852282044644035030957900219157081944013745666146417085479331807215496457390570051817122078543916670930072903548728087258227597926691841546302768832250958545617055891263722379800980241655832857265317597403202095380108016774737313712337633000418255572820079562386138794164069216522282402207739843732526441372359107422591941663468107649992889418020439834592590850333660407827824919507493872397115969608941427455796053231647564261931209872194634038609492283630349903098246686260060960142241459729391381570221923045344626592010973759068827939332161073283795755733470656843164072687239945822464028843816611288821414585696869234747535913448427501821224255779211539965987838566023424988269827826296193079401658380052289446519728303577662506371854022097494091789324300497350907547418353213307683581910446879227031039760804039172866343845707756052394765943502707408385682048832313063369302398282474644004527251615830103439236399006688515813442775632205801861790143014180974642316865831130664517415998037903813642167828204915448961365543523568642784312965825047579828502893075054873905104323826533470940715051656822010693539123623922461647648370786516745752258993837197801924769933939142474084487644066056187573681166247868033995941506374912092190360625971105634905358235059408905075497407507712685932415157381610481378972977387141017144548931076549077288529051848967857817466199186694033451427694227539940414089078699549711493887225349097561151951214607456596251747931728379594764640225177077891134173471513469113554876303080324526774489610327023139826125646261167299125080834805734120815001099966019977712987972615689730717663609770185225547985978108383173060171078295579774055903410847050385804161973023155315350744143139825227170895584739701012949651509498146337752874721106273768101376012643082653260024234347204170497398265624151681050979565289246345899271487644546419106497811375290342554659117764425487116125738454250602059588980598705949943335341134080401263767167391033015077673263137676801297800609245367510193024053799946751144660786575443188387330013474557093842079234545642485505511063427400166478256212537194823643355147737522752909619127190998123069895322395378522681043772022071262928973213753153411326310914691568268565755773996294874030743827389163697126419764629410000258637432572256205188681184153627111350927945561593382591517968897913577482397997649310193873130585266173916748248768537771688516000874401111395075468721268852054822463888473460659368567022023354860183541607290683903895956410967998733757644240348796721719847673430764799093933056554942876166544451705875475348143823879085005813818789076713179539712263348199423066865072120338934690552017877497072420763439922223635566646332172901703604582673860226168654437704899884138650860021982219401104965723441703158330938554637482415126407148677994060244321437176527662335977857450405821981380768596892552428008267735874146898803124556000127940800885344722550773358795884305373744605212742587726256245697796336677633889974337101508860454374465578849590227964099211079560888125807103151842679836758996301211849496695426273715997024482925769360550466333060451081618944851735633437811776821973446872980901494102117397780169351324669543176261406164750008305931282635012572161732520583761315788413345724217248986324662776532407952696937269363625585272575783482138394609639327455197843099778299746146898770787042398322671280665293092545532174689031387727081519958457308618401020732394822708603686597342803130283585784794046098828901105921558130826281259532583016917930768483048530673011920297568762560034352758024091364100943005776872475375425361966228918669485881970758821057717323209461407025343102416040242138834307879644484812806413355856222351167438615413150121303543885688363242375881796757616082499912626485688407219003325626024856312899748713955697924019983020359510784737339273247015714024572796637982826603309727315483510961465536872207313914980410614669957094907283556752700253418021472096908028474151582485541229460608749438490711165732516535439502266827309246529569108532377869009759105864096570986864754159422794484915977471542888026175055470240386187514625715194805942700845257329339710723235675840237451232758351527129306780657742814625097041114093567194867997991116083751982549682706886271960162473904522873987950961205585982792354171056398404164705589691342366322681699596847912313401814503832238926138424681473779395007276235618221375105185018853747607371384711847441924395884476674041835588605837876896305363812271050716951123827810654814204024337205807532168238760208195080560986786341978955807321086936112309526626600950539744408649873800866236420341107338642745944168605109222290909384069946555709450593623900895152677337638355685456887327778114442250069289371596034155892457861340461370572252759730590948792907539518110537969593262428263106128638029213390720467724872492976224596339089721404685229641405447561617350955826376775597075397205343954531598426225953743667984011337771151441070336790783965232060932674742946618098828095700441799219311455556589170074425772914736986134334493814172295619243821021603505068784685308216103759117859173523821058872121148127514481680526048675542381815224191459650936370394210122923313015069281932544144154317327109022353576644524455937085220550200727166279345508710448571099159181663905600669034465701108025685498764320762115455957235577446267588445314715472577593651592769391077047865022012901933033381619374972185932492650645293662510745965924170565058284586952407197476993105358812555464479345920285784607656545022754253808568100489050211532018772241995874724221063042524657676582409275405512680498680740414848141044174409069788832820608462526636511007200292565525414031103797577849554334781525391986408546388356296361784691278068752468245537471013250829118423028054508723901989303680288175288688355624448789032942477243649497630477238812455966647838532965359692297546409028097083245347445810004685331521540473269284771493383315910742073202124765120079283828402638785469396111946126083050223417928534387413403080207839435262487316095987126650407872862094955060432287192115321610473758671641169461674221933371793131598660991068529951861714426280893394706545560272183539420452088616765773131206710038703992909696916022498186323193712955372331384015492209002701376452819333053890638966036703754223242566099343280824863022134378830461396344415925108896488352078681175518558476783333981938431303935173894058141086535774456284901552103019658275597858608959683747285891849169197700337719662726076547175112992193679960980402632561121847188264957818111493795212768053697122225801487697176444014629898305564522799930778299153104395426338985449890640123636491433978874701879260298040758827612287203364183117247395442470432035256725060252128465444457618526667477392528272331103984346402653576152672775177812753874582795744333339136198359932551596248099500956204301983717043435568773474093843171183961816360012242771251864333443037538066914235415092181148587887109926405809552773155902111438266708226124858473193374622855114819120360302831524342429612703330399476323410110842311365283375559426039027712055590739460754835524406213735934165499553240658119458730751023705114336372666917396913273788846006630769503948719100547986119406603218159447969324128034859488983293313624128141461317176066728541418032819541539113178867581834922167068725851238706788595743766791526949908206875059416784466894849859094872301130537735316025691237971055777166536727320516408726483439199524075045127706374870436599000884998265988464446606469529942472776458239101939311447019445023157258081253302544134568816762364631477316182025306744053868534204750007623566428901016828238973449883322261021371694998473366245734589539245311240956061193760443751144004295767091323570706336289776805189133625427785011883314765737168494277510757909558353679559343057981671215285841022041778575722205906224827558443994890173219784976859359610803502188470645786459009134105247779150254760760694685626672143386856567746458719390278051564256823634838370260108969191050609060023165517346603399200379215273563778786102904445181297192057494283848555003255775661413882819847496412870602498458110822194279355105167956037580367319983551524286117171021613881029211772990788262080782578120698865750498360938416953568158420543811805879076209141242769001265643148819217182361434314360186578362791586298695893715793053461260770199138910577841065020540639477227836238681134209493981781267433076818164731917947719901852668812280201832322354373624984070735354483509259297663767767372360628727872112597597695776404246818556889985440866758094892041794836668458830519050665082596673529403313257330209472038891364596941905637269187455860030087196795203760620149718963975300516095331272917830459267225582001173149562149951200182895404798527516402171834196453710444438768218140998998334298986020496205567778669215188590058449785207226687571575654850343315692008638817710810157061728948176605993128003247113269039948659543388060605526726829203677872709956063147127805685095566852831134089512285458648993461847010601114334615587979195403855202807786923612019200533377104654603915363745840316410211972980953567318058591272773513562292388385423757199293446669269866526945742521925090374467980676982377485600062445903712794723765799636795006804723174218351836427863026828900226990706036463031631109293520164945611481559788252350748814229849582045024673577646127568471762008851128179141011274054835357357108856672616564802122880040682996109067827706544617896129646001461390692825330552787344985086880916044967431478460068837431382106617182774926781643569525777281902152453313703699991040420963143391103885172098585814006369144160603548200240447980492986314895132701906153165787334238382979311277603352186180663996334629781529357595251864050020696394331983240531239374367518549668381810522008062371266736954024012162635852404211720951528359247382663030871372967640557265169709324431535058228170537586000086048275739619342312891330581938441498762154949123732185015954432699986382443243952792914650408634424323036752974587465890215489715495522989989610951146244582719127936343718950475831149187941653786054045106399705356540063714232147626245421805788484870525998433457431750860409997057252223112174845195945157141165378934701679164207207431726839363121775065232962995345210005125173585964488607204040061979043174259463347723220162656761780215016418971485193086089034761625116250528894489307192741371347542497299331402466987803801788270876554076134434039229410250873165057306666879134265698613615192850847554575990489018444006457374303687534431377687378072106714963198691551059140938574083568208279144814266188911350293967971597185281384011877352185187935123735770732327104611791503930569196878022114751847218218701587514053985483055693016451358198954737258199602458073436955937487096933937232153522805257506224581562635937033722372669418923580134306811667076441459740587689336124870926155096732660496185560325013489720972660840680446172672421386206064717415505697788279192315742571302800420812909274404176886866924408815610272314343152823038703305704845247793087449511452469171670854950301212949364831517211045319087545783054226456378029584631013839938371074892083217204181639654445922869354510579333397378286147660050893478186981273169712037131660939344788336182030900861054421591866864806044110537426528022909624085073880688672798287231823011691552236122518957432369650337705771513572243228439464118456516693483214603708255233291068291474756634117109552045457447479768713394999192540074682338198924511820651249206449371369928723592843115744863741310019691031329386643836322201864776334781528217591140385737770209014254071472045838408598125070139630818356723639146798936777908673642411208879685354967358551529078167377401079564586323457205443001332863337510167729498441943956394550003569295494913828817646021038639539856755533483355299033759255995452207164838512051540557073124796065732080945219278730992680326297247580470633572422702946302756185646725478978364389599563271210659194415979283272898744502434526870011075944895998503789651260107541329111653680365765904205922927580696138789757192728652279648769940079180866441863712403984151776719651549264046297561257945031261282416008201084939320886382021534026845852998322788848604868389917518011309081864857607889655517580306678527029313245918763542421931347551661633131405052735502480580304987021050291561578119714732544127207104804448426870695456370478182705667552594526385840724330400290129307663647742934381920000245921281598113077936749581413044124061422117871745868609272578670489793926112812114397247690446327450956441951719619136625565905489445408237918832543778313865220983709265708471035410309320742244138282414740749000513364266594314424894033428415928941491971616443594529909942977619816847501739784187596062850998789764285838998353512376328985384032727484951375453811892034833564208620270598176292351681520354239723008983938468610401191117882188945095442727826042690624697986821234657497427769161527443173045889316822079493819022984563340125710679300683352925806021227045593528280304811524246827552342040736985036647770876804697481082558850913333155334956966824196886625146768849652372126919797990012768062385531429396829324869848984258981051954709236529697025185868287995517694758888521653713547909108556769901354376434533906303316304532287689338187177879585861585786386636787531256032569246793871968235466041566972840901358580813274128347095910135671293887677552405251795911301661133590554649610378769296830662417357364635730093969924671900513635668563328128431370405084186027350064096338974623837660873789879987851769989926506196794403354845566589063870269614246579606323340748671078861916626420291497747498961374652549354251137187679444551629225996463771025873730372751741104465989393051328259555423502266268344642400481143224919835356454427285638468145091101174693030903730000010686415187165597007330424267936680779442021613565066971258638150626881667203850498628726133961134897891324279509381455501256829337778660809608746117190413811205159183800315452931266560453814576302422257634273777193153903655291425677671767680323831019985011043820650831456911789064117394775336811455031823729519003012794807319331813923121267953759956531135649372744767247217011351873887151496489551171380100832039560607516429491626452829569689387906584313822197548027009919286740043874625681826934518816646555444123013734501000127838934636004971807263541932878672180232855870071619128523384798042049987420156834389724004435942933394668005799509552443536734805407277075595293994594610331187750254973441572318825987594131927436091149080630169342741732224654699171395452632496028887905098046777727506013221942882217254147932175847117373327214235961750868008269044700095442521518244988423379269952665208551916182242277284717085129592332446529035958722169461078459459924888404208656818049599521546872043422165027888583856544749339337077169313572174148962842979788871548058802300242516200405318553361229501968162059412799652541706584553527940409300190605629261949445492285537668220074229842989631125553843451994878675168193263059190317581809832544537840412073289243580720651079276419633547740049970249213710513771840144041386656902498019160032839441578328550781353530181950702617949864856538344825753837556137631903847104801791414217321765250032273744406756336763563810521423771673168283452850885266017589991689740749399168923341376234240684041010453682733444816547398052260051944694072049278922930097906289090120470932978729069948325227718024977393338479300622472494944739764049471085603242270576738903713986279061276612297090130050792832659923347543232333768582044854371644088370024655289971178182731280123611168085458676301012633390880447519608935452255025633917815595057250461783164900619994813216990448274209915431192011941043579681400710360799642318942130458253113404455584137639041734092118652272617971159926527068572406412549346024816771876408271789608357578192032294330620899683275781971173004905321088376362218864072727230953032667713380264744411615943924591649489812301258616597282279982021260618699328305174136453928345093288952218810779190858999844642650862474078150938418800844063285471051704188064831621495073029746111891500334109812346635041588654382052475475918250283067382132407312701830553331649583979539221275161162302472815012918473951596408481984280797066073483642674980951784030639700344519525360825594609485793581005356336070527069254409597308084487154545818615808468289103672078718416419996948300327019866352198715571411454071007761378557572230655511209908914537694327462279263777152993474906961694947040094629860267347361643531466543908581132927838625917680701063145403603846353854887723547384159139245321685508622265376197779184282808277444424982995875324178987678376624913533231527140527319519241813855954902773996197690013388088105905276933378214006791765438431104493279351500540398203876765232271589243133265912625191391477478884521742910025959805686416846413595584195428779299612993430617208186164539443307060123368051411090448941465583699308084328288166210931259868281672555021536330352917254042397216702022895272642621981542521125448336974827845597435374030247006031675875014871495084489669115792985748046774735071923882286331157608484569517635792598228428640932891221872729952320317666641974913070449155642948807703511164438568436283147060824840577059342733123356674065488916571489349955562174774514817879425050100967343017147502901029747983737855894883284773858898621635462674072082882113434090480938731235189627627225203644579777206212488665980381738768108597916434111235108244080187325649030901446755250466086889157693279096589161447614851748164065575474363535206428289253924107177591902788811724214623099670098155854341536835121544822235666962456648521851211551550057728531358675066080368220469129676437145438747352831838827871040836838638394729013853208011825134872541077093774413993104808603232049979679795468875496612193125416690432098952648799354005288565166585155326714109464131282801109028889483632018352920982478204704697164630945447573421463596427225703118658627572438633968627926344094125376709249353080278772988074088269219189318242081465521365200032166169499634519653674511090393919366427397659672518511899738197433988548444216636698940136847936549143175227843082320369083956158601652636546764384026219836535062066224874340045917427028492425020902899189284569898241581642515510911775287274736755245698661010737565202187137726740571764693988495517214166634307639179274900733413691635979605300302187559783881114680431701230814386890457722826548787697314271833034404849461960579857098967951879352928231672479170622974636285937147252668015137908461534798670699645718277865435041922020604801300322723544616367259238927299100199851022162334044845212493895496891428081204272355131730902165019995000863013583176474394323804532492770250577743098104741014258124974928997186268124773403306769616272333075960704883035443844800042199959251194280894254855008434648489344925854209546497218372609083785157462519014451777909662797380830730473253301545764114694717783251072994828626924191777639071953136338598070552327103613799160398385768841294902454181074165371927851499526776030535873295422096381232997622029679499127431735748294272401624350425883393760507315256904671555507063313368593799234751617799423398553575147993873551951638399859660057002134562166054725858918814400467868260264597895479880966403076560657193842044476822608174521716546516382623072375661465349522083976841565485077253657547819027487375210780483338658073655655098558388468325732686010030394786709912280550393025097021383473169385285014851005202626319382979438056650679804380907921320144034470493921497613860030668231668314562064290784382133778001666205258921695690266477449053449207650018797682785832064261654746060952466313625026887897113045092312072484688143968377573550290245108607660854035947960196151826097868498466614198292716137990062212987890604224498841152406794201346165128494005780100963600240163537929522209887856948440660886050724849960265183722905715259215549857129067989920827260225084391820781904337854674801918021909725250917345353839696413231720121360870301910103368398747648534103268771611720050747135630933103183472969356811944764341223411629123375615124907450860543991541568548810121069235917312878114917692656957356168297890728961033526565045917604836726895121524680731700313915858868077879121500401458135440108611212847980138365031236157946329437386502175410488893665235386940590500665456183043135118213430487752762711133253248941132023095892833470033387455679858233635881554346625231291732502781189888231693993566539208078975149367042491992675378402995973516681343899564057025389765416891366181654478163941405747931435713875567633662827067993689044244534194380370061698212803457476974912474394257561094697095844038761753608276248402694912760857337339912501528577348789230366823328046176145841146517731439806780272269410810680753748099396532494452050539680189904111076316246689659811453323582936646465415708989582298302405599003332641992903635713147698359091394485518596499207333937468468845901768789628216118596841213546682985212780891597080331680354291182583133192990504854873898814867698955076887559329434610855601608498404818773281930588984923384011771129313147953745911470045196335009981719726511472067145171761012699605719398408910125488968408222221601024234908275701526003731300314228288568211299262101837083794984277379980990725240074650987605224897983438503767993325977174299791498135773829133841486559632932578039261189352780016258756121293368528309165729353536895192229138299034060468853879283942774646283015501640905406130673353133955712076498086765218558863517135472844051676008633485510072980453296368834231748150379588527958499425204848637873645966019636428998649288686903669870596889108045812923990252155609295780329412706662733132552941840399951431988576491157801804267722104555377457042972502363621521180792189174559706789900951354755502925429131221147523181704537701951199226614162693099118960173052716883574904101617560645303022195885622580055792307444160216203242261083673267696849330350427873655170308000826421794639082717749399001020478342075422186608018654964346247456794820463095540169729566436584540369913861314420122216341161022163951422389766339117529214261151910167839675192330131742223860193349221818267257738517556089819424852354729817947859424151287350309949335002746637570282452288485792504493686712604450846985486639559611491124818757682461694485013372919609762652106604732270880369804122345795532533970247898005282170346523807311899667974608548881839409696092841664579265024443303369767909867568121630567433943183146380040604784604028624890629290947717978356674877572073338552771318919092991464897341641497414145329744134364055932221680229885698102321623337912803520006760793105640160615283513604173215137375253185850457590288559350365701708880959977390587102686336414605344577642584453927069277221075238206243279480875300646452820996230171608433917339703556428011606265044297753726980931529322174976613481910012231327324042727831052061535945059759911293495877270520498357199760227145941530958081712149208425961388036707062258873911610116287257522173515689465305732796275626914049868786451185916915383924120770720198821888759138043181636562040398547905580647322064105914427188990276987866771395734837816301351810510556036217236286827180027631244972552830483164288117267148645966858275007370398309870829459430082389181179868025364121807718005122061441192425030358156559244186459580814925565933383474844339636601761576718247297264201914756903731797777395850205032039892094519259926217212322309780868104074286524556788250449814850669676726902155593951061966620064356512734477731836208969682212573474501154646713483097341693527008973266718415679166825198961875354826456456247654111091418252143799301863146429332536620138615306714182188658460844894764862004568038546871758209315018241947783177083324692987635396942118043076291298534482869540162622942350543625598836289932123123391655595535476520654607448850845208323172676098845502249248830638867747589789615859692038900639736152932001315591203858108140472820096838936559878861179780207100146518294739823172316390000173255245499797908373667416826868487580304143737330663826574767878108619719188263369794911899953049731837623455914621818014071365423747041179506038713516205783627054280159017592019787924268512308269803660598679845965420684505485730620748930940763235492940782869208276686178105397586965463076538488583589700837050777828189387669508245858516780737969154299453656503410168468766662479678660880103362486958758281107646931480432440063776206544006616616161396467631517081551326064481750808235858776643147644285313327581808102194638556037938765543863316501897213048873932955263109590728152618783176750986636476630030436598986869620546485328457022837650111052838194047060025914494857026575901398292218936116476263912543843471205721409672285960770350659876118678262584139500914774041098042165981080477540119613398370517534866899738548758358800445345099464808169509517045470089923162773622297528776953093310335537265870025000349424231559161384888066581348740936828390010206226013108712016280178007561460579396604432412643492819879786052532477563652907196198854339634430564852563273115180436586639804837688557450312730880990674083356814021548177975389060672730272207519232341953795904303028274862166444769104878773002068224081196781074552874554344273631955302363426343137514342791496984832850262952017677157652479628210634607213968787493880327461688626106454042420481487945366040641251803695917773810856674071538694919867526441975006965580693010753089681812664538351086570169986363197130079252319578767356979692353897088069322168101912055535930272579808611714635988234276333186718417354169927346631250308058973985405420258090587059613606199371387489177038601295096098246495743581937617243216899947581756673551040436615931448309845732212525662111285350379331876429536116599516968534500110591792853149490604490629908564090827244825171128779472637523748258941616810242486983111703258816637870472865233065454909585894162809506510056747371236733068683791579394453960788106139374312913633452961355191333496876565886411186340330512336666694978244061425449904980430604486539099604481443276028342935044448036011110185671594611499451171614699877890542398962213094926607811463924039689484417437342893447960449477295658078355728458844016623525823301639710979123853362309228877450976117439312346950227912871179102301254186332843052369731310471164447592020870178830423315700702495150516245608680302312081756502984219731018726462939497622026177565480609484607784404970290198044032558112756947897448498901179526009350122559290046172341135001291729609427230485616154771012843721424261340342476691529016344676219195443737483397399431929680097650533831416510730430163157406030564230897645985411342297944062687709021032056964062951941924102223495859436310161201675326336365278176397696083380536103758254754822856802112547772134601956410551606438626980351778958812899824238640266517512139644038262391596079036440400997301336646446272079942466024989358165965569726288063992120802738803426622077487484831740820051984787547784422614544704943478007579276650585199295316023436966164783706623779953482259737250577393063436437438402634840503609879169606572318348597218393869989193539596970541158864597488354326372654925034125093897783675424093994458120526618387204948412605313363591465788483730626601986363705034334495631360469499676226976224614569886619509427180935226304848052314166252435456934454303929680230303989180523578037293344061711426795030661536663940763934444964277551386246623258023841276533235667545318981141809133171694556936606220018459309781798101346734702396045777725468838007388884174576847391743909920808355510440282694952355150272271880402544666778188247469918136285199342685331163090514871834192059956203915487799964580388743726490166540064199617418120355555943063888158868555244266527727536343660480066316454360886734052761598520676051140823190388077608298200158652920018327042052284889305523491736080289590406566681553131839124887523665133610693075613549992273322316182218230613571299821658325079371028199338416684200181929777127773367751202195408883268607091595028824372751977380074737821789200165200455660955715427527248025649410913842829389277688059338668095244496325608873391917326948814225982706924461703070455562765858399263427435649368997269356124134943143153242137902136521044881426846362768378622889441472919894005921359446905469138348541375391024765024755104638326061255626652685229140141769644469848064887953304146321866237659768653544348949759624087564738168248236544057230724547756743368873652001327748283004145319672520322607109780524571700048598129236582185848240999293292563457366652410852159166195630681409778239406468637548795405459703170088042018371178144937015569151861103187725288575321849504563067176840332368475011676697005727463310189670412829615576025305237032456550861951232781278653177220972555541503107152313806965959610891383137302770784609067386754491426962839702822388368273645328057286790317478870253852841874526043057514435458267950338935245185794562021631532069566108860314335991710435602041302764476348751922558892737691943314916959167346920487011889345056387382939445760356653720845233572339972681393401227303993440015331983052349816875761382343471958363320281327775817805384445182963180993996768689612160636883847272771098934050264804340754131098411202942574487744017976044780551427597196016304910895163521463735324534432368743704187159714615584548690233972394319473279243317875656194136407441758758266825187254884454500275055366846051138484168879162015152997425324703626249859550044877016911123113872242471507888542907450708897271207974894583997883251847056154613120982483658089482152474514264868247920964847803373300707429899219348093306719252612109044594032937108194189182507822902765081027700210930310512589000117490136541982897863067493154549711096081247754928207108137470034396392924631245952744473993833340994533135352026689554111293447539931726002977097419032592323417191005425601991638638991291297933459101794627837529387800115155560153912027104472524938972586961671510334150234769540673603957597023791844661036535513884129835882635300161203184073082783717825226324024550191875952673460708947061160548219374294732076436160533116682555431598171326212405173640618916712564783522887413374161675248429512841364603914049652356514462101051388616612417305582605515201361885583869512133111114833728754145073129707840531725692198540896181927996776037356415321456203251260976077302475279482781948409736997423018123566694129180227938779128660778668617104620414717554490324681331971483582814498045996696074161078503379605517224339188620532395579415473977993561192316545631042512592541808253401783683005387564672816513668231887187980709936997449637340306503770438051357803792606556073029061348675762914261165783427402517198636976146310030835111402151665862102202949614153722928207894814475030738090518879598528826770393277691957947604612698643102999946502729231255979142528559275814175258617473054043663902473616725934785992836496507654097168002085099605813703534531342354512822334172570083301068314189643272239961480523252884689230106935791953890236122800371472360178406689583773710856096041521397551073251727566801444743004937657658522483383696214286035068252255779796601317218523116768422032259251648847439287074854025683222656266188610248211393409603123935647921228090665926678633426428837825751496627049838510204245982583920611543540975035723893660389860367761344198678051525768092101785308930444737480551641737454895882316603253062358575283002358520125111315606488341885995219045120079675954903514485504471692523332473445687103304661736642377531529599736731859863448345614584114554068163988549198674789858366572600323894549633518936718833578533074813926002727604175454707919828475952636530701028887691720552918540255535719354822108820868649378065863401599743613432856963619759575988150613636292885993361277930316197583524910724222357398118312417169426082553767192720914890857489666138153480153943583205414609073344533882448980564658568613766368726907761687546448706015353977974734398020085646695661945337573862880988942613321723657609245095650132660600813989363815094754036875371200678432389114351220142552651348769862765174594508171687258227172599536973921057178851737538509136738621904616326622377909896207605159869794234862373892459204946699012519693619351976730662583377133739515471648983277232426617210753665088542854552532126536565386387374187056368464389987885937614251565551898234195809612671178785952783092141772499927557623423798965810609398600856591568615307290952270422876643934986405658765012630772206384219615517479594073477463229625827056053201905107479833748543065569696252947417797173539053507867444569405782842939593012608368728279677299530070778363745049854781441980971271444133874631808908209552287365102731361217532617907183601249066171757186991911008230319237077099549786096954796115714253889598481708487482663357425661267500951769806517355455488106843351796715196457407281518620798385762783240643138643083711652984984972333260979324514300627612968360298370837091620004447497918067070739262222414867915461848135233460570191977517030293912625587165917836279763980451096566883029824142584135687488080285327902929539557604966724189584524480555045707075615015279146893850467057200832893091537582429227061790916714355375519834205115596244429695462730135994480777362393564046129253687169962234423439764438284567765705766373725288890852732613669377241526994953225899586203419853861173526252732511222446889290287269954166415938585108373890393861111448808587137032285203467699010566921579982458033644645259963492009765663639223145475542799484632202654782248983677999064244239378229508601940777509009562795169715922382603525767535731654617326470450468248111167277208723076907745826851366561302455116089398333757101202780503740421150948724638340885707655188696741913038772315419825573342978416518637761745036188660529255854393214972076331819669524562169578569345090929985031206156523686520155896803891051744619901476191780598468965461954150536672003192869074091068306390914377603588599682076940939169703181897638471931783853107571241137942216783486375066560772850923834966833022254143564338669477691371910024794896225377532889823750399492648548876004739795136291754372234462778842482973307392777889784792132474766452121974580831698373762424965018303682637182771856488896610252691928372795242485438145400903016153229529230534639922635628981655798933542068860897272743079197419149596955405388959733995113027068891394590884308212339694399485548463935934346890413478781265551169815262901728850143169208189768212299703170374114978719136723212878383982562588121939679605925613615807671306957974420722161792584805651212638247182554669062641023839321163916268547595009955671347049447940715242761659730693553756993796131092457556466409461975557698826625634112470914771616639912817243842863401948071948749830545404463184551610262605297629494888013771910770478078566019581466670477302028206047827416715566090922794211316296334939070415391772667266173456011481006959964075422786308390620194063842921755351892367843792720181408543242424160743995819221215930889022037246637498805710266672318547462979302749065677208328435888434514786576262210201314114814783612848357629292387524683920643098990866736709853238297132225013186272059866381236806250854788074921536485743578906462060119031017876871484251362176404184537389332793930231084278497803390234644244064446887359224104985052162836559222938629695938661435078930565234424569524404109391203185278669400180460897670243082020462920032128419793928756954001391856732995445114381089146859621215036345177320368477514301742404655520315150350998938537290316740907908870328676209981987294099063877332745631233755296580881778949139470593433981048378919279751630711471754015185597330694180656261238495045953818971745088497863739809125633298761273653899080492898719757181759162370902016992055016292750990709188398330519784592547526903227768045692050684084647687725412930464745996833680807179426606551901819980499864854505737628076789687465518189180483974968931441806399783147665951013337151604626485605646074363733220715779959489071851791514358614400240425640075038140244875084967269254852914346534454186278954166467209293430306066335543089348254861312679104724231805193950939108182324211326047656558785150594828193769174945083123870537896328890065276716973226912749753373008536840852489461976076374615430199983533229468234463355777850216362217108898633205141267587148760803304606188498907860687612992822548815201555955217186297670280481334939607398463071185546571361142810154719253083543354147814059686654879993049061415804243115371203373260281550429777115397962380641096991632800562201041265086587577788322366184785495223182400046443425438291918583188217030255561172035971913856758133059142733325329764569862176220998761936404653133209886375678464135512915072086449440050933812663075776237698016546236515035598406294745375438655672329273841253939435943729512422887579311051938454212173131213263439454724687287143975178022059521466365832297244109747412077662218558502689247205005757464911571312998393498965591782885477777018064777784258012717182442571372323299945216284761569829415762680041875693399180025378385679597931715654450084215153134673406183333264887185389028347148734804152140447366731460386294917213896995878535534490957195972762748443463796904203166816540871219699581759406660932551796013741579957457763218081066036751236854418332283116669274782221652177921505533279585489097387959360787003376825121220055005390410612407837347258254268042583831003227988474623508104717994065651068965809850728354920354844975701070397674791007132000745886581608239191961014343826534814021769990005564892761726082359538373844443839884365462128768994922058039917527182599766973170852603293405310361606212650592403341103575874803710655242356185292358455263475146310173875505316688256117546104186220979695478739447181519736664216679127767748407059482623207087860234436676307157366486455845807570835836647096947147712926322824584802156856118471968199464648969878475475172824036139001607398656016338734990056001949795674976868988740658614455198395684821939130655611195540719920127054772042733415422355091344615955954697950297460386598918164951241401165654805010188192432321343983048269213367845211313917277283597708689477166863082558744661425898824938987436006078536133360180514391519929577691258654382602567762691188052910047719628903104462886650733379374884017043337485232542743031144629742872807929366606342094432018401417964191625685102516927433223012063539207730554055985783620497072715828560714038209631466256941201536817496260531903934216155618858410914030764104451110003891248511730815938489334949718912004041813706965130054631119179093303277489122923696382470553144655272563779307781493016986670642161944648749366692477126283065196141952770411883297029804221268465596066161126826513721694972635600387280823851054019407536495107768622485631719058351674461450579199261705432313118356188406902703662427008906081427808455587006152148149965993426058890589898426766354891550934777363859685100796032052784775201245260002237408535490566460037351087317938359793967219835451908834190007108276681047315340555199650732456238896300089955913372663924465266876053221586026519141400359932231057464543600607874484393437322883282269915472173942580859173508836965951858951283855051035677616909605475940564433073863608704601243129042052647466231519712453999621546767181674332619812831708272866294091151510106202086444826983663227318681886151717643717024911180699666805292182860520327450238655269265998997445214104056650188506616808855289945665187440853977270839057043779383736112371693750451682668687437936572424735585127672452924160495318657200022868772808219603220743271119076639890826703573637755966296715426593057048180881248744814759173409725563576970269048526929541608743920100411100283721773353924043207186850161878869507372074802660194400306748645673016301837182418060708415124739263726907166314682530566566420206243615461518990567181988077172642960697762519398112847057894872103408573660417288756813491613076856258624333682553984711578070886125380285662408195104516328103260573918005744314899899997616378059111471316975379953938387728776750709386461207566319580147302918481933406865701924885326986058070218158794608320104796413411173717740868952064899909917322865419401206464664818815064486354862009540640961362195404709514105380075092896280865607219514415408479737071489544985835411227843570594096372691942885408606983901611939683103720723602140723195278053604935147167838189374466293881516209099094695418288479864285323180483766825741869949901815182250243364868895604305887554792421726059412578503587079012296538054631276405553325434325782460090465836302454390392847567433347735549891757782910010252054675034018546928039200699891357859091292363674587501843526326181762053468674902842741155671244194620600299297472756397726599910559722398605387880763627694427065109974274455148099102656432075030154795286061302055002685797922668962333691408202420552699972713759545317286262365853612552604801867418812659130569379402927955212338924869079344088328749800149793466453882935782418317597729594068519709050062076053984975741193675952653828464107623605640810998270658900910087450564428343460427491753197068393864710326080096020696249923766134999935927934845629832993944517456686552540651127213083117457849871550574100896923506266232303578704528441393042092859355538546507953368941751082671150454916097033006148535122835820677968489101062316845112734914002183104545567811598557450321268570546860523853384294005738444896486617878356778153456134850957112342657500624348772481108547204932100150255543699557881232705556351089232045325687509334441787667035490583514754685393544401926124537778957636355832797760798143865741502919695261610527736631993584372600085931099727633575236687026744288973108769427556295623441611006555819798225085440342662934964514590851976182645527424039718048029185247213585605308757396763945119704768009890646872547803402091335972882206942634952506351395319904424968945318431180727539064656077974786673739778529006221289108833266279154280020015433689132347269562497948538475629443629106069728201882452213685939769569627394052904217825884104659735984511029341532674972365103764782047044910366586695360967574478765443314303432599750350658468697708900795003376095375799183262403968801047469584660203669612815671095504287506690408593375642298841132775187352763438527095253890560085527525673293867130950329740419355022408740834506883367676947013860235455727628821005630125742322781189509651128955549440788411549203555819906671276272026937628937389689398966680915552168138755594295789693526680071236321209348827259724336154045117351994588663311670219858274266133117701817776959449187779952192707947204640798374612797274339913248455658239003998987518543377029963317090104270265816939502632011227785700525882832141694898356140667738962198035877603209026304331421718770614949670014177214971221631033612713436898410645691913868551604857832791824800539940064770548887053117400460106713756309614712642711347367829700347232868270218655010422531618715803830077894928748646683171836264236460329628719328960747611556846792108678975405657003046923519850247236281033762140020676804652547634590251714034561484345794746877984551524203329446617737264079086872919135578071986813422530483479095346948393576414868831675360792522972609724114769814273109181107023978284166662634317269349513841786759416462829443789568515637436731854551513347019411070659274424296703369492304626670262899838307063240345385170138189782589824236014274653694114345243556343667718872027102881682511565883609281116842953524313428632245102284868108119000542353230011348887690404093302525167921438664291593663451332073960080430412473706052267524102953756467889827317170937402159880223032723327951646295724669515967765785376756839356803231551415452931729786287420446730739664827641526068710753276570849409358879667682340810571719755419489194238745785778819174535825947904256805976345818525334581595407390631098713762180709912728686256686316467498946671547266050432190784050761571306132561380494410633094682050539358832422018446860342246186018529369726200128019210452517006999188665061822581017564262398951217094002937396719044943904012853185791621393633347981788717468698596037649294725370064598905510458681715795833159394225586200360785333712229954815170396455218367243966828198483566510718213183665516107601986011865761053792012323582634294096999746134872306918249142464233951979051552219918439106799788756159339470361717298751959498612086951799827386677496770895196007968460796345065463236809523613399058523000296526657116213363081134824052351851411329270153624927680373766423481866365938828908057788856217694690660522047295489195974315255425757949092886969979158653537557933591284300088164186481304142677743602439722159905817579690028476798142348936791533227415046038080121037560030285219010876714662089876783188850174335157834860149739636738460513301452519473747176283754068499898624784206713376995400676921470914638603012951416914510202116974996209180385362704753485168443587977021004297249669735728739672789307031476221039612198411363695037818795647240536052070584825267224790669361825401025062623394634073178751197700842992144445990298323014167427946331878174016523063530338500204006959802065527774088411022472744279516177122096643393301618291249781471609916545176912155601232332276591716323272249745767235071147607670397527647738345011687888321673350596142560222971295483507255386317718042435238645633714451810414056550725563552150522647827236029054740855972467543666638745666823630479858104457743282401224608679105174717151843783678638505759912997721210360865825353100716438891439347743795985219582989038188756871812934773333562764514471886860437272903190890483938554928481123663645803791205807017250619563431779566206243750687987153281586452262327806862843065488185191271582943813747399600965797512621452438326553755078975282855759665064332268216111355744989495373752939611352348641122974071132966106868973782927114938236267813524854235833878458003731325396816238116139672241221959885795446133448903609518512749569068046507903319027913995416710235633824657275820217513781851609591112126244163683733934268298669780968000829951721980575427736605105398833750736322007989327420909800605845011495372960660930183550224775439528312970154791796289770866062862029735547370571728360903148319579573739093421976068302514265958459025050340015470040138879189901414105270513744973573239511184508032773345010030462753390134740063680287461323968759492502956172900651626212332581571663666944778948188907890385482097085339545630816770308242828222685272899366886955874952887681645821807362946046713229541028705680565495128070734262988263868573563147806517673316411322559424445940322444886373911696023281842756612537693308253502907023049437518593424167564713193377928404959984177106589360159281836252487179948412874768388386699464607473786104150367603387208371039133716018105708397687729398161498933102770630442112434515389233150916044002645811384509413011376486579641844376634822558771044161646538600649443920582723233505443903462818117474332752650444178557878098998207858716502319869433514423818296256034163152125351189469703962504811557794798775577138684935910002522071204531446233821092028442537075967255607945065897622258998031492945493627858496714876155438961892925241810969357511683377625056239386454745464168206836926826880664730959366197665893732171231953260486702256173544488493518244959537846434836264272782286890209368278369714913363621629451849529180406435638163915473402051899718160216412242854894712194753369340845738003934111805529327319173553386239412870043705850245157167865531206847950626353780867678418298572803288185762368467679262181974437586932248738883599684921883547303464251485999259444903900608629265314238136998517027438626596093400117651046748697256735440444712815787178141073235746788156154324276650484972119953303012968989803412085035086132214151339198444175831283800190552689171133566933348912740679131042348523155465568426361114531605594249042470024012516059004608313912417378180536799914803175193899691431391585797612794019903378906504422056353107212503432928441572575494245253327740699037604624957164567656465101508415439438506731209244624727942125501941893076909149747249343567960052099908448720779250235253329111611154382392415928336908701858054396246750534853354964174358148906417220447267896145271049416511389277846871642409566764000580646226755710879460381501746584626949846355734344827534212224780620432401495481372695470807559187417240491806607531520948639969466931254548602934049571703728796111501052917917892400472896817769559781745374490235223322112301204335759486827927282946323702397802654975280123498371278542652841939567749520658490887307343408281632511639622531679385489219229474954807815809587967167170329275017844292055983304396075933183012642599717127941280035472199960609854102724035916010711261483749490273218212792353708838507486240435483100627641254687390364747166702325132222670662326775178030656140768216348437404010401350953406486985528627896778379852516271622778139649384711694102386668409616884363240513265087986301945563447142234592989859069493086479309373485432144173531056695077828452443571675576852362238514187108710709520739603767260792809535367782240443250616219814182784272900151590334942818651480136478102205288424185548799803180666678539331947060214126625639154751481025244764920815649821400777240425483396862690987281799098017239226157412628842166240752860091539599039756340981916515119351600763471889009228784375668200757159276818298098156699586689260028073797729807618672143447301435572408447496916976400982531731531058169748545567617298976020325137240002099851216864181396771399987937296145813262755483514530592109706998747229740693173741872342457029854670491661863984727802847240210329812972705255786584869131335814864605201664364905355421624070995427838868017773060422673266573591102002560720797807608038840418792497550706368165026560560522336748235757846003552419284376775743206831138334046795282925153470878613353823154045022746236174127300774929601000620534766867468403392257930492339667974539206224524099303344243167296847898217639689970405640287080637006521164056175244288569514250515943521297100610723089046496695667349285261845401623646200023827093316013933045360393004150442896804829137316741617742691526137271377471289249275810348011582078235433945024536895830148390513953901184234266339778127491138601451816003561088896651021772554704816810244553952034535047474560723870792325846891138998803856510819804237673803457217905269991213808056376778647248120949851932727614334362696485379929791974018202126534198904355733175627964432970660399032003419321497395622412394545515165546704059724843268212572963458941053335549073988020562544004248418070895808705350717483492098612311598695398684107818243044222273814018305358687408935556022493527446623807362022726230916319898403044969126711294653235971722811073593917019761623548416925607838021203682130920363359112441962963902447782764191882129573278592646878404324815794922393113738293839044783234120491014170432504584554764205017882522134101721010373344484858068321511490117327365363462671063727320371217795705499621397153265761318412220790285936746553964617441146370898111652971478658690320202246382126425112396129549873939582074674019515315460967498355275713589778182251576014529026797618420689427868873558181978568641327707517429150708550098557465716831910900305596280811735449857585770161793310857627291581493957725557670553328827992014010257531472322844577873883822409775122092410114715452280730371581125458366737716963534681753114925012752615761245252522412814590029659289594673279661662168480447570359089922026377648458280119672594174213446199161949998589743161100339872906520860456161326689457244044327789473711843600200456878757714388226582286444086011786251425608677710423196875507314525664747745267873130959729401005052763542013778032820835649246392828708334186483411840105457458314921634544935110377245752492785508429529643116973008853715028676896268200300274092039146979745817168696650182526536463782362059442404236729637714361803051847612532270079707924773285751631003293297641014225192912570120347731310305422156540274953358949297189957006184861809726403488052211798861405898385845231836944992219916550494603026103801440669523904453724534594269884636765385352705993572103170776047786335914876372487190127303197952428504490656533492233858949835023658166524102068029228003647859612740651226826564715897780244237065842700320153484346364956710819470626341151940301804856215958518455499511041760195993424219803051407586399651896124900450286874582135760460407348778607726071921527505064556558555913078870159433020643874041752023408011286506587848994552889701114084361759574864105890917035937147678734004367003981779210476497863817967765459734617492711205501026986675285034370574286953684399697751716192043664724934759543974010462114148018949660401939550938085853630712698914973288008710442366081695669581005836926720698210121199817982180754024844566116194896805507917327749987081870083019394304727772488717640773046492716756589324449528063988756287749636338901688109176359927302881034138698894696348817490716028519255549577128501919694877530237884370642188344771806160684086893684697492622347221475933821031765971007026391337156410703942726314268654290505765005538425480483512771005408062574388451789687700424945897872504024921944534295264639273705153401621494737644388546099319420944232494574789556434064773968619694052670052216039802843391176867820484429265556508032947336086466644528120657805162669784674294504404969750329634690440760609295362275488614831575509603968942505566275073019842650615069271172418595992583053783861292410891003007268142272619867658185845022681716336270317095627479702996120583112573724481525631046298888068530439887857458019644353698904807860860607959123263863422175777637765441298519117329429832365739651746698042400021162578844292510453531112750266622227571255115316088561383581952681104543842657905362067718407257958126727888751950777908886510050947991194451151173219736816155689945177370746221676534727593182617473895679664464871185768392298723634936623283101503714589284190949039477939224353955400906970208675279184514210366283552992942408703243440611714303579938833652435751711606977906263513192031410542968561338501721542776896517003946583346442314185771953010975964375968629665782024175054883338596412320405713053684697616901006670406011119799513925903101220899532732371254843934459170119535947979918952405101942329690468013892526632394835417335803946433326526068192923509746584578431549509021754984795873211029521750853477336394206825159985742008442871927831000803539183467892783761182226485075808663825630035405845957655429353999832973125518286984850372634284877861265059483471322651993748765606146024853437653033421576826796961404942305068776383487125859182129111829455174706617296225496761143804618046189533316514667922111029681379171217824483283942266096985606537633918646062715918917427621484508807522057636636275221035455606942412400802869318213190706194496367256523985772646687961772506125036230195097220508544540174553372131229263085652610382172080620108029029324019360366059384348553121124121529611455577067807314064317009477668607721762192347008230274115383580765805683800273901326738602180137906002508625436527540039758935816314067750559340575276362961101339641042308705452979008661404133647938658087281666661702687953694770915958076376171058312280431771470015722359696963533670521427984361394934280220500893665603808048769243997779428322251300199920358508794628776498825118008803598437332334329625527411815695821063587072555047342980064374155445729574232356292957385620272193956169158092251559844264574046319737381489810358365298726271094215690568626827694037327249880485350902434495383743228208589438114212477704344720817647584113555320395586681651892604066713240135301653917975244234392416268375584202802252205895834005821237538386089458574138671922477747870607594931874242469459865078212618051942152435642264565972758326771852520914023435186723828977698260611660813250448932836486309625176425588827328509726665097368071219451957856888522448434670403985794805259683291899507011672512705102552551687653378198276444739040341637435787483890479187095904020062879755556995085647325412597230729821135254163229126740538684513540572381198496589991755113648835637129204817037799934379808865345735789577286658801217262149853076409214153033798268803311065550291748981184527466089864827571755808931677935571715220056121658957051637483756858024379007512755249656515513152993053737362076234872636243238843609422341395270600676333924499747916270798301338670675241956983618203067805660315796022039397501634255679355337018033144867492928061693734914934225129296703180485660542419584370981933367637462438558202233442689573802039479609127127524424687536794511830918981642295082074785332679900767000170795480281042509280664854757709835165721025655483674359657644290540384926592224763117291123472180136957409239041350174194470494792056189664358322745018371460320755113173443376460587848843568570245615418369571448142603110513487263414382733620532608848209306768228820313379834598530884042694351763435014918233538851046759589529633628447433156932589823119374304702211286033041412534812903742770796281219367020987022750479614161451175480343601837533196932046156578346965098107863601709639654802978228666261817616664846900289278787804425712442960058811877079797816809468986304562698360798531623341263399825758886731614638212981156215703455550948998883552150481241889495987927673898850145805861249333457084150967904876375974767344330127388694487488559336028784776108233855547185114992080883103041008859472868571729756634569681525517941797033069465180211550820468202087741380513117620289895279653619971429915145125417645512812827022374756335167713399397813771023722026173317016289361052901556134569441980242360083407692476297808722841915605325712276133552660135051966436663085790503448763463375182568150213347449186040318509793441079350263490519441655875605972903534088193197375004937760605387663924682309016437075765121203550655517590835873227128832586315030562616774872111374929762702320993195271915287321763942922999384659915082365897727203188789984040174089354960189775308746761513068860110540847623551550492319723790292776871126740174229331917116787404744343867195958012972802173346736657153398932105844128531711281215941142740908239086231425119579128622008139540132413484408083603732441047087233627046703206541650747516957126326059193695145586090594682582808217379998414157340413064949801319006943013295790922347926372245113076978056457342566663814966904318284502685021955970784068107605711174521154429770018298925452148049916276643096904338620240192553397886953950705694397554042099880283944478504396646668412333101772239146256943635051330735228879377790747225825122564046181922612992132410031905955818804295157157339599725974495213944517036023903699327115652639982362643219998394796276998456803991048124110288044993593683076558994855110562395330413681850134192813202869705729934268583658016387579116990835890739140059185920604104234543269508297962042171995411443305271383061424197515284558079562869423494418204256381318310338414862801199492324173772874286708794763604571349702299391169406816061470691496759083648071263248666559150895737314127414375609993326315528862772022929511789109761136077729094542266151817858281851440759870636757725972813924440370289894289013347302471154120759309554042240253689566934618856088619263136040470974317306961044859589352618619788443169450537945457659014270148516301888980685787654905608077444328639518460021155316559750809545545293468711046962986733191501783901034697959591457702474083089080180518191652865132763355518410629543482307352390483981171682789379264221933549648495142568301601964086153402535771148341417581885773497851372022493442926119212787716480732195784259365603030309424933820516065571770908409187630972093026659151179290710999420999297609618878433072836112576434826945626193159717549053651132007158411787208458150108919633012355031984310491806179653657029382534066632787733139438918054576941322513184712255985051192730333406655290324171460521397696974990479234750881922808872039977697147476083883879676957226641238264297259282341218891813784147452904870183034945397559924685692509868596510514218311479990111550069619211840399811647033337879790854121471774890504495503114326335695515082078693199084090677889099191467981940198749865391743780449789073669331923488377666118089445855769812632028629967053133919081188241810451464587747121205888148139304813272853714290809757973952911116955282307902470370113215886574679967048412688480528558475743853613387350861006869558409061025141471834614445995226719438038264567376122491894878707523206902515244378688856893864103757219599615094216399828887816813931256074538286428488537403492224479953305576040686749699193066644874152878110455820930936953466549170326153805531528944364498097135467188910649732580177339650563882040817090685321096506751892589531410083406027836435052846498555376005819118725592317408527445626547560629024789882381186943371323829424476871798784135790225266074576947050993143407946670565101316937300138513981296004956497793746263726273255312474694238003364335343226739137139321205731682382277220744505509405819137982694858770769272426448768286793076763047649292186997580392389759135595188602041390207343872142320681081431401073136466189692938898868417905467780660127205205089699904217884059513538102495069848304557762503481575298595566226359592385077006720201645469881014146313096263247765110530552583391776892633759745127741925999627963158135073133056327180450976939398409464929966791412248579917364691447156309810980944423814603014520105476807246206892130480344641825599402141671969670148045159920343605225971407056459763879681387485586028342167118154703861826987622379596921027340703372996505091388954262409199746203976632990971456021532672247757051184677672474453835697210191162533576470634725745851447025333325046812203837610628546943139377504837277501900720063754387755430218183442394039475921494992790811471696974933355690697202133177684713903890192310967066198449302231249449113772809731227308111389474500996259696988162821558263654044571488963214838392290013607403324747115531653473377082751826224094538119444361762802922402346305041177639652627260913297487188500744368431610772352584026227194141830001634633344190122555821092725903208606451295555025884167710105567387916530137884600135850093561448640869055859849265645597098616304517231779175937237286996995261430451629312640632347866693483949011700988619825858162577298454006791288958930298680177827400567894591902300915643736830844186293296758848165610784358826263263470713248970608205396664632110696978587998008205512906648644412725602565759019966684162631912547138402918940502054846561004041062648376361555297435266136363574556591621038983109344184428503045611912744231161728997458221640195796003658819924010870895364246845996568815541618899182417954820793582272342390907322800431030747387361285863440844364408135629821394991190344236875412213029380835446249208276575482055566698213379461317691947472174839010339131360560755221201205994198604971937258246666119445517703294864931072544581899605503297113370755373142170340465088765856306666383824229523809198096343527816866332405381250874757709712584296866067913578733274327994748986853801620521812861248014265983844084798169898349924029977566824163751604957461268167543043113589994253427248476585410002116680329642059309194804390967158386249132135643763327105841494350597596123246302382775973297066754595258815073796845985033448031942692822338329071730772134677403557992599344452784756937702996884302185044032664756214303199372721573646932348158344104874654386542579563178807679829347664332524795361807555006086342334019865408933022703060407169123331406614518410545102640355347632088445820491920518756320351918644361405876891567018587800264399553790328685399604754710785851626125093576434975850875351067720658418929807693419796024297525304534102972641891155955068006213953270615897625515002759633595680968246102024478725545614444816970907584285222514639176493640424611459219322724260435606176346654553019811537883622213908179395868516838365155024250809603126171015117393953112842743156404565024203910562870952688698405135181061459252713330741205565425363614683427498959498410782936361340637202969950725947447158771126324666921637576209809731868948246673667960075279382344385141399087173161916647697124921244520351532466685465998152966300992898880546716263654951035532940064379502289081813688836882785219992655828072687968459187683041929364662928105359789849817100374407662926106356320757481384058198488018149865373023112881008563565706298684063063352233471187212233844439001437058770470517679548682748121561939784333968029024390538612740071542971215763962086088090079161555318906847889564144643381715465190073620864666352004780200229809533730953904382697108440333716407984280671225907580266327624475094212054142261957592556758494248479874012528167758551005126171426979115210256723636449700752845608728006727411777213494702247325476994180022201144814871577057028392773645086671170759990670625541915896570297418212693951340393834097075728825236006237121651681589259158134064083204638188898109435393161718705235293218249825133072140692297562385087770661163331314747482150496775606840688093605082352759179645366978966253927993747565052743202361889823597414247664963073984407428719685058845665571394495011466842225461014919286866777882866523527035652593852726684076161589444193434772316035681050941583263704665571368849470433403450703955145674462590971501014071375950640498429752589002620206394067333273937133030408380439638680375434128739642488491763825473334214750179585243946151228658613737073025594160994002169272410840049123764272490057917515700816462692142283972206003634951640152477634144539906509527770238624315416604243138463890179221753188425649094921569384316075511841860828083635932765605931445812978978189344479616675814803433904014282455325962038893466912434069218623617176490584520539048088605913968969018953425846882798720471299713466347554016353563131618116064550218478668302341650971978850342562856863618680412234407516226661030395618757574464645258205140160529828961705532070273219328639890490816985767188074864515198544327974724017149050053457951499655377074698114098437345176602066013160407563561827986748445479276836502050058571447927258486520775679732228316808388016649710887896347082957192715281691133589305092633776377793439837716106167691207329606133058557499956435694833024468688522791944649915851477755613508656368906113173161740908352431253138744905420309866367602361936012636453983929023306416779873099801563618733997121424647047503838630207477326683012562257688279325025222047122460571192734484647338884508794926946152397187044705885907496091219029657438448425371647601933612604345412287253874577542805662676355088036666965576046004085809508996712169049251673031911786086238631754061503908065415721153715094004618140829156466271668245535248859363773576928553855367409067758078060433503446840156941127436617564565413295519762384877580699417373020219730844718264488336980391663894063255870102371017320075893481703471941689150527910957908890538598514758848405969098860230114063397777312045940113639095171971082441891563797592423927537659109940854164863583029484253745993981170956282197530094770447328489895342849503450506699337442822462568801576112605826774425773202416994995813158817930122199283473342879028452670859722483090876771242439730509043907132789819542600939535662622937297291709190904303225661800268065180336837271813245126185952223552325101477221367408335812325514119699483485940705901456209499330553739204581800738427060780811538683716755948857535268030225237073336463838886457969539576315481671394718238538876223889770951923497067243381289515113504965174466663689777099443511094349549613041965313929813028217451554890129161758504603482534138517719529309335287625310073168683886982132907181020624597471944166277439170104091239790144749270302332842419568173001554272066750287521058985018851656248589429200403711406823842335955542061726911208082988256874933797495731924587702107338033879147369953171873717137302936753428431255336832147605267987840528895120085110543341053369098354094075135440494066821835356038283395081420842891988900229632865398961246608326227442538352730816539017906947801975423864195041464934667077775358782257193564942055418355589669544086700252786069383679329782667062611111084467427991568907021433017251215985592937016173883392750137524735411869819576305524161237102215542275547542314925371883466215199376023632670218337553902738803353055253770428079015417839521373339599298604413253922666453086288857544828683628661366202201705086627103094835803574810552548635678639633016893366853500423899323551957092887537077025734231089643197305286780126013791796246218727425213440568120664537636620510383355829319616084918143760627470662343998172611593501400986336486550487742198766973186907964628207672002798629822451362302376598289481693328624548180939690107202395082156182254660146796722193315387101038873300031964135511827390151321625578788688294085348357264744034318064395763351710796850145257108285752058114710270111928729689554802216284256797298187833407287423810199117730513110317525644108334770431686610513817283894226072492105015841892823156573254056229819487350371998418038190684404226855451479922285823101162468098354103894596712884019346698460054963759519591834895361743126448961826390365800910478611795346394831331887075096717173464401862222271427979991173883391757310268483448114575407693223896455648762930751785245862829973931891025072137488583146972456387323884662602353608321208680085649565013264894464427165769498982090582872895927395111890562495255081421797592956233934411298721087940890800519385116097911612472104155574299764506202084982215344073818571758218376043245880643173557874070505032607111361044396489572893982886179167649134656862001282203871804426932309748986929526064151996107593887425371734199684416027349304938661464234454885633797663539491555047759313363863193298697735955543779873285014182613109981891474637993935070699237239483907358068889568331916884874937871803077640757909268915238172731940974956275721779642558864971289899666685113450536197020732162167519221731666371540650683456492759447702593395968786593999337513031009778699612686069979026339181601299878392071405218038784012531317653618332748531509049003920825458943668646253799361956916134149708479043684578209123649469426308556833030186053905958198487568016574407300967174669680864839174605591723992213675830060686023970704759785861161596115159654957805026079516341010318149351885589977883745852393586755049833511577915745016433988676656115188621501652912465263950018493331963264050438077928374984542731370294452319260351320561428875859115696654162795431582578419141259887249632633355061146267894398250865998496151819006746143005156642064848007442735647450527248574769132775981131035613934111713164411908552810493073981248216848377002425341396423947687462596488803566107508063402324822824021418503649729905180474105496526406880065271839997059434819440880784940161663450191658530914711753182259585622897299401000857429001589190979797397174326302350955401541401968718803626154345556866025652834387349221291846685950575495142570336600206699988008769756500145204979352108004507178392668884806999063259042747694525424027921520154215206691661487958316933723251307308833793835997954545921248376767278404148949262587779350123681230643445337026180389154363359298129076378983616450896355450752031229583685708207567033564863852165621226298443961193645029958661227874559747704340271988016856785792104259649036802099927559073053932097425484553132519784140901971127476990174665245733277057824127519134619921235338111286694336230166058964266918360725494979452641108376769512648395901247493164906288506209688713042101216282004885933218903361417865291643760173999461795698079032664397123380012672008858613034379047293222937651539260550826349851013696640773987381993759320637862017474511030773287741192971386233661630251999813415783821155285909582111201151637763263963173265701968996221893135670764792728974874689521671929375942170413787345632856723784533971533553118793659148155863013298765375206110077297355215255687404561485051837210971011414510443470635991081598912942533871469692577206379624914697827566075918272713929827009938775843289405000439845869932109634552397647318336707245263680374466119473670989414214348003691148850833517287901073730070792722264786351089094697088188253815397217001677709628240521108609359227020933703266426709697167997704356472302819826286889025144875747647195391775340579866795669243425578915116942598840800761904158874504114830798125756253043728951104294573951529978770015084352803148455204275866239166729863286000496773678231914206010210991391650763171264360516464300234228818070277775726685742462512143872625904455409545374386046062322989166976166511414841327240265491195607591002196727487520357006551696883452010550132769580288261919959056910319349170588797161890080201792129538875187077650592865972199214377151615257950376507575224888089106154144968867576812564319952175793183752586417266374493359677080305167869639907471821273409405312962710305949920265447940212561313756229033488430679531019141534652355145990151105367001271514783550562281446502127997478768459896827032854121598050603941406890065464382355737364681021809520190494619253255465857429597455382095607855595470610531223286977818310572904922796937814194613185519130925738872260556308877334069481942581123409228763611009629573952010912316380543460623157220243521625273951375188913956928946867267091082210391200774711399332069743430851832546946487125802406315085985697955689367292134973064451946095019632080730488562986185662894436031322550866533699925895723496284345677089361137395839036454550275120130810961298471841813257086571240108890543365920653921320700117638742317960370627816477180635429800954629631976659778643525505540343127512445456940119292634688615810042804888707263843652469234890095438144006497382404175112640610399489141673042389330158219643361591468547053273613096736199285774497866693194668065987702734702144814090386205125305788463584139182329994076202205963797030251700448858270791158551102340107109977990726606775824937831254129041948838469165367737880033485524742477621020542099783046953711877840228502894941920243569262053217182899507062161860877409937825814889536918866494089848613061657088632712349594564981592530320984484946723875307229881386848632727320065234609208350043414124662791901814983329698609959147469003786750307013643369323779027914919615282959217270333237831777940721653136531698009909335520175242245513930895680669961637548435306040559775297901730775950070430653532791275997867694382707150708816231727694953429795463624724564450635668692014354786792705767552788812078648197003211318399123525908850901584225609766568619177887120925300961301187850003140646570157991962021573207964020746840017017393443666056697601061401756373355032377323455875031878542722756491472733489136038485462252511311403374776382248878034238688242875111017969454928832601632729443670355314101835867986440685051153778227593148766760958931728179840409135564663716416985446612937758802018537701718151892600615621189584563278647299688116887234756349709945643716432677125712589948363633350592521048263890125052774945239644623952350307479425930290338834717088831811953476548808271740984282364125041435127416708179198862905391989537068177426489352591337079750928554989025232318222426553170004309852072536537309588783968337161171304239487231891144424253281208023227768545958076705149338123499683213402354612390094106974337889676677118210647493193946354093184917589348214602496325966851216416095686985366270362656833105000308142802887149714608655696660064922034301259941146633146669494113397918387473870354151943520366258693130624704202553985320069156691656000355646687438075838391762139690492694861360075670989633959259629887196931497306631643973981502332750734494149409730016253456749002910899442049414259111582100880592006745595066625492370967296026253648628582672237683139386220740687137554062893578628822671989636533342134250333635308972655875720426073303710003948053624841144819271350796247455361259351381006144445187471443748033171142904220854004074752112244530842257088275035839193783617301671209429549042855906077520891109776616688130899799482489810536754285590087071682333255195737056234545067764960998142465916920581755325458439640326325939793837640239553306538405500042448683619163588972449367493476027716372339628374360849818657503219552855218240559132350434390715241079794434370801824533663819991850566429390966360354646753297921575924488982014145441888010249152896335153600760505771337676474602996043573503083984757066824348509383739455183649040917862295965441368725313537808551855356550924167443289684199968192158495997936801827580793337002183024032370661353828784648114164183953420394502137311886556669061112139066737141820944060776971997817870352917467330255615896311424653858631147375098556048610688120809992257198807794584504855003128808548140351841800612779758779526730649500919273061468563310753502130882177843488809327092225240859825285325844808423667379172370663323391569545772961510093626888558864662209301796498685798164270172228218918496107715194147453240842518319965229858266742798112131430503531291140894546157804235337640195191924680107770420971875030512553137065739508583181444418198645246447478625820341935672757453291654423714435104614875247688716085741980900143478845709714239343288200534218232895806835748403199564135928348606948721456373813117256172171512271695741716978208514466842870197115043938153748855591621553826641702160658118738319522465208277348305668856621674601256941667102477772793756620385193645158551068393482265078947967161865409329628828140538640367772822697089967262646459344455216686408668150534626930382190441236114775478245255061312013723051307021635218936340788735057414423823213051289868788934467303961366130785804142466381439535525120692653483223138053263703369266933725913327279060808142099088657134799571295257273059945021167980140033703343812669849343290887387158498669257233252792546907567213619603898975381771076225038052463934405456289321186733026738698000640294684965061336910014977816678512772715652623835007019552900373826187287077305985965580404959072924685232708257094408675161886153649846081555189470900501288621398156630068293136210165315555099069057163917884528503862933395710324835055910380981659960491702543402067120867271895026556987295900668176121342975562237690341600286121726063818090695797566288101070562234794727471779563962160168521132992890602406209034746900663401555849990806437924123376898550150653274188903824288141538384512042563462881817046859888689985757346798133633530828206142381556732994945182047990296537010260405568277503040340948656214584418883776778716849710151447308391296279444658409215246573631884892909219551961087956155195299357095591390614632460507065827474322918356898262778800232900493343254451007377768329632975636024707888210207399317538098307513996193988292521663741288153918058881191432878291849662925389841755331046357559718271738186961022448324329467582628016017278839635461627565486284359689777534196905880902300326928431356770535058140228864964445013690703154234626943862012258725584390379498651080625945793756222791363402646206291583446729335142771536915204513295888294092416843640452467924500684342674744603118569448543723953222913895424324784020362423744739679332038446654685552609981416865051769603347239428828111985690600577282381505896083995739988804417301509923191827283217916336075489202305870478192842238883832157608342768169125340975546845195275632110850248346345092824920420977109233855445464290554654263162024877335313851824066735256232034388976842252770256523478128201710017522561336177820793070724471439610242452925605225831545532935421768356288483320566930549975817478948478271403345426879789200300954407386202926605965393631227906666537319114253314170639516811973926629543153149492812987679873813636169047961619491364699396679365983461199857226638955144989181031619243637961659910121488209719489727070999803261146424052962033594608042286905738728364656412697199584393271139719188496292242743335765703876788236939181072499167796188314078438598174602654644831409452662108048776789315738628054588022987964598995765454692941250230547354597776006427699578123373879898661017966951589535782169103252233234228373766630446013168798019546850940277420701416326193855679868314139270123419604650023860413028389264019351417400800412634419539387837560023293110852055559102042924002545859668062942846547232487776146860758480111399179904751489453563065277447854600732680275733491679439004633608354913231733931343813322338192448743288620088908690165769921404322459037914616590760986453839241397846346030560096017183943515898286004721341650350478894141870920039019120754836541616382711356293970830960395457021865935279270686836165471805898201843646814296890809959903432997804974615850345941941366409666107486740107343703438793633407660707964415908021409706446889564430322623942924449785066638508180865297683403998446767075225398100643220410570879698368573873402670224396811140087898347212110012901251738421406289385450761494625939640281054263911726452748196828549195558717161147816726075204843880870499459082636557617858648121081944770751765838182662599848332086373367705349236727244944471814689529680554988378286939097016184863775198423556542751624290305181905214313011498344455334317272947559474851152054953003906432488910122959822189459220865572436181660562745134317815933914896082181817385793878873553283610765959364606705803157872872473641035037356533959474078832655938746518726142489703190063245063113182048283482845618410214410329146485090466295112957447960216373142510744417599362226503191096373306591732538175918900089499512562623560368699102747294425575546153384889553433486546800890868598768383545396658320751136243731440347878313935329893631516542345249194962325137833365957647441880829665245047894855791641937557685164779406313442691769275417706147299042808829388505698642382109511047744304899117526469304032340797956976356636651495746564432921190075606611052756940996770353272758431802644070762530224817766857018098330769365509970822376692844550468937613260074640288435201144227749690697689908916435138002905071022781154717255990123982620314001909287155907084795243048951107919972389410709345936288808002888880480226743254732954896453338871287947360318877641102876360753160873917929495927880645019262170830072694363056272214994249399434345564969850903706037946807156362375028593730290315431638197059386105155929803737717071130817034119090604442207147805183177887628997242451981402014181815058290950696218709923030745332171696196693037535706889743071705096587907529293736509311294669630616491957972874393622886039383121438940333760129040342611436473717399678686923735705843261090758776820798679937242108916552745654119268957645157961678626802166618265740709046477847848169303901735226443275810359583749195464718089416509398249752583325802354044665081587857400647174344977771654321088446328328081614399652375214743067018398330565891147488726448092358464006555964743587614019652728138462379605329535673089080093762475978660291152909318399661475054875043180002120751454687253768908135558158991738809691273481971452167795983157173457676031401879006056403035267892291861010987517893168827131586622800465560923254670632318231744996230731418211381955326979121035066927750077777865598292512568998808391161806756456357039286301745322585507891429735091311523804241651960475151101732177621500966241297329703303058843080051700911470482636423936455683629880935764119610049768355043891577203716487601020352830239309508413535192245201256922343845717509122245440950579773824885351923610673080038910062357986793658840093669521522998447409287662929449650722705375394824415850010506328799639132060191891113078594757161745545656456790365933277600472875689820322439812638991916567632299742123401469395945062179480120643880231985075415683421829847939455724968501304763578786524316026182507485018529351139149570772129703579026718536106843144542064618015919816217988184219277427517994181207876774774479847731668594477802395344120892783580532944089303965820142434612714539222024141470425172274883305259099034425548834528225397293397938259028641258614979976815606561565954978892447531376770001802719745139215404791671248320870261072423924229621845605220288443056307789326616266768001275146049233808867198429402564562994152181641737736601014912817197406871109014768582158428597122360148216837342737346938618905194473890439827934623638067720090051786036315278750485025233286096387606583999587827479313099277606885060637355251979811644264893916680511410831202432935976597261779847102493808099568388993802965434699655231944400840409514303833722645785118962100116706729129844206846823142679272024426662489560950840636594643008671413756481504631202166633539476045533974378561448585963376104328907505234302716046940139703022679173275340991864681394148979955478043336375597891135910227322410897802856664453041209189622738342184854073720711237416115254119350422799380276774043143239883479060941551567141946966867408689341955159727535708959130525458195759709960789621039116103758479116800026737639026291468597411866871770382948792803903234032267751684343593003032961733468301612870263688536804205941172260076799682519366772242605915566726681535162226214385524711040772301405363465540273227889542086799118128526607701319541500027555791394151945898521336335050710886236542464344564744053016045271351097993274461281090007659556548899199309056480591100649434180993568148101990077335028284704168601389760961414973729502866442509263661092863174102480553810046409070169155540306375526272245776137290076239796572198668110474735015060937443179459911797244352698563632683319322948394854195711910904455739335716482957677939379187948395117734533280014411000346056611846961013809736014092823685303414504611483960269620188195228937023747148126496521933695245429758090480164323361543365250019427570674976791865753045052259616261689446162635789686804254756647233615558349371596631309896971680853127066501592610324373291506016821031569534674783037205350396150534614943902616846959190626089251250030223752295957856973416092983407744567309550447013313646743082420433551936059976086747144761573073475538389744271047797674890408073810519903883157907131211529671314312350230021169613055928206045750923409982834851168416432678041391980964086751760467997995073054575396939371106552098406690213301449674126614442279935497878363225963072521104275689237197209421147501341938703234207669799636110375301971251306430243517534040337152145744234984615168465117890206489374354616599711101841299824314964349392165492721192801275144509502118955881904621993829643362019545561091659817011939314900771994108702909169759107790836542115750986534376267954501136252398826180577955484173480273319038725334607814693911005350260668751924035976749822808134169481636060663412988300007437044870942853141620577244444166615143570757443617474124048796341594988996562833621818107963163237751950938551668418505511138797132417259535281719291419999720739644546823180731230009068238989373259604077554748579382951675438919839462086485585053326131240925401559133773287613225928790497455208239971880846208502810877140323164614198723735684424580322941880761865052274415996417587583517530526745463545116045907672342780150534515360230068567329629531718736158652215599302268245906558472041974379701365047352253673625570041315397581694881728779193761826109222748474171969411370120351393896079352890848437856126841439080070338602595198885485738536732024584563105462855027415099898777454575961958185727221832166404373769587303252604781636858134563880653396401348006359329149303087131000476013943874881593414650621938710614239948397587691902683083663970650072547414989623325599146752963273238650846064087673132954465203039561841902442587151117796178744320610420551939718566063017458115376231409071612657880927172156397592012351872327707202792675891751616053832951379271952562347018055797226863959651911222254844715193818646651033956410001685014880305284888725364536773894689744024160773488419794486817717168595020419321249042856815077387354791251863380382188949739215225232682945846885120893309667561308532100346468023154511166386540658052883982363022175071888391530664804350165976462641212215171495883245268893464745652019867440419579922985343585042117874537674915861832764327523465022081706258166559638104885441392192376662738776075001365541181881447710554254991439451262780150938388295616257060620577663572905529561015358507457215251010867536948477595018012720520345209167428027612295072536287169951220807426514966166373750234628880686723346621639249789914716928824976178752813775787094496385275855753332398021679011489790434385268873928224873212298881123782011826267502419171805774773903604120780746447762901330526678994036623862955084816576401597496603139971135537518778006700114079583335519008752212209977784685085934416009674980604479611426120021861811815569356445572964350231056275723799971899630302264015165288665050692617270582432594285944326156662964800812000746174400815234083846165596747889005188749118042094228081231545600820163845471800260843652946444968566758987071361525661557032915978106327819291611068953024864894942142400025559662987711911504156572934400243260470388031831372212933541854155816282046921685142713955094847923273684354397451271381671055178817012649555414889217046782554191837766339512342931833625142839042549185189562702181052957644171826542386181911905743467296875644324431228564329290118510374053555516188120361085903690488933099124999239500398057696789618988898218406711221416672140967454141828954880611065862538315042652012409747821351169371285450978086315534466866812679335410172974580425046136745914783195910757847558011505228607491843165901723896318763828810938064075175758895937497575994110869780323867141818555359738223240523683439670087239902426987323163905844180832317730875664502625099855652316509860083061686766840326103424871282558265979358662105629303335730126166630688998369869471975970117703337747525186865461422924537271681823472973496881355124662032384981032138620225276505693284442714948117999879355081435970376276038083386524885027421854310401599717028294748860211675542535624373029014796458226018693540457398425686004546931066676573860854297976588127212073473090132204992774443864153676428022277753580555333686831563947860687688847969166835537298360096244899829070193625429503624719906294662237149457196089710656804191065646050133408777189790071090031032706535941426361450777567976673285906815090385499187300662363151389667222726299108654332508100787282092610159974793555578849007237140742642838233299290637419197700117255672587332621647607230054994973472944599013417228527305442981313254864026554032916842740877082452542272476570606782652032446463275521157657679963274970778548207234027480454937595377291640770918684393373616478520308630228155988804208860945142744555386122039956568845344370027211968762642403556618638936849053686419851481521409141136702833416035534324191136767551443337197378654364684836823352566057625551255637199697559740914339969478494152609450411212626633886102435430784698104072237730194551888089773740111026669309013620845878349377593243716291515323627859226841581468925675098894992908220113482519951729972403971707817955153018035760490457457741936495065218315788855174808984319844459138077538866076951917147226583616035752743140064427239347784167238927790080659500057745626343893027391234091570049963524682831020011406184623103756296974954492408137099035561502536131300418491171495746052037329820221528553996463348742017479501882516761891139714349638991029454756380343165785866718307528075252420051591899740568040264471299290491956305779420475846688255775274120781040413566013235690084936876667238638675154527092336056104609855530316913463803782759649744599358582293616962910562007448560554216755213507265858559616744408965471639687227526617099671902546975556396819259228309522283370612557661450359034863809459150123074903199746249215602461501950793505339590865376673432527991187865605228702710144618330971959493447481036195858866649668229748123928687483897476724555317903121735612607905551177265843196824315938593742354974744450432368246095528686134263461753390985602394412032200616758127855924401716560093488113741751638190242330404827128541747954945807521548623254275376505760901285519837411873739644054574096983796569420990171568032478141804036904412548328461436082873427669056820133035654523591527277625620171641722981932175466680505009313530202920837784657718091657509521669890421868128072206385627424833955754851911667798501329139152197495244530857391765239125017086688541058631037911906271212729756389379472634465890021271055916765370132554461536185681444560416551905393627938770119990287565858414072525701178793415868924871896819043797325814950930705569043597543093005138085801406999008188691400155832772839402429951811519506658772427325366183798155640778387124656787482438749393133308838242367726688881885091884165872836817367736864406878196981686833911348177138591502354321701904123378848552389061877647019092199194626702844103634910742692205819395071217518909566654464625740507042209394345362251036585319524183743485114156100582781740649730525126320132120468036542069224699737105693183956383342884393927024000895652785019179420672129049263970122977872237959504411224572055779777170583471296724097691089735887082309317571461421488289078253196258294095869686497635085009398221066102981326082451964134042677950806683185950294778525174283206359211656644042872034558970863679238384695034839580203296016581539547006410582513550682915177905430035481858641220857318539185936451851605270869524538443940267459566394735427448105368944982163724003976550955620359641320601073483467621711550369664347140468508314682339251284670436571911937336043678386418267128479813804213804611924916658205621271545172509992101734569258445832028012646150778295868618704885216552633402243113848644537889104422977413498398066375862405162671895145617480935063327131848756352336356976513623472477577244504849123082413822231605156822174556489494892583841866018321430625818426780245852110673005454303783330225070274429779846408699024826324068301609925271773129372537356314676547994941771739264248081639134202976482879023568105589057788380073419474448843965985907407877811898833776308846810264979588948950904774589316085916370536392369273380574704665785610518784493243868771163983333703272476071363901052064035755838549247493209483124843694684287805793718123383943853123586369714177767133186985393644278000134404917663795151677592462141154948508235239460258616695295909332963905623466715959010784484306217522233917159895669442941856056667668351086632325787366853117856272158562328997293073223023290391777285772091484048156842433364130630030434325494800017067939450333654784271622391199101025085790664037198829635419688304461208705460367932536101192458424596993375675533347045188780773476936772442863711291491856021799842121814964565781455979912498722454621654542572913559911274566243942685840645303843821539351234990689220724212741000213884448085061434109650852306659522299970300319935605132388683343484507943373336458209091314634214755100622100552071969393581333636907260660823260413710530900774544841340828938403175157591974935922871179460878465854837178855879114590251747298814798174430452903273253221631920399678532021732241261218899582610980302549169978180195147492797319742680547854952268372376012232748446643292129516415644431697851869367261768588805249963855875324211277755642969151043423502900969332660026518241625845467339620038836322673334114795561455212640570315428142351945732894364620010016751269322241531332605278011924011006648962945043202023394794457631396004051382548483902521713830596369495281290405185576772809464509902086896866355746031143988092303558670281811623840630082721649600281287061946369512983479757365610545318570783403186528336221459338530908106457895742886565878634773955148567453838296644859527251401537747816824682239532468547125582976555210049202452656494104537057832063612517351270896136296932537764554822199959246892235738857655156877008745208427776966745784850377595244460841274379881350829440320572563596635851597724187124635357938855416287604066776176143523586021977735427080584606614542765311905832524901563052875811863462628102875833154451825532117926346918850984895027792505580988529193934893887524355215679672890020758701579351873411207959885279187805116848265565245857991704198467108058319562299073460268362216975197222650650572750377292206984384080530638450992876434352342108043490965236013975241713262539250243083942361416838707662134760316127419138852948655912329442353242561022723637386801822052821566417635641314306442354081434868296538926734927518279078467210543939819562579267016943782580128755193161546232612313084698365812072853613521399710413393253104179024779900801514965057813157058373210060537366098781666684604898937009490400496530260692730609301451147386062023311120562619110098257925990401104822533382194958537109854473264399220391454070972863779259095426600703844143175135391265716069021976320850739713963494536578253101366447191496242959112428932430280587025380162891870492208884391762457062090657132037516275114842300792448601410292462760572345813940096462842531450576950300496189024396866568138293881795453034340692137633260133214308965099435542290526629500245555381358497630303580951574693606914041221517613866004040350082570410933088972449327165603507113129828536420134993678204506099549209270148347372937313870914890686362124838952790877123264395220545224693082652688825959977168907987551363434689990617728884160288742373183456804632337096036280561277788694524347419411407959585565990032597230130343013692843522547845569221252705480816010032017651922970227626638227362336961546254731703070822709950454281824004312251683277412735336853817740699999170142160484159023215994926862566937352763012423072399966926356694171899129190739792020621902476220891506658149978448564221462561203410728392126838613307517299215065635273805099917292761726630030457568564190056589863618429468272412239710276094274377269892544712727338623169882250123434875382903384360069028390457178985194366967229586552864507410032159996654545826868466048168180977745427409828877071854302017738290994282799935116174598201436197629729369968503947771325853722307850374032686225175550278030899897962618723454386007963485490590342457040022730642337564628395956999123861419061035830072195671304379483385900235221876238480413986903825798603491025058285700749094925880804385149429202818010916611432087350387752684256813083722532519772381468327375215688817904140764090792967465389556273456396644227854139238268439253951185288164194679626157883037988179428838810229923650867271390851976854850748393980586736970621481396926278198468185042617973082496447956755173803148270243720543429105820565962964067642469957219868809366718131317465000105799077809804233443257559520481661035881030066338744740464401308906527492785767801984131863747055627531456432423514525490403672086550755350165601997432158567897035428390116822819837138640785396596409332621211419784542292838201367253025093067034823447136080612709618964794971511048887602826724816955672540238482381173889600810022432655698430897870911394077976085266275030220594047860400671068705424389907496898808486775689604162746623877911257571115747070752935658582946584772078331426843889200306662120612772163333916725136976823517583021830752477844986137029430736042452721370636392074773760809515288081994458147774309371860542946676282747145319486070810651799333415656869687292096342826185824043924507955054744790456879289034324943738280244737849192837447963122761493690216398478820948404433289575334525292287452811484569616117744334300317930132446692273668011850965386813025896771150597103314035511679526096215400824461451466202377717013641146612545352396737757233874513371576958634054491368325115883040975414432241790361406075437755444177821209465457018745132305168199950400632320178866559702641559292342162657575777532177870769315496371559841169386387186492725247069016953497485176086690105497611891859304196895862500913893316204948163225890512675978537379843635156106410944660541906317111426310706065672762933311245320084766419198987593881600163435094807648637499341166144907127539842398185788120185184816932583818908749397342782908185713975675304638553743909935268844809570544283453272388893249423486358997288820743146323655342028102701001135864799347056508819942634928197256387111777627071277636800742716424505790100179384612872037949592495102525483545116645286353588162304873003492219127343544169129625187219624147287908800491446160686898289793888704976298261362331423742143288996579180648845897042717108553942137966236207395552498869707653287827649026742773414557044970950215129706809409572439784045251489868147723654237407765428678472977060426024690906553206384736056019484805189295587680437430662036403410595353721982796071862761260487225923724988488052876279419455250406028404436848800373818380591411860545893399253286285048806170469002424740366259305835413357299132898266037154617320425278552675382639251624643513328539442855834831271879276990326674281825714447663183828337352406890355041261155441934166045643213780716633954922862174563530969160349937678483066480058315099508446407839118644587209221331169671398846752099333638260639576119626904111389235350674938345287469729119510159168033404289684873243661283260967930693549389954142993805335333848139504588258475007085768264569184425371410405833262088404157770514327677615550438878796926569112421203921693125411226375958199753222232391362043231691610110958082360329671906225942363990052889596186403693343176550711266582264401954603502855177418676153525326318456248525251530525684941072059228696098727837962295204396942151791651305010235837629150283556234297371709328282855203048594835439954507763871573319785933484567019440508373859459155254377593098049869195590117381215141412035523522372135911763613381712987125719955562464182573230844637899490545524876660748388029651487357003790428565947182613700475936475549614521735889573943244863341806455862447264201043650540375019276180773493523177398524641528878267738255205277152842626274736758472638997838773331894323835805098882971393633553282343788512376206828961973564845903005482882998206522649064494824020948512350682391034150023652637493152753387002014175394218153823516514321618763813957326658546781097153499869115888291814150339005238243946610220644546111611826964708300055947345398742948762864877335561927494541978258576588186250020893029695244263310552090737767421053055899776017044879869941091391678159570115626166539027031191733546478034823653080862262496651535309541012180623408310016501668971692441034504982491761416589308672544756829338663622264013990171064594021698395740798570317756380449074381115104020625224584477867217424152512777595252653825934095290134202420749193228283807167002071776705702175943599827327312735250564985572463687929425595742306628633855425615333493353232357054303654558158658056527788241155619643315643611649977626283699046561152371113046576142400842134819953356169737266769764872821052354758576018021868349909254555439386755411649607616998681946259103213720232548633164399271718213989101532400717810842499330415945641321140111977193287575748259560725767143756448399236140858767128001624500459933293983820211351768778563393016666042011447294761044352107258284907155060520747381523297821172698805224828647482585606553924870215579178861265489840649194496078053191098661920529707966436399059768211417856814911554419789167206062479423924265539762035797031840274623847099107550498992346892326862662189132122482509728062973172964083258623571909755095842894253964993353699498276623589174621106759574387118615736555192886351904642669267484657019384526981158299861538122904553392138705770869894672180275626331157642318453198895029640163373744544981694334856165810282162904873322393353810264893011099885224660036466087426465751595918131383118674913522005887961204241829819937215252165949576566848829698883684589454901990411410012781607936587465013976469702010335837191142641899459363115292626842313848205522518070051417595506481320614184477818307967764369488012434784500280917412557603597182466184319146734138105683804962006616165283077821744146182527052326488534982865586592213010176633943190843208703976185030693887895327751735019021397058121866347094945504573177820159586296958344631585946060091020961174859325316717224374661542777487707753244602888635849187554476555698377251403265301455033983663531669229162692475863647799393440256837124893862608772845755171848175185115680144155285635978663067097551905871298742237292760574814892037808008471402478647661016763358197021021259052747185286361065828824657438051049206091827903371644725417370253698856900566275014287419457681785263635614755495494872085968188626247103975018638531760355650692200693970184082120617429294821772000546138026275191134148080290283999194527102686222130306969461561280378589842828871075487310028385161737537446645246871170592563621065621671660550716455402627457204945391126931543844794271730527110170973274396830992348939289235579708601071757956151579682151159744280659439769239275706843432389648805822032429740839391132838571005598316188278643045014713504022585294178393163711781629944759627653281275807101863006630149063172101827868840895753386368574317151234298244838213014318384006859786283404937022311399746428619602116119568570982532688877260897999273525605141014366148642931580115678658748440889128545167838265248636640496914431900546606907106067461668538144758832501465700380094239970733443722523770593733538836856740210251115399323144023758166631368576444338295502412788062048186481710392739340812265554957511688938073084151312220581669366015007460391316836372272630927667204879989010544140852304080800670220258414610034422067761369017280803830652590800842079186229608392009023811592356470688766096758973533171577230675564208184098535226470173396426948257092631559071345089812891641608328915906067342133111929883163530811462836188122741508379143564876400112203395788289659907324249847775126167421346547088116740009992293681209217954727401307441859505122103074326817822508827555551895459916902914527866984275591783093829418483641942225531633330883726850972887213514543837437695350663029981897267382966151971955277312976867634642192123038506772174580973750354713548644583512917938134121309887968535598778887865387351309615588624937159485562586263255433671146635020265750163729895459825954070567536263614123888329989201014143790870274989257123923339486004426348007191359798870060278728799468832792170066472132271775080298827716610126651380607253534667204118521768695050443227541942857762983392328608160297440749601792686085191415834988665698285813518957889591705328022205046103962851837929988526374417755625075396983141517660752979943693983477647676212332456114724088013659107014874623994359190796888869756960756358052654120249326306055051023883278442609040292277765794475788981927821507128613150593801110644813405189045441797096863669923910533103998522997618065779862552381530203452138519198377666295612013784206988972761478799914114819852159671942681212363869607627821908724001582068602006634620377688634945674334173295172538278045261739363704877284970096104460699337604230142039495515760704989303560549191820140193907742378610519680187950368766194948208878669334303150273445727171689120640886855734675727322352970217158352949818611640972930453489136210518414068447750009309565588898781764384440075004446855196994972435472525183251812667462733674665048518303606170518822793296614412119883055300924187651456025325194390430556040893249589723048463695884244452127194125450756699613787777489553427652973294842678841675588007189604968121347799073902544523561419232045812300071265093238512873049004155210360780926805439312818404045313774572971693248090977522926597661484480446793552787828415968993243215647530679889629004816477475809442962307468241631259473403520594756718698286675902419581987692251052663526058255969700145029367195715513098328753827743164147039484304658061878066330745348551827574263104305696679973715586006295470192693231508354804609755381370450139690519859379288046572587215691275390787070112512271918575344114804249771312652326047735488664186552840649298522302611123945250340057180526206150649326503885641501393166518098492224067200514089367894153451066685226120575442539944043789105803346153237529625615343148870433821156753590606024586597418304809087994624610211048900811127824703293177305196562827028227730240182412752707799215327587838320574413674623071293657166221969182920378071881149302354602995264601271107395596042971416284056261814015422432963807870388038924863779822902150145402014973794025917623622771425802871358703024818902558056248289597428559413669667367065008326371286437938726159750464981750430554016162581250945769494023846519897125456747152488175905870815669178466762128568293727476539604470922599695409636603172187617262427635171221595815776885739844941424216745833530629837264551497417509258375069617627003288269202327598030081169958549108620659157434781118735393051726659655486756956058175422735116333396102444313191329816473138352707599452219067324312334506154344608121596049851576792818264582289766414484099529006028529823440351094481715255502009525290351975247670971791655124049156504633227771397583836478932494063813111233058576083782532026479193735810729493516652919858089578002501779542933972411518823584980174354451206717762839346780299489043786373049267917028009762114976358432230173768162999282224086246940381705977137360499316437749664368837341440362222385828326978216907508577960500079528265281542678850860645490643515907923471891992411817884167462816207635823529821940644751062407119523147104808465183008379158200162390063769380046063442773961956506683587113711962499836827324154703702621148156751573909183969119158335925699172781733148795627981843166267583989329847899371296435803595522037059246383943878212200293004387094995982091096330779857337815654079766000903280753386790698334104456343950404784137267940672348364045241341117846906074750572148115960581178549693576655231167046319710947411181542950213925385758938176116482672076914364300927708051712249357230981251593819597535223710181867781130785238966259279109526153875788257135279352684308889503189347603050730052089217687996028829137861661824074040580208233987687626422512742366805733821592027441524168443337910349883377687958974393182960596585517807621279946547539251506754670915001142277729428353613931016319301221832391902819423556656530897164245612833451491090083036353184519021018604462778800781393274034450005887884754822299040306774752504895122204876815430557967533849529375925604671721323518138936379928990887160234339955750633938627992085413544903144236509524903987397469325755770838388267994087227859488296595298075251125294461944667726566664938346988535888099406397762801809167803433235294359355172287580389832694722432746957752032897825958102770404897442493161783693270671778463727445507322230648603945498670151501891691796793145760506514867036104345888617811947037223447612516439011521704578821055576328396188543685437276265388529664538433625827993485530284745694259062982634331498896496706274784325506008845628389299291167022693727361954101772629395780185986285353139618713857141116046550428636530513532557329804033316587795985005604842551442345652976873123559907857504029235481788330608645597520226222179192477708928694869918269587417167987235700789943737117977467414928776390508137018173539738991619168272862411855218360744313124783666284584248640364099860332626164768238015880584326357860069669680931972409814048995755378014480039080475969396754565352233567184782967636382662904329818310037026991258614718043614455140556044256775591353455515123100082164413353417360604476017013332092591197040234661026125447729078673802103873013599159358686608180708582285328618162433956419983784940862885514813105063872477535031306649952704601773886077460209662253569086094470607348045216911611035202033883657747496618835230701554382424098372930784762585059411196506424081672004852428323449434085248595529695896608635996822252362075250453084511613179305864647890724496241864331301922671587084799137624759445358827232511491824908360032412056572274033016567585876593461511354216290184627572481049976097946775502172272986075741003809977602692457087987315094738248007583043866944430090858187051687471601673647878663185246291958929345453000466044980341852407877879700815859420022301855692651271591675773209917928260455865975020454271457185593591180107094319295646613979741264288796204767790497406975782275383139934097997912967302802886212998696817656940032697984984351289107566717425573550649557462653384403895045123681885332918039847196748669392351419461724651781733395261594637373774429152837775786252184992259134135280197221852136295718604204518226750972642646523359916239538711201788506327564658394377964229692724775940252732880121171181146011810076525554776524787559182868576085466595190183895155552576446354976637808380101839993445691102261814644383200247893960107502182646149224606870594602558783662812804547648264134193911674896923138492225028490379971045230248958950210214750851375007485432095888409912897011253626341171007432222817561778659971525193499014769590518151408900623454640316679822063108991452867497202969715642244710790916823678027744363075068200702189772114092803312843888684540800618061977466925310197541342545679805523684053598949720689307424932669023910906302249977584563210866846920772789515268570154839903941133227586280146629167144771162085670096045552082506588174714000194154770019434266934251141060247380467793564328170548750028883709090572789915746971183350204213556593185423349942629969539084638238313568340525406248743109480558145803015142389733990966655889323558063471499286227241887619812150978067679457674088267037194912248691388032609939699853760360551774670974344600613093144278306766563346700172840897983417250107199755193572599467263798255472993162898788229846685737291231611022116863156311636836389601237285442600813108977669920771300414025060754987582053484824522123975149077995981402334601146753599066344351339014415787367053189135759596974235148036772695401191104005729585520593581438237957341495363634333766272207295890623466537208326746351395480097272159856386764201920064004823413058607429388965575728316563218726759075487980390118238482030134353375910762168474833704990044329021596330994815514129245483573605447008748695982510914413511460112116673219482135942201723959384701488558306993398377619977540816011878563876029167344626513644949713212744493218031449033809214960249568532586272231467375173332519737910538819309313904663799131884091523355519116222586698575206523368623699440076047824614516315095852180087588806885460732085489635372526148639877710550289912621624470004723783239648251023315131504559389342291136056705028300999246844413578665002579268675456075005976034782435459766094543953250237451669668426123764564980443805060549563755501960408314148700877891362854912964420696737738033257345153083406290761010513340931915708617069986017095068750584327013927429584842933171070638270338779683728743807912524859353289282522661835221204714824587991317575446117634432120287153588720011860284032936041310144725472566806354096657384195507783220731334732359984680148698598538213692049114105468888987977275400166501081907942878672545975947601482234469064916683725714228154954813916537573683422438994620100740926826929586703911591713684106965201870372008590346396328127014838198722001383016446977675007817847908518296519582103416816466883498940762266460210685464144023049669685531553946749520227419394712002409289803086738324972083398435957905826565261244672122884266778833290066085611753133696805717241339262479207002231343277527730390612189245630699709939354378592683012860907855483789330184987854315514298876278746047443192288295764440230190401309244873218200041338577447657248128104730809523410745579195892775608813827683038629359159083589945778062152168390694244637973240355562690760722904030490281166092860266450624536006731503425979069121658616005405951444339885941694021197332116831856725912606465337051566926715476171075665791926126178720062525682905422104394217783227063867546706406645454726346305511626663628726752108779704911078859188826555981379418086340522626204249803057675114502248802855462818999389112666224023249760263510150957954663201780734365942754207482531479052923447395767430287068666461900195487981911259073188252435919148655486584590074800159428712311191458109956540152614382661912970557140306869725602275132455615612344211127419338740465897287310078644459606308851447237984773065734859771610900404129911668861657414712979396600539984507504418805993127194994346911000793667693244679158548591826965408400518320073998096455116020344635959588073273001067528250942924201731700316131634198198992884032249328308600199394953605902835702269234768718373855511792221461027629176316211113012569710311311231370822650089136259638364143716321069180286909772724793654946155637027744110737224206452772779564757353944109884972372301791506874564453711226314380519535047123937199012666469656196124182167094657224701088744545542383660233012045900205582271442459285333182285433996320818799828030012070805303212685188890251850232607864974359657210752446911050799558423860753639535553771067989553105490208448702049026040933445642463401138261967713414463148481973210490154423234940849945078817606230720055903778373462193110983682905133486240156314260018122597345137596150614049871966364710888588890884363655566003747484618303983696068793722880389347414135205377862423575338287043259049432616770941906206489859979392249035899685608513684943474558350502709478117365682273925570198528734810036675142661447343744601815052197901663977962179367192225007020352775111722386204306248819688152588409854776329087764611328882029581851220366487028827722897160904144905508602501373749407028876211098406134556406347873975931025705679873518137288218655806517260027998130171901709103776176027882635061613717437128062063288782617007873414744972454886065279521194575651137529956497629782049484194772980205861636890247977525400084929502091151767606949856795903433227685375314431279094167346876528163272595316973990191641394489169561058021004317020528102405557478346425009578923636458078254870091790755756231776259400930244784513660545180250981123222896386200938373618555876248084921154713971512134765281850656166106498668832620484655883349798699735851092623780199018040744980467005204872460090090446030866180850192779564753308372148355387856869927984548958680236531180567999946915454232681741041266127071297099213168096561436607085185482336640985598291473639740554051111787825826138072050553872567887838902492172549794789744707017528686313403314470269425005152077622693154308034599742019303302900028658569978477492387456976217932714431645422277606914379855183472854656829246531210149905659582464242212193268710356491986607307111609271220021227773504040658384973603481058959908476355505135047608028690892819238823327074508522667125813571944674464973927748231043856909642801766125250055620515361392370689618036138721665015024668536899862971239696905752473016387979325208911013626367867250884853284182675961819471627242386863586389052232029161897031228320768931769933080504479615130709345058928373269702499120699768978444715593140927933823995674098128910305396349477368334660025944715861777555820987070255831928564559341593470313155254986941574019813303493742075878937674425861921503309357429088624334749911292920071357710713622919750659897655985581112235075603334967750293577668855841349656858902644557083527695330554493883233766434837720441094800978720156595209667574148040772391449929489028523790154681659749415512724002901986638967216169458754484619274096621566534688306784745375418101214618996230683298974720310422583822556721613996134080839717473625911038905141081871232958021126277571019008588268173316175470518922695802126082323507650143535526835463004730928382111568829648516407672148432641694883810434695586706333329621461436157803881131293673356102710987239896600409556155926794522008678275522819703067296639182615661801776110041861306931371604662259847480064809625315058971513193735535811529960426737244795284508266416117460593706139332907604846257483078980542845357999061345429514849756215637708216064151145852360702139550924604573043629697013651545809964644561996672026426404302115288547143071076047142255924846214658359884553222134319444101217252540765383324026477124654739576513653258272827806908964475577538355681935571635109514218877889518368382749046149908121289671639263852161212389746113984497772895409489065609175000072478306048323092635274958153967289554861406690871314067572835392782902990930545637117777128317005732184816164578527917539133745121845519298753444320939692517362595164176542255926664958467674621456478340864302556193922411178539573585783452871443206334083090896820414874457097379614791906842379434270995821608798091874281062161375114197927732549943990401655681990700635481722864821754380702040820481226748701750790091691440557466192363356959306539490909531226390867447719633614507954348316553654434086568670092041749969556640266641132004366269833507383012198781155744545069084666883195139268340522510843253315879440307170181955010653605503200402111836334437277187452517377682519415286834237358248843735381305124396154939619970933990765569088982830723308209626285579249900782245857342206300221131186325738179314300702446985000685558223342448729120521208061298288130720906742275436048933591208631510855839847780504885138691980012831432985357798765135360514519233362537941267753296369644066756033059806472541610087982836062836866421740230003521744165952500193849016032671712883385586919033172474692867447392497914371609018869649021104172561291754250873348698175460739793063209815154273975183106800890738903221146468701726227843331752984281867706434385686273300516425053058712421563470936009470174429153711468622290374728463567596284960813245374977613296579349393205412654819238891239632692488934389439039699780613669396187315591644266427486413608254673671274250302013721112310690753997251015795975663982818577949480743624066594929964334471851755224925354258095983571944790791646777443436603706792441278920707458556610592071658629224629606271861556475542434467232654011647407427572517039830726928206894572456872549547600256894619674400523081496555937122712378190344183917783557259606752172460723504090909322979875841077998210674117056291920245497009382309425252916571738029207792613943080288410055843546686185118075578517684370711040308814977946208464318231649986768110064161192253758622667023019085297493688187231718353626406347162806362179131255487752820805555546764062243978771924368136928051337076826568471428433497245991797185854247200982263258408579100555543201201363625031704139731054661466748352902908719607473075397294551430754904059735669542338340228907419900314092035536936394912888421512932750026310247815856440567992117522301707314268704274703150539767974715754713366230213256455571226562694523872284219123800619103947067527347081842419080977477590565609732957225107351310532984644557187180014551788315089116997076093936089769683144502544866379128349258467773874025099516863378349428815963759124238216627063392684349536108094185994690632464869805083094852861886944643319593193405241765512643288765491827263586468020289708820364358297718187256229439818461189562646994754770884722081825806744892301233003218708687055346449478329849210134677918446108888897904740425758951871940803426077512747240751480885832316823891249967919125641200094395173824332497804220073381834127115787618798382930914337770339134015902879197559837131120183321494819666599043047561302028960883744076728664431645905978809202190636749130634823736038404397884647469090238546601461988182246335639736347235537116999377004950960265412020770149512604299269296579782687458888430711507393465764478619079809189933496465277872807668482343925599721456542501755043687348662242395198797851132474655544849897067655217232306979650886749262957716128914328347193694654311759270083520228214164070946792204785005433066895717906936259943816207453250942732586588176055890720299652552017823112591157504940906625941741462352441847029660395444695615430099785732986616891069931437537140498844704651462029814681825828962231184405147834449015288941005059540838638581572383708422403051174123583688154902437187290304143191944435556395634506478556081408912059727539021227689544240261128046406219138387997818912602176708283594184649782455455071070478598752680203523519033147945241780173037365607747311566192481134090369067697174387387735603976184633723555146648487817598846057408073111207056297816827199305395372469590916538305352015947220023469939379801443574503584883118309613155803578611791430875320758669148139807780878833374913889089173245813896504484898415489255882472017005469587529484066686248338042162449996790225529657595858917688066517459300846188460718386598085302605745024837812541716069604671183798085813027319115160881673839177041519294179527641682853522804009186611200803197337773150598338297821911964552880020200330836980536479686032710111134922576690731710893064737216457588931329991603642456418977082147288949474130792780153543473355049787767200476359520605726566898936240088252887133472495937582432130340357117345927651218957090006508855018934253467079827499963284648761474785959259112253523123062941743255101777462504169943755109442205076699347081677962149499238753004824785854644697434337177880778843094608840074228169833614582544729454860843093516840622787358438297038558363715660872053519663509295231771359179825378394865351168643556395514110653965795769741659676308763236667923529179640048366592173045099813652552081810767095555767897658491081482704513061228367181620420548237568005194845768914426760072550760176126236870495650962263360171310521793083174782170869120462238136936039097773608542152783129668487739575814746683869598883112027771567480890999429534847799879216307879806233443830337185018483187270906983268078928849768029754567623669530598348962222115180543790635468914437142726045513633481315121518085432922465078854908903503996385021946629770423191855953222155890849397943846383710957787956641935516511465017158431977720460565143859596435881001693032112906675161639202456467576470322521337869268133368078679606621649939789724291095447297482796081470294059854748734418796712309807338974113120255460962440051774666526772263090821459946616473008719433195231498180302963942516484678939500756075673889354371384821359838713249055890641378687814188652890248072339588694297052053418470901702954512063073636230409396923449906641029469567837062323029646939565331283241921302682393993756814251809149470888985178346378550045191076823307289549892791967326232442634960604348607072828315278567164224356630789191995646778816430755068787764771698103012710528621205025904361322348192456737666271114944807823375194257817798970840977060703669241015762348323384030244697859959617498380855297057033532855601178536909314369946164870540341602631149058420315656373508517242283672311286499301042113058733271498337473314897336305682753822651226263345136619301127799670794356424933939715479375645549727879230599691610547294414310006524177280237176042354698568726612840202583587373521750012167846976205926889987119007533006250505781653308073726916283771454367789012501540567630687516072303158240142962175020267792945136076541551791217339702865612873125611983375580453142793994910890470175093284930910214151849788254238530899331454698761590740938669829500808213419469936695857926772679756578549024823651127353565369896970307197813348448584684881080847606944013581180323608325060697606825637065065688992641188691443224651836462184653710703865323219905189608501743336995797992479100854161109160230454790936194692476061447690585569782572877462708822670353426751275559333573917117703909358157274796863191415422073857070821234394036081105881663419040272565547474225409179392172098457696175809168935985152132850421576687106341660447318003280288933454450702468191582398161822051103619790066863514514291355691676772577134351897929478475560178748775147132164202990487164339980857632814823957595451017853093057475001705711057310586011000694454377361721464457797235440532321509276489367550973333237973532242834579176149525228168839917002024426126332846221361379697509914633603897621491345003486568457971948152035167150097569186511726035057450788122542526610650283664548922798900996447372231252721001846694685699997298602846808579950814947223132134852347866291691031664786193816050070250079096364586548747972990113193140975307436454206503533967729618909777362704843656122014025059758342566928781467245005151017539643120521697057323002200737990472477599756335905207550214230759490905714460699575564571391066931952176594791461507189894146011264597131852084452837290643256545466477961663920833815585593954848987384982560292339552882873726854340164640594464772464376491392685120765305272861228010346208444085291536105477504807663816066323776514362051274957846647197871763646606862769222745268956805483484836992153149463142395796895327919068974046406012485315534295721087710010666156159924707667337167236200745252505907180332666658979237545688182975551269034589586410335675081413417617381619839623085976806653449155171966223705221603275913296737625245292425892819172290612823391865542004737007846219991450520938418045551699339284386564306565274321245031171821268698490336044363196409158848108193956157860870065148079506859351026268387180009378709851325950258009484066899812569023685554701194472110523390139249681774455925353749900434082513587664603615584952773357813523308967699173509027115688038680209050863083660494756270390067357809115188919470784407380037367850835075026127814770207744106332709017440627238109546195934063571353381931751547701215155955454145917051907215732343621936449215127522226367870755877430162732117460100072063371655015352565466704851921298927221280361980275574757937186361713721140663882227764291128372563643484346643936206656152753946651131501892179411693411433144514754094600198033105132623505717292120344438875011329029981598486042153527672351779960960635280788703945312996545352799475547712433534032757657935943149882174525043498396940146601555821579534545429580413346971573440965593026548979801911180945645995017125091492817916241996119574963634474962582919883728485058313565468943164082506239656223603767553429085740046654567059927604355969340548332353488781350049223276639418880039006542321555558504721802004793230234420220844598831805051573494331200205067454583308220371644418963455457961299728412118700533596000783377553379337170693979742369130416193659402827203470390243499788738214477201594366538569712256121419239818136723336084026394106773814381774967244564680057551395594952270659770990623896056312247212254130666450912891719020800441080590808072903668838220251903455335942677980459821305382711413846908856962235481539162037800894697359764259069404608241146940007073641046958355015692897090535451788832581728309761329955995675407969605422184547885420900188459070303301821427075657498218914497085357212813208834154598057964577886826785273396109637378470838042976873446369183529671130626928915462762516149821266194381784715016422254183894980466225120039479049673627650827391027497687866020227530855246566970691872724816846940935252725356085073578906634576786390171322280114835127666505173147260272528362289869032979128917990334344425963992182691652017515172435945782398469511454453220969464548803810760012969182920967016502163382631537795454030432881155137304851158688943767662136480146225192948885117080502545080175217776696444485940901046502314780083464716074067988594846368071027571375821618562849626370986677627011698555317989438278975039328313543224293983726660344835986256533583139889233741602581112346064610453101477778405934234593559690871692255013758653078136456340896364929872917402647916752873546199173802145988749841912074190326306901387474324910221734241151883274749528631336762151204794688716716628466700545486585623779908803197158873665454807651236611525737775748630501488817548846202887540939328764498335796104750320497335944636550666479180181761898841434150371270972622943923865924756002442347071115841874713555297840119437568507157131887083313731290857312055897114936306959882681165551102694643053755542380571809188851440790476573599648147637358800525935953179333165261746812076792694903168696339050084810322915930862854005698984616745565071187194380051051083859132172615899318300863263683084601477962396607746991748047660348853951895749894665619356786437376626493480080040045303500425928554158827882342828407271057121169759819177232013059193062044245234919233554110875368780301238143760579865781016404794706141524662471060366315881797508641653232870415652712245233346519802189579900689593607506459861220005330218471981271910069350175036972336552954580748447685571647893496276037946090477749060229074696439404472805266530983752548262192112281847365093671652331915859154744163445790425439824727775944610884756867261389053575730198263789901308169909063952870924533849267655112286032289172388413150302772937108504578523865438956093103362386338701423658539241589205785313561401063964496950394807310994538727266171944062354464944796000249822923986053686800365870195742615030622882375708521399051428531666738353157290009610185908950446525049201631085841002393586508662534432150698803756730225649256592173231280143993639602528544621342539481854574522610078631843574639192412501376561062945223706040007912814379500338114540881309926709639784290723053765267528151509594355720511812533662434117628899683605563709424508609660606947629239817895170015697781629369185852879099050946811815091045419617842773255941603029391089032442894042895315637087873889361349677654249478300502567447184635465578478892701899842640726275522470843967219355874854169009124453430131458209502669860961892711754311713065022925279132158345059669471844851453286175249382084587621983565326923134849203187542205309861742564642310740572186282147011243758808932225028249737109727251626910655888321180431724926271467198599403035180396848368527414089581900984448864429661719656859435865764203751507025019074583792543557977763116257693369626804943462714788319490619380848838522348674808928566408418133189695528347098823163024742880204094518774576822201603086452336617171143414123805029712583524013571035486616775002386436077263389175628901463379626311773620239437099831168980406830888247235072807615502353575520589169231859631823851346527439703228566517142958921475067458888167454112990756708477677749991791294628028563954860393197011126021482877141469591482828393315880941798647903283763674315774218521403812451114594859691220164150583701571251118992785480600431662154394780039768527334291927767398837478970411138664223498529351484658325070289727272628291726306667168477270905256247851381037879279762018406672942267736581729573977757397097524839854825533461085548842896325540604068932259553503111360586600922636999176918984567273517550957625262344177369913267040898863708987915054684530017060459081523152287017427099122241656811672801688493901173696029629508990357452587663419707393594397267008127671647822291008027823907775479063398801165247014245188326706198934627230448550156618687831639218582765799636592325719605307621324268468838102296364316096398827380945757403981563107677762972875648120060140589786748212173879713403387494646998572084286820476805967520363242622285309234183032169251372625444180166013901321330792049193022691141523132949047640467995190648046393808036937301748906172599973825822238652546338562902342469289128454874945095713304389131671648043852205055269122613516932438079739962116199064279783166438757294456279439022183343404756153113382670721934437928716940036566649301433510344795866082517610759680127714657334168282519088181133522445576290939702279778538239985790505107737144418241720977818022871769928622522517651655618135798942360161648281062997512458765569091797897005759065858059524593153459675721657064137026554214130166367661406293837042791951847641684136155220007440367371707746261145934881947784817751266923418902649540115811607512251101201785147629181010769342499019561945073103282759244223820014009059877902468291906003126939931034024334699454903298306093300863202441417558974761742769061276453628386818228195482546900239973529496982009512426229831797049340309211304599355683820065573189048829783713836070480425997433239030447340296511282017317796550829149364859860300814986596602228741714334730188751996839099336930794678439796498154634896582211494293298096236937568566562688449259887971221903626506314241129813560206353473142247183659505715587132270345753020686974792379951519143540630166019554624528527276278634290719714408757479747733145314382385809824864634419248365004264182074950315691653860833759285624662952077477437630279065125982744489668983622180065470650430270265140197216225159567680289189883238063047524507992571581130898546351723253907528464602445042887711115561994966854661520189054830330106060609610608064937401900991463541286545296542282083337309323886054784062185599602293667341742184777565281148092632200937182032114158483216671723880614983193659592115056030480960042382388664223633035228859687491903920589138408429557852313229068487598637737631724332594518684960049450085369711772485750025394995707507649781239053357413717131343576918146588503437635057997889510355272565006509984369129471206725142535385380354846222462749281594026751473784140016364417313818289434998866311062874209562476784471923064009136564044628223161843643718942589639050947876431612464691652280896164036971228479632674954189751149964804988702658901229641207075604353743005169396100591473721093115253488215132770012727501359591974324753050441647663470831302105272717581727519143101666608490486406111946184278918061830315112354580278028179650789942645214702676444655421697166938146933905311845836447488944756398959798336417122947261018769810811002977162861907070523045019190820331042187196267419263981139273206294757670589680406993202556817670553755978152140382999883255264780197093936018098542543609999868194832698361685067060650956660233071604968565608942917112424123965963869777140277835393601483316362322333851477468277091622862903962562828069206778850773957304950992675093942819586553040411452266264241426579534933257720163773114587817586979668285942359287670769015316260341886562297236326780118433077537738849868273134061127473177614450427067846976629808490333679871494585710310987474034530539788772657403876934719316382418368096933197973291282477855913139071831517533736360155839898059378928259183936255269865879405860539138757284637839369106782404938128356532543443619203341212890192867766401555381847311729483782332028468819790191959220512805952317679916197331552962299403281211792526575513541829890705293079675788361145159314188349617337333500776415850548413779789246838376179860403724331689546749411876670782478062626294944182233488960613782096141222068670035545839829125892715686089679596573044228732733841267286572703540710189012087392358652099158814992104330241342159384443996337959968969067528953073770721734537311400638536291649209347542353071915875148782084824831700766294076361626833084731604834450328169830909332246067015119503287907591026152492710413000648911970254024154035433006851157928034673596321830788500402664282862271535346954886838138088249769960232121849788147128647876439083547091456628282457375376576759228245209848588004037833666141166485269300994116507271640915598203507895200413152955279717514615253644291199713576071619320350870707614526302780669227428430535533091328059516835726497184348810672902037431426106116896706074898988842251232551761919103739165934667622588946050313541091668859356823130797410556272022778828273904088544910276258832499647273640460243762523822674779983618044788027496965239655810718454703858629237652151876770380757437535590984302268341411016291341932859190981991476068618507821829469632832863904860354312252223355696466676601281481805960829540293510349900063962227631210259926900521730041221947873250960903798770821563513992867313232968202995050261524430715340167415805395711038960192144625955889690964280372328651128062982932678850040067468055288484444172211229669589792397886252734698200350148009178806845928215527866298094472091534622834801139674491116774020730126944600078828118869620405039778382976353482189595855858969052984140159117557008227685345350191954516328330813075407784359906132830844414287846245396167353385552776067064382198483679843173193826417741437905195547201818278840235682139888481476606409090040222608046598558137824091631448092553349061805754760605109457779365599497309750615002722127697702902300459879485060657931621291936824293535817686592860056493095517610830722690482595255382409840975093812573311048855106041598001618057505933375259484561303814200952450521554245835916212247514077466005556573045207113501696963462826671556513259707287630674724188171799910980914791544241237326441025791943233521242697389016467013295640615776605602513318209777780939073149755506131762987921246472586257715678688826169972577670152612707849302276773610437791247889338358546844814385094051764914059385444402750796854063016052798931952823960717970835556240686589886240879600639012879276441761878481971917051498757329067160628783398721477576794837398524628856013674435771598001368977508691431009996882816145711363033507363303891446184228030840156472543724840996016562407440081150354035506208208742653535017822264152068343381936233559614178706071053706356832274352260529057057876159487005683336736110278333595061469770254285943740923470237557909534201372322763655981424364682498278664341971357520715719385100105303512320238482294805640486364037310161449984774197194816677692652853547470841060936793581585975716829268479396221617964651266720618916614984239062107792006528106131473816614531865726017438588000314619208002653219967570025042904671622635737532592196176521013284436156003503243911695240829604829291691154142954472238249881147904426526265856006755992558985856507040405563875518108167303763815258001528155928098875561480748441983959010219736647578687632396291903979284995085976632206846355423819122823347535698981332500153631156332439049257771967172238600160444087184959111893587023124079617214856957171760275624143674875995507288305290869715069111793253474627691622483146064516321364140324787520081603777720006355907887550243618999427013309967421484909341330509208755670360320672095565825368600015270224352793868042065629888294914374087302112419718526956179043706072691145291667802064356701414679223098935490465215832929434428749111943715159153949481274956316284722315746525476177632520937300393846088413820798645836503771896338098203387228200309155072665916520122871235995123037210893241871407279288106798779162780532809709670511829071588146397344004720680778855273700574005465724161748111256870655148010049661886553261894542461384116921057998387709166455718616541603752300535612731777071991966546421263346358493667497181610408495526741555774654606642308261048807164756469803346472714262084919094888712043649187789636720190468651977234439004676824832595108783593246318227047915348471683070506083054618882020974477168274277442031440994357022686806095208095816931211607330759009349936717928448767867642742744491469177591025618743755867644641333448813538742044954783150019749580072650213598347411190318871144531389331368443066951184015840393085751596875690236247608935815954358218020291669982411420877181044077168697833649832601658557390118707497716272996666653567840959179110913986569969353026565149566534311719326501976329977276911951382701161205397225159696129210804280170373068216896382489122596098124874141594035423614107328159499561229514205279773159955869445396998171555399706127116331643622943507787838767005290207649447797438623660955963281211513135514349071433154392811175620198656738607826017233424519452539887223122674653889020804852165273684583115720684422242477392102239030057886969474612199495146009320080538078160178547218751718644963164293956892278178209312332711501218122959899585449975984604880923746133257959017338921741797237936474063821071136518701110701173504709788050606811382698426644634600338395562874494338491901918788035244303654060296565467120635583038270478829423632752944272174101671670901682353361754999719376704521704482666830747605467551848223646928330421774237819424820495384104645348980752213372722294335316669925015558122469129481832001067270905730000950356193216820127028584664886807522324971055781370291968894461191768388572114905518325911402973861925601105910622646059857839642033339927850132209759215604667481249608185851499931296633003364313709633774911513046527580950078828286151231890319130584395630067090282950566660806780519393413586755390589554161905753401823377884162240399003649911009377249005763810197128324390656210560353338243432287714623476429055910310380440504004526886027043700336434736569164988598378619432566090344874814621350836052931896306938688145261909519455726559956634705315195579073415463141483666524036637499223975255965597393073670193567804857008317987246010608607816462583890000114255491460917006685952718091940390757561927377632637711655122893682292047464075326903390819981390634067757799110916794192044389548302071429648471661911679493822227618289841497565425779930536410446138045417590378389085760668696727621105535580054714146631835867395870402317000995892983729893104106311766401589682752618368777917753792259911705785701027918720026069681885361189824982761824703790859061073409203241044212980958845460151094535082410700797378785821339270675925124301438497304214924291019586615144406279314884013513603071900796667461261334316954416702538418988517032699164615216823148011116211943242662262784658914312687469324185637217412024808157428158511461809890838451668180634581310033666851916971229240263775929913704656984875087025953456100962387434020224728794150712416329288516100237268151102741469596631958376185342051581233654478980779710005533250081375624455073004084123928881811015667665627305429748263071793117130564723099192333512682562740363069724413316503213994229559644626688411061884941134243170633786666834389204549968423921739784005754370922571520233586781828979027411223058506740854198282694672039766365319517685209326338174767972228854459154560951031830688241732656224449477953993457842463115970503483932885590781903152243113195953175412485546967935458115659602053572912547068771525305844540353665012940233371463317256154423550287165385590795291184927224416920276648563457629713064183482300914739549702214096380376812506934358676761641486221137970435318810062801850355758078316847925155668999699058420193806314281961618092004344799339643541022278756083306963886182452944604928107975148391083006818281240905588856819046561628549136609801345584376689759943213294247577857394497964287946616104342209071545761943303551281690926750677647926518990451333300987192079098803420524326643300019963067365569312157494550590990715319982064381691964651518231633996551979574181499911480254043290617942030512111618358160729869780268722793486980817537056774973437732818686220359414389914460184824279538680642443761530273599239077031124686658087103143404882419272473302182248211985309691912424890563200648314510604650980929310569834764355500370252990736107271897724417981754701538163673661722311332750348864405431535483949698830965880789174871315017203642236226006577812776416399884387072718894437085224423579812439004915827807671930161331904451801504355763524404297361753642952035039827482056128634405416784905911440904071513298110132543590475889635852527703989458867022199622059115514660114471002558484471499204337827123594065109076719178396935950906222565573421952003244055572748591575707971070798604983726637029266671333499836303444420695315112646806305612320397943616537031076447829191348834908980026090907626183814115529450649946551013914098273260252534866561319431863023335205119727455718062937802245030562015523326262620664465921281868032053876935942272039460055568178457072238763124719808528615604918980786910154375046297780635515958565129088897314965107416776374566184215851578001263387522965042569778050975937462687403447269480523814405264284893664556917216554016961175439956717903761222804516779246477057721195626152813067123890688609781343695770842473732839489722560969748138728012940995367827864295001401089437685750893179539492747209199059055894003706984976026008603643291778153336136514470158867757073770127523629022687220196504175651388085392417481760118960996950884237741672466355536829257187407866009286108778902866981396561871406616363386225636528307063792828140392612110772186831267475264301993122059926704689181831753622497083224408733446819624716740512166240078267971939762190616527788294957869881233095030062819857585376173921933366656941107974046235420118179606591635017082034867959253299540419769147025056238500673513831015874561184078965903404847679824030897512222630810419611082235253739267031102801998052332663203564155529936889711337192740806881819747232519089957554525504688293696126535108278761554075391952095694795705300181952432033099573979507636464819229208017193821455027915223074078669243169729317419390643767939596267656093323190825072572086869553087061172933985796780826384516850304526354210045520839067533933852490165305236626521415551273298840552083422303348003068838990586008599931145176840933849020729143393220283474465853723224083359672497470814346551150347796543087651697500807781939421176577591469550226244886290328686104782516662281572518474595458254299225032614939074764710299507514143520189973509379844023366657133186058551894162081664244454767087099204363751334367720010231371426181031177783312271361735784349594256880928599866242735213717776338750040912378760037342399302313478556816833366953487870551955824311366334681812236373629925457610819949129937902390783045049554796120416054193314760827278178109453752453018538956462171374135906769375974830550977988973580808070346603067941534435202619846107848964698252893379641688023951917344461630439547869302083675956306068972658284196457722823596986961050503836465110709520438434289848934653860577153817611428114123065619998087917119395730373403372198826187779883536740311986157164016940931078008357582694020542476556322093388473169797516714990887785060762581710975424829025783121975302992916734253231553428814117767635159352163645524103746991631148596495194708688858305462230247568535079100234413912958208157573283891200138230065926565356408138362239289947880096106261409892908777570478982470580616457840209864080961564666194713337043576970094371758365971163859234098845883968394527339105477795479818943255722823319250683390042406039050807626945300702143079971020511524593936847347952767358508512131681723395876465963378768964435951969854917443984976340741257433914530535414139770460601218205516423780515914341930133656277210782667136554658876881897946077261676418549044672476727664465394022280902964548973720012730101971143198067937590168378055839418711943184870863594571822167346749749947678760833371424790523963413662709247208362589798073497784620352108417091029253202344966070184039038843387220081242726086678014593804502640686901412962536232839646100574401286367359746233698642361491014030580174610617537533108272664081960828086997628538637345885707145218397988605480271949027496192313540990254816860337120734864395622674115404015181869077323368869017674291573120000512521280898638890842939752777004538508623053235489604167798532585822655612202293601459037217031654165208828499884659113470618732460226771409206398882972858710335939661142241533305360637297926324211084533616577447422272362040670843693356598710277231344856702273812590392543502299755039581504332954225474014329811078971927884696159185196212837738842872211222910427771605525826010660086828599853335124078350452304970491380430506224298714256196037745433520703849711932807042651481624883998890175432335553537988002957512208960430616732312709375403967471107708110421722777622496204407680249187413755821167446596441371226270647283442783420812512118900823676533254649689377035942797295048185530062137760942991697295776786640114456945259093091720140788752751529778289620699115199364069650749338098492074527748238785569070503652802940230664283706248598131326022576997343378169245598941454557875905555076289988893846641065817832670603914468739390765959056608002307015260533350891231692275583145379752115192862535383480883420281183623296480372761472916846069131339702758211465686218203629237227846650886084589234799699466868864173785220324624148989102168029440091725296304519123818114034218271477363966811485461056457690377920570437947024277541947832225831693092237122659123324433248658376161337807336612658882604968045854044130678284903380829240316907303138207732287811517442123478471903780099194396781449716350828638871599285230995684033802409478170033930945484453363892965217315312652664174299104016529424893483084482760980975435987156030521871252867236013576354924655456870527434786076665314749292577749899062506087820990253240204397147671634928953369022279349035103413237039538493302527420902043021456714301623875034173106697674091441325197935208704989848759204628690739847453306951131689821360273485964786210409191467694518037588872700463878791223395101318694817134925803399834555621898015514333863239746137709260191962876057285091441230533126174589912700509636351143472464019623449071601862370525984021151895777635094573116044860643631824928165744242681303448584318083258742098804496708177409651135745184651950428176560059042374903029534082949237104143710946533066920103605147847491364342689185824258073066455855525005245326330056102080864390197356589228296499074135393084909097026494468440286026130278306522522865617987797696027986752436333335866016606661502233958972339689750365236987651076412894808752168449918687739729887232375387275598084986961861099589806383504598541882661116551853919180118396435128112442528656471485696639329040346972142190873802256056930971641872989223305672395374007407700727142695239927680651775863366951280520111609686026280613745075615847313311631553861590826377294897079726796922618022463461673436945650152748373466553730978626603734243939523095938297150121754247128572814634286867687211069570352976862150092529243373650027417363122172430648539116512122419124848414665071643038023492977210834017293300490566866297240864877696251306082532008713544698398849110929306010457083967153030821763596007278061358032859337006813955076023404340011887627186496555527337104623391087774764965673174461651344312858997077287598471355417227220901654486226142170827798515709537290809236942693857562752741119922688147127324597009684638089785737015257583016042757196624478706291230278469597677814215040388579357799592191227940264883813855066186710560692018620121434086951686992041319283079763045604653799450879474628610002183439313047961582676357223045018639683014144038685981901469067283800285280109665596713943293127145259073750429882065547915582518869071156934788080926085179130977347467322108175548288897207223585735303735279704977805840021942782738087717087238619556705513721958472534659603713636549685952485404709236933240079889707528175907020121830447610149295856786131550172205190739517346748492064378004124160084223936867709132727261539570894442489888009712167405705007021439167408471844956338889329867683891591460841521669378173639250397696256562737498003748837409775721075460616810925250076798167207060934700172781367910102067220736653880301305833142471526060624725596901694057916706601531798273685205413129661047756265134341710344195594701217360367988606573390533693061968484728302666627433304885396985786365223708898845984570599028999849477436733798838218884857624494291336186560801495824333430699719588275445150258333136292136384095123646525489288623072161069971320246055040457360709964056562483082402134479999783229269730007060567069976331769505904696521534177827049815780019638425948927844229032687591625900662080621467430314400879649212177432684393124123057412121030970075847582252483089140971467143081312382224476821945712701556026678486817775046908100408177039708584132867291025173011855220461845738700533844172904883923442842354182385564751212274315426639622672127701037808455359874938229398423583575345377580467582194808056081152967651935495031231759130242344545341491278894568567264508222649976376055168165910519083805793616357938820558407394101705837864469160049024088083583202033909324284950949439930226348689468216035818781254727998737301083295718346428322215204642220006754917844977810725219778079737883605650981965176272700743145358643867056645460282544171625582074770815657535765972694567537738053060378424220267538604372560064645278468789796906455596073481241439145780437945542079342839100264367613053024412724026884667293834997624633571305680999595673174845887539009406120643645150524156740160074271683453449931996757099934056673747478704639086302829894118002232385014406910090236906933917340832437512743776338431026305167028577024207594833334605050188974126768464713902362789989228825365428010881039052670697318525705751419722833145477589556194596341920404407520064037091158454590469744760488382044028296074185386955703342525093454556038666628235166615524656479836017652036633318604180882809998734495112584382806155787426410060965659923546917093922047110524606711986584609302859876992987524085758426545504243117164615037204550268141533653247091253050613600360961858965861275943224324032373904229566214217465550958517443791570588541754012598042372870087654846419821352794074218291587290787038477632964275374475366950864660979618171774114347532506816116597808623973144043508807517032323775600755498441166322585711338357470609007873567171662071288598750861109582741251320629678306777107155386150123814158912103688111907689976057570401055885855114333421670114641369206136718180635123320866645858266028038559275920280353986040459732690601125284509364669383272837177833605216382139046066406205911748953939186772060779077544423174895051680755981674666260410144867397647533083727804947101188518263496348864023289721748343772585247730644635500791919157889629146082161739893685967454589649271389697798010840333482393968367602404407397451304925758166502747037690135950381446026941992763883192030079436417412380946962595139541824663209441738281528053471086482260721242432906333523451580745088875442547329334481022974116430321954114798850855052932128670543231800356340867853396389868611300114265067931683903116533931829038213770432447759915096870022455980683597700534313047716323335157359215523898584516114293719092026966604073302495653463491186594595743639360717483673534812645845359947984639485454427073175568005473470583522523496099020137618034087521632530652182907552303976555104343225066200926145549734712425081741586450749881092384340606092693495998196692079032488499376615795248945728277934804050391283191367454594267282987935489814149137913364469638492248037171679227697881393757348544188347833156483661537654856828959602921055102038938609838261568257173570936273711752492612838908264463407792756989822633847349529249454886306731444203465619056866996425138817559018323333416965614446228410920853147218018550829302352347158664170536196578908210098861595734746726332507323893017457518566852425344456605475403281434529515297863102507933484969019122512847514460091252506261467742403464644671506809087839148973165828474720893313316095146239194271603490991430422161326177088209340966801178185053734930398700642196410425193327688917261350079403926478979140760839174984520838835643040002279120092479432345659198061090928287852023393750454718385228821477274036931454055375403160010623649481130166601971681461774577875492100427293032059817089440013284420771924197896742621784510902018238775848610816493547412852766186268338002261333602364436137106732065922828143481362999119545695151683131456828263889127997131311380898288150285647335480501872432896243544119737193424199109555074887099758403109570581537081460205431528854822148949713719054985595183464509096028835496491087647904676012809637504266124892815044152442041963313933411945292916571528895956672443070580083965053940173127768187340292265011715079913677432907610189036393353960563053760259175047068071037197289324542277003610126139477811484751152392213153971059655676131343742417593942360544074518669293157834503137405955174065285712212276495416823646431361413288533798746514292394105670931640656159559537115683497938302386673207246997328507079798354500416305046307984635575438643320023147615254765087199687885116842774074735252982103183474248595206430898568403581876861807776343609714707902880853823596222106382890301370022218329296182072140388721635698823417419068105870941728506805561520176736625815787882990099115232425193934380792016058449337390729688233814272638782793720556125901232347329015948755736722504165164913379487673061241481970081147524241423311004464109430092413518401585930000793013385372138578790040568675921180041577295139218372771638902883996353999362270339745720026140612215091013562264783790944121092117252991525714258864287690194960757692885490379374335066424443130660916897645847243681093649219416208680623958740441563442015554812205723682708160946837240746813221977216669126564210909693622219849684631953132875315172124083516886159245853068162541489009197664639536707000643410828394768351060223729195436127135447966708847899983906898840882077985568495544318276290841681819124985611166549282097474697387682793794222917037127651289085924939510943538507900325756182049211128624265857498598562649850840294451816508057941990650384689866949271830536043772956216309504198162378560489688239394610253924658013376070522442222107675017902645848135825780103986578506998686818311225721371440060436405543255684939239150383777682224702579368425789816792047916953940194286239954769668465659816741788866833874484810563629679014154170951514720185414204391333145992070134239054705081103896675782391858785699507998482090444567881070663789828901581583254481472505656931477505712837423946252720941227318246637471631404312701667782938597333863542343805506467440760428044826888945299163481525053416298279088447947675843720704380633657771546019494863548323060845947893445444840078069324703807129400008084009657205792134941540440350075310818623380563909259588322377833648002444020926592190279951653525040740284124706890164680565427378717035917698321590641505933372364696149184491979250710965722255389253883270536802731671694093357790582014470104780762680613958637055501399261993836583985293966767019240183823594372297943528446235026488163444129395446815063962293783109008938116793568638384032950061755127494153338034417597912561943612390843453329472915636908737760185805945003769053797924783391294792845679308403271392212827786576193052203848326931073638654727743516943628812353689660350807288627718760729647821007138814098055265737238117437820742268083012411676464468606412573517644443651447286229157465432047463659386835666184099597391797374318519543567965305647614105531253920600000077570080390564636466779235355061537674009449363434261009892772134669013685752469565226768129358008965486691299793481123671266070213833035638597134990234750050761084488660609736511816051409030740167683572696087842266339568970934667769926096711537842581444942725398766410011522719604137697151174120634676170910588728311003978920474851970783163438636606116312997512654057269944292962045147794953275475948141427329478305123975364411807073169791688119415220056067482371719953651876373237481638797216419065373353701383058459663508069924959846122866504897414887425884153161269040172800011822290888848535180848118509814332616498272852631284983146957913083300596472456586296748873060991224672724490505193960753299669044311150605745006928167714288512308794294710649260227977837180515369414380965794662391334774623109999882621259090924596035666797799093259770047506936007964281710447264141116202478537426340211282177033188253909590849119008239837752050166183609117771977220089954786749170836396193582049588877373282682892746649133029571593945025152202306143066711432360464314364305073936829474934474913698993683012546345288152843872259625670691984809404933597284750290426995567574185438103795506564662484347919505720312361082959496774945545373440093148908047777645698354019997788863513444933933898607440334543960987330704897331875673887065421444649842885707169812856726231196984840638664516886424509443525280107969875488550235607059620467772738198060603823503676229986253648109430933983157152810267802064340482288359324735987453872846938968820831224916174688112717067413047546333571524877696291852557334296033138050361998739308383026790495810126507416041264416670145261375003051204573468616321777547701527113838507076176535721322626476737817586234042389747801785202821756500478833804499012480908302274997350588466090601187595742822162025959753611728637532676770739950536627312647240708737434932976378559591387801868851542436255523758686384271729583492885605119017723696172560459906455296301028984171276949783281572953139529101349219066925420415915714220149446552220890187941435408979294470615911221720275848957298999380866286916457510737039503710506364077788236849547123511330249265846172272076165985755864319929629173439083666937466492342618923937355100936317117649851580363456905650063099938493373327705969154362092312972656633041722314663357813575988729298619604954063907958890055622596701292870914689549132703324853419707599335414201225143398852476099310190893227735506090447888110917905063991262427084559363243553636733833983207046150098454396963412406228381126761836269989054883521548523364489543774412480956578297546162111473501475939475131116435243690532716723830868244725615538295466952706755891291493694159003612638859513356654838647086854223159079397065709055185941930231544411977573186759254257798362332100039454457977733939199132456631025938161682378995668779152044574821638384536939630853901610402327340643651604372843802831437954139236601312863923334334419022623075827845147847096589210134446388607916452408880589565629357542579147218460408334096130102437319718153294442262437790828164788973266503717202536899117477616507552117661032485193948176441577240098828697880220468472499843864944030733785817622753060853335087570464624433627163031352663251302547817488173846406948285884208353742325353586811710887552310728987461731372813641088934317422587091125651228060673591633105409154843384924102730484515551183589064769100317624553078161929514908029226029775458137705820223032810533639204076786894599516246066431918756929568882718604687773903049668826230962227638406372383943877199055895742224097065711032683206526564173189298159677892538791954495689538296348674379632567022835187970108477212391555925559578226084029832546495008329943455728747989218129620459956600810993847419491003585144717569621594407631235793723960627620824858433082453802074542255580872890447764299528557983281495010617995409216831901457589522689350774083207799985574247688585600555505891553145116016680471026988635635611088675965440026809064927692932616142637929025069406803838527415359256394670376413824400135582191364259628099276155957628532125143232424679891890806769072126966671780368848152639780243950034742739633605448976125799108939289807793522061855345466735016535150506150250538614607505921044929343051413974414839267772713995628825981567690928534473583853408291783165985141019121594629418951588823238370517585530171595416506475535778298880336500810949148554219120293468214620918863112447757430989002206865355300992028058505565727173667742728505960024474264032989680946919490265416257459327154660571811433581995043626966097056203886873466710824352224075830228266432480463308801526375070328698300371910565230371387774582733896077098976583732959782241746534862634764440981861637666021390085687407722305112512075296700768601474501292185491553491479321706280476596092010883637589533460995900561475130417998472376383766103736678777851141569771882809902436450650428928538303799734982843545779199508551673956440301763722842499783282838288308657859151747160176972611388579033744365484920085292964070221661194439712948346029875494726368418110607874847182397475623691403971454364549768741741158423088158396690900423421267688296484121610031462214729038339463447907624565051209530225686747372922574718043986597266510126764444343275179284769235732114343947846558914406804787075834552335552955867678340062920738445010021644279898769570369342597961514404388761903723844745266923341362172846380424339707703518582003111903607258625722424943842640849216677322603072377521651363901302916282870899538937746305190641616277246024003402051791807897211638733402906875753442223230248689114878921544339029938128996977681339662762442215947961006829071144995838623214599420396176516977735357572766675170051731757827058532434652655025566926093479394361351834000095847497171581663170553707952584242048616715854799136944082378627615083345754408138556393953034090914220467389905187088923341409712059103991121014711691635893084255800540939133725129024724975327206985636868662317721210618002686941396414235669009384228595434774601566223691255669946960692266458017510715806306068196819558152817923853101282077672537518679134996781104102096157171202672943902897313170025001789630281133199835100877827962281284606337468235096332002745187786688837071899462220595022152555322470969013829858252821874840214946761786802473510470342757637548724879508520528879180294625135369271285381693743223454433459798343858988214569155510220370500217697461962113259877588353267432439739634355596876002488852651212230680233551368361176936540317749558773002178131726849899463461726082191446338637791402988389322046010229409772412804028496784516992525940579987064212300082278124876145593282800690702733856974449437839398204588385893019600229623603492438905061622455937831571226613598445301496689970899353639243969001287854001700597238933158525933359911255426598034562683553371873069041082291352199515472420212160624368270962408125045574141502961632818837346862698834159263876428495522899841525331844514295388385441073011533100751638085327424207026994680518282211004102226276982391702460816334754492413291538806135924297637197424099509034279576587564283579836560773815614764896437777757204819211098426249006476432064608263788224940433315631502734463494555275537863726592434496405321991235176465058315217737658447824544398091132732307874601212140522399693801464545521237577315368344907334202229666929905258713786896717936491800100307828427929023854851194594931625689935037656056703682438617556096111511878495862944970381844276951440247373401936473111963099768646184802555003027304282806924130345800461418459294570689056757404874867717448174342370253460366832615498369198922742850499669053673089114078176217569881535296821908477618132651727679014577227092469584066263365024712444226281996216188257114664433923149278845761531990227130118539320375021965195677861316268781223971072234224070273872456257782987913384794672543914908099320726735959891380092141354094730821194449542705159174411112400562214442614450330875936402848272656159806614804442568921811891124914507446528964715995079623335559265774777629079786742497439608107021717761855747544556127254310432285572024625092216385636550173716718673038278542242123873393657511673368988667674787058149715311726965818312600288779603925549095856623510289218784952288543276611982586029254298253479425937004239959307590767871349266933310337117326874105010333599999000200588091071505684169626119980992941672425715781082825227261803712283071415926474776568585402690497193404889524750190466872701758414177954049968847842175581893203033683764470677578557799059518496669616337829637374788456772270920105411127634312761006950386918659399783128760180970389817507767271073392606802896822782261160358683604156258424481258093658979460088049321687556913647945508764929410453547402794293694697850421720421939086079468684071507345335934744519030449690187029684286435774178863290416344503846903751013371999930590056845224074378661425360334452932592382680816450132679760852930050134150341865720036698721926687492572946904447311665610326788562791682474985967805580455514533365703515780960740289262564145269737276314024717562831413155490301955917116262034326539573229496811602507456831925660032888361077774784844926646217625558049768333676261008970100912617173820513319984302929683437567076355788208138617643844528929982619239261814533897611901306864656071772080236887069930506606137622328792410903864791056887683869855946948641664527807875893278061316634400680397377830668245450364975776568852925035303178403307832548018330551826082529606065872449057024155452220274878851214376281133219993654375160163168123532706566469669311226757890667766851857851271022884741310974838568351616439139754693122510009346255911989093938356100789906496726083955287093678146550172442872433690081263993976874139921191806278440053511990722057984334812914674068950305521865765529551431275772200130389749905462346130641365933608578082491274651237361515318966007031694950882328740203219145031511467190841951554610545629323429500811395477560964208722492991331620583653840704309487771906469012255565072910015435387573495676338894346471725291020346292107287114639792615057137751692943466430307605391262536697397658957686180076534441322686968268244143972042505926527102795437425051558444585591218679356847309145311257394313949015314219985516795776551933562546256176027635708991478284732823689626637156562847049625266626657590971819131615738037211763587104792621309556908613052992211544892364872051221868725127170579318133326705779502427532513105510707669398109202374372649927148590005098903294686128238845930818924929241359202320196883173003794932849124702127864741371642979943452433940569339922929244680359375986475065956995950940544236321970164992322691172665132905559706646289826437850393423725888006778381126596942809630173244084535396751497474354781545765087663224422534304185364297299314757669705731682816900754083890935734226565738695340460001336000772967187011813408771904171603977342926790788562362222349295250664822133843835567122824740892367796408484005035751533285441709892088363216848219463511426921967393602082803245303950802127004421184553807611631352218137646402845917250016538444219247647291664652133301695695817199879948065787605436982529374178653304217355762660282873383178336774282390608233688041791189499124888777249401267351878940848041482325468418149757676133186200987343426443354745371204315481960317145109214559798061062598605894265389738959189993726652485743621731513825270103755992796047966599267486184041441934889940051276916877027293457006943945030365027447403890665137840453789904608874454430388834635071854402743862969728833388777614718177821024607166909253414086829672937981553111072161200249314352289925195142588737097148490214033787752974073192173234719148321866553245639638358571221376163188422892118221610350161009091507815160565706561497975846107626896372220837111834908804481571526960238840488158131650223136683242930740062632107063302964985612748136151590571814784210591821935784510999533341574382360297299760341332188346005941660874677805950254983550016453814235888669377402053793246880167355088698419419011018087004291489572968336075408615965970032018386574401488707409742368488574469008702426298485109681730181034401116411642921266399577570669213248414587036338897799611196732851884677546392541067053981502800596179440706895441944737375684875497497243328516946875772873579302818818767937794620642839328651601880633707635679544731509553448185063728011613762627172010077035424013749154601680552003513117514083659596321450756110246710381843353692943245604767682231102101195901454279155085676896106318131067133358510300644291029460837394319635865623327341320247506268217626987668591938862097639902346888785899082848679574814020573023314626928401603243100979895447007493872213381497040497941597895640578430852990175296247645938942517925507824960361669326045363362271803797701162603008137473323353355863129921350610736381538259587592823867596189315326129625681222310932484289567987487219538783624292523478148981909579467027900226945087034257741101918878923058044349079189729292159201613811001462217594797957005081220286837081103934801773568405049736216440641440860001067001659407328763748038919428399850631870565015972753796507959936154023743896416121317350364030364608274198601910560578416086758446000744918994452975909525690859744806022480586108943226051135821727201544475108003526117694897565679113865771563234071120036895596711572077554256493735150887705302659334126766249224975552035480392263109677027779970296492685110012228755590938431527684056903999167668262664812179940487955266125672750896527055067277289405065735674922115368136371703985198838152626050002487142930381381837761051331601689912657188507228574827813281331490338515157949544108803231004681198226939458930231626272294657295401793084650419741883043517933305324681499232329862665932413040239330665703814907998602797756928318656366286571159651893280941967660713273254537376011214706792531738768586572656501575428686545105171914247360575265704718460008823122153991383072290931005942677595676053187672105957109812615038530087127449229173820876756638245660803317631389207088882198169455993734458852044008496600239186125018460862805669676386446596495132251948160056755718502839251828409694808108867659898697827863059560190804416965349780582490297970691798842191976547597010991877652448420033371945535642911345833340754172510394007708520239171998676032735049183959014368918968792755918524604262155740191884108893007216073790940682750771129165396114965857006279792859497622131865330217058808993315426287360360838101886039430666275970725804448882708571381756688841133739956670920231457775756793456724690944333241726906259327143469271014422389500588901526316330072320351564749431252432185630719135775010003276537261735023757539475546362717256918443199182361112511815756391933816537343490896244962359665399128007580950156852490210759472238656811030100518535200426629438184329547816445172415610388905728177231845633560045188351296622788895186917450107991967864909417638571520072292448498089034180254926962296780373793952856060822864565923238013991018025259013095698107818957728955384856652577183985504133717740348698706517079108354669399906938045984538290417622559860984419709406972631786720441776703478129486811636623979320486569885275677872777269178519174787782179529950150801245200979947197561660709724109416855173640961384542276575786488420217914438653188534067161518162386306720663312036964580090841323114321659955333009831833749709462875883367890697520211547643274153732190190527292818168468420532464026936670334553061287078643667300528426667760345069865257423675336893312110786989031505296868720661276689135779792674131518506961375895005815388965378496669669366405622650868168921019686225860583691754040584144209116678211119634030566706085840127749535037733096009106771243944677942807296550749144572123039117104982202467770357064650199823409607179041160555250144627633480663839168189450274498941643325557296060797174521542950517650025534187154944036911667648060727390902341683754869729539877127013035791833626222612324858354125008334902967623074267885188596650989614940533554695797478027722424979746946048411445532454090508498997474698943932950016638685684367935560000205149752608980745817611583439579170882865716916864311816667812996672987125290695294478963205499810758675464895792834688239446349117170372240979288470209375935006015239257780147665988238150162447640989277078520707592683454291179345833642645618501328929016084469699472370610906206456003769755023371361350938680308839106225158172711026673814081688194929128556918819344245904945758959486692036388338332679912026763985689440762301625667371320287238042855006568769810735865454237251271403601065671271608610451216915491323243975772000194797094974043052148501547554265609237586952276795602523788215276959600672556007856109043967634163804190810094877813600742162808415775435775003460159395932967508673561615729500540784177903076844412497669677869553363923145262689408713939911396637699588304891459426362005419595464154697844139394553321758376533661951798557161531124029280987172699833600528226155337686803471008375101024467556168263175100368083004674873502685718908774982827925924159646866494554568035388529667056264130928447646896543119024487110249837349097722459200056555257371488174505069942635139091431349952619568993202746035132185136999675707425328585863273403788060906056836886120053510651572412825937550022831451965324604197965544229590713826748638149803497488783439755745389882691185812196717744152510463598117592204114862132080373350241387174876519055887586599599542180121874697419593160074141556738654735069932343627280423337234200621357721474178182838118365748007668702521573457809887647987373307367310026969411856301189729149448716183916120400622425558130994504955280057909891954830801017180446814805919700625160367906228161309333113282300434418414256575345344097740852357432915393323626794245526040519031956752219355117612752845144596605211510873471284545802100385555132016708920960346093604172391619181764638311786888615925235215187853173232295557210217177436962543221104335710889059905337198948268089703631609140482023959368153949684151670571858622371862616055457791314251518898486180698145382796356261948498566959976103466844889717787535902736907553420176699423884683469626356338445771980076842124931512288703987686761612238353231962872998457206656619351265138954006311864971350710702168763594161434584018521021686526113484429494760421631552538779576744412923731934723587484125020010576449786437306587472552908792860002448655746915200417061449000814328704343066685906117329753847691032392448798470165803576602887918620995230583888042958461333972699655893765109832947793043223838455800646852874968284953699948020647915351353256026004546950488590431154562603969331597064693489862410393398692803843159651596073564301675175773928489625776500149869847918712927674978105989937586641249124602813080652990956942839893559748834955641105198307536829347932032422051451843726794120362526010960158843430804893404962763559111639466969839224503987169049122708240752496084466048917527336411646131093145932084894371461376778638337066666100209627974416950459218042024075866336504548137647507125634139277696417330952229015595571578629670992136847053676457265814920480917836753752208996011281665385163853041689609891132329624520732127114054578405543380587411844639251832917631440940666015011323196435295106469534071369422784039171411283691398973292812392614103142996016801146071764732543228709694649829080603212036124532378458110927399233075672791658363436952850722665981822440450264736921311268775815496030621116804953648943866899935262702187933944589199876459482275808020592061640095172564544030865227943499126685003817366636263927851722030886801212676326649435954302731964393907535109140792778436794171778545471379242349471192454754560732731087527607537589408550336981350712629085298523865849266984148760882379084805499630299733621965649975906075968810481948170046886163414196816327542021338380988609961271360903425103511175379127760654051081157975896374374262135563970364695199608601046042314819881061813191321883685255175796159816183680876576828626643555260337221153436487478629062927515545196899476457540201785431371001854547236303941055539667230495438235982906582912714424149591195300858588571611056091700413991485572015449707096343595538723997634644725341690908489238551155109368557807799729098919611228276132820052732862747026449016080725754244465130279003579788220425202502232411510465183741099649285756075113259082791378380997220554582919138149549697205667003696859665782638313997938274825756883249540551422112509787024827008305463349725339054723111987757361970617803830788138599496865737062170625806404794677453963066703262716065999340162755215716285788292458421806586757958636000048133398679628799185922933118797122029333384370946878021923012509522768916493769560469895237807020562205666966886822964826925353509873404311951939055576401161554150265315149253820100726605861520512068437822931383231831557984662977720929857041359802005173681243083137445132694281866878867023221630332878111703347161652414269067844256755243376177387969564147283454979517166154269313508403267502849205951861351682535796429440310625141788472410374804096342835083127362733790108830910047191343080337930048859372670788512165763436473134119794887394969531281098014403151775996189765874115100298437655698072590642252609867773992484862739496273778258053751797189903419728844688263094120382525560448864136737403806480908556168449167196730375404444831567205279820370037393126526422897953486023090223851770333388246466984578636217348804234704062643255074808041694426362545121546861988523036807869025718230079627272886729029221363164377664637415785825852441686685912166159958187853386441854116363123860119993857865241330887666967404784575767916746205758135713373844037573644181827832742908421282370466775773418327503170130011136034948796572954238645553382391262979583076591228419950747123537835637388251286065751624691100574635634369797483031749236454251207549493215909638487582011231562485907172200006661322021010157888370503928614555343107964140793773359762844606697182058086536360100059013833164907212014361568868301513845225683144117452752071588479014140878799527413193401268745806500768177314608278639655394356666159157071395212157797230138391272828065765323534254995773106959611961938681149673354247607664276504186416731205480934334513797016889936804395719789367010778912202756674403072723475218686897361925917332065419171920864318602346446586495001615495663795949495945623250852180923036328203619812847836537378458583441030770208073156828413644730243623283943949957944095676571507486256140980063659818711106875396882979883337811957144331929880196229518889165798675486290264546357577830337268248044265764860889824531390689109314554686568283465026569629439044376144994280682485575513887667864897308012656580896361184383377301335490820356071352866812021587624547444210465049144520579777509619581378599298404875443659201615008911643899027492342608139326689658573882647607731365117884763722010652708082098176462626052036152998784673535786699612139562499955410711863362243815023397374706215429823592111765690058884556707385949185984446051563378642509514272303336895653552187065197956070826500815772413040244864947353099965137551717485794776525323681836453136205130976061211869696223722345756536263641715147060350695316949729221499623849394125101632875079006134472828678684288082873075909837633520026303642383978633275754020916403654549890593690633263044386182755533729278247339895325094865092453463079659425754312220062131712425515779215918505260850119762961347499882768174319227982482512094023700408483594070778028976077623772851540414867897253717305662121410117862355265571503017601737048402476234761476202814135156580373879165703413246962193005646267378947945548306157682533387367499961262726071919287101870906270873986661293773951490434208494108096839670894113335521821318635913665680152481097234787170313146772385298862191190049924647047426646029575860441012696386353413577360086934699206290218021317425465665990982694248112513993168059562890024377208241898134987001847943879482157503465889205380535125270601719929554469221807657935470739272072312053485366364977409890002940662488715446872729279271053299950105585945935175141127367215116015542848885441740198496419682692426764054818682227789559844415035732092731826723387101520777063133746939748543510073211662277935275988538328409073364137416092905649742035656612667318419341908414863618801864459199115257090917567588985982971227980875072444005599111920685933170793947857123753006912810407640685978716386197353133631963845988564712179452191073157945318320726285947893383110152643556906139441138582543245856873655184092519892759625449375000649353267160947567957678544698849588135237484542256264107825992693276509651172979202216476047779116254867470820324967017742218753520695133876016929242660857748271383665571919384284044337798818673794548654320875084783621635852582430865354509838683930004470285250581640759299630558052898719149382251765151335478773035586836193418194695762728381348375946512944306608713383824921842706258858595640114106912900451506483990743027715199571374773690726537176111551897234432356480452483382186052064644461831623528376502908732336016761631824720892086675781723878566673763991880553196143213154488654045616185019792757722929014099653917899371606212259602674027450380162688048105931109607180730917325853983526781308268951680943610863726589169549122897763220870879116467156177310945963150648726474874139268615505480721281177195488333280764803327137086309635775680539533447662642973225755190257300170697886676484355175604787210176241422856901775273965263283326232714600409753357953927949407593594782737189906662749520462968612096104631134811105086293588796554170630893096599045397475474594171596126963152344938988674299778039474114717366677077103549909695258713027755417893221113636177864583866068382374756746998310318649759470439056425849971988950710443273488802363983423191605515563130915777072077755032702415787000246759937501705615218725849958987786831969475472187157488642101763659000461967837911226910079378360664064497558535991410220144091948841632343210853400971217772808650212840304030070646568580589606870039198171771309958325928503645486654228343605254021825657716694070006018688870396621736689192158644406177515682742276747967666093920815384572573459748657519616770255895223626940244475594330214888256256187435325505652861633768833778846942673262603295895368701757958878480707658843574380901220626728782588123795215077995050565014766868885425921369318144406916441518753314286626250198176054798071884621355377748943989854790337119553862234500140791612492796695180702833001595759173488051245776545137464371557889544595077616076626914498274026732881222192990149481567609515835630921815568566462451092285983301246005939263734426120707465965840788954139079285223478987746447311199828517039173690684195920508274800772744183639720167815300781845131389783690978601000099523471543529624103184451738341059530627026956445599719716784519375341353288220239669762246033034494011091127140092004371801197067099349046317606465259524222423708555794802679538429177722143780642564636609495188762851399191095824940762123432834150772972271125277488683821983422606576038831098562718173932995038730799980570359723217147960778332244773843180062390609333126271910798518361217010131248763911860382790902687210649653270705766262061721901684175785459903221950673342241543960927011509245477835087840160063479965134803665917746287565114403631060786036051197004352011803726919027484069409824991107104686292591314724639637528599543802221050748416171398712183348378126788382550837978700969746537742110987033826167121247225929244157359053802501134025192211627452193296236912466093819681062554564019469196904272584013728400061727647949374914058973730054348573332194054866401136523603290058340370575407031304665847580136787652230955819642543569076387273105849629826872773186801661618828440422118189101321922295945432662735503837612198646159809501766036171878902656654284196394166299506640945315893779050956994775977564547698677767733728436511436382484694965651712578728391698824387643109603145411681528028625132836212846377943754286023436277156339858456822673265724981819417084211541526130800499794905468512835169785145563507460927618690417961354257893223552616039562362120690342996413281808837031357617632621871859149213875872964079796452387004011608058587100263101728148724013600041372310664106960576210714373850697041045044222252581408603574581950633408337959443000376665818099526288322414456144246830184702711078724239287028738447613915518681460099795218665514142686258459359468923879556549551401858197449753456103844472796674132647366532818219596725859224370493333259845507425702208518248629911397413394939703994915314233982395197486083768763939894770053217407223983973706686653801540467907811677853421988664310278369953997333337604780672380607142421357967264854239102341231457845029560585188916130755668236880298109235772110980758469159042225165800991928179658585234822507523684764564043712148334287672661570094226088245839735355033211572226549384535347094971677835296708092380001315694140214015020474460901888751113989842095088731341964508428096685259850687026280169359566651896789742258834972929506088693976850852414860351227722717179099667947186628369430502920740178090488415702597443519720762069613325275208444205277411334942024733712955361608639761214386546151667300616580243418563900697279952913435071556463871649675325622273360152187561492279428528823995487821731594538023630644461171282625413230989950597657950989618419063244717757171789632211127360160308088470048391253070372302954952479470507018965556544904713413024159604905389179066538980007788960870077444784760961801640477918334122187089547058155649613387099165001660686714605371987633867157233176826899580410509654853584021248268398997523391246155920416315664545698705947725721583455936232853823267100864054235367788195470729803160226571178949076746779407923889839457406549081788085598582638651780448031038434525917028722332803784250397487050748167533275492080881688488016104537557517375514775049785251863718825915475194791775061983271159155665262534937654031510922834707111667686716967465365986384628429665242704127701143810707255686181666089392822788897814849695525718786730536702558943760482113419210334233793346348519071774223836334881795630413458446388846448376908403821521963545329333029258366220826237285509617695305156323269409852221221207490208997781859392582617859953240622752808550895133811439297557284861797942671208479715987795288467141117276364902762350921248954038742986928483243000964771860132468082811480983597803205626888067317024753708889049948869672985115239417331949013687706335104096960564987586021207270065747552130304192931089730222878312321855583938658962391138375802165436911163199656726972889628866736750355716086615969546329345530618497636357227340697265699637451832103374495536331077299949295117844099968737873391012908936827918780792269289968081017144631988252132215712703431228274057263789542268588683228758728192170145391743368003582651550005194178495476198069352540556632287299015172606303313121871629233231861003237330495620463109472316817001304481048978220811664628437293748712133856210186147008146814757262320907694768715206050938000292256774753549592803283378684344593885129957866978944034684364147084129431708423384112550296223485627785409668196493250087752132570068321861240912258325992953766151745791291252272479834056709427759287011459549784617494432186283124419683610471858147299937725430770369857952627983390166645534731888355829728738610015422948098053644937036276656138115766266755912400646811894427097194343339909386891094324316779252918456380349946683557653543967535823003266691459529541248823428624608405187761152696356987533561376805860092434435893100372342021006892160049841636218108913010621658963595082261844407955751146901289658976753044680705146689767688720089542304613353950965133881078186589566707492761114439796942237471071876571031579868700996886151357092354287621779317013991432003707636304992706214853469761463447815753335706847716231268992956378292778178175576387856256617777724482064714514819640952129240812328795655608906668178369875897096808760547663833464538912742354379414328529408258169222254123968477120172405445191904895816790940011021806875819320313168128908190539619516125037946020093476151081925033476169353853811719629556817149424853039650391129004008944052289387962057446236565031099133564007237049455203535294200516487624189276974946220168790062891242977863451991704729603055244773838859916681543304099728012065637656334479712771009403609693620122330130874362954825935211526282189238203367675629942288363825714723012016939841758393379166170636079056764988831389812357551843734309379391377915615869810394162490548219858389826633322264284799169332420158090472294249546132042521972412089634901843268173418071575082712793333303804108299515397848996799798285287223130538759258386721087437519985860414924721272324817798403806753191534706824444288519079060710229995584125139302251768270693371582930919277221435267384576924695818377978260412391856381710094124300271237622751091724034436777337214455414460967962072055709888669049338244361436595589681052477797979582613552945348845538368731398313305804764833509448669751168040837411371047095966553127233698330595441438902819548564405516482212782873599925662525337766569852981065713620381161422934989742926928239835002235884683107748253778601268896415967776386878675713474300693641338904197740528696334471800276868568591853980663172324681730446420629242584431876987305395953257643554753094382500034756171513964410306474007336235845240748542710342316247762425784463374185037526690090878413331945462709878366405877193744627830468840806225613475111026450905097271564440326607601706978354950168045581436952590438887996098450907357748683845721061679493583343820321429600703196065419495793307017956140986878254712736557464886438342599223165453225033480266337655156691586211946209657357631887427109330491954801068981375481242775109553233170229814613900688237658783451305409666248631031660882608509383146981098371697040778398131779192606987876587685555799156600567161700694019355071299396273516324275934928901563008084842045530996106673964097565629555151357373716635138747127529469948583339716509006770796906107508554404881898852206469605573892321522054710113795244958689216466781371520488932284504331066319863525653158620301957606937987060009086519086163255506746732108683167215831905761304894137227104577646624734196631027569209659528184249462657817007623908845384320771522000863175635557110470016009680737841677041261221325989150880153630279696875879671526642015798702429579036087215075042818009974711217592319564299746564628405035044295395259689321457163200244206026304592486657771582404099403777356262275293308631675459633503647074462604063162362596274962271104078918649596335391577650610088080952759684901125802961480567007856766796201213539077540061790253847685310264563240132839299956418220916163485639551283605406633522220552265123711825255638926165454879772657164101044982058463458696042303503707399942836625890860738462905835603632374698555469005240487176345662115147153644444610989318470042166242321818045514506012981549819622103743130715555196353455375079387732228817740240671813810270893091307217283286226319962130554222365676641400406301006244532249353652378214804209175346042186802342025861354659023751487303825119089908497970205966496022996329771120802128209945702986499250618586814710134223160856465549853023255152429851026249807838430126699880801304893814004425801404874937165264846598061066568970174815214864590417849422881305534294932475604666839925246358373605861177524869115997655651659059966993446614868063705482652479570776935011229373390266766201588007699401708463584102578971129272016530527082863961570191044085033909465814388824732842147865324122605682732983575635225760718045151877887349585015013303602868682029532245472296051217156998180324545260410756643671063425161696103021863491923289167389703188704323534521489114712519395710910613511414137930262259251960176539223935792601788598139271519769908335253949500875067427382576390607483455939165533916112381808831034453013546720676954019635615349080501830253332500262509219545322107428815324058610117343627906646508258879827389790386097979860980676333024683151250612260059646123759712528521497327945364577185604571591482381668143229249945711356080585257600912042268087729083790139231137726548025980120989429553449669304431849392113860779219095773910433220623733479683030690262243397599554173020052041201437886287329501943599420060968780648243142158811386395494736315381422850652455142268048525820749595639105763997700048287142525372223898006544509298044910323035412384010027688216000766183871235068715132273997799666788635178127251806772114251810842658838024578401162666512256553776551073626589352752880449618642752548089978394510143029228992134545449750049221469889056228706786764889407010740690946988671887469787935715148488911959612467928115445139269362146598233642987980226071950241037518478382916005792403848224484167751583054468607270288185106541506907549874129672427075825308796531405341935083107436988120455310169396768147392751700341349538853370294477420934099330502317639633433293424848269089759583775880259323824385207187341063924793104084070666631027667963392235492678136738354461401314134780222979529814675811471642021334063232440101388158865209077598713429127638848460145000160731252024878874925563506944836328157873012904325103645103596778365514567652598658344796148482737665879136011354012398346209766322133858074133920059349925440909536177849601991883426402308921477706459820109777135315128046326093970540798072685260432702924933234409538517413688386843252555001368964977491493807588914555291476919881065955187104607911522533621801152524471991828415842656280306916444910550140726240861472298507656663956825681706048364260628929875282026782015454323509942043498612894344106398027042057568368264355923373060755837872365998809771685883125343936120674353805166694755727645232478222485065740431348826664700689471286645479223682766549941592442574467006851079956081716758963360144210763039910637636048279501341082567115513610066716881952894464230472144250279490966695666681182159484039645690863829352887564789794654096644788296544195212885005363505869712492000434564933839583195107488502978782246182971006208559460451528420454947589507191606695182872066775300266706679890627291311581185762634492792535021113817406099482106659208512493569842336176625868802875612474252133068424269950830170675850804504153034863576297203599289345480369023332653321424222115829741914356135937360548178283983025158308162692889057888578517220494651321080949310027037170438734282685958804692987570042653294311716311064856891561871659519851139197141541824000140603025302827224317596945377341348830819320402333214895001440073427471641468887775641111681734027965996454529775685925031294597120392540322332951332656093176040022353249018021760462798082375498640851250244094027545207468610935915137855926991697980871342669295668889755691230327226577434531065854336367454316695276287523124202859456074318689275656043148323891372292403255759185923329716335743462022356919799388585465506579869928173898410253053318096618401008382310729043168446027011065519590667530288478332281666463435571033488095586145648859571611357119656579958539926582131777241454960292911541234895014096861043971521065637892335294892879750320040453166164906503717679912911840498312603525397160085083126321913242360266608421920144807513454115671344533861634009812516640091095580887062744459709339102657924228194307607278020973451500905645076996382417955859827919057236205568455767673130190767775978373979325002894843440382034645944014152140747638437617501949394469371456933261178427898781760926378408439297967818225736567875265190613999453048637690725607916913664888733117844319631712616701240865370601162792375011617130533556874268868736953872722176348637652899086424286699848080175750467991442290473933076211794873309658209541852205022586616147363267376320815319644595253490557266840718868079314332970969428913150592104749932671780688072865052174199951383936979286401704786784148016526952900293506350886044743512458384296080850885825102854929898063913716786873369496525654276731155929365445983610529340314678071074069354060692667070615117967505099590895146443943174389468433536407122665688503837220962226677639700592384280149430871575848018579963004335644496339147727110056990597110920627746683224790111042372676438385968173779677558636856675857400223878853135844549381826341633983218268812279609995805166144489527472758050956486089821094097427325349893669551952607384260858387903417695493671424396830277201236065892887675516455126783700668429755304082940983630372827503462078099448249577766716481171814775312336505865108440245824320907749903144318051217329667263922333452752321518552535723694867107740647504749998117868320349669160586717578636396334427197036852319414029477712543277837485461265490251317569637021136396076482937916306624538362262584492909119190108513495467357779108522778071689284477664676083668081098386416982276276753594872681458107623618361645239161534525585044433433018129242400230598979838064711421367657892771199285329922332892464106582166857423394909560799338667308051007982464978847102015365671761552597705962776519591255720449174243911901564255469688382484864942212808248404704891863795452479930471561809161239639773946547017956167675999278308738998257298341691429191606962273598801297240382716135625935708177119092082353776847752351275811850882371190158892187734366207505249771229953546534015542682516624529051836399805580387402525323336462084711861923152613757961742805596256736488955788719692574317524519131140826951404260026624595879380562705252134614284004409993561113773979214859121878797324487293523592257699036610629214886863134569993516133237613371577396710957168311701862926028874072809661969506771969714769464517111468946163130911940152175140882328809168301242454850277093809689998440209317280479664074113725657025665794050097752160590016045464908656623178432231090958804915651529010417234567223380993210596774469132954800977234330562778094328379131052390686925756519605538852163992210486056558638098960778574865305892796396447619325586897048649032610884393625150175421116411535981296735346756056746783191164792069684204394590713171905215193870094324868376905751172154974559671993714641307890447944907976996681254489192710629173108157811128115256907102957110227871040832678152380252362524519673934107786348285856808497029184438212151981958541854610745870851359452964913268870122823078476994712910187270911780481172847247787953084461594842778832271001034864718812790254511822508577776251199292110838553155607794515506239205879864430558804441403531517020427472787301768411638836094959240328446170543881884560330654074547783380837661891335416918976911816321087245080795515311854426985376628225160632443347623955849560915356224603657909089669456764892358510994067073746557422824438179643979791607763415182565185784951888614057102340738471557415564475107905702634162482714100265692826461351164435758925261026498170223493761651564166054359079396761300729368914366669347200475096766839732659478862636176634389902713968660850612158604960379659665211244787471698106540990942903312498828674874731270813914525796458046778777570509377313711514193200250589876557759159387205451707822124802274029514218164847072104500604226117875694866859118408669721774936820680011952491022268105002979863772900563075011084967259176393284959935031978973084885494330570675789732494214495864779674235459123142306029754470530640276619888397248269943083132587772312204793256703272731692003981500003120938969944713850226379956901150882510901513580319951326638438827489289558701289496922003516239506129877593698471185789455892358015758420642640365940677027178604941056010331567811777106723635252812095607112735164892746132490556427499562087623291842057761428666859681067801578571267472016906201294426485272668871253363708775244900204768251402496435145182971152204674964478281343586721098465778733173509320580215914895030889819832361181577311931868197487819786543346212662799721828453175941133727521139085973663675871950758919206309967564223634075246865226847547920686936940274788300934748858894476505067153823160588738717254740832368013248897730837387596191698900239752961631828598618043134717485717773500599608206893248817853103979094607754535851941867665441824133116325362842495218309492832525268046685682089793597183785274719360265228132197594667260248786728592356680740719920651559520748961882257914907415855203346976218612078055558223616308300423115961464252837628628190311491160390767762669480794527852753027331912014067265775095693791817321003335758753285187395676105723523254923147847199493775970480778514454487584064223814205561613295716159407702786993129300388201451606331974617684096855371628169215898293218142191042078770805343131661516577745643985799248272420694436953937076580935767009513234614829807402877474395749852371466400379349836323555143525166202686964171602562555001882532829006155828804118090426348390961347850094006352578305240158409779350269626784291020574626954949172144669833855588764083950496862638918975650908907977051805675387118909142543267543533628292551244116117097532063184667553307850540504934381162832866812536738328515926260215193688546538020950595523577854836972873642822780856634019697646393004666319172147851411884393722209838074379561852704384286299150018381003868710304936302554620815497505567589543014783054005024743285259208299939052547778698276407390454881811284670413253299598774902325091349586839335842240962079632975292931011616660159254175524990303768217270949648716958073727336800480036605269581542670656626084078488651265065784626374298622163110347736218641053926497848746563064057419770377814437743708173087016577616332099456636477525264670428755644694785032020040512186341973915742487892929471808186456609908196432317411383191045234250685957741668401315227534754165637099615888638308643161013812838124659383354162408434742268620822741952236389858933365694992116592445413811759231415833193242199854197538757610362490952426211639535121501721270015877455041837061936599397192133742934748629640208554865764729656584379655179955502261113191486714184230680826066001819910130992128837643871507271589856625924911719322048355804901127574010144116592005497689273356838610502780161317025045216386541678133260008960700071186489514519938963972199580694182313729926223067262076880409990631549847536224252936194624839585843101125710745792693628190284711557309050877604167863606040738794251163373478211655067231322549974760844862732099540746483244741251294747282769804754761675454748467968071716552256854190357479062215125578352307512020428046249213732664999699855064134603489250509713095816121600433849697896339703850714134934942110049108794558426004661290230533940633581829400655326465766262972046912990815219734762327488047453341883504836681207918039718186448232076810032651418170611051715290972522213775795313393778623861416981879227303249316019741818836254166750978493869847384374220789325612241673393964744126695257555296192574820303976173677135940400162862470752517785771432759581193402167824754088747904879300091315497584182582363667250448615987447958216515714328898326095994283005594747121310308921139759129099439569284375848278334492155031744505394718954638509374477506148495167832577287981539361643328862398191401322106714073398799570051036186819097058232911394754996378815355778791129547545629651745366425506227431509456305251528685085128216516210869359075994309575810697573159193054034048426565507969577686481963794525688503404110378541510879686086467565238704164884819428901935291200669652202407062637671048749509422610704884769503396078225812539963478235841378259013470984164970809793997480793336030927006931115207155932828800021426578288318787098451812172721995838607136133196155970006646656019122249893585246153979637513167649467938339365455157363317911027857459652361805319645647169505594163798393300692839578898955299604572562526221530990210079242157040718421290783288193684571552127977632845589042204406480590355966970802362280904731028805986203643075103337964493965164395095562974217143407311887344438208543352091587896861460608774076133703304496654930257027438421652632525226623406343967800028745266927368090674991786995186780427519225466278385276433354464581709188753594657137646115015678186561280735121907360614718293565474865481209021253877765989097949503649257888056560337672323883719919568008356479555818334195317876986794854893433025255587315094866286510078593243996347275109441625645048454529336914180369637710159882713443082442346079665140954622259625196369169035608753159080896543796887803535014102160850063932935601961466841360572595970745950782201017686180362172633953981795429890783795264065536586902289715646996799689827559662920591483249508339823280217729777951277287040700365373333438921383014881552123769103163677046072177619544062560806881628386174619728753983485004151166448045848041449915406724869964740201868713675162632340792417697708275186140016799381693341080337579865203573223192050915496120515432839045139451806530606760671238199568023540043362790530100706787103472625144884566086237196029087549070988206438817444750498623551300904820066691639416169724265356423654106787127298799541891914941906917311432923264583569553673245415278218325600569769683033776169857013078796423164703479226661383448045178571039562252805160795469371992867550946064170814697904898402132485519920617658740631057138513108236584548114048361308671714707769169273952185667399383669632482272596189794345153937767985495556358091086968511550228908733702982757325029513578701280714780982861557794900478884098576602870802417029551682122939263237589809007832012647265796279140021370883755976337355765307355050676865896376128615527254566281357699606323338051993103107855691707680898509851335914485546276482693051224888644215117617764163326566299511923293924915762401377987000184384175295672093026038339249480126926756770272968762975993045218387651652827816701797751323806504544095909241266823745675945903915711654962006733475501636752257712934959967250244861909357535053063462935091738537306414679889734894701730413985562902838079010427294310808890288997939211588849459753698252397690190580703484267495673742092371754999584421677555036352187364262801227373435641540812311985705896973046294017215148733989835656555367497494528303848406341812137013113124103949990121350306964383732852436214404844107992797913856333571486469010458336982326857491276396408933494520296395162727655281267014373110913759200636436700376566120485422058961342251140524402889397898472241563850533731795080326567822267810340111916702944242280266131473940637475942944062412574471640831579190948172493713786076203239792110970662625354726458764004823735259331988082524700166528954411062850977522513478667214385636298700957522632823948319925533088661866422949148257511180765756576558215639049458299838763556717032774995491489754336349153415698453542511235130418237487493618000025420469110674351050680272574681437459880172339298432250511612677341499151295479248344437503597822945395372928329450422963157654699814504206586069205031508296673207597787928077979489239362744390565536363556719230994362255122340006704004282035835449012183003366789932195693545480192098169556499564745265899673005289944176646072242908541052911922875813176090521649350761579780746439095323392343054413952114458871760176814551481658549961870256658987628138756196726442367075342357866764596661501919972559869930724379674139096102929209690849672108874214222076130885114501021622000581900520086826112962361553012051053243292736098741659582689455678979291314223065688889518305364555232130473707732004313959712456005745179569736273645153150257592333792973806366329808560420224339923439801327802459642925807793213029512175351762346705335175105334360886367970257672038633558779545434288555090080032442220454056785853406246713323488870281294965882555798936205927575321748278426405047482079379836008668323554302972788057443049447268968583992356305033619300145212643258471161550836934551694592360750246932065048183577839444778315583907122923901016201910577995947179020245775496746821118583169315517964185104950669058013455503859336843894827846867630833096619919349988551186970638907190646701567803962747688665831011416443410611081726568460615803420739598419337547280698537144333603829738509171365130024557699120476101489329607536826284175254566071259965803272131055745160073971276202453834471691521929172602550205283239414046222599495627543787636066346271471326594602358537583530947664926762606909894750151318287161794295778631654414377681046694675168047043902661891619422329106393406281037272505513239402808028310732267650867012627585685359114596482051561496332245040210624193901060988955331183356783955711711006525981153862004316185481805404851362152991501133466123601753170677407063322981858944271359130982200239849705340319734197600029511616083691737360506739569894649680216985710132431121899903722210118001119509824641153184166290206743615670366608630440815164794948590715129093634080147901136824463768670354822724243072644455088686636797194678572247304969064561043969852594024790837097824133647305502180759804206518896820297817911227712161810998033178253838451166450096868474357543034011544078263880298961445510528426644816969357758472020198617242825448678743395926289419853095929843845299064515008834054343442907137352613473484969501879606451625816806589201805628554163528154477375918393276425865046113638865183426208032986254897326039159189638833049102459047319891914700772511681877442867199887533439750087488983832001090745811170010550340051994488962084844574624022186751462161601787798725537360029797947792515170326025875508981056571890169185356299161297374497341109443990374710850076308893357003361791915844047113922501778291101007325135501532994376449179234644076142584796313242303883196340995360689163539918748196834590495197230142178931074990674847946907089308611202085701171323873991180264459587802351342791152561451227809703609038929452307127185264150560091504901509097043313269723497002718959048328441893280896305395411769532905021819300554960416479821957949532144309964024395094355061322787008471486319650796758429665460737980460573989861096931600474009718402936950623325095401015843305895146027255784210150921644927892881760553614573758187657617891544562198617369868343306101605571432793749256980486588389728793394202977968329312673027361110752181470825546863155097180770775903721082534205360549242468312081133245561058564178668095139863661724535373330614775483671466538338030275716681028257735161760762388678684654760543749394168293074463081461185997668390696370766045297607743686167654830266235018855685403433210356727249374648193296130147516139949292844580442979555716498352245486660838658309946604486634620433988730404694940389448247681038565846640320176835492161576786335455384253024615099447578889859679930391886322095409889451738467144451409367352450852120961494318925010791935022727203869413887576257305154526820366999301067937498630415586950057127422071759616483097543384714652279306814184932481644549753563424822497362874711654106110547314829416042242615541021937347782507518135546628434701031255868675981808680332774728860816074011683691133895447756923703536279044040235315662991849281656961390922735169843127474346970116739738427275918096013967493208500302813094522345992058207310163099106696124255851771683582241794404559812364511126293743377167718134463942276621741839550134248927923434144875285896874447738869893004206441650101479074975517368744066033941789222449417047910468416689165719211136723595718298252054282210916848340951988694727881071784657075014300316386875264964473370389674347248912786443777738106971737417653499966893723026611738488334885119918315583902059569396670091172626355049628047410383399582329207681606146698516543815781916686768481505382108734141337109721892325463463840134928372570719464682578450628129717111753864313968997501487870684241997408797494788183278761765923287539155618806289151856508857914949530784068991324147330246634924371943687328514038818110240036762963185376489238712836682906075020630596604802103510764036532077296488988163089604244755108497724920250601316269665490831418135302681492120823600266102934232746615073445441550167908815501761910356395290769740160641926855143338242910817565897285090286864785526294447953481897027366924070049629556654843898349007953700952042179149011321058666338068544163346952656062463141687796868748989978897452369153217226767495269579243580195926517434822622672654393688315927539741771130236244478888654054835901359389397536841090215733813972851444386037782157809127816334920048984940625206180648598101638613339350893599197811418049243929296319457898859510174962097152911104411746222392077938368542194328478371761543111717033524825713993180927313515021799532579216782537629489019349330166477043999194374937393301671007339887287603424879728592837880592236248545770196617338767839154467709439135319139709439469610742965607632519678155819718117980985872590733030094061429486836885718178022606603130967819637072991091595944504521301418676466026345575813233638086749347659251078982113640245974064662073800815253492261336339913004387750662877610600290551646532501847072435543145994381500247140056674192851197265801361480178998610982519663011168619375298893203063482267630009984868626058790053286980648647862937153437817300020363572205267119534104704425623107911605239313869980348007410315480967848989521524857348186177683482437676471385558483124402585929911815099371626438556664662062628350558151623008046298798161591869173009444224078995030777635011732472652745869354467621630200250708369340397138601447492727928608133137363460102860413585502289514975433753807515093712060665297532113935563375428964415309877004857841064132021945214434805569047245234209669290115321579782610465152762573829691009293619738873522583502206735387592351404185870589349289094905667488775091245357654728608041147069901076410486463284874144727873762001307367463333220388026082444969734358232861550937025745632526550077900541562734836936892356506487461588777712490030556152587538594333231448210009266503364104521635489744005490540087200819112553727291297922760714611540351396738969079308374008488490530010329877568491339911769705017491919825775268877395959942810374912668362899079283319426165760656990317670516178327104986145512454969345270883511984161054669347282524842802734757975704663148568424209783761561620764580723348340364583505959977741855885204976827260392279861921559425296106383879831940379300454227077993234203198618660289097435147267518575506289286108407478133537810201626476875374499432810779082785076355084214410505043680476315396750130936275022798165286671480451410764266155479166972178913131934619260543067985879351579137412186856594379374120292057845901927984916866418964352614956778714627265767668404493451124135506171421879559820921024715717594835904528788614446960332899747974007323741556131295478476901422788333154788622495741186158619165986844130501411595541130200441953946032502262565948510464938231014710864860192213747860879770751904558951440688803921467797247333599490720869617554146184087871982235127168375442090393619917457624608483037161365395539223639491833064275398580736443646897721261232191061775287059394878758157580901102817522324187471375876994965626908872956247723771681319770297519684611538031696194466750890622586819625587918163543706089405422529559064180930980024702354779325300380298471031066939700753329180222546224009150688836922759138795338060479262527007239663490810774093144343010053298591886672753964575318683733725015875279385452980473376026645578191451098446583135986851873592297472838350706317615911103363793976290416461067097674892775193004373123783682976826101041157822081876433381355029429902204464754347973130329711938490638233732042007620913559015994373580804196947171027443005242763892126326238945868489259610486426942217664154387758391994888510473311194679275098043885036809077866850254806176712894840109099533247682655883078507510549679426468790211612004551211766894031081407154418808777047533903412335889570071145449931968825468494513961466155892297953934549462718517305636118033311554030862435044544752433677180489334312617622402853600310370543777127449999989195095927474473566282463675420353998139911669516430262962610264471323513873855627730463240874854208459073215651971264790625287736869609051933520673039670429595069654521247973661053887617551748885051990928287548625144898048486611348712244802666755584075055248223804299967920994599253596378194292143023335719818610201290144203623623485715413934352542777533848199481448062786610898095107409286555164052818874889484658097467837935484709139733944368719103637394210162242814313360221232634231973827518175261706684025296007545050063478531545274469348281990828605980259102070707874147310877203224374717576887495359918475405968536786735936996637053575686474686213884572712688117905282178900508992983243387937051867275677577538375496352939768287616919205908317080398491991274755474503108067251974819539749682435156737592181233799825503163879847317706119597737426735216685497290130615008421271926906531889576655762356130222358612480972356267590435367866236159637156471613182830242142768239048463713664355233127331681930456908212269051887627060975775656103791492102088824023841131641076551310906272227445564712617214057178247896520575084790320950140354715893082510158025301926630518361831719261933669721133130334834194858678606442641913724002916591791750321339289900035681152472486731891508284763579187643432504517079334884305532477736000407984048347229915937963901469095947097068067006197202546087699986926918214244985122364143026563608420368335289146390978322286552367150765551598245020723874763359093279736999261918842554887210923968616103576169465935018968557070148766600976594221590028664484211120907334353726785838311061678040112705332100532613182819206221106095715964052496154189700655438960258750160990052482507675344836374839150560459940854400996679002525431932346091770363546365453640642284071177907158803613777122494779953820845908840688871422997727759121003721031985451591024851832326730890495798153428624455214224336595762184860338397786211627607926876532066435781028889393415125998649535376994754944004766313314906711300433410512537953389771225094597400243540031537310686213824383322745005294079199234840353062397469723916940329300353831590146462518166189912283241731531668505517366244437159345753765073377808119646555135229153992187311144594301849846914335627177565755784573629734338191023787556007954470863380747050547966859125700185701009755615809896535323882003919347807219460196711055547838360485742406846197269321528624237385588127260530159207825199269130248560208579017636381059572715961123584479710326101003229003112728326419424789029611363701472680387954759011762198534275880479492908111251792166100478509024928273835024528826565462579297861203601721561225967675681370606628532683448597341335161729647000705396206628419251571909607028363492992269773243469823347256465758275255360821064666177506550061556648141167917092347382705347416019266140919459617493959258946880427936071252177267624058849760090918113651402097258013679627091442981025701155824377783380477072961847058152418908312675210735626357306492082884184004951993484389742465666679450071638610805061346290158274903675340724365018474057226464564951786661374703241209390409559176447882138311423503748799903169915907619612358007877788100393369362799453414446843682656759997123583428691811932562369489315375804959231564120531467564700097414210347415498928381443093183071875950154039622451478534907319404879477745672495788364842188772257868780644251366469877658062984085576569313001179105296345775164951207893999007750696645571612083381752603267703450824052449546965808847765738094172273252143702533963153838042334049419036998644886458108788862767937702155897186290112556224004965701941478561014494130140970613297073559113911790530012016189718402288537140972850270913901990806729798151524781630365232490118131070680906005564074386883572206203879380912861766497930562155933545545373478573250175396423386955595065829771917024696238600804426399559682696314362239963934226446616664368558000184741767159345246819676791155407745339141865702407389573680192971005343657282413887956156989124199983070062315097294102707429151030390120794568667187214488927006825998923225633128694018368815367232604505934921998969902373703665361284983396085636128707177642294759710589681212442463173010353583274893218062545895073762382829040249110574950748321487935820505155256820019644803472531953270701510317645955238009209773407275577991483963755439958129188753767423001808602792196834217360328881602742784855962713763854466918484992118454919201232118855374451045377360973632903145509949579869684763819405228379232612859379761645131316978568855801789295820604465363416310654799525158001464695859311478453024585847022752686967146207115677239276244056478187147822431068935554190916142971393035614973504850107969339036595113370579051586961001028471594609873484245999552577798107842114302352542080075297027716638980530472122362109307718156306184072549623406608135212360991018696633603580479884791121665298251035536360872386402841057023021343356622715974115731044165018446164911865771604356570446255684183317167854808131156097831805502858676152835919673802781791386326204195293768219440937704441865563291102989764422017481473517228458725272136068041153227527227936571967863183733107136329174078744831391615103966236098516945408063196258928360297594682824302147987912172314124861268576307449319750377361276429983760479005941405996876922031468814036088576864090154905468952025930925172807214665084894918440523645643243076222843947405932933281901767120620335650609908498146524700479283040298347436699759780174608130608409815839919013507957380205848364536585070838300029100584925516000174200132247008870552573797229937051454137949203966549609978878742034129250987337250215525641883383584574161548533148404823473509697870417982838921277574330463280578715034592358372641461901741547680731916221479982104633898193991451260897684557276923789670629057454366191322110363174952482962623546188069329042831661866919171643577695214694056192409885457696756305545684243546931581651655433007936059222833039411841886799066027080573488280400020163376028295525600452601208250242755271300562915357270370680874352402400325926985938563247373338222222731168435872964417920692706983298677377602516024922780189469937887931399403182272447445321278256181661036106757266501174550928137109515249721769013842041991189573402366055658904177265840039108435693626050547904647513214998391939544810660012627308509597128677511078531244391026317699738817892671843416192627677688396165344450811258309927720378475812078665321535859870768780516451274226916822311397728229438441366253129732516142947472790515698428206659631199314326512369549801965901934801263677775950492047864254719189107558669857794327258347884593801996607445871542077345176103688477061903948300719964895995699848280395673552373453343081451365398271776683303740258723561495889562273015248650639211765103789016916307957635666139676505824359787473080624450696843323156388324372783583213174822515962131691589345259982375887880239771975941085924189527913210068641547161113030996424285803067585852136794696708666984956761776915254774372237256951189629087481505985768418169943487552928943851696830054349826016026453398601117972522828040664833493314687203499076748023170774323755163062029302896483234114016652629079899228101091739530724240932192755151359246732672086656008152685309376651720308146765992838411336584571640287842862323339678547540572591884896398535316267942198791659909806258433465097065853294781565573515242093290450676982664978715210692606021713305762451233926477915787389613903207415537612694295243051145645244209458563136494746385733250754711788851048626172522929067355205043843426517796802409119286912944899924289279219709366993395138258864661149837577065628382565388860327294903753131062864236251027271499758828313093634030948119684864334275235709035131271985472634538536796073652875165767097538566166295554614503944871370532395315944516441021981865542225656871693047663782801108756792698023110626248602491994908483655198023508611988477509515795605890170547310289281173507272874560726723133803149932742605969967317601780609270626836635315793735770211327909927661615752425290678161196487904882603651745834665045390784890770377448691285878504865838682929443350256559627883831524257729483168866193873591639237511641092918279905096543546544055592983533916743766213750910674973471378245456773080248596561851457565983137135806269349945686487458809519694401636832019313793061333090825270945497612300483123196569825290948253536039248903950045376887280692442407521316696885067659236547302735381055275976507091348664215821745671317754481429692142081494851408398421862187272924224614920875257157735430795881498789126544047453297853013195160265244421662541027111623524786007548070265564376427684757770133481921239341903647227980632124382100704111434581925725658061468836110145779645942952927699705788627571115000781656904051911373578093885080761502317776633080778910965414744154195943390750863561261737908206677243665706975567446462594286025775505313197945690041584484863943647652617033457513760005694317414205749869617996946211643053415741990447434621083225800996412718179862320217379641671908631929369521653775829535003810990785644815478435067671893163492830802068909990007511660976190257276338616514135156231727013252118986230283884533240046282596050471114171123547935391224848529626490511797139422483311153947146018015012698693593199124135025976581919413612377625923409069153264096145547595338663825282759147968266425988268925342899172279667725863343356380628547352224010903779345587144901626808477981584377189752206491458970953152392881370703753393471663873489349373205884338891022957168908357956865896172949781926275468569297959932004317649584672333607407578264757161500490270341304609524036637374776112764744853447672557192356093132309535773671163658931159279073322564830460703572200582436935808128137132060513692544607386173918939719158405035872120627034170010985449784705055248535396849003393233133614323582499918033452926771891359530860111320147216699369037218066538844847237382326022633965343739951503430434966463248442620048078870997281231666620889789461230278558021920547822268118802510505393862698937506780307430447697972367629556807572695060489151974233948192482889543595802420722231257351476667915644119640185132955895420529817411739304137006115431511659551934634802673556624166064506881070251367913568512164749252209620171985074235070069881146774419216526445939916539046426302178022596367067329228283714815483461156347648390760616388645522722231535828735212184640328807257818614821341937159538713051088789473127884525200044452045474999349782015858462414960997971048443752839018694510794761531594398981944368908398187464758254389316115890203417644341620307362841337223237883085821536934852843379255478501939262703790923804555536996880951787873515548133883863441289904849949516709339648588812358888263959540878286887838154172314356201402437333049927748030481446426707557850509177193497727685465542859162780920832779868291261135656501084525832350287798387764613842706026180356139597977290871156192919680251742331691645515733889513490956793846710836277950312596259359164987859268309263159958641427097556309462678919464003998825218994126954590519700744681579004437668427930313770061033762487071246472090601827298589353820713076727675904594059423385880084936335785224047121566300159097076805290352879149745324251641115965826652056149323285415522187416746753630405803029046994106978618507582312640924004928422290890918367782285796119668690206966242665117755248742488088107362025941389369958633587186895699254153341233164657317984988980315077382393660719009794609114738520548729982763653980667972082025709733738018475315835611822909708764968077625710033125121351484909113511933586709988729669392733360129763725089366216159369517571389863968654992461696262203016526031747865941726720445343712796030339174851076409939531946537422971410806494286815595248616034492202268258307053665706895972668586842048168520338596638333783041384254315074630609009835320664815809833228858866800534648535239104873005513622408704622707950816551256394330134381477809402628830126510864608873043641973035236776182979885963658030998810574650655127656647031159465818225008108361086171555820875869500669218086321168917160762935347456432296188186575967666477706932150606361755800283481146259263311477955563524417302938787389786406773913411690035821094517435353575361504369628122913094852803253648065915457371863695646674377066470139801390638328184686341046840183866810939229450083375172412029955403869880464747847068606913353892747489917091410085396048438694413545825991278397975316681991753103112946788050510440382324892378482222388306400051579155669877639216275836474613537577750216026187344377166290555873290802425171126347135542454485724611454807907252291168725131537744630920140907970393595268581768852129770304043180019002208019881833431572218289454833277405759723125850144432394269317781435897645010314716233223869152674678157314505073706478706788292960735941969802512758330587209016086129334930874565302127842857081873762728741928850832706388100206401534487665548888256896079943534225671373020919660844685329094244685499489766530747613319503680637802348132155161854749480283022638856725013101649046439664173272972234189546640383276783242116503989484643421110815213657503030394754886807225358921351158775285311498004264094069645024404442462827213177379657108328116438056076710698599308755468715332558218625034516857760807986738960035918199286669154621274196487592629749214847854158089294150531045303386810421554413668173933883235376491022164542795948568628199288879306610293278978935106049612879912074914799349276699414210745445170328059783595701526575083536747153765340903533417890768124843918972394286578230726028512240379041175001640521727386048181138331822089906111197760273231566044251206003370797316747979066037996151033775583337771988801497859481088200854049651549333631875992191189495626948464751687596677565712177327627853211515881182295473252221555561410723104348570592646429395724644269827732720670648290604226153151733789282209736408291637162985621622365697831357503589636743243759933286041126896689133422326465671261884723487711307681130447763077452295167380941849058960220974652266285206839493371660426314521730308440381570668090431262931461801091748536383290570744271230211016867078658001600767550583084419362089334045622857075594977139901939870395702676269303848200739915177776861598678093861806730667478962162011855955370089542302486428720353118967720874025011800919228513059154450294663488862232299080741444024229951855027415848854979274829591001169962611599092249334461136067418507116801558132295716588436846786406908614276747011380004627151955406558199944290357347772203854687856942492056736571204151812108138851159531307141607332031135765741903737441935347165109650918408165981376064912646735046715766169167322447332628641413311563678285149956614568061280310172408141869545465287595966867165535518090647845170599297765108537784799248179430272005761997945968039945035865990929765605259986781140869858359904102495016170461740420258917852582660755645907763679223787594906985188249372089041447370230111748181852736240293649146353740870985029090748827548299712046483615428221392766020217209021316314937927971780798410962087215572116413305527965263837169792477350127943674984389501554577343306525879956585052527882327903350403386082481065353934172638602847402521241434173782483124976310710587781829067436175144906926823002955696809484422003514478110495592474761316832238554739136432356643121794041233044913285194940638920604545824458623502191890650819762353744025191472657793900420531550312201557096464612704216137878044946223069096448924380350322658789570880462070619301667155390609180890589389032894753454290536761649347719382214714949931747234304568187583649515557306269193878437365525736674711929892416461806984209301476816549723549208324587752450141497203144149148671303179069232801229581052913436039506893056796997770877442520242076200417700677587338136857478572504530830338408783617896504679696248041460057975472636860457119967488739624744427410775246367910959323232030866662609503326634875372049740532862033971419505649983095836568252875284362320824423876596304283552681660857277586738396235485021038305822920353030977882835914614177176498907431838173299210177803061410010171113485258618756270150204455116119368419457586872245195798981641351505892871974282870198266665650535916129532895884663338183939092804068635694949751286214988698133696729609688097702803873225359810769784987597967994460008582909627851021819412191150328948843784736485651267844037686267767861935309991587935514326127266781855779717118337817246318941470801659175218185294178848758228755420632407967303326380008025007547630516693008592918271939268592330052861085803544554970222381479196450056078006563154834534006467778581142333661123347717246974833262358108596796506093287460081041439598710180125530802571730061091853069038661174034620982489893775381563778149194250947833085420653551837054287284572262928886006275377239185229728600661610059066576333309836917430203896030546416417287003911535346850546235999334486182361604750119199320150175591234487927767542651494397680583350553439614253585285810768655498699570731666013340305377764694580508746473272600947574466465123135191362906729260730912381302703597259974622846989835832837951416369465740612101293633655707019888380293358042179763556928442570110887650590593931645857760460261294174741450129136729130576988074727470119250204921397172158350900941147323190836384690542948095722511376355509325294350574228176915536858554804444650129479962336697477244949704194252592134296753967503779361980058851717099320016588222313277481380725529332858975274397666539308838951355341377920383308469663262624336699939470501945094587704700866637924803206563068779868333560318561054514816281687122475423654770907334775343689856555072929543283744687705100129013570117164419324660460080502289565696951397958321098394364580618240634277213873836187067402637863059598992286418480176378171496802153721427684756762843666918280569849963809642737064047582821392697193776040719236320113458879765982419897178247159043962313423189934322384599745818987546332653976954823683295670910152012870690219509372884945082706988998706467729321240700475341047127819268140568024472969862015040161517708807231649270617719832433494539566732757045748726175146331141252557248223748295546035006703657004273957287897293542319876515056550605655856378339585827255268482891850190550699450609085795381344822377055396180839829508589392562882002329383000730594476074045887797859230314209116281232203997087325387149431283388044142637787619012182941240932390819632308521475908002170415860721756068989300584218516350879573909261438491660006141868177382356109124893586593755461667731217470880675558037925765446917803021899848515000765242848645743817373677228982305538622909830082647970736934984480619240172385155856999571101307764676181877585315762281846624057191719762778804417779794514422000951447339417978259700277240914251332396221687792758238417771444852997411174225717304460344364579461616891405843083316198399709174969136979765451318956523925039381176936770212631537700813148915373608590483529961533860663679615778085390432991107936833336336080652919013240770668181492431877962768496940007765907007558714509115605781694237612149866935064891144520841831870848695059579922703917186987847871946972937585938582727769374296075904657748657788483203343981628049672365501459602759294376280791647326714438761445978057042987707046030070494673730011235022864643587901744189555056773081059510594801526556822464643165725744892850958105003309759919878268751153692567301261357342836394286228503842460546713657134074451059712182473663219038774401336213786521773716850623154038219304978042438038865509510613525442608495556026005900401415116777573360261858312889889835594320468100341278738591915638285270756525763596413002837168788745377169263942587083016664973280686396197091512489344289907407875049472245971439952285395396549638305571605596467492794566019345633742554217223894823446082305418545854432193913979671175140710421000993478773174815094795370368643206774341853582862954297590534831792035656368642589161515129745646844091276098904371554652516499875082967018032489421533712342971395238609578812010310062705748546090958157894570296076861771119100624139908954125405584273165166358962304390047639186816747623006292179079781929365250940941293640542597425690682581510862141381455542056278609057198782016692521690767392226418832894643902046841409689424108914337152789700597243191513604522580656001551241067440046618812093126763214758783155917600553900245033663540483839146593711941204332052606182276277147335529470286822595683775782513828327286539913628019579938745589231002769969853033215285435362832740513670768481412089581307492079110006964719234057523300015459426035630426266873682705156985076748894388252656969022051959015346115634568590409651994270747857173950827548891767386649393154318411215821157846074987047760360294832383681474433128218339066569889132497540006015923644189563332799062411410689496814918024847196594527895245456205529183383633713837484371477964571235974528197054886702541562480589959006588560587956478764416479234953748272522910536984094236831269747312344996369169682578277972492926055517106964223603108215438621803996197248296532093638495078555041858875483147681867465010440383220792190832692044962554649431958454940567953770449254924834678994013412717312116547447092331439533763941930993935300396692857451572284075446762582697202965030149670613066631804534030721359795169577983177033351053278996614740195909762384384755091600368509697618009574287537003525485861951868861612704924364224173574472961839052087582572338303205573260960708780982884760271728279465258099785942195163361210018264383075731010745823629170378706282619251192203308422337521056877006427107561139832951673073447575414595929707880866261380392398389124253278069335909209875802279516662436850756063506672137686035087722017535535308982366572288588595019241362989585945211360141728286221368618755206975028208029046485125470605357588520126100106005905832721596577147173574413817640698169910818563877775559488469127974722182511039181146088557717665573985054494794729969469557435877415357306420449244917593296055393824350701123449654095846467017585889636553005536348909624893327427524026121838213816111359138518677892243658103560278004333602490303373111495208801615301495032185475248957433548123370094246213820425005447997381065345249931494104232859809801011241534561934172195652829476913536209012722955201927320985626094744652139432095915671674742063681146651302265453746254364482020531207152628522296251778620597353627937905106112606572929033740688968953450760701579294955370762834769750344002966324000901731636047364948911248318319033308036471619069948222225718814170250252502994490385638123090375235543468904592285179628857915655475779356464441985192240021169677417361341974489461535087640031194044132749774893552184265784018725290577721608861461046474145281850288012562310514359452605540923383674242071674184364923156936169205169650244489830964435724867503358732710444330306458193248609908812244951921917084326112406216782942689799997644831987826273458423966136034598177853061170514961423702079108103673395400227926307701240228384898996499745499898812714972864405766256343581401629558880944124010410242512145162017687124369894600221854970287050058312150071130012931898062795704485219037778910955848845643906349482115432270181468540171019823818991089405347176859871411763288439666624579916353446411978829302069426258967255401980664719981464134660929372794824101595219328489072731067541202388511829948468197611633661082979604346507640180577055834179606311572247231471134285119689869306735478304139004872726465860965431413102054033999493527941467961116812739914225219300184108017854517113005077441754362805351851919528374786977722271429234556126476968015179145368264939183014564818827036335296665127157528331758421880926549178973236892815257842936923432380935926087310223365786581797427979286550953794468927318794995196409830441765842706229565617135496411199242645902006009297027784901071755201445508432005884258180930264707873546900038643892347092161094462235073347542549787271234383171622015247709265318876504327948732043772148663297724161832364861622657382847428302108055325870158880313261450058164839204408469832883707673246927361696804153823414628150550088095969634267428650225393223529215174604379146260450086548303243605139366407150625445934147062416031839815122513087972932321128164178873235824257189637249871361461964392971111762586971260907295555239134914848822976147444448930520317727455107641280181532654414772397925493386936165191093394819817428549517565942622043138666551705817092762926227328140645072860842544023897997827698160394718322102335596191147332636088970357463100609989916556531586337132259992673336001216036620266712695107902922535223894516441081715897523348965440959082746179715926666472413193586213236562648933005379929010332377644189030351939041474829775344832143741508631004231726085020102291850364149207884174631682266435762395530306600990513125428530784078020017475069366319472780007420470447378544190788590095500282957864430790883907267907912289771289172849451631654351231278068903803246427441113065965499401531024487387524650736789030639869323526104065848095095294071789519228226570458204578531689738294840670961131952939662623962022821311883503296220618228124460091782619483106228204177564542286545640716891654682294499998428215086053760070178752997538348271743110636783895597012901537292337379786047234396182727680338635874385881652339511023372461190723291315709891945239133573552696748312074204825782073489128944793984263749908217461344764307277642307184733556510380858353129517025668168730530728923610327658092270964050227065627062871906001008398164655045209521726515971477721046059869328166272511608439206646590736328582952221857652619705809536939497294287250091200128871236358495966373291301321315474735527009220077116178499398369072592877533877083817859834765656682803808601887370672109336336170411686756587261337770107074335512124573269831767852371071856713667211175397199109508205280716821399990574613571947180515397639123548212059414740190119818625604317279230100164216377239124521122058337444539034716064301353409737785228489327003307317674760528323044031834914169281238620528213852290471636224605324593636478740805428300565228030661622151437755426188170337570153451417319451140620108829342376200910333287310704356047957514938379473702706722101910409695988110147759290174895632098806014595250881000726195031230218091407966798615141225836644155242256084601516965965760025727787285486873844853331065331756485831608622154477893889566284420610954043212432476450169648657994711635685107655054702650372025131394882259393438807444472197844128795073088461076386759887021044147199760039009226476039325379405338842112375931573049012459309279387374095975357633697986182114047090568172460219547753588590309959410949889798203776194113595812731840714679483135237129066948806676602286474866569872467145240682382177345612039173377973076154743085746710629115480747111512699138538439007940459736457274433783241471896200243593127898259853211236065471987844145384454687853364103266952128754397733494073464217568658742114702791046516152996474841174876023314227230343912507132152745515935160476553103624130023224915050536209951494606503610785689731221583731388030441382435652937585567909311434080178055846061711321681071373083094917246814425524821444654070939160936394105049636429573003579206354759657968572914210773510486996151327875331509824073498286138518585132708523846817494386862414902751876565962448536395368599618908672866103123508046794179873925787702157963858482155877793723919766245047976427641250933834420637869177464616480314004425331706903758402659588827432192404838986232069373861623597777397582199118159658230529234470120897035649030119117461274980279668571225974568299982972993898667819825589631267995860722474684769698431105504984116893879566909408895331304112223883870552371992793621860984947840259239112053278325009684269149058174167796626539709802114115215443599695256969388555508903862877742331493703265684962881745071206685349723078589136671822060365565161619574674769331651020227742970510286774809281034949474623461732334086232417231668560383542091303856901615796822202203923556358475647490871285731380191912218919341934307681947867754125627926116417043908941258128185330777119253169827881297188902640416138918501867513716157577101504364646963386763880477961279693104480092519150560233173278509991279694887334277320876101758450796030073504044253979200918969116646619837281137235909281923173289033118134652506268524058150532867482044863564582540644483233489173085957014699472368201771010470281039782164334603820638623931661604560968148705550956441789019123396968537508999943900466885195373918469281797121718765318864811345730385564674302733878238470283136318479874640783862493038400841421489492355124995581179453906372598453670746581485243285064105065775486510475169174700839033956435079036204872487251044482228705990160523332439284586525462161921521767913935762868175488576803340353036294143172201118253288170363399189949362963230156297213784457633761327307403245031678480296905328705242009154144192954453048498531260410383230592094878563236326684623997568260625708688258837138945200166649919584818195971265938736295303810693380869310850261702985212521189499325708651808870437470018742547360683333239676213504669043785173997311287003381059579842938536398860944111825203018667821239044310106375621828791651316698605656973946832026203902322850967717778865948655877928784771902319292056873930863807015193342805855431783446344992410902242152566275142404967021732703860985091377271943856839440727551748434810174229472746091690168719791404328828954704927665619029574626491851210474953753079477215261922643980709008207626510418921580112819062128008017224299916618995085015460870270219093055321763579524995486917006104485909638456803565619352402770484416322468244366609825297081182882597984542974579686977780892491707297515857611885036535232515620265196812691695853273664552029852073199273804547682040807550647027943453679199046288105053042804853996554108820172008501968228248533986972037917433214717581487689771969010909762377378181940430537227993576722033132572145917614962776339000025980137767903268087213086101478940041804456037837990672532685905260152829337357248342309860266103507005809940263799356973118600647110102900349846592849129214249679268670791026716108538997886605764628227594017305234302117745821749172133948332552722847861703019476082872764548575794054706721328348710893498586449954726192582138779541563379164546534196433487591527989476186312415712532050326542751728833608637106994541694986788061560905267550208513109495093272465846544600196861447895312215740236364046767990187425262104301948233799351331939421922669863942539849698268259335931168104687416476057855962968171617769956632054878337099754059068805064675244775824109906486088951718188538131447541051697614504549449996333572520031852259572015654543186121312843992773862001868082371687811320774015937247132655294827133082336083490455134536628532645267643185494447613211189841044381585863276110460669690436286834401426359247132670675682629596097882911972155683661515395233133020070399658604932592788205929269255452263931538933187352221433395671136064160607640058763357960122400084049316293088982092977818402486743935603727355273256759004255967730352164073878273591608649188205290129145233648308348967889565723257649404776427771125654371635741846621005992159603611085340253131808375107834086531211040150048898870220172162894326203914767924735994476525880934347364680083025670066136496613571588986619650196037913206663180884088006729197390122148979914815326966649674686276747654669039465532874164817148530225372537416935224649855563163003779122899572175279999691900189992867848597771607563643761834030888774058833955381464624026320729039577768510337405226036317429745431520539726447165153406423573215733749865748326201157821940146237604092855555216649281570088409415742059652192331901609835456214371421485418507403398444752553400008246292859870840549900244103462531419228812676525554588495737361389747531678935458481272265778913826516054989424531982622933942665057561649304409803600257670111615165737169265818670130509506225105627431717087082414583134038178142634362161916560337346404926292626994620546819721918671876913450768765773658272202776001882366280920386951705995228124888723226974533102533869588772276825587904092370042066377739692056327330285771215565262647545950430005797140421737678584783276063735752204294357809658783513214096669021826878617524759433166847450308831757183262621657509196618014439223158522559398157678334508488757481750907750360273804572984170356754195602199483358673579095989162269270157036568306770262057480486721702010223353755926125411042927984380797394520893486060068242807793652805330751934164128346378695706723301931521704261118667090203787029557762423665778622165971016920772182034313007454850612203811969420783418566638317887154972665508528910595579973236613988334072674806949542420769671834635395064826271038640728500186319599966873071665264821231476427351821497145517546521823716472845715053485711187207576892393094046500579679259431721642942287456851631722812564598218485570716212397537108851457142775676809476212540707970646067288602257425366275119537078793181117814014139978541345984024339253461020193433323017001131198950027814545066640910523608686511892629311271717227165662665006855595589133391610709857126374227417392577860160023621606703638406761025461936660606374128320324444588355045089374667463650729719998814367360069845189794513417412931242198350533066859683429170540358028822307617382178327404468293169031446172832373195782953634422667650948902438261966142705574141778947976946550631166137671460890581929664143665107124723223147604947589730313286232746781404676284230731712173794935428674365178728332965085104323555717082920756375729731213906896703354201460885490154341247989234716295796042237755681050138484467805957909068360770813737248901436021571316847251453850848792441957248099297514475167673459243645122964003741693461005753554684837153920645015659374425757100704826924025633001483261878282500166010499878482155625077009851297236057119510634565897425268664715784299446145345782212723812894964215126362110055320837170499063261323518675897562382294271114088030977116801120831048940457625998277802836928462392013996080907635564752326500615201050704282327796581471443100822812677081563395417484450782173049339590650693553455409070244169060565583589164824850823529398909270401776367844138440671495492729526827418456243758979083106380784240836319955122505248172830368298551084445930064003818147964826714640713408327969591049225525757671505140682487856743011633197530934794951363956142530916663232995049337325927481872646562937983045637185996341481602595560416352747416973744578540788857197642524917515602898082876283423721147539032507981550007292952008877249744361291101073807301449741094624878504289882282810630445197424355315068455366738502959514190689089814456222211554703582791678182783791039204795125433948168694655901648308385035632044978389263723465704737600801967106590952358233779443503521120833346579279511803252311163400878713340575334114103794862842723811434423663414768681864755704215601904020651527686072857602964936687312555177014688692010828448831408114483007335447447233116232228818982780092818222328725751180413566296961996413724835057584056762055269398356695115458199413787801460015832197551452786754308068712722157750972243398021620956446002024398024637812088914941242008490169172759588233582841319323153630456774737570508933365352993872434954411968530317683652021499806253305390634500631363274168508052389545510970493483492222889348193383790780149906142377336566757190546311536197318848786717657449261113206035800090555168005412642189313750350868209952629434862383112800761803658636520247529068272359116287863225088810055632921637498639885170252660607945551610045948457653440765499321547953947905448407720580263044022602815977109960223185819617021023436206051775681446603059087834688928985436286405448457372680932603944329604103390870128470600948085704732648967098602674578859300584616523241101044683820075417833281052391384576553221450534742189500501042432784781169663319729684126218807480695218689191000512798007502668058279667792569588819146680943197555928326923579270097845799563477791297305066836315251848125954129297011650586896475956828309243734557939498536887599526268179755170143703681972863583653972767904584719281438528867962726342090694960109087466991006045753171921835391194332481988423137612562597913220905996660355016533567398458943027839421593548074121553863989489934257036037965453313284875879494908084429966501265098970031431626890370094227758015305395931294031504319818665650977084190726251489366058297580967621493923567496253364767962433374285662401425551063312978683666615599398737211509834329701676391321091722762551774693312992597568158051060144158331121431498559681377302517115375393153574635752517651743262107809860771949324968152749345146272283557014460809941748343465439879581204726149279193324648431433490168221405216537644531679995452842901326745000054544943994140659515478037093022317378364250976851148834318433637456268311731611333292937915810494413022716729157894405619091570329687915016509290280133446463087650100522480868118806481280975352255579826654159384115664732600270862653047022321243969658613326554171766871594953651566870414871461839329350820520259464362726980257939624988577238304523642859274596454922142710648476628849196151241056420475676605297944686656669967028346100217581739546194188123493189959412723807256791786855437636827480884382336609995418465284227759630176095841196670703857773937800844359757947209077675196302835786532487616208205279863990560796648832572604199299153830765488582791156663414439279444915219329812795851044027360880295777531397301645236051399924557067380204015777642107234018150259047650833826126390787924247943961345064467223637931550577845839651861690120884768409107975551524558315786265674369374627793408489580275433176866264646362998187445850691575558665276747603214983066995836198535806155069530692314842262640527114364368887816381478226060013776418962866675522131201874969011215844132460476294401190108289540399243985064790686451826366841175731862065619510775196867761683552666506100262563756970102515453221663173277624176104981251599747461248818654632318292684122720454865565336236985960948353474455670032115442212180728156998464754593741645661707387172236830942790574724407173933310262236359889540701377163325938198989241137482151672013670331955090704154032566712780302197572437449063270854872762269697996327145731179014439028126848663923734567581195762067956635946786666997295200803092128982932371882839113010588074484324639471198432457330722355012513067601208166571227063043391516081444440504576297664235293568818784041882391900270428071991721750506124299806776595273939660590085732088480399683058149554449173661390787015886376259513162759303524748981929551776459568474344748629202273703390599582202690353014403232488490373415254403774198509462302650784838120729704872181871716658310408367835733051521752057066434922624621701905638395700787447699124430878753474688585930360787292425180730885584441780612898549230383717865500344623803896921441195870484121664466925068942862814991276008407394926030534579506584005201308679795708555778645080010285849758209606876667962418996787112513066317519161329447186693116050767749704016411700095255314705945017367381412325692333433031868518553684447144453909576851387994615563482070960911135181750134235013038735323081666396829624061207247409102550847041827256610668987757025486479687376163200974500237914660700851152435569676341499606750921719259056277889052345407185485278285766170945003378419614858144274676943540629646053650252861636306937849470406420350179990602563128976640048378697705792103147823815380873527167983870019092814622750459469546912659197532877908217143898045064042849285164976926456436666725005601660351186680102066256946599274845338713406973247522804548250004566003560801549896476597870010508048572551507499564029313547399703172698045379278928552413737314712928030623711278804968359800891462715638854724974262846644188067037570417761104917409463111416963655144418550528473753052972105017398981614655799430641093894191634430585643536500974339428829686327071001232033885007482430813262014212443467273615665901153685248497658456821664142686855309520130795074650866585277994914441921145517620008105500508347455320746846403380437138693925930362619319823017309054332136094909552145445192287922912322795881536740656060476361379153736612488858572424139048906739974153915935074205705514135414214123062052894584835121094879381842071081885025298639736099574093443922485590733472577935814126854074134077665535576610730254664942657432461107610046391971903172111149530564362777621938125265279197659138344839894065461073910956038471083704982080931278086044960596751312697178269933395046153592971315995847916203639769588360644422743501519354050011070123571925867195786692075161622584982668998159235310820608313350637191114370339148910516577904741910979057348818706683171232018784380756740807323468402587120890278386297967068436451761129571246702833560980938754002437858170692427541321529650099742737850530292782899744751463745043298255755908632526849404842761892197860942474756391860703811797370857504381165629975519506945823812478369884669460260886120670866347231037950718620229715638891782978995199606847958864533083052698267669707154930019231112074888307218071850586999549760018879910095914637996433582619579650034044904683336860847140675490786289166581717407774839248610577678506567045036615311607836712770305272549508849538118082519809866456571377803713793253513406465042353418717135454930395264606962272653556938833882249876804551338672383271525226462932694720761255697278386113271875528742677396833401912556429360403824902048884307517533362896560653617783186051033595427771328987424847198415961180861517490794915768471671847364584719165454399756280272782153841005727276409977806403407100189327553384313972173171081417307969696359726744964505796032766861050858915275433078877912125003937805197112262539435918649652394203336304261200682270819912584092849041098123243323602838986336630777826110521606041778546532044571781588018577473874535933440624118327747776323932230162054665310528808898608535372413768651119182569741522860060826447021289259549842200569038053548719206368373076847351387616909335393249060715381355339040976560895248701901723300427089250257779232071437794097319734094947047649446942588838267225112433835513174536034106941597250210171821104453907297593882734127972327439655301969931588528228172997784978505178653966751511743213925118030691988853393228498102662343165129694775157049216409649978643986349581911770530883776287856243033548927055657053552527802227794731240129791921625257922287334039016753866958212329814892421324461340587862774893657490511062621429914016205770480982288907624177884513854238333422974267209097632557244079870741150160083235447151549333378348261419573301192912010925182334276847330644463883987870083573372698895533068609091674831399925323429202238147887855618787402136809420783553088011739187965419037880794653001505048737976827590594712165033138801491856918625555157537300192415281330263466841783700590260132223480508632167068861913482033008649594522675348763926266717478271837226680708735464286727360850142479173619979915057768208922117575682453685256036820016845677952040187037714452336791303994462829591578326328440614349050134333983079903010415938968219692826943411574167299485844327320158912932198124665368386937086148569440583121763099649049148103122999459826095044400229398869502376835372573369086503580425292830679476735841146755822990503691866292652464297389869600670636157473959180092918743451128821893467845457952071255714585446518716926890417397989588306442846075775850858297300985260655922265621114893890235976241096169077117645989418630029501520622920545954800682563312428477816509608110642747962896820731386918291292935723068860123804870640301271916461447664732130184547330928686826250586228861937420964865854686532889758182243427166949256459406067534589388843386256214274634813600543988108711578541545105762305325280932075808165248932402182308767815042771236808759827362106346406425735391358692472198759438759846767986982535991251781587708809494897133839333997465293370905667126300870248056567268861509181074580835064305560716816949531664314726229442514718858848997442517166909015139417759002852179238298330909717659452888499943229261211781806406974777177757401056337995094370476222053443659377776361601850364163274359783843209279037301494224751885118777053686190359921354347895396329979314883471467651451492072288802853108644304712772484453213427068073332738919731718548543160616031865886011875508817953584165412191843645548395891328306639158758786967013825831064305895760965426801574524741276484407951124407284842693112083922420560364838609015260244573530706468569861641771886811905038580966738465507282482821192612696372476013476455092308467461146184125824391541013001062200703664645251852595853449696667502834114884624200561357784071418936763979038206063573840614307162222297076873871230608511490832029279831413394929010943133832435339451391087086577537379228874942461038490738153071790995561797862119868496073602459069642066107088045222338675725905014803391044693140479614215627124289565744050368596579620419804079057547264723303051599252590743345823199597855791546716689642293016465717271774949199796647289993961562756952215285142588124265746944617230978899744365109725545776358700563247798750063712993070949463648909538251504563422932463138551914230524694229317534715765390119365491125813234253647458459155680239838810642359741968780324280898870489474772501696728852589186949172025180893995641048206874426996266699012303064617549664686763970838646206524220963252812519777392940171972592200620652588733177954434762547835735019321921906252343697066139549364090696794692566966642551809724246233089266229690294665469249545757991320314169873022690459001218639623655376887051357795378572655409716365342841863662463999334531333983580888914257781219847157073324599825558543412893333104700542758707200031106076717421281665603352917777052753464902360825570768621589709870852468457679700228554226027256317229124739007191102464092266389029496719362959163259746715005192799949407480187293366036417776448163754651831902575397008807915039604530914396320873433867951639384819512662836841043357892331990703927991867457536552338950838275705579196844444533002046720072215628187092197786967354237209511475443956588497604626902589312337426433172000032290618169859301015079386832029171308470699358097526075444694951361727428871583680077985696533429863779913512073330829608896292972493389081889514926081144946774510216840296816094811768412138782282003932612116435423786633377239580579018965156691435173439704510651101236982172898628320254595457813000334045587546813252142228432934329371952950973463442510143987211903806193699692890627180023796636455521192957176935353869260855948988270469580950199948312284944126503158146903078808304364896017385760149207340870929785182083233079867079113366209121973904208405253503142489359165020387507377734180294338649267180987906894760288584653680347037664490286271107927318121356317315925356007070209157662618410535531836493331440691003391990192283610153876584961371962033843037078435655742927968853147367707213095904820948148120410898497698515790653576006996346357169959808809032288620356113273160464710131787474244717570118751297681198956945358285801642896824923303653410316589346222534393928826117128427700604403262900587589971750042090484408012633819583443906902702655713805017492422589652357594725470504170161823833692847508026397093573881226066648518609920616258784577287159945039951694380753816670923069187765618536335174006640935236300213637556701412715797311253407134799866095959065191347318826177233392434782298824358832233619016713361545150792934048684120229927325086564490248416599812622271276068086632585339701190114246634454575479938487378297706267791002410569409030459907670953304062746827226823602939465127805983451242146418132384302772625578698156514001905479723083883727843969484109675678909970366629539186579829403636850582210791045541242487506453771891602100711470350717515460277613511879463730443299943362036911618262213154141072628607825147563345959793783874995001985547931997968732355050066641209625142924668135741891499619585048201494342589588272279540614933130318098722928712389527853301210083181905074371928905766114010010410977023734939824569891603362562999268359285844173806417107788064718222166617617233293139444823804301225665121486000237064702385566829684175312721374586186330815317843982494940847662010554069304421129715887403706885780869340571019708206771329016831352505713281878582634145766609055903920051148503907552112635105842665574511221314569612553416390954517857198390995385940301143233028286718392661576868105654664157453119095369782243306679639343966682019826907691392974389988512016380247133467731110690854644901616657022929484427497953473039811686837563527050377787315729796367632329291473515426809001492179955579168253297253571471736246580840147752941307723351916514974019491212604136061977248613610296449577993845457919654507469940011032562444702818788849080349636788667200146208364569465072861381870353266096715467532047895927101400014361826398052961129749257432519512087411382184594764416974057453211662682484020535248535154417317204490588210182160503989613128469111405193665511012624230432508015473268438176398299395043460077338898957141702465535940786302672011251549060383020740586829945366290282289287207483333675993726518300256863665772882316575219439879648569598966904878965768180518227220749358108161582169651889304082225826035395330977542441786081741938131995962143620534310838636192114534674787457426021154931039577753187846176426239730570860151936745856855886135265260907620097048696359765819813918709991453941722342836561213926682359815049163524436543372613840185691264028535063094155254537802937918002416945478813424500116629553081170319358405692059530342462339316647542250030213707078363515876259901108302248813675496772163142668590163440816619552631233533519629704342973931828060972644183614650236234475300159696253168545216042167655416169214561927099514479081534781596473514196202277595877647942772313393453466970632715211253969783812649404847712372650828846570628497037557312666325345450122408321779716251782383927319445224024284844826299076747733221039832309817650204125632850240227257563928800435114855965716080777643343704413185622870346458931886120378686675636182948768680724761360010382499318231604948238023100371392545290777521819474273653755895528993981328676857461253352118081523423687450984435879355925855779699286357741012005442740194673748995021359139223074755326333793837610112865506155895693918107199185021197895151453517458728314067939181167151315800416905110905023300699722088279175500403529771988564026880121668050363006221684993441370415346957879610739648236533271201781411428200553621343131714383235964651765674881897787986425232604964346702003040517728580314046251402805255548500172759407024287377271070680512921157471557590327315270529540488934041332689419791968191021334150246103995216196372446883129248316121980832332244994123700969679636743765631377146822883649640582428494139120166583251102173282905217755485034879215704000462578516784805598122960944101542694039905525045653976734734330381232247502696280127854366152484334858492664934941857632188908123258489563741892340313680317830932937754879973626618877041591679160024840720042215763001370559401760370289314382416679931757596062600258343368115325567594046902740588094768846785495022734964098893078607268666189006366096981694072386251290792962981396763485605310752580108623380560480292388230066567240825388364200675771139792498328641451126286269904649858922061689244964880511912511249351816556104885833085385153899778151319711898084403108508485684897528812369135164591547710467483016001642318271416725784920553333355644893687146530659158441882842705547108844546381742566251050962017305872670407466942186278960107320466113610666854426122065539192230897562573956184115821733599358195623050891303432802449591259397960697463058334616658941877519498803421531556828898255490847134867377528585537559033893415744643659906808207005440573964871006058120529722542446940436084071670928517637917841243181466587027625693128832510886415998238532156511074929945328503838183967671609831641811845023857994736286551086863930839724569513330983843718603234475871328381115481076536395949982182094965870496908967234785636142225907165970341857840525946275639714533478065189275199274044178776954803972520709600537149449592166988568363352253736856135957052147810100278293493185405276592610249427677260378063372773870012542253921823372925577143456152853884270589235529194327457437408933017817616372962642499025490399855781991626254339499473012887372786523048216209833426190678321161022052516866302825689257778100212475166748618314086634991249703095389685841330692316118849712686921064241661824279111292299914640667288810447802276876113110614141375369431003156517663227784336063185410894169773438011176102556143690008235219924310002955117524429111147024102788979430691342921508591589111822216114947764877501900119804607180242305411925562841446084166614297584025374495814223585412772604864915823268718486253285134218008470508949725610777963316840442014225180465316582414425558496030211044187817078443784952339169832463173452951357534630584255169567980384149111250443831196728329885575391271881222946019837612025331418873161855654716582298137548538356831889110283750586630493052768498759671831766434286293199808122637073592760830145122859731393806496190223022382636135037475017532625709900044388198348726887599887561379946558977781086704167137637149834033464891107945562198509555067040189026084388994586365418057199085369077653516336766688557715417267247893853980988152904183487935496302464698429931668599265252843891365563846834714711427488507034216167256427023339410775176215798296867276283502529393693417933016082458981066528584361039683648287427313983960979002285217318301136821163480238177189115131267031069489163390617132645212539592189273320741698462369011384659247793573463905281227073973149068342781887094561381055402863470969082338537473752630759406016343718539591262798768542308707059590502797698123799076032634773346765175955896810643344146875649269064050956511698048655982356903084972836822830827487720389102673587722199132822486723891641144876034324001717864467289567422370081257376923064180133394835369333686733077388601357377723232880349882269391065869247688397336038165731817968809237809698748942260267290571337489461512911579320143391488910676355021038077585504838332544497316402549227812704447657133114994234104027324024314610135906172456102230419236743211835067586111594042765728899884854488856098303382367390365633014922083089670853189767826159081082209188428768909413049911238819786703160457189045858918411149460810274781390043983220287737740482974534935527911841887446062105079506479555957700377008382248270865074653162582300617545834630905952246650610259339424978150478378814318340772070440990094970091806943654028791726238864060812838702025696711781604232479273266402436848228206863298801624382861633081307010665884564134348146072533197348049166376388828082164984571737027332329395052008600498704166842126325538933086683371992360789965871192579087289489371095969483973364407683696860716400911953154423013661300954774318620132650139076655732008982470609007095230815468109712829519513035941014466644811583142814510245921831733311603846649138552641143383269943058714826782872206923156163707038506641267316855583558183318751176432974561854684574645882770118757848690652071551120875960511483167536020024325958929550964678685989394411767296793445512767735999037070379058812771274715785142944989707194300829169814424064172039698289194729690570030884215840760862621476576106190584327504160917724332638833128744632104859548626861322318105495431168264261108126249531384542276147535506351707525001525892132339494566218073116190411380446978694097668269783159072292407231890232298483457233411871819667624420589057832415569034770880315586322086303539710129843625869736646451588994291134946638291304028342062478610722572636198893743317616102040308849420510040481017265523653305813041857859705959586669962116861435355898967724891928346201464613938246666474761781797701634476973592206116539340947431212852529213698002261915633474556389239007981519239962744338629092416270325537419822099718037079444516219337049007125390823209793740542692438099163131457783312994553991121938162594288219092004330277669226960654135384542828353874689510805100547667831476955354583084690219545092525049360342411486006168535059819216646208054122892938416961991926894130788401158770097600261325299733967445103610847617491135704807703305160788371960755516943142552547059834502990863319604667444881035341967618407014939850212021516153499642052989599528473558962105739964291826348891082112378263966482530368939089732420974658587692974181198673150203934069610496525904954887530838152560677456395787232502372545016997994213700924631878574933112845868174660117535877530467109472458576283013675269576301846663640712401303531982252964314373887462831135234963553601604783759209710195265613070094529466653098925779583351392029427998462678970502654381097160503002648123109664875541653275705447713329702557869785324041467810214394964218707049180120799749345080627407198513761577652568839287326586175467894183144137534813406273833349650379491139193384843817320014511691515567062223051063050168135830067000538026466663614861170272083315477524690262253101144391096352863895586554874125422619510945707517618676468556931846606347427522625585531378239378677280452191521904172048937581582607774831957983923019038602365770663162441539551710736040932976842177223060404971005861580969892873432086615100847772390877108141358416906560028210848779910030207717167280510170206992041766667056190469909358851857288750311959646441363748463251580332601490666342697742544321571636042360415344620506814449101958162073729460459652533434675500726381511566729862739170859553483402066098012417860174479561305295053635108517869295190731235629826934279246449858119677256928690520844096999100821974126159577382155133405578316624577095536528488668360441759863005250376234529956780113610275409080338526448732185442362078260920906944468781709727029737821002576345742997949363705334708885816301018229405053629802597583653377106059252766792306725261616684214727643299128145472428198379826873371820139793054428117998036607046782933472552599292120735515163744598289576612004245980399796349097760974619035550811106412494789749764708296235541756799748413537195604121990294521858921594358131216453200349109994892479899019655213682978726566463336901615552059959200270815599752678221883839873978945963024815264475297471912883993651066854443345125188093120879814500082616784685913165712468515771428326164110625087147054508150673228818579079728757383938566246831894679019902112417477968643495447755682217129500649442781095858904009301747569717013472908838658906646630731933214191226709502930935671750551139221773123186254290457684519634949315603482162150847817040589717360648811266905429659272070467879853910693296592105922681680836640960943069400590903549775397826523130783944847085716868338552442820622341662622963991390308476809626029635416155573878702733450780717036193497962563642236847189694944773692595932353230138866492676536403702973628549407926714852802030926157589046961418685824760621035035181892490284931353420440685190233598623257764081054127347958551386158639301787178001055261296223776967541782309843665736813056590126027874147519502904245489941922936324889370192321062134633444836890783751410439410796551728533549560200967036295332715947946494624079859711750159521173623247401837544628463906636384418027633062426760577972708570576172876190042882552309255927278812031702167648516466611830171289382207243163229860710231110976034734548662998316222920787400754884239962831664524754729193199591089825203422220807308567815735033023484165695963468818300578614951310710067085465852452574553367569408979523821476427222391475717060685424846353962140470626173212076226417800481182677155003567869029724227022450197639718865973647622858428056220894521660383219762693632265525547453790955401706006826088738145439959694422296110396028657596954208352495629191281043323676412091698699582063797086987422154621479118504350844815799914210961361320307708064920241057408940712475432999943556212847569121816197472623137257295819372852479701918454829857589910036707150041022073430632127990549210626919991795624178336618556303102401415640176533388944960851229513412495605709598746479857978998387663424605364901216432875373631730466007120882366935718708453976542760913387455404113528155378387078547182212889378930114650433440359137530745636130349868156574543908805060371728628782205031268600539123059148410330296838883044180829526615175170196143949949621980301538625865068369614764937875730086105950954811890052831844975923502496187430870797270840746125842271039034267641772802493818428018106000034880868222643353034077535601999931192091416045103195637853843814566567967564209541875748798060381799479920142429573010364845016763931578651657855160783544477797216078390333472427228414163946455454179622762594343762797969499380965241532210538344066292911892526441102680460340706402222146854337675711447110988422872089841434461323514997351126872464859789903697692867730501541190775929804074238319153506496019410548170900827230241321197802455834804929742610151948552118257445119025177362521303260788460479474291485163528130364396365214265658621374806928882068453177758627796490477106198988179485450360448976273240590552019063122261836075660920226962586119624051552691360949909017667491023222026184561279132336966435674944508266034200379241275049100724987367483987858420971940162874008347306076476242778959431818004364638832210896352377074208730136024580224330286828996088267367317239448702246070253356841008532383080094265010562228360124306287418121845899242420030344086959638524574388132938876612898217048419225664230627378224741987762369794609974307431307791259976254041334307748393446911115050771035742220666974278776036895995628385477418102682558331619549996313550927913158041953278424876759811202306101630724702379608991502348344289196294214308755376144873332633691670323196697238530707119832291715296968632746879244493639208416177265042186738085885432020078108928786141949302112339607846526746523438942415096192710153943557185452149983009256385326912027475969424677772397293838242533025884256987272037509878728687728120844861030242924527774495850248123313630180897434295307733260530714060333860611618780181876307579868279122009884653555373193102873007339821745617893979677694645657494083698894361829234668501701722384267158407103653459358948782811858561517491220171456968287590816116988556122591167840413180992486892894267473658702568924073958284828638730298968406235024480067455074335539991524426451604103741949689189681456453048793251746794590999330564327702042377277637558657049712030343713008290419978171112532527820157564148513282113937852522681123415730074678813806347131114704406090851290576979015584792515252522965935195738448636622130157954320722802671150953403570165865411639565015009015752093564843036150744566764191983536588801564801964649424601344653215430567237734675969876093942400302580200015549464429958367148040213346073017446741011911001811239924577459670038264477493980660864214754101046744196025618715357411957266004572523550877216371644786138523495701408532807570388566480873497318437694003654244362800038207569378905417751579618671815782290168260307040708962091275134988385036988608898456424879487570703933397693319950419923649471879698310584356795828027085261102993614969208368719260234289474991316881581713423305901704147959938565931645265413123816701731745341519034341030562865606049295083076142810369731654295817403913904436021625091405423111404703708897342165639803894717368355095640602427903441722714478352694907086806540371586024517304878685934445767205547192353043458499555130339767117784239020128432020628932913701948845878991256121434120900912178593797708291420144160489205416548846008045727042372488758897815108454600174102055795052878408983596297363421006235138444992025077579077895185515524951868332797171572218385948296580182107562729177981090054801957320294137836504451612566300635937401321190945987594892771823084591803735082191672943425811417570757890178152239357032595566014571883292850956433148178594168602508604737501453730314976568829175797601924284999219110554479829564447919828690345680952843178052939056952119042174780832864362987133332471339378136051722481608863229542531273007624988110647144722984048192997781251461741894745013856935141583913105997766490607550455191657531276653031005395082054869108900253166409952386303890082896732787212867957009632660770919147341978937000100697519951095711863537869924540543535455540290200309027056713714472407246661888831529510787427816281063925287907390861708223842387341299771946715084984408735829979116962257776898717825485203681891090618240908398994584130904472081863318240973944985255037035376835291260796831925678055064109128176213134047943508579829991696177463529295263107031902060734418909974229053647171212059300077619628676747745398406900745278969372097346667836899668161835187418870843630567268229943030159022505607518578038475579279378726456822393330898157415994994263249721011550991228859881959732549640975344653662684962292389356943613191632435296323960145499410501836355619818993988326290535350607198810610904709386476331162631098790475468587317354983867229971179269837481820557907319999732626979305565383974289872058638285269856261008542370093809711646309569000058648301423737884145049230134157054987171470528694100950644798183936565152321752292316445641999248875623502820302275137067997876225661534197701095805556234076444739037026995108707445239074998143800121283808044220210012552077668746528725828085130104823037728067094218122571943674368734043936551425570174087839883385728685755864483092161686969983408131295494013315901958384590415411063807379579643845270128614344641400493026514887458607492710495816177586026788312092825397044523547979665672528058398270597076603062133531246539412018384594899823632984054265729489048529582587750997081160772992543464416507531582241128693152611976155914113557416858300220960942102338978128882922672879811051882648433025580005770502207786611354908120193673001325784598059978697226286000235091859996181281636261637149428806502169938875422686466953308026700948148666300743853054089655742299498183580011512701690930717089463789135573405998676114983570117658655456843130156272837170082367949297616664319256684659159185555772641772605290205963661418664679829278478296996383936294531667803506431757332712125155466340736160316485589684807830798270404194914159539054203303523611166903932220326344780746374154715150241816843751850057926324252143080054617549683843608967111476913277039459312775527687019997083745601387358209048181773879511953177697200526740579360248541937343156084553977227757787983007506011835257972371247851866008380427206126884115843198810597540978120052200946343205707654721728138769153451494566284312634363428558480345926144873513698112578192701808168039750014010817375364799716776998093306202577034047489313925672402177773609367127529259297774953382818778718131438643919699656775855100956956606780678557073054665514226433142676172128751170065763149099536111453572023748013800836802013945937863851322685950484356175706253190784017974017419405212091204310908167093734082682382523594994797376814273279504931429732273523866799983951412658769555164408333010303828917541240910043299336940897610712379696762182819143721936179706715542615955619761043673387682888664404078067730918967466161258604066151011106814398760946659973052643113579466735359876337665472839436934097695914006462001286660200815821284687520966979451427263489362694723975823788429632231505665241387572630790336210307684742351728276123674175452567488783820122927787987087980942063003458811128227537850704213082389936283446995446533700042684452413838713595177012660899778839524886793064636299217776978811201401595074033241768875034313277224872761538815805847244972956155985538063074154722531191295931711349578994352647921961690024075079826742067912057828129686102906280131828727785405284585457595361372815686141467384120911442475302607464875861280224407721756796974738277937331779517605905354903530621368152909206186035198421886755216274461271465507069151718028370063837741158482689452568655901738363554472839712998504860896616859149660278497252144477961551851139162471846336956673304256775090239831585835304668006944801246580852271359386619368887641583801841089281356680584803653834843887883063189505353782770076040923609148761184881967000307413870687832019633629432590590598372387664649793695963533020401610626590557955035909444961418619921531110806593903937007326162107980416292472782283757799963794530823593920769598998546592264064002695292214040816535699349963474926368312854399746416821333902167923562157225068162246695909598797769467600655330588248909946101450083921116821585722057708915516367090263483945699832727179872903195059419173663007222753162748319672685373240800653309545028159860717169937003892922545935052535054895479147173039425074530772882536172609712084109498815250496574974310614887041576574261420754204643829038877219550936297417664726520984780781354064707273118456022711605136086692751843145141657525039826537396160701796946392188985224098136566956502124254431325469621467484540354841278587485069028414143695960092177403848847805711296239483246234946408146759303935414159497706449208302334463596245580769795017018751781122932687605612035082900995185733125916003323287040684749608618564971677420233358240429267872600020799754824696005912931025091674896090723701296256685092741236325921723678731053033510554000692568421198393409030437014616199867387434757125125533572258441696547529116428907550415338758523884642764612112584231886446977699493999612795343455321038489595100723512958294923677396620966792226553640778109043146680651199625409004459164533811414578016456501195942234440712662558339551186693907826707677991225128595014784945957280367069489209197003307882601216935379325372113299022823544847175594657326194664032096824030865789079225937046722831125170244663159480420236405260445798778675604310290523350665144601229068936582360022879377661571095426272360118864587477708063697651341126706183789825992914464888884800069082484223222288607165554945807928040975494295677114688220595321006007856833391247587980896741619570898947412069857670027484318522086333704568119737889278362947246336749319321742177432507580992932361949159921191993694242846031898945235411264155449504619340353077660500030797670593046143405500093489260762455456804965303223734242409952135119997752167238962989804013850651380394779985587609623119045551538704118613732590796176004371142514267525238849601717409177501940077572179916175561290233279203677676453811965093262852160986638254767263302950143378790207929477567538921776363330919343031638050887065731000020218230497087247996835396127119774559285047660386044892503865521715986108222285671291971296941318365610202189217238325655336012854127575091618646516765822284215277095717013937157794539593307780873191922742765442579107814142475493704940348802542286340288421403054007526495690350225483439117100519015788626479024987816549697746123775375942296876875376118062052136374518522416947606940090640035071678974589401814630042004162651755564509783161965778239453948088600574228032048714706211287253731115959812325839580864260009473457611343795556776210141704983397293100556440412453099275186787295965950893046284832313283171163032545662847052601044278911486859815808672822687442910638549443587947306068258880401657615552041019517482342243953877356224732904051849319793296389585542270421897263833759929237525422160942692563961938426623666886965111903523949097112873864253922695592601624162813827787865223565860927483307202826289780011401445396348665701971529113079176198945170677195363966766137813223860607801538640416680617873186312229803496814335507463352736106014581852368090063480946701608937059231024056539326364595477186136769202167483925044783415130525191001236588259859062436073630070558895934839367342405840220538209706076957297517979384120593145004888317688264234980513035327815916275711783865487605442177337738471035242895415052804572876774186030428137955226369939832387402529541575173315903709352221846287256239171178879817666744400986045766704649342247184124137166789614684622925388797170533908942974160490812412254645270167781729113255169412315167777373007632140753902140988159435266847546135424691525212952565595927553202038002939331833769969711184226861396835118908033885963919229264072024492537924678974031196858366136271059780999757995183633159190506611045722385223500240572576810769432659588309744184972887565768331147845008296111893984129220764504502216160093578061482323132874995282597731239572110440368805510591889831080815828518376214098982737504215421260730889681764261022628835020174744306889794579332700407114190728178821125090149300849124412030287166834842745773063237218252242006723871363253013254969679109068090335004641527176984598179800350182741757124345800422180572485649792704878446018656101825834300837555244224239184169280219988050574120718273695916667983895417711799842843095995599557818277126032271795581293634512901257512738553840654602762441186324671198518885649788431047257288430244512644247357930095444237745028093421012363940704073040704761611188808182046709459324937054226837102721559621666399898348691935949336450532117515165264598937830223880484182855066977725786520100351547057730604999389295182012283325631785400012636597661154424786931532525596044110843663131857840477087319638330136629431168137373435860222395380298869187849413655468954603668622717989649622520160530473369762335836669888789850605872573243741179023069807037706753239907617874943264352887882778385654313954113317738899855681392716202595137782653049349121628148028094025005154395737759095333851096319838996882725091923872123909824939707595840187516784499750454567005877479178451656406823520593933426745009976554337364749336864044171625689457410381293079704659406549010428048587436032588858609168710641687548876092866014822389047265628209682960270957305626963116684781069113710961210715841552698752592974014326949558559015766481691342946874156447398981304499176509869021607060818670720454181198839296747887419143096428576093733096964932013504034857948128383250222006305754499969903019639684586794068101910780734272091229526946702497217402870370771302205808456193201757337397451157064708825091183110102139623721058476410573105036875409173472080873775368808483481942607639832136936346792963797311073667024919275104607845556051397258107799082361566365098630700254134393811816505225785327089889666091335586609700578007318633852047778878188070152925528174348785821319216822186520709580204203998937930717692243824811388893236427200752869527994669586757110508165322664506633045737962486633330575797231540064043355523006403529134256339892710234962991523743174141100008668182191036161540140046369261493581347403113323467743836186205498879348755592489707325042427048672476121311149277385350218997615790863646146642082520599028794340271962329387304071499360226098884297990257130852068057402653119687375567191093222531507872651861650574218236610672167599504145680398702094893618963700488139553042372805748274472500599812115672738764456961679577819263912807246490762575258138446451594828670339401816109185358414207996737695642666742913519608247920675437319095967289833881046603869982289147225391294644057348790786071966461613489807753323331349127175642717410481386046794124279835982548129135759551352206244421881633362149869606477209120180129354674646299550932181155466248526115313061448312383779650168145635653323397970199781373580324468939975185871789555305671239592887168794820268411674786035784807137026660785131541441363988548227548730733368903279187530728788590326411615211198971490839131346412014115563900444525367265766524588384725766728547665671903091372674315240853474558279906436082315517046752462424846703673916492752355071436265445072185434632372615422399755013953098686421535716455373050632749733404601050116653687703027659249708200973897306738041519820154112263413151814275478095951755265480051923408716212322342070957085027169436970701668976543733647314631719320104021528697808647492315870509931785791922748077922564475625603402238106638402655627042625134223625872641837158923926662731826502393986086705697112040422899365067927724541933055014545307364662558777265314567513036633347992599918381477718576141437495144268103169875875169502043801977463573625562123047315578295966830714646728863713221694969287924161014943155077926418352308506560076627390381824353465279408877393285701517683203842227584740022187499728952055849127568069393929425596366766999608039589859772996414889296768399318006299945813874033811388842563692593689259429335928021661597185381680184453468317270796928695522205793856425933835301197098941904203503823941251593484994966857647164831278149844826577270218229399864998118345305051435466071015484260050281179527020060933806813065225131838462818457963806705045844822758133345678922772744738240047386768201099350798076102970374375439035169912697625148058612173982932285941402976063868434420425048479066213394583345788272425610178268757786303500915684113946815785530964227197455417091222625503024167865671482019991883202510929974168715342416665507011135623279744197296025555249696785339901569459922219900570094482169269471053577704637337383553730147708854867045946174798874444362790410697336580138053623300268859994835475020602310089534211114252871669585673413581734602461225214902666994838842039120209345678862456417090436467424259493578036051108215485292534393571221607799193069533007626532752592379657716515583335852140265496167805166303182312934614404705035179650565257398795709077783141903291526653285320277787510594998488380459628033543348309041842601254791899946230066955766261039236037637087803433363681870158459379425571227261703733270674592628754690032105956834819847707181372943359656388926813742648725884958522809429059980297097304959830151260192022397371955166347207013806685681042117269860102742039100021045494575988637477157278383546164683000655568059011999756622808760965625416734872086617277875518514631732020402029885284409779152078557480598112265466092047832001969135337536273890642357320975198305641099720700086477333767754983922917223617349652120938393895257556159937706228871819510919805434880074354932240943977941904847567855199973539776095583249906638307483761954166613406160408152845717208856325027046196770829384889558651059289852508534792065051526704767633808662361395149584344631199941836945275061550553524901721420930642152404488267086390565066123098588923920315769409964755248322226372171776419302422470344476407482293665314230470226783370978192155003731072653523739566705853818985351875729125866612063725331442364384540969248623859273978928755166621574641023637355641455861652027087136757716590921366909627884220669117686448860891586207707358035101103769885474362536023568762713639469796716271632190089751844637066735765479460534789638460917345146603850483031317044467081358581094208751000422719722150427293037122102915071852714026165438722984351293653332296443852092682837791393901531081790283469148601136749932378705816691248889187831681773481038664680314491987928872061902593473918566889279070452007489635183583636192849904209206104782551660116049990216511841677763883325574440432287117788736085513682628079054047761135631913496011975869716698634005563015825640327441188281063336893287713145658753224605676416627712550512143286021040171268357275201362003559168664234842078176537483325911867439627749258904901155098133291632681691666668910602991199351183358283331285905838810603862114969030546113557736676539680064886642949889549504321517297226192409054055187682000047671643718990384721779850280941149458931208162385382108378902508243498580490111888070169610489151036136567117490726258271641228725891278499805188984972605757758166270424340784541131057086099822691286247101094210294703609409275593104715382087916034334430301019511461222359186317899386580230986370116040043476290275065840310849150070201131498439799173233193764633950676209855625381131599211399135132823338761924413177704127748362620655045534557766226675365729257297457083334695977091356402333781603693078354861202929926388189016790507907087679075849532873967594607287960912182614294381991775059405477054885784195384844651607114625578115997926463920178382640731157593443155554882579465411549485283566160118574179204397140222281212126655226560949185428288178938285601034384503189172159676071953703955892625352143451619243526507993494132442327154542992536114224668359957263521884249324942811663822845754146535173968539103431511634974440361389578463521619689793127344625394519671700787065334627313336154693089483557538111571823254708497028511955313761074041583690215790331433252794511168435379234586148234255633060793058232006090489479135218668897080252338680984308349441116198047883177501592328223211570161322064419030954764647931977278713403291589748746676513922083328209950814777181509021740272118423678278487347521434551575351732996444946665193303033922712777739315340045582864972744651244049533996837097978592237187246050551872555222640046442728134539685220624284200726009038525183471645791400753650925118804357358301272805883885750206726176758338923066252113371427247715945768319482127752059741879237717818939173740549368060453531941522946940113685127934300343186387186008598433487473013949239114381795029492356099129738019241050849618744695191519751414170117551452401269064955555714400846417063891297208995139414182698566008610438897231803677170641187396533820742412427805471297074180938508592365682717948781835796013998643458788625535155484497574345112732889252951249976341447636610206638811036208113051179685498252808222255587953278049831766457182929942606180613383532348027680195577235131879343816098751763811220324920851170754877423063275479004871219827751871909947889146662559601092156136660216277327062662015334563608313469882265721421696427488209674714328457029902399233596183325764396281441617212627507659818931313292167197015900482671896631576596715038000882161712502792897997468982124843195172699719409045536824140039317672015146354457666786811665712485917135444493083406034750818573727107832904303805646502049520816261642246300417376077297119816037097452197244842646974038391623115281010741550840342874459081640811143571847630566501424035625752189459981256783140532850349175626363756323092113845917863886094330361068191555284681623859853357995926293708313585539482251915360645413222871213945640749477447890510795880460069511786961981791630554666990681448650406888300367024349005814528351361761786009290222543348940857091316137541508670493614882001703088749442597601196017770511132177225357491669407813037424231379347110722788101156650288714631930309118791256211979292311372543623559215105205593301616310671213455017058387495022515921710522659262284680518898700415228928391213374909687514859728951565586361158498615122926380102730915739329572852928815324399217296203999748182119949901688584195215367394430029823079022915093494311820830206966101288972445596156105088199076113667323531505807718303478057795139744450158196404049977154346668912450832799641462039128459527029380103644517957150924245168532373757568190625740377561164349617635009113836204636987054429656141953813888000295991794400768155868609869327409983329975643628853672340432200773522091692519002737330474651539153446177881193661514027641366078647388106009081990851875056882155969676832157943947113766419229285492297865913143712321059305919319361616788624427525610402313610880664715302960777095413912170859371702697317836322043887725155334592893886521152207903131839782148715047563857396614967068991603383689664309055510401143338004980023960120494673852483417880782257509581203015123460699732821575945133747589401386351143691078246255116425413864525269069852655725374139054061252169691547032858797267492294593386913323303114302625695826130489289325561227414152660299768015134605777774798349760727984782803983103762556325888140560970055613227633825470054879176996914827035064211206575933417684465631010911733813029359437636290043440414907326490641894088112531554169819783569545175127546424928923743135175393077623822573407098719312093023164279591863252677680663454673982811211575492537660811915213908311679571730066676098816614351377350541575125363554038923481906079694005041353294256237287353294244367139234618695979565671897435813102024271888321532560497952891635796727490423025707981562157537926491373920590736673039020923033621884651070185945724785973659054597172962545746375196676015095368091737369073503213146035760906458186083583444439391509849200300922997365555599716260016367394576398218284963625848201953078823938693147997520190365217641893736930933546538931376655952875248088682968702355863109385080417977239240103699475440486019695839838331612415152719487078785095476810620378372461088927211227434629220860323929063072960652688572217339430840814282661223494808907732409538720396539873638211362274041171533681699546278478380169209377080579458797024620186038948927793487012261373115584310096529620846508249203240970213548212830533821511510707825620371470542262838171699110226006497157029437246296506313071427013645331905644273349111815776014707606157601631833301342738187275522792247319816795826938502685920695302251181536322462598007787661183050489983931578145112935710837527721120081177517156007381788186735215620423039703496844666331522944482891993867155990959640162302409131107701390170549201500674072731081092139667682664071148249317478324845682702145107732822381759377133530088364092238917416712328218050683561864413776065808427038969372132929018053281975288072404237099830233518085411280695929574806477684290617130993246148911064920340782179756144047412486083708206238119783911236321767159728194291832362948615860095491357872145797249688736415175100239283453997826681667777458642612940045091524742111233032505915810619342211912074595170112590788242176819828213369814822847908414080132859090918602291748053313122335737245362844453218743884383739910385431782883672908963994604008596434836795870255712719867219887247512193340889285124088980100298617733452640413681932540253290135056707242746560463734403603141647636833827127724880517184174424119326653374621887309024978424438756082027404927023760355709650973427322643056172747962758256601847863131236481382164137287671133103479161734697569129249548942854674899157923984168190290990278665462276434734740213823670594968086314811184964327309289645930432715792146057542127243827401705648937152511031264062673689971342519147597642132849985738664807500042247113023742223659747186572517506244081666163784735911093692383445342118868107733289611940394209321890936495777130344398112385723257964121988277196918716131195943015383088303738207638130772409721829699201705189182800753664327212301702260914653073858169700410488547621038383422388184311762823870159245775997533485184580907572561891182022317837452201102833404752871063697015783932042310846329609129919312444381179521598896013012696882025224212616926998197498344914932877924596994190811517826191431743015010385764733969391813031949761785199435903127854830129838160940667471954938277724171107271118751861765162950213422974346480873087837577935231340873654094723040252464433830792801617801039514157922990367034857462453599260056907496706744785035372004576218058736788402260637411259844026116336013775099512120886472913851939233329036275010900991918313750004665247684984610479628199234258832237337313969382724317013664721030659509864952393260134739184792502004706265485818505495366925044516239775000768802040251772865120218051516290574882887870950004107172623101029866003628881527471546565437491270620076637162421950249613021307024338309560473567072550713200941334921894767841897803990023002589611867169352390267430330617587791117593055072042373916556920444225705785682957916354016264121657442831798478230448939258933560246415436731757507803475554955783985806394158924825747016836872182321596099676823398040456541765418544426097327966338755045062045440509451121972470127007177558163421972711589427257268771186191905331750047713515367809242461991010412722977300216677742235251361465078926600661236404635221611429184384845958117988187565571833249445528275781136350812967671933375936245322632258725257024425539657987780047704800526807807859628902829685605189497569780544044860610709271796758924851862090741721189413466429451641708058577810614991543732284979506395146284260594313115625305803422931592411868140581767145208625714521572901180610242729525831308941419089760201822620475542387922906021980644482483490478844393309674228953677724347826066916002246430542661261640939146819381218140322344601524709242683524613277919244383839157414666985510911965167290099822821260704492311389462111936927004251679075498446423632773544426747196503175890245489768058036284362588474848340997349397955387582440157783022568766488655530735845826794323926652058274343008327707549711812075028321409900765913889913347034400237468256992340704727621483320991955372746413855112420050304442485004339843071264302040694763462668227122302374592258919778647024714288874330749466847947145986433368620123157525515060643668378306206298665471460251869825764906239408546757768708494502666032286532379466279343832015525008827380421905549244733353826617514452639275277691073529362173682773083399215069114111401335546005475755523324684264335416113951619280956043776403970250650839955170335351494752356696022854958150102911671560449133313087747516114769602891007968846539028540698678862259344985808729790111413374220790888750394135163418412484366750711229222422905066681191461747856543920716405740631724320634374239195613399532085393310642351635187151216165751395963900992194872939841944706478609317087257242174890005625204623206296719307067796122832729327880831644625764751795581599511613680610185493547557284835617572124161152815844601725847185803882141601026543351556036041270026154924577409577685238143128831043184632460518661575390995075305962381950542551790201868083655039378597096441184174089784224393972949783045737739007431867938820125922662325464198504024493706704601444101172665136955382562880335412351944092486967339728142560137590548587145371737888553084942895966557307291475785968576842833842438510894103487724418814106166617741024251015111744518056365787945201240897284125742416846507425079668701647167232678269543770628170841600690297201643050862663014984425120704947779026188993867015599412508546604510271180289103659579090918448929765990969658964908489319826955784356246410240837532280442667376958624959501679574699097945752694906556443450645764257694071694874993173980549405441418002888771328946637015158148686435820501773860916975967917251283931434050351475325194120277008594045946689168283237472155770694851019703350435741721041736621814356916000738744640971748497392324266307139342565349101350365817024219129104117795849409581483688223303988215086372740907546163294351809710429479588500642230048425720740295980683421036184232982532511222347382717776261099875377840373830587612150945614127412352231161035021959782928603948206076981547145851665849713907417429240968755362803848854530639320277844844155539414887888150857417272688285656594943645845008877564176542386181537791216668115036491860136955494745678076285743900659307292097241778304299812573955844415906000968776748007626979828866268608763812994396266580705940854892536444736677199023827888733336053281576632638819800806939954147908108525650149065677325396165909340386285179395354406691522245202982756486176411388956683654316815181953620746868551337307729533650368433748160082463390597826283738045471708301210251554052667764356094904144094508140495845063082371771142774438700173857136167352011862315975913452521758350348802437019425011828853506186182800130750466270279412775107583395152958245959708952332534314528018951369989410270049653539923565119492057997136249946204527065323842148380479939776896399479479250261912234532130501438162734800924295424812168879567361429436276603398242843648321004987128904179022037811881603356391601457606523206905801020370947700425149287193882951135543774664560649866913204885766711261366650206498317528534338437771794518166860737218227742985190248545374875938331119922742556533569402422804411090976971479917652622262168706673152129076221239720136998074584995269961016885994629901609304418609342263104055757081497210123799200329786536537441878597006389064398934780157456563686321628943523437973874031043998976007970908677117254750063548440421257660478526452484614438897769559536065494726110017872079686541994138630284619765351428263263862842903549169357139116778091350110229910730902704216223837996572906508295599644043879385406676344928736916781374155418733934944201292202933393778691886030328833543186809955153688414796745570119789640397148152728516777266980722929271189089343140210157130121524630127146621883375384689346077988954481846609434497243758525615218790954002819518078754507595320607579374501533545766474822553547449515064966461830375460813128275995079992469260849396133402646310202924215301699288666114740530709186933770319005237281945702479844788800272646557435986787601792210733990625404508692630328596236376646786797114025582710468837565589640557453322704466486423943324909951670335780089988899986766645909966220472682665329175275673349232629646509435324377514275696096537051370664926025810651685378360614468134583769194528879291586819149218166191584273374525957624313986340948311919164710285487678487420125864126788039931972053900899962680502699247026904819157945948305609057011512457223513074878836044546131256823656101915396519190287408562130251964591566376212210915879755939145543486614140495193977215278640896468168775386507814626181923689346649798576757584724215197913303218504618125846917620559470170203479949519916290697369392954358088209206315382895842343309765047293166871101308676190589354044473676351766557350612887860893004795532692093495607426791494874408127358334192288485658487478354015924239127820988315679086906195963271452239421311067534434319681995060060073748311167691324467844749245496461430981958134114637034594630056051899757812842328813804595146937640216790590480993134707997492219229434432159647772641179319392675222999690006841167605251422702348543665658980699106906710682469392009727255531368546170727124818243486728685111970343118425364681225411698554072188108004693973414875801721558110744365661424890329986480180692872556236911808376917711618585888443085955817223294645059468445920992459626928575677207081906095260528365139276103465435708403955487361930888507326895856008878444836326106992776274370155434815480623873551083603117969140606736831515798489058802589934552757932640817512498214733752949740798596565310032517003071069194106607416756737953872492299892221191121355542019377523412479750022528110545311243774358408018123749730669652891014167200671857322928756740255742379801325441825045052812904502621822613990950586773457461549556262025640153345970312959909099444067899786394908639668356711987262509947153835351378843889737986786129234007023935653329770335559025382510923412188322708581088202535235895202838118557683223720257528517920728363463384670419079679469166787006949296649489569099302949471205098424839118969765425270205595221876176184972271820008017816680745789122820243448918435485780438240225412472583501213229021311347677991836331202130389585156171545092028896169953406215119326367102547804170588051261914490459059813119095018885077635709110772821995592720270308084539568822194279424651472870583441517153355642763457035994917021046549625401623455241721333958641681851186229340646055628444198614444049739898805043622986284477406369453806329313114313799405925720750295531417350634908540550002831654203745975550145195834637418499028850495511728811391867039513372994207169691310837115617899781742358790904010127112206066994400335117474220391682434242100230723620726347205351762480121016798472800521436796025464417610324785498440009123594814353630824203825065786366021187468927661163712058832973324709003345434933881081356728713660606001973009016423097366247981925317157756989287636926970660380592508181604398122527248313597308076242618652279763694982537566295561834786882853938718560210301884676480955671891704763415535648232695381448656589561329086317713264389999838550790128519380535125887129821223071859809858186154582903181351392271984301137792591498304967726865561815748751391646158058580808105559953321735213773092236795004336466541633492820525138473892753976934740499189363557592427382305809836611597657122398096189477849458875131958690432113533723619740152560033346831095658946247030321195640689832785443106057832088095405987358632083409038388139493727682933923080313248129548738273909667383553440640862012354133439717875419125184388579969921539649791082413669713762975071136746815887736615123775890975503474540811944265567174796176001760407622953094062512523577719228628685190190930018878053348852748988028583316997300381574898695987518481973658323861359062774455431362540274078052924213687094205224709886589987646559966784104605547986034280685739206030099557952928776872963211761141852605337413837059699151725678066434043243079092461328116348484196535006012882217332455205046869811578175377925191162291896847860898928394689501385677823826880809523716223302454952508785194805277535316272767271601094863484261901519403422695371466313906423471412337910116144811722418012894123161566284777345828926712150903041377486951047179494661422314879407870331226586355102022196470952898127055409469739750077208250631024915920459135579020929681347974501004793482742970914218059725136839321220289814919719040161062985983677456426196483397560002674033731470040816435481973617747571227843211922001627050575132521108716376491390796019735992937512797356483265459796631670942064809680389367153276443032978389386166222833650355431104133264523963746596320168300728483100350489498119775813871886111349092173356317955232040571925168349966349832617745687245650419335604035450121655805465500827205834309606647493257982949367123318550846992116813914576277928248135187686082121496353962673743026080971520085270463110476378623424323811629379182018162660012645506916490789739186512149990115616494509804974880549570362052791952880159736815808064941504177479610773401078662189072651033321235446938203437334165993680364691793191808326674121375563700294652984866576591377771179307533574030633459906907056743368682062822234709170344436574372163840471225097201355721199735167446641530611116888240431139636205162238391658935799166136746713214316295278488588036039030031590791543900567617884556007124967637053706966027008376745448826410960337774813532053011357557127440969519327094379951938927668547607020136112471968940726109672433769141523740515629043942331001963060686178981284273356394337938158805586695596194017666288027726595636869075324729278954554309626758538077710578438173159186176158174643806412719736451693878319093396518545466019225464004534204570285632004324912254037072495651316172287637052654394170403903806254276871537776442800342381868282369411094139781042620834405619997591239950924397519218586031633757964737965121730673794613009030048081614796724863419845643864176873007834567385655932207572426828807037312632352741024536001136058134125662336516063300697071495350253273680940106219782491210223820247502649892100573565053111298378137320863162820667427248176321264174149766516760681588432019808412466525519232991699864860319427288239899129465736472503910358719024368437481560935904197694165322303478673312774493861213359411181054069248040863857168177853657420781674420668358134121278174134512260217242041554668168373465605519792152042142040168105239895166938577847971144349883889243916330429609225541782709161757142778348878106822811859819852018337950865499645612625767853627795808934059525609793982126247308745380464963393694289582546912899090553356059410278937290528469558712754435311350351097391955765442588348584815904428015039737998788141069111788989381172384088741002765842487543517940443551120296198712091699460538295799297455369313131828829757674433970664382765991744646103585553923052855972652517468481051538251276394897784302037844115376908685900218154717012836908764126314133339955853938389528749045736217375637657580900290156323880394596382979793924484223840263900629293428284077339245302076242935123137563276351157080835525002952803074382837979052699794276898973613896518418346495619168851214044739093641541831247137661006491483708868100257435591744595434015114779909262807908100038573314721518860593664325337338235336173309740229464515685359271040939936898302994907277262239169092338952495430374910668197464250447541818525532292309233643563465755999427818349164558781150537164978712997881890151984612394154924738458762553317308442920362869919770372105040847216857318085093854002289868773187846487000058145725792374179212362216739431214462362121276962145988279968533888669491978381825617027025319917705090961842233069299843324388917466999786578344052111616706192720490219229741673718067752646891058912937591038861588829802875657794459741602656069917562605160338922558475981915667213701042784272493372782051857290732879872875393586625755858307496268278814811207378279782587490048857704557400740588648008452763567623588560013144179310685951684758251614063916442815123501687525610509418818293367646355327455094920459123192102957391947939405892494999199017326298271870126359661078143451121907283178072275954148878046909202744661773758779543863296635303369721775659242958959292044105981302933111833792497405473849914215192236133847935093723418457805250729408626986447136343430719027212725787932218830717103633671360747466580762042533408842806091931213824409622020604673383934430942191698212320937236197142564181125807379994434216657989766400307870414534622601263226734333909098893120519090397214830018333019921002591723248814940645864398393450358693759298742623593558401145681551232018982555001582452315581270066579531121427366584944102916446436493488616613559078094499702188918636799546198543039266445494948666124388262266521719036106045478450491542563454518618083028518846899041688127038130796737968059312730792440205270648891447448482174892058949804288115787472635698315869864670704000894434995890982248569807873349601074201241038961901343678785200175544193038645660304696037181346504250196381944524263587203444586088688322261867148303307209836363513854368918522068543190971755148292818418466045256736584359826307662987494978429588928672062915348755437655548589208555204985399967161569545097858800399467944364798270825321958810412736124991520254607011847273534370093083320924432767305435250650351487314393217226969584411388295152433486190289275137303288561976035001517873838127307619287265369587004442240215336411765494638176300021962537634466804883938248414288187568519867680945288741080247400609075964210530107728531582822625562507968128628198848505469092950328790807282479175911768321997370037402353555021837626811006217162273250840408077194097662642288311311352924960787310671667365417498286271682853918986572594659560396462528274957752898966846276533227540142514303837891123997938524569026053477150293978125594987520969640822676513737983143214614756743733894712400429539076681374378823401518279384413096597038334720667740299742499286760590397027500085111770076666866393767804472831788773845623576075523933274659308873567513976013012012066007777741369358867637054340615759689113619421619844489306241320945056962782337815987792648237203319221610691104120409292729339696326914899001263311015972300103883140645363801445921229927216436788549905741012737329786274839744935207115856908804533457338090654844745091347984292598565846346588896770071737603409250888978254386988039193552033355388672048705480138003110856373916334129962254910280076828172029980940392382286468670436508300553046096918236380621721320645039501363612207034408964797055326267154989684620091198950578779142747586993975101374269385307437341660554667495738121714287694514439373197900042016601046705903507660267202210868522011850552356340299967644815383490416065794439965613409851195343158723754208713001912479795304067313940468853812570435869742634022340220379029550553960711155883722339122474101664736283648320094071309785623569894729449858266394038209662974877711100193151701547595545269594292922110848001723659187495111939881211786417048530965262402673189215013631931202539139508710615959576016429033656220935058644237339306510533749374893680242232195863369745289204517122389553391185751956281982849946600882059779398086373971745820709046387703043962593550787286846245771298197996086377582020253992747568492676257317905786570615851699592001590080291677528336344383763156610735257886907527852907357101358028982749691960705946112426961574871830329063016152977678729811012023773302610557445964016885853683744502232116461977746387724380476512780238444963615516767433712719692581048171123457549743122183990390194754133673705052089514531949188874573312043043177718712734039922162106198280934067046462448150947732205458982207836604562215028024537274074678693437153590416822332546034238885912832649420395971180109192024565242301437712647677835098940826303497920815399006806677386265424958042784693600087545292800852739734583842616935600661022433346512616527303134064997106453078279264929104073234485912806637454028551386902222610820546294459332455695712310739108038266155118212499764359339132084678774757797601656186479587696098215606272561533433038367081870216782526457075670337625393396136690997371620989595430152177756396338116586687443991541098539912944045393421342489803061540351155496162314952557209551843564299753925532079743632412184613031875966517837529725472996613951819576057422607161348999616391281275227620846766850835275736915192957556058974961931745913873865601741518679305554068685629233569448850574330622559394755592317470704613744752694449131163373090768808426556671389153497447608316488121447887836424060236835443377834241625999064591223638963021320363655133956596571107558239714609932928093482159152037756305913409052942210820737036991371975665910268539434393921089370729782213910225478681585989225915871326160619684082721580997582824146558005347776833474824925051721308999847092448455716718365714349018860343271333060333245089885795581924674189264412732281368817030919108459087561135259830011356866652127073852355929424441681922012901945818539565574205303347054715111254094417171413066141149760823259508650185252674911641156497799019767921664953997817614584041806775474694425127074093380798057073531162478065968832197771343531313153074506580314481623423650225645452852129453905153528049834738284099353618306631511162939725787872930890691543150582725849938134493668473977538934558153421375586091310442670143828854586453440855431687068790719930298094109814811986224395039623674239931785965577898814833340774694918855557008997155271118905408571446088252182528436848741512461184865023501432609480033730521296757378608915089144685157444751987815684685438446838037492159388347924025397761594927018868707018863387826651156011537471138920038518120266078348389003753162223142082437459799345870167885897293028226519697041391237135060539396937790877624395412208863480217898699666942348638374992519050040761670592696462728013291743737144664842717088093598967114218939234403594811708384692495810680038132377761406521453110087448447042333306918678299822567980128706791731056881383247198646345624281504647620501847840657031333972959035875285272235019296821766705338851955315534285914796316875435863218766629217040848987839138143336738267067326573966105081324533332827151507910534994842696566526425924630547275826349559974185930074525236314654065904154762617479554301956386279837052566643928138795756279376542865622642005544529414891320809794843595742490293463891759895337492496514934786669154954408593593617309669942116498376301975090677282100117322629190465479243364126069009974390330639165153471779160330328344648064266407497059383850881543880763300993640036478008307521624620461148335411375254343486533102848710918666431474348288108830935560568195661367817921472931582633893216207426300584846903649831857067871920234507700010780357135912458887116399597457998690015886266647873882679119264182377243729367584541869838834067882460680344224307020001847148779646681445684877145168303939431314189434632418838615070026387190703632985993548279195955901011674573777899874292442518462002975182487366816475823688147923265707168355003275088572529653175094279182364603095695387068920988654743367268332531574435989424751884483329032597360416520375530400377827920293860494374347689843967694003078565548376634456446400344704503492092287493001965070135191342572494557465192257200010557494893706436172183551252130137867596080919085793462867662661384430570632842536644389822187357512565151535197372174462152787622762214535392039027054408486058458115547178944109714853258761949915013710763851634049414179370168370031799591260058471537925929559616294582200321548756934148772568547480503854519533794490359439527272991337346041904895792661272038255659179954791307688530177942718048979051790298703116877750016146904433766090570338510875060086785046995958443415076902872297993907203139988620488226489014258473232220613353970579121090437307542598915787703491220943701265884292616054934301498353070602869636343285191816979593914745177269813295386117049314012156417387983255054698271175148185902831837894152582105831170599720448457467330817882712678626522509801738005776680056702404426020402003585766558830848866379372466822549202401534952274652249060672315400790632074452999440284813738405330052616615952075532926596981147315242579397204922831669455764665858203852011640627340999085662649184636129496028530876239375502345999296015914231681601047169473158671521748026689212026841489232681961895073213874933224803878939891714208699252222193107522716600309813991895377744973224708150997433268072012798586974714526202665698517191837422661640488512808513294832236899863256118237279381355977139867576111594332463080740696200143851946424582884233009164032300199245579205703053832003825422322896161776845105787335955597534464551382963925685359236539527401782533097251725548594732588824107840059355298461081618547439035236141223604863971603688086678437468178128668546615397075907669683490625943548666070135545767259924170612823291019344312764161948093541921601494584269217660814029696313111980920785537757742143279531197604189552451748068086095660185686099855078921292544220393655437548046458134755728200606919608865703444958258016002240191022061901555965773404430723597181737583686189494322406790328735513173179705410087052341558580305764083981664359282835672462021847100910772512651094625667182235867769065598893964108093702941571982711747379891308283073097352760782813939292209995424107116699029160936009354152973293539259057796225916936621304984904449371533217383345013395941013966459267504852958451149889140249605470968073151092629362856660120233225086589049020225562390735982473342885922607800844601257169328296968610812330555283780113617848011992835158357093403706454619129931899864089360563916189010413618753774927507880350821643288750415401537225523960390051782071298860385675024230939794898629242546902054975148961960051409851712140433194228611911621805911431924052003390446055931544795707348353940322739067628387369869143228479306647173469152052807431593288699233179651180601172057881408359515610436631987435683952003659994085117536665988349278496307281605554364974398815343263917375587399842168324173995621195463917122605671219273126872690415623620062033112782509562278666152375726288767705068261389372480289703771083734244420329890113481258220892077010748580810639988633647299249368654007680665242729919834546270823184116720227243665052757049862623721316351165368765282266374193774301613262855855410214364075394502650572974549627855769142699764684630208497799966610230834119000347601592426397266041024506974207150620054168024170172585033402495106398296796486811067872977143685894645193212879630714178026318554843984146251714223333383444691959617697031623195971658107699697453672246849221220320959378713566434283463592024584460531672660589493962343128606839631675335495849518537283120452566059100799294286093776643693643785565948875048314343075397700224730874181102765986799967443778294474458176589208020223441837981011740963246412295255121481521450123639707062706216973692733568841550520058662821584517241436069647588050823415283128735228028700620774782849505224778288753789885927791721717154333188793940449991854967748139988488231910691643950274954824908474183503407437238019324251668754495802375958056570611913607720561682041054995409934167308042835104135394571400806161997753223413727166203945097925080998678036794680425266703375583126591072955379345056523429569775000961703966826057809386268659433840541738869870733312894694632138521279341028721181413652583660969439999060923862987973841855624738483016304071140784016894427512353364162705715779408203504898359551763920613999037816902646578734067777891278483902384437035451978681438450140504050880517041098562345228729680574882891279306302896019434410776008646058838696080759410093254226349870539650446883051987749696870716276800933104790219145570036402201124425702763531511818593407751999469949570963521695788049570604263093729708529753527580011849532991689765424177730649755248729687746564938937180357240356212455757823951374161533732928943394203385897836889518132293120112188948910216096895434930667563813690880839437211090451524356403752873236722967412468841673606789071920180932830097688654672909713128366010482776092244825445734584839456452508331395247662597102658200796910970264251307971781955331492367171179424558608342056008077799360132074986718324659500123416988904014574140837371271769528748007508051614404481360229704278163797333855706870086651033241908193900836382519834805819575325693144989783488903228206842843420715706512038186189803133783225818147426320385720518559920064419567171772604958042180803581165730597479308084474108060668651027427285348269721673310979149022968842730184632889884784759415332308796838224027741496829117176341995240356261292107517865861370834484731600129811049151854865381784480187840854559445690922149938625571423470530195821187296055604340052385800750988203195126588585528205904737002649433545749745322663804434613559194863523739524575139560942102748357459233893796042965615310043115807462872627105704138415931159706454285163893926699135167195070308541504343545808724042572015385549466542061970781990605670799476386346323196917801496789358936029178224482847979498465035330601740023088179100912633011514960648780340302241043224795621902564715514394708002194067199776837709858504898219298177119074089726401323743850500832980962887506645507376331814528543828265116247156063120898762357509647924700589379828977942663801706790425147591575793570305875875597755715303608968860757338104227408656818341311226644966937319133046765177248125542916158915668029228057646557522384475213951488661006460833920092562138759796158217009514416204685482398975987023371268079790136133963064936367823715316628049378722585679945897080903666393312564628842894609264665159144071557801934593804817770597445445859417348363723913994204812975939386334656436046673174794355148621436838821530164427530272019435869872132467243275572519496133935513736674874478497328436191865537990064119466223818217812291857016405503910478905757048436107311054707411128640436559033748857458231014080619702226502291415565630097662472073756438087052242739708982044791070614764157104402841321304167098849045430871148760872513334446113037714699595181529676023300024020945859626115546854160249804703207130612979606226982025976686489799020177210703740180234592879891656339609851585365051862481305572432857776879996427849481459051741766771200778315804688633595394315355544093448998280827135049977300878983153169376431833710932235558588369910217874645780162587238115504610394596409506226631024317061911578014738758222635402927500826763988645089163698194847895755192124333388925993864455360990007925751939009907602074415731447609477144005101421131553118831234724996205062516010584624201269204896234098505711386939845145262783519304954136144444117420195892853568099732028991179273685891572845725092544816558059883642715564259209697714226466344503867381435595987292025882306945862508725414033087606188981495604940469957251348188045328895369558279909720952983203349474853764886077397493740160507651472973543356301825321164832604463751757704846901265491547161622990079977470855715457128348211258820108331730098927180109772462257433147001680647626502888688056384621641455203695877109533289050695156458304965647237539096096861559088749546223611426237185068098427147096476308776044788585958108518097033348677812030107601960884428626787374592651824461285106878309288443740972824150885536950892044415126770740424535804949202928732522506935948377682658773324023285615299663369436631139382985604150294681444876548708772034714532372031354451604559730145655024033047798000497875052156157335681001439947573277415674675956196726335854024669508371945208126761428319422042684603374087306863295416396427359205759038156519503050446173480097892350454032144757476682271718215879152561353502702595467285112869089731808955328872360903964965844977126766059582409243110647105701315523642544360032114923321127555138553749845730062855115351842375291133987808305930687294128108553386220088722018950117687669392504608903250754388675306982559946380113404948011738962840690732014684380773651544559644300113471440475680038540882900948983921077770176854475229287311023190936344976280132505187894388030896146004924824171398048238544454203112889925301257503112380966433489393526444365853256549764464286440178243486404147630895892776506978341808641192532124680330279123217171243400331073240971996472044337284004759981979171812421670146112814228163281717827484776577377752500865557642352075189411748175057979845231263331834328587870207180190498156130174547274807920765886821701883669537059229669951932058847863936218427527879075413957007835099345437948588953966750973495547848968941681567663872316653054685117142173439575489717677356342455461138336735075104967556851530822137156723504853236524986904344065346893539919111851049597245645386443969672712638297485140998083410122888680721843953868189433061814518567180410364170463213833229513439029212701801461394136164690617876140324675226669485413239535284773024529825784466795452746552995096749624255229705763741289291078361704741722204911034530037200559383641457655886798599230085770576094712023266964863848544278708645309195036621738855145174802643513773774736997997564853233852743754449445820167975174489053054013782221979948080992271533561034527252218434396673953530842712266124484061397511360390826000161856156887534330476990651952538946856416383328683616512210674469433778947752871411957180350400428136892174040351285103022244928317393835314806864309917237602569851547639264955807572852180836416685116900799486497098956088330634519667448982258716581627773581979556030806106478037011737261693588806304390833993644374496719847914994502684051301123853703670712740545251726619118207055380292827857260821861380516903000806659302650915100700081570689236290066937478817981510740365561318821672661515391866954490866328009278969777888893114672195618052117576938757054239693733117968105071982654554949302909886689160005713518767576254962165530101336367066476621190575020822071852051655743851786991680301017387942813085627391178874424694661992994280512522979262083358179187304733313021491313426826628086164576482525324931030362371454245080999276855813365884858987488262435743204057076282024069820260011288239376457617848070853774040281045953017452722236319018040889369082318313884594689268176582191390650013410597821115980397561165347436449343292347850197419535329687224398367379505635652269111093531176302960437743572037089450488546528906661271621104150937813067615206197220965255629917062758111441234146744041913773872887488826723025576752545967238021193209598751396809392687022651311224971397200779771217149802030387390060988809919533307136105811489693320315815553136085254911683791745408435585326543399873389158730338197272415615362764552071388825639018427572570544776191191274541884636854433463893173661767245211401258225598187676800537800513337012559712778114277457096303840030456214303068414784535755710743530198582988918335356609333489764674207171080735405529920337360557368146406967252883304318085053867219146507639652073106335368083908450908626980629168246392742848486628380585168113938561520260818758323867315278016563224185231779495977205266928212543713557340847266639607924098768866459549730810946568148306718810051856506199362129049705332511665435380341595405126903807669093619441458541712502474778882747232033219197347591915897263857985745119057060836154210775576664411605759002416700458640877336266980344806644304175673022700800914782379718272976471479107686609962202267413150050369849563370278040575886949576800364052087486353466960322143471238404361113761742544644530677995454867852536334757857968821244460508957884644637913010413554539421686385081694411074222037518129582410510559437038160963459143188210765503456529605477709395862428572956411207427264214987174209184298494747455605142248635922869089241901513631879216108756087313641259029752301037586310691045907430911109776952507161124378538109452637254368627118812672178094549161461044337227284537827759278841582942918199206570985683088156808887437450949149817910850713665505799648749237093122466439608583446063497465448245225146624440986767895390224017162929308872305541169819196381421678179578223210234318163440545145071921879717872548220379794652409534035692764865063552118475060061663981356865445125947148083898008925707818249638082557060422017558840690901511841921693618122495249794861714865101646063511852546639320081750428975857187746562140017127836869101409302536188844695294668583067437073411066625242886119861651180626310040914917235285264346565876074192487717189299525782819577401581949586050114426009694374670565580202506693311790514130983202408825300111956010797853207296203501423519261672799989925565189775450338305696910224806311562847626197928822581734820440957310158894853749735599073760736799111541128428123313400909187385646046824687766020505831210701517005236152240220646354460665475644507291133826914889902747883615996273361679226878380120268957430555082595592223220159539339999190642680771288414918583180098799246032887231992991948328287851783926077534348355053960355430061704441677822189153903756200305628030405516523830283017828812002517936404648745115328809348031866518366169722181380448249279425390837763784414474233548786654254273430440799810577622055541414026958462606141807868513399538641093477287371227284207534179081675052947761067399120995497638255998860153418092283152890758930197946649385955506460641780831778456502650480618681768824392415762635818224333836341681009935673910429282810942738612552324551960992036266431485333312539925010498678635366728037242572381502134346575465644694123390058824290266319386395827498451075450583816286702012072169498579328496364949047195995490588714457540783896034244769996223496577275983627946519965468620598613924963446158016169450447300964543018386140300705258913699632996006270009091227222014329158458674714688804315939077975813067511274129185972358789207221108591935135562246157255018768676945383200468350001577256660030070578634039762492594687184585586383300751708953912465950540865804594091188300344684402918902745475819322423718093595272549507955421873690019508406332786032224789232596500802912766934308052336397925863012754976838174199554756622236393264913124442044766778791607587703742432365741406429730734162733661915537655299758821848515211787546151991036588076775891180450323802896077117421801379786347102307580279424761924475293425404870518089190141792890512124920613031373567549145384163278875558031614890743319241721609425563791847126847950989948265552843305279756668943000063100347169844183148169820644653861293331660714579546185451652211239671404806630573635909118263188582505187798851959713742645613193812011823971593093371867034027010543219518145278002744672634501184068265894654812174962291256528472770810171803699816140830481249706523293016483567307369032808058709976558468685040274564998744507477810256815635833401414029282342045168980784416461484582763811573006908651801296125635289920935110910623886262594474935000610826022991526720950243579827286205789723552453625596981787804627532495619092440319702805663232848909986724655352924373844077642284613150504479514808224859112479041966334961333216978764294028455108026328540887953348990340999074515911282293931356205588654108930327162575583002058127543170745890190350576091676332861658051145143465735874528940089787784945027451389566342631734037896015762780490962683326552220920718550753271933804267353425160749738513685542265622215964745928498165735812899194420580642861557143071280846779990091448174321990521977840745084778609756475222235100506195254581602338643364769215590220361541614881125196638831037214984307443002473125007918769636831933662618710808453132633652255420402319884844890131964763590743918672198099596891248980483881712900904346376240123433657674741391553819355839220636088007146805288547493571004775352007650569477125630259197493449051824888635453213368465506657186248151469311661799234892740474335079429412964604255163383334893785648515043304572072154925299953592808412784218406019593144587705772320277411632412630322693953745136537623007366242092211442365028717707369750834897552621780621934911046726535379002509654103879717248650517733025267045608189432902619673595690232171796766392271741751157312923246239771656734965751143996190946560389017299600793656571400970053830477270281444950489330076304320754440573073333556198012627293249441955448444800454495429367998013615619895748951937026782107423273756749294145222588302583376561054594945763742653997069646872108025806446800390531358434675932431899337570586976472362019166613107200107349320494805437570081685066649430727758619095108947107955871730105031937599830541838317871630470946713787480381370752279595033094206882246954870071117859674516711178332313660062383480492143305683345932910626348043081683583405873138055763060678707908543975178687440379256447084894114294306558139782437578592421019228433615780455123853360800730327734602007406335223382929576797175525459385074449845937107626258325824563115317182511469823798663750742265662954556730274284624100616619271067993153571867252886580487218145308640630360185059543526018900564522156171568435641899743738128137488493877063106432013011685643338170370189667336300856799711248047520641400232746483274507680664510417696637089168248856419754270881960934588178350559452367434966848084690183786034772711443943721122085327274074653261513950862972013557091965366677632552354186780492963243451204501326248739106750498980665069028979886011525516328428726446354786367566273471942182305967745050208122443178615034035001088558099489858392096661660209469730010931470823308044036712219950274477693312686365145465862585160400947646136700222911719850546137595836755654986631593179581679457884035281883392367241511997223427679531412299256268988123914369438258767540317358120839283517007120289838512074632096229344979217798601380620807497757217642832787037118244197367368990382119405859670027895157394695679863867943130734543832141237390166454662914739254948418243440686650260744052408802387093664682536603808352193160176227698367029601420566364455814483742485399889358520012561546374456420735071668181641623801172178233216094765158091294150861837845005981837795712506111993019614420838571622580154092888079758937084752312139924973121581384189643106326698480141437207746589615068927695804625490999390377705155553040784741608136494572844081304681551300992420114650456115698047290910861040297609971381755360796930919391646587109843470386259439353001163169428259805645494411924527641802209141512458220440356228955880780930591915954094108681681327206991452298748778616005847328250150362171154048553527692977803690352190171384840458956089736692868708204801479278540735827006528637340405494383586732445737217693981446194174327782718737833968102999848721795891100310564790348554725759710392261331826467770361610802583848463811775077724029435268716821116691591872871398694268735923206422399764447469559723797728297157098442389167234777038624756586474397683200498368708221183683240843806695629809973727966014204279043572894258247660845007559246349969527587130426404119701588210512038893801237504277348997686075676403498959008964266865288665724785685807678857772022779218373939518148848269830889658593974777130783610911826563877566228291880578001048543646190819815048669625145337125494879237843389477274445585523314335899746548241696362678589631941992094815225505239110924417548361073485475763492529886943772607496155824975649124344463781088608316085757088305728077482803527389636853473104438216409633513706711634216670140729917997470158514784613527450494246379295713714491334982457521813159530343589913009554432153491159912765903806193277850082468495676392910377514907720320451983763817578148832394235000920384843250701099408941092999753774933013638375242437113740909835976656811697164298546868852261964813938189929220030938318875093069278390917178470611275733284911236724214977049691966984592792621766187034097626380438207667996030803258864531089112551375042833668678859430395367108744371095489484205644824325499510663365678606720239280042793401019559976398060163229324115016278680859069094847488257897266954820733414881717058772966404970493868342472141122662186050506029662806090289689698016465239013410746876409456349864505502225343886952790387474676146067400158140721502703471252227619965251144170012760166168540907049964057639113751116674210688193074158114096085574880323523863213794591177870162586802177724233950717002530748163440523704901630064461175572598899584155741856371022881878732125652802056110674098613042007117292891893966759590478165830360962183126115166114385540364654179351419169699987729868352480875949928209805269092027901092885996709514033819735650675760159287031101416521291865680011452772649868131390937648996840170977843894467879571205586999970075270152115766560384607175244108376182636326620054682135463475352371170778584859647729597133922567328279056635777706651831697822260539553693637399668853625730109133712785257477204012697263716678608591235284205654086320410378560951279965938394529147844226311529252398165444972177732570671570086311976464012467247544785813156764591535380707522065062528256568043715617321980499850833390919158058479469036341256690029632527033326302990521007244410292439127552048713122030150073740630012467908879691123818937730033501625502985353735717846985191789961884448524817741191633394790831731180126762729931358263757393840373505699285392608307370062525795236396973386606928173598810104802750775607761572449032052274697438687584433988265228298513235977200599029846638599146698020995742511614936942162227914314589143402144789241123332681413874714481626348330039448920841153501270071938623464765010806112540252083190130839595708567378020761788492985893451722528840853739337692093661939860387227675404018759996505406293296873578968017022842196687233508561299602083417406141884849342241705594424306559757072987191069524648355849438869158784253416832354498817109073507021588890793025647250938781925516358396001199101822591103781031351264471062154315145704018800220812650917093006657531262804499429200427161320133266928236513010802519852401929874039460427365145355441701742555060351188983815646249430187290068221703802113073430175626969425960461684107045173864968643427092077102773218858292130786499096117457426311117296649403744765844606565203555585272457756212246526317305498590746872229429776404999666066929155291956667853576056724648166056355767854655233898020164299506728306062223700061647169850217127261603038493465929978721988429761591973680422155463062029388369714419492372932742221470049709967921121230112628106228218028168458196561743257834326051861310107189921726768849011782639377261009864239760026930500335826384932666542821558556495812029614483621761858747818263412650139015586477523314350300768658658134471423015546709131745930649843614048017742907338954333230825264875494137776761636989331202275259443510357801132869643850563383216543984787933279801391785515344318853595291296419260203448039219489642826177710216131380461924524031384227217672368664289050390444149784417861337487343334504863496021600499253130819709867546039047091601027216315826145938438203975976583569938036475573132133129898982145545474729691301304545583049386017310210600027845126171829632987713298260423278231872083156301741138240087137839647696201904365214551181583610542870865272245642418556694471453832173960050827657146861230108187080204573521442083968629781854013748123149947559925880033362602799434354373035990672674798253874538509132799017252481691635456199474189998014601732784366311293053055003101447879239736969542097870178030581567657465388561986191896283111563714920069771587615498450549127141154814764618617156917068692375631563251009079420180017264368633309488924980555403898648339995880299303737738374244977876711385405525296044809949501019683889181750331905053184380188207435721795420171758089679965444341080021757278238034899824728027366116504655577619835675831294203902141186190378480645460888356541844739814715243603902668000688227214824940656671267914535184988092653888685317518983876576987387676771526012713153068419779047911832141823558079348622909985976822656148489098104441460125199308727496188548190922454570656568927574219258675887142478619624554328028477359606440642091597990408467295127949976990330673010273810904501060649545424671239929999529299040788528427965734358194669472366510420347603994856261845300786952931508032433529766907881217541833251712409871137091929902989867081447450226402390752016804924445186115002746167376116057739873250121550755359560256426532654227455481702891023495792569655978374684757931893565497807175919447216805480988219618157379378900693758212873591291492996660671609577838657842083680900521591537368419285483094634116405464762290670245474929956405196970480163321307389391244152734890193292350937676243641737517365640923484262948215691117236506789252593873072217016702655742643017118273237059948054283602763574296962677951618956177242521327693840144134307968572874100984754325061531595628183822497881970453683760788579680519538383207294866170226090772056287985120937033681952698740823836185095563114610892444785317618653254936703264614241215773148877996706148761210850270481675778658081688067581343103880862098959382738985424291982332196183068906876427357892649290888529879910357281222186121551804382485165570678522923350271355313128872805399996701793355353969405242802115314851444390757232705934940948288449158139010218054876963419398154965854755277987153168338382060289393672936397647838145342395713841081751114734266780051759152810437271495045862161473097911323739838551714683403261797418033036850844328654482564765342308040038966423437977882362431439678541896027530816411674743523762575767376203769686269098891065532085671957071370618921881175620055666655917492574689584701171461938037265227360704833066034625817969625627649663364610225869538774799268094965528138617072833807306540076374004653708579737310729616821523078405939543641070160978108242345102982487900357206367062696950971069478801337194970662496006082228883803775774700845292323330852659262445917289461909119547489307804348270685114384042456450659896319727391905116945762646129492248171543848268857588052277908167090104229638166228622544362010741688730474159359615718483717842264572302694149033684427100365395758550563049521077643898964321509247159925576715344254214415154682477314784336432248275893798200841428888496771543767911756685213052236670384777746825083781064360744475784650543774107696724431938705732788578348709222303171093131991557023281237606789930910891020697212716896665627584407732733244298229994351763569365202746193023935835549143406223457827001863517921069435559446135056516221845356282389497721036785676200739009711404599092694930750599439326835801346930491776867457421603332471013242933938042850490427452253669779781336320871373244324249683476447983234935275307755918851193546922199389753646070454170023884091054879940525344055997434368621971122335512566207448312892571881856883611205749761923793637242868060799978212797457189555013839756364123837781122139998350359384933296425864828541540673384846958228718607133505877805924398464840786333298875572619445805148309529394416578297760715212188011990488093265118702344997153093765559169506953671655845311606179544795837284042259217734113766612600661559136197706136535172288987509733703304732099609697564420350336826600841156149140761823498492930720237783923943894883588666044638917303956774639023039075114201560824310757940751776659321001891442843783235552003749343308219590996340078715716483511811164354829403027754282507902772665552727170637697732521531786984639016514113420991001764459645178733793996485474979686758889349529988489437660502773096322958898712484426836858366339957476990853500383453714858079113011894379332633359982616910498085977050557140018304105908247476102468755081599187156420370588266246422468146561159859125566426557020559605234854311218158796353216608754495368480345369089483396563376584935697867050914537613796679711961008599579087371404851851381085158283305099905390845795757357881522873939509447485711137122709590866672823052131134973824645851613769101977112914414421542005213578858738848361277769413779269303133499192550673137621274355093801404839475020602548513202376148739109741425317663929832683478149711272629716991204788147506409520579007048580370866674667744241140819835254015940216993598488651571465213193204515034114872931203559504018655895358249973586454626119591505409957806804140148569457978414769886852857270385045695393549349666099230113376728435561007088296949752600587004374553660140147575087996663373990408384538413822588244126310317845469405607806538590618951233354485239775359519135066203690504478160819404617911908724201076084454857722027446496454702453941506947817087505956341026139350014211490717409285108695081464550108821855455240491793311210774535001147573470995642479471362642072020982822462687587476198264343180420491286932402767215805714575773061131474959202384111653894896370039218705679118729034434383388938023337700201537513263497337517792212187757929425844207115417950678459962466130884755065078893971258485807383615316397709490302889146304588675885375023979416114126463492697631678773466454899110023930557412346451315332884053716735653332523744930661709591812276245500009691326717131416134578117294715389853659399559463858040083356477577946949537564653934002759163287098142523202761648363904256966546762369481991489233096432479467794034559709683881305755556195954603498806548887900619447053611276345334764544826088928236567399705799003157873371412417768520709280128830135277187902179474496520532694832734262025832809748457449267413267635623810901694223974172603992143395164086272529273069699394356195066172100431751776863597927985525985748345355089430731580742264900599166566707222785126310907791537952592649254404668496524002964453099258502364229048347217149852109589996067083812318068087397863323525266270156138827841757437887559056356990015847150053866107161698727981081403448928822919600474909790940373686160852334198897126945100869204877064515439870899667265543804963961594212840787414029583472837905207669140024525945068930294680094105457586737193429414073632122241629479318901221265498224096909545583100427303372113139574068419900707090793674045789230739006348957448480650381590424572069764809148908332987559920033760597831602086551648640013250654395341765261127286387262279675204780358849083571694813041054140394128921458185642721485726814027393104027848135291719822770585597398176020761259771939925733857769898413804236657855099167195457941134926582280504320721487094225028559713716209029140093598243167855608796524798011842533991107838206994373548526702315329523287930112438447438150430282789105478982982833337772272790888102551858055222553247446785644899769792761656310358633621404635015913967591855109918673497162097599805894891904150811095699466051582893036491082786961390280608605583676499837910634889369688836434372413361523257292124636296690265715825649998268312950973764523215124555293185599828553336474360962810923504035418908666999917629705533050391344546526237093620694278256113918371403256706882622584817228124038386934415665901764451132469598979563596688529338900980855183667512881479910248558359950465987822165181191792260635282164863899662465538495230401921159857099820800881050838498752430110868199597798290085273493621554295474789372789329865372663915274544400488971421663379543487700494108105009841325281580165149063402547800927647682981421117431734327634858959344475378201384612398384899241667713518640488314140887313871440208322937899792356698700268630439840226821121502932278980943920662699646800748905508747405618854261154787472942418725784228305406234954837844332027861528990389010230001841016046355362248847098508499196187293709906971220032129955686012439435745156759645805081385489493602218363006271807104884545432745054056663665088889716225623987934415495354431220244085525140129644193854663526953559941349815151518106796806999459290483401543087886463099405746373643607657118167981978709941658439447369714792317101442161719361293144339107818772630068781492780773932212658324024668557157232182469553853543770522400318842039984214745677771168216841488768462946960625254126531354560491779825735402957051535645831650620948195975531319288029330333865168422830669099749523514263118847748826486311152665250530305897875635462458909615903315432270700113589310463288863237636975624900400030942837692082507441873853270867646104953225948758250164754273590722652010982305669135644745457034888490474040999727860150628088809715287936519252446718947773233710056787365729774686894719968731743346521450497701432942173715495828281801705076982600281641767432704696993447848393728157545278335407944884606496596539686872426553658001974969080858810532554508516621779988474475046613298286882921185944742485051929071969308113355166774664937457818980777298724581701353274927691107695557303165383637480980988420456507474635528272361571088261264967123579131633115099927419983449183442371073021464065873234192369371876140472653988119932254084767486445817699611916576364219438481961200756707246775872670920095386690213684994002719651252043569406700255957395956812755335284950733898596597130316180964011799113289359553694806498812086564545909205754788999065944623342938973681686708470442977564141389518334623835882747085414571243769717268637087551519790867218954732377329782260336205397675646478046451422510147244722801520610991128782826874623073447515388107501189475543378323892216847766441306214986135959893785778927749177051730624861381213365966375702505842782535423393242366621729811955988553291989915021439309102030780430808645860691799026843076479008833408227762180207635564178146841154457751431751228237941154151232932149057926685807495428147107280353971320729697541767365508450897347336763562132721072256817385682871163524225924300816315436155828304313035627835942138150954872074532656891215277853227565321179500132234926563195255792147523293008081555445222435458072665409176672076713940606902528247992332697860701684197837637526506349648805127547114210696971594490622448862483272239937112538589403385056828147469071696506752136054075817860542571567297972884042661564667151826850313954418707993359597885833748329216666668500570449386179071420712945076249662985701011575683853739572789857800126002936908874973303111677628933068491340667952201540230364158514583968471744594546137565659917670171316214234628994956850464943663572377035793415155735516823711045462729977393588136910561811406121672730728110050985337839529891644924095357370284524262400278475375043630938566479952480842149095348527572476444383463029973800439339383779203078726462118966959218974861005239701720763639467313640884091448667663198897394002482443617385969236537790419775393812876610886897917256684693581591749136245783271498134154544368270688734950582769778876346595004296712922474580540596739146109020377697964744047694195162292808701266908968158912355601582649484836675143694680058944627827104746044769668550471202903687626016376632307342377064743661496670757976662028858413502755469553150588669196589656352761592054923644816286052594582796412922688053378540316436309919605985531531947555834594859128279108674756816078487190966530186454004806911376993795016175660385570068524426964871178502582824527597213633165576770215093928027358532884863976199206842769271948100898287934626257914115875056215783638657740361724286565079811253666795321757491008816469014257996687229878477580056361107669773622246697694592057513822996354323227153670241342323498662321457556604449114615721212954463201608489669966246936874298831144531282613900642881100018890026481623220047806637855951507264216802869270835701016622210751028909559854967443305259340820074600264064848739313540199241356616253848756804680258662252918248564816204632620179630636273165983961502848432255723562485623130457380178312026693759492685059899447338086681316783199396213585866334502072098915782254913917115482405506537368314103706608348801522484354517094500975451998524329366273764769637763952030491897211350107164414366333442154955355515115958924523885504989535502887541927670747847657133024654599526215255323035554176093493345372730926900913578193148139278318413391057410369345822636546965416637728884564649139755810505748027323855872756277054209337809566860563907916034697647678827990306185860813498619839666402772109955873566940877795184847905900455530118029117338625503768653376617662800343604304298794808309984567827999915099458297851702908038503297166054898557373177422246281523666972272680736224802787902988340958583568474786566834879709568746374375179151957433365237245830672699237841733683802440358232457645545111974152754473019638458459671195843884869751400611661562616755108853733234770978880273027804257258250094224814671683026988693812271336159952246998618992401093944718414863037825183551035386041722879738957449557611932963243592646876717201868411628256021278311138159509569456358774351890680313511570578262742925769445336272173484337920185914464992007691661189983599469418692605181212265246213190255936639977749690775250230032643556716537532492321228997256159273474244062568143361608081320262644222142044596583178426791293881893456030591132320802813770145040099051834171601321613948070427610733092009380424609519110762782440688879159704294369658812248750950087926965758148173801093114984935653728194794021320549672543827732450065066723218561206668752223541333616401520057032332162590549233561385479032080609794192825594190955338921347552540403293295958329502819754984295953754341768304512791113729999033330930984253215813868131385394265014014010669286080193490085303235912171634163889597804725879954862049739978044595068113520375592834039463825000877094326189354967258714860628585407930555044267582380250771635917706325237253145200589926388744437537388008913816212244266506858020116318487469979456890016374426516043918414536024291843674088167873253919804202680390298192806800931934248297713527663912616417923339389030506152907476650308339205655765123701880777662059453624805838183307202570385267925626832346903394668920221660815470926534656752745285029006346998075977116681490237665299475678802690927006258954695212621293265774546483112778699163298866734164156367379029170885307734517805873412249282598340863891847583271343933817555914661436578165056494276945523656754521457945925616938089927971905371163226392183583552550160016177738364598491259681650308278278522768198927188376695374859021658878636859211336389661393697272514736649921270141232585381977545480275239122457115783269439735081120882211282108442882039412507846882383666284301602441059395592129749284999255685004277208507308284133010690729547307034903351422895839606661839971834756851931172896873716229681899939455432529278923017559203793113712749544143550438470200815765245327631038218727331885171406916325455295206534954549412225797698728909907751062623054938217185233964572580005600560242542561491302062530480436099094200872897919003897763499699208071422704566404082541194429551617407163472417968227125488481037691935578914960927000715881492905707110483310519179639494154508664677835252059873390813693870134691556639557063314517602607627037827817737735343797561747037642399225106187394701543342004725859638338539242381765106747223066025719838693483315257143287749855929115407190553305339020053792738447722628017047507972186812334568776698366664830988110942423947590115282770096322144089447617212630457833083069842182747212810033017502554999091697649176055073267639961564757276460803866476801110063750470021726218092604477505357151620406888161875967670951653982471415896584639174490317100736246074749820227681956005231401706859351964335282394138346316998345337268245619665369785207919738093946150612549847540367425752771585647083551809533615365337631262936600112249540709522092996263911056766079493501491281811042316035827501293462116643204880657753141012787242373073419370050221901839739494315174701343567851258435093500803237235727370501309350325091941847276343551989202325766130128716996910580819983953656031830076611996593090475700094576150954811904664097308571556113861044833458912370456415509092178761930565255880517353089115341057863983709961795191179055027352200404590285230899529721261044509505188801490084318141616149308841085363282887700876604433033362829048956685578790275115083638832707423590648808423041182283723032656085261822626546613214702314220808290166094135272272223391832788714269651717970058847710911250374346279458184229840733460758551606667977253768275222031129707448850110687661474502309972820256751920983514743253413188497401980444303447152180874198796358317772485621286932727930844637219545063544039687561779708871451696449660351001258030719842833330151046544689997370047575050287703318678231413084264779779037121521516536832074916659116758524056552593549645364102767597660552175561381922331167242544940768386323026228225818386891817826267000843238158116207254133773336420274370422366362338828688455287389527474642442571123646504193339061896295571054083178473876551744434533234363852258893356584277601478605978750044713560196202211245928851001734593369909102025302848877405919949730839156362887332800535366596414997330825169415901712478387537600456857493710480947704761143974189448618440134861401405815279756385670286984875550115049667285356843772275846084126502851739365357030665291172963713886821900265241924957279407527590706959157343355539165437000784705473973540533559941789907656313317506393038839998512948430470213078547707215155464276543807569820614422268912596521382014864835726041652635951993687226150937692499929979383865398579983752549346231630539220392085253025492895696122990668597907831208915466542342691285992310072402153410107089014056997097061531325598739065081824764184522674098423645180479919409731454912233039677643830335066517891202315199209433066099212331403265862193595458274130016170225444715558833942628422109970801526275671647056407899793818107760159666994809436737419879822675586232842563895792620482289769289545677165641634530443317832817656688083760965080150275631969350737509843887827355747056688575172611328689254326349398480379983187968121674815553372337101451659852298144637317014383935755851973435659434188586223617891937995211464783754677052023809523867652070098721274318670769399281868736587310501914537524494508888005263956015320116444660457442425604599702601470093270423208704200325603286938614443013914963691420194449384571659338452231967644604061445457695543084939459707362502324042773615180037624111057009294416907435538568382440988746265553064690369254185113702194526793320738347938025058638863101447411412530287917280276632423707631054665922826958767505614662598353092807288760916303600805575004180980437194076529618622422707720257217370806204429353488340965072461349899977095326589335909529194835421267760434216607167357710802131242665802920681795759178640344604347079339111286886830571637136541957292808799647061593605882861437133099361820165835036943010624859922118736386690035398107131132373846919121443538179348563900179902774570524481307524806552581209186113332874112218055052061282378446074304662497461042871674611338620820618069600472611777283179839145544483405348704151209387048665517571951435803189195872354270588036475971646355589716626629593871771423786875656283224012784381140724440815296573333630741239317825662141273727722153197342750393217122324535581012627192753772621594910092778361620250087084736338156608179272158247466993347102049037107609855805316535369369219239849661785617780816934254138946637064263126161220202334805790684563499738869582104154648803498819999577418196477063153876146149609086982786000050611958546134823404205289267401063515020524897177470869586305196569301299524019616159288129747670418488168800278145534532709672310965112594809120802901715756408278181397296486760470358207856779678306447380497377252001546121604232239901980981924244384999863680073487583823084902995226923912182127105688548443067134549515386259542119408909171521064750465280808551323396172491505913721290477386638713753961176261988565652292256651018425077053932898894863424530029228668213610237642725958434240742393449712173058650466114724887059025075217641666985600207306779552932682728260196034862988006657592942356937162874765942461942523805342844003390995171896138838605842075370180552439578438940027288761048496618924751721104852807087244036369951660568600559275958832613049822769536474863774607922611681049495432056015978792259941349087695405510569185804420562051470007630756550817519151232099455678247982401934813667829685357982110631928843831337357283362366725986107634986406748840284650687477512824760828764539429429815026349370349142135896067723389021026179740780247653568150062108429740447905720056390569769026341947814724417972910779512528425211123684478634746443709153269149419669230886963123274936901335101024238050123715561854971358568880838581902251885524048117682487521608471746050370754195346479234583833825141782476500538404372299255854839062742619428863393861299537453254854446997441074148606009280864080797207591616177432505964363684481158091665874786504483379198836263043605966170176537659402821689221798820493657904861456294951253872402871284813057537772140891377092769734453598031288871037356891657363959173943726631469032897668483127535539064986949586080159454104748909585863035483706771280498018583332664958919472116571659858969052848392216987844881322414371198629003654023814225831413082354920462213706913036648337091677707836717788433686600722359961115086934175171029390664773897116519779220371139336898916167390511214377373140400230175320069653029729437651002710509977903148596961955382514380038244656994268589125903723370372795171899203943039307162587629763206868202909069702066258557755599220259704714575425075215800234161354045273313186226750987587515174172380404198051369600832630518890407817788876764699435252687186976987622751488347231841821518144495642669135687875046875786473253983318238862916849697660496400464765806735040539645049136112077563311225296505282662729652226264247993789024918815728010138186584326702673071560392762579518089550203311522737653798872337626334883880931723494265362020268915863831804308430729038268169388335572650642224669709389776893995484481644975278690475676598599252179334923196544831768877940407581661525097968540095049451254679093518704744714342781666626967035020755504273735598004608975420806448774454382974955343894555106590898801965679407707524051860715484740565015882241221881374057865720986716354748859568326532155744763575181744994967151842861164348972572110045213771687076961452037784335132463724594412868333094276386683332290836711899620829936619564851982883605325062207421017932723280651921593811178010094374470799258897004787331231251146815959033730080119060040927776512675627538836119826316346853169831460252492492771735234633539330864154374443375882128276632332894780756635182423827869110686085256488631086091153073239249147497463805594965538435357558563688766056397758274089773120810229514188185263270902551580078899486260220731733029509259013992908346196034967741692012274610363780481997306231073195714237262147127106440482614935994843188038339842896131964707805300630116267756082854583782269605394202082485387920374974150814129710606097649445595937816121577924773252561358575769898006858701983742773276295523255839824804596391873598978672250733881811743790008981107855911448624873100216708438664328351418604831319306592683405597363323945635276643411899159607809356954364122942185403602827560870092715773848467556177928504518519054599924295259357444475187662253998862791495321828232520637258870847404505532984721681775034758700917943044795283632646863732326355437707565106602882458971431343815171154089876581573610316011397655523916051795888216443983360600592788149313922076431536822460223291979910148341590950696515339474803129408643820967957848884876708951261850992061280777475267066164203474769298263335462663985885589478992120926652748338138486282130459767713539135899968210298148289647676150959473837156628885923160978959969726766516934828169527668880765055812224431654898712148519571669698622883341882672259338126976387379143701015767891618292126432128913562406808063751064527099448969267863013508159470753919772270585378088195916205422193193806722923260365780215195872943323068728171080526199580930656225406084585060670128045817574014728636309098524212502865351911682903852084395640998628009431783714775219664237307531477180904487192021233870854031325166451042238592845953951273450947366267528557123272121308377389296877341816184712463046756138179276846782757870313078040186978509026242613884695123314830116792790067240626682756002272807002273485174741731581822819320606150583048913165202769727119314579686143790700035524093167743676367247107381665645650124077398593915647123446420684622596894476078551589272045612209721742221550879452065041627467486033091788135037736415045224550678693698624328227795819978005303078626994245488569316061226731732521763035220355399423522202633699883656604122304820802301271198065646962454506800266470670988812769787108960972046047886737147746073978058101951657059559276104025477160705771363822466338828453448196679846761092896204419753068672152230899940995066113355826085420595035018433955476998933802389010606436386305817466581504584267691562056396755633130346942780304735936528390960043886635229312936113020414233388421524257327019593573487410635318651407642418982673583319323322068964711874340512257541330458030389992029767410510837950283105535606228382098570094223901987931492471033381492459995471945438513640494931697869699987862322539601162665804283204899668525934252258827804692577263622170685208646580423899136246358814743342969056702688930865173151022845315437718925573424061894994357461039770880897835589042567986576517400565366591160584840192022003136479567377921604483283742833741358626847449134969041842461714360331282450469020244766176426869905855359855105330979747728698477552795831124425114714040879723379484786673904254991807626463368030888118601144949630637367457297731060371859013148192080406895921394804969983099840772220423923777900219590773873377263350886858933026527991217997115454970103867451107648775635257462405636019680674500927115882848720633732908901962806392397088741191036405980642764814227068482447981164308752779802469710443872045633258705556890860796303413917791514083958490027791686183417509430851778392989440492312696137649333078361487131151476416659183762178532903172074686744531174141144199643882848767548537617050530920540336762140570344849071109892694654187678687559284040392826286910217224008716735112938034324723424472097289336524334065284462149179729199373227323234491747517164930085869110177131270375963228010573644438008806196666224418877514529034719425716190651387089251511797721676535317323129035685459107246041666767900042748746073101701356110007071592953645361333258894898749319378368824190430693873108597877198521004623612529751532931364858526323516760257140402314632968203277891622595354617547976094768505167020377138629782565517721723558651251613187135433330017389432990956925115800516612167366264682335638710319796025704158377613841711893288293508975985833283912750595294430077187662855286200407543976395286869710895839384765228015059763383922121095787562007680787158865434016196698566809702923521031962866074242914831134815625951854321940869323125714565488227029967675970806228557290141135387827233855125305226074091761584547223799771675614578379756959604541130001490930167355695408424151860930354452431027724107392820036514934916988394596318962476129660491979594535660510211717941346738683684167520327525564031139321507673214037075422626250057749219452915813449336521566880632123747573526116256672396987661982646414122536504829663415729139897794119388214293248368790786227057735287826107541419381834789340573092697908602160693519746913791387766609975479852217824247755108004787911173129305127221271656598376011829935831841769356725388864590082977290172959475659270474016205530344323057714636984934354836598891689729689724445675246641815593296332790108949395443443949188700789599360573867320015065911844295429007748769018130622406538064238421571387244796696692870138238362631996226524664955170786072306488493503575359165902977701774333074389582930746395479368485828994562894094874663708107228582110537956951962739675363946692640937855973027055635141700467772196611109084247521271021636299294995990742056787406851876865824521577736950737250673169803719567803465366255798878808111729392680134666667475484889748895708764139040853598370999076076759573481936330639292943677220120668404497760789492228524013073739675070926512807379739273082435721022121238711392806652316302037974541374203544226772876198202797805174991234836121297700722337938682536916789983920916297025025590538617476792300786170799245836190065205388787673738149086864975638773780410827332448454874894617159405287068210869426102917086829781480986723460248046591416856151031439760900321938874697328266905863935332595627044340700022474280005166569513267705996383378227410556041239038671172669141389067956815149338723747690137514212012905232280668662653683925941519539268841137668645682893549267038797331625901256067218111889401885945802281860256976465399308143742595865610800578094905460427894091544027506386758704790591731160420084803615396596144568311088633348097546893500686163383276494145014317328927337076956770263144377313305872300088897874566724638988452517919433323519571842063875197485919387321119214628818703412968899595844655442934769206611465248099667804931909132791016971642666145649265567702319370227259321932740512492848174884361078388743530632148799017271852902584915903520602686311960940729816647490726061535178927148220957077065041941727161662292912797531660822413153266063977973757053690997685916183425285725400321877296672037207278576489078478885348697007517751388778357236940466321188518479183638572675988309275205753203982749478548921021120716672433133093635524347722838749201459292189252011071814361340955210245199616605344261665118086201685279111934887954628533819927015193126307186381002329610813459217352996926007854989982702379983685239875067902821278437200727715626444240440762128612419532131952644952611062926888859667548829883974902987774584685468901503025465826003324282887947353849873299581242681055304854489763895183747303234628004305307687116998974587589215142212486815480221063306458226576350027253654263789204883846398290647235005612671600624486981724363244556758918330936105705826607798379681749668308986185840142488252514301266081507276963309839683870490481605420579973397989646625000010865838753219236068931825171734549641061838623569080456895578099613515861399695956447856289032696704827495172801647457687926706678043008088950461630766585440082297258515133068992240690065307540543682649348075119444857067175702828474751175289496144474957748316059183125380880006024646637968971123040447849744175149673410224551381091505814484638702471591166668313565117440335254860667800744623180630973248234502060223621855198601577400797191698827371594740156941098290459250309736662369797046753741903382678648295046390241179710018006019295971110720940395818405236394883388946527085440690757737395085087564619385367208068001587686805565328988957497244800274084184356416397277571602958463129727655747794583877613498452671836357448300393149763996012653371724053638216966859320500390570827831587352352309769796450711971319368819761369384316801831043363125772736994088124103620983364274815237121559832279536684201493814347203874287493651856909338139840314853050888095743019301159375763672008970443966127822516769235555183204507230994054175315711637523940115245215399329106874726923094618362506350273398453168345834020558211786188019468576059909610628861928229066377883881271837224074476902715032161331027643295526595589601170757071089947038664755816008656744300453395403592006847959635010251870777757373505956393115240012751312314573372688676026214222974238521941373209354255511603295789435138800609176393371082357156103813071033073016318719647844452221538663138183403314784346342916331068348141829748770838506116776766485616677973324328770404182583647215876508711454969555724537276872431540227297607608563639086396380743697213772613404347637426817024025713066029263937497875674406650870976633860407707551162524147989264039373299118697699720462308106746085496329296769728543327096035918217965591966525136663223889017429478070763937435593412753011792182581776531560629393856536886246562712895830900516953455215883850364563311744618909007899904990922773389948983961631576555757531436562232772391281344191433793346913631203384467298447690518966158075633391785388901477796056899782903449996625213145928790947478528076996870180065182373398269601007379607218100990888309436485824424227001093188404018114491209612310973244554151077491503340838784523496859772734079724434626907555528526175971461450746667430997665470973460310119711328663189479973535635732908717984264561539619152134055696798251166499334591630768029516705791943624552080669194316200158927917396317322721055819872757023535678408636695704623391305586535034882639517364656237708407255398597393626660228203411334885216928160222746960171281140338231103908804633531283221993614461029641377385529986962081360565895346335022812448269776420783992656411110147601367347627254139964299888957160468042507472013167607245350868677241202767044088711265081635386562224712326718528718246856606117178340605842872524089866209749617140538945271129685614996576574341290814577784025737356234220955249776885014269779167382472652898964498115862375321257937812684578827460069835100290781040857490290937527244765888876236901257751988328380101079852825133766873875851598397139232892540581854647445375619604328361046912066353399815050288569149345900246914293355791838592053907451827790201931650446813338849053464668511709788289638570180174327304040370884504256401320087984489313497502455685139614857205199923346436424725730058501516061700103766189902396147759946219190693664174770846110974296664530595203906769124232745938446782405643401252355636533651015361150249597023416774754344711678222441056266505157542187350146408487539435398040052523607125800893094331049113216832277572985258390101165723520076809942614998394388494057756480421371550984960861736068820832293349692218830182207335470122814709822626145235303002727470149801079665389304920274802236386318257405543591258154655274732816892304740893530089553895969613571775359998901905275839404064153688388065255640396312605572368119381760624476213201739160800195895504467432929932918660584202791477561470229433785980317634012974534022092893207381316903754030057212203890137939570060906281865620098760714412102872255230987938912515922090367798478517710720582721165131996835895048174858535119772764026211606744873548447798521297814927562065322905254846670802885292338718834827332953514238221178822735591140909409450304941548570383192424957716267139588592787469178542755676591874512012509788997408983784902125008095037517033025074803405225182149997376780943882723536425239737219267107371456537584381612304710032292570939823350880157094418411212171374664304541345597234710587694288295351519643843580021750757917362893871136749547329178797349529665133234282530172904333563798952361109212856863257692623034879689468322764829402488934186715396917950915796088523000063835295322133917902651897776817188354313675103191738045036561886272619023695147869907818703765799616916448539422502902343635925090868199741322860340482536093923928112411813723814618162692275985840408111748526185701346916012731838947858244783081398307798600151238898304846043161414305683094672803265734159251643276162825847791452043185026155958318613659615952828249409185332954845230085988863988192328280235220953067107882113089187655760573454748900803799481259676937512550371346308871312087685646979545990939977251935669941511313687521209014298606694929861557522752308051655410018816628294118980855606752905403316074190840358934293686341420862886208822149278145674873247627714953164105452233790051053691935881701228700029584813831465791359537138721499768373302015769185044909167234497636789402868339227103189298687902303778557864053824335308339085258668272107917744102316996580127568954884420134325591785235261229965881327054675992156464691139222098696870550839548117939400900795751317153670619743023917801108120799368279010830342628600553400059836578658497610600783562696707899114105858555446431528075874842828310581710273912359806039520092517634503040410736098181870671839323318463965925242487346645919639020140999073642472885207960655489461131933122782829524978614462245861698997120909115808803346785886815112804126368062258066362251012130010287795755683995469530476064817170597507589519351921979013931872273971146380562638635747412300464021121200199701711506352391373379526880397731233403796166674735948822101569394882684830821172555654931351172542959446849613472629770082635664162330061673972067075369397471132454901414078416996607491654165840830668131141894637501458395643062920302175370343558862715987196124305125919999172133632840613884142340958696383731052522193972744515816494411820087944830649629616330003440614613702882105708228168814551407756041002552845120401290497731444144353254310183709793549778922239260931887165294013528961319783584447685602959996046872877991663489671986867177657311428222206571486031875582570529616246766793318760694987037083087559935211713158001376310829762632090879981354563441059461784397583390555017271802595857254521440034632161918527290632821731624999817953150126237451419991468171563340898921070129867227831088246308029382570101666694639700605326000805202449581095773728176167757808867736034332616794727664891305728640902636073785902577582682600036244386585296182648687286698550138980664618954746726675145939416246599039538748711661891279208717606932937912536850548884014632880093696503629777189988171049331226307281612652433492693462092064208132810982526182927781604168849876428545625645997946177695560069479267207387104981617070038996191206339879390989462318760425568861657110680347694693220023824431595226767650149556371897170248060868723225967184126684273106845474941807518607426277737809169457145640047057049478498929804793787600908252212198888288348086207265598693075885274467826796079868328808106197450921080228290380479001504240836115189173483618727684283523102447680965081503933918625458193484833302685596834573313369343320878870106720608813223995605478503501385380350587254108116784749172935300037082062001645070689792637220659331529478065035359921802958342879280244168662231216103144214624410372046048411350513821813277935431801604103916980958428763820246369267098676412880999410477136241736299817448118054998771839113882570302437216218336367556066244442847807083286425735406460127106954011994395508851048538843111776443997892790291754232642516258403106710759390561596884110073614663616446457451650976056539529956778215173854826870648510333337681369670934049029556697763751419643244623112071460513942002650166384847814011983950193497538651042526691958504227598057737719185287010756872848831983361832888308392973367357204304325737611858827723433633578606236589766503789407290386236733308162571136012935640022259887570835363073998453471196961998990088297797857079319413838805193534701936735840275915455573214755765717774007601167156599086637749019740442256221963749009751473778578282572427203104301089529595556254032124112994060802848193125554299697423484307399400294736233880298332839050302924762014991167250069633024696737553688626156037543089944401200430474824523907882134855553874623770895116719016031256242498926074644172033166820506413825091600695010598424644906408946477706670075936929493841480575168440334785123342854133247933997500134360089599960765354407111100685499218414745571278979640263650714534067106505113234668155128842763940805785624819037547390074726990756726158757462656631400532638701221475421299026133254186392951732185302450818637965378069891569202144791494129985136753634113270715936427977415590626562557301041623531859382352977768862832524700374972694849818384857200899202636325045540859891940537060492017516176237536990543304296713893458690334914285156598470709463090190597752024115401401487968969826217430586270129647124760419727705026109034118135222009361905619863176234979901266004216737077045689837760138889852684091733517053880931617216043759140303593267275776614358026042318266150498638713781685401026807845734322716987944994464499893882298707066886925518350408944025925388498538407530701011083541397516593059542534407176232661456005042267622331808415951813241993111208781393504091409579094282157670562991397592902377252799619779140887144753433759788577283628587835788791547288116460648613985779606183549057654364878224659952065486661685342323533672147824949377279253067515178457321743585065789145980470001706731676440471258987350828123949454045514372659621548851649988419977267308219963528935751752535785930771203058438152397626519473552055805417690381578779462227174421887808010213791301042456495420264317130933131115488750729622351291759923231879783465736250971412738454630117717177269022309978914069956231558732851969257552819467239686899868754094862822317526273179627240423237820373399509389975883303314922966947961924780662853123491431631430809042461509384422861858969522070817143285762097406104245501431227626233555457883793484317790253508877849723953031987232441286839337592424624410587686107407643378859081041111512338399450691592554572302812787114924809781794968321995819436176212730912982334490664017369505055636817756119363686212665456307380562405853782918163391483442240066935340844424922056987081714110700487327532993715171812280143131659472379322116515767568024013906529424818802086464998152267610754155383349156900747128564233541039917085871465006638696482017362758088678361941857583681838970737405905931170047727196925952549737735547935180860875341533000527867069533723653582062845539097576058197542934179796189616059212621409609742135745612077883331975799322749391411245702959989318513189477912437671274375602845928024060889317626920364577843632345729657451436209022823672936533277231839121685598046696422180977112296530898149643622628349902796636647662277965023475634963605000239003337082930809034003981038416035285180589973853759049207103338585802256546077118281459515523505226089003619530392210221138179344502614080182233428105785576907632600079966734952029553131444231240274374932780876459452671826890218899634387081002040833153933419227523465860350755754781706134803514050479510466298551431980663661786823449994667223180723646083328737905782261743971521217425969403404042148941193038508020719006061993052799835572330656882980214127792777608104220990078883938124135727978377863507093133282320481058812554640876644583205588676814265831278056283948402855078286891116704722904160595556473605453260324873900081887282619516565507774559654404897612732684856270406962645608260739823427298233509047270478178591543010768639691342251608323674326476168198715932494448783288332134880302063241252790216268673570917672568845265688013792640574560153971373796037641841197768896587323922672862942490520227510223263794442810002111107075312483306886511559984673621831191676199579923564351774341919457120250466497235707853063396682119249260171801161449609028586483875651159788629741385557456559225969852408572287628641481377810541780438749900524746765799284936802658918259990446201367494937507213260021505177262192128182567176336814530284229305648422891140210821236343761774571318465424951383520418293828889346726609537995911232922189931474274907463001080607317135341978075272954449845967470258472443983422859892463559022957493294417186144640156810417217133722159881715125939763479146819576259401581734189800522133608568802234451130216699096940144031840816684221563499305395601381028836893541852931098183095714323482846845744440592946480672496392366996121823545506727037270731322351721138313733900269845479873325974613373817385787339696603286705749361084701361912588833795639000649807023305156194230527588484400279536841530356289836308997111049547883225381232370990970588977136863837139168268756893169483269998739441090511883276721738706473830600536044997528385441024482780765248592215322858239833917477986442016190182741438873777051542486801529087238772165706437518721001858343235391306643837573286473216761060842947302369877048461017460915675993560908574459519008574611081461095447500689624700637769400353174679804714946303057697597268957790372913703188436823228018092148070581297360272733256793596869869653292931570038932232756007946388709529538845198525676477378352433817597938924252790266217998589434657432632050016963986604582588037736410842431539564762675710143152299332673213749163702451812309646462849410928734297874406820530563627679999557028671742419922038730060329471941066185194013281756855644429407764710005520952041333385654801170553622057036128870962078601109490809646911685682754211886061315281766556138339526001840544759747964683582123647436729921601204702207164180676789188513416698095818830300146250053672670220028714462658090359673142691536949302203843488620831726163261844248090860899686646033200793437577782670859282200746379277690954641087390895002531810015023108534925216336573966295858463426875814762207221778161206261195450981124394320777241167330523876422347211090321154910158231022067596890045436837693597956495640717940510005145562203616455596758944634342739469078855873762859349008872937964634491280350738967919015877564546098579356962355440087063200757883806877192245708507186145442842704486382391689940056375908606395453709751142727102103937684105969555242116994341701344371870740027640452345605807397034553011734119137708513577456380752850334683576118271089175964863222698083021093416736112909447438853069673535464643438037368052121036153865069147192853106295561222478423556171588157393946004042866733738527663647288181583439829721814372023178559598407139900995080272835256366098095010760156787560861418462954660135890698059186807675789905874295585682397232108614286058884531542271765105396373660216289279830151681028384979212520318125855238235534354597177335640583538166713016108072080255005588880321526977405348395133391248882222327233214809584095010398879285012446595918746211903693726352331333070791325777644750525763603327581489622446674384231746658469595035109113091950387917259367049868506509408594002165978275066626545003131833947836509601486845973644848396282056275817545055048519572032161302539864532840411552496997350000035127142658724538458702682438694693114128614560779520157670333248160231383665136600529258006798772638962530781821807857509255963476342984669559334460894706608331222250457712064709558324358253104528332013648474623151239218485519677338757035395229557700286968332741322482052080693301057463631435113332340166450763686641981419869744266281647107588841399277139286725247283354295049722547107360921028246573810783049291033703404497813470553073206238942933760707884540752711122208097631663925337906240245529277720184174056825245304964059722264901265525873329808560434819882608155961069904630349276459742111395255008835019189234515117466822677452873283833200300705858933447943992127054017599219914954538295083059011325326501174311467371939138905580715597073590584652765837307966266714252714542698961872606040145483597251506106526435841491551845097895102359007269211477942131426166955007659136033778178061100713092861304955520669336613830528347456539989015126312180235138781958165739254910696188935089241311782986697661973466593684106982563435576686304239529910803107009250170688670785081437513982610627498258016579371754113298838879137228673725957954281618862251693494853601147538358594671913491610080035459576355632583724821356682277344248320030121537686955209973640562978637868328304927665704399180715157559202099989374787184177828357895947435823626053651221721487118385960331706797506604109709057061828244315203857434605762794360007755722424247405627225672856322441821152109795363098398024991489927643743692211429115005472851242974462433054028675131182990973406748232340527155751285227004451810148603896991953800998064374426281527292495844826123563845407350514081373953075809026192768178131626004393587010717660130215441758223302412148872233248987222319734872829164570880562286430682019099095193932652496094078672633416394052879169249165902739396145258444681683848779948269855614962156815025812764900407038700764137328940909228888526050105606703101228730481190355047483920630660177177428209746883777031602282241086070266797908248840081812613084512357082339349656451605968851050308540103812257859163270160472181884885155478984315549765241804508227151873931372754241976021622618589190482562653047130775394503314325517902846090971810663743663757790272797533027359442750729709350583474450409346664414768882787194827714081606629353505929301510388589619011661932047427426897257836497436467820879871248380615738564755963982718692971511393039018134255192615179747947450194269349022051110722129243080272960149340514050930768284200931606296441147663465373118802841265773359442995693854917595841342496460365217224487119562426788218925598337260513631745457918693514326035751620687155759865100993855472891378195307216415208058254114431025018686809217988182233821212936431814886048172395681522758473960174834234570915327365431636848553828032225935012580280797293186975157592084883634046023168867250519621852157827685581156156058831433188646741128804461667217205599850871515091331621125283900139331589045905258806219057470416258820098809676069334898336189046150346596402624014407123684052025919964765337694859119499860376334863060055048014388048763025722958508435538577420113064294502868846190328132093808007764322851861579101478001307662429853028655092224101635217338029779419255692676856878494642017645448519159432579983767769241867419220262189747944555322034867993683910081055811711225030053452513299786050228973668040655839232869967244672739491429613771336336593642080475446816382358640585146940436486543052631418176070781710710379098212224696371222901239303525744725529863369400244172719230311904731716930442515311131478242170394587457343865160960950241128765871203520257199732242080955035636212031301671051113555329298725525558907590630361504868265159048366736236364663287872612462161385531366812297400652074665523377863812328172224310168907141584688880907981975298568236501510574607448752433954368581091874485187563766740112738822666165886534412641495972492232082406416226910465081312413595802044090132656336850245706758828187486450102599314404648390564200230197609648520542268053686298097435635625456371715633721165846007133217349160612242696983519461667821943775979946278483466757988891462195581640065593310576741413881989846270040878899991744004725857069534123227604305761053531998283589764304268887003952917943477948389005824670271365086695132457761674992349661669485445262474584793071915341831280287608768255598704784552432103503385791270928640433529661639179779826051750907534585002573203468707582387374765791068313273054881478150356063186694626981587694036859659851185201119388953261714546674427460846836445923730950443153233993642952777129725585234388989298276583483979118352563412242758727136550824039941430818855660107309527400701265249281028715591058029190971838631901685141591912467135406166676250615429524059596003831072669159605534964571159069687993065813902011821539729771385452335405172895215724415709006738773695026732015746484320669854883890567926106732515249140732964369585347216606647993104955813049378762800821395431301127909350211809577372087973392256321926483698725899079666242400074562850679036725664947110034634213670149589366811845720909559496280268400813877248660341117081986528190021557754980848196608812046656385489848219506365817646686129015685824388143451755799291819248506366447147996015695969681357844748786285823037304045375440731045986573820501387035295015358518740610376468138097448601748774151219123193858577602883302281395231653046187333108297076663506667941181148385109076950290186306707017960530919550935307926512822184008473221762422260485902974803859856691777708503219939270741912444269141059103389291034627987197181394278394357862220061570206304893436445968198683873343802061885576679362087971518393348442954088108797937305521643497368909393928185454756848125573316125323665343468122257271253345506740551760624113157853924025949433891469741083217767511310083378726396238287842453444783536499277022795044301418098313489519797794915743216046219398709304343792220342726219789957429453588900386190598167171729107438396653418781056351449354309028948568200826078033691078750612182303583080126692256084699973159292872198844593533193424987262990719513905040896314094092447045355209266235454994522085179412216250029152693709723624249403062958296992064145317614623818680065279714925003719667236738729329812717240189301615574908135447223831321524047486170731124707760884176575623616460438497701764015292885275154191051433499319402292159810092436590389008665628117787187430184013816180943678204415414445600449951920580009723804938460545626771112617909382193559567426740380002469990238944672490542160489439439790974273543052448569863468980678593631803666782538421790161558035575268809630170637764912736283930779236811474629377435713124279910058614350766485621808206551111901024809126016125922805731758429634508661185218204995553568848763024133152872811843727535044767845505524356869150930657706760673130790165304025825721789192112764947136876347837888612068357086869015417068848049028448793063650842174918056476029328188885878726236711932656541526740060787926010158695247930647755983970049960071575919061982354029006887942367026102002334570995399466801218649766733212812372980408381676644668709263984461868973944125043998659114084738865282280216363087596219367305071521617479040313836595130707960353912505126235870439234080657591027132118898282308920314663315920948250691929968921396987750341690962309649463661893190440223491447256805542211023410766561180516303324389037135147232149275327367355696725249708712362291425970056425337800730622922417537035175257846343364006963278720563000554381016595196967610405348481600878537295637205209259571331957456686937014603832946195047050356512937618047163850792732110368475510890034063954109067477267033518546706891777012894884325293756772705311141678718386457333358904459650835758365442584198862441939240507529176228702919141255159942334106582332121150934914513750879862432253234539690246243106567093749013915515282605331303122350199545789256677445447518107818762478183480766097000283104122382098240046536569117095186623269186401461005074596627565245685191593014624390248112907433977748596277229335257914562855183592055181003438048321177378721002961799128521211231521014187436519727009623088709036591020686354417713050302574578600756163077509921921641524219288445842497459059219035142184432025452803219156156399080713325746097503392264846787311818359435674480632465102572419663424887337774022447196062905403554154560377527380918960675236733793933662803285482131808527761821639382250433858844848190067833682459936295411325000624261712445195791103824194608090562709930912009822634169637280151032025425157424714399175428855582231321431565948317168487426425853719810259477735405228171286615532108616930677247617079822151755477651716790265486101786031572113035850745669638820011514029167747095387788534703706296382414400436894038244611515524099944275682394637126694688277506546957253414075366998735746978023311565864645234748942034122060758002899497827717692217270834605367827018028542757685828447715095195896049145525923566214297926693394784891467381914930279726729997615757027580570435643247668798367418439981039524237840835099354848735209229623384832836155186110694937106493173727388721692488831530201173243341686164209869375610779471227884950211650997376282674085689680052476798619858450975051104421719825156999168383481255645525175975532390092991912954344485600282882108617949364828403058686855897562901679285323860918184142875044861883015803929929324379125928377156055785742865131581380194527210670663160790517848198045775942499062432845139108941298274743324253063552700993355799855501215410510526467057123501458590586468862332105737664509889238670897984716131211693382667856326430126980359341552434932572778474177498578310778005073898841222945964654557447522374304296711329038932426711372214169745598433512127807534707429035470581798957712755854898654838424054131635474981679274948016512432752953741877713274892734965983700294780902835180250064190658460583182475398544643889167574431124185350891082698119127547659022239189049542599248960955078288628170710935454565438314108088019380746253494455703327572860944635212013798295760594632954410257824679375865565276191256579776280476372147045603786575126499380090497555407365360138023955530247826073354281326117188693787809853167489715517915523547889518724672263441061626915467766269913463694669834781849194801061869011497461793693349940018890293060185398842249333680460520756790147451133322136029848575448068979067903364574596260996423593201838769862460993648144714689673612253756591653529716173705032099800179936762529756587621381512622843523247300606709624511614897575484714709768976246051960849009218934025294205193172275165545363795034791234734902780737758922996937482076915771902454697035295914224578330669485647184511649101675519908826317019223391256683292215510174732928901004999100689882400592015222677932701969069132517814929375638048262735910992108172533191102143237317780152159777225609469392531187817141990892105639154480415654360623999668049332983865118083571022566025137962617055574564530283162716817462437788520550618960019981809037462637153528514624439212424723732370125862072602818798563740704708416342300149750108913867556114845922138050783657963909748581594216317360063992101983953081085650671383141805626293439230479140389775219341737566388383604308771949002984731439085381251479322794282023967657999537682827228225737560732853805196550585924303537972168473526927637740104084377469180433683606196084374857033596878868457544598134110277642539318269950621797028011019619665676819652341942473284827724049986113398330799295788061222847515583824068089542293771695000677884591936491892842974576379621960092734476375958999326990530742238472586181090947510620825560518048635735796796336945138150610212438956402197759495775873284318895652497318521454493743214545995024604495616690898838179380297625423292281286895813583638040498954633235799033989533171547078039716132173289213742716731739464259885210090124940136238367394714719312279658222125073940187883740196150736534164785869575235655875139269196030062273204443952793937216976917113863285234960509641648944407302901725599803322091974315607146408487943137084569816387169863135000816880469356340363842883957058002632923273986675014392057294824237441356771915643005718705593544868905834789849105103283991655213932040585601289213724077450431345715159161479036912878197392369730954278751513386245673492558570258998908757528262808475044675065821691039237242487145214176806183912725882441829374451959172380849287469791820104719234239136892072766946009290874747684871489584531719051577334119979390425560176804681710905752759991453027740858130786471356335493437418817949283983550953754314158736921559673742075736921223383939334569467324299081074355334573053680801214587868262620212824804177263224281674937480095444840118182429815162211735114195515824646273850030235988847013069506826696682088604128882451228068125968198515648720397507804967622153562046582772440763333776726350965061667687574271993568690504468848023556333009374668754326463035962636849030720720234032203007183253445048776803927616575178143318615802013093522001702276733118163215230442752954094612836289783111471223695785679102568139522635873016862359649619714384352850018245791315889003561296162171885092448328873964321526582144456533758516893391143398008946941884999197976136907516072882413823766282807176255943735312247183564007326334705144450373446253316386686177989123224756681730194600703642186762454556333116680571546831470011718908269693682036922426258904866710155727763981810852728630963125065353710633709940609711669311895534816640728628273476810659923428733256371983039046834609666411543441646911999229713921693463800430921620808772814133068990358414509499727031486213320236377564454702375125251991388412927491091534885265869100019121906285300542104948573687657569837726292017168554845274534028308093376208667522923392557560652045890542333409309321808690207460710649000034566603545002869971410847674997132108729835281946166293164200489876478748274442710031912138418512172811444876300581027034012916228306438472048253529289880718004976365078250764884052228003786182817802544845020177654453301651921393284563103332920517965911235067872338920307957375367576980094152932921372219323869237171276438622192610527733398583755125462193387820418690981542795088931114867234803491461454176547899452628958255305389212859594799367855061930526153924617298925457695257454608904048568840417035522238288180260834690473129785525446112777217594393383724413617465310094049548714351015840191444465430521466508357125908350497391838314192735434123009056529679625696106625848379671001256903858796942771217837617804870398806462913062614729326722377810298226819130949222441651366574652972375288119741052671603285618200949540186414665362063794956207085432667120522151383769373426284433419703017724251748380401192719185172744594149402059419776315008437543598393589728238123347957343434522030707669877314186694388169451550122367466840508455627246599829329222004093055836896401090060104176647407135571864523221278764844585532338468177735923543625761130648342313430940577873322871161622029386396284901744189604096879134227576124199413353609546467887610221466342578424985714460975146069514515106339035550833396185707301703730761156416634632660277714705436230879020200875314645608990641503664908090609831142828102291207338248282188553315371052308023241660035785487411679530456747966036579457777165658682344727281701033282600348943652264455147001476180299049916859148988464312200162398651573257822517068630920752498969572216181197050208271009554298823326560094080814911056066642610376219354891455038289791554675945374285700359727628766040632120980639164416470025688403777314185977608496078579091287764638523896815706553851203049673728914292261082907387679971209783440358692426172470694784307075295101442670127192879380147184711801586436910835150854710202724262435960771140986285132935925360858488473152487480454971657793288869939279990685066430173214982811192991688959512836366237584834824409686351544985268350819382501389305856505412435575047277139989231282554307359882841316344990864796310472303583593907911369529432549202833232118197356919582236860206311869891149425360029532764243310237716880113625859780104871381582498654658422681576662039520453213167693913670772819055626462752537560465192129007726127350046960891653651063495072038698387855898387937747035110479997388920291709202168475845491994945090929269022782057552499288956163686541266652172553444967915487877115005783554712566831358960621834319749027772776882254075574815975720656840584733688099602231312213631447522437643078538940600259010462379343516824485111393048740410474679050595869119698364501411406979085859201075457397229237493694151702473335880542092158819179378950579617982134091467627554759513938666086917220300232420087409303405545457822978926870614208312447589170415447472310730989218374028534977981074905083245645659458521523757369162744905105809547169161970774616993768901855656360172243158164915838401011009404395160066906621631165361856110358669003675628498981542726319298221434064106081720182431330084450620635858112938575740619830155172398123649649487125354271946728513848437753911993462278937966319355435502680391548390458092132869051361754589938629675738221341552154298879997719927153553156757579403353532669369288693133284200468967115287772421459671573854388016516904265954634960810222800299600000458597247389195469945786558291044287425135199519209106288719535032889261938262158265464180988302102464687650671143313262633000477353816925565823847478526370143751509529503241006926085414227098054035052339371633441417605013140265216684190731243590568675626879307749185520435500646235301228639208073020840714270833696831381111734510250805192684223454886642488745117331565569784561388971513642478192660401309969865490894072061452052708437888457846902173761677813474687223253078808738737444551704078568528247036625756520607574172638684930721400623860768379180557099314418179704412118817098636552866692590050430531604556447558031935525444563363060588010135323508112128117945798022753011217982073164280483070585690135879546201330323527284881952697457166192955490956207848776638870612083204744682719296645080573130341643057506940218974321532114370662613747132475779880507614692062338500514265421159752181098758949895649657863771168609419846074013063518010048016478139069025618035061533626605104810426095210486005373737475419361338177212936823354182089550565291766678821267301689850686970176084073514560631609816031897252644579142765812226848984446090605881359971706773597523254728690237037942310436066261671449447789831469346408340390169884604332983931606156802093747643714244687317903951022324685821733197435679559268568336931006750654457247989129437618552844152858730625768938581695813410891863928669023106297371046704580116832162949447514768746685510012952708079849374216792227608728482483317290675940676484838387397454111615401401352430652118917676617843120666130371563103860241939883646093535747734888907581220246482994677073462541256020105431327123494676758639561953566556897785879334232211241849778936258947933920087855953446825527072574852839369404995622766276266671197131666629004496525407027127130551211542416580587961222626168881329841346136612783122395544601558590531164312203990928050214954035254252985787011160726786451843269706513736745006754712159035829937697509059590783735700354959709687698576614250813357317468748600315772410140862735485086471545948621756810971086762636414424409800100470510885339545955828566977072898182946048344696092094680494039434462864169753697793693112152607647974500219336155207242721431274354931344419248061001924175567885998266346902091616013545769629230930158030166641865607881260449414816243655664200412686124356039856242549323989942216178589921258785661529059652945153336019553366067426629768308722439973385648407788772737599982733494731226948392183629574044611309166937735736765959959757572635324346597692407354545839131216408089290862618939788068402666050822077363427412046838993204926553661087650133314052657558113254730781405560429158659515443879617601210181121036804298096562153252861590944065234172894765464023299810890360403066754947681717165324986979164712134769197037941981217862094964740796454392698316151528495714303266063948464036805500466973775681950505800676353827093044997151661580986935348243114315135923078804772134378212097515238510242637171890910008455546735936085227426020429185205683249880201613539162658200356908573161047955895894262294053389894581072694942555585845146218638721915817289872767669149251683586961420091171235763307528466169310940943633552127164721320267754210362867428229930726727012080101172901105564109938658699793527673401228380046563729358734900232378084430190961273266606053439958506726836213373470181003387332432397324150875422862593026889626588700286966460577804484643562559112010048633532984481975720705907210990139589720998617314295369428754743109180772991151269223546866633401995276639046306236405445245129726177077481641692518552854588543454072504511385298698707323691431124677740026885228793514634015547534676309835666357262499349949173263390058479841377784972339378598358993000955593658955840251605123066124758054364046528224313971847369086225964159196138996794676407323844112196743716349024385159534503309451399277913904849141994203786180229040040904932499871381928888506787614107050416771410036221160693823489793468069619342915024472275599385601859680648153439198589793536496389295852106115284688083950701024691275771880241154718772075578208949126091966726380314624854062416233863391286223384647392694629161709347191988251225416286829251740467902799527763691014639030504583557367195664844063126762209985838836888145494436101285093651494297955108423752987185688623302310976661569309734477372534823970655984934035741717622876598174062958194869376962392889555323609509222655719558756981304739580764345975616723394996366117368952789037797719421945429728817182994023940235367659153172962514332155416773208995633664596320501828529880185581959275837511948313708777741513827220218684428642635631370198851318660175536031374067525987687971479156562128916312203210786892041671537019266165732038504496909651994275788128181286141498576882159438648984965423883577588318803374932062561102942087791485802465432659170332287899334833820096989085190503630949218857955628527830054799326139971886118917669194955882464553257571454594218025206588210979882944968307074595497756796158922248044113405408831288074779314526514114052841077515284403555225456644586944338050804614284652382794309465311357465901387974613668014740546616457002357896936312311347554458345778134238259954492685531144756544504108164343265671636145776195193754120210868020192837870455329169862697039768988224240035575319300701829699749762939024626048284269071172756550267706484756081427029436334990845424318131566911474556963260620680925744258133226389366076796002566370977011788454408170044982862051689815074970010920958602593709093754208475166442974173425183650880612279089790548914796570861560439164251293163780805111540843084786542827095382691283587704932461978956803289117784289980366559412571906474402442630987670471134558321038890922678529661183215792852616619123358837358134772430891817938346294852958402097244432162044866583236737655212384571453940423358841012202834951342847200032919950158884464826105234861000696926649816150907461163818371434974601237350105916183836445086865970381748803562951482550940914701761753206513605152300977176532167858909484259322052210906700882874117430643949932087192702430124452304148167520772715818015571823438749606301246930329508850336590707091115790920498832360680580698799420996306348707361809582303531152410847801874968338877044369438568498039596437508812676575865715222360821245805865288083129216035113994444700488434506470188438530517962620284226538184802765820546350679916852188002447377831565377777750189146312553046402789872597981276264936969986855459763088155128312606306909195689059956621060954501740351543459485695745981707623479199264832373043573753847606773696234047869575853743266715059763140560696711372450180457244470093245953235626823662292339211019297737798995708595541201812363150150547504938701399589555825245025002063955020535944958977759477033926135096225429888528509087707892777075824817772269408838128303320976645328687098126836268193512108377722040278441759509517552812722931314385451890736278455497050550562224132454047572746347087031697734245264153859764543496567331900562067325173968388826284161816428964127838219623889464651228401485819163205004278716087011358074656510907273090376302930051765828842638175245556081176787723487478439258285487695842671093372353126045041675622821298727618662633652518952763563726984640003538106892419703950712933048179814330225947093131960898672997330612189895462772647307759117552817096292959712255421808347583592263379105045738881928815962229370327047278674510021563135868214786385722310607928271624346868684678921615913154059431835967822435006940621759159736255161500476041802455861246604255130568090985440507434478486663701380319116619833367872465417486223239105703982423162979721474493166732573634162294533230200373950213886609082121583644877992829119469788843355364477038685017907479125408944351196763873025891590199929210799980900088474542240420478618461022464974404773313483200438569952632693276969067371078592339857455145292113814412485923813846639405882999991968792106952291861788192881853483542471083557963580592651652110190668160985375968745981811563296188098255139881338414941364225211091959365101861641065697758664401947747479471892295122181747241470987784860938878202419780128792360096776499017035569638623433702247812720268553992135305601961874022417893075965526399666725085157970174541774740036617327496702546440104397082333666981965417757930345341382820725266043313363394315946677333866712617682684595114498145607291546594370766359122354260212154674955143256653908871128189925544567901406618779655010624597374870527363817859561250425320647937901471064127180189905367368882588428002637482663682782863184849789709804454402063049248286357689026548574001412400717401339566797176687615902920181433309930649383178759655231999910959065152864788814852638792963767221604126582102865878501016812137982435333198599465797086698702823730477879100019353575243612706995872416246340443109985394846121239534471400218945686864057546192090685740914376523201122220943085715530504774848873493858929891543015165308311423585762672577770115975003468113195899951668360730000853047063347313942963902201117326466501761561088571108849365021827358970723920401430104011691378908189523631142622772665674215567532758184941203461990990353837672057460332562873359000295780973817836014001980494977318556329713168057570208533723750699398531030756328308787735171739960139509875485956533756042047745182189453078781338484035447560195716439728533975749013809940922490295213003887180284474965569561486540808068060917278891016595441138627356739608204290547402295114133538899944559071660464626802692283495043120646165293001586628557068578465001064419200404873520530508528285069220052459543903094382313421606445680636047464059276908986105742323732367435037184393912648407745653694721081119176457767261769804518890320390727438469943575966080916490372505570064442058859333321474374360830947778449170218972156787532065710867566672669180358467469401548837696286228959479780336331591387690706055643733382799048744222299107188908421749010749765351022412925929090894691628705923647710367052492267485236653745241616548061028643019266427936344584703012141055060919075324524147851208329419069748984057006889361020815538380874886025049911106767611469732556161288915035131956294766940153490357635072432137053134096240236534008101687860325707043934487052583382887844532949193475620554913038504511166442709676739602623978198251602172984052503062019704830408600985031302695269502905282473626949244091016525390455872205089799816686796620804908959742926614463592174687852134023959385375668941524561740143495577338823576062108504954222876975532336604423216560451515811710467531864779973263117246609645840138325128422190494729268998356486724679003806048021914824901311521124304553252289950266716225334353613137551338890862646862673210344001789648032109769154120122317252600741531490468347042649397083622417426355558813363755131602224226910494916298649629215831754907812158466751776366888912627638711519060012799438336407624979133031117468090516604950863030784981432132918713610397237679182755374721943428051732281207948337495916115642353837530288397936910041307528996858621072351305628488505713005638701235598306081263768736865206537593527418584057971164532178823265431240721384598353570287095559376706566216867084109202211138670807951902710710502588039306790626332143999663675774771831340317715517695936290147137433637319170760233509530091792268370316706284659126081242190318072777439239489915757246925210127274991166324653453410002459610043765025951075275419930871270513016371247537169818665248212254916440971689424944458507844347297344878876478536352475672306459132998428384440934159111376311498537150292744440687931470964131841765250091689460391821794986514472800619507814093385292646577504927702899867999779127170415606340407522120539060808109921228145489539436929954795304538546688462484129213085141633869099455066078974067104374970029293112727003039654242692601545473985359557095475060139293941557857988786549702137282762734029809676884261688930104925097300684188416709418996903480317717348719054184434207102083452318660896802943424400540816907247355905433027970829939241885522881594799938852674849024021377519238224273353125301721454604351778447756117718223329242841355690664900965189560382111567424432665018238062914193591350726244153263421052474125353407401657276072664380864116723969034932604115326958044100387260160820001932677751415707185678489499900644506418562052935383944760230643485977213702666173986522612287742902270845578381193666547410688252331413102095644902608431455514078411056248283943874036142431487234253260371792547384707183700750233145001973877789283026356645099342766580488987995606369987474581098653494421298912151642269037391773595811825227145026620369571669940569662862908241152535289118822780115906140438404392708293022253111535944375543982767671405272141431861283504512314318699276607184852882462438859670569181384721454485781146962795997027291476665156797326001581410450045148786802918735924660614721975555264034589175923076993898891043684239126539938924847630066329096678278340184829697937248759064350367484278714465265940521284665896206946002063330474806858170072141948358963700403808937611189476379839323150766429425837245491769431647028045575831703905895095664577236810031518512046989052870438054009109650200447296743844537074877679301364787974383668775891469068333154023418168356086321471962148696253138112263087644952435563364312364090111186207581637460819222353086432116632775558217181589980415756965911725306408081402175604551090662322526824169613006450764388446371905288756196605016520226117341185268066450287763778231741065159091126614794687209228445900128268124658585569096762350142338585780276525527925720820201924939878993535511278565499728807683233354755273239636526758115652450372219626708560521050443747616058974223539468070545493976350095173091435409423775351042759894498346884553750115785091466312539146054049419910330919874298938715184531046855273220029357748223585300259911679949553062222997174981027184374498482257058583290476489411855025335068211527012129838114368072351098462633625137674023122389340366271803949066576559991637431860927579292101914141901779239827101984975960553596993672945043593674133389857213841526227614544666087036982616930962710891522091677160105839104314609678546388855341842392911939533637537474794069586511009189024413195470491010033905305548744435565635123401610008343180790480322073024698937040263544568663106800381579674281473164117234622027778283225750419721223569383535333652686740166927842341182203198818918853585392795922064804991731282604816110203018125623562243581448756837882964391651626464631316179782562450603715248162182571844878200055850298156243586171769343156780831565745493490286286746881148625706990819238775869859312942223441891581893339341213463409545358420708099794646529388938496943892075791965016471507552852170032175247074930980574972567172218368163379748277459889504952873213540349890923679676925572452606914701642803733766484955129609205269643766814618302298590959034237415729018478510951413211760805708639792401413757813997226325237410525697789218301828255963540574848531089444233815149191228889018007095387858990099924279477140493994204374480985750911989140725124688753257331020236512054428246882596080246282541971003266801674862067628412037947972428508336693374879641425721044564468580718873882513151594860011871948115545324398581279150073309987375746989610251611669064250043253994062202866011001966950341684294199903440098948299693185639698312784491875879310534804641353645113814575263043799156766900229814747583774334214539995959547642242947863094110582001282429235022263496891150027348675237288812965199694621998782625238313994544641669789056864180722069933211875030897636115242213157223120630722168796889397544506309966274967962174423812780598229763528914675532691911980508840192488290303348619730712944436676492717972038239734004502255700684990214107152405237367835407866777608396249131485280084147702194666244653577262755825002339433918712681859330675595210968416158284965690765118721932680939505179504026276972423183609588160029681310777551153759500211922707728425809504704884920224638444086757829740314703958250617649960030303062556261628498481900970494677525601038605524376892923608365401923191172836488383552730170632829503525334605785193389882239283255806252407319575056888277468357237488770424805501825221101978645564660035827948712485611390015517936536231600403069859928954232707990915542475759320383401275862640751013524040284490044035841452625031028405732236254382102878275479333779963758671312153878960326854611427567321572042667033319366894036954564350196694298725428079478396449578224263168804308286048903743922725442618241131754237258691541516154522377778866144803400709348777226108725885086395688343438317557094429691422105964371164587549038747211243685689798190945701453017817440663153104236090001136921112078553803399352133153113418546782850796922809974645679603581653676540415366958989835805010926264810530179822167518555231781209605100036330626297810631459409696874859531482298604045312514512245071893231043903020283776917421619475923441705237283674816724260756194946170523895655964193084949924784586876019965573656472162611542757001955760735700083589790842708685406988754034576418303335480960551270578086474392805576364156552975857420460310054346796259551998294471790102779569238042429664749776702963791828356589533532818640718839340381470777304274086626075151607880265956741709323479625365906836072322037181546873992490391300558460482500207240508834742938141120109487305855741144478270348694678104883643481495823660564337215348757691431892605154445216884559894117919528546829342057627771945675408555635712006003736373996026667542791191609083253438340477600213309972158464890745246220600782485485253123683691217808180813127535210701142080496830037211368035702834988785230989145993660146502574576068244665589589576400803732024356347214106000190464465813841968609365511056922672202644318128627807324410636134602618627282419871008732051364198674675496631704670341158339074747151934610329001032527067797698681302976983234877200964154866510285311228676954394593555167684963946649179973712529164717827913964824004252796192047513960615689444214274373041128579829638056505934422927116003050598643706574692867779326712689673216214853002018579586943694628046732332946292053726378908275180620363211296239067569824758965033785030018178631736455460729480715856935522882720071980591067502804347158162459097754693952450228588385941040783643860832491682827695810473578066044874643846039045007156080154503212103735151954578373962037665164609159178310106271294296563959729948707398257082907898150713936853210211716140664890909066564927403924561888989164470184249697190948372680813533841086271509111230496378418761011032513037377880812028812548347431429581084658295512390965201450167934562162901687541706589814961295444315982270763477777393796405248400339665223841174647142930345772125941550959319923074320124179535652053143990684359959128761517445749580073670565739874988710067187046655279297971890832186673581413135534663153966579462929632638715201405987603195408397550213776517770426069369052773686803217607393201335683415217304795245745455058159103117966602279510167790381860700399545507619803794744634703789737324136647630662633229649849916509295069782387141459713525036792380406176567741489255780197481258124853659256060696130070835519834519910436479078163782874144086868087413292196358730937478915298693550861762065083794878402718498909496528694456154075417885982889505197587289616296056474725706022835875873019890714367298915241382933580398900406375102331855234151998842768931710099178890297556357638007018288418362327807994833545281069111084239216679184123464484969558003171372296943070192856478941913653163138932350155100603906662454636247497148614124317188982053106121264596674561002939873694972774505422481469433906792130874691003969272816537462278326353369191219953391044496399704855005505227903092456829106676616974990573799834765151953281976940655866211788245229765764662192803250741604283296760459452244762215353508774591641833326610649680582034386093604365095649918700509303163836093063578798346865629141242629829072156737613214065519688201578417189761714070251545484290294519601628734814471289000331133176229680160598461384879713536530305476480271681743190585495226428041722938575560130347702652806970258954612618448918720044858753379730800649161244046376067899861610001613298830985734486994262257481817952778652410492097785793098584443348234609719332506659531455506305027092996368316293908844166685352449964639147358621552874716223884416825153825923370122554124734289817788110287828984586588971725020927168647966066872575114308878607670669672208250494588842163273524551867276388491977330394202584392569641562479867508334532739435582106784574280936620352436969236493497016938802993283081429286295835096337558947058798376461673573273900750524767960279341505390611398979887781496281109212865045244565814892810848993956198278814085306033774022677649596821121624753896471765754990463051065917709366026949479204242024077541696440463054797747726617300438115934004848508884177488270576635148791664912490884520271391836025854309708982097198059410585470208415407266318425361493321619462193074067622347773066276209385756262499486393569255456616830045819170550713823593923993785547444654256407398451024033930944210943173209853199226676537836212037360310747123060397325379804967971545473913425235230402694028376852469658458946759613339830478759099466472740256618063446305846586363219626291276116184460261648234473657567377229436622272578459619905040847741573732154992768015148409006977134725198301208333032707099774155858227800483580479461875195843688724025823636949724226175229962295648319544133478470769320126780255032750178010044243127798609599253385444632317194708994863176288853647361879548692068281330594727920370857266909768377600370512680091249107341275039332981418141416012642105945972936922338599344188586890926322391178549173265580475690480787912582414973850805470922482790881333917204935621337196993839083755895892368352581313976777040001864128232532581549386195725546464816266795831051506388628295633950079451882933200947387128049274715197954626529159999716563278783079334479787104259756086987323894472091196910356319208538171771698503909131682539945679327839501439039014496397678404040300717736568668240431908794404803842635932564258785528747229287693742906837502924832808666758509203280199315151792566314726899167717233513632659848988587172442067487122243215523209777179256406396138542973947463975536865205054185317600836227702449718069483657769286297278578310318310721318071853063986359792451956526916930679806481463217628299106096698440284112072430243670020179709480363418278329681585236659480405904510606896315438485934362663301974062669021501028876127236476007565117496134871700604324284852788604707152732947013824658850166701340627666777805322087853184881433039655701069499619614573871894400006134351652940423687581005744848516509140290228080986994092340923279795482382934683651241140983997456846548946624342113290249826970458489563051952618616133252460706612421973755289991345900548667621323399795098975247316900719081392897143322253543340514771069832390199078005454129508923511083890330468620048024689684345296259044808884151769742918878505496096314831867507429341593582586992338316185853678117114432430153616087942535347576352069986681721258694413892605853436376714742428780176423506428779559668657976916917023206738571711696279627787939377076986935152599983243466237046287753926933642064736939412129399049071349907226423642484086215275177842932053928465887139473243543850834152521802156966729832993788217590062390122930291523371119005823486196211792073195155398935841982544330638561738109815358461657053607884151470688911363119662007456640682104824864466820010705501943774830690794473255038152145673778879279487822574712482888380799025974806131263220893926498504828706365598925732305428915736300520514636084289267519117161555971981245225570773818376906036020773669645336019779817231411041922926368871715103015174419414184188993783742129634861515297215217351155558444136509006029565961060993363965719312205697640361799271709639358549895813461631356583828806830145689311248041447977372891607013043576832247673809290833435999523113814019289173027533669656481027257147601644329986280928303548420492299573577772456549396215334745732380406676276433062147362370055476192797646052099746962859646128555210186816341856993658037217389071646892962363342969586165115307364382646800868925213045735385979712566875283921364129227818792904708122414321553491187358760516281999992699504284362603918443462374578903632228965862776439270109828429161088883043419388764680381673023785374149049562859875069127050263503845448429000393086457183666431604225860836722428046109425583107897613135174297147593195931109680655497514085673308539859308486651401611015396121822174234419932376318639359444962064212242987510684375033844871631680479006010448632238102260718232544909288056013633310358309406139157817043652312239640792083299328509548640307914225362679980407243899542991264082482109229161247189724633338503782757300290740260341648217095690670428060155812990979597145304244671141938193122479141107075529017816151097585520537277156830804187580949903281704217542382327154455306794446143757557696325225543043213132580875497540727948458261234169001316977365894560948946215633921374495182206745083227020776476783479674495846423040698263743242994686747983589408965848570293828299607354740594341716840649864248224793491054662531244540679795118135809630690350125365869627214505205727681813320317325960809848750267733993587487428421010009000706221098870854657345629862259523032718999367778557416188217715060763156867170327709632383131142072128526103106336285850137820556376020980377427689839205901373507453358194870260528044684948177355407361653806783848558254984833325119895338143495064960031265059329573644688902006601588351375541363456015432368925462806228241747004771595739646507150992579074788676565975793121519325964120666079868427272950309216135903760544574619039123082930431437363372610763118086801324091436702245654621408427835313642878593153761875134783309594416760261149935555438527230757967168847782665482730025640423743262663967620446500088621911923292568222584435389882131945020213113556244631381379423412318211317331851233072646982962655209073218661910422397386011602668792127798076528140626942820569838593738216956880201723542870445624282705325279571281650292165910800482251364068783897128989396100846256925323022589878336851569715268838956763465077886566249961083329676546886299236866378165437469746333338952380768755017724043684124732009305681269023710706651551680881415980241032518327417304061856312370673268143964292722273719473331470705035017423361247249104070532247742845842340778204568194063112356697352210529931130048537906996936427236629027153520685224955391759922401259994451387325085712462697274942625366505546310634326747632666987649374199511767385394153203635259915077189576070645152307212530586431581342784883165274065538793159495128454010795562331580896248166619632274705048331655805506611286309851883504446102362792771543320196549555663242379929314979292097393182128828752693602564705436737072846249122540577232842202381734620730793710474579818732965054082219644961598214958812551458742245193931585558627016763462463442815493318012891872860571795536803435401704004049627662432702152682367968916329975632234205095873818673135654591085032696553638878837363481224256909653110839954725065035663187135025610653864956772032651216774467617357633894827662208055063197149463133333251302702733768984990650027045176259526798309732483422679333307806629668444222721539869410220645544064329425623935876395321312653044128134012575660565657066254899328671813854648374798961453268131165407237365124802056109515575842295322411772982364630360364418655041066697829672490903031448365279090964530567696734417941003665633352778908340117890899578286858600754178693904412433444201490131765530993681718717557280844898939557009266688963055778015395639423217957846409199300985505004310086039968889950471613519274695969013284897664833098980195716658369558238065363544266111835478366890771532417477956134886995539180826444967301083223073548519494703836123027952985488390866300910194879527226966760587609022752496714429617265479313069124607514425831845630856672278576341499669124070275508255083989505285738596438288207973296104822149341329232923174091411867632909422057876402211735824197926120659717476479829318366013550115147677946768011630720743055290908214897665422535509526838949413840723855653342446526298999257455693239229056006805286235891133173463354532346804199367783681144784486965581615257697930204014120868174902464787412282257414065780524349607444439058304500995543366727317961850493005832467901126976131003205564685317161767620385890315945643964458428343834240775493307827000656085668061010906860318429595663397057145906063836070267326416634955514472680112984234663721641004707269759492188757532019480060039833188429300809009532959176387535547235910642448839912602156311947456338696860506100655110836354676136937828450668679835210908536647872268599957637366556026607255045820449929212080904078888779230453129086495295088870972932939658659191401992215311952201194637281131987202445918973953017488661171977029093296974213395447584261986739889493212415660519590078184814689041973067534145317546046331462170054334130222758234560891360137001595287667152357719688014666962391382296913631397519942296336501015672322948112195236439152194588835945512596217352031329908645369210583668478602871757547029322727403402843434668129851109023977796488180188736794862814112498336462364532271303531983656011136651573839245887724067792290476362345816642780791820439883322865825122454661573206520996554223363472274580664500869239324756155217817955656320968455818039016523502743196314746169194618683900142498287927150744294029209981680435896374309831921935069147443053238910637850331986633272904237661267979540092627123694513158838660399487774066742069564722101815728271628883710416331006238405438537601238576705733502945563563977726342304694270357713327755128321039329840711214459871060391614496957611791977495538146621499950013967635635838003912423021183147253816192524048656345830145509309913540450712570482769743204626601546868788699194628259445223853874757907419684051465852435482611838130133536679452736902096379115681760127751322875419017509403266021839117613379765413515195229272824497271831236065974483737581570798854138167582370603013576009622481587712897064133755218753059792018824828927832206555834559157452365281860177779946924392768664360236654117145086347973945489691249523515555500586775860096919232512073578556177452835244796732441389282828696251928779656169230274729100682450404109530108425815288157571894965721956435146770231817086176829830158314122616374982913171661990011778845936787335937394206475000411942024009562006880897763139910667997391110496470869469655079598360991844965749802228175580836137487316105661752022653251452779381738247936831178578543862780216845219358267621773477911680435761965968998953868268671620552978582017384330787547270861474093596982975014333164098332883063429435647661803751340791593054769521272388970526362904620116915783923993894281231385901302348389232796883601021817220808286131369251810938470810851227171510476331017844046813774435436023472226778515590170505554809732551775729161485408725995309309884681023990665533967882315665271894092531931912265764237830031156915384115426001339254940818871460996531139318461716372802182191302924711206570032434092218727943330949871002963676176992669745365976942879016298126487580666510496997050476781841035784599417427669796575233841806070386878106501098941943229600888494988797588239887874835496515444535639554620286115977392041950850698114525235276551998326203996409953262022789917631627910499967329549111631375984900945248026546445336831692445349407528573229764586002181847743911489007954479881672119579714736640795060912977782812736322782348639391361229878047324291436916935620481248611172771684619653744769949627551917969001526766101490657105869196714153663607686639004244494339728350166642256123934497332465129932221365576037563753477495835981858981712601134174401381677030780331064627762997372649339777600321766836125433500034070988759607605261201831869302754344625443425347223984823939528304787702110096290050251711145517485949242224167631115922962634395275168073260664588426482189949774458932331653386186828541482434982480283746137300348562614385185647293730733618430040794343375911138898428880902854446504857022018074753232940128344925152562912825005619845865621075629013216105588806537837515863929151323511492945622846813865334081363232118140913124189060497420905382274963608649787019369961822199226921765499791379262870016647079525196172987565583438122336504060036471805621941057804325129687561294293125637071359614457934262944542280351177217410790060177698927920889558477232784800441393230682724488162686638261188288066388523864130868877759940061486233338095837587974146541474027427966467907757886835747746143737941162335498603388750028499569449527113095956356078603231597502934078830476532239972510691121181893376664430816152344886060770871442328009723214786619965904303459275418132989820500059667750920737207369054580240518537805115181193431715612703892999445398800977349320962440407402226558970175702872828057934633560027455799080186750382917915271983640833305344398740215685746612659566020330917500986595697945424370004825743398545872803196259873230196338628958387383357497318179420590873193600211961568325921573249004388224449171803181294273359266586468514378917296872863439272850343398719618271334203464700280199555357398200315070742890984560480361679420763261814688413969287999332812682060883878227300869088572897082316046691655333881565130809437199267955153761644226209567645063831141300956332367242082312858324805235174340333428930816401697222977047375792473928593994007589273629817535015484015056862813157472007676256951629978995141625526830278032997004943152706212831346492348804095968974250173025770211127512645305599329406136110663306880967559781902368030264261875028908415072905728009006984438317528632763724247378955118957693174374785080679912925170233463735495925020878440378709575098647352645563258464788841948950331757605143476165844812771414370435929838767766511116892266385167314559790408630547225553257223682409489130227494503194471242969667083988116496153659307894285779813702811661653033201674434839805642925898662116796043193146367192830468118851979099111126202873262812756374661716760315785359931306658112218151415746131704713269381131940868144109764664463480161154839513918487032175520055722000453377109227283909269421268929816657617435209470999903214140838595750392181987816145994437235606103740568347423928541653669607798777677309027486004380325033484138973359966610289187613116760248127102199941466861005158536283690106531455187237257898545465515964775264433764437854846589136875059451627485322998191449288026985442698653845395299472193648898684047262770553269134156763045452980049754430916131206204670007961513397543968747738908015505272409756670616328725669920356073257942637217687886767093596745819856271034353895878212813977092768997027147808666159949540755578717092028460694240054889865173556967549113021987064300054937759661390140545123069676591530788880354188002429316284435752001753138321069982370291266958784831236582494639156770841828955253572447750870087848177596964088337095584936440838946898526014525318499450450369529023794260652449992174459963086218950213137481125512623731482760994895943401284030037957408508243844166815054966913530099324353720388367314252315878086356404888931228512046574324769125803047220107984551663563939412072287620112175303955822730250003029062100004765277852108799373632111391954111613682836615482016423628731675853660641271825867582059062388161965916362702915504092430944474211999496523643833581352499159945639583868735456363699924183972668725984034064896699740532263298806072262138545228048028221021292975697881816197726682427306938254602894241975895792400548061443961724825648083221121929616355620538009813078253908194139649464588721436704516279616156337941032152474677908307068786360842773574472296662684335222652750641252604412412521498228051196724092559203636949432435341654493982691636025168499883652229212849697493816068392118357116332130297443459330387779269672408987640325549543692287285680326001489443598961504209886266151481600396609415691441834763489500431733861680843410343349217592955339843641664116787854486140561425912267807639185910157283634392978571347326439359554786601770938123518600874918631686665957605995495153198194098864747448518439412381105183660445207854348341605314632318907481195870623098389967255801593635858930724464635822719095667275272483204460651921993465519716420003136033817890072587838988758422879976302692840482962014040361868531394138975564306579618627373445687164267517213070565691261890240641231515445858815768212528660978380898260311045892291264421507625038139287837232593912221564251563632304299575073308756365852354126457559278455635335277731045057953743065511666271372087226360164023588342929605899055544030354693495201262112217244818075189851524823161435564178338164873396731749477115717715826551344472493617897247416728149890035824732560064516321097069673328983976140084866408880083180375797131924389389174253848308130108405055282382306440829620929463432528012404707154737864334329190838125040112199293055878669809427244203924759482876577095350993971831132599943317344916619026727730973955247614953683139882468733886182158152564353490698145969080537059809734189124397023642202840362972306997827356311368649073875235794373358531374092378260060075234699221315293108136815016839651537495356276038272510851195843016635676460039701992330429221198866771080500851756342994462370020103082150604357391484959854638121280317726686898110784584581114091669980048829641690049161850839160163581625177853716115907129230201326209896279308910327267016874435252781320921806339605959464007671440404722830801515484777227715672074772740970735476812470865330858475804974003486908731213814213263671265699863396233770969280311805412466979804968654012119225228786631101556675766334010629589280538328310676410297787328586923564114941871681869040338280444517293526254779465483827985735754830527342891299883775403588958872421645743340148810883770280870688431029554361814124608277915385617849657417276021592245322548014898200537085580673532365467257863771502852285915630096515933554687920565307722237961179405108787535077351073352643468998628556736127914696247769030730047129402648536211776038678574358210991491948403197120635890215385325962342914262317192291050394062291417157284310457720303756801348533316732796233683278440137560933178854346271867325701965627297820259241554300802646957598940555784946081654952862899021534796381066112003126550884954045210741462729412721246523552774111885909481338717142987247193967443277070269867355425952989473213730665645316501684633746855178083020433264496806962367013748714425471208218898979887196797136103316352092395230141146694067948625107062807117410670450177847029840499591552700832322951401373522511496838839636303696068628842816147357750961038205173983840328118201914977998142686190690068760425453609891773695783669430339822771304251601006549689229607661252954892308572033832697568293156679641185752055613464674474854940354353541136906994266260722423910345867250815626445125456478010526952317284465775467490855095692115329618189383890305120292521017982768395479600187395056306031973925404495390475916437949095579047652429451771385969227661568306283317687275093911907645026960899437924584924306548360562072880604238878694766055823004673206541189288879850972164909211925198480134239360744085147146102651351432653290240756529805612865977824680179228058533400768305461755720137925497133390530298150476974477747214639790985112198210497124524862680238747966405458145810713285378837903895994557206833282917665931483537908934697067557274900720768156022371933097875558916130911781816700204796618541645869636157479746275043794837214323239396949496071371360520885967621373309138845924242415781261106135741721702846894627411582622176690244389259714404105342043086928420784786202859349469045404632381721892586634265868124488894346853814162054198887048137098093955620776679311172379899958058694380803955048522473858441709880328287587195436247242067690873560870415289699979592157403256268303859902048912877293854350312613796827016385003080295171552044712113937938951609268168941646304251232713203622232791169184589512398789889392743613208688726194888982522308139344693448693234821192619158674639450063145898332489154514003876005975032895942451868592486519584115025024290421737180512766799005535625056626038856478662564115979678857949395045041759762075368728345528041754010397382653013141217612614907202825394041995378153271559498250364009062056776639564855455548639949007402098422014147139286587619379794607241859041789508842404129501251237960725176831444532369183162577243964896136768722525527238562422544324455138695981302981222476203895224692160030369166140234862200788748846375409003803211584111652938084496332274526635831717019772557107954973048526543002751760625072567728117955714891946818393490619329876208862868203356933146841214835586145183119501412157014778011799224437711232975710442147153125304321312847785071689803114863493109784278801207319576907841482480261698772830916253126439768297963914807937215435583656785120411358918948124869850314905997932316097735710401769455078547937260863091328478318071992808552861829973994490042306005287810062492680799226014468991488799505618836864038757080672453059235375001463835344081765172092361976701659380765613875194183094612273456613498851824813754834881426276646365688322473086266701697149335074279837670812666774381560770560479593259607330486115291081058750535303648116174230374415163208970293455378431117292348004615860010165477362523514453399683148745825237256040836579702533029118109645185368046253616967503489397418148946621309155101454472838413641434431527375806691893048471201529845912614755915265930265064610019625312808490391721303116388592751021717806605530140265272460368207236859400164109530377468580172722542711604674503509744189267656560900815417653881145656133509277724044393954132052709125867261407116018349437719845800171423905631815136996573424026614878816716569353286342027160654132751446476534603532079884171860789455717026361336906713229590144365012644678883901055933498868167165700339018231357312076269998150489114667349789830080228429177132148431651099850856861306801720778182411425869986036327206474655488588656958001382480265144146365074085190576732069298699432127884570581662768622902068499027410571249384710281930336827991677927751804356506064109697842211534168582854188494787448803242102037433352146877399277048722772463955298424970910554983352014361783064297305124932890341222651966660700262105101395968115859194515599630511183547589752411298882697542766474117886001462285267767171512890134518710317346889323811906593610042315551653406532798354070744494592215965559000661189828930017061061600313748017512051598409516375001718181405083786856536170337947516860605347704707709331726584477114677101462557345192307858302401868799331117517189916319441908324047111635358830164362399421358995459825671887755165817852533027186774735650999605072178378034841396968166985374993328957233986751715259032814061886263200240806294237192070719998122111785993196079096967181219738244289168238245011695596105187849948555633775062529801143019830731184564244939086613291462330762692893630304156331076378823360206900007247247310567318384861583349698821268158038947204609692259326696045778098429374926693473926016605525091226576372658324472948213936435118363695324828957714086200030413685401759783646307278730599641892505976846012764707241243098316249824655171292128237356417168366400639259191374480789157986281092660665496120460159352783787090452168741221581367576783814355160664424120849704880642362622772355252777636883083492335669759312476968952754082601749167603452331048790238105273953712828271856000307810953454020726630986415677175191593664173682926101618263468866043187301372948285534966831702420780300418970981530318278668375971491465415739623651362793854534940708690601474912520908795951632145033988791008822264824901395166343725439510255030572096996327487814416543241049028933417336433093798964662109259672728777598215819782865055254344200247050503689095770950537205574996859768430418300294100710543220804726375603447133087224680330814704682878811728561041830585991224590292367833141443340796504487237281136890389111413179555916525784178145593004845976171259582439321073936062595980268535113370886441755134859532217060638937876851102801095858903995990486878556874022350732363087334859093283300900036413339179984829888769562860015883614831957360074869321969690326197825998977868764462136218552303650163539601535246732398920115913273345872911148434457115190592993290810448656966349366153453364523924522933505424571366855588655357155150399861071267996772741199609218084318873283498930256243716088939173570516961617803419340707275447557269133291859348584100712252440282508193121920242893098746937984888760891340635648595714089568997378767413362982706197830173619520699849861967159673557833917468732568623638250083401405814925386507112203809537708532118578381143476711109542652802308217759682570693733285319182287232464830156679975724855733830196921779332016121367113545688214357329397898941387574228518416087136847715714894284029247258808208801867133235182195859912323873961293319596076479269975245047043173683198938920712009545244972723564832349804240662065446544372030410135797976346151459469862684842368662946965027437054948557637819236111426015665094576849559550611068041162391181027810993098482813426353356222710514566392428391674148095246072144315869083782214635451563488174847063385336080087387669357692362831389895440805366937414462509019455893158848136151410064649375118758295937137258212728399729436434718772696016588398432858488786351959532918122358606606779087501499315663131687909678564544319878922852815806359433481603345661858712861542254937754781297460168019164769288416406055214929013066255230428747903857029135475496440670044650009773054437241042934178354622649317861848259546182963633098351923954538643750677222059652123147260546315010479767881441803501679959576506953089293858418772387367771614037463172235078710563501574170992829193878884611485471179491996773290180359469936698691906479368474230892764996869341308458180257696831033246348541347953116614363541948150386035679542354783597038252377235201953892324057649343508603630513441157959428186832752573072201221281830889218031929101894165211979586492830816741353682061644150369591631844934273809281998510777919315325147356391210580691220008065807374394165164983651518391489368370217588958558438203517386011404372074144322088909111778960051205749262354386326760380614362984484461306798557504882159946350631983008016158193477309625118449611535935496366924394908716171803777193731633766623807235368844978093495453164141902753360542438197703794048212954325069834348596644466494645605679363826023424070845554705755030589004166073609833318095555621347494825397891792739948811392010930900472227074477419391677480927204657941874277499516673348340424935963835093742149912400534492179828298403682582127297081251583715227427473865786364571256716417184825464636332666376378263752801297838127463310473582604725863289740272537032818862928856060390330513226023669400995853525717817434335021048710108050635882704870275807480896516431652876120134463111270669594315789934861859192822787817743540845940121742759443377028812620262500907039089209178968094108670289469230752477842182296787421540002777315859610470716641500831911052412593733316756349210184826822956003733766930911238715734512873577363047609186352672607426357540919756998096063667303621193630449858741962364910097858103462136813841520015137898574910570936138761015179746349266633455557857707323103041376189460544199869249266743530062155976931899537529050493868441059193444861030100363826842886061308644506049428030251556993030196279213223151079331191014622878526275740966914154874628414944266198105953064297223578715477963607653470416194308538958828305827205695601470985842022529390410585837578454986422250261079609596826967913888984853893412874165391278302189672049012617926711699625568717812183026011257408773923708093133370511099215589294636563237350978541769356054970289175896776399005767668258836955191367641078674457805414291520865173697653716627443976188008137655955886240071750892905939087826889211851226798463759883725044089303416026655127501477438893301771325831903975082402804905796085656560586140456940764530904560175117493957674085573376077531927027042480757905436057372003824520456206480798850559123332252186445204484229670474433505012265350701575122093317889012784035347737499920601182896014399660593997404722817653529955187314950413202941481279721841588527649113396675906817338669091467057976577500376908057419348812433805404442804883068911200868523948321878955814936516160630268485816964147184852138564296191985256999713176035235949444154443713949914828108094362761369273149688697960130356807637838458762102107166361818715201807181727182283728458839462041587774072233301668087476047580083086602159493505022694251996048974888308493894835744238935959756932499464603536472247712924499050941309468562531862211135148655431644118590624975152277997430018602940727423697710710821276529935638422582881886704840711717412164111924500835670302592123656449949168795292882516942603363818627208393546438638683495424150756787035745480751102659857249760363048187642510103759698168517575440066817960254928896130316986575562604596883657960463874999165769152435176312972327262113194392720454233324615071483752914366876449089895652695559430875420514215791928472708231813839422861701298191076434995477748809069211521059984499730253252877401674328147608121813413114912367110738351247462569211906857352004357716736038567920114044664898349490280147677521545011465852623725144673413111979788787704773514954600106474827575151674637341769574301762271505881817737445981008612718474681968260212790971435198337030606137596806046319833912959441889892022200381516379699028785628216377150573508917374501080380577155158046991291003578725593874381777653529914067758995627834806127126498001259688603732640999865647271727680438830815286386825655507290998655530171036616117269213796411407619771820421495374224538852737952124652078520647132183244812592757902651029159237941858034073511712054780234568137218503356747970301418582917642547796815221590516037303185755807063776621915994708651497465141568418006087277684177482588278812460572156016877915089365392814381356790346907183466545500841410436117661739056677737326208682030519010904701653713700263272066834664305732393514647060108426798113446009652204127565362885740812729117729862732237029018937132938969446214504097495330114991465494391830398149060594200336716224184293568961861898463864733589241462647763674978480578140809714527058141466733097924350582473941944702314944946115049132813049981644313216372018272406258988132146801226197287044845926469153643656661544370045246018387846513449795918577819589341367885558509186699976986380140018284097569599908781512432945418052204972545778405170777374812833829160895154233575180821205117371995247454933338204147818341528267407785171163164012302052501635649149211567636084286026548752885935027420565329739027825235175035303588137868328588214910730347760309638433618586874295696761734127043463276011512846884124190292190579059556028799106969955204150004001939984620074047439909663043364097175522839028400345483644115823161990666030620526069013477440995318834766893163955365864026465226524973982680993860832659020741803828178599835609146309175859665136795334306269794619330213469480174908134882572999646567069676836405140331744511237819482882318194836978747166150091374299489525870844971189854141427639980424340944505504540295738760254005136447284459423017492325719455323973685648841953927757069722271454001279503712809939420504526971320034015336086172278992210903609160303320141998861675476137123593774981523610507622491967533145943557884931189552367346953553913401230518926230601256709871682221545995058613909579434691337893797916655982140319346109898472047357363832789089990879230411169485781008807628445391686716861930211999637865212822782127072444166274536166118488267789489617910446350185385000372442422261346227559885250643559020561535435519809916376133234638751431289603276418838641396784706499051687625823562380244856323166154353073427049635188353031393933269626246268004234908017343892821388878084063727090499907768478838926297150258589523489418916879799634433102612511507146082091942857618648752655281332219852944500065413836879510778595198144539151994602387120726201289871525805600604699881175822127354608637231675427109413755322255729495695067021421804196341413480712836072203587865547234294937325216467752824977284947684156029095995979620649549599267037875881558025579519332004193180074474020000930697802338251520259438218784683930843933758420398954861389040530740193519734284907223781577219633809728984129241820075313897723509653710129306880641119581103305971134036446873312141549372505614864273199547382735828463836800573323968642007439038780885192444678334921200240670020442263388791013581173590951998594037189550348921137096177980444223746864012629331461735440859422823193533233587502695302162091528492618802080064741352998071152941039556322685908652217337886018219993294532454272529193132765990031208601301624207761311414059011446711235497043951859008791253222198740408120730232142352025727016314882914811271843790428735638616463098168573828359935900806762805335173323371203576695581937784637862013926981153537898284134205168543016956462162573325908538576757761534174792825667755574719877094124727152897857353922384513603827682675538868537526009169515804871829118956256751705938563196569015287787040282018287584339561679645908996197192820252136860968586802159257369099136131578018507251064360734717644491605161146073208045274164740852685984718490397187592470289566734190732566483081886425372641060508749457251103066741556042806344725952359793755596204346681143484858995958271470217955065579352587012439613973983891490890174724032288273716683867888289912299953292398448571517953828476691557542785511082416441743063673783439280736821960473059968914174219594211766705373599299840152743838862198105892793870286216157818067328080753156495022545420461870265388978915309715223433439047328130831429993218373173617961408200949678303571189788319734760878992630816109082232744789971361199425593479657345630601979170380185087621472911636316513790544245067894874627526099028607817097729630659642425710817736214243612925627481132692671000147273438772766686193262553558561403594962215054017365928441968876077296448478161811581964905915762366208211208218392055069767400087732088550317931267625439514160077484985467781670982330988133426091000037076300470450266090165325424102876709887158503305718269648393752456617060333262131139801632122524241856175679753276905058113978765884243590345902272602330453345915377510548912472313364709862635351017093083752621662771385972879179764570426256814152622132670767677170312942520798173345916192693963117607191595575770327078114379928541997868389972521830352109562845813013340117708840692664735834948483529821482022523215566416361963578827704977396887810692224934059647143506578535838733370421086138713716629830535939261780414911838017330109434022612227676243462467447943632406766563201263520411243680382550315324393632859857864780547957486626568909955408436919957342135468812433168961454109252293645521466058622625313824113116978687673597654580178901650543463111963748990789467079786135642635144515398092511852885523696828244728340719873728699977751708597547917242047101767452215227883763926427625815786993057781438740641359804331094728380496664708712553353882895031589149372214314207744196979488497972991296798782309058277985384059875846997958451918352022732139480342320768061609995184740914205643845413238135126853292964330735455486337160875053971404276453177948274737491092746545133572133776162253822313682343537635487947649041746443038260804710187288403168433619792043394827473339877716651259635924304601594255208697339293020534790735922831034783470937274400054953920921371226732911795114361830519658739995996815173246566066087017214533608908448975642176076826601901761648505892903385655821465778639156009380156745594600453043084762826433162512454240494998060860067101258029727258337750466754758928644605766115626869789014595459759960473239587196561340488757680424194372393760653108394815180969340411418850566181279518136561585197607451817258680974495227235142996804150251403169936075347821624354226808377935770100005425489383465058923625984439121119202616160010443473878016039715716319037415373904162160341229256561074192647944257852822761635793116507083497846923386066078522953624500914097097166333652120669482928518779470198287954419134639662941386587566559697383555280840369351140377416597011504191924681659657420608230736798619438454089046527209601063633395958958471662124309641787512696054308711355121244022436914753095328328458013834745442173495864010789848943107565242536913126185440639687502467445808596690825102024776022922061931008954949273514005177415685617533701157520700030889556534275952782056259508136545285021447757825051479545976074929557766526205645073728134581901384126184301400426013514751911389321987856837248820280650875600366934269242618444418639050014989105515059546626702790026600196234761429055894452030570650527788849382941039296895654241471584006787441910628149482107531523165960233485657946163859799211332607388890719578395623724381886856416825675686340408221721445120133223788061659640359454438290755178383941678916186470453417472198388423889487627533941288804367185702743760389576989432709251625996643729079808963828559872416735058997252717517875527996317225708076281303370026966073825151078184934832863448902376949397210317530075155014745259850010213238772653970207704399745230076058881344278020689273670746492804833414053577974032617352124189615693277815644057487602755484914910438690643368027043264329572805974787630845828741613896003787141029021196612615771367645070520993602174867599390059835510719278205658024947605448809636249298380087888188163553650551246291312456152087258533061597971950168090426435080624063495065719788802440181356357513129919130718161968520664153473182772596673622002510237944290256303096335268490879315164862772361080945922092230721453270013486775104916027919328112989377763629707376427050202305004644303894744352579998154211274907954153580675035413466300255749382589039034462136796283659620336090799287311655628295091581949738991810363103336019965517907840889110358892707378480903694685270859990553245649092445012036637452995524480448523249239873328479953983014829954979405715229695806839845731518054944699373616913326026144143570812036876369527424814662023533252079385267459379986995048504987639427326688181167245917533149061239393877022943506461255498647441189444780460101703908162537342549618635042998408070671109177147534615514624920509005950749119500661115348332423487417863537154273144017227639216645461269236105994693883173610380062941324677307317295974688053932561860010539861568699400419141052901763382330140127611077254427036510857470815209591007904243717769210272812792157478747359562072064824540317545438468802678129868231941254541407768549204863128852396820147574943893750900716790500002923889514639117441351656323687514454925377106624222595942746378439842413273705672495623533686824647225719639313853883516297297577739962179980877738826188621262313786532987481587800540308769245825255796363856011949739115176687786525392560341139998861452487366028585733777035673676763937060550119982372459460797486304528549534588099558676414876048795652560777408958927733072199025526529320495712680604424674498776089215425926530909467229662578202360808402532661975959499258057343309952084244440099347275101866275865574543388968706770307748068382754342841415895690323182167933661777690738754964950612686586462541040627130516611012435701766735322848394861527459630121771441770232923702739698637235579520277647372670802295947887479321192642339180299158191229857313403501000280480549043270176687764658055161390691247989487244937573638792374198416415767958947028318323795986044529045238523185993743170344977570460240893559706972019666495601814079497054903306620827050172062642315979112445997342067352378004742653500725519180710086175061447558941535510163776862250266450492131581943223791214877593745019520294294208933795924757422969480799284716657454398611341080821321635186706146290423284017280477452119211506465118323641401679365416957293057302854339995404113100321908332007903020736904669368505912256111303992507482957873233225590164380188273968838835661215026452997179591039805986398078504077350097851231316213201646801441269933032154959249105036361558792772399419236636746360617530013940957309544185078081437789604739197217228094595621553034908313474709671097296557533822263602330184182850465245852438966802872091232640120188577746816856655086892617957822556588733956985481728224223663686798282897594030444219615121364360993217171220317106914622263782006844386018733027466617723869221010906349598313032760714204635626501309409649234935091189575073027679645898758127903838542457515504830476458537836419446911185377032111888656620135051270412157971725835550445909401581975263349602858885948379859447150340259496885104415284273227836735438155593706587600414553986877722207165938440381504562886212665352526253216840859178122684136725605525370160698226550755368105335335655910350704007947469953392282499159583553220374046742810183760407256929599371759071641504479144030955450675147665123052316002659642455152685679311529802543392303276897096130126467694752444349727084149243630408083713314067559976510232637628064342985928874291722815372070395598291399217532243592750416296649428362776479699363226353176326196824923376587097641725910650980951580203130716072611625091065423836453859871480474144575747887300381475380806201409459888471533720959572523599058638456065957804361242324893739886127663522808339133573638242772458270810448276221884357978247767502732843977332778626441337747808470802817261081662438054211834954665796004879509024358875629605984830438912616241865377937413872231780181988354176760338083796954599020859350064618276196123427007262787234469190354861739692463882559944177908387046803621031044043425225660592851406476555078607951808778449054638145915672510124264904380240830145363716264659624875617086030919309477085531211767631824179488735252926968907505352521829212366424008881152423364707411830807532967093620518682371427556531634879251025730530780567166212134553023960452916419027309149767862604170338386584820629691823601513702046097263238307661916422682791204484364299174104661404843547484946610032207521327276044090213262345213987089950876451055866751534061676311056874378730247658014333429297494735890588869179013453618763467274858957085410506549856661038479194700113843267627429667123403474586509513177051810149409562139612307376862192614201570967632936861269412995431239246708687753407919159615910525275452097706913950964426426906755557013248916590264033508534326647490265831748078529634489169589474235669728517475988227773364942178797866528976470860658539486377983527944451329030125198157819103355000408402158693207359647068471088230153926698077306318399279399165934652346081903287633626973973930703774601303787899191387799446743763142961283276573998718265765856670970992234618382561221120213071569934499694374104461733247884613879746506577074073321614248281620133492709824300841457495032029535229430001577214557612221399027231588825830552826321071559905497348279847682700654644101783518193626344110612050963688282599265150135251663585035982909557177629351280664471368973985749754892041251994280113410382884283314948351483907028544018400855629863208789132976836564959164088510755109251561850754838534280227459902921152072309066643446205985122031766980120711810091330177347016284701737994087729105564553636570277280063050045420794435990196118792777975404248718407017197240276903134855780798139765078367423615293963649164584492455992652622117067867885899002985906430110942449796515694917557830980216658933791732630349149267250249594192240308660109794406373452415702365815872919843630284178645998638508332352366411614796703156579857449563565005667410671330346999195981217172323963910803581775628471390665965530214251712221283526278642772315643342990824687813378083436543464062821198865405238378696720299884751600589685087270942064365874040037252748117332847472205979518456907490124930403017115541285359790439182658493348422246489769748300664913205879120999462602041352555477331017560522343620332967452854944888435127463529906434555569411408492686771188051776448500289165180993180049738613238692993123648834405153646909676491194305638699566736995003914114431477892659186492219780459397574887010704113757961932234459770731709136004526528616280348009768782922401015286514735982808063952275449709447769805235209502440992486530568116924171093975606322308050663167114842265466405588749496871800869389896062607660948386623598836568637636219194754957051291377925060679883293580573166299969007261156786661747727186417669347874495639411167125024974774367316532505021541324114822031531823903786938802849417763558093826946831122660868520712470446066149081570843770643149893121265127449863091638715704294388202501643233100418164659036411705913682426034752157708730737642149020391739952197336767007273554649926878073242484928996606382752171600067864942846687383317721822157606192157177409113298515173975829935754586412653023703479098553023504726543319120691614119006404844430489314989795438622179707765011499541555737282327884555075431568324157615236458905150427509148204853566638092977844802513195781536890792551458084784016976447623462168427947351063657424342589015736569030838259565797357564243437054868981501659486336890211969899808117061622534163237903339714900966619971459314136297302574134846850053756010483718222542771049799872996219026758275194260270148848756071079564857603552982224613920935395729927518036010739071431120133412960646828776965234500833357596215056355576881971020430431958605791143843984810950825597604409210476943388248644871168260420725792741817598616557309824312501441723677589823101041872095953318599168777263037718691190379660071703007959942626346792728434588733166176093105022275730888785347502784095371695793417461092314260259772236561678289264390336957989234304712480062665775014439502824340319926665670126966182138381732808523409795839746926072735935437758281378863263141758638159082439741700115149586157560358238664134219756008236946910886339829235471876038016940820711338413748395648368757311670720096912310606505072721194601610049848027737013648394010839039713231997659064898275095925182170681102983071081105958400270874951190869491612994128811126653436612168609681016262142874345659753647186237590285063677703284412881401437784893288002190362838641440209819848160466245810821192684664046484517660035485862035368880925444532791748994662148352104828512135191597573705548210633184430868634330114182223531963812410918803661211193045294127021197905018112320502160126752628603847919593484379128071304401004113144462416246733617306193737036842549275429780132604309197391320981005144616063679252935172395781147719960150204505859832958163693863513783083172304494834175229643105783261505206182869682683336440870403435911109498669173964104345907903467006825475253803363733120953551688377166123397365692000018846916949483916642877014933119425813572223554296969269429373716039464312801084239048755969657486847801794003436889221094107370388712040315302946791130246968768976572359356892472364532600228662667700308399886691371944950007301116971288653308829724368992252144542223923010482478968919130015097130457863954901220790651833595106799659501185942466358103053075450287995982472098121391136637906015876975870433547652480002492141986820437618574436159037510072917534205117907567408471006361543542426413468876311530986309556182913741876546808397639896337066280447169519458449972078549455567390740870874981132914952424401239003163526089356061355825955469419682801445156382583218126009113871401728037393231839074797518408547181263945586410711014555065298022831183346832129605842489846813236687350021671241569049595902494329529146749663923883974804818113763251522492599067229196903724545598450309541074755957623699618525459827884848788424568599228537640038327038967444598580052527669825353150778788354443100143728900056171834184707215128952386191733030447677292334242926208524049298794121221239154080866988903118039533885440898992893474348883810021590769836738824364842529189975144838814088996395180967974740891735424216666509539395487258899305821536392594163207679078801073960272148249189993212168246287440430168869196129668354451608753884030630006397558647936213106309975949443504960502466783808659419693904723530562644688276651295244300842390466547157863918707066372334263665737107306555086875941794070244010356025658593241391006656961937146702717481246661962755957773538530813622578389240587288751159001191622233032729290851926357215283700169105034429780489724332960616900034681711667878897778985945677788811831187984468513354832875838810490572632259355122052454887061816904016786357020151480473338480511408891142447460987234491410156679893378796522768040716553340039379256734026468575761486653536276666425391818347280970011201330017605825488263078323659097428353341092290376338844539268119960252206801332957305962949818629865908568212062909986977283582268693049819783185324847122056029178512307504437171884806758031614526293908138468606449777822966936576005979432265752791419583310991939874230065488498808215180720547964234273845135249369172852198315501839183368100481402589092798405869194649532901849647639629919502479306219647247644683289328907150615094457964320874291409914615178860694535826974799447080388020162519244476667261964528284771368837086424635187365085549533369971774965869086424092594103741470281628968544583906950984035462155024985718370990481440509197842233202592997781477409638468934400056077218627164529770202885687753253089632966118062204785765878283556558641337540592170277698365015983561144540264076373875920672379020689332099339156359006204262556908590273680332456489604708652523564957115151591894612239413522466521394721932635735629207165809207765725420774635343095306438058609865720259314312991522799894448974806828785509221092592569561534053497354856918922619196604559159160717444163299448926012058499700296012265367210315904304280082807467000629162679855469858304448470501363828189593121643198391903601687167711424542129099314127238795936906507833948812279604972592591320873269551299640932071738960512128817776257791463980075029445633675292585446901296444953517834797420946150453902161972031316812360955850541171751293598152258560244448989571837928311516296652632257700794912036620984508911449585352373810387199255853684221090816235587120555651366964288098615164883647074006308505736555405438621725481800992786065826145377188004559360215383485760536789013000280138431512498030958652127390845608618134666359144948831516212143163245008129497405844721626484623265169546029389803165510879700166032284911449479925777326770085317748377260969308935038123885014123056260312600311968436516648409305088406920546593677337210367474337521749911078004116018592699637889476097994973348459791672634994747326520283723359460516610839901357479379482705669706561097376052158725686473024063602858553001833824739113136117176526382701803238490152420381198474518274868750822369153355005132484321848777868376706211493451415647068702050104242682678022950600477419157955264816349014770424931018925571055700919556177029303665770009616159922847907406085103240921033555807072561707888462802840567109364388935936684825313431340110243940118234560107408617740449237008566379974300987152310276260361336643375376075180404492481119095399289608274041004216128839776310993718637346598904428011092835130123283081111193830454071275019597217263635171957885542688627933450017256462878265793945619960960118252195924354235624253855854928632459108781397527828345113680671300289976263692386832085362148301830806770940875914740288703968644287214203855616628277222025465482753446109046661080758033912941387422625744682763555557685405125217245834736048117711405020729858632527798880850379993402513719693534282505945075104019889628264085491570598820956686271822219303232138499317249484809105517440589554126761289043151919201538413446797584305825131105971571602417363774279038210519264165883233476298947154068806226824967480407347169629275831688493358858648804294751976895123089356729745869945348483693490279253961391166520777172810652545152692714618955453091046957587485666558171210771426036235810431040734063895594127551721776381883020676250232015502772999705840639762156775861289397036507110545005621380104188258319754740355748426493598530673827910790422524391330305706281964769000522121648211079450801013596620595824513119929695537574927914616850194064683311661526661789846414051749244949059385148931988326751373050503013050590656821977895141873438461054400032069253333157097514271526196412356091314195514740400881608693347625880279134523721758631135884036411788879181337307732268141352872962691201070524255420876076646621270198184309650499771857122339199108339077966750605229258582107364482439796165868559561551693243644969021031207219462555602231922641398967151550968510172129525253451324480787497163037857226100361393371685462510253495645075264175139801019718382061085591311906998494044511519370175312240928987295096593794917578522127872997210442998420588533184387810640731309000190934127294111175856980024057573920267432697823440156973513819259370761374867909332633664474811981346192237618513331649834836105213861269412259334042306515859690905576937238951048576596637134261063936056999228094391586486506576072803169187807636808579080554267842987984328757431306044806581014392042737292372101421171195005499836814796171039632183519477559219971326551444067453105646385989785737385776838165311534290285584989974324668816085203254220922357488098692568514122522315918085501628928319281895483108492765634940337783401590809658568157181846723023175589416397496806903715870054517603267527960145237251527448971071237635365577657595395432992134934514335387086368002157325845260467548843299265077037168321797707662652779494733425950216143409677998858527140435594370772372697835596924801853276981826552213905136495522798330234234859911302612193322647530841722250157539366669713447421216678573737293633555745125571131562184726616513397915947413850086147420018834736503632122713831759834876152105007416496889253051532925537462537477877577035461088301299307061197427887550627071011394198675866352468506785416688173167778676515505890259690767866778147965984712859051266070897696184591480989873993109275981777786657315000813488144233010909336078090664523946397955366312838402209034858741601253773166531767834102090452961117728718100294114627768114142492071910302028744324843297876280299534195726201525191243484229651544660565554363050211429006939668091740534526293586340515360758014911328397667809685995241041796500799874721719007199143647876000348386323610001803200552726902451118800288894592722371859670636220757173344702068584945594804930456459911500586150218552088810189795972258394108430366625160427076890544302868719720651030605532871090454547561878354596494363614784910588574593391699079932025738698147654532895386393282353532349828234271405508652520994651337951684643014386883591271412395037733550812054459503288665028535645318200212442615745312675054549222441330416558537348292053954785923681766907127046704133769003186673740667017243179431713371358448596979566309670535034561072449726979282886704150878255042751680012498124552736634025016954864783534232027762728484503096201072926413635538819343458115742400872146017003642939619670007499713424626747012837259102407638076419739446143650534049083339214975458226794019015143617796809103940406506316303939898606458967092295615952766740538255206571999258862445244483868969475264021548028016415064551855419789377195791713919919184301466638199687547374740166275006187139993022694784048279971350345999850854180650422103373545314070110467275072841905250769028421002607815045523299439330046087836275878754149907454709492668908710147413605433520522372631335862155149318366651905418030089535400750479156151175669863183348572207862862563221821098415258961218297121941789535116665605173077669974126697600955433529665060978552032225176958793302265121413626772901768207089160951243876128560372183556631120638561261918930317363594994947745336679321674847394899938329873070017655640923601787245749251241676556181946755680720113659713259475367555712813962588387055136941740137518182294737351733681023931035229900835008328266243072628113239171936416937369389076455419633102092227288841425137111821031111542240406970328830704565053071989663135805128570609034383956375489858319633906316842737114062913718114198946786806993148284584532477044198936499342658920376624192043169802813037368956808455514365086434696547089533989056707005863870528967350561974890544625058995975876489306612771680582201665852845572072530828842071405250741344109280034912515735343923746476426325961941260121459157081414163752283018688908594523454113745005018846801103155128183114488016093920055205376621213153007531474386804065144491346095034542983925365105887815004023344506459523206800575639859273340883989130996567530738027636368290638105015184539917128008310050527045120937392909233598676990026544780212687705369814097196098602383058822243201341095033034675062660270562559190792165330623289028502204222099318400224555446313465046425323794365774976568406484988493225155124740346606143871431621477443127212809776674893932481467213525239987767821596588758587413422332164408173410030968260604179829711656355816931734623985951238237303761588189093304476871321853071870311182060242392790590849993566232879083914482587684954024551862207868355840922023258433883686738292287040055012128698759898011364547424243531476921817215943319406911341338253824007715048474636865219239518140615626960990468413251946395894884977005438817855009685499105493084418219214546750817513600047770724158491552613260969482965973926619000233480610199016513921364928712567549769263240536046104157816976873942631625903218292789551316332818535178201327189527981908650763112109367132970139357073774901122517081279747966202819152163844100095166306487790912554364104230158934503640503861824048591938009870734962287190651424330736353734805013950140735663973941480856252710542912053564043138876984880238103420462339273410236726877214331375246964314965709553801672137590879435249876124732836341086014277659971437237122000657890773281914433406204484670064604560766659997729084201452402430763490640451072137670170689281462662354800568783800342339683282012789137109382190539806763908735349146862995743129535571399780630005809144952021144771074816317052911430215207916171874543736439052404633768391827922232690345152361245266806420932911815672472743688349650608217216344777218373762986925149493449668304365313035346958386911034041305021048052311770042492933744781076256286310174909641329122588843412238911583757690847309690096958050763996382355521606214781814838217472659577115797036893317224286572744978118385579867196990463354548887930348019551289601314858665539568477422281556040260037854385070077432526388614239185866553573693859450740152201640321685587391490299898181099863748077858869142560032265489383497589541599316077283540205825264834853636062167998467583758328313355731610029424620135260435566331977387219575446172232676280285482918736068086773712433089467548333624386803024197319814184619917422795161914758541469302479581191053618342376574254870431784756698077594456014166473505669545136570377482000557692706679228999132089847717897014326940737067190791064584902699186240184532035218417370688111179428465747600928622850077026168954013847703788419789492707354828549392853109061221394213335891470644630642220429464281215892723201598195182226440039284709656374496009944989443527909118288542977834096570411157808236787977387410304261580597799955094093671502187956564459752144498597320760628036216087544093624168679121267244983050047909832215885914700982768175573263321277825319575696225662773567827876279692653077727278338102540589009110649820381597020833628995640833377636363586865639669105957489456939828424582900848568968064524155382197581793840211242764470468806677184515698766811098384882723264310471987835410944209792958896493347493181682024868234055146686413922695769190447831286226533957311162151859905755147470055509751189481178677295091864957878181125079819226158652768856819191829033733401582871940243429985361580699006733400363602368625660476261914934691626653152067626023818953494383014793173197828256593427666045811698049462144405055024505103223004760882965717077378791418187483584289290697198593089537758189317430623615948685859711422840008956266816921949947958840071955303006502460999160751654574982631883963115604693551760463662861192794186352614297974307286133174889629744649634557947121879655932528353131460659066226812114333954181328728227406498692598330949567772124608875726607627242649251423339921430729222953990693714076795581691688280687126488482290916806253417224000627315670088286858393202094439743658932567833471664871621901632844620412415634204275238920187761350679595123362333629054963866179903545466257401484540056512674494662741411343689459604781621663332528065615182956759705271304953845157473417057400121520482377797549831915202298086350364344726183177978990494973696260844919588031727723718628901979340572575430959557702253242738147297796383651172846922596867536655054965685635212510724033652343916893829807694172507445211662412917340024107686718628875831025057608994979295989141429758778747035715881162214248647680876065700959016735653085771083395684483392771143551521721785538566286599851394424074783084538126565568197038157307011242974665556164169741532212910568135623904082327863642950126867494948518470701947717732536547346933597556283093542080727601743741406237096420334329522802678462859448809005354705391366421462917818435326913694892904773741457866725420178599408165071989230309160329885395910437507351199165543827202350157089771410439953900547473080695653554548709363070915699579407237607109303678585087119584970596945437057771591917962051954749522164213541478077660808609364312071505954734011631129754602136986310075518686699737688111198791887716202952355609536716948498542405378129585233686236463845837787550136137054723312188427278552403416532199948897465611670561435655724387577127538596674778050341645727602711925665276695230451063705392571071782058796519214604166679864741084950603643246078604689575729317708661104928628746202111673535571875525277015590516655666189421560202849060188970602684001780148166250007629650117460088572121436017573141272847311939016423990330423612205691168898707538077739625889534074232018084516699305882834995863733290544197012860613735988554545447062394662535686834712946758505923969648774868938605015911215951726404916446060701487275050530571336299571104307417401388324064243931104901103940931253751399170035932516236424673229914440293502725850493996866724695459710581825106553289068193852384909345853965945858504486027891788308428816133969767464998294147309901539324324579275498655240597726483404600747790590550983397295875255010858705550300683325812043502329452881984634634461380498928945607379568514102269703932409475275141452893281809113066049892569358450125532348991114487822455380666171148198412298183757436590651939743655965009688873628669870240774242471085541871327302018021452688525848094082329003046436671365294072678290620150864076105138545605788176808325836659991209444316635152799171335508107682371432037739273720482715084472806297418953048630134862853625162115740340884914306873037949660167960571248821361736803707771230074855504300305311369877379587831487918433091098216124296559970610666889369538422541146052257654247121684278484302063243798008098160443423175251380954906139491172101646947941458739059772838215651873619331722092216360413187578213879007717336112752583106025161506299406254288249547597585247589083060745022410408143058209242072113882838554140164056381542022205966742356184309677981641496025093906944084264695896172576564203961108821048544608362358137323245981431298634698068977116893681682161981046144517585364476642612244420007216249043025950412676849372664239633770699883012021266609252135708878928492023579028405456320564592061158935104252927778993073111654596921137495272841031843133083008903847162107194994344701308015521465806271251601065923018976058183494043577490083434837857262124943310898584643353211528439396083099721171423015823109816618817208717949985270596640638225766830662316189009080348504056026287593340126255619876710490910023847463638817817857286379400836632558535747719681880429531955739736859685755941691239137606423748423767067198292592579173310153093913497349373726328738151452419440997961413488300248910162395998605383093954343690586241786717609133916386188646332036543551217791201596676805362350363936200909214150679888197534751465314324675737810881457828657336859264228279056151391719247700975133953034046190834093228153286221535361645281946268180410011432017881797492964147240332816533150599349582588229457189462037337841183350679024321447630818129900340235093885397418115998023336980182963987261714667442353220997844655828581957912403832545159872359339905244587713482603608938573803417332852072861763473942466376075718356951980477099333928951899355732645297051764450383231166840499738731154544698330093766294470923940751832520055772778145867329160695374784384660961263587321913800169426646525712779693457309465049487218554219446003755566823634197629475211745044214380354895709140269251887670672559701915447581689223181237270384419608761972830728784396824535068574414102388673487056409991468594155430616085515061758628384463634247714313518796408178388209627040885034635930964494003789263221442557475818107997323717150537250813991950439147936587688183558266875686151996282447106675618606449489750914986955005091868303606837156861402459410325921802310944358918546164329416032249319748178802867486122359832762005793741166265194773010479852563026579429547433545702289077877454604230926948452204202196309859294149481613880203507965426825680221450161155397739599581300303928658948322351241134155729353603651181558044919309219537420531021422499132838247840537552400075413583807797651951248379773521509658772896322006837985987062505770984961082477761845339577306878224732151900238983169279347764541403464357184055989136062299761361219610574524630521263505475533847897685773659476581893139755205539712728194052137412327965631362008413940935805504876480850321140856622024715360974115815907547663695606513446568931252276786543218185310010334220966739513866936236252394909610044270665068679830050110914331731356315377385966297369072654362017070246366775624472792466548724795349991403247596641839886750407484845768045262415372854365475620982607483754153428017115373182322232093109666512930556356648488850717512363471515035248560295282425111473785836977570333037102064022244021514827378133851587078164041331702295970075515693213861840529209361319890564645344724081695595659910713765803726135649510545098930305235175775334580548724388829142066618228529800359578543751615647479459069324179373069344980868398464675404807371809843494438799004500894672447380948505695717013513600230634902102202189717673460507825450457116532885934761624587934723145983457735148917216433267393525235520395007819060069502323671585350365633410316865479175884578843508450136522432700019843693432974941869229651237534942281447405876591034600425612281234824298703560688026716471995190009985402026655389489216958511579474054399000622298198571221524821227592477602203654999405442114535082850805830791991078057366046439857957271191656440740423657353965546946401198495423574069784992176748791455914627302627242924661281473728053606143564066868873337282013129415741628588913306885686008229584548119374547827030239552271508077364893076995778324981745442829847474643696359445335412593482702433079951794942432126355974024906164598156471058469983483302120475799383366067054032222864479203132872878781125343405545893154329632404929096125732754700364295236321320672637510802476847901324451202218579707469083456016786816167005717325381221951278567735750932389010626458596116312971047891147671593188919308153829354584426231733707709123088779846754151729747699460718792703940684356076133011613911923895943942769344220029833332608546984253461191537153699286703546473078666360474319199782864899083375740714906291643630344262091422335898718510438386694714717301402828702099682953543236867819619026227623536650309541075159378672748442164952294842194870651508259837580664346311380904891947584555096984786543520542189686208118121715198723637392860761071277657574365173382376465913300782937749056752293315672736234175676348292382088198731787139099100818520693482869799006150773767252728698782833014789178690199055587849098509344020597406131841537660465204621160460453514780148269812431609177111827451402378867451385342963471595112426111776808252196323833731134287906712219404052375402620219126046306200143461137074799415663429007866702670675960160196150845799583476531064585435858339433635086555379573519784093246432218168289796439901745054627886044706929829688734065753364406035845857475265008822839099260891148905677250931252532294567293103679426202875135158885457108308992014863998113871421700229660649442305208749066190877035483713610360924795111500416097120781029098631234120406773794535410121182736375596324369183363217478945361849098115950416670333207888176934617230528249296151511878185658000400926207792784192248223067577021558121212984465341068054821324094708313727427754368263692681507651964696315301230261462749532824202818125939205876928384535405879281377586871911123448628056727614397827773416661303754814335710851637235127986228791088798012891840506663025937358489166271230396970148123964376467131106415840507731406931341833335013597463700053980769960149849201377422830304395780288009542291310949561598987867307965236962203754637320208761052025060296620935316486020014242239743220576726198322961719089414110091232405671871296641474613270670867447478503434243967568893176289955258789907672002105980167496310113515323061503551830108898913216574190978140204839414943988250766511626999905132654278551009316089976961347817336786767721684961203085961314070619869461045832269973280350656677358469268839985812132382942454846078995525888973203371710832104242611493135601384850969643721427056311328039697525063711663974326736276657799078890189520359711371071667324430711903147776917217857593681947484648856987236709001542226242778515932180977956926878770285235394631411338246924619862926596520575804351805089761577578876118180062100624083432825501466804179659823122488606961650475582936526741373070223847134845202517335302843629076912743916887701724053554640464700841668533187147578323316571094369195316367456690555448070568324970352990705367536454350460969131017817285286543702810902261481723108846636249475330621685274661286349615722564674344120602979030380546537367376491305893524874235495927675417668845860287642648131525038141689578818218009652718209678588040041656141948029593672476706398064161934113778371007632734777826263141526701005157300936848127256453060872763075261314183737896426973245989454886330975888745126545009874785056743326422793160714179276986434635902140574350683611249208864140501979044773095867905735307225370836597080875843251359429925680083691673158708820354935789009691332604033938392475254946950141277024045832467054889347226437912626877797014815574429666209982352689144279379974625188407973648169970159917296506673952914886200428292566749073245694541625289382277997065730618337919298045130609791983022525727051891954536518055393021276372616329854533932504033638810794058201055105911098194085013326239530581629864014257145212681231163223883351417171560238722303718878424719650156564658963714158079074123676400618717139008068402604587932292544183052287089639228988520909947452863851178700184211550050962711089721016696154797859921995142452164217832043125927949413045004432215154854275362004716375372947912225580005949112110785992291213801333098362490633800806962012005873236772243892135877867023867744573155423581902159440659264795469436286942387790954428986936218915238606773280865519555629157381848183077431156134277654054751618133605992712316645872349151572664323962587070173755853712588818602809648367609530188695938879326478225582908240478579478106562905251132725540863684628588668968634157119201052101962706677121048460621588642840593919163621236726283339906492446455519402419586455183538048197887098839012049304886042063976126094606786838722353781103561537671726480794465938761710679019913125761677258880279652103643377403991032020335646898578997817909456691797836311019968852736356173369188314563258609711737335242027298155523900314625474929940758472815552279634579958613443894788420147244810368827059360872095457779230414685583263222475895572601463893028494273258019629417206476244429104177367951480493907939370122600528811822963789057357698401491468879148071095966639430739652061087257248446904016825809494172255760190592102674506641640729653282240778046156076204242324775777962845125562185379135134066861378600258490734278353864566044586074207654037150281456832498238836124170168137710744742412849687562662960356918010904573893086593959732939799903656421937297153219090281533023731394219928946751339506846678013969983213899193775192040080667732683899758913074665132157274415711124891792843930871609749126230725105655827414228660394929741423268618334695840757438143978901600534534610742393954726784255777584546745271384227009735733988406526412159695131389052008786605849166856605153904465840851359849526642848118176167079826526974884244732826668652460587681454485960943156330026108097825476147718114358007760506348917828846046596929921196805931963217320451728947268033722798253751395122430571571778838572055172058367122698595983190855545230279050234944885043343846215357636510892277194523249201938862684769875577648688326420702736092017799449928127589552898235732573358622865935309970252608422698160796322600157366791338469837158722363085766367282954694727865295882070946435724092073926861300469729543250063066249212349430973249709468080064379551751988498748284563727136704008082579420253635735035266916867997385492579425663434368111807844426092602065538334742480496248131982043875939157119522402940486197697260257633532888799925477298582351394648701245058925214844975016694695092505615380229782020622765794545961693160149691920982637922129347380370528792102367910551554146643708735958346569724008962278821292967901327410332436792150172764152777014147018961934157149717163065199644681568630910576485825854778263367816051311252032948977631404391711321054496411029897289946752541457354190405165328140101544141954772687634619198733387346538128538478457416831834626590542775740895612810547695693470637352936204575716201104125444254403882178133027397049661075910436837459679387584746880901232591537975282181954006376220417104133943305912693003947598908775562248843679192691860460152069625651234907119980312001324175809950582669337277514000854733657659288743627158627169916855789930475951208277329093234114287427627237983207754501399265505138417474617287693117909669880953786586702133386264658195849034977672560385122833236159401862061788667089155689240065412967768308164970257327455040723131310256216204391046667309139623080193524685614734717978817418268162829753164029178265843863601539607024342101710819095604804344457399850385260174724337519820839092039898304928724214744833348677420855725190648944501041591700328660896459864236319662472654683765967655693627013220980379278716977379436396822782203400015015080296937009537933606013486551117993677205193508257178546591210240212003790384289329149018473284609740374963659381034471703122144159070367907342507150411055980704850301036456432343635525590184863562742756879498360820606735332318815979841890171955280050766295949834061690414686319519967402852718273448208293535540182682401205828338469918720034300813948405487318916993490126478873764477820213901908118651983303607803443782162901546858685218284244392015072385229793445129806548636693784297953935605169047765973922737188613837824944996292774211636276303001135471137745369793184695924854152693719933033359826360275744324981137109506356448021153474695932638471310630661946237026682533511853485592010329831368954126373144431029569708121991230440285984948426971496857134625408041743721044052374017551176804857690410163387183981634632030350966432327048594156058239166841262269907643146256670867349899265581449117555542568752867094656683544902210463964146490281830457043260278313810834609931012601616582942836159625976568888695722379457822387387272802808038997130799194045282591524446339058263444959136087674353900808782109149584396496420380903961812665509637915450972543403819773790754198867459137290981816920128987641229738038065450043876989407291330502270933543823071962054306800750484859263643900187536789626939722442727172786021178692844388659434798508966702064999089230238420722423593155421823405387728962520195938278982100087058618163424481998188605165253946578331077359113563086147357690035951734123516244467786011850482256094462161111655508274260226139956468663128202934540108543412688355669632297639034298469102268552201205746634724616766825737552836913151620603994423149193686471828681803678562852745264615727896642426407812305562902255388531716114998640140463974407637039431310498501779353832132437155486365044525801582712940884458213027994900709450821902752060914038510488980782388497810372314086641820918618598777652769807865840223684640430880502523271893364783474818421045492310070150023853034211235152240043840902633660886474161299309113263036239894104082986034579638829424277916624004276878839374709568448227453029185414959131930805561634360560616567120641171545076880592599691178474458605098916396336054972644546988293504412087347763597670882647872273927817926793636410247508440043203486472287830884537552613724741637932540477266497908187793567423085814453222163785545489777396947259929507018533798050717461218977779705072971194577964605113950614231754724330608129806051668231869761332620719049261204646716084803994092998517512101149849336229553082446729976471720666951325370121113982922946669060688221948595240235677582257089852120572620550932618134216862949831123036770159534791991584582276025233357345713958927155590011986122546958843946517296493115550756770187838764740453544324904730512683356920144413557445804101743002219312199174156040750943446405900905561805976956209659310352777249083628921023579321660697549914585402885260571471328829462375551485290159903706594473591839913614196040964918076862211590727299567881337453759633964382259074727942582915056211549213527689030036949106216656557712483016205352565762009108287821578279058542006813054439681289327000133373903997563251927210722484552044585330340717964928543999605496002362798693236533543519365111185643519345252712607576201469176891132820424682699722647297713719013968184003035048435251017595335582244465999260583989519761395420886008053320556847118743705394650312799870569002265848570495827380127471252484691688414839948848951714012854742383947780366429716882105569471956588819618318561443588786034677656439753973419706371977690742178808365588118202908167714779042069999771988363023562417311009465313082707089788146660822562062040416855131258971926316850303492442467667135748558465310947345895950314687088726583059705555962982003686573614934922241677480651946124695346074749643695096193627340636890314161885483902030557395183091948304598493653535871462539505115919993664804281354518651377658660308311374146485722319539157941152164377003521803471355867521491716492026153503721771654068740876434268791736681558393504025207141386025794796254894855014149802341841549447042878876630800569116376916517145617510134749200053172956990094497137786500053578353235720849752567278007872751535771134069018383064782257132614198860690235589096330095868475563815995734852079920539855148168307090223300105696489081749568660468183062249323279692908407802926760136070732928865459343899443067469947123973808025448577247425240761860950468322311724240914214670551109268856671284865672267964036207191191490097672612761610911670214582933352801575615946924962100239094656936017131921958669656770277833372770909372495253948194633250439523349776661649397732307142105104102431454623205647563959793270987891705035175680695384211349572620327052353536342787609866059922894125178729053436317206571217586538566886578768954892171991554393534652758484537909826601968905280066503133955655616808563674628933455034502028355799063302508652301371060696426538102115315873469023390342503209053139393395496481837549377145776781552009703775328116902646096673199676196967438954114797619676814663048762033789470290391360785579614095131950791935682009329795046719079428751770139248022227793570467024145759995966580253354435507475538413942327817338968049016460883922833573386330162771445214788013890398519559710970057391467008251901004357092532038327736706699222593237904895998047319922376357528931750791229670228415087612000406549905636071830217832476859818601758931539919515997299410894327004092183148249544610915986333609351975686082352062056031893820974474460696931043042095424617440963700465182648517636983898796880283933784488445399958211144911613825598117127264256608819533426194165222630151554313349060729402689085208261142004585755224269553807625104403272600708160814896809522979510658422133972038881690209550626890077599503729770118507761851231873169111488502733883162891732006945161975731084988675425876829168493971618390655803339527558072243916745905555544424503829624943375549862211265571750140596774901805156154599304670473382843211878015664765541484517799272067814972754308672942874546988985615596803295401756197350830295542919969170259824944328525709753550993192290597806965365537493407369932883306968169455884920229316683058260088577477867898270616021600041828628608120928810419378380130416670597209859227497998963144332685406553147409283773013420955711665102898611076548234363784664384159068464651218295309469628811008681999093153861513897566977932920721241893784178833319873791886048407133922395575979753375732580897695035552804143611356521292799202919261302724466630492287803342288681139930860515979262418031070603539149717537101514178581190188969513391351017677719014585661036548370838061235710050883711503437513780404326286192221991896897712702864741912384966099154604522006151648831756134649098108416998963302197394260842038987406176513882436343563728451537636642468081873606767714602598304698849851449668103121530533132636183442649232241004478640186997883491868743339061711007690248784308429944485372244485041097803056222037038206458885021768744995447978123685409650763897252114932945497108007408513680592324456830188920465410594703950450886844582262675177603068453466878168782602911505671298377012137646889754157127132577935751533096890533983583492981881012945236715445478484733264979156498972440992954876271667389237958191855300205087747163320929778756245215832685791477186401561304162190996090568899540706508399177629393589008074673986171986624792111886184837955459328413120291671364901843098477671223668420057223849237851331795091652991680725041103094238531579095774482157670466593487441853180750899870121672713167808569794593892165973054460141869090115417516410329454511455412425898402557159613548557088782492776878678877628291412007467180548152893161345418572529923051503837752527596181421280863755891163407779347869729484843808252039216923782940961200892736822307376567859878473679830627245398845096514259932098193243655204348408099979373209775905954162844825571170493197938016749577357648413865986931237189216574449300174739519986859769258205592188141888178965328942592610793790556707057151208033848562138008207776633353558807976015415393444027414598907887730432506953333009091290984205338529768873770263844760498421204026521714776393388940508613518430672461586032538879132491038531903019439642672047882768133277984249490720505068814020940496876367421033334946152078987230498932112322654378494949073732040617470043129196503896038830224823962409200620299616466900844852830244361747819693381822812255889164946793742383068649304964921221656213532316641162322357286882114787052194841196528488384571701708996523813351214974049453310251352097609168003367550766043229368296466790264794265105249819375124593121887153561053723862455148482174880083754300344625177799023361674320336235333091885290615583246124523871811444736748433080089791338438303740704543419909283856221664444829438843436292945556474658922173116549835630604654924130666861183346511305360714215155765730586003425885210442097483128268996676542244503571489088443168530003187876543978874511195045471952813009649434000839240496905485599621426422131409565684478516607725639648993054106988701562456504155976649155781548768884130119088314288991085571605758360261850253879634256505383250811449919104457263791112214507504251443465072886617191201185196228471867887760757324486099365122824468601683065852442246603315238584021352842467441232979487272612286645607963262785599170184182623590479953332279522048627319382352442143821318465706233233255730757085145051332076840338298707449143912640833059307017816465217959825183885632462258904113521369191974040746609477613647317976674072882568727364982198476329031272579535796503213055566904737739828585904711141290944276297141854825823042995240927768050552794097782903022646055252314249849095636146323154741755546570876662927545144364328355902991225663467577144151342735578595357075766363364532723548361926187821826272410340602270509794481883204138118643069701416793106580219777319472893304978968999515827141044090619903194394246592651822069054284546431499307678325839947658825203287049097461391540083806574695259756423683299478087951908688678506519976411500645474362009206470846804751835369713493614001962030779156253603814054383158893546650392666471298153569465946344744574107493439668321751763370761090891970186157502670184510994968163237826552215871443262458004816490769925838033586305418437621244634223592459706856063813979951672624744743619335175814139817886815663085520203508003621207266409237276752103515959017232533250877575587336639549763513382308891535940603988001466626781335055802237355808584717980664181108707059007887082353609708462727842307144247949785959459938778867564839893471367743240420687491104600099401707323532493403191392366167735246548585780518506217368565447134558593145620673019637163818508244903699790797328073182936292681162135356579326782736938178170133518741113115965615094775048749690819136515002857754861570785371466569112856840510394016307118414605092980072676712029341640188036203919245790075482277497407240522633986025773031717246787228577278679046933838183198594554505872293254101941043558965346396396308506950850732641248252318802653149480133200584247780189747776023184503428151348975377196010652496678205974741047930555681009041573774933816977498719063030425127694658626020279446712269379741473975810328060218825745222272198455327868032054332529214112377696949268714145458973806390962613350147613701368234037740130779711823251420461397328703389160490792177425573181381419171615030641738630727976913137027473462012700518404340639325280822287226472430288595802560353567701223246248303799004838829988398051011738163366401396451525941119834924107589531300845435307690747089622853371900015392599590955686447183041128834770878908138169594115077363928970590754803342191841937014174998288620151888471888522184940970597110291315530270269409863290872528927592919762771357419156033053165755889202287287192475544989337545744377288076883174137846243361007300289708563404774067807885086582358730184859925106488472468333565980725413206450022539457989668384042222709472902824387314524747765654832227187433146528043899944585835713769291994675361899905741736483885229038267821917199368026102238598885515634250475463190549675864814567718756604543740005112532443617388816702874362797403160536017667954227599919093503279467477120377901439239251177082098445882319522165886796476416685585646942747619835708555922203907484308003450779215629724117815194570535693003946148965665904165951668233818937560869202795827232157654658220844726869652001481602195667566500726487965611627551242155743082112820382508302597552504729143406742124025266824318684836787623358292273525991432376027997351063753773904393610861956767054072916798395036927548768296110152247134163738421448279046524219472615016783030903502406704506261960049463650152755882076937487295627628279623966415618744015410806895331012239817992128654660928944324846188379924152977040006828013117501380188058708608973543461633754484225189450770168194174905003431674412624219500307617295669603385844055324106883080474259321001023339857131588372141293547583826536975794770256083111854880113651822461857694489677703066642898741191176976994538067586436594824935183645170249111348078818082671630003532529187062005570870175050224023424243157327008834764698141584264289281185621359238993272153526940645450658644420363165205344353815540441217285402105704679510064684699279974015519949003237609896139224499238797925530115023676892879500870848766754444351601667516956859511859512399209815111433952287469224299544441789085458429092174152663706353169770058382836867401260274739624425687852024797796564267881436918570482684088814005632221068025739494746647472872691804929709807061210062077590658813872972624269467308462912866801501462620474390493065527146527262138938075550034848922480424294974666206063521522399678323440869653535922977695797051031906766020304856141751605088833455422697799049510807142576678040176071596087290720126959138430379240310923906289785365038428346089672764811991147353416276197905938824511576361935763661468141935340466955036783194707568958671202903851869143940486961995630707778188323789866917930041723877780087855504213984702897383981623439049158974026338669576796042512258218735941623754113241141780567942863303006120924745799205822354587699703722403634184358082280399644179750024948974910201947253293571979679455803271322268739897497965931165053239777314671340409956384832101154403995435471110780274369830518575516843328151633364992009918320151431977009988338613587187716428859418373397847316108142986647444620631871943376888554750184866687898706045744375354412282026868851501171231191391614300009878347535030423298786905614654350162258866592448497441951795835637132107848349722815123737291100478188357929748409995701514695468032063544323447556515064956134509404421177787228386310150095741176508987546068487968672850774526874710210155924642206900154848505932787464225383009472604141047747815074763027080232532991305845800308070782049916502289971769006586762861040681442622259221488595773250656680688179028196834971750396181304903908212552446696040980353806450639835587852419042910499279291896879837025742864086122218097900089909123175779590644316679277200995742240940444968383237698590734030839944012341325494668869969223774971838305930817545678829534069971358177073692957210730018194135882587412062431127838367267424496148221422522906294389573755674884677894661525831160678477755620343062505135724728127202057813366719314786028461839892118594466929998242072390626285095379183188217012304045111955675418218454226032433707177638315750094620165801088256706855987807259305274851833600598574196088542679829579167814243830771871222367278644090890732770299468509929258496140350360503984237356553506843536760923817490600121811039173554360387133513336201785165020899544442341145317907643435661626604610238996120166473678214214823286232647065721881131275166471831466693660035721373821029228935901714924873036400616751456572895104680205656950513311629683847264284704968937601962563412209108919427269107773354411369806479290094498796715065092878544917270112749456286734125262927122222402055123883074085379782806287857585311827150322442441055930746280276612541854739062492837132791862145428708134020968878277660783611698514706754228071771342150861998858385171883078510454511393590001355370279635363851365080999557463358904326830021479802245324393690655065941358817729776257615721832610357895121378544724816248225382339663273589792698387110645090456375122644957629816253640180240274287440213450079044562400758378336059980421518805282783710666048282342497128916142380575120089557882528001589678177289981744807683455192197881578686526160659411340110088389539238724078811606621833865563386688047417722229364290024153524477623373361179873219966797453030855121920034997542305868442544730962980207650997110337166921367906422633352392850700890395483613560576366747951077259677842025124915637130041776804999459605904317921861674292560533656886732483208027011861846595827235905276907850460266308688192171550798334442806717657410279253205234548969934630718995509208960140096308224805026997406259389632205970598474938568302271251114169929707574084496848483420716675961563600007593323890816311851078805344166419646610035998291043874281573642016154219696775247384645215228345084810038762444849314310637816273207402294873745958076447435641016773015764465977888542199508056366687888091281146067562573637684100202426809282475522105399990098326314487444282547022397158835640686073704200248066973547361476264909691187050778526128699377725038164161949479768354930868361825655973666658769153803867535176018289087155915721417667114672397303023891322363797729185976833400808712526047310256308573933039765941026802183550958521232586372055529095010842598347870484909940021317564462182034161135778800540443645685521364799902550982462121304528766387059907972263145964355261387999530107784105946455839731893629037924414575646418315684665954662698989351307554517875777232864365712207505803138523397359245712205624709907578387293348714440705681854530228796104380648214151350415618556587189934405249346102253296896120823811306959297399058275428915259877696481577819924516117300799231381732609577916938045357145127716244473111216660315303924945743832129900396324700048126598310829916202475964221889036417314782886740721109796246887423989820884636596841491311245507679853694961890035755728080552968304179354602325856925474843955824560683302065741114968934449485328836997966304214588537550910451239398989139735485265262592495228066699444515977529824041311918550325367009007857771156854799510203452284742852830090184629424963089982680465316340619984934692145213065185424106042259601419619955013202522838102630655712100425788840035372946202025491732390132426369922493843726753740967801586223992978769118278757788045093037423482769155671299743543303371029373286438172938593460524774298633720540316354592378920023094349388384726936820154219414369947246838249526826208397798531944813809147010361735315186504439175629555874171480023326029543366029442235565742816093338702708674425445148648948390289729978267907640152145074439967759128235521915504560405379334965658581074404436701615967205500387010619844993710100095491576993996123700646219007221171169391692555434463690761562930163407205928182249827242522279607136300181537387418905696488102504741051548806125817691039943294114781570681645573673135293324806303089164263250822994635420137877904774774109175994987895453764021137552714787446451704862637678546190689213042665457395990128863463474373893578701726388086278167925491570322605984774508552745928227075398979972669607835486279316959191244372741192871241717634946608440434879819651578894866753037447539635614806302791063179352328911748680095598564157903189957099154545302307827853031521604472168880502011591248623536973667453517878974291908420648190764269322247908753374766651134259941693060613691463384180905134925250188150910644075386065591916627042779072698270028849687128223991865694647568889714014433074252259320646384401023267881144441125096187872235700606915219320060306440983728280644806993536596294670445555018054053435464118838193042320432028386234418450693642903980741117463277913386080867837273920784783747171618585000284553503180990458050011193983098579437648650878097653676605113155536679045465774035119863756467237530610456451132416405995984186120152887539728872714083657107864865893172409715245340949870206461111446029205222350552011958512544088257100097380636190005990868676242072145795767834026761342920450973913257399599663510547820800779048266326868088490029898116943227286807727862004639978507765535047000126387133827862661150931654794921579983094823434975956858656620895828694987347089054468994433413861588222161177703465121655530794743772888741984215978736944423632875243511206122125318667165434841268725121977111956516879886130703729899561915794275686022930064303279666706601146798310169731646254639471637875012359326052162503098841880210525169395034027391386723314916695053409963113148373462111347231760340964579459486369528065438171773592254879236597950381540985880347889988725840790158734167928434965730167837442946315703805438041659921162217345386242555160110201206267666629536054927086010583679514888664462464119228956636625735916109903136429063306781292659997628337661073721222733554363331992005839483855550955902999538096523552575107079831951513216262574392245462899689396564364605752334992179239742623040320791117963267339009424870751806057625826621004906610211111185094794969062670345810297533233801499345782910024440826940989300042634365808198119090500897038120057792770069490628729704679423636002093029493018941474614308810372164349369347755890930753932629582728521345357175556489425565782321393565225311900148388406306679911053301079654541075855614608953863337930175487605104378691626586585265546813215615763307197367728508198790701924533646953930830734846595709769448039745734215465050083972540865313624995719318707379494430147122400676532117690057850774552563228140623572846607627316058244740710738730772491486916717982858723411509106704683502415219678535486822578136451121264662375964626224985045410995085475557070411973602260778362559381045757560539460474653220631171241623153596322702201512555591009614136168075454072850330397859065472652809145193590135866898082197920364895429982059253286331684426340966691330685500002867228695633221433690588203977417374679969327882040986783327595345412987587016031629202571638634489611906153556031247530060418813776093577890397178552986565559382053221009079798348796292944258993036091211656467078395972428530149746933251876294086110691652184726832213302251167476065356397396310734038443861989688950611897473158386781919153096477399592782340382514038640870418245441537655373170650450883834741020663032748140306403507410771213758782032480258003019793165397520829711197712575023983980740988976050048372759831848928389335778129332536168355820334060633751803253571158226785275561193606192367925086622014011871020323272466010121252939407736985331244816842243436605903727622643676332452604205990356400658030629486423270633641101766682875753995619495445435995305841560553270677774621716778559692815856130641970802118286152574446189748914424715277173958009995133215709086433716956235665445693626472327442062193362729764215855705554533478180777214733195544655056762038252613826004743798175236956337438124197560705213169664151947485122414231716055499294871359753425688786303073588002878991935580026659401441214718749573830857100853668650943721322027652386822066594313244234653008982609093383658729885807316439126375952029744016741300315773408430110086439722397244339775548403235681131811208744748160638978514123118696069839005168561614445726468172728981262360507956393243132665660767807163336940283464805537262956256423893865414999610031706372572399102500704653660417037250724597278611124469103085630883194006523289452451052058987609556047815357100243598382611471564783754539689225519856082896594844063339930707906264441293559014227728179586214797211179830451204940610210739614074288093251034504454032363815303424950697824378640801312294589276273432011428028019421784718429733589933434372051877020248771593929053195831427963483541017084118477742346130414815125116938957109493006410896411352765121861792976392925947908048728807252026692604852838737902470819437922582629850243064720604731864128564573487238440627946413292783479033499951024315491188553488926192605858805747391811142174487937483228556634818336978024658716370252596960166850804668194549875194371321695926213482963435073565937821577500385220338506997573711071840590995545154500789592944094863050474524880126933166093580936668269361725229900426885687559062043675822639909835917546911212248133013857671991391731008909546997649839688086102271007515217221103400500511147432471355119053545924560213947169090132101434967635701523442375962646744583494721804319568834592216950985780046111913888930410533264272058963786717261938745393270446354794478474182682473453972598211593527673430865630437149411582893955796443673683618785653465263779139991995448503758802269615727470992191233912454161768192383934890001451912835780914794945348258959135485949595402517410364177696046923024740754181600424814323086896378492173767364134780178236368997893217876651711475215597034762078896040647545568771374657668804755681804306297849522066123017723124781412620644430014489953593079821418453628285553309817854374115871340828071123069250696301574665561579830117013170709484981993113921375529343945167576262469395044709698159025989970359641955869789017010961742446917003491860566163636933626219149368982484453959367669369524978753339151257859704280666542452433719708303272931384584581616943610835126103869649228618185359019911002617869451015432433924261161033420917638696672328016720669671827913932219114821299103415457347289682341621512832935725482568355707893349867765353488006267945165518776268805210944624170807210871090334695112550178014252913384001284567242526053280055655737070901035717428322194681281452379078201368523557143865831425274420181289010352969784631380560901259816186426161509747016603643166420729138533334431002270872196543533453248806325644978310131758153874880729134451193119797704671810239339607605147690510273967779659071463034076705447282577443559442913876838608197852709525405003869038066400425055390437196094140746130882022079124423499414188976057410412907002202468276099455293699949363899013148226204370181543423584672841239654850486940117052392124763056288781984011627070223107195137008134500957481528685900455171914318899349059812935707939765632177567383453706751220410782747184699534442097722778303482529435582596189653093666446782432754805949044769246367535141784513767735550679507774317859931214035905855363288260068957202413279053044395960957134805934099260306568015682295894724900643152528844585124865033147729445991760238832065446714375432250131798888358170789088371372746405664505530330842782810958292362835323705831373391471407244288706796959210925537291943566428252275050946667049702520419576168528040247615828833783172372244491282273488066109257710788892897087665484127699357754795279378165271275447767294614737260153207274457074892849888295449899054389807850544495555296814941492969687550809849276795213312012797213199041116162226865075223579415034844260102589570282849133519344896105148355856557342366261695011670608506593303932720651333437417314028086199683061883939637714685500695493002711513069198747375225394269933626638074871434504777619319907883858019550998863565357578969301881867438479169123222172622692664427300867459664471675784654802527043839814110116943084688144866511221968431740111890482757114647472753162179084292235774761849609208598723583809152005530196901017025022378674257809282690288508527953171490584111912854024021525264874159180356071817364419959492575256063408914742677962755211823315778241126844110045763044349359749706141054644241666346445614563647400250292552968896978417047147861834725576483379978345750323688895175354996801043153174318776102816195505717616916503600295460817704762472508617240003671422386587890223353026746681734039918893044427345379786768894557889458092344662483220857410068179915600796063649829495581544075119865368895839346734685871483812421988786481772855601203673109248903352215969134654946221738330848505507046078807106297837334668744724654383662125059787311335867289246995034690029828869120668237270981747642357350416349361342133353525044855064492869009315862940154351145300875549550487077530053805464729186171686473598541917394473735896291214570678870842724179180024518607974216576176970007807646947658332127328786462516770850475509667925753503224985864878014580363302649857505615641134967525265790325031086554621424264656605155033058039713164191355466684941536716841375184693757499385472637700282969978064650562104829148540356122104911439184781238313403309798295710299455537493201219617543557525695313354537133132379748181609141012940775389165914005535593291385602780229820634042269088997939888545469818422911873939925792238685160227422704821229123989868309927989425026594026212587361095748952431001642660037580669103410083388295714539154554725590730503818765675598117114209602928178133100159079109749639250802903273678383307387311597093441143235120925503628592242086687244476578591550298884658956320167700563051050209825168527319373714091685027659130175664381614502952818596550997219926475896566701859335133802863219379667508510386842437842300413241268103962414740318989345507084523490897674988178908797313305483619811507299601884310004484303340374330594056809573238972976563140100307717097285429044662130867032210740699926267690811537731407160841111862349314544078202624799293046427645764342278740871476362185134996636811902593648245392126284534196760397314040381890924065573680662446945349840215577388291152561213285835735713465432452384350363398442626923625114109357409398720350418349977434885155428554646069831903328067092015059368921760817788688900145327226039766202558983668662215480758927377935820197523187980603830864130115531435216317678560732985137959701418125193716329552687735858758823284407937947941325887204753894179710973933743158196283938971543254756979623731462291612591359532348574606266389626931058197780401068253406850147859536275752813657501902386448314771891129502718560056201423687627975320967814331438264642113441269392404012222607258211110845094475439488312150430232381335343675395170018482324132685661886331061405713498132038864106051986515872001232794118966171229859334488438386379177053229968255721558676890264718723318799199107037246131066266059420614493337252763695938373223831916055613857972445167625775185941945600785997432428160078617212274782512319513018277486536521820747789123010465145623231114439155477492346769821617988427916615334547118718492596669892549587203123145580442286871681303597089762295015015562850909331500238280124662474989417870213956751115566035499176293040169656876956731587553644451487823963686387603825578362697069937764252830006461145872836225952964792872323261880479674141751537664978523205185935919976829719792337416296801182302421088941569073680473609424107112713415933612737016388076455068132926349383980705400663835058657687174856032907231107522137992497678117345677717283749540910766012676450343534393613534270101325889169898586270113940735756075383697070926737999329752007049193513855749037599791540959619950122938334987080070371452028627181565060644559906929231902594002625924828767537666022684471487529969471587999809747113870460119119879857695106514728432895095311770410899447814870845601862824549942986702379278911564497553648610354571530612034515974040873530682399544430387311022613639316441578673766569867914053826949610616136310279716822010396801158640987571796570819354415612283700477463508083539571253809495086118383697915347928683430063691454094764179391230080408454468797273995749684580862327715418577602305206938903390018974223537614865818804810863079150366746005532507905508404404037192254302419948437016565650112587461570766052766231440629572318936339507793840684943320409824132247641427961925454813709289070932390875099044914248561694267991311943142392697540375055408786121300750986954582682993302714248190899354424875800403028493940710683583124876225595542471714982169758232829864385069526681880763283652045170867957875233874960086766559936521056749081880535817144432297251511738692535965304744365141330341311120759626240561124971778934736752531798454464588051078963263569989960661356922261838925216595981946025982423955465911789053078702891574263038849133048064604634361882742642821483037742601703803374158638799220902139010949408896132056593119498312443281164324681628718835090561478026579773035996161177402852357741909824996412290227728944034583678883788003356307901880547232011203297502504233806545478592862083788461393716002796344878806571043342168519468611788811934535975889571694640804284063896198566244694715681054538822429608576856795657668852384218356544462177630548127306371930303565375235185974775693373717682654520171244714211319654666723037659713840903438473051895005740478609350052231372481327862079608027487888827099293290425375031370103106001003932537970922777214751591731425867569816014190357489640577113020086483352822320159232248419416985488188832481977993877362472748147958685213645751950054902689232885274410058284583831052428197492474956988999339209891202053316426363230811275086855273648698554410290073303337912165606517146217714087455839707336010919323383932985767537897564302362580635417618161449110729297985002920583966135955942373367991548944811334710658333444183128414701334670984952864868811871619830645441399544311259458942492801631730450475138847985762304047235020273680088319031425676451982183005848306220624647094471293711937036566864797241169205977431040540018294250154305859198461264805078391444829053850599348107092298046260733952552410600842188209389315309477676429751144082196531622211035739017649973506380207465660946550516358217796933385098675613234953807234452395320661881122469654586962639229294409860658282839125636392212144406090218478574423499105093585977521212896728381322192277394770810723769883180883967561499591102587463568424637048629375221609913345654984865455028813325371862441540043211791486973988862397644095065888789921992950218349048287223427650826495389662830292057427431745463614382722890609746611573895982444243751349904594743206476543692053312167063085893622254794828857149108194003422897294641363657722467806461586806990022120799506470360875000718990960309733929418205466040466174900606608708762509501518468561406845558342740330228461451864200816737903169773470713741078396303872579632454243809307041049923364274684590211708032932004664725475040481600292831430677323742354696435363315816175376496875966163993065928262295152233245860868166110374244272819148785415149765032951526375135472592265613475327103558121966674837537414153869313927154443311071900721570656063489181147251543749510937493257722831738705705981907303739052316877552628764555180162227238828088033839516778373203087529365169315961561566831695970737266697513498182603676469940928953409813947927001640823464460031690600971197353163860876403749024630211807940094683875704465819263675000405661450678536969134169858263969937536359863233193138286264232408950931336278880878785995300468605280637144625422373481446910833056654340353399740232709907794640689604819632660837035667667164296909684031271149127419169298181463636506176026006071699661067949206625877262157138739380709483844112285309465091306638008148778570352870168713261213684316632722219937382235131032307737581962938894448527437769269452340814556025761348753986663751615241233616679266163832542914302823473740738857809998561774825667835951154034606247663597954851037034678923113803669524913965056573929611113089832507809602062414010513948669097219910960465023994665353632061929217075318024534845727935704546857987917953859580884873823394397649185399459669718950781686216219709822413478958354443462012569913912954292347008728736460822355466019192078754294331821203845114748698844723711740874030407784277541162021505381224857702610530437976660983300457525086305619282551656640473347225088657079414175641376176093362406094722883500452185614801622768373522892375574953781194102744148758609678064268588176560151910620537057424454499154775134799958437310360207971508739060264081942488150784519391741283011856490096573861817232397151933774511454167713188730062127022378509434878278650671268012951021489381196629167827385354797413211275730340865541127835474212396636146704209104002743674322743684143852779898645778903454486307425120347776980873429855119344874849771698523063389039124316644781131751110010720897852703077298667938382366971569092202937621745362629029411053431655086907737476311122047216750927229713027881745751976830859044311910642912213561044664812432487024014710443700327068818995456914997319248985699800854863820817938962313797394191480625397668762407505038107958264355459463235408206160209949046809182283991161224515272265378599949355237761450495020013770038419149382073533503191771262790675356534453354483358119657377234957857316191522354891750451621736090707803066594746178173878449817584099466805938538499693496131647405258046747402018607260641840261953900992449706706604317877605414485588434203741241753146842782212250193388150616538409806882089803564851653702527798574422463703245691798338530534009693194131055920899853295255194853344131173205677832684717039429782287954771830947359644074176088207229441596645534288990380965539961964406249826503591053032172398493151669354211364686115566286517155911426808022792515765738792650679216709493173063806062581024026134105043677731421692962162046822109980082287842810672353846514591154922113093755326418173474728425438817705181997211825969323466600748447447562086108334621230601382256731097656251967935225041938917705208651045066798396691018618826406207615468815041771874520860906484881120372670341847560369197969000711293045202050280973258799815152117832573231324224949031686708575538210282044067883172750537286800816737274091565271744530077601831072691368989438616118767686199260373135729521727137511443300579496821138272205258679757131036761350008928607804669355460936781281669425895961850090698255713464439019076868118755887523305614979821989137494554702572821035504664024936628473516664672068709092915824476672589371512992098776693501090437529115502186829098205870379695361212030177544255488565446476300590376616931400120556074528045705807516503758867162630791287521080437428598275559843253512222291162222482407072908404227431853828968002261267168355547324377441776088358821832846824900732350682879794726373506457909493031914486170297333886888247142656282426411859452358190616210082109884223977910678624344285447181772239664223875367701633382657239391559239364524015239268923493109665079727889021157670459825894987663256162756181563976461468427950875251671940461140376284246900540461625696561419987697025704913265377277890248704843375387446102758461777820484868691322447829540608831652871262262781679455886896743799976393486086791210169572451108669232016210605247079513837608505135951380141079910845458228668512050072632241529164552994264588065667179568931037229841466030016598966538898283247983365467144178439223900919146216778162842769160645489837408856379419480857763861236961003348781080483297188523087811487971937507376924659318258427429773816907287589931573384004243984074527087324352597468158381224992838174836149426499931240222752636565455956542757964734688694788748586337089202222654420710484405225757754460745269379046121477438221540979072776296192948326651480684695267987866240097116078125725187936466631418087504423673499440955071834225988087859083715758280547122192911257114532796908448685862869461612321440678037201499543908910160014684622801725203119726334393989154282351343808863645173857572088402160017986033969665551947581557699805476535043938905174893229128907698970309210973523339380344813982026467164625804753751551972682054450347267029048165413148941017453355847926502832230625468468037207795661424294337312514872902050098420850714449438104731517570584431549802191773280227649077358506899694967624474563040403803697536009403723061862378831657975945129612146417999174749825785854959176296741526851900673957639836279327661121601434061219679252565742764553354448303700543250239716175486914485084127129105322646159293169601231611808815925190692755225754797075349689377957670460117715835712918550406060285781474204967978354005121704072670071701153159691793119402318345022157745689507861982507991326762791695273594700068472532340106369124092976471488749330281542201260202525694932748300185813310623198315978117131994193018405558215467468871004786608615205379373872092075219550000199087631554846241088796437617566904383649329456031983049686878330475545681993749414625869249915716534570259177827131794973548074469852036066427556935643229265719358537832098161887187248385586065292801780279973745904152819993776611982421155039159590535203795154083808300664012108646437701585236405247874039337114962989644076315562385455497401080908762473388608740028581181764251721550618262266367542280135113289723987068904422217774595480748710124248325887405256774311931751539520335158363382168256076462834740027572798688538385820182867256557910969510877834024258357890952636230006789957830321283564218614370662893140255692263183266069130256091057558517883357291966827959534403004779913413095086100523943742051289778546383497536012044337492968495376455968340630300563640137345779511228558956669478201785324536926841416219794754775633500063578727537998261787549615967175042135396883047848668584951736788885390613295006633365547719864799971048823857688559535433803811138313453651973510005322852271439493455709678970111253104686324970983014043467417405380048061239993634389229919684233725660940980631792020416956423506233879229482204472527708998102320352461082015740742639903548028220691888063207631961456353488210633837446259359408985440756804833831113830750421993668308955459223532069532114386247058261277967691572066454122171521606163631917978927368124735529832514055003322228140014015202171753899597218745887977805459742504171087693834343296514630950213072038672731361477759385200649344747052419796704346739769113695569795502387788337979586393311153957741311666175312851553370291576461185783136306824527140484678073733007853358356497979358536757766613962543631190804285489917343823961745228538770707160662243970671747000202289698536949525835476814928704662803826973383246489348923408853261368782559492909895478976953845875725528323355347244255544462850804042427567233290795922152831375274491366768874723615145616494846674361988729269739810342731918834182977001170906473082933163525912834654694427847270485068939797158301002904467196378604102207199869489821732059693306567046498864987350032983030079197206875226372507910960491154372236532626315672614940587029277273521632733090391198435503924531974524552290640589571422256012025597769088586674200706937260756270856893657575102327107382614929074054602965806316007485711836896535947205374822113892450050633220394479203041349169626506211717510976870276691480037338039339762046173181278583405221353370041742979614830795149039246166782246079046030090487225926321889693169013085204519734964739573254599016947361164933517480538458591113623678907113546666700286669923506244985334156395330973116691615522850968498402585507620331174630407600726621686860266669009991082048460610527909564656963086497226113389228352726936561188978990723916354352421461643769244359277632519137623384160160943319161715173386985969661377679634110284103780965030075923395649592878325190699110200582129481243009944792063519909233973153479795994635899817970563360755063494034126462661114972575699733034665667168384034444882154764342220951210966145522266077357912376948735946030330685370748271900387731357296906403054033709942078787163321981539429750740673356001058371391202665864569543269573347795055821938950365288646860277380025756994750601362661358500205606769729344092708751859056604298100091011388264992873411506365943369143871384809871844137316466031051184876998816281990474015914711168220812901493136673452934523023170833904082909217000100336824741034962466953246517828022650073701749151898885674031720049147072204278262960557118074688816645714832230285941188568022874141003040681280277476251733082508939131869670664329792266768585108731558819093872421081789843869479434738684746748060882199852921355288836384812745791059691416402093357691459269270961241858457682635036829948078343084705062665749029840297450909673712927038730863330973314156750495969479457816966283268586341415429255375788556584188085448848329419383740423716242548125899705005137276392137252573729695674244179351429100346331768669835019849030408942408285428505400192243384165676626302971236211556157391741743585356878362957587090036757791556394590588158686907587441622384417343748793855779357146784820290296002599226627291909341497140565930052772862053186666423566455569387885573770382902703646471654474497880182076431282819692781554235066090808872977936724408908039504634500066660235895888118766443112602035428878490660066904130508377842191306434612790998832522387594098819577263130227782407005739300771107056186947239070506830177181548966802224663025000292443558217154135949572030573441559743253228219629907001858270038789289845521079313074054078740906611221986998032841312162855807316629519435875929400516739705456773164544448961922942066627417904927522254801207942541032391108826448197556299746791378677870291418930133033917733501872709406975520848595519943754884981908703733431213706972605203430122706262650954545905808437632125209564557242960907239510650354005087971830809057551129184117516869404911245793044777285963038242505771290804989583120402992740003153214526272325203585000318715477650511143201212868017107095349433825841934643200755865532401609119293353468734633243347247547580166592266949466464461002449406570167934715970509902160841993263616041558736751123879596252411152677908940617988002261859307032180292885690231606521018112870903888739065426912823700850396172412390688104328552182051976855932286590612419390648653061009591911640480086380341826155403509249151926370112133349511947249108634792526177665693552156740588098709809090994224180689992167354543524677133939779693420024147280265330087528296096479599469640493221727663788630598877539175167176793889760170663661706839578063321197801416688317518926145682494580218873233758608827873290226629678074009138378106485000936636726692055710721952650108750249541453597147208518809813790959171662066386569790386134118673525155512884619742596100200800784226717444413450895313684940665173089348296370880452363515737648168375007258721144221757677594637541188039388980558645034169256011110080939227373467516324264094074563654029197787803122456214215949577001744004043323114121319831895981961221146438034051346815057221527723757550939504200182050411736370259640567770591555879834241959905157465250057988556430442345363529192410891399447139178374762116656375542993568776058553062886971023522140469435387519971775894736066174505713120749928142796090012626977039268762607473591710254619868938222003700747669679469357911860899807992777848448403891512020029513920687552397511053464118203107110019699782108969841318039398234396917076454276003877595793818815286352236824951119862637485722074010291653431070111031684736203771605077885288556803984302252270936089755208497020589390283101735597706928052564997264248911063698629911992681622691258653705952191430009006588395008004911338045661964169009034212784475325687314128866791037936468800297764816209625238229557572693969039704300869748198903323741303901122645047792761618168056111988516114480082752793863864145658376573686149791105012883644861152690110656908413588926745211143752248270198690153002962000260145033363867028478802983079838078584296198205234470617763371737423441275267777529228128529379883501595737719140667841838310259136917275494266027619731712577251771772170736461546841242379808342931218053627775771108227268792559217509066325760156933463474058557190752620715391899516097159902561246664764790806937330048080015269400254140791135122894188788774164034853934989006584329221918242807533899946048204977606711520900447809990712219668040707461424549155930362977656344966090747427063739052865079345807383697068169098744699778314255307383760079384490884404011370588256046744734392349712978742869979571168319577596873873621150054942107716407995211156948448119109015733787682872791078880470104774659541860269193969667468968840109027395299282828381034091546944625838378565102882578479571027310723183719603780874785120159506761207570876846530160704651664441550665643357509149979983769900373854023496868358637551054880141604657679336098589806843199915284231488207736215384079689242850054055736936702705361347556433345167368860151758836467570662479708125583305192833324332947961514097536575776236444956062120786539320891010868880952272795194805914189764283285602516005641253934928589613090572780719893534024519633777416267308798566846294476735299713731390541760166954749604523627743371265753579642505643628328353515272006135478346287733160104891972381213947198886701031881926102278358712779526306306834394272557881463822413535146744999374655290201463375408393983814563325519717826400264165182415930395177476185036544071776866075416385540607570201552671789509622871734238102038102188412990957114924952967026494934508427767935415352729378707927096391927739342730249616771624828780871010267592945670117377745122308240560946383184765822717058092715117289616713313051462350385211711676483658406262842471221699795083177091003614925462019135156510392607424389196773373614625424245023333243649202899603995332240027125775034659745286414961860703533668421447703554961687627325646702718568813591170751017068638077583053730067527416489952520425930011276814006479920205165115173124583640047560788871296267002316320245240791550948250711057256947548724551071346228879936979974001506963219780330682141344736648141466716597148743767927394975761976623348175185141149475663924293797386855118913048178833077148629871154333598344603844515715795072034371459789475190830294458248775746989909348121940536442375077278385350124337272377245710490692242372351546794247597386338408709684253265264215159137874435386815447152230992946989836547904363279496042943622003539121334823302655568377281161317991159170330443174592668464986546471752084905379412903622815535360967395067301697468885288321814157491725061072482177912412397840998032247007806436151538820914393257534824966623713834310099602258221883809670910006214221904116816233201981469852406253856172213365943594325731640155695096344482132926994299269571309514689229688642112235736809751882494827182123678425581114403210136511079531688060313571742771069668881213011982004105949649867026235176807019106492127709706489866775799010835601209591637997719572527776707201667134561896075473758712813349827799602722432473248039684826821842513918243756127707034558014823560359864598086401059490361482577068122300840012725637405821578568635262286814566178645147978553932596667866332829277378729628807679719574718285505706632870613727297279608925671449217578999390227854787517856335559709759226725388548139418160855121758676494366439848557528835070638572746367440020269424776368799266850803636949911235881365217381739809470064610944914804641593317694843559416461900540473661247250891366099020645754537215380740572762404935678184993027568887821259999677228913242330193682623089376745999140535578050999625919222127471619202824304649044576606341907002315913524849643447895053588817901725206796054455409052408939774993403212311568572858382959623139928365428464252001320389297378445366340871911917028511729274964945842348795454368233300562435161749769141023900498551804863010350596450510006439265886055588516357720865240935062303429869711300857203800184980937321307641869797746135106239912212007126265560222998057299284719545680036467458329931888345755620072576900964264000970432309197423903938517810637160898068599035077701752099140559314509854209027830529367268755857766764618492962906117994488760772451580570938730175623167283521913514253469035352030979090631144469785186254579535613629859794515402957643981578669717134723910958996391014456809638389039332411532728032074557248610051029706460454239404604346184661557935091398274232310954647991329499889815208240131683900372554415181622708838568798665310378574434565266326246729688161104532002311631863259201272518946991046761072643766927716115868730543621660391522100424676801522929251204030439476592938687009542722355876129567266624705842701219200139913808553875618531646621524693562001244188977765944384142058694953070694442207148368201030451581902159668553983171661222006893063747378277944293089435715430824253783967189026491229720950168389833998094853358111975521842196283227981650367471295911723275577495995981564807534679416691865920998031828328428116768304236483892965403904518198255647807862911516124984391030071110703272738811120849538961630926831189876326342256491025283062178380390541852556644579995846034096892034095785964045765376189813626618191248054638598474828973293934146908497963326975233063155050547102002610606584417711802026447947729272378721891411430750968558188714030399231474580508787092901418457934454874068251272045041136616415277638172915331925052825032023441345468923443339561415000440009216958760539549274747103250652833895135492122616270021060301065645360066470281689300913541848581028666271755343756503332281990811495206739164480183715317629134486467622588507744283754308777199669628878749317471271268225403352871210130931444692680533789507089993702644904494072263987662519096695871136535626047500133772333478241346248318426722418029665831868799593082062641754214698803509586317538680286819103683977790766371901421361995801540343802346683302777027493573124348444159316286345153721461042919791638318710420454031336721790399633704646530931670250757838153152541302816200602459510638090625216158867022901708419207109310312187396654246581412185001665257060999715649597319426463854470874999767216117396665608095068564133588918027316910887486858439765238721883975397486687025752283622813964694051658782883105432722967520342017293467596585278342031183398019842359380494973895152762218120451278197404760927136836218714158213466386470722731532635717231883344231599138419546332228537714363552956245917976406976875182726732217125722019947340859687781081966502616996046926808738588495768129080646840148189726996480919750054431564074912149161340378887021083374097770905845208475104701009412331292811923005713917350452093773228242677525755331700110923416592034707286848255853462061715107821069771349294704445680031913679426974433650197905840492257536302915849753725747097548140610668948585202981062600432845249189726924163507899107814099368368502262905540736065792034485000168463470437026216499218858225832320780346898786707749425212028801487473595288998282340154750670733114724296326172883167793609863084431409349732049157285269184642917154059711926388596755942616439369854082221899976361788079903900035821542996062804938764170991334704011281776568648211909645573380499263905509820808558307419857724283167865402650130161925817992111803716009810958688388196233950996433534457068199293628380518175914638740643482024828118195404847414438954969998804001027681931646604709985133688537806737915109348936643134596501992144229286053138481892203312524957360540626374904723304976788700305431743897632179642937609680531334359507950168659276346335338527289446993001112924596209398841428022621236970592103942686333402194073007987654199832745987643744866004679973431067008419651903284008159975466410730203218331882115000748666159692386285945057872196136593537570008625442798319587276312969165589008283760919053070441342198823434863157592335966929754492560627917896114698373585989775662083864073802860723577076232748974082581392456125869831102410605694173172106913763118925691322125118065361948176489501846707803140424490267442071231894875848813242778314423980376992454545595798544787170178692029749761013822321775980597531173009544099828038256526724052221101756463953387267855620316362737645621366997473414466603224564588020323891522051495599220136998898157706632054816496380140426891016987138072886889216377575581321343040520779634614806251268488843005290465710752208488006658270065688572527838781734224374567404037438804463254345572939897662209925165822689761827172671475025446495967349187129336233148687768534094391526514307562251121197644574908063093778440806716075888949300460416307608243226487953837381529661464654797941470415557927943956423049327380203978014366714856705009920703478989354482150127805767681930970172586939304297112945045365098358775180308363876056764934587841229967290344264635251928391976633614829875229180403455327012036459417756325109492906556794659663269607164149614914232202627112641323285749962047470822266807259714257111874689215677737935122115406864514128924203055659222403637016155125990286614683628335268239093952024355402619119160556489459231572823569386700004605593354744589832417089159725496740656360973872937277247548518915542722951414712780018188126981970305958163920269595875374920712762294818195520110463249592547479278560910184131614985897040060111060183835024614744163597614554279002429895735298310204944388023374517036725625676873728522386601679518039703172216416539398361430204481363096314478667392228735760821410245647505118845698841170936594438160732233145965075599019898351895937281898578940849510678633275494510922909507819444092933551011902061086178462636179057614925041266536672035855551414400427701124153517622872939217420837617618166404705398965529643412400677949322782638069722022956452059609356027310899333818714994940553392211477103426194331098346592932491244142806091806834629302880298408881156108003852753412596328858357031121412646917048483937573967867030261869117880750031293164769267891031822740274174922289879863526318013689708358006930716020623579688324403432245295298746079445946480098970348462766721546445638049107089715171964088575006945438617023245534653722210249514117742309761936408828087872293856074039693560767972513475034379907618846948650026223154804253902633126529160968053817892082964125708858118511832414800753772698836217305279349406502990360608073252306240080720655790586480154817331788871190715878639921775319827658308335097951017582378151673637760500995214659823168132565221062114427113776310851809581259447167583723879209686761415813441652893346370273295448174729788923987088725012405335930846135477317108835665361483701676928715234500870546556924795470186763104965262286923467723363032165759369163784859871972287772635673557514278473038580686969440538101465245520159654592021572461369715930368359479387960829278878273765322930744885955801227049212103334559874466748597665359971607226458269227747674589774552685776537902398575327989144685046891526072002593540183833806770841887591786203464238665542667934236760156084615101637296445038181303943211294491063061961797875249793541350712556969268390176241486622015951230087544075099580493621583140015959418719163876016906620983438117401181910839677903038073611385255801635064717177893682388092148128946573844963236523216574369535438402073337679924231473858919772910591498741533180694421867398778653191419614451863269258296307736684654055198279073912925267020155229657077526941330995966410195140493975842989698560791824404355180841215411877324886183499650079875438557033533871901873031942945659643587919382680998902195894192068832013543197773186530793194620111789993331680497300974910481032145560100051829004353495403627961142824858686919546542498736595944177622260693975121593431120326723995127620488673606227094160537993687849151964257374045768291000921284939194881369346414769160365335389978939057432308879955434355132710810189494145498607183850694861010518626996278442987728192188601074656273746337602715952053795808703420156485382096537444257482447544049831008116513759216101440975563201340995817989953412726236423041485830161834607177956519936910629983688634133128303824334139149661264751898543110857972835465830303513415941094848266672360106875613471582538556569495930748080758923933261503391626106994931296531771263253423656613073298115334054107769500040156384511431699283250481034825175744770142923659086508625065853584061507997611460860486991233956491913104055820764835400608459684174053372297742112277887001047756084171837697775435113303940971709713655834486885551396635051847863063896976371697866909836123983416857453473301571576241394785917828681881550577452560947409267046188332345725147366655830131929967569757565948106670354570275735153151755934484101163906479359010714285178958410586817605812628918052021736290248892846445291300401280419078634043049600279905962700056909454129614992621613529262404535102379374919048465466851710981509439454512507649251367052824788545871261874764445142868207888028668516080139028124681827873736090681594350334660563433950711071427408059818294626648523960177706959022489467637747676609291911499043441470209977774401549841839390299916553203544780381057168019910486996258216123555860008914424401373033324922647157128782092437009571405863607299254020554973202151237543310780658102727598773089634304447627848059843016512877962047016489879497775033454993865563227447782381488415612027470976860006659103493611286953126401770191833658161672279853122609759135019876984889880512096192779278484499873093725252733536110015934612075343104831449629776756270146448590331225270751970353164078987859758269412007500956220193814466010653090573695584655247471416244818688569593121136004138388218915756349684556794731569063319075674267717150078165695277340405450208049254493070941773639742222106046706442226827441354398016743087159592898288098769118654023990001344101006092897786020380833912909644519424280985406969806266703820063166025872482057672478653273687597073173420646350486121398280977983372595749117218629699764030643212076081157956878283834263978339444871123492630692676111318202872471667678526074371801907807542368684519600971415651519852952748400409197857073309709022181277466594552474886895607584721229588920141160638973511410604188471868749030091508698884189328128228750976446076819848317308054844950743126354000056881339588019829597316109964109633276506853134561954857888554188360290553533269001241075691241961770599435440571213600104980942897270320624562762914904429911700812060840618875653604630034535888730678407943729710083333599353735841212776960120925464905915327926081015658447371577903690783133650272563556478663394968982925134311395748450478029720981792881676270953053296891236713366089109635059021086140679189267826566012598981136086492879204653294598157971467001322712858951817618736085883242873378674152436307861496736376577051091042238645697085971193209434661170170805575089043543539660733878535589067511053897645679220165392039775258966176631454424617501906226833105008265431798539989922189992181338996869783123543925451486026870868409303808143644403275902309426587922610177899528207813108742052793323526421807187212714253866456159324687935577264446760414110938336532242795117541805672547608679188967230789607320687443544852254920595112013547124003948178115736385754728010751066472527904936332111169716877955952149961921002927266518582983368405223763535288930392609007369653968717028596806568094573090082668424433942041925999024948843188413420425899268599773283301369443363255279001779085818091288276989242970450950343764393851085230536301946481766469794378216828675200240005353549989918885496161553109484812157636731043947234037864503722433404939227818380100980075700885833574793797940496706936570752471109459253707789333122013128043901790341320091391864863078569678813618202019954023576460225460084582694529031166572228351368524840353900592002187942629978452580324431076246575059768434888829873714890113747281611619803276907367740090526303965929079699896858350753932261583808218433674204828373868768911597868920677865184778744006361688026837216884965007746588425021031827785416887073786565082507978576037913935658088181690797478805416712179645766053363137588538465356474360401027848767372405968425770657262290918718751913892846415446695976301898984967217562287804458773873583590205018642193561538523529539861642328992960890489474970546467409238861821031917757893375440819691431327233307288057697789179579506460092562943947498812408128148522834771912745464731175990518778929510741032361936790621383150272902495738070782189307473620520557717422687026078791735598706109482602530145111598642440748879796796663334351340521763556031290562404565219860342965659351426775630972965972445194160758666441046315762891820249375079658738186835440741918435164177507211429893358271279972710571588984635344857913608091334528933348695778062262606354173361217031338731939927882009662855685632789100937596577419840415916687143034568776483765550024943027557971692723971052675657229829344188946000841144621446407102334440638859026545580994586800620781963991347294429876999128001069666238993836825719057215495827232083337297931682207505515500749289037958595684101674835750221425844355814084234003774163130323050715748897201471391603457468198451641732528764265080174926699987256763210632523307103619980366075200797737141679034023607610354003183533895611959361472486619396103813039150956141945804916056650432175035363447672087027734825034689317476945072903147401685135122764469205130996243699295920014636302253422534185938682649944689473261395562879974668962053834650858866275287192945348512765508651774935078553013955723448247595735454038336921497761308607728670138661004339949523644188547478002459356982267272438919119989214447784749997236766258879969151134297187191950849177714571825769773895989233428746561538078505691528307371890770641107452871220644757515005113786693033516910731381639228726917005924294641576163422457081280354064824200734064599355808994833469532967894763239064601532454670416735035595088079722993295118756619614714654637452267087217881564437317522674237690598218292841687664526215732421339383303175271667421494533563897375235997148355354504097814208854972841090114446609073041912727411461298970709032422227402740724596718128766156595504622999301875343468137678047248222056962148996760771492011742176648983260518882259013476454782855946249902834549366604723952193807099658266700119437449239046175161460169214778265093966801948225388708111808017780663299401947375398278830095751065379455842150913916226386450636184222685259352360976008603395110245727824126639848920218296714753664777940080564864894163574717165279512815502302925128469242848613617035066471058297834937913226730580839409842172561658352050717452382757274960579058506443587368484950233967096066383796264193221377553723887646503756900206465342477883322586015943276508518605702352104556227705090424871472892557145336530271610998262808646632035434781699812069749588759962000425422001393115231304382078302802166438457396122610908590260514402317220675088265424456498756160489354748893158417806778783057052385729964355081954047266219230798888251656491991838516513535783333602568009591387953758184060532410363480491236826710732555774715579575222934642979730709964398309443278687714496904378056867807614656981901320955913261914900923323618471570922951969686598332279334543103892365706101243940848932467751213712472968452487622505668147055080916423506433870666845657769386476862343698932853987985777569621777929245008837857708350919166230764835816478106236621700255552246315498521736950348500727553286432812137547255511564577583790075026536241557209418432176172840333532789325033031913155924975976537401812446652524910415566448525139162969476039047915329399228465077717306883749735301983481406750086669438213039515620842002570082876209893169590496380447011500426737147085263465473666487552213720335054302196582218055388234528583974135262235945019944923126433380147337604135194196441249606113126635447020265158690089043182298827487124817727946153548052412612326729621899037656430790664002178698413458610291009646369415351097934880970865737077789769912341565939097722356899199468958940801007706524711549843950005976850589202136584875839925313823542208732187867708607736078410604657240207710565305812936458864353863035574541612472038431936725553764223293396115315137282660952463640155960155013058039956466882703701480333830444621936684570066350276193934043139493630804095459851278302329911519788179552008885044747900851045434369625421129552014901936077962041439824190153110371593581621045924980441678865776366401570052524934054761633439450794174568514019071265193447681952278101651523297225938657271809432738809214415572581026178833269566331418714184579544547339899546000654889799361309629467264514131392977594115774720667698217275344563480551228523989749971133099557459701820726519914969245716699688939697142631125499614619758993798279228877020187501005104204992229807550570084823893348730320651525585170972953067904196012228649012186101868584624782165026636923473914459683339388129402024750804458322391751922218557291303385560788195467332470858992129676417810899306930103249540598378725002249116136002627292546157839365216416162908133832350499445112042267419124574032113576145275561760136849826351088056854994922695624451138431977435432313295671721553315539002324361497156627425836795808553847982370741043332718013416525503103719255979195363138612455290602952142929088839531468500914679778757716937484633843781759808704475525303052274513737825732161727055096573001053348131928712425489627795422841809269418756770444417497354722468585178376109959639041256826178591365276084258488006618687990436652716809471966563639180547286366885074525587670204914883604419698974497244962727027753989800660094970830676792018178550054347705081327112947626225314068822108859896935137984720849992325591243680546019333354781859319253898379195742038452604534276899436193363470231457434806079105385333283092251827924475817223587686461906591422027830648542601987205050619809769780137124755679554114863250564759415864811237477215105212288679065260800075582669392604185782977349331750625891990651218874341881160820339415193422679352179594578596774322835431330802737847881574988602852748751112632304578354883084610845497271110130606352142063340544403835031919099742613764887726720181316084856613975395272531139353678977882688534956283677697431248971696826721646770391231174170524596455870638489550830299005482874697856316927410172603843262626874589749681788765509125570057460475753408008278133278480240822802043229775663893953067787032940242587617505335187034550690083819508236252075624630943979102924777896542688379845097525577901854364082081083598276626918724594420497748538470322582785669747837285052897640169918560892005520855116657538147391309511355332541887505010136945537529559151978119522283949077452882887520714192593255877360351678700942258091703838293763469593308730201385815485382419402561506324709084864433116870150717415837968038374740902208897894727851338434405310585770694197014807083718895904879239376929339785418008777548507386809818739085362377778844935320820938612723792211122265408533224473957759331412857096693956908859123830014711356334470480248163135544983454375627448200713367307344165503001113775373940506280394466913648787243690926409144745212462139068750140123604613233154603263263571286433922591732335529250151431057749145369453180478921301061133825675335554040940845086276176161693483675622452870366325015285114084783187960683620405970166298265682780090610660552586697073572045289377841454927830156448771121871423325801837502510805990422240201923569299604540058304936695542206065809994680116961558722047568738735740513672560034653613332011157054028934104252617502232721041807057809367169991852094813889100492094976306161706137816147868867408719993918469064568371893075142075525499291169890955335711094143092000272146377572554451598015926379162331824674258396073150728973544885283217894956109422287728127125045390182964082000502849325090246660696352569495410446140093473157552966678742386656089101333752488174067844655096187199743668245356821899437705672774493046259112785202229845520787909316283026202721014082081757754492537996620742211731743841578928393598316758192773072220419291891870115216503646928710307048372738850080791223731538788987676257095040691144048257955957716195270296084823604171406839935221500819205608979073829397189944788444375739346206059909623406154603478875290600915156018057016579908502745501672920774576567157756140690074041172489971735892845562874832352754936598887338106029912345946948822717602870939221094839340174372929114844961779768407987589483432051768874610205048427023988278588615724103072935624861506475499830813650798983629808317500651622158173203988766165949898414374251964643669462578382097696732372389054076312565349887320588762088348875345317492143477690836507670438494061861880085911467350741445057358560847945009661869333652892133151907075588963107115439168985429660182791450651799535064259793302554016716565970203717901801079463377290343772377308741379119385005187737591028530373100452711170327996541250206657366926407411136304061164482693553842747784266685653963009727454280743372155699381589709980824707505878955432695301505145650602753435239215940526532586189070015294317637153201531114936352469683429259261703518229282183924976285881920014177165486638535079255607136703206287272975724479407638649239764893025240045550879755712664633430687082209065115054942409836669833145017465080719694098560534731441153717922416760268082123308481799348331323630475842040203958732391092833466715448693535383919103103567128386783170616362196892305470718456881570482677614865874809180303958045489604179892016882492926917323013594305872517991424584605982194791426049149205446139267547782311124702959852924345556706728574858138259946483764137520923222832164746029830027672834514739826628319242949406073240421549100630800787964258235315823321299352342242062086353717622150629204876584902020746688548647936065237492324432210989602984979522678290220675831298066365800212732457893925961548237325187007800536699102136586690353222891480931662645494470229961982773992094652637021316074871472164988101174802696104056977339927018794361792189960409852749222912366194345101320257285689874616737686527604744019010595826482980822038841034804256810576736026469435587146051931096580445457053786209969516667477954879539937604833077262071050537660704327808395417064001329978072976674976451455503341430189068095988041133316245470105464585959111235789780983357489849710162046627778295665832034730918662709225037949677374305838353453583528472566335026542681768427598426986036201440885884408016199343926402426017713375705673618505299294604820559570596890316332581309626808526541040404625089785842189062651412583441836035898451503428626609588898236514937328284248314003856758686003152611659717958015119951755234986348782190415759544574174512230720800643983106573162660693108581360376118110846930957907383790139942184682763644004975669076657730076802449316708268123082247299722255463804933427862916106447960859208207801264451479216604453665190849791446719965743222252137005425134342286121303265953289825287634394996325433556318351592825495021912026650307983277490639926324523168209773322627585132861637715932527279674141182069783855832121877678813951969744076160249146625897390019708601267033037966932887767549740935946738041880194301595569660221257754898113627958962449115991955798123781557122458980356735934871175142225274726196021652508088595165427501289837274920732991061949918008433023410650031572116970783541292134958044015130227728897401483352626785399162290469264202864012210686687624847410611016641776819033965555869215130722640090977073334129548760603557394520710780252780717002487242283442854350731913989035439382575400315355856681211551035917506709502284941972709872200683318395505146009053078274162188772864096173198072863485106404085335737193559957587328540584477254423026248704068162426598516612898805628499084540127902205745230941281026129874068992892190927069890780967296491922985087469603069488403875982671985564295116468162213243866770787188103729819426913971231591804323646951001039986265449966379824866499946463259858867420374491514193082917870615361301406769541990509393246050577811944376255999111425268645428972865157455147628617390132134902242122846777377675178711447935147507713767630101981868267592479019766836415475989766281408611974645234041811896161379774875820580841805876572779561051907374375861097711770013088741722993289327772515335483002175068656398090966315392129843336335495665167947386943267482400677307176727499826026157859607797942832013809387097636093026530844863416810474202222708991938642635028991385297461354324843312292550779997011321170439660602712726682959958752547721126918046753308857929561092573892122871681637628492777603560229334007781194909410738051158828096090391674108060576135729279447584203141329078410011744650209585155004399265596792823870503931324297908361875027852228539457634105519549700309840892690875855532512919587197133122397674011424481930101219427806541356104648860065615914651564603810252725396486631297749498413782259634611074608753963579340355744804470033361203427441380150248655339574577292999196401646937464445794896796690762052860227401510191797987235176236526935396945067789868307416951491332489460805321744186935121914436446588173003664671086867480399678823129378444721714417000682472167922671166360249934755460466320417679132777082163622700509215397161494316820388757907335487250156941937329864101865880093894401903630052277016828568610842865861794904984105109349792183812810287087920116372669868383200582952511739632337603978892681579589142231310840089795051987777809191569848869747374371766667604164836262095035257241503451812217016350612190000438376191338388183462407472322516697830060436282693394620155061121857942928809311225036079078975899495233782014603486404689695815160519106916738852319625119418906454552855909878828182616264151734208497320326311435849677389407044338821835890004656521571393311569558867194047006933413673607517258049970812311088010285497023661767068316473754233001887458446908954686452338499474283322823423961151021229645953374152608027603053739186623055965299559428421780382918307566139541860849833501951086645612298389053802196266816260959405333688924572376347852646061232921738631374658265338952118932892898218543588142558117909535623254154974834955134773891933913495250732358532085859847624608715547141808943039853065882449679721501196269637623357458592735290599280673232803207752889404560615651333249687391193653531599897956140672364775938943493139203671658382989067558331990511304223330822979608896697740843060964039263337143113371179311403753549355903667271579617331110161760680927876674468045852237016275206379047322596594938719653799810905965147052230343033405380981525566713435951419739249450468757396753323273458205372895005981787961465436512685166958922984129501369069486683620981052157608027330183430344476266472306873573477332719958964216162308576591234345561223793750709348550758829867350036232353753293376060004518344584873845861820804085033885923835346730675065692866731317348828076321343725197625293510832929754001949220090182829429009108511340509400235737010259748305349137628168376216204349803514290446280932701830925058616028011724609557203813029280038702738768421566864919898128658518295784601408424863363931905991831180959609033151540856507208525455091950761496582083948754145685479979492284688002699692386196840036077335633957050368579490035659161462458385014134688027714150260397938019258035652679640826718325351141517563865230130189716669018678471006978322433006833014250182984596848061495565836823639775774176288412370758750158058875586417749306778231835656845100790790841902084694400433860420183581269720038268217198842322528249778375474363695452077315728085578460844728414856626862413815304473480674147673811947038522464753123437648907248782632736332519526014522021359004077951654176574880830176006259016027707897282894344731165741208255788410293741590654797520431289545852375558385113814995911595234107639029757559812460326438557303703310873382977078399037501997603714226410054705404672656476406139838493910708056793574288178829286143896130793572269912936216057464978202450317575221905525089046835218099189912825302209201005187719000335609472536063182579554370046529206734089840820816931525522957037123430092971649973205910581901362479246434137811129606199120096222976272163504356648165247339027445366074444776212896925246457836818305219568557799873402257963698555421853336412193967456888841907755820056040112337478399900957874376785032468346570874284069589108540956098406953773858082977288843967274624500211086781083390156402788684714356641787397375106705036015459102650845047927583198565804594581084978087181343968871556202170292244788738527161049127269711252038424572727313875429528207264234753170150420653304519053465849602488296622167982562965847269856661107887383736206346737126382544804369343652943216448827271993554919399709834292209454489733964875714313924229360887060299683528272118007257944351192487591997715561411034948855713848094436396135486396285417032730640809258726807245044798854544633898649135587085643892985510501767017953367888930448395412533070841611736321502175637126604459710908980514669508409875974027870638662690387127937795191741948636592534213770134956271101152504848947509939587438256835401194429459578538860946366658221413049415220099789100968275598351458093815364950439567130821113346254777395958271218984562276660374470168002002203568077617531370797123448824338668522261362562982300547717411467313510318146728313225023751060236528096726061724936800940585311010739480206743312252507934146920688230703864354925010664138507165185411445598459560963456421825387531818633711435697969823338791701183720043854554685046839380129593080396506560056060224878745715876941839050676748290906858700332632448013694616185877123353045386058771125060312593907276449860734811590626539131695463468872815584909697823611062966982129883379034652692550023263742334189082180094990045100008782196599788743292329224743420226705454498237362705236227542148857056552537076629241896483179684628827422823051088628255180165104193379051640593909039623887328998356126009569831519613065520534504141094885481699754583340025196268271927958743730760552665556186063055047054016857575304017592589425070532709270376545507694167823093592210540992506922037034702105814596394510755048012196485178697284207045378260467232810785538405159191843018790513654628067356536427634182881058842738830358791260811469453203075553027552892326129321049863000576172095911110043842585799269365229011724809452114393127187319391112315388909431998680911909121153097326808872178843305587198924704087039312633750673995426462740853005887849813313386048599808469537884997586950585269031210368140193880142667232229978381897865240423407230718411776138233469658028586581488018145358829166845723099441088964208912777220381017543141743925590553938579518318241100363315854782312172134104847826164666582208909484008244509694046593068008178475844019671757836431097455168407803382596026797186895874326467358280969078011197672789180470910702753334091962332261869370211311391948628024297851944792293918788067045174779156897378384033149561002559914189343707189082261547199361048207156422858112306835293178274945023818820585517054805374231933421061900857706359913597024850756477977822006355031808265324788363846005287161470473444302424749884230920591584299743104644751154397032323243965080019284652041331660378972209076512072964139923013765776113068765777273151664286938945449260166890781918852691378886284088229301805999775880736991982786731444976081218300628054469558194784749730137812924722202507935734913105600883236264600047136587063714547341970652662177177331575707828327929411210072870996738812660717190187723334721829248303505443255040500359560634520407313181120431207878693817326062153324293446653390761510908253565219683660207319136409546322364313610001466822100261227868988195438076659651877577234890010767347605546320388521199620578332129181944111454472471028342810365470584656755089880188474459252706007719653556188843021339894553813104678683525179965626281194994422868013192240811258289655108012728010855836420320754526908668720463347228525221130496222331292763524638893386701097497712032134315189290584129522650575886598301390472791887722270480056313492259926741242297350287960762416827847576316497618647147416166846655851342680403244573751867535736415574266348040826701384182230927469476331235682004672952453971602752228468148774853046727990942022812265862804223712780341975092031557514514477292173373539435533006222696451891338287435231206899189884413596630836403942767193260553178750378577929668373744398227106870209397049681759503143815687891085503752207466115152859979359734691205706811917137091502442809679282411752307928338698786034116844043314731655902323818514387591019441742542886721124673896440982604974221693724981159079705340769984004509237923502482602893550487029986427825886617250853507671974714987508627101723897402802827751363534357002058601336154290369939592600892545921260927364405718871949328585139404527316714174639193423809111678677730884008944423899700411577190343279944354651220605174036454281551929207050743328062452476272977920665109832309069283588787386665726060703648208106955599388974246679626974049850913528145005196858102703115546713674714067047910693577898876818303635091116143018078722508000520337586175304823725891294090480969478623332959866123235983947299208381009050700152613391860541375473750226434391854744184490192562426648610255407254387531639126999529096400107103897203502144890806246270745245438856413453231573227743095194894450598021776730772083842246181497371044833958147874102581344055054231497197374777682626440325850906760627968839997051883991985679094437436539766998248383025449737509048884847103078969601169856585035729389555707988516552855744619236896504219602181000376878441467099740735497339934018876216844869019576847322385085713507317084201247101310979604309846905537568099942510242564560911005829889610546499888283038337718018479634502041073242855165740318803087283465515923756126210297755717595048341029680324427727844436468328993832890856788981413219182183347312250726815690161376949618550115689674634793244754177450424269234804587640443010034826476523595763332009202270986514562160168903339968292959583413653321080253346327396502140010809289218392617058428901842893838612012632093472291927316004769645553370129737112025637130067898225743274516033789888221080791968510555793321654129686344833889448740762494031271651352115068993003346977037967938099788256681796645276785087124919819810780301653670940582177370367970513903948883367436602952953037526793313380423127002660312203786356569199257432015982213162350574078071515678893221128095432965852442691701890773436589165082568491653788464104650617522621004288914559771897058061662946173202959627090483543978434575223944814021889558476949763469033479793463014006709676821410489822200079383471183915992220771117510881665463881800408428708753903274068111567533072735131043677449555133522301545314804386895033922627359287922790940696285846404224947482635024743487160709805349793388655398773525767640262220410183366942438492648280714169770159521155952209214108901935835425784490771069744426218283497723426504956396954242542197541255221188168553680094885261147246636749844009610219485711161836519149582144868305378132928373906448104147461611481939655525710372539743215513393001159455398927865762567084458943237957135132737654161452082216268539447587835988308524836734040540115823488864439535813118868214742579092962273963100257163796453101889610771682812710532007307164620723988769862381600376155612576695377054099434847814473907305858199288809349002440234834065452708971571571059115638654414784602332553826695164400018960264907485569233843348656686580206049031576241486102494511890428770608906759358598431657453774924908648435207852716472402344020248186883296474462097843322338557415458350935386897516734985798083119487919396632042881185426053424060830547679135560620100493300542156210527518969957789772152416059954073089278250848362404061350404338231577513282972926082153636542421067508847481936057864651455994702347295396900432324063709329170660989315337188140258311267378334184889931366576260094746764029145472633737109314129330178577395749240852650603649071412465152017878340240899233366415434332215155574133180008425552554025135883354218975078069751382106100971901103315684706165585288700773405330860834423215743829170556604107775567751070104004533544357213415946923505981257224354887727051239340382370293392432761015937258257436817428550311151980374211221418225927838929475052471769606107589824151137423309384748276915205351607653025734022301524190026454200252651414199943531371394701586267556140149388853195879352196443008471977548061985827575373776157530808031352718150549885253768913663527633577711777180215178023801469158659572439618878857363507360684643951873524763904797784992921338679787801608789281258719638669233117864570318826702076376711534218080031514372404254495214179588251404402073848289091687259009696576241170509798312379136878361224431337481255759947130141378328465663116794819534408542635721909944406732291615195983653348642998616524618944154110018422296127773772510578775022702557888133583555792391915625684947549585108110841150097861535825698607440352952775066884104989210310047451458446518682077605897485775144572884833036661857368730247356436998283228799419966529772559084610137567938711573482189773248372027893552359594241672605418495994539191103864356667738471879730049745364555889259202178246447490001401343734988235229313511254300071672186892863889226427001761108968611547564648707486584741664549825703329506571123227486635350900618405582709503275747975174974414492689787992583031773191272017340758094465934885240808156823885373992996206738564100083174228613270766038698025326994469481737921740548974138136605805844043947821429567711882548581573961044303195333371241111985338079726661273222363401589280995795451008010762110136044115585137970744109736535887133402230829558196208536782492915559239233563090444515262184230816786390435798621313110283485181225154046945429973261856339138952836610262820111312257920217319722202449060012368241153763355761306703974714404296303023128575671067661267012358137499836942621917875331081680260525156250425196737212521375205164628901481027285250563857908390104459093485871709469814193285174283006795805106930027213039068468031164719909938538900756300595729927542238272847449742994928412015078397797040161038406039873377540772565063933116502932404762822271950548979577027086281572314025432659479499465934068966640847199012659369859823584298461542055927572498343247787783135138596610830499501044699185379501470443794680712780134928696848272447621829046736836136349975664993205163921325872332819413102920679502583008320567491245471720259663682231285823854856809073360160147704561638997913681743267161018708274460248443897097528984946750996452067663203933717726660027328318349595386255378094588840803832992627447904120797098561300553810024644592617794943618146496096939691272091303504822916917899694342543645768453921794848318591148739768607170736875976908005374731657656759888143777635167047409219611205355678017272609433095702126205031878422786213509873696437379628223461071472100598035699222485190716373715065862926152789449601759316531874250884928007817057755304748886709654865904594963591580089351161033513315323048245131498354078343461556518135355205380825511784312066066778152821374221779783431373927730292704477903348572823329340004640919965265431499307005797283093892973185375108530375307285490085694585228074787439475246800751493662777012761007189098866542068832769942754326982180567963525852519132416856620586274333049893939868493136532594507217074412263455432487829198535528970510979266939552979586357809365538844640858711202441677353997301042974753405314633225570273763036500645164177531729917871827100120580093485578758777358983764273858166420962299084416216111931411175886955592452487766037123510143199565960621650958234881511737844116541157467987864747314299468655169112887064929122595201486632292323393627602151712957793470700482652577347128911945237540729853133665695222541340769311432564544820736888533095834152969903315162442742152475304306541391050568824513205429035390658352434609207786132421838941892022124297390531417728767916058514574329384413739709541844922101573093421777039640190880255581113501848690237325759712094426420030031760413470201852970189780129396186361593282250556655005070277451324685838431303508926298259928764781403693700631050114861737948224704383577155245442761455517485764756396793786417754111778439762259474369622785438633621922872497185870487662453332520492388340346953357639657919766874859125139002826635826866798455149405588599298800058935637495610538813063714286197903539129528649156840861374432887325968492815818050403294468721971339965830319095669312476359478986323449907592276418477122909475807886120242041461685539310962651979026412663736308861218991964596915321547165191843308816012436008508578693160195319709127775335130137657167969118589798182346384755438595961472954200218523450464514207351253573879869073672337703138657388448138673904921138268492551567395788254126103091039748265315105897303471139469560310045695935419603191853052550763693520098149466971457641915513540059224316947376307861173324196872355990523376994004218706772775003933155519853407065486105258352134306697071780844792596178226539773427727595932037133664948613676411146855144318968492210198880058474209585133792949001895351105127629861463050475145306424514408568374849072607659480209071403161768287661081495731108386221204785489269928735355546937719496718933159813229988786534465026231875006026369051020692080831480179529284696955990254524899884899035558916427611060504290340848424975630802359786058905158201957117619321702014157740755479685566553246658292380090725205616542475939901392135418345386483933125187626882285567936498492081889296817005224914950406892050839701999502500972738239272138924466274289894998467044935988789129164050163064850681167992390935824245140787365420659968121126646701219633193714189728736992262492286849923912230537211477160773701904444654241006058532275628753487474585866415769231866014162762863396426631330659846317159841058504502632774966071243158098903013328510671847711137602837666601956368398433275032236547691786776957909537860679980605030417487623204956284509709561941246626734383838866018195153794165744864036527403944186082757604052489936253737601413560038483992796873011480132536004181442205077137706274671633845972829577064108695593579098530172085466907278200859508443487182517256427212027404953411926960046689673243394532425861244718699614451843402202598669883003308589359070557332453258801656576961148881222229511896863943455364655876411444929395264091973677549261660085670696665365983555004016568569064277970131870304291549161343723461616076555909643103942400524227907212756969977700035549307606615440956162368662451508567952768267280254593559113317000385545987713353665762550865577117904795405568567861335091339327547927628908596040471311880720184621169603765195205038433398180578212175710684539791821006418533744997579402875172665376263253402492148892091549237198651048950842226821707072323695878217699048977307264805860196352387896630413629591678298158217614279374120813505100733873617436931170930616126234123228194486762988126322557849354686008125258725703064642977176402411215522669768213781869368368142057685854460631744931379909751796693904840965796477850601879571017012444043259631123192902932218076402375734689117123588308559140511302994795767884251104128255249609605533629361874945159184183135192098741755557433145355178095954168139077079793660338856074603655987107193336806520513296902132938873871084367299918628063320469731917607014007265643262993302216522818838700985486890535912826758094388049339350321648069448989321031118848529724087632320145889961533974752735094156996747491579730483913620734870720292133321214744505284924229495152615991707054240907748641532832670724551579148003368849187240058370273283791697425306894796495190472270320753742495337522112933315793597158602033728839564671937876177125254302491709726566251629770575939572080100598823674403892638274579964007926941762504239664372008304868472902377225408542662478888701233223756624157860999714532850429341475241421926647013968056131870016328492260005973128768924085584967875908928916117416596536319019374727616374257916180555043674734356733490338910167776379475828861094051119125325100299428280822734953379466871189363862756574694823128947638838716718175730629960860245033215214904681708735542536713412608103097349383795783468468975204084964188633767032626343876994281784425204905770862448820100094822154349013066445809439939601008343530823954580220446004742882436913672057493900467710173322161532389855931587101842897636073456085302117064206175893520858832274779051450790969596114395451817655287310178765713595034588921222737683833254494204415577640262362125737146054424838007774128242286621655276080830181162083037466370958530786355163552988791284144601761527121409622880219013606171974397821037714224798780922700629308731269573673977801688865655078716789652764339763365606184024320292828702308860363339247691467218765652623335279918552731548315448171428312526848011848837271720179389280182267190898167011654329634166513910567962189858573522359807629903861241742668155706020516078787250194780218753961610404696869453222841692265506605763069064639993329895331525107008443955844295226382235088865642915850139678593895645588432712925892175548616953312051813841525383980798561921288686802459632109725322412078576667794205307006354628846056573510970772380020638115105508977704433121981460472217885157967088870244944933717935637558834679068496343242683755929239251114706272516337427597560109748183113509087416620833876077617750492252213218370140708364179925789441978929225776887178833389168685284011439162115144166540233768022637916925959500897061930395044936652852606898229066932366921560123165279100919531564699991973785321005384735393095307854676684202226067260625217849148924635844764403396918881914974648988480313094314253502341685173733012825506446748184030864376254341141695709968743508122791328909426514992975879435891815787012925033169502280161874457746247765368545861914183160295214304252531494080763365029479935235204682686559997385833110600729142951327271038321159554227895331010839858111567839904588332117042230099835212535494588351967050187538674241470079078114263422737039289883443465257502207265101139330698456873798044441213634042489986270352757130010808085872686828037498619547396977923091216296030675152215572474669672866621841821725403214593236490830580071278005098073262262901826220254263466710030800759126104758627243734548577190100946626864534478863180290452041452815472935127978848212941096363496892233743686090206064605589887487806789354126764118674644795570400701747221271341864542112692641409515892324863811990770832182800292391585610506820000293127678072446174147071230829126914369646735630077363587776211107473961671337180138578127655321568392845088199247131684005780518100386105386802460682813188845020776248422040351818678488195097957819802382248963677070909966958932200788399175262355967696703669033735629664780480492016794499277353093314568952052843123826001832084913319852440731719979890436390284524197143421061762617280826418965381216230800324603991036197591925734977072531600921779110834366528015742217642420633267585253624136485861608191877148391220338135968503114804281446424777195707658261341862315280369662143864537542030891261824596270937238707219352046688195866480622811575937528396952396029368548349466354698591691024790975282041142319121512737631176725756689630085434235779915531038576082981237608638217384011082562207185377475533321670830973520023615911569033786598623157009882501881946577951474240779602122361420807273660411177280540475519994201836128379820087625925275900833158783275760375304761177492632927161793205636821222708500956127912312951701724394427355759907353472259327312921202325441686542412351584393250192392618609913225047084574215807997289165433181596412943668361237450592911859903523022119388064272966749146659846150532891501370759162620890739539897521581517159425935962624999232293250517294894803584363378456701071403455308722382525644655605369617307777121400530258408069011997073422805489334983834557104547813756703310148429750534572691608111061501373984902375735018496398804057772500156837501511604363452116202707557292680610462033904782008819659331169276554874372640050723905195233360475545011398187014952225627955547199429972785819278089321220665025916968880812041715664399921930241957313311388350246199678135880974177379238857842804303223711343504121348715883665805752691271958735835517310070059026884421980452109384591411895545830235272550458907428733686424806690157139873479314932210599115796410139738887344161592105851057412146359278680112771927761565929095946098120245895386324841698865970111584708839156015732337040559577862465214758420016081829953511172826699980470467760894050427610203451090115399310065317211825389098228768293515746096747529262955096344240529840375330074382334387975405826960265823676247066616403822409591643287298815908677186098700558997438835686562578421577645502805210329825920259434785220594077199470342808757243477558612534669034437241891867856743413355050856225633656940265717997092613587899437623780747277257774827806667441275676581410853218798413136957230266014112428608654985278734668836646038191329754172613568446281146789617705819461391719292777856033602796251853797772837725637456745709666870237922953146237811317262825683079789382507569692983307303564350522184380983232767694523799316578099004150083868105827709279198761913412020353943319873525335451340790248102500988019736316663312137534673272403225984752459982957486836567154457157582230770110202703713717389281694197854073439667219328076780081922529666486229363809246551145367908659693589026899141707204482843636618718405867483338085834563336624098833679383761342407116405614705365502293742275655716327076367688233970670279939686367954135430617762466312783728583390833736803201036228127723702256109796089493337458501872464132031901960986702461124619683155807949111284984693793457948232944642180126333421599564960597274489081974364007476146514659192089629171393889901710982929895735205774475030124382796827404699742969291738406369093360826818205374546459719256062531981975137222060298597779636888077881713752019335783853877947288714317949028274937120319983498731301571326159774906876211186638068090312476692083737856387571912306345663569317595548421078081915229422969689465297460595121080017141721860751306692567616769890957111058516810270020524396727166935140165750209747297365232269603599335712357404074147842768651321183442285652938077282761868747557285616290279328849708642572209544194881784526874468708867460806196592060582458478371707238605079091558438460915886545620915596870942472826655347463598738122062029933781086397187541648919810448798666665943896625998802813878389213096367669070851825506451167364989682497252605858091297104293740846206584251336866625883778885131756801469574936568981027134481883122580484204885606399563311116761364493517208992501705169428488591325734450060908761895180153809678700807533201135080657462403162071991369359897739682006006088328141267372858528248218655828435264223589166415822608093350429133161831520500726969081273953356248856382678610013767929762696210065316188227734728824597897995224904941256648075098255155614023055592403545344836663469959914035038433587526643161068465570668653608765890088859675311064742628026875541818013987144108967112882405414009102629691136365426123122406661431654079662925852156817881743637268186089414925884799027202474052551616868013675083759120884915997115126562012139539313289108311508062107891737884401139470204667023999073976417435032644909925943265603199303702960985947943838117097897153812201992372920142549129290612957954288835628735058829068358354526100364390077250891336660539002768798336451514930880015968857700947159805553944804835792856196089004874635312810752052420618602019098536556131524408310553373824182845554612243975885716406164932002410926609486536372179491715471992803812877639720229865299984207157783017680112364121087203775333048005778736327150037442040011280476145802372397013700072773843313036664668759186459177735416197872359504338334804018927401481389261926466196962003281753517507583717450640343703985837605842419985276616943356563417596078272063470477182792865760837454132246330200795700557539705166234133295421436195587864752403910414256128489610757767160847501489589551623542114859934554973894851522146626547055282385962656350437387197140290358358721317358493620252402425534703847902271110389404322219261750866301365687513690419940998193050800782100417097023813785284467248238128792199970394216360422945036749091218494263687618642328310286901700890005176648551285233141598943802075657824861798072252475278119469451363092101478612365376196029970612582333003421005283488251302175910785251602752021212665096813907247512521328860423953168963804589557088784342047333778642914343664267995914671409646054441655004456638035439379254598588516642490167200553974101465002609097867883796675987923600131878855411513671933363341776103066007424983507974675734278443506556658332182713802166764854734142703921596404619168222270461085049393546381680675852580973541622236171361188878974245702842825485057960954730871485710500305556938845090967801431964780357764035047402671694929206347645851738762927005653850667115371580096007325968586592263951342130090468069652254494348440617925462800933855304004320971084760034200155339960904850152939060724779307056761485874150483048203573627461902468930500264365186246548684664695017466724546812190195037437426800735679523447238938584263577444060457224632359981241953920616944753499719598609217970966574190686839296386199507871364909999112933876821735480286096641126466523625064957074627255698493204855547073252670893223926225547596978747077819464193858005269763891247502450283243954025164571342883690134875580051490467722064850215776418906710312880410787294165483412632543780709838174434999137914584921445322505845100896382906865086827446532865958534738516440925036521665725388973457546668347929143466215490444546741388871232484250563473270643745488393156377673150872677252116138067370108163904401661147751057994323018029925928923180628583270660507839522679831441089627070474518022607220305704463195662321097411154900897261130271703472925376122369864160533689894111216680256577960073757884070359875296198128879233324623975875820936012789251973518592005361280978745777911253722519058158473797428140284160906794603829043006002157013092069862841861918034180884687603346962472700135260603589195457783062526839879131924531418892854040127245004564897983808891262213555659289853402414057137891924969686643709148203639789778533570817202115682168629222123048301646728547941253902092957178864442092030701158133792855635792743818130189012727176592163202138698207789200810690108471152992967383685257367342761531206436854029308420573816436349429673646914754022954720818818882043254389609924475021829441725842221501329306536649671054993852318643824028996170696305831429219680293543235658423122957576308000666641466196500271078879362182443736363351029386012037642426549213371226230010701951527363508301443524825069461975778515759532634007389889390118291147886629757898253605725360279957304661038208899920999120490322884596068935948342419961989514547394950017640409390555890426655961275268066201017435877825602899166879475892420771588390168372097531147350804154694422140438467125639470734984841102893992447634925055757441759993638196348410406995751926844245713606090550607889463039960676216523057849648886757102331248641659786204357868374446485444058530971634147818912937480670049816829248234054020133813622936806837406625214876737605708971018268291039296698519024252475234590802670289375902552630612753567583716899007290463634522141403633903227940937652556401658051651756729141397980618843461767683839758890514301512494691347627195273385412998362363792379099580077301388229446365678896423819384130778809516905619804660306868107494137196842812150822342851472400765227138450007200318047203650693390231475554461412589660549238815389884151088139440448369437427156340233062360338488152804282170620906511725884952653186555137755428427729110581366448958157534686391415981814942682445711345000609757861681766295893302246651649896713611634831966887508674472770279227584201572725406718385642217306752494849851805937622618843101066929513072003695246310131027710225261611262507273940899737531470420992371951765003625683964881121134033995976537938259780617105100065973632906877249476884054635047232774595827729713860315064459802355374918048274887975722678203798332563308583970101944825570925375540504644086259238104910635191524953472112223758680627605834558723542904669585332259170208314662564666550939098667988178415983725136141007818207687214328951748771147523562735128284056811561906988816096823574281099240810917678790048080730489920645087430698085218346061218423830661580744074461936193580155383182020155160019400021504647457430580501259814842456083780663155787562230943065641078570182925898733387916486978813671780954462385617622583741154596521197207315299125284000324529502116137012934592367418187593812169072656301540631349418013130535877194213804937728391568206025070146961112848528736062723472092499821220074974816726482665956898670986935408282092574308943390981895181943550523482010833884321412968270826253073750584193159022078141684155396767696040979464815191149416396506909384776866848393512001671568542191684943664860009205481669898045532449620046307440504052992183417391922460378997129432529911782061008141472880399521793496066384851864515995526473702699919458957587514625985829324129054321358981554657578511027626677388668167901349391500051373753607691384332415195171769153378226282591722932448711241571023893941830899619760358741509213962402571419701101530318916923121259050390088115517452836623981286695302607407252951661168252438525677639233298392066029471360007318065754751934919903806992962439877379279513522208216357853961171185739563914863213994313076898085492277030583910717931312414547651454642334697730671195066236448601957962932246519102747969717896094867701130653862656946797859051680258914941240646219041091204720549099268315577152178191299213005160488636724600361350440508760757134182749302430319329871355169733317933741606055357493293933668085581485105735862649918230032135301249379754968074158229114120570529853367898017773786977868497839361079043514727930474608466000789511210966656593177029687509535193112536359733430207616060460571584262044222783783804819311205348381900496344289182968119948824180638909000732346665005129540626930737886511217984448996617893809824745336141400227089734082131587770201143643989003173526208477691267631218802375996898638447270225515980588679615109742892896722037030671358352714437812388248698835792877083362902066957045802637790387600851947071993166519484603758543406232605931220072814028485414096353134719437510512935704459401133295312192008282265918941701582482861330740111013204743125662949446975510081735487413715225373566715061500418078726967926791640200083763800654586977978313036175450877075201508224435636918369922221637956952818833263317475072482097087447834765293366772113374386636926406742556488585828923495353559418940959689736121162617007102818124493147486825478919940371782540573957085441803732809102375658875429800881145888525597121799803588750799815791038198007441275374993652971115133560823777650733001574684404545354828634829381570262313729284327113798269730157669573861465720153907160351418962462768438758353875670306332357784686593235546500548832401521477731978491849470958881197477800954415978519088437898912168108042108291482680305524769937864340664913070372169543306087216707696372879022788467234769173873528878973579202131297580863117555280160935402136401204154110873961618185051565270701495666417900547451079638449577037914939759939436444995933219640114477973978349037718303105561708937819080672240789719526110636098501975695044586850804839808205798626862671602560937986883413535405000041134676737489382747166870164838371802711532978439427529852359483169737647090880131448061512348569635543404652294051314120809575002144459411473744114678423525118364570741760520611564911965860293757397525619060240859265803223201007296060042385416945370470336141159744056827504998051392192929403359263118650124793688616135270085272716971769268992853705702873690987434827383922277913091980731912643652360043558290422799303324547449047870336394958390932223953107265005420336671355541539671713415663583200272088752481344041900379246606442545345762944440373057085266724305545003765854994250675372497583866624520304352686604660510390256442608103706529858230494722541537577075415664505002709113812430856794209602357848649288340204056199908140549963283155415410046892534058788232288636052374382602075788598087822774325607580418727091796920893531196548415250139020755909529758753988099041125773541198805333913363164021039994474658411000030975827829690439392283202191237679843655342691432516352882731697049896918593505717614231211738565668130413034551613525124750658841867650009491920592799076395176967337049267521178420779554036686603402065263444599487948453084605770698440365560394132534045560503021743846158238641433502407209474170699540206166006149235935488617780468393277778188991868118231869326971759818983001538770455146386391292520666789037384869337025332218575963146300204441923137690770138105716448064377225613279345428832207643461278766732717208633330742036117004542181903851233345166585487119323237770397135124410905137714937105201317392856730612545233742613302619611456337723008943066056172796061298532697240098574262463092652094669504179711784285604140606201802319886447183455334324616354215386238632525527791357633031310535305353632819089532454818816230962233968172847298876981874079863060838653368325724112330859537770798986128806044277601943301855276440670533692736999156373022994308388870689154554459215830797478723058463513267516565091690589959836093014308815248549035256786143049447984859831914154521103288101699460509484952493321218388901465406893730433258787996561483365888569937442939743588906383718489073486832550669736223011303064707268421832496325559334714765534376391993097119047132013797913852544927880222678748477653913979629059580428086897588772044162125135900105786024973138147561179331586055792899512194057053048330721290605000783259487941926397450146977718587606611986901487487392212424706984193820529840802987195926660335756911637072102526433965235368294384510241633315552258309118520155926938735169925919571476252785816007086017362548776469000438305962328362021848803257800879868004870380735977679511944640505991694562181361940527505403938261182587043346637101754522009643814847670820756141550280966878602170261043662560677598809641970767329821407268744086092904733716436389863023336385882186198077702418233305714080581677343116409132037621758890815993195882748901296903778456659213030961849325699069037399092669275736705553659013565192025695161374973554889239766836229211102792174202057004689728221012375824971539027121526809101592269045570637605899555688400219485365361024752797521322013493519172855317899278505056310155515038005561761311503581603448816924637170074596811218140473652342482599170456261743156794882285906122371998016017274957716687307975785993185889337303019108841351607166586590818303086036912807861508348070841753839154082930289296410146596153556115974250250519389257437270948997616065898761725350072781525331072179375044856637430020166286873317090208041430455090015939197433023235064054701356136106547041022377637890012368908090240959524532641713797925571382743579806666420398133641044225659835718971211764652027878427412805316862462107540391137237737295525870760935994990740630500063889704615928731968108585231636988522119643842378369798514589448950100940147695721762520497188280954142683539951476707558500155975516924876459038986416482356398264024592682302377960315912063674603767115898824889401356413485651193960180824767760181375894825604398249426575459919434453154023264586372626645976192536957666373301393940685398116189205079137031241021887932132811507349868872076609041846535671047146424841840881197556862101461949121620586829640018252379548939656055159683446050843106802501676377176953834026657959353467033875259872021391601608324743010051483795205801405830321603129784907671265335521962598976237793338451057720461940769318876558374316735428178920315373631770424413446121214479613053993358301786468276041697629544712074664851885334434733734040898413112066859624792465305625150696732271827270253614520783053965702643489322325625665256354148666052302562883086115566856770655293237437816820606172889709323686799518875721181696071217530754562759839880445328606020056489672574506046648808778912659974446060364660380678198287849891672894042181559580571549528091564935423374837387558947481322147287451190362059145457724203669044814853286949649213485978092468133915477270288166567156750137507566496490914878410062093838060067251680764779223347805054539566713951531748201629602620150742164453324985066571302381531158165954608365578098433661986816979634869486973866255565099431236306721403166139224625814032475783584592160528685755327081157621906435227268886744620514514910563441758576581765138586784574205404035396268513679671982848149646599436998923407658954910883583324986919875889288069314206689130256003696417405411138001475975491661582940180116215970116479391544522485159697896554772233809190218993925362614955689395713867583342836339492578435359226918761071589100031934880173011321083626014356301934573827561574431097686533058844789095602652588909408508647900411701117408353105815923102676430380459958916596549129451673447905008241220330801759777548578426324097399518133655471501104140414569305880909371545658078490364495312081418687334054868278858966867498700437776974683054567790613125276234325661154508051672336630770516528465658274661712183941205771252639845903419007670828534504151676829906701100224065796144463066465735701946067815396324004024491055682317130492023807050845237494064473484970005821328806569088369322646367697066804180600255397056918545470709973164060712135579286634439737743784799036557046980888258980572699607566793091951580349555289326096619936695360211931952809849046173929212382160595936747701297730165946124654514864817819493010391528628866613441769987141002352455875517782414312614412791686315383689279279155875788585753002229611991632621706925262657124874099501047370515332130816772678276599513961758239461227131095540064899793134766858094533348064173023112608567468846669874587572137783264858475321247147522076329318917772123223354873158587657684280463173283996432974627056547948316775425227721901145789505819520579804293961374222584493553990124240350643542176588057595177436678328742080566018067578257249690850006708546510985356444894599861524436456125259389024946548337440653703044857442126319653969982747712403845399594383726495021597611935572417971909012082852365591700662518673453988050340696920675809209778035634676050866908528257439943069118066784011083041392377406389609274224267035861268416166490280030806999212940293457023277550977870076102359365186219855852868314168514320234577336188770772398143450505551130716444423535970425881849146783247555770871782711126107395523193427907552383458665820607444300624572604391847885533990452943158619128503772199533384577208778952642070425099732574976072310680321612340357768064879234781480753343462713285270628875195495571864440877838830041314189916883316343287740443165345093001892042245536120286252068792696864915448307154538983570391204516407284394455735621688388504273237837078826401030348209600349908118811549761263745250635099901327873842478575613752058613929206984099946564908405395657999549862886662029018720901701548659448838096846287404981245999619454958426290074710831524921083040343382367116563494980970261563494066722184185935830918704227984694977346791567397330129261631123473172448779858756066144702564685232197045657356333142501816363108053958804176381343375665053004092523915416319657669750164834796354860703033171262640686504550771979342561310420532456107796829616030375730919553801945876217018746580857131156060157526538869004428227478767689472562716287942651696780037920967858439189123375792483280204308330511198141944417678982022901046557421064638579645377493299741836841635713837213128271376099608309075395067075295509510690128625065385009097791200080592107320343600965651167772371794309973756338278933300651464652992631839741523924082517191268543941769394399434628071335868534078032813405880877995674429190346869707653313065224795050572190308563328108712518887825204673131303658251147230691195319599222908531953699224676469631118396209893158649083083645224090759622245417326756200404972657042441691416991033389441620094152207008832341997741764311914113927657598494373959335765903606056712154980806738875406655183581300481294838059445953016997262950951876134105631201474163756878677646912450685081113187777581004042712147834632394203975257335650682679341843271872759783338236369531808351989936810443431971987144437486697166927959022316302769249687342508195031156398484595372886977338739991269552393946103264741136502537896779515802953484885199699560167203649092111647751160128965386200614768706667898017323848836817337516597359047291144019862998623451437014232819347510473522952515733047746083554211756688803583858183879118266309288316066244880664935851466172025607697354568533354026383055435067753477814286829961955512589224027654783110563245010719717079419569605904978288037248511282621008735236887911405313912701677317518665877006926551177402157700542714597510540386070648914339714982555436088438728240137326866001348875081576680659319067988817883454287095047671767560545261585767253027818333086150691688166190550089385737397591682943987280830498407233296868366472673652730811926082140313352217668733139428376979125186566740663389147084387875579484078134697571636375851248704978236692208811304406185066222586898644907768860082987161998342920045849480900225622022408017626381441503804838222446130809259601891287798837223454111482180975966343871584317101623811348011819194211561247124289570224401429185901016062928673888506534748542536580264571558397549441692199504808356316599238810651483799518116263553745324869324765441834131059274230656390899087059529038204932927433064368207391065014021844327827753956106882208493334844977872156859780791657668708677751157284210183957410733271740326109982625859199614630565510589609068859668108729371934595277022027203547042272421800436587679417291377306991591637844798675103591867679628027145100298520847807991207505691770749753555689014157336876956190085379317692006216861168807731222554078313596119264798132828793115311049139260020559414681117414954896146733874517006736420105719225946217222328323430888119006050914836437744434215715376830533971213134060107430197581796510201885455847694491852260442812308432188698821566626272944173596459065325303394874392148542039101781251335080282196433195822245232925602040061975571059826743306994864992722786971698393903640469978005814335986609375034124729588503710657496862367330985955404526043864958642981498975108181896404655240030726751474013634410673885039371646296278432676926020808838438353388637874490899276719020792191532355603731427449929821456430310234979465041386397249697345235780705198978876598487174657014392811158946495128995320060616831582830447598724360684387734244461774539961949689690467110215004433297491336149498304859310044132085580284516561466347330277990038272618267695174738344117665900705721991956407082208586760640110876603534514295761554109511184018032898012205185700762628069654198041380811479580771787958823634670567984044210053976229134732836524222243115222483542360344325238734932064442151418312025556124810838239305076256534126806911114484627782661476554586354464540783228349596887079604876624409360515279205804394880713993933778963245967164259836061843384224625535720612939519520786414363710348502644725096869077014738469138146436450583060674363879284387405451067847836735890175518595506404022937208084044638228385798797631304028116123306597560399076399192665437430252044434592973089163818344876665581657107366614754533433120877363153436573534832251405665340044788164169055562594303663584770670371461912956083389649961506509828896970982190119788255863913024486466076398690308796587258794181616485920776157128518288856484619504212726415590429823191913403026066341306336352907394243668240758211916083277987542530101637309103729385502150289048469543286936400041262027342003977371702687904240550458111780350977038329482970355278600523373027822683329270764481162432555431637778278033924961777735524030551004868070879257741387103337384489519046479513169988952868891827635423799702634861835802246845355851440091404311572936579071898097568914679318956472696295002220643571596552321075676463824798725609386391816183697404712127030041636257596297546061394618130500824755156254386008055070304287312751335355971527210372624367387918195340638540540457923944758485750542989708559340313686947178166699364818876812290866972505466756421136297786390155152722794588959027965966138371112378752830754677127777414037055982906137591442159414294982596119076352977886948731599337736920027472327212115023123395224168665158150949490515261407595011388750887736376785664513743212646832669535046894721818868322429324527065394240080148132108965865686441967213247303880140681139234879384154919194784156361835324966228477687636180670363086441500613825640434357509071552872512798202166243239589138816714687947080954820054494489965987427789044748426476766369982295930555957490997216688860445122093379605671570557784602744599386253941029365451444103965169126557774024023130319767082228471309082790970083586627196824207728441663866504169588795059522741504176257230362584299432648145133434360304895250246005921178293377767884737488055200418636553968841607392697141044206031073437239530641153458290571561822485772732590263165520287321621848627941161568594454282544266848373180036913107518967939700148934587425273488299156147151277353977255457060629211849065900075710551640223817609214647625604805230998651022585688439856731393858212614431431053572536247631159621684549079294246039242915133793128968123084791943035260785018941995311851115490192695751103077137895573277328132167508799760153021836405318560665468606850639680894650094547406553797827730961394220671389172100582301219767062502653402926778436674469491368507141469081786141235343363506403351794107095321586660365840322183810584531397212065568675292778893137610051681443670690401305298987468927163066902074578748145023577983770693600411479179093807978537230561281068040485279929635750397422959720102541509701832785909818033145635900397886139908926029327758830372405925959207198879911896918907935899642062030257054352742903049702346543479150041883689261251759078574368802832535242058623451792473699126636991101267216216843181857925407322793433036222911181617630111775654345232395354479529936785184432116924671784488172896856640145638717998254690128641423723995219744172917839437792285745950419550193087735495228514304911043152038664368392038357396457429078946396290529470133923323359374694456166295322956743080752283886436462320718247028454845730382459667502554857015390810106174997963080316691676041923424366007370820798469351947632417231314928262750909442422388875665662562768277265937291142289191027489570833893930439985310042405483736284634236695533921282088694639654931206250669360946001404546779153831954866194120928024956643387318159891186966855795161856428432122764280959776248803182443240788275489505189903025451164219152339364535412757550525822508868500855895613994479171098220045605864715123822785468975719887533812622089803445791334583359183131966009113192917372132931243765653995106742800096719553346434630151186202498658960253357665523793366278227710411177674856296167664631606128359907354074454451219994533131791842848709889556262835648344817253643205502209324371516390232161998365436178188630101550990625442402132854298534956478001597578584756894833597318136742208160284583059167726027790533734940355528568717997489118812174325162375613376521846174988048762870753383402854989712851692408199629039212325679830645116898946336686054733639693616643834071431205515511675152520496155809107725034307901131643542563519695805531561762562964516189865330291469168217062008407579121648221505190282298453499299717710932298312404074032856752161408536812989054890481696107848552830024232445916506589076481156412660885807150738360813205108791127190838234771621558066365266591379073175432482604771429385801168586178509920021057309327726288227196484678820479671532372814409900828307343396257030767772381129697782992278461450405601673707821605090096043659226153469179079492495800581865180249237134049100283826905790862084913604654075626616629477072668742427307373097800296415556070494841293296138856594125253317569009766346863316469440739770662768060077875551081093778279144879376433670346553049171999481328112289253050215611832963637050365938395233579543022648478344376478104346478439563505038117331802378233140801306074046300332477237487965196345108945079598755254421519797430790367927262655851254784025655941315851271087830597301301980502413754719040380296308399104808560788875726436796262614258311393620662252942577973147729465893906967460521689495644947658284959371288856636707134682343705948585731297951928130480774907866103997012319243144202156895726641411763483862863933672372087745649873095931591542053622346040122697482014130849404103568197783073255572263071087590164491844187011547971752869783940360415044248218469352584632751853883091623823096094894634071641646704418809363551491242827639111007810020987095924953234620920507628084567768227892112266135621298863008865168334812440593270855216046288366853665974566226027857911527673703802592622277434392882775354935900378704759987016616423374308570370013053214021154270471672970952396108518122154820552587862758019925427835821453625312570875018326893460583298316814625129696521652886846957044697487296038012759958493313831018938918577429206535636062150006531169510308294631371823545903282777241980576672304794552505874415039688661141798367035966410052680139488457779629703913936628316300047864746983463449910437213047309821522526763780706318046049369271008831500784585676951686676086764328872196532275031858653050051141498140522807666244443502523769563305014390019326001279090862254660553843476570749250208776866096838256304994403457322719850180820893380208578171997515202561131326285988920140202707598983467042601756310251490088832911053702107538547638191042864649570720819513530841163423522104874548619016207307417841371604915665178572353293017686537642604701955797440104747120679852370752299231648124817669807769455946469535963310480544243877220575137280982304600253878637527117937057912259565593720967026791886962800577519940381391546019179459241126793817793643102414579660742001289832466953589033437035855225760439698258400907127186431387708690506788264623501876467791243167502393922453666138317420397420695813626078722061329516901553207568820563090212708324268687619556048722637227550273490993172693320808636850868122772722571503654252264749903661837680186856395438867702543843159086526451629073986858555551273864002122074284713009100270046912416442607398406279003039527635319345388363438000650945653472436833146635360608673045672099457679465284815504291631544178464033166598943379022223336848804858310888808291743061330323059280522970079276398893446165464620471583682096234966550649178747476151037221420679162576591446984032910425462363263372180320753752092850894664823832409568843893590035525971207580779324258513637737478160524540756925881479095046517812920528160045002733033632668854302535177458502177787346953903902725702775748620780173611557775227162229059953516318215991988991851473425531571399441217592734560312432025042795442692239270676304676384757931460376494298035186128989206323098798525545504969433822686155039551333657117902564826697274605047437915049915984334473587227084053825492230387195040441762489859190977397270024996991291294063258829554485072084580704871561518961314464436340860022748451015814463117183631338826650143219994623328308432014900923357303007984774189051252277335004950249835722043903431794454791811511033182570947139585989069518680266439973754834062736241302515130992287118669786547741503014950779610820054396400951552098448187386115552556457926248222640214109440953933684458392186659463439509272801626904400665201629651160511869265839408614018076967473168940703643091170484028264125641420679995001714071497091140320003278495477088023602540218095173030153845694235345968846321213346629281016396761550481183979833499196004574436763069148134795457069783491126573326255926119145729215762045169785371153249117214962731391102132317663670172054606990912995838236396427730018362007999891238669646085965548212576957519231499863128114886522491683832537346369379448738503643968294882754940579788975725500221343480884718507045180057001830069062564671593698058581251692052264654622316878975234181369217549852794731216517406756568447697429349716281896196647065870117125453818018764667132952014867758309773965525992595020692228768180274188095404208386645353196937140114333499124225640728295317623814691602611267073164097477076895526643501520386109446994730573437843411456805383621978554510035877784421432138234473806619591991053464702283668905634010732497371668025566904944273240039666787206494587775006218370241051901606111129943732736217055902980117985378626261731632833978506448203239209494851496272985072956566651301605709207937716327934394855596694421786888481631204515034725777123949311063600253685405344794455501853904839098197501554949241563616430738567172584191870443092358284461073563673922484596493184372221697313436320912938496174375789119960567498971872752321803549717065655213973118118481024488547820179773304964206544569263312720857294589811890710563098550807439844105857608978268532167965547980605541229453242983065351634281344705941823895086271828933655981916331298554315260672456439434573461865258173395375468859732874771217311125358097378632647196618824650596839139497532451367841276400875195534495921880612065356006621961635935286272209694530774736543398536347318944751601147995794999137699897357861402877819450349384578645406243599605480810428948991973764099366269906094443111259294818721541290762880936289301194659755572527319413758477536212933735306700570162981726955850960964728073159965960679141028080490019712816143893682910243465611292797500826354811727867348731770594729489787961372009913330756096523243834622099206835588736709987484293395618159683320000314899710864132035134643059580564310037093013175131599718379287018812184882813583777572711251836247324284925690879173805759572010730369734723065533224218677751137185136490158166946772070635100711996173277259849888466248311285857029025698309384844454523064791683011591632849113375354945300459875651246748715822757291565721315122574841667405585010183377091331284408261891291254096080583774016067772371720956105100362501820073656941650709312686014306913520782704491707904090398068668629309248129977190352222191160131171437579364910425016267346809094148722499553286340016390699107956261925546113928534545329765482972321376757254225618140019024631177515626331155367616325699865514939435125161042347747534900015924506585114337675531539135208120292293216388872755898605540233823837158515421079751534182699018696894740211505584833071313884330207186919975657043628683723857735860296469756002522732429845127913363125656488731844100591625253570328446225878729743261399659717340405184886153658677698941752814700902356976811480111686066086433725374408259432369523421843084081733725893583777097428023651460892810726122628547613521608528365685056616732636523229767616568851432085915254241149796316876421883745461325211842993964080535130349276641263068511298968725234697390634563704352691052726851515610502212059512496807793220739774424474076904368181402832995071374052642369396491092239538580437723347941174440191445314426979577365968049252842217745583816440224126644698930681645900097529387599023991844785538321556673339501431503841185846238707594898717063736057770284228813218072742591993919693273315418630598354177754326885752723275347408131535097549973674900520106877578805042948240115418619712416868941644080711883135160035165376278379129860405375807036704058260497509525167461737529512192141165054937020058508652858886422501281720624573075606591764609651288118775801453823742237050732865319935622143623361944563363048709793174793789035416059152075976441335536492788268392849213979424759183486103157184725957340437567042599366582571528604498294671663052194894628708166861476478258217355725375185646036788955634881927160542453896946951121382734958210026807397949609523631545912701471622296029504445984104108581278131234799047253134785468710287725534365206027838332345885356204425154307286501944827519011059550156609010408113773191232211365053276684468381695443551046049652658077154756873281038025770066579727681207623390338621508108650725653900663287297986277805036181472397956551470283188185544341319873547059396812309971386022675442400910067073835864994734582472053694922940961496957172490321898615701130709863222312382003181558656560123065332596919491915156555752295697932600477159416146702235889241501142015545873628262606374786923351781717630146134745936204726699841679172506920114179109591744124600313409547251066514801135057479961770586241798526908971561685514802112666360851098854782983442038171879343303523547486246174264879148401893962971268296453567053022143136375440169484268175023953400307022151210461458771424895128379640993237943018782269234064231287408676362566828923006046796776518656082497269097854554791648022958068792585738069306565323507534462755114969796972144919660514823288002429785930364670189928708959435234960655877973190624105367160916131018417156110130214281065865644278828253637113728440771296654950520224737251034936458858330121295631434976995833224543240558909290431530132335834209270195479728300341189184820646060386811528485092250532438827495580570826297884739122664788248425628366003613942576096598754601910698350283776734757020893591394062706836078715713799435434758235666447587029064851073025467369056580933763812938235666398218646837956159538507382974049504932872688277223590073102379579812859597918311842296008975446213412610204895414646622361269808564169992311073125225553584604600976276316729050954604432322492104255980728305126090922463188875834114983139814736499921218145104732125432066681364990161876472186826253393064916883140590939126364638553650847054386548291097336700892927715434611900771640664641398996604549243604456266907794814745564881863874683034853292942147619336859732015321694370128748831574605063179993628482813084603998497459713980015345217773475404569492339107703423165257986589703337745714215110418272137800131430823304379891775640753097652722927955125768604703800748462298506368540922542009300318503128529476101813447985312143242757163198007401364717315018466036435600283708108464095230814547546893465361448542085148337460028804518698119409472969791744747438472619132230304010785856181252033857581559572913956547886350906863455960263083903394475196664345947991377959457765728859000569488303269644805929158864331603377594437664384556641510746053761508165181004266239483293294875395757299864097358910556654125317226130663255934210779812652335134589685811553562301801521304133448487393578152230341080909381915039963265963835111159246593468101368663172919606602968494096375126562803586324027783401423756435615799596329630358736093709297300371240433953405234770367019803575458955244348013409335629963044278070781760791379462745303901198343150704387274178186061720725199124474352519847082008279958042400995005347222066116783583885422917078927269810870139345576840653955945385200270319697989471454463804486578675387869388739756432138870312289107810586215876122611803499542738203667631545668225614316721010301175919181672849291751933426592159066725953373522131000765903917945372339251576041173226901696063971007174970789386289507081228961470074073495261915245478602562238772019355668653882206969756961559904624395445412922408142317928951515044312997649024381385835235587602821391822203523084154695518097155912656900717459330672263220363675184284728413265685799769349923143703896130730831019510004658478115755104713550216488824779722358938611191736666117731562579645119588358985741875087353636946965720016954376831897433156041913604026175785897158065114306620317957066442071845848237225077977303446879763699104186622050269037999650417023184821860334518604463725069615859833552880597478960294709411678410727614156413768111344045920176038146265995663571809156781628663317044332262194919898262198719491971477752985294091028610130093361249344362446936946775237980744970321278489779146666960660531006817916638674708534350895312507506198077776149750145401222170817158006065902016036332564526149120823131006978888819513941017247394358695201839600241818727041653963599529510232059480255962608946508892532605179659080413636018931470042276240173743274188514227705485536295198445312765290789208383912703177749488493486517891221179912818795589420384839291396447706046132165013766918807425177065187885711137014970989197815043779189717082228773613419291308719982169348340282426087486275840524645274154201371546668359803635682465056810137860784638094380493630249473149256639698829830002323341179188410204391672334423594891388216831213215519469874512822568876013793210429680183039377655592406495268899110496424809128052136770188599806006094937884876039835988139282126978187444641779629177435457472570930164531981331507325663614965205435367607962494943493467377605919938211249526896790302359127094920107409404563263990145911291436151437348702225248838451556646235012405675114673108905444368179749147264327680256530602187316950844581820343359513679136217075671640888378606618544725945156778500994387258747941748976962591424594125729394580189790980404890521813716941364942035439964211845329080801335941624654881786517767196091487991570658495590784131085987706168884557507053992159081382536377737141813303158384046306041167228466122850873330124950019647839262288087526129480458899237725803830414425068616125900498398078823729091606300302957542250318303883617171412104717170730455399208040250916702063959645641537337443024928009493806481755290372566294478445549805730709574860950914015366420740591798753529236502826111421888313724437756546496882680219325141021694848812396206631992285635488502236833973436147563590563014481330987570375879396513880013016223841110764198674746809478437759980903083610941336390994132358130989128690638132425816347266899812266002222359367172972925530563270675136111316480686537715389094593500670851202524761750857345371355696258868294998806898786569234045051662699661905556298936698772559511542736422349983664726386069892592003230353143467741514303608177659404402801034557010423733377981469328699129794614687377712651706133513313781268502580142212815513369982597414399373805654891714942842971142435743882707728705806225421142393052371712054450174128460906268115424261317345957619204350987970610095887415453864752715565253220549321173559466004968784356520952095182704024281917665964121821651878939893374036833169981714362556028653812862248763439849979794710862220685962279037878898208037696648082911855304423517025759450269022331007656429559315374373027063590418957126270092329617474095115813556010041271715114102534465769936931592336162069128984004535052882739940732144377448046027185070025174153758483004008686686821835572786833841869225725202273763682194767538698039552378429625360878685971044115873602558592092074543465389716687712925391457521635184234293224503823019470188797301423105435141475158293254867624819506188559920408736445250675772658893794085402446244532281109055351600697145387832834765190157000191677406757163635407788308001812147326014969525440103768651230920675697403470614362317670632406608721942827024874282113230898470841163641951752597808616589671497352435059249225012565279293047715595625798901496176868163386337488849130991224479220720652311394646545991189886634635941401128347195367472826165649746116085986193474196766232999253315379723087606342245783715397258413107002542730445772742169448163964183370800650125145009410596530328675509070714498883813034623788713736668186149112939502063709111009498259948715671771682848243620014327402705084917325485045067360486381897172784574671220165069776572820926208164086074938307334894468000180739175461527864143849034644599419943562378479647140526523674841494065180474692646978839253348549201755084583497188466212660999814351929939443492108558416675060968332258611162644670490682345499327962763397186474985664699694844547572825582083012670374768172560340562400706906780443725644250738067098902480180510229681745168837551533008129925129741980400929370369982620177028462500511400964199240849897899008042663738615811686678831409593129028629307399898226235601056824997012486273835140566952330453493775992652895839706576939745928879773006602362956500294290134353789832620627761397565358286563265616641667989512932693303945856087070406822354741428469551012252439093254607793210139136792266538073513177908579024766185352848435536158039441791741617683287091893864069669857550052353456811310730633499232226919118418554406957483738877572730632749535550858498464844128144985391567880946985290196015236355739695378917205766557655961371099948908943991137053158836915554095788863284614368627820202183938228229781689008241259054426721867260548309454454620243771578968520215237673999427943166755344116718490926981328254328666061190315519232392208709929382791566758989116569271349534700286420339057974644472432040961188223302127524073378614946525177799859142744806963204593914393660582327046969180414827068568014826171936067408975792716741757438921372158591143626162655353766470129697968489153448984990875505611171879428784071666306171177759731550234294483038533947366219942130176839895545220441894802441305877548751176682568748409019545042888576807025856589768535438212430520755353794629460870528718826832445542096506088502991983642034002666769001161719674364252655397273375969455789709453822931457067283732065295636980925999249531958597391258546299038525858961671489671116601005759323588225469635028539261630930440109600595567890605629168984021124561201899878169220407393247190390897321621353712100185472822443325980764534075695780499344807908775756898960201458199070209656831095438978122588128146121192180773383530139436695238367389505405420067313114794918478638832821987747555078066400181123311294754206184015839926774436359762233119259537106975868157654922523271550543122411039684283678750447759590983311438385154482152378309416154569290613543075545304769220502846145565348125601212990202389179159573697148043371725284257906961233459167297980601346308664131139957730649613300988118932610114383428444309844280422484752249728007311929177347745379920484018831870807222572553950109203403726075930916538878844052613061426348302557171536820046713493423671986729344183646903650852323044467282220809827954956353906723688656916106799341636061241426306388580213179663650226891544848704247618333655862748724437326124351077876768451247216862454082904373615734986449576070939256476641327776197568295061275066813325156879504698623115986457588890654696952807127370942682341055333241764239018755579243826410705865659123754069841063777377773221575280226967364648296070925344860528216706205118322055558804627933111217425785796446506134345902285641628278099568670071891490097595873641513778786037459091187170331370088296556516482091841671398703783478342994394106641353216202041018241651781318958642806127985280909159884605710679252063140226183854553961375977823061032753728389315377753176609141915413802617362051564003795415103663149452703655755765092533435586164808546669512362724744270201299336256024925008600884540849672800372718881733111628173670911297691835403050019160536255310674927482964461494008723453040658124799363413316404541148032770870882849873008134114353681577503783438586113826574233865810648874390394360497239302851613172934465592170566693633048744794438187414835063320128953248480412405408721162025715822515636240547358666881494744749249371113930750883036406944765109505635854982909522436135197935912104662568348800010531512289519346247203481534688821569157571687823578897279096428681252307586301857411259151378615126211138158772978642891971167146653853008416898651415925112847320751438531576172097369339008473831802754087480672051948778362201947182119877304993736503832638135024288303927609705242583665720306330339186589544747541857830775661368180838908883642256991870436856897856419160434992186238276678156854056570575576975510186887723101493525792140069870505218927370298563325649376188953940612689454209916415212011867127036990815836057714083869530533386034713522497474096750985022451815017189949125171522244759822067830410280124103857700289039759613527785224273565396206036729516192574066353516111772643802825646514414852039884333244313288019060534348478118285559446003022464349111439849974943156736750926690852298976716834125967600248823738296852337159554065461459119344722012389715369666287756677049798173291866855242467434265350075752897052532333666717924868759696958511004826443550225585060079253547018000468115796193129381142893492262046354453339620848429217386566927164904595088135110996394591408135910646725889951389095195385758328019159672904055880636696803096238497652523422535647995712504326224730313882980833421827996926882890417446139501812725628452980333663339327641727319004038803275553527816279910661013633877560758011554381374706444224912081184576653373937158168454142773118112265648908717275767809384985468159585364027818552378038528216035894541628659715242183313645077625676154109813963118649085896904257781224947385677695676225655486498524206218778396780796902130619337920596261321969066826035415832974999491582873110099216817251690590869701317157653472554202491480081693679949349909694043589288976973766851853298405522559949995846071696198587503461760205775270184398677769154370676642919037412515919876910897723155945600762465239520234651054911449291013264728893489312197891027986625913815973334690888578213469648780038858087136805642931919342328281960077636104240916343670621991541801233438904733010796719457251342481010656392557089529417593461111498081249343931944779782425224279166233456256982020199732904839122648741269738699995293309137322878500815513448565787332517537798606726936895872125484737740364336555229903398936266461750061797523004920411706628558008307268951754300879990809454009074076473820530706361499237268145355644627155781910824660214464668533229058337244952329147416298721139649801175430392237011167345735328477852838177026034496220450706146995588563049876337008462097407552491640628503762387302700277852212184792825801147738646066799418222497849332271894725134706349835300842701990726474371106806636650195143128985715764601260923788818259806891970558512246256306794892916969236305285097869595801394009561841888196115669700906280783269004533481409733556858021270316648301773346215565247847247753232728836934974773670323311412350453289910160938098872793361850989917269181375261359288331453245541441896360271990965754771704376715397272788021941763804349734084669094486279448073486663071390022050522049814200432847462103029871079934297110774118800897534912582403059824546110643883261896136190487621356870746458271424542708608347220236901902449540198218414396277144631520205153995133534516040842043738279636760500873294875860968500522506341722986840208756396249556742741059215306978672149931734386715472912066358926623977434350780141599480745152337410321941602149028231366486651839248008493167999807034296740786078104886789590973065040519485629572056534378240765950066828226081422707299297433676700767081438879078449605603804666379729152626556198848835050172511678245647002120528424504343324367422343667531332739487506454485387170554952951262424381632025167064084937174527708530551053601621504820255557921760549607099809287968802275348470577328326560982289387765635228347485219246014152262563146639053935544205396746041548312796105803002737491538246653162555580845987661694750060566194797912275722571287544303590152623613136170320978668402204129598518278809974992553460070093511608708561835003742027503062721285531186666162818604428990099831148996032873882053972905935099783596916390120546447030533815970733217259529894377464481521580043446872413721313958842480097824962722434699467945366788751252903339753957185059808618461313482719081245615862937652249055402303406753159502834575898518657680418090309423873961403752471167230351430977699882927481833822134458363313707070648279542410703146719539359739135903548275293467039596613829370944898219404155881949222044356864386599718071112799008597801633170023251466614660606616197324123382489247578912456981175446894874146365031980184636112569316074054434615705447342361649075113160051524006893888737702072774765052087871079487626284203112086599141170238025524695622254194303348614555060378976565725239818321803406381678141194850708903610118791053859750261488633903891451089100524246394320959639311502729539660659792472334135359218084971397685902736234396030958872897845786637179276930199182108801479196839909313487522318651535460122170986663125855822013485217199789813549922987063977075054994092084050636001910045417303144210633248259298967336856359172602461150912270169962048973553699605805716338411378486067199008711799669668399863794678114377162458085601241462974973482960064549540908424757474752341789026740103339423663745489669949082828598265149025791368172324015431657943445447619022553429729529014823095828688964078841757667140023710614754308917903153699609884805455704976453014120700687867512603930430244886858142268052244229539039218241413231440097403349663928135045630203528152981388340689716867188903633717069895372865286449114747696613892606105106118788337559041913766666273124173292738308302205357040727120518630020000855695463617604797978416349069069415326642981590427583304239973002782776149373941236400694729301989896996323895987332296707486600355895183774061339026289886201059596863549413622645311829119654507064644821701457681058841355033222197620942798453064490938454932614016177634952296069246980104588203293342596686654594526184163158179931818287003885830325582056772789459919183870380641091189434353636385680087331330317492635412937248308093489205238991745143714757672115482899581138175742899823039999062091526096108092856599185211291278445460939558753193121413140477367981273495172767420948668271861397713460054659744818749194277134157514992650485215599948661601107135530899263406389892289768275070123372874324994006585562208229545592859647147284744098118581628762115662240729220111161551832631582726978402674779570771928844522214004344425645631021382082829692640598329560087395640536426795939745067422420045673069824823483733667170267895177810661980628388469357180140160511720090835076477767723479966796057097822382469311264637396860017454780265298914314946411400589633967719056053011722358672793795390169282060912069413205170367718439202203247981927298618409801235212018587366736490760117899955997800411838504154070436197537718054754217199204956183239639107462885561939537877176719889775357438600573776455073802119928230857051376122736340065958869541456435804258483419985489555521910154053780487367423075167029090150812650994912782232649851255936706793075293664419829760395973187607603869487564899368542515017634091720136271175530035887113468785351316257402573419413183296443958997847326643194130251313746456462251513251917050466052720373451110534234017329981888881038592149203245070165255924851970092413641595827948304665156427007502395264480507664391174142904253202025995003038026438946463607231160525274506002828833417947843958031694747902157008464486956424455789631422562061910274391189903928563832236518694939469008439522488861287243814899077283052329721777734793361874699915039585520021001728622336631224749224779935486914498448549423871207625082148764263212231780300268236078230444260274931699011091552103970803981824005723177489948528627200582991278208955776908476292013853324663371166742982890344223374593888992686699306605922777353959589351707711311204729423970696860453948475349179311623262344046407283378029116494048120003693210585817995320181003560214821651728061120748332580906541224083857929857764925156324231699829212118628903561167584710575173177148246012858836913011160217086340974070897919928720213555758012731158433917805931367140315971865799918717796615092460174304462902319665775524531968249104493323292345659756690083131132198712620449375280322078569629534632749834312839151756591129809736070856347100883631093942998740816748456391735646678747703950883125815706537301026611371645081139685882741428057562754203228222052450130868078313444951734070001094847915690700245190821544167639222415467397929659077490660913669696490828872478005539819977715877721234239274925472466503463731618607093869877324824760893414980259105391467028907394868623409589258170889288136354988643013675502608540884357945686933233180666172888685733401530393964267836731687811491436529198117730962472042700662359460452467309321635248710478883180152189799454487849356752378176003531353909588937202139808301441715867384741343462831997753007131272713083740903166280041051644969167845706418849407312461150055669229180903935948318458080488436595705995695741562851139002432674065838973031324812128848027973969989704802377372401940809003335570857820769537291780129327951273821869294637609361592949750652427810302339852367252801337436756775756024642068453135573898296241505234493423994583722018662157579395731926654892551023912828861490454898534445205972369199121737892064678902564038182321584902440227989108073994658494365385805661541099578728999519362903301002011161967639986678349372966514823358401429358691476172004477079528668873116187043529392741776371878034455310423873698695925508417344742904851778017289506964560441690695312170653519996643746212169208376689450715579929619091942128451596474350329285939105956950587377861094438569484458531512022585913711826179531755866633551435690955947856169695475463287086137925228855526285472332708116995968409784141917981339639435663805013949687770275835990763499307349895407506865916747982072984174572902363840703210807432582496141946666586248566674893065270536974017172372305858067861122349601440177237164863610262080630949171726591366918062794922459723435473554824816261418060144759728387653212635800882972538576077333274033914322366407475632254249726368820558831537592768749587912949821075463626400162911483227936654556533479544430512760238156217221830769609873468518449759226125877169464996628729590287250073414595092303827285379346169580268633885015048941964624388419514430693674355833467941618930521778231146492816406657430511990346193594376523217631406926612600458571790499052997772187925255778111457882363267575441062125986758393212964149176905743825310382995502284484889515134043903317447406941116430741143981780113503447727216161968840653437691595115541724625740861521686726375677964157634945898251913191778758556696166046832796958313637283041985946370408960516934322130928454022462520657792190818808322470893442381133410503644155797702115977271278460982625659386038076458281647669017157607056766219039443333663009562546627126959386814334546904356180095934449440387394436549390226480159647054955196223214378003588662972088989701914003266698746847060861473974140188752200303571972432310913364637626972948906734964299321333628985691808516329268427218703567104695886652690571812803813133478711858184326839789168463963603765342730464290912873316329225852596656124021557360817887382549274938329953192304022412591365902433491873804732769717540054779987124983549863575121547462307418644738437260645816515755070449070420608304593688047729837910462499308525664143423536290862294543340472651511033626247201752165575661614129854961007214169325609981921897967898967976068897870660583380626771518116626142273162452385073859541756247415064966220436786907999540391913950317432386780783574480852045042498816118777296917854468092710670591176958298789055206169694447156771970762319917041920059828206732086694448360779979524556909852502459413425985402136586474798438387197935798530990033389536831949698169832507287667720612972525694842938736307613376923599826819633040326196300226035084686005991720186569770828875817254313061775682086493978332898631634420486058669490781635443322057632497698404858630816133640592665829579337723138004085589437307640759173629371755533330846702731733722113885029263370807943907695162705725932876974780835686005976052272506725440271582051995455030810958550057386734131932216234777235247086399582774836246998625207880937735401227293905182307749063588325951101239924530176334196082446385919472429674254083259851590690429346265598071131905236440434586186311752843026251218700800706913135957856918808621787378306886850571307801243911681767648266678787392469464780285567123200088967778875658386049517074794564165483715364529271197753592069950177543473472883694847858522928977073880522652886447866011007986604205073493121565753664870210916868559558644543893023074794019131398694478418599529246558830785600244112264747184609774795893273557573045743961109200519619140878384660309875699462137775269641919512389911384717352929837972412864063392252327804108047545573108264412253984996583855238962974265871934519379375294243787796312928325518602988979079214137969910367088565019722008870686951422428959766357197406020378012884499800851668749340571438386401085964396043917686071864937101724042080553229310628434991259111018883527322977405162174115815757399388750614227935371886741189565704650154604784501912852513803612273182039488040110818004344469553047123647683283759024239208762283272521056065898371299094563218468683555280621837868047960836929672380323034151928333246533305579512155608361448276711351932226146953357065800894981056773478362210839244295604856491099785631551041542660221273420040290520847934960323952183968290004524775669421700741036834213766398341038870334880225309933036413921154401015699087290222807665741025743053110384060268370930244775196568118005131481129090839392428797243189321785466375343849541503999036343225084947649578611346826169032397993409033601167104736231542776360255925725424106058026005924847786165625109505002737523807206940779054160851308091686666692635355458461093872255507432808885168864444825275824995890007464176473938148219865878977001864585128463295199974198070204037447762008102572433102819179588623601251038291476328343920615830096880429477585161859089292511867417811923806925823305802287134304753537542415205119335465556858047892644278676347765972266679995404427599368373794683363792229244124279921801552838182032964044903453639463736570214786733242707054431951367198695684005365205604067684026029933256827900866367635490572433702016078938432227267373969118634827285916449017861431340746089624127033826117240362752638522300081636655299062142086776007819796244667694080379532694603264278470480646609343882973737751910972793759718630228073789829817830758256518818637085730657072529454138872611379390927557386552241809221399798544399262653538418698880976791272205118506002639545793198137773726099575612961628782657655962850739281861164157476676562445780070048904130264391424845073046008226307587964939994067057533511885132456791089794017925353708553316168183782873494038421079502831231871410186955373976262936117836100135234606945560687380064387492446146593999975946143776490264364220335561741204094335286335325463810930708747249812697052749970253086714161020374803890184619551917158001153925113987154121002773573564914933609726790353217287403135171053540278014619899258694185831951429149784053359735090198708347994422126010871484393504419534684570003818567689779605152510740222578976679795966579171829229653596616180435270925760315838784741112891785942162292841693259374145855147017057538501351883879929424079050209691763634009473122375623301483545459218125697459926425688494976661566154843974900122379024198264605269612080165168927841208384230665185744949591224177636847836143204051855348541641262773760143156737300167251417999324284818762135121638171780517725015613230799656581973468335030798577477100008297432618377951709344856621003209771761066411774938892120268287569624227561013669171353506074040365960040367412564268571830942052947686870573875249480495030575927911052917906575678289387134680983174709051768002636056109030796227004090576760124606539624387370422863262283156918887682172949616836918412314330485282100893239772273024975408318413083299336080983818268570044992546853245808781820324369819377121216189431040123999302960382301281062297454842750439699199974463819704125480829739169806271295410053799406481827013297935188161755485918545376602013040149477932641054051640979703840878520062025539888436944890460325554811867454195733510621563960970081217352575608283962137410265859137185906022688325010926897541671592506080960647168339442761214443597549183878500791269903888797607113597920652347728942949040056756904903780117819496067119928554326966203247718212338808694951536259149286036502237164528663366007254936020225505459902354738936858480212165473877173395889695814184616183289507704452174360158572834975995429086685993580094316788994307913144442102502219831552408806630045494287640156797523825687669605145711836591020132527125852182315175920228048913483809346901549431176185119088070998716823292390778322512405652842550642845765479174482954926030479807873059195722103404703367649109852593640639596831094517191898027358869827179626231232807508555642550465784921603015295171001077518568566081401806323304914319081089093702295846965727070222197637121294849467275684785890432428785333778264955390073574737815030567469472634361845393909940086735184343443359775441778980272386117640558198739167356327314900688669289432490820569813972337603153351357316028934307697236973650785731191563419745854304298296485544783296020084172018619744188843755479315361892437562221922685493914593599227027487699558368406143390743088935632285866589084930344110223205983876691502097630196363944296998227869865790654011365223063662159139287568647138725042509679327706181636126248599511446164543037783402067413025958941911925952157843407864764478276088647429283558476117208355616891268463365225164155742579057614571091478832415596422723074307291628392100416576196116818714819022366109236842431194405420799797744558588211659003153094820282451017940886429260914912809109239472275455011838842782492989544100216974687663859420216488519439325862088226484299166794018393264023358032651061371580433594091953676110152186736560847327215892007796364764932522634340662013233897295862298082400675202553001816958757179426217005260613088746778995748068923728358733542080544902896696497539509003224668411133335808388764438357188205168176427303732328848490758066113120980585251193188567559759393548020637536276819033252332634056934720470891455844671760900174824224452305299052094215886822102921472428149373951550974476229269324142250184197674667714682736118479452232947084418796724306680459509913674058178258745117738820848335118873975632203437214221290048376149354176976791595514631614519852823288064400523271114387810779200771513866218444059049009249055209995799165926291711286854515081834279688862340630249677677805854123185956132696600210989492197038132508336634368163479496445648348961158596098909352421498291215219519999488873461997921799703256996954632593935128420711532575458875320840098914372950009278788511392042255937198578788237955648222206768989342171656458373807447161798702459526021281207737301969282403891025354516104317420280490044977115095162903215311965961865904822299466929562121512551450768622275731741948100592118386429755930313664035586043120952815948261762271436676506731425868214481121542808837541912220551362060232728214371468970146069939547796238517245429035056754275517995131204863453850093368223652467416376634597702961171428418582318066396958249693032119460803774972511167330782168310280995946344578840030513772228162198193639201822716480712545785313301290765647405490461752718272956615466449793780175470534618420958791426153050045346366224069463695496105311479249836589690558933016592050441855044860867840983743828399973508209256786986341778563552257658083776804274196107014564553194862316903193162647510738225914272403628122664822966062835504630892841147958685380983349455753325442235130698984476380440332363900497930607380546314382495634518337780347533210801896629117560572455538464870431000324261551309259986617080255425083220945413970461672751300360025705517027899904019683477860034010224198439356554730702438550151152203807042901161885342519855972703150897572967854289744896708485925786020763879224829994728066913167892062076694505229723485139794079524090960541045719808907771224153737067480866518366239880603713249553739988245107140592631123812308649194376496543061201934210965534761368034517088103371342761731218985125801797474857974217588670887231376911963637250723118170039692971376148226289791662834859589296998412411521631005295186516923501656258959650340206720183929502277962648276741725471365082755481414473971831902789482368391689869842767110268863851640552795779219380218745661926114897526442149633183064993417429108938380777315077737887840008333650732840196588409330095509752677345058689093311511346027712008004621320953157658554069578022140808903587992328576868339522237706632611745602471687333938240355005496678538393165260796572752119192883727243249927150784617809706347592198807138988940792393581712219699280361669164696205723571179548944142541863117836556204541891044502419477741461651593844492048683955053169320708693300155730352499301495100315970616663549843553647484011732600529465082187304710929395624015003851673915071153232233473893913276402535952084334108773941911097834225874509206158284488387091665515497865032661395574964736193303999482160392688980632865835060300957405534703879610203548524956366407051424756191476097370143273472168531845108390809584682980860293377673934343401679894571044229735854332228578800844696229005189651740263529501589633849341574996687350138105125519004719268392823614964255320816664057704624536991843849960927862473802890023461743010076631959886090937004740428336028071062188948491945524479385134051725687853848055840880804881318181179208391686715435558087366059051103832487708039021419078001461627945315548303448505301840649875706677354118239329349687934308068802259229042679443340551571910261136019046511577955417916297085560882459414324805011547377999279932857443342728694022679322723843716721623297952674485998862940399275631255509637977951956415535184124280969552623779050921049996488016615581714403557551837248340397589462015366760693090173246918712586324812054112541520029461120994033082917353815230564929968337319072311709955500473011062503483789488012611894583738087209471742206375305701137859408955992265691559876258361355275923450326229255920374879285246329643961944027567304161236482927230708367197758446545250683593163197992531663779388675315264449484640969486435204571029071586696871383460040613039654398981887951615578015786422782296999260335247420902065670390095026167849112037910912702742498550964405334485843896290166286387695668437289195201093043447484026631823218915312284514283837690048488256781048318265906861417580163696920161907303281310137559440069931820274149191488303325753516322542428231689151223590002599693213409595108499238007017404137253303249435137104206676368350867104785555602855016031380741652762908303982029284283083551899106812676365932384727124737257625953506593474226416422014181744529126259672211148017360103304262105125331042483195461221755294300824896500049989539946538219697234823191383675971544976229624562418275088117385765930636552562460820830493316686867755809357992509261166069360597585974350987526328008946011336341856476832823466021786733955081323587215788258706176168653986954401773551922741071600897562070898770943215565173978519006670880995794260982419538022042931224955253461727850685265354082412263319572648888001928665721794816512608664212975816437537327828944258379913177776626339601017955609232452802124244108057172452712143579228070929160070912684177065957226125912275462433154568238475906471773382539788578969500802729712175699990723245528888964798540860246450220160330039207285269141466455990002001226926810022007360364783982447027150126917920974016735966788455223762103792389207409781017920425240000825617355677130510292167838916896441521528175956500173642705392447842768059759381236433942147333877268062272600482173817222555248055104643781690821275607088086205454962753779258079887534610106180521157170618609788154804075472560333452855360391022296507497015835938001761983451777256373301083508692386524011662744772109155847199155559965813224530738310426670672768188227428853997910945553442992996257070950914146354121772770562561542295671332322950424370647801737485037684652977566274717263316714134332198308898611655616898559555733653901343975968421664807246051489380260125766472618667069127220165337682706411727165682131475701145412912202029796087812756499119468649785235373331385784670056335678034427168954960110038272860173687812612360654610819673219150869804326981889547452577306182403578314096267633150528766256231785279695319962872389542415476272593390812972526063078015243578561252844012637316776794281705308050897667084308576812712410071668199446063468304861691680677638035296572429070011264039424486179832662200454000560707396929318283462344589545941857310191131106482833370878509775758230091909528049557016148677303686501662445186754438789176681042266044316468397456670557470567637898460116573463489639088436192118025675543439292996392785479948383244766690362769696387284499332084674647126236987756160457091190225644814105095405234822194355686948531040061720049770012129992924645071007180058802227652059394043482077131359408586018379767959364091158454376710871615229853540172043608332690806367593810298425477431011797565274519576449292404883264655039566673974199418050317245633075087275117254745475908696438578920748740226197699093782592479315220841819310700760487260694900008832638020814664795413760205046011427526601132058919691456307051046786603443271498783665520435854942412626118568937115182783964545318806155507437640337116009545391460674853105070946519569765163000220841014006149698822357794504456398860381104080050642181459249273173157887923294326743345136221248374659205482925508934526817745098391381706402931931502357825340790409424101465180820910663680954654513946487522449817147111651364979852614362415739999077429525237498762911341420914576390147176126540597890422173644703980184542168524561064499296018707827419799012405560354998236760281311744486965029992294685295652360385290418431028928486981727203469833358545665755325928000329243351693005879880958503396781394980651915866672377740000745652721294971792576448716984606956226548056615202978271502123849905658862374620680759965984083348888989821195748276549193613453230238601177937352047472418912335439515018288420046427784343875435069717466361673809247528530833762134303685455214550631798906931282611933944677207048016388903031424236386987661080615612423943627263090068921568379173764682362683600370959485666022204412540148750602859595525672663749445413824255203368340969803477375757286410600871283734505931663039307993188204909584272678039241880080775588424895579825635617168990893420846900365854180683541733187788100019181074713477624254266390035349474322233214748028168139631757275690928276966175919070271558775386419877573368989390843182923177507863619890412424092803512417840551300863215866789317194587299223421818571852381051130998303980152717267825024198835654040359583199287273117534716138069157083620369741532186114485807176195614712238671115791524379897898495808724611396063238856416104206832791597134055387967778311672747940624400080235268859382986138030759497989610813658782191707056863311353097922910036982237442746794494070221440878566122938975118293630715360811714520870182052335321329628290123315977786774672591843325961622527445422675861628786500617428349941037011111961727668189028420829121447973416963784772171399944755128082082532083281076290355289067571677378317029364778458854741580539158439486681799326788177828078336503480443468082763907925666503367186583047915365848406355611838533948141989461937776940633766682297328433835453367950278209881739342063872873527361576266894843908966855391056603845790802428488388163562357879143405030305784002040004854236566758218625843354311720556055072805938885085717631797483015087685026954605056294690757140518146201205907244112412821380407114699882932023834353841365344827890424463584797810858879721848804870234320146891162832957150604199569041246916057751941793393787807883739907862837615616831409747628279815509696772213550357208718071921227610687946159334365783971645717879193696611507259325841713803680071213843642530259567690926865854759681215335339105575649074554382659930885830504933992314980522422224023981198236431541509690231481099046915165139413128820192653555777408308531228094874913641055549348008770251349588513978117984377039747348681178917894197746017115070654655976953981617248713850908979488033980335948528569499930031933395345879412158725131008114007735832302718175892089300770348888360267298113190453831905350357471837044856414667476956628287132733791302968600818692421720244728319425002359693536446721235071346160244677771629681564174342339878370890142360726595570545441203527646386134911553271176148902883565057210746140407613979516725937211284407152115177339382658781007261785510051826699746878270700365727100695867613075839739577677042008778757125576344601298662880635126575509082503973677719545139850686753216043025524389644185977102404897922350602143287193867187376313135720988164111890509708385922482837231856703802812373873866947909041375469256527059260526352018722782962064246930306729652145752936891927599756795520646652895053747892723933918585820051891735066455836464980821982794337187004175726015332821474878537745262480816325932566301621418562111403030515055031663331678263989121427680150222417360802204533747635654523291907208324551248637960488348375133932878066898936024798980121035630091273711597865138357169728775033046393020302695771807590979597136034349923326338215277499757200153138270091708136072152546314276723493558450741646235221991298299123717646488547372413257735192040153338416954218026483721129482119191465820281698614209055708362485820161191705763782867566856581999003933492456739191527749580751690202353743991963014802857526582547276142308846128140481174892755903240570554395429569250117504706954918324658293581008210254695779968463330190741206900264688789334379858097235901024184253922931156707366910527486604300742310114260344553088856094059608144611821071857374591568156554847250093058253276174311620951399149692164290442809375573410572975299749373475317516217083578239835133647833436586781611837415591657013957917994404174452108246359050535760638037750668432464163235738801641256788520568134215344887311260867290612229885611871816016891330681228066224767833063967441797887682672393905421572413657406484104209089629075360710469325925394114614111432470161105888056454115671266750328628459438131032263962105613095009216107163098418202694671681986641211201731946860044614736127624736388142249559033422187087142546395164183727182981397229439911660357030099141502745380327130839285666861992862018996445939629219017353131509652037554707526451529976941218556326353955174922184179818120598310846191899312104748450527624688580555487757008252091977411833180961127598920136836524792062215778565271455389188158735185305872092117947171335978648449217737885398200424749694179313531504709059892258566462728385585068455733489710827221982930359929042007336116640801574318307153655229461280448213318599597935339640961999608464467257765633523374381932836677162729181633384479746957585331721201562253313129608408067044115106960715200722980775123382266386659959393133052123107888827226941479803931232161873871341779324422585986762025624768221013930673090948317963374426474989603126317655413980591350526896373501456502227929064111514097866553393670681375841497463052217059459636052089488002943590971795047173860663814424495866920924539763892630658746589107203230781888158429944996466035722130644551330050135543824218025956297427027045840089388114733156195745713500362503776520381451698547635317059823219340261851678522277786016716464686310717204483778599786903102519797582454195921152706137995235367591141621641331043420969446116549125574032120550746833595990546273244143503706246691266833170305221271842540519082400019859563074307125651754023351618203133266950860694766470680787866532509661768827715302088530903229203154916703566842081441221055971638264760545690609076924567566269541310987049890070346234655705367768922898353556117848580259402490355298917150318615984571729316408266645845667077777288471058372710574848863890050570587736265651253025010691843101340427874217132537841409224845128445665051417216140665159606699057113448165734817207620761015556907779808527638102421712260454985746668171106479398805625524137688137783241541239213623973191986856195011295564204903342740966713833424367669964551565544108743072784261784813042205630878082108062593614368459027124937251216602000195498498115489999145062937912364130776928088736083349369830359960858015863462753439556313758520938197394443340329708720478153609297516718582876186681172018507867731417467853132828731734695804661841133517823529822347639151274711023582926360532849795202050893215537018103547752795794026099906872666718563137560899593832751402624274819628835253905808114466477238653978293967218537652858509884595183567181043793010912346930984492220139410141812161934123574599853238959325256191337216483360573640827725092920907144095493616780065863069469543008100765937059701910909963307167783353557327433652702778598732196297565978756463380344426311532623359809591575002369117775176740234969640687888879538612832449319485305532189568079690266775006336459665126277170909852781793151074461802949828216412813010578694592725593447377111845411905363302571541782131618127191197851802694688921008980089714951133198665743982282202372142055384876972532375642816567079093639019202047293588176307574895109768169900750584383281896853521545758996832038173202131824029077680552054493014814220376191567504825178811863162313844418906170811069303426661497057632447343545670250479277133361819504075955370450253915237549186617642498434472100559226568999994075335706317474815775320779651985686948142515332497208074698559200636619944136535636465732756683990376367896436613921512336089395708166364319352387149073226550422353754712715699980368959876791418841494979833150727116171245888993936435548777632475003296886417412619508037596776063759700648190652842914480760580789748396910413225189567015143023985932328775387808828152987036896080380591958138280963324824981252069053782797257737245989671508642202418963757552809499505717572215638353804100014189715329367149487799214051798194223702325712765332637460390578908843570653911517289595709508522648459656636200592012519970603093350059198994699386089894904216495758831068237632338123517438377863329964181196739434450455043221462792081306559803348854835618758302574043362186665612593163382357398023843606577975029248341298500057106321421570255072833572048357022007838880238511812266757092874215854918621188703271882157983934463648668190275343937404200332752863679273408686246469563546384628681095294174218363033985881173130513732912853295392631915335323462546141136782317528892803165396363434821805007894471231604686580700886017256550818587255896910022225624779697380110048137957077319714304184377187840491131914633023920513235016311111894242357523765285446124085208055472305405932173296758757573427100830708879071159638160063123807014497336011308815526293473198801904277555344882909305202679737760743025427805167598370721257202123837689487982621833371535463083290249041495087382845491791765335627759422378082058774961940065488625086618455712281593694755203776539029989720910697235734908686596024104051781616749896986938537994538897754395299672340325760503838231954925492776661739478757239351839740182902164494713980098414727504026173051536462950637488976435431432740555109457450367078061001418224184486295944182382024519867328221247912784625842248342748269839400822090801582494692877138954373467576680962984469226157944245157332004456076492658925584772555117000186634635162728648158518357222843224084586871417939888907010958074681141107287885295693656861190026786891925422621985571105583687134457310283368849308032006339921598943106978667948874037772134665752582890208865042861546354984982985046482063048947640732610767730592378893276020053618732935881019984984723497587613603674208141488294696114849539229299878869970629482787408444192179173137183361069162166786470938057950602938846810587071243271308643592723408094124959559437109438746382062248362693792561924208038561878310026535197390584000202792143747484777739548708864220015105092728948663372506248746158209685989469341541621664409439811251519656478768504414354456325865802398110473297754887450621723136452037752540190363249035269702574233359262313987587005224648587642346742140900859435722087715766470787089111088216631406495316214598237242687574120817600955799091984643654025831085580768044316186026743517311201834608467430673299376794909338486049809132019225022982946696797083963122107484278706773579337689958087369818860525184174374222949289777464779799397142189237105684200664507318634585775569652394819631288798940849634924438944185940785564107947337876200941585830094497256012530996527906752846921017535716260085610954976596814864854249499263194478056603070787900345081601240238970744082389444564391509850988630386245526799485762748380099804011843380630687679283465240367923131480504497184133785928881391365679655646432219826340132946689004256351614746509841951649459587879486943812160231179715622378535281094664130174019762540670410266823895799635379890057943500414561837962718993582662991544785039445284553311430828440167179967687186819830021085182711360622072558548156767727940830554873447987267498917453374505660703952810645230777747211771004728175742508174395552059685572810555598058860667378644857878158450230078304852455894275368449705963618925850500348647569681481442009831589021077808435142562583035054785368750124121123529181752498784257972271597765751048346563510181204662833955023198913594070066119821609968058619130217129473741442747576768322475366185625270392917986277013898660302925336628977074203202774855788649463259434191846555182976726247935887772502027776949483650698514513159272198058018022394074525902215654885205362272880469914080766891709163695543890996809020439023863731026700614347028955825232030881336634598847425281456772320635070271384731982643135115009139191743095486580169455555069825796288569664674283581805027236514239671513200376087142377547829522703548530829842823449019443824018370213298417063331254208305509072994684380786069429557515556586328297197089235840939205473099308908051564818203953992277257088839887875623723917127740750276645412120285540205797709348673427131097303235939973989764896383503174234659624217420792680890269295729097431449620530563797620663787487835104833133914869924681253128908245214758593389574878818057587983870590878179437002679881490150142707456696550781624670459617567502796381685921256805402021985053115531244615823228393456346212462978322301560029529442379991573450867274744147575712942872522336058937956748145125053401183285221130598492554646006512800225063413814409228610208527087585887962601371165018573544534093174769750745026603974468905510851249541199834335143894250750107710621299573281984574374650742629971878506950731629961400383372181643066259046959800327423694349102979999662887133263796892397548933285589841194091117154377111348807205657363087735767893599968579060594975012989808633073054232978653739195753444379866432054649124663262760266692888814112977079297037348933735103526398847610876331310981936246108153572476080901240243561635971787331906772776727048346974222667792206546236182954417428844155886864875172237263064678877406236399665125233726649622437672882664476424976195285030440063834612000652026752784758906818021025276799974023722154433929058422090575563090710902312228099853060658675634086726074375994935828757199971776885303437550192746456535228161930228073132550740694508727439298039178073731479235173852376900139195196308573583769148802540189409582695665957675160545282065274392520207941533476077923277207668218799291997245439247450320430194948737431583347261525387177165568155715441718488661042798001015579075483597224657965455962957940500080678350231973617636314541850522174808037663623643574039668597432181864137442235997860318641553994068710533249618206234425949620958961678179334511662088229308218038748563371449583915510722134830416264269363552107094169991257056858894327818216151425705202045848809766785219557251551562813270326438145822369741364950534339804600445958231412414804606885841188794924216231299236179287558439822288888340494838475901297712497080710145858781917544135102465370800136488430719504775146144162270791809178226821412964433536147289595640339972374210382703396210601835279030233238942595628516049861934266099321206597823110465884568641538936870858781984191674021723785589520194127118874740372882600593895683322587933074684768647629640059516611789733057987590392291064748573218045749466118443180161314223031521187298546289566073512605956600839918853341411540123288190090661915741271485254094317456741954317201251114617061869566952611590877228000005741623456538274274048167728191410304884678557413034185021409806862245749579082583496029652219023109974574676241068952323780831177635347279641526124158928348629549261497518710211370535488077022175126646670366297855032732973380349895659010421332807902452298723168514589980110525449843483934981943115257523677185696714990462853399113173391512711401591539857412702792730009391913523173987272702041420634206806701393102533529020422894414627973701510642165163125748476545749420536049692514473542999734805290246378237921136410723199183701467558137401011819646414137218792733368830530366902626442969684232034344298056341998648537578459511505280955693400026621753345538458534960338552083968767153680166079094107802348483451244789403076654037662229603669861859163889952318075707397386448048316774641654448278728866844429722891617048450357809358577181079875874841427953544416459994054668256820821863714844154885625758752349783677999870636321154014637580213419358755965800881829500621599520794989549652308643012011255495920279247058559364430571956382166314335342667677505272586981050727701906046373055504085713924950045201502654936346298346592634673164596764942534688702301802993919397130187463561115488302261389107959854689878040386121823893680363547240465215134137754336198730587465139037285497913699648296075220844372876863405565160415203588562779098185148510657860312223557718388763004045037312996776338759471023209052285703961089703391211211151143148134717581451887654420111729439024143038052246800395468565313046607713963608229462722232292627798436119509323213420540316447201355252879211624892117087516128044171772167566400801755581520094665748425529360329295592879196219128670511993570598710176891007792018190844241999074421473683631351253498854482847605562498018208087235970674939154907333347722148691597486632387207844942636955582159668585217129455853610069684112165738391444856070856189489837268281215723885941263121014041216935493020238110840019240316802877536104095912345989296125824760783838622889432082230317517480715892187233605545016722903516110497320160441885992925920411850793373717200504012315363367500364588547196860697620057603102585469986405120772836927770216460615221439344474464437331873783992571232027928652394844274461347826726225323449494567846244613606975419804665833982618640492850634652370179036294940159620831836819367320606328312057931802129117446432604584320822247230834687988173951769775957644642183571650501738423615410322307717772421127411779082346770336642308357514251641079268339043037961021235584914327671682864520474828157206718798901743383980380510129824000801346834965439033970795393821992100525695890121308836924228341790879108608287279983699236664199476267888723736149754089963297287240607338075645616739437940401689454989992453572125926577298037265536787930476561726429804685098864161711397898014517570219412280799372501124450770888297275658545796189076775121639847277158026415513006713403665461894872396282076902003693253500000509868468690017294840018376522976964712876696144565647042283309122451149623905951496279039204493687853083210319318203761624702906675951567413260090828479060689659669230230194628933916215501965444377208237072589516527721317280600188300607372589664928107562038718072916867907624420501247460489141201720853371679733658959416503922130331463453083737527977626919434507082660038903308885210862561077758434445147767443902332843249786014167916439538636727453567657605576217964834351138182292587582830522254719016573739915683294964610459246843916227200936624159305469757702798424321844420682648812755045709394879825515293147180336672575378790607107146775116091128259065945232984831528846155705811276036078642809740278135420456906133947723129816455419221362368409074361025830019442654972478924680798535240185320539362215549333098368011701424263593981587748135786231233491819656955479282562210309669277565025959028495628333010479439839248782124374612938579036888484711474348524742979090728109202067824103795702160152742482802090862786968029695355859697058294446340475390722579656177774957745332579974349611454984433156126774728549663675196572939085674915221162621833643747850255830280431259808433091900847283783775935467533888570570076295302858787426165385462851428209839214525437654863180268158673317572293219147163473759349229548236676169787599521673445893946391565641014766919476082113252888585670562707548243893283309993497360670944112067631165722245378458250415113552840992353119706847187758186146162712456929332465991013717550533081306848591797929366911296163883033142049641746338847387657008370176065472648353187848513298080381361936110193238136312655046027660061197701533156839890120320645048292679252599833841218352165682068107285397089513882516583957259064828160527819007901333551681529357073481840497319372397531306623526761393065866418311908870531161941986096549352025069704767641717307445069857664798222508129507351041610394901096109385840930530169721356419453603646911580723983310227920085284141612196863982859197146497385837877673645680887228203852143511024047612937595685762536265597815364814113105122997415264912284438473313069358209947645030082243690503488303698084496632682023048960654643701514449536432352152569184663344508424202158246269558466835184657257486093199490135229135038518365426538277505775534655125370135757275300380914035809642438712258583830534857366153997104235279717807193695325870276733518693521941508574446867680006601696660460908839501832626403129871247736159340793212577763021478252854396417824536430846936164135798862529693784434953242011992538006049385799265829622277887826475192011528255982461520419936241104200108233792861939359201188025614252482763533111410915240293788944410427613751455404449678987304300303265207874303539391762076904476539347488026851630812235861517447477199069596764118352714546975883359877799258187933019414899710364422667774899956049757095792335030774221539182015240876792497266347319925109094842050674802112008558579569940987596268205769849780015112678129258383914327213886229840172575580688022997918236572312469737379863433540674997424669352367097218806679694023185860056105908520021281201743548898081910465487330348979157236059276226862025291225749045438559031688116641179816793877993787140366309362689762311657433755563674172207385473558640989938634276345793528943123600092397861170048789417948619351687759717302441695429887516888399933719898754434110050025528712224198502870089766187340050989965449024792738817811329643374103737542377574588061734511853995777414504714000141382735691616513117658438323017395504117868284097256018465374298643939227269266121024133923191045904244534910996629955902623106757793420395814860623355226453565758485640016924372742728044945668075222236763867026043242105281307073019686694967214137954030683822707454714332205596980008492696299832552555103324490962915417883515829845420101155825110576011070571558957566164387029858988719040655595854299027531661802515121355517704521579806133094206910452978134192032497233518931937368973972606439535626286318744958075183713921398116236148815183095722266754609073846354031369311843392396320781666164259799118215283710594384841853937310887650101303165517773346348848018309242821332895087628542744051891188673048217496453380232483760697506432535596184818835681605393182527036178689723246936139471121533981430222242565953204828323981801038015197773331836255465861772078115927024416719702446081140248977487481028451992725797726097491525997331294635203152806569843008380169920648370708029814318468223600031431589167017983693405987531439733367124975505460701589644593308075325897919246620321143308495480932292448777772546174544470082286416910441391768028391477854147333703311570950831773200310594141505914929064998215041354356409698114250955196948266473431905829572895995903372051095884017972455860841447428491231188678544106468512334404664098698150338806648667447367867552124625257875447843863768954164823112789512318812402826302957826123676941573928554388367115987512174490664665472534999354942965328513559712578964527951440116232871545466712966717432859207716183460042801963160561193595848670588315528020134298141969815601290083611563375738725671385746958742000681124944514926331305806881359132255234730833387547707860735675833806113311153754737380428581100757137044208098405043743025753542957656526691010626829540910383923842119626989725651846921312533931591447943760207136152082447602413631380396998408446199697027780175289195078322847179702014635960944720071019911523897866384958360450689287863934931955916492003820864615213135330388152533022269658586498851821362328363446050883953482594297885974146282378552307076049406030543513862761296340783087201917570956363788542756429127158780418020577553589845875530784015210568574133587171504803670606852519499475158646770263815134431611582588059637921272910939038795604305310289436318605360038082486938368382580650470453058697851147465181954538053811423807668401646986893768639805632306652703945613649590814249149499935837222603267190569551291814971591912921391253514821094357376653461664941882334158283034351281424785178267392585066685349968199924929873456358584277232751607685206847438625391803910270396274610800474069148361202042383693193757800696374221821035131957030037279372152831705781083894510836671136409961421345493307642798711680700143934472752698130910493705313836457854445332355026042118778914695848728908918894673451844178764667530304270463854806201154616385241595811767213717465067230843718320339036806415100864411237249231140711213178596011994454049536214703601499210630800816014690375751721544131673999206260303677255573053099546386896900693047618182453763602392732911091105706402061471084884308094663808151018738730886081551314499224119196030981411647585280024927976079319978887849725269139569430744552123807381634381156381766010686448198660248370669544727104700968769859519161514447973126558802265195383410179266930222052347077131860132568149535652733497074248625924563611707726395669361750370580667277509258980158530636680436368792026471102532512230332315484457091714383116114102812345846052601567552468285156195282378306310293784751911278553064552524427994750839197502162452482310805615959880664603984034652907705110926853784516480271907417419751423217143475492753080179138354371767377852571037848356307287129997894298338451823083943222083965528742688283058816004097686770513842654292014938836947210740305225771692081703469181061674599775692253576131155348592980276568130944923786686100803028250915301601822426515616642138711993972170899848859014584670724916753621067519292765915349606753207268366180482784538268359308121440899902504188729015098163183493254804732212191644999115521118433618888441461306810197285750962698201682519112554225967541523970240545622171892575834881719469451769691871411056053166861713355419601995484855646693586648284068415040961212074233736243516757037619248344146199489000227619694950818518932133302876055902871672154795070150507889714560824130250132052173404433244351725223910257636446319392517015556863703589905823781640588138878403640106512640242567746362192208660335248118714286332883594947954478529720102805085335503926258908176950266268836035658467264679287740959190048391291437370827495065033643185243730907497757433555147981144157433461420723609099135359498857864246356080776095707307919668357762744389619833813242593009108204196887319353915217319477179043006931189902314640055917359768959045477580262854190237649885601531801487132223095929061716035059800315592921584428267002153039830852963974418161516613226308518873948321872258793755867021965081316251495213511354851767407357028796931419208588404811032905857837941050069268770994129766096726691774857845810150347765490320393453862621810007076243087474913035477831851584444452447205583740518138602619986177869083456795837806898400818913771826395161433251910371557688519826820209369918695081166812489026521941381032259030843595458125016669439504280757922964174417638209922752269729181659337121416901923530689016862338981393087292247148727173172049554399934904494576494181789445711153057513814086682451657878760436121055745363520821982792127474143782054250810651654760096117003759171670609066781533507686424934903472966569613460631322466432624078194195194995100822052550295948945276087827328805069983128422312057285329665305965367962572123471715180277172781023224375093046586646929484921229608893577847655083304100602609805616960095752413209374930807876344727775503308374285451227638201308526710178960470979356995425886840621406234700590820696786370892761077923270700379179148006905433427330259323236439308712113448676391498931426058717457671540423317345907712342644192645004608302911005005132416130125684407178254553627466217618939122913953203836365385019621572802325225754759656169080527235411923704459120118603909764310049300091010456965012326184824687516506217864344407442056050160567018868460292552440013456421296136516288491923408384035552748427038485277995637269953452636113463145039447482928647698837448582078561048332596067995027676646782200135566065107162065844913500033832077120961439114682728114792183778753277324749585124418665581876835327130088237671940709201553383649227735649163107120116309092346432511904529517294462596485156345897912557430258691365067680314607668939710154334002785326578476294380164827976878750816851736996708125016154486062842866538858963964227194422145381863586976059169788345759802617743217318749781090037700528871949669417033471451278604607851972033071828882368209377610393357895536718941055840057063412145538069268744231191365356667969258582674624073833398513750571421451256141598971665006923011980810022248094078440319216415444556038940021280344956548871999293636163790531098735119875993940727016483614672071978853838290202611783350068715683252134596768156892749356274899656653205646214708617379319626639239244807382213511912401959963044970534420688384017656477471255094967322311014718501763408934466983606571489056088373761142454502120668294242411592972130829458052937188069166806922517741389087298428245447109120492455577640977134435954461762907359308769184371679106117657262050560121901820261707200616943961521794707191837411360483469567513608984187495503138614031506387096046023310340210525699744601895644923074125188401925250120348620918884158614447922278061284884711466995828427137026696607848215207241637306903725115432492778846199856286213716547460138537380157202409487704667013448567092555742970873026098625059693096535844677681148773252684634924927338672695242950352918839890759824032931945914142573582342324196357471014469966404953286813510124947930467207921792829213427981888158295487362422264960190835132303931282975789557646461936505913248294106750930018366141285552186221605126703668558765735696924835070387549992807772076786413778010661499408604051183488266450097415196836590510285415270781161051999602104008592889419002568215258106897110632327108105236498508213475038773156034889002524445944600271204872346395153508445227416884868679575703564275454689573219945216079272070896650833863145577115341263655611094986292628656661876732804959755083948835644591388108339924364329958483319412251099217771928175631128436137263353639861772333535674696398608242540973756526304901750852033561783299126839781568019108707041761065131876581858777350811206271811860276840799584155669452079393126329340295062243472219479191958608772789050151369330171606250623305883066382066578187848034603969209269597726780834415177405004523785157030200429415723183002661302952047235034485819632074415761768154650139802932590824079532513595915280833287368305357049912584079104481559824308105974026447419316225492032471694703561595250095619697763363414628345955530749793856203672630028202491991209970386750153510397698308765202480073909896450101110878252984424903367547690665074084223510757092899738341299286429249852711491277302107503292365353315690829807942483784676504174751325686124823999495481654845053458983063084945230314110879080241461398311914758908018193045044667699594099776767037481891323672986847438393106453142572822889089111082479414669319698349101968137218393167439400600093907295101954980101726111160928934023930538738251006300395215723229697160881063564129700303919188783233659780301995771292862666551669461241636017155476556846039250197930293643681534392194005109221516628117915055686376514448945030066806721928222235011651374545055284015991334473893666536334817779608163006608287415313246153957129152966503632254868589671699257948819323563963548575016266829826733818982025760056114071355322346046102368519316413185006599524121305852643468312223096303747509544370455057359670659337970405598739062118680037939023156627978148920705964985321190324560519269228522492860142116405214404804818888054860500937559748675049348941389078812648092603052846774199640259742406102719076167402611650217269248795693231873059443904903345488654440999720340416739118654448033825370959445463556953386998738781915874203439566687749114803374333460755176471198186723749875025194996323613785349064322167125055353984040877642481128138540087665910055717854180923226953203687078432425149787125566388787702617512273411753736821540461722309777153347748896961667908263674702074123522465293427073718147495619749447157492433362939476694263890155886074753768084874169018318835460325473697608134487676357403162009924338322499771292254912217458765885271193540185104529712059002043006443512864967503085791742408623345418195642104941371701507328606382638777672454493705748806866443989968934310115895607344082555471864979010218308448159140046303556134606861461656587877706342746269277332257909282735463141156435556280135164987685418593271903007758435240627967782929591600616041043139598837811017179526851418159960755402368921672624275705193331137378966671552914221053314552014434337741596641529971138294712477771638051058726480047055070158444711428193413380356416828112847129679343361681059731683725142435275163152928073224965660975029502194074735518895062430011626113786643321136910305265500725786865302800387012993265021758176582356860324032312700891104592027220768087197170522808587168823152003704481046457986891395716528176294198883733442109323633608922612279807308522006055416259455253352694896295255782395106747017348243078484734181952780654931148656621930179979861070447514435084280915417256219839544506767578124609560497621910387865940901523938957713189007746635706776876785920685461786526007930555177499397659503842586838201666276994129246594553162807669590173169452034362486443493837262013663134481671542813028726706731820634560277454843242239127306314069189694499002041146735382185949144149560071482869337386825401141145858344208462235899761401888565775257342084777582942778987608298705578189106081536552727229726585471405700810745740964998557146636202647670388838497610312317924340397724045855793816660671786640429874707451104933496271081676114074824008546365531108049321405696052617141340472397439183170261618538681025616298862026677549100380361791070217313946176305019060038280136882332694263496218510817667556438824591859703184930933567527107245772766343865680483793120313135547592443044777369570536912456449175283958335415766686149606623392652176103356192333984866426564689684721688536278798635861922212277706571522518277663289123836174818092146187105266772285789647402821454804930462598060631639824756537238990971199513102586005654703782581047917250457025635364708100522950190424346476559401164738230400380632902355135125556333992547910306831695244707419735356961115447611420844587846312643359086236168616478388816346647373119653673340834519156587173556211252410003065428139296680136420570889943342458699590763035527989580030132210910500073968967384175964507338822918770807224524754625638461759591898237564192339644916325858726956190052524899339187297052361189869410191803505740340511892156456095014621202790915816087068466719171936067141646585844746851212104353531906175677725668939796988015179187164921923158971780557968600278343191742747788574228746795148770946608882897874063631296789007323241014661247359850621373375611122625522475444785404610649645144951986373066052030234746597602068216001345822314797444841278141370981792088123160423046145792879027040896709598563428164489704826663144452956181606536687057273422794880717440933715729202637775555297169438741829543362019300699284916766056743700325011253286858650915732618315999037162225925679207856630587707487299095978568666613752006891154363048214383660101799808469696520131456791097115676996450072440730871003546680241403133409076063317327229567621935905048117641646382647513786680415062729038984512531153587455367992751387518931544944507468201116673740049002833929560984807099376136889241836628513574041156715945368336358316573258558220664311784736405026308194891721716453131225291147986477710751110031626522938409410329332817304495477118217294754494381458382715685230711646002368598359939833156295901193738142283531750369767330877496612020959392801678940057558101454035795931402380300820513529361619378521462096092598888341215780697632046337789025489168996628558957953164450575527659873125065172994622542231085930696130028979784254415508309454656873119715102483920619484171336972716597198082129222687221840577507941323704255170996479974546421700474131264238953912786537744910468147212517485147115839239317999663454174798817761011731901749907009593736028095358996410283110760800835848195676490243278473116610538507236228203863736640066304571468233649251898097512587993911937559007188019292704727388635719898352931039392759880683136760708790879271228373161716458766265231784749937701269100534491335053004752522986857856650133719050403941504834498925421893200497711332610629066719813707442831067905632270616421636557587182726423213042067341905786572212020990927282143693163393233157445427383854489142695435647528926000574131106036217486231517305391094109343205064215137815045048225012212950166784852673172074373268081300491883795306346312959039456343730298624460383975953549295297623008663062703044424635205171014848580277376566254250066802573285187527056802365427321740571548649062271761050265557843052043095947038738295935427678860246276093429725761277796068160404341914371371868478709474376234546381195085989449236024326290110887664634110243717487658880928099590462101199477476043944230504309858237920509576664640738724176329654277564847787035584597733880123225348985498522740054270491197374666117533612856682958991759610152039114331131187665483993072522801084536489361968363806499418868836023822626364028349772701032027983330943616533181969099346997583445555587656494488546952132631004607293186640503746511141408160897422311194773662574950775075960169468856220815419212255068265632015149676667290064131256214038886100905210150824124372157150719963304302737026670343107198073691543761793730476448954669102842948926101416401262593774521215370124884056666628246614900588831815626813563183582669270834229788487528698951367297233714541972023801162265540194987260262164102998800402019211496694701436385174588171570723192762471671394707399131242435595757046993602454151506652543994618088573044969489668873196404418358582931017647401326979442395429700996621023740401635969499207597015966654883556279755141540614457337506300806242511626383213687558234393063547089056174291303508468861894761361570029074366246259325216489498307745245295449782011642022835317689819006020464601530879378599884243388839290173340572482363948341564721699924774544601296012550980271108919833697267258782616566686715666584822149816200414313032908797816224995738506073010013149255089295069287395967424226294390302814458864067210603077574545279019821755142999737714679071822293600154082701320883112552926312162259015965585413603985177140344349594727751266106096603229195151693408826379738049891225452881522015603570715249046380695641981630370065378679112038625440408059489499150219581911212754726477185882768836173053254006045290220522711807153689092030564065915912348532229888383002361154834335452883876723051022767377317445921306363520558455599575874814400225291404107265371748026137275689377284216826450587633677598011571539288660727782372931102900003563469250992912829741043098024093370173683554449015861059374302416925960932424537939602356443737564708846347316184466150104256286068144013654923731426310447740957715617041001520894510685368085965059445312631111054161151669436858300913584978843647893466149879876422259511449462567644864276296467299955285049461425414538175191317125170772995912401991022579762081503748075359728207169047188586442872881365319772790227911225276825462358741310286577808943471653586095903401249590587735097648918361645805379443653719944365965719603414742353100511934237434198823843576364068670612853128225399876889291994544567921734937507154917296918456872606956355949282186327699955146693547151776930886679071084005114814737408244651481046364883461785509419603430303152827470789039528009367634768466572443850018561774341734880398499577255631488618361867609753043788978041119454157845878004590277151904768971392966069190562064196380373022235888558291217374176012596450301981150951914898775326652042185080330829468108031596241359982224752594226463881153554597821238364422404560319582445706606885076367780704548953734875836918176975949104385174694902928840435894427505689609177953788650954034684684021811988155208874874531541911955475679380418971245511081908955061008726411472688678555180037825235926841781784722411591389039929002260899124418670012927386248339001058554897932717859518039796339736502667293758489561431887056132155402328539579652262991673255502569323672859044865317514993561204999089269388869874051616574305054911120785738016484428151136430616038386090840227665518763614480455219053319023545509300352332279969873951224608752038896805206098648235866107339695096619506928347716806224714220791610373597785334396563446100022612867459321176593847904754013501439277448662038309791855544071967521697306176521534354850471948378356411472134372059208150679095872315102721904970262617204023133078737679163506231311384592366464583928085247108429766365466114986192445982267765159392753461982381005572409725112397801773405886982155944594933618852506280152243348301722243195537742930020689102679531408277492381650318053529838601427285756515164342382882280128510357855989574400669709980968582731115874724909454567687171346639709823493204215451014854463720087959335267473278626016381402767680383917740345847882001521693421282051392859368885015628213083473469812856961244321416024060462706055809694331206993183036783393420541850550956291581679017749589277220185093630966628101975971975236354738668149737783688506451221239212947235112316583883419860041530191970254441511898597280368195506475986805489022627677153525383139225356789907888160247490559933227540413347465808296558764472104520554436311981041755019419469281304759493369473551171084125415630893754682695430369308201181225166619785150074709841405834630513556355097732942951231402001089613415360275011616589746799260655075560899409413213356288131047870666289415266329334783531659006884132379257331922106732024513456146717969876395582181708539586229431928720975119558956389252989941639093608805009468510301827068730470480491181936932209135598269229063839891234554426371947109913658267483596176770870337069821282899771513599753644133519560706714881337721847191899249158075854674513290211876520579502801550780756559492014451938222542525624712601546053420618796110228389193939066415828467383750804313730966781057658785907032304437883681990012728403036963318673945148570772066663245360893991111493080144734152466229379484376505695436736621270398292131490804339870813186695097694938905066295688796222567550272485118894305979414925500095726910418974641573501516830902111092107709616256891368214966293256988113930363504194585583271999059262492304356280058258740480594196433862884823387994925551425332346405830843791913798084222746832078860041472660917895984662964178324318117634823474995774419683711002470174651804612166406315171584124341074290264335602009871451713516850155811201871078712389967080683507386333020967923288168224968932015199956335413693836008408925150835991703137318476739503349217565576193893174797314613104365828810707403465662607481382459336758474881450045291229208809478794110102325270346292517117363261602531121432280565917362414772938609500587950088873973764587700241041784301886956303002232828432830288935773317986094062927752157890853714468243905007239545503819927309917418086435004523444598547431378938492431415136792320621626060054297827468062522253116279971804569112735056403842804877894548618680120015327805040452650595638099924932515582790360696252479742993668055852326383553368072153061036099300393351178625084834043256345803623866671547996909067294562266327032245077501251490068624049056176753849914078574770536335789922623480626686537520996426680368768925463562005536936032122901568405808233676712941221084718350464597985546825228252921822934496736316972776843574547807005924863586602749690874194695385312027927588104054463896464455416612826980856700013362040224358226031408333345728015150014364264902528473830637688653779157250232977234701632279311831204898182465461427376962379486183343205487123616664505203945818253859080161592610940406889734136342448771708056727375097363992954520054950281673712704068196296255382815115585890013004013889812522837491861292221245318235839180989607264662226495379868961576169544153619426146158819537831848693085999956587826856965388431621656151997202076190494671617768057667209441795693383687688554896168549659117960732253449121374861148390740892269524928042214660731608156130902716530509699630176954350454621518702154060866216037007660497867581470169891714499465030341766873282023862184112538177008418762831809529338055529454607171671034477787044291814284441498218297167239843981179784945881954776109373156927174945367075697373632964784007755648015766373751426959069532323448899177473423932383132911487077733710208281141451585784024843725107224207137723608285576513749324089802739568237329254166780869331925489684801136608293038443908471070884888461868133920733670328446936828024147550427090935390587156116343568216057474230509538095860230389984289355121393360122440078659210958668629578354639308450047211583213567058401318944889102517986367989795092302434203343084246317737710811588193604753153480685809018077464799357721611538749054964913461085308007258854881542071900641816051414473268311571855570805274183450877268064198231547294922396644339489468720184875767175210771988293601668216018109182322468505876170261021291837580765708315270403128096896296642787124706725709264606055385963541448480458444869411224637039978153475936262666852599010407430874964095680113961515232049784550539902642911735091368121589861147191752610665653077187148311137837327279176940811995192408373096208723377447833581392814249507638746775081530016715021624138397906239577460933013518286659796056818288638396062719131455631954179654725504078673475739621245512356900099450324670038444603908204728781578355012772286361295612425609563565698892459952209130598043015989563660806693865438056939587569230158241658776768225821666284135118755298730488128656192294358844020277447159640151142231191419930524447735046507017602032505726908725457170599126652288935228334427226345219164034746396961837097494624498279402522099896760577096082037538979992719297826967932332029500654167384986044808654328996883188760943481371744950221251565592177330036188755046480219839873160755481451768221657347031193728073536098072106942156526248245539783755767531466349017398189529683434403484289217930644220725700639966668700586339039463913984181855834791189080471339331561031858595509948107642627289066535109783617764407412173521764497332967726762051498788139608211745320751517501261654514313685844922598757802263169499007941446303450421224897682487416175789591902193321183373869461785417786062714191279017260349274795457039056357921317601375166945879521220523487535809574150519981029505818405111273897900925899147982226381899160972677919945124376108216212010456949531775508992125329608792463987653683697688175844977735764662767986467338242354123290496490959943717918139036588848908282852928226871345816614038752883550086798164819498551312214937604903423038371210471954492527917406140490399934021524391727421437163329584048412561164426863048138818487054359846605732436550766399272727868770391834379737865229264247948257701628939370316466783764999523034587499941670292266118249988455287964114542981090686648222496572095888691937402813938968999534863871680097000271592708400529464658045642801428767232469457789389227064702074150811101277559435877231198029754934522992432144426856963785593356164565434145133683970693278229670621663962274317332988529394770542709399386531602389173045642754341915361875029721173004398929096940700384317062627004916367104577507777447393103179734565554874476794821214612570994596207132291441113420658605695081336965044629283619989640055786441860568228437902635546858392274117041162993622071739992312366593643958295486388718354775178044389005684343563465909104725563395043515693750983132404522998301731293914590640774828620019509956614619682773905078944682673180609881004997856211261190384754586275596837419984728245657753705876209092511932612188952679599032464445449933852644611108962225299505023645713952143640678228714749267860150595370643377095452106483537701871154140847442945889198582705886774827331057889795101057186214018065493932137497913539898208933369581837429319367624957713282221811071297897801755655361006610991180295443863960285654730940342132096764639331699566543452979722155999190060157834172393878876162634587519305211553795941058797908063169092163182834952922103292991639044610850673886876179471152120533890141163482118595341521131974022802853839556512389941143464249804736761073046164282200582755398446029672934522929479410707059830210532314055848718444275254419147390824176810257029987051824968541020620960017268732879560529405301985912904108663631065068777927391465108162025916185904558220598670725106746627622200418958462299017746047825615925916381482646080492189468955109617817691893928669809398614717926648044739166413571795428299531040851350299529337064961852701136582507643961896761790483380321403158843711508729045012673465287818143092264748454780407426072589880410935797405014299405447051031716948704455361073090725234932959192910274243167623105118678360229764248223331596186908823532437464339774723375993188320753660457438888061433736736539303346601841257498994950348259325087329082973941176211638524732770604409906917343097545734520015879031048128207007197791122786031651544059669331570636779265807748429866258888870069193217928759215924335362758594230266559422315830566917733286304618591926895608792916346402721167757245827697537267423184814343081400893752334194346130842276406481837100259278553468651031820692603158260215489649747647957736167779785858877440298958963936163410794699080807213553995719821593308487763297549000822989323783879420876250350689098597152321823577933577563873840215570401109791796672869727891469215039892221242697068499235205886455524493580818793640671396770079077128514963045791586799775564148570152275296009065792565665972503637550722497340750970590070450680627147722039300028173688130050757644135187870941642036802514292850282440171138236002711948888836531261732184313535429380175233478722692882116534999717964141525264347963563139649990354403140518975817270329804980010499932121420535382592375139938834214527602314120134043954166024039835334187652926010348015766838488050147768801984674548680647060065273806603522425397750392326986943792833021987142792320247761542640351340898946934751852013234818915788027162425362122027806882987277163516828670237982873235432761266181012116570395066537318720352100593834061827503339942980985633097230164077094709072725238702950038464471370592884288190184064912350211901844210487842000475256258831452357931471569009032772794408827725377735168492123270669598872419467080320644436801907980209572129826853496707354348311623213033943365857488551050711267123690773430592486962079454264273534575045664582908745899817502361720755945663877965672680736354522584062544045710867142702530353791912982522892103736876013517523227996280909933598456997712017919673043658003056955248686366922559078560374928389151306389423538719387711858903347111030324474576070301761579723962230533509880315460837692530359350178903014728441063248367221464495853215113455037279863844986549807316933617094559397107713416940652295186140796279759972129320224127702080789842056294287576384503305810741089953135137586747975020082418962886407323297732806841983937171507015387853521479378534476174812097400118210012581646728857912670756772075541894188190106930402236846703353986364536992372043488026966899851865654716924656163421286598136294157282539692561989880857794014369227480090634964580168677485185831804149249089093268349059773231669392056921369160225148042630308752377015529045216969326630779592247481802804152262371545153620350655432897136521616214421539380277033212660289636553955894501035858047365844445037832007361924945825308909575843288729334794257398821601647426870837453573978469820442676428665826856689291161156913421492355383572300084122335594072340425891612849341935034937189707602821232927328731197038992942727220813334165263260053537108974428627496357366497952881531817016540003249379305222949168230591880721016535321332965810817271691044410077468954972724485939690848593830905818749996018458918772470550297235133568413958281210396299122589503338475853454014402628184328810925895647934258504816327177537117811960617572958042743954334478966763929378823801079647051640445593022629481921456402230876843162013391576204411412621796873580038515757984663769666099504637932714039941146855141132726843107398262379512795244011615948986324328103506088507603404539636765523598719203141403108335953666707831384757866745985612263716900541667677780489534169661220773932627160597199690792051030714595291145857219664859986269040878301111977096889760198198623837392049038218053074126758385825107255383581692920033851868699984085778651565531880193166376562589974258930538842903774352029885446595732872978071393578782579833281104313023890813469770235806280751844353112638478530023622593899436634769500057987007626935453441819270402772300652900393432680872195846715378987564314463854844455860420681229377607968693661071146273118571845123426611919307455647410262816115584251067022477394526369936651012000635359769975595595328670222276309677179566353899405482484366814940255213400073428879948702812995195683842978231253727693209254327445887119905443773067006750849741096684724319874392802751320933954396631924692012287688923883597798666529282174383586220861290398433987027310252521839917393613996788847152285973647286066365100317106715211966398583968703769791715307736111569516179427043366042431319585555879860016305161968916396745586306625128633601480292880706085281588938958811055868657278358466433186339148952526446473237298267253077437811462573787340232893537137778994087057203850887429072106480914495728557866066664937867914328520270303705178559093381313935472449179315318168973356879375048355909461653714629663011103339857640566179375171794623343100081339206020191797568257181675541767060398694737867783967029192779748851915751406564215603398195329110270565183424277569520857326763583754273794792603148175910500453966908157657210526064831082419871084795017059103182802927469167573456095586416396187141133854058249783016172894225352895382259393946662535730848061896941055381373431135625162455760602389907895794383192058308126644429115878786062794114828570945653608374320273909824509257847431525921292355722926560886140602840002869159533812023031317074038140376146748462399168653910726112414928081304396242950860614898023077043252804217264602496269441681189863271715523293620215655977943353981902989434942998381181181111225153338402435648704150892287193188688171256637417155055712578945406417855459844832781455962148636663810906632158481571737526937806935775653867877277533923345627757044630901242145076758091876086830087719764439973391812193574654483189970281129114089834569913550686478467752770272500115268350576825312384370007871989011465291073746997698211817780843497255242202156939249290942528131138210990052949032314158156392333315790162027303095727416234588748670200641196905151266838300829637661745536987399534074175338277859534107501240530267143646226578887731888824528888785762470911728102514522588518155119371070802842920238797483867679732758934656338815698683133777530978140220410536502407455257292154590910913394029645350767738446861717039847597051154839543176845560178573575313412857916038337494746923708961781882747259022369728179319450004186773563185857469830840322907452100708470919152636756252378484378293751232099026849066146612444591575677451496534856202929303727429507590672675059431470548767843838652776886035447945537955985126999943383682034981288071295189566655261483543985090147283264391534469461454770721424623072205508986339447826870431185105733664358426973155523091962593296126698834389152557953993445415057201150331089635627843358814342828160079999834583413336544060714644368197055315864830148268135694416426153320552361972199861822555069260070279228236981126255690817826272268720751510160784733252201133599793944830944493051386834114510926651120915406134674092591846165667690722133894062432164362134716429886568269277940999744419268853502159502532894335135837931889695983738781387863859302222988586656825648524196962739060635283220496615922154643607506008090678877233766715488118864660603919053074966257431993124828674587619130430465543059923258553174449806520476439502264468442959863074250344922406933418185712004450177723134945474875712239601877484134551934895699758405179900523791294548119250280429949503077283395305031346716091912786274641341469427414525597186118829551472970862146783655738405298632489530285738416659505027218905308950861758205032082969011399334040363036399706139119722314659268257017245793404623418611944838929896956274265747586059835861428045490326451202500715255317162463108460481781635894305496578645150884265022313950472371883574299623545494309269871279188415435896866204002179950557011447056503986284591962955251792409310756652376120751092640783156761938953559069652673008278564038110370911515365618937446973667848629290880195266552999128816488570929637355039648216328356240201006467147894992594225483480227636671796657395869880612626338625286961819865030869587524621426202658928843293474339683760853444205601468916816651601262932889765903961930297803729233304469736551918964415509974287200350615032909725071633689985439098230560082565701085246604633164282579224809708047003409001370298193237789335938928993464243847254538816052566520651377058207153087724126531827630588224200833088003180030780025322162374627042810905690935004654416937894929810212357721209230176055720276429007180451640064786461255276773972961577049523451827363396653977137532964397392262638661756130502878140888921925632772024810034265476568158583110791771389025833524267824316930624172776764923676698235551378133654467309048550129794786912508054701759608536712573014776244678088876828080478831706690526699102505217231329485851414421281924874174846315261631013188328359026146798063095450772436271040832715837787744113801280887298329729564701346145185002513512165343269664377617258464962084040258301409099454280412197231165639091546760251095310178718391892935297301893550271364935421770303743473125354896083785625139941179341609419811892584705624612983818836656296862155557224579503506892570802768319766342176774282480163348904177173998924186648201353645775886650784946946959656479195485451412387254452169424996047081702292524534548011693380803377707366079344609009295901406516000742000222547683596009173312011451979060474242233667985349193167158445080942574238423662786984953979190774000956023300840036770008514386597651897783674630100411747050634336556174345884645350877937053425013872015545160718713951059739142376208210185607141766645318098665513577749358296879494292171337160535464981168751600695307243349717672399301900444608107533844690270949262503528454148838947557768952917618844296516394124992125660189545808651489044011416265124606072445034570789971450564254833028412720596866958350510468244619213725625298231805618977015433737438464768321783618987203207297423591840408189801268358135536589571806551280756354661609211854843680183459673745677478911193936775369477735153217950601707134821871203542843296379193964786353684600814520619859608327943935093834310666417465560377338492466986394441608257900839905190428992849569484431912423630877763693483693943604399894256762514121390443784257007170277574826319301116691613246618211169651944603444624189559550798694209497189172402442693070797335572612240828463861337712876293406449878333788229368657684874985195868083742561246972328693905761144189367912943519744762552011221699858717737956711700884107432466704872611657589270858488298744687946586177973697445497753347817239546766825416220975682286878791027420770313171129557544000116669366640342530125982989147559972272456854877818786463785004629912581200329246308937268360130570395033619799927899591825315772138431241215695500641648784118957118689438464121221272581436966155201184221353871872579400394629330662704831109008573278812505968186765837412769192301516792504204088374439403655084965340784602176221126058385568988711275014641095885562200341267081371014131954700806477279855849286403387542718168429581701427955896019546972729359792656205308609838195250838779426527064535971048965778494222584160348310506650938146482698212178368613964339913423574977898090194755904278044494831980061894745213405845850014038988812952607216622417708497282010149379508810583604761375871901231623303086375116954201290875956142168026757770285072132506619187768378754443950573216059779430944658740254165974486625185221854713493074985448783058092504926314768724272605815283647369155268495536028217612950777944354515802957854485116914275245232642360304735390975329113990046215039877302458780676480857539016791530700390201148238179804057696426617340150272014241815238512126449163046126251917347865954042088206301863005210213029908488949815993001204827717491102187705479295846576313008812824297323302921084969561508822559420838037301783531823672960533606107351103213695374686010937227906202638514155680338211509734453315393981636922084453087454622100348509998130086561275828408364012759782917317970020655454291307647707913785922682675871854196490701658955590508747759184973875242319395055234292393115615431773119184340184009306729733092710080425876799011380787435320340315942153505092011436476152261425994653687145560679964391577874987583477883165271056160937113246794262784392393517336965728054292969937247396333444377586366661116945541907918822206862966849616900185476515610870940779938504041329421001509425549288078575432449804286547836077362618870792530385468250048515361542995807466759217210668495998039918136286067011189650755037426195205559226314137826281965033943955905859886734798941928579645329925221673419449576047494809220180509520779565716317152037561265891389124472495980380108262166038697585897921376673158492455445270300841634826521860838402288867888780593559243375966827350760618551679710620270367624578236457443754370266041478195766968905773671295161367130491720522601621326918063339251228117734413791908007212473110060157739937352773377365986767074542218905649524252732122232461226666265709966941176176199651936353373546470319805732381285792650807679414321501475824221166396479930800220952526343466304016360456053451913802602129765926063001989431022783878011043605295468098416782019610170997261933828799680159666697868112994300714568920474706389532947785339674170301885032996724646406190027147139838285046597538974763285758982138727487352314257161014241097320772836662884829659559403644041503325995899822587059116625370901973564243499428218904872278996751921325062024663198832034168602111161810028707787782739968573520004539209165173119790309859200165073555189927475913946243252909932982696593131291015952589334782608688649217966679711834613010080436512590086970464707790580091892882641863416089367046502612032711547217617337218674234374784275116542706014643735272283789843420209104319405971421437271521666871043643306817785646298697610916099362001762416663592888564295287429751506048869244000224974936204018515429696880606872763114005269633293932665529324751159365027427847908559698542018437392384338489925761194923802505375550960049088235940776433289409182887567684170165023100321297859581614628128494876770283130064769226800630657771358987548884038189641038203950980895357160772875130933253176227444093269727250020475091762497495820055877241954646308369485414296975114493130543408790093120197682607459351860992538099556579503661433154914224390474899461081547471525027725649644246147302660921054208511269506344032287951864287629494056487388516722382449837313755205617072286344922513761773684125673776079402060005172688318487159851294771326686018704613251654220115891106363942365769089161383990319000278857281438390793291072450856118785542981164766950671301101771588287970824273858530106406718872880751645040200575099033827669796929135488507405901355099031594110220325229702605790087117430076428448588306013329994950377700214932878213859230887365076443737459123795835960624674217298017965187246283267323682670794847288325720666102187184084345560596793931330362322874643061956342888064393116188069389065214756533690636351434368974494535902742932617531651116762500009770994593205280917402902452129807967858033220218172303051930702395720179182111787142042063053537270011967578188795626747892623295169582883856948613239017805553277196145676995342873909043663569814989323285664192639460377553911238322924873899102145200735777555482607019651153110242758608330660485438443028031158419441950347933950801866485940153552247298572257358056160896935368329966491575925855296277072793875001501855549067981890022448875656050800958771759414487891617663188110326780100833441747295645065299503785476847305854766498694394794760021882960849307792087058072574527109820768030940098621190831262120632713517415287948207845489362725233177859074641859492099385342619003149443247651913628324206817414552497711127893190106735601368081811468335619587756033577247555025133631107386257088008089715393015781878852543777201881802780977768805441074756204560616015285270987647406095533313092027079768433678569585896847462076339378551631962615901081283038431367031069248682823350145984277957687908180522456352083970423143502313506891178195833280272395188782304538922224153358274572782141132500370359076927727623472003430747050427204585661321987170376290668755365214630298751687855222328684628677828173565226536042913849654002430476641440338175082668071751884244789517596881217509437282657550310323076473773658734457246778990040821540224389193886042481650563471139338093473223801684560375830324904233505183656173513820595079155822366028020229147051477406386016476513532554498031408846876984012295653553683633331296468077051317986014328837724412801449778036438918889184883946724894429631542947414317508221202402507141914227883672980366021758955595482643029407079440189627246944546874802662636176773992916705334461680155946029879449841626700955192435965049783647635777442395434201128803742153333154075542706860235315811486091950086679662185936002025601627037555254568133278641635044765347669500832926083037666089191882649914291886244147175424927964255441364099368269271374223184419512025359915103135429576252221425358602439366215115152099098073784195209864026978914721420126856300056545248567755380512623404197929410730328201551634772877743142161332275344513459300136475100645937217540080841751211048604926517276346917612125667625026789536424071303119752990451180282139211465747347729395097490341957224302214094752897098404732335261027570500409128353046204910761925608022801475634186387518411589037532158013814035181345340046086266055252390371533338207360123012020545434960827533685964938917372939404441089068285450557161976991074333006687383036499240673027832996843384602298046773369887176042524605237701259172276800685355603201042836229488062402926362043629520403321464531383951712941059493336591430301335666098557230908772761286429590292262009632401393221329119581933791193066849655879695691298553228906872817815851657412767541916268438227266717425791643860946396993772459515589660828089745920107396703198373165433660204040730166343160890955053925935946618126535105598883305641781307827681356373188038982914139090605296780677022529237413446416390812684282642797562482592617418819101984453996692566327274751094281309501469195933146733377934708540274610050278573446713250181183809464965746551320645181190428517221842571597064892440627027270759511264310599243575010226003808123366916393006624136794232369400024294711324114606479300148443346135856671287891273584412302147083366567068640623679562182811381029620424774462970447114639395791330075588435226932706202735171494055305536760346476092969781956998455132644840065500657725561225412675299135007639901280327469595201449791789895659677119260567820929730877386335965362377434319283986208619956103430528016910933018013628919448134663943712465187774534084800132411859353638880910298418989913944231407839903084593977979474194633989538315237179476207452630837991239614336019069546296156980486756075914757188921389593458400354938347643381210301822091781393971066809396013620458988358422053711728947847960815998045966684601470164912757321106471276029834039267179072522964701066082199062941186322518679019840776809788619525579629664970634989634362961132448560819407639825361448232091667657115047909621331881980546308699216018927904874664411141982108954730161869574392011218975547984847918776651232425571430783818520157203343921815857982630088439989467973731145667242219909325817945088052030414725089140444269593012634463863101719898283548612531698621104337374856389112076025341824886599800186684155454246491415619042359779780962457563211488085444847679812295668595703365026969621204847801580272603064187335867396932940878165941203926011983315578581740877181551777565459372119612042020452239839962576213154323068627381142925292510499195219012560450524022317697737735169648737283001368499364466658816634928369543282020441740582526233321678069029457269686427072425396306383049856250205591165758856309130774227735646752990444699999428209300778315858561962186782482376533286619843367615241169403472776844268096667572738960536852603254383928052554434567318809154339248604781255477096372726166589364912747999110314445687189916867538190503771204933364852967164545924038335908016365282012344304807807451963488627538769324864753247515542683819176926062052004813368661161478011383148568484639704985227443686764885075277599347940211375801301004308475828837697572042776427555537609718405025745062119952256405660109395469542744937306023376902223218273887382641146277372207087267903192502164428612867404996776377759345943441787629703075789260976170995812815195108458582312539819393327748001731805562358600838200831437827148817931560839798001913246005038570122431825329507636572282217334006628456258344269728973156222868629895492752799232966804737375076614847973762815563668463102649961718036423332239712863770500540668431715552773034376942609236758079138145013138401022142919382495650827460280099880486395212041246166950537683405120638192208660655962261722608319532811022317988097060257065139048301381594110641450891190151937656426960533024759044415912601330708450085822470865877401640005332271971178786519095226481700178918668277371164373879308640146875193508672940772019546883691241642369979356046093223453133202415162924588913092971252216104425302811715273819297988007541743353996619204344107516888211087775795943064924734320113441486701627056864344639157335937380556308259819513746297630957742936712792706539140781587593692035266026687706466410623625820835792387793564751473550236322317963406356941640462738764305602633121495362853256707485570935837350156745507733146248553255522606469913623540801722732106642305867943604478072911853839332482067096446567285819494604659895255693850055388783259892193574157069107844151049660168380744239949739497450860223185915364630311514226704439964011953134011222474463697990095895389580003637698133822758151862106620787520465213983623147299923796398897120999944275920517568238220213317578925463038615378437917843828265388736017299249552485100776425806894780492309042753161299328674004969020033351391132514416047951522070180240771528668134137484009994426293537531969284756685436846439412944224211116670077176635507348551376973086400601101923690462826964800062151805007635915470208117090264876941868145846500314873534874467795326691149716147408562527784360379311906935258448161255859876047203528202297226528441940447243963888984069839857752416663576941367372824310576121549082395925244734590423401133400593316348959802000844776862175717327337794927912341018037876254821222823127979004225921118957964337203103937135496000581031749301810732356224223835395585142013477865788006199261199481871863983873002435833506037508286203391303628321921808301816780744580426447312450328211099623243517563057148093689173567015643591003676632869490473143627120937980951306182736056345355294666948969402941692602430207951837653481213194934486237915697697329668287988581656322861535975577043650862637551192979509325600181448211602535264793736430998290026830357092292028141667431265065655339124666759421067479215254068566580846014345320727746072200507380911179743511897383235851617853234183855894334092025675396288235437487593204544997003476185904556002802720162681654897885079754650091477766535791964383663188158382052757811921458219074265049168032554253523877434204596896397521346756127199595103364916655442991623401672389597032221955586801184048059215618853082459563927651748810347736366757805150023028106751633355821438052373554831763263232552846926561662323018879011536473130935697753367198889477554812947166966725063559907658274480447903421448113294508262023936602224387220134324173650467493173585152151281504299627445018516691342562385596326439169567628428820620567483470946737872850659896984993054363816868622116689604712073757650730740232440962556390478228111999118239377514988806252878719082147087599210852212206835321234802905568734862534711879944263983342485899155634561705471196910583508346179580519058155317984626892474392192067869169411415354318566181312465375125909112539109123041164432989079257171566445647732623611961045330118588301126610038022481173455652110233628622121847394290325650634644486214486706406622018744053146511289810725277491827492772700219146441735076564619031953554725119409754505364478638029821986385692620191013461829487706975883488650675228833103933274838328620524855618471943146500452207981918883692123071041743740494772834220879476464863629600425240000034433376130285988141240311761741958020148442071391800009347744168528173594284327498538113880434506159703827307924783939881507981331639301306370495990265446136434906665659174181369115895435179644546328354064617082293088172493075128708354943455332192210748822645425362635494968122664074505932214058032933794112538365776068191418843357008216023027992808957953187956694414819524448352593553008231683107013576084521228389153091113474573353568472378539599938019347397652266022636677027239603505783418639204315894968135111422973161804933556674279738941567238210313898170530171188343286354932460105552012817627671210032930798419471207613270671188519970686628882996994210462148542730264775144525579064621653255293722293814762350584374322837084227787101427152355947755416364500521971636720365207853401540783652447806076787732106376238357345023867500745335333361856657387673463059235827370035289720821218210322730207137202184909734390283113282592855023478532777932630344491095089507229669952261921023001168166219398988479330239924262840881322707218695114056235814249353907709889165754240478024307758629958600284258054829840833421299350316561667570474089495512757430946900148504138464876011155783077339747497151248311348196991201003613341185782927244638359418763454137877926723782080073466851087068841491196180488564276334907234038597765657851835910075295377424375895469942836039385147481502406204063037077100102926321141677953775198000080764766189716760734335717161665905209746324224180434821124534378860885445909079611408300618084299392139261930644413902015773674081812330443934975282737992327363850891640802293927111076465084189173484691083913309116014117679521663712411906712435554581049882702327909885900508342770763762361348046063591585974087079197397051241244665535730329422293326136137868411211693563089586187939494490737816134299502016470885423947791901124230486116490706423761272160829092794090698257741839855656900929138752833437394042004763681790680358337788841971495556583717878481243325423169968248374310875084785538987341419646198902898257843729142318437043724808269302905868042155010666688939111608180183253030387627301745381115594352795258774878942121561396137027249367734190794292557677232127703216339007124998622927118771578789616002098983611295150536406648889606600425669532585050288592174724541829866700237395881793329402103679201356072239941114593242503078988972671020568070264703227165050382655534069064292204619095135630593781020690679543708699658142115275688834939139283667483615245486065486560018911860900144918429221957049530132229169637292346226282036810762274264233627594371854306360398968293037390765489491540240177975599531557313855943764249075730931791358173734117914228116071842429324737814828210918214723207439317559163014389477959447101014340940096664563722690438285901385341249688869531378304221256108992253490930080589827786240647356307630313819805736370864582652307431933708556372499743378983720434561833900844348439799767680399274564857850428965608573056663077690629621416235859004209058392120761565324716541007021599267921804136844606708399304858362007523881126322486525819210814099044887823548235430663278722897730226371566080006179040673456889164800501234741095114086141982137146342900607090520928429465774819279547581922830683351047828735099357271238033201117440492377378879748606954906201173029363972583180364511079138423402041379774927579453379253252514952359361503864605125394328184088236570451448740280978151503798782169894682319333070176935973297793193743312999200035149495079578851875776758785120572662314028393816389845177132446739371527179583079509832670779138254348079636392742657091295290103480928281172363509035788311016113920385128461061340990183719763218011969187734619675092519623697514303718326362576999390317249299474343335653142536249134554786384839302954303692456892562408243493090587316044703390060248023410005825172467949962687558255879848267785505490884864117743606145073783820120602571702237769475007185498083273395885803802064648278107356138064176936040380789151914809438622042098533662557867284471247120816461666289483260570758772656853819950831164364953496742569387405401871074567743905842796530467869901750502379703712937168516879019124457175274671216929212827588657888514203299040996178251812337145552262790213096306469355567359368440568448827271065354221368782820274699760703560925469285882419638733257845290788778076570403659218725187541890316956156272985614745182860835593204651169875080081503826537508051756444651065914307625050354133400768243379190910702115487887653508265805366766656781944886873479739414035016240120089038333736110151595286555774125616920298563794673100523770733597210988938767616196919698559447008147215954215085584358826560212552161877865608031655503013320902115566034568023133932608528077595117638306025610537922073490869494493169628265324952793350853276346413938773715309888889638318176024655151296171598446281401450682304218111540905813367017002037008976417684622176754690466922965186845729310416171220711770931807974541057769779393903061805051063535816596479184612038577126020942434644265307085821384853261047541609538685492591940411991576174505432530948849455434198963338014297919320109509431320756560412851390309812656382079587229149968534027117976020859908950124769800228111667433023544456265088176128903296799075011705786967644448425080433063425002551711922916987728277760066370493027059761306360919186491966394759597939381098558960773159304372532647386350005551252587356213150725385715641339080947407699671257406223059868065192454151226538055844212343735543249570268643377108850803148113967187025567345272771563009354043363759440368221055771100803300434603614763384018770561715552333563049434320412114510874248909708805673339561889309181317105855088492805716558905128358150558271879319869524520768668545053348169742180755765417226967468331961683492742327000261023213631634630387234076344905422996814834311634785953901330048431084235664294563902292610451944897833208743376095526242853098091153435558720372669635697131152003238753558417601142866400160339474477852867131178394644159401444424075193212369524344820370022395287992717290279536806906202445512466995822308043404862950576797584740132634893721610294267096423156062281362248369045268564333977151165302761517398455813352129436640602246262480646002508343398256490760070272389660632338562913723893414312038124037487714452018310199785449122490188275606110498409275007384479033893898937144351577889887974266443047277341431715984541607569238730003871913458091284690470620821083652103778105328897583351891720183696423655870600251888281709713116372531981554189944224648842289000800184715463390872297399105891764989298620646923998208484962824954434855358661255433156310315127532781091517396385127120846356746968889880595886248353644737478798123993517488091526034473303023300338842313108978653535564916904944924100440817804719029886285378366740594897698617227096564671179100114973424274712780511474048840102780094689310911657298862283497189422108840938730813796131229372078497215008292879307852654659235258313423217233981625637161271872444566397442890821320868008561838111829253883063396352106798325191574603581180284961477002099463329109463699201680569781259056676601647702311067365504187503709550332994641117837125624272091555680181498887887038554539329561048759357798229453158915591353233825408992471669579022603338065757875571067633684401003284334867051196399898949880771761124106735727189444447677225891014051774208542296292650070474998302152222339207486474674719918257611870216560359093797806977014005281420553887262355142594515804219709155825459842747785001560245175642979773480483154927495575179081706807186288013634811293401930590837683642474778666611178076835279565006022767766804747065976426475156206177633543304977670086149943731213211074114494219862540624040340518398253341335848050238772901211363353453293419380906170257541646256485113384429346509247427299316228989626189192013016353359415555492039228521413846731639687037734273072740732908284738494990316596598410051049555578188097345064240133209018802719391559055263754438392372314404417822654768001993443365271857745073463009444538884896652620046402503528383971386340391398230801540176754061067318044646237536960388261319913154550500831695726482974873448816118566497086791186646046425480109888637200554497236949478692648051683466505349918115099981537466026744128591919314146209123455260548924276092829736797020936689931715935340534167582614343317298556331140521543527733796439222426380564850467080196689173510100663116830366974019975189269204187432425472422300131336904889228934384020396672351998924397791546458447194243616673094997356748650498532679295583363725453932766807460128745996254947975804181872043300757110273299415938259157994523508767002829156137273626587042460529230646503219388384246917205868634374843138164466881423443758254824436020200604078010950397692488474441721020645074390761523336270965276733951665080742230265548836946281376407259528621806047308057213777657645878500672380518608793138861524996070592949099095905344016859620259161176409602869874692999425728723300345238181712428645267298656706360347203018791630230601529030599927501922856955684192503782386909736153469806532945665320338066533467094427051512475013835482187453107566416276956774962563294333115503394730167616096913323571149891445529224853014547223952446044325388648951748950080911604128392420248172034444048209519363417604926911361987585882733854355261638496003663148095097199199498144361646724363113868135421194321088748670314703065254080295059633292029795047971106043262010827505320027026879937425430170930544196198931570200367580357327230949803622976346027201757425337472648798431676632488131957186999508013205002546944949564805229530489323669032835967177510246472483058086113193506094653069522237346654788799778775364541266381874954343314487847468468588355338356597320659263899780784405245831923539428458084093474245227507619332226980092750927810943198533928314926408293109149261617520251382978348913365116607213645615453421103825172351586158573175032692058310230492698810083101152980743150720375862269964208797054056319465178881364210664455358144419404592748788930717280170444735685375010386551251365111378932108302391550927221301001560785204254940978799048035812504555577052750167091836041493443729831179341621059863555874508986951892366426129546397015449166576641412546347522534595313544000800583608247230064637531647255504948332016488973404275231389748188794025643214542355493915405547937089501829856418412077558245421630178280015035441952829613829815634011797209997139425945795071129984065492721175105566889780545006015754301280077603300333619101093893980444004928590505443031287712757789955383556931691123386830919080393877998604516489947790940514062687980504442905278483531087687733092058609175377775258652759923411203397569911405467814601239814010362913424608967233912282634825802791973379514393673886612991884613815571429433730741923152765867451010032201557288789506095487481105431981519538501946245222602926047550863091526285426426166850201833609521990476074428937021054834101117247200116830648308632200798585047094350412757925371423498274150971081331044665970784787614961342336611038730943075661499364683434650239032283199095609547274729564113875728605990210098300293671454415985441346649490369251611791578643423096821055161889491548079276063220725254732729417549041094139073468947673897767819583902527444099037644552272711438398167701435178739184877449380856146544037613815422333139082692560495232999326499728205803343673053380356910967709531845418474780433330449774976266058912247708552641970349980756280779086688434743100948867591071644849790557502575091848385178740090668531178392249773615643515543861795499578505789560736762282076519592678184906764368106188121349908194689147153508332000573868797795890972620917694612564292617749267948433077572820975906636078507185425586159664847348124768905376227532245931651344196479880072465925551733918130577852881731290718297821167028663055165920412279037367691040995207710153984070401678469095888482446705193747493200907675666128386153095726587459235811769636919371472291820369220638929824411385189820356049671701218443759441281737665892569482526421296873074801660382479567035844232552743153730669585346615631256190268632075093671729838398807233166960913297393060037272978288829858721913321595891268457013302960057942644630793741145261331831740328919523513979716094578003911718856776549937858821151072418120954686035691880919216195460392190444922718944780044841810763577169482292128172986902626893705258652970907506536386750776563913692783648067590129871814727327121304031202442241522425648560395168905630558290557070847368446225850207391879308842991040723153623346748009247511813980401906572366622843580224737325980998858795834891883349930551664144110712989513973759100834286873215226281592272806911528415195215813019257221635555143198381881426490122828249974838620573862354422251399292482811258964294744139064173161855704813098617041429905749145318087757520700359175929777000408357057432088113802168976422571615900236086316048656774242381135983473078692208494260813183487422067289976433600864164658502404074941733988343847773749706487537903249648457863840837308432862909159779310145955434007732900232814382983989703849722137806297624959197355134832371591529382208834194683472402182427356005614937494691867114391148065748189813057201656643977209105052752201813478696813630429863062555405541022885505745098272597723579594917911185376701291605294008372345028401907690313292308291943400951933892099975563071179713427860927281335909946278196074593587216845025543248041993191235765953130725596122980254828501902575997269208753873902413411470334262449374862489570270270784693099792125189658356606481043383199122513702920058230456810628431016833903366914791164663327364270899962270256734939101099721653857047779181010373637821908593729898658032332832230300601794800022687208123473581312333890440533866265432237267134805865883692161569340513378737726207187162928815021666793146214632327112862984987307871510303715635334030325380184389242581459658394801195922772107750094143031030576364222149030835496038038927361142157351518264399641093856694028462658220557470052097060567169007674900494970793313288668591469989337065963670786491291537801694505058270338121661925785327004218133052293757730604402707413685174976827392265072947441136138561240027670670392973926175182729645469462456697181269748402042014512488717511878291638601126347068542663134811031722944797903893309443494901844859198510583657129003667587658435724262030615865119507504396577333385839386756027348745123244696104295968284137319648134174880094889505815793342844328749577763170184343120021462651873743005849622670885173389721876788009484280434056234318664071908376215655580139952935852388606249526399763783109967112809463422479819119113580570179245714260551524831200640560754988011536545203780244098199293757375956429793570993038010223543669827498732060090832924438033904106200737029496831433827759931302483463068011711778680784877760642867271506995845971249012197702814985699348796784100964428982189478854042221987305035048239628901098561033887027167572912797222000329274991948475114688220168055200838258110136181186010156826889322647602153299242643052633355931935235560633808719410730151848609946460544474403024163176099102659821298614026187019486044278271293066420816129960906925440779219299421526162384880556481145984117468090049890662485262871078347458022871957567977551146200427307973510367896513002549397937347534052964672980897542603311783088535341472042328350221248485031588157133947475938353308846177525028910707871239234415765110629907419615846597251727948340475258511475383948153160470136018224136592130512047069976685918001309361249406643805481791377879328117190108374717617815130115396672107099805064934977301095282290405190102518704088703418523501732970458445337893609518156908863495886502728174759817479906811068795955730609613435466265011605421209584555648506216717462403162816660945025215129748143688665359336592136337471144620686826703278599181635349107916443051575850207385901301033241072442259719211910028517435843374215808785902643938203633735128506965505100787449660471192236414361076278295067622316778460064091205309404920176878044935107326547882756240172673572621285896503634605863385804181307715739531367990898903154821303292001727261452325088184608984526044413046136596032455858750138539927961511363013503677405592224970489881917269564536820408714647352904930730136105375616656675558705993055939360579225545842484972027801604985004930862642411213003468269708771324091424759998568799859388989649367199989025849901905263799330961089131920463649279107329785355230668061366751413751499126497807192179681613534881839625297565442006855594080483423418090446526114866849258176467438948903801110871753975321721564509640184297884474331103023249320661942985358279554873257624051581166016980893894140726200452748226204708912721874388544869709616189691946811754802684728325611200873535356430989828682143647334814292742242988736399206903246039887639930580902437855235178593012969645576888565633932823317365530276290864070596988667711139802039478101129593631922014165750155583799694548258771922956909148026452503716133053357269071197479667984377378044105849311708499189324680401649758179022154924867107762391094742971846794641155996853884904764093771992482082774807969587156386301406680949499682710543819441689003725817205849075093154254731195595428194303015414299600495216229354526869890242642386597250797836489277689261511983449086467762520956058713888614668153699048864715666820490043569881669069915785602159177015808045094745108602513522279013938714660939211597835922437311930374304390445266178716052265040524649011277024495719229641604344821144178227295512953908462123746910129627538816153992753410929465880295227407656680544148556975781231049856675312891894826410654303851076335309893955842309754458294305137725808717467861351576606631180341636373215095260293053764076613534270381152668979545975646854285574918309072780865301056428964990267991719839157671363250471522178152367075536980678138666544190120652083828069501037565592156457262854357681628717595989431040772100664393117600248397991298419998883429834519320552686801139449023070872261703192430490014220943017640994067143493666452618330119476936222585075058883853176749219422039209005381234273154763820240415335724789221660218170185146371538499603668981481519587996000472258685894346576048100161339544141451450441369301423710992473071780818311914687558298030036101200146299915565373642166809772965807129932932001132904636093168018547049666491559795294025059794344451595712579939375721740193084100744365230568693706609320787009468614267155165714553758665686056312912474929779284055278873240403274578748027518732565140559556772213599551796540449906771770614535457788960343230516222135727071130094977463908771407985627948964325701112905078687356225175344971005105304515899450009204188077583673826669268173721588502929596087263050133608572977573588325356371030750080052079798579348205002492607749439258054994660160935232974355389894303242564936406529815123989575356126671090305827803572785539597896460960328169546046439560732045431609560112036119902519238165390556357047410975890078969236056771727651719786311121103271525749742602762797010450584927756982630118384729233377867697903462632228105596433985926260513010012451404290342340628741506463087956134355960949950359547521815273122976155817700141685470945602104614084212007020407250307600528992500170931088069468361326098128429512342993149142779017724381136809533077595641452188752736886864233504296836955589605692610388760340186509232421364861392120769106599723324114827320842836507760182616292708399913757000908604125722703153351851558875312608002928029682557649870593250605045525784037729844325653008663512890566855575061913595025945401531647054341674371594416398408406347437148395375641029858021160725349695756517656781260152951285176440105672380842312049715232569484849539741388683054040321046452438876648810762201899528736072934411473652107406141338378754431163140458583902937984891658076358193598462162433722712094231451010527034927742579830622051730097450504330230864563307108944661381002412932145825222977469996023209061938739189948075096904497213557573880606558120833784225254839779330561296206600659044868462375154709728405453004590693408088269821559661682308218573505747511444429981525057756828527501930921822061358903239881947355553818521999873898341224846938884233218244840902701152971474120512985659837252563304487932436491510332497233674443170654068794452111252944052010102607288525413363449272931961781210302329724074880516062296565346610792340600612411911018286916548733757066307447063876357610469103060993954515890316854408336809179897677683831206557598365721543718058532396342967924357896055883550863790960308605412129774012715367901724298023003745520160662838562437117961033809533765238470585034160452384710193027681069473913805949452592352177089411500408040513320716781485106192493791685516257098036712937260973294810622765991408217944866655717848992518530711856510425272292920246592219762902134510175186155212116302951095480277234142049579596357990896754203298384538189494938986169729131298298306260469583107894796701180118295685123475916663953743427380862875877808534772601291948768554318666193157581938682578654537706691182953965893770578079999479250979102946556504314863993102159382974476588041768435194048628795529129808728559217216376555456461763990126179482563288484410442367478117203351174327481599803429341369059294458585030905704784961558098065580527264669315424078646958085671210320466933068406444674003679518418640059872067515793324649387740858209430650731322654642025611591547594129244351137081187258093887440242645607314975061933556994247900882704018425339870431455812497874220158892868954976629201986550755445386376266478181101915374930272010243674662142444828108846140497118642217922804782982050829651362355512349414702712998036696723560582921306708861703383060450192343119748968841017076135092260726159181735038583251300169600591067271984774855832234965026060696916590721558088553193087367802426826183141590420034159847914789745968300524141703171982427364483974021626296909817391802817757937279747193516649920653192758868984528950625730686963934983253256854784440294145541502125147959101947342818023161612714385250881292979314851509231145402411740641451301883243249899515677923481041373342466506961524715787539964223299294911924340920562594801952272897986749155821786246587048316248400763076044072208147648402903925231088840795771135904187567542225045071422128382507529606945045330299525378617373156210149310568175500372345049028469848158498165113389974085468707040759601235489131555243185735222402509946507667296631631311273849252399667319062321151313118717046612786772883787388531768171759031609522679219522017326015752403202411195260100904519513224131579806527174723093470363289714364182819125788072744221621876601472050271772359853834778036675237327267867736506938237044233941405695146373640263918227008095039301712778282602907853825508015526358770969903951798342246162717272692498631752724673492577719000872476183315181320598741154137771688382565065002264564044356459161059509749981001650668043387916992852571698537831592882222642739405755979185839020673631693288253478474970353070750540389479764917396527992345408518311287356652327648876753283884393764875061002848268902796095894885305863197440564031899859214432216267616248743327941305748326664181781238275454469732258755059824042730354775001118430499009114393087004048800114179473555599655963405619032761623091743086891399712282863492040095574336465222126444831442533517493061136801125146324973934582825772844616109098863587700194191413685433696577720223982898482470922590232686343023875044679197346366944173587239170569764165435563954296977390965437030286171397668528633925212796503111529412058891863307519434453048985463106336790338809957160221206263290738211240903856605144922259635397731597991639816728753131521135829498680486762518487554080884381304265880256874978706584695194263155331713910215952028666931122014807028116090002956362081521976228847151748791982976240952606228433603326569204570833849081759716459480685088751482393927753476044530691271638791767545388673501389130385575405745575564192342770503500909343287417251270546887597903702743149557722221506098272582488488611606334339528436300664024354407522068506440357322401799998673631389055729467934344784554695910767416084134842537054057116131740076646586221310075510762508522247851407834708275793343042212023850457153587849286086537346570568480392350527821013660056539245456468581434267366352926159817079513024932674638387381319994843578582141351319311623402377109138838520848350092513615516485736916189013328001630407050746013016450611325517530559278334059767208003069378560793207621016958769031991589140524175281212296562907509039282771606812580489833725561141190789542804994099098814337594082486068975174125183493600659379821368281786548344065416917389078063742189852498142171921398557265258706111038748843504650331354599728592353727373200902039300262477083487952123851939329679715212462279274876254619942528341870849647936261869040662389777217128949693536716536263622517346521884675665919317066826619548588233399786231048467979506434404838628176481098636612284643516044645250501903957207334526492047961061296889907684744548188372379189188868449358085411853191821843852706636379006679231565554808698433251122819442423325128169875855106360868081044877121815786867061600320597555033385668066494301333824035014971655589656865911863152819513428209470611610977576360298025001615760331130607306308299121898394313112299504374405712596906147101546450641525537957683725437517112460633506038918891328206780000126820475439168290567436776792980622299661882559786191616031332832987986644539809558500325567903793854457138195723411415181670314521347250753857279130449973065410803997313091971638072814135161603533368119642334520670965288392364826826924216739562724949709082407540533529535223586965828601553771210461157170075676424901407002128454987775108778543834696274942820376830861406667914037439574136539426039634621162615246119772910356232608224480712947672816790704586915283713741582375707521629405815445173317170747252775180283999806563969771611684457110984923524090495145530837144676109642015316751171910000627927067800178235476838279491253593342393807157249112158558771944691668153689155125370099212093850318021096684089645947288173899973504082481100985847789038770388258194649770376205590202783035209744997511716564988114754429841567139267033819695281459880747868850059307145002487403019254676606843740583245665273041454556052272898569503325770668488396450191537548242910991225104918887448474547755352159329102671956142995047984025903580141089664692491690877340624257953938640736891048628136031326599392329523633107496543677236370349315189666736206670750085891942228542419504100454521492841459455514715175213655901192460208744928084718074668496455597460843964750992626509029810955530031426347331195866397640709984146274750998889708088391025074146226685439061175756517381567611790998965435894059619159659396141266530001551771342870795329963607198935185274921295538446426606152164913696878145781571346926321572759410348946468325897650052982157891896861914349469849917037663011233711555027053465914195190219279370339330401209764618530359107840309603424003409577904996935311173133319505494955749269568733005409735439866895071780936314005937671439126301898525735318645464555970110560252923510348679056383510214895365097661444358657436569113534424346997352972144606978129689833148551195935471966714662018535849932863902129318807201920176108396268762913909091864278966773590468600266726973502107753910667544904726251401624531431781111569154499988164083472356274791236864470546098049696204702435604950668696673997980162100862213447318457134917097205735078744878927420595028336373613984829921220389796249294404336808461326181116096016910917674572760228639538039088641765111703126999574851607838953637249159463762870563465863565644069241644547577437534872098023477277567172164605000322182928416241430993790291903126539303452509627736511992911720602043262311892821802324992364196251995135343485230247862778571010885387543000403051964436973293701569686027121520462617783349505473002420590929033455737170252405175100493556680412538798386823149120358415487015061503149401893778889176191130269913135997861999054905060759336016238447791544291507531330732640352518565311805722112541173115369614081725743123005851193516050644203768177493391903705739397794840489339350299307002108653921160119387081912413731075428844655532738925679582247902497054667366260166214060211341440762891311872922632177135177501118948471340306666640941963524048268856723432636998385829797262623771246650772659175058784124132943088133716129346166008265272449800670347736812053884283891387543050284715061305253192265732099803900345514509765833465316590234856372360216735352688442807787756283660616066650429653412350018876170285895281157869460443382028232113157623914100636388260652607279741552710799299153706193395753184437672297079816717444830934481576532879018641614344898574555263118817929615299177239506480330895206749235227265184699409267853217649683668337391938502986774052652209364870570721542038809616549317436164461807632889322562714143596678592343343114394667633127845237558294735918755273837646765222682380130133280998426569779593653288612471528750701710267672185084381217599278290818948743008572388534402608273835885822004855240303316008651286527441750319356543322273094857517242874194437569370911895399605692529125430420269699239027447847716249191257462836600734661782605319633603482291986074415808911908308755002368656061975791974930200935131651932127211073385506304573062763850868455286851259612661868245811973749446836373328206745101794213076280019523222108389243878626508308146215363728619947888270772807670800134339262616061581390647723308428028988599836121191940963063718074926244931733236650972488901213424056614363597405578607240278497252785099512958855843990187886770752696337833751581639405797180431668873234316074999425793293955614435179428288719840402629195950650783166597503654862587991679631836586274444205160348217552000739969361968539246724150623878074995964024389782556975447606339960814542724404043084435151012255986273553641095686879783681387090888013324816130105514748762816187186784172233364010769181824497552220676566870801065856836671304138709310760517956242811153774287650211156194407690103775493401325840414822279324123471296804475080003334783709163415338794681602952757746258503566695198687183511576607945882286853478905848786407048777368254185738143580787284577530044297617553759853926605844560485318158534822076480012617350321262645896483148014669345990242690166496010701923307696022832635166389261609937122981663105181743496891376970147697434764183857850948080595303271170510123027636871164730343717896415390508712447125591095261828466862928162260515223138535949538029751402966310275913197231288349678905562651699982782662042922608006666856284186764970027964266865610251609228084753477776086756334069151900382955957654396759999583370977604799111376904097482963441695611333385377914710026663901880646554276714513564870050261994057797704534975761512378363725206591237248649307321110398887412324513994303739265962679937472211294930271404563382430376445158817746382264820943712197405896169527206081909350130964798401669244819985954868605491603643620576263688643196608195337759260449180117565976938043961044247996006222045929625974281380294191713327728633035544221090016784778810939674955068484228649802130347683123278448481157666096306982559888382167741859937481292190898677936415273773329989644223788025904130543403021872405282298209037559327864741883760516746267388182060246537256317021557638646359214313397627144452161736380756271279845934115843389994634203426185407908140391742614333925728456687639601016826911157117365857434196172720682772811103094158513822836813310491235609438889141188197584139505564090543722228713901153112284626191909223524533923744345299692574012630661526961787290188543664952218998531840841515956933968001315835537191870207402590809074579211496313241044802962910126792470665894910596335493830953641552289894836127291489278843710367586883021740290551744113735321726874182223474746729464467496045188461832271427151462803831531734290676388836797854078641763352330561391715073298266356528849157941588407487942103201875305133308905513201913749908888260005916782818324874687210357868317460362487067480919146013745950640808091258293915374441667915969990509715156023656386267129029113846000891932993603958734359817786235946273308802773082712356683042728995263131135191352841288286567639538764465236789079423538172626110807754681971360398929261607276459279321113868379242565532055609509869879805337240745547032372028674568686182181237755702094085413339051509740757475593489205569985679175820390532055669874855839514542628306027471451106534202011912468620533166153121114590600400618759486483100131109840990904329373943625070523159134298664094910299680443802985254738636113420652640076847961518480071823806798471439689844306885644938590811858644195066423850371006832073089648507827363603857791917794742997528810290141061036258010772709882908945441031705929495775090187216998068990053439130400641733218378904399890820297765037204283500854763173112553100544814887354748598873690128457188418527656704185092072879162255654773485927469862391152668927399159908834897196253467783594435490973486119661455064956933767054094699672133073742981555894983889321935273901344738118477682513349054801147188725635356394773864264761798939627393739179503142917126252000439248040316732651642718283127367048821461681661276269236340533406729219674205801402645446947043731923433728990128576930647980304641059590987635616099127962334142119591397181261649420430897913981967521717632400360638496009729849675840217136997780177369627859880285984723167584762675972187766475084200508414618145226912113217138231882169618644291901542496442323093043065689491595744647981193652126928414456807206166281255797865435323130295890595111779157578177317495922832067066731377217007388882253661261943434042416136947403569958789540313567953405747907203862755674077123711153469895800096789124202224634838757678922499184385876367596689627921690776698993725334784003268443235902050587536092169833157244925005194843268121604930185605016215128498694098586271642881763923210293433680346514405340302762584807830926002677698292107165859942161492372403983150370321965697562451312397729786873782659401225103983063157178961264248541263397298099213799231076883908332849616517303919759810607993334903654099644453697506337251049177230211414686863781407552815798022737699253319563335289459445802590578612249984377942704181232262996911127772463165819061910373795656603164383851380668714362708327045259532171817895952607973751327290484793992730565495118233037668413822223444033742424474670004665435088346568064251780702413754620251696535998149383285356480941552177214247459656094279872836092435605532473010525781513792084812670162554526299683990724551718703089567013958058956961151323865706537537216428695968520980114957801814546700724397014835597403234802987588822704147133081890598906709998895239880946842948073363090909777564771669212785714478597812495259185792802124091489062834315207229672814413075489891043871531679087520421274228376809933228864958829750690699198621631818780898215467253207244464917500595163981220864134843958287426815733333858508343893317070658982987081592304709976254484085010941298197570977303618755939422302174976057988594299388548605703556811217999542335995071600057593660586220074627826571362413699859032245443636856647225999650311377467451027486697245505306480065521392574489604003627629282183838628426377241899187022725506215649727775926355279163794173606378064876951606849353044744324733202261135389440511556504354938703728218413650708939952611730753839808495981171585290929664196211229409934007731519540564520852654554807788758503053463136194903097155612692577543467862567493768825059756188066403896151224595016630781783925043265538901520461779051044726860381717005135857798234779372406628896103595114923464432716908317851730419159710037453482930787901569457408060889037688392130923499534838306768331247842597984760661347154393928917965748616774172854019156742466886433982212346477943765374752230396848600981872566208197327907030660663166299683960342705247975347745913263317703235144873778989128768269136780639292107088803134930540833597962176214542827803641012940741830612731370553873441472784115750870647391413760624028054838876923525844981093436211581078449120735335125108986960612328837121295095080625555820503873666515946053678507360846623364451563821957743307293002964058805077801096524138901052888839922565538101405977300563298264998022124451730838844829072998958848396097758905569238284554245773966811678492216057481469307003151212877066476041856922368585924959231339955162549742892795176975517453516512397970540819766729506249819157486125073200926250772112507176609868297649665430574835187734008950944507321486173990692733283936406847267558209522757742438508532003799616215928760903093132347414500890608870832457730937639530650798231072253803864585991783639311244659219586492512636967416201734806781427762524732556049851050924711246628903019791817262911631304312082645888864676402690582173849728963604119138151479245636098546564500538780274661725183827712891433428585429440836204096398182162717241617044577894861320812575863351046464703990955750590666108832691044132588545919136928822267548329444351685245878597465901185384540937794029277255276352462646024641393627627590192424707308561747024844799192978450093987807682023620233457435107473152128321595896795696881569764987342209660398618691076016764403243272836695457373280456068078676486258840512655960194747289386606545904316674973586551095923383003368089540289314750741831473345619395117367160409485017228678976814498114363369131383139331844206462141723525979489248678112999834113962659569123912870476574937676603457690545773510375849716504963222061236179512005423295413710474467180307789673246505069128651160606012473989991595564815473745602098217276844543359141005772489986387590172371731572007826021276556485443463532901996063804040733230843425688194535081093639836824591461677845353379989569152031646878593709022799959160082960286876328323651389447360113564688276869611835315446273316800594485445569285644213757907025376504562815879650107703370751738628070266182453628818600293495310845005268126452458891622291803609449006191889569466668031169117743289922383152410887444225435229686563117568053062372204639059691429257704166393248017035216731378976056341491972245193957168001894613922549502714462323137870323684561508993006629911082398299005366398248112745167197993900457512417995453489719115209637300590156844428489126557484259550144604258046642761815535845000287065956896949636124013260188389704324593820672987094482972757860136493770336319628843844133399987245696321234584070162709943115015582563465719721694486757190096915836143404245790247944944635044372684686147874503435930164542815648905702665296516741870607644865879452537197724826152359862377833444908175211209151763001450430823479077447388117710895389203283440411430582547529480214786235488784385282305680522030997480388659280050932006404835438856880134354442420772860825672767308673146057117207980104975275485525391149558039903287070931487323323843575256703031425839728128628608921414002716797988639611403596818560709462413091950928353928258131528284794546397912854667998445490316202370647506491104072676946796108361420895221825180322145120313874788111177647003624317444459335872423527946239347785379957243774954404639150786237382852944769799125545745930247495288482476903486588598094741039496849426217675074641469739117015148152277411623462445828590678805365514683108703497308984196065878614560950730326941259096535538740813908316958560768858316788259782307458142536402888112870612883035748897105416227827913777135220322402107600580537344010790322706551498298322178833690722928624273736019371519886644524034400031012278754012249015027526638478560225826779832156753038113039227231126420472770265838478548419662934211404735857516909859573616539737822155672491189698287337985483446730928086827979134083631850351022100052762796433831613789116091988155802359893042851086891047985940266341623703426841886218083408477660549590874734589208012473904576118792525051376818097674384228379841598775155095027802370912025284442838183535848029375928086057397877557009472044135750869006392573634154161998550981723136376764355555020501096637195506878237261034077234768328129689863998078895237530293542012715661856025251899308830445281216952693182735626642262921162172884296085734202701756293930063491519689919805642865869526481115176889733127072349192742115142579764031843191306037093199221431039233559229920298983798061520891343624665895852398434055419640845156258640021125754820686003054631272585526765004155452577872626393685930589034492170292444960833693991019897659453434338574979735639067472106323840062240414754869646647543387998784989148445543766583867918296797540228027731451307423116854864549117812665028456018899287297019257165426784250983183145476740287069372205066636417328613640282795742309681553079694550447516872084501406385022196803450946619081004271990714549046428451450151995146643783390089798109723136049333628648098211744890348975340671112634834300222216592760838221831184662049701867747213536640529210689598034581067216798604076876564935311214653472077663729966296765395623272670433131042630628281921774959115383242399230943866818151992590535931255192845749959568043114725015365288749959134217056468948710459685669883078252301786563703942484385077691875121631720030678577511404524068521285931488440274191232913745300300061029304356744733060221764555873178409712969600956045847951346193720340537930649441161586236439347105846571294760852674350178310412070914926712847159597383001346357628564394709114387461170354626047239190562844652383504143058410822133146981699305648923081123368739160956621613435934660875326219832311439681612040778121248738214499124123565227140786215040831956860837456123504259470739784541180092075955060033525303165432035683347834143503128372158865333203448943015145608282966766423524121029657158371090852011036378775304678945747291599315811143794691179745139536902609699084561409508545100107139020713120884062754975707887178464961659906498130895474879440500742963098401604452158040830544212000086489607071021118037223770543230458589417633435133484410678709543857454109937053088410058745829582824258151646178327734068208502360157007947461714933507821936338597377609388565513776950015995844677993204780440906470018651327615492482229586611983023239815254308567843489361812897006425711016538192319948331308640230551407869158759957327350005780094309021698516506892937822232437472136385999782607355801818592634611347509926758765606087530781576436308268087034765606883564768374294046760965461044805746031730264262498310628812395669059994642134090730825852472412054421182891145436943393222739155344510962937728118262879931053834456643567986755501110542218927579766611490038378211528913121091863596199308521050189212340212032323949381393493740484830195483318148475000620939725112709457906759986840832991167993923730512891435537688630644881675379136151035321339149339098728757656635225152467884076991242062053824432764640417404129924526757062258542565024561280776460370825586532571417792547812126142735298267150347066132138897390540944429388985920179399299379264863169420985060590206950004017361232759416100027427975008835080216220052864477279369328865417025422803355008802654879161953472627146175533496650540231847491282348066097851553011021488648261060905633653681469824982330816107568734840550727752196389218490683659698026250040360088356749397129736249252795817627136276117790816488614413152109673997191160063826994022270790750221348256841221203214769899215110930913701558267160198952705355465572627896456739061977912054339509696006372940204603042663205939733618641106973860740673279301456707601582817810143483499612017884843284097410977494108826616838548963887793071054476173723497772955551070415722396824796928177186031103691469075114783245799181557125146608643468800644957175492864478649426848124059094939406788163183769440750688612411349885580001186768653331298098258191862631067689025437073197256006710446507137077448606112359233260949004112581103952631288270432934859295832150422222302394232991290934581756328112562267721751970641305070864979992393453797793549574222347186945522133753373074045675768071666033797979203977181689813689124698983970897950955312789264605279996156433644394759486789691273995571409134179599378819483498118280692737205872438644672391330031229565000399455980820911611202592656640527939152812001846863712809556636232683835527599881648927741602090955307261654020248359329304849691385957889908002993625988211168091515436757265071069278299005208987993570896022589023685895586136199942479052682413881790848110686752930896057674978216202766509977852032622597334228703858289230006392988074761506535963265880340753178610461468163377844196001875037801494172146049585441964043757216931865287290617757443572577508022595842909875736444298847141575523735214996338124016027565000782983197505850327964949938947169014493064920773865412617019269843060190869320101953818748755074967574388770251032727017761732425085521729986583770917855475571781934257179732233561038154961508247832282452277771615537610717791091403687631502578409860426312952311700506827463962922239361900730110260509531614652613475412327064865087432558398842800299677838402111894748570044004675745218038805152028182596735980942476676782209800078559638892844850650841023469176835884273608603218369769973407650008873382667118046519653187002780108393547889362941355636262939715467746588132612610447783213296080757718453643354109059659938416765545492720022446961191322984862617531081879027524817265575112621141364543132581453314978380080579335206432729861663848293884519752611041319340268086103491151375907378783909016353688309892176898949198513523745354460105872510883284081085332941217683082871926886620867661548109083664792433781837958912137391087447918497524292195761967967950708898507037675841281172515010988982111032793308077593769844868520548355461672307245175250217048941635737730257995613502352505732100812593007789403099287799936708513559950217990452137498855765245652191992087616214713788289340366867531795161414248081334164012072453731208428094747201997009707917285189150968750844002266546806399193086014636061324748939575179651694256218609356453370668262267355229423959557131579008086034981516583926451659813781400501849827226780520539670588687714973860168620698856149430109415047160097151366461295584685551992311667382811921501240388648289030530791335823792054315770900667044971005465219084769668133200134462119963498663752452338871320936397299904392618371534076402132800866794346078735973603043889329140752999154979334847789271264470368009716696699687023658649859960306475594880109415174049236824126082718029529818433238427355151934860696871432139975934683734886415326776531967194855425515016513173702500024574800229497879463687223333152203515874024289382946775485858556805790651022863088996968827822567547032089396652437775892986267794757818536704983134337709244255423402067813843089817907266667999179113832046275058944218923797735006251188640539664577526575963927363984705212589269676959678694124440414795023048689155363979770505549605870255812699742604921447454338539099384796008264357919849928174318815538341774042086417498380059989121674203588729054625955188041769252221800680877022883169658649911428500973231767072793051765858080543267887772756619580706165095062358384464304387960999441226494908333865823782987838935727975414497971487930950500638946193011479569039801057583812453674202817446959001844696704468211767144654082940418240211023303431569414712006767520457839428044894711473872537099518464836279592036758639807354786550321004310564123035218382674720050802623738137847475612751968309809917617984758662767514839251408961590552787401633930632637341370707836683989543484573418772388556998336660188401164583652097664535312999503644807509549947547667956852995830701441107125979583486215468352124130095646834198011314446940528274835740884280334058839727546186495250174171809554602128005511363595597595330308820923645855023054663930013959690468543267145495184617063321037394437166014534211051337437692725529954891242416315159499969568812982868884441864118588464188228245412950111368192864533303102013020995012764089087817449894631862675162390558460798900859283724552234547900136653710626500378830088096742484374736203607373152134185674245822901350613993724994259930810398913436878578342840106042801863723976749538370104515300049458970174743964474993152680104915207071740186645266527824203929428870891784950124803598872735896465942705329362676705874584443134902762861638057473059428651649396303118247234139472744102360478632271315303612500522345585246598890802281724755868413052788700971765061666859974107419833628208350477004166782062058491923073083918143886314182736839154433605490010087675924790678078478845279578822656388743746713059770550700776312543908924434890706486297532504447481621678273248571799040469091204133996996980598035290615370094183238345643085291320318557824206987734299276466754103131872497095591527503124638740894973478040233433817638484212296633345249141488103916850795571890099250989083193335864673920208607401708738818528030700222776111296113646948243913578840689741437519396894461428487665207917616196426407639629158657149094811710609437590367301184508816635281764513487631145960921429662539766331765904559900999804419213842527781461663249358011779955033802232762226725683193132841550572832465317303596769645447454888432295141828139647975047520181938848319671056881887404114233290010452162502280532359902572398399735887763582234191580147457206094701896551928836204111117944065509465049781262141035890243795439647051535269437488027624436587710025865555261453898719168939542394084269634080963420093002077537801523359608521146041228248999944427126259665167404284095831683061833725686212617500050872321690107920924586656294931745301810050321672394083011125637261365509166466624439491909345678438951315513728700685562813312355442023430777365992349582419423343453513999684608281041495532583902831129913403033434135757496020512518018822982474791654861266201542662554426609616468323927740377094221213476068937135539201408204604235104259663999565723417357341440413848402717320597432235437025467850665358416307035291480197242756332054217847483295834264380469452078670873307884959347625932488256092170330719033087288875756495013660954728622487493336667515305792650568441914640108937200126885918524922457438299654842198055128209059639993221905301502123451203449722794007657869082220122822579001995563532250178179447016921058062787756135194532885641858040450936565757508750772773769651888624494503077861831211804400157067000848187790679545010354273650457384848403974905223215975038384313580304647608767580813662859224685357510830647011217105519819471773911553319074058965721684227111576529772538282288463494061712787295179543135894271547637499627617715067228322199068200845121545988469820006527081817181102836471566382634347887755462450409654818129472856704713554541183664094330663144567212543977314724551404271027595027074694689393700312106304613483414638278234727101940802603006290477564807063784745677389648906858268299181013795112475175266395996391793530150067409525533362136738693863245139077682402325236092932245085211147386381199405236380394812062377811416442852495301571784008369745182927178596765624332393498894241179943458176491052628787669022385298680156888937493521962121006264201345272326214931939265231119761040176150811436223414518433781323299011793017170089965613673004124950094304124638542852166788800626926243702678622466449982245150442535822721974980473546381084144793511180514757279867168715053226985778820995106714104637954060428634014070967997867621474784140277742303412979784703794246027654636097395388202663680196743332079953758556790390329866243638952808184606311278518107168468350444333258439210760333800362102550925109745851830986915566023984876863731798454312733383560152009993921029511740483816862128783909130054378555032347137048971188535370048227090909489703138369796244651812332276390100893043500717577867272303207212451719185622372032597797047392071227340921490949066585625804087054496647854683353493630241540432729711805577864391547623000678748355798458819994000624873950074361609507801327124902907767090449445155533249399804286117303705687386249247027855037599173912761976057568253067702305076548773960431825205273542520130034253076576517198694094251417183420027593049163634388632024837501712113216719038928150992028763662288921446299057077326469325596253161459371126655989846899976596758114209490090657479780471824250872680960721272758268786271683457674860765234543902860889280638202934954121783653962815333861262426291103600355170562653260096864880286710533866373431936097776162995773708048208547401319981551135632523412326933618799864239253168347311643710854463154630089258042634519560056041617327188693984532383463999325016626526972011243218656622638849840675459610818521181634141118452531832914457880710801346517941185240478169890437385401366156206852525682942345886703771094510038725141344946197079662716043130281434614445973462549952891581681956266770801897912334781336051079834930974203884125995644561865275449461231306193514973118271900850556382453366255241349178361955979645394195994529448209120451144782436928441705149043574231532922938846926971536545544301572693128081895463878302230016438842127652306015763012620135870012609428526007610773691425117525115365996818202561310570748366598859227571721135688937086802737947937940281677538889012061182663564791794594029396624789621174707667677821467730479069301254778185557303485930705072548137951135822581103624038803874221725533796029918234194361591018562462371765595127925354703120767867250562382990447753782559053289057694092145354703328343231431114985701565905721707553988516495581856897459023830467663445092551381442379216159499292031264952829608910833450335116699868204502783727850087519023093748126317346118817976531800445181995152505971206532179010635551860089155532801101759472677679117418768602424284626949818906616830166983895630215135695562442191559569570722143256578810152013120108013786191193509523917865477004486525584892287963450498469920354087661150620472997212728577273288928810583274038163717393878635242984059712822542513990247886779689008868525421258186255822936880507840861783087034520492653893015704794491241666206823659028059478832854694829376090964576030454588261566412883458039421995832543514211508299442676934681251588565843041152350588305249675203229568167656248698138549797802318395473499406289881025446134516798772243666908902830191872057289874858744062110023721997634451710059856253485583931068983689340879417300651247721045566527632805177890920452858993064894628492350694807259906526527994344972825589998028623243629543953545272815927401318424461482388671736896227976159691172129381554655921440239717832268232634593876804317746661716557196216168167409150018112364962006586907430955083896659139034274271341845362071134336282100796420480785250513898550569004738990841152733025799744343777373869577246874813199536310471362501246464685854593325985861610277990332072303688460959343182250369026774224647247600071821077315710724351626527901429195256904430157342843990544869420146497954051609360876011019866428829344176771797673501200373087401913869326220613690088217359087200634171047539417473242020156190986331727365678904868204374898605290726598148352206173114506081234401290466920268187729561552417888624320788683815496655230301587654588742647334143384229806465745915961360707346687061203074461203529495845672332992297699764692085719262137749218637640997175586385445537958815513131885274566608766506474232926786500372324585546260129913670074333602772207855618256701478818813871458704582462678451779284118987417728733009445629225027960601815852310374665802755337985571659479259879589331462221523719018513735020319029125675526367004679217345742650140279957013594080557937968984236631734109422957175187775497043081704878257170035223908914392008376586653317647298991627159845785403158659524920188696885668387864116000270586266735970105374653707114127693862515784562636273792063524971503949883161882784940705793056212780248547969976964902187455440673360477084204541319348635010698327969234802975674127772944649753947325314710880394432326846692449971735346675015517527584718109224413010313085114198902335989604851315667273312496634943205186442086554522704846863689092246616856161792774263016382438218223954631735912917210500647432490282298472793682137250294046427958926562320914821781656828765800976923059859138469371249638921576635771995623648405469943812796881280802766415272793245254651256976473768023376870890573950938656534252833953530748640609568805949617203296259180699179270806542351256088888379020683542591825711860955681137731951442119159851419046953767781070135360860754307650164533346914228779351521162715351493961194519395573338471837709304185940608035124280519933777603952571418615912768235030445874250266544644418184183502450299207489812435580316445780692221869211895052008145004535852010091939808952303915091334982600644521386253851919610389449449770061092207833587278060399626541451220334538255878445144120022471477386782790688263272683025538285474924010082773482044965961406903574382248787379723625410937527793332615291965305939698005667238865379319099963848603762249154929591218364966219810521203098157331009160269775425294970640014717386577092236135872053585293906075413976015328840049002676235140839671360307011701822881848876420404093891780977050146889749578437996798838540860229336332829895239992609910717474582209945530255086397314652050006070207367005216687814189738775404925759373940746437412691129207881516310444439694474670525538200416340546225711982083629819729554748168149041549991161314802600757192072781030678632242824553762821756731231973187334969072636642429051814621961051078289060710479059230963912539875352427612195773199824466472737388058718418279105665825362933306846802085202223666329785861844167841747903842647639320934033213017683269777532442157670805108512186476620634526560873728129021718062916395087390299309313785452084675880545735290724037648934177065952938601302154101521380904891953869557669015277617380641398879803520872803330787924804075608069825529966274374823505732467763518585281214743680016256129589757822101404606736803321095679602650493382445970406177375110373033048485833832453963904292320996363237245887010387308803774933970819275688910436237165991208769629571819882341405423493019308141011983855889912876472236440143700006878419132755999952196296792348402939900033494170654331552652522857719332219113995399754438839300426775970074310572107581552652512891257213463335696178573825791653086441384392859929825228951966177406600791685131176093238099878666226524323378371024300468502463767801727662846517301868229633704098041779717093682555334861165349989021299768038255285838818695482017668683821337851849262883638178545474349369272398461266159087832298735532875797388349021922864804487067155168631627885428769975156092037724846625566028662066993735763820953578871923685580476743203797191576574757693348759146033095588299801122021189879760340793833878243006636481616149034780852978936865967644885148288970382521282013898031870827152139336656606258472340606362932937190941623812426597395607880417945163706191561275088093762171326445775518850141611798976401835749940989317543745211955034434448936678916379010619606723875839161216323082728388291031447369903016203836497348216285836474084777422242433820279688722229999159136827876866187002210237319433828068337075756339197191572263763174920058290044971500352693836617933411664401680008489006518966550282027967061374086318417410136259017546784574985761851442202558930788295549549555407610239492143504357059804951705057424392089459473636074613081461149426771536416064155955456644017179038034798257661693460381796638102530283667889061689362164164465103502462535700378216192499576364136625574323869781364005902908015961594511448235324729932895890873942651896956653264076143977427459172305015389030207379153069149632527637628963602486529993005286816116746485074600321395432819530468699719371924265682822237178070510553335226132459767377736073274514480652398158581666493654637144753299401976280980865670942544268427000739385564092369736769312709458044204981868768117622293781881692553924406046102062073592387513693583768935283189715068753238243151273764068310421888614151555229985636966382736098460900871054912116433144659780652597190898925338234815142703911974075721130282563953466630007847313628604380501089756252050766704812101019828872696420534299978766733417846568095869174126209153144283431429485174003050580264036965918625010687048944287759477390361404819373580062447661957258259243355046921781680639908385000395176199501029473081164349620200405214666706221708636084571123839389423032582665934745394780337188597402374973381630032677937228858565720804958170303837504139500912824232983297134259334321312533787413812122829426616928365144733820484692499565247189647537053147329013224740161774244501391982134142093085759221525584266777170943481474245395593188170203580474496951932697069916983485414238366650713269628406990851773496616827602134738235481524915257468361060086684839465999565831782133809677529617191285149588898191171284702557735465387676871814885368241287416802467868659774366713149645201636104662384902495567410296823010252672977960415111182032594176114331321222520342287958767886342238277011627681698331092049300139777111263768211683347624475952008169348138664370369277865543162714778260258533576630734945112819910430136175922650442812458663442806782518101731146075710788412680157527843736073036086181807860850519499691053167127530988030646500986974296254023117131251454295901839274565690222035932550387828195833551973474872047450010488610669633511475530897664565038946317882677421330454738391094001365297301520811608663253703518161171669940520762310171868187065936911920662893773456612938649895056826397190239134646596279457889668565383020549241679593982274289223475835888225473520521587728638183862475715051895516956264676549452771318322562594515051835111832698960967693738994439073987927321195311134316460177102102641286354694786132834035223346189499803954393771124035983699365430912885739024027494564303172212535676762987426640682083487958993324070031642992856613060939991852648145844966173706239987681737837923208953251976391062954944170568742785863233243116727513182618458558692676493892712921793086586495866333867465337791443261375014957860272870567969922810443226211048892335753960774737479935255215413440932285921385905921077555722444588704381868893965894346998684529585506083156816737538954761460838490413069742559298522773253255139253492431330223260538974984104958553131043340081111696258765201989492498536801069608388701519851782482484753214286787096318030999415721960950670405383563815222679585437276920932499418537295938310825036448696082659119131080951500446609638194060018399681472482363262264734232613804156321584631722275864473899042992866742576342698936501565281497235225082360205122339017716274908760740542933733989397103296226560544143245209306554614399474656314632910793246315318591058624472603694904798726500256909779633270438320760551273946684103027234459300165658425539575293969779862361576001604939505060050313832886824446217299646673180293104348745576330685266741363615846643305269647836559872165239138619529808043769525753441021677572481349550436925532897374126477308459695697183473062948421434819515103564273874575495626630935293530082374995566798410872745671133594002428662034184799740038796456853533813948197286703358647174173627469545533903471722611202048295840409784607058074703727242182269192480496753975262545441079786444863662833190106560084549241708530466328345535410100623034261416135487365476987128253440900663086217476617820128043804234643013891776508523359362400643663672635663461245678496984701826642338486911334525610314994077783999522269348558476344859018937341129446209117619737671941473715961758657299920291678320816163525045166887560257361533455460245801994976817745670813286296403278851137919029239966307229587841906519713805934234550386507728508769465848991076087221805383541341199572139187006999204827057516903241932141970390783800690348258717509658070828997669323071522072750418861254918619150698583950678973106204599061815356395557463955777591012667374794348370896840801939461740978231962587466715413530860082831234414011019440593313170252599252856275847620567297235397916652458866219235727872092958844515688531631922008210007971785268065459932534235065945442190160409193711391463913313617209214003104670302039677970721169245657531910838375403850472329230694397498782175912291589691956636511375980196850900131151282203262848669087524905363791678411633081194793338641308227683008261872409267931911803601804222996901042155878055276301336818582992827997892573741073045427465784776153146106474143319218823932273886934294889352766302897822753095208330031362907222675475546329427323415992944694033787086730519313290747235334716035655811358150315052046273488363936349979088165750149798033151386737283787813326548564734718927689447132662433632343722374896897664703524003177564471571655073179714885242505296941984437811359127761575513337615660370663631687523475575369482592394445859863228444899892826405923481207287968342112135138599531447967439398276314202020968303186395647548433840652573331684923564911941805721752793696317766027951539434087173960900928257057501501464815186625343072487374916047784174856927450891635369989712024524465002750832884533259775087034663367636847042948920392065607476639260491723147858461676853024369347465757063108239040372774502405425508213683959907281715350979574557416181985687756242385598667149404562082355086234605234965044539315542791488303419230656886415922432701509505646131165192386273898421929844941538480551053062720024672688094943039960619022182428507369783192083627377191937948459109701623978482939875718213939875207331666632847851577949092478602254016123299341214645230035744062314863048485416420915326891340136860846637080389429118296995403823504780052604847343438494179150864211358507441841857111509767728357410768073001980160443728730623530805050504168712343316136599760204589269693453981665007565640563190568081974555440804373997466373336248464984006326721016837376965346788408627824890896115200186465113644746818864259012262243098262147914438075354883262581376937329092941868274523483392197935157516880877303149729933780885615613644845613219034947485109507636728541753124030030732361462979653604174713883139123623671063983017472112996533951933043493793813488270343618436746756855314437516398015170199677936994878604996393909308011050967097310924106361165198004234980311444337432868134068707445727284654959973693151004490042283945196977259455455734657307339662588337455690765701188065361607894912900314206124987677116048892125429944754492290207413580921680684680955891217559559953957805929783958162022560183780562936916572237233260707988027991863315872196590321671644365253367317081789919274175876371827859331030954195085355454742224043564257455384744351528417794849143868695275811474483466284423577600252818960402306254468424924024392766975608261631044953594275496086853963975130916247652520068692764700644909077467786724401233038896467461276324853656604094242372829713394600640985255224977218988784948891962198050413031155788495307595493826400074702844616406005678761956990628493299062211873933225052087648768939317361327434849243970407981815323302032544718762439299974684746091797202765414578819024091086807709179322399047746172458686639242814904609482152909866783190472843822300408470382869465076564376857602742352808350682088923511407247181962246771204206217421909130365738079896493731344032651658030348382934151434470777812586013181897235381930198142601961900480653635378599894365101869250926190445870132899550207511301546544719152883817886860417974944749356720354935149629893112820094023489829139119876627753687413171065839694057047446027600831422015073848443163297865873796190079053054433384074747489020976399195076483880454751365039874600072017655703805184161978925990585576558832590909673498341188038282773517187476753616149098452459261648123696881771159552347331893665687953107877807557696344732761514495983370515036075098964712533016149851887562380483868613277369680886508325664259473431632123811302377712403109789609802405380572933818755207145777031824022618307187954056845209234916635894559442581446882212616043886257576637982828711389546444670734968856350826689750547327159380601412385757219546490392818517241863365622501758430098951300268671505854524070700108705657845712549392035599393490575118071586917669724933262983625562867528017669013639099789372337105272144501406438006492311408530929672894445665655973087592218158025254712027871909487180542760663297349020378272442686127419364353365438409353670105642639697634233653744548471036639897368604103506124853340675320894720523108164409358175795042100127288423463185189765239216823645187272256478796374147597440576097531367349711505769157121219219109236027220900035128437749649057322539235549861516348607495362799510284276764863839234475408156611660838543354743551044231980638635720774363804853360806779396094303245490904832112142984669941895696443265633157403158399112447694535514779445797206598406938438588658640852915340045713887039061429393166377908716618162800953190940865180869113591235158352285797821329443857331347321620148724598241650541394448215550105843719755087302546546779357945412396178848676444964512855624599471204935352314885161558143175801560310433015610552040130544667105333704605913185619632618415430120305100578726242377926388705449405457009324707508326466727291895568698505953027363508891461257297363971775084942700908522707920414801309982470706164681272277055540734776407888419560823829254906674625153166831787650607589189244937250166128397771891070879655268655479814472962207252019466527310757532340760342216223327493030333587553192093194965698131365293830142443368814664121504052790198803979672337903694324922850500100246884310602095433851740063850095180190228486516316189768538010088727766698870389863604562807517856639766394471903179149913443495093598023626496635548937695292225139799618745021432565446104126909917215994639494337622079203257598881978544066848904689388624038397681334099278223307468049913613496273308541199603701396966521774887668154724984163540771722157394384083913059510473581017253340845702633549266225720074195677587039738902170340516736235420336116225054200757385366491754750347776840822214646341000500654232739413768454411694506525000392511273689824739735883089616933840966274187863676258429776662612591764465882657545105925395011887584497682558913091315999568691559604367946352261266700655010579578095011291752079609361164734978285501971055582598893037149544813480940919609617181569508873776010179495503807531461374564017480991450938115660833949676183095972900368065533735524547335741134216004284345086762583942288391210214447707477981501313798069457229527353313125806258264476856861829311956385509941208146495593014794745451480688894903960464551627053222487888203900201301671098198931448533041943024753845650747482688400604912176566675368954875663530560461756258328450359569217989024262579497672200084166811746995516477496591082196780937854869761878741971831503778753362204590308237288384507448551424381161759979255002426937568562598420562584159739368518201868077384659500357087884275097815937227411017208541081651791480316036654073196848670240313411946752583290277033687005934802166329738318800245949582194204546241380292306966312653054063274036842847536411753843736675228022914260726740215696713240865884895407057395175699712516705682339657867971087054957060643481661384917787766972596143114698551599748537350282610796510078446318316110867573044788513681426071531110638546990210947126742878470099979413008573075139378999924283445899868217753248374135831621260276844016626760503273413381800082417579275839939658456440996504031424918099231811020768861619218313192945914210501364229608101824334607252527468940655642158000471947449693223263681518339412772750768961007810974534613506606637672958182833933928941313611213572665862640330785407899506545714027410167569947032403237692748553612022691401913546489452266964819078207445272803149611921086063722062857574943793054786384267028490384187116802819220476750296477031179074017778838649425296270629755377690720624228666072746468343624330410234682802314467905928645448198985397157370088362472883634926147064130792279263479086103984786265413621770426451742645002696509743244487394832448709478286368056334955959848061852787511910924679452744790483842104258598134301105039848718275669969430953986865895797021427614526083053426629815035199853284665619669297846022486554390401773739303906336393963033440337675918877317151629750371572318669559383977158589669309866834099130355424082164345241335786966484086736552785871775531171334082787815329678503583845304215665882385196712999945794752529649631116906749137201130459573863831997242073146340857368981829933324923525090569303573792175546952504399765547528106292509017549075107566202411240815118825273468288828697493403175554939663449588639878057555392209074438737429182365217289548152322323344034379575514460677048109320308004199882315513198618536804384881636903718735223954611192555177819573488521816835593220847361657705247394765791829420866483523833502480323221544743139172156995061030572611405480074396202571987963100589884878931216919233296228488112051464333181901074302672208218466481350005788352524715716807695998447018286610876669320781139486500808587553134845431678558226348985373487116252871452278639018047369803789188288298276118061320091370505875248799648009341591223167662845739118386237047364455667183122045821142157206137912922124208651003691026592526967496240192005223092007618411879224119733676909412870669799098574542859890871741374668917026709600546361502820535860788829684949051089761331354654846550813605431442572693849432483372656065754458301910689001429677328977670441488661778726411810961205450549512069937894824204464515672485790517025128612757240127448818209994407038065370281341319931415357665307365155609271454777475149735545389934888706901105107896452117422678948437024853988627335106075013833438831259664520949454034925120533270948257712270494267716619391151519678833471758061817738912833168959086153084026509921590652320544019100054754107832117504958632119509419602768308747207618182854692181719808847410974755325634728347898181927591346175096530111865703383012400853185972157060689774459958677482450640314883027823237214840662042673225259743761598635339016461499699676767002956485212643454370172564202456407514337651636074672439641195598288895355106159122099206980642516903555853246973129266008545894351645599116517574504427288608763620987405910033534058813442235038975676714688012633998193403591575538654677270911413663158535162229271651181201319606450713466685809668497354290753075312260302086123134685728831967443714417242098305987407306078777968946338123980086744322798700455180840289078761426541143000343036592363238221690403839757928600917797368246807510044577982352409341532087030881607269644600568811522324020403153222574940205250220960211864536898109246881134548380351438617625936703610096204995071971668428575483055826961564251204397619411220329516718624741432826653006089321292882431784675944967597418910546918309160446223020952102210049348390271960927019716649931194734181774553143456193892482861412443729479359734708276004640057849970391917787373819606874293682113047441709712680879203021666310323908367211112085860324721709766033869771416568520151076379626351746884313473386081902538998811782956348708278868418600260110652093415609323523082037607330820741116390864090476832346383186726223782894119805833233519608977434958231698176266973435899105220263645853343335178331298157509206287216437870792904596217335641917713175949431139901470341470048031839026127437271350755572990343496778798678109643555522613655791073609101410382756951386988299636841538848469772362248580129674432925217187716017088686657019571168412526559061448417143476470510289542781207721734968853091768525593246820886239217123681643131547336948946021472979838631061348084005719018978375275995099255269913635060701030188505188538099344952443488342491044804077903810086156174425981164254887629496430601013143775323044866399655426000279512142848435692878948073360472773944164212034778759422180136656268696973262789902848818038631124804527712750429756883130637194491966018511434350275060252178639839426091479002154304637366780181968059892740351811254118504083235012459066839967709709292314347319091572156324953724773823711661793668289183361028152260361363715797392018158980150654997151630401171425289920170765493622740200615235937929591093631190892422146780433447046620101847602660999514027636446005189825958222516987913064812002126354489042463907982756995821012921021268907636227831462899553502144481104537584358281884315930619427695121924324446059139268491777264861204455071574834471383305744794882896085512793454321009289502079488398209159171682844207359054615720564837033145457548789489544879501359078581838712940293413690822023871111218906937639769526240429920232828995438409827179998208602026504070871975828404880153440896807684957120912904324817066474468221230773316522137179170000506015047815572706637304641019476205330715911725805907224612522080477266256973250585466752887984972043723916414954073994380650776420614368948299568636559514584535765458421097338018726789262166658314886990299145580809300094372728498890152811007417898187441280444815644627971121866339237090093033064862297960079559026250794404537341526356460459723154350937599120657444054567310340918777196493198043979526355190856933993380567345232808731690785089444501914408056615401491854814028290735827157331107855281978708669809056299534596350063624712357986870483360970116259600907263601502311392551196371928947585417221948567797899285826528951004219781985528183107015136241034941125009308658524477090832433765260456032662643408301081134512838168551048444580626954989007232277338650395262475402910733150892697963015337547904680356753547955685093804023952120918366904741296510643559890925744066971604550781514535635287274438634758824444622024007401124785518978788139510940247709363869891133567267959563651048554022479105500600246728668113907413426244091802301955178936491547857684612895715264444097090032552540631041403995369763382850436373541420113203182987588635456522263525199165047579501921017524932706372129188147499137393990217634133476752900275828335934890212186948714469288916537779426960867708022015958080958605107659383538452425370582203851625146206472030442166238483274881411941629665786692817044637697682407292461334715728865628828910907987629190923078032353870855856702709426230403428901873327849051074713801657901001287834355332891994503688944900796816417372035652612595544704513699701457343343834880553167182228139123059999553454468616553432846031032375082976848507030045972291219153191923175613052173365541960294176534189275668041679073920695833259280704761394769385847081277958976535800559009076856879079090753709760995596781529453584203952695860916300243673376148033617926535632424105233144212377201377757143381498089321521940019247116329210354026762585682750398303049970018944719903728177478974344912652948743020500363299057146588151452513728097518626287777604066837548457933674409660561139508375246374732782054356487499401823159405948610179619362377225896357314918593814015387763737392372920607329460412000577735567028918759350968385098745898298885979611829380826990223040975436361845962245893787094219063726591267684061700318153259071665009090936475717345504382925436990918166360024597855872097679496447010843039984071356524419061582213862909898143385010458825997731554450955171144109208780442237189651883472126933586167099013308126978727666623349687233156909420747253487461004927275992085614663078829923173598016244476031178747771237371873906652502648335140509048833416048306287730036956179159727379097654972365289552800520791740113928903126902382644892479488788401828596075613695717851714492232009762471762900356462377113263322593180406089925434462811231942177636220732372859368280898731696828930199566083770131870782392098153326294568840079969324901629830256827641079971399649158283786164682214133166196527149376110101655850658275435621004645279990012277975256932038841014118564511551636294768497588616096183202000595060054344243210895093903946576774519042883112389969943602358896513180300235180661697953225650488824299628488911365937994729066496887703514823897128435298875421415323785073819592616892779575959846162755242960896274938834490267289452399747816261757793818365859050901059418958341636763236811948073645998385887390338607570950448086065236653084201978283050691326982727111311857001176062518679760593561477531282398324027507283404040338248606784087309761503593449635019944912079370796079811115292978064131165666255514778382451596078221204067859543258869637385236360164904136143907312691156377507639355386135355461883474238496808990613405844210867703780918655247998232092445145944645766210619172717429364873721240906209046092187366677815561889850895499903684696482935075145814262409641062358524045516645056461594753040252767643916191680335587219478457600788353588589825313675216137026485193893536714874046054846380065833585952945790885186271496732859883190718239815569886015231236366891002697314420574595328661999099073470426632339402961996915962933524310135376810200185238808009583762018075881823348689158967944689071851471880353260118393786632096471807364461354555937404605079909382667385826924657347054655145380971342955803058187303618698706916398235718733947388928895728964363516794456742042045466564272811746292560686970286495121080763670092340248725302663680310880898936318403058770773916278825874650677592986199901224926103166230847013508729552425275353762598231303829280071751715605814245960776132400193268870962290281170184105798255352626058228781905892124068581744440743292044131222179581679979417398503392186406153950874170071165510351614252411375153795113262417499832080153305858549749756134124280950800070138570907684699152160864929861946453087417376854000627674772566659257138603812637094206229806547307626221778601030995453244477502425885888698735925247622185596853241017408958867368424593384094882325488989108107168795775545335526746340923754866985635048174595089822306728185148943347327066645164894616968341860548841945642785050519499780495550187478547437574574130930688959206276469873301385783540711642272918126097758523895237478324339812784812813354944542366390805312291806433004578640911607890123416851773891583121998293081973430898175017866489527420141031210997061547670587182279501309148988529191243887018185262050162930754008687661430312539551007019950478770155055404119926033096274657268609351514650595296960419217537070080261504355650834518404137804429788848400074816572452400006881858965903714687478670337560288886971126428654038616385549304387262363511518174993967681363698991186268154488160521592486082126825740121592809102331450735690868362536115014881292201120943962522452602337877442455692016522280401343936451975667905659785238286813587592575561626972533216428785313584981450955448685328014760654803855055139074403298522845274416870400156129260613625636016618184448978470533860928473695951033210010821418580848731217549255300143167061355516120424411342858930258656770745546625617388476388268029390126472008016312791952973608378448453819938491446765500558879159293614359636593784384947060410657352391121586078728489929522511940930095383626702109219741636844285978997938943911625353932902179424981050673508037711217702281545464551749591628047647322052382867823278482743853763118404753146864459685401214940730769920573313293766752981991513909269005057864869661413423647112458823302408155614836296180801154013442398088721999379705707596984055732154910018289572999491400277879980886321257209456149199490472938475627152701912346958152254318763125654658246123760718495973229239851015372166147184694254228690245899571375468916783080566231488012790782892864230027002378074867175378549789714198570739713262711537288580554329752052402469458745719347863836692384149838129798094511481222340852483762055363954766269398254083172856447456152472768450042402987304102829050944258024878908623191714127969679855551746839899391913780584410163482972046809397766318218681336799082879957236441426828862053348824641232425358808687039392186539772720943313432087764679463982305544424273761083994053396129666485242994917547021418693288912140919024796008709457245700475025849406626130994867723836321361314453261499245215872948318013893942260400243017126004922274512365448686985261360019659021049390927019915494532711718989371685092119617995926455800170869667338198107371619485286657676217369308721188393856444763553571066824556811298274719544331260603388216336035406085229991977500323320177539983395861480843685082248048390690232732333474566317065366509436010087181526214634091042648617908515724182591642625286126351362649508524421372517343292332688792669973711607594994964411564635745298072878035675919321225002395879780925758906965363057024827312107991611732088084515358513615533577136526150930484384414679307471072801163583550022281382806281352530483063390396595819288563631702306397617583076409869175256287762921136907250472300399079542180135051812517090711472384203228275145206250284435199994672409623036158155212968072998175244407233464783793276415845303395201727142868094443912231836444362620147896214009630711698273329272399054163799873787504499350559635742603292953098500322915959293492396016421130486029760140825317000101572388711543639840920362328288703263490984072266256809515287297242722009534993721079986534229499376975701173149924242171314797896451308427166229319623602492047453225112519804418817136835191800096564818922055075881038948123482542923616048304735743224997562839152337056778248474772506957783772223289127682030435099789734370637137530012856320380270005792449590007168746936195095492747858000307268538432116825701444758660320257655590732866589331486478360892846611780178151951618352866996630739904675942940374072686016631681173135353778547457946790126908981233392379011253841022350747196536928416611974026556500971473125500716026895593312659918229040212885020289846241137216394062795125255413235396713259346263164728599776871144034175030018409574859242368114796864373240312849268377117424120748527376675667381431767676160417691903777592436639677468569656649449477914991162286461193177459861479358316148822914487529608872022555779191986150151790600496082995802624469341932731965597128496730176910086019496940024144126496828940704953988653225147447795132440687607049564843805712507604700359553783309195832250875782308679014899225492941586472533209492029078956216813977248790261160011794042993225031764669961647973031628454355761962595608575016169008280598237038062070902643944710163357624955904150951779838617078302946839670568206471671326272509067073376258812853366595252906128000963540675361145231024085391457447785151635416664236085312595345360881459930863542432944430351429179975211659950415664218326511480730947937136386410737152814021356949161205932615426034257123052120850734999278240849416597124254171634519639507939229865449189265253067417823722159065984785737281187749436616080632788472790054509217504131967928337680442378797284688543707671758167674842489186122751337801298457936503384042258382257093527719128684520166682773279528230024180111486919963501038875549911990439217513092616276293375464522327249156406005232893817539263407797263703872580922431602892365496657936245938547667045425299737747223466554615779966789787990794930529533321184173718210973569349833715149767182533304299151214314668586598324279154972542905083875986324846113254908023855038482527462303983500344513766139580795865133405707867407226181406644408937418745793125132941504352486779584913693602026318395758548481220831787050770843373590324768551943804807082334426186065098871993160465044311991542142493618164179378884129709774742538394447902828577867901214364829454082037845402311424065766139700183495922258567796157713082695254736648011936175124005997654158502356820224062072920092315778142001779228936405587194168429666185265969826682711214573909302922369560517289882600243303247890929898888088147148721080626015870701797605110972836383545338174887338013169686151192187493322274767619140171225354539854597168968342673340740253745420100157399873703036954378118479911434184106244644027381245633512373794171982099838795377151856633589577242767551029078666142768649218666564670950560512545671821735673462362988948039500992364338826651915269667226553206086820231652401111464470544122824494418172138273195104068447896078681196058931367306313535319423024392223945468821819277008521430699073154368715628494559543896390948777420773653489948132363740213507062733499674460694521228594925702466502155093551662137231725050945760387947650969138077246284102628746565785617307483800183079664207260719792592386071395711435955241968890321638575038759032775742769225259947932651503087548915803103048363846536982900499549110197841908535534876320566923487800598642370312258192404729639084754905416934196341384522382788210796819733862218975523096106880672206082893609419963498160919822192671743296759863110344370922898350869589314803064506859806937102329128268602041033508966723450300658350599465521223738984156740690374382464100301865843575866189719616707979501293674748503587000837385007395210625531951714401381258814556177962350823856596932586972172063070937410650954377550853324118426445211985993474571306536505439350162858432319711680821822986005716248640471601313433920399699308876818873998121913790763824350881016810478178778680238976050834318713710467587151063838373898780641780915680086163613515588322759508769032582479357808195039898864661094743241034973234539643397373723521678911656207140071720933668239021974706855872851147612133793466649239771994846317680530885380374169460409795218815415582852812138219393574923589291973094136335519191228074519475060030523500661855525066108799315344157420886814444029675391445047203459576420549379215977131950478089502468588301818284486642317977180348218092024526096300557644407267759798575015457347101556784162159476090865947316774636337760410312561617481853203814265333509255523782226556440626695079436306760937977240325303614159331451145286805541963513103892691146545292229212164742114599095304522629426526278085391717381924757318123170645912248134696028345802963732552734463405305525984858549758762604811666647497440069337213326510362343459245257404784786779768174790950927740207942945589928548038297302310408286497489910459419292778490233746615652378316883848730884259486007581130225561981553146243423421154609685979733508400947075327743154181632933096894335947481369022823482086383312945216018593757750193740824990194800979250695351385930170383503661417675763515316957996859628422973896018841003427642431587651068699832844978726704554568460915069204053849879573264058017460400971592979517434105962344761210839875161683292354369524439836160720691289633910757436538112104180508621934023665958008066075031972988064978528069220290650524502642420830435654845966004478638374393418964342100531800480397913888557061880377007726309108975102421581029599047872412522282731509614785068299051146034586607603899247213776609010134292279440196837419893754343857556368545637787215180210168140314744082112662932258083928422343600262789513821395573057220938927930248675592331120190429284379945599536637625943493999711475821879690523867938153865943710991454736248903581931210692215902083962341686203458068855072884784052456065669010364239264568673722695897517769564351066031121582803334097448516826614696862348308788215856949570813328883527118904871890475565374673866460888099899751366066098503566283345600297473780010896406622610025697196713392367722174321123230173177906584743992795760187354650169408395528140662313236891469016669719597344585137463292827677612542658881108597838217127363555898146222775484030456594871614130716733843368917760579550693302197076033290999137620461236097852275693630330595238325867361643199029277384975046548631497315719814595035773311195739853541493887316130806004434530011661640660918236620675329191671451030274865442800452857908227737511726466900265691356874172724544810336798030022776622228578288802852988931955484729943189823623808342607243995312738526294956124513281178784959326706444547432834999557691706639449968254710025581199414005330830782341628260546145378154333573314163415264262490885421003337170950955692243154636034955560910663396002830638636041320491274869828944899988294674159868897212541126497244993674739314669004886622019294270274918445251660299776173723253152158541216068130295519337531347262814177505846226814061198152830176520003815158746133582957243896881210432318688627349340762167006676852090634185688342189976743509839329856206245899440716352801302430135209293274158049637792214673106832961761091833053678617199213550178340222988582477423886242604444678189464212998433075397123007719358998627996133051054327929639597866032590371811080813104083467976492376741133577894921071280072245013515458296738593765695089979002257456915663359629398421071103182747174026811285622903094331773591316860565141920372948374335810199093412359018628506518205209869121892023323245835329769642118783486135265288889446971248604694305724834810597880782894712442992596183878049813875524457805076050866892948311529429041269640547525873389836329651639799073025645857947646277419635216321200764659947821816785733003446368268052934638404497848797515394575612908033612984616232789380780641863286998198863875383304894234045696484156439071319120743247409085295035989887394700411174222502418969281821855247419773738489663870524339874727715244013324740308077233375357699984243590149757855585805087346041090469758453917633271647066425299095169408140173086889867204609799965151050650469438818573232401591847118188973261389779752101822325331754494019973311506770078514624492662509648684260414156314811889399075738422056106145137439359022330405269733437790833374923322562647242805140915885578806702681773934883769903200997531350571286783090300773244088119934065860130651369841937050636561908188897148697433032887450053895129032492830912952413237115237302112321079635580304183380755571677887839038884723968853814603936122469053108311636901806653381056970089231560905150727069839038689780393141882008553006075727594646947578947698587440489769951122721441726793197659823526481558509967909682864140994221271819167101311681359421098000461656694073180769640279348831386168487630695286951515051778695845740987060766909055343189842954679490104228978145521729486031190262669371802302030549119888441560571279840949033968916216607136310310203721232359936032982982882819161719148098192148249045240962706253780120036583766462031970326551912459660102724453783565932469040701276644831530773370719462206928986717708166324500850095682260109787043280195162514006274427168761060009645485343091226466432097828768444776049134896082997236500494199679025287358468569036468264316462033825537630921390050949615703867959601872784338544343483884993693344446808982178521786755624660068885464835360045309038971995556439090983433256941202485745580665497068581348047507260906171734889325395579495909545567360996992040980016828819975531333926507763738032346673136242026373533710848527643946337151509587002998807729628752781687168021409323729066185301755411860289695451988700806330731767145953803489760509432808796076886342934273933764491195585408010532713609246043516487923260767314648134106755040550063632590576239818744024485762065252177548526401042294224073593262094275941982668701547965732659798383762859323232488988727558863213930643241689506865017244327901653229844275837443701360988337476654042162591919697700055057067664422536319364446971591518375127838904818355763610867232382003475614789942568190826535879602616539885092024972047776097577294404827565552264614908571106566744190006232278585062760141167288801355156108817267033850104489044721991482158827906050029242899740486980119334024481389918536755052296970769837439212112927582102467375834891743344346086670920509084012954169345561484999587695069631664047432554754872367724477228537854833886375152803867087421018991287281299146280640227623702492706123197876145375988830105635483590750457222006102211980130053773267010550608769999679885419996605847916097364187638654821888672281957577669283511463532398054295010278164873876244719798796989482941964133765202459750032187484602895545670533420894855086483926936633860562976284807544470553315939256965454153054955847535568139100108153062257721138255308237130389601332635197575679738947627856107278011575703632752414533631042873821952273793290081158513545664790774614825417684297230370638307666913737256916729723541501642225983312473196044951988392166882198900946837705355658049034526829908143537736667729632615455576931512240619635913016405132067647641180784841190514606931004845580223575837262260974101642603721788485916416851308497440789378781735677806959044406541117579521294839755954722891377969159439281040222013683548226722907821412251759281992676591103775118250469435202268793051379560074373042063005035990870261195228033059135619351720866006966227994829405621742078636310461193943122703911497698696584105862887551343362156941427126888897185662628476932227810298126736842707473044075483547350597097319774949823626376097619340550996522188919447313815033791321385104038797647069639181093514157027497368579911396565177207038543192946339067195547690330259594291481050232718404387093546845959822375533268874316776399158993112177170884784420362076129013909223334303841273548906918190044164788121961656265735517354714499918544325553162503004158319548156830099591653101056539810232007523404107437282295284339417482678519387853578155672097384125167309131996132248324707960363793319702915148885177852629854309413468837781337137087798046316844773442735699610909120833551367415530178069705448265845342322648053126787474345204098240630413995529528854965002588934568177076014849097274615977050671703196795810024143800894785341329387866649774076965972525314608455694201295958895033437759542451455213542498260836494302867318798112001927714507947078724361391958776521443008837267945460946237729295270160167282471171329967731287552259114139536745761632919805583301282367688331055031424681203379690657850358709296252702039713698733386461897986097825096037069611313609326480074159487185189323493587449182115667855978190118938143753690681647534880905667431755654654973186881152523668479383512045851251000357762470718957692781277259558420744550179913400710458217013220911190693753622182784234722874976741622554542854413179788717307320147522095139588166721742027639470403438825995916718139265351787124952715044220278861516448468121664481203327550170068930183315979638537783352479216659437737808362074244907753744701676811954156971659058329029870920146534568031749569952546610387049721954371802459153510826136193878962745081520895407906430195566507340793398901863594456429577076035993459704133595693273316057759463854129244517952766132371019946153120611375560946875825657416009498238882571334944933947765611012921297020974587051599757566315309669593763293097332845536745112892061310274276692740358346527790290096854558325523492723848376507609461694901604900139682849721653745666332959532159421645517663206237208363981193707277342395335002356557103984417658684471768928436760465005225842600198209766413003668874473659962122527046446905748048571754834441495899323530521907040399168892849394070110378884937505884653351346446551129282047252059494072189657892914929947852214703162905044095475424340116377717794487126055795025230424488422970700435304645661101776488713706972130969419590582309192265525898711305660485295006307568238133992355142923638405633298937798808419897105136731652636865029881283165293303166810193246886661679093360083540021883670535788249959678605279677933119423653344605703128457935969859964295124490712140003374990065612701121779323164993897681532396025862967809580918824421352120231006384727415852671606646762269442793576075859739294541827472632523236326412258356609672337708895113561076205343586853139831538633717879377488200016394922014397999579079472228541883656896999302011601419364318173973471894000311325957623403916162023695077332541844967209133414801318317320815468059217999512503332924539452689693050172276833187039540519631870676690777515928377525410417054537722006806875491752121099272314390097620661083152870677636151446169428446490567881281260099338680261352716438426516012943168236883348214698115678552592141892613653200268053235297780969623107160457628244222758818970188732223452444043513726828247791663998372665878417278419966618737627547901684081944926143141455640342857626147456041724490522040526887269876777688279426200060530111733274669157943570266534749857445696303751949922236219589687080980293204736440510204022168418066527999486361937527558596543752805938630007568452860031282164577701773922366748397798517472255220260627605139880254348652082466805201778030225582581782116955078682488557206235444448724647844685734340857805790093822976998919278713111877271568357786340074891944510288894443618937187906883177183817046802753812254866277698553292790731183253376639436711468937621729210749208509797256037015543322775920353573432045397987692304828767897011205402209449520806907608164825699959832033818018040873639427804518339410329468965508160201169113271587057466893475860446136357536469436918241306298907675878966976976454980469436770935906231407116370485964580124975388617644302284403096434655196911078274305480446528655025372715009025344179577934042428302708680363186458459382913301441288543527088291693410537978142787854599051971752137109231564501022007721596183721360338407456982624017895723206672274374642382891849459293542986434224574692230652570313148887477065923967360078580084623715370524562151426731001768051345086737409576795928155059724323417907535355880112558486877332398797208994033016127331581049829748221931775764156870855923576524202965053181782901088485342202118717760909123341310090431882652000509702534624439442205690209832788309477821255278373781516718493280300262897932844464348882759775610851437588834377925536023344129991350710566922150461884600153200086583650535636586627230642013996584148582641916538618741126443339121771551561025906810689824431525621010293338614758842156522887185104387454601879617176740055880210234292076760081337695602732714118868979110180018507271622149635219027699567067972301359523753173219103843026583544066138306506338279982521228560844281821115633402234069750042658960080848590325856624420955649224277820190654634632744174161173309425284048968781833181546001719618013645359096683830363961682697225975986942808998296755718490565550239809310678078713968061552607341936474209112762366406068787054872959039362100545100158482336197292922948055606094736205232492049483661820214310780852986330160808178461975926407363238612300792958754367367083119625342167692919503172231729626460014700830823941613328852496257783028804119372139078397724336995081109080325210556381284411156093846338056961215155935232802743361475052855036739589681568982191972006832578000332942529579070541235954529985551609012370530281189521651797626588558566145951581872914421428722601458939822770792691657534972290838411258606735663666402498307904322789144273527923429635665124016112928197753420229976947802292966424061439608823321887337453116128673962690120577572039010804944436961874469405309699532943636972048711254876241564110153707885854164668549320973326828743366129441888501301305812808438793390313033990107244919669892445111992657618754136628742446759106438221922415588556269905015642605261139567382617132947363944817927082076728239991950309244860947885874567628962757853792153517832017649845848410056099242600267191120762381098689371696014104954834239475557893746631845160664118957644692447335833797537130740376074466475321174440017201302357941782187513433927367322091969756907806791696440440914242052065220543728269055587600188433138288833388538184307847559762936375591270444710034344894644007827623792260212906840770617001651823513592156758637968401736687788426818102278603080606397093303216627950172826940673312770818206808630609975487415426234734033567905269575731799592833999715671145154110972826982161824066448655715499000865576119612763781257513253835084781308104393714031263220392138458621214140309851776071847052923371431588070135186324909720436424827655334443274314579329593471249875691828141487177059771182778586927253125453457909125917065642940708183316626557104364445881870861087708783545676877314110462343102679951343734400722458231889392729466582996960089429616324343495723007457379314228226074200640084467140516727272110746798600263705279991656639386522807735260231982101680907772994115407921768097203576391602359519674664652638863015860294503312398330187135294194712043557419333187779001714662066596469876194680618484857241943519619190930581375748439427058776378358218989135983597106112903800362633568297824217162019087598366552074394193381684155558531638388109556742405190733267615461337918951100777657888481624682094898024296753660122573273437875008425662862112366475981930954055344455438788932513561751423091711972718887880268989821866441731838913041268913362124063359230813256179359838518312166841651151000580017153527093757150456739038791996921742620602908570835545277582849694071506964028110485162498592728254995267172737299251418138041237237040633374790599046081265821618274184308491049844483021301611904320764848861785950884310884892478145492466488974414934965196644709478994309744942682810270213819602783315433941286628287475178820460654097482764013676151449549607317511579177987754585896619364570310900925411053438488503842530511213547484886700117058559868921244967688688929582914729189309248978511819096140402833703825137311149038329407040792535270361864811283515676662348779103350482732729570827535234275250504412774515200874028074074251327415706084830676790209068904030651981610556153375833429063586680881819170594667617335937927435690532808743295142093157912268686437135194021648605987949349646863397839498070757056797256583324408400625307856017894245645450834374757903029525301508492657244486196894692869986887612878733359210519474976535388166404231379545729791886543071203117071243110463544712985823775175493437461275607376113510636194037035200306306036084644865310470392704585461665468350661995984609834295103999503171873922408588750338929904646007103394907288343978047758121262921433693876038601114794032174665526424090820375515163833209510645684944579025747028020695960902960314708473260454527756175391875274091197121846445730443960776904196980205307218435688891479085245051660914191229113934082473382138665174255953664390573843443710559881416033302604273063169726712865471801312179061819958506476830942282936803494154489646513195714999875659961364800028960657986831117340505864713673409488067809895270137315656249460382055611938731179736582810706144585089290619572515129520751733309475700104912014368295985768694861391730660333542076788598231343732437657506391435505276370206245180512809768650466771688901719475869014238507757724646794423143357469452877806278065702389451386077893080041546135499059175371459299965454085827398247522591853172305436205963597904134536020066624270583584323542329095246099504151708315749358350035311331423559694289493940377720239887616636226726200924476058625030550983822765543340486936337379987617639043945434594613544179093019265162859251471604975600605124755882463914237254910784408294238264363445540986024879809536739349539641802958646405921465501751584274788792249062890573420586108184895135197287177895041985903675520370949210448028540993298961411271387249030939008885973956878779217143275322734720965466234618729187649870816288159796156633802199345165715589599600691138586155196179462021173816240306365214717545507042034845892543252851940707795074310307045236720610710958028709451463099995491690590891552238607648920039437929387179806946865664552806726449960779511056080643274325378482907371178965310948497444228679587919503885819755076486303466469049240388690422877820660550763555826200786340860660212598294203265692143909630770717634617130335968505491285639541591509440028168643428862508882862484540143639679078693257333972785691100759732982546518087963044035291651069297524386540665107048962019353256550167071690178979964674084715581065187633080827363864434972195693915804329111342470333831651850941422394195763998757343622346890251738224788606246015749581727077760119365003576598008532261977782971449966171850591484739266042229555525163319631729079231466942114770221701863371758059576248510950097265864535881379980440513136740029286838205317890261879007533060424365634390600184426090287417121615758344046750329672482473547939174574674197903491439615240458827165302070533277112592893698913366015328396570987149767183286563185655599733539043221098120571237920972451336101040013865241748274584068704978462701552488448523647369482976756200558923062577936938867772126017724658913635681076732129478392603413962288001832977071779542787049943018641123324698116337982893814001824565338720723173746707642190628366700614643030390799653626443318010153276077741229185040425996866862793152993232636631582216242840811641874042662938844760656303623691011437573914271570635932436969686974257821896206767604944727452285151422424391373205695124330641581875044707521332555332729820791691923972420233374531781919225374530693838486768907427258066293901224628639572563623454489716561171689321244316060321206759087070848164483397411998307900590795656944164696137412600116420273719248903075163379870950994383236984480662434219924360066799428082350667902152357319545709304127016361843528674707822501746887578315789008521063267204532504229741484575161627055800169958648381807874257776179156704145204492663844054329691228665111883904400487354375123302547773081611544340840652941245769298630336568320494279040569098144350321313914386429502309482990168117898770213818668200580905538366977283732461120231723298450151865933062895936820499615707660648603388529554321908165927112439489609037362421411646280262362436737852030516236277367326588573327877201981273791346429648113108599026611496764404904524986351126332716382528382662916815751380727095131559448671550442793765853666098324912639391443184378052363396941910502614830684765174053609885048484927881551564715297335189112634202262181877562524995269590816262496583514565949836675099960077142440393482219436406075398934666797697266948135846751976093112173180595630308001702332694602818739890345800493007419328893390213793433946075599402584172354190580559608645233623379195111377658023705900389064787509170778103830936478706696938544920077300495489854138546224051173722596824058176744915012955943216581580198849644751700382836737990742229396887651447167753052167080120139266441994457523189478079715279374762358610791274856208663676443044238901303662342202526342506331954706008760347652511578387528734700093266825401802446338350572915804467145352906541977809757680627971011748026365288601204621348368461759312581813231787501277580565535663051562270433207847222745693137699569166898198876400207435043623654118296334973796487182911513826401605189044858326640501987621572315981192354155177236415980536056615633640802656008593790778996224536362393223389939354454150925805125465708796989507106195803179989655994611226100943954714287651701579212553959735234586242559821322184498184803955140971725343257522769719431170099679025800154386275314435849768673886088496648046457576719312367021317047009260570597036233864772876003116932160969272026120464604102185777851476253730966331052236873348555096463866212259357547764993173085755590490858043051473106692237596087396007791244522312482851796997922196937530480596196493738322221255128824220269365147081153366132755098017810615321530417711983584492933723713043836486574014584051279364194560551045514404174812428401513036054697178762474557445175609226381276289568397122420070158155309079401305817191278073097497028376239832727710521959939286594139236058343829812210126680688620691854373519724664821205231609172984493380720148318129481193697896468796761134743734028493319134337649763880731922363204383826855997270758605416015161413515269484308391171400313755157779076273643291148673379000037899514383103569750837675520123714139704496465880728906870024840790306788671627085060377147806971580704346722862462482656328989888328811797205362365130056169338639287956702793129976985617162199373245004474825857279275930990660236106782733428207232541973831717884049943810503125832748583938918723566159157455282113232509222487949061307101203367046111917640011789016792720124967332624652983199054374738960413344882502462468753352237945051009473625609284245478316365867104439633495484150136657301519501384845514652050907103983856114786149658934778977475726105689727201111183281026183506162245571530412654792876665146696628079975250219697351181702422614157960579559252757097722817702594365555041876202021347832492612344728440428638001051199989009155950061636373861193078577372718673563744135167471912515185392271405058470575449039180938022172563178299723629068668769956004984091388832887786219639732804276096029619393576582751950929494084181796181196539457346305460459783980855440244023746607056767465492908837161125119363243325732879918125648123897059396541531872796536957161425647770910093878138185639438807522697267674817620132098759017486006481068656977051188750724696236013897958683163090191871331013512562329195023111098137210807838510649737478195871243621566953052863732188279536341631907641040552139629497321986126629268519565709409194435273141467970030047176443690919578472891195371952731144280107332361228517097080916350291293027389931406062996468030985420198046404574705089305413537451771846966544006792976807051962928038693776223633032747257817756591596498391240783801117166936838614629873153050812312983639985813870124954775440160464346612165620354660815987409645306388814336860983993823604003293606573078702296442618604282909490510268445830269127398690384785433698298418601535733932007260027435520861700823579398047479198595720987241698661734115642058092696506928456831743360849691663613579845332391007873375752706473688960350711951538198247036969769216622734675291841648493103136373440671532059340319000015382794639238324611845538669736567961655901595821424892381039986498059149277643095616591165352241334196358763942313373103767383633048962532746840585269993213536551621106509531467355506421526979673129831950513031350862955694944981714397911897388157676290342129308836925787807269045714736971225097517890763785911197332307871308614866733930770409229154708691891895473853969073986990802044519345547617886906339908691362926815340811590360077813316299883995912344281024339687555924368101344669196582971887450321559461860389694055652845787462047116891232504781826751605201999524459047260183801442286552586807649128054156636802187206206091742654889934069223741835849785415990456419137064111582990723254484928331645254929105353256413168418386231548985682178306421552953380928271929237841142465907237705152372160186900477802608040234667206913995726375686336541498311477727494608004965890557909728495775232552772673371894182628419606562157489020463273245097670890970730884848257564957664488702747194852588484257729862848203638951429805064218932526197629627607560564469383608569393967605938564276993401563927912303674068438876248864737631433820962926072840879014752345281008927601626408394759874146985072448064376921929402226553920075851201818927567611245151941919828137900329747489741310499268882408192047844964892466059876720622617476598762314201843613637601851029227503109910438245366642753916635474095947355939784608706891563690416570880049763330735277189533493250634909906953808156859100835434956946988816615379365881238098403865571255721554456813506394445456768960336368581787970872431233095030243168765055994336701239740400511848660764359310272940895052464580227838488575525869807313749187582418317871791537362911200342501056688516494465250607982657832657009272664054971010829168896807873311691549968958765791530557790687587456159681046793773117750162378704518608022315331351380504069755650695026128391074338667226926386319110015564624769757204367085320720331353119432399622140292337574478545643938113462475174324158827221233793484261284565388091267841113705906641558432482784656266704515298191982512100473538575902827789960793249361216166422507500818807664767575385662798679235916998829811443375430829805580170186377077438964450777973009185186826578801263876173823190591337145386911495177742511178881394279236507130356743255740086498803782198676330161070041806765900691592280883432209074293491859170801301333043881529927807999677048966168824146020725499429560601914082895501671896642415343269754542838133306379893478577946100805227374841192152096396023918378274372182268033071437986838155949732565799681596094051016575840470802202794011969129000063302558150531467782382169939065486456452981709865083961790587355878941676354953400993910317565545944879321010152521656705036300078023042841462414082116966342979020885496855396083979268923644906860578581072722842832358662327530979030330354301187063077087754325407412424150003273540836784003628698898665581727437689240686087787886542551293830422385661927417970630684184346718673770845647764367327080617515850703676827305117774244639809865495159469459411950402017502132225921973235516677319168288351293035725487033043080004998686417994643529823079461984151251416661734571446250542981173319429395440184928058803108697682017579038922458662769517508887826301738442813394010846114419275157745201646111433353086088699859927920347441992844803970775121042952414499339068434717887632694685982290874417642492340591186416127892692795887357747534588451840551856178462021149965586772608516538770425970507314050481454246477616707256519931085847834231666355055907865371434271742400881593340601146487924337120270475118819870025327465496042588878890766679121738589828572995085790361966770278717973536812350570260571085835116021972310432003739358248098114344119523441183708938573754482237362324974424663550376563149197066918272244000064261408965737094072830059208222085007424102447969455302292555196774299512738983020773006038854872389416387108168702600345631513552847793095152085645781824006480314420060239950090390601100888807396388317635254989587209067906521902395769368946221224354607845423423846658278359281937475465468129338692689868657954971485269184720069869843615270934728938020684552369756559738380507923400105347440402582527083712354785244448422363314676395004931952649849062960093052145484068714129721505083613957982482058572413315839174998928631673843452989247337092341507063165777460817580600903330875606696191081441002641468403142049463577744052108538103161698615045918543914230558765793295552275899415057497305045512138219405664291533619468960987541676729983109874656389848331783501424393803384414746910075123145300953998022066341833668956845169064180290224688537998809553353642754593991108113234394306125647987100641464348789384549348132068164619728220838740951739392864701148820496367158013358341600980732641509361624079691837172806451761205064786896827988848711636937566626041356185132191322645668484794296599711053952082714843295380191080593114463994328956802572815055570808672444907833751216028731163227897281895096378319228365365839970371445564520098936680988161065649193131669503406290366658962160934987223116962157680436859660751153431305079491005569200512331750839058680494152176119694395650041015714287781830096705901413649062311894533266044771775401161693319488604047156571944088454590240412661252268925164999273860437218691136264034453752449478223415747218798921598577719165615099870677358310959479439640180364041903540063191079915499730471170545609534178540859643866453310905489186617701748880779954810054704608513027203155611350705558052211702848978571676712911006418093415317451966047867239539064129836585864483094472581331971344001215907950550565271966308973362439095799505437884860830320730583880655793558878240499106207444038729711975132637995933394548901941077633923562318037964314718223162815853921780266759712927249026748991286737193404538691574350729881993791973910556750094990979105272629654406147594766803044819715051491377811772492084563053178967102120104467587091455087562591360474153377602393669452859605043091182345637581654381149573683386704657425156280281852454000358125348530932089958209588252238381873841553647295395918150899783451909095716899105067841518892768143071375729266836542507384307464116402552619590364030109278084505595484298716969598745801271985480328156599312625991650464287383756907866563772537507541414704527854903449661791239616350977656718943305544386251528413545107045360937263810290183835696711356930938546605343135963463482911832005917533768769817242554591167848247048263917727243834996228533203421479030781101187594843048531124180062017983308287769957221493951626229543526865480573918999146991721396709731995416404687917076218931191287164244905297611088568630281137923563189282725777590306684574378464171389235148102196031228599732426896325519595479612607275787825558711753978240705727340768478761427507297766674424673712639673217840119042509374743016368399014606224972523147594759525230689551477261676996016807292250312899781420716628539554478408342008001338515091142933389912620252677242539990022758401936776402292403547068791740535271983523691243920802926697566041013867331516805233171514084916241259898902045793119682444249028242194296249749589784595910328599453767511604140393349340318637588271277570511513395933461556013376063430672360272898928215280155165776644939357430274024657010545992957637229770527301525868491326974998478564915104659744752574526184859561931387838329402919568000042327636239292413585557265682075287562953813411491184946633408904618889093564606287019648805174523441060415778027252644322229133712005139892261676810267107412144962937596015965963350012890751080652581771840034897504077180605839162728787446995195419262936881390207962882409602593834562886233144352290584750438762202426204549203340035763068626745262384379567923137235146973439102877343511383724033168465657255105255349633904896119933898813388260745338034677438877392004978760612662116608428637029391905792603786750066392443665591610963248111463276269994908124516952288164697560260392296044446094106684916874820547262440534436747455772350990145478799266279230996847081649512684302846050655085473058574149506236607643715919992986634829944480328931291039397000685962168893698979141403575586072649201636633570229944166434433003760360118051200004614911489800924094106105034329047925246482197094233689427594296432585187605060439199519652447211173247226976209395771552645864372562541179782002543734638531965582777715712536147425816130404270175339739768547997327334816159115572730050103719054863499170592350026046283951348163056375092656114588085497964786521050147437761205683613316241545000188594340972302198537268497656286768291287642638721111014540468967962974327501499863427403669973951579669464432853510675300961548203671124899700684029398207063105922071520597221949425368293327392259290310033725237456578663921457030497961788001112221829129178964376718078618215367716238707932983901105008347134554110530412270111123590799405292255049290991954036429215106590295232699226106356650177456118800874004933745851448471096999000806006594653135000385347040777696419713688276483219948084431728218269452552463377142598701871053706714450071762799500950457028865635839781724851878218209246741596315728333018922305189464033079542029801410504164610474348409877141434533848525011344475945265928296455457314642122107851489729882335090359666773984057642063919790408758616940575190082443658442735776061494239506644894543152993544865120198422590228528279829262823347879881699454428834126918738581909006638791182519372429030998433443064781640987412597527041244814088055551931529060260599134689040024787396176362865285858564799028399799289793321300164775294712115452030424530431927211443102334274335348065153773743732661975218960697969832391551203676913328429579788028202587058998963344759955585162177492032848315446899699005924919110160727306634625158085323816040564372841697752508468370791206904541326534694003130925175348898201014428542733557613585255797538566089773009057255815712381230147532894265139643369448699558084435431408115025681507609370607930417735230306750276756236766761661766764078676491358730045224249035253333989040562368131902455136737877294160929859141279653977013361923183479202408246853577996422352663930627335399989630961924870880938685339957031684311096869577684294728998796669273023690046223646005019735621690946589310087630024379633043662904196340445015683613808625464862262017205995694600156094810156820676018176750399195946244897778584313821632207780189716163101770674529451326803173191384172629853656263993320639901917047761458121895934741424910136626620576280027704801480144471961399994372349675518815687991583042547532719953185267225764713372454277418056251708975908462803021110618231163913498278943404505405715437373684337893909745276663867172138672545276611156409051682708797690111035201922508708933839030191781308756899809647814154453998955092175310504960175093994226505056521813805315875722895587242302469465042678197531311993591546890283683023737301581734061419782454905498727781327052173651412546713890167796175630809681314171776841588045047595122527005302685908281090956451554359654163529014997582434059502975348168580254699386824381873515184281142771865191888962764207305699002279410781342582468149828193903956312469760743903464030923565412613693612148149985416059222856157896846416606818811457938230446408881603767424813226779499197800702750076265798736726116482550607481473839265506035201418141785964418260353161550080793659586054025798780911069391713266851402285711275123437137056964799340036466779793327048798924509506450270903151642791714429376513994993046743974220706452487204140951126105132465912449712784747642252341632698459397109720207259257420878137550229841602567868999792143418093036953635198405919489687892628575823239764146901838421590430975286314568670865977912928608808855638010953714150287434722223416945836358604148515045515238208119301744878599351524409435572118658245294345922150270583343206986720335862919066945917077937543110466746754263160776439792613472077095231802498593859998516624005280628513160279493355409307418215365335493371624252364689633734884082325610602987534581893241683560119026705654950119281747050123655074685198923126069423851136797292911221622062088252052407515970079796350092425820338610898232543894670096951897681171611617142944877579465862723601087264539602437147851294412310208503757328740018006502752827355030409549558326280658618896959867054390607766691491104987487133530978542676380523554706155157696422458779418227723624126010926853535133655198011765103660629645540446730122369944016687400066668767166255185347663754587821791276614908086231389190160143965885411558391312013065813114137405366153658467820427166124881414562002961925352989964424300036168012674741552116273002506875022724801481805574736967545839118232463924071088188733933918978418955621963194212056397863048838251092498732167250822869305645512643203671862315268237743804790690052298544813921300119236914125647132965022454831905316047878144694971622073969033970851404227267289717617656207914313567352744845845894929411475554479262561729596825198137041898245650410298544264352370159512066213254609089560343482142992405422746421369498739126764708188131349431804541962981260267719370564642270995545434969055316392107748905547583508518781877664958273080452533390634026555516847891394090376743673578232132423117355841223946880454889692569790576876443292371633094754152488509799799631795618397827722064749688089214616821983479285365035983152928628746077708824917029936070939558265960039860118147120686334457376720451521417983551720449086297436420736249822131315305037330840773317542216961159578925974569601388354582081538134791778624118539631844252132930073198754439947423495144839420610374400018555983080119696389971868027872413996677940635693735091263522498142103578305198475102824290007134741831354611827373392563605698662532898559273234841881939194618511682942686859796064800243616683305977034404506805571079748493632996826848054572261597952485758680245734460262565547052016771441365458659525124572422034967773012661914392304080254092274645216280732454810543671803234426337149965344690455548215172711083973435121957660784024471641964689108062107369408084660525342601716932206532083918757047566265929824715031577715501993069187415614339843853814664665569022941796182136396417846460622615780918509348151104536965896337443960813652678761058661270083794857979753776356010742845181621833689678112912472232735528612785952512651158735149688979754195435637873151707293263562443376903585089930893095609448531147373177912001753829354072484930472506675828227288926834631069953346242346933036354416613543815889891424824921570500257242365283574028745435033041134363131958220254353206091821671373827058272716502073223466189863142223892440564543063610291209722748828345257633648218113384751754078639547761458176586148639697491660326731943372330528193340306841202492854622266560118876175929215511657581554427795000390372210246595372367860504576914259432076294774241567803941810804011376368832197144751316266298729763006921150040236558301742783738635756290767671379498548959213670374079387874968421485650424765502803109893322369071914037052629740461663532799660182586302234548635245406904518873863926580713888143549847225187439213149805793058755100911573986407557934502088275576303986103077328459608970272619522432931069675090224217714887674622397663819316847385917807043884513534432249246254587495229838731495044923360920533721029047244263113969611977133462911579084911289421456703751039711550975197314258345590898275341481433158360791663113448399550738344352512871978035312617360251690039196072199903865918542670126512107757819160283034599980017263539833376276955574341996568055364952514613435608932563349985706700386300484906262969595652764345097458304329792390723770455089981267502623266149084477481055082201136127774160918409308544877958836483000384112652694234554326820442183313754251577279585625673060146910549363047168858671528698394138068586364584323112899842535152521497421093714047069546194737681532724844518444012183655048157628098003026394374160065526294392585307005486282723034267005869795338945499233808140595977572776983831262260443150930558165097842226497203740466731188575675837386848844215699632804682869772329778600985624242441575750850692499907042297463252757534271730975006480417598536438911761610098267213048434401368093695366634419291944173058550890988785910893904911247359740551521987854666244854467282146468940637157370329199594361837441640990064860923524727841665827743162542507284383030760298126905976212524955501384686872405801419893386166644420059051019466487028936769510164168322498886336145375190116826440126629273321010681366283614726194349150870197578561070821037278914279018477020311614336515745360683088370725930357135010925640893001417245453316315892463739544009976132500235699789937581431783118013576176748570692709721199079095049799085893448700830381121960544638834835605622832693286423045688881700281766190827426252638468919493462837614498637500598820045678682747621101742853496994716879182036710616395928420200482390572525251692889359186468410633697415054374459188563442179145553175025345479229890671698805312697379414382860805047205944760840876652301881431797231156300532528736563479987991852815231769017261316235967267664078976471509641032501902453645613260293536552626608383629910159313584815598001257073305467748699745841225714045994135582598530471075962748971199462794991927105316982163244789200928750651918495508143778207157910417463850665092910088026170394680523606761549720525093013541739381826356887927973808777312059417254392113025360009282792168056528792070798446208983877222054815431574352993819492025083569536706392149638415860511410262046675323711730694840188928680930012320794659380173928635069685539650170965163359335218815860677780127492951349253151119469153508888706548755270136603315258749493257446171274488783143297439974985619041574501941080046494493053241155678542447176610478634118583386894722857464951732102354823221960664206781846457456806918428244407753200886076993100920020393442319935965989677788201327443647707710797933580830923580106987476017155622516637020329801496517960782256336666393385618390407304570505616150750104768887319717558667206187153443128860380111109929255853401610406839957017697575738797290766068674202708850182640159017869468248683509807899808415945781830817258643351565808342606216461785802628626866580401689102797998380138523007883201901785193879688960640953614134962320612327106390527289817578093647818415768109473359818136788883913130756866717714277289573659570024004970978282044262652391088780821806947172384737549745102386778796069119171918091740867697966520735866865740857383252853246191665284569239695655997248220440573355518530652345789955878399735225526728249642462054705453652738183271320621754700610575897725487710877930429304835487742282551055002747870809434486036365178900815911436977236329820137216407642973542832115744394402448054238306411507989688265900234142339623441141427771318424906084640988246471893862689756579593789129236218888884494432950764644871356971741021266951842647384470031500664235732311022259636250843508306844088163624463250164427757255496680182363661845085936118574471176906755081759804691388390983386514705838067865783484566891764719250407116292888547458676239690982837285739234575855210235389896140753364821596111772177210697980700009926019696166629216413590033472932139996433180642102733055703494861115118912441306097595216852050529511714443825657672172682696095232361543335173508504174129221840862988593141766517020092699258437157488062812055966104162854781870801835609090161586374770929904322044093210074179442661401099018465337145730490364707316836585404278076404444311663788584966186009491616258942971849600301299383977369875814115416194922869208664972499698541024145534485453724814990149738615005068954385073889189038222725519529372653615000933357655136043609061946483633652234683013208012483151878991468072694164276456071964835828962341250225581169447947169064343811561620191428653631939319404947517250590105321555775484047176989853776762904484873625508383292741477497787404625611797526716671491042537572187053796306004860358687431898417191221563683480793385190132872040872465853993037356046876351476607487554095915540742669973563476153153487627879171309062366671810850370875088877945258688776756392952683290947620125561856034825917723620827347325493225279194582155139100403305336007971859498541038795573832116429543579874934503778640548680858495763454174451112438986993494240807286235465230958254075947580764884756315604566779863232832896158596675238151021148477237981629623505753087822879172766768815142400782422989743553625639863101302876667136677738532312216353816918421995998322898296240645855273738094754497272863017128794117581163028510399697696600722707485968911055150250248601670395168454497863107871598807570938334797900903623336069933822345160079040274479348875253352425659836931895030092877213266054986632799135590643426172971427039290933511810500301839082603939912233246667657447998940658442290316081592348452017985464345686974465000515251242693731834098759559469783286741067389518750428656729282054067207486726116811179943230079394003025619378375303929864275622270127651018533126290846192696174597449397580575314260881122489691809392953111907531395370422155744461392841877381128495453308737594228362232026721946240641354477058679105962582851702501407833143553739396568688136308394354224324632672838272651939383847526602930563413759780832519858185849812278685584880779687327110915416613032612164775676969687759845107606437868170849826809526757157868234818431296408524472311883147982549770501609155269551743461442452943119729508299306448051878023940875208618954152693809578190682660785226353531555960757515384573024281084508474184481085695018863572129023909563724391894280806419622234674812530678957786253379726892134426904858009747823950998465613353390572766552252017099726614097901505391341053929219704270322850305834448395984527998670478735071483882483453151377175123347185384860407445507630793587579045902238730499459930024651452034182108811244260406995362794211985866773667666566902052928850296536187022158177920377077722291221875417038338465324326262026634489853225221003552155207461771046766971997089233104641487208968447550197700345976247817502382537664850356005610350090993200920894858664765639107431549706816433960238510281572109099513772280118229421978371843642872230384559386435995807190733040368502023691304057639360623417790284306742014438763726618674448569248622486259972491960150111057505859036000933125548746147230965955033388340154446712973053892918658341366914553221707321535462522260753922334472991795748366016584203565383514400384475148560702384292943003526306353782658517224546902018928143308536736362984907621114493778339945920401970959011315651926490149982662175319968522380468584546618268361494892252236991595301064773287528455156773242449200068316220392111089424701790352965529156656391963933968308104496751002405240362191012630800873476276573332978693942488524614308183924153679253843789989576130693625435095152318707709330045711078040532240127159532440655349514440290435016956851728497318492840702740277530043588690359644297422450980192611944063380277332050915674325913691598366727981307837277248370789874234173581157698537201792617574704331153857927615124762836421944497292034660339913865841323089255904829675196817700811344210616800424114903373009383775696279969300363169666835833546675311631366937704891387669146388707367309691621387042847727205805347083491080308336546007760470832646751071851937134904478729062953202746471118879039169337651158281604211469750217431058995274137995914602236145452027286375154444717657605698169159130179855128707352375517956398980140730841460881397023733968499095855751496138217986334587288296178438494628864188864534573617642037144111564064169365272965341335559504737249466080696565552077509514426163125468476618415642753351432254603340696156615617849028958659240343744934112784444980051060366090291532240647887483723174074895568923515899399254797522100319431207807084965594186802085322540859671713819016882084848795254584128740832947336085535393930088146886637830280446656917280513238758244908433006535171987747366070257069584709731941994772709507719651911147692997323651428341245718588119085236889911340223847006208768047703075878383421464585807337512819963102111890428531680910281473391955074607169618200178842490334376830205401891592158647687071918905704933276788761715317739022361679161113767311726705657053842900762615288257857471353209783608775615565998981032714718185151794078317091865045502889637303348429529945138678244067272352149105387342913934003282649786155836549705357887446942034220361627618298492860741740972760647146065335510915940715651491349239633226727078232003098451194231915480346989720612561142396342114696381909899583259702498211931194312080107528232845798313353699481895650692548301816824653100415910011487484905097579449557380756622890642823770759968022187934647034098410102624021293830921405263820553454466348415242227962460704046344039676430683002491522226933431034147968680850522799694950787302859775885831727799467127215329169745145700398086065613385686904843119966068658404011886842776130147531445843721287934229895043683035554133962831887334585825375182576817961031639442444244429262250580659445742012879481202926397154106241007501217962335249849821493076682609870486253371888969838336478879815871805041048784304938506930949664184063807020160279240590278384867665576687952430835800671437219195946406873874750367450181858848938726820439574003213759770588274179149088279873221077873424247784716705116892957433274169415482925911310904637051951497830550438613459792564088193912120210704867178267033439152090266937217576009737246951145383393432652740618821782293664964679747112640485633307084922230565454575001616023969263265691531748554206306708822459363949690211565296170235877387263531937923247299694522151785500265509015405025937285920345694562114540874883107161595316295447298689159780242746790147650722285037366880603030991458100293845550569656348864262563022831311516745761363106616846669667815390575700265209308328038248520509422676237917612614864952378073405173320914255781156157970841548215561444805549818931014206370550579398760150602778769041365125011432760729092552365333348869620937859708525038577732435334733999105899937484756200790640518353082470786621848619362577733510828132314487697607107253755732692938618211124464655511213568218960940197496519656040251015582415683562870148697830751033877139229160226825744678304934744030856020837478385257128990028836061990852226776959105909353456422542518149391827497727156028254950580235031989855405076873172337966077316534130396370678776988441732259339045215105267898947436537380471984133816739467846645757055936296612805281553620255808850783349396687802481283880236643186785118113261413160715331780767024128232945755185906197324209938394033514853867389358543023837603700776636237442949538357816458007081002106986520049456621270221951946847413981278488903015477613399499140481016356178694899489453792485258742371715281139902106201484229610777470440567324076131851698972533547666419099699907128420646129595671108927726581838426699282757769030471087775970432300123460640495200787206810543618183781916242943759486666148208577725118329063636571555700774456919961853393800810610625148833057884603927302694458732519857723726025059311336500930083172651256572299892672382589617221765487356826209542464737692012945880687995148840457296372674952602990086790682181442997005752240235588328215451181427637533761190768080491131966118972943054307795344629442399667624898457713028558827555855839793203342286227668361182562461845874866397067208574772286742976631383778651779272362366120320035295999761765153886433477973778858679824711509980590034581043625414445953132473088688843651514151522205711605596112188860640981341400839986256749765329092622530981133408420593003463467648311990020792160496942715697639229461205822149659107077057937227516762860235970654614282146664257571150149407332676230925362194611417390075655857643624891118221475749818041508489433290869506338822242855826866411510758824110721242580507927476585479066109275443253083706258799599743111069486307288931158831922712720169045626594490777939849728979112114477244933885945903923871551893006077649533778046264195796051629789387307024950714479233203491803400945687003601280673315516473124258359090305921064836716039227807577380361185486750590544850867503843334933132002859312383364254445151821583957922531284152358820301882815860493437465084728417605525649330248829271481970319468241273152601733222702605350498220352012962694503167517090038156033942469359507378550626257521597089011725537942407331056357031676879157841264253887286919365537079709102413687246560353878453802240364587836476806677438961737754270582406159666529324156521257639430929017999883566505510602537347028631932622215254028030918824386108903864150409468712291220785636974980146947738252507729368275978814181224037698944715815626035011977266221236592141221700833732529286419452526518393175217789751583196545533148739525972067959903451471186446002529056820697007393623259563277338759720478792594778656504130836092249529867809565608323134767231336078451948679249753734093527540262390928334046806800416272705701150929119428521931760719892232296151498873741983106569699564546960988177048176289150333311339268957697081599203914918541736530147680954343381721305784887743498749419555598430539688033096046954095683778976148109126160732933418974830335785578696148903981401546030467957845770345182092627932528699562744491602323875738799639370240182795321661300772952375090328533160133810174549458630119091225508676049589747183877534532127977166698956020722533150747880380682391497466495347016828111177591997563486760917225906995820636796969970203539817219475218978578818136177961206729939593469083604519229640854435926397807106351048663852455764952706074292264897243562117278044179957865261558702949203403978517382076971421193730586030155428233103304924557949848856023601656665005057490123655552431289594146199542969244414947561115468787713371080560303101459754111216196067680772640372666851894994975511246560226151696492412842177685522152741075228743134526157553672795049013719782221027425016381115414338232797439522792317262150950077984077272109986509178779654060861332139001171799997891368654632720074674589950678122789891008186541607115556796178449223083405463501461096144005606193358286068913954027693060784906647130911312764684509989143711342025680554286155351478713798665970511941613275830241025917294577258061900283729906272458652640766170195683962766591107886836774686479070952084030787682055259521072886562245681018617640198951499265766424983183119052987834547909491390729274981919860278101352412940243686507827917353420437115240594087290963307017859709839646130089297059776877784382443431842337241710467257242750446898082900625741313543122260766982984286693356562779356368755656864235409890134255398613091813360164292630602147350644942309234781397627216440935022731624144672642265561742345987396032964543515711218245266864430749225601671522937153013073369366019739361351497145719161049646923893720648730268560465697012909298343220790772010962203076225505943291858097310289636361434346569018209773943447511569896918216718394052249969957636378874767110708965462808365277469495292481043749434715924228000157329131755416990615726091621480107989515187766042197242811842581718152928568816098133026801012701587827151974444523681117013431459813074664967767942327354560009270186228026448135946953827229785779153302261748429241954617321073694830606930958118011948767656622439444419410428518895953910733907373310746501546771346437226194122724307421316285241450613925977551097971404616845534686121684318107863897559992146034308816921852339524029206821844656477089254210440173371364408812025290886891819196533550978481123792891279489628561404944934053315356742558724280658242924029967996157355129128693144989660795580452406939231219013850384571158606839451194279370809254330681563572262686048342682174318375687311328072970887316054383020261973076858325236173792265970204968824356281186711348924307098907983578468714892131563830151918650235112515551745822996391633606107641620436731828599189654082505216952903122055154018821719999912608960258644083828238376089903013639527230640726888362493630862612219877430119741223752773986098210632008654240395635006780479955475606028606836858470564857428659442787503589098733513346353842879636296196695390974362752804512582013208576235502263415640420128125819554037334131597767740514788188007091883606822576882877898682465872481767206027756393652035956291114531968807319938569756539278040569473324400343558285543356442073560476785236921157239807647116945495955834631383649100845909714209162502123743076363722976517770902630896514558927324206102797725084862433847154951152609754428703238935964054011660440721843225073621219785771277342661350599164995151076662076180131348083456996305294868098047253045575299722006980295183809621563554024689944109281922895793305950636645605598959951317214567341834269855282802334159557181056126983142930827585903162095570856277485550546172482427355271973911958744559668478009592131686846533277405004771954896094660303561804228527713361910515027090939953147823033311384223419628438214004530611675239639670388928022492211726610562261874577996932825161227478343865844845021212184543566567154518831331213421377396286666969713378389676987510555516469448983500617315776501730424579000211309853832550296438528357152497631088992409560185903733783995732121554486930931692477552461418031300115058851320747634717580020074482379030519478834129914095272684328687852165388743174758714939434931054573337185597039674509467677822063465493413142254157463815156531544331563829401619280229149623562395568461698388573227712117614000712418469916287889611809944567684362439250424455954398093818633902525632500277453847897343696140210375095639953996859990732713612594851362009595820020328761149622541422869454047920742858916869510188376734706792964376789785240686862776219807814094001565699795791496808681900353591249492203514581148786400649661087512172653886467096598284838179288967407980032222541321874233928063775024654830662587849158976121135411848036000431613016656997935264249148496356342412327817954902111782077899482447932045907943631043120870186233362581101325530811657180815525616642139201987754085129224110593088968262789466617200826586650544007064503802628020004943017684566288297529507468367213248270669250782695109236772898372452450226450408123787975090068760754332150253630939096860739375209649525156743492542326093144114432750384355856441744955123199143093987491252606425380813477191169134808648061137285111560357137535686276739617138915235953588133026527185695065019453572803364028312989883891571426644623396078340551340776861526314979910912570495381422769842298099636630371923331860244536798183870328824647321544447068663628501398372224445568808412393881793258115352997542698816902216935885031496340868422082891143286506301038646400855871435853669203351367289557113655970553154146137454400028599434832608701488886129128046146918012613807743763537681546165307438326842988935343941377806443441468007462487347073764285131165007582851385329195650201831787307412552191188838301717662372717416798578271882164400111712705034287206397429037092213472593017529920758509767718890250336978199054852619728475503589881244168271109782027625316790061358342499415612933415848667125481050410147690633019919450464309428342611878313552834076143572140137286643902055056357144323756539336363167587319191859671191818163669459210575961715790883053657923045240681099739662864099417497197275218808794094637430238085777552420638843935795479082869816193258935900042065146054306472361658495751026476040579307771471998873975935048074849451412920336078774233284905479457352404604015438813810427232697142911080759417539099315832636871070707371636886215451641374101780647670376805916737215274669818153090403581575246165604954567485118296393938134149191875640708996347817206950931823567257139919808815816803265688349327657320199266572286576762788824542245566430194292114395579296451531785094482953029147843680649710374777518726133697652874231446770671770333384621402001049544712030541930775703901034936326045473849148455577817018322833636765854750343106666139305097761408877887243182457958588809625504207417387515500766715961595433060674902480910172592076474958673916068274451646056715716012485961644200043302762903132472136511076731710666689211085826727545557659064408341804911639543357481023805604504161691073396847316761468141321145956373572494426299920304315359090233116827796443568420816983008548329772094429911863635166981614978682292791087931833244950265618751688274997771848892249998975529177635899262291746538748142452662402208737267945741454180574930064934330887445511558475892940217532941161061595399328386533632227502309164931343892323141594812987407146122525128079054609689060881380172353663103588251746432453452490735344688610442731399399592756001311019895994231090048059192375647540379941131434185780256520767198347675852688552816236921228340760168209054719801909632020059976706681601958820575168452357924335702722037764494975127614046601420044784812784216674939176600114764891291469740128490883303370570385861034008903411887794520919104515463466886944373750422675358369838541820721378638069406371151184988084412137264390324633240620979003155869499947254746104168495736118888967802551632226734389970388023807973185416216841421753849919957672869700203841186760121308760452138897162340672680445791531997710637954213982744816586108231308897828963369457752198713527778774862158260456765544331017023737766352939333324264705801265402715967875240065551969656081666574924179100452475971293819131712141823089349059802709544594853327129739059256995322321342913605362876670764342635915544134810543374720953282184476550586046986511290264557153758246796129633159884964613858392063836704531725890321901524204337267593508470019118803998815287390137173734502324574185731504082802526409651192997641877460098654077784542774823798632061852568078676787901740017011435881972771289031447127263605116858228730791707635357836799293750587634237789067801208124455700196727422852219653622832549463946952922352958644976380326556840634883988036953128887534376072877816425045957880935735982196381007806222549940476429085520054951567802628827595405562625367977167708168718339757395618487295786407215794243617012164745108208224769967745754447152934047269323953143774277175226134695680171082782427830969972664310861535943654492489679593727095445399842275852594783697912206284940342533872948507612682772420361782430872747988144753028028448602682603997423752456151984224722289935912907068295176971882449596828515834107379927066745124977171955607963004972064761455004153563419288206847143057190993164443707414658492342727558676427020563208334499232535474935607033572901669552955018242656654787395542534307279169117280419691649884080756570073141963183689592681151361102290667821298836267486567955420479815278306459671772626164390890645189471778106309895225153178050653951603780660545283596619342046350627315921893592279033091452724802664505468094027660563686251747418239295848541329239609502950638155437258332328699838078301413961484706206799376324981279709802830706587786216852452408342868705054968568844916797489801283244154650375967017328596529904240179464755327493307314024422141067837322782794826072736628228406008360511316790451441204555687576500043852749883022763797610138901681157098229532942945098571003596318103821185764483574341978670038312699788329856491389804564849051552998482133480666396301590413061880702168389191046495535248089876888643492894139384497403012986976787408483673822801186032354458978324326135781832432358055510631965531163394079574024238986610749254061755053797856154679821069235564917218062370246678375524137944089151572664011440200177819846069671149067720709484457875079088209229957316492403688820204531141278341339056214136013591706765896464170441293724116380024951577764863266731902319257411485363278062695125903949879897372756234627542045972602310311839441319991752713921114006907439369404872429889254679566481507541699429513894894584852074505121198724339062953594784121439644870314559767357894932346204645702506976967536844247179420085132416596471724388166441302833904037455496526704656668616415828362994013170124760026706272379174424230189134225908912492783990196801959262474611069296360636582833124292252968752049310042918482532443072689696721251649525263277485105543484435906003061272734105553580451354421554928273030381263159991132992634039201313547802639479160714026916730280092275531985941046918338905121444018018155357391298376316560559614792981597462702784931685851376046998701040230361500517844627557591936671253578507475835324680381433126436609305464504941426985268107423063993649883218395220563086064313444486380242112487083270899801997966075376860930033267140708715914195976682763273190443693860776770979366097335467453744733861682662791501832376108105068324702561162746617081314646185871018990936746621438526302648325387080179459687161216159311088252221952992546536342546574260550761482429635634410486605753295519039340000947373874450686644296931005476440562609430461719448969006058678510327156946667188890925820952768509855875300092811834496286615251303087042962171621468082468497425204692361276867613783582306602150096417020208321780543018705959522154960987595937646319841005561549175668924002365721318328477058112911305912110520986187871740420720024283882292296916520504727234797495741269692408728804302364240340459600439443653482974208568869837761601642383371718100006953177221944334563064592083588662210673589273654850278428180437194706022625975675774479602754802263049222476556106531002696558841746164114568253866215091638370143535261483738337023014946464289545081240680057352198093407281964065672698365764979276222499531359192925598874232644429052553211798675246064375860344049337930080794748984522565832726550606580016028366041051383125010457757903716861458420879621328447684878959461322310831827158682404208937714110701322618183669962265378055611085283300567513509292887012847658536140265144019624574647567422772466327932940832059080314940376191156644712292904397641295528494534274237456858391168785655102984421173748540050900424712181951945630429725440109874504288426282890930356483680993681295076022290955220638564244200770923470183831021762112285515842892396822250030621064108616606244445386341203778360318668706431774550297188733013785877252414411664947072417892239096382186285331644853690852017687764120195994618111496628027643513214752062870174879580584868681664352573291346131637874185705044051669874415127979901758167396865405553246530386918024716661562878684013012045258806058598316090996038380656389125100073436891061313131262706651102852160750105749775773990316114969317725483094380963806902549133839813874692371981460984328003553281931506953670381513675567907135853594277402981063268846610866901278552938970087426652098837764284533305166660094359516799963546098856760778725355281907293186038428358315789302985787949388125440990200653032840801497307491983511294094854514031882361412943020565811320751015032404427873249363538381973840998942543347958680258188955735421039735308179591491677467764110971485326042111652266030435936647555364027895211731758898678005978822843588005676469455355101234142024539306929416788477552254849189674562267125983914454010957852906701276162661440909464090434237033963156194325604543814487252502114975355540500579784807819093584784368455360866099006810524410192938626656420643995680028727426345547572272851021040466849841455564093404463302349103822358679314710650292213573392392769487887120302311474151745310676861600632011596207478793829497575833566939993597345173837844499305840451689828543676682786438723219819108483336342295997917699390996084246238298097650550410599807358176171294405566914680331105201490973804679053769795926097025862351817532658016253709651401071332008364812828268379851116038186588376463119719687554800236932312439504023639187544953728785639974315717417379352660835558064769690223514805409523467661015665761833728861482033587300658601438315566029039740854437018085242246864362394572839500138992207999635759011800338697712858034690181729044752194569545732212372650534105540653467321670624369424792379343323098340459554842574094547878079048881449782897247347118095222100235443952365594957517322838368974737794243310307660637196512565383824627434436797754717117758292754539195243809786042534491382242442403417066237341780256747142607636837598220064005828879235367698856275262221094350297540490128282847859269484162449690061275176933250284831353489620875116920523590273875082946153978699881244560358295391012081160386712508335596299084462152043973175211652718441933375671891589474457586914521605978337169803177007480914109025024180243330871977909716273254966764525484381301182801939125172590619949086226179730043888529155261737493361848920666523439373176700276014846805102115392779162970559154039405310232321217238380856111039052810025739498014013641938973115841803144987297999733756933896306970943224980326451510643375920923268274517999938950268128502986733980322595853494311336752851693017497324004224140483770074540909582736839068860260580583629330765515808954315010008177928904803831411363294904604671685556860603810021420413690439179306975746936197222669765937439065384871179398393748518014203358630755684254211121194561573447801893155095547278566540368680989622191255662333443038741298466558568775933909864573658554614494995602093829213911596147348131326874016217703300122744480570945508170354477862770006868353334600738717961783994369902015758209095607159395586513273158996568387624447169892029560548493202738961536429078505690983217540490090849257731324172218531167520999593235812584431605094582402139358013662163386834328782885812623078085460338683720867507503267247377548877265485025399132542014014132882757230236989352107023957138819002001755424466324029781903704962921868173830349173393944196308091627703452211775583101457677709069491546237987240214087977942053630029739279550952833506109162474273405865279614967223505662702676917967388527187483363756462700215179231643670001952817159362067334097053806193791401247891425529656990710506365766367123868207636082076621745676512396143797889209204551272557512973276496828249890350411889064568081001165588736763701131103233872829737568932169773835249771056727705215878591094020104421790145033667200185114838248714329274192962866200689306383789159344174061281173274759818914041278154912860112288004960074987412083121230048431470781773413397552921955460989341627067398659261112433896715401722826171673959783092695280282372835791265556306678619745015496780063207736765213951421249937167169311143407443087489070645905000865827834687111580826633419023206990313955042487723578326038187348869303423250227917121555466973934624179580475595477345189218622688191847590738422081775294597732391883426067370510557546434904673955100977821000114470437177119235459197317767289512195551937203288836904678330588387788853460759224307893667058569977063748744255107243916068177965555252844950867717846754893691888017136479316418653704681057364341650964063331773012649874019373962767845202432501798834585941645869329965378698276367641974585909347608757922210752127047419738568587200119261460452761094088375075424441871332965419639344322825794349732574676337233533019479174669230472853640041581370334482997969732023936235774464111006037381941184477267994441681307142384927296353144517961298983045199455611383204353946624196706591048157308982789311601101671520157675792957051529588005187211892142756589579889546806594330150130668660196091366193876868982777653566494355988479937913696147605752913204988933683823716267894947718437463035341898982145942978623595895910201973251543284645653385708155328179406724122214699731559120747416854053756652972413343796018026502277119433003570221285575686498206153932020699882988414499751140143674361504056259831146921973958170540654924065834316835660858865937452107096866076925500394774504348913720186128612350335471241162593054523814206440496846043553400242736192067297093442513538038931077016421300248131828951353101003631611533540024146142394271163956855198471034624799421985341596279132538987881613154816606098012363278875548328897281659679087505362517726406001909437015864948873516213822912796416829242495790593878158930501955737681642007886912839076922830497685578642286540994078801852237674192610139059109312964713615264091367130568502623755301739150284715809375641245875647636458037132064186964336394979538569415621703878905474801341537310448449690461965568109191042599277167553993637323495900481598780088775819967974611780756384493970815177814045862738778361255924898297174962304850349302929752423473998713539874326363517965562753988961189300376517337791453697734377671235253527321315343195537517908975648284948802014825045523991910357721339215420610656819103705383555100337841664082623217961278198451862604744294733491905858317148683577503386058212307550280992753428691904374340169660092420865622954707024620399067705332131777540211479299475832620586947991501406851525107793269376052826337145799338399292727620407941777372662348873180026158896592590497867029913071355288227410077237414309733665603254969933049795077020023228979061573814351360325431414358624979076091469421464534982299062819888481739257402307194172962319776495290062778299727748738027797406154448788406205212781445621709202067988228259289478470975821773242283219977009584435024358951278417354609284063422681614547392665190804913509190225348635606026054543828809507916501924557743928765888404301538781218390332728603254785309941941342761660388884679452472838345645997117961001725211643359605130697605635338144018387745931734150012194211939455060196441088318262102125221083999344626469257506426135245827332696547989142558823252897447470185298916529958803971765084671744011098047315254044396282468836765089402050971214816635720223824264076063420254426780870204027335236585323020673964360787342523442872157231035434745081747552421906078273097562989927584435926451160800203396281349831956302214318976986095092613751362092894210318954063417698371932716230266879837591876995378978206673197373779460339956100751822603619556956423006825097822851827362884754501266240287448608172013109933926162211000412480625916021691621221174279710624246976075650512564346540938507443273985263907450639010699906024351246195829949081988667306231856689920628944168011456448787857424289371891769065882675574642697065670664990194956999627540741097623802761481697210408939525075647814929087327789643682223650594527658208150917969813437761309217108258899859670421583152915687870405668855473675562578686488033029149577785370558252899507120429130214119022202188822778819882688873139285047153319999526769806080910243585934458273956818988530661486915145946157496272702394584156165021681490545609101556626558928096066732125724131506473262024578390506045751998229808708384394397958675077572997302885410768148671142212043487342541628018097734652161443479082816090738249857297828336355113003757313554574530955701020991341874965140662829581761823079448867479472116357134469112735413129246397592419095800138308228873176804444037267182481274923077533909777702091309102334280933132844113788550735117365013909493873043454649878068343352831774670280032858446129683197754160238323876117092190161695859218370910117388393806249749662087003659030868055783928810626540392279854586581101145408187505919948735593965167274290574216657969159132330035021048640761329801189623021541012358866134100068530025421979147489122001752159582430329848904378773991060649132846575420570480125523943914876299897527489491639846090121466662711894641283243661377275643058462147220703547012931510152074153816290990975532895520718142088913622742452536565810749434430939891880390825144596264894353557158374949741362478929136075057348761349104389331677605703419242884505396370359116562594285439252632720203208405380926745572463894496262699282836251634758988741516179840713671369805978548839831186089525502448490935922829747620558850892539998842160945172246494520566620056750430054248391822390896675692242787013298654874565239165119862920724187023956115641880814969903912878511540213622252347716180873479475868818313487425014895778862359979661452368075460072098584550179248919928890489408341626270006538800926417453936044483411381953166489752088752339522308279246192877581630265243088009325662442024723917300356843460082771122642863657738852845527509760406967456683557798570558283823691565089978634407926929447547697557361072984775960369926159179394631032433378294520946104200006794303237452490089869915019905949449232358472112353645648972533992856211352872775889888915301928766225757318134787659356088904125870632735077633221849532987364545099192774543530256531491377404845858256036881076960937597651466043066446833364318904654928230419368522302772622690988447455119443145113747700791533254821019543230339100057639118195308299622392230609299661128306776038435297854439845123027085568359825258046533061511731143461927962605787833918840333603450884472887752883341591866764408018752063221089244802888305828850164913122438117383642939724900387636357517194044467889471599373405438843139493629993698256485601861218859037840195263534192315599596638861003799029897943861324682980201304440096437301662561833765708718272018782212063492999739455944666272122172290173068501942365055557743703942362444591920537861027990803582647288891596641305125916316534454406224434286083205454486750610902143525518622746994303565938606030364231051834706723026026470918270732182996851130204022330315883696948784477795343120030403314117519169350589162708804789602439619999762722051700702543240502265607088677254447144155556834182460162363654481164965531427009573036539007413587756725239643448591636704202241185905951647477457668599872155567216830677782697490211564740457877316177876767328811721015406515100540572966578340282642017761358621666217043708086053925573742965859240985516530410321238590508571245808911768703164524109634079139798283176954350786360379233257631009450151398100305660696782759606233172169060711951370468956820250246267716388349563903653357362814812983928062083070550514487159964778292349101670782964675635834698602593487362806967578011069600644954608685785282309867212177856790333171060352774851820233813768429068330498725722745586201359205313440284426049865019611540417312230749066317016235451817395533722816929820869630279432958772560157418593406364238867492000133273953765131351759483758702795100645040962462121761985865794190883559798192819076553514483243476609567403579813989771806007572032346658595966140162356139044662424245651549468191933010432208409090810589361651078032412725021775685851729422428587660013415965647889208546077367586840971986710534153042485687134862178456984588197239061378766960111700990715143237186485028562125791830350744173975762036022823854793615513793699620849685757671660456149316439766342187016624477993535484551136225201637808216545864537419629340767942713549839603959312172700193130054182940147073193000591777663412031852204003558018591741998842696845840767098597315448090798885412034750984471208825461711998678428100034226763207886572957933405522887610523368637766409822638669980739970787484128920948869641142229281337749697152403986578304985509787658067348353223497930047215749154670567598543368094948769114430784863579126285774629610924844999568357491271588279855114041238834047554227000884793744596071572587676325897042619882502819495233563060043604199901546367709198616601865397766949500806015689975142943324150828718350592475181422761636429712938858912710186445766382952526267286378473038480131188766305614355400799639260712026797164461648993594767912906807870680746859013013083780383865470868576082732026555897993883392803413291028842562502664597326233339865196754081793714799391048578958708624722239209769405731516104058370376483250783463947529634539218631230838197063579331370308411248931367566390906775525856248812741378569965837581793068459836295969705745776363961401858154738201880145082504896734776573828598719228953403409172858873828075417432839929508387392289559681654696398340894058183707171037098450705924494149355838478043628103172564960181846005574630343167411366697755267552052718170623509770492538528168283882340623846777148243311193200645929138218817802781323826305011667329270805098310413660789138556704006888287086327763080766673463344706724275618718609374463106595527215915780785587569664832594939223760971265735930012913742773112642948959199920460867550502262382655887899149825564404452380825911760527330904001123705033920632654601389284082877250446813045755556897204672629678194579922426878698690598045897965702882675232432835417360083044971974279791882876271624161457039058987320923660975184442325123941492677489352606721188458737316195290443520440127739287528841035934763096284309096253011252572946023459791748960707242085808876926939601241684074813917283526258058000391137452388427370300879544782801832742441698608173999641930996249513268238859482436733446071235917531779589136667838090606099241649402336886829688357337879017513007033774565940474912733642546274283529123170552249996964624164315878987810219377057719142153883493329439003576200564893069539260467939880270552608640908997804347632730834499529093773001546443505505950050776616337708492065730937185953544714707587146264869718634132578224222870212438585733254967911710909921853850580478177216371998025788278713726750332357648743510842419392191204393912424501687053976297219901161230242881419178601667276253646945048101317467337676588751707531081290339766827814782483174479250682405046550027030586330009339949088315925451562965076598707699302822702937541973154255288235758477129515152372988151929779186793024291240104970718443174877155568506009069942101269694098181584872646393563754226751155251116613981809525318182517795357636939975152833158285334515274009943618114978182263605617795452531795857977944232600982293553210253346981778994406941281052239299601823476717941599616398265843700631859622622132890485017150360762559227434017439828348809613760257569349633021340819169349157124693138137026236506939715235931547242173283477534736000924575648093965576677981219414835598481276995296292489409195818066788746166209452892439559518305690496832334602947803286069077833325681849623582469958438943007093479645725174888377455756796129530852915614689247507487504375202213116373700961088840154853067114668052190934200217579702349072779027162221076114521981399043573563526141785995797765941318352494133027631201877962939169601256489451968480594828526323688911901604470313972226013578091074125482953593077249138408047098435839449175647913638834811483422609150176015764394578986453276032217049451410567306157623064730338900644552117290076187106693553048070818577317929134818327540901696581792867457476911423390866515000799138972188916535022383421898673259229810257406337716825892196436079173936148183170258626199618979450715466696989181948593243517646993577241865600925895917192056392000030677055950069377421775201494707936073731405241095107231033820287918140395219254451207583249156611299780145974863689210581522056295810147258726632230075731089356048130661593026392256917240212202641599738553804470202405662367951879301690577242484180988858781233445993659748978036958407802213314872506724009389088339003780437304574955969439841619600487950904936765637525251336244367271121633482703604050995274954459665334411435842596430565031919749016124866261477157227013358863043689464703688545471976803032530982733868524003374786480947734397886927648660139527137091221080588993177440280002701929309682456264618990511535423122239092409903559249743048690492854856052734636920915628094869859532043337778198741815887884992615723120096583171878263866313460751475599604577355758832529202656159395986703898338084594108871561863197488951861267293852244956222639348422917984539559005814043273892576995383292736476133146465349617519944140467822034083818524545286867670010578390296127496202118323065921647211410862701332270305204657952519483813203714635538505783794347261373912770953383542400156975968446090641341107201181186803164670754758578674775719824232338872615695258195198032253866863887691310002176036148530331499681478522905306929646713078883557963304223425000429369162505277346406361505671288855908236940662266780666694953825486487684290431187725343628628721388676554010246721460862396444144409130766221591859059203195473851603748330273513208029147084209730412380703111038942936228634863486398888444221471098181432832409216113541875564898778892502453028890617179801480913027261208283773607292844005422308410991485432368403734228616102523124601827581657693193912358410894057666767538408084009701259755487547663288350616998586890218486723446089199928397013109314864374765445546585718284773998370673908628661505997188313066927464720001001772460548674802977961322366209766685368497582334525123618490262090256170492098451384391213632910369737568752721322780788293693727566147103228687913611953879689636709580862384983224080233648347013216560709555623775767173063925602089719318890966179437651799265795330106345791017883246969002214940564776721917456545906354899869225921917595450595697299694672575035346842892690940612115700792011516311771783085942428049332084726091209654449517340277356524201193528883795923043542773915464207704421377381782608810601274121617620309547725965275928666318752980532768145703542299851670259769294606822855993843376927612342833288648645936914833181506814289952243657511031878056529901045228755244688363455969267457308900590937462823590600217783667954908072739468725914360702148030770686957364524759683615548345633857075442005948630113561394620119904664643083439896138389567029397018643782837811688447432219118400549574687030754198019706329784990582298800671398141368236802713325770750016953370835141609110063109323738361176284625113720586707089246603193879453502767112001289252212586684078439661321906504727191561746765751275568374935210157365276407565081578345323632038862731887857434712673100794367511262538319264376243067879361717962845596731180591467444831393448877263417752301828190959092418843286206427084205141387676368943481321001821629151255565609617040579760403639635799943303320452990735124390029201009515591555892310176644384672149865412842929546770810500935638665789959032456585595972106006366322769338337789394020637039014576699055603992058302877008001896387155595897445827540187656317156565157162862888678437012503366764417383686609255755504814530782896539190525290883748884429577520471963600304519088113394785990463988061942638123625111175670331324904965379605883442571240797480182798508892577359029941663950856576298717708936067241968906861585303455655383315513960083545566950139255441249125654024750053574210073266923621762902678642118539456201496374601737633321990125890102595001791266807993957611551026931735865107309178186479429788102407397743922782280716297399332141832670942624947755485098936052986970263644165028448977044100152191212632434325537663325942686651572707615051749758682810464626531338496649011743866185452243969610020607938434368065035067139880135088191257647953992510818674820140213750776957677736491026583641521064318591308633571989612315352097651043439394055945056786315497578561844465910521002679993940638912261341356542408395067745666038235065605363723426390307365088824621846249171972165953070031981083574335948203925674040768226411797370620231300175683326317849673748066971644468677692075746334681923772206905545755866853288686107782435553022902865931402534101158583151609621329355610618054307193880006162672635947272828637571924122885998457074552203976437623016772067357407227009898318927503386886882309756285059314270328910234477389369973699969543037114777572834942370213418260744640835654620189766705100340309328866145506973842602993505573225343725205001804603461004684272408159100609625728279120627622203826329789831341085507826548315606088511724604462659329721385947680883409642534487350094300702116727724619422186533559034615007283796107094497692560226090605521543141998521391848220911478613010282093270533673975867706267114839672112801017921038289275496455620276055149265703420184608436449318102050013472916809587409932738029339073341872377740893363707627872431898287037158975610615327852894181987511419025989991409810685344997597290332155797113564490984358738768723605531753461738904603696321580376150101819780648819528157776565275237622969814766722870994356952788162761462754983943809827984484319320475989511858047105177446349902226432761331923834392478787533116195267580056279862933902099524071577200338464808974056824284288037184422330390127329078822733771245711629959914333872740122552619697503587207885990922606650077691881272060874216690692561499426359282245382878424958523124508751083837276792033851606802757686058832874728454700838895589479974097738984474838594326444444350134618986829512813819031115994573499972009021030737637449492881610384578061632910061375593392740611530354338392743253544135804474037434361210196675260269638046355412957931518731113829908537116786735245302108617574822827681405623969777681736238877086842756143318879121080229158532555625540034779026691201223807208798922040497996951140935955383815836180672740209237174420248475488565392854311680285428088649541900889467786517482961053103763898539681193441399900682255136872540276005178727880688052466381331912755300649840179982223492391198303300278968888635873105318371327771032838464347166405431865663467958664264438844202114971509187649675390291940756009625484940954092139220576076792645841341547493613055536290867667980695386586731771253174913059365693927984090355227165568337035293403175378714460874261921787976247275854107219274765663673751917825233121243701786780653286435338941352243403812642736792738105512698778752846780703585132499907380752428435542597149752803700859382710549971627479399274957757520740966478498698278850588470707384327296685650770686783748898799046605910978656125383437053143848413769783404281751611743064789320872401751518888119037236084006287808066395334310963513358908360306506565556410736613538778854004449006241325995822138406743549685270818001125819404362540259330758514715746049171490768587852092873454489571627559463073223821291846484222602855057998071364700576540054955895999755905159674990561143106188156655355208009452891611344036822319526645682085992932532863014018781697958468224014878359079013523485929121100260322770331467467748481850702164076317714557894966143899563313535230698046412111573094441562602939809419747033674785924979290079508189019208018550026249938091423887300457272432742324725565793624187535407864765639054082847046917297818522553467018061636887727368417054217352360514913476030303588401887267037942521547933301636988513682618307482684844352079779692489131395351960463965377449628923127888040503478353256687412067220964145501151104888448710384799464797924896634840220037058867647663581359388629230943421349331594890069947202306845867528213156523653794115085839347919176476699317917330226607755310798365683391398201214002013480176795458388397576609525889283173717950704501753222426924176713701032861534491549070565610308076426720671302985957716040800709952469416729778431221780289699087972886359929115323269530327203663934803346757917752462143517088757712109666962767687278183331247749975456394369547210909076843066421191962968786703132812650482441540473759948451562149659496857854142700318821123479623521971594557490753597574126123218664087596634050315619757757725037355969686354024547492343914747535246317411662659125937889022666498511697559235826432572135670472011435906713094536651868796430565668505495860861965105629584801833415728275471212944545484613438401102084050450319257059757480042242891355582480736449416806822098817669163087333190015686128442903062483570529202772627790607707779254382477795939275703797756881301645429511405734095571863252324933079164982019776555635499673134263794370512623847057071743299781772641501363272671095795169712728913560945519808285136190828191389799890607162558028989786480446204656608133273407250479282121287973483869891974670972208350879390643069947643590874838051684270556442151249085321817587751799830442788073877128388043833037167759265814205466924010643473478744292023333456077370366882901562303685923399787409676807537417413634822464966958091492423818928914853460480466395085251905214244411248572348065167505736091065902572837788431037878569165542514998490662511880514486509901730319778455413233133655512649150111114803112182937976429576471379388992557748953666101078638877880246536817471136448055945066872553703126355628059145651333292017099034838486270939536019716278927286762287206172751821475963833451984017899131664385253567934925741281841312752010160583885332164402939009507504319061092303346481761788394972845198510196256178720684437559930250689290649614534009755448310126611983534349331615514601267939171807924769303312121794313131070883983420674658865947357275012404634196925039449576359029908378931920619708889832021876882288591525232775384027562603331564995999218685787312227887019969898406560914641374914861018858594731874576857728471846142840220738871804331625971284303172598610832833971931377859612649697725643933472581725392979192142287052293127238001463419364403253213821270031455508143500364530508453709028831155655941696962778704548062816880843026841117189744564615197072303946790346409935962409469597387884020310888098602702941620997451944207935194369420817699443403504281621650038044719196733157394750478326971606280256576476117655588695685271171488953609567052989933772575285322995266470088771428687639918920763629106324643555802456779857641650181785462749154958277496532079895210081994254710724334434149296841962782551090260523811901110237050755810678299191461342828367019782228248109575042793927090321432512204216815259103771739171982322271341335704028752132829846961758904097402960519512204048314352445792483884423259430665297949928455360424486947335476947842639614983230212186026012187390585322150946351778455311495074841204768748488384547515993990741830633979018969502500723173134446230301797515061342698675546219401854711995171499143729406931390477800770971684527849667857741797426146825960456619858764162019092948926178701125726828501531410163548430819750206513452029514455301142878069750109131769226986735314591767146711304173538120062557340063805591846628555154089836168643151684002372680478800580077242249686855953152890248853197545744889149716307332885340375320269193716619718623328839032040217512413045462066958104821270845630284564047887309078237929437155742989597501044314092838257024143738642625201335539830574286651417042369719586502228110279020228294055212989806415645997126386429422842566112670046211134713720534860887211100723042068080624197136141272335626955296134274577817751800080799512309256634142570757642547650687580674995270457907701414033549158020513914653681598640827058422123401907191077912099125604391643200422614372109543160451395952415182471428038149767591720304558949024883719665113982854896578343800434774776923245376668597415881622147536537696781452363830899059163310993345510261058379287199203083419798946762492535940104651691779482564304927051694287694891183648093705068750519599005620214726324713111746410975668145447801780896758927589510652829305080160933212715843237950490816882609456808299818528682942375127371549326594293873258518207287898390135728196379095780143611164496302822890968748971675925079148596431032948387082963787639163736592748256166720515808057586816892715700725223625976588986124253419550215214360266635542474683180689259178432589044762976620665426670444954736226996325048128254998206998107248051004470541477636078966438853948316409630218806812361605478279186195097217564946015124012111390128979092189551472572818337909627347251257998129047967823982541970489623105742715843135858052190344454286716073523520962400526039988297578388646783026232369453854642196011042079793267970538194038276545960193482225351369507146763014605992516507367490399135481760421546418197127152877479514202346455161503016612999460912406526363437867242771074511396791564267208875323973673140538591869802790387268053841740853077132593110513020819985547978102554080726353396439620499133859981905860004136279836224733259015522542470902661811818436687993017699462801068233371472877864771138338066824754613536362695925027307677153268927919864066121810070585439558010420532844750931524528108687180150656561132296114517735925941722578617362160537859202953000885031901021337377444561611562357523435298578732554026103364713726664524519381397466090414534804732276058056446209848360038255945908991702037428465730655913853359517798507200790393856515207778005623454241824686393450053762028596337824930925452258345139970834361727911325038052019950180114217858321451101517088656512653538695909930611049141573771587391371986108970988426073617218951714238465934800149300468764289121905921053339300235079964939542676577680222057011766274207754792493340575406508291107007357634675649983031265912960722747574269127098219549804081194023073943205217406714105708561286168733291908004890517214384062397842378547087169601470596184298803672928637227158534554372414521830773969636173726002671661344842024369164646485892307670797649228177897763774244778525520582619276388224143945112939728845252832379989654922220277061611907176540607898147058918620583511949705839135281579723303383853471279843954800827573301762360472730031795836872415636929041037265736837238016303647849114093624774612812362992939890163513426964669700996365292349285755674983725912468554890469784889317427432165243525359906032824112683795652370227706668202273272390072161898898053396919778883625588832478531465783204920441079687159692459752904105534888563771080347376783111863721457130625841925839096948742913181572352667536132260272488028477552281827543063828867297204880752861994512058693139402818879932547966785363344740952278226346498199056283796367385741400001075010438925801329104659413718348154971147614356927798157419628608326738283787588212024773737550055769901832413665931104114029529831246805185532520773937848265462928266616730429487520658691547763777192756891096256408784394911594826632039830005800274467893618682790293318057630053912971086266047112785234279274945215195657978949723693863089668769164522136591780494645268446841551792260958637820287042268650585946748421884860472839016991204085181042152538281943822230256874859209866225351615076474789561962573656064645947092517927800760240868547399314763070031965076640042032009710001416559557566519965896492117692350541680083646852134332859205174684032164095353753717362386322239235251152326564845232200125069989420064247468540441301466137569084420233835680450701423115011886722396848962903903045107608694471447440714539340559577014858187600737394226753075907637207959445395754676280425441372029129851995294549654857900299521911744968695861232706453846349158312489288575071910658542565751238777591720558153984723638795094703543819984764444704262435910975846014114617815583026625970449647532664533842291753538361924885902848743151261506393431236096455946481735160761679168149876950848211445384056859734916713650314934426236661959506664919254722595203972197733073547403758864745705815132761150389528717179874119061395493576033816738740106792655142331307354706014192416905545519635635585166063230588259250266816485829273863369850257386891041626615415399734962022087571888131884628261592866423692180903624715298054593974016660843406838556393336186036294570875560872834419644280308288891282594458208458371933283950149445001430627703721764192057995521838345921364174394119808067044865615289994226723521599186428090886777855386539229898437205264581860694418877014364652950600232186893320568201923794684657010769552552868795753008576556937116028788676999907351344417429214099183901307044363649173479627889724278260882926428356604631294003737806900115805223312681372678748094283779158840721299059805444345080644161191496095304140571470750734129763561478482526537033986785248399071707316054128356404625999422045724744083322562296245347102555964866128074592021097273705641854816276889160199325436318392803236686558313504981537464349478136141571343153772867707112901160614921986865519328039789279379453962584921669811560324900718544564310300495403389313749986860500117457913363218376418010016790757435481591665110646718949583237807125501542796779636186868843694629525016268099071855532003063029762699009777978760005828437926969800151404403580715156010796316060377390269124831128173890171307019896240851658798996147253103729260665227671564080593188963272510090040255916300970111276634426792608981231706514032337919562453217241448744772940824479063833614217592537879040290859608344535986624331916465514461376362913653113505005032187294440005853145038941896068171281295738767034422384289002144663069382316204795941279608797583165148589899527904495071857236393159411799030574034667608610241064087157071723224112144746925327157733705937411729669443746003892375745893167731218331201517773467230585767450612923521869625154008959224281082861336821311344581763047095608562983592556347109781407927594628939379353350113661692719707828391316709328166587593891453425830661591594085610524441127072141785346278993497087464281058915955156360071279779762577303654109564150476917494945470523516597298384280689566480170269107315076372603929516901777830052453804324620275935047322279186955135294274735048216220545350381662333446874314339955548936354692258278987172691719025668666339697212617753006009038765179734377981158242328819573785106894092592107292601205639003780331187571391711471742450595029371093507870728967047184455209125541802348623388460970979466609957991011409436236115457786115988645030716635737683111794136071264061702987903880396912380696015445791010523228642656193407992079406600983657702857743030237254717427476428244826898889313764935488908820665804309606470671231009651162723184524226804671733743479569839011864969435250654207482959256786758133911263069351746075255948080613819661737210909142540575733574730420856311911162725381213691132050060119514756699169087021009551505615070226414987468397621169146976856236747382188370938362174330307730715710310203284133859876567479179104098228440541909084837846721891599565832500928735051812974118586081127070473928982636871219651171470967611459860493784663832469980609286074203782022053804313041262679381851123813889483188980526736134057119875836636687663740878863763645880366898919287926443345903875907143291994873087303534697728750991100993891330954236932632530430369902887474279487550547339387500264699483966487322246241754567279668851901736033092778971481956872197017561888487832460571564236109482808241016649510800902267247188469965337889039795953982686246780963115671471028403370550328315815187400673973476835701090538562602464424052776890286222684388559764779060507519797982121589917412535937503391795515740037626611099213534344659076405111719443131118985743221243053884119681160209278019074326396838723843909906210414120803857049812096129507432596999555850409894547879448576375488869044025377104581901841249646285548636404167139907909032277894880877458772024036364211824725600326722585939808394375724454129000515176836244506711810892053377516822764369226908014678444670668127713205346089891546578320311424903802887713481294609115004419006765939412512861834557369023517159700957767570502384449634214302299097951540837607213651957043668461536307743601131642158588088883439094180920439588196568808050789618882742751571475219944049218991615368616186811284714156270469133612970551538710903781698430928206521375871551687044555313703843957902051463323344331191424653436310966796237199791845944640432585314968639966636994020278219433414863071522762082608876852085972528865297944925586915570406316755962162426818557866516206016530953148633928448978938815117033969808518044107123742123303764621910274451470403078202979329846761894113829073405971034688299097537983088641254119429667279955939386876437556178396904546758558192896775278910127709418929147968255847092996722910443159745347365326290060483475419670933781084153186515802870184568359365622871116904803942987402824361624841832969659705206660364957316096848660052393378923668696464898533562398447345120646673579659347948717429716394333405010990974683797316083644326327333114490657693383435047674942239488241260136428088175078912114115063078760901523494900181471392809468328064266729380661059001818754429680396185511957482195032962186453016254110691477780228588362041272473170844996671815584497683007286802461391854612623692245507983685947388300498947170192894927947246715216744190348937900563491680720907134847695522309326894812341637004867550338576441695069323933239612658243682850725501449613398281908342286011935711888298969301221120472282045741659192828218377482385082965508724579450509955392519889607844955789002069781261607711938184712001829031768332409270535706654030081527337369366665719915902962738260608633265511470090574394375590780090800309123003381834940287341984972500303781062193051130656304805401675589219380063365450889999681943055028857973876162208073013550885966524560788357789413707374865682815046758223463246628481033783382519194416763342235543048945391727092144406183453113367917179283147143056512221767226267315234677053669859072571367080221518176402530298935695526742251395437368183067209683274606062480681743429512026203404414232224822869267955511197536215191194374328577846919245909166807913551833320601080841874481860152921657674777093184506226417343580096504256075304951092210026071503182097767244222253406747028036903046047731906597732816455220107248185490221190574557629995416092032138586997018038944581346340833481377906498075818217963771601755614028304744629872793745729670336896038737942359084523268366002237408202826982744056578915669061294200999999766768429812855910768642195645664050082500025956382544918846461939937681407511368223923057230858123414865672298745942660848154868701817955295745467319972130079102473652069565668394657419983715360353583524383779356170597217556968630114087169977434296790792829867750040100977302795440470046106226400827861866167591459584290651460998211698822420685095005238560495994501114577012530881351311691214761226976557189221582196773091434657019132845703122561354653657097764118661254217043442987451660310008999082588964389386591319697186269417547731741399292010174113300317502609615990949713628640702352898990926006233001876791980153780934617489405790772314525476921828607805424118810771890834116609665898524997536490896564287277909411762212884393555485927320495506732892055620099783067127825258666419005340336940132817035703696972344588924038257054390655977373387137835798439379981305654562471242328265772266870678058686821018439388792550328957885971359597858086312935381264378453694070722316105441613787766959737859459417888287587996924061441469419441438683697361009855805158057004373218691722297582062892065503457416427417920954269474254684464962610107518100416513336319404993810738703645745997569281774017757658186064763189996225254677032236183680965454064820319369029713085107283802661737422886222230838199905660801048863327939019812776577145580527549721454589379994377370705914706155565251784631871505988878919446627683157151664860015402282533981480769752827203125169795207136855587920295766142677228324469951405106862620759763450305245965431375564455499826372775473537356798639056719859664370243536436879556191594216011920453860237915167854017805680224405215933576228749724320641223377574150914270881569071729038421589668426218887541961383542115941016845418933538610476330011101554179326414501053818264158266926955466298307588829647693723729855623263149919447686756175064899669302265884127366353091888935405521184244121141698091521616923521654318312571316789797492811208915595849242252364443447403518030163215208546084277688084783147579736651509314630649881871961375279494368666151832441432218204283103832447461069373692588318301471992411403395516682871005166717862664168891573639193208172203691286003337295786731102857504101170555411880422178826890067478550552525568288695543777692767013588602701524411910187745563551592722459409834333138877050080006855826261541587728930855652152228887712320620794644861405086819640171116763635223375474989733455064847907951367237999146389394339546899285940395395801076484341872052724684829325388637725405150444540366903171133788087668534533045401452711959445602920309018579229641339504210710251167350649571079467793000411595289355476045120895695270960114513920632424229995176689356762866431508611943991698309360108026213607126055728886691476249399212049411396546598775301670458294987485290346390189241443728496169289219342102130102015838411641789135663422311395564639295993902451452625740090076508660402412974429298329421230761817752785256486255822995809720315148593331412857674496024807692249639923676700794127974925280289231854985430201731533655944643934926856630169217854588776092735079745191849500236817870925943884071163906318445654656274514710634719885222362422187250672155580738635711095688427464830838446459612709672614631742357844458521236908977622024386471961069920873645629806550065058192803371936547240995633741764408961182264664889159230093659864598167909629270241498713019956838616305954309659059393448897913308698437603054687241988803543930018769819844436193829899407839866672266558209062709574663109535158687208694973232497835189503584604848179318920787474510564764968526744399976745507242946761270094964307503448559536157943265697604003168875588081119758225103608394966202275781826735565592794388217463037022796482806412761520454162868837608158377757398469470380801408601377727827236368326021347969091165935504910032319884271362848213712715581405828688394555038512870418926379278263552209282302960439055117165639655323853521395045405743929828883648114552813953783680337372567086464044623698121408696163111121946714033556193011969449921373526138154446607478561380903991761160577233409644712183982019990955308109718492790793470824586464408277281376729224127724257733936059215427028710944335774630696116969841898649021939363225757920920946641181207815328677442328509720128956837475783713198558042487208410674566602342389169847281802561418517700175431527876238115632956424331642600135428162650009339102698593954885841849077187177211232684612345356007155073709931136318198689508158395410658320813798315986539162499483420238164183445763278241483599152840720834620129969679661981553258561919164872887280060529452241855083703438825068233081358925139347601467781406904189064059197360686742541325277963726827460688884715949256967574683426998188943468468248812071119605585282951247305181871600001186416038193251582758622218348439247368135448293652303033585931536620024282086569759487763400420946819381724472731935783601199062253351624962812438921089702095735447783881532252080066117070328747775538430238868300889357569071458290127622864865822993383645795478027833815416780163213219888086989451468342700520980693820610204369075366145219790304606066375641840946006791789261882760874431941137743335587901872783014943696160035568386098794281674977413930549992130496976556081774761003393937976416844402765109653985733641013480421249978190034991273757302173645436269116647622948747512093054538641585820072876727109098060804743095006893743176265286016224215009865085095462968196547834356684116687620114439872795779493209378597955319518700887265805529645734127818784548682356111034572728844502437902781762491059780238362915314530888376725550197526138415941478680813110771002170524670753922718796825632034937837877555950840122903656770457569770484828621875002734141413425802735998766579824182121063696762114065867571064391439058477150828738448750511566380526096645080526160253465880093612919123980531950168096831022487499486668710322673117433134487335081633370352724676655892440185323073362826198285103813196041728431483042237366493094263174865980831858973672436019951190337683472648105700303993654132242959894551629206490965802921616527080482264503538702218714907589555602111085069107833527818747516467111948143107477090443449958234894938926727075104503436701915768966012488525455773863533334879512289744234330476100474163411284033057117120513863117888024260928150984357219548367848389700833250318866768341193281036527723663867527528909057342601973531695274805756757378504229732618198679195014530407562743269892889643663481642483004474492430856227531234022097272289661937308009447250783197386592104583425911879079261147038133370559372348974383054975475673735455018687752878772141775912388512709043503437105738144072934807015814434771885936274364805751584991834077527992017324565475495315008580105311940411912322920592108961665955205906302071632988269286518664256436412369261675201829478309618432768706653112842324476552714766381529125203027633482015890488649514755189901819391450867836440831665292850812952188059696989574828439458514375073184594428304714663712397570871484828481568238092818953184526826806379363606256206268897783290480179648474731510257781192615302972438586642005905692268152724087163690996356313545081453385527400979553496569528613143902656521843925458842348381566562044023092133203097035243710449048741762400578911434361872519365007233384893799908782584027598210367146237097545661531099907753841109281090819409175035217249392405726081054958642070910905313897924658602011769674721379547134217855202075477460480309562531542705851574302807755172154950395026665670909443136551297490521865814056039958819761609761295631817986825930310706033017784786929469829899061645784316847591182386189359345080098286693878538932755672279687916946384050951443295223980735484037758065351878740582065982047179087061303309044285551263336323534111498284167067585595383394550114187171400525458274123066692556484310284703506264006404984273289069138610568720117487285685882962911785983038356358987502576149948819791283100475405467315593105815129519646158901249020277861432631829502390080593641978518206381127775097237644300697020615751497558277627513427641817859007761267258241572329799413841027579219206834391499625271424659156435117358091477515259769474566029560511232479555924311601345185562956704044674845098586310298299718271759474061004326742688928283208873706992339687923302772287053391986850162627866897138537184697359943646882431909690779164544114230855268990981064998786971958887788824416427234144537103583885733639703110865722667453302000431500731990718700970599172896208930234833859060016990094751316334576498821080494733366300694204388951265437557557600659801448354943055606635408123070181697291111740370288863644286448173486291768515207031096199590239942485969781165991106623769657507388601383783829007592267390537983263797327326905468598398679262437338194473491353795365987624867085013410486457637545103626036397963559292058212450867483392617697897203597565869187765330878456542875683763951802200947126278257635279750886691109191298886239330717207061842832528166717551174670086991433750713502819257456242289394890235737553707875970226692522365270309671864963504223794997412093234719346269473048916591882251086331972611786251914215091120866363476448960612280190315654821682408941666805722309901511216690460904178784737465918660807891332292394649750524079501197375358888037212708225365196517906294463790142884856873395109405127687824161383460876268146243480687497612948433024827620112356579567283799108686795349950021064507661751352663309964041895884883857405835547574980142346544867897969073729791466092722050502125250121612900914317518346154597544252483594148135149733409480823339750542257681158040070093375285255692481360748907564648936093092011735767611247334699194063438312426794030837664061204040318518114700032089972143764817377669651916894029112432344712263171982441372338441003502230272979779210427374545132484736351148279723135774765880313431401335793672904083248730677513006750904989490368250268708892638846898150550433129793473290598194092617831840236286922055051742869278172875707764425774942721466804453978891767820632466693237849191351356780033299765819505469664380206429887804308474085912263448080145376082333297013758665294363317222258593555960756723931732620667799038360280044254331980839213388786403900676801829504115314626674427986275341859089397411663447629886467654375952612490723620490487763077922011698474497833897335880078945712179686258492440243786163625654517596403468015599816549109175445505743687776574923560394485532806363982014409324605038810507341898271393302306941840895002968310004550225519768814170046046181068168679797814692987780561564156326842687202484075037076152694025377040759557505675427003681457196510429950222754571251225199485813236601235291882667225988048346947259277677961331028765312248405654624280395232634275738727544888847118613124186735306787402779585591273130072349422207656876689402651257568505628202034788435128691356085524697221821138238821840517671340888753676164976695505607335700837898621289037814750285682620865019481666107417595934833038100338084018202660323945884551144945350453692531657893439169710731107766110292069109016841583028565452361246836400824417172250747231766245558779865219200982343450984723843214375906024077684557759057234203406226217804675627583114765676034657886754420941982687097466257686116839937668204345826157063477516869224988268256932436330806738035008544240186813100838201773245095679197270035615361844133845795038931595377194259745453563567584753973915137585411331185544810107247171475799419217686466737144804804841147726181979135900671874245896850507153210002775756588837619572492843168727068511385144177741732108837132527300146689215650237669350153166424273296130369220023797396299424927876757020460192449855606980796331334645439729648765528477432074713879684872599480040674843615505541662967948532422149669031922428529713612227876293027046469262608598647151371929616173725563531589712576607595629192471697978434369913444256531346808490327969324086145508438274320354336458567266208143966218747071111194284217130168739101689099441922264172403340833992206246717687989991876613634755031900916468415447463976389802803715668712363768359700487697100735552005204474995663139329184161383883695332941045769277099222542774213879303927128121556137144134026553062113632120366309983521667302746679815905974978409957600998513475145971678127444489433980138419589774232321590601583433409063888732670529779627319590072155867472461982284852263857607688217073953642684035554247076936581947278319285393190312140296849485826489476090663467935139579350941698405206775497686712084475856497972826542278207087186795297437183678217149656941416666848716885335189951048857448485045089483993589360693052089275310693351022757442728502522625579488186099037570532677970145020190078647370730626947495327731343757004940455738873676540946876422631719576356992330588351082479607005154218721223646934941029532294531939081564106433269422518445890940729434201599424553820909973175976580161428444919058722918308134451858880626534729423423894655480248928753381299453201154658202471168639334751746553458190749672252284384048153702520543314150514343845387852523495735087945190407555787012704913275468325471744472542999559317336885173843267424268153942623685500558185755336751989776848991547893804982984663766663539947037390217915643479478312623286593796498878137794104661958017245380376134886079688335398263913275304691737331185345204155367265900617695249500620774101756729029070222711370469091241350978500575661638592037271365931214694354754357662704876400894110424535312686479624499271731138997805500422609636207269176327118553518485726194667250402866112851935735917796497502783329319683121523199827056927131268957680050554457285814635846711828325555481529403912382067229029174792729137641578648814708302832610444301345803923796919041262490032593365939411561328091472529881796129236847820867887219433812082378762419588057216970273503702671461246816456829059834220424945768187601049806374809576323002007753993113549779085785490090927571630278641406758595930465078323607975444405695050364606600584913060675919748411474325504151610646490016235362303980194618912007474141289598401235818221723760632350226746699815057823555380571788472408865407672565675598961760990055420615264692466134383270043911136357510062312215431918391441726455239467241232121015777773114127479973751919815729742098856777406552814740070633337940081324731938883696379834188622453513516009935771520511655444074419942345156923796087897841728746187705225912711510923974806707263037276037148320267769368263110143197109557439384269817105438385439053786078783346064351445671748819329235508062654802817192131906276910085551854878934019931103170575364316416522268966039609014412196178140065485602090505532596920768797102256298408337636273370260529207205635417326003238056374811052773757815829525169133154581387836705195858901372064032564485170936787171143961614898255761387510963486842418444661097922554429108921409466447697744413597280292904207156593546591174185495483548967223519395987207628434493086105119915668242253994584172836077642717596746371357873399439390293293735657117939234043132733288366635777208398960572919057243952081696901650368406184992788407603776235082160177739882804242546604276528532592752626315361703650311317102938258240636770151721088509301969996417647178386273335180113948615019923896441591942532547505508675433006517230317637594464110204745534503836635800530705479576447496293572383662019155944220289103597117379080291144341222393097995380709001924309074322480305371811632384001276432699134870633873267329790552862777512588960564840501870024783720719294795687436395753749881285533988107326409021492178783216009602778996178987174454032817168242721391551193950336322159023534047032712298142836893775234285131813443605650630012227659209208762009920399238083067891514613677993017035868961198831403395612628029567296733790618064660538854523230347632394702071435741236422961724205023825462845464976861527204356225715863830885322160639574923949232723384088131944132995520872551421088611263351558485939784570338636640650669637398444142742336836224445215563092816481857392016473148538853078743314994456272906908742768981099355290871392803989158502576040374984936070553398538144095134675766658064386116246110737309445692785845957394880266771646417694554129573650025192164804889173861808571119854602783653420931163592204227229676179838390324352947964307179294347894533711451494656113893925478212829919375657042456782664354561981453156386384065523721632797940634569733468800892720836602440695752304119553026489977360596523773450538492920153063221604702719141388211602682666346116612973167283092361057234757531391894490117016765251095483297412205962894615461318544635410549749719379072013985956897438162466503882094097283107499115754419709025040959751198605817684410228598630424793909268165092543865026618498232067137970328791103546527072315395069841013523642424134935830723030424206782033796747141531491412596105413738813474317063827859178840166079223790519758064216628975767473897405779170629116514015467508456698242806959532403259261020331243099890263496661348183268289910683583348930482152474693850011172869506189866596620877178436045747833027661705661584892658986232627499780067207060933216977975682570166612092320313607242279977380319157612656720357843033812770076689750305384356301553788125664685004065773508496006367614894134491173144962104665057879163832134155197812804802437506737531620107362497027198007774959675968633818833495581565297789292914642861366693506714214179297079055794281616060450340423035713930378034912701096066802966703771076749645951305830816160387210594054143358778974569434957803799491253635465090178802544881878602991966958408118109928062441007548441861171650652962040163804293302533558914385565604120335838041628816295372116028852903421793273310453118406642423146875968551279003097872474876658339093674662237300429633210245462754545879153964269177262013744902808301831340842901523856043197445273257841013425970817072145941826093561844407366707341766634271520436139468829079855336328021932454469110188769051427102687923163184305569733712554745261663567741215201050846235380667786044464740702542743748563896421515494958977885661080937910119310143710967433856791384166614034666912294592367415373385640882072532941694772963254046909110234874359929981818177522127739607976168304358695615967400861581327450215494408470394159008932932250613201310785760374074355796572074703643774029026845119488251506081873060811028756400977179764052170072041567445836577313254577884076848085320031321491437149324502842935972069196306482333706340749862719436295800555674556269330735354332242506882774589353921905012880504108181825718438628024649646491883849257174873382481753171451432231968954281985058908111242909354802165430037117757815759290159615513641596206750725857894661298684275857264663442125262612274760740998255564867263088399785590716487281711543796454455526144253382179731283194399660150767041950109167994741088397075928561755492261940138893034374744458764146257765700145934329715235212504661987211938816019660583371575916393609066296992400670793174251244611131870565836357014418023674432042374821408740773445301914604234405316353401673182162899300093834412834233621082633906411782450619728016838877257383644049290368032938393017425280564672795123948275241511232001086366728041084483844332226236108862108251661451955363177555825908352410105846674017652135381936569953369254139976850616371870048547300860045059095670347357618748571919266531608248689540571481195634928458804050914408336411095287546925910784123555670672716674424092948066610527868505833038403512472326735074309967176068641776403250883678862254826512373793038310086322228482168323133013621314160714568968607857398623323263179936181596480589987063683401074753044774052187240006413832132978456382126278694512167235144162040613864949074547262731876105594433276365857612787792571608619162343789081105351106921520821381070142165383417645405161844286401687394700158286916241085769227120096868294306147605301991671223375659015531121630206441970796790904651851675260982593758623263686954119716959622018218506429261374399160190355917466745241155831454812256879691580247741868182395461225370156197137384018334480291800026601390803721890122260438286689820891657527803151750940322086785549267500125146464458835641127050699818859250173151584733866031593421236627464904045380638061185917098191359702669900631268898785132842067685648251650879552512366861098814179907371443826477390012015255032826371127676235944003242523332017451858512165581754348879855291175908394192321119109662341265504115836663663002893082630764657007750832854637244778369603140825441874177627274530999685699442988957339324180849730386699612878653898183337487117795260979396863541973085959372011649955670132743775107357857986509063226660816711985337480992521458371397259774536821049673209860733179021686865286589644170472656652953523318113676329098120474765697882687682628783254314522659864132967964966679926964404324100875607935227794317041730202372945814478239173589540587562614989207887269976678122064144534573363097394223674841387456490201769545318970013558687288208630243685585322167780346699147668153705107442765037219801103356993733235000741949640141966900854161775587056784280295992262555899168679957528449861363048923429805244922034906388949268265763288042612091121564166388440650505203077138841111074106527793326052335946746645777171404593734100967114349150998647458192714304038027603622305306006118355698780055830017981678541298907266620493351062560403550448469272429966207451766652154285098570824950819051824382247273527652148065491593523459055985493360941196536522888695332468337919625337274358703984956694399875544084817723580572727050625643031302679700006556726404538700657762334755533204137051905066620754434872707406575141180079292202389871804937200877421350727021544588549385911403992567745072390834031763156875181860255943418801762364856327057723039425122998704467192842437810627747804197347654741416714581763009046480190995565874283799511246437568129702629523682216964125841358122441262597700631981826997574607170155493864593950679148801874777808212654937212218654421672302095594030470074810163394753433323699444314245151374030849659479583405905256582503681553131424572804325961070497818211633212263792211484710784522728125162541912170288952428346474220945213025453491851763878604810137367758548355023497626589488671111892683497896520822568325964746067682819262157302381501243647524896697392061230194398510548912586401206367242893414407198663110174318610669741848346953833926084258061530929346224022315278143473766400592446573660804875004169388036937447152749293987596780586195357375425311765285399404314501065274588192540605374848309822117049168150448825691714465514328964038354531736763959501848629164580190671976113726628800124695490989495087374047184445839231162017615315310849352390114752710611189984062810000124950513276926256922318790401287317873883060106391895417580959139257861585668269895248515399174639177078913922018246668077362330082051500554094355517477522214195130250307922886420189957243127923599722160136002401974753240007210598311050937112561017671785167557327874584202300309787886951660688457244558934600528689111451608155717236820458672416496919573428828471204073380764674425489205672017734199452944128627410920727780124949242946069225289239372574114827784118594249331429306030875349077782164180718286079291058047705013114250375288327998114639025642644622710324125051968650198597454384721215511894010711841636757129923490136790780779531873363008139385015687017903271019396527246140521090418650283886005195003928392026206005129963748290323321143940385119868782559177330590686562149319115380993878171086136113737126114785689005761118638549538074193661293553959333398763889839858473533070825767312805288852090460578224298992081281859469352149297166208050882692738319475408869311554975931419131659801698571530183152251029684335037566721675065749268323923166178494464441640640920140650262675842911790842431250829720519825581165716731934078133258081030075042832816048933517683073031434597370950621506329021572301870169724484981452634081933016761017118761319934448062696489527669847272542858365370685890859188797196189838442252677901016146481550853459384836803244933515397447295769997211229824538627375439155724437372284231386123508144148194212684752883558375359006986123368104199472738226337764660237059608874492833598966597812129005581087182262402269276702015295292731346940739910509524481474846331107837828043121445583474399554449326684351057421681202860559683358023502832707740361521961789383181998055769237915055410361477335208029718704587556565702884996297278080628926250513972665128638415410356118926745115997136070720288912151920803060939186383432308407461852833618427156253616566504085929665679415868123150510081482444155242693033856331653273376193052798278126734599907039263156348851551933217341129800077102780713637261610004349102012194477151784600745326608442285958509667357651524814507976053193766585483544278154845975646283954633464614076660951723060729753209753417560875880710912537709463754177642516761423560660879398733717494247094493563559638350460969274726592358483521423780243760349826962287648735028735938115961928282210704718588343066738882793398748647131041088937898675712665202549127238627999559677660922266536900678911603586108251539168741410181033701405524224521343038205448008353347979314000217048090654478641207005984122317800199528267847739471295328737326074952652576149971962006751664923488422716092438217937732557489655379086369480248433678856497167936138299988255692276748332237482902119198937428241177791983285605190285986492299562536003458683131402020161126258475866216542693816759497372647288620265439672190966702238309748357175664336504742735123596968333382699802282764339987621201066029894965408057268865734095285041483087786684883901013744553990917951700224714309429148839823850437061854884817378926229438127628620464167257626567885071223237436834439185839470279151252033536796724070086406007540019913838652171336262231428508986333569531238556664677172673531714872142521365101551091962557054379899597518786631399625091236061367366212972613218056125676168682665354306168122625348843119297064871200980957336094287932697359293512323116017823023503174595887257332323655975088164258927291561424983229140107554708276668266021486113169339609179539256325717618377006762876551516877365967332905619055828779096847777064491523570826694140746720427689493698416556590342630716434849776142498450681342989911085068250429188729522600627485076183253794444509506250868005962029892879628017823034976360272943469993803929552018540856176901452268127003011900591188317175392777675211403532249000773514236580190169979650843484123605369493162034855636811602256977865232464408234072998779904082804842003512551440718537717797451072125764327377154564320239803298149705219460552688217491016216904284678970810130886538393350296303489439474243755017764379781609555715295831517489280971868084069807307366633843901726562835001107272372056209739971387895474138027751262575966070950078357087210713898132119599631109768059001352922763041605441159684477791544641901538241150595740252655361935352834732898369920647594493745363695256505571937050020575824691252686594261177283659027613951964727541043109385135801493826015355383588112217051093232862541288376033184325165410489769797739136956082571613845603389999274490289157373886535685785159502230430718425755875145591556172503938259776055410403323135854817410522925509762564138143708071524952806643770267498853308940417253158868100007439107990073220141540787880410896421689968366058352902077112512458127266466789307520409254165348640881580877427153997770887520935082792809909665061201641420504265217797073002860392844449230202097341031601376240031965983647599412610223423710935126180630538794435018837671677072211922992091268758224270936204096754670212641862811594863075407981187866978107799494585824972664140840981218695366605312381349224798253119340987157608934511451030000674144028155847273435080531121801844910727260377290150254291441840370151092901680841758849099281147247730783329870994415684885044314813730774626976415505217988136631858881460475020381574857963779976527742004869495436186123151037646896071527759675146002361355087179161020277868042246476461857201997834833883224115414218903444225961807850248159174603363324998870788612171507498073817067864126978625165894471664764544472294478595268237431506796296580083353390132994027963561929954528506770403532059751737319722542837565988460341151406674492184158819006174464307071217804178404105194610479619138166659511872962921448002296808462986124045186170906082881409315015974216352417610930997807816300076674627483874871242568624096689435111117491480602368277826452803191237739736200532010097219815504393392390043850404554742901766630184855166639175120093271494409056181269409779534608408002494477870102261377111515198471513325030570382512250482924271917139629996565440339817127682753401216050991509975009884169336737724455039066940825354566024967968338704430279603420859595879388516557893861755316882874746164841086320612423232903963241302952332395543787957910747613193822506038396895754384999479234699228283897464631913704956589588116897215844672978258430251306240938367941834848546753919216266135318243171700265875923762712727083158677689583935155245543825312364776424375922005058405362048228520025454268816311982188605791508826828774799847336707827355900326952673412936190046945631129508716812016405903932537569068447047518885726811020482959077773774130493251866203825231397633306379655619683333062161202660192890733650719562347621993077544712964964636092900494643244297148280227986814888638516501954386921246460054318812565331340209474655496050558343506432663891404383719771003305752065898982981559369750835592227637615722381150973704671293480076874999293297114918595118725713082635916886441008595985671007056476243447010826324453388484076597030014082016350605471958013050880174019169342198501132548935070468392376492436288326079145333610092949061426686261774285977476047662279528555657645194088539546440744487473062629010120744010408974693693428269342248278760248002867840631906140058661881426200553398959013805814097664056171948741288065490987809237379972218921018318784639471327220381291781149045532509306255210523734287556629436435623478570564697115508570546060176065475363542053525986797234412181160657920206078195620937536592395777917794487493944099519756959018086653718378520590523589208616018298272712054198209396260761806940650735705728709160801707453626376434470541215696009034097160001109693076644015391886344232167719148035354262951298220070835989003953444953744441867902776631784550521845620907530224984609548133678468670851868464731909556538917871440560723178001543467383440375369455940453017379385999196778183012972337125732456389875327841815017685037613590534539982132442909063721462304025553803554309851441285988581379555769074276175961844472032139532440352354393727498025647616120852826203832808517465827148788899993461573540340035951249328805944481932933004493678466252293510443279558462082269232159501201618994598142512392608261457892595501819914782738407838803149516004605118465516487872764023283873564661371523029400444377399368027237240264125561838388706450478091236535188197114210551716814191451634715457950446323988912933994559880790322001148008923071844211547032262873810481638696746047937106119946602297086445561543894102166403824088884292646009946262702030386852397810734847827630205132161882358356879813462263360478433086935142237333327390433176196906410085351221745706496929586066503063252073828329285110116718488839304522526099250241531748173471094133779774138295047466520220412943932048025888612792191573127444905522750949237645973494958759530857269231122985026753338180259074475435345406479840684285193241089821560943544163959036186643855494503211744167832164763659856007983937762462698006012265856912739554762530306233643874020797920354529040966228529218375216785742421475711323130177542087235936771197194773303577617155042513822476904953091875073759573689956929752939637700828414467362643465080163206683406099869867661370755944602347452783728764496445652165174499015704967774651274519288129332685791285728970964372593858823331799131958382948776585562539581391250785726244852202350906494423085339080684020670675124614314235124726892666059786628210140388349145488287796212303122645561191472911323544799526593661972490029799767224280544420375411040474673331882414115749668196147725202660084683189861306819102247809607205557853746828783627122500182328759548820488338174198331543493534183903427126462012752784437002851038314393255385156724655267149309203324837533270086699771953588043116457433474008083321524221254240923564836501471607083578415685931347568706862059415301183694308074848278237488107067481305382251195927239925408123199024060832128656307911895503698867312870112391922381898958198777303652426045032071578028458655177932808111443315115346916664883978166366931167963490303447520415201913567169047685209327300683491237083267734161040857693629855145749502608082052905466142582273105293089441470565547556515126821657994385763914280490310444298786961073619843487375473398866487553387891923291912794477094113575969456435626124627706601099461299231676843177077604371411367854730854376088604136258837521794203963209527183149174461712370000250275343201067320039931501791092626862806235007477148320173007586745976478209886099049247847001722085202049612116500326504405863124315868395891883091959934986616997566885469895785355735609325494506039150800000254141732046567582214865068536513061486182997640462016978393402738853090969605399078125406623247482687990976930891735400146180404487184099870953536673687015610941123432066486169879806591540962890028331755310703245828264682620703024671126403590033134861559807016541901104423523051235017408734840991655096371144974043446934897057160469178129537241642419287903611183711730345406125785558515919480373310385669505198662296777812575517551948537260460275735431464503661721896986136290613506111425582322819405792126573587987964430105511339479304159008293474954891122112718993534087291782606896893044139996164324068745245258999940367663375517169293406143283448032910614865522778685823806439048284515348425026861725593786545849194376927676934612957941880858955742571945762339172798088066398047799461021970683493296882575997273991202256419733786493999639610172348137113675370859684602031276191038585720673213030504207067684430764492486083269533501589197512104458642152170808141278039927293240627472254182786231535848907599807844159901301219059314479947226849779212928301655451505859873350973203080988425752646684981093068650396337215581187446977948045804193397748388883449835376557978290660624537584033906964894394121518270125789577138415514294167760035009894943829999411176518995931562607473511027159499802926016691933867321350834260540823422821192207595726995355711564811406004908763662236703501306430891103940977136661295401967575950335684429821290798437100576682137434648597122019584787945834244276742156781912774383686911594556537943187515066871305987746493669090184479337630739679799397233088597734560301150026839296270845336977422177612345635932615946269140617319966862282106521160953051104718520932153809172110629528332464503032476388686104567014449165499567723759518960473234835207974023593437782259314961677642416321588523457478468030051827517694539162283783618796429587991936531758667648628087137431467841781530261637525507740754838640550042261758814005742289566715397187544708992835101781954420178633382621105863974038436564186208340663225959789738860807270317650958935840132280122291329249511149347386550348798883876768866179424018877241720794450864254297632917778647101539386403900178244147473329404446755640203072403484563940702840922695857390181018277091697689430631495549458646117677645753127582463020044810456488826602926922945455401983752631373094013130466124882348916828241904107159643035730151735418509985287805369578253247951539200249329237109743584937337124170618945100342194022690890536441344687673314138018882503199500278491184415505898203031194466840266959997012330146220174418167452506247002063964832845248646501139313579401505442636036645707064249587469596768904946247562541671760861558416481076803705031113846643149685851638907324888630992742749593277660116169439851525863369744166259558640132021072430348846231062387913753060984492306284414129420201090055192758512493843808375538819500024798482495800196177874817254739062098468360898911056242288653767549446645376062327907232092354738789142284011988116398737126118865944680166342141093144985403289143173071546919844853459734419817066080006953496247968354658649378793918108669592175842203950919036443432765621359587068187302101400986037688554212840419116660286153775004125321141003409871975126152408750455649367947405027444380114370616061601618878582790576576600838544794682648023651846313800956878267258609781215239832356089397495967010654832708297760638648164450100595790690130762902702995685965830511188165300634574266131451553367939730844290318857396715455774389995295618774791148136219795868983650938652456029733014952592592502800010944329001371500763889715217834099952444440040701282711132946313316697368944524493280873551077016227089613953344446953524310505362018043958772156938995973191523335043196674366338060264130498614032555521215475605357883796206509677592204982939990870490431381636049840713297585292200533779596154447889814082210250617020863338211347435752647030532160680342777012594993702872909881033650182348441324392490127636009431656143515770342543426379090704144664538396497299051510042674893195503547600635305053309433749579713176078981819436043986463785846079271125511773757752779469467785668641318671949208624297862043436342564036904725295810606757446987965764867415994892091751393021537655189625513649869300677770968936197433651573550775606321481899318364002619327951879122428648099023122128837462207474290059673948229565539386809912683936594640677494381070823655664279844934079065812908992717995674893827644618949203433591780411696941098857964936867339273231055608542246083344678852427386032101865102647844525587216680487083223521872891140705958474071856164215648291802446736202495133595062058670529509893311372161696727247406794084697657114513653918317492921666127661047075071519553053958072193427401928567132757586513211272741636921451237404127453859762653316127129473107460334552898444150742993314298774163237119402674188504269256275897193299211279890887414366132750391491877469785649563758332195906728889905808727167278739541203606708112917060049150009065177837008422129599809676750615469453728886280893489405036353011613615058979227527894160898994635223904088892861968947427575264674730379757501452129070943426345088659726150749958957771335223446754825536825097988037140072440492931773081127375105442095437146004560700721696811659761794610505732343385948718347676715835120126655404552978275582324339507749930622138906643519921635459348317574075131648202646732909451660875397962716387447942741291623628308573851708113510049513224785824986240898942501843844179539629031350323151608112082028341590031864559715870177279115267017373022119576118369478392233675077737024233759565699427082652081234493555047298841779595964588568184628359081643579447273507358990632481482872181790934013078678714439330377239155975208372551404195476295471080451491781759285421946914643743019432628835106751934174117296549003515839746924843902927639138219601080809901394458052291278015241123210618824776999130427708993262116004030247093757761347502797394000733222064038903460490428961435228535023887152632755245500369001822740307273773817518207135599356651670127562102244178341945310476997499479016441632310987485982174723447314653461758429192313411111810748055841992136513827832872636502364054504486741833008435745975578037548128034841856103552948534384139537341468939045184361015982243558194357619464713607009456421186441456161002457638218895760962510480894507225882760367370020731456586321672826938771813274189959376521243791120429740535889969555610773221346801974198815830123964353034322774520653060569335740882356807521587774669813263042999438787042728213323440860076761213539724709256556450914148352370064123072660116984789608930427995765468914545717809328214524212424228396261055336193425920688859060764163734524958428047455380307458679778825227925368129311548045514014431343595035741322745642969862957217011237219903368050464709024800825149819288696104108674230264630822038432409212069696665457780971936516669489474824240594341103817935191329358541411506737746704304092328949558884077540881253555084233244871539522376163876288523600457472065347442978393186897255202494456618371009717078514559014941700401101992796264344692591968959176818558704440617225040538829150245335824227590963391196891400425400168769656816004038381505079212257072732535265458845685403199929053387711425088038748935384227782159895150838257340051345795464150960667592875049704988546038316973417012583720435086706125881341455229995852177010252255563357896714646059066490099088073912190556528696094208198751498717123051868848574507096000821397200480046481771283413931049184972522377248541519855976035945374379508341044777226147590042920877151419946617645923854563940058274820498548014946602525866392705700786711750542857985147824014932818172925369478805472729142642157927048207249521320421584216467903773882839254146745895420189412055022301725154501196639979004297702774432976830069827666074053258617376907304285745032152661973164702731404159860367889498779814525748522480756802513718332960584935812608621973807733183570209832742585056860547992968302017063981396222888025979903471374828169362877635037978592065094721027776569447631953888531605672201146274470708102512983127956409507328473610649126049343984257390584901427908101699986077149671167031499553536843208215037559569868341464551311916762014802328655838834412337369113621803329206606871712303195166148011764687429502296255204815765321655079621237209204861108938388147253440189937379927541840890206617305402100228651938572963320877373889189165268650257524964250229387861024608726133716231661984830775683111504459323718603225268422688776548010828731143670699974240155697330008527584574549500674000916101662495870796598207784545699937418861287226311542427114624878717358770877861521037062644685045292696926682222761901702266432925140137404969367282927915286116801929592804809046937039714274908752734465237927639816550689896975880343766819023758575169756135077393730779062891057411589558038755784105155054097124820006769889338759753568619063172194734945390939594097995972434285714630069634028159432201232225577432357852984505339880371533675756552402223598868664007002226314581507891159125723033247510998094888006455142792179011514992434236143882337215477494185035897222819673961764014658940430358636963015612160748171105783487532422296639981424647242432040415650925193323131001384313267462477447867129154316974177476455385361341672795926709965525663135885704513451138196453119354818692489281652887685127753901653715818613891313157258232486439843776934300428884846019959789832121690257387601454159355261690628788518732804294173019444907932929186033710586733766450221788562112877940569527723059976643581049703430992858141445519811473960047357739037913856195168366694746498196782887459064234192633826803298624044355986666442573552903751892598274093553328083708645889985349056031977369120058864439903235690270146218524029487073390810973503167332079233116715459641524650333526782453696649339498205743113862422349808824647682391369101325199775517717670026500432105838121058726791994026295513877978181072616843051555777196773834743181202925436278697194673269636685703832849969133671088296985388709001837023910578900175705587820966395541263718339792924537118862710665321074773752359344059667509250325822517980695274832383878060932468448592441477123148449867540562342879277802684508911991422166042918161341832296772135008163138967525511737862562247444727747987504888859395887557962521770473499969093140963559932215907833299853994357667717313397513606104271311940039144940871718789857240050283177077896748134731900845090938718617885946029869758855232166772399819117156647683950632137968692015950925273786379580167901540021642968104694447609409489348638183403756208567746292600568627512362768444804965236821428623289072244132092636945801129123622229461618305833414181468448556528512950098694354916629261473298997740844681179866524635323961297123295654451408328568832667122722411280884389050538550451035849307392724347827736206338205540385780902285842544677109381494027495579692330286427311850771537389289300910248060322652294148056407706769879907727422866228556440294566721518707414136950040583800326656535874612327729319763408947463270341472218561822863181389330595983486941691030070693880519799006056178405314927212859111856620698538143117708634142373726803473818669953741393625024690362220670486889213894081967159423089663792016215848060689456316786635976026417405714275216262358036153037178984145629669691903210916364417894814994579336339465789771487912184278376746921707224769913858645894241074869847426263137215657080002201184980994415363543529353065660401439738181411882522859175291259691989663543341788629490144147371205150028435339199422116489745936912979243743485246880871617088503598055108433794578418013522923887784505788471265458272164251986739619987653181819486782383069499675641813598972249490339218644985446825374971545988715993388054770819400393262756299449508700906452262733605452167524839923815022151559301626368066270608513429715530164915770713733699979047026034852028857189258311957144615609498079886528820271043136490972980411988992795228739903222295333284523294273933061188271264773671731624078706244477343552295240969097612836583140152170158253243743152317203516291365475807810925284282723183537935397056214148328867537120028352951751115703242933779828341648070511818718740810732536379728116213131792472533587985566955111584379656463318891665084586555153528918800159332706738456021010345364650437168446600194694999720646541634776393604475219703514077001735565986907431837518340800724149044433468265808074820631330489542947808238064912175553223939295846555074022937708934326738028491061095047036559603429482820512885162808414467530832983732834779389731875936125776152152538057970015541255453444656022010690680759862976422371879896172018689767922843273376105832378445210335663261332611781814786318826049141671891370031884887633020505234245475180209553016444116347866859350854830701504602028696784745991306524519224478239355406515144162391511187991186749945396914427720227395017850190077644211456002932413102329657618634792336603806423905535392923518996925746630412945097204747702652900797024329256294802350176399068744735350665543850252977470178522650270792818056722270282879159814825948960053389724448861971093626892315880407115334957839127495625959827086245492228296122274780492754398090083339600159915687898096040050385025566144257284526812561882502586272270243971433394638255450683636561818767609519665885973020604708733981934436707241562207857290320961503708592832790696251147464286763554711461741628483631016928367517076571686408918175497610556942492498690174725444247439339140888689205967462562436824427993317442629281270514182835078247342787182334391795042137996415257377287061110592075430001492431811661573624546065617019248674327621460157993055354156406670511121528177670321780130445839985607482215977454961481727618820695872266762577011837172008662961384867775157024401336253317937067433538317995467919037311378926236853541874978975186438520970008057553743556539576513345731281045035792648642973733030582950401642471405532467104124394061388041081069829163158543831868864011373663044625201571505236610912899997597919973174119969243337848634997758382896674925941224133982301664343401574661157762083117000567398851945723551462502769107749881116008132868562149881758255528306174052313808762439705117560603931287226825103396578843546507366882762493415533480288075652361576654636205571241342635797747910470185917600793497777702111483211014983495308965563641201052368592581803652500468171681389630481585362789868461220122792588375831926402378915137458622168854915648400964518163179343147643229411554397141540526694713800197167981002560217362270844698331754722683782663977285699095480887698736485787243656722131149564592487678461845193665238295780670124854055305102470408209503878499171126730826689420074747370755316472141934073384697696708033263099122327960447401756987189126632532272851426720670471718328331854805293579162342003835015240883472907582688320947178261350679747532797728821739863088375018866778213667053082487440815563403683086622102620640612801136543447146534485621241629615136068953672001834821001170542859131252967809119974211839594256263530489027223372067242654327616406298532276977221740231940287572578557442796597046379353336132688247478936482766277711175518650423245993740205270301125175781238852462523311276578749190285286515153096891227612418844270098144801334916899623012449904398613335859189142336315564279496787750698584692370559412108512686686744806118141318091558092436305580383548855113031453098228173284434401947274096214576427467367834249643844752121887940410230561781208880197810014539400658756731989165679345648985365426862551810032259750024596865423843251210311762057393564692871798496445450265704928339977023795879442982765638105604799664392420845278505963794571670266622439726313314217187638896154273748302921598617258473376732869044585053692317129600924019695437834623658783059433533884084041641134439415913981702640835371139143987082613139701365586047597001610683827312282527608295400898489869541513633194489842781119172033010092061973569041044937504885226503959402298073054572974071621581385349709890906991004654363881710690353895417888980066801724503382972776691074490199267101634940315886687217927106942800347945517202387811838334587229945121481487114778697059259939703312033441388643554231631328485704718532250270902718707329416209637253399971374350252617756397693802836184034286626504605227993222523525983932520591007209388702363523624979312278405854625832630050106986012500287046096177336695468769244408702557498201519171380545565613045282590328479764172755275999304037747239566392148335182176946511257501484048863176471522310444264330762550058528720110539077836331004760175248631503627277825993696104962473529213271378552808998165652213385819106690331400075378328454289180639861269869759050529755708292804847612430853377989712929762790607465562494733835472597571438890135568206431705664599680822203331132138000342309241376537531287756016068498389602760897684448067861729804637615200731954715461542694147842247920450452575967547588123296109458886832484942973708042876591339323157327239274174830223432751835229330664346139533308784946905753281621105552673596790514102878461878392121529023766244045548892679101867241010353613714744061106323220272278996341464462778034779006116679708787458804542588143968482473181531786554749369982372439489522697452526705863114966448026776835352941363024018473023611986914306608448308258924879184045961897345517598576881106737347481766817894638052551007357763166501214869350137051463039846072548606981464277212193321254722057651242008450829379874156454463034470482496943453788448236321211022147234329902389944805042054094335192443761940325224711964354003174985826224221341802439602031419242837823086419175316247467783982421370796031652469401803328860278617007912147981071463590675986015666791803300334604164654775174742134001127534027860664478594199501359418469126082438027591278336178868481875068798642610490452732428655059757189903881231259538761107749860095052474875624448281498579199524456526287687858176048687786928482552991299172849669948669570353836765669691475087548996741504094712198532084484081174211461828525172457706828967882138904414720490606990734810692807044728694941156282222720083920472181402195265105182999353484186251391744569834251681022407425948136260078161919006368262702093496993595453369701160866713986735928390839723086980928766406691697196132642797028267256539887004072534613895336106900784569683806271008175720286316396483455210028108657233091727321069168483083768410799892545915317081642346144022554486974292645551296548005877847000204471857795923796021907737815781576977824544515180813700200894351928968318527518229911385126477540133605295293977760455027763317417530223447125006177265063075779406659262518197712844038840143720735112246315037002299648301576882392440698733692883217996256174794580296447163652561985169060980848943105896362429805021699946198561707945918250395860848619796082264180488559099705760130480683781516059792209286670677379456305875165273588541164372430554716132945502598387370568993761799552234893357770300991530613424078552579314995323197483717171678436215152972745703202390864804263269753368121814798810971606046881547687939944826761012088075018268227244864607857691242509251625963378430837770045609006944978279350654405160246874835877665658548966282928437904928292807906052492840258152725342115645472445902347231254452972915134124766750996751176475340474361233041557058431869847430989632991582770701549899216869415497421168913455813760768915260859741893972497749863899713727788853078098332791247847906920450269159936198714676022576414879490656066186587351294789971726462162361119188168413425969769469546301905882286831944785593627239059554442786915640866664558556506674016339149496040345608412629742290535437039131916949400848238054518794487136956280345812951814010742970846589752076261357505450640914354009653221241010466270157449725245762726605158197449658550059881943502909446313283967268476832732837677730549089042038250285611678324450702468046782450040643239261483060114412251441225796211502542417726460821880179130029250409824456904587674860310653545253616212169799491190854839009693853158271882368771645606289968354317985588209187011753462496161363127217478192287612930937933590523038864654432206567056283291025909313402297510935138336328802630690382183548490392943047994577410452277004281110131824234724201416765220073108913788254804313962782865645905366089459235266360048971438758673429890820731735498057343531825492402107409133601749257335000531342750746740210359235418869810905151732979380399358905391333753524581327325656249913944010841388490369349384458357101927714450139507010518962304019251556037773259103169403209458243571375993195605996612213811163521082464758336983362786196328891208284794180354908468607375290949620279976764956549117787094714445028943077345594198729539301694693389537320571691109559022545555669222935472213360689369282429021910861958694571035167903533299116721831895749594167786376935808320536979342232927928715851327061730449514339843268882929424679656535065614333614087285905374658315275231605312849455278497386642664485719126443159699054650236490747739910329330011861516739665738569531094046703717820859410857535758454020020183457978263976867968883938378826902209390189687452014371711238832634655387553543752058762319824615924436036053822383050326060089910965053007891907075943306221606169953538126844297776119110391850437613700416353074683220153767433566201193520904890732959656949533581415097655263142618905556526525304104357265664098671613426743628327157533003803914951743082257480237459451485463321340861196556424132186038153676813636029251688906264767170731811587853908397533915263061062090568987695211831683540261526971827926959360851519454652530794442704224968481014233450509153787012324160001718969481742886603901871347591343664406465404379085232114477235129094441967664066080422200808378299583302094908871035637923403965333881488004344038445522207294505010658393515904990943708894662522952616888330180513438109644487245101467693115607238601157616379634541850047119734403549610576900180123081453075287213894384463850902183142054341120662748579417117182895553785889995039263522010328648661596901176145653834349614404274096189168395389962875882511949708700722393873815557613740754245547610374103251628962068045436353840234892367127414076928153692258974739618045527148944891965416531829858711818198682329951850797651517162954109323557353707015866630579925167909536721741232356156467043926406451716973608071790421804054640712522084525140667593540617827337589786709355749426708099064604693112628178345842183965891947977069048697277037705006040349886081987199020960448230395810208080929519612810147820138464856356635904667353618723964193370338575608341691854968354368622860201069011228189375852972007439775400670542435890478624021243748256281785354030345774181170446451343154052473741635579679354085426369803844715112396790737417876774110653008977761441184642578362478014288455634179897236893897192701494545377810291472605994657084495761209801730963439811827686404568908089431583567245310025979655722399480880665718332017226800901888181541136756186036021370670313703679627159983727727999837781827435451040450470513359758338445636245115350336098830334894107965292445368150913506647831604406485998420644705709278868237972805816225760251466452417181823403537713570781589786937759856489642151948894361313133305350068929047246591854032387263163081214606905988514690172884301492232574459438088534693126400027375780486544927299258008158079748234792304455380731390897378192465325468070840269654073691127334476729226011831139862810247367317477615927092391744123007985806061549945156665236178761338256107303227101997445761536143660591615408352594336163945705890103391778142367331604035817045912073659632239453959996229688126394565671960747758031266559301457658484689524853568611532393777266843615345516165414316423141950467005000128230672356383858446882516712000068623371576661461651346302534874342551399772729251048054077291926360942800563763890782657042391772455624439555239175053031602555515699926115275009429378756049204334647331324090583047603957088809412026849445880004176151455853261699873483394455835169519496772629339275089427230693741770068766462462787239578542829717467474489575857370020458968556239995089795638891170665135798230167297073640864969888560770694425643424607966011422157931562806048348791501410474163148621008731199115029182503296822792951486042878717530464162679954523264721052472984146747404147684943724004670962423425706470505850739157978220870279104290145498780297608969307499469312874107212202350101873523935090383261760486786980253674213015906970540364802834863414574830768161533588224125358356928333624693078320783700960019311153140299515683024320080518807227824776352457600295431435516808411823579697858393383211733568354271207593896423199441130463909273507491678000020909413801519243776305698996218710676145678818121459738635901640899678386442633229387972752684740768664439753141174228418471928778267373507262773111990530930469974376479414952860161175043236301437285248682825906797890084700292880149828287092781294048320348257247051969565709126454235256879338184047426939124187431804566092707182435333016169983706813546153941777586055976359575559731893380694983329930724692653275646071814170033186822854878910005403635289610281912092979583854392656130572164593982846049299948393358714943378655207535916024731479750124881993108908139448878971921177057583141938913048306036536710959262412555205808089674079571282356071925895061513306899331526273239672755769545159564757825721552644960329253791877320635732171765233435430717559649422430256621122592011327437338565054063987131115137607410549292069095228331501108084247835542165667599725240857792072232893334650869344996325439513150181270943683433279991464520948331338675146862326854132538302852749425894985117966274935154514262705005823279855828422216343396730207844999484686760803580089987595764883422091365396323969938496498524170102515221579964381289602044827544503842225480946574134576131257863015486471533026255480436004607697027248821740690938438253162378056247713624846180348545113546270702953878029206838030286125694720892726212434352258509910044914094191344793570016289590045704252975240592873932580929178853481734914795684858889811944571289850714474582514112722246675173966929725560006684010949613523002642671836384324494357258170990274344929169933757035521951676465220757145781592061714554232771285701546387101009568441694082500384053851153091937729312443932008980829178723956478538076546060717437792979107896897899510025447961360097979632530854808955852641634455229278710725990072929797588697728830427398232004342886919695611448919726391386910877443076504540684307136389745399031178389239278793761588739320075369923501250589138408885614904843346171062397470746047644833828270968372179718089426979638432226897695476000365345569076366772693819624416553672783483680129989111735560134610978418258158999793819728749339119870815994477861119899124993266293966334995322798410529652526016337266592154163942584192871388504900359270641130931943277386129000881340886221644089873723305716488968800751258737091172602427048818674521377161854299466678928892240731520525851104533491611994330151222933052129820590230417248360068457949711264915439605396553771286058070036672108154270841606741075389390164677485570309888244202658622403759894584748790068221308922477904841141828736490004265080465388100900542626266651960572237706557589678448416383720204232230999632580425456376265197519350810600217410307539617534666422255742081773613006342043386311475597480071436630005457576208011824284004895654050055823980531829041194679505887503650100531360101059691306549780839081640170508781377336607358767188335645106465149734700558844071375830407100099390252976044643547703617368731565138154801186148921486940204936307862857653337859925801730001236390549282587987733118105019545113884763613282229547029039327202828496340841400601482199884936643951667495603247453828815406573008442721611907460821581357057859124129683790020462876817160343037069919881556164804874710359454903639773994037335028386507143520188975570656506977026799336423748392332239444883463624115706147249573104504216472976361576496247374569240690488979499148487094681622308732059574460335090467601834701510504504444466485205707858707797999480801891461004225579192162369576252656919541774321582097367173209787168413270650643408007213100832987826100328564053109445565397171037504063811057817647267013388165146864410353224917504952673797032272778841173523381923134194103761211560871671317881698754614766500664587511412319988470301014904964261169200728675280581469687467506289013089119824745957185111084802631588504781968830022001948918222290725198045970341321383564950075747876782568297165017826554790553917002412111833995587838869212662927783583778612192064343073210906933163810534543448997724871526709241291172474394355042558944459655400123670562344443871895470792014103986586573879233089401716669631205297451242710940983609789294047730179463463669484319310817197865181884197246877299534772310599644088558129388382890957918406115609810568514271269488971524550997930521632853559873101113251088222868404891780789889319761033632235927993611850313715283538734396853622504399960758068144046242224000315819802892653926249462549390035017752978744810949505985292551631709254458532181676405772435226451253714515021568129948293780051420358351087231815144278787478311119061989204210961678474610174309415998102577713093316492290910063700961379583524751495572539862618973272264280338287247918212098769186060912496088204504948356573623780774569421704190154760927846599608218014112727814525023158840768195741841152240121444443129077022945594976524901448024823560129867967038192661477336355409879887326664425045159511783035017374159374874597183733481816659867563042031239901886516373481467236567964484685658753144411869461451471241633837998298013814926787548637590170027117894542488049712907338020159718542414303148586725193098444446212113637425267065312762940556514231522694716244879152952984123922671746634749178581555030362875209748959538601117859152494021349525728641000682754191334756446408402147232452756580425279149207629186332209032091625919999365890264001042647436390824945000378257349006019605058322909533820993843226876418291036683388236228069655334878403201495886871875371368775934271040104552431556573444055441781280492694199411071343007640501976390180925296916607366203461751370821124565762134377672331750158577663622153969822592670805538162490786289976945273026411500472210811857864659241979036831588180814914763878312075685908190950849981678344946395796129531043654504908686770175593485838867447485827384934204588030649257533842520126130433839961701050918582922581030064958142443167077553645026530058462291633372436274483863253357582105169186813975035876915576252882557423712670531017515854876665622084744031609925458212857210918979643693341407305488427806794399594015665089493383525552265550859237340901849841439952605157271117368506845940048210701439301238238645158599749221133649184674200464814374832324145366077725818171249891099645018655347458512758671282507554383821073552667546767346710161547613987553971160354667195857650985154305809470032119974834169408208890394048967249007954489874911450455821015556773444406323236355179383895850987282592589569475865436647227914646887610418615663960556182236738797678746000153989401158947954545789784863613474229213027886426911498131937569763209018111619104035915866847376086888998183585297785676401397443763826833390908569968773247915671818471871790386931619544500591449709308608741716325544403918806056745533233875363211471276023540777167508042298941816754301665058667902019153556204315197218481267717300740633360063089417234259831431681808902228724459850839613320332419487092129443571656964495430042422679355667284385193328719430425077876203910399496328040379182571631374224121909480219921960447844529930270484769508721019008254493046328298095824038496636287556757767919172916151209114491209372831472226298951002290392134876846022711376064921230354711649512819567981936474857338890352930988827815206387573688002702949503301872740830120444924886174737055397172631889470278829648420680533929426253655187263806985530869819507807161388608670585258752289641818093323057977129797124388822943277000280309751819634779638862539719726131061603713025777842173703304223156344464861305893051817516156037645915032961616837218481131227314583208002122451898774389401114842594173098534339553435939230248135349659906137216651022488657653688472799512735189820555204866525978849451597353646438854763587476570676012524331133628690960625756570320344426857557077399566350181153390273082601836843916958623696760119752060420860899711036352371775267276488044609370163610581300267690453881886226330258651793733194892146873398623973759240648897323530582010243814225579329622314439298096340432216890522477055857779305636360535928353841114122217947462390054325583342340613563833444025376973495265467174791241354727360139974953399177618539984908662366789554395395906032498751774301560510623103859840120285313685644650777424993148025052585089392338733294398660663175108193531987679095638727297386080722615531918774917456947596791401108744908891994803802152056409471118472929519146766702163101054114584088601552270124769066641118288214732122344015151982428935956137592265651234341538431766107950041798091957770449836409659196730121399649394935852126794407847583740190803119534358382453959440998944186527097007701359686732970994742339510787972982911458270440120018270174431864985594686648956593167330965939753192884636441360297495941808849632472379171165441374037226445563473832119476716549321536294606495067063814385960928749097000185727183994004254587340980156979570213274617813828393181937901097163151783023449673607460011606865394242069904497475650672898125843448491631640581777960641578260867270958015482144525472635928075367759796722542791444606474003188749178738547713716192613230221255895294635378611250577021684269191084247064446629252349896079677050278170784532379673077952716446080227105670714564227479027164946652144123032726943347718308943052068876325086298411917264246442910197368195913278339733536261727880163471792344088272706629918537680094788080170854182638650631097555993026878457379858472658038628338933814405247296465084420016128912386225918798986520818929258549625342195862319821233159279627409646485545498975836218917467553263693546843511579171635718213043066723481224894520404962665969084073146735494571166155270875140309827576616053685498544000393742719141887552512855428265582510622393884725011279102111386858782501335574552829930068754227440040341835231312472979989921269904364419262834087418304909107872938331665927909926896563567952486538775911989231144730554591943267777724663600459374155301228034614000982846596624542309220973383166356527631590851403884564893067656199673471127281929765819878144729406952332383146429239747079748063283370214013736292934477666020930992993327032492397837765497371054923710176026467882423568346448038040028221283685667867893907011429232128051442250548165643141355362467448854037643645204308438098413277674936588734360512012016349307071601017565366715170858188729920893172093325945137829897589485991677051216720726256871188711158962063729078599843197612245744491011001887647170726347293364621618282728085412657806627407176554255487001162738613604182049381142551402326287724699778024522701627585116433112442508637905198054831040579351948612653906328564225595142791477300082938407054820106344513270896746476576237815826142516409139229390055202207852205309354318611857833099480752231825922978451263129991732738159734784726047673398613082262014884489103335896878964517386354820710510872143405844918542500943586356515241590611034211364576575296205504768692703069757648724508690826389829408246446831957115797573964498095550561817672565841263344188423002539105449890558257830854621106344426505388319005388596366360761162091935622768173386975797347159535409949021960196404181668527285259165247508032044290810524824946575037406129804361670335612974070573464335222892758037088312250138831613810282357587121037755671569616053141565403475282738183303244900299668977248462156747740794672722045511527211698612205008109683574886071580596776822699732236550487953159425270560024284711645817911449531011589564449959315040480194705660985482286751635819838261349466738217260670914090732079574466955619586682589452308977444902833973142087318583004348648436387612408725417799389575400985334991818260659190013239906593711655706333449594054239628941998177466318942202956986331473563829143093580024939585181532590695238653030585439017123834379465778886114435937346246067706482636565612703180364969572369675215277991324887748954114295682793049481990503998192468264222235462006641072949384645326909162800692428812776170462030518209506384442485036739371862099020436238991915271162560323652263802288704004989518550277673934910803089182140204082970106962153878198143848751501301362396748067392808326016987916861328241708822708857280394112695905303742530666873381800777580323513744050492751048865327695025764221809673428212850933563786741280175399800907834426919662705056705501428944527837285575835801108393400152762144472272324700308269779951570390403999569669339500779141917621811514465789570411556183003342577711864157570116599783862616505699264342642979223249776778157731228702714803382007109975882952928309160331418093364124033227507170203369047804903451282727433422718654140721548018862011666738916601824031514251357861927346212220724968975441909026764822105755182959371671888478626094138911786278966310626391918052448750823573941157080211662045447752603898410185239441558673761960740730793342454034274719460083017487359560089398401248892337363579406275132224941660557808854778878910720636642901316977474497721761920931721369479549183936981248515886663091985749022400612411976797855265575565946303909579336747136023593112355070800151921879725762740088561482622255848329131858456752513977393707121155176525109675170025701891017942006579564663180725797352917857576156480158410820094670170105207995476863950338842457277012211143560436227870329179032904254638002805149004835055099133950834758655438718727127306766557357394078608783362341822523825128910736663680099612933629723981211952305059013496945369755420216267665605824978550086707210898128400533054735076570696014948526247905326721744623837891816612972464976720142868601900342741583085921521507180372174620374165487327196165287498104050808968915599924432628873263359583927924211456339241559319314934403016824182647630910722410254146811205958405698168460668735074124235536756924050511308700466616327921787093056230543627768990343601695137044500069010497954451741319803217068977579527622247786068510991672478962324986504446630568450613281947655005319737095470857024622539403125456723476969905317068226383995809072120922325959573462921042530440165687631741625494171335707230408796397688623128416260937597727963483291273458732270967333697660583493790540235786632471119231014039268903058044617590674963502724890526207992907304198748695109608090770529919410881545816802390503420073468448545115171235498634387200405653135117990932964488244925398901773387587782843464595224496605894273630511572317164297990824700448062658051919394070991978060686704349091605200574957811684842487791213639754653443135128660696770368929081058530585135835825131546509258730446473509724082666495712139466747485031242278007412450340529202149450747162987940774013237468148008655364521823441206173876811876180764304130492636979833193191071665803205008310633944270733374422222463579300837421779280788594287333039276411976093829664736516196138301550003313174169012727459978825242628444210486834465773157943689128997322945171455371547426902168002323797022835931500372017967777029514750930017570896508899616602267568007485144189025861679632512975046936916926886472770324757788279862217067207253155184029679954552688783061913610002523248169288665710413553926440825592160638112006159866686754493474430023175057117673402838046628671200957174689851338422094407145894352416790777191889071899764627387993521922391616824266608346565601606194892543722714415017930707620028924274335294295168811496368097676651190951951889434198206531144711721094066287085106199183689180254122877611057732351291027282332043949614333377031212217806577144219196186037273348830224736135958994634769167399431675108166248424336467303315683227056694490530086551479033551414281422846154553524378884647144936904976751479793559683825222907004752918765737088156806177721627651105267764108547850143150083644076227617729609792438633822077444475252799386441110834975372517203460698217297350795923827260626047723459557124533977209313301034696619894116951211652446686840782327352602500536844928314085006725279380007774958511871373914915444351871347722544204163558672992849072061911856852882888490399487142420202869714702710970805511491398007128829206515838667424170166508554084029243318891200052607667625458439235839049420113553812755074925555116736920124822263432421877190433224173567161850937237465876490322999998701503997633298332926724139214217078297050092245057113714340690208790191800565985924220726642551773301466936908965863280274371971126728390347532971613693759245670212087411399334511658891552139733651889581129760859449917770918756230132380475393004727755096321105439594049480124452878154396227293352988071307212577077158336804240713622101426549080581852651824560019036716026243220124769030063838505067045687501603740889451521683837010927932265586687441687138608057807419207598140404567078481856207622135604256300935717037153579949431759434885187431505794258923679709524002627044223653547526814336130136869183267401127911405069015594469296800833679393993488219060290415263673697868232575475605794228074284187543415266751292747818934019722120110442248686045088955126768824571063909243579989440242120602486652376819085698060794261116000920259154145414762592102364712299183937644376901883567909969807470239195296019777087753824603935501842068471042863824702150400872029904269682900609887547090413492012344671953805316419454411411087965040553395237315257783575091684792239455037732431112950493308947222091401541129128715057617523435166569179514282174219829014984854436498414984489934354667873622801324885533256629688655072614693176900813121101782962739493856522751935899277309595878138122297925678648406266134167138779745555079610345131769024033162551840090372552272561185348808154352185242080083637598745889226837593284478587360170975963665446379648643591831079129522896062434069891616465496107951107067902284996434920890763417770600098833027255162052697651193311408921092869858923906256946482415876870954780374059750053741291911205760113457737841423727747403142322639034658725631539389670672960793248001662376546132802100439361430189516586545107175685965038422388808688887997802165784180420622881861761547763558443580202834045839161240454423903813011271164622895873247612464175577103545298314423294948527799621765333543235859651715568338675324926767885798162118096912651668194648641306165635405139287149717430000394349440522797403758475910554672945698680913259569026326992534651675434950034282130556073377526433470575436070794855954669161207715784259547017565097208081902958361310372823842065123815754807731183929230998668763358189777780100441278540516186160447119916388909838620248042179444140370725659513107756580818469455077064676313159059999851436666851697354158616372303131892977466652301188145176768107600345627883052345276097372710708820031766855327624648680918336584130108348121601968482408268484118523129084023862698659417989952028901415116676660031330981018754048639158951843962024939594890128343530526859306931596235321646983071495082572507308244555266446800655076041198680444055765316676361954005786379895373017760306206744943611867968818596407670334890035448733188370426301222732954913938875323427754608776996909148519939177162286502932745719138182357888065258503702199529161902319542071374472767828176786042050868515007265553095245671033994876231722256026027605017904267978807984598244859682565563800542706364886199945000457001408924979808203726914992731486317418485663360213599003094141065967819301808730687613444522989343373772732199181191311102409355031547187329092070927429170841886211988358328850671513165084173345365935507645790911254191728039295597522084093235053674947883747264292452811648311590172427019432492103993921420212185755149118184886583467261499198732843417879701527281889967381152015611357111786262101350352903038047425611656542260327398468842366472588055329491287250236259095110592797153913611300435401313952797907773376204629440593030698070185321473210126005108631750364705351511281265597146107888860642271875894170136945157176560846836123516599733655393619761946567144776040726647452132394612883291894626997168075881541574475200497406016253963762415150932153228970612161769789042801104189524717188408641936092954491299502257927810402046323573010618084780555593617283970593842872404235554113866909784869013669751912029589755692648603130484696780413192502665676652658843702298192916274819278277728514451007747532650889934264610842467338244838547500548320481286192931440837648854578880558202850216532835111614769121667342503847794167949772140633335040487413634552468614309480637917186881491147847148286011114349585191001947570338615415648262874585020329475079922397728950957580802061561024983684168229197563415078125857184488496666421923540793150345767438994236685717619929147579554025151198676775940783848149196308409853988446796015111275201185925779632698702849922292785275218040975239956865179990567113697140864845893286905489980369286297609435264473199066222368606458448170373170002688299057173479105058904665076992601141035089631127969630922717782684440478265717002518701526729058125336412036772978987312032173094779155023636011776227433645513714450887075704970212993100257461715084705594505392399109134414745140414192942195134413578118930064727276896283722208071957160277985535990939204225173045740363691529347379317267803543479837040361156600702405662023750577681863122620667790711627391461138915149817916069110810640838268180633050028115323990509376478845083677568477526757113861485237470274500205760520958213632449675262774753289244720662220824186672302339722891745808922402373707754181303555034490372696186770548043862279126289648366220545051674166422163065614937024987056948938593968534321466673811750820612399293272769596145625975375467043500814469728865215218836180077820602885524935873166639774551106237645622462880484829954803108508374735604318859869125200548941064082311704421245016523131638687589102322475483681258762482690595713861319271009752371408817503182848377629067753131293866178389551852058195820854014682473643600924363938662694438253885240132790433163899467417979143986541972723599200975519821785828553954387361709321494380476797189479355382887630545979771534819713038335930302088415307725668245799089447667769598363657114415271016362036840253761077497904965502904755566728450415568726519465175018932747892224710428542553440254091787322958776574282937551067574430229477625390028300998561165677095424191748259196740342774932362439675794554762761734679178762159415903705763685959996066023124742936723099963428199728182148075858891178002633042135582330370939910217353266699124555453373910730512121269463972833125735510613319989534344555856053450722589603896312657694596636361998829058491219003448275923736234070938109039467650921916842479065535204114711960596074047125106680876727681628985569175574744708483759539048953478044088129649849641139117625873849542623048191325674472012738367967792531827450967261608681830987874914425508892964209530325094131727708095162693675827701539877329923350258466806492104719473424186467611373209035193690194404005201836741322513409086919948818997217938833323457194628789172220275290130886948215638610096978270184042958363922670214833886340400872019343029144174473372421561007508010097999658812910448530321840698811166680187216165968325212781662232695087802404353757024348506012362695038580415550949065700648337615959781066412235725230108670754176255045321329876577051010838257496958986014327397028637894724033531985116861233042356007210832164910924533071225322471784115654226309322377902441004263947906912215365828651270482261614649407187967270829722583012160297212562865475065689091870392306066086214826298936698184807716099669312623256670977428095719818087753019826897312651005677889372041761157246389147254624631146927667894361238579101144044869722344308541579168116005970340151240564191544083297362188891991677656276281489611890963328137635545332487150959001102082887271120193522431230629995433965408826100044342617676260318129521409931883191535046855156790423436884827541531121160166674788203133109911965163276935823503778469469811917833859210133822606931063916472478168682613941744962155952824613880382497380374135611016101149597175168341136870371954417897869951912747935123238343802185433572929802957769754267961317071184109893611468614463902639518605610557720738702287070655326326199909813444328020697700222015594841122026411852124599228033932078267001106242107655291021680564096013409114548525310050496120917432244923786555690566868639502599185804072270562028290742890609352144927447228726708636211671332092313268365030397510158960196177477162819292872894462196545518633984032923917822686653841280386295475827734422152812725524919243777513603952147695324011385184023422451125022796201610804342007236258954587145607803648106489163284678109902596846163953338828987628906779895779529563955540006399995079788794303719969325839503128746480547572919028889729518515668021915295800408957227544957544255439723748060590935449574162907296418524544867006419149695464491815859433203926706940964103900246110668309139124093548374202205713269733755584613761781812561575320956274746394236077262700114956621248464177938630249765660635108983495518169297979650900304838436938171481207578477079194945832926849133292983876925335282816057261372426970522048518690061185871622197370719583341500729926459089737188429500545754984911183198994620618577365331563295041066529172162897653703773272287357394212987528113861503801434765387368901906955218357402260731005797169732567514403105581204451485077398469991008044129094203887154778318974324934609663535869198736824863307358400805631835424573179821665105882936757020335747999787330033575093509162192163639470738878219035272152698461214534624171026173409182777767166724548667017385996515324545386820423619361664613065182409199314132866831953000930977087503228129598107962543035072105481931217036092531110253801857089989578590533957460680634258972361181607715701473700226130303194028152295429927539420380901243446994061819303346709896830492930442479323063845857282526234566980700448023936799166048001415515565129603642388686526110900813184929627027112669902805918328847783564897875005572557697136427766254943353150753020658151657918826037841597737713472521714962608934912350598049176732361560217885968888612051586545555613293637390927436394308048068616413864752735092714626083860169891168427009062576912197798242812742877320630447735375448643183483176142864394127819627788641348465152313354475811309383529548077305258409704541446781453971637450244499291254794806723117111486790991380216041224806845417562142018792405163993238387400077596028032724085360097793358337670553221645858014135578725457880639404869678262057222057202942930114369739041862293508514669313814575691790461476243130872922839445617175137713545987178028930505339540298207961797639543567848688332393008921252272034510803047408314486162935999172702427259088198070740190578976610032075955989164028325001360790397315482975632380648488827657534225866015266723926674324269937259934995517823935725064050362318041432403681394368482161598203496145077672559181988036672447839528325061986112771617081630131569654726709198476236680838125064983392222884630094699811234344713477619848900950750971180440843918682022178605070911632992254621950709468461329786363187510055800890276547209334750283552978941091304896079880285933098688650391372683411836156317748868828547810282262220121329468990712277000005665568566137543283532066907714389944420809459017823117773360542535754127165218446461046231930527036293927745287236774139297044393556372198203259685308680690398327767485576280549184458268163629277911727077190000867766097116901727281102723502812276968396482158213542269030063022678374964101664709415114850817015234825797345441964788543586646466583611678913254861616197809613425952705241891124994378965161453440281305582178040478621996783070786703003400796338744332363843894040763715819310965631519618503861070616121285482382951999943111552017682185542988036500940964754687561865176094843139235027221720905900348037009367333339716528741619942809674520425841154424725202152309041389505387851711845433360062841655635621335726771274914812224985885913418727354683299825276697327132082040664547561245015434068434250244827611398196293589737362123100731758800799777508692815756714216606019767786882426125211929501790033112548259017358080553425466376810381086138907112388548497674448490528230154270554871975689709834537438004669893967198976586340554320301052798302890942554725834768935601207181503937709246314524426211167408103875431842699566229049177230786900689751091972070363424139594775924045787095969881600942795203074445308698406462230664035245085098458740922153848206652410403882437360636177977962103288423668347118127000880396389261692126534997667259582338465193507646486974042915868603382066767970600244366857792005536953891812262522781287549409679682788802873013770830894648708623435770603567534812278849883764359491487928786157262975425188322836200049451191825451893572755933637476396353346637811147958425673854157665163974079174611715049909147579502138349483442676264285982167833527925428584951109457725568528079931664031229527074103421212973209737919040735477674865227534583292483704979604779191334320231865664628591708473056721304542173855796493042388486615366764252321544820856067312303609441862092097831704427565695510482912084410411198406489471994523377541348703929644815117240050007542182862927680563338145608684740184869782621221705173381008032507800286747153733870924531822883902473148386885275230183584060134874653399902717400112557660918805549979921264905328163833047117005247540316587410569291663358506532349181553690794547252240252360887171683046591270612395772243586874004919984329508775202410947331427713837649559164203523253185173913496919697342087330211959515243465300624480727936707105804104365449341686489694374445721660579506195902940112048502761968568140401663901118721174247273925372337197144917789269633921560288542404742962705720660289156632958974347618211989126035933753222177605786690292153572542222022428691908073806867392158242925584081389263046823132500255178867793208720746976377270205065391261439897601489471100630796108821812383579340657317951387121445873635247358999312478606459260231504508741000840476305951558897448195087291695815700510930712715503978176683407018087282959007743177457136549447246525404750272595255160462831382202194887612130553674231683594776025142115668388732030375641393706294133454398826723080196956636266695766931247378107733603412133350375271750917056949168652432558088436647613630911434703659572256760659265597319932860159826393803820345095449731115321766708706439841238748031057459422012501100873190844877063101832961435381370642782843612385289556606923317495410990094891780876583804254473786546759916215212328423205741428951278399995855724617049302340995226255658765988711202715659443884437648237466365413032316668866491329193413394362418372090328778473763275067867801289430771042781277639617966679142377766629591495792743627627999949263801343388407240148678686633931896004107406605643038976990038428996128460107904726005409117022807220674401327865573571675350253105409264101119366351910032095912452856679101872324095828492785199062659118253014169805110216279162642418568848230570475716050246662205711900757072519315885117387086004435757481066360673942271416318451248534439248937896898778758784110162639402121830285513230048165676005148957096622200693004685101640893558835996304560702344906637604436383000672939497159752346728320676416483613886298807172109552256017396396166625500636276227199786826181399535645013362588623853511221424772825634532751027085615792261215518173815725345486948621041676840809397190990464265758955977323140381022845883187756399688175953743309974170315368654079012148673257779826009956845520353059153968805493969702948949032938355686117922447538884057963376543706371618613138279307214637567448535695347994796550058508014338226762712841078948424945770416911074021917625378418423986435676661966011338364027580748151627608716656323727211190874519597981733518072437030376926751512221440310718828630964581992373509081276983493127989248725562905268993363020088574166415513727155216371381038715172286490326306890216718117964608525874805963078530987141334146869504807297253782163583642426535382390583587527066165815854850535825154824152861674962324606641775245495670871897623492822292458879757363789301723801649157844740315553539548240849866092358739816931190011144136225475789936439628224830032264735773792563414514260786292303193804265564058816249386545780375662085943974671982948851905973988259750087938612109996223370365198514920181875935384307616057529396562311288725931949111927609504159991699442574197289870107874423531051396132625195825689217032487661877879704191106794776089708497180622957223058816744108045198608067141081282944517679217674665436564567477375215402780165411245533873407298681257973385744352651399511466007460177484646911822247032498416928125450434771628774697444018786587350056963663795964025948521590054141422601445977781662418625871871730315170182285679769014935618558367528675193515046093083635558443246908431151751773100904311733372498342803495696115045475737144800884483607151267114261874169815885540393572811401961006416433625163894733343515141672496213702236998661922225364190718113043846855980235646031686336366665688269181447171654955795147020271718995594099490821197222453730422368001778975373390082146616296530914424851392459709696352670471664567750835516779066150363229522732585408533829365610568098050184924965303119332080301303810042344389901407902133559943751961892317397997128629705142351045730558591106026373300169830819281179902380069451655260473261280986574512555038606069997987826584845741872584019475012817124515055342273985929112646958098330133216210798786347714779627410299412170422387457956536844300106510329372908934881622557444873691565489367269091654338559164905869749016071844600748336313840177091624380207143254283806539107812482830674756426981513293498619089269322851777308795363767725377214123560514999807576861182747163224830305907267281556608447521761189239206269871904008828881018782563253145467694729664470697968421784321324488662972829984808747306345506545529835560292031998711914715508756996344055470641991760584941264875900221690086881020045325952432155455996012921204494851531661501936575757601906347986518154388179090626517132115624348163656636030232967483039847842169962612921506186748749910419038159783543661013373374438184897642275854492427695727986625283379755952295495053548572834502027643074308375356166075341054396277732492458682226484933582611477859942186084607623797848431829052829000093529221630734570437991073398998621107916280073239883170482709435294530441549172138622131983433166876995348412795585773567977430440523514359120688535980901378428517330168792532550893351994556565341455573955318199448948983509773559019982755645400331033883833720179754959220989554705360479274534209402810602982292866928355020783701947485266105757525319252011816897299701450651029750838121957784936597817562305326742558606740774709258548161401817434108397023465096178099586395717880603098950750220195187183984948150707473247164172177685783922751056885931388894465109335290620965950834989598425685548289818924236557863656736149225222303949481389818050001043748122742512280540496619505240085694175474703137304572796763530780789024679169182160682608557300961851991435608018854638653101043931194291800928445585518540863581696365117822240334900225270035553231554054574333969060274836960257496556277680085415929023867518190305993946024416169300091097267831303353165919901549842521904229466297188815524593743070385491183391150845044656841206861266740659577968135801328218355716014613139048603208900433955509093650201850907738446998938964384674584093991438294366107972802177691161817149161647404837114771429289055769755006518888369082488231082423828749997433644767452084011810744416897180858214139865250256210501874848949839306173392312865583977948582516924231779406986437707856666710318697478581917681886434703164464761015148155058982996023849405226510200132839720233208040920035506158010187051699729673181943741286810278030158868815101262930536457792068054970257483941630593441359678140846847053561190826896137868587952623706168856579231234960068320169578657973618457759085992423226739755585474559453147315744014033105491978282738123651845316616024419972572862752444868648263381029462088008969500387561967345106751729076555090032862422353177848418916165545485831545309604672385848879222963561414771635396513657435240023333609653799898117408784688847251625514860118372351341189325113267966379401778609967567603392053739624719142869436410772548789212093087089534469330955234903183947186013579326481224655515345725119633926185565128397152253870347208961015035887772600569518951443520874975149855991075310441005325281903307653582142333191650007166702904357413983852692616803208192409545027205151205474189200952743898712591201983066142182489753108976727883972707338526445649454608005802670405864127847722415202364122125029567940283753321037169450198114153001928983686787030838262145268634874323567449815396950603400758388343215531065265918653423038777958321955825785966520077726213193560710908532304623793307763240283791664511368108152967228749324095692016140086030113537330372716194589802701228407906572513738580296020278149691037521239171907374628393532509836192789576588855316520440987506935761450817728159751496100374214067157451598907818080819087022577722607386911973493581285773937697913160593290134678207378491712689188625591083716701200838490980889814117583123810386424172970883866466124176999402008783317497662254369520786123512986800231054535451888533695653460702672221692406799104782006779089894130929994128696068822698244778032251178183713203660249978121484108576475295499622363628651682070844964384310260473929213183059293429535794137544662109888457307636363827314394608084798012032164979459480933195059955245501451794780852000787333075169560753532118178141777795359500013222649699533587603400762050437750234813249072939837861648973362415068338010234623378739509564389458223964562550079936834395622331929735555503510695772423132090662766218114822837543106825650203988224979174703474859567158009800477879675281577393926058788572524446795471853171141184634079660394956572519438218358821370635811204003283008100028112806003182542772380641902591209960812618605986656660156425941458719983301537952696170671245061381363675280028197567679300982695906496323667394593773974654449559974276575842777581019970120094077103864157645484385643487444608985802339834683280819369058698262905474825301113711085673877509344557240733555470796021632710668465032670479822909128182339710713241440144804590873810050184495852883204825834616752879081223926021559107964378250807678919168260152775036193285024125706366627740876265306314879518002215777054443969667475947610205489984941264283131708474276789205576732102322037048387831681429335336937966631764560408614787208285161954729244777422768750559055783679433183530135492357622023553645274348087070803665920425653289421254564555764704077301528683292186909175568962896345898694097633293487266221085233031748189549573604415232055315908069320080652768092155976946263554333344006857138927660836478524520294181469547809998269168838653684648494769575307597027364814179038611456097030267517985033509777323425185641027138794810044830142807578799541263138789501919915163542350237062731820786624793029433351172334738617006219652918201617075359766294574336512196190745595659501867243116591393669686874453428254291517184217196176998646990075580517818871771722764710944015537442197731228589080585719523504804783748737758214303714747516480745525915004068434508620285416423602232631011810535056124328595022974706577418983527963734703996504732141703942176856152856048343511417552466136637557144521523163774051235549023371593503614642493158516369268118100169656181368035432361428076695025327487579906396351832786043523079412196544542538920426115207404364651226409634938642698973842774481790439516781923932299023029899999370126648254919954319659344642079595417196782311223862963499396383673043515883175735497985746269599627088086679883272553672878895414481106038947536684467676108798308822962670363003118205511125134488721062698613581699397118180757792561102938567575294642980317162561297429097081502769839866648410032380850485605882670467144475266760289821854230967995247613915960023429316577647152651773382429053011629818999077428327351037848298694242680488557119777738693841883503620764589183265887285613815670406121007790510668271287537305461567108057025379362736242135925576908302418125772950069290765172496422858470424423276669784377711905396662184861309361606740754805154622789742296654191662224805349979650708561708853505971433543924196450371513373860094117479616291263710356662376294898182721770006409736364875070457651484035255748845584230986731244479147995895786889662332238073436685882646255325614318693329089148785807391605913290923820089109513096409967689776933282288550966714499159434598725562320907090195133438042642283176670794300901546539606972414968434765526746422226912649637670310515004241939217330997886590893309322664540614050793377422890431432483685059213299536959055920613384913827275743721241092079764359401939252533364946741544082080638807056828732859410422425857864561038078107427832448305527974892930303502910749945186477229960711302913971844744690730900568104836882855805007289085878453939218439227518114338516024773159808240176458508758668466042308978601124355346492183862260930779733203914017475732266270622014255875904627372196370902891972982610431466071229405607113838495620918659484444296005776586024263280184176009287412067991662020926627765207578428907747993419632426941425790233921269808337492919784375362156487319040109107845609646716770791799316943736098859434727059325309383970874956127888917504627795830069805565094391666545345127316356824650077702904104782447614958383686275876358848431723472997238064509901404256724638889944320677638293214377768767596380211963085800460037613318865146160471757735962907495948219832094271577228634990605482839765874490295494271242996925706602610653450488911651770676673133656117651067018370289691667746612108825311096562831796959650884702451958404265292219560766956276683701987238113594490751498287002390739394829605412150906516169123760633507602340339178203794886659319662241399598890418126086951732319429338059473342511937670974099094054343137254772768848742729976074430383301315409430907514819130016721808581610084950445279428559530190843735112791147088346604785908829532333584397203231164228737263562212349441478926076064927137181851985526168659096897873191283593757638690141894527182073688866402174304663963550256268731947961679608155804781096348974177325543940343142264424150816997714290018679860084178356852463064908652982795614387555583068722227385168596533575208767999384924542599422242861537089276823628481003935835680458012067959484776882518818597003460038970451505002276988504013839328817866192494654100750658970448560736131212285996803565570375320816397534954182258423114574517263871881385009056948623276982754654912513940391505465904902760925298241753824691524753057655826478029991460489879285784384098875788060515490421107551508462929396328716868279857652679004862104665708395560758270573366224713918084488104391746315155486649268946934403208589107230356816326505268718683782413608672196056363504922585918700162987922141738252855115551519646219456512574787052042355696354863286134699283763027938700585997113839045136685033853821587531729079775120639455159922195295506714721935774805122058768914435887978754575318739045522996376615443616862656908994097251102234079225790332441913148813865526060471414417618497995719199872344103166921984822717064088501465816163937437624848402025023977701561517132736245103455675362183010310945724341711114081038734459823659253489110575294190753132153461328137815388435073361329059627204921290284928976652021051135676738113301076633594373621071498852975335643864209807903378058740601374208914291586554172561609409634004843519425863344760069877757410646255067965252349932547899059354012124975319357906986501167152536356720091344768453198526750283880121284241683820424849298970383095356063678675043712153237678915366619550903401337260745861841894273279061765307514409628298822771934915768049024023913605863610129825315749248495486758173946101747460733546817635937442076491730747520239560480233359881954732517719113322646098987939660938408745220116609726269524540279701928561695019627116838773907596007336819141570408660469357267432822563694041075871704894901212191940145881165753055142474524121342321908521303899512621867395802200305213641564416128905677980966753454713683368664325761689039355495509665876448723043167667424222767182691552114635157635172353421502716784368912870382637204133528760536546556844325793106324254950152470627926143447664971443486330977625983023086940355756013787549105733591316058792955687493937194222813936906225378131314778691277419888566499307077308518847587586005746403585200976128730357125629398429310968711086587997024651929875353614185319730182397509087894654214223389931426798972691751739814135705724810375819611085584457258692220460447283853482735681317641940420540908654242505065854832645482421175399014946342530051467593972982605889366270680445254587943871413383798320206981438815953877301323377782740591381668214946832835019023389315629732855417136190016668288992254347001655822398416250307876989162822129857310714797489540701033790641908452554928180993098407858717785196424149255033735342878930497551383876468382022136258218929262623944234170430828322661443531859181953702785532058421986190672472490592662378518596971937341642538208867027148176851232657978143571325839869219109151977618897656109043912079177105118505260115005636784734024125444508308767637821973522125071081957564992165101454528473194048982585233755291517136648373089546971284352503486184328652258293813655403904886702438307218188869345254171326875834081205994260093010923784585647398676560223713460734618384378059359511591339005280049286250854445053613031987972842603941475863761274323441656419102572315237607304224827539456514522068634081178180655129938910872055169713666481881002987102132114246563006919012726618491738918437678111263641188894620590477811867446210125381469863893278760666666770018930924325359507335886563182342454959710364664064730855540549010566889587571398191104314239566520007147447022298477141761045210658641786424452637209484378985788895379632162090241870841125571693278939471850810850561772642016365306033792922081813507124095461655939951812509916983344966433587061156210851338465214688428479147851239000985918020522552089554323552971569030484334899701487880021582033277443504686618937777351784392633970750718652710705108031791820988712313052363615088255483648098172152682740308671755463595440553714693382760140417055466933134421979734910266542281722481607092921457101064408415671493264938832115330362901995628348534243612250605461387565448719479164416841186361467745655469536286798584953917067193544273393584449347053650941247115046528931490502656443475545791838297640610110333337493605088943055788475334627133717746816459574400168815756538184025607623885330437594184085582959970951284740623750578970351318096757662960261352249738174833621647917469708351833422725300458021313702831173640346235829602081105718926053930938979162193871249894418065938885950526222530585529767688969822008194931748275779097237642959535038166128626978419023893987565180342968235402649509170146774606208942054726111630337987721561714122829200298825720165375184137045242844660687408362390298663039346438046437811186860620988661851216199859234557359658881688540922841133750496298684230889471885388295110043484695428455100649639908707219296029898776696195294191381580328698025747367118831169247054596255573801969229160067987607071297376463580253160522297997085473658099788447529560590205866511955749578128293294852876055767124325286815960235667507101184072108353319362315047483720401272668725547105143084671407384699627860490528215944413061802348090267366843372351681286467700598957083217180188001991885870244775423563588837860905611887334525424114040285332090760656756501359012413456178165669912099939563035545161377483198754290532737513076627653782586749985234596814203437123992806625224925833285922974937349848904136621384460844443487300201148885349491374177388880958767949096912534777033400726647927431861043550461418952377261433635345248218033645022085394782850403684084685506590302284969652953673591484564594563695913778663286308698236269250810782319469420089905150613137426101033261226245155382576020399659497448992581018183613390404747234760720594119356057515147726998926895912229791743215187721028071904775178582910324637651079386613787178253129216642177245249778734238270997417346805009196885600536729220686769196700153491589032651666446843505909705650295172791332295118562193959498812526168449636736116478970918415281379178999863993473890853681706942652796277827081449746238043802109115299959972542366796147462182851966135592324972512860607329967557275436826064711508632015671730526945489831270947198305887033884343511300354816186553705491539877419367429937015412334869827207950335620348545820132744823418947258058772792577442591559102290855620435917996804184802257633038937009601100341810644528093141597587246253932669688445604502744700543696155338903960481579355615273492703811989164076539678360567550522069833266361654188127682328395465972757485823179332589141651329317692805139186406266071057045841678911443284942512574930448273937560864214597940560307748578863477406584764246582491865749621984942007191917940260701310743732756823083959016350832675339912727320964016647336892118525639875006580261815298887777662703788985022126090994833566974100350633517807240490723183398488314915738247671896372604469001348707553067171676578383858895685400358694947917827337006716004616317066650628816451670802821016219458813232483778177639895585728127064189138401334943926754158233652350345879404551692434036765262052968405524818862822600790311521130455124552318726035789325340967247790861581602459100820416680151883887506619337075652740811116632520870176222456210878052048716505191142598793019528820577151015381112122705135317200845679042619886529690838671665368043597185134165352748683840879874440342727489692080452610800179159106727934970788141031463634916707917625968134428271362904783793949853049962027917536781930472466939550065113225088107530202263324180077353635880935305626483353291770066121908000775645607852254975753126724678256643931738619091222145513404971314277026987916876359857272737268990045910198923083923283186757504169500695586355383482439087996914989603576929236737383378243582664198597762268056328679988445269916478107459322979490541033481925836444334125957351789249913023672204470515838043215749454588549916671433526335147527879259924192909851281289177065935693023081334136776005344765092753571998300456675240748684186818251407972911785676093290976473752219597961852559996007889730772925462086083217899186690272776347649325258953376699895895717478329912982038763434292051482225071615971579037349074261997957000971379999765811780767243798587289448576587476895246701639743254944107308871263378290659333998412807019713113613861249137638509684377855896370468128109887646266228444909328081416450966710900600648014587371121362696604439864876726774414330097440797606254082304961490536951907631167908733642729496693884683235110176565938909992505065313171025425210930191220927128740064050686775293061799706026185358617184957933421099021920614762515555999351146676077770072168572463649813969099217491852821217818385912919385064148006142286871802557502372371134395828685569241071977231396631307648998333042586968932240271974981853216058364011041218567608280789001339870183477015489185984487654846576378308426976466437179222379130466286290454012230293260732109303542819300146261679821872306373645576449353105240814436358135249978403230320720050850956018464116089579265824407508153482298424519834894827486866184157608340360093010616033853359913814371248978512509491695647199012567920582510764991080503901381091219459440579760317549939771916403555761080406008184848716872189313726428616127610460262236464354158776203889853297701001700093795770022708112931987435449517531616705078014755035891795284424302961398516808977215126385354672053719533870994603039174218174147201415464683651174596995997970755525075320912896283378550391735489638913446853995307840714603192860057706672691896253646600199422743748425006732620261041603511735086071979948161687285819135426198752033160112317108916135193882453852997517259734822618566283248096042587716449168927412342935379197037114640811052851597017553276386090011227217221545950708641617537247713937994465969181867365178703514224787575672785292124945775566271163000289899958976480228874705363108041850894659667606017083272751490230112915205206809704761954298178769185584328311713143089310389628336038694746496972517949504231076306636290824147529574154069001345259032699907279019630435177417156447721234349465898749386425864267179367229549214661132373814673071272805015293581987334636927809816557632939536238420126152272670661811164495310235108113829241000676402816438665962687368435651678000799087939653475326516353791254521425201015345248802593327091031833329431047954519711781767063599574946493666192627919592654980792048612615898044349506134699043988561035590290297634982501702863635596734622582338740760821246169554781832677123163476608438090656900390230257160645278636323688676055262571028473436551087067760279223323192100197817739201987846829160228472850098080285208852689923557956206838552573946498410101942250788714251367922287417017580689644697011756271646906360242455959252988874190810760174735286760666232645688389376635748187499437088062205056956685448152465529640737412537673536588100990483097958029349943433661562073425508329589760283522448177270523672453080298996180107495137951897083016460212597050980120036428241211275459365143980586219238058879717494838266010031713379261652213578433346984822755869677602216475941197941705194832331343244880377883957372609334489161184499224939119068178012258325201445072793166737308265904021717469289118742124745039659026074780549484086100204474875176227351265586954379418877876903258467058266002732799474803408263248906222615008998237755678930927837142865880534211044239987459882426826706882275685491229439182858862943006373606966861004703128395138152320406480266853583775088124557875966812383059042703965399557032269560540347510158215054453350890800468656607587266465579432576560636774458556071999638676942811223172698846705398488458507965445439581284173323532679990147795808419767186905001762334542152932500611885251607427871114788653061534566763441085242979222294883812790208456324534848663641034652911307568381862662531908334447919211376904276571887087337915543991054590478841577062013236826765456082077831839146088126864527131667862945861886783138732042596598464609128075119296386768072865344050779319702148852551889703483823499681208082818433455022426845289883843694555671407273220915072162957114822195993283954324111587404358345988375990825085228011959688410842604770852129006737333842834828726331655671021731015936935088112781018933542349177076068923034012359652821811222455491232322253489291367446514279001721027586566834970479039054526621344995452148350892989109007914311322697080225290674006929065889835202092674281579840918279195673467526130276601850770847823894223382271011086902057437226004426191306859060842706271524891437175156481152164818103492899273882121286408209693459351981035943331189816453621836214921625549915517106925954008594754128911805355476165082785472337386055721139971144552048166643706296698553140661404112856298299705099757692850207753321028373294993494097949782894270849301928889385044843742947508088255299505964969303209409434103710227366104132749540437584480228651184686921847789424019401684818272416583933274901814751857134285814894275793236262378825843263528242203727028920022557752136940882483715355387155138886092532894954344982715445836245726096388663091632697814051171802799856709395030629533823578296324044343663279386316271769998703248734018673590952908775541705954937542369548334320638848628986625846975337610232644767036921616516753825114024195306134117721247598377734487772642494624979891268788535170966498749743093023618103619605054150589097492263971022713690854173971327201587233418598345857139503834615976462404731470873459263547101019406042415263667784761712234790863100492254575657957598255325127235685906372272612007004330633946214080164343048308603794099528004340458855909717727143075935426179340945239563510003737392689473849050928298003695612757975249458631087935383336087403216524969417566256567148056401632049211536850016588924063524345885669879244475802396770573436028853413237892627412180734341882268400048191603838580755961248692197522631579938628410663760771302000615150599417655916680623994101734269301390181300620723568011027266571589395071369051291562742160953025747427020355661580094955275577249344559587915712864166598543675591274863930568084848257027308320148732368324145992806204774519882187641439983364739427442089716245650148117350830978870336657822719671147640129021504179632151914319239551940137561523960607858070857025540557175673605124232328990464211431450336622155786367395342825481711431643816116218619522258045566104107817656526949704696910396378444360623700659687878736501068038639453437916517416083068812117102430697304554786727884013265317742538598217604862566365769561157830356098856159445079116209745533423661929270131661170891612083554635502458232991570844415789796995173272438183914147986843496180675516663509576969695935332512196379123888489698535298618550169038223671200461261988284526242073064207199757036324313261259899940745666894012266269095179470634508855673578291925143259508746133492935369236722794861006873146514164897853458720507354274737550143840101825285155465343571073876018334275285587639011973456723995177241988430605487190993678166659209538270235138440275737618631443977774277595856052690575530891267001584010416483301710023580269915336662938998385024985595242116364115999419649854568985529954373041501053987613614879829568202266454923790458779160938847768618414971555265472401725836551931934825694487546918318999236680194676019518097454409245618718785863760415011678676086862181434801469599418224622370179745383704929824544235599478220247148523816805939514636994948043983485833100698009707977216105984087471683094440933971958630417456752748803355264515933691458538464743446566738290296346173516109531754958118666316465541176410939051739261951885399574376029225334848823522228716923356805548420739569799473403363921659298230373276764227066177699841146457701021442125207476677893260660703182247665516110502714246772747541162397511854309378419045925179860722676302597266350007552050255894000380788271941549869589967703821503217917221820088489790123430436253515768967348988394887701189806280818316334058294548144587789553507996314979111550232336969182184634889214050979896323299580191139459789378888732879575258124693285680247066776391268072651158256685461072381180460899754509348168451057116656297789462553663833608244184854496771475099385298532363278542353852376131698970223875348827828615127095840098042952520830609858194061794904773029065417633546804728661758792599522014277464131090592938760469191366507598985316780300181768066164816957599179689970675369648381754395674015272741467971282430049223297094216822279222534094719993744071520429918531971725966033621305618346956205318547699187350952324650071938974699949055609618597458545982263573939377138829689688011505543727879064651868426287850550054321307194422574367760413040294072677140739579137882338992117541742977810159983768573575463208322037895497435366248009142206793618425375436865387014430135684214538897625917061056616527621491467617185009000516900066586543869881450243150471796550666755994681892655846653891639613500984128434418957020371478641372393404365342542207994790538608211580894943235051528001063190320322607604805764550028663787472992760408345397272420188713892594709395275137304355875339294523668430521502366516261571091616255650163813390663712920508285008867186369576457192301884520757443323544123062638993302318005344688459963271423874676258951037433910677590141356552517452243666555573342789247612480368900731059064359127740707263429576602566649002396447428677900636253082389955944100540226244838915861699036206259694239029618158575723737442515500004648521739681373917423656468050693911990280762662514916465533445754250252150202930385340013202042605961519497072677376671582604877251822273659368760222388127376688560437579501967196586897506077164038423216678704440467709742622590459508857542812538907911769425436162788395680802746339878121491780687262477759389498295024661393339817223048198514551167147239991565996534206397848637060542160378596330131481426562991811526519678022833971470317039002287557187653488312788732881325236933260399697418510209501156631200585423649770264051278545673619652355657254754365065154691126745950123794714298451718254054612380578765560932884376578043803147241847814039823000231845129421320893920396024203790715265930230395957115390756292504509395544375271882582860146444538635248232595899207459086736230677449607458810293675426502235631130646355160975774165200363561575390809580570774417391116381485828182302251432869479398389433831586699916490940632126968093360701871497259944817255724577914803755096675626449368336704596824623119797283722133421426150390128800615244771115578020619676502873442130564794079614097973374363191799138910889060761591524426434134090027325972802016286355164909735435903803056336931671657683702981778782994562931238724065719582006720813827199643597673747490269085477786720131973479620711314762640213311509003432292491054552612988380936506685406068185102326834567796651253382498119041625159393317489048722258275407541023559895356947763242499611030553184281294514460695490958568119541420658711797047942686484747682038652992392290116051424727833327770026747615357510759214617116484738364429341400802498889735849953576069799376661096225934413321696797600354420590678103813339212327554758526769279549394718171781073298886846822690054839488961151986177407163034548058043515097125167914797917526426943810256918815023181240709106392814279873438911599638445737745347595372931624575555548955875920375276182674508085846830612509707742918760662200942270085453093875555177411156305459178534057478021468869422554449273303563856572734585743773680432467456374620550197423378407276896774456588686219488490359244945361715675123371386685589967470389417405173330537435254909086207605956409468934788141017275715644219534631556839569155586480337288197110123076633212076659016980938185110477753386425844137681638101813056345562741975256034138169015948896100957089577701714779630273463795611742267375164689581687901350747760403889631259832675272327688000470667366208007260230290389220580867833274029153358742143730335128998577623377505137733819505113654999734539179179701180161013322991309076798438599080914754929694717816860486217583008339280595555656895598022591780722262862881596200402778290677002186160142793394402967600465817716579758397811853356590588772402007390475286550085493286958650451049610228086416488839333376982458851743367543538588683271867390694633148968241990989978320888691460155261250946208411211045506417567662981961457039285240557048257655898534412553767463847197669261988726258310651781705529258902969642952823158540335362863926848726232768452360977685281574262416558933004170480409225634938701167670142250948406743204736390105681355503017623095743243160015634803134674424037003049001246085655051683319667085862384382127347035244144927541916418553402242801210523530677435976584709817458918590357522585170924664311872758856357401134139272174952674816151648992539118337749276566857474389191555315847062241351111233047449736662769110594144218828470598829809830607336924580115597815655786435711206605820599953788356597328825166602409566080741454804352132597079494247610294640243452682088542484399412361602759469619925029839056277503006200299026689797122822176821883414435106619235249594431140168352607323935008055497970728876347741787062611674009434469285797155620218776306038597556641620559762120041960565007268654242396709006451669816339226532706553180162799848950200889915851530631205976824678175576984369455339404111007235454292775047840479049431253489166882651829616444439868879802480325619358007756827792684759909350588237138266125250889212404462852420713122203141897437657201963430708039655765619008376323909636255302675035341238082421045616887258201208038803737169592602289082938410876931716465693420834076748871825232412998905590054789688131182753647816546090676182538034524245288646985113621699065777527390289255702629313574723908255608934337569632297126666146134186877964968283641259449297581106614262502062055275623046226526144846445179109387040576732224517878355466869291597843828658362914945193655373609537941061433906199512412832075785464081084410735084209194194868206280124100207811231972880277774500646933503491381280964534211483688071074324219608600512385526219244294615524559285525352501326653810959406167070336807619614583679253975477056697900970977230334815012875212375912820043355280119026940889327704765333762674344584530170316743511598083872148202601572052760796930896739353327704348266146785741731482555956366202689383458083614827936992046575581060473140138675633028868222239231145961911711372886213669379804394663576073154105383971322153192907426831624391061383385579606771477537392417691404242617077015599532714737516354398167748493830873940438437985938309298230028480830967979620463143979581577386681082937999184671505137493661814400433236798329371928145531847760869058298851006582492721475903664582236419422269864374628123687754185206926233000017446549169359717452685916888889137209542750495314266969259465605999215816653061427080934311191262893717330935864206212931192490962227932491242348872452666297723431399557974355134523220141013286294410071963551383149983119090079567787041345238889353211627667285860395397202000281704865786811887939630738802506593052430359842195962831101786089879656008312176820413794891605319563431313772915289668811312883349027421910986411945376776517942231562597326855289993296108968760240196444779264355589770641967886540370072390775107443532169803943258752087948945063477236647110034886524254525158164115568381467207652259918086672463078567641789717176171988406119184108321740359757574265633743469229520706357585148514470717562873072501627514086040597636644206844304147914025627320944907677263930292752734989835780153022761485498711192987140911251625938463451584306067543272515441570543233618345215398847213377980691714920104685666725282113716832381204809276519759450816847754212624538250440992475150272219891275120822434394689039868770633353114814021844605589800913350726149755942220241899481747219021871279315613581966357364532021732598042288327819904963298770248875831608438554682172513467375187699818421472011894368286162523681218619728999875659263037187823743636058178475261468738232159800499658920681889036244567658532078596189899309748449546548287517163380462988786308946291482088028651555695721452990500108343195903975305432918781054917372005402712011407131398776478745196062402025093746590109259797941242361951425247768899931789750677216160698891169585216952610319064409440626249815678299516415145718227710884759495051493748472173526962193663748756432207569781153674985839595767987447341269935137230632836569367175853237260196464964483465495908568689376514243426069484000935989688004181441534553096925216388041543001519133398528493892761050555327854992585964347312779518174349680623302024564569004288534617841293778469609131362432928498096835868644007240501071324215190965292279822796476257835410004716756397492604567888440191750035498894554503601483809768845957768008555972045104784460519868443751004562770465464297663364773384427422204194023677260655094423293194810304505669132046389272150509072894091760526210309866425419123501383357189773052205846439739338836659083611767826639483012625405591410359090823675602723988082583764118894385893192742172100227403537032600573896150140469038579676038689110175459607847157900952957961901334015353572878335601264120802750364925335115733418985693053492909553961493140341497403365081524613890873839484977984050416901484949118253225374788709200094924230209810666600752607035634332910231255850759913804924490667100485549744569427730921328899529789556285368429899789663890453265305292535154962710500935087104815467448614588611441537182305805320622538208538545185778346135654778602475749593002026392146120934976266470929964345469301924280727117798476261732197932259461032214985108220364061465790442637004225565890889176160214924912796265452277657396072662462825761869889775228003622975039537662566875014824016030130794444464626965751121010254765669650650071951432658169356794750376375429901396993730642558699518600308391613251940261165765200212097742047226085264045372325142535061481633745994634810664313838466424766395422002715174397128563557188528885795063456479496948711308647012421412218338348246275242184368219218968046461059353621304268132179730295618951458022422981080242376083054590874720533230699286549156631984408294353981311605450967840852246386543410920097247775599689796271534083579320310643694129186189307562805228147265522083491144596965990844491837099674679058716137623451232105144763500774209374017306454632469527856794200766277860037058487681330614629733802728427224786952820419709382960126373357763733655194778080150260179237646046332803292562537798641116301383587796256628121103214691038455520505989370214345864266547299149021369780641182771621854451538394209999768826169502189871000618826300323837911651747799046577455268882013253877152335079590827823614973069211169700116122323311654719751072722557325985728839806415350295473002530852173965416879438169409352312596764625317211829124630791296600029914051439134609839568271338359749761035932149402034628418872657820232506740945012997488321940465311223528432642837854297192826892360917098566620269574303181438451116286430577450451512571990300301088972394455650121647286810881401454210281726361643071870642711528110674822132035386737074879433183653074444968269923828129499371721754278870226088660283253142620993117463910028873377871725027794606977872060618212503256468275418226297282159660539078147596035126249364624199434055239853644414020306703158398754213365226857849968942383972526890367842635633548236086465907860020819266245299348207619456201623387730866443160494564653140772455968372727049177899104433127052859648161069686132579183505852383203392338809660024147364126262629896182678887812586511136728368596901612702676906378465590711407481680034377330355123495283003218919374611762793071405451774950805204140799150031069258660339350778743665420108912491571198445676268501936183526845707526680634025135014931276444965884827593263405999325972331273722122340031076522639001562313584360645553883289682839893582432867995410242442502361203122437706017564501797849593942201781809366392391569399727240378444191016844944655398029045703531030534330897224642787229737403749184315718387443702533410461964776466329941220503651184517308231533461082451995443742271484164768535975385698012514130030575603390421235764145378977985029623793466588908937840407217228843628200256245745099427324892251461453082298017920436648050947098123265945268745703147251913529486348457872934005807853065678699232346740718773187527872017770098679159312374008887654903112663412339839343087020275198761026389165035441347755752567718126675553492375154149455406197421701956516205476613661177067894554250957420022494705305120775212615502165884373942633579464415095341403716067619742203022478207593875719028431676698637782271581117267275403488843628821900293672203425246575379156998013746517814708130032744723781486368768834643583517817818117518099212435488202959431432491925959839089742546987835655848641572649457525696013366461177274337197174854050462615130052919135634258878833636179719307824011219243534812362899370626889662129198155819484294671134805306709705045854991988258121515456936095940838816782740622876325462165445474058133527587763406755284228683522998364809283900105003413744623998917981532987327646271152867104254795984268890265326586610256264728953521953950383116102696985872167034761092167603943491319890422338893733543496868810896953705695719671603841055792994995740797249408725320641517505430057545902058823887754927271255485613835324278758855121811655400843536566741429754569211206221564430065840762998310329505267465042339741316519230941689924220337218194199256428828564094380469366062214208579604558788685202612121078760076046951099264050693123429543181969403549461058203857658487668858210180700778766855083801293016576579140816194670912091518282697491209893198368247021118691042011697201531732410819917820694004970896974457299651324963322139028195425115526307455078646747241851619096122615829862412094520333707018834810011187745154483114868242088785504831276489431529363560009415172738887878320357964072631251810096268890331088304849664330631858434432545512799141386050314630330731964043190541162816281065514119724721753934438056806717010140092023420895052747091555786928978248135412028612015038627539260374645111548571045204472516249413065705383620282004651278144748611558218678250184915046391347411126221272804126859393503652494964620099926387740812925540842969286571432599990823596864040476797670579390478359508970648284577235104392765958968072404208388448145683400955184543750016534307217779701897669495792561031217715055858570430252917156574598004556672227494655339361348469604482450305945265838954595032042187595876941291850432097997377068612198646449987068814727587242853483587824570795758031075897963815718439082891693388814473288172408679979465373658122936002883880495132868991532843086336561709698315815939242629196686951876378235406240092431440404871032724645857769522534612054829409620895535120004517382929423558616028405347997404884659942713213347452342276066706929002018345458772064676495080476092205857305286172683758442631513393661081983904595175456880312820547441527464768071401765353769778682285458132832070813895942156575980058576053277061521729937181255962960808321852553027566083721140897694060392146202242595695807821276982052499179532577736883528676103996294611142929613974440011613585189216845873957053948651198530872397926690414561564055583721450897204002111543605199583092134690878328346634710720350957107311174458952027924443047234301333277857682057454745250353833100142545451521384035957121706904571077470937686782406616630445598872932577176331687170398794864390986001516634711121588799331117381588913204679663235826347101783164784050764822590844961593622468117035515042901821711149096590284491086634058328260753395793217224603533246637470215767201364084148765329645746588947690828793128558780530500318505661497559902133233227728068662610171755572419823768677685512231196714222062673403191728787811792270650254605054622826243117927501005194119190132871949446311722302982930640800245585908845005787055107679231715080528716698060566806264239955228386736160146349546521250143910668131409517620168449641391781362836609864683688265851882933710337563112633453080813671125938239732351451733735084240615354361755277491103432745192677661585278349012301440837953862301290993566365157408366241876384323822653135341280527526714471266158635614285743170812798172821666332482709836862894197095367646554305543050136686016405912784238733237977003116655118361048968534757104386159904596374158165223637361664850027300519363523086534381234269070860851485465140015978394859817278490130635569154749974295728996111518460141922789708459187299510624250640556499663533156928679665775776945396711833724894446794207192177222935802491657979666131913553590035845787234903288022384835640466302610085117395668570901515599271099046322790821422583580891012903805031643204157149247181340807545440625063199478454024284420294783684987171121627485443562669895375069092251588990943869374118614429504943771875691146577937197021857180730680234018951605951379964297417836475941269441977345199953352789199374974468931550437157439648861735150503671236597918175279302565762202829946259713449994145583273507516833012790661248221699100751959195308928755239641098486460315118470341708835362822974822986075907391947347129380378960367777988562362806585210488936960687596274214192557972041996561450249988724590209777324502498333419127220743573539446761145635394044090205501357448205686616285755924962540424308610892549053960249303448893407063658095467498719864189432119844114891710910104941116347564163926804067575201613926361071902580549464281069734497385924589075431328844315985353279636189068057809935415795389688215929616942222898846116423274073871372485121441926156371917567038364258379960971176818972632489365334920429009630451310786410768953764601678113563057014571141429191323635091377425013712162666615583633055601776420873772374933717253374031196467825876184562458766487775034695938862324687340437552894220462825588847440650955141218322642319406352239435196603445008720817690891555680232974660827253574752543447452409273126231238133577017239208260941216510546110462086335977413050079250990561982444995482042948578233617192656639233211355868485705115373869223156125790051021368799003384990623828760707665082197433020821151713711996904633507803075067423159802704595565546758406604418357487464883788105146558480997626437043858092818878714848050940693041255269303126138556664219859051717930525773034221483723148207559824277438328151017133791500062605933530625008428215778104132081873914637755376338458243570773643011712335740248068344043446204820265322659006360432833781098862048220502013547548665549328125760446859863478853651986094698534720225354838801019754919558573024467366496533883085225119166782018810083002188681292358771697267416687027393615812345165243207130123119988988155396291567290452154350638751044456982229083265184595550618805093413329695531538607802415642876833140964507481116801073163808835689885812094391059316236570211489826314737523980764359713696420411583887787835976386141852182761012865843771286426401911172756359483412551652779919642327269945552933520866449578325773249922448695009284458740052664158395369871850152286003421030953123239097422410934617469916675815213422264818153380470642433906377088879133339496586102677586721947665915999619547421095103476023377469917480274178112041585386155467313500985468656193074314835309020597798748777063167123286137453520344820847631026950324437930859812943945761544433829765548593478855247303586572031921457824875693953605645145417091197926173719531639370093671283377039255043140110791691619702719125260159822474497447212086733734029579358655351595485691725610983983793936084109998600243085579115083152947476264470989913656560193832313951548414107265923517372934099305355448969529583331189082268758257376407383772561639796698284106851364752382812030780529695346316331835816094760476239192445244985555575689654814272374573486118577905007547123275258873941482726425369958331708751789475280442017000691481318562466900737910286694222032221312731111087218675451242918447883646977483373923368372254329393331487077498020370776708756217969389092927252787148331151683373504105408073274443455542018067249280842704447668604741109210568048624380695042220361806288760592312904498895324113353561520729912699047588125670431062473286236582751385914743977339590571611108264098649205846947953499286268549166096699155433906490793292587881275393098745705254814031103338100113027182727997263136370137069503077549260477992733353461091006054700538535601722120148669834506573320231701854963142949632707467600295198630858696430071631959351978339627754370199153059313797075319863274216023894235167675550527856568682412607728848471828238215461276467358606519116460928453436787847774982676783263647743554420335723780843901352681012714669636357326512756285994924213306961706578040622676881726948822806831286899676727014570897250789668311457071881785709984133688497107355998376934345483571973185335221528140100522003341784628841850412392561696172452696788041548655450364257669589825866784809710062834766232159693742264948028184666723958890001240625081906058818106487286887687240903569734891695919293450943917050349581788069778762825745228741662587317860469611114563537479429274292480971957336822760758710127873988859907534133883730368818770517398634756225255174456648378502766784907339295182154221380109020021118335644889106445955391334677697764584229362313027411273310813571943814613524996982920809436350828610721118513631301544005695637503071510485893081722600416215107074432505439048150022084718902143674376566542507180882607486668684492057329009237852526106087882982564987108398014693557928937953274677927633232798189490482077126810200576041850072908579021452686396945670721411588581564563039091563180474781300242175241971826894499562972218717044914339916129078700898566275892943274849118475553206407212273946999356556470936459896308551147056775996523798496553432122574655809415624787723784486622199763676503000030152950766182970432213172129230504500836379708051668577189439803501192456476634257784881813858857081843186322937496297812240161921803924225041139966039085038173186864412392050973370436443719809986591012895427331441457127942042697249325455587691002877299316856570662379679126454014939573326241858500515821379971732536871578512691459654711705567111842504900026369535374820936582724336689770588435403491516561786326963334142119139120622052772201874915242090649491951227470249239126562881536792534823813538157698352897379543258872221015407367370275755462015413806944508279547019462471938492451916095309308964847564361141521615243442675078938073958392812060378716310134460886832588886540746923119963775278867757846603455221056309791748606712677150801127160471052277738927633601785017253646835442186491508411621379744862506462387246438733232782837916075197064061043406514348754343571864925326035475535638406202642035924950344248344388971857656762441932569235879915685675189950580860570430752090229047813414423559870314979988035287837956301036570897627277640848660717914925540832421850383331667827363753776745419009103248016277172186945895921760959454808000290768213038960811141614553258846641128118817672296389100796342734346325812480548881510392079758757441596409494766071935256138448351956972175854609573022385626725400132087590542335796295168275528797664409702969808151585757177298494360063531093623129752792893908673796910001352405373292523626519533868124006234496008065562328719803878740919663529473147782775286567526438726762885415682626004335675092603253353189841948016059491042186432076458034435318626874225499623276752228758684692058367056775332825981132694392553622367346787715358113048571972177209309576356540649042477208707824806336633643687857113580150942241670674105366266375023610535984370925852038157595472700479238959547442777708274628330515697111185732364302714753705030310968994335280594011550684801977693929577954356204066266308216233120407724771120116422853653682173264301292217663945294348822553554687193536733941995305091674099441740741658479542193249518741664928892531817385148235042750515584934042664069382506377705270646249648289421583659724920470366666765208775784959110352541826075344347335510602603790270734944184387339505447750952850058776453825217457339859942009815211004523943265779420710060649330016066700864627937046311440011025085364157527033235806486798104905250728476129875179752132288085671239431620998717948814150104753136501920277721492199598950069658370106230234703700721773709176216218015522962156339969984726933562966527651965648767196863974241069196424203198795111849513362627633944928043190655281033381568474464469486142273092102775429898069340207695112515306670374891542449981582626388430951641510177603122151226293696348488837507146379657514754989834928357827040809487277917415353336069952382805800812886736953059731234779054769415835645975485994954214389596962075017760280130190778221972876593006093208555256671409309697877734893083874573957983965625790573418813709079230450379133791169848100452119354439822015623397660392003998741136180907089522602489487005758085679417097212075928759655935569066985751690563292559974517873046520632705518652204898041199064959954462944607686102560622201236321156235156753795233132889912860305611866711521701015736220187691106438869974251185876665419538675054530125878392931318331429674635817953213062151568678381309343601067763747740482647276334286101132548116657169565728747774665467531660450764830869754535301518628081845779629330888318831420686958428264249939016558872456521139857038308067717918648132950016056965333259872071742326538340654027665312839971089561953631668007014132107604198764151593353045856047839742100871972355311712657899644453055040071068645110426347290308173926640709188199669855500432736203511325234462361503750416815066708971948407237680739401483499034559901478875308303160700364004240046300616593881242764319292247038413663484331257812070140054922664505710243430132862031337379219841207420734920451634732160786690539716626357472064270081391558648675799793039594143933392373467343944074435374140587690436887292162315935463095854552532116955850638018328447710714907343091185830668359504757666683458999987322098809066320302218902429171477996676492644708599364230186807519091321291321550600366378181557378716026854002218077721414139957011811858690422770101914747092716003477161199818216969757508249970608062139017802074804963722980490021468569503502851237365241430588982188187267190023741876917024962885523746216580173104279943018933272385514302667613652020179876072439800878047084101143627156560775448995897602996107625313561785665728907990551786701358321928426735943064338194531994819462648517070347583170097825551874522537305023114893757493393892308215459017599846077825336755637595726607691509007755561957108564105652923028070291561615863034464501110388845389102135098978509433100700933324753833131734289201081002097952544098151771040094233456148138835424311254301933660960983464866430943326136692706875505455803215586407888045481110084503755721481257434205214718903276401837526080015145166817082064827321322855884487624210188070835898945521971947730554674651656058337084401164601805703069223361158459179975950090424880719378503595878619555398594179118028252869044641234180299004909925261479277140586282514266586307900831667218811665926388679268497707979311050640266605605322187294393781173546149324237196902109279213037280651556514592761915128752018279938899441101548931236121520592712988017429459013486536283177820425334442173011503388308061445146196366424232454510527125315668678980748011286257599711661635680934387481795823275074042132305257980580261104668142784075546201436549015290200683926689861212037012860626617884666836919114426087649004390783589064352928764680263230956476676605480619216018104035380032620390162709859330997837353251471172279733115360512458384867709827555015361845083557456248322252954991408771222442291570598988165791343876315719633848331837194051301990446247707213030683450780478827316931413311043369649912195503201109272557477049940504112865411414645284578019906320011028699029904979220241464329540933147038102200622335752480799117919744143131385949243640313567990517781572140400390969610211257182105003608759050836333652731237234326474001219423751218874995719351505117742076877250769951459723886209114971465089438002138277492647987058059803186271684648388689625578554777480135456934815663715584892513673399736522086175248309293994176400364797464798200373206020770131535817284703149667831454317785699051195960366091385643688481070557359979504895731407684633085761318358495765426708114088082814420718382688775650272671749332494684968047325147781277067572316613568402395135382031689602754921786035388608588009665004859617664460732376131102941455410123803626992505962708208524953995401178175743731906995608846032530992923434937811223088748866919056404389631414461215431175624239028997116899169898421872994547638252806507413846752634240679717085605682273839507482510326022124259491247008287005417476355444087406895560754641914251589209387516468098143769399479702516795309967584493991807111088665317710060541949190053359758092737411513175697297305576585201614546588533493386027819236140080501896742775420455290379120088894478798866455357150503483264994505044784343483725521346447211060242593331352150179689585055551549634953240976738521827020296298615090512976922294705623316378074677887293384335209280907632985097821539019894355530355459330495206662642780980823604574890049415401112565654315881881202862685210591957816583605809331287840068470092245445285221407557221903332219477650803073131335795460498002730263558982374947094212272845106170068943663329889546745627736331532261127900446753497445997007091057147157623586620700456311438493560063712589204379267046249472896999077644276391904318938234290983655095786097400681897491305903931733059848699860875038400572097435356451477870343574989538209909424990282978409282613461616508678848704082321509243729035091659368206402570262306260358835674272104245336144981854321551699578894598357538846373113050775665848812511799438847539841922505820697253297950311970174885962010815427898651404002488019889961550032209451823584065928252700748483532527747592712640041032521511961225793014179452815939351704740128822608228721400742636412033788418503524279587367831105965714656675426167554362556149130865289210001492673920182918048547614586917705115856799495065725132850428636520091231085277882217124110078314376404658703236810695457723448505838351955523074693978737657041359143025380168769184935393859593945861331999085919686185681954916444872800636759424832211387175335057982208935178162906340261119368172265054253891849672649040819094341610902046156404576853504296497030486783674561683698681324530596287219377773485032164601852155238927977975596379199496150103765486321942290807289789910095649555169680636621640885063812371795354300379681892427844894619549594392533617297232774272224545075089851842330834271388035277916322908201669721625000045593257695080502952548256155088762563323221364052782717274180384538573662958199636730466134126951014742621018688738044866596967241752921121140566841699021261185339823624318468424482154889534273398392275717871030991425410355650490124760199290667298119022174255939210484691308270489012650608714952756707205572873046386698292539520964334737754127310359677627224552039820999986147465012715229854942240037313988209250404577653766992231697009104990642858675781971197028944654970358421058179377226618093008749574764573178878520293700931243307285276443092106780001697460790337008210038999542296861481245829725439416794389651430400217370113993226877213529136384892383058590302323122430601328645828419349666802458213886381977823012784382050638249145776350069884919402706602580868090666416765753538511978263305331388506372502476194475979055454000753457221870496608609619709784362329335577812915547964265456775462339545722284639106511632382831873013900046553654542139631417152857733875293467385458756796360539809807640769038052551962500395801133259163201810534714372853728842645560328050197097736701121861014165856089018789298309439560248866536073337980428618790742275230964763486230842456835640229960500331183270388319469962886033517490238437376142527047410917496750404226680509487713958985238309532700104953890184790447493801753421079475246016174445819227814242409209727879313823204233894535867934745284909393777559193250885807474980661903135752317847929949836763683186130525944208654788875234490195145630732535899452728519463770760642791769611919949210509340549723626292623168855088851102266785988335090568775021836548375734201266260492837147757901614194633206732002105299373246282101723125633569605471003784128860428500639921150101634926678172777253764864750610487507053470736609706496500079973851940156122018503325131261357597786329721228127714314349961682584358922787801884557523756784467184058315255239576858830517703828172525815179100977058954426530925957794608112433352907213421867260545531478040237671591840068594828136513920238767423827217561490916032215270687099615409296782067119323455332436311958596307110673949138590776819713263138802084614868204865798327878136254025865198574938446263902953136637494908764642191779075571155969212934837312263515433084607796037560788282955975738569654835337227487839393693467432033124058980739903702519731524259964997919710131968772735011881247649423921971266160285822911058095777437033929009667926095831945922137381650715768716872070873608544638422056755447807727450619565158097805914624790011508552061708166081664890258034992933100906108502763062849411344254893713479322503620188397282364489258500911590576469987902077213277367686014014402577490044582101656754398212001683190279703247835136698844790955989186208099981000405289583140794049876147202613780780094337591895557382903184845972675211164411690907362458451801416018559368876158046549536027550855081524277768927629514408222617124335823341282892666789126055951323673121801997252955545927868667979144995583717812445856699640045532587844176786303751886447518390440031616580191090144034248102674899809624344846324600996684114142304594144947222664836384338345336210432964246834572530642941316291389567787646545426368060852692693679968221649858890778052235652472648683754732672334354212305307460548029968541906912716310994383675214485260548190769592252264663713999365894348503276724310770522254542485299023049442261693359377461395935690583157230568487668286398227563690286953559046185654377456158714201889950555444957581142642533732782946719606520677031031991410344469447730793382452118685440776108561553192931847498557867450537914875235286614449829345884619494851628533906793846592146082852203677496728513613536820165541869419239861704459573633125458106459411208837121312945493126327247121346753427569319328818764337247344552120357081450031952428516659247359348071357179674138914144270122169323307597335367159799245597816157258696331997893679182422869387443134962840204692600622279844235023292849415744139843306427418066442221433884007074281419935167134328594779928552389017455052319752687669234236526618041886508399826367936613704691904918645616769476688003688856739623669173094982432166334511121626893643034973288801641970763886471179814881589532884983320796265065610888332323102563317145076578016678568142386216725528775901270961657877461842151606838946546197723597207293667697696311996691149314455154046878565985391802888392056731088939180595429717060640207280065121611752392410366268282657460140181790476815131447349782746385482753821389352049607432152645827894809183448175808634245436072007341294442282808296759232354934964853000548235529539398256446583372750245119683697329612194807597991390337859446328323285185974417543987908876109628003310319849870121109195661757554441084565075706737644823217939888412067341439265283965046842267678726290132265916464742452417204389980847672969656115178529097436591790530666720483299952637198268282245401094533538248678507950851664613979903467354546699177595331853784180853570671092399409527496444381639264276628889056404594950728078581762612068392205460364622861254652926878944937139183826697043823997290449117668930450634824855208976930199728691780602257818484721796279145226727897020562161793709675390029423115023241491488034527713258283612449670827909666853800402067194676744995048742578199074616844003785185715376430553136936842923434513353303723819357310811701630140348323780070234732596705107088599629274608622732200880308095854970424964813797895824751026483778155631123498163822539965361573816413368948340245764555768233019424832223974809254202662559594629150335800695436537450780580089275078899165796462005738390485875377272412375607927272452022351720766167896545432753879785941696542144833713664368374978448033009835810408880337664609413290819930072118575541726635815740863961323972266523211927170064419957977273199599403444466315009703460448581635713268161302840871390279947421306423804520727978010492796737979207407520599756262931497385902685057810849657372612634321655665906823082771641496517007739465545903273230813472918547286084822271470804224205279106958058934933214412678506143873753022461285724480577011143772561409596538155827682273539097053744182936969527991553896074499110345484956969219992712127694949851433607198231759058776625526875021853638236861617434475081961822675663343235495301533867199577534274017909889181956221941753166403312342758918249592656270395894122051017939996630895095819098204877508239064088769858442819125471388138238726360490284072520111128909759386210657448447215393435181066702151014032401672872389064697710404985513893339186022295780850842576327038225292426332496076225701364401448082883735013817458729113477157132890175858018476410798875131733096838454779509037585717296040077938894604991562060099221283399215830702135201905259564962944311991733397478539198835985467265623133698511366390097666676669537886363113475633179404522425438156773005899337510416827324474041031649990130579016792258777033940090199989769371543562333827358201849591710466611778165826339238209290902150746484143956067517585667460065627435722855469122429850507100093004505930624357848322146775097043261915033488755002110996624553382172696797322684720701465392705380050554740482710561230882631654984852107312038497194743849958583323662514936429646857416835315423202858203397824368247469244311077627465265794226565267996899740279429342291278158690758272889394286526358311087655603506778738289548789142803479845784798932935004434844053237371689106095689315153380327553305456806194954554015973501316826479991227928857122261586220118164087058202644555074344878080688682154427231734576714746067287541647915097123903575373851386641832868409930993913689613078610526401062795091548775461784689899725327558602065776162142412202093707205405213737552277411164242837391893838452885618318515990483724029329193770549816765066824134227027468974692292620561704256223162315458351985018755176662785329672485764857287050518294105709318225225165593881918513421216240740943317206231776242647428853674399721417750782429503730933233568363662703825799901247600979807712341757606919662294632193678452539106974897072189342793422315816036767747340231819506003566127753682192927604686202942651632015088782260934620179733150148475392790038808982508119073924596175017386474894235343087786815477137594316679409121983415206812579105147190289806881489439670688837462179768680714484724999412057334968010703177312314437761219679263215290958112344024919116085499799382140405993585390760931717824947277856977574855140345658636476765332614912775821802742503319807222063212653667864627057211204630943662458028681973798109384579620869825264417497716707349344963452648006883985658811160006300740170451385820052981596627561776956522205838757368585418928239593245469315606318180266831748363982105252349098492117825317502417236868384697244504606395221660008461353593958053715271609058147298194402608981380875260080523213351902640180170244136449638854189646465516544306586779837905934734751435550530853168016846681650499118541210943628252329937664131582513196788277184643486206723218014193314823872972242222164314096281825624871069057049581834598072821206002682457837979103408088483282974730856374904178623037941530525276126790835961329724560645390797428606548061356378179589310024156744266422056576224499462609716236035282101348565795930819558453300037965194775984791472460773016176215028171522766623518087845417476684741931102627899728749485686036161891596156220566747305413350180049113265975171008749428155423758076610224313637771946606298758237100773882660273328141211618714458688622812034591973564829269447902268813217606487695620193935865801136522400623075215265271617092993890744545602212143678454869766847883576491997440756227467302047728053632867683681147754792253961025036163199926409035015900799171368159695367685437489597560439870974523662928335414827256494133673154581652124524611197330054940409693071795570402874141240262987889296112869990583674636342395153608587343446707517372995530487785489658096869697274191152108866593202401892853193525419835147575991737492035140538922276729026090597999875365262348275775841413854878144450107085670001401226777689874448973287588214106475294410297953559866818950664833569406146639183683942846460188318521381316321507909045088923491472089401742505922827595437200598514668452564197692300880480865894052811184388596667087006467687920966875827505572620558503193868586728089702382063321945058863525095966630405721240896788171885340608993569162646378919265618772545355483157603564424798560527465381821237956347414934555906316413122169918508261607336803113418509937968126655291071654309073401073864318670377547309707117047281283983285761547479112302019091520920917884744153237334955946436243225450376314041863600934720734116118586374466185199399768286797591907268414979135753196745636057428767105816128463203731109189696777932730461424736533371891563829822515539963957165943112567329103915932081392955004062424516137443748696900426257832209452268975369551426433865172071536161387624188387632232203195129806395896428205993653371870206524476962661132201756318925358174566191797227021241993580598465716350061237947374897482221193982731730468392924561990438778913296623020269456186039790559883890207378769864152390822932361205518099233942428389813980981476083033215194910626971644911112457398756575097633630909836052394772080045660834680482453096445359852337131485565627974352626958128269169964822958791094748634435057353700326670944467125363776433114340329403291113269322111368011435806411863419737239872621204146387487918067535920316887508897362672934421856819367695116290139037184174489082903939788226713558294653090915458270922247506181088797048628534848946386072356248710977137779332582908325172150450948257203584458188416889205662890553197016330921155605040233136347292614802424229267395595936705679823762576969612359079066269114561490175660119318186887613656763986673787248885708236070213156658702397150447953839141048507325864711464733990550889389668745117133570137145569514869907049494704536036484501130174687642036558957983495069592605098150895162374133740605794232035914590360450010934212628968618254463051231970525069208583278520429508679719071435650634417607082835855824338296618938910927712416438419565817771580094330608296932127245525433515831707673864915528724907140725330900060122185161534012587422501697278968280323842816491038383505300793065810372198657898286761862586091057566748141994156871873080178277770400742639968671137394153945851477272030259390009071314779775146276150928402059385658451193541534325769069701768780426981343726352081797400051794263852808488901798506100704614660017582942031413806316343641712373491508156792512123537205442855620621641405483468842488871770045679954061456051097064129734495464008545755706356044244314169356973494803482556900033258353935272220173703038936836528720900538290382835233455154868295876773520708084504266961340804916187597909050734020439330719480140645863817526459009619674232596522882464256695187152327144723862230582166698806811250798289798115719995840025457888898055931288205244269550893350381820245925902613623441276531155289995287314912929907814463680098573903323229968247628251407262890846897823343083376367675905274584311361759588811044494182893216708797295654632629351576185568646620349144862176116636424022814616563195698613005885189666625588483714021908874128661924063829154805402080550384111516732940956314949190285809670642785896424089992075328346887130230177306397183635452852676975919138828898729869532401066819402677739189178261120224385688838458892852229751851292931353627461711551046880492504476294958765069999618272773761208985483836292957260284583258222961417325915612340506205271436811929640382708102816788557048872686678962131239691136478207363376812310324648980035724283861717502354051613354704929132254059547995280553220309855766910541840913381178639158239887704581802230956977260601046267491119198825830408732405599379305692631790686905665972223267471177642010955075817465052331765716094880262684156413164034418572903391864574953032177965584839557921834970111226968146638990135461784563874923283704204255133066373330061761388973078852058130978110407806264839170378977796027331618205895852082556825904251582741712292097091956823663144519929734833573904586435364484972135688900713176041258040336102307341659992677348654341062406947736818620953475109240793962921178002053158013198371435603953384048489241541482946337892127021460373344947758332169503716349694373742312805437081012287281689736700469304976956818579350197570896634246894540859043776418022306964626166629508275956397520637850383565678299321473911581958566625064297896078323186014683855672827055604104635362189832181567966287867371529825120621159642589144596586909362615015550530981645961192700834296249817811119970041979643914652623073586504417782972200085701767303807864614253530255530512975782159905163470520755261137801457025783901752536895360524788406609110468036480032268969467266011378716792303845685065484597918114304377305553802855876424996023683441771069885492275416178782393635402742248596311178718568569607271267847979308294132853999008177309825963664959474002003631237820751722577507420363483617932420447622799093016812750162968770322226225916629243170994948350729486678756210404278603534623382833856644259875275149539485743178356676160405901147549281261475154901815367428477374231380601579676780114027285444864534606539687563478103282510028083027604414058503568388756201924775515557021493984216211208633583501107517890889583772868074280670928441797459811125889583429858797491356509210499698853411297327256219496439228966938094083157940238533750149238712803015630971808796298186375867486476413397630877526269591386445635168230039983616679436268690499677838501309822872169188816978704391880562702087843354818116926106851895489212689392291370655967487622960804787376460417972819954920090017327242190137915499185556158171593422971725093956958142756810906217138917667608623221742286666264618086284392455817350287753087063476510742854520370767261643466429762049185620381490038140958119903251630305854465527938067414530930172883532651686884186603827509010520122139252306991671808061850191582035225033123688126451671319094171458409827044482766548534266935517378828835740043736809086612913951981180399791222449345983827200561829319904912205312520087250375982323065772311735938474733967218728042090150368152681624159201317960298511668094685330011386159576308391386013937195871669602003696072893447051884612301768792573471967088127338435154379755455613499360239560241150857408173550621464183265466673447153749529403722357111560099685459396323483062278947744914957964086005912861807003409867076004461667852104845604246187905258199932585656645765753289304410862040745559662619457249264016359354811559338066882900477510941865092928975316194727701259366594365251445320886638939012720349261477704843949643153501474876851338791739177429008758743605435396821707658854015916290622900223504103429580888132981161599806333906907152378185948818571940235944933436686915246344428643192744640990916992532041313466664370188047127275820513411696202289527756306448123731279751997637026882266255969015259731356556480252103238074661136019731659853691651643371026519235187866501716066210130758345570907556070562524677687186641421035313181968963455851659959304661373240829020351355380207624885781725411846201653414648780386559822928827355076652143860422071219715565686339359377268336589372817421202917955271735139762140132550700744821157166528953417164049979561469628034290712699971452043334952780590837246170062592790684286908035316760209850603369023457720164770409678541076356019780049521742508098532750953242409050298749922734574031519664941485784593159064353376168751841020318326207262691462773574961599990198307997636517802299435738792346575137892653646155045988444575794929919649402158196144137146093104568875200478328975585812496445385600754072521628746210105048402964656564241547253139671583843637391981996838864865954620855290866488217738867050799322913741991875068484438934647989595361975679401302290181875370014970048862326644567151701193766088031507215565028783883713687177638945462531671792638069487654747544296075792762164283772856939584274269276774538673961916058381846973426140754050792052622794253809633733075320988976173841928225022978949311626027389226619270861989366279086972225359299247222916945964050620617946009345561958981372989165927347174754563923010312929736381050955685203768280375018530303155242672252911662414930378062199886655884403433606666906644835790887283657607856055460790412711444947931795025622655624007375562506284030616564900714457277513891622474084003823452223505702918791549948814834087113447895663951480423909570587233163222237887690705049746545488756045233011390417995639607473507385287515200412337452992431587263592409198610979827178332466707457828214923167764810558133470493882206749320026137661403430033937044820183077775506651076024610956431556812531779616826122117989616198544129747183239764381726071565138531458544658430373025849597851041290342907022916094669625917837290381545853534633036233514438674581814802340929564480319748625784315332481488054881471684817255189034367836857766269300414391160400342392361899711403535587587381960904840514288010745392641180430416218872289328331714740433029512392919709168845750825357368818021520312931030140609939834628258171779927011475525009124528753880482855917716417180034895445642992282207159008563921869116507693074160488260601368389105596538091028873288661989600698713247204144369216688257042741246723829520864799899473492693548320064100776027922599532768224074123761257601616526625825448230425034205279748271067023887707900587029296666763802253048437770004611411841234664348011628723117365327799264109049901240241703412490879704793397610273211031614181415156235066349339015957014298605500154040392183313374138351534887689822859412466546606945854887809117270634279198185106785529842283895569285944570344596831933437181105618324717934673667828627039867248526686524913339754537880430340921478529151063151298805024317499574258861061865208521497600410271737381158442856437921969782630902770600456464135037519459363336235385756736511142205274917004130497001305528398061745287057718181004738353368369305640195722333354363343934282262227269582694900410743067112717426953308025820416375965943063242797159914367777303687569567962434485691910852340142791871431716756184543163700845018447848109950472463398763247672648356666877130113693317782122457224674774373139932243044705954255502981284906255183352462788278032324270722313359598709680995440194419119434619778107677241179406573221607086288316235469877410321383604067738917980227175227704589770613333974938322454252183324654635773917816721275744426144710279981446801756656613525388296033922735094804973567073048218584299037803111474326113698256551498090753868499615550783248223721840079503035301624476197841887646509420651413487792725807074230041500775156441716352666589403566559212693282177055056370117809196411470602571398286318390275885701233024759136607946202875227312036104916871870863864374046628815093813271275049709603193789614535875637045464163077523797282947343815849972038422724422692295686886189615348125771377997024029785833102522049973522660587612859055464743949665485374537479512162520762022436459557911035205526297191180033860692732450533963926847324356812507690324430851729585685094134263314429620617583184415117085272082381409255518793515553305835029149032653252678993510012771143874048310428151366929462048455001112635408872214154287268881310532282618738865075311236515192757806469513199111664517913974253423250684152506482896656458353545446819478552010295003854224596021298536956375386726394499631342439657610186825324961561691420833047069747620158519409705568661739055124204298992358801055363379797582954774934126688510050589723668268133405124353639322075749999052962646753752171774627965650594293335433674617453583283221353848425985276786052180600343417736148987408504816308342767145314087179184220012449311147600988282700734960348440114969890607620575442583715235219092736896873568495068700221417442921573622784889877222920405297969612436933342221502494340919709367000751967924922009921423141361135248355042446040860317623353780713355930624979315398973810199860651016954133304010513844960685096323715784582384625860664260854159044855379359113039114922183183150936633848731334020038898642466969722648208973012596395322725215824054298442683420578179396546003123233088773412304871203016501422731790304841404966131794979953744276590948007569209147591479873998624914403161358506479406106795795649185023786914964874006811200898342857238439230455926708410283944654475474364319310343709810992865020409787648072407947602886882413631198197240726614741427260047769350691249803367661454496685510601031486990060414395445437729834195783174985139957724198243241295339859891373574629177697058665155625209588320439924040923267166529454787938553887240574147931942667373853412112401517265141146033659173676730954910576402679307115242331168661791289009708685589176714808403985337332718391486084405950170412574445900473804489383836496185851457783867884972088146194733138845918681331845906594779422274981701936978798561569005551709681529900103511101802346560149534422113297747181334890934276093023665799236006396697796938089058026892476593744544560311558282920222356376914307666800820518512883532598425487239887161591440642480552750349110262200660263234875142131490278003060899950351309546516833931856022964754111832808332593206774576688612868823986687872874078353529936105571780154880530251866184940268793011568359842251396352657493110552402077316802824206039810734128162270674006744128890829473617182272711237089543885435370135254081289416016924561586823884509257208165871485670233912286645317161237680457622966144623423264754288764705392529865893602158974532967960024883837113652084256360834467108843759188126151221628456182650434077884310167211189653862497640656234713634066694850846954551186840495361356424035443302661844346924463534366861345507164288679334748861051816043208461345834557513843869931529260741495285454427313816122806980209307727090461128477224499674105568759815773338361579138777625507170070478051886926385547319398344222322421299751862339845961889410170147358294780654469004901354392647719212336163109800641722283986935917690582179361562418356994255385350441913308720986631480420812334483109346484219404766730623311109882623938184618891790305494000560427467388340622384071091895128000289730577072144757970844679760380961694918293355827516943272509864997083412198818603640093701847196201018745543745638670428377084708082466086453846817434356612999387335574619184691654289028600698919423260442602556977476312242078386099881783237422052816767640931016426280153743696034768320273473959737324500807162646869900251247090556410146594725110628593920686735748334592195919371830383989505354009517047139069976066880023079258003146614966104638222071368813925741231320477703761473787512072644763328213297799876130019403168916935342588363007619491391123152282689084854965798042256554812637031870557232313317283457186730592837076559475211399058633787109216220821709199690229355039969146540619200156848665246917143083244883021913917563422859746605594817983788578163593087839967639067169055877451799560430130710683548657712272619970288543044244137398087493672231207643379302101760604312002893688611622623229571454798879738988017645322896543873462563854039351896993803137113523675936891633037340717567335473132072478101165054867634569971336697814522497143878927737443968261310750034509480195591740714966541291084479197016074682820362974867307357552783959567064104241509006465206024922942949764324671624501179151734906080837435046629848355720585994420870520457231834416278978531876541674194191871838306903915695597604399948410236975763029066887344615062993499825168779818359461255003598029596568700474407485716566907150021208338671031094852789759441617390169077504431912296202620291693396079326472925454261434855281383666503237599343974788561083642280278001729402543720042387378382996698927351091194267903822987971629640842759967926603576746992866195031712146690855400152547563254945153909522280905844332355689737812608389617791111074417756679633844863404023488688542133866974777882247600978696197555331928626188453600993451533786162356952360010596215178555367232667931852574670896475295556774130777916663403645625509236002658660904136656069207635687592237016817466129665375663418099250131909681111964662723485716853332876990384509563177664240513691616117291463269731728468233085942329767638872640402921455489500946465413288891494495679651793564430277193101059950733952617186830636366937342167412068080015848345334900617622916960730031880354855637349057033631299775593936614281209716402292611323831740066136465296556056398405548034420320941536425635552938354633676157287266224685538397028145978146431105367371448349799719717623122168438076399466449395155733081511449055162943663941542456751018750751770165996853248616749656227894999652206814490712103874572060330088935013040023210004893626612102676155416924838640696980490076929558936748931794182775073873397959103485687189414428218473647176740283042752303752954408173426824651780529112004257952973587321663566227734288265707811845263667196740856873793570346136784431781051080437145183787495107899465863781119878321291797991463715652082171226623500145077600881690294917789994401791199795340024031844269415636274434915500136992702784936369052444547600655065615807543827799247861404823415686715927412277971514835471430319347692226415228080102467326008643904888697481689596698770327020270035758405744734758753813637357295184819094730863237612070018058319825963652770938901553660389496235562209411235964784112196194999189419918410302676085036909894801749438729749990172705302707897062827489034602932273380157196287313582912101066078648064742321920164514530592368462243017717923748341433317203185916876230726780797352759674914937436717295693901312233375265932284529526223988676625403564499830973007582676680122288973121375807049407513602678060066017871375484811313396959627954059493977307346514331363979973643142986378573785678424248843978741267154808167205683230371891001481402623527795619752696274828017502077789934280420093743641992197436161209251383121206332348987060604632324292876906792061669339169555496182612786042817914473196820689522644562827780746151161344669707424674993608872172812069109558216834762477411529290628775249522893632829500115166098198348407922455719051992600225330664013933674718487552474533726673293884352707737568391315125657711792456775340557156796651560049643322504549867611815695643396709653907613934806573676884861943597320886007144775357856332893022350238693385977139993814261786146460546675485449763543878187641637019914062044516749888013526411579758022924138297153979613589673645706231862280652682102556831776059740024307620424080113495890510939705500225734058051608425947841944897189748577854527592448077413053914031445857730283949843766871122464348208938630223001218414896922005894503876689436829069701183324166990483969430628866758843657564768100552996450570685271862574325540593902397057264571246262886836142660124422531868638181421317361746994293711193004195109307120937837894116929093918041442516782441112627548183394333127198954564296259515185117230260915536471307296147179347845222937397835669042788760808142808876862246716395263635343432997362732316530303844420957911381884524234002739858821134346785208844853779378906799997858000783295588951024190899512410858854705506186445046601811543849541045520463824782202607374153732399435043094017201517204003798862493646732481465268629588260943275445744270694872049162750380251548703547303972403062785184142384635707707898574107684434947549052676426287228976057978153536114461785580814512722788421263143018084574828877727779071110137947105952610834391390139057188663640556812173636550412875302527535571572208781302867496169698333070968016279322133683690280263359358376464053571322767945197567889564759834644807393927050848608161476031991606001735713036804818049713544652156923463638492845673450293249140299873918783508329250873114604548066052173479184553818048692156488794354368120479513756344261301887581394528136734053141018601706310597827317432072504006145899853960106705639927689319889310474827843016011332223700562020604903548348566200406705591046276295064851342211624039615465283695946352708016096111792197847168057445021131644915644192076301603231278864503907654958166434410364915609027118619815413655919269708094419131984429562407672484720907683226434532360043171910042275263710514188008611855960208834822739204500769265598190245573256991946142789262338526055797813811976909988626987564475771358805367796570836951399194006378726756860620962634348882944820639040805860860792254949378972291563001696126161988640601137522654514297594547503373878763363087253516611024853576449076381842067562824058958962698533829433375268259359632037222532405665447142587583496037090901400076276602350379730715999774165109857591481011661985413834354604586973779525656106960533068983459134153273119801711033066215818772281555191526508916375091399069871932001965761207217689597852891243329639943322132930919998859268263970523982518574582496851161929660979587622862085867127245119314924224549990898972073090270652952625488089976287270151720025945187628656975901729469458263943592947655583483380672214922584987281726900502329114513628971754208665650346974406836074302859784389066508808546172165901979240732749368314071072681332494874267553807974341944214459724646975872457293679924793025453770478996816185162103625486753177678358244452032386387207159690623164157599526307626449862161922836709941143578809960686236584131619353382829511683478297694207931518725319245012739293972890624090505369731744870227222839204878567757369288608976369926359607936257057413831657569654118665015234376875478313338563033150671033857645570089938114524120115465777693174761107229880703898832142857578267151535760524809742734462817959635140151837282598936056018132414627214630578612675018758405658710918513643017885959112979417015515616120307546616565154551441621290182695343024620609026963354383681484686022340093547841002762251885985128004708183682668049858758319216009910538960629770155906613478895038733693596889275062419999935086453527990272450023330130703567533316414232639401799978223968162854338406506458734766446182530111657602984813232146559767481742623606501199972084092362049292005847159388957279852337827384953737963200232147181840632653915140247063011461303501530098002546425227074365594846176250059674754770010723181351180841494282642803817459307308178770233680252958781973374200340020269422900189863566823177854863066098700953022256988315465749006788105151209248169355154708567882434603438095130626772271450467200190142854651440863673944318592521452175531029868232134772939379003666670639556984901914064559242020889729697510265969749243932519110166168929935780533223779639103612409675485579410561939164266848888237689640247619892045472267080286425133477578424213197854420728152838536389746292236531790602457169812623137077256732540728824879162385943333335347660781709885309427226386504274228173105839822410240753470397874564863498022026355972577363758465594201066690454443150774513046099777720345990001097076401686824711544082966872571443471983401558934976922248329509828542733399792506970774403931809886477560647087327320841801146145829163972730333018102224386158675656280735678644450516593671496361517659515245849536032751211122851933226614103138020625779099168996313506181671089889179983640936599286531055498389102142997226168161957435464863205589886962089371326387092379500654345427464031742724350593259808740329018069971886025271186316159159232706645811526950019031002747376298271067636306616113386572802379555464202480519925123247340658694556411320847532485787773404788848323283311559920225799550893458905997993722277484245479382031598861110605758406007897325758251656442259132590394314069086223268264249421711174013169235821062885002289347705146215097892524127381996497446005490880625621445288450319601618124618293099203149435162525388080277166355127999466969076026951811933161410076977008818031998854978215955847279591647531191368839185054940934790774476409363206696270030827835048696288070081828649188649780678361443176340416279472563032053110515421666776946850575479485729323433032528951470196577020967577540221713113329661410357056118904174547368616792312959662439880896297125232318926797717635172594193358673813716056577333408249752815067650019100931079440389080514171160994486488179692653503321430613751361163571146244136591108011120107088868444556336128735614429541289167518343921074438673343803588976982235720654964166291166516732152118878619326012072679266812524404925259393854791194240470298357890369612145507572955848021310528177705841249790614641399286239023077368729234374408640191386519979969163507960102468893632429873517514483506709042309700990149855804068465795141701434479674621942102265001429032295580568588682735402137435733063078011702978967800555251937247867031749545371355115003709325076582467909496095028378739194259168531032223611862064214393687830603037782972660386215058554642208322710713593521461600066335034857351351375577711163674999795774437129461515772020097933491580885706373629168553734438326216906827899901002897472080940729106647791969161756195500790525660886202819975672560114332967196416785344829810923711951869181975713644497874402522763170068851145456551813007287339639289689431216889105365805354495564882347235516745463539937591631309604942564618326694587916940021734000179221077323781641387140511919628877915580593715536725543666315184536390924573939684600508514688007860833487142602220769653398915570587623104232528584188123404118773630257333828887629997272426660928755265490707983791260167384591178787387540054939687768454611563211392257057983338968282577063186292810748659547354016332794392218188320727018060797639172126990354493608001863333366638476275971876412981662297191085545184197860463908547667458490614207845768696621569897050326556108363392595802980162918086256941085992525589501182932000679404648166660034040880843222738472257455990625360836087688789091534835894409940034784305607148933726270848217800591479037750151252515533320965872742911698561744624329635097946263177838482337219442068753221686981739953763250173478526755930897814394893590809819430955166135521820910189166026977022140497148427761877584171934958209854047637879410615010060616527790124652778097746650319706308216138719738965930526810158077053046777060257420164652639775445855942794867656142185128010921327761414648762271251455559702373339650180297461916213563879750238640514951215185217861717056907540905206424402365203665755412620164461878075687818341109861168002368249549941147816104094285638336912651838764450362424358788233279923393103840268172450791027577146392485134101781797774562162167987853315505708574159313165532752298099653539419149484338492928939770947821212824504469514178021515406134076990038123334001820635555881912737686551622907228614718252583714017620522249195938755092312746461407202499210621516645052605567893980543759737548403470936395922422618115526881127167208308280699190793140693959533336115407037197177125450060421057950948630427370817658432355497658338223984871514795835638661725825459181589306214976628732000960776822328207225725433445677021946673491947342039806668959988732135442258424695051396880121607204362095950808804011464425944288106053037110402290470159740043730117019086725737543306429317855189542005733533341747169928679691823460603036643018653080122189851134484208169206306150724366868078143598231869370258459928352008759554545425545594569025002370122656599514780385370323944885492455639632898892161205828305525582680546935743317228557540558640828521432466573024351428714247305820017859372919181937395380638549001442204371036991323284819562205666411199980601076580732692985762966564758401658211551269334295091867226322533527995925344200974973275545942080751643595259184202924900446552190691894086094275708728327288794189853692836335618019562599120942849230980944504406276725369340372923764834304947779826564060532839190358928277959922234832365171257855423362904867308906507171343012981347966258354890955002454649770410519000493727509844485296973628383196806673897956820301066677293099547521654871851989504810178574551193486255301219983024295601944945430901483695354472202414322217155077198076250349307445631289074151760270546299528207515058570832933814375186717136792332171133521902968208997174984429855226151439726050342312436988516960730237397939025391176260873925377637015872168463968662692947275189957023281333684240575241331113480667519651805391336403464650774630159149774306186264790042516799120274584405927516316149128377960207632289829253842793684145347510863196112394814935862554093281819152302842293211971360596636470026737571849086757319603397600214805669491551048164929828400246622801738318470211797100753444088062611225054458214467172357652016166657386266816493258422013908947218648811436189246755666907487205924431985145861101964586412755259580468227923672095394424311956729566850409920114866276500192270460936995816329119031426117432951682620909684699966884731103258380164707716435564383227846566035034285708207518261067399795060109804638067014274398327422352373023705591761384116596715179170842577948805946545927229678830375012832364966889255532009175191153911401408172515138632411529514886435615444678943899331477288648942384399400938437432366487649359139165963340932089805928160585229294640544194252420873697193940966965236304310606464173540692319617101553162059703316258753662568992778496258192030148335797122937479241914568768469233574124991131462997342753596892905641998604418637160308289816825456376527388808989981790114021173637083203177749074729808153599748646119664699081454740689597890568457198887304012864329199850691151718095941238616565916513483861633982593928382110990119531539719374774947633402930500192154336535029593998128117651088582393946252163464027917968970792530743021862589877747856647137887786059090196477198888482803703679543260104286755589213752407887059278259502168252493869428326715200434629371738911383165239602876648494484026276790634546885862385548591115531109230146871639767850110871584488590425410669281887354936137971459267155037266962075010498615444324345705764723908511335502976643904343000993794904865669552497029969159858433790587229520858620646185465661470370207433494933091178192214420129628651298998746052446043053720005689510034287596247946219558933364737257754706587935642916554690420830366170103574933023611492052517104567308133142454028758640792541554069505903074174081405820785041301989918814002322545284988674835277149600941817197950976572292013959156778084664512049491902221038463263575556371769060959276650616288394852084095209940871846990281993756695859264732812246583621570420090318457767136304338507030449317712320864634461374240949319126244430435599122061448292530653776672451750688905268609179595692720383145848780280135119472189551375400606142099397955280738963883818457949706133257152993356893478970180734022463837406680898035104077131272135352623977249168688281699940586775793311834513320949400713331112107463986790233804696817259118380325648810745719677474819673696050828644082674344051509264701646383705809031691111795820740485078780546131005012882590039116553153071487399169885981909442814846872546630879465343074572078104369741279613909348661906896753577566124621863315399211881190499217017712929053190661590460965790267658164930647928443230854374442277606239526496449664061655362625405081852667810721734023883700302078243867143892494366053341510796566351060441473093137507454202309859142924687352166325001326549522049974971304192221892863094424790438078095615725911934579662179418802886130365596786332680271672880175721736516432328785137639381605062377251401948790269334852787107687466853863296885184866391834905352577697918754524634076663902175586678721185252950557125625780731107905259410658041846194042901231478670984409333050994131995062639202111941312577038577554347555490543715591292273605832451665760603352154033183664423915774795179480041812943086635259680390437841662866783584843471315958951040391972732708311363658120505448217604921369912107906740737686960629943361197530066542556811223840897644100986349895664703291834218137064532508233667874786775474404917367017699322825702388925126511869955763568045592424371182602945727009275933767548980994661978717272763360129358621853282247087846713306688572559587081398539827738661615722269460298866495517922527747334791933763748298751306709619689041623396783819677639715427152297637935507517105735614959702828328161294449996035787046285423411315106152538964604019356939867983108567909532345457112420898316625442958341457532751081956811141274131901344103566579772890747796989236742669307696269992811874602870844296975545557238037397382507547568164283163361443217380796888442345217311104880060827853355960379423089141265447470991378039647571548524602006504382741997910669749550606533179526833651941797778018553871251954198624966400029668063116747103607234139319374993972068774147078439178840028997606933482589592573937822551789392246726638535008794234242947161970861396006209101012575234009136201656384656254818348160039033282726178677103894857966645042238562077217667763642146305570656522121617490208307041393951855761080180583625737346918371557737341287289030797946369242484999477545596380647004455515555905475548235813790870365434162883388348896096990718102040384447204450209244326306425118060996446151104247574394259535057008514992016234536549719034537924527996683458822317650990359122448609336930072725967274859806055077338716338712907574947855050280365153958454482922822995264886969618937390310298319945489459505504029266784908729258027870832934862699545132679322078801842786169895996656974666151712451277232495059275147142175779322399900725810137040751733986381221181774745235580575893480844557274003931512780505677621933941971171496644733678598114030886843851458954575933075565351471749568075634691894400100825713173590793845127470017682163911407922561983581202807566648907075608772734323812056304574214230130414072650088173830409772290349272944331673516969652391747956508483009444789784401204577896326240544197354041431638217638141543337235110439266964647427040960482892899393329074152234088099402730915501764166710145182616678236689788558557714214054752952286838756193072465169225776973423846546058583085391430715647312751262740101315395346119165260377233560679381421979106778066423665951176698826846337718383163399959205132857335167307968969783396891404614560446645569130224562192349702735069967271549863183727249696950739515680883452085303256364053796252930125887362886026067726468410883078932994109107572064120807344016395318605993768141775041659751600401863483850871788706905056331069240320851830910507116801239161394801621204343462249822684171941289190681186008875580298879296789854847487398148206517605654565122493380500915577467072298082164036617284948446923720458932319665179346400209591813073250949718288214545577346449356423064104276215055301996954549440218360125986115072231155287078257215039666074758252866059228877875060406635111536891451099795224685526940461270766298971276866319113031001550468928647385308368474339614544069398612440734978324179044983545273941927003565366665273040086920141435260911165729698252779501799777075196339644161361982247951168305576099090953271609443365445969562729717128299781773603536522371099805539274276852758152761116366362918767895785751458938568804677537868619677311023528700954792586465343039897434612270622588901849432416490941225209458179589261483863609188927419065571703927273124795458842778954537258862569766132759353033371378561980952361133866084636089124813284534928803310845885320688288167766052642298540616835722755402762474580496705069819905627719163754970984426355735543256090976544341855446809606618996461014337417211932362110485541383718691091522459723084661289007508436413036311842180065593085358332463673596370539858870036745040551260175738229241257472556380723664665069291498327669900526253964901505561680606414467860970098036824993479539064085515259817097751792483757522121757756069276627443528606787384004160010352651977567657488244948143364515223188692651959610268559162455213296712501089949911726964476032569840052202593265624646491564537335137236351789991225096352860739643417456829714628429127908623142800261502348781570632414622361539327946994967459106564929447187096651439523534801815320279900453798699272285978767024824400567313841873215362397024617485594774218867593042029438465580658570751554241632720394621428146342134422530808452743972639682141241329315472968249203761656940227135201171231219155237343638591477186462715707772259358058196919353480838497484417960905490668921763853831626022996191376924058785157621421474412875070400383645768623449782787171476957055137545604262105568048132452523186385381418285010106666294672093243452729508903031285572390763273389316553077811730105792278382835845744119616254865472692779517772564587551691497130801301266592641573328144408330363422140379158452342838671288695287480816257984710892634772058219802023354337575161569988071425475337403882479568902587168701397853493188769598497129677293260028926501096478180405990733644823390736893570618832966145917655056733100574450440785287499337317407027654982803336574239612660978779211934272597809117636743220826035970452317122381819832550777306991937903484232590682736735724794314007236359914897960675514842422120138045205108675665821425119928098405560688686353168213161933939012200557624651487446177913646828865149158081918567355140139256908965596026236776275835791213181625425663171835160533732412594745569094270405328092818133228665669608777483634606484279033125565704633416157181582923057671808646690803473321936486842259188278979392501455846803275290311753907373407684238666758421058366948639960463589098910752355286418617206155709867189085083683057475420735034355792646488488532176534975263000740039291705687059601430532924282410928815357241358300426707674515326806238844306094548366085254873588169636981007479071119282502611750733263281877190494203338686537865204072855264177199820687720082631634509959624206985761446068879692759192188480362399922229172194215615772018340898305784679575199022574840213381257956252400156779288667590615459814908405070597395680214747970024154868199910175926335250653683184688262654477636235126676039228786741414754517381503367960035428317733820149762104379958178635585186270183699270985126258338209069266926813419282799201344628743491446023835870513674984482619945980783151884730825973567313488535712850757106520593877442349304239938137548405379546418338409654540674182399320597124936649140370502032371270987561505570631468498117095221236691383671741416961502763297129430074078875157155256323939822305046134887233438442988926720385344812871503632761778803647067696527625139917104877696708520043509488936591932650827542778220439176049080077291028782731598241051563589727671452116144487408233800364482072521001623275836002989574615916615258227740811165352508272033852703243360598402141933083123013101158382182879923900266665649331356074418540281834776596256604863214736889497860124708057903482901695417021297573153707437050751401690126700726991160363378357787064647407380633316325487455677005123640895398452305959634043823277382481104671137782702157563384695219293446780686158153407782355439777304886545866797068317567406060828670196634184406342541342302870923857109203876622076736345435397538986226486965602653948029855443470032687077449296705834963609293657220121751463202254443224484091632754296375244605570003281161864657988514098759340010683684432104779209411380017296408091988704751478462828286543162371659102667469235355433937312683168044827646490572575330396258919145374480961634678939806921776059891688675529992609483311657142997532313538937424029710184217164081648213275388170855396511857344365766336958551526724638420580997092933588603426802442290840708247496630118554830672072201838490450688093902189770563856830279441435648484654462172762297650932300665920852096906152799923783697204515985783216901581773384924582292836030857556383810581072019871685024191955637860372019279970553720375651329595784132357877430884762789306683997075000318776064786638280921034659230053474665584321558527350769640241407330485986095044042074672243478889212591557322532228166311147957187564912867888427632183249500453276538267183379724564306806499672844296736402245840594199195741232591113049654508107215201516549592506592730908182274362179338867374556187053847012171990053546713599863848696552815333652324092406191631419940496159532785930940729818193784166195206136454913916523414305018755078509989855881989900293864792136775507578189244165602037694711883939795655315787044283873275337240247905774660711629915144807382979366369220650557656776097112266970967701061553065729749410550214555740039187033650528752078487225835238129610952695245118520460256876541953843162987212734567241715740594728744354897159122160318042152869983956613408367135549375865099841105805388983998105795095726266345092114209938629278566274844934564778155382715606540233042631472335262118219164861338829520922005274048096737777129924486248348771176489573874186808541990343123751708071168492836962107347381130339559275979629984742315980608946640478405749694998343195604870212455650084851642948682986414118256797032554330602574915360973937766219930004230312746489463750354236172032313283057771750633981982913053768174842322997439399847499684115584102531524407212045376120307210335933799421166384848499809149209523642219827414118222473607216786846833926734544044979118984851019101440766617235913564101869954263713869221368903935762388384255157097761851631482734937269961907401337253082759425097922848106538025812234792095348844339061871257398068140281848955842012601143566593987062645902891404032787703781573559859992191308366541347907700487237328120826989817933124138096216608750964056855815146207492183048910311166445069231705919936116505217524137560472991059822280761903905095157365353141133353930441151867386219480388435344102492069962919233988227135230989058101444105310769506739714450829087809231113557402950428546466186755536462264845016908197463130758813452917170980720655281788572538051158612106222214419706595837463152851826751433598645829206918363397221288918875463278912479246824733394847028944395345645572702005385630556013627817872642669260090799284425780981866941887478235886080677143609372850359008754771010034412047776525196130014042192341611472775283573539089613003870325513120150112219128421598918527352965187951794065355532333649028301312596246247136430999889662303255790809315874751292356182654862204942770575642219118210932312070389871923809511282441688982850611109656827186358617688660186797754682367574374585555172142010599836028241641307935277443368773686170873837397781270719241993051128835630672400970264407379958508639640804838807903419120706926558655099708363360721450211664153025326926764097490289969555130456220561270399473431568082289317028502674318866267818239662922580254153938854111900825679959760094787265491755465790614352684260469679931157522085995818286603739442019918795904174965615894510499148903395566628212490939813567937023484161013366342972284505140111395118985710393048825435291341782722709896056926132368324192962159206720452847758663496152362199589939735998790887213955896913923876925447486979271217293809208240418682124897559091642170605326328103068210194356847037631470865928647375825137461882893371775913310745787969606619798627590681876041301837616357021751659369008377365295397815520360509590599722354372271043818927782741844330853844829558543057816737921975399749334423376768359720293835708081926227011555338154910950550463755915939503505457449687876358912380374794772424991231480054788198368019035180695023543193024223005612790977342135330431696144743843576998163005004113593320080887259834337576074202709606090262252994083358258329076366973681947681762144020854107635290589899550321901584626136402020860030129820005642375730016357166768896464370259951174714000299241611273536973126825094711660602455853613161522531743854138220864407629115400389963934961538619994948863122624843033258699677018860420369442197364953327415394021416490297362483026760299975270223413785452706040501777547457596660928709710412787830990682097172453172002553844744441829564632226430717519771336078012049735896482346015436437724029441535549869333894240315815429029377562632648729021735188541096136187336827505076427753935099061928114459602192539492084970814071421612229590545694524806871863934505907906863806763188381686075070898595651175880075821029370621050534336217449925657745401962729822561943603517435632419895775897150663992488931416802337866548391338558307256964009197423161557981988273989155836593836703376525093714071242160348774489721469024922666227626124205854968911917169080782845739695842998372837152351495666226568216400142667086036132549878594925518273084666052545094667374406998937077957098770822472594136227449326544271796246973685636566255751493125652467080852575443167115448490233229029013025036653051104784863976417752463164186424737909632940407881313556810630345340012541171058383381341037331188694027380322517724292883059705182147019028329998285604804943636021567491191028171342633930472168104385148393534484659508810783702858218665228325040918481581730381164098043741548410526214090128865689618403920118702690924242098230692142631350934517042379641285561310688202362653382199359835347135109887089828579140052312926712914381229686391461703140014822621836052348218775999511601884777070790347922684801777778842981116888285130825153235883204693135198356247917468782932332823790487145759576654786600729828562656156618087985739586186149887350730437845111780006280344252376301513925794899691416112180078428979780752205404675083373918443463669964170655864003919431605696904655102461155642088831805652473963376987281655584575586859153732082618215028270426736479294164273492273179109770321820939835995364834730130623940211694002885349528743006219661639251527319830935726521755995677818665532789360337621794623584548286231154087564504802636943462086819010556488754344102647170986853340661525990497889287409931659501820169712543637411378199414188656374289010929348975096626234331285250477282372995709894024946744602373590439803941998716793888544817703334521836152795861770539728952057140399699600935933181543782930315373323678751642093839613526895673594085161624649531615763779474263278248184742995309925661314827385753763084412411966945017755264479427842375531646489363982550624211293275406779188751194812886029272498925248699335444620860983926792110327579767895960026354987767184430232979564504603378810739489788652359415684610772088821972322318125613842167956813507555443908163765306654385697070394463686346525781064419850053866994034660524708564554951156376518542593738255692445244880950808043219250021268857536385411847402814720259097186565463263137534603325837629050957940100492156917287253219232420093861481756462265459513373624432743969781318638459715343151625385706283157258240068016327996935079374816396174072308076743421077525544548129172482230066160642139775614511378461169762705653074818643877334444344820427790987144311424891439400447776172162634409640197423435716219803382242238042030078650263476516953574516053896259678420671737836097647414238450768931654098606562287823898970984429568614934929036837917470734601285809492571590408705998451922405398175259244771102012827252838910944223611409794749757912312871204306067556893075392543998119185112785166250830134145519811157498793369784817639562186049293215348431536996952742875646035697637742707682225209351689596178750509487591642147026886764333122860567311881959180392364002644662682646246924831023916932502675044935572602174086154545261104922191481540019344741456782124261930325380377514251697893165503861577291950023995985566019699802275548380383104979508401097755802463391158039475710136399368559809454658155559094978984040297885887642684028822471576522031660167679468302516493383048452449178331406819228661694076579255894968185678023313465857428490452639643355274212665368909357952686328612721265285471573840101721188882194195544339464305930301083554501510288761854847383295202395085103310292454681081897558545902969579399381554165247282332757875488070665515985198081820979728371173210818640053778693839633044683776423179816413123277499133970982788943329985533807063395361629291168362392151739655732153605363858366512465858378818378610592427306447985603507501694429030927927691805559047468521623954169080255088167539622249333726067714032079068484590566134942671955907137803828491730282161918912294300044777028935298247626935810332216051773619048248807025457175928838566684858780011516543170131825103528016758948842726167035133030067323541182429332058274296062463818386422870225007356688793507843025230977125884424082473043095277962270522800450534037479175144382493857706618399921405911790240417307440470579864544484924190672280461127884856622741736865042444758546361428195581674664755637381637115555836942691211188283168755413066487908593515726949519260882897822446704207727674427240824709319231723329688571563901745655056608582606630399129504393809602426302296251503318649695696069567392063230977858713289229551245500255493142809646373960495523275523873706326154162002548376411660043742127262517747079210355896116395207134758714673609026428145177717017577238226161847632609471127248258755386546273738989341523056456647112462338910573654518202225364080508905758097927474251937069202386022182047594867716893205653494295256502395224859692385569741722856999599051212947158157921986260305973835440500795286097765080801204703698700239849812074552098274465246817924202164484567608247407011201623346526588294427734922453852771329358895401680052211307571321780383316119641795037700450234631089087857997743455198528125719789164184291658894781251342128573204071660638455914876426836866122783009543383263428337071582948893275776024358788066969091177268555229641845507396106935082008770351221043133897037259473093175903093803782979490165411117020880694206748388807047572339649130987682434450756450063404110899918629550406153883753292815135183668822113910049730275477613961079971624368986845070322301537721515108458348110759824661131587536143425739788165016776318194290258556117041117355574930161667710763492903829640287830565084878613601636328575688408847807744618214853426175792325792220416673271607064954852067159793971920220320030935280124171368081072235261738076102104121021442661679349940741682172314608687433444918840456757170303375150021667574828631319543867682551338202589585550670693628001836124858749458058975982147939498760646279181519500039033451464814010880085915482123382598753424175454878589419366593713669892962186766175521507999483795034473662724524916756822232615710121504497611980279015359506107949645062802577615729053597107722656879785825906629851154133891928539487163151155120931361011021368697437998546223196075170037160499959897780756766345156353784286815841108292675859704893013944748424300135048139026698253081976612381835949697490786740450720425778544737313357118117769624072962196041355606903303220113545904506923067759669294942825858397137142924740831212519548745589979947408220737699523963381928735274567554328622059196768615672112469557011407314341831233492770426124689060496701025814030099634537585368464961718522964372713639507304802042729301000011713887264017325626292120684128756677880064360948343911140928079072110987636916639609920515560197066200129419945571100094328119298748584504474839677161256781008996109516886494124707313367151308436611930914565944743919101478106795421097183695802107836610444636342827365449961566736570091765812046593549742320695120813548378228773068257138783895049229593300268481600677674070112071349326587146804471060111333897515806527692576666383607314398095440297054272904927227182518396846613486403224382424796895107727669501080105049066438623589543871522204014525037986023689761033220478385388948624022409596869146221255899972395831573897801640334195837915349863826948096380842032384283690572822989202669762422296232570356758692305732529736308251294339777508033841113260907824088127313773312560367265472546208177142326019637382105039941125047263004193255995856020445774948081475587555555560474666360557236954826549294439097691325833088499612214621782849121454920822317373048831752968837825738050729863236233747938089512709234244174548923481184395270918456277514837504344647575859774995002933050381393080260009454727458272710409229320546791340927485371162577267570658458893061259740094392578781506765389220281055655347495472002069080141396892195056223198492350714227887053182339812285856043085927218965137437987049649769730054978738477608356121470309062327313074257575378860833420577613355236945474962959645044398699627007386652122856395370695743461654509691172860954779520576627790456680869987750071782888951338915404923501498437189598243377566455594218146021331088232751253091099908122886565754771938019872365795685955074667066603395517148409023593625747541964414905544301567300476300520339255104116824623250476062500267112949498624419888352658350640316593456129554086926114996757452709583184705630967594916131993316853305772924379484434760943389685954678178912945053881230519602037200996793305157054170594914257894814618180938313363320289223598911154934156381033934782796445843249156604918606289323605000241618719222500809079148315721598530966191613189318660938133348421091948357258790009395634251999492168782371520882678604324902561273191494821739883973096654972100616997489720109423981894341095714770389434064026281134433540210015033365801647923925197583123733199413273427589729604957245902350382928850842685287524846049649869470288929628100636771830244070799773915573468745513684922882178026253457577148689246028905618812537136094822196113655043550869685445516004175102913468000925215308971295532432063011814606373601579208203724578837942098681232890476751059755621840265951480400730933465833653594041338678558939376938150521475981535612988488126130910099704755837668468555609322728543507657370120431409774665777330140014034368511248684749384064599291182992880292402543995340499184625317219112956598295952007995740575866882879642632636496270120058700878041931924339657535893674109716531533759126612414178092629073259229703691569687881574400236122122988922273171508802358066020148861437141556941787551516083187283532332131410814766980862638907879113183435461036866210187424919247346942924508245169588165901596550829494634357938587726834757606786218868845565170431352563153292496379336952458392864726755282853559905318397963738287845571547024258049091304331992509428778610410118537708279380407776123704932291129781142156553202921898576507559132485320148041657954284160930905083721801466450080078581179439284449398212111718791521827827990961097740936060378319952805673816070429102168635699481770892185004497203592014380498895477072588323615733037903929896263984784694181990817696369397562269431159467856167501606046417714322976656898595498188850592089804547387893690058531035029083476361000496047684314583215786361753134795663367783306243482034419207614158699187495275716359950794712988813845363072381618018443577516127933813049774234346794993054014934259570513608792334620198334329392090425062300210102849410455684598652911602773220896356606920284235196514590372877621568510847724413180460678110101613840647167701779485673298795767151104376792420942866903826879186934222597109306271445443053095006907082167341199642577138443855313081035259873076304102115220365259021321033660301940156315217314615204316644494124348532413548099204745535132639505284855439191988564078008392241324384542430548458657982432689441799737354275935890856072690642353847973406069840100003080004739899308572368358976663609227526227652634033031038621199046320934492170365788457773314851087576149741761173124791899373020559838457131079108565773358755866075026735459845172456156230511937779811781603440792491944678892462531508451130710240298537732179316818349841285893092714291256711248018085812719057094562857298264321351337791081961497672297479767534190927439251519892760396231500848619585913459860937513795070004571432996220864099650662706258350075770544656721826292285532360001756358820269001169742324489530154929664060610231585593394486056704818798589273300308771483399338800310442014311425809776141531735038526965493098803705067764095487763170129973983998903401524744990172157189757606180093541576598553806522867975970760601559986399947977688271601181878560178391067235155553117180957934785362926072497448458036523583813869256505321723013575489335010670075722599578768988413322975769116770202973047465611032608346419217152756465338231535617553285410867790470800383436128071860155269336096750725852003766011173318608816169165282106261868268716109429378969228621609303806044216308621874384948477858042456802919315959141226343928152947282359842913152719114124575609180655460104413306639376426859128817931907289895952271343932802440046143366772425845720670220145368409404449741869091400557427712502508918157907782302676251305287006785535780791843367434618778211256529173930643886876613108185587475320717302140628254676365062213607129532504207682370916473859035850041350987592525271227003254353557406798403760262704055406572258523232415713952758807260545688769972105487746098553549874935017450321721074292639205642876917228864481720533169528238356115706082885507925815133607256179006550972342439450097194783633744257743732988607014588381028450391456561740458762828795467982718379606154979407459954743884534284101615991838941880215452599373785980621724211752274725973789436136370648578878274277175699933726617669787470580502808417415103184040111480578332096279734909045719034075117181120675466405700073144651933297380043694055531390295362093632464670482321325472131570040969976701135221112488612743125074028175548704506335130109245396845264189804179852760601429579700191780124020913041041418902532654289817457546765320354045956353466835126897538052928706692522974513482863153955375284503683618710445260116418951703696544105536569347060716471677892180424007859789776281104308423963168598598331129070624714552528424094099619990999865532308445125712808954532263540886833612593711048720037274695538782419170386799191983291230419179955219661138023001511504149557980553862945778055638378217719296780136612958030554754667227143998125300820733916513807115357069645357107099982298390920245707754350818638466102147065231074938516932888269983248076187167094440773659541914109987057675748440035944959393637896599842671784005265224327120593167271850709033078102070385805729663320651633763565219186718957452885611231627005180897375305035953719660185664651252555898551146894169026492070677230042726514263916153377598879625254309134316322975290003986810682832296977459967422351322563718749669552618762656786702380843471997442660341595121776217176609965525088239386360663390380830202108645312815110505591252845782045953838612215537495926346407607139013544802138677405340925648841269652656162074558619855351838161971524325992640904906162223399814877920485793132457266070889492448395364191608966834102392620697933597085616131791992577852762044652601210062277694345890254861596717855126826374265113934549675969280512202319048899615389286025441826832468342513420287239438977767162894275724538914917071470930372573314495403870843944148885747032717356070001585423848327202898504854636631274829990138473247564922498998134851606078970830712458318180793793107395504887428721740251257793034978963109344065522137319671909459620093176915970258706964869850759584668061762865920377342283430299843271280965261392159254349758228522699719953908884909802104119956133698195637413418719948452929369511868517860193291457488843913821142767591887245190778038072915429121171307309622838478409978005599182443722998031436428328611109883659064795651756526946059083599784169915460605095993593625466965449854929944061602147945882046828494574059521881560326574168012286709059205482825176230502584864249992136367809107693654894336032675330689257145552740168709675833857723403283662067319134229505460405429439402632195542433441908169122529931989048669091973349524072397822356894497303047523969235350128551925983772271914396975020626627994361755472229027967197145537078534038449723201203217201581987687538184650755616126668266999173964082591687052286751167008706096055479561164944598226682663515909311280919823174493928582954948410103329779577476969179536492064116207692633591137196530183730480172756034265068400064768385799189438410654973629827932410033436500957939402142572369509508651912419961011617296479695368483482080139607010348009531985757949362314983364469544920874325236772968099941565359637480534649942662416957619602633793459831277380062219979850518150712295812759042849182290999956580237370668596745814139218218009980024047789879450699999207162646071129586789664677209833049102144199856117062821584830133585045906266237677720024348113041870397984506450367853195149841667663150220210511956300541275996375008353623409270963178895658053790918156085089756993377372892432843267999726274795536504713147166927082973592368117081637475056528362742020907000235470518842147444949629411205228157721091289524727705864127195721245761338219688855888686803749853373873998800495698561535357682558981993202588621192329484133747606206527870513801896404289140266043876334128063765073244980114008491946664098430988212423791584159433996872440807186703643600941379617697137194755323757988133649862039327387846088120580148231922459091269080245989030668531804006775780861970554949348559986467585984628669458725457573792079874636764753194219077290364871935681278733131279221751141436414749064892578723505080931218708361686603427702330818329812972323616584419789149589894206674842710606343250621516025534476391257730872171598820655617633318775312950205797677671175009816645612598410738400650872556119642371877537945989213159350323413491948587227363200414343181174911859390160880272345218169294740967530589125170043707402407452425443228323135711529931729044539564783627501524303576072825056480014565999074053169218073059045491634122923471635471484751739472896365067494365394905995396739308384104026478394682042215835395457316609652586036414365495259664452772049033733419642768861162057877556279445542990071640447255217479063557625200458069155587158060675359491515479500641806594191900913899784447041854289801191021096425385146806649930260151069988863229459842776197523518284826574507727986749321835613426748109962133162777488961265559468630701795471116632855360806687390633784114947424911856812443683122892152067981062266934509673110851740565933144111681587242998016459592929823336559961474503852836649617313821973250771966964771195884420365353718573416936776294436291252571985116980019350483447671777635044606902742520899539089952670554641678291323730547969905343120620493436645908389266984926340209003326303607452510539218391300176541334965704947633595766642946319548694378488121207035792658249580406521130817545045619946354422495829598250804249205573837822013736072947841028529943240966297319748297599074957474301072743687567197021428787232703302820995336268595018473689448655296702192696614989487832150556162412205035546895302261520595410091337674774423678076569404500972472483958880272258430805175659950114979546375903878149093946948245172292551805622183210077043296925123059289213621718007584942075511283642645598125245088373630982585544879617165763017547883478168413451461724861746710287797338856876501544627987487175809356515498097259559329463163004241899136779204199449968048245022555426552669848842766276988397459343524887532148873115514043862702774480523634852029452226494494764434537642318976108678318624015005451564388742957810557513160702166141964676119494790218313071928956333262257573701524377165869109898791397742163939395533536640477535349853724589058841406920309058100045905204661723129180094294067803114871728178022158089988873113005266607988962315716513706678322741443276637034638339586145117886108520308432720771337713815705930281005204850883873248337269304896008842405313307299139814784585532681046998613483623987203358885511372343447406095579704297117133233750378892289072446892284595186847777604972108510555022225133773455530846698030575258430419514396812042962637290420258847672319772190296282519862513470855058426164326843991322536845095086340688004802051388080612359703627612655802335243411773800545820392697204481084564810652420626569139186549379443484550075063177646751709653880000924194793816065143411361281931217451121173361872865284329448242157818054544672867294871364877026335408415296959936622805271249123304802550622148279726330249950258645015247251957064327036314219848348096308071413408697252881924687941286880714151745405655149749575317130732653511702647294139480350388879890821507965655465653626331667405197949555693501084271193200076986147065015813630605968940179819678897639369746895321241744344023570194185000862861216808339529293298180360337843836245568489296917900272752717323924600181331217727377522384272975154973729492851854171865280558726985463437291481896280186813236457134257457888902902653472098936005093616325768032863446783226814820979585446854310704799683725474563974137289562659032936553147140653129253977579842834079042415862932020368121449435058225208320908195776438532293087987197395400108353240723506045236415193261932856046936745354947973227020674650155672916826650434261057348370552668767184935085641174190214803444462695481478454835541392647723840950399491539711392568917846441745827860931154884331025636321380115216668742864917434482747812335518984338847986376056660267542675060034587705899481635396914276058445963045869100112383423288444994246183600497114645742453815392420983995834966931931238360711436531091969505192462233672881216575751468363134364566640653548650614156321061861655408055391753163972011461232912405782954609149294547789346484418235542271136752752352574030708270415086966138627267043552852791571625021754614804000984193800750466581010539012833173649900178438568945224967299945841649891448689251192429394761153791275362737491130454118889247819490922040613209359688701885705274878237206208436044787737732988475456713872658320670325633745088655132027078176603945776591654232291820859559073495901360245344930679096388257033246860301855156864592182722561159214384118178675043414174167401078630479928796509121763320931027982977431550474685487642394439687506164319649151472097885286071977828569527365751258083395728722350075983557154434581429638229433342081921697963531951502889055122514638202204557137025126442100816396575637754205008631888858469561620377787420977695548823333042325955350231137152428643493278312968929965886463653441400986606956983682332943311472959039657180374017359308209533720591720972692710582676697191929566859515524843805058945179919895648338597456787149618129437425613885973162860234362676161581660288411581430301912607515718031761746112430159675095977207916349224185524492401831407014445320125670230978408422007094427853037814637599318562807951267415199096866463651513591535830806548655450651521580121062248833371371518513889838438027791896795500724530774726732463604187047193182400101609885319410619400215838569326800347209696122964672459735859651197610439505555754569268236266363808837644894521200707666955543080416245830841361932614025067505334349586296446862793184703869134334489323158814361308905934685143652510059870975848976326103850124523338298108299711764105453048348545646274792084678405578383854882632942545372682566560412703813285045383083960507906545709817870669620425223101576945876050072888210044797928671422876461064034794628329299286630935198870375892538062478372258731337575785071440272255649904004642356996441088316952259945633432887419609279369859926388036965584636951919014993197328888435754437835539357892640424531325374724224429856438144734580406509022471181374089089942402799853215332303058574873102603363314954936416455259031348558999642091447163421724741811289188754523765072343905023143752926558815178801460203657294663203614696748332541037275902994998508906616952001587897987969906732797238721764080835193724495831216499953154139108241315934677303558339205162071998759682636076068073793007507341814039804223933570988633703398183814327058035648905486641393847313434295275262432119791705304908410988757113802218499707028991845354217154418562669211917104825762379065872817228425665214089660076987179418646307443995270000435932097804415538887082104602715766896292168508661976191418231352332427420647639099527980679690596455615649354540594988265124982635231231490955268934682801755362503693669717010945154908393013559878845148944657305141667968757777713768553277470292448502446691939835686692433188324938285465698622052289714904729913402338832480887324534675278646921796132484050896818928083772400332943527457465169884887921009711278982382201698415151801624517781962650668608203737579016267989718929920444012795975432858284006963211282020833130901303910644712376265671953590398132674257840430821383983090062603469482988026573652704850446620559302641438498948906077518616751833559411686745686722296272540416558890445552474567953760895107686658829750129834652746150101391108301075676612507612769436433599431204798744202436055532218418328771687187142820832123845966172020676321810854030102664796844804630855995171042410182782777685725492738098132358466456447907830344266509005441837490307448369539633580724293240189859452223019114892391138649578831302402794697497270790262551153550425355320831101661135445174630155069670394303821222881814478928793688534192808769475029947956370234014608228542156044709683812038190370221343253134740530528076292212735378978892930655747823176058961472477818681487207129256322321159521069775306024281570621705712008717643418352905117158477401105789262351057490422057241705016504949923342597148222656410044019142264033995046954915494666848912697949594614007490737454145549609642098098927022787866767794383236759617236730865521420100331641737311217992718143717180476139305686710681643751128555671305395008304646672019735908918907074792983525922616402316606552314204178476864349405863176100169955821536550719659124300418781537216002521841909591926329394715042165259851407623386675974179316481877574894539922196475427645270006823831031082420724537948216366342546373680864524585627601196362988359885887140269127188541436062503938243457094432053013246559456490258126816377480180312695081899490316160205405586965303524336385714377798527845109493656284620470742683815766313556233895053332920441906887971116132186615350313104017381074677064006638013837268453847206239921489150874136809553522854392273549444233451251475631125789121138864300329084659430521255725619060025496570083077895279348900352440036689444155727591757027854523843450503807363215811046870903652841397880632144650678831347652404977027195871137283676103297060203920553293583023168047332832229087917533739540981534576363723865622329907181045322756735985055978317146296948817756002625746093802317337809679133286107905449377717965796026359468795544203562521308531590954026562013637719617794587029613495616652642663044763859955070330097080261793944532349669759031167162084816082378545669289051046743879756044762617572792875593962142893968278567676169433328581017065306366559531542260850869962344318724479605936779565991712183448373158253491442809773628177136411339314490955776338079635627890632886973819732737309596390958866434334893925664222641080609091057777723719600907751409040160424956597220036700301386422370650739746467451145959265329121791857175980953650065592669347470207551080182153293100271050248234879160503868231522582414468182434422417884569628135493607523774839268040150255274423585237606309124473455909146568789709485225192493765709156829582924320726226798558628384985155312662214530044129576002356092069343619585202120541082888509169201122395317416406259434200050276295600638767141806558176492856142097461776824799870662615795506352034285415787538550212678748045977477413598677685649083038529420118273965259401817083766962574599728239371789680482584083966636786258667117719719519826757432523101512161843195558782373403536449068915575256399738108202454086823745348467293389549803436395289620389829257870314592780313397798687354246860292563128427656711430819347432816327199636414536518945130551191512042197817980037133412924310095828418122209181037581688238629077104899619123575509615090441412242653994729039496549444585814415447126349356920217265994700506801351555097479758430708559933812167946118722041350230445750017108637676511760542498351188700655518275937131269561911908544048733540823142515810754448147865632975954142064819230379890075406400606536195817511147948549238399925458819519356649373072648284052627123359227002388961238946457930710588058094549070745924591754293329805460991637059359018459419473837996760662782189677674204212287840653437986601303928481915613766927619838397149216276274946657297525243993166811102912221187241916651488578024184816191129987244322808736183764593920368136418926162960613707697194383760337696173475141305283597347217058403344568218079342501938915863271326200364931435637938288644109888611253062339459003778674278704319079882849227440267849319930343888580552836446427186266608677904981995924999220772446517678991517596788293873849607919883010041919868708778525958447221975207950608590237860820174004182443198254591416012598140496752607299490372912217372861672296357846311335224366081197854853206109715304847489381698101730004153074234038070897116574279344694536352668573662071277131449418387676198617106954172480572760417542265626346023599347438806711578796619278817791183914126350601159574376748376244778259092077249185045434306409444414014062378583098271308085956651614732811627216172142633827904407344542978089407412133892095738103841833702749071637056434529897972525072990372867366322408775067911881937463248245107025246552337071717275564074168958000801481330130208540330372782604308475734043262931088229522455395928064340233827026895579523681579308739819000007117667242621147977450208587376467737074317172943171800919539985829393782063713538592148350164831411294686121678955959498238130483810550334315959360815982530889796085850074801944554630792369738742116306752048244677890107273129662886840838539859374415889424023837419546505932255039464442953509742187764549342484936253088764803435307121530342394606758133708826354487173152455807035335532789046926101096361239890889981879719837552682945396089571435540136977486769831997585905185908344263165500878258859361798386479605670665070919617458725488515247396527921697948482937889851144961870857486065569101882549967827602717881853053889630090553333678556976427557248295173740673434335467472475819957056752476521184330128940812716244847570198087131947951663503576424658071622029100305575663389115783538121834855083282108279694292584973768223141683345044553743090190393566575282690051227319988209004831852382725844559073109071502386347946785710769852174242894346799328844651117904288416613236074167523725875864102366189247072428748667020900223357395053196865319434213297035473995933954447332456443190259867762439885138776778184660503785025550766530341667023960188304429747989174540578960679946012891023472451199598625544386952634971567559439710524063922212769513767679400098936375988342728471156402686665945099676248320030118768809718190729898906140860220260835335338876403318605227280227776079697032346231048750357229014349925054725390623377770570056868196085471245073021766037262115823768914907866539423357893653389818899691669516501751327362499700541202053122191492707856163087456538062306617717364713745443320968436556185927918755386573617742212941873128167516007002337819535642274571302143698509162849493942084273959847259049023217124845449214158030760912046953300627430715860928427016265948895591067730548892717770434209242239758988133048664406372796201222886464298765693292720878115251616676131081017334665165685265539258178335273176909242855762210310272255233343134739019156610730930230750409025068811067529930713825488842528232332729882692584475349642390934501772871239938497933417145962083735275435733867386419728909042936039058138533051327001955794388709792440698039651920618473645516892009111798469165626674932932423495508241662108728649174171447994833723091229186218930980189574964057435680372409167156659014987820534757489344786098871020273332878448719182946491148062247563981176482508047547398047936906786714839664634479418044808505081995682393168454961491308923182754648790272769754241279435990749437167804243587252203236379896699842051152375626656438443553225404133475273102214113153729129770120444033290003463775403309524237678765939894981544353925908776508770912667537118811491780036187985171083381868201941700577576000150444125826582547601996070802342506094793817960196797488274208145546552937569118828723429448618766172371702259024952110260555184142903184553208238975154263229991919540157301368855801155457944561847815286978366039455456065044016492522769802051481077565687519855806830799875641300191219471073961118686063588308122146298655772259821461273732821734045866371931804922329521195339006106092984711767490777373213644501666764423016186895204138859448383610108295148236860603327205565451738202805007497120872643887532381358654388574996432597313319603442228034188415439182036210707616778344718967483872164098497570209401461553163182564938760843134750109644898195568040093623646507211552070133889885428873456461239857434299090141165637342229481646630743818946110789357909629328489789328703956881938907379633765638053695349993538487571762319432763533158488141224294520757153572240990118997540589447481041001630957475479393865045111536493095254435600619861588337487162571240949423703059690524448362408156162803390234097479334805386379946746007515112371847304630300338933873993026047819290867875074307793989803172316582809221293878438531631610259354414442561798507951024625527691409589532840177777253363015156526947184235967450381264943282906389428792667361408390665376832337713830695006313120998854904973391014769170891062543975880587446951761059169933784025091631329010599206176718986456437677089813145729715880123479162918731270323926479918986756798405517553143559633246826289726495190927588604811868018018602874685049213574588224473396735864051284629406686535466501067543768406151446988282990882526335121015615040548964527827551389004105027547282129270933703448039531740778655444142916530500895094235230015671300189722083789733659715613217888653734571483926830176766229753013698061131080743493694786122104290438162636147466712527099250523012004384891590218988376821573405830130899226990123865680047966749393443134076776120276254179133737670875110270796078568393252262568210240035293129520571137615933710884317662484116694085654026240414788366031139216242797589831956457045846075789661484883764535022644533086408229187430147899523086793297454992241183638221337930732720543577943756916993836605261955096977711054910013204794640718676620509045997133697404053521373485066856696464235903982760459473415327154570147547326477645865654381400134807902665866193794846548134637766145522693317856788730701923373389558711865974618236394984577254900349866997408609627334942388209035245817603329708304726762714153665623418429804010992358300108979651832179287734049923621371268607380328246657151812489970976783522642727286469544238801993368234662265363381699305597511049800275863948061740042995171831913608902944711327736183522013167154311958410287021026573560476654041266122529463647772481630648673172855363188488819478426412677095773374186519569188447507568610695765811934131135712064622946244416265078961878448973695169194789006061501906462506520910302001916871351172715890598548797143137392935177732380462335545976791011268092351035489634471223073157501641812124216462656508650397711134486788406303798936985559125773847774836893823649386888243818738449268210496131763790757542829707454850197097241471649693541635009654747899644385056315398929631975610311316430132586656910832692958445167210726363855071052587695083717083399255668993700718868672364106692651927660091548478875066183429946831104011773600567096337265845325587244749344412121939407260627608716978292002236050806599708919917381855610466634536307052637524378566726798425890362773983979408816328831913391855853891892113473935697292337886076072140557313166583915239162544749253042373382507960626277020749719671480788797444853555124543885079764869711265175890595159003952395388803237691462182558238274013110722896149499703074027952011117552748593710627306267995923387306344627839405511850319524359891950122033878026929985590343782447257906106477098842664378406876563650228982176131368463422773154735636791340317168881277322297482158058139354375572486008912537749375681186998641931437489074690381247935811228372116758373791472628223674616315272831234901988623701262558488373675382379479160378820305386466422322102931528072398315820921753992353158901537659918139122668090005380217521569574595098344737971313436679497716300837231035151263109558570731708990436349950416413239406246922439801674918009124814722278144867950546928334171511475147227539480998228253160430068295161030866249408277413171643240625909157858252113484716256224530135999423900637804724561056863790834878141473986575771399974068830156563153107817026923989366509781643287942225149658686210380626850153215385380312880174200486888625766675325013754816315685713979235987176537898953840621006821735948756710024206832468167768808439167022100063699699562165002561836653012297441718248818577407293360732115376474117355152876917159549579691958823303912189489994704196761986931266275053769490643253606737317282584075712215805788666114520961623929245413026361827973981855146942208871401321483716179870344101722307792863969263090067911529673789084333307698126832226437695907309844720777035676200269848143141318154908367889166730733837084329630662191687931959087041820390301441910428032437734311703048000476188484518624315634584273309593069848613305688305507338075671543309597392545775871301699577720306558097233746431474819086505708454764252885396598309265245247983209228256404000569115162076717907011001751068420196426407133074255489824092870363526455112626928965646365789122516857500348970271761698660783350956259971575347265785148996471471643392846952228235874213608572635964992657176020224747818796183667538178469905012195743185682454790034302047846210021231246513418708037423046889741337391660388802619424624771590742942872505460675627145407963840289671248988520189867446726830152657446049972966946593435130974842777976813196157065796909907673487847640354065437942953345563226123007500397224594385901935215439936364757612197841163522145300992866533568295379335566579458194890198879998945649142968755958478461949592804953526164736731734538055386996264461429285093375834533202528868070977307902640185556342747849967611239007126848630391353262071313780020605914244500258318138792273026703050245473051219005934361522010876365555524285244597669233474313681999561873782176266259271622224584300067492840719977413298923872837933048126950372024831998592326817353557413107079496612840403521235394404973171131600111706441497612552105411093166213599916685258287077431680201275215845342395346236292539901721648022179248570730239897943331936450891576276278766547742140343092413311035827114698441336101945015242678640857383252515254618487334752123493125742985889163182649226240252750656983804502763190848204613897154765503938470108286134431680375701664665794226607207331209770770062371414004621423099023293666148191724720451079601536028923893064996103057631121849823576641754520647309016073240382144074439861829950852207842097549800907990543405709502816008721405893566964397492163187092239581825875850144144679932699807536769075026335641335443158327720758906367963006358963293188991088329148893060406223272351786268702538457550333414674502642670559498085024447732092906214277955267500911311170309680318652854006559511234315294072235852613730958676630551430397918932690822913207903356566303170901585228141594964747174392270133342382367628812882498911001208499624625418259470545437507971471066874532458409892764307853421858987819924934943595821727740250610113164359595144395920522122546766992728689715412767001426719231566453185467451649674132581529290675686027479255257324689307474781092022581450486418652051218590081459110865695304864070943003879544906928202340335032683271569104383394063343635231335418918923254148688281706165031981280023419450107867147348366954827310438654287098747249378668501065264833131707571762613806872831170069637390843529607787972841073412550351666400887093992378173033351264968811303848948048395867513049789880602341477678374691616602602445514628958212582915828466529355182416595650521732896354609709260623395728506387595489285656005607259010855426735074808788677513009586270235298734422236700315782768443967984643403992582378475171905748519476243965184634356813145289138009405666596158099820013919604184923434573495799040231714989587760227390816526349884207025442774835050310196732208622130796150636803666931351307808321750274050689738947916440651948495397568087903582945695878699435868809995036353415921660903971893746512462044511687054089237516884832711785858997840324998193073343604372011482812752677086271887670718390746147528555062068955139375676734420437118577296744311307312226629081742944807191893607711332322636095726009939512291538061265559004442460849097960379525173927423955642858099937468641847048169296162865598489004705692534204690956945790342395871850169892090183157003774629548753773186812702650083548645042230062306643287494971868678609954978358503967625536788021868991008148337005127829566404998127369721696020289596849211496642185392582863370292245705078001891078340277785802541193707404035066390482916943508559947131740189016142619968106538088927759716995000432665505221587429420952811730770057227411708390518936535105767379319722222943622951851906816220066838877168457657685741483268389444185073274771350404603207037723553804367871714684321504579791048028123504082564778732644219365749428491312353020527773216295406866428710208042381458572338383146717905140247617323539188656264269201051608722941747588669993721500745245295678954495099340033294724870980080132484120965561050425599596215459048161066527669353053097549000346848833162456352943302279846135495029567927918564879373022249011817470457219201385957585678402982025303395134859956568293516279401399090107826407816282764688770242736154387271220870847657501996316535203742098957492336254215136249700489360758236232793102226750073362343521312709142441832762098715371998024789982503144488524220976851599635111322344696563262257192654730043018115478492471435914192578457840820977978154475837944665360475647790136081894875843724781175383122238816532748633708452183934219701610440065549851351029128792773720899502788151967328182055735412109002990947648933789299342077396766897519508613769433068019920741433060804249928548690186892557844854896438484136388992094254628161912746206561470127162792049481803057266297099511858581801534322996780971582523656425384935501077830081742307201377188063638887251845127064100927085757528563595755286839136273711155255811805763845416691921416619696546629636720502235892616763491379463986084168303203053704629595533003510344293940469875021453794296052671721796231869637584647662361151914697029250454895359250221145767268877228619542331252566682221706890237198182805182635614588100658839443161205359940302696133763919927739372693042129820907483442940863188275925396666070890197204578052996284685648885730051088225124814524162251414297013925360137935403701354971143269576171400598717275506143795615190860377125642098360882694419433934174020672932844084268383138686599458985482601273344715487028416594749997359019775775890501011956517916425298921629983543993378627968119475795159820101184241189447530555889706603093598700988125710194545371327774146899765092141965411557481472817662248283554190535033914723723935920410418481255692164800496878079299909929002382291915688045717664525956929258606043099389587379544395805691352124554664429853208784100685856067388582330456625011876014029368994998153645638121943514149561062356619138210462102966890039393297556718077907477601208702250838356210846477468626757129302072700112184195807178516585545053933134205456655551507110508268889197170273087211027034219826779163549945690749158400193903628978566760578704570668361143860269968853632551879620111710916513520456737625828901382842734474385924662238973963539507148728619024623847110271931090281193997239363715355876010678053673149144369042594565983311983463158336100956933407415363198215053737792315203633775925840244108246629118270182367756584956177257987437362620781338089790274622233671884693912833888367205703034162987428874426941824707045432704271836669722236504561001342291868859858615368204128031339190231552170432925210768478219831323498923591169887971437915382875121873860237799331165624383361905821756672880150600714098039144563242967780339050252663156595862061936606552200304095687067437197489644860414460974338136233510036107669658825967053167147084614004439867092888187279755208101673143418020368688063938843213050250144570751427877435349564409608290715231782554040627462377355709016732662689830507039796126872313189429202295595537117309602013012299880674228700159352837692712413377876412453845773151598792273635343419274671755680566838563296434424251723576862429236713966684770787392142301427843298566291535911546733308847967203930623911747148676359875814107060848037213658316907645751900072607790840760767173928248267377772822552959500880531578270270234737739060472199932126330785144311805124579608387678019556332310578111401705140396496784206359272378175986626580262992385718763234554512573901153715833874668092074110522349150582668569010411674957225874519596253115779946046453498751953429136746891541211210690737476125162427691207326055252264579830891201633932616165592456037528631721260835968123548017931015988436372988690996453172047076591393719155778204121491909795448328749329073215330101299528109529110024592275010900913538400716537756968705617256945229814666704818625699515285450593250028231842687906702439780436071418271306424523691939206380961925685214217148858748228222411297174890273865060114521242288158633470407494777102763090690294855627312501556302995375647214757547132249305907073891986612299900540534675799455138876105122772887811887762844591673508808599346390343897129218616509832845437684173970619686934250018352484215659795571383076573514344253990707164593227214462243424771825490681834798838974439411751867814320164756179422309192766757277227098833323008541258339498192088483854107733253611745952818836420811663891717314284412829029044175735458872243728332013007954439553034993640883442320290653502072930578822105141690590070268000570278996625711030874641777199832426951694961438992932200432249782120890388948855980952491382866867484852242343608165536540408902418986685502976446227314982390728827287251550092694458675912945325863416785852064580084693742017798349249699884953916189095882047877517169175075215380062052630185015954597078583082312607356557110602888102031288013616944715683581960858056315364519481525316420666780482714708274539004458707456524309166792289627977561636522527154303733908471269248405940659067766771732549197671737227060380911514733146236806823792037022906811895665562032772439589959739022842155377719871497975645561352654874672213876561469819296625320417412686282152482718241680596625458503661534504889934003735538698990302912996113498149903567081311498817107617259649231835864179936465975748279044612963045769216507013407416000162399968890277345886128842327974348413854378878673685571487362872695049598748623082241111381866249352983717584094050519990399821449674963180168095480761449862157711397780659131346223497314867398644428226221566764077719817334552230162292918459416009938510330243674168435571350438061464110221187605682735911401923329644817507363202294209719975177092250624643598886440505112595861093372631287125806426518207734140953778336236535180907340679527228407916959561548463196541861962771620630762024136519569738029179555037374901032025643390271706596865211699112905161770332048737405786027981370974321955657423076770831671613688576849363083851652908909511520824834388213946975951327404985156400264189340084328732643863297582868551849406787073816712041120488270256100282815031328149816818544035408220597863725945539979492263204932560290670184600695803641857903602599423462979175571031441043784053776762059168878613402385831794931804172423015249531923280769634841848429091090121689643977649378820407781181098464541287344774060806238147876767344342046149549467802553175807002551138058800289452924197229079511228065690902040880817898558203736302121103147948256066065865326819941800729471234669728300823763244371951326769133480206602682882336406560866950272539542576235509208627563903624112366567642682865838755234956278102464563457905715936205020326028163464406860022352694472114363492272497693748237224865265487581913704630477097689354150590118685011435541159140005933347246593050656151578838102182237822282286322844369143884456975941324489464764989419433316872901038985180287207170739085970514905475493703099476103043285069935193140916273106094067224949756166033598789478747489732839069976185709751817518587318887547462159545533145657358121665928843288257161863909566271348186961983904948598172721635872532756902523019610911861135651781027110729820903390425831425110417873914330420445411847914912000236848084806672676566321952912722868489378529091024665240846049699269980592034381153710202679530334044686569826847068679958565134400242190907362809611949653156893863793407225777458364754683784712698201945585506114827647872821743802557343639717297910661783987668364961533372810362214455877795104835255688086478552100655304318305540191242927131541944138532917955550758569361083822113750086114071483797868405043104522498374060669343196881631194190334190295147735273080784125322228311870767418952968638391687745672967915814124248667273539417337776058415810929740256455225544575995379757598576990234308658698561902997561850155816503915876729177095797292102934245694809684045239799456022441599957237545741313125991453429287502907935075049856064251059128428593916427962604120640339301984398623707852705769943157227181811514413039616269575775900070582302304144922643086383931796507575492343230683308627603799962626020152544379477275406554528156951467098858422700889749581470859309736664007098178853708603405081033185837212688505573960182954710260098131770574824675197307030001684594756789296571012063340122741816544178141465260522167473939688251275089062323921326699560436311527218089173624247683392474632893560155120068498379858686210692107496583321075126887720802020580718335119397888438512129304937258805301222433554084218607528413345354299639147005637335502704768916473964583093327012621351025946000999948384748532220484894359429059064435873196138793547884577774617968027194312565310605537955842230802089393600870158372943189215423986712311954584130683397532960305585716118840883290243317973523995442212732143565499341206137975313266529246463164826047626446278170904339410761798838282014115676013488931724316647945599351489442034070669825384737126296536137702611769212047342001404077504407965976023227309168256466196043789973329451779101095178570491973984227569803493034881846559185536534848790423090545200506428251919793676505230934925151792280277325930125651095728506876560546861858298627307099696451819189421756393911046705001359627210864758171545904194772334058579126659039379610001224015511020602424079557976584958606033970695078399839163939990546447276675361573833795994466771550507150846829529720607810057400920820175568657767206416536997740785325901298024387104624732600123850799810377146432013242440414605888532674048864689715826567293492749329326034575090208282503204930245144226545375086933872281673673681161996500748691843994436399824061284884370559103363236291186975502029502515981278515175779916975736181941676789189717062997131329608586208876495395989016057105598103105494709124479501487216816759638841494637465682490414147257060079110991919607044318388157380119536367176429570524581683173057370164732901145522433346920848370915712332365620820211465138261508643516191903254385086286222282138241025103427919651784545965724702507574705636527179521223169767138906553303786524258236025936006393399998765661550311236897190875071084439330060374270066526805065501847758602227071881583605098316098973759911279275192052305700839203021934418958099552081060499018314731828245206348956589577568999715031419775827250218220922708763266502442604976557900753723345982036160922274992140706077666667075688374075922819478074168235211353061758016945443764412536569967510666625780946710378307741648791422658045896197744343083254053164446458779117395127984978296654169125021080360669349764779901130590766612487818246298947403088330262889406001546952316390531291634566545135118065317652698667253056696512610505939487595237804242527541470749388693387944579378210367276196314010781774332151563179141981910154975040721548654390115268592669694548727842543322927028334106634308916276725917877913375968221728455264874206665871383237086271942919117504751979788822809438636399137877812731710225602308195874312616776545208561165019112051686633761011249547636650522819125164500481905978173253813816330801971790994460906971168471262464489274568651574611222132169608108912524418917490724456579293698616982993016678223207877837850249794879254421505496287975449278005971282211261095869015179670007806082651937570613219012430011887857019886360777675579805835130911073127443419486487339222353509593830106749936683461604935282322290062385045236804494500311982770818401159346856198061130620793688280073306164642802015672375482619213109963948646492655535154260889287148099023975427965278695930931070023136076959191974641414867472764345475456516588970582429312675502655497083843369428233515715297503443260480123003616718029385069675402791245465300623059816728083096482187774017008159676209481688432279712141720597253760734737009851700449070540053542564004381860098892721546207209831909299872970505855985493535275812703153705012781308883797312977773446547860771443406395585861406586447842460589250275424196031639685869151103525546241927024288061178171166860233553773577010416499032403373275709765307988046483783694853944999185798135539339293530865014263503603046149734700549421340208648317749848110826906045982896218240436755987214539582495459996403527797742681317878572409140508154926296060387921411649067828545494646992391076609588677947780766137970320101710218333988413952522267661639337961372734856817875945924040573097341902956972953056201883331495316428537805489255372194610301842500151185746718710394178118231376106916189622372685322859475816628832107203197416215022425664414629725970319929756297228190622054256670355803119179167288346076889409577537629091254719779669420230176151544859550787141984278310292166634837800693865239791089414405331661697303931909537738391555385672563785884933291431345498688567704828028597670351253537792718240676660343390515641939647189427139935546338648254228471817431160271169981724959126710878462027545662223841481758536338199744292424420990770101077048085257945245982762990739107224213901673545940177703500515411787913518869148947364795528345584677551131582493237843653809509701605266573719701288618542464727410002702176742268799986620853034270994671062339740954745675684822252241751186274930907825714143998056140062439080807572765126978259492446938098124021242655834702710495572892016509980778005572356186030290446098437895475068682176841176676997632505238413240476142055139666112289947558739656037846419032948948532799595212193106230580981168087410713977356356210582332592859017139126054691461947498759297026045587321408943370826887764786260398902145769740448333724194862989657594831730467958144091703796268161162726186930947382075845841872374596626032721724887163498079913175736603353748889826466185748062391675147332582803746488394741424773688131409169960978253576664189142371701976086439282806069623333706860524736540223542965535276138185228309670757168580781458327324557458905486289166192942547654646998687535007142773903956725089448445651055332508460083596369352055448231943273583884504889461516673856646660916409210160541558912064567013516005295255467660677481248202527649160235242762783548453904274013269737415955341487465822909998316625490807552269467501486207109323697098697746173181436731896442291298634964279628131841731970031183518184214190824952358637054757847290143061787574117616718076310216213199041172273713125711983060533225028321677900471218247181268105069909230239150410765412898471368128026870510265822366470692792176576929873278902463199019299938601842013410165149117688021017034074940267863431401580170838747008475436429872926545849378916984450985247330718683008226707447099022395423332676352255808614698491563628179680589058449187563751364932620149112034817268973600017641029020266716469152256628711284564398106541536470893712626899807601507681914813190893984543594806965554081201331789025779530650755300916959507758856884266279454169492126504655773419665990400228499250444017003230785373397892654858586173153446045316416108543639725784972861125254160138737264162500959801182742156134892413395533822626228703485827471544056698115326160738108866838992557018465250824443408088285003936109380633526462276009552542531574885710030475270714422071289346195365096617932635133039128712354282538153255995196820515416272556735451762476973662260586418579397688495983704428501377907697266875172543921564501774692620314395161684164431236867042588298974353726376660671846284045931194717665554751297192622261518866049295152719555515192348635837263078856384358122931969818651265021653078920894809455600462045992719628774842629048050357871746711663558378500998437490471588542848167015344659878231489226141653327751676376036106061270487812851448047449916025012061575870575898288684442859961549020839396384134903668210964626610033675646974006299201562554014964127227260081682968245478306467354480277685269549696884467666504334001393709615548233620629259598553811381664593007304560328405450904472112684574637623011689449294243470677471389725270196002627621024965273315050953465540063817739280989542489830895375993648237393494716077630538278534091545918515866805842006446681152330176696281682310998129040527040293384273633626711701559334201992598258388371196385335997021770988304464824494651543882367006770979130800268143316648606503245962515907160022386937139372546063529285447002992914822682696568412569110349828306089507139018362833601357536121089534814495216689533966082987837347603656397428442954977064571574809181803740365002299407058066000706581127748862134626767105004326466310046021462689574265198148426868738763290995995002875534099264283571474149065838486407373808672339247576393131649621175856967751689705476400236090980390237195873383023854707761736669170176608748443200960929496439445084624522754576670306418561630813284542781657463125615515591150257321555488459526655839154811029283832804899614213559436979671836286582216575348942622469782825158564973624080855298466989696458353529404513660328735908389958269189862629554638113313561578441644254538153744392902482695290343229860447951632630717353252551150433888291946280521086663472670160609771629602013198736623459467639789854279657171040720849481913242703050637399715765184635170643054060296817593254198434237196591791598761023483587523099514234079905207048895209727335957409060625046251802078209106972115586299633284113388056248048298240704658711024559430225194895652596162831770776648864450290727682187855780120060221682277840832754004499189514199285453618682510782395324340608875972430129721919635285306672473115657297841105469173080635071950331527743228797952378472296435701996530543691329381164179426713020846874492773101663128716220051984306289128020289244138545275772137330489091312905185303610018515875799209207008085975114767376949340873232267905808779929693808785628932370890192549876936511229080330245688999241745409855765617385387117727222765523102489334579324967529712546477092383063690704455377015003883911946993822376559307999555404279727793213704488987677438427651277708439610923582466300266168226504116650374880049466684776927202009024933084547515877783024154520584783251963606746298407364447531504570031078377848955986398771131437693284262655341598139225018319142010379088757739418556709240207202180759331865616538605473353807955822661962225514353898718927908846518309355535096866888530636365071794796145747270150354231170789860612617642886305044606473830696614768801132005811874407269751976698933290318369604391003472531810919179520128182749499596998108813059233029097120418333576418753501230463162167676130888979377712342010511030482765805402478898120889380448789230497167046702601540301807866107396915642932805461487910174276316259966452243554980848615343797284709141283658841260363574999592726256710004750297379702981603543276894647887172339236838441425783769611640779688283961275926419835301820209692546361056467473485014218428423539196410547718782589145646248534321054895732883465451709411774948643548425982990684244926462495313813691033661563803088198821291200180305016044529397813490432066192903976295321155560749401794034941020377477113229114682869882044255356183892471020621714179371185174236183762080368221235904412047796063332775283043815115693940424551527930755119154891436828928844878936564176192820580894997891666369601833195093685116868085585854857979793652461363366720652196449471638490459811141593960313766611608916447475026019122069888194931237793496126001320123850954719451822510558767161247838200683755157010762173069499366198995801131937879455978393187582467864867851131109057922272610259403245677793293564674701569073212142247266032311497126647651746013194977205288413144663435960058424223614842154324681834610532793788992036547108185962572781851658857871079358814018319201091792951366252403679881907327214524228329979879514220217834495396537547746575678972065844546096422551798159207276980769569868158107874359574339660267582776322240871111595517770165546407285988582657887406653146393258721092419986371406584961931925725248798287065985197246464580747918451963022996472380925382241109525175469370587982444897845904368740010379277269181028671913834705139730707523331979261305604999251297439945835607389505149561122239532014795039797642321810055743513606341708675775983861586306209647293634180356537018204228939270026666282421888063841320462742440946901300194527436870489547675126399989531523156429003591877857429321530201200159076470147429016491206706161026074136643202809334438962820594404566546575321171411162642279276983784827363122309304009591173054423051842421931991391604032260832909341144963147823238777135422370969306489096710382771035909901917371414779628313235838725762390631922031067946895129353347261856813448596461661391737532829257618580025614017493272277445640268210782857804877104576005755473092097114193906386368550251751272997661277538543310772366951189227604350512877981538484865582396585781430806670976295025241891464128432768449492877718845181835522862536775140535924242741712247768535141486797073516257256738524747564140990947059149880359429538483709187447659337603959074362217887091395326022573146142353946980848022923913638194436679728388459831803329158833359791231436422136712216318961673215829106285348260463836898329035005550219786384538023515676527602509310570973582096050164770330304193867848756681931289513408360837530619040004845458424924566271366138096292759230977125488546673674001978987094898534530303657426494385266017649140636955526552072205421973013746771387178775675450300111571893579686462808591211496896306631962984443722245247842572751881510156969568469948800711197058513714421976226691558401454889552529474761139274500957467049735308976781573008758846773764308027317241458375672658024765751758659542387077986093917634509389284381278087882469362228552085666506631109590770148231771298260660310859901384275955228164527107875121608632454368152129699488501627228656139054820129357432123327907245951364598587604347757791798292357660329204687016718636666157671509882441282863936621505208231111554600071224652423679558041367320647603530837004160739323293556622551416246977849667661982216542931913604769312842197043193598265382443265475328471047719822780390271960685519150479695969133759694836405995433593384772754002891029663936544309279923685240281701076024223035832770227271302476765504622773636968241580608977804627829037544896589560068858955295231866589257920583511375244475822292388258937723144090175910301121910559599541437585536352440993850299115550842345128695658511621890695718199863256580793256424765110949065316465824749223723046393477571050878004220213284559792959829240052126630161580995737016233794068298062092403650444923128440665434539837380235970474621163270922788157743862834634851399398434922518566321018808516775704683278210581950610997023202193204077404513475460297099724329712270972084671241784939756016527218039994426784133863324241737496272641348059075315690967526992729616662989767188504175334749675014479976140430796942253349802118124341016169195307730181862164652008523334929754448269949450731588287390827122886647660190074873279418574331242239118233939902375087023413061977023872440603174706169275511382571836460315116277545611871876658531706655910180768350307742846558931213674398623603603092758996616653487678445082245265236908478826297037136074577313311203563448360568767523554031695290918503816441835448388969140988809613963739942675753960602258041058670537146511147630096577073848509705922526443286053414893671300399724716113066068741369944942414602496133957132782617952669072740289032175570312537152387334591664317971753405330895301032121557794487930959932976671669053542138230658246071166817962619657733874894788609780339486304002653814552008511994812605516106775024120669152541641031207364739711496154392362784264804887070145519311205469635285118521018582259662514335963106501866232934976489766113943172986849665600689621214889842157791998728865751556613512746809737671822511213375942009466311165485878379489327925273882136877236224476407188026673136195215557106612482318933759828984053183560183099560158756082930358568438174765887268195886593890303491218069683211816635413711374368065254133276533123049539661141366248353806726041106874304139751793127022713914399235299160511468975847815241982733310847471135143708030646186438087939662225339917608462997843457155730130868053138710851425852209552600107052451024637118495163451232096045115252720545275492814971076447628845557959690280071678866181887717852703981124418057928506597936856855055004726492164700401968629015374125163113659553646239197136353392343825590076551191402643607541740589400926215435662925993040172317941315510744483561447409802500481056944114201793704103294163108523333159016151662252492681697498074280715735460911356208830212445348295708432822304461623118297630759540594117543896821027659767619617375329945602326643697821278722231689029850365652495869341588456241660603777515894476021549789798089572465776155823392088359267387265210912973616532209538636567041328618162744410636450316228167970359879747615584588275734813085477512312520669015205286399596690992111445607170330684098805662113081177959783358044307200401825812965510736058883950702582297061316501756871014781575814185876534287817802942107971519590723952487653124136438236592401737904454745490439501639428428548668898990273901458423309567452076338925145979185221493272699383878682891775815848840946783020989892310812282860417779881296423071498338158317888628632825974656321182538360659082175616930616078598843466431161066348413682891105670389635072592884112016786564295435007311329980059684430253434391414846464119981048016274932955071788600177955687005308545995958981204642341988184133831598414251183785745058198368268491442859333038705945728533887411711744379017775291006893391189092695278530458982048139761854290134704465122245445991827924079358225701442660890797993232687855811554306290965056991489549331256839236407421748376318885311090583409649261570941803152296885928798612248220781113500864463570303689794210443740916581420674647900190654553356776375709420051622751307658607501697936362228452851544606105014100460928356516756893943427885357801297157964767624634929096490694502132044533680096813535394272094861539793042927732401448544164088130102668674557243003226937148011942734224854942116597081504043448776326504574394739331283555920051681700796468995257259312697375535753388526856335463359372744962949498455527936884906702535607611269522674936792019307358075737617998004338552779001776740741844546869951454591028385108754861090823988658298320619135521741372267720496391517004234436398417926255218134214673192812930442384199633196528815494419627353467405809346098385565910944199866434338096660148691265562775448812196232927641335592291966583049145821710561121017628243873925945455005208820186597577294074107229565028645083512040286477464263415229483049976302054753218058457034899254732097877834618708677725722273787340199407977516339333838454852852479318875133214508267331584518485962851708786193884772771030273769963553081297389015923535035941812418100012038474375715476122683430929479247145121942801883199179697772426534436166589998208461608028784809616523980653189447913095500454870621388753981251307084845119101472308414514517989367036548877717506383050495311214889927973618142847862795758606309158344553921473926585330183823001913909135242217544923378000425236794081182223494658993286320532201827005156427062102939476695319022691878420156331349960615414703078191404158843873096872613348328375965967756874057360462451814360825669850251049743669705262852553929530284133349053459583060658219743180775681141629221743236401498261298320715862013118187388147307230216528102183739979895423648804497953508442739121376590431833942177627513663344181322192487358551890682991418845125176532673401609262435017742492928152256981848793833453945264372980863120747214246614250343821109178419679099681134993410272050388948219308817677389986159484260101351679858978389352353803192441816544363339132015658284271959073445565053787332225458656159287223869273819948692319371182121374105022504950024170936979343044933102351787689316789771547050829687452034399637931288741418770876740358169597693349491929125837332763721818506913693283686334279458749311597042410438246610776176624721016391665885514597956319348459735979613172257548259207950895208791352732148903961215569794278370769824222010851769036234877764468025972760613654901102449814182506809760218009282302736581670274306396043659349757272906773756631668382933206461155277517260146281300141157617634649247741565912400012387620585940247547611292601998798508902717929202512380647043290832843264432090986691297667645067978529364146185364900733531686666490133255049585960604909122172375495609270764830659704111178870109985652648053474554657646913203661891621253117946475726554907478658769289054469122134966920211478438960024341044205534361714260926062578061356771506125924767386921061157691034072470138750054234282757781998628640201550968202426698532330173185915416835875477064933324562676077972863174283380794390592829462392949472321070601321097272459058423766702852509039433406975133959793898176677348007746028948083378397931997283069877570963492222813073169966662244182074017694713639121483573102634737291996792886670971246123999277784634534388229081743203681517474229018167152953790785281622334796186290465042462495589687136812418763590610644542699233781255240546442211195823945950565588830549371430716335498345254705790994929113033689038540082856889868606596605599778453547980606885866226182202149863957164265260577114728284296573812218388369567509231217764347248477031269105535698825962731836337382335263090273382367222208853130135115446597628435227911486068433220880475045559776911655831958913155137248445871615763370767325096542902145331231325127135075781414499921865302769120375883400872646323249252977388473442845881837863806790988197900378705148240998179311411112569552233206889501356950386590159433093518616226643883318101175770939736749762516480644393875306710243740563909830848955591021675543502974342165555691224022555591626355608898919485744949985000602207403982793744810404735539280500162648018140134497499081922596199996622976728368424020073439078274219432347420187342696692343644480177389229156723033496564756821716402027145571817930024646655295731417255905265452718768503915209621177638957140246032075343118238930421058894390143426567892757082143446318350773925951350375544943059361125146064737531245223918244776017011632263579144574325543583165147667631674785990618304369975448677230252668706520273039027096181467324838064784621193042400068848269431657993722040916057766087022287859464979653899175727670736068589984160567146905275760805354308570605445978942200204119779696851603556527690219539673130767385266371981656782091973643537163381373117238036162626137702750606033757779290563536302090426213216614945424014600654183252172317988209706304203527894063294906013990419574582777380445568123196839146837803789585115399239706514922931438538412277245115908846864614567555793344333387403430809824787418543033978206168577853026986908240469734047511247767361501114224062106459109181220775484507463951809983319267241353900035293741194875758253880348632767467999802361121226997690746794033973690019559861541794878601066825432680037486364332961221244651117186385511233429623196222541870638662890763096972291432642385722437941526961458244966144149967148262105626536998759374488713081666792403447516190992776068507797709968304372286501808480808656906546929048378040742218322535675025068968715323155377579233403330968620462149832477590495662874304373823776866235998258197465519164266970194431313176247582488135679738648617750618251959311268790671322686436510456404818886355204866220836798206596754174913739143946369467951725138720057433823245848265302928335379993606667262084414509031089590386214389385210462826658480323059158935013334693495144637659009654080252438582049325832135656058972707726100981880333382905491514966685852946583925525379405534161136065339756085631783078795919507710472415409012428421873550090927323336066661658818422700551792228108159091017676836085074654649794823762210443693064695981491856006097106555758586920859585681967469106354390823718870954770282206782315149595690963983410609954043682724885280999173394665387726308882181406604514916100649201232774433352453148856220595334481607407566182474861664873125987324198742733231913708119508360098176090816688501801621284057843050324097426025921873936942407246320204003678271002147397975294000391770706733046469315928041012509903470424032863706840746869901128345978161306825602179785416560636241507829672128289854392397669011915353411860489570505810309887036528735349944966210023159683843995779298120613762689512723944111580084767931238587603229983784027950166515221270965028532280914073759288445658432268425568759558913438717576380482390291945662423103011115573589337544524298153103662714234806709738274948487852569342565980673644071994092016753047311677842108132248050941328777129552568705705919575302608375878077613987681594202107105141403610322684490709175064018305892099061740889500230644934900694626649491895066221794468063548683905049838009555614075352922740546046301355066188923278460974633207802678617522025515964495995096716324659856879699330162985864814205525317706575636357700176816073117497112796536389273274208586213145971813679378393833635076616337924306449032248414179453345955682122131169902581472121172343482814554269475917287996207656118855709553649532544477742525853993181502560027224783682030432537942001010423178760046021514879644544293116078235558136910152620567325262354071108270299052172806637486151430890526954057661312433027322589289719310852707476812941094388842696643074589838007311413661650321829320577273412805975363959698606339523897089031723346090331990979706791991595952340137629442430729556844829027928352027735557511380078348374661097585823586856124065819566358024527758541722792302653625106266213479834257869024143908856334822871489543186297210868612620296495478333493655277763332272593023627101527389120733596002074922060347356360842403580679961246598730953310359952245993469912707384716650525366921230729999299248740319478550506134869882343630723896252376579687866437824274919474954344215587840233627316563864869012887331471911548748923714037954721358861258778745874218603678018694651878706059473083081852308586887053098288531912007465926497229625802953272181251652380119131481729167184702069060993314428083473137659300866162249731015492115100620043821906601530146966567276369338888728249209843616322422233155411742117854397151759594464769550034216814862327469201313062995354470787943410328144013505375110310054799419447049173879801652505003270927966872647858570537276322162249009976195271100795742152366353481489267088269236020108978260927148190842149388705032097572765583721784850922550324553322452747523897095442433336494519173759913096186515212118106715914558678028799224241097691210968280155793718937795583785949644556883314708571391287001580903013646213373616923208775139240805086424992198232813552732993002051728185708462145519724424656081794964451749389527426277156524019031491669896647477306108801379991322354454342467593116858188241238761299461779870236729639674915452544671099705811778228366335544912787321588865838124907673547199010359529877521610851789835166719923862180595981025802864971896776048818603632774948343287634504763620644415812375123122640531067056772948642066539376620465304696805161060822870484127826725327978148710480950114912527429282513454907628402663703100022579256690271249997659404537044908236108706688018886451434557919508613398751901892702578869061492144024493664984990863418053343031692483332519501564586686361007165994992547804203031319227405046540768223798988041094634930621587093265045794366895890136154685754318794691070412290720025782667479557982320149552589941631838572265533861203969894755917044105076934792170244535488985921954184925663143779786320406905408530032628929148986691461953832827924014410362373205415201699069004689710131644044489268875027595607982355080685153045850092845946718248996677032111393896707659523161388088357146502823447199742737541570368715257875009694369805416521921114152079656506085964305916056270990746684041465979556564621331106196671720401439009666489317881199228536018855654135321667722481318767315964609149995241250956825385536960870725691501063833680976649114527626480292020743360390191358839280043064778141686128185441514769867342251051977878106229419579512994782685002080043563357635810018378928367916965059150410607179702004773962417273762272423171232958295910844086405411367472455168854332525516151001655635221512276909455504649981663452476918527030551868793458375207720514655770949836990953538630100072952327919176198452577373216013351591837535985779468447513683480749699508294114201624420696409517740930120146385389931298528838568306417475509513349098119996076400183719531567097324622116722147164476390272169842979876746106614593319253589201721028987789653566884689427033573415196973194632334976243610681684387271121394882805349908654648572776704599312016653694701687994596223179486880240663286467423109920011298408582890542770543526009809611834113523017030990116796802935420772591756863013867810281612089206607003508898895324370790544144498344207731721835215646184912010415436450007874377773947128273990923401968396743378242828619208477683225014202988156438623903958066689212756582461326951926013084896780852066620039397398233403482732899779814096109947755654736312263562017532353284801252231786484555306256572911428949576658070128677554111380778154148217371079231783290859076861930462844398247730222912232101988639427129268475529755835086000290772882072942685114073733570956676740871199308129534865940459489193387257622174308847650011171173090358446488339458378530815962655897877469944418096047882699878210802694059818098409571674145621618604281817383452958886186376171162032046987993657467628770278907225686102232928040998167806687753331170552877101484920570897473980116326852219871970530604660965303716329976031637365266917127386240042451635780158393181117154693661719323379739580566900235271380883337582882135784445289270815031505933633370937741045586033566488025211984730960087591679522676670210333885804528556666349746890644654303494457839007238348966331015162504829491207313513364455951991945392708045302261419042839630986906571751454407062109420199595547608508104567615482578899941040697933352035385019122787324346054286513130491520145283555527036925236306054499042150321543721833164851017268582281489542031212839096213425493699809214622380313281065043162785892677429959496573091894640815872954821036941154830515134249837034925303778557061477946656965869455135294141715913103404680007971787990917405122248995349689231253638580554474380591473999071168168455010124018596319453188458738418999505883801494984978189865975764540550262689821757055822522558376556122419318092535557817349714032868450355241344037350016709081590994284145329969966317346843222835557376300648670623694851827830627185350310883474695892620356953813095230346542468220858863982013463252189739303657744791199418600232216682921224677283188428380822627552282370807163459463138398855742500517238515187536161399494010889042338552009614065695046531318435226114384183437550213500707031566301589649738427971284908843893936141653112885650720053713476563638375932988978124404475114081451973818764315588891540973083375190503010689972409195672151468050016296424856506001864515674907337783695342652814320592554023008013559369334590573766213276484381442369821141265338829595565674426468720582124960032838779177624383240944021793109184818846703602431765189432358279281617993619602108003838318951473112252068096756415431418715214396089170408197229293552249598062687108273204179282160315811429505743713056318118719042922108162813354776282367896953915715006601250847004892530825988091352927420352863843358388217029968957254782196187058715433366792865834195158150827911356785241486370731182802473680366721227064889388307816016596701962119815853504127042094337315642623244232465116575536506853169921131463410635946709420996001381150653670214086209929604489658263709668045986214757148715061666432141058800456074260823787948595006048457484494600102926988376594925314881897114491884783535110492357517518331826180089938772683968355206329643189803568992338952513209886748449487580511934675469402305612860380989330491701781588308963106885533203397944298925050229171521982861753231982214590752149209849724996439675474454874418398899130177184970389497017874079848029588606140613614442946168839362264302455798474103500859889918109155476800658362740688799000889204357452888457490209705420845658026590108468000364607578730331674324131647073909586470602891649849840450223636623287928832232240276165740673334878533376783336777536065378597936060017491908207165881615702836084708019686368891878776362495282635630189452748881262971007102887477023782275824211171771060624756305682139111048914012892959131660210435952362031002769670107349186201921984307647651186927649901148172862325863939860266670818226437988239167599904440644132894694986742446995502168050323512848426075233966320290970025735920000962365771259466357237894811126449609175765521855783093130384861349945925468551820418073181808352648060901403140555205141764626062224046182034208910389577913789634356458349524031193936212170119371167995555880715638196708654562399985151851645518680906298160879769368716023223033238213246645010944593319883979047947599677809947786876779466949049810625775827937748950813113787924950592642400295904264844058045757582185240203474514687057507711823440390400527634420639146799037557448019181478061316896653378891301872953208611747514999955771611069398800803689438208801527027093078617157241019925937505160103003464850035586895587646186874327183899667810349625951388679037423676749568089936203490640119562775854117470808606564599340517847900860653695058805476387996742872289354753312488829669569275255809452588919548236452303919918471149795635466565668552160494888627798657967431503137417696630730263010579166873884109268456560099965144017377277665031624908579673499580723266514430055037858615337425280258300162341492998383418653149811390069689939752925759951447890251760649971264687722055442898343788634569181166057660311050308343388268241170032131140397733592481756052497367554655492101370194247410890855903344129649082919340421926174089234893501340174891317313062680818701750084000197313107574262656920517814882677968130622990551300796374871863843846096687177126780677297425253410105653933567397467808352023740008783832959195055296574732076065395096040649428347636873815842706068952506466599142788190786141110998234934892536099056230833615930726208813331945963620075571055859109051401790735961862855997901668371351676759040983183113599091031978467356994590243354339639116058356983384454410020717662670580006696150893709566927982016050223819414366401987099216481783500488127663329825308043730223972772144860185461736283041529113620790716851216202086880274511057604798929472265415210950851790348855604750519575486878254238199667204930427661309818452087140820657398960276685273119651996034965023300021831036116425547751347161959071126749226179543369509183245400524594119715102817127020366526104908325238911714750159135663040289557524236097028966857592287891967657631232374212289761327376557924714740319396804667023790691812759982387686035639198550260925483562061494550126478659369932777502808729239554364223283219949921475828045822066604916470868036361124941704607512894220898997823353161610801778103398909568514419942197093829503606160962977210909584093441837820964838551299990759955779088007684633881926893739520958025452995817158609139827345714907931906548586348455201064799157338869740035735356268013289675464604274303215088186695472884378355611179929676049779411262903192043251873631442098775583871787913768712577292435626496634303723098835349043633889162408549009070762217467941210861390159189478207485341194636186993893742601898470382483626196128164962278265975083633469638526555197934363219304937484678237679145404328148732269475343232934293988289513009822541370789050703275169382993606936793221104698938945015681866899541705268307994615626010595428378887671694035204536261490512931010041495772129487799647832912283090412490766278363372143638778166118695502095407529637151268175470025989270044239248743669298576684117753046676155516865939194877408515034700310240642792955031087288752658037912557271126510209149170409251701497525899911153341729117034648888318501099889708953211715557154147626626455616469207284739011421274297936374665332909098691148122411338241487950040553581975377220444604775288894897447840383303189598452931852448781936978537656290660959359852276558683054564619106367530783781449208846778026988430578190225056349092019294211231620801679392487247166551460027063571499892911587587934402235155702125435061489209659162224873026101883447199528867840122468095559324763578624342469696603893956325607534707774738727766223979883889548651540337079220840334895171232745206721073591220277432273112061256751823022701689631045524999019077601651624147925380815257524044111990171828188358150479438000829014950630562171999586018059693910669880423881603746654631686774811449724079835525906148162900862789689854384002999244031394144060536417684670074947573068756985904732153607709078654819558168942966877411478547486039923505001553414617030792855554090805805704556013756969350906253395943846863447509626577162931504913859230876188346421511266863784852070624204410989366305185032289236568417506354545841453176814511300687330794188071554924453679909184789150088259062372635811812923507072448770163988628967367733380155519724071623750813425447697280078176597356608261414415152631777365050598091155913250539611250831969036834862410107799118256668958727405022463917856081357604715404300322196271951048936794419476737081718831486413628216273095820110430103884311632596705127348930037491667348613180124770379470241128051107097732000784074223131412427745328145128263569507715204756306125864615541950725420877635845590571307671608102329859368996420031935028692348386141418511482688590955769658627851868965817265768416446180058855333024706741803476146122068344740718518355836495418043605016930303192531392551419747445858495154431428982166500823259785176506556077416173419365957500328951625784944302363890038626264756565706473251943336642013588931748423169938734143173773520733855617007707425825944844863733053766858263232350037211979784835231963683816853976958919073236733413860022212106801234574126745786634064723798401354234862858918496994138004425616650500147775997867378517948167368017527857993213423664600773909110706565155724119241716217080532983333262113817481184422291916983924058656954954334265620181436858092144718268656094642518306575576557104339865523014097375587311393682568799870900026891114273716962836591465913346632099541312292161913698929913408909678242091743437371292447650376137889750676833943372204952873323414046693407954650997848505938452103505665443967579717073709193059645038407846864729899690929901042066022419462802607604313870883362064618226803717835070254632711674423800724965856332521119678563061128221688404153829394967079378875135039782100259451613619016231093715932187796861420558001103055071934679725869277401114500698772205796186869578567625722053802189634362958602497150476423380997346790599302941072326503705487225395932039755439117479386931250080820815039158492206975344079393308651535605035381079864661440386155915980843710084013043793510816691515072718247566265318594182168903698965849156910901611782529458025926138381643401681580208202146727313200252930091103638384464513325340200850864627661621368113961939191401049271154683519818517244422475288493873408921721487524811350651901903777992439855525635057908267556835646022039575293830336977469800302598938150172186011941876849434917943953390307404128449697601105593937902065041570140967232110605276938659699964788886205002116561951976946384994425749670002365957716576735889003606754343878329474536368200583087396665374176772240059017321680088827079716158457137658105444520661979219862393118536669724653734896661903967736526297061595596074618290032263191398999142294577696381329067343700976846752949398003503354671046813859554912588222297609689101996693748913106766966566507181672510237652070538020925914007945307205298915151237859733797068624416512353744367028187138567100030686886007279204999156901669905896579976183707441164802159104048205539781733934493063974082600924896239254881672206308770740606999406071971960007819157404976665370467400971632061418181831594209718195104793185811341578279457989553046709506543720160451924631656721851895755574851723942672026300066116113778282162920059386809047788587877963024087627378827901309267521084192836982600036578496496912461438544448461989173659024947287710633340047812725269901405217995035264267344751485435519175909327734912247730350646422484983372377911190757821320992702766549536423240716826267295771603573167143674463670904473734648901024610873009003469870059925935543570725670224100680052921822386918790845102066043254033082452025428118481117508020886703005754439255764947341276671314053649867170312090322104718304251702920699665566314965710485120240157433551437681217934787714134832866731015209256501750650609104387181564868132821442438965119240774316780960462170380878161087580990873923974851226479411560199597310475442100374303052873551105301783303732823134462486420959030197596916679188765485428553974572964353109648262943897129697244872773725259808256643111659692534182643994806946695967025140327194464468046910344714868468881116536014300977833047843334708124733890022912319918773891408300022320189080876400167569138878934856280828446703333942462584210841791721352473906797578654284978040815246741700254905234323628108334910552583711403798340299479575301715692368836406551424546199041801619800665393996198347371913243781847240808990057976056152151628963446300796707040816366344356189536788975373515250105334479973135115944822097929546973824537854707754707824621944640076831152770572894464939124771049122783483022095302410062279022657263726657230820440001898334224137870794618351318642201854868436648271397950718620945104671628448065592122579279731624537567440730870601035524930768688940743884324034125786525593788816383443598376372426558958906098043236118212742469495510616673121216690197024828088031367247119345540159649018471594539175188161904972439432166021344418173708874838639677033992381817167579627790656417651861198380703950106687124634175616276980371395002155585447485030618535754795985739975035541300000299470919777249733031484873802097155047017112075984899085345084613058327220026205918130493505688231017286489214313678917679971721652888558463123153398239015333711825425955476446505102984706507511443732302894724420694709635405063241310498939712946363822751114448162293196811846413510118180232818488459341539972303449903461086008273325243162328657268487357797051101156791691494964139144409818438751591901763462371191687492400598035844866412380124575692119416822428465154671855618101542720272844670930707926368382991136228201382447219189621522242551442779577563803957022231384031089743180040919576972748703155597729368173780916627727184305872185940937573198586896618497075811803395910417179172909456849341968622131011331750472555672627692718457697187823210873156774541806418175882020500770410004605542083282534581132209669946546704770901617863730872550442488286701850547190226254080525927353073422476483193596694400014584609026115727555942560134932057977231163582707227246562663041404216680475312268107290892672372577785679630486341811188692083631144091788736795368125106588517180249352612439615867237639739912862784066083969672056087177260531091904245192239832256646817311701635306196708331136979300219375616814153287308394033154588231046183569278006240593762349037337311177923613087944923801307606279400183245052761574814743508508313371747247105887300928513958478558744195146540036705657025763561424080682487977831837538889062741712951954276538609429700659944595962268920946605215124671206029533932565010678527723987858344680378034596891501153036394649935156074859945269802873781372919714024258921232718458752422190212398579729561231809278230419750592093642003570059030078958132289486656640375277985877017008602172396577914705981332971797859173296394089512172073926252469826334232157157617188041220361440554371704525530527602428822345169293264333417660306283443287815156352447659750198822896400381644397098610090456277975505564754779206759765674000123953968642947187580154352988968475047620869238036693745077144054524894994166068400727972185540078592360415795597403018692342311403203464957251295585836746639419699498223848812012250542695350848110363599218854081605340378579887355426623445162171991240120876575225368354449156949634943480154978626622543142327957227011363990977969921432374871274744847066524379683928722350049508314685231592416988054749746201600633615606884512636057922753381293862243797800326600675527552084567638774579532815361298178712462392138848955711346793305604111458658557829618144137429253471281031917709145407895576346670800259015962903198816889841203944213130918572516557948901031197120429449022135574946533589121735266369499804666427020906003211484054577960229362066323669264176343175250537861003520618106036804687347675447449011863802511236237509753265220708191502785410977327118437971352901183501662224195791694069016346771641020219474784506325047915900578258985308843283933265557834904528121452961871374177129329968527216620912936400247110774524378005029973819714879639855647931943584597449554490294460062849115835136588031122633571671201878188150786329998507814922061492990673882753191594645688118831997708893122321098697018728838555001039859060603426235753821710039362580418568080462403462443132956591243520934199857562629853309293020234626586030169032409020123474811227519278239413545697582296675085425804255407990280456152525652197279030427747847979319322416172588393183592235129137770495278582113894111846219178431002667775400161767021749634937715987272194833745373826295562766823363856908840627816495097529938271974264766881334607043391548350552437122257801803796479153083225035840270563435364303101914001236211051990702695070032356463543626388549462531806083453835513961556887417227077272257990434993529689827552760349513734484884680598764894243583827772525216606577463719713509978355854951153650414385632792536255042404209647417520878411287723964107764756825106602253741376191889958363728070867901875413724332688725848239113368240735659909551203475096731815671691207408840470199407121837755549564131116775035451104463604132248838424761253605694511131078773726209441598042609812965499584023052140729548474089350351331361114069706587785486733443533655555416798529887575331206827808404603216994649301327285718779123854601940224276282354694928336738712039431553508944867541988098081068078538414857686870117448669713712829817002331624797783482666171884436115152803202177697905414086708150225574740475182844599361017935562787341277158038901400399844149642626887563085717968361614736282635300153391314098347765244667883924919339573101211377449088710152277936830132794618120833949986739197176916271254944700428003108252977242979039657897391905955355488278803141423114174845897940071809033059895634566226010946578247635092965657087786253304602906530281099809908755169137623286171758720331461227191611196880402654131444175911704490669244346143316675297951792626272346029089066760297671764275365085123946523175979841288736392276708261270358061874423909304271061209312553311305914379642171307726700011493830484626584991126120195056431258563168616430191324300253410424238932617985838128446220999712590212346489841557786721949706916222479285069935678532425604352314996917317121526174972710797943883142825801880188995852639171845501857473338730173788772995315536687988038279441340379505307591002481917182394254427228682363956822286147645444683949454413733741703594804949769058311394199677076675199227191532951999005063524218704776980890093388254114659319285946367128810966679122252088891957858705199776287774782464201909667008250550453802064297715098472523537448386540809060490969804815341289026252174410709042799307398369767239806554046025515771011412358547968383633536759174410423814027677969694245093540240593919326768823443092579859744328635383926515754858558668518351108243657999013186847567112774593500041549256331757074238959313726377800667667445977146114057869638987658255984417959824010230925592453342835968003751030149182161772477584475628966125527905186951450684986646850528678882016622896308510657780765454084744466607939867812521158072392025630305759604406749506621080795885809272871842776130440441906367708819002215423977084910588042753536815350783516193350432678010777490451456214356925908253975667723078136815321499319130579508790604049630003060302234388244572714110088024510210762861868045555568523474371213661951389491533968671786781281013179352691263307676253862493887055763319728354660231611160468085324077624447879556257338882264145177593254524629595530343700342333219586893314357294526224055934045341636280098166612844912789691969240322432534825692416895396643903708481665729009509039404922782550509892426527687511798369096754442584693310528243590472996146886923215890244030822869663836882188547383190509702382637096743498525961738425427415779241033115516181029480199323755828508630570187112573710793531187467054632099745737918371834267195932365619144773095044933736921403034715484501041131783102952006108064418973902054603372720211124685568622809784642606375983790312052606638770048678246398719473587592201612463250851919679055618863272456917126756776505321437040965361195311022774165360081942861896465692383617793721797476130833949344393341443069491331324552924803576972225685500640736810895272480390215845464674709242279595901365208258619127530528765381369742333201807434169149622848707276020164828429066278911312390015508355329636252372714388307132368012296539563557511343366535765393014840650904622013988486979127492614887487985462369208282235193943779270745253179075328777586035925381841786213092063841357802386541400332958136620755973623072528932920734690331810313293672407618682970360505414266643652059095982915179327893077267962284363840171726827817262407754144127498200481770925469306735479585452316204398671512350441034433496831899676116725234157296539815641654759961645414558113979141923870913337746422836539807942756493898066259371483493394473490383287336890090901597713715897848618216197479650431329625201056219016540070584072405305947389620140780120625102570546336213826339934173320197660484935862042060093192347116686576726773006067977341399449945537635148879552860576262183970774111723729165499137956916465230784967980754697556933057316090476294914182288161115128209914944619307131920206524518797257844266920745275748442507666785285805778374580634174797382292984373003267146987685685135985670232547683431593363146361338716193174640839155478045749076452948482414413622034816858052375043307223352152489554631131925510627865650853872232440950897764997953982304606665043103439213932014746567203830129258434211592150937118161241249874615839685336960943449850772283913644006563249444968057322802171561019981282464889819140020980169721688724939773049248571444725710215968655394691690126081421949528292547198624339655452440433962056773311201873429323274364928273240767448269328963526013841060782021179973691896236916470890198627650579850800893230198181414273334314634352006394354898840999581150404187776935424238225552964480955949448517238231751358769638886919056901877025404433469865901630229291454101275448856084663284348568394101511570110225880187960427563656277648801798752403312401527577063372022784688668701521591854545207304076019237297871865066882163529424943113478422243915608806227697635539141246981255095073053611274397586037532277903183938802775992535264662931823208336803171323455253008377346925658101563647643757074382960362580495898161982826614618404247186576344355946779366614966366943050037717421012924276099233173927215842363065202159513118009786426044748898336150455959592305659845036285820371730808263473208312097516859319540942866756496100559889550723605164622078282051821438026267189786226711859409215689683481375613249579739882712797840896149802276844996587477746060375663001419599625708724354275706731041006547489921545692388981224710011779576124593556527218856686182290242747826188807742866257778093152250263255667222151464223910387910759885875020665155177812005576190894320419661505974718875046184402758851705542092541917019443174272976481655224649294541757354588517113303268560438865686027665091850109493556345450566262689648613625550747468406651286257209872890723177478320250403643147593416863862132612248757288272931753720931127343961202415138509269390738859372379689436646865254146377390043123902978962971981717517451492818455210418800934353176745960162126084678244007615680758572355014742976024466601316072416567673691739244464558082467856419873785353460916369111629583374871860046708275114577628959826703106381492458394742624931269841028999301486529320950683530379398376887683891545044129461192248086992413466980277784348790064628660464593144086284895452800748905044092401924933505419781457726735432725551864678307387084124810915491918241882451169591980340927237825893003967804886041491921221974596664191731095684037409861132444215526279802061102191843939842743664308088450944876855331160066145592554744075982734769424158119892108796167886947487419679625851326409558124749294313021661332602144538051531767152999604217110553011564423984330790005830269031201539694011813724758873221310702933802239806764038011322346234417819205671085362058782479393067223548632689226889288786674535287743623328434235336863593245767085902427910943903273758438762774572703029731043000709930398759292850534687136782563223479184710307263707853169670482523068186651105550451593275609228822716122899833944979844523403998451537604138441364250232574302896426666302374743032484525158944241146597638518997653617892469371937144208838574316738970200378490863865088037663528952012473423972893015929628529011318163644725934021897457596692781583024033063879209390283503702832856559194521912120700694955946497596362339756012968266666333403260371685742770832969889231412794212917881907610388041153042663659067677495015770504612298918843992369608245562196672659453514850869736610222289228397901473252685356292858908076488707628351729658248847151821313113288799969407187478179285789091170711116250485238636224345541989015985958140258390318019030163447347291101050468152313340156010391190184320770306901648790461897548514775392338542967649687023584554641023449943605880597322113159426730094213624180581680134918155888178728272799158384624496184473243996484932615531450751967959444413314358080253699611220649672919571360696081240927637588442034847322927956315107560515848609146999017748324306208783663470461842349802810355936623151712983644062774788830992286334501598013311383183667772897403263876424598570041241626546692065296941172227779413694586608943125452426508432270156507056306351629703864851311883889922802221485760784353918381761530791692877450952931250131944534823200313254653234760023636958859321142691652662978253359950275334309178456058432655924765734529346331858380420240938141372796070803008055081347242800943708176114881479083071585999934664073581772732180899331155108849429687721672903387012096715561344650906148550976042308911816273174047674480373075856983468184579690121819961978942487104350118694058147061018644842721983511436494815855918647931027450358094272139109147729071472010248807369496385115479746166782819420780693060060087001812402238919332055681957149106018660738019983905039648648822731070776908194241704619607751713217031284336894289555916374265724125816788439566838503912573394970343634507849026006108156218334319169834825567233264080790359389598869873741284243153811667069828823880776970334873946560975871455427690629949575545754233261858804232320726503452513868028398226478677035133150784517659300108886439038232581786959542992488172884136877225483820502047709763220433263987445259230635673457156165030812196076256118939242976295378212470460760858015578473922035578240834344333460460203855153970805803464132490799390854975432849804546632574899067894002023304772294192511147968521626995469903266035994759160249107353330727826682190334759039471765798801504018959672422600263122694398084828473023372699395468491981174423852176800259594323802066068395668342621588457025677390512675886778052368476754727335616688030874260184158532473398683474928442908472342777015232477844640439177362968779764763438210157652148439564844443959088294418438013572431790580133883649852086907029826618165408306166090498835418604319846843746191142608048252712213444120106890869543272902439630797469331664852643822436854459870343800430727420144964601386048534865190162858703684273585257673315886037114352600638667085443689761016279627388948885763669566162861522037035010142545695191849121739456201054959461882794786927749084995267160773806046049440129502244966238137277496915226048518044793557124273562095406837024550845135731090223435787194775439662623645438362059294691424470069067213015803675577615457122142337196232438450284774170799970178939341094143944762411300039462374084245526084426582094880799880012145592117764346690714985256020124204018941593540026111960639322236958832071566623164095735472791871472540823341239401504139067841982552321509747170385291920785720102614594582993665421721340396451141587116057087568918042209778143605334185922315583328653763189572375207601072717914972093508648922650217005659444124939294283072803702250152619188937549486089004680231611004074874506957874334289231603476416147583434879230164803019496194660444730020221314214708625867461971558874916252674663268986037675110503372443620024909193277186689934537368454849431537788548402635400189279447360930718589511863866780044298483275259641189563712616213859373808235630464929166841442475994867079966204051236111781724420057930072466340704810095911264426779461117553699140190267310405461425188503981576928030186910282904131989232316523580007131172149353234157783546940762000273909066328328220679139822692556723135201517765605994181227744955690071658926028688636334178536005568444296925263685342853789768159316746863637501486224828757430534839567221203696835869448137150852510222181966911166661201272930898657590474395952967216862832607938672384833119955937010836395131323336440450972566535908112081181554084554025580106913216724823247606022301260405339289597001792216232373519317893995875498900986435690773480114774170474804089481713251905537146953443555368086954304376822191878781193803889440612638587847602012278305464569237786948123888857583322799599590312314044853915784791325767523864595384881893801000130000891007907704567471173191788693652808436767308827464652203344434268852277149048483064083284498359623684786615038518399176388643996591424488041098819848487566580951127702440983580667367883560641468157016955412607175646967380028544256487913135286990263728433732250196339242218403514519977411846207792213373784036772829331690805358073292779216136185871053873462583577087754252499550216622209877054673395804077788323251464377557914192266632741483840519213917948695232672374892315408785472610667348276358369213660434581608514948743293268732147161258850476340163404775437405381528485640997504471015122465764241384171432894483884887025501255552871775748876516747946770431808245081929319482972163370931867183233521970787568950441929702577569256004109879563002954876694740670904025500769739750017717846417992862030856951356293539861066765594765112102811186923483630483363157470651853142380895742049290964792784555744960737824169560977947284781177384483176521300537579328573242587403579125267210159810065106134184043545239292372216191463506085588409518531362014663932479786468196420918974774420280509246684660358405384400895243849755281177366790011336940289765186933405403499400373733914325119985974728956915905897473820083510896095676788701668680322276793774658631342496553062193020227414136959380169507481840372554184581885616141486861134341506165675525016843678313433368384511218322182547111368972243874779962431285463960886344236124378551311374328140791863328731584228093559821935773372005753748907124465168761009214148045754711540884318423869389346382705651107410671778507757234078584977310080312685533123143807988411701899333823491322044532286800335341178088390449691598949730400187248299704266130877126594546681521699018541172048823741662442882347106056741750525739108880483099275457592096508428349863941879067258673209700248803050032674543616693670800565176092982765714328678010077473417764793696650621083070048345524682131696437933805203697045678779127618083638992658944892295452544715424145903786963519714308092878103665408542978466355699474456062355708646202071324116314531302320583973412577021244716761547007012029707103248036146532856204073536719964097695979514748728868005251297758369491911385541661569090585001109790752201771539535520763301527775993857649793126680736978201608212523206646626946598655818773291709143337731473968412797166965220637418671414541846705658300347120854671339039082692879111398548839456989855743896253363694843147561156022853452939578621769246377724401476650421225555036889234872310487807483449789872523951944152543879856587855842252669508169755976353866489240714495067022179750662137621580911710741322823727868201672432065425658396884880752061471791764477696606117683449312553104387461576212317655352933819078837824199423496437180505016923538810326421210629870585112679091179223504501289475049300488489545051553145753950514798437057177355166825365142516564778839683617454976561950047935264261278602862316979273505722251630762396045784672388689704527508548324702138201138192782900527032614730477544082231701560563124800324058194155641995795254913849369101438799026267422535402893162122641107889860677866887353779056365537053091851026459653422947526165613828009689303936709060016714194060175196376495580248123533644279619042054634754564246818532878690947406614554537623643827884447333399892593346894430135192989451962426893130191844493882894833354831630806773063454774793046472887958135148275338226050523206387271812407263279090562991713046409945132398615940360113272135685375720853015428223127151156970188058225839164359624979495222506114311514803840885671023540441350580649991673973510258334848780049084437251210854917891145688786809337517540948288961640724710507002742157920731226517881469212141999518775565084634453883085562970825543623049502179950105042762113712277304716766115251859930533948943084451641157995323625709523657367028730570927773815881121083895899221868847854582886651146183248648731761559164200102696404432129638383155676389154481408787678241627126484021846638720499790112379419710657533827942321822383962291851933807872007479682463406518244387450714414102644950044877948533995837141860347685300724554863405626079521245461620206424498610398558464965554682926948081925615854393404570405753324355311959659412791097749400758908997316801652416743632319774838680098374979667730873563335757350849379517601321952129028578228633400775472394219817085563427298559628669616050374708453038274940242120440140189480734433090061330335740772474983620930400285743770866292435132126656862239686866423087983936762843855293781549115628346951903376431389833595736615206778522804024571466834742239990124870183464944244260033609155790796230573231957638680561983584340648834410898972783023680436170422944671984400665836139897788605781439786864270428795034497710778055502572818432337914763834114985810842417562573417301862075295629045219038337926576865831145434455316726601264428948070393351641074054533433739098246214830527106426661465461630872372286945481410699932151935150486838176428077830517327567335960584195779152462989290938375827354174577132511837900265579997143669734959962296195836456046367056552344884137928439691675944499446805970076346178815304265689573805430969307370083867685036835150630039813700417250194952012063753504896284077715818985372192475893595867525197577542031061197452197561131873934315015017531480654968496936298179189263048116238874764118958554389750032346654398099820010329693707020275183414469503605876776053628602075265020990986499172658679665157674760648260671199193145685322720868092132046276840711594100602944389768208391509989467399842768500364978657421214835141179536632183245533012132121414798584968210644918835614183356455512140364919910962119948417272642534395417090514461731748318698003682869880812128151087907801306679479292454139785674753475582529274695044582719223939031063833635744775806745290220384229714894218023913254448356727422553676780992967301398420361444162429574632985138756632700578249573159591879154436175581990986742984866546811047613832358043322479612147530670071304871635929119586646380710163683165651762504810020845147462394327723612817370784497598701278177265931079725040034298698297855502707258777996542919777410923084390834553400845403490645522251539825355830478112371395192447436613811555443000923725280196870587390079656644164784589649492515536529089863501634833486992049701444476625449812590517344601313145219002658836746117017300246666143024158841885215688890748129972936067338357605134532046931307217338466563645240661034677346475529263075882629668625972193099016564240338935713499268976656896036459438310772766474117890281332331159532115620235325133074324913083296845574756052369843846315476942567796519581687285109787339130087264333907777403095838039332146250917014719397960216594251177098628923317984981699829361881414546056500485960219768009488528512705908314104377340995283076825007161525756796870758596940368362762466025838265566565908334627720356446990321579690100162910003027353464095746239859883308278967248314830978006868134965634211083815364613506294315166337704016158842380319643649100164768742891314692118337419124937382007119864865483727438188874540844285160207677401714181128598022124193356591899405072546955265843979868777233782623961154823810755236467662023366707616394330503978144083185203542340243305892391577867050928563800133238782243072669682622322694308974597722124016660151274193356631970739526573882760145803809215717226964622077161045389852469548835180097796889783563456377363872997965688148883179354160304008197229796884086562216037285185942526841007708108329431584924363707076282906375188534516708031593056414543475679637996359621741314192463752675548948196159410831749645574699140110728487675490389009872255304309117766453854814949398392814099232975740336724314449704462255301218379741592229794952085291080924440453628158747953761402147789318159942595533539195311585985919712472866756055020346553105788727937756970260391290379365424726159042373996701954606506111331657861203680548510646533442011686868196505011330233501805703586380764185487464044410783862406246744976338676647296692622436637372706789703173657612876529189585355623593248136050952632220917301921288679692050177738294552990313172026951730940991131695508245746550678304366824135319429057435895884337609296288593513260774642596944890656578315039881017303541614489144707156423885999133635941024760719116273375399333633357966898577093142393761191078852682363588568602959678760267417966865200372118723359223879063811733697201354934717210237069920103778785645124072163516994495985249529670405036827429149898792493915681612043150830775079622548857287546602544815443818630585556707854149658757112238796318018934330855494186452610707243851098507292502550546648606092848780403799583522256553527246251565986652476851232413417538787384501559117109391106954668640987274259855333092105897665700344882099146819357660920608259797957758988837853582679444030279389323942767680418172614324892256191574027619942062181187327935568227194116904650497990795809576785561123259201623421929434435900120242210747473805658315552625366162769798819774944456413934075861071532472499307075626717333100035262170343868712900337586783140140054257435916125596242414669161123879336136983404691555596469338913541574931512445189769134601385028660325505479364112242662136184681631944890264710220126349464092914918605626267749988073364564431757001649580145223672513422008800732475259413190435802685331255281346370173319659270368085626010719320928494809711132396774548172908256406986495502701090176814332275806315097469543819816920288133687714600466600357442879121253230711651797031444092328549561485973766881511202765238355782312302641298229752225250285981006585441477107827441539221078557199979338890711026081377009443690474071632341262127061348619980295810139352452831600158753442310156073319638711235636409259899286311608637430082325200734951802401946030943277787341604315020720840089441745842065346224636936259966403006759701156894382813432819818124556505666006786187567904082545012262814559273086513520548087655728095870466786125225625981988584482964799249436038295667678933199504622466994804237893637211242452543372857843188613363802228603698301037505644197334064778679808075666527086606085339752026825152782599430043054503887722454638422373281837987215096745371022296471521277457119879344544191863110436328753228427838201737378181626611055583317348939191598743152742459136972128255610050731799553644680531286143206460962595387496091840919723447655159487515116372453480282064578357767548667371584448313932450545538405060567882029749507501462903941105561605319591749309987509191399085849861674920773487650056067020763697536880621531375526043135207970853447722539570953429272010949294255186073913434882459052130885535750109202608126025428066576554704943953025171248262580773459066505331072816482811606535204131694782139105729259698921050486358748375123517051582582930221285175296071570848817308865927125676340015965986208020997829099095220275475072227641627914608201656249923893618098223300076484235341785670204378884198830180991530302862126905763120049176664188634001533575885733041053836263044649458682777325331411986845855441796451377364758401171392667150092275173968710007459667270093533270401220514935263058275861469933645105135620625029166910620820567129197864846551850298857741676024706177154741255716231979630883569211768972004398942927711445153143940785243054681298556519303121398285846394450532774049500849771395436158058182635085339519067200876581226663675527101379427679711799409764670638823962973497778421485429476811883407298653471251299271593402405686802064641174482679450718655013260600901324648874211948068337096530489950562949116931553806096140306339349796170967861904914795565635056430500372456240320228201000326684262577459688166707402810812859985288347408986648895806715509194950484859316705213585380000444909021272503106528435808927023858378476391723010531136777206996150536729845824611564289930485039230869656765286866230774072145823528653741058888438149632836224497165067457060071024335625582811704651538556761424574677986974655108241671560167775869295264252854623349217445659650159565383367559241926093692352249142149493099331425658996012402201742844146195748987349411998281321641036398612694644258019542381475860942864133989054792212553405949547749421676284943423260688205748733478253553891954413841518248032428673109330509392671675483633416245436014740955431824735133443810714856841571357530737671036377749592020293301363257207262993749107594620838074335263722189828446493969607905001622091684809473089382205354534726955356966742465830503949587223668166941081525807684040284255599554884625180576040990611696383758033814512575930307904542151809351464087403853946381683549460057640191023299224553355353037916267929388451021561922735421031548054708143146882891788892664471962730885660928676374445057201141138137638719649092228608998844818717965704086962180734415491906133748107758524461837064140551965946692356813345501189227546645290176405948366108340464381950747722409669979297418113940434659504886489442331102437610233036099882582766346495109720480839962842396543341630907774575524911312316831685237716121061747450066473657095785960737210325188671452767860294886732289902882047301994686671098413766874517939455463852000574332414256155874556956691445288832195120117739768528099994704030578225622739058532188786617845088558904960250806767514876719824768518651602058821580122323714082381170411635365956470206829825261090560106382548325454488617340468521731623252992831622040073518196743681577917794865160224731226773695748848567107942632378283020968492286004822576817791589728378085135349077104958809309770901393495524890703640122038281964582984328935177950539800413105047799648661919386103032429802343988504727248131790921100989961449739512746219113174665524169816870780311933058440231930323395756407144395495787661938097033021712793109029831490628072379282639871858251136645628896816552007592760773404427101063652357330710014593501462459041785325705762126587881058084439085528291752496992830378072687193701356704165901093070887678099998697334589557361989006618484971602288909284324663987918093625045844410748114814796471263552874298745658425286491400193431468389456893925105827107810379572445279362505817814790952577052452244247383798113433712855284904156894114433674628966178538747242094386832385867214692680874659460587646111223046499940506473717625787135628157400119067545879811749518157388884088016603652653395525354674184233904245154724398421358244720887385371849504742720394739431154248328226027546928346488150515433262376001548380231614301567829177709296295768785515606582242251585286802543638382522864447812023406205300110419655419628859753014121223950553376657292079711112994889302083221231441174971199096671410558906711530518989925621391708064731711415021493506933297199192010283558333771129885137693868025377516469382370452800316374529558535278517485125121295304457782291481436089217893553015520949641793326333121253890535101673221754071070306441520788284697723451255852310967374203811967123706305889629598527393160809657685309225677562441404898338453269500855060871466773418337139026942315196620958382356795364746100683485626823724996858946303376068402348966473628453443621622904389542933450001856537056536767527852954862674132627458786715170337938310072790155988565184826671602072903636496959880535572037164201914580059372328521058599008628413319272059358288581353415156487703800386984578372932949633325444746018065147087287014322330283431812539612402962413523447084388147280822528001277614702765863870432335100239962272418608473851671806326336769810410139594730691858057209960476729623080660980954985667765560994856176662255485597928341622006240342475704818741192816738241083081454084621594597560406433925507859237382660496399126106361584375400021234935992303254380523773422273445163338787380686062041518564402956909303233530934245008488568371914126141242982488250159719714908577270433178365664865682154680623054248614882449041252274156405159849476924605932658175571479009904305157818604060021399853401162336390612691457125524928076632116774221124682246033511145884493413123532593899795941346454432677266714174341452997440149159142142752050329050337698614441950156355504001703958654720721216833126801100435634369345995984735659774088388541301019811936375337263657293204248742309477160084838005942808953940502604008419096809143101852725686608326025606168636065292238494605052335593648954605682166927084032351342177042430255630835479414177605381746355225426770814863402344481374466130569902905336947581462588838914196875618469594147824345983584882146738387854146102739490727392951495422815259678851261840701211447795221947367928725541980883167465553067375550583996597150905506286095194035473010651517713525842946716680527165257979508959415598229542559525261770687994101972854495173515718372289722573706657378194067211132484609090086664273430689101684574659951262132209075860416608852252540657126191533541027413551958399485043370853874079884555433920404130512598861428402978709691150988730490948372851995345074996198353954390157247730189448965576018893003526504496982199382133304163928467309262689464025751627824865431864095148070365963770725461954169783515391546468668870932934807879304830564921147019160690561527639143358256892053338631635959781540775952959597058153040056640952789801312470385042741553832642295080313448605513089817205409918994181333470158051553970461707314029707985459981898665340983953453704928514435138457824317550590162053642298315022463722011712584152282016678699284876011176077646036564317727770627948724565649632791964428727574032999336548110967870385077285718351710433364529652841777139372448558038315591699165287093073838461442965973831022429048664648638673721557258747527320237987661207247398406938126356871619312217558656828936072571769644081616516739186180051717708790294138467487606665359091739154856144536493193341968982445002377478191693196023324912827331208355677692937670959318878323890445135534304396959506257635450945964700040891935778983540235797343113927581926882958007940336566914749667258298404796587735280791149520578431050460765522316152073428299001069950507266840937619634086729690161811448124051581316418871130572796561894297452507096239952421662981127584518391153733474699996841201717541548507792991239969192453834736675334615544701899130610683047964644926079226455479820579956982077724635597968372297781066227850850513722898336347285976333942153314971074653322587312025500178264651235035539651736539395665756955214982564182974887547995642074335433839236148096479992265848253295863921070324435474502779948398425259551511850318799580627544838314487004066949188657135437087887797750826733634381168461317943697883769508817763612236972503261015780078328824384694775251854755388287544993290752484979682711713827332790839700317409224625083711871834637724045821758054898174715249526043718962319527821081878155297983389748626705504620202585301428098729052632387288993815094857976325117961491634523779403059521254492305882675267641819067829981432434416729882211111512544014937330982475395858323921993113858220346929913419958339047607840240643474400511622045536002249607171561207463462534805511202876080035588188585480239947174036885824182460818270479754148261263170106349676050002381368156354912669638486644660826282298915635587581009495361685514222329867967697432001540354416492989682552992394069539587225350218280205664086791531150245136379166504163508251506821695210604695656391374093475717832216638399803054963515118497573437835427385426181203999656643151104626690213202380641090235026270916212996295030091366341476773441919188287905974685740245741368465267499914363806599941914673370788184960964234303102840024206441887317215515832871760936704920976814300171748260142753892609809612654327751256991702009189593150883942607120569891108638378328038907897888204670676042563971956007564958250656828496958452357011325412102306385841303536763265570457188506257996293705766403171087800780896607129133925979520394434676820742926715883460837405854735206980989246734608996215612036695758684127563014890400975529031805195112698087367116442350072292028762343942393116447649341996695253041271551474308269142885714747466894475785255311867934391426532921771963097384494950127177061822271202335365391253661177553597918365956323053108975667274014152003165184023912112675574593104776597266794717523359170926602539874290277918763735686680040632606998479969318219072135282184309666807364286386420838392637318373443448342584498351341213443872843461998320039544305176022603087201020734799921630828607429216937639746850038803880340320690735612437206406338867575008982834315906323870029742832352345070309092502330407418548415527849955917229386510255874754106350574848389411620999962923298580441080140833549281190560901677726486646953569430486330945246041405615818594494225564637509903569862448869908794986329543601520054816135022210814049434611351545403674955221339805566383676770926388421776935995039568382393686522293818931836117684825155881762684323047625592122857271739582044494119866932906954245954374942884961779477310339265147273704814396911759154286839921469532368947240981834838743800690778637265412723035542332734306197326548239108533889204321368546471223238062183091110239861350049064394369709431902513929663352544718103777995630423375403952576475861297957372421804431560568745254916074103921095427323249400028710861995022901498926085392999904462127484189010506213648761508324875340882204286829911303710283425680437677541769963670817190867404852536994046473382794838374750194944906745978270311415889680604528609049595612186799776997159931324682386409835208178776323875227633874945337236921459786859492795450604482583786794244629496572711665704945742646784223640035385681701434405168417346388304381722095068297645114985293671173028674077491754725625866590747887575829519016727696434359589150500824975114590205459077120589048048687015725893169991566616948370911955960088752928238783146823788545745374811740642983188570901057028142565953990076207339647329252770246315802381654367278179123137466673626416645765649685271713786883648577621089392050745126330305816549261818045202936596543182545518287562645052106485687861850942565455990279674453414491394930204166688324059914580182994209227226715070145774209637087194585901123546102779415356053418007562336972884018120683620774956350355878853845420483841103974669191180585589954530005724524232901896864136268567734323239818170144122337681188038961887319798041437808653576682284016133809658063982284344279263025368879965654556199931228925908804796638746157830631506077042775844745216876363156422913031848973005688240296195909248540792783597697855058591865562513792897209699749264192106151958055986709181998054144790259148382786169571090737610389792728459582194033879351547955247212953721781741096041279127843297155283606319348460708371594167974609874986162982585455385273818146469497155286717367874524474440582314508176791829170790935528347553512714819930239098179746350927146921135739083964693966230375046355339980730762820212143978785383097098930979990183229339612058978522407119522296661438210358054252810611138529583579271955824334249351919214467594766094186870327869950473179395523879922703895226615378797781347665984566797715249985667064794025807987896477387865350600916095309739624201539725244553981793356681013244425073825288913161062801178208266527222309236753410127551539712417305035372174388666309538225046550770341733343254041982023174435044536634935174572505268649703661343027490694974184946785763685490872338925522905347628351668426449898936966856574852063447891654735811006767469646312692804633454665392463842431190156243144596838905949934553086586927020487920338043242836948978458754086337282209129325253815676112283131303810364363179643922215491489040742386670945924396602321304816913841279166431625149447073820513727812471463896836550757961176420515787273459607034321096266580866562846957107233372471350984983713608041398928631623124215738512750422000213529318165935513401826165245498851876216777213275588081287661029440014988965583047152283364622737022569513487688080480320634423689334873704902790047047219147362904346536262989780213481946361547970878128065274305403444668577540029839611479373674017433766424820178736459597111592144940721993602483783708120424774113836754463959244158899619593237996141495181311517578056152719541620517119628853909236103715579215607794330533512149871579167311579459702993388651237512414406860675236140308145137242497342949917372970083295799666320373821596500208988526872186293987527122164715041688303707335680323306655441196321328518504824171062638091854464301425279001018501786727842418685477713419734113856517467979890025389537241270063864703016716385162096485839413293627366263025087339870471383924089229057227980562757486227615777859132270866698834565246326953541443149530000623858258993132815092938073651690129467188187540705161184036781410216440749685853080673503597495707267851195189588769888281139552636466964971624944153469971961180112902712245124202919807516724657594603399778235042923839823448674302633748839791538538162493193182667169209931419582889260063548547321075018476017303310822432995973996131354084795706544806729543090975598433869671894880432129223047441423840483969354862852465894950774509735930898552208937757471569032251901768794390282555061187574617039172161697656171293269393193430682416362439534571453842610170557295406536884693145664887188463725236517668055133646094938178368946310289053322407037776084065594618273833662004160393817381710350889502759586139886149459763297067489482147704917053859720017090641785296293817501375155603654111508502741365755243364814274233485989152221524542831594975646144634061608788148378164958092140431345403619846500612316563755973612665914423734327077584470908116428262184711534470745966763913472920850821524341112603730428598711242068098017818715237483815454753814995895559886794993078875710181931907307533018412081781788791153615745717921123492930735517269280420213444402665170984705793905839108828138394620808556659597512062959131143201641081443444975911826042344666168489594835703543072511766393045396875618142589810668807882519656680314397290727030785205405581607231039303567472856737515662825064279583308913773244902366627393523546192098582813450086505662146050118113247884970529823658723343228076595114817877091312890613856000870689261723004129021286022666695139849228724269070906857852981482551872896490033842817667882656432724449892150145451724266351388095430037004223994791947396053297460577875627255600646975874788785946339487414060980623288347492622793683321406548780000940517242235755865842939494822032848228701859199957507867005893379147645045305746185405607218422813006204618026839057686667932351204337681058110814174007687795552705784162734946020913487282328865458105770046473661145578941916717348773092581961607761878187207730070102024600034166353852073447678811373831249321756373869835454199983933344919018718788479406067870156052637180947958924549708801985003134643390618231884409410480669390110186301219450541128731762445436443691339298700219020327450849549976267048614180874128236348976911803779650211726445583950323235709201616814298168411779708358877493995769805009741289453141277175490623547943917515024474707132006625601323260620305252932298916644865402089174509364698082483115618200288932921297256737513461514103606313178683694812084396245613443862766790849767738266911235896343618633549919241647116445927674681457502028520815748396461156341493072931184610270061215126947374234897265051183315361823322712778875807666120117864830502925566154741247825057950042030571448027925198587821110261785810227462847578328422351814713205623427064563998585236994920430557430784076361809296009751796727441559158965037521810787454904964276244135525888865137377744769639755067879609620028401201876968620423524723560128311891193642034345197680602038779508463992914842236668881054194990813627201323621974489637104413601972485139731389820422721441240102445859434788222155839010378622319248316048585160444995441157053471761932444066529406070364423461840651921547314293468415766299214978557301256249307952566410556360455442763091646867248062931693678049841408523103124009688946054613720752254882971340812693361115064910480415597274179438307371965042963326760654188445668251170003452332828275182359123380661447604542485804505029543974442184802905797510424922279690266814104965509787556494594975576240499323011181375345406438944138724307632730412547503095172134435924031148799280862876101000762038333707975020353239958027495112150017355832743221234885350444340448591136762896269797821978650145889570621340197626423378731165444777063357690352699839516849009798841012481389920385500589726021536812443637292695555211483455513536331281968480080868689543864177126803364032897739866826365444055276499713622426921205414390944262092025068078212705454279690034602467046001206139695769707738834011375143851815577128102342403583062419880230770014736542786270722891353561613638159623794228486773404851106485148726536144853252670086554543872542786588219265597902592394291445347766385086042477495737680669883492198292526890031791196440274983855059823197003305332014326962272449685408028523574029625376283085467735088300744430928463847843270642760247339159167922011275421131159546677092372195483755487631833201100661552092351986282915961776395539728413352740883419809251413581260693345180892895248857666223646676982770765400482867805098176164824982477073921239202036987525590704561436719329053880841974265874632136471077454763447378950185056232180497716794200598200340712503402885202868124995854438392793512526407651264072160818694412208821838562230371814820716573695140046086427660172534661401429801314253257373777985248830338815396310014442989767389725362796943251902139605279807606249491526980709597022920447067456053518291204964665460629964161835560790828084944328423454398584397277301290027183185799262315092722307392840936686739594313254509790970024414341987920821156707724638384293643974986020926560580176824562659412174974150792027336184736178050290120921669867607720207703252096798988797634326422767283317199695221319754945398163855151114974714916524868003043714673609893548364652235345917444725001675204528831689899406859333970583743485228586242613490522607469635136247863118559708244195301329288419179766748842966309139269945647750954007407245830745388344634055954489851290689075554406235004546335345612929032144571429843912740688401285372509085718525961325473244238671764077530911086145644273309264966094372217935477500827790509778427459464590166948370085687985797550102167820073945971604840842183649370774243823191742308642532479533076952379319998618233406222944843270085478908211919401017504436777210761829207734834788108143569522709136575919155405324579597373093160652362163122066481657602485577563432033044080197605579611865769082041013611385585833971042484891677412203072579389225473135856805636714722899893837574034171381983781790553735882523027976055818468568099946471460407967844733788118589828749298917165724800914329834933228707657095602989507754663345030579369959672723082438667380978384640265912969241770147955461866615019532485253592710492368181176186752450037155142596132789475168864732841355739028987115359654812455226798616001849262724374385036667655134421558667520648145463307753061807961746659513805339162690498845929979558336069945649683656771901016223439230788241015790801723357529298381261674230391927071321876155544798040044827235335911033834341803618652550386889705234582784522362328410359838530660553116426369891739755863569451197326053983561278565594738383664256217717437471377180014471541087094089440860394813602054875791181121108511842476030644132418521896457927616838228117844368050029538207287469231876125263591000615368047717630244177917748812913875650440069811459503422057931001798734742388003975976013450556981642875169952082696909368462799044891290243890240372437427998906303279085413356165930058784613028337879183075593163407470642491826300607510299704628870566955480768937404956448175711266235620461452033255983874905677589730076751961486079733603254318417180799759245574524003730732891810223021333900166553595620163631769277492897885979446729910048268606960991495603145775171294619434127402765936425923268674410437758385851092368392058163443111685022400040597599906341813976597185196459124217411854301078497176785205764610066543284069686866630904287767217964161588648530584923584254035311676664232889741946175765662230250372168172372575071161051180433226415049194442413580085029431609113849392612512915318631984214371374456653709310592777648394652551559435055858014029695800992212815920190376473380946606753693042821494598945604665583178561561909232301081425850998497149901802147138196147268176136606062688956084558962613932696671897714161123137484836149328171992264075525630370366522064064068658276138393731008987289515361706290255067645248353789873106336165819612338834810769371045915958187762614473775525895279909389859816710797480706858446955447886345222562011191434234244704236585774086202094690863760218304243139546338805498516128719280123225813388951297917614120970619322573866728639152278849136982715050576989533450733199870321076864771684983238908066788883554337528452438499265210879690073789191937129137562876598060655757145898444431298596437250721613980202799495413953415751717601596955102190197395995998481326829762756989275803923123566739341423005920447652059560470117849411519367371267209195692220183004342812353738316388684317242547243327320844900777409263645207046986740022462426399350165335697772874742029024739332164367069942193326458230860284166676002306459297442712031921644973890512587746040071727455031083182885585125558399374241148216888048370208437761387420075595315861050606070549781902377734203975763208326206464987284276077315119593834826537638335012355243224722633382121671727040421149417943815320070679566801209952339499517118720236990220365854775876335985541335735666400721148647641560500783426177729430336523911709318236161219121901206695448820551678111067078655412539123295808663526964419547069498315191365747893978710859770821173180238919996603716188969332418102539169628969271443497253071685936515888601033758807878793553213047310421081689828209691954334242573176824520098693716119450917202861467153639193750239370291785758727048100833979144554544928561087575039071568768144762166809603836228667937138356837418151354430018175858050098012642256346528288036299263975448405553002358556944839275719010323819487464080515356091464758968884677585449267735751635240393997024157134081676498647128479016077150461781275690207778831412297255244480806484247798847762192569114135629614436089982139086643946233316497972515196487818417902764187661122008036396353871526134021378652211735774927198689886249886871712932277309092440202397727686648561287725870142919838840831663078797822405815426679223327042490269456453925423339827896225893209635152267030102523441825930132000795696876015137313315027940190937288116147004534900130428265613795342383449799677056562948215660229235536303887344723004840278309816089887590764255906098918810592027068315485890115315409742645810310053905006409157744923479658759094358259506528094853027402036969835357063426865474759547163877874046063664900297240782072551997555278881549201695973708931013940964581570800344018944389661665054673059735372210258329551588511869499010892658991062560152111852418595396956940152874654572155166503821380017879762575240842671676459387471523859222766409366082037677334784852661169414856371294376432896294618905177349963665106584592534749406800254099773931969254824387065923320271518343713715887230636828779295030766019700127820135434945536867011205782350654411792218995479784817347762629623009067828212835922129488795589291270254034236726577059495188679597266040350409524714100458561839087241340541416492115493496168284325360186790396114131111338480508918841202030480716690730457478322362206158691453746631835254794251000736269749192919677573081658458787986445973595274797063101133777997450707576454602167915418203606991582594180814103094299777015155549211773822187553896615365276507105428539895684980779516888976645252533651426358727586712503531327941622465982507672046439196888580244447456092709636866341342118341719906849582954204690762159388880295840042337672942136443205197861427218043374339955054299335901930924221488230975280766561807838414181484658656964394491642019765302020901406255943560727912051982113324180004099955943779601771012236058050738963165645553332420161189792928642160815252193017871583290104835675224795069016522427266267445597102307897994326409336527305142134607593241799831743556313329426843190101307847081694016471634742308994728847115833371169909360654777456422526740029171555968214957290923846875243620815777898993734585408768686099760868793839547026898858410444182287242132276852561375222718773455055361635947783097048011176868149971403047349501116515988057138553727914056385523554330200953681340650271333532245385700890767640967216016404509753667389711916187124135926140351019845060475811723900936123555687453927329924852389329767101297330071375979901355121342612352802212811276768593438594828965973636952996889210439754173894215850679486178373712819841477905158459288190648351278459843292152590548192954612957847661600656731988417817241254802836551257026829236444319405492806534586611813753757915573132738370856576070967525857932897521812537245833135131897739572244218772305169919840584346921180666001779511919202107653458407043529110270628967024759066525016507649130967377480044640218566547132013588722422725355582072133736326330741266805996364621190862743575604462748830496701161384381413734094163336509634931082394841250928669427135782160320585285350415676783041244615614825163523349147850864072458691232570153540603660349638022518270707162935112467363180173387843947790561821085172109299877903694363950153103961653516880601625760978146048065532331667999679312395665429918493220926067087088469242555720629930465493710236891304992048395483648279268733105831202374071544642126930383331557791663306916104275338037334233218825394532320264836429553891601819062436741570922936645032081931519992312829786554788232193127018902467458345864282569399527444822898337370270355692132107167895475447419276338558572463620435280183280186068608391837580773556562319248544354306425470755859007043772837290354071545249399912669870080191841204802901754178650192015549274396867386937410757992488427183116864701874438318431845098069054612117241931174932481529206881696135873554357607193827685496447368294805217720685022808406146746236095256998728451130940528741574339965428008314062460055117986208220064985873767288367441114043792095975780815571049304430413438310874985658088226363602205735661715842649274928301475362671368278450799298720212490129968512900574941712057370760214312471387979493744678923081954669913631317776880205151070711738872035620785763403055593711361722354706115182207361605373567819698789953099622317361256412714874593230557139173567293736907225285467359323690456895024699355512434507050370865607823822747782248470303459548366197656458714043195261889782023436761159176866594034387428186200014809967050116512542365106102944824907619335828161014241755010229541110683626350854158617429079047423584575235075435572312268187565951524558508871077334200217481142538717850927133461921382933614070613275959513713992599140245358379621740472293693475959414679891971509304454869079602983623288729538341530487074143779966285567825161185939561992130624738112080751894145193972038413642084859090692392227938765843695903531506603941867328582832981504903711505297307054661935209501835498729764162019023229612129966146378561310422946723429189565880090561280623505442167861778769871816166139489612533175809716480154697020016573344255638272097926651081280543872012874145909919371254490457995078602575440064294885491976750979833061715260443171311400039124845402085440785642076689911284197931862872365127414138224295320752500080639016508702197991342301411988625730234645151431110676454940062632396444295165460616373146728420178331705956945096078864709647894592348759243414182269814416392229148445374661027861202976159170001900022393429321704984265978795124169629186805995444771605347438692119116821036748918655020712146782342567209992038939823550746398512677374579434087513844435038555676782821306281006035015143462651413484505103321825194139628008093562795687509095435302505823765445580398883138144364236682662841243201013109249531046224707796122558720402337072500179365575687126897326042977606251311487354415942681065001689264305814691295169818701961665083526719960906948450745114755865454489367465647452246675195720930228064784210941569229641769815363212833771380671905501081821118344651346141368004060752008963468772008824486545299652701965222892718899595157131132138074345113505371610716536285068152111235591446257728142220798567862263482441086255875277285497478002837482309303335133023975837363433101932028127712873026956944103180422052213660707609064325579812535887641439047567648982822484323687180363436862065239816551350798814583804240666088491115645558524366555769977254067771181508455684883869397990147204978803572370481851738503236968208338633712911170612943498862873648673301595211344482943391679507070775220661660358615350959860357837820889787936592108474922920997915509541166236158465618665811929768777465378992537109324985738850641582099759323372261958013795352173461423900955535687327988084227721087046068107846708300870922239125372934381373799651675277703386430834908098020459164610928804438538941847508115704511033034849835669600065615310600010802885570241683263158355217463498653351987638423163711259726485471592270416390250088534576956845081868050059502114134943925885302321517622732490470573212488498098503990980234180280009719689984310667363536749905573005318150116116601530905790313180103422356617805101803687576323188045211376628769678460832786980131412035918866484912473938235959064436416000569303120322093589854657039928037933322407438855535819926286211392280580604607794571907290645444155653271503819996936388256150213726890501734837453195136541083463345017943001199898658915132463681190478956578325399056051409991883706747102776081173894414385353387520836602892444471043851293713799805642924874963854958799409173539918237932777192696962699409566608986378093927954232569697617138232809580592942317382172434125416350731879729413261448184003953125291287446007227948794141981764582789048078587373269226804288526296135949902247175218777180351202938831685370345401582571103008405537823211121667327754382647479759646123834392659629554467051448350851513295702807162207288454427191075326623340876143777820294278931240101345006662847207931072312436206674068300587649251907010353922207872650395553096491331675434591524871419542338741206139054351026617744210367372309562264744291579398532630481627848694086679293494153942832947447086920388205582673194827214699030285858277584507675897677896046181063218015031853760643382532385796630206532259773188910089727402231872627744221082230440561713435034710567567383726626038692094037167123711060825653003139427371194627426728746188865805193278366887178532894969283227782766037593582606350339615972264710336666443466189059706410942447073837613156929287004071880288441743798689311240200043109270686454868354201603413786082365360987153840894869476843288806438815092026016172998622789581888612443279510209837438166570440868517762761728803828296373459241862047548079405523414672929266668763127595297800599306013845917325873227926858983914696699470872569262365526253059115969698636374310051233387751731646176891429152226609729871921309284174139959994233667689319629462454433642191878470733652615779713331112247518687479271424292062378506481615786738909083756987051148294645378182505240895351469884263531290677975230888510836177725974237556804512438669998229388758100390788501213008813091909963186524133837726635761890222787141154682413191756524268513146063710744302996114238755292527962963350130053780121387254789078177303005014394228495231460004708501027576953917391283042747398786323745869607399546649007642300977622623414064440595058646921159747032997694697765663274687452892382660385578966525247741485030418550651406138894783846729381449957408982919679175930828391040596080630816721068927391979853804848170014318706081346693251887820656338988012895729104022106211004298989424809911026416283406056663161387814634332660048701811023599899133382394481620986344038874103164927286384741757588963171317586072900960599402343736114655557975056852074112011076888264499431717266941563550633611387584351829729454649286790476561108440180894433483007520055154986318654168433958705509892724711709193591089818453332367930808866456906231914350536481767280201902746356202386885935378219266742136559466373936372443948268924509303127690032037867661301934339222509453397678348502950514946190377436493788513747146306534960533009024717956833521458298673462344305575734168604236340542070313981878452472513844189796520786362226164165700600797148967015366760835407954839324380800532465305573225859752751567751391660992497639429386171037580047154924054022567836411777527095283337172613561776014401454542617934849576980612660932940033321614419838792299896743504883171476294382115748999781576353305639717800331886223857025282027692249215990621084819320991636349220553057441633594696352895101300734027735261553122175808302535261718851757937625455864547531666376443410045740463926911001892635719317833753444257673956346065176574973921045240243911659154966009841643547521305058137425971597747357016918356768871341328381733615512922138535202989493942241680355824224245612470181520449472368088284821186343530751765301849371344526581726384093189011900685800244292800783447398990947285046350510524503664931067513206501170249397982585219152167713160641084959051926382288599532792822919770672361801179329210002020368572813554671081034497663488859871675917415148025911517529396684681108047230459265514538641870345702360265888252305803712389929628101510520198208605123673282066873202417722152712133057137389271739319021556060569736065065953365273886710949441362215396617749573844012720253327681825867373263366617887143352481741167441678677436973318051801744435847911532436215416513109249864919434729609033395351023945821358780541225213967213784282104288314710532225096797893566595815429772301214082873128655858689573186355453992436069823721380749545029273203307914822404582803889773886515900594019589104086411542395907868202244778102941082135392762314081293957194985391564475396370140559200841316669438205415719671937345207751150805936386622045830592619616849317296427774346013231061808726096427174238104843791792989644941908865111187536426660036071192344297903436987277833195581328612829648432737193274184320318135473621362042112146593550913326290981429824956466530128302113881013986925117043987214538328544730177668279353974024273181324280501540254966132165751795796624033649437591164767067990855728311173373191119101680371207256741788989025064714579259882482373424820627374278657411310601837006096020516207607111820214888945415198408421330231711623622944517171011796894664575710821402589296496702027919624520535545680900210739683371992420606697958014253223812896281393841286730273068795836250472494390599134819755488579775790956052889972359854726048981073442845691576769384223655262559871497839447358732930797142744703266759929896700831952983107516619068280177632665003617283203922889903528818204251363555946790658796183772869404505240521454220594209190102904338053540920540027264188867633138407329415801409826843644548241377331845349170703573712549108034266843235453183855789265663254518792089623708785122939332078009482255082183026714880851652657944283771086099505896011979061591456255618360799734471583540328070382895178583925637159830520109602368157249386195269678967242498496219311451414960215224027434846544147447469396409864199989556294353490230973735350824909012673504135669937352298560385864821035878892623355452874033922995134945243251445053225921274258291975158794394351769330475215092209744315668741414187150566579912594122579734411870395128243066044636900670446948608619587302212999663653549370667596945993943959787401201753979571807125366075010832049746275021904469080895691987992076970484120816228065406408081060609027514500754341610059358931890917940575839409074751640005945846719299909020870501445522096379501206736629296824345431949930059475081272425454316614331442576392756144030072960081768417923299775104716426860519414801645414858339118329257695692783986595206463452605130777043788120861689390228165950235189241918077631154482775460632733512467767361897765381015595868703021849173380239346010066520062043902148072737000591805216247925765849250790333274118401899230305574249147627626810599314592727105287079839412357383864452079563336943351292030449682207477722713531870576811687617164159819947005673764262312493079419867094911586817403045834783908120227293464928777470586899254811029866615001436314822357896202267661858127001935749714788994377204047798196906769858914707696656989726809157814369012745103452252064434128810963204792001126239319379598642871879068081833168918206740171759519840975103489936792374945915666412084590853131131466093155366667269976664566280158045032986885672532069566602826909186745956031653372839584464215375933284993283650670509488234674713120720905058221713803066700058329428090807387207187061110974783427224015039159832031383238113805902439499398080691058063087975723935937107820474413832167911361380170112711349844891878571346184674141502676393295350454826423678252609888143841772540974338073786724767352510044733035571022293423059505154087084316384447930556330832997932367447295500391590536939294424543564553662173962593496204833938458399792217599056862737499131311336524299346800335099211604472369077717719685944318378760000836484790002639146645919486295920628193242886544625149678757756331003335117306547285034011012815107553659305091377546811832317720947831107517740783566292211890339403913081327357301476928803371967622500391243717568840349514330740788787757064387094209488155987554922803440842068571308205152103086082606528009285808904065148078110592013498207676716718341456342444119077329634479968336857033924681560764741638519755446485213029763404593665827818386750366829271747561230786592088914915427703108461097730456410469465414118998925815650990382207728317055330905323000897620252223691821214340586032225199279328905167980353383609807365816610105960687235232303295085418683905418889513546647151008078708138452986431591772559320179275408141037710788897262182039685107264542113225625010489442066332544534356616779304375913767416857400574669713063392005655492006574110195084762298236386309813717282506897666793745458304035992672371622594014992495406081782497764828394128975118413930806208834330869922576041802114063864202379758937899016318957440575430636623436617357076387745236449573224983508695362030743833472873334777769870650092469496243013703428120632565566322508491239841226808438156499362492208281473386931229693078775312274125626100297312153895459856490748948028059443207487050510361586092411021720080324525572118884310244432492860084384943011217990710834450541104832864750380342313283087751473264411375127088494299192200738857357842799553516362693940581468067438504651149908956998099970843501518942325854892143074742232603026687565488470152919696927001126055818524562802537196463960808404261047647663406062544020590302396372314200481865524636865640461087835973158551091261409505409681375116928178706512812783873185603372423416644070871392930908082649173949413171307346894047627821877927647387298836901483702580074076072795459859897173210708597299110970617247043848361717370020413535579427370192216619761636949181405116674809850657382564233212616119915707834614945055493118149729787963949664941044685415831865067055976189548388567352052257620094329505088598903739823940342292072676172782463142261809056882260300996738074487108222187507637360295205982545771735653221754338100079334703860113699372530423452007992193715103731973195780288323552484979821965556697915549840418542780298888367582701874116547291175144089603693045763491389220909910496975443340938753526617004415254838804584364891622682472364493912834570251397687434260803596142795263709545520422162764370891304129876030063935822316842973876251095276809684842719871334195012475509225200118782784307687926847471270326533227980197240456365990750500085317593759779602854649398609892113576595282603835728937038465593333087038130854866553590138576488115200190786668809629441813356300171934416701962080587364328383012816615585550855729801174364722099370393486125608590587048773248075578827977639822892097232780171105553133054450681060510784219754040149512636653510211317461565698990432674434771561369936118306194998688981457213251389760342297016742592797102347216089598036216004590479986090691843039413115354128504009502320950240088362443430718623193201718440926924103018085228635992490368848309868340046514959179260412616833124690727398389880642381231512982964976466141190265395670651475700467715863160948540939185490416645375642661617715141508740953680559849838770034175434186245737866799777558524419781330202397383682447356321362774243664105842202917742768249173524903015812421226382427608606079919990445697673881864720253279368327831343847575130568905297382774206777608742468691292246878279794780808441149732471128893019332885599743291485621541776891158318172870649320715577414665157903043186555107413119255306865021478213298035672582109723684486521967521139246836648658496345491226479110584836312773265051527508910039677686389827874369862757722904755092294692847925540667623098387120183905424571325796318796230812607859356584992096204640681382283013413409799749702977369659836285779467374240920330451088372322200373058071067699066922063684085827960314957647291182989033362310410537227769736925650200852287556367292240929859693455679845238375378106001673859260408659306590400643550664903591879235503136391446893741482714373259269746027482142517881670217706963311292379181796243208616191318478048415346483690090550304090400237488995743577725288733534342512853339285564501243767435078253701817610922130461288326277394072506566474004072446587618653094402181807689142300652655491545345076731118401941169701857168688753972785564951877123150569741434261789962996255958887743754934051743846958652348334616107045741195813871473000370274680393765202551365202212561505911792737885625051693275872267237045271726737646462457571855270955604855026490470466674572147490743206192226694146829977439165832756000060139493628289278826162908323199829743711256233099156858399544039457865584573283594704109514316404322372658193110224188326439236026709247469287355961763659177984467462653759798319732789418476939258285578020325962968810969628514766874532991272253521480639057704361041342329057223869028341921369498292441192674701319984986022887002588542351467280054044132173465724024222357323953736109716976322748317609211553018169384451621576092637643264109546066224319149076566819666406646320707662669144308898837291773910976794822649949995788728880185696077256604400501671167788996673055236703202678800682681657884729555078606405912386041781207840745702085760865826806411846590629852526081444697355868375767164514923249386862129965793329598163850113835351137815534005761673453594706061393848096478642418938171325656700602500229518368348063402755172145075893354747425701247111454279936188766828035479674745236425420735548634343768307252345233673539743674745371929062774222279618394231133182808357154471495200735488880025675984910327594457406364254996743029916358756276047442683351820183249908602475235795497150393273178427472201063913097136242938981997829856151131337385627596285550309047400875766988839422769728212273013362897207800425504079174977606106387408090024016405537341810021542938581634746581122103627011442918067641687848919671308113588179439732485168706939212286750933503980961279219243929736331879211707091974116534659624018412269354947685061534673205314028908866094333177790155145426229355480888851798270759628196973677373584872726748715733657626941298295999553524500822956799979264979276984786661172352786669451673714783138940918671945065453914969407419112999550613880357107791719456272734999279627569775716206940537330335508627393531660988537532374535982082590257227268011010685862562224194458697049650342629373452282921802139687481159806684320346381496624229191579640198197152100331128842194359515650242179636664790348600841132675216260926215736092697549377252777645401017581723012989036867437330942682429982994029890250519460818547569341484006089610741292672046851705586975078558272493362770740176596196240705716886219881702651287517638516955628967005187664813666845636050228088208630880381177517189760007597540711254235309057108238218010412698703457458659832653416270469495929822258330439900870576060738784768078461478308884689701811970840124042742251758069775058879837548335921355385089828082046696079922904837814272652768758490809728701285600177422075637846639161026758277615881634065331658133266814892239881169301781132340502631089116268293861214136088170899018804646672401926390859467897866825490794815012448472190124683765988586890797083582931322662544467423397125905823993865974510596031439151811937464404378485899014327937420810424651372620648968167937078533603612790262244281062050502670181267607012634095865860499349047098550380507738211279200526261710813469386098504981637816928845291984855206223770595448236224491451630908264762474105768819072065258003759036076777617209407343417854294218903443798710612509227068935673016689340686551526007637938765908774843703353337187054508986317598353813377697308801196845327364331076413597569936740678538319607219034905960481780494373819198550919701644666849313052927667580234443243915468610538454463413577082440694143302542468012363579774394603138237938956249660035597560628512088870817131679269123485452126468321636937414031932786234722367715769735872728362173930893572124092317533804109468505590997156757311890217794281063411350773310461480521849591976997741995947159651251503835101793748867241907004932525151849358971564464589044928160910945618276365614755731477117140696243729712041640019532974936629596250839980445417792943637230620025800503432648566907945751188983189992352655005528971443078479425158334487550208516627460651612501507335195103962448898423577787789142244430237572152979903206612461392621275580334366173328561965415627238830337789611205776658107292014764150300824638905897727960525687044335266800187536937366758303126791615835673997080146473242894347552977674069818721778301763390976554272688830336075943878556000225253527217599775744003056712317433444564551742304827387783125985674998830268959803954041307096995778616385498560003722916811906570170517581594963666022871088306772886151215765297477660250335019648924614520932399769450052926813254252685849623708668849566552153026212147585472761722312477323951881032498119003379942337216453779642687738002603669968310539540582822165299321027886184168505972754111045949126207181475048546462257667028333603502133328676849605615102215307711155399993773067929169336343843189290957404342700455381047085688601635671744286645497239463739642776926089426079389615918424944650092244609212884429159184091677177500342228780430326570080211529040222190227677595395620919985246301103175115811453290035041236712277878803664805514829672132812711941277988338484205462403014625722509038067471952010504235520442611128739055029642945633166937953747448631506766178668593702954927520656372621024067405770091329692657786669484519896662772059678647363851939752147235966409026567262422145429743850686704879046178888586151268403975287322424460605729306724228149848929733946714487213044223061586902758728113332691469379969628019424837181431852238116395833518121314560184883820029860878032068567861927473002996577466460021656078757830711362122982806902136475527947897897398179826531826293432420427807254565842454239414131140426644502130402713280769297293777716480572761982455238118195585707540230961132080700749212676219950585239993339505124965845291186439098755751887228761870127191686754115028934078646499095148642837543589466154000792280779400993054980370980619583934143643921933499000927703674264424560600087416004147044509101200729594813625380783827956572716819830705583061029951006805596102347138518680447811030712123676537485573591528121284801048852305139307633879927364556588299691540885252971237315840250193537404409274075891096651386694807243297212451960043156622508470179845090037682822557877413931032201866947953217272968260268701203144550128972962145011957001569501096271205742861957923277966494158507273088070494209740830986230335020465628239332020710066005773786562692161248482300762360326128103684448964795475097298425930385452974169344387659250164176205532311837524687949316892242041878977997412274463533170223976157417122346296241752479831913255455556724259462886451768908882559427745339692192563583195516533342849779748525616069471329889882881566685814584407235121329535016117048051266790262044292771287607723475302770731845802230405652684502956969784363930975023433370606076341862912134407136306085649289317336655331199022485507073860172426154043347367547220102969504169629695442673432770800645364730653635120588911114366350330634203077922308161564766115874958625582706471612394425168446969775577597396271177119387972804865858904911101366704926873283467804301981826435863865049143999288430998939519423095265594858563835946170069410477402051551023077363798857211995937573224623965798770364111230429390973184384276600435247951158989493518809288803624551092521472762809523773273561074276599792636299041121089237820979689744209216879183702978124087061887900300220185235473610935437797084063941299336405617803905001034845993414992089613773717502012318207464354028336746262487560772002652779341444486538594071481817265766477148675088490825744553172502590177954182228762611780741254325778951308925120242251081614512527495009099736835394220248544759119165506740648547809962213145776854005530343076931535179880506051105693986760994800374634111292888096016180778518386000737546983826011643499917718004774137874875916089825227460826814108651577619532604639522254720225329987907544504639092195500107621745847264984604634683177901062028202450364467238160351970528448438666398203880259236301332932766402342874798494014803015956542216042975941408643692075991236359745906439902077106721855702210711132906486946201157986534762184147994085159719793365026501346042712055652005311035300776993665096964327355481714570001826161824414844656005222829610137797674165362059186136060507948750039454939962326093444658314644548484317082903692442057426988414801462082156027686039772150186310913399775050054188623445060932085741610943488873542583142729761953778456769480813220256584060704243788462665163119423391002368187143688826745097965375712651761937303134381863541027097286349857241658491121447508526783927245097613349882512685598646879531954381547964065230955525358004127929854350273242331750014109474154280837242743384987110493945791659641211037778626552917550578953814522017560949109896550583204622709954179537061770636453328990343079397482922696795503710692394558265765189537829252814084662029825041924992429906604953467387211049621066990338083784024863231053514446494081779859690913994617934172357709232919925191834751179025792553178790385440448904566857166554834095107903267120251052813155703751304573452371481041050445301974233167382624073235239715447296089238657982268206158197106214125178468579623665417791288862286058049156584864640637535442236353246800221462096666806811480200034907973475993108125850508547840556201860452105776612256931697796526911401430271302228856972959806516673478383359484045480672431260411517247772795930464839191003433470189407584770058491672891885590918565937479373373729065304261128464823431211926311220520868042720898318717614054288263860855406632630008551931771451704451270270985252471559381286785391838153545917250062774254537827717705982307037517560164703935528859059401308215503081276028508279224991501164563105986289581974121403476158351954008659718465317810943947658594859212425403846831757196256922808239644640876150165816235358214640495873703891754522989940458354222058630873553225583923474005160814240067571731440843953611281340402524358566930981770997229162671221255137264915950160996181865875063050856656362073072976947455560052269496108531015951536179711370545749741999336239151501180492050967509181097857692396596857099066290500992677850278733222237794588636937671639550251041432923177600856086923746099086482345369840526532081495198344188906075980810834609318325623449768544560405511982326005792852645800270131598436997751267949823307085965073108040952132869208392047126824547106825536817542145539650894019406030387150718856792815450100318728264271720552709784568680399705780607703376346524122679123264615739033824270916493173756068442154884753623914480933007141134657632928373735441678997599396124905793053361039390073200481821695309749249539920793394277577557018321762245267764726819579867964565774582718437531255660867260994637370645895163370307276411572324546585218779719881977303937387827970915545054141123654013738872666398416286457161268174911868952144016114481940596907587948724019040289688073581993632036398092778748696844912003848666191038284609901009296430137098031211567305410507556569914540930487084544462218563848094332141627943553755154491504060207693881840353936035013872849995676919357329167157374689507484191239445445675828339927919548016061230049558955940327016141753409039239771086051972414369916735124947165535914533024487139058115239318113420472172527752637605269884431913590447357748632204160885391701192199019999030453934970051387270842161594548063035571237343055198236713237609583900518388578286365302993308677209876317604552999401472218913862753559380155916315581674742448161284061226364621155363710824411224594943652519901170746843461536762337964473973121534094602575242653692728047469288650491822336426263935591131287317935509665262908260603827150094259005135591098830244820482544195914617123884614675729873325907175924837010856440932199199470044882237115669537780657971710073031745549507700837668449254477224826677078307833088510877723847390625133223094686307672609000224804931913442395145006624281211374029439746839718730442486268240552599124074813725836949231793011099568328884077261798284663380606935289654374160612321451788976383327002525123769326770548855546885648539691524938724970673454319891320536369724890017737608031911254678550549847293800289130728592850125499198878847374595940232865254410839955103536609903054721070012995039512679503576452544431507013165001051216659976641445045410759424035319310828469251113671862712931113731777142080434643411610515469055168292772546384742584546739796894441682219301767815234699088135068692921869348640345499347694304464044543550668356013452585573302681363256548863726757529886041187464077957775363783737520287479620043358058470920769486891766193804351984238471941171806625877430548735606669314210154381490786590616232245162565710826737371127640438766983261798525632378559661643243499709546863556729977992470319827239335806512161683906306162561085719645964572272831847880810890414368467047587612113345755686477008271743285116297407711538730177979136807816501615961594112698661234816494110930018648077044860471675376745068175882639613259349046796028177185328264913227233539993586936749531847657750431668976994226635758143812225193238259648540524406587372943401521193473600265726073960233964727626712565903889079815094570810216523992029127959034446581581865614698405815574216177013297649006499061949497091058568593439006994844917159165273435299005311214206897764100940543488854263295902123910488783728743731536384730537320662202752869651597130620780965875481018591513832399056204280524762561744126628696055889913944897988665089316864948174029379120776196319463230864165679897092209121468368116566017122166247345708981743768453029531981046408786569105127686867019610490414286343706606394916438376474374259478404521985466275904473905707592559477063733108675165745800997094153794038163181948350882806246299785649953954962730891771842370544686916915106326804775536285704492289196359365847863862209211613256866343073897052611235770105435555183802202140445360529173537547131306935279224161618282460047113687034071199876033017343024897290866115564543465893019102226865119678331439486666318176489191097590236624313962506469838799729325135208787605109201424564235205723987842654919164610615647252533934224440240633452262945378473758530701744975679365982811183737981448828053649989292747192389862802266769683078377981391009305467332147889818494668709048262181054773232265337793546840112630510950995973298151547526613893617501945482343852580829771417269680600093879291574385148143936224658132282681737498459424457366911690357993070132591172985148989680489872225181601741799241250329433847640122360979373842203325335456552496166736556091248202539072888903208817255819164395487727039971287123557486926647757000873954937831019569722515106807362503020456601392642811370517850337214120050443769472920823608711239440357230749477639915891226003020563269282221755555734406318357504578609206538031848774110202044581504782310683853174302169337479592788071828609832280835448195481177467043050600813837119886594924370769740911720012818898050009275783018458727268838448692989355449701585328639315815369326638773535374384369103679390949553567616860791848545697979453694241602866741314989100576358449403162770030204286701717325620421217664984615250726708953290572770752772652481094480814453626151677194798019792425415749962480981939592327099978309605422117583215597130325087496426720430943807836605764481089155747026602114169822815608379764184544920655214341551508771671834092773063334978724647473738539126124942103697696178367992041842785027965041771649595332146981333832525657061411533685999772491127899230431099846200255828725683272392120560915650503754970807916579477458696914147867915347052650693502099678080257023000281799309746043934882067459154894721163197352403192345889828494432415663857742371886874707161102427924625144718146535980739513998379109987684439108136659651656189830160322910170028128229117577739891790293205567358342588382382096454860522940969149899979094217776034170641349334965156456853860590350047803999116214100678014082191922637600594705352278138626521790288409776782521677260176167703556472902294764787377365327895583590132875622468406169405957482044756016173777102392512447463327172760963256543227567563629797613404034023812844065763185470039609364342973863032569137654233898404225884697065057622964990275862259042241460975474102849884631276488220306076179300600130241076418918762623087655500656706416605270032702812185840379262341788096895475006781005961310293344917661137367138609963116285578374591350074784268887846401920229621548906130960486825340866337204671100182354402007813428650000396933398522918032104121044611848873518645902173732887260068619867014141329954020483095501774088760123979748427410544123822346993062923688626258977494526237682316422106616847844430581559305710406250584153709206058025994128407018152067178771921359803165318745093240506986214237044243054932259634338309213007405013590787133972932698465866910415776893408077971672380854693002750522517003950668413596642925632027590000393568615883556919785827072637625223469051889540527495423436468573133788696335272013538765485811044149766030395688625465243800828116388967909272063504239787789211682023186757644425459931413299732357386286138522235805883251262072639876828552103974434927416894668842878233993052617507909024153077462765247770925122165874456053149431544884159820499313659349403358442475889309838676902620225466555088503136810930344561389634729598108246682301759565499307344225782959448422051084161445973615970792428699862831168622345896805633943411362654170669534509018464529960765593214210560371965478089523776076846634253975180801839580381837965949540913477898949247430661387723883393752498954688617229185811882475740235481509369545021745724884769034029863582426822680083225146714701060928590493867382053007532138839394989884494377713634572151001334781983109637266361115798248831942291363520136066876780693578091009781564311795935760842885662819426441294506966310398811905759647389228866535768479979893330493237236495389668719202980213001117514751848255307541492294922774372998387728433334677981692870296981031499277145547682184931613705587380788725870993111070268826160602053513214779711689823072846064241812447442532539286978403390533424685460815454648144599217897929807865355132929879684171791081861296510457801280637812260597904800990195771339102834411138921181874145162578263210364074490900918524289222356450227711402459888109103117629599766937957266982499026151075485435576932614235424055141091515306398939416921059216433626390147591103036784986944175867377937252091475932039210595732858137077519977077541481841137489145483473710759221491482573284336524413527098921394423242639836765224280878657225452928654117823644866737895091074573202829956488930817601765178274398818506212778824844926484551623517364716243879898916474291879332917320610416799909674268720123616689353153348312486879847791795086122228084810431993800480209465891415487458122510686421383800447155085711791188990375094706967169397299612550671214390718909245629865396730473339124925701052759204032036817190882089994839404616852426300061007972251793181013071702941569729619308667746233848008161522393020613358659878934211462083471882100891668261898154596504400862875828698326312794893464293264712169960678451053984913998738757079449118480281973594574626237368571779930017960480118976399601589843460919789043404727530595398630410997496301794051529778826996970839560463659622092567607576890789339282268737644102506763128170492374779761837675415678769714661208799948258590252461558606003267682229896678992379889581990200118794455529595292408555008512227034241830107122365333699577680781787446197665690030927563255137661153937395604812121136508699687727681798313366548971131318815610959669081241414540520620701429488433128350698831170532009720779732125763347026207704142731443600835824457526164214516153897569248638719396919883907165489632708598245734105791864020247390442297072203003580919336764713900016392626627782252962297372090226407193405000025983487510342003254895096056119169079459773387882960301597422633098307232966024168491931610925818658944608687398118216318243943691293240110875963899477728641559341909509687168634636160088868711294016466678359715250627123599913739205503736484228037795847491874023203764289559153151233502633381141456487686613874387166357011549142583499788587041522672631571839171427073533975234717413189289158740505737338573674719538355368225712135668070605512427043272851095279297507618625800836352019171941760873565097449712071825527095006244277961505134330275470108582858898172709758864199200939997265144946408786205310087570780719999804639098028364064719547327459277099757935881006682757794546573920572275384191555172629942010490371216673753624892626415664122726035262569878410393561845066278301714875788991786740364867502191413847561977507486510452365093345187453171900342330588701217559624073455282025306025442431859380380596489415768290320330261696109751395564539904841492076870524405786370256744052955915080733538690502428613840610094261404475385046111220166195727532649561555298673387977209676499389582239133285660559711676421433711373542696291826382860459133059645918970062882359760593811144433610801928147921791343997919832832335692266064999741346733754927357552306969270494360011920994370700238617475174504407647954943406432983655854415034397812376045729420977683109939443987532939673580496111734707236836423309005977929708859817323575248109172569286720046044415260786113971260853915036779233387543647401534054981145706458049619887267815100304499134721653185288369870686497185969650983167626298526696817815410911207263950103350464252128409637301125923261958106934682004957396281581648578616419953461808701805908608220748545091879465944746223768970867865949608277294001218375998635067913478550912368183227643701556546344841259323783212686967890569886043148739853653642433539454166501221896859456440279727481743192023399546883495145281091562841972375374398566578624207923986288069048958021850977924336337157300195716657892529682170799435085756792738923731431612869903559174930921450758321590238819735291110856615867242793996878980454221004104349533075395001915516138305015806391010053203966850482314883538225082597266216791791088293679945942859480328731553928084338500517010407902934047026305452323411259027129657442198551066951064413161296185881982513821982338387467707019538115160647155336935649854902490985081259710075619763384843522590142314670384019884841917186518253711921009105667878559979697223465488241405508129239157004666365044592428931903121497421990416087024233861483427317653944319353153519528576700757346615428648260405813425752391480464563424598719984646027117636485252097963228455710172647713996921507865991717476146147667272929892735629439907857188904636838829004843519835545789784479190582162016224964611636186579350205223449631316375542691957879629055627001031313819029067052347048088209997591306971881752159424590902027831690895985864329360637043147766291943814804751587587718130210989551519080796022788108462546061607150455845944033781440309951936357319213823861265767396766990488557144887771007009719818320423014077327712755803337039727484630156281593671591097791561099238285366123926535330925002833039373383605977026772717796441004935065398779664659191957080246994065492368293815211014587945656329804609037085800447529077027174324203048294983033933809149923164114427446406092434159870604419859142516425336707172075565763615072826559137637803831768551540608446513172720030439287333676052235364035654991045730652665588256804041387810161617439592170263404705127685341515380014831965709037513722796030575609763455067582237053205273048349480804078172950475564186419115092479075422776833450660512498646325681268995687730285643432965635903345551289729363797986484599573269329371659244213089714190101655854671408741615198417962725894297350999329138827728847501759503454368906392465669921778658277607718060227926818084067391749597053387978284740929851952720333723639901401422349220051445091195448636232512484285658950962582777630759532792162141647548307977199736081173248882027384597979981414899621004131983433872196538538384253783345209667945697751357561330852573435216377127728671568864670175839955010608957878084771217619273133726056955421361596676793443218536661656124686239486216383503940277353038154582840429527698525604236979585540615039208840784646285319510878595154132939893654828206388693325015801102539796619627969009610040302647922617644405909534124669052753007714434628508487791078433309900991475614215440941041585056204316204426786459518843631386723689837216576474577653590039588712425846994987152456568446347065424293187868617107599952693018067468973515529099426753145139214159112323914081445409258751500332629047645424901882886944793062764839116191010874712039702502286122135824114937421625387840545966454173488851051408571871159431925783924069281530754121962748707785023639990291941806911432893653844735244677511841723029122270183756049167835094018650271570790187668508252014751284285857880457653645535626657090562218560380576580960605322674161706733069266460303230507246240266515245644058391059790814465032105995626667350048009824088273935779535969639541202792262958487095719566457462101990221353189606862786387930293617997320787431011258586075020152072343985174380594041211352714564690012016293328791562163105698390033233516563770341955377651015281968875155933953077019498351374649370995847573465050956548346488176397212227902700293082522589686076096397383566822990592704246827354309032348945782526972596807274792648016067971952209960565606420083005612477767715813731782608424789904069676994166572720958297867426739336612295221972160688830763961494620258502022354698781333281403183285717282724258027144454077204835224643286292816940818582536887451996429380488133462139257344541542830265765836794488492452083903909373481577729308039370147458158959478032061122135343495081783909642248394407059865077463193329488536579111829884427063450378368838593723039517819417862944704061251703430606143195980689000036448197006813666507049457207336199210739438140046922149383977891452214096282580419021172972083161802054733265732434305930850443317251318990694196635933173284902399017376543227923395056567699185139302848831598069884967289860534776185853126435888928515493868939946527790981088070242665212550646773909363907004864899725509578227313793335885187715337703836084150740255436286191350923559556040659325139925966155759755848605961780135526048839091216140440626187648909235955353428499710812507739246935783037770798024211510512076035254306104551607461365602394184341744177210687924265819469892013183947817028753676712131105313201015999195762047770475412027416731346545531384530649237729895519061255966470141876343491008620580978677976758154424361168870502403909790379358276724040460284434336984352875721819913077668296483825012261369077278940893015404893912203961061660141697708284055760448940712309380895452744472389981476422247029388550039549269488773269043515925379382911217759781320952496448945365696845592111701628782294194390689526675908178521656454384871367974690339222043588279056643863746288518389475304462017677213367058553802559174431361128567754222589526995373012130733858678781875086366155621904207298608470199772752421078675848529770966554293790148053909015241005897454875968157659493644050344148188543445073134979786468100651004559382194683542621956624596869094171014479636381471151969171000825365024912458010081812080414369982899410211456540807180984435555339700010442723114971926964288482371954109734586553144639471812565069750686292530865646808840239560324984114465652749441365504119541756546287030290468528397952296205373793563498132938901992343195059189041898950902509426184243395739579904441323988922017021558796409246812912782992538022393670279654347946367022759079732040389689320386874179510078076303001688981910248447069752650630287511956305229969886913157141046910246274378399033385584369969538957320990313738887678147044246726638706876008053265507886288595833346290294828449965788186536985051212594268544199101020107233037384357864815113596590587006083614219936007780816474655834945556477499605633041632940436319596335064269819771685680267459814191297724616106280767471536895950777552535091802014167623122609158927613672664169320466534767610379785545398605944647275903762020102415969710222642540060363429674959752076748927302820099834754012518566900121193205902558144642621596589630622117194762691284055450718802308614018702651564755741866024579502341159113093867300418839558138394860203330996347056961005219368506306655088155834920638299601353560147259084769349764431074121218519297849187246420243454911593373554632929180640961238636755614039353282842434706647639566919700350031372536891291934940390640584301560270585112707710827944201234789459248866084650740886743990211558742364500434544867213388088369581239853477440758291080143951544454943838482874698312490287759325315492673300519226531151582808992318136517927494996577989659293498230812595504542036458524562789984036237782906283712244707856827438153092945661118072896213943563300491534555162357489004030684058837993065030198520052268334152620456643031712520820749515294972831752708766715533679072156789739420481014998923362085446670820888293124831623928552156770613749504328311692182978094931678993953061949125506065447979511467782896273585723628712970632227604318732030588812834797358630700100691733733111387866911160144557004494513382963598032294946687415119964137691109385402811351188859401082204205325109435807122725515650403744406841318175934323829757203571808235242436931833309753474980271589100559607511817455588917459024018610976463220976785559218733556748515338174114616467228680402839544004043102700495456422173452782332477544788035823155449147005360911258460591062649332403897714570320071459830941021948674265727332827010647794559012213641605746802026714079934318429910272916430087054242729353193267441338030395193024437108289250795739688208542414152212996126076176824358027750438337500084848959290896218497974575680119253953588646274702623679822122093906184406695007006501594939371168731914138530127504039642524956491810275086427328433066124004371760022752598166647952017859712138300182055845398144630326838273966888197360547514951914497399289985715050359375754015265131010473081039730061152551617109872900185995867304319996908686830058697789773733089315240847967267122745565685029835918915266809319577305702597199802300162895385046327366953950338391903681767790649779626347589378801055435449684068882225726880684470797535421581803523639361701937458428843253185617851945728747628176397334304577305319615694762898742897786114289085050333878694762320009682608213756959355161190722711918817556185562208757957903384819441520208759747395531114828996879741929483979591989431106137038076826383598795251437582787577189709221580008471358152800276148034624385828112981059601107652085538018526997435671963626470831158520723679439144013645137471573673162182546653795631133512508933935145860363191710977037235072031848211590811956239301903832917929187557941930369828560164212510791689600587289973546956155837530275664386480057085142529719522569288772755431027250053824634681429796271156181041617742872195089346677470426589015713922988902043706172043196938787875841623274523183064610852838410799109420586615995407086565389585391674655817900496395146946046126426159569556372070841070681591402624557266803031827494044007809623486229190083604955441841924830252235120642261190166407070729459412899305517829861855067538198262353193978470408903773345085546687999182487770735490940322416788873401550975441204984876893114053828172009687422183057326903601421970766058388706425210258966575195681867999811812786520364464441956013083801410505431014344745806981170257509172811656584738822679829727013066761839961954258003877607161414935718690231927115771996762209145648864346573089496801411348082349506457726734499480179712010401077393970201094018314253329985483715425713625603258822483837446078396547737302168230667518494175433784228737263026205571394997916250413213928581505451606243554153042008035871451319896964330323009445667093930461156848915115098683670361339139355972020798290035510361544282369843422785544692562059127547087712640940677994363151495897415737910263837407806398054188115345734212301988343621715361833324340418413138455535262276353133527981447729902964131254857040730560105864026722716083721478601826145592099257315523724855722694523393326021241694655541403711372385253810078736591628256854098387420743165435958380379546242795426665088722854963021005074239974996987118164527732360633614544584285732187864843123696796908860363857296479525401126459408714876597705395343673196959390579316256849243206863313014224025808723774636236745881134734833733811617039602931904416296816501469035604835917455468151546030138920066751007435740253204866008056693571406563883259238899327406090993340692292101178175320490688664631171075352274407292704964540257110144272443982702773545729345181199353916671529817601686391498956140099132129957311560056477877386138160179574011842512657697348735899271012892460849722958396223131993882167831289377409513377023039250791649950702847422930172128776900198949057657359205328213388405988301676015134525213251620612988708013363874482263067610013843899266009600482848012717497268528947405029202891263449512289962677386347713976959949728454103108396383789958937895197861211442084361601244265331483884483591577663354899700928523337536993639533934152087881679574048637856993442187274845831036284808026672756421336354244235215414086785186604499868966353083911034756715340711423387992386744656140175274635177766652988685444227135574950187316200945856483342566093387632265859408498194704101034449229514598105076354735725868213691410850186437305619317275891443229489611993292327832785815964394766267461218329109795430676617326102897257933067096498859811814577334683961467624043371618319951429058234886483300027886457908519684566494786780726122342283005822513850571877998910724204841491021310636106881344993234452509108576405753400905062659042025699613740516499006992497199580058517103814029949775700464041033254034436381744598460660058530378425807236902224060974509078716307704922279494386944790996866088752817424967610241438694833833961487366956453135387450319964239242426801130817872400200428807409862883795578076365553377558665529645003297385014953639498922759873176110250865931607681740211056261878594007946771819436598160324781152425172768747247069810776839671642834308575210150322362541472999530283959049626429186366287263049256028500865080545228152630972098688015229923706107680055799086838442296243975672654460386597185828509962928949901284435738800101286210847744057622588069931222363977986379246820821590294428830222053428578441723479311172072474631325536545906460589638482505403186031629467970700579922003237708439752130309309990074312396027198653799124102180272949054197861743964325971815363022518966430781455216946125447164341258205663127895941900951292642558925375582923674734115997330309203643712958037437018208556286921570670187794046726368496088595660595604513566157251391372249845559018170838418397573712033315835952068384522899915059692199236742578601149500925612581258859291789362360951711926785857044658032176307054631318361724910845605471478737673873877272634666057178536598404381870914777948037432041712071987568282064688656160944641865881812719076598147157881648683455265211681998596956749623395919432719949672068919143325518940688924024979809145389694831131371225864610101181241264118848946943216183247656133503382045608757904719942936089418248241659374232878261515917050820802915450704093567316583242179914011234493232637451849795870788495328348540079572942593442532157606684779270045153402464869672658165895564527779284317267623067787057097735059519411178489916522230540588997470822117725240359430592966584910953658247902260730346925579049147402829560176038489805280970733461586112164659241216238551331667876782261166217337002573096595552107243252016363739937642929627608240322996443184164243420692099692698399504545676230799096228172968077841140656731775794918489160576038661702584170412038970541056961453347196606260502379724786122257959726403144324434396091854750316345952496453885033054966501472233111294333832727963511001208965583596926565350269663228938134390805684627653292750999769168925585890561964097049926766624417402648184449616757622999527524229814923337148110142309267846202095885268886432085744550309639291831887402862421833027956198095313775481099612289930536737304056610602221614693713808041964567226385439550090105711303354109691299787037117306330804614690337004993407248348165580788402502669035788663287879506167360926188119247377887624084607161786565718217733193257445723096613333983600233877148040685868540099832179952899030655464498440921197239241108584059199337152105087787727514398011071282130590995767401781694382077830108931468363768964401831019764100619237860873559517962444148816260870239577897908115360845479996492713097628695755556981320572881889232549559229909850689191598975698169870149831312362097820717696710314095370287471685711742789669054261534595964681966819163800317463939039249393772278994996364905302046837699454905271223326405462233892708897984081625689191251306551166496082740276850299212305664595729174302084773631424903000642322764186302943147849138318465485563079211579266087432391439291298353506143168490267360906939934446424912230126984461714475338671611297456667212600088707838057043340322276029879179107737189068877888548912927274274149062218930503055222629389206339443493177227024934366431664641597848344937441773508683155044544425964668227582192257149184348778356864720154718187756688190326820615204265802293714114921796852470082095545828986757905673174627495989124327350422639700753205356385387948397966176070935845915611558940869182010662887464242941656735439509076855671444534469546000820574706504113452159124319929315524567314475481370379627234906110243936551124951714677355670300967470238706366358419940505585638813953909206651682748322169743131688682927333162074986912325796038463363927214508846049617419821637288828251232708226113059227116748168344340352473571776659311919059924207628197408558822449063228493826783883657972118073761466762488911326505084798314198955252122607349550358508533457248322999454073601533759206839078961173034663657908458688812148654131705147162793863794855876075976704218083599234407877061392161337640553162608768359647026726597250223232602626048379049159236302209867839210143118982735158292937112399992526818078207560403306106863469265564315745670756847223701888570036463973856239851063063184165563590389633317516528971165371590432678698618666896458778777738008382731411086859410138585133230490041541685935033619486270695054812110772399982792371152919500635296967505195715332830942623965304355102244603005768739641371834474364154510677251118062949875535180658591978201716559527504621252642315819709182016763902694553099101485507272173032941094169518189407105015085232258397015068430388603144197607187711231366219984115658573595431555023751674124142382240148614313953594788005805291052567837841870303862435217574737200132771553121825845083288535498016855659539361659514997413387030260133649954085544167314562779444683914288407944523089806540378500708471914479404111636890977560512305981168970414850065750935821592920720598749830735657606659185723955150823620154277044225048567886528484049075015097977309411063424898684590956413268811206231055590078956675582259417645670228617243669476246799388221610446304241487467000316903343312282689680377738591168305934842238788606378947130000773341348727426008438217662904834351234670057342995580265732107126327402072499803886647236554988635158578097055263635438618462296147021320837960588849095493634651846262428253741113936844109889989904235623124599031507775440336169162080009684684261698256855587946432551057821006947408711764850788297737983443523933152412086752889616629725729253496552576399748583976280316482243462925970559159707902516177898803920737809615592455119901599826117859056546314923096478534261321790000789947433087129379183353854853846469505712691731226353239819918375194165766232313205668239827997693712992420937622446513589007829207040445900641489850887764174943931917579827073660417013410075856351509331004074811562041807096435842631348009984756711507033577939106258328355955713754363796822356400024923757589650858570732231912305925293840550060375853349034665659130258921468875616507856262535834584395438954826408038991607766189431353023178571755232354008016189006945438291514843704380419673049334278083471167812830832855750132648683483164411310003170776385425373252166925950539462132525820396139154234937425374767226073539209523649541170856575459635279956003538586219538260343627556824755188986634773034751854440343701649449100307355751629648185975954113278095322320124174674887318459860121582270989110970404099343873600867455574030622065176417637221799002189009945506594879750960055694706816841791124887149926437264740630447952261909505573834906855625125219971387234108171242998397963193366637404529533082053745630648892797818656192481677204693108807647254867223401782791182687784468463183545229396066800689805382590824122502021012724734471689340652763786533737276931112790421564167399861837508340380461466595379673068696650514102734354218192556517294753586030069329524249645748373575017762538849840825277580536879254703202110471395822429916600396484043341964135726244654805686292558974946636808675315853581613979425429167193695266230722789227677202371616736000631267178670643219830242188765623443144517892619307234013351663683146822986639816207895426370198258431803648590361304978644674470931441168169277486359561298045223464398865065234563280646163925183869150262535773122613117402223054760898116971344745413940646633727686181717192731734577958241141505080146146179853125313240249900773434110562504784433628317413528150930286544090345472560021772551963049507541069087129734705473234415684305100265991154384359284844018750911232938738110129183477854277826296737282464111346514846108230407732884268476050836686791771361580588718299391586475634167811480671828350127172483311480597332046664412736545118423685742019805371283547866090014613223510986211637123395860716498134419742932853672395899901589633814642143785749414899185225450035870638144505778031151609757012240090094905821178617764054148506433724704015769351414355447315140163841487833425914375433781683466816535001807040822915962318895221657871684921960424475081331921682026212343582035942909927291569551206146153328422757054113457354614824433361722863545907036612038847688355238543578265386752498330029207325314389914046112752276218391478595050372065598550761017268268290546157018557456844644577497712448305859462779568050843055874878352109435399823952776160696704150391163766025824291691543396448722738546456565699843588713172140671063884355557528660705448985812904616015128981948985539455166203894726757445715554091777043594017102295987544765442418939493850075307246106590482427292773819084905975897346801928866996553240436609414056034862596624970509513875063550327089954057388718957354020969708375033329320426710802447628588550680078423832514879846466124527888374931668020632214177448418195042856435617759767672859729001924084040126106636013959261554949775546439565015675671891132022378380980290568614335835421778927736092118169316645874855876426254066014443627086861032355561535517386502497192212351340844817675061269182480272711731946629117516276420565147924308568671393831607544459083691261460339062858030063527141634396721040394845839182365919417270803738163117767243796617813987725244908168455575295342953766840891637653125484633392254993817411893833534817555648171740949657267876302943444287686282211632877902167767575296022214863332257297186995591996867151282269507858702270550947197783201749820806338472523701536817473016009471477290756917138740280238555277549286986454824135710215092667677722726838161401698733838628290900122520032474996252343955903306169503769523348832600904603498558972568889037033584853038133931987288699882347359755241352969240317256965181938283193879508979230377885060900698222475409652293942865157298829455278568239795799719644867324928072415729513178669861701198736976873470156833247773231324774306114269304505155392507472371458207031325985019214445525019946402238971987797095387757488105636510272506894369881009337542880353056715048886887813692774491797996340322467463600638235673295212948639702897128848533242733868739345322515918734211131485326486091241198743965321439441349765009352704083054994209628584191650414303825334760951947201141808917694610716798936346837612666725643710088161417072844213894259835555773455828411504000031716363981469320740023996253135026157839339187375116639787109756934849096827245042257233634296695312344478925140577992556152745433836838071886527528302006503322421879076294678117787075068592023694173026182495325122844260822411962425738480883380755364053424897850649477387106533329077910394388360015257391942239566721884597792174241851339362169234761791896945764997199567158863168587500489782642725476458221850076729750783339401990967666194224858339215911638906242271515580597630725061162276606854424044776799953284339766540418034238739886156390211764725918597423218566110943137216213679279130417318561295497123897718755026264743690883836779418740542223574793619447078276621443405752744705638961268811436298477842723525330934342912257069346321778310547867851140032543456357386807377869311787613306191698956398418155344596344046531742994840058106765471961213006589260161868659082550548139050249927169370615516222181073728626647400904796211038320317354719081914026553981212357515333628976170175509001651159620294173094535193366773490017058969428642019989796601354159667575252172181739286524268092432830503437363136699191538507561843050027376615172871200676499899473571712017735719460859830689322007548008819770871338347435362729582891184653184285265849502183705784175135952613501094125507077945208915028423696386583726314725146051990170836422362780155443891774394096933505827379717483151710070920796474716112563023758735565843665706421152077528941738706054303623503773357256031352110943421992864777921529646335639264983430628754185882783991358363030069140816023853554111438211367264833476574790350578829222149429616351425494110924592003805871724150155974383922576870114192329470899899165071155581790186747600908689328171085525656117901017580032247206012127813834908836550655663444710307865033852849815336499616382161684605104007650802929583096775312963637138370234875644990839061216781402959882677027193857975439916354732414365716618324220148466996027983255332581304417588688425039279893432649711342149880336845004095794491034644102635913307832414443695186148428123007159544520790732123930191392760244023058989147659259376218246219945772876948053807955626927004480898993445139170026619542056518929974249528484831729640644893766934798669372170057427647724909473871112620559949075473176047949776400652213009302141749740152950176603937918136694161172598578569938068597366343723262653255752459834215585229069899454657057379682651173182434906307969220917856103484568784194051426625343220343948098448492135125694583248576202444040453182068332555179897057152738366416287002503895325131983123662718551305334865645358134392242495339723724474144483672867158737286328064172854288112708822760700084918870979847082594325472734417463276491871428494396156387740205577122741249708479124085300323564723577222745241817270410370367023955652864585650574399265252847979835702578498954128911457884361562652774095439528327137357923539078329031812694704214464080454702871794557390836094154468480003577135456502213788564842649111021920717028129849296734530482920591960599565331304715959022080099012083703471181203759050258553770840797363155720196689286788235756908992915198790419075826306412145402542717791124645369099622063262515928867263070177415519961636387018920886704293287044810920826774695604127993812145758513920139326631749096030936524751669453720313667587838700576575006431282860269826129227122958850821756109384034078428355548635424426876152418618001487490769916260861495807760175505474273179409546637234562301838597564919839681921292092709698011185404746457771851183670536997370281446814990535378747742364099969444598118475009832337867688860475071481812879455507513408095707548560176455439318662396609178470145525819832270748129839000907708129019587996268075761849399526225006143958530126435987364138946386647990779009586244234795187857454462664784857270496925660556094367236426888383597450093666072164637547862852424993140436247075624533036764675279765757647761232057930594341659722139752959361374741981258820477874930304000030295483981513458106160998909058190404351429810022779381253382674734315677135892383462676479723555275481255580022319623270242578560105952681564182020809834626441700616182716566996889068089458686097933975681058700153058018718424089433202439670202290712520141773122034857662189706563678420884806320572187030381740526081502443769661677813700172842001281987186306047576487737658900177934445240972358274018783095455794962199436886878549245701591166216669129324398422019848462620752723707702259279419264976727341658162094905031026699742023735838019459628012547889538685567847936759301066232760743445762449553397662229424013700132496992209102260525041046704797485189245989242346203081415443742608776704323768107947259373738016885295150875468137013911721218952530247335975883049142819289554350890463897535676186394814594638995179826643601915137344681242273711981207190077789564741564041597730362337564875519137585316699656784307436686528914678465966390713532895214574765864872981383772020810457592982627356740490017710901804600026730959260630562786281772039998442489761345873296494027488608679305213512592068674018641721172318630165500465099106691347497719772898650255613689982814329189285381851652186372932198052478387352293358302425969025472643578566230348336402380196895901363324502182855430498165559852367772880105022520410458122230365588742756398173171295348318897271959787731819609730675277127411369026656124601038240793344883202422987325415398443244566995120081284906156243957421165847605762488867273796318381914673270946215260827901876432277076601914536860388444205187245876116154762588248469425671687636083836562734951654536275268616569767810707109256691022948415755784060832425179873473315212274767480783148823520142046644689775576831062897344763493996055226362979851469041554944770654008176769928945970534469655440960151505614741461672136223422311877606612427799982024756907149045212326529835985965727284570506726812369288977629572744819657000534206784848090583305125087672298335779728703834858355142154700667587640733719385514249392241369106862237755899983753754462455081738525925753946895250712717185418785462766152548348908784872560822515597126498843863617261194997070167987562488153595725456862764480947006131500876111744929136838401095543162039552467537334197149817986222068247190840634797495713389689105546758787614063822137303600023961881028079249593781562756458448711937515697941102821914997267541607182334163510778086307430540768923281063573835183820206195300254477167578985775807906530730148091123263134364291782055532567028864615207803274715889260099329126580595046623559344468666596989433366200147386675619069076911065812681706819035071760845566776926338299614541945057887440996905519262013203886542892457150538739549724962491071470018298284350912528715974394692186019712078107001328604381357409812837045544880610655006627863529121003441667776403578605232030813253627360703933673705195881484363290568386544983402443547284150747996541389749884872709755461821065845560801971325468960701171120896502000983612602641548558828033281553920971345585560588833398254707641727228262995571248231168499403387732786859380528959220769849485430227223051081603799522769700080351773266565148762308501453699119909590653086861269382616156472483342716908999199112796536327606551671451594758037712449964953372278131864749489877345700143689763910858603688764139385330063205945245065045814977758697326035740331844916672806271833059121470841183214562373110649375938573022975699387862615524529167961085612272240770217846440605464293443145767629817196352520145569687197962391561951980203759212691449486383095830828256469240989020525961387686583239694638384763330820884728206067204713639988150782567041962556398679572217203035671441532831744437350364588617349466918705050573768125945634635689091609803590088178043259685367093394605031320153248549779150979510551854585027748100732963249338799657501362893762491856296081932478962286115961067096012365052336048295111445263502591195296335816823249174496879238178519487424953084144637968436486220641329797350997846739580567921109480326443125133386941407297576485652246945989328720902479221304898630895319400086115923738578525100659751642071108045027671211790374949504139912362793377366185355733783541419365878207120620728418438839591060848354279642764232935574765865156609916615677606785239649408946626651879875924425978264045848744172215636063054642302022939611313683613647460596616421118293339093199953341311407433213443917749242704432538569990012070283064731319696645256766424437634630003520508015752656059235819138764127232822051174938533939785058927814126655770873106401612561620505603307062914375695059898456450380652266437363281812233703852379528911793410668229373959279531911968953954924325635586554731863993740303062588920943513587941561695873483790064265826152189617878844841832654359611648915263499917699037812838433278540274849204222087897983285929752863776266580467291079463491431628775829365295592182270787090052582505204556870570208667120925499787091394090703535377854796717971477040268442255638784031936928679599600100164924760486698925991904349986492449578924708172997496488445415733258602263381352138957887898962484833351716550793030868832119588084009941841795562254015596667296016700404868057505173138875169263015896549750032851916111198631948606796605560105971870565502150903973476054096502314513899973833864652578554276288647647389088582694168558524566676630951765806789984298270395387578833220804285223810240826669052934379278779632965559968868998468818657489997400863600237555563867882642905617101997271812281280787030571578643305668880444626823301435403630270912471927226745005435513386074301877349837170996009417283038362510539387439197016265307808776685362282667277240738816647691747682393437825472923702398416006075171339125195842073634053569893661463933957970660713679421049890838040249603896199362982838506975953002901585844062007663725560377084527176786603489517764518716229421446124231997895003360753332164819192871537653522094080053381460563421500954701162489520045396809728424623009451408268577822034911589978937677962684516379508669521059443818378740939043315662166759962978242201524449176316000529376851734091728516154240916858981379228494792486022710454742538516302318603432301671775259378269129647192982398271336795154700678551944416572963993386234241725221870997230109370171966574419754826402638283568660592821305959065684704705803331394910349388920391621022324291116069732377407940174602413373773561209734973329905141957681961219698520260389784370196654225336491191393055349497007404206905073707544871067938701125554118106091863384671847568197715293765866142339871695490153250526656745199927927676028677493989504848023985703093855926224624117909767902819135140377195841589013658092367934412181185989861371108380904327658726173927081537064097743857200526528661921676206388034742173483670803759573023461568072815370571901618457582209670710928871873178062346660046935023061503708771210084857316022476391177020524742923451891754050497174046371373495576647108903546278429855607085002284002768046426582192503711461431355884593487892094710572011309214811904088597845480616489449748212102505598601317915498005407827061626017489989956124491985823551364629778653965491782977869753890924338310577460824907616826452122697741460951648244954974545268765201067021073595037071526281084091381141622452618616939225041057674593004300470920545489643562048991415338400771528453681715116543440490183045170610164702282642353751393700608382397004139556069659613619736445976989724595629907326624385374372288107883131663243658813565254076665053478312617381897424090116545074427770085849245240652341117912136771285408180960819324719462470985606000372188327239243071259139452142555559761971268829702066981104879575108284238139018030114346574249844809546775212796465899871360854987895271140509446993760395499017503075008640389794474655802084450461986184184131003912815807360421261803407346316949542249631270305228390105466049995807186171124232651232049216988530446118259830589753077401104694175423926437101611386128568765614601649453337935119175210593776686114817679617704738588795375498685568133686083220971812686787434844587531329998388361916943151492243380642948892412508166561045962516542995365395967031822257672796836966365413605428880788950722105160552838713907504390939033040118433749866380297160211434834663468075122412930844540016574964175797951482092403242019789501242432270900284817338812069911860682692214665794328315779558799377080607432679680559328724504749841074088273024205952103444854355199271024716102441313346129720863855647775289356320794914299240932781348802934615742343114146844732710071067123687382981226542236387586894446656236033745737938914317946901721162323926569023397439342290885224184680263863776163733116253462033735665988353733780935714578623744029222957412858671730343037156937114232407211767286370676772013748125735294798199737443607507929785433211431953433410973876609420083967057402259922892954348449214216397975466365346752607391239665424721173543956950394937101236389332206325130420456584249565009857116874592978412884755151884230634440591076813058824504669062031270895792433313962093664883837284952688436155701445393868286559474897795500513857873427307101056877300480625394989401788151552547420959205501940265127141837946076921180429543417275582992584452046245376396670378981466866060935025704233135078317153103274477196408821421181934665884480762212618759266261645279375118682191605960691718140388998822716319864706038826221183122837515965514176250822926246283296639001578963839351791299541556090776069743844738096845259798998960220046189557434935154734390052389156706566803873388404678146923492512641537092209479960853862627829702661857002842227250133811053045849597889681055988580352260401652340539873778002621619886252273218065246178984066075931027655193266467621758918665793166504062104328509460413828039742946475968279681355577720772611486166238523888684678165491770755674967198709306083286280752614063753716223963793439038122073856326559633073009264190279248974372700387298669101242294602884459980049061040003564879567705405301068176258056157786702264517195725598706046529990330077786266406671367016616377807628118665907868339009582216326412315183631788958936651401918596021512360092017924550214360938218184747893785656058695548647564965542670905645048439974791720542910046089349005395303695031437594489174257143240351078991097201513704027858362833750201239170111808192305502365247086536798755880993487849302012935423937686127249135831760717124463753944964427933677130532634595484632685785322960464247781985306744138579787626046085522418245380642748548627723610728411461701994258003186552040549507460612667964049706458967584705508263819950535201034090055097766459069527507147319467472575364472359237841683805784804119829399795617069331428258600702964425170905961472336795708368281164178036472289643529142912816200798201491173955650680755197958433719965642899045096631429149271967999192223396191227520126897593241971038408967156871957303759607011533073969878357782226258588405902262260024859494564046358838930481719890940363567516067199859712250402795103574264156630848069441499544796513771252242269940983660824410860319480817431117302925814288782114471770961186631861707513446774229099547176361869048920004353521507408706410165873782523685435512518313566163625272250498045193737250171755693956242706005363523864122076090836749216992606436897947293265804842062156949095824117667394342104369054820974043058921709270524724248929424116417714586370745233953737097803216864627885532006320692542000169563180063102627338776617818559386806127947118176765183646763220814747198115752544806776014122781296739229539855859754059747021305165961478066081619069639609862174476132204242978215097636884808756244543976914971549188127609635847846451870238024204179966683497359159102967773337055783699919007111002993476438738960954313324697091501129034031840497628101405613338755241015313990661546356230187454095127611334493237380864674138663350707278636373682263228974806814104673321778744335896787161796645517917905236828812473000171572719066775360764843507923112277132563096579956632951048419149181768350941192164236504410451316616691034231291159192098311775184963478759665586769679643745564578046200571207425336434425074859148059722900254419366423398754555616771422772557207495765108294857621380570973890299942715786369316734375477963813445518289983731027484550732945295537473140102166242871704491390744919413722241492657604891077385898381528907647543479673443640525225022380175766383622265220102370165639125488644660995737221652681151426756356802012822191196568025277391534414383396179983017024876188588915782003429690509457930724070414773979003746963477832980439395134862007816509454618000911889276150762308891004967244754280762571205666356055149026059239242512741959392308617541772239774507581327226403883619993288489561843303117813191985457620956751878296104737688557092025073347496099619115188106405153732181980531557851666717510980828542864962209086987912195317001752315209833743656087676971036840514218241461747131927551431455338705758351978063670955175030294423379237986935167478676702383503023385869832435497815481379788122825894858023145295349521034083930922089393181679247803805001544051494823292347230546018950826848543394912972210727771480255842940250006213328093797777022674096565300560266907755896502608611623385926193740576409877478418038008150785061691085209073382250819069447762991846618821934698670420794214045299336809174700706846312348918892936962901647771069087379357711489299324167260905055901102282385298398302757613793670981683233259353575394665073820690529133969673833723280445350540112691744986653488047512831367104547612836541864090008310304955513674446120221839164470881175505135470135157073816286113842324278639418250476773893569375817097176869178173436576941980804786048301491704354633254558068390248538284017472593338576866258777685877610089293284855247913585612703006691825628240371865942514026864056452601892847746176482878712114762917029560183177524348551620410905312357132176697721211454750493099707214401149320420971899094344844549219851106484356405218776152897562954056041650542015522569507932038611580120145193934426291258108866410047423095132768298157065295314812245768862925134145195509171949338009303228550739177681281984914459571000266831052117053101876557074079140452082200940368859859960677096802571553102617048339528912896425664301621562255001616529615156578016264878329393034459066228054808697258851182058114501447958239880037713414284840060090980380574010299613146348382772645767863457604061505478138843271337474499413707976681159971713292753281711823174264864209902499418815757891820747261865788420498462761303492462809870235520442656073548892226090949372915230210228585223745300318519141093283016170513480488884067645899863275751397028949539519289675706238157436884711412543566562602496063700859366210351142598198253966760799874266584762625594972624493980328206683678333555554835465026420419818458760690236381718797540798610607385766055579187362842779228604978301296035947249599679396384787860726907177835230367360478238354842866095960195070079877108608760907629596707479014881325290155138176376547226465160862169526509592750685132577260952407130481665713063647425111506180177686862730485976966457630158544428388593809538777428319686404597487503791441888235626385584565570276663526048711883528145570694572657519071453581599172388805169948297473712829246108911914294158275280507865290251932523250761600618221505157837228131353154474450691880035227916781234798365303012589408886506532600420757378088967614554392347816050723848559799703203130900986479350034402093162239943567640524487651293461632927026371170536449074567779658460204092944348884502293014935938067966687322753492307208031116762634290452716323987517130006744909777760742315338035793088508926511703951978905927037808108179468808891566366839131295963733091069227615344506945265826322775220843931422027968665212098493948463180680346101392940427970405630893012734751081763661702571378037513825752261855949985785586739159937129277916216151012905268594067630908999925819151405563776805510929645700662031148445868395949709035220735376767780021879179604167945233532376321216060264288659909460246014897074432947901274945227306087006939191420413425819252548008402178001908826712152807370215113101788780384555584754662186736947625459754584469207662997211657795783112167896612609749322180536199799151387555418995907894039329447117989865380787074913681188758023759518234078422502335814791418059944244595532155007603235063081357069592072575215870777206424620204642787989393799288738494065471596569834911415592352975976419856706151972865300402236761594525228555030779633641368063719235080417518764426092264061308246054176008260186432039653202761199123197230450365028210594958383639892126920716669512614726075119448462067365383927477458450010483080082748226263725145394405510176708267236720741728559044012447806641461243287400395305094118657809918037143048284479722117528744198169968051220591267762084238364130104157913408334534466804391960724659575468970683237766617056406048853542008651990534771712591587069711022491808726611889989136300365714816178918710628813268732158696553325271193139588665961454134924796219295069621489288298241387893615570755631027430559093614917646461020980526245898160582492370632317597662861732816301518724762205593926532901838813935756301819341026449670237490797895692933324357072504506238806609436614747685418678732155967497589263720945061497207739298656790411125901833905983355767793131827480004267331833187266093867811549320866500415137350181304050362020755610207508762524855703009946561216623365565886461828125004021842883169469465570831701569947056687045725755099779313188771324453138922957776467787142422065039580401945352087702072647458938790490528890347250576462435716780254926579345806866065718938272808886737649251989486671530826696647767048862472712127635594588567906359457484848210762464214502696795143552957856012702458428752663826884717849206125269646238595974939212545835129402353336133924488018005479310912884515950514233908487237358887460378222374457594271301434882904514100803450168706666179088904872430800319509740551793108414756667502959300074033806145279376099690378488491600553165197668234584454783114993971763770341401205019188409398431052227584674040475271584584538164373064353147257147381315206617948979453148733500180804129406530956090580055336421793391781860080501572543217381255821712769791498146298002111191022916483326533563502531837290565244532470795915752091582908038912690830353931414818763477427736651047003246481857548482926253074190103102592809188347162980989214788629640090052941898501519841342492213113921601338671187255920444178594143275996096967906765209879712109051737434765229634733601531553940228930226278055896545450809700952214399831029166857510386566731600292426225167546265726829345899807292570933268076085726961798016324968747077436402653750450120396996235450145389562943178015512856574744072455026391160243868967757712945190368074784828010382642104740233434637728293407779790676982598594456336576213442108688627664164957012889050873593224746153932405046111746659603007565627149640981010539532955035876126333952791742962378945369495042359962344886620588062350691523704174075467303606807078024756507032130335438363458072434674048167041381190644720677226845111769130337102869382448162744999239718483341027073573972758293976982677529891797560746207103827632868012406988552881593006747506722639403366142378810431085131743748016800017436779619289377149748939559792627818882929018412817831749705590510098831774599410900567252461409573536620258090474222792394663233971990480405620530778638440902501607596773571790628314541163860305162646639188126128571976376410031748888971228387806711337763632233722551156142864701323870975595978518843848650964822849595552003165168596506603771550927606221706038124524869239815193352422976704109818426079978249602009350120985491865779080718809455116290612559008376690823774550117572153033644207539804601953704813528510477995656060208467303890099973656556461453629196771266506757954464071982241246059025757255100923962882248060102547161869693904356235199909285293790289813865642804384899997506600555995888093122121950715343310569915813481869858386101428473858976876656675184877629796585115526768027945178315373140382760792296748712968261844816326991645923199263132907281746233734837016710033237237005324508312679438732619425039955525851403195912397022238047674340938453846779904033334762516249749430105256982243923006009939459955626390452956799936342401189085060787076885922260909344835446631268747232469599428485237692575325054242518207592789313824777643401150232247110704777866007579897178260115658772980353233002028692002061615726542905677346608545605292940346787471068625837494491386612581061489560521389195772516468216210933845986366744507840043132880352638331913963377069662821149732239231261883309521533050760692902104819825297255782470772013597847585947048283176251607382772833271502701424362567227967024900078616192753683790279603172309345727169636315421817717729868086493567216342550154230698371154821581891564133037428354042866238329105550361196658373235792370693694436234557461913314709271910495833808003703782319153433815528217400548513539149162251760137804341016283463199098153215344550055502755205842801311669489054784427510022890859323320721488711790770337126499377119917688162557388644893174400071528165129135714829760112020291049301442895990184396566077352512035498808872612107060368776602494629703416360350917280158188948659764638982852703410943921065862263576244704183468289975465470632413055074295273951695809379204696943318253132904345954988238224365607601594106746256538595932982756130395802923816558103388028594152506387713039641319074890433039127946539598052251757609461494630052203396307851247231050061468046386336489202305207198076132175231523146566881798164393155114517527946139857686111800258202261959542966723971849751156321999655124105586822339885013442295296115996519771123384150335593809535778506211512344878304290595106989055888472666342405507349606642331811141149601118710870900467657075412435236293235923012976213843181755853609454596464563301711747657621763569890112370043626584610949216324250820012513632338776366801130144760070475159214230282363663833817751520969578312634238756920644966936619171261922380127592200959125954287106199450902696927362934761129084923798755191658719176282188529010498537590102834503781580939647859596597573416447213648044104944028785678937201360926323533070053491934549558630717693019140854748306204429501830165224758828554776032277795428770217255555413540201328516163585554787170573422949904711744926483379350791865449449210135469311997483493258043720545357198201957356545314682552225462969543116364022112366948695876204250577182953545580016601432268257464993063042964173871709198530135318616836552741296963453365896233723232192500734777900770113176425629513946839544877452778956843491681687665174857714939136456067327756877531020275986313838693107347036780138265683756608461378618915653596808812554552518122097608348682340458994665024547419719956438718437357049185397485026070915033398710086309853497339575824586619258551452847365144159415268739181526608029733904786680427939087904001196726951356431629102970664635994640744073564362129913417187720856495769954964738176077070660894483451301423923964823430082383053308450627761607840327353196830342724666210517470942245319713949912230333341713257335645619210738836145375776822225379316792497330344480298300969490663040531899628832535856432005361986179360362781108370103763003665898532924587092834643107005190087367411271235764519642138031594914602697337356804107971318234387340293032292486557874429829456301002877275883852771007505196988918880554189485088775329925820735953862818315085794072666174782910817664620140378004662569296317390353224133998467083848567170929345256270558071985329599830849495583594066454311252397524813361542229366391359818237912822190513608955384456516153743061099614297799642247936716830661343715025841285901508220879924300755110104888818753402320022951966604424050010891830611918277976653563153931091281495358193813000841765010113129519754302700647964666514253157061075780049285314823138473733095142000559915041352918640015685745065713933480986152439385695078139576058722997051715601239328489906967730535198439040622267634655899745466382307713964750942330607102680680047693372546229236592914425769311325532658912770228337419521972123467141952516198839242231848546105168016865170081906842062103800673091531866513570919422165581362410693373275479155370474208105596627506728957300307103118433365108469517588151138777128543264982426279538953587470815604619732941000371238443164642621096514725527370775196179697580322539961245154492836118506835903794645632106486426241949901127962245420543992679293172106355007665864968556284377085866349874880407479123344820562834499034905247177442678434233344918681720231405547656662627867322757497492912418433907984696110580846669826903229560340160313897309065602963637593167895395718815774497381830704720511759384669661564256373041446178948022355154823387257388919609874967753134658171678357139006326036223183091018290068684310818633741478326153581794802848389513774570981091547328498486779320939201752892989854100425807534235737355502540237683401929741578417628975266624423470354353490420673449843331607691896620300279480252783727143197383225161643502545806808066284164236631727032200352226117467013608639013200242260804884572822542814850047930335557538106728689045411223500593225769300671944350496113651839505896921503625821722509556898051025464612108848500255106103456185030973251608331813875499264647324701281749356595733047834854047918290534949780477387718547121976952309890731642960064482959102356830956623952311744691897438330955215413030493840715291598792643792188969391806858557471356977087138033233870006251592878725594299309527538022877119033000439005350445626059195801735075777393745945874421060104631480442010963648926901881174420627969452225944213079185357351630339968882981191950817004087372945714590453682602632393426163468793269262775374811129132264498527155070212586286252884280732183269119547100419553899573527934401667760013168279070101823337788503493624383424951244411107868796681043427322414465989014082953033446740562738347204315672113886630598347999172645825789384494746808518734154419891656256661941815597246660416046690192626356729159599004115175149534156793259202704452372853943054980026177173925705097624315780527006101498936836318017498860298486105840070352804847252683893837785229056058367358818327099460620881377327749846099385510074132350291984645387625945854110687604085628306001245236802575060279204112628779950525363472516328886766850670719393286003321723537886591753320964538704950178816254650962153602473877055548102791987848035564737791338499834514316472337211275882942873047104493140665528232094520507402891017249046436003193080500024521678001953125174966794128592224526440089778703597387948676542955920489067184213088332780275370632525663060645921466825089777466336550112537443252376474994248015904760820234627372911031423718899143978087302804267324945080246600987578273078308990095927600489774287641496547991692131912766454418208326015030337035135614695826812681862771414607591352998759065159175084920569943589941969238627391835138202578673007542666211193338323253649776825636214402943692729163719703727016133101011369401620652188284870659301329708082733495408252933811200059395227990443900297717146211982697919765617472601192628065964959099264256151438541778431184132382161450837912865374597810851663637884152993222694053200019083993509834879639805380810668612141464768514766317461723775349440004743408918916120386690220748452361102100032218592540247085970837658960579010316446316388423831641263297719561827877469912657440097500062595662336881808046428593496564816841294853546674349186299386692148725952972187909597745982894874156728162597760561251041996883636450354387280622669836280676971470606621394709911884188756815821016013776152537511675590725704233924447409075270406862324934794242693345597677132283648724223350174575993764901580898452467258294075182600672084448478678175020836202821456768725160936462495303442156779072499222896055145860756582528162554379555848559831606780999028013734509554533756141251871011721417530203358086152293892586865167528467915341503246704316822474874117785659865871695817234475443433094013837298666214843359726915518885075110252701504938280688386239949520610260716058267816439326090186508517681178164631453154738845129016422590755297189439828821697547132615239996116519015238872875639653022330812080473258272371984452477639379877330594478923531034522404976888189187453926228138339399966467751668157346657685959388745229359249699002517437523467836005828562952908576817528969692141667014599547414953811258444447451795028887453764410582237543697175955198663055395613049069247101294330571015970746944350999913631540202434771828526506964055367749417555806253892275896190913131426517336546906206099210034120808378348302562147076402400143160636393451587925103709660892428477117645432591612074266015133066422150981450076768902431512533020468279829197396229939763576665490398055012784647523995832218832546421782240767796385533547035520890186633237318945409739773664358051553887774435613894626550940575857432110166126153469555224634403875747285703686396738867804459189561050117991822239938679088539225037528041232390037911517644556066395708012729325611720193903197674516416226601547204676617804138188127221023887125464905521015369182972630578983035579443791812265659423475601990109798250681645142829659820985012560314487400599529606420085371305754991853488575864231716625689417103589555594874980111140011820846435291870948031189556038785894855535074933805524642981637913043155409476768716532243227139068290329889577170750155608861465538306677358868510564313993152409442228434346551796615803145769635834890606663804472653772862807183606049098981037270595306418216697636373462439641076224898636528848726821592377594938090811177373608395367156920458919748647519127910999637747482346387265036602082193938720705071831445876502499354341005012731700027806051082386007416079288725704941741571003724935222334303602922564954892827535336580953354051575750858562480953898639143811992325553059273539320815754304948902494302145002944505556430051193428166223274853813431450806862402270128907582508560373539106420162134906090166212894093902317037471802511832016504804125990139704573487845312298654026075970081710879155988948104007010021482763819767806757199376327370233559922733284998525901518721793539590914851026439132466142296770358381654972135009366912754073773457942496427402329935918530910477690435396787910173003399963480640530381758426311263128223000567940989032916278085287253945232916913280301299366749490177147902209322697733678449188894879195930096304549900179934713074593648937875952569431605391542492385751332404269357584705052428801179859830474753539923765886576504915436098531559839845711907959351998620883558299806096473119645542773540827440651195840594574561197286692011388160407140560295796463351104781474345915477703713380297308315061560331339229571244783553763466348655811033360934700283573884101287609665915224042026213012108749463355931753442795508250929534992181327190086706362266879821365765132932393750487243075909584634491410086404723592353092855269386274031893563304903013283300267503475666404304823218748383034449803049154361789975846222272290430704865160108597143064926791732395126977978500070712776736918701905055990390534967210708581354113006049588236687586261871768972047420584913168492702831712945602946727846066090029819750056571220454047320853609775888904526852028087605662452089404313053750448795184360592613105213423336456163909991741806834710118321698238963338815680857273179917251909386769779827522599017756211047927824774010636996807759084105523555631647644072646766862566235070109200549355340385083821869613051995719452685699768130706771599993265950898350650411500100768735839340799067700257388743270087120792366360881975810727897933924779234639022386730273589041672342797106879345873399181616841465636422964717547879225647013378188471907522971145573338664459864347375181343449001783236260099819730097254326862294713381308197333686474602086879765347736305479803090410594466582221959974213603229384976206284161753375393264690749727775841992767252187408406794965744975643670119900456485536836043480898725021904418494333492906168888315912185309036125095148428915598089051395073317097126084362663870326684436336496788165608499281839418312386726283435014786912460582418699851247196474816141834339494387175490247831442095964724743828957531998944357193106834720353053856846058271413980487658842188992032303932504237723866307250542124157087852518642556083179322195286704670713459326395805010208222132856868520314538101421527401954167535383788017594827443497781498808913349701945090013066568213554463932322133865784780483134676638076961715942249866670968899486550672652089675913872587329026355181061273373393151899696627419706157618696453866503085108458763686395318057083912115242336148090830326185338862792172856360841173167833419567475542211206498911148003182658807292806474242240724393979178142929051409261279729785466095993572666765086556227535982409156018602268863701563220472928132063684745116415752911087482725047329696837689364667839229940728447103655263631993381615559718831994977203122796045774614451731648709740296100088247528431208155527299836939483690805861108755074323462460667478444176646217593674016599586576784630929380985821567213995873153746848549312009239899050903289629249758917671177761755535486296212716953904305095128835799366107650867418686634695438311392300363194216410099882207404636946815634857999737300964001446969149402655832888040454101997930047444109524091276095371819703019273432543011305913175017381712384631500795737635522169296918590009664092684796679175083653671896759184608909134334053102696807069091666642931587412007017248604316496524963181300592157089567037670635092122646241646104470868760508098744689846608527929581079442312299492749548493132180093352835762815208075423421801301743280972341576542923868530840809207779144298612418649932767763782421940798340778098212634497280419162563302205278318205934120236068697257650033885607563646115642013336256843147415340704586547283380652532446042285505497496527840343514770381027287468889143847555444428756493571231144547095078802015660639008404109540120391466998214926713582279590720716186187889434756946358898873760421012600894353539755987625706828851494042844384697530822589685332272429845536011987342015675255605731509608412072426889025414361703003273367075897428022049803983192162303031535762025726158927612135195822623320644785525955016447459775006581993680216811149286799600983214909213858948062959540622663790001063119583480449852672390641003822411258959579025824460326907367669429810213502181859809836742706416654254781833189398226968446489170751549378288978498172541745418034112268735209248010966787469708783694974329217342506626691725299330922440930365937843583217382765657615896951864276063214639824070361112935747564950320481262812651741941597145456854870838737267827440436201385937300373596729437141235134834955598296433869649091022846641615466010307523225371286509580573151813481328602942549812189851874791291666458960092464273343440780704343227409309137177515560611016092955898338214423487405854000619768926499758972913966081070265143653987016917948309169254529746678785677422745568339049063490342141673990986143424657440806972644464923976689586243354209587547356927452918920423171908757480002977292480972067641594315045117275727937804953445454579091782524263607143175799486458088454245018220363012746473022279957203243719873917404075003859114912164228633437606438361833291650660636048544908223469966249165134091349700214874264152592822789005236552785687586718542747755183553639059095995838506411545224083833772295426442142948498967058135903488374234970736920422319715143624534913596332380946604438212997134958091716149747119478419713955453021254522827415841282976891852871324870336526180355628326839674193733543830727542081482838701895157726055840331805006217844403019578574932514792371915190503030530726569488143273457075153707615066412781838774649695351674000127618783443881725745294593960032843580707668042554074820355130214095967116449244988878308706585790823178605866746166955700923749905212248731700915307919179688874892488550863079450858291542792950931568054911920181131716189124520361362778466470513382338912985250966572282936367456250931282161989134456671505069810241981102806420183539504384226025494918631614055269093244071852430853216354836840106784673189805740508709927664391824249623037491866399454965961509203375818119986444455186715747257819292495992550086562771338963198395471111167344895040514016835853523821555238845443866800906063746612437027266186738265560544918896057314303668489703634366324324073381296283315025786833678090719216849291257388895738594582697972750594554983135053812343476965084358505235625966560396906037780138070350505857121184793999514344500489248078297510892007539915381527886671496163328068506617877393179184355705106174562468465296939928793043714664637728735452208463798251767110383160491439060441610400235839279369505706056646960673958043759313621098992394836343520277929931086156983129082550301974223505857406480588051029538649159467837403008265859939337132357122839023340132366124448308177102620239313591599150348437133172783251107226050165203933442587356586046585925476580934883774456738343385668883144185371262826092496358817722122689156052261695583109339743768827086063996325242043336805415881580378438804555613494734953586759563613074416367891177609407826276943199662629764573088605694012611068198450726461574707466516902356593777580804296325676630979707621126396244078815939808791024338186944099748986596446037338733874106212258471520142755631366532286370628606394668441269535592859251770558831321126766268955433761796356402658100331296248810470298657524773307764289814658435323170938464843109894066108274021073902399465237265749467646579922358689629735064466445061932595796940054052514599055431874545188200106774231718062588083880499540480544565417395762496565713575523028092246956613396627022953410890020409709146212410751456212570855025919606058527892785078876892202700931939102817814930705258625300938959715242769407195853997120377551247297205697392356315000834260369262840669348213144594800389550342666723291978834666299377213732444213937483683430896630635641822788610181523278906335550148102508939976858080262203467326575689752888181038404828973963311035507896407707439176742182572235676310154445416112155661209869920057521107385538001267173863717606331264079316109678757602132158255292273183178813922073849469225818415505287660970012326128776189218774116933858946206171238222561023684028897982154601058109721175478240895643645642717135016237378783149918082819174471053144105773831924686134976469439252324579380128244229129169730400017699902124863464164968259048220573874823746199566992323889487937197191201100509006326495897764966739726783855322630895109094802689165442317446949280984539863188419610552196371582351415946670656876341489248916667104179626178132664264954348042779468405173666820413874225787001552896920812599766651696014088515695259441023996023497305709307770956045424050771921311636780664373967554983390893678569426183917140461242662554188913578929114360814880252523268988577381196577917620923344498180777790458292708424088265011220873864574091154832144179212820593042078669572306196695934937705848165265330364092039239081909154525574855675957217654106719557897358891386317715443793936984592740250496639910668047212620877080811443872856411792844218480088357474721756942612941820782454084529025920513086474758812461544632652317478623123795408197484794405609277903964316747681979362389888451901280487485080958249252865237112049570196283952702926701056982694696277075932000528150948309785673842405198602204481177005371271109557600270970727158640001532669336816448504433838655950629212427158183638595354627392067359057186255412692527544915408137737204965610589727633942962345501264190215111019852560626813075910090833781528048560670191537776319841649711475151932378263570975425901875805053164643897056483207912054019078794734025308128974516425875601121939048149392234693250865814641502482937190185911225617670305940340258204479377850066759614397181996267028691261376940524883315318192939144585983529632917375246271294151791688761733392985697427632752501293160272796378455617252448676869382433434615812717811905745472848128588304423575793037307612871185172617452202621469027553215111287037607229591982985428063829221234320125227837867141555289153698086504226645468434298034266674453181922487340416111463272490587329200167393106663020324665909335010403187673719032591432649943881670632615612739586286509638531765084188599116623958934800204710532904001315725625252042907997744071817584003446975265351522458442907192883555522069423986587486589072495934644626126434113533470094613265672161707552055217182152738948692648735752291246682221081358574161339423575205964478807204947503498559724114660152659808769760674933053208550968246094272175442384395259203950179342015936708543761942504764747795482192079274252648413223777264161700571818524589571125995455813736213206262867397858434308766104822127756377884286158752605659451989496819012673380669811408249893412891143332165116534090871813600782352363398023046762314746666854091964828538775592214735965220116632926423679905616864384209718135122989912115928568639469163810676562390893998617503635502425266327809323321534788845037269645265359138510265446722082267859996230261671156415197004061912261895202574115824589042537716589716891593139826018017631281849229460277040734025874075466542309862150925187062773475069839004995189836543828105218345311101225547920346623561448040751148547656936202897245061123483974955669555711222719124822575350365316873903215563243051391695387827707070117682534559599264551310840431718250672466877304293694141983947674689150960130139308669315078798104342191233595971049873997439104157266368721379868829606883941841950110076529388579772379109277725760382911659454990599132947950043744913759660746904632105113762687226954230133158153006757106971319157045037258563280914813426026081299796529517238665307610161811306753636332251295497200905862012623742899545742083747203868442249843861779403713762608308008697238234653824081592831106508388468379781408695529817482923433702951956750431682645009930094107724745985069613712327507035980185050641876737784053297709758157990234516461337678352349844422112642441760109573275132027870732717114460113870920006288131603682373884438395371417883927331173029567210803039362691931435674354750171957755436921426214260072426384787771235705967598482818293358132359125519855346909608155283087709536988470152908931346067598365568995952842255990318560234045453953553961007638299241954059933842906915441236433830759234780842852047714300352726243060722677495155371477189024740063765612983619119203081822824759799895683270425024452321953905719143991508035563659499449114580216174525640529775849627154624098106315168638707736699601209524084733607221637255145856955278305632196084378364403607015474369967065507749754724468870891633303960870532919240114819654913146107027447015525751720367921744258620034797918432572986464665088515059891337802770277529379810210837300381846568694602011919290890461065909480067849552674505886417331071368135751752564298784074246739706020166883666229314166789178043299053377088083862027761490756412308244203639041436198372069025896348313544613027628776830439899302064066074106915592227700385368545571217923062036095219639854818747808455628432471318389380834958309299781429420455399242062563550811606701842344359480687409395810142445924806301934549048870089830460037801167519563402953938807431943079993496910085760387681053026859131833161499421627723145990202843744218755973970400313190781091644179757159274201352569982591139805223500441989723730697944634397494940111378019156775832059616853720610397907980093208910713318404060856087661796795850320286430873401598557190805327063310313475209732306191860139360761475105438809498398339381535087970383104398949251855319292913295824324222333332511218976450220179933470103423517817065743373458077377541427696029096098304219324586196570221414603976954060747635028997847004932310920422469246562896602308798243392599581658383233098065950974447803773662431908644434106123450221170416575735989117661794843401998294732943276348945612099820864556097959438893340026877098481469356915016321326347257528817395461507701664247636049452030868193784507801613633753578844726258828989259387211185715179013210507851921484667738092374042917172655267063500509545081638470549596924777071335280102290023768767849269287481175384627146215356267291701758113115605862661375725564426016712478773749730998798182914720910727942063859672681719733882366840767526746962946764626322091465250509569893976578729417891918766641925396635656857958735645742173043649886962405953681094003697703856914751673609114432426566925661635214809283650099542400061044153624426455425727880306213316703138337437061211185217321660502459071336369378662549668320809665282311353783265393962762476571404609035742584358327168508428855204644946690257247213343191330677620410254811072697641162197123241368817839306165986780627837723867803345644296536312649448285079885000247436362615501921989835573885033029089610600968842189622833117745803945457874467252326835715291030264463399041068119594394362587012659404363379686693237824830736295704030873129685545274441771115177985256579570747817897047145759338975549776153479312569079577385318380901065663824624318259074087675502464969732743900910610224425553024204207192817047999754571607909702470312462575945271677428604351722902173425331849899931917127306561983712089634441870956858060790645642190155595352755137985280720964226978106219742892672718503811750988357064604863539080600172061451154800634261115327004053470963566746154683182567106154749763681260377822271575947426290469147735636858104601385544179146412001062157491667200275167121458161258820387052140123273212254313961387603215009699335654130797078365108201804584708111927889712689660542931051123740503024897526694798455355036287077098595156030003828084040594642402617074137280910472591311482734807471000184742999247692460553542437075019598550483312487622722332615931008879854763018542669018034325868525715433811691167993422765909620625582560486078811326786504909878240451312875782646046140320441698253480075791925813225912506857135439248945683945152962907289296593505108050819604108686960092266807709394245033951500723329702800343834318964102270074081993817103082355183581567188086525551910659486350195845031108296771761774898817318601140814056124874957653312612889863442966065697831413072579611593157430546155420277481801436718970118847881902733976482564908965985872191038654030137557258355592945862087106933572703570677481272494408246900553908212319429532960762252522387915948274926199409995440926494487960437692949412359702272577817310262771099692625142879195279915484630196439627035142273347613557358219964792161100822143871646453155980676300455189179924584833111842919575489769890618529493218823663958928008456302163109441631313394482217971417238625253737020975042491848145530089171437438840966676733383236527296284938259255861776998622154716061916305230427646083988346165345159127809758958306636497247321158889643347157510334229149610942761485044541957401681369660616848717126446454287875275454801548767393545392558770171883118393157846885552181748069337984346399233157075244312660528561748890253151961492434842956796363897988106583256505715016686055810324655788088286769877358886130508347415665949783016301818125651607743070692922642056246231438292741419772347935660028496259422705118832428031376716663853471333272968129875305877359073851475024826935302832796445305986417489782011310584621822464032352877874795758928284356049091258019037114548124727170749006922663546084826285192736645820454984628185518425151022952439389344137067817268760950431033501382181731362400838739723261261448499037166413316124278329423522733197824303020580708772837564441255551831471356251116504665468962518579659310167273489962318554912505619143299904964538523863629278732694641856991907477485092074163358650484358411567250445318763024510210450600644721645961264801899178369363526492444490790688991484849057127528403700936615082438614352625765059289693979738792632918488772525156254614821120826852187125267759847975025888935933399642476484200493357395969615682782128596905457454990155211934231972516396936985739419843111379705628982874825820666219043385132195746515124891327301573505583000788273619849374850358149589874813131072927558936332797856725669394497072454636925621673505072844022032843452872507419704628142603330239701389854183160479704167854410533004305559951696746567819654488922075182329289269437560494897280493374906730466726358011815685291578095557278999767238718403166624045201193010798270847983486889745226537306854622559565750363366384932035298319813346320495276364503419943608854063502363221204932015918872919803301649741151451336244517840744280420457492261777664089004727345794035924674975062277725897520919573086718256736631525777586400119414693359035197156095692879573976400766405995765065288567811729148340475881496334424937204072252115265766610233605674170612746243456384401874757067947073919907925608785090811503197476547415799711763793456844712166304029287330648665377691724616734873437468582854894688802165356336174390408993486969606979214014591203874860537746057010722634979449264409647539097850147822849469954304277294876177130696189202592283118606379785958502371775492255877924602403923940725423801803714865779522441036676452119777706372959761968713422452163460802615537700796839785496287830105347838210198266745657177495640823772216294600989319366588274416872153950708699971784316530079023259359598325153174978462065630009619463379964490547380757471614129726115625176599447988780015939269878563092160031023186078552266341084745281749758389805031563911539252241189399177747089650757006228260238179738175193948159335678710760078122779271179285320224247546222094570507364953371956655658816999332751352075617465053844050926951914886729790931535025233612094650458889021583158845730963359010855348488099406388788376120959205213820379295089930821746680466251744739087925981773172737910629038901692051489570420602419703066628540519759812125689423862051448204387289623956116747536128632047337175285554223510221744125832348316189430849730247056882506970802711758666170004759658594066523495628720460528415708704704054308277897767676070893609269358992859769644565945352229054861301703980704567400228424080202416596091474958520129223568150341174296470057482913280350561502684420833663509437032039728274189924526546392652780385672423499299203245399072366253787597228732851679735044197039885602944111176316824230688423732487783472981911954411946718865298018436725591249370685957065875358684956229767235399078134992922373453288333701068190634097044334037211755327632403151558126092478133464903842393963071193988117238537436480087140211235475609373955534841413058492862440749282519256558814756786496863369740447962227720590002834952904444490649014695752542298038588259384574689699720797171910577611764797733758671921277291437641947932225933692977380688849978668128806970829149930731068479362547758407464509292900471050729591472355957042013569869596775441899898750207994232918863463853934611237716144098094415146432005862817352851303782688878526122398971569265651191759196066330778545316146513121569028997723562550306679805670997081338339052807669999863938405550127801273976273287843589124772949295254489030690785839454306402235928445490969509400727093056514259891794597248462237796211005724226481260409260660094849023596730547896237179358848116294112710424780026389252832203684130856250874020266394647532719611974148645646872500569532709777319288250316353096722542780183429026693819398208317027580853461024336301412394674662100757842521811105866116383296682344227566185918824808908475569426895576051110632869280846555817252789911893405648933823125501236716990889726219526030254080919884001402521925851374717593408838893278868523316182931874500295721399741791211903560725431330029166512083648766213915699361340749560332437244133609378362039919441268326648064820131503502673360195408631613157916748257691692927561170481518958680283234656026700427575918180386660877501930082745094166318609285130527571061015642759631416843609229970792111088324211056185196491599913884158747237905725152103025769356095082552814195466736512742277032363078359330255853843522857002353885017717936671492520425183631270400532438384089601717905350036248514656885643520727763702948316782082108090152145680258585737965338262997634788952496022070104191450559650676410628334506456975772935441891617801526313092506448826267683152239550284565566352060086814402920906319703148166207479849319228899915306365465276233375906065812931190118517648382042117577937822326388908378410037885141538756179539097174726261656970308196476794876379987617567905038956035600708199487174802258166667610211502032922123907460084540905847213842731011267409622503298039448758372115299874163358077774673602149268506565659894220091977365436758099763887755976590928888094976967924623836571535295433707346684632273940938412230772632333118390696053890858068944602531944022725875339822449031680123896698417549115123790672612880571384578294633628248793938181454687027394213096125103169570400425270494030021727681793714318546297627417202198859201033593877308339946072593576401839694438843871940778105701912219685412688376349553024017215317264119596086155556835045911038546411243410360172059766272848722676618263931133582916626699853023024721749578638708854821949076791684685057569084762070266002895256911407321902074108176667664606434932831772840895296561840655865665964537341100029026324623946705013389381749619586342362964511784524626513941221454541671889903133947147787904123715896156417373903358857374082861364408197850092580006531524562930655601163518971540351236349981613760897476291795363271760384744936399326104465113999648402524096985576441747359656441468414413966403733750494858015729782350662519414106419739893157427875342811291169925446248915807870553619478946106195583368107594803222558063589352047581724717915144016583936870027680190544742276484568947209853156343575320677904386877765034746916139061030739041849874869706212601941108530844248046340245633749012436539460845741544728605935940397848299323524422133476916128816765193614211376055653232097721907742688721220315373738965193484119809361931574886403478037903263653565684562495912741432990284092451226660381943943335847570852669226213109786398666954976851653439140608771916290711825444482620519400983177006577658305639546683443834751802214051865140777710175148115495190727131645555126142604367555042482413365847352837016198019987328808655995562330877779625884553926305595198003428383470310200298392392237059097102620388478441858541489679960012078193643285438647093426818515997857570882243549551693999900972926697477394565479322592628918611736125047721248516433891365364990363716267976971666903743526241028320043411372664805413494528259572407624799058695646856383675044575363095222683603810692055146384602954376921095921254487628994666755887117931678526751637588672212476874598829395265465262129056600228118588720557341505173535666912324167510915022391334048513167402813496626222011766837113912674131550411721718289978606972723447396571093746331600661740573390235986605910190245232346502821672820174883650986514207071608325652641696224092466764719792869599918872656645285569505641060048561420204474839728377677535882737116823227448393101656699696891856028730709817136088875376645972214841019621075021285083420294901663973781226053507433629989198741424381388580339759241958341136352134490119159387148862002729932787443969272511790059755250303909059314789460848865090623088699678602022096087661031700289329387838477855005353507951969403907188773376593908641682050112942285281676854523758220368545965165838973724398702636365150258505099254841434038731904151457403943199432943876919542022364484078095435149780211651099188485164707686620163952535291919430794681899961988646807357046036545720180640724619911493808662511380579485978443372091408049847116518843680304725100823922176250577893843996970283580201008179291939032802974203904705595853589853794548944624475473059971933160956127433723851262115932770737607377784302177565263023480775994255127482960922879092268527288378932075537730067142708053811952543175911778321455954495043765536382875172814225232542850481193416917325150115027862802914608407643398788695842441281507418334815884706309155099182432454135744284168597894554975045817043882733498574036167269217399327082371231879048862625534883084885942550514417671959004323710609921934683035305307777228487306224577979010531500729043038613850342028080641534453765863789831350233770871319309403069480862322023505796117185622666335089834511910260194394187176608131342851388341675390816325734728238737267473538805217995205340661585678446964839147459592548062385258605866531058960637780032025452324993691678588579685572350954348981641214838970123179034581777069385354448815330586898392192324127137581031856157571224971603060849140218872809056545481878730104565165352339010476037044528203110764331560216277953933999935734208703460435250848182812498583470511185344517195627298538927879832795732284772161883487557210513677067330347519764932530949463548836498608147371582879902851692071814200841496964510944810888724048024242653420503235742653848679149279063460339195699054648606562228755953899362236611662443436920515166553609090309592883451639398939873823592221801848707311916329132459094580718805851073636870077557064778816696982109003021672337148428799481729843086447411987134098134514967074771687145033299994838893344805974747496711240429747468448541560632946671271760791769880413266821092900600395705579062496974448417639884822692730436769343195436315804732008912908388270548037594304526562777533060002241834789757347620098833990776985025774229630156407830039515265374662177509554962103523527557337924751565038886527814679212333063422101877404841912948059090146844564787200819871445456686397266925563046610415241182094966250620272377232862410984285738452559989640067756728936038672735705197358460018638493652538495714515382794601720392472531148042566137420593052344877693197271850716134292392245322233390883369252223094297416365578606674377139830598750510954171979029209477557595735207837390518961579385372276895901238212132240018332530191784669983544021532189251263635057683285892546631796220046966546784614437394531675955240323072510608227809634869379977572703647903671307180323323142666770789830117541324269039699157431465969208798969976138926398955482927283116587508740046308543558222308449730326448415614584923152718240932898294023415393296787829757073222844767393818118082773816581326640460416413126896473104805849654085541139464719501786619567429757823267658376001130678489131246667229871493054356430045474087700639672934792768994002829015433837478318945020639768937151837563726283403554199870906665621794687157739603946809087790472848377725726179399779329473230039178581208799880090576397453136087281321924723312843354595747711241470073766818814170723777005332870393549111638425457117873149625187487251709578714971691763376600294188304698363851764989412095074933647327921449300659736705696950354541432994393217096319597787904141754073414736252019069370589346198255815744135565107565478028158410873777775126858525733587140405059261566464951444511667453075945694559035940363686370876491502174975798323124188150180082715058037392609448948255287996122729956643132327676653514672115663924349092865161292736276341594130153214973702709888921545205660798559209377514252576511942283461117734593241621803831142674806306610749456237984283112264119571728005082144495646004797962805742299166107242467341946395609851145761266056716892593384234758893229128906001311545798879266885640967449311080800251912559849181910689003968326459412627815561011118135369125589947615823860276760672365654598973562521849159582669835426457097887785947964954690027841777757263781378199391195619371787321272225843407967313505850014343554222430929333428201558881652625603732072991457503663323068217271778791651840193164162126777011732136371955267857523797634607160882435784821944980342471172246921989635559388959904190813805211214020539663261159421741166016322293589263463569455042648345072202126200019566794023911037367869273609869949775981786664904695893246785719300031354127877970706535221886309250844501618814577520671804911131959882780518108035485517520002550084928358744614867146565798198185857081996249057511901535469117934114178397493619327236368033457874350046312927777751139275604604694496203016766769357234268035638672269572741548745758461481584374457009283133133572922435566439757802572285147190216804839947448485126890839794519768817423876145124902240047030512930335041339684767860423542361374688508160552710561699289958552908003996615835628697433639656024851417469045941610095854122108065748120435436738917267430505041325134316458780250950765461044105083466932176398597756521426837139767708896583681765308421094901244263058220558188091815302501670785823278266206062833967751216205909851972658436682533022480890518673774315603818082462609110880853823962890797896791219301373630521233331394160447256792764582437820985835926646549357703589842324724516140524348743920005870247627804705278163531731348293201280925479507388337260269769558606315908897085166437855988312470025462146228803306182065131618809344627025117065460834178310920619310160664550769764408571955750426812567857661998924158396011507422069919001511376942863981588867947328403693837084408188178881223903176214660767384703167192191920395792370970072010421442740887942909617444676243790378395294107456266061559344015287106079338242893657122365530449447598035630334591227425332408667213896873397831404464420523523223426324847589282267443286643065358423741018129805927362026703898103498734413647117779000447518328910177629428820745893881324332851066122209432161197631866916783277490140466502666406715509016168894566549544718891366655684947279543452756382524116895965254515627652037271882617622879599158593373387600140398258367926830162433651042768385984230376649664821589588187138377073635469752786460026815255645943967099088118447137511044780194095816148600448881151465735364077034400133987806840430323624547052240288012052670310559472466219386279029014715650971074222539651411362150508076106868244975657944354765812101248854480620399476205538932953452677609409319639306394553230120882806726237917846304208608053139498846948371304561172437996989094078364138506940539245144099447765289701899227597273774756878583618399228594816161780547998707957351891499214759296910342292568794270538991689544717362392964172180330526824000711914836701620690012399859918695615706403385991450974016187114280625500287749531470363453304728591126963384417136719884098491783754980566702580237527255173002759783565543374022286032178990382402245649706362431183562018155898172994606845532078046160655250971973999575636577941025450440971112663371116780831674800160175667078762020681542731751731125683977308167938887222473136226084206790025424721999834856802459162023190908478040875394178518437229540243398791834470207867069298282446701684829899131261393348303980998566018539940503969928366261278469569105934727482770552598029729004485075676839946058708882041095294068670568934720478899480656233033271065646743308068661665251370506026983973091527826371883461577579392887122091271666104001360469248721984711702933745168650013437893989519885338131781707399481345851197086829968019257616364813099861818148582372228803879238289882615558901431464012814747384122467613830376331430405548743270110111363067194570319551125599570552937068209937952187623680299604994601977881324145039002783513346136957805678687719681164115106445146894199449679953030677745327290368671046216103916542558886339932937430397031504442086316429869586758813570349581738216978543228283735146901092633790844502812068831672866979024619164563107638020606108171213913732375223335172612436190896293823542086571500735111818002007035050486681153844088456694966917314140719755400277253505555076413859510132967202379891042650129361632832239092940618481398250281320697287223254912159936436127157227943329240322125337588204092120901651413617487393056052894235081963361669798274976409372844699205749165559184730214146006809205619831449564506103454959626087373540466044179150597884147676037498777733875820219548132206170140077648607770316723290522735344342029577039348967877275078081532314344355703732690022933824774152408849424224284996524002904650806440853570191107967790570578132946453608037662996487252245434428420578024671131951285911098126874301422683433831188670960703234047078952708916032049318909406963287859065508932611586757699466198111592315423208951321247575950052656406158962885603669771647472545630388353815574853700008078924830462454175885997503828860437266552646822914307902251453545511948059549252373698886578902707075366404526329052796394335059231441607267891598527987552371896640276377038108918171967134629721187842404234603631627886855417307979092320877693111299032100320900352340852782017137079847171165512121779100236282828408313368251814095244712537528789315110502457886336584532458303655424472312871237518809276460266725743891798132402090409022511245775063411082912968010454880557740006035208803390691861076251346216717188776460596579394852610368647202631514680278943863468153531629135272682441246124615566093941059831041565095665695992736723831518914122167121882111629001173346477224714417519523025843168847120769658267429376635778567512745080076310791490526984247658022821871264529190245668133903027191384117579041500416090731601943556409261370148902524726653421334653182923997893116363507448277323944905315873427016067275109025188850828911479315892934583241994982896039102076146766009827792665828668411797695041901334241365005011884977893173567042842494328543833290104302671124876480879520939235014213047588304506029718482236121309412588819418696854275415547956116190465987120240365677239316514366053167238595626679493549987009505684230878198159875212282816318857747619882876720378319662938340406826433588229142986880010852043231098922920172596364094190295308038323551950002892957372825132631064162312600679961426147027245084267266149256358406066970310904680101130294352287538171564271401828984955551340785493212260410529208888665763663635669820842240804934578300686554163333428943315907892456814311511450817416500596546386664256650735249250948235315253710928288712937817481126078014836509214697460759600759956661583218621690423448625749203337236140094550847652739053214781637129239785167414229221259301742002251607237246697544213029353210348428830282379450493627128570956931916101180219345327366620898590271266589396765676437582877569138891203658817254776625411096339722733502020534736507728012418906728392884623612433790451386275109167784910481495269242974066095736869158985494474899049989940628845418420530527588405048759639394039809217061301079540767558607977728967174875966985262276412006523736267904089862032138296191003113002836499207099933801512035590561699866211913790789614476297686464610361994333938931396574887486198863123585260768481138915275289515930137240279431992891191255572657470308876068988266504816350819776145302373651957465154690458525758261737315561481799900589665652705449582265111494927848400763396533717524507057075063541560293939587780793588223312373246480120027236911000480469692890446341896627747888594494363783549694971068911052177806322041419087635718505322609909517501322925820135473568357111336895435047661571362607684683262919851053777819683345480450236138522582672425305623903171022005579577539116175568349246464154108293565327950181888968878896826418318975917811657332710691144862951813603918406526394734822924375597693109804246789712362086210161332397233862210008784671766362906539362690412272090806496989890198147187842585766387542678987658368633115760721074220810389264043861007654874395813818606948887458190214099243866925716283930341911501616785617851807991658834480999171997888626688464631759128967739167912786698201958075219694420036453593518655804075368008367821974212676888381336645786213515348075277343922477291637458948516180034970685154972600586366448877046322920156834480724559360722375510958777674934253367589238186629698280548378360643071097048701613120666284550433293153381581322260610928034279187563216819130673412834066609295085120519351657909513495200908915978710600554643405272488454641339802727512051989272012326121802038548506370316927670650676325912484803132390593403567758476829739791158222885906345618292644967405182198461570337417269066542614701369682878709440326816183970871452100587860860279502423402611567064102418003703156190453846060689515822655346128023615557838413418802338465506774571403604859479535874499812428020020689468664349860989996638086358754940317704871164094932580599416839682802781023032164192835093559935599552540462007326404295361826870403749892033402374789487087618725766481623577370369875321063788216934792387743082055113186337184919488831395963570473925615785773281039506785337490855696771660292286793848148148001476819713945697025779180439755734974654871304475905474631583111739692327074247304069258742902602439262746947294133583034399266954862685273892449835052344121873153923658150058278366761053310020938177313302275781421994024105563206165541645839595172744468548857244698240542916914001632275881043320846603574179636697510303781269616910894970873887191033966165653563712631044587292551797087967382621395494591830870707491502674057265139422380206951063507377873283010187580868625829804111790928512547686241797060415498079296394799497852996803746784889127201534933803735462733732528347828873975292760961531436802321114439090674669591004765818838934707842137654285767504842009974250055169746875917365070387604187358615747361550215042506083466574887522864261881771832718235346710831967147246246216835316482463225460666082885958660776956438605990035651383033521239831521741254605815719535086225068733437076865832191523842654008054212247205625546962541245097398658608597766905402197258632934857351314614298952431761224836658431750301986501513236504650512658032899162436752597268070702174962613383375733169766360846137680130388247220974750351715521001459336345813426365164807745431936209617683464046068654118885686115621047669932439255449481012780489526466948681457711977545917785462945133834175669378419850122579366714462780582576676985644175350912774035838234851540504944712594279502466940763037428624627736653076975283528764604366929804165328957039483799383718405039632106301818934877489846962712973038708174089215124994024064118754287340536760650288119225597618029445106924851945664662167450130131252407858259341226321033529032043733406306825932675623618129381016132384227906869306675973596286450517194564152986410308786676070694895389259243580929041385683850114757206668552935058797900980761216961242551695397352017442615598396904911498950703442597879050470118370136707794960913856041882938999343562249250840863325755944632002028997387923031304402707039325466738758506649942079657601778426094863340270551320187354352388148924412984010026304543887841671358429001934518363890650311236696174592247522726227666571994405802445831318258924419556105119956255429493831468864173409626661075475634408131803819335034584091560540833833786768241989914051073233113381758616857914560536776729322352443533388694172417500671690396224974222927563611316638163239255560770797820732830902623580110749792187723468817775395882238354535973623131189606331450336062713479176997349683803647842227835486297079659924039806446020214133200483110183025757756606599161978990401096952712260100832516281551193934896118660844061130050717771279150818372852689944562179837554920238323890160324469625629255829515046667099147427972161761409759884922158994893647497915294779295197851752577118179785552551398631590762985390703725655488567476263222930364962121128505826012760869435932201938703019113301945461322795028887847897912753433771383863369862850018550431611399875827410169048024784250075609583214637033482717683102843346709412758117309286098303912809001626248754354827558783716405971355373483584655045226839000863416752448249011692226381779652944650701285440554553468632739271274856583867604511641563432463453455349510307289390979438930374041011280390060380394601939047483992717727131332847547085772746473993005122736476323629178080184888282786021231137425056880495796417947373266690289502879165732681097212794307937415796890571778549704666232825163741750074819621135086299438325189586343304350049456168766842495153246991068708701876171878902812954208771208227832016411796543473440957048261623655125148580828145137110126441440618761146976139611472865426361919003274496031979558242238366102730603539970948962004944359022216378335554138386320403822159380153124449338430960671388854793543132196128476123958346289247247934492112610200327665888422944101081495016643739421388443530279494716581543803821759130367088040282220893961736458479421986918216646404151878478843409241695084563094032249047982011364435379051742043387409834922302031937353716488808166238151116709234615022636763629341784588339612130147420811083278730476937894476140100613279466106617353837354775708051739264555111077213492826337223984049280628405526296155499092683301601873314583646075956100021950039400233423135976066907517771569998730710124686243522312391714288300830653008194044618553380188419323881792758859229840820214486593849961286327303259522644614370225299600884928836591871216166222071950612183232821392238644155181854007483521665853883672290460871426758905547909477652809293527287064248973815475385974809510596668162052677881384889222194049147434126334038404692778186241374665904866541883452493441141686120171213453523655805549454905914785439743907177024245588213216669533867122783853366237463233827567988298913441447060307003537679069754653769557464981570467157001751428891382752957759915689995361348402890555828593616235036643252370008564083240466239553263228107783169770103772882835852377858632846559237328969789591998192192188184538383644687576321962661619539755716885053888897288736984374262712504176659864605759585455789847354439523794579479518141203334327312758077577057358414871103468869785865895115163884172041196986403632067329118691579509108878791589947488147121392892051519767746471562856457287015242754707019516445213466787772077007721938424586936490505918456335718082563092205948577271449089612830637968381437882081304796872374705034221054184754446698428673956167493735578873231579600037137464787430616854093161800459063541814534933569750284866157941180829790376188864070697658953145576871366010128882543431503488814614027968797907256371816212821663779304515296943058213764019632102006462074927777364571909034206245116493347086361860364121474619807508528070948830194153632728503564233323050529157280947230529527861597891690441704403708808310936129621379090437454176940481343945631706859549623010210125927792522459437612866951313140732158266681107584763818141092036359295970328681774020672497899367770329243242354692763033083047814906705073484784236646692764118343218729443463412434835832147817142761704271552168210562923444578788337224438348608372968030564480185415715217833920459034815218783150833028258951954931752032426516583734205800278006525876132384543761657503050730507933633750814070259969880644669294448273508552885848747905300729596842720354290867625081684241689785783294825969339839227014935032009067286928060195955364812894756957776674638850024292656922309597156754238199356330685851208897377905602281166666383055380571842083978711166754314397955630026153205964850779378739180690138638233405563589316961740764574100837315179085793844075279292995362999734153509424191796178321239107567668122917663335048188975233618775272421178724836806850810174079803771771155854841052139844283429486378305764011189290123409181399312378059394094836694623374563288314529019937327803365645083765088849996454058175054420497481607155548096437114960308341211834226089948591396159216824985656523631925803351257280523902432909744854225018514735692516404945761240417630624865993578381265325218334439314946677466453916984979457402375000525960862191456071071287371043337994398157521071371231700150408328934590908191520903290678232839004030416842138267572723304354087940197148173698016650882694626439252146253174807927122563345718743753290745314806426057556679599776598049575615547293692284769024527999987864402133852261525268451217239719690484013260266005908464038645756574605846559122841968124175948960405648397171090342024928526818007261806003850213812527298500503148356525925261740885614357856468626580239288303086776370645838246801889939695242898203552284890795297519889286983598559550366614739054974977612029309885669161722357706120282582010949058007009219711106340962346019399873801934244342105173978640662484308373936175144707578050067339564158845477110317595044232418943137880665824098680259007530925088654828165751386539270741840975931255343380813287651361096055598813448431240374878251395051669203620476324734156044099586069951098165859982595713216701770374288642906482683894051089203990575950547688579568478211030750946446574538049844997023725107978822412334651634314667770420832450548941877692908224846148876484611699252470575578969651231067666716632254368622627809965869569274479797617484952812721517875135108844840177680818403085440044513359076182848563904540087798217471325330274549161418794558585681561203343529347135688742886112308734829149672283654833987440718234828303508748198042676603871588738146566298881451864763426662756473680205380600112443102053936764776517326726547596143081189844925431630513236123662478793402509149317791334018051238205031121654161492807134235405245230506047347592151834929176232331056609381512703996052354597523028140569960077780610578557253271949242504678306283065001283873048424879667034221238585934897991486105074129531242997895336564872181194121234056703886282730558699065692274429208187307628701556937212019797729665206554272845282179459004134441932803100475219717685624362302686707458575703015956600094073971451342562255415873343877632556845634708171881143890114573230750665931690026648673276067862970775388488624514457623784458941290453326900494548484728259547232877583456474635381984416056242250853821781513252959291740174412463415750105956011870920044603144550646676371545468542303014958470584546771807961299449241291940109699290997877343612517163115817177385740519022671431478331814421087625645472138896958295038941587998479083404798390848734497630102182266339568518993064933769071724165757189945493266035613775478612207859852306040479050958278553407687061143591300925223571827070900134815641967573481604135187324424048141860824907376731762618570217801395551289547668231551511212238475548754551531862039351453889935016905945230617888478361011167584087495655369431235181660459571463693414084383335895432063169829119623306956233878786066529203718003370605965696560613886224748854085832169472036453585848805640424579847102304204586007482619058217336807695478152775742196845195081487265518033470863586306035763755810869415324368405068411574086494212178683635737773064124750932081326872752136432496266618565902814390695166804092995948921738582957556920253585292043394617445652655253856118852104111246653936037587381990561512720722099007391190005347897813272138850526082776658301562140889156004039131886079998726224744942623284504798340595107506838740499322033196548519406817091185145287401901350103112278843103496471814690804292255712975377091813916707475475457221109572351479626381090477649905050881309401522175655026268557520890512502371109371466780091492110783103064207812905744609370825301549113073715000703362550370971494475720082209067757688366858464111792061148181762499403985302649319223247421170201303979678843584723652928043031390452658827930428564775493761731586671922080582582901217890011267689605557047390198893014168243177333631530398642545809862988245288877318935468255366562334532802612686022398754715332917404898778933846772935809011153382386299569200399163684363143889251262748236247460960368881370504871251902067086886865208555390984440221058018038120337184666949880899369882044416190337545186998479414091519422372154080546893531712144494123306917411652005575908542796631784124481042381296563933454188456325569628072127389822378525787235758296298520880817937953921057083413172599983835696783392356832733044919150804885474373952213709822932772663749933886273457978187268595361815945063933071571670998504736415243806344364250275216818023036254929584434452798173170957962503969338515324547538448239695152293374711490799938546237952596028128055746180950380898334630713403332191199221513189840410422131919073332517775266451424059366397993606913600361481429222462023100904962826186601610307707000169200967576377677213231126364323799784726685704482599422271322636870939372163870256504847250517936735976924578613084018816590719602500477018223579562152148984955012668381364097192394969133074377555120518153652355384293216558858566055770685978696646282453260821389582787589939734903294414078687337724951021087994960206679459181722394785925728221314228708319019893432106718208089062598795333411477141626022809774277987225804894847053483890362914433693072258290657326826443134789706301320950288259284148993854494198388527468815871218628611633750592044225441636246469255667574650550205994565060603046716913778200354872946667793379709742759014548719160019607774712202313347074757669896801717486069681950681890747524067758251268849820393530526812120254770950035113631512484292782004225170265823232672638566099548085990311220102966039601640002694562805003881158816549988652901832178870346072811664448050515592194356943051466737935358227888798255225783053147035655539898007020383088558006857833909736865681425911555866445340684080240413198833388573955185509210520100743443148885935429058493683307140766415032702472357273827834829573678646629647655978410825574147602638612774218945667034533276433769557240447475615772696192901885550313881462499428928686415505925329883669810056716354757057188718026730183636471034064605582173043668284767260189900303245508211164924623942989858020363386785374857968122478711528567515672882071597536248882114984080491185069848284347997625772751114957621157259121855054083134386550922987841011076922826634496355106412583044843835422950032151372552187307755762912117134535927835799784344818013012174316452562381622678705388264217381884608449495591354875610882211744445431692618963328101469878092577173537742397135875255599724369351449321091910426000784697314550393127304518501723854584863086664656713300553928521849177676341292235858545351916972749596201849556042820403447154197161635514079050450494835324684702557224341392951642734769410925262086887925751875468078360158386766809422100723424747041864970622493810936973977094835979586586440967234934081335976577695924597376917279594999369839298465833338726149257322951431508255561530492845756510610631382369420879433787164659565453474188614906149092947459584525084250977185679481484754499851626948217302659999810880995040178885773905011697290806438012015611847078189099020221145660175865930847231744800793483267218350536536857369133234975094925901067455150889626724117409730103571053227793418270343035837830387864177526066985534003635892394806578435734265946956682361247514106618783000362226858513858543696147498240976085390763076730228017006518449294413165565747721786638178059210180647229770566541661236142094557575776948733080004377250360730460610110406562173710830513005473181453315348176382306376897132250180898675863686182137527692023540057012272103166969043646289434990611424286051585292403917048935388435496367950501029738003777408749443046879575749273320764713893761517944986962732831694644324003854731928675360472613299892796485463344845242173598211403829968721028651424733670889475018921211346271517909004332613918369692844102180026711417594147382020177525914709607988806302630408068844685386823848287405798695742048418209185257293555620448925923655218516991712025706729778434054217053063384274972385556896759593475632557432035840426679752594968100350746581452514417365033744958067351791498538902748558635246849824503745996631634688718727128032402086622568147915882387346646604356781879859394492775617269984446925694071887652616217945953828787755079804010988442183100442599292601632401956766217609083352378205937118500544935378845899890739688649907808312266311794027081593272943460853887096347086628507913536972499344528644287323838718667717073549106035021341077071756031489034222469094840490918652695223472217840985242692528121214080755302959909909757618324406889958087657599529166185757963251329235475291964504467467770101898587402398119206648164566613115906618653812634141836896901236157090942255710282943865083966513347454642466379001192921795075431635959021682063451698851983358597774115821664367472010953695225564300230247199463972877454441837149083012037096287917824201343064603162299901037885537979883402472584859618376218995060750142376670845976975786136089009731882756793363874834443512000557508437899283099068215078898263831998515669749117812888697189357809944637897618720802987577905000464625581812173323083372690194428947000490865438225925884678906824082598798057543762876157777970229726920102888808680467784762482344040010454857815404970217761881124819902325151715493725004069716029529807307244815101731808093510964286730250668760155880840457178776441844309261639058124852851650610864226110562719330025582992228630848626337385021647742403055875331714108798444836941080730137961729805742532331790268344073973579718214521928723910773618307902417837476269874483775723253500996998944223494541731373923121943666630056585144153801296965245124947535031218889065157498158295940056415504666166416024700164108044552835194970787591256619382311442488169515654510810636778959295909487591520151856507869749475500199561603511309764276310242433514333580587962921272524017472851601494076673253763561979497750422955066236037018040865982136451660743317650794994374363890534483216424059533633770024203419580360008023018871873903446594650272300766482199088628199545140201771889621989055548229991171604442049604048003538125111971663605988901632717446079154491189453420813310415858358427524507963896878395499881017540127309795130462800173733373135189079071668626799926613628879970313363860924401545517218828857207549024928109339124993511094137553136462910874017338058519105751009029152024103844624941820449012280755703158500502999425291484393669334742145719896165507942984141610557874903374575217026873507661079909077222566208752670354665111739986686204479723892281527232579409952185854014464921066416764643790904709301132514848367519259927196028176683244458053133732005366422044318808870911740568127515630258367845881798672842052598964680060806383365349591440572391507477780097078675519617888249760681328653306138245683307114222243317993834819889714271732061964927623708258659784016387726917790489622805781705175352233653912447712603575406594030763855601762552999696752531163970356124391493152743311493940537687273921483010480878531570327462089425899580147958558984950935637635279551938241298454136990120240082375473446660199757781416444998702903434800365032309726134916584654940096884329700878462491090365269686602203227088341579960464241817682524468715131453602270060151547770601683750254425985171466412904442488574283373865496500180605249747301223221505957384378322898287938245735073708762949984921309107501774490203689597240099629333168460853179442137804482420515388885883563691732315565930440800139447219167092579980459717859034893221391922580497060325296157591003940709738348592407833545328146711389205146109307675110698001961374674103100462144649333314812887772163938609507726002550365774536328419951917445793813874656720870972443621655480519871336906187606431327787774869801776972354988349859827679737064102699618901547416815019126831901988202686198044240685138756692626735084133963665733532192812779104026799003376344073570799235169741287210486381191121614194673830114608961088891825695837099088590859924651792092346558165991432812231384321854318937486935061938857421642816353791377522812973069469596775963368737958902630579067477780132363644518263900468839713506826121476007463779024232595493256420338092806765458164131738923561463274617014255731311471563992300590642376182008376270123267483441608790448385992383709321856677288013997250092107664685923973362179943523923349972582996995460758787310255172922661449343271264310441235891205348841710008985104732995094544944961335870359852020647893698503245824279095103368497102533554092293424942930623689484135953286922479892520128795135075623571234386281536869771995001631450176858027311757927097779035174870929013420897885424610827446856375481033454484648799512448822467717146066733186521870134169186126630196643858944442751880088569028175819015979603642496265881606978780121885455678835916069376020829597633284213298850221815170138441653394168395944711436445829042735375385497629340140267842367754355723804268342558585147466459586364625123496821910870894588286158818987142353196933714618973425935591138745972893624672133578535523846752364761383239583316827611382778945688518801923460349450230081215765941629920982653936069124139883227021584744093073595579731031022097707164762033784324273903419854125541356537648353258168448184662975906363836669627322766674139900955524283239601292641347393004225162475832558005308212524137974917158975474514209032809565878955697289734067088463084759965190879455839622759729037217778856852649342030171411227184669611151728517199504170357292990141392112849686183749567400234453262190028968592461529055710876114754475759264885858334779420536775833845226357436422792251377206215088341632334868270609093776067721667350083435361738567689234834182929807397375500832108766086549446034696482084382377827195344057530711497980876302703784468339711064828863108694254092984416721601194061340727463966034715630863120327961421547975406951054554214428250261144510938443854916682336321291011178174041077861193753027092228998286467993075651937978597702216467407779149086015119107893461706422434431827144737164606889368904648963175277187283269928401260552860898398674296585439162162098013059796580881818660346501419833062104381350983106351423740595256651462313089094026870847149780001142702586367917019377446551006461611105787741073753357869304513360216529110782420022823267112505829871333893106386141946220157816191281804139421212625340331517617635446001779881161992810463549908758242557947361136730539241832718079987926964803339158662601897936507579928836029156164141230964391876403970221187498697709502116449288917227010643187201843682668152267873613133146187677934429931923085273964040600750173234339211078292743694230279471691140298975425178510929661538874916065670455646283441898183035514531213239840974379526963343669148585581339684759777483104391507957622449460562762176452756306909317557757422854746398843197335413456338407321228107034045893217298309264617425042431420160716578806557827655748454227584525902647021378366457053733361298308720998823013559118456124967903347546486612728112338204037677988932605721496923521211126155793905487263445943084587396334593521077779707813072383383788151561819698386341458098502395332151169724957213032073014034941637418873294323212481622886194437107886944964329099897520336934654896561169542918359715028569670001849881971472945353213476588193588156905116559435407750533290436689015887668538609317948768580476757772887398368608354087841736189973995578294115753810607603728778447786184377243550399810684255338042905567513060513259391379634153012632502255818905950602978214893725574618413266184900908772483352221138069418992606778773014105129884468838827649180630580393311112738987618719869837645458494396025999053118795519705339329932754045921768590297439169346955377699613448666815084152061870545293801470005749459347463318213683298533188257555157753168149888360811267687974024692767293832743506590237923306163181285946078754801307401405767681159087934654643858958283287721100092730568691260242236719776889611045286557694780461399237551192322520772378765802957373407891411541722128633377674969700921014399538104753536273122485396635764868560112678824544896763551461537493106084029860059353462712670597316168680784725691659211750828102548944181893693235351856955685074369106888080152223384209775427082353442034741213211288046766726948657677599479244973327711517456189451529672952870101718809566962210543698511104506476819470128933933832582045398213833924683097318556819684333534068704463651548130427672434551939610990789133190299681429064588782360964689783484425763217750710315593073917302781659856250763249781411406716815293067947970054804624556334846798728752293186362424749780283236419243945931412166354543181842045311956336187219426901906924947951205624232121927995363082581552536018971756968128627656539915183888626951649552636376799709275985540623423973773207228066429534497547147370542004830248121105422849235875755758733570595297397300441533657451835343794926958086149966188937808945444611100912372704930514950728260573638138388215861047154120478631352325838348389580485496807309415755420535356039266046693870706230086935749063022805691916240785453415744931783133598011098219072895523990290119723100905602706181223774875408667452549658743229565272314732454654053444061286755372426058335578243448298150285932920877053001581138016900107035897797617880270170310809940206527559879351273321919997257757944485511871518763311421948912572073694779895749453301718719321218992747588039286478885141887734802728408825344723951834979947593870500074916548455568631610020305197610051948770890653292051720186899203791918278653777951747131232538015213346177252734623893732766959101230074884681372371663910140370073472195573418403478772724458171269273403202909063803822982924207098048354236669364757603573549162879445296339832664827543954734794885484074108404994935066851855468716920621335796276806027769212399685471616062135013813525202424798635162998167296513699878454900796892143301473825192977734081733513686669271077748459540175002923749091807272809099255702141360099416283725499061526387262805658962390666170325140861137812754587455177048787289786829742587755835667395871296251531230072219830411561496752554122188085659490999293970597764264908726517702700365974550343117117373973792044349499925073753469673701131863157828305411600562081707639334069019032497387429339797698222430341131501061313391580693698114477521397205263406305428699583166029444395907907459584927468781402035823717311551855270883806338262740829130197322748685676142421036878716678933074218612845569388208245647159269871453002426156536085190397000914273442655342920019627833469043722959527223534826852720469650672566105749019053507409373369844817987300569583513502686594144225366542079119530123279640140154286361478564016521321322628287692452617438363760132714175599088822553344874671370159034962571857673168313747267873117937248037899356815413815959695462013699150855750212167194955466098065891202255032258743996311571593194429225252496317762873741059461712099299325774600501000447833306181608245119075124387121288317594015144050238705131210533184730895817627080844667201079533191384449153848594071653609096569571776222770634583704600888540895287394704824231807685103694992803096683863772861231438967529238557964395955795874351851818005985380176735001045186740247299368394034922623148371222920120187907374296063303105941390692635535154060585535758030803442805877647070879712820714334508116861841274460505078924336664922246793206080306609246681434252302029146575444949815221774420235785494538999022229887663556945085827525621627169504304979898204205006008120274566661444795537274930329828496734745450039299772326543362894415453882609622423619179161237216045888633455033056361848560969572493479569482919199240394851209103540431511003317429141269919234563438618397261420793569487065673113874838334658825799085172072639248830342446968292592546750813111207078055927725388710046715606227359474111406437330981908025971857171175047611961674370692959986095446427124634597190559748322838577443230499071153112139197834481714169198524225312849934754899471867348639272598152298933481217590672689555283522840088883480617889175757131635935043555929501812070788353528584993978553083947859726809012572874056583642353227922489936367548009324120010717125761981530656694604914508454696464722210494788900947545193496257778453338574622970637864949064900879379286789465409915246826685191732693112139040176064579958808657100502295687821256481729437993260201863844862911361862472065907201178698123951775644143921958055641661505552605386727816103352248624654149536569901574765707665255064006859540090250333061501055533646920752797212949353201366203357890639657055156070598768968501361546287242986872770328239770409261812549181191214615237192833350180833127703981479359904725428961654316483857852431919494275329245417545348446577195157365244473275041027164833781898620606472927130858239470524955856684087201225577419910713630057317897948728493119550115533667945859566047119690304840576817739996381363724201790526233154596932765785505272817497826761771432243689754571462424657448322565345745642609733635787288989611016478323784441971619438075712788116404532390895802587446971972622645396799240195802831445263253456412435740145277966309800712337368928122264771552958769035075821669385798957756454019415910236572853056150642470380716462254842342907599554906620650488699756945624311332061496216406267196171920414798421263939075258307373673871900289419031736660577332139791845760393157232386448600978866630500586668699014749553613289782152714199974056830532341394257376371145767205820566005883994966297374954106331573450346105426983476478466963909191780593845070281329247017088647572013302929273891513999898468306423543642517211074795333566449769106678651959616211936718362144898631493910691300431531159988976972378683061124344546758360486406754042360050632197629856194814778875378947085135654971006972128574060569801489266660684073159920069386483020327689658564473572003306560495923014747650082595663206940577379311070310346325774913504150704604672131037698537794109015612844839305089260456413160627719895060474045342765718013991199887875649984240887463110836796973805650195396871564449372060020512744752672784088660730960900995786165698678991446682911559376243189066194005106878796363011388031004113577474462594732688240085075035383423470932607621807471323024842247530632523863435266907127805355768394979562811472407336488075262594547663950392401227170323757743569227445858656019627322695489679752156040937791258000972958546318094483493716926208253589388544948478523578274942731960324084924820859636289862889486198600899684878810577726100697478743331680890173979129695671953313024782712435217142277009872704606665322348916213922249926909757056372214601510827811157398672687889070839497777026544067372868999146231197113139531872848254365943244262612926843843379959286432549686323854959260248497506882843338096345018508836467119320128128417183322914317127862636749857722866351717584859114516779725457644174298958250130439265715809525619013272355865292191697406285019258742846463534470857656211440848902549684400067359180910124387101843655698839725756289501263942125713708692027872840276496247146586938848364432867601859568910431940000231276794787689112034844315159527606630420460548714794883492268715690258622342540926871684442283413862988259545770465041838680929247422959295522297315111344481508874207496345696587848317007170921229115617184640642994884412877514067199625883364692460878269314028460086727261048744318194237543969225700511023657038478228132437600131868824648300642620792109589800435202724555542992659319024360588938328616704164742535188006629210053313526134345098660175077874774628522556947309004620234046455263408948170257860028916395281584149019701209190186716024347483430346666844644308940343618941184479689050323949069818382258714820560979305975042518447249715180986665190770203681870647176152422821725521055701855872276373998286181295791112143765200567183520475277190996044129704543691828370625355434767551307928817851692751737970413442738254970548558529874433365661924824112802041606170146688417861576323208840783500530697737723798411625935682640020512527268880678529112820722860130886802999110768601539900011369442837248571037233607050339294478754293456802619139443358473601015981795034612324587013267942615367800401869966049822017905691898765654360920249310648773013373948411632615200348893125046760424824405656800611230354663793745581247078915526253501578806749702291726951274217536777994732873597603814385424266089810131907328147186339224302059778117243399028656176148853700569464737066350720676068971015857848349643669454520693672879769296187169833470322851284163691522857226268089824038284213387898226547164664272106685561101622989004950296750910453608890676514214532892749747664915728549948350917767127829475010844681965930430901942760600880977794922079804339979696011164820334369774047492770568903158625960401897327723871441163653111369445311673256215012303475103095247217545349692746791881897061755248454351852517801054723327865427746532718555513124011009589693435917310882138503989915103820987714798402390561858737474874480686406332795397719884335247342301977169808815304059681040841324410593347861659866296191326134227654718825196914580474554217147709035678939745285122570852612208606814441458681371819903015415968407536059229722258311139267455476341744653502975664687489102597379479130032740402303959594929193633427286149980581125046913508369567592916032511217485297828998873072289761364937217126048073256063146521789124517491078958971270526431604287455336932420550344386276354409077137970158391317345723945488863928257502840223096613438888539711911549838581282854781457249648540117719397116104054915656086291756966255056447996836239893384829377106898767138926648441964589732662260594797316945774959757193307454087797859785879161477864068695048541757470583643497188871535403976177077913138977802069602774432996803610150518217412609017765515762769586071969915102960837358744008969390813269622739050803399806302617218208199497982654466907677375430923926225696120675939422702892865705903137732127302091927214689435017886991017302579712538361740032424998567317057239419709732769190670114841866809639749525232123894298517683348263160577861794733439764878960284235837288791789704858263738511917057791860566662439826852431781781153590347782148987406612686062060012160430322714263312997272079792758599578770552538838416840517615709975737010489867441609918899230997281600047571080105884351348483403160884473814416952987394346584690588244186233014145613769910806184164851163058062029407889192157110556470698778504032347740250260753339821773031644746153995634362362666955536450332726320459916329209870844649321030233836137307385455440748235231056303772416937982447472592393367077168832232609911858632251125513922798808410567431054611771095595383877689831977918662750967588665415865544445067492279859904397324644352042688846558536795472309195891523526305926989816522816586685899366107869388471920797324290289363991950352865264017972765282753781262411961390745244473807243804760523746341597700348832955647257871457212596840993067584777005292806818710699083350904382504593798100891533228907485627242800484723875849198817781049565955563342142371635423825558818873812458910146020325524744707473465088028417908036651074741014916996430174016308626719623295050424326281836223925539823100031553674794227366136707224250808820269632212751825201745215274353808394372680093144301223769632030280666074959019086503678733482017724405448948763997892260448278097569883066399544878916428462407681663465731816380848687381058347553313545118175967048964895143506267810770091570291821150834131693157094422733197324762126917280267017752722991247638530490347509986856024053187757673576843870146959369878607692653962074245526106355356028699703935055640199239459381417143756814090618568457079184007261012165877163384797328325215844275296116537886617979274021313146431554179733697231645763133038736789515184911571055220655041239082337723925836991670587606152953420709590844491206335894568259795673004136263514100570156942615811558309744239470695801605296741727780442205366818427083808913116400322282196234310474901287581098034791298552574426016067877381801300704288594436774793927543607587199337755343808238955538373303978307428004626722122654885363054109749699899775066498401945302224581674840164058885862993035094285770701415690359953492819471594624728326093107304903495008351473752751566427506285017017908450661951611087622023916452944841357531789557312512725631609097335938323318434982797022839456077689307645444533291384941675984781439432073034945782253138451667222942348625095340631279756159952870254775688901852969332307258450468655624775494020642032297705121946940008776466505113674927331917620562101258666066578742908668875901417941385922668914885754359616930239044966836488862739385587926472201714555101109937476655250954048910398611307735575387735693302413675755605233895263696036114702252612891570431062283160954373316937330034469380298239957185189548986638160571236687576888270269971751167033680894652392516221573368625305718384634848791473408114528624745697128291570620120954086179796839847926368046573919090677170915758806771181505884643307590055114961678637891278048865436811897178729206435118444689246088934913715648817767555692797460994698162285543476192334968417643606079937159147405221883470922836089910817198390253250438247523389010609507360828041603389751588020523916522527835468889963578856494637344278807991445101243930696276696156650906541146191078609263714669604213620243384909006303421302949240963391708683241043459332660771499641959613498684207654845944549497717033541310271804481768394762911887327843892036201697554606925177863293200199965034554234417838308492940931320969201101516669304926444911289211420428652829902517282074006475114706842237144224050544719699859779292576229933696837529629221490930172060198298988461377634254195581107244596580407712018197511797289929770542403175862781118915665024759511530020990661821770660892075332488069079019182829369033171597414817566766133700487189044955274465904343736126993522510592505021755068541056051774694568182377405904419416832561888394309426478528562725939789114447736508293447848494363140135861898486929113232083277324781932630094678178489212496773548296209754127932823403993313981540442803271676443062123726632650579558417859510126709412871725296182709727123674717912358460559821848000304887067093599872061757778496471802489531088782373373354142942221151580121248940703873166160130583984102880462269763935582081375880370381912808236154331355205576824731784013733936384819711957048945313080681022214560276389894964004449471406844747564522991712342043294674007282334138754592246087258565262095247638350539112313386895388938426210886755247004215323085452018440054810240908811419412217554900218588254673215237948550832624634575173116854782047491913940324500754319915078047584971322334356200536333500911025459256705970518938780957308106926612279914702235883253279445408906358750288637429976383341658741442108755798549392170946378451232625552564548137112896682299401281152354184876008777517590134830461478883603427202097157022396830632670184856129898380020008803230972274990427478493305025317878410869876647902431428613412716139106618634935637640755238538872259294321773880192239229643158667946737824486150356679323623141149767814682792385836207214064998631329983773363549851408824167212233165999666880084434051816695430755701125797734055428458815990314249023709844373303183850100599926963361508683422820503472393042061704550952888721812346667841277416433186398630659180067450291825004693601444181458910607089669294967421570941141542711385376807700748258843174844244404052781436904932965667437685670933039071540992133053155395256607408835395818784816567054017597665053324104338684315271849130575169834949512922839559823105833649253871890031736541220443449760410462110853632206430330898984252148665576305757182913918050256540221569117027159732273673138822422840785717957997819432801292986803381801751271673105936961704651698806205190396703449706943196345045902734581558249699514320776500821144105682809737616669853441790922805569160465712106826861333409040004385917861830382878224721868013161545163807798020866535872769290265340240000417418492313020561520014420851032537684941204665047639285529260550510901489909235649064838200355912690357971266413827884137623361905377705363091006264353769487729159976714726647639547435774273248900775156661118982581858456838683802486256170826359681307667458086247055106437243157776633158982758601619595669396966064865513743536453073619176686141553146563485810283329122650461809004964800369802909508909172391150393598163483420390147182420372870432382136868127351892982168135921192791807636837472239877760845353610359116539449572109071078625786888827046078645082773077309352973797291855452603354316703899810288319236216812025422509091001728989222222649692990961971433614808314162004835746233475121474180505683282086241813928937055900662621075314337911173703720736814881227197062480507569581156815125659368818474892791670249574591958134841260516042397650254190126258787742900156212215836627413914558230199632921237145540617957605423487346035200134228351435182137797452734787687730112508181061886454889783533359728909343800335239993726064090938003552362626448279138609704391295840272577140613398424753244356277702030107893402969545993221890947421847605779469950174172148739524493887095713618825882865191349349598199983005750425343813911737199571394155366560037791539809059477877590432346570982897269528102749495365815496072025262724747304050444639423186293849756022860008477642410387738167720766848222807187812672100490289696971878873567312468727123160060095879643337195770455424888564572028666343073675690217713221691757740051591477142167846969369588936434059428471560451853213589312409730228234408587738068148298338326099112690841568608051274242977549082675973757390765562313090905387757278924884161034021267776584647691892950679770701870871438256583228844548553832764840002123238150185874769611196738545939338427768176698824900870357824322116325083626690456951939607417332854888841331924828258576397799966342194323370523418909552488868672002269601303012154765463856674974671287492016973053267438546785439942865440054074793994176106756143933004169278855326878928594063493953096007741868963074440814470860077371600956775661423854153001662376554428833797908512038822728193018488454859496475103274399372693426717681483833454221404917320176349796782218905714138001762541477663180063588497581191406884311100341150572794725747995819274133251009109699728904074402519043680971953808857716926791473752454019206665334312552531752936587780462762758967335058692898604504861030884977922805546868184821556899094643940347257932971631316174330782699408546754628136323311854888781643755940765770853171800601391531515037335263450642464604912129673404005439319698383427644367484976733434269622116180027209868161950488272533682775791324263424735898399268889626005031605090847721471575700506838523642197047932031556727196689905486936744288215529092839826897067652889734820890838528181980853567514743468789195732479390261921918956062340324684786306483709796139488938504702110774118744858678396298362039808330035435516844230786313435857312904300066763201700039479534738092319610795741296464173253653916070208165543463493764140645756513595959062919002932228682984971450205180620365012306696567626964075735754166716842631395847987142205277526343442187226188515193822919408841609085616515937516766926950160522161192484016969520576540987844842725877878466614957333587246636147916930875379131095101728860285607260353611572624665559906283024472816709659454864146745217612515080044306751605323839545283522483738497132091277348848676403731152035778688927158747687866526614417965735602868822220831016301328143125367760896647406843637564633201752811262545984732223123747480015129775101550942432020005214508600886339520036743120374056719897748769224310108725264075666470375862076327690843729239648763743912027488683766806561703495761948367598690647326225906408945067915596494216141315120148981809658602703972971998373547311523302832661885275714596288906240694960576522948545099559244901709147120762455025893162447573392345789896046507237295289065915965270920951923100445115985857096352261509461136216451937947898129682662934609896439979257197630186979717395234584252031704458769671239830618569095623649777913279695660765125092669440486439609934550988499812900847169370069039411309685246039272507622472297144700363510471002190717672637761868580654050531221542554159808560619007984956352037890171607703004881731819319666603306056932721011059414436893514422117626223068233296130603556480199531814673008519177328168115638476268111803403496943622363778346858911642647986476482231915664065552750492842418809130254179741358390552043057329205791147882418566856596340503784638475085359156171567612341147022775224238838866470697098652947383736225929321652316421925342493467417089761121350004804539066495276510663215844634404978241860497678533049620741686448255463907477267660669362770986913000729014183313100488305129895798376774586675698270777404491352036777428741084191582645583499081208732455865988467011700085233868672141573980912362124794157927703408524252421351915344304000374277509077355069490131633272588347118491176780506190779889559757919577906165443569604160319226718641779189403902658746326099874026217799871929503254827056132933467610344057292025589143391048592934108842201430777385702424236253552069929225801160543991840442832482597013242303042835055768527320486107291710236984001836102236867678722131124392750287347022070651251669410387639684483985519085901979595859562890891655649255504949469342058247680627579705918530358883436537225235316302129156708568770208060295653606051275226743016085751049123013570697775747317844181565144184042501655305973106414101809519259945252281093318623440926271753060591835962018043924528102891070009833961089297014849405394645913314565630724449794337253290054778662765549088858642554733894204654077189795682808341599642864716776262865887712294509836354864424940953860254246817250480429026669872333868455212035092516909004269412697607132059308018317306401130121681214064676516137647367229272873364474404820323819699719359710403930143846726158735519978266068844643328277782958829131067862040418841290609399160812436711278613957203151805428213398049653067628089333729177452502437818997065858352069480411505707720517002230790379972342585095058648965000614551482887538557876289881251752997455675287436491672173107796318798058533913409272098893682523378908074169684213994324947655518091386979247566282902871938846440721211835447464994861979138140159332201592385512903324844990800437127449712267578851625660530365137804774343562920624587201988994660316482791113972085258095358475263733509176668496740511998565146302871947950225849642109139300373727146744136657300296975105246056635569708201952852201908666219890862070900215802572520859367498709108538721680590808650094834872302179684927732312509650478039698796643293296363262378882323391554089342929037132999843264718904912200877501736095638348758035616814089248088887365947935135936654898391670869408083502409609011773896209341493283859454357217714585067739266942839108827529954778299078687521488203200351652549818688856235356712351608559573965424921717429038838483199411985614276314943342049949070990955346943419516425699395787116546581889630824267931171842312437832183560260293772526623492880199817212734113925822395177880457549833769653275056358672862203542312183403923223361850857512960877166685041805772397504711660619274989174348686043139558947692888413537630630851133323861206887761740083836641144430205028335622189471564506879769988904431573175760729948517387589746255774037989291547144167902207485677472672325629079474473070257690375387347038616538465006058995442783605166844811774893913593820913445576418762620597808545662487496319923180566782508430999025569882956682447190393877400217101310088694055417299350559361178450149102957825502306134707416145176015112358956779114490900083591987318746572935308950264285924063013483091585766461840562709712367624373163576438439916694100791476705669800592536652610428737766879745972050022393872586017706731515433435054192439041250630173894143833680744611812623630225775847905322848748285030659726713767927821381726302582824701663035742642196626981644944704016937414566121272503826066704402611225112797597065066885912917983796356702438601789154706268090139627312912573167454913453638738507640936834296036622895758541663276431164448170922944532191687844668706042106158440358547480448869373902682959224148815853280549964608198664066884222078906355241732755399927824861424624534505010051185722218935342427152914505740343308923397588448022982185914333792971939696239513881777790648722306754729321951673466746000588130506946069418863330778161617327885882298233897958541692734994329924013916918091626014857833279705564906612345624735131074990036652854898173651557340504764231501700094036666045175434307322661269451601883054064900223298799668217822679898406567318732462027505425824769021396649430622016884926888354003158076116472069246115607132225226504389294504952520118066526826973349155536227414736423507093989253552273830701508982170236474682453911852417800495830287436842229871725229637503215145342662943657832907631352375157784942023172384378602731287714416439016347824853146376653187261244605022502081172304992249889579478971790987346672679357674159805280933742863016182580634873595455454007067037127279282355991862437968983374907762507770926781538064584240601480287405073270526628352442213910381333907482117537291436251217245589936283449349235484745797398991751656149199004155589600218009872912768636697352794916243828428720882349193396472055436367452789977467834600374995675534922544166431007428694666627076245624302249965833805970691704005501928284465182323681830511254756755557962446042131096675734645198590953121450697371584003525305878940324174054919384392540434683571851271391406821041035667343997631170028384081755702375340004549108368092762125295053846971005391881651853559117133309987520043680752560235860173242440018875338215246361627299544493758959308358130933026754038903925764426772941510407203638443391842722606149927077776703186037128470208800580501712652841151091079268518809229208567402558774358063478676553084250258393318399300170503725839123316243549205117567725001496323534793797480378832896117089139102494768532384370105099084031184968457667005348873598627516418281742268053484459742917937481543190425066351056859357925479074648016932571890632413337382552540517738084104763695579660056582953312169208646484643486750985273442612423026707620976016973267116108826100370613466932984555353268203661670190680041343041347780031057611621567652202414199266850572410646107101462334773786238716139544315549831296695682856041787120266893576199106103779533689694424357538989503859875220964823589781435535571508526588190315548715428333391226664933255102160785405539682175939577590269341674515978170220660386230395336477751315591462429432566944677156619580788638889046700425852961122715583932998343245242558502429005535790890349572252688442226290659152892182983458397586331924692262861073938716760170276238239218455099280316672064458143219892148581258980228940574990876066648361846044300608655331423042525721377586260732318326100130262295870802003460636912766448557579314864987911816203184660884236545435041997570220963577414568722811892068600974576969166503505517193338637047757440444017529127015569720060662220359920366114780466798914340284957059880813850146233606786463578895088888266162716528508417545516211098697647169929638093950715069246948143703346858103613718676941164740100171545564570378860399886155916387417121213352220623903515042849135928828297546801890793280493221304199539919987996488874646368640568132708380596793903406445847304083853135154691062694548370307387433653586582739378471776195207590573644554379440965572476906860960605351253507849409967745942546323429930281469264300596446027366298228546500200552479571125008466972519903769765515807414834352085370363468907523819321690761697925995415353075051431100677932196866456017545083838292262165518088017957477402474805288444194322478621323550269098168409546462101022465139217212439914149538197035929939458040623425878103018920128633580348221631015286997177752133407127826883322477570985194204253336560906035916261700825898114023275440932324707017290513918803464997581809562156757351287368818292445200124852365907485381698635386194475224551927596998658451105091679771955491237632978029797212662510461946726157928467129032020525890502305415404052272539711924342863482919983628978873345105122032051104569078850062511650245184835206117385109273897262570510090780166320110873374568712322053548209150345967140449843266492934735279296360929815551037213031333740042748563082446724160556448821549945249377405996831995608650973800284832489802768749774126752903974848397066847106890261020999555020827463997152665340764322120397099293658385741437392907321321483966601139025161585214414124573067245598778987223416615409896896990815052169685127946718648032265740296331411939512814849837189917315093160834730086262397809875249577971150590458845269150062269852972372259927128114294114994796641226839492280161803444330210400344102029802136524542223804652474445863028191496887156777090165251939522486319730642623758085345535923834218097767998306991802376917901762675138448702659940614326150685437264565054706663799271810898629547321049491908306176385455707873861276304708647050800503816004714847553687786185040778522312308686660080773500177625068453049803816392414726849983947611567870137580792232857038486790207421191335722968755214950988774045777762415939701094637097766868110564506071013056193805033285119840305864286773773372360099899077086594519321982272496223923162811758756706287983432993226763943811308915502476258988423645714626172922155698765255806129118746976928759072497558110803786517101816184527047809178400302382704468005882850723105560654882808443511936064955481427375437297509435302047251098599278294208741753149335999521848713068547008061485244136597413588617725321086937998215566683250598548449722542580596806498418394891508529829860273155877216426270281609098519082861106776803386276982780350755693143240989191579577491978668955573219690749174002835069186639114052723643789943915228301603896531396592207997777843587525442738565155552540166670285953242965318557685572455291156177727437327562487786339879611152201748393495157284997651894380089224204060352687231328908178361332426202647304737801024279299798069882970531373860893781991592108090983704829342920529220905428638246077949679934520532074904025872631768673063022443726366878508008475587454044766223898321629056873227831161329726211059947710773655217723825809839560435648921528556596868400062486802593931776856381100555341252783279862500252462001736395204358107217585579792994063675664278933385167311291032224709770108774788520533143556490816797126006067877918960266580414434000886386519540108377710172457949955749593132504880952324099823033824028970898324020913264358857322984520981887197762980369923340309011803339171955501959560420461163070645404035257509622928883600126985331743689280392690543668638722537859893231274703264401081961331263166595067203636853174750506257337723169356701895243431057429332358873836713287761839424009829014564625050615424979408616990299701498155710077523209555562007780397196250520110021789498117186748166464454994267506063825459748214037124441232139425842160825090509000089275539153724332128444486901224758415292311659027137026877397390896940646838159495455940570746799480811147828501360432668177447453647621025870148177823428422229655703167216653664042350096300194556508510214332345162970410403493106910469972718187204464677876917810420835855415043825763263665521819444761480210244726988139678396364622896507409628129917801629465570323348821215783105783697454322065822952533765905522464772632331989369694749625575468291717207016048807372323091399840983253462558547350952118628054968442434758285673111836113556788800940232087652016299045066319375867308438607836230873070253251532699160380364010382045522752078421059021804606520500593445934532806549388874937817954823549282221735520618026483138102701053534207142436510902798552905576110512880174563552448407578282948998948596172696557807093962450718702031061735091928374493986358384431388177198644084936592232361965581024094457634586034813700371494503722228048706806310566190163629888163304852391679528249264036748020616527245319770838334704284598510371955164416382087891839763707758945820422238926488968220621943496268504421290273111907964822175498370365268592962728715792938773590389880171583945548570657496915989000789757076464273544908644524537981621042763624620824597243807338954105487896289496021177009671725987527103647089202593302761655438313483261307048648696701596675336946272445395145798034440082096616834870992104276170073143642448340495973658190874100919629686605060411413059178226057006836042108007459721327511270646510409008051350694346726975824177312059313304441419136858749163404446128123033063321739309311344436311954588786415859582342738895038229328432516081602523688480833867855861897703100057899003072835923558674923989705225563135240234803738697298162704864911273496222021963813480068031023165504349602446509000029486231759732000630917277824699639145465231526857420446857244690029743002727672470631889561758918080583096667403863813817469531838385875854221735670833955140392094187076104733008136430847683643201866012052278214081719989930489920019206921984657798530818272251240472284414077661190967095863828113852985658320528876166356043995880865898659975279360110238848522940897201042431455856214526897133959112420104254283420274610118296099072832725887692042902917490557560776064711756476519835178650136266887034426659078433155747271410515906192993484969683914393380370231424287384477469892491030205335228316217614407011997146721433130979496531036803470051288340718593297227698344755583808577724275515698843220427831129702837295924093669500689810502203774630276463567915470809788739994253206088972515982855028707412184211196980561469583058385511045623741871458735033728415878552972791580162569495022460756497539582548134480495650510375505709167887417426204346629782591008778504182870919246974074859849450490877771873689154106778656538557976546985171085677222343958807886958572903984871726370330368258255374702354831940321975224105667080156964979194943133767612489198613100386329563618285842900772402235604761674991468017328706668673040567584709027152577689952473080654767320735427423030266055027449622589377972592639435697405507080948650735528214647262435613285763829446933170062574361896857210800543317829497647888570418851385165643046770104311726975237594838260609941300415081726052549713323632030466358006225188732936813301146110642423114150875656656068176255561526839676948850564654494239109029050991181585371257302254056407539597706537127012934866246117267618687942925957484144851114578115328282148298452120149539460262060709808068310140453894942718305160407622085369671471880508293675011970300801325653981344573434778673973855543729241216180455065262989036329942495577079469115281489421548847279517049589259676378293724601424022954331969473999051679003528370747078303409589998686504016847668499078687451603320084067872413096962556848852884410428943517739035973667310882972247790174023519619011014988672672853592943692135114436643356276248330553146230833596723366647067639128200731374126328221022530078266568221213719968365097886635960427661218808155702229974115743834294223206968340265086586862444644701176052576541255821647373734068888497935872457971452016695478806042954091520646291466598563148358097481842515707223879151967401727637342344920615751578579638838630431983946466352982855753941731056416641031191071056882621247350986237747435013279874257653482540980083005940766280389213422866202222127198599223032550604681141828989478438737116162110055264006167958905646938458694368881731978776704105535910362446911804350466167672667989514099989070994950578562835667648352838650044005384030596961901276712087077471605010846384618945872114598507586726899952345064168298293222031977422891625676369551824111528043018181915554224873956144879741109715936534900276917195021017665879125602208844228334869324496126029503981433655465113655205820959537524978208806716813701951597068435031231174404699847525028967574172894365153466943209269738771107630881303575685319317668744743053588222983871347550135963958679897698119816901534059664783612491698683545650483974954066873689596561569332893747307640877036687508225238220489830908550483494402546606898173438384314592691882693726378419664030098950159270392731809669984188761137965958475808155793052341391806493650823119036694902794891595560959543454669296743551491458930663600812402049476277850462412492467983514078661711708947628442784900748160740652903877270987566572406105115706895887301029079732360206810683745075973380643997323473226215685357648479913570421966505434960855971161941470086490353828078395251940920183987179941164534342432193355436301684997134498464581146734687605342596911517964273127553932263176012863789890716607014588243951067126220556269756071331475472350365021290691285961801433356130977190314886691043426193250325363281891682950542986949354755517522362775452320178541924168204610222906767402606621735962390593640005064654948570289869641179717114891233174650804011418619883345915973084932123502316400397292344249983626620307824384004607040415106964703277415221847356630395657739505559529613208343183493984460787152002749947666157755088948395008010632357925130525954009422381631168723911547728398980554172703843298453515375770557591977119762320563227417236517501089110178377473418041481010837514198823866150886109657803916943363318434430946079614754532079465128577783031166975111425116141534756534585927283962406806254269515405496071739335795722774280704323010391976303761845442563437465965694331046336150453345973128599202213185739102051907087110247090101949671936358325477455467950893844099565729504356239125698978267401478006598494272070228301033656581600030807747313795128491555065098107812013724764903618722173677320052251522528868624596482573452350211789659957664443891188626952969234428617535905108615072081795179025570687437662834295785141054772954279718671183313210155194288371111856121470684202907191900732336925767694435154744769870103171197090661459884744757077726455797683476860161192493462119050207797926054989498634379305060119277949236378449774377313765957928737771097579371304719906830858567902487321896678752030879442212155187789619498300638869597092950179402552880418267901968555398448267281244431983964012952119987446617468896872656411283388520164678969175883898443702142251855008999590495875425764724283731992452420091800934854967493735096180157122702128785631582789341816988179819967882995572331517299383946891248645384557024399638852675269721778156248627312319610528308670768056023613350215310319577690210733122320940096708492624264696716603261683643315809371812291427243434668677458148876270085613594938149240545117793493960116647288340471402670410602732563946983104813422568514843421048610698926690370230553905351971131900455924543404678909412297889152488319977072930041726336553767028440571205729606901518825933898090549784892427197920210004867727822628220126607081634131621777300657830185283135850001056448458962958526834560146741308383184091187744194151413950522268842692384642513784807522735958683100623677962847373048246852738818903632188139768719046487163878771253173320313420735358030219856762010084665308738405805152459586875825575106735892498736205065159128625222542632717556143276348687058303326833652139716667077987447191805698916925065836422846120639933247143102126137845059820921040859441041329078827717619226822836927792701805013407016002010504420487473431642307045182037631314197394510559376415961402064720199927534310131377578687461261345281812640312529742371962321384623070431041500566328305861259985212100947789056444538704805680203373668480860529553638761422016283860234566693766368625654919306591532833309293159311940422948549365164616149830249797558160335952918245312484183282789969759964965224430719472290861341406292317867982295474629732650737416437483317291206789047383708321631501144282476315887079054751232979323337459252150092857771951607127313606510296408632349098096063935217562113752368497297152300585190594383211700632018853685108242820645872094790472758091408827564645422006280723637086760864964048342468310015933710752243714188223238953108366969291966226131111889229062556966668962114782598749530755576682602496078090781631776799820850007336328648202694091467376154567582755707491718274931377177613180893531142946671191938471716543369919791747047012401790748361340332869593226872262136783009251215568867308177007623495420106913206361235256430080538795875937309891773971285573136521531192833734629995486661926397245913447847701630681639110886119193016617719074252564646915877687441778268749384963165818441033245395068607190575996240308708622572526172055671335566057258909507866768245090191413323260083363166058336484790643600837197749663496658684392980807744069779453409628589311160728660804197458138853285960141749872066057820056146553435915898870600895696317021123336672206896783880539914808446130601741197700630755977998845047225583600056926014746238917224581639627283483028847035521509129857458145736689646704596004733063179592933151555303867466059757443364558881257228541185938645786117562483372057416970708416172590800876558070054658161652100509010554810851434759525821392556242027146193714516899714080163793179645484715417028410888386270875053316563595263438949976333986242282615912621471627114333448270511099551504195563620115410964827526902587640928201829694369114821649926717742758390048492432753096516618890021742339021020042040117137220247477914906244060872863073056982490982047251738241504878930530878033380956539618378350822168146136543387298313982579616289516875078028419591276394175687366561023284328396202899568119259644148245385891467835291042628646535063242702566645647991753978538133528542346642519353034532330122154297640727400374002586375570433628515660901793047050634026835896329892846422351935546277252612251664838340735800343939499374545068240101819964666188378022692240849872267903002719856852033851078003150124559846467613717931958832085027029596472066997414856417619101357552457206823686451059858828448550915820835459837766336349217408401078660377879302055150773787563811846224329385460666938133791028670057745595413625011544048506837003098038801365694513940753813770478682669963681143680587789415495179483597434948281082435827621865896921302503261468643822142066765921014352595792062783557966624140537270633022694103434550738929908194654452378883421344077959823590335308522533257748837190744836877822422288587774360966461118657072241847023707018543547804219275299290651957584600162958420561880255467847485184909283566545958489127444712641453127363858737429036624827449565039257960103628611590389307039717871971725882238274256945526272321767999820647653661370740179243515513568710891729787472976745632604161612221949275014389981459441735249855040951384113541111613981265896714737388358940228546639452130872820880967959309240297636289443741077985337141275556514895569727113471821877585102474900427587202147828916328150090174454260911147714864806620768208363124498833591037011771460172887074647922737248077402144854128641555905038827972719013754799284672194922973908561106801886021707398594079616024524234582601587822877408042598394757058117374626330387257141914890272665522677094938317199245105201822544423883926030807754174285238141606550531960654143785088472397855164760343114353547528963933357161273307131845438785875083550703433794150659248143908704144892804192692168307395947635605545055386544230165557747821906663589446873532295707670999505116035871227093197532735044752004637901935395856416150493053998522186701452973398021704713678816451124708885122613719995547601174434661928907807259758156041583120952630768627399557488971051253362948658266970584967887639768407051275148959226213986231428854693658792251745246607877042038275821269795908423465227754556768354432046369385439654885555795044320363595378878224477172857573111697417704749482255307244831726284582829870245280462272005693920247274728113583727404308351049242679050122499689934446097243068566154070299049554093822699838771224614155684631377845744277744395814738304706959318470318154490131211998973693836277220353199127463864207086114381757082264223550164857191612198927048567178423072763425369988521781822868384745052612692833467152568001038957272694286094263328030570862648385504785156479309773791788341300978633145892737530775767506623772656421274644891988439849510633156926289364105110150087348726143700705644652521172150908955862064340849142995320704955293330146271942046411673072008591032376882207820533307660182099479607670987425068813361466020419763880122393094386127649538977299968464095007121559535291704504505270831159100188780767897207044637540203524832831399481494289054440089657466437307762441062621122970906521661073861338805239719588293512072311297916006389464736661960577363407117824387643456501204352561787943793450506841995649793810367726604922350214142624689592839592755141157454576173243190469757216727741682912386963408884086324127663124817993659539165936672902762337495481252377756663315099490738351846492250821482235483305114933728181739740124197404452762800653589537680096858601057940671261225264907362241645529414871767066877244134476289271048394559388540215123065483008527318844871846077017572667485599411263897984139940407370074566327120487813825184078838170617882923623676817491882346999572712105300183796242002751741078663686096770548587099848090653099850608574797903324869725175329737438918458321873566189480032161887895873861370618480775736836487411380817445883627163073844811208306242967548487027416506235135182997835560837397719276190319929250387448100863085383989533079681998325112042327004252782311707609640280337721185729462127981809505395830933301352585292576840830313081325142796821737391035147321984256956954328648320582514997745584693310340613441318300738202586245037371180106306413967196420907547348723508694617072645336487419242257367064402351329745962279737552358822484040609640810713579003374597006352932234204060317041892795633130285582304789676892050687561756967907532167748481073276378541643623573213142122176840531061467167571739158763006033034481503336605759149948977108028084283703790767762707109929544664097564599176078616882117114104078713709994599821296340287618107102971142359785046679360975880240459352818352695078519936088769150161809034304860586220887714737178036316568477309129026508899332143306090938507755947876000397259622475461182908268058643996202735215264470924243657239988311788591908934318710690974889786181775318080933641570965622497159349605797054757956372330251599442975260887637800219867947383912129455632439962071407083993327950936947377166149977409742656219415309353499542210240711020578425643455694243377853081625463176407110655432757164879787181388533377871359801878024469745337867988419855455362871802680952336001079861174830894902237521250757925910944835861703675148036845152068356138754248492408911204464677174639891826253490290477158869523348896762340636949474136340980365696336048690986498432134963102089694559777371169578108472596357508417856216425196074698657233601772744595005540931207904642215095677056610855157713272026012392914398079099849112308813219165616423815971394799326676609793812774064780711385885394825134874160642280851892901414099527632304194884938492477884692069232090306859470140018602714673438212204555230549061096026788281629664678130511816213820700986460380492797586720255008608797628323082018752808068796484370129068424490786523737519633087774674782425389388691613086604314662764611122348261085218654208581095180858427529860485817761875045741952098492542528313657746446538336116962817703739784650095468060857626861665752308880580222552907357264848562169389215106088340787810765353763199193352584349119383811076388393087563147754987028065829820544484610874640272995156429128223220553886652314206015602145438549901049595760090857177910136298459486169668526406317251295744013110454145899967358963395071906887090919564125641175641761308672270565278333360131640621453104263522034496526237637047503270954939185462452385365221139657745976259039035830107733263827739546569775148019938157447096241099423923523157026431278281653316884023069119543703181271955197065810247454344008710260203211842620557308970474717332005813238033457073531748980656557055543400475102453025675899378815174867389086738162667560310787179194617458439367425073808091630695305339863985930471879100245351380680862827115798472360384929573660914035453724173352079382657135879303336617999783527722398622552836170652563611974900810257620483154668952789529076829719945676667202066197153739285571698743023607524541156634143764384341057484000867448636339437974198744844135039075662188737647404903594396655135511458252221273227918546018665442726855707362054329751790933945863723520998677746307912264288539114368593401878593438328385677795480255368868944045102828620545972307089468672835718602082938444008587425760105692271488762396756921355508018054823958890361669279288029377805138635127010218984384809264738341487373858762291375462760774018628782092929649434285939248043789834681878704787057885901171553177545658197716837503725605993664381761241967242701791715830733887236392150964348992938230388438701196356912621658824707538957518426901824807377518188027766087336559223965740865171486295380949944662773248718399173550533159167278911268555086114036225144388353098074847029430201528468024438956939777831675369463436344604817213438801845101030651988863239976552872747125618444694620373096690969353598706599407148531916593955733451861756310038228142004399660804214856162801771149709368721827302742786675455247231170122531259178688671545909782693357650672333911469407053181963827629871034920419225689348174584711153242703654372159312850447130616408751004593528006930060119605402236381997427131831423583520499378075886260476058161101446383491212333756262799038472498902176383025383094628984715761143248815083437667320881802135054267666748549208104491281443291018341840979414025640029164153410441197370495831695236661218434597028810175016249373345312183223144303392989920047583203950220162953431831988895206892293119884248174743773747377475322450860987411593981827560763109930241000747283452318589936362525815339058305731501574097666789192990569492178683483781123223791139600946753721179617431256334468415692459158548892520823905051128627786530610296013931964460407882898775168661949196400049379801960395963133392719483551988960707575760846134822472723546987099151047428169418769022275258409257447620457954047864141009359037960327757630770169134248089232265053126658817784386529897129571320767151536372573962663029801776082094601565243366140265933276342526975575018574681925897073329577457947011535804472408358712205287064670058699803173625977387015188194904186602855892003653303777570045972377418832157062110349608263401585072420336198543853369134338728008094611739443176252514258578706976013426870174615555203812406517129738190550878173648849625778998274859988100236998228437626900982290457173854765626811721609867459394267901403109023967592149473542141847153234308845303539976795359148193329639349682987271403186822646764136068115735512568900666593790068142445452634999444692289907419083687211419130425085255616425706788144120770674163460691879529280130280214277916560883632949111156581941345476181666796645715689013570509069570049529590677974516587503245181417599131756819965042007137145746982340129809100819673947534666167562145995313588704720878992290977226008863117318257130841713747583788375028243209345583251538961334865874667729225457510013992783927912101473768555672994705419768996343676505851618281692414824058987570015508563497328272628701658856231033109192241022328353685393852486208068228666569044425365299559945461839298884548305449187745210609545612897463418800185333367893328480810739999123743706282483078079748605496107671951298350752199940535141923567797692129002449517501169684247270487008336907767112970277232443114144704694670948885091802911394410922843304318970834194662205231740727026717499741917931963942230881155263709042583923378523961259443460512508569075353392702416196712450997239490198444394961178739216547569265456594230067450907815768558617478273182871658399824334993058337255690764918977138539522453232588220034644241531119482922708283245563823162942444018384002659515299474300046734137084732645069522363056631169133588195572834115276150028584022401556893161492436263298160765112958208780262114982777499338023763306321585436640482174073747835427693851984656666119543507313263736017110759324142374705592412948264123612173079787678251516426139966673715622848048295649474134239105155063711309039165574080800418624814097729409026053717744565562831286174984788262931122071818044710293339141650925124121960462142233358495012608057991213071183047900597016436291052624120802549236885496921829984193859141654879444716074151336741576914458465887739765277229591398586484049074711077879829995828045277184173886201524801294481535091396123936072799371751970994393032463027647779856089599796240303778560176364297221765003384995525055400220389745000533670869036220535846051527692516032187475478857911963684501810511011574444868539307369128766687560286498105970033035686759867324288705329549549565282418873178267943670292534681739240580021900625501416195550452604300894827269802387284634983672645651076430205342671948053445320435340285224895187160444382012725503046363616172980138684943942121886117783634946484454620350673295589894972134489530330424186369776633944839248455409984771731337331133949135240860860106294312931475309722424991489542406869464445519096713136208299513171821132599478572986803812076031487285556624400003041754234206123896942979041757852914497687518876231841444501863408304507741213052739510465525997916873797000924206965481249336764621286800690729966068081147539616551014487942156041912324889971162287683839590712401322153197017361563692394128213341156884437319061194806542454220035815241154336610891659946924139966830275520871899020124113210989251311466386831758477385630374046988826913570891349910753204807125654911769571964572656594797269756980541713802211258514975004220351156443515375149860723291911227355233331833852161440311707074286642502906634190314993660498367043131890340476189580790957880774586479454740866336279232616492101417217562314484917164280998037309726643741702652033382655414872790737526427778017731420411482044511932701841585754647675985112602646774495241937573214664262499006669970435525206001352769648177103239533238842232343307231756387058210920431191673739686500108462307930333230037582165771681987594350374968178001316877606529005027802852528794153915726479953969915020584242933038048881129509042799853137152502734646074777026438957980220280921869488204791022334987241980873685660084674972244089958537462660291588736098480430432596172044789629572419967785535136293026789777876220935704382958109088219277442747404059349331466684098642704922089177597218999689804036221218606194453150894953416649268573258649597343189253732498617498968127536810333882625271915205877502349017242020872896124376658316287914579014960173005243832694551864092240397920057585135934259857473526721973977703525335543908383831067161664133237547527282539254849726768847381874203913268177167918034862232850307493906942565066492058941438174608272721601360238972755182138239796618210965873936927224771786722420422893810010595654718474645651886140381859798817078499909756604627966095715192537815371167521852604585170647040253994446574394135017264551675425591301610093133368692566240296351302180776875964430629655294200833228587181862338827760888823863540921480595163517695166693699435735305855246171765930832087716514326441672132349415068759852851107247268178780559581424962132941167691194785963251926928497471130941838671035189666677112355532677803007160330160319623387030109784516848740031840407502371194651334707792879065137533753151997325087664464987153882841048370211947530147381363628401840280268534183053872069113216822706421210718424691146248959361313451723508524615080782381310261107586551375928989201603913400726768223417124608493484581264804025427453197493628369396351298629543978441789659393305473097866843068921031619505745269674766943989904368655914235943223827736406193130047429976681813784793011933145405562044050605493961796139537292256510681566492463849078882992359149688896846942269407637952801294609533008958626322331576059536295394285913276151559484608154293711688430977960083357382211839370177224260886369293857824157791611169147871624281604274331975144021502776165529908446137044018443221574603032094677276130764261790243655769882554977928796402096177216886936559347153484006231597685593908362004223702092801286910476953734779221070242526737603459488033647971892061451516923536505633592682813642813429343631636021392089120591101142925126382716881818870985101978476722616949325108846680022358655706664405193650323595713971505888555468970538596084956740690931439069935190590817528503087399847506320841443746348546586230982802337784311907620060648564697932466776381369784596475578210522796968473279812870515851112488653812692153625599026259743382966717319583986387744375640999487705542455448047291524248749192001436368128112042041858469271040341530552698808779597788976224636590609567914992353370158338597272462029558527440676662480407783557874411725536742698764110240078840207172003393927473300025465300201051298774520082838648771738140791015884450519268873532228129746164787695194182565934741154606485452250877803503457246964892845810145872662315367701938164987372474579767472668999254412223606186661539683117020930989162185650256407249229064295911928759068704000833617447570001738860960184757632904304335054810439044439755186180165799007558444232288544882514314794217762677418910911399354209553326202655861839107808154403335140529415326975133093018125635363028035261189035353811089187656735028334859748626747465708990621413497262246307787417150011371532686754782887737212357565563616161913596087405804645635750398038185478343358281742764593806933542925026096384760978984679217830111340098399211006816844137901919756899213116410590367366722110072148658498359382961761527747463780030282456031077277244538740000522899375357747130337492191912977554236446553409454939104867594770565171103517339313794396089050600146590247052062422691753443898127374551098057086409895046538504948607594349793902766820510158229893152462217785498630614403825878325399783221466804731127101351747627354785005955204857679356717413349589621121343717215945090184516382637659075397936882989800313887907250893883796912712681582281924559117132684999147029840602395219623441724572196488538931386000597756070316112243906841747616010568474680183366902210999163886007356657368998908616801175968186449837502173561361892988815005612508456274926714295506746061588010841393908790262811681635824834080461217858317516731023376153690440509256331787593391198417748326112519755800712554426453350101696414839259127951009469250265276657403620264650912201312588350145855226955549414037351350091095171519171528555534671236635142916828283466042222788296691388700404543637379440627037119024731985165481562513840572851454339180031708850405868088591051528534513608725013686242014643727506735681552301154217082579740739850379766521897693190747782268206180592461750245017760713912479479641905953190830475061106856772586344694638278053395436980123889107623229403221103448915086455755853374800274572843658318441051750707915069840941821900220541461272516641691274321838801092327870109387537862066651122296003941308890216115084325045003232528987287045072084954655622277546022528348637922180993785970206040567137453016699982963419433081466146176868050759844227764503346239217358245077249285575874348759860402277679471263726174371172748426233358523659651831658053568404114025977654883446261804170759107265918850315816439152904547487827928018697019414952721821650784209420431325023395415877033040515269938657567854575099922002320038428419612045229985052431544142018976465821892491554740203709204953643069036108772459654599789497612236550555365896035979243851506154786892449387613031720080729011349025503322639936506007870949566510196435842591938502570531598668736746288846885070421722321027520681716990423174707113741197341513301122558463030831873238433321262119033203576070882081941568708523193452314879200258559578667741246084314238562480528394261873407817715749685587470807489641406830497694130817234576492727736134891691348998045977418233951309284927943502208529188819499903255838973434880574327128164680300337715697561162820000820478904415230036866799694201482434981921592116268864181600310868477434016773422371336551691888476646161055480955183314610547470599836045363688491576200193093305723076022962271388820706558066022475749710929895356273451637569612195149535252485871213588312241755946876543878534814009725938595745445786223410743275728720650864581518352578071602984814154264232109527335715639851387381092053807656267594610815905046363881870651847048388447007417903163330619573156614528216811077935268694840132185269140251442149993496735088372705963784755555428539019250734332231290222374122335211604126308948046473698229828234384391659288370916060023668450194133970398963479265799689948713858771460512923343097571895193299233271077427244776554131586460621976131183321301572239847565002619316382387339781920093342042973847195389258925296809928654362151536994526883533132710037847831641634941116680131981168697176921303346576481458393293414416973602526527088782074115340391998704721471608653893473856814562207332880991000867709999126000910256545863155421705424000379653568936617375765649095027869563868830207914801322239389156666500889073587677852241799162916400896939675170554927699188924282122690643645075634713777801582994341636325694051912206837640025602487125229353128915568300510311215130909105822356512364164457343132689096129019360704106768831942460708580077588677886703319755201655102543619701882819479307992992179516159914873451362452236625298765617798838010700484249052325480270058107961844413434794977523288947709040369977371553633396213737508402361966516599160115556742582977559190153558672108032187006029274566888465267702911104081346291705013639891939512302087122303639972220149745688626505924814753340656250823824323556699959501131019819250167138524097471594939475305513471600360196239786148388979087104112257440966488274419105854167286492927044200982399414825085517929009740553865647817082764461703193994754898433595865108387149342353303412845838355855870038431215165436857618927497256718520218662088193680756730723527929275910728886126545071811216098865569218521041710376531694937371090456096656600705164726931862097031160497762468606222348741400043892126135225644901239743046391976783769754647842419463237559358644080116420724797306174876345627233601675163018882526065606697081792990204222879096793358268912613553974384097368575317181013576573941783887829657728532917110139832726801733421253762168163898784515539898274646880626198736992902167860342574819353589976103807934785323480674867648842570804067593741412846369333356955900306231278712454281336713153899346587443680151770773580882460247068802510902164208898208769608703983903588953484897284758974629354669509308791487777235463985605135332137793440852452767158337551963678346947399383436974737727467775291551699612857219362111871094441346060849005478401661281240721051217958176380236258348871854454423095062717840385449907658918528506592833578025830537223207443447680647522357593743816823703711836049956313863029911753593862610567345678798223280520116748946433257947186625996305266889745717093907937225010378379452707138557193150086739065119849431286367075356101465714672008129367778012033204798097202752343320653893232579431904687137003593523345526350343906704010516154701384933967396055622994775856352024122687861088110928725166970688024259738535232895850507678362180644140523303852252728824247605332546242389850634137053371852134381843871043643705784761767008194536943102215632039842049888949231569362290068623405992403798712562575535310012190691818519210835434813473724852532141218621830284337115928046064651890509044657611087647823686868595907212175045828723021990802566611603021477905471514468385194284094957040188627150008763971464467853872573206713125379462189050905589829798506667534452280180419285187157805388507301473720392809753313605470844801013887306425323363256185129704799039127124839687326026164064065492625178553273898722898798696647425575986011253027624081117992223655152195707885033646331956320546261120647680281733027487321602442848839423509141150120037068050994894411262580438855401232027420029186053390852091656709673268886138872707301870662035246925398657711105410650471167193118447191165915394327783989235805633333837687918413197520121043658334675693045136010788345339255958730406419273829116347981021254630263033216161619213554480476231603991464111528296160844403786629409867142898100482431119111736597567372212255777463572621932270853432306880559284401286657019387684252274975717767473181514635444341734675107534093428116020580253476160195967952416766880147638737255092931423031869807393997094961126179869853239543999807982985700707008978242683112250283492939696779816276212486155076648000293762146683894891672208791757384029199141045692322137658992480096647627570019828471604009085707051377904104178965729472744160292606374822053862561838610268706504984485098920211386409718991830937506904916926703048263560972440714706591435700697891858471643388442946431465431746871342395634634758089128207142797590569595256660140191099061739772796169378377465518589571705574750705044298462923931182010112609384433958050890051753852575591992200331493794610247853053410705617885113786161339543867760345761238928153598174095525052056990655554558520764437332820879562127895009661671538217619051480773563066067538666165242395444451430461863060845913919872067278910589723403703059567531278293086437305830090428116162800261013802191366595523457148746787781979352418598338179949322835030849986248193836756621824023768853192901139999779727192609549990841747696882453822069434618897972922817992466406719925361252623842312330310701807383304294378313107924752497562391820568993012794035922336422381300790475854180997330868444972708473242259546903168208158105355553927335084648887829111939898165943163617806480006247579276199707144175924182039980162372384435489658223365989327985172611147991290400443134485526189255591289120249345765620413698411208941246012857883793255298539087431300793245890606363169403892088305867571766467123375812752052964041362906810121450089425600387869323441462522095521931026064049977820637666563714914485243557566385611358337097961394614848310837813794558931277140983838641811156648098403669101613838931549282005927831757516518929770760370796408228192593338752527309820986539380962553048929972903846010416295081411904821771015669300795894171800002661265234961205779159132415898436374922685294970351314887647756318555357977165171544153748811783250487119048288362100637418215868246072908669475921090468497802751916579679986120838013503433605029337694274376332241982220261515487026706284490654686855938411251172792090662596927946432819362846848649563674338552382514083606429834674593867364389700344274869004699817438578306323715976490091943089563474035779779628469716672158043465781366736339905324395867951692292641510226225183864457347332570572945999367505691856721546459888095683904221003596095078637792041581065322260750202072764698548778909295860511026358858536464256162023360694860095975197105839148008286274376470613637662228213676037973123612249703172966594778302882919748622934888626132139200672068315659749244625229953392894443147788744352612868364243104306405496280329244248881352543671887021680979113530192223066919024083608682028506436377597585793953790308572654960914945649542969593759034240930323768475845409987318781760008598395581292873138456858551271062941578021539616960852977953562849194594120494483887700539520274854519577943953419188271197252006345395416778058112416327748187329574876906142724885884797735717449238237597506882633106090985180276354235781396922215906012687539184473842004547369346377197722066072878706023541497773805439184831653191304826784281861197251296526689551590177856114226368435960184523907964598270030496295655014090633876425392099759231697749925775523415703719950814428104088257189186260174234055593535208908764331715518017786930197727994030889478168713157542814388410611051661284666408968576611517928325907429686513621090481807671932702362270796811701783070769224942767423193402459849915619462477406432792452574092384908187285926537089645177469263072734551218086713500838436000186940048503651771074101266834601470867087190772931494205337047223860697045707228530108624803852840606586055801924941121089294242131921487563626394838665006790815003984298733915288139745931076293313560115122909373568572403411168965934636197736531084136194523126835447554037308783568075138988710065031333276667460061786026398215291184897196142074157949287184970569664275092305914912990818917104945824498786974683194730841569220649056848466808911180271013765808234707476817174707005374392286309997302069878963220055149571269436466360436648053572720740360932176656631030115294461917385625055584696244664965915040176606990665704545496339073663580956887718315344770907395723393631424590730972543289015756578309537649008531233009796116751012000119120578400228908477452082671192375012189093691506780278793656641096168437976887136707027944180618750549454847145257598412901957056708523923729874503926574618880502248082573128210811107805021428035838100030880178381176233508307125989877113050118485822051330780075451373934531817867428408983522178489797945348849281096543586500883165341864328419624678006956252978559032848878191541939082157896241346039439178195454095614651186226964440724618770451769656303766027217824967600304940291322950812631942570787804992153744606156040300669349397714350258886370302321757891731373166006448886320100288227988766521146713541056510924307925650057692184850652316692637765496123711375440097180759442554708360035021815939799767137017839595030145187116984162741502817203654478915004587523070608029678481771948590670195358790400685605703206708086086590020968006310338563234401993857747577626297539943335248429613016822932698628338328331481480701019843521455428475187389055628265224241598145837212840067214356375796394454577498743090349719562064583138194974128252221156869126842163052354821319758430956251942529632132139664780452798384775954918784177339737643503885520548543392113015326238183092906236052311851528970167001706031910676357759386601090504987568550513156384964578447260444866866980406755528272793721853902862579053884248321811086215718328649051635551075936705273407189849361696411622719290118212475804790759288839136608472632692671467809484695592774694325775212663437288552893557699007983790778205640163359099900385484078704527446650458967814828312606974582856770350879359008571578145421594867660450428008304875718907056323945035256179821339958661468918128019717815655878473900201643821514762410065560674364275544763428860957978932880338492803705521080614395567422543448143358309205657696232658719744347131994242317932481504842573043757137000075578699328322276794913131951176619863317663147526257869489996219212738788167981442651871706779016802761636450304789473513460314709294896158495658753155685329541492702596275276997019311166393117822998183017777134971706339194321437117340991348311964403046273339970596014908522575888786545178663461994111913425150966143252714429013431766244474258087952907385153963936652600671472140868462281204742875966269075602933419321902641519971180375358403664755130502574965676441573729482761998926474142114666677595962423281898071941527567501268887740146508371666358555468804561545826052684145532874631886086570809986531814962223532219449790523393297273266498423811128982922629294375530565479582990277159217487163622929722675486956177015602367435422202877180741457910762840412964772116714933194413216253715734106698283438762952491284252237959343538690913433732977452206736089180332234007066325521522747332509465348841968900448492739431681206867704199259635758853402977724282317318048567383060348351351814653660897423203283685393792611172025766113873283007214312899054101928290183707458999028203668240701080893365158268099081690334451641882894247336856227732253348884338885126365837393811285910832440763002522322559994977350451820894761702021959870171443987533313872325625699827847353258796917150515938624605523235263162635421787721235711757979365702334939575583061385910455324247125903391664848393083399788518311083442474415316587165322776206946679056990787185735149922012629968226939940443552161002173216877541125363101835121948193524438677672722277647556258145876076194077104554835899547641121881032367182306144505049951755125715833910323881474853764524077042071665197957842932404628732859262532335323009310022669382667175425272283317436176110143588478539102878654648517610569449933103157020977359260884632310852671118404470449101542067619614382945399467085425222014421535745885416408404764966883408951259760119119556164295026468673352412470880077594184722545730793452873456290471984828035483467705497107105524571111477921648378548143589879418359405177602000941070361553375410678333044708309304850659424623590900382273247433097722548831135956103311078197411974209676641059479568654819257630201168454249292754289119373498609707079602103257297477224368368368024761931841071557681383368502671354950367017876712780658095910324331789170398814214000835480346315576983489681207253125157042071860787348261829304539382526868097151842640324019511939947911549129253415372519477013643633011767549500557916819536971824653686145958198980305025132631700561181154870929814759967995470808757978405555661944656560690587016756891216886927643526426094595436682573551596357505684491287780288115121777062838053917381029746379320603482523437188985949374421021853920369553317022164334317908024994124281374507729263498098346584794400283121703129256980909780416345213064362132027504007214034211577847255037686134232837602241615952962757628216891722962836617937997345193545329454245925663543033657949459213557646855250958745031341504797231027653988593633377393609941856411506909201999561037513232586856704936302308704952516682778424898801004924986948944479473876738850345153392609847818648692823868698882181256312600210367025563835359438550905714518277404095540307113004155965998699233957695905106187204258557364219114334229906794434271039283901779889981221400543137453867323621111064685277628663639348285971324500300862583310926684224627630192816615821865918710957604235669578942050719058033324736908693807216266792140956998708810725608699788686693881294599537114578854562273034760950202652210496624751524380036026062242138728455293402596252912861979924094967516896761115496220109958428506370730414556521457086365936819081408723684439429491295652625141245457861220049226294398521220643352225493976006792508719889333292739265012696391003019191140593361807822928933873624100982980590570848853420172325327716151261988824647503176906885939658316987305657744453603587467145287228373145533595403446470668148909864268057342120586475596864735716301032833085483909334640179823526455056784587924445507370321631782621636135936031480271624998123231721607409329402892093039900974733323564804659968878569843422254149668370640027216378574709685723779541109528779088707385100275725318939654187481974678086026203711245952659563659097622872694234748447148275961839896686377814080301977519701121699875139485957288837066098588908269183145952995052579282860215360883920640967593281166716653892461751184532884921419999560377407444170786397496571121959432046139408210554035683287241134812741426583903861140926939929707871484142860039399825732408827361169988488478626727130465707572596258957981968118282939150764932179301039914644594196527483935056772700464571673561519714659378798142980349150055931504639083706868179814621779071609656149472987165180107929569799992144467825530754294884910061211102040829693160204808478193693272558149850731311285333996342617645068707089683072325735944034148581123949517098193722693440600731246066444514895298495693740071932737170518123890975482713494705231726427235153041153067303657105939111683444634223413524171542578917596588668581379187980520812745754788081949711417070133151379701237593518068147613599615570632692255478531958509894620558428541658993429852186349965380588943890584662072141696095700038226999046428686260561789113289226488102160914494599536375491497787987987009418326466868947192533360216735962871868257151923842653123970715151087538303376453026078158458545904474680654379111295592365434981751103351431923787854844787373197595434224093074211535306014291855988328598738049766458061137837037002332070142395813379481852277716028138721592699805600402970975266221726768171802247730952328546898711159603808815593637497052334447980743464004254520494172541551261044956484224150220379883753357967358139194748563226400250164848161834431749574029623611884359766215924660089996667004926233311596118429564245319599644715132821556934605412601602800164711951157474346260334738436463852175309662113243860829718234084298185171236921800254084131208286105917579763311705115716626006073779636114094377421996194744232733922984689890869166405029146462940903621841145634663167268554870175406927697653597205129661369145950487848453242293220315283327310472675670483267941882214341486265956837444717904054051910890234519373743362457722560742543604494632203893692369167962903126446945723748575958681371956521501790590257227888600877557055840820464854081734460573911134804366157685011489544595566001391241833422465600269578559703056461965576104087837963000008364797108143919294023325134092552593739113265810982867331299556040033327115264011881143527799319398495603023765083030405107864874288664672848624301028691025459464830028261534546241619329914208130645887083924886770140946444799039116335061088200951534931115651738465759296831102430637609894705709195240057600928236881983118874897224768957183513559833673380593692689042768997183347827145434403074825108391283516320946790751862260295283882366598803418779989090032461879896942286331287095252213622279873025296461143316257627087857870305726864937502666493559212247238103166868925847470858198824455877593695484732805664364021029926402860375954114478389729435054197122558689182400653128425475459402786440569996951261043534562000195251725374552213356126140845090533304172756594552632656426403726919097891008398170822798794539020988704741596718633465592827617392016790299049208573249621271093646431747255783052614838234727081721419458047332007365912668567803531779845482064387897552123889412318193483422200300481830070639741229546275271848935363970940017550790539154162101087558914999686032934314926700416848663171578660256490763653062408013558569994631092620037248783488013626820617926810968433641649503303412395342776241274028296056146769388313583005829754414560835131084564561319373305232242355327210938675356665038074592127342630101509558979833118869070501514411846044983154285830625430825230671855677692241594719132289619424428965726443587282697146168887579317787137182661540891986074620128302136857903435102465937283807983359900676436594251673212944395185003880396206812728068996985587606647337547966720433639399757838836475478378379863943187157532119829141857535526527733392731700771828926990211525986856215414544428471947183118916802389293518780569621248567153285461825343146178626727546126749817784494477942800877123963213484630455003330589640741895497615068754126638603555268270552947285653062503864401493966540386764707633504593171501085440715003568204906741849765235736940551232404521563055581738718990992715315134520533104666278822236346222007553391726930158805657149002520135475798640691136911118182969235858807753156925688216348700075687479293286130146162283300635835776676362591596980099701780066840202275850786294624734111354282225093704088411972240937729548317128373019364181440931936841673192758832177502887231409630133681850301418766047324131521141831766695252385923140901862232609401683126041775040308321743031598652031599522370892344043926996632851117452944937417224935182769902035885746016522366609018367589816222663566907705692580367160147611244322208741777530532602852003927446821300311218898072146121924710458980942871012638453596383860298784593181744460439713402168429657276584405930329342353037382297796317906988619873304089664069530676850809021395136386893406009341912095834241498108111865269578264345067202078336312061524731566230287471967934390955677369392893101971173907391818485306879774087704257781676777846438586115111591843214128729781982788992050562892338992409391512148394628680262985210841470543257225028031700993142634345116668621005462499834447764251809144067221550311781742358277734031179794839927932111926004051576947740689654365350553688586969139430091079178040079173811616279856614736810904320910139084854599577626719777373442496852244563076246987294292569230298850850273118923036065360012070763829826302075827846238581546895785207870873669009268244068708574698667502236124930423973898927687183567331595824161888475575422973487568463498288728712332919175601412290174844958667691430383956435604395138189696644764642844341291429844459331790849794379489899387547108792616316256188529531718827896556788749734093347689774870737440807196247920998683194435620065899626805525000693610245708757843515964297473669921672867487403290428324287479349910133495858591560807959280641020979027102275215190752424566458478747899201040509646615851855114822291259714825556515131957581858986582657241544887763815321633898854264151695511188321179832826925820546928458196975047157692770064750283711835351459301228185061810382978594263146078536927714942250311057515374330665732417829152268209264464141771075519822236959907027069960515994715242174497100615600435447806939928471124095003774781788955549209430365237824557849426725935847712131038523351512143891169328572714313832391926785527549991683577101107987073879291063970540201873201822675297911997056126093495486161023297512241074173973667930911896529642167419886052161765356932142734860898769944996390685224691889451995172292183724032267718299033651428258182257643655820194667950892845073450194763873825118480146819420140827105668940050748911027816668516832858819478575215378206966717447298296839348221337310677814930974885939909221307394698145845087856947733735571682094388268829443398511199612555939574081654321730234044244334424536350752889956634718432449388576345763345956749512304116802895176294931215955903346822151638414011915894520782004788355344716921216605177133688074238147686617915940967879517120276909074443571227490606432636387964897594549511605401091789168991747285849688358943936210657482931722729225605929417908093857590990938648043292190749220696906651892517048143852622949717662504000557546640366563338942316531115502265825493770696575519112867370807359411255651191325494875369169526490053388636746137855059779144146054954027757473473673827355662167672466100579792999878583285711606087314237078414608463541987011087696805520422455376870496174364500178439217972149513896919524133260286680069655315918589308642924640205920223270195145951528769780306289249367394447670061195021063558318052625065589302018927036506178843670416045488744757794162233063925577699886048513577802012934358772745884677696091896661255534081419390707994728143036212767017864035407918701586487198705471641344770895159522261043452954228201536235835818625943363203916983076485817689462313924308855542642160096182962892343775326042307344385371534982683063722640281678335164323750342161916796095109113219142541168650398417559114571837772483734113526229303300593986277614477420072256224753183188233574609960232695050026736515655161512941074714974490093067956796501864796754844812815163374504728095533833746039617348811630048819423045137561726262835953466986092286847356568098377562445837474115591092321218371804516915484100714632963283806753215368875684220644899723416228798811797355246739861093263629839810984618205255014476670579227951234428613328952047555163899750180531279623085716154234149655818411878342396272245964579348756260834366661673966392208715227106514441349897091708996418346501478664596470066225505487098914630582581375913997462069370914691294730304502951399547021042478433749811514288879538651332468080273371372234171738816574947759458194894196441402559941957542396941431132424103432258201106330002000552827486914064921810161368723951168772767014150540470036203076314280181968198373281244883699701414412461192643064536728654591931714080790453666854273603415199910434789796018834629814937900907285401770246692355754979352242405425853873306845237562137426189372269473824140640177049752032526445452113277703122501403037218797438475675136000525539255166822742147611855217476714379486851419449880259821848542228101960675112409705144335273776694022524138090035658070727633127202124118218738351991502459646450043394682680359917842096610438622197116325822883413294261814306050181252041626908320444726249651306710891056966504199668784280851312998027982779781322140889272891879243549007232737289910633816047902514969283704578386284840112516152427135027667055523043667900640271440864870170536769519498056479885066952256600612157442026573559092444029802509146034077952932636271315379452250243844734053901036912221382465449892885426221332161213675508980698195528472450447198197676940924949732145763596739240376738578952000136105186241335841348910288664856354948656999989884175193873100005967112376156281257914252338051877430063480810884704374757812187725766105949018100604073066082999790467480273138064351901184958635198445790941060853051231002167282117873311291225333385439943058567559425601951977111984981463352712961253723190930965948766931967929080581703415018116591548307762512773373160995229981062228200830890042719316307723447971919904811579387811010157638825444421454511850096848915593427325468641197451400209458508998742591235296288312877207669256277224812143812326001327611185496818151253724217202877551940748654703387047050134669823168381146954250168265068568133501439678941362290816990235123197035536165099957595060362450724406302781839928966065717289509368781623364886005781891050264958241943213079167309301076484202503242360105051291672098228195779183784506827461930011426848453913516304771761944424512013707883210838741680544585984341109000922664118224996850969578428356884512331598905424940014632564747321899654331337818097049875658681972617086738472750045517892613260389005698925915889903069175471888181748643097683835779646018026135781321820408230967481493485219605443505142893286573329090793253798357672247437589444400181859444454084029012231338594431619566133560623451284738195855594912342860519277962755501772318397659370299136021231632283430038276895528151907720706445561937589562429263229003195287576451461385607565685363705341953751004331830777165089922379009308950384642311361583059858400605732887022172582585838579429719618293184780183372772156227018647112507512447583309928530927745269674059454241730353972179515275483302945052662825464816751471896353695679163402249241266525831465889481230138503876730769865132207368107251588383633288682976493383329932766710813590654210649497330301253527439483550023322245054799216719352431352261345844523631114449966049540663871507006574957640944571177242288244576955224990066830566005601654580103721765700579244684703705149740874345091110248220055635594805802257610736882517127974963643072274866597142762004326258186072367911740419685995141479083798925641190604340299643231050583029728218956985300290960417281600162072217458080794802455342438442346416367957114545852862636765506825791303151099236690127122521290397635967242098898853798870988254662255751853964048775706166263551397791244528169883525783029889783051508495277888715414311053359709753329129176017299571223639732724045612538910292955727748990227652455943119857052401710961783151766434815051335971900096621248164270438501825606543224780624350787529627617923634997676188829440576619465540622576703381263631776484944799707406011179563367704705452967141861157851168231372268125121886558890149144980615212432545649146122460572066648334171681037548121875097242732853449784877524131687269964676684039728743168988232382645595781161971393064521220530969166896058759686075607455346538643242660546854390181827170853595041164248534391986715775749414171677004751585362413065749312463643672256912640573020919013429835947376757190007911136969734459261923213750432077542907378863032369386818790709581718737680017994668504774842192184538990459853622073518324027516979182752807999944381710227990293872024705444209097375296439052659428149161090790581999568193141931130896107130290966480113031645591457202518612304789448001022840859782011896915483293573861820470616771992046235724738894956614025592666599047057510307814343660780708806704758970255703883839142597507036113771613990930856074569207014173527201432881316003141111019951967937359369358279932211248923699905017156772206826687630126125903035429995164629639428324313307627558964940986367051125030583887069530877372926291318789069369941476280607525775773815343801307517652912016794688382958292957382805827859375152695249811349218254459578223468618339312794996701101756262912091510504375660446783472235580988987777819434860048988270129118989412072670746715707677611995391871053172629781646073653741241231208970686069008120914250560989399727004053809168789802437330815132937945163499269785770750981180608257788794214233297068971686229817156605212323827847340767258976314427999702900943992840481714683813409617614427245705126003324905394171064870627548840061790430069748705942925711647710081949232336459068563783197844863623818163598797443378872067024049409889829676526767474398564717872349481965016483450404564626191389868097868368899668845058957762180785769032252519083366621672608119002555056306763729653036820716857665938097798623570457630010958281499322354295426527854025754552006037316292510016732918053586576934937002431658467627993692825451646522004162458013331931935522616867577333898384414386213851857198502320915057391992348837960787101975183675289592715788021850652481270058161871515032502581386843597437965261078202735731358825614416706730110192699458112299284873141785026575668855239890736932726561877461845050971671691990316576518473168294732966234769708297904348726061565792858347195888087856723531430346191490934806624929850401433145722294839421820548627501180709767378929720771606288996007172700980389264087915896499059728500731543415668828087801222352356272699822881086641078233094064108011252868312527465511174754364725713733365257873641722452348101680627307407937032808278590565708415817879211490752807369742820625527323333676313084912378940237627120761060987772217972851522358618919352296894394833491341918694153247764248687970863666281350108151330076163645023798329849112818847557725228057083102163915150336226934996417445919415386520636051294942325529417693657663598038543313136692971681321706587198886466917400105639916262532577663342669463334223264961365330159389506206541953175547693323633085817467821453680686795615346319786435524272302414948390887937683165297146867969460931128071908670093498865767106947984545785684680669370502277540163327646555050070492711030779632728855008801277319382279104539910631950125619148813281283334658479611114726256876538028097860759543623106548681313810963784682370739343497699279712935837974904545075350997896400769231452524136945615017794221386620895256462011686277723059055170221985582617430554691169628639382079366038839898480699438190835084163325671212528543272155715277431998448124286603904878051919665238715490857088332291798297471899692341111895373017350025132238952966094045572242110773622760725948482697739314566402866805203392134708568498770081200519955599879267729512708103746903957840116882637920797302390263867396108513569817421228063992842668829011912943385261989640928598307451987704659106817703316042804542251650753546490139847872917972444627574274635239799530630184346677157320844517616321117670822313076865229103252371073525176940370163944356298781138982088025103442380749676991714390985497129996885813714813126462273331253485512578863750871706991346944929167588394600566620567210531083791543363055835901363222527985152976784752873000542714815404826899490063305214958406738034461702994048163671839291143486728257511842222446723380784999410473500524486248871899807875799459776388410971534206961347779551427922683437123422433417473701799152057835467212149833955664984656800227267815837933574686902585386980368718650179555347873486325780772434334933614128179926252841790950083947262203027347291255480048900257936760567026058282606234380119156335007691319142442526230680893372872212948617155819934846401282032509888793206797890085904199479758099516966945257415960082238722505223886816263155115007685663471847525467040438128809187942408301680966810201715578791608952188285697638638332737157022264617984266646581532804718791861945525684002413275277506528217106609910093005396697951944130008935776118804110064931940582710073279139243084980186970194199055003207379473671634508729527070937290059654831272582072279725528176473779556266967108221599372166523475466661176674400942098181762490767834804441906672411510165465192256727345355077970772039002940310971910945869923231168065345245050090309768299049014536222002584080462001570117703710314998783585164210991774481269506230463406780269151229700771443690996648049314920575433514800213893710064782108315134242824299587155939626631729876527861300723759003160045330023499707935073902301139683954981915198661319241823153537640517000398718477855102638051021087945994364360075880891667776414584615802814899881468199490777900583596904025562797068383742831634242908922905912579845389126209924470756681491478370611452319698917766600953004403671656706272843132887653446078872284367390089294193502301288865741924886690606780277296073791646052746478942911730004346720408324068012360151462823254236778888322756937122996820605625514797412019717901255912481981632139303570030167363278490287989029323839021272516531240953613826781831815584594369677030526577764234715821696533559735411478989821738078614298800961193462558814157389138686297632505091896302372519418135292263558706781470906359116116234602048403697201933298533966188836549328970358327188443351242627817714874112415088921860745996032190765775635399481605048880756919230207607582402407367950282427417680086419336222383263422048076545532750567643460531802879108848859048216180384329829037535570452625175045605523396616185455194258772933375363196198301907326500714865766580465500313737575238426404083750765397057421614278107369278459493838998164141789787406533718302840728123792752566981534823971896496879497709889902411624891006807063194543305362809418780856536980282469725000896758992302783990082810596453404624439383264329840950204859312035135396197324975015492596364744957216289566227287497514791320630913362839975227780554777086982375769208541039613940784089047856436055626788565899153199532350976041534072169790886880558877524782141460628123728561574604036377495945507374611481615026242694739321189859586067359983299007044615386720132626835531565073536706346151871264300672064754597895153061988274348469617694512076126933491146392316282431538694050867924066683394745851419351818343471071492430570910985915348814068385827924390730101022906117656078329879606704167656183290612345404474825126345471858486548413054725697146589677703911261992989381216051505770894651381372152524124828280995053211326426100895073288813141779301161149108367095380663438693446759224908583151969581140604815787293868639816619635729489684132890668361941988678191852496741246979335509425000124121766539169324825247959121182789811585154950497817292299124785057155674417221289604775009071743993887246393506762509122046980217787561187629612272484467739121107226053539306397033139702417061753006057732137187556844717875891314514398410603944405084600978861512403494058240886967580175429022975311195325866867370710662891829983275947786270392688319298336754793651988935211278806341393313682600473527261458428294733906128039968796002881909827379146918142589556805736727464699695476519591297063874553359358152117014345468808970698050907025167514293477533927182694309389981816225579754833471379475025616365741473619062162999039931956464442446057354409723589206258425847978208727009264977296624745677058404757141385034074790921684869435432048669083443593677469699900040306074666145825865267552638735792626477265373313529088325966913606558032546066487979276246658417097416001538245760950093096466975817803650627287549789027292988319806961166402085403706927684362985411082698486914619744391999673578732112965693465056863285745961929510972217344833716580098666872851127413408626137653834650702747526825109514177111137991011127680607587415268739079544675888352395256979339200103045292250408541792107159797138611451621596344823061429397207473898073245987414970634251044227575571377784866787647026694691210396270570232718070877124266105868153389830258895237613955379943166029290656055048511944332056040004575731293754191451370028440900014032970270440690244696092004413804881567315210641544870603310655217876943763370386077944237837926336640960113527401692497953504884341486137417921282058250734227586240256384691147521071608113484363972086310897318817627124542413779238949325163631913973222265831750902133001112890313665346686601274577169535458029012654201378812315329824845629047864682341659173320968319625943945627930860320272492369935739360213982155039569368728014748123412314031175780311030062625000141275215436429520625525660626943595525159735601932864136418701052468344823214118578673214151023789661944680571000991257599398521358855723342272842620629097314225665780697724234778376484083498265453211000058633749458728170184425718761548687185428225352696507737818996352268395407138611041342170088429034116245020608032249035018001096295452039734760073815465581565185679001239392288154750742758217001299926828656323390780370484770785026269046330657875930112731054367016006823605293699093955673304249370893730826847145958183714032001228327969308168276039217743184461954577451225045883972488390027671813374275654798950855354018164273142776002127505103756297432521515064413061395367107921396444106332268338385707773646405756647185166138898612710106637338565870854771927087862818689501404676630228962493658620655445417938712245094569942322008894049990108437956984382269439541003745603117609966881953326396181816191623699543497223937167898721967416879764887479718713536995414723820556588341964067118921565454327780146721465941306917676298394312579079927389584336680728100044389815950604518537364581731916015926043880240257830365853688829145003665434489744707632613602212713428439819166266173902079095780022349941673120928244071147157303289548508904313939558196433860221230637022199756595807688555149609624776455657115044461301770496508651364622707624972642674115902777464865840913144539635251746356173413658085526067682162025868652464111035318587610548854021059515901583303929239291391056298577955090755420402465099346644165871549957300788617292913567808752945995110808371388471197239336748706555365629990030945868230062374709583738069226950175173418660420557781469976627123801894925496041660692771527206404986020808765938921892554224568456281159711130786350136017214229162741753774912330381468709965932277954405230296640549458455878979383446927123999082912238281767670185677299277379163979635649262605076903561739003912168894778699238445640285409998957493411534660635208712063326454983890133724649281352499093110874736506379233261937980102372917098048215909646576790928498549404419100607288210126553118942359794220998995754675010302712647508315205122928684309848302959252308082934265937243105928793347349066810510778517009571947188639879478023490912975425297046086641921752548527181346888110285891929215911417141508963561379324208192528079229190013482754100875397850193396103373648510071877445496469675448305366936483205123258050528954368350869755370723205465133327754134605291185782195809952312315932906499163076833976419205293443695134989892377045210624148439855118240875481229738259215195401924646543800690976858189088476454790528460762519455546036839178108687263841667425751591242160964443132483426848133399144861911247299107896350050382505805114676072611959243846572741998685820959477540952639288441217284335586122050154993082147574557592539297579807691712732534260967127557204558928061109735341956486767555348693214568751864857910694775164270434955018646483674997597480376742055918301302819228043368681487052192569626137865580530429325154628920506102927973792232865365909551273937886844351875316397603325339440969618879672611479372894610025769069831869356112965706367448043152661485726827079622012358356491298723679264682098144229933266601425314734152128564471521686007293883350831827296013447069885356362284506016385467914317199516361410397305245364177671092956791532902832943053186278223381111642832014338068937277886837878026198433314912843858280620286488802934778410131036073273153853080254732451760431930782482803861773231943462975144672382139935608917203118854990756930091531636092325382167240347810806831674133341389737467622069245642895915544434395923570603891557886769896129251024337819535209081299115304143654102796884685704315776840384052906014462962576252974097930543852831891206441318544988746533194044856585555446632223499169655276385580077853531373803064544119524331896794727587013961758385407344571286688480017318023393607996810301394631267656627908185553847261533741795724034881748505971336070822862565451556236331355681190325190346476828571213908964659833492744335082946586031423873391234438077414297485216041915483311236939944768816100594244195133340882174916268426850981564184834532978069654447750282255690919819769258989156747488473114844068618281278195183920044239382232471012845023766976783553167400026989474852558920219711557209548267264851454938015488415741405393830539096490399076902724110031570920554677839484728214553589991062685086806834811365933283315418670982193096366331019010491515816212460285771461413401856111577094781422550860134022910823755367275063143103202803691473926755935323033344995078570703476922422861343597252218082296725224872021648023163718678538794052167071634662340025265582553305970981918885802281726812010049194430978339088478598131866417770119467115745836008216611634698874702051477484573273194632418790927357328881468324050168510680641380399944401543240407344475946611341273255634944221684651151553794249023114887702435705744530528243849181227645113816778268135008981002237824205490715126861802734097289837891522455534980233533894334676234547846713101734471053167695771860736853490119137556521756111224042990950586414825717093580918440949162076868774321304602633222991467728154375190836244233477697280834143315768473935519149399319285016661758345024343682961033687607094381231138356493903830235972969895035245243071190473756990932637752866897613618640283851950128419367180127462898727646703144777535165773403132506921507604893521904070546504032513334919325998129692360007521875975092956525217871889917436908100403303822116283544735664191203893344507279613499427336951939409496877873682259750077606625102417528939088236096355298085430660398000760342672007929414492425679146087751382004596640787687965462281826142022981370056100526223944455304541495244779536181889784418983699408896560133938641435057209644574735590400202976258095795173880317436542764536700750222560672531030405312407203736514442566842610228351033656890506413685151938200748837946682244356275163876021990943929457562298716756882176674817129315463921688227881346116267687304871893315291405312738947306119311771588448402426355777836282358619699733006509043690341704945488924124719935966967256406700733632679646080674018703915567767259950342806123525238934733922007652545418842119488179711805396148960715754067275851890133048148599278216862428847005577766937646696746753307368474482162556308814627935808005102966769558265057253198004786995334360275217202608028981530651539260794411561235236922830496853529366151817365870494329060920505151789439322392800535428273481109658276027029672250609865455524851805075551908076049307461965050960975046080465683288386209484539495188979437853937518519247306030717984442426990249689945208382746769668438175695933098980937622966312456788474615004756555646504809770863094970605300738728111808222040942027609558655440174700551594839336641159256987730220225529616004685401382831935096711730799476481067486101744789635104612455978108369319983967811218254976860092936621699742519402097775685388968266954436721779498397798159954637870187640950301991121863734245794055675427376566424354535645038160399604521791896198853183769575894410704466894713344704072501018995863731145452270231788089905880273355686731034940090277766624840768395481792039517178706582479749486355290379168654240854599416605643779629482886023020797956072689722789378781023196667101877033076023865139294904038267202321556989140728159677518565804451453613092849409553202150340273168755686202395482014162012782173112622624669502710428751539496442592755759721667015885917353648259379033560276873007414717629192394367516281002614637718492639382437438625391005091119778223746244911033710725774698238299574755102865486721683047805241279251308531276348723572883132668759746517636537412639178874228208242389395053379613637697329240446187359773930251149160063532770018822101834181556337663425083186967403697336748629905109330292019206727062033729531049232883024570990218070859373837068027578912283818028671433480343474827537486492613545253799194744106133068246633885768031051947029032549189570151027066838067935872087931584986795670091445303709689040965735394933054418596412641228017460291150212884833412913156290743147060052150986007024911861005117626997481239279252111275950802214686894746606338468432297570318530830277826549926472095944657771878424901970346456161037232316273192151317772971574996165988348922724482917437491729357866435569856225244512761002189592257059765503869034465697214288753068498436801773240717866722653626014810682409484517800902503273171192439261050983902141731242887534111400943399632482720638746100301675164977906032541486492505307057659333926230922989445993738060247065564677093598604335610580368198823594279076117494895648371072637305488194385788605519146407586955089894944549992646902437148591095407841041782652562434615869388298601745182422007758119836134273104034649334974709458633433160269081955539682425710894588683508944610318457158998509891709588431706127239373194937210387317851472304395026755519386867720856726440749917427911464763311245011237106591509578739872288363651434398061733678686164663626080315293318134313543737611381229892584442190116785180058054575252852654685601125219281575451806446636242918174063169468749137955871530131669478458917369917533631194676653362703826304819727162228131766373050039488923191244847919211683672925946900665361205118608143964789179415896908847163925141612188359544368560626689197019992188772282895210146783534953194279198090802858815699963510718185914755638985066916412245532978044680953712123212112201370973697710490264409691483440327539044680159721899258672323775715152868433976053117391851025893502174973504245453550917646580204736546582657913357052188675395518272352992369627824098649014829558107136891046618493044065634107878466039153004280362773546628597352102664741677134169492551594192730253252604232362880811617295808388394167417699087625318822045506354046837811486740341413117426021606809495198401942745366272015080099380418887737261776666192380926332684404421761571039408398346730629959259463224987757746073916298030396617266287192489313938761792739782998062991704688743495047021027141221513791996832990996943944812264276179665060526066103586344230916596819784765647476807803637118659912006935927326696924074501102295424867598847543934635138233829048087781255915902328736265703419970374883929539443863470818416546080252058368490547916914487680280586929192315851139886048418480214030455371791158653443104445209956706416125653761615871893214641963776188430066268892532313657748519614360037483425201603053740116248623048986167744596661175184470438623555738684849965599427689865405810043214897862446895150642661961215963319126679063775931469510778727264765174954093621431836330445545860784831854854307165058462338607374233307560795888320949564795337456500017908148214671447479173926517339985606245280149679896642219071639426051954323793096647243481870678007947175077638576231224469058233143870825655841965949938996935662078967382523790223877010761221384301878533268022925414193090124624611584972627495117114734776345124681470096111720448717400211541278769115572801173554034452329138496163957673795094011820424031870427245464037495611584380191704657542249486306878741723335489289248561728322062145485065605682154640990371702393874131945658234660677630050797578480621193812449706969660491102803722182502256354380292486950751397998441009260592837289158593619107720560789054433226186529934457063997520942113181151852857944750886026033560662977835138077341167253276085598771660340247374261223408250276860812360786456958923966845746799579160650492935543139352714154862615241942031305133866952933237369744284507099697596968648898713314896896355499194873461675225959416461710769818014031742034590167057326083797311104239481616370263369455629214306036792764880208361048143404244814549011068119051543610823215487436583670327906257897357018656573537293982631097170863128611297096928089375843595761051963574196663800164250900557331278575622149676918942996490604928291408643693094282540246281620450909679865833676901174362968970831874948817880360302728043581264805095363659579045987905536736534054668578956771681365993648301745583664061691286926030870619817734448347102692049056201860416330107530662742963404071737682363704026925377608828341009886696894646788074778104936272971462375917514069268850331063796519611524108520621823095724135263262890143441399710631475099857307637445093297163996556214097542343950609116884911304758163585059373681345733146057930112203436598006668586275840170633499738915969983876817250952168978879221530414564744611132673998611939384956331110790541922614765460364344471506608560918450975112832504132173251037735259574921435675762230515124042138896595276910202493491917482916208377489040408519485021410638558652597553869172301819778739984278041697527126470561832086630797261513702826384415539697496139915547058145449676632013560841825628286820561133970804934336289142781624990161572250859244759256040891593248783403316069436020464346003828038939512837887769284445162888374313683367186256998925827176383262718291962701430248059664238565664923976233842967906182840460969417397292234621486035947751845363362198640718087101960714467784725071139538479102024293357088107285111727210192640153826110893969466548382701941830896209179326166186311574838781864346616238873645584653519695323091855885422485792312510128225690767782402619343899823164081049842249498805407658635724847723781085677007723986549876939226266238687352740141567273092994237142125229872770887911258895716437587681599752301121868052224036191217334927267122489089647270588113839439167071587784492216284833251874411885778993959681978438141788378799146047770491326014721153999237055420116562991827222281558529415171683378984058119465033236593266114374590999661480199427658259796792771482764111294001807220165749110165838472787383464718311742171718316627341148654812959625009775984604748335317594644615906962437519365498148332753299458870758920955018715695500394952306506854904188196003325470454051847631158853876258001744353923731952214410820939640415490336643324181205447937367285062299484456170895973941867577395904515200309210213983788502234943937526047643254051052650690023916330267129008513317323086226488919795749965894413580084645358694862718327192083190056340367593368103070159474309059788449652139093800040702725550733281360314758232310348000663055916949822895653298811749721027305764948074322434813641018111747798320380514312447743334762267321627674493623054030707739111922794407290203366618734909950635214930552475499216108345456665690195158712666691221710090066599350919513358472908047409357113807711320369126237754945170326899650149536053166341236782761584580771609361931551657544299077952456290030252973574174916988338064806402914957988708035485305835390087207297038192089883577248713972900555303215839582879111903490117081622407103074020721033361766651889733879996347635683827681674310151150062137075137942374913791628422957751353365728028351781364123948929702098648826689248230557515144695157891456188229358815471512019015570822043737438713286603893555212291991312430645469470898879090387488067941220295195457039010205751668743227377085238627621587958512242682969113523810839819675369223672872143184374655119777539554548613025393792917806562485920807187372142800279113871495545743796860641167452779010349139618042720191247786873063528407605323652818962239200912394579917604441922760386528609760512314179199829427934236372327626684539832119220157991371568192068218901331927536330153668935048941536371262524700350480378147889363157480039515007847877768646085725280101469348560683229122133800208740065835507881445700901687700349535921602389660268039783602210693265109690391875077676552244325802368518659108630851118295409769716150178199085584127676199182599315243611922224968848629727158328113030577846118782658071152807315742935064887367024067656886638565640027628933112115938391734060590069745833823269783941944208295298371882682213387410688546802712122274378651700241104498069581120320061699339530771985550139262045427367391328057386417955048396714146829896103652199045347647208571790680665728466626079601157723433674441696038372601546314583946900772557339950760588878870745754888386771742371384466200762111908614101810292986395285245515074003986454461764461772394751185920688160548906762426842084636181191747252752505269226913528475644469036658151980500160074604649606480921955922760590275003639968252930669299845039076048763434892843609367681886842704423209191843568325587804884226423702375301350629511220351824820766022779012068535263095883519768701027553159410531455935483819873037495916005995113914625065513396551023876546417962739631908020522714711379116013585520331520594066248041427557096923674040717092763414203216190253340770914804821940063669681669501770182189923419681175143958432281550936084560368314536035429462912144737299640399036683671676466098164510673969706284725681962352426986425987152011568778882365442174690986281974556169401705967043169598583174553112041196266244710063425739406235999382584136085952441718962143914818371391549809847828126965840352149275580118890676025723848137896550482666265225287772098912647583555219144421706888854357868827530310597247043464222495090613172046934253819741918485146126940633789823701797749625723632433619333087228680786612511513666391774827995628218960190549894620426356361756662346693095171978837371928578795940823194867468821530198525721116524512786709999706267991089888556288907366868550182660708321021469066268523121139084131828382319376420642638245608865972431817935202053713533907174385410908257454468619390481263386062848144527130218348997471984713095957160407023456915576258673157135980027629553691905537144670618269996498444904149635462971806908892077298176357543461821006075495268505775523141466748495641248110082410696267663311142531568047993655372203834467791453076187120293253896036366200175733476069755026293017218291268382735848021526460356889791426394754928010190119028968410115755916676622306731494932800942615779950309982944606240666233128948710867447842865428391984506519998042019954441907504844890566946398805095136322485319491647963337218558176675596760877616898717352640778769934265620420865339888676314282324572302336605575717256373621163259686049522217362631465252636538139933306068722172543791770273586377774850831034650435111156940338480583476954281833364237681573130189855306459919704645492967164480383672146414399065620609576529160745383221393347129891485035148425117036467265068820833300626873406172724357646962556470802152286259621468263048994032993156322590793480308108362474506648119080114442126472332362891509810535756863141568557386500133790954175646680724789868696185136683730565602939420466175982935859821218596514246020913787906328628859385366107559423795825064953703433747599149227231815279405075643000733882583111375100513044256949689490827254283183060997120457959476696062852210358531137171952092207565201163395813288129413626099396430057024560210608081845566327646627656591569083502122032026648427194867218381434329240390058431421602225927840664977623850156705591311087102421282263683803425183703679639042681860780033256493840164976706725110619848948296448726505890851918078941304198362594987296081171750992254277696207066842769780477278332327638891714568942716310262557528433643555186476226410154419454680170479390747428262959025194390737611963027311971517332476094855317128376228795899076655647744524626635602877941322292497262247441990136468273015859899263489487842039288385875608923328661257234967096726094486180179540606487413146809372381145581605297085179876182059800793341131397908407463532702203111638410069989088850863303359255913395332388397964051304650552774072314462977622040894971456150439368959122940648332017112630664306827637036389727741363436064708359538237685672171780865498754148643388696188232081508820461835968712425400346756374854796672356950159886825447746144446899249113040836851907140473898322327134025220829593697317641899515680563316132809574586360301903937272204725664553768642104464171646646909714767668202273498448236597078172986999896269882814156275257584041248638525994016152253047787444918137147562181290743560436970876999600259164361645321138777247794904503879388840342194295705328126114469568088551634682299214362161173367044442228570987405128628270508585507055150996971035866113466420618478196402357052294090936257935055861708893413857665743072731742607977626169039160578866744811537706891631106385697162295193406347711716578325642174167274642879389967645559001977142256411707913669818870103457046939946575567538663915007621661067778010817188967888370891655561363093738226896305481901042343264289081852684459975614810031746280424133689069395620503919846368904232105631797171822463799316587958035759829690626218284074675217694023668169170736857291793677764538802208537295377649743147746684465954532047335362978051450599190153667068119373030851811468503991305352717134512834280389059086250973022271155426123562255822286521382249466995427454063421263131685757825990892910499772312706066509505299088038260178855602704698121952129286802077124391454314009181199980445246870854098143218771761622247890514648933116931325379099337210361410811932073220919990279280808117490622563741158340314595995610304342490907762153670810675164718524836739262567247182709292806014059570987366736435817998462525534538354193988148379717094927143442289699645729151676042253086113742960946018200712765716347589802624481648271405649413094830438515378696866475926258259280513982485658076712913943506404998454308256328853735468640598068913500147606385977268070657114445028863986384442025852384199574680897007397692542248421392275990524863581413955899824960145390523689785356586609975572510349999713179129799027808719825184426834254586752414952424898153530239457602459853579556121561981366562161456599457046181031473412209378941410340644425908932049585347092470030913641715736417882248703595928269050735759531203557711845236608954716645483423396970751924037376672047591158999992477005340652589234002955900907802235547307319695745288305221515592702048933802585041328878651830617064312889515973767489298141220197532703978987276286383032208983864866978721196532321894724685935710235984288334103784159806227979762560352197850221794107850355678711017184651210510660848065913911069119074280349850708506174763174249038820298970630058535411923283946319190816401769717625029515914919504688987409351767141958485469149896399454534328427133424821496077111028815148594123289022150502357137771474428111505475058400721843704070550271768152637609168803655078506206892882235488130053494047997251970253883404744151847988060781514656744838259557863686284053396649578572832957082566533154473468051294248677978808942065644610413299317840264298174864790541000456998084124951593010990033908436678775514692550367885035969908468799088817928681498459176997331829666433349978289475281793266455763832002949583258350959120193417652559834641139116498980126290413832222816942612542375839227849057488075861890900690271008330537349957989586615121219649795065340908423270169381807757182495678219501925076800924388518276576370673474838926251589768022615835812010606449506010744724400887990158262899611902938758718750042083281446690867705049989885015630975142831507269166741814958684428242314682837222260100522268464588228278915572845568017135707369397855290892955264814040325783519231094042145142095124278533537519007067390015116979528577549693045214161336702413670180599695644806190188079442540914792151150222159009160440995288500624512860340048044003060080176190906975821089763533515526890511876726867525488465250606639606322576482131941110405746126659529789083902853167171873816904764363703005920784175335264423392690120521443913217953764561076555606889746950469495188253365442261365960188975578551165510429527299653186755004212758025325095170210730854892164467556133435244251026219598379423436223846648303249490861335579343435030538287408605742298417633331437551019886530861399986700330800142436339522464215753651836612384766005057614392762519053369038102108790761406079366952239729247479951713688722727123474283232445979585155531551620706981946621364347163000017671228925353876185929588053824974050465223105904534832504675465358160218199327635109920162413218761700509000220500463008939084556394872203363129078645270812308260319001452053332553686032053929449712656829700584398387178711524547526823517066884115534190442974115794527363766227152195590417433854399131303372850003327103269591969449974415071489452176748553386180862739232924321512867276456844976810887095825312366973934836218334013344355524025715177016669513135962609661605680932328460141621929097376822653124976811601036644383053231202497550114452416633156495175992613583594361920308291256392198896475865270650510074567767397167612089630021862739468069612382296110666911478035809845798001990626601532990648921957125081300408830803276662576783164248886482233731518551621237904834388320792082890369443271327995723572448306851784013243390749427025700183824400677679235072808114891861442785335103705599747384886257422604824868541293117362489248291642823020189212969055485313626455244858459646707943774899757090920975575084992793038963537629734023815363245854187750747272141219307813042658446399375641030766055955493871394394196714062528041397960837112742938261489400992573480598942911567605217961858670617425528050420822325533374149439284912669111720290283287681059011911619164182474688537420202499795446060435116090550967724452690900834511568177666823314719584495133008682847444809638244617289487075164805953967417533492823270521427731095710470652582051170143696052537190816272927885200030086111915069273877666336745788550764613528367304901889984976257541816420234819860764176382097333773247318167489035359171830810400064601091911013441497960650405107345667246386975208782873460948831258472226915070269329069402797542948129044278605744516665686094821537701017136558050060147980353909748764178627839321217545851612047507484375442980597608199578803650282456417296219219136952583864190532201934549529023102338650921856475880610201868849177131890748104407891562054282703836900525423415955254798028464033887495519116746829777277178487810247365003771765891903626367069267708690906759826462433761328796011876920722474304364853634440772234206777129380193340068515939408634861432661358502401250630100624271678718574143015212470961163022798656512004423177295867558538656248642510528236172786941254910018882470846289809631221970673230143258452088074246154885614131452219274892871262196130339212997354572614454128236261869876099674884436916853445136978632694755456157889433605039567648533367422020256016459645480638705055623111985200555549724800273709175663591470885117007837571462739472423995095406560064324081443472622083234617526179344471266785850005047799942344609998561472140244476166934989217546297875561047346801120668894723290210360247214254445384946838634858521614484076329398977274621129103247620833317071257239759629744927252976019974130337151059498343276784416346318200639948249959526433356044614441971810661747338217334011839286791683577948240441201729106244411649681265465522800840119183991775099988306800870705536547082589072585870904532447194243374785635773605359541264244609232661104562137935939359171755271165562788498858549304975905971804403922440890209593883613512774481238937578536862392348294445824790958936793691228829450890145459518232842303073580771268147797571998708517278004524219658535735799374885538141058395943807387486860757809200518727854947776092202674761996138372444510790107075771736806567917344827825056048993727105777989814369371644816760416356827742901607727673414957720901161345004308076533209419001397595358166236991714246644368111082359185468631012860191843983424514963171175554963364568191651254650832647415145702100382703608575090924672929117100621622283265453852198104235771083101930844187676525976397439502196447845916427327547547596022363542759741370437309338239954141515729348545422504547874835858178584711698418919504070810826588368784302017618391985412606978356066266625811489735242752476315974850579044487104163715727696662426378628700615425874642177935378873247987557386886073509862891448199828468866307519731053379808577590983944623011892689995722184333556889605026185131032399588978631862357186535530076875888790972966770327114240834152483427102072139514112559959303342559336163956407157040063867850896483729371624340097048336877491892430906673639106035680470609999875124330465703777327544225569694322078705432856963301219229349644958597721486643211725615261618149956579734603282506342098697312665931326814213387337592238091518291091136620324302158090122574570053164041630263882704461392057706923135747360493292059182329677985874201554698227286420928612747179056848913588616810001513685932358257101358754404670432208984978125925007082308721894007230488369907371306317767994372385222650024154676553219751336623527929650616753853404960487652963297814985187037294924546032235082150129901546978874911107400140895913594894753180911944795834248305862507526439996844444886211910712120702415111571235424963548793070864648270464832709463558147729687217481030473391471852412266054606777020523539646582119159028942987066974458615140989452842427883095758532138053029206100050388418630484881086059998812931190489077958439656112564152866939399304501575715277494423482854697639084303973994890491610890095471916552558364490424259983641038358244627361327667256139323204134024092793654101324421554402851027375963655971782276268742970214282036175621180880571930408839322319499771239091698434413124668848404908162717413417167395102780644278761251261951472221053496500484032377483468939526265101529693444329305113270632211395224795669485872133926888605605954131526111101679745890435810166782028007850823923147051102673757533160647514028443109109372273039996967934563089613871737907024666911623104080535717318282544095104028383404812541161215866089346412268879133319997711164100871945132938876509344220088235764551686407999445552245732375079673613039914764931849706952638562362425812954278816768642370174973373597361474364575128062654568618746642193518353323857816484601004999336507824053766103195218344899874047514728525789192569347765359794422844848626693576545442057518393684114289953063488349920005977268920019163447132548486557544623798534333434897566927603337822364955333859669435325268029147598007709064353606349794059747683369047438664606501076280381311256267090497007348644094642924620187094960558367840916565038870224738096086874386508924967745162413315807331737579084405309782093270896517366277286028020331693727847297356320748419245437070769974714305295627042105747126298626538607102005313514589159304789497110044345893816987658865343502892474430208709615264583823834015366831249466986771109896709081349728994094256764653596130332253537637368539051131549009309292236240847832953886887452033038154930248664215319205577182714618035452877227892770652768839669150140347669849504917202929841248654431025915795078964940250893002714530772437851796862013403942235939310004135292784188862188043890537457026182600530050815512949344455213269677924452901545796809576048672565136684444757460898896461204211019889458307208732501833022040386994563763486831726584946426088606664482095879209606200534800888970907756294484343885861373362556637385270943478409837439062882229752291448852857821456243774926139104036374765523611107963944499637986090446637742574379387625355293690947786635271956616076824566863412918796837992864599741100256682607937076134492350588969702751237228423155798744750107464863848109148828669388584516034187155664298150913997530254183684867527022057612647775167094775487210343052234771609245457951361449649027115285960185217826792489269125824588770958462324659398571107003990972906735088080722283130945788366242200269317719997753789316938430699654385619946691470055189959695398761365240855087931901741046480210505679361773770421973210382376659499269018920462393166497545554232406095363994546180098749160868198651342784912562131487848357830775242680251589553773518730107982620731410436440703140617108292794971558064915176537237662118743806092989688259152257244521790677039111239752288043697951900726593114580954735478729530991322648825692781581933943009460443880270578149566230501856036770332122824611504691830211379797909704418867638717045497620769787373105148652783472973499003825654874523721549085299583815954883065665363467758016073169019338355434376535082680358963393906638467076724328561869797618280697103565635629170763383532097397129839603284769225920434703479686387245202585905602881577850563690306324478934309573966841760597694819199922092244693139888343572928820874671882808536941372995035089640117500680652047061672468558009982935765948214143620773647467374232327893978423430617952256719006542091144578143003658575258662795222810675492986088706881534851146724580589837365895879931257312530701749928178741955069857210720296604936930808285018014241248014871936292379949646235899413762892066242651386081934557728614138737702823910330383463980856681523317735794353663339680106766462056674319218665081943390807800298543100206068161384701850944882941830569364699110186582764517296174749195387132466251223498763652105287175043247551439055284414593814223875759736041430792513818130649192619015121614344576605227187025959524252404800135309294663396381852964066517519955992977342676112616588743276606942900968545452614698375891744797453056947343311430775122454099150186149053763858819267572850968779056779294286265609090344829909328523365853096368330244948027591363210385044659812332201943490608401457026623742797900646608478240819562647240368652965986768774194700382074488848443295100709914435309557855198743559410296289447752121901106072913126922122671876359345484341854532432807906604061084737533308664214384005692021296992477308363952974653666294860285415789459365031027786031498786814137276697097804913088188217281581988410696153135370617831241015491162112547144869811721026963047249456844000878463188351869784983206742296040357008172675416507697584993455427898062634350408484653769104764372404371261454650708210846310014324962265897219478303131814511032181509118463342523236657369683510635019499723830715419012741999295440318047410298424369594428161081879616035015151674061316737343792781052909267105162473858323194620238708609435704694753016975616468416875160929268292842038209984577205339913693234944367933116865298626903164238964513458633852640433982990208220411780547194165827113198878645745269887688198626073369730682621440550898479916390431069791826534056256673161800177618932449305647164585519971687845592397354674379568190816000651290760041424061862397077729744722054895535125519474779026863272262995704383435538199874172137779389711787797235790186113842710944345040760488899067799564008793243021821887722166881792305351738862808587159049401496465794235627428554013354222104949966551517915931366733486916795451707972829793387726702503809211044621586323264096740955652095893416498052342325891157521890963910615467623489075056180804148016707237628672690640071041345109236853398873470014566824938281315348060159918196857380511662198525754084593679329032731496654557503169207408329877797520199391813343605888153776294946109107183443415556098173950072244821055329802022323572213522274696268223338671148106301903777546187777721985475088939125911061073736915548128370473163670856645200632356197712201920679287651810542831850587413109047516606171143141557050679963478660324209834177358705088654526958858884351069281862575246946319578083021216795252954197871718619213942884757726159090306533524169746122317562503946376315950027947394211442649425966474333148712372230147595592723991469784413172560486068231089204440804905843240769163568599914676728980651256052040544458307973072841578531272407556012286054848434022441049539789197600076947657527139099199797900352496781813664819991961287169175618862951721288809736220981614953273887522935438168531211392333711121802333203467807914564507317994205780975572029912893652521317910158228430236368635408017031733776547149712824380879220757225334624002405803054645563466163949418134750745709751846011988501028604648763496990124101757757991893203141204348187239634149980244802822914677147862905752198834455562208386894143678616065417626966782940224848974369122655930099184113339234578714614926036327924560693475905174282892831744263689721143419012962674300503602033452410544731637068261481085586563742066297804311406994717425857109094413773664771417915990188754027536470204697973378341369194202886491244748525955283231557821363770875731405511322948284248676277336372002456111805098976923822644007455711697008718880243245838040968459523039328618088085462873071573021116637051995988902395548368178579993151573858144342691048400528378941126443225236447546319502172571166306101525345501992348556744540463296976866093731284107188700988593358018224289103998011461806059913955872606698442524239474709831087260557819056434736505971317598705352930205903064840768228495405457662808087861190950934878828348628898326163421298501771174507815566379338992259664554942558290179691550576495389772599284668232419062969186324453891625370208861311882599923924111786939209251800823919160067316680682453509141824383035904869047103567915668774759043670442450865919664527785813510951342966052353384021774367193499776325789940926775009297861760623997498983217334885294137049856931388183066773491398646136891596413612887123603209562581509401287710441809471413447237514669709775376037275936982172415880893673312865317566041989270912806228854343238646436811300849112077683849407460948708371811454639037026565839194539710200854987519599006299103816798548054582758686591165001646046805273788943763949219054151581571935635166535977835769792042591928674490896865077788657147524883068179808773181800393414495272263757482869027723785582175468669907415598420236181989191649441210352946359093324141580204689978737727132505902261732455955563993972993507056100063428485092156530589854532632229024778201885057196543094014451885694638791186057818691283001954342182223877272970014502058952333359987466438045311574387431205428695291677506926810567243303393145295240750541823696517225970017732471659880127349862145929311587697864406972291168385199692768789009815121902466232558948617968979379356994597756198152582015127562926351546651748768977171293845336884833690315460190731245031276694774398660607167573542961403658994566649585098863623874103888277569472830306438729559830233351347785975147559753051960384495392038562822208941435211007757247321880344813791338221484458903988465993048057886253173360816210437499879908012210099776814197210061442665526353819268871495569516500588855508039523947795304157441569517199880074931803722656244216706774370661311564501091751686243900775598717888253407360472031301446845632108986339022687100986701012384858488031416720973893054967967443843211448080463768287035038393388694593172877390364727130980772394122718725862987923920276738006836032787693622047047894928791470341886082588914729249953326887663342700087416329320956418984192113540597844318547602717884164215621787402690528021925503964535732199973267675468025891066460815007173699798728574893454683329246436495356965214189659385952176715009688012325033495425468536165064250663119267488748135880319177714363943794009860559404202300383197729232962594472527035428150559551514707179318722436327623826955492617996172006010215870725593896351132495528754604249163512345995924891066514087633837536865093164877779987732322421708086591218199339120155193307888155489228285941227786682288686607949735895671563878972883659519606216600786483493556912366163259375272240338492537806364666378951692591763656135476372877060114879511763798385123849286129655599702292164138772858348565813867843541576046315632335379561629875101853909527721414961334930260361804059611018126493092779855892943510880086902276086889244470516435404572867339752544822320019990957752075309183933782350828254304542424758348053280898079350893748999385949121964502177306954871505424181563081002558146513674394643495255198719481887001544116552173031297958672998376840662488748280417202873540392610543708450024564862424502626253493399733393450134985089718188517114291329739799931706992150051541314986946730484442177752911999997562683613724437533561686226088832876976783395234456753174598611598252614209203977701427407055090872395979488226703751948304975248418305760284330210274982445753367996999559834234273637168994192382294297417226624310210343852273421550979619333942632058143279163536342226581738230496683944358070603992688475024145426404653060930177191634639724450676674909790232891953529643143516051607194749201738494383241175906576610652795760763869434647040292599590970593135510073961027634625005138507361831606671099105763206605148435335723677136671395853111255243036078300452607156791621320911458237300734418145152039880612030127821213452344888374781507364049932836429749521635889823112082834315702114135869027516916430202622808890149013346143283422418038430091072800542653089490425374774799711737686815206956513264344528582026385096942722112775504991360844098837543591995158347529426805082550714476282156848374912873710610773466694519831593789370562484551492723494779104970357420845992800395349145289931413861659927027998070910034480248498314030853838315714166689104490605306669867492348817660688743692883771823334371085044338697924192727938821264728810009293308960187600284802155248625579147420348105997497899746202031434037305011478488741718180012613440370173192614156725655265082806367813600959214305620344456734258240797997167691941044404143832392129507009291890353544654519581333947696083908456464804112564175870343292006975952821149365358737668562340387508970365160917048066373481764377123715817870432232944386883430253150017486104125565683450049485119936947887886912086969092289791426489677353822430872008637982909203652135680476268077319115416072837793753527417427400575492948880481991351680097267799959170449528048669621274872888402293757237388344137822811177289911324709902112279340141826646647420337541869008982899342650103123671097103348077288943048342697282087640517167671440018269897564175039071040910280245541969357050414900180313965919289376140229001161341020384066235662627567899059831303147859464260338797682518919191068934917905563351962212007417671534398533999772228007184829863236124681309385528228665748621896640060864906014642462707811782331998459400762425780511246532105667295458816129931446634486089420820830387670309103604000552372708153045573617658911025541580914575952682943590810221836393422861651899093351332631288907803236564478536806653883294770812855276859131646286350705275488794516154025522354419854613112280742633501089672546613277183033579541520139383441675674299465828595113585490315839598013904622866942380329818248172611378207171423291053339777672459432484228754685215128662927484605275725952404296187981548916564317539324690258858798623688512022683153840798471664820437853367596783346853248287207427212064133301506200380888155133180408077634427294622439219844608244667624002895652334924815134486103039086035754798578010866028854320519220994983005488227833470463078992567174975862271237845266432960725941280999443942708698947148221629267338232465330927538164982089817407379901082007544284336831782815112906234056723964537668686322627080802374381855856912981817899595301405525579630278683717262283262655258430877079520286754656974480425605012714038417067918653763489299411501575431844528543393739206872229167616258640169559057639255570772950818421335411644757920936404745977642211029044609287545917315606892512033359763265392507484056112229590194669627754865374803983780667154808765127066783681844481919520327363387397838010923008774189986269239214121170306648037454021431804741061472295970808893421014525858187854297582064926702372038863666719828059222578934841976738121665887184869161331383728118741352424984819127067640460081561504549192278227735722572067236536885413687815396042159627409754349159406706356792470094201699514986889506704952866304708528168776939132279044700017532649796778286852272157127543782515087117186697701667568067652802242043248433776234096506567854939594402826184215348962967348236331670544465952253721430583124372143626313085139744329610403700197115100631255925186897492935634972336731233976875105525597838984648314113665132844139886293040451341816984946679657885695780836489455906237222262569635093422001456029777255849891068114728367348433348121465746621099701284046367079634883418100582122309059220784891127856130772407302798956216427828175625117225743898059154698531635484597099973304028691832823494938559294134002958447804072396902592808698651839336656353699607129810307910487072897140449208337464458070748481186229482960474278062883551862091116162421601766071857774126152369326126041766106713724509424014018918114759871317013424627389399814855721623323483307155608265703575846202987097078304706398218556524254656034269195960417819629598766838489729075856117110122742814326084040334179112890871758273930367881150175046037155215290935692475355674003702320154013249790396326717857427963160844243954569380982798577738547617906650484855002524178563391376756912947115650937415038173165516139286009926293014076364023389193460957704914927339259100840492899273446309076123322077713431360589053300427378393737455494554625076617786975205872463395449190177283562465627045191322842806670094340097846812619283771696901354576004885287805482896949654123638023272928484972992338044234085986734862957612874110698001529115118362977546159600389177532836372445060651364083592041912612879568439314358084383867585194919438211786855304027257216786754380006339335061216300150857046941022997512045125070152768651261727263808771341260717108598511300753691986922820973696214079288705543164348426172853534745029285012889499809628960636589811332201188981035630322085808429902702223456196161128942486915447856875355199994768534509354561765992267547016274735455412545004031855049455735474541771078688560347315085715585404125656736150249610481375406393425062887109822473123697480471208492911562078665825557447794915642424141853253559280228479836724724269864710561439534044461755942580304094785539086652863858175829821081962719714246824136781854669107857643667013821215270003796203730775336614536770805219939342298266715984918570528833696195337769112560730346350745113223483539435835504787550736307249561605785580819790298317076307199056702309020608524503444262791173592076093249395308752424365883283503131557597595087106198939321130733536259188176259595770061061836071773315006410840162030992249547293842668420635353421393456808384532317597811041744927706525168640594464575544839482028072358823651863745459657286316591279321367944294842929528558348121489613961644528970696423468335638174744119825814600837993861343821017637881806322872691396050467124613438011639353477687979613785207217950042071607134513632478650419048154059517252775531090021569534189202525207566056389823559718531460926805631163124456391539250537652129173161282115469670079055050038223149639970092863282140541858518027693597731881763199751163743315021970108612632160762739856765667931079056266348012585613570423973187120254174393107176202447147806893156441801555682020922082782052805088377454168680861314217335564644737550329772642329382645865593714624330947325330196747548527552880039902160699202969452761791956905569790083762809365715270386213362684678570830417197316224073390560172921707010683469918534669882721152000925862214962820422490577873866422583353211695225197070933899218875468013389848467704975199293075430367966604704274830864912269667654793882426079961675862238640805651430253497827298732212777418136826918139577399576941852028504251610630120472783456262486064378787248955889005408659747145397508435225223803918519178627557164030980776098442666387053816615436358766798289956255760958737130783147562233126860961988629021756938116753597366428707610163486893178064811977403735842620466252674528774335659465412020179480546181957514601342626884917830513299620094642125255380006057386754843462707446077896243236922412590702702189301047928350057398422500844990691644096219682102280077868760114958881936430401557755687930112644772116046755704321481436186145729344538560703771329547758099375332079574664111660506727796080860725894283506404898678441608231936407493956872312550433619430601005491181460098171702347391149768124794533859047209002252205477655125694720009449054138632589133852023159806071138993949025251701464097479940403827293295363521804106472388805488763574446267184362460151406346657466680748502457395397089442711228895288997621828789644541522515362917453358054938199199189947003964994945306349248208131090049318540107529927068319933122123375035164918589695553542710753252459561362879802704133288586100405293991213536578720615764788300920048943726147096955328387054898457138236259017242391661003424959493357588874971916964799830157736047667973357686148151804386684768787121709282250042441609652704724939970528622883751445926438259478389176250718894614742670224127404386302862583997873351323336562868548724477789477087773634735378909392831283695692108820427070818259837981807928273303807780885741166961652121038675887728587068356253000992576047368532780175630861340534861936544871991621344304590267459989301487699894551260400115261536397109994121409985888628208798901119472513977621110627477857134600565220953816666764966484341589337038786045474297393065421048834944464522695604438462758914461496365581397729116473548617685845773779962545444167038210518786855687014788222445726904803755087948464393325210688868460632080038652897382453757380961958798220940848346825557024198463179986621973526114497688342716152228760751176866256121388146025084139609062690343260031500801494646403923661883528424350626496293881250454238867753549289625417527328430172059902842557127250018868601170504285912773095325262184231995859498751071108235500127986410734428656680426187204845869744355897821512873092251194821277636255901698085431332545942986147368832684126443200266011653816996131716225056634990150320635363510994928171920668585217845292982247895654023433044003862788606491944607585259477650138319705255792512240977688054048475859941968217319565375934285759464153368238620682053072605846670267196365972875511012902232109921639349077943780392973081058205288703527641105279720637597116739236591626581305240530202525696587394951813781497643685349488108017461568442343185361611466762826765297150696176938168705502994552535392015547078527608843313057672941784302544542632724088509292106300495766344837011450789658186704619516684829053380623760429351216288350710060603451395175358892361518144885947808561187380732473654103539535764139122582865737275785755962418386613454930961724563240718518538551446606670448203263028318189189796859824454151234106822115008968023809599145824742697140003970429278206944231331632493738895599389785681923014456201959669980307416550596956089920976172501774612334372482213312998722548150498435961289701566525614515716451895723366954394538833199634919739593138709344167554225220947141358477419782410654997525921798387115811248741814663853555614243963357486997245425695797458224106287044837225273517856124563261992927571247244793542998225415377925554864903109615359958660336936962171407319775991761858611348713214494661686501271937534698680819103793796004500841675368690141307984445834947928745700484111015404412826192747441553074259355626289317642429804046275031637465434914811496951841873381139730130283196803102317779684269014499042726105604966078308527600124643218941523011784525561327906182738300152667666233410964325964657567550512088663894689111415669303063956741491077701214359238927569787004934624812896667372817979704129673452630951728517998449640964592984583153807048032647072914997792148233415777399070792984841318902735757264095001166721609019943620026705050441332807077400908085340511584399097023410948934801036584257027697770083169357721721101445174303432114300254842250068267220612929971661944563432080734358353896446101496587609973714468594063266311243225942402331504953729229535200322809388532797934118390608374445113577071799079875500641362933970413758883862591029671065419236740912975497547733759020543823211068470268843264246383093351459922037991683100056596954712213096767910864637956309418382931617847213986223760078113017578499008316394588507318745575754007085920648522735315337943013238696287085423716973774935465953590423463919033524787191240234727549299442795040304291895738648870374060585074247757726365971107756637593110684598034251124059811937765503901964344033954869354427840322189926126417935215283706512800965723975143743125620736815864423629236078850648705659406370756824745155723278476846114976493922865352636569370583174967084535352154734160181139220874949866219098561677633273329386801956870521252196466577133235833552624218985820085424363792893020337030401238673012375934106957634825128885334536916315402317268296979543527636011366782773941912790892888327186442757226309575343219115456321983897715829749494049693980927105586819606195956711804515391629943920982971394539685706295052595983688771483694719131806233497276576480129468288144802188386091283269690112274994417210278539670121736613901082731752309604082020331235880407767163703495195188230415819703732303523691180670646901279252413992648189375403555723877910921682091659050385494834323583238444883800816820975083278806977411610791408018851483457611412926156371906210066474970234525204618380339574729879574350909989597981223918844410905896516147301877706563609082491550219883793928145772759453716528287578477192420886169714960626181966998159082231417277864886732121590120829615525969412220014249794277056365515373387023150447370208348350088789780795583908329476614683096824227132832435341853993203571842119589810030185405513934572678206427865470228244943768837100806254439839150726077009123817911183234662776652506860477530316817185958849939308276003835698643653723783697340606258286440729193426504983721489664605061903902201977416670287106404746345501175925848404942182239506573555662854049541751050275710218564704200790129883840559546355154230365308437747749669650176996675403406788013272654895209124096008104583072006736578564105718677149657316833700659204620101051363811203338401114632030418138327906626326604155643554639623611395359663673188020311721793267355589014301932623027307751774065400458854879439471566637979682273812908098003772960335120907902863434202170873452599309150780412170260859946003223282152052539908690554570318780434654780888491424536610683778187334532597220314429510149678684122772853436956705758631080599174049899179908495340774203598191823156635535295664241120576848227387085828363225045930827425874352464347307016943217270819798379307113064566100911689243159563603967838066652054053392818379681802898167141964406931439362160486207404548833448547986484171687291847945475175251712515115380576711381290566911472766377897226630542647189132505889476188874918388960608448810618620283234460052226785342004321691157216763087045810105423872042922009510341588178684294304121842248238468920678493508365955710007499026774756305075890438412475369811467750722666702291369890640029277270578214175440251382486854380002591798030158883996926926959299367209323531931232093524449471653138108370562053855548766273509656618050568142921777962707017898514084668301199466941311752850999487509020008125243842886064803838661221968709634095409928711605549607387959932630964663071640873473294550686660522597183301164846628646503124264695614734170549420063240169748507268134670783234962442742217173470162145311769169519731203661851996339837663268455384389658062560729373918049041594234452472623993375101262000481060159559222196985809158139261512878457144453191004554513424271689850878709968376673275671338501282503776848465524984444840006745345371487187812000813070850498677726525675555561312532439354279605212998608944120046077983274651583346496087284193693424966021475552193958655930152042963556448077436272896980563906616815014000630069797332203217897541780354696644137861689476306434789499682492121949016914247583276017859952699986942493420195721275874685178139346964136111646224427545366400115116467643017333481494696444647679272092325565406308732841116777163251700710203078315475357689789107492662521380502045583554894304732454546601978411742996189301884158912231351448261509855417000116317557202086079481992724559188945762391390781085700684050641542076901737153267711756520843517206846359233248958837166176480797776947799231079657119597531795670675985491092449518124171714637348121274349924299543474507126980292504275799529387825594716729561896956837550150290413141674250738202279591413212026635585050975189477984653966929413930929250397290070644615992222178526432453124793073190683459481196515643768688127518859745830237141329966395822495020419054644993449637663648446219151558005672545180287436115539985898004637255820669697863423756352802518852395910524048951486027384750327298082276998399994411473633133047633571896334488972100478491946654390458991100064233959880797410763335954168693638106670205543041244913828907923693158421368955926348663696063953764004304889019052615509013813268912364053781571776304741328539318196208811275086899649765530685807303513114509512049661500902833238365561490523279551574595187589969287113988592751682037999919124424617026318987665176585825862439446300560335937746752307195234235744439501892756768844035484598078001739517126735506985942271775237526900232611879243212527212059723757232604884337902295329673974413714480237750192755762399681665046599635926273581219657125075117580588196641390965814500629859169546989211800774900410678119672825997721371968057326172483622648261396568450308593894462569976872126024163397839635147923352574665531591090335827416924114352234846810793904548390847081568957191806634075984328823255945889249583969410668150497706457570360010901273113800235022987745771300059561463196321728329810680819241935783918155275982715462518280964044942679685354451836949165182739246313788537499039255583385664175136798854781145983603954933468885721470826443681374167590988259614526029305933159864420281931326539653686107184682280100983053568021770900650318699325562512865527982746809319252336303381709239280326444419358087054773041813349590693756070263236045012691649882102505507859810485372395829249147795158882680861865230846354626533705732738853910005423976387049932363848175188553494591941781504935170478941794276612303147800438628002834855979164775091647504789379302290530474165517742970212151447101336720648973417054784901235385353413134448174896608426049693877259502294654838423189147376498870512711945027831698287066659399500101385604072656614364610424574521516629348788625300681346144828194276440120688787369315734440427444054149518130204519626634145587196419160264859491637409469006789550655755376755501428324312828165338689118590368553823860278879550627313053418992838659692344474943810247629045377388023279288205989914637622912296304773084163119418804093073860509509485984948336507105249516857674908822353735473054236248416726010408766369438516506537988477363541622754669212325872416053194388199807299489251858712703502111569307225328368379127426034134393555894755609144942973422252732890316293756985872361416363754604704690988070736163490659221458581991425477768978128263064885270154983696523463205471519043005991971016984117631122059585050060671984804344057650063611498544713214843145411052638520206476089862682589295456510920375189168308016375798917002327785962364152007909885268303507619381770231870214051864610026880150766170636607683181487881502338879969785628536576064794103601172880206586681337128166729339696672895892726377580888242996377345976485789385747016224407994779746357643757396915215966179650714830471228854021344428320359641012661541036289127650719070963099569409521224381309237590939708911981747593654130674389910701421813788320134621953859455475242617428126015543194591483404262381597971077822981802827413207667601065271019999005030817134547217149458459642429883055792181151661905713422897114964917242387546490287526143650633363340150875332307306718233481488482536158945783517998432598042364464019077246369941056265717326496941626423402697396767296174755514831649020616370816948403214422575680480549585690197190858352047617573019603583376780468411498358934239720710007757787735962826537638867340899733619319228984142108543951575201554429889076570508300647285458271460935314133166973946162878856970081295984138467823521335650027221639430985156572869888030812779957745648915525199516020254193091529327703456896543170773103023237980415778864929873776081812022513398372761807112980178496742588271599234947627684663492122240332306899793076356604074127052754181362944966253050211229653707995921678863741934331559976713162007154611946037946802871120245849025651456634733623487045559646339721205562312679323781934030385372940020234905118682417951188836882939696564610937716769617102252225425750353581732761180566495157482331378980304151756225517475852934673459150633790738456739469813707860471988206999136413199958530775186483049606187565826935651053414329049174731407863834062736915488868523662716682237981611881994471360416546684564081367008938059973073573675657980302291390022425060870388035854301238963496455276383990665185207880950752830326193363465791720319886780430280397944860732324830784252097478038923801025470506202176198741751073358934976667531555274181410214725700100776867469207187576669381324054125500406602135238163676419367383669394175311140296146487766930269358792869394475429469025647186579365230989542644097650927811242952037139224145983590400464836192240387723462398053917448366694838799332979319864020475570174053136093890624352862947853074307466778357049254856450712709287719099819241821823201764870019586082679771105383034530673128884346619651582882256583586225432188837386325789495766275803940070766458487838667357346880165999209292572602131403757445094666604031423794442361052506886467627570162859067910490058526376453413698749152908656907837603669862560762938406970132724100753919213164457142281570584159448813412385685793783928252167946950426424974981299653227562848841592474066959343192295868271279552801812881210648047742126493837407511775902715797274910742897895795437825003504717915195883539962542573067897237192117617572352772760653302558186916510158703330046502148538017894347321650068278950893096689945122090346054900462408611519128577425410713876744989961469849697645347093788456901301611510582351825784170668436427890406818300716150342934672295617211743052649379829136686249329974393642743933577382100367991088197995988730581225713785189873978631612731096005570101237295009292112830239286649714182762241019026530631487090198582884135475476518451862535073360566660170115109248384338630733058188660966729037648236615852534012746549557161438581900834219116235659379813390647651657242366692312404626262600694465878595820630758109005832851303085990455736653881270707410401491822434519486857604560681049055504248605468442556260188766587097427497505593898514601470729138695972256598841751004988074955797988393509184365406276807056985202874392491827349024085030789961641761517624793591523659290384961800193331026310951796956894130674840611234268048139619700827539923899253334344518884468538148631868210414976880279234944173887763789008479621290643942607508284105742429542870756690041394030472867930068159909920666091571730394000730462127945353569310990567777380885550511682231037917395697551248308081844333945498990705075606253719077534758154903186274218379910456485956973217432776341731258680947332011048175658793750191665011420556406340868889041200564182596507797517861358396167257467530612277726577746576947491204721130029627443987798169261833248075910263984626620096158395278673444239043890648001172599923699468221736648015206018127016662131608296094727808244397312594158107527741906323036514973142841082176549905670504779309870680076008741618530010791542071851001817312993906024648999241165105688564613712552679412652855711409641103018187414480227177075167153972602045412045838915776221019085708941680876995341073761289694453376555607598533218001653151799785599429617259979941818585901088674143650409320864208775198977130178489181290795079505133073454054325924322564205838924704845383103819689336877010882887114427804584051909822279481714577225747832829187072428374399744897293177825237642222873748089916398774329484537870657365948820317497183461498156958692121184373873042734785364039395580571121313935621263540521597670961119158420206533311785117200316089655324290778625748548637199005824369490765288361444787401942411974109995142351153544308130955594892158561298620297303199367454848081412731793867923196501177378205885885052385576230896611283529020202638363912717525935769755948238518675869335388807137862280187958663179093245550795850140195175414136526965336134844592345793393663458771490998240692262542798149204015836580137566456344147555347120705033746939371141972873866107200992089660965739455271487913736372997424261077070901928548627317165273827992312367397069634938258011993498689625803927079383713139961484884997948033678359934018200545066672460021469664021486730145802325637619359514935212088942454506727648025267504725230076261330833070722740954999519183086689225218531238614206311061653932644800924437281149972201491758402223791289433978999097637017986657374307492492289280497509178578262922122113258983244953251658881072489212444704012715939016962952730536098759509526225955731724943349800701581900673253586690041654649024480008588093955164200116559687011673014973910119142920538760010572182620022456234192761188542232349274573594067878243738803907535058038363657127038651190115793411994130327648240028874517227365058254075892778642878146446618959099713135959643420627713339197644744065103936636989203956844081286276062480701946931283825911125260732670985557504636572966053529155019617107238343814337873682096332952650001583532795313369409976683534597330708365613541916160761283207904098942299060622237712171762220230637136957424110981929269721150854900187145651280842899364898533632176369941516146893324826119708329212482705013937994592772565623371176793586228178760959407671982674936431257786990973615208106913669899450327626615517689808388037786726376707398074685379540130527180096736810192099087554192562140906328153322390691940292878299378127881140946565018157699426348492377470108560472998752675234226556811497393345482855415250259554054863098528370396622038019151859042811890996561582820853849098736610484652419496092881474890377132912643957325807705548419008361704274221715996844791762566107556327547899345944679801873198759766307254342803009226447334109640394984849543988539377647682361555517898122629529395713076478563054645845295510940556433246715825421628780938006393927909214980234264497061449182623401809769082742583975429176916626466197143244023376514482485262662053029888747036294358895674234058341572761052424883104337410055971668919922565094428779495546680666203485218109061100968550628678640020389706467652708338560460960792563757848657443012971901464097026266184079382240345995969350851771603361495753673454857335320583800608966530608513357280136057515104123566076430997012365694397249040448917874730446999732867169598889915374217575687567820013984759816004833042788959607351947328695926823622498050137276954728448701154854391569447415842430579888283921293443801277384112501386216531120322981451547350563793628500233120066272339678934411090889797606085427937773889063850399337626364026310440172581732070738050687651892548168376671544316096443672702393584871045531102132564952752855102086878347469829690545574623913756410389860827898531775014163896584442124004403515221926506323665371478416988051578096768077160639041870094144732652794601050375360079494261517804353342679040206893983503046781916545540713153990378981772755286289015687205543598327265533652288722755886205210299640866799682152716258581419773692289153645340893646301143590101319685873443376494121423708433791774484377061275772998391614777994161736297197098997022981338192903264596988327118396694325500468813613840233570341606340746163740128490153911606472341709829991938404575951035376889668176660366146427657609170220724030667036989624174879376839986180506339108721748613725735497502921436199101552461299281834354832119484494206271832428304344390896954137942785728581436106518416099573610436162073546398734074605249083623990021439962343551936806560482614911258473423558306804405260884761706727524547716372555607519714621745158771242900553171169215290846957042619209926499180406105574804642434226487057292266863737577763138894180872985872788273173074443855825007024396547562503560264976214086409644168010788274391396272738720527029755495571737721827889288598665311531640458713863018972993509101396556335111701508887629205742044894789751958551096750732462211762766097932518994820357663944970289838073395551651615729491814420096887248789825874763482581312050896586209150455749937632549180613502101044930788467832510511223092918034480542116251086386644777099042743937121761565698915781476631091471392897799219676466666456011491257112759154381457380284536956983603469977025038267823620459255336572070501771634001961740250256125669727144764205654129965840975453209613292278841901866214638784102777572588427802727755581677097618646829042242850402172046582047085434496322900605575057208090608474454430074285095342002745828698704078445827635479926205333457475787816121864417307955618307962329676456339509098368389265867640995144311462313029414375900224973069072242289586590467607341960628136696190224641022838672945274537763535794225825134208564222460049977645381121938947786494207541052467172387865018417550948619782238490505576333174143155525666463130227872093834548481946936157690319462212338300282852620290113067583174794179814348545610052942915485813526395233913234770899389701839584764807857004151932671098306581178914013833038456077290801634611785375978455160392934981277209647266433723802308487324245493484010873491401221423281133432504911446345557751144737561914193975751187020390357594780578993381148528205972246470222763269025946422412435910764491610871160693897828898087611204615119832186877146508902155966491488453365480987529513162855092438974033236356128686854272045820329622110582872495417718784452152902252792399892105328938108336131618004808245199789261976060093276057250197546956572182359735236849341825165027386800306879394941317288156939617437776268408689868894543802003948437139230842941884868862950959670505580945241554015155602826467738411642200081670283256094570987741021536203119507376543654662312664933865295951635237032856745418569582013267505406684382830401878489976413483416479482929080451334394046160901656945599798163849779735603157219380343772376358492299870502775185431212845881942521788453353135983483629840995847965210726616049842027860802324848274349250269957892387307214114874207887771604749239273650119621166606452228967774782618480763126159690127706912360804022953296035624240884772798551095500515038855925299200232422416378794250299694242365657036963824571449051823503140510407506589891803467316259733699481567341522892773176804679640203533214492271499112741851329483139541741975138129564880490967935364031835006164931564661732534951199176653269536117804712919190771414007719652372283087617126402433489122055678062713744296309536489971625122856640563852407848145496521807661381899230801191417067430535904861425970029180233396283942961653429015300600279750206115206176478632746049939101330666885597554841967302311405576516217770967490214104586618036286317177719123533949227043110784666807353801785129916905813370382234426878054152720759898200258193903075589153785768811038797686206975298723153369266413829040414570787795058194927349281361235897634551780322289115328487060165608626925968697070892779681572129484641586865204873562860001878525143194627026147939797810141268789431233104947960448343758625594772279932545458777833171382207416443184491314898651982694106279522563442470717591443586878354399486146602610682394281666426880675686384666513607096587044728832405681291274993043382051647709501670774320662681139487430575633538536588136869378977986644069617079672986455578552887975066458544922298201308925209314238428208745401442076888401635993069148438194621636273543483217329701461224569162986554489101199981502604737882127815084784937235002838755209116962077016279729532433657642896306377753931299859959157757810885973314655961495159522665146393087884739797787355314120577824484554454528666445299101942759883860684338917112702687388915325889192377553848559993321323782388559611675409096667834023453522975121683586988962377123434426205620446141197934222520314145542112852300291070058274962912441645782360495373517044789599027505021731067070898449695694210858943296979006060795838315427439037141061913592185809980568807634932483954926278193243304207352469235069960381021676401423844685466134728884355386236758460071592372497878034755052864806117558024184720767617835394636046576277196752375673325442591930167601726993908799372754868527054006686934485669274200186358313205140004803090219416218363767025318142859071098577301724010632438713494779360152582630434168103797356365772826763167124016976519054142415224884279806676864833159185138228861020815827676100121297712249399832749152343075552799958853083853451814365145997803922113348057190209646641122354536876823295509888392683188662314775216887800445008647909794773662091022618684546043853352205370949241820786697204677051962979351706192459418351043219916228458724894814048068084212306296004396534711995877958633108527477920054829409589120923828570094667178446037371998465331428681077206424397800345855370069886126063433034969283703197015432875412991707536926764857430982842152719201859148751436486615440650902678102907121179021302091885706473950698538914685620760211640249388699854745577696996098042914362394705935419066510271403032073997299154380936812400859568931324436940756369076990352238602266738651082994143182321757442208665074686630417867849435667389295831081574166479306586126955644399777826037264179842579256303264391887787634661021976866102881166174474794208515830679350634647596347486707448334919408339942149889896896447309300598175014418416511981809326041617605114653075991919122304094305864806855973719001533715118330341153060209114845740100748604997796278159529344423378502127795602886756218573607206647950197758905086855097812819743939541040444001676173207114140279625236075210369373416096114016175431928173092273551501132879579241665550855335486795730494052018776069941828689521480310495970566142408002229874803348922843414125781252262830227383846219892935765690029539237484666153806555129475863913163271044815685509855971484239399148188493075559098443421371055590269449060625032836842154413973124736088672306728827500460330390701485892500525705750069568309602555281575408023909541174471507278924560914889481023747836132875178790437719924920946843720994461940498668900559563688348995576975592275240790154279472385488984917227186016756489070241008718892609893535411954148015820131798263113133780916626088143578744852935205989869917051836126196716512749896277285311053128356280089566638150069072189492158158897060655740829550811025640572118201729982306097265696389848327334638482733401893076814004304898080522047001169816234799092725367403567559462953305106414999976956223798738360722433296996489610042389896765185415966342742926660142359818203689070693793256836946637447987744993573329518087341920574828585345669009736135049404573128723866325413655248914513208343474570588314267431782334983361152625606548973681849385395525626784979848302740207016311630633282710607461534395219136668201051029024950468546008502392367069353098629802229403291293314928766606662378010444895922347010182778198177003324974540074777431507656510405797247926123881336251026245914723910201586701084041700693076642228939414676942071800871245435546093218300717776841930052509671740907893000712184229994341638143136925037796232671594301214746839391288223145863044480129889166429079541624133825515992028054563954681524973775445656354540577200240115521064542381276844958706604840056476035131744886909843025614055968476509355968408669030564958522957984329683276363574149108622727588890421324994053087449160512182367943858076377360221457161785657964025001734637438951889973609150202945732918569347485847978019340609839522807498348714588569889074322507576301013632822463196358544095548907882370194443152432768592147572169524538269159678621103250123290576074101322674505382003099708775526531110398523003775236190589626507047123632966981294112155859231471253902254813456473594237326996645457731239952496141027856988006916059906730647454453765045664145078771087142355550090906839075837593110957581240886592479813647776874496004848321341452728035285752306928729297988973276810085142050283574310351377839856960715496641166729316061444961018358473706531338111384040271216451019056787449000900879044404331377148704301104763524760325427041517275307762077097701630862544583900113222060542570752254497152386365718209022940462931992178425861062642023690014495520493334498946354578497273350234981462914257575260350317399459410908523298177668973867632595682599603091413858259756479501587128524407169997170298400957922252177662833697869492109241368219589495470876699329647819536633376316568139647765981713760409378715147881237367981003641714827426678245780728024058625433746806282143910027681356920653647816864511344387707533999603585831215147096546093689410459894121929727192925036885412052305142616332409605540207769299389693626721850562080279642344776012504702362992355227102961496409257287379739979466520313405978240874321939107817538304630221447739128398550861629792829466471703404248603629281498861810920079387360781527457939373223831731646075076878975057702550781184814839697084350360490860699207637256310188690606450434446137643788155102204577228899417785987746141966475011274319311173802797885124475760415944294061074779239198305777580233432305176844129872965309143796149239557101023347712455868887576998280555289030101365875037542835079269895065226236833817536720377721384737293427359076378165393590366115318332874527710876130442107917086259336363404048176909864842415950359597993599712642651796765587610383365498558736479798181754192789121228422064370412584761369430676879746825409254653530768112353450948257506450272400069443997297929936594827831387938455829644502694240436395350869357798846294661508584584106310291178709426229693354636523817095302188173733848863326884454701229285385434848750410964611232688724901725479080208888435640747928754782595897459623482767288357721520931199118714873115448839622266020211097299373156433479540855516601159914157001304459176910653516812710067337087617012581923729472384123780418934561983404396564047122073720535375533408818132557131873210246997895298543558631129639718882207546852822515732215199643364746708619939881166342014520690760563292553735051219082014577146024999400157900422772657522833778673831213362702074291577939271636738910020949393940966632299151430030768819701648714826277629895444401893193862077369427365852186265909029633937554963401389502408983625184378937368382460301126556388774627987674262675316220770630786350836738921377109142445481146027983127734377348366589338187894786154850879938844220212347350137730923656600880971559488434465597075501621412503453795094953215010408699296953898956200355566555772038259075299992839660517522403557326614518154877271078133498114390361570119788959821912758836774794275925179620904169489541063086296916627459500904424991177227790607150925230373370972944525291512738588418728208303579618281451529345299176797448075520629361291033289672058627125038707799098921243371186403373450075246103861560295640214905705349483347603345823413305405431922080083766575328900100100055400796220800125133135392374760804352559189740466136672931492137064143299496043330966194040401333238989593851394582920613711798667485180038258076619961545623200991141484826170993925151319050362779999291575511702224465668725832004968526897642231594821744530359399473810490072143844826713775520707390010260680636954761566334466667031252085956583637265488321406933909797896030078343474426446456319346944704447242628799637955872383787209016500046393071370056916727418862471774303387652114783147575386879188967846866634568382213015920914146506378410406779317390042972385369769087211617544696489225638559560636921895076076089673406066296824813634794278590056258757184166677807867509967674792045388419228408806110634620181575221403847621228932849072160155798233817955495469466071217070744805015704556815074137360818180433739147854853848269221378407566433753373719012732295290440436622285576462272226635846020360867752275534494440331997407010018389348276708892277235499128450946862610824911476564818656056044316254153719150571127715696999586813412823849279699413176824497218947964488935013500939997715615726408642996144514049259472864712801652792915486769015994656247126012361478366948558637654490422484536743609277554821862241809148342483708457669263673255090754812693437633494161485323651810223050529642364962232985154176009539394861324354894349811281906631729083952758752535451472465441482184749841099257631437027816051173641348152935456930417016633415906370157564502784195725000119227713516576090540315682058148507960051550209079385772395006389465898604975050767509668408133245670682557262735436605459259103691667215051178411421726085844450839036855258737266705083359217666354678498629701357435466908753269563142071266955649672824773634625261112562405070125421546507682235027065623079139758976681614912302524944391236136791973561933082144324866978365611308756321899180848880626984840885639157708789445152094419815668210698069727680368103325965901395730726376307906789393204604342056570287336507210700096077187556303031089016150165959202319958427070181976471942608280615354640583862003222732729761329065953316949017923442514801595732212397781912382535890320535543995479705537196911914337064180501351222281497385234978183891893477849005197389633568607738630550303474028736820233333196377129257066448164151175863447813332397255325309177741141046963988116503623682223189523041778695336275692565924067642934747045148961866449162059759509979340373991802767431468026010570571349786064847595725502916010443827728744746042822317041999251287288372332022202183143120630983804159761098608663393225393364524418072062832521637465692021982440178997574015485336118733545436909033960086843174320731148579632614401095307968932855313417756859777067244572664662703226460165015984757972333675624515812260632692875608742305283355758496561008386395717809465864559142201824651190015702204743542596922117524864207499238379282925136050207213659141236306881897609981773998127180031496979825686298507745484134166481603609990209537454596040368587644348075525794557195899375478957893411024581543371023434716679306440612924269666584658911424270517069172769273714238459058813126096073939670051427623016689853680122165899436396285981064452101973355108995363100584613201693357447318349876850436142277231852590463572437274225872992331821337102130360197519275771107718595226155060345816933578471983821308368805609506086684931487945083291467573288120193983197677016152604536790584829275568158067118607427114973857049603030250239174892805189722560517941316056420655500987367505037285693144160604453819015749293389026034100369832325686098383354989936344183411610011074923290668246589632695236054913047423216311193378725321044521826689888129310505448969261419383724100629088488326804382716904681287244709907158083347748473971902237742236010830451820463080408089070425962581413857189851290507178670504566706888016754526889385052324971643977195376203425048484715160067625417847276096709877155821955845464169805809771791275956865043724158006953670930329910525963504756716293359021552912946563791030589773088169273493182262077315484599759121834185495335972008906716967096154830129136256286451193269227110134161954733495449123045765712325236823701588363535643679793710754532493632657922184174470263481194563949614559272118521026107526135758343742824642374296672316274907712240595618838938589167837752030630069666314744721712548209001413629284370791768207088987241281393022412752735969691128918361392806548041780740892985287272614489672953940909445065056834789560845718454780590727887264262836792891350209671386412933277943253777095836236609239666048525862841860392471997171474588705805743892582410718350613833094417881728704408655346218018251491824569042503052110283077850505368943417901981011610983138957935029545990794045858307553411686787970185905187780988937632073407283069880960966602538803514126291917349256526731617548888666009435979262047040817189889152082828707226428512532336481867656274730127220013053710167128158794946041157116057256986784852011865559066388911981635720560774410598857349905813079724694866651306547201088391022917814140278424399561258539506570226634243629247296848643078787140753109658488724262008002001887955770246502507051085339632489893516923037291695365616008007469945267860961282300961389673341626842225626482566601109036575961303548048439140473356851590454565317959412698657897403860493419129679844125661367421033441899272585258796533699478617906235176024383727004528127461054180832295230965530729867899178428491970656350039537671162133895712475220234074632843821156500020933340485676647307800108299565165279975093086629303368294310168703438010550025777795096920062368120812295992485656348928649525817557798613269596364481361834266367122192298434635790398657882987379851678245208800135158091177110299558919981543098238610860660489986149083667025542302421888423123878673019620009778507693228213170387652303658125075271412353607081998941640833019951694687873142940353688210096033844576146718757432361126314784093908002228367615531851914930929740537835608377124305948325588688785038787830030147525960168107617461239142115804513113154095057936579750142562994748502067321512698453420922027636234794120085890431908161951272540173949883286946833442220842457055667330659054003891253564879537621641460973655256305873764908475240626258115252927273183575265169852720352934959659137283889234955747184293179437689498947695651379609523636984124039609223737545970694880700185677005091412716982857146963754409507852299185816226321241912286715536742376101761902094345968130426993055647123541366792245304077656707908626251325968901642434394170401996368136143017080706023291259704828783860701763049383409483028115462125298124496765617293081767782064689437224230617682548158998002741635241716897875296863579036945560356409559907667285951155793499302885906529009984527642902041047869154202425957578197569946592183342813404865835988841431814369742223897683031622590267439817560081577683372451879435228063637887156945432573457743013326117266892928227024315473156611923388774361600148232572875636535001758015842416568152789672752485228836830392605852696215107106347160630977887783930897552374371803316147769928150010924294451811618706644617929696712114880042967865486103459595155309676257101322890465606928470644364490606322521971837909402899196083562357782364833209979747094067120084907854696704505353175316414760129846857175815576545778300222608493213354515209253352344091823769668753400950124859700391587907391137577161155880584027228392354848846246230091516396408629126674127098856616677328269963639255813050961664177862934513908973374071836269143858699580258736747062763209783289625877652660844681741056622215996911521379455610588869482477201847270996681304188983818444106827230763681434867696615476131238358850259434475942436974164781468537708740873033912866203891105657140769004077784394412214493590322393856176984175701606130581084374883990115334491201570123675813577976985329159671045590695290603990700191001207092617545465329324353819004308432263100032179246629965427721726755456661188124848396764275157154511603672636413860906124496452668259731683856408185232791404237169660868347326762829223442106749517780243508878169270970174387004225854252358933569772211040716483064830064318983677544119832104128346692354918109256340130704202742156342189840429609134778045333731473451756103809702898010756577360192204399921414186380192936354482918853435023257670547725653178772823460097529055919972991357442784939290315269903095442966535341134328330696811850479919739955886877886151388394040482304518271773863564407559812178721566615342673169125500455823641622708699955202785447486062730528921793808692149620901955815782444714187211073750241532584802742019353197252342380065101937223688894239123472977596686207512646785819377284263566924878151253134732606374184198922000273842962555400759144154003125200275011431562364995056969191711724136411204026144699165618140039532302657190514233429046074711503913773613218947811337076262522562499229808541741068503175290967091578786089866472906645927144760282107193435656927654708167232496388421683106875384272377382837927838787970858097672189971907597903673427064921243477692195536303012164666704268232607210029640924036644007008954651778700494288304605402236075041448359346763374640989658865527389633253259977107434208486542798939541033309161322530585942176514979971540992309905935830534495263793709659360397641345820743342126067385018824284306519238607701331930468985818016686455320991554777975230226449812247744920946948246054235512916467056922189431660652385417895418627894419352191968762806446243180866443048606885654402208828079482173239389611236564333889694237004933919625545362744644859909606173836100419790177461947246694945822289655190080844959237632973865431516315931620629095583957821235554785354718923448466135847266496378241937841532328099616022010684978450768269676684697339285742805927041440634413030937453889129652440242609056058255137861134972602934573868153382249223603448187476452122150145106957668815112302772668460574515778081104411385402986862925772598916430106306788117030024245408411827175154079919764539034941293774757592999578570619644743034859969132950167435422937964261495238793323947331464634116380550913975099934570480767153161280963919747163455578000424147064956824879520719432889285499655431990907189007964373928068048867345565848910760407706244162407432750124645850840872793875427071980926674600157249899301513376432235909178607046233138960484127802615659621560404015529120823103185156872741962633647915964441524043236783031014619343385356283882694061974184682792136775152377749506313721621729643241566854027103757927439961543829051559500870414937095222394173525638974026288361148658445509614925527187874015833651720078061719540753351287482248701108192878568389750009834228835342510216509898649969118997514825425064911267159879319208215726883602223015056457463244990554619210193123998707881896749526548291258518787778501284976067793583797011380603364410547426013362707479580352182304574838935403460096126640876514087170977814983987853538129915324608025891289844796365422826769417032925910056134673329697753895750370317057695047065727418205588742116590895732364102477119471042439364918983640688939916580638884692545005539302256355889874919417254700843061505406653364063226868423621315168443391196439633730034875468782828145413195163257053994634734896668314814651763650607616819333762414632024952675522793622552134584697295571547689944280182009029034688128237473708643060469714771963379686304249827697455148331976622308349499311984767091164968932059667050590004078937118298239032054861855082300926948411013673573517746339175654095611810768129955855167565065227904734669747892980800564109505794870014528870253185631073539138472643984420609470237712703264042130703549599184660783290006138861720336569198798698170474978636612982859689046869418047388763429927386721324918601650393287640172069939056032437995889441024628563513258271681489664950986475509873934530468528134054359063970054027809874209580088122571035917672478210952771220245555452823296024842568146097324261568104734985145979757878611456923632393917570347404493692988071798479356715894806855699167843029462630856460595484740619931681483978630053873839922109122828543880083936699241885670740150776261135280059928673969974867150549531816800499597712762620937688943115658186826464755047628824726935088356977317267208987184245863119581360030962757196426631655389859930346974458805031131300830948306985792803642895873284736316156597845629542435480197967185612750185292263958386257954796268548496208295386745947747541539026264464660647668355882387981739681828107090816097875936897727552176436930860154372564541434054400865175994048593639537782460868125941662044480176748615410000714722409834576241997683049253664037460167338149820581220147049956425504206075541412940447392695836692284060686714769019436842255305909251868718140081993659552626357341565714763027783318787428015493785666963729386894219849863142933126801670856848100132100233925613223023636675758072412897186491010838605314805874945714061112220072800077654795075642437499346016973043724052610142207954819641452636952933089696781653006406572513462060887924396526826331456497884866513508041611477809067713772389241078713519882388422726633426271165297051306411624973199656970808571259105742066019249132463731195297429079361441833294019726762084873826531992335209800097383882078289269505973834294800424710672392702917693566582236396778246184791844043695896695131437335186495101837114076419304806944575562198987998208215074776665508269057842047712530527883005263851613413177553539105883449758977547438149477660206604241991142687659120406546826980249164637798914706447912851541322534816385689389946127206418721583579261864253815441527009355904996446269405203646757796998238274148416736036830690085332209609790009428524325818642845758021640502591062093056753717140614489506933822079099055139255511082431543724933962807528813410888463153172901662821172415675417766309367535000720412045954218391423989264118373798586397318300268761359835713417073361979203236488376286656138232778597167905071673438423318063436685855769209097431424896506669728123039519289996225732912396668478508109808631335198898410126344652804480596770735860840672261850630428982766497491942514305291913755510147809005634078304894712446758507707108628107939970284954443247812278207591690935265767501210971589893092841617689944408288757507823975083270311618463749763228114958448941638374730056735510046441933967777678991253506651852771829622178080802514548972032516499627924673648676864743507892073461792841766777667343994840532561544282625720686048229141771432366592049594636099168250633370797413329721119032210153264287925235828402674346668160175274336754114725204921516788040158234696887458662302568910502781261159853751358676727422395357271686891799566623393610517313555472962282156861412383588942809277197444755459127658064881627319262839568540716726311826918700669484937105567916463736176150548646738779265164015373811648562475669053006347360096910804349044511548348484949609414956838005200138438148932589470039916058621606347638543851346246136804569949354696311885915188322485558902225351950127346043701238316181426343238823149684884826054557060724955501674270257368272289293176601399839216614277094290356788499897996689460669258112727520886196030704008369771285400330102097764453923753149392808960113619070609291528374655475127739341685260384471804445362556080834540680503146648176521030318731176016661718834744648856583432201213814879144139019588675346946672868976747002081299303353735191410260366793458448008650042240736210684996187343732293643933076759933680201827512604862214677022511805796429334776767934939795438892720115488683953733991344324024902011545315920921567278618308446838362318051153668104330891235523112306917733775957871614201853701845603522158088308076132651604576179532998738585408027483994817568550628765300769370062276711129750120677144298673533310278400154392782851272752113561662290136614794789675052002231596060159137336777191203131576497273780492834719919388750196007305811867396159232064450840684028605889267643331952191047795535045829780024387803875983902357131497006736684115272672298549900303100768382080474317818889433524725232087942344321635940190684696333687381209425457784713969328701852943018946072565690701902328492646464016524023500160423200975740084097094437286850463124468884768593939272415858630731401363201599390209881130580656832180003502921648745962505893350991453916220990840155847706384130804987731317832751258707749150394314149024538273400114817637514184840222395389205027316154514387742348129014784144781078629326360230439502711399782669660504119199840387051366723303126133689257014377997361826251165697276513677483693415718247647913191064105933013132768661861380310623268689830584342940973811360204180308483160038113571269982667192568692297564945940175944614041449788165824694239435005810083072885194944793297582561082298063191576179217051957468219676228047502374170779709963357748069013178282246337378562051969730509779549298403315388826730708639599612768935566359059141146368272872873540466311902766687064019874976531572420710241793462316825093286718657977701624428267110364996440529532101547009456833977189309836174715432929659771333079089484992695513869101559136810251271842594945292801010149421399479431852878894774080594206283668844978056164719366177699338178932811019938776855267986535609708002228680117601059085466432102695069932245929399881455829164703891419044860285382334344632144695718571162502091277066860147539105440775402690528292496919252121775018295005712357057486059568340299363060050833597764821882119351595416397460785307708549010813790893670030774217365621180256399631784437454195067061078232705604822670661298715177120033685462972648521978001815022342244714530306491822543157916978321465575005057287522496318762950329309973649910047193487232032489001732162144825845673528670336611614692035154996952694814731122639072979008455675635891080214008821316620007101696081054354006938652093123314247038738277793811639534061392986401943839216783957154905730307360693406999406021292177638363686736940065517885154789472933044887194615556516427554964891946884628143087444037200258717274221209257337887631497329570832130199547311470176244505559597398958150739368636842053651024446834272718314388360475672227374675430315401877343630656831466129683469964456567473156301467827156108064416554984918090087815896389377642562320852451992840026936410318516833837208112175335626003526038860373145455158148978929970262654222877572512971173949207525613698835113190121516362285522361225462658117689790659465660226887175141764628073712586487577413291834268998619615466211258659868755806390033774482222576289334826697019820825730180524414859438309467038970577305365038649761274994744111115973562159587037576250257623908137612528749343160443672097501341348237656872526916347348844979405025160594229090727338037624570610844020669762753756182027053399424542305703243948891693432791919950648905279141362112424991597268431945472728241997794269844416482410616299200758780909639551232898353341385183641763659563975412906691199080861809218019672612155932872258536590416114214839849555631720147181976524506867529443430936990080435856532802307922721797834858485222807768103043610988762039640807446341406889451155881681119641668639988946137699520452268209116498418598545154356670190231448664746666063609889771056586267617944556040600153045856831246350010480339656162370671173598889963871571396455217687671985059350187471490735768435756308953129860063624097083414803980588196616349348241162537316106977738539784108140111132189317934180068451630466180713797457115802233663840098282065594744351887365028661361833615125371255389707840146460364049213882085727005134444168393284229271542373513559391324162807860342073365857261604053750812575442900433489401279797661587727618303249125711520603396124960436985147238499523570785587296792439230521855479683797080742062859789428022319256855509187884867373251820772002748962205393841965100608699626784997680534057333355817147218369948475706117406288899357225334566497785373416281676861157208596822490380622273712424300678790241799954796795559914427292531033626370730709723183833442734100247038921058043417382657775942903449444728622578465251299427510610710177478860720872151389999878559238203307820986534598216597709384554940344955322105466599232869850613391909517755860416906229499105266884763235473117034316359966533755787066554404913650331115385844090599037936590524268996670130006198024146468588894013313391352582004245871560059140944410993230734612288428531400772001782333561639002672648941268498379287378487454237876434785434464050588789673871968158111391198656171026944259289690467323238998437777472587528818139013837429432551453141292848849847729721834738444915627255577142871030689322103948599487313422711124914981438201775359054208795107475355614719281685667555675726472238355394259906475848072805651686194214178922420782238076930049697104122285566476576750384378829681796486278893858505061522037573600827691019948048715398708747147516769234758390304821667718909793220629706515589182702971170719080128232741443535418734015204448571312095004633141172875230518392680809415845027420855319914463905601809598887221958993954149228745883756853476381938548459743846673227300335984427008390736470989913523715709601579895986350984473340315672067359485850462578143252483840696572262324937688756299806502306564821522807450222366153015281214968342986883375477085736504073876976809902315814399140224033212995708220836411909301981515974464053218774883166266307834516757676684510621016661313212848430518259691214712114558935676868444643102301377678327874534783116768551098018170865950210453981183135448847987153374081186356668405630876442638471646803399982465308381215923467700700061697458289223665143541134190979334008132904389375528686526205455049640900317303141861236814663128342701686559045751683752864101499044832534748083444540163522426406977182258848919662132537723425880159046495157641729435478786417483054733657196060630387223716517028184718024002959547488730960979813083465996943255681293062440301719994347313378578772914533804670873099333955034871441207508145381649040649451400514342143632394392914111124862253496607865149777300278806199592662786262763487701061903798654167181925473611956570249842289085979312828112311069956498253367937862692481319480114848953531057483288230390143133853278480550073675919423754974326607205281693405531677213779373667430591493896111004205469082738621383062397766096356169608250275937392772302623714909496671953910223329534211598335874399211964232520705311866942880735646658077729357521173212964170987583487481497078076796899717298272132836151415261116032751587011519281595991246003720875262029289652087473290945929454558686985060952595487656578873064529331473095771523786283369478910553965861890041087291131226908682884853476505134906644329154036401600879133921535366188306545929690783413708503648247146996061441477750022590623221823937554836531072964374043117076432802706772641666758079815261205812634798616076158274667412703096274427962531274220609449895115617292688801746395868121949320576609231858243151537282475137017605387572039856853961236737042610049974051938392245239892029629067747876431813914330814390278612442220580709439500395606516399985512424220472033591528965164951851131984098682048802320707869993031664690191275081530101275119973497126815928486031872032535428976081067476947289089843119755573513979428443382132231955937202899476969390009279900776700900877743278217707324592802629307089268122168285746109456528844695548309142864911117104829637459176936409814954980363543973268672374699090850376964565058258089408112761470529513179840146659464100540002835209805335528565848414820307380321392849994218683675644289813607234543951382574897079299174451048138186312964279580069522655698913398187697205259639338181019867874123176943726622008860091258900638958489866426153795304092036220982984868592050348641180397871013801981188456896872212891144995946039459372896092014710729011963476256361274904173820990750208191579415262076954042263290636322164385335139907223414460005768059459717486728294501797105149144735195297678416110478627350763811513416216151220588560757359496225144982631202601999131036936304455343456119003771752605504853668533239988634421546880228649963306216045576090408837396221927575442134779754827890258886103690932098466838299960327618891446552888184144974991474635878849840945513223767028836677894524668758256706783592736663402818166698409633163637983367008528761403787125224106187622322259830525468881487606355358958743306480496685906867314432861755783781838978820433504263238551841505843777850974193245824167429028375725750275491066095988930853346697170324569336703316746903656760580272201162108119988836229009606539901300621049359703112303988868245324868638838124583501971601326086749524608424517930810557209414228475722824080311712441244529326039794649400192164733464863742552821356432126883611594799449301604393395672092249304880094934951755752993466092245171726333308307464972179898488824126232112501152828458820427242023498423807935508074612097825812833940366957064950597474142899237854466220299947142844226319552913951471604899871166341565715405464791803813818498694376898526213284700118208787971712954504079156063264053912266509357705634068173724294958328021412121327452398117808139635736940282907293977989765018575851312316940546044130820091712581495276191422760226348863994556554609011305262194125629545053069550929142670031415760924320447680283629887549450729949778214030698709271800639256659051686111139891706370143008001435154167860811161687792652803587112115923266540257724091125081465756242474495570499056576878126950188790105451192608102392453020885908325506616610872540008337083112171107703500295481049468778543008599506762200189318948089291968710625671366970773821915405138164000292851315950045341825182588787006608106969948776085169213265045262852751093918561241269127640306511819039918332024482011826136747884827671503596517437621378809321292144115752039957543600746050695401453901248926721096399124634063005528320330831234440757908050525743658386528326571580398937689317795172222976894896335690906948915035374518974350584106876614552245581700515167879018568859959632554602016894852837244609174085821684610613082832538460031904707407511666735500810668507456662932931832492026921011659520588043207879753026992679400716132244140975736999164161389990331576878005835553774350919634480025936375277092417408405753761751807557501203287467055378930234393931317621388764696584770088250929933573290942510916544319756801527296155428430388919939098999524103197974544028015888966777656471211794395166959468339425383418037902456151434621324014750598930966914741835302062024001152150928925375306459046353835077255478856508939659512903322032001482809777983291463831561134027799079678337265478367518104773514552987944661002270814009804377306235408692656748062787489087850603390240046412756012077014682044527007481366864370703793683327322009764789756081393854037512622267296324081225238488995080911771580594836129981833679023869118588336784190535485524322067366987880679076558017040339982444484639849842477831662964762954190539866383724833431902533409518121412463975725309770130800418406782580882399045809546642758155463559933227793051891660866803572688565561362651357106799789323742971518616785687350160031977977435124683934353590162507637712949184098633290630659163248088146844210023073684124823190014007123921230849411976111938195603877165696459587741908037794710452121265582766585029205990699746652137728288625013715890247254983800689827405606331654279234553350333272123925612452190300115704431339940700127378044536980176010377375421543530100147602674217447922423051527253152186154573883527018826434854805059572935847338869930977046955835466767520462285747506022422835420559049782337512510959636121631103362458181008408331118370942818292694077682673709286687175944136769727774097650805346640093525257154591754456462930800140063433061044844769278818591690206662883719598193030273594897502977038887526161256781888765441594110115418591194753950211854553939369277459714868192644921639186975963735039881421249527111619487794898043651241147842356154239186286074740490789858003650444054615270049343871126231897765905414544691090138924634648750268424803688284131214023772834667355540525142971020640687490933304283780498313849284379669950499481367842978702068081555224565657071193395912638430712078017057593320165036509390852975331620465389041410299575977592330202237613208264768244668962663042306262094394252649910231742009013256767226303515725029503129780404583762549290077090619372806347998681989622188685816171892522062863478820156120496612259048639528117017248063063237677921292753461241424966382784604846829179066896840689200326799673521767486052610931626922084489856747886193079113416056907400346242706101792916030769147613841644612212360037093823290077606056209429299767124261673155702343714759400945805159428809459828582623673802829777977853086590402313538447347406268510769505079178421965579717226246489327053075160789747316823931633440924166155838889004939902386540293824980832491514893827726327903584921340558204150344627044818018698134107744208634084789065359410779743030439516841217495928220683108706369071466290127863495960546212699838132995587252290476865614594857898881303555332696264981330526027276755611508132834707748539849678749112647749615661965499237021368386669110952765378565233995741234406791429688212716886214178460588452041843581395195914246515503102951096417955033198944753911796822863883774161786469985912694352328165894631319670971602659849674638780756527373749474186043775885191837823489019723657315478727486605284193730931264601212427246164993539786445833276826428070450335211754028466817380921238411437789451985932622691795812657593017144322657620237841052986157893811611599872859739209014800656373173758591976570622174419499570997896863572864765789202820603157761112621784289567865581412637283317217170261269876173275511129862192237634463967995341256220937908491746466713758991748644620281841508511874414182437929482386873001081922022864414035399307985916176348889773003571666535952133933740051545651889587253149007920858075516065415647161695850025468118098245906419290565061527008216423912305966276826691198385174255524050361738473007860594684870762920137108141133864620876392751375527164628020345253833566264058058811497275111635657903160657499167028090182280675872733499978209418159780089225283101031421966264423379259470551907879077453832379909123299778263854951525661854056655417781340623197703944585386873372360233932931131275011574643562425421885382191780268230337997569512701133412156809422621424754551009078940375835797837055217001009826990556150940632158011919222533478943749972675892248981090815485781997248899303625304247592413436776182468339953492818680227843745333077693538380193047155121669456110922803778787536378003627410959361826710905804961125851636330774016714886543161493998547356396894258996136099331352656280256530879244853082182630298965115306822104314304272980079693998525134648091782459358264717111584575007459545386297716348816174384890519722084040993822251121040037932725323464997887908768315166043822613270773904595296918729538596520456911929676128016075500814811061242795393194234467761290000384972323091213167644724820704518714815162766008682830878670134223426440959792388166984116166310778661706165802699283384451109153236376274307192742882043075966182410119259704972306761599257427314094228011195697047403836198727626511427148542888881941834125060304906819340815513726598486386376505987337077443690037462444753086608260696350054918327596306206058717644737489896040728963035995561399533429061626733434070530909930267461828805120804617779561556246764210455600113309053087676337424269443089025811127034876440236448769713533604956125621988538683227815619914601176281154113186074438495241292078408658149924001565978045040302928867428172463488143051726282921371079868821842466294844176778378574006927050629155346304317410313682182277258238111536740773862741975907518938187255485688519830241897750715822835096423737200705547662275452018875908310763360135081261875014751388569139269782367038046907657649010156611330695971287992994052040494856741565569106684149523184309182920997436221209058392515668966679184089455060329740970774867738044449776192269109271502146424947064863215489167659327091797757168307410074212896618893578390219700776078305274069542424328653230548468555892463112006771507535681431881680740152469099728592642651656633763490887742002480159797951350905227622881377809842157436315461720287355292555818762121924454100466255761721833659054682617221327623613752912307955869986779928535972799571314712297934591978062179798351449716638938996313170457843301702444623944668652202262041721545243398540489107640871748769777852756282167375856800930456924674708130314877680062449414700801581711892361595915488190209961667238019531712939669229042904842970145169977377665642501343026083697654410657235737014293867152765780299531576830751328907217284598027978781221790699390005874052113750732903033951032052432933393498133286518900122368081906207726198547357331618098008983533973590412329816022263886556741260719397385140232934105314147594702058747225465393053888249899843702621282155808713849375175003335189193573626414531908216105218576194630645091451331103673140072031279339206722371677449143071389728376383633330699210885164952643378240604142457917703621202547274493925346086715039399472597561104267368379119759749090890684360920124327399289673359443821644471460519153838050422908931250933507941438142085417697141183806434314815101565017346145220325578716786672477307696205510591054529576295337880539300303805234406295724275794404091676742759854240889199294429276086917523734352213305641722491791177076634678985855494400732340472407593624019283957464984907918467205432116512810395037719981023646854901865854277859576673020465558703462736970464756031313884804104070040556464493286770408140947834793135093372132605157817422221835369940154601391491768603758178821054423779481860409785736941026399202109955279439579105707484671278426160451665945232051156220319208258817374908071486192615652871078244872835371211304008408611441118424723915964387938008338637888738208755194440739801712345711714108472685865126196224257605679471163191664928357940132642848249738585615487937725402010863657007341890809972363553279798031041942025255494040925002242876372325073077468930457581312684728417955199811988416194113428704544500043610014911630046223915385627179335929474607657633368252653492571581542573415180968325199742917094308711691888387586230984460123456424494594988573669338264439104070833542386970983897842386042070905456933988611175459868859221563969063577141655092231857685782627916472463009029000748229916619439978299235016511749915127587170729839939392342116030979463904065970145672181724235770709773938216293069245797341636534634748586458740822671833315797029354406235324214431979904006944196085143546970487526848016288529335133766146721933940788023250184295361278604268348868528740634450794471868733678040097246712004086509087724763083572244318203853401940513952636850542808576435187840987588584532722303573464310143195943615754707513969096584386238164007034307441672744835615645416537039824131213589511315224458852726399619699870555228640101049314787854462332761209512780556823130714884333825590377543475350298680163765179313409149105178510072592502718216015839799178226930684042319476107764385082044983082868686064406006720824940910582771994272441848104418414298327166113231155616125681734796960350950766136901841300390046180170108571427771731035604906628656634725423052597891334740133208268213571409751607061853456705086891006353193559653469457445874504990047569187878138827527668785849334118512821486731807506616637197079272128565127355539682792065777199676125925325448869161103111023824524306432285400975089863009419399008152342745976883995681089042183781838270418148314770189723736832421602929276874133591749468627675863956114749252017698944178687582793821068556236435010839673406446412799522776038309724806355348875773270930247581150027582258962058820605285484520487908105480104280154120007832009380989160514186679261196628179680193013721489968695940722914803056805156979808182976133146735913910626259403582520843859115291153572693178613845230778399392416874104909539774451925169372069687763069284039533211841017481637893239153252617263213472829293393471707504210003120538864305205884291958977239564827454759936920876981906129360366791087214878517526550159449350961950074426839021781041678786078575502041840302731480107776536597987261686910855362110866006087364669987642988066240200434491906729679174327522453890231038537254581095194698927444509715411588927692532165476757656403784586493427354395406567203324847422886922909021611316064939257400115726670464721559123856508548757659174454228408245327885424190543000826546792196596121556007804584888251640194269782184879542660362910620196365680696013790212446521323280621871825398092649019409958530403061659409842244381066968824720882843160954390675057201040105917652862176414825569134768547136744182290807561909183191739573696561168785454262625258794320842597944836925313558121275821463924463272768270302640957662708152722544730207182992225069172421141002143724675518928769435068879619265099226897973435138043295202111129213227024188114148271403643837279527937268117861879238965569733701634285166000287744934339701037456330354384284055520740633967648606653542949006341726422869620492219821643298495167421414123622417517598500863657880879463159817110997210422499762552610408319006592789204114166067117177551540422017327291878548699284369069005080187015380669824101251834042259037977219371067022716499503130063090663853032742567106234753161391104621247539606996299073596249959034190884926764812013505180993112534958015278321179105893785986690560597052715084860132956280320768257878306114131260237343036841833744181373289002197574360113991331447840888789988576833197643085640512460611347289302868035762083517046185684794031966671789893389674041042182512123555030334088671691657717191111114603501122391474466251407441910658779970636748728811295860456063894193504033753748141433133410943955710649513933328465727120373569631181096815361178888081072522604508404207922306315647744783810299296911882144472420841864747454313194292569651627366677608244019792520704051913724961558010725895957150469556886615970372579063349534630348039503870516165006257373172034426036217048099800086334785842998695682987563501503670870733897893916597247074466790011137074564136189760231474836921565744182260841650121695309420453284826825415901260104381876561375234759004850196612607641494442534595704991201304715570887822095200941365294979084256604220880837198366171458284984306322947758986482199875118071082659574967227477851964969699184485082917865378140486353575949784335611342541574937547582639754030252008563867867801164560936583492909866961578253934288287861338044331835126412887605393015514987661444753533099378046924655379758690260376347999402292709864601767419180012122843687409198683882286228316657844837388326344040249802074264512884509687334007470351049762006243070395854067850611030141715198407370020717146025901283817501530814140598138967040735983565992431061774067160267189264674994617538276273177572144657413523014635079315482050587093372793438384055797748838879085634957163974411019074118129292960847280173652490943596334405304782034372587891892672166896021200108822639887043923361513951104039135886211329778197737135182322874046402420354325019468504138967482191143888677380965104170430409830594200248412116183721380639242581724068746330348619918360312726659077452560922540557163057994358943060761103940976239011254739149598338305730701790347083309365784048323342450346634449407215270423834112206457546229176322637340527367143854932061269399756582656977892205964351417771376343492557993534852054359017901350808978836240659577586401406144780480624677488426630745177921168415258074471736482428937334325105826442797397768069814854126380349490812811478156417868006737378922108968304053866049701810552788172073269631412291723947071089029805437479028859176566302515842738629650903363698755326024001919182496858221348427985024027441848405708958640631580920107347295954384248802610105323899805935223286897688836342837253097688529668993570710583646442149652532352452351255069378654127814725139324981436954452526730239752932624963481607286951663802859860040506088386489568184515564887366725921841079423432482983396606333714108311287671998130623418564639647839081936712050306062752001636252005928774222406404026330287174135871157048566949775600806818933352161628854073307845892673670157331995863847023824800871959066169871708761819895573912326065406334579657394265685283634862835786905391484738160276736971260291047845051182263412768119770400598523889487710784887735120592250402609122142374037437804180454218538627055879933369869153253119566282895967788012722491769666926131410549121430061443040860873740055839733855992134744311292909957771967722877474806130857371859305550820882316949660339496775944275046909664719329588165811683219202749474186404603662525841768480838035450514816872830624361927670902356880020928329290786801659242815065547181800059713866488284516118532838736767246987618768140704947864683168170199863423652246843672990146571764556560469393395281445073047091920778360289654834670930831262059875433789283700233310028394229379424364545325859861023380413574816803812735546718794867612266711024305360587898103912249958671108653315425279755920873402220562753497169278365334082225510175719075791841772137232720686780590619718873613363887931028231773211506657642201313695166555020959127628621988904105970640487275582129161469421538093308480762991596646574862205718877494103718657781775228445681793785641790061098203435351568763077424304620414180861580517641396412704145030330052600246566845827194507675838015274273950164989749172678530481521332160555904937115080088710012098323374724928621491164014741829653299330264604002098400486541638038109742236131823332206216023896992341982643529897093991115712707070026401490170373601556548514842613773616149714811308651322253858243395549521107278234851799668699339936013294975334790113223812528119609459463036817499797113166000302461782964720725393165653105929219265068715537647980007590254796554939476148353792739487450552298128284196642258464141316891896012075951634988561539156569626661483667174345487054565897279746455878858647255450656853198600727636711809716464170115301307621390724233258670843916717986907357459815149683614845037126283739152253982858362049825398359335553451861953216539119939905798176268342109988559507711093794634494391557306732891249964486773465753013645372249121818594249829638917999919927685036268075043603597476873621370157045150111148212639355023898524813294435034423042965141486734852246094050290656971611707642237056276824175673570844263465443819061433959496868334141321762567358194976500143581290217811860997196525929844262018347129199461707819552542949936694367317423629289620649052757646197492496495637804851242520127074119096977287176127306792451783642127995570801884691974344116933384825609061428371378427701875272707899229266970465463415445965690882087913175760893619743020230012789010505245916893846341114162600812942221421604890596831084611732165395301177611124289147014762093852492367503879556978460077010057495195828561669717773208081995845537426323036751149209063990024933687058653278772217950481613161317471659102267063984724995188300648174162081735273876591275486577191707144827450777497293228588832232254086654525742260156376426320637144118830153273127892078045846422517951449005805609237910015895235910175553435101704457067398850375815098767215592712950192307984577079639521499539480507142075233774066194545214193497086415962648159240518023442964928234931152114596820588083761162110827677653550033516739168327532857312160754549133865933663025578057279063976458592926940555223019921084579121942010794715487887976634383575971510128516898501383533256189843362592567008116571779822778235373940746795992637790313022603870604552818237665593971533785237819897987021964959889499999025662296175155496671624008031883556731301643597067048257040048430175787509104528990643260664501278032053792201666830867279231348724281742740433798895412344407084313813454728041268827606464321620900712319193505975961931771297417465768828325811138051685125142694484318783389511572645757007874908927693282193507851298452001333107774802071091783681906828210763341255173148943057107816436709288685666456099081318742112258283000685161964551011272398982415889814970777476439280081705403237576910316208435727240501025391872277392973132162435007193006717513791635591380307451756113003081805017751458483497418020358899451896259227775520672271616691240962109585968920628827570057876578897316580984555032547114217211435994741976391537528898251698423278834826495640221520096489809501102335121156314257987212033813345491026880031650259955455068535220056043140832847761686706645321755001817850133565894393558060239927300783367564240224957240878099369332371013505657348002969151940255132239014671673059388249590042539743474512213610701593691456172945733412578020489644898438879610181745144982487826000167447855460324487979376684928816593546740070568137299558185736724258322630947747918087874793767776699496517579925037436038704946355822129208217980988676906109159857784185762771775514934601626900851332037275550093276791226162017713594720952984553730996600732572558500710747840748242528507528723698825223282421616025244953191463631137588963793356149039464233380493767171785484770413424085403556951355617987790274171085244298693980096340598555833342972212719609032551866985347944042209812483013828806122019426734071666956944806039648375913592305722698841541260211252165704275625027285394292578661786091231712568687756413185456442263829096490206775735680980108356036373495442080648133922381265991354216099138758421281326082342175109006772858331937124149868831009690569323640781631122264935924792043198787266723721967641051280182539394239821683756299833302227484975241429006340704919355147818724271740663447435638310747738153585589132827543043823850211702808347283683565417774857283602865918667953943661600063420098769686834405532852391539538842023091882184884886804028746387711436453915401997431074614540004735624069125046130126371312373446072017323022522079256254437634586303607919652290897629504746439713013578631215170216204176378613132122243916311764926488050270580727863139632365954890216014683605972162015104485574144724215187213705891746612738030655152425552217141023506896244199703029324035014638093809464103168332936222231171755180762312694416464732793112624481596849972209759643287781903238097116439153541880117391423030139849385349351727234642498494611366357697708454615232667324557429149162792015913228590268016854328057342359633590556784709501599394316546303276216642920796972998155480701059798224387853834861268738429588013729385814067204272213348383831766452840353453653915885544102775510490078201442508927213471444988664486058187906719337617573045453110623330065767915237693121658138099660465551111848518087774970316814351759029184573865932468834948416286850775629981741420632506308852547870006929053280478476273391096005916740276100203681581487558542401859592651341913657387004507374446379599612475121705762074129801578060076707245862067369698602457169522249666035271234964503456944498583937340166205168551522650471926479385408917899446930207794197542346835463114010573239853759129923914077487325792766422966371695852399175055459908886410093437801101595826213190660541197284719642646170882965956423583713080519549601638528827128060651453504985954517284173637585608103111797793489915809369700360163580081745761056416645966605640394055175999580676403163376754093256456166965459571625778662436113830704714585351380848805876535514637404180993292808674636998002921421806528661856104838308784330480072489886571293793225774270158714863195366802762206595325210442856475464676908871760464794653393954418984550084759743986977294127915566766083121536134828415472987019304388819496995666563629646234444636613525244976873057100618367561595475041131178432167252318623772216456520804183678149190681814551922206599078866315398835015743364804491984027277090504695977695577865158470090565197609652305523535961768522652496035678236228130236188632380458968201912826814783822717160524829273712835535834064572667905452622068185700105765584350714822283948448738999895095367802222789538063722854919893306658581051100711738676048150628811090251298374258478513293237161129562248163170183089948455784872086820420972995980006739003464705110384119087821867926452061338920309952881398072026218623700710739621013685157501305008789431861218780034765940253345890830962451386647779965280833443409622567590458816147614566954635062249879393077722687758538372373438938131083987204478482089017123557910698390953525373480313747146695085293817006919475664991674987806637264367061041388949810134298196533539744851991890655785405093435936699103541310693557210556552965383044838727162199240418915504519782044376947867119272498510101009834794510254971189461299816873039044210494267637145386428878020711268993486204747216935441487110304973843941511952526834142820234530685493454388052213026422455466825219761069353209212055874613251184668845021498101182869029579578885838908954489815438087882540371375051212400557485892947650095907593325674939396519883800896001066859814626276894753146464083052510227649217502313949498660044251661369675699819161191249682695218633978838269365237792406144207516745272992111495845253463019367412411134017361813002794216892213477029571142636961265895663595490435931020136610501771205821745261116744001875356631142795512990364581215364748618658583711374601915020147150256609506223942393001867751410392666024553634234575189036139072699626361083554848647995201865470913033968935683445294950976577385487728906796964299452352836775473903527433377280240768651727620530317423339675073859221449918141027266210455937967217655928645487886271578251842377427869099233985881758472962502483924282349012644718640534481634399897613305718390163730909343220060300628871041656638215721926217952883320846458292779499726932107637568993156384753219681307805508332609606675493861406964410145205444443311122796911672104730773998782447113291404045683880722491117818772407661705752941412095555615522403093873357906476293941992031289005552166510684171746157355883425968135656412882940302844613999739294469072044356313787685909730896487846736228612243863934590377905420323389940690031806662348954531363721276028196002781009440756955887952171403908976115233217315212152935759452469669542135919851762494596992001700975885901958618070227064182614003624808011093489684052874759060292616156598328825852468341597180477757865042217258626139309378926275080375997742768643162867396650681099660434181644391116598817868307770384633057721271996157472433262783076712784201225725690780845788268617183546726060168016700282820782877866575383139493308361014888718002704906196555489377908192166890799305872564400621566986324688391082860788748544292744011258175764243247579281915341315391829581891837567328413295895780010205972215971826881485252168297343690488888571200098188048928868620042067181541363427391045149347068975222716601558389150672021874403512376380026177631702503896192632849263996257831625687991203334929298453415038994232049435906472355710067598895048505568606035631591628952361642104802615117053555532684052604862321528615310890696673491673978649292211625322250272209912264499171613065696157238144721740601718373395159085105804650505294569023629973167765130129635828272317115144904503769978356173456016536051274637935258474158145238573252916315252856525704936049031082207492076426020540053511102470558224728413959567416049337329158360639186387458057614853580833069969392731211969323517954110066546255747897701814463967389960489031631126462123292192083222535664739997394839400185113842615053958841900905813863234054763435011071849814785815021962035892833309205218406784363784266233233952632454380504592964399258839703645098004661947757178365610617266167479105484886097062899972179151458829943320691753079449361032951477367252987955983090083129541420084628671876276443032759032975899012629483124860565902553423080617700105351675798595613337019253576209280431593101946741332272737018431563181549521308597924169033068884581034876724462281474010933695217804130922647306297854926972866724839954916625307608168338042907296111346846507146321797387507516948893113399579547782357670672382142453215733002082561225868569018532796687261130860320861638931244897097183807282997672310456931858848941742470870976925374438123376232530498905899928474659136671850698576999452775316105500164524286884062419011092473811449342029307218225924096546535713020698340462905579259185753113446294520274354337094246055314022503524912112752409183912079044900263319499162084826254985259207802167011304303692576403196545913861929501107077737011994087961054138280259552207061428857015131619772170268335202356424659272724927250811618634971179036499966392897574308476673541864451481147621985692382154724411414760793343947457457644503547086908396818498986817169276837566512541441819244743254171406811812048272931450420935266449412096380186954188572506102416681128009903079131396524803025978548239410041632476750840742946066570615798109056629798626310622868718314267044726192460241094591223053888545535168640539646270479216501509102772716804694453409147103368704035962469522553823693830552882419058102333775777858220268669443432586274033530453032056307737967931503985674626813284062589320226042927568492669898447292197663367693523878103653631238829528784038698605260385863813659931391732936536844593155075569140328966283908198381026960680192453228085654174267530127810193760274884201372764010415321446239780221948974160738140802836364191372496481162063212483031599521685059347246648308385338996215425074019723178734344024534714710367968392313322410494529034470814574137130561282409928270677779285359419415477095924732981743898674629159642331189766148737297777619563374256142649280890784654020366291195657293998852352945428405084443364000538359785995690129854549356964546572535634203846389740291480458424560530040914268847518578373970015808256834727766247306515351709030455070889653115862202769157338534109747718086424645814452836089380311145358955170885648745147662596370283246909296634072710889341241669152349305127940850679750378054237569472494435182004203242744007701030229741945544098533182578235391386556565720019601302032620963986530419060111680868893375344424769872361363778689871612391508592556970264177317139832327633748096325357714692670833443397727860121522626437680000201684298452567707833361366155213955129032213196954075541393787807882101731527447661705995005085557498642140909100155485665228851608213283487294194886258838772111350657847980280956399543111205874625430607422879153763415119969002542029176359709725407979653456769630321341553157174123687721677498216284454560867795624711689951258183034697651986451391723049528587693308821408900878435638129400545326495509696125501460131693817964007833280451078672431951905564959015310759440052951800509642650726182540760163081590786450494459293256211298688810616209779139959957413690153122020988622226726899692588090860706652779572487207830290546657311566117665447610821791290187745294413549802468115490789393384127096295829606165947640098891367341853492323714239215209797738529548505505047409875363803346456304074000588017280004462308494124426694145031603293481377844427787311818756522473358558565220269568680474306362909407114376302135088519568515769277013974195816671963812827960941415362790780879858731832798055839838596559552613966548418025465410130707845286475389003660717058964404926373361816254738832683239192350922683421507599622607496219785970443891987375060319801923324815192104613276215108991849239840898105521075470059275375206813151278427748784668341288763931518911250392600168461856434243073315689355152294912221063495155339544898701910753404284006689179039675259256891884624814722815502995867041216539739293741688560616736852875647843841198078534373128783904777257190589870744678819036016293603447190813859172547219854776876384858227269093237389180661808637595814631321442467298773201861112349057020370105720176157120201815922244022519552861472421112596050188820438738939702916642730887231065137102363654660579964996982004927483569745150533780606441031625586851272179627056587838619258382315937468825940800815147260783425759797908004618730952021594882867949402523464755290953257040835298336984133140272142499748159400819995882128927208582036207268406284866669208168917050724660579155057721715571795573750798400310725245259779475436176162611434796507375506344711490622032972355803099842619282719125090687147648647984523129583551679356965950268587068568099602807861752859017025574434858163675341650288517585973831711385813974913715157258203832399683370437448445669226878634662553439280388256598640287660843312334664717752441776357570028059422742958387079067833055639113697510845092722192652853378419520839797395266131949864294035003784163712578256573759532829323805623517803811282262037669827553742725552525065741295842512768031696835144051244630566441204926351167644171935306881392742319504185829213101628400949194704094065043481333958023670587142720303518977963307988342490887185718558948924386209681921274351267312341755848771697015496349377702270555597388033748656095126410878822028267369711393191106645044904474016039151508520258294339803945642731958746277256129857010175510269760620994295776918265060009989717629051876792932762525336118963261389735570802642163242020217824378216058314055147585077073448461968851525842829522441656403101795395481929400895682938143368312433691626523753901887917310279539514554383386008866415908588229339895920949110687435187724487606048696185400525815938844235945933005039488886423036235416126613572365336868699459540567278697233924156037936368971320790142980885431742464088310362167454059628636827113335732976936773904702005709428934815369774064039796346432143968163160784015009806540540563775118285841973387434167235586533303272866278587683051578752792248073194708447462276546107694545411334721881811876004986310396853793414876894642061969192962489305414386932403079297394450978057038263246962784752880107525849608568929999749567390951623240403652085143502893601300573382370497169320466636584850070101289522330779152479523724244801092456989859550847136738080854376468803848869292708087421405311338037122888385818154828717637928058042796606144950924023672164661781056308088109369281861679253867960320878334357184987091387081935604537333088829343682891640809285600077739293644724015732462145539448544104409135985210509306355838128744076044330188780770687601530718916734929163831803660374743411885841362437034350047412764962616322131977645860380287734727024621116974706730413551404740837758136422079194555444693345642507508687154851038903586839875610551362296741705171212446183632802162684995958422980133023293389999247063372557797679341703218042632855581161546171031100010720896797556406178426988281143526571632083841533492976632023131422828842534536279504505402081235058953716801553117248663015683337228305412666166255155792650136859796889220615887386908091327757532393025613616854730754705100041266437627921338891283852459663390957992964087481582951803682719990785968228182281392387376707348740374957864706260912477813944126554641458433082598279872065087886029131298159962150269679716204960477487232085897125445112500515115902627372944083051819374776486115998147962830491328067217686921411116245225239304469963572681083394765227105046059017136189960105660238184690164107765001086703960586569747008684258624264452167713808338878369512908526880484445380277390137413765969914549717691030780965209327809463714596169614488051130244644365890755224189540446250667593823386415271922518852874535671079318824563739774986290073777278463525522695989166612916593549326221132544157308774223128536931410101768597800503554340959391014831119763588552856766030681751123548268431652215889948481912578372405266735064044597069775650592201691099939698548062827941054698190288617861735334970292356873813692119766350109683790598268629946797973581904817208568914982573559422870191901660287670293818175181690521427905399196462135227273012535287197555679171544524673665915864838659270781000842479435530333847870496685113445782205552086875244615642513655096040771462114030371181653226935770513066007278733305869018273547062935839644530679612503760148781550269053623404636370028468382450333677928196757561145997048151533617374502038533548694604266183635245978424001599700973454813633151461508896891199083643961779309676983862744685263186138199861816648382871730925231078162993444197382908866193088084421153674849072890208891848297616462904350647847922647767286404592388518654603734386780472648427742214840216511558201310923131910016324662572125098296124124491003465445282582325350849986106253597785280585181038167559072503592528255550982699641850372278788511459950044524359227451750370600587482989347205526709339683724992490971257186192854800831587155991608820602065713715934120273961734969187662320396264141415060142947655442085314919040973521434112076121653353058437579492740879646296366916721648502903922481100495935643412484575398448615218546751406512673587322230121958887016572414993932788776125476165666048104785457748416434990239764348507667147069776405191597295706495781094533709038862256574936425237254775500994593820692506329443338427149476689074603020217771699604710393630090684801099712805412865399966688189659115560124842372602717279047357994573931049358167154162303959031691149983918775565917831511721809496579902964932868748949867351271120296906203899468966001073327212680379290877996013752117846632208502239241576468835004161150272527105332479515767100901957285366987546592192048243543173780897415966099311683641620580041721569348521429251351481231499430142239282654263127369871202727523406307998524319427443852471393031679980098879113579347067326231211006290151817923242339597529553501414886777280622456019669701483582509967436606868486274993884570984288913181435288042656637247374971984134747578139166803436042271720157132813391284394245758996849511078060004192407122602012699863380528270954731709942671037132251912625459889810620281052573470090159831886894634009558773590907573445932284928200798569236288075150469875302444500608882599333523073326876712944871072160596930244447740358330828728515145783312747818888627643179644227089069997438667577634804660896496264208753235748718256855586518009857528444074263944200486018459883237698368580242501262198676699124647317389343429837845218132442684276657558251551617022945305090966360599928211907474599747336660648263258788970125126933856100890699684784037792880449280231623673452250573646953509472246500739154741285162043545897150926666127240680489040752925728329763510270126142497219518469756843115990967033542658015699246280584464697608460705998269997167454413188663397652855617299622222311434381523666559567049977266306924120329007377149676946521924421489899521966182809767732129245168284777127890620777376834846963471266906901033189165365379522235083442820908702262853608019525953760324770440442785325145256026731187564955350433292422584247131759788417170768420953095214666681235633138411675028772310848400798094965903633242441052891622296399657524858250535933898637698003706163585996961945542632297935894112315454123605887110025130182518492927908534756525762991262448482891058203066913896983592841629747277681281163978382760434627783024506074638024663279643502494430272523031786356261285807010178589895745286258144556948750618738057007819649436645259108221289939929770765627187431165055508111451212272682792035335508172238538076858119680482907613913009314446769541879373655880450854407918059047711989786923546643909479881213772622458810647056125019661561662711523395324433608704898427756722116938819637694235986877895089779429105872610089306825194258697299049542193696416937225588372652192394566162594264305556807782297514128866958146751739402617124797460585711938799388834313157871682679255450245334564957858840380174585658397275733132017123822451122847080167190356564252947022069671522908947289513566302374683078976237052705551109322588469186959141980203068888605652625601039859066666375693725500477067050982557420670422644058125369320980320925264146516715098517189478216006910443013685608387369700595290710339686783209910569762569144667776320498405404098103299300916249945653365270577551911191802467546594802195843926166444449986535181724899564384985819013283890950234540716674206777359236998512536406330828357467437184180302631729519051949621228403270669130679148808843168706263665809622412161492978162192868559576846345818867842550528460787724015584973991945911202428918208753143029074504968183698531569706435872279888401894551564438828414845695579286551318071670231858091421227620433754917037576393714633068841503452650136582209967194806476642662807039780100044623094935078310063582212862649800276591147619655827227796121361491218515047805176298447105876863697550876317606074453947043689861030186797249977682044862001235022291465286701259642636737328984885571413324399606967101648798787080226345714510574765520012899725583875252539912160397921593901239469283016583088182729389047816683236105709278477043631602673640355252306006036514057823659751365911135668296898477417907262508500581321887393610856334598664850154763692301863554046179100319574800487310803599978054464060293614292811515585403616926376093799450988855174791065616389176219592828242643513686519206254040054239880592620377835701285547196531445756349224527882921963522346062010874509236774620994576203622630374160290386018225594378641059438403522574790963944087962597243421800763895223827416416278969161633795691537634107068818847927830064440485607228834798451466295460004696162985214083525607411984312161888639016051533780737914679666420960570968721333931160874799621202467920895969002925160808507187273570540641366266895955875777766372006905622749331422399283664499790000710349066052696146281883348653359831712461082399305245941853775122256933927963755678817740930692484531447384049457140281225004061032834640290562803839752768069731578597556875010997558519489809155371175266979380328204082400785615659975140120583535658614693394698972668005474294261033675404282537289053987428559572534701328526114531177546265724901764690639626772469227048112165798688631886778638512565535026879460704891923605265347066168230363975797908388855266676937172569826723111905923115302420807116294695281214682095303860848790466361684676233122543823808455692707504958611122966747050140923972373293294160644672599857870280738253460843983351626284150400209694269110229234688717806758814564129292104156071017402667578842400142005914719308483090640436863844394601718233188935933792459997793102840115387781202715074284087328110398529744769307245960611556752349317356753903850305911708854364908956519659482421499559497711945218479967165656413994727980618120646879641386963819327530655014270022483946755909649865604769048214497581583457707686500764795079076720741545710738003773840830039552727771193828916295812166448577984146276139513745946519000204799832167704469772754824359172741117500136622347412901418693091037525532158519917565209443479232285146775718144666379267258145670999059713383118787131414118039496342426071393259071230125085165726897211052042771011464662526759425284099312343843185940842526082742770585299194316470002956393429322243172776214265692375461972845956523414855051814160389379803304328278021243251177711547126125916281030594202517634548662255771797425497256407885083935904837726881333052635555632888912166861594384604752264500332354839280566684056308855493158307386715244793823798831141249248912365611474805496378969009209146687641378903648096175169605101545447201045050441409260307230410390269545002025839607364719879000571143374240408020813538763581203883578476278068222957796024061104224187796489538028617980346811954464776686397960766770251883688505164692636543307897922837841346824404058614733897347478947649504005384545465808717225000618235340761857173294421343751756630355964653465233437553699048601449608920303811270802513219219102552245961062724511769144970842600656735186246590162018539865550348863325313554470151402299216815381806717258463204836520294104334809695875439949193034679332463059814501432401501652122296848077184152739468047863251892932167339049175705309599227901386420743447094497217777171252929190070391710278812017541604081884437059399421802708819918662432910034995652589315837382611339228468364370881907409588670267486283698797880999710920922092165863753594475717056342633332655558170235564202481436886313636900731852427266202898110914324901173014287080364769342854643724173223416308101116752367784755840038875628623738576375353508921260724801229699527566976216474692772778879933590528671703995339231996264946334356328990290464830670305324025243385293609203423851396033096236024392131825107794150651526192934241101579934328746570681787772658432266631884393579640516494942457740767047032306082273260954403609564567328708904769229091744696637115779815611625830250854554150876819632329869179562589988988921957888148437026239967095865126477529927035593040957522438791818813250676967486576314400364058298892964427255187958741330595274423023650898299158633577384429397612518075553950978793186642707478114342503870552303568760499770761604266400172838379457031071909541393844933117901865892611814233004004636164595930815940115848357862970827304019102563345819644005469104920798427360040293866274680742501900853959331087422843800131785022029762420062007961326713050060851064398980009955762572324261585160252484812153050820737295490208341104025103316866190341114848732003506796020153703394106805470504919956852913037564732326982072310103852300440857833546125030050899666164164792237972917091440883378595024005825604463024723690533431292028963254480357935071009992838796341913149559634528124067435702735843102476456762015884954033789673126161316752468833545983005618035725328791985191229765727488363700725212105552592059965367961134446576344347535907119631957517985937816021589825156455109434700912872907649137380737557352705365651700517378479933722496253483632671020821268435939874270504298970737561044513450948618682408341450195411628424561491197693146360680798332407679440556278116280529963755911748582255256317082476953707139468238414179878957459397882459078451261879924819353547083598329098633672485624737915194881642991949234810535307362229009137870406449589691705545704992372343235876854590173106192151922875497619920494539950995788657957965898301514618770879464823612356692107899478099639893650028540597240473498168902244516828270514150638757588200269876135211192506324266475470844331500662406835118238478651712822906534267396135384847970643885900420827814845188131074424700353084785074016017146219138235300120555105314231295605234329994149844810302292377615981725829549461830961865484384676295125256221721597775679485461078005921069804592876869021769296424131745639923967036820108195416956109709894699961661484008523148805497382844053562713068731483688031879394147736605519288491556849081382121759934606964312356146884445445402591985564114732198724359849946082164785464569643129382237128285361226909105929811561679405590766513530556775326071551379042531171562362077141478684295515414818942832946579050636909480889290044983162570422667157390144420929070388005952161176561949868098923115758881444108675965798435936850933083715322765771365671367868856514049070126094036963195781990357761996019276558377624952618577948996619533034219678327644426575864702740832476942238197623498131629931406062326919984753611695685439377737513899988669254804807732856306769639341195203635415369458077445619735267284022243824699016563952485766803071255425886701969836576303826353304311925592669631436961433776245200267290737358338052730796163534995556160777580044638187680485004236941010735133220096850036830227800741057652493192442923352628706042812164956026968997871966142020772630708776350632015632898426799758850418430773236448537170341885409767960409842305956007271452278923643281372731691971083733483017698846200158519295035387805007733990219155503424113759868049504469541807656755916635469329642309740149010805104550110718646681418165173872459667718374045571625753112629885157226177331627423169168794943867699920798525913577213481068425763390069436580434140667220679948585416709492499330727237331855046139850014699383995532266375738450642962832356345381659036136683292584185094515538500917034342506708302477724933443949561123884293893452706740249957376000250301243549933934014912352249478826769357525623589921683070422373787743578961151605077092485371537904588127944178234266033942765498715420661940994240130740508385300015124125194502164109594086821306147328072663030573457116738234090739306924272859962782095783196606661471722868905186317041946383681000976074218078255822405614624344740945088543739283833597092795201663857363747280345147067905867043831305041399022083959035750572575452441060043432721491102784614439566161790586582808674692922693152211891314868411528493855356759131676516772149826752877355295680907612678158571060326720923176452848505233299786363279979113006301435375124906411813905139653536147678697519748461948207233247320640692109749442752287180486447186949078602528227995738783276889157481809521305189609536936334628757435824409421675001821330722198456074095938083674946634533572833130552932893649220095333449733839018100129946632187810914018523907180911372731470855150505536379309403654170676894121827169608339187406975613066032193714008752767041918023716112083817207326730917795689746050752761977478159766868015154653062179263017282060547702727704162434356669694706173659749295375810801766712375191486665582760500372693597927446156353247646283540255528399377878251756102881403524958354397612600234303348561820872342932494357561761802711870363099659940064125693062771956015079000441098819715166991137098377860655254244874056079972848015097091602763224282185877036129512851073419683031062324259798381082165199207854717984441988199592975963473249912691963846489205937145900698908723282156693664699098993610106454849021101098801436921699446532844769058717928597369738686881328977692517313196725095564999263257200189801862893613325588986100114986409177853025655179127769539065519846278416969256273257814988028768955917368309285134242952470124673698594967509351630556041995053077241331179453068576110447354640027055653893703959073647343704028971793289078999801902340467691821832835533570915516961307831324164323551408593872634063351633065312352952703684965894391319299844576012623179128575924294242110939963766487340728329369900701321479512951945099381890669539022647984014273542004303027360991473617533120769730872147381936835688456170240524685456194394000506977041666359522849352192700817951321660500614930799817361605355985147242031831756294854473281167111734932281707453727618319958248721070424479453170242590227820027667312275995421446226667277646137994453571079282296407298623940508247791576407489160641169430225088784276551693396324963001487336350953133866798567545665816363723865614971084137407402366555226912205493134287511708375613692774488014336641908300786664781715047925075711258037171531354096355081916008025424534095397546240753915543531500649294728163084221347720666787719436856685838286653621010910906089574525468067115273033086435305427469685549415023315869099845708625652343676771697035851935164761953884730487774445742387997451435082283448755734925351598004868622739596796932148399638771440571885134618871166701528196563149312545671453814392547599980399003790506300380347420273606823838513655733506049850592728925471485049495241855220679670419755982479443339740089575868672930571250389158741013735759904977942939895447548328297781943990069335994234691750110835861463130450100130670215191519112855033936251172213470612107376118388108080252256267187692711399666032918814749497914742612900181986829293120432336839432839144864802810620177928074318256232190724275083944845216137774122139030870869524951193846953338020704673509379782741331709960014201581775826741997708309389066127420846979631593128035138655817923175901030314008604003549379629147381248515964735647048201936643717576960708339299657888801840809435522064241167153380188891596350232200783961114337268403303985584572550046926712226018830350846048782901485663987357768252668177876230824459352448197318043237088575153797529500481250072835877372893723679634096644814180140129487664869267001618829260461407115713074591914204704341487598981616568029620030586019502039950587853262725013246874226126787437982440234169771142090401513482874555121939937620233837554479003344731596177026972624819631614697270957422061054403181496373636880740425403904270908997456239702360148249790429692946821027663859298734752314403967883811087130308100512433815581680808197751293282692157709851831990338809080919096797895152569863274967716343167396167604811650082741804341152562450824045776213687284582714778307456385680367021548310366395032594979937552171477110576773524225769802338697392794658011027217820355721535082773711924100387031029966597397580306616549688570101958968460423656546981685280982617616076710756035274253405835143289574224569674190672840158075097686062698766868318963039688581526548705764676219546585529095863786270994357076684152708555470303228893548421743256159758846460450531051686008814895398684206455689271454953507385751716669680954078854832770660217621212467878618291309352375166756504671445242174950417058115197433789869186771691680058065932139122424675306033696869429172678170228617587975652803290430739363002670599732702703292474455450138382313940830118507477225675240407212085471761890015070221386508182728005755158258060360035402843400562927343347584073986378462108678394336491068685763897891616183530351686600698397736483406956658581460278163483535088917592198077346247028624567328372289254707771789170079796724442858624136886751724009460710220493673095474505889037633476229561479446111373722586317312215975039040424470292719333518061901615028650486976074762886415468086899576634205816970230708460025617453472894510507021290439767814857462405499067410975487070127101441334792854759311104354875892641361977198724389907870651641049284317049220978176038213142173675535760549608485769615504595678389715270742642774786175812998415771029063329390983953466332370920291212157015973115185152096565401643960666654794583316304930939040103501176240561926023795376620926373829468134044006072668138646534343765567866667605240355645689664126770110771295225718765845451396500176627712762068815450752386591797172253415900452972315900545123282576959342189017004490158978089219810502704179389388604449164632527901834229206733227343217330714147541803834314827631671048310433695105919271643342303716143106288865338750882227804922838923868547210052745061162451940200751411779832040543894897468998862761563124261107837592343492853150519566262423116675306002126188729499194932943008097851468820481644274958822218699161281064560335074792951653039853446569172322579985631965754346629960524767140161830776814694482624604199045986283500327684406711629577924058440939955838480207360878928748268345828803947020924051718485361736616785967451725869295631219218590378029643265754533984626645331527302296898438873952482183116450375264462094472750457499134561084578096256901036711474288923609264264561751294667251958982430704045355086308084540253064786162301839010007982082319854010673179198348524204726255311359500341700189424088605136534721187356668789841705919302181220791228090761030679441348215506098020860079960582706476950645070253298737421193529517994636243186531649021229687055161036468783782533742990556671294680700889613939079512669397812671044573692920375722315876364230638569338698494828719665425984622213989838259231011066501564268973471315533735310685257315077575544005134184899542722533838195682159947924523276028215367277667886999218101097196867518342800320147011643847611308648330048507458630129139939647420080345442203136346597177964726151190365663979026157025836808291545796646052656334472233892926505713243609549663532515697807859647251958837280888120030864078684758000026609225029637169662516258600783831790499648168488791351032311894590266780139781291747906268183702743222464024180405001001821004570310377579558025360752565562513651487685725792114820453938374586384911462005751559057213595436124348312251048116620447206985286789561260232862041114818868577529097833626013645992735459688431172698684241628359858571825798118698414525953628887603310269434140686749758415716783459511371006742477296239250231862594758594992502058307931725270152131612088232477536187397654915028431489686706257804536739339891160604616156140525463952402757747806473662573149129652486633556546732297064525466516767148246059945031093311517035928876859457726105354400819744478023099005682634658211317182519587155854407398430438785025127363943817929061070850522829511243008622710200918848255855046184093119545027159691611521887899899425777031971625822419545588214590005154818563071671328389460107538280792502946974220249631364266400410692211574427693809177299384652203491059856524713040278013608657603599649142038649572858652912912498295417974898557807706459851222631408459076650093039302993156254904956541249839598208668249325840218384677237487420081887682593297769299706427621439067969002033473740332139993410322338807445794215029483526822106992659104892394896500369403622974392452487505484209551368563319597131482542743083012129903115834288775094268169494887499464624479454346143089269070356594817717190474117542107703531172692281175564549618671653672595680432119928965343240293138138802210385769359496773515011887581651110188347196862458820991712287238415542086741659713213868430536086300375733027341574112598226269855166743959377561043741804208766972461737557675252537456647695735873186703469646416338822486197064909925127170207052734284458444764886867672083450773314332290897692668667840895736625588545496253790766604057556303817230470234904294086710466412337904983295749344348294421647810852363039522232221516035865924884716859844652100454443846084028468335753976968410206133605832534919180847982628366744976897004538383790956497490352376019869252381365071882439160566464532942285843890093945400562416821328591902121099319932910101659520517906406206290478230117146569343542517872013017164711209076626290964458843635604877107041909448363730512985689544968995336339177022349259769819665201330460367929678035084565290585075078340920830838588974624459052329878543102098841620864675198907009459679016001179453851556868459319798411663807355710172424462580599430594112700794524613379487286873879697628465964573297345331726722546320854839184373870849708958723689183851272450804299448400507623188935829088331063659972404282261335873998408732506579724595914034924509494324318768697198852213912406919438202214075126492203576236535371296217943049932620239875623484934004426927453418221596352547478128763847352994770517512639397106808562730524270295882503047339017877329328946196754807718648244572410283096396616275654774709080774705967245073628410481955231852076501940575928186804802070309514631925969429109923649129111235228140511623621766162106253775607338846135942769687714825058731489212676249165569241655387402048874512193227004588968912710881635249619673288044555790108205029195419716229942769923871525585002425048357593580417061853882166273719651626416951065396368408194802944651642979814730400680554306038365402052969344251108766718987685397177323356540655494161862255311690885946284083996058560724158246349168923285892957845759901156153742268799595457997971977825820006026132494778760595558750095387109733119797000888119735502593932715048111957759470320848974829850823981349627573934124655382310892947745221136288244414457869241191627593262274156075363020685265225936586402660842974854460439561391569439132848488977144861790906003163865058118927176289071599945275633615513931406030908621159806933693199615161750125379216161913491446694146248918057247642501031367600499634249079875593475679921616060092557800573167540435254721941742733715891982235272998209131358763558034016474317529570140343881774992416815332354581232577356143397388125324874661729879522214986783778643684007040658417138377995654856460453739719834571455970524597423555262642712905845128111940758270493055061034914675789306258019990713162689248503200216151459907154816339010538477928826361717614116277535834361640672440973302638236123188693279403222850159011162393371977037048633697332686287740338485694623131977967816891563913766537695993572962102722824981999747367295653439835677454570482273051661249028913818885786175025500846876033317979203227662648780987268851528045798719002098818106190069713716834739229710496527899156223620577162100766418775171991005722543427248108903733129555680045085843932494386268760385266330683023038579013223123964611278955295845674960910953577158067206323617637739122904076307043200292768859107004951750560379982281993145071406967209960464662643034273646965805111088034045391496036880700682566255545589635645074300426374336067572136972870463089620202555056790846723467776892004628260862753035072240338297662870255912150413499486879431463405973120647102348640103762287416386303005151538958843323369853683628644090255166514355501763593228648748407687354698911394382637952567173724813628823946322329467525204763440966672058822153854312984544434615669608757984792152848179177241759499236171690223839372145639967151848296846919157631123694740498408601976569195943220525449784951715373374801050075859490016923780480103766115287182670419869791200306644116677934168299140345207417116220590422859734584152997982006644679480364841643459482742013311543505020569067451714472792725285667233706188916868014614560789407942001636741787558696311101164918471380103551044603283144199645102845483046727582105712460119844947152340489466524138706878901789389921705183235345031817994477166482565840977318903638271281020239984204084690986769448352069743727493893480408350526480308395059235036179160071396689053509922910268298483091347760494672807788357419336719264617626409305513524869507563786435290628751185084977976533867018438693056457943171139766569917851313999776724968298724298315365975613041792911116226886906860437245154224913563167153536613104521323992061786880214226024516696375150704318516544329264080496817346349586765416304356560480700900575737882663337665785676578356831430873641072889796885146368273424519615465726253842426617500801068763859797146653340276065680767626923175086882485188225254689731914684435176580511848504281012147139175450800538607162122784003858654031340221997486212883542944623846059131349926292664023797093329109076870772324999492491140166164420347291118023749378033529301785714193933031533827041232171592415516884553731854482218614585004879904864555221091403049548076539172232502019580641194232465805465252267412525226491921442402789133461482275966737767204529832059963272874983603452963884835199607165241306125633478981424858929798485786127880650378881542618324748399465745677242995632417501707056801969769469204496405689110183190685874878449614774569341585622469958813234718905611272640567796524814697305186943880525157936972436050894025014907332278213921424217772304272242162973504243572772762513595382946723829894785839004910881962819024075423091979837393101794875750614436108820014672508312547756055275023840395342735088716959715543876812467254125381300452673948848208374720312867412972460123318470045242863716027396742406798841226726922157158996066447422363695318022042991497419209979898318651554610850357730973531651097433025952603527495738227041980476715322816925615036982844588065713903278639686692263159078327026302574796609782028932555967954691413575269153551610444010376814880840933824723021379704130753328564086654805700709312379749835608445775426599884674132006244445959325368955566912406334256494171177198713314671151195529278798939200163572466820788820168809631280741994298943673626678051322451564375737876827648275665282401120998310893567300922646390764560931706593312923837806259576792799474101477993450188716282635703270669814818698195513560663177600128988376717823092164241093092235294870930495720037103874411031680182864189757331891548406276314125861841090373426617204237397002364241756762293316203495341809557781463591158124028237221157956166107660800572360046885131390686998809261296832615578941506566651520519967237763121627429100902983945534418615400466580039326593828419379393497844743831647456533427412750192102304879654421456523201648980468033657125934845427276835660706420841211917696685886555140743811115703958407646818605691490391349892729217743978139124151640683410448950693773348092426905407979965028995331677885755806078032611097198045094049906422330156859171783457537453021254216955602447564869376852011988879883808816367803728850964845243451317061768375327523605113208742861386504068257781654410141031075588199276247930194472885326149035912440153901070065752726313787688864895226147833416221702093835921559159059969423318723870494361216331496871486369526961042768786099671391745553465014608043579413705692463107859230264303856962862199266955926279950987243298504493580890577052468469069604184148199993014672013438846171816207674363474848768363843380297975727878648656950163339482448627839811940604456220161561083123891708627648428481186534733746887659433876816252756915788742720276611103362666560463889295017522051343537954812483038726320500446076618790212508399067104947755536080871915846646950485537442226521022383045310517652791381787278824394701142779730064381576625336724364045613535923124158513716464742390664210686950574608247607150702884300332938468121245595667356686226650101900307637369255088867173732743590110241540072995796964422556031525149823726412481697703975189905250428529244759633174086295135777081965320777966703511594581492628111605845533462475480412992676154040814251934979034343379192006884435510968837971783264922790759124873679304856080515692080066657387515979008109856212766845897153823802521781244313700423081766585633369080585018209708577018320647059158044895490530796134996324633775360506275550124095027798261407086884264825054114148462979377594677346546144237503426834697824877985684253871849308175933915111044423716688173412908695457729166858296180651527585433182554485433215987777040260301935434260296035225049861736967548160217134664495890033274309746790011306306071851255853600364989452634791895089092902585597660341295204273109220489241635926439841303320465908387912432284947327503439532403165512219499460012303406381539638813325987513429659437692873899951228835708944432944374633478417721129380816393955968297551016787632597798197911712954507510348003354596983544676422109986585380969470521860933147329392308179787680039382133549095251256337993399535618634840871993860162334359817784521110172576502365997005024250358456998114897263951777745994414644572292354643800744230990878467046488603617478841221454786398416069974192308200593318316393638791541407932661966910558445196918432442991000586232121315586599330989980377770845940177448550426043914231589564951768149860729198222874064220848716810788841081366519009649919152653623682198797587087111582413922055469902395510517040061158369743879742416015677916800836535529684738276695052706389930498408083587445120443260104448123823790932223083398472738338370312224731464034217018160208767535912412438623865645061106317409344414343777616137440703914802151685415374380563227777104856557697768101009454521802590828591403715477896642750494289406867462522421419147706496925744800948700260973723097845255390037643431047464764128490646443302230917378022080859678220157386586862882581585997695484231184945866870465658284878318822641638080186347465921408047753186414970464707958163652229971135988957936021118978156170701387736437227294313557165869961175325778057158260459475115472232133684632696053199024694835672189096192983060691236565668896904012208409375372675932475491389773705887373756245977788482473061500063196117502687201348303569649764535795673276541902628307112659182591296383992878274445194158567332529881701876708835986225381273579492273117414082912113142738821874313044816555157574584422594478006822548560958718014697027902981496120732578462294356363890066138674211561221063461380740745756041162692651864797690825523751353602852959996830919132271729836145497424350344178133386061596523257434255997117052530439160931856116759357332608630213785626852809030148871063874427772067578981618818129341422470404813640071150406383743603396180335217676373380921247090412394508661099675312866496147548286415991304394899727213538193787079653731264769351321400031946055241802141823646368747280868794824132487618296811433668656647566748000391305817057815579390308362884246390939890780188421884006657173165191301550347665721773004559628114025794960481778738756527369253630792355694646796706788675762828197749818158728243404745049806082428426294727770195175858157547904295232305482625412168752179148876717575586612718718613664320413510078759959896770167505996204557004862902508842717188601645320638973221347529029281459301829485875930093718972729629157206582228384611788510739988612671547099520141857199657951820746777106381178815276806752932781183356245418876605356133453694282137409688552537158135437941742365581367476982200541118995456025708193229235788588954477511494654038180586081556915017719140689172426907030235946373129032715551940390699570684611973047773310444621431162689101665806081028347299076096281989923036350175267599739751750654477130206006282815388832851789965700590127345664985810641010504174680119678038348039211783819900225996244905827015085844014394913465134356136170753203784559702114134009217662904602020410242999577992796333038239841395993059841254275586706722337320138670916990440590457314012500967628225647000339693451667188134747998326741230580567661278220744904124499311106594281415946473247438431430298035778495577411945232202096700749607455588509622258016764488710941919315410993075877758432245949910617193669280991672030588871580201898870586375284154173966135117348229718164958416015832063765103468996674806171890828009942440505441429834371039869791718001826865397080246172898522581079743820931290438884843721849632556044174890739173898260517313315117384533742653711864296505120773078458604172859633854220981575620476092996356097534527570645747907068137596569203055719909881892388926529756276055004836221353823637078676439090489701590192949927298187166706107510072882736403571337412037475359934449701055994231967496207568823238472788031134947465066943540240521971129962489620114390678970908358286561791659209658604514199914430289626029580987876343976297236558352813148087905850807602906470426422447822098242700204479759416050090714507103224438798897477823521875024211123762813780419067038674161413376739376648135909806486785014377930367260367904043652117659191450988253160995582603610807818394522844118187663223493999878729808143220475739635945895158752759404554795782314170219344687370558113344372024451586887638107623440947283128159559117597747670538487460042158735585357607860446325056787032907334923352934137463570159070392206404963135733664679004934094128312338444169721423493339377288874486836209115402108573198171256203711545628563483759031743801551182058929426985345259288366963542752355811482186427469850996137636409372124999588465117335220834401584206506582346525739286133057540239448958163144135537833711178894492469666143590302268899402507478810530204228900547654126331855632988350619704989454563017619312355459542487240102227217529795099554428919862969187130559590796825741956143017316054780632917756257964229969777794162973336188999415552721187007004849486092042070312152160230098668781255682700535239762143316970422099576462173348103227725763597959039924795476306402474764596785993508528515866355616646935193867243860856376251912833465204870760243665825484904965605199959384284392861893735399581105009043031285694088141767674195056840083804931882577694515560951539840679939988278044413922721859834943305899993911988768364645184699503109620487420841540610291706730719656374296852776293478962686665458021245046651473377415089119167170367312205392865366656489179964338935071971594250566449833379439566420521021979094726240725771849660423961014452553900366678226856842949723825552339306683692604183452078733145044596933729009862728075752213122322107067260479982437502004733651085476766595951597682420650252757922443164345317513900520346468996515717591072943311872479957045157025751230801199373759037809606966982074039432032791198841460403558619983288455452249154454681901547178844784922203572778392933320839751637266706349372005882144876556001820533440321322365935011514642762860560520522206443704623064080510652073645407149836865354215730996638256194732910195511969168686495500989787532168930406141087120033601233957076117825329999810806228341938465168673397593871220376371676590139167727043964102758703565893669753703257535699957839110520184140055917745822815342572659597491836405317748295348361051401651086748555455730119221456348241237593583392776304943608695646973502332477619235474686089202649495048750918238211686086482455360842220670505194355843415138925554896231738259628545208739073591695846390984693630037780337741735551858892337571687507265574746030742392674270898158192781537399551128295733716910650026755519659628339946675531014059052949560010260121319432581620202288321532659792416984252942574689147784210619470196379886462326745373033501596317425299862985249772642534989717003194565616226808271882991500736990856500221328843385870509211189334964528232488846626681512358521692320098292861725100691803845543149968673397150542276197864944446138843067948441256011848998901052878060760730069539485697509862023691158724862506304127041701590467079903453152697814307269194731173946186084477418617724421806191896447973855057177360401998960761782960990973254873223000246899749279160849637090675790125032573030922251648881203664651979575354073372640348881591146228066368068206583402435291970119984709096721111922191176046084444906007450416503763196557710398103148618175141430934893317835645365601853553404977440916457915422334244752104357929393316515066613150317314130762277672853763533743192538049782202171474920237533674130421771113413522712832870793735189851392960977799392376904568210633221310045420189427430409684938035551479252052994054513673724438657583809719806119021606391558339150227707800321042837173916902489886575134615480088176657007487115675477688556517705727608831061163257386947790295046523636034952504887970265431330325384845424196674708579391018009944111324179329555595157898199983136132399381057221641839730008855289163517005853119743839314877864631812809827979443445272097727997564341487048502963710040807011800441906360118158875957021117946434455243860137472158534217212907556167804465802601082759083793445097073865859960944647104946941369548732446424547900853284257570993334899991716479141055841756019681109495800387061923928807737375208338302140828102525988558017547623959350420910273330643634164373359870361225155788424626611507742195324813243094127172917718027682193218881584879816458151226231756122850369338905240252923129742914021834230925689020867062826908614144871119844285481031851460560848182780468518431847650562275904687977974595625279790999890121217410865511596737155213935847519530516907286736595550120560987844595716529550932362526861358084352733404572442947977544643286114614445273964893269584063478555209679287034245415970045481676179680495148617885860471256877488680333967543284804922163505138184570594022440813147305062651912527365114338980624889132476022272637680267658312931494882395812148370407556810468784643225739553598260387606722278056405980118502180061802869673696889911657272636340193770993625733468215697135454547138565084603512051067646342004744846214141271116279330299908232313390185085908089800777698383786983115594874012610081659603716804822575734973199639167733849971514677944653586401835892775050478653906393997218489333885069574900013405769166191001580302076880893612502162876427663937197352038052695642491227459146363073228653410548513753022205043496091560383554527440550378880375137700957280531086611578778925720672351590358534732291380045759668379732671234401843372663865012505713469675135037204791565695086157045787331823980007748214080070235812760414814688575551955035494756156022218932367824860525835743833981059412538879141064010361654502072024691371824453688227899587157514303557842873054713671298290108382724691185398399544936036337793800944389975861886564229651801953204621703344224922442563343543387820618126507860156675123726917950490490022639933545886940785873339483838358158304382250884652757707386558458255290888372379306008766310820403624061736195633144766183633790801408505707602296794632374725857389458269596943734837074078943471346870238561496818996531617106972695545254809156738726958588572452810081792925272483047146866967079342855810299850208493174245738469571687358224227691476029118371089657017459926496342532189527642741971044257962444774920940642533349798620374840941515386298408569842539510925269375491487406294933029247535745250151824663173687339279210682452233525018620358852768662073583830658938300861160882802697707405190460109015659986064967192676238253290071125171758280448395099580962633042558636130092824891226681235022580538591024197469377326761551244698591013807869038181041142236922402627425130237274142832945088112192023133565386901838234886659010946098519795687334698103926968475305164834629184544929238016092764279983279911938574446563454154319465411811730303448449072034670133935186146591697033315715300419631786768152410759717778963756158217560238830213640472644691213482037316565465212251690273448630425850289856780206129009620603195687337383164974115963182606938599293773398131543180657455643081164607044312235597877277087690167999918485939929920027720470632488996195007510027684029033842233042662312596548347594030575407810377768869434418248004229942166249996135898166943697053716496763260530441688774438999850312367661583556937531201028895880762045336184134823488326539798295348984490936604820645288168683396532798693917126139577901953478125452585033269627010690877221629633208625626233902865603441965686710863502158885886784240985767901497110497779161604500661961311468650067851900906119513671363745714135191809471879264446129938158674345164163487529820918790498637209347340805474697713757179350385436937282979669225011061815094533225194593818095185997574424012551020877302793306397612138861470755797693131824197735472447387927255153277701971290693904142872811605306695852489188044749745484059258533855500522345684517188471338068079878343295535798711522983851182194751502534042907013353174744316467312062289273197876399257112513969664995817655396959221296800465962626609844123291262120901704537846280534312696737195135818494167068553008399743714533163058648193746405781187852472006362680669707107224362523879184136904217592228140559484257416915835629352469821264144039378237329323139186523527414792453831387152633174698065513507977377383623280125466288359166793592017172144506716137310599967004171296059881573944034126992779596893957458315327376281754437399565375734145379945943926859307195396635505869651264560547433529804623614510516817486223414425693042500438783261242881920962071804485232741203771825001504829581809656697707693935804634131736157297042718860354023221678792889990947059467249937298301000568882761868093321730191037908555711808647504508764694435902217915800234641385222629128098056056914180311083404492344069275610346514066083291162561535988758552615986442220583270106307014346892267862909658769596871444377639588702391735294109378026910568181211517035301627988160956188345733882419462738053623629265587629503182225393442059330515999236774276776156131184102804388625355410061592003479654309609766162430976853411663270346002613744384866315120840870589048468054333096282220755800012118926819382538639192551077722409496886165995776185873624530846669164021157657302560326847056118717540414650014726147327471034673629316243758825006914889625471646216464229971979286626198754797546678135182384560471381121255190503064416524239075655525158963057585494899637816531912463363552636553652483818881613378725459608554470772863257626107025967100217216261645669463497180577136364357460515336217272444528956026537219088748059334391143331402404919512174671255289212049474410861190159820984837470045102113801081457094052250366432825000043221978789027858441716218082200129607590897714333153694910547391767691597547913576605284769934607137117344885851775261015300812538912091316287878553920720206834798681368742919597951268183444091378752932011948243203301785164207518953779922079409199795655114816339030151161111175829277484372405533143869669302452175355146684594897538891048038869467480717764211168737587462434726451057576718439142926373554728755992399017352721929325216428725303911021972805369440613097027364273598439773550054512160481808764970091444678517440864578384559352087084725994213202573740541058237608144440823133502823014330978154894715813238497896709578821716855669257918559069546586553364888718121604294510269323400447303997336866152109779641230764153919219663218375669512968319964504261139659776822920514347794182253533482713252692153570395387471780324997550422981344640830024438824822953213373129981380724717587800580667522962033395560747780296196255195601681813139325537343031505113322470439124820457295550246307378674276428692196325379557849339533952173432727740074696800770770026375579892095876038024337602475945327419623610392437720814915095371760182528789247391719733206142414984358618283926365917778241777215344111756526545774410704536021152648395913017594260406072157935786629702981842596352185029849950507883447591805309318190963027794264445546294586638272806418336611415727540789560888710193259589198107140437702215204860564765153222473283808265610708954942479998329532134744942877963574285002933591647784258094773774449828899729927290262374053779327928371724209472035056989700194737320553840656811598420906381938575686410050768920502710580718107935440914687229677122921238397828402029952306022178232603659771181678823027746731805445862308357576516309359154048812034685449879366193604031628674161801442011455541254082255763485671625530355251403367787909756959051980486554773161744313994034553798075327114277162280871640308845913720096792393513148346626187101892660460492494244629953115935401815468286926627529326673572736233777333427819934329751540253854956368441579224793694067002872607561809857804690924793465506492906623460125338321312045528571242634554318964696936768661628295369347009442285149507514069562441344238429029447763884017182029747793816433099700828106366329912509608337921839057883187212174200685480855935661910180661832719085232525871906936539096164015443174962114553745062164367276724848963672367893689237178659164199946192198485338237142548559373788199539244476961644510767757305604638985945689435353419905723229029321353437959952811988140460850081900259671708000038443760281794480586257672962358290566995097954795573961948547887067008607110661682048712360774347139692099677540796004622706036137853820862194650265192692741522975783357015565554811330115282131698065157990513467196041213793749902964313873679458102582598119763218967464499239278544241364712092966124912533144417104100450983911466055565773588243739183679616414986760304087104956743200193228925055820855978504629113242756757929506456530341455209270314939748656852005929294953805298625743314557341756289223266629338121913399031064480127490326875286460976829915987669396067980831529430269563860892405943363080293653297158647812262252204066083179095910946973785441575979250679331413495632114561184191797850923511189179273843137658651127480648446943622288845185292061055370913554188335539974462698576756133803695477381930515433986108506268171350262285229083058322039902584135255782694938523953562463852453282856995638868916897393708238912573373046779063241488715591105766726259244571949829487028291303051647932278540903791052989207799507901882887577736545143719639818536012945141824143982348030797424405086913330265902947401153392972907610913145400690456348526413072910170943734368232207647566086764273573396264517735377525958442641423175746463389838749148047450163618343118705649683345541940101280107506338657179634228469190532290305868693740347169536703075386680709186547572083491842819086254507539081805583044833619146164929131357898617463087334155858956699316199742104563641867117753568797256324965490295833387548419910740513998993148538425645559575992490312072293917439835458650468207948135950958685169329363967928310309138273817134970375550335457381024498147259192387601541455705577600618538116995704114516145423029771940939967067500558342419202294313351216060847540774286143984049810448934760058203994617297439246374876214800256393572548526893932413788476623493542303474047597644918257727378626748680705243790418932892868980254207297238568076097101993699715369942989376573105414828120489777752446847438966315302763842029884406695398162192676609527119451706269355541943425670492871871394357101627079519171012560532809837889832259447647818886057177709953583765902829676717865107062590797328080405927733911165844219729906945365353007061915810589296299060995891750484391312456526033578770598988358910348787233445651461074883691277164442042384086228058063522291650101322805879813677645387561437124918683594397656356700433794365141536606337260370569944266227843391050904839556622426720750867953706739104026320539707566942198787401623595726118852526156775007471518419536821259186259508053934205946710382195222477842317834036011651900333313230268206157070743921526571365546477557550393595601098154162730402456778285569734936830525039547351169074533853803282931770976597940978837378992803780492063604121784531382120740662227202993801400396023127211830624722068690687101964492450045352763747530282827868542882287923098096024305155104891580309867633813099037006986358345830832189073389696836411274331834635440305560104968924598685793156923291678086856864404918888871038851671055470175002856655563561403289065841802518137352610914115415255744335407033372831236696169775820476365158133098285988152661221695041505384764495757493044834398864990662030339597130945700426809478000378597303308808857067929222338173157524515500305177070056180845751597736409277965705903953389138780262869873229250054238969475915429293606309473290771629948911246815771804600866462628704884374618160277379525170374276435388370351135556818994436688840443810363721793020202633826107527981670045442584312136795331560771099396440972026897330182894403586053682432971063175627392715318638995032051300922773240140841022187261370703317346387799974078332808243902429483604809775192706906645851348532002519533498967244448539062930855315281978180967813837469034783856475931943334934935977867948532242558553555298089667382887782087739380837946417031542080956453930860959178435949920012684014068986749092610485801568742480414979451716633641318655091904922429663691739320661053270469656471648855084808210689192145431548522691156838942764591757926476549762461636149257881202964503091742053953219026303866239357545325323946808584034076364235476357210777260528333152300473717679700368134842083851436000210533559404696940056035923435196573540209000566649590606008323075397460402448159616385129352030456830178604997691809965297355522145092230673010947734764545606841227242119909377654729343093208235071687056791479366367550863913851182568075605078299152893425031796621268570947063443414382606996092570636864888499383560968708557105392070976394381347339552171885661006042839959462552492517934980306003993520046531229491076211352882580279202359947751554779852644680105741921705655320804737666732193035035309311015308861245990912187927766884967715852158015040793697802933617468761186835941634740946201821812333633443217994889846684299258783960366956655608439157382211695561454738613644915957480593808386906376119855451213940247204768999816361731589525146834836380503908053200547491721854556923784523972089154492139280952182311801502431107485103816883356352293243118388170961522747203428530012743415985899902214380488541662257213477462928755109607730266272015879698498400050488553364036415648567428723951654982045875194254909392874636611243604128972444022701430510316995809707905834766850505050396225074890446801273208988911607847812405663007033275282510877866838516314583137128651693017834124468809739781858027439278098449115546410914013809210664552949526695652268014707536936836377904421149406482453969526473306920902450113431098746125090797620131366397599581924770143795998116270271057857179399284042286042964214535568218861075149170505548419885509480663831755490579535240089515191597501284487694484437838902392206239437275368333924192297643446811329641828665348952702936574243185488711508589063121172152383571259370457420972412595852955498057201935029154467268980358919891529810107122210143708617868722236701193370859808008954172093315800441965796274119882402442455885123661083380894175878179728083584052784167301860204228424869409283984806438975019491516138985810050550107811173349568131333172680671446553812995336329252815199250338501828652987114599823771770434301968484960746715593000408885728420083581076413841160750914272780093551280905394659334482275936890501540142428535827030123557839650022382548577999516256668806230946515270948732472090961630404724818404342081236553367468108079123172189599192467385863954348668340735271202134868683559417157210788556444936690096792171074090509874914625920894362565137930043124715477871126040279734793869459826934766149162540066328008576742987844580189692146669566612780425707735499453335366597080447127402315736928336957301078186017144446138784875068650173551457572870222753497838377159312689201289171418275384915868276480826661482316236849252763719325481248965884819183573270819087480323086243203662594698545836607628832216319107058434697857494243730212132639284127565203535348631218305092671527937289367218295720416078132530692751266771710340838372254215553802746623597552657871932711047717875529762785790765720350362544741690024550858191600814286445787383259413263707925526358919840498901950228522590160377232784852566498324855767831967607971098006536121630310465042321714451384139922884454357339644493958304779767355210646229945924122262726054260714787248639387945099251949663773232496583035376115808532070658702239017222590552632160525080894446276584508099930261441684277780500748654163939142108096266977879366608596655393954172083073954400264257304914506084762006026940447065974470701890936559899868681093668481073590284133579247947427101077197100998003788192938420474072653098640969391942438435057029408575069794961662087943334488649121092662686131740254628577176303559547515950068103799542251869981814090137885038545186876279119984101886802638006731792636565345210069430511704224161700212814242146921377094031035609414890187733013678784922794356944379197774598810806715145996730894213311400328477421786810785979084465428220080353650591870060537647569045218669373142595692564466989551045378448659863398061849806026645245074296584871702783191202372193104015859424737847466648714692464875247205027058242110498847835129263746828120898989295423712158362031402382348832033132053241482707721687633562915957726312593833365999530584844096899704858417559270207736186106128848638628658219489815182326174155446578460450326597722760793929975329764266892693744110589038231039024106019060484046726042254782469395755203618465932439965870493936885909649298312193508800119687274459056075024592881691654299937505857100315876752397365962788013192914495993658844529557604628560807066857769051236833144245245959051534970931421440010134397261933443028911854613820396711958822783911199379934547523871065363446225520326961414044599461533441440078813112933288796478236378272921375386986406513673909718385539054786620803030831225063594611125226943838289607868678503439560125862124850678984816951770068120462010695006520260410667802263587164984745464379987114391269974038245064812854741843828745238732664887283295642138045084636849852594069102176343565982051638104839516610924280028265887576299524814801816135540744194449968597243669969722107796718322878002035374793826723271819300362810898828686584251914150019913316009303181579863991864254700584488601807304041697503463058996643793982815768242596132894786903168980289310673320985310824526067465748720531247517498533464048662930826593841504298828704220105702565411276235579956999091910025984628496334739087785170038269829201392167966022900605350135863728123424007980544284424781692230071249162550728783160383353717528758997738575614086000428999140555264267380576446400845682012997837419749162614052008464065428852242364239468246081074737254621801899456311112434354868633022940876751795187414540054164023079808019807289581210834489492292926809560999928267793414090565386162141586755937871702837926000508911849616699567109939201792486091518457562640515072611830353315918676292640644242175621649121368929498634601538669217841469642235360851711148481929193450290147737914158329385841945465455604443966026887609930759703360619161880649935238378152778149749189284941124472073456302221379998849227142131816290636143547628112826841313563270657237333403292162956741178647168956806147119208967519496185774163561303794944638362599462327932023471822427666981801078071147146321271923903195951922322923882421057662450052892460907582711379324434390126550382650200413520508267867664601228721742024470935133722063031333905490132094735159290218369670077306776899153889001492045295663116030861779870413840904630458721077688868888839395951724596620630602329245321241309562145239084417651668473014263081062558895573895012623942117844766757748009273765471322780954545526067262362843571434503419014074171297176905263014526363370464847815508004279986465001293251028213056232849536324628769883843177625050467721795688937825784107774496204418462349520012517946855014767598415270095191143453057539798730596417108532426893722598994369143280383286761180720221633194267780890814161873002099004412852633261113522340302214715017787439822086241177638237527246192122154222180786495450544925644107590897475303452576404546242601857944885116303300687552665723702948603018554863410133158793347614126139781650545935926240712496533437732502455135699982015705441434099882265635307931965026433266384626812932428792675803722180489056721079699525896372885301645851251388121126356384853385608023329562126250722045800827424051145750793346503284464386520702940612267636413793918212021650828168478158442824028955271369336681924919998547469695094781272279024836900376002741252879236889317462770737441952977887734568779650981696908522487711940287607904969872478293277468391584112531435497744830760809102555006708421161653325580584547432296453125299413998870288056469432245934542081475549726818482903665759750394743218968103526563142995263329661426739335649029597384276328385544347033192753518756742436732362538563304476326107069507879871243097550994646614096012066289185103357364080305835260241636520016866159531304364850761954025336647464031743839459204881087906767024821525404278354462312321306198632766424220071669332144385680047634184352439817500087276486863118123985825291184527728463441237053156941724481262624853320962972168934980245159305511714377008929565916475091792029058710703355696863574483203012381908216063175722357227217421744640463699357396436594256202974852330307803929592085315920844142025524007345391162021289254313953105461126996241866136103635855830082921826506432268323796167220593912810621622247994879585004002944064393503366695228445519366199974116981742885974161332948673841550238818715553381097752577923257086767370188720233331042546326287658625842630783716625698549195434724304758516480202018265472188632135390234243323659688543126319361001897253337651371694746646154020856879215037502298926924122167246766692835458327089325845575693881268114434301421245110713282762243956717911151983809035727401839915188280382922492906887032220792931037939612555678119699409614748951725705807601993575311667138605417713959900214670119597730720101363195412450600762742240632891989165679119459444012213361248882228603326818239979310384579567205488869194997800960593214424144302908311081240843815702196540486567220724338089454892776573512566664697813226885871421908837508933847462771374877076701124671849320697284976999978826181763339214907112786157632670750761021852937354634560574729154480431005253887626397426972332155467657746459868939054570520691394147891747587392014953324809060385289032939229272208467313813507814463914067303128075541708037287210525845196451683278007024606055021493098920291044476187962614138899585888302870020045432131380371099231245701647027934492429404159697900267740078900403138825054704821000915033644604940231507981194072389802832213686237052370726519854346070868499897449660220037855408393867153676040096218304061452631089789564476914045202239647509609103573611801760281342747640850870570301904695747550601008687122244095457746566827431385731890774798390821676369585384359993322885731066053653369170703981674510050060440699778275206832069524716078833382365678940611114269405638810788917007819134236693834212365359606165070996905695787789011323358594302432068401246359237034093499942981287668905223937161964035981518729046380167678299254906369242128258105758264791778198949568237705163838565001452449124822692335649783507497451601978559493046905133673500989936230447781267639318920574778914084051413869934226269644418034283050670947629168711372183346864887631449180819998895583505629797189655576812499417479249286698272284978873322423087766552773340452898774972295500629965562711670376607073937813735145101256402990278332350720007968143091023016245196447261087115978155154821353828433177954190276139681445186156153315832199619871987100394626691588057413415416246237541164438212227319356199155624987466245140415709079231835140155699937789615346066317446658928004440352646947386080282682931750998107275859240819964387326409398950426931528395957765235107083490538527282820110755247007597655301692937709450913682990209668777864992797892361409171483072135312206688788336892164329309529870364399361888220370204869308820690403479797208807152676946714233774894810937944774589348272335562677063170714909665890303390431109886138279269857770739727257215506552587159749065233194647284587978908909873219042008986823466621095504940509315416413708773162636840012645944158045355601482971648478141053677580891275925351930815474880681690179507546098350663661203747459782804446217244725882253242381964253665597496178747282403807653868514080090658207347803917673755410686570488661482907475509392061578214314464255648968810075265974657670437703001490650497713670043048247335178010022714949123367831512557323349131883351126947059475082313785025907006161791098372925840296030646108861650081061114050947198400126224023199601219025147698432682312789156416886926042491559249187067989557798877107737371755533855067815278844589425965046058327788698817297589814777316289019668679567726327865329650631998129483230108951268808449280963182975238205032802056605825839249591842882976964875400950880266397095266791901552491817250816494714412681709638304882202286953446500188363613039686685352782083433751494467549952459410689145017414712348991041964913165093087776428791445040352160469986090108151295822497780297524865699960651069608984570224085201952863560771261478210376310310306477639569892532649911643590250464905799512546132196422183890869634662717692733053279400249491664783369449879610620557288038544642511796957049864529510243712118106704958721179331607262920796366587452747076540803756891232254797909432332697862345535415867863973031133209246723688194342015633013645237211720622111966727969933251871407335992849999794093877787417441630109483463097955872556837962529226938270450850196336745890092030386892241469660565337782697397173491205579583784466975939071824086970716569718387171789682969734364517717025843038714866232683449638562276614527616597967941484655235194460587260632702690435923475230290435442391702526539240846152115533574253765220342718118899903162811019390947150244849222479723166218819839831591688981510517098842705476385107416385954118149526686098003402533777995509094008710915929696381605020650125005117495389948018586639643693799496854015479876022081696305934765874053436705331332278669103252333408288082257002458299928084941711448703503963850831942206685976984178827123378798391849915200533511440063518664817838986831569770131455561529143327548000683003232290655097442919277685638053002304136108919766413583977459930048953959656871894565498657422186292190128764809269616417396914823032382922573809208495752659058201935750366773147830525135326224986551457535685774071316243078934148178624769798556950181509577231756950349431703669160049622646102274585874955952796800636880072332086822770210506505803851820196672304283207998599266052171784997017012656402105631596817641142882660907224757015237362100164987566789828377899170582504505641213717851001896294276901155645105519135579860787120867866781998267535390470967721907564823441061935043306466335208765236276380324362767635981539195046900180292796679018916248988281017817342664675308301627928766936851634171960344959602353623865749074356889302223757684026386641953322444091709631499400836395461260180700448274543030330883319599441005227770748552595920713933224229482228315476021967654887509948259782304783719782926183239274755596107758415229129517212640542108403041561542719040877858387281300751015278514680422133599092311740136383683153762452275664979040258118055076488153303518540932795225231760418654109291018939999052548973232134981565893072129923544100080660772301975943226304115809573738649600602568761994517458703730362278701988007483096188664417984777820073481443619928700722883364903187779567892907763003290374411112843437658465259127087846566507226008662084937257975231442018563074050199196814349671065252015998387757228704105829367462607202535562964058728994825783412850254379326352700164825129749009121674325862244555347990869029971879243102247143152411946714044884211517641289113982873480294188510156972853716712622414394395050356008104861504828615264483947146990854372212243221127823622514500647915421005006763641568511671106879969744311264096967565921138710501932603465698033752017148194104127822502811423340816181039939798195030992417416052153339581148700008468458835367221488386853471935571452068019887040834396351245523186230952515420971077728005635332798378793939969299696183162958737976759595099349656169853226944000182473601716289115619059017462973903962716506623190924527453133368151987335921979017712973041820907949055071255528531297251831272064231284709893893701523792676232385384249470993603263237823455040963685797917579922432304064119019594997880446312453404985311385175442759363484463509245680447256530525066501370604045611775031260984972474130406333299421164180744797387811187546702768110416171036668763461527822282543154843284946317364157453494727568696964345142657574133746646859405090504324635128318188489310952515701006905691723174140411815516037368814841522754895221510055382460895293812010632993565837131858853629128930091192143779623726140923545307071619970955842639639575231194247725058338525341908448519681578290815295531307217865130991630539946503212397317658276214413017113177993676537517703389144826577680604775672952787014637595408679069688688975756111099413587969656172159388285463774894798771762244425605149423712122238251595339061267423565650220088266031842955031780500976663028357933942978136431783344186383139616519968077663112895694341502276607030913499530836559588114642105681893653059924628076789886747312984401289687579846741487505702909827374555364557675379508064754283651219177957704376252152666919358128192434108105759286318366743278325515377512216541631604090137227776700289558297150768702049924090631299062923660696326705999909647274611413285784779391887318130037197898223591797398822673546066216560950210471477733825993245997853958063217239516092048003014260163362741559087655398751301798030241828921873753880120712115089704579391037715399869508765445010915960261840724776154908492885796539319943544002368190531890952129406929711735383186140505761312338868114922952726371957237985459967713113676630323211520416848552373572427556793042901593523391255162877720356216902901113810126839321337859070878485140095498503150812188480983015997566266500462530273955400655639886754856101705493846209704915725215196102038905744515242794892300270005901373395289117542162967810300589888293084578915065898656102208697730210982782754405657783457573216276192288920518565648060433614100524383628634343761165200270632805670489028123818058640978391510625732869444162255240174730239636281884573024492044421775527540294700903322613798318646460507407916215638221916063369775454637055564497467946208541424512092354280994029359226281173370714983309201765117091993493021004249286954496783885509132100904023383726607143433683756259189030568281546207616412721259736874004284780443316135935262277167497065519008816124478253865849743371537220365258392299145676540735720112793625559772114079935719501867253873096842766245250428456697921557338233857232705094983701983789371760745749038827938327309391231179204248214341390045135979390960630743109127777750037657865212239427864317995379472555025885078895864715513622770294427025524092967498261286655454317043793697106436889907378534253428616251799737583369938850254195586454110260656283492389242601199516544611074301830583047945451787335634341418964169012528396251652084821549786452336316785404030497803298404796846368606740043595663943851092523161670691575740349451789859513816052667787982570136074419774578539250799664566985366190184822844568206934238594846018287246761190686486414492840834169901061728001983142878868551343604493209554058685310515501893458248839143883548770162999465316352002974833839064304309396377299138850970620485377013343556009099983793549557399408033853728308432611616736746929834606571157481711752274496055882843089586919966750453628744300969953857539064349249336739622095495213110305881151354580861708348663308615486387867973390766053236096022846375962435897769716843011019625093555402881089260326221381045693158868177971348856248292104119142263208813589403639438978411806507140931189826774177378743487495292966443885646006189452260858591731965912963718426936460006330213248979260081057875609660155080088756420498241199800146802608440993741650016129216721838828930324423614737126672022422206866213871761535458586185652628918387532835194924933901054495596615612582267809981883306661355901861546353170685929914713460956351316330805728782142348252372565052987323385605947698801615115671420819647293908214675463620469100052728271673033640947456674307281602956154585914524828273211448893313169378309825599767939088306855225295115079312978562741591366622666391546922316479435363380916212093168136056515673549352087600157012796292187349033944545856205467053583151276582791415944204042290899534119566437892399699955644730970230937400455606091725790976739447528417398673473477169081602139142593441874546917547955839073093738923341008155937073724780628073825335179932262989863019587082308962021457732386444959652797015459406341313787499543660292538876360997775406088842996360002919966597232887767431910558521409991857082306909275961712397309670465002739921962314584983216669853732777922116404866974368348289757659102778238477822635309628159351832807643624436798953244344610641940419484720202687478094459148035778991212823647409951059002888893687370457305892154513321979727628447373181969936742560550414955259075908889574063900208864177775356577140781314152870972643116817241859755844843052817031280555021942483472009505818202868975245993905862548532227260125795274886263683620835933848500782936649846337388892698136735400073766596386881847768285334217977623311742857861111094544175169934906340122458646432355171767308518994416727134056918834907624758642919636721622107322882438736085427616861766421729129194420029859173680099869117977989072046169392795481425788610549425793295549288644238220752698228408086209402496553964802357175297652555175780454648256874940775635376372696819435013382393166889295377879919473359031774014913641522983204604711857259627913379901771613900343575325322376065640019878806046028431984064577327861094766447891737348799518351367837408440136034550212638055847940623983078674791303462132364810242561627380194338337477554347308888196586875631226767026226096383764060133568352055594364671097050697155728019907672255937966445861912620738158911091871832401569208543865428108386035228872116150832793412724548903364404575634613958881663180138627637668220033540933873003125690655025937550920535773637208451071405870539027357447602108048970686234652606230800756873654864507688764225150600557105514317936295372992670913773886576460414302274160375409938702842545462100241235110862516362784591761502123645279188691067022279214538119290817599237044353552222036702704413700955872183655652154443965357262699708360926073183727459191828097509544170644790086089935686758443397782484714244477301211827502697812886630975730914524562902915515430815476211068988934501328876781726679410640676360346878297579335131180165581773992715664469682968986458671178767707008060778626742495312384553397566952750472873544160551865135563615013905196759423226802396117056576314899880672839819773749360668173262194613580616138483378031505488669688342535634239034712453994110759967773617131985646412715457752744730021019113794962055059717227610526634855131777523720850471243825330978450228772228796836914173587908628212278202236572716843483817556364416138501494192254077425158800733821631682081777570284525311870874510598710288922905665998965013047614691457942682333288092421828019632136801050129965234819748606212010051477871763739993621697910308804811531838041217159402609031002289635353590903625983110377431542686242770276884202232527863819389359624457393221895057900680125072285750980395959618197441621596542097352127487061675966860469157180553880638531198515225888204147978759747554263799504820557896049861383814636103708438786185425910742280634209866264410506487423493439049358969345783082047789229162492993596592013364793010801621392757228773903684623543740473978212668442996173986377259113568539615941119556669904711399168656570872551133681048415369919701951259236618291831192927154765383735101141252365149174169314118966458239759064562748582443246300868201032752118777453430372957578648493540095530402801289737358328612458059792966316637501211720868021049911456835148531093669791442624099420393859576130339941342594696735757345506036957364648526045092384106762282311908018648682107466259208793695558390691442207826052949256036280999718495296302102953478275000547538698187844669341215345778866642995629621883212387438897664984801038733115492148108992511809002591512932774254264662143080273943136613514746114139974707429811134687893517306974166307231836711213441223418427582524124529836020801508385331747124908910842428689393242287464042464510238814526819939922926784987353276649951077779355126164168872860572509139485727261060776727650256319076046451100774485188462148574177373221892991523793990275820718959305709040960198068120229671724188462563338888150615438085267238844111577108090657020461863470757146252243255876735229296668256486459113940727027682259937228573910282859839761227187083922074885087018671240669078473665591559971272988204652748151857123789787014133116318269391311194722067829799316719553323562601957382922428605999054085172503813126927472454444180318562858006249632434224083793978817542373707941547976083251495531636012792540701231379688515445721234163850710431640399747270193786546929017870298861827721687033675836460111507264865289201419124608992131319977221575831302978153563222999123704966356673794046451781345598061474768544860099318555297511243654201471290080757208518112349134816512086355421258989197650555297555503068822852184140795182319783303363448255376621270481527787254152349612344822810123296341435651563193233098809720706821281820737222721765400975218567095250606367035968897580928560783731127433660963191304408239336328313948858417555456019032102281738400390209904870519631302211451516691655993804023299664538349101719890145705340807247793564371260037144489869082730105518912214678832320772345098454728562128378591558270947735238969355285754175862440298773037670116135991327649111052788079445399740589293978778617194235491730035975272981533200387216229996196495592432144028689550212275004314856798213597694417321885953790521299908727657442211176055578157113717324190908529657903716854304053242178250693740399363756654086607983663986889654141272760068755745203700498326465548267430207954442666350528206607648058032946895939132759441700419021496027532861173554236235835057816978310754042227266801760887971791391095947943705675584112159123980201116756291118470861981277021170167443894784149422042130397617486696421235153044537892442427982991878926558119781755912851891641809141622906440662258736797555791314613490122427289610643546435347224469186523390469077317139211012922408130241501239657196219259236705888980779380266751163888457052763467887577768552416434327850295196276024032154082728083935848166244330520184374833435075723916574351846556084992479785647276151148770699349611083039966211799306990365678499449048712535645573540650587627402402851064143842834574412154954070360330249289029874158538729278573068496779423741041955644667202525296433637875162138265208851779967482998349552136459279069546458566769287219633723017627574632290720885944272044780639948512700528095324846087513995935869092434653650887634939190447609402247003835261545451477271129837490275240951197500707917264906676038024971386882372822890552321007153914979060703291035036441446178833563283007543590364465891284346338919520681597188834661401696071001806522410978304394393284763148368332776628216277172885944706755804601780832538571658185773038340914772005118907014992253948391538740814757642610447731985714974882477136540316060371619022447455335627515077897449276312813994311851414654419375370455838245158053508740808690529180734752523758234678747289431063372608110008167683903803972906348777142880379706581245789405572649313006349374440196257069425706966902842009238520531512729588287629867204069882081854776700390323751578869435763195392253854205743639098240219627320438450031502052150017385469284997571215045239070126034399857103911671637534354669652374311088239543763753723823290915143594333410110282424734384646269254100073972471368153156557413835852142972528423345990100059620003768637409510718195081833193274369690846425377496418826002404924110066819745003395348844195517662567549397136018551961935725897419959182582445055783168441148012113562984874683403716291820312516120652510925801203317025239599193807651850806882538865278642817151573552601311806276609768635011879554937109820596859123113084104878109347372122101364155178801379329051906497469348605009169180344129213277662693218446481902015496213258113987598017233021889076362330597820552610613496993517763767251695460767155660210500621163841868811744632711407992094808581394604782918697428474343126619364351047698214029693914613137668254102702021556486330294048608195139257771372920554569083243782595611340568130058171740364716871965999240038120520954799614344045654989351308384646847675015535949359172582669183787634350556304424702766834862719695844033932124361442061980787354489400294813817536258982545420919069739643893069513025275549406125740803549307356547294940258559877282133267059375458818973085161914065896600442539517296940028071746730850430243516500525319600720609361483214687974087488436278307473545064133184148518386655758993280107586409708223075715356109422859872910539409124441785686306077982144823255261834991086127365332562164479274419369351170571965494638181426125736435613446907793907981568291075942532275972101857722805404996432144544568282312450392013365376768112511278718610033907198926842395284133735489541028056353361960642677528858121522517126012770240162472765354219114887968039329417723887802863955376748702635049489537517151350416531789375053336755586957550332760591318012661976998605382556078790151375392783369910778419120609536251611275421691692130904313820581988233654258385807187792957770021037552528026466224195997406437067483666204229143825699462438769946888732830806304606492873397424991351585727215413957748040259558818811217391392788889639565525656339091799619572405097361778671168267925467005578298217780943148546911566349307025764856978972209646730460393528338514484662459867399995850261763951726023493997565503779409404905814358580590866403673898822363714218529701676008748410103389978054778021147724179962277868956459697294532791863267034386822035217531413834331018685433293702572079546226148865728200149002238470363920587763121586927220623005009357891305509657554431462309690416274854706149609822198391426741598574404202525277424814128140888717961332530068278376712575179020491619635406953850511428953920977787001856453465019381238217117300233220056761385758329856006924873200137796562911897713713950211012302888814359806939691744448357456919403560318607091553744551198309822474607351361341501719708326295907610933218824502823739447561748845139373455640145594028414051685449486093053340204340949625457154773408719812555042519642474107884494588853756643273770132217036288263974727341854862358772659241887956866706909103708356297085291579696774341018865698719764653356277181870765449059994325509266915123051556422408175666334762252766036532201218201139723272778645951397086857938467701926448528848044762066087407867933261797948070814981568129241619144267057964385417159824788201406234268365596056319316382046927352532243529741533428958229458625472024597735417122549249500628343765594743781738356835601092626664308587697450083068245899397751873418046516264705291429745765590333480422456236200713461185900827549211454719731950572277285116281749889611660693500469011336521718790726345728792918328526146150404074136199409905918884636664499618497798127088636678904909122408843949493015703793286533041984824550383724150296373978102006278116128984405928190339459538958789057181898763124972093618956392050294240444403257414840848832705633468204471683441229384586733168524610043763026110426790409029104034263096972036924086199899580792115634011251853008232550470560743134251078975169476145446035342400455241998061704930672360508598696512580612464843304857129349859461487047433138091621935915736543112720848476481093475684685006136771898597199286181816517455946420354073710931378889018878908277019027239850054301582291085069128639409847913288542412089292563940067763053486067192070766221300947926367922816710603478633834209300001235250195678791923491838275757197956204555737619743537191166374616784310423645524638926845067757474334112277109447346081020743620441673280348734954837646479474347389011203045834333291372807560582368633340007085015297444363423853569969849838164598214343392894572107492670538770524975716217279934455521596651526118856640410272124733178958892350778449142050708486912274743437595821108960169690443041710976815917128452336248055074271543048332457587999241231102853936905523767818427707320174846185681311774891076756055232554109261325051505701595415909393919814777521559860327064266492909182821469355396010307983014383636458799882747703466022243966153708793772563008394081368862624729417491911267525121516271741811641361251780059961484010823877890671730778776377255685341224186427720446495551734109682549376809949588739432263623236631914835566680219261661068658539023316106389345983229917614727147277909082533926827230975041767811563640125100921967973100903971964785290401717480841839779808069352807901581381816938382300197419091160717285732393016070689309751191205480243021185471137636945784018784249292556767766686183492600020290876167567307498476558513305867802545149961445819462839897589378099983477648544744560083457851200426379677732935166852188378015198297697651246739978336063621233149021747521227430193423005208154528746653455338350064754493633821163307706615215870534866304513287319217181498638455722628875165730240206801559442521752379007014508498677898780393977059453227830916109331273651743023841027486124871587365736347104922767426574588683935861116738804821634166939719508526438647611712514418986613606739370238433273169885579721379214186685892840105350426428891734765234878925527454697050257142771015605201372643634442848923013557911594329316683768204011367113070509267768080554040936398692983872480587214300447347573567421240437779490791389317293926681430929099901399505269165267381264804160329132601533751864868146868928867397633634850754455145755093977488258600279133126905671135496294782421441229662091645230078595618001702137779282921885238773760535761521384960354318262542350590438689610738302237422343245913376439188237071609828552604550486611191582189646371002482688997086420979838629786334864814427220212459580403990425950016750968052226956092140364284807221227328746202492806642252927305920714386825760643355537703547696012351981035352049440864848474162272818247385033465226774005747979417547050460759462798312222870902188137065382214447704457959257302248060723729676307064770319552661805108693442281233896034213968410987419661685781221254495384039854384661538949398479902592913578598007257277093435899242287604191574044267044527956386368375211040182604130137598484599535319901105588639784329830621724525952074290351971353487552431256295778465913073321989960401755917757042343759935010793813137364975360617636181662783641844233647910756710327970834601622754336487803838656742079834709449833374196600152070688512050516879104290901038806823101792381665746776953260408830171167983947902270625835762548146250622842844728256195337130638649241433241606475097767719198739503015937603389791346962889359839503153390242014933652373641327566728503361016599271152172726060896384694154743665718997707608029059965568556216430528952516527258324936606305874729660617033783858893043174192862857188397616104481412333053907818322033649814027508361812386243139338843387918561845382437737124721091940873605515885196796332536444554496988464464217433497013796095055338831606477224886592742529315483364280164648668039797740180162052249291461562591217080571054661877244440467356568449646944868217914833447743441936769503817072635517721013704206378123032443227898249208657358287616306151569801323066774011605344326210779659721867925497504802386695979156826924793544304384428887422711694506542206263065951041038217439226832736859496863696538951274594871673080439273172654429645727694817494448133691721505390139485207941245666105830590782995010984104359368321746411494257583620177022525306125078538883970267794661706638815967325442247771831510344121129394202729536430772785491267967002679506929317495066599689191180107066246128660824677630289280435513804071678512946390810133103425386420315251164534411849308311331882540991025546645444061812193251115603377578326471808470124736522666353811833251232246049129544680783671402127954822328118468439350126416033227520514768447650123392452904511170351703191452095832128491847237269892169680248150620173743690720548337275881492047069560652563204691440610578740902235918439580585429222349836284791358184966674630098350335584713617776759150581738428760196200486243612526857480892646614218129346587679496193720087057773972959652553341948449138172779884757840229858444541002872377414862488781777124784552612438356765293595929977685248159361652087267244957449949195621814132407824219461329688074631709547107916497458825646339499942643357492523958530170788415765223737226830503104505042069540823167460459489705259104086979245316449775848776182533636885869996455949828401236972908996834086263219314892009045411634609610090595787955601059655396154970576624056526151534452834138952244267711485737021615512834156027013724105600513813722976615908223045468816831174706655401231099276635993280593058974908415321325452080493810205206466078642253077471521583851641384882626353147759052496302454537978395763352104232578599602206665816905035006114576188402859842031427805010044576413441708241131350204133506719794454428986941189692456676056872811400145986670476026684279145287492164205686473513135795258062442041141968068103305676142986163394655464162260232002666384730543947581398565240849777612624737628695619201524556908270328169387336158710721659630803209401353090480396464991073102413109261836494934009145508881941604952621973890561596305500640885987905272066421976710714583375889132584227059834210151615343601281664679674032146779653813902446533870581032219707651639971765107016680301491304371019970803207542208291871932881750832004016293810386272158794236307219819828066326908891677631297929307949325180358964424062337432698795186704004910122461963586379860788403849094501335359435565289502170549551979269579689147244265630750504307280806748503275328022642575110298683326655573627158797618720742085691482548450979951937616263302516757108036972729855924049935473250621767212735126396693218922717608993552864989430085097701108285299055599161485469280588730188047971353127266556037589762555133660631954654037863882197160871751258902226048064861720161459025599346325201060133906276721101558051775785720702611886315260689269824279567419378673176569486684164927437956860376761119912318587460489968369670285816957307228500802769515625749339306899996368336682974495319514939951012989884975320377379561096808633289420752695144372588783588028346347489574150915429034288824150234393708193120027787965300928331157269428281924428301393121254100623340760432977994963702226762607534800710150902009025868760156946556897101884393986070576224181255529291815246542967851235574703573795805248811226329775181688712621081945372119123929096421811707086225774471458959471932002204860268140210472748445465552965870856046824435971610895173342947478683204292307507420901431154039929595635329359302813074279975305105159906468821987634544227079222914404644756734782346056032514461594381586027819297209041927130776764069312905417028575943446189539432654686604957858470371697847145320514597386675115965263306288240323348510319431741515614389032623099423782697869187781422223538395427128835302015973065620562828099018863031224951016596141836447315984318735894095366069026844866228134844433832243389531500086070149125747672249783807103233742410163473222715345123999908365797603766903939809920010606942086053860327661488579891032422544522798365228058804884452202802937980344425159155657398800773053915224649604150529825554446085420298185902965836903684107501268491839778848995612531911318756665660924562487323595462722072068183495223562623604636443773901327549101978242622928040069374649956727779591446725858774943557413239570616688277526002742717423852554828951786553576269953723367341671063532537678728800921137859484198489370605416790275504401188752153068436227897901177401065245450931300626895652969321679879557713795835154034218286927342850155018455642101042772027780537671509943874857269505522382536700760187927344052685039863561724854639444134291636249217749768525796982630845848648559067423526726851279867180603458738840205138842783794390377968834918707493118145473187090511742892982550917515017268608421400280509023095611073662956878156637812155085643790280514994352793456573480987805879033304587281976317098590847083307131996582857938539248958140151912352809565781463138295584152984347811722969262112481103753888033076800363608907472711188833547484911995736216749856479933105787374177754728283096599370400412792104170114556360559232523233217390302838057902763751938901082473543718847040552195725184751732452448511678839688186294188839830671892214682286902077076593365024169854556058929298901200357355561677022862710936527276469444905542033328034669461828558028127938519260616407014578612382464233152654002496320228605963866609135063111895002794528501289795153038986750434426622616653040780838675483397244624830934720432091632444457398784232584323276576725729553081979587701029340600467884041031876234715503340956533900335346124593945345251130378900671631649211340836558780655924035067313071443907591079363637780514696173219064106887007654761866324239018659981800444220808567109061201968732375336172636943746958553101875262506776705960411575039760080378174807510978822996922769758744665511082813640997345726754091647752824369720823269042570465683991702181471638603298029871901330391211909249328422937593545547125326026995230695451038224965005041526485939499045466999802325955478481353222208260645439286257216145619048793655250059991499726533374339943640651433522087253583922793629230225439191940305744381933917492404557994571003684059741202186457837861797044156854061394350683736107903335001306239844646399717877754711875491443823691985334606409099440786420094149457287961265460586512711548234999946278369960079692419931018790821848246222228588623711458336352178414048490295425598006232146135519388888144209816048164518108679682177056052788719594132278431172329408162133776624111917959608714977832872760985734974660737791872246414448968268172978942822134910183304255461551089225457869451917944405792389583797139015418328184848552065317032428996270445780660568706510278483520281589188960890586364735546325779349535216319264783413057817398626233022459523394868284618977724008558532678819170819181120935551639744733788698657630048510131534338355899466503742927110661388764526812243191648240633882923126011598012239463614245114844506624020692443191833801049027653572258894992591984407097588772544618224870311355192989373348389184603078452884360425418020303226514284674997870413084334621981672599594123959374111007747887061883007565369491874737026396789917860229587787420195711407678266134550450656610691671870003641270148929330562775966184354173869884427259117205472496921280893947427267995530077950624755641328024040393476368296364255097374432136775034533619795343960097803640577856147714186363094842888370839234680478188993301043337183987690245747636969885855919235340816894141763834076700434389224201580309589906396661829729453796093861948025818139528810167900410432799058929876576229288740564248128653481578092466206658654815397533371777685249230457873936615278519668540272974866005226401081646076147347404426405196243550296084768913505700133541706541967918288773467265641039390243147414579780957580843523227265877126576406674092133386387867267167840407362746420708614211747315108924293363625709557897249749207337985344741139431943541639650539465004961868529915911298979382873068107128566897088669626771214054373102480580992781181632949177309092023749569689872635997806416634523456811572355386028729993451104939837512241539239325515732033185864097180235456808301901273303957929431979083005770784352512763389256911010445456388992222004488354342878371504824677279613808221836144951816146985734083237161824266182047643085509137999853182241910408540649242165023132183781822712517053154993015212860986421296461160419176146185994850379707155597951181536880460749412583565589212302321210401145454888876896525812351211724867349718211437838844103125962365987884423761425717362214504682406421682039879441236162611480625603178996056739094890157236619361849876369208747729306482638717169719958997638434298143485241744441745949683494157330250503245055111171179206221007947717839733331624252836185229851534421136097664909419214253981714050994656255936629442817747002573436370462602923085785410648612292224244279841187690868529905033798571609222676538688560568294350429198686500218342501315023563008110045811680254546586583958512757925361743230323104797389426834681107286130268177584807010957582311818279451429642208235597786844046365187576092206126655257637835349791813628606841624793369347260976354754943508408362234317501601981586856166628637732531195216844629132722134090376568858202272641348274633932354011295852830513914761552679603013273674638331429226669530466347286038215684551747563604212130760416306788852370067332052807140227121654169178229811463922692274104803348835376629336351186938983912048319977240001695392907237352388359724390699003575849350543677808755638247652572899957142479962759682589702085528913920698259720669883528779494508027757706056699310112505457478350745245644647888678800190041540422066650268572504786050443734028011023589094260165794444315198193904131815711111699301591016639979474823367818997095588079815256030811551128098365883566141695919236232203579802448754264447205188656032556829589664218760900609849342646782934752707770734641192276001281980662915400279876988560580426902457046542391985158302282541175344115967446761090383029197015332237267831945378700974747162103500554905463345834364029918470900983494173769118397671962179894745375830339337091683431368589487788100524014865739994255838828193192807314167991629826155456829813862045003989583870500935648506504033771761029624192490900691337803095104703445890589985994851059788792996561388822978367922560509210026516425083132230105497336009509813797925083052684187183727121945046978466593606555361428866743523738774874342339473706438793421030177232193315968363272038222351465324354173265223126418463696670298011193436838658177349382913322363796750167118313702815294967910850952020918165766838115518325352275956947840452702499706350359091832118518198770750839963279548015139778428277561146650085114950781079087271344648085988794565789176987780175112823869994964353594873595302421326271874503252751354606654865843991809934225220164854188548224310942926795648334843686848034161364296156775612132397602691186297067459926309878342288913035321476313266949625706942630159642501594715470836129928043065162740579890633906742448121789553634302861824195535902957290554378725201017834188782180455213012830310268012243978260246702812488750298213778141235453634332521364543978826762314365117012336091242609671755127931974388869404220740036426395483699250213926442929731343741362821888052420635345982455441823469420785326334706880272302578410742609434245244941284772271026966760371621394895752673886927520098872741396084245442103726098163982086458696016176766439690066595766509224087651920541183562401526866077559239912532375314956029813912443042640448824881731043684628065770200402542259446178504985046734147517543298773040321807470665914014481540375032662020814816514180873488643591651380679439546693502110483043242819773038735045930927113289221599268075970164340881465357474392690222456538086058050446617520584539794365626014640832249936771094446482165918235046469763831526392861357815915374352921988646926591217488494194427566571592578421685774920604138135243633048087845021429309170503294249547626456554279381817967747583916708466515943258368418720521755723778071678963291738387274264859294670917904937503732870484100706008391202474217699908275280287374444916310852036939953283495053693155300889447387253605462564298061800369464414503602404333971036203134331101249069087567862236444856694906986836397595131879032175589734482408038068783833929392000429011952085449666461517116682969948100337666975505229363173312647643878521690041105754225531761831619696089530213105081268148825886158522416214825914061601737057791875203102123454716278434087541464661016740683616718471259049515820616762365636585456375798359019643272346978531787314796786666680788597756478594897059101331520600372297089651457728998025178182717076365568259297047816224364783345090391408467984431100675537992904533425588176488138615534904548843668041542711534754802376008354516368044295585007788598430738640122452553881597090041395800735678545185971449327604834871833486820845712015502019491371245912278537367609753890054023018418805792965317375294464514590013022515816752154519425696511872224839935249404321319192288821038831974206044244258830209089357864461895687420945818629278409484476552518915536036936011431051629618568067138436118922226143713466078314703214152647846978135057381863955712272677878534886441413467239452340950450628979221312617073241400010487909062018778375020976888926700070984640093236468888066903219342865384328788111512507779357454582541613477374924052984244408578962061369906031988664901175227112852652470671127051407051766170007721739045493647419345253750367433473440323776745018247936840105537635061461542544645250817903809899550695484907274935225952557371937207066975613825305501896786820338633299104569178882476850971311259113964900727477759239566602428759595270640008156498222984498507027701522439169532596082265184702803202167439163746777975720360219863103634572123014842016331460565856383993341697355899871295216574587946758313259605411423795315752597480421717579700615540729899840559530176343263593461440448851474370181175654900030319191087142585021807585890182646203545226422369037408478095627814984625099409627807592578223823818205428349467638970294736724974778418243621991531703839798225894817148775152308088050043493705624137345886246168976791226929067265397023472336019893894367565340554976978265762035429987061349057324000337044664855241646830681599284783568050285997615342477121480774414089462055153225653817158918587331432967453004408828479052446592628446369699213388709482763962103704366462894617972678486832094887561631498876549697041395962726845567089280432426269419453386878990984029837429609880496515319420126104735799708447618802171175305999005450175123022816525017695530969176012537511130572932864080836577245201412534076405546561766287695494767675260353913695023524339779618289811090358386460216515513610820985313230008464003647386271733240633403740234541492514116903050976596401099739230115346869952810314668676991879124763488061552021746661608706086556608940775461325124275796843666292542537802584612693071051248400377133424484187159363914278270657559776608873247461925945731896820113853835667668662835313371875721510436459161889493054893447231782348138178049119688466924063163092007328044318713236938735769554535324826536725921211719514914350794155618680872181354055017889143841927983600775843535828678562804133469678388281210502640420152558389550805233564847666548203834769057027403882185809909041526490532930545861346614372672753440653033819756046593823996958000279422307005396923563603245358176808449156330646689068855085455754945676716617660549650753194752096601349264465264664104627033509205257373894785494505145183084960109837121365964732840961839585205843798838615310045859884104482459263009081127671651735166431565126201195836663934016773198392241901127543509498700718934221592085548515146643373010875937438178250822619621145674470862634172645955440442046119309759307291882979670496222213077221653884079017855940310667044643305628178732492409315058372370241444163267182648399031918798317610192492030261272781460604789726910575261869331208769746185320998068682135210508651592288125273070027045996340175727055470689398635952176486706329081799443536890174187968621941751376602926249428264736851028054473520391682252965390681733964011552699551414119383584172933754539253435484798761465088258137664627888390509346748465650352495619533077206025939280335715679553945795141672042635374879069861538893028865615759971269135545172029993711492838756146373316328290796269134371544977734935592367811365869300610336622941590570549753168243949951289569158975674748469576061975098113636265308143823786107292105073334429215904705153761986482628171533247371889122379485451548998672402543964077103070037340831037897340843799222341716090448046925956210643862360300679443019319586154568327090565748673664063088268840286008258900194720892791198773541613787150450833533093908610740173937863064272969908535040025664359599442299008936766238764209796942113567742552873433675703707269203794877706893559408762123014138685429585019569673077791543090738647865504670168580338372471539618106214665069037111691968014675596644209129346750462904596600420350405483816880651170343834143938294294600011878041515004625192873412588103377404404626669716768163338877553620004740103309602667190748820849825743883234472207423123757959229297330347964519524806392185120976619604572742319706429066591286964769356092209331535501087804838302378770584268280226437905528904284274620312844702149065429948317214354392114074603695768228943099474878052022985853237620359713267769591011960239639902562873162669325775030328483734213710809044451502527726970336561696875310515193325613746091197241474219647822114036502224932194552661103974404399823144622583219878954231797482368022288926781828630384524605899701481188888022153908536222868598608820847715032856036133569331072560580325105804835008857894074637296883187660783286520687308340244752779745459134075871612545342093520985908811135057505268103330243231835458763911814893478987935480244404691112074431665270676104354791872776837720839587768458562984071684762759008246872665204745451365971407863156029149183573165542977835268595301753185369368143100903710768346787898977353145083461120931315244344441878211503332807804142208030989962737510185271805410088021113514407276403222438076488604491345814533458927153899350340730494198936989684439383475099571726873663926311039676174368299034026831725495342495984450856121108597144727123701795718392530663727291226763463124459508361837261002400561041173591714772900706404272452004949102642177706909132367815153724023099115863803622619221373727931996116322863418481786764006135103350910335838795398282655273431139088659914689425218884100505162572470274750124199351348807001247846657932005086729755220706887094711770465253676543750834071436487482291145448747273310503875877787563410497626416275089340037634731708286295569006270065873663430048128622934805450255733482504975797113588381859164026684591755449063672593517576978880493361523971893222670292239473097304683510452433362985140756033939043835458715887129182656986192726840715572123736667727980800567349092005137683650216519009676797819534291244890523766882795261447015023503359044395173541687753244804412784027494653872696198699766768725046891530663935715801805857219728216389299640258291328983467418696105810066406987300347158816091128917716987539214164509628859650470757977269301952127148615714364127075208303815836072536076419383788692640530701715517679840785658251807331108057938689014812470428792766216027964136633164702415203952439229751894556955891458898242320083825224996829425225952632049962698521670484491646406481764494648347742946163800721190857959352410700565079540054903724010957841398378315496373983463673264943826115574443707436294915858793599953254896945978156595163764452840524087381450428426887342452402197347996579660460848371911006331935784627915935327338619651653009365113300643409486168638820843376019185326441464485019014093887407235893723529107482958651350212155178870554526861464809690754577014361269035866059107203839090590456526808650708010313911503152768236325981261795577863360071588107739160340312216089019735455484926163506819929262486821184752832948374725657721198673385551965618134546643356456997964554656876137676456896415149336255085253457764439961445608826870527914220874359926653490466731586255722837287400636933200024164949680835769078237957416893274445722708288424782899144488841392494344553039174788585122739702209302075111147540141470810167948535706252799923657989506730746634931223495671045229924500639161723598335505779026918029323784975969035934966084744954645749933158433281235633020423623345816603654693179939257370313871301840086838612782237254538381959258419531596213351889736502804951433567286975564105026156022178109431490323872758177701121705052659962098560359799089888036022230633506282481805558865416473887189985840074809407817348877646629471540035733404939365509345855138932146655887958687302913870570215853554147619067210284458506285977026459575701611951675446645138706096032792634220439494418702378582371628445006125776415727463174627141523748888960736763190868506667820554618469716425218302299788703104463016443872439413773625918251884575904529126345704339011080927226440683751748137355199836872179349292473343956982159019400700724453407552132823689650824174785927909238883356579842566846330139893897172023579097026586034579075556684757298874944205116574754968319628990996471564852675628735562114372752485638098599805839246889630422551597573440453569914971743505199533705557777308968905456359144558505562287272606836002817188987617020372310473158808964764739630150550868470517133790169074218233845065379296482745845212875439159421703040167167708843846860731090825169132755861939478744835436912494642423625785708060320240859697999072486557304608914550873742397241085553312976021913773750184319987874843034548195249610751480911238929818715254969466451084231471767214648738686221389623119008960252663979250770709800421494808697686624369747273713400047473011502708313091004977172095179986046628274871156073731327788484838610677945600794118572937200514609116160966463895244658509888355184114155810414796821174032788788317072842152273409533260510494501762143286205636474204436622592524264841441493707706900728143939505882596752982903177087129689377518469932047749982498438772529831350579264259257528459076493591718712790075503312977687592143579506330457458491694503520744393686617863687655278580993964686536378393310951766110941438493041419071432979464234646202458195372149550527858439603137821261623659101282151634347202858558539136238137425462944739246660446319396516989716402338829384381684485224059302477002385213537741704052555073906634321699254764035741201843302078275919694831214750640452077948898311324347903197058667787035992269455030778153282300747713734992010066534684597851692059605642235026559663742386725937580405050318125948496238043577661018064493730742232183010035326251818115205994000803609141265468192163328754953945929819024662794110892632429641132232866678938179766262088577207740053632319842768211845094349213568880142417530436464147254080521842634549121415408660936966715492435342249828798563692575191530254400618722376617311280446030717930156867516142569071193188869999383756218706117901975150982364376978033004823580916507459688420676035082258001018392929246641537423572900011531732136377002536033036762290823978539269526090699953287726616717122877688308062861820251793265095014426937229648317103161434594273734600745760740763205267620809108524056989219430895981520111410852440061237143071961920606262642291853160316393191215628420067954210005649511412149448883074779689980395426721073923748349936360570578077638906211394782926686023628776368433095442971746104413524298427637835809767735970199807973228863743834772352672035115758176261234991119949794480815211939470562774386521766510549465897519277812389267567250668755118393852284836895515580129501698153861395684655207783685839486771137163869547906362559799193216415043937254437985596420374289256721734201003770845122760837782754579041596091259908863471583797866111645054718847787108620701551718141403901345065351123782405773232818045443612673994450592297176986498785952227230237985565991131415530850742207468973567390759052375519369893933348926716938008564841677247733868586580923429038719563549285596439075601048038046805436423100972215309986632913654964591250193420590876973513142373644041289925146794353314758794707280038421218705539434662241708198195067404509599091179976586701169726388818572885292723113934635121910868508824001551843194011426439616655109110538905687399432798806510324967818288017980572862684326315178685418079953460587057777654830972646103226549629369636554822640444766837225060107736326926461351865984126011950684346102634937267592700302180020080016885748979084232021478485882000158592462260922926289737865060605371037436539531303732693934060788782141017416896739381749647956671032550235032499848664740871249404662004014519913007025439641447886949672206273844356696550645632170131800432796371888123721910195981083242033255557936737980845241277144812952321420044105737423687711638271508386514414930587915521578034103792998262352648815744079676042230449010298540459739661864924868890372086912505287956220669024848727400462686155937385638544938143782412410683239089517025269810318295231951248650177172387909301726741205298656643118049823455032295970090056222178848229650435991045414807918123750573857323419571892116106927748500973146827858228110596629071914975987569378217598675101641469175725088236757367098316914842364130371542730637330853163110435102117806773651323329819576487779204643692119783800505454087196361937755872517968149028182623819170567549065367721084699675336531571812665797013102300426357136881756326307473146881871689489560525906309470589013221833777719859802931328491659731838439740965177360552637402985632792245867130024536994780762169067288108334247503071135227927278343500072061773203448648215960956992032700211846973772520821152797824722611268893744871191381991566208994881513122124134838973154939931072571157886867403830019751613395382590403005281237098980999294130241456921475100810453270998063925064597325839615177362926258781332515085736725493230779125064283471513244194613639732890223500766665634877707446643408076680423284631313773597281443496130445946355932276278675150895767018409112957572082436871114094433774816557154267107454231844269590420635173687492448733747866640076303565354291062557733627265957013942924637990039493982709181403865935453244122239079559377499813869947136764733553235327921490427641474345046419750421111891737187761615648647883021232158198039567064891799399016830868705098369406690990581169423112002399731562532362153781057723152476772089301122321319489377720783679360092005890827075471828949792316796565256017837374094734100589556027187316506998470186474958347338683559647054732895605863948071292431869269524946085010700044253825374480841826092988222462225608210639057003659944868289570455235175473661352842427917303746649969104310226102223737419418135472061385231819606614689257341296998211353846261474026473590554499623365069306948928849640947059330290980798986938945980611730818014028876992337486161021065991221172540368406645358119709587889658660604297494509299652520174333270967551698572631566862789096561305519203736329850382711517262277691849134548853604402572823111234612385415136010718721999920679979009214839724601160203647712302881636221371034594516794735305995135898124238333702197783553190771132174864396839973426034751294733490789054141565517390961962216446025573183767528131857122672855186674060994164485798384300443769567892909623677400092901725767245677761784345138774002551734953053661680382845517176910069792369956465378595757829927455387540804318104026614662378225514006654720979495868185392250441825437647044418142398190009662936537039464356696734043851272304906535933271405366427881527464000797044280133812243939924368135312339717343523076560819504477720278118588192239109328462622628840931422933182702977466426073027455166901355002437983199400665182177771760639299997001638625978475260465542698308299556600932172136581713118195956207048964262154562898050241337321798682745799568986297348713699065106968410990564128285718956558035375457966704206299201743506218084968757520925232358722154252272407433453100138618600750404357094237445703438295839857118675406096369539735995675908661328520012955551111316779138648458919353011899080427370419205907345067942102045083684391025591888733147790658316200976395634663873012962364797476359207163011444671990773621664732627045523069662162296317618351742637417820604863000290280254257594983113247241384575139323858050744049914422612397096623719387560089048555557655547759209696069892470387063995414472490373451097637013860575369130229424384025293618732746392732412195654746367671592693021458191566396543106255312392692537170409522933218773410859173360811276590187247971213902644037854220626973560562376983809000238706564575936664517535473045402149039479950695892799649015853144289925598457098291124336912105702468310012644604256662053060957898405842122095151248105746000798119228021659916182309421219690305902850125951300634512253604689266433601337781757732265019776358819279007860244636591185371214323202448241412542556473872080215518558681525817937244379224138392034241904874782240697214205250967595767937137125647953937919095409553301949044261951293308072558655161476702555732953347968814958161723495567242460793956469701756396581069761251710839327810202287984897891154404988613704293997542668103641113251124841596621417542531393695713637518358421755841522149970665584157830391379493151170679623168099472540013353041318725518467753472481447646580337539393965821406482123624499192743512285253449060010453476741366292924988395851362999348891098025383749967383218755101446661332270392846605203978773639302936452316763813287242096054626473230107398806672766660910150508671852937960747694239948950168628601496061820972899677317701873380358924767440214053327183591896341990954098694267612651584048742016857555337654638164670720688353830943090130614987112278118280219927317991342032804610965113727102153734382270351654805650920453787649945204151790942860812326736933680619027061346297328745830781818616287728151457120959378800422132950134211317880177259351978835827789113193371111023513763988468072750615583219789097598877605053367376335825543556923676736638704298795320243664392892095324467307048959923254133762889051348345492680118221737424299308653840971358929274748645979901187261383592768609095080299775384366812571005962406205195445591812195296845372248574041861629916564328286781297728637221084438889186750957174374037901460134524279421546619498624830990423926672293117734372376282002155460382887821342872714100937862441150034967339620081128087205477365038552388626586502727458210375562471311292114984822578189917229595853913815139028086004198555247522429991419716257793037092506451612680135076773590366542450829296070284896465875030230692239433681318190136132261681807658495063159983927657130133541136254769279900258799680442427408415204556195367710561439733778482849397517548619053510601997217513594229846368546982411181170725255242206877518712069810014004921459495850844883187911090400802266539820389168058858530622040393713232432663317498928250966464419884788466158078701850896962015218946339730528199668800565738448016623739133657010926673037898953290163285219607771043370829124747775615161913734205171114591465517366589379615768520223491257153883274501939362363732611746846671790173717651431864257814239879814299045161373843612398893279721958378653501242317345911399019953088723875845575935458579164668878005145565722579495774182949278275581743667953296194846437419070989305838231175136652677001301121573109732896481345705762779899793861731718284218000915306702304051894591854157082347919027357521862160891934829178583930096801663626906092961198747706926764864444832917705589996168474194721759741965066260369427284059145813533189036235347034686701885475687111412715572724539657375197835338371389342054077173024687783065347037353412892580256930110064674315738133214142372777905895021086440877537910807369357577418721372854487789802347521028553357327796921035802315778328084558779478469825012610975595150630288393236702133173874009728974450654151619020213859489983712128128772407038477155580285694684234881912103596929294453305529307366136651473799009628276826777631580413780605718362706740852439543486725546998504539768539752761247803220025095234002403471649026999229462057964917710991396034719527930933005826298553828410776803568624855250531856903082531214434941742437769281239279608517438537721339250906224552406681211740236527136925463716286916598492275764263354070879131456348058017134563428939984976794414729296456262383696712797823785163493425288701361490746567213768736190437892894316995916493588765569660575596092887161489710339218723361664744381040735772814066620503432116804594756327620071677057698517352854492803347837102749979121882897588275796952657947963410670077020052205676081627052048549281081210591912045058066194734883600584661162628246349081578402080377575747560560917663706473627867692969350682882772329615568081540025234735943134426023228480846945835329561847077365199210595040004480641754412866811049895015138657049523573677845944480777821060036989951696110922509612562094316672264406396466500907389532234519908723180453044835530489345556577231792991947926441168663765554345348339074046258474301071830501297692579396673827934880247324222089830552594311052478626438425941220131071578685564272429511331211383974042438851922536350192086487714933433183184142841062312097861390068417312887835822264474604766653869787072323715506993306303095524018614228812867363189183085809611399873374924175676024524922085830323143780821388279218580872550782003931010688224711001490747553302676556017893361365142534580056377647321974790514606543723888616183538022701514968764837304730035406305682453325991612269880377159915636522563218326752975676612901117682192482142327667301282855013395632275554634371197416685596073349218825030990351948507536676899837566262117711330410203686080902217586181533207090234659812973877014233120976799116483783358539893146274056845192008937734631457251672236467616293389192016500637537501533777800391195111020973538798727014077706954564575265604564218439784986561041446724407926807930016374412426394672552748397279691094267247360125744869603126611949544711269109468839299455438364923687727565927745336597208600928517017008323773217216181602866625685648093627384594077102979238370140012103052904748765769238778261290266698119860583980568069018273606770022406287267034408887589177713474665076477125840626500393064749114130227213108330467159269218228797228814259984280934345026374540131468039721087988711212962840281841713625441043996808533079154959651927308455901018550776744246898334836731040971073217135809522885644682456740219689530615183201218828847454075322268225720005164733973349015787378679625759887231334905168361648930456863100169612014736286857697068044421490295378753527767483613091914298227144492462394432457616068259878883085983968242947469902389717807530140718257796209626151734096135200584079078823230448661268016615587117113809316221199639689754402114315532169746837567941736570014116298393499089044532222412199021338709259807968941142803214222120217381024610116613223704574818436435054485352631400038506497628281888327294892819639145510355300576806482139574918966839041509995553209564949620089263892952697227739149079253060787518079946687469879083993592565862262680177360775279483698658699085828089521975160467854938632911626024358031137477286155393090543339535119285178294305946526388770269966320206653154659059089157389129447948461758459724487084729133691058176184665683339001121938894743802155634102717928725660031208390997091720428206724768319061624441082874285242705275063422183308867774331688624728509030389392161863744991162493469879526833664082489297131421308255617562132616784482973096168736297036234298341285799201793239030163006526432888596887699051752208957254731338199617460569129869911305590911685586191351573266677732031905517458259940687982894031376358793346912267928914117499052442097315321420346743537674411719198334324194394534588591991585915671926630113157684150966231562842613055470092458024852670229217145816205777245179867623402998730014110192899323596264629297136573641101624248807037637755551117012795399260507201036570055724666048680302484275696304930765291924209723409792928079485315530127711672504247310460399003647444443253518644296393594794672183763355216088672231951746846726650108939873494885667076778787950115014126567866948280904399959549972156326458310426970943791427999382185721748965315224539551179300767350182259601495768365961357599803648386109607785026258836258591369278879018293371539511191593045171064781789428953842231925532689563391186985088207692449346749229235904842469164770049860713825611419323363453325839849986987872810262063030713870662843890224407294426081061970606977279108647713526732789208653838055937683189185884057259203195116559983219323624103480922441356071156298387188583480684108461800072471004682026078735816321956895210466081837895441958608405408477279094097485703292525917736594531291556813795079158673095729676147388696552195813307824707762722878460595119782215803918555381057731047631599779302178297188545271482647619427476730630849427802534228024971983858689713509295531524651620173727020152304389022751158371444766230694127967279202909582965100554064716588916635837043589759797553397370410894962839413491343851372078036687849024807481307689730613125591834248102452070454310016290351287294691419330765370595176936669762868626406985861276678433839591258268822753149134246595458874020977876528267094082635702282334963436269479597815660544271134710489273662730442928557322975297660793890186630187803153258390710075908566500890063298359331750101854664215419352327669626690141003617856749994771861171186299483925915471861889854130250410341216879121567800294607609565056285228322259097690511967354613425717904946246812982296120659001346526125344363871582636431096613638540105200768616758403465860440699888902250898632981361710756713929180810482783543549548689692944076066550082397138038076042527183619433292475393892649641219886751342811057815799794653019301945585378467356302650854316039874274318390493391164162984980044362676199898025693796010351472637258791829918762057355554908997493196233982023026825098512326026697315076829622812439207405717865049107003979928175470339515079726043356225958189508883235799465037012165416946613685495196451035341294430569982670501142683160918078080510385889549222814194139346056637074711055528996232739745517960375527488894460854386563326941263016280517619315866678578377414990221028361969213369940310843427162297449330507566190503344290574550229754729875049651921220963618574489765351378948894930453722449017192571052953847082494749470236640843223601410424159081146487053700552722714009897328979770249069476098061900121822892897885753428746352971869468026808391134219930037126751884672253975105877935924470903223865853564055649520123692526560602555853691487572677692081740947957762297982316578952439685132890589431019706035296233314083977894491700242035264428796767731725946313378762020479371479431505260272289685015850891530057935604371198797220070195725613497913360812395658108600712573161942116136587571848051716252092492434764437705408242056613444159735483041381973001084890302683885792629222260839208351944327048765262153022970177471736459161986894385072901499484550818364015987496883977001437596459335088716272157217687783224439759638496590809546704169084558376578712655400328132040406906000411717670721737796540242978176331881477623113915999113427062516353103752585139140228901378488112693951693167935187197889812912866451473303501677363877367266471087097223213744692958369813398605986330877601697350898246608735468699758170187073439555913904893821190123115398270473370951458740104969095162216681265714628050624999461438075881276205769249007675231116699852290457252893542802910041349984314154842380967691945061117560723844507881066139902376411321259326317766771855024143990133801005715020185823264087889507561754809122732110853029093113413281528614145014184001123498875933167885206934713736311037665194302441926516222320413966198470691430552102241505641559870512824395312543458640975445729866086636302360793159521511285873432110439994090426060844906518742508179811552936952158820817536087413809706968870324965759048897572486719045419936930365592087933014916442803680011793483169337545837204608663364048322581382982817041333919012952005361933981628266626900268961831266209086758768402556749108613249694639202874802854712078907245286199594597216210209602616494504759669008233291111248912411257573726042008469136288732345326472008621246528511019200985815089381183796755270807277423625071403393522842492143575004972978614605820787029826604899369012209871778945666535322515082418212270204357801249550021622851656243806999849674352501496669844167053000569351401712481161926941092126495105673963308713151237966115751371140149536328632671022258525241336096970340731826622889190660261796861248692994031483995743591117844231035248505503082883412754119093622492426609499882374563531790034134759218818600531556085326768211428339848603662754175703497440464457729163473166732751414507218656233517175053056014567386390570114183497476825921411599595140491194135363860332721563156050289053821265781098640141896022836488845905118846887261304039790870829794839968760912529186999996749610487248066477183980376133299038514381652861835093812462775120517447099072448435745996230877349075616661126921472130935784248550720617038900077810541201059956064768135234563810742287471524062076028013143131782386602427278901898272329953543589757218160161365197889669349449102166894410814512272249569691866071749102868296026576596061388798896716610350023500425901810811730460240383868881215886137735344589624084632126011666253528964170618739054059348928762027775178654813365070310485671687941223030389537560532896532043644081900824676883432151263436657654969696872807853556618898875622204476708582536336646675825509774417080557071364056273767520452263307486518721457965109080329679305810652969288607448824994159535586626772733104057564667241759089424398116132742604094887043353721122001641632632291689568727352502683743858626759035495315568892775332480454677998536755513880372548999657379663772623838528292557039772201168338807840378315262536811755776230324675297352579419948580652237856800659235672619461300508530469921037888725797128671263746589863667216191874057583436727663122933482044951441100069264083188791799966264210615400119199183458784282209970467046714093983342570634259761129380581829875885190525943383788064141150729695228757487511208727105672619346945729286273243004218719302483318149850858419499484454911965303221966882627526320091888741698600662883906822016429729094879579775090238414799271691957497142599859758734775562300331280414764894893956767840524214654037745630491414746244002614714930539841560246267512799444464324943594153395705315630107969049028900088102922296748046688134756416621961630104922554558660970753294148480762735464014703849813770973130023898024683528697225393909399778326609603184723494748654326676700763473920778789503615124742045803531796063043659556555928049426579654542738631048840019058561660753444242020283052719894467686702251994219905645941829043031309564517534457430943646200302160859939999631266479539720335381253291216243904245214701957243439366008492385041656575648594097808493450296138350933948678844626923108277328674669772159918749596948990020301476327020169869116669244423839963966062484219022632026210245233886190072417477951399322426834606584739506456022105420344675474246885490928871777418550194844980278168514313352673684807621648815312419384996148584194620554894225079810155345520121642892974478847307848880062543005749858619722712089787224401224471589505699765817233996703052474851608683439727957155029849808253569255508858989248480315552005280412540534260749408934982575192362356294329929734020717224554829621670444020794334970239989584006237077592548336641382763936183188218443818603835316549179242822488747190573698539651669670605606217543594370436561244506315776613432201025934651805585130519960475110504254194241500058091306776543205055186654982292327669990100769468056343700485466834898801976423732273885853633063306781584246771640800935838319396189373016185530232520432963482567692852992612022984461569494112628519699643389583973938544569721036431678967052640779952907872605635798230918718168070831283259642836580379997312593532455243392960695911075321805759585359368265542484859788475433345838274280639428230885432139063901897071962571464942697685169316839781679580533990214571572704919336523752347454331469358119915280071124278534833039145072534822829076703753008186498498755000971009230099972294212239859587394523536657471609068840261031349988922855196606229225426470090389212036787811584920817614679448114443126896968175087932417024206874804759723642353022411595638191191945981640559588350328677562440221950680035226919397145879355775574923233663485836273794226575805206912627178213337115039422484026370223778677624715750512916345100748722058225299871789006050143741435457364349222115822299274123887216543078568431172546837010976158156157361595824667746793240719246487630385709907115953103559281589161606069899931375752979063939827002933705149088938873416596649345566861591597027301769811401965011349735160937497252428884183568816341669347519783491881744218892043038969439943497452555994083548469874723128966301508155860128003278031804639371473400514637966198725575839062346534252301117808923872562627561791356535865445823285030443607552728896280154190975469216068731397382205342133494886286367013515105775299944172186098278103608036083154590025236279293159367120732316473925724868637923148898721988940548865003353241752913148552734285410160399054557971639022514336793847142528655901179828903474367231254702162885344717030669639044921227934375379014818444469089741480379393663099475290581667696515019376304630190797232909483025667162661072119350815885946314731125791741329174083487783129018151889448158992371542105782102219809837857652798435222056946718873059837408310803026478435758398867252149704783666615715885241923135789282724325404459731751603166348088975440699578961300612941151415781748472659833900106241561362162024075527743091461044524783351076771497431391127257371416195636188999300392172458509507868181826487049174955115063188993853013396812923156449379475634964158741483592280585471917781996324863031750397158598107896072084520004330432220834511159964797888651251017212745872225069130937811197170528923423459310588509720530234761325835177681598782496108303365896978017199609398087056144765715821393249472574762820249515734727821953697182516363373546086803135934948001005730984736788598622696638118623575929255757591777780247039655823670098723360210469781400399549328785690685789857329515032605499361117710866606912046677483506967239211918012443359227396530813547772776152590289382607090521127894249332114045704248631062782022735081315062432957692710477212397963533726983740874357539607434670582181699254096356198786480355281597560654091324976618428623851222043234811036431844889097573827775991682105363657421964420691117589384967315704543534325853372922076949328733703890302160104668103778212383520708881829879202140673296201572556324451219161288249092505487024095797046989904551351449329001065130452498037421856784731618339633941717126699214441098370545232056393118107478072792661061417681918422275098327374120556022165143294277921915667763555693060179030226302917779356084840948746485247006382848701210615722410268414353150543336376071941644169671083511727226744973198803861253898324430401084173899293569852307863183138273311102374011321116503886350538441119969639479503704802487202780295201907895160020788843313335732477939123059996621587247815858344198944423969458216351635407323652432397015291377971887343796035571608462652012919190642699861259823836913783476761406642518819846606703974070353641264505149182368645139774457632316623589889702993156629033317587960586280882085064425557240211863431968731096157100415633025981021066151664685807511997469927992766085330233977152460190700118799923023488088592972120222397846007026678183972531857088111336006761434292682647046611727836236815588721687629400315549945160292117025082922104001066131285365817513683206806660111312503435622648565783271604424035004495488747013970743191674363616353904171706352450320947984362132828679502904037033696269209430020224370612465596502685709031098992083185363159778558208778051616853262482337671997247171137903079692025703908265807622574789158599994850934213906082473217603747104414179510430089458628318056858181797842561843987663604473963209247091517252597653368989813560512458971163125174157840311767528688418325624408721509245825435748040962874159389596464681421019908427400945289436649291814250184485061126129911467342942000298338668761307457068035379498835948953852583990125746691114233297123872458568222605808920135421296789711622309999201899922846434641621122183964569480639309103956819446466471672946470876244102526542581578836505525385599310921518741788217683033962734701646198627150982893449536376856306892442869338616755127870555829713939876980845099450574924571175735283148527623637758983241404627397093688353193111902756641455100255169662338571921342978274937931872756433811150631653328909936339742012943129640602692731024758401731859384153030627953411002948084499916535811183714745347017639970634651261151985414145583935222858272797561210906927006102163601574144480984186807675526162287370886797252967572329874468447262195510856362222012395646094312676761853082302216818346500399516481131616380837601217582216975014415609129967438063887049132889087500717088459043043784345517032297465895858881979991468429630309345622636088987052468355063079676981395026784567641026952912347268932529456630265894593176634940349034467447942899832204134491817255601147002078429386840272787797192923914022728998024394227495769858752751051808302336667985911356988668029978516330716442622802769882124084924806011818979510185501131352124607746291882959590088158039798733439829431832635132983485368962590822758742652706368871208437805584613362023606818944171829517336864088912278066569166450943023741483067104823446010197421512904830945606467933112691711123870641123002156795955264380397106087042894368979932749647471315102915767454682101350160167001088308546814999309718514275405324103159761780246905639944051291994400187059085208531476654194252484741072087627485327741200139064616819808742618111095211057534882767059585741653628017105233043858891622061239325403539096049409470415271766029671615755244885668218796515910375746520851309076805891016154764101481456245200262334632030879428615045867539964190379311337742588219433667611431907973447338234262175877207082343122218891438871719709868458698652650344511949896924526757288277635869939132533416986875496217512002187348766180218289766023273327119930870262431029748689086434138919633171039026003507015592306353898975015896779209444622456011204553476801578543621127822262479242657122531171682441715827552626244411335452004831223526323205019357981759378118836152951179128470609574100043918409394862366230049635000162999811604187525267512738562325684463851489351202746004653268662735985285160671000130140574709988345434064057232337884461755712093088059686740231179473790631723562603232900769682886707958639908103323374829262935696823314830694512314752459064069398367472991022199396166606818326287919653920817250515045928821908381380428132971057692919992509237935699560006288931708823279593421910240377083805305025513663191953513681769182471161598538562984103598346362525365019252989367107880225199371179534626454602007127622947554710006870951915670748681304757206126781893150669811399146086727018818066575497951605922081968804851172038557848311129288501578478191338617321130269095753565121606673929631932126340711639705427062228929545107438015709234525683004348960475384825773897845234677459341142792447689387029156579339726670956384898110988918367690181908417212149225433182591521193370586262828412818895248264842898907060241560515265620683826992866441298034816729741672040029071115998871223143383849761226390692887004854275268379941457723528220297817634516001053870043891638403848613030294772219597377983588121386978392519776459828616669318063213350566044951164258271713068732381486521373286641757510832574138776271550298022556047203355975132906016366983599893993699805065414044520754882777040872104359415992564394093192880589014837892631469323093092626196965723530944280905444588837903294729895378528194873604185440632851951197981946424903521336308216353757541198498950360993932693474775778275620813113781022832024465834378338239005069896310469582725690002146228444487245314100852869583561226616792442145190157966267387347921279502196643094472937386771959434903994724992520710633675313244631515529077383540961535959539640764625207559003018360296368691628837605365673674214851972264069736172428891014147253512644324640185367968038418909607553591357822089421453319156982245005650027534193268960710230806178763660290301692393364743861174647362598167486890888120741522110475355899961326231239051216220924406045609503790728428908000295000789430818530746978408827034937198098666593925494007686678295795021663156704803038604046039071597810270218005876552737861184792198959961480389532582991549986553352322422354093150856926100660215361107712316460489042204517095321894087270932226090868213119573798963284380484194406723895086357006444639570252246369933174803375394709807210989355889841381623186729083808474480986290979327721253562528384291996048338610436951472847836532212554268692558276028102540523468792028958234563495865803401883604946527609025095142722262171172868012024029768926873125559515215640278042441934409321556706115333617928612228120050627492262176967840508809075804115973014208776609148992183178776404305575622597717007197664094595885631293627109049708896059854841629187720158304633456287716071715670306965039869638795683280297608010127120657840870305599311298901036918435915762870239436043717457448833746822378632965080304935974503985892112729895441135989590883150271414025806693207841585247105697213951637115548469571927118543973996700964854440427878675937524238835958063843774097175290144221964239371454583594244855926211206897074150941293096633782870660493312504990488829999795142060343031342435795370421234413783279766272525754659148273024822279559584957493312083539675760346409775501443675125184573212986937079431577304491708344884696570364788933090822703410363749254336394634928534269707387834526787452734441361587570915575297563348757793803934956968306608520312949688908388109900066355695415445399290655266869292656574328838265707097862422970890155768766926504816888835630886794353606059875569978520907223660840361783246489866269823434213327971316752458414767948695533904669159020163892642377082244724880005738416890841604952906582030851545699537240682654885715103374886303234544417872202521460517555034788649918955922609359681539027681613293489207530653583483229642130253615800864372008702790192158757504611889101084609839635947489679840445196691970510545835312272841758796391676949244148661351302679112623380612722928717322700538805471926337737438854119016492262805040897570958625427503854561587769582907096675133904086462830155424610334130188634289583187211537492438490983993675195550059367009206282755623813948724077500034709461351123522272066899164811223262042120993470544650802913747311837218747191423804305570832716760674661325781764285976234657801104231073890369693037866610504188608471467725113992461743430038627206966311645909931957505017310302136655068304310400207954320735433112421699454169648245426410758004237714789071561408453453629387942984029126228096832455862766806189768179297892189219671551564690562624876028300858195325436537425792028570835766034015738948005910707690189565562258130542609689863531046038958841409284094904682461212408617048856543470944654744166789146197876343706887972655907656886040738120287317742587933643552900072766623687503617446718544588813195055174744846764078729289198948445769431413290408243911915220415831000124028884319285603968262671125226323495923349299689572997880759540540231985917483289783880807140400884096901203686897001873861862149751190009433550113225557109042084764469665322789207720586655434780648552708333658091341994359789226901516934121108614641315732159510485185651487833607061457208113182272484575549460843275454619125061362464480332998931741517967867941862785208515637409523112701291171253679533280765304280707128898746313339656138992111619916792114867914595893082642632035983940102034533197939428532240039123286925120984897825565676059503398204933001388639914994561541041051998178294437318426713000501834377732451364867291590148206827619455545907364111226477224878477719337211168488313784656840612878541328261659246477898662605138686520705662891544517272032315815452036276746994181198146508200289161313955308178297533450730553743410567148400849106496183319740094689876196387326838557401504337372096290865060811206196252481024719412474103181560338585158453012578817529157631550190087984100538899273260892262992661212659592122721739587000403779455889018554420630840749063553277667766979176564821075008949204094342465316623876669018964303366028945625935111841067309201844552338112894831893148341096534281302862234485433441051053769018604023045808682526068483846887577165149885831273098839911744267778839147383409924664295910283524432259910827641156820911125777138095649765161381294457169416197020255448927053204124978724657670703042556503008572303584876707051138504651996422448740550241925372932814546656875870869588002844389098554910590614807425798110090364984798354910096479921175061461739942034908054703802784714060198232377823933649641534969271926654214491198685902555394201040211908914497047701221438593142311515488492021667267272089898653798191981848563158540871721041397491254931824336111060610103142385516203521215641412299341712790234002084825599631073321335589700877157877130041986515873540009943260378467629582926521340413150498295379151902842113073138936808942208097932355208959719519875196690480414736517848334163608598039342851407033354575512332219604237360505328722956586449614446577649637718925131430975202969596068955479259598963132788344691422110191641507809610174264740537043031271431793312022645789630748588321127477563762431779714748794689178236217868916136685819885446411575471997439711414446563236539621699930598814750902222438926810182546420744920342521730968457577956636549279845513482886249537821594889852865732969541756973210306346718607653685524105762659170288760325066098137600465106332301102651278665990349016324195401153741680414548993831274414803095473093416469492797714212227472793513798487170713809510954843603093618772341278580686179816891058800488389144859481191299168353157406651600799826828238098598881515696167899279515051714793121700133371985921767751368753505161678917306733195298281485692583360470391106466693089629970265539178792602551646020649613412889197879249768671209677551944616332326353456199424325650487189778687173539950075152156631666820937134604635771383105529543685304170426702831119083089274901005079908626860139013803432576062292968583543576640920645961232787682098084259200156658335931648329605937370744282429185731055381262816432418889809255514501069423723842357651757088330523618641040103038490374016511189054281461370020571790847901142851935536784394770802978977646699659860369814627055029377986165020902155963415571972627343768802053260642782691963568176233070546542895963283589409962662672095367250140507688853733464841654721507540954992760301496831795387705282399000455365225576273701114894867413047991563065889685752348504012882279049178135200481090438146480311686764614884308919917761472921374527051959575449888728991429218769164675749422922112736619595444858767732855490410996649932734715332879951087770259618086639467184174109125131530622740117554100825114214472020025589893925879364152617980657199891852858330981325860904678738376287545668717937350970415429152346899403548951263907620796457247355264444710370853689050593896219912371761543262599792896098058276890154926413970670547727674334785283377994752438856718008659921671648779528869873944143621747326614398085554089447749166482270963013763789011518536501201835832066932431063385556401444214772884612711179492107993334799303904679097185316223271118107844927280131949267205800400330532957425723513654313288880672982900116691390098986579519705398366498748614080846203607009662566693488270184234887765115692984255519696738757765844276211305975552841032111879636896684068517308932118589356364272661825587615472086495447731226954772545116633198008820879460353823692520549403370052503475008800197326074086441773304474008372464367045772561603716874794399805115570974028604806031220137008986062547342339819421403954554063631687167403881066402004564567450191257694176664854467378623221151357764637392391505427314626415101853913900831610811633862221091303288580816306860711956024517674166819480587866187605821678954607946414071700265066934842095083392497799141707345164752317301540396202970515622016497550084000424204378686349436469305287215477935116913106208955894791313288959454163203351141038614823310314075499562490401269371066353081322837357896802915729172720691635514888946663969911603811425385223236008755412377011222289371169686851683814907720840392073415306020101468429225688603064479546455969107742462856800983292560585628502028045245865714777090298829953252274873844795388688414526980075796315836285501631511681679909074128298510860308171833685590209879688804777887839136396274036913974110271917265304555395150142315347331907583842505421343498293659242930775854341172580536390264391047948101223610280080489211583246305519826427086647433036071291029051673989158114577084114075288292231957272191251509154059567105170555718830652349438002939135270319249006094972270040033677219032906090354385008562853030732215286596488624948446040871785573928900032600839741095733965640837146934327775873942055513624873893696611443181717052042275986671288342133958684229239493138941985926182799045199252730856092001680441958166325012826370890895476207055582459829398323115632252784772557878057945264360890490201502455381647904501766944721829175298372341545122816694068742036998008113247792862919395538624064780240734526822615646665413209065199924294699017868819604026594198992195176771693822761443078255823531846621063947308505561258917514430281990763151461382072701216962171312050041392099124869202248131528773777628036880505077270558941923257807784845173347301335544817962251041863471768191636992779697131663727842719184668603925005710173643573736193838332759578202201039046765622616498134530631853070015019378990878961588878896442931867374818655207686360217664592750617739692427193874806293054841972286212849481595307378332338244262624342352098182564967884768154497802212239526080512687658102446551088406551878416140708205172375121518716040432528991724497166813434260372062971138118030650461809041482097196522417761004166014230616260479096548253453855684954740840387085513094575509190438005961796875672742666882364584087831001805400529513470565688755989022424208901260460594382622073369646769250287556177376524487794438590514774467178101211998239238218607695860632970109423078102418479980912314695999504222075339770311562390584140275286534162825962207778911077605189385932702144954767758116683602683095638649862475464316954085932560062719503005372837116991825886683378809596756028512384182174833204563986530395443765588281500319205840817066870401071638380320397240325633765847941824121293258044448395482943401522213160682799689056537488805987308373790709024074511963829139079064042767992168668240266411368107743594092552818375216458369814128410161884396561202310892001150101701911598136905684256810229429449775180482438619328340666461011070601473475834501786478396184034182636093759414925747186860512141854839909066319839523964894949426454769184913839244182265068856163745509376332296287407160265988693306492645514532034926359770360768954761037428414437721009447139290905092314950119710211736719941002875152025729255129351627251597427624316296009834701284562002501568274034718965375134279579158149927214850395534264193511798524028848176987726145380024393129298067639279895525188954501519585544314096356494848912526209852527329639450893911792733735513798612826078916799182946772778259987178162086766181584766550806043308814538741312316645995232455126149877602602725672210527451220679257878536765929234822731832058177605739258234729829059046020145406509287783787264804730351383171548544166383187925762422304695779149959165258984855470341083864146526937340707735968175216202121955679231400721375984012032135967939128475612984664280896422552064698838716219306708385601350314071128281846409700205321892924642347791678799888966163346694398663473991290272686124595443730583200064855933765898971609412690493399767455315360765220623838414025584198201174772046878636399144264560393619856019506430551243177122127641339686994692579957673214882466952698976731576196955668845429597335504583463408720421730474763263155531946359906949488599653345546357120807950972646775407450042032730412137148337112246752749074622161207896638228233079286625199018122443325391242782387634335988667124351702875784049418368795951704963920603407498889250632051892266354528814275616777060065214513213483365026256127089496011958553013755144709578692256409763375351594102084447857683013022371860451072715401224498123033208235934147182274662241623446335960039262756290271874796508598391788532788086210027509642272330014960805509301167428979340540999115776781311278824342318680824732530614805638504016781342154578710138766222639076930163099459206469984152711549969474885281370814600653246154469013046642294280934295282755852422313284239210201115606607343427761363868008702953873883966963302827383812565498118496852735598018612060050716101662702530007698453173264395376803173602768886931996755900891647694800555561738126240548694472439318956457810858859922650082451670233632039849578881462754466484034159186332766242576556941220315787058658331380979822899109363167107990468063491754045381732298722974661065836854004656196695843173763043793664892714416441172365536370477287306112212093602378068639076053610425221719831945789881391446987460249122866672936517048248233659219826425312031389612377785873790907530506242776893169335261506053137673206328822670552782277113287122920087998265873843396738315708997015825821136953177499120319842260492741756105902036959603030496842033632902375912373472736669789217862451631801860050521313843193315715661791752070332413447988549029212905248709120506099687658180260681476414393670210530975099808339193204087849722892322138699789628626416204623893435532566816803169175004359318542344838766303432162822947886143353600512332021730448099936483214350058059773903638378337664310342423481230881673843729061356848443962477211866843431554860733844456646298015356948137476326094848316725346364197577169228811439672131193620654240518197139595832979093224671444282320903152421624129886945263922592907703050909046704645028763746552785020654878632774435673839536676330037667479425857547373481012446985283638137566126712258816137921740124964539571415190078176195936066709697624325932897254461578648950257993124082326403725155632096158672095270150344567650827227078233208011657262093118815926921726229956096993435762618322199753032780416205548642391131135904228153963921479158159826386376291901062913969512797016121167228188297163760302413467911891388395479819105192987509029892960637634266774235684607853332736852719670217382785089802638019056901879068165854945772991106639666816090608790564360792759054449291170950333104401823608296099251678506329235617945073842179029409192352456132068855436514922676096825995538278190598547640494235304628342956752988869063652506632139594363349843349929251720600329395239317147471121259954273014913186465390005418760911525556625987161545501211878870815368644736918458559781325869476250940773653586699093313952713096698604590152191718936436865064629348481367494558137564701692216150945533686897216090935896872299894430923150926764600349457220327783184089082200798008430499088913438818424590899856571657029234988146505404766604916663094496736856337971394534223166380066327007487068991385602368107923079054592693881270335862640721538834885660938513633104666438123592339653035384636724280659769058616672682536522263150361309801411808052581639699096144765190716608945543241618057603130056880825028805718187246378961868483975500391747390829664267460221664839694902645855775493109350101097072972420127017860189153955571179104364390701101199223949889255133778128917456306418883373305917027069762864672609026190734037694552406805027057356244883409208865472334638596973040878774949254306118031663271517687151617473392043581453895094535868440178019487026447968073683447240476309564305705239657794473145332389350104660068208461303064711610763166983250470094891938760388799634612442351856998890779599606357693507893773814741871830342834985296696648925073994531323307017072817851325678310426052796577941553618284814667573766206114362502952102970127768587123897007104223785789529219481506922471418783627420269388839268167851812081516751205034195082461191743756005600718930454246618707539598514911041243761401936105799709018779343874777898691578622882592005189032237711835057002775009672964027062534479936374588935257994987478802841362125711820805752563375431973421938406149969744451649647153414572690792652224326635950920199117673383675525439509436061172191318129591740945976948304408898365676223916283495817366169925185255775300193133838302656597022870930199446485268567700448130937379360254327206975712938608565291505764785607753012648814104958280357797560614028854447033969750433406692426049727389748352587855438735627017945945659914238854203207954508332495534086436223295444584996881089550691097399851969208037401832751363910814646178546875636641347672316969683797474346621482830497451285278210698803489189891524870964032467449756774489874417398681468554863086988170793910117628902057581103533028642671361350449196459043605996589143615581831982534875886521009787206206022383306093569349646044453160360926244006510850757778569095326233569652469559198620191856001021708535872287488423185862948069359668798435037425162618976494320664348225529662469918998870095421070080583187139525153281381786378771544679791552002740005302661127526037742119979621859248982014325825752996324985312817817584876301566841465873397059685448923768092863238301273300418878270349157452961601902531292078186725606095248976828933339180146492957358712961706914589602318646569763291313464560411061719456055886191429832738862919990503926717010942882508629197686363615951542760012335939315394493625945530807396252359556625083458016135752331721803373878254498176942416165090349956155989374413033531113958962174471748543341684269656186750705786544401107436998454140017964360876685494737741792664695662550123081391988840774690173781215147759691297342015383248808501936794381228779422829718677229072448572711641221879005652912324062454750358026857587325832691536398583890553880455291389985547244334752489964697269027866879463176865385588434057747228501242483233012794085259810883143532245178968788126429345898032038741624061051960587961869320138439486110493553501841648808917440110231408922803245046078881379516818632986876587290402982138062356472293450695655467965780542725387582942410955685021432528845274449268081064624315111164581617454550130036351570461632955376587178805932858429623332655794017021218090160088460101490026574918916303888418461776312716335705860624341609176616960737636814574843207536863647367879673510109710276294948399243125189323103628046669035145177189925496338597619979164291225379419131512417532408343134721035107847429053774335499086268141616264591352640273073648108631214387778184323268686595213978266954095208748666860955976106413281963393199210526127649683434872785319241583615997276944420024555235420288631091866765339583199137709406712698537994552113225236860340011549849541255509051386477024517514909605251466167761202016488603416442956625267717110511798261640215687607755363053098221469993940569025848780653025951342351763720855873104946463886088300256883512082413258987022358964313693379705783177775457440500610879306984490458455645155227157879583409369173340003892614081046254593109730406595281587656847206715838549772118555672877913276280890195905536990000038101418681994801318509211008929462750259121874025067234292867098511673128835414443881194292210927971582999199239248539301914703277680965788036623066905951855054170569674050072821378429567309663351364131760487740488755930965860056564585580679559943853754388927070685806808192497872668285808939686018113706344054616021627252422864975453000819191372401173806943108859730437362266755844034723239866957262126703912488487072426814971930763925815682173970803813823161664520944000374403649133545723364804742593933147609819862676400778313333354108865363260446469006172369174075670533739199864950191430472326641130523965882438679312137458613486199199563592794441097762028003798241317417434781671289117004139850064839531487118787827313969975990377746629185356832557801707623639380484207391700974862763536210358015641595047887758518276426699037998799417550474845328414027533834666711702520756593230824083311822450195161848260431395021287636225347301215363956180490095887968545613038012261464082149647080063314447488790476270442256928112254274506520955289171419033050698899284141605765453857699966336073804831062347267958418274510975969152113260131814565130691841496573077366444857451967455958957027151310699161281638849706553156239484322602416238505225226540029264199464985221180108666529929938334843736493955712385990367111931662361504743022152522684240386830392590337787989388425000540826633191186184885651581681970502835351630342826757812737166630415374628341851813409340184237531181923255382088911537090716902197654378899832865541425060535143752485342678354486746921971597910055247092503849584716789300193687347632132907444256109150238652627906793005623496563158226015846747656968083487327425750731992703416078194304215731680503371768866013166723375417582439721840865527868236433176498740638602040942673594205090602827107182583101869307345326695254874468184783233649563149413720734530410144016925782834627630322180406770487170075608170214173643380144665339246401267285631044100113646262546587274891558534393758792890538301779209820283877758911438708967843018810401208217453588850968090865151871157924592565087692184419829213425843461047768200138551605527477289180703782154715388978039935076647080421652477205740632245446483523641244595705971546853801471547076044902085423029491904677346189387421360204566100458059248212932809053658703604145202491325605706952401149709947003897154615236603233784428442462634495808202633232467197567332302948864855756572172312038666718722517299588815612380104565275160465240549491327264644399103936374782957526397607143557250131715797698533452266020922258056619322476236936525041012450382597677285671087370090930904305757604093730085039313219821090910951223123481319594242513981636653659737985518395361693438650013636829096999641416389113125438866102447422302524924561825655415744646349124422358035992943780599658560599519822912899646687478369791537678104483738519788129328314230364756952887636631474929910691269827038302820995502151022819917056511678235350754622425368068589489706422395618487839342657309933077218077938639958079347822822038565672410606838402651823888376566675834614460086690311876410842329349423227529263975270582053358188931528073413767259940796454683991195573613435065403326124311148823120465121175752013542076482294549684740001793514357164989036127269276751847227201879919589386257037177351429851846906415982588397403026175534675467562032971207962309070137452654840256169597058454281339326285820854632560798759091066612876892371344817468309598844494964824412098555900302979407888971524759119414770042739060805392919532405097386958650932408809587568249800999931320258985918999226520415282430369580000612813207505940145339242490247077696278941709735605947098004656357597002884019393160057117095971508935742919677058189346689281567741367662715410674981038142334097050753274053588943836427434598736240490096943864906501075581662815380011545640671415319083752170735973430807772383149861688883117274526209219786587657523029321228372847752637123066661469492828704170823348758111485785307830440888227391000988582794291528936038933834469973927697712859444600242225590171826085939118715099845487583818903653867219782919806070830058443118185508704540279241887012115366577680029451066130453454950377549092098339267715503979901844568796776236528422553533028472248034324024069889772012454542640629412241780963192053694944587687841573221540267065272084056646455815428155060532207849465397405046361498698218267090454253806447068671792958013416467032120485308902261175672810654658897218813087371522417363980789566919783859003981904434558723255789242646695650317393306293583221364727000400846735415725673543767265489183025790297752319325712227485054093764586935871505250193219725118449022092558690492864308444982842098320163411545578612549009337547755614426426365408555202513336478258658284916604135027145684515342339723437682760905962314453256054575629532464953018814434419069743642507243293187571116411450798561352164915685787049426626456978978883172164381853591960225096119890554422002902137808703010286271936146702946382125305512357273574512442993999081402349032589840605149739116886757621870009653200753729709233042720686377053729484548357324814031936589255431689862321968133515031700915805161281275874785066958582830510434076448427977386772241992389920039369389897172798749571404694155614625269314697666222675954441302621800403295586373961975652270433465780725386061968206582495654613347820244105210772374545266083694049202375795512798674342634991425951858794128069750810873098719526199819432790336377737000405322748087462066094533701633734665946583485699969488792679610445093942766464046803184728240847145137617640330990612638127196433585665180645385291346603104871530349379704005981227092449049560360410633611752116510024386810599737906266570663085784889477752055536035161066608302858700998085934520256171371213263418343181645044861163333424687714917950507383019134132693595659893401138324213651432685374380797562087538883292127111959436706811128508856984400423439585619559411100822247873826954425775567008506633491712410018182770468217143397836948985389773455656429496683926479141868439249455977188757150166702570217958728926967838224801764322843804923610345980877833714270500273056473812186197454967467019187008838200034308114995972719993838578253704491947059068481614222430466659078471955344541105342201853297078897570566520031878832433336748596382493703137828113421197623821282317004590876339458754122764346900873619104244113595879180573071434035214098727423953761301320631419325242027834623884929956870479032933464395692052169741786731339364750719190982590845706778121756662481623131874213434367336512114378457284677169994133973787184585043837964298469837903406124237965859664701762106035211298543731203580383852209257027756186207342254332469870217524497980775001774222028100779146186285546488772248550931191281125650257162357083121918544702308511136975033523255432573776772995993877176758267302084922211304023772396734512603279915482193825878294679024388714468698652935387703870658563990671474170281292026769687971320036752502921778767574451193033869526722344424065986295225217986161601334152570953064546760446225132749476299771251285471557081783403169337056511115004881890291661945816305825483718951435969959903304379251729267651446295824238953940336944468191433629730432791407967914291078458815927396962142091684758646274277594835862737326815519004560311060252508831185033161447351968110532232902782886070233961077373946630649422603842038558372055796377314119254678357838626591580373873649030127019912099651297402516380123938273456412208101213844695282637030872766496932497467078775770384168989981779228039344378815651473936561721686347264244283818237554786109611296985996917860141215436098067461878130267152135878213460615476417200548735719834532293204901919479142789008930415005177880183488175284117826161511713859998340569847924270589217413148373616316200408098106768013705255903738464887925175879234540164643692708860815740761802399228580696146806236641998170074528001468580458594703966819857170797945056858832844875512612256941004093579899042439661504381345319714461750982179859266218506581526234927254682323416487503489284410398550346697648599548657683070988448769988486432507926830749774514802544616244779588082544820445534833691835720798244899824090731686745570211457538327424435934325743092923442238106975989082033861080638708882480243141107601949835465566176818236695415927210116838878793044068627359354962295510858046680589677998683843651732414875209073974222446590688973358537738805058267928611524166416594091523868433639478989240038927890494443968993701480828552923878714383011560802025546079782621785022193308174071320838400208896793514130562223332155763734978927547895299138174383464621523412025760155211861418781566761847569028912115974008851895294544526873817051183316783083176880310693625994202748041613769671526251771505273269978177159178161054527579240813413193990470387947870117031234301672613959232818935796353585442695653184212419766146698827142414430309044143399774267065157438098368955680900914043843385947376957932830828035494696638645950300241127821411818849068949048815284967265123096664427592884460539059029100933947247314364503411185778785060594599361026338606279400073150788270991231775832180786931077731451970271806966807469377258628547183138837692018950262897333697090903589482395519056433015284393476771658657881409564854979296389010189841746431517693016649141143101503651646255606763708847668557194184478572918444767743757561309862852369703871946788449474943527210254589342356638882744313113620036742406978824176574747772520533590545829309261359749792355045925685287832721531931183652626394951057578491565653412958897563381926212450951788494783669998856753833021958791002545533155063509306178230286403448223322602984830037647243005305712633937493020881903643011179279470659514033695019868940697536976375350896107421593065176513821877912395912188365717037980630820364633251040080115199069269227363059994514937260239037069359224668648162917389907271026426642298719421995240124772921123229908445463240248851326490716991050996175910928282918233132401107600151343553843361303604776283949119668288336619313881229127799142090702020614140971864131616240803859383594199963488607796829867032376914195690717898142783200720523723583310866625106659717185628998788010002310958166046673681096108723753864164203282839462109433607149472661007246314455477004075896441928354013157866508187087958909717606284435519715491612912559399215619266798414368078691040181424088194282330462834956356928327527577368625200212387003120988270231425787268467557124938396367588696398982635658175127287144498125802091697835114184692619579178495553263044310946497319742800582048113945962037509023399648844248241476695965933937185089707780417792249526325152251900391090590223819081616150905447673481739093122879896894666322599800318563083685432585255236423216236254774275973953737233767992719853109124639969867599323108362828736184607632133947040372243012621215788070439821412527990474356547315668225953264704081917277391063838632643253527082029514914239205277682799848030714145556072363377517354200547467664395325817009004470773266505215866376473009183137424282440401536878134433027644574123278412105855428779462625019104435732398112870814522885170594048426431982262630763924413443728149124997563008511019930387748896848688883832714162616738929001425514851955828145576504565987647770661151991286521684804417514976347715467374772219321066136977056508100281205892030654448624622215037896778789160569277203488153361488222306182410464372589484966671910354159514003511513165893615886438487276447955017514998153139545133178370190862382920427989408782308798484040819933277120159916587546201732825374150352444644176997800303809211955972790400941245909223624328802737165908203215624603485599112704216752718154031119335094042422338484905211205775768649296131602790178303385126664999300657157086071960068270404030426061417427584231269892575330458918088887774780690291177777390180125674309940104016925401100910279631928236331046503649706567563510624099017397376223907962398169050412251624810599788737012528800964264800522545668484793881793798226195935199574951650966984486545348272925312175693980053711311309556719079839204805700065276759970186414292706831148828539467257494415255893154097521570128016673882056560198819709698486887643304118295584597268751447556199650052023368268837351066075650228249205912996860809542467700473504044583668502316228241620573186546374927097523430804437636102567181328820159884535565894818150347606740625178449323278579351972521825265974509564124248598033259515755095989903122791679260497632349713723801687916539243858814643272117850934192649543639032854436946425379904243998388748729027034187398762077977733057294425066075482514183653575677274606396940972053247286811331118088502975912905161137325161367647216494039429209424686291405226707483338206378644900137330274691857125148820233444646974582221311232002453292204804589062983239348873031689717381528896773991133100405275457855169721333743603386917229039035664389163946622377822942306108493155107508260507362163456522009010551016904065273813818566626022214250289527017638783835038333176787138397095115779945087662958587193313661395991737531833694675162846348379044583302868889120755004753714819039797278060776914524089542779510993903628678930114786910070211928693928774409718674002539707881287946437396414624903451807417594168374173150136348112109082064018845638753928287753960338795349976790620383175928502902355382859848944687256266656237942190852355713002169798520215971594570415636921700785094357262889563233971833881780348330007548386351815408879729237080222950465841638363455863711160771269382850346619736184637142730978242948415034784100694318629837722688336416752036102596251681163668160893092028961364175670397371972584487400843471194784166582004642750006084027395044985530894151558124415704770068455601556828566795223938493723498180777155808927902937591955648471474992385862720357382886206688263575109033056169317189263053229828182132417238862600530059851640526678866660074630509064500358683351146546176603308674241947572489883879553282784598372190932528220539901982616805776597955525107675783978094518993705857535521134035414660456966242243015946473515617375025854492012807576776354591519507590110219844449045885933826484989462631469520873268778761857541789678758474720092638064550392025640911319373871569254559039442884048921951500271220438508496219091688481318978467505534146470559366657133680449750736637666738650810061886231805814681379953631858304821170394102954486449017441406593059042058740948885545432624173282823753767208174282591254310863918989326708973933327116246105581971204428635446087220029680578301851888974682516672727088030654381370585295641943074342795546908407868923201836631808781852617575862576221266234017505477120998571921741002863805541225577624906497370491297361670005737966025534511025960650518152189064863483428836305185746056109886121169239786302479943330722556115061501311783472094548364948221939671733893160433984821435687509386648753147831039888144344538759712505611267430147019391359659491347951176208397277052652675975036760210179978161549709675304628697099175671954468462629099987669368079437950164116181642879541873031980838733160018965291280199930350626841197335743606431262192650935050681146372281480255467153599220374799155883921765819900186745991695921243437963509975365182325867754121804921944306537445160630993331662493172956280286282730718143393453256449387443839926009221672163476525654575710347659039735006949378391347903959560475048210201617475065063979877057294353171692560814510886990927995220793989665470985894405917236246550083129541333655121856998253172273013172773715106780539605232114505757259996223417852264738037184253060334729682067400665254847317085248000459268815355966934969830263780507824104742399329986264893367773720266319746730010995251161024811300146689148317832515367125655185266520298901620769121483935933966088586043666882424632938174865578115945162650324909704532200438749145219650855657413235305372818942242931540977900015990671852270672995866387107110905406469595785403769789133509584201057222292802104685282334922509441177912242206720743080478757984134536509248964093475839257629139043648846577508831057935976158342447712723954689766692608288587458043099050693374246027843103672464136220610798530848017685923088874628705919682369405399274058934040319112954124070210645259720729301972646155544096328346862539152468837234034228286782053353814661763771856731673007469569039868518608137418495335634877198591545474626903425958953312095454119387166402625491335169382310147462499405867495408395526053790179668077247275451627128870286635747164842922521809432346010222822025860020266680694846437557780412535111856537694644051741707605342951088695130977745782864235803302100201579364461755337965028170671102504405919070872562179329685480388610918551476680694409394062650716585957476095120280496488417007481661672236268794489678879652929325980969488551244707837814776919305996625516922852220549653023533126174486708717304510287048616753675654359961998292309335968983440629639692019613186361555999853706834835704262471194025627824939302456204267517319583778186074120562823796048229487864646837663668673296618446043635146334882812078019116769938233638456588048901818598880454771077913640172577410429353344664615162626835941932440878277675698561902789229511029382328721797462423189391986181299739965014921899778585818189246331698202646484211676595363978826718381444757382070397189840827297585119292545197827137054082308772678336439974864596258475510629047771698028651790121200024668758889946966416751883783281327773450616155472300233473043159820142961060551232150577053334707254199462071482715138663101669553068502054251231703617522440138951779050391130965708980634418606395281447156354380347789128910340933430205707271925064228251530613209600616220169357315433926627693460874040841068358637505363081581562793852077623921318441119924329141278341097029371758838608962822749372439991957583605489583640005836559181757959888435070847723270269313811070860605804747450232561867660290989624532246868227894474726017312569159668405941481821012142471602250194854301314930584266020150113147876452009365863940660281945804696954768207268154970431386273014844605246723093799744560315325579431320781550980159683223884680876633613750271823764752262430997880944464792085779588660295802468952269415541624103036359283967529881118167340681069828918785888236697495994850048145982654145672323474534588802011285752643334979259991634848166781762928086408037940429827530925982074121458770480061913026606913038209779966702871092816765143453705384248493651406539174299824573820346198567968395955394683778316745947463948112133935550680046662449495907331480391570428764754290588177611646916251129563325107629689245874788638890537067612288287058695531161685272805381572466577247015644681641294898929512385725630023465757922057666631654751029479563682098767876825513273239368981065748271196864556470360952816011479922283657664849181454230183278553181302948971383185338767032788263490604736245694553292699311351514612383566220104417674454303802899342321856616294922428110941901420156059101948855258162857498270380020506958146386720559919614931255848284712267006130836122526412679054717560724120762740645994947210567176215618344470492198545420420804687054937774671483128996962188306422160210306361238383090802276188365212383655927033942434246695949689384657531724708661729475774174184528817871469356663468118051103390514544748747694753270595995126421725177400502974853200033932974862383786442019255424027212785353982237414147839160904037467292513488834947575647070282165608893256852240807564249910446127925879188772818704160559033963580753983335199873706938117045231633253295522697285316266952347435197265466862757224330845268323236891732108021200855198946883221476980806281720438979609380110344773873276790284611023607353722748078522706171219327318027204924262318459358109739678661585033313280126096090208998293747958750096438039320305489923939872734462225221117784757967041180241742998140987822187127848811847678000916685377963820646277295686793822076349696136016577998605908504195509892649960201546555252171285940456498567688552454819310564400449614141176103119382107206074678401772212315993221661375283930708699987121209220068343949190632720581746204834049772836674662747122645548956611874916696659464330792776428094712206137706335146314990663590084630973010763431768621769253242148077502690604333328484355024170641086897281970885990600908755194661514032700285415305201261959458575864650211466038845298907508919566714075771227278932439894660026428456722870188524780074958029323493433439943320781762099805136694908807583041062988936369828914565770833850278699234302402586985900728195119837339650640425690301833683286571843529872908338501156629648759843621288389689724681516544083156415888780560295104300576160689877738947057272102281405186178543935638798177655083567552273535014847426830822101942637252764010535219494328689565554119164347304025449571464193691195115621485963491298795381921586295921924618625161963864347773264344573955009714276830909570840041936728904859383848308866715265422189806231166993639363074361150304032294369624960340406236516179529491686343709049729597195939195491518588033288634933676791420828530921812402652639182032859728050639464191477460016015797332826828417894506364870447081303887971283028266556218354722037808905806284349243954814229299570051086932524954874800404786445686286225308941639665440929985878924140979609664835617482588419009148788327662957144337885804031756867918578615177964995152839366954859785347642474308914566715353144152844335925473273093926889325740254423243253633183355404717866152360366560230196699197219103604475065261073346907268659075031881029522935324624393157998688813724623564534778368338707687266442918895263467669269547140573289103127848005853271475810760471994214530912505008824102404793974913593452541680192454934178931313680085111858474638707343165142050393413726699655421547587247284172256971259379701012891442457851609362907734385041325638637462365864095819579311506520273446436778716701424088074424286367178136600975403151003252553358162333262430783119867131902160674834384103138021973242049861853618164338799578037478183438833943799507379389490979752586839786129856993047704310706923652375422757864535903099665710597897957384428471474807831360810373965519294241226406494484779847573122219904749972496121433820839576352352903033229127154876811490062557831131274299373159150810214292880679532591182932421484063890159842380428833543977277067332494145969645811383561220280966499033102842093444317303595628100058452763484720774148340790873189634889863401141127520608660719220608080792422387238188460323273854823124353770307340896803664052993237504782172496081086712417755503720902191062973310654949442021970141259285193781358573977498629245488191871031534433877704524876635979515647028145391143459298530499448884058260287753859907457859272933846117647307768882387569948989161492512226304054777564374950891858335965859072970857385794906397375580163311675728851704344674785423970393331068216778376760014786496854503266866215629354060759647392359777638118778277537826212680699424472251627177742634689037843663364515271771642693566320347922099301638619466754450510155112737922607332628313017682135995006501461485670032739035014529093260726135832600929675585911250658923869165112092269699439960323354228620554531627279407120909789684262546234057793658823816599085658782997752597411159111432263354728835309196881158762328377177411666490214539033568024961318294645774559727643187612669078640861072797510663807276967949745724371846062667346367429096995298712932202033982505541356400022258183339388703510083038699386556979954651101596699086151020665098751653286587009184689092325739626813710853258033704054610956059203069480119133915813119095021119903406375927413093101946239366113138785286662888559180200953988716064808247992858954652602400509683081845146240355980537420664780220616729766051104134678364766564716056493917418850001290737073257030447216228373494946967165672110423842770280008921195853024405438617030924723821081568020603072450977382363833024006944218682611209753797081439537444083256831144004724312881154289913783044516328735448684963958481983576614944856387604694561899400204861219884477708726429408479849877362259788468948876524088721829068635702731869426764348760611558913221396512098941994640463643071810191658038861012355683915219538999833725988609402248139943554536043433865273041955151718172836979473246796444242980192377017258777271461868400484417257170928906907811625087094702539673163030496815072066036004239403846073018143439689468928420594314140181863278347125736159103603795390468028084952018714984765546867714489597959746342833491729551467755978044200208569000223954025468410479454273805398365247905190265288781788442958463647121864998064415819095855145740356661513963802051707284939980043757304041332864965973009365829488219839169616620321266702665086259069329865865831651679542900057252211718665750558861145442809207319620440977224842307415489782259054138331292887276879116250493022063702723823116468745510351019483929444049529111664165321201921305021172872160514529583659717850913979051736948018231267715006015229837721661154600665343531502060460862636416374800542753177319224544461501447547547806668324759079960616649520340520759464867994260857822988226290277157068650512459444976876901142349073219468872469123013854453360362151846723042399243879316253482333193374565107907963790773651497759318081019858600428500614546058818954466721105199808839783950452153270205262997329106473874748338043034183380358454491019422993154415718350142462905640487606214675092262257004156315208237241096945542752777373243097236077130437110810128243887751861393578798534791286677916369889130352815744803342962613625761284001745529431765739448277581100274344673082918888031112086495188047239238700013633062920475400261947113625021261262583078177759520009606305177309082823084165628030650913300292672069397951603642770527506511146115231131869696488528719654833619299187345096205999287548170373262826346117317514924022870848622111458895860461384159126033007922857712523931769102687667451936218341990357486712084549419771930969630373049246937028423959253899068788898510285059947655395362885310326445375983128492998156460319161607434108482137382502933249137021072137104005848596199135161671164075925947473937416006998368476984933664301648347398581409578376323889946360363262982132122752673223564237655653503148118866009089082249665379265717559014982440669075395569123883086286800088816140985604525317995240341681984780619739985849752815186550780537963260073306519010827393295295701866056126835118089596790671537640382586972328730810740007191635033868858991932505530891167469062598731527289317707214079947522223006416651439078596291095169396777442217554748712582003044773628970139416469413004937979761815231644324395815484524416597587995189806867197431371618319584057447289952259659302471531569881567020193529572247091517530390978218587304956573303897842331033434348040698634126232232975236020131949232840436009473296100781101747823714109680675749425264518636487106498764004983830916684637294007248449813401766904363603110718938519087272753038349812937104723448100098920256163297984978658498178460199699132131759959654351706556830677258294441783770189670937391839799282479631223996817734364195621323546648759457381349610324268914363923634733471639698260281654586210429937737188235282968783671516914977091642492859493738398906290641481254610073916454339632658933123939559240582664309503963853106844544890473176337067310676233169046844336899387704627016473412267613515796827855099140875219439528557981011409329071453963277044520999743778961148295871301356755681603409337925692502264628629362772247773528086353960135331869422972026990635290914242182317574253713309093067187198992749863226011124418480887185861346638943458398521956643422650554298570591599378032587645427863436533947962408668802356747441856807502176352202386761632180985717740011853745658856239029630843036049752309623310220175898093820502770072154690917844524331884356533642170341042890769745948476251252682319315468293633900410257563815232473093521922501354022865752053881577823217234666293951385803327097734837196500941139710043114812035932914887740570879170921524791237493317484472158353789274734001650445277972000263402497993443665216133530409174208547828832598695124014476283712312286126408987490282040327286149040571936352885476765723241301312799581142826727720231281860462913818662323584867022411034569412777080821456567663140846134677074024604435948016557996022174000304281261851955313098961249695829879613928482170829013472278100181398211423428592173723010166059383651140381477698350386774381833421638940124227402779515332507005943631827183384783209767861243329348438407068323851354774523626511207644522141659649808025215691666294313357907214047703601293772526297463882017215024071254600911174432715887545436971487715928541745295704270603134353436730978548873079263206401246031539620056911920552034647962623641388305565461783421099288762912898994872952702708719006355334472707958345613045613036359024157821463219800376196452720831774678492810899995984737789732986723327417377735197495289035346659096183229494935474240305895266490389406144522264489204444343578259964067321382320484412636533314878447647307368101569459237011104105893223767695406927698606181410788069259878185205440373346669927773620002330125567763873251966872458498118175814081569225579318570874638325692073067253169721150589775333938451662964367568414671481593671154033618470096955725959140375984872362201255565337633448082015963007216049122058586960331356732151464537378127857612649701789353883919900168651818495844672474655891862802020675932727407087276030094373402167491798830446041195522355459173934788674036279550680268206675294111439845565495846731660827635788924886211609788841262180167042329629755805370842897954888401928770276857491878318375752931140750479563006793036771850345465350084419514283331266742910775613612576032806536283579791461539615412351962156908056672498029855448869636266285144920397435914127182410449794906294832674498235704603396367445495525511339870627730505899595773522408922408080960876321141015632959607241786813711256936882692834279846151133009179848237854237879312751850416203574006654101828201807270283428287229557068885813813089408503164449094863043458019159401352213944240421785003950271526513141788219442329768547281809675985168204541334598452814471702724238874229933895974825487618776294168235714883875116097890849646481514022275398283144145679051554766795451771789609790418348219918808388501548236516704818981477018545516460279730891144711203278726899395881904048111024363649487682772654082510916116722001900631581799878365759489629677302519198951781443899677428414361699399506072936668658305140583688889451853210859421308895625139835226335449664919715007465541022205559490402365979683542692869506588912270955366455099708656388924155611487129636970995962758554911013960765938814145278434101068982426370623069406133253836851111330095747971775875894247228918033263514765335573460340918882735719581136385239864587989373261902189119437401965619045580106445527126784075020000771891964383484284272244144646714879962242319913721635669961804834304707323491489891811586204037867842994978400689017771048174279062816478325590897424066063383544339363882874559647336356153445028153420017944740368615123655950567138039137946395994928422396391924563896306605226425263533926460171810474383860918892555590612557034040158277061303158540987730877178918077552021140334575502936651726458184095981997654552570609739307922988236834558150328057004949348391801577484202063565159433052007771172769843781864023122340109591736822904952491593729773028868775374269044754029595496805666904796924377362102418350178045748530610171959192534357165657721073883540739800698568609289829373752800519541243732582762219676155034658843359381381864124194615611678992089783204064915648210280504486698257338142282904441565198617431490402322563049064092443379240834499500166909723789800301724381670450966090577535171586317341283354194106369029012771842933364045692045836327604626140970919704953069052076193420418557300259369423484789034111196828702069430149454039054331490614433295030923906751564331974751916652347344129893987999993490828028626974983808759098763362805725249112724494651358976089028036429645156084672932014451798407096593764444442206595078740811318458399765316948491946071000333068244626354068872704968407713729744404191797738213627307081943509828440016943026860639991720883994973707715140969167116858399480641177323206245745291627252651208537110705694877706383805716235150215502167330527919454217583094152743206068765523336927659771573337612437825342687181504219316237502660470462362829672027711741663753899531734466010385009820801620492382073131640268732897330205238704079578564227650471028578571851067159819089077121808327104730208213330767856111011383981937774280040645468366220511043399880969827565795164245245429267062837912565749132378546322454443441895625910494202523125205193701815360099259281207674589253598905155462678750056934618731482660162885229628675813816673331646472102610660062679614229812051404581532126030532567538359050003210866437019291895333960482270340779620788142350997253973048520381804448145863417807201534549400250469385706574602017754508591258228775160466548933159975493100770365348412022337636632390316235813990986813846641469831016643662812023237835027991755041549673024454896864132480507326959168277065404031598452910772270055907614297294334590938632226947448877383884265548505982033695380499328970268227582789775531723295039081750051358777531796804824845502043932661915171238129111313887787153768450765930407391670245427353166404723669595190480379630529111482998148842310027392511049595792267221709009898202354466082771722789112281031921209219440921150212920035551126690373962256602151094572736525849188411501652803230967297183785638083043007596494188651826309884659810462615116416772302733829763662194589918993808215016319884755838356286183638323788317287964298130902764500725166605221154731861543589595343476162126950036436019500967372587512076074815564980068481277336390374120574676223596971695181895889384681580986798534113268609381716604437546976940015042196828842676677291064188178792916381846873660144005226073082376034407108722346665901929919994640274695613239671482548843628883049173771989187959979173146545128365663812658020597245939103682075501589112153688767475182716123215134564505757386763403074361537191075165445905785525552583036051325840215093995983856107649248212477737902329251153307609143585133690097595928022177838081878633152956956597549797594560303186724440733824480068330848722144877303757667938704640196228032272367369744269352654695740129012460431835584231541047659055003120079723031463588811831032668824799722922796181443129189116665298448070608546901732526009940786544842090014089683883196980837493370172196723919983197538942247191816804153145146682811357786134948576131773981755714350615952834131856388654506874595741454482678588180826567683809533051071444695343939013991088697888784363264918136379137351618784632149456069708716356343478887712806808454338370049930051821129094492809953239574297538774726348869079770677822946727887793096892243676779533931718943756800582019131085765655695497723684951567139689851099090086848286496844343999333254535513680498475733124515048176507524196403472438533031979657449361698893688932451214829682361896541818242935712964353636662407548868052668210056710173594095316717344703312740684054687852262045940558530725439362751762688528951471599736474976531443512387249116134402224995338336805481593731703715579090611641353071235177408473148087051724039787204626554384032355261616177272926484576829091371151098512311509616426960245978650917142080623745716007062310178466736430790670848859523344037901182519451624164113147913794792870940477156780862097370391027312566022719238531595573510839770932846975226444316336788962653412631534633219660336891758543926042518521284446191859926154639840457205045614479593451104960465207663776208523650493001286297945499385311480331806501035626779678865282159389029114394264530000011110789452399208809708980129455383773601177532001218444462344842070745214363837499902718956133019304843806998648033548680770312767849848782158856699189527699313966089383533730307441249123401042950493142519263283836205265759642487780908787474155535163917539719058576336025487924298049812087189081124909687036637315120394025208130973380106822079467193819062833222983541247412983947591223634557868113434224462471820874683735409127110436905538573912485472419646781130378887423123306531959028048908083763322576396751990664781301731640768025965274044725173545587164104140867101698264707623540845996568741006701605077602890910938502389240678352694251242563712195537332925987571956049470070928751559498024514018825418940943468971402065201191570649816790295096772760506171083652669365198014810950530354919002503785489503694345073979110735647730821256828815615069288690250574736152297980981082190583203015199934221931440891046975566816862660447806915114325065582715053139494013706292955226150315229907464753327756797251649915425867000680395023710051188919647343512224158827377693980598352825481839275873137176680654720485873271811290444539695365614861893223847160391486324109634113362206577559899223011279642903760366171146575223948548301299118316316524352824701644370767997146137038508182742382003476120273628443754146453060841564103971063029822219373287579705271987957728863360168478184867735423035947728097866209573063508677793756496696376847466923486709225554546528761227295187282219739353678426221418602108323468287789481780762477061089296744484673106533053333576439460731010441457756949965988631403544405482372886256465961574706465415145443098885503451760301554028143339309963970838106325232729754453297833933099141338092948096650618423525241965091710962002199041354909078503787068195822442978985861265510423650080218175790573878728853531913389829793345601245346904100850280908024549496572564343965423215938159228479292679647007973039652034973544944810953856394991055904671726154501581470973489271974375874646934748727815555988191776698026965273654870850413840401130304346047205209279660628339706846324451970901098396920533371411194922535227594509215515305328779007926788278115605508292866522004389236944492777331407404715276334732291051900244080483483668315317663297012042393732213880039973118439332998629245476716505021630331931988613112265128322918492947164995699074915395267599433128950324852054067532966146464275565735028515400640661032715865083908456763188412756458736928547256047382361441952059937148944519756160563237530320045767430728265437760959124755563130678560006122130122325455086183262400362690049001506925329962311919713298144787025630089672715442511214529362110215723261610027078776032303444245948333421586852926796680229971022387049985840079088080406137621979593042571450390590572381146401475399752195675273377614697141789091624327761257748786781099083192549454614731009583358553876330339234948850693776506745531027604128717365256102648229675556494975450926080382305817245978405316089594557538300605316593121450239500413336307308544437325392148746492406092578150516963985458798404999274428982800768230049217586281274895166796494782439796728974902907370449785676337757059202463845599982904432415576878313315518175181711854709370323872681957218387542414532595990953593195783999425472377792686233792211152627684123381488258507680787300321660794864712238240426401253376477977642362482005547935288920812600344102430653355322334812970639806622676424742084915456171511103147504566264180416107751050726547652626641843595255088200525199601789803502478402092583724016989420644202515162551377122952456492160297287479216368480200371087672489584762999217110706995864287865656667527742579771025064298828112101450020990414898278683715368439352725563758873628707162127840594724874752320223022878496581600427777884330323855840814792004518099734489692894738712438456468100625376104086259132937906973305612264690430655457866101168496337017001028426784197458189012414982325007783098094710480055762874764469088939361921238050995996585634643734523643745213271771228895470864469083036366296416122173032075958167277250234833696730873902917834383380149982872268342389924224143828381987982398387983026710640083608642543387251543822945742544565025765571823505255665866512805094375425134704240816173955872048030419403033739413801536928641009329225115953196360231217356076288928383710369626815103482890029863857992376292435264858216400348803251156539993468030915365179169115295478876443360123765142973589555960983372591785360311830674414283001154888546911558367287819123983605874116510182298129383280674514955536951641531875944420272751227975482102437206863452165776070348389468992192467611404637731163631061997925708924878859754961351871912677376661930721239480938997031341592235681201227670163680779714959132389288402461402677186354885152433667112834987335890909760415295135754363103480825379009544264156809378736540808822884269451101707281803219605078496380489598402483906411702688310587853905834545026331081433048591453705715453628162037818183846226618275582893465067583831407802924792476965597716307581650671793129632956331465061908497509437127503190660993214610284508684653668093583209753586448817544782933400033918900512688443819498505536207521296352155315324832754805482825834422046626278277229408413036022832796548618652575254340350030176252429096860288180211372998804213647260707525935967773726148301389444420080029355599323332755661656318812240505618497461602226364643208511381639219633573631338091568266123265832251098567821024326323625002373265409158997859203688792241764336536582011752636007719156357797862658509651508397959074785814419996243739443806428448089664127636923636860404185652401449176958578635960033869376523102330174473534251370580011413808927406806876212481122663833383799483507724037478708770407018280772251677752272938827897604807094533350383001161817131135495501363338780479473729194024926432848698052212472157480645380023965159155989598044128189913472089556459368282020477971142191408381790849847782109750712075950417082534117795279197608293791014203906714496739611180836783751551160746752209514875089385293412561615940748269492179101753520303179721999683083128849155763609792199572739887090623101564278490783322471415773841075139314474436142765480513110473945566816726959077473910063636842940218184806108666257211971146034202801290107837784604704009258018743805428005637971327995427325020512277422034403214320938695876707429061863997796650632891757941560088950868244412341034533730345736544255411715094429477941465735327087198362914780691564497395008881845051773375078735076184359567021218547766411368589261012849907136996790246248347462016784052111192625580226810302350184029678889310813013258778693475010596879791209532432056431823353781658292596920071162671739219481614319580780323520440523608361888009922382818295427649903040318418095176075949281490810221473681746344761930570973518878682887993654472670092558583307076995427781598761624344671620721188630395161092512236042352016071919962635749230760902277881379691499903316824214854458060096851705189080332230285400153068771363128089293459884761938432973333735762002624184260621567536701636752757277053976612066002875466039583981313773934631023940788645052068790423876029587450450468528495597287557590363714071660996718318637929115262672479497582588352626283311923589504187128098965016277236528233418132806722163361649797242863659976686496889133878062577141916887082009578557183612571098041738608965881484359935029116522660205344954051149151842297174908978698157382785462210679797156827892497545902841186003667310671357021851355759308477303566770415297582541407767989444167981294705106837358122580331713045207540214548690530523362162114085293556668450023252298580465026754363582582855142899919336021712675612937542391286397000446552263724301254216397619965162053501633404821110336945912246547970209672074773810097253385615528150448932111446667408518281440358724937455904947863656224768433972851270047521741249086944379038904415302931972551204922458559680171515429228242470486322138320582926829692929822446970129803649982974037984960365623340615136098806541385489414121314805179043274503743115601877923650446747544094134812575018052447016656554155413589306057049309513742049433885168173671203259409472455478460315296291782851619817125606666057753560969453380115989946628934569122821362067945166361543454115737088251186494908873563642293175915725425284376494769799599690211925671971260663391742826749503628328258939047355376588531163352853023310077526950700866844037403187650885951141796040536918740348887089421388700751986995979286844219911317636935138721665362259107575672634511635895752680502511657331103064202362354097086273290251718478627962008706873813270855163950828869538556823723712398575310164683327064117722584511689634582300483369685067555887219289440703241890196838376175694426440904624576497705033445474695744557481289658021185435930695761355825204362478766194808760817915013331684629047096676075175075025669300806054681947824478518432071095700794760005381817045971206848038551162910264006814082578669331933663210380054275300675854528165065082366364691671369195299185475840508199297747534436232214455507343950164377495673921265169807394469322148927167210151742874131582102055051835347277567889018418076305370908321649272595804491242450513312425015921992771734606768252482310835248282063166644318798104832871935187094167412717619466578564651701818289262229892098561765034930685379907064207417728773273239868785995157483399433521646531118306413431580024105015106218071339822154422356067561342850146717716322772392720663062939714860656393459298526722217791184614101332875120886028406604809771448700645369284407109329018576436710946491207279777579856759562371862288604553664717965380481885573249144155922309982799803126731273107269036290561430945620463533103504902677195894645312631595139007526429425645713473306914544276811947235376902089557756184479440217780764494771241229744970576736375073228188354952657278351520819902058945638219795583874662415475765097674612530156899564037416194559914521356044409178019744040416584960328594414547307802002723502261880231340082512438327773259574167023730700375949177537293273773303792140635559318606340404792431314877220060676169260486112749773454412455616455661449400163081276635176306042202592746377782174953839349992496812617278427195294126967884985454503622090265612350419130216160594742136471784989439567739765765174201101392460620264143504058153117535043558063574360790013609730306726095222418832611843789199080501648357558338165186837756077923041610852268091117288509957154609614654695862262692814453305474422733806642222529738039634291482421261278050154971342453922974718780000398643836314911033838781295347116876192652538963901311803705231599259657432942799513710392510268211808950806024484831427214231017390212166144265844092673373315933250605416153767124819963323043987218979711497564430684385401538114499401174264048804086075388817653300268351865647259718197364916137169022015339222962496417108351058027237608009726025790790131535765881906900470066905721018828509360549091365337128579400445339066614146926584902830879862416491995684295076311712959256763155412038571797496815406804472270530727554496146978739152950428047335318483842916787606093804044365670501184886208147211063509785590735030572048190229517728492475703967309324144346588094737499269020014134200041082110979158003184774864390738202995043876689954561068919108949373006176051552244584910394699011345255589859770359272709885842655251598419213375278263538718841015558640894020682907786254288683833765060149929516623467038739989988531263630480940346275249481492276334539324016929576246567364274874999693675863826304584544219993696442676005506598241820372401684649882581147611578699050751564568333631773230442794954244719562085750118512486858126998685868180763125717836141674957717810509673251129521305531868400527567147507111686105533900957426202802817215560434002783611942265441301084541867325561051255587491939206541845575607423914756077491116645315383370418410353263036489286726921805954968888796073848215645757429186113750299393734352162207575165018774389011674110996527567923734512928606316406024987208836328749483960033770521385876500895488988783195596310489386816788407622698521318385456517111405955950074732770101137851824781216744445294178000295264145253897677461799737996066050823928189351031814030107706362931435031637000064790723383786281297289570953201539951990058061425116386897522110500048531575125343520536518422883992943446473323678576440014079428110824820037323905803180306800230927325445892857393376341524186971740275841808271681834107222728078957967238684957482633553200164908031362096964999543076616167335797867039334434412461344131931259926251376466519842319008732366982917008684747309425843526497407980996445197959466546880455343757632238751606559489183217522834037060753753442063481006972049568975963039130513888250055085693938071175774859921016987771199471094173729454849773163642837649272106263570550614339269577507922950185773252868953851406008161221451865578884993635125688158963633171940583348605780520056938705275060173536297485992889911193102243345680578228616542369592229489449082530914526183520400573949277158453884620564182379749674649163489400577613906925761048464037439371618939690250540066048364564784757300089684540565302835878259666495862223440678149841685509724255645107347351236793215830238922414636351679557037033879870216976544401688805734842263362022828755172596352543568374586438081756982037605661483603967432011307049446951585253673046458024281601623076203278021546658664675632831884225618942762058484095249088733902679000529475417355635743081258587901951450163229178583014445600820060428257572464580351252472156986570213099457645049149334275937494216855203449723756918523502487797534225057443258388799002033404037550309993077604683420778047872794101060937496250672845897526030010448586737845046305073320314456248687937506767579293295404875625384017683815822755154290344372571460634463456198613079416736135044152982748428948125467900413520032102828407585575739798463491704157592999417318733431481856936059023226253850712106297586791293609416731740242689662503477682089451541922499656786251845437478181824441499384309562554963353104935049591055421410751782809425190879970517270254385498460578643579832834557736034013060478770103129719542915761408409985899342729982995817668869547370081197285481658128716128353520230408194623457166138449340286692114458552996539920766704685801287273932227640110503937768272803413957919000890610693545669880223936774949308790643847932624531763293935953211278010304057418581561338448331631309748121386144191952166419855270369601592618283711418376229388863298187481987745923163108994919119877426506409865391684700008127841208950453682081192723161047767349910374525121299196404469675942275726444163551015155264912378575059032222329996386316941228574588909949077521456905435215204410611133536740459413564304575196888084603813526989750350563933215090849323120353228209768089418727731263749695593016794218802798782137083979543232452220364212106527835384461990397940452606154357347974767796596790096521928137367377673299844365246392942460422670000747522037934762744593699011422776268367600082525827187226323655869080361458411305327775986106352182188614213223315352469364962777213325052250365563739685319074827525881293425574571166447214992600544003617557966944937999534342967879430439172217747536391286361087999216629109183370504321149945589384160132009624794506828938287098191731442813085915648056874497743892802798427546288194758859716718496267249298033414450432301891904150344552986075903307947105356869824739943602348457392730900784442516594994763469343160640305032184191638720472894392219369370021622315482448626828126490912420458039763882602182077824193827449546824394218920296360433608644743651763366604590250623388675286575201796594325384667361228259048414711476875129566637789723685285696504007641947737557125476630782142308343490167673366271187158828990156851364612384787489003229932098847910047651380207215548606078533004216177973755162217432526628714991060176021130449403641962166864304684045121783461998560981845578958786934580497526357787688030691807274458849398460345212525673773733595839988424324023969935118014373683481607369570196545333523708222808997245718428545988020959526191455183898460227377542754545737655701787274595238783915321848669001788277915117880329138705285502174672801160267539042912277763735519097636412742255188523330150625336359489051504340830195718755665359235238404337372770408205420560657567328430876442979990249191353264777721100341054704888956858453195833747795792887155501221316226942078299887604811958610265713130224242142571077746760829238043539689357123093217556443917305545580934941420311686625871288653237978693078682877638222285673875856467642458313630774733489995915184818583648210115012357247268221018300311099445892260465763036507789608623102766917469247771340591533410289309532744735231404895748268348196612024647039475190709237563242529944018157878009172415933856412521819025455592980590895334071824836462163092302528405706494868060345825579132946331657782141652869560488668972542273281628734591177392364701357639606512005480406960050805321138358586543103757495316455731253424076375651403899659978715620489489824865364201088380727566933339565095759226950642560172692419238782180846589175450482409850518256170574708838709867709252647181057196726785868056607088283767774185698274078897392089091997053706290553472982063963285750682079266015074671845801331294695858382901946153186949213429740844235403643746241438360008595849105262925140510849360784804546708451423099235073364106070589297297074795242014678397003686810849706631653931082478332161682897492025258903831224948219096204712829423108411319987164840162829110574815655372035695430954526663731355470859386937025584383020902117404992271856586542586811427282098799805628881529313404662677569329122369127268136366430880506603496126394296266405979548426366145638268403379885843840148975189532418449866623520916844732578099905491662677177709404744410200731678227717810067126050768572537595205810877586290192355442555418490037018349579438390687419975501615720162556453749618943662502812199504185486371777541320255671109993780417610932127933093388436569516506924389183698391465765769517476517816422688821168934860789382402005189361651121121669175670990434684347384574157621185406924457906688653538916794620388035040841496381790318375092062278351934895102449547355872505218961729655602302657944995805308355326767551189621714274396997080056184452970378880614130651262842194611282672511738046367505930692703791264966211040854912807212104759089668142681538953345803524531446212639760916994643771782987434870747012141052839962241477916713624879319230752608443771402604006293919383065778746853463403117152851174681342751212070687917611561556204388433602873693031075231842620727893451670385536225740553658964560641299892637332639484775891774537327159289335044053309708793841453689035427368040409509777998435619732341504658400133063473256856206253487081648074325288426444664235796787640841836703950522341749650994541381821928799386956045289094368027495342439335798002471240023989481870453689141414241832373282777305292287601180847903665517161332741185899683663576474617738686112508683266516041048015961561491055345737013536025797656762877369021309666366828383499499790444148821390037654574813172201400903786511568731935959053209613043560959013463894519876815701004683184233233592254553696625288434188685869193619171782944832108767000333080260842283855741222782609269149861334504524562781082244075405711399807432686801642718161723671339294249803502395500815000563950374826875087588157344463520351663010499629228797352959661134003875019221731385016384241330678266873924215092857312546552499256618140608227908537500647916993485489272623880289160518322057468449080972211201904343583165521908801123381060616508894720689937042492153754901529014003708724851553183609269401088283544768414784485555788690137139173033123779557297022841521528800706441937126990889505171046068040864955606746536876417170680443175649189518373158582761082473482597328085482902889453879347716470111731118593723232955184123639390035404094658572021875988074212114007511974466210104937951720321720032589505983281031180700032997102602764952723847387296456929836327307638728498848845133588674630571260511106981113953214272890528953991274628367134453669271939397616501566827771119282599464955725147779366515751314284307585182498817002020215159509201832458378261080695358289690241225610200297420937656788002515574613555221799888766927077536252431170776789163088639655804138537472987697503069631052249825156949555297180557643367127253430847025025809309750932013204992214946749109581582732367270402373071218191663868852287929067120008882916082686578046030019626754276301604549974191166665301795481940523796504498332602681309181643376237751111426532026788792182143877879271139588626054481678759740693084140189944708123168105926643886440042181470934233122952273583780221779864911031436043397898810122961466633829388340377784919625499048881910603124043725978137347994875854408476894265264533521403761537692315534739716652019757431066554319362521622510479038347503663613080846286353593186690080045463945277979992570928882603227960387817661683050031103384126724770673961752197887310230074620112256437889488909004525028503595892116573847131315915522427679061227242031720169780499207803314190198454413171679106260837172752977014647743930609958410877006092029916957178404903744868843997524159808559388204255114021550742536511118410998057739972612146242158319025983417787007635103098308274238627106199282048839571645112303999391001536999271222568987885156464141687749597966717309611790330317823911724697943573952699185841310665265182470320798033823405917632400916002021357676561880545559204375424806238245939823778468892015820496755857449139756342705839513474859856751647032974393816843474577051029938210826537568165172729551768115336871441744852441125592885073301500448711191987221010969713206005573720630142915574201236253617201535431891137152451687562962872509631026774569750805334250696009262010593717044155987563495409739779064228560298164632832848697467284608321009683383545912609361277360929528833455016945334555071401688948739418588975085357169291110174973416402118778632283961471247735332186890878708354141609450926712774500066086391132566661974535478539587375580834891014530310295434405054007023622210621323371556475783119791605041068743794102906327886156114453213301863177003213207583694791450782208167899314380759217752585556863485273325897671387965680568496870760782283028717191423545470634293415099829963624619049949674869601539773151294691664950101849717065590301121411015208763574214236085025747858642089517399074041238857800646086262592386596560913355267401972338265826235307357417812893749625358440397108594485543747631753857008546157866327136050748208066517297351834116583832928766431698943606854524096934275514821502430950115206561851635979715802808813258345750521781274060243386393026389793364433991084505733790617825322195504707466333064322085274773688905982881592350447506335417762155744448944345793931951303050977954687677924911339587623869995903161404357864578919270299617597877038510602318829317740227427814245671490533502481694998540436359679909745519446116153604434759280888011889757910959220077911553069995063614998895693056891784845907431274685846315146378392224653817124369850467340180486013520019611133695569581328684030139853967400326141094158700785311857260008330466672767337914281225264295748876871285361953077788417963920436795756645137588778038588357735612772957108494990372153745258135182864245808229557107100830425169263615079213151349174697602900677425110534794734131932723588060836825117947817803667303218599781738744200143319600044564057636980818584181258375355996773589281061167605941105663051200214657625837502298091361702696589151146177557363595893785258341736403592109225324336225037837506211456697616345830385570551437230070952251218016487678308911097980347528156314100601353239716650464695362478474521452107434353286555048290710148395656547136314538252811422910751334592601766667189978840081551960269763879090752076438989163583890654268202953618684658210655708181822774180516052759020777045271146850842515542049156275537661162175349031952250432274146059803624186016893801914256996605722293823711489632350612867648031440449783547509778282903417889215568034390974992828723407626426877999964339503321811031099966577415515333232513237924844391105980687257582393781375213853784038353710759227459738119057000798668809767821215125882422674901105459240634723442306072231806372852700086199555384587186824497028969918821143755452137800925601398838182029687945830381866408517455271848131643987984050160014257668929115708077953684278155584520365013258347682632447070957739444024591168958867144043604735327479425717856306577260120335908750906713860701487659741248719612409011206520069111972948127103895959063864087967350018129135816912694804067838796314166613291137227247833756267456926469414796819494994977168035351652303552952878111234636252167496188759309860223242025982294472642264937472215763417414254182346607323970359682871688900410099925490991026990132710957738509891526090627361974066800343883409643109486890856182131991838589110953760327388754946185421471515212077857673529402243485160364166887526599144319485853863263019518791312770099914946446040734982597866384442295033156566804416420608792348185973474530940572849406738606609397550637761771064668328023320582924365348703534964476383198856639428442899829231718438235879052877227279549577638629375294945290736945815633917043136881105132211244219188825306548688634793253468724672766086322968073715855933314356141466603089055926302747069677600481291483456912339278048035383963264026282174619221657253144250741859367725326072934809579646101708377553138517303450656931573708106073199210261494373026325926727826181598370465554662462824905021255920685898116041247925116048731470430682750345720330709198897138859488873923224597250497097706213155818156195022744288863192962905967364972763367099950831152540817162064312550848890736616182542503363848248577698165658495569387036764526983738788527497535675803480977929407826029652239557284852444242560560249373548484615858193751064308118715761858912815532104707441416548746938496275510948229402759441442187300667796800801950312981895782145151848466720647556371001531277566620360169018293718073586015094442843663181323861835015218022297016582284046317640713599058367389029649245390467171764494638777842639923748594262700209874270770259696822081988132351854409448732549078553446356307490349898973893815382586102237569937120197880867203380537117082413369178215307396762943115991675835822673393485246872727487856738575101553216556623215105439596097131649691767157981036943555961012172451426610212586934947208832601066650777193177149849823913059536696202548194389270310748915300042895508706828689489671432537891026726097817580114181884945432533394074319101680949532752709497330831571899292552998120371822883279278570572629228194935244446985621971536829331691555344527315611889081210103285716475876789690851531618928839534066980635389600378414386762346185380597755925976513118855390075563023512399189999168951947389305161133320950660647839054335707124942432159241051263028793089666409772813556790869699803064190068947260011353915270757347157471857993669178059254477062046014433808169128369823786984597323766125750866314888776079940471518527094474816932597756649196951529653054762770057748190655846097923382662665211336524404416129149153282242386199705016951157551838165489616924959404683980255334199963526801790876746917849932658998560712121428286479911294056859375546985200764651364322994487105647832993144735547256680864996287684856346939038231310508816931987758187217620444741410952965873037471517914320843823869455549773557215610359269908445227206495846131855141857369032277846671632593748028579450500316872100609832317012888424914847229235873802186826304136021125075411405956380275769602128241367308039623765747859647879547643806044139839308010684997906671975014769994032944183688155867545763391679935276561797130724453160268946194133554541793284951490012397027278782869064201848085520319294031586280482160108567559027677685116735451749964056882570744428139851934932437276432427270727142841856730570017898594892958010029564069108334589230208693923468993217379198313352299638628920792238015494478627922155725865216219286111260796250187406464237460010350545826740316270873369388205648150763499554398273934026988729774459464289696552577621858523434332846963666970281264153883453758555670317857738057705854980113054498725564230407617948011874877416524526893690704073774141860649606550780184504765962158198150010912422044276308768265088804556977607222422254301266742185828073776888661286365972314381421513733207351706516458560635660826106416827780146867399708255865886224823950580685211145125390449604194266953538670036218453741828916455186690808665383962579041694260200499576309520526748029603227948080653802639740673992867092127685156989389182333807244670167334831122529524913459870963780562581914066734099537103758182467990189495580361919512067573183389975007564014122968260437364979432486492362946929580434318806529360879225442178272459462512614779041744151051961432033406103311642709335715697085899793329226654201619951484157705616962763191210890822026265267490463544320134596496404858596060002698523489386421589032470223718126108578134517507378387670561181655771998939401677542866015028433979321348724598912805241575148233294084775071915721992659451167300728619705408071963325981403942409893770583886159418118858975205549295817138476615961737007987244530740252384698102720410119637343162295561821205163100464207727160881233247936219445459817555611314573835336166491393231392138324445226453929201109648493671707189246382390655611049539493105721973084618530437440576925042817423169892732504644588167248688210490823719748909670530310713945016412031973408394924354121502725153322025491908289388350823734839516761188263804073138466222738682467870245330232483785778723324188175328113721394575790691463692084099488036156596508138320964772506499416243396167022887648404234740562463640926773864117528780835221507609262222225686108456900825899319182087250883687417630275269275401166483795118806797952415089480204865596291545328733259363482202055513248145943813322871032943230070105710842729093196132527504319156247895843775727905593546967795299757444107755308270900784691409417852794326607787105840378345149948276734135148107707171290008250706060820935097735746794337575693986868375228076363527121674831805399642078375315276335480004579329215293885203900857070420886826322019650040558086995659223026071714344840915298733093205406254326958753473935113545654507963958105937260832643980270868301019448926719532167549063934888885780906779190000954159374156647733529977886090491036530284423423609172421714349327366193067100077072383486114266581082651264778448336560777609735420874687700018001161533853370787957158993926166873745116812354317364982613385902712666673475985633445781302786602480309748538686961821588884507027257397689229020150073387781649476349017223012316696777200975674720716594910509339646678486963155945684129876011813843141099582716199429354744875724575971510148955117474569983358580242624033520492447477372330392696175862209329658910007037609926121218194542654623171967805468174472513211879271345265958872807937375988621313594043637662079967267636188757336985767757906871785455217975616398012307069077259062987350995877712504923889728231376693602933321867148011333858854591869285454204038407746466568710051536711379667098023001214300593057062681193914457103571908105550167201559740075792874114064737224833615558677258404271582828028904423813021445937385133707084643983517209754244742555566368107006898757085397906388799896896061050732011380209660099158909796110407095218827157985299185224614285648677915245889294239309844001159140118709572338989012079574306252930209850927273341965481312539686491485276694055171564448165370575758345640310772620894178724303323593972129454292510154622446961453847083752663480536175082652895262079977822885231348611456734901056102000670802445138383300340820226982442105248623659733855428156355479843336687062437777108112308418221534839262019677302662779919025265549864240742290763831861808594506713640832244959936396253707910183224119051603193735242598181799479776480890016630277481215957807826449268615732729258477509479705281474461018890804133915332347819066268186685707799310206299680430595028063766125210774503787585793510011880887208071275955705468981422890140055755925329875751503235474786014865919296374228304449713610012950895893575452337704844537880158953861121446092648548235780305195682804800816211472020957753297876195238060398650852946268991495869996941584736686679553448842484568546559478117646984192046047906369547842345527174468975939640059109525662056053511461837553753784118259184761628511311764054142510047901093083805672390648437021891712539316535575618154363485763078256031442961550275284828734245753090905171158586092853892744541409018777176596544155906826179733442151016984087298705479166416735264757724677345976422582478164510083582410839209697476834263283595546726160005209992051024296898778448852554211642739347090430672396693837000785060512116554824314412973727849448774936992936398592187308435463164642853704661688228700340863388693368510894753601469636441124381121296227967656556943562319721331874256942697370758576994680420779755556722412070416427588051176111108696848234620427828536380132274687322973024036972639864930452448344921314795444210771861431329881638491493804119498781311059614869567590544091384309360558691924983181121243444634691363218328333439697154178355554247921954385423668382060176285726243818391467629531801257475166312993950415378961607929140729644126958719483217219990302126711982807243134330012756384505104580988066703671786436764081924444239487578525999638350407849730000117569676257598335420040800847253710112642756911350295341721397380056121550948189478399874823945227034289145804651904110371557163195294305867239729910478213816219730613739230011446188909261122709538938140361451453838991532465989330924950799212461630478350980444270253371619897925439190117618520113150354120626258132925568410355041387977824385251947788973021475084410021613449642328155949575810237056698949048671440564115017143865431169693264061683943039122210265178206597857589703923332820562144719947262301500143601223612050851380385531279894847191022576315494524704073270266739574924960733022183742150128699424596581039474532993803130701645476526239157678623665267586614206870821758344894701975942288094085024942983648922927321884971920869534623368918588068115217873763526668556695060310194790351524046566730129056488971096964031637927419704248901710779728743648742222588525901443696630329474046353211941400861781923315579659465365947096395818382663475796132202731606923586673712460852551181566317423431401870443234503902336462500192691037428473753961225190475616455087457145631301163792749887566281005631330354716080708188854507531788481331239048958918117131743531433943368459512079267708283704922930459067547902704590203806420079924003471253910540622866210930696604238441946679110446880327110274346038887977872884796308862506196134057520536740165017821922295424816481486333554193456429909991733737842041829369915377847229326639587771627038379532369621641558335168110317102943342505318404280013649053358819170690203190382899812231889480645339623826812674814291830165295777536978150611366035988220611158016082411336003234278813701863566739682446484805227217639159305255701939929002838127298258081205345802074614962778942769453605908456796460736911176360633545143434504467604356955351866940660544576112610346155353531189814165346926638593158093345496495450277483836043258317379316893843551177087199880681317297981867280018668870934178603166637672934933990246734306481226627930669508844559352590171006259500566153768029195451339299473065633880140778752450914955714837125455170481001489073944257776404771495253977011615316177503419397091531523772263722737072253577608778756356353139401271750524158554803738767573740767772074283208739804631721979413141126000760855931819124379335784529853846792636886212712130871839687740977873940270022628801089034485173499157306145138090740731969909027743175039726127456231748595068454548955932795276258151909132004619381440267197622171728223434495917687863105630162352140508842569881267675944811159583385128684414879431083154328415250320431064603260425898869884104159178582387883633197969385438332785665605315432420918155101166118893584743433618097165022100679511643452457009260863956831564602011362219381804662466800158916791574054685811052558391570584981388095003521496103265674241856544912204614468037419929037934975798950325797135133675777510012269358264449129845485130079004373173239534859118430881286389280366506651767387752195328638481892261027880985279702994697025834955662764373742095273770891863525786829372781643753367374888117710424491091273126956399443140783107347109603944479349560651062968461731651229397951246464756282925693791620769889096468519045111239876894789178196994284749848470420511361586732876740658517559216292365070024402637777675557289410317367681398644234730577996964721269629958016277896448775843270895687252389570740513074707404650912750862160751770557945695136218615645659124449042264926632946812425040573679714258564177047934792827328474703956106181591313286393861398751597545102329408021267224532440650667102093840507192978551993101640111317256744961527025121681599832767190302480927707449060616074806755910899926619644710108059743666138521360458997636618303282148560205383091479772049626543895083727042337111383366334651840798821132595535816219478176514542735032156049987758578754158454893722521175336530946105296664016091953462636395113436530630369677483625265688266166377987888466688965136373678391257757475134862514323154671239593500838738621291025540102587761134741695581821646993774532354618898036773587918651512844827033751502327577050030966606726057058156497239308362381107817411085507352106244338999367244323039087538975981127419295662741477153461454670126416073182578537088278695821802484507992783887394439912635656709604979565898793376578034299335393918638203562897495985647413960863180206624658182304097444477994762542215072604099320494107910592190841829702511686035532375542915080094879702831851519668167725838813827276369952890527022334731064423439849578775335937324191576855889987703516744682146468340636941760949528080145835573376321070758967153125850738426675060863152276913260941991381487321413748473728804182874863620479138126307214725187798795730170248155721812395366155789155317297361659517178717484279939509518102609933584258985982306132819653407122179803753429846780389068851825081967386225362303912404461472950608972182621860465450920031239438950446551263979565917865538435762167690035073242248762712600609805724278598253575288904282433708734935281338068632218510605032837564542564533601378465464862139927512433953883182635241893269801612454335847165066328395444950876535572110193811862327116497345042110705761727758363398437119855715344160265996009050282329001105478006378692223942502110555683127070604906615079426608110800130042270953083179690943405256001917484007748972446611017182830327151973850798452517994642353610326087525524704491848167596019669171813857689406767167738768166560440521627447958109386315717008460158124153899419262464494643623584410249618722257688983868081660011457222914104677798213936775522795507068803576344091520555848728385861220257146277184242767724169383196728445194193820077233856026604557166328444148009147502653013857396458725343713917914473743059839439638834447441382243834057582067598368988797523927252383008570686460878234296065212667267605590989152773134377178086909707443448440140258685305769127734229914252658110517761559556886673808961132780929614406997035739367220914835894791714738892444188245082762748926123765130555971652081359885362544065750808376854576150465196011046506119857109866752236916337584842443679023355553028311948414101327234183578352163224677038284947931797828619382027641193926610052231857103277329770712890331699098669894371614974502232577121065934590655455790628233817878052211828462986529503640675123812090311107959837932613732672104686868717625694919979097272956601231629934744245823130553901372387162684099528021122985687619068501545389095419317071438307329694138424902171688396599965747643516517254005656967411854339062137210266870159870968468453385941477760347852404314522281048747767465723508098606444261368858673540261377711264592225559527506514751786606140966909718634507409064886167925718071385591851610889386308011703816699810963428797810704805122971986201700839368207575026302947721828340292336698699334890779905807663148371042469882275801994418173474860698702635505732667185487110235606833294282075405127032954756146911052047745791787054401363502902239188486061762550046652820004847144224059964140394579127966113369974292075286723712309582100222392027126116966668945398279061542672693433561974210971629993389466404415181686618660932691691651789126192855081597581459575811822165808419382639665118273864986046095694591608533512924209515862574555263426707532172479764165948495097949448909484385750271497021641555821685501612540507548765688449440404737341573352984441918176095187811288594603191131557985094578373881755443870498721167944057941003151439284683536485845237857259032200635832881330933396992290335306854795730548568776104913695936096403392389198563801265351165908401416620279597708945122992222082642633162430017806883989130675187335848914084331035497427078141451872978235452029398090292157146301397236097116852974386308101740929538865077798103380236420920930235276675147829110626008111538076889683541893002920735956844475389486821589668680169739212416728806825833816448117275297633324279426914634721050092054608784117056843071624580930364340204082550899272348757912128327593642721130950075537239297740036605878077105616823023889179920282183949850423066916167766960989796083905182933364042503958266114040813349462489365552957470144415895330171452447399880365028506601346642036556478136677764069703066612229446033539072087824053283375970901084326696435064077811538157712229079562232992468228672928980967585312243512462179334511811284316444969070495967550430340871470942499204865740799968822987818832279506951479220955269540055094077279659836985270620032641788261481460734839523149975714155273397986121098854157347230193660138873695032911120991443388141455892008906544659601839181311275519458597149147960541993665913889797988188041268283882527900334849237193842235523213499264265073635364442674183120636782678877070657843940799155389215344781946520554971995671562518991639893388069537759211986880269851182814688692141693038871818396757989025980239375483873725127610097533073690926161795598672344017811654640135514523119868609774341016453612908363596227097082939720515669319091480195863086019278337393888916194368181023094943468012095459613364404044758719958913325179746080420170189750274248158192358680447028734806401669303222625110696475763305078564059016499553211715851638803824293794554192902199963662811979513597449525828297773465868699286202332158442476329873487247145956593796622264590820001679363773472389760425227472204550564705551252817271950672828361523419300081941947759869252061370078221434938736234543119927536428899064283396852413623238151325784370390273192868137883680513176290384119426054544487323661270578982141863006175908559404400269682216451400858825881490788101741429298340412953737853286583457676127687004331053487915113392598526650599736980385791003025521880272421641080701522161858909894894388605132171558900097431237373252705303652791284119681040353892670193199275741341401781160952678799143645723562767639855550423863725544615766346980310147332036589145562103718846555767517276825424843640357936757362180170140802209373088500981579165933606517860958006892572063505760898086758396179534048318886953163045617110952911764159336406203100084324431083852324657517526289501391862576051245001912048891719861886076808234994234811708047212004401434853434319791552291685629656862945525967383811078958348767313238992657768936465021471550049036461696446089272750478636110155188885341763364020042660898302912677971964633995983717895411684672986109965010612150370455397532824650203006540061944705754071903241038190407810816946856749629738394161343856458037477441177735073701583725307058943081147608761546404799619640580465578977008511894776585683871758849898088361925638853857799986092607854153630760466965030832424454091505146261742953789491244395629264817812655535637267102615124132757855903291070184219223847827116111381087675255604877901223582674191387136062410406351030276009790796129817617072388457212023667583428655103564454394699814143695452660286607102664068646942431942131266357290294060243255915804138738270632309011220898035339827771604292436367994691880235643523182503584807874664407616991130392844853769988196728065309803787408554267069729143022521194324092305191290730364891430086555785742611535086688557533269716981966787539391856995635100731093347889140399927724951699828989954944101679689165585514074913987256997815794344546642198091678274097629167192267420349363429833665440082623186172919281718843053106362569896031161772644989940197860362382788242302605060496140074525416720960507964449395373177110458853968277925183327506641364383509967946575541598035019091607878571846685486194880491648335040181892473018125678485793747515408834965443395071264058016847400391295168339079612687000637111821388884191302958014551779055878093504717702125882193334101407142568393122140242304051205282661162314240204356772136993590468564238457233819163733584196315502113726006827983842047639910987878301734771460755384285634372048780674082957075373314941819923374860309343844636374507635567903487056296604092126331150817650120006749741443236781160415553676620173762613165972824948214570827692967770629858098557554819728478525331457942414198247945155962646056144729210827059314256450566217907334445055921405406458108387126564567701335684287590693565481518812112387823617914429880257445445507877589626201320002329619383233880195908835255463588792212259475696368252253118698091641998941466065660478675685252567165755056879890582334235530670015228485736491561527888223056526532305435241583625950046005396531828570776219870758775349552157407504945380121852732264325100289221257206463554473573979478917708241235667220156102155255065015237310760532295602101916300497839134734758869254990478885105855928445196261531198847219944478012748018136997006216584788529800654925346352553579487181044456194014262532276159367147653386027440095851829195596045201830887705278186304540429788621535913098533800812872173525698388330148126319883056927258549201360936366503608410653529119866042121404924460481008765038560355284682253200604121702378682558422749406902130153235001605783630900841584552986580270314892003373350325759128276957306619212499681992028098851830769986950421410300173432304348671807295633356784645515906781665062157276028142851348751375625456178486913227762124781920807671717107052093032124734028022792680583686364787153575918874458064949052497551816281325796677380019021839539972256369009820426603155416937538772566118706345682239586662422466519301607407160258799907558210397798230518859518781758238100559357663302436919135888054487295745523249022623836659086268224101027400797320694265199569541665511236292439528807100536328416606183026116395043283819772666726220769904926795380433099582248127042251366563939785463852511627549485408725215900200959772808644115034377946474033425978647162754226082805651955998898134087290594189202951339436119408805862174375097292145185700788913497139643298897400641624807764909121883667738340612232687689122498192323924555562995592230249378235050961580569930705141630810792886627968444264833374085156380214482043099287536791666564446019255384299794511619695394625500942664077905385612939672911095043252707913544506841180953071363745888321290509844902430891910377972398557128788140491306549750529119773152546604561342796035119667578462177242512530611941254527975686093455266204132481979257007000513077845420487802888606524431929829063076159433888085657128882815689749034986958186865807497332955579091585847796764587076133308376339117291050409173766262869286480053344777200418816674570948346476362126547935695877526101065801886565616684320671519765733783374908475002823332003032686168051324459401459450357229358953369231740959836042582063255981806799864674692781459254833900775395590764245944347754100078191602071620691144128890850461714821984636504748120480670630739999208368400772706806298524984683708939496118914559878618617750799184578517398202571622009459283845586579669535814300171180012405306918283724721805305873598556106538387335179731465760979194461656022572327576781651686465338370408774179523491796559005662478839528348881865475353572331277379597366693290470979127382841174949429454611965804876809619514738684429057036899174452711176815595479077555055820149249946810251354534818689565388894474687475832296264855222427523030016833050795930611636868524245953238192267335541843182062646318483472671450964669857845208661205969085249897223492500924168885750530592365727769525972589033289667774930296618784617175632487363875228085578082805539101463893015408883967430391072533067925553095403447339137312991087451119471020751891536574159793904187748569292843653101566918443647529125938074561793040418527367223601516551726544570581307376311132946442424627375548221068161509013890799464655279166377894001249118354248364341929766420475843843456151797744731645388616003572466776161159456433057040572417979224412116585844496190570557859722852895045510601317366976672210954089346148818397870426650567625131711544025849408747463798528624065869310971879095002026273040260718816619280470059985582193503847346911331297481334882802981564516635771395354894014302684415261867858336561131585322926771280829894395445201966841583327135032316183976521008107089178980759498048904668214098431733173697558843988007228747307867365654179771076072324441797639519844028952968937479599234212873418908023732970054902062905248642425845181456897419352593377338780958658643288396622932054033434468907690526681834274136152597762047790605770742946538026743155166060253530385052802837317660868055417162167682084938774431072286015390978208738306575825123932076363213064997033913278645087504261668203609949713289305714145093110643112164671301430919332937392841857120402473075673534809737763766200754396158010731438984732513269376199226836045952215450217386888606853310135571104347046909287699800529202926315259034337830970818736622542492428260220801721306587953058900087557264288523577972088615698160186208385221093677722859555597230943651945410511553413672791514382606675798321991974336396635150698219766256942938676420949485573149117726621094341598046437350218947148376385660074107144062348744019052989075651988729107280761193848137930791146090818164944891517181668132053447554208928549469313873459562600707870874520898154412171706138663953493514213608474881932362061357298377355450140921465750862582109481109422566166989282681487055768440073890810578578396815427741308291390430789102057392338575481583281581864954968962163768352671845921572813862889915173313395443291392671607159048880048952323700987569706588058697046903936672704818970368589119851937915485908824561373996615579169514170869444003452793870060061400801712445264057156662178666202764533512848079755480555439792529349428003501497053536943674925599385357639159627275646836572815748887776898220631537163892536929166775263794030999945820924326031092571818388786061730288095866220301734637510911192885766464531300217906170275383533164623570899565827765832255471346864553931669766892418236049444003578423450211585468883086315594948947955444843106993668868842895237305431373842661433275796650433406250418640723487204944794673220595251949907367485415698686692311077425970678118833626658278800001024073147822840529994779376893720764214062775779406792022825054653678734705339773442078619079971833576435109681600388880026097115044787013623017942102078821966452888040072981661124870085431926008203773696396307212656784658986169796099342298821758541367973698740727793925570181636926219947650236845150128806510122730322541092004348884363373790469644523955133611492560829033561092720535179911525693634068952667020247896986202429212294410827136558658257131129267812922426145235742577642767000273221938520635726647292252105603928135530990012770822410114028955282941409289329402856360785861274905542420659682760952063200365834492876747801214083801378016726768439272897901132275741003829522426240880256924349119853437934760516875060582877725766427100626316671884442680067404939544483573372416114926603267554312214408389308523617009738770410964442190343680125356987372174468183276876210035041607002574446408749939746604538318257225618429788523223297678573868511219502830026979521611939355880673056207626164161748039590990284453886654402230450810601660487215342999361616360765995722962208949545479610548532568297459040088749241729286334436118028329654815231615734832315169430390459876222813154199388527643871031536778214717123544809025796348876507281643081150021168297725713575965059332749461922281806942907812622743592487164318100483306252297607754159444938182882051972167497841484016058792810073198418487602714908733580702314793766344329182808212950742116714178684848379000850126402817762352051778319363191153074805083402739688301473204592538427452171096831728970718834740583264813154132526447091338554555683808129248478437277943352142056861425047049177415584467583260916003906318276669150645068873151604588789288295741107360184551445962461835569607468929059389341102302449960476174723698871701138922793695018791903687879462204642534370384931145170071559868128149445249892533323159627527680962247293259731493322311163895327863106106589091951905010640410502919610269632870295045737298501036727795887785698985453983510127240323325621854534322026712514499631720083442076163163215294996203305951617885048235175682643406238597393833407872871374208454183026658854615215375429307769168132327173736188596826121781419874569899531540285718052723916673251787006109626900182537488430362691114412713937202443880032876654962733754954421882295293785193159774911540327785618482123789539072564003351746031324816710157622751846048113663992409275194409911796758108134474998608285273858148979846939397273521778265803145047811376426722890851177625989802435101559146000973787581007095767523051312748331520595127667542678861300534720915893818992794184690047172493172569369922990916391437012446964231156616166981630207243369860877616952703425762254902525985157620674460363145180229848595561323552780688051536791673253542743623952101951739109255277042344741969849524886204857568812156801685766602105036657845320367763055302650239678837568455905348772487209513079637742385325853533232570105201662737852174226159756794688332212012450835881086795136778346045327220473923925409918513741465999069400704563452155447134600459342124131287815068602679960728150940002442190583467167116804481929405326870447170207044785371465717490818938451334506225744579866396419796106266542515279126553032875559222116188068845297079821880922505803452797234077229334441690476116759130113783975761281784777228756143687720848606915663072729699201382132543530046680680352142628805507357852541415936014100919714221569406740582311665209876684292507933762973093869014757744713297639564679280153087313877171995942046775066561310112020984004364550503387008951602872444303747081020710528530292752045517026729328945305992321622521004603915084839735783651810952015594879642090510304498805252480726035951061277128515908277665983503489512395806888299029770180466883038084117608784667254752649138675879801178365029610676253296104264864470841962471692634340548967334487673934956697571515947740772283489479743770240690677492328176254095649444140314978417636863641004415322948960868641963743740249208623654381601036753803394563270576493790502192275192498548478151882978842327554826737459572244923237178994374807184172379497015090159600235042989012027225121258442171399983884443404034990286179331045935169390399848335122568147492967518071458660014557032311078330766433817981500800463094584196722922615920672719011508704608474657200734171251684872326214017930888498110225404732065613457148151118701937499558516750421724180911185571161976333581778717394710236425893885612602983337150791296990413122282298981749360925377621044261338522592262482529786293858653967319719100508258850910053767663716822416604313540996043173218335206108065504961212889192536936596299111878324320397810888431850545330787670089480487950513006624366735294726822809153701992330526593184384839114997160151807616010505485646511711909500617386766801899591183986887746039008340678602190070312639051158081193981005084000892325335929369514362752617129430346241755218444377720133667842393369658612784520411034778291628708119308716320666435836904707750355445266614840086061429046712060707498431482144544714719775433138507381472159751248770987285719700701570496247126984080508835922507398808886269549120797902219747392435606970586281054922713096794935005305852540154415130276064987749073438068840027789387420972154986816033502881075136606999423519411284731554463201872750588913888273884125829123184772991372279002659405025846210773285976466740727167209571630857900273843478177585900180327885967909727502504287222385942640557203498966639812691243548074059826230093829618445352843694411472716688322271763256597472958917069283616124660972125668328709367298317711311739541605871559412515053099616262936925264888043849645976557996230132663130537810704060066186813618817070872480044319201875036223814041335810019461313050904526214330448226700061641125360273913707735764346265363162051679356084779311843943407629578820329579318259445701559193782072834290461104765878214812233020656068397990488820662902768772930928972621647204584148820861669207398995104243326923594947392456182994706086308090194912237234601450771794107426291925595700621193103752870538030253889938174701941104226325474458984864796060155396953792372697473199722173613067642062248073200172075671744101719654024869749175290909200641137710710387842678581571774893346527755001531705649977190307421050158496651224192419307746580362689413430609699649230273944849972915858095111809912532192753859822136918219008344891475452001356309181294732067281145625756166843410432576975574264930263695620252955708308888748922545197536242522326842459712062202812425219220800150276989024315694723284181028236292557593000909280429699151130417614868735513305673705394113773604240373836422802407478274775591613541609185500340415586417366178155373839707856204687169174631786429020328995616755892467404558907271380006717822203764770176502042626177315780251077196925422226424023003877084795134263092337236820670512164705264317576361314364844475090910903794223821823482816160937485827040131815252703434263816911367332101943498876486259176420835383725047581960424469263867103070215348171105339859520717203385661166026629369499790468492578662208003118586918225422735931173384576475865074609480583657082344568488879371352541933886886323321436352758633514629222778809797138803384711951843113128848640084195233772885104332974313805115954242523412748530033263220979747883043211381533176866347961008676885493258587303629479344672488747335618515016500861053683337916926438277347817748400191257998844923621997144957788217138957645942370875848684233797820914035596604280885633238929809304127156302928175621410971908561602728326704727874804792754646757346249403918472958134762161441353582394167630505161953755281108453242809325160703596777682183909811766003508677811983884843835162235621656072738316311625868389152114968667075357785342657120141891878895840769917039382055727300838463710350867215857413322653816328476366851780929461956660793220805891391573847393584246473107836076176325417102177756612245932282591539666767712930980400339398583314526312883760868058840141952027307919947234485872290808845331463553634206518109514943163231272433104611456660151194477130686085451874447109954372544623119267838622907743426052721316690625680344356021909083228012188655139987438627723970489383617901802557553512225616566349806204395153412171000512280725138868469324062232545791429349046180448695522984059894033264527244227705906621090333243022934279636602348218069224954889200077495273807085122259700109173197683014018657986207134972560912042835591485065550158039715295463458606728048331576723668541280904929181677467594253534852023784132353580820737406297568560677219387705971228950170223975679824146530748441793922662869151943939501971058355368075736398578546712664716810596145052242555582754551825451074869620115022410372453948326530386632395369853629639048883011761859254928846270259728448595646146013729882080311703848463238731411346319268146426165947201091263600398824087922336055726872552727390795671819451919017899713384722936379185511631460985381406023910974212830035284460247776396190507847001583674184435474124937703781222633027622084346515804376444360548435065775297129059254140797508931860766685620671935296435011700199881716687593862374513362137133696789687847718407013022859031409338507602101103407059656689104156344227721050877355207623494643492736505198709577023080084917879125774652718751488898482900507766409664755511373113899982193878586692010182494972519462643119516452772837363456533358804044313908175455177279757174909130218276331714985076686878957303511650168985412409632914432244560295093351446462711025655175001158247476852635806604984979204887187708370036551539031620791196078114591504428650483479288330440996857658532390744884783962064233570082584606697728706591733749586104100375896930951546786309215723522906593435139898604354371643791355813604663402481863304411115101975197565658334795942876449083579860014129606461989997287738234744833538697263459446551618148389389765716684197680501666846863816371124481283845602794837616443162028013992417756513852191538674943541767283298874027175495196218190449617891665166535836061879994067373284844505510674606692283711974565858383736663650084874500949128698216623410572111490146041386119555190587879601095217249725983264649028784395424999611619646691080232345186217847437585390161164453282598852884031638348023625501246992733171745251253495862719557097470499525337808847641118003241698382020442688552974852282665714384438946859507585918634224678454524960209525931088096144470278808639355569682114026646735983213232299978646752905681209037881681736664871017406297041227960341112623860784771012999511646855500216872356574475659033147539140154706030935439826425245699445953600667978709117635169608733651689106306038882805354386867445909826888905621512721562821547804061522659240665423980391908811644550622941817721550418425921331305719802486415609679301680134814425686779265973364366949378802927218584699436254060699194110947976830937664581204171608215168892109395284225788587954880579609976842313098237278963394023461451906048583804009883597013259975382361961650707246572438107301598556744550890828771192005229306658001593764367106220950220629323830247149066130370035606185131823853012114619314854870175102710232115070968299671145128410904904854075985636698835199628298974124152947662540439213786564470654200813734817620736090544875926277606658847842828382285655431003858236559067689484430107506625479685001804128057372525000935863330160853127020237615618918144347304773374054598035062027337078799928492240472418676810669390606031590388785999887466928804470454594268821178376268773656981982983543134300876878459934983548739800931687279463184020352832780863961210945523340849888807687625790324869593389032662354524968941107456491488893880766457436376389868475377382809438916330594505052613811905580420449992498695849116706915128321654678675511856500956851816544106269529738446522793905337314763806499334717639969147144800728736003769989056926464556710938344947665272650040487833211910075736536949716195089402777034445197721109914037409288401415197021680311151915737874774826250747305934177595617003799596297830902301785985183022511607541596116411295263498016628638218135573525715609389485290564057112909777655586761489884719881974587563941529040900468969282253733216773116762997381818808899779688159562528334977690379081563704650101047808769342350008325653458567656279660214826681452147950182722334619010714903712070097300281997766841619804880686826023014381801453181861799698632771902929164592396947966920819492442926913291503412303678522306793834038600122236205802457653430943067515809020503225899888434821975894964238299924537378109604310294526509034385888282452205371257431061289304488710442664543848287129809357678215010893344037237436110617333477715506169759086559591834867578692040345673231402693044963218697302147458777118100500233887381130164342971005282842455461479869378982440235770366109072617831234830363258501591647317879015249883814859822246420572583441807980170331013075304248444525671192796168066774405270354235367582759553156105091325927847399113545983958985075425093963587553921686368458119772648973681067704976615129608615368970908273362972302159395034656238282918801582180953145019273272315329159492275308764010977748919666753552311032745155858443844228029356561282136652334206073267085948561646518075920846114960611741018618914966127163335694327559041967510149466957693685455856844094256178668406365927114373653273824529577393173274503771603526823313597684173605823482505747035259967867600028529144540099163246709894376434269166704306170328992802493192200932219683995797926267401723491430971003486197100075740517129885162978538788457717975073019519837924610993424816930570873499942447610558599952116706850208873502496012471518753001148212446274770773176406831790820030057967202221833488024007561192144330289017441310222241711811376237378637741847719431047372239082759730201440901745267568377788280693113552669351027757789704757194528215236324811204364801359428340203161684377058840198372340437768390121460919885893169778891780190843626219793734204868926906428065094497829149493035719741836673453165397572951759986817922641375901627669635152185367854030252085312569177217858603139744629406971196488354994731514966545807187911261371260923565148427186435306261376817419249889261271297526207807045400348483184623105210032912486134068413661732802374071631663742131318553305089195134369300802602235666497813672258600235993319446321301756473617644922378934065934877355757645093836892555304544712295868185532833694758306247946919759555293080302689795744085712485671628149528244412954417579472278455688602716927193264768021369175426621860307671994757568399465649677820400907494138727064459618916036193588227537761507908108004799108260856344680193032254937248068053662396850335417530858506316737949879258146292656961734007408417725380909988576130576897483626194120146169300958300925884879985448415933673719476474870356268101211395976987377717845686304226328530953935383963886460041891416641590670607440690406859449410492562272503786954309029752056219967581214611297940901562324331890390021542546337618961518443864292288678683448811727608811748598027645608844696417872847139826132071884203402749699796637782930014963039611621894481166452554600590868135736296843211293742052692819235596131069049971685894562320649551211546908938294566587557901954531441186287940874570072982485591003910125548608095394454017291635020043429793339708828294953723386868932816375444369758587567325111236316795429701555354247034564948428938272132051210726409243260877994609923814060028063091046013534768795168420794664336254794057016020571393108802219898456344291683440126971663712272862961948387369416580825661993349914306838576939803361319172204255767027448545515192662246221099823195344291336348672994108569539238100507618083463167932574890245974396891871940252590136887175006695372651813833410559634959940966891597256396211456844233433417192901729784078977284529932519479669226386464227817352029052244867665120550317080179322217077033539193743890630703772355890536544880169678541980601351872225670650556325661789239334370149504286655978620025734347147924824124668171759650279439003898630619869680009632327444616547870014585843613646882032955158985625655485673810922480943900644724439692283215993711273195341785469976017168767117770344210132298338883895664072165614612158330395967459161373857419370360853461889919658985124309620916554761189926114234076815773455351582882661730238290115798358468836306997157985181922008317365545776749894989937790629931202786669568485630809592033682367380313012060065317292820649213514799094454415524847798054193766764242828541739459632934742394350005555587264286034665336661595261597483140212640651865395179999945930381797764654958519224122160748108884380676962101315673887515472214317859402283179759682324006266972663906986164651956069443774636666082358856061363594278638347964513545028063383888058641839901943274390340870723465402661382730060959493992845933787178176173296282754920798951684749548856189652800313175721109859663285330636023533949325585381632879265233899315115461469130229081845935573314108053752202312071431732644868329867728784789675876809954111821577972875390583368199651889482426004740129508558161265510855581442815924660094454833210243883525713644350314823123682595603547062875412109782079933062347469575163522509082570916204469978775311402791871121445639909843278653629070547170551202458707637674503531154885763914034240086933211328998916229332011335433355054955156139303702809878105327523748935054731877367255967039749655293889395774597930846250199258156879390041538120363274337795306591497293477641738331899427969955782119385264091967706252759084263479184666305581238976638687016721893043208477888110899906178386559034649756594766392009685912444854999281776647187317252308650030421179477462109507285682060668309447274575952216977884629000099622506503782361004570617289614127165860350839126933863532163948808111381285941844760229776225708158770450157659405980246240194397644658304651948633849917694139381615565585370109546868419727659044811894231249168374138229232714150478539837005139160330911094504919825919206465409157504447011534469263944307291211814013418784311668850522653656045122209203170972025833401490581286157704052724932710592333620740439321644938396388195870065093670989899766726268083871033456521191218429068044378735896951798595212111886505464963991107655340853767941680246481749769807739634332844042100870606030656498303834485564983814290428067968728935499572909822886448988391341587770288814743886032117505156443309905443859985534836181081137404393915716514948721505227257712416683189266212219022289462432402073273688745982828964905395027792033304682406014279359440820684017109073531253822921774839619440329967302785213436026655927817454121887014479871582689190882651538157266754492012302008143905607778383107302831322774160593266985191855900718378669738504274281529833950124296176428762448632080050485854600317899003328444019173334960017376925094249350770141070972725570706019989355677494798247351232235555070541243361203574110656436113172541940628790486023604710291270404194242252569721158071173497273209581434421117018350898711561925566511149399429939671784800115992492433454392473983678099585361090298529331171134985529066046853124346825649038246809647615096497101188605250355057574789598545310554911090800150530801188999870434064419329692525237095350853917054727740686073763141518052931848217016428645448809142862102032147479880288659611499267090615981398132086066890326073447025018679619076589468687202213909629590552430843146559024086110564680229578054535495731862379492680927406726353739124565973374870657053785210155497463769847817366741107449076932190790538067948991234528615174285535561132150409102886156738870822406053926963366503875246740198305438579875217824004952667846655449828098143592729429817125892411515482087149204199099775494263009351192710161137264571374486698148725389835004766795731965587888158408105554345715568499679007943010024077788519534900035137953868804824295119227811451561986854336278805804132216334377286733265290284827376491715402211086646439362644025295771269387215057516008169935571331552090166915080595910110495378448401516478389318296611983488179138423432173660481131864560455255736021732469904851683552447202546619077739382297509618293632888416617740583334159960668968058101986718073540011733749194393887669274216601484581856148134805405600302613877718246462225452957401144983558405703185962919977743172828521449161849891578768409090683545205007882569837154444959976353662240553516229960032403891786118119223063109927927321508491394132733249545191657244665579396643360668174572352488503593923527480412049672467520419895953846848810849304019887227620825951947554324707114869264998500274469584017315081083435896091882513570234775082170374057801403613937266384294364970355609437790644725926813085991268915116301144761460022409151418835335865132327837848762019676376600345467612013956709022788052290708270731611729433611002511381403417008010297627883100613312787342381028199895908119461974743135712218007122149601802765238933361409566719227695082262114792153275335109097407855369161910078369137838907835123662677900724376353489764763690165235764614021007219359802414445237638160073066979168557695056156134988472781171207374843896184026826945818250284564719863100957821769534711520991596441351743586505921125384450455911192541668633948842437479486423304529216228087319711633391068924677319162580470521505959075260116298821850886612532730188048897465362997034301109696421360151062900324087504689516644127394964424481111042423076285662258004853779343197493339495284058788422468236533672181119755208317974463795644450478990689799876766149385400270884191201738166819496718053493693212222422719030340537101923166724682271567335167390376247555743477274790383290447567981800061366345662172062451873994848204112364317762942748933677014117561679326240931808425293374700651774812406869746113318580156523312418686836311669418002982143187484704481113086936683590515180796779407169413176921082063956772232211110331514353147153179020019684989983062156503583052573907847083488042434481401639112278721548270162971739747716444815708562188101551025931019445714655661943593717533484305255908754647326265258440854991447588043454017001744490039304113733191138043902756741735037723493262620714671367740683435242730640258617487230786774597555077657204626298484208434182861121185531613169220719256826947276538703446810792369944171268915088779827302006988271802377305086146907813034331996599207289101787339357404476860529554773847020627983575910427060391166676484298174456077756861016488673994174641404326544424053029361611401983044522936335143788162854117417870077221936044417414816691938172454814523815530075518428994945902272659157056988960979455358036860297259447970183639852933337169047704659667699725640723189484566263554205395736743579419558345910347777135790580501913883457540965166737017142473579514041303391896927944145916501589826774152835096218779257582904641150001428433415385301790358760124043120085655988804441224787064606639681728257057653586539979812155731197176677346505467211838776824049911448724975779546217703545505306602296218672126571517682587041166894821812807942724751808186726540347426812542032399330352769139053549325249429095519364690784759616940194707532168874339022909271768199792588929229407519125922029051406712470720452180852943034671765362627474750499842156647387875441930135770158752576821123520000182100357291426493906893473601232462743917831517790355391231229256804820246450179658293544091248171938114513355570955044726575750499375608186792474038457391473046908531555137246823631850323638788664787174632767155507914085272324437238156700269607350642770753164078404014637482037971270788656436289339226687715323185046789828232914492139183947750660741411651579841612241575299311989469578755390261454618793485577173944060431832563703726220366280415852629270509561686360514631566443147280049874113471669042440475895249995361235108407409178776232468354172263030720056977525653835824591089032109816430892038504809665960284016162385495281836762114183593553984613562922226685086727762074139680956841621946214977797225396081528632015616122082475010752725998023394358074525821867151533670983726825066138634749472210755908004138723206115275424218078671049694212443931620160711525667192523667341454085164498413054766826182528448346694314156463702471713523226361333055494048730456088603530980851007307630445706134225557740397357085864613369612558327444168355290822429657156930323328551575511502581833202997076087410099020160671165722538760167181786367795934051443979022667082402234030471059877716777645248978244731208991335236929509145956761903971092284201413495366945797406847477857120795299016777769834910060208164059205931058952614523076123166204359592482492130059224020238233801558538358029457866935745684301223792574401527074228533014815062504448420390487961303477639331120709828469975874254048198560482922296565512175170399654617289014494306809162489921771837285279715103193411708817340798020122079381270482430241687095119093554515785883148369262245288673555149528310331490704230965729798640866208458085042382794419825403760279779384952769993237508873957827237009750862960087035006586489143210264733242418914591628757593160394488169220967532870301244278533459608071397778318361900595703888294630952517438553855012987918508474713774819494881239528354968271497150670205269474517055539921655874107923272846912701508502591908636087458156232032474108916395935431941833177655710426902361740493462392862281891936951833547673612540515139618095294202256400549910941695744380894072381113308237493830150265446771313702609513584197587176643625640991224452997385564272915915892202838939117737297522173819544167524156478160780550199167791892491529154718396149280221254263159810560193236678893674688373025034225572804974007438692280952066386439837721147285631150918647993925609653015361879615580050758434238780902416546161276456446597828094185849563324394510340353510978314333461757269698052284916821033723921176206233220144419732173698910639395994408557982750686431535082688604708308901845947404610950916006815454293393251234491469761917895718219160890213344332177200031060312362316357314924121596545447180924401021958576537266785388605787327007715755677080193475638662233042348940547138049492572707707001292623388911289045296720184241120359825457141272807238240121703840162159124923302441280735716401732268076471036237875724886826864820924828151937693104636967990078491776927540463113335504027090627317350210661044149870483071118613545888072306102006517073851812074705428935914050568404507105068935423337275681899426388271412082748567670528273659763727779294077024480665841102572567670554934256092637932689473930118970989049197132396933963978693878485410218125306326596026957479460221292960830034187150973722354437412832393215486140761460826389066001973716684265759172822109621771715088994543535551336062866642427569716334965838064783032819319855697699692074635937143208630432500737915215395799840451590578441396549981752332977112682870580149941086059407776608384261914929432290048801447545893216890046136261512961728462422732123728244503648226768774092281152628093402044143596574647020679006064179267077317050147467758324291944139247112527589069738928749676407607198107171811016945774919598537882261305776792447176842903353594855773818429927721343212404103913458944575109121946614765354366571629334649030620314671220155680440587856252764892899451244813187542629935324322962309354959085952604844620847334225676978303128468054532665327930607982080505529900770114563444063760795662218879032866436446986630345644351988342138953234748605579366102000733235842739785444055849736971246780109902957699822375641724320648148752570240889550275732202299593172770826881021704370306997440723345563688496195090795805939461253461667400967285116479478167230965085194652009769460966049198423593913430354120447646112544676276663525466112177673238744515053205360265184479939682932828282303403839060064192457800414185011794815682307091776115707268673289978506318537757681266712799026100564393952714207487813895980919021992956958109266663610897316740414620777147513005450650399235277501105617090990400141222178278867323095984952736990646191118032459518990912616086621763146770762993687754433274389762200043884283286781110433553075596146195699615895045412518739427315636221131975179156236926421279321660310924248173527024623028299392713681612674362227216374334794648496669111411478573038465376244847623501245422629242371613186371749982716363014094704209490837563224159118916042790336828456032804589712695604094577422108151211093039322449842732038307243034110033784237783489573293854053768005514474457609435519260670271940970448002663387711217040560760194352444885003601143780783469649262653362717854027093832631225921600020682465686180238320923946864797230618733777593169375015066176921310278952480303035190039433995195759276107589451254847892456381919769500739596696660991865925946267764702348715765185693595563550604832823596160094299479325567245112546310670810851266084276557987939570908370279685687768948831935948848471136604133808955070537507590713770826467707199311954843846850944073640718890470671837312822932542439914033234306978690973909026577954264411863320390784926327485272699384160200435365819034840936278400679048884688701836385744598213081496955748688128191076770574856856946103658560380407085930193125899390442500202730716599869451882765222951542463640950314523461466370069671333813755903126790900927627499818319368161323389422173402799574798046344216564017621464870588208089095077173974853093830275506397378164305109079221466398127408092933910708799748037684920822320986574624289877908484545238849300654413986490533633327720074723524975022908887520762695919601488443340487973035463613458356186898996980706610057750299738119710607024307027293895423015875452030760326702904711085462590569770185770360805123640127030136103931389684738876747768557161230330041755838677750632161013086641516893559107525836451277418630185009254872385559982283292598394972395615138904582242263049210608346489723848728335496036888740223214022606237062800471364341340173240740710133651118504983182458800041997619590890458834961879234029954723806858344893454225656053012414165499785781565571166541641235774310323253871416489521186108389886454302231659549834470819266638629302071548719615930595129432791740525956769007812874663983767045898387089337839015027904102420983010883196384317072217610324588660625251566322107450102453006711518528890008536066666166010901079354950864027753555032547665356682694602800374132801443471412639075793429845489661256688562766047412889265893718361766743483848082653112863579479061868403649978227232398975780216190774378903197236704786993591326362370352692216231295846639544052416250717226862672749949959282040312337106475104231564697740633668901792807604322113619211377324052556234401675508247760700412979656196238862716639438425384498140493868475715842801017103592537186564127646501546113870785259933622034910890940096211568872681432337820707985376040007956128768892588049937051784029806036593704594844790225891872825280664113336665903120335335112364531586454272270686756061763189709815130875714075400200804013080729249824821857824700670686808704022379313634698691937984187718336302538258904870611204993039365461217769727410898305514828553451892428069806018497790980806843917184059114247160151214092233125599321125416321041121874301189399437066641554788985850350239590367936778962350763638736851799632338239936928890265755412173969538445575149390214802588450933242145264601360096565838502664397237192815207777558711440845385456796195556541901532750979319738691125940522892918666664221375115302879351872290471813770540889260179038717562842886101067840301120586753743299753777868712191658102264232592938221994499956444788394541894230369025945767087142207264172720117130727495510651685202710368862775429088793364805327606871816446256746551712554244771642714794227699841949577359683857591255829518882022219214534584365641520404587687025178776605944890602441914791077353190641323841382677729781756938838810856205982744512320841696851385934746756753533258091216413922392482496227125917943935775892298289050971377870483919287768455828804169710872227690227358306390857226330331397005546958595450510957148098045787814893450165610209111722018149789582943305893199769852688507284415296029738490159312295104710282038890401322185613591003155529072365625952715654751019674958936917400586172959319331803134653158493145565710081481102642169782467035862174308685832715151303358767703041652655932378660854674955878987713815205520684247322197795997591410127043460893932813913986640976145386645198947175200969942867436750433873591751714117937326790996425321115124392877738013900826263040974814450343386915962374020509284854305227185446749157764775184872900094530378274061419550768195669085051542919952342870846077337073287928788269209059529898218776735454678524939072741870945803770950455272500567571515376951612260067791397023010282173604815819025945119185291115418355998086333193159911329465553485797382716434654517944478106492547638420787321818387805309772211617093826095536707467088154591112608609832235109488591460657342541658163554916427784271820772009739880274963031862575594811390932155165050772447850969444195060633371377595284031363672431515376013319773217907546356179991870086606725828287573398429820341189856400186457529345214894320001315340060919242944980056159209088236258144472481974306032172548153544918220181383176633338020036419716959121625062065390974073388543933690391010566093616564608952702307896856439347049331965059719630727417437059307477799739358742478573029805015651509155633888344866047188401704142113638431140170683997452366963469143504222940458225730792954080650775364945514219109836512645090702776703324318541542636042751522985766733153014858230895032817025706037161734592416084843966110370848559659984775541461705012546578925473125032074291572275895236430582009581678612522620755070147646557271555496531508382939583369857995992609076459162960237328689468391978242939069671822966424912117622160817840596069961609796732646760423965907299901519093273583510903892557725293926297750333149337432766041780914588963659691464967107265613246416828226451145319034999091053405949906276606598848635262609139275668924217523798218594860105049281634835439681175187687400342396599029644979502370887749574855347785331426399688624017647716541197280028989198100392568220167966362013978361681106569150412808042634739643505745779877116645330839900975142185016015920149942493335299320040474348532687306493384073809750043662156850324028066458801533294190091059650989996988109544147128784930024424887361617559757990793605001884268714365725648857359979134512700327811106923580597252672246910790223379116495693797205694034644237789733357777436951789964166332783022656905326093620976982206072108521945831243096279276183182291095944463983053059825535293385298056305088213213787198083553729289487663814281758449640261527629850572939497978036866283575342687228279220535855318087151669950661944961691225046882700626952464136512439773792693879046498331749268155255448391346730290202937408336615465847538791218813420535970685283379739487628152578402545620538126785719511482414494525537569791298812522862452004645424847977610459486719731599376795566287304634393896154948554363487358576324773988023021599829093535663425444988498283411138724423303201966732868584198104207391444692266829822806209230739090269542553892291996385677586806754065503583784035885968684720973280366023562915688344596928343853178061682584867042748360566971944438907892358270107747889554331791724473522663106553781061910190616001699356126010381642430164450579878848512953493992497750810580272095980286534663266549748776298419548138380956624216204536238460895120935724043372068027357530494289489173229912680752028862525488183507726226810920323320221442583245838020048889279148975779124709038540273088068098857455456712753803562820989564020815555402738850706132313994664541279630393157740140389349820291521243574134643798723313450930629964155757987273681742935417890687241270979831482817595575367240787857665343304968924486517912694209472369910746317086624152831070379431926521269912408660346668881599396036243024269275127019013238183325564166213055768277296641465038229241266097568919639106467822808046034033458241226364225378843540166407925890758632957800774524655539414880567606778108789531515085523579019967956654405680459329843651745716940780608862998121367260808597642361448801730557618399137598527157327320914136204343654768842883225422272241530212061102772608384545661664652367451124004171911809910095577249660812030976018086132895695864964877863526730773013802546321246215971563460454276091267415552636062245220812791420665340218290750291832240502655114135784220104679068985907398152595897847614297388744472432401800363430878695499833770573253533104119378920430252639077244068482892484475135583631621155438709751954129393092523246686436788859388929369636264026469580795564684020650642027791007235071739210063708457602661922510937586970902668149695334498377624572266484771592267727217776690842684525723497862058718169828173858342464405285265474727340333471742494018197036788145388241725826982497473775181741290564154267601652092492338054993339832218302822413741718327734798722587635581970852989312740753534362780299203683453089620698603046227138425021159517922083980857416660586952009242466850652899704333377349355208001519832340176497192906958390500013743430433149345083181589426179004462857461977643709904989760936547760326251094960020517439989467968028693221015759168436910174590452475192957046196449373311980830963174377938942654555303976998599076092696016839345336318632344661777772082488429433629834675665866599060000100748296182744377886610717413852515447184679818713519490749067905570094632535509226006977695184258289755067098374387272715482651710859585807903542857636060338564955405922269616548409442596201338322305688919206533808818427076859044682398924337284016585474825404099258864117395668249911937604638881277559041002649335795805875279738360006782634389537886795086565348613922781553375094080385586962986269719503062819681651097765145224246242992689119431716040392100328928756080498441179059323332802098147102524458061546419004459753129138518409874378148156356146171076049134519669470011608548805282224776325523426807945302290907849950595878100080050026600459711347010783222105263902854369307108213591716507928907849508003842059793992946766875985585318978805171205779096420887423062591548190142161196606668249320399436378057660803688976417488751864831743020794712179022656854000951682021972308240823879514091902709690309290789100866050031646474836045667253244069056897174193243961946189762987016128885277346640248391244826661442145449336329364202546219697954969563869173254223852231166195794542723641913075440536293417173111367070281595635984770848777792681912956799517189260841198738922694067407493580095488767567181803031655423384897420417103175209498756205857431562873219483626495711274009763498655778713128575683173380571966728711705065741637807388787522764521398515965678391834724473249339652581650102550526020540621418426462469102187179817991181354532204769017432142671995142348570375092663010407795697023051571726479402864273882724276173502640331231430988656349140782239620764187205544331647433185898377441438604804049755983414949416217108658922161826881264515421527230554258237324841291023828888056274098693423998484344390138350101893405868810316172042266108949919216947607600457752990115089136828914418121421979164286321444652343288573144869068409265757706028620616122321800020663977340935151074531259805705390529447667593920151228965756553831146218136570538106364307442440147374285586237081176983900690524820208648823789095984576157438809891909905620196855927026542483539155552910378678297315134463118927227409646844808027686544259714533655818941393465295874812613827306082958332552995928423316604566323219322042645105625599474070745612452281367232125157312331266023111000417289687406548608092632214642399829565275203709536860631498579131244963670759544479820679979927456363726877365968078620230485079730845909872680954663596059138510278031280481041054780297899638540816135416990567579846528047215461253411631943917931833211972904912542830001515694908842617291126480194276130840549446069766583163043481884961995948867092246318325159378490355415493685921733670095200596287777958380264132730473340210734091992336295262099409518449053672092705762163765249690333653411145100116456165313825706604587010067363169809250832989582989646486321859173175155190654645421553989654055278583318861285102432611913631978732033090245489901544214241178051933033705278713559188577141819114241770546253742757935072794304187203578286968890523684448694316324224969986280057551528773959654536631965378948425551526590118230987461231012977063375231849379671946172739843943761581360168667884637978133252744161694198676734794244579191892144767640301553985234211385383934168599881978098583592601173501193130523111094321288112888820284965140120778483563553062011319704706343544422406242486222347887601365806769087152872662911495343405546687412141985044947761534471347733822875515267494071376478669346863257853757467573202161231397530913339256538823565103781759065557693966508736062381418139524441138679502308992426650472100829704240261901683680793612352698475033819138299012483892682252626188024312063983121214891170978808345932250980165766469777772135438532533456884649448363882360695110674986998818702331318121724085802170621012252654116664474410134096491039059412686405514710543883690285328283934948861814538174800254367746575816425423544838709655344272326510832676212648237529059229466978544646340555254113505794908561921792885170616698614232967643332485839093596495214673009129442662727220868806109608285161789569029269831566939343727322240970595820919081711074295371119618243911411630092970429711470399610284689392334768042667759515845843689976026430734925708637333305714236963224465540970724944423432237374694192221283076762140989448502884702896331493682654018113183047911903176276832041278319362113015898152578385105275777296828826251983366049085892997801636466136527551114390987109179012171203752890985798423525447942614989664420509909296848366746910769385824645052449212137629932689433027330834391424725918607055069140720372488435012424486692264489321596722287115208281559595910032216561771322691771390366210552532704936894535576475111945580171620940826011310504812972624728948909088384938491661555156192227202937309760460879203032642221305320717675802922308135497715488546047009804525935204903058164431678392819331152421377419100873836360248025512159416819632576264798583819243243878132420516659455720675615289499157651137942059712186177208074504279061423532085320170739685260103208055394359030974757378799915569511465516687104266320720073666760757102055674375761778424520856472284145722439101354144302144120143219190895058021187903234453836390167458007270903025081946085125411251064795876798264317280304439115343913623827723774343016241796911218296443661073004935145149641072224262304135002631474948516018486116353921849041131017727959873983612885762174628817538900158431182194119072451684908340254658711645404382734482000963650278406872374186698423164696835712226195362932433889821621297368416520126674514131080150015436591386476635957626040679169170377532951668318833704421932481859449522712141699204523034769139668869433237125428966320623261039236825327128795962081108173798148171546808490339890360635196153147034503855029450720632576727349925548326383971578005751235937877217783480931776235556804253475857960343439030274702154155354889376696731845160030335784329154681462533101815503441429858691571182253681276350600895482532106841518451861217040836665513874745217386276649937730739041136342278876447589770646574283126111256718783560190640988525657989719438418561504771073908693923070448369189505343654212807951305022060701074268908338550592815910650690197585890909546484700351920508236972872229303201499704390789333626961254674373117288402152719724636860456759449146113814969163781543772504590998990899085932861146898185313766720454677784417296822639318023918008949941049993027821781985843048130971959533609122598328815979641455670960852346975438239568594570739524691107385011477865923277704179680314304865634919827121554085580506694746398905857792136835106384816516560606497704200218708143588384513243130598508706898734293294152318095127063560590708508309080670843711055215782792914661924131944756913929791665258693632016549263080709256192786772250060199882908544364717491779194113269706053006762484713254656349133071180968853160115618917050412425446164994851521034480354069979556657431835672986404160217473886724966690345679677777063073428035889210322376119333931435222090350999790778461875575517431219746240139581518615854699270122097854584418984874112500136207496534778996892727016666426516174036326826221456631424422367197286737805084610705725556969840929242337052743406279167286576336972713380668708356749452824617137772844039785952263994454928642012770525434043920395686718948078939438258737618040441336543756522891154494136018341507874094051984897398974948922018813883529056923266841551410543882568574906857124470016428444896935341244518586823667451410322737377749713257022156694908336144325489745862992651626158386577519412163739192872145990476722008753954969071113903405766605169910888601827183818933090188508835278799824179723479947571651314057648123479786847864609294652977086445423250135179247990832817043750841666263052885708290548409985016715975471532926844232758592235934671814392622938732655976700845203109507336356450566611255163950534254806326633078026419147491093306565690782435154229626205387058636879117960089377536558972220171118164346738337427782928722449365097524862808630661502100716108250558847921941406166288838640272525827658521599334137098983777160047800668944275601663279045401304568132748043333336535737528396479131648704079576109274082330853202757056224696339463920018075412196173856220192476245636008766315381710513794698565757957027367611132102084821142341504928336168920211405617694217019359159338787526803987194462942667849551437180123341459317637695364700720831350319874823672088361048484619089409080551797623711251630457022998240549063388958508711968957885497374246856294344631924392747879200940611691142298845276394278669508161836545985128826505064232691651247758195094683044757201540296381634622465125276234272659091980569486226726915122596849343665291977607693750486354129511034624673619932005848525036477869507445565285774966820252062691658875449550091484462433095140864880566665876595433899039041369159441139575165550914325434882152377828420393139004700810519111684370525511416286725230499251067066547712445688825132264816099363110353672899972098483329497870055648838391720147936416374452484203254099849296366796754277412084316856138870338145298233711567999856542734353212776658255155081353213668667872854255940935822939795516430059887983966958981055672494945791114387190794974743668165612189303774894558160052902806379763545948032149268979802886103095747057607138192364799530358963830573894930445126134975337834945448678983077333632169381829154567255720164265106224266284135700066152970646022807273113918390968532088841984495162585587136644234900830403472082563947603267253570363417960771404373505082745379696050281240930305556908555978294610287812641856948955372138832219944097058756011488214933467693258870344070907850713755762850451246004816910027342426974545786987257221879141547871858720435834644007101183166390834690729729834256777992013343950873027761427090890274701906384929266065037801109832984389347085751782863959313416514428755599012297805176897210137739929154790898113399252716712797289118605534377844476359301989134280635175896786718588073868999431016324221686589303251811369750609540219373473157272886262714458247670015724746499855164830155167584227651247134382431933507146185308964504299843450954973663410082028994987560092960695962443487610291383403422851911753842883561794651535492676499904901105540157278299139200619608147901859129618394318225364045808840416280212416005696279203483893332046729902091047091178122276834222972592250868915594024149310093264490913645225729750244330078736299326335293970787419393288288081372609851502517931822944992656223081138129855982717710832944867589565321350119408801968031902821948657227191876575331035458779612858762997224131747967612333611279167581323642077184988293802503044539608403491180434395639844948838284914298599888471968682954344209442951934153613716093677877881749937488563553911992770845390179755925184064047760007463648962373607474422901353180738456285988401444999872216222478543099091790290390574381058101357210715494193281326648195436959071763983360606133290141226874335378229096211929361767297963992071256578031237046463508193104261025219585425035734668089741705996925060449325801256270151965771611692146084006917493146195994412581776760046367919115049941740712459245920954686866279289280292243965673907830008844101225905206480461656979011867874096863710149636194133884311872629557895886318357778147492351624390476317028904480711366843766156861470161368252907655412429360417136601749810306034297488978233794667676718064739690983942061502470092801221098422778371585125007327791081344551626945326791867266164525625137098602136573647727459208682573805474750671562970651668739543628099867140440146488461986543252992523026225834147775551917367897618536760456704076174715971418442659365294590036902013739779952981602725210730923783870564503687341927960739910298417633425980349800084713899248085642934326076501926094794720346708059975452084541435440921749665426749799469226542125529975788805216209926089593227813491064683678737779580347304192194106924069024138352985907780260842629294906165305227686819811098861576803244872624203602104849128362027221580356859381730044792446779776798268668131367777421883525404938110052627612339549629243358711488127771904055288413267156654197635434185803659567424001723284914902575448655078919855432004435726590178709518818340175075057306954827794101522492676829349245197529235584167197634045168570701337201048830627228184613065614737279610154445194699749954167776693855012583557694293034362081707672261295030332938472328622391638746883106373164331962958291729109746449801826307126672976119279337812014233267117462423225182948728847084044536821878547655376538880336512174921635065917867141733846900606924663609125482886055903537134988040740462008698155905761939505430174661441624746782801453988020560373925484992387496409173526912181625854503918299399468904008285978389611177416762431712720173042745265922468874157407659721822636106845629622571222533445426824718492839623340205005527739258641502071451661716246172943221893626583519831562118786563611864916986034702573715286104957240950053866161246202638863113839057389069908506477453067202782736369999660844254672697709381523701287880274310368391232021975127154849099509379146816550257215346004379128838510629663652982984457755521302567664669118145229280456579201986331395420488894102752110875692411718346192361085597516711168393165793822925045312692576235115291381831334568994349132225219972194836192437871871793158329952032444206415677364806213084704255677146332805687129475707526754879251988535653908480801783057925913318083722601523619409294712223713465675500435398122199712090155531077165941906250828907341596951221711587534108308563368949383746670112393564609333490167949190861098787674360708231439984031568430453801152327943693242503451332777595157390558481190505847494633996576322672414035169855642310034057896209607462692980118847168881003949286830842907640768878268060694716105127788958334084365715804121809966990958547107687083094387226620064018782367043695870907404277178987435439493721805221727924055420012634554932236399197487809170773922645166491865353335848892431970556703662056504066322873496547993265543904989465042706227126029156681557020195289573548520549826528205494863884481953050607152145409251643453454858834278332856962275219398840691794730746634736063169126707310510384237726474498619391243097275776595091748192408040578406447028674842665952553609200265676701131613773013937486389301355381357208171792932425801639567800559179092095509073872127642055722941064574595026477765452141661105880293415723520624692429103594523996911183757526761122578745809287103261763747570795099813789103388852945039320229816646008442698060927504181781051333843867910647977698341758383281610660708780081851857726733271503266152302570439327873964504571699658518171606824964136532074186722432529619513762286393272333945776858349246255922758895570584913399302094039938543047389501100328706822032788209297891747635058852987463393673203268712580660090210570229437372937461586382326907151192075312138349335675193014863482501540667521645674130887988616201393447111246504908375166833188258451416211212787317837593368491048980590203467744939966524979139385906638515223569911666723387258719872484959550127669165593949403344920716804446376029182819542106635385584450413905398266344335498677452616870672549649183736663255623329832667430343380039276060227557312811992781196602122684248902769191850229497746869757606457519687969165117939877361725148758445570427618768449876914223116886336521739745503222167418415064738892299629582733890534146849679429157831985277419622645339585152252120468824986302449189597435270388276308795119293504372939762839404802367934621315300910000184838711534054230573330534485953453684797937523168188758897813564914524055867570908049836743635472219492187250777101423567727407702436204592694458849674212930685114368756983294814353262061700848111203395389910002761615923757185848966532451716676802819826822449398973360065865659248317045344130613773214064531189263268322469916739957616802166094401068077809613057340634872768551740720397621682370722640050274764246476815589632341012936478621034874118243772334414025122082088744602588037326408148166819611010808233683999353311073185905374281932983272336767269040544332320453133973131101230556393251240204501456932510744389953307576584797927426315004326901650506630419521435818532328199286471498867119052924920301455441183307671238048069006576945023001757343651476052889266477608921271276020839771340621584629459303397530065184399472161940997274757544006686335533602696426889492427657873915080337109489854483199859175776751640058025629426889580759005780390737769911839888592430919332841684345284048917998749812191942319779085708838039585802772054238927315248030185714170726858950962743362761195951019551680950025519857549107888829707698971989429717406684271350519271969869743380936190661098483380736334393849884366022662928179073235249999153403937055734860200159473602060787115274510878530612551875168683217250709040887835461300140104825909514026780906564770396897004448231741603962603959383613572272343936069583934729761980645932482112857073040926220886006897358840584418918974360560737407477236030783936964084622310987746874498168525472117548600893521927306597290561390652446020262213136170715594567806870972031851447880002862156269041877238875465089283488537973763910694842880662015140748951103277881995464153098427618707771582717945041602044475043419637214610619670993856272590212408634015130330141182507657763043471929934927230860900760310132307453044223624512282801444321359956385249654444029222939381740870635564347948264679598989897710021674532409082971402407859985638249051272992159061430893614294094772568030126968789364449345971177476243538005750584026112126715602054284662082410420837573000748967661608458303164021284261283334341096056765203649088270608458787359208175303841002451418092287971976855284384275280422034995181574187749428416481311033825268146925116416942765839058057539455021527105020895640625659644832880391757965801342717938568344292431041445818364016299609839940520607625223304095734284328516377476571868947581537021002321019137547584613807570620447768253199788756938327982497419904067712614749621654181649560443281499873471413554384474609756103190734146687992618044302681819123472973046907023186772605392658946629716961276630781832792411388806609564857078070456200964157974280315785598221084274007580845845634456146408788592396495022406474816165761902519004276923068207854268612427504432393218727016483825518725999710542101136266742323529637798620494501019126281481156313596538154843753718940286959917418653704489693398684650072755213547388267745353582664277436224518094114457959808918542268956360353713908428777952603678972773482289336321511823609859992062633889763678822452289986402371598067937352941929807617076977690140652659197361766080794105285660142462576921214636047002028463738924311794328626877118608005705705649370266805645288980448654145772563200556837346842900825579499441494746343241990352744903733076241338811709749345882853664122405241101401312760418249075154372472756461750626779297013821473212551770755941483636525261877126843256615346539605550796323045920031012655619311257364362160029894513312977126316164236140786210110908518992910487252884221051212464686122700925726388296868182255948727995432478527678969615990376141633209005508640605667509799688528811079010841242952872795690783378834374709488493944100778356495507579097215046256221701387917780467746530843042787085519017470354880189607032808828169766410561924607574641706553971269485887825237917261409641398494639502702565413533354265882320594091281628910920642549862405307955174744168722312795706798853911689505398961824378099475800722075018308074701085933192463299665273699981824102376167401259500356604901019985128111916674618174550547811799218070548026710190955298628353698236001770373366789186638118543137718406783905170427169327847070849732237838235649012605501323714635096951569993293677665227935468809641195412976953418563117735071780524537197121413490286285084819887835093161790433986992225502304663717913132528824230462421995126944214649997511266780384561136556777747482179042654704390537412026455852874909017153123157093685764786152755540400470736809153823733719884626303803772113051172878893030806419997492343653865020586377595998560206016180823406210929513103883262360971370749814532374370185069761132886428062575447223930692199268034240790949376717160207845149502526879902233928171217890206504154622140031544280224548865188930368074893104642948397849233329975752581120650432479892291043213152720880149968965896957821335941244706871933386950356587463196196361143545416782302103528355076233586436463209743056838280094033447382745439954477553398418209712091250503659468856596129672982142144976761668467836749918798894097811646198067928205937685395788971421952557584526705062786180491748575520999472829951031932544252278476713371228367268981410122544867269207742414353673245229848598356265723771192235683794228469546346896794217091797055789923249993592856505013829734059373464660103087249923955379156731826480126051614941071814654263329377680950049693774331147656733542455891891771028859483401075204659918959821710279484349631017265519273873432413940338914033468644116472596216608033537139864112506274986352573293696271747667156936807486158507941163178135701255398398658613195437467731546351439934841064333478151032685126939656965226896227458543892836215697131864070568406831831116395001944410275721284009758321400583461880674811960920535415353252585962085293663660995713661319243390674853545640975126339041575762341892657641722577677986000917813403913950923383599797976368342591255904435998439232114038881372960767931566490266518664538858332486388824855487709214902070537162937055461643704157298775026973209948860652565118057060064055573447140868672927666858008469339960055730136424035519977662834322426301196073198307674896491515909911848258879914458094870224834592954966371571614884472284864279852674087480622681406035793188841252480787531295183564615981637450086591414796668216650376910818332556291990091086468893236272422187803773877588430402819120494992224282965751524492824631801489635173379661777229986880875678679875492280161869806256807864397577500956121672497403576301341989794749696919050512474179651570597744943988198246481681108962118358218460134775032478096863470737439402245046249073967896976100524209862650694677277394211967609842068283792473638551478151088940229977660385913132742567075156470976743751395040245249967170606682862012866733935138683733661949312480802820103509765428978089774840570137449379132718758529659551325250301727938057501476007253627267076106100172273726192397146240197756438044612195210176965818369028250610473252547277848574781267846496715053802792913826033776661720588846443651368793904927020023969618300161595477300000571632302126633595583070026935164105933067235154439941557104287738511774311895561034879457719483402538277654123928500114805597290783154616320085985200725444227862548097440768511191847969497469919906738505890976041222871626547139005712714415534789281171554006281554581050594487828548208056131833683770853121110243122509768716223485063699861496502307729398152095854145807696995750106564992016202676727907254778083354744160958674345952216293106170814034125454696822673860882810307294836057405335005867681214126855053643971480735960219677226587032978883032018813488537617913490115110866025968659344001350650200567838119986685432669335899980832427431450358800952222095128541878979233847721112340172710624482866683927783868281456039006231310330738401906379118701122630598529613744301231306785743444587952466096832248207633215271228217913704866491913042227632396770719400136632257532142634871044153257208699079087723382574837778771375753788459420843143565497437626568555860117002879755951244804152907940499459165024635344903011113785442880473138359775999942141060254429124884266304796376642069702250976083501674839802007296781816520111859076062437090905029217848142779397463968833193379245961166848752773321246310617293369374129659935234578622860811294502440451067249598795066034430627388618388815688082029170527650423569281200583264477780071762070935164994154817683295420140048515408946057472312416559850648296435309816707523217733209124057161364240235474418536115502032937885418364559750377559547458696859959320983686436019915542545132012270531951901147038927700579382518764344318441417664809027817925259432466707578357072146209093003946644328947269778372800908794730151506843814322993413412598858114239939106983430194399747744232342596414922379434863655741448782582789630679551484859898065711186952627160954016073751556256333209495485885056122587691861610295387085032064404419814977153777800608513134907999612639768459432350193897907854320621624298834876434037556925612150846385996691605468275351461767535044530104437588447875407286173420718404319415041847872829259290797167070327146838314945990534310850841306396812208444994849071586872999928290430198324459490104697008806623384959678215503050236730038904350672508266379720649708725463739303779213188094997028511569970779066992580425081000243939670991103325511823501602399342103148230081848722006637460511793160057699116341164995117085604139768369042804859711109049099256582966051643189134526852154315068858797752168086857521464895412255533576225652741985970842127534468529464127510161838557583394335468579658879048646008376533152934106980220778668131883072878651482409719759117969107933002906239334357332937681425653830520208642350023394985876151018665707405111018041690055717981225535293988598775182436255467243402241058446218345558817161285898805305915221040356654512950432992636343632088851158377000394025483684249668767715037812245699393087916976234602762868542525229321445305436117161722450471222671478099216339995118632560124072463861718178461578125782359141025816518836046397612978497990768479197166627038804593518527756117571128397808641224790849056805035734396798809256779389247997431452287232437167758236247668367327329130172795907818383790046567512699324299126769966609495371970530401735029740342809119440485860852150500974589230363407455770177934345594522733412040571882861405253892891341288201998065316883042529817814047394984658142992054630319494349640467255169127027923833662814778701210143396753571548678303655359616168324546584535166480389012806950745722219695206643094126597566651383018296490395547186481726887066942076070662314930839019601882005057718078204304128520869404302878597460565329999115987692317768712994090091027601438656293684803983077864316620629471032839170998843233542558385192684917163540513750715557695271177377283997256692022729735019000202269649619138719993533036938419922159145826329046780795291746769653490544573266101817786385750062642639178623371424222070385338235314449656002929541659695119749248629968684671048557903995558134625233251257396178938243486632491055394849116229080879940970598296560940518530271086636077281279775992079405362958395429085294951559136136579296590925624784415114439297434106253207996349785009288295839279466380001891018633631395007585231713726431821655485364392202393051699932842638904477175342905519464605709757280426874795251285322743686844315604654019937945982366152443623700224550844257299280319053145393647526521239671092405590438256886225712633373480626658158843071314844550026391353718324501538731416420156340836185799788716743940952062621456029367581180922412505421648833857957057449435848847421143884412529503056495691396164578661653371969507573392415997297783821996591141750106613250034530136608136716552947209307643214180626412279994130742213305496748169011420522780875237809747804925379755619894131505657870914487764740127029683579204326572690140025361360523356187461910900059467665914891631748725740784023302191856096191174267291982903415770464546863495031626670120220473731059019436243730460353669776098477066537602502616422972988265191367396361816288700839542201791994384105535336763773734694039493689603086869293577170661129730519606207955724821148940897255629532206611911811406132851130069352309305242576680011631380882637830029163209131248676326999532111498999865928746928192923339507036274813830306025129907759123586776228400783635612702189529958946050797775517846311160316229905021395712295859859981043120450666676199384306894610084149189753107829782421594246450481979760105266541184034150592141000464724452913143458659556326085405082455448142998219862062559957502693439376400056412611790534083153032241583250556574797451893687398569737958555461546785141609268964701412409142913832792314359808115464305628772894198585588030802059164577955539224770617655569698557409716961276741815781138232228111143766974804098839880813152033770697670125548262269180864824644694647871545927111083621962731381025178068928003126857022689509606721879045368868916026835168824416593486266844665518491470042989587592442685935735035718547970936111684750954757035679918166765139152369009877597355676579853799293081293400251793116642252889212836541635704068134601876294766815788072391459869312881091664921088320040395740422951652966850301255020705705469056436577214990613869849020207546041056474996628764312182020856939466070884595535018805358298502623023324554546571728562659572472029041488676074084228895252059307061870945232434184116430302413457818708043887320607318561787173530833247566639079022378158257224270234606848725185523427902722307974738843923504455659668232508094550088892989577333819497605126744959049089012436901395893661598615827489959456144615960804153206779604482383549361888934637101629050597936341016046964759192764680631265455710920202298623223086473311783546824687282091400487856717434682556908888839415146422309991566820248852663047776871846291677929897162111887741810183792693165298225530859439626423155009498114583987110784068098299693966711580302424661006917646626373834661068526545853016318100098528465655125420087552711068532175901020063372004969865716678459655141116574278142714962807536444527414031217941454277043900925896089761909015561309917687566646427921449175586312205303306269205447315251707043286367238548698931623187662376640364202571501322513935077468658950901569890776518917908254547402996350270955262404352313736542893779434303090103451768534162175837726234762611459359118536917149362908539674208421629350182951561102721699953515653381830728024276125473813701766623768779244622727445586663032455480957308410456617306003726140623300240176495287932773659621752761090805027090347379186317643765974352343970538320786928313066253975502453913047978585760253929728351606553126270535751055987066139812375256626801718059586905903576422718125236633704469993933355520781419408587029364414255091581543751562255515626939153332435242747982054696468499408581838685582878438080787068706869408179768382951542667305756008295908774162066865971563243616254946469731705985584378380363230201170900712604945195899338479482189833811606478358675790759174614338646484875337710241576253100034397613203514363234520659824305005574572596598781114394323529157863014922196881967198899253533802352014510530613777596985633831280668366680329656080680173358369706136010335944685253956147673572031985111399957737972858877839823965935693803563617116667195537245358726550518707327734778362570674770990738104813351586622813637033101470360608872826899434174236505506251853898562967342520226360088659620624362675006132469501926894435616357087083579914100041014699493539522734985238044028944161225456065277743937710944899782726680191787704461765245360282574815500328873115427789621110513285020977062329780730609902108433001837284666306971972734006391468070961635783695156502433970169934881031460825039954185338968263057600882372833971320106994866665063700411006234383962108362203293647422454969306500655816707823292710134672657257620203616824959698198717910855914163597580980698056544133455618156186983374264852532106085137417770158281216414280478705372531126693724333408775361187625110109557212445457315666434886772357366417223220557811022493687820738759950226221733086935305100839180070601629454658020319332151846877915851012067555654122211609956527348790048639047811277372681100464106777221545305704899739386170415901652518457163041181972220637836291205438346690520940324904364884292729827604549323645787983015375339051459836783100705070417058662991349344225888460426507954689872861774998216659559726818618586310002675956698731160046405421956627050626938316685937103789029001927207788002724412375512654457244301349540118192391002151651252030861093142458496332241122979473112786895976365355420603454479850406735493118899925823233038722723169647416110299271777938812087284592276906496209046028188456751114373414159560481920521395831802516633647953704109635874951851029278551462249917750345258926900259294386385569092564932648130156700243262529828411787464055635353127980353672112587167045980193535788417798635642701680323714652206830257852213148925252834726856773682662776912022129806203993871469614748806433700176984735505356582431709821915382473916681225423224068785900992103543548677945256349127951235368434059405898479549881552491150676591968172260463081516908186298431738565495488747873874661956979771665770792717553472374295361111174005001409768511055773693487918723631915438090216742765213953722694563037760200594285117106830010125230855846710219468456524270900549196369576784188756470571118696841771011535363323259388544056708986895296881591818990337074350666956031602768902589048017568897178415882957731754116187270359993244394159240379077103985307223223380501656099589977858967817507790337059836505649316892926726225338678290222818597583330479884411379254897973109780386270880063616937587490201274900545407948308263788337834628853096302000679812755505747164358774442675824115034599492062648268681850978259976139601333154357010213533441300142610555548019866880008776671000415827446780094073028015446596198001029342888154128963316087429869183600914556474462590695759618069192485345885251550015815630158625045933289997398730825405139431353914155829597769010934026563558862255018745252252407929073668543303909985409103250073802435375973055268684959979224070827919806407093461865346409150279797535635400155803128595125429276634715090903779032383223168166160156724446642656109873064856414331307633503245758516969332138444714153316778849633931326706044429375223681312733021572453736658240499964664400753561423993134926152331822826488312509666845674349207214815160346413149035903913386830295515759272916564426214537715933777880114554938562770582652195737079861070214647206137636288443629386175108716913863000236370354546734847066063014361235736627262996158634868287937692417866903955652169025166952675460562418824304470473877591416978923799210209753764869668464837519242548443319027302891297495523957623353960993802550935575887093244179284273293203383561352303370010700375252778234264148968404895986191836017447998722224843232296737192610643142980818569950661858059646649416702758648639156594855358026181616841427036420021790353881280822736138184577118078767205959749271889248082150229793305529822349174145876403730863756933442889170689746628417467589864134595497305972626560809213715489831564089230712066747628944388113816678188555835731720308231919128214338148761477885663133692513832141440541670440761689132797740597222026378585305566139074012863720840305831839785984610165668666907924836411960234595248939674226567983406119504037029589097239681827892698794027909350300569038142717221567172357349981651211824013952321771812481976307819085944983940725327127504479106790923231122419441077406416485480407131838332204422741664788913162349521158259791178840142818642579857550955800824320095683954012816893023200743783177731547741692413823444378138686003184385660110020481773941876737131051528921289351070860307073696847795483531221191887982608582925665074250937771203687875167575610123031249987978336446531311164333948692835134148147327734467038853453041926607674800424395464071975388371439308785351106351397357153114942049793781201030013916089186678668779498341013429488671967913156740205938498474611800748075910584400902738934220725580357034971075303914363120819532670158579311291219172593134033680097693430063925552560012659519834943736814865799407797203364291043176069068809763808294934292616760013799181704148484839889834091379514126324100383080460632667817015843739612615718945714374793993161165798192313819181158801041588533498206513575281871467347395480451776260317696772243645968425593131453731112646914644557910014528410638887698012596448204587149482068425467017359795435519632128673472402509000980441761669596266460855253039101221747914289691745297286829449728681556725358908485255536606879315884708006758015001537337896741393139032961366198317239903359860782320920763747312974484164998974214623152282479488466091393630517982332757286691780972616054438186116224488634779585997600589822173292297570515179756191104111083961967470921971992867081488000642092769623631257780329551037483012565287900358177909150198092633008664421010248944311416638916343278318519944228363202943960438317502921724588831035366578561547710553823309526282018231051636146031398793042107423231133969190590310045615731435723720896049827641385714133486664578959862961953644520957134507827065995872318654871419524217345358708369913555441834824347394713184505052982509400454233786758686680583157548409487454999235575603547495970306211891892225792113194813750301881105477893547093032444972057383861146100740437213729804501285799775768281361094017792623219839399262737774661303452518437309943352993732931765867226256261003895229989030708975623272974117618258669604096355941272788582381963232986494585965542559261930064329478473305526749085119966626624256832334750967315921947713506913961261613326664419487692262217646416479195053258214015961886313653048262825259472691496078639866300856625698675964036770317947050227522925648484786476106733756668608915585493278397496901433940342017873644586142449595213748240280819611641478749579890055816991679806418626488036435552420780350621897666419253902987893853397522862715494946546943853329885551424580508859200537835124554038670321002548832719058156541974728147295381121360765324828660114761319035752589015675282433706369108238470795493706745509342647599621906316401984401437169668244476167905971405654810016171666280487544751052524555816356866799849819771480194409277176242454012935810123004726403303310428619167370281493003296336758040015800900786023687261664396675374024565168698022971746489208519949686868421099930404258142270731352271777182216372315863616289259305935453178847436490135553361658616618182930086228920878476140988715471400278386970298574178316925962896406223030883249441150230603030157833830599942413998803980817049267857787427408632927791712525954086542970149299390277421518577028614128420984868217508859360216377700500960213258800570459696013278819081694868775549888136203662698369939787210466310163301023135181950949232101194041211827958799671285525491975465163320954375885828684757328232700280374611520318406187300149667383840266268706651361112658748012262210626806213102208405185179667043173639600004851468164073567200296939843384361413400462127682129625515909593685068941111701474965446886742549293973148896013773067343351237504194737042425220047411573325588453682431106754321028407564990101348948322001300803532840184231961148456816907688096391521407671235836175499110040589986128442820965209362093219272347798563887084864489469259289519930696030130380672012673963522441113102820980737726333607279310418108200288941628736378035989932563783501312862599267463066986744695367955510065917143919681970434502619552201161444179258436827086103774411639653869560235122596058364647273022874152326313497139711527107981453483168917339333876433618219453942510926496094523652315459765779674419539610975879289341050677108710666764730082320529434555252440856789840116876633340320672535460395383081981300335845086577074791186899106605071365317173572275439477510652594855789200297109318813568724198464584734178330908046874273503331187535031689695891638629075867082893830478153767459701357029213377034576114490826842249059822513604449226923122960985663328835678219939407745341462382588856054494484851001049626543353959654274475201701663876298333626592606822372522999263353399621523662825403712567708805738887356587155258650960161526907807958202402934429765336747107859628894912364277660631750255250103587081468388285524039167488478966429241078810113987779385552093819133664364623554534875566140070956179760023873012674877032893967031921229884891545720632704389881168175187035355291416338923709229177348637275463158082181056024309568028235572513637316757884429611880891727566612001712435430303115942784081669458168258104767561884107688250914150184672733689749948528953019086443793528554380705545963203395299624486089342146998523799327166953315442437959044285379283966125015257585367865574990951949661149941349764927290781150233779183785929024124074120825311669326423806928971361799565839090331764707074607334137034658503620861530231546878071414680929593380970397801027714409069998752672198085252941645005881645000593900976098656228206524720593849507064893989543431119384891199166939442838054632769342958142049975870549098121015374505258294027557254824186039423818512903787246604741499850442191345922177868168214270298008015112166537781184117259895904469231120725644059531078413720013221772665674107286245783259532569967875685236341281822798202504233962299070571581625210510699013988048594297683129682969723679468912568075765321769899986500922002880444459685642553797491822716283680564896027927505605509335183037988813531607549127184755256003901589067468989711336871483836693174253231854051457800973415626080080163463028076133494382488009238425610495486528033705865289711816748887628616172707871451659956136291758002448371252474255475892596622114746944055216577954199723455612862085375468295892558005554865260633287650787200790676358678482197374177196966953387316426364812850867264786082005881647178408739837899788223703951932028546294163048894074880496349961727493681369473144467525090248194234770441445833539757833057298432240120168274458587996714474412550327330410736746687593783645231818964795097469891548170396819704881022313055451151393537259861722225153809582142911683433316877386077897297742394244435205211886970509839374158944766701211126179411370694252298105474046874333247595942737535111975214935233008565821817718604026205592388393471910092034927310352673208327322819206357305644393101442395516683879303720982090770429291512995775018570858672761160287162031904881951972457685451243148186181977548496956279356827619572737742350582149103569083937032967403182730461309777380968595339363608141916653791958862823557238378467623610605984336796976140910282749406069653012989181585543306500867976757782728451666600850851278079598465352866336587024828541077553784486905651189300228321904125818481962718757018301001446410138352455012129111800669789919347588502061037164593022775663915664603565850787891530953999418861260241839767213247869803782516661707794761967813357955870544032154208994811705704287929934412890362482312731886942888882904844199532180488560539680585890700738520733532367465335286839614615705148785395380953187471101143194692248656801577236631736461839415563574968411322491352172286178465825371279182969930712167566820154666752362498754029336754512134229117801863773652185038609595455541577308445673443188974242876759735804042676148894872368195458689985101681684913550377703300813733566539920981840935136175613107991784689282570795489646301398771008326085525237729132023454966827307535369471993874076913617259388995868324440907353771824733805410940777298769440651856820786525121111847933622143493832859398203338099939709025636000674254954715456784376689194217744972240353294508838422303366784691837006728575945614485098277030610406023559699216455556277481241831615934472024337069105941307838104487069139189550214784489529813180624119539047105428343623475008531183237367529387443067096306495865720583980170195155744254567909333943284499856231133317542930841336847899289609164830706201854744842383193530206268926097866245580821724489031022655300527594358521747410782818785279676955488429581861052259323049936974074330186947277868657204581409761107291868058966916059722214353567191959957482434256137518563407223073841926160986670341950193313397486115382242442512979353296852840536906183583366867804835695518586245063979538026059342284043270238236881820018412314283526051604828604338433468759860116862874043543049971726191393497288217505106657916244820393711902876274917553922346248881465642692580709099620135194699479191988551191764999263674560777405635025380248204167836765212537859647967638231750738566747562539650195559048356637079548793262987855599812192455471361528590806894953505845938689044931947110875562571940334816247327707229284553671148570023707125154256956299453184124748660707898468429332762804283261272408830385642274845673694835525186870281553847591455353164064272880193819832610165608095693818586513455005224157763133757588717214896160448035266201550609547805718520875865827890849466193919555885620571036517959496674262301191495618818822489602378191469108276051120543899441857917268934849628135676289345287377502274844250581409357176133279326868817320318035799649776944246127784924830749587906584894097360576993484013132963764894081118344087916654492405915814061221774465626119008991711609282553294481276253873556579620053683935745944445715577009647172800226568591883452456124824616790508652200835515778917631119437564743001736532123434193671444165142845834583366804867096475943059414319041862723849473332068681404187915933971616416606614914665623780623839434986073290327395246408451840149774805068225840405886169574794974179054467843637636607658962492694289929861465155749772850012157297455325958909759231594086697058818329470198372297406092124140621385539062918879180753127901951741952957256564953019880052619515593533522014268184067005646648512597329507107638512294977072661952814005925090693417985340297278143388239778745105389136736434186041759062443014271734924094211916071016184701811654748663980957946661786430383585595065557566457018075335170145943314217652642396644737520643362753189679458399629937138018296475235452867898890375235350292588545949152208142510403361681519706961737120301977625404340412645984599105658224880590074175791812393636897303962192131281176674934758570928011358750014627123298980650613322345080932329373864043226748655528986521477290567244970041893173948818918110431644421049641571661115664562733053059790999684608026919770321838971803298058622711684078289571196132824862702430667989456759187133436116887583762256184630508520677115570789776396676147165747183988714047161964657422890939443021106496892382163137393567794472622453156152821802334649910972717379622231213499218576481341768103556107135505187609388306399655029589454538990364210917963973585270975057107367735896374778205816242821464908564232479367274168495390104532933553850314910136535957773832832221226534284263852407751951743684287976472893585998724375861604641733593034396069997749669034508257407246710640477590921173431037293829252051044632484263193127583731346639847023122738668609214683168748437459525085021751802219717916841352325440668870811786187250153529023517899008298196565077413944608308821888263301156648837677310890054052482005474605152398049307495272810013054973076456833425300818403937500303178765413772678438148794262584453835445623844562918606301431016776412228975408792335953449940805239706766177548086714822240810974345882304182580676667570665701172816782487914413075485099107422616623781659738045641075026921232450936917296046899307598541347814245159728435819386042252816508829636983069078887842444962004890357615511137450742967976770602664530807241331139972583837278883782990456665196471349425222565534692386813420170104719461691618032291327179319148998107071444032116801303602950538986518233957684910184763779258158412968755052647007115265429479183764850162406474902845635738375169093105966373520487218133877527610210566957450239501189613006642641221143690162733023373302140977522788325748769032903319782911502291325120349717847682656864449590578542596155571829063684263478308208207380686476059800781448982180725834499363468243230080527310738517968206435071950926419180965734545251755516626859587886731001523285570756718647634065901016797462920117047599993687028921333375292528062349552859544143912391105052242614521917043136685199556880037367719939628645625617797203562474246471337290094490848736631270774962447865072473596840757307623624192311730554447196415706404370213525465592986046946623574293815783251662887379999426651591968868237936868680402829657881115302789062565803494083936296574048824287179832282797443968349064900781215410133606288392326410991499302313148462850762008505841992645190112148229454344330250602542097346951011785032750611253302578150387267198925147095446411968585032477822272931570402128246650844823861079489973456316114841807128911702261431468764961404701373115131899739959063759932725116838647723493515531646227292811947782895699061825343592622053860197495143778235046615228489090010660188056815879605324881780893351696687572057769942621003418761504482281865045723836627430032727280657117906800076218198419519894952325532375494895486008450521396235084251351945667650047018819764889334901744867656972946513806759911426479048574892643322153158126699402047222277951050214157475644200193533773714255241607847146067641937183116221135061625750124042935091596914528732040491885839054847259334445553195548385332261241812903922793267751577941434255286050364542500105686510841895681033658347714775152081213167293929477217673130806725803421341083195307145386213152424077265774231364268569174601748898046207557385067362731661460459142100737300181243540121881828834579577143325560432307721921466805434520889324321806980351177655639753816291531348412619142396452521647374407045441734742856233097295636892024875528628023816787663205133236473638927272572544693352585714645173356602175323073030028962923807327428922917810251829840014214798690058467956333967352087525284087810882590385561715976955077791251760610068611129702793839419967093185106942878675726716973038327402351686467042154592555971681415459851871515478768913616382141257330743227071861015374601252147684900905203282153470287393601549912614641054079891699293807857257832605538237574470025044357748620064064050050493819262663095353313825777682679342509991851271365855275554342138050038163909632930463081768502150773361251181850851411034442795676841234845925639311736993437287125361761911654724146486479604565603198454314168691020972797208699233968154778815533305874022787642616015967913027560679188857233865245013878052441091675188956633512811001460838397624628605453663240830349146539761275464957259694532214994352768465745963587103974337001643593506745770801447295577858952615502521797126743823043306004325456050611162368404573004430840857487394587072864994592411143083149375179201062950209963709398625568722388253194758124106589902341655454723396151670128930527055945551131133264697586253409579447477538284313244666061685493266598270342678600427884526336351985634628020152597815648685642595725068299679525869827654467958028736663840947233815935040308927403934535123495588385597585501455296907704722794357718714556144712193887782524989381036727796576246427820446078204908995362994415349891291016627579870271042262137363049305966454887460126718975446025921024416907321182566108993339727614142569809052017933953165833415209404042117181707647690378285830251250935509026099027272138145727934436224720075312049077100553124062165052900241255238353052479534893632466300181036678604098872918150426857134402414863698396349311774751826120107653393429013019708707471334989695284179832820512340392734376380921618230887735523381054015609282341118779725203310422542170745087651092704490265965701936762776807415867728017800043758965932622407962706560221233679764725902008130340829623522976455473638666022591226573336492232752305668536076140891617030554099185647765605119752648353135236255298578663691407407848774790172784732402303544335058627880171021740786333769223435438969363753101756457694215426896910271637368282185317696341489859414978895743641886968113799899315880334133054260115746068080732746356131268120951525777132583124743870676175076153679532948355009617051807511821687683770395978055281239611186742664551171026381313115564914930200885562941901011315188078167517461583294181858298845783925120593399538394926775521344503868434482981580172519076699636627575939242522880674691357958896269488780681939728190362654731158475788022914921782812781941433374319921649275225931708151871706402992286093736499452255182710254644562610993190477439817928481319939740123310352845594803295927355202543267190477432544294638233433453166105516882163394025447002336226667225782042925669490642015384262060509616125335117819330824740290146816145373680922471795992127864162618912522108222488559603421725466329086069697718631582586963500547704253653768124172339569763727819128927835530907447137729211098718629459719997928550163095429208295345677503862354361464647091551696779260763279874899055697452925000427984233971353955853844600145421962059213741426136612447904666676589578163128022473347582161455654057060196659086515588229273585816651947285689194408233802193117575123695056286613670112169463128843591268119398183655451553558510005328767966974850410811344547591364559460215383377361070049688200997348474054696951178965876898640847999536885373952243527592689252388243743818611119713604421840279869531062568441590483973226072383404203084255140856760707553272504011064105120858795239177654417304439462312166963382115629474589370425812638860876112241962973149078139602659906640957426638759616337131951659774088720393453104044029893723522920501679985217003740066470079382877104746008024933658479018665910452666981751650748099641441834617579932329453300757339991278935828389488920811116587189910265948133656537354722128634477851902728695759006855022333415607895626222724324824671819986817552943853506286430807530523868129330840666913605491395327674491279378154764608561635546604730943819232329477777100515358979745247993793834762675347965761660520612976876228889738082042279303525969916265589152853936379393528032855216957526711138762617588753744476094432141643601764338370839279675999529647737503157530217059823677618933233303161166313918750401231979261509653494528604579621082563228610694338191205975445161986482185123522317267078247075437280295378870038736463397159708792890302309314700879064188848285975213584818251718129982394397896791394949705844048561385332435409368096786937175731429443928668079562093483994366917365230320982167795605827181650108299049020565797867869587785000367761577346923036318379881974234286638982240682251170316434124826228425514093830687894425290600573869478957137900241187860661780456158218427209087717090448981789010162873814439345977050946610527542645783858503902505090770922407830683408209015640443658049159726962910551891981987713993308986941517609410862734302001188658753138527239920284096467109661952321329706508153469277744619033797084778384615134348675568574335502471060135444914808250117248283579256316201069830481674777236171913220035697143116284383983745301617323187857090183920443189321018721737507336967889989515409895325172739129671629536061768393502379011494440388257297844876872273154645145932324798171275546923374886348013271880800550346741331723719672577811213701521169552543773273641887807285382851262793152923898697127412768207016896970806264197269477497592357937965740964295620694928459981400250460461764875092461041749263675663356295310371897398693408318113454176945941548409907266290082572626617606798499853196144416149510476983953561945181460428980950014904140115012340771116253955099044905409426947618030986545784452700919456834119188425818157077134091111909365507737392570188135559108594446288588549961237247230535407638117507694852157476096820899925834455330448720733435684340399232444372868021222457589390941843267167102813648538385878529080136861829512349392320876462726275977405574784983034076515215108446190201676524824156030170709742913284857858791593624338265426531342199512194426392885612264452034027608095285423685359588906503788423091753550136464755923721325266120224013154788826490985441213598390402743055732407789614429210872820981726617991504336883726843217886037397886745025636344704387540646051641420960958844528497063120307759047301882263543332565864726358923913859498255525673270235128327248913303330701987041210660467200927776306651339285370008300718679171957094776585057264273937523982153105641085937111269971727060886868335088057409485542559944597769168413033240303395138538179881154177105603209638005353390840637005452072720846070858367797087121667599281731738806981004615755667810385485173208816988241231329986542445435481520011889677995848059846070862940832397283139200537144002077862443772969583485059962529141995050217251116575315937808465194678371448445319840665512657107498751431479357051178074073583926599076302454999981298871424760286225117928465942322289117384282167329439804916016904430930862275242447505016044772909754619500366347838533237144455443366194858856559841083992803061330898540089407944609148733646950194166858804473588806654209718740334775505717983476486834438963446726446553369798826608128222066243789776715380496784250254360107633586549255251095921892076231170186375104763642424487865639419489475866033410254044170355191770652480308177795692250679854384919435608388603844497528450587960974028210459820751606004633838993590988488334997541395736437956654904260196588475758935807811329371411542177264117205165964934906319491059302455706503792920608307351816195996018704704823330939841480460150417241762329803533592458584623196352514976725318916204265812504413414452595318602921345549129019971823608785559253219498015721294571194149388479485580937977296214641478011038294142987766444258988764523764187391393671812967552330697821542546075936496629905103954400000845738421554157384300963641468642436061565142059553671554353819835748139998972202951378557685530023692763248566887996269707317639848741428828502409273431598253605173832971806823961017179106134301853239808635015849923740185434592715338234312190820455578282582013883821652681804337637317879152821784028491032123452776846645644227997530491360938495478484284283944782629309886889812772189790590018189894407354487891517881715031477465389669594512122573436402224598454921346820773443463405392797879053072290645364235902097446300520937770614058459198126272318559924479961203152627306535781146572597576434536583897387879933949870954692247376217285918287954313804214102918362832843490466883068171988232260284068536622812688875000999807165282362616061781156528994485177164568551276631066364445171940158800666657650463271083381451776851794519070881044059623063289529577301589063793807416932317738911274506212699440804787654196834125563455815610552069267371543407003847797123686722053929728404131218141949251035137895775948481831218094078696676340517052238516867417332344210078998657575558950682181352204260950560034270790152718149222584881487734097480839959536921238529978260454365689781592826791493621699188932542943797226233275057138801819646219056184957246148478715552249645659578242715875747586202049900389744594451683317624445351033679272458966323039799122875217872621082332895222831159166706303459833214062237250788662540202072800162256191856330405808579320228426717409816700310016451469271249095594747261650837209442834544048861817286792242267770834693058201018390760850425005067949298119072684299991480252910656047132525212940680924125468836672086328568000811459722245283553450315237330895834238803005951895565954670519689097387018778298087791912599418787453126664991829332215388155759725075860240527518990561699829911283227599351878757218607599884097965160339299762567441905082096117157716511045008567267454654239971125826972033648750771391527557121570305210460053591652642401108754854465245081108293977455744006923120999052903941105055678973651718010402502196902899304232488516900225879805695560683695815282907529768072074458110033926246993749565014884833528648211151316493186533470879689164217314983974177227792952763548022779037537120350624160391904911838452494081263926947856975718167064380212223395006705369011171476856407755840720481920300166989786692945068930621956117943502574086890426001383753402319610134571062241683799150305935664949646060645831257623083895238424302125271000228392663768733610454643306067640175172643603988369943894404138527528243699558966843347268610042913747238145886561333207396292083747477968547138066185087640207582020062308491360259417044729315197790757274269199129227564049322306772640325409276854760582826726749444902082028544970343860372277451507670176381613260268369320929015937503508318240530086848727866419323521393238044678128655703699346773062324908652120882313248282028970142562860484897872964816747870451353030016907146643357700309903055535418650879228354443479982062116690572505595441765419410771986859786390970486595872132502905510939795739853415816825688740224912099144990909307952381061997534703522084549199228135540060554712423802401621636171976969083495035245682380319522840129245925512016108476429337329092784813481311577850906904270193991506139787845168722083488889432154758713718861453273705206841087337101311926598522983637413818332899152784173636107402451281382706680156572966895713370882805365048050963056693451317602932524601459428303260034240909246724267368812892134218944044596083805550834664071661486895351957599876877550479198532473810010103144040281881529545643123908657638349457371425521883426916902125578118592867570466117866504935513627888515113975310062057188660438995013674902701462425231655357211811971185823324675976687625805295854117455967139665757348804234475379618295459216794612434649783404558563674115109065035933047971140081406089242883024737815808847093530571523737188636757622661572212234830262947305018409073742611970986099204081555419020735290230312553643269271376848177995431512775903912453807028295225157911387343262454422388563086022772141524447775133256078497453806384107714164368468811579613582250877613945636920523587076095583840236965482472843516242903568030875806794347526104453963795343694196208815855105890237649144839567986903986853768724202959446982540757862211015913863388763505587322670145175585298132112072662122986355434523287114564952634791877045699400041837549976459195133514483156901355438692991637281222411115352589731810304074784978897196718203407707714025788741231262937285261161760378671758891891377557270632291087643132245859316211686247595382743824754419644800169119448926780620096196813768015619899532907478329930329423418463010065709971406019792944918050214984816324669000256363139787274106672540832412373189845266394552402595753240351648126337315536261570071842212480738221068810519335255815811331526627295848979116548990404705773223946142983603462387345656320148822078565701003878920998410307156189794104808496426166777637537796885135056213668582484142265272555895523598027645733978778068848195502146604087143430417737334613226461898060704309401058119481982527500537959547007203362926311791211850360755229237034051283269707593140666600450559921495445783973712583379260393676564588014455757284867209722332915077269621309226517572573254089906762030853224744039542215567734549593075479353540920883920854544194737708488860948335326100657112963969246676073362478810199823091323168643863712944247935284755202581981006510157464532937294912583029404917626758568684635350187250536964907095284624957194088735591426283717155334285529170721508774438700211951249235395245444387121301928139144711570459140363517737816508174108632970911171859114442566288169918383832179049188439506088308381069696151003243947803432310842782428497084276928632752609873945207875581250582773659932813479124579517177313989968685686369967928156184974673470817278117540661303479947365537398172272795095205064030876843232816325656522011841804189459778052675458244522155430451885367817861034498641103405270288516282246218628025863271295048128976375951508219765291375708006464273798796167140424701657258145903637819900848015564922278118134409362498427859584414298582303162066916603637190507215593400935640108434468100979773149546531513638351896358750008368422331967022650339828076017786360481633387131148539851855956684421147173909495492460485288584599589807200589529377560505462153865351389035669461675148562410827519771299948516338368196245643443580201294856937913388943864223662263027236222256541429401071990167999115057964364712235737612394675365544039251886804861613179882239069809846532222896706752591929262477063078422547948592401303114509860786182051203357114362220220351857637995053930102652742451505036022733025160264508317839442789884531073057025674320226196946593736868844275392368124777526323955017263480140536307667293453299485542718579347233645987693786453365050574782120874510403558612072989856043805230291090994775257359708712614447589355710460897461277271943816837811422719270306229275713229563981895898457077621481231518013157634736451310582937848748986407854859465732984238643461972438340422772189623763128664186820115594026577760186480710339903075582777018832288996337476483317094981249978190193973435564365750632036638981875980246464404594256287413610530224767384758841963461067833502315235106330058399461501826063581704381267022025518989270162295589165387312867860728936713162864629143637852348805226895960552474756611086500333647936794023785030357639176385225251219911776173862775404803499153326307081794792633365585910499132703169275043063663020147720620237556564241776097051061268585318690203144121274647318712776419053309516181373198457167553933700038739902182457075264584058865781517205924868576124895036057263603503363660686932580687951497414702500838508399561417331167464157388091838208422807523829850380712934292784689208444602875796524225108250525563663262028948028018084843874628929644695866759534986597977113449072896886081830674988050493521498719428915712519261671885072806237855664178108009077904226904435685207006534302986685309861695299925240762008222532454174814527831697317704978926321955534719097442710527067087411273603309289354463114281750059053438238408289848456863747436583091535134804950163369336850377931892365298165456624803284067219838972547388309753234745029873617116897224735606154386323280849747419554376794108585708372337838303477365702558814353606978051544580975423331067124818299650706783473809377699318343818711465775880678880955725908100731797539714233868566883853632005637107893656372184967583802709667063442503229894004026505812332553876216052978320911142980647905125982710618796028747241316982108600615501919561543322866293854469756880213639085149393355163630860834545686455254834724736519496858172566666586875739599555166700795343443860108438759374893073500712068658757235689004173562891738230315524849632649177183342882551249679704128669360410830916181954145661842144474150075965488113941681933181883494369603112028884998369990153240712117869330517305661115809199777756258100875195323800594927654922062839702448129878035109392474186647087044804128692724448191357726888995997620289600650656648935974052301988154182245490071900209319275743326379856630892212654108217442693218478289891542578016131441003664224686987178692080710916009933098274305806388296617462714347973005376039762130044830300954333702961099130347920337229035517342415336402486365019853004216205167517609548811390022893729570234453031629280419361509052475790742931779828013266818820861542513611931584883812282646800999045552151145477968031051139132883069243813673160185473141555048699048668970915355230177379991616239009353488516962782437222410465126062562030518047861190749417391441425797998135219005198780606701483404516760795056780569236366219552259872511486282678788005966335727450200651645159956240866666741165363793567436604657763573734173117426240469986081760032840707580814006261615714402395876915707379668855699386382857189692785160146158724259709321822879244115176467158465269479564878207147951717354423964594883716699193880620386438530865144544085861185084019850544957794570449716361360624730872355573839906286409443814495894437055674222088474231752194058600571470586459788521363167812047755220879740731439102686695277361129832783248437154205764643029436728979097373346645046470357709124011258542335135522061152647884562014555998986667598646557141477203294805723466792154527674407404708384262907958693493979437619957135515885293542656645873774319296820974219935708400116309242527989054860823767966123767922506695226013596260304502995996365034793176969658696190457505273893953858565106604159755264888377951302137007023882647956016620858673911249680342127764642533713582275241762230332264259882665455205047440592773372439025742018341620124905119940428516017725419579110592494039847207727482033329305182101253034737941845888906880714951781503985631758295896366864746658652924995634086595272574300881185678197133693107210651220974258103936743159855312529209836869763693542531682840313231067348021537569916164630488542085059974583986150251185374042885016573086990192731452893988684861989337327145654077150073971497104853641569041611439857109924489059743203170351856989624195309211648175664152676108635412432828943551076177997683265765043820622131677186152956461243927887348721159429094649302519841491938595829872462062354776071508356462611439013016598421525233240716766694220900929460458311700019227290897035454744843946814142724708469368795898386080219722641915914387245394382792664543539429860954633216734762961191212749678618910198571923977729761637759992941738473492656364089985866824596895298426778335209796872251763573475660930215456571178060851144838628947089345755020876988079867203350606589992863248763920492463731163313600713836844072694894475819309946481928725962980082374865570813807045290087850998499533203574519439433410002342691968129196650453403832228623573494809657639829284338447083584042892569997615505395917358138403342742033220432055583312569767531982836666600753488353628332725452491882220406214567768318179129370566202248527991030957562719180858993033566313080896863092386284271954699500633734393460470788630260988426552796048646036401471971968334970984483993548977814842943213764153512509685507055487843368763691572066078490117587911448760586637469068472857423273750165258878407968874380295794403487147493322165355646335653714588698184963126563128980721400231190741082115450029468374823722968888965144805471535017908712409959461854576198620883721818793257567627729380329287881407842473802485411201126517540943101692438415208422947075870504085371420216727555308886377657707364445121841175690968749372446051691199557475688319083965011915858423279555817601710130070063478047564906153308548796835845680246153686097939218058488245544315647526529131394679454172703333748318054549823884623103778083880186554531372148912955006534583801364672609637223739788606130971101356145644887954158204139920442469987731736888455901470441921157462948867663336558256474928209412800485613903656957461122789462874113660828300167429625715780126039453420180560489316228422757900946692519983233325548530384291331635093338514725003549574795643438008549144116034147967305593434368492748392788420262777219272868427618916927015305696673074226698633840125973935358649087502266763847994871192378024289984656132038990383849894034798472675853750807580335230137335334748370922128967838354447295821647488858123750490860715281276275261970927546806439491173131605649635279027793975015725746730924747525280127420910792065840504266243179342478676949900747076452226152889296525830901988382999472846068860428255543627560269823246094898900448521520414831379729700140710194277058706030998394180341269274046561136191143445913066242982644505114241422319588794752697789560126668292912323587320286619978768133916649324906956315352099842752425868504668022711822467034533974602874479596460596709188443667245557781399073748259114667638542387570918050424744444685038269379411684562600434941990490515491876396304019304182857564416239746459087791102422794021248980909258676484304343821437178219992157013242721327660102899802637210456000897791971864215532542293270202505385951880638502386008238579819622885419124701462277779917208036080962679615928082716018841729039914153863108210782901745916469586382013357830010833520194609909634808464004685381981902206757602963977794031444877870606726592347435352287465718615579853203621368507277033124539670912411492331727974050539196721751934612070109166568327398094697523120246842850848573532210723586437171326221075557569248437305804639090158395997948947599317542565929885040308442082935279102039254354902703691354527871214897368973737497098394295958168237217114920054784684840107582631423235298766396489760366312029479521518772661070985381428189443066440648387681425124660804626802414346280778756061637809511247809381190991965727074928579683694132762721151718223027942664278890632841374165405982684619764916941597107283286207273356579200924437864668317282900514688339465961278296265095775782406260793114270971390472066866760593852002323576285043451460892219825648660882284824220989788384554682553293598269935844983715418976655899665573001749150379166048554657665821624198958299827035767499558459030960667284903101295061227344975959191614456574408131150337181565280054690388742514513097297748911469123258078405470398235264903161433152797312865851872008371592589123446471440783499964922350237577007728391852839291254649608147281069464628904380467661599050657843714795753855122320428595520607499060505262883689746895662340003438828174802196049648250461376008108580780209214138855131813173840875634722696530372238815696436532002660829076699873930666936941615842482172866979673033355709085445767927955667952652673436578276382108779805290421015505495025642867214089108784627501151037849094807861431848876639159226459924073229099756681858375301133102188239494736632151603652254518485238481320907572098928664101158495140802368925631907493890599718994146695539442033754117980829238815961251503414305150255128322635930080252588371670622082543087890505231672082669371703112803759519743147257278334047764055027079498431243768365881921137187602625866651741529335468955901979518904041956219641321851169567465795015014508120904979268804411799220706475776730387676046276788619835152660125989434031377111598920127452211060110401656520452772977965109112731503393468197906448628863070056682214149319846221004550495353450713662479089268394923423988492573134113879780664178296620305245677102258592554874368849237109493555005557387600684255492665716785588878372152619093821303568074118412404585246945155148071382197300861663608733919109351570841878136617451544013170859002595069241319637276014281962941913879406398256129531306835236456462038104633716768204196189868893690416573065598933504729170710348977952009315134625129108945973855654332289701503508802479031013491827693976649184190090101260938886029024576649104470512793803925545259259279657285658155212198545386302286721138890004240097048525048099219876048300469544294666280981200857544069312597387614236438231257169783700465099952654334806465733640690353991023085915402786395708382510279385479639148378054749254124653360547137465911260255757430367494782470982348312190810195826912196046062781294875328336721335560066484582692795604963909626802977749266392787514504210497592222664752751228897372274113019375138639916725309046419541592493250224192462992486361054163290020374676037761697299374036110272390992981749276883488114929467510063187847755805896017495863013103784148232061691815281678531042662216380926603751112223657841912478261930702188936941742247873767408931305152430993688799590249182413462873613575314007905330843031696184697257214293241630595316722113305407402299154234321886678690022219869100564206610920160191387572271541879891159240786540539400213512649428899587727351184476947185084983366383541044108657034944030315686501487726209832985255300627994407034595517962353879088499707923282566681785988500611636418504654238336796739076143854773080720887028196480946602408206688951533668938523947665227297724230471098187595270769093064056218427827205757936415292899587445124536297764289910845816748548217812086036930237704687468823315179903662487793633349301470847133312820450822659156076133799888785187033510394976386268642883619311564739196162509217496555067659943332441986255737454380408611799939710584571920697476845243309602833555568362867736404723775910734465861782562297898829741781061071389188252154280962893316933435229891798494831200829493195588626777372174831769825712772481662149053003004562829885254934441661688988509077693857137489437553627213377237982488469046038949075795469585613181185476073202696766477080014849195523831786553899007033740616609839641089538734901337957048151388549220436227159687757003055787219477027101592827705603166446901589985607562948370880430884769341776381764070035880463486386799402953401200968535697803110553168438164876739361504415052426023626945399769376144993354658465586731470063009260384869406959981807086180796808671833085945650272397090250786906765538057590873850353281434515614600614191562273638014739851643319837791777796005381738808875594824587185065996180007460762990969204125399094983464519182672895978048504768515973786133936346462565348040238758249943178279724991494302673969590116408152632443924102179266527230607445644101629972737220687100015215272513120935892722858783161938837211971187311053569481777808755498229690655058739209136678938982777975684473792212212161739148510474141908042207222253745147789717489860599923877012809852812910296044106943552497030466512814670253649903609582842214202456743236215068680411461554092155830739173336035160870604866168178996085821050622361714968883564619958156140218937982341248204697269105286168005601413253011898154276341168332292755670422711932978730497884620784953444370531782820813886186526635853842675403454156252786031906968802502770036913593226553849768160333119488503876061999934549419560475410417401800926741850822845782956643573485082330980107000865495508521676246689369037698262324267711162459427038756044698912243444546277049092444957506027168016135137700655082259664051197700886990192674697106956823491810501286116162270124243363938302022284241932932929463240445629025069721901154997708429959154036476463065000071495595788425987876729686449196828696972041749781474470674250632450871259125180529325413665615505482137297344253257750308740692092387144218383753056113312743578070645850759167154277177376304735288902199669526452133621206953807507216545861908502399890081001544913299549242698314899878021051330957245202710624392979356154595005598071305466817262688328862237052114856330768563252721024347540867042756677963039007192660610631650483266361625503771654169346459073166163919110114439949968392988804909573288129271212431131103490146060221200205405115719627458112927460013774386527949634468146253738278912190139890361139682817485059927302458931662601297810483117583006139604673907365114853804504857855966584835476404127432953639230055933496309978117609750140141723719926874096140716278017870591981069931204473653186469207730862232857422455391259822379962860646528671981073714183423359810941891629747577201770220016091588780676854071593055759104496432391917326220292405209805527211444677930856711097455531879087869062578220465660362719157340208811393464495952577195101540120755727997734906121410776379284167361056480535584009877672810300409426463033560687371697904612556901417898225131599233947450420241709758376492849572230893840445916432933000041727359849547976020492156647376751261295558244565166098813506381275752682779332369991427689240515625531161324134585238136244650603440054073697463970748883933574133399106163501970206707141035500920287337177594606692924183074461158435463831706384922065015035678595417293786962567454480300580598218872429534886626145269745339131420113173074883951760267240817211784941505538627425575422066108666973293691358351076055813909130378819165100813889075066612064046019845472307100413575133808417645995931101983236591764459426557680038834918795564856149739786584992077578275266449309223874250486260644081397023398661371039113461566902702137458673204732006535255892976743341737148097353818647656625366175395320672157845909765669714388747027135809484626982806519201385239641561578160993420243042039442717567131087098794479941210654756487769686544287311012656847472579522061787217149781047247181755237107897143292085536446327287968015567563241267762830669419063976273122713892100471391399748406693455595864660810055616679146666007129000389316190000787323305128403000923298884935492243896878105657250045243861672147665630579406280270133765064869808448136030481315293504553348578802320135167993768405890276772424076176698673090837091594440059840156275501333740803626540174173797130858919129046566442556300269092791311790473075805359474849122170550230663459406747338341202803735457338599087837173162400430921425087935731205182001031766906771610373434758653041147142462899501702845284587291532006774426374298172043206351287967447519873839203838303694750303557433010170714957676276000629135356492311242170885767211322907134552117886877068728449139453625964269382108874240544272637594180614797220239361556508586603655949405469615045742180405879958397881400780621422111460100765480530005713045856169620467698901027526221713136515343717661460079227977769136481639867997888759670379135952859517729518474293146410554478111906933223249947256001460921457204981446692792838868535886904866976661570086483305250576283382224124850780176674633565883254194862177769249687550888073490997665873910375582832653172498237386640667403847825725751496153338099529721736591398063690048295391508600287048183958536708308115737406977063317867031505020785545786920400121125441768009196134595772319356180218410209292724750582054959212698791322385269833870351572577757317850424585972033347620964826814669531100931616164649438948566302935331968558415824884934780162655098660244863344508695305161570270483788315095371079970355343275633677658509657445242774007343193547702073525006025254548971322880881380755092295020695984026292809853172333215668523570295393171679262538475541668692068033464665441036537723246026097440926023742137604270954558379291027933840941187192567610817665535047000390787852446611865664633811868312995238381782090929480593673025558530899528016857900452270433309315198254930606642043638764604588516029669205063797700074762300370456686634196932797567978892849803543722516853650886246263511051076693897407060173792305324177758600658047653925833528237131597525268050760172337514769407968387064705510714619902525411583035954882127318416175627643968121236533788030770791591869274383625862316073467918454138416826152996235450887279251041353870031746749706088163870787024100084795180701513551492982922426770937869406625899160571634490706093054756795005864268113157852707999604954421834438177597169240152465651418056378790126296993301089476259846088670113554658853044049083358334817932568915197496840139104991898053351683078122462363141014069291642273220445771189551383651733393865003147398454870848649273711558578288727296669001269580908947300750508476889499319943912798791670093880705626819233821977341643154163398818206302981564611698411025648503443765448064640125639646271591498340415179266398163652806352196281241693212446563577659024704265013355723827997362681147556053583371864664664307468497578605048373396630974518555123007556333238995141217502920763744679138869437451948993044600456135709963839512292103159824608888694712287521716781963522640320017033651065771262718201760923989581902523638934783996904496851835476383075232879150521392428753285566411658577761732610477550001932623765848696506453536403310173121608960415763576122502790944977149684051802619071085994069495675713631329192787955596959301315943461193877915803860823913017631680302712783416188540331670993767453181694372119051838718551929214326911179169500723482506957828047696208606400676522242387950909827922345828198273146883708834126788336973748198498895405984484256682269756588431033218108525144714838218652454086979675593742252705294200195629568753080930247142150006057785347158563387671568072964543813865239671037363061354422442976852679894338108349860848770536781451515226910993940761231760439408300447497501234976793040688500099198090645473006118087777485318017933037422254967078085491530590443593913037914102151565029210067799150291260142981141084203187332046796722324585242202945315399942577843634692467318407151348294630306667338677460670438547889096170146931553347805041661956018690667133399438220858552796384735026910378105881844478244884579084462119079863276353832635316115562895354938319939439461491651870181939593157741817672450144855051268751465382668214096836255381550283752445795723956324958963056080553950132509810279488339632853426045592095818913261410398847865067991822764415803684767310175439292243059751107859861699042310724868780434119104399100809733137837712972939540106488474646389954033912203186785391629548688450313879416762242907372170575931985799529977247151990653835504438308090776116253220000317697006386518231777669171544065690003585620468352631020961703886082307007956643708818439282088230706415564909733508597389536897429253004497845454029944042279933392973941161135085763949351921897918860930371237294668737606898632491948056451635190288043002337134975141024867693455747788097958059515644560831259643844066975479017800015793682719126496787049794276469778555677152480701619103284940445295445345360667254876287925659888909594108396974032569727348017563544906706100363933256951745947417446244871026468387967461569168916372374242504501598563435191540011677072139751117129993642565830356443011291900318689435574478554722619751832061115399309431030491845614445618677928213557017156231091438201319602998103803646893234462628260902611478991263512665851380108859683254512186824934256882791136007357914358705458750145273945593586689721828278602445576583176083269966385099961639414816076152015522536759601992043352210624405363897412295414163590409115584032100835625070798141772157311384155963576469891879672783645167304830011123086366174422206437897784129341467137729060387080781926410362332298490340036188646799308146137091736485655081562160775718701101553653535096565268051290603743067597257062041094364114724413321900965331921053294998338623526136802800802873385026006222968865809957311795912416326298562729535360023922782335684953936252938658082391098163518532018279426448132792485958990584227296041161412072445881291215991494830991313816705745190932738649604988670404246086662405052220537476793884463694166018850379085125065017910452862002378590557375039092198800262549722618249738949779208042234920540333633620707850102168591064648558726892002636058065490964981872959294721033080722381561414417979961305184009767822742927806819873302400559311063970675392580613716668885524423828938740894469892576364022783763425834716432050019450122338776466766099995940643310457328384749474238226996155733122233419147052917020590072235462971199459139607233695638479138809651489109499721283075734823056078683397169106258339742115802716813449259593963838006854426860848193989241400243417159806455033204222692579504545645830607810335561879261402571484739618299655587745519213493900359981723130453886813727250987552341195087971720982859502772771710335017511269220262690987541295805638057190603319993047781116078921035679536840048764918654816712474354316336805448689183121061541274079917780602132859168750606538106298187457900074453406714903148727650777981855400467869532917071075837392312835209141039343779432469806232548944872708726103895319833675479371283521898653686881695646790210471777018466515664023017844746924444764616611775029167754337462928641690324829242234302701540962631530588119964520822105406755861003014745627526658334146375401641363853155542688276129709602055324744559165786066710164304254989191166826511816230287007865721698860971732878680795187105165227467658979145118693342506569467651391160803366084293788181802741080841027894311400419296317553854271637789065902619174616244742957101762470733341895108941947721916974556939767114491744562736049329344397349682661468284493639800452865810056945358388876734061736595982942334479074948598422667532720218104701914574930188014274501575956762582307411515784117692499162435491906681188468442232688783593774934158884302244654088307542019360539708069843714723718769494462440421384652892805568616024206295415093288767305391141907105047385705096235333494058247415512482192844220556282552782703589882692770162805440581007284377997193683291949166262487837964887701667967924861361982864652613099344065359769704165510250422332505820251118297595369568253029768369826484719790551587297479220700894393044148161726028997682269276489369330589290272101820811664232024160483429609000382938683337161145374823547004976758460674407225462271382704552545748215695343512490058989032023837380422624248668708630771554010353226773574679246231601240217314294622788178777558430036593132447727476629835607231491762336430701496129243046066738853169340167002376249173728496042262044483811346311551223861543206850294326784341780901795009008562691365512122427167196918369971562010092991738408715784563389776414710296214544149438632275620294951305665930839701771946886134295079292299952377396392858573935252929626912742007538450159923642584627837902389076713324712885239814191987110755171030500677390215960502923347440657283740627056959141560678482827420334860817670811139659075227024025467682554012485253627484675148005891576814038343424061999662970328399765457474202185300966703008560139577109485997369363795643470465945680833399208944466991985856193392174918556618975682809556671605234594375581952587618906346432144474751440845861122434944474831164151217204719464936943251998844614607065378307964891742859601250887865938622574688600028720431472506539115160647057747090075578243360364990434015203446533401707996958044713083304194939779804199467604852832838864204056339624176069157193233949944752970746928306378847776492230795784905966299924827238041533635586361537091851084542450456827275971877203675055094040587410198530421362612523786802959484094111109429135885794389613283696302551386070834586819565890699227138530149338487642392003695961185209609246952845225559072392541540169521325570104748925633763421261710767762237332088001600279123449404374138847556053821535993772889336250059460701549715937419122615444961990586830379559571392284146032724609986879694580706735760902591434856540909615089420909085423239805764672963337729033438053680415632541990904102144841754361094980998689602532636985906941325095899063512467376290006336860000371014362001147832766065475026376499850014112964157888746183811958732450866441778448722071573571118191748469685868057727167986444969276414189026842503231347162104952873565797012622594015222893834620943293878191061730618315562985627116983085600426739055644752126238914391669747829194207493125311689465568001013806682807411797071384088978624916603742701678694125913833054550047950017586269130511568204408163888293943765985680205035713600777862254766381306531895057466664263453457852052383379118958819172755738860024558673604964562004265475195723074310290541064282562478403111715343333524487179373485114779888785436349371842334242344219511731060181905610050570918997975412075592977107085379027065863699942012896754161522585311903674842362922232708568844194687638267936017587815600915364226668888080930793583846184570274217661086152845318727090141252154797159124803622142788251501474164944181498218655467904761830372804881770431729929155975873692276961794166824409560372612237886503511897130514490131110379853454929324853686464286318284874074003406686445027997183459817786644718378514431043903444857902648894854748044296013270271388130527003052833765754244118503987038602871138015190813683975547563505376554427730645115077472821063166406544601567430277668649626105958757540764453296690519566718364586052815757271344990080406488418914295790690560299938070405287448004826165209872801996357309817837985295513033675850258308754051341101949067663811346636923892565954032670354276768470342635378431306340586240290946907159313881961179971436139382529286297519916958502944321472363384402878951108032000251549178883182832538320788659338494540499805835913063132474882065557738336117104771958459149225063303501633062204331174953943950363119698801807560309590148349102037384898895186401801234394497413217626499215276919104682472391898760605778858358554955758017073121809003990788055422658762689308430135489992928361659438270369724697875024518257489765603075215889117772345154967234956042253504627918402163954975930232246022071188379594600970015838028351869789120348093953304822144209602631233936799309193650519596777120704676430404735720545025324934109015042818580336992496524259292537888900287605373878297460318269587227148951865084352774722435491362978002380490968912677117187607186688150163680538877663170074120595117963150180258131465131874297235347084468785347671713970862874662317177124698346865451312678290550139135102138019980264763253781793889010359325203065745615029650294659048901198171233845101790935456163245325321291782269977192245106037442830984609623442650287069148130272066466954031045729569845180960306656506015257424682234396467695266851325945247653070653045133345773258066896383759474510874452142241829900461829902121719701982278669992083449940172493963278312158929393728055112497337330061221827453650707158362502024642666812604903139536935494094352875622419790147472181888690799328979433494435368271360322910244111576130338725741601279835446713468366735655858064401845376046113404654487003176653502566634655561201234014994212901421229037255653323014795327832277530915995903088407584729520260899420335321751393181649756079744814487942949374381262383802821904565332748526409254907636325265675130344063011975983708546364292726385703215575053168883697350945139380013666322809236139692892083654681632837649642883848126844733374482217361593328819097957833152482636678084422472108847351971085928078209369067607292036696023881596959414655830126226644504367910084091891272729302332355815205729338384760859392454723785422593299870366827240036806379341093755829287118111000575595629751504533125476518897877621746250435658948764527216272934810988350845996177581030101590193396913716616050211591371128280784454283346058800368481185806883564045113605184389283524610065832025016402144840347314724783691536416593149242805736435423181152754863313657180401525773764742859649504142594462902505056427783168096635651945428985786431458056751615830942080402114656291875690767544469590333858513781787408551109012128434570168885230808350659503498519538153575594096521448883161536564800978650316526153866493782498074193801138575911780548445747207449603554643658259479795991286358079309232990846586417209212140094832440539404653779690313685558785580136267780993928221550283625156078538440753927457211699226585672467079011138952573492603177052752677454089219182416650610851950628582328595159362654264403906112620242470977015874481190814802304150772018643440488866272078921318223071005388661201671851534291606989939507776808323506816306516890884084258984647972778668475760700078931883465995245020148039878523496696267536348245090770122257338798622971408440394438623712222159775128243001234822880750476858840916757905632323212395539998968159100025545955931899299297172595236877581781874019884350735047893975648962747882920761044446618540659349366092665463892516112543164679551628461773197632165924179075616080433523801653633428668523615972869365502656177537184372183857714264488488628627277513078412046897558599753347225258019950536906895716432411927742912911004445471308213944761419031037498538509364639822520134882976638231241069926279827475591463835428842005952420969276435176311066579556688738299112502695513931151389970908112111192388568420136383561139611604789775480210306449881624710986878970937993589866839408928472280980959557589601473772978723247768845776096541458185103813664510545252280775540744404127169352708716914152210425118762525034287207024594878581902535128322825947112938763871157898989598544429137741250883405652030857679310059033857516019226078581808104191303996004764245714273843985526985857915996694079575213867950151469637734949639912661184150121401997042185419121426962015809868007708695154521159535577176972100934942996482166565658198877553289050072672795202531534377607309558086238780003855158358969805301506358885903880897458003171748501585028644382234163054821264738725745539983153524719906661535682569946446764049219510407072829609920292159557574223947978930520291866139438669080246638788156698529548260727076303844728169391353955762036433538556132650235947501636440516330868451880006924651430695837347365160122882955667672372945467079683607352438332323467649600360728205711118001745686286228964644489819994450954235100306471858302432278101573357356508229621867050299573183478307446966424331391630597970299815297785860079915228707190588925830693981939517319560779218307713428900929679997789921688729115143582271569734339641404287922281020559950875949969579936152417781491823053419277408424163987030924287413740918092756491730973546391285423500471706246588910445278651719968934891714330215413578201799693497210637233670756689430089056040845581976791370090324394227519134064157083672814128935907431669910648321050824162582994485814204031756929818098604206551172026321296939224464298200143532912966567005403996488256503084795123429607691906331346082442012727489886991661871211432420935840867065507645893959014364577374360518252849041794242390015121271189728166042382874178405138902863049695322214695506364697956979669499606638078946587048474583264809407851146330313463469987354287820299163929119742839579352654988893377766503950108570191515003966729360944918502681600074900044113407698348471573328080527916434386897041273083556766451697766253643753849532431047995855310795134055662604454185508463598136594140807324335766248566225588739853668292613728418065783872058682216681768591921348138452918115123444213671769958561792850274375342580680615106698096893149084512151421671680764820838252642178753337304142320507936735443815097955155529125942414186685657525621036663902355069427721774415234348267242793092961340799881055938759262674218926817891423789762895181378923190891450053578009912256249229321897083354298171110835588522834611062213209745809692543972932818422649025142552393205731915955536515538770459838932519392880374315829649770784249747643221110177957615591481076936972094321125335309636249098482776094198750076282110926405547321510813280627581470805615919863639989012597129751352921599975682028097118705410225537190020692652555179485868198704759012607142704846852553640745741629148552189797500196170810622079256230823079704681225253886692325016173775850245533456758795833024917228077749294441829798614931958330011892862519460806270704910544366093019472847007096031930807979794800033681121051247442448085197246537197925708892223675441428459560638186444307771909844099723869777783770931355948420672620667217058202303811821688630153557928989501173627534518001681110075991601166035953422196783115729022923798429441470344887886983199416895333175079694570000594626815925752856518973754441389294447967887126388269180062271069818820107606076162398638524092380497062991095995393217896604133240370183425642456367206837839430242334478895667740980744381362051956684059995593377482180735298662599002000610910835524145406797388160862578060644986030790419375849063969296402564659121461604034615960114992782751304243222744625012217387133234696618874196488734876394411681109181889456636203997793137496811277008810153464953633394467203400181104881512818329056783838118550518596046540425232875137010997774280118851946662607161082223704690357600319332435021356003614690600904156166624707798690464742448415116684163288509854724920774158320771987766041086085959475993194446713454468640350155655048803760314406020073918766810942219016486184140801913982754447424591483799008710041990495084995009848708655977688150252763307437807227768894941449102711180863927145440061167765046803591665105789229494954384665744790518989649487558924594583267364651415374665361594189249082310779595969110601244333200662431020062742851773181104026269197257148765462303102086002323408989711847619088256799172222063891169892996547168156029162262077452360479132476442584200296868457132586716472483109055840024024637276726063438661646778047015911903766814829086971059430852053864272463197270635219824225907329672046516954917966028287601574164714280444859327381540545556843091356566953871007868357106343181008743076318375729695689441194972115987736281441991160188960788566558925587416646894860632692364343827994932070585782887998308517024392578643281148955271750657668089148089555150036148733141839669661855833590075966166837729316532712874710937503180810564789655964767280338788921658174864812712683973517945304669443259378194917179005445002230247413405781593886407038812098424178300586227582124655324796210904085634646617639398157986910720277548174733817013354680457259780993606573458684178474016023242182176236168375368546262769403749540517566287161434953348416565416102339703425264673242559163261739937229089874446086472790589855181763321557515663952990300726081061619192913218905156052034931916832581048676685636111347834774631599461180686251574257632657880426865829313895016160932012155892483927350717688200162090502809993242538451568189166473894894509038245689453086863509112825197724201897715297562889088068347223229796743028333634015159153543991098801088044395907598268439146341609077785664192496633656513978700859843324501973462056206575090692680716529696770000627399806942769078012665195409051186797439071721084406192489800943584725289854192901330347336637535037357585073441658614539182767588616207677098093015263419801861746848780688828434239237480316812563237962150916189392144180799026698954933240696921363134765429540111875648733198996767601928593086175022098956010172184809758325384757942716783825375904395103616341626525018661204359310342388271987564293351274690663858463096526241514463062107360680214942842821555551306925014965790711493493527056449718139702493315877678708702333329389156595645611834726170400874862117530219661589088163160231308856517811208512642796135715312474313195560589860440140858238186459738617157478386313354964440655736791804366350152570936554772054343551135502361140927339893883661034648545670065578747569206185151713679451608145610354795948836090129566895604503884607859349362661717278446516045896118652704883584387679334755347438786271058212207559568675990682002994630271333977691600117860907746105643334904642298302340200681776366361726862295800852331017806342871896597130136338010501330406463934356001473384924392274930966090926376257780261326308862098008512489557215526892771135925017484123308714096442288015458119891124911160075860081070070069057740393490076999806202353140902612101860130227496810651980980271510671469569726376622478517756523347769197668071534327045961489609171675111840212653253656416536561984218473817378420018278293276201848954029311647870888196545452940719354035467102857779644468175317295195173504389670776999544093526887677892716874369465946657501439061168540766275235681555411106534353492117364249082739926648874499503699101500456463428571336259174294040591724363778464002309299981681270251313416066243786460872184942301378132642031679435848312118162031246785433233837618745682205294401195812204039156686185600617767086150262793178216162274474773581381822898261000117178839002383044855520208057544916601188744805114957296274432125589548207750303464623156271634238350924198160649759597271919834108181380096108913344241091709252699026331939532215977742993377034501990154786848197790777084325967082220579563132453354035145033298652938129455129996483973764519749695525656077349745839974891993450848920137156782922342398243389476864538552859789055542643464502932498280893480341665677334470914202365523899371893175619488518926500419454809416875960838292180460365702719726497392294119809464506352428025395013434677507354504224716186564340978124469789611561475049574034860935226639311382667490728371531047723652224068589461548945281515454167047887004851309799546043038039136902749664549046015717965863777407493769753891727310148528085494796526343380232437276103039954044340324753769797730830570822931564672876603795051342989581638836539400628888055315934605960192200684296683159577631020318669450284731478570450519475938658952909456943836221975147847915782722006204331673437073319787563944883813645393450310640111836060836291932363698638971987933959064665767405423559801627649364806946509144262312233177446470955326278738481289210781039823116352485206779461283332998410141864467065094029766581967305310055456952602900072911128343395141998003852270313652860389258281234036322280239779515388616625335921981332178856965593790181983782065444279609433750033014788126167043760287698394499741904764288496344653611884869506713746552444498282350696707050007036924011590504656251806419869004091336730822205093401729171067340599530801356876310281706220857295336913303858622223480423520704904509451372952161782805599664479150088280939485376020189357367556272276288712743730953536354345310392264301071152739775399605803092171083798710752918722917936025177981595196862528016642310933783143663217943854956893032372553943337393110468199377240258811260866755002791918155590126578251282713857634368732000538818508249968379274406792199966323758663048434723246436181542671028598690966888517200979601471228880307185083136388308973447778897871151336657015801555742830395436308168871116202718218345108478294421412973123141472665877667224907953069823311754324658797838607666858510585306599251329146773433436809204768717193375708748815296213049280761509866985467743354138450153381866507984605660465586656632993011303549603939500486917995175499183209192480501002689419253020360719077790165977847581691003666533334588756444865803663590975818825149418013425868186095781543670296746220826127367874312610040121981300406929470551727770302274041699853942770680617439918571367543658028051576000472370491911360582458262057535334253365817640574888509557640760389304919422995946476251023229820415372245571986138495854980065973839069275488410192609558469344950485136434157630974421480740522019240167895042258773685376128106632777234638610810857534197138290436439381138335182552741072283203078931219238462989018635388820081924783589841567062029003329694002271598307276834140427823519561822505803601625029327422836207492173794095774824356948961883527768137219453162615654602622156738623234464948359941472640642466526290994976728940116662228910390602712948147999050983870070541707376070328771508413798449950777108907572594232915724296321458109161637613667444704146590907881244435758448020376036771212730789760003414480194667213285856815012638786731486657087361475791510638746211732071541050381887784411026574472464604529178841091859592530189049963806125163647510256574852749667873479129499579124629137041028782472971501569381233230929870809913446589692285758397487929186489727180502267641792183756411206181980668006558978608112967731625401395834561316083722173012101830836704856806105965258942290195507286263596116668427842968987144262586181838269669198649320133348707838529280468234049811157438324491352869574880529251331578200769989577410197792013193355273891723421383409893442706626337685380996501990233480975885715888872616048431202868906598281586871870885163184882597281326223165327712670698446472868138438249394057501217660683881020962372406072310880928280405225347435536620920368174876939985044709062248967422042247463218093265183504264071095990234854916701151150379297202017790352194788302331894318029498963981324140022373502449184970485100557806327047359038418387762269545454748447005166651250431893661028588892383019543145663378617947384445464893145302651570099335476728885310620275307292563107980239403970706848583040752792037009809950321360534024836618506362036995906461184987214280713828169987154618168012203417811163678262166708341268622607409007797208625198044122160968708211447441639698945269073098682298869651323657367744290341310002171540058872007135847527279864419211304100703653332137181304755135084928579360410571707056321502963839290697783467558304786289968041376160995847586694603103075105001568100172504396284647628983438244958002461070496443033945659117804418950822798236464444486075312375812256895983532341923745610344993170868897732776633902261869825559718277421003712337361955041009587095574388829114383526301872095722985650539667621163756890138390115409957994841229983252415347974087017678128840136891736589402909276931289816497157382787364786824931368825497212450470021765345516359617225862310897986736919725889785695954388623300663164919497384737539848348795655099866890316376308152287755699915345049964723264283949169898866232901500852714183644401516661994788868026369854773673042228724996389946350229708039149251549629610111895285324970833794872815996062898638237999836522425668080809707728275631278473502838747250976291062660035520800091283232836934806864491018128948919463814535903728463763434641292392437744888761682391053319719962403467030447710999855469718638633629607765248034077187823442996256173815901723672885712192155150730936507181101196151536177559645270375115275108829840233954643083640639944451959864803151081104313784504451618480368897065342341289044727544943185389567893369133173450246694615162109372694213815224267930998197344856528323952630234196756646942501752420164538572058416149291214793433741124802540368427121259013667488066209368717182914331383099826082632334254245115323220624526289416108556200012884463391462567425932350375357400588569196130770652912777658383472671331967865787986632695515612820098116038802598815992393190248555709560440708612351918923925928926576694385170271187196350249997273725245472448608815284512848705471841025901963658985489848922770718510910943103440161006369257992487931661105586758156557173462173497587653095534225508424217022387228537406228508878383579605085232463504619523974880333746065802333793648944776328266631093528052100871860372348092345758695019305037615152329037468888243511090711926419510937557479519799255363776651362865248757155769197845022588781291075301654671204651683102088568699369147428481166600052216788947693530984619829822941592504877313187112525915828291372839829729607837414791390769034665517436390424275501622517589794024370297037352514211049292960866803422193366829802018878184789080579486572696950665396467588064073503871830180938556700579578299439707130875360986646590425055432741900115958742121208505997130957266230167852217461376651549361368232227807267436495893980990402566782530963988538614505531799687750532489865379330434770509083474213132302655413808342474812386215037779092225233102445713093218702225451738416645476196601520997323554711431341575984925537868640139056524662204325533479521237021347537018521760815652374820142799680717989922423348481910898530458067405626601522206704269630270836527677818656336582346154465964279898446595509336974505444725947062932329036049847021970705122249497986242105187547321982987149606413166620458623548707162296230137403881757165087731242788471120192844744700867395743550276863419444488694799737051586750155266138003574228016896600692788910029623981855342883906338037618942769203862458312704363327212042809808141765065859260513783652412998587908927311773597583672231387759838225598051430454826674741491884964053693832837114877015437984604550024803609642164915471707676317033551310135849257658828216089800668067326863356150676931924159114121447319388638850904253236021499241332725330542169190321562253517503413195532018459269128872738799466920647557327466334298958045378598658880937583694522644229276943760747287172280481369438689769174987949755025891881266558086461840395581451660877902485917196451861608433194849488344567728480090281749475987400847966691875626425744911540666105367900035513889879636773884761491336104237779238076867844765408722243633753559690777222587534174391727412238402971562462436860765221679668530417338287494298249967197314634854656323655081102822744220266737744049108173800758316301457998609476927423556292606137750938989215962021381293123895604682540690203988277797258163678649324107795089314165079402023524760138848435016863036337088676310000159507784395328158978601354761781675659556226983676643120368713580072031721042092659999472462004085872603566109637844871217701912143113750080406527273741450698040659370760409172178952285909261317505554012950591350223164716630593856334845692119951709282926724388848615817533575538347597059507391888025079578581539412644719137586790892636270313368898738278693376498336147404055338276981549290745619953595338905520371421445986252566501825443359523708037056602066401974176856621844922883615735280415985301519113807722799316047974504509245013191207100831837907511794811043962062578502317744463672232314952748378507549990006483770985429176555785645418907294511021669863818295475235997295247022927583525599494144478603864016732263571760681829194778561262633665033457975019165600822739766520003712982357823871396573355741939645497171541552834390739769704881157064577281532361878518769806886186640248873620181338388876881719231155254136755259378868149376586563500841581230982468592621359156201682421575780162435009645737355343792467062797453207143900841572928496094304147417634570823701410116312485067161137108895999141257735128523277422680735757797193817035216044071633482379502312890662900908204503364185456427322969424250855714974990361008734221287386505945821940679464387072994189000297743209895773424805759968639509163729392219656473921691988868796310598684902220530069715166004688852820460196043305685640629285709626885104492482295311661988030371341778746525031945552312476521666908111214173637040207468317834183082325253900804034731723336408673055724421655563683456828065858032226289159105565091095489254545219013007587952771391306352688384615342142722706371077539783179406793362484900132949692384579514112474986619987841742352813150549833342410890937623102151120705686062668026401617992207375528240044876673589211462768716680329469585046454101270414252715761869878328802264919355411187946500560290440001416100992202077981931137159555074947691254266709361000441087814101058150592106496336966447800685698363127675225052193801655775295871522008838085748007115020039881295732403923349101613776456682606516540307134068296269067453811638927325254434962726643914877174276157506885669616357162346554523639775398139586860221660680412404844816941362427773419566031835637872290766764675208267703892194195898538932806119755749307107133975251470971793053131350606959595742926456446626396904643370078312241655829612560627666880507103750917207963590288417505402478228465714751671870766666546821735045872334490897816840998208235934663613309615156520693333677361779613295273848218173173577215658834278845922907809133929786690738497622186069795025385529322721722901202689509098738846000113161863816240817569230814070975490060338124212654830761369820988574452573248458217162166699927638387344149868266361922304914915428323472840750170920300967152126647863184520996420722846132521246642838659217771978331203368774791599514302879068388217558405767334259307002359375747678779723786865668399556356574273708830158982011666889524659793211128520864748684206189008459454942723134533697957300747195229233571218434861832808972131285651772847397634637632053029939452916993433130638786295968454396064635107733276501033310682790425112804773402051593957419158475534401155747187619655887474525754132033019427830941827320638896820762385981803924707340565430784308409078862015391509097004506506689678830034789277724222252534594333305086219841385554389939906388522440039266344896936231167445959189583783360870746762269721707564070284363447446988648296722549050576636760885766335763240879889045498042901179227083749556962010193546389773849015764282550424779102124160850698029193328555572042649083838156692878165377412532675308007706819162397763271218888808566055112291528268243783111162061256316945859108432724446995557507922279669401129522082039405076287181430543831114223299375833652713977607847722656233510008847158002208221248165506295466962431405151494290240232105739367592237879643405569258599697691378886213776557786594040953331404090571063909136205835216642029697359888043401063588330550636819671342057251812902777847083089802485042072439081203579951436381249192902898698361856120430252483130639519168157578535111816285962283792654243490774911989342642704375947970626364293125741759488227267996888838067447942582860405983773637945699437821064711890889655222771211011759826955678421222708709476244817600986292309776380633121518604743155394499241275179475392350568258921891526100211664525552436218063590602004343585493572904625856220332553674022315296173991389405072482921372958153866129750183211276082393821445191470086974922770367495828246987657316522820662574205439309777874619544901728936476869851250105286409347409919965041513015037468211268240423680438694712408092238384812435045721703146598053085312285593622891685661361519834610071534054145739445094083678794232637925642677380216926752609428917258028551237956479741900205427870247856772137712515701274028634529097396096425455871604313638690401680441037571421927288497074154389747260798829378815950579141017067853703337252427518165471990945151111665321687516361874157135177091175298730112365369391743824206036912997381808184752716152424001988257952119738064164458772291466193278125378573059524082153127904445949562624153295784109146549434712935787556851643309138292149955970833736328888806328340534117308319401322349501612873186802300805167550052153976572346719562146336550250822485498240632895466011621639661246339570735930345795250993661335930469708820890196986417343249232473953159374318483733128698771383877593065425530905340182244869245503896402181027306253752238107891166929262058611440481855891009441262594705054218282474286707870392531961773409039404147985739181754190012454032611506196385014842873073568813281043107936598582532967951750219345900079934210057392843879086755222726112120584919738825387026407432703140390215857568811281998820216346126734533543879348406371136710198917587681721629638517846594242338303161376385554900265517072981628701976984185832600001925822606228416803231591047538914268444869272418636718037877913848437003974455943006164604798474901862998149720938530604418502054415440478719784142757783376636147069882032133183169396517888059008534657713213672587790064464360926086915323922683603712869698071877328169473979476811072741711890083704081140268211576213237205667356751995381843980335293689136088218056842952099524570151144208869141551396283530778725951178614241925834026085569383764874994119327734746768048115422526241392566850631075080223673183547943730885393425239576679988853851447571958860471564912606216381187443205482477340233282234739909635212999958589373327326060652591872822395999757520326986416547147010601985333319995471330320060162596910572286006224703001906447839067338130916168647005827127688562698945963018755074946924311353048971975484350577653779711166505804560609422049798377702480379760615568046019662143798317584634310754883516985034142204002148941776912609322873452579133398326954798290515804710459210653648249298686485985080885439045982172724204935600849979243443130569928303605037067689319201467323852661022732146888616978473177498043416257348109574556947204125992453613135418141890736258692489745352006996342165175831270945974393434540640044236964331367470226956275102181893119350005596211035797910453552101362803396134262833486119972810709208049418415467606011880928871331242540115545039806871956016684470832905190629971866673679438116101282563699477574178402657723527589192437256953613074618835440564100976501138659788044132798650099016851782891499586530572464391731412604134600701191322661224803952933056783179960537400055019495845070944496759595480719027672670200187373056282566637055774532188359704114386754400026259341478185265755012817175822855664254607523355830079581062259031105337268337376869766242587072605002091767026047926140010120721036931320894022959874302812170814017923220256160622348769509123826210360244878097123255277398182711354140614361866030493243963168833914037701389010133322636895680319903328096771894678694152251702996665916521437113847971832715702915726742337106614278395196703411690097568953848126694081396605099967824386042815357441369785052128635357965936149722613917794789693878006191098496946459752261990747263944489328993149895122885931531205050542494500748474290604180396425883609556629320515038575669744162419301581938517795703081337930550407448055637397450556435671592534586939989612129322526603979483735233419225516289990161884825827749147950027464395839356170940336848121044183330578220432190518770270025114187695109385053917055969960574616214406427585045352051569910587098457071286830364599167166411359075379571520812281279630017764580249349520608758723370211883918008805308540213432535758216028451707825744176230512734736098036668074699548207173820106507191139874601738818691423501995629555022357209643707242293398072521218391634617401329922195854612548748868148693218615308176003746575626623098497266547038418975626990173910084777324411150337328885990364623289881060983632527135962266529817461860987144139355276499481986840081547303239434924940899159858421468301192474828614836592355510241116688888288257924595522555917645497281587580850692081938402951254914686292044591790597581477088852752784075222118184236436249733202824193406136215897911507965535278787030570908139804945168035697332017938074806682999487623736758055592318564282635215821690956126221826694033215442427955071959756265343593163627526103734260135337847131217689098220930816018515832850659641400208476495139738430377779514642184226031339868155703414437681745952302400095775844249472436832841007801507219881118448917263020376467319407615726962255678424406957463068048611347631341227349205291620430757861782296664290755250836338001621320613192912980971496368429437867443886294195235154943333125410980328117784526351445617804571804566122084836231936453445594002046378537302775671763650992601959209367788468535487558384234206614982032919370487848414658410138324778018001202707132938786996502069054467089248007850228294066063529810004794842306526670605844355247896808813480882460580280016046894242357355994662790233227173966145849636867664494631081812111542307338780498459519145685528539121371703371776800279242040407278904195188700809858265415815617580166511456309563741521960367293515503103209456577264056014656242234645518955098144534589678295272001132547504905215519416750440749118513583959842489699423114620567487552654702177143678653381784056469056539852499731453993806453370802497506200198135530267962109741723862385866283054832175361439614916539207031055947979652648858730488594725391912185911461273325405726877545419588128604844882992366641917818021807100634234920265996409264042064741356627530798785739399423943737818930390436549237792408549636484910280084279708675714032472468476572297306670406319517825138273464945834797269330205646061918469765671201662222170457063516045162195107594077356471353030586511829083830839318174778407422587127811603727036080726039312687894222345365614884320463170116905327071884254177649123184557044482116460507608067058505075132529165859091225452021442285256853474660280316769204769767953121782835584773031903696221808130432206417894812232776125641293482075953637917313934734637136295387525094033500451094988988377995444876754769710941795932874696246976315727756955402924124316038196465593981762803811798668529705740236393684794436136330863832082394432588547279492649892217038605860248304755292820703821621326045456561841963358922609288208150127650891086277655599972125351559251574638448989736754706865801261636262265955445717882713008557264609293775233277115609352799022660807363987093033971468331937456154077120850852596595019123259436520286906888399693606731225915709674363946554069290305489888068141641284422523845177098146807460967691220289829858233471720904625085739495419747407598557138170949770440573502670955357384814924978052824986178296319667304393174295064542878118946118819477275637853380078884469508552200092527112280075864031468275925493510245216176916563306586163337389281466288737700320932760417938043686810889890423063686859306659384442630039267090222103180489614794401846525122065712832177176613553277827145733877586613400241295300142095173064136826005572119438304458135774483948790193226230396591028228348564001046621437308920519723854660642764991812605532519809914115684158397691506754242052820469849078217546867620507930166680235631322553942921271581854954350128950273505252114603195899145691832935799592677768089446052629114101263531755471740188843855637062105637828097287213598474576971199965800491677746487331284480429687850732148485899641331660098351053166326076064221897707653445014145164275197978576154758620669712484735788436924802895652595037794724777427212980227650989284838419886187375629308927985534831022631527908058263265778422689811402524985422407437328179218259729024924901803583881826120777869735677660416141549378277000089027253727429708669444338783774302050911294594252874736749612539525931872578220319312232433059688168238677416660304642678677487698897744965101511498542070631084909371126000426889783129167960010398477600208787084657520889005696434434636085035796886153215996463461261475270040546961963292465208183711689223661162722756944911762774051954671045946738072032327466868759666546535381881585888490070093024483783894617829476289689155270267073353684921762736857459998406720990358817971930453742066229799231475111368034339416116840910125944472334276136374284311367056766481158282075732831192803442930935113125588120640602906536420427089837311019278256442168037166465734048193264065375277090266832024191816514485266019866331477518244137019799776905621750272107003462198402968451250260818638069384038679621638341757558872962415952597636596463727263492709643575383214363587233294858827955774847960538095116240264351495643174521951359356221630458748060413900715183268919573734963383582578442167797893645809951714282890169916657272706541674722472558566692064284037570365037830505072304317176837412305206599980548955323043361636996948220584958261968441647064241893703496900300790961889008153911150948052099194984015637432977244581056702480649041052503901927029679370830817857344146437666857197688978327207253605376079052910242850308632535981023701099091352346441114553821205810793555107138202048969229737307449122137471669260365681615071476452613146537103345765606661668783978528579289654420045813984584852104089598088967706764882059895243909258035241945032980357327898576157298103615551424573837044926784926740803332753320362444447701821245606784168331228148294567169370585505755277702499096249681745663872344978482789023092907800411956928576758963419930686479349185938457731837656113007116720816015118237566102484712653199339693808675816839987814797972448306970649195703322820293413459140522245845692756085870039982091201275667571897780385396902512507574017855416601380349138037806919664981788394484996667131064759411608698504278787269220806367515960202704609329461349368574884712523573325541508367881415992389123862395247623507475841121428566546536023920527540465406917589504328931477033680043106268541247330639809835492360251931803972833607720815755992836262280316265606814230396114323825378976980757893495128527412555737042989464413248548573867077587539831984321817075111202355846999603251817704297136474880368870975672406850861154981932195425317111940285118085517401083400403647333829370761288255904983425032496488222933860141331640291957070644783318137853892887247282691481853918426911539641622693701354193998542210583898119529544849395721836143387596673040096888905357123414197708677983761860225932263743493496877785800667130235678153373833871974056746777810083777378683744067033560512826652560775749941957443367462581295900355370834022668164476817032801521197652646204393573123032089142981801141078043441749923718464219918118257546962616547642447420420106973497438245920979168554778457034538124350145971206973876420761470429702110969355873226883550029841547750224312633941150320701169257992133952580166937572745855967532408221832703993531094557645830451614627350785277309531104317998703124324667853921091915495548224390302067530235164681891437110605196381646957147006747562969094841628030110739185985782424567048815765001903702199402682009592727161425299078691200129182341248211470869532660670863719147664015739241801249746013379036319968282300321099933519365399632230872493310524209138653770808103444422155132376787011899371320500772147787159118063422136237017628905246140983987559305967318069141207887620013140282133929328016997004751044940957151153680995121929877714818982728929229106900139847604494974649606353941959486842163809916786284833523802747615785026744483328954941133534287706577627673461187664309498448544412685139454369648139859381318303582798005665952563713998414144747364359198479618471489401193176603594777781356033803575076322168178047736777462682878113444326000785552196733602501235289409033158439048149382149301033530494492543962516907364810355111830074178528243876209862107349172303844100433208718992564671003461619491408164082951434382700322543048621260457033366423071323918367499771629009139928119334785918593198760722921593831701148017571019300815598542458173634140406817146737552513596713293230633964683621066196676805307903408130825273587538049951030694583876227759833895841525029153611520998498385621442330867563126686190497389189077395951974576124932751558282785792778723377943606074379581044828312456231906026573237459395212163434117883231985320834122929138839773671026782872706809411645337354618741859595681206154924445685351507970539284872797373405469401508315070177597424753451405931838289124262291056475259776500007354164990652827612386318475970533595821941108522307696673252876228216953031731074907718277470789861230944779543982687313593495490497743081499762699527775004158036033753032178115522145430602161566244315565373195215707463072248194555014365047612414523872857188422385506377388834332484224350645737110399709953582243335921036480283333978234398663366478024345965555612513511744554622353401348096065719570857905973384719006326343279141618384891841086533032854132732045083685967012722273811966291987539365024741495534312100019108836050797776043184085678422531288817842835795054880626142493783543051959604335616080336018455048909382501407845148239145475414867581265769239529831973637577631612585855163179281265189616364697381121776652537181926069216925328815048676179479482543893619253464017179295020341561411552601521747532953332835284750591745597030013649056835824557554625489969804443738328591068434257902438004524919842714378808219017129753409222375050124348632593484022389493953600259753699829009408561242787652169835008393147064753519854948680455565367185995176274774536783950194012189238198039035236370023958950924812141922851481677413668110305831411771135743017058346951050615424470710152319184269283982667708032328263525536553246817748679209125920941283058871720673926180188123934782547389985782550601909956152870014707211214654954464682838597073238144538363134841558192973115178303456503288073504547336265795180208959534934539164070551179306568132889877239822033585156755859431450152112425850807451105190302822167112716764010991252524672152357335755196235313783977312491384744177764725713919792858851251133631811168124975442636864344511784168176277862469162211183914284606958139474419696356190060516417825314411166993570534121160531997603952451394417068167632342679549559884565822985300185279701939412810522432569983827898163994361190823189972282777720323310899992522750042764751052480475291835653767530197971558377893648924926642851263493310380955272412413309254989801309933958326946431544878355709739055004630423927751965010097880810874193687620000729595188750197183438440223237695394878450020262528165550824551984738280145005833011609198950414570490998008751611447315153573453172375222726844646558724568995206037856073339784202506850096542235135453053391664646960874766502508940178650211175729087825455158272923919208720952060094545032426951673674835395315053780285722269560033327844477066006186652400741009169403263739558408566442921485160240242110947627564044808971223105116511214561565230290352353740816665797838675842874330924831904743096368122664403406268393244235139776991170223616390429900423924080071844584133726828093486262601695582663344839887879304352326935157081668976899413745515635349801408635617411313888533194227879347057771317884993570379928730586972548661948486931188919752317343779927768548374787721922634123192186303285399443955589666520473588759725012581629520110953406478889560061762969170874668834946705505519447022056819470479893155832501366095057745940011341576682478467774609706393117309217160752830924269944000807047524800661159668082856840052951700618444008534634181989323007724018780076284977441754094227010863895817186497937405225920875039343121501768651986775127350464144496639625557001679632609838616870704099819686623463546814470545765062633538556355223911316871119198099586771402259056847897503768548755445138179437272839334516557520078798362962053504745275796520439894128225674888078127829925015796789303837602326301996546752663997584217442507085841193172448565079072830435679940739298990224694307159583267906233089284637685119014122348002322462768222037488702810036891122915412727852811913041085953137905947305334344844350136849897764781931740327870438154865404574109072738042491159662187725023803243757868167966385763851442716079756702992909716845140154426839750295176048067193916182957708528400239703154047614183675759723000256028173499885627282633076527607866968677959903282048687909935417790592593189603994856654798891791324192572396557456428409165747883850983463848000283008253703155804183328967636652920960951713858163606288710175328367868058845825194937035700855173649070061905786255819927147928111288569893725580264938116362217755911690535706073272549832431011384957763924290488381285446455648182304981852636827021839981234135819908976976995472830931680932907879044372579666274192924069528395368297444384583317510735209828535021731127925829999793211341020077509354652632889670347422283513957522070964574392946843487317119731534521465378707734138844301920928284573813216895911522186062015730087646376206064730981411270900511077961056548801164691488412429208688169456802826533614813922024231127127848873658986246797686827352479414399649574361213127323874214396842795048905842875790474080762012370677222205905051302006955104123624295414933804952966969262216789207149289173517678964408904757430039729429847431491060088171462882070204627511034221183232104609260629497866945513239276809738826140935047361841547828584819321158853475298306482719988111895223346483555366054158768554279344434935698416033224722182777050876716268864763961354065345839968003791136204353579274098634990573811864588189399226206014357876788959103962594587224765858924899809364640147284284593978805937968460066807868548394092567420226571010001403966635297188937395525717605639075708090462656920146859566765390244360381764151057498723553418465088284148297221471463114500594142549227535056232191041001668424691755115966271098240684551755704931245279200419129043729174987392229270753969395569380987288246021998481144191987596442734442266320038469277365864302674117603065239876955353783148412546793232338045483876606916248384486154578985215597725489020281336999960448264920931043876885136859612565364817628159581122592479158688260057446110954416522912144800613021376269986625296543657751460119240907562842590654516935283385327964401930754246849410996651727308370927474767748249734979702349963331148707151223071011683934439562617787035697574066725208888272443747281319642005210010461805718651540606710868738014932891353872613833029171605131228901365967930891957990475276298521053017898896113778501991662673276731658901674232157068067438248394422416482890337153893322627448362441553854697953385451976479336934285793650378947168677215974133289075829778712659589954394142183384201160685377005834838481956339038774004345240344444661122316442287263696010765488782970273090024523882798913356588646439598967252176719669488373015432887190712151727341003783842266544637208878949856539947629182466749411387164193349523745339938462742316175066595040173052750922726212034065938064123841628070962068841846512816517171161526686535264739152576894472908935582179002149772997450687465973211186545568300967727433125985156793907102920743388152505402496798568414085375308361973544473421049635971159500947442240478997297219164008153461012201365189185218797289531399323838593842478105205845669980328737522369119714370265659382807302995735687084378819590991096299815907487427187170527699952006401268447022181550408724570628440117307954686264240532218093338220307595503425134150538425048445046424518258812299160405098267106750750614723431176362025145270279682194053297704027019139075674477487261701401990854646090954779658299927402900860871726727595297516350495062305797607099107093775834878964755817663752683715124897724479927090705744530490247419300929785559437216126267869087180171248772793475096224249673423586905469893009334619830894102587701056793006602675626333193201056273260684960315594231264976504237596232757015943796290872822675025290973738788959630267257408847990869573872612071134365765928177618345699986318144164238691126045270045593227988029381685629489168800404941434995746148377978989429287747071193768924979336402662702787372589107214579627660990459153698622548808128027231037345633586733735654724068018712638706427752822067325004144526404036737561447249990299307420025054919107241693199722372791520177884331772885926005378211311697066404873430672725872007532544569800733079256035402407848198581536051891519006150093000928067083780287799260813748764924208188142917662727107768939727268879790016319076999978334770768910494001315414763697758481194581006251814553725487498547747545723690899717610087887000518393221162524360435694633925441093789224343379498877008612860970423617752046377493080006641163430344009210086926669562927028794854416474658353218178938117153566860780565607568036084483733194432810263095565292406853687740226157069754437805044022790135835372711962297404369997979571130956504373482547520754246808153518606716388479561967193698517448731964665445188012463978852016499970444966476295245994342334729792179064368789277299302070411671244038274422850394422281644328015505917938114290220063295026469932960120034345750243731888339356786398284047459845861093808608217145085156435795956562554398063255840933870910609273946711088522095313060995055800867595622583234024186864189803167091963026991025931536065417320587680915571085163635629396090716365238417233776484918448872998130469059132162080313964234342612171239097816094587247159008575504241117939374632955217648602658465718275895601557634571703084813943460190191987631444915602982441528960699419441532369639923371595778106473159255059258620460974277929339247530367656315961179574770409070481771307812981414712925632783376167876277958497613135968292878462090550543343116609490756502317114988086663242432318296598841731020293523596571162411168714862798224981483033871535936904942292015230775201327574343966866084661103978257702196572441062184949450972992045278036597354915929511933124114783816052218479137674834528653977781600775728736606497991255057003383090661290573962182961805542953315200280009990551246072483560458507911144268234285059621787978440301162214349119977640761058729402035065330723556431014128055482589771882529019177653587721044632034801489995876379767809879322533271826296582272157718874876512758873647507901876929438838650960491648986780083283799289882998327914851133074348685201488452248636208462632996988117808664900192980999224174485806183006124691720339217532101680947164469285564422418900435351048021937608758872363997369321657499349206238914358006328221446240187561472135559651683231397289852379085868804721884221679005230786789192877990575951129571014669297969413877148013659271607131180877783283626734297904997065906527216895957421168694599192829213352156680223380632293253697945289420718123055680863254430101641462470314259018428633008247052003458050634341424409290657704183236005193225746226224656059737962929782949945288385286505203997472837036681758780285120589055067469868193339099537722502327912652311659651801131364733672066536961874413882709171122940050901484852959455872732550748212411165256501155339543943280999974301252963290056003461221686885351127231375535930879092708106295150716124920819217580242255379270820354515546215204927888909325699231375354797987174732494053910477642598414103997207346803303603459364184455995323539995062344386567088336485252480446391953610723198432642580972792839657585892947297906143351461799269492181028538063219826258585990515348476659294927879919525211957511562134356370747325969736465870319197638955668239045006286830086603317308842023335769977373670173324731293383091725270135250701239067826719585503068402713909600432743603765375019257266643699499077660477657287189490576032067471748350369120011430138298887772108692670182939794658911890134317045044304874721682128700193737385721502667371981497248703006402836941920392016597513720702900587873455661784240886710742689857290647173205209696891987048203548251406074484636841524800573289275602864754024480765333263307742811208118787747536111746769142135974651332681299733310203534870433815376611148024855790300260381960445978876414871525831594464465581554605163050777286625614931048576956106109062334742887483564681158147986015953617639032172916862019490279792847956535702199544752535976593659944416404950511043799722203183939413208659762565266701384644271459757871052645386979670832990110447895548504760118964520109744196551924479483128595111811882647328005873931565941619658063162165116888466399193892571669594075305159753280742971838322496478295202106631679649278381269261815139920808950156912233170271261082865887247076321581187660828048190821655602547904256464131762188563591538720640283707301449666695451988271950381222138236972862500081883684398016367041992822352461624888282660775483459660806626454309489510754979253224345209490466883490597494064994850480808662534177856780584052929262717195003346193415390895512463965461372829428064251107472482039891623493211512791431708244829964303780488679554189456678235476272008179059496278203635644084193619039846907208729885402646747464108210332769477459653204873412637217636019411988224409943618265794885315074201264615572150281937826981473869810426933706175275121511772667923939050428783871102028883321635454797090180526927571998783954026975139760328871931585084571936150150888865730773326862094343662786965450166596116748363359503898178829531990191740631033184887356349574830232811215867629867796125373130674702545410736383271663293899555008074708011223185042213950649962856388638089189427424468414301615204604934560255974244946769178031436922418814136766520571380153675146460580728903383749566419519672671717921628359524330801575665573277272283795814041346968770640993371128087303029950396035122620904898080032072498051645041598253250910162913927007230290173219156853659191302517419539090678072811638525581835199283780318424432088334165774482957327207179290927936261263862124016060271422855856546525941668299796272156219540876113489768420717173995280216201198686600585232817477110521125093688111962398813332890420291239527612478799666173670680556527577031460917028155124825195098267191476068660415956821666629763151292937121517362135406531380030208337970329239392988355182396678777562201183448127982268717155423835904793716577662702668416124409650172815727010162119361424765531065234532015581493510298849445352781970338150440960763757916695932226512201309208305408517181726731449255248517255066692992505750222877008355839815721481194680667612478182619752718808886853529667967038844674181202920930947941099741719744061193707256227823243777883653764850076814724742930199709216321106922460883008518549135363455597041590665745990861034045774486611220705094392739788527474779773267978691267189461303943278115158999535989147692738440991736955298014136578717620069951016955194855621503772867362829824134366778704599782425184504217678059430463501664097906416119615171781606471801062817395446820996052136486878341240298733919483469373649482695271981927335272475219478957178428549712979955705333778488951551538812458970997876230184771380585185637958892013574821433508711406242756484076531161440300262908798530146981863306714841732489510957067108366076737845001094290695285060756431291642679563819714943392350449087819963139126388721065273765863164802498311519052487911498653178708594454403808344764751288407245368674325426649532083933447941801039182021589254428158626538687444633992718266125122868212001435162331698488486362328015100045798575357925379226013796600950947866561886526156230540145233024328797785167818831304089353343343146544026721200260649939839032687323213501197427320308166802223420573635347495033868864673221658048409315459774846915274066582181018611221733200094162907331738794926265076508062235462863558495983390502470179908413473933970229039304872737511775024748743731798002047626013520726541163397980947642220087775743248620115080061563460261410833062781389221338139399568468682527828126908833271524927204875924392440528727124402660379038135102026090914661077191724613701848907309359467165546592374001684443148912274027826407649410404508199099117449234383896536897786424763138767469178393340833806402757075152076607207626837169686082592636313481827502858953742604128095987624389684871410597752888703611462044011206384144963955214562394353300306401046406447094420562084167249649142118220586376738321342565921290308894460889719194993419424787671874512836303206758286390402889256974179832841976862912822413259805412947287380426430474833196104426946460997422913262516181635610360191742124926509490522835257337705376504918829261802403503855944756659784380797177105351972688064471833427450232997968457532440834613466551741609749099421764845407737337617113048367288396237250113813305540585790614480333704567743162225858918517637638308458392019375970333267398118837029977206381887493106907115868006991423604190974729347407286513146323137580213588146695066799678643160077796426421313582588855065393883575372839570604641272249531039718214042365176417121505431558784757502736708419520096285774057507836029337787553178789861055951722171217693950262728052869310259612081604206141460185031516220261698919296602205798360774107414490374765992480057980617451848132651572863261080630660072949896020076941425599177692970722128646041553701716221647288786418440613376492330898556120161957839098882629658844816655007195772424557162163069191138083818820926339035235849967911835100717186370401617761933927238366400656716909080651989296734689886669681410605236162203054588705729569245581613854638860128499143880135966887152532056865370111012117654254622739618553504688563280428499872356243891762744728488316898453030039675082624009133880446455233631189988598292100834009492803530078387982799765882543760687785833790365456056765528970044297011251086952598616883839233781209730849513812883256235538228764397597700123850670774500603812600818030898411896108423067381905779798792490490746432224012267390867595040946109470683750559432943855756732337778689434296327525191477995957791460275900434695030850674511469950742870416748057723859630780448594042098495664758461556487757290998564612626700908076255941428170423719023802230543131134823693952635119025309699427743785337820549701530715929947368951552591956051432482591517117850258105315398105580998505192696862525008904254283407272626778261873447941055991274380522533169085672154645098009326333601584857927807867236835903880335393713436560517907496244692904418954794870000014499884136560989959774404161518467303367912369639859094586677667212921072275284941872023558327706641431032863835274561812471458205356869883451531538847044467389274316460947773416026508520775604228104795384997451557698803127508828636814961396535323402216838728199059989620911444672105317864663600021665912588344468991926407158315729174341623749368366740302198637043957054875577555759501702726203361920415187608817483918790519266470929425165834379112142798189148305791223251826351792274831945407521897179511564559862745356315126618723566680838734985279318545715457854713877341233219615772344371915367715306515251898706945255510208097154210398860870790000327564050371804520296618064789234946643628658719883688545372907180059899388554559958738092484201029460652540507018000988509450384205630025060175139919774498655221579898081418919257787030132139531886255633634758755202832935777153693312557240636082726448202972661158930602442766928718220567593248535897154921677069789460877292352845340814450366661077387788762440330921431288558532591075877949550925804449944621495586871748600794826157092388046802782804973357141349519425760522130634513029472535693001257712856979561113430310237143732525228958079130933927185586206955480930986432483610124973844654698622829848705988775420684743060596460999797509014078203648356254287975860624312998233547176505299705904766124722160556835611351998215503871377973249129250204884033240825784992624971884187420862845788544722229990184827839986878988660712072859836264286477230377869150960772492777500436429310790282156837615974193317339200413841814903549255135131729031623585167172707559334324408519776279368803914458152300369224601652920247885935331827258316542925936349608172271832961601970237763277140165074843545926579164109667560016563619736501902797021512467304930703904779437355281184374451437440259048323774879034050508707727366156317101227253281524600155321561560506293028331351240644614560258993537470754235550041149215842693138425718312500480177394305062964072482730279566213203584582813936575815726245979622490978304639006234085059117929707324568995329092424012757131178920785212620425688393801928981896611876442770808960318686745937651741716380135297454007611184580366652772627656942305226763167491577788041962026533440195149213341612578870084072317380634966779195533558835315259373450599186680962502718946298029214417241206660329758584567571210239040080425109332234702006275299349613100771149886893012675483709607155282038413071605714421913396748119561764544755147703533124437921324891022820530376322379853396710439582495001367749514649586013644624875855964555512339336776384662068308707852949164320573072132649739204180935906763466045247151951144689837506945783202714150992107686870449154697411743567499231571066819071429955485992967997945726904741641813751080163020685845717011191686893374624025562653127511399573632665350325937533314718845783997865327467832781812277187398491259718022254919270934671401597657877145673850930729096561579751639494010020788792607656792579207132799615013670533827990104848860603754821397628715517344211822618996580527489525605082461967869307320668721871750294700426510943199260207980475139608445325725755424346906641704656512865174573336226779441599015046503191072814519916302510771073634999082501219713827362194181388413462117980005814112110405157743216095997366030749245063119250836910145120747483234785207372440979620214465471099484714309320894119623735229770174573364171354215887259470602181001736771225780893541109274731854025407117820225165139497194915046303434441848919163538312281793587060165253079108704790032319538140234853916040553419012668548468160299610023896729529188584503594250340798899552829685300861621656103715719367382846817705994459390539939473724122894501120016938420037409317184402065007472346127845656544172735806000461513483878082662139343361170358236406117999171842346173413942841218303431930468844441672100247579829203767865931726450168146133343146265942408847158232579846541546949354441993820854841424035662845093585822079881299964123797575436919337849653491194431123766671144693245726245166349157683721275362077838494885110281799965562487932724534086099853357709613711047959422334839524535472410560664304911327379466774482174902492304896427567011101030415216805095599321543167170988702144357463182691116762770819511526513428632354100286966734333547180440152276383754817855763939617131435264573830959491707421275132215495147735787620826566525305026620733640925582820396658880538309490675808707287322170995785295783778557054979866893025949132197754088601165931535772692982722164610404659206197819413662313077894527519298459032052039205811201071211030609864588374625044578957469821814174831325020542157563696459633421672985608923011395383364133421587982728241643097268337825411782080747077602135820837988908413522058155143600430100892791675206966843122171739127030042495322749692542650562714639878810228780742088297501088950051146160058798275439856264142471574428553719966201986920742802812020093833328835560847116749643905449671928567830173100025866901384662971631438936299099210222335371396390176446162920159125189045466070672361579312161664050071000771881695407325913128670132397827803501584024611162347299157996090351890096436424727859627088820685916835821724009409612623628953039700342847591523272686240746942592146522707963499960644616044282042940605105178307049109705740978321513369774585388572287230405267332360373847436316234631750989453533813087654227580049101728678457074296790946992730507562368334221008304308195607739251308914558727536972648188525912502821597078267267302091908158688278721115181651649035636525299474717583683078892660178309205378503167079962684647378567929329383326565863349921547519051356593723281106573462508540854523790905584783828397630868460622615921638023504031312689400162690322039072122892925622911767350245381519740268111735646838244859879465739953507714129534098145318292350888393358419472164719287156816425625355354867907955950958248038181893932042762436405019560104163855943893671200030384895523898868437512391943732291787799294788649245725493727904351131235750261340313609952065993085652191379185086483020723911099465382566938035129175425141571610457976341547335957559167062456113139625527502802485536285324432070549107303208486525660449267418711209323915486532964077420410124908758443074661237813219720426777851054690383359554046795747753437713177734231509464312038307718423344008474800556333495595490754977407509155010910393884919296599998258551096748244066227664885057306985146922067700522977804823019598081141910392664247818028993948220989294271377916755898570046046441036076865213471909766287774668288180054607504074667857615439595504660631829876855706309528942693237299471900190955050097102268497553643689514819807428701784421664593241518385609866901382145720143793480644603961972875607583131598608283142766118932075489616757423475095466968336291259839860284610167586113305152452847750767986644092781008697768612918191643892297783253363922551557598797907763187786619527683280138945084585625654431388597385719172161581078853080191134447184833182747858577520744014274283941199658128249254469212379147140309278082126695881786376868252641249789303292683016487800727129837592729784703301546938437959675552230209683012995268799045847078297393133004982253896255295573944255529786428051374775093387082918556783577013191933625088526607610968913104614224374398785157691509638515173256745141766524876590465910984334477221853617837944295870788102646325126758993426290407565395566674339879109947737937960874691873892769039919525652997389582698367020542744365459372948132312187550337553339756705827372925272944998578877697159882599781578855177118240189063126499024983858281763412498343384153770112305386748670969411938183387400326257121401963488579042226900046105071626015143526875665026463708844602857750204632928874634325403025562644240411750485867790490101181279806376867843304974420160998745492948419251362403277137977278675744085437397938801857478579585885093259186971534067546572654175650054106387753504233592649246476519649090637291192055020651458591600853088281539564287087109579640800557643853038096621945369496437790190266748438978453269301415808007456754243357351152858304650834810779509523720941483738589128590564671930914184250326262969953915296007324551384947172179698542011496331333656862139748574984464066344721280955235026184311961819028885657881318930731075999129100436838921702617735868634403713598682699329802176161453746990469037410219468980895061403377157218468365800747262605824350450438106870519432160573938850842942031804329396797395613397420590398024445393454045429316043969681514610561217829483040331051011812536529813577213812669579315812339087101178238123569442574597539285475292097219682093041377549943393500716995396241824411935810112364958332659545444540145616514978972817194215533610414866744789261829944258584224282009565633526202989086230340500266423710335313199793222816066101042887234817520442803818910958180275566882347697535205477721416073366751522544486461929605828356457665686964066784632911095116284507482559147308215679213318618115496574936557850753280966649220295597187133099879069533008746457433449376312432440595561992969980595677668873426017851487314329905559500335192006984104473570156336652238297234150544650600959292272046818805803864363290181729380803402249270917497739531266638726865106370547053654364266791350407026344972361938100853580092395212857885231804514747285688029073359007417928770590265317911617352168067749699034912929692556908754060917994891412037942260545846736920719496149132499351545246181812922122671540969486737698493189147626754214644013986412707776853144176980300416317232428487057145986163589123148081231446453702003093237482061724390827541865893051392508450723529330660718500278831127960171775623387484351453891639765411951111054797240500426303019274058074670390715627700846879610905774361356429726632082819646523438361519342129209738724002952346469923966991885575869523274293377074872747673007067680344605970285702383279955166481276219714828673865413851832140724345675922257125508441455037894931766172422836175776378277050857719482260243688736366637607824755214870920997530153332693797255976194446833631623522826643524750282047757131026866832665001617768259225378970038059746472496663074233024757059737920309301006817866717587335516443050450194362500418289710688652946825803009394951656279403986510703561716349182870375089374840621563316966431977153942521200458368835620520160682580417151865969628374112302050843430606555025690770054752277543559748884610300083804416954177052147988967973563943684987586336112081804405774142748812478198726490657097780471657052779797204109312840729099343013972637744855188221220150284988769420990511252235198531512637358381686835029022103229303429336717164120319616354229501347498054519365864357548782805502413740718300809431052179900233323849206545147246295294811084837000593985824211110514933710826105017444755513152611222095996109652901439771045921363890985903827716253700259093966017547188053404817005083689282977907499330064476329263243125539624920986827894082358363479869816158892803222351230175246904400152308208764868671403191986476507395295918976314671535754089862630938178250912945845182306890076738930334405444292511306955721666151782955647379017160093311998936039932289637269695619909086034576562445815763812635500930384963883003126706192827054343851768407686863390229714791086673387677808311991164803498755397468184989522636730750015539078552601587042287725241830083059536380100641316577937399200650008444553070112345518719246020073993895583754972709194457238916845196256602656609116296349853887218162606502653999996259977765170581685151038685680190661458901145108918529898498196149405403418579993004924815379250126017747450142570897466745441646214567805161960501844039329010772241292168988052445530685170139389893401855631001718225590614601490432443409379501331338087750560045152456847851531818402250293166763905343060963959579265217826609326441110447393335247792505627794691532804487647286962162311864155058367338049119977859731159968964928987007799895178045181239177593374591378696088173917139014050817323321166537024571209714188313366385690497925944176003237387754585309778524320515903086162650571018953344576321696409659790035815814849452260269544872769111926310109703128085354187191815960542923454238381012787547845884659841685179846765554542826067777119579011320501308548701058197513485335466951597832022191852493799518599061278409515843715060567971243024151066315840127386140858302656691981054726634077702192557709714617363112464905546474543770107168085186153529523112884335820574845280824420580414637088679506834532696340761194002011163235576923074545332052014584761734620408284070514170141391213521065850665212663628415367558114096683372010979398442964297959552485018509818386769679762590191604082057657627480306701843490108091560731024355971719641600403285030791730987305552836862429900303879614339698664256660998625921443906534261321613890846184310634906928666090053957995109103129711162438497867874210237642493386466693895465473400479171563775120064933517911137477601221142109569563283845255402215391792933503699319571887723178716277428579253419505693943302294196100787524805863499609885314580716388566355579430564622041219688561024216924758437951407767638659679560469721293929648871214053655623661295109653609993851542940560651417215584243596871285818901136157632154907631067411462413739347963724613842453577388752205144165190151677802532283392756763403272221115068142241933748426928573086612450206417282741257450920696048453084652130751954939552208376460627393855292922946079472007680267750875886091458124328203623336205469974673616748635537338251030467199410992013204993350994083501155735075143963735877678425659562236951445953855925886014587538597423190036975150439138719609562019822881721961002994658193085927878042353480502671208830493378084320175397354762213964629374136021512905649542348757335513421021802568606447394467257850476701415022127076853583831810861257688055928263283908530759380552219673483032464566981251162034215781620943340198499373736915550110828734885320918556365871063727714945729400169707754126782307711230509630045058521923438665633263421902356822978260117933933396160484630003681290349374977205768944410895990782644493085892043528186614507250506451735206173147936548559754910130097046858858146928778160217259843701783174180143425521520765041057200669094623365648637339622255453958489885875800493719490679570364245750840695007755877724704131936856957223227446120056902691246315674649062041199233716567203017164425966825818349140017197321248747671581444830170569266394869186661492795253782548623239933564834126680618319847726326639242623565358171339551106176086887417149813766097724065817312907501195262468657966094061256467338150517293611407208173424168656048173627661154232612072387725659784893688763739518086698653634588647151168352702303415235363955843271128335857270752513871529115213947328736896645168084832372821936542067068489575222979550419672553612359232554373016505998780806878763703598608427106662707447914010960661320013928741070835144734508992979589171997423401802288615167382542075962835579743090052453377681562236120816566564201386965903953879747694932494212981309553544373512801511400603027948324890923372748528897857075509554961846386258709692279375640488724709343597191883511119193601014901260644551567188497358989096389653162976951638677501111741186302194147057889710120392824049811078977642437393269494507420348580779587122008427669185408287521405261451215481280299844865590365640152644267204468145168452390813782693955951459821522573482116837831536805103487240896305798179933573668579843344507228676537864079577853270152584926098594588566526361491606562375337218324832117944430227151441511945817977322582808136816577041495854976623247814083365887991920309280328981415733077775756524481568715612403040230438793866680660667492011935261255578333812284028482359692034287563803311361269324124974630921283634745273431615083455395423156537389432572832722453170484844759295494607915873646912194071293713977074370656136646458297155156330172369633868857313325023601115398234387671467845316733499280749984929202676416774814392607912225643557845121307687058184785595091312416714883779887244680615424858637511889374329983165486674844121758588009581232906549482748588579920634803860834097536477698922957576454630956369233544076846211910693231350451228466322030271326441622350141038893696559684487137298897584739296289251826335005324172838748530326743860167599038384469191261017343317111832851917107730487639735594382120413689436343668690533117653644488486429727038335319769753224398203891705888753308312071057128228605755435574717716910369822413768177909444367951942447239694315044055349570910960759966718394630119648512338899065574350986890901733896321905662174978107966868591613630592557685779752634739041296890778675136253580630747085514400972846620094128022884820194077889762413308407620215261189404988477489040516198513464640295016514781002731686674212901173419573947699463959048129896562436081666420073751113723720918829843462739133393420634260691166064388482259133448156817934492067699534690606296432771264725990655418930834282592447220588629144900781731586009818623074214448246825659437855012336545790107245380867201409395094738856725155537177065219725042999925831766473173869636859667332446045424368793969566685777798501678903971481721147830724204963635116061179284084587639877551672728225396379169956147089665072473114133576224074028284184341701573699415599460836402138018690010168476341604974756787033322570499801212596608715733910017814896960766662768731046342005977337480943863558482447223833325372033088117075249914782900578139852747911323031878099301108322641893730872451650552895788702963329607618056859182527306477546687152360197002286138711484027388033611055703963962654898529411729077339470384641929697417727589061696814430367903041434621027756872330295243619920351678263762281379442323046748688295939536961349312005027959623367849536804713849034422833880110206556902273192334960935186178343360790833899094033848366472457347858581428663594244002180840881737139126615348255863694714208842878111583957003588966473156791352134200877939697935302339924708681585650948054021344730952624618364753641707708926700626572755197966720700192593414915046273276708041613886411039571787643952812737492485198284741568948150387459994260305693719141291391420194125111220181373016268356313676502538428880352223736694105187363277731614334938911785058659541734362900172359379466366434492476552111661665803666749220857681384791035552884317975117298383208491020300057216723108154763966546523968005249690037591365152039955938230841843264673529714920613464780676336866851800871266932945716803644790176163862040384742535659402159333381677252382621993391257983574082990558685113355740300744679474037276257361270631918557446463944766726571691733303033855893337863411239308151170007945211082115723832883943705274729914965565261063122655840028794829070411313389777902203944061507408723392312663905055746220597420205099642800803500543754123565260201041691170513387397886444268121771122941782141750098692430463572380065231786529585419699571153904543042344531518184813980231055283649654836183154286957377387585754333307375327430007821378636992993900310217024007511072773660984951884278640273797033482663795801781135034191618989914640746060409083431228360409022164219953858880005457971621215352665845366770161020650195434319202819841014749296106583965391679980829423496955493477616721191781413783990152169044064973691422515735588773030260220170785390339307925171455743715997741521326915064710868255017649564794887982218533065491406670460051582636855263867448065431039711576434089458372619465347429614897203812339008064181471438399456555808108073258963365700976754606206525896104866903761275321380694604217891309552315172956094106511250306718007313888153004770913920166329839765537936489533312796678377708706600383443001200211034035029954191749662298870535347177570817308924373496587772671935179355952976913981450743876601362469473346374338050569411973186806628469963373240056579130806883598882556629523304398193328261342238574676578127989325004569542634537390679831413630189858576053751191652176342090294269062621942468331778383815832304501678259468008234698257351210004180600318804494049984667993354060014274978796140895912750905977111338809525225836007215905593699203461482901513133144369581610896904837287194035085492030593720563104326629698934746948766229095362640995073424776034377874071849396536590998534888490381882458109465448913723316708321398520675423415069705532543858893435831171336510939373509362413060612101806265521752353116091087234354952566861404940322415687774096029510353430148722022613974288572727479179947886093319057957005972227158467470442220522480932165869734742324978996089152812506234343969226751764209302028415400583346850180760742479701199338023423786979935280533381549409433332372869151903039446393731153588868069806605465073472945258609029564171533038223769321139995961009020755366558123230684056392654176144436766661722768864055699516704570854205800684728598904251762323855422134035873444231474736654939897945035211767118369083957510355326378764510364982070826640077289055446754175272454351381339652519072576067707566014209885750837237708930123818425782485503112304591587579749136885021976154325230090378643415969459864528128193887898993022183949866914035860714275709590638307569184339850549021455078791613874619686525996818265766261100578056294008932734462857842556667350726175930835974778916245368956036435786314097171984356264752801019299391127743251301269951275279729010811124272829971949302138237745491056002941257166770376951417345242735286566489311655623503765770177021773294238929007287519010490862003062628910550517832130971149104067277510249383721016043173281196772887928993364614195616218626439881787125312112102987996635888680330948624441060541821630144392010223060116070801877511674319124412455088691646970667696263945228304769878007924150757155359987005295881089920567379800479792671227668914012409524921896971677562378957577782214665300874989340958375833538483867237421022052962512538924541905223119276031855300222075175742015185665374462897884945820487785769031080344371416895161588379697561926817285831854741394535532387045907204959129809740544348895190678291576977069405299248199191135419939439811531999901491754198145213736135127142907184216456518210715935509694033107961752433571155732425704517725614439615302031532269196402865927452817738626233166527497443662732792352648819128414495846666593781267470564620919238823945081044275147046589611602565527851422565097192577446880342973681471238777295679262275237451510761892021454153926087014163383336366392538233260753570869301085933944824344583962405455471211134206846896563217849494341496225959845646033465317545040689146752472482715060602169021888615859890025911994347469426990037748596989874029072813605786640564569725872250857041634539285604919762032046944776733529284032718378394359698439790601485649076995575964147770859870264250081703399339096687409076562715856411209256951553373023107243767922206879029097592846870583232883572587454535052331860872012282821529628101534847089376860512089840587827798445170486116649116426003521824940167845519089985352082319969719527769305620825721943726934809909035123134089468593492107875649231692415761662257574573071013360102389974104447769113916586678965489342339483142639438572432914639652035120152175870193128102109460310069918118316546908694194383533440900085767217711254489984498528854955097325411275764917470137841805282220192630212773570495961866569746586487510656150639508641436201471099411427752340610399361271192157247948165716742197305663875738478496009374753675654623182438322205978390774576818296403117807514700722412221691914326972095251124012386603782372129213916796477361280333550422316487228168824855293001597267039020765768347215218351225269681414593897537131138036164284687161389181808121003253116869576084644032818370207919869406699242447204215024765540110992705207083286161764786988915979776089603222644425208101457292928977054634813496162419897539874894749700465162425772137373672161743309277652587658194705742034971631496545715232583562514647144783857401470432255846813218433575579916823604864189596565084521764322629924832938488345289209799339311221620854400666786485530976392213938626060933777754112497638129740476605987838524910065768875992066627384951997123220720738922923837358208887686930427643429264827947752158878823596499398941547282399162932003199441313693740089793898825773432076424283543429032799319080411080743494374283471254656736465490140964468305205778834279388591963480805577780312563089809551522903271222924656991540179610772972575294968416307977308763546792965333064892782039399808917952161284658246405796107484686198352254565497247967951004064425149113433978235143116901159507255338537686027053394753229800469507800100803529017352672843689266027419930405023592189376800585889490591553080097935290899618226518813215206466244300627804842114849985147039696547603835074420571271492112364231104787666497033977301237241732469711842617925723491826639577546255346761988662508888149975814959961029020640893048930429275531813129461801569264280532705993269220735541838905960957012638062893673320655093408753186986108852103948025951381522187730879151178616853683295694132244734893655533799499378196288162964276259463572730723880219854998119103310857624940281388581712996973285715278458463296700825882210756087047651358199257460999360735469534396698109538066938803996273131009384491380832209590209657233842809418806288643805425438650986402141618681913400722926277299525593143979799801882092724670414967852344404922135149203191539336381493674797452855641164030712642634940378166224099543182792652908194563681695552834501389492416913214024272139597453402552368445007172503994112451143102674512481275147630136542104623178233824659552788504589841835001420188730980414339552050612729602068332916978818651017439693903164509653412674470853495414426962805855483654325739581148470789299439816580341563359781562923364720590113405725283522154455322139338388219411061823499162804728746781025807749580920468550948921441385690498764393357856957425124324029384907914929998261272563979973462761799328022231719400577453200866500961483492202841774155694779086190909346872663727374271721986971422821265035996265885438849225619608321986676445731817159004489266783552835910590622880428855202925758553418618547388467738853839144953131052759745975607301911699239512906841011144206662589016178505679012805734228699339095296786553440400280888876757281282984913734893844498667509838411197243135450247877181379078946637457571527053438963171922590390537936327478857279509148542986094787996044548087234982585942528312174786447139592504111972011737891339731334974331382615083858939334111112841539009010635202024352625571123070431123488620148096864157000435150702773769771457104465076058451417821956060166973593343460066852024334842667413703310274656140050755233865581393386466563625062554026649558880518575194908833865395809840820468311976276889511373756516975433989183192739277777632578835798793688697689873735898598571435171229000273594545589281515013875160236091041537717508181674063497522781329578801539291591599271647572225680219301439099088310588892618426599441477637036868156181632921663152598547962954726443123217179251660723522632358618485959526404177858225352115092555455722748237933271242455687420074675257181564260943031976356928630562010363335664143941255343325333750475301905026015208193518954348094791364585853072319600813253930874108486569342434625476397889704327414292060142072767049731302780966835835648145492883366108426123220167408578221878773460764468586581855281145146972957920922040092030989418808558097084060544248907652155047015327054776328820962863740060497703044005041988129498267071575568692914908454423467413238774709583924326432658137059281721989088911187982147952983296275626252136974977526156443639571233728145691898089485069017038641250084007947625009217325959412553737478373960007590284909898202363376194951765606341636114404105251452598168790050567113150342333814630165891284704867204889826375675217036861591559414382265893895627461132970472200693966513026286253229157973468856043614245181037785380886337451637113398111429757071169941239140131179921784766864914490348578218343772358334052189421011338779284386117937416577692171788014999662631802443910502271487117493951998613830179402036370276758444529647913456891610555522747168754896541709880001796059122247592612243923162850207539091848190616531309786404650039914294438757658787093231680098150088769040411595100026886570229094304992213819082108997126900317882344189111469959435489503086169252217455401020833237293178948252556271423848082099193652942405447348144835586299598407023954638381279413217479878052088699629858911578324021447405427585337200251379357359937697212032258665170463086549376005080304803335833384431459727026770704018633928423635034387440367502637988558318211351373040304602882744669131086842037775682020660342136740040488895290271633420128077330783233305089369428768779932223883929330387260082296524367156996648636536380041276423641207818783467096708351508716490161554116807215256707022827928126172628665287864820733474081105618132814432113030072977795333546108919359912518160087169154387998692665688695888917066620034040865887685572932922023302979461568854747981121960994418964380433312605307020661403913756925924776039323978498240264411006222730659095754476790028676445793226567157468288661225896684824196493478466811681098673105761003190191812085188112693661582358971851377521722144872305084807026041872065711076408695285881373353368145544467591939240055148293742633750669512692235576751381394393735240553012009285828167849358005144166395378614424731208654575538440942159852583920307196183169272184033166393159192669878031138125425971933139058627089487353638608172912316468675196900586586440545446946724418148980654111813107787339330390861870517198222846275792066880098074657936583120460889817672148760667869590717819417005884707948492526157176066946734970325203510944202978332985162778835209313540966377207702753572051662591185574254177625545339366715856796226869056726641452020521764336834607795967763136561557699930187431710135299530688608441015743141044413014064416845762932206116810932122111061427882918211691104713511117798833154032641795174851391211534835624497731555516237787439630333258879149010647816126925065362523313942626314604009371497363414534972225974247574620457027508088127063532662211083764877230362790771736209303049204044785704086269686474710859670253765540732718994606384179734772436115076585806016138652504179660061815768926174362357187174861220944940313955872801228417635445132692263270140335129517547313983569264888707161163892339820269979579513093780217783334162628051581556937813366047843346029066809973331870643208201702323105288147742077053085722492680830862241683995491823222489645903787145177532340667235178742696280845311317042703484118080390540219820420977688012551444666673504598204526336255056568434170575168128925308652286251960051296018619931088132640069286709334619547410641841821404489911904726399526261693568669966536717104982396674450666122407133171576337434493561753733480632604051432673155920517171623962874190704655645676156923226386629789456549219556746602483901295892492574928039159564700438672391426527387118110924626668476310313340658904005218980809295960455113424699950219080933886438640570576477768107931505216047817881852895949221304109337551980356529103566731319826482510943453046640523258909365009682730324892996923115394002527416714943671528770816416432705166419968630777073667814413080936836610355536458501384243536896244849882530738911787004708340369764193323307112392078252071911653201760393040729656458637159314216130844123643810291552106220144200041986597442925449437738665290088618348845185869860732867889318461341637051440477725942853322032311871488680917593810719649767686944216849250916300688422649099121992875151753180220900522963544259245286047302892822714107932056479947772441335956688984406890456370541727488786116225904392108747375332575853048032184016752181576894210017087486676899550314334115680965186586737585022472773734318394559043256281941160568825404586664364544037221089967708918093779906517555313752927257259033624249028373014047812807683170095024085758846012105247858767397740689320168588907029170256483101727000471035020311874237359427998542776565650466468034280191657110204438945077207679231972601317559795495708276421520812221771824469732254575008001812064453155240333958859677890830007903467406348480543669876601765130465245538706246412175379080156254906515535341555181344464504003107414155388963185180233675634392479212880837896181284660917935975221359645568677921503215104288709655884287194781607110307044219636317279312309747908071421896090740100051213194252549540922223386767306468357273118415821076435764128985429233900907351104519634338091754545165632389901863352925511726067864171094763883861994812248964979476297199637199294081738709862507190310348736773533566876720365892356364917814299398031111589981709290429791085271172152146586169147998635015698466381499048021742451063342196373318695583639440351685653073812800977658790321085568661870797898923725009785217773387119133492507120257513740168860649671151173709594759621448880008335504578556978766035781367274826836574964193881297306750056127126900208000845347621894687065853404979208688430540108448626288751674123625984379062888100980686199112158053217833697663043903138732695925518817651897206113460606877483726597539347163365765257589724292944700042999304859220528459025263155961238063713515957589117137231969348684592591923532986411739418635880516207111980295089788440718807801010580293235830388233767378804141108877603529494556785859919790637603672672516225340008449748060165198835236016505398411722628864383361414283191150789044984105916696196851067088887400811427091740994790503525204328243487964653428482824094954410206561243132333305346808644617752347340049121364132890496267623365175162899334772205984882058974496296044795841648229354748519540144873905754531164135908757667732340216315481294174075785238334293593455254895454750089926371189502194149619616599191719583062940161596972091320506068670883744564069419187882165455395950356163268341869766664827749384484902425430304283985796220449405012206334825654141936285865307987829235307780414781531462660785034725224722104172092028044735963128366225137632383010508873957609729585644641372644446155470842348353764459878015652992075306877306682481767685011412095735905096232472325904553493318882739824484461488103971662878007830555725821432403972142083058368410998212537731798020953060235776401701452943940275704845655754825705870523888068962509515189449259101678032774420711536182699124386706023222710343609023174395990121410757716696755226947727772869290593343521248563157095618737695484283590591053110484761576776060582795881606690148392697336714952691823353471510537493627173419546560855444872109787433491432442447459163584396825960938120531901267712792788957254068505792898005719662883795348117604502207905176757697268813350366736895175615198317046121706845879314838903051154065234965765798333136367696755598813898723047051348410009128866106751601056129792535076374320767699431157899744442408722329610407678754281959961928004759453294506213174531415703583124171817296470292068980861907337868360191278554668675051805643855883639173959884170391724072569578962664087212001185415121247175381752207824749362027156175853285923161520940514044514902170777205500099637020920322787600596742520109414213630133681198092885181395435748579312575591278338904299788088553670848412289603891148177920434642124997780881142270552081838984376368486514634421121916108611631626352304148267137080631987605588002995251450948915241614198749448307521639391107188552051013060006855615545186669376167463830541850394488829391507577838141503476243520980459121722306762276473983491543785280673098708463299506230563187794454524372618775317182387864915536602367807337382149052394949580755278733960177033288276859119037957554281512938451071194044071189182721260750568323501903110516717196016325778763896679425442167041583090031671865392556229948654563442162836431963833877251142420690690491283243124102896458177661342450379791500059199514464406997266827691065861695678406607108232072518258873495674348088314826398875217435046594274520126125516272994094758187106148195285223027653330933238253986008256744311855996494035934295532110510931567206523179187305550784876140162646650831637056961756062064315540788365167332242376842991231376722614106787456178864224061932055079285430841129457485545328059279790209738897775062882588148922203631756637702757260262576937262822885902591193298652485512912284404690893406555458568087098798468661732848704017770659098772037266562905381879561172655262668652038159599762126776871687128557145349067196019420916238936801425022289078165444897389493691140387401620434559767579111220488370262005657711980729578714925887322028091906851110512466425432342206617129893478582813719965611224581117622977093088213584517546302129554828790189781019236363186250643607667548764184522106418212047342900720510077172428023222637834283959282133787312246629771454016329394203759310488936304266455478187088273955569587361016863033616998595515287556903494091416713318410695171334100241114195353242850436812257278212060984366638349930977891843129566658566374586483482102560927462635933554953792791675071218171799984949449736163245987866380943269025194844512585481139614867445627744683287377144094785068341466021233580106735263939733014657383196614629176872417581846825176283960290058137643383995983150206256265889075761840641154089507807232238435728590597936554780455084222269866763466126154171623391758201890215268293126141028847489186805643096925862420177056222853002137744742087057739634146183671773103104292094356662115147955455815433844743645034326006941422541847237594629664975956175748163776994634942496788682539564447765873172833049832317006974425763591244662817011796292351553545319544935178785645367130466028859808388581655025996917626548848576940853626586938071565413918342228127181890248176011780859918082856265867286655480697707886314525313320084911989234730506237522846593411184740968241419126948298342835394019725428593889721346674514542778614734921295641045361634171104026186530688790952834157853930592473341836611399632081565788042788524721095904692227858355962957896023670749620188499165875840642407932771991939270062006543934100094108128081638152474933361478667075195903827680371318790908221052440617326805594770962630838683693644957658905053899469255113820450077315997594558881552995928107815339605782923606006877268647845073072374836584859567234807035904921088313283083958556526326237163202413313224323774682619430247860069912503850193656785591112386203084765566526372480136424848076288494870089149216563611747427483411768265528165676229755791340221381316896225348127696746080369152536686243672953320189437048568349605661271060020684784264827994647617733992797165552492386568491104355960108776165938748600767627151389910977871653520087407276683375306556364320754897149078993226883043975263899410776712044382046436648782078539615359154808206067822105254466105987143239038521525734525237298811889408213106801953174480357729310014346471026192002635623793931588275797293381587041583273747133284868261735923105018460503294485559596214148533669800203911083972022910293072747855543883815343984318663174181052797116119103587586387345651950483266209843948640903763024779888858691893205299463946386389840534909421426071947225194193817623938760216564134887097662011451222862040373505345417300076870772310611887069140396725421607558143845388928886866567428653096543885398813978858988998827309706859397632383833607099719495288919583135985523653204204127512872027928287162930803102780690589515555078355855187881049594715907260141674030893146898224606669587421276544603773118959942473471341493542858008187671720671962151838114232559470942613833542773284996323208395336954018155700695470967355701031807825245220592889315116956205949868674513638637178701840199024251527257255947631275488984321385898952371539674449695449417744289514481404943637235158262116337237482911120069705125326687379216977176050430792998466925783503107971054870081347038702042424977121863212249508882297205044003019865899433526688107291699716660180149519123546441648666677150462653417750931885845846649471912489527118800446251352418995867630075251393832088529770981166236324635282891237033902628507765707823174518312430524337018575806446286107817823867126393322933565431358443942394602808445716699411196119553812092859092963418203442093873142399859845293646697432542416319098261453043005259640007785634515415049816928724846129248730739017078196408922186976038125191492948119332205081724517671599975841288517488260728941599252488831344174508578541540521720081611389688123388994233904743384889953673431273122801188241122465300274778417346838404227600936513808125016564074520865208002737830621275620700300153086608093897964969914464064855242265247164677882222777203826070455435800162901934155510291502795587416229458838994240756746777945124639807326399342722342637064075862957160872468314513318349695988618332935644747270784646840270836510969347137630124484525963782249925309316663061205364431735683713137247189468529155172658097747769994523175546842539376585696059605778804287924211164834387506443783748738837215191302971029007340500647961082602926467005784215913241322348273245641640239798829891590094260653723101489325481207607295194446000253771304564940317893945264318497886195719606591127812267444656020825455009963660072565898481864770896048360632509723304414029139666351428283141704093192433221696922036080248414454135366216306420063099883837055845368209397377626894430464208058936706655453077215899145584193903493258474278404106942056271641275230383615926509865809709673710207864513792171130881741770303718487273395376252421486229888335614199343474301348319541193058155265493375260265961481422727812200599937151646413898541980024727681565386575267223530955617284659427587044408745010283430033777908655705056434239949739244280947868127875422022281010361790077093731403546874182993386759469098013714331887169609313266971422989201273826848188225258877257290865258043050333943776583273031632081602886141956018121639514061122203472636274978983545878863531610598470369593022070749523831347367825889207575876744801617703651227493356220231142078559967378187414883963474305885337668361882150041105375268104070948218716255838297286051047070119465524080705109283850934545841211665374483303247347838274765747304507132380536535110185406487152717435540033485442663347552665281339654156181379300301804557380077382672365110538573687509177209029191665969172040075519813399782112694819234511550979871975984730147981632453167121659472384768219173365408982763866867997384750014404099786328707270648734660489561142306102935555200665074023651458981950489409861164554575389773661398325053089182904585004346450746451350416502798571159411684861058475659926956620071673379483802610671365115094381776708461574356298134187109193002104294135639510351317665836912991307120519691554145320968915264940413373539591196973553346821280591877230697978241905833455221401753668528588635952657456029606168678904872914704006451832849800824598453115201769408089363235039558010124834368840668276782424512819047524840279053640773851826901004603462752618454576555296632360241736160020597703202106287938087286207578944514229078882030149380924943459107397724496318098194577372684892247248769999778131529838192813711024127839074643665425172265159587333265379320963461621002726892919108122515324128360656578974158349596021234924427609716030368508432181311867079084611364864013263627600630816333432709820148183239309203328652093403421449217295872389505291839328080914661291545035119127546567387659321026809995227094718256298014145191911276641373402034935551150333995138868650521817689749565388636045602869680309976060257244068408563929972318122588745740243919027361594614939484061991536447928865745709098149440183806791028875949624099768916535585791997201213551610733350607354738316047120244744997044797855374725681117392103441772044070701192093297537107496321301272431861061321805062700153456789004264794194736791428309933675593087318529246424594761051652998459476983410022900313790188150272087181737021024412724868412305193771258160965784804874835439023594125998490995958214880191559024576113637833796298589717793278860836429811052429465829355330852070529191239658115886469424022925846250059334083379799713883422951676702088967396725858128190017468142379814345923960209315404686125650509339449542497308869453361707528092311908312062970458973403567743638039601255550393314236567129103996122336503209531057603031873560626326592615236715303355690019893374955143698752433164856468042138775104202007953282173876604456812032758276307194052745684698539882834837307180443052760666191145232688477403132979365867889757197942416978643645061408410002610157696527881369851900293439528415481975611044627405817030794155880515141548318133078955865119700842058848367162707189250923915415033509375198222071053637089214788519990301722963115505362488194697604994507097315388228786710930026961359205824815886079137904946609579569116151302205100312775714145827276360996301006587281483920548633740031825010593784966679201098687798436837970714734549364594353802619029264057869040356901306813826527285319543812064807221393409784452558490513956826177932793659659042612928197826810869279294031311674183009587162996014346630540109246084679976282605900707415940388164362163571349694904845819723727936490689617158084959448984806119284205798011836518947996044808613993056764578216113758462040112359246229332613143204537046181219243278312705346419237886452355856411421124523247282815384785939828932831556765918090640651599659271506056663377023561637438173440215425441063981570305983068542046833221178731294804107142865684933319696066000319321386475466213612462998997414202573391513011865132036669032109957485665908846585541929159127410781556428079963502470639438991040702432778146480103903092078617769539084233427268703959760912952033760323647345556849067536579239738963892971519640001950569797123568878999948964213157755978417151087912673828432028909517848530888585728532942729924304762148943776306644605105462422378988935363361661076090206175027961298187993852047533087468349404415141851177659185410595953640459207108885712927078273433255593836318592080068701489966334031916736664579828975271911151450055647491504773686284741991283241396059293142947037316459224163836218783478695560953175660826830351782133862582901242718355075445931063058534297139689381568621697831429507056431161388066146411792703849318749284496363380430596489106088967286318388216033186062824752619938003168015806259549330879317764209059319187655054397952135690317743233580581756109708638709231884973139156318698389214811846625736416371968038365385767616649090156243013893696417375030985106947173732148286460182389624524730146629924364019464756550102086075168594096859610429315381077838005428892909440071749901014589398737131740230211523667154205374454668739875855452233459336057194688446706163307503879715436293827189216043289948817693038129718204317220406951624483437215203504728341698162595505739594799225501958744060339825047118748652262450886979332136971021215304029194474127306513704367090934850596520302708859998327341573404781562388822579847566797543858200010057314002870702953756501881574476684191672714419590331949372131675777622260808884310625597101464645642006552942842422166134022154634592340541240696530531181643299822301746611662147364880715046213719347589937405272708501816733822952591351751921747804417065801169462546058675036075003741040426268537907834879597729824213296251552777347637174679379113630803341068819571827504875558631050876983718117270753162935556563192454165734972373911725804951687455730780094914025072740662620673175666083318915172472565831883534429152138399231520574848426736405659377810035727188143448596877276491422133110349653660504244904470613343625847280771270744900402895961405125879295490392042975909520153587187168715003771873524260690722538894904808879971105885031813982023020205151262106490347316232867942025632156105242376698426882460899727792003042811720274174432774808523593174925032411392777453822928930931846714061630194621676478220978488120514202136921855209254464981434555621790676157767064696219394984921823606449856832024706614855077318454515958553562719344735223965878854627434083611881333331711019399172482752850903282071657240671377770754532645648145468147500372365464659887919537876088735871192956248847356385894307987527081984085299496999092743591124209618086826622328015818928355387739691032619440207576889429000394819312099327253343641922193644821355082251245296394559162719144945952015996484421634577464848998100979201875676162971856651638513484790595811067391522659379972308352582305075081728354561660567131095891026691923936135010911719124267420366127131743144796173576692871674829184665616139739402585992011681330031058301401709858021162839005594429453633512974765233557076868005858716207869896729227392279159600436043528840921137194728307084261557488189744582034593110260582390565217992501822761731116731749446499242280792736947202242279997738191506083794536885782355194512874178891178305094017619558283077709941681094811936805990592093167855818967472068044092775182878279387676801175681298244375961617494025743244591563192072813107004659662048090015504853314081143084599495375197426761765986135652149991193066915213622300481079544858258503893711446629449546561289135660706199727706227860066645725866167144904183690968276692755507304290520339591289331288197898526617555134924466602228348229943944243136049679397118072141528656827488126448545656216392553384234354873920452872258723881463244057092641647717841143936692046859117362269595406074331801797800439406968800849092494932173388745446654084391336135962923759670496857140253883243210998632304682961868987373295978964784733303358006236045832518538694740319827661248659070546969493689839111111458811321571163515918870730574367069418044637024341927179559374964987731570446891543082379931664904802110861942778646360606686252988726857789744308440618439698293622894648885510234406933954130757107604334486924134673086694224839078859288735306072974653197410930920098401827168340804317620535743036473352937171113253893627396604944821481772894699366219654923013099554927033836226540815067057370698537407996259961739274183893192280845887020908771876885613851120884395299968621029885702760311704745293168248634491061956287554794177399534956736385322771259552570691429876819061642882482369195967123055394574358768569133728861485207285647054694138311213937370921618376506106438536824695561635260790283053794076396992382534756540190992325077924189985637050630393655959795766085232958782772361136510300905501880721224768074443731980793035901728935089406431395987381373696415941577145450462487455280588040662526839742817433865375637455562765485111862645395062293959776286821577225842226236976087974863291856794319903510359587839079387086402391108000067446377193250157271196848977183284266605442591512086240931766763607507844867331169622948814373407493391210830077414161018474292737262834515767482221376267946630659564709994646396852557830978922700155012609294347251060121056794409425178131956646110260127279586103049788162754538053167037493189643891781793107363184624475559329186138231370293333388486739613986760657065570267622150202663768272186205363050235952117354834372029536349430136838589785990076671006944466930020705467464149155117172654554962899235506492403363935751972318569929968180347769183020369082117595874193219437959161430341473850396506000283514788983293679395269138958893351170782115941485141833088381067622393739291857729346420721511839873074147422936430913518950313060015419966885472296333680873690420718176030013032261156765622414247707691554500021564746647892353374404022649236052399561824898852183952003390255710144974565366054489408488696912629897792275364721599121806958679615315596637939140073009715583707714786947339134208391518697572290290691324545886523334999177998485229920569217756994405903108518349069554501032508685798811055474886033819893169243110226438571289288552252846555429098512982461447213059671186913568446988472234658567386801309047919949094833417579018545113156742054808367291035610945132627758524540057460861297396075635086824703749392886448444954349913177751435013055427559689927037141992622021188351927262048417550445169174550726599873101742567581552190365255713937051561730108412922354986665299293502427848363862901709707459067826690545421311995197287672203438852747136912896110640374415532190695889526773705474180427016275163812856336221969135445599603037781100018566179682133479776896562841241323836750957435528630388542331158963300410103844304005416427844069920386344545540813750955503643738159621220065396317929330391478101323225930881693450877069507822362135028294638690759512426997272090682135635470823808795319470843545971284004471934327554584424418129455417195868067441655806583136072300338140304055119756733056070647541652201417029363647021122624822852547785922781282846364511312237464160129459831922592518303669286272883289270110145726130923182789350229208929378144913300844683371955375160449856255331237364267649050165829018424359120050271258394724428099215512526359130313398108545139483311569682446034695580663404864900435456063055361586261500886908619025154588021417242007006159019185970553822703350812654284622806096294742179425626777680401367759477829483017581830180629882564786870514264632669821267873359282945407851174584588396733374625154250105770777986100789654227843296487511473243482040660838536814980157781538272775111062635118922180781684764634548105465487078090561661213686720978558371324018476385851421367583771777943003840922015251607166503241592081677611525927375363268777624844219674322099213018655844997753143058998519298021424581853613287034851962011113029170493222331139079329436018837310900388506718156442270023782256397471987888611879225757620425479571528217995250265697545444630820683523309051442646557956706612532422683870576373750259048706663033409918901588548875903966908827180694013359837842778843594786884694025290142272706261109283393345264717790518598741186605388042982519540692901605121859756007537586233642866632895493934304731458068352923064446048797619649260770466046904391457261793723536038657207741168510265289081760733874974061568844355186823934173037118248066172055620100846515678029148345354263053681727918702268224028196750410986462630927285492958105877544525364111227182179583737395469189845969285993125281234045428938106388095409741820964259148180393897235968351920307321759000890425359320393387089341468032029230840530387318966271632199594026751424886599036134427906219729359197066162444039272568180263738446433713151846413440082582070856328877109191309525325750961923546927700038402990049296937801515085937492539150789756515974843743825925418279513546108070108563026045563366626404333834898285770288584906027603999141455976653622412254908782376551382312511987408650409111414843997126561231697525934663601097961590172545357407710647306836767274133471975850349434507316955344079300225571516743668037251783868949126508590209887287025108274647353297267146389546236740142569823761798296078646047486596978263326923528584934226325786709379267190800368986891492844321781342922945087213468096252431467617697614165792492788203955999482072478536395343368476065100754014363074601519314128788063726942016232057057883089717885724966740463447609387502203447918188151189202389531500808198357595926415093637946738530352278749776362779298651220474727918463840103726029860635313273323188597475683558323661716775920343945287262084404930819693684235163953820231113269314708989787643261653375186406920919935443494758590671376150091046145343685908904774107690767815233855769513866192365976927673128396753686934486289353662563878974039551545236120066899362344060273729479978562787988257791135606282117626973335116876584858785692323702194656578981098177966909645170251208302634111352606903690319627383771360431407034356424989953255287538225298195531608057130199303892770920171227651458589456016082874401797304279645010502844132138234315759330214064731341896190989108690587651486776952465676091483075296760479897555339505013046687689421916378596804207925288159095758664351531228489246045461769252068511441714469114005988580278231081639033008685317571426972637530967222458007906077661441515655033118740227925248987824753314354891708323715849119361407077047383134289106936994428494261853005717892419732478818075174910656123027525872679293074734702779089135260156723740142552544645676351260047201435511417410032744112597328948731640243633408733155082736472973396624096365755225966601252942662331457601361835820556839680806674159003014601842685390733787333988176700613980278666634124522439790000708507789705048656808863640020516535083562834729406743657265634273708932518522913308036002647793275876891086794762197938889989899310111254253535323649583177221589955606743798468427167354482937644727209524276494201322190087947200238033861812545400654509209463796926123166663416537525057140325364253490169947118987712688800218016793632937948741146299658185830395227304696482589664972543773232463465682302440817872929814200910623998106484431461230502758279123362991675253164642844687615576863228973043169767102758371642391676393182020960937390004964024941567668850841377938121751004409707888199035216580809286365952654036540553795302681282688120175655073345285952984563601844069819005624332803691336463661451869495333332663091732226016713878881903996456701797686882614558122256689812850706300652971746084050643782007717019317438354513188058200416818539350565862807215045494230180553330180659892740358478913325376032474233230028429470233688836649905009425290677053388910496993790284801806926446261240488730018419680019012426963105295213571225329390943443472611101868919540502046500917510234781572998484556353696536363064754231634951351780203631390546951261348502602027549923682458515891116740779555144181237481135124555192604977668263451391698607356049212447714556760561188537471931708438747778496320000782406321581904272833443366553184292133911698769442906988926558448196761990060751145123921687781319241836382813924817483928223954134265693831689090889798485288153079162044812314663338345298058375800326392213272377314193151842890942888551122453343076217793245242551308081804894596879344102806112355405755613231421374732589783265111066860110249104341365972249194409835415882715835010295816165610513806977129112988401816738344735654190838737547118365709225360781817180355001725531420690011421130160045550244774103468097130560630925590157634523897319168276553098351428448164888118665998511064808503920324256043476596633899064109692376519367053433752798405240452880366589536403742571242764621479389033346828767401898717752817462702309615101007866719614716422877236433785328606487199000300592671988336436616045308431593581040044795265064286753287510274108750392371813066678605030518211843516389463323210085060288788312887751757163035978764356685385522020524387111764216694139902179362774138434649063469379368947793418731858049885036457763271813403279307510286927235711144478603920774093176703667644181580529126498613052321993987907398761662260967352335126993070005084369343847171700494904701235672604497121053560899982925074437037104873562941657825971772974318544892084558536915809649927470435386768980312932501575058997417345114479255907732277042240557103367858695146494532301264378459791333110723351062185016983461698159000750431699940953413304018805654817340666825986584183122793239144716536119985211631121299540841054613969006477042059865977168172742523169005380461087628938490953346313316148300239804118214723521717638951939218927643712591351605475695112303746161396844920856095150117956404595908629950709644844180898667602787275920919390712635848601785776107312172155764923659632107028724784234911924590118121390162827116786506279808338879953964272009179661410752535928575127661641163994769884162783862771095403742930048554183738153952981503884668795948165637659971408643233932383232702198408430167324860908816678335120487254817361909471409797603436843264062019847627712320648748171304545963014543596332392337406577130990617838200328013647140684151736420686730457741662503364840008914747253701197972026068471223810829478721839630951600876050644766469472476614622132612789089192681238912613685475033649837416656846379160746978460726581031836396381212458453502972964272092459173893391232183268362316288129644403797552341085857181422224307970454595943437415271719773169313643883770206571702464976334550541872517079037476049573076351802276600952034581430257502709755976773823968197528992850534999627323384312279256836865060943439779625890451515858643523387460728301396811716520556139830830720188017706490177835054170281221900316642172763993262266899869741430550111163081894724503744580183568603607763258026710149463958523655926150104449448768316019133468547059250618892192738547251461677633307526205076257766190094458532897931007326999639810704580407989935882551467623931654621739727644691880839566291254450512382806796640755658903821826378106898537359892030778355229674305076415021883668605002470606379630395101229221399411673414960746177670161319792330061063558394924441512323886285479022805357553416552361834729019323910411492146954388854599205461329494067018644850455685377210631974848730022693757984189558060235106742479150402154121054337070496037359250185753986775664243888576425647201258959342444599078580238187157286559839966154428622622786339956954017315850090985044106197720862398994938382314078749606113466328047880624961876924159597177315413590640276721380783157769808817178299554375685050982450989588665833451198576888152603523635400035714993856139255421395753687469567435152602973681423622231210586024181163712143502305411467893431927146790284051301389345248488814145197157594467313938706120277416883738545836278066099900654121507755447537229617583591457735681866164490300939670637661983028155280940593548846180141150979971186757015930527725147415864490096117362917396032962122202640058187248346429075783791393112126400729485098453459651661118509785934759052636261506909437026284086777596678678071604146913943530255165607629164488114929951561368964526254536623206045235740865807098465567791982121016593031575629867450318533053009628921849881604085920878686935156370094776838089946885782669409782212463721169746401358825323906315698530378176828976056794596553516338069646706336245441997636548767471549445700400285380096276404356406883132172535356859906055876311925785294431658838954500632908813238491969174616869907827844325701799908153491238184522984083148639592628017526906406830010419338254343307102302129864303598777815467824393198134692438745008983412289254606214971108062018031328163321622511687074868707581598767686144950220718003934100821964984488955401777559209640373188181745612326175915995444344633183001906895754521223706560583181860036938751419892362158955464230421654998371129244781111030499790469959269341831165488569230927394431719111420964653843070075079984468591575386840803831502120182786956714300539931749384308576017144895420889859855966706990354108991953859468425695989294317179410605143344101016249587881640553011851032076900299688476318239386337925841697056881290730956338221650999857345649777968217941616230009290433241817326073480633450825339410430236848826535148201967300470483200837034085636715624056063868262678237693264713305981431906112730990081276423803702587187007095878700744678937202657673622953366051688169245540500747862155928707698999926563029271465062132142699583688796501441142324367079898724232934722691075428720562516358185005799556717855284330238013614842834675597345967816817584396000804600464843723489994386263102531075399712489498803421875542523607070257013768118097563518024548502811314725657401784067360970683029139502946597726079624615732236312506445414639068925493666881604647604080969853255642415773572445169031904835237680633851174462186651210751057965702292974887150726253232457633771412664681942401966455354489492913106290602814558132528016687908407598230404181218935224187839331469358519845015190804944081629593381309077159247494051054538220409507805937340934741613679065119187434833388064865208848204258454275029354544078255381145891545120133230118420965692568091099406691158614958294489736383088287519254596789119830440716872024884847436994475921283372805844611227788633693982744326346861462772777142601289600196815486333694946089625213001759539615467524253309231567129600510542371087109905747054087134780308638465099066313883447006856467745772810010053721382746353014552228393230248665223037170350891875522155416422355028017940785792324781657255481335774068268321309816013434753049268973772194481497917272277759200365928094881319822130881757461409010133650309181434804472430936747416706665879060002899412806205551761354550228366411091693980302620600694466908851668151386537127519579215797970767763050319465634943647340839441724051542508067339220535449227273298533772527800415725584411963044974132323799176745500163075526674266533194067856449258038886048304706409550827203261676617770386969412015778588356804834447718887804242396944589700449427169231027158093639101790701135010442219660319553125519413896010349244629174362483057586085372864612240359022898785634078417953285433793456962643842185086651757478800598157034886567948077247791096490191300564360226814381197981073046086645630720700655602327397124341009459049132332906487501510802479091742504495644854739695444495598347583929966950171947794922734979197176174268640665653013442788850024439746573966820142001022161856487101994874921170951267324473494234764605313165565486561604299325113887887476411506988791160128903846938934908843305986604307870101326982610166880405591398064731545659910693841284214396833411287164001194747432022874574252121266248318072327622795740658716315539462951658250688475201909565357767995629794766135504941045168704844388230087122833512645911393358750676381304706332240642273403399977022865265893946361736135266906172227384709466519331899843272313027911139314942426311870819040005293679528070096457142693238326870680861907828390618632960065393260337954092446379061280202761728616444257644218165052560263237873517477442891123762189524682693071253691919728308617668074973153949148245688067672092761002852351603080485569853679180029463285571886637475551693561367657627909290718523570295012479938191322654020355127735300722940063558039440624347890637489945679182845630616934271621563638964380526354821182488676128706799602866839235236398198333272684594918206892615094014454530825043907937181928055774139314268321715996525717680361902811129585481902163062212958002858478738551840568535118201505726644048844092854478579345862720758532122141321818176062255190360240349658898300249876833710506961478418497734677940123181912034718323510812137905789271353634195828948863050558017462307029034725668054518287322198913561268044007892019334237808602445088903803432668550575052072014920019811997934952468246535557585347639671471047300602258276702753135883846789346699318752944887611713333206475635977089405666946537792726480956872747138587954200286479985435864980335951017602125889805568987873716947940376478360774061137800123226189915118227958797785680556365141368048856586561112017120663937861038188338474314798500078747769576551359197614473764329374340572775023023490848152973916530676223024121080003486303467724541145375912589973441566024429730125813374088554030717548171481831699726478011869604517987582667488336066437893779044048358286464971683803612615606654864929469748936802292034040746537568701813579920968314691589090503634693018689552279429643189193148057097109663302368062545127963656210594377033588945566643656631689054265779265497938268788346770515599263795807483146150657652443022651351576968820265381903274927281062563889950955138222338538870468925347213528340710174532919649483783217642099548648234141861600537623665731006067610454766090674845614849626843407255823157913510995889352780603036134821334838127094754074781140957187726419063339236372637817480393560349025895312162680937846471621344987445716468180296515926879066711635261195450815113702805620277943748768202276833137424747565503239808933924786037598740372792646083841785407552899664371467340430723154776775572376322459261710266436413235324288024342933935736571676369106643419779823697450086192777893949445201878602047367817064929866525052416928701680191859602046203767168022635243212272826387701639600760348359520953267703424895717653002921349082402968828029583724854572436738231233626920179133937723290923427382517058993951111911539729019756800366090761651268422890325547873980048626831366324088852985734337825603163964486716658465568896450788603498347622123591284733562283540720502023325963025921339264517787461994473445548466602873738737969902932617530407658089897578688746760967374360925435590016268587106406491464306907423695844452737711115078434674886096517079460076770529279958135070872382379410212789033720757675890837903719910696776615416708718593115395303310289394845788283409732891784782098020301101578825655640600691608790424734572616435686965259056680387744134978470876251806696909673167305766026268454038190733080587450938107403901242229609151550059994167176289325409365063918653555288637276187312609369296244585280954407222808082743947222598785927341844725887973658431090264141580188799377021672723516736791310073826029802773812676381289658268884601339741507562049792462418592571407234346330833521882161082303474562991325914387899969402811342861641108543516405017886436885709228314674539804649873152079545277546736999932099599064082464778671940878353055465969038491482830195194299669115829434206584703805117349370207462886223402671932514685246535940231598245136912476449856476243326890240164472569383348293404480625203597815637768838932647317988917100431474079542204668703946940791492671403454245973495837888259620976969162539162302978128029296936353402627989340786063042755549438707185384069423241958123121436887616405151031890613912221641313987790092377819865327153935457416724908459275710126459590682389511203710170534228779425625889668561540056400251094221854838769954337947305938466847885529560688478181189615661822362194148781282027176103245034164694772800123990609922411929199475781876814417520224491133543927762043001051314344889062234330008788155642042648820177277631902206165237129094137331155681263654842534910001125907239782771753579623752823406449723767018072491043674798886769477155731729375230082023098782498023722705633485809359390046169553843507165007196214634253097335572550889006847260114764093543976843422782017705065606039136751763171532685596596982899105154550133186102112983202356247049214912191003920757683860588777264223098250242723473819811973607672201330278204362132727169484779273061623456226349410894521025492971874209296829715747522924729382968749907533890809363235226193863143042059812015947375982119190135513833302942730781759901180724715558341786540421654484314459891578015359953198271250071395487980364235673055167545513482944410727649148598618816646393737381599192788623447015916217948702580541986203421900122753480748203715145012896492264900457826882090665391100774693381431641844761400540131658410302518159135009993176377923464081046645400051455285136084352561840628962498774918858264748522854239636508326591900395015935958310210779382339598469264878778981383260304220874825182711363989019716770476629430314678529825523186077016896767016657474517170925949722164028011420328576536933250194453569111902663332840711314990341936510299588479676502227078332497062452043746884740385080049826697087944979341916317433334423395067535862454716417201626096231570541238073223817307754516996069244641434902599890544471066771244287130019828728657557757282897086649404371715048912805531580223406819325528806359429804469011198157804387248457335690619863111703206709028136124717158924538398516536339355081400658408712928426565309249501449197585249693356656763739811659121629601932413683999210564149206993792117791411740268933432133250614579976607169716655631428395441118675176011312003822432005389115592805668130756566919804423487210486440597191792388708809625871290067467611032321879756777712101383344725177808967285016143885954395532672094421003302700681061093134911612765779270274137281311701372523757319913417797359669147904971862069866810024716159404025367368637458517369901729935395094258406194034229937953695852272857746938727666810483119707928503835222669875508453226695299297127505854852164787131303162962828551053801406118675714923316937679087910088803876668280299058543894295987825775562235006866666184422097960840468319695326501736769514081471672222478825086044713436491083377806635059259021533278687086745197517494743955464669974874334794579300222725736785036410086410679849185735092395503833378823774806380145549504937462719604952366167442945167190980804791954113157057404977529298323065274113337902652222923992458227012806634653164812760735073901604418308834316580697907823924334682069064284763928034588676085725245383829062350291028428437150586685103990716538415152867145111155700545272900671709454764358827181916745067477375213031776425962801306070004268055571675420029840787168674095132202004372516441178664476649596394012747432135802521523697613060236059063696023308793682742024462365697932616627449666945555787034147998265748591053017510137024011328594326705040250940302284660038377168248475190842672144062230516054263850434410296392377106314575520373090756802977591687482356263936713068687361850121580825205072624560326770377791869162974604114358206894831780665445967020602695471468648756963256093220771270261083532362633275766573877340068993518952345934615406346646108875933648198962879086045578184731453346211553734514787648041683656916067980593855806992092389886136445479545650207034946746173838412111194983566775486553269679264278960335379287248480892571741695427087792716886966991310224361771196793503346603002954587854684448938073160068845022485031523248792778856451559865734896207267165579351781861507184606068906477340032828471890664037262114540308943107116865591211028715601795947886470561637546317009139596262288627355821276261742748672263104392279340903011836782098946472431247349720620253193656289251801975797814785713376185650296154195893584961432736189195335486606464182339817614200025743625750991799377561894578527422091559483554068019849071304168919857146744773692225115808780912925067477068208558211917912915426361780770726186002684180185848104665133761492869663650294031240397345921659484794676735322134558822848638409923251133086682392323683348312207120297980269479881225434600647404893853157079734520678484060802764502568340213094578332609994963841976297253114785475688995786628690385534457408597549014499436315121963820641505663169986950338603330976909352694234453893454928702897651484840533732930805083050173221733534392151832665310001622024882337378424973738247622707583894762004624167995074232072780807362989390437679912204556236191034096713202997365892565306073133267119149721819529255151911767546348260204096601488174305048165060988307010799292972517405160871370326655912635250064714517332651238726369949750973976407347436940135604933209660830214334216921047552693557609802660372519884831075494058366747992774596458254674232621382949112627348818047562161471305068833332513532529611202636995503119295062932104954463035492076062946120762189471592330149938925439837229150862003251577179477843527582758064924086244329070712203501943137589133933989099305559837360298979594401218984070750301359651497689545982764975183970800745654966200756038112928575777742144896266629910096370167406142998644142785539559844685687555272665048743893458613782203259580457717708448725321215253332843533550135001273779411605929000527833162049665066743547964796117932453313790173360603249997435655343649125524400390790293604653731475168050144656314677875158768898659645141452358204438072078493553276639584200974273617380171640139084036783379559364134752058983432925037297502921947948651050349576605920618382777896090040227945381835091062235817485728970810657169935370343040972380311562285197310018770496957829951411864309641341383096346293166228319659049859201758211202204964368405998958611686056489841228001185363460969025871654095608847904561945504930203318910718398624327207744402802144260860983296520249819345591313536262869473231619584269139131258388763272610805548054384187380851012561895728683652455998798800541276244690441973048657428097119751662020339159038496593733432899507212105919571574292476116362304125006780383259872071064047293260492507695171574199220096668802482373456994021628049342259121125516068641714283275394440496090260726051248258868192508035456580465927247659886394750464360565430509653897728595552241280034265281897330129035788290087486156345324414126709759773701897897659143697505463465438278553269169119867489384196701690580470435361886750670919636781976527310516089502238979013687004737473346525767302711389576036449801357748008195120872349991006131936492617726835556469549823038254898266230007635115592183035830184399771316510434619958004303606917559121084820183717355000705946326722084532708785555561911550174196865453878252705248823224978414693485199475311745884490004229405564706685188718392871789677433747822993018315023922387125839521398755128864501310131334076659994244152217489987984287744557351050234923502348266823072439416994419325583550341987599629120726094052689595547050462103369181027652269994122622394720643350627358583716569738018291410691466477635783858705624341075326800378171689369239373071436311081254773043500270727028970178863259556196350612757504563155530175971738468357628086353973063862875283719755553205863242279139730576863727645298191616646458230755528641503976238553748921611747871650716890168040929419424025714619379054667144049022283895279802849295247740045004994061388562642520650323847083272453514431110517641633291370676951022623417521030825280735034341987843928391557908929921736696347971949318341623999268030084450990108021099236915957998094618478778999530663330898069526528651702437173070243231487577425475374067472975284843253490820345046771604375171354860844685837662447918706851524579056358002714396426561477835737902773173373261599471256633430414910899866418116761911685625168463949497973263569006982908330790575876118708028159120527521081109815934587055009473224277444079956723803774761034399239814300357721004502495456458743790934325102291927676454156581038375318704103104180878200412243737094717134477036825487929843708698488198472394180643704870517468872051926759476756674912557176867537946682820644430658431881905028042097008541709287098366632217717103183313931714400137043368062629493746667213388397925329616674447319202762513261889596771934562310493152440559094428675205460459345620199711127956406378270579046467568174633449513805027334240170354949674096651196129890865382677899901982993933572984838217836695344878448204598208351873476620210898964907488276518592863570799564427089734534490324600521509392575287025411621305817878673708935114938922417336982460259713304711431776899829797401297356742661797192335142498967815800363073937671135744259790621120683975779355108293479206021872100978435128902985697840103234834040377880444091537664933280285614971992583649799160050112417593416526622945675904711794362827601873220483606599541145985008932032989026340162348238137084831472142611685141042214307763743324815703123596451233331917277909087575171799837529306119265732345856596395659601174415627757932385839586010626869135656315404371495842582948771709181746315043387938901386454751497276857671879621213647410339945360769219737450761669245057558445499440021545981778623622321510903484936615258461001097310267586074298176649694600168243319111949059592513869491479202418101769977957546907069247690403962470307786304792095363040363596069261786995091033446498643324366645545824524348179918471206367111369134345906867080662440646399695301073609299501349835868667915234646037205780582683084850657874866029255808528304934290221640468785463660204104936373557787419924970075754850123933091767316790550379447999372708596289379789827560712017864009996590706565594792984002426410416643206363984630547972963244427409337185072480503534711435671297884486639212241201882449644382899097516828104963854048816963291363240854355339107847124675930981198107323029025395106213410997968887076788507009703273379570348932651300864685239065158295990818322293309855224729176867540238015727586698952066966865634554083461093257101444419222752172122461645222985080154482616036584345463129443159830703112722168731820073817885818460288019721282709772594357893482493279192437370017605002761271588111914652249795789938269391016678704793983195806299437303227383448269064163658649596239811091028791449178930528771896946552957029501809317436281462018212232571164069106900932222256121256958205535871975947041080276085150967608780578334611095963478315152796568794628112800838021398786849849713185020992067279593094021766137885241435165997705372456957883562051997328027542051049677621284810100356901507605286250693117052472295883404220759508043863240523625845660018162759604142046051031753963040920248480343494083805967242094258546835843717278102558865097448291982291001191453422345075975445301439390729836416502297576067948059284614334027659209124106831188982752968505790043603803104534004158967695535170692785674372813393046861515360796466123052204227525570448786693861848097238147051406452794471167549208768728023795538932248542001082123317273478069198121795169016533298595333026883256999563834414909159216312906202799416928594328597548607269333812483346104049323942616308612802125099182032335467190684250851539520193476736209806887220738975552441818111645536628959980376277919303178737727138201747540640622446554429237506844893929130165603475843068749433694809477025332783729544395780101575400494664064506805923866945518059171793236829730469957175341389527339633194118002948371024850829490567834238430957455679434131507250362414146483610708470757656238493464255741640555665132699261305777789014996204423937526666173012929482133256045463381717222545875662399308336736941226084760962460717291796965463822456129518646683190364300150777189977828894885028584245409683396753036596808384949993416654649617631589619276630680293234511339581668674344631927539047553004520349804249494170253746360632311028839072252040048561181132223033817292157042169925277301129760267028698420486382682893869345821976486682724781077941411413296200421531486277353472737927524385469083055762130522136738987213280402689339062737083051551362333014173031843158357806099401889020434503573541159912711900084175333374303572132604606222142401819985601757189737306782411499623834136003686146109059013336422077246264191542351262688560562307411435419089657211481416676070358373741328127367440286922193389988304463168801708070940313048760605502445911374867159806365693059565319131300199366994299688730446236711375634689074058854677962646856259009799680969761778919926865056704866591342363298691969940511955796370126888857297644308938818157209259719889405358948759002034014735309739825744448410933365996461903777060914761009431742597994235158512740165175683660419386517361065006973876143848806754557155125084832954602874948210657934899568458490594922870877744737299235307539862803946074181312668429587394284209379411138022888685786110366180118231163909056033237473319937193998942264111017702692098880316664003484811274422374385853088526452953421104969504258738946483611634248176434247442601314926646093965900565126395450511409949653967327675835489450308496673384831570034120018095578278268049242833188858096600965158301250040130493880928459002145795182678197119346001659004255846022577575522187914961052620722305212970249574243308592609167726253570417766141297806228184593217126354899677540708746941924532932509403766451820123499813409306305429107748974396366500105016861126394375439537735987489024117232790358781589445323648435615458372374625813373774550670412437558897733650988057094628253491790364820644019814696471163237837249740339574478567284761256503916717028250581873788813659624770410890651243640739809614951700157791422181461043286841645845800366827731152686989147106999636756119923696735894743370957529771110237236222956521279698085406071149261562794922826896357814636359183679785435843470549028697658951543564409873226327773225103965083578314964404173799237957925617929227737508447776842870002843374284281881312232892094415355022712242458343916107751018623008621586425676942612629457135259208126753616168564625264623004791177476304223137558778149243674743608449069556186614498711332157533462403388456184727851915139587770553307093661643496679784415223468247234794357426695581903358335162656598344458463634187514063755836749472672037206801016890150709940173789085912238945222646531221917066058962916340455190268461903360028102902131749702493987551150074826714947489778349585729698383499316224206499036741638528862818100398411408017462976995908944591541622632363288244433937447241406867688066930402613202529954557804651551435479344530172199043599554565449746394727540982679326815872742622048928522189007359935592298078143729899021763844876979948135757019748280337435919905839065291098252751345299211534344881560431858365779221091989117644485528507329603140325127419757430033728407021206149741011784129225855576129641324839699668588408258566307088069423914320368941672077043376526856030604963242596178117059796739346929585090720608082490046033307625946015334074116257117794310239346415385351858215010971528607425131288084745790531932139114891487566353634380057950876681744799066684507414122543229984061907038671602765575484127067299849146394130265784117309365589831858180192017810484690739972642285396854064807453187509468881479360925392354000688707855462902973719400783832777788857543992235600487794119879278340526541031653235705710971930672957810547428366632103539964433236460755074295708788277641489869960409284675957774688477577649674884998507447125149805824978738373866144150157114743352475252982836169596322969356001374364810199750567335036340942480118056005640525959267228459271026701829500872820534230726183576905732735445366395156914773242594784574047247998835504009786607568011981275458932812349136983723471917423077929276522039440736377698877480443803504345020830208526008255322603728261240308991314349378667741484483511783446579211290687123553841457615022000873325097217761085252062210431054005935028762004528568803336683245338487276105502790662070067708092235410353174790505199141778495356209310088763898018157176396347008200812375043174231093514525102588702470098838475686128153235947125551622915497450527190959148955104106425157076611818512796191300648539862327870981566080041338498589122661259566829087020497655446887056172614899649958529792535700106000119175459421291506515891948659196929013868962200891252018938120259063029831976569852298414868331791256577681648848545493541240652783278404706497203149881412577619277590710798841319634396205787639512336870540714596143687221089594175401601456806349546288765949975008094770205225638173818540224557675786196808998776105060652806383223982435858067392609896665053847457070507070115880370334823968869249900227891372910446696397462842208388925908814278985910705774544645589434006978273452790839974667935605536207253469588754314507295716660650719161174278094712643368730560579115211941137551813202723295476410638681948963336257004418405052525438921712381634084975703340811323128947485164229251377448085322832916750908198377769735938474348085810169104144975453380034468063826293869544717227212251021366397195163743380752648405558051885999238409611307169584990707067783721103663860581238810521455894746558908396821133686441592113941305449617934027181105507414745774088102744871551397493994102945062818945978422968975492384302287481945013219408355496603058542359113678378946350078360899370705686102244792374906214006659896361951008539005936977616231236066673004447041227162548436564047982088668252589679608033262891507318123793562014148535766407496420197440658818593669090121363725454853658956569947979551143992123711885704242473204143307787979638140487804982058652590936307919573890646096488567704128487595544387396678259760261594068252819554913007913512474930600541322022504781639297060138279864749614414323731721276160598090095202181915236886593155623466391434590321313438734622069154997719610901773033921702712777206320161418039331207240563265943705522708203192223732330522430226495857482405744814394605448305279125309971114988739505217304275956773379967759585474601198297329920525895965289513979983354921033945489298252461209998262898282333509004041155141866032592000196708692523089852728857645339846059852353926448427616607691214778784482040906688858460398218027486197358013295171014988480823849401681407862124660295967914307908716014603461073416953740189822935532441534925452197459444226531570154652350116383380618569436049914195220511678053286889819730839944875216682168522831972440986814371144486098918481835273873670405584535511709596266042897223181674609418944260503886415376672620214446776309336093568618937965959245643858043638501608669842642027390896904588966469640355332813850173381884049183143068619184099107644543117053805110977859457921085852961513166428415790670224343122614098793147571146811971184283472971648209913051108822016575061644408115999764993688188170645334346824165508152164395843302230727503025236114711261699142077465311599583882726370241811484404608207217270575684435159099446361892063285460471988587573437624907021230887129983307514940954304383584670795955245430751506853238761127868853471200036673790788996584847906104003084764426845870652107622599347027100963026526334582975013339449031085874446508110770451718510527229385948544623658121733370571324472519046116001809454785721858968880761400334677543960470916624294179214272302901140665952354930849771766962464453503462068209913964521218340952672513130301529468215208576618922027696367742948231490723917136695581290572816775161518525011423108019909800435830187129022166020907447884322983875646790052910752723562471473597668838694312221290373204864971087137119969932913919676133803101920652140816759875655279546847769491440500554929199155122058342062859457396318866674175226707713207829251827050419253526182223996116570604208411063988393880651733281408324591916871826216159604857322858781410848880911871177507769889870615704329939671611498322255215183853668025335271475997115220059333771401980040233359119874894222641106613180719498148530985523855262298299628576188706491565680603497226237055820441232697056915956208994820070094060582182358385190212633633316010476730654164337630723016716053356565962248864557358698477546014076491228685538558717323095473217993534301791578199082593419151864916624970883062862581858227210817711605005418252527917298843027033832177313250257233116526126361641659700375612120925320024808159415819477283127950496126927122308466692678007843876528021717219196442248753061314757315221953743806021594457244700361320051358257586490154256231168114728202858136531737263454435155934146773720515489779182400568975562845846293378974605153762356485842553229777948631394252903303448232179167426217894895941935427454334063105333505001031694105530997783796647319895046693795970880134847547962542679892378169988583159130932121703792723779781163016487899201378089228357321446384265210201797616817501789147667069585780614382411277630532507886379470652472801140973403939653931684745080753896659020176239782811118532933909919276384309743740715873153864505532921894356916064864226368238541786618730187461897237808547502938975214696751185673621515812144958846508054676819394411781096884233838616746974270241601939613760553220957099494591511453339399028074418371492256239116051965699081674063516715635494860795266405255285386834653048231827999906118349659278094902353304289860183504603337583449794728951417706709132391642207411552037984921350797541671197634464556959504326678046503803185307932749345715943377697269429577022240467160763094642110533736019837447786093760632130890605455484177266811659740548806417799167879978786300525459399170816419406363980646534314697332600541355655696446063734694762004020275190304348758457398515463963166882923227826197476426017299074990114954748758902087626369142467736491102741308563267035771708646826769396796769230795296659826704073606644938546609290309278911895426925620131367785578612465538463254034548171135435739511644476358623893283469682664591806125503541601297062340788022505446150296127347673861279662525706291759681046877496240103562623898374063071473601963615038359301191218685007081196637136011805547864240340136388591633992024698100212342008061601051046396661846587148800658257482550559787883188593553835882588647425985311129557945168932000657736989884545813189283033704412860246101561493498703044291575825054731489127960612756420448617172336021495196715108193885334805430749765616907092443986004996825965041082933023822997911244066152579520077064754452932414250601211813824282044081201337176275013746939556214440817339193467284421031070275012457059052457719059732461157320157946703889369808819168374719555973213285957300578121687781068692807777118248183763765430318766460023383117595656660052073791305044431116296111074032160239248214251061880659622204132021473494625226921068778749153718830634937694796556727369408108597419020821047249960882444973411775054690598134444705782833352236748955200095901976678321146012996054188418856578476355463280582742712672038822911059492934748944898158061178451566289909609140206044681413470204866547906240219289289052946103749079901003424201672336643599647602381270569739637473178323023728356241237069990607693875836680031261018939604539013697998875218346960655959055649624806323062784581768805452738897490135860374582576414206696899478391199569345558465843470312385641326364463082896263250975886333524602204118332845433413383712972951024199173726583015943541292573863150198528949324163025721071811018516951412715663605061356872139622827688692583686864117902396129261515945037989264446679893315240554040552219763580958863898470448202284140206756650553402349698502459152865777043776124817987648462392484211631029098372076032248035702413167667044374329370783830947613628599389275946388623240245832558694592168554592893443174515748272564440997349216064240403658048970957069323444314780567960160997714094272743045592637150453297574616018758791777900654728459303913998206655236606180863621605395747421919773239070890672635236907986766251941420507492842745987121331715905219668262479194377045982435707353319947810399267306014227102942785033415128962734484304676938737542385428067826810292008498034613606471796000916626039647875690284336055161796977826321038971065463051124066807382597240706016586018539774262495400210374157951398956630089899660492928280202546158837116859070863335231652694827678988230901382677390388884977950074904675922110176007716172841410035878207963143578443985960453985849223485516547473582046584230628203017543598072223698778213835055471509817313310268833567497968800452253965428520294727647428507523609428517227160047783941007200469704364367251491617462034527245437435103064855588162012068025653282398007921364020538049337568756361481120910885005458728463084484632545895653400536740450354681593431700443350158251061577087638027295599385012790719918685619631633478040312993040056414215376254133609277198693641786679869023226142427730602737752609162364281082190054805022301319897603100462327393818004288308145176016695429651346311255370619761932219969543837418100423167404548900378501477597910463119450541332335796846299022888892751279620589626918031056466583873991465473938928769592526023263401287637645876014846541578041079554538973832190246100007604864518162553470764226295758438301855948957886045319330070138444146051220868517884247599135650195462041532715903605264971681241063336171220892127809030482312991933709496166892974406118826387808534636665119326725997730624642840374444376617206019337084590871107250208232686583164161743266995565845431075441148387911100726423751619372150164375459460953449710601082157981444994659756120799484592945448964272395617342054957952462882360526345545494274259017714173653415787242416551356575942196911521087693756509058201950376506403625789007674673657135344668443147100771904852279045444750228465863428471072505616737039129752728166387577219202927815270477683708712837377840490706556658821486433951619870805039953950894311001294281112241426997231059783967270418304440862640300506564005658793666521263075641452093279027502951423254441928406906163797567384269816556896148095322544811817217990009707168880020740973193517749675282419357287451404772052854419929555906495237606058355512589027174080213457438464581215345770235574397925107394033071341251217089628804664795216497856828357221948476942982361096510587224117306589080433162784722411927390727212585936921944872595502805567467330686210112370052960382028486657180662148794614810600800896729756312843269871927216700156005653267599580748677830594823764108363132596014756074379603072562066300969033573307936414017233691464092876760465608106323060362864177862268156628396096887107743149945496447674150059417680864904714700074470398395251281230981087767759806211297455169021387520087364665755259139762134825031934216706772424118585077477941349798240838725268901701812049294231502636423668953714175932275349164668178885948899086949486106060124467462524465115734087078819569533880851408069112313970801769023105380460249832125430010639169243394408504646247018044488310964553105641631001058778563107262370541149637674051393270935905331739534084676634752530847034851228604855406672906463554375935494852920192051145199371982683941756347040024125340152007449351697277484218711227079176004848384620967329853529787653379401100148920675496726060353164796405604847105930993299065493546184377174668959800336347742497041619635595332917442088672295862015276041725404273833775374441871912630255798769100710290808639113209461998827722153844659241239453611333288981482365287779926348262939055021625212794301361528282464373160802055186232887873839059492270078870977684318841519413768518696397392402334415604201545906838684168526125923992211739162709137866445847036515456279346509340273983378410877436214633951967513266860892366800805295926455238809364728771973639318388384050047132679245559346961071446636054307242114051471430011471637876569364659086041375982876470440612569486942217235033135454138368149423847137230282513700773003745961080765891165247092208798294092361766949620082919585455977187344823375421855188375080211652115604731369059750676700037305976786887703961249782214022740250544497026874833222245998183209149629663439514107151082420453067776798687643671567581583661541640095144320306191082081016911248767608279209917578770596771058533585716396862023746901074866590380878737040368676022308188649178937009481416653265116545036098759721910055573128663165504821230500229485312300551134096700525143477384379504288146522455317871067772942531727865132569111103976960634326977519511157728680815811566772807269401942820227144124883085861577360700980439712671445348929219364612205099625585732017073778606407214181687796243352216779221246224937053061857609508478960855403801487085095316600727993553958277879387455620872036026349807408033140119073116156568005538871287652601168032987079644633582092252779447034822390571356682542425672623123303050925554032614383376414508092498314422760426798323575884247967365596107581961047775958392182500639748189064094138210061511565878451774620577042400116828636690106219233093573725920605337764759903716812460451087702293098537108531683650271665865391660753842134375075536398534289914463382453010956222682967418743201894899549360607411412901930402416216464785869859464559408916980723108524862977686482401495437603502138115671280712970358231294104892335150827389505837449475317468889266154229066024443385548956010102089445758515535982553606472322439764422523242513639655745979086671403732000284814799617134554483645628328399188187305794134495682038786279425841207528891627748170191365597641933845566017028468269097186827372755521955785299282765452419320239335275929603461051405748929905975323866228908747202013921816035348739701929528188086765313836423874458552430005151137582361850261963284575014144967682122379011136387707059058073222445007355598423829792252754924030283489427967409308545582888535461438609416142165936080897144878633336243948522494803468565199371762849891191273957546577770774144904693072747920921699348993290750687943467068971938844613878836847997146636096088635791443920950301433052370897618033645852893597582485133919975672657519100823451096675597769073743340579901708811609407082413274307531810844835213568612068728426023720769515538752844292141557373831995858313674847635840920819398334229926828928047400106167958214808113913602529114164798171062499219030407833134125952845855422283183649184967324279424357291464243607549241049565739619132771162429655420341493530773973450971828559808997096117847283552068419093706898323019650442587001828834689916712875519515953838798412420380868695355579544276029020369890122126182934394153514324417829926940463005952642279799270052591910635189838268453031707099789069864046506802603613953085369259814631307642563967970843804839504940666334051213412497880995658029997276157049154208840235196339346718349950720096343383224650371095733978426072872206120215120709775681402020196180579341211561178346709794120002468806183898003338796771507391555911783772787842079191202669558182092474480281758003292405064792332555167686630527210243386232410752346037708361223364889141800937837834180465099181168771357286877747393256458498921073040333526569002748501869249626343822704982809097438007234505251790118755919045818593695911856696878804312605358970070919866586804998756767378758926646511112814657194343622735788517414384687437920381149494234566170022810156453939508146605862661919242096307582220348609659862227963413454014136483091768377089103070890288010149566590322718898575663191512116249846703993542521840086754327137305416186548045086383256063956055825913212855672837816253575243554841113765517165801437992449373625126639934343866413011239015499244992559563860710244230937754046440942448505823661940817509885121257050350595301775964042620399605755146549952747031576491664493333222928967737323132434088852480009552920223150277351017185624021762488768558990629302065247069422621490991276879183852738029527442891823350520059648481907731409508542741589488802217990953609850604497392293067058501914518635827893151311953426489046559894573597082460435065962890880463376971350215702747398994432674971115703319801734865188250190616420500331765584952121646591110546471702776760168773277636368619974510294114412966184968747281727168339951350277609026098574240358681317007191747075229798944420887063633093155719942446398872014445135935035627980468780520646492966024337855727934580615396876909792951710138791563693579016641804736296539145185256823126391018021681825132120464059343342281322793177099324069779488275278010326768046307006968664400985123474452334176430938470880806082657098632090030247982201759824656351067178090515224743764568294717855805741099387427867544165496437232160342257061856736646353567282709297494338455150803993272190702989237339121678060769772044459781778783250666544787569231335751477881473653417973045151502446423472625210967783147759946374002807881890060728735471637668358641054591648373824520457881820005809216087112367572001340067639253772918866382887817542533061589134125627682538520681124801703922835846222389626617724587693175464532998679099089012414560032126429158999756144708883970349643078041720097176977976821043017792667548598582821080127395401697257003270033495635707718333099321751295309832857270442576245951411597881656689154707437665669941650554953440557441472631828567056295888068478637102054609045862155919035614402949867759930175810048020285582773931487140009646953406575410945092870698182822479010397818391418104381626097317332992540695323693202945718021836090114090958899680750312299897321836183215991185515828390083732178161648340609039487383053014638535578389909604943202900391938257142351858220872444373978649035286819707144836609365183069420768152795858847874506436384282984480484344556406954699588544899153711208208108165559780218112420348626075751898037813787110105154194474933696894606081400086433037860151089687395143901365105057761733694430595505415570864839570533984250248365836416298682623688773677619787545499662247292467318294357302426822745534764065813987795784369544714309499824706554068995726516852236904733419935287490780966000772111691237684460651029204262043718752166861981300374959001133746537274643745579017819386887484882279815375437220409712144887543271668162785282232732384230786221818137861035382245144839135618339907397701167177791383999427274217940739200761647007007629931089445441644286776735806278048296247263346438161236942289814797397300118899571020052425277942030298375142028520592358921790294041930594738550112246633413246243588775194115612239850219917801769674661241981405388046306736992294881552569697663938222253817706231727718069642941936045095669920756151270622155410816427193606495567971626948043023314871016075858211826707666070830230889349087989514193911086383877828699532286247641781716432675863098509515599199558951199207827461679151641958454908453291952223307426946918708016081973102264491598046482003857735457265525880602951775662095052471742764560106199098769254954047599304243833399534778055587579209796821070453190213458020710399412771911717609818292054132726602331740121645404715866000403354347270422723168401525582360275935504005916431100530906528840317651237968142687082760609095809429382357699948300540982385310206214281515632929791875929858514544605646976557400979387841925074521964929651274225094525066896078490786172517424997017722235521989063812608780789971217394019447816934949056374985366240443681514593883139371560470437308913433632523936244588671470500856497420318449494627617637011855507471346210599430789385067888461989457761634818264485319991664933300297895489482825476708137276745045054530287874275099573120758511495220494714829259025717718444150839320324912944136987765262560762752683592308779061379189212096191398515799268761412389195358269563188052732824686826897682892374629000638371437113143941973221151174702667233736927888187929554724884537257546038779960825321031288356435155991393773830654609481971169814400555029994278492417738832489378090493362683095039862737108225785006982951796762659521576859966418583026488371961887848438893656823735417647100053130711730921650844657615079887487464992194087412178462181671504338728983125775435213664581260281306542624325697826037800919090049927015859110776837267841946539125927288268788479658308592003997580839671176330484205816313677838498040290679682340787996824297834274202514727202872341367143806773789585016758062026971251976495907452543738553259602071666889051903767442199847340172896137239506437444158059195928764695230476212046911411028470482361992539274792308217861623920051942953583206950935094875454823491388957337218430902211137556599943963236265627617751145639112000235818069074081087213962839992318483651134149858126103334979369382328578701002175793157894053146110494090240875560138569521717388171983946228387526779717038474031058588662411702744901642456061059325990304643546117278490650231664279108400417767643156095432388114552208824283745613616599078954303567665165873188849017431209329878346473230849241871972588650753397850839901572802762533077011345285968221094166721159823719725276296128172886669691279458128072391938866670655789173773910956735207144142193645016949034520989931786010599973099087004218210486454162196315583441051125024002686084633654305776911893033649108984663046843092014995914840938159946642077204991383100041267604467578301170409328356678677701293999420108790202616412300356735033843783694102019695668142853571832669773241849887002719377617160496229830494872039753313032430617953540512681389752559504200499911626519215002896291383936767187904241007102581349923829947784198934436306105563243968444462889020886050104424052980191949374848077396132074329525976284911198557295597885138407118735606349706698987515126490248571201431440696065394918581238054545901029195955041068076581573629107948134646960589552955583207627902819128985612579711966053972974950783519053640159638557184628718637224052861075603046995391819248678095050620227571816348778057718088785601363627646200850198794698043952795923277885742379135556918832467839078947041109635724707682397721685534241915909338656846632705728343494677952415224512568943441270685281294807462184294692661331425953955160988290918927261991127164566526377676683548348994736388253596312862726630638145206964421780312772706397826887261790441850518296807637566435152984034033041644146991731361373120446990839937114204288322793062379949099629193199177412323528870573180989417195421668049673199954921430082883359533212450107983129321033347355344876492841013681558031851873636944073526113809894794479336742176756090888781719703868320052443966435286620201060689774046897593316003703481400049899706437816112237733364597811583056076557951104174079273557039505480931984655011716165868564260174953842985481087478850814382831310251685698246351482589628852811390967856386343679695172536338584327640167481702970544866380200029665570592962069205812893667490201775111173014418666593792805551009850803455932104384397450467147783082607874481980385700484533543408576336639618878048634901836346949113912261957603349874917925230249909918932183433989378746843686090233896822851883393556612858797989067997268420036392354939410801057472902249503048897497881398643969434345052987255581235947206098798043556769776030320269444757752245999760973012338991365646175566889927738033535209596840536825807765269138218359485485954815968735846200757387350220820699171178131815713405268226188228206641845970213293440783696109752835206953326704374222478512366144530708583177648282109236132654480136373926480398655495115247154341115691307294525236220890287630903650187330074639500014220545487266188394414453493096472443848390000472580866985547666708506019539969663911903354839479362866507437024157789564652924065489181458306417865603198426312510015398135270849242786407423441935645555470388719796982590497712546471834192981588297604210467984590453220888344886529672219103346242368877016052842599755974084544118102011744054338369446559170438704737463083764946259482430148473533445823628795655468003651027780238127559857653418291137408405860068157137401737198727768426285534992898489275402384116153953621993288947424073463770632577118332424206373488884161364860397917485892707803212431545473173665147794507341636168514094566452353110676725033749534313070732346903949654875143870219896755533823720053693096802117233502569053769667333049857732419701505472775494497198527732922441609351572524823814723577469544836867967262603271285998898003827949652228339019066863570528587250734833136967156135733192606762967263378273864739939452680419337302904170336444165562867491787380887416311816216614512065149968321260776623013214122662415845237360633696060626677327607352939531078658686118579640664011231588036198959770095268765188698162858019539237344464447738488148459267559361095805169675377717563394351913836595122777978258832885502769652672616495419842643133127110631163666810200742107216058513264698529066053540688202507665071314352874647223102725060203272151133728491053133801308792318437210365576448594791684044656579414883713851686845424653358473090565866420155243703800373572750457940592664844559949079042041919832201246820462569108792380842046968900602164105516766007884925268172240605286971377245597269556372550939877199556226137492422669583612576664644105993423074734715593546068300191787376787760912333111582762316700820506602542250507826292413694903176617130207731910166742211128319719810431088358328428427174138682508477485860169340539092957013386010557317824972225570530867937449102191567952184305500053635019126414867700132397001239259866472630065115300725840027717117172573327315760895565526984270356984034531287370777788804364606136453505879291494750192357828395852395167402204703044870934498824454261606070750399890422577303738017303005376157658020166745039574607182882050595573262785816862592251161728548610778035308686770223368272472714553287904903573274814248954229454908415553144751104972576193341861371125752065226018375630399124866840997490798490556297925888256261784737893065799346191211712230929498694282540002066673646202726537059033363618282794531221204690207513243731595860835185115089076309688709518174969471754845667437356057294975147934366459381835551340430517967772301856032443102268888407137700431158145021959030591248494397332359502958052113114482581817566750629272223673399998827840411784019873267219787452752056475388668011280930100047394651415838180983278972985706718450427487113379604297506862751907354901071012726330698452410651539513254439656753778702342436401136229412129356043633229850707294792000315277704267476764213923883702570426714747415997614179373033015885302972932024809214700956762070892498085026399645679548263634996451130134682875128809631314216567284136622608671986242657566310660840138557079677303350817042929323814692388136922852792002256316212952080934633788705845774557039508787978098707903544332483346305467541271757134239540640942220394498089890185128678819535413274554995217454481139687528100371991033354748002760278492747547021533482562453605716229679981285038272426908205465396165749197715577322823811469428545811474078445891344189232612781452529451711947628268769982855223208189949000208229589580069397173106687171867752169350543407879818767186636233732014094764173847959171776462562855930149921399015748556335028483817977137342815849730229082113369897103802440205644810801421554505470328497929514517596258764914677852288324320545253626766914615361175882345514708781918987149116031302915819792620094145784580919266881157444786433231477511767346398508339961383917240802889116025994171081393600732278439612378431728492456217159896369271974120578615358082707748892520485489574312296559834656193933991880826608019748559883807706780699750452869984322754196245066462032659735186374328196337115162124537975946882440166098607635497031910269893253376331226736202619804860245473431573676819347491591771201476422818782239857435299606622098079177161990725561229282765068096524678438883301924871685459960208860279291804829353191974361584078866971516397646341667392132538360697687683083750553383458171038762895590590300749709498535394621830005687855324472802268722909277784292160550821887903009510772050813419531488643426295559050239191360868154530849884762770583645397200626322919015880046682805081976842067451965770706715911413310541921411472960191746593790445866711032492478313973112425581540927845546735599000589344875964910429817932439059571241276475363874646853144354604017309085147128729321202234533994314492871196379734392507074355777402173188143062434635090539678165596403851042749476804121590467995694166768593264563555047318345914015257004657722678504974994545266233165324891781308257172484989755197301395938598553546135061234354795165953747870949111243569643953395100403995158951572350212455973407128690940432452552429941113851923157485012125546640167786760404757255873780558456519114537659743707344304717443926190808355935512515224562038527853893959248668906920162923779073975278383307642326153754067875526442642470721948573794935957805164636511778927614473929156120014871122196114793297576461427222690608049110607698402608827691734967020749003553226891292589031973079478942752802196138308835732646051935130673496931229790398174885551173628329006378769303602765531704410712493767086575196527908145399165950225527057226602191003807174072651004335011968838864110607853165791310815327119896276849167117134923982902405303575698528292734477982696855406309879737153716105111142457373986754192642757000086713112825425183511465735406879687735473236033364943667549119905200227901343399529072396876016862066510750416044234667424709077700080692536207150620929955682361184037923714408540584745580734575456170667208043310417705924441055713342112529626373705050098686289638756691819247011420282293868672317091562295876060880084320454345149213970591605707508842094732335638132805547548354111771744729677597265313953410264268764864074957020257111084963615218402967021719553867481928153370967878374145922688807631198010592257650267659241268163990082306111225568842594409438506569417111763249509697668115589844552851645281628705301906107285025904511283339547531729971202820590766331275624974415629066446571292957643673974009002126222835707490244731539543863618022720631877450054024796446804512547156104410350740385457499792221679689148997483831570339381409523665739544036408239016456102287055009033150804818284808426099858884834496803311862833134366726193058994369349493537407167881551320945151074667207172132732696525876732683776720286945725670802920998066600133892557380155802658144855917291303052785313972899467038615778032458398699534498364382240325107577200950984492568585772617148475569468928047124655510550822107509426004357944609430030983211585055086791269195024822171508367787705322796713527829134810094788046393428494976085708981501950092352163300688688016142771971331129398851977124476896697712471337769201566525362212061106973411999352073550647139594224914530161481070642175037689356650176504121052142449101546964716070207249235842123058549490293209004449601015014815815429354264510624453777761882461179415936079768390305999322227203378384850098806424493684409430836680851772378731641132430838138520353563216608507136561805295533059900889311546770200376356533600485035797882629204978624943035849970186598607483377885549853797759350327226480593248291710674764856790466900396925363929341944617787610996677588880802531154573781899456292958006209504468787738113680291854207995762845097789292785297676081508954933487300272487827267274736141323372931819582748564816226965103388950051162550034298283938292674881537001382924207780097150499947757631294263622866723073332400774948247969933088195932464280179868902599115167907302104072760179887843634463993920254593269462291324917380462039590531673359304081505177495507870165876815142889815946166230093481508355688051092485168963546856631259132518700808439073317876963664525171450310084143297994230494703828566110447088806186423739598016840631187841020458485185799878687641918498381502805954871810160950319479593161609033297221326817582950589719015454506926442180879725892816344471402352004758642169743565822832609847366822912087928096669423663434291200340959493424024447046495615214882602514501616444624252748927055502276480977291552651387284061793185035126297897815707580879843286835582482093102373647077766567132220901510581717033181953317696359734531619112328325819333934909972517648075019603865304161452572126817908257148298390159905882737282946381246445703534807346904196920495046993314232517734604824069527720637403929929361466679736741565840856356987787368873179999832612435244485385102994327466954912431347506748659300948389339162732843220118130886357129571541990224357142554999207178046204104550178045742780449297679078084453871732822344854911035324515015537119608473517911646531630453695323004568134179108282928296372814535164460765691766824325436060406989575396598796267552976747983694903600489301543316227551095402017018451325912488753275618118176134111649928564555958642036356545895558270528987414524981623901106260975087861058805778079988742894008137395561812770396857432545661886143243038811002879461353890835379608290330574986416524037589367132986448524744744169637450205276698416336983623180882623887168842520851130489778110256282645721158361152917683046351390227507142067297577514488068150833516715770107239000735950956549479417746117045180821820676392317494992152816263753525045209641346207955768470102653712673631448029377715241387809277901528009898031461876442878714434891205421982012399045544927573453194322236161668423246382800461422853327140174598008342722612073621292927747976259827784655957575071066007843347378049838419951522442217759586611226773120324611442275615249718914143021882651219876821202221380967534401334631269840171977024827941383945541443322900562180854592275880797316300894602393996804503678612103239563938726613699926994459101162802014609794289651841841777315911233305239028324904442476267417610012484277578690642598390233166113116933015366578771492592493203316073078752466281390658648925510453766589694619053031949922038565439571729460630076906527711590037162540023581884913551435789123668085654372751259415825913355337897293052330963594361455667807473890941502767027321028428943662723202892951091354854876570065789358708539222444639097829661208350291321917781135019579315128368572671052238712873511131844476973571249006470571174343742795657805874969984844923916958032001566083021529305631524047611120162779155239434287873334453899913337790833272055226792338833865258594197648376893501788770025244759902051160655773521629878442287755531106319729863213189844021381008245223442477733310650651966171465671081871787185037563908448203711147264449471607247133589764878963013473123794652664943624951326820087072585944931671187146413743395031653786325998611595568146444090395348912409510150733276453039146377716196980936062748426779822981789428705491475265123882615479202370389526521987981689499492506365017274096553126362057542550887362086990732877203607921724348672362103715580781796711181595826547882429462729258478218427767735406413378450139781696149440593853063650507577373648165497038794424179974485953947435332073786874871828184306945804120555753069511057636767917169405745778640746371692481593769279337662369598369110699155009678359085782230312121702690546385065494325572253816807570659600938888682695834389489877367403453179965000711007915212069438114611053015165162451657659338619322241315489548607644558055921402064417719863241449839352319200960575205379909741202309557028457310248601080649339354654217061207954538456045914432391093111216361311915106324002899742056756927149328423493316026475589708877870445284125530328947420433884176152502939549698912173915737742826410663490877362098960675402385327918226783224117237060153150341121373120160799482867271327968879898049741230361598588457282337470479648369540787958095720735506598641127915925217786328359704321298317262133992438631741782049957412729593085098034575161099290611735834847378629355080821846908276909459123290000736195611516004040805888821741929514099863584188811700613004127126778000023497178841436461202254316739141477520311986061178264879188113111101374728447438490430531243750707717245271864405539306635393621711403926065662640901707041521030149079726720686158284305508466624938970518191292694566168140076122767692667734915385942955833331861750587286356174738632481325697453873449935065679927149760778672810387097897285309802296847365880007580607568433214793219833275913697498630313677259271055089786461034869197193422384179116607118602545272922975605669972455629037086894552455166296603456510446494612158428418071094641920757196387782882470463243804756298453385979177846095501479717834452241786590677955294458285419643002933293706280266016370229119795768811927543313377326686577229269597931699839164548933916456596263939503687951851408611922825922643423885669246892323078744551508138140067892956728727532793903655392464532882594883310651474096617423729680824101392741700893422180117752527442751508991772555516531207001103406461774191629437750093750492871656053031929784981886783807294353881661018907422782067852181576970013903777150197939376551278542450000735664238825629300707107546477641741954854665294143434517936372700984439045363876079394141055097619793314241797074523827999161073581096467750745844898783063410762439248119853332475343650767487174624994539363136068242292122827712700127604093444895093082196848306475841219052215845263292241672278674600630575970010414107504583712712157922427555126969432676305320769228993819308748458896584783997544252993166782911630321217581129112370507547954177992864321106439954934386508705828012332137748179207829435918553610545893910677371880370711269152531729062389745123447335831612378253214253125537646800160868082404084750020248178014669030788932056486344448086607800470958625772141838048695596113736316553477513066076661918235336192466086752372865451922487933181310904156044001032704200329643761674514037392584946928926766273783955379300838613498304708428072907755811463651074678737751348816770318171491141779561098044583584980919526454763769945963492915311511439510273362066430510482994256711727441999314680308617232198654948976071649331735526882322717793889170977579008107453493261086781597472022421710040171573509006051119869977846202083888929853205972849613369414228696313180374937415099854473885776643263956961993049789726677142275765739304344351818706105209082680730187484972489366170658281540512230956643023789377093714731162541636946813783415560028968212227663727835866191078184869637180798474350933653950919064830263343075794010511081400131884599795303789666543693449816280695285264071903760112796013360648811722334816986001280787274730982441713810527865758295389973004460924301396389424419270450450743088907088645928640834537059706644217963983642041431973882081258770559711537348370092320664221815924547233989037733275200462712666788354000346911836217010798968960844081687372665778595364999807259158685691708109070188026521150006600525078436513906814818059225926367717885221290830473446495652874834942881319181694640153267237727338612320504772498700270888533454459488948317138554456425054935708488682199222515640602645979825601976507314255155800658196760422818314228792945843590290734440456539626250416744468289129031201756119154525156243924639982311233631151933282540658385727814688132058030508086495637027673927331001666290002645600487788567963773718707209513030772230668764459881712934776164490224497189281798342197747043411520335490262878512662008671950330814599089024588914946588075747107834735628855603576854004694357851288506950487475871118909196799618750530671686661204878296024455589341898465920777995441460371340652682686038826411869978684034015807068916382150009686865279456308970275715379038964248222028243173364759538489444505516041698851645036774388135360528717477773872100399218415000426407600979023250066504637395781844853849192939212140425782920678166407671362906857063128485797159474251094331017321419570053888368726936739526941143197848673559494635962828700714839543682139933424871580591442359272327477292269976337727942125469518189939366929401661476450139640665283562036059258103032839873903937422975456645898279270678013675615570850401666373146517079199145779879259522157856707045540734493956001967787190799702871007552173104824947014189705217563475810605638318471137336440224214915881942257157489872372525655914680424726615274540152820502985920357793133644242657818901180805975204010071880255865542512758457291242930340493789973197497307347961008588115935818717823945502183084807978814053852416348758649946055324401133906800884911101222260294846657395152135911931569090041315579417818548274693613740284962502315941723736437590522969869100314062934460725203797967111717156613896965120602044224108705411663321008194089910885275017518972105107714989732433247831008751947143350641560298725208254718048030716291962084597189950333239978482044393550681314647942759789451621782411922106232533285325386607903798272116811815906307216295029348347322195080410633477516449531605410250184857739976034321908333791564040845633868641988164442308593563707216150073973318794316286272547648696378294359176810748017982299392788046089637839500440144161480190414288886659315529617012312851737542475741674551457259866328347194011796657466099549007485271954556973535360244818600944193984691067287563465500347137567875591049876926219783546218142496402088494949072812428138845882149567461570089032404858408956095093388231840901571219311851282527664300908368083149563629116125528886308788063091169521920544313357368664177710558833187307788927621432338382521131579419646200370926826858358625822849228142997274090061048499486930656234979658024567378846488007774572630259298839080370120812962411267701974880281095572920614153656890173568753134456839238975768334536473432792099462188689965645504222702440826111703012392645973490890478336895518015701562675191166848379023593855348231285471760414473162862489458877886119132547185435897262267691837336115647525910400361880520895410328112774246186687096868293218774405598360966140785878121086462875404293724134874817844564810606840324556980222248236546370475981207679939322940916873311281403244666187526118845747763699999978016424918911036777993472221262314192433536089057961299160295599445667713137300317346491335900988903076565492698096362788212788705514651482733149109846818353394169466059455866274016600772681533851539032067257983469802141307888604780354415146994349103917858883646467786105698613845975590861094152229170605520080130794030223775288326695711269837412232071349641435025645429360357834137198378697113358490434018218993600060144080009332391488343005853081194490554576722633998195646769980136358827113420762263807222469808150164202576705700257359216327656458118946964587977264646482546489101238295601261831393812585998899017294569094120196196816087890670362289322750384895261593369526512147491317954004110798349192246020425310914938692163552169851783541428491836700234748358968458997578153330323425328322377074103530374099291645794640000122965830545361234104345031907484674860303070532908918640168728235830182972766283021977116723917616205264935942479755000234332999471587845499531866883960978738495608230095094229860039906854664149262272533776000942303302295074914409420467189948899200442789535874596339896704414062397023145851936105176018257357517492404501823727260303466843094480340524731603327651619909108359374368883933953378547541904026391456755199813616406725186436526227734682299360123101987099813158434029051866383290836725194805124679117071678140656849329380677693634274923206961439332778340384634368624690746648667259100311981780672295238611138934661108577967454576985674067354477980110705882295197442556283674574080358569011279702707504871581924038586806529429341078527363757298716671357293188132240597805387049290182573722209929700091332823356015918650187505342295906043130097803139983027535447065203631611826425965269832667524547421070003062838307714505505332649031306461720194882719091490840076977236404166335616697723999298334691799391641125449590407993215828573406151169271045726378077580482514851236958509407879636307131452872276449814289183752752585442910298222465309143547495937472423455095336942345964859165923790668493733267965914090519211494983355440111383476749647514960922667234961823694469874806515736569966617339714702985089088448378990711879165060444924716541204436637931053319166514114348987840785667171947053819184661272667671883531884856931876374824713960382762609756331223150924529395529244190661465751081549818018901792659522692982924173068275515854577409950193330391247442093541215921145284330443893123197619861083021472907991231701048815887383034781947262328722511478772357588417418887981398913124745670375139971703025243741390510938587765872882850749141074394439394709132880236436709183563574043719843195722910278210340068350120477983015339450059317384008877063628062168092787032837854312514216161226754677847888529541436584465044425497138346528208332513248032525456260171062281023479649182874423153645872324738674967675830132527259132854791796478268882939254236835193408942251564010856023956514736309505481871920108656569286680155295329588977200918440501296404995946745965274611626412664660816332817408600290252412799714506304292494585173508224746690361091942330988636531504087538634035068603714196170744652238984550086703635159991267423392041375438297404086093209917643211875213415416373202148287583755881521749121265058912113936857264878286851906543856020633957266469930970990322402940874981321962260249792801411706488237369303433884150244018392090176309312912711533532522228750214496163007756951588293095177495868484656931714692481764758756462398657961220916970801506286426304795099608272866048123625609749224359271678358912393576553809591432162068537083765088455187980758861056649835391911103428628904173359992210820236278543794886111521907932944254959838796309071831433372522302738040847482152905022441232055725366031231099362189603029784817534999375028187701529967143482033983912144880082127823435127928352736855928969601390117910848845148558228366971202639550264282183611858435078795934882318770685313597700117983801026232015096472865120676862303249545038288657011798441638628465821899952803238329416374086416908713038872383598798837245453248799000854148217117787601859922640264294198226601793526060233912604324724568250749922176186140737897229594418653520029283372081355649165032380261169072654778603987761629659426463360014083065951723947489860847176240064212651151943758966098803513358039228155850314052265766893358469661208858032239674026240999383886871351707471758643435605896366785094098936892853008786646253171711635325403501733193652546274233695895069944317124329637645209296990415141785734049969195443821418197634367620080828350937816926354726899039415217727566921821936597941925527952428341706499906186060322889048645772204025121100127798761225673036715101339591099394732126021952768925080860018372464972150935081058163390742202468735133984594904697195553215421292136016405280248474385712688090021149060795536067292480930366382928582342699186956316004604882960855969188498749941564418800652970790988624495189690624459583529986041775731169942036168042445311303619907452315802429550328844670685130791854065607140358522963877388244426020232139473879754915960994079697471752646400111447024735372840339745819417353170704615900966575428270010450615271970763774097470583099393087555948598298997199300895688530612057631466472860077844965895273543425325031643791959034780674374824957348264716261245324364850031321611901647832579195124745423372847967239571562434941157564474673483101245210663192386011136106353879986453932064566015074539180735515920033970858580300591091463573377676545691584802425762724272632957648046446788260230857693512384111550343414091750457584342391837873087910140747706178993112456888526908917956733702524761932728567744320559075140216202129340948379384794330986675339058093837057222386638710344632905499173358897146300870810287963766856220764648390730055090501429891252841115861947600385812653167033602968762401088380819403946206034864763502571400844682125325095381825109010283785833739816508782069831599805417792295385179488165645520756654913462773678309176239264520331905522362222039074668166334454726081159222035890860006137007063809526315470895858539444293084785058238080901869457950194194656201831177987657366668077894313288365627486131647968127963876391836996557025730527491343034316026526746763769440983845119997936097542653677591332689272565976150305363447019669509667584136837361617496018911760932097936333438434182655347403440768821160193779904858800028640375514733991189527180790192611620662286217121083631747559009018125346321478018436872334670948195715271570674374000675715250512007976683814746210067766215302485288933542837993403539485065694706189068502957759603026852868567325258952529678784798431450395585935234235341923315527001796268855598132278495783353082057476373697094605934382971630850576260664845181477960157278595251607075049538368133087653800062567077417045280493718582087397148936863759675821072326694818097326240027060836430321839956392101733686980421751626596221826366722765080623162987084373078587589330413036706852485385567362948426930309447614118525924880108115024527262604997208193442525548198457050265280784712915187747355380076964999082067702453859453760411435992273610108551260474712931753891184297496672078628872567114746460924778507158375831722364653790559554148790411568050818447621563747693509884947640148279093693720689336122455181138958819683891147462975233917838574634975481238092500039039316228759934678821767217073588681283167540231472790421680640707681957030202914068283936136679077463375811149512273273148657449763121428999381424624772119743202525596593696043394718327858189097712844018646372466560642326265880350519587427361025204909257996246507443273234883148548596223695874273875544043950153179957002538731145980667771552610392490452930550757552118040969733474429406734412071850793197863878278566046864519600928326413094248277840943630234306365310045064372708273434563858009782351965450069712934341207361638721071532521893954289885337462092913188499588830384145933830316908047364464816523745440197411635019948924275515010714291518053854608008931744745126170899133181287237767938017165220899417321435735279270062031540082338591709743261336253331036561346659240701251877074035557243787450363792545364889293417005741551769383023152127227455628714634862867043317857557889864387902325579217848153872810005468095613354688631142042277162517472068398819221952722682207965311277280309694825799368294733878658109793960153695785256810915599496083789310779029014886714655028804319527017518804007771839797158275617739889080869648908530162611753778310709592919988392914784828181025288212332170572740930256641052044166157598812385716747191207192436326088660529110690797805620302379311224175629432833142931688395604978924359959950638140427873973671919679030325217226671478448015590070811670772822842242028593560107412257038362201360676732526263126286917873868500728586732241357269448024424068417368778442587789141646888315297277760408764425281610841229506412745026149775431676985273084675656822132156886960958433018611580591187480483979545423011774191474598579885805910764904198148287948786991666966078152983302518271962361612965833753167549795543211947202041415973141784141609908554399073104689542577841393599690711931419119023548804260889612711191546033970408920429275913569781104447399790748643821841943130365328807253806725490616719685470027491880921627125818299667229220419221675929232286832327498561348022197849284967614200119095087622879161970582000314937378979920026642698737238215809115135016835251305728277734406377671100994185189448035526494740927178847225510878248154848754177551512260676537931142227150105322539909311984798296828690842952431504334724252027831949567655769146816364942325796285133744104888175277248870522980933827432348922782391732998551069894598106746376089579668763942527940364907589114953745176428035518024666274650733353366329185875910899266261010034631043254114362693603524816483183333362879711607958974994273276776407934543387004057104773196450991585326615745531726602748645932049643103221111990401108012093648669484743772176134432794637763645389761320246722406618887444006029676346091065565839824358306397483024230799076712495709030062790618209352230990677949313135503273482825595182616185369996599927676651511330479831919718019682400169760602938372887611300077511853788951299983770149775667485320250966709044724978043319616877968783545965129907190724991790710865579584607651735127404467527798668828866094905786344208779793607795810480163177038496475058978192280395559228569074892183474701424193593740396864059843247604573844108480131500619323876587010941669294014367032192654473745659086004842322332700649353247038361149539108256713070233650051127495203867846215230932869031173696494443542561498094637119327850808341432516649318758443843190834186187304117976296967258389186574894428900699934667890748443807955836186940949745853701731553718047664175189290854940995773764027663298522288019388352495007386803212284741299247387265031662278464178317604423519741952427111764155258284411866482898120062515945254167650502731882051919667911876479174832009848050058655511675373156718885630869369487122279601829488164935287446293626376454674275980446872947590856000576781446283978622248614606161198121006556100274783452367668388488517033251610600981821031608616190060227237578056131253362562356719988793669410830241539245593065471441698554789472811606939253580882777505842577706914912647978028999819645938757787155402034957624462842627534350492799828513026103842719041144077941154711549585350223461387113977178508575625225222825811336764771186567443528093299195760566453519887803439566877104352757453210681290916413295861309341645265872459679704188577390461612893303871588038652565305081346950592724691217289727775594005041360192962101164851113050458125191172604175094665914221795908955988138230187131200437571175511848655589009871560032514152832294758222515694347724877485470821096571649549626268633049589232268427138663477811811919521631396526453992519098507272258635868279240679536495731941872793129103708983940190954817829618401253746347797081630422190396444631189914687721555915347584522912141493846274723409010953506811421562350748227215695143911991020118649891892733995101060483290597301385093648223471857002114847171268901160277350089954654571148242803480595030415058731736696432234323726460270333631133212823231965919442745776412822619905985668678023818946165888919511222264110544264801648654665706059302134846306965315014851831065825118048774832599288829530288284209997014394794570181409654296500079051066818549747138471895567737344419622010364277450555935365108535858413600206553986028827320657625874081756085468450187259857630168699944889929642876161049094041442518704144787603735709980349162717986210419337035925152731249383040343117952313187976839279003693938023569346478677899198284235460909445463362216257584035189146522810876702853759496277183378218482577062602240092871382883546358943635923486483507499084376322223073458740135492251599293900659442815360513773458523728981538385176528295858733822251640887965107536902121124992952693195495595765483283529918478769419936933024494244710728234621723320068796808406631523373771920792997573691667719701624841719386747531612460428337749806113081205491454381923891386843873200674398661496007017936197480892513398746538702120789601793412408099843968988311209248549327066727356740556554274305481006467094773245279504153560323194911177805279797981088731844226529882423400403630767785196751561283418632239528526283554667963378128300494546690945971096717696760658346062694096535768879653855286469115609095078092998041130722858583066575188129457959838195740592869247582542660349820910775440018183012288214322628014812011295578180591968581824574579905864388307017921356669270845966788879805171974520442321771878391324306645761109121719871881741556884563324610859754371776937940559159062635908657963072852891938350157461885878878863982928624580932619584317420160629809898851587948308871137313937085666915413672385791726845568451787704067818299284066946362525626556690435084488749246224529291982409270094598496249215695159572011362819742383974137511478908480150367485317016632711633252527292406345380573820320224823416216653662202196869202523120755891378923279375998096065099440560713046525477309542623026865841222653345697696056689760943406793691303054012340203954680893079870711929434237067391099567239882256044557382250566927258287836367147936221790365713303001857339265506120301522089949125001132519109194099551592509785710505518427752453699754888078491932748345099431974339666147099350032681717816525185346344753702546322284762167171000832781233654436993093470800954413175652997628095347805907046853561027382763440240501315814991334264182768154225467108599196482190444898170151614834287170638508780085733865098291278572302056142134832960925569818767402468325451053411779596350869895892272752586357891083857864996014469574575492287291305368958368357339085277846784373193857152605286263228366958601037816347078100242512349315031667953616971988631913569254377665145110439975988183918707389607729930728836009248156791134695973970009787595891240234221372722848328202612677067873937208607598604032068880308594969743787965639393738388035769889271751661903502128017852239040399551425535425523841026081558543266194894552968920230720628156415169979784130798352645221927959104835731504497678446083744562147864962891701596548714651871234264255843560055828083920171561564112948926267471950996731676498762896319286971376635906072689865345435151797464596394287063744818839534978872031924864547047032701148097334634704619063067106748454945717267665706719303115184430586526597154841833047064088994388196838365457041974322085506156304475981470124934180549959116170604760830926632734138461810917444099812310138062359108006437375353057937110668296611623239190411807469391214110858188043503800713863460429768283327450387792087318844049848404455555714185090024389492800789367522693060534378190386207471128423838251643870655727961629824785677080336612962762409331264808682659624443086925111351298510684877254772302053936352788035130260642820757118723501000654628676492004283787645982055934717402601844681112249291726879415343255715796879066404663371652209023935167694185717909383183997764069792987104973469456924260900642203283570953146898515145375388117517223463115328486308488129459650309961070171730777484021244443227523327626144998073714342376277898423274237328575420586191800218672891914873415315388340885109120406728615256013097096930174585005436108215479998239272680311964782100458240785805873754483390154320686753101326186441074577953622543571553157707378930085389149134479675955742843084325978413677193473944986495259125949552340517699683919124102084070709601294493551337757245508845754432747737896092065394842729386599225897775008790284920630065822695423179436136373009940554748902525446826905031901959968900114433912892681003177123513956707928447774503391707952880238548281851887537429284432774383709204788518911558543504702383184454654955090056066353730316623679339759381291044672170704951890976198585931602999580942138364454944038720615987261560088505294785248444925287009350150198117208840574708793196888360147172707125094708817667962403933863733927603060943779005866008021148433763294729028877007476659264992527996731276180587982161347786252180465580323204901459119668342094391104662008634424724825261805937817908189040713539084123442978056128327121043164561217387665327850655397340315431817786063453738743987356147255030196589187911566618234277935085109037737335658694288117261081612986035015296713296895562154583939471711577793034991890892698909377530403963996273830467337425165813440304544400122573137413361877023457321506888054570141045663089592951897926280136412326225683742807791396434155800229324019860967229339352514922416767420576736719511217170659224096885218675560227799431884042782164327069214606211561936107614301555215414832252225064895321068600023827347355356798737953152098125226658819865007708908274197067325024960452321087075402038277742332939836188442719828050571154377474259248821577476174893663650436830812359144071709429061792245042556853316126840144805469370729300487736587076944866365357583445161282735985848957220718381776964437764573755565456507200013091987405447912379057330051869445159410357781412556285606431222855082317367997571717220174338220673376292735547472519230000674427903233243305326072381878242580141143526214831531013094200023985977218978051321234330491504492197069701635281918982833157443956037816974859685818004093010585396839026958550271014516506240331571303349283152296232505838668247359804917592501092444519257697518655181755668125028081092578574485923634524182153938407295663546281192342644160519282012185409079363064268664418534947430596386976325695265183087311142664758382400514181834924294703397389977159538659393355382103394824433417582741940244057202241776389989011712400113660604381132104324458325071362806762065212866899412911744226965029546698060512171260961554660250772682814376131999605669641876661789482351135969136964745226446063082568011080745938677172046642263563962941966513188331566371288061580928862793125409694344354317262543953690003256893308790478137670335238281460097274172295450500073595045701797543894215628735901752180866559950616016254512186406675982159053802030220887618828054413712228801282019093713660919580419605397442553438868327851347920899066271596448111963227303428569737286845193272319205532627392828318162396712299481910051517881813189632271918964383226576096914576729976207958628442981719093326981563160512427480329224819826831053745717499517641921931558965235460386347937086040490708276309722105980861794254264756751228101382012085987459614569668954541229537282488818356838523141364500100742408001492169878157206154665863265596410542454104524280023960778547291034340838748191043909071021168067244128267912008098956232848163868155728907850296710540128649154985458915276506094086611392862125243177821612778829148161526084505546235880894872812798613782412424517956308311422114414944701405819769818289385322758816887883447972977941908608580144426360965768094949055996529560887974123946210356879577428951775900533748065218284191197420486051964957714361535343727229318980376072593200327461406314429607011234602716052849456223753055966354089932983540299529123013963627045080475620963287175024591169576285401084184148672042613520503473932867496357277411394234348886464977921078786027196279239255299123946991649123283841765851738069855906676845475898203428977418273888474181894979684236944401362237539200367915215758225380529688458089847406582285843320541908726954775516698148812082701251864107325527937441913779063442770929375393411959630614803697515563759675179011932659940000197608566515464003343703751457797048247824282594822219597664563452109570127485843391511604043882103010785162157595859298802012690342506674495597571688204201717399013302180551044744812252620392681651420152694290600501618542893772751958919301767780548238752457099676861298392974916297531453978326123018040975382454547213293293293970993437038722813443569452008794848886703156569799637991441601677193711468000819177533357599656549166329534720111573308719693073248312981635154627250408722514909969760971619546554323089759663223598468172763391904568107868616558831643314678039079306788389972771733840370365055100149416030882337067994762737355846890862740562217186534069768818727814586468382283913988659584691978947779997232212294777019213761565957201676189312057220483084232532731874418043849388497667966340942498808962266362034000975029386766589854321159548268296146837530617135327103271939336537875036627443967518889595691732607470617544327512743986849668562193327037119275616261885249884749342243623695155185576849835637969760653364574284634321017986492715924100743436930364751529729509218688595362807399030372266017523677015521268854102240813521982240904691935158313156580213634655178391546341165039548862744819360160461793073491201568964583141998751298159262378515415192873881880308245636894104157423997490356492956339609523249937473298049090309024513917820526984647168626405375474211873964422690878206495958319350101613623345241541674556376697499109886439053626637388572888911981546550524196533883779012456610299050451907487289820148649640633546077519209139246284376668302239537719575122290715485019061907197177904215130381019371173415945173923448292560767784317107804331994660705742097002486005975821103494870999478604816069145720220235022229310673206559824854847061829164431667495621198438162796659592754607349965741799222667629038537830392462626753058295249032154372082540867425221981754474736389428493206498296937745936866918892631309364035458129723112181625498163128775994768193114341160083672122066543163707108286727072895490973905627384494283045510723818904934193467056527763341011165459172163531676988922573639187091658802122210055097568860326632553388443995871171095394804628027207183473437506065359617544470546851250232099846432033785741798900748685742012793872396774347902471742774302404479077546323851329961583733621563913580320098117978741318738081890307776770689353735685007884848661747507197602886734389582940395688585879595768142493356199944079153158101596893245799997607002144328891328223421756655466093929416429580286932832981441312916937244147320400862062495815873096844627252653279244655394287657743869046336818578626963857178287055282994355225989601859315976508215855964630363729360047344533275005610002985908417755286075540028791598605915821808574041970144100272091672798540859478223781719615942691051643026271726801298570709530220341972985278991099489475787070034815983120237337808412473728624317279906706134935624155999103559490780912552106902804139703194368224204118560372674670370443550579614741871724757774388364382050444786887648894172361556688459569845410189480250228759480556327411525089585083658307990643958107003557550473642499887998039351202863648975559919983227067483952982519507661899434930615442534837746855841109965931768811907305131590890165254171259546372741320588544946068878172552992319779627639300153185629129845696867660814029156682730968872369553046387678368200250744717542978682840506252917301315612152797479291669519166075799096457145194732305016643069481957189281395540229938517521868029204216155611806176462927684823055218597682636197979296366697065776122764337808092895445102146751163142019820675398842034810904639667770232635293938771493159113241790767567324246368968608926961378082024391799155101591647390718690242247546395339891262245883942245241385767683042185055022447537771185802889851984928465466544358086347930883794098896851156711894937020142971573989207753412476391032682222027623307190821898809554815770998044876472686546299930747881623974062945329196960866593239851001977560726985172496823843968590396284101590209972533883347870515562683060793155019997125097657485848046919109798798212302335316728266803735264584862270969993235327293690022838559134521830884329767547762307296076413730562927353938929767848474041215934483618186598357482478201720961750509964614991613616236137870569695225473821714304382185434730666322698364147641776759414016279189905539734216936805664639084545734309052363893033629601351922294560101061440092096667151018212012415703043497638190334471583654915019553297954185200429359256078298152532707537125319500883156494665695827652407145077635100264997422072930217647571716533243209229054000999060213164446885627712021130559615169427137075121210774589966340084349605542144389964054327864797500746317270340842433329138492290422697507823342758472632433930749527661694262799860747590345477235022696943279542654491074937492609689635810584954673175641404241569652794761060457078734033967657066963231447362647649188639061080342067505754918168123884194349668175053144593733570730747854362064631666815324129612717139821562390817154888631882839094274141912303130797563468301448610275191603489859964722360862596129436874147815975541157993436112025021480330525948124203272154141626602895859604211097728801427680549956747079681009991109341830278651050885812026649988735436828378942098440759332508724801120441394361748095472835523020408200130772000120367242064864854801059144455049891428892580862849527554513798942803342959083925092297939933627096763017678990067099223325373155614509249239134583271096013813464773420273674359694007554990006722296925203795903456899463205947418553825322857017517291429313996947437539037166411139139997274402423206887002685771947706624879003591140895900397167760405760611335953118317099255327155004659779331101783047518364667185477767837060602909830296203394692433140185338054161266248596855413128938860553567475956080495347240952363591812392550119755323567203005821022362510730677704399878874397066141888568074127865361336549082733344457098707272590504768866398698686716830562926438036972677852257678434429324863276939063998470462535943465911011556939240056985313860689557010157033537389221776490402413673918347526082283637748062316282056139891854351057349221175509427427717901634141222760123412210746164869036922006861814364010847142752193922148331503601478960355894478951837987149767047211102318786293757095004160949608943253751441827868327969116434165549020458783961116592574483097459160422878624435731904874577249038790001763995255985066840724055348196297346872164718252270422472210018673931903555542591058807918483048609641092236786478119031256392739999438500237493613118364764863301143673393552076217024764423699732675386399488076212874576131018458975541427986965941212092897404130192004556906386160352348603828591908655743159826499231472344586129547868429364003157118607889308542045525065868669662229537529552174521076949842654422933229161559763419372459131096624595812876511456526440962416578242418176259930253793180495294809425113512558780668899103213768886779795887901188794429285833724173617768446380756174394614734598932120381812019894597874661559044587190099435163029496692119944332149689548132938804468381306542673714642005334640933039593419381711942975872628165658913049957634950998896963962430720071964320976571733900526947068588531624639316932776958347077662306846795038800479811953216783298555150087243400842365629808280459180218892169761215002621330060799014793314945511617150015415611970445452227148748409400604262480719880883862062806085265742357086526109701757751182667341486373817512751202294695753704649945385483532935427212508444362256932134230193385713310657499390315217427093458860105243971575549643761594617307084320139923514607874275898940823361145877553829069838554524554708705243655092316213495777963177579865257093612126819711266666287110370221252300450679964622474333852257970470672230501294479508089945683762533364884288879245729075617938578037778791437520602360720989508800929665827445194149091396059860786809926877630390943004464668916318387421231160693465150202085366844021735600711521066677368451058907839585357335493256663290350309951312821996396877103049183194381175148215309515229516746393183691608847168509849918501280632338675062792746299169245519062358931092351532849762323426670200516556166425004664547044120174269000643199358150798118418938744992306549812822404580542732329366299173740869018807634054547046315970969133366068882004224242359141446333256998779100698237915789913116480191108596215095662395223166200785237207465374004001991170301582590804252254253222312607121812340647548476506735955041562140910166317668625770331298899877003800186758706639066791196185927026651277033026601524112055166009726047108755522469876552021037526207454964901352753655761428602192498110763254315461618721015701011260699896978177920041030708554769603620893127425412169311559535163878019552828030365811007596334947167262760552780037954377202370430605316575666955095890131227544439793627103533451594608964636979770532615760063971743727453701224366165675180690396952749871582160446480482543048267587833954498591483682028674349869033374931426245858450704484901170861964877502036831688360920960272414951528644640955931398201137103832024268796967517245615384662981574425252040700265969943211870940328674620443540905119950924734155450262504558532997405404540398958041460450616831887619470732448523506243982584329347162667521783086967004965050129240967219857759255641801301590429953856516820638309572920694559324222606367756661845017892862967441731993237119614305485721264295835821711812756464311082106047011929466802350585587438707096820957562416355263626660393247945379705900685336812662817782833224060316037734241228892554820688000273899258603962855321045584884462922583769837261671610859268302537437238390757880228885748204947980022394818115555214522269990569987811711314369986944242296916262633954572417323386598366245702635012041161950080058502677614447405011385653401952810250342334292958786001645791911401011742295058833141635655550926608678506363682072767861918239584672997503783157797982639642254353247251523307496718410958557932353892011903731878964259690025946069216258986244077974222612997069281956048509091750388238937566277112826697923571914233307862160628814305393289089441524035304726147651618617180486952625462206726400745430220519702961685143093797218442944228613439884687135899601977898886932455606607089102602684194898586731640476139895807408018684829244404946870819713453031191758379949536370835050672466129067606190213524055514062934544657818147511870174671415362720317324095124066046697936594419661900791630335072804918499841582847853230281621004583801956800685654194004923675290612276481932640065215963989690474020736993720218870301922024581728138545931253307803720158472821499095200460656704150491086561759781859253543512967633771716316859897668256301380087106920756667699196297601895854296853855445271694784023468142250178959157907335347489705316617135199425133741010750929575426808421296252896357245512208032330761571802925292608539400585442728251934344271845225728392311640192807679252677868565936289097909016759240311545666547096932917159304043412188295400611559880673094185304494261792954811369101301149823633529552687762120691010901357396087270901498040664831712925686818954051146607507733176368211139555686980251493046581480592646959741073248791367903814106193650972964760700778253863212999079045081894840589392342096458090687945570064709998539575398441181997093489993930798668874328002310424628132120626177359415516298581563629717903702256804220096964329968473834715060801573539111100669460027790352894174961036624298582065340178390191900606874674997733624987640630562407332289245152794074970124642722448991834602329909262297247484905099057338768898564281294704226733785067122877607025015164507134920910323816128191309791370735322603884859662187975401596785666711874658301720103303793789318884837784779997545274372359976434375004031229016122310204407274422818061731515853178805988742855095731880671253194408642452045349705023038789530587923543665950838794244372059911178905634378413921243275341722168195433559248449348916137663664314162547283497510945732933562675356134371121362902827136590798024082359492491591455394962977613470000837677852345567893471847126435902155170010211496185362079405732352764585195988979580502309552493053103963126332646665916451035783873153693405414151113854697517222439556717683316981482204890076986030151584295762288860406134471570884369970353724101670006452310352930580949879047754021314260693381692099478149312107509434635444954210267541825668602938115611029599508351289344068761195778743097590740060943206224658769683826483994906352075024648123146528735380443130352618992110888755029316110151201195292772048886872040549905016180532983316689597730562149903816456784752737902388406147306362057661617417752230582264216550129497360350995162472552843828809373361690864278679937635847116658885868056203676553229529588763458428249591713967778123424354570348953361414886827122053612940683889546435981670102279922689728696227345769936661951402778901625484901545941527474430641423974833898919724571771075053357061745483365423280506941407458697694670564474419215188986584290786478917552797768906337621028400848590523480574533168984146601711612859246314655377133252199266334013018592930613417087674335487837910708935300694215148736540329975939052865899578266130687530833835784264357168360045895871027748493333261529439755564261626307407356682087338099617944866354682439308538839817138930849730481784704077457072277340108986536919588657406425126595316071253279813219115134289518031482368355944100779103291833047049770359103382442417914156558031763065759580400688526824791476257687937330902567222671051947208482524970059739115101177977993427224456141457122695519866161751912187884815171667998979971789788821478647712739889407243351540400374338762559254671305743481746043846851467695270243892791436699828776607278326073037525908574308617446058292804061706224878343664063330780907524756324719425403712694659445040666176937524335496438580918858196688556968496188725700813148050863086134693895954387575797538373183217283644127769005414704817816734604875778786091974863990105312570901303688003439796447499358870918413176020543051615813095099611519488142340938176774315794692056740093426532829722140487113122291783645271692453141097139454590158636551960044381455773072794837330243129043584369149532224874218938261292700736944351589654633807244715392656244739189746266466275269817140848919754499420629714661656362167300715696387334739801408468794465108189950884883668190898612702220997553155888554324771015910685159962411054578831731144144938900104798483639483178549283862149212211569060137267906783244491955230531742894791673148086304885701589085571301667510194812064009970821731270484203588109191456143856653188725094833243061712429013354949249426862178735859554198930052457504905219905177735416767673662506894442068708011124995820564509300929504330993448777847192159360215260487719653188119144871513135380790588107281993041424674333677652264261367371450926616943372997550593684712900733864991510940172251431627075623020727222895261211410473106642328732279442443177202824322451405263471405828004597205031243509422880870186748622540146187854499402380807947378294241298596557018679510731143522576042435042405170100810566511854739234447320146296427286019561526121340487038844024428943233987976488780728392518519589016385374254346276428435600082101799432678485061823352347630685477913461998893673345719876484591575048155826868155700282187978356798225638620261095199057876197318382570122145503953538763694926028371549759344394957447846578120041472342789976765998638705048687400262709613267184762697006720187510803016849289588080075763700380039566706555270337735714058031811154613519545708500801464539311612763984439287035756635558187405199837523615330547591510056991080694751080308443965674711382038707301930125604775298530302550309819328766229754017435839623668502279340463656295122170810331909590828711740689196452162424286296154365443996667071097780817413713766135465114490912258311955936145431740272590498570299733991206504069786712253088078101021685888690010161543479277213521056040144590870985518198373014571817527651796441508678817317318904576609064391631448464258854490985305670924351154774389209986153899385532147583097887933529631405814762647179923648850561584516495536760548101068960669115640236834065017948483433897789356566409822613634804069319087940697180643707644832884323835159973466169329070248095599264297653079906987250130719082975890110249215897733725646213671070690254387802861349204633799785877340814793002917224949556337551664540762369246985655886396959088233900240882767176924763907701772275344722461139341359598654962060715043817241746747165493762920568976378311649309772234127474053172453471784312764130149579499616246749995545612932749326390045790425310240087339342689093143651829275201320249637274978044218230386433340921227163559628603444979553594112072290333306345733876726084770700783068415484972110938368070533427591101571202014873921849353392776184736406115742332937540872141467593988433868528078893351274067785855568783513213855366154137061377812935964060832730528288201855660014669255335505969491520029636006369339251245728354698550950770715857686453898400371848488764893520648808910765724702331676150551252055474843790133226422827289453445190635817191854452984277972600570090166015092143057333171171209507512717046436328415625033683688615047965981884131941378661789066763262535122040841527765669929124506331865107299586989539217274253303086097600413335821925581664091999051540232455539276307443879829727344379001131705842361121926717003682714640084417254701888237559999794494326502527415633431310378391456744566780102030552080008357615441716685618097539495998465349768334172175594550088884035163155955275007975006081684444753812914139419673150328985249527713716405763749225731473311072202060065061555151396635711512001902834795898820895197939690940002892065799779865986618426974573155274727854261325557534676992662935825706090269786275949567331613764921828106633804017746442192474943044703225501062427093782590791602492015827843121142135111299523726738607016979703909415356723245292459595241645505438085661503062648517040831219497797279148594831725790402760215574613347208105166364917294519529116276017475650844049388751444323758262763056551906318562261850567466083341704831506026345518740844447425387816978859934306721692101472542184252158168318839288511396275604515411457340259741120841156200548178648841676035868455399922980265909904871746353267991173289093148003844772306052484906491854563427272647966778883670523516220708662653322444014460279536189263669014632179564813297927715777989371327349067929870782579635963795624366078588395277410603083060599411217059409372031205523618323344898020727106090814999116525244412902458950862328057820903554862650454762662698368710587106972082291404151946414008317500164221726351742547073996653819813622533892316792246027840460747842018200902031972331361623900077197483316987036485778627504136358562475014953644965998392453894089922650184819153205803039662874548999882268909859920500030382953551776053610402941172304200366405410597094106347584593467029081778871521998321748433731325992313886545535378165018168931752173839185740270958731774193225930308663743203587360334498964900238510213071250211562213428079933102849511289266236325914126244928741999319738857192265897926831483488771171334263537608290059630026316327999926366985659457935732338871565729867442038458927856259098564288218020728868465644381946293603305866421703761840018986241271616297780296725419953350609652946344533692797313281009329837499580584497739954459316263750917776678912045630432010551507516301123451194465827795320553716057876815878578372132307669485726663238742822553555192047886504385600933736326128494116034113898790262125616114036219300599043384740429505103223339940424835084241375565513900019494440057479270568471571723750972492259526320750411666990666674644425934230698329157212816619933416344935890999514515588962215166417776280267491265672035562550209205737890561293383321282885686169179263973114426595257182682925751390345141972556257853188670500382679495052234888865109963878375308082349057641246692555062176230432529985594988648872552124962006081440357606504715162611876417131275464372427256351112647212402442383474190301505682568757486717571946235129825987566415653164776762878499796152567081751424412146297556586922032044420240265912340998868724594120120693197751219268448856043608104892800660531157644281133185526104769127157459278586458627273976424210097544790273723961349286336324457628384780090484043775797924553441304979151058310042432377851084904730554651321481598656661528567140433582464200256996056763712752285742242665952780341408414496646015007229761921109900625034113644375047299632189524340323653545372335106170444093131115121885347129557769044991652291225109604788435137794428728313064613571979146538953300367827924181915585483898778333324184791477114568136216562507532406140948819909452552024058464993237086788273268627104246866115892906547686216908210038699488471698809449972862872701264266108976716685647410662697731859616087874872343707402889795944578324935673933447394233012564623624131802349764081850744810514142888247068215525947416692025954339387371766875474165723409070872677669762685347461147379718126799149506757744413954444794789527392793488540435895877735584641614223565763007777969970804279366270446962963070606612120087172786457236720682024997348017211508245142415485601958793616547487571456545414512166488051428738549721571961460482845916395482704602544839071611875843903007726286535159584146558893474581962402741776468693432564264523276872441753123210163137123607314171625832093636627914112570061147580828618363900977684928900201303302051845670841120236982957116204741923189343140208411041383836777807663016085737936723930934093773089797274783517010650456577598842722103120139319422439117814402609743939755016347426993873591179873185657651375498166233919976587645615463370833802456630782588241398089565501923205049877707172004313432586626529700337315977446959311212992242143601540432854421476258879835286562155692806661495655639786769297068062923003712192661166326010237289548554628552071504081961843687250899064518790998754827468732731276176045370518219640298490386654971325925492686137907585309510216018808905748226588466210396696083304972173888813297345467571975138897258331898494782540715481060208763132763368720354524556963444627153468089183721260828219605038845828083666736098652367982991609273221105293598461627660454472864295724971686578691188088511326048160728959940528865074406676141750392121799917909138207484277050536772849982007356663674775015378943097495246413700078796534420622262718523698776879790630807171096587869201157603458879770964662231085190631198303868430144697243612112466379188154163405947292985119826567740021467851227278038652835973254125715583327045443219385829645177331918641401639594238864109472478654352643279769823230276328867892813961754429252909004791602748349352947840294507574280661364992967570311765139589164948590457643402573052731208368084722908172510696666671534527344962793531279974636179194898199446488122988582014473604518175601761527947315742714745446767726336618471577159566917119592864236058965735615546391875793721642868165325707486402704433467258529331735890885446051778404209524567537352239248811059570370122141427334259569217788689777025002840195788733426474199731635468191966008559791662299044251206279136386689170690097383805772310752837819662991822118137546723100653030154019785780199948914535476208115711591834072058226634853194480578575816928379158895135301542360977717517679552914955508750858395103926544098696713348210746646592911590618547754799576014957294303311226952820484435934092571915061201332499228942668061636185828246956894861383670965819556511084902604703794873311020189784971488297699449526864697794376365313614618178655195573987777993324112765837062652553032558827816157882196768649290362803763655493933053787340501415545721270938329569945849040874309265064054013941168912249762511322861778746333600946230469482322988974596133624416821237153780761688366777507767274791268751777774853708301315133898565390637034720888819378751936980461773346713474670242129929196827242167940226096167459325432213418590398939571537192609746405044094903214901167779863472730649192746956147996998345968325979619659276844790301635004443016971557614387641185713798048696375228381536403655686080285654051445146024293718042800549122249030213109013588988605661970676878826890447889298564897161989020269690956251996063509252637979358060840156265026953173031159747958449519137673528665985342911219108128386685945363203260726168073761030033492668628687920738754324422520628718959389410522445115271379700037007006465539399263763135397484314178318786306015947047583048196621221311288170764651352889260766168324923309128799864779545606122207693998837604868319258552306666265991105843196028559530097710527112152551861350449863617907559714585257682328090788991203356014402366045066301502525196922585234033427076250203256946677728523467664996898851071947824678683958057158637460919997714251092163021538009529194413706035921480001307593255740397592684526868738378114086762314595513170550579334068374917699378665219752050484153374248834190672934719572041110537689823470585323668691236795075942543576269187748646451831554908455801178656705641983546353835530368627111197179079854357068072034201085950755112703275533381268147070370671586135212683853993179271084228114737845249718347142050453398366649463364180202515410376135384422868843816138333072635313343756216199912844432349340736285749963708227704172960276035292610389973506783777273740170478146505300119732128520743425658263283679504422067287937438275363199021280486905852045925199090381735408730097838734748642699462839724364538402903494969570360909722330756967576703907121199239072029838747312733829655907609069996404683187502723745552188249072264084841508973681451867030639245027161161009987151361941905062719090364417834981954592835206201558250499520215614041970759940239212090685215391783803415378849366896670341497403136730625695773697483106677680400596849150929297623839661861838248672534343123746493125705313348951886991466695306233131289881110733925739025637755299610853160322724921892021260434346044831166714223393488683006102930434460831322322405135447527594152088197839883637679481643688517367210941391976891853557390477751782687979368298049599921216640996370062176364596708800118584018220103979498359931877648411067710178127378991026659820169912441026533090721215325763100479439475856240555509019310955157554929232851539358416103498778071251354925974599351447965001936458215833216819482092698432626250090390852962933350916967858073274811721437101846899858375974303159846986231051270959219598441779595748556013719498272281809548971198360890513196689769353740471780485772862990958671547566053632503855911824105788292699358513058925347074493028194637244281982259497154483371214945567996466080569509728309069256586104748825057258726126158677341378606245286539749131763516910867294549591520754968368231936657072158614734418573649571911415387620471615108335474502861770526561720331168108282522125067823990863402662508951730996292704020125029254648537907184261644449592673044515636082803831449108591386373078960058598131462346559697452248075983293249347791980090026785967771478349110757575012884485442107578315812686046910221144031578491674339122914985395242629251977865913813428713755025592029081089989780692789846524323194650634455335676493571633977712124623853914583504282475480064891498948384902757765781938256919616836333123566142181290533419845535703295252976050665920296193920198898127229121507571100848115804926667132036411850064050435825791525993943069610906296007415411861420502140020352475315227847705580628267451576857007946327390058380966851087062978856160311435404549645295171207315755726444718076720016729616484463576806230448113602440066642921861866087940421680963046669653165185751873917512971148621972937337847037177829827934630669808622559546565986265154642746669440120876145591472639211396523872760016088732771490627540791758982051902187937707057153803222287387725710317369935816417489602329043478844334434568459819696114927773018307881392480738713560022759567663731072374784980235168654319027717255411401088165738354081408847257173442179752511308399897820527758698464706165130262325654997781928006639523943166373677203191923766813062441587143471307630727118451270192022693480142705489613830779298496141589078139713945146010489486734610456914259734934216862334558118553431086731441383911027773471732485749193665021763189293911808716806115604002432893806731699923060070622754501635865332088138314020176315160312728599642288416096743838488604143890310987461398593223498873925564842096472446020004754790830679055042186672383230594442189064464019812945940451007766213466031133077695861252605766901244708901489384217421383050483969191072731435104976979087700130871789044786946658275170158282856209487627068264811305080776167607153712561532897850567091061822200467927347074566017258456099348858470323317511357261907673393021339911644385798465361572646598228385916692603558191221723977192026118769608154273749596597978017212348011180859830954322274110202132340316857802346049102462775934479747188174766084358285215900028442184501635715444840213622352905065203081411888718667251389467273480761685395559504802025601502445041639849348407538845858020483169711942394644313577852365923114812581644366989594106774661040719011183051193653325801570687956833321584943150463521185477311902477275687568751374896247657436799870102488027659992931732261345616734785566761175339612030211190538713610131492990583191330361935715935929672040012180242782148867976988270934436945748277935897220491665958903302186049880212085320497878246705367984737268195897101478263604405871311525499349938263220291112019165590165249089210421747159501230036986277095910762918058778714803092280012661202996855719812459534674879246059206476921729036842705828385096143610420041974723611858754962732885409332522907200363032068987078956244881742734772621927991157640486922246312000415941866333923050104093965108058982406474493871878623953580024055892204727171403914315296304267531192412042170306453258658671681968842148434402579686824334799188729109037219885673126909484799930250560497753521168471787776477293911366889987806327524026530732081047907021715690614568930208632447734512485510168176341832503992216434113056746528811132731096700460911429826808560238777624473475703544707246682024733963424354898708347746770410910062568970678730748981417248505163121549848641179157052506911988868123701744229070248183859585165066873417345776558337245362548643278050760440655064816811506765304508749321882436217700670837546505644976097595560950666984613437205335483766670486265251415323218732398803973054017381785986427330193498295938402445654719926430657902826249077080087456508576452134138593321410090650774265687203518572472412752177438180059574229194612744419353108802828313436203712551063837753601124280917670348773204737952988272833413454786023974280777857121788215935509588447836784078766167927759340858655612554137909057530953728189121747384374165046171285681042465944478138884423207433774021191897289800112166507635652721335484395095610282621280059954342435848976642930602436071460942455083856127190811012922183620184204651479150757674236934022868782265304722394413409634938726877656871965400000729045125528248753469363307428827143089010423468825268981363635651641271027200231071780673344158192644901909519610204610238165816945124051793189874458380987010063040061546711751023321251179386993119790897281968294442650062183827907209898232891378197395344945972706735831057224778012399509228412687665021934987131928155620681328716346956917672776752685959393104327042191962764150388449580913023059915321035901118817073880061583665383651042533413626922573651054637404445309080388053569398370155731549386959517791533702186890342112054656141826703121310287829263197445163615274275946700647428240280519542917315065212097763935443925784939122951380174295686555827927653791271322023632709049413798256210300722131665183722815659014307375880288746309798006058341366284038450643890854646896342262451409428337277233500367201039001729591662249693580015550938919777274877085488919057645732176602499123399796814070641677106309949060266116223040069821196408301093383346374424289956236225292630342593939050362958862542728871298297587857015144803169471689264431081423766331144574861498339818911515967819528266587022448157684847998041963578470823001264198640686532058746938740912445978982993542605877032527430733023067257576921382936210936523715266463407560183544704623697064477657636472913886250352667285340554962416763988533647763478906058035306488541563938441312303796066259826779672184500964952949928522326316098453726278273771041468030894118258522473432706530253618548719501724759730185999377103636797884677371976828148769488949961719373254529198131266026312431767865108121186348306553756943075504157033097189881937919034129263865874189857269575683703579266220031610989332158827925861476061890116775451410870685622697429755124229265057810501508816106942521501841028733787640236414878602930522751254290854784136912257533909624791852097623899159772347819208326341364298129587931581421539824195316456209686425111328278454259528185608477474343331543859278244801651168546585012975761879564436431725597978511728072968514224980307006324994581257229232528471956806204636788485220404733364334548889197780364832533208506504459301564175449278571079364234615553269479456915345947062996644751351220401308930175010120371041145359409538971814025716571871853524080204154622873698913960118091334359209409774680917583586152869722367753341117203221472941712301027310933797092763039525728766359586291282515749224797565063094889245687573537694386883961593599596097756030960551160112964794619264405457657702207191924898197980133615866287715866642764453828534817796478819704213569251571356320080666753711021869424436049516046166635576305502335049001667562844828511864064593592659261664056163164199377288592057603900869200055488006645422539233144245094051353984923793512658547902416433397046963652121160460432637772221496747933975582162247988384782331544604287702899097583557863502745457285438331133662939651393079081005796869940910879425605779870954081534303443970507006959585802761445107918541724424077711546671763583963762331745520918272318230515780999206431948894108240439409532728937747442367277212503315126963356291937689859365190126348425571370618019245121872522251689926614810074133161730142661756238181952068844612298704982476660582777142050840985286789338667374148817099458871372179747094737780415594766754994877585261340836322791430984441674957521746451608401627175452851733338332066402872035065507814395389732353846772859527928714731066643907547658622556266831691547802985291378096102084020766947398708396719708250188383512686027467626725904187900230603617273261782790934802327409046911148312662432048989251745839218321865506950435638391340533756498143440801575142724950178047045868822379440746942512143657177789858296269358440485297710494742118138399898200931670448485040836133335962820734099580791514488208819795529703122266838439055895632122203732741018113904161939616717209429260432323346930021511985243056761912747306363979018946920123773704252068813023183761043897369794266328350858862730906747860943476579953797865857967645298486464501493305018224403446241216152086777338168956836507588594615681256821283189055575029419656633059400621414081455891539599025643622968110405482919228689327064264320596406881219978029380225299991689143081745831495405755938379108281358459335201891154845309427164728655608999463502095488990319764107188866840188539148253620669452349947507367645002683569980485657681282743930266478180101642645624470314881280479076754574918071021120047191152106663544740582848339207640110266721234764117326928162310450700706790893874505922072728143342773217756976661841359759190867919632910283008038669726769769901766837900777461948868756524450530141453598227090992576154012135909531901464592890441802225522517059878632076257648931659759121733801695594079748970120228481922191268004794654978682371618448587976088898352527816144535469322470594976793371997003616465784497716036991810432921791705177598592317018106308841262151952088480446494916891981194188491556576722537548818754537001641665800029822319201095101563163418175731849687158431319953689652110602853523925086016060932275781988295103089993933370593138284144635947914409189767382149573980465417211891566894370393143155919232379932691446748105889956779472510927672036644756185501146381845868194924878439821729843757975173048175922309085076027566865878590450538855759912164982759251954871798341368618293528966237615347374991109435015695293920477179415117269331004773606629605515791761041051671789443560827758821299248661133540739720193831955766310553024408061722487469875152150972875379286428239480204480016420920183503954403599362181875244432365302074119488898183870469078764858687721913705565521774897634532567182271613523707702309467011587646751542706165513982180214571083101092082554653226947220486614478049550690268672064231907351527145731621696263390517029896213510080262176085941561562896178326267562517270591371300255585235064451845458271686753561361196010342973156691577078016983670821465363133861344401924916765373008926884507029420942789635019366427339992265922658962932199574569780407478216915091777922586982543060597639044097522823805844648067137341320012749312138331911244236813701755311407847384427718826887023342893901552114957443784433029276848895516269255409417920008130610960082262152877172263605377525454329280957736588674841647072047485833556344143336662072338441545677329263641991227559317248147827596850042253211028596491487702337328545566216519853941346942951074608775290031238819944885727579559020485618982190570443513810271727086585459813161835020072973224033167446530225269686354919133548540166491956938123248741192451729729869492166923294149297092220084066641979970384116165556868541173168428960101932249596774551946029404402964636192990847156968241250413660542688751233346620762559162679740623214162597809171137835861644762298911524611470130736019941642964540876526582482755016886848661041518483695870322283485802601787639743348618661205263620599511754807700775023697331918983932488960848153693590655867232430972880225254371377015548208192780164862096243869268527219454864431270433039330505022147991548489653965848315414863891597413178685685607411455698430786408142141433933527393704715526255363822822958320712185444409411103582882663901167517458410116982477367461744939598486694651076901428656788517908763111468729170116806444393770343024444739476830514148978273408220255658556310673776543224456998844053332081225140689249725534238462631857400741494807838013070276471094551631830882492484524911347231246101293404506823336770752849823965809102080286518756789286271282613354865695080997162835104995560965332608838748906752611905230620505776324216456187958619010074141860488298029878508707741539505767648470094228180398527795315338973823816788480231447712285999184654524437187344217106278907160905599083645508179495559634247513416110343759723341292235688779878032788561063566188197928100989792297951848809833002439386327051376525811494970505360078212583794607293716422631628381052430921315633878472177977228467172154035457741405438648878122112605261196391549394762989571342411304614445369727029943830139237956109535598626237005432255804802749745748466944503910273559410917744771938742688586484832805135265605189035133407902832642646619811187652660667467642643512026209081035088366512982546563661975028835558559105184995430915616693988203319110143594598733333198992068516484515016724005015104773317611333732566477672762637146234550596866936553981895241798728776165268505605744069890879182367125059194966738007567060606981255289123050173550470215206416359687978242503908658224940451125077108036328001291118569576484435038426747317626858175515418575980192172912462405703837372136721325594061502505254822729803220317443838829403494290334156127266127543214929238166952740032582111632415699876767296989958040960093906334418697646493001312841895813550546571059807078723939011043966061114175699096241125232014136039869797109559133611139385215782436445536047803466752516660004699079892320285225526889334068289119441172086116187503865663812747166170021429605960116242465900388998328093541205618719175964155929181228648095710630455809208913017282994227697400774063762363440228628067382724036177259543183908667464139978833823264509012717304321920281005030754074714718199412865083999679008288446371338737635383443198236492794419034059170725188553083894573521458985153528643742331714462480561217452089759458034820955821868856015129875981255686614824885718995938414229281530617454411589999425091899801715593694195646028043923984495310104317574437774939399713410418640025688029182366023937063247832469812848368208598339413751485547769305762995621449497974048915681946630349339416366174893709075091061050404328171494691725385029806509980455302748728066275132822866175245267297484081181806012762759005929490050281252125895340176032588409179132492910591145639236156491613792175144553651565383399753800897817408970886177434621681930549176594076405482029825151124378927032275911802958479072024323414708241632366637358478965503313510873634531965316225271252341698002680036674199069326051459982750559182096831750188124677134166431625406251098122948516688499426876576334385751971102398481170332788836162018610251602466802332750091978177342649047331729198918037317128279165819299840283318773022437958017972743149780619943725820241747920120528430939643845866791135639433729486107882432980141218934443166609457252316803057285668667181847420498885618443181027969029464779903382103842457045010141800603679013276861212281036415343994295709536675561765311735611626237744177619112726339194455802759488200669738076296297215068616663645005108012097927463170390654952233439561023585116062310771479039223468086214345277622329782493446994265083100393541714265818445767879552179639397612765477557548353396984628085809584352745207293525027503705188207358550587325841800977254839158500193071429839538925410556190390106125778049195576570573452649709521969615163449648799076727773019742664512722475131128525246442120463938028334210952485005891002180526312586529501516069136835083578497084649043307574486421168435244225946182167535064965851125800901319142522602074458683076317293724935298982773226943453918551288669525721068200174652702332728457070666744910073439833076297943218983653153887968101678344224758991332392607593429499355254968840134790251308918232850744460660905280484648477917232690459214211630894859362294845231013451852661891326802241799027835154597605651395254167730787637580964276419771148402591187053792773921907096179797526946778573603517677531847960672533474711541946053323765786918656893272037841005328959160535022972622811786569904915519559337176212259254750121514932002297907504757445244319876331230410826042804130175166788499528945126722221489665783140744011780335076737916846775196148762424077969217517305902740821909044246214709511024909661970646711539705843174154316528948703290133885271041009264008653618021678814535234592941569073897966921523424527224057208633954218669307759161486401827876001327902635982944600115187214011968792827914319118170813001643114703026258239696161306875333529726233898739064755416730399388205119540154116296813731700429219827078965563581944777425664058202411008560990383612790591116147965906756882717952047237326930837760731587756996456622991736416502955330256491727258540418202165607766781530183657465547873082652335493830697476929086451635644755633926876490293851343509846154035385946921503478441612561554760071769106506023583771497046893749007511871400781791069423978985754253004210889360832708499426025862094299032454037272425504422581705392282683417047882997082706445362493372986771079461197733544699624761595677118289109308025805827920857658375019256767933127132177985986664112836841515375238325314828795573537210106982929611621507530099676373500615028591616272306354165347775835458613333899446179736156789033974144851995310608166963608007642540926484423721915267639425419985974537196321664598587975700857596710762164116737924676168487973558756206911177981930126149786904084117986669410702634939511969067530546659660315548170466823041776358121708513493625730221819582658546972654792930784334342387185933763338304615883419975908803740766948018946899871542895883513308820105077899164878094716007693615261724062884721811916811514693942916131175632561258660855929456170795100511723405690602408896511928370545813267398377296551114518288451703949267320703919219585142184195862796156212566160341725995131052214626627554950738382431007184391568952340355569119119288691052732714313136868870541872382530589673152557340214589819899895100732603111101150537615764203085877943839385275431741473924910225436246086760434200183677873647470867710725830340824165510622809924643888530519587445948366444612386076230318841481186512371518625971126521798182656313495900569467325952127745166898939548901603889515298893327990226481185247409425939440765507110422352863560879670991739866528109148169825918753231504457544561449110984920370176686176086283567274091185187564045506738578391532491182753252577803068123413931343701843276007575048726821923529316312051105288642259394915593289677415230794191694479096893972029457246208564247884219643078682964843347351251666059991640244777287159521941781131574163008882561675505346091690737233603606834735343357046978405935096265026953411226327428604212007232660269128099252752742793952733183998297300102951895802487017274043652812530777369702254008893661678446351601373657998854595404574143510427978599746846290397013561129768622271591402616224455912064620708277744948557841838697368449676071580390598755329890287255449753287538776349342767524809736231003460018350344026331470209724709432540165275411643013460176176291957171207712424199153473500441727508566069883405516172285822703332910253566384305123145447856030960049781526866477383788443506720726559927583581895419279528559260767652432996549338410106307030523668145673181145908333516380255924801828250348050647492688060514733962342029718917220743621158998987194530437222462240905911150431291610524694885270950293457457486650561332380090487076257595414942228110777092504454945318035119524098407754344869261396997870472823291953732232267905369380004447518106390663797275359561382923349351043656698691842365050221768066040569477100994597108606305642711313513329363600566358616248865437966813650734766309370003296329265694441075439878558973186283665335675068411234517225924953363411574807680884916904288791219105106186808196475148956411773350532479992487297450282015570586457919479060251508436463719275242478151467899083504651953118026774728182317278872539936137511659139494967517477340432890803474788636010842891884644358315135231508844615011751270192527993937443494106639757078274395223185333094634208721797534167262879884311275861545308656788942111254864272499587096309649441741612969931860086118043935765632367027776011463615354204069817412090853697190549179612039270636446777813249439303753126133344481205942299815313723700906451497757996366953090726655421343449605484245573493258836848668090950743569314655680705175885388614204593993838725424388259304941171496902235539143037589520703585924539486025245057012415652125187001571817133951756179963344676644704850036479474674995942404996949408074827179460557946337029469960837913074732593514862804925194888671875874447508347819249839621972343269586361927986688091433269821117750944168200939931208673256382755863063575025994851995739608696096232078472143514183784261911265603567929847864487927745834455985199074639415141372068472904538822293029251951372460578740400310337484539665089415700459289434691150418330216142994043591317007689765453180237983466617089285169185147965584307367881415954039465115409036592630082480771242395860728362382388542743991374446359126991324172097718941393734318554734100182135321179025603578554196753426385708761854415153189569136453157355681805658617440157325205113499176511595836686531754797189525904148828323018441770730569497942289746637065698150263782418440720589253502160428335275887852760859327091171188033475406258196326818022721759193141215426373297647246448418034202208669968956431422254067793858291263227310543994582760232445617790771393768447973173764977019769413919674979796107177009932526396780279781588291291477500028860465978873035249499056846243406128794954616983532363965627673996785415750253819699687455688591564772966339946722021725997953219167757137885166043886196713784820281267429784504716765429079616936761114683073881490597190800825022693206661135537571682049136185267789487588750358921106556463984376592766348867463732157962461837310383265134052988207618822604014455600202254538538827738918818337223764826211928664451942466911849935725583082701607835267401026837790029439411846740536014542181915320535685458839069596867519260109878534971914338827755959311408073130183120370263642922538819711366674371484785815111142952358785152691694141118734834051067572415325545776733912992005727091459511538179370312402105802131341585425957375188950750731821334615314365622287821225561575469487286290113872036943742609233374713230753473557545050654895826562216261271670427157571185268830809454876888842329190955276167968220306509710026715403689280052306110678611608199527944077649847617500890919812243599074779325417061518826100015855620666004450539859908360342321926424462567983339797504385756039271719582097711404709912316723872015109288378757746500010852365107271929744464121715967104079067246070442762240752411274354158462968106682238321846451778898981441420112678416073701118697234142753718614203360934628682288894443187199011785988414606788084042340626892273051789389619405310993832634429587269580473102302566766264596905789873917589828130579027911836891794529711593647418190703774039010165484733233458688999774858229143293357131927076918185981909408247887610701946415132659453511803191926983950109092630968736888569589633224678341628292949553751921256745915184936017375356626643672690396053796380614346712924822964720910836193760444282575880703054315054665007896840573785879218404468218437247049055231474310986408163710308091208375676029723311054761482156745494120288786451786534576613897101032064489722731692984232332727308065177024979157306419439591803049744006739952866124286963362578678789767490733201218975331308911431279783876245540347575136090726217048926643631017332199851841174829896428366440489687916630604276006729560587272186553524263062732252002196621984428711369321530568536348897010755267285757971430432647987562852305832140745598197840836706726004296571369391290527557750967361573313035038112495365230761195193246187198040267800831214575652265537742441382822359506679387851665343288585941660552586908942588230789432015844601081527310179802605677228188809075232519621402015777179490463938699781340849979175175339403413067927957858957781333400357377405956255967202696788655642414351401603893354357737400277588146728311447727668310735303679397108762635457411943817591203407431575071907404038975952862200789541402577076332917641723996159662087164366789482992553441849294477710731817877207558057147754615348235352371513519396430608956289757137972838268189744935935841265072858930323862594470989492883785862742829939030332992097314367350383185765388717825178658107322263532301079602985240856784204002976510880554750076670887458323923564486835275896942785110730693080294015413579191219450666069316832509626088050533123840067496581310100169385886092151167812889508781799129516376415541552033191664828096528665163848871271401330534621515420235271581568952884438715115346690172440611146613661970787260580464319287640798481845408537640020461757043975396230530893098226955671282802742610740005242333779592065867779579320746922399431124863129004645879497379848720118645485610062175753199936148120636689599446480235787667911790865829841921450493773222852945549907755956975716239476767515282750151534869694407281556550430796126629392528666265552572318687940729373684144871049540264376460795312593683161191135407567839838267212418098181473739585594468498209903603572140897823933930007693605665457664120533747952033601073627090730936480612636705427780118530349475445936442998590005148010446202301660226581998217040486418237468706612558395586533911298526915659668915482591724159039592834232342917623195260614188095253555293710250408697384679988258315263764445224744110951576458834368929598823620718678229839143083594499757117052616690364985050164859109882580667655805357581030406528753417979676903977559362315714090257462335505890135913358385668062607963826302448269078633256132207371511538302397731031714885879516694809135266884609421156116148581225889522581113791758526154055147516231887533526256401791556973680669124474845842293533017805508462688366253179308755515221198569950553459549508034186833432826826156506881410163978174388630120053445089455525512783980002012745481714789327845003025978033627821100477188948798225672036822087216484565357435439937488473707087563470749649216539982259833727880217090515542112362167172202017357385458084874540318494628295975303713056225667207345922528203091252168763516970792721222785181385314918043260346612813986975192842109578611652490993859421049997233710241919352519994503800371290846141481090140451953302787288181338955619635475978052025826175857308777237887459310314031989939960025053802638171874597651843438000659248703313787919190853488501770256734424857711009386087343572164725094532441743252305822616585790982108506040206319067558474157018187428822407675639395464047982036103257008882382771739730435366650705604492414555934424535854272001577018207807913408283588772488642868197881539711129028702744563895503460970497092843670110093760568267605419342650005988868706103835070008942947022272460996270989550752586418751058632860518656497843291946876774090612276062724899779856574401974720417899087642868126971053204070596636036059260629780606985098775342307129523692875056221728360930207869999021230035391711565813128025046484157903222934598335424933720092527083519849337224606347878067106978797782949441496116283151961454879315921329469286598480410865913135686527740042753593329115020153760270846912558254410026018872421739375177290862745912839219433643414118195305047611925532436752181322431013915889759432294397204808416016252834657903335434424508971142528386817677359563462706131621378903008522855630376835230162657150112016278433263435338801972395341075442634647810224525831247940309074823548344788625365533740909801958210981060967582277157363829843014704067022720856033559036853824063080979779248694559560636511816761281387373785087993861706136659964168044677870634713616928761673791190356796126286873917633788603569152952883146661516211806581336847418302077226248761297225432857627562683741325133208841368404852805464935028944786070360486618637640144832224137575432809630131266740199267037981568431439908816039884125876891773884773298859685962851032020992571847765669300777308019048889987450785182799290117015450298529268291009855674433786882956724399738704866771122141601930322996834442739530796910531750569039158414325161758123934688635315135570859361420502339916034249567006387424321020932506311390201952198539883368535165608517393303941101027184938815872228729378956739415339882777697073665913868037284085002430470794485815073719450870578430837677052759677789773350441384733533495354330889016154191685575746563241035439701660215310979947378802943104455739041519266945010515056196769089155658117742884356668025634275209328049134333328602865909430643217704173402032668169711558281289894588646938255510016064250679783519769797683753444801076156452440100219060545849955796493945540952928053941113119894813168297467996281994228565507990920979134142371221480846604679651338051530638720211779909625446343095919621678183697877058797490819926060499065446106297169581110604298676337368565495811843540559679321058352706338983175372462653697974495439085255016951302111078121047551089274284427065649175183739286869337624435649453047884669530843624566198570655673919708946421647718732515476406388873887207104202792902950345673913655109994369586894090544733146288262066420178595156338613851147853025119474672628057339425377805544103807140084849018632786534993612515126387490431837902408859434240820343382175311727218734495359698493136964223236719041537062170192176457301636158242836574657073852018463017859307829801986392994860854980265606012970646272042549138126918092338245681745715309419174119421524984361564985861940110517679700081177953508317501434240026938249537501923420244262858337864900575006206541277696662353008330497025883277763191318078934621731697163723999550938155665633936486321599140377538271621720193520988248179172427742168243239792704958902426322049283952868107751291732716574439047686468512185950855177165421747029354959241892919341328580565585644983408493618421507456396982691082758778073946990674814691151124083318146406211939898139660127449160537633909667989615454681939087106408828896056671335696606159376670489662379285768103700327729775870980272594773704453095665908716969586339746433639978653738873561671840461043976666093447251835604051296653366515640980914861591161752120679442653256313159612776775080208920731319694145879656047592859058265416972372064485025605045528989882593744553625694293475311599114079147319142741274764754678766267489717338328596590161978814887645900969397147247740960058233440485108614328690055246861057883658079273379996335354992544688426981877019138582851275877042304185947734181236563409464000332406447069230498921874422543375625228419870352314303245409353205609876917997616020621219563091358179030940390316966915011315960947894875908162898679912676263906106230099290900391285222532770871142846997332437439280199464213384874112973273575685584562008291395080036356672896672443070386076408218229467770976216958025428390030640608590847757386081316529352945431469937494203784576301242440363296771186389278382697945312468912701029829933945190228203593961813554926153097328830188613080176931120259279050974079225165471591723858312561058949128437019839186570126535176019701882384707516296557601390762034701112950318087998577847662862421824092652855615776257480688241812143032541525443087594212468114853763002403751220905406596229826295230207889605641615222937366586777094915772352300656394047826156173936681221195678952496524437018591192685296296805887256428530431116564152108914844497095748098545190287804074701933439117890856575584865526642109683476417548813081718078304764463395165561015182606972399411546381240282812805882080161234986416091390377763587745440429068983875908312111589797593897929817713737329126402345007100042293466125456577408715649454433224324958765288032252791253089073990509801585689200635907323799291081726893927303164570814582568045751016118781110776657474336829814731377356038013630001628949285741846766068661869771471247030293080872297186802335346151957923372718527045726876361282739064477441323276347559828157601319155306706307565355186233249479341662573168722223296537068394303450220368829775696434698373086525384366288323444602878404400165762528765788460790258203298599040591823132962925143326255064274092007167835813915956325267502006924955812940244098266453054766441991357577927365640307053989055730925334148398333367534932034102987874942621936662569705551828188492470358791612417726926277814237015340097801483503992507714379710866958075385417100383806919025999530641740136074730785526583187700610921220759414983471005341069974045894013886538410069248318285260241524425496714336309587236372493873080277837694449501170852037654403420048739071741499327858152269720774630150928363824378584861627931951642642573545207850177886950170645085172402306994663710793329296690477428277870539731886323752262416088246582709671554925126180251121742026056153817811088095242984015317003197991782259911343493141398715145033065516600529422566026265944770166288584712056815997181586835470916243900824052433855903983820815800545871999978709746562546885861183840093962583451267227917244421818570923439151505262860862348219351464294358474974044757480247147319865204779359342364484497429348753047097465374682675025843962283422590843178159120785590740829639374558661215698263512964405494977638221622009130014806443448298025284131336967914837511826944730443833439393360681909394928963398080972809848984859885892231923237980615788214754898933841011844234256952968645820786528091953013713297598283219931730814569884530050043670230146211499868379204697683729137630061242847295053508698520717801334252222935098550555577609648624870870618899036069591421675617540825350781571169267804177291582465370526654808824616864984836275715526775246982246340875039863284566093339744156984851839128211913322854884962894009169099716427485431227297408872418142281410335242574049175412086147481487138914871668969017445526392934030715089832974388325738122783775766593592427527379533997977305719987441017161467459050973478246784276082357741691659378068433808927812615997713082798581872022361553047329783688015621946199773031708967427263350885820557152465679827638957205155119456502028509894716608995737615934747588968935173787987385788411439775930773180548709621349682627917797177525368366250359778017461023409606172442767524907456880492012833771962742052622887186810240738344163953999202778945445466195492206610189064183805054470944472338324992293183246729788507380914940960044065488978056582650313916447561395881231718942054652645495365203027912273856882666179972063461146690119014863189330426725655821458948051473037727593182186462969397034812867806587682158367345409040767809035033116352452477014170389955424914841780431427942069379737477213815890829854625132481670612451036177212555948777872488265525636596922002054324357310805771179500518916435138633588616946926248253324172640672414167035094392703668368780587011008469783000580228531178883680051786707074992261528832847217872992473365124147227917558760059008975679930835505466039048785813920825888053076080000352536604717701131688950461283378155755657441586901338176344627339151173860605363185589966291328114976300266075262505917119185531639694944985365870205539765518779397771474048957652111091938459810678411526403573301269217518557785626316380335352391653209148303238003309676935303336054807643044014410726167267078249958175596618695974718020117660006762891664595944609703464817545075017323686336550254921569030317715305186489374716623174568999238347478685431667153099111187189463114713382248187837620768866148329813429568748028197806167042006656811558410147443142570520990070117995207195415892174440928611434897008742353031521750841746764849640728304946633877116315149985204310933750188909341274954570754972120502230312316862017227280093026130821405089882025312731174999106760399208863949465110148399566552303103010308381302979013000604635052835846819181209091594324024164117766482272317160705500141591874897314974381258026838485687096206240617987739426650451262642831738269003726990990798583662077818881292556625645457518295115011507606951077171729879583885590434081265514662020684939942009222713788355117472044845174092913944465631082987841243464648406310090093948442496650010846613927467863996137438974280590787782047682723691048763918676889144201736663683989673285148252152082623272819599856678067041736877812851332979957189690676273118470865240255884012948357721314462303552669884630658381668023654051040057590569117967739813515935808491986739600287761880941265582645089519146092112494537657656956183797662485553506897387835816579078607432197087799692171652528552955628615462572001746979947180478199675694270362396605266243057333869076618359125864921832215547561772825003613641509421157737386539038553033888588351763590268157391353865444710976642110751832599671625841379469967256855168911567410299016769786582933647258842045300837116593111344781517301571218096946989951360893971513632043267886093915418670926371379767567556252922854231644471670423080754152233057986421687088798151715783837914572642491229593405951775292107510846725552638382119350521571987475661095001316187844271678648115876260838414263775049026963089647655358038894727121547710627775189005537367857838424982258855675539486095791876761899011667474542178438861250483711761751487702027100395329716993604117862893461536836901420967288411131716499435120958563090624111055466892658229206436103189735990846926350343483226004699941236024723840160107896495547815514120208552944501717850221142282685483146540331621485439001312635033939039772937111307923412129526559042737602370368396976796030455292359500559373055487883756622245155271264558640095396293157632124278870635268326178842095275719723291962184105478518142681272109834295497160403160784374953751981382584300612458848640424366389300967425723707957825246834141663039070752225950558707050289104004502140271406982098150047213386618701186944149766878937254273502308092888177902901135469266773322072722587114934546130026430437041409484398676307998567853743038054031548221556893362157931820249120204684509752333181849225966193919854659614859063067355075573227718147541089096022952850958284551448122847085099977544908765022592126533029636250563042620569099758839968205732073715907477680823774691949018334805281163773688046240834326449833989528671521530937495636038872269737443835902934990777850072630940757536798726573408500137625646109031087619149257180998617722818260834946066806683094547488017487431336185472550223853660346423094903090413980084717793648699634330715380244064719351295139492959407360771575116335819256824386043361870482161072764402288162705180403840681419216110815738900021979897905953353411568420255433692520887292174897783681895507520673491391232215497120339441641273112379542523016285950654862443644951864642577207482689468796609526218964670045208915708463818445354493341705725606038406681140247000856533686707386008266676797243529239853349506617001269923360168438930099511146674932246943131229958847569251612432129415468107515715609529103314435983409398864190333862414059672966966663763694477092681385397709461041051540936351277244990376222649720809784066495753384791855661258200815068343660950843242407886687133445696115521496469052576103812795187314941101154403883802395832893961616987393355766675685391284836561225157292568173521668305213064111229759002347309305720228182994083704082314558394117537894640763097315723996766156570527976944519590077523219127963759780130676297644601650871243163397973964262668739293332696042816964135770575484839040567411647550667234451361562560955712097038824377185419878110125635532257226525270884991994223199747420864068872583961914707201085477772358459456518014804333878371994137059013834451366114453212177470562871786717927764108811146747801279415094790083929328622663889631068504168636630202036620282889547949329162258080721731949662314680558360372199365684290564910541475471746971867938221045844821515659995393807673025640740882129923550999028997493145607188293588685993840986224795411385684614155420286257336156621314455091258643426751962896638196328120789904262041660841303951603632455089284229129002475973257503274306090221893235810074809954749204489046011742922097878369262571875265005459196045609070862073472107518272765424232775100675770952637993492925905883339473689247852584594848776628702783664297354242168573993943228894841747051947695881194666293873167769383957730177878530885344342747489392666657913001686966093690531245684711294161204101412954584949988064916721540513889706246808970494714454430928229621802720529280230415328002214667863296813953964013687450204962259774238388982640820453095162359222604946672991720820345209204040233355170271176805181480616334052381898107069370051230380201366768443681500524152588611133236369094540820589446543954336908651487542205029661296717511707406337804716927991476444455972379131807354119780520411493152759349185419127552836300531455675749102557628644377643449320970297445745289042723525382201156851620064122692837127083490374067147108411838242168632499088919023735243259806560841680615332725190011266274922972920636949059574424874926925326090829228645340845913572955531288413174506357189737109660280520790477111378537306478590539251850123067279003345834804797214098808099387781083336923340461266665122155185439171437372023681630842269075973472856191102104491900581684986309510010352973761270711244220784547474671546313115845353714280294545096164069571273101486059640308198369423860134046241418749902924216942477092308701326121023185712792126831853442535835726049274512261762382351536838731696820659791943872001134246866807546995174894396034312599427880748318122177775916540758436077538059618782082455756332947803185573838345474940448707842413521798744591734418929911492579875795807543694059351251832246416737595520517041857592947509045628749467347769786564996301573099498095765100036981248584148716871791780976929836727445693159759442680792013591399095197784376839078807585050972095578645099027110412898761541449684531395375399742653519399797143252820283148059356006423547338151335305795891165143965441217553174110110150619825194537268958847717516664067997043140834787804769355450618272039101080870967588010314142150775869541497252238705486246699396586489899763922931881769557841826215887437131687792235492933796441111586515824855978055357664620274972317269406238593397931155401687867004544990054230937698643082600966105806115078238827829765863935991329276157393210967619619862666644217873591274756745842613836384072970334727891072658225603314694448988426057195882505415324244930240672235963131058721756125989593713966697577720162993976461391919690401151289958074476133931391636970277021685401046810565060910025457971362026645282608978324263651641395909805575517217337772909456473921013796894489918820755353821720735530459068013188896264855430551351886470070285994476773081826016957266535506020585152145815855661939483599154199238224533927078402232881735122514819899404948538812397035309255728961806031940675855995517253509471198107399684882673474918572799392033983880080570767007117601685533116289205514692580906794204405137576589633580909658937735231417695555645387889033771494676876610320573652756613530355787195060428390229566138429402567130221859702346014421547547160386515010661227391471380426715331603495245804361430624973113738659710804394494079176678526692463779866635085158430826091668176615539937816098249919483744497307728376322274916432427011999848080771880392358301902422834800880741123443940598082134513458874574062199358466403958936046731270992236251737479651947813915855707857582011446586084429275552457946227901129573041942798876061747314345169188519164393402690992047591318312090037028258117118954063955025424376598414716421194209983509158007138335894146723474783010532544312073419070140077124337369662755748157382951342559461341513184291921273242800051496016826397237944822284372409730052163727789490414546333492156656254440562329256594031766315267135805424772283778199937161875064325193502566148285110948649935269273767173330223448997328023546335769039791255890556795283004721525273337958728134651778246219975688632701920596693019512627789778862976249207649697840222650322728813525196608972727814494900791493679034709592028672306878943324329635089294786483276171958111608353839758044710802862424814306254297189001755376860714458125005660646483332349801423321429922523703334037321430042653025819480312798733754911367515113146186766527194585664020547166240536223176251591839952809044640875443515852657990219569053908619831002059776270477060683051077675085582475903234007023328323906943318354339695717828034956167412979399479015437380978028152470286971359448574724922033994946460877096504927217829275351273829666162371667783304108635381173035356193402452351814022135952663352230013629185926982549082365991814825589207413047278682095900064981076665848300843457483298686022421770016446536064295818910110633720713896391138771703690507173098648158546024073303589141760980562192678274163317397366329040218219840378337139416476206221637085359124027587760554796276957512519638416654378323870934469527238540012871827668909859153918494593152161123798965601331948620707761554941263116322396431403372246181593171333745229837092370085549715783689679660446415967917990644585548532735761133300193233933490259658522801335446321900058899233289232879138160613615863562365879346041564579010897298084406131808830863041343143962927711266516733790966188218156642862525194641426678422280653023913886962364290204026357148559104507142542669856599051981963631582710506463328703783756627442734323976851461160851118250590979037143869546720908183769410881612327707445686150033960046146259140034967281163666266030254135986715731441350680528226111576237401907436803210779880919392445993510810970908525181859032098648272311188399940358538908933351561469560036677223491845685644174406382525570675106790252260444873860536221685651615907100977769309016255520325982716871889666071919607536162806195194834593393056031155354715523036455412172405843410267116096918968200154646518485921373932766425729006557256092006302147397439546505242552943342643340312493163916843324741724910405983989036709644212714694762335689097930513671431855520292538406589637814510832663420906578207675178498924640585159455387368367464656845758128559304424966205937696936308817946558393333022060160166576136253522478055531358958174095054769504588111299783085303930179282182246064826400787903132815503306242592251660660463066437376529355107989434454198658754249055253070068149590408997023254161991125612576415906136220828540598059573286944095086026794944141934706929849359654457155033865728249741922143211938496478827683589733630916990118317246221006894315974732486841440413137666656806448089905372702527995691904947658199715180677477022700528944783239214327535418841482470075170000136881098456518177952408055419236831112154991316935945043335932345360257461715733133646641381719694249965589227294979352987505376567678335026508605420364679035163668476935446090205338789259101792244154378866662223396826496186893332149796018086323887529251376150997601497298553263702312262207050764683752840473194593144138600582769301877422943803523496643638878311848008909892761910075122382836228802063100763363542522854494632612202304889690899307631218845373407679195136711485125818905401702556400795372429260321095414580218385019167420493127894672651711357145132950481476734705627783405324333122608031383323883110507540979107418727706854114556000841594622224801174544648725842375074851793587960910327200873184104948753333767839014553091806721703411686895710348835772149411393770605082290317195291870317493019073921346062150073014804221571210638874320313218234700242703961897035216024086918975572408307331946038857593354653826612624559033003696433513219099715380138592767708563808311163208380368587613577365029016123110432309603507888521520071454578306430577771077360431501595838186954354839227147965205028692557681436474679295868295733607958484111931352262222349301036756668231706783610072329409363117100583284171590060206852706485043238906355401666014963561175892813768608917256591996698641920387350837465641028511147290513180586461368914797240585777036949648809372671472046097711007186668132280774428373922054276850850552407036746211799339954466897530760340646530255441413867767825666133490530396715689909468023329720321245586716180874124561564996061291590987543447548706927682030201862365953239095717974115103471429967012501990888018665033816128922632226497672543022993806092873146439838556432494347419749532610601198634272057586954234167336436453245049607220834203088835577925722822182772019396760594003087203418446222534204852682117572308254130070628907475927850134812883664629416013542349562152263720965811639417348452051489528698448702321951353040017571233983990331818961097964185478088160151595489782060093444644907341194405019325887410947102255047557232471261566091069855784527743912048252955075620131002948054302093158647412180082053893363394140389012654361155972382056086841700636352273248818506898500942585393201304299343297306430969710478298917041264415521387634278781624315764724601756197942840577194761585290329707818317898800564178137684312214574192859729268504196855732171102313652929933788188537574804622968002832870747830729337698464448637911952085251893853250818258154607931823489340141726537281099938076092814652012842932939319345236196900119738739638715843112321181133050055380271724034982849664976684042929470246548640014611794622196957784702476896690375398670408062773725800503779702854329723433591127775749403014112884173887786273908635682570677106596540687731169768580682817074081642835686139813854723242721431099292338419945885829163196623146341850404153426631012004668743505877840752456218820859282119299897299734804930879948922608363419021075123931868590018434017036983844302020431347068702898557823793468812324490909880685580791256194676043222032766294880587665466558338343233795788607644742801166717757148259095270049214271657413310480877471522291317124878184244175090184818455561234057400698864371714590824872078117634194522504596684408642154708590197284445018590060498417152713370826349856030249933508522950521115400485499425785209957760601153231805673439508678191759804802691140237994458070676085063716920331663926386997992443512226972823337342986987368123367157899767141376287884412705473211831609312030751478777768313192380720860553224311597757735455569039702720583042867669616767766922609298899866805680247160337274300584135745237854180054133071172393882476240166273803607739309862193218733520324424074352297319555562706178284485152619566237570385274494657824108527023181330350079171813520667410786664173705225244360680614352773410284578547174544405483765775693060398683358802984698079145728935142590378179878954052564338676916079634159211987516930173715566166445395589747578077702871120397485234610838491426467187157367070221563063471762475368166609971219103822673896902687291398348457016307974375893751083695532756750960591732700325503064785428538020206924294947990345590501878628586831899075292225242012684277271200752699291370405199462699618746199914028316832524142413609416003258544884261746998388514632363903237358111501699135191927822899668240027988904622194642472020382980013384891018611911673202109026779547714903164117118561453666397469967055376004589607309197553885134427643624034523716724525139838255780596638471144125733604164092588775880725502991762737471664689915615580779845808603452359659150889451998087847050421064993495400357365118226071323935394543646032515632957379567643562805722725640861172172763161749182733760177709202496751246477467652991253356379558681851833885298463156958169980317537790173259211881716478159547926745092041723024642352371107198888229294280109452430046614205417247411054610413321678524623056414354569277387058281776396575726479396942665540162714730289992209768998598335886091862642604703873829613812092097922974080600228006152490194419038343772192534191528777661522046517530021226670325083081833557512640297220935180578290844533000590549215397721537934768130755263707232467521325038819428436250176515798617307948566629262280775214557398085370626249653484347469470078565867113288144873846430813946639881459384317740795262031284685186201610092052260446986496602383933775238885514495187617725401971862950337631397548808780261898574310425131081361505486584378600565533636484045247883265007211332038711502292112822268048371038926729979834786677706769912393981377468459601995950933061865748604985270267123930758028573034500301547276551221733510780883801005507547421540817517988370684780755715001077582138628579916347316640326715131948007638955871327889726758199919654944086452350479350581170836119948664242820397646345277920144115121733535888800539348503517286754492256930177114859039041641323737967466017258678315605988289009185483998091488157994265353573251298342712232225286365207269128319592128620026601925308854215694676147218975210116261364904480365370918022838551572258569925917743728685031875968098007764023747501055147128409325370346036865542681593047741066002664920636737425488722675185214699368185065874373685070245871232667634913885903475274103989220710757467643316033370685902530713488818572801251572841825337977827339745054310201418106879374268844942309736081065496327587629293189015225050833571095863359614220919652801739550462700836059541548587793238092591740825610723267570060889942796429799937606522226300824523350424539620776718340374318516080246840387178886318746090778798903334010077516880799346669831393923634466029629418536828712804274090732393496822548343333183655726232004814391848291915117579690925038396061165788748193148729473389827277032367496694742506960463882499938238515052960254017569294436426545654734841776886803346609025049314187777973263259636462542992195697578236618765614279984901736157967321818108354643526070946747259300377532324450668706943535223336313161648974291121849562783148054226069203182242361010412696580373508530736236469212242382872914337426518840784292281901672457218723216006548313998623799142429536411943241283300123645257810402045170200627318534062942986260715181255657753717977410504663110141937776389640918585678678383071845578617256427822592571524843090334668854449788249090372162384728409594104963776758784594036979303571372407628655999543729364969729363940735025003900465613086867271560588459342326648227475788192496978353607127951114400773776282403225453400904885625948046529608385451232011807101567038239260276296698677728440967517315124665663008562945851515462940117289410938487051880441169641978734498150155761059762876581294945228477297366687339321415249182818433343965178438174414958788953356399816641560004740414336520927966675442259619981043231105359156336289610459148553033878248478561884560954823426281516315628663505638029171506330244697848031837897023059725375491618533284886997647338713937767857081820043380469730107616924780169644690220464141950724217642441867446996894173252634651499432816613122555363141538506766073037552249545093178468455369184850017026550545983074769438619628776705789691957539972028617616892818594334340446501829228686466781445043954371236399656330555339580618719078548350269709718082121881786159463599906983733996253233528542637367436022129347435737588469423943079210370587235516272561219070529803796517269728573418812879016851312299292095465017518386568774704729338276158015461876370591156512942041970694877651407191590246390413617919814189379976881931506192755692907117812068461777968779402208062102971066184771542933749984599837798089335266657942096202603955821438469608199761186683770715103712562162768575037312728974887926301952398347753705611650572633941842171248426306742875115200292540531754218509903635617061563904519489733930481698189270697816704037975406420380054398331504962070929182936685906008631363427971761076333396475707922072818947633268940117036798962125464696278113132166608349099946992010105660711460362200093666419692012214371977549072928951150859596363244253746179017141365084900504642744626704107568668844139261118819628870800606517786620011090141035667988901056299179174063099450132622267190186150225950998801251179231879337276973946340249332890679017125598808109457874388677539752709348532389147063712935538844868580565047593939396700694066554602268712993264822347719655404794981942729463297459114262689551554793358006673316978414759786411863227798706349501620347892517965943336880096448157745182821329001979612939052912430602598950394496263822408649125968703846032182335128858012266463224769730642991523244934611886305528932693220517091782763273265908790234232831492437428291882839050895192759658872268415543070846800548098429217889547596396430573592039667059684917000386876040324180965539035793030295584278048767084752064386575614444823893156606113330729157131092720949213347205578921193793441608472767422232530894551685105817859697130993037811287619432551174371787216234640607521084519135622576257005563442314427718990180429803928493375447613966868308664573933172078738287129280003162388601250618518900664081238190982159561308886263422177665602482477156445122336847415846804493283344278854623957544742283475487979488058862665842211455314522399340086606344188733286258601113855582275217975774641212766572044980336427792437602016145266002174217585741454734629101581285182338815550780833197414063897657145423291130607911722917650278414958332331057270629360271415311051739701508897789165559416908094422319512586807361809302751395719651428273738199439886290489815674291482920316470194229490441750816749406847422357848299156660849043951666522548607413838382243998527724411352204870869029367749817728092210837718122236041056659127471368860408117934797638471812611771758629994091170362944506881987446409177156763809039207841366986331169272407394447956231419871504379500625110842919588242456705862915568612994592046264439398633409197446385454751688496021442817290826804589142202169922235173227304807358227523327049741038917010994330268664781631739695822995815640944736061268979835621290219670593607708901253208156452922399836480885847171343995419244660650023534749064066445642830601110783009534827151686749969557312851866377332506299200947641221498681294448773614007586925473400966723803503149742042513953174754835631941859123075677040080536071841079714077263833021087676408559980480223334007679160018566793116660625066054556523569174514035500876523000289069926880118998204183755623654374230669061360365755466964806328622063406093266068501713836291037651490614609917203349261060333030509078000989750756236777257635037483973925410886127385369269807385202188565900311448605687868095452734147993492701682343296394099642193905382040554967835046004429131003849805756774591715653883133811339207770089153150219476195484586351279479925353731450194690729568110787241722178202737735035804279114892764790567934997982030648799261516944795745096059423140302352659752497788339172635982862708634237988096170542356407162212568790480050618183565137959871577664829719860524993712769502622270927468157163053584138794105266857038026907875512525869130816899792754746718434472439945569878567719632757623051213560032505336325499850035982040750556062844275993453751847371772067672257195139838742446369561249758421678031356450247046298217477431087125219760186722425609990799477452932927741519010319799331161936554542584489346629952684543939472264896834399860769467591168950226963468848927377788303296403978616292844696306089410959467003900093717537477589269073585590922842695135823197539097445888982957510938869294374711589139093792007283900822165103811364364547290849124889374159274745701155789924222262300025799047736257611157954426331617517799043394189367903139395652202423376882649165553698519256999451781151316740637750425499263161333179090657638942682136811309510708391434019524633134693838980694376636461256773833194122598780752740457988399944640920498851209033968252253789596827295592116077339714859378754427546628769708252839651182488922233460635409842712868971012205572056486352307027404145867198744503173488552449106268364120295966302439831015460727935038487377958746916753208440093470655392862800266980474459503225053473964619312833681792547080549439288220910268787301205586482587478568514277586914205039105151802886532303366123247396862438363910061883376049623685461724957521316228865410495196161827363803140327459958306221879484670858644547063537609447017871952796498779721615419002274341370240020651307444565225806274940149940319948561490345976102082257807075687250077461451236418977855175302645560645459787998444028218984248461667148719999299695397682707002997015519545478134006452144414928663761752238867665430830911564163808054711469612027714250450266573791303686078991493598740003444059090154274417002859195702381848897276968503052708785703153953230137773636590653222683793179777119414196878054273706866550625231211755904273361636442172829236712127386051310788708004488001791206758934526261994526522961087798672310713896922801328025970978897349710153686661285426160619522047820594678854030937414473196077649963622065683834261832866912589107624235719026697191038037351296440294159814175893427096568750982812870574765705106070553302509775112447256734820821831093917677472662023344438835845149067900677389759162858833876939876827341931825619388264204833705815151368497822697763805365326196725429728470181079154552514668152970940954409727295175404540591668052814382169178483458572356243504166988273607894512110249738968596315569400025828628209515829792512528583984194561437199893805210979458277920940632992361792270340556757838421977116905081627420520566770433538981706097826861692482052530445317524903061177496191731206510368112522714058428457947408188166983397401275501464456094547655980008382609124023818918780383248478288472315935140177107172492336181995086716707432177100622543481790579121666614226315302394439758284924080851811721788937991971121503747786773968207025967429896011289833365130961966743144589549128951955359657301982631646328530468239571580820779773615892229844918152847362044506289634730798206039979200691536479621236832797584446952516273454671682747221365147472127028185616754753920838467671354879492166477106314435093545076845446509505362605206002886337973921002482922307084589782072410722084637175537527240176370260620401169320068386971324531029260676019797730004300681415905430302959436922926128891567273345419950294691852677538494418436486741130663693881534754803508195670811226503429957546794242304105367120886893740353103206518262620732987600078020587815509381314895454030554529434732766206332568522452525238728158824183344044282126713114914951322343005472372115319094044532528653085043867394858421853743736265653075720484606289030806527444044902589179029234505273530936382692573105540598832180286661317552547575481045846250159980065961083214854355104129427273622579300046584360211505681684174091345205621819275250141171263596975518198417908555889824024585851911019136608298390798421608404952053269106183170317289069131862352398316895033521086125287746249077393184235764054099019868748591470115147249619286690531549986275457232545686162891595093953619550166397741026749477954876388609297113496328667695993898044944410928487311635446854197350548050316101284249001309546411935335931646400046266166420821196166226564112823661372221625243644895442797647549078481577648129628001920208150985513361114043933223599755240634048116899236326795953641646341654460249309065058287603392584374480564236596777026400787452808698865253907676540581618896767117906663464625276427534168184226769720493923336982912598472179224439477855196336444277921307288360479071616289335262882951292914047152750162167517592548314305702447195441581923362305362758232584034256633856967316097600012188939228873025143929836684487819348277489138718409648365416021277789118281411840247048231285044294238562019266569360746931913908973582674223261276355787329642270184228081051013633033571680884747982411301130338506028977296523795528867184000997186331644854352341246692853583651822705130046888940398826097522947136603485837273346536902746877314501950632773935443157703180870335571477073713812971292085805747415840018153343758022482332677192494436088246937774393805270442869974901485648802548802956064044000837674592072736635471082767712623005008522562004370184659025160502289506996623600228840319495590288209821767338561277863266847380371013629000917639252459366070870101933528846713539325195852142418696766764768044885776506966706954504624008550236136646782495578991701371360845180040848024936237645474136592314157573929015925381646960071255092750741252075892923670636259333896639560970844929095673200922788666086636486248190792003983030005041640289136874888151678101996974753343197110797799372572555567166050605540319165795544644673150234824976021698268438392426066106261088301386663490421194066640724686192732015121248548014896292720113848643683840050336625236271916158250380768345944447042103622258973989184781148595035302298931322490615939025614236988860149174093281289128534950237292760577306322674542049857739641676092384233748177065899460945219838447004082747525473120857984342921119346846186175530793190769220902554907778276613480332118562395558593341426833734483902194720006817337867579185478118198152449146122858009491951442058608035471587846776456405571025696005609200346217848568561555683733196952195874485747954799359487662513654712357050016281916277171396033126194469042770109234245327950421119064218814225024316460201429752264434443438085787191555893335277732237878078383407892631022165759433165591419141456830738856170167868623061737033109929663892589133336459096775930887158043219540822375679032882934753995098231370281905494449317874356576803042920139242779577318068270551194924419049235336438705851080641920604695466658428661581365396879160919632718596670992487660702934571723302643412419461361404918251864799520242990076490698582746129226842193078322664407494102624935063825839373068808552886577401237783993497596301066705369257297566641556208893198231554456215984196014229278055979605157829301773634100488872990985127311215760038514586689226698347455198233026128926765697597033936956668174819019171653452217041433322944023982553335100586306335862233486508183513213428065147617566848798832532458878578477131239451020370618805827251976400397756372186339104559903652601834380802760883915265381229653044135115710056077252103482602030145401725269555437901823712488825292349680872552693982216617783331366428357138167297558360200453173448064388765034770888208272160274268879664785298695915873044268151141041158010874219078171371802637426830008079316889839586663585387315872270566916373438725077081887807838788043564211925991582189057775307919930107439573594963381497262451861197720953137082290968444124271383976786147504995473009798885522994566890688976630811969539125162759343489341214360650955679000139199639696778378626790019720959955682917017631791257769620085012821165774537577392922261205821341979252746870167752125230879431470584344568433839059808931129475520766477289082520067305159872907772176025043196504925540332050012717272058676831284839934915890477471856805178410623691374909907090397527327898144305388852724809332820417821315379123585072452386468407504618163638349796552999861463815590633201260754274872693583695270162326721161875738071848415640991907546299742889557239100806378461636100500971269873137018643176484801206299116480076436923633386820715122496019581980685886839235483495038452473763662794488417954620407004960286833576812753439392506314674177726675746686326703394323728248787723191611557134364053450069635347946426129210669852020997132716982247199012906312244997123364992068281747555646335506451722316463504123096583059326128394662968494375945588698345303810206390944618550840763694590824298400208211416262678478648585115382530658822966716730455669115029678682826975843928990902613006774023117830423868973422488547238300516854255906604733927101576176905900667130546792986435393305723237850127653149613331152840603955665052706491503450527946829149374933940160505841782706578098297708562806824482269570151635050166481159535835390233013053601014066165873753319651652142742859333555175485424916844441615475262206972069394353406441456275838688247959666425585368393846202911403468242217606632722696159538644768713912889378697093607802751288361131215067903926604310219457703935045602919650321651839790862771721385485454586817989281409865509352386819517348092301035178533431327274551234687422920330838215641512194499188466767043330030467218423780742567887327229952648259436482270805602551240498765003718359481942404528015561952917147306830970249929060195693070637267073692326622395324787132894384461698369793886833064122304780280751509385128591971531081961433382015858748149608062268835088654683585108162485893460333429005266262024020650449235950423074818897355078851542957732622926543144120459168271618705256156278929715786102878058177891056674005290933341928937265565999853077746463931656597012674131568209767046441257556791291707806010566200336701106281650201103028784264356489409164867427880765782421868273777951731559773930577428766821721485337140266258515661230320181639767912798812609880037893675653583371217828922454513013710678278375714029673470847824125232390683074404749521951171475261059988646279433856292117994137281709212781716294277471485444857820392833503265243642238612140498854853815089773699030427957301896622327749684117254142206071954332313371636895003473630024655301606119847417269884713329504654034173778351534895348022859024658348718893018473264337375324936132677981911759095243556758834921365121588845796270265815775428639891166720994397060712366508639990014509797779572223378810600414483603388668877045279377626388456485591598421978874441492796757134084386413728833697685150445502602787296440224684598550524341045121052754765067339687358734396066240041746637471302894557777067034731933141099815134265457581834615928898870491676929870423797273060232871554300299452561554843852244024513784416948227280775849085979627188517808617293325127707369084611445107230947548018839963595036084274841018313058817166321597113754840364225030660476298217948350306401461634874635416344616568164952019570652240429763785126664540345485333361259537575554545850438288441440055291295578484686113004148178968748820571399892652833808040823404160760667450090186655816023909713010516444429413053618853790658050900508498565132232140330072093197532776314651652114504681241298183629153077404136376910446483260942686282384882901480030540029844133822332326582763337465012509371930709202539897594382117930180612174193324348187920652868639750142552362045948075270201353716347918707170763042674188485300486670303900915731281209841845472101619863323948992427407869953005177895865533919795527112925031163041592525474400636490469399267405941802831221401550308703051488508282339656085795770847082666610461212363255492131316327830262972319821245974148419428531353459208998153152735668083562509761714840601348084001216533420577232608681573369104148831100879606533077978488927006744074579702961548050770280571667154676930129235780796923877955667606801976111577830378032243288474755536140584546712158728276187509699466869354901434148343642901694412716556392412848041751224591710422455669751112928096534406345683757660938940090554189587472815343136575249596320862753045125376798477327604023637927819882687180130121722228609871554263539269412232967224593549994917238406654342075752046711127603367032197894185623961380549628188956316600364587611888361213791141969877495434539767615508847885389162763568596301806000965469992313884967908342281827140223118770242153691191713296196911997707492969219079738390916208617579542641476223928640969989904983005096193581854916280109673614232032956722901827173362407477181518199106016008439006355641985434408564204437935966335246097692987295399053243981575694286835280240545202980083519431959198382961706162711614296118736752337313981431940099306467867564551287534171089431925909889459639351545471602743163160194785032208646572202616645782995699876887708361579122367672533480580601723133886769388062679137525288564767213352816210834938702569088677414360727207246525886753948006315606511401863294683842472202401040852569311698203923602040947388679185917555207965708391012988182356309815358813573189790181473228639258457998263977191491516337447299647117147434146334287885913500624495967198758079879121376686001210630666194392295733970998841304809179733947178127603399460348458913549973300466882517790422150511585967372304354320542864437984974549644454752900124171394551229131161357512432498632893881607157565710721438885389592709585722832223614103480965934002675021892025176430144620672200224086200007058565018179423276713331225488150977367312566992118507056649789943450386283184325595240151885487400244664836945328830312485091635091286351915406852717178037409728692286460726983653577545365253539461150145292095891158393045250108255155555129817843388241858007351252280157450616050917440370269316537029934666884056482967847184665456033537138489126054144024214122787293095018475350062973857218663569078936141082835066973665127886862670640550812246431168767513026470336269472413666080434188917694676560285948002490792962496905406829932035015440785489222395588526772427279082960594802607343150190041080907594283934540883705901672485802674649901868126999469454716640331935122413977494473504402289076700859788334050093755317272720717888264463160799224336878699469268280888077736326823308781319212685264515945245619721321099457707528245860574123479056843490847483813952159622446278957816401834007946919938411008426012615701372309803832347452644502472080299582242551830307425623088932442775720447991750330469789029690616500834954164788577271661572056177559282548695742801087971895289288905895751307778864677101658422370556746520362186732768387762596645246884002066785784993903853809010901603914876089095205779546251233093333976860970426788393829428583913526393491665266327153355368124890874678854348443009784196054196961884944337625206287492946139783282128172846794273559959722193540511584365890412366658091303879721622744321691265625430661579985007889879820221040499715699255734204174953364980026331013464232543645577753709892237047549763110432166907204362897772869134331778202771783443432653679415981947235128001365132023309967319032462874760651837646012843634807566676091167040462272431249122860012868223009629917904816120357556988229909799294496241347375970750139813452662836416521603691211102251276769752951516087626203267308840829086275000660108908933973298589779593003420673620081899633769356518200481358882288597175690773577411906810713675970120192197699311969497383388572118177672471061486087638683753559925301561695800253127793003873808848358835462789530932700476703084518051709186198240955243114915572257587183825724329376753079938219995248436888643584722574743336726256262139873642772753845308010260174458413127438487317582541191016319338136542058374251779494264673491804133658553380090251642562016101324974775087741171815908576854736953022936630497028375192331342542765035999823252299165051524816317252843368716627223831350181018104631278255325884747985272549012518480692115890091874289634619082729046705500267534046898097567556367213632323444664293843771248389571632793852814536800409726635323193993900255733945590241890936320929577787104403619037595325419199767939349531530795563049891310307756012223087046866986697907812831638573562856115140531391726049292789243556929245461758068683166985459747735905021421185510192855313263768710071920860667399318426184568855235933326736312626552226533150006451798149548340578511489097108183348181478885094767748126909274806986576311523782472184735810326005574334679339993514237907333601774991326321366168605173370783946545904916694376160854370065948116266182875546547754501191245382084674183932158201785792052305454682954019007665041234508707158912546262894472401518126942419711018385675295392239285386969915072116204503501882607977181774959307348912375190124765126846878506074197544263151671789908598811538117957122734845267565462554501242369813102042217990714095013118949056293211415491926528854762887528189307178007095786090042452956404792281147753227982984473839928518200255526828222335752567064367707689498531490568488481368802751918007047003419024915055634998150072915340400215371280142235474763361959990558184650921732926284301577563351518049262983821955219431178169130916028443859430928421323770979940137406492409169358126290400726600011817978158597231709254552665256738920209527367383253200146168546486801132022429470278936333102818183641543881369043192971968223280217869760265071233275316374873785929333366562998562314227795679382062306580664934183477290237687078392786967775856142729902511827068503086863122806967848845796478389883060333152268719322851592642536404295826656261956321094302008944121976564082441761319138565308227402885105871899839554466420493406868329625016337112784612228608326876412080850839529682085358743198473591420647203061841160320136499369180728179752472921070063047576423712971558698949607749764493633835556970994417338127350977686542558173750661471073564180876964497888016167984403909512774654129183474515619753634593707157860004687606647848520512951274983734453872385594416054533189252515264300869481971215469830827389189621529984932304689124331233769582132221057092082511473434570465848987123198978650436834622288502033740700421829368329461965375736734386129168430353460049557971479763036374970423959962905341260396383738599440291809056955023976188451319648625669391219101641305226670098344331708191485764757469493028066684698378078539332932693376786139847682156047963829178783010035227432308437286256591395642762806706115663895915430800596569698644616287962122337336623005988923604062737624707588635318996184976032123916503306851638907751722109924619851895877318938334953404566074543716119528236284093278182897010455486847678503267347102097072367349230738886623866831156039303304077077244448277427999375131810572417864499576348973271768569785525560314908312375127907084130255336760505862558995855091987700946605476494558963354764253680949601946492106897558458318884700831598009486665171037064033562485994779824904603987600558174263113429085148562026867465309670778142774590910129814166034554037165111641403122862580828608613462289349226106122578016788838800420942176590931921524324730645839694181426224683863016278846593346879087207325022731509067873757990618974171451871679531496297963098497775829062167600815478094390181120108462968422348711455446889475698195966233380162293108063602721959771917188505539046318743110849532380305738316216768364611343237073157044158876087460876018095841277048914622714955851555769651455829995327657790336131657667648817392057909549813923687230684224543682518886488724460624022262709285798570890593865339055987524129687087954057497382619534159021223008746798325794925578337772299682825761253990759122604141800808374933687721234171379267163124238018026255158064517389332021369770449250710120503963961647154013045779645520010145494809817428894144483812761224680355694467136710577957391497336239855414048584283686606411663194964805736846276125856978589347025226017370031377244885738369785099840845341176323170407880580071538171403308231301766180774744709075908536750524342021262021223004097632270594899801225598728706489973154812046792602363594382778574374729617226432101077477524943890645707750216768481794931805091399416619198605002705636810792614347151291208635663943542646225679913634068747512381434403610893136865868752794388843453817320993042436997452500241783688628881008757460014023466250684291857849190127809351163826659068024192258180335225731236667497307125096905022817502796683211415001899379210148884520882408347504980703563771586336154931409836362147227512297466960174583934608256406996379749358419306927525819972096802812281270937808975604949004271522829612466932326356889868030714690300968595372865221688963217247014395073736971469602684668979941968953787242115743922946690602740623425797801167960733323112716607022934164502786194759916651714196403848237454805061134951758466340778805456477051064567777817581483514762616489029014774857730339470555414052479504290026026416910675295943907923187464570052756241274407834566638283119052726899911826000694380500551582765643902418269160674712175090703003852047168923980256801257206086908912300666848096428835734727059597799625032427241114734179317808848743803618320367575179245954637902728838169502645198414451470850884291288145117418908225527594590594507252918481047613860017122841267090215982508403817055689450613890306247164574134277690231510574245199485787563743578611401311155122620230231286980872209041671120428636759104970878661583494739515768974914918999805492644425295807937293472113296960498060366602722942969819270463383417090583586518957387323321431095002419096586776299105269930663131074294175976036691290714700526243096009135327854068684469005958187139785944799227183277908363303297132533177840843219510438252384564191388062254937418440812965950931644119639605561268549334587172716397618848726812558420388211982822344469463641315256016759017566580950616158748428580594896903153127756654966991098807786237750255791659749776470390492924415947586978328135839596998625202208278441040929400602837522880526555866469590760674883083018329235691294319438622859774966552070881730968961624273247907171101596061404420281801127821668161131944140012686285763030346954987149275834357220782323364012296602566165882833463185619761492351192659956157486515572477995024538942189853073197320074236865624849761390771395649750365871828366892405269352201069654784605371527446504440962709811704572959555857841045972607836886122365952694914758942512738441327642361459171328524107770037676079657642606297413500895983580657873980745382242646734781729066415718540608953064627638671710010397848761604770933098603769667002114381383439600036110716503835148138815303724818162503191892679504637467852773139360814693954257142537158981406329882525993253051890286146938548159475737510664692521416904345364390769317174043810740609560233519822335933549259863476140889528662960380122137820294025174980643319682876845929714633089139310142458431332094572011279187040586607674965856840888393842018917892163232309834273979183340078365111842961512977001479564097100490199107031604335214832039243265339552678341494808749891296817852506747858212735955304481765796314000795849533055400674608583858604126356544832532936472354142819420495472415649155244213226338007550069841652803755913463433686887493839128101733143222810209967496630376483952236543066984415941618311437114906165799954173983278197940171828413176335198721556825533870304596011986625861661635065309319659504043583550793653354417480301128232241809000203661539540874517021807235216660676605541519452194662879458437835741302173708553976989881680140495001201813348243078847436250799870015315817908109762735618315998618765434035607126056156757246961715079239562625056433519821011016822034708582898935999623508774808911103234369388052501726692308801512478601688495916135240416364192587692968085187228033170602032046943776865027461325332707783289340541474052031014945568622208901484677109494984983311453977721664922454577116401538535072776338486029281987248566743712967253290073112696325133838772898023401882810327379746194872954183606201087168408446484868630643677227850173743409681697099122246820652123596040524174903008997693240195523803798945056752606442391386420971946240229093790835902558893190222176623874415201614433007362563224011677440872654897191662459288139655635463506625487599729222233028863404199934471983185120035711385500403634255743373031901164783755070708789751635508281176937749564066375044966386949563833093829656564222261611319956888055642375796688805935887137373118779540568523547504804171485211910033773090936503030874727324161161923870305741910030958002067613358485775625697988517572683444774541467572746826676741924963447891633477733634840060529113261976345798509370108385928399747923730727526251410345137694017236658536345035389240602365771190746891614158851146485104886119514415877415578646030190471151199805660922303546789226014501082020668445006541283949986240083642186583446879902079293905121518462241548548043965498157069253989276080096724366283071671650606123842689011973030373881227148278099348081393574250363991279762732943958723843291197946807442816221534336155482571508778934953656067991701780937758793988714054076827724553445638404159579480003648631394623813323388812561637751794024365117713874942375340982199667826273509018830095109830775596687491439443473999431270407424036753366015647178613640486069377951035825926866951938225288660486024337007332971909163203592534963873318806854828712062585316307620701223420615268375612340526381523157986946455196908864415450770943128849122850561489678886365858834733839710275492183673658069949470247138872563880984451904384755501760564101618324938688101788064994306057897551627448867620286360740988051353516609826200677113682801679966699046412708556424216305155129518766743178796564503205251209402286528971778231679379756942365383165214521215640228860671922704203045326123560060876170762823693013344774293701614867716887206721537198728750307431450395316501170378372461867765085592797807989341644225243369522853299088360806355479609689656467841764377790652066966751389655314216973993739818267611973290077834194330670117042398702928189427782185189325032783784040895116635654110342718478268306821338704809553104599699697878845214106810034029253130632106862948669075364817975089713295056727991670687601636628964838675955088002489811124773194404383716811818810369666830939721593775868275833553333742761977717649775825819420628230419343077416192100399670366667125422530929481534963197996362352500587074510388650540195553503165753774896955854369833769763202836597334902026062554615865391860773320970752390940465197379878591403071422707852745569508838311053618685771656335481861540833459405180374771927478183388721217226824646575591390871857795324736142067595558889997154351812532306911612912489157047458642375530411930708334224032647968693363988963212583213934660539700398812375558946244449421184947877305085690259652875953880717373862072782798207292062781155915990400423135830844420518241445786546917223121548004228650205122502445106580729886414293545545226221644579221322053100877453539857880880888434824276913079343614184345918857433456674523403352618492925693510139413485835952007871717992195782799140009188194883588668026865297771328215001012181753708689778721437694011507022791293276907317503789469612136890675581903235953204583901930819813343726028105858284581476326103924118826831487414243106723178196910681126470515259147382319612975542894586749153517228059055896392214574754678610896900318858137715480851498472141906540398255988652527176547627442147628742114122566581837973350709053770238567230419496187835565494175130265092837386900550135921829935583847606128879176464634332953958239256284703440256426115870279476341947849056257070762569800458915261266422735554339723165297585815226990871774113650570347803181497575444428373129216498734534320565423040960033027878861607505890288413179321593235876009574645273870110556241879221256492495366567526641308222611763553197828418443861854188833038609907273333789529971482811535870610934812214657489351825453671674860181290305850199119908606260801439754413873885196377553880507917734307355351637814535613319991306063333239493744132626965847800971926149730359017984858640404716291159398533262588239178808596192013501604607490046900068817406277548695479064842508570971365460780004315321154647776924471469153497336591684179408630016791538306589883167048703265257034735061499654262081603883724710624986998744363101697765791752228708807939339165783481671205899540652785396367833100889767978027963036429434807494686202617222371932857677529197675898954984713487075090034192087602614083251381368286079429629178307272556861270506773135306823231318990076283490431695963248340433272706747866254109492144385361071762178279745217019427169295029321686076338000642002498795708877557384384863792008521313225769871920753377778487109334328578481988036685329694512411962609645435689016883147454531948982468267807667784204144275333328289944569057816690256816742541780974365676486412265473714797899106706915491200413164651564548286077508305415994961838202691196771508018575140599050231550571835194697921384177998511052940533618364686423572149656942043232925703045704727285892486646438673880266296812094276747948535308127868450049966528632990140649485167329398083822540614513154370996053573636196034526784040791995043537361454488835709579595482593929942258162662108646571176880783930315097525109230503124652550248430866310650130575417284130263088068880686701634259042087244173866296622890246946932932741322243774060963502902476864369336723598517676261044615780561926610057240678909189226520535234874575787113340862802800627455353336767400086729741853908658118744459377005436828140403903899510129238330883683250028392835102940383545102067141063701877411153571801868594403329464952538028271358939659331131979553674715670554037714685585929014500685995941515782247672483252676645811722327710326435631844803723019925585272432557421594508313280474936205229682758823108016997075367295765782002172281035303075994330403629387353135111845789560273593442646566586759566788779206971143868321536189130766993980037015914726466773216044442138794623381906220316732439910670510389392950966283554962909546038313369693750656031793638672156194357141853069331265779940855104598177078496518124207722059207029113536645205288438773147360110568016216124673569392594605018352835117813518858207029339704361952434319548885946187248837223843886125521309184138065531961961822366408683432298930033669022065370180771275529622247334477033845719119654136163434960022091189780785784278719796725007174695669764717758714758823136327338036733249137118576906221921997224711245341035302390811793799334223990358088594888438478789006168845590256134434194203837786577209363168268558918702163152661259669712583679246328371742406975500737448227813951193433376534464302785691382787608684657289978171745986069324545473592019675368435283366363228966100020248715413135911001105533634952053886617259635511432059437479950419187558454169208616231765205682444792178677438914260277391154417779832660719383072224579463450175120808246827026048905098910994828689081689374373809060764666134678245162609687192726076038110243571470877642150832198690941399860978256749696010457162907109626012321764220543115571370066173289950300297622682841920080529710772178513589473722199976755254622663872722877538025146436573318145117909877979338881036383240642185923997036073373404042689853687561673728740547308312896553355882115680098780477668623824770032721190593158985475769285713873478266973619307277689658174947391661874635222925816415673518732242749640124951438995312937186523382561572285066635634340873794659607580169415877658860191776242235077531151842546118946188712305790114503113409132097173743239841683194676956491208419946365077105341653075824953495817169513037804927065039321662710832363101987552210692939859727485833175946709949301868722327924773051759093690913929685979715687125557956256093745304315208942978154335620039023486000206321078461018953453164383440113524864530208573338405922369420274473796916039295483664625041032251496089755401283142071781576520607088000539967993104237007127587546705047313776536332637479766786913143781940538578518705702483256046900096115402930251581256139717067493085298025092766717498564234423578665087422442715023691776923847902192537787013246737132032216517699827485184782290756381829501081880686809442484899846958618642933745560184445975789605954411895684920993836784653626288598252747421219710284588459247022531778006559012629003073904791808242260624338267777355792335665361459817809186127536438748025593642893810212775831085492666611069082282015573996956168961932054620671233431857648481734538372481023313472929983693016293014482252393145011542384936678269147050567010956396928899779485324749865665607770296007054212174841650588971744029272874561269685208901241051376754651358788071092787634989186605500772791732250697986728119231721619164971339289502833391246227241437573399341636295197427784471141230550874030159878045483165956430390975087067568543991536095355549443745156560484419991291894121913266173177237023551789483911692291437334491163383610216669916293026453113753481170642525358683913937665759494580292458390826831123298340525154265004171493739879093936035503097096338503325552956000848294358910864007645005682196483800069026997782348545345417217474618701767804915405507816396682930939558556438242179247869079260214284609017207706629665074850454496518735112447208365987332295992224836374803120903904021727642665253475721428818779826835937611204432449222353494255955797109360649366339180242725056361702611402311277253886304354368818453015341496552626542226271810158373557796029307653597614613735010967089370874222182506327913021561524981909797704012225333823514036226357931182157208354038591978554902301179845723915398839548423596794637533498503775773209287771328208093176222983876454230749198004167678956210291144422258201615495335408005155903877411704794096971709703699615532945082043459701883404271722038480151096300921818650791016649748576104277942688746970606871334117420722946745210027039109316735808525545979428387795039670440206278021514905845736833772128139983387967857714393396387492576155671809357002529679014817670728353419540067207344526224045309431196926843534438598602738794863928594944565089443900920055547770278820031954356232252309791453409505960434847977742598521912785327718062251119602580628863805187054290938820828086443358992376592167799407011321008811623096648129113425536940919350965347152542795880688941976063613355025284880493592676083253755268408380193289817719798376687480294472374993837757357527257390667989773323847750073887563664401666983266101703911989042917615062597433093129745131435611622549573017474675977027226985639756218628561432119620312653969164207150246021682041008270605705117104421510067627115466156791204179998165617391450597910188209907216549714514925457945130337925673690797740387192462448026599526878915545167381473758697243576696999048171068450493388942849894712098990656954920322306254208552167958526541121706887114261210452833657936733435720557712021263961390434186831779396624724862714141105919852883682738970446523744070836376524157955013298410500300154645827461588255168005311186220465171665613591233007044591616285115654280133325260066582764674401229950252396018965798685153365266539100041133007007651049044727427526680850649615156200219826931081777205781367728318857306982201259990241665351114565191711434953142549364564110324830870046835970086666088922518488870280874349065997615056449344324024177788203797406804057286392581819715506077405946953305902690019199718651077591965509337283026698943139399945617658079175806550333140666740372823600147237306006859095402311796090381740741540348288722781326043151388892626739917080645096174064057260392470571283371461304400737259529530027709164503417602659204011295783258340195932632897106113227789140227196937633491077305867202499597336250956745981048149216785258930266201852397050142475584818454423696769162118291695750851128075267794513973523585309685770345814929713893124948883099789337625144059838584185634689249570926452746773526465236171286662931567465407438209782254951353306204116235282018739891202208023969799551215381400558457829675181681174936674298389609741548610084731326262665580028590799382461646323561301031958551277139949730612759007986846597136089668521504155522590984657982272202019615022471435331035883144302846944526469731493387546789600300217111414715716035683942074832762327823654403517536083155277253563865493091030799254687972334091738663110857823655162236497592559793400448428664196210199871299137750699982052171849329509602049638663875846241839432061877094227487334474671487112142097484010655068368130419894291563631702841036231966645736090282677691646930363756995593967389449030568190233382812893266008302630842447811605689551524520401597422524997207093687270839480687688576109433675868291630272288631220964449857674104490419159949471487755412692653532376715120996869496845937243953370690051634700223900574045481852669223813628136611183099414490688134731953599722237726483247018773147306968799944951734042684523455026543285512196396655992278038682610557026832797796576443472808365564395237517196842135909771079994558551113376305856751104752409205192046250286642468409668936871693877506852167220424878230765515801379236924387427040619590085030548581711312316008344968616812469753657596999394502802448047737226254009121828827038408269297579508721712395378817687498322315280426772158700158493605997605132099592654979146790591584853245732774027668570668325391648812678183067650402464352424827958404680696358331470706862762220094727458426835777278745322506819402320022509815624523588488177621648650628855953042292481017102540653432363297220292616462881881994035098244845006881004814995075816061559438692219236361069707206785245707925907583592976961180359534694350201961830253673896627913558976078686873999237981995626031337531077191527285854729221309624142759733212627509188899866556992238571623274840327444212813602508300398092393014774252699897877386957053817269929730938846248996873588066763792082487642243079915594355171387263705813546996225559488213229071332831358678982800873910562168514964147659918720057209761500428398321459927590620173609479210650789874175876571299973680777241525243155827360848068654415016130453243005261242249382782907050312656881796768842102808948491284906155981019231542284102702519492732564369489184673925566202775384013514863807747081252442353632781176951181183127993935652732680401289891481809262046449217551083639517450871141869780150474024138388286188297185843256328133263241333061910081168276400051435740217356798076075371737127526448237589690014663476016418537889142310845227528601870321113459205986157533676899684852090916642766765518361586829385868914168320805499700526901292877260593193789601970998308073093787460905267314409213236582874805140272101611068062791591884626602374261748894342128912481558205265967669693609186118746983644378244100693875254912078832695042817553024304741997017762520793161220316397309981664286192874016728237182560611216588128035281464110336243700140980318135654517552794103483928533180310163298044735204240760326466933842267520837833836879211473182567616276279603976974417777914260931959225587560400483921164040132000968926126925396052561162060590651409512770887649316965832534323089582386469619372601109260745214246946560695345208916659494325485206205011288784118801456096602358721394055635966850897957939523074352391078080299776827043781943732970025272590468787571878248702332302606509844436568633751393434277330866344852106119988272909356087083673843141726429359691649912458878686530214227366342791199233197587492129834335694327649066106094831740455879312872226545458862598678650605962381978048155429401371080634963512024622666797962701538511682855230323899477674407864794278037516297691051397288787534824164041746463419699717152402837036471055070954622721287713614985968560739166101307705310693709859161414912684530972860953086272638963624620402505712251662902452041330456594845802503882821694937732262880687877375561980825811614851467370454521298309474916056741972708701749077517332956350352472598996404963726405938068296080977382979271782114558523927338817030145822803341315294010464873766168991203686134557167576732596567833636023480588227214940171696769421910957779471701876559221450566250052162595969485868413087126432133850316602322483582594196879761599832930960879064509593328042345625105911801653605551143848429176948904632570246719514222290155044355959802230954389918781402402753735325337963512542756384735952704794351605617116394165624960560999083743284424100597347281654888412354691605082991585632934905879261357673775885511108078045051404485963939685988142417310758256470009002106857655001535248815968937751005876828996971855473819031185401986280533048810513752471205203936224488773219374255253455910513513361440511517430903036584036859711658282743701343607015464314464930414171031852573559006368042408725180991777755545660676907440453841938980766290646807191473495065148239358069868535982113594642093926084773113286727004072204250479046688839036511422967470742309927392956359907216847780719027575503253504629002445756830625477211192084578060384334304989833188908705237148072858188267196049833348439532957363404319194865691536118264758106521611653746254782802537538859096772790992243814624661561426295900920967419891425033997929243076475972123313073595829839150883766620599809802082429360820225713369988130984986997191585747257931517079021902934112377200248652851165436495325532368445676676020970839316990791379195478014648628589336926092694675754245883992339862074926433173489198857398941773499183628879834921842639610738833135206260122606416378415548915590045607113805554638168229981973014155225423446352182404268387235879908673197535803905352664165785411254412399940051998259858134717718599063899720153622831926860047302648471637134313390943849176502686999803939048948763174951148114908545429319712835237948997366149199680327432064713287035858536310074387490165759221405401618952573261927772492147394657444174825767770977692386383657651910190439051306628724161854729723920172452867313755116730829052995024461598650525235384581376097055989495320575890840331685870471964579190469217476041206597247104418948312863403162324683959976164293052214394565610041462187451745522182040608190345790776418527514882889880137316846465180708984760170692393236370418958327301424789444069533026390144405959615983830522743843443779534347342893787136700996040461993491934038803874060274441920395992628301516628101100355776002340373541836849393027278862433951954387922129413397048804774245733176882617249175860117586490047694974737027344695550979681362780830826966458802330348285634298904216957904109851518133029404930893997891218945323497789636861674113853746280462600219001867613240401709327134952984749901997249750925535426120286904607484348286188142202953509907620557769993216528808699854476786729744723812600415328751830081057807463664682385412577729288536549454075544398034832105448410522351727501827082540741512303270612650483634252072607556963464266994909190072971356851234237116925204362787433349559897761332864310903439216704953797501493628745878215239755784574339703246931399675775507717476280751989648955627914193293007944143404317285946185668443902599521547118740962817045128680857696423600640846660040301284879416345932967175006215846642914881220087772813001327368872083490892806329319355264679413344539472823040050323794762869027113562654997789988853202683697388848550409161199509412016191843797250402185986489090486977077936464038588013036231775222142420748426058880560416086851687945922083822119523645871326741858070505892179298229049928354976354613395178936915776195198602648496358410166418021546519254104192056045732903941205474751107530997951662604030585901289938641698675500322749400235804592503943722190355217153464665756877309778886618662615106289974582420304137080199112376425212210955106333070216102991646641968355326916218180797660806172130658199911800821134930433039545672778188510791107910320831573344664036622794586541793026271087704565913484706187163422263768967104256955545449625180528978266702563356769073181229854022873397473884010844251672905205311980435760611467829778353012267872182295012801912389608812867147853440648059419733938606254723984341660873609323896688740315474492166662565604967496387515028743115566982289918575024407712222368476955394764680181928780977312452680044984548199151980759518676938303021185553667691031182489652847928187856010210360907774071303731070740256797926762231210195456785403431625014612811557572142098240759882466070519496795768065501074687861200265473023130098772631091407824358719449740583848678805440412262666989859953192796529250811901085569020862042317806837220939046626153311916543457362551915490381603060309312282423364528737278065736732572845171720346751039364847551624800163171090711667722061998799995715789050529431848198262891868393652638166578199629573842274407329506224231524316312979852173952941523920268325853960863404243889832269122952227488306974328880849362182655407737546036998671907312507326622308416661461834057007741238954037209831222291231726508398361128102840873670554542821740395094754168547112608909108832012268856783019742994438873054907453494055956137838330033965567387853911495840078511091197683854306838620743760294464965727808002086633708964775065671779383160723212614353623792423889508985335796807292570591838861659689906975270474215480622397240366206134600110558994634377869116333685844368088783758208789432970833314446524646241139989644131939827506306934763853304814140065889232790051752746208697746418561500397263352881386607033226883881404575883029269428223730887011638254865626840174942210302447782776096586110223068316669582945671406282790923555645581655852360786245056018393887666312542012306667144371387817101035450220127627908513737203482036614792842056193915636500241110662564490153228972200750892376598130346590735662782092813846562210467588429877703550244446671093990272482818044586849595001198865055164098944428187387342134618052945688643978636418734534853920165118118043736580659882720523335213546684639893852619415282671757100746724287029819501534023493574876940447136051321361556063073635179445463067947038668101926710217117593010819087261026135370294728734231930191211787066175896711799481808404457690311773872574889989464930034773907930734527843425631261200364406000990956696332101364480750982987538347797957558093184621378128056730164992328062307328166156856790478760342510030081662880468302415396646862311105432849656413596279129940525845075238429203651159797517426023608435127256608079530109631159637509350937200001951607849721168151440751724488175222380350430298765800759250762804466781536586435999817189900531076253116659643888834475745072452378320639661127672920063596334819788317078568174338032865431215608706507827151089777399149997842931227570603410168588807853945301006146752304169059714945996020543275949074828891295297287684028922405691168004841398623954300123034233995116656640496020036594034644988477360332037590449122355785333516411590618377029077028560633604501767826210082698106404901299251611297919042733277940093943231035944467270103168562050745862038262816516290514151945317587005495620188966039202848727849837881790854840924263414200426427643050751235733397391879396267246605004047914418850497878944174343331556779289371475958186358361001541867132093269310711068690299285099855932672257279586976719752324545366826068233759654882588884098817969340739849634621693158325841206521714642636627508510921564618146468631626782070464734760257665102079478123072357066547933722602744007647861196986234638651168113336732969625906469647986173634159753577818959418885200005233851467056774699726334944520589033518566624639064907630662991288433226146965101077918623458855280239455336777936702595231303000407231047869615655869878826262386877528279776656472831294163174165200664791738448037289217320313243785799132114836971553490602805367542542689585891115287980590208625407648043575891600337347570827039623995597271799149781887850537459285684313310057404053033940205471553983855341916038150106335769960375135318685191323209771379781636154343019477703046301438384505436655375829863055860202576582844106295091017085329132626158254788136784930878380621954975598842191883332056395947941199606828237619048414705945361147621492706171965877914390718905106074362395659737075509787110478221002975315717411718205893706335492432067011802627200706347211075569838542389182882299558767421223790817932011828974507056730707424501312044922586778435132158121042878772321284894600782836770678597269694782713261459160853075357457674380919657878115393492172416719916683574083429051025782298313849825927713995412218644688165974295837798613332397579601027904989139107645720222156706440375387163448821138215178592608076117643833661974253464282277643453321507975845865859690153852431756355863058072351197184716485487004568405483204204267876135865496697244568085998666031085603390615842094591860348387318256994505935150572663533508615975308763801698572373264451586393182862349808179203295212628886142727095075183692284019196980691936570368591323928658438946888293299392619176937081072057812855438224819949919005108317187881927138675481292402607345845850695023247415424878459970969369244346057123244046339653190306069267164298890898450752685650987356543896064703258431485025659524353699353202590358387887999361662971645753047106196207515164891332833647245417102209087925428984475447022601988656525604088574394344369899347674778198180057521463780504210633401798655825000099498623289573255262450085638675338460082190025683254519788097972109113416645462917768511976754992666578143105829684628531007883162652906818742325414841343457311280571873576792633377449064670792514502869832266856468158564604660783711539239062512488272059639772323952680635032069956853342478009632544213817175060109434525978384745240239916273571077660606928984014512914639304222786851020009231946282232088054252996656298174936659750990341832634635897139281855895700989249227302202619206692429982285612526433325796457368357552638972152609654916822300706139694220076926362891677040559618216355438120298804461668368121769220466832584556632870836097819902276025618273614016315549792755642117111386636448725452827675782796863899941806705410505493449576701403714065175978604262770395915810411625906510976369951881498567253755361635116902495633645614996434012468226048668168869871178715345431023281856172398867121863539372470937044224840423379017449778412214979689591046652998240417944222536253265561667600016229687779772940354370248549153433114368229215295797496863982860578997945130708210325041114349209217882919033971821902940417099486006932179026450167957525425613491315506851489985831405314374876544853150042105538359513219450064959666962493022875730517539991090147894564759760862387093801945036608417314725995956650180833968054601181943226204974132053068526702359268005542322423848274003938971468386125339532776572981696179215476254662460900438320164903871909505710466109475965287592731457683859284562315456939332977993063793105284146852500950253613060291188130802565980482155391828289565434812403765728610757420233410789399481060227508803216480747917685820851643386403976580421149481307508343941464520081844123054142350060882610653381813882453548370512954227656000876279943606588378232319053511470560161921381534395051343610977775945926448361632906723825544480089205801800011897804269322231810322315054868915174531144757317006433039112120245797156373207261353603965972885169250859241936558797358397819609581729387497562923673141941224811930326743184531348204926453181345012591116881790982042860853924257823686256299130247060860982609646117285048472408947592641906188233378921056636561806674232525613631288528467476595395019355575369263952635592893398880491445160393115229363701234241510639528278347810918991433827882869929602836505309895287202814421654132112280221580712038411863162220055908512222031869239463270881030135487402035478196865377401944089490922509598561522321499459550632438204624133079307458989720314419628467551172748613013048423514216932972051288474072394411036004346136167550756149715986227542901021389723822117890096389712776554696781960610204425360688322537145928017726354662441638584411124992283575500647831208767712682419832698334244949692371944800090508249914086012132131082250006802789907713453958819924302893004705458528219997298760291247520189701493975799083732214280898423780692768234120923283674162978974951774417549412768943955895544839131922234084855942371092783671888118672325440527988225574663878744938834910202431568279327076225642281658644694918786864908277254182410716777615294349382798925711379535140222282450841245127772526281156488104948236916399543994249063911697538342742715658723374158276360555591052928024054154664387895942285802512455591536700756870388726602779480471944828930016869539030493046059352035842561399258314626733923117744630095981505765286761827996190637967679667201279969808534038738948455822356236407342739625839083063404817276100812143717548609820035048598720122546623976380462210409588215909268579202773746428513421640364306886675526278234408690591374125824620347150182240697029569191108348399394048459464414930748030315958244322966182174373923890174744951293907485212913194041986410703989495842320694527995219240316605125289638617107819356506114188533110138325657323263293479377996531987498808355027598848566685123816241090784099064941731389988443677936751721770284545546805357917552413887920692536144277825771010265402289784724305167008573226293748965714667619292476501476477347290858807636203583486574003515478770691371650925517042625208348225161210680490183707928313343521481288991364503804950132853742764961967940242625802506518480540161724489005180817142589004768522295518993957893265377376600438724953370206299798968727980202346050146237213062465664679626647332777074546707604333837061238085897633109299553268651361525471035011586480034677310561868178069717152803399470179700283524891146400864170706098638701200329584156265956768148032209351173921361216518791646596296464045803196905058776363511077440201578164585530914645120925898421651319997300038768173174513828581257167084807229466198219446615818513660282804384453950460338062037768402605441248389631014767063210414810765096292395135365925639506385761319233843267523554225820460010127118440096006819899201477560811969937672867576510542578799747635350096917333530202453150499902929113996792344855629651070535552493667586312000300236501649323836580115814978619502866749831612010181603838334492332548949912506969333659705173872978952817298393125331924013900239160903812465127320297141713194215096961936268480838850554601567037343067339310277513583738083497111842840976010200221452166021161300805153743689566580257389245275676885308204352608909557407176293599937035410642884154364502436751901107337074468121474994285067847770978101691290568271085171187530923522960538806579104111190257871681969085153715074292219779653494168722104082372938160056910745248327776392817121471481268027016878025588857142637508447676171035571423835261441272292052719851176417706776204961507139560487702004028255881599142359408830147687454078734964500089481618080540922731588312476430293463080154360874206372440427316752849702880725276463802176745708594407547704802058413331764517532232579647976251777323262399944737565496136903556685380531148817714738506884505728320226889631726364705302880340413346600224897737181161156657752625327496654967151759100349842079936226889060194148811644028986240766649627542984309611316010720922083423736421934155479069345650365776561871088513346426348893914784938595975477650007184974891206219792692190539972887767208839894497649905226588309533868182715922096705451043182192037639121951387898846263501104146916198769119212696194231089548054964482984873764585996691958732037869436294197907536060094294058139092834510843560829148899406181836565264234562574775963446928083520510163990951181891401155567918931638312382123519619431004783795183943261451589802575669157542831639498225742032282396099490018313150900179483304643338773055753306404490571003664316186304902508922295333189527808625003022604230511369199463874857728581474309982905626870378877778277421864878090867087480433491463665465163572922641091502302832037973683680253603928832775320007202906694103638574055211393103006598944519687344677398247670116087781364868318758616370989804580927354781208796437968428355048622965262312099282215626698724213716309579131308402819460316500022879322234524082383271711832692759454932548902286816325179504988983352625612458582355779848839751304980822635492660202575727288175300569765661670231853663579009179207013890124041465149541648625287489096097730921166939954314401240805232368859552211008259296827231498864492808584641278716032202144714820251070644529141117890162770971301255378601575886822303367521863347469387459595147437387400298646421379228284621696677974265735812041196556672661760906992816395521126667318064743077923500158257157272850260196121387067509746603258734259773743952862832145071407113958571643948662817181796063368328340100357549208461885315302484587646710737095129180960921290823691375236337912511849112682299771388461712011163643201598407660291580081559312664459593434494441197620089529144154507697202989632277490179576436740762231975174294078484148190225935788318972113993183147145828268102151600679859665095567386451711777554818920116222876911762739020990078592643441656237312485974310266485050012732432601860913059400762903439579768247955260601960841747836972469541904252072173375440731994226919995643353191284387021959910836613707339458456715368871687022806472119718660918888495405385132530027947020233483406323854699313911136954554033070531074096385363047265579723309751176005931692350940888740250265013964559199302233715287206202428305350721527411503042697935307527320679863870058271579172449712714612764278830187658296785913608168057690789322398885460593739643186752847092420127296522645743942060991087896136785964799128973243134540571144690392543026070132907223994306713176205446514454803028960832495937303743110178384385814402165749685610775706964201870903471169879688368041157879658494433555079778853191297174022929738166296040945022991073741148409213142450051716195167876546446410503040928103654322799679767686668427360812170882352952323657679464286637636153136115549819787755846447396845915327247049106337911809193391167106705704634599549427077121425572448046793431072923772127521942529478997165919191890479444177188686059841121181311234604832338957818223136934846199524139434499823077454012892071616842900172462040805200415711371885910820349966747440824111805426042155607740067614928503051853074120625291563244787108348809804712392262167040165609590332307488317230840664370881619806843416798530668713722818110663180082496089071392360834362735118760907077404352196235246986445345647394155463460961321634773028165873750336030105388244739216695033820115232855446086569638915374257032121144432155810630958072454345548863289291583707706053361301206073137086257783882554663977159968352535516548789842661747242056664588171248315969348497324587730314917750404079334095515857658189806849222781653391912724026494466711425822156314146081470011649364596540554880979883295201680806620848828042043889263358478423744142153612189451463512983195205984463023986287845093551175240355825720340082018383033446968255071213695036160811760632627012458823173471243148735340996924890122780518815090540673176263749046440224808873729962134727013172902489836327233245788181217988593575208482330327692168368255082880560422556148291083237845566943758119542701589038345317400757971357091305143015897224395488344302485817850686117402653844391762025543551838566224865160096441253817499957117838179430739458753215302182432103001658331955533622791319110757947150694189584729624105538857371291822072185767367042874822849708075124188789848837480937698100477482671893286577716074289549081466872408867508407523598843454002750294628042125098768746275490925126813593502589901364176743240919434006269396541567302150899733134229698033267989011256449309996484662651846713928967813240663104084311008564576133721388632491334459865601442016881872479283574909753904039418049438519371894472595451640283274069601193321200444670934298350625423232476530009451934912744988964878155612730587783011321270168635058125624072053996003645643025678295958931748239089434224617889167410495163730219852542974596423917157618205310817106865389868226967074449536803686660987369718568072592634016620941823166490714341047534802440385652513928049540066372200659102525635513423581526180328513752066388442804249174086531065338838340015859411900153252671238649247514439252603894730140145178792671046604574403532425078761035550350791628463145869322877614746755774320649652406158400648227405890039365234456727701915572295484619886485089712151331506095058992328633406092402402801643418663117014555871821550516784359027492572636016533196632111156678521082553030537662407171774238400668095284721427329216790448227336867641960463438973578250583709058813666326628201630838050881976919778826821826151002997791065361615676982685830218029939938884638647870935014505359744852078550210555389576509105968280186924623660769570703133670231689528398949037363461722617070891630552515900287344784468018231747117082610648907988166454045938384362200142753454126040442084325000270748958822219700553813388528026402644032539572350593302055102726416547562509021976228816376205050627169554518391781789871442351453255639500481877708634191145878127421683150890106510566375409617337064384915681879162729329470698673470203977142100981470290231155544252224656707674115382216459314948950114018708562437384421301596819400682837916363595354007030180204826312246844481983207992095187585272914578273212937351460183021536222731176462549664798432224839902475951860700811388848421248662707193105835703060124921721265951999286341351436385813684597515222128292339540941565257255138331947605847974442191752221663291026542889890796811620786942269495234341154855775698032699548707280122881882193121695307546022300931934908303802167250004245670251528601057194833494825496376977826561801765644217746398291995824647870792730104801485182877345022583233691203061850488690284319496714336928196127229430009919617657186592032854622356614023277473411393553301731520454911349542241605868835800729607037414399017304784041178093538707375163242458540770633295259610766152770706193734135927248208872014100732624194556065437049877169583801952131707397840151478144756616691927280348327491901473161894293462127450171760143445347376589847584083960872288721128331124961664992367177007837924657036674585507168746903001288938208545456563441045878441019410204864825623019905286115006676724388250412801352510049963244269034289707951056023343818471992864170286818564746109912982052284583794117508333927691526122480740045351799325507783695047163722069382142713876013504544727209536404518615995025854476661890301687098750103415439230682932322508855241379671883802344821346766986075621628887800145404097276443876510568285814753863274696225009730523450363313434395597779918399887453430627146371208961084608930585469677233589420037636358743198914418226046109679416750233373127638987646646201995119473425860254832261252991421953203220547103574317108998431009581425709609603188333791759037970051106786455385883792125623092147879362183766226845250974555278666538179898612467818038967119196316181357791735189423145409520854473226870993410311449022919713830812780243913938610286317191295438586178050623827641036708589753483479266661128774844684200656122507265075095449070767274608470464466144791080682977055958460397928783134645754425127631385130623746658043837823582213241671085427362298361292575904613152286131406803217580548101777219830709101111963973050137195161242572834405769186126959656525909086863966467192778222534153320565941451629237038055976982961179667910333584221450790516310558560765191411105820420514037296689424765578845104367129182108597031123898048556743907450739585544578981986716658601400854301983042159887682813406592099390199214402071561227303064380809824768984102055428481241537263503325352612416225734014413070871744958510020251919396525239748192745215418570092497979056757230558110863342376694306204000978173560516409652202376097822929075151529890338283956956120850559830720040456270739827737803489141541903053208228144903745644478085981813730450082451440335249438771996121099765322177266516709783746488187676556982022188575434144972716127860516320049124502980114626869060526678459262862307811774026782728391543074164450598615824440697349138980830906530198743869308691776018236817682187342900055998757238915922930599844031201386195081242314713393688037582505788797382550901264574852227304449770646199506229743134021286380991628038219802657784338239869862095869883749459180858874168652423099495330732560590062411915327374856180968707014888394554551039838861086784931026156596109867679930709034798118931234349599083880101091676228093695191365944802527796891810960141294071363353147207100458678064346569157721503691099440914332279419908480906687135332525119246309168171337847419752901342247006393929532222431355289498393925836866603765140605924427589811532251769313213890694708319129560722555057225665078807319852203051060221212186030691081636134942908978630543202307944251129893021549817506199667461637642552420185177945029471702332532553802676751993602289616832203177079946110147412528824799474193231001120598164159977578033910858325070714463703233671480978780838226165173439675397072930760141425864184347704339604229210585302734013116073570344501517347624820961253150363526065754294866515055370147349419877451289236936796233770031481743638447106331195653659881174016423304572124672882903804632028493923331980600052148192607282402588404578451443062565189623180028657201671919417088359263823588250271025558784962695600955576279101955290241451214127766625031006635183599508178160182001921382086868361793951255291556649221363303757639496298022846973627970962334324072194815628148676788551929586085949724286213527512824078494127495768949760395795531823146059711409036792779962047352780535792949062554276307665153142835748572424779761140193818606019814679719928246600851322633338158191914869973855743915174448026897087364401857515253262258587936238205134464737600630841420465467640107353306229841354724852871274183275218584536829149013117384595745356445087956012876530957870465426401676908339851502572691543764854519071197938841381053793729438156872647581844568417592939344690301169763806489100696257356251833230458827527451768994837410455712700290207921423002779651374225264036321331480521638410131761826145686676265565124849308266659793643110408596103407293306033269001153761024574099843958851754360091433282330188970198138973198192789434423997499484083661258701583563399823582456945761455546488869683757134866153648306441171664610083924701257598848853786949284430267155719969184618394459677241933784592593331057972637354463581091284343863570225806202095776298306266809737961383084767520600659790241334702158570661114780810859819897599421753814835344900195217268730729821853820515070692861982859440041155024068259442836254991944928567681060753489672632494557128697653603749955798432301777368612952322569898643475115404067677221880362852306524469541749614175465987348647704707383977173643899618125772435149394483366148005876342372868583972448469797166268623988530030805634507525775913037304708984554853129732167845070318064962511794245754482726421973887596233691423968406587039132446622533309155677959709205731886379299832438715901373676302385626234840506740838693713690354006531044450794877664760030484525943512300285714343435720856721566823927243777146651986747391779522406743714655892226365493530529183880971405855850579470480305213094986889829085587535592042803171655482738411422750510348599888340886278318882500094941731906636574770596023320805906735799451173217519018831415426994625558449837740422386606056923304504995142681979967822357364025005969851107105570763068552414498076823999231162298238623013538221112123244158666490525220029520913123341094823986299774574368487812689958504957961083133688537306349388535976509966273227886428404200623387827907036461981782850216573166126552068526846059042201923724465502171515815486055417098558410170540110605643953581522731785661676344020422741336003201885200992037245497784734158649230612823030636571532411258858210649859001708640152357866905653003457340089958405117007092765304698846644991170853006752238107385608721396685402980749487033427993875869607357896304071650441702366246397570908451003115311014040151921933340947377141282626323720490831907733200311087092024202390159789812005920075880581768588925550644411552831198481348766450752601955008269660991862173072208624304727742254809372162612190292403830400601432003326233936755153467430512154880244364332074366833622925219653571134564448309077850912513961818670964479655486791121312702670725774359087396704695708400686547315917411566816863234508111447608213086770143929155557955353087348598838938062212395807482464576377148679059431288924851266373640712108230888797896378857746547716250749135851875686218507007631672677764274756577757105570575372069258573297855897920137483912267056025920860050397429546361336143920797482755801463726415662722541680394012058193501243271005654301189550066518370112575017007285736375589211913026846314509986395277302752579020361874549097228117532521664836506716313780670650704538547273729361220320575703892841821259513570783849269144244632001568221274531700865959405791932529063113985059490067722585166678289489854058033083315713609504585601507856044270876194246446856091482951943688242087179483798556634447802687184406428029440469516568514358143259217582508882930193218271905772554460062990398675129121515115914196732662183530366738836928630010216433460395294100129688747619047800658188518641362168432585089672506978067803905842184052785847124154330431722833652177893002309613153256818637279165412797185682889434060771672827203256648981943186824513764185039967082374578962745181167098905001061795215253120085776734312463137833918016459510887755679091085691375532171023596244207679913064696117750899392033231064576698621134506378226215589113969433413402926954517242706036001771959972171078645435109963122532285803269388614079520315797463914225270662033836228497608275762913663309001269457026314958937566079305382865012372461925040528243849982983332875359614266668275170110796952097829773103723046432738550995986097172597189825594390085936251286954432705140021370533748537597980671429883126997880310416658020984996402397329050133208343753313501722229939157036780907762437943883840710994350266146851815702738211484390734344013701222167081089590921478430918137228993128404489611271414134347247804784207621558985516596081657682980353822886063038238806093723075801844519849978819235897923847062477873868080606986959895573234694215529252137734224934262885338137838086961664386094552990936419385978343199327353101921883595762008805414782485438584246144118731634569142618669497421379415877534267819794804390125496840647410004146604109477209626195275380453337797450710580268242421630641147031813255880059425865617120753912713717864406624825210918638701742138666850064024082154207771140211329896846832667388983522829071604138735918842375005884618576351152911191993620924067336490498581264625392442317393381635410207226738763302489960570580005399008707481278579184347072589559293791657308677831040217606076425393678947785227541270383050863205772482313696440308109784074116345718095477451929506776552274427198508647415911917364900335762633639614558169457394800912340846463612345024815961530171237834270828818070733782773729867600684712855665433854178582782047038459062187246860137555903346998698355134208869023295640464943240848768348067466521550576510301928953471409314307673467823153456844607490751545985324159429372562269759806990079390226302869784628368309388441868780468253495603262318386209624730276573506662429179296789451685589852139162181043818847948999164110907857877080032964948313599456532941886592210396167128354281305242184498408487970773296052604640169695633647543151638804411479113458292334592140460423174761026164188570490920114482357696313477785649037613989084354895344422979212184264923903221041252777383309433250165955184716952059295774566496394032170471983068941459426152925564886106507656904875150031361971953102683733716532157206940850833557465593664512296618436354877491913128422078143224856290969488311194374067370516545289297873931243895460708574332002303525045409858450030142822924467813320721870072714650065659514394133922364590719772060072021718932307077751821311283078876386895946615555096003151875763469052648003803126312572568841663104508879291983797816197820589956526984219087257271469359736113963285653057599929081556142830701078938018975862060192757696014929230376851269159560209458299133798852969041417747083294605562111046045042126101137128126528817725069723316543038779471927830855514890967037365179555626356615000267255820479173996924990425355528211718631569427585305334582753318280282234443632302258182106659771056444125233145201151498012895844941134945522759304902344321258650211271829914600581599793559898312476288603488302029626062068634502274455462574454383595654815765374772277862317677381057091026376174827868973430569667402534984619366665139866851665583304647878978099253566348675124974632706627788778906223718108608690759567675094961099882724894269241597566900444480403367497698573479769886520233729350881478585081068166087524525163177515174524144584513107799997241045681533086014918594227909476792150669839447676925135301787157115922964859206884113023886213525748589970378300882086817066740981686264457324552102411502808619491467813803081322534258549485249690314720970681479678097673130572123960512828957469569364735155167763479830083468906844956310538585558817540602182686184442284106295068547097242159098836089698394149039585502317910667987994281731974824466691779517852524776728567425691200837757838296256519788325380510875961008018113874690732798044919333917212836871457956974339611806729526103792977239207267768142445195073665634275821549796890043966665275593188463340838373732476557422035258733372090833184179420618861256646746967773063843088682900735712226927400198133427080148800825011427823839492698504398939540792375539840654807443590320721228354141972409477367001036679755388264684059204132879655610630066594232381395431610030412986525861269234466793853331000989788747046174636376510680061763173012246383285998469967403617579694765686067983702368653265777058628740656145001731190159752061727955495748881872240539541260420981605623276347445216801983872791885718497768681603391754481576626630835510004632325445021563351204102395091092353750494088760818755076326611256354134238805355670518858041820002062092387814210323214447829197092393211948420305027410720346084701075073655447925073392631472971639292032850590114148323579990911483508813280576387324742586681732011815188597190008534412043388575850176684675404718798244297662832803142709569744064175386383784397884458857796750800246117857740988533385991829811485988239366953942078942938309218412754128389462236977169010906836726416664102438588817667153581411402468484409882300764923441858453994925047930966884478097397725002047301078672194976639861748890384797753885083712472731387168756910650367512313791869069731285885866255595755951592912917322058898381450288791695048512178068418440175704185113538555203031688649304019257386692176409174813431782906525660891764842617162001435393447577272139131848867132801729763688554085240399563572622954249606063775515047782194602915149589575867992066072054198364361218839838572209362823531137896983846621882839328238982037119415100319200201522178189886701356963711145432466250672309490675355055174625013018496012549340761712411799123751637773832132540790611534382420483614507421086875978494526257697254213345788055965224630747225899521207161869174441003688231565728844210114661353370586862387363441851532399452542871190317362588638676065245836853076502329784362577296185994991416587072080350360084900602915707258411548299394374070962212269153961623579370502731129869230054407278853763001422442390028120537480990297970852908000355566631575664686675853553291761189908683012755508051148802487636654017454410158862733533846102582261882894530279519492763538357150038181573145430124651304555202177255700103112720063575443380025141070816861956779612466572168221390458456453197350276287234068351439476686008303622117364020468884806302024095564402256602357180969124301103214216078591056281876584414864618351259433367405754769119205791593987464821401685925764655861049207843931882075569316876095733760397355239635905428929801690747016259008293451882990323049845517682947722606219059177669637183764662983785990602755741355981701599706722229943325824128181580230617885409366438664405488237625726245078022221618898514657617280100895266375185195554516557338272450456802563769040940869960547016745586412436448089455459328397516126005167241706848445789422492487897093573673109295286707291023656211923115558412586917232077263333922266543214006855355205897881065530071019907279884455869925609643234455747188636669451156876971141896612304984316674906362633684697400211601907167865147866208620453558542525005350173175755944501481724432702422161030046512863419498770804753522183286727787149089891054615562387114995900592766371447613051091953790455832599389245555476331494808189448766365778152466257362491148672004819663265613573101388043872298414732100697983956149873414508383617816998914367468053849288842619914010644442414346793562643509614360592621003449449774500696466452111817870105235790411065889879886097310627695351649194641141818846423429738649179520448473761230455825295409264165268234342187125841941910185581465816718115116664705732775812365837672517828148003172304304880036579340922820036293450041881657295516640121949679427912505574115956324709869384977170700550194630960461111577309593345248361777584265076321592683854256521153198851653607658622986916841579224731567725273971753188603503656745796160689793944571520365286298143906746451200686491149953232803990605439933485639073499103126817182095360413332992109638258937873522519012832604887740499778337908599513624472296338829760678443400940135867193176530649875397761593036996293790385375041956697626450336530215374459525000710203912828750404120993106239907877144661027836144333713955970511500701727721883494885172131711753924761728706409416233706556922752388183383215416728723743862780393081308736160583122014843304325981729865518437713215217359831134732054475556339114535024510807648323788250092593513655607749555593048245099155707157804570067414552889491833689285168402964098212996377391669274306298708535122204420128899023862962828377446664571698721468080629109960505348569694634958129024922613515663970672260132044389650091037346480703116488941304902563402452864293090116805654965103112444982621075940542516916866905178307011705060807667620693141504242304909155503943617953804215299950455933510652239562039767212611201187427675062455684341981053587953516347118378628604315267161353288258842996528277507611013914041009768928794829886003007225380496460132450383051359134230938741331085249560149988159317251085776001983373998150385871059856391714039002860231594998123464619748300867398101931925647227395788124578441197358163534274301702258884902813170840767030802666722020898996047908134355824474134986332833310736322329880582004221840535099030273505997656887662414500591159476440400661453552902554316514611221146678110044772136227236275276272458234980166454572836340760875889839332317470519541522862084935038835415776948725934997595071349402228944680051400090761098419052925871948851897495896943323539889854227704092052871329692083475368080490400060861787612097826606715410830825285722724531324871832847240875896798088501503774281368868922825397538422554056882559865261094910924575402918708846509795629453009780089747012036127340665015872042960720799701907320899269145046265155409691767210649445034595185191257531459687027530487142676319575393675320231111266788254737343217927786258795165547791899340423380487551963330730263262522478869160175249556922691497446695423753397227930314687398661232821265458213245595386790316146529578171816052940473075451850970827907618793919677161950697652624045030400194686493119659073375274645250017369879431256957444150339172018298495544841648047196520702853605725394358725905138528968415478339111919000758322114761958827100055709451322356780637585617236361206640858229475742829617060935798862719350340372006844451774696114201939762525802833244056371325913957781278522913382726576090715767721850854341045008935552934964935678853666628504707603878121320584840825603107946577492922671682691320691135462246878735845783751927965982035036666554105843458679627831018555932977279106617568821777585224868167918010762759300092641241882839499567245436124877291929334557178684786693978615043990752497828928662379514005090612116933147004370562171735059204670615346915481115789709153323284795060626847548702630685662507127471257395851560008009337230739274906465367170738038283057106619637688870947151373636291976272499723920519573305389992998988589069633169549491044144771441740852496382802211454188788055112807958380739722901228138516835598076559439526793099510064494142101486568212316769083066097583820702727595701955702052052604222677268819673049582075756675526320460505204699622825183642410871295000140946633209133593648895435784439745927587006090384416314341996310050106084599698958555920771274697799141192002866319488174059183962995299347165204871398369611058470965976934304408501725676982528868380598922415421128270091822528347015660487296806365498301551792154197884823533352945631203626130377025048237277192055523745521416615233567127255621656879555067464151906788591586499690392560111668147077643716543896761945784812584042862807056521990138854685636762597709170112943457546355704165829924028835545265787923521526712894620255266788314413265627818609429417640394203166384550991819784385170931637896754679880768708913241679919513426015543688864325083945003140573033925836768081476592638066800143567740881574474160636669891083581150880461699208795860708515737790985613605849857907481697229074924647669605102861053102208292364350750283269802148212143610405945966685122530787831451869100693943601509626841118759353174311563158011239747310088647586821108631412192767773992746366886585601908903958639252270542464178196750431958032367047883249659778804416508113643334761203884672381534533932525900032477075897838583110085227840776425194799887710409459986927082598194739323362236122183782755661541474487675630646815620282321477034585002145861395224734253779298969957196088975842187483567145740723956560126762202905337185198416608363622771516567729179452269415683580588288118485329262777268043279206638565760466520140134118306326832784689403647323651361614608150427293645538130651267246071116942579354724550346178298278109405975404395583399989943696047352319432559335197186215818061474628301996298481826156420920347096860011276746026873135587791117354873132528518969106406900450072930206082438923044821302127828884964087343322667153283999023985042557984793223715503274177175600022713265818944602178369418714580757555155227064506417762907161589342394119470732690207166071932471890269991715208736767838497669957129139189985507271829910024766279478454949987541367462484215363783388878430611634725254384118960612606755376861641210509943082472146194347758142815341591199795134032400641482646783893322346946095538826485441732849778647349656628940011423432563830429129544407083786325412666282537689794910698803283963569363411825760746773937601793164812074945570332148515530761751070870928811886011082769805827826043212735969524492405429486992434387775626180912321766588237984144429702826454675036493447875236167046905742320483012090269283180369775319090425216815020879198732248412156913829054207161869475725545157783400848439555041845848731471022868784678431180141291766935115753016882724533692270485296537771701153052114150453908156940031742997152388737002990470310299626785179173574601586080189858931102786697500834096598541093228946977773729125748787259603340919550460512506457329504250644620138961980342363050593160306710100161061440973115929614812230067144714992272913655308212320092110061218507414079641424617992077709905382872955882957448156113299103260425918793999958721437902021848401510726565314203008983982921055673894834936027760131836546856379162754053026018006377787903440356507369512884233943923213780395952940373090456120369774461998172447260017464923829027370558844473048394092867030127114548682797615031003346094361950225333376180872334203446847589509628632263895579045872614276846753755541390322492004567008112993055951971787431531319741072323383368556871456604125010737185212669265385814775769741403745361756472144255873169124925718901841533271375351788831110622681243012039536044734330269981807375351714226094358428180691887372888284366232803280044555228681726624625446809968453131260185901067037994241077337102005625868411003572996244069307796907278452813580000179750593413841179025738012013298475276934847022749487488819326473762632261916674138060372101702167106154537684918363426959606204775797658151461450203960485904923051492718584132196122773107909375623111424636648170338133459290790438313233702277472854843130763859462570714194482561796892496619969306780410955521980157486723373717412848446745234938323929974989260077387741527567993776916810400562737286466474787424235903103071430480296436367388763763103824366527048488690222230772549653677027076441271072801935899391939959173926966971587405924698019011548823331455622264173554908741900854967245795844351083958580752481621117986406626853163788287992925539989601157324312702039895030054938443663464690352466333319529826489409107069159330771682005185550439619577278624268595271088993290580788052592354651306165959715745670862491603544719561734928974108481519901824311251656701740725650877614919264963678899403038315184468577756055693366661297234862633369424409137537765712308934909028584933635950624962164738627568063566092656415376636181714200408075972107085303208197631221486053289243578157851296171060796194524898044783672630607437565601910784300342565618085947940079306273736152245234003573957729099561993780405812817734008514508489158431208581452378036808451491746683317810924702535067878105811645840202957397003578593103598841207120106725470671063145324292205263768047893495427730053295343098876746015458648411829796928986465022260838330035162604025952636239478556451975337544578928084058356268869435805523668381280870543050176932366734399906099969054050776738835749632136298659970395172670827278873188690853309207587577911453031748395892988226518816553710897803436505440683607114430006366328268809256246046563744173258536109390133991201996269724162607840032519143682124999688955467400951266481222284125185202371946149771403467537259415575635272753644268481823428370195660700438024414117035424888009407470106678878096800384895980766187325136087015860798543950938946208820763110966976889880247382508974455619426377736892503724885951081765013604914976415044891026304948731556144605773089261805211485723854842449359153928860428303398766562172890937353067914051535831883367728791378395131696020550873922104588559038750803790142522058294934835751101836425314202434166889345253863515476268318891669769419624395480960342400594550440654944702993563422221247472868801686930399310200300635392061166652184491581085237424149545568253482400893643641940018777554513880996754002748008946979638939162942009294481160004044382843296790367050674006906539240085438059509154038397904197128654724979660049934604375695939780576189434565724994162804979460232444448441219158736627379309688589359092245003861664936499421967453288907255036136684540049099373636394945169394910252566886282187211318418826601160318271113662091778320241790274134343396302198121167284993506001715574914157733436316598294948184494913819178136255031512016366411845609491079125598528414830800632748447974137612958682892583914531675721307443481582304400298169174836256756927469421658958631469734593276291655919198859172586248817863718523975030887132914986046584984117322986381464511606148732148047261096671558189916311852904779165123528205418507581434047585193266786496476378806052930757969469907682464871243654859896642754094685914608003758904439969637997097660974541758297597400742180071552564551263976417491258655400088820125555077220000034255565917506163362057271906984829838941308744563224606195423901071677520669554519482968390747015176608542465234336169263214050165335860358667798272211894098120806318285080753127189940329321407381277676001923989768904332018605843761594260194158873169737871149474835626176193580563363575153490074829721860723754006069606278700410079945628954416789757835262454084332947976795283625965899886763255930503298021919602940061916127923999636657526088464790368368262133669491885044266462885812254353492062734779059283763928989749879709599656844871049314196627069136964609472364078732298393873851396216402560329328328180788641784272463491062869061360389295098026101456111891112230698841475217146687407726565480364747964220097410313288001768742379289578447477971838889799679347255525835304974458708539263934619411880583550199106649239767828043481619096669224567021778420056510260616041101855080243108583736846150070125186290963552803915460389579357085868974367503758944353164204286816864817298651144408220664558983214500827740177110497405725334019455225957552940946625575101022764237516829343936321493222819722319531973985586376286172068474963554485453608752916774477932660155220374126117212367036679885331062763003202958565888931025431926042933563176373642286037727614949103425138658696377421343172556709179643663924240657359668481854122356782466557974917798116878747796923602738211394266973286855855569222087241260224343920739236914371570099786063104355755528765292487002198432832185618777104296366228418188714692355131401660950717587322792136834823942614429536110391791243706171892470051064731052529035265202529674786051218715718113001629719227147289717476782390820032459460725349586181819685617848530146845023936455984288238960700150192427475395545990635988208305179572994681224502311189304827725967331596206467856809192487458183437897348233670435155010674523110833639337734831611263688025358372325509462413110814217509567322973442424014305513870124486695589007219569822326952396434630271189142558576484857651965873680982473599312788696126835023137656131739058543634177854997178839487911751201704903304248914331235952006439354501371879874350418128950078270909564691419579009914121431361834340593966975995650087101816765119573948644538106646230300566468315381146006474660651834367929989672183918683684447662120184711913304032634415604484212298070659282963616694240250171943215553278974034912747663124629783654221899399122911159752903346237616458328353405089450147886349610069040483646005902171069180915135961099850748445820489551034602711040154351995157664275620576032862394499854170261958823127676589405915473183253499257302611156628732201258727027814042350840485684469462604918691522995166810208752596822902870414122712959438723835433511654728725888630480530413732748595398806192836167216243853727806657960226905821122034795317462735317897056622272819599026711931701299743440137238747823785769524111066057358110490046071366559373925023350241592752689039538279882315156375379937191208900582607630089177656268385773715161982323729313519366298157580948614243420564432322843356601018966152329070966574050667584170697908749468527014597121139740060752534451891878812852480557933082429998459466959908432507417743956526041313773909801342863908295493270524398354493790571273124045491137217830494195558829834600836447667109858179610926666905262393801497562909531001775693253861997825494356807550038859232274418216472286417565828955753302536643839958017452898212316113801728914406623081325458835156800060059067706246664758203533741063517687187075482672737696396343745601003014642307209600746835312994045325821851846428744898081681872081468862451693334617554453575177358888029447396237862691005197423456000005082099711373574497929807330296091668519332234813391690794581785812250987869488579851744738567192203561364235284358506857571158395831111755555337372403674524196787531844767931381643554598104034321610715670427663895667859732887435400583905131194147545127287630468821128045672880972031282765059644148556765209277202472462486845203520335528366171636759402962986636491634066517289198989962781377381277116903617695176367754748324938576849115616136673854089963537009348528523065313875555208022361805058795156126861027307804518945641595193405341559214240533915111178071004582558672153138302688876228425833604954791656548364688604610770658413942553313588940272258859554287777778740263940600677377547838079381703582724092568262303149618699836746508962098011722919171133088830596163318534416296060749584012064102275015596641876890297398400417181787109584418840660043545886271832178683168123970904672246550201630304042673637634251062261987500546244897753333792283778320783470843979119585757222827432588110041356272612447293585919616176942714723333360380894476237420561933748877066963005978579569081247879059285188786852373297564815465236457014873417782766696627510386599146589466859466188845838152972928493085511693977841949829692379068623329589834991153650213190297825395142055589742682083556016970327592237279451397736643695334809674723836082490052503643928342554849252239197572863775200413218875693344999591606716414195271982496751291203427626201960693055280586445731949932054767897257444571327045984006639948249820042250867176152326632168629097745817565133173630302589242850225358785876348345240161551381828084380489938090763960427494777942030030797104331835605570039185319384404202633299183181974110377956474212069793880565432141062167549242768013916056575579633512123800548787139957659916336916642681120106875737241258740371727036715552321511619119589729775556526966497103172828503310296629479542171440877820655718729642136010656441181775216359309629752815561897256025468098215085999353701995067738784074824050471165830683545823581156311287384703517089988169546439412111471362668313418771933430316526309189104207176742521931961310827225094733445693570321392991840748182899608635592744581081267087398966838817618703717657921507244950680752445837672718487203133303127507942396718585229639597490977935409364233073140439559739764827997505695558521672658907657175445013883764764107278933925480679072619627407185093971633907897270221383456344235632820906184001952133589849812541120150120269249412822644380444493289540420844033049368873866499739900897833781316714541525121404365655351342259920265856080098038165073420119367302482743386845804235490693273153985406185284735841037396290948136721974463843421644582903633700929349688590992974285541518357045781583138635952575098927048435504190451294714170033254718098449709816043319505511034825691530619901965239588143310901149128871064226087924983880960855829171457334645950163522752897354894041240912823957013628462026068651172652388614609533716573827587450350982422904056731782433203635967799060282649406306669062552210196221029825406320367669937465679472550587634368503389980059433054792108657140448705330399169665104210957132910630786271243396895721934274517733433250327848988991343143881211843834911342815317302180566795887358002036863299757184709862398760126908344092925140650481545057240416190591066852710786386095358335764671675901695358828119880746427929365945273694832040221768895598384897139553166534410673608965257761425595606006965987151460963732888017608563992065759381222373750912212192923297635036815965993266177058845990071689456186312308983302749156037405364367867536926196160278774897854788739583401611605249150310128373333374081298223240803536150331118350656061205843138981171910623590971541614344808388807113263723884043164372245784204943763653938088574469170663475881164094583002728830926613193352227031847274185104056419414723904560468071546706619145372350139003906827381032841812334534510705438513307414102826435474968028037802354091472439450102345958054527273128580147805316114223513765118013141028764692350947251366454732408129587840286724059962338444344189006755643488810777009032672310649606417810112509766571847055272177492301323214959332284155358509203255652919855356443600307887349412602502436727357683687575839963891654805306755147765301589487632692726460763926508041085183801376021634500528884218429889060258608998281565917967302573148256481976326443125038812602200832953004623420539371042350363506295996755873788331093379572254516639884684471276287560672415895362236936460671331005161814846882254172343003199332569091371663395533017457416684688548312767058055722964722132748576651352115857087631211946747802682743841186471336563866263094945869922317854379341911872324643172648025351455241411885244414838377735095015133282988392606276415681323878722574416626646423283868354706985033050383979758608433046110836285598165012729974020236698266765607303712776705097028341988846225134306289110315214332947372214687177088238781436407884159343336473676505347215842506360233393770506664448098814542927968917410964075644257175091549662506683885177136093478620483026972188757658280738203161909873614805777657660384748439108188433354774186104674127738800438510385255978330656521825277868583870344608892925886751970847633117942505626738415512818573309625852625017894654251846720208199802580489766179748681509682323334486036024179973667551346180463062536371873623976956577534177440527631798501147750901634708452112464098669632388061270982999265836645763323392271197820231241601021391316525956640217618043409635888291939800749450938558956370740674080405110922113796909289573767442842765756207879456356140790406682536203886120717653712917282248177062046476406260527871789724875434456314935358371766620849177985348139654793522762474082348026987936399355164098731381174429040021596470722711945933625618486862606928406685182549704437459967127243344135255071618144133674339864564549130737234674733307274131884194052113604209104999005655372241477999360035621689361933038316010129952108241317716896089442088837242011738073845983402005609423103006482872688395632681062689017693973688613784420003957582479644312893405955955953818833136635425000452491955596954512256769865750546726892133644785826660175530161247919047591100907508210428154994818732326422947838786451402561509698712085493028180893961092983017579961204441010531753030552510949970188886232530017766833676540337903666703706451200783425650492032280922154074925261721584771249725384851852543201619499416338408766119034029206735282013317615836410624431266015712125964594356922099368628532292365917871319464450396177412844032499867511745233225325577385467951858347007680856451738955210479517366400433558107445065970240783744161334416548244856798693734845664672088328173885162251048635142722847330118728293786810594170663350899084372749493458083391993176266781145168347546099245702443208287243079288039707497718459724195211585747573740014424622941659260712950194451993948282841315053704778279896624916159699746742840832866970884883068598223199124464391515371925118553507482277004522303385313980252078604736544631036818359626983268835859466794220612654515523326051670593275464334908606979491485342367426982058412435503097883346498187009724338409145815296568801394917891100517163429633017474694965036096537026736770698348863734266856885409152021164852110402610369212556473102374754807950608532693919385276343365488067635400005126538831617062694515045720471359368736945494395978928238860154157314208733857740149364531622500911284235340178099792913155431623033622558541256031525386122421071491158491921219539248019035442920114106638562317599159416887730452630316874871973945401160905170787509939242509999689294641933880667425020925078432392828931693376162472947240202630001525828449045083788909273294430833661475497348087613954540797793313461535736085493178941586866954175082243827985970474729568262394922212960784161833359614859013523721434449160140416296930727282420226296392568394327197369208563804072722787145122245587626808672333033404116929368297489842088567125404487943684087423287417602362107686609231433893058623667368538739118358660116715769236454928017975238908576693127276276202166359461733918131218320880186825983239087134927049875776138049110530947419933964977794846686457734301482757660710432322405504422164787471787711340100030522568550839963405581524724641871204385796768966069197919297413799561331208360974976193350847582501255512059761321786616651108722976148942002528453481338592771721608532308416370969873696603511339370035716374252236926290567706065952662510169904299406302502396934040586816236943467712542775667927313770933843271188258124642668239299134480872618865289247133673799345540403411522197847743207846106996757457018799000151999194852860837358238659081120508466906391161218875712163501729479811819852809345120028654119116090874450768932604894827563872556045132022967619211271183067534640293656232389141653136275958033622255991129155194936833780413679791986276673927258543474509235738250143110401921779111517537633878438213954212012552066128452823775816015613263464372941222638818896158049357951477470478492027231930656341428253924433861903381236401491551242535547008655129408112257621799098191258764164203731927619421378707558738262324599383005565560705765904163186696352346918842404595578250099483603299444353193500789485079071878094719099417287613048164770052118926448993059323222460237066671483380152577874770845979100459621519857894645288469451806302992623994463743104427342853018700374182166511666331390950320150958296812037319274544953995447504221368410159844341584398102358734757702796496980877978508194120223164083327099629537216790687492204603465765372970261904654781759678299705775025717028351132243895876707447684923105877110694239686275005834309877851657115749179098153464602939753850432842876218011106389635871544193571730138648562628693990924821586679081654880273171079281796764778840067787909925435373584813727730189080960822225573960421296979918917294310479219898365981206658921221923664498786458312083832250969387721237366593167317360266733047523973903409123909917221372950029073504232401388538436534414578316575058376894470192100083077122562338404405985441403032903773372566252836335944113920318350645789926908822946060834674068327117380155420699365839551769214218032925026201182755121584856792265062727673596840790384824679763697426915079254864761711175566543857423710447048408241933151807119754767895131053467720838647795335649607998019955156369595629364007190547389166276851869558189988003607727122179651023450247491674233769222440560982739664226539142767677151830179677859795500266960714357734344920573784457200604942008845729874580469350393001470470720301989127695167757686614267972009862911718801453835357085731419657262038199442049127210482469902934457414347455030745859444458312424247549971010936630650243982214930587971554951844152676877431065374838476428476999697615299503814743139980240041661352413790935535652803857884124497832149105698344161427883014809013404044021384401247446536696483141513769387565992107201583352266314843722182569167108154182155088726996143066524263870810207760232851517387056879916560578893489956327633819858055911721873234747558783760671732255506471861919784753984076843469388787645543486393844359683696899410916004078914527378396988350454653029396759684047349610560100595627228627382618688947766822526827678316323732337236877726221291724576020792672081790608546860828607026444182291517365967038561312693233081577384675250605267121205910982766426178910770396576608212438208753573347570579781229189007434232603565625883883480448041320214118379635419151469436140680095286046946724920193608654384671829285566407069310438943034456047071561856743753304501342657864939978016021152284419258684307529764729365563260090535034795667320353629199378868102266628852414838102020385008490983917313547725859917683091542310115576691104867331046229274833700968135177543733621491689373858608155147708535994958827752471166505473104064972040597600636122330165705171018079323413616796687296557675011760697639032174693872958256029060022121162834748089684729239850070606303237541009809293936810726802433722885300114339707408761388563459928324184466965822436342740827570729545278374291559218079730352313436969875468529160010238207334020741930818358696180613404192655545933833793718468434909919180398690116406981200404765118263974081503792680729200928999405740149927271116365570706837505962904389092825014872480918955210531277622865397440101531484010087552273129856212501463013222251808412472423027409480836333278235746825771716934693733436560018358635918336928361960435293587689873944411025708348862861756490856657697636560935923269087746224068559681375657294392862548991937673955092233924017667858340037080042561292722270716226006069434815472668903218794570160427282364662235347320235057201165940687810276191152869873555943079089970492407278478745004875834503850560877061660634969505961545002348963783222784961282558381757750916168661037569489250833391645290663407075882002021296720161513025951777713976463410007487460197946379143922548553581108638193984308317691300456097701852448845300272182871632816836965341980185140623954209381952569191107779693225485137398596401643095060923592237623031541291179568842454551314875456511303444616111617533300130842340591712149694399112286000925520570108006828178730182626126219195217592204445471945115996889342247567481549975790685447679630674953863619989188545061130307724903805088356363315786059099412676747203812139656941785074083416521955637178676375866820783560748422863381208970209610720463101754027879787974043459517832213248876700773477260731380053232788114559399266870981301392524621397998040095696754166018866008404248932919222072902659714658634064086759701195761744604439437874002736104674732301006113930479540801249648729877145527173411660230490641977832268840772993005758603095145489308299170604073925733460774088599645336817429252755112080251167417167933402254382526258922332400534316787332155482667611346117367173259038535709488080177156505984817562197036189018341112093018667026323159403252905933454648076297276678626597374851593869821826466240343098521575078472404698399341575558085313977351553356773606867785842566723009098309332264881385552566487423168494808033333712733383460860425127014362042664552233944751974086409504131112789285421325258295207441159815458178447455926766958339580089145254751812782024073350227549255724832123719552795600182117372930649687429914433867430029736323679415085777233620339980497243340868949553986055603660513023428907754672627018609800742254158686660542557218118165076952077197883933820008067715203657439041821524374760327315638317966523242738859681696250133870068870971646410204216792743934608608306640931200346208600765745420659754032971829155736643623982189447522269911165065444471684218786822700424265403267053120902042130844193729628180520292912081666109007309316711366982718406077412029638390807463095333755102465365893069001751175111611804214722951345859709452701818764393699394769658564529375096673624999851694679521899095165447433825924567471617800292292308639964054794389523659685690591885350102021782083281293630889877798607316899044716460397250345601286843930255758430879029622290714469136910435275356997516412286740113667687232444246932512347562919650526840492018984545565720397438399970836044595858320271492090904970100763708437143558651910718906747634122732806223640635538067534524448128768484047163533795870902936969265310929598708460977957667476431981072912437720622500523219219419798954831103648622306367504110576524752905356726419975271743491841780928773185505860059321968676362191514746155920165681635597185943128914813366734693563046640827601242263451234484638571248227334988298463515036445669343876196257997707198690436586958959397188459685029311374363031556236016830339333603805353530266129596032562875532639406422285427224247389404435984368477015136724667272884071528347683412172597959475000164498580929048167059735051469564566436626669746263711344651182700788802635791829143479937097903005864342145268175113257415302753535194224306143105825415390995823188144837787707580567170196015403893690754659536131279583714967770133513480903517017811265628823048653493041498708974701488896299564038409035819160000590877418027557891624329299641345397873413498591591809195199834119807830382446684826819049074277563421864311622637215250090728226054930760988563945483205561018340621022545546430548662287305969076773571480630198459825121767246397850949512020613983911021904588962030777463802745834369510681835851445191564101403387267317663756098473776228895371729436734159792547367312982852281823958546422029822014000430655391523407530589978512076492351919316697781895437787508275945765860731056014909918332096806970346457800000891110578116663854366723635961916486747480521197271167642750764112931421304577946937136469174419329783778365168788138744760566132349526007023387313553424528434653577313065140126806684554639687688445439846686282305895113589978183200503116953867567089032453761416621947854218002440852333236234177678632674400835626557772769741839124217711896511878918570500065029194126364669857489483652811959341521750331106048265189604471048907980081548257846440168052980660503989368433887107917372659277173147108935145120635505610361190585231571264625836727484747150530089905784871096733689421378017243003399453667704895443375870505030781505626773745138500892866670949135066436003919187192047537807198041705180361407194595303647797113598326210893530118218724707822700738609667038548112916719403377411317748713121106134486156101924239172785985053162114079785229592760464212339334517649579194625302858599528703138968417356471023987060854284364953789500987043496226221737680827399061056397140011478659898662552399142479720082242639410607032804949926930778221958696204689299408042406010999625619677236545844467477472409835121038054055249731051325837348411098238738227857714132831685773650547757246063644039194569328460605862773971578054849145472888742132557666261949722387891891666835654256182384365936365097992906710296319305509475484370608134118328286558589818972643063875048084001886171696009385257430301130349194818554213132562741864617288404713016150225640412456545238265769661714638080132354018009416663573574224668080260944548866697790761598543427459892346832614538295123355951906169884220559798778980458491852933025953173799016646874620783456647817541699774817922837667716957605717222229699277789671936693370868894873733021431121465745550165421597521920881814364962144898703878741829059148122238847930945010986605177025823761200789300641747357743294701982214128133751100406105744155311943604080916004810403990539222299863293154378152779632748640448235952234172978083055212457513080066749102842542255881494437272586817765745401608941761014998612325007429893242291412972801406488669778385001148105689052563086409376587986247480721591374047957180588615743088299911554265343638703970900496587726626144074545050697413185631772611335159951910150039583749224144134500270283300462458417471604797217611972255608280624624568680175649904570661667458837955937398431100249553732267029609718931748339237684330261427644036469415690574718424205137846228280168903561710138256703734518291432921208210265597011684204124381964872847100843046254961772350763704375607560453183523349996497127924912120288714285912578031891546633261665117602739200497424406588006484795230405062649501900742833837376258097219463185033477592481474780208644135257342357646974260551081810755188442458885427978864521334715231831370681105518185134173935437400007381189417242306737600085787916734926653740580690208451300563429647578109241810759915332755213715702539349262415336931669850878998691487324870358310417888730210097503366034174462554340003191532178860007568337820830544534105396760414289430026771505439880114059583413028860080341345564824645712867262894519909063255934899856723494412749540125901752746009088599740616856314006489766150983142911737599143371529931639152036596532618246407249592852038585616731815550376494258080638832145260027034763164825974153545310155712091546901903919398982350018213897439550093533748021768649782136339196293020585435537501073085157022392275771559052836602876834374984190244184109275702881005606287603298364565558174718652842442988023967033054528028529353881484106298363434326718309514475299600624568673804170386582782326643200172367379986658048378842789305298473214373932505796560009798247987147600812172249894784472296279319227600563881204285511505597801148022686083152093960225267642277464196199417844038923747171949871144080527895715997930470959683916292488001546686127037757632319263033286609017313238789404215499714397203579059129728359351365386543853148377117837105643547366315367305367412526325041074159094392486292024787595400058933643498881691820163875352922563657061681209243442828619623790286716230398370453216058338218942279732422210375187671735253291291021911833214728976813266292223312048276687223324315463958272896142911899533447618054623929389790478855540777069810305115577591707217549124773993334919474321940776703747472464621940826366066685162011227077389130616153002614499970339541661659422090773154226528117053935287061036206335801617380302866046285495147620558964292146341344807512103981302535503561584864657319286598463411414281957230435174897498342033700241180124038316798328742250460888809286531248453955200392578661890356928200580307917452953057679398496692671996765848773760604180573736360003321026047375548562328900997745641381544223343535475002394856664146831099315317110253055196869098928784718934162646656119490122498231706269191142212195532533963581038445737177801206016389174580852016566816414136710212858924021204895891426926351728732212217178126703463665804345433575627364385805663676752396259256928753076811341484692396774273143157230368985666868659826366664016840532066260606184443392616401441627354338567079201634751150611273914417957563934808718671395637880125367415501497882955590376555600158296239747340962102646754218854624665438923745777707284918759367435892122943605730415553343765925101385025237913208744433721208948846232264508974372999501871261532500902615133874119628132148417115114626489649204344370679009312194661345182897215430521699907113651713813557610975932042080556815422161388279164054988502538441521569301307640972833670131023686328309956999300253002696057383427403431258339350340971173069073195064318296386454382825630267252089333497227617772798916873034961251153939044459618517828695108407798487845852092965592614738837129043708916588218371537857805155649130760107227706223375949499446425286658338569010595354184884221614388997728635511716830000440505919565794959945374502152786748008044090023040747995369062941854113956047646852791187200525545531263460331777753902881989395056150944160045116441818156333074604260028800951598185531658304587116735989938661825161951177233274718555107444945987189958842963882497135053620952562494821614362493177856567735215101535290044962882476393304129259236990519554218004642076563765037407363259469118955707685206166824574022500485654021088141387331582986260888599759057745024185808750574417661241501028786606795187385445276976511333313195053990053600879676575154646653033259908354080016796163407684618279033725814757970786402822627873580727358089542475652914498874087320616922668739509286534736125551671793016607365347659588400812530640535496733040255946514759191109449312584003106058831830224328368287741508664399894413818758788932516222022496827573578205008021721774657467984688380071416463548613798736094911656022979693283503487628756665029923402660802119522274946226885159327910894956894934578819213768629036817034187117335153358540693023250000662692436603245842122893846174596119212507244597714529341760798500919601914363033794178181066999898898148873621686587208956264158207243343649195333552032723501179365673162104954062133249683286430853678594703269314576406892741288791877973910281670793291559438058957732458468109245830533477125530909583987987959090962756374965251019339908673601843672757559119501741545498100094452425928998025305821093986961427662547662074935137434594227440180615871979214572705332238182293161961509880112625838800583535008067133924062365845848623043164663277209886533030385561784261289969307212327709657834608173981721028407484166595764903601095570836448435370053088710955301936572666818979368399109835333888617009777350805623870748238243349771880750930712906841617080675723704762194856434815728695654955776995539197760988038199206009711329325115900088768579572501308251340747287609024307227173106358090184984706580661239136688862446691468437790606603003450974093613016054586843508476333169380881964922220932650664446422314047360359061487322162701507664727414535005823457182799983699220304540804563531739930963067380936549016367176903200966233168922465109549353016830754134695057681886433279406888889505915747999951621427709396475829272467394018301477197365587529211098124027009052594983419474891275906814588006220580505466541532591842662234149576699167807685245601459637686437166007369319454909685124938361448461791446316263509378593159012917809640149697237536519053086790803844194223494649952167448117790410138772758059494593756027940812780239523184804389324733697227385207693762249772244973598039676648782304224698876502651853362031521706038174586193990039227770576375526995341060448713666462038950348602727783232078280323923252037501678535677720668027217451915204518974732231502518167393799519671400140733611931354431785810517755731374335307993776679216766548517225151593665764188644404504682529558657139775497731584127668730280354269985235090286124885826869855897410948675831176817947639874747410523604406688548154377783474459575503328603259134500979954053534980606128641993850886933825270097757599196015886457789399786679476575352354371843235320850998768459387616515798746845659304355663250461785342315187419506076554498130050372983983689088549921604270794047516576940922067007217007485899559251793788410316061915377710468420639179460408582639909395304258933754602798580902067723810130236906321884336749780279241959329195760463322960330764634782388112750468099167037760544430941589422577664429144921816464783755397554886320084063907473923963674136012530133511921978078717908054421886134842156201097915296927706079012251800215367654041761110854664861024573175841866659752783290820191589841444602729828408321595459497755014780854156730084236873998628205841101532383895822449234377219153763942190584661366761891958106513799636215349349019729131751429490048676762639699921181624731069500223511539047228854723234574607753959799081077810713421193954030324292583365582379854605514343155201158989014203988226780921718648913930445812323703615934681907841321025542495280616835196246502377449529588468229335271008161598941255012086017152099854044957747485130505773711159888610444842381915257155801692949562801825941207774902881743133511626215413557096689625756483246919344242980791851858476395861075238171067143479360113473801484087035439153936240644949754800249352991885194725506039796942331189064352825701944089567654672127044859409088034270384890889693660407494878144045059293761770458439361523203450152826035183647278185210904850677294147116331278078866901717997188356879328222789297318479304372187277119248080974604781995324869429717226972290145860136048761642182853893323129792332723336073788037865524540473325723029060366566861159273031406741297081726802587154041321243840889040164733014161963433783825653863401969900830659501870334271610125019656418382765771940194714077068108686862733312675169931598323220285187466747310770317038692615948666879676812775426637210823439130092893269024892324925007764181641400720122868891438602936729709017149848085861003622400319030166806068236482501164243087217723915422866611179085435453945142995214887730374765661870748674429367733381013048392258267517008966330969920677955406791002219792738853279371291784689333033802665420745376159854777854408264657068287188233017276091241831675456644039906621913907656890648931133282409751133129766335255761461398729872041394214844116308352405714184676456767638011553262733423474781558124696475043225458972918292146206919650254910658911366332008688899660317358701783587656248827650452844905114645900295825770394510252296278456939148212947302401578278878717445287159437001991461977053914435239227492680495014524191829777513285523539262121837274437579901517260340572580615934597661449227173081641749391111575433982972530256050030389272717838329430272007967037994743897846572539851348635172859630808318478464208875258815513324803486858972657106336898150408677332470991870719108796997678637858861243221587713163282396043001134261093904152381424328231347162407942339895929153048759660154118712232452457516948757879943164003914999869590356197436331294042110862154161408046466950770683934364058394834909689811351710363651767903729648778337223236815074840894265591029274261931605756818493063461348151297467824784079421585392583676588896492715069588842164418921623194257113462344766320317370503026514937713696387363000661613263172899626973984090722156084314210960043651359320479762059063391388335956025492595902274948077264958748127859524439042286071197578614990032619454210786322329311898657997571513141865403563718567924821121577621838440914924248173036130093439659932710506121408839442929138191381165245888922821749481218176033995446139879161857457855966241811814566626242351967073005615802791442447180237014235033965993125022742333013213196906755216130430079054623986360530161506712005000782004450990645507389234688858876999635909865295588126829930174887223229828223940162282711345564568813981374973624011050013598899670413403602682158897166956374408972301476443422397513157931329958565434965020443171174869796347777907605835986598115975624235611535381896081119641003159323281121989563966707459870149948782268905943831479054888216000899373224625094599659334630328711646286525577786845021904671596557558650805552620781045202350622740007463123526407085888646070436974152396591569167065906333537624639206153305222620739273558758718084359654663613540811722619876796060550215907984864352200296759428200718265364918723746930002689153290974281070701818192027574669373384501097902900326222783973854976779903431615419322437909133692193729869144245837636487511592392081289385414449916812613767244679590038555909126098688090367317245919467255916472169837191004253570721796991423382755357681925508088320411330990536093788896047927487187355986676821245539205982514896913204942444362761640159530514785593020606269357644262325824474139448309434977062848322083806418974030266444798961161876914333440967721833894786860843681188888999729552011125833069937572906773507108937752471287422513289630392309074384235010916855545959381159566106273226972969253438996684803789945149026149058610870786199233928919785845937756712497137500823720175740852419953024636683132267024430581723011762432553172214041684108836059750810918070573693648651524311151339811687032951933628017354472067858099087279116233348004082486558372031808948607871611303606853448536889758269091502988835262455653741921253060506627610551585907795957105392713244834729441476245905839086698735937210541481793150384573980987800215186868258652473066320904288643390075037722596135584140251910103617632856987514343977724287656829444169186079629881649232514372877673961351921729262675226091124466886498401968363188001213563997359249798041200276811426973579759031647637732759888043360984860443767672201070408511370146702304613489605246614539301545052717742706485577455080855079556863590680020872519077365381283261555884628227302260562079619981345349356457673683630667258507720064730631361526478152606744411409222796382420847671777753431562747691546965486893663253230496756718300573737101572545506742534252189076050832530680482704185479460945484466855467795192357115575712211271808045768670466067533656404453858578243219882084401442833022265327789957289158661527008141870172224470768800049801088778894197434834467758983223811623543536812237979745102217855922268140079297643736344769103361048883174950392143768672759559580910321710407819056352670913456240208556912035948874473859734654324616768638692358285872521080092622738309516217902758707627792712208935235182339897525279736140541373179289750876407501733162878687354644113478061085587607765866410662726067032307167371296358433675850698359341313358761359937936720656684529912118930436739921755113923092102128080507786756175856076632666410145758660456415279543781869469833419747459761285831659932958876486577922166764010472707793734459874654361597001613968284853735816267331802692369198252003612890546942898498269567601583993352478486167552032338409450134916561241830111227851556616098575339640993782633839419557993826595621556735122785165637417523289830686444468154334518817571842177511103315395029031096973057201139379818023946462108194411504772052388949622070200237129174478147587741429680993251954640056292757096651819908312441129108144187004951146966855591113766559363490225147954827350126411019463702908326421709784632116644998853893260345727512452001799029333713998549571238637474920754292241024998167729046716869898121798444829021735179591215834597264986900904254077154190850470507567523896177624910400123962492679589007971771852386685472268820784886514341513256183516618829787974656967371955181848881236296165447945004727800329478756399532268676962679425865574186527184014275192684743696333753980140245931478230328550338382878379017120286332541982506964593465835304760390949504086347027086521106935087817765856575248761430168470982838395453110249826681537407324709235527227283218196782449129124377003825397275152911108787163284570906498797090795158888895869443252095913905852568938765360280896377678882540950946729425064048979652599790877447511754927432261151495858226961558252278339675420954890667633959708326486022698453749678086129616263230965381566029019581140168885835237325802627401947634310219257633176584660225268285321550711907039496677229926462885250938722290963770985563372018475539298109627741601627883189644044447606564318960117246380616645166819792708288556579444501612353440475357230803906066676080535132841321644671269922615399059066032949113713991749715870964838979117744868233357057426803278629712051692599287972628446303240883751712686715052213932989038404267493628526193238201654341765960303518596168614846892652309559342246065276066140199545526326845107977663119507321619479832572105016335100446750454762425773621390921334035897805902535844901046273246599131619716135010824310417952419482179636527488312863975146754761911405551975480938691920620696198938755045079228547474432264373049340705278098123575162774452276841001224531226131289557729815972956076591343607219540414362690069335664865539037997705207355639452908004240634213843488479802158542401687058165056372665037935843841043403095896829728209479838178973519540872910018309472465842978891196451143126487484468538297408319668445548929935585445182396014464906895894648477948536279021555998564922868521866096090538807468770328178123333275845702075349192709215304614551232945124905613832352883322647184614666815703124534740620059099078365147149758294176486616619066050091558142094849129739372774861877266180575251337017982798505695636077897755344774336392531790230403895000784986070764834782982913813701242622778564159777531093939426366760599527838235424696942140933541886107758132982182802297400271202175248930076389367615801195685198848945426173385147592697953633538038537721699974833462823136293582078470961653516608670302355096542610913909474041222955130938769404112343929570748093894812418889707841289664969969928986498563836845234270442709579898449894748768052393340787919184881714077485901915464817891354587694635465771159522754264045126137973124029671370548575398948563379133390722611276146350622576662167331864212027908867921885627293615362150079380563961950465392556741235459184239314460490604711152449493399493578763821949552942360911347201681589045305758012505449965530551312922384026023415396510760177838105383441838535456301183270498272237445183394715405064923958442787355316759135642074353360500601657759420882168277896352018427913669551993634432606975857880033377273220327297939529185492379626841483515402773682743040243794226350219361553805276815835285646401628868877140823970676563094889859298328089563082601491939774019144190336508813274552552732354310190963612898376096518484623999031420960201919371191486541406029762183375420705172453695896013339724039801757932575077267837731753925125234816004459325110163376608307452584808833701006772273815018057586423198544952417318602253167551784296504117266221554557409382110168152816438527662077021639924256057464511445603120599424420768990844331245297595048496704039577216868839685524771008325049689901302636363442900608061462308286455931964140283609710140033883712775024079857624616842798318116013408306285965956860414655284646886884200339007107811774718429156259412773713363717492022910761644633404182172521600877223287424654731458220563708676580788503010559367351648144412194440803908796739817657362934976049175918458848485106037590896228626096842471955328769791744608798501624202075391343424328728012818501231380410114264900734391636657996430410029201070778017176435140247142592136912696256902910285991075558578865045044663607114963977690598960770697328364961971134663411464530484555141815708155281505199520534049924162979522255614826607124206744781018167336218444370991606918181708133693100695842066358528286539319972758612868726116324791233519933237888887830170334862979053315464324583102632223596626012123867134989752030325383482207104561135259339859102292933685679489870265458059006337156178823498756088422959568788422138578632054713846997898196925576358956309462808176157476186552079190557241944697516912294725324873867967538777220648446323045072037441466668765263952018409636272557843132036025716910731719117681012153049698146967195775055977928495565136996520849092716055567986846928066771596328931183070242123011089068028601059999669750276020287186610388633526236167759241905679873037606924698125290435701301103551205418072927375561473248323409584273145130407986470545559568734811808316755342067848529401058689485338360288143697557275536857119416019983314039602581704488561885494372396175819666796428513921821440345585155093939974361725139902877439816833996865632962727531999487702443952182285473540512806129828527554782857542145383110936107332616387436109009693086134430408952435947283727757270075959237541621923386052099294003561518073758323934949688786265684111051987116235251144041224319998898607814867307135144179559814690873020672820561946548393222014256779625977462370463142653008808743402360617051730108140847184609434968316936904931817857095147528302298369856949212992747707553112076904954980747309541429901026475016201648423985525227257264353698059495524361332664926158702211345071342090686840776011114039541070744754928715330572134672070925762603232218280567882360767596441596107150861055540751621375611450364713106089363057521289464687816061027432360790078039842017008326740948957357272876773287913923179594953807632174167961212610582781242186020056337999874608768000352369898074603476916107062458896534588986555665185469447792708862848213497464120474838197688342675257524070048682330130068357053411214227675940268657459475282861006281938932715274281415476155110216588614130836391480483347690913472492830679969672200232463741701675215308734052687062899225015764676106428024922416661902724898631618975095394463675066959648719933092663811871638410657543642738050353191628707924779533171597582627034093586610144453550045352801516388652712283324579761631988211049607317434057584392402649133517391608829892465195737743270707908044322808980684411160361136483049442440964917959989822894676133561082434181083871842872075768292632024470038344033282172726791888718929791429980498570623243481287250047091453535422248857734060896093449657638323308785789122436742457834508501248484718071918202298847381367726166750349282533296269657908928834340690117227599554357250485297058020052919832997555712147815199005744471220507536537565665027170458152656305017733126928576189933283690532512790527668414205717002298292793540320294069300023232071064580469038574875112804865327105737459180118478684045639668400705746357834068843257657899409100717271228602358441809989708661983520310705982826506464080849359756911519846547272567899041227466339178143453391339826684853112219541727993392427364947872239742164548092803691903567133025808847316329416848860562136788457881061279078997071192644252097913076851318130252294926375895011862896528119797311099464410570330166061468302950224267957999177772865747327449042067416056125027122216195364034856345030665029311099202345764583360911736889530850132756054363659019106117766339566571976647840820856203106876647488679161634137786005955827958287705238387411364637510107538785068270688597158736875125616867470462691099814199945853261827281505663967423417602237343966777562910600287481801242485889280852619892100836297261290372614368280236300612221096476567173817700211525802625381775371978311284638291239133090434498474561312677969941080762370823991916957713275531917084483620532803507214569753870306170530581948846127908310900894514126249757604583039091955230271498680310949486244041984910963370909945410202396912937987211915853052158888180024313801854967525963946686633611229462820084699892999514419853455106295064328887401230013953272613718305147085126235169043184089490878788310510449050783875709538797255799891671976690602917241204337651379546942674604953190858298296334169126201754055907704357401337696558901344896851612151416730344193651983329073236656815724746692146829416934639237295289117636817059221792363757787904289339239104163434857005506312037496385061154414307527903372324295763848254413336459987768084446597315159617843886026460072812001606542460873080147117614961351195706245071912750079994089839510673463886927176934405599425026335735833170281979729487634230591178450947224163979425358231762387058686186934258181180647878327287628265582533657650179842955847313833174659574624989455249212279769044111619137648690679882889525266467361981312259296637716655036823105808235172698874959488180300432741011546915526535237630218349461552731021137147365647911631175245324565308293355042049171904596221624396672042537632151316795701292896000136143443823244994945505163603150555141436430252687647167554709405656598645838407489090598990697575676302307915603160824647991296240231458272007476315866666073553772920099273808300371854381316146137955473379196103035460650228528977612528781792204267344392888050038480909058143556246995831550175049800593958533211949179549065268924687131149683654893477848195241762898818054901963300113506220538121020089477371637627394675047720985858321314727734418315312597131780428421965747102324317434756753270581620939110121249271355049854919347244919946222214265095840101443274709037866168627810864689333802551146699477924112179810103351896217939227281817667687403344421901302612693060659699435167702968608912847508806618756927816414748418317372578634730821920482663036303452812734161994088474896421502003391081590825387033096672455746583588831536359845682382441639819478216656861036893205417253511946096592749932622613652468039693223850029329801371397960651624707021051003667052919724664338491992080460633904932121158015825446515448860281164776331206283662171215798967094479431002722294523019363730612884985989826153314049615286161203433520725905241019616136887205249273707933579004903205601661889807114980445159674211420445559160866847920271924903233610583260235049433658355266298491638102973719140620708923876003741584115765222773529106381973851730002710965917872105893265206077026993764729623313950714173304315772208943191227147007357729978309066980573662090865877440970354603449348600267903358211536558105668271115919684937908173643551946097031064572682419209055777649102646908832117299514052547763927280345810818722421249457692969197544940433567222595101454256155497016491879049144974699651703222052819077667484861191466281909189524946126391929691276156311573362708262740149098321067991878649997076888512166674285439070137342196681609411480196313067836826078272066899779603121844903223879888881441561173927749209919275615546170020046756595248562159112172673788797756810214181952541036697700250224917284871881251042267963853154632127859220306911129123209522391375884374975642257066679883980905737880235411827490527613334739824363473177197816943552471497317717175329680955765308224535316537498731768396285824185807388758022719305054737226604228529249532552047390568813207701528486495306623089248139190524588467217414357287563711644402357706747090454156020666206997747253245999126801609889220539370933997715964818964954193145595228678272178983374944442808362870765285403607286919890284087536779262508148210773518666542265477146965321686718691189267614569549888015580052352890091090896921603977743471770910331627084125004635184968525094342801218092842935368759093587980703975870009368650841130345645089364700922020446426324159164601847295717366801559241817029367707992900234343235579153953471811144097660397767527778065037703278041252169244387888657603101595100107125519606765316670623774358537596441471665856090398772857649358363861610350172032356595602109002437065975585842674685128403052142939030092576507121009921980204821512684601133260608802323026864355871727267980903178773193822096455263500995489227173667357861610988109709426652818813342078782701322650709825716487173243203352180463050783716362107085311645366609686493588004320156801808916586228184407801439459645177269642107775594491284559450617155572185312878118923235506793119091766571061046962961370733152151246194111859030736144239184629870657497427585223570858452867526605882558571467504731741421346763085435143179992881325978434636461709318490310857417941107993774264991309147414500907302823088681868595513749866031234107959570599121002567145406569540942162491454514002066894927064768784813824435403387223415441267156433107404667190779110229661691877630356493945769129507839206034956467752115007532585022394973322835815605283238811945500716907354450057870935025480523923263095582079019709083303677735216881276235130966432687048652660943076702985444127057065693326394375860323174288314968664388590018811010883809925855878166811040004093310230005215475732324082086950523579171037920012110676037198664315230866826267469510922059809731245194838103917587181683099168617324548363679075151170038422880561034682861805521836785868093777075226054659621528145581014842066872919252323986318688956792748433049475818924398030897146714269564018034992462248318606088258091919731751246079515223032950208305906601840886351697269912102356397261156708276768296071581945062684135168241752252056308983963376388942535584723623925085819155440625671444480196581779365032937169767878481169404872187813798278757158649621389764750458646714286575837088920243690376490344939890235296186397668074889880441851174811814679850730470900569861436485406489450379257078194727780382149931591571743055568630274537794333471435686891682080525585141169526585475442540936418191606139612000197577660256953065497451158149379276647588035405574225941701268413571795564354593717850983744151843995262595857564395697138457548464322727383583467073784128090961619712978339655696876365996314500346414887037184579819617590821945423999579889554397904020965877853416680585956740759180042501130752163245954596558861054894744897015832779872060216034030779080886834545286377916393867057414151492186729006778659116528466709035671561211326868911074434346574157500858204508615753330526946927124775025248129427688563092104850291705632451976780012171344228216808003508639538967937752530754670606480402600263820494111806980174158208164720270495625987595071450275699647670214143372287310220947781155087765581891597992556205057708363473787814459652014908965864792584703329485437428166195853663303306883951086890793056624563348427171921178185722182954043514970871507866631093349670425950406570366315462212559750535097712165956707070772234404746292293756323385546103903167354459925114228982199838148719284006884439064285669494921648264187733254104577367315063107091851458386816010496091343364145304747446870816992419985000429560746726471527525965015415601332636976666704428257524149869719562871892038796297539205009017114361091213655987437859307952052360703662474634773513820139578336494118831499240104332101041758681390650859487407335782069170877230872443980783787690840038981727913526579534228882918863972715807593091994861451824872018247345058525720898708566425331461814533153425984415374777380203353992886879303455362290186870944583868220713402250897245545488475790029254917047285823556238909827423302152314704435675710670922731096866936101640229867517323407685541974081223885222444872754037462059745879386219949965349096549606366081663982602813696642266235930921155671855325180578884228139496771006440709124278990648172861641406645787631788083000321352196996421543364657493755339743740414690115326789203644478495032280305091693746718771996019121560850191297632111310448415427675417067413540633215886127853391387624725420796539484460208280300436459883605702234049676139671666626383459591237091833160113582832582006315399747699629859967087863900296724813151319161827181364151203442738176749930789732266030776493328722405475085014417204524793064415099970320189101054957065031327337653117715327407472574353017841053125955335269719090422667696434484679744572525225260594842504340030331709749901064932004031928985361495031900394946817483664791809579214159415060755014094440584077109248200755557559358118744626237928806161792375959639743838438557687940826338219358108320422540380390536721077174604134218690266609597130242059880324286196755022198554171217891670102689935239614395157296317587956132207847268736673865576816821487204415735377682648900637289156734330958460051337321307077886186247792778343136815574836628858132610441195844263011487990608528428546860863844908033730138049791860416862247684785006474226499424337284874267691718448661870568755185450166561937430711691866759827233513291274749863286330213549745292647918068162804756904902543979400345765714948823204493770218123624619157703231082287426329866340137549477634358141148770703472714321319434084977623522231884124666691368944834037438287696672349450168370899601138864982880259641989826678345973273548707504870660507345756043075668267788331735080020383605798060921600002606381200333776930314972494891674765374735702107262558922595182282229857980302649882815023267418583936550747582184504839638232404110213303240517355539794475252486187532589533933053117195395987228532784834043301321482577629015132920051216247885782810043394752337517464046715853061232716609717230599847253196442026086085105761237096679312179823562524896880402557903949397853511054175014224988851092333477817811142787463156318547773444238017878745419561284157932300065385608551859466369406818292190268762534808036505031074211144428660446236001980870512657059424245358121000520495012354253593904141055505941307282314201086961299767947571098516854159286823452479084552045577430858155346638606460100083809403426530636195329267769923969429769801583374786884962219937342268332411887504106279455526563403089313094503891197450559678314604274211669636169988558704387104942549382819350422693839016120997354646899292019888535464792637811058793136456893034263903003672785169864389823964698011054585047061152357485675073643130906865328571740147469706360890359782011732600592555017692546211483473267113241063752246895546096246577430404027614470839726456657733436364332035951242998627640207280251079358228206352356678050602332146880404821400823351258610657235180427335518106439948662238273586259746974340966336760815813460593950719039669167056023140276941000579871631627040597899032443962844980958260306001390532927060502193902524709164493712161858570591559497337565130994978066391443645568333974889480053620867986520702862246549741043021033451020916205101515277582660757714279560763041748425484485289052933892421756781579137771441172524334642481635566951359842216595218287842458092207818241955940945983179315411542266122450402142287279027554880025346183824378634040967620029160657648416152781269177996479308529763177861644179914347381633272302708710867165722959033824574537579918447695393481585403290827176046002555814311545244988727813538575028694461098688428937908446233348683902191987299987714947530933704646066752865908309775598439392356990667204049446218881281551621515934560775612932028064406949700892648377032825305290257437897672573112106989816064423718342487109052315914851659646937219706041686542828201597659122226264729602566020834407850285723600700824922298105713151596232989066286094770691610071259013524248364506652535619883086650614816079502189317442928971184624941045410156755802065878518689029975919132826647207622374496497760607409347601642082608186252090930736292395701172574368913354347966120592289981987569872050204950561791270491120519589802425060103412380799427969715026436395861579531623570191989616075904360680166907553648771486523260575889278450243613076559028850513372742148790018363168697860578368175407461973152581407137018638512714321877182835774250269331866983366299085910710113454806525017705135574144755430426191208558402027863278408551961922590029002779892246614312422190986236293082259883494037014240476783792981869338342546232952782655869017463282244749896218689269240409297800701332559574024100750469083138914960580135529857958615344742582094690796718495609530910840789173459816799474093043121224520045609237719569874172319390908669493953988139868406772181447458863982299384261401975554793433959191187187693949851518396242970719642042590064850347231059924000909817953007060524451637378686446473806957614265827892421554865516586011389999711301654272675191546250703153343910787697464917802502198568107701714094471174834903798801614299057502418726733863023676997700510003047146248203608173497468362314202997937366116257534652207422765389842872491402280529951726060012782446652772140735357407727878847703698466295503243945645854698104566668804801405895653176549780204640225609410270144232961187091869959067191012061747557089547292590317724209112426872559301091462129721585163297089158266623472265175140863260372625547393809320878429429365688376945681088935393879505759019850055912645294669599507253706684466553894177822094154190082018975841714203289562857873801097397974686170628303555579983617975082710472410501093308930527771374238454726269412853519451325045988319853788616258663810805504807080606543962106728464114901661979022354007647960435891160608032403953998444509650091487798034922544489260187748586604017594452315476779119125712912868063406956281047304167027689657925089793208259978897941523490171207697444735136105433474426805939232516111552899992623944248940763096588963153534265792355069932939757437001682728188175277348014142493799564917365830378793756623728620337554076697748411477791227924848557855833317953478170358599775914577062384190132164971649552507646309704054818026006238430327829658607164129807706352539336989665526670852951940435381243790838723810248637477614691369339636573319170296636496844808896860532434763751348764509522291787454804957413910769879941100960235812642309274242343443214862027573541440040957745750048666585038892050654438645928125931443643139380877511097614549330768173925378045979195842016005875685150303556300033048774458943470945696448632258420720156334073557565342359733719485401064884457131478880623281885257766089545921336477666840742059667954613390968261963310404012234950894038220257983204680376833559176449936470503178792861541382055474240789677089595256619818112058195357590980901021267792455470347260063042610157613047350344884965329741343806620841549847489149420861502921169648068903606271074310870871537501540014007943174113019272504533924993154923190023898977154959479637111641883848853657593628441380261706828990669489470098092568978474230959386466263117758283444011545638827180225834008345525236461850699809455469542322719156838252662310076376211013397916256380674092272752714287738301672873559351748168877680145658511187305887438485204961548550727669643307683176081976820302140542794820208835501072300075756043129498435451518237524110907570956668750339584686895908960631705320081056671296233884342783516506018172549134527753901198611127388904412970473757168754708723100541714528399808055331908934360183509218046903962457719858186579885522434466352016075030841403085052683241739120326860056317099916245865622162960519960109914708872473741315376136511645226590663384238196240222534857150585453132071092438890136156768949554870926250489658119392463519802839824952753766257757649662015033123764341431698817082744797906630849344256394757941433415647151578676739023555027793039013087870269680728199123479662068873410859405511823432767962327206789263583339520950353372475677326112690091720621940031777785534810919890978051351739921564535240315252004333584569508268339807860009201844631433066292621511873909567136336758345733660768624781167199284779593217160286685779683076512558363123501711077760216722033895057388961277035498128521082149327374704554106463699222075500601831929200085394206202337198580618577027496511404924352402095287584735728631412985700882190512514214918356511866697844825030646544148210585201310385469235201913207636068334699026437291176047820000523422834858072282791478280214535696321131085397311711051390149661876613608782201851559972168393711516800974088909064115926522824006332323435970454270199373193724685163956647223662915098669094181857037564996335611418149831214308918547372930829214524872734140915586796409686873297575846329526431101823927038836776067646126912414125398408725430889404620609291819801924417350518494346410837744380115119001404670951883638747227274778527271059246613459027896172744413748037455954626131592776138996898748878321784458256785515515804108185618024021943853863916046078336018364692254810784852027168816494440791573413180528419599322933393562651305450288844714552735124055955451092565085866728963597249159381430663048603411503925345509921770294449506896604079438435384689255299495678523407806690993323544353217169166808729663639039206016343114241103548260950129413009643905815745910345771928745554452401612127368746116287774374580708111420170768974617987788442377878848376951205047219809473916395162285831696770155389655044143305860835787939642479952370858476212391268609937443529058453916858288322295938998978461015991982314907014230903949683388832973369009070921940594829729902712477204063083968823833448973713251821435984402978952517965278027214085883303245670755132916527561389966474740800245855426279199042714555491484392527658278975681975311639326952299422114891470968871446180505642523554930632638868419210787360814660550717197988665026934759534905762894666593664953231608962668784687867236942090782555380772582349286345705596914861828799807090956700025430936960909668393047832490470171045430832598254530284160212290485420727811353881016650223866552799778325707391732081559914329802636149806079097500639418955729710772062823869636660559058367115739038662513904724775650484107859773624449587139927227596863968464854448361994132634039582716395514301492497211748851339948158892906275322349997056268855119428012472325541488279403308510231554924645537237231325781676129162279450043339902056951310322878844750861007596951473605526306752968929228726447939290863797371307854395856801471848075413983832182770050332154884422274838943240300951055450506418484340695756669831009985503897350542080203790559499850842482868047206759551613235610240674474815766420334563715942642566140313091877158215327653471292109474297257308513193770534910730480895824718067293723521109506709106649414954641127900476529623297218520678945789131140176902966814702249082844727371393488473801777806409290096634217341952328421783622209855740391760090607596506879131850228931862989389374706272281397302370068562465223748520022518834091151801878323461275603189536346981827065369807852918184732455940540680150479027943620986737393007639528457369886292285558829083000313649855772190439659251067007427090976742213676725510783425426567580323431331463969842370246317312935248200017706594968523077262288287903112007646672818733017624456548108629577756102594354364098811643072717639651772355684115250771046546000067144303302915942444317562151150324040203833988910697120644248561280345673426703907109899051459410041545188989600446014404499924205758716902890032658877967152312368084894287783437302976870680528967619622421737932081359043244662244550834017027573857738402506463834319889079007432406610964208250615768665012396540757194411097488953093112491975649498927239330720822737460375502160170826451563332340992015797551857561316934394255169842998469446143327926264632647781278622641993701706596178531942237845108949721799204747446025196605988478070926366195946141958792658975734866740809892159632168902424618662552370053972993619352701411646999639834647307889899274454535888312293910071346844365302176063970052380852096324715772177320458783371118863587096559902649719392764947938899393458127305696810201355841193377209883292858190933550935937893015894268734668498693887136391762650030159406930466532868092010052760801143221802541205748721625465280532703215046590118990380235515279813460884799562324309222450757558256254312816797275725490673209820011173288184902351483432778676499760805487703720440800591477914450769685231174721112139062540012081374120318550497970777081338927683585600528771663865156711731598223484552928673165706725621526252512348711977779046536714276201586441303633712228983552838569420542696232356263416896380045736126504077734361882767460795740776601336384867264451647756705582215386084138074322980759800002409726042597368671107033308271399291372466532895614623428459763215475347716120487948857574601474559763839325765085380958032214567509735643287357882461687460541573593397565305733405223657505264246095969442300992468208248681666786232913510204889934891833932035419889250355834393352749955413569459300111649130923154168929904172912426022998728975851375381494493854814841518735758236238013862211133142424511983809107732444858670964623605475076988141789915506370217455172558506949109989893364113088301479768796815973112302204838306434121802784522433720035473055536230731718528059837392334800892168937794097868333056601014640810954838245564946107231508782882296355801070426340222453372016676692489244169904642806612365394723158423482838744205111741123278021749308626293641957243474657318249507564343323536762514726030655506664562347266499210233327960320697000729189451217049628452354274004297523286287545697362928761181761657958633849638208742962957963093331231826672727384707168589813092194809980190765274771763546652232260721088093402411696653928661864323308308212491805831612316176170606112368275933133889104221022115019969175495167738510787208814634318907770546616750480846604466937501727179474221374827922133344664610677692300049052869732364353208292685215379138764703469569857397599693648398405769164663083348759010009369075154420668141870402973776077253852080225908965500579568431457923324226175174304105706526039561269048558698236038975899133694291968857923940015174650897038535340672436553600444268613263871361678399967965490664791534507862816682308985212936019287016075500158340860351738466457800829238099013312707312987424603491456003554338586669877762251204216900749694129662188009771486010804543624561541464114383378066274353214031563200620762282599927369906449068506965048503808930656822600225947183894271241936922225975323005421705069593261038893023204284267693576123495285013443434894852012075406851088996914400856707536294851555783852103098183212206407737574232395617068882269672423403471357122541446299558095714201727926378865338715163754689693825092710799066663410557215644917646306751661505809195082145897980556775018486021626102291655843346662343071655459547247059719711708902941858652385317164297238271209682073386387761161895738685024373561587831640769172506155344757458894258558967839894131588838627929906772375363618874258561294290609124751990060513409262688819651741621506277307730739712158823724297455458310722539725192581023085582412769028235479392176607201067345582616298665194264001938219547845887518234469892012462361311651162770202763096842135945956445926433558904569247142250321310326063108652271696911700515821188106130150343362959541908679563006475831767108327043433125732581283926840355987970732718149506076176883013586614061767270480012053918599583220244715115835124236921029215883276904247402305222889371658880843112521566805080333390251340651698312752245173999585974078091972227452023053261441852385285497625236003787016440443608481399387098263951277550232270127763691313123819260630406694257715634508391666273496812046692795467424589251016793835125976986246389811638627875252778467794371814598592646750220319084686788193861866662718488736503651665780907917438371225650054635337602980482948469097530610660668730581246780020192893244577922705241940024223709961723824321051934945855222853212672970005741503255986415480095807230659776935635395792989115973399813139415369679310676896221521320029650948328425748218056077026956114664234557349000736135650832581324319855135431668048715167534886283473163937049652867232394088603360385749603688624322985503173432071611345353448501700386187501383066430236513911583158897195435442896552195571738900104177281939567600711296265761357588969479137954998407509585249024583980525008628923499850762139219306513190837076688059598643283762354929189845641796549247630342666321612775764060746385417945556159936317464018416305190711525932714459610186098960097247620583658832977881237349198007380977453626283392325273460857250680622162420872550103070244464878844439589585962192717305250137807965197053052348015733662683001847382542088845569588846030510170708271676844650408955899127392882860830785312853593651676491401332888291306595104779827041633916978574139236960431376004518089537675090486147649538803109151184956214856427952567975104404928211641362779039593757409128390031602819820073476574691719872250766196743003845252010186174665372899167920065778323275326788784577819528548641418548013650504492380539124062736642501039522977118922651275236703739473243390522061676521574467591521299319983443108271578146136767648985556190744513232226059063446956380736995189435817583157132822112950616582294163209019821001250685782407806184520553185565483739620161257669180538311311201820008333278879053236142462199014105483925956945308308229714286907352655232416583942221334866874225808401398576158293785632842320917209406174258414955424190979039470415513726372597421566516188622405959839274373399504734145526770258040900752327414626769792711886530517280787460820171854779039894353134979972823448232394728398639481221747053568027990351937886932248857120093744683020408346665178337790907643348998921398900156361169178875075518142523566964517874594788862945421447432960992715360418921805761348596322077582451923872268691478824498049028430561215488847792337613525507906198265883539954160248949102856113026035792422519848883446417735126690929931910572148828418401345378706328868017055672694589515060626560792278614151431994075271583823903441153770806069839941713685884392738401729904910329767734640835967204797541045516083189419434106828914607099082484259074590150281326543393256619551151932020586777233352545858017701475470015255667803234456761560802575249440677490909541190117357791864197601366143983260415130698265214231305605480066792003391557358767100106824079675852226436720899403544673203766051090085206607148530045967190106770673777131821267967529886078649507495343775460693253166099058458055213133675190678674721901539348484802203784700762566752962222027841768499144266606516448439664970375149723638032156775803279309545497673291963354069158081819987405575810168817845065613682199571907394720203948131702820506311388165628093028098641265901156414503461245047713440313373949612345604403309784646414406013595845415452507891439829723880609734892208268084676054520740803477585390894175738193401569641584286078016409804858497232636564576519220102576768941369161063188113253897553410112576672137761252943695408767526628190709034911561499205943891105607249857721587269087655933181332883476456010301187782502751944587730756170144439475910651992717103995132938475185155134637636929949104289771518897735013345354822481171355380542371275987054812780463634024523498469993836145620923544322337956199210592702770432723407915736290854376835782606830836157388870381762510205917714469969938232486841794551761209927650754896714539635555034360637424213612437157252586339445630117262051338945529263859105907370754709676772026011799584245347435052644585107918062145990854903204732712075136636547885517397066199953434912030953008367692470386203606621032002157021001843097137525528837820396715546268917504670044434052808208402425977458565471002922465647799509031184169535176636235546329441982983918456260887219308688953176170928628800828193278243046270721921680144373084187947656347219443668077162356556426077391391781790293595094593024789695264465780800781523341033340486838356132996873887610559211680681951408364040872933153652052189478136965619281151004187006533404389563262437392669626766785096063953090869604631211657283301249072984142090646117669252615287205173649242924345157611193837281626253140064279816165571514801365312042422886289824661238731654256563538339277956800597107151248500840634643146098678348689461843008384094511891214335882725882539545695321780987564705685149830148177104775002239016166681153839692102207195006018244538907160166954265344715262590870964070812299991587363123108643787255169651158017584318277561120247116614447218074005963108977099137593637704558216436826418247451711892449925286282415163471706588047698797089464948275803475528131593471796416683757254866963403302809294672690677125892610517537156244025766609482931546311759739121674351790874068032656939169180434340126111934636669591753568384775734181958580746513246097208996721346685144876035116990460396189859939971316926553524842614458812081065366783069306837301726328486536866377684034904460752233537330718541458930213824643449378415651031543714621202999771818606793194662694998202531647012937338922339433881591923905590013750728421277099845747849962963333659244866417738026908484116507479377681800054017211379754844076143777325386285972290228860004225124023018155776537810761333371971866363525373310721246933719437357445654332839330936008712627859920299486195993317029662609040196500928400003148533268273733446035637745183658340402241808554769215804720159694586825803616501264503456308927171263989923923421985775024549720143564128166835288764194719185034315446346739016888444683323001254105279516022175184527928523264446283623450496211131688963641982437487347831065337839160452940253980294397435094351660414040948728000906801760739064998828935833388060843384993254957277204180637859746182892086025239549885461528776707681476615937874111186119049692686173572703592854500734722507808434023373627261373368920896095909733383550836190882862384860178358656367707150600787632258815987880737765116713698644626406639561068072651922715023290363506800064321660987739504390845062205822959843305542174543388771965880142946692183004157659827159288407950030237673465746053974788136196375857156778691037288667386720994542332821856029180311867718795498662045638655153479756109167778446480821114650545993672459564783045396996045049250310000629983358734107083911371875287363887409643037717393556038729855190049773695155737554192322074307393920510420871004042621319710614512043696782389073871992682663193848283475576315292663167177235769538472936465907632644172037046061417666301661331975512778796869980064814602310431544659574606367071991288468092168968190943907388847701072247634542675953426259149175109472911862657998717048519070613493888033404166456686922430477939942826929930081045791873571526027058764354693407892116858453104833591239165670070447147846725155660869071844528328063583101030451525121199173499965544551371103383396209618760666846243823079525663913787392803814695220531019236996438453215440616944482834858910155594338415512460194251499560309298161277912666072611412228480828025508804493080989349055379596415697373186066703280940326744860099438470217271753262357644331968593801131183861712811083313226568382400740138954674062418533712029094196926680038312519265487771990497291246122388250238809109743094442450468965264586118129804190669373080023681251027984369811041752205077803449011091241539468681912640752634106952436431210262026795432792906214198538571376650251142412718118347265957524983879674700064433232284705271020317522901738582441618269582474536596440128350464856284269753852289901160557050917827209621695641909181472662033567137266562581906588427678264583810830515693160887669570149962553446342339685881494077010676947486746515223887505332734167444740209306115271944173519689468607255202230137825872223267712728033991717243119032227776938627003209459354936501184420445428859162211072910001318755780785081515757799734233652886034587694112846012342880093226587391475345413241278849856361440606182745862815163180571790458603166759766626257018557941118525310067078399476972932197362617636595883315334872778375557803824997538631594473851079352846167906776169241801242362947721720110220115786221966328591207795712180313737727099506525313550412473493168801548551821876767109873251756422848083283913162245374860464434130238944691730893745820601717705104516061283062333646815796797483444712622695722135098979634734383671617462760104367806032423142554007237651297739860859039044957430741673169450400940686540550376395199926054766504407686828087336598915378025845059928117097555962596647933842845835205191408136616726367598186876647745587142140523266612970430480939755849709108456017332127039837195197710999821114841527827073982192849600479852505717080762640909391626581582625061664593139298238841666428662906808961605727560740953875897888048468193738218166011008695859540946277088839398679750750814716942098944832816464065443934950197969341493344550941820874786525578166711138061641705676949277345458335699495128863538377113656923219630208420658905660267609173115500129542562261942932803915474493798869547579251247297854229693779880855470299373041998553226216184619436676033041398343384960956637390851579643427864833662713482652514687417808599437118641194769565173127396495409376613561348590609481177578078642381672641537913999844390558785857368939195695168028606937705438433337488235133216826173783670402250518048777379517723935265352820600917996578484585135948721195060323393818133607247370092083190526286579135233253156705131828472878122299558215388482130291388674831274330012141772696361807264346551687331547218406747426759050486540804833330023738099293307419700971676604770252324473998252222001175976723773275862574675732731775474761832313351261866929604309970732917999346233226451476164223608374881198717692725349051450669234278974428100076695706764888619467004987018584394477482915136596420161286728316579258518881999890573500136963694782587292924495893761018367388327075314335097744030807008788070925966084276839090390159747406089951261672321683987536536508768718371274592874952006982189971942397838152919437594635695338201279703399981909377517962425111252934841122206406236943589044876267520779218343517505259156441072147122376755584490415869392294574435323387611007703402598479790421799642633034113431908751396801573458241902643367812169870631039031000300026614557885601349107762825539232818266713679603611957380495714781124025032741633209817373996308120356711643714945996684742126629465423251674444691125844611409801490592881659643394562649850915785648961677771188946970985532367328952555684295344943797387850023236249482779953694164362191336858280697935187426289914321004346186509459484284240364055281766893686139568818221230510670613322434304748317259837372241307456946359060927108940787259711760654969734395601877624582340625648630259848866185404677174449764474859231785020180944209706643880078124047692101516864965292601593646693660597276154065490824509819596197530741467159235254641601994331042977889495215586763393318337240830687594994750132599539705249301885093930642688903916235435460476974242985715935905066479626517767933860741861718558326041017181860586224345680071216716481245565638024283780673603959054585014590455501092855923704317756674944045500919583784352261035540003801880543905154378318193175047667772385920799607911673638868630458274807633909064133518862684755356508925564692772444653749564916277870207598678926743066726442391525772919265778401242171584138970169095289689884670346852358535594923502301054020500890089885105643998367333760358352824755111175327380593367294236496081592357126471151997254046161170318099514436100250874001730106187640776733422086629661221081287920289783565453333938109865845612722745333324200209553888954868102845019788510348151106806754492430569067679919228748024420580249807863644825627777049365189237438644789116575376402795676501461539576304967349129381143038496747851394400882380458902679184991084439373242790140320579678297210012498776261779315038030026273076364614247478652697510850352413191246527146556184122452037775168812780328688519477723989051775248140413053356211886600501859174952855485397945475470332580293614482764674368576351752040616271983722475858937667443951622876419124321892728561952137690715645515743163351482063545410541493232546698952330250644476955903057471236794019063565040215367805405503717095364227369825905564034435964299468030178251419330378385032197406045791199276556830500752827610027496161210519241464684913728187698274331738667687121982506930077275604346609095257605047553501165555702057675204859017318768990396841056007373405029402186256017316103199818292669966187395799202261583900807773930752820747418821833435015930366311044857177520651685099058550648688926520214591105612883730186529177495345028881196660224253899611849529830429034466556842596277941212103844077235844909321646717795648046228064523325297503486863323066500005498817237920552011490803465602740669750151678053656042367565117464856864935372066237887247643436750546892779871934804152183168886704719053659206244216510820160475461106316898945066307204663979991976879211224967653284726025655265754714214561539943333167920270398286775008810463118547276354133771132834208973835813188009345386137791987608755228520068592455994695386802670079741261085218673797337854745372635225470557793317772731033699824024642294210191111992188029131913710848992719851201653480975565960339902281301195604903288704267781548076857022623776625414817272400887351658973228180711869989194074897208516359055924152051463216158433532535312872275177057070238603496841377045985460608753211753477021999662577325726507882100063535852752889826776789304376646264520389889220777539219023657012827982115106318786787034973200980680563185523789287978945200702223033546880052893315246717706997564483327380002684096859706450943321360243498323672070193534613432770753450316399945908039292803124361883443861210304334904555592562567599160312105924073507190596074374765720533640793126401922507126178496718562006424135563828254182417071551616096634151801990725579877450310759964469029775230115062407538118587112496043455032187061195615265066961928147874708286124663941768123354297974691307307630567585434776357460155492913512415973504608003940830078141711850794572626057139431293480049065717179041162988393292692004434943875741970695119457731519565889271796175331250538860358875923465307417648625883473549339567531559737270134828955778074790440148229231142355869307876697726730416244643237142884272116245721883667693622033769189888596972528100980233757450360256482509822810679780219518208057835492983871579818363486184699229203200366641335295259667220785137532007027322030807054254492752012357066374837259096442485704097860436221699870184172273261593145170863767325963058922596518413621380922528664896336537042043279890705032483902597542431273736889528668415163398714211910547873820337156347436870447935067868407345175616353318979191760414154124755552544200929200195574828301440372830747321335620761807751378011130351449758830570388405152740247220942427015978180146831320831100972691486552635716433649938290762741561598756788428065090190740558877478847285210202961489999150626618662016484311516815680921728436224634993399874253182515456411816093148516868243999270299865639110897079974988526650330478467471481125056920589036860560718654805580282178776972621199850260693747667493438487275135014537079042959356736933811947531824538516706272503518244777353670085719240199258126228886662695569280306702914300522123788109465925181704250894849414093068897613576029819247272124221642157481245866995659621037213420505027034771944747706693201212045620291111682533734836644653448279366288332244285458650437854571555183549826010311612328546794290071496763164736357566662747433748880689491009306145278459766898056460748062598896562688027330003315942249967769187755393919485476697544948150890512551501003589063167522260479486932237591812817597833083385001572234717536852526876600938616287961314636969059140283705694154327217641204491300606492704464935712490752754429687189932259361836195706256944292050149370658152465629363089763399032037280743806273520254028722149476187724985232035181511536633310392306784887646760190098694312919506360399687056488150325676216976686461363091594465379023552866361073437121338892320455140766741015365288999901074088723592031653351384020778508213181789940373650610973536650546273973918552034335664174250828758464711861983927872208646455605036973976455258216069506578243104009748158792168228973690934488230955620085341027725444184638283780294446364745899849276300752610546848704045989954293436445404187880023898897340971377479449919353552757999735541958630328137443266938270296185637493896728238377216647189579516016687100664934153923069623156614729214472302412370984487018011380638712871965474053931292115117766188509493022214540666616077271440137277572633031803621019079685791770365350554585099999201354770487341981477002467429496694633786587422491036704198352116111793196806870441220984682068541912761752757568170045741829543910426125307687209900205169825088312619015904879407487058946728329601068108157774460139797927444160701371089842328386676305832705113796021860497752872398764432538297343919047346664860426189361636405500407302099336385887239952195784534960306827174532189237923879053944669778713010080036568047274941104189394974755705316576087119410591359434291809323167240772000949981802856891333576468566374054406654044628907761749653686666887037553149168874134199693535682259847479236909483463437433716581181853966307977569852512712166388200165305957751319764382052149162756225176628860635508336795408206505218651382051005588806872201591627388402965964635636071695663888267454578975092041043651124401182442044638846101029407576897460071621236163739404525985825567019660259565017032938561704216000056201194708218540280480034097324096521763010815102019208304546854783679536545708457640832324370223080966771851634437055501957610222136012605980096569123019383496012040045217438923131298088622357760428646781709724373575141382111832965750818208483352122173989277742009165339698070294394430983722426634197297891038344303098476138412148921967567573184035848603855397806043655911087833424851952421795932751315065209583139722238074680288290021169956841468987882186908084845883550773865293809039685655687316931459459689374433754274312510117176944307373201489949821422341173079915004433230327721266818387018021839934089616249292368772483210547472213625774866696841973277618545165972213157176024049683698356226418119747988359550551158413524340640722260312803538649843889398467822687089120566197323803874585929300040641377033383971290026350048547281370066627672045829468999858994347267841505702781848445415264466467586949202051488719138310597944543487917594731895972678840402898366972890377540910982156395216536102008090008835070171523827863813009987336135174758623945520690400012814188897239989418861099325716014453899186023798257480775305755713956346442963138336877019029256522410921578016947359498241762881221463868770042529902350481253391843849493929446559096160853819678098533901609169539800078858867078393820411537561298897149203973884473238523585457887569466886698585811864027479573857481137021044112450228770026845740464260562884513738967101874774235979344422322182425192253080542377491099937595810241964366974129321873849232308316776286232482807480494748436460683441858795456566372588377250362566394664195007296726350027580910180998185306552956500582857705538431670663613686550622621810956186269438885247366576762678748936357126171622426567571132655260991409341785275481314997238037233529562073329829060487414021982611284601513418976601083847063188047332656686412127074294078813677695128169954237155393236695884981153974774492006832824440590797422116183537137908676028602239528852094877272161438308200472402662643273610509545492486526842144849179289459951111344484341399108583030987522449449062887218439468397026454201472224671767531947159489794169103749708182258873455165788616504743178676017225092880304735682251989171825574738704772519435860503477051963603592405741348851884929635452238230798572986767297409779958958265588325336253666476314872324371568111307372772645514915809966393406138775409348316301943721392228153939837382155282704599809923563714696328097311521842449901657945508038542978894066474136281087184399784212692003404867576566187309916663588216863791778028457052693978102722278207250654866363620056310796466037017271870458686907662308555214943477337739595742946319733093635639429871952793148135771620620530872412612474558343797635547872987036171522801513058112434493454843192941738087688018632696371600368933517480201230536868547190508525945659475459107735648565769930830842364419489457293848353754256526879768263496116063108943555176942079571371710852986088093752258461731694462978527177359831404360256634788797813687665575158256419677681209300679298887897562466750640989244839378200397434889280757582320750821862310807386793115988597074139571751956428387351153583936620228032127204945884320322576442110737804453914808615338238626441532199796784806709634780348954270696326651599926329846318089915799346925961047290071287913364065195843756223942408015081355176522616129969385786582785566666268806686142908788714067954824468195149855564996641183888165959534323784697627516810624558692728661111996087026268830225995606304069905276500409354507320885161457399075777734475127155001732952871061441037821299779573666732266357091293164079068435552118229022708118851848821331419518322487584310290161450514234786276092829090815115974949056698139086790905361884930029150740624543206284406359426873513545228833599435184252081631842101742416123206638533605060741743093188077314758027936055764703739069040044018822354464925823566476831234596445417317761840490507990622498746865866244301433728547680590743123107460416157774726442866928097212479293702330315374229514241940412148279818260125065268866953795297768256539080416588842859058197092215297954549985989990289153718023037242948960531590495252493431405152783534726949329013139647789664387547097332874616490483956705334926713343557078569934812014018982297614882347424248189734085648033171741553533046710265116172956429858987632279167621031183139527329381180647626517501210088138796609473982214342960267260486074711779389998950648132207007284613507364861265755336828391889995865226673929009778261802436212934290542143425376377966655842012046114109571885309868110854905118442220721370302429064782146750011109326479033175272413097304266548502174748055077173981846019388793431223272374740612386251407295078138219469803310818446640240823546598914824118678309680332679682186443573936926962677686606158264884289929656191374543530658037932954448301261968977345030081105081609830178545686940940035938451248158088048038969808255923840302422066296822597867343342787265637958278142897111908372669045445202613973768136046519359304855249799547220428051271807601836299967300342255401828353426308491742354920036610087278597999136462294163975315502553064785980274496057113653138110302186734798704583707311229975260600562350285451634223109118926075717997987043414651945401324032253069541042385448033584927662764647075023568789521250280500959856836527216670725109981114169993679839691965667292496394974001987026910168573600375060659987575940141210698576639924713610841382302236839101812262625527827733856519163626802652562586730447209133482391346698684732858393047556828862659448847402405289277991652269198929668547909238386941027662585360331967317606854369056693291742989814791954161607313947819262688957988633077374094391435724021311434716728551220933690385228169149508034826984686937199402775380366309040345146556917539070782923280269587023187187519963552475749013362752809749348305801046606231170592111480398472710381885737413730951955758522744573985594366057541028358446459907791765765142838385346938011069476095698191679449165358796956740812072614145099978943382652568741088174343500498558159139380139970074670190915166563579575083589941118409452150438591650144203833991135123168933962044514033443611740235720382989841118899056359851193526116407219833129773937623904280987372868236644545275671982282588497230227765593384584191563772818804900350712978276018216577244399135852081514050859072094065514835503835834599329962319444879389161028859369892740047746287207304190759907108153488187532787268491379251825081912109019972250860153909243376062837299366297194871059712023033208736317757131446989875585843662591777137344146847100149155216052308590146700160631460234756203039763864733393879664038052545116446246107790344016022113273790796975489495163494134508583538440271611167185915092582222342090173031926324223696106702354387778970542500975886322489365891547594620795872904843607037010137829204999609257205862328509697612093115507023180300295260074215941883570438460535608531576980698825706754575003987530829450308864335722275979156599137537248497882537086877112626288306456584554382753169199965784667646179333395049295916002085248498349478610638224025321611722522003189425664232675185200988847052132339138537376869594818526276930499809014421410009165287325253048231329418549461035151661891441430608678428461086028748483582915970565993328449797351553236838045883151032887576364963935506866819481762380976315226186284588334651369914861855861598139175495235255521361391796125750714694718382199347197695164007217209200484782246072912596729604461629342414032321177603083430266269860316183048532379562083004180483900869269183261038130263656946471721803258548893141399811935006382017457191855413101513365053960145553990932416199118972947798493046472887734902206361436949075882290749161082354098235621607174580565278664310638363908194588167470273769690493516457706531432320024641274829530328626057074328323963307968029031986967624245441409304006679563386714659566243461417240981251288295179089172173407003561502911869436700518317779589074942522505869204979483801807800472978058469417635997565111008295540592059085049720043864986436064752182497287093527296867908578679788191642429409695819927675842714226140909531242859874809861717810145544309409964196385500398870624865824788517100606422132431162128509776812726076420482801256068275906558540827458488050329848285984836351494818137830705812003253803699602731281981847054508746356551716425076288063447583398340853098023770094092921956422206124737596771613359064969559394826534532470123587079144153739799856653737201340630958600990581904349963399630184198353813567352526746352838297641369429656244872940194009323280920756857541963261675302305113967937837108598042297595892716683841151843313978004313496706119108723078948785916221560012718336769500555935874896444437219928155719396692230225402557532250781687569379110316737877747248874109843904402374685154970241419463925629578819583021773702474751399666471055386043231225715777560644729862111574068382116459444930880464586771298116011533370095581063279410839581002284569564644940613564928221415834543623684992281657441059059138268058370278453480380189283024061964312437128205920395886274079678140559594225554039999340839438290385129811577187619020488172926007760913907448010312310008786276581994376141665836588328402715491332445228511780234040971286377976647322053247466871179176607146950767046097045047861654947354705530348044519012444778391965875912116905287429260487731452386113380012195555715969404028885132112434932543523845308374178130973941406514111122119346704329478931996051830882457127486001766127489140347063106940940140256972809475982323027630470392546769036684727339727597474134255958853654301896381507731851150825565392764589916089185640918293059537921421420007762580144181351314551548177557658106117347634448388953716479965615794214043747944260705664016566869749619035074857774492123241157114823092421288911782382786327839769280859975963993961831252328566840388954447558497859329968349949892313388689428328571827032283985446932096101771156470701270939257136569159778206668301961498388269793854120992129453590405825103774486137302879256602123647260375265723160342849048890617743207989084835485232033995243935608548508799657690570630377059046346348598368311652306438759569718638500451403910798590191731110420017841470438114949061072634180845039845664700245650387800389755970186861799564489475558910885302532360943439259225923394458860572268577176811716572387108706784024922903870402241098823644357182666557571288478083611750511770998183131118444950693020621053414899153182808803412738333519380745042311026164756775595324451654884124703361413704158686646596674308281666681277900988619502799066332748626391714181387480590591872800293306054837158016205348145224271533043480747024680032581114054297311450662294862828541226415767697035013585633319130514247531930113935873112269122839413710757875647680132189387117127262697611236471426110764342623085237374268557616727516950534941858348068722914210081944016514663326128765988674885625048115195064799436316891436417075503235101890401858731006334319622084446418292316081539890662504644709216467010101989678669660300089623127209494908205566013555128263014792636091607084924908842723013603697117127288950516150744683813272960063734384553266640831036381470392885250799585217967853302906035379753105019271700813911931820080289258016037186035492559338408989044270387974640852356836105147921020735602948945497814142874883933398523351427080875482668969913148986812490514486538383709385268746430328760946204836968429665169849495595738437665845796551584853063342095878059103605160817055918332996913761346081091447365896136290807471205569764365812449160078809009115242961790441611343201514604592368515680161991122167669454308638529212637851523901914992749459064820465801832741965784203589094718232762486446996723575924915257112296328363835931204082544111520717114068288473319294326337253418682703522771764639632392118961763471251005504641623966319386674306991123024154433509857650746180555469852936874227927563071143222677676606622336844091273771360132628780774000440509269785699866231888052395130167272669282751518673955832429715653318730896526610827469561953341570322684014998518978210215249075709378596667076634908487723254134016173078811012859066463619559954044553470458913242205564277250479142567732951872953503347398507475647433126083892129262798739903969812463968384527298256361864022182467383961511323423967840636459627367822613048219674024518427904176663454123228053276400221556916924616728875004874001843625810804814364210878101200237732449881772051662246569872258931732677078910363884889310727979789721530613303548447057696994348645531086972776411830108926367544689676093005923606113718151106551150786628175940280015068540154970506883788197248804586547083761126065125722719315689399985940372690750647657917891039290439233006380102126022864152066162476868869371441056963766691896958840368454811775886854130921731263432109052170462937939442447981086698717878295340220882022351043959604113195498795932843884575315846022413672047719924419925508329230206484183988506974554602570393297463845215923046442271480618018989409028148466332102719187426566193258116835407739733765388012678560381564432866283442196167376218268756885928907336220827010261857055537272322775043802222402350928727123134534095892023124659657535675123089590013994871700852217259261675749085259830782666606798767155776890856241369072317972476681415476481688960724184194476540510422443067482911163429519923793481705752228576360979019795963134359024246141562769179739955315895819275766764664943588747861314766877790553721018704363193450160247752887818438325200197040018785274845528095433689925882616315422048416531920107382014981222655556693766390937359449635766803706376962089565301250847555583104556925459815900289596370965446849375404958049784963824024974887616029212796255395958543097233128447796752258835983865465090037067490793983240171528772105575517634029961716770998505903961884491601820809757168361039829652075093632860382402575240301375095950277016391869794264235240079139526896421951986471111040239808634882984111841821043178682473104756720459660452200363899147900291870488201768547108565191480520134977342262018541113791191235096636661179058034472007402022779751505694400617295645744578653621088046492173995464679444769235488570056923568668161756028363798212478349953432333390857995259954090944495669788168393603555102742416218403407723264517416033012784352160103972210839131122638830822043221477398164814863509832645122324151967197189107294748376519125471674490525463084477753240931034650491462867931684802510162456804261114568418067232253011496264582895160833095887930561991770456069982978034774353364861821553566578020616245763727771629058000079692723584695888550947741130798950997297844598633681810723435477824935646244665094203750793010914403055614219338562501671638206860199566643869207772774685407533286030327845522904050613589069999346613718126133356500600865064697781085918710180072130439817159236276415636878524262353069552593947522704193844103069608262295664918761811431107128419571641828132463488033731721339244963881413657801256633091412637989639586828547648039990485126353279940267475937354087803791253793416996804028187367918318498698483537737685137751718715096951068722603108207685265924981101107651654368228027037080632893077604974031658105819836963706200523707716803457892868248959933222619628601118332096292974122082211518241825908656529765369203574078038060291537113379853612456324965402826508943320259503186460364759879159811351757147426430335195611073698372621212462152420012997828096763808417790475680811037933406942875982190204768335723879140986986682374695687278235035259099345181060358707070925401145906015829580180470310080772211260411118895049740421981918459938322356491627550305283301315180996749896863373914255567297751794691329713309751113137174142117986009593179313137800219293990793682768769921667877128343748971801838156953193492692341037306124290577598886940561727872683659796678100645496258758805550610332131276475718615152815590956236268684866824119735220348713235632655603423728178163668086652590035422407041350787500019043247566370263096968235365871279199119148451279114589589653017391568195934761957287883522269602364771828032983070734348117507044101567013709352379570123295929172700482348913315948623106136050493158796688322809178984673212396509223594707951921239670363764161343949832341171279994289071151933393885486250721776099523394297844011525377603077403910255031880931580763931558957868540893485695226157155246933732614162665373309010763690570611746691454879719157040134309372875451334004874515950505318498595903830789443925112744821423253602403106536605420422337032790944995496448359139272929344284036992431116843009637342402087864845419187966729999286679313199422378149365083737982951581112927082708812371956230416290672910581374316719951671844392897804399926574498372283417068494236915814630035222742982807252283061833737962802806161229549583740559215357670686296222014103334475028441201619921407409996715442961444026223169854704638396398141801970231399358970914449195965082509346970231188321630914544180961590903292842373405599426556916602083591540519454615888795173380502053091737880551308515525120841777722842642569186221262757980496273536560257090539709772948628173105086537185855723994501877983333789694266665495997829270067160789643631225300000380658421767116341132351726168556907062740150640024832895262079200121515150726008270015925591179702522278421522268285503312156294802006838933215495566711384105095269793853467552523451205039486296482114733630185250241676669987247831238407245147953484515533301613978424681217201646257485098216229886549154754574775888719486666669447805372760122884735554065064236116104997244876341229741187832496076428518240224579470335408118364400320592326291422508049049359605115817065950367666789867683243995292055475176415142244895351171532190232059162176223284585413332353428127809533938217906802865192784841308192239580424180840276611520738852089964721668011256374525274507728907213645154037834966819919493659536409559487818195733666588571757198055366247491603024605500971933263254404459717307865436019572319402477301285884286952751643674243941602031591430695979486632144711906173447103238810872808033846071738556892706953126257296966157286436376993602080399299606872409493451869418716842398868285909978888651625149606563358030040522879594597933242329392569145718266444403712803640847336792494109770921094446173036937752583980317010708441227912146164943156363664785719962197073376651827802812668006825739159612566297216657662062172086794183674989147387009764908719400288216716912639258134643995573882895593528036292960348231463315797731856760379273155411943817177708953642168638481948469255737686950379317884811792955483078699914124871455278757513430898578536311396276061261378611458691281874692535146839044701690521121125688879321746775222112916624232196371712505879552304865623430779001622556088347607931552938360037522670088627896874145862567345907632220206309715791165693396038970290307896051478603672429917676157099932658090611901763174557768370280624265100507844465844799356408112088537886868519750071451810089961990550984833565729140501950207451041108690316049736550944769883391685375609885000722989538897087473431451909551196042047475708430524787822295316384700719492706186180142992831025788991017053791174416600917933762604906978267904426444902501698975917456439693005672837724515144075227247181265248269141369139033812285991744005337189612030944968422268971032278128372209682966943202842087874058219720698053689968475517149138120160229639030542611756540900240119502611706135597479763887485629423605117431757126411390015247208150582491278340181260027047165844255569136381319983267790551866129515447627728232907060305614831200648789837186449311957831500192267092940314218425841213470320257434591874676013403721491474814681546061335142503087277837790689919077667638082391694759858339771362723985248182992993190822989784879712311798768702656369957008591098357249908823473335965996077420136135118619368397451431112405463621237770640062066751783850081944275083372451309454070962542859133699103575962110382527032654869066004492206987075248498329783738458460271809611709583045908082233986674934075724349773511551456870229108233974130415885112898649536621221188795554040790315512473664946816654001497246568766623496006516804579654052292534810920086710608486967613743381944302671962257873510069068383168320019148242441510641662273555920411015280237787740118949157248627545088930737009254689041009261926978787055939356162178029338916428315725020627577109384563847869693958659906957258378025710581761868606036617538162509865494870922186820103026356186118932254944345955622326481921563119385460656050035297781347345742515868369126131694381376524478779117801185521234386072153369704117849866161278506342379609740169939289758177934311840286552326144542854957929115143247868995024204698868132470008809522618070604459927255510057545269074103750236106750184020039710130882656002810455657755384482214628169930159197850315358262973453696902460986769684667764654217067446093229701248290543483435389389525352849931051387895045417342625165766235191616596986458144330787080692573518698752478723359806636258652314788845723549516036282222960191666849926474642995242020447155661525926867551445784258553216533473020722794910490532393194907077236074885007381863945614311262844004360465308550983731144216378613062348682213208282570268328270343988935705716000605432834830169681040397832244371633719856672334123946346007315470025865745198086104900252195779045322026530468629200240505901084636315991165599096215096405666390161843731463183914076426221679599112113898769985951867050697812732135148933040522813008165091034221807332150060326112176186392058053645180648398747837946192997875147340677387592375993549530574514590206522162414944085899735655879145035969277266121115221611532844900295342106817394462706010779362356899002273316987573732226376012436500627964863568099678340784533150879622579760280296534151160714641339757835820420498158946227593617395998657155172626256785857780134051540159759553509012632109411664857915122152400045180040199513185325086486057656426899522563828534911037134482171661227481381150454821359674948269403486576254234769017913933807024658039302202850613840212744576182387873056649591138361604351692631170117162287636743724316189789542395846752965656765797599122974381773889392240319539728972690876412467919973009026653022671105612558135440831019259307658714026290538182682077595404329720831643571875674903256259348044370648225540203202522325047857918729797747522409455847755500587171471733991141783132541062684735664853939813304525738535528011373578532240765905888184291453044324566528257714486387649544300342371250898475577982808304638626297181041693133623732666164674642610391054849936477367585971049762773328068743910375861315048099314636212858840872026375027752673390487786556422148324960817966858639072347170791749892561838769331624002417431442681776122942219233637153552699682632620475548106501518985270245194687326951483037457206052006441711473549076907181035230949155474882770310744871262887607303689314143413628242978736446566882272156807073846672363858396156783115310758008137909297632788409496086524848944504337647485736513365516997957251540548580030010054006486415770551696242289289615406663061824774149521770491448842542529714667069145391281892081941008310958426718432650041010726951763513497281442484062011483010390297310426588952290899255386684446472041802401499479928115732429236187725546251638325239588167601577436868218537705930961015528502784432529715891929739363394122340960231531578447572624205961610750778548120550123125128331245766588034851148703477070407094307771727536546812584684203729815320945422499608479417743754694488896428863015134769225679164871370143184833491023259328544142276696675883449490350038530904176644818507796599135953780957604694443608190895965225522859842785991304479358298996378379381018170520328883538487984831330921240646555704264643970695901405909095198859122976863274414915779289002441097364775517212150923207869667332304868965483531246779252869202310092562806168252421252877396824767320983470661854213584412689497784145352947921118037976320852472202518850088956973204992059549755629374390341611083101186396230860649159879512518998837387236616934696459480718192497788836419295090631301339395724686441098617989535265570865044649540353562192892402800044837338650896913815666058803264508687430606712133436203495419411349979048559040169745153959823794148256064496275162155824035558448499249421145057620012514398284376361473389535978606484762189546213961508982243134285326308844598115208004460267035456343108581047094145599957884864522692548219651518737860682448856978143474670859295351873303910968748561475322678003195454741793881961330629849509890621045557533866414559176313032212456143353288011784567487791392152945655533814457196989034019737917091219149525143839089888535276171816448807407076239875351577635496575999778304843246431780437545364448321962494977992696222093997859928933008843771611461174911696817195835895225499754738601911583956629515948086523286554684027996449791902464354665930148811649993288932103409600519121465768234437012161895377173310542946284532181111276131284873018976627439532182569406161732370995828817008993373884956755412224126979762690341332152702117824177333997744645077219607386652552846470610369541403384613839126638386140028399319804719143142841246510690115988006237312993601437962878241311274357393041225271173332753916847906096774783075660089396354285483809221238130622382684603000985018056263686547990309479838786504121041702904829337157558459920083945732256252650583165134438844643834027051963994947878578354986558285193166717169735982878541992783444271925198193853331569589571060137878168870513963329540930103059629401001278816154729167348036077673308491633883652540108291169229973409779649442009217959334365189589096328107611999016343731561281302826897970899973891993864920591249029762163477267733271890420670579217770473612179024665124188712603133091521007443124239291705050376376649087006856004207645882872184570500315438083427208891176008751272624945884436817836581174740899987239475811100886491230213601083251362490251533179043082479843766279523229061578601102594030601908371545409857185172350847099959909444163717314827156887527565694077376969605341199542744032143625328887459693583187802196013730310302262923253879412841909646326451272009124042481655673021278206285810596580870743166732766103850435127101858498582897230616229863770942341120297503264128083477882507794781247112457940115436357377057421208696892585087734115796766423947699936624304000200235447150240787816714231628750086245522091665787416005918798303120503907372222155925899834499094834646803512432963693156119278144747787567929695125591752584644738952490658829486491169974862939159735461107545821732829526941091431552425791251850642219608730830025877740762026011284953133829626108948280997188562658627566502269459571761562784948887240848930245443693092840024082616607048866108246661515560925822761343832635004598577949149571640165019232749936729862508444318036154410891738525682098236470666305848309741821745086440570305517884381442707600664789125324729058540122236041524012563685824103715509320351608206751391207056200567626990735790115045136774848356115492928551724757894102329426797037580991449840950856104529872772316510953453214603061280421330409017737698852695195855621938667885136427644516028318735397289570771896932751317505300704751626342921127645025506141682964191010225554866862101212665862771884725880721608523526273702397230724856087806103917167176157951388262551752886081029364186717370697724029653582810566377384735508275162042555034434339874294085828794126740181223294375801574708344627222442400372652476859457900400138868915545908580561080441855810723768842138216157323022881633663425337365857508680347376774164143893663841760833174069925382430908273976950123575397181081877104714083010772650379317140739037098052349486129752264406387287930922361207883086951351612912810304331007748050725393167411509016464574326535346567291269587760320495422395327828750820593947194303178148719171033454114224215077535482282505817322102173454288225052609326691783697669413257208940395595464315805900660603094049844168671260190730634692583610276905606528559571615161747569327310112751823663471124153294322527448466323138155506460986288353328550235218492469805138265325592460239011145689590050384270914707013568590919758717991948905224707887335553726383271195025493172202465732635020402785732962421108511697819621082581484168271740855640102063479432576063925746033731309004703246625955330443695160161297870526527101336602506170655070750878803050001642285195279030024752891449699831607590784507668111455880821087670653260377149671015261218887201351389867401485003274920575196650081967151582109298522051568561209448341750511142236603464977486952660939605194401396313787527329720260182121642120873013688050945864376397493747872985345826864782609358417033752381999452956215389036792335109543181740300442146510692801241372071062600600040920555568032843903571982357438992675782981250250893789921760920473187132378163278509907878588088387435904139104713052612577910622322170871101829445546029676589506230637742239280235853762218128839782467221680893661681333845339521981657647414725357960284500115656487120218805100009791354467037790994026931148794574303812502431906207256621525067245236084247777994501089232985853580748369976500192799291631628274444853500753410966957956827686754130783612108384506548950276810851755153599231878166363762929974403679789623396531533937501926622250818205435575292329764695322046825999376357317442085144643678000884873161978576118022421055558207610602484316508665101659900519394249040626973565300077556090084579046478057473991952147608628421964614781773458069453859482854772254424834626101218871288162582134966490002401790967274996437507350965876282524565429361173468500431128376039284337110874536796038014890450370497391328678331071786856215708429261227075663598738028553348928672349354247137698114105342038600786193453980720270144575981141368410762298932337470895024910994660275694890952496572479974434952586847315941163949881648084087803602290246972645731136756852721716774334772607494616592998782834262223372324942457757401287863308671457617542278613129607744190446819363950656211730105342296850596306045985538575607136748757502012609416083280742424422187306199291854857841037162712440211884155238686712331254727712097211188076378785641510635374165900719216138604543394814306111209066263393388024410953670400536800713884824785184845489031859256509129033716451569203012251210461862580452815579408980441578876283689684752974951692981140654704861272565048385911669494677583781254355322040052378495011402244855256246078635995211608991373510823410324325290604719871652116671002564962135017883681881977750651539628249923598565175101714367534048234064569977874719798939686168866469114126996154956730613612432114290035281845522971632073714076832618487764090175818435570126267909132613312256869269288627438903109442587148686371679745986877000674296859776694181011369447794124029075421787872003308300859923731034558819103060957725884620515341111755168068105122802117505672969421630601715126721433687983418720396834884732178238443941780063893064160205863591522260008160555886481090993783285641605418503379705351811284855709117256295858405546365734305202814748303123295686748199639438621860802648566941062522332840914580507493273694098302449931708328786680529721779389566160863467838851959529902224273879945876682421430509699910073575926000031749905320982819633825853991281934913330028992314342074101297513631577150632406557362317112430912047473437591865676170447029328453320246746690105601080660960818030297960564757849039224751020051896111130354919181783066274031865774283340508769370836900739769377218062333391630767961734978674894084539221449716468140880027810120591351861856507783438666321377085608154339742843720715064178077772292913154854028750997284458064055627555803365434115315679622090215197118227498491090894902627916622023428349049350437051713716274737888625822069703593239878553571613737089191026974100363581834454044719393508760491222036648236025573493189301914127142234911688124715306539901446187452117758372835082495203143384053682926301518835110551364060702569642497329454485501106839620942305556956904143447713571354773237934129723406193564707441070122160969877560606553846202190088343239814093538729745105290759336779351963296808100418273311627641930079641124245496287968210248083426677393901536444707749896669866269442994375505266949097977892109002689962409872329916248084230446061983150401700910119295688586272471188985139152934451100729112240069774261943083186520634022306692432561857623556863737298745626488827975224583364772346419929512524543099831713006798979204926556303041326097108841432741148196430394191971436620641629068848669648614743098487139830327227765725492376686872634237694123187821910039629552715541987822267265913035727980814562794340287122680557844118116442712000744121126741257254936609383632687626153409176035639820511315052387005796566885015264127649670827510000152999989712420755248005017717503294686648985473894782501544243798627003951388710601150275932303848748572315291511796483684495987103107505185081409131178226372599087898603837619422754335372614911707395261288827265708710682060273312809494049128336813670934132339930709382513060424645505548300396414752162743342777266705574829435920241313097517780440389148373925928285851728382701969368308405721886601659622212941828160479945757362823233331446029561406784501092202651823584719901921495129934881138271739001791758036359414819869440728347569136824358499108005837060746827971130329259025791628341781267954324202072603133255829488684557196495762277780529024158289303180438716121500840834342504639747118338059449539390028529999288160981343257469051506495194996726458493901819730162237246432154299264838449055858489161155517955056850502305621718796188871482137777987802727952236618893932153072305702131802666632888582622446910150085114324731359596769431501146394545360440870290265886560638850993928507339036628635606963311880181295189398539941186579978057171815859777714692653691746710871567786072424052269898341839357120344514753812173368801602973874710911045475513451603084828630512592931894961820331013285239667247359588665788566452320582287708226224059327212110514322141828330526017974935979533986962243713027297469277872102269648419643708433971553511590680078457565849499362916259914641320330945535870675682153714734410043158600717343465652718645360179936724038822204674080280468228303368126425070140533000988374275091195822587694903892472259122347229383933387809490524440777528134811250144835186723610384079472085296286298359979059399545046767622023359018033099826402408669397671067362745151782055837180093194920587529182027582984344683106471201360549198488289939638512406524093646447596470417688356691118884552629609603430634908997367290188762871744389106348468119628230854539446271855187917827588653747470369413208925828188997485492062165633144060874000145211591052938572135261323504130432772849583099266009884824973049214045104795460711471200144457663298794790617099388055355293726352349272681100671474589316109046163554945001570054244501193763777140849533261874730383663768629070162317786021073359148867952056371715541249108033517603393701107901417077689910481724501159340000865949359216542787791479772921987474973369218870321503441284303745835927037278172879777991514227875522179440831444651821455647997194196755108941551348372402757112331879500282414964891130871124899990273090993673747684391211369698364450613893918846420492103608219865536212390247592191796467158746245470440916727513610354101860273546883944446293890594099716488667035492660134264172430578993864535155737056544382096823315407446038171008545718584109133683678592534571060594010125577577709417876129788971632460489053735642797856274176793884724642787956733270419752676730201394655793763228494120566924808627443546949561237570230195840856346135348828636938204327428186113899601321932271845560309976793365067480283459975481801569950081259114188840396218034589030339990999505532309494056688445139709438876241045399136523086343001959178424036620931958681759241747297391814802923998882199943369415767539345347254647725182190400320742041227107008328224316258441442317070944943416121091188137747878790394246715469116546130682207462766857999283879796816398250875501390826611690074203656822638500049218864104574490403450448672765307728683561291481221861376420636224595874147295023510209780949514121295410293415693264340880385668456848038781744312494411622097558758356893924272051215003434953704154403978730746308131155406254348138353611738271790837392563455468593527380760782063858448911738013217923584208771330979885996360412839302803774357578524059651867374059928065502403018657233695858002573846304740228312049341978391764848996213052160749615608991848151452702340940300634995551053120324942559851646828841996596350882711992978668836177932965983806317700575606528194674696573272496983950323072511301908110797596235691208910772063804629900183154895571808155824870837543177698682538059697113382390229023141396362681742969821971342229665654469486212781166241213474246409854981889640889437363797393774488749450717179159065587922206836797933866838858803333861781343193318226913671905403888992644640602728253545133819532859089667464032903086060632397333731537382429041414756957662209489897194810750959120795160356957054429047130121453508641373191675896206927073586257115628519798375619956143639516598221017412148040123970451866159517194284884464485320916746216614970478896543611204403152155109215411929137657170204394799873231930200969352802172491326313620540472897298893577114843928574936238773836992617938373485707084850275427414967799019001091935477678134241579616648506416404002659806330170596062135641418368508655908620045324082832120534318292829824743548286907943743709435535269196510695917630633056326868388697679884566299095887325522878700147244499822815804627118491133606858785229915537752048133147630866777435332672714162171902428859980883704902067533591068327456924605300595560944121026631009792157363310988260513765061467686560269397900993563006393178531280537954377087566614858271041668730553546986239209683036350881765318074663522014688561672121100820652681048739306133376085126217682161998875520766018550079538382253304756534329905574354866580821802837445801440409841455072464442506708842703929351850202928417102897341810371348587726696941921247851887679965512992714675389548793984756204218929890971856576218130485848798726009251476278666914376123879938480794990583171237020448996600314147455085234765006035074578784543074399503554644613224369364505627121582407525595881070448657187536101388678321420169914336535760924195892779406599112743066620113311412796254606995625177619870714807829005005187459665226372730655095651474319196673778248899373523811529755111440153845564301051504144415905159466521184737617917105795665788223394693404121312840019436296726328612711873885199163375686007483284017097445805215462437730897830766869538149212913508062622386091528029268129597759688187654802442154226000174748976857122263679095706952431514276829811694965256509991192249416262443135544096597431617744755349569660027833827652386065205919187664221486365388780333592741909601413538963959862032098083216849597980733530111730738546875508180619756577152745002641623980550817918742163243162697634288977992877116562152031015821796633578356049496126888881137434594878184812734728801752253319363977040925303648735459012585054326059552688301516632225485913940126720023374910125952099482170226678973255775601968444911207244966491311439667234286730812110083089007308787915973714643393097928501571089439975247388296979365274975722436261119684890447810695517737252177706890739547708753367494149526075903027421981318284024707197868568640591045912511631078393646443146090701175586980323530318019603304819213259921616895663662076968656400883474068579667412220320368495699554541388431697716234480488224324204879518813904038171866575659536760551730928348672922524304798236653510620319759503854007410491730438686437909985372593988031533218200180926455771328074537833027592231320391789299512217720733228209595227710127025708347318668225355924311360364401239524188027488402573157639481219005351025846500486273221985824650520437655971228104485800434259085316452578271615235346044151398778202312245475062564813412659720044742250123983865418814789620109008249393212024430351529510417650849549449020502808968140603705041859186613493267743692388361639088386676187759111810184862887213417948725382078374908116518262843440432016566014380680845864061920890067855618823414818246816214388902952904468425375752139268256539199191307685007086172448817442852523841733802485090299129671359686638986654833320790191592308799750393452212261666281579151655024019888250000581499287546708491195442753686798298738013652953060041157780426175949369725227877799504974993201746727052354061670177618515736217833506762487922852014881676880470824017069379359479915136080759257667957973304242860644540957526860241171785476786272470783737056587823869398216075950520157959520478526018023191488036790830067698459359814904114286996509680441836495499502680725223196793948193087411224538241843403608723379931293545775553871639439589609732473188629689385055739180942575927993089880708073457201206903434869418788675893046348722770027393745369920270754527424264502208565545506412496853393689327979942166540716297535702133078542870135777635152158072670383605291557032848424003839487763294847721119300340711926146175475718777621805150435843411436366525433513385318501195562941230466512292985400579584001318688716078228409374937666121012464936806896433706881706700202951773321666133389487675289582913486371246352287733053779008682026075304431932052022577699856682721532945749506926004513083231942899247582608706687947476907595910582590144339226007179062583477915991791185469599472984461914121837677782710584212227100968588355408870597868828716578372807608206186547267580965826360774248639223511579557733795927091422808185472344864206463613812438086884515008969056881125198856150417339061792014915907337619303795311119785606945789443854342012793881784848509680106868379291889103727203465245742181706414565004601500642200864978848631050211137270078252879415123833227059443248673724746541129114855507898457760087438995191547671418487296756772132917060828746937690795144641310344169786485347727330472787114580817195168903153790654205712517283631031330122760651095900504869639453413790383306754276029113220823817801898774729369841377589902929112344183566127054395680702417435960609831017415776568880717229208357342111414172805080827502124148343496022611738676171281246913801284355041122628543266913016759791921942377878171751599512827370179909148849368056146609817273532287216871498362778044855627462438765710845310640479376959615573620477867103782321163849823071022181717378467766941047591302314062308150508790778250730650769821260063242884311704801801104334275486540788948406618353080154468636483176926915599518517436225976182824284336565612836216781274786510785531208896452641618140267868199447608796770078412252677155281845881912147321283956191694050021817827084212119811950700166668391917933529682084261651748520630746265495431308896361107999512743127695727220669485349902899752567904063601352556229878310901854739236556948663495698616474624952777253332757219731185134373849517053991154704439884643553529753491310732111631573328569056059462101990784255878930304884234688031814373839377338796215360631543270635338290431669298794050442460433469702428291036325128167391919922917602783123633087048622845328278596714900147449981625934920365702036848341458640338662626501855532210106472282464650315193318789787679276597965642259703938871372156472290163330919282827873158764382059300542988080907404742597405771052723314705398270955100272517229650335060292777589199967975036858061654468814828558821498122201260873110402836846359169606672863380996286072427609825501404214070058315583747838803619942545778486472932758427209983117951044368357321277676153535704950266588721685426533267610671306329270052031229489054823790781772958490885758715679520796981207439312818825249293495425818638493280686406970279532114980483220158177594467122680287262092114677458751326840186199237593081559881494423812624899866179274911673183684297374471190557887657172022113131788968479644736512223269800860615378410807443219296290652155603318566140548637274456222375554275973908421477761346476788138710105032906824283353537928330147644334159351116625682390858654256128476904645704969600277258508594143460285904960391570372083314894107827558733013300417308010630517410876024050211528664415905794115114839656922038153479510616897560146725562059645999978695285204181129516099773356870996360975876941415133898021702359096523499660070280547982181843346051296650673246597390692991064018370599830890437654124896015288805443361571476870535211194139925459332793370803069666192672331192256004979908795334059557263374306947865400592946607040004343806444855956389952965892053790094591455279231205953613897169199646322692513589905543159278230232076668434242647514463807554138801130537769627687470361027169319076616243264628653458706944165687448174857840525045238849434847864573652045853869460236636152462493063553461004266273212177972007813963064476884738507894101084229531219333132987969077219035125819672572832526977379394879615662087174781539081277555787738898831945077646837371419946505012321746563060242543220229967455066820124987515735106133566745500505676544297450653840515175656607567321255376802514533216649172616043452850268283104615916753151614068915693747000025356079047131568843718191278170115901944294750107483431481327626546110504649553184377163552367185288070804174733273803501527094846518904034842419080060234735437062257264563937828760401657273196774555120161240589735848251830854139387939627775977869879054075879997222015632269896619537835958356736781593708836611820196626827284307647101565344895225822812284347031506109054139918893346510702401454917713049886833519456452230458185678288929146895609467483723739226760463324444626714168990598677737143711720779962731495578233815660300328178720800156539666714125694981472533803720521054202737811737150912559602590865165885813020810363816667195289727458209526667615869141572157327872881983192977068289790974861846416258288821738841596553689975790573397253738892985677175506538978717035380141054172744008792077801781702192338047823936124155259477623618741893443496727839318244574631304881771368292764950078399723160452488384615099771776148870460952613812077164338729944890685217726101489562609236847117938037616277042303432181110138772585645752615682908319506440095414626785703111449231989180577520846512288711607215133576043697626785175113642755924115315423467703726585205757222351826882522583089744799829067479932677927499729372129262704394090620920284328935039194824549835376592588537082894428864614972527682996442148451250907306463261854332250095554340930722286153818653288154887539084862058006992085113215000093836830732626101666103072604338091228731685945637676319829360304934083251692636769596025130338569508261438509701687569291363562174609481121061614994715245943414385233584316373329439715517717742982465459610497475602894102121369186528847880194357875389281487118749018195768069853886130897777630657996854703250145918217772790957517799623560299183360682359771812135412163602963803324111831009590329229256495825781054856646523250024503023131509995988538058020991401224378550849776704985280770618469445270331519117943241687816213418597989172662692181060036540261284837830099580442964725826570460363162015705192287060773560052940413195676773644022809268498723447521789180762929849460389953785340342511521768166347803923319178775902851437368324927743235805251538680964829198527362092283111852400888600336294392659734682992593648927693452622820347202291903857236119273059509153419708165150435485226502680744663167183538695243695239513344335507465798658427025348554863150311679749976973272122892455695617043956766532509520547365757602104854881605726189517955011709465770200653310021431448188382963679891607150515664147258895963732771496085778329296716446426911221356240274914496132520838013608640575405399238542077982459030213740926703513650278205410708433427736868761206744855664784147022554559347676360106072035052779344816054171450731409365136310721822477235599157972368006536938649455554321465009120409227228263754469795566136447430573294739641200417386746327728260939973432047075721237532947919940148569659014762512070487604621207066591229165663856487821755237546549950423491840805889879591326074776091993624630239859517890334849220028091775895307236779207687508873677440518886853213643766907741440379986478887066158582519794700991684667671067514408308230378658559396896169363385087796644166139496878353880409667368209362104256584815508939852822905753469641561837302606979041286022925078888010688975453147545217191563169254356734840098134077091389260213081267427151903399669253260940167765587483641040459740632062817902057420525185812137573653458542809431574000762302850823734939788631024023868579455714114875197788748153200243792084383521596239787433850505507948121535415459515526544449428626190665440627220712100404494379832181321423921129224581393619417121572170685498750747466518013932299733138246051872269929852006882599491186167824906620646550117299701790119390817550837591936780206904931969789556346531377163148093394511908146958933901523264137884473131760657939034852007238294084967405487141858212495090141108981714200066979824979465155127835438915142121638196834503765727041915949887210784503741053884350221047420170870856906667656086068677918501288531824861010460624253610903348000257584023551282761943267853390687974405550041813052485772293367070139068326691899241360073913991119639223378532089246893662215545160767412595233634264117581061646295043790224863779174220402287419580277506161292586469415285007468119649978420713878481356027525384886355421716988761934645478951061272974233610482841591490704178872587779679427164896016499711614192172469241713867910326076569002238431537421357414647268903206414292601670070631849710982546097628942855711533665120135923482344733146579182726633323003226532736758217864529918907513576930588918150952786311594661240589518365162698243032958760579395299699624342139422386507437603970137608280770103892898425610214557937007094543172561838599132393186279474426451523493240521674376210794997088960073119876829127227065446409264384220031937293554162138087587590809435420465227134512302158651699645144702147876351260311347593460869094394236156230236407426045611725553122287643625445179607791100150784924121216825553489239751363868172478936692272037532661284324159127624002377914949586651693425683312211017770776481578606095413833752913519534604531964191425360185673235106940323239137569584648002368676936711383220375146225317845710492374994268247586427387086507204435966380332234974349960676543326588142884670453169758448489067198305930087633120641891000630549900534462044135490960656186184237477772186564616070781531699239337990748966004304194980951791601571831914521049757828531103897464149118974221184022952186403365686008076343709769828029283449387312437959420326479314995216872178449423288885169976776880799854704865408408267331697301067175158427663623975457967841045965602078485447103036438866913706054666836150527242014173104630052129028236212802591912185030952861592751535084743368178484855722984028796737817283760947395131398709142661113088156437819411845192924007269546624842439182105092261087327203216365274774202313082676712980233784070373367401298899211989506241320943269229301293832304802984791449736691352998893797772898177727301304047817719112700382180385998015711969672868944015072461071446545235167514628956948063325188318820048738237580170099803973061197542007308983749103698487358509169222137062803763893248740000897231120163351911296393356730901435060073168833265271610766477686740448959710512552814962304619880356091467015777695760738809331182573064235917012593048543848052733244114162520784027139750588651543299125527894077629929143175196608910780624290774288889686085670470551848743624954356963592481584298776654691630772874867700020614023055314526647074174719137969518864120795860071343485797368398326426141728239141043503220637062872856515979681218300139872938273454792326360776636936043762591662735219834729491366738396113913600400583093933929151130542557276506791704292368107002848678355160132408598611343085477309961763639864754546130278464441542280611706382633545568923116854345172652721981195607284116617763189754718050377619893436963966963944923451532424974782381601115197174616826201182630373212007647377230531665163993907210424402099327932691569931137393015721063675440031163450002019825790170603966330284983028445786001104020914792375572632938445788440559419456572320863929219387191582647119954921442848025317067238322973598817241340355768319506653500750608398542077273356058326312978184637287904610284852882367731989624821496576723053989380773089949171340358781022886687655325247612145076626573713050285248694018957347828938091202972985819763278804428400546588688001744907564359247321483413612805789827316990768538892925862786056912029592753332132391847025892473283143966206808373106126416195202155204467211998083351752109304344267324741166743418139185418984386363727724352724621361118531906681125332263085943531910589575862953794761227914934464374410799491145511123274357033929976279318926934934419646339582267803550529278565762011304959387433889510042912188991371242392362491704781201475124322459455096464755557828556582718724719573983727114710499743526854120439646993970468640554503532946003645994540393640678745564986364020780394013318499183295037932774799155834930024220733191266621646062121137512900703119888625352029274894822784811071563587024201914932014693031953076695382627573581564512696694308603339020980796920509922798597536467898529243527645871448303390646349198117342198504321644572825640402977462675163199111941862260364311519237712862784316279075149568653904460410713368679325999301511726400452250915297055532520518897724786607258742114462419810669554307580951975024038186070829803960293507484249797592591580506961182477356572848027000154688114413747609998386107715779094972463978870919589318740821660412012596319083095724445013840664296612449396943160681872789206116799465959264142273173572509615732824561691373698612853187526483746872439417049545020145241614291522723128664441663269400208828835152044355690666872565991676288741371302893396969566862476138848562639022309692991674353570328548330184536534627230348966357207917939602965515739340353748920106542377657086915398431489769173442571698885801728734831552650869107304013785030814612588311725954614053946289901838213493579959883402429437495850587987033534404480463390565349786272446770701806617559757504870162486787319673694880313905824500769328292364074441142119854241284476123851779902689833536876259827064814948265174407510188445004005244606149551521392731767515288401540086897352930836697005604534679434702264180127385838484601496167442314384548332814551835503220769213158346965869894903437843812186985009002453692284981886522696234423090991325649577896489701845551177051540905681631779481380980266330448122231777367777607596342974895918982308173493122320112936591785962121778027357143031435142650353498849959326147515952166093961609407885032764503764594679011104561293851700780443092188853714496911717615586408284773540747729855375948978641820609552839582679919283270935070786607236793417320054662042050979783379461619419103745860895345557595442495090690294532126989928044600177415430864253513649972280304701354471545262441507025052365152185328433514410303072512528499989475123234044377230304283286926575010260838830123658283000647692361697768594989565115330085178320998235548628914254431750244825290909212349661800634494965852498595926259818574790989538922792038557444491141612033761499107743507220618679107422045173297306321418567681840204315983975293188498280664249206820401818684069588779896819763646686856334944140835671038745520323312570467823325154705875683995977271519212354908269120431665806128599209305904675704400353743309857313854586890922646309558522488523448593225528281393350475916384532175435496219972119767605621671375779970560455562264234198824475593308169009441256218492722643895588117208646460020504155920462848612948061049884260207817112675607539762711539965948250680757669282740813557680113451012326708499861882347581320704882979016812159486660677502688640450215192323842521069589876429872183232273810476420002383949609106963537919710891057711008574382303416790229087756141196067808224340888961231799460040899406723048695937834570070462290876957152307056359718086533599516977798463845308697976550369156279164136440151387782981237494929214891277055962569789154484789906226507475044225690415493027764320846249955364831914112832133071840557937250572770711328485006470797000331181695212806537280805238793005158626167989224912990402969242164454246279881258720935481679584779787863037166231226695137384589002256753314973621565773299185871022861807030125484588278120351028936767036281895899484117473637968305463258134333769842668003654963085016956733976405878082598401431415475500954455542125298277533329965515740050675437938728845926658160834946230247954474628339879302764500367859256893125741904613498423854051358256258191649547447509382001048205941282776613050772789199480768651323822343732210883698713818479118593396654767613682702637602966009388597008389723671547335250911927868558813377585466149894974397522653223130659058156551932386350280441833242785960360361991743131442099434794308595377738031943357175182753249294171076386517409307158104138952623743674101541904081999806168683090195156874011537110982565766859568330706879561991108035952657610369108378109571813855522038335931753954054207792737865425862014870037731134211408433388743662044891479885066907125587167904923197538081674343532598933513828168449483894329369257678869663736321981003958360414456716316951631726065315752516754734140978842836266369120807418608421217217627763563625189468799199926889108557197350342500517652444196787411983084990102732613955682722987559610569429913728333604202161855787660130224207709587567522510686315433363605705089628549184604681411747401432692825349303856943845876759111712640537294686542145956601378738956751498451728986518605455458886461746847733721130611764999825092584316415333715991093167392101868929833567788357164020639711431297708334259617727637612226349188557148837326419249179496801774689338938421844834697726729816763075232291434543890346567520113777745103598983404456105022277874644877695788566733363629092252703838432692519968259503594414315021351885077348468527133352335325034981476357418234682876295138601399452597771560999681143572340684752069726237851796410117334198410515454585584211217112668774435329989905011922141031516620968589899495369552303287273588983080874661818564880841261473147663600933585370018759864299340649579074095913891858056132424192766387739842131973045156702003063349074967288421893226189199654062598419948124739701037900026160316116392757383008367911430419607493569997093391481953285192344737481731443924496146899460748664515313099853084483167275197915964460963966477821466876248555728031554732984467107411101788426821623057198698526662140002461568641656227067680453757210082564635233220654227611096140852578740458125952712610554424448145177948803171197554804426313614578890504535402758600687770882210951077931761732448484377653670776435144038697690342338474272960901065991803459825827554462402603946862778860332222130780532518589060654600424848976435360111970644895363743115395806841149918982121341702360721612385672586893633193001696050590191127374722030299481111618656523547051361277487303056588557297599287404018181154854060726812556628104679973490404786710378004256314141513368534809990092064322769553425948299531252494866317024526153328752716444691919820529840328544765415988117552793953607473239034063698954780212057241672043710507578835272572820416563904617938924710745692423980925007178468348209971520339650228663339672649517709989303997470763706662803790643896625014323821328144074134545861544847058667257123676531479654796997390707220505049811565478569233587612190032670335460277045161086062808780054980941445947564399032530929047221732788099916147924206043962342771623884261056203956241702567640165937002398297198338533579482959976611016777162955584685702454824053981364159338333761512461827450808108302686606421724569863624856406463780505546508225185854215946896086067744784351182272766251659986378133870148452621640566988262757604553278307454886470816325170163043985408424961527438818349889180186207617805078915877530607981703687664916410000320024496682184610720122849497101369059471125426193466744497045748170103680139979371889434523011664743171514826547513006197790444125722674140612484851493146369579026007764005976703603609753634155537717157553232419025494343810191480820338280704543908692150730636720097911939976025941129022543238519689565707090891628245326924893973507707596495185285424778405983450811623533138721601886468215303454111237886923843394335803763835874387112299953326521199198133393625066570555517219637585998266163860593252549870212812109705374841987218983949713653185809811132746472120464778152881598096308809561482529505757947761391497934859575743348161207236521297035798029005029417840902445789154995792431775616872297993980461439922208671118761165383314391440553833610578730851823374468591561394361218161146619493848214562465195976882280487394900045522373519292125147402792080627226972007416789797374440354146612165832430065364993797037683003568857481990338735461851519713468746711397029287134917364328530316636252761939994646426968097986335685800222855431188318291302591367197337460752907197142834146668228193243817185468259745808933889748802271349766471206330754204307441193323800018361617163620407766155458490632959652932028647000445772344736875248324874297350191160154920619749240381753725061795811936357069110467879666704016868197986691081885063799698298997630399677847774216984703618634832368439694861323041914517825584915534361857558217603198402955146550823556996376461916907802022720480302574139474169955884833946744958233116440863455826016236485142839269285632756840596107688903941847348823348505153228825422114365343407525718571346891605461214100969321970570309359999311518520202704253566788191067381640240070313558098788386967539217774185719482552244685667487898472330593782599822180665011194570392746030669968517602080956433177519118800783663686837078377118505954541810861306273837911379026855504939804861440716104730678374453449698515976451109071098824663124626821094706328038258524142960246115115754152956450071425042406620752918871216433015438494347848404023950779472591395651238833343365141946410378290453757352407867824048333173180195518314907455789406671029721084959684514182788238161775417758511143085367326160180153212986685143035782400990726846888071290010694738783124237181079151911395774735756761088455455813030065543000877202508365257553141974439239644120665956100191864511846271223447864329393142785007963556177797851114290139580393391383648549698279006136498832543641702130152712373204966252601197832513017210262933038918216983749447861913104879420333290779557747159951328664494679949066601725926614098352571564812677078896566571362569593747587420545777884861796248528736963166165644143619073602652213933481929997648319392451264690258250017958431944648658122112640407723450587290253133839375962648560767795903720447532735615976128113979015519371147273105110633379833365753423211784663746201876437430402748185127147979914903610814213561144224108402490938609410066152249547390288839837539148631877843031972483037799319962634162893468923606700187347293564198287915997625406404278673775266495286054948855143158959216230436701102294210319387998086117669387682086583197094242739654628345439792316916678664835116625172299353905411933364250795999378112650287791534232533958698346975459763860006287674685248113775411379324170044959319510402728266773655915380607208554110685093373330579917450808423834446229727075627745125963947602278603650093543632793729926406887949978799905830628231340055592531676766455400157188976011444611858546426329250326490073029119339528303938805455743399656903495273093692990731344675299890102147782198439300656898774382901529621714957876473632717279823784673381690168651831921060790638517049334026606295609188146618267968595287969242800767569791662113891276919454236670865542886963454015390832914212182059211773414357745703788032054661704183034722021700095291343668433683421107726061906257365898523603549399471691129371954452865997519102012939509643038673620726111699968782454174028472659120867364320745693467527901681215965549540164471635302871631233173419086055554747878430831286594414597078116165872735194893730882365502767330189408950232927174011546366632082777594831749823827848609104794565856947183215607464847988142595465058599568382643324119612491850309891062036625470406286229957344002385387536688844499075316586305749823836712267168547117968065633223277695564694015534534464477391238298130999787373595122661063699824831867893898835887550603447585116438984233050895487395625096187486370157573655936543499174151660508772976304608569383592758475375093698961656217150870931153851437569156240015852038929903280000353209847439909527082733636131140511565487473962190348064856557003156966010458885963005863640918018455793564796531804844933570490281766887826944006853514148009354651478998419286982229919939885450044658866537616733999274182766592324427133641319041211258094726215074736912292036463579098206956658517083040110746384847031981900261016983398647586104252340784954038260369676722794654412811675532750395110536841780347448086422227203043883911878602745625325573541393028841691853332968364933373332096816689436414217913600940539149064042601245807813330034684281496663778087545720545882325386256587638764341877014428966157597678760155741523108017375078539399294614968813658991044240374680097822409479351308710574985572773965871510847087696225508556944542925395510408581106582331290344909508936640580688657485586980739651388545096624684654975140744529455459751625857825916656166315309065514127408161040830836324029402216912618781944270863676796604202521708953834446206977327038431967078454073631398212997853596290777360724474686011004779249307863507992533057128599895741874864284140441531206506961838317603090223189726049372866532418383861776910119059234034278566082133002503489331813321617864491355849944416754681767223376782667828222266317657797532353017447088472365447745429498819542716265631759426295978573070173237727440643525208659388759193615136729383847508332538240071081477408385080274251359499518252768545477293247469873124939949044313640793158449682963894851993709756428557396410361788481077330877944068121156492861349242665543544620196474980918772812470948546798341149853650505979262732677025574617752610463227321982310322135250557940576137817166794131808595878775430750139458713694247716116214177222659932609373059445238117631643728265505173377994645461978247645843658797528168790320102737253758391373276420033413610719191172945834134607364103211038039322506958768396226782598434936826481456830019774140627886314665886126955907659680088632468609818862528150270248166613090566441413383340514775543353763323279339996593652836007275403153739617452128605877613509014035727116761755005642004111291841328195241841011849734565466058176045308197236786641286077078238882304900919661440326233167384032257923435421644784864529220598431242566807214359490738616094947381238939786531662937399449842783891342909104586130036917309425363581268654236041903940642675792655834039624297043015268282391237711091957976097274690093655463952414932563118024931714249852813359768956173138198149758787820502327226179246478454590842454124273081161819941806246513098633421516985958773597138828373832036318894417582194933637853321166288854626241889006611385418729239875715480755565927340741651448156765666447444091054452815869838954848874897386394304390840549916118815302173633538173711970539763740711874744248889183435846292503233650952296100671067740257745603015106897950276167415070088744853866562646018915820428184749602109851249341354646647414068736038154601270097619624976260168583845642582146877511677723072866003040900610685661925632858227680768678776958616457062693947912381671849740623280525410993090460842603924870251822665369137030587878521452498619071812239982229591032746594416935247416758007648816639637633236410878693801412134693812888698687904280312098061573458166846958049656919891225326969795038101092040277193634337156225814585207545206396567923239044162539543160331729796175407179173309377298059303785844130053445540636028461830608062964025999832583904698505529555191935921350577066846822466888704226304158797493631037417823558518147225337056828886147586470735338399367781855230046470755972829866431555787742088249809988765872133812793406973976660161132491612130407684704772105393979222486543976066227164552787117264865476352953133345321612687066553334900373222370015796999830701461688988896785125387098695053117339396630149938429458402353180588167094737681133447994574977487439912125974974649435244498752317423430780352501703914763165084918458607352492421833695255280476820214818518635461413145431837291940563495305726779396761237395386119916566525919967873701500560252101545868588190948221461479896382578784576627755117770864725310891925392735033002829730279466067763809352146693236259463843651377755021093390322316855596685127290926193199444934931470251369653211504351561357364535249543214713030337321662095355569425060800300348877028420060992061429754681112414737601167352551426080655458300779370599131265537825914057578371690567263906207234124937470076654976999923423427240097593548824203698451238673180402352498306181104054702104260416622063464971810653258892680944522520806251716029916685672068576467086917097590325465562728938369713108645779540479023579366572227842699182763915009833163206760261600204165854867260630016234973964263001606828851894802050494634317599908386684934188454137489575881224803966024017703183755781516060415187867693948914389213659937026774698168239421529108048114791705773540689201514859645965267192918378120059036877120387806679755486483196886279276648846680556705612043795668917940453742893255211447125340680039919654249561403471802387426779359240689683039064446296934621413257779181736239976456642920560351549902792407306540418083992367827637403539395302506008050519282120272704805715610155848373740159633400142258926528075820414167627900636942547261222436247426272153542152786710785274176531010499351505217342165099852159285931184116682138922452873338557466059145817245110184098948128295445589479774135588898473381602506275035656996469775418335480485188004749158009542061132138364986196247892840403429225352532496429952190479193020998125157248027718916334828616215740918272233855378449541123594411804697599487620523646697121657384159828229783263345026644773661403664857163099017676148066708685504718305763910317457383025780181048059926096232635039380494086606767804340962043363925098245091059307192258659229062813471553825154974100610984727825309234402869940345033897390456361709519212671163402859440725447862053435886933304680142047520311746330537345832088000382179350336707016608196732751220349450567730522907244119445202886375674810128624485591357449374158249304304776810873512611556570198821144781975575991263644697545544358789805363540819524454486237159271264708097718063733146466148738887731927251876258963492112587537447246925420754193151676221088139848965388183611595239916235214504206249864664918132836772477864970445442166053363152145729773494003907298619300881654631039592055703425374351816985312194475847394961314293625559426231777325651392467051113182812185765918527714245216258902530463497993607635303520403957565696515231476009361027086257155939767083465110072539487171474457461437523276102308959810822040435330711657965109552451730072213061431744159153548743852454281029155283358678220309199107338930323593889818116850533092693839301820358042192877260054495303862960761144906343184734577855475005140766964376464071954737764727053198300360791878353577821563945506551534269271754569254737856662070048605759152595222418726473459985941067560004973561233837271788208982607898507930932047034581394183025464099489647960118482647082933209495714994841006620515402661889179252164053035315501901578442698425027887813793399975851932602516489874319282804236643301129029309704393479191874555472372252568889405538793071965352607954618732020954363394126628408459595965204607860698793101596106609362496939197153528334997460041461471564456421453820011373641917789449073637398797977963984745469990167248187934850881989563790908731800885320514476013691443926913902858313186330497642848377968504917262710466716144314538365945318588041967821677042363538456625215242223181126360081465113276826577211341275788306241883648913724440481979439544016412980774961026853336778965467761254964615510005170295666142411075024990195659899766519384644849617763511808453797325879214240587848536470040303611793411854291762311940299648456315875877363180562129313523858039020743098389041166164521246593779441626973503491558304044394937613396318286412095676473620297091046477723094421068523049089854041670274830345043653920451626141898001857112526166142133245722902759114173805468105422362199443381115949179657464413245008195149673447349658870522919164506784911712308991989273524324745963859539756832750957325312981380054187287581440026757982253479910067511863216226399836140050423561506127398425425092708898909621131247549428193077406279593886778939846655506550827535647566841626183720463883267126018595831539702775073587928056620260227285212987301268643712051207060966142467125883983763307299088264645350708518883288627638376101025533707883374835352725267540565265081685668648882131267814120435292482394953008273840514447470666919127022466593249028169759281118369271180619234579850453758693949188607167832809882234163874676744019267036019479078523476205870164455627713974008442093585503644165466121697360310732660826289781517949304740420995514782228701754566432168663487595928067205711306892398852877811415177515213904460734639469242759293428223493879401496226323975009945252633127554996366979590462129255530555895768924507077057532164928044816758471839281914010323313062341084687917785808483409246649673381710024264740394333046674653094715844933238442004974062348085678267025772837100338241608388835250067668360616452399744571716434404612591672395989283949840113815002650033603405094046040346804729414286666888383359368005640205705211557432605122452399543404156502114163176529749691209064455906242185763674327796885821451764334884299646259449720050239303380173204989580948278705542627268957896812004842974284166342969137337452310063933369271535034878227246210761956499148900862990880498932632340025054446501300341345398873868613989189367413187466300587119561710847904351208698949560173736701367927594931451503820282168414370173761883183632817218567503001787821598748272673066280364778738047790740433071751334534528547282222032327332105697097975485329676468977615653171114970084821041120638588639890544669013423147499630219138235548230159769695257516892277028456919219067286974859117839023871960071018791525444147051473170027422969422988621443941095274677892901073371886886544354244578447855083516934286695708351645688041805725561413197019492583453074661129573431678390470652389055837760505336138534152998100670143131527445434200587988831343632896901928429301996253724156469570964192900631812540645346288033385581972005786412488571207458487552766582442607351979299628657861278815606503091795115189519056610514486404943509313749836456622204895232976781255163912306264768206866983166190850962256504142454995747997600851298792584545636866571760374399254330143817287177332905382566968668659025075468718849948430858471188515734666063002034906202603876490101546930706923076667704956958160095491249486999592136999255050339194147479005243036300023632233160464267237826706518974883078437692372842236433444716098268269516550761025427599102680211121249831073638230803490096351413484503135865826147727732094178312942863619980295765181080676848173504916700495872583545238618446588789399985244780373069706651031771969164070100521066418276796627108678910990975933782525339030694215459412573513537710794189693430683456721483448449538434184444848769997667942720563252987177797284442855819044090928150684809979478378983731203172052486793556180824335882400995298070416422448287036711208764968651929628550882156665481650703894415192151581734955517443863840457020625449023073250531714442710967076734450011793585888156762072547644331526543457940857101104121492055305154045767769478655792590505205802943981826029283559038689429076853622689595774346941847576153854106304188291164416402136393005229838263740590189686407643093102853577526284538002840923681851709194679181782581281845595344164818052132255186568988206399205196557593619515119098632473008271405164655874346138610383837018262426522287469432771352177896978676977923340439585441570901003025219871581616247228973173744844222780554074229872131350795326447098786681668389859386592675192672555871996588862504223677624246233878525348816604830441648380128123408509441167794638609344604791138603777006353439845161770211066599768449574425772573409931319944372713037303664406931488415890548748418458793680597836342888534617615470742109233008243851835878937589716134953007522956895218973436086054608897498962342398822992843434101304572669397858473527812872736601037712215069848882274354583731184652982059364925694530900249552857023375121346698462250863430659442432696462072252879276480554655472203171441928216351746059127394679436807814981024932966615204586810399018769137450121908546706876083155438274267091789672197064231961686043478102270201835687498570103893129092830022496364174040874961875721388178234910643387632346762394067287238799897221923677272929157239838361514318828443150316789674600936972239893675470536355169468704821945950690808808139091777596282452881216379160777519656396011731822261887143740686184891268896127073536025331079286868392904712170478697549679539654876757536927270298726225225995124250895461754736372599505232238690563754504010940876427492210597293681209395200349564960563090447189252983301531416365983750251573245771880864829138272150750199528580341483082885229617628848087365377682768354239365068438583434316007967023732909724065699418686249602327799796673769229922813779161381923002107663312591672267251024402656878933941829067767979579940242525811480024150323362275331867783993856981944150973945151081089518909619329951457716559619805133639056707124319315708466048233454512113636656779231377622681009479399520724064211383065930284259096496965366503776205287587101565179400118180106043276550302838725666439200081114157089728251553758184536670910021224850352841246456901070218611180934349360383267485445603517315332679499133259403486388997248701767140336269378269610289708198582544857013365253159920639393253936569388895851181460122530907640933125638214428438880086281644074823084822600612919834555296562906476875734585372573193729447630506519894861040804894409526983565052964147593119500051037228693390977788805842703919807673489774450473128278694826371974116088822321055102381506523249361928682736958450124650605375742572788033150224963638642386665200523918290192873537665829365283996706109105074729763034726838168013875320924814608439727147893412430024594493789897634835778157017935191038100582917438418511101154127681798203866304903743817027853560632554689207384025597997965965284054153398234427664056496989872171348558469866348104319255212097918340988760471159114244543927985034678397679558539905527799008031484453214054109935012647921731540631228024809128735950534069061275520374178462217982263962621676647131377613169965766979575718259768938327935182781336282332871182999009194242226627107282847470986079941989025839154238579799829306817690322781506625588283170679606132273293824002500936605407559881118625886303861258158366978752901991470386674594087405003782359476171212489567051790990226156390833313266720810001189400652823635687342924845153468708135691153496548471345395156815835032086235452103168914321989876395275885209770970063152980074307429314473183762378814603982236765761616463079001516911389284980786381431519024432214661645723069937569464125454104321944804105899987111244877782119263411559150367391344342384498830654679642747866457251257530296593345657267686223929309578178206880277543313108971597444960871329155579377395355400015964097727748118042401538233742902580216947428856379623139600509984127727059734011259259606660154940246345693624127206868205715593240165610366238164327659176919567786002616507489349550907611022306720907715087527467490679795954824521577587598346665918166054705376423243125632239142853827221600901877752936095248148465001313024701707759231434197284431523026674619358732809649765112623980033802330164336213981691443702346796310186465667756282401381404529613291261273364119180681034574265751811046086598442591651759911620477695029685325950969868027804971695558746303992027198912049431579930377794016250093844109423508490350917799431498726326971970071685183075234649346215372245376380082091596320271511583401801379203019706436399970538892248963248690338312877597067036649431209006206213082733308257224332372898772914577729027906409193829415649246956310138507181720711422171794316279979827039189453306019718048902222485153834734760787315529948570307191400866033722435802690010725671722109825569337802419012058999665600129318877227664197636086067135366351732643499894999204750543172210065579090274146037669462003721741328947159530778195274330237063959434957128998861617314714633408196352718834514445959160075683060796876560311313900454979116294831246167707196960746249074196035462523869668109232106159266883292150399498224271766920193639915064193739077407745426077947591543022937048978207763338741653385377522303993795281287115674353874212349529950339651832904049232906719065832043670455579483657296133553386648662737602067460783468429109234908956310147068427422811435974937688917982806341764357740301372763130890720425210995279596635355683889053989277893603924720241350821195117511537793091379232310644361080583672276543047697593937643767409805773487390417880300483573840957522053721613629425874617253378175659172632464765399154383586781953205726045241498036322213711275371388516535724077817394227643074500295962663638742363619512260486100614761173509765262909794514478821673139222485099721913078156655523820064319673810952134467657617587729245616701978541759212939837963705724451413884748033799939956014648728099198877409435518133044485339348873966837003019791409325431920051095452008383573417375768212384638634444333469928395713524771680301942217211684626044983822279853852683844565435084338105343376976837689121337053399248676087264285863564580525452814608797324012308410432099071681689125685123144720930901252309709159624772909003398903549121789642396612393790338583944461536322539151487154235200614616738366903108503788401681583523689707650807315779857463843061427931898000654519287153421231066231964422534139260708221477202011392143224788553993723665151047345314683992792289051820157046838658468875109152621858214280627463397622578337292291430113954631461474390621989569623913669712121186289911733908285412116841118411111402030517099263823096264643135666093176027386249582831059687076107021148371819251055533119587722322990392655481113586187620051958033231611011789356469547885446979829853818205562670511092320693369508085212432543546833849567543656246059063556497457654607009686761645804386625419376822808197987920343676649950739505742286883177540196734626479057725264074815293805974291171963112339081727901993934321327350643267925601387401774751407985920718120460176008454510194623412813383005697226426501502407527891933748124932776568494970267304429687804314190907614442322755048196595477614382947529782802961681093586420394261116909204339762620018385836791988910705504664533476954784203679010291879109589481766747094987172586582511147322657214177406828309450224987300680793107968791676375444983886996509707783905373819940982171963077321918210805825678437828171895343824527588942961424271857762118561225553394497301244556781185582600200516554622581677394379951398815057248684129953407119977295208785605673002742745633216623266539753193844355030090121718048178361676731720467685847356863530872172206984656478662574581826491743580850066180347148976457969388515356846464554886154073062233847810841129851526071260628172943761930175123185731249464514060260308689878693164137939269261814274516809009084505854743919774462555216997126565593383662013745391860630103331282830179899384117035446950271040853047175441118702291785589283938769980764868708129313876639927147217532061479529047227453626219831697098995267591741353475428021614314065256505652360335434252979083583298361277860994351800280470933185708741439713366776391476981426785104319781913231550452661525790634473620022035477299895932109708161522013438447973261987926453167903199068002370488253697246762435676428127539857127810784236468037071656771521476846925343011540379144882958100208563135698878113943189167852049798230734253345133742148706090800264024485965018773955550149779898729326476917122393605697588701720154390125097946194911583960596494076892660271041255571386843820511293732061829538549605711836225006506963970997458377255543554822150744324833689082245041316349005371997989266096095854131487766619091206198031692358334903924017280580845708693531885541417481454488792253427304396647467267142275385969814066565561243224012471709025228683651178684453288636752811286008522039392848976682806363310572799294016525304897864570866238447155851016122154697663064611926273431343709920477873705299371317155534915552019453072411469420697517636871910390858368115395228267723006175960298448100782764019946248390046516427532871309328911744907019356413905102607446479902983945793002205762594361247738661621097394407367843506657085018471620645954226674936049930440639479317810347475988741242356964579015291344039819623838290563374205946448509584338809824111958681103215534642261802585674657391722293513552740125344869965658816815874100051170947230415809318383137606843159447209495623902171122868347401217383463917548719716310013471606690747005421366676706798333336542789187317654326743145417732875463664180374828883992913724650052994205283358936021361745781980389975565651513681915100203612981561858899432923979268190699829559704189449367046497329537349658778618323172081591016881767630808168547749558218944035986920505323473768132130158498294437961597217217201714874527845638145408332354057129414146220501201013186797975695397642865637863495309495488763793368135427565452941129903231313610560171159792198082742056363569506837769889512795344715716776938416455511906846734795199028663235483035468080603595151807705824030761440672906589020828881038539351649322822268922897956912617785941160737699990408940530877486181763196125782044451814244939857238160861171855874080430190636291468578265841862543090701890964498257039886437155380460843166000598133955413515997721359273977942349710854098064219267470335140318855893318115687581400427875367803963169176844045769256981418847314959537269528996428973470237608943039492140340039398069099670522723831491668120435396228710229727934073001997520716258874196560080007190464164506508323673822813750601295794812942242339272813148114040623216885438790156685113581125584865099690743843958843374330663673508041497800447920543249666469522561428142068920107239417150757054488679554043458586856877493111858987841685348785346416039753310923464614896698756895561976346516353243524727906741885227531132453454937586369571587927414245537820606088577121273930058479307180322380235254617065891235041546906467875483546154372719776449585716533411649287560529449252735854884809604981985728845625361147987419846429175424432183048379861064121106573118422310061209743842272217015549117457487746370927493243379756695366286185081780532993312735507675375420907047546095299385750072766618793164531650170953819137202202285813752058947921998913288604174460143132395529553419193690895151486533253977237260599855211983299761355707965466885189549939353686195627813994371322234202382181391688795319747851485840862225688083418244794074516093140695668387463562022625826158506840827673184893489256242673844194064354318932973963720638385974859143772993751121003495690692380369839301438643846555615497704307518061636931613478493197352783706649638628405299456287908262351455296130425012026609773064173581766025368705874585852050635180169743875251420199279454938857206894307842078699650640997988600261574652741497707867040809084854592143564611987271367005394600014583678891083169699268330358122887316954183536111141025718968950165504978740959929757724548808089293416575661851896526929252339183645672237403559978140504172678609729886374529435425766146946479981138265943648158244987817020435718375281734210482551003808872502692618110398084793179409496596508529683840794475922871039008144589460553052898938963546277878578383217321080632339103494764054204382054591397016410573731383728146910930083132267542227205674555996644119499498278318897699591624587779231922664010017091287678334677691982025750574067630754833431298320142291920623428546563233084194840691048064354462289673697191884123504898864941865778689477244545734113789264826288362238503068285378545224849984489812840998549023254817587487839875567118681273442511719890939419373983219638437733116289355383732769572826038461198115558049781291474460970604631523685237643694286163148452190918552609465471364245500191842940046279754579361113944077947349556986894646562983813054443448928060021794697601500719935780151392122936535938022418511377596652647671650687230533983234230277995257709249950792537888365008663432754209819623532293752274663160954770561703196936959751096329129560574628416530535301112450838294193834087464341160021886127583611958276249828785821744537480181814486943392149564627644714825240172892260652644674331145858959696214493952320740249981035269397909041495423305855686677409508141009319019163127246641905459479979439659121089609568971872053671233358527048125368377455612343789554389537514129819127830000375261589934980542429940491988283766139059531789911528025318160536956545739518884877067036421961759025696855746846655490195792658237880392820261669057114099142338785065081019787771491639047033089817308569211515611643946993342470003216011340255346845429213435507769365590697889381541553222329228424880641063983470729220234384460192572681555551579011841419552582586096942891639296650966464442508953945989785130343296989208133927056917924576869380988716499324616479788821341922300580501994880572838699486428191972595021677734620480476984719745226242011069317713013662366331053278413292308886026639458453479678851022283397731233595721606791219921653896130837791211738485120790463045198810374006256182656203828412962787093070375149883854481162776177157869537187873232752512640644248340171503724041249944121579839739160525370244533135118282483952083681447308017189804379861283552686708494701713287480973034084818117104437201150742412075879416225336242332454914248469055036816840931924473593681595091536466795044767700033919386945857638004922207382547504597014477290346560720518558989985444003115876969160697754738424606908400302182194989362498960428178595480749132612325223498039027013556771459665180139602012275671599046736031401413029618420634954775318669127184753756687105038385561746163229646294890111790358864312644677435067674570377073125409624510570274904866259115749877839824429558494327402567855070105329290790088605672982479943406326129282815930451771068725272700798965386007047913608493792465694502037712066393452499577820732795970949059618911909437844943617408488512639527404566691817215901740177179382324216637373322912942199239345537790099620641343503406004798983833220454797944782386576849156376115328551371786377332031318381409506296338189800858755955963970443551367597588723043430899801228779538162769118009741005265365112303368316388273736908896730354036997213327410818694400837158171955616165120593301800592569960414543492267483571757934543066067205088323107599263861680008113649783999562785074737084956340488342213075788068828804604967299090129595831085752402269653355064877516409659592342454141625368922173574084056579030523824470527574007438172708861788999503970909425098694188615789081078916323990246236288850331864416390111207472370282597395178263389377246421289687991460271247092764234822577581445239051198136415518852358712164138402895896695669056247521056088610759341450310862081074750682056097937287546832739449728346106173013653426354283156481199652750539530561379536265294786225286461335815325710368770554354507465727901613304269837182279876177793444933511788882355845809664584538674200082524647822559209448141290149517381867247051408471090399309308972273922912905696701803571631087210780786744810877989388646604016824543616683031932439303917846316406989475743421481612657345336002358531867107292310428062308914996861152821736511331861271387109867118731037047426166031200031246673694551807994900961386148973162083384441352446309763499575925872891488639413761312080234304873930700352957371781732874123562067004030953533658291764015335759488165177867439561017625399157204643622875505466545930650200340473780854514567203223576189682688791693683621899209934810913826320720531369370909991450689648450687838563402949593770036882188427322431137143395900235315995072127009568930667481946419990455873942238884497547722487474299091514883468102603972097787579686455217032374251669234292117046337277109329927252781093993691385812768134192645550995205801988138306034495896259494904503584743383128409516435106682062763148446825669620525177340390244954579479116989787792032432020282005844231523695109997694548549768571603164986464072079329173387626496844608649037676708734826656364635856979054354777999551081056552125878899906136252089636248932657548803590260481699510711231182566634447429650535031256328263461531371667224434336569534181026159491688569036588674758643796636542780135577599092872682553396156182152840280095765810875300380029081338231189300875785451034647376892316794619461133684931241000592389386229176670609865645592330024781071801829836257847426070319690155423008099792427646698359942508630325008626005450971210663995929182075794073363643266622135496723260189102653629076559660886413074713009710695326940431253343895605322695556408486388678511033709757496145533570356726147693178251437735020257193030817573227131128305260354497830935417381116562462498613963079325849257520388365507602061937430198088121611114527882947765456339094037805878290503108740501187949855135763743575416256101663895600552002533400639365599575633641708686987555915970929402550978409867365951415953542832404132171681311312717271736037975232807766810913675319887314924541440692476770129089921145031217815725261357283427946757399118347284588439542488265665968537059097832569555066225200931581270870169030512427580327675943572322756256567723479822149707447436715778094051790732417240684102261342940449853797203948681153176141315354299011753261355923094134406695189843257088373379498439650456442941909794515082509159794558442978684545463194321002666146985685820933316951174487663882835386276332153228994380477593133098650690162738951372971946803276414469304624515832191303652066931571751659700096862197221674385612730025311121721829654915873547312885639388596053264420284087746636606665320268953819278495146025351291742109480562408335442075328282236337979199010388783150116273667090106470967008012449797693042396930756192895144275559114645263452783500930190563202170453429212383549078371480333386124703312525722055595214129221781019789190965803759717927771910840752303790597558415587056257589638841871902731279822522312079865404869706569664373619093810644790018656922827161440509957225143498947306535291821428906660470199817043302080062392219462646040521740087520536139424070432131603770749828607061427239047391698536125830105402112072167842725127033053868520134765163896088770690161213472403467620222832862853272028071200138618930770918951928529879887734983634609669405748037389646382201320616772149416010929925309289972507750077508273026559217676720022884532199470734054758304059832423466873163114037877560541984505712060159267728165300296158840849691595103347786534747572665130081171453822978480154377140004673759145206043073470610001160590075935106272667382408665618058341302504922211814438309264225187720943654551307725139783371201684889091306917900775296118533154601443071663818905604434357447509914706827619017663446581276109595569168552650055054958754699588299563363098528431368303997259900023081986300401762037251591313626318998429754070035287869006659433257361354686879148138813175391649150606676355254926306451508187583687121194302737353409803628230495139736596622804158137123411364407792613837169962387502749759503137169014819988797855272799887648273297841608024252220550978507790516813891096077157090849665298264846097582139316532581869784474842258953012660596968190941463022168464913492409866805679038751833326991358285666535608050645235709922414144715638442563763259265865786640896269201985515591022212408196482456733600240564848078429432313256764498348018502788327135720231287144514453498151714525722687983452011877051887391316627792983773126632624164639773067622787995464198548454940138081022656575504880456719812160955819500215145306656894943004717091434330079275465567268598668962527623698730594756423160546032913581275153078575290585221743890743270452674508073862657986437792343980715697729415451426287119179607585113701751759375810691085085414428697254453271677031487147764325658822604657622113205099679917972321644691614133693847121003696066761340359504408719270579774738014878080279195988155081977990442805827406509479496365987539403282519915070947515618225396847130459899542070815758320737634948381973033383511441822034413872572962138825553754039530279458846762248779106426459463042484013822748328681172806108175894581045822868384616033095420502930591769601906196731897072053648580084937220822874889357434321548820169102516631265973321935957528547682435091162610118744995018903300797374188225303443092889859377621807598405528816472661649337296555813865170877744377921076701543657880540708538995882078224271408238641199052973024953323702184364344685609687163972811158823650286222763154861077439068109035593726262783313284956389314094227769885751481378119880950846807543395251801655189190816456376179182051376152505411250878557743469285225944941555156120329701986465436580773453760414096498766365782613210620392818208897805297560934570135988689336059634496638500714348750998401520164919856742691266663308349159611273774196995671218083912207198716007815839637076105651595316018760214037409246161862405646184749926460971707194764244311173491315515414307135303266799709224937237067023076298535412653922562593191112542713085429090161926728449591452650546372264954465016843997139862023658857156634495547763115226573333657135598555485241118234864779018060023082358483168923326300657712367908693495045260593123672968326383261645899824172495250913565706749421271164261767688387627861790630744919269363980383070552784004574175372713734614342198127401123444166543724893032719067736247533239483193011412220719531348038234237529476914290414684709211287750441919365987886527233650035574665942283360085230134491428174373124077996240156582954050907090724203765132810780060848221453879816378072932333197516205386535634711149844810885591174839357841659900200270798249477153033820132253557053602721893904453492467490253355922845065338812022137051216739379250001893924778819501270768689711003033332500580322123843273306085151999267376265389658950128329887366048301556454555025244778902789946627276542151216870131742151249339122511581916141614765711557998873701271355353622067526895845239663234003859296336349855400510840415336564874133323456771358826104190956310706657979823894910147267171914399623199854515237346682973903122400075164463098528054345974158331139525278325031861106595110191400429959676932671568312997680493348583554860834651016498223444865988798890845858953403724670708928294071553084060158486319810337728616007412429269735827895123419889562809358089004909919393687288546869029960786562104575123787996170402233057377035593202830074541295142157169203129572023919990460006997199805458681647406050541798770827088258723901687861895915362131058823170516121091829414961638634451886160683445763142885200469611477671216827373528121491514287966228157923829432905205159182806832320576806771451012902294822915260169305150801513008758262020148346848848750489218267625825590469342103122525631462191558989312284125709541777878820302102706676593080602848363197736449209727189140225364124745427042893740915147356844584728366778767412433520292581233317865443472143225783297310111399980599030651583746730528613379724011943234973149566507267614110668091082470676587585648207310130973142003185992214289368711598470569888082495959731233759089095629304275813013108311726122651624136260644565635260779316793560730032840467035726124669865552378399723281235789359591654590821923725558171847502643594791106972603253046480929686331552207784189794292541663547656827985116268504353016137892346920567368484758765527267939073392870466648208494684262389966027415507384344913627227462828018692596506634869783783406580456604193922817162418291145547167964430492068604302091413339331348383926760191526477417868620448807389444832397797319944103846954179059480247044154593225266892358705053733325133029926461788873048397670746903811878621379343061654495977425261710994832764867777245100986446487615259140060981392092685045228406114081563497570782383845856900703304176222868114849472802654651010824826542220509553501862883793022310666740947191377322885226751561091568660448312238830769084212492076044612095625834941586578263048990768822019463576206506776924254349217673253734848709784059596773938178631991985773880854916109608827740798357276500514593305736358758756727156127579116446576033314405259834737343942265897425187719293614742201532430147282501698496307697488871683422511155416578419174598632420730955953830840184752707494244146957819143484999590567949406745696657629554009083883742600200448240001852429338644298914629458403270789454851831748077981372957400300870424597495922524099936555237783619101102546149987545787744320065057223250589811627631329024440052689653208653886368334786104258309695684967986353363168575103202549724651777539110805257669251819375577708702592773957555040441831970662625753871617349501237410325699566931895090086067067329593989875322166155313277430554545158676961417261460563142152630964556901914814407420720444618523607251067040697718541971010278614307920102585456480894443034446041130468424173130169040933228107788066006461007321788821280790748289462243629188216637270496793776346555055087128509136649447133944689074676062826505333946226376862056866284402903040608560300120256665687632027202483975070886280179291421799133783870978156653475717673449535117950377885836590111751988383834209041150200595757099189955122141614477124110215930065685384453946021343513781349734066554422765468759807735724930529527367513123524964422336277059719704122251984451398884085671906344325546859471972757382404488905398011943418150791940396626277805044386502160352192935353922011577918004344272394121968013496705414021840746153416408921761339364351986860089329717371493500731729898042280790809477164807802405741375420949101103702344362434420666971891400937862669880709869822967079119530924804386209786066846380651528414095394035051036507857100937870503369598341695527269726968597703584344024487562377497223493526705088863857259166029874871379391851552652907341593946485303146637436639614227774258871192113111746798618410730764470072658421019709131444239213424350294246981037729227696890053223619911715318004592612661851845179033447922222366370019657594834827990332534376481430268404853456795779780676182641159239708913001845435910036059558845524047342703972253737061484627617806968262403037648100232157206589954246141953885708389461197178739350727832517571984361867301921067515188639015435223886233697872795330821491085420795850512510691763051580743662983417614946580273254442373196805157360000424007783635120854281877335454629928782562083419553523043328735955430362456815916488581184291182466459152281310292805489461324296167570283342793352479746138181432428901938839611940665709342421664482570168083057286415553146372143721096749419366996859506097077041950297436236059677287919528547542650233685774923512654670194581261217309674921726767749159682643411766147872921123329270880574160867682679365029340051752020335498133595706368736182914943897426376845865094604182668070661005702495171163694071538277532128312941753130292266026885735901566184833064764409021250056269886834651209536649076782037345266138422202516047350477877133517947759319953937764646898850822102296645387381886867180068462422070867602216707880460163849093870388079969857702609719680719122128049118706469960303515912458932620425510132738994594658150960202312826702336629742793816848299830544916618075628047334670676122159379747498037901824309556990228058725198170412780879956701788589124282545360452142131461231221744691245342407217731854371635873536707441057302095649685712112163280697135918151060182113162579386624292136043287472629356646112370209536809099078238608479555232523254918825424921638289766684224053940925060083207228983104501926294976353718768436313194836357002003022884710602642673691880712926851684975590596849385737672803721936774742623189168434393270091157864926246907034276474996649465334784339170692134624450964356543709672929430607962468721360868585335016322119376778269907977195143927388920404876404592595540304096623097886720386166933459359866092487333934689750035835845170641306057062792889238542143450633824884177547136317590282693300667662698131904757865136424920027077467809703968392199249385644418227005060159606680377824484165122525057727502075636547842253417291112226829374347126866395768169588291854276645232851688450388288060328405336417826201069052177395456253635776007866697707811369840198798703658731962470193330853026695395411149720667210375728983512704420803368421882707941215338038273373516396876286445633098922532181929128673267688658655590940529912965734085362408632591443847725255072202043336057291305600584518929928047242969696608174690004431444319804995892322360453262089402457752795217534786052806693029666266661192695712676904456906897421761100468889961504755360306319551644042336843240250285877890628139215386100637164591058935937582861924551579245587899016640477255080867073798582384429610354245557843292267984749476261364382000116726502772477141302861325039775882973698285257700021369164147781696830645247400203762361814501672718095349698040534513217260808389164381750775042312192582864669133920202763541245905023985318086772513985744793639457386581355410929479535672871296156216095545860991435641595427689849639508306371931683858148985698061255132700023879670442055773244189511985939728842479943093474322988119034008183327830620473886103305205448218887605202917950621098444554876126695409063080701345570498803414766107504189741646777891483784772834949958243754953391610111645381646968856867924501693009859727146669929425123626283404586627331196482644701510596718953186226032033524798344152080417120934765013610982271945335866800216519727433629336436720040180325552741206324840549320578177229197052152001263895318894919880825754257656919840044810543297396656160567633463202032620987625195697546097940415733321543180836608169198121294286728114706482274589314554281331529373297626862498831494793547985081998209600618515539390438527256808411613001987199222877618384401972035180778529597552276389797287101063783265602552600843875446560944157294488525893151037583600931674939112814356365276952798562142368056348916653861999764909848242119072845942165235852200151762022705418466840923592576838441698140683408501771669668984415525184620866759981196257868751717863191584647198487101559235104346544337653609375591611904335107337787623087468411951601968683752615902141822394801575607824683357581089205578062174866411437758610291010700103395844222931431383354130289940919611517270731790343669578018613841718667983154131831838112905716592827226977463979129637572534871719586313013427239309430910814146570372697199001244226865886001046534231319596049889951703187858372298167943735571778439933231475342488136377689115074799958998447744965091753546923059203545050959577351687162793834373489388798723458309020987813384085014813289746465166952421568120387971396918895309375647899211733766199928048102440156303353381705014591698709529813079506374438599176705349373712623528602542992473196630038381260387210286205866719568449507496881444394064239507469279092115376321564434952385098308041909665303666672990537304410202337172451583272164914706981190906651374282956632448202775795673452046649239428568977641650301991251638108181797726718089663528325084830233944596550200111055907591595769284856467158021022661088699068240704722822091885331763776986544962292428897738179724033120339321001669894061067096180894675000031610189572815072675427170685062055846772260756411748854987148495247615102058551236285270301121531079152800637862893026884455761777520232571389275441275322456735172939809153620305235002911124807979239098629227921779100093645610645951097340454759083876371289611751865657826913641706641236565847312236149518800241617757879492033302746506012871931229721973943231103792971260020468108317745217489875127311916130820896891960101965283079370139326256615824862743162758599844744647400874704578763383601853038449287487780152098799327776834374575390209808120013447547387222968592656264054632328848832132389959047332924253786389307965163744288819760615398197743967928589911302808227100299665639970230619069604302867272515188338716621117046574074350091077294186643325804888285951352200457391771497692290991512684494919305188833240479386018689896774604148771963196703074681423653150261203370530177785391096392924305636632734026076210804096661412768656036434313570739485667836601271896354205101364987258878340304276085015804302219682680085340359440614881550644861923022770706791364044803267666079458863558845702572112294814709134012372870614645974309851476338571009507653737146828582879006025368696810999412405494546828573143379918244207861020775986964288508260815824397365890268536501362672973908269977756945140403846721072586384802671866585450583389147814905813781090257577007172752451837416159950032790051360953802946567257962147343699183735072034427897257221285039435465232614452262771543486021775155098620963590286288366253757698516754440247999394524954985574180428428710303426860721422097033486672146449575180280894024581685437412462274953145116773404542319265136646732549323417060281417015989387484072623597959730469203360529008925210397957349753974342538696342484504123604118770290279050023022997410287569600287674962810278249292472314804669118020484054356148017511851207937190306310347123640245379634380628957914857286922283756562774108491400286440166363916032538317021695980569070567462065525920012084220130184554949007220523959371284447294020897750361030151467068519653616743795925745142443465679359843989063379125746166716219737506060655015089564546514880127581583388543503184687696310680208522890922871022840935766969414497349652811750219484393968181011598826477617839135433741562776185417301238750756629132627031011633706503037654730432168136960142970057017146817246192223677184301301006648427703452407173962289811401781243224574680431313403238800993980262034525913093050367325739419491242248751666019103451190611355909052806250169299213190643408525039231338374259642328802231914551400575284934836881543827323167569038155065815618607665304979964700435222459949187183290027928883977114472625992263847980950505479103333374262821256806669580516297135647797868171588918018945685055708497729946091232297392697282251498515768224521253226556618953939245818353288317079139444430557914148039841431422623064698665237660821813922589226982947722902106363434886180581868570952436521501211675267311150359180081198919177910373719473926105458398021154647216645132177340799216667543985772713610009329837730313678564295201206905409175543504971068903776090397602688678341046734526620138755433121386496175131667422538227679268886369088300825966095626580486649325872912561564899317837812872339115296972480722299495902550758326522552509645123110286861585132247346148189040733943459565655062585949518027533058088982799159449082067569193363123001821870155405799413036625901918634744096857771233212805247973830451346808977539564607041440006465919183119665663875818370680668144608356508313271118063158388444552649311193910969795253622502289768075718015997136797002046914809508420166847137209251651533799535519889423029041446054333341077412162068651315272591945123526146562182893270358049075874038781765010860923859985020749391484382786343096873796535872116287107988295870902821071834913991881425144340704561957677107899932623478874990511283481470708259384522227526653750554854600534859845940225255871961118622356402951445362544735584285040499154326757661929286313802596249515146715877195416105480747640608872024443104557126867069893310801496120246381889401310984488221038770075441765206206206218890673508668951394548011834710980687839591416586060476422871281900030394520851230585245948299788203843207591089262277558185275711304034936713957512077150100238752417075745874078547418108495749047643056138198698170722387585614643031158504820503313326879650833824289364599352584865424261868343810177230602390796805233613561311732577457919356400511176345224078067829871762143211214226191317615935285407561764125843162909921223505685658569887004707252454230810743043332484449208331141609422063738288518097876864219529704021325925024697160995922994217074980206694938521417845825737103042234527996843056139296625737710378899646816873880509554499201874791825826921440876405519371726869554422505795502866875513293042281785871250493972497622458156996583871667234236092744672257222084929404624623344264469391943360220604959002613374757529627792997140042548199138652183379522798464021596389062674768416272659437448892187428298574682722212883144064699407432702100443924223923349678085071779867547546959719869055202582805067300075052111630103573134187949852720619473657836419704524821722340998893352387051451926102451742469602699576278636828204750514333036544758037415300391347103733043774803456844695544528641518822844019959002636204722626302517929804851631933744173305090752004353826698398676615513601587379570409688763086767099246757094133513093858757675650165889730606439220159222351879785899950491574348817039296021141236566232817874337864994574075797745639431290641198014633843716433025365815817502196624041892400835217904151160243289282247824117423525123253753533053915935196413176229765233376039735638589147821693332249873426142139567771356529281029162680739437996677716306271036613087944725454503407762774442758600136430750901153754132289077310564624301797937111439583422305732799201755669691893935638619446897756510626437469231720230555923011720716412911802459216299687490852142890978666162105494929786485477506287500192358279392056245189923626734873242717306819615323173083141891633239719344251668392053301431839861298846339654100897404324800094455681063966221861872003229999405639852963898184987763175363063704187498752772382788331217389982129864525843230881962079982347379653199845137762550895477160906835382161980134634813284430933320142984269164198318900233851268742353810217316798197568441194889887759951970334020156646155196554843800245424947305212930944223925244629436789324887834153275965487082577195695331353869360100125052782363296275525471329311232606208228236390461665937470966644483969837769128988930670760420987913154358709111642083988383039200593719978948613324192533561734006061135995840580972436174159487995584272616822667779775614816634898760445754334743805626867537993830245743171401586530608367568664089679990119346478590237037959738036779573841111860706903620429469639121186662454699915350904732406977227706172880904840302111767929587639775645166664613865978525563465052552669473592603207712785349455180093039843320569758189441275062537777138732440065590681082126801239728987776943113097444375762150311624418760195728993408178351549958367141290951807871946756666705333504540427448843153221762138921302990167218576644189050517577040112923370531564231790529799091285941539388092808335311762997126922626107298237575384513425686031779699084109922652365753791409527899670280836614810088400862982116593349134372437871086550682210948415367890699338945561091068333251968602837258044977730397445100805114956762605588923528648350993053958170132030369640849685480503783296422340279108635559625682170826220666957195733286643045823853103466847821111091678160389811146231738820167235222351672282143475345094931093039022635493643220609820880749708625655372638107539412367781971429375929721420370593545968385596991053172028459816447424337277646780167650520041522503553811100012969296638246196975012651672135304800369488367809930226505512154869545355602400916889371320439583460754584200216121024203463923272154213029837007894104868742051744263785184948438796757221313786538766991753152415567700452823112545013864135434045382135521006110336936254919155893615545577079711179018484379178912200740344471499900234410172842924459732275160436967624036444336536450005043227826590001423355805101625993102369790518130857845777338570449326383603041561914881071458971445598988288022934495711962866315914905091587334057942155502227393589862195819631428234431732390279592147095126313332805233756551559209688618986135144077882347994015525656268877493826720851402030725792219206096663839109980449594782273064496871012913366014841941005375892725107915413060690185207102301137742528621582221733819833510888538361659450329391601711669703932231598652609755689078991595391058852535933110155259790801599681224563282366326948417334026129372315213621990130016098325212507664617446719869070399903002958511601871058833201965494320445433478965063825225154424017867296308942163101532042601175166155432453628685870142486715535372425794620588000662554613246257972783964416846148374073120464395559512396913732588687049741982669050380298311040496911976047818290691253209130408183038503076599530899454603653035908955692543651363426025766486844362704805746911847222442184964971058835604416384244190135873379260274377836769527815801369917746479446657578950946331496608341954487986496114418185968338615235309853826869985702335344890102750083755668951782038208760255315188595557081377987970949648684774735872149993709192275907230033345212189178886854851255386127928935738761049695384027208641850480604410033046115516778509873750799743997190323419474056374013546995942123469412478843548671079534094478236796793835801491410029016846523366931563712938672832593111301110324926141578624632452203949104625032785206308269362656463711335676790057707651678109424159498816632111496878589351493693822344512866424285099622251382294513852773225807634862091970636779619832014360202522587310852885806277871119249631826691654159094755238245579246369061992044534498410240714889034278308131385559610769282716077154099094683062659161434352949059593009430323897302438530430643900508246770349227297517578760243407886530320801288116739617822947347563410155088843153246739794298406198447290904964096055222730096966339641583911116881571424146612229015451983170814415288002355617499577892358763221612655030375157240626360892852376420928000599464856083152811883440397426557324135015919783247489862164200540359775911608264276685741888459778810351899951143672530885279859948877221399900803938645264795416564066258911088367312635280341285066521827462477158468905648298388578488272075558027116463585660103515348034175781445461847828178432228341776034889416993712531292221603477592147468974642934394411435238062761344874200908387844666300356996226329149585448343024094647129608010233008232431092041578372369623053839010169500155162864385021093289523552114096460717475500332109588982194782517899043738908681829523613189624250829712749980286589484710237630336858954355340215114484369627593575863115530803412607751649352413004399606119670582241032808080474065768778532550667467226494058700928596498805633760556904119041393945808873493865610337523817260055950612564388613826355627999379611840651154233254504804433102675859528281363926192950343341713850131497726605532150172285753059659968452247397670863843474913954281004202669478188537110102700539991339112252149807566991574635465142358191719191695369011049116509359675115501245118078236172382169436571244672328720354963654336178482982439852600752807752135390167417502069697902797870241601039048677534955375985932805505606213026349298753897973629306824420496014975280939322538679554298076804596464453947075922226982622376858990325018551449995869509732601547316238367605182857654344034609024753774027672445047160167009250412770607386623577715333112137723057567326921794128330489491081182512662496021558187449292255969926210326420857226465167122996277690326866377563854244062544202031105440122303576152953929311074216887257537652744247019763133698913756938932885358744086336523547121634924587569670510581614002636774081385684881438389571292068132096486125488419426527045877118252737082045295684812073455262735126015201272239770876508411623631878764702403420859620790738564853640918370930350217677369991090816884780617090329620752917145474067160677145244720160848844945375788277955073453640786123411149543806671080336381980825371336586344303265235645766852354130557589003514188165641150668913440087764151158101378900521337893810248640268767820485216154768006343445570697897716131778034294215518156811223913866121245420530829421862019724560007853477537281301853092877025949001645975371668077611081719901420727620600869228701973466378647744011752856752718168138079049282283482019999158469195011611064713731083859708297204683519982276462761963244117031396099732790828643369488083448148965619355239152649036746548816520376586010540418896114282006918872638651506827164140335365676689530844219913554813583831222682918784349502889629247731047491630539161861088497673218981183764295025069163433954656085069582789997449517121861159340751715535950396898234246706734038228200878188957097439638405468359296923350547801172323359669889799605702229891693734633337967563556777107678051327527311545042673607863758139044718063468351400934599099033025183452665875997067958814145836640296432810930555205669086156044596316699701794003037288844476554705090741849857046102620482766752168389375458669255304770043064206307232011076598215622337130052239929196318194846983216001473111250940434260272123843977413717790652589297262583590870878210597826161183243921268077686473004400009992623329477075213459061656858392597378326298231357431098285036090445788327010389897352940779244412407171747955859953322574291883255793164066189714087736943748651000696088506146848642759755782597949081306369589078176017495109950061454746334236247000495962045328382497703761566773144697981487869845520782405276769965372012504848498250024276671907868574207710661037227171052579735941943217144622927897229675440459718615351167948216380366075923849354749564705771885667054243877486484750094580858744906271066218580066121995591954849698442077115538375237380381854483616094342820572724453123172419769403399514502307260966044981633498809414599735044846401759513388530154432187574558137159640364900051069511044033997237024804713447678116024061969374602043837330173621165790083530943774658529540819929780286440904899391609108672166355277106328202076885537011097169251249775072168934231002570828385621312349408570896479009516548661773434961391523031123567263658760312833104957415341901354541326557637757782978002473894153385017364636053334030117078594248282064786829994661818994294232260171851052667149043181605839458819228051581298888056059377695702267463499613098112098045804239990380436566851741710729251399594269126856697087977114940913490343485051973621658963717485176523809591687122643452296879553682369278462757296091075770585239218645131523598824972988128842023840039808357672051852853821327250867390145747026198442436343789581838022357007352962245178742906933009501338164928368150270986415222983628345574427463305173530092650210821745692809262954282554612099820420238254681348764662185761507884721484466194724268346814700975243885203088691965588257388711652741567335983742726226250181737896562538118843591437778158228847183483057490446199941211907121549727970661922110638724051823872871669904977132284659132313956796903864234822484953225013168551494049551894074523836666394727447146449141482700525909839597941177085624447545025558831064179754083735504871880906398747312271544916889076307058275285519588907023463285966790868635025949617818123010984843553745497855626862684363918958815277662806804645132238167910927622093320478069074086667814393415245304071519161281595282413496602356123772218837252018746613368635884492868810478524504277277732229169555224572894092066279357437949126724373714689729095193754243573283292603195542267447279955241210429027509058788799704687148477843822067176655431389273804222686422711312835456274600115255430885359600888355011427804544499248529160702666357074228353825917394657324382411978922800954836690225272464022952299913221878747829200440025344107522085923479420248152049649810109317459163451727417918886396052094572476808752116157685104032758652787924594403043102187831791790578890328567938455753016365114780124160856659956566220747708837272616118350979987187903931849341516374653486458736800475047951507350966295100236189183420410568362445518781143404922084784115048850073256103464303981412502646458856456937709106432338586530843609221201337488546569332661299939781680088923281503439039610016672225395351689960539325583398144821877548540254834272139592455540805307608923710303207989025693170364340373774258130894988885967878123357853507330584776024014452058371631702208419766476061522326024915863517314359415934136989671693003868417008998504071664765369886798155111801762377900868321431321577326636936336612567958593977057816633784160941918445370227955271555153987772388001580822221567524983880382023146478575753427412059488828690473378880777856338825592719501931487162411334408415783184606077821079339285249176722556302142837463189602940401165981892745886554663820653472384817338325215791851303571619557595036288466915785457971818145564334302627631147531798683715598163806300485575756447619119049833523425190062953429664514728654606334325023256732003968202985509313575903117760102272011529889417856171246617171902659780856057683689786776298148437679034517386102668815028010235237914870374341453425497065911449626467685756483488787574185577700258072116983155459200100032764301022008474910393590928780091033737663460820650313335256477580516298614181462452473263685646538599762765720798898470429210168387482228953183335983779983150156225759224222429705736467825746969029236903034147883224672943512173713031686033272636930696968325027882963479875847663455547983305243965077685772568540921610543463771911205004311880112004184310042159016478818616437067791600419098319580103131374017904361101033817486519031142457052910700582790965381530642818367155446757280726678132645205166424223155675474901055967602455019992822747254788263803961619201050324554600480305387523847011527044926061518723768031247339573287964469975761880397374991422877272365947190217461981655795501394776805419331860596850687220223543979951963020144131301920581077703082042462281546613776924392841409296950626728645088737987642468937311605360306523963385547141247334173885371043263745082390555632735494607357730398057406408339218865377314993903009560055214929059936807750557302446228038301060422120597734052391593757039368605706307899065179703388710570656635204558508183831582311621364534733376990337659945656582089188836787130171882665934777888022186773056976943999016644135045803097276384699567999018546423334640041661395911316135974997585463313589499762950561148499849671340362819212020299485448983015248230170939716537358975231771162154212744474538335699830220408813905952979979876812489938330426441394732789415584683097872189859162557146973325557973860164585375825378564975295789423687477388920264403722498714225394158526631992459685401509724678716581818053095334283748132081410386314603876443544383853717937003826154285049999630162846098546050077646754351961881071249594727327972342073146509989257032126586445483288768470149413915511634502313545775376865691481501876360587244741688947531502980301435296350333337316360556117339363710849516094978806400623106085374235326948864919992535191665548441386412852986867649847233299720166785357887313973326963980998275508537609240393944741561870778522477396107992427421740976121595541279441520224735842195937509960712594960525124745376360061530499408328833503121364302279687812313035210445349169758836415083696987531212266127135019252784055341656341624840266816780224317628118731937890731621349144725679802731992504666684633237495933844152486313428697294300222229450920410581376247809636935923958245522100640387618739289025636148216911017129761930197204077935363863119756092485861977838554899015541920169277606886165577748018257515280552855007813129041760439340042022892904734367294210266439656185493360804475341200564929648821000687063289665815313331202777135717438728870283359934493299501117844256445896394935082015471471121360196937448355555802136427080421905224838009483906096333297983550924065154766642507786176948751372567354864607703486187063667446576224087270431191830400225618929741441215693825677721776410071472742383522806695946814654386050032124522427747058332177913114402356070434891228471707411536138252017986795146559545691441605643227205150342269556456264213406254979165519213148823145214969127256982569529083336915906248611935758281435431613454973319519980275114756811639627327056670839821638962201342421901240674012574569673215460684156475687479363169194197325603129096581999150369932755452162654105350703646863028004925290651334360433373540923801467573089186697370843715155236926490991058335578663068204553835349374378854717466090033774132019842799018445210918398376371193265210704001119998338500315300517578452127137196830075498512686774204934391677112895280274911408595158649357709723934474141749762857848419317157526334996642668322942296487847254936438641073025530177590405799288205886131796288583751650210093220555790919092353047722757757976152879466582309381537340900270455479353740091323890435675459035946876457309919583730853041198414632159519085345071210289785891765055308698783574419307592877958579117207644677045064459391702795314843937295252247686619531682806660463169436954046527462007410433219534334974258488077063606127430423367353622363979329332946095059613879771000801303360064006619292698610432157005666807091663405690060981591990509194750310709212504678843983351592666969414086163898206852173384336537492482632090246891959403111436421357784357970637193863622985492083946475758176278797706065223582028230394250928397573427064429513810436429587137118402766204765500575331409864346161333699627283815854849760526563811452319845301288167332210269490127309586717648772193788435617738028273834815659614922576462666596972307855009488109856829538520333091352639398888355585039522678250610697258305452856497289843500739124580490997816852933147046297629009249944284917017428566870999376489947989664114937692253570002063026356523941106446804429993999012476459475862011255902446567434129776288797930674524219835325398564308178064246515179120192892095608538348807813853560254593143557402718222553527393077924741310679244997294706997808644462864136641544531568222896271510565219068198668262531521457925327176300699501373265111200308201671015780418796458546629190956600363347762259289700323037104340259546482203306702793185327691159179902772761854879339024500988811968130255118145319532461080089205488425935790971989631753504941264466974843431803085206210657786517091636523889677987617652361921275790467605431568337939582856498352942667412299703228368817838141582752267696936193730832114005508489328733770867960503333440056857253797742183969732314225299207850432794210482768437177194739810384805213897600697478465501628033460256620981119416542672789242722888527913316845152514389517236983783634632313771540550213760277980440466844618671866886291605304979798283187658060678230282120403233373744269371797901740050746172016948218687768335232383522883480380864740829127290951969510612471622142191759055048642099746638130077873403440842574023237637557093647438853475219532396950559189361834817158600678188746387967223172685647801064851482558867087702962337650141487937324467164324212367705437725447891588172050837447811081738993512207971384139255437509033220649430817651938264371120203694399221116609040562475397132848594767127347146932815883369119906946652788894031387778997227204719520892475465828930523638093518880571933422037132086286293316173993269701490547128042137192996643944232454120305571743411719117481370186370122381451626819455330899968951347922962786690378618817254149335802308891684084028276980551652332200227647047489679391011777568290028077215712760566612997126583602570042663234572097628870169523136370823711120155674088090968353986778717209044124212283609249004885899851738544535760153400761951295002593637917237222570482453279340900956810445524643397387176448784361974282022779940210138658668308995108260130977270430877773109660053103851712098659055159406570215317902849022292940153776487978801420300220431568475043961631123077378781592053266987421722272400049818648580793762156244836566568702256089417872651072621701061371792172107187414229504754801794895261344644401635159779902823200502876518346469468500942764353113038684511794497429993312521643813869205840635549074021746558149617399549627142446067757698258436913944789485081625636089653549762641273208865438917141399788446440943630094013915325627447973226609508880898624212384967184936356447806320484433136088874494505031987190406304195845656940646898870890563791836971734259631074125830085467298518727544548184069776230698335558285698886466070657324199688891897977295007454987075926829307477359730788864356066989025169013720736174850196090356557099605866831232385334886402200402524267978179858615154833386589575958973491983955753948619963265846929353830071570951847533016595560416196794647538565503154429719504795176426994591534948512689100789879500927049114492484587926432567308145797008610997177246904002849120683205896421464363371520694467266414916065447584007560198879299742893526339809283118396673600176595232177822263536968830592937359838974665447923245485423440540653859747696046041819944300455564419269253106154355252382336739693214198347899270515807416728826642433246403909641136499502639726986887161794246721148796130647349273843172440972214002404246124935336164185041037727944562489452234417809422924093680259361601883774830123309215401465832826734445525058471920518451277052682181971385915112215296567775994531451155606032096568238179584139098156455862716292747297874182356621163045512472019116113766503063253560449815572369926607528826872048365096789874000676600822219587860909161278978014199751696489425822630835047042990567845878455579568614608971481257026620021752545097179651652705957982403591009569507139925389016121461851424203354707266000672391762746882236421747507337663791536639978611215011475026415514799761162737927178079147428978512436381399195727194417451061466861324250775801820960678572157978774741759312053111125123996767224536276412619707031341306664119056411236826875145523384634046058184733993381400223622876916983063789800393081560896662011067279886437997327141118092947865414598422027369512641182280724010800676299379221609398973082169062844697081186030458985701853336474324079324398180978314093953382834393147778694634645129216438378391698930893856588391271141286628541007511346080396253772709154812481981955538227696855055123289276444746805430462701875465562070125699520017110694880278178538750981350824742574891953738399953435634511162717743080923512036542466458433010043431096026443149499728620936119376361901099264748361574116709503388822191979025772826674502240348203017747976881578158226512853212792597592312448923296635266776319687441874557339655942128521124071736443617395195579197722628361915365240181745460844453950707480874255933901384041626686007619606137341488070026919001569644149191295143513327695272103421261574608798987069088816852078935847852459730934945607525167994721776744865114014151658016448012368277721624827858579902733252807851430917130851170423931210533227016456213170928391713193068582161402046842855883625841830048083716709256398249670134005570512218724508505033408292138056028243173283127778326584468477217575985092637736107335766438337098593682329710330509619191185209245978305818985494193404689946846311791291087425019644404390114833675800895046480155262982223563614207513328553711254371822560207558387151768969559334960457759319835447091584546641713132464742360150553086299487221845542794323782535877715738322912434459128126563167885109014533987465380833031786278920943457554155988135888525582913492206188397303848205771123382147384696536070248115235713266830006852426970121448533564179054882068246341182699024892517197996347232887308117114819049791556000814993548083141027423545576390766680326929083216874384423187717443422687817655107055792930833789682417758186958204540365491159610940593939837880820318622616119230776748500322198303286264616675170333736928166620592254653466905625252620597201613536514646703311577310203337827568954035833086519016573632896330415722870891297435687120205556556735722225908123656415139821596178521836245679331828220539777272020772650209339539245002652668014643155417562917300217371891731679003128465678867749902421024367306324159920173715527704826900729793497079931601324241964853580974353327146060428551464187312826450026152346850586474401488982403841868951837796813952818985861071139529095856846753345053042075059637456587869301886908017383709728454825149385025086715312046173017405608286114482442167997503479919971188869924996054899214558572631141571864717299341590384744476179431752289942048463521484623598486395755774373823712677193129615236152964219910757810351342183129579287702194663777305744554812623049213461230862196075837813998672321966683788706523347829238636030905012178801876703380345156761621350661025020710935151509545262615001444102009177635397454972805551526705070691822345243762955956977122584045536646790186591742537772808220170772281893923762009829048714333271997062881944637241970967761949532241027605286392753399085916635392856994361677584175403209589702737168493383281942038224825721918093570322573308503072612491309323488668815814684864892065728282679578443591495494750471273285774983366966477077225259712046362204190865543344723733220520439567189818961851713431752512720321902733833968533835432118436246180947510891226864439087611044727730483686178859807303498680212541227010152922415202379462611521030996498932872242815492817912082970642522984866423335519350871302947097939390372291925590810689865255792169982173596163639939016493757969811102559061150714011921392049626414816333352294969954716062892422838902371393142320748100692546023061019833309875184415965845155525951362960630990051500729630760173054109879026349119643843897221573728182703568383617639620429785492053146997048698026002454818416649059906395835273406275251632184362138056731731048530774890364668931852860979130479266725647780475894630209486895008486275963184446046273473555300733779893714448460859276105885975334588525723321018340633877930216722699547178156879032944031753183000793681126480874983999472321101093166574720166222248008220951738220427535012442749662816778879131622301454239742976162785039416961564077494165853197813135354043898943255855789068707512034840011369145405933425382746440543340158627724617272488654723880169626735428642602509930448658498257740262245788069225262299075858401850109651454274136389119508825931289663778165415117155481100575340202145527639890460925121721063704337432498592717423713790114265025069305112540153210456394793324949802473258813311889206280640884345322575260264665960824181023365494457368184913469880524247433183336326305153411771577711516541263272522474753654025544433522656799816711511867513760185515053411818312870295818186474557707102147985135908306811488226003375220366948360182168774461455894874595141510773293728499965812975557763361161392252524714962061004786943363749735611352795321332920770977229509249647831064684479060674956518529026026947626268099014874185795391162458502871149348762861698033870338273588850300727226885383878662682166742148798466809155412830672261986501852350208320509980366157593985028798780008632967677682259660048593452047233816626767942174028314032450782048241205635910416260563825508101199833626145347976319092420979810395143210210968726254962779013512448642166396224343200285299365628104180045073347829118033012170883860517834750642750144756491339530276758677731292705235584015012237806678746459753527392235393258676063397120690684989890779307535130688405440335261530497466032382529888885586051546316708825089566697771822696171037800175875056042640003019735965429665491939914160301039815682207238737177127453847894181006720115140654170973891918016254951524467535912422786861647269665634352806614002711079408433614521491812280838400790152144613058230818751002921858975003981026387050878621755902881254164134146645712675383514376690030288699404464110193519277198867560047250663599534583307512132513526160311826000634950042625925858123792457211888688909403803680415651994819602234835477716946691475226211572106208033901767336030887774545740542777481515799214501356924155655098758825523941092476507978671323040283600514540059128756935487766308062745580220212886001529869388517860824228845832501878998910938684808481819273370535691170382304590928742281150278855155814140477802335674396063602188680760569495609074092525134908212291256490011178819120735216502326482484995487602917584846553792447375750281206007634092087849070664463972867255180611309440273272332898831392460292265653443936390484102574295744532342576027042062804517957891899200862616189158738723249640898933127867632885515784920992218988807258010965887343316119563649217283392196833301565191343057617521591597791034577340147523704314032813641253106955707435946306669035536133097485548652888042510517602399502724233639025274680695529209542050153980180144817335998278114262993036652332305045281562328834314979233881293332037463634672596315441650123693993011791802262914665137367628890073004559100773291875730929940252390578618878285372412531684997267190500541795540284046272255627769122539310799180014783380469770795619487329826819264268023748245367822822085874520328340830204216291461842911435795521320702641935726786823778465378433046148066937068928015658347992397034356313654745928022935848709921214228040549141253896980914953280495297815429902918434036024667782857334692334578764325715848598048063047184742374086973465687969180311063926065663670044658140084429876511343498817402184767335980615869196471077385240334953275092346641562139848380670159788826544221544440606537314550874128020776124491633022685160160039363761973927121458835851315310078419979051353716461387956082982631619803812723320419581114495353300021137108552085642024764330376518963011327339799638757076757536825224529951388736295398264289059532663469842600748653853586745817402059455512554958579086384739286980696011399833847833522304173566772398649239689926584201309311895030146373696594433142649001632457447881065029446158650686593225036176754975890170419177811541054551612394563946813158089799239681366476235149340994855035927636146400806487675456595200774883619927487721548895913956477113618489915294648411822852222053269668662337481052449225741391038026910271498727531289668462249176392473199569929798723657958925265561895461864563495738061512575654258544819759296896866079876058814145865179564129442499513962903165210140508572956455978992158458425799794004906906190090141317026345786589247062916180786968491644749671905497684602573506308888279266137117069388659573703703216979019109408013261584959067677801582081096779003621887083705778684352445493893270567339587818271018571901100651839241523455985201925904331610384720672725156760618608408940750381210084802975209050186233148686024706846298321514622257854937512215606510054348332911768626920810755037919793821635344589349004103171333940792835559474806875543354879633534965280299383293834344751375953658711312518891057341657538332517634668659242776276402478418796515662692120334656563745355561494521227508498841383055270889331535837205933481929393443125168543578205236716379553703404154442464560367193168543902101371149989609010359742195567432415128543470389968517163897079894013969746851293548591796382809303498076095332080734797840077941394466635811589538149791937133383827739909263899524430163056495389606121687908196198433335690526473929133164130895633741578628207259624631919071096162495121787991465861961077864382213710457307453235219169832716972120536739610446575701153314855200097000660886165261753222460695220066145071496135095029386096039493675851270738889587209954070526520061337891450943083918565597798966238847425400583461630092183147651343149455343571017882740943675261576699511464164980854492642932939074527719456689779341837536750992553210305381181359894682815944067409300751346996174179392243323506614546689678609535222964834339832547860812592443554591673620763970362936852576839919361321091789051784430404134075822800112442028816695312364649329858235129528915396778926700026972030348693086819559721776143716280760423928802205828118191516673203428061239762144778269974630388121110796777868347933283563769220017819068722001874888142511297573640821171616250821786788864851434433257970972227719943532414817224849950908858317253323251872195720210412102011943143822569280023565248774199085724070466815660531991363684448551508145439565263339747357451728729276656024476094519187629908293520408797760480772616333341580230957139187225134467628716060553381910062899700338956384699223071008227388771184643707790144887763473068565551384626550958598033757619674135380420517637158271081001487989368874518934847496264778347130583429190499066427345355567673643032552035293881123218865697796412015560231106097899302507996150831559423368125985780255757405427676389392888777484762001225214428310707643088182796323365992514499990492128261992468023785101268191572423162757725211044726878333725099387040587787679782150724788586271190286452347158081781549011709252603066557716158568805459438921394576069592684271036886398049072607733326612599902965999451540072062535069597303916441679304240179704129974694450573407761356050938960316412275292221216101129593826398371989617479565924002318744156406695987378061386440038127871394310802462676928575098009223777912461621302852504593375846592954754579739871121013897392292043821463097786459479750151259700283036848137659498137205965659754215582480770330069249180647372650376300363069979997447531476802169194613874445875038153949693821362150579084051864514685389538232538634409221012621883587453559442882024654620418263281844030672587957741936107551251436995347575612457695202621258643812168818293079894352953269098449296684164504480484914280274885809148993589986348276222237379067146551408938578492500405150098741119083877569839063689829061394359127445469620936233698770637555757969613997824113941846388912113281431594667294502627630415307549824575715393644070954148916811188296586054825067354129205327202645948239816849765169083219579806841526450392625525947366252916671679803909917003802956100220066599548135143533928675909979467479175500560280380897020218905366399351693358149002887906064712886774125785072820994511452373338805601820278233058651406431780652673715897806161394510756841613889956737479979939223613955366052902433877616411953285641312437120106548176688123447852335605888434285360943336987466490428792072869729115204095186564604164407026050720439941936634981114289273142067853959451974613380562439634946531768749799396432493318339166365778142375003590121939080768671170919549466535575495852032177447177313501002512057554766391019667399609779386363010777227317045675233437082786703094459841046887809319135652540415783255715019312121076407936014701617872356576833647870880349277758778718838691358198079239518616971376489882620152467857727486934034035097462350829455530414239190270793457555938193114844553512943349473937363391888612222382706352040069652121069539929393053709290487260850299326425291144517953324557663357150709575384271404663528030662937596487989410953539375014245820764730145961939372716286524222157120022501691302866980904417404884169977806884045398031980602999465250313100276804936632634354737590033776262789372569832031754559063082364338331257328628059385475340335999126180177839147298725572338285894098268129246544764994390643261786855877967365970874662769751596761662286728821342813446518063508412968665957309409016107072496319357946234549013751074085449302052115573800940435030136782498098797955587117547831960913136737413321624203522892649966207585427917553559190210009054329785825944617383710559935425958470118241614402750926003730147104276811264085865049946223067231897826795259579260586859276568845899011933065803298342735086819285866545639952452592100112377905729911214785648566424434623218930614157342055727879439422278537703875569561891904231309088755065856890684915029861640396329366889624375924291569097620537876904447776063632010652003977855495328869434116852876377013582888576871309906047808127787457937288629431575961573313517820420621487212353357654032850042786479180097183830859020258216947754449045240953091910353522095411071365107927657616243489096033566922466116981095731317976785611661218379773451464956424686631440298318488962537078779650677904736814505951693634359667147832385600709261493061776691328171656953458534347048870353867085682210289228218379487856894576186156173135520892774354141651289786638630552962062551142225497960598305092075013085453037321131328535585780714040040090987317964902852321210059678003411674131640980323049181407239013476291272137222457136824417381661303891895052724845017287475863267713292183506925150124612093812684743591237583067232102067423975098600822333896997043496642115932105046984208464975864997997998740693304115164686329481239489477278916718763382260400292271190951114600221375216616935982749922364725163243983156671748787646174889044129854433032242618587872437192582169581971288667597741330377759640854726906185563275359650966924108807762644940086521229885457292720576012004101822301920404556640022783304596159287273777097298508171049726757083796255066639913085941691215793345764510364543994416972666952210868127933266183187177076822918738316070414808028320244391270578367358870690224394941147237250353136548990476597957984419978067367737853547989468127808096210857649106793258581233468646094462777065579671851989529234915978281662281299836462805989525060824500587878526568202306656552512028677202736313459097402457172179869628399641345942687709046024298648060375398331074691680866582076899596372710526617788803320754302825443124201753534618237038297305273459220532316326617668412457195628824861259176764853911320971520720557094735306951770818328609277876313302703810905739847317745536759113868878155565371258968892686753829004964222733024197025743621984077743494158457320598934611209579993253315682022646149449387632176495695248841481111144104103354834804088154980053230128423406609060177559199363752650898370025594812750533673701061737035117378956419523659139203559584462301894941410164241211872586635130777676510722354955773925369330202624013944187142641863265776748340051288547356352833754611989419336888616263104078965055720247751030173812661290532186558112812713575782028638291610243054457347757312809901526722479143562191212685207982067774935365083740725376025690237382052405990752903884169137996589791212149299418042134950042040786774657552128528623177872127235431435953839819128338188467279484996358452791069458621301217551923598007549470940435971405492444736126829005239850778230540141168839300216823421258982955184886642951123449350879625087907040558519060760263063063059851342273560306817943209702101865128900657597384032080320901811091652483113696547806105453507139568527971721115960458223340715837206907685703869409271638757601989825422284799937494624130355820443056732925177238109104109555152498783465385163931145174858929485270278957815456699200990545898885356725990218157838730969876085969626077857367982040115109422985354281000704523360644989655078371055151483764741614896118818574707235756025264362543263624959147496092144489857607272148901179106434660043322359096762590092614651124985903572118541975638327533867662055989004232956596867451432729987486636369559114539295069139756529298844545035635701417886476792017686115102600709841929077254839466330584355127555794284759546606345021050068566850404527403156642666300503883884599040335638898717591116942292736510225430016322944792757485622016637186560766861595875514752850693153702685922684949353633560591240291568239683425915299879817296963489087827705694839513710452981723956536145577761291587110233808363367210704846686881511158768456484162270574049640815750377829032659376206030395014078541917427398571256862430515146991569378495248968096965304170590889361695308010351738144034605466771912307286708491007684242880920351235029813059838228178167965537833989484471105371763037235658623504018622990818069517526320076256559006656278778246013299508460519830915733678222345752886757807558854931306433231393356713330623812883956288906772485545315312239534282830261612693267526364804469082932235941875744361872560166910230721933112664637917513356000406540421919538724092586007000346588630172888925276707191025262379555298927303120346520521425930152424007275856751090823666620232578583390139064623739376443250431070302561987734917235982023414929126520290743337559081633099680088949941078802894510852195501541358768831584318538298789485529156259200255668202030922205394307009610726926768004346014735686232187142927209074615187085010090153358074043940721002069607996980749894493564235940672186603459815289775782221552572773738261596631518210086399403933378564652800278080930673641196520201036123227088624172853049068762483336269217097036983917067912782318607147938984855233975613202855714046810302638993863958357922673772630139989505099880468628522126081468575249224279705571198697765271582032592823242035087254148481494294351829168170936157461404448784395715676646798516170426162178803521470143485462094448341658588743170892794655300078197265161000303864404440420172837545377011724264096134600167576853440743142302387132510161309043813749488076227056883719949090843686558553420614528302946167041030261779491237221023684569723147986412466929502555453409033302186841079325228238739943758570364710229102371870439009060431066521809451663107796491048492175778664923876347680372511724215883169914088663792584915844837182786241041973688168110191525710683256583283298539954476754475895308056789752063301338889520997114529925869671323719642912108862247654521844443076877500518710389444807665081475250680726608150097475281127111918457728121851122352758048459321700311325524789920129633585317882648556623650213573945306335740140197831752006089298196543959347814038972723243899320710275938740518225808443571425561288588233680257374639268337920311149274141041939098109736151295879162868463983513740485896779159471663912701538544907146684718080610594579103034791180576462202504409814520568242512707027852343918400311450060572312309160533067459013416529697074639895261176494440230984502349771169853236969308764183869570338933789493295812009935821050326149568450562948474458495842560392545093604135887496381674839294128631673040485642217077070881359098495378515797543939530008371287495714454772949053392176524201019878945067907875159883558881952464623425261641830580995343758862730432465937734408046626850407316842817215014260180796682149687991241814638594336256842112238971040733629842624423805615571299205049474783761133451232842533290415507468244929099146822675069692530859843473569085521436268200966975734936484364190397096821646386174866891630106717057701055374114089724288948168620976749918614930058304980090081453234944659032705792718909283041693301679744341273798388458199440988833338754000939196094235687818298870676451701383733600427489943536911332004219956554888993614922451146764565418698354777440860155334270055363281164306045798909831493214079430582359370458923610089435179422834396540379956761956225252959116162583345450359820910015683946767908086880814281710457002007175000109787943258575407675703926904534475961889082197237159303350487426709692761685400544832319466867866733929963516613102546028080809404590666500267395205409252246065515186454362191517660757908397132119173773532364643060634568838915009864221868319472327162627220341303983037322051090048251087139780210954494141156429459827599575294822765892613730413531532072805586605376108290737764610786784687804674390511351326668424521036838494821255765947184622168900071408490850094802973996459150860926952084308332052878389189765846102856542236568211758626755988495867913392073671441703520652354277274813503745343528052953742502244133015236526544681171312643744013608013448868335874177057270529564243536791436239987274901709503722352893344617256919640859727914561222661229969560374395361691890924094557409271054884347374270321048006114889986210472256538290752529247045222160003845213910640254302213401855549389081788622575777186150212443565755330817439042245421590768142036069121234904068690134027452163818717506970091214411046814561502754909630888616770424495215230186318681679590191175412058449724935277416304977391373275296008043970531520741877319015545215786582117717093746648621406356509452124044643465608113003334345915987897608682540887145471853666466958737377951697380423654331384243976882482983809504892032998937839332819175449157022004891677676127827632909576525907311267550708325415950541317106258913518349230152763836795011262030913174337720783903208086475984405180195474098129330003438503149651648313393614096967326362890237113514568706279497543620443941725430835695300519578859663284605181027210604917778183339158690698799898325314829281915738034726142919797342592289350848006904793411706038479496916465040171676880642306488560324177465652792422733390781009842352870129574526739912297033968970886592396687849333124508796080967269868144149434951267857247297832146317972337083362644376700528586436751736717953971756632237482219880044235514134517240969093453387143538560368041515615238194831080297428701949176223068139179450243941277466874933283459690301824952064845723232549675840782758285645210801288146078406975085047754059936439890179916853917822961851388203856128400709461885372787487825874908856625823223312007370797818588886407148215859214069719082082172318826290343938083260180532493633311314170779623060457355610070139693934920352100449083125392878628696707818691722452353901567656823507955817784552017023165943401872115622098023491634120544235000540308955860403961866328035171055198136966732148262588636215169575746993964330696786563392850927321800854176155387055083658979982194908030820786163119480362877620804595537965573912375339958217068917122535962452951809526091279668706578657846903065821129023880577169805589804094857729131160195878030329974658277410386232870431463834941493192867509706691853684712665156866770456678643726983173303643503445910922868964081264538370269893276280109307515276831519798173177213898473233941382900601884971609379712982583475423459856643539656864255856956213244496768182429855672735249440170303028528569804767191785444627067732690866553040790811139751647253938597980692023953389729727472537577906534372755238428561533259320752698596346588194910316759548712543724967192136357506496321635560996973651882343021364996374145068530136372133954447755194079216104656756344039704019813417839898756317780901547105100571856571522085947068519588994871635142517389114768612928504450201046201513543497679418343577785404410079147414673900466400241523850628854182371592971560196605831572229037652924625836878980854819968225434328157087020429935514672241006040592934233360438707198825064528430391791684209133306266353551809070651801910111194513775527849699759375329087609730308283507657269782497374474285962724415682409640417324777702549810882989554158925306058147413199319609612643985026576075895856024897803605444994021378901254310073383832260443870528658414439038622817821338606770333642576119627901270743623966677069508303432703230434290810660335430367085875449306101313240817559434967191291850743112973933889227505962029006749832956680324623336698810737631628503906064966642144937354189163182832753907626632066178424112421166195817823975959917007551741405414589546167934013218571790378025739454345488563756526927423127061241128865476553676817407572509252458180021524965382275647479329738666924674900155931454743953205931446592459669463127911808084325005554592927265365910315707227330949200407112145377224276102388309283439428797046584474692397862317749807998235823512936939468556555968320518436806886453778232672237602733710823855701269094882372807473256046288049183610183875657747982721230910381919850700054455426086287265764291551994770661402423843052250342710014185060045589852356984962914061422398422625141952939762486208438168318634161965517487138229028655749010089741158248354363557665153859754336349978807629814166881636727868273661643862487702514608714730641354010414147769522865600403640251093683512515193124051983873197712127343436698082782458852884047439726354003068310832711097165459417081753219603323066466950553206405008974905558933921201747543724730671914812429932931735864093740757486347372572960978973711970997916763285031766316696572606060715507022123085584171773427297007876969758368906677509645744088023470174732834264095197139965866041592528984537550833863693400624646909192285312667091426634208840318127741869309807779952681966600501441215579867061862985406344176896060143306661257112591084546094617584509717408695578208493825488467929359401109245456482251041684525625243620299684806258681821374653365488980522566774919121410109870551181572484629450133070051729508276818455387786883286298261785799602785526783742794499145635381655141810492788540116295166046102864476462168096115937697252383647123776407780016555629813191042876126768428170445999678504787623017653166873272147935664998887116122078657511559789192343158545466160975103037692074123688329951722949778688690733591283633700787480792028008524648545755212070390612434709037931713509802598272221178958529302961145597428364420518451956827927713371558687709233687002654220633541928160797416977817264681280448559726762797510142664027482911468939827898259019685176997894978131754761423930701573788317967776177117259207466662034678590870525169213535601085386647635170633657259600460872219759704762817746085980695838485018910048532923228478090486470691278790169868729706527305845158519547265075352611599547389413504281176048016436290679473071355436680330840573316220577959910261616871491601397743113244536294589719786645335277960571095542407167624290577773554760470164447951027023650349033489867063180105550465060591931581535069777748453379377154463416673367749692888027437401627608495207207875618824934290495663011028479498084563071410056745002655719704649775073410355174433471593958825157910760560296543450383782555703551543821571209328675689146279976662355887768094612899193390123955731740700498657527373986456115247339530499769906961501844366344995324100410084437812958902094158301917126847157092716452383549723756381598665107673338153261269179879381625043117441427114677728265128420805678456559080975249916028660790517356485987656352134870915314201357418170627580284907672483731252052047686225991646650021812320423585950452715981144289827799261480645732191107530074509247138164069540131094134083596648068413589681055676757709802642058693915379453981402806173854105326884630495612355281740491299930262611626776509349174374524074415788202974436077880020061026714782336451841110340379887196855293477839561946435494924127137303499448674403031524059222116325412705929474130419574163133864827045773439970948929319360278660378835547264476168666172923370811338172475367638407598110706759413177784291650634466805545679814646688203392107345230298369932162958524753837055721386169127546230019025580932056154760013534300825815016847963962909358312612673343868922017889729227307194138863993443091889675868591756088789106358652750122732545661788104355412205575251894186876703522169864647623258558214386833040949737284321245391122903109795320667404923107652975175517189110686540536894252074741504712833364536861338726836772881617121908803628137826150892568179046527915878627113867248098188424241357967540805106644506594439104516422533088990114338321324638490656853267657554554912882216069595700092467498574592296602746858918066497522201033155716156052808422317135452649502359909963387809417440934911477615304156147489785036516471878777740516665036196110297122682293270718073475256676094996258572779195766424682405149682200104406537360833584886038015754226442500232836035321256588207401435042554548710283782023803932831826960252959793369797545972702346968468844354833183496947707455758876126451690289319855090443201131168763732625269489680707273971687680512893137901221597094566708464460607451773733610156101824694079441877426017433683735213763535349111918752384446050675113282082701417843245003877436028790195190083362953359727762485213907962808575559107045212180742886010789395783975978815279574770186356577793584131269819288400659465234460281545403493637449408994231740820968655238552303738762505867664039471261436416477902977472504541508049230360351059352452354477800023900666479975767026724494255994626699181510682913459004325544832947167460018497604352911621279374981482385574121636846745280085569871899995630437918514709499667745958690638459908807256853665580659468178306233620266040560566570996100095027619311788457182754365358603556695324799048796967511642665582630060855562128933461680201881385273502490878372106855034022142358151878027631816561259844705471674668806827816823105762393595909630241043541993818364261836504831235050744343511120646826840425332883345145917783856315687692244229186720853506520275891454714398895279115339204967683250427699067506548119314155850432354450338811998122374230867738902672568663568729678781533712683829029327144826010842243525075796152446788921153881260143108567709188868004832129271780775462655909391194039745378542842108382700503503743017085203583335746532939711972433885233297581083012203916633508482560378955615551669096184410780521706113354862303859961782587462354999975967899343986573863851342616391439862033857438001371982310782401434342550902968670285404258431738274584837193906178191354887640208852648232882909903325163888648311214878977348738638777069908278860352397678238878925740904565856598574407672680503368623720604568947693923504039694997137322518118639441589828894250275571794890071955112241687613698225465668977331856750415286628421462089740348889493340083011276889926536353913557102050629379543247311430660757829229769426969144658549136939068734616475416576620639985311780095010783326589556460687133752550296451267833535658814087621748722444213056029327749851554817552942091318553082413963075940691035574083189656762296610607029831637938795138957574041705432735615998913504541552253238900326920580317317598391476078274614590044011652254326792164767101881303829556844027832000246140490279435991642181403281751855830754493875121417271353473429157003943004714563379141293123046366264731693948022483976858894655108430876150979769836483197462301322791178044387531478684468561239205046050152888535940093502296706161295240810032211650556544562140097880765708353956480673626060329188433695584072192433266305970374329231496888811157541763324766998770603807222090652946841289781255794067735084096527922935341234878194114203835752464877302509875228598392262344488767581866000123401800344557993168457767514881453370005836764284006960989198427767967066537616654679571561852754337376516190895495280398463039821758759472782214508243190777410063661751822307237371462681209986105458921879175053463067865565421313185785812528785187042422493761442061115797387553149567286119151661081380181225888478213872232439873255327908355213350430383545490603676665483483408515629155296543304881089121989635296843993697999575418841645183356886894824397004261130641614541340041495670178685257565374112276734316877251006689898346262876300599775744258133257322495565056510685158485720129447287561940652045223183121019502789777948237024173294162933822322833392883143211615562926325330355987773984339395572929385132454325887648015543055084714400454046235443719290686240570434611966100489450638275608178519756221843223921529349713951581917523289475937794624342110913755660651960347758308552248875999698900861335522886537820917506868873885978876829023958071857126238649940203135012632169254243526805118502193741944778597053949127575431917634803438862249771217964374479242463580552605457085299454760323994370624218602512672353162753143935471625090292557439113597025007944732100979352202001811156446390896706960312925784319659056046997661227679344423266554503992678139311506952042072466250974685352858060381270136078430607460147259661981984411926664518623333348561370436454601700223178392092752119426020161234048791503928802882344894415818180441863989374626991871860539928482914211715374192529737606324544055105547501080635004330855059891081957355715978822227524349967218133442039298080456743092952002070267587502337087967878598163934909275252046914552539787325473361776968796062619924912287912043412252525294789853417684915702629236740413296963012739887505496262376040141146670272757909450199756449587351174547899364539353152853241998705091136276546301543626105749272489047859626990708731449758992259142349480479278256022120093530355678431040276977815961257044750455409797831060948993424836434736467053418158188915462963830302763511325981157600394741941912772265657274402931286073982471236395723817558200810253935428501914508872139463215249402594410583373880419180368612506947421295760082929993638530019800325789487322049892605156018274496345455776932514013748145778128821883786568794555649276709095322286401982224821758294720557885181779814793197726100010656437641213450214371312189751634824416639816973383357243823838496984936888022087195574455054118705343240256447094409910387245384861982633030479330958980180934794506037132752352823594734332224061026273294971840328619236459795246557026203637752272539853877730801501017819573075325622821207860993233405291280673846810118274206681808917181104698265119539287235891822089390002612732938911987800125793617338126254373666946606784383452717504362447645293967389906967615460203361554083465374348944913503684873354416941186949344862660453503533573145000184219559715565732183539521478885315781025599940962027093967492810724221995579429962059873023586447399611377965840626406974115834235369419604644247906082866892352006235945211724455631508225325986768411631876897996404515081211357889292556277594418445454901255300792617749111964089449368375150293876414786280142824947102215275725758594563749076302406844075755415544885261291180096058000706852484046945624452064857563450472028313128556370416956969351109013230946014234925107808952006149463039316281705459952164419013588551450675722615528370177363553588736685240634011479874012958909343561600733024357255150304128375489762866618544015915302346577253941520120482756618280738551089551528841020228883466360559129424931997614074326205123902049535047914210422454647699663779703028961154524512897541955210271595821995677225060699410210125994397396972231258592377711406693286247691571953914859178662312021822329873418865282008869226224421216660118942381200077287126901046995051043581945110114919020057385471049279069644449179187701506843689902267459163805268085586888816795758795029086555842197813288080733986958339984882158702643164498092041939032525479942283175589294245300417333214779046465506811103916242870980693554206305863633889974543292899481284972891971472415056211958383440182895672755256768868483629023755296775538010732055760495702382489308693876391988115739283269784784543971360256064509703745998777760684071777914290517686146927531612962162792621197340635813300635664113021991927357800953811025427600159770431015849160074846889218562704289641242822596492482461762902057784416680783161460169464471247531076759250382395356218764243170021393943532660991363565288246812034172971172093192262436602915967923561577729368754702205594340997989391309754685703176386883475394159735149619484876976104963889905095761350739903350928108213908482553118961816237694476517970314918146282914420348733046631039258287159784824995612749319425183565386922819150338354664124982305931015028701124128255890001465232709234756851627345694297142604235724400272380885429968910914155041344982670351611083262659135640674591143154931226743026549765945979259055598470786421805889682262084925996087629217280161078628480552504989562206479239406676678509432567991202706294789114459460503104723275706821543013496515448628253858065691832851096782499654876650893944693263456915943262521778669952444748673605906914865155998561511330051736406011891278445393644108700392564154649940674372796396120056889239256957071307485740499658444133318367171760135446347625416263390091637636790127498668449892593677105116418985534042891929842051160668747092858873756249907911718043241180709542388852313731653201202922969505262450750205541959873514313776453581177461852324419860520744869933579237556450926571073958513457479854559774813460591012740060405066083962303076011547141850068464639285412406687996138455712557864825640195640747865874239317394007567471975979369371290789950698961560590587980900732696100896095635988777945927050148169219295980792461511237218173414117536019639327558697852350766721690459187072751671422539252355513332670860594359151066220181301003342860268822524246819291207215386739232590755301285271146184260021479320951136433394910668218885900187392631768570946771532821662912913119305787066200438526921076572588072890080361296059488715706609298922459923213626140408383984262456693301562594271173922898801233738418191192146986114056807176119418485425395611092089110422492986359288590080748553150960159713682537581209289463420412792744024590174948554717202036189516902679996777674836955681955912304712618366777178752040446282058274798570271601923948524246987670021437997865412785350518034081566039756102953226978696206248974151346882981515415399099979463807974487631958776615307036088724293733191992638012739475434230764275428798419036616693897821694243909300986270356205066100547084831202898191789958312861492507046018069130676904252563410845185649780649726384057244130540672080107928093683776373958868962588985621963860782843432403967522043698872875575239092428745358085458636781674142138206599107810963118380332913025180249021450056530357072402224963476908348065496214288394221209210861498600191341454552611211759918812215389154394040330112182579167647897813815812714613946628238747434722903994163579505899009261764283883927821150707326895556145845916509100239011217896991196409473739114441676843647610072203174529467051344256348299070801229619324036193006672487845948462722110841415530067763117188650394487652621159939885823432513177565826637417893783336815961781552622937884063969150283106167099790494055947570433154215172637594335356008210980089409716714636530530171230080808379704725157439223292279306948769670123998829897584174711271314366185244162573528815407696291907527135202852947537032107677635451266861780494444105958368663438214879445497879133509003834283062674233896781665857872978327614122644822076386848739767724527619760825126890223051353234088801809809941283455046210048408417473369475901263247380847904531258300922823019382216081614437615322907742686347899550043064036817974909646446894637131985787895804758416684478734761842971731748601672962399843737693044558023798646820240730652359678579475436473076729050928232539348006064789892240338549329281294743861584017311738858360243844582389237773415983002780825206399335925742097943715647091530545075880514540872150881579142669188733813590203947391533458953194159884243914776122759558270175771396325953653092338635736041288112975692351121320288235864348557301381228203888720254519844206968730539709227689041030775079370606517456219510873731841451820688069384018461703706324481728824325013802396408909831091415789467465031135705714532809181430107227124068536325682471035855320092921840070519112052302441545378038483953273598424242110391995756444344332480421466891214658117381400821562284360489626159222692189197664424843595872177334422365952782008743273348467032163652445178319909049653972777515625552409140379109794264782457226612838522212799170267341188020994991240423995755201852793185472791372290026571161151567202398154925126313901406881693794227708813037863523795471776372890316071343958089236231586721410658849643027922191025040267128758566330541858920416975440184024212326227104353712699759139723521054457654898229965551860300149769727371016781795941972297744456873288672437706791545864937197593696609153737624465291643316907096781252715293634730730427557532209190522751216605272336201441225938133650315503641876383373871001583820862237548738416234468343311609455470731676910472154112290912417844549410791336616547685480560763237146863650311009920201220235075221940157021059238661911454688016878606367331934002703100464412045205905139203072020306899487921686213831976221416695448896882363564138723451278248342472446102396998907556471374405579475428389963539306163127638820029096690314579675646742823878224309095736424991258117139956041747675424540372651071042579788016808315935429642334968136039592078392460932426693828382455777523059233112563172905192063936666857591342660820557347455721349309836978619648366426364588513261621956772984803582249482893406229908121395435310919395631130934109511115093992132558450257936666974168135081127633231595634348644496442135472034631125907648014504927506732701398958435757262921017624081646213381155159277860143193298298871774979763971981293758639304598258246610170692054687065492632019228735491134077429956145149730198253632420551759765925588229767062652974455535280070956910217071133624084885581253301512524819205835661270066942742049271346597894189765528560177418462292606406080722881162579604350758486285653923274398651062053166489927421442886583969313530835278745406110589731343372103281685016124349845675829159491152961538062865395826902252594797294222230662211062522197812563401246586757179393929946073455925681267856804884256221760390163609975389026762070190969274421112645130937518410920009365348889268698094584046221962900037123093702687363914118076845954027032965518216721780275971706873921580726522182715640380349667929736444498226037049655467227171427541344241676021553065833316941580599428983849811113345398676046141622170292241043860368281835749860345293368676152921779323817650018489102165127627428974146970192051014732149599681675933768876460155960751869250694461492849987673088610748744381795457325214242730774200141511188563194902732014682077208254731304559965248772026231056272592826344954553689940777651563662974831409507095114482983664280468590728726693847360648054804219395492135524655292935368349456531507379553053559631849709159713858445296690316163971095040690174463100910843895778073468103006578658188582769343746217657909441724191102038518667326896862497112952308530263858343550289031926642130852294069311627333073102897331817089186302833074351639333471902126420206628006644762486263763582230471414683921368945121811256014959644908806810687610974237623147510728155728632069212176043541501583955591858149795686174421025389127197991286497215481566330235640249734358479166770084599072005931433041783413339728583405291972072487895835379688887664256133649667604031736573210318046037112929959026026900646499968298811174770809816391289171030045480276073253480859290361257641045957682656700699822416239966036321745326072854938491742532506736127169203538268917880394296272594892616262332957488204235363683346702616011453708994136657830398023669508462606908542653878220801005418756922190933513738427417641672103730816303838287210659693748781731854829339836404047284734957444416668223994815641065004222461913455674356000648365793015238878700296230687175324673252917221968072442474151473479966817008108285033098655941352259528477283568181521237161795170631427097287525124853781502382309217394126708812211674134633701091384496899605245755041144565219865277436618808767620043463523914021220282898776315347395419646007067235572978414660209434710459697354458645254199893643245756138610217748309102007077859608985064645721256210051828871316826404816310788675501981193802499333162507931989653852883199988690233801479898072273273115873661024708514195407637252003759048731718242893153710621930072701670538132258341035217575866016445675757502269078982020586694263824903062512858095377400694904446097530228213260632798073057438795683832654464599449304284687022759192745163656463996001179566568211207951638110867658385966203973084129766023243163970993381703448904478265921551661684217815575267360599082767368184767153218073657544780896060579610056137911382949498033560665212998552058985457050027327161941131361852334576804977837230373917092630437751910351972437031529517587179095939305011274576252534163053097637126701837524264032649237187234537306615969070607085902826116385504001819345130747530117999588619314697039100971101868315060411448998391560032403790966995928516544100889783482341324257995402225742777985057531739760992574092058711759568292993661847188026132326232169215559561564241617187784097464170695405238194346991224720035238174274095341749769750064252984696652421227371630048738259318935631971096671664911996425727471710031472493623373364080114063602936047484012384637674973544449595360868104614543438332801565936484991219892032785293395618541745738599153705081702658713177856863031641392267623646135459898554189365773204938813085106934481220459753594770372960481300603992667165841908085949950018458121975726267391664484065144601705819704154432953778983538397917082441159909975611989303770586587343908535858363144865053684587105913573914245652887226907487854753933536733789243494039177203312433799729955798577118556631564320908603218243285932025434119352991177996352856595398678099683354313243510254145139695260527632785442058726685558345934407294887581664783323359332881263028595783396779851702162024401414208008317348525524218814458749890344810916240390145432773047933555697148433749104426333033388081244445039647910982828130774961207216409732264838245395076302924514812862007212050184035572245300643475729051202967063368154079293941926864753362429228916869552345272910675841571554627204059778469712903113355907214896862465472884606915229333894875318171717275663441841033538177448909187131434482340402556718841319896626884206432372972558697884879461900424846974742939720983257072610968877630888516944223051850694352642537836507356922627373781020603665343689665412812916979927526536267571716711215133418543604648479534442450750359494806124611421274967803479425116208762267946171508629059379336409339268214040944001190012582671681872424660540103372371141135587233315363298960898540134888010531135749355341113394813841945643976310293491072437091586523361286434651632335077335406664139145365226247845339223560068337258377700029856663132059974535067007363024938518483424180023193209673894298331461249986733212254972481269126038316317820944477986683845102844767472862956345527306811073969717779818180075785021272791130491990027879851914215676055320932172425718401926749216014486005471324645022136093821231276573160037654048805308413659297407313004925057730319558757818841020429198636844570725627318450326669622984758385958755767064404823490144127268212771273475954874590962402121016502610592988703281940751047804277573084242261658573106369421664778373488095057888799853570665014304980171021453313472230610511828434879572583535349150427526970088946624796001775043088774465929224253917299840878912693514337757080404933170856655911725192784973802905191500390889423898052332143106778151779410515639411887429651540059365434338667327511964434716961896277764407930909028355440564393471388321534654823613142324320963738046803338443332983629463182449208067048875837939509132040268480585398683433246780978270359864372941035618596431164559401776069408087569588545593245081200880371684292994305821962155305006901770151564038926106683333676444900331664491189679605125782921976821904494192795431518270301126447875175218659883604506814235411778682693389044633870298035287402479025787402986332841409734970743748287080145059922558447268442205631290991143293564065184837853560780146811540594272374838124619143059421253470702252491872965936035800334963916449981598201070549093557608768478667551412278164629775777658456620617810283919221856480195600948217815868574744878563974774232547483996753463121631811494371439622943418171920402574690811742379307176671282581433208267627858860224797961086064155079244474284676036609104544882829115791355588501907142609831380466116642091415509649317457479345052271193883925062974037215157662668143810017403694284525379924361797669246951692643032401021362247568663298837907339053850552204692802586071559132887040270301754307471529565298685121315310124379816628610457029069836054494307888463328315328676252121150380416624343798242021303544646802860058401050901070852330344131283356289246046189837902011121774490504519230559235231811617999723210759955759764104565179428205757889613797281417844458005383245252715545414591259030918384102105507441759553704858820471863624398524184736363703196232301341301391771767951952935231019965763601690638418994663681829427425066167965741466783504572200540965252450278378441322116482384093761683547319673851255732265326192432885128939840567493896794639319771853177952810620520522298456904036357638019052751221105126174883880824220896087898298725270264023695958020163342180772188448559530139247407158227198080489286248714923183085943894420813092111448694125148547876271766488465197649887388193167592053791705813636011698170273340762400545547913721168231279568652513153314788834892468915796821934830299948037881260485808186868384617678113787168843064632729141334367386881170857693606213430311079525967833579388282913703672220019994641872475612792055810426467121255457918839573436462403637502448347113877838297595224284315673487002582056282481384509090168559919579286132820479440155283668404313567411479175466859430395044858382841974279686515884139020288414704242479134058561194368501574779939138045516554146825825476026174441452678661456216055970188423239255345971648305034691718460875247532329415591251351772712892755298426815992733764568334457522794609595046557491741879015052959664639046491171338268170119835102110514349289176857818893889617916453641571580525541561852284315069686894467179187581801822459212290848395437873526821932936114010443250162281115489139238618829745198713314947843280182795390668013078188639088748522725496403170174842378618209920805202330757259912717310481565944173528559026026757213763279367431263661559943140039899293335623144799693767679820666491452335040183090671476328232448464375422544143912416857568894713894060952713877570469690590546572285666482021508697307616497727176728306922972654995410985153173639101225123168319305310233092735121370349035135559025716903729695674938752755453264290799707690576158932242857657395712699041417407768693640266751844475330369740621009510549697564326163951341336621612756962532530849516884887940323151598201959548860364273210411305913252904948868081728845535860940279357085749998295912413694574004106653077019939108902362049730777682601064430016227530541184008455001818200207515196722321165500649248282288822097259255851395035494378656150337057579726728260570036775514844266429254938760853987584852885777504076381668700962784608616265590781135299358206013811830230535151803250597153394094161270003838857914752821731413275517224588743675233544785046187081355966175425208023234455218618999075189163020865607124569485888762198620113315762229703757488698548821732055462683182680202469865541751619443610209386692278002390907516635591230355273522051472097330614009547993484753369008246363937086310416775449800827539615291588540281187259986707500920650541552091106852232221914354054313790817098468248801744918216543262308718540516897476295880845621071356162637284450764217141396422496802267804457596520292351952119147509851690855872212673658013685680507568503816140902715421016124104333065730016428266006730582794314557851758238083315108990952915110675973117564759407206712332879425473880751925568335734567625268905573684570858262489407205630066336965778104804572698902508774524874774822719130156872495927130054660953063807118899147088341686420627500850557307919689926598737323043751215426951417133709424336000732812840182823011824064583216654721631738881554268368861325702576728644776502415886837331161518476525481803684463037693536908747168266698213630888036805578610593830973293701157012203041984294326583113244113733287119882627213784263799774231576680948447754981639090346217758260248006237507494358363309124174106350438086737896362691198659885974004700596948663026295674707820021587548441663868745214887843627617180620100922046867618715720302660770216474222652911217186019258275831695006271531867377428131157496490332286104549061708994681295140551254874478583101335274900873717508261376317871777281678100281744461401004366831245326836288975436384895784805460823923591836942014183585720646287133382456912595192705432887821014510011006259021237147556387703306621070735398225810104933970116518971050115964834748825440742225192383324548293025141163572669627650481107050424711978230474732150804686734549926592825767169526510974602450338915294219742003439446972001567984243611465884589207019638476381850609877015774142555157726226456442679120341650243268332818987003063188559041088584024966164323841266368330117906172158424022466612589416764301785858782920731877552264821801349380388183117889176182348379675216557880607451982734794196791070914962208266366412805515644324475813708471910618721652855828796688069229685618724319509554364065581116103350868572855368912663208600838417149149686355918016296969465426445656975523677612111099795507285193504643448185696337399772329971631238528960890959735297788329848890665450616867682893108563227036009286839780669875297558710857654041082167148200458392297958633395530290545783899328816440969181260064205243404163912260614636010332036712458527020762742977492718373050571318911146078353836183652107789345615165496171282434303745958239834481038517448335999187957535137175078359381345742384477363065734282739701873423909983251720731349635944222297592947312019643377272139906159428483325573386312708586739787632217646741658694305625134215253883344442339881327615567849269456696620976061072728709582157117704986949304259708607669836172770951970490853569089956076123386040655387541282332897118095733026066748633216685407888444444123782339464747155884372450161252645703990137532421222575443343473706692460758819983883944135551006477381842053343210049418414250449252514635135535454544814205657412751014018170932517908584611292557689888914696753843818245912222112854951578397385863808850851038688062075216177295255557968756137783332692410180449949985545518787433534242784403520125447225055766128602457253214610888759289351292024227923063129198953973244635201569291927234828394306045438436305089913766971264617810866373887709432532634162825489417502933652582626599833537446982639257047888039138471422727076594542300909381660037855274106986342232009864107494303260295276956911923218158802494910636601797958201760590439195211903268566341629291884683656787509734552662477052983876611837816683949763610872702429583850982595446967744661992804570452538714364105967632030543687995067949357522943900484700508626500986207619574567216801022810071298275949876898599241314859363630973174132619494919005369241742957394798136603519171631914663507405528752911140983298598529914134553097874848708595084045527415291122292433503647466846215848588049102313674779995399493462327816955055438925655584408681744154717690508291934865100148501158992606971042125531018956693983338082220780843601115685376557618813896474721421209439875475754846982126893853085123896149787667156074329028519374236373632771958056907637178087744618906922188029818122259784938385966045943732081505772035017256495932903971825449400888440138760162341730439086521233165213467318717278572517978021283465795431857221826444689953535399814496305274850968051815102801912529814591533892340308891328320009206542786317679751403847545825636877132371254368674675247509344348149577106149508111793124434391501271281184426320304006596911058778250778578267393206538862759572693095915764383771799764408712395028922938486816210144987326859649742109009631374134105185476771385896017455851177073310471405166733514328619486964258828911604320898097093325545456589297487814729993039012485771505844026805858602598907053388593796048119986118201334089614143250180118332774428559113145392900691546485734518705977944360600406666186819902740385149146282269507366851190014374659249361569483077215016512323355574353243933705135144605685259151256146098591505173561142424414149134485593390285198032405319774122486047330627322192354212472278723111725243136003570478085491968127973011883008069691539292276725272459919006968637969332077253072388085408033380236254916407157991320438080391860970091411651358597125692838067246210416397766282542418701122201038769555848045194930657592516111341362178659855554342445310249211879566298607934007045248221581352344011861483409179654865718166808934469878736206623126682554152212823825552397243846482262190849605009156311434052312043505457670020652244996487771413688737160500852667573730315276754115661201970329267521795576680881133416889876775321379523578561785676532356832272992011098824922911464054169286023738741165006196786940216131968463743642550805313724671193877353995733859722253735087456016519163779750239311771756091433180751428151570850132950679322250562023629014953932795122754504523076804419977632766927038155602194977496433067845062100656297364762463914904385260526988380991576714142871635764991028112660755718382828269254568849622632520566326306050158983419066563095329089132266009929643255092791845068270390221964935862197098047147231560578281979532574526654316231147884778398211949156176672207098188114201898514706380607113089432014678975600238908929029858149764037115882385879310093698671427770797964819752677373665017174703965204080601422158739408184709443626159740883549140666654378371132951605541688767303174924943087354978681806568832564671263189801639709073520131614119320349668787428660875156871277866397337413967044224542975002210051853188824515936958132736846210233724169649630974833830900222243607912414262948660215331569114967934995629103376664249895912626641046519329514093205012978096547698809923873084350607423585680452715909011256582956107116530330341311989445856123950818738702679599925276159569130187366186994599689176715151776131169210209233761892705000900734929676624293972317116495353387875808156373312375973810292573420969026415670216199874787376867278631388597275675856944532469943641005262336625942862834337500207474809562605225931549023342861086379590177333036467142392780939813442201827881871737502232855313809298498917411079523102937726939550947466019873030337164824487817709579623867792799947061535460856933001479293032088795552915908838437241385251694018262485253524388185273557686428346173549701329379371012317001705748806990127349114127447375009936188809174808932221691693605408122743603165532808262910643739816013188328990359046803313707555676595357749616051713015379929129716831869742747360099145441406268650715612841381162723034698300944618928595962488192714784188403303170004469243641607063095529280803510102162895689785432255967435157334231021010522197530389886204316154670899391490264834670640138856819951299573808430647140670467643255317628595939675428806357420341831302093988998917684722249773850663353055631374986376694886628105731325511547557863635931837499513662921452283562929448843314443763396549071426785295875906273812394077483867660675470897264338375443565293499092001371854140815214375342322141717225776172124548248177778397825604124858098304308328631318002269201812240408395113845399518494083526961803533724941222367584100540045457227794534108052885249166552351869863018270266014128574555869719779916738759380460876283250885105686782460762292397522514973912375491882978105311616489741725516500272328531474610751310536712437463639014160676330486464044185685717243820056428871120590035483423615774096808027947794426561880199786153465642173514182458481268932632077539214984013656726037771760415507200572704700385320208302449634736362439553371432476800830040626425956742666934429797927383442002537226092769426671926926396642873308528391002050174363153669463952760149732670229897674499002160268779498317263529041790346579448106685409608114401665858863651179527757612624248282282510386123251637842666639909467430772424245321535450960546632709040114741880883584770298929421963107318360184043699151706840469363885524442995150982584690971243260498926882876671129849967959104849055298018847313085730549733882664871114847389868702332907861003202664100175437197424041585420049085343601151071360947904182383529936079329018344592882953590131017289282990268271702234311451911191235308357853685212789133875271816662213108307802855049641224841907972035221828103800135161720435950999999932120455872224185193237725025320838623221234150415958866453426415371614845293152865626727216552919159917094289003042422018709684079072085340613403359094788593139868550126257162803627019903453856510900795377745691351495019894199588896588744663867762979708540373380250808228636061808040016690975358812644042835109553991863834492168497302533291383867209211657361141147437431418659955940933878454960423966403514907326664739585435953872458116196289004723885049206282732770842524712636992720311872921924036069440153688461941898122206305149127519953017073793345667553407279559804668467436474555852107542052235870583804650664339696106082736129857206808220501683863506000411197994642059057435396991356577097028872137462060110976363871531428463456030477330384682653379075483694678442960412624264466566657633359845381073753508117613520212421406757849069981666711577773231884806888611439918129474643174937464241606874787532610361861768993401116062131238422076926749874986519636420180750710502489262795506992922592473842901455818148811295592784872779000249450672683590520408279750207147418167624575016453753215543278307203459788881662989767652716581190684065699004442106235169265254955335230239499533733289887771182211387182046006694801241973056804367013503065583740845283159307436827049233287736195791034436766120320914176911628695490959650962875804662713975125194792745209693474420512760935845253583500860259885629606285622058546648926467124060380213826176871906098208430661040715879517739238731458568050071139392271867299918320321693612557684386124701910314375155994029458390629779393964721437776024190740274380036568914145270852756041635573816719910981807955426389345542025178143109805853568281750042900178460709047413114899014257932195537971721319351171882346541496763019331995862576952094034466473151675561666765879259474944124309146583445402370513651975930988525999172959232096726118459204274641493555679542379378541548582559837399045452419474759261544053664672675514930220770097944418032610557378922572274692707085451850484209464700190158273034183975873118996331733227342624347523783408115920699725597891395512285320612576651405358318638596335258428383465457674987294117386207504691936769026611773001654298957079960154522845758862426250116259508309183706529242066596726390857310131280055165645375559432912157111796183922993795633192116743317509417879035453497969162694601275334232217935911646998917162863585660698652116374861265360595300068814531390017014123521144660350458262932293780771116956865489727528968112516583288163738122298171340386521888282143527012702527740915804345803141392824949348603626687628594676819020881129811460715027618042716176004561552891055197764257521750050772903454052927859078976830769370019838161503889395869662709468692075263159509109700202195269770284784862210515851932299614442099603573524600229627509162752598185732498793976200143662836891839473472637351424718988446481420146028839135604061470839679657223141800635600471356174637970278075903781111562619244879653180457908293091418510733975541259845855253578011847135071304618767813599906447043613300391731493297147832205161736160373037531086056388263496333055141487254356136299457383229169241528202776820387718737166379109323184060833378534553046006553492624545412664626582014749459289133974352904948368182838316784907181977561061517258112390741112627769362375329603735952828209771734621107091433599265870130165356318315420019056555756369257990329141948226542106811773963300959359885683118748091160894109661355092954930114815126206801802857094778271334926447255523912178660439942372904794248978295102426208420174580463470876818523642012576021884548497632226539282587262590395390516711475097050715994307659724482758466840450463856695812141019470425635706214904929131632336363707199024109940313891004472059783129973407341893419209417658999055380447009265879194505695630246320361868958111389554945535817513961161585092673207519390538812600557539730466051997137962808048970161000032702021747026861538966111505523386170539545087799776275393677318562902798224859249010441929196483054498041464286365946941702322093014591969265997714491707608123013017887128711740021823206330955770646863944488464871011342226285504569233970217667706222835618806523261204205499231451132365576488976142710893427587334763797178838996113977716493381548907249531821971805490790673520540039273163128874664132115327236259330438880896149050784189373711236556918023575914648008418248486631607611610087098552665029597895092163473023924613333971790402742258570129219553647276101490481147984534387009278484805847932205537668090940873431805975861515642535351053877813593086046565389183546237901725273990860815989689806638573328314230500564466164707525590600541731987001868950474627794507963660468610251510168023762803185195497172028514356792028016170426925863187834033987448579661369284563897853013250229315683385149932661445637350319758946083848796446887900095982998166041631630291075896224682234145322294634205864873755852396784328413622602589395594243104859638913559504472137248832751972548221787907329719766381066290616713267347456838008477654145168356323536068851855084306116328073448743610664867064394106037828886058749615328930338208066470707047564372133473013964711868182756220387981536448317247191773965575928374588636000745467763246580616356523987765204034971054893650713849979251827290835813379472926680904437928106181814999908262570736478878029949230535508570375091241037333002908498620341641310223953681965154653040799334912142568332366882800445757007988791495722809814681233311534064233021467443963964314176399966102924641350584669464167448526013797334440649688836755047997118678687560598980187470198078899512733322839802219205198324398144964008104913543976270385348970226268266009075920582281301096231564436049524455211742395561210702747906748613436042065861303941835940237020548467252343850482454660214141370036474737554702162832462169401702484723440216381959844112257375332775373952686253128453134872398619031502419737760092021724232574427207554867953102849740416285293418180064848620828518780066203584679816576740270967372231050236559747586260197397598424306247576986691868908337943687360542121164645334706830569519520539977797325328437873302316296742165944109430683042217588992816861878139404042080937101563852865915150905484501845188498790912249814593793735247207067931696728678454713336452556389427017854517786542099564998158634352139384246627533365873031751644640134324671084351761220195192947962461067959653601517935534930092254271205986004970988644652399326501172723926424645722877598849876678870239754199053734566714323754646163904185474564128813979845704707189649562965440266959836702755263080374019470771131937642558267026548786531821575980696069896753418887390266852687646429955914973520375460861734894047369307804496078712051224086287205696205192938265903925931183937618357670803330656839142205892469507985422465039472628675677490006213350617920320844667268398190144723126194587280487603094784825402888844689042953726914183946529170173224971000373899010349593126662491371991338759332780891100437252538337820636266465128962167218422963627002144955248500328011572753686210828019091944697284714253348584437183704507457291486635800597355417739027778388859610923549510539768739129486060864093516884550998259789115534761461690865067630784967435467140439433316532975370069755281645800107517698494340063503570517101651518891277308683979437124212491233709439235725019737901543730746020049106982402223017784796454929740801898417719155335461784436315320731517149777217765579254834779302105964922474625836338087708958387798385788939212185638469922153281212754281467294131016539829833956862300807167239847831990963791892488313422129038797949452415917762123418044170217941382039455492120485726140862667268870662855159177604764445096260339991231791844786916712516888415704477567338764426323206557640315856552076863821878267736158373039322448541331229867787527700049171159392708447486610204439160310873942839629900887904325125975250019280104198320847451472777788433004764371580774140689862323795963831446055404537608003687300815239334230801386961496847213158233479124871374807230103334345014915465463453684784467213528582536041030199280062713258588182213716106941769903978964663843513271067794006928565029830045548014972337485146482830681934887253947492505269726645087100934950710489180237787227028751670198036165279318222976020802196318634071760119175453396721233033810275650339522150568313420888551837519521480298975794942263867310314822339192958440220655481603457370714074453316877035222040770564072599150252061527917704361198419471577226538794933751307040873791596947255455536610673142299439714807047469592535100092958864683268930566116343222904049295532426425931414182785611847832557738433498584461771005108301567043424722689228322101386915506482494121937890485931047891121234982227782530873854801387028904689210634898120959644412222287193315652397910481536541328535511751521747472592544597604746473462132336097752409818942980472544627483947443417865346555813446300598340651948642319258855590994474398112806269355009933175044442256395197215727141420881458502723455116819690912104525604379303506833506229084201864076722834790650068571312912584580863582987317194069139044902743478905958922805725440166250143121936912782436625888803803586097079533912339339928453825033603217817115495517083001315891154765174854302886718090379048472781559326040998528059541444477383977634447449534419681501016814367595792022857401478598857192074836678808216779190728809045489354337463870541343601692602136711175244754087492914487287332529125889196080113205983774849481049287240195344511462589133022491936456800586997148066155587225811461121124098552158210140832870131827391054770960096410121024703890150931097604154172591703035288500747870891801799775268513208853911274538371190106249608150881568830568877625847402412112997425068716678163452349799066381757829741604530653124793793119115369301413895767892936592067091068091295180397023109881254234393586335583562824621152439159090028065807515723325751501782615103970467557496764236253117458072487744708988055724185549797147320244916813996394928135504197813917433204417868542069912981778848469702919856151365732791758865558413253063014534467758546472588563794761516201877038583268322475183116253880764295450926205666525511844724459929433631564060358277498353340403708913922707075601768931460288466015265755939364158011070882837564718071155979500924028684125262802186019904870434197624943174207657237789791519543276226401945356208316178301286741832922678954976806635856630884724982070277740137866809763032856092036927931669485084493139379519294642301974124110940582606092169050144329647932543863260560797998378799308823423174873551328394678846508917454723190783480054253562137292568446211566661074668555252037488651724880348330445378008991518184713733101359459089811301754445379656553614013446112278609212067788359459895978342128926296689663041103090866426206413968944383180896248049506449340029395321032486274265328642785081391523029812570587288956952499331071957483708169137283736594979249543766639076882191226051664665489866321668555703450990210142187367502031220578349192141673122088122231491774620892769124213551718031917039072083417220697788312153257367754494246213778760385349003586482715753708659622766117550092124705092895657931535141396179056954926072133902295316382731895614827728154346819786938732682267071294658586127942548093861217884686434381461940198243203957137529245957241468923603383187445680258299605344692236118213543499490827941436297416274876244399016705991716030624111447693746120902739247729102280477725661623019870822294629459676639935897594409382735396830152147260395848130669915112702330340719565848942633016629546258026714233630951074843520973475953973191845563880468889413881456930496651101880777348951279000470880225773142561967794475828585479783343678250703789312654121715841987939455049951469205743104898857084548541716250606444916039934564338920370186940074617692273052748506806774959954114046726194406122713097442960821496526533614577151330331842151790626007766041322945858347213146665892996977354507133503273932042138698098846650829979421507827336174028095343824335100748268689000799651509608980138854304966066531889413383663255167923295849561277819300352753424615532233112225007241884065667255043919216397414565870249569514434058576410533241572563183013875790845282168275224781643005461786674336553442927397354749679893493395282865999530406735906975922769703843422850222936974313417944378306460771167942320467909761546683460514681528679422997097131905838458993285283417515116611638495335145669198559540167990339186850452206050077942734045647289291120206463280241089510902552997916313316016737711079131285321626553521964492289403367207727304915088857761507783562383737596291899872127606779887337342045564540093556708614056166810980476836188369978849782507945142890258337893090417032855876422876530819805626316047981882801804995276886060610944797798491752406821544420585501091198424036771862251822305999660982716401767637080280891078710345495778709366599531971313081149738413313424215256897307222319444077901924618678409531831535704268373208044448250489093154562235093738879194435467836098809185763277162646900142370750206240495276438149845098926729779574854724787310699475023242783173179052257565766463460421786755616125407584435959582128415627552538049167293675422824793314277447562610529876294866997942054876438401430163669591667588830764286874295895774845139701400235481163031774069839454070026767409311850485570793351334082004870241318980325494762285931374884140785966783156482611274545740779681433011981453056241731432556723703342147514979845565297374983145451994986444579016276002815524583068104362554627031378370432158776572307916257515432166678742002544370987299741081625239284744838209272349171541061891726990060725745796700722574667130786006153749048689114501177502532418076131645659073659991094373085189928906708558573274542221410271588751435623699682632950196018293440453272345614449271596866034149735682434506024697392636000063973468243166894131019815650065139840912350531225815769859536014852582403070177579902720872618312946003034670355783105234167525886942941154945116721627294560102866595971327571197132704340731291467278319269934057731042483144756259064592774101855828507468220716697092846212369140771400198214479736091835256534458312796281553206831763083419200661898662001546375605105608125846167802342648592303782228220542740219117835036465206264971363245979045363728332051100125548297230031452566091382781445270685443302607613046720407671625128771727113071699222531239489756234171892952414201536284612726168265721700832080261749144761605146906134463639194924782277555213294852212350885931456133640975076580044322600685337107812032639502956243015292333409553079680006527755274494047451724749884339120751293456419172979662083019659332264968291730289756880123568160204301057593396239057325932761407565198942190578020101206064101784576825890871546941706106380559031039341638204328660805717660959286157366024497505052141562178839925273220288127847786999802305204020996398861974403563053039528419189167334843979054555626630670748741759107954054752941548161561561373414449740488171265687436261277049056986120020226248611669003586840985607583748133217076542052467430976908033852822562271294774567276266298262726955637960613002449875093806795690537937667124336050529388891536293621189736396133533085171483887857104188670039098290342807457255273152181226630358109711693188878146481867964743934113726846268127166159567524738945300542692159751758158966929558184337065402063692128521200611846331002619870363315489935413790988830652433721936640577024785518814849031255694504083915532367553771474074641679758794590409870944047389797150155222110659494435909427156335933770909941503887908891976390161380764835897725580739483269532967466758258425977732490623240411363419052198430307538595399719465522141253452305290840163236244612039241204136298705173283137929454274009382193299575920507511252919374940331443559539265683549520064863615200726388266744765345279312264655673474295508942207861020758438488147676221528141474934257896505103219048732287848245569977989088936510274507868167623287829486237935911592834206134659957333820791715546181422671354621363725947037006961893778683394851703384212970787413782794390016491719114456773297475051538112147096828260387074833412263201131003276854053870362554200878902738185011423893382384774994680040665799029191181838163089117348536820732572608339732733024580813230509765353452653828492503558189295902213644275898057644283342470427153856786609378778623277175402930807659447394778680819513635365409011220486796975433495493833268946336849375364934835547157909273287723211467020650289035066602933206875531145928866277787642818629862409532091971723944515154309756407319313846818223955929523411232511907701174716388133376030839341014608368865596089261453799582113337085711221356548616730953101654071973674436272180381236769830354006882530331537315058222913481840301518444295595253451677182186193215596637174519115876785422744499179799362285047994296520932500190951922060785443063889240048641347570478664276737427100510874321510002254137615301254483720019206816789487417982452466473803584727322726668844737283938125823518598719102595611133544956946570855815654383377498029372388746528835099156467685343393166600349961428314367093367630326956777758709072484713770340959916342979869920861839715626817059906020344806009966865455511105180717035248781620988609622611553718402363008390178933793225269229007677797185646850759743787056676075211935681303072816155906126476882187086991258856036650988052357694165397744018384914245395062540964203557419451938309715162752249757822998793960887695830326662760860633634205146349742879690676913544816879866574616136118328942886664272712065550647239649489193583606885002133321000969271724987171986327178591417231612515571142708270143283220625670770654294569868687930840265884475088608759198489646295467365441507904358344034908090171031907924149078540287135875457309570011098582913467368435916315359042877937295214133899610108325670814985016297832892275962655121748287542064617275716294435895458457974997012213814745054761445374693494037585480448325737278052013440527772283496375239789125830411673461281266144597929520760635480952347924760255461386305095022059868884177965059365983507688391686017149483942880975726888692124907171521830628710329046213053635970266234190778619299041239471370383022101408985415686288196417276434931237888604215683991764217902805543369754484827930934271666882701302013708293321887711973095552754420037992589398775388121245283515689131182682385017840239293381449897104481006962972838910437731245269123010938831266914589261436375480225997054885971739737976061033627626293471452228304462006670410224526434408681836467210198621170313594639500285208122111491265735837145392311354307570344739527035999862039769060402051291446938337992831395509637986106687793413665664072543619628851709924793204338487314860161287430494019340218773829122522963073952857349633861235688624176136057680685830078736633711137123782076172777079854032246726387740336070359505951025754136511306300048311515400538100074339826661756843529349663306449469870665784550967429863821658344589877446651266260634008386389944084042722135306429044876567163456577896961499730898364779373211156220543554322675479095055047890183005089263822422270525023434937691212670717390324236063092928235122336080541785086561577044144227100531755272823763106123383440456393956051856194119120324827697231365943585792388502661330460999206037544054160893076380749788162268838499300241410150639340009314290319578165087296670548656776872939681294622800042417973148611958481922907962243802823289306438396928877028399490038966144496869481776069305168354893499131017042210287912088366724006129102830983407410136313842821310102415801851352440012041034473465212178688328907896543513405182843852534363905547509019426260326129214051514498485219732377548632584480722763663183061475583510183315979844382491074079641295845919725961312189064555523036303584130092542401898757300086001234846113986389376937967638282141015485347737765417904873096425851144177667974056872509857008701115381613482018178799084061302821607459650395722334660061585285387776629200875308267916544939293905441355299090024712282118467137495505182989789675520778812223045685283398384795652331146558214555500847169600256256999563020870002189013251161669735898720406381416235758445010465317062417527768598073571480103762675973625621700043312526955417821778846879253085448972828756445558975689597737199992329222260678667513444368679958576527075309503883454122858758503735712270832191173063030213796000307163464458897089633762739063044108581639907990821262196225126028489743745599710061129069479179736337721263966461896488325613610808721687264332903351517911384703707122634194841852404964870820181613265888984929363441242374193134426407261916504205725426418366536694577171095881797572217043507798370936665904908638822642248617521146823389721885518111050782717088807734868696015769693782359012521043902985243431351898417730845964145319253015216078668663386306342960870983675890390379492784410979050421739278156977481735357437120738707385793572022851943961085242934736700156245653684852545168117293702545572234605054476414615012984611349630440306328131205466640633945830352607488088708316945196618279853938975283178149944898558386460108710268478232661571504167970548235470177280758024399599359910730798537481895055727520599218621344673977352778904590643581612333394699180413498886262289348218300038981662219132944538385198526618501382898118746129555632274395547647252494520983759503967004240039694653248103347488229195500938040286326171250914813706120888112974025675563108984364682128091945241875211845165384766552605985775915489319320743104202105811465270858096782773731628428612593762779995967797882012959201476851679499993479656139750395142095466467213642986883436382318891483727198550218481206748514643785179719876182530551572436198380903490428708506943946168787260142752001942956591719673784306775263265011503027875231762554395007748460299815728916958518508432502209814275876740079099116803695585857308675208061693913903841606342453551884115830730639169685307534554818712549680109092550599291982966455278625795720148606204040539698025885309464194061207553015652593109496085341797581157314669576684004460366654917513337654766136246242334864228970316620624230741602834713104982905573910969698483461825544745715053844916584099109209714076756271159811509289216306093999828718724528860195704799933188204803720090491084678513263769053813316147270233426264740299918023794738361662412309640360233654650508294282435176849273661474048283399712720421462181041773283939843066574116039421433072083162728240539085660802703390823422366839349681586552041734952805174057001528055582655585905045882005743078597275820572681429591392207061862831139562837446988611096230843528130684285165282369193991151822156131324878144020249100791884852873491338964150430486039648190759792650424859763996671593211297839705732818505217871348564702148154127760329245932350529159617294353963835405300588192034767490823211333562083220844732014040379293593746503901961763700425269276960486605020227742212102282532241406625900770778249941798931919502353964075788128025045448739915504894519604892879011948007511240882727337754722969779431659539848115876169207201875852232769498079347330289456007419037364785600707460957046252000652458714754354376977615075077641613035427979745451733268058502261086875520008839979392252392129043690380490471740788841180883723520143395764925025655788446906320423732127781011430115680989307136174428029833172825106253981941638848587744161917877399802146515517900987703450763236378629185384337582825313466229678864900314408666556685111512447994914388802373855983625877941790394758448291680413159888242461861943002296674128151464522100491603904288056607263960188043968659709225378951582212721824781688759423608175302345584980392377021358508321955664545784651461086229099447883618170704984413348442174057763022835560331880975548325065332018782782597664634358645571235049920302399552780031675564357374366710044866620331273419598819401022011846954918282192831625468540624748059409037395712567320984634745945484505642496126964386398029805996601387045023254806906492242944829368129213440940764126755614471750682738158145055544461058640528808328102833661302351251182734565464349194219935407597948799867312725586738743145630584715561017833747035028251907253345078551553951830654880122148730144427710370556336633908430252984789001875694779745361251174755209573715313022993807460145313617000295206151213809910649683836775818148179496814875553198728556528617713328296669296317416652899804920119722402203320207952394088206019194009367691910622227637000175231726919626283281244109588472779612853660378650539634668948202731763659169369561898463299571581600580846468634714902809804958032954821719488688009981940368127600264120543661051121363037703944105335660695944012572479417153371690996998005993309293112858116011849070978545496202505871041314943596072581505744817362108011301987060514487384519118597996916635102929258921447473622864605221644115555046891500800104424590244685845242965337062844859581027802442143130559877700583395349083145471988077385632441008959904887397566682723265044597277466019036603803588450459904279523709213002382226316919024408371256012647866453161077676972418950832799514591269008319658563841669952374185981450295637376132024954435623386230195255477422635486410222989001128670024835012220636245550008525506110268881950623403514333613107959123753992019845808620927032216490188702106014983813194901451130361602450408806529540178982875220359430796031640642669028774639300850933514906267466230903776855478558428572709563918650482540817890796539743395466535046744153022621309908508658524714135717915867872497969162320041581870536524515923795778657832034558141967089683958114945575041834813013384763971397438028785740652111061919674586863896363013257339922482564375161197533870321806510218903428807345571468846290135808585668270436821318516439682638958989811317622527747554784640728688703167175784394513194135179277144680381505722413390834120314601124238969638500190122560235913917898447288418830863541390400249668804024623324065502583109342377263874538031576391259631979205962610051452949545502679612866163997818721140415557537676569220250216016006912545200297702952754998041792780216256415381573762633933590779532789284608098821329387899136937255526410972731079693689568696438455333604182104721578605489324484016620091840336907981413200735492378221229920482074627740559116229684392136045941482906882512829361146186165561451077511392922147437680263951877257578394899192204536714079580242680339249088208253492834367544627700149184408712463918672651507648077539512579158645175906820303777727302855191750051848207686776732694458963205447681165156406229872434577394163657538876137093703610749621621761594549040156522687185742560121667073580679569566084714395600987579358770308182059926292789012024867214837193965956722585356697936113919588163409811862531028126512189978121562010911388777928281725226199858999736368923833789227928003862355563849094732288071759487279631672397789812218651372432358513084282879054217014836916945108283345029692039885531608667336380125803656821160454378729500477489757772402727482249038715313782726033905871757203458582203754099817996050164998567140564197618111153042181543026182993655521662491603030008188954670360861002309495104510974708357801093600100376280332715322318257526894660812059841738029840544318462211358672778857700734496189173738445371627059037912519903538543035471538080838250472425943432451316625864520163165388678710278648813878004874967594962660360413652998532101010516334894508664260173378719428480865425737180586992528010192975302388126880214942670254613980718045477536073089663439843570843990869482562615983333885591556592369154516995399584728521892190798528214842561512474983353473499388280431888964903457668295704487633910954825090233635398287684807492959235256703344543246230466570888097776277077478536813836991139835991835129977474496687178498795203325947103194485692755942551163389751274006148221181845423211861983368819309818405426027697617393718843801468433177835183246414200674695482684830465144769782688268784797527226210578637943185728602018957715125640129117858644686314532608540670301886976767235029161628960423193503515504820677343380436036894731101965579478588473456643510232501598354390042535046614053893123324312267941895911225301127274509710366617176642193741014407765172375397617110126708389837254065829168189804909917530325885805151819002596052658576707483579427217017121183527978959611365490968152633974979155486277387818712067333136690751182123537196121356389927563224368405618474964418474207623524759342425972790451687206416535889885608916569812920806310228345312976988144913798791584271987788812412283322414673156969742627969753865664656766702887499151790773438275734802628996998901719195592110257097255770729379487918483272691083860507356059612220485659174362850281216057312314180520695025244184069455095624484551540994012739509046746447075011469858121950426193695486211287387737630019698361803998132562800933670070508466779014140003785720961821003452280745933658176114747283111637246276275297808706826369211421149589943982863248586771660536714568718342556809683386300636497411448338172905001226240124959308117173649871678650876261374246455050109036815525897227187623700664481248291914177053027024812632436866855211450554730664086234022222488889248822580571533651750091821483564748987759411301520623383555190469148665372590078817135327306881460925192611799888368505225914245306513491442559580045240417642701490378166317702366034513511819522674517377050876076792140780610952791469610782519710216908421897449497328498212510300654810880748453300674309831342291238510272786899512621576208913679791770700989694973710761191793223950410859754891326484055619736704729817942116593498623179144844073420954545889794749289203200114347207952918985243655006872798095337325001790199628195295129522622692770054642620194607212428817140330189896112451293716633176338090075157398491989518373888001778786973684804422081885394089265996570910053050432087371014014448130654513206606910330012549624342223501677056595178906447742797628371376587145464068737146804141324212846863026317087598554032681884721323293579105078361395971160120257124927189148273340791292678357374839204715337497386354172707648817662058232455185794228365603886717589986876733951245746425563199842296223208260979297969933895964163830781085684872198671644299688247048788193417907232026432063849164200209647076069601421615881724965212761481066430635990078184878531734369102593713348364773052792693036665324255340003093950808976410475103760754815986964900589350766293222284824834198766298920710544155086320145182943410118582112953355148269646983702339410673465916100526586727291283399527112446339698266357479956506586080886291361843044306808601514241304569861480175949629499672267505411341357751643440392246286138808819301024182543858163326524997308664746142309769196120907869856505286339676528218519099792495773406648106748311246856294162242553215579638359711681894124759424414807021953152859316011038380034247590716312555049693132767670535039269225283791511228515190063554216101944420953108066778578523199568100773735269547763084589504154618640270258120881022394069604400877765126215252980489733858928618408489092848683805483816788808571831169675470817134157646358184751030699521412758375923684692002737635381994634187541974612121631081129948676495501233024186793316342310073208095193424596009870810042307001221144428528115120801590149501526766173211319134904681044220222452151339801709584793741770944994426667551372857135211362810864261692211955598063053378473155199108390238002348534942100733928651981572528183374543058022276184334556227840426528428550214870772671969053405191878327540070513583026152714154055262306620151210242234293392476423087968870550163172821551238072199694296245702584881964660595249034075376130461704195580704267996866664430501000875581903979280267794177622374962386027491875763863227502092548470655407321633014391821591661981851759174797848288560176108367506122678286180775689838972595285917690875856490442517616067547502953565592189921741955753432442933954260348084890882329047981773649993970912483871819943472527505308655321167802941655458432031798333896509939141279832004677084412577092002387476084816220948856142468900685344360441732702349596955437276216363655945731694893189507205447048557303639136489521636906499110975859978114759676964716598934009616883947369285888523008426976789749979218129878500648568831410483386264312391471146520940296716770478020052940131812550597311905046631515733742467760759933008092417351438571907507640730378956749048094316913850051815702226653666788961911701895924335424243787866617516400323601655866850589994419420721635941694432143997733390176798531498610360341622357094923472168874605150517553127623121377323393145871846774771840828653639984473655195660221179189374126795197469452927907342208132050138431887561530012883825848503430533876136077021856112179209950479246867965395345280100989273601345371443927871472079959733406370747041516673198143333690886305304052439971797780204437230621332006118390381540913128764168312599709403680261416734932443433462135521957930256551803383197608166564841419097863575860637557283242352838300271926271815370355765309543251844148385668749355008795659067226205411680314741811883822732620211300762640781119129321373431602850678492590051502671660629384787518863535724866255259450091305832890285764121472352256489366361518943567172581263478175811975048717027890952024432230358699368799633963959275634622326864553728779762769935745199093223306822964975817300841520445126092863297638581144930271012968352390053174279717341327794241204208011824096097838441258653806848883663942308362941338543402727373909356523419706114253466036806417414464401839934260676424804276065714320298844330251208983716660447370465288934246583959529935556581571133672032499086774136415771479989072242229833940797421378632436402098697466550007345970903590875533942425059936593595685370491103081613317836493291212346888359067042743687171497173954346789398910872956149115426114910116583446112200013365626337241350288154256669389613543883011286073822409642065613601221474251415313537632756848546369647237052455545786670348814477147781385743492794366826995888732830084567714638822305276755327141924602471699347416692305436978961866633027677196618692902823914168716439126996792804002536722647446558242274184660876084120241531399017576382479780545929677690868902530957120685271733773061629697857334282458642662848551783561162289061720599058038809933613274737206092950185611327898903840640250019964178673288428991916976916963141975356826037020043276052379376700466538809420734132315827094900337268261497496175922068215505106928867268202678747947423766346673162021224315118296598045117753116152379789344547875548098447174717181629490602389593140164415162675928821974971044686693277714218997524836169306478395958669955541400127653678905145094153814193410504537151209056167535996944016377179385517592844065629933874680830993081158752799492645174400631710626842872901002187166687301999887330158896509911752838891968338446600676488302014701727456509238546292438630794559259944102218355344434812972581432075225957511274777098361493705180163215280161140227421887345320547038345246177538300855839055426033050816396079390426009769277032376323302740234945699582605578744945613343870058299466320699272243601931731708210401079921685359995224904451063877159444602584263338408497684041938987061847211263887995491140801285630055995256172294758876220712520546484210858685154830598268284241641255580424624624519327498897865528666357327561585351170224028784104412752689910149976178651999330602981099299707651515229797144557577070796043927591026816240817524091361122477003900901359267592615830722460017522876787396294695766680765343504109291116190939266486043163410275679166044654836267598303058146268463707072524601189139009729555407116096199432800597610770480513175433165724078927515584886994698999882931906741721922699246954501156639158459527852422597074330067626628858697333846701448892485187040872103280226628165001564704752020089862072142747035963972223604511441571392948186532324885477788122985989865247199919439007437065446672318174774256862584769455238782659836937493154525678788435681437494192659061629713896920607129482230749187491328975419059850587236848824930811170887604328651772074024480969642232452093723988712705037326835048525842704416546497537900259161656404711392743526549307813909766268255852708729046041760350494222397197707715200484900835000741395159269579698431567775340406462612495272299268435288170663059490040875063292512667977906402239959665060502361341396280025093206282860369324431007823582804980760227835572374827541377240372407296871212617438799710070071904118805233692919148592070137075115686740899200794501990157481499199912251858250075689917192219630602147318838035862741190117578255886708323407354308556917820988916208705428606143357823564927783865091253874529836563464253191895178830461218461792716980394497278203665959322082416727880698810447093517020251849072620802508110106752782615369831138399466523325376785395442237228601476152335894066823555697879578404200794867677535480587095390732609486096674936090997753272343711151648925273948068339339837824612209512498206754199050468433824681392985751956996521214033901094923091227011458105355645914703640730524996582261051520859459888933438125503126983231784731239013977710468027574614185588304063578416956373645182477470203675520420564470383755540572391013316172219101809737677841397157021338839431561792060442385567516279925457901793585634495339259765746703228053476068018470131175734020445165979643410168261337581247071064341256685030181143140808294139060730387729805599031662500335713229660395785748019505551646161885148173443837227774009302181970965676746113759921060842472682283659083787145937376848783525306484580597858347774057627163777757414053954044087459388606629234387948829342544555900805482974554499688910092486814852222028409550934279622267144421518353906471108334645581338972111528260851734982147189218957190940421842798733492125554744789121884436980679724524894776477354809528943241347023232700283677250950287284580598526516120626300017461665761449625771699936901444243157211956395578709247723441021507935237283436441586751211378194411630375629600069314295419468503632709846885050315078473358653419004891978652466752915103220618012452692402178120212205941177102828083146319551636725299617788134100233039743323425366679753621049099985485481615364677546173305092127758975329945576670528279549618200039107351908764032589263496748604289492046511162612859403981132928705109775612001390870701921659288620292336377550206986839978217470119838788963105883528878252369999250568169026011372805880486846420618897800890288474321323252264940494215572669569273838596949467846495592065409043263217913354457646411800853772654667110849967202244611917522768926062344153056248518286204474898095031517024979004195692586772205935387686705879023748175761349737025823013609551428544879049556540082454605728066307376789713709257351821708028004401886912310504551132920499200961982604927442130931517132874412709455733165316867721164227791589202931145368975860326703686645454972539202952131199018353904538255590390103606634352668252134126468873691800370620053846723639883815853326804416579320804587705957232413769662744170935271577284502880930679596075423841680673891232733504444547694327645679973209271493946909417728210562490507502663745923520240611449579764474024821067122684031420426831327117784587781752827610394912850625752530651630850583315451007413082540412625028919713546037015763374691809174759216171674325213250754682894541965096498893647523106618442377282060820577930679856899860646652103952283757015459103903076078919287203070475592413307380401302066825400354467937621327247126475271760933360743542951441197870378631730836967246848179364831019618194767792143006694001494507926602658929372873600081663137943452354480105561768228612809856291336400666327474088425258655203842521323082279421680526434582921114986953084447250399751509316895381359682576898258618312340215933405627816984610816087199039412712283895478824716146297487451032886702193611038360417496455837915643006992817200034886341780343291118398922490989416753569906833384347867497132439785569139489053892787351876110556718730545886550773097708535837547335713820387353746844602644312052417208001140200763222303009619756103403258560221714155987154043718105206112413094741306583013829984348798836367628274613629525955554226978022638251998024259023922482069978302898513689900980462249367988415956201904337850118239672308720139764274161736735628180640701738583642928419873955816545781866768132707996056911434638719729147400202792445937597481703276516839636001424440687393565389106151496830708793286453937619173540229824109320083430606497669824878716391567668932817979383616997694058135012258572444744638486160401508239627245431273336913991090835492821184427903731812934310589512476706398635484920610243661458434738292669498840174616142381198377341027574294773631184856058437562265076687988197330283319293772784918510006689569559286999730152219130603222627439516170084895573727132412931732799668231313689561002499492512343416914358807933209941128269736739759890830576939389963412752840169719695084083691860893775536496963317453579640422882799541870933129534596236729901195960380990507025864899200712860048080055959502449014226710359588801476980345031245697695908669351905540084791008321856705255417571819078207550698547462818215291096392571101747150324971645938286861648697004618336337954969353608673104580283726445160294494065347286945786182997433421252376884010280466970736590840807226050064334334891292883289542532726891192094873004726163767332277184134350811890334129301344985331127170199979121166258489407184053614253269261960724951653600639964211123913246713934221380027115152687962683466157459646535329492304858191278631877266286226285484844988044409033544294720045597172601737042042222234751870438165588050790626941130041018800507213243471236810947313190426568225132894229801370118901562294372350666370966820942463925058690474944666103952019742000164117773707031786247733143235209040919514133712321193052994717982222988827510084557028892642097350483360088953232975454884869360763803013870298739743983929761348674799206944668138745336051951640454498406455282659671885817168919859916423820080500373967485461223499846102957136186720618903573757478522764127444106838397185429357263674602436477423995158057423838177118138652394432976090535698849083535316209291106042871951407281775326853506915664803014649653750693897218352006372115079286047470656468508232689078901104336463659406299978458015197867672392920582827152465579146199503935505906756343062776908140950912577771435596957364499153024627971904958023237843419577574401972139500604420345836976569033976975235079583627291535834420205528580817578262645545814399855983957221413412513751859784439571737620157345493040501697081963766097541452435341756658916990937859503373768803141833673321460493276887130428092331975344906237767466384525718757345760171931364907889970930158057598424019266372997671457998895846250227084892304920904478577096157730238246960695402109884442983442628273668845659490576355874657544118103312171444068803005876994261695890051661846150310187257758787744613048728379687860777480510550352717733553700198240163540812031036729341421132046615375943412795633717386588741222629919817470775958920543026923857482960415852258870047954767382447924194974325989177114397838950666048987091809174646147918193287984113769557301526743197703582459682769954391026654597548817928534883539991372591970996992421537325174681887825797708846812207723043559606088372904021506440208910543880151773835098059108139242768758368173366265147234370119941003917323406746779362275509944780832654422033762870730492460271833431402293265632643673726001304073229197021384500986153391934606994904010467460584132338103293115662172219701825246354987931508391867332213567983900817040629584922979937245751089186633526379191878206187935429324492582527491207521909759132532362904407357887821653322318791500058465616187831432626078200399946484869701342472972974561076371610003039304552974357533043155075649231678809580742496335894222173902139001082205786285824380686349173113959966968050047711835449546380948905528780908980476455496542157930706487733372514880146574731148473428488359866441133793360114886026750760952144100791395279109650572919332448881113813542878837859319588691151146836186648916043217436769193710674741119174873199258551914270700479560876027129752472712971319557360360386748506688031015917714284171203241852249874282422269067954912092519268074416656902572114737255954823761113557196471877893364441491079843494769077122691709979571262270902199918721914043967330061788803757036487786810173689034433663791244978243721229339439381692917650296730022458466215040120567471768418038323383355998900041625267304802220330949164822676905972177472013459231170999760970947265598286784813469326343487829261128610888169190806184732585441457955347200894836258715346192511304887028331091167657780192464042026911253374315790514873903011747071062085802640803432342749783400164553358813203860740114261382497154762459224380137615317667493181796830458859333890234891136615517235899271562205780891339825406760014834800100042655473034331122337672883852729825254656264791443465834811233144356135427064865828463874398173120038136346264123771105887988565675696014581706000652066132122441663624923162627829887703504993498059599570060771496691235838956317125055010925457491785360409670795883336224884949318758656181262230092986755510461292893575240230491595969292713044406411525700270542001422398384604406639104303551501543327533636294724998926042403083168875863503955576340449343872897361325582128538835059433808316066561421313856611097039315836825453317642700447290984779566755671657991194338131601456647451234942588673378307963596964100714267744770432968609249739937904322020460400955050104082105922110279537585315015463433336277401824632459963269045048672894445135896358087768424990076287407800348836661312066743984444217084442502466095883541541276440509925478455857776673655575958462507501459856789748371635711216546616963043393776406324977722821921087363808320421365830890771355466367890257368875206545960799663041877286682381795070607497840995533886821215404559442642712826738639561802110067103428085811058477869050156951809158160385906866080160665683985465779771174449875254690076275262801551705003648193446164514640444517579074643409286851752404992119762710569759072459694030910780461225006144460285394005902691659338384404995961456640475884361594500892083726152857189262054384540066451123267040187777722723334462138399833573780331632475874423219868364658349502753669731068924266872645404840065361459022712700380862378153637213226670266140192571888248275810186493832692022371046197211368265619569934531100797367829019975054390833673569230562427313360343460850278313735025076760038021703228172586178615323862653793240689408341116377321456283156099187043456229476319313809822736850738110227058484482777893355853169593170870272635322881503781398788600370478107817351414336522072053557449887340441720701454197237673817322916084207356079278959980168692476893461444444728910174506719100695366514866912907946201486603758741470440021913976450877324882589951450867646901926897250988033974835507273493007562384388938695685815946450891165094717833490723503641443727753864840197313379425627575920868051352995574208576785459428255696292827059508575418933928965757732632764379117031419136186726877225826384499386230743652747414972224071875984835105568287918287997710359107879800915344643978096159153601411867424126568167987034592631058577883781622581931697163562214237045093080337944579017800724127566334471209549767843611938800299056081393235112235121149609554812961142043041606741363749920594681409733969054053449930520366296692674362041471325305077545595629260133894855440191715887726030390942470341980999811082603255631295686973994043190611377374464928633330945891652637733074363029772660879857657741452940782231899044825104977082259329128580174912304190204399121826233780353940318165117994141277147382190829700406872310096503848416420828057842566279431222959423274331603139876586506505895680951084696015727228971109197343709842448290839631601653162985323529265490100166127255245088955196762750073332555380043912534117273171825944211581339908003371883039189193182456466452224783419732092168573821005045328199783001376644290405631645152345711471489145560313002713057403409510652634671873288872957127533305585374961863254138546223920232521161357730238529301003512224798116856144718506781105105736147325010403998649337297177469044067148650437903641761835816993369533759282280399149923806311712433006875088486501951612758422839249993509060833909059163868601070500427624592039137554650346629372500881698076029376097951046006237323796779208834740003097227310410519869818294887777211512774444454279995733252759345931260850895749301156388386560445038446961002002609063792409879305478182167254328686422838607386845487879497800821545644952226624521639635821590185932751216450953390780525636838729616235757952253588528757711169689828931039061471246851270654785739283936708612349630096322757677930235231596853450936419633663734061970653515860398600381599877717098864859928011282509757106217829274949199396338274478167090317298853543987586261227076338036656881013562749895317403218397533450289949993858238082457715272828047130094495516401366353522390990120465891706207474357257506451586153252897798733569553518506001218092844659417513513871072458419751255302060532471383912352903643280215946554750734144482900945215826973200645349501328197050128535077312890794273669458296748147639391123293005075446360725772649602085927585287175880778515634192706495133378676668200776651100529112900802410049717559615571266085432062259856012624062827327230154857406735831809595806642566490950359919582175710463325941043860041346099853691311647765871981764606886758204254785581538032740570482253281429584147452557619823587167498881286618269887617914160475517441985412574901093543868939630362082929725711164828473234788383567576128419676230032122483209774935213609808668978087796682506386729471690865975753396951024110142930848357205228738477804162140898466260546552055184710612898538869447097700434460925940996622074666242169783527876253953865221387051986964911463911907602425688436411685373842959279067338732211800950898222700343337291877623582410179784278831586901480000581262436661669829633854765880922491698081039072613610964220836207639548759431858814718626852878131367251680299736525192442106664294672504953281776080456821955639643518574337917528335822952258573375666010853733297748101161918107618301568965511375186660309446992809816552751743545633560413904346767540420922051248025352843138201364727961812620322141988698666746248988361561526617755041823431286043464921260778132736192605102840835653731560866368080678279516590851325635098064111937478363242372144113966561752351357451579580909985928660987232154699182179472471347115660664427515467804865141082109529367457461129399430694403787277017224748153537083884972699354757948901066679166579128856680814301646586491902644555570842173927252798212467120140734896343058518164793523796075105271078623221264341473690264962965232438278723428562307724949371816010624881730324720666145080738589695687588398190325802714202004296943611079387594840795605093988915858400535751377716625251160557864266605681196245314857980041138586475562910141853854379349806930420434106244516332911268914324504234222784579239344560912457983333505063123916660188409059579227699083869690315976802701042325363753435512878364559545796576238345164778795547569565211115365584233714349462908298189941137365008923589960092572897922119253229307085896560165728580595820475864508642123083056535113052160743976552359510468291315616414757576181416549105877955318196030945949374846298398199224451523244660031958666291264312622184556050490671276885462483102245851555011724474837397533999054786813533523035012294807903403018547026664087829191251810785984417733498185610184111995902734875261734766339533028401858661428035295867212567958666038624791172133434437890091627766396024193656777783517014796176514002328286894970896355686187295204649405603309095840147294977093531332928524339142838844357047002184591358287332943889104427407635894041960644777804359751386675238199176899829644402494814077589432929222211073237240920628057470010410685887966004197929200369058758530723415228399476433933813985594749533002519859418835403015704678564463124470070969182752380096246517460958697072732723961379784465102485198745017678784278671469850440216684394824606822694938578305553392498809764676886823736779183681371687322271295417840256093030350144787382612993679856142899097652119932274768863844115295761835911253775600861097623591247195105623190801301159524689409656758359214024019641813263435307192332148975865728047265947493470087540868391171177285889371924677126441551454328944419911622914858340933546539350832895930377976264212453376146584058862983548286883011269718899905038414982024901254726858623534105475299590838799811820577321453607167512379231555608770732029011805352558855254316449271581128082161512096393657137621739263367439880021233620303400967182496556749911607387479456609994184533570758397339055760707905275071190927535198144279028814344822730432762559850523450111075110126136677632002171857280267723206059292611789947909492932016726940876117672548609033325032714211033639662658746416700294570383333598692792931017030263336648131715123714156960026862458204780081965011508477067199016149614814514755507689966404787419196996844087714451023186378198269695073798278088807866409861942262118038548904204545230074996717597996236195970524483526438013311553854354158882414357887136820462901749216531357086536902721563944125294642574962472864749206245105678674209487809348570777183549937905751777132966802696925648481218008067435183314662519726573858455525680396275621606510120701421005076646076423546295613089688506156412467323287897236505616491173536720777847781012058367614952221987883471091240327068073110212413108384209338184758178542325357595014764738130620633599087083586906188496164514728696597887754617346730596462415559990238056976179915799488200195970239610740833723858024039829008826605744584535489085852682027188338127047763788429449755136259941536752074026611107779421109225837771320316167472747180080652026832087806581277627820432324731145372186417061658709837501071886599082384216686778373003906546609380744370305713792263735147003034586993258890106349297874014126073110626739934092863610334434109445244785550284790078698922347231561454387719649099666002964404829006128030591217036249564500073130004708395473217854788843382025057916453279880918811143092362554248177693767079862195408951254057570562248100343641544438365633476471630242438752662780228873552950800966121421459059690411847287580028717184848257029356241564645903417856214823407862952183584483747828716311333032662348368618321618855147432912299200544298520944720620220148934903671302120065827655182702588058731959137810699120318854667440313743019671885299557900995017996026687658667884507798215672090752871615181053452534736660405847856163406679740604466180665889848479517146065591038740916196670803897940174399292434487174099896368163605343578774549676836770454439618017286370474932824207018067228614704182005953434279294937157098063762553090203134112563160619966650548262353223440608381223481556734515333885314141699372641221588079216371382108822651700359796715075777359005309680474829824434254848977081398794360776743679249309105125553463686803194747706726461701130854110065204849130818575339554847990685058492442236631493042626083843606807575619069153883053368623960517092687565193312077340252030707582563588405314425671491527965907126886521707383016817629929263877268247359164358120653239186694875729855413160596460722044317767067507881622494592117807656599343540253055820006805064949443054846426720828247295142873506233941087530992968597504968523935814459415465707069265377785764199705180703236428103195304924407087016236704158473026752773457350107745076434728686829124518757719823587337696906925815169467915413587549088256282771913127659104325162272508620739290513972068128737959550292175545786407161233070708112582624792770673651262190116532882551200352619790776703624408702573447682274918426090023294142694924956831978459096037056626731120060922757616920245177298371335947093748856091876580253637629065580813880656752443975454814522332625972233024941175382215931066394537519580407302970246780198932262112064485415237352643971950733102505316807668882634115255606897357845847973293287162037978400585235350540172960018222588719207155655322311169452205900502071020970720519463402954583281288702599368942622710149740983785646564406357614860384300262653798289896803566601094552692831265701716244317178051212878080266870516835863648732578624868128067098730442036383129597837907446203040429876215890145744776302053844050723370309027159699728745180439179269511915781611780022446711723579589663312120396966936793175805356675675442150430245044205693723461225989028624040169184839501476191366389883145277921682472863799130936316632473891730958662597738438736865173187292456751092094590085035549511906893262331806337033494652822836861669660647161788652415596251987332910259747102503079078376599491183993182931719954008652593402947988308165995281785184438996817359156058714323081546313755509636198277544690086570588217197291734607079601956318865510129196462027594574465708600869480496387644935232882713693694149768615372913966763342696248996184924606331110998843687311910349591926295790678104748342255004891966838680810115622652455806428793287763909959225335357472314078754263610271697165215801989483282930264336858526322156884662189436661201637401370605589396960920699050040358193213081913570700824974644745496452532937282506938277133733306914344814436430256162468385989278658517560612113335894606403434029408494790874123217116015379249019374146519996583846387106278509244950181664394759540450462217521325001524650077108471865442032845384525343204386719035300670269543771502475223917015318543656452104474336837588899085789878161151534772415790847977856979162080426260398829517642729743793098791499609801035071579152519267637421376947635292509068469193927022755373904884333224003803714241046000879383260670036715358355336639541998449303885506867963863246867982789204828241600436330290158475364234466280176928697584326729878575048013407235231881489285646741679529011891916524165729963508282752487905866988711675824998702405765209408127486077222381373668185919155433176199392367404186165233713513007195708250073392103163117828296550722479428427326433817112570222530276619598325053947875755859517361294748051962448220694298522046328661756492515636664816798903536262227150221062647823304142303811505353557198887847646247544984420408358331800705516817379035364636818747650850778488371483302848872182564367785910957697126225837753695481572568608584825748103854965769196923455251745094595431634588544078342657923721414131356553206698428916527959201025200472067564745942347016836923652748365494416346155046244822838617558480978570948617012876257542661910272206788408546723403891777530608396174249699433758490046575613451727568181619249424734977826144039186707255189731385980263919082497480985724877715276014755163590874593921262031567460805357151816224816798892956356488713677678067974097112666323478319890996117350529392708216686100537696358471638839192646366096329741080396800647123168844982530083797062327076556499830497175959139965352151814498115663004280105660573826111047147419781394153338778179924139897911772557103118646703672440515040382613473282148278551733615869787773538056178388539560040047361604723446470855926998325748624635967694909362619683869073851513724405511042938896568294557675498846476512628976500183246928407522048483120230659396679707823711731525515697947260261497722041118274961035216042616370287458274041609491647619329707576013549795021270353242390446413526425163321780907967986316701618482269762302040262518518712578111881100728293307698688233712017076968526141022082567459196587255966823475466373319241673943304452414130499153870975181998591196416820775221257815798553783306647523004299579866271918373011210756358380563183060063307719753619803186656255050507154352937729242172557038634870096690024628249701512673580425083600846769697609788698318563938543309412972147805414812835372844563347642989071891957033409319683030886743797800724842256639243376336379481878549947514980461440271723776659149510846249707710218583446392809389965109177172002838228449461458667931236057677999887604123615547649163273907565613243916967551896670967446531535696921491153540300430119558211010528250011514771707967119267956444114144926981019561234692350439421911436861958809828505153404431574485516470586103761835102171517816577269146777089744245361630257581820418734132736391878418329900217782107191462133031815272219195515158686609013689730908669622128360027223898910156191875754398309361374755567904760665545719812405590304480399147516984820666147421770640596518795241731144529128162818723069599400180708601520268539599912892871891145954139006526890982213166942504297090200501445485047498570167951286966558663593276086966851213853791412183137136991674068562029270774886696945830399772175246456040565269009665963742711576838715307151739846711856715800470773409195327730466504505010029270739277074129482535502519118162431213429101117801892798449989146506011953775008671463072205766638615565802934164156721555179347808635747834859733324727342670105095605437702578880670765106871437165118540686317829295549920421597846013143391749381664325352447491224926270998690742371982337757052635622092931174509649367347235117682578530424449166469997376180069333869003518220740194485510396471507196956728592423381121988556918958293360047735528026899031010149770436279089365623262486862666618067280041462560714479261103151996916964293432662332081849358785881280155790646695515972884855852412494124483696336243691260449072531779587763166353000527380457005413438640593404226905097508877237507571230257536246678891573520643059844139067457033457305423271574216399137497668340184255341319826423686113373240085152301888321714018919163605396566466866211123916570751938643866681118227742360874306885510949344041289572249412640550027370552962394173087073315540207208193633076436024215495350511623023611449874646001983473264063827024521791194643925330473151174928030643407620389792817287584155207782422817524659646555797959596806866852811957900346923534940323762061534908106123576249847529124888187121431997992818300414583828900179344388454714488719580051986032556083217873046716542580445323514163055683650073858734283196351404727459700866795880016163401710320822192341664669751146662647212590269593863395094740663929203717699084487837811180258534249756956686709672965810640304314666952078237635780372111045000677256547684118191006061918998764425230583083216948707552691470124107782145457952318670990685431234475751380804308054543543899018557826743937244807013344434586892147084882753210481661680375805125866699009020671084635335646345689759977875805729765055229465229292065145907432635520816100400984557702367004739007013984645728919913180856863011542065500517374204634542304646636998352731296774406874924689265570512049880050554248402829623752463492920340019918988011176061365495112142660353748812244878512041662076465182574702302483536066457818299799136828449700131034683305683436695728824473941257387321955696858016881305117768009978784502363808069527418214101665108344632786503822632225032724883785928449852170505100684792409617101007131579998503013276341387141755379319345518935514890744019347957497016875813534087399218995160490092072986453332572515902688361437947094553958211797337992965144039795060614887815228735645883434767799790325588108184552429876678516560217424170012156977600871282583721665247377513930637889212222971868685847786526690324117135743632955512694459497749516116530417079686673483279571518391556442762110884897505471384884606945237902970838970241986930350235524606245323175394614345054188038481151979722716990734292343710456631736286164083360654600154350154920995946650715079618287476162947385352267263532379477807612174771092862530773157535228977184824746947107478837201629458717385123881727349510413607760015863148428578952298885125088576594040942036670040565183820593768695480532503769803577756131632901374565978510768171537637758430127145968921447146904137529083092330402847157068291509759787940735731857912569566999516499954914272124418641222891012762547169604167942567876989558127881329229576621087624072477969420637175372175650819326229183338797953111142611314677817631447216285162421687167997857112199084851466710616376998641948338734886699425946295371235231854636862252439219043647543635735937755792052025362747108459303104362162541551341291088362079705728863394753479235475895284661145736022234027149698500204928189437676037559365920136040331664747825631582358401114280466190287976093528109356554705125960411724194384828561304888561613089714695712024509560796151446471134115804938448060173482455957839298968330656453720392999715540705647492621585192240300170123743938314510294239326612408026124734337674351704940400598310564363352294183971586502283514047945877918473817568416629306937859465052119906035676354864234208527454960973391360574509477610474277178911992865644699050980183694475389252755373767507093257085886611415916694437049104814764210969989221418455203543854625752661269175324243447609610254193884125985953476525165919283189733309235455777017688022593302042767054567594701252353077676199981947558816253404893783986159265729924297601953769069560607164817980414731744505737009152288822696097955754395772838268329819834420307006654930423418660774330635892888471879268271911856426008706360504783436368089681833088144823436692743598441959808811666844787287315285415151044944146960780450049164331397732372726275514817965996608828187328048711399768182353555519149186573971725047550076899231079838677513238996743775307299160462564254850062467851992977965473924307269771862334881260893909748957900759232112663770854066909138110254282507632358693191955890657276780779176887424173236838778942814679903326374936388552240994390048794077996426694100456399541991901712688437425942399791320129882180523302867970905872266260917779820158422839180396405916206745399617868704960180023564084667290135948656507220192308154720802355676563731574529410285771792941548765631994383879209346625140388279769977029291629241431440625979335527077203311775416917241326058389447498410110039357257459410442055230778789026080491928459402577388155136105392750905221629691117834148931446951700712145002291956406008650283944088635276649098261243864446417856760758466789606599682767829762140475124117906702382883088095802163912161242160917851408542005081983934976629616819938995960994704862112777219178093690957608854951125189497058365959860334946190536948458468692281442409000808163782611923900149127409455816843826934162806772991524358738106248074529203484832752797915789921066385646767456393885677098293543697488359736351681071577134695296891627844984380466915672235495200936043944672613643310677124345376947113294828531566025323458222038365267714330657158881078164143210421219954036581360737552253018919868465577126988817153925766409855550763186828208842386676169781740449170912223375936498409160015663775646609903019403875281995858560790947338665635318937633748434556014798346991066480939656004674139197385281802080841615704189010220836924201336807377062991938993955877206524521339311590692169884415203485348069053628167431715336383635594566470802532285206283541801081657427715992499642480820614698738618123256253545367584232827868304172954349255656945805563182080318291685936562535010974785157136881673170723379832754886933749556636543679251516402730894877469943115886561696395199300389102595915472816754836006550734678249766611101943238970491052251159657486809826959038233538686898867801358119195126379206377077248173709656618199711046073358244040044354272139628252065755380443165464718018923038935367707447143272117702401939957277116564545872187264851106064906723970910886067540950146636534447427129585767972391426981636434196769660896402984335974797681009941316479938463754238381606656951339791769202940301088015706882886012932169763553264300644157361939029981432744324046503303234726008031031516109194724084088580670471514437175558115817743077208957317372943591736419414122831501944583766284388473948409790967201109791681810716864279013040378188855483480567873584528523077219904432996489683472026872306448468203392435801017882074192236124304985655210917270192075382630370054305456588121128125474591666491250072527240219988255291086442962560676427988226710777666009352618095521028737442598367233790244468447010927059307129995104195125654646942473150345080360599627458668643917988641171092275606226408730158043824944957630637310589357582864713406470508696249620896531833268047819475182635804478762368989343149269125110653074289726954462806371255974120638252046384861622646958614548078265663936751467534097589528626604786525637159314008085174079562568014681201577467821304032621926030223217566450267497176803295245727446340344815601080131274775772540224081594809672108476415813268950660104789386962515818502368937720899328141459484163997687953345558880871344829886315195710018226301993356904047907464642074013327265623901210245892917372528190399098212392146685587220095891415297707343414904653132631432735523284684336506688905831224867546177256535139702942017897876084436583674095451239888211384475616861612021589415899815333688125335108626543955783096477311329631000293759751772169310048666391691024764176628614046680701230519476200398473308880317651925579821540763867844848472713245275431995242669180169055115845165848372048260015512936484535473763941040047773302139118632777061447434320404688615822028085657757510145590374902473673429841225907865098554770421251901924682166628510141750926875233763365223772470317322393287446852722877422080982134822473445246058696400780792523704744708534347625748281239102513574776780327076660518664442032829225991720631415861337094224923395238444859528086567688579009846064068796266508452349745869345471845520142992642249909361248183746365067515243762783411878266439820542112646979098084430573427455720971374518035851347779974033086384809495413109159932167966549112685716904973070884442067876082039351849751255338608564132104936507285430671890453656545623834997547941915147714691989813508821275610099680247386294578370825993389393312356062164967123019512250723907472024209169658221961001971034743670846794358949436797272677057188036773857225659562540897656914762777483323663869502584421366248541026523320843207345078396217381860192929655139620195464461754166017778868830392290524765981352123842214160051581009723968487545357984914730913522142261548987726851405485884565103832998219088285265583419916177891666793688109378906914257699764883994328188020339132396022478149059936080018166361990482438787941283464055495574395316951939691128277916450533432474475933762018130058287782264180727951421652454350607771099666853166592889218583013599355233538437596607001389178139433142368278817532206886718907013217012781535697280420152345574045961247516611825903607443273528114456032578029608288130090878556094873227095853008688429965865618888345731793376445900638592041425156561699635478403257225119368503042962631240895241115372382766476523750941857093649269011147989896814356360386635254802580660520529295479187409937097938911186855894177690395706504519028408809630410161168133472251175516302475727795362226120256678651272785387390769515897102948289113644160140079989674063492394548476511653300790580662921464566675039864255283105766154908455824351783247345769254806199035916653497034386964543079893984526749137156091090281217835025050057898469279942768295288878554900945398442599270959831531364259896626683285172634602713378164207992298454270494178953337893067364126270421925964771580381519248141168796173827256429026262177961284175880719591988089711334748931131934522271465250813341051290924124253205794959715798106081536284297619367758766608225720021373364723729220584047506423129385170745439511202882458180840364627033995153696276777066143143357065926987889643725845007620720427233618169968775098636296393592993960296334594126163108675792129146391576813317360320737955491295171209075904232213720775999184301577752668752069324899898407445543753708003457702446565952134396941335403989931806583575524021602388298466061403330147542243691002395094905731911556906864947431394902418249692324016689823932983863432933288497334561209076250140635237590703940932459271389920949403915612659265532621502082495394083115110371388981009122853904013363110134567333293033865189487204148632759138644125123549191573251179552529420412646397165526698203793087512338903045866722973367886983919731872443979042945293571020210708496683445639629920208838108567124010026916488732371829562734235523922960651663397469725301984963182046462991561118618692983631155588394565421707359565149791280842773820920921198907081228686537464454169897565227016234073910511705311316637364071727988390418412733736240867682909104825796376744607211059787692527933652716140920910716830345642256214723372274168625622380040778724109602184597675282336584728755504745993870717006901804579433064794999806587544261753766337788469756045607036416021844712442006417457088328013114728940899608687904702324192169445906756009679405662548849407129375963624908798949883432879353369349349296708690037668451258107284588936501953199582703953545556194649313889053759833766023419837929331969621222114178656390161513108453276563585738862819215595189251089702908712784918516965910833958377691253854778150956023839215221895333885314745659467803222540208067538159333278130339068458597197438990636854815032599903130658187965355361625345255385606123679001379854352362886483390306273698475384066462312450531616261725139881705012618604508122956605240080779801427097922080198093404327901335724101130149081370365298074445009780018724001902997452643513292117445831722963188556159460369099625793244400011848152645317014687626605823198990016028680902901175185939681034833216336831306297272394272539922685020686963008070741224639293407803715332510338949340726585781020513489359859301328935055861834212367257312512925659554759408734883752682462755152885484694006433767553288053579128681207326518001837345925022282073284577433795381215108386503537283757026957166610102675938404275651892727286169808114355375731997848375918166353861668004171160333148353998956695877846141955249829367552526613132469203345881913969944089779228148082055377832031136439233802669722009022811769686735556863700275753962728505940987853400905686764952320759331995803678574198730323501336552167920398912372665535917851204936722770283576114290665293140091798513652873241714057413746120920935594923785075787204491747158944293760868069594268529239913185930807987873759688702091698643019395080847143387624398984666879973388314375585110636459057315091473546183560192341183614733172537005384091220883774559150995708753173471190605056716956449490055103352262787438137225420426179801170196292368959511067939428451157770502626999067965766730510508250793352465479336135764716770516425110726361958354277308684469132594802618882417175348533117675075499380134313629117557210114742145072911787725722856265217964618277535965721825076663666576468814078020574549031147916469990952644418051565268135324855958609796730540197215267702337716044852921603167670855870737777814080517311378014042538905440268258023540258544925992013657453339847035248422413456439033560977200252776242282888503600797671757732434713098275214976479761481714059362246179448389833950990015920961978689699543807575074459605406517668850149254701050125578945962528015414530973499299208766245653312618039715995295726037123777366330690180497887654686692475626249651806973571869453636890779545155820083638417766565293651249173356775367111363126592734787476572566580474743401323830023637911933873623520461375472266086965940136724500225130847093753070790240147843446147529512189598547671469132396796355653337915748141722990824266496624627176121270399106900469795860730361411133856673735286943505781134993063789324248473415183261459996217381975777346175093763758758726955753680543300000744175804900366741578648277828638454665195432515778286933506611322133977862751649871077359460223269217754587775571580906149242765540449140008376136382622920515076875246645980876873881678040399107725834143082314103343432176083266585956578027141115322839269276348729605048019631046812233892854717602024930817217474381668430262820828966286946103278290111873475342434111941652647785324098190959895706089764390668565916990534962514080192407908799712628783180133785128910067476590266889499401865324954751134922927642598548382812596380468576879439556787906816430869140160095725429561845973029824206149513672576454532518893761496679964659807744117995492579655738337609958030757628282060818513231681468691882183895399956572955113186324279583774273638538205523115251903184317832137965856018604902934515239410989186041704599437296076572462898350373607736970225298433545237873674874911084096288077557906006740159514220199819237936555729049817963249734130971631699805943555931248633200865116625149930361953676773126040988652450756922262039074091183962204391555944471448190933457393850407349216458857348309476069845015962919860939999136119885846870833958504792380068834808883831998656898254037561668167652030616607447526203352823858477019163362676343503238807131962566865748987031117068025340663784475126188537818309355769372940684528773566880483847874775660669636994993230295335318505415736069876996003500589493061800687805444526430647227260890519168822767169834213821774827124928349545661765068518751316559549703457421736670750868196484766819739277112898432725158830507960587742524738625343636508302752270773211589276377502495454135506587538648764892828617630547387628377789592541771567523354642479219513661271687031963872725353553903796191332998714698903642759622493241524042732178904374523432845139260417897999276149176630563057878008214831977506785132772964722791908191942252451087034451638437119573274687040444877934931045142269403171683732716303559233155293790301847757728805531028572657951622759384711477401050140749892002035252444858210914385438729964111414648168104828223400774517841703313614817864290956774770394615367388976910942510174045103915561438462329557121915685611230437616484944030141991994170015860821633025876004003822504341200310461323008067594474053187089390523835964655294750910873918639398337293211916653033382502605887467179191700839511188850278850392883639894827908833446695793067965426162067249767156738738118438630331077202300851772901071215782401501170884360587016359963051239689880867328812725731404031120636640502300114108983373361826369961739272039947250071215765489762701171467037074817495031977017354420911383204326014975656342350894066689324631954772793214537155272738483556193240514757730727976711025889085622796479426752034057880770687632289966447638001369971485967194767321478445890128640060489268177037158460224044600228317002938749852524005318013641197775719874537011655781835508643293970344529748606763582841027529452331435902115442292606960855505326485677746220045044793110301246797276755920145533012039105101822091946308384095683028446037513182232848804828659305813993789225118073463854155948350970286462880344383284214004935620849706238630650829828853142745987814339913380247611229575349350798818625915157521624135390118927866165401141595252578921242885570090409782841956253124445915082693702615701921601766875978330674973440913666262444675065450096522459643108239876788693906328621860331375041276695291076097310030697990721469515132453480681386059212744763138455511329620184919977711507752767039951975658262023426168567857322599230037605433463196905232376160789960677085127936294022048583097340013069639098753824334909937875576189449830158197136997366072278828677837485300286306042101877345949596062907109475900375816681367372740730103951164300574879536974284959296647121081025120379054548761965933336736202576451711057033987922529902141504781839575025442300719266919730380581071718877349047328416407037200000878371120334600290998270775926117860559042569508970710719282286960477047898612456685531723867104253897162150956907743001777920698070258258120534879395686922995102565744248214933313928399169489930148772064512971484490389052035219818974781520212400020386922176014811629873925923369599777031588353254227009781661432847563251728670388492698644426266562937442175865742435767178877301543317823791811038055889235743972715173510939274020083845796327738340184474932326921036648185603550468922889033528893331882092441521965254663681824577598927663860947953354057357571651214869243532638295312879157209875377662288229589228678330462431945045475474471591006648560177755226948294017067391168840947039223414911455788607553137676822331173894434146068204921628862748101415943614402307317485649026721426106499968599254227307652347241392602468292448585190991541660412453029743249564277910616633286753238699220522077935970221843041454748421224657839545385189082136151024242664275490583081430943568791363260457262807703864570054764392424284057203110165021550566792563076953654886220896044322546894774851142093845480759532973577737996804146267269953132246356519930548340448434978481116931382265001659044760533765108599908556606741128850898935713544456060251098164103553266865008248317575480129000412682165632750854799746477550440846386610125334839844072774143964168978274387094963342824184282521561364214086807579326793490973226291411377530085108190237225929300773590882583238402799882748897930744637697758171973842667095816027562096619749480632354171867393931428668843295049923970419836932909710768125537372173965290006210015608631638127524837342386083545056708246270333512961293965454294985250160288742035576356160073181705264095238032242885320950240051941156272372871000789371140363906980779285154268464707480753602529655786071792940792309348684522204550894593186446763019407923984483310862130600547155254584527739930897317090879105067823422458812321586809105465293248775375204483534531590408266216311950362700890700917943362100574126383454082910256680566475643222002060070776814854408361994310785170996495331520447903544713840039688292983859718741435381598409010581664413542195878250277822416919466739352072268047038250278584582600934315604413963544282648984723028107744255743729500883634567126327362978512703256025462975117301374700243292122569580798003494501095770258052391477151721991693723062239687867666032971391162870975756602289480989562752907857112238076711238758675478974870110440503290407712548585940419807697307943428726434220009560337425531513286792501255848540383211545296118649446461708680945347888705392480053939607094480521492135078760245163976606366436730521413770164070915547242738465981894960161267896790365885302638322229777211528300472527594259167788325988660115844102051127443853865949012864661460363494651699584793546260894736279488931134076501640258196100634892119597330963610274576461873673535819932514236271459903866405553780914033905282652893830712177055730131977972563208021959661932212920053309029912254686636308730579553647905614777022357927967538703005266557018399210849874844085294223884277719356924316068666186937582523681051682918276490129288301519085125607956022058416779098401087127761961083903721770058795729160480846759973133527044693020581143277843472274274426398869439634269214916150877691224091447245197463593080281994717740440974911287549760332897138501303181639466035802599423826353836791246538807844677201190185085107273238680351396534774145857045348336137389463765306631216998369783991450412252407655214941000355168636097229732285073309216370395750585581657354419222161436674149222368221848610114105192346389928729787005233357891731101612590360179792356478032503415466126586591717417351432829197870910144581322000442157892697055340808745318393403900766947377416562663821342016039677912104836666759939175852409485555705021023856196407046498191731796177773750370442433171206627084580660286220456850944277919595451668018225623142924925911191757315222625753353729094553320784999893159861776449035315743163977861937913571762453809739054705375860043636305414511356898677342589255533225014100595921739305880258814011921863519564996623289989455031885220250970891305535489289097012879731652221033206425495100546919473842511350000706154941221565201663371810431392011417453322072904244272415273526350880146659567342358016604328317922515863474806323152647212239520312282051157840495337919028408071768281793986962019981057250595778294857437438316907360403044658876489990344255000681808409984490929555389909934916271704129690094407576437131000953598527807620631796895364123506374557920382602850813681396155527642212980914616345295108647990542242593300982068163725197951140431532934697927448003674907419875320444125126725363540721430975151062180655786218273780696622281646697576875170654668202675481597074371007560764644873722489436953375649199974254780042653347996471756522333219262079513035808000845935131713223677814150234177801895265162111992547278539657027121257662407549124228601660709066840556903384911413324821289912356744340991156508653969352822701592584425663262047893381403371706150605833246648268674077940767021875578264681111545878239942545791056548354635394334162373276544423560513441500931560994164780765985629629771719606173668950583206446676208167816794729755719699513147032266207054960632694450269329953646939363324513911246375169619900279806430589015796733854464633163500121705407150257511319386594130750116324258991605734074202071955207355783363282660726295220875781343218763679158219865105233813904053158064440726667514656922529285404623515941979839095534605809343855649155958476881258763053407163543363792886694160192766587006140265680804731192353788801097836960264835492172199715721373490692688647261614095524869599776901756591124294830785738709905396277474127850306798588938480952907826948581113085268238853128456558624859439710072245218040383039235817236320947500046634012844452037966952006859824206847047168989738745770305109563428485577284758305884614529241034712887859534612188897698188960931996929656904580221387493196905322773965927658490174394792217392165892659589219957139955030145308548425016497147336060455288321739262242508064446398208442080200914229609990174368644702746184843352949969091501097901719727018991991707447993631811711684418952136803318286497224838136620239580553176672372805385667849011028327699330182367260796128571604008038937226506318811192018357798338202214465627806029223847140456762817372239184856950137649514153938627457326409238961727742568605933937452793217932594988329159483949115040450153741644942561380098694657410818776825806433399848564531254720752201166192892168966666618349250092285171247962587073732399855502215414353837418634319301956858153462939499071104501729213668771049526491503493927899666509579618671011137828347131398558511523250030649522839396471937032736983186431343899776802676064613029647595487980996119716445306051742544546658745955104759942590076769431206956269151795809151133678993072987009439420892923099291089616876048540577769863218458549062689767372677423137537214479067134200039515516740066997522907216354609478410532769071958825260639122420161384686449818355517756969506026121615650037870417831705851400031765568814261925877939380400599241207432193357775271162967755005168862948825413594020232388123816745177687633636319809222263652785850929475475603839513072959853384357739698905439711310357550208940580267957608189353626154683153415052564498035017406872977483758118622081290363714842390239929708973355152321438204361978019436781101416063518137776143394907712196695392039631214485791784982453167256659090743753757612525615738531188899916990163197996473530547884663284690186020794445415401318924593505969409669549988977222219629535884095273255441193242619007511875575566352161673457512628899347833576442475679023043685758396325773680755878568447473211048377322691217031040065608830223233344309549628249698300165974405458960462696614951140210389884720679623173507412228273880994205003786939904273745169999569362483852472000427868615266000748732264514877082871934718651287107564688277828686759268815556144509361065627516682432583390696876765153819375335098967159746563889228411387642597114895817854640787585747894497673735287760729463521334021944840964260573599817911270351381855037956573052001251544284020871853902694693515558540346717404259598020461426321724847310924752811529303553709462837965612357681862585763129868469000648624496045954550129358812890563568302791835230974883431527745819375086470559432075172267928732439618361025273746325729724533544877486929798493348145928447934484800057086414907405744465068189542023234214274672327266838702301327398777064488611753511795597282253662321310835767393991826884347052705342898886450372307395214278812646978408808315798857403271685377867496155662365819837596985127101192829175208165164792765706035440441445416984393784448394689309766455755613093820661948617812162326337301652143259006058068265770284224016643984284204714294820370409436320111288887090857332194311421242010834296280456267315598785404572398113442136735978324694594491621995987084717671176070474736133807584901630340371722161383404052444293830876974208293455178863036974229110710103811389287813698428648882593743370121597078265150756151671831190793508017073872447509456168096788828847446027253079409246966155090075784917084272009200123233672039311640682040878503874315377976006617651653243320519079995286895012580226272085149290141890118547291778115532022090692303385699023294870683202690013348943874895578206347041145975453247663408777516722213523213884269635029028916526650065425427547151292563833174476357401324429322985813796406437771300660499606839643600654748140781590481779850132092784779350777118273645757557564686890234099614585119035181630958072913273341468769273091281952898381599471608091842396237642104485547298788617953966977160999308347132843760924970236755199007907109474710687487765823334804077640379964037875489674073222185739082108809776503083278026424686572912443195752022974427568653581859979210933743641805250196214686200531450382268643223237268984999927085182328102496255546563574801308426447770834431265698274709823845608225816773379963665632366752393043871556782719233565358998038024256457957583701247653926625126866750162825732977839617285912205211230831477038503372960322271938325135379510871366093938672070075258947364770372196800106520195246251759177999485536966959199565647146695565862003442077498810450339243730844222645783468006898641378675419197719988985938529571973259834369855600142921560636646639998825584440037496517270920289288754473662501197404130715016190012428130461294485152364300691858850233925738751482074206163048879376177456913985060839535225684804275992095708939733946270697829442854103001970467030381955070750448543790703195488208728131463033290337816453060862896652165611280076804779352090969645336563609488337622295895290757068472880526326154256746726203767596636418616764957033473943794483771070818582159298417293427779168978376026085930430511108516183857854955425931857319522104448975790618848268135420580049135686611359257340073886834187761243179263016074461663447406645592610301998932851928128814820182584224518189215005457038374199323380284340668654822040566669279310682845833527503714654991912257565003684732786928814645866866418745246264246273386184527939729960508808221898468879144504656603134967423923642267392438500527880060644505137007261297682792837373115779764777868599067755674593134415649794375074182492113649781575835426322837670399155887328473398692159956177965732785471982655187960305908875265923719971106510615780200475820615869177426349753733965241773605303705022845713815661425952051844115669028686578369466136423021637893976157354932438348432257120227366819559513306936878170360221000369206841767238267718276009252670291385478089073972435241349796158102232306444498145984889150332260818319114613721137034709239972046750262718138285734309859536317385957152524046535550992746542263218177371897317650373932702429616174812383411657389326939610928112831572174629696057432252816119376242771659024944240858261216684499579042172526646124604594078502507445964529037225141507762796332507237253950475765516233639098355574946683985949657395629919367229151812327985245307764390890659517895684818514883841974873721889337800082362709570013843754503481611687508573461086364442256200568875028557291561403596254778970917385393094051574859424761680713316146174148440889794985289909791036650408953999427279969660370586169518926010797004246408522936734145530192489564512758308504738189113678090484984158402651944904281521704310485189990187696775318445508312465403633469944101849910588619128369797061279324853796752218882281778453204909075732151332580316737519975298524958112183801058657024470555835250774821331452687652270062269200447513696197901759870574213760299540858262363261464719470002633154413238937145164142683878952038197033008345780788665961634924681360121829617401413902466285909384949169981135318844859202946797177548676311631101519003247384693440744308784391421987201197787280942873146703511588704472965891322926366295133520704325043363687870164620650279439089337704537717141902780796703733295887975368745964894184178697490339093193056675848800173755195862562975167987968586980703314950935521089494717872719866896551437781011127806208961893104041977216293764573550241672241075400773170314030535441820909153098091023620625475257881685682989971353333739019940999329608238816131057618482250490227487169663543039760805373145174931350188180070753473546453692605304393978385886707811083531146719695042008061955213530092057485315666248540689164448282672986396054255915002348095173304715578322237045654721935600964178652663500108013971002527818075592470775230505156709142473337404560582013946877378367885552877990963380333468752256151938069778154316424497324623772950250094654753754346533443531607520020007523109252879179474661410544725140657892440222993804371407590624726933201164687249395824256028134895406583891533496107343277285019596187441733843593978715203380588418036904067660063333748996985600473199448294156360997296600692406896002221986128790617479730294968749819301078331212546111063539568375000544085800461532095076463411215260229978683114117050440307599609781106209218340805740430203610873407702606958381645774208706825597616232181605806631227111324941144574953041566101216903005548550128969931194393678103404998132255656774760728916931333170362293134575027011346341711662005327182316006354158356960935449949649345692161476070766022856677712574104210248602597113756433206638990640067991486635487567122244398159431463230735645864624082684865008881844771785797846352872962320067216633638865874982678633560979562211637760681886948729050975993300753971084158557076794263840135643293835043492338241555437774591805824813095739259647879527708227703527326218384401414107124049911525973075662622133685574627070297702735304965412485659030058995603362191853930636214502370663021119803433282653704604943828901151285918105735861678291585832845924244726242675541082920509352678629995264690098010294684524064281550409517091585400349248771475879541045304439907508851562516174676362109558439458408489463422717476772384991084321688310344156521479662298973517123540446827626035958649829603741873397562890139590974915861115196029100374468450343849745464019869323729736679543540823714309272831329773263125079743603282295638357180306796617115805421375237946311294226545997004900282290829972411792111287976243794010041850870822358590927292649067619314645899838437332668909395424177169624578731368509070737466069848647549137787441868996715369793497353099553132607518824741899310499803487863577229374268131133167789465316158154526683340090708900749781492265106193637091399991621887077546301961061533744760115493496868877310175665596830967834244430431642642836926567925638787908052165873253424271084752695344934109993113287543975795402784427287724133319536235264911344657224211737248504151344031834590354657205584578145028483780909164983941281758685869725961107085381697448941326249319406335829608532426786346770102747879713321380907368009380665251027862448167576605519669592158055990470271377242259573853307468471027205272722102986821997928046750662871090394529719545779895376452131350114897581377194670257896162471697421862149681529321583060208078417002204494258621194888095392805930686798222549639495474111799110521877849864807958560540201085557268179001008288182822154378573756535764680019147782957061915526242524238455042747626834300019447875583906477810611543106606146587161232472124554282634532004829106094542734743494662151189427728155448865917332899758796639590101301439144352738117937515606509753551947585009562102595129387502232389614956845253092385624547908134351325465847240608447470398091695085852036572510498028094169634995625714312935076346871712326135590983697032473785728228101491892085606116271428662830280619681643013525316503603856858172711178786693606473531799916557691510428819108884326530535523840939584402815236318918439791997470638307117762339860306883351428200164822799292740636183462953670823903680794118943913504864545212901053345354204792672138629217450703249499452157379448416531883819744638822608191812016038239699544281240909277864298133868245320516151115219850286105094452170441010301784891519683004237687026975653742574718469445706496355773035353422849357059036064241832247769174348313389742931322467762680173715645191896411105591337038392046267703114070810937896875147143032005776103568220418880414411626325241357469674188335666093315345396724728134524062146009659207483042234461457143008586388712402329706118838182588338790368949309321940335165039061891768494395273997834746356719041284915821192263937669674489266258814414146769368741542154516047069636317289979227137677250580879073534596439447269729881279963688019534213582761747808881641957510336993971902979501547498865550780172540431701003118808445676505637284175556572886898263485633828399188881147057858112625564786021943162343477752871280225738124586711660085298114094888253942391624687139902327733081517762077242518325321436221849859726311226816718754111539519663912736031072195361200575677842503440187363864726107319543838408217136034601069355444912120147433589240867053992337282908668164846521033297977893969587517582893932680866897848082925411063251474911074155278218140443936650134868726558522437620798141568924422845852678904611167266467786393779671295833268910390973634074040392528157691514212611725162457792264077085985263403247326866853537556530517704449684023579845086187393666592359709825467785762321284370266413877920160863243355763084447483099893311409343701702361439391267582130849858593731960602270824166107548313832266666867943076038281290859801742564978893692343745519756066530802564342535958420985651715687059567350440301596364325064657379894798098617370082895393152625920122214223543409558057475387614451462983635336133565067574298579557884226608854755954333464636503793243599929032732027475206423871286122905674415219632938278104862216841130222911352869468216259432719999694018733356717445910498868104366746264442123550386857490795472108030693986592198695199344521561782451224900170398380421497502998139709317938052057397340757812038191008382158681099647172003252401966242249455952476968468318296602690935185918953343805156325606443155090296512444790582549068721831805140631494592995861309521263878866786763571512912418782017150200872950152091544137626368095243988101775657533344152946274822490677515653303622368234797567186619121724590656690180842059491919303813474416491430089510585764286192116612416007653638210073299320111742216056642948865274570477752565885958353449689646076011902444371892774953816410588860278372831443247086693679353380386338952328181092866136637482564364485428815272494197684226830385908787579463612234448780718635537609513300429217533249087188453797936885993442314328008315303524000888665434050696821112641974705460344280983208255725866754967157790123431255615565676641346145154297113426459566681395720326143963937089133838276848424253118655726790981500440884284473682109285276121884165808943378697397183816909374951115912788676565262083351010320088871496826370436965417910483098740910768089640217551962198534598559960870347410612904337103414269670247483914731509964763597680958306689937461287281076837988709134498592801780582822130474723653241384201999948835843101478831635646683993800443234394852537700256209016051685579020896167532565292993182050100820085604748430128550068492075812407731278254573001096891143946655209717896093038973159636588322231330897977223971968245989620885515538056239666950991023803195756984618668800211776526234708387066353590638313775824132951775651368891181691143761987314305470452507213327425721450300475618482204707404461742183503166096615453299568998226969546481715590915346250025280373901747183411661121843306466609941814898446864356420592568561512444584489563058600685251493160819699282449144751346958278903478718867681085758645971781989290226043395347464126995783743142738099466149721379289263957927893631126245673662225003723425511284414947991771405157292093973837376063923534892548231177485235622328943984459882240062559004539141912622184513484982611801554080006964951703324910460676431798405748624839567134691086454498374226016228743598950049442721671209341937176991439684800419755760849044967016263325737740192351800234308689430010085082108936244995665556518495227576631896350151813143133873262163562082861297247099170884108260808096703460403790296579834832009103618641508039960400049104531349514916041851091052887244387278531270134729481089973290019021905847999965926971255435366771786088098651513004497698962916804385373958555586245356281489374624147765418591048692897251513364695865896963381960208023788394316888766474364267199872406027607684454532170920351701347991142432558943993811943909357276064833636445712786146393100939988827475297846472766495654568009070521928344823770746589938180033595110208916111980113238639183043432348926033565734874528422843211753913542089413778489041779463002429791213499148109532395492473796432665643758324488722036438436358677147605430972689680121248244115386576156482264389954387488738440775880583659732183360172604934567130849751806699420304562084617881766345265317822941590998420436515987562638354325587735000305138656157407847881138493067081524835952754708270186419171142793184045198754582139396405375809717284059683529563484533284313001870817214355147616182283909028439158226077336196088206204640624426307346564872606644980446762303768609156051956238128349747628220072145002155839431923239228027855672930829674853501011266304257412119851054868525736824267354222876326252713811736950273083482639061098309884422171548909732312574664687704120587648388067127942995340066403890930653167241770450460450685021020743713635836939113031807196146835392683424160972968180903451653672309698579153850322869667053505245778428361880019493119638138721455745109451215734807977918978830548386040650162941297302613650306463002972255837488900048307714238929898187572756774059024882074918183811082907440959588479794531822443902298872693477405684269790059853985642402420458459813888979766484159900852105013251576883216988540674807845487216993148444654762856845705458036863163868225474105590077583921546135888129172564816565844214459452419046397659903504427112869930587282047076096813065852425147068734192811643926671317315164610640216455971011342427039427003797928569563216534016588608936276783613184230451975664439890544795084152333901033141779682841605085460499887672294745898937985914068588718009632410240596842180938570839081480335044785622186472960111236186738597272293547131080383505677613541186553311121960601235262621797342706418091755161677657191674702623573430262632928708336210073912579531749484987866605794559843096623475696217297124592924337972484877104161054208516183558318463813283500504841722445913224279115642878861302329295786340523491327474798943956855004336440022761673584147398428315574213875650742221904151019652987221708413645237465373602497196193673036747665205361060549581029995105099594051334245592775537231421159353456089944814910817360976898722933684239540390579446740106214835949611826580820312490346784012534129639687799386639083252381890855659647128604181160013303387494967376011836991551375729876771456157098631588646440254416105959453335414679088643798712997210307701190303600698554445019247397466646674566509918657306285170796961328108025783924064940557703891975307655998033435581835051465562396942509612410166998953223235106372849683941039611848213761192141059326573677819360722049791198216645448001579948717387138664116149965906056241966160115091268853222808649129976609929013892218700091668999124529594867755882978562086804788564636103570192423006019648509191296274321254533518798059641890400765664552519582674960055251111816382505452781415001348229749518371466018169442127400657781008087090832968830269959675651451514623001023055946516143212479509935858421034415626138611946779673592612432422243172646365975038503057837926819777131234399251412813931342104813487060206483566745183637116742006650888241855814143173809576190725335059707180911568634490196325203786762759104159730182732903496017070653157809968491121677384076225418115481864525704834086451802802791567355162401279421985243044196218339145583547979100115745685666167042909429530613592248267038160269597605787511824189232998300687076111662729278329518055353050158042749518818637744304177210800417267504541406540120683680437610860493556700308170955059121740124156354330687759328676350631664401161150238586454435790118159268201001929246018858265766987941616495425594481811312003297885255348649444874268241000817940238032681004244341646816558450540818091893143962990494369601857884278532977561363724614034123823694894674496370653452022008006560460075641735474815306729388913834108813736663144309103070955761860178209720246688319772317876539435759831513717359931103187831642780092276101259334394002783697043248954234639366882060490545309564473619545654119388584597523967472856623328158473876910442226280577535762466365909193684675671317847743768176455937196574738176631263482903295094907268542302107610600942405746092958599414574617615948024870086305036580625797954412864020843216917335988292962955313846907669057955767918347356199897679909148239275157808303440824721187818374297517764349033680528467386244679221326843823926315803890331028447063997971381654044748497243929992345360597352039794255754062827093582796452190316851310644445802199466163794385425763381523677447164010370076538064998616069887341944158945209808681177930258132702831484498372409319429474177552176026545708335576953763854710180766782976027860817628412590908321258683037640978102108513841393839214753687003892639358192126717416540076194722127774396383584262475377855661828526665504757931817655377977519944599062769658792957938956641934242789804851193966034295015525843608179179067296399141082074332896538206973859933761433367004289799752546079734806045988800600287250991059557008974908565016723828648943571376531827105154750365029640202027119117666482652743164909040459419889878043627217941994030493919788627425524402200572347426504760344000024389598392169431714761816102631454291366941035636869686015034314816123972952132539744322955413753421358701219523301974883012557753063516464878598502259282522439495138149755690169801374876751774831596599075454957501480144253364927233062765758798616027661502885871986947009913362794712241117125086912362186978192817484521320118730978717887141455889582261321990376632513162580467255032960962488390510237582291682595358772880399681081656223310667977269787642503586390989415113094005078390820679547181702640794351754241861037672259741112441099386039506836965278738036610993501582076155046682386690322223112173617361461251539967879572125206179747788233512827955698917991794076350535804904351103912138579350060525875071568717443913152379189663121200830379432148261077910490328060549017395445321674792042675160984265701950689422831409613957760921479974458861640203104307279492009026285362900867913664743945580057799294791936571617710865911312327103045428438382330129070877924999303784887575838723109436909635397090366685565021464080052941309088201872374342662436580084707654825758721550768251826935680489081150023819497047733354351053697111347703208714487985293543808059117619755356746724739540898378536962165725081846681142581972352764889325912800906998312556498239572800811552581249628575480715757755424426658193777321082788089191417547896642334347281534532919761718860621800348520663896082638742359957344740833898361413783657635082493832307838477379355440107547181588714523144732440193502460636002602846701361715854126623999913882656893288059889602092309535119179189702561713633604420469558289564440669894672286742231708900711698941187028617278871127347297860681057105741720764246505887190292384772350660647228135265166006064649795659078244404486307175037766638912872054456082394408447407444224899217320543635291917410782000334120809171286434919371753031992418473533693454491608579233574418772869807775435785621452446096539323372513973934209613060636519252816936827040332466908519836901744735401458488189217909282815973910436421596457881977413901320029178174426126789001386259422570862041102278992845345018410243435576681484461989807630288302251521731844160016052005248480886840319047634611653045086979213847371196279651116806115247663928667932651187658624731248059034147479514646342684311169077489014841762622890566755439361041868552159048909148112932860594497308707746898491523168905948936772283384858105663334488072754174970744884680112101281710382465251765884699489337624830319680741899015232682946310802912197059495965771741049605483238854339458990607482899771351667793493551361696363653466739164629013146149673099180458315492278212532609676608235752997831155002540734904622596693278003618665523557931017328151079340796232771074735222244397473105372414837504652139493317882271980594588567158599093577064287902231640348746686351338881349808646636162036774562802057239924803692073467323153186155450383148911390050658663970482661973977249185729802392587108657183222935148330326764243382305303471967243774081834717920569623312152778245803603760264665794670017634185972862965367081035193948439923835930381145414491005884850423640384435188386793035687276884717504200242763532393382777947262382154618563757152489768431226443331418241956889185757165090770168606432043352848194502031041012414359439071973482431597047016902955151450722511967757263946048028918992177165957712985032632895980262203940221043519696243736693824507414860804574256439745648577034470262093049059845205136396223269792602979104820285200452686670238196101220330493104432918033499226671311912574606981505253426936632801223622422458715300287740102626985998912551248547321521655393551419384538474421274741897850914256499353640128610272243049595611460094726030438637065419004606674004187208145392897636513506975937918677130156265783390693978820493155096367960048677676659280531020692408747717153118778707034582273149630920716471744280774786834511894061897744844226791379733367745576245543187152054554880888027998449704718232922178234627331164651950045464658737253738332045934143987056194709677862113732859267446463473636585559443971179605626389399691354797693488494759349800008751075809699965500528091645968626368863714834991770181370048219205874033606461958126887702794734692406015369763495169614288748456667820363826095653394433220304196036185219499142231448906567368111972353819961541323336884061608751115694756170199411772607538572839397582217236187656338123995903758188595652502912414745206587341207177598386202506030340730693670075489109420236978649239941139410642538104603549949521663270287348458204521632282550275408989843209131279426835552808458511711514601770523724746145968231861396210535420320427382730532777646043971794950268032229566016687671092509752709819220964823341708200216739920496531964957902733517722432958640311027445690103603655618386469731396384777419854023507840454928651833363826922205662665718516652438908022924665466397129828007639598192927718877976417544512071866624843935476767258285263678601084357878740876109291916447346157852363741327812098461046863118994760339855129803970620692051605802376914958408908716191780910552394835501259397805247986637215203471192453460769880497811529411564802363727935546383408008302186957941583781088607453881793246854958921195362032966278989441937874925087984170586101345313140234545584941042790271494790692596353487667889640300662896616217897770995593808184146104261077158352106417761693340892341139834853439913097548693948076932528887905941445606240774749405766558515210068671773622352852244130478895341170665089276875060384488208321507821393545968510587271564758535404301739264365800435401916162117441661671663080550173729473668080501309462580145789223456300415771115433034743615099983378642274126356917486337953370233013017856921470574822944795566861186301504590707649025699047805063247914718240610283420489238801316448423593052706469171684363266031471079966263175318979858697099978971930303327794360469975591057075339527820978237378519661060277476426056647197559379631819918610518739626660860498182965273384381303916710365911239233744494514258676838635535278989552992550268658773183612070390564268093184191532942190101548669336056571388737626308505995246705393687490667692477567501828383198142400644494619964273585739332815891313140340917313707241222706778343910608751554666869382769255580135538361769450462863375540329077198890768700280413193610927074119352828430237386063406632099249785452524669678131543746837296653472395821233291159557816463530787138675778201702775414820251215836597535975264526264646350570583632521650604740048956036572650038622798785414827504845326709823783880181405726137888263004153683578979658695049859669042062288247293916079066913831287718604247521752197668443290123373593695508712090065197546105045209556856751942708909949710575620382914251623071885121631504814572038644575511519815325300813915895234847860741223059620010604305796071211825674040320146114220662535573273073058791072419959174386730542641004550030416956256662804711536784300101723684949742300986298594250976707955377148100742649458834678023247563778927794137401879023643399605907037895226240264400444405007588931478194369957141972549624708389828570880696113401954660249546512970152592115718292074048336795794894007401935262888985862841933076068620350489789700315552262478048268197394700647420175206088179582422001635311667001887240584128633462213694161694962924862775336045475002151384489216202815318360241802190854331393950119400641978895755755267994450139642550093819418521465641429111484230739744419736389065348609573031912869826449676788754283521926802098084785909571050816294904219702621313323679586936682132705154439611596303298853516443393621172919241337639793434848090391498281108068114014315816047307714961629164177275513315563641537112870759245151568157061367431902940942797575922443179456229802532415448619697510352718257887331816314175446918347578416402249828655111841411081713159173449595369203379036329354874504175768976995584811551300483309845559516267900253281499945183369723537807785958991684459618670868713651981072683194134182261488402578380839436743538506278301207212890660204858262352267977222933301893343568539955506688996956936186381797308698637610200551525671506049260561886268937027723670024464237192706274838080450442995779250716285410174695570850946400374041694677817861186482224780111985007406916648746220602244102852080205987173043661111032093844359149199068689602257433370727373112441430267519765872270714012925082641928626644146283242602788840244537840137109094444455682886970201142579452526162496211171226695250111854107496031638225295392222133412431889679584223053116573363561743052210941581841361784068133052971270613961219556862422242267534798934789410999393407219188867933468729697648167014714974409352988998318695301900207019918817621348793133584169213352998079139358711853463838918692904960200284687733931407603660728138801034912820329453960603686637028208660078352943390616292727944842825719071748196154393254128178672330445863025000547934551364010917525359382370227029509747952368004358054973056417167298754269841573584777755471813348562463540561443225692061579335988320717519688761865157499033493164408920372523844946749366069812075896926895167189301885388939095192580313206268862081549001424854418539635092203505026765375356943433011048773285480926133992935679757574743309711210419910764140680988380642414172978405855794205017157031131567398185963094568659200233214912547368067307543039236962750495296151576888235485052209731692846013944189172167048576669389336938464549579135032216363145759889910030073448605532613275144375654517509322690007891762724856831877459155165179980584680632639166439600226597556323292677110569524744293174513544351165190176761650508270668958930643110349328000618689358852776197836955446345828622396385408299530997518761334366555985379849178903157746907285700268943119896396738542605098348419314397417280914856229031113205785665747615096038202595426107611523712204476497348560452599184106799187598914003311809893777502286023676469804717641351049094130597344369472401479728793413270621012205164384762503888457443616445022411838109386897004164509971965388351273280793243696306896827489487703458602913846779636385592787397108988690711674414169190751560922005681276892564225571158528187634901865928068575007102996974247927540916415840238693565604967189260970936769957543138209560747181926292783007498782461720480123746182636489132142788601766186585686662990371540026957858957780606510240322083374223182252790483930820133487799044469568050074704064040071133950899037481666283797757537094887900521855593284973085985901654965248400375304250758595017978120711547957045212897113335131719567397825328899512571769935304358538330213849878284558725550261820885700688394474928314008880588221099386365004037989426911053346711576939841061116330503740838584248110148295821830112088731744798201616416425393005507226913360633232940559285937185344915401005735773980269242629459776163107225090944667619885858190094113470009132440599812595965890786462473572444076267118499754790968027802651301091217719352603396470607496407641006583922307047622589848352865715942657154577033219061734184837051937707722466522881175522616501998024636194429973988498492453488131749587855079208364578352348372873897333048301938349796097926766859956473229152806221186308867257686907059679618484919158664550013550665232721669716909805703129980641936209488761188109511779656978978015753923743744293899983514382209162923070408246451904529527584813012352289196903106957586415593085929326411662875705697430557609783040437855416383913751175824976546564630258773151061678705011186375638078190623153978027763315318640598537612844920505243528163134000041016779748005399757709680929174733894545803757283232166432835556702956628142093026603772188194518496194601838490784776656706816143278258380592327895638446678725639364937964004342475307827149012289591246160607309010098209054359260189236933976632634042499904752012955760817788209399523939771626756442339407267085601056724789261000335799440887816050520145178890350967241099810610984976058101379563971047775028897631840732362243955342180424673570053596455859808187191027275156768300937756223246526172603270791006081469111621618898924626809070702702869000623143662511972179805052414551620931835246628320098851759401205401833691680349767993620975762286857993348930445486606954291017774143426612457426689993988936537170323386205406023795594959117040017790335306725466768840123276335652705554983871708001605323849903443189851789614165085549102236355939963671056254931096916269034455675407433727885461347844157905720627461805570825883519960662741561071289743990658106927079563185563842519255480015625810539744717615839460220072782276100745286065443517180835192431067524556880469511869397919445446258208153430505130032523910307759271743314885875434039778585242649526194746812459343628045195823286119129451088166260888918108268021237431301738852070057233608512082430137518136715281835268889621753766262912420919635777396414384892639489933190569765788915190699197010380007600691445085850337359432622792422192929235094234021464532350261331316268171216440818182516753492230133427597764738849695168858627696195032660244042587093349789818254529673394637095629728289568369010799780747546857408516362798253001463626977660328875208821797812746926547486939553512285229780305823389889091613356348707116570013782757347361477492551619384040669316837192683289998012224332423523001852056287660083379617559172942298310484523508055471660884761892043269293740893348051931565790061604426261241660510783086344695675861172490350923872898098171015669484310549321644323432612663131946637596243780123849135746835671423522682323272971742181308846873952435779907484448292121595851494053704354309245898923075434771563627917969887224394471203644987239752196835365793573670308056874943988585874290364821195777738978626757659684848571418262341334037236664890097500070831085490294218394936156829224087473933528655274518348683429929424442712007620253431660684364974516581036656546206835134353232422675401526331669067341122565951117812218437719047557655477123514735443616920563641238216999879746471256989143197808953298400735455369619047834322990535725742097051441945042003264772400840567747017891927058582645009535119894683235136003942579766553909586830490822011923884856781744462682799469792588730624826292770138160093940361408539700161182326366991815159209852432462061123075475989615969949145752471053880063978075399902299099164101724224025112747491722561788894962824934119349945566396709396740252457304237898564047551264770871926368035747559211264997415550798838725340445446060651360635722069722053177697286848216687792430338365575382457232888409000170371663449686782460992948727717059369678901064717232649307908983111856133250886164102432424236355612335064436612709744653405170849295521543343718800277421319320080463060959283290619084693542033817215876135754761152500989971060637706594134735997018424902522325272026259858403826909332204631861584670395861090237628193281635306775212080603954768305831188804431482611461825140982077941806858770831094478091408996859346142090737478624828657246591731269595968034204139172890515588294810854867884894156153466234091237436829467711382074194472830654179664232099788777308621809481318364459937213741094759997278468917275826001831541923681308017822936976278757309143158053319398649919291273652459746450066555850945770925524404690053287837436896674015401125975153343803208072179162215032970712977102401722157871712677380975553539682171925357294860732041070327935906428779152323368291509354680068329157189021640647901162954579885502481596446834976575299520156345376536769161570731916197012551760549035991665425844144073588195711135721091177561964951455809711826800434661222474971303658537153177605736425160510814857524022649692400137527908010072440872839549032934175549479174861136933573357937457953404973514336816467687730698042060499221407350976664265118881475242188638722493843884917039582755757755920386281476422447052382782274857757084976103089568545544502510473250670437513655783392939867390597360777816370339000220712965287038214569830582597823788049279615063189886817188546875035351449449763608380156967227444902931624022300590655138423833962458062306877413034552969922803407634134995760715719307785539166126089833669530420321078887647862947340557986687109371802441976677720926545679872460314839883306677136961128736241256069471876576608698634334955991372552326616730321456023583082019970889031992124663699934816249538770645480304390232437523322808526507668464113255135707795174085217629077300680389508358681330940757733933582571750064391197820547157142367124946531900611923093166652799973726471290991508348505871496668822202018736335802616565289060622818701479206170405568958902249053098242245220141942234446566720097148407078018616766604593333485462537783746452949180766614943486838585920155890275906923662495730184803980826158440340503627475471837213899684342977603962074386188455994938359480193862707531646231398449260978365316581750832003829749605519007675516637915269021865729055318842227802946054753830667657962586650665351209898411525012489898509981309176263887393400244894432466373045490064904822461869989576586405171977170669219715834980503976158882897040466283327704963603924941982036103259478855956389172384694800969796982719006053046850882414712973904823109875863206381793632483133772681809230435026203883772649400181242026701011751309162583123671005845069393571644283863480898792988465527950052980115361861549119716878122661415724585708799951324879832807721742267487106307132672051604967942163491595630746133689253830476784072644673003931563348890060754372303302678804708440533640948607351662387478051456434017979462750029929966426558212332459894777270652903771942361214797337280171931763082016761039683413880918744459770114213221226644861524514948254900506684771107607990420017439190370834514058881632661072694375907591221874345045399638378085529266966761615347819445790438597118200208788542328982136401874693991766993718695811844084285489612975418666346581420385495170142064952123449352261279423863402258118727886068843193633173365375452845413104030042641893183728665850944522876168988408977748374116821598012837215214610778561332056488298561197984361563533334391237724032646971873554414092178602744793170823392242155936718043347095230182709488376589704632410300302970788623161572566624064250479671154263932730393496620926171709273442624179043899299804323033868490257784741780448434313871804065441719465024361492994645073337748969265991990359002534758138849608562039141008334021916756111284282361462465794110023391029000675192040887539362749083661233996090860646653120173385760895915677181417077786771988239485393736600227657406741297178886583838296135883008712762993704007794485375522826197930934836288708857891625934999858732156997111186028764513520408815590934499389705667217947504630952293504278727756343224223927038033868461705571041886605958322580901883400329207648450885042698879422313389321580359516193503406272065661132627252690747125318661212266987941616984505676760329979914254064651811865895589493066415177950997107734175241728645206447309837870180926862348666587653652935209148009838547949059555893111859035768325897554697600268315209684470078951478127673747232354589688123332791426416075286240192665589434479285215554011275077511393895596435895379400611542243720330191973595667787924059199179830298923961739766345793557504598674669006826892755160126496327646611633416481061703226155669158240214721145823084172800085731910326260900655433238305895944034270825428004473954633938910069351535136593735934230716913738233005074138689947706958631967434898393277707760142446785289608284050883935817290169330980233801024669727297176019935356795606305526152649470584877672634778534637084677703840909735689123660427795110508445296451098761768002067561007518646345213924539069313491471637819038791174821768435923529830346253606791888735780126939707245792467035774521138341247889163674692391532415691839972030002710555483927529736506332162344116848201577083552719212758307054815250701327131566223939736612499170188799238256285618584325296336406359678421653025670471419610206942121888806016762391603342932551338447645959691406822167152125384246399616543362499578250566459852343052835901843044598413867780773686700261955195685264347211067202396869011058163895960510236581641621060127181298846498298525905994406793069459359966368456395723253470629659355765584807645715087875341124821455403684729012463641329607373606016873523278790303195618576054282564408257460909116553739751873844879069895705467170940443963474945831497991245922221981053209083769501332939474855320768290439200181000460450476979156650495066760692810716328851970474900766845574446250948085302572055468602785817383712226142441424256677797665983225207229898410177306226988784464899735310054761547432247259656034265135915656232430867104909998816956563685400153552321726002637250151057002403129500822152891769277167342455671133065449901365949616233140362925056644207687822885795125075528615717739933789659917698899397784150222386376423383382431569099820614869781665336933035715456537663137151263507135961094014325800928840144308611792424058284648168702461524846617064755590718863070889612981523059436007618780398368072885178545251041868573706835969947895016973943962198695634378309923086714651479369385609884808464743201837761680052903696436355712693878523535979573589233542763144298603630858340325427182053417037556548026380352562738835973851809872355705447352095100353266224506874256566282799404397261501540932694396550518802554778523204322103594886206750155550447393370077164689475019715564214362247236906043590716180553575758404982527618833823502100258032495198631186453837159591635526990618371931186246499053553973443945811127875445077247215102051765337681224049323796352728026155075276065208121107634551198128169099097667172041036806931741218305277120483802633185516750049998065619139646497215799856306873506360450153254527698250065724650168772946923731613712363599730116712258840665008801321096904747504576155930527581728065200049156903071240740814372404488090388839474443679048211343459533305285739017730143563494534287655733704901737592348523860588849546652331321075727768146019782657946193529913897920340958019088848046216284402741039634592367718453204462145209359890700673154710025029620039139122951895553861187557119993792098894222470476212884638633518645782985081612946399021727349912637347574375782885114861900260714657367153473652016154291751452103481271055675518764771893659708010858164334646781685609068649144276064333309691403226189311470742765615019321022894030754274333567740800321783730058676008863512157876273010988770529604319881650879854714302634011482668850603062748883263254876441372699007060875070737268771302586070551046914416417821856855260624452087279989940440261244623569620258784338237681942687001878723403871829154537332904594575230852958599695727702510179481404211283438425587935312633385557199465424072650466598389476389268550927141285559890261236066869099513312212172634690871249899367802306182933008019786785388239517339336666769074872660485967738896333454520722327221007514966682123080158047107422085778398009370607410886297526460633655059380798584382736412620665717562256246140828018887339329075322440198973503183775072835579885989726890660014400542507611010279497183917860603357923903544695471849891845651878610591323460837424148406384270816540448468856442627724848035957062851682514590854595578941318620787682196736150052670397886114021565919981105174547955410019552252818101920788033640879075277812845695630200901854794973817375776008296493406797808035852269393915179987922086463917906568016011481205242544928260839651967497822338172316986323264194691108546923104860179539669560849184961536830672908261667928082563269817502098715471609071943597507094592761989463680294278910410964670277563630287604559329366497266636362774676625622566233477490425001682762750224730144572684706001382139576701148091987990469919961087840541510528956941105707123501911290758186118433214194103039648070729739449433624449142482742732247239877683045481219091032017188685012237209761395673075506629796075632046459787318845345227105316224820714862837373021134110236199587904557258937257020848140041702691462315137404349587256921089862988536224475628834098580166862242535254524070497654303057570804878766787632854762880663149472400424949685983322917988027178251882152036762542771453252255117934201664252848008574355499399985229870189477958483236372270989009821262996454260746454702606387405190400000222099492176262951990407951533472966881213375244859051534704349957523151278491195416306871828984779152557109811173937859466697564479998417807666096293074452928994509800607824760048327661842411976178910921005051650797135109275610936355666778615273543720592046563245944767472760504948016189261661424680275935469573158525229359455431730590494682645211378206162554306393029187605931062973465334264452112562651196669197976307779423048951724192444471326860586195029788512734187444198542816588052119370006392914033393791397987262655158318226444158325133886423134560106679705525438475519598052750284487226168176471390839068827266874828236365191791850348796035280122893644762325875948075209855035764933927471426768916137153514339055928182715001723416230626084042487841817827646669930088743715181595408671261039911504131500303774685319954747091910169932858633779797209424047082643177928083598867980229992528753275936749178732389783439283650713396675168937086656405920434705976367520321187265274652169526894944437045948640762182258873169189473330924751861610917058634022481380815123876786225217132802323641730427581841068878490267238068926694595228324356211375271201656998316689082812803373751117897368355260579461162764359649351909673493523990874004405492697831277064337232798281497766568551951785025893583037092168032892239538313675013829475877586300839577610549969942218416963679089683801302107459004559969690697995888974170244662800860696221833896701422035783007241797210008793716062131213517812002143583069853214633787929885682400558700491313948728437745327509073952471499719122265583047608651668848549771276734052422453951662917895800146137207273658645515106325888992624201437063194065739775953578493574649188591726201102837913109779369361923489788981850836494639966464114985255404370335871055858465613950077780193826906172031837862941115443785866128732194077957459092699647272379312405409981561623893072289220178713071850252047245532036959970329201733530277034017907284450175720962516106865907564649326814543919898867632470122096272442591085649526773300225757911841208803641782430670343949582781366999885639818293090157168912276988107457027935677303259444904215270512949883313471002278834557399776646367426421343018315272285357310837161998896502307944016665929977226142307885359706805386957993834493527160887482150995144681366877533775517730804412480366449193495911514579275830063653713967336976667586641079110813837247760808749398184945056212392902455089087212185216711389094389076961520883442086588371763498868232439632224826144272805391032809871365215806991726731777304333790477294215581079747769941434850676142391122860795424761836781008295811751361385962833017564265725440685451096708776542839593825114341965826552490025097482387987838870224641307201592875594021515806675005782039599916387206181583841891479952534061431635038649022226797002544289388335829938040255128330026884891792530815232316218893180254819981399157561872167676210680741464387737088396720139074125806476943610751161316344136859279370903664544340876661543099721933116316488070913126856675632686759523907580864647332475188413513739111473580480599526047107266209160798347426757919324339607154458370757705585355743211964565235652328311508628188627342427871250469267662285427083602440184265210439049875975021973936161836753479610128359136634497945205687039536500986273476848782281953135847032278669605092420129868489189908527522583739802845443476204995659624545408266533790783726403588477632115038102115175285688445247478455198451953174486388347255766310919570954752128098295136752214224168726975692273144505651050891806051438249467948984149893954669167615920172907775139919301683954813226143745960826953704948684647221501398059473662521515981180252482437290230617322495714426360642982544783754478468242387189566784709967490267335088347997372455301975034100062963503523604576552035136176551767550389461357792613386895415290949326444656739498803076529347608631616468261245339684596850590460884262225331561266988666040408593985248820564333028492667743174659286015205098722485702814302903604574037363113274884870691351705124031630551149897915702152801358657934634755825502496319789903418233902207687793368013471199505518450782106546892489585605825499159070920152840828901112354094210452031397557735991967561434093039530586719492928625875256839494164528555739650806732228180594595427318270548921934313771844988670078588133357673945811007475080046972226044921974046035303474012080655950444460234818098958685450499446808453413141073917841787581731664252361577587104832874290585605159502946757725605715695020659976484958332372064297800248759644921508982224167283486912378359738232814271439543125246545103488867193405932377657323800310815219442678865404152114194336828550904715094175657905213619545670243053828819095535846826919943789159596664895744568677352414299538014200183960376755786421582311325530860480885268859043385265403089787582927607800624147902773302954804955023558608827653778279418902513366413450587797880485857471432117774083456296843925480202333266246257557866093404216953814973337568006014288145243338240732920407410784101624972928403993013406882064058801058589070859026260624857280455289263515851167511999916322784233236184214686612071345789564227128975452625510499141722283126483459481083759741128427478623191301765181714420306522001787057827849889633915207506768303708686970472029470955994054921323671072444507070375419060321421549438396862139168767025879042388058945865304646407795096796878072447827552144296431816119675928505217441597061858092033803002688236770447507319945919518084059004802520867604392580611555511963100358898653502094583265478805703857949813205795405864907165511641629787523876623843814145153497570401476808178465612791924187295669216853519736291477057414825302824856351173267854549982319383514874209174445457015614422075540728855569990071037212652610322493036349255223708880883545799446531820222993009289444160465441136244583694403207558149817194686301663355028336101752035560179188442465074135567108360433154505969322137652150515664304848365345280501215192349680871209792410905695922988549584345631745885077832422157099439298826944374623848172581545614029740648078687403331127168152273899838438572725480264649722850919258862225108814119471370734318079717103395850902746350748990534869838190557955402229775659438683426483775043654148956361821498864397051280427965337244301701406979532687696029181305732177926982048649992104091971393109613247278649700250565016920404437634673795388020312468661486924010092686700115809763298976931959113114454800010298590942203962333792067044287786100469385579963005862794524122650607123483461171601695498665781374445498780132998872710211179577657527890294901955085856923576566308193492218123339708334103429372364030186482639771077061504664561937864307169522484343871897286592121662257681454041367980218582977038086899157856133739413969459445764586835141535982640626066342424967503578163904293895994665855070257479011108286044105461415858290410252293164607311144733240077024896786011193211573984553754128806290802346090171889876900152111232772822938530910276482094571770157110351675492590351928994926233719289344250865179556655372122283854166982266910174800325978010242004131653957105732151476318807353753617336384586717875901328919954877503270002443964605348331967184823761627515342981952615361161945389915551197551301745221314270571657788830659258707136309963446423535880053270011405543469298249739672599885330886899900072500263976435639550947152853943580042909096222613097465299511413974539152777793192553703531755065045747404376159053994556882794520330788502440910914442756320550122206413283174106601062384984791045429010754598970649307931561166585594971668372238615293567788285231081930662552580056061289478651583585609786162660040415076592794233115263059939108726490446423024343254167291674974341031644118508260819710799300048489616195558748565169920588674266433029358579210142116951755987975115214410055650378415443813307104180462127722423315617756515360355791061347704959621102383195947250207692507876544708965240460906075026258062140578379573730579878607652759354511838194651789161837756610801339196376302959281122678216766011684279157079926276761282827667471049105704067601005661783765680094428904629751701448596963229167870807872548837944677870540205214605322123502565038268477550270805180189383474043665538795947497470076431280873272841249448501113919578984025953799276852588758689186912103616544322920635844417084344666538637650709609147974591068919240821558372983418330045988702153388156803239317121618988580521200218754659393834621270587781569841059385611221569046522789314909318421937925534290291155042841112319629759606925253541288654546412588123632444057022576122734655332449713824093442549301522623175161616579436771097563876291115215442617713106192579077839051660882032942562297212838167171647619810196815437246632675723330681817628864910153467713049185462798072838471246998798404892559385393295258963970917258254219022485131543863052844947950557945281777265489059499021581040863266136178007580345296281065461339947850774488174950997103267940417264154449187283636728503781300593743840745427173269791931044245825933999743105893998859019020257562296244978517275442317657806315622286058777418557190216604891017000612445460828579490385125953213428848329520267613589067425437627231939061031533781506757199503636259757157578173018017513062449641888502525067815479456483834251918250861641391092717473471058787037759843597926539698916554271328268211317206815238393185288808339405560834448655395667001334019578349582600335162019497373726834977118829831752226220525535280513890456767394172505409800649198502539036712405252707018420554979888660778207413468593800396192291137329796633259591188761204123585403576308416803048535881894991959561577280881246396339417524551978642959996902708561444896582152771283992780262474449142425771523341527083855633196445843673467728684558378816123480798190298964904496025130535698829763449493889548036114214074074424132224842548969102316926041910018208938890744432410824694554061184464748532557435197027898962408560796591063027366093713381830910641375815708174956969393411874368650310278119837419863211281667117864058407602338632669266739421252313191595932595883973369015317159177916566649175696096328417739125248482206876550516741467764815218110276637068580550951375079052042973540250669162836525175732031791270792340534561636734244713167434056756673835391135257333394231521570183594342540454997465395941106994772486867884176343487434552099245752034896344616931085547828791771606570681552797453688027338742688224868194911174515425770692936182416936747887908826025152905012848414148834003223100796806239349367282027914014270587724563421415936893398945353017501575437429020213230541448012121521601832968666491773533716139532813533995757863945319802700833378950182417303307613893164196367755636604395732613542467651348585719940603017360271274675945526444232820964246331675092665927958847014447685447233767875991447945357291211383035250577205596459457580557905243619850136704360026487149303821938585928848173597641579467066647342080184749338554065517525060886381930796865561714845088123071251178876340773179957371442488959389250929665766417768546823388555121650548570214675012907303308089728390407103923213198407183984986316270331375531165961166249489309235499936404549013035955640610021502693021896545918809417374980321261806367360500691133095463582819236015146916547626126245340604104701355017104575705168081822889271454932049251329229078549763529828611516512220950310136793603993665301739004196754400158045280430022985932405332945885647572298818220929462191292719547803344391468618653894008553673937548828488415277424092585730367932759469336862467634888956597909366384512716796513919151372506113113895593839838552970689911133880969100002549461461612713786385510892001560625856913995483245864457082357645309262452550614302680052076871737352989369658130881488882323356718391569950348220136310323478256416668772756200123955279142313196900303718675566727911679181635061585646132256759145666088964684474945473075309374430251961655211580636901947182893051408179536206470211561185249077195857171088304902364496687787144581162192233955706838167498085781118032348129746008634091009685829543701652340717109039943137540797049371782629755113028425659735442265912069040473049305861546690593489442473822816793435356097727932772651453054145511869007453391093049970193682969626843802834757503107389333417577386176570859420489019638435643409136506131599646018345003799634188171452458207758454285892577011071733726085374350791549775308378786918471073370364914093655434689048618399262298727944131773287212081536675703246969185224780853052967509338562224124061368662135405325281343219171896826736780389611703000954143379353746109833746392263031056571480827531702281466566284749352764273493894291507739513708804066062671325405835265693145478071720007431471115504732522151018458086009656247692880363503265752499040901510744188413756814799451690045735890717352536880487625277481082730015364156854345464201622451390492525751780340546332562053335989430181969672048831163602840687679900665393001046047785757675055242928390150054693574117523825249396456119281079772790425238403988107302512918180647255275413286160447003956549709837037639126486989842297415969590504602133566662450501235461908204596883763009386476919880632839734942624018713887937843961759272853147392101246213527303586692490892976447468019462994689612595722536468456226957412094464351097483781844562217968025747851302143434321783363665043210178444562140136791714209236254141928447479350764310195894030680434254923180062871541009620104834407441777882590835776872852786379737639823906867870208281753637058231507436123635736494156620176357552146784849468279728025711058839420569981097848010820701269629207622382424676252895367588741544394452327583088787814645042495972069789025844508837744518285852546246959413459642951554125947655240639054900397967842115071043622166722498083884891745060352899583756713982741825349100508989750774297033284310553497428711890370759099241451436912326306827242625765826558017026270814206207855109203899748217520314014716726499880257569013508108545892636149207389368750158901069734360525336793268497883091851373055042582647609698426934449180590721577498718639034010078067803213227866789489952734188780921941466766555539783147758122017381594131003682548910335532279990953580293833053992382758639656160951494904033503866382129097631686004584794029846266002360473928876333386811557467419182650842215309620817144528059860046956322636767706122494340521439755635185168500311277255013628416510165102288249374443765050045147010750950077329344851901331347136987681378984377000373923816709924880328631584841641409534675272683644110176874617313063971174849839592805365176575910606601601944438019999277088554481648999437741092122300684611703400531362683533532783614073970482189235369833878273592637059631014469999231774615486280247440071399499673858902313240558184971321498711003633941806160070403921636222087193304742813640962810188117572648591724999734526967468809899544413118297662762495967674880710998529799285076760486340418979160085974375066742884959662370001022068152392264693932063789181891752294381938609290878248609616682365945509324773222491071762208262739076468465227891649455844203664110621638390496221341044891736495507511366853478962149637145428268120162013016676262462748832239069104767684377986361562822025950210196401107737077559696542991174379159009670770840706133377511135718768783106406098997531760257785331470026284772216441338597144119647937366434997109295547187531457896507923120929910473081288154792399862268458832072905684804807648408659816731440187997359897394659650541188896541957304307110777985718161232028071362865776048579394505469526810338850466450330934057192108896962188983389004518581640266332978486213094678640624081318992153035022819298720362755626192683929232919047900989542676246887607222556122350082591798936447443495572629764328530182141253822801416614227462492442539521804051901024310171424011679007103212295103744578077018724506926214511930702169592744357316800423052995715566720027505194076393467775545270423984962809814889548383146712533803533072187514821290429531834211560531122152818157744590053868484939546950977876957965957965308782239903254124703659036157820930111011890515834475390883985666782789604167667266078110420057282179420384206943572329330318743769993724397637883261041573690213086497448648519336464580452809032102625362372344530759254633061387474964294423385345473893055880864008506796435561888904689882681946850555919780674272725787020171306629156065614326297380625488051689354174442398350568043827524549930282209646380633087156819577218971202594849587647580254619657368381854321938959419532252449527488737548643533528119525924700310923338261282736843081938349087262049206888393528630835332928453111612640282950555768712214061511069281586463351089242282927277650469125698366419364199379049113024585076571127458929596078468693170631668175393848920283095133415702032817844484191739355505733466039787914216231764193425568612438392096289220964349911424171153188411862943439230742026775916169629344298460242847986545177527779310875562339522855709243649934761944304088305119707360693676598486242105568392264030279620243756418663319012626573201324521053911895215326653829913293500575798731068495659795593161248361660070335048839016086052516059565374708471188618757643626240043194197416172737005759831472205044545216376911233254369137596314987168143496653609124594418280661495424705517698312776718464186699155954420142587089436458112633723682441493141953868334604808355850464522047947341436094827698130958837689063295195280173483835954477768228428353600967528165038936934473169124284609815683545264842563639087819928505969647161596916422084992109305430603914418203583400101114341331541995631097957973200720072879586856463523721431451805973176354999196908938668996954953994203353957788046817759196569891021185646292533296107231094025780125032684006000587792301572180316118395791020395092270040072522990928554424416622160977201182538991247523866638642841978436771563764409490997259461662683320347388775996991362613593863992778992689446086510444109577064493789552166913320096881582574405433928434583586106223454374609178983673770256138134301570286115719640475628019673753815976470959825095344292995710259771587271482808538743873156734661002211474532530218386881703181053691854696460910692450969840292665499677949140590442127343216131184049821618076675036351532302404854776380793409095483123967810267573872996673008256397350946016007990688908752645352969320239001292076385742910002146953106239792653638749802829305363469258952693918558860770614401564377598091233310916792899327489937979866147420556062571434221180036219188705882593149348203799075267692938491169136954715851802205690516395193495162510665967472564908411705749816314133334232791243631468597799380466097029552756834481507728593517409848427249887864099117495395832871643641392095145861385510797968722703035402498344325595385623605657629173533417521916716174867610010073558607982843133215527317693808059795895517037709792040837485721469014617879933625166450761318541720418172037560158028551359954790127880904354933086488798202139317613126063315228193425797501967513652931290041814078396343059105695943968280277920739547565825274132883443059818378102589495767185449396065673820545739714332910733465535298970772481378110417812827826570953886875518930836716856999635089503839518738391160426116725104810119221067499395299553760814775526958253074594487003603928413404190040641889091169509399286249833929085504889963761881964140624162464559368812499436724970281930990193567759752256825200047128268052974758638421218423957554608204616875557439770809190380363331776334494824238189411434488053801208014884840675058324648447123133291502687681739397358819012401675482252978271114645919464229070540225772225565263354381992480427689293277487225306448219500873873630332291959125477395126689864406095855183449577025586221635889621130505097208017540297861433418624238332759324755840365199922922226779579955971676749670119602154609217812389265177386265149418890658175035712727636492062140414561111490448314591616895816065337308766998138458567626707693847256055143356082857226002991147220492162174903873412363637418197560700809681532988187611671190509906834927516785291018107047216362556203684905453641080554804591617261440603994451202496633519610975235407125409960654734244922585637484911656566306156539529564321166213886458690401623348136015114493269252633397341277366788541794778385990693885817962843918372337933365986785527026115401569868545070050510889474060448168364785784303604816918398065768804435701983688546489352240098731805082238434761308109785859542158755072923559821489088858215063911667617056251088794481244486567845378558335426242842831463751379375804414903857487069067258586658157504779678366582308606302618129279271394986498043971474001413098535286331390032251322842991968730439967727365552625133883656980756481406974232792696180680575697409248872235207052379780378169330821874578189004806414544545024863842968803273874814279826414023821710792229715295338221397108049584674168065432290693529942701327251512422497300053102663745884977552000624588594790754128192249213808578580439088084395418494353941821811401317679546678454693736268665944889706651969644228512821194959041474645669542164137491611519383559636517414665782385541986490329285375753351219332282036180481839362799201083271128666615167216044976524184318433504691241543454607612155987805828404476214524667192328298814212549437657980530314539288482467405666678884608971272478450208309074606709227254406336137981158234118512674596128274770098856149978025602728833835739544280441549383722438837566884958654768496083670596218376900943943377643675845977879105537062608651734233317061420636663556561959854082019657923831938362905766164242748987986519219948971370192277303564387989004951804656648518567089853995389969536642501343292659337972320832622988364135966928166495793026038357166019049044524990128834217609779320104457931767719138743713832395780588708112170021966302854832355360679482180683477989671115543741597677294340984047585332621783641705698926030794989667180981598451653413733339385801918971829193386915923330933810225290637463624332218539087978076083417364142407414020431333416865639433597158809682931741251779452985790757967870553401704457118402499354190545802445337034670752362960290700401585877887671904401916851432176132959789548044191878789159618021517892753690148232788217451280737220277726261637776078578019688227937605626207046846273309745545933270344090874199542913277577385847912649440353195136764594916249508559072001327791581077213842230896746442503611206947151672115527633384436164448473057536300859918333454314703876077639096727545964315283709850444365968120405404749786741415169965075467457820042222677963773970913538842218706338192801357904451974074893541562168062324227329175567494860699276257413041105151203557053081021701973613566353913597509091127094837221000959871956359223996903599670180261070286920466799940401749891432566304482307015847101319226174835654315293124373348478400657811879175947274099660019223974501898696551911086684706862145167576101730494349237468644765680848095214274602263037379166573512643332431784592586070366966194502827011347495148988141511318945735619680454289091992306856519766946454591655406682642062082227128620197197001996569572326879631828707346479967690842389703597249621664105299064093472537850928850113158593635253653424637519270738336216208664640038186109614797291183543310018556000473189208294697678309311441693048091840813860009447686464942260415745699592346393811143547662546706055970689444862103299754449066133100709671369693955397970151191754370700978041996693211495133170576957609485570211517372403097656593244768648253981721147279826104108804402379056014593437820061162455631790484131462612231605622148581522040906402168496991382601727899127163701336767808582676576583136765194677075689372037784029187394494309331168805405500161455284116028311657494605575694309084291334513626106180161024635729020412630249256118571530690655235724199956711139980027486912921823193939107408044633469036566185636878123941524070542842168756652816823183770984791119931520866614022965481701626791304461451098657775810584203912152204352358856026470192560243918529998078133450188551159014250495560679925982727756527286051971214258407604553997243259993745550586387974008241878698467245538758551021979523145989147221649748041214323694294662039760537721048149183406318138525098180979492296457056073054807763487466601485359790113158161730552633318092318622818661785178627747944922626041557676830742125977522805366294293864386576668460572383520567222035763542498731753179567054173434608140672031544431476025416566378312995620395329653691816632228481273713167916498494022889679230434648529400670740278658133557388641901573878124136562998895303223005613165518752128930796649313369699400541328582821460514857334649677891744231486875881322997371658347155521859018172830579348688563397291101028716927333122406352590528692250310693737329503369363442386370457542351724352610604960071036014065262234479111196057492035324929196091596220441901739503382854074576961043411601635927462139348394096309484196997716529815006716213383950846586657461825081040022111698806961312235731873306746202539370124653261576469333285614946283979387006154290359268895683273953000715373994306134443719302902895969258559409399657739355157589934886783667558450902395287609623923111213756091871228373011798959443077994815119438733055366611043623337384430547918892032850335469228847305423772366365109097452143045340491148604990336634250365462767609079542073300097443482984603065204119346126917738112583438701276501051357865600740766807030370144938350330236234197710258455611326216673435299574674199405350529441947470803900629047104491228053127085662706692414315671936761710011424784114515513465189133476305971491418584940169387689511344307456151825403418495852423492972422638720178482919362360344090374015749962471907817954919697014123073671229228757316858375413440639489066439483873393315029490311312493699598993542693634407111819955432182578232161256028696556397473589042414142504538972691895163298667483733410971973825789522384668915260178380031952616701226658225042014833946347100040251224218330055684044336683866416672559529738393499068828415037722452197992627846082524384235041538903280422072623496595729801100446823464445756249953328781270723960775129020280050880645030731557852519485420156546528521269745426054224278534202906822355368465297979165198258471013366455032172456734987653605888974801832886277733666763712031559450291586494773943266965327397929677877638500677136553646306897124558468165788873961573916010420303759347473612636571946546523553998720352505810877553285505653283342403737972261521083485925519155483585605002084032198949674023466009405271765803800724296333143144515233433740678074524606831676790238161814099262713752285731654371842394514277119208643386151975293694763197694708355022993597818961258798365767910994157545114977565320695830328018928293062838057236583767996859527429585955946130238419518033097800589810809455566150201029798479894727300425912864122646353929399299995975796917199551159636198883169661240805091410039695776468329243042976618917790677350963728682110503924759301958959900515407495043756319197074193809745833108443936995530884498783079837680031529802386146417300890351933626870531332079745229901758903908379444017781534088246861334643021154971468663538976868051819429245618449278619688707640550621680398344463251288623065799538879624300936676763031422175839550218228892100934819422455884195864280331345742815039281377273278364705675477734988320985741775419332608523105111814437648458198119281074488843154714191965397728115185571257171124896392366283689428769063466008943959742183869819229962903206697584024966640486745272634562258636185071744213810195501043043321118504889461160023027841330518867214505133837542667163620297670103498505763457105054019181922210942821231954034732508649674113762007049366540803994817231046344646653904706544774240970837474466497981634598522526819205049989572225173077719650064478584954546694217314174572127089670365857890642333719608250404300154679365551331285229303919836091773608801366855917979048369702237443001436291810234307126968210857871389626434730909350834293798582392817938060705578828943210407926317445906081384814887367504333813123876965649263182216507220796522293656707379434803090735868989839251345941639940493719075519233058282870993767272408103781654605261152518894098560836315528715298658171176144479722923687422124031373766723447440801702743759037567925932044085138519162706405692743133779591770245115599264219725766867114248640397345889225568199963074157951256728371052805265109821117991132803995957059491075688309811565181043583704639216611015674930907385982464680885774805949391848301296136015849165128039295240005662595258259806719990146461784224468206465621564864404423682443266885800818105870152326628527963166354870294935129383871882963642501446109637870021253237042449297934330532368352079260559482386175376997350104608734384829212836171624633093704140641156677415711880928413098765998873602481895889716221652915998066073795756395045231210863260001980167942533110468690687417630801947962353701120711274108341286380223276879983145371712058860059378804657078733978767979295969452478819412190895714600189307210687924359411853484435427517474153217553094146550035917301166521312006667504277849241162872769627693629999238112319530678486973251500362414511725757128529754903603968188407326154217439684296489864606884539810875489177129580173688563761148077291628428881555651554261905787600717147948591217712356491219031309784329294373792477727290989616008581327230243043506613221529906989125846255818566603513380866749628842369894545263129026746435398147126315786384072878425894584585927337102100448507544688856666581185413476442779271192963366337406597145223639853559404824509801580577534016947882537533444044895815266436739045528552432525391664106587042860372780927820809871247481350563371362064280575655744052460876910123693618081596916709868197176766483154407464384722484863689733213271486856344809819016264060395062762601541350303112639268081211208447927857135156693741186701996712058544384212197949571157844713140960922805181796265151727514983628145249969542128945327451135326678440391651662049738547484621217933801531233878853047687172625492585268580568655065458388371098764743461818762987113485047325261024294746897899060496283104650446153058710996993459975237177297815889401683519203871680619394293249811574170452996346140144344419619999151007557731763895924883315200704525268231034860296408575553577552047458820583046067915740362933149013069983540587760380757563528607994298910830086630870319236348441132277071546098342885077903141376823661966313838210910143800878117622822558331520632466161138880114260590569790806545946821959351704876358217114116289713838175465307001204560102565049058882133795248438035076659636248130574106847238230080758551355109202843731034398494934005787437865166044205050730601361383469237566268097139797851416459727760102803480889131308155731120089330444758069350559267916745557319552099429375537220926331346693844529618101270107170531103283330686036351262042596224539035054012376567896339112085154083107390742283823027925451122826414155384021601198035240122973477844865500292664777704171672907039194466804969395832187411744176900914133249141109680220263043761032309246309873456999236797478992166687053204996554447917777830927031973371211145051213128503956700764163428434418300045052123004453145387364674952985040120884760719401862837256393873272787586131240481685537743430505269745757506506243686629478887394233345600069179256235274372445967767920872449655207002404082888331016691314769766353587911143674155677346887275018600466937185563168795598158652480811111359821313079101430770471489695040788447624431978207644451620037617445702626444171364077820736672901853679581474861012905445190788003967712581257285323732382701556005573439470328899730124166893806462692087360901510525974685063465472421034208805295265520235346205324440039950422681423204003701002461385832877047488769908918095773528158005131117249335957826761558177954824905541846194726169166171355901387439043463114145984266959483906007920640992583966900154872816566917581132074509799209334408630505623284406544866179689426853081077112622100082234389072354929299376034403697856305556600963916776502393686947857831214044773949797445028843960277973258480533255851533883706323484947922902969916621506179614418441534697149172409368508473778861377017742860998321819669268643948688705375122930161120581415027323973693697474915595472643572941676990528457304700710986986592478151938279591881813598536804954129999046124812825639620218236508000627324286750263627772673494247788679728117831035638841099818553292390677254567175982406748243697405765038806296612009898642274332636489480490814515599383470622815625422275939048335455015165164453446065100231499467783530548296191411909988759089531444670812805734203468516012494495284028390133851327906285905059169335558222916873995311324153073002927935171157764189597352337810923968340799212700461000717149641104939898312620827348113769294573575486187664703748344506912949768035664870466622061165343803378272293207209429258286634019311534064224038490299523056703551778885286411466552908527043720912527711960909122301552248979830621736281846942849572808137402327195135936981035071369470424265492168989206780469364832054340406422715143470765243378220802291092953621347226124186303301319708216469199709969864059623425611107919389897642267353923194320503291551724574208867780555460844874340093321318319958771053880295465831395751563881061579197532993946717643495779897198054531296941591158998594972208141653713250127190500395009818396915505918013878628931163668900792068033932266310979709090029452465925142615053621781950168726508871925558543113350773930781512887409656887957781194966547238745712591279184026522688971086391951129739114148950626216537273927872394301046246882190372729799277644135138898279396182371819862680593687883515032584747084149831565504447179281935334844496085307267186031266055430058872286243293360908650157720280483652986180930787136291177668006735842186254250817592886633868227325912545380974704951392790104649097799615726734057507255366143267254065198563967540997808034354361663244000507290752463047545973194122030230508786821889499055291348896839060680312753475168360283008447637117689754655965787376218540107748629561092955089851870866913203677388547461655803068029156286994161499383139619908193326682494572286139063920952767404131796629920191111434489084308944020175481082878652435394865836186553297895684223485931469601922647260248870253895145882506935799132003031206331171970021353088828738849752758979176005373038802583367117086075705962519241787972009491795913866484759900505659732268627856824588831651136551026995698999201814628316456004816186207255590572182041132828988605171409884201393075178361161787251058581192818152174658024584255489642725281114727537641245499489671379555503050320689970290536098642949407241919812244524540532247184296360417824449311658940324057953375060736961883304984297747726172050536815561653919358519516863308531545299995380540974660949698451305475484094270363709446183040063159186775350329413671693788092204021946744149210054618116233499797942703790013717998719389393462496252514452321612023837726488715614262926330218746808435429018129640013262283558121718533031823316350335764088317050023007668266753505675868315332815289133769936187306009731429572108960588676953079337739474491273464632017600231247292933763401673055992578607519692344436087973172874307048773254889230859089953611705887277548219426367687536833884106417939756561085800949947947203460136186806284678556482816807729984938198841489155500059041774556727475376025079987122922632499730142809691210127189963913751603212214485207535401174786154996304709878329392903759668942614543177175871756742933915234868473343445186159520749486939401967668406149041933097586131804790679842776116091413256253174427786698603132273144278898146822138815127186307594103785443347362781061989420702759676058876018045300267276515616926426494973333277059866856499855625628628013038478556961794688410443283704137464237937422433205516860055060144116843432864779916774455037841395810305318681274536460883340915495882295023530107223051327819538396369418414706809268767520272025185477368736714512516279424106918218381279856743476900604095779791586115831981118779882579860353695495252748899902817469326589901330039485406092250011406760977383979372203110006119818746961616141957624504509096558174147184740545174663216189287121689626859758863610673977245978459142219057580031339437107016975746940259231063917307991600189799948012153663015367402500790132120168726978885258861496995121146629104146131233520510904528891886281586162617844728518328695195180127938387030576603931600731672313592723349407082805289008308219567077465104671532094062400055054890491636810021284900425690718065432290071809145109633359872000364776271339682631510725497007263357436707186441490216114344178935131193590798005297374246641653127785389995862400478270824080732739890923341828874185807314941147873795636331113445422980383705437485595594079376807683367461445912068747548504557083045534194081530417950390562837598583400325738573100616548831414505954436224535101924947320538772865373348408036866998861353708897801921789391563333493128926075609665924181921606027303210627498994009837797278495257204536116076534861078810113795166810364369598134033958944612446165296498128715970619496463284657421893034631430791872104995247072241794514121373460536248072960479053262095852801352602709604245061567025328716172203440027746049605366924855450301862765407895841312925140517865322697896077195711260210200831115789788967879721144049990895652836780421234328889106655133474455231136670058485959788624097457834690111850649735999445419917856577896302195459645179681112083554443417751529081541320575635298428342847798743588912373694778281619771373218975181221727335400946968634908154106930093135323024854064844695046787121352869636287729562036053934265558462307141933159820807895846433034443672718966697354102508320778333337734797621015749850525789214484254194209996820191675841879764441058487914674110878931971472897612979923032957512086415073432258628853341194089388724979794682521202960534499940248495648051580052411381736758831381460429000507282264345207802293673240485833558045981244112437920615164768619877791798565337618659255061952021289468966365568189492509113107343824570926110167964621968308251649482293036240333422902810548492315609725166002326343304692040186823980789566552329600931412426372933997793724187303484001816822940459127709786268437068718918887678504088278335463800772170787187328909358154457551628701419465017376234850597050866679153450392354944880193426278559449365199804912035012630917807343548387324056974120090245240072066870916145729950657447794610739236543512788275536355170741839680615183893496243544722278090492456166022573299546821025410508428067988090187171991105733735444362445311157060535563789515218854217738536290524775626094215049933091299844959444330418131643404277254126583216984270958768759947962887985507442775304885353103020687375820172473875298188703739827994109479995258429061219424613383584952077862389053478527507156821764294948973676709036473943505315374018125639813795102149107473074912822327718893611650125094760707679099907455475389897173983707597560392671546357402224990015866757679964482033958981549314828575178293198011154427877883185951158958562639844320889705587684019047645690947559143199971213328272066457011603345369216916418416362744012641421646935012838310092911433889116881209873317924486867017647488858401241304365748844366840394733277662925453196525416096647273794059580267703548123321278811624358920882835436862766715624277807885812266965500211512239494276366305486392487459206477646995450093390534911045746493322223395710753068748845172211715630591451099815297839511205750581370468265079561506698180629865144440707818328632608828454907881529404148826640579796196073307591869241586276761819432697317792775734171469719918306248397572234099414040592223814752666419262175493932274193460985172289576040476442282418080975242414778007520399739652106078931103331432087232557096183599543057117161108853315498177856008337937841169682812573672677360735664900304789975863099380292750292483581052889719722445792564554657195094359752768671957439742921691894053410920831431416583993533885829289347656010474645428173407807373757239031474782821301342785929641455833921011660298398257929367611082837796258418461004626800300033497516262219229120369838085132455522130559168011727113228622002757952894080894076656472775403219427295503960914791253039334358320574227921882282900089402429303702480816127869767882250311071664161070511812846823448897287336887904901327568104561486356014556016038502133466052221735681276959175306967769532661878402637672174825751897185163531941068026382201121181350062413530674882942088930493715158251301356822550517101816713969361537666630854940764257056920733973966315913235168674202247888387921507062975323356409017671168430975104916140026866683723320520021020412380699542932034922458907701275394852472335492557065806510180045456026367018215544910711005261156225050816208785937457361325173649518477859499415139157757771716754323696760627997313150465913533789314940912429063600584060755372447801864257927383414860981299863953195268494249488988985624425670378667968497798251874350052522542015738002767069981605416078923981674826824015014787445336077957008200778532807600520884934983468448839022361032907216086164159704644794198578636030412351041214726789526202083485017347187379567191557052066696622185568167702557504235579279785400179711972809258864600907007816969038579933462261174456286504794577063094286508134837136466747266011482057417915434270529813742124684802931309855996006421715759817048933907406122670232919192694259580511837437922418297554126662933211770825510649940449317400229726273639781834649295596742301819613255831281479583695828079756748241642119266601581733606011772775822083426357356968029604213762485806105326916957474699888210238125200626311334858492839565388628301556458189126318442332289745062434913323115345723637379340349094346983137184395902775258983301313835574814448633534108388784755332733259090210639935394489171013579697620472015383788070305898991955014203841752143572397812852204597590170078834903458019078355973784275436362548998553949120972354499957559250046318126810161322293393542822859113295349187605637827690472425577478608879357971293497212435050411286103279720959625414999981585139629013837548720822536009306102589091263314693832841075922264730920831693561836557913701983796206841258777741008467015061114807713505664634197137475538596668744341420257705877420590706738546470210505435544646653326336849305226840214098786931310513893992710070234251870376896937538139889057018149803342040715714721695845011256246104753921773479689955103498167578443254105404128634800840467227558971460729504494408086825193756653006168147738195442588454159377296211355431456174026863214866438669110657089888873482277848023987114586110617558813118059099816285654549572209065376622524747659184966802691528305819941621656267370498043508341093435756073275915262222415576097631615022447574713757894811731333187577136698337950393624515558210101882145797050751793980886760465349618114237938531770027270799345836140961536404655015952513352238376713844607578695156284880219142432961271587858027207596097101780987411677796980471373645679118568883617548499840736397908310909307852790292868843427330029492990220580053506823548024242930788981956862801068144842225241894690491670896759747927768072441450347170526352700177292593239633574505314788490373728772626119740549850580059413355596535996429970580487907841515701953895746135137174457381500401899513008119383973615360769774003571977448899953139866161007555484564944604189499016725732581888326542355854766855937005544238832121631117009114366472509201769503509780474915976838637144001157477418434035677802300483763160384009977105423250153006989411045115591469196392410165931217922460626336301436519842349853571968872106557509173001244740852958150958549500421909322715334189384437763965903990140365124185152530629358535333245433040793497800757851462222971550993174722449438445438925459377166420498791957370411256510146092160702947227376603814350283504303369341699417099254767900469937064644762217746045502604777808716130310043987118373838835814001777992261673878243022432757846647300874210609665621683085736228775229458410469293583555263348851488359938720154097688509858897138069471495807660783164611763049532377418405906481562617631594920572829151429714477457244768791271509827115951150817010964441343653378681367019422350842642402890967206176195273534299852300920721759664383486435243608579500237241534448830084799595869593820757884701558627455858755317838532524635104883287807997482585831075431076779258486814439790772532427456425662440706284256957139736306190339949763884613395160905957158192641188152728748914766450581830574260109578898679362917130950457370278586462990778796159915072994253026307393163365894361830537946516679276108127756956585245202336598694069613065190221226731303831194799410984734183274589615588889006356678264929337345566462812903479044484086806233260999591715245140486923932384114085395479967315521619422642402883506709336059998387706070700667689771942586306515251724089263425868145517314722518384629339258334030710555054246878052989108980829231735895034555782157216829890948381182646886303581058053641935585930923286617007274993879433624864424598953014996387851718771639424757154588060063435399018647013157962443714484911700355620523518962469203445031101747332533139628878881868959107858440922114835773216309807436874102910254151514726837546933218354314853709842939795034619836588063972717933157375952000075216991821231713749992196205982725602824305603516312325683886986381865966252956227752149249356031401393813038104103534871419333065550995967269975850240564239302390688833132577974749960365587616084862251596718513020774163206185074974451455836444387385379832465813433056217034915763630925762152988997319221361025005806334424960712617890832594429047728431264549125168990009487432608591949186939993103483673699769724713132105422643681077821982528426388164967828133947350493439272801096703077032254559695494664172235228400481547593719611795111495626178800724964789340513766161454984165598694069689988808562209780458548127275899033204534615501158636885143749648263216784350303370728966948071016641586211956927186190729687142209025190591794170650841094892401210493388393736847056037576500902236682749235582384248065391250156000443985494327834648811018639044689258828950172086453028489565769115849322691869446766916022452828596408087426098073708311109588830153263210875539010627991796053285578542470948390799347514431512845983584914185359398472681181044979099420403035694988294588365131273298056230932628316559804340994324913473566382061944206577966822477029464325212603818693130510899038573833497267200667460615474610705833184476917444909981728289364669691388138512925959653593508486776890859176076995893605265646487263850608921809961768689412053094817310129105589299280983605374686869070464405698749190017066536042927207177714457732355970867405569639309622359080508409743327732657682322771709765221107726546790795672763670176519210682764168688787538246296890981855961042689147825535643271920631086302491257114659200161926576344457743202604790418895520651745019253325212771591427509005304157601610346965711004462829424400544827599459805335764036319484530900995400582306828576517984120045645000478544505137297149080563332869984367371914489836010950720772386862213301342875008427350620771682472745600231744008485284113654077429366865732355407381716072021879006539911499442564085117101425001493572430913345106711591450514784399965494745507003148733533404699660438585532330516009247857462829425613949095774370664127817416095439535663036815154390606881965680016020780148139454154589916064226740045001389851465222162269727965420227687172306486028886782261965404037489220530393691179229600354126916004318458109197986026994215613295359530812150501125473384776091986476833587057323133106646842205714427650385107258062601916684259068623734208548803493573517491328940546478015443137828986970639722710070421501676149004813317032798570579484761818519276007096731983764391243335174027537384064069903037550982074516131344144482580829015723447939096455868623002627696171390857397241356839699617901366702155766900154035806611600512285230381030239734859172688217875165321391193758338576811663428519496877209894423917557736486818177817219988960161523732703550580155273264081803919974546167706474198124279531991601449953723808976210435052038295188293286559313148457115867638269956028160693743601462723936042920431512151154416936693111790411213780926444250771072892645077750942886457503556462828634385344944221192252956126637955569038704163937219196081186982152663991205958314608342015785701865348964684247203076216406293490743103837269256027554625428640143846842690617855565841682165913364855971780151925468217142764293340753914906815397747490125162807781993589181421181366241656008259631634758322450119261187371537329333057246078548226575479524286226126447224570422449966897222119120291843144548629369753670677022744064087226628760279653788040724137086834728357474317232351969666039139709162429386375447080128426006305148407094374168197718084516455689190832031493322359026507709077147142178281236613677179833569485444892774734887427407081644960920147267266809455525541754015275655672158588402151070690877562280564349596708058133376342091272662394346154349572637829898955243230430987882629523530604762983024582428693298294183017713862521614054092362308635137088046485242140542524403903211513877278489860607355355012363434831494015560546704655521362687990375943711970005810134401267586251641401624420499832899420857576561699798515329946167270099898324117972343179259812870381366879522350410101849243504929414013963922923510294514698302856495752577843096071127840525939889859419478112038122097876234383498261668806173961718534979808129293287101361493014123645080670668547988692089898098268478876368472798827244727577429362646754784026202062324418167088974786885340913125712351693717669969922796502838991113122405494404272817845904147132930657396165245352548086943750688639294585898986448414129380756079669491403979970859553666893869644965687083610277840978017291436335438325099792073787585268507489852844958460923257015699416344260826170032041703569195560300205394173707055773608806693200440625412804073271812375258406860751472752456408579934645047732021120062721322220645069567482477909856047955421586374403758448197124589010069296585640897854708335532961018633049135061181654572008484727036508083729153061637860980421277768025949856186848499853986080760838525034828955821692614042140244898648962485597769562975712085409306064990110961782531207776696187884018907600536780126686164426161989824472314839371519333130528957679833513121443226240525474302664262992015144280238587236429679555503429468751112076889676428449589177839019833055885868300333743284452421795478767777491276192677164567644250992374516576293598503547565680737010695509912706556507606939564968808798511309666242732735859406315261870227861829448611160928826458342753344876416809978661877747381534276363907002046022982981804054310501816684401662233055252737712535412007359239828321490917319173354250052097491180173721802685633127672695244908123033120928231619788465468166364633628228280610342058430446712355432738184548733941052179886992935641394255746400892134100174276913850323220238462463900230029470508275083165064199337287071310183551752159593104484125494584447040584875275385613746723456874559325124445608959338005901888521726389660667403063472233081432142248656182696324209258368598903408061709442617876166189442367144436697292594096685673165226926758114802309369625727397202988681136631843091122718342536902184439747830683832948721475751483584669986161617058341970144020142372334690649831036680712602505130137968312864840029084384067639246645691854442914845296431001220136911907526260662713837565242754466207285454318743679074438704779552516638977225339615739144885540401863768992113053059621899328487626294807112627473702739077759587303785066097743609607651382795489907825114468162869764509853827510140530396605541570226092903283307708257939771813946220832131729987572938087523891123731317948805251772066865363857003404386169949005607718882978934290306445151995471344630380980204763840692156666382182018130419770823764943695196802646342267856762564275660729472636856686855397743696394309869285328028470274446323578787705433634475499851965129308806166683670045830267941810598850180764071622212968958420000581369154345068198621857288995542612057198154646492904488067220619806644564547897146800851197120115699591433062648802130372045526275857994854735679947813904442755155828168748564073194123621999150096642917946483330912061676934256083589426865168371556646973665030311177458184873211153489330915609736983164378043223535835130869419278575181297895280106720094172518048636390697652617320055861936625971887178640927931160689609374142519123933996590314751825723894975830335144325507320013567826776953800967000250963417207056112466971917255304697862054729261901262934815145225945803462077694860908759590549491503779668255113980968565290210290892792796722898903735189066592157506615729142176172979121949237393836349366366816417383763331021658043811446699267694557026540275963120132251094364989810112139139160829106042163219614754459990454889256073284281619438422281612037605649336292990208586753927336854679769743067705651816399659957461470249912278307289662306086484807605842520878121305597173146206333209869878736869749519572676847637652440391848105537259654889140507705296900853585661788083241570031457266469379342242237161704276937103506442562454170881806676420289686331457923619755579688011626640222604664420150253462803719011905802707446022289757136604221591156406311392880427346698232539815158497309097533771872148863230089543151061326044237637466494653161849916884240243397398812050306137270413819353913934030569524537610462166382121900189424588568423754653283262850961394820845953803594517118443086582082122151846761403331006690719470154273988242200861907489319110132448371646103473119086619530417418703095800640435133500256412018802523800666218953395863022428580058626668878255428568016644682995256221751260724836502871315740329375234029972841999966424841667431463498656569188818693517440884250045677783959340741408752513579702610728532448524067979011553455256360847196611853071133511886567120759809445125187657148525328881825394032096603145672747959576828665988793489402474859065026990594211728550148592114174141219191456013976138008738816781922197960867896680410439770861937794673761025425236335922132702739865534758601452852390300625984900379623447511609243834195154337765275317950982968486244070778586722083370201434439982556003671500552928632736354967122728366466808519910244217087390026921305320573126104237873110865048279734030234628965481268752079818329925513272158095497340789081365309373965497221677096934650960412543328262470236485509294295809761055926025945322431998440168053704724702323599135024657649483636911005915062170901340186998428025377346167484496286287962554017148178392764189301261906286643823812301261921494318067182853598139614996977317478898975882058508398855028579153661672762064937868716577175482803703458084854832115119795363876573426465013761517763252235906232890427817601183357410348726275512099518080641979553224818294024821297336369302029643959131931773346815034929453879259664929518353952126989249329685227415971936061349855495079626170756307496151914867736551327985240258688402443077427330636691557103251750715903164573157259658086651308521045179246443095083168727170486375484195432544467751706471488040605249159592038857545999361999542864475402312332637127001657271377712765608728836601692569523202257327587077878812549743650572579200044135347379654254082080441927965092139680334613290357657079752886973820410667959348380980777030232028819080773532441704284953948466076305311465908665680046199004501066934755241362808193025820434392546704534846694817895048325896715206990149547567727887334421748835547944181981938356133663460634140153984914714278576598643925569074698182045856584642088803041162323101122380760362281024116648448226996227809283358980215276716884060694707590900348282712915459064392214360874466573325189807936123230705012344833500957184248923793978862163835086497117527493881768741389416280852652608407446282804194605698542739922208735413897864808432066581345324519830936139054474781754506520486423861937237670999447550106254322108022128151100235493767728801137337081490528491512796818987941910857166798250891148737575918834430288273604850615897128091381304725622644660955128603027261446203596058766116436895741373747660644810806621394620510366805049135190772020650673359830788492779901074155919961125075543095358910419045263920022084557428433462233345018277997590864753854513037324215234573140007217703358789539916623231488311827302029596308132471148764855988374542839054539888239133932748116062852577888337772684065547073786543926779460506066069104847762517356950575697394712835667170022370691682436122753619323891627019854992436113517640513261757998303757950028845458558963749899016667158432486384084177930200323210362336975088068456845382948234479672902897846664308095317405708965262221589495623930236169144634765888826522426077151655547538720022343145880912973525082855954574812724600250889351240870166218212032726872629225701414773303986829714716507277983007151343976920323306178055821710445409872015995855712436174351511296447060609723640335131855667714139375048373357713727020722468737141490800936999082462594217705470377261603117933325972707048532030433560967085652750506150260301415403618681177095200656355161466158125655983993329447612054989268786917933308060440777275562674328343948170080711736721195770766839245517873409377893103397886544080039836956089572837445886957297421960435178675226647784124651631813423123465376376838864315097968978220388439333497684215300681878277269780114006103754884926121903810020138918167656643508640342034188376159936497361029589112550946758308490448586420470641057200278468161542714786326841651303183086834179064128427294513383211824455786808111060843758807986554897644652469289146348575519883217128693747869144665209437934945965884931425797370871353599691918895423823342978462762997303501016046136500251509541320396736410578864216368156567147359712445442222740952422647440742077761683377857853221357083131099836480318620816583332668823049948314337856300297561234738130774180190802561906222870348455693669394311000211786184291385528267844153051514138176030113831418624766753125345965189448657069158616592018542359329323380211714707594824077481904687414791572345207435544386973804599097580412203112040650819014587646888470481135237398077833060102169085277752667137579699252520739079687128034125454078864273699574454263108976027899766051152363425296652595923781404586644909179278718763167594558810558615637433719163280598825350702826865418597623604867512878093058694731410773001266756830721039490499901850732106554642485932028589430922261173942976542305871189400636459601651915963863030941091698687882493297671668827079948993184529108168079763123678137431627313331198131066630621725030930335740812452764894709508378869432192577753142680186562465802473322709397538898854873876538046328877141031870911993523849635392613964823675686214616434163368601061823138480160553155297947359044897645111361605729852298096739342537041401363638752212650925988146429537272318668491319634663982172508344129251603620353580212792460877637726667728208012540175642465910304607237768251171848567671328541787488867732153256909375995918263542959889073473367726958390540012268177953210662732197479983002403138043175984599493894969526772942248386220915897326579095200435277037974846948480623360195487612921207183266663211463759999295012333139404900398931676344725760468054233266469314611327616230753445858074004731671739958206342950673251968430263457030033044308319376377341169082376637934603945382937644763029542912388493334135211235517007656843025668976278993649860615724747568953938275310297203169699818426029582049244586099550802977017436453810002720357560443667664128350007775076404086589700035551213605121050056079937950759808147456326230156162264970734620528899560862625340519119024206536122588571362605074620156976753112988558706607906695823761788406887139748473085408251132090827209934140612824641756075707432792743578254025975939333597062069036273837043414134123905970969226167045238822059460083320512600218518686498585440762220584889455944005233367800617236873351129345671991447726856615466045172486758214281905784301672308570219082335804921563004586249082276217946544458516264558596110225634903229293034703983415643416662747477883165758271941547597731584272992831512759757248847126921675437114130472143582600084251020893060869393500826418287550625602815300664917880425649937782582261203314442046402458074089022730677803444666144628817214539565599440654879785319624720162201145354343243876235175509538103649993193905267316695167746689963757255798217184535344832616201068516803232272560423122944925688407035036153178618477480917962864549858863863505349844066645236574749424094658012799971401255669602469522863863452800078533922355325599127268469978157701933687887660684253583194715300415034188255023612384147754380517359375840349455159921192011468275586144951024240285357912502491296536728281952860958393109455737002792417904154933980219609255284934776055209402022032496921660496757973076399188279303161028107735923109513013704139036935661338664075947728615536834605603229883576551693981818456272824944928902547828062951473182284049484146806638123876495854382881100850202748915252219778795129806201588484962614520400718605986376201398401758929582315699314583360899490158169872625313732764846127692512670881780389527158298051319756517779698274006020303679714752500119562095723590531536149684393132685020991036463311553911218945864631569357752775350494400355138282609300197602445188897501581527064246638995960603360408255243479004005932267702123049257433949076536609284313397088146864267354917322280268189099267483650223007281872811275673824705017083959162333420820647397439086808068559440858818598329101371999771820422585145099969389229494894809486650912051080318768353801721360886756309897377879651719118684770786605198442497889443779166971372495649900009839492717495747189338096141349490771466182105287529230394936708592063290068886215736041256794240028798203623830463736987395959563582207386630128875378804635436857379900896690539781025799270541229492437240782601334114238866248994051269381418014573530201260851617120793140496056036187371101459907363806097101305616463592450120512960088878232218425648437163859113339976769467868875902012340341741841417292866462931753528339118241377485290123230493719132404730298594922376251517552197015111399100582680804928717799372184425164175939896606802317508708150862076532466695076648794294028904860094086725397842431624778142115892254187709884227561035676154300109640855567729371626673933203711837586733079533917472768480710161840643988424549714746753213726510300104487051681028360144928640062514365967018475174211805695814587270884262309810206109497631804887223365300274358497979262346866179599361875992660547816262475008066174840075862555246918867140753202845966641886883970132259571007674616381908106470528482326077813011332367005675279216636215593604585435663711250146270561047018410661908996577924004950661719845235910295409734321325672120863897091353000095736658487597651913644117547681028948835802187532183747856776116857898014331569230462445455330545512716222144664263643857234402593312067749169054441238378304563202666391464941663591880894713856438457020642443490478254114205889639407741921641562821964060000022624363798534588372227944968260120395186672460130052130254702142679095808745530577043303643687388478181464665335913533226577854717337163074317289579708547900378439600108280924954789181435021499706061163566989148022720291273867997409313735239215630200399452909265932425982828617258157605367379662079000676554347659617179130383056997398028137617773585814821697233151834159765409389429068560016563976853429968307853171866306962940683909711225476818483359782630413421362108032512579278985986192292093690040824143390201794676947072166153366608408676579511136589177307352233476966360043272430442912082066539449242881142002675999492088999674890056198571542812938243327536682455568417953682172057352311999150318496261553682992893318887198204611164407535512208968100967607239606012074349835221000906690045110586713089918925426854434014086237362111349075434507690128387928872239858963924474297513533334626241771880765444284748925623379058750611951573132723293846588019516750694188167359572845063591704950592606144655947006124668572188241287713866518940639738413784172638449396951033762242968164249466814844441612964768406244000378737353661218070962687772943910346465589687894024456730111827194542073040360473289481594049781863110120199264666816257671364223929364494794479797845494790199902835330301173215122045767297873726578459986634022820586124278670825924614840274356383190443831273284348288315842533815187857634366885334937249852702022595639352270169368889355004316777975756285827492753147073872516654334266959629788066209445163890775371966299020438611097990118720810109552871088100885663462671950309273150968804387728645526810170906922771033692995238613113013005293000103173880053907480524165006379024838003852365622344832186647931533828040213999783655363684922788155397358557954476345556792659062671293278516976410880803042106281137464882786908274014777423051684322555359886643426679979189609997688661932892978678423353580897966975547105895156625511069287396918142056366663591107210286698594390110630355543052585858915406607506949313232727019847594099443916945605753975248538974831043420492362463018914376216750001588916988716978665555977052895359454574122854866371740256897256757799698836220552773472133695935934568144292622975463846081236148445674777341960791539074137031799837922006786206621311179915031218312344647097974650244694798342676194105144570382130628171144899625416117540809224016163231291705779685345672789645096108082311123441230053152324026932065773634048489963592359174887232666163208987810868846672510990552497259063939186781035823761593580499814098329162156865399632837075150387519191943933516203074408805043676595700165425557746273089430044902748847880740208043307616690491723599405679594145532992350422356429741518174417273264656575777530860653882314427756033437780375408313645912081149215361498916420641455498679818064660689674751393376102062920150167637403881688301131050150585459940150261717207492751407487053113367934944957153104933607888902885544528892308148956575918269695932299360555486363471110917687086282872255237025561764738187586794918132645852697722145666369812792875700509477795517431096382846899669879004242232960741327199147328438828232379063931640220751268704854344031139235912361011709589128778897537757822893766182143535978429600077285516237277944339056219880441831662444550252539161708925021399424003920637419503281081802044041438031477054241408229198454460151858818191509135089234240813700648205172476760822139603499768769409930896572426228569738165670645725908245804642432107503435578684413061306893622347955123407371277953421995930435629825251535533412947994556621226836397448969431968337883730812142824286763976042485681626349899758700108839719338174460457566814991802909122145668571583247255999773503162294257019884053042118816478615261180144940905146665627986947765165073568070273776560102484572322374194687680246691669004257701671891523553667950619404099516491525152954505864873251153566122657627247208822948395307111409448661614231799703757789402507799418267981903545204035122042590979389204397714542863603005114590073533155710386503114335705342072384136549103671162793653013591644413148485500610231349566407787722554770413729297027763523915638008935412102460080018868319063044713648849784596681328430369854293858897463113303318360213947360461720204950834894476345601641870084165127583859533418137547465259298449077390883706160890694782558805669538632620287587286468518568751240966960779092710243541061522132087849154571389699231737459137721554436071688906513382781345040422921651012471303728056104674292648264568821463386615725255777269427636154843181520325993872841739976052972434352874657994195755477973987830248434345697103378728091677942091264276196407040434978257214106210244739045554945705362964752751636859088446336424939846913581984146623630621489762172939817536209247183996772975645581446648682215082406552701413902839671565715741492076055399776880001258258733917057260529227894451006016164790444845875444325117581630677849810575880000742311812344505562442841840758535854549095821887699436893121781070179715467478621351201226951411005588516721253495204946136020389542197796227948118092108917669207982982504340420212124229477760177196179271737496266879605531180534570660927454735918127049231494036116991772087174665644402945536494554215410271868094933455930510489378983333933985599312301194232916046952566613649049005922437107955347498286610678342373564725860069443717088108415467039981832431699031282752336276548188437455291039524074591429167148338172438977952371137521617689998174930687797888192033200839019469741683717857327657275137189682897790194396120337980803238702427983514911965560016160055225748482790673737324612723407727088848752311421888532520186221185496225421973826991199907808468568576286136390378414632171780832707345286097925495074820045182537382023747591922422767412878651248119276064581187093987091916893718318883573649294644595235043083284777380095478395167835857144168274972855951537471419045403246218895471830517585822047081234628489342940810808062005338437449446083491956119968634294955964370223382532623403054465156963859477251809552233626549818167435670965968681320922064873074743690179050502540803989500584429451967537350906133671028206624746953616055000703305378763410657204442807399642357568277593550565909423845343643351220845356752871847592082029840485031796938396301487159633238873155171757734503117633277344402578826365345844260324140692823520879132574604085875803092949575694347189806520665715117863064476433483184847777722031206156702747313244060633300156163656780665221592315027464611725250864019189048624452690566835225413205679923689031452929878879764524643892778720415685910436540160880575066446478163979969074651101800327760466636870046850615030121241025164994451521885369660986713072075083865774979327779428876323617065145669653093241124800573692922582371426457148920411652007772924501463174815616907921935311376107107443878157253017142925133768801167249949899823599024187932486437342962625927919726825281505171603808023122900961153254570904978771203179158247790119483206293742752068451959978276023679802305168370218577561172308294507941709985844982625072988055329459821087735668849299278038191017270266790156279945201294074578564428324156886932694603418274396130863514597263552765340638446962306603126123232097661437997221656871907459376707861400941959438425859944814461826638274505247261006293828412978553751238301839970175104374538507199919205340793619724662992205764211170065145240644221789531368620955620248819695022106327160243180547782860862836555653847024580191985525318146787705256405049319984299759183665815291004320466275068916025187160318122258867866193461482570269454462005787961590454564145427682680891118940511236941209376990679605114971883318240797968939960354677620957640688891927406261044154281695694990439595110711808458840690293460348079552805172045443651185511204395661755328490932391057452463775384616197290515480227181829392763787706175141053971288563559286412773411771596873812600390082303698596277360454489852219782258993401597376434434511746029134456313990004321173172866851520992393551405971643209384784204182889617698284130860663144476420402171073378688610582596516048782489936055927072280077378252336978693029808447554882857105325315934941835340620797146464098411588772503205199799018266695388594576157626934906117523804525594189571194538101363850031415098916060293239349851812353951979545796398678836265285127143847827804563909074630766731263415744281120434697189242019908642385677810478020888813356348479167763409012504004996295889089718100787883024946318016679583683119520626835046662107651439083877905548742368805217069279852364028307482636776205147845125534510093072515609981303183625775724574034745364754782119910547591129503119339212807615552679146088742426564207306707366229399426869811981206131631155869115851963049925262084215618070258914434944365682684172217881295317777046685567871613769312364108136194743020113129342662766822515820850396147742728639284045338619193749889944942195746049623593747706840387806801093153706874513801945167369616292520805593325134188502396683128357057683403266990363834355889908391377872169665651788624223939947602973101298268098231138602904164908623744594573238535894785115786773084392060706305048456363792155823352607019846585708218298348790784237881588606237301625223694758652134307417080079454837093194624968845662203368449547087248692697668827223168262172156947074141468866007610524743683940831175099814794837599477883353815011496262319840537021516759643048746988604774636731235594805457581726682135601470898319165669699053897207134879951931921121487641487992656126004860159114536515029778494865436344229882545280949894241124826084462829982348911022626730839315470145832153382755921175771625759247624924935781455803695106895319915638500476087202734538335866074154360577929362259899492934072292541606014624972112351255378515969022349736540884638240464459383536895990372537175441953255352014497793236255377822984158754214190143542824002280562060624746096948491608502046967299866841040433768189502893082809154588941147662864171530110491699547822199269029798652751155412089093909110562546099038181083260785769700096849548665568512742389194976669799391448798346605668385987233592225210420620139143651687814078206268786030461264724746733079922848746799007330521305919769529194110828102663575071518398810270037658540916821488225122104719142473569022233662659533288385962888436590664038218059146958842373737374926205213078327539369981954923507984283526215636820241943123212743809859623478368259627285067894743411768432810220532422569863466513455193720317680329916689673140499289042658839392428011321248618817351786267323554581166586114160736806528615809124052246831365069302280216781417840866969955831571983840579044700336316390906925627117935276595908534566676173677867910960779762869283353888052363924769630914341827207284478449170777844724737356545784484930195213036767301850709068600214103504688818895577093374342063738021854107241582506337480187060291540943861156787525468051401220343600559777317878352113605106122661536722032449920234218871738433568004079577137989019876658582238869728462967031840026780645436037227071165892556590678356152507367703804603690405609310142804541552699431017576227536270585807598977423345582146402519137541836840559965806671802465319048995292587040408169550193968325334859281239126041078997995497802082390786737649594363706498480850946521410169278013557543204837914377015919594069144154218462732158789040668786462398085223105895885333960045807614516256234590995549061006325847022481993651038191669528011979407927359649938091165394846861639753289556225208316485045894474013856780730231039909488900235834859093517372442088455783740003418631766560171491730007797576674845715024891145676995611853706520641445414439249954778117713788016049981744935693443749436126999933720647805033848269502356023372788370369760150841033408299780129244387426861389148128267187537281060734302389208389865509290064813807253717720449952293895598715004630448715951487994825882050271741448260459077160133393540962853138937818048397237697141289895999601974911140879155423504648534807953636383781541260815713328556944896130951740155337105871845916620653513892286804526646066044033033879717382473146253973375600358591811870309839878844018506033435010309710309388817278349219429518134752176925055866206673477328921037526117652793067625830032609918545708384345435527390358733663822533120907700798368347222021892766698353568285631720247505923518513760349735262354510423473846966617596196596538893546331679116351733421083044712499423846043946309617822509469911543339976660150922766519572154369158245390115485642787572835631308545348058825975560597047921038610681526270387990890112916824096439621046652274403681940379636381815733818129427301560477378111271887779509546533422250475867898928680400529692449591749566663876734267389931625465128821406673081282021964707527242748915881210799194591325075450465739290581971470954382364352132438169185896059269535999872868501333780469125679381461782580488720423552339969758399319627727482943768166380323511244951887405196264569487223952269164495574567437617364962386268428922826515758382206192128612452136609069185974433493998950284200132690531493754825390880199857910661859744827367081702008050417444484992222887341920584474923275069780325551695624976868935561284892407220577815214762582689400026912549512950602785557963798228335912961079760236829699464796892532417495996159250636172903638527468424768485077398970629034049856799579089111899325453304071974821544334109635866956206957827265349280714845311663347526074067781824431279841593135255920693106767875074271759164222611803010973874356388445457390017658769628066681666897757775526626255153058299664078130325685424902237074383204062895813268534221799095614499477033782083634869783336291241668183812230384704594381785785529075290453690017416151739863241939450794616795768637003245470667797263748512792599858242629476297151895122644798785699546609912361452652594665328798849923143855193555115138731927195491849520260794587308923631799435136180083187036892139706712170578510392613502392680269472338343100040508040669497306376028205595546171670465195418543098563069217495348429162649076988317684423704105749065813579686619093274801626663407841762570661478862818490433823427100118755817215214297830168337259115204245534603769094309558470989085821161057951827251026335757102264116327875526535589592164722263169500800334493102250651944677054207260360135598300388689012233221837589310924653938160375532616587045744647395601567307457373453753696412998046801004575278374528182364142428319002876384691415138561512225092185178385107554711258071158101513252480808743129848118076483542672962463503551561705622896507504787418824695572372194627033882177003939126753204667129761388118153480627331550947919131740896256634966979890123799787786708127183069406018746032004566773411667132997665819542879829882275218814341043769503927630031655881812575936327682457433176481535242032441834623601187531016955478003558048156007491728341055300889319272693140587563223006693332737005299233188758898287420336028534539322974335963300267710776001956288842710453155723246948892552778707623881897511782772662315646265432070529978746567836585957185578724480923439083897991843230212849542012353639309098737375583105454868801674424900172431321928658933305189213107371533060972189986200736951736741542768132763350104125913332938064235142198224498087011526895914165873113047651631421917333577840463456687998605540783315253553738651988715287882094775825088087123159511799511112095916690575487384252479323081416163000658189998751777198292370819950279549045918248015509923504070157205491744405386216026979071395703285050136078016436639203963321286099420744369030644249186147977195353590518577414571152989678209956015059552285297239849889181813246970109237960368080236407670961032788363013984889906813792692623314755112537191357304294769842943746237546077179620467533352510011358568579184849823111404604247915184048238366100690956775005000755771817496085817383071428474380637689339142705811980373275631114535584492960257583021621681954956604220454952155444312882342627753698333884576819208038169409907150540648944732449056955663044554712174691324508722076269300780876183515655981271805974392910362025027864246696644018294142057479948195368969794451214110215574970098151552153927302697984267802839557349735122820395364721609363048901261951298445641929872499673996440090147199580863112059364392121656403413005714104381771292323157487615129862922383901245484917442769339959314594353281568796437161048492029265196681257405374053353019730602441563758402063196261435630824781200460012907719989530622034821488145252964771514906284922331717742040516361391387509862763043852065893108004029542839817835000890327965761431924876055460501755169276523900732655992669036778761928758000444854961367893229600285577975622295490603282318819048529376851303336055831635908684670296490925655511946196300384655665094516832864815112712363857376398391250756131256956662014709299789578338910459687661335950987924082031324156163666636134248956996448641999616561617911364984419852777759531449387332855721321075793735821782905038241400354805047820491099836400196675624786215745765535457121415716222269769928563678636371339569308805625317576862195701400319816973129734731358544510859056305173595881799018584680811793218905805607508205753555629358237118507251157118993353998676883367285952227339538081678923279407393628096732376218150948669927766088683975007868704430351355288883563941727962430907591310083011258790271791043017065643131725366773486700072199816267519738851479697097383348914282422079779742886645808356885464367790270431953754582701119183208879948464773339462512072043470897391473284839895630855018091158484248087261074885622978050013414508835770079114826347182593407204740773747403098016857841037961103494113258089100289599272796532121192863932523939099912123937597048230942597854850939703764558666412356332363388041323745649135647516463620708253580703533707032568988624627418998642030124993424393278998035695479328961222431177217688220855756333934715832129522632261259166283147547691141614616447352555536542018876517211150360711140598465945989798231889033484650973717143646862988241704833753215550235493015299277900182945132218142947790121919190337594582394236623961802770463527421093212362245100297442487480415000321901023415007078938133966367194540456472213513704927641167115215058805279159312332453100219259908214994958884772546722162233192157869952997005498543618278365189762615637325745971319031727367583433613006268610229550712733720969051441980140600943888743335684958778502588057910544511154338952306482026625499264489956615133190453811345025018531522434415767266451634713727729118598226944282993571703026367496398054003157549459148572318860645966872364092847302330994053027187301790721076498964565416523873899878989529859639036116617643022059464202325093656660350920850532743300171389587587536038376169549374721248541433462487534801998812706254456916356091635987115108918951116041772865931531869605474465696812385039262235220858887286603209869915419514265297798307137835297961646538533076388307306465164396650983451074976184311650368764988112403875431584918772154457555345030749459183655980114782940090865214592120412979503148394319343713968203977360120624635603659050105210769685365787119612980564468314157063500540589978881339990099307940053894099652214507897482234592477392470581088341976985950021886616647847050705977733481295096013140965025165160191769888315184520066333057189186389076771833208681948767046089456230692263127525062252907594313112830423717197751115127053362282677060160422065701462330750790395860437944959004995084130672699398307335075944770739338213984805350560388722643403969809916496977550283400834613899946197419881829080088294279723198122381286748057702639363175678401163387269983576911269444224200179783553995260762553384041952056429512079867155434099223981425435853918245903543811993110196122793762104655852502018640282321563411217189314994682969492289174420883764386880424571840452576498327526793341343152257462358663738158619485146145182834875266007477540879698443397491647127250275913889007249619664530666303746736834223368088629305909182418348841569573992724445124853506867765981361338811574838853488327448864592926544710641659992569295892672566027849377970360105956088074926403600575468918773577684220256480263600292263699290146175713720094780061248789830792632154621473658952193649621240746296784238757020370620101126762830116650602315632646138858917488018030328940703192283992615293326541305507481179934583944208417942327178683859824935261485116702229915633313538820361583438906587635682555446054670014558260431816835167207301084991951585578176211872476037682090385842983008360379799623509821747068688233863312764834056764230651037919434603310917090802654199904848886117997005824293325988366300705404915824480489837370215698255123386869926374319818882922828166005169597162254596966746075753346128237114586774453829969749673848934676655206638368305950269075637091380751452718432295775134311821900781744938258322453866088134343229579204696847755784243524853606764104752544856189580558329845863015233169207467152156721432527069257045848583354075139259565985046319433401917364467532943724516111314729159203855174181625079058725086953075343579918038197478041592830048177088928900949613853125251091718777422930666955314419906576055159644993231931092094391328669292344464795725448399678432140976586668621484276315901134290040906515052334378363874010904234529542873436804713344579353007401693138990003095894674859341250107507565118385363802647600448009332393327309870751169148692849136991726657063270492814715317542222564416334252768493969035587050885194194509593667145205492866942732796227840969627234005428141583136591984535721329188710153832146887210226973321637957182937951850878691599986745744208722389976646694238769274612162468511037228723643876799178894931996860143475402857407942256881948889828023106583727156535830550415546076592064415134831012611440196848069791269340929560157873655191825292013998461708553196750749087225583538404207824697153620550222181976056654858543835031153734796892059227366202248821457707741199211536683818645560083054565904717417403092751771908554916420398906051331210307553950226157168534812563595395565157948487867883155914094847777326659902198994750932692866675453051663988546199802095478888762994794126104820378059055431634571600136938793598434244620741837026888653280747247629718820837007347577641619419346302871895922652492988985234184736108168620762969778602642067881650081986127581609114976825363808036090347904911545243925118457708119833519300738991429782387190239389970797248755210134287329621950313518108634521457307903249330613176576177140367937433536514995755651628459770299027730573924687826615763721549124369705893008367072263444876545166762769796159598769481283545119635138958288642566789536940115472685794963985242504604718184888655936961271440864182591840194914583604208409093260222178408498872888892722270787507691176204079309195323704145932611845045367272511536297927774852211138614420612024513708232676984714457672017977567748478091156136487458703395318295244830163105141396238441693268993614182418772813889293907734679164891918248836904550151502110472992678794899046099835396828208769774271256707845170094111658317955288556470128123107722477162843475441456847043848392977312028870430116363398385848515203021711980599711539505855604049083139889796180290375678991896405467899960792180018316396557998814271247909903936436734723037093181389690989704760252380838896354894285271625322166903849915948269302075189565070185027948190173260318582634791062700167736328976149340459804149949091272011115248739708673436104069946420182834561052029881147580708066301449032805777502783330999476211557611786164075374453752254735749888987946918075542684060923172676152383627836036585019016514587801640478496295013942411555006063434136819335490232519792563760892776620064279531643446505076112959955784818126115442610788696652969511231926508654334555553572977461872373144671667292367172930758795386956281502210715842910418730690460506409405194251445068060760832120860644146288228538771297358052528937267802656403625049361106194150301176574592014885176656756237036823369482596056929036212418829516855067167240823681597775834120456999531815534769815606263362460138897629805652701514500120108227224821192734369224336593554238746274170578155366957472096043136531001572873813154359295888720992062539482937422982515672445628883230623095776190908135919932936544425434541378003280189670083739960088355447652119491849045747275965435156545792449321723642464215939275323722645404839546593087766594187422527550862989319560897569347276437489917524888834421052016158897991408953270134271374911468382661031654769675167845091824390005519786160009871273895110879915468870104101618301930426681914623779726669118184543241365954033160142281706743996701621524288410563447377860091745172124076846744576090718064134857543127372183268133197580103492329008271000031332765197325591667369669760228168070486549345704233903085912531811444519436538615949950865245979883641184699510073367596397436157995410859909167885625661301960173897237951393767464107344474023543645673198217428893503876029040857662397278947965876436987838844713987687788345067995549703353106434967580414831535841736736037213560529154301149269044453987855959689358136213708753663069750900705429151697656475174534795585147076361470475060885389310901179089797119597574387802453218757708841885549673651904635716136824594098697362878156532883992146002361308840517546626352293544143102075105530140026548669606398213176865920363478490719274783570947246745171549914727576219147081444755153191902532526867088182695071606863481539009937344613778847320153787165681989564605437329641459973467779618841126304423387057421415977482076524181299705241539205280683101072097759310914309103923854099726934691115288230281255185932007924825390293958806853675448050485237215871561343277446693172960347327564663358767623298179728726414618111499175129180469205703113802111445875210413614240351044866656497794804739775294634782960119004686023130118061456253807740588394513756283476333770896540594062113148429695727142958427362915417363978055800206626323648148309440820445230404471090227440499362188139930324642774162737811461925342253699379375854002215910126566795170579315275539315467322697872541998941170786864181507237553237241160959290733554096015974306247369505552176999428122219591694300643520105715498841572701139266476290678939602101734754587600245524697212956679206575087075368091646920972098309166472474675046018971170832194210409498492828992220718113625062208117261773390762253157770328275920771561682432913535477641703601528351526093928055995257950097850585831625151355325476388404214321298614596602094721367311097352369505404153060958921892436491594406354088162352662989338314745673537511508193150900896263268984731787632070574013258975113635773929968495325131412361210131287469288110351738511045927882053767621445865772442051548478843504475199774881285286984316516802752471298557290456947171237032949202457789089293022198264129538498749834834226972600566035254400036736213896982307501455116977824262400854860233344033904738451193430925073186301219686743885602371018417072258056318213088774162944840842730597925186568992216056516332344470010257626886360937615817220573956053959358650180240026724206899024282740023255454728148566757725794570862993356286659796476176411348155011758983148386261670004763117198679020203027945985759111272314986624990212863237265804851964141957523633917773055256856816956274926174732985233274789820516821613687568447991507144338100112437652715814977332121747873363805568080623476779873596616216261713411715381570198745618410768781439264315848140925389061476840390954850618454630215924517166142101657744222019336572070994129705705163212236784752640794680004443388592778309727340799179856449206938730144223972924661072997517109965526284240626624888594146472215628526575106821959103958768080710540542384016821460445203723648114525580604620134651255130705300194117710964988594777745121193280972721910009902872335339350028124923868971027538017869556316994713734476021513917064896036677166311351329646674473847846069222543079876899383357751800599655256243784575646406078455063941152236098514793290762644574631936931024134318858163937095938818284520381062213767223116266314262347131664633080712913465849005587481071168668991297120534202812582589396725365769993308141847089775172673324778861352249753621341836731805008693586102030877367917531195226592659541230659805124629410061315407033231610637777825571303013562036637085342448023276089573265237550300640505868120912779229402480898584436495695314893735752498379732649655753540608734948877915288353127780361750039050248565105117637301139164093388961436973524770513312060139718668305296569806015093788671224208933878914813614729204550428041770863850088003860848156020688247582185802400888104915403650332130632463444079910794370817717185823973196783125606049549288408838642805289244024640771416949199472128563101635056198585053704305885003597462947025233269430180134892146197058444941388745399310977439343923143521617965540645970648096232400753747314830827097278206687810531709626464395078744878652617289353843094343776634317259941716032664309974719691859318614451147581889902434831332201528900951776864788221116910761666734527651242248284068679123396743376351652790994322141779452032124701081906627710590558641178680481701756895336229462827156206713733963317976327092149640584475696224127445926493488612035792681204755998306518209827491825509466324371855877040584477281070100108221224378546605704390707187031627291751892184329142232508318507916536028780365160156090898175943030113861563251017203295741519279923959997987538424380988127138734451585145154070113409999569375189661574363072576867050434244796271233518480658841210399112250549008587433011834083603261757648068182453390148319551551789725865665424989594292047438078091393088679686162863049563886954682772759033054496810559837783510223061455970027122499590340590173010764957812381577398884349807854956577137215351758799503297823319406027548711281353819969620114725892398582407425431528390555949930559140448095451502437127018340572708688977970549801341648798870959105855439257776372018940836616751188333699744914707695524094741162945936451968211782833491640275020860030409561432230693443551957297238568815143933045378924955642788744285562281050364923508322352285544179448193028576689606682529835225276154066613803191954606129587528460770695395104657854836252823483106497316345794560131139660727563062783923489415200030041291159528461649822187319033721342440182935453765922678252659704296787167556632914778625786972402400148289612141968518653820460868397602931441243709600502512475250041697733854191224137775363055863719542285173810336841373664333210294771045151945323746393703394968427052212311503434085006122614079423391623608596969944859857776070021728225158249806290114737238375843373528515034352205690375452085054279447581069407127571920412382463554547831459351498543674206669794646990065756001840317300026011202517926259789515011186500482905595601403095102120316967206741569202234319643581071147065490825150933770468803052786867960987352755319764224451519611651195758866647131458004634577594527306551988994280065753049651374595486307390110287031342780587943123302920706699695659593165479116870348099408641785329190945592740033978503308587584908617954681852707409855615569300510762617896655200178414634992321286998280824070937096217258387345453949745922861026993284922110806518049333332341673026853524622824037487714804828720660318391355102800468317016849009233664966501559099272169209793748858637192844243659571241524415249168045991448550400723105280411679056300446484991907549992674130344171759187914963198511738140189767083334181064041680401570870867112384895149515427659267813474536154351328015681252680767050472573882245087285444188880133429558371502410942928556237616536399666022343926578252162853276506210997646832151390881982851485878759400288106495201633832130877198863575630429811078257186774668715174181608120876979409735140831573381141026341318994036666882281267148537281504490376969525189290720535734647409395205030136036296954660865982478344645584832869583968750067682979398817871300140896595020899530709505453025048979048522714052860905950273477133060482756534833849607163354938186145235878643096695882123798541615969539156155000471886623413635612852985540635087254801264875316001091163813165190871856538812107376308252705814918695019050612899830248244528413653071798244959381631791569284511852362261610846787454622867868864056991416490717745159224789678106763698962006082365473170433384887080223485433600862133241336030819991752874951743853144072155352380837199901523229987040265730738995219920795854888617418187445005283156387111487340314824823539657762833791994001884981846493387640165943055714006958465746273531470647503031992445017943845485007149897251788500216309398405012286688230477834544122740263837000871625093708680574487748519304644311120125309996504041487644620341534311818987529073606951771811203105982890035558750810608886190212252215823573837424032425673083422218977468068876424152897011400578220620068100839244611588691727864439180746890850672582974302674239402302703513493700423514609984437181145502768780206404947857592726607368978243421946816650608123837777440067536776485276230012197757828913969625016890901341760230089427473504456602150445011160673989276977187138636695737178546225416702528316804572479696124627532163474301873370958317040174091227631561404663007330104368778590934596053831431063351567324232352935243944983548974617599732811050276359660817056020338269297091504910488158307752616705322239742822447084057106233175027365855065837009498510826308216870339989514405167067805775681506888517478465388162484103156172038197077391144466675140926599523913885992636044580913680630840587984444390369789505775086257317943204364722530892518219732686363730827862466569191965342961698229839112349294997663857434902820683950522227568980052382332007169620321418427164118909787029004816561113810828880057047501393399250686240795370520965646050503516765223699787158230771463851251302048230101970193284203575111223565466015652148191505671706608877107581810675127454448765417121127732682545816511867791750209958062542251307005606186675504992265749481913266855721806168094028463718903882396463852201314453742386092109263588467986119658905182318163832190507025218476095504666090641033456423625770263689900830603566675890053164842230648594243245122048867672687146248831443727085180917740088538181252339271733377208081995978810934215464187931788774259646071422979552380802037905569850591113899062441163322792758595685323420596881534479691238304270042115909521425229679109985252150069914051662433741744140562402504658783397439679299751576446871052584604513288628749698403879116071857934796938783120610725218645115691621039647308043432672205287792511263161392248300032492549519390119975790759080400179555422396616664173651497116185078025336314001043269375202315650029185732059077640210495418929114098394475155222937304662651294590516160817197173865038523068235069167785694529689378180733098667444308925131186789003242916700694472401633799489674626345787063314897169399058201769818289439524364746938397024511032664573868525152473842506810477833299176634728102379852720969445418667025503296364752713883611423873739140798203031015148728546705461711709486451632672805668800599702576825034326090269947266993768871591986573648365699591888731351386476598999558143511858188330704866415341652049468604857291119322557128310501431979806892185510087528360258549549845364232928911636256296938853062008743924761643584925026857756913771692426297342788545493343920086985407878249545200591292001634486705446383570949986387196185380386057146848937716272203448661831479556046632856233112567055667522123904226534039892665469826849246637045667193297566454735403326570623200304563329187265070708133646720423384663380830335421892282950125658718676771315545125700252082313988531556148982718153128182833298456249727164255861351663736758880529721759307296467532921535322800536189379519695663994684352937862568588156786767428406943574366209376665115779404428437519047738940467713160308075019378001245181539310791778051832033317591205319226175833316566116513732277341614657552100831022261747289727565927924451315510416323819730317011881252248944295744864656564693349799014498182592075110411877280706896402704030387536699372892986210578257234409672469129085939980521488264716491854313693342916082827058168015981813461989079005225665857798027016339443238957166457963145906925656532155870797638204000553475695532751849833709070828047866705306276995643882740033425116126593839227775650481402927229087092143026395888986318320550109088078396196945535124813509439225181557332267821725746653743316521827986281980462808449893697707156089584672374677448959534373457224072623031086204094974962851232233676391099283364615634376412542659730503816826948062440765898508920430285202279071312716421809875927259781967257453582620247107129151440913631967819495221424925553727871126105510212141411457502993416704499256877494496920757650340660532097976373297120318982918102909195880357303514789723645526010826107964375162030573616270612364246419868225037128523465805059195495992916379015795462889295194248323920309200684519287118698356023461784089968021401544559189890809758578293925694927175567253431808969285414793188488630359926401515805465398936208779843396074682619355279972942660048649912019350793195228002870065082597493011149126285350508606868645507657621343125941826647556948095087126802052850593977367413784048548269746513805182942708912277478371511543734653910961870235231618486683838584632700016273230608711482262175712698828423118106975540267225899339782105212491797620135016801830642186222595696787318876684285435890779246906402866371342897634123996288872543514936189661600335474226098818076245612339994362921961552095082998277180247374997469846535065644450580455900922629477796726050542891895119598687730970721140338078080117117005075462559695600722903597089911227562145526332872384533340669550107819276139929805999394511396011984427724345924146941578395140383777467211720760397522270071875735419427623355358316920519650608889638746656029096703308969418142493277544280602037553970524290709399291263879560920782211964642883107769687610849595681899240595209724822280083583457320333314464889786389451707874051403086505879487254562728350418701312027515272588490112455810915328237471520586484248947985254241212192252496269306344250809348415719519443228405117237347268618826510641403147293697182625479435914344402562683892841949259740267818536821794343758895670338028961447457102549051918570542449207828546247622094635541407997806480368171948338397947027529766362714097951505100699170906552782593151415401034590841510897490755701712497856080901013803732041350920046004744227918188638309839926324652669594238143864005456054843704727163607511555441956801931293858981486734143687060527631610998255051632874750028294958668986160447421336002608936435911123882505005632364623192330017505154128902085440818082511798050339801811807194924097754292247737378869585652441330795751068721335132648742467795046326646379079308754490513214939986741148256052135979691386844843549918121369870972130550504907493658288145522347046857208728105597978747578725945126033985980016919992182351884401342400558488486109659506243209169784014600637368819634580062384027108463598405136689704497212425636162276965654209830973512371722272230353338494756403115310688638171512190982113117774767320809288193832683104404962790394092871599903748656059591538366726367022953635607710624353989591599291363763823583202792359728064921222964187163112717300953358130430489749278452496123705853763708086773535536932254511472110760721571755093220704063353719625591356019966259519595468296532136217629197655935413315463695842367347268976545333122393365542474417036648053001032307797822176427991017211413107865013098031605144004555453230794526181307347611846515242717744884094863135390710311956946909627901612959018787970723444249526661090301206602134760659483936638638111484961743499935621379815731617184319166739732232456619668285978063180552899889849609740658965263880365402840439566911944228502914236601953074468609710766682083207788987381222039399646003050953587900150833193700269193607803969494252678378907516896776229067414765459662163379380470943813360274305118511313617816787675181772171674363014818611225888161652726679533714181828232855162293531312540555992277286195797942415746127962983093915765579873640297534617275367791686749403233725640000807252892712402385295071191443578412032362415740235695091269705708168072578194916307793031844972532804926179002776792668429888473620917648806083265734282424569353231996180386283668642658736034830698015475425538028482787690353098206487238460172178884294441202089445567984656582843574667942553095222429356177941958997221251591654222647548168226603579730002972822392769466855037848168042163474914653909752893318633112785491051190640798581491018602642121356120474559767328126346360488026591806676980449803382748955329938511769295963732892953819864370460579363441113997667079320865113644500731289930873113649386395045488011609280339847431860212445099395422493758476832121854241090702786853413106362315174151105215041556921444286705872262104365619399334320233005408055182906579147735096433591902732626858925128197338870465109750989951666116953785935613991756304807712168635526240323609712174701983961122029098234580837272818243553024025768453738514234214353199187525391612189138255722575511625966547934320734852032752869576015451689564233656207658676322797893116736691322265194557658489336484871164610032641025149060219473032841233481076555730144046586965512356826414899800791103112746458048261678553765539771414665152722046345239806723212741632287581520271385745569045817622266235727875934779041699751445907441591783593959762405706682506636491009210209139794102347090769702912566589420259438419996442008493349032489754904788496075276210498708832474279133658394307566315394960733967106604901645264619810898395723843885529909409580521254334492016632867688136517753484114467612201194379569711529921662748886716365100566728431199392586751596270975331024817066729776288370908629189505134199408939777836669843747056923108995843900401374599775322056930213697859855453963055375911199181064987887822147642131338914261751361033585923200423828171667870204261012352298914688763258576996699299667647098730656431963936985520538578245575714914958113644442735283986025255985730277172764672027157483471184524840387773932512048386053381633405191272998706350015541862235864962940296018820676678389143705051717600912583474491051010167345202190597911240901756110652273904852789801930809202035886911043540698237680095835579964805596405058472016748648090992126123880230940794239971477939371237514031206072949028812498497466462129296537998486498738284887934816600252350414696926564107782502556452925236685244583578246701825377479080737969284308447521996032427079976400926319718200121794790415057497010552522727160442582294856467506762069711516682047838423227898247531197534167606770656796850234297477280722805565552507628586548177696501365203847407058098888758690333801934302082427287816897609829565328008246569574525588809354373535010908235386939898111439259121433160355225708325140146557233008598004516681061895251384754336233356437249582486105259061161122023278180331501969287713188144990424471177457678196422305353146578352332138772836343715564585139450599877415145591917876726577601414253713855183110392937083556122603132979934178684687788872004429595809980585197495698570948069542245457906860793097182408659975075277081239716760799458099102850408297770913453375995950096636366455332513408420145529360094155357527213424227563655754466196636367510468619616330964452822583817673863213859484474177851597471542218361113714752722966490838624941072556292683706398234486068752134310247079010865882470893599363564884115772546222554289128895014463338457600126328892696065505812172976649031660250640747725850830536880565787200288133064449957790641188414401952054039283870032981736931033510359107610750251971867449196706760763258394381133320653924868130370050233695061871461698889221737462844114200491783162935940750425678003038080139043010597475206332975265729594919338934823111323794270076308462359236218722993216108537225449172021663417459000848544152652059279983136838244893471295613048264503828521150622783472128332191938484509748905603757824490393541348955346084178731451076706806940268577923529767290771610640286383580420109263957192975990057686436038825639052851409702211704815114700411803440035730463416858808225048572619214473541055295985437716224223463827800281142257497796936465172756671390877926688462287743780132296387995465042306804630248077976129561727409685973840038230671821183334097033722080957082833541249162216561749917208595469215597959666358124299370879889349134835241772638738133613651775351672493136755784834235206391474576544086458648716312277117099493880662581781868319778611753872161439981350994761289498056710503491879217314051940485467052676891508089266854309035734881425664153100790924028339170251511157688353624645718165949204117602632389203828481503778616801599612328607522452173103442396675895789687347784924099652521201238155447583078931362923725132926242111843327613239222062473175622749785620524056522364571998301981168692655174886572137918320518324683844851827927886518966533444944626005679530750844143478416530101595020216422218295172535002554968268048728948342864631181427633177123117334282036602588990601609462278297720023604635102789454731158209227772710227865563660695568142658590958257284227253501443714561772626622993390538272739714835093684905967848381038424530774253359556585148835567405041095617896321123244290987230799794808171793579672713964382873835127552352677669470585904075498985918213969269435556828348315063715449010567490306128463136621377338301881058176034825235022388755895924971306486876866092928778282618423815368180190593612373151747575834614585853842353146725858314466199149930263155332970265267908097565216287648771652851892598540057339617276155086793651892623447780391126075149581257284076612726699680402735704117037185485617472303447280806030733564456697343292274559387276199408470547133763174979793167760046142087427470307967715559032239511241189674857931350471232724569514785090843439371067909058810979579537306736494938306785686998555102770721669459244849689071892141866489033439836800407434244839150385482918108018166800208343869039299463205309325244531775092755767595864189185130096238790368412449113406017752797902695078718549114719786132331977651928308544576703465584438034407802977591478746265149321146718213013309708296786845775775831623112532428928672576839917657085496256235537860075293013805781185459764512425480179288755879933409406680254234517808452263865799203503096417657854837504172536562080003519821403357534467164374162140144717726029253280073302362970330271421555387875518975422924132454085498124086071468345695378973061586647698213248799883587587794571883040570723374885914148759779153798173456719341003577283046116588997080789630091800374433802114594343473958040720991802636849990331506240736026138019789520543778244735184601029780458932354254698379066518775959124145924247384959887071089098266347368395193027465463970448415426531948152975683056679751121096794151685842947301017421268978744040369475979940367510547369989228833927675793655396261424946066317742818595642432369325844040478171746358571138545747311355733683451139242823207809178585709721973994313499982004237186704425361384903284391238775786909254503308188699368160614385319131446731981347657431407811688356441473081649459399377372962450086395834196486686760154359206909354635405304036168772810231573797763830000927349653617275961714522760776186969182670748640535608502256419433715041078876941368569054387578587019847388338720701998496064197071816597573339368547571387947885977175079843863717118539602085945142558967071409211230894923539293868373988703523561000303635052367784906348055296220738216867472298085950621818478206970818287505579284302383140545173770062798533635452200379453613065777393988599533968253645703722499624010355630123615784309566045468665147781524315547163764102783832029282621671468164786746274278222549167743285863943932575054308356207975751498123992061520433099549823268448317021435221504529208557009519594798431741311893026477702414631954040256436519547262724181030628687688585194118104713430549408908124036096771251311498542728080700748525839565569633303494292650145959976734001335054093358903524412919610722013574695092076173685758225099354250870390300059583131748849599376552731291140944709110902811542689406321646569302937488244058229177160378700648241009168196937893549126422632068987702888729207441926933836868772284792043852791147793075576716045011626112985093475455640669215353249465179283410462988554316441098711672499800448155812237025713613352318962528149737703118287059492310162567428004701020553336865994961785523979332541127331970273224868501506254069371881423241197764126996735161537425376574420069446734204509862550243989307170658100957324745603416501815416447876697586146521082557901145806399967357381243613398458568373447028902443730593089726648054769770876417303787296195213104297188870219808200594650210156176357154914000820557859153895432701065442224579050923773018189957478549295774226367789557784528198302177215592726049863346456489977213647173546336527376935035829252819211689715445087343968395927213491026942158586899162496534323828379372048025861895308070920268386749618666677177059656537617345749436096007377877286058431780005281889412215230275231716099628668955194341618146524072738303652871756710168254144869893907992398325609694742329157971640122435440112376122835598077204951752702775726592479269910498974738277656383217793942840546277606881779488813335118388953028615264582642864614361214795535750099759214817818964937276421083181978478473298820776488202448938641276320914004785111898193992777437859021118968343587692921882648353472659108908302856570084944245357242350265748557285278380128586747490635323673083291230998854882168764547241525141880597603618447680310684105909529636610566294316455828311202809584217277838311539921655610241466434227854341079169741886484058698862402542847017049438796777160173647679779383723790008163361853900996562955923046597518489464521281656657021644081584364323824086248867335136771434606526500853336001307760517615141236035452454617815902944016366978050827645785716202425481569491535896230174624975522530964007298167332214350941755516260494441389563548460078129406034336792799205552055306328403788786909454933696551692312013364255325074148349050672614973276297672406465182294072512232716935724272172557961395474884989996240771036895264942383655429496178614633254425096088632337585629801225050966738729873068680671594017034835787740548500129467047543088711716490570920291424322977526955038559567622879495554789150513358151295557488330712110620163706948717560801740491373557189047042292301163128563053785829448525718200814340389786003793737604075968243948156169242840227094160061820661754512470205088468962321615774024485811052314575635641258756504659814720648344987305871395384937386353716662599178190398793271377728772131709022369518936569990738206020718848513889793913982187319401223947094224033921352665957764761397218835556525157528395888290470730626615511816700193126070528097217336699254857584067524102735877099593976903653084038667998528378524549641867449699718794368048487738975156614259694604228194048764511880689335618086803521408061232020258277772241380691522712910185539870732743040928456804074683805195410153394787885841146975020847963585981989330880670935088329035003589583765654945043186350456500769090879921053553299800740877315484057451453008281673251168495982126333541909522427080355874802766100383406440249786017266532642012671778576290574984279619219454295653933869697863706713311979053695476319837356376488099005108915585307938603379696676480994183620432370930290891947005055747915005219016714292190484677137770441910297319429547196227167446381947602032889256185460250638720206455018150952748271606524475000063526358197612205817176019297474091994964334081856702015472952372954609012039099098203139634144873380932773526801050667870097485884874273425529597637568084903183369082365651346608647401889219845793656557521987197157906593418394812305538854666679360535245348493121168645050048985594520263947281351979843858836571794290234261219692506849993781204491623924722643057569496579813785745637018242543360383426360220681665071008645001022744346642019834164117951883099814049371770247640253200679142973121079691126016033665718403935649834526200294159910873606710212178216512497374182931763161051449706758516460172776290827570647891918108532482527753184891522485668608157902136210875138599198967380206850269110336736847832792952623266654670921608596375827337228298362337194804297063598561483987659779961204680087742723164199419344951845635188634865660939066493119556353356082020778907118747579322047992726857082929927434534892873664910030139719323768505691095025969563661249586910532841166657819351931348434372251568711125084311804506668377128382232570852830800455052303685598465221033575142497059461087982508365739940493805196811539927055871856523372785792822518124768141979884836521512243687227173676098157467070824977371460360278461263783607160830348987146115433391305122113745139323960725521477883339702782093350676132369646292365405700994411112343714844849784093102278249228641547348615374653821590304250140797282228576334834300643873081533807700996427680632350255075222476379146530498701921394401459342516050369053277430440412875095227293748933484862407192777187735264815450938982521373861186839007369896961991066293747228288683416908877754872430267201290245163961944212541976917197143554442275346526141492751944439954465239265600325317717627264466229625687194841384621781957805686160804286154155129163895570247685528232122352671375687459808967770430244765100407570994416010732719706267276533615795490903951935756891407586049262451705476819036946976876744823518119020077841215498160843809658917313288203523257037814732202154840972023635761782496903890754624008574415113374839811002890580020955181486056485111589998677925964501414129091489151185690871352059870814271608178183650893233645267328213881362672939769092810919466599719214172476412723001266870005862020198188088791528566471427717945263103105705596236117145437238648457534359982372342168948874470891385476161460190264479916121870142742603043580910911211736482654511773479700783581545860223899723277189651802982729089370597527457245363674013298267741510545439068267341083777255673794030854282674984298366235905366386697345851659712933325520968123016027900931991717785675364902334715862004962281140547418030491952515984890274576087471583076530482373544253958227014190619781127983807179117056046506666780312703864062352606185100085285735964774037451880098444661206332417977929241558609182568525713425561399183383999243452299877657224846746999301481596128363503680868174390370985727727683238622960912075471411733119411926003440653032653054871300498450073656228123864924124227841375187810763492694861048059202065080968709920516307595348481168203116566916137482838144651160811129256545852966104953635790514386159919058449249684128622307314221557691195661394886381192930620274974583657890632370037311753325724246601167298735675697468390932016001083360818456845233403997223245757254250359740442086839024380278896427718680969486578348806707154623869526448815781997830330555084817116187824248274586627897981835865701940272487781161977549005880859921085733005099502083986628145306669407514263810043315951085305908153979723490365818671847111335367271892897981301911140786685914883735477225040929987803048602124822282119650095232645405843979404374167277602118763061026802870935697273238826385524410643965481935293367275154478387298755779584908744416479667883713775382990577471681137004128425761066448956416754045523328814389470582222556391030536339070539829218791430116828415898179138779298375284013747850754853959433722991884061565860344769447200107411462087640640254973981565711711504269546459830344606797944319088633035236019576216426903985036927040794471889627424487724981764975239144385268502063714650130760038705166878382977882103741073150804818579007602193330714827000472114168977888251199978208824968736007114711620987184895638092734094398590884514614294107286449316224544506086717735405373004345809163724675389170913489401057116427147625169178253172902356160034777541753046011034299148016383569125094799015553804911615861966191467665561990372246465695985907738622403751610821898007708388699055131289395835316046264947472003940780248096612369138153123546109917875169317991994764793261231679567579670390330238951279320940220347489135183805201983501334245429009666450630447969957865103895841023378940076476474426559646123676444264149413367022356613620375812708422805440996071730661601578083713424553557911365872495499659688224995622095115208565428113928222974802509081207180552416778439222463611773955963466444157445899503746545258893156142270386977926484837250415888825993435075784118814443258341602351729234930914016098945451291202847208984150802526849734271731370362192615532528168930440097248177357765534337050006016935385749480116372329949242143546653740402873895337415671464625525186636932468314849783463392529747480197110845980425980704359997719802383024034060917445396914862442879466728710797895207864553849722100866345360398609338187120664309004733422262416003646052328137183773726193045029124935042742578605617302600718368915438588329538480698584032980454564670405251785867081587859504114833865293486756992921096302647091473368128656921870412947928879146429333877069603182691697237137703408805552584292750027108286920766405361962278438926783175230905995871394178663071155377309260147962100387751689450750857282759065445271093434835376052683964512845790720642208599433982191132089797637349340832063786716837119160498739380105696114430785639551666676362853024556653613168623355133776936370477847903114242817705898538985554738137209674216790091297949131187610770545092555841880591187511420331635346425295557239778940667957196940062275669559403750813496679774079557777559770921165626011869681457911689668742631053339655568309981321575357020741992523213553133388807902231437530019940024173939253645903650324280742916087951986573182968719352255432601489433174202749455407528659861987971589080035033440237456711699961956024898498260884111708256294063815595896122498469371689729613309385617927257898763869604420000556124572514175504703162261763031112774667753502871301016458960870081982563460043953771470886383252478838143272096630929851095586286507019908277058627208807958136309524956792645793770603919221170917306098416252572686132291799913632817853120809349070103136856601466030438401870311628528394169471326937697514122842317187398762427743977431096770065928765267362047174503836313961379984828895040537212015110027209300902654681390465894582456542701711261580068519129937008131119333967858828730966412398431890743894989880677781029321300954601245111025986988172721811755226655275512362874705780499730852968501240035314450044573425550937225897279575855329665079500601688446661028775933888174215818805711184024084113022289566158811983131913189344232989526660382957957714592716168968050725481856893576651616713826842803586283268531230523594291941588528558185097858946487288492581484066451293997106946710821727798875664665039652612965877983281079466334700920147082712880220067706013973392964987110824017618803562865468797232398516358554815232543404157539467624859095558873677325122703390307599231168288952998268247415226736532378291520713331075263298432546273228990857590387413719270296040345535405904944424879157739451454475485106195356371459855944623179861180171131931193468036713968544957527843696156713805652921805050454306339493834395758027248912709372458017103354027369865762345413808476651416799587355446828833180721854005179382195895364116495727619582993459659788569947931657275632896918633008921020796829747817605552718943169986520309299016333275206226463987473796645377530523630486430314198216376217328557243284833959259376448069298342454575307836825610168694730448652380830646924941588807391546351763476635121993565018639046331205224553506077261108711882164721018530979758797170476067230488848021534056929234565187332986375671568056669166649858235450062885652180701436663481247488180528198345554442119515975660852331907550052422857486580007699652796385937128524517993271324902880603597079586989561865938929356964150989141904628875940184975175974958151386966326243280216177345724063954012641568724611769693185962336009520395963737688887678712848612739490042842705040068926544583532735402067343506035940041758568691595555500417763882924763584064452113631079274943902799167100256263410458641820277978236778446624456350645315822512281767070173681284882076726514002613688299781993329545056641923141011386687978054353766690525041426157657893404390238762612106971159590196736693979671510649643623240804666758890627018010873812795478046167593448519044444780390489785849185789305759346476451607947231237471824576039370309118714123120995306894538958146223010539379190432563872492716069594624768627472351702071626796443259350808128960001374987509311157760333986182205082672890309030709495375030027415123261793379167934022789949290932224635490995796645187917930180231065933375505459093575055832710781584703387957108321608862508225908875645540588753054247542521121186008655031667603617337108767351697569927608248832878165166672491030539921298626465894803596688932787907526388205655046027570769141873517297879782093032996221493424702852589775363320239695898751733686427668307929080773248301480818330166026724072826359251484930448269529685254233291716047124967570373833020650649809527324770279709757896073349771837031245083633754677079025710199079418048074834452574351488445098778746882191275532330222505586123636219954138697267938490590599379583834185976687494535806065650488137006742724680165912563173151913741241334195551607592047483103272008552114156803521671547644002655332477221906417777403616265140422421775001318515970141400836102700693744256749067738747938009696276004189519150554150561267499194553990775130665559879830870321091397927003127749950358530228092881986249574115295508009191193631165883145122536383364579117559968311050307027768927213652984376336054466577539897400502026816227570493412985316556014573659267008881724216819492168227883022143946820585046909447967921580282093812003340131227346431208824565566241011160809666730706837228060326160326065211350112825983089642230204174751874764671628756601948669837564730978184635978010236131086969466233519373320311399193720924029109784013317325526727411189886180090765877509204633226447840769634132564831283176856643384531870064525396220388517191041955884112466708968223449828499352575087493836103431701680249445188395954669848960950776010103229827687877290317892429174644705935383793037325008878447143321040652932962250822921953622023777648127208152511724826797082602095617318373187544759148266632265266153633383209566048187465696274301502735653344764462729059445165874590604329284109017418035685567057535747325412134570291635826844805976772008384430639319988207836233216165635142972541334120986845181506749649682548891776952478621863967199024842616370676608340664345619533510088617185169428272307576938807947295792921249605296803144424961248809583568340151630070000247598377978801591186607209491446341697941664511378631807183833004989346484235628703003262231132610513971034836770382540154750748312651134511673948502361042502045315629412544827987601682125204551291028289227437330803056142743921744064847578269750660164391562098522099855412812254520152809636787953098704032528261722408914082223147566459753766081877686579993161867849814329229581611202829324881455784074508108693985796143143857683207799817296617622950170094250244564166300569875487045715923585574357877494621281379983529847947625486265946987182390563757679309967541546939721387419809664057917839747777168649791193164103139245470828179336821248834966340207733003314345072799941478997142946811886213910791788781331910542148960296834527446325553741972105041758793662824394755942985226045448520317380603815084112419945236717270356471971190614507083431658816133007915308738027666722436921568397087764141928733171600577459818754290865578958308279655622363720666502796178314231948264939188389295827067760767260956845726772607749886359545790381084393880560529140457853347267196110344881422694855951216059933728920049443704928274916484374225469323504069362694067453994845949538094969163288652161352312767083757736527309779812589138855020294796451384615950242625477319928714087016875626976463735508837950243115352528782199949245400883553059891952851292662559960518522091848883151178278983312973818214529165867926468406603371872216693458760723105073635224894729200368745942132200651185191792648089120117754982172428098505930946959454462147535115432298034327545218851221283574942726076465413110897467302274406127308704743884394681600271497055757278955844528955459355835295491834836467525833059980371604016192268082763906784747580657573867719026798106236860076721304870470687881554730787103785770853071221822908898192354912814550482114835532880717757048768691454978556164271424057064977940744359472933912469672826051491474245344971498936716183927864779204677446223418647801478402818339800518508378099176337804399062266617193837991425239697440447424052542536618435261228172373576515760900768751289153731655658157244551500983576293830643094769736310530945544567314811098597460490649944230221669369422678732994884599280726221411215372499272362601001740732863378973017581526845321443247381597244086669646557551799083186041717126969079892044084983914589669013446231016042745231902212613043519275520965082449723283255659663733429734591406634530143122591385567090738105658328467891974564836101161737683521577653754280345183662839620367085831093121655563099872800882740598315074093182618543685724942453054988735939617515178026972476393470233476426517855620455569027265958463736242829237087782429595688584547818871008236060955977958712851607870887366197705018275897831597580634704432957000624040935943884418527390594548908351765864025265655590942788874137212799388827922651905906199978658099870355181802908377128094566827415406934548299566370972520299079751747920229030470988262605876521964469527472754659798175844803814144691008019541979418898803818400875306411417695863389470616822567148896526534487280524121457525105787472374427237409565491885065397817057072995340359328580998274962967751806984806282745648726779982410269117170210480152308978598580918900387471414951752393106478770084474059275426921067290367279822460982735009381484365345864107754569216633083122598832126599600819335380615786050283722395204356773284251164445897098488767750577081007172059354777707268714266036029925082550000721741515098015369640551271682820855238013692051105212136052283370987773265164172530817925528997873742661769517139351567760393166263048776349446434816699502260928103254108391071301508736265863693957170335799283280411556128539152546015585338894133595801454545071611315799361601038844096444831147388772837073351050364489629063300178008861097830376761546910600939277510924729967202528678942568639264802858055953641014310261953603434511943595066491264328290531894914655339927468876188728829759897039782256178591531425317231892462653233423819213827296633999496630571468992723559728399803218251856417300416016985712510319948285836950829127091484876233490454957542779536584916707557325041011492243581402324322575129194724425905410490641691170301632496211046695365600315836547877334727051815635495428647660838164733527794456289213800868742296180666647817478135536530430325550874527280998488445110108028979059793723114064962501661895414002196177307241229648466568109884798985845331711975236611584627852393463010269634727572830051989288469212299811595319572140384438378870107137060759066968432080010718093485890558172995732568042711457169501347862058943777858866325020224481382422905860835627451747212210563661340755414904288869221522788814962406148020134353186821783551525311009454460853208928899524745250902719918974977827831304166919946154522133914604965383366405407279790987450254184187645651993375320710336137628427842242182842364216422922768565326064981945158998157982425480969570678901380694266926360402512752866388194551192811091997105026342274115961960738036492169055335846328530660755361434742675895323181734869139225490250333667889600756534253390234923403717405961353756048825241462698818540344210007250201373450418611492156599245154952529310175848222526742364350535147207447491022110065253367771821904785629354471437315076801533450576703345934314662871214364405187800536599962867514163614015879501948471064289111459247847010872942712648474844836201109955675446040655557065682671901675808602911769374426204848920550039529208434705195480529218345644397674995063817142887673692367827467182797959356438360177859336722540611761744059793025151565048787153621825837155377013513390683159409147353473623537629685881975043575403214811923826227248240664303161875570422119408714011988409710229386171865150365718835281113471310412893953865675721097974656765788774100318927267362997444728326988105683543235861068115430207944434786091970515834248474774534172991541162545281243445932679919446862472409406891578159385396677852176707174094400588509241708824988797749577220026752612958275261022815693646960803913283660028882298744329816700086022807683747961978630846402277472671817523235413856006312245979703902924499358732699697726702239201343839568433407507409798769849680070337855357028751156882427591116759357879156498074256919197618174174378476934790260197276262075176885243033884929798812884562488589977916704821593184600154044172174455468317185772076329829969661208279782706223544482723357963152098601746641838939837259186013730523784930208570509684188811848452045860410905950619659998871746296583563803651324355526271589822183690247204497316900754567253050583977676187145700698385149629304539343658987288799554246433215072396988107940023122771425106006627028809368158845312267855418415207145903323337810569173935305034647098421013428859939569748204759524928211920094649335318686714543087618848751890817714286986864844138459139421250919869621404122724446544173663306806105707459222411420036878026986653534602950557997913837657340823283205111608012844884284417661954262733721397937470988432601568479330723085457718682208076843510154469875178605359558540153528229077243651859301777991620270086193435382079982389912499270094479579121090548121287659724700083918823157674589264171635418296000790613539950208443464210271871279945507629445057859841224216950436046884958223645717639953837313994011735905974431835348289863174963068239780048686285623122808942293401905708781801658579421110482461122688586198537158810375736093708106612046080228247730574351830829432675777941308934538645940883834662801040879181635526668044252067390441594880470120596111221017232101616854856384271369584646093558010739523037282717214464098379466554236970048067750361437677469013064813101375387095642659051840713217059900773996043044729739995928018432996357397390083090579358646483361526237634746778767575175851998745539309182580359227668986354385537993083079290744230671940966900107020023170910944571094964723587811562602603754825214211487550072312556005873847997789909513859848442732161861894843316904724227317235818248791893985497689103288018295687542494659511429862858967644836410481570592725534404561342002982795995231830725859092782751942186744641289298772979229652046966220160225184318150012004211470590487613129318996768660962994318624959967707302739470875982586281654156462556055555643911995780148598162094103700238400913088843247007397755761542125273806856927639533753437314889654835282346496893837700488470078962868771524425721313344895401412151902192857699036354103145689988701679797685166779664580035859061200718479644420659074456011879045267145520149982999751450788797508584434240206736066981490354158236745262513212839315166518892961573569790859722528189469210559297842095743295101266560612752368586797114305484474781271957887125287463377940038548482928105853438838149392133542641459022297854203605993454785153888483304843679990351414971363280738024259447282676525407791492943096046090985921685471903928465163430192089964379991166540848850276376542709106642556951526800775910392922829231959681417263630090900999921342695617174204252309353265113022713525485559059248127861698671810200596728387230445098599641948295923301126839383078924279413941288241384515598752616316581412301727610291196542029866262729484911259584506665725852778870157930076362660920866093022330190716644619225188364132594414428366088454663078928130994746924946027958396364580545300737870044449383151941899636883286880129366037398590041850088345273430415602125046388457012256156851603885891274745595535669209845445441017312869870413044675853880817925301902090201579043711689639693022309836195239349409076591928623042776253848131336911626772474293598414425503040357452806970959389792267796836927784989344908724183671621969336206755763614464669908084323632499603149587966679006915965462316139774899587758150744362611776239620783494912769505423471851876339136724426798336976042181271641175821542855187939495268989307004960359406916458446195094046999568721457286352320287284971652644410799836466260014172939249177586759195068535496920005124740362473216354219779836793169385455351450722813554013409180474046720381429672385443781857054601373109472026394496219156058306236044317165719673667468117626848282028108235038546824757929004633086597176647302923483729881717785231975711722143484916366769589924531735210219289140264047850926456203731397573489574628935254936248944798817067167731904332478275297095945259480677447291445384094509235443070295107112095017726593178988857643070685080808367981096725900417568669307238026337950416230476560400399350541784402616600737632067655918435770678487135038572709611448677186825822361801899956812263060119573023776145666442089981987857458486366539270060361413393348766277570013173491590577827172100184397214997061690814495876375684669382143366921695164217833435739132932692309460467425386054065816064346249279058881763651765457515128319490030770386889208219326872659095390687544529022260303053336391012038430289331484175437314018303613446000372772495586683715259882532898168283643817774907839402151145554485683349976529804869133483495662282604611474756879854063504793016892495072078168607228162009374020159750673735826176431492221092154860694140161341728045680563603031933321755973275880853031667034582097803227168885407024701321030307860585486338797849671375168828696230603880974140054516851719227705148249440101964058871783696973507440241406605989271232933808897766718072856217399140655682579708203293042985601388271352241920448910059670620291342920097790124358802543261235998254544778820145518681471711713981712157330286391353077797618363782531904347766524681494299789612606323703027492939592378277421399343095136293454777123171779953383663189513218549098373319452682964592006628848757382513427643987481626791362774484920532243691544011511418780402502525521418782143250367950738335816426569471323386517463236648504715373946322440070622018895045396728873061834203280773232617116429280892583200475994883327841600370069142903367963946070632713490769818624085561670924103232201204469213031963943391588361630034553561330050041991997706139608611499347776438949629072806632295464763136841436710887806627517793583325484662274834853601526401287688647179501501755139470044900638613304217133664755914494864976547124179333889126117874662968007733200329282282230960391185810728127430125989203704213822491751671796020454663513239353598589745809064501186437979309467469159553647864068726488132148007531235650718413558914199708822985157966334452956928512134762732576796518522359450654826214621776839317412598495596503279416879738451578580677500734819170935903010616419969447148265544169483385189674117884624083178558537541824129488949880631478546583968328119937341859680602341569635026854837810944077638007537980370884976767554934133324002234768021539422534556690920376281857550926812869620742222789577621441603538919924953955457024375337923340165816853108058719351027434249281792566789279198826535760193756267259124446096806898815231292678349428604306263728743365641956423995594198601569107778487251412752032849143688733949350126378956378272401427563710455516277666468319946403801642871136215127041817716588711566715810398394018187320903432223612230924094520814605254696651468915378901970413454290072858366829376819835935026015926359257208898601540505086864016572808079788549314049157914399583670301781497234540024405239312710442006279691026165537684748484653130105555664735400011360214486963031001981174939550922909265422135894669474349159442592779222686550678485121110758983580491651061026499032426277529796354576116645574307110148057649383584400670205251959255331529911386497887539785268547473762974732609710925758574454742983006712331910907715905858837158188592464318075528692818094377871796624201053634174278131997265491491049877689195548618768804183871306944777087349490136570316779126990387745356605630621474915279109667231258189776966298801235493003935139545831489860819471629182541212828797684310089383211573118414337805689908521461980029578707168981293478700332264801469880554235093133799149653061918187119952962951175087653149564972840618820026133970553763453439883802772030501843034603941359668258481171123654917366312476325453499539821367770828580837478843735864427896308938715859007300131973022372308641066065158573134899588658566821494146642874288263618834016762847984750721831088056631582345911440951919047744161226307839453446059198781201591464053089709951354400187369837926008144528053206374398473148201935527761315094383588006287576191298612782398104840226140094558993139079959345213445250857753311048120571560255629677607039208719619999072519243117563434537402767723214098103910896854187099744372223390647504871621695481930315984345372385812532079403185147214137641386970974028750259994180092678026049382215870452090089734929652384151710435158354900546542505052893699899298724902494086877911555027130862900030177495384626199436578004116647278063413968680556093932586309763007256216958103971328012631629281846234750307455200112288720078839266954897348187671143962598695670491410226055945929676723693308000464867345554578958625768716189046476390034958075293580183252499307324871455717434439610434120597028716274842104105047469545141099668567127957569252174573601165495276680770179984448427715419377253342291566396868759969952496043920590350431661755135288786112342164364318176787004525176379556936646598287183750540322272434822879399796002806265894775473181392493949018786406833058761048900170560776972132865981924306140742282437104067235579263878303369672590133944836374044613209248495679783679730970956712854345330302669078080010211184977262743950069501610024042967027623524842991816836341316663230293834195832866952086105462065264099527378240763990462805624329063311886649790525769899722976755330486872839653426236401992921364531560253890953155249689570161323741303758804546483868098922197029001935764791583346447797301920459101533122391598029403639194127791821007946747439870629023937484565702089245609208749589999488215053643657637580708688655069969573378971488710542859048195924894423251778809792455988355724615204937090832889035103490667343437852816078426130609757828649370713776703862163652132395813953645959403972948897756979876751403574189842844441718256953810659660735382403416045712942600113516868891852104782053119071583115382839822547651249474687316686479000465535115236568189204730045487255509802479629603138846369370902268110662336405545558896197343509004900799428328973759594024103712037726837447151426149314724740860008744686649329840695341152921593694129180619078848417732520326623626495135101998359806458314277922753111142266462452548644675040920815423473833653027014308257155096274577061102517755093313265885665047919750358758605651964985232462566389021249953683674501515670920099525362571264250285088875058514223374487148340869172636768156978081668369668096442102219371572909841521637133668251379715693373283522546638611426748430525101015321285449337016519906654562864718028940309856867259887604615383315312392090231650151664002782884069482693318916165500527902718524358645005533250814191135534108874793252321995637236323952921517057799014336733494039065252242807143775305256286102724350461138620318536473639450160111456076490353303424479687507937052543776965586703619229510899364831084466977004942939536032986544348596884685355155829842028236450689698742590299370955827407127042036788412007422532063199758917256235464835540940916803264651153338197312043575838850778785154989619874363142156390866652839836060004984755073005051414135658834054382978200922333898817518881492083358918366783301861206052839432878000719696422904138648032332594572102492987500905063518923828361531188036776339955180630435616719889830465129511292021628191528510374532171083670347673596165234905535439813423782021516634313562577808377028113078202220913808049885269186738511522811770296071342824000258882076728463222967456843133743733649365551909624312255248605531643383865270737003393543582792381548059330975985504602641000458290852270711225813595999644794648652483019857751880807403069489149495905795363503873506482197577780303918536221372142870048553541048165030977895749362454205108103458194699798786115519492552215059618434248833744262482302104043817097660957929850764269353452432044467400324849347028744472449651719988701531838334562881874521771265041313239632412246019816033763775310519632694773167712980843645658712398973238946300200764930064676139788639506994626410864326256841946561224121766338148054782165774800482429816299071062594549079409086858576702188545142108203338751236353308895627610639756621904662906052765290213504557684577975936256058249731885952233569020004714256029055412818555253403709994582576302860055249773150344107129523976878856770955708634978874465929322896030981915360649492271342347895776886382351179752461877955340806379110639066547830183703298450975950762159928238327109270152641318591002839641122083093508482541919122577545145362268181887277148413044574560299161213634538792766882003029304926082523446927114405327563054839974785741322260387533947964942688867780074376292474929636043985171903152102025534903901274924509171500779311137260771170208821172508242657270466751198706580948388523323554297583972928542092192418493954136528574555170780715783530053076999674790551441690508257976502234322891933212450961074386405267486249836865686393159444543793593819250251034806728762366702247635831499849335606886912888306269672237733591724612360615393453295116298201937483695805389983399789575538003629612968936844442955991896224773315339243029518438326069357885251137846432679572919353305295815281454748034733214485549721630486037426093020187951424370520751059070319261970903762740294982000885324044386790232626436722853228117699860537835434176366428568115299634014673787143363620399123775116472418566884092218692393382796949674896967505731997954009408688984500570980614280891953059922965690065923036155281694968153366039260972122273590123809012553757818483135213745608755186143766733800058371955704905271446873178393081516352220420794562258690265064348221277835507150562787120060055930945674807104604300329340954447343376554479955733749069283851255424383496336955537731052950841650181018405547541162162213179035297024969227508165887393790304165694843737613930526911940170130447937331923185411290771316126095432827697343135031639851833941149167589479483657539529070338812850002077315626428335724090002194113994968485721167756113427635703001486823619270314261712240352344031118989768739626609210888751730521399919947666080696585096443344584243833666251614409894499350399600294682713405616127409109980229508939279838634902728521531697703803869384150587489043674843030760909717957456058605071569178950726324057861244379005559631609454278611357796904030472834911741072690342627108356473204256520806822501467431611004277822925967089585182406796493346325528776036046891574982717952372221740080434532648903242656304956800122432101802272684610596902835056667818651379479521400144490449254345221076168405554197391689772601500373615711694471568757444609287974598821830107689227773520205724509081871750370787685413980931694749802173639291145561670683100353471457578326452224109152252061231476981778397165167837951824998462938513387482326253808915412627604296128537186202171403265022133156623034156992551503089140140061701444947291305064866779520867537909607552730226015593530501251302108777465850914193367347385932459157146768767079579150325339021431009361041479491104015808949909378401837728966936338362501510159208902460431387127763343937272892361901308641338441364764219675657825131752395464687112600847673048529417534381988022841689480961238224492388132874958347707829832320699475335785918562970654456593546223017742063737286212890611125304506107013748572208417800827787620217113555287475048705228988874893705286234067220912935212628560811797928444942762912884415786748357343300217862712616471956790315378049860257172297907809773241114305248514345611013427487492159743278766891712849377701672619009567771183286385477092777309189052912922158270344550595022541295028755794850738867355760571010589433073733272579678375684879290474118655757449970026001412923379912190916623783747954348838528438443276937632139198753847439444015040796036374546327770276102145404977320724549265621379387277897768464414666555126190085758654709786341347490329398021639439570411129591335900719270941462771446175011906285821594275108123424700090535394714458706811402728890789423607061944070506988068352429037918713440249823965861364351103634114624190527708683104586786974533214056127820333448234578894833897276401041124308031815168255776537264394527424232451883546781102840483778589546600539353043543420341979377523641125256727783056121097273255435256168810563703146670313938892150137851919005093557145193573460985906972655290641863146334749075824495245188262681039223882494302126248121493860625583674692233236849779338197736020111405125939928679512966841536697636663035407604453412629496666366049842130364131797701692571657887951393919228787873444459283373476864727233320379345225752911465291257078397250884577462382500430446714590468810012906556099507738403505702126055792069668453396848579634206528779325128734479179942796196569182062597363315250860512106443062316797925120642774007506519934114522442030738560111167059049664409232297468411083390736626897517563441444378240839666346853467830380545819388573097412805421809469027611218617813823963097062774566850368619159949767265345537384211775877855621807772638005075560487887989729959982538793513373820109671615670028034491478281374714850982147301973989854907490778303098913994444896777460865805897761260092626381601082176770972409189703770815790106459473633162315313088448619695500727680748692482114019065450884406127930567047000128434372864251660135080438240359434594653418311972484459941345219328890515245457452422377645704148751084421237913222007507693552911627239195970011632910477385748609330487242275557732042308168366871067048550853773116989259570706097596866134853751263246594928357281164233730238358656360262680799108524055930603222371068813805647958056502954964587356245688900792846747201121217337361767552707099711615537644934786480988940988323724881207202666618627667985721592158342213958390055360619462849498743399386929957542136532731671430581772161625780886841381736462687203969267009521202421108622648271369830624893436511899614566499525924720351600078069250052694995577291849121456481523903653144746523014693531903819004637357642145283746483939320674436341423734368798117619973706843561334066419617374654874276516434055632085157845496924199479722256176348360282871467451380037372799760437459149167474586208044302320509180298242097474532849287806263104642799661498834825353904834916202013186413646001641193576496824450974161631188745021131282180645684500531842616595078362368686911374901091144458988143656290278053275139402581860689507895627501798654046858832221305458127554613867061420627297753927593744325362688319280436101875095923127710347405696483397606670690319432113631887342711563469425086060356621903052150724522152641357713509865498110935534541868262452476861482012773429902423146781695103334025398812588603486433001628965029548183246151753745033057446433802595016538516280941903940139210198542231593805535002406425626495069487104845039243346180063696305318798455464723541658704968225315913541444438297174550376648722465416449928042994778611517492329548701345329024566718420989864519122828297377019647979349220809999956993171927520508506534638426771178975405378731024413077210013940509621139082175327231705632258026957563931050272571443083544105936903025279180606259468316036158239245765480240013649677832686799453588278575585388472213078889499534645723236841862490366360026705446649581450240822675799966906014811928143652040984601502592571484094609878544424545597273968233712687555059342481489111982135296586507347763798502228779599285804295942512124005295893972512633036279996041462397531946364544446114187055857192523039574919842579858849208018624004392301424845420628542817393564489471009909174206460805647226666488695828917556962317138146198078892770611990989051368902093158882314367252746435350848940629259532540074711320271397199337421144499190540360484474418613139277305751070837755241945221614691151352578703078477462683891791890210244393893411109140087390755018125066358363481879870915104481135080511472073907701356770641305793943447954250967162706068325935068855626374131821656061383918026411332548950026155299209677123932914508476038193610639246612312453721638003000503706167278712428782969873851791121509993484169674952689317230719852030250796999828404310573989000201341247832423885846759188213880810449178279167200607940222971526307343140892187855766693615814703197354673269563280902035335625879757199697236048244877722580204594777744489766539233637700232462587534408267210613700275062322459448169515211371676321134890686373595479668496720343665126324154952972612388338461612719968940057580737190836413056812995439578972333416678141412007579551041059193268922694030700208125207070230054340333428778169718234114972667667214924413269830992770825626180270052199154892174632263948754655014722887964087799001456005211963173885770090230706713230474159184263422744738519807395952222175396627662517659660824648919431932428407806726895870221640726778797812750049802354963269916133407324697064364515950867759474482994334190729215670192977294136568725474567869050874924998099435340254073576551444770465884999624787060669453388165928472879641223513675550114342962580166022055942989842471046161219481870440022131230042252626237361054758508819472565842621761964557309550601019804017702127998590820416837389561195396459070409167054110906418497544274584046641006932255552584318835429032323805516470415175831428775372885678332526212922995880470340509233066637208013928091529771438380470338975898887292515388713219414223265501784779944868386956044797335713776438985356230996485336951563061714417560097559161568148576631998237166463926758044260371928456633158497449483677258707542714167628299901696036299361544233787548171510507772398308382098681893586616361282242927490278689557694059033706186092298168364217338318230524556019257187011952806978266460320239758530928636311596773259904411273146439409658470600555691195265629986613332031905824034902071112502147626524037354587364725554107674554502988792266586811292214967308578734129015102556980531702199043191037975646272939464023806993442714615987139333975308823175219688887637080983565841071940308961825830186680731547995427376425973252364040650310679763513425513980378266761515486391108810427935659472701846015412359704818403713803948980708675911280676266170343021835226940545628179590427110544428325603940443290676327757247684560614458649013446452403380991407600744423907076227922565420299961754192672660231513292392283632886768801153975868688447477068128984441733273572139753884963072485027049140096853217382966304823809726260999505692301912741068834485756176074518216448181707924039164886911942649784645577628025199904022307799398761129823127555706372420108514266687544511505138550960994500845308024040168973237899684532786911042672275033656691406924640238681015682714337841426274185165314675687130513694131669052602191052022072449761439378972009383446540199376878827920998220350818198939096516161635993226290347720818926097809068247153309997983342217325665830713754479618194590111039918917190102511820535200561063868332783001986122779266191619545317259042728965307604103848277606400874444916375532182605488379619752993131819145467707887177150355313261650305052362231376217634379842384631331818422529648244698433204311794047810741752066451805624357250172376739854239063815252167667267248351078728710390895589590752393564882153517883241354926126402449498693323654008778587393451851349109374379661564767485825377328222345958192368005027043505592292149733446338496466808477365269642278140911532480744421326727754770559573818861236438607800180606139765463844714526510994207259504357693895942024560544922446115342263122352258674656377684900349329807420786876905774749726802995073929719746240587075410411483806135324827606058735853313885316328905986652452153040724554632972614575138190648127713874627524053169684653075282873995173023427506325410915027753985603078001446319328445943917249260470374143721029229518894085482844079938185214617131198375561283784631934272082242224696047188449282729808866368859780322380394427602570788038026287728459808398696408010334945525580620259511188709227747047152647818106746878772583215127326829746133551695381854310260879544913991867712299292021435194108861857382478404298599375126462904525630774409884034782882576935916442123602107704888151824610782850955689137280503401525158837008993578586757612368362732296118264820096405865617896561181865039539222380907525191994451150775576347086984523037330390042144829101902187935821287508502978461482902849321939977542182366632020932838526501512596451504286503382282333626520773800278697448896818084051298580457040621252654524108508912092341065956554547716626335655420057310549804613269868912257345350489301949056670717192561774944671073887004499360813952831928104408933302646056653327573806899310165797312504305081555375766934870542524287912808252153170534234053889678058453086057624064594983159424956142874002067733315515793299449398570787860225763566899913163866966119090494230098996551366018012522885038216377052547244672588260780692447987419448371636578288531869883988812138433076721076177718553113358869688338252942146405443184924170929778193759621896488376103020065859473376889187581244046231093974295089248295104573447485179283038705312777748624557203602767217433974437531406912683381079525009036951270587678089442816006234394779088995758916025831472798419509592455841159138654485255211918176938195649236994896652312098468204585614679881396108653302017078917719340459364113230286587948348803848914597552955619846639268147835970265573096596594749827499723777672811476658654390092535917427890640949693578855439298596283729800218190674637651402285608312144862337629951201346742117036136393554690470447898587005332989763236454113228009777226293604095111959274276705901111834475286660406594670184502702801794640921908233306270872446653239370088554626985762250299110919513139256952950238809497722456120241102620118150233781507000458894486860977490619849308320965914590461296787176773092316885444320090985151723335872167200471118459358247695511496661653956260095784285692404786564960467239768135617390511198859888929403346977499682085037526400563148449159994870353401384619927725116494841454034848896137327093224111376268764597858679535738221773829967123429972280439618730336510751862994068716727001460967426732161865491433766742780432285950309664513607551844709082500963536001656502274401808730393617716567667728832814116015136135259094371725439831781111956720245010143582580005786854724617348545926393421588483936796036799225402059759216203028955813926345426393507934452233297434774840369253106914818392095453218206497080146858737659113447235930456487282287777902576059447000304813776032400853266562592005638409404899301437294353206902547822295325670246855554609305634345924129835823469452931786887645504737733798909041772015863073212864785183889158305388552345206868780244561387813366327570932465686121447886981249222757885662606477668114107208466802052482543471164034778384019537416082673537411715333662289953803963242046901810586733545158101189189534912887552929132419141342997636974023778415079950786623504391350890332905220348284284354370805640300213663018024995175934400044072139344083461006703024004815931302986392666805955212066714376094292868420452350527997235625189375871410867790398184053759140686045544028969783471099745076569212008958589015040170692612643547877317846900559166424109593231293312557544844789536950986176616613998114068559048523210963511164316956753116951723857644931086332203487197152020292129614762987215920403732862492563767758534988428499892928199775813974985334366809635541834210105725470465756281765860039296709170056641161006723977087784224289162226084494214752320977744559715463610799524960112288992071408561126599824886444541792304682368019967692031413839426013710845834579809058797800697394339281534469023391838197014181030245066243587367438823288948769817954789653345978266908853850073658895898890317791387047246519286029246741954378089016823353325054863128794348238678514274296754307868993403072415347044891973989288125927931421497648126133944977929460764765292277628907441678080411681160476245448874875486448735331859118676592986057356482289099261609582919170664855356284971364682798504131528042500902589618127054720747072832698575166215154901473720611027518651298452962170007769421583034130846211439827734879747286954645332510051716911528301581674671993875563589571711281567864422825929980183071269462390389107369260976804546611448370646550471933041562415762509863082737787720258296854594354311899845640265790996794296724423792702439902474292223207747403507505016235045309645907491467420018566833361983316886644210821435780802016500001760514957317413440987775261008682146249987070275971749270244815763862157636369246954139003030168205971377562883679165934715777672476598913514575850893852417081113672603050105789569400882233006711042753311392681548577182873201354906750649078428872393336390268971695014582720040977860056449231979978720008761057127572016961860471830477785385821363244357249814192873918499970080304301379890081744970004486621510815721541764277136515297292862012080397801949917737339279264924410235102730169895261528486680088695974647224135900870830036279950995624181976111912087329487890723225848543903573858259089166761305409209861128186763498761680895023160216729220992181967031139243707871719427517465962930184556457735137973990230589973077447494627243835374017728006478541249019269765775516101305817722579123803848384996773594992848939052226291959658036617785774008279569182255272148961305376500554945382551653065179300527700946400938548354698615416720522160870266301488487097757910131573954056310814422168140525254412584613717007589429362117737623054868066334735292574723009649051731233644694241607489170467669128572405164583455651215118755400918952295943989782503008793227002711611398387020553778236358487793000685001879762930572329486117721940970125479492632724265933395913206856089824227192345655538007569959778443485495052189982908398072325675677857935317575732906071432123009417039610210381774865258682869173161682614379748432567395815661287379549937258609503078548386587089201337335220570425843689526797881561816685911395884935833447785393533012194520466081204446809022610509770872618083649975125894579583368923689873090138981112145297391488566327138635366880297649127570357275572378068621025696916197210947220758893993337922129292561453521696975358249538158108807026417028151773068628603966280622487750717054137596909504661517279115942583322767878379578097475367908332865911173028693217759258736795246465381114609906808930053366917802191680300522102014483925222326165094455201113628477013089800417073169408540214476092288194174822720925872038481313895930676071299712268778073715878959007624878429050575074087977829990597586933199484442209800636897595369014095411788560505226457590858661305421481309608773000088388814566696570978339321602260010885366879207320764569970667828980745740057809501283332953767644290397797046782742841699405433326597569134819149579941543381851530429004146445634827749912660535439557133922099722672926970209399963781884132759165641570893943823809780343876615670812124033489038598802534944117009929226820722972848383445719603523540240690300653202048626464106324749768301329930147802948589494450146745180668754428547714093190320244229540054114898114433089967821523328615950775105973782380189631232793809470974180901144911189881827642634315880806022403009550907228419256132237285974149924411850949828293778623034058465956375941653351012486003880742381387175253391462312281573540267447218247852432097910499349223752522884658768270316026040584403813315198555730685686741438243808234780459977546312994710676280594745800874067054701781428776958566484056690277852422693787665800423658699055940447067027002044978015607682163684341348857488828536965061896031671459619682659914685835944492818173668792720631014287647058149823800386467431845329283855545234345123337196987796651154212317355962299501253908188273211658838640388870565157661140157914374678420691562083037508441978111936004487279399795932264675199807859271306957778529833542395461071917028093316438784408368634975643873972440141529201597181006678737431068010747412323061182145628331323394094749028270327929734341528890783126099498845334751150803461188345505547515810302274369065006243334642420739439636073481621269475823537273905286677969690560926990859457042835412370718697956369349559985329627578102930857046798524361080764534743942347125102914711381682705866876922958982677703414788925740972215572661664883347138267947380761023776785705445546956421620966272079020891575361231397113364066068016588705275366801900756307621964735238648511189827240379418531347531943369604161859028722823542068537821402291624473324266038094333519693162396919770813885284800954356424486200213739445217386769926985533255071153496752569366100997180298435700061400016891171184671337486419758143496052772587780850852653143317573655292239459861312433091873204168707358722450419331904581094888965579326416404919232551734447979339715985113280086041336258291757914743939160197292059093438427113670884708959936935110947770301664821144607184677501199199333158144447370988352883693188516873947359553233819302737627729577849379027728130753040162572194790451269685270432541092964993316286740160251273533082477822355642061494485049861355111729165764567458254270146899707636411481785617158552259037910083875358508561485125407320593135387199235247148018137294647757662139222841711322085425322638276839840345777167627134295214627082748867103121797498699815837722768203698931012210400044239131078790616904924534475198833581739450844175511331402228025794807647603836737034045856215270790740477498137350240540612382472606328703735560325185841953566399466168410285143026137127638317959371015346621418057624910911480013220967992405299027426478420099864668796939997503865722559680897572382690570821317853460272119056605537070124290729808175777713715530112452908951312497044124199273766726160469628042838353789611523649040566064745542293215604912763866204819492321312863476501193289999115588532093302082101009492800603017852671037249343330675658171603513292239763786323550977370926644120431107677790947830639975500939358244722709854532068316679222314785140487713383761801318890017501273805207108420140319394673507651877119529114976993296849018999003561743635439994865251784908769519359280231305554167670986195363880530302502478245699003503273701193404030455759795890300263057110400434667624999584849171799331786353622621691354417771383180905350203659768512874339410501194712738024153230092310936138111613599109586783696931108330862969111546077397630224706560947091486849273262969644213933785175769732244745590534195584681861166081389859158427952408027982908058362316225923990972598980239402428608271309120079456962062950540531970891410107949986162215859504716036606062036095849267659001957418831037694893028461010383929498267416178830736049521608433918444782843895662308752842111896954825166935730056646140077056511468809797624210861091729310140218364191861473437401212558121316858345974279979144286251718765295782042346377566833017555233517547239733834974731622349141714048926549042026577380018341213856896796005122801430338947617503742544134012975878647249271891800665276430046287633324338018308004690469381115559626648526181106576887610323339140555612238292061688618124210691478118517116138576312343355384663595274313812951420762064581503572666294066262634062166602894804260582000472770019254095234486939717169881058408120864604486211322452210167033676680158619886752933093313509673873906746965272142731642082250467290588315197144920317591833492320695020001537643630964766823899501623225089793943989447818969504792368617653009521352537868721153037699566796980780909444193645411905927665695775847026803338758017154850558616489617530106030023207754195661179729087366516580196680297600563597249802397889444336046788118822660205333953154892894256381942513616134819048125714558729111855724797488240393528297639799557752922711077815300128416311187555780216716179039227674175279134617284711202613927754789088435690794502814178701528135468390095383058237494540187335565989661286327044509599937229020567437144883083522746394292047381511602320552883846838048585864184601946212074857398645485158138713104403952197293769244830042432572362339555553224883065402501467201858802348031692512467793509594662502077526764828644273184239860333437730500131769458438780846384136939570922003153087669804524867495306002719693980142638147546136082381243702867222213767385007056052157475763562884349172338667524415068584352557052381927048694751454022503580583218183756315729175262755689255682345071665631264733966102388293995421321716314047259612538192622233465971813327780090591427956195438165137919956956437467171844306737294797552909774342122257740677282263358678365127976028379101009055907279436460326515022769851249341875919018329402536159816158040359925198397953167090195575629489847551569823455211619881936306399726533837444992510886339011187311227538128736447124934899688541590360086942978196164225651400712054019223587803530141262033900001537688284891239027554210000550224151937529301550625524543693863855329257794185291003786141519481071469618128704392099778138651816748500972227656240457935522114937693837197319743212417061401401779434703573975401743037706960423675885901677990877498170948249743567922653354251283017203115362522074427816874897011363417203969258492037156372361028546832893073292333842620180284731459396391842671360595873804911669175023945102192187772758230053060001010431396105610402989016819553071131805997928510242930872086067553218989994624244365458679384937622527404422385109838613361007391155659642938282802469118609804643700245847532735425158509331554203833975689139453937676496948197542798466899626377563832553152579304293281823837334420076279891161343975774706537576710134787226950072485238751122107528182379371011014737277281971336512567752203275319126215556801855282920848029377905365953183905208319282149397477850293964818117710219490614982707291575829433539405139866230691222597605782984749062095837245300194768513599320999916970058786578914053673966250313252246052135718804068881395035763841526232761038622294343886359994789845169960688776544558353401534406861510295508488952585487564195587399899656971724236381047011210004650780998993933264490071553673383412320244432060522614486475471003711616319598713154501362727175554166186593378034916742852191399586139593922072481920611291149601321806527238470100717877308053347386619895662827505174684609289522101398273430948421443611900076082395223524613283165726679778160688855603495340480061143330781072157543378841362382598217810047357603517005176296468625365141160057033430103119989075437303386639533531734196508420692516588698403112495142698927512071676898171702398317107287401712866986286564504943411658591006740430643783442158120320683511490927518012006635480609062923338482487050504090577329008832485848960805729828271465032529000335410123508596334722527751300900493690353258096382346471727920383961216675432880929511643663727425701372661730464940973175113189824586920296680081296369015883911451041115131395703723643499805951554479347686558574423478042966082640078081841865142767763411874705831526036564744260482595965475901243912351615608759315817981988444046576065868250908042226362097866295318475800947668907919510187784025108194735595238536415733538263370363502432426209349791569134606159805876854783768627508189145705398808213859076489054479798393698474596142668673092364465809170644155374757551901174826112625258843823408710353883396900802950259541196828741605177538563940315678053421427474362296995960749795553775971569962964605734796388971852167818629891600667926332278877558547698510514725364313756463742337859205748013771162742611790911124358369007480142272741724167840475474990418289798329326606819749696659656188153704977111727312075821581910153422310595656564269833784866665847130831378776051835525078226556710414808592582740865658041716015868208680371890948177125975520962681941109432204975654502331242454419596495787119583942160731440247771874733665170647096295248751643642344365506528510551158317924713466977568507084751636507487310026784695992431947320877117869082123431822291024105698702321590316585446624212415542337341057383330252092541558971010095816704498739135981488413806486372594065012604515504153214658606577875896780322053637909531905979278043153401187735297068405034891205428208516027472801175688076572297620784884612703719250747025387027467300499107321589502754399097556579987705065438824132277383936512600269797068212246630102792918136916219779350706950311687449660512279677585525644848549362256871274792970555541982501137558440002610594067404496464062713861293820347216139732271337849348630937778544266728079622980035146052066987822870345246824457776429669773413152155586619902081771581891698296171978942609654593003431300696277821561703326839480531870956094222756741521532677892834861502462079035357314122379451817525289995949601244592526298894610885048399569776399475014835610657814529062059084611932261421650462900265924001415872707202049361021076075208992370138548828817068553765200234167073221736397743704449549132411923880582395844892042592373562069861748613111508571923097238968249190248341765346311764484421651379311469788885934429485150642712922208259910935172660322668459276191470882243330315765931422560394346621847856831066084021918247184447349285253043681520378871777142734608804534896491122154288618575069578784797728286735377074326086245470283679922751669878743717622256155279921120511668722674148106815709150746904800608192577532452952125451544659925807572681641568705417398698540259249855990388875701731744633429030950791432989256696919391274742122211266249564438619984936454790985632614747765667461481415238243869410298696035462985351315672335264969244953115026391949167630721200452907785376607634116208041379489242593459652821749110384700793226793403506559285288242502660657087039643735362767469101030786888139644391656788507454942053500433321933184619676678593883650085897487765231667962012624617694038258467637167982550053490146648083128764285121410534919633500018868161265340557391444939069972888290781119445876245463178460273557154664235980132692559193060491541097161040649679003721052500331191625598263891065521477932616992377005600100218363684378041035359709672308711392777870999167918060596317847266059216076437882292534560107796473413266951194201726863227283143741949675591557149342156443814043364032713253972685182564128053633502815741134110106927536957684463180675530189111069508550240126902652067299850578233326333638535415214945116193234108421502887062545973710340581474770558211357322006020364335540698313953661976116242392056440209333647720315843679418175336828991662471979945310993616808312856803273080940423812976926784711929067148533286187940005784098494233861033213606224269013164951680959176851012140881181503940650997761772195925672565290646160057252168629867319397585134254857870526993370051314311327091120742596994025777999675656448774286728863052878852625412803842990460272186082189609722075603525286285874232442946675530697009735983625396290148950862265521134934550070497818652090517022671167474536030729190887344818079132056408891082546068969517363753681221574776465781275579255793517818668035458714043153677217333292723179985518405625830639728357765769375883429840032209018443550940650426850052865358145638436473740831318710095764591069824314246541754465165243949607429261412124495489560185183780884158742074839932570091278460637038085498095643926706349751872827857168139611968772044894812717001924921980191657613459751116724238351863193954816070237539630869584255096410861284560300566314915502250283386019496777470136537469279309175446660444177140820256594619420167966634802592871018776714190943832525582385391657259670773770803778413934793695304626676935510116360739632787873276859686754731469509763217888786825306559268799204057655411952476476446949071408224969774706836998062527093377416948478284477296967746018948603300292528538972911897800088568558076105120633325393555828714210786036073989427704955682858113029316941865700544503316133542696697888265824143462422409546248111626913317225580733900156372656024402797043531971407235528441175878916915402447148213664048873811048981157219582066591754796344866781305033783025864598407304662089480984344256544508353694663396632386744812323971022260304638356877844575242211212829711782637847299069111612272894892149907470085630966594969828417996952387653009060988743670092737767481685868901675618698323192494019937590727950036660623993283386719434706180315719875472368584833875907479981048096912795332363216301184233591083807414013827730015611876647050678602616554271547637572684109725949112287428137218088031472303411798192888897769940441321614190228813558260091099694585753133914837192388056467162374767067243380191714687123362032996466244136724859264556738778161478605149013412548797507620957895386183519272817951194275824076606170615795243559991038920032297821005484718855227353008941119802094628429064116070138399048373983310322293040031469413440643362975887493781439705040145446116015550965065200450850523256905392422596544367105838388267801429921129320093631804094825266290480250761808594680929162189680938278546194677497624188769282855327942812193470383463457234574230506212774685170258441833986062953798364121758954211093224773517975827911697306220468125412273227281542637080584832332118009284803778060724557404822245274549672649637253853164716841098793494459393078954429766268493543996282818473549894380600822810029042263662210225992107983849628173480676656525130557601818734157469227897622830290871475828836570130517132137446278202139787454119437506318104165708224554223609476608077796201058341918437636366291155787627956836512120045152502072750648414406780562368348442441098360881176062109203535820211261082762167766380861173767537355923810955108763773819882346441251484828795012828731446293501921007434043459430142693513513829871676429529841597461608615629783701639187886666384702230310438991534037465572263252354655345384906450609593983824886212987018664276787452918051430685357614588300754548133405886008059127016061349912454635377573493247061824613708191256246813821481641266369471659103430796027055339554421178403414682552491560116112168639003386622974552507670666045260914474578286682459780459844741695483705346610449768415400538872941333012238242249627953344114852347301105592838111250253897904916970136985448615511106465833700054320349346497005065639001523311808905425993828158072295067533815499081833681268344160075619039248241151312141415816683472383282626095946358961020798232454629989837311451228182962363091320752554770593146647526886984825972358992364038110297701983630505532837685588971061190451953700094171704032142892454038018832067612283673787097373357162355661213537538924402385822521039857000760417209865382481693640492111980558911236510758114616370307773655156721036951845049377718389349690796518762862856559519629929083022761182060328602594011381643350556379417147016239485536421321584459645812476068761819816762804178343209342579552291926924973779267700995357005070130134186913978166892375232346223811280107175663988257576562253374610302302418315560891898998281683853679041386685039349071840959352839715007105000573169342741594111571568117458078434902944711963857166997660842022822144358530152561767789880058787906262139460102420485059934792054585291492799885680303727706285974830807168386213847285006529596838345903170332034797492129852612754040851031687032141314264796628487728291485388792225557658663432554167524153429009715752942141527182002194455755034317545648369032882814347264737495346980829375834507798783048060351927302741842653393461355485006900657263568251272534277529332466359026597734252273585348596207268055044486253089073421431883435870957656424632048289589793065876941590946959186954877465356972038545487151406866618608683379412535584800485281660235895667901964985275300093227734757394480743209162419570013649979387305987736170900837380195262879284697729496508551653556043911167266481625938885677595877015550807073481883399525643765767360611721924143003428997991507120393778162177848467031224603304372126318389364192296381141834151246010764484165298467217189644245900256173085165349955813405379039436819276677037857644020191976314677888605198822818270804510056488306091934056027251288905602215701615874311191468750708139851882959432782907657448381382498665373277587494374926654500448504713912421658247327638498704798331356570004622085508836955029859378053068786473343636685151315656987014881794746263581762123802298099740708816004838546387479324380608234619947768911709781423420986544592619944879540637245400855136520824017407020548962318007311354322344224908438917626625804650552008652710034346168990813930633123730686934200941070936254780931949178377746203199732642605227429589173975168070895277098662114949821312777095198397186362767368408693784012680780367673096947145190324658071669197464689385864073588133244776606039918032915541344075909055840674661102511907721623864442467940798525135271687359750727419378864922973594540002021538319060610597872680367200858962035963238855549701095480421003315442620693583519810747548934090552004659691891615063320306283947196206368532813964688783909155412657463301844870550473469922692798917805855470514961343541893051929734113963409783288804418630372232438379447391729762253596323157691563342048227449405349754786113399061176643245388931924886887555219041544356810001775408123190989698272461794044516512157527712140147045033346699026564036103010705761805122422785762217123297089674383645326438068768621622825352220057343870730797404986919075482899591699611351373583187881164662506025131950120354795775804608573686743289722633439460970035757895263835048002789932462179158647642130395924151723722869943868490865453141736568678569062292170918150354538764668009010763704306915161188473391304108157460185705893498022467202224676144002892513251831670567959768744669526085483435255812326993627981753864803338552006587363034195999051477279501453943115746688579763088887211987028004754557231640181318352163245376431260514674850194661802814214229812690759230228445258062454453052279430180354546109636064885314872832232330844202174352222724971002489698863772093362342321847628649918850962089527051619070167566700493266166416330663290287869400972153290788491452282528323283525516369175500925537830662654183726167137555124553983454370911705519802843617155935657889480523368186511853666984014196043104722512956821703153025546748348287187036828486040735462218709459031138472744258824952669709821115392077477325841072999743021446465145343770180392236616030631234189780948245149634374925828840076693843609236919053601751491796602086177159097272080050460324080064673592375424882906997474295448186263488280568189382609374932088662033586752304354609614961066570017759198977087386581490958772828902421786686752618239099960612772304487080651883489703435637840453107449502285347229935824042137647391807329324040892623744722288063400344656045295344162538106836854494736065743537504711580853916564585873715077865512705449289712642214191291736569184064604445751662094147232566419122021522908829013581290163500933940538361073158396729005802156679449296675958440317625510437021390589832884311037200176767604616412360695843931766032888133079776127256147547515875700790260921248410576230564886006475983004114083304188253315159750232629360499912942549096304464029088544788602176797858373978537310806966233305979167868307083356601215101676235321137885212299820455958080276982770878779642672017148310203739748736132994688074993904750905334342019640947422884515894473603400350530333605137818349025138987781020932660468359846131784169083995016945595487658784630764451428194915634705990328718727764428085727422189413397377310659915161602736067966024147987677376322086318309419910540440943043851691510946848798770188046417539606100501107803785537640995260049907170482963301302052321474638927333567512810523522471197495963380373749247382504272676047558620276214317195291333299824929427170118745425660423754756716401933247562680021072382380844382830633260221880165271785796063089175416147282306993652894675747744942245331872276789138682875133061350802142395276939436610506056019359912898711680603117844324089532604483704655382341868567043211480619198260602866589664440013998662803774760479840029201171475053520935223020348145760889516062688711985105662193743100005161841843486167050632225323186180935309243049166634220878026664406704136205827827228128863532024443632926309714428754363124226327138246580082479047915515099708985312733762779731022140272717814856199101142636284881579406910609467521878946685657860300251259415323954839915744399753246573908126218312686384788189090368949527919944296610732636437955726117850524784759165149839425700510825744068213848025950999444675610405446999507564188356869646718210676965271157201511289274818842705208219586936194894419923349963901173562381224209086847796894371936962818200203820171426140232763528694713895304712495459607513467950255607677551720305270715717619773429371699323327062404863101089006932432688049205212254001944211688807872092902018889511844742779478964390706608436386774487023171212943333284126942268789338546792735267021258080640605156594364375806037262919671186624206624633134593320193696254224978685445672919437457523586440850730543606019081419048235026229264431064204826271445142957293704505602341594547796311341743322847203979985201514490326499757627768347664155712427896819513012801920465969045016684987330973754526408904025338760096084900300090847956234313280994117175963346909108285730332701776492219655988921368304289366329478117888678903922682367583408047373579636575847324085017671843856401279575827999717637612951975131053810498202238669071295545490383174119425721737276768640906311259080928752560292982350280027951354943349014429542016932376193099466376323213040461829299949503395656896895820712489153307878531290486850968199362872562128477401226229160790580953067786449604907179571056155087556186408954973556326599255836310607346661816822145790810133445243358284255850158577562282693258104041467653345102871029265566496716739786021570600456135265386562110128993375568844108764289892469532301506945927530103766865650344848351456298321513985559582171569584501262106779525497198515495778603568716467699342464684408374576981982252287768215454839130945614108522527401666666419576994408801509968460323945978965075838630080594383030923985003455657131037536427695494539881266967133772513228453234370041763712091725485850633694783330006498679535177764152059514701695643418061384811528709541899294829294067769336764252480701767117930393836357330132461941654104737075376240436402152503325858392911594829713669748471614104132530002883656781743151642669190866947320493811099886014210620185279796852058695147737718771240546480133576408827859577079280282597541450812591746181646853719714812007476385535264455443487570729918302599753847739261942680206652679926450240485326075337545976172141790601706942023509727366153990052696185807142332509840301359231695370765114611840986753863117998373363806957338015097968164801387493526713760825130652136139100866625783755703439801090925292103114912402223633579790921951618921146133527452900492535996252667752366114309388882442925824025803822100093130208317877631916363811198001684660930215340402315589444857582533200543954529030303702455225034920751005945279194216749289041832026525515542720173488711802567948389081253765570368860111892948266516995898088908267700913084475862380932978718636162826119863026449482172827625816322152900842908808032942822946386573757716040923221665062390579951297764683901196995863210404171511480322080166421523742044167753239505121735169084183036996635541530232027768172355732593792740047404971961773729307966638216905897643968863843952631734459052417142311568145529886002174806469577780647862195701771295373661184702526050750548266539252096223787324028830450158894118059582498063775261967435542802229028281944890732197361551271025096427047336144845803569196895155048358063221686593696988049778813997680200101544528184050354084565770890385487812270805244523995941177658949224796306938164885413642769522816729482752086743755851115187773597434600678087759642645030566265481415071203596580436322527621578021473314712627743797415774391637922421738467407808341974959216923251785454585309938631287930432705606860734816623800192849880618995923867080586709782600785384416490884238268436257454432264391234134561516273088128068527551754378430821161219844022053648065576904675109172199968434735940299381263685655922255246142564823655806565492551872220108691735348658675676545722427833382580134651398104288017628341755171524986544568042586866735163283393595792149721714407911251185402166046838902983085337070220558382475460618511576117104676903454890671136945628486081369446735955247633199052291094634436817068494234152977603443049766288596419575059750477429437502737751052748578760846341079381905866109011198064982043818388757939827456178517084069396355030105854054409970831533245553660480953919769189110594936740802008375633267975296160908358785035266243434499420463301746771557230981679239697033294419313307588819685543998875417073845662606622366587312244573186012002293347857265292355212470484092290312833881433266705552403558030227451405499811239156219576252696711179564980602313271757715577783842470247318652961427436613090265973959771024617922198841558833537339483269182549954481267449694936187366272557307320134841733977600742534081565099704912825460390426900737091022606294172787019985169656816951151624821726205263626298410952596059959087548573166854988848006221725978424063106977901228503199737617539077161482035638711049339880627877089828552928960316852776396847733023256579252021909482923583077272174300723451787682790954561509992414287797038186063290904360980557748318575783573226152048672937889820863773980101767850213139583298717316909020485580116270149706714417784773070252759522409009553574580999027052577373773439553682659822289755956985598343925609424446213418239116099289536523716770169573963408080834570555841646044091809150822504027164125409884495290215927260929058194777291230729475269098594506105632446887711947484861643220465569987327814784811577409862629467796514891538779977074176161625648895587482998290160969278958432861865502159373456606568078141615977654185087148344819210240270778696376430554963682056644519416981741399617765692792166136672543356839553382528950238261557732445595774276847167916199823876648321442799582928409303912026451593103365436981921591199220009933211017835319770791348738395831169348740664833963751807178394060152221019748306708213231480559075051255163046612296003510765098296045820690295453563487420981262960575587379188887715397062791541403606041996901853870854304711392306694683149992293030245808360845037170615331313525419725414207694306955994582192912706007293957036155247859470328672919871495542243406651139717005027635375774568625861107636589882180625469982606605438874923166325962528703403994860838639295560050135048042052655363702806259157634323032886491877608987392303586836379717389584183463480576032178005501376303443708325929096878620736894727021850189623221291006789057363838421790083329694439324018964631677151317737414202880976085193287708518681830100937215272885988832192074468875131768205132733053568027679992454260006024485532243822486184041249449862145139661721356187532527450228374818411323469681635218654742107314985690799658415082763771481699201313785582030857350721270172550518887454246841760348336210003064839272461092580187684924738794735573423663695803791087433141426396452191840174570021583710292726388004162733036365729978636748323440251697696120342127138274913300592464049008281430189684149499270589919672052046114983251593788283451566143626155214345840692275516958622061289010740636733950961059220800186789120740525757294698745970369879940702928902064085518781026194968432431982868893839822952037503957353040667445325462699734907821316614544001581970695106354482894864524746795544454031710110326470562158968508593732041734256945232246132802694565689381741189024699789008543117718715636166054208786542230444322044072296822352594883328776107114750529901946805378748086423129752099703953630502313056212131124546903935869214125657884614956635128799076784573761777338513169629666306582026597913277958435020534571829332255526355516802989981366885696169933898943827397764604707775202719538398444077319628870192213679804482525435682176611951858027673833397599513748169034241977529335178055857437470352639109409885047084526680141729826247151371730067620118146557037423030493662376793089771821342794818037277638854616739214941905103168395454386519262084200214237336262164734630552006126916914816114564136526454799917805305150648735301949185108509530091685735560475811741555150578153808611041850836808568648860812196258499144376827753532375148337871619609805375326690728949428937816779780035447096437519829982132368673716458555121329711471630288625850113011544513463335176352824275647882858611621488836817866424865847730533753365439189358526592754115175866903097059630306392815960989065573256675303223591459813069004368052838581284513527909028536139442278671738244692283232937836907539176920243766941944135180516190939534783795472083314541091236298854697643007613759173575527154598553930774698367863097373914985597920510422284877500551632591063217385491704563877842564517636752588478195603452871897592741269956621659979373199181598140337710893758049843871265020269240703424933555910841791449388225131184704985970308493697357286210688562274931257801503955344500420979878736911647767437709493930134007627992168350587134789582603152151743241280982786094944157211758252705203564146173814260868189186632753391123156763231559130607915908702927875966353048471708667326721106534138018156543171554650286325341881236294138470170466063753698946251843577259537362843533871158917650738167113948223314412224633229269313796096500803265434359940630662513374540715877918942712670571316135815938606231754830479308164506886908511124666836387565326444234122119465542542504518034044194703144446111211000869321027070129870258183786752894346158624701215587974625240189481362344047097863089751582602837695391397396150384098685218784287370914298505083296571366773485246401661251459650448652447811011673433120829461364368454578575060228595582011810530852210216328983871254535700981918684712672111915855406733777720301698856953552244492426277148786951796298642259905015779173721052373206866871890028849152671661567209575003362064247725179899009944682857089652835673146274070728250044409602182467070911275503536732155362482040277158298436094499185829637513769188305533461606803968809844544139469276846230065916846738723974017991013113875616908892793170960007783587089607872327201572903217793150115650293251401936240482818517746546570230466355089277007090549128190100363120915498378258190599220103228184532668236239666338262156419552882291130401239785122770302490573286021112122407304047874597047747959235754635910808286733906911758184183204298430932135580195322090601574159358477287769529188922456105304842922855112039511379898465667496624701033456359975680543421318066456781615119709179349656292233583569670638658334731545879925676082543978620438158767870305716854298156760508334714414023843747864914607538950757709518869645417016135565504463020095987434577487756874691470820053406364666547509503558600089287904716190399735355218641847684601367120307669968040676303880960215181155172129760127317259886346520054040513850925221363054751678940455200572378515322681583640861906564072293592701065342154394474757738207597942100407351544259271698138308432470513243939178942978888696667128958845548494336415422258809491914696395420335190950399355632849472652666286587957564744944296535465973504953695485893873991005877898903131704434063502217768841585005667334965262079037538363320585138602963546843403602043059025438221149099859401305404095973018644014290725808063030431530414620460916115425433211606639479315345701276535566676249610184582427466860287645112628257130216720494366681315980446075103384182914786122857662771745853812886593371621531471014340339194159587500501421958245880203732242391920495337666665713407120011110170172149089702024225367011696934792604279567176007412987034828599003947510000763867863981693051852310219966232579954272174577952856128827036578253515162614267718471034007940548772109341322274707088207053417795344646815079125890985811479365460295416154906841584777456919207178270113697571487502354727465687132605678090966257870078464122214893873752245516511864996663478484266449488985792915390774421174585543652814395203089350004119650421381130503357476380592679179157653800329528251207576117189027762418818671708192744570946801334749281416002953446878338119692098588267598558535124081568069353330782766835029996456569835991830876580651216331051824391063344090862799423839374142488949883367121073160111267433558927829013410117178313895472117305363317377591608832876969144170947223419912020296097316746127296259654069175617038314224527244642149126429466357221026673019470870117890966649635534333750312296991042980023013515281598825355377508028622732502506969248004512303322412412704597879915050167364461189127920948244090233749921597144618573449252980691058142849734220604559920942687386039916492498860373077492847590269740970799683407725488882048281597942463629862521731318507795131937263199955676623469944275652297126400631847643393487013699508441509973789954537103470000126230559146360854405766597383324647339917573253923568615593390574586666342168164242780469707976942729817395367663929550116996403402644809114458328218542434994547030729303094868128802754725620648188018237122508249399015358482329524256877236998981822376395033347301770785157134983866867769622662153994987100791408122614973977162087185386464618056484778399401374614091632621395028629862774410367381070890074522704975495982238008437694516459547640803637955818936521161036145522796448025823766917250895838978962960574407851375227532780801015453188895377931274318495590060816382248499618757829036121465524697051876053626353475984906125911050747673851289779272501804584685116604004280457061694538946962647553782160818177194925818536331875673792607234517811191920032791749854695423760515899387660549447814845078577369430056544086259380063413758255463563261302251142294398450325160158487824613585017204608606376865391601885252986562816942815184924538757531895132526119383562053376931684036343157398858299618530006788150666350483186741343857522785002872842104970020722401797256666483987750146997965319528576782913190892953394814086424735352400853489303979728066062437736337926430090065986539838291081563088765526837597316567737855004470876743098558158066010874215596421214152924799185650353134761623314660865916954798549869375924769449777853205272983008783392502430402160687126173912476886940194123898124802094205202256994395033337821001962741091486737352263183413643039412387773501508837410131394263089105084591287019742360450289840694848225239030929060720285494436624185448253055180834164509807749683353305439517717359915741025393819972557718265197019291920551048829979693768251063962733283373041255203914229381605689074286166026609596983269299006234817065007944195959652162943199885839700230056406255529941913874502731646077691205743021193722331578903169733794798245876844288966714493202758551956483090969463609979178310754462002647185884148552080183700015126649119212019148674225427624666114258892377747326199912981455745804043385860633533229207777738392140908684396224548388055775724633374703514927005833644972310394556379755198580592291417236466082819006643925074322221897108473076709738129122807982936972348530724080613072125771038596426581964677581355215435717011338604234657206644355148840926185341688854622040073227422251018439349440523262587633566552886263141606636869173763008684946307132331824856056295074840418103557787898619311115926759540630357241454876625326370332919083390624397139546010731340897427713001448232951099235155197035926753994700911548666225315626905340620817293695864215066847712422095055293296168485180870381145548838778275283026780460830991152512915258857022046812319564531184087823455271236324134957424863684957428130397279518909141712474057741439256886544635150357433691752798614749825318064471171570615316012265312958063038410388650396326728088852775919035940611000503552461841765794065336673355331324853394894426481993197275393561428442557781864349894536904979555583902438797118428546326541941097187244035980782621096460817224770369901012792359266944600882214773566839268108364195450506507926451361179205138227935408683811678699123729220958394103882085180000735267481037097811140436272048368230039124770909051672996206959981005663502759991383874773625779058670242938930111012484549439095923599595257280938816363138737305587694852784666893538070083068500403121889230204964764811760964394990648204746278393948454087059208487303631703989563442619265848836919283339479689520072754444841807557274021099317812362771847809860769539987646965447918649564820462938794218815679590861887478112735279690788583224363819660585438800924043020274829389541497671951601230620935228373257527521048165124865500943150426334446902218797019883151807269841204386736245613698076060019827943718224427367725415869994286238591514595140637486692968950228459882923782182965053957739386911000875931123201812876562812958122929657744305304137307786892456801160391005589360257290605946294406412913947166144410745558875162002775548259684256820196769590646530663433226918155116887475931947194753916812011864442082950364699807607866816835115869558277472788552932346335604103501668739823858683790667027810825647574880218958798158789553935698554297970517537065575082953319449628936492623547958886088163225720496329694269512836439430884853434498935472989116829567698767835186619759923949514346137525618728757207917847723829845461695866316938181661856679495366383949938112648014192277651782896624952803995225780536536035852638089397919707344246229074016380421527618619180136494926632715138751572623670128715761990836883364753464362431497712743419136519058852490533190580924681072167539642682514848718883151983412706972856211573514912176058456905466794612925995850236337482013574767241753918012467805802395980135230988543422924423492381224609888148154615826076576284057821119090229469722749970015992225281854541965296022483122336266751423364684717497754195790395779545772729671707522735827262353039489299230878538485660263882298050424378947787058162706693959319640267223559232622895152208361044874853939835683780416560279540794753924070064000053963757832906501677737109063530049034845908393261989782327780954179538551773371109243286097560274841600410984600493091327777895279952503293584748673363356942537411164479741782785066079590837761578589765424946740126047014142074486185167078149012064960501514331503374659913657115633749427780167580143497977188608467829045188633641143159522881311067048751742586681576999681969294019069064702165845061032233390832908253014781969391393825978099506282784191493898615604477597967138298372967598652250060562183987907366428392390455164908255976048271692248018618063837624384625436582710163549489727900228380952150393186922439155382373010637800366725894366277411659369609675044133743951883073084460126791443531006465408530634068386677564590915036658296910890036346442260180946270632303227488168754314015544575162531998871648222357107544834118516050783103787368803135122334547960815138645022124870810833619436526704221473122379974762383962386125220656781000754001951667073116785706905888391855415117224404020181245097812425368943791089818343739414077314289181384907741255892486584405465878125674687429302465597809250188096787774061608322308205922700947515607820142730319764343213515155730882260543244490492566705017655220652146512856386039723592728715287964705000386631690059687463779644689750666194085510917129398135845947546197929130586399483421596924904670887340645326168973850869485453321590997628856082188508783824658459257533130338020440366051278046035724441118634543523447373988921870450239883295280459185917159173256847387076853211000812687362680362922476435795401664325827999822942568652424825684030257279634779186055941811023615518506092422960956434582091087105554593712025596798833698882762811754028988045582018686869522564390978793068984214717776646425011549641949537638051696485458217353291012439124312590508873534402121593932025303220926143071477560498824262177268118910824594453563082334854610831212583085973794279775511653075648574952590796558441475418907689272442171215800438759308223225197268445967809117548583841395243233774663829322169591037521350543062600108879362755733761225433088469266868081211354376437447383497880244250544958538803525010542910402167712088803457519413469251855429453005961327862869802859478727455666166763174627407129836803805590486912468857094465328804812025386969847801697961918670526232021586835971296437250123879148474940285318646231212320184320306321462657825138505265639929529375287104746510473755344968292642047051488551063896505948817916520695336826838306744636944573671916120775246661232391828271026291527193068111999821611940717057282929517840462663450199395310307524145525708541357358109652892819056412343022944793407507829226572671210762504743276818062875916009662678002031874453638765342816224487664456417710366876122364775659349537340891006235068024730128865706963898806183085757221463835599698324938745102215819670665735749689753483871709498232440525759705588363621336490875875306476031140508634908831352221720565199527683302049664189178168708284294923256293315022880211875797909649696771283003367079857958762722345118942134260811420797099298281845774274742310912223383448652972946888416589289684633255262662994238804490488454040344774347727522860111036135098043699526456635855671631511358511945064778450324054350537589098538494845629624134150535141995148759596914606434235846163236266479879528625237559972357432151897730665263549485816231184092682548755038220501508172797617541658953122755432029563627429304113030735460939330772585935371974886336493880067570303513320831031698626854859004964069510329135172080532754575065067064817527894678274144977018948110552997795086383359345021116218223662847525291921189085009425116993914204763986141701991928035560656669096704438949976853542629427243681714504126875512607811232525489309821651670406103673746509321661505794366444752899033845719057005059765995333213454840823227284105072730549899334085343815920671285358729677476429129221937630879813489238673486623297782977677006666596711521240605132357751883812296727839399317716598502506440680128103706298098958320720388827206849131211017690603965472158796157611189941695235670472060171661991213990238089012200634321769672143449047851728371479739774621213273028442364735347644905590573457950218692161637916279372804123102238843896823727005968786572887756309389235370614726981931210670617015971015473531865626074061328673029842803745886782500654835056592634377981854762566784704464652312043308528243326200820558118948004616056006896713516997863516213594604385487450316240825539614854394554348416714672728791431778856975963593691304891522341630030007345569394520676772410866757165655260334593133841787230278548166916687646298915750800321101755039058820950943269614416517325047379037347203923946318953701765229626762363725504990138879392846946817501584834091918025165847023108051949216963610048165196944096992457898573045351223857755700499769258084213529876196766816841520553328407291856901016300645621097666196992404201196013701708241760051189691481143389093299213034783201299538822302357385802115531515166131299454751682289353512063849407074782605377749204236542952374375269471214832937613206328708708329798698841530459786193804336325927943024345633248297932566178306391475502047717993045198970992372075559441437915162802467930460875821998789948306855824874863465514222015538861967422481535402292513805261549869288672106980382047348668159522101516328047032116023597218985134099920075956133752958820942501528395404806473926736360266487337066939126127227035001972181060955648376565001643412474735463793153057665027720185635105395348545670983145499674368327527395455794338204637211658570708306367345688214774487177188928155682213471354673829895543993589707504613061495011948763250348367345635942481835091126566871047779606762712774711205809201177714460023156992008204259309449891296902439943479397170362961209317470443822871619297666670807865455813438876040764681083787449115686334236552304612551252827391143194321419587054428233671661640200429584134647821781178267589047556867013343178430351440927933699942283120914005198348353374418243197504654159468709989743115490244992632004503675416520513628347522435473689115837392058470456167136097193567696755803997509690434917634028599797227094039040513297183868264869429651455960370469063961210339753399166321836074672413648851486471659270942297201355058564773518296829407210061173588410741118134518574619047739003553575182167542099188498624463793234248412473003259653196599134519152468276346665517898509395552332984141429492840249225239104913623090931040845792431781410850066925260207297113711312792518848252818326162932544273281913144115082164569095743735532243681701744501484971244778682297627127802938690618919213419277228648644959250901055950413992511895835154564629308855240716031797528817780937473842326899233253090887366099814184374661737867760325371828874537901365501713167940241426713127777897522659125063104092753083521856533742082658170097236316680888668437485434274701368690592620458372376077875270122236881977805348259934525104251897903685663638010526327980096140546134971044809637223828084383571361405784574681697119550318042463288396601278849541526731681847210598299206203103004406688431045536739607894919052567764311404657341388332996611271368220832371669506511669952163481124196435758635928392809865043736372540667202402307324556543484486525716273533977933038116980010623824829902725480276042182246099626514735758320483403144322140674099386862325104087884109383559563769130032978219400229774486866070919352225978234433277119245710989871262781346204500774558545893400389866577660205634165044230980056279595286035647756705392543458090228560222624402321478641963598463001756495780161556956060245737432870480162786644483578695176050991468443111162598468761967615967182719281037586795724812357713896314628754151551280521157195710007231437747863976044429490989009109031697605061737841441618532168845372156463522887225704913011899584256088328313045431043170071247039569461602932801458886966891742824670872004510004407050142423295659797325946260832317181261399467372859023984315524419248821484367140529863552990584165112535918290372644684899430712136078459472884608178450131282962065972065994908376439184327630384659424951983787134327712578416051525277627319445831573271483033642460220888657708448547599896645860139425194029285762622616483957865426563824829096712491945952179461202607309623865926309748613260577477688810870419188154780496892978482215500443519473060057759384037224580562918912471218355992061849883063275846851122290573042708071202495248867749657870313757829681430956379041486995373273009716445187337708959354855219320181411887651531130887576868988896215909501438386946714091717347963750696669801203821315472758095553092532054477088001249258960101668872022411051140711438336502767560668196019416534629914063748847704694175761764656900164107988854332596069013058248187095710876186367055950128366181070514865000982528993089902651509062614031814480246786911118101195722083799932459391994356712698412430070683082862506577918677009151391222770969118521589968545583450082082944246979505957849041036554876257620596835493430868622567004675838153427657945087446409833263434115802329070695619004862393437033726829019887806795220542308343233135663905590361835845961349598260232278745295353849787691417597732167582574856825959401459985073781952263286045661069381044500486080208727185658496794543879026101803884089860460850798609733711327774021782088195335972967444893825369051989922141047103309796752004012985191321575319262877061907378077965572678251295118231950414415342467915752986840475788642481316858589172507358014238114034298764185688951874859348809881488653609488614312580674928853185634183842684541477495079044207893425437014083827490913714959418676786778903956842846487951944345014893825031701460896137973873746674739259648655438656994055166974640903116775244591030707437010514852095364489206795909843846261965189808289303050149527453772865798248440477958253360475294850905679580699433522209228198472432465244918031324038825695835014409306622565763383979809466497253509130895217688418352514533863010452858311570253341747961435112202414127094260183286576276125725000739223294112183348486968757613880466561153023016753063177822675391047448708949365875667222321234348549978531156190339473124107374941501931371497255757288362845239354433138415050104018060097700400585561185672399895812663687663603249708162591633982885882642809076995134272286277375584774041385042431667021397899716494775169575649451493614813996878230683222451100038895616690666727849717547567749908414115035688694346039790890326705599946723729232822284993100466419088834178470500428185238209111823959917764546418457113603536489688897778900044419900072414976554721484325516703748984155182338559061055725222605872988960137881912476633902498029714625925613675031044971512480165359982906983133331030925420176603258688165061523402072147152387544905035061728502515856925852468762101075020211078612591588015953534247727376634335329300134783656585749325858099185648293419755227385709470496988926099259123577045990046797300173783892720847771285075876965140615484225344846177352860299827095790988846871849948373995237690410552706623533423644186739188950712663381379843554805752425376558435874575854684900049587909918487796037209758834125714507855288876835621167874313869859370300533625104127975218086550359648578019832779967678524957923746781830268742285822061227868646441271300257224876121208724972389865234125846506066163774107853817365484301604463152507509857186124440996295900379151098960709099964383244796021515494146333172681270312074054684836030722317763227333955724372895627647039964722899918027216267637569794821519249661598544622504049247149051191925818358641088426725585535003844174215756765236308372247752036201690957840122600856023553849476739075416091623692527328271063148008876654612159634673402185733936337056388599016380415549459538279437496168705903303334463535180641683971173056250018802508861359900016553215103760084962032399673758871151681943656335138180409065507439698516052805150544355584358256641289015726159397256219480890645714761359773286419153684340913502604723682645555324329252844445763216377765164130077371279523337462128842103512049313973746924622991075899356144077408878275592430009653597022945571854694879297407153841776113207559783530634648146468311474641618640920055360488685403200469673214200795478184733241510313057152336044016016368008433321532081214517075712755006336898754822641596333914664327468121226682892776758422962436609550409015134014359789661604534757715406018078918112550948713548225552949824151300962871197140750220153988174748042042277020757150591572426991072860278768180591308182925306284857632168687534139546400195413715138870253254920427157396352345901453252754823516490555262909182151347484696591932437590592255689536409987580455931507868746310441912143078471492294542917405765280672560030933304065988990018208604925104323437605940071571697541753475707779056138891115354688841376058669306049948483568428448651347003976582695965606669035543060820334726517895498056337506467749380937544365610281752592864479823227855549663140113192877903510921531909893956948650337158148990567163793514710645409187237843025721561187775358733211737131360971828044187229787023461911612113022860089600647644670973912861814328871419453230176384743202915124108879614601018548070304127108973802986126791922754814657926806427516338576508517656331115438410949006189621948062416964275818246256083862027024152354194046121002753943540984627865642191142834036873615585754355653549038184803384572933364863819610589766785397799703634272878430407896989414099242905459967595502523352970358030626677243366079924203555750646784245779958846341600361838136034540689538724880598598433214434919134112314106585429145275412646509045767730683767565173436996285825823027401083065084835635718271309282456607560933947002558602020601656088383650006662505896197823270097986823412948809863328957541611453875398010735037661024240908139016425665066869159120168482381611397953057118361330438098161454222671047575162031271497525209041941860313539983038333483363650763147391334951336085844247420349265151683893450917592111446514366779811341818053143401118792505422210616448473052897757277570068743629010934372128250390647010294204244449619851672532237244332128142273851013342320033095894562651281117127065800277668662458666206972937641850406740298700008804727224393415636256200133605066996632337938996414615406804597801616464512682020047939004008642958863914851843079619909835511437719814622719306438240530326575367377651537323271452661714266407958054374877717599716340227333056934726540963698946999961520182994597233033388711350935008263536647397734676146238789565831137346630470078828836823503340029452057316998823165547177046324951367087430173763524762690254573068026236289866860106977072644957571194388495262860061903086405389409767462731203112623954189637090412012103544864763313488109351309773900918793017909145120526638119627186484631369880095075684596860771479905401399072079346041032934194838575084275416004022023739547674256224243636436199373998586402188804150370204517839815117688955427911295416157493020396648006270621122400759358601208274365628271213748957439927111809488801614500864314642424987749071035282115457578790439633954202890410270185306164623446136747834527874238522654936007199855805030657617567308713697113680919845037874376243511911868366325214621094533166813890820442981457033993367741964687374400722348951002235611804263275317263684285698828135725248997428874910620325361541397860726942247132061364430778889892457185990220264040113649278099730227182035654762903609693475341537413825095072623918753670131114374537890062129602288935150259738203889316529529675563082102377907422568570508030397198822011489234206385277073170811403694805519777551282778635798877069618760832648461401964015459856231082603827540769534437721199928487237248132174397143818669109186949555004264608454773100645603263270358340916648576465488540099058846079549619612438557863533270825202474505545780317539503005329751554696805744189416244576981278855471094808874251257744908833253759670826058674630412090096314069815998162323605043550895519348842309170537147195959407892546712377313533656453166212597230178423266961230511753904026714413228916179867200233025092394760980350891590843085612780714555952107579944994244474035349459321855338974012459895062640799301547566349429855181293232553364935901997957371267070663715220161315648023471813111957887013848781007954534719799105470466191357711026229469438048775271956163824607015252882382681232771636193794318718152256919109184512311628757493956552432505685782581134533897326441498084587729165829842386125036977489412451444632463610765077788734070594159209460829996118100718920984266235948335508713324142260579032145316439466864718144490647042105667063458965904261875056607169763664349022299228059922194896994912169550887091050576344201096604383986554310027241985076286586423893735271209365867352144071564145275903467815979372544912760335997740416161409771055437241280390847537157245273101893435173178942724840260599898135236745941195328010606571084514106550813083672203835892141204952570775617099027188027703435810151618394142693656983614320929734895175044926571305998293550763829278605783518577896362528240863639519420963281682336646420007711851844114517370592615254669074068732028308095328881472507041262518594119515974934979990562802497587303303944632657172641017474524390511185759026804231489687042321625565450673256879839937618643197334478690790583062384868107178364192051930126004970695535981113853181849281605516371126396798763231758257420802566209129155285697020245844378949412051655823661909937056490320893295362884598756357242586776412393681542426886964206653797310520643200328001146896679775593210945880223038149096775764781671984722345067551751386346850275231132164801582886952673781378820590817813403928537420585819234866153244791395571856618941147915015241202115064847842057309335837810909577978923410163998317824348616540101605256681867100632536228608256032753181516927166527148637547881096498833134048881151708765011211617507185237103169683685805252390105591290626646959572742192899506852853509873459581329854282856389891018551747536896330640320375049721330445326958160804496442484829188490301282885806511327349846492919723305953448516032523780159879595569268663683405000834145301219031232404482974397417018614149241020766669852680325015830933745543679860391751445925988740992361241147988992522737108006484745488049331374599074898214353582599906894495360889899189844094117498352859003234651091668375801427676787902191189881377095465645318250532352184757948249754983486371407720026564003993409793295160345866272402236126070230126701523104475421853353446416942023848332555014398460883269451078290600891994128756050926173478101695176596262444170200567009735472815217251789176480449913604131755946683163705538526648158939613693396089253143480893455465632835605998722146842605078824173541837975936866493961072330588820375851103428199828737548708766801967338122353593974351968323011824843564090671626517779394878521727182730120798327335380079583550714550193301340607450191700856155319227367573118723472092765689672854748115609120039196517603652543675979039116514783966198682304499581143945663667494317791410829444429943078115288835937167430893853030120076877877838151051014101320330912793883973344496368101115300550081009205834915564655942296056008750416965851076884604276341942949093740796618317024755162659550994474226073292320238805216690537593835894908694491672028498571767938210503086996348342124847613153973686178299869086158046632841079060327921701860673408689156291956569928148466472104464263712026114778877252298913736819304529696228145581222211887716088673204401489386429589366393816845641321700471852107360489026637044540507632814418167263680234701136183844949408053211587004234294724596050835387925478857653514532947412163029176831690713185896318204877804775154416831181896059260993797849706945525896115129070763316364478934078683891358953702657478738796700545160013665775167285912998183122052743717128089151879013829391348086600495703066275761049961185605982923571714603992523195314935975614753054237000585635900134836871197456438321767970974508014951507302956000086477273331165092335906161934252983010621248196171558462456541231512621248949476035161760018805015828430290529922502057085337385301408175246320714659622060537181205590217976831804328909536257587729733367116610969905260174265672676452351892956205581265304671840833238107792340316455961090612523174559854057691775437184274241233891309069464310708183711031025060994970789172000558769025134316206862698207103732083732779523576577188928233295213088686922650257511474170611968610055372901324545210622086868124485027408491624585240210875085179938501607522286020328538327538606755583880522119035479083361597820682290588301287006304073220421219968674714495988236654643336052408216249614887154259129539028274790367478297131307599934401204773360004774494629859876559581808529231270387053098270825220082530142903525519072909608709044786843390174477700131909199152241173208443873048769960058994445062887400234327644029082897311082953287975077116562465330911355272543151063565899231829167058655317522902071154039928247407121294724785682477225639079365190878792607378023072600289822836840128183743420160956342216674877659852123975602830919566951301536769729007433380577534831227115532874080508295243367817074335874831851608130177262519680046513830539444671216156404808607089886064080194168166166913455463016142410066427013755187029763297086359379551784575808728268256869918463665985510840728968853101334483728709660934857911362039522917845583672338856625855563257394287143937452911740595928543298456520865700275946815299647876046689029874868784930009466690118939430556687594267439600412426085763289806797075906472484033414949975863709538708863489272378571211082070753234598159729135177761425824654809748868229547248641044015393639576158214717730916118846499580125930541209905631921368443294518006259938174733764853080874935682691197825526835045655563293739923033147028209279824208403469624701121088746902671812986886969952472696091598253088946331912093598107031877555832059509260576775995647123027865111097753457429312422717630418977401315599595828843256400491882439494934658717884805514509025524569369001022178618218243989848855056073226595331578925792418114455424579666117101230324587782209102739364669303406130530135312769548535687294834605669449030641727451746396888423781962133470257184512604231822749151589470171503890692714218578667887461787624054635039275849195143705364987440966238103213441372722876400563807278636630667462345769195220053322188412876600507241715337282558110462248837438675281925553652234380585298502776019012577557405695162823824553367638173571573965432720275452302144202444437839640379539216256565418755684502645949018786136722973468618715955378160174707844235316437632336679334489057124657417349449229726721828504164320093845240196419904148776876991922319452630511807799227820510019282862787974025530246442738805063309113477855804400009099802684131155034011390952794743893934435345216891636402665815760933406584315969387359230189319211517112248775776030378390235216036984901560881761322288428296130610038341743417660845762636611833818971784881466072757045355572221178625969240871324270129543453766629780671623320426364743073494997132033551032568915022731830766161926520742094198992821117374550127608491902225079395632541722447419515103952086920921860785977180164263293244916308659001259190473611980178123043029791553080892473477656227301524817580216117911412752248229431430697906450775575478287949225748628000576462814873186247886657639702893428679724081872177649680884473293348549639579728638238152519720556130197560150807522990742625516515818846774109735330117484781338599890675455682528748318196860734481279823367251160837693921832272276805187379017653124707880092875266822065891623415925398464264668379874364376068938717333261501629977308991056159116810729948043607445197215352261712961995877034398638424363935521259878507203895885742434422005745328298107914418855230441782783845489939578415591288991445606443695227520671001113667621490545884235233260858261929408585016524123031027558464597615674028905271811278904462444181986379068716359232947307754301008069259174481085872840542691996696284672891125897229275916453763640150733553357182746124116600028446977163321441039603050525030172981889002359719705920247200902399433748381877560790901077974522580218068745178651403792377323064392671039313342130543533641905581456129722276495702319865068801057453469006431973127351277694918718875164052887862328384355860975085907924841926957108056579826671092630876974598988637948821360238081442262099032858590058314393846072137867931732225530567408316151986453495162152752218899652551703170589745162267320914211965859071016949225865906689792117629066913091889035231742046421359199955778715452064135297811848391116616093141337636772613015889365282864854123159800627853233150228961437874390167656765511729802314337861474328880133399879819624551764975294356462553088713430045134635491379697535754856475172703432563395358537331600169940667969689132033292856404721018907260092254437427430527739335602570143847293612911139714480632920678534000897800393976547882083602038195513573841841452094113159925173909028892744931523011188956632720527840608134561737559784606631121303230952619076992846616428038869606130072410059118435136167886533174486014946839112942036623795556146894039152716527343130809372102227967726682509419432406694595285163882753203281854747128914731174043163656078129518843659054088005926643862422645370390628445093246336773962083155137817044154683545080059235392388764497106227853052484713148024544556093173450117995574102633663629026189984349595451550836911257221061046649871674364765413362257886443629108101332051019405632364140056048117023217493213513693651775151476637136869797014803364911672067236302070928320940033680004848464693508651595185108480007514608744612179660892405325055279787785367401375228587414491642624725317848173744641798052190885314426314690625194606111957996097961370812431882843294623355844964933727359976204451654323721683142875291601405761106544458644472474756476485314172322934984595174485610388774968253538938256036493309237520968294079530870478373078875430892025465759854909145158799452982796998099120560636909896092176799023344812981324508154077140454332355657755016155456248731558641914477424813572898201510782818265137622193066838708179627457331891413520588989059427597082317657816027261123968817394675940251207334346426605430714613357385281665446878929088473410431380948016564619056989520787919138448580568503226983268469667691433698148217166786200011579729947787820004324349062622670738542326159379819887638946053288638956233680409636905379363269354375638424735571183157888175382113625903810140975846178280361017410729224946154975012773265426320465261011369050251707113915311221182997360766678604651448907239872232755336179924938927499686192560183716448739016184146253671147326847053168244254405375575522054090061441934437577914991989092099312292694894305931322070699329455011636357672576458415898411883558367041246024134778211246420186847033313136613153235902277824479139711240252725257887607976827485136049907906331753145179865363653185302870687843769482022057355854116792450075570346160424860969586367639861920620714380577362351305750845493526854761360103641037098825423831223285168790945989678412765005186889485100583447315003742499056626216910376628450360816246355555247626921235902733788773023826483527848233989446787619014640024512518557788698363780248276598321861126809170068334203078534332786893658692668945172004070943694699122548907063564723474501072203082345590539814121315972721576340381916899643154939805189352420177980980808889876007473839680753644553440442163374094851688636822931281635429763115148682647645142201135769951937832168138470820347694535468134092088705398007510069700951641536204314367177721612684621497624564635112338309392446137198884027075158848995388930245094324296157544294853140740118130082653128250553489700830488977445379319474312933566526761838144499542850114111655535709023418550804687682310303551856923367432416018261947352457391756954430964408670367621994757338212903793932105758873886097552102288803932531235423718866595742671613038472235301217372083831147531100713842973937636905311757516368242233256179803613912177407766851111762181360260534229084759344021001236272820382079004127156714351294520089014010360299621133234387132508855797034425741592130807970704278489661967885177773787383844921194771141447395511070995479589425730848618783649818103635884621226544116887756064532687428022075351920916790316716066501100228153053118625570003966462570741235627024820251139929597347935830880712330828320939793831171082149561017304879715509329441283422859419190406491505824704706074042294846354405352553122148787358700923323369248027852417277201353206465807410705148856973459496602409506971702449224981015976074583196020269144859470218520844090513714933564342567107160931705775815387038265112232719018003853991433757331463201757198997566582991339688453730230222433799328048582948379472902947441014447901605850834306923696906238440264962970967659462403095047108750155409817263407113528009953361529119936226625554167323828194766838168389398303762334677343438358571049246720389517357464045711127241284851510245547098970387594441389734375752915505453250450768972256990186947624345056570287755887363908502336620912465879151692222487582966587751764118091312041947238481045362182341929960351193459292377678420632129806646329861932559534505416568651607002678630984445901236563339350619225833310548220322716357264855311136341306691357181184462868440502280909830717796326039705150944869084876496072427469406524313627164973828816379412407166583988976296911705130111563046014029559863402520355293636542302721036754231115200622564678183059616628769641615473922239873702829078744711879318641391867756844333545161684562525374546485167224248746158078911720064287226614050794024731566130011423007140098245716134565117447066652203543154720201089233538958211031995870183842620143870530339048596800328886418646371673031247695064985882898907839065600336953475532875667284855036189178867948301625161713479680162110685617231851761217743042667215029753703875768041892644500934829503216854678521306952562977361654088867571869539541764971223315715155585692165994832457007406456626817725402787281591909072645020269180420595167054567389425595425695725630822827704003207567106802845281471719913824289842974620069005666878947936813986921314724603712389030603694504732633887543562754019730603699755305137412077519174344442032985817241264078184642847077107953913896042462723596799182419587457674785070444273975841925872685425515819253188093881220693405124775892595117095809272083848924396444763609471278463671310353148060734648256595336529334492404219463136364982137980955458674940964337419281248895761135528294774174057869110571003209004837163217836394482253921630522370761015574791551520137498879733849495479070776481028657971540841563132695645671952872525938266120531476167125071581323397123642729506886132189890770159160457214794995938247725322268281469255299029283405569784929264323351999552451098414387166360176046617340998518823401665622566760498751103663979549576748848594116327478903349935392663164186237262116025291786476628586378073919784175073115521077146485137200357768036806098693758008719421368882867456942251633363405444083247720453474715042167299906042815154500662412781007977023724609064809116948117324433213238016915842759700772275019804421225891928446175249030313683784131892564897164169031068780988496958962898732532228243914872709995869639210528055333759686371839044044263396218828033332108023375481228572402649847311636753031386321619289625639564624989229472409009952784159048001010831961612087689344421459897044444219866791226243182216253763860270466364261362734820594574438492461332539830739925237236457773384171962367409974870196192532083054484015178037943229686492779419729968137106422944925437481164568782166630061637418345568410106959292411755968044183292176558692049866385312980672378009305611925049543839097052870172039809576259154759903798033999081415293162523738313405505015329842264217140579992737367208060138254293708163924061615223170854175115836256515815694438167195360212841806551205770207419048767553512489778764072676009852794435929471740290292926511094780157490901609943783843742949590958423150823431445574524321205793953197042991941727120135199889406507201846815828654001154321338604941062291658522535894254932594941474005545373111502699173125791070570573877714310289995572292652743953404622088772075607035274494803551165099986950081232025021027542072742829531945669206625586711984989185160710999161033652781168001617007890631999936531635979416647777161947015117090826093981650283628159971600064183746342234085871655351508548559603470543484146508818124010115647384909645918606519614334859336454730439377618399221195774912454518519342253571680867930984762075411108647535455360543513486732544252065613977316136393483214815823113528907169949329837520410082771174077944112720447027392882025179138085449811516125181776876746883843378344396632020089420109104120703579141923359291984974908834249205575401951753079591791991615935004518912709416142332123579332792378327740685658052768902453577227532266320601688715290928334373658192795738660627500380919961260299435676965897766100506135270058484037087638871339364385172291006328809199913674347909507414870041709807004556000717682216174435728015246634962150951609475611047131666995096852953036182599749844233883478947254375008344852550897073562792971138677460214793307240770398720043295138973992259750704458341489382489114510260228639495476331697684787521845311163855142832569177801676993906260492131410973946872928056501904701359039143415208481345821095204108389464964105031602873301192554098155168789552440408790598253790535902286454588578656101674554756427457961941297168828252663351589028710639664070249143749720301817273828328090938153001889049806381065252385779522001041574948542140827514396966598680639763792378160435748172971154244530751927822975800566340749867488521770830738414163439254441271190538068525909844678183257154387991156029441046111841251079115423027519156267726682037048589142552377149394247028421062545987069538735292532857006077826814557953344906851049285092866654413147823145417824129358780619000924317461362073023366601727319447545585419849486927030724958874131373964984123045164282724677524504311942208579659135793111543864363058306811852675803395094257694412106218391612272310971364473783941742831281479152278761372348132294238169896317216119567401734339733076843260705658312478844430772408744502380463996529782502713377338038747943146752965927255990106399957917829617331138547636901727254669843784952336549472243673284315482107830783200118408878041352519352996051783926348382138090312421283222754310699684965296709269415309073816898447391273558357962700719286594664876258034379292617328322787902753395518480611216997114275967870190336834706208734273985592851682727625120547993450002990603402830801082596467633550251773859066714891028899529389283098147040460263442235812746948509469460339891456682703635730064165429707295135130511202954992059759645481700143152681608146525026611337392875508108578526627818119528818820924441813230827591037612590385435365598827316987645486678165113062662779546984487127461276693737882390622802422669432347503552866194290941201395133850933182032173271215924941943725595983142846678572892676062490579745525124349349183099665451289784136607020876800385606850075058938171513465548701737222034577872836237906290450918485401782327868039919715457791057614031611849388986202465928385495137310929093629113768420577001719535251340269574160411871553323119534630634110504536445807537883601358323078749450824257800578398143446376289701494710750670887374730895353755322531172580957561610090456445545308072513873465060224713589564711718284214089456254986908995310255877943364261876465140971145670179669192664907375788453209038932179328137902386388281469700960347260882663687273672840267406409130971510118176678267289733857799890847890941044708403463496152596314113792833817814092808518121155381057951495218196393073037047870018143433001844427150740243931764688102906796066994633346815570963441034102375796168729423134349527956441077621896498562224747448774357305331857387250317219119503393975595270553863125119298809927018118530220122951057807791086635487690920308206116611004756522295175638925614566275308085624052071837359555881885566608670238308896918187895424693214277180977569074315520785201991059559938989093822768203667879582381554378908344234023518715387826405341312823173554342240633643359684718049510783746757401284621990023165392179452282429330732820270182220327275304814951829302554408169933949317664381487342558017474636953253848054979510446927664493223319903294607195767380455500618327345381469151854492149837337136710983430067271742225085204845685362936080132929128747870468114004825817159059171725403445502548221504378769777762468496755389801429496868607768316867519918683329876157050574933622470305742640428920405592716734256551333205816254394253460161177040489660017291898893848764516476622303904070760280329178544602276224730776233873575495352121238225064168114125453216156243987103831704536991027127035718473190511905469611892674758002037242571299936819474961754534617389305376075205898018349833608448032937110934022761911007734444756353521452202292776538890261376062109103838408152264536706067450065429204512034751170644364610869958385534874989529729742883455319093689640097777349532428409627408948104309337324844801296592515262192771600344705251607640565418895653794062734847527198285671569424945643035401911727361089409615360801653039490509659829650033145775930252017807219327481713206983548515662489990188998058569266024018116483101163705372583046257951131421582868607934563108119120776751706855687599328794465339479586931464978870880659486789490450760385515449913545582963048403234958221944357377748989410950300774521327681318792554081865188612968416916412870137874252645636760161471795541918296252105277978337376496474705048808592974757737391323789089695961658475440138549865152581516433216386728286850883147146849120399225412271863582735080735221006752632873345088117430768976014703089624548402571937196619070431617343692414316450193401826027160284145491161603062730434180708879460713261479568081999806341558945761824968379103092525477177342279995914855345032932029429474708221879477482318043551007593529170670316720614776670360427927375759836128503080327008112946013254801465307982780501496423252910853898304072201576636663610979320089344697964022360847724994605914424254393379108059930786257673401623085701442890241865318442095827420997246501448449884348735727849467938975414956982458753936849298613035599765410634055444181293977884213930030370109569734660003262501618671738857048369741514097327606622300065238401639253752164487159617673565119248754381057243361495660729152175037167669682541531666255573924666542870971553245614850469561747713157415892256083020542153492529212531581459380769247915733611698084766732739454907060806592816492031160577847587413117831725214651966985171857657208329113009654351597896556981846745852754222275740267622586695066060368221744759351098140805712384762871010698800603515925835713461946666316392855789602243930925973615588198540871981654975262830807674236576689956004887559878710250874505396229904932311553900707585305004386642815518689989250411531262743997699005299331487911074679033705190144939290634547511731021042623216384540213340500752493966517285513854242092755055560047337649282578348068684959982494994247024989985922306774725933237286874035338985521031925001491526553872105757252737777436176396978942285725252256790603531749129390054839691459543351055750601542532770598995384539373991204503401564497344250528517767358211367288096575544185197283236401369601902057285404824193715556267476457389070399744020395158901221391667247629076619122150075059476500654928229524155451952243923457223967186291467949875329458747190306131336921898589788918013196808499219610954584675156290281655505320542946488425503000956582416190820471399507123654389081425889887272826767013105247950616138845261949268289481774991825778910443641666146036721341608020369051974335483275715549871844034174917024349174954952784891059342428906223197239677846377978758887039859816976937043638920532803338553913316865180915376310526326048328579475610464264294216252045313142025722948736278895921376183518121474141799575148063256442284060736372624414955280998895087186277656723500772977826248318746760969904686840982020713244795420507122204322009871543981478873901216491956685784844842204926138972015033096028182768263551815791940695957351237574765782833727895705063272381747680127703298069703366004737393060482998512671738425583745159239070035151403123753068730333850386060501083019810286774898062105143982805189876396427976582011609791957604087452145210974956321206582561872624905395516644056527033708035813764980797661088318452678319817169147769668248436891242234276711766890011760880428210385104109178046628840403526330504368782618616601017671990093489022779525535571064252829144958451034354256861583483569030483316610710145741818514186662871875875843471271456657281120804770587730003412471740620849345162114177372908060696826191653597304183492208899830015342932701945096014481592968433553114892818432501452679061439263734459775675097689564615372482426865475033186742913014689253329456400093006584644029983031284287089674075627705573048517554231522070132429868464006144900388410803907782389627658621009455090620499883682989729001600673274342491403303806773157969170346562769216726438904880620647971898207310266023410343003048886038908006967072021455357702702222653790621710585543481682577936718871346183379529428783541436955513058115122975023947135417924117817530081341643127540075414006791978264547595380265299271404924002924891009298939252405890580292322802520796958141249451907716490157180057724194803357895582228928188530646425411827101880062778471480477954073749540469084298326183278848779510594682376806073750774347654112008047997516563138675557239977088431259791053348039990389421056015951378296314299692496038323604757720163542111690823871117201219198412554762202094295494203629163048836614687968093915020823953569269740611518077974496284442194118861185106234738012085316626522994218211537029207861888435460951976283672427174819953511952637119291868162888047070413393795280301382196439587303899162547623959456612789277591439865135208976436980815806579877149103217719238119991934641514826369690669343014165094045035462124288730701558711398814253070540037331687494542387029160702403123725918056888273841673447524945374913102011183793251479833816495984936154853945233249378677212872558365310106106129905544779993021450660406193304321734494163292278304004852989985535772714608653081931208887913975230104429188404876280416589493973854819795983695820938284483575220041322121493532694050845175339211981185000737944523011907300551644490897195549264420538185072172502091501953570933143723910972622068890603538039983704646002160358344650829185840860080382417569850510930204374947720548720089034427885741365405935716526584475374437226742085812166164249610822049949858103619393133305546966296508697085264435230006793943307460908132120797977951808565759759462537181763515954868371777445412393247153700362261284110916014641982027995521665324195410917810018909636568044427231146464608146299304220549211434788810037522248017552170720144681272320988418142273111005574586796886124526559517662195128926452475033094410153857338705302511216078267395857646633534518503053899573200265704166783946698855256204564912745949918479488318070392734748120727329070262231725954838364953625595477183878397797102960258536344576576225933784419989668338916779624496889660480877183314796115777850846192107509738392458329775660955804048804204044490997711996725402117769344717257110094871203070174795224211757631684759473946099879036024736272274142411706329134419537644903782480191112835202356116778364861847129450088776503952567086734177299336191904545670477800939857391207458437429104983290799955051197749154887672418067109555912769028231988220297984087624298265825939456265465052606340555485037604904849976494321417545806743390716313091826877319317179836757906638558195470886940891433581916919181502855637374405851157813464913470291842931362261592983069477176427238267215280986736480868065771197664606093597879979761357893593715704849332326167059931579501422397501459671755684858486227218355536665559061272967282160981781077193593668874784278242937825240736763827026543736261913530333394156792792684440077200505098500362081114856977471291451479995688671444175743185143972913182050375486531071657939886965642252057613883080314947047482643147442576030980808741988169451812262682498089096313899403536227046457130209993728555148210620705736872537882816116173938367706569368500901005517367825910160022223114330773555769766554292922083054577659102719372896330700397477124775485335692294534115689866966910510149626856228260412289396760579992348414879248963530028342056327357311642386697695896323632959638319495657021575025251626325090109056925367909000037806441317045436412050413913419782793998915261680436273383240094446136137943437560752825505687160626017450589132939665795303159621899069104151362446864747207048056148216042706688692288919496906180562753193606755447028978677728123505883394008753273231836203797515181106708276511699730493074320099544512145772482563570609194757391950880383656934014818897981936952352119085458709393971951193508859387042488960732431575092872484356411393482436092463294113186491791648157688949497144882948887605512808264085191998436590756938675976605571190519160097672186684772642478451203183569862073246960255556772030802802713302219702108254425060894753931302448406118294349922852781813972692813315948920944780665085014195317896771046476955608825175251859434038461964669983317180139837069573331664043237305868648938573783960649849054632836912494164888148108924134131961996565948709610274938445159108491991537683119399830299097332056866731051788293865639794578162542696663989827526194640511050052618529273638423676934768336412231796542748451086219380947505504526451016196266286861560238794938957363703878152689934942130490017614746106741625094600262072804662904421999115699102755967732908685555362954394171186844194995212066206837200575944588033417060655377946442259777098688343564596537294143027707489946972878499541041957058877675116698331352264013600548837356288293068263286401081121232689667750270167043440471385453766390455134510613048372039856435636981962045121144554313327025229917155349152080573394597081050646444759251042158831220308264463403747348770229457985682545584966119453124437728113533129407278614019438415026746088143387484364264602019023536488194852025207208761940851849048426813732112433874270213181563943327686401301618361413677512293721418586812606538767886651479487858670220001310486759607579963224470084543035172044437722129304842045318031532638282218459283208946202192684347595132657859404982885704991732561722114300203730034910228796239284611999526447415569406689403905946531144441900654896455974957636766446261378995443027525374712853596785215805429996495763586711254302275278056346099047805813204598985885824073829757955993127719270910017190060369132400042912563255439853411732470587757598701503645834615412973091760305765172936949938444388551707555906889705230473703837161265740821426503712219536522402842518899214468981962585053272545596964840409219781340931884439402598257719085935331913046548466324335931267299090460055300676032321927896147208426528468228832343532669687715542042356147976581525234195510156972736712356178178393530847785559526779215411360935929854201036726915914632941340872022843756075040484629738950539611410088206831746804160052348889370824441072149303348624079104669835265902302740609378554070061251501748291788721207058212484115467533488599316409792411605375529529163423263020113068496642809523000252409038593130998741548231479254616104382204114060259821690242860473470455729571551377304617969391441111022575688530376965225476817256153620466423525197043567504468277791546906637920278926110357164102769580068936048373269666074103910882894668565761330883031940961176508492132056447532036215264542802987563110182107135504340744165440584915296330761703008963353085780447307073124699920085451290631349139663377311456532273109897001020841285381911239761715198272953806139261017407125570622976403111532846799480235292720646022190094289597078757332376109488589353419581191832085115030539258365270877520063521474821621054971590883318016970161784277933989606214531127026506974203773594017359159702612591314331103152176665526678178601682861140372940571221530029498615778680786192901156188796281614448341570848868684546949278288713423199417216746238270342076603451274636743525389100044679060700040163638428193950050206210142738929464672981111976234055671389804506222292550413624933934579176002340984831389966986218139773352987872990345056398935356445729293652144305972716737685484677106676223953909397596382352877750109978174243685399477675694171365062666192458192687347046705799323805145578543678542568549793414660398100387059958960291202531346746023906100144007866453134020937148163882603198983247399633254176003075609735224494040741400280511138974830441362050953937515925974357032252948160962637936457296942847847915235831234163348351706712303552876420222198709460450620050337470468207936174454388792665318307231801982402620645859439930680233409051632079740714080388154587546436711215861663459954008781887290757763277451598590927518038015996265076523786032778700353093981563983785876741377206462303635534381437778302794320407571620773668649637738197979027543689600402626116085222523171750782180475183080490027848055650383108388986616211227817907426468106017421247260889594547169753310152851842180149338073134257888933043909549589451100457873689038150795352893412711005614251298594607805285001617199250854800061197191547651444197079056709539847450584803314639528712184283192866960691870139298656396461022840307815962810597790791594247103862092161111368171272768150971536948119032164222604753690670437948239906281577287224428983054306324449355310314120648631159915418350404263597289620314155411278701532545175982983411933192004288087917520382976928968476990783848564882291995360396298084381420834727105622985042003305250620261251826010763341835284530632718974202011257431556275858757066148928649186070796630751173857390600407199439381485094750249725526427152104668301868863953873465851516089884298251616245741285954412229331273108602244798635115620853856737396143546843849728247735501672885869061861176928194831987469709064111106821185214285146085773334165731963119200981439020339463754780890730693951347836534442831418674007612075880762077026383042114830433070024227634255469829295482882004143921974579625110644548581300024849607600450210829202434105477425715593135962074151549679702528162165974850475553001379328007231707407493712696474769683530126383965682979299093411355372787609103590747102192065603620271856435747144030181375643608951032353893747654637609263229854573943301203205707034861135875547927452836760127256945479156252733104848547502376016777322887518391119570105047204546000544837694650293773009420480588421944420056602790450736961648271362230375761326462712892658115552614589151211132548835154063202000891205355643629233155652086253512866839067797437237888022518111889242737465287782483116675470824265800502564873228038593346456070003102465678498397071489574574197804603013767218975714387351879123051615533914137721605840320434301711576228098339960543089980945338675545604186374974682557611449455132489416387006778559440924850744697005618714459126063902825607181178228601744433802381210396292023593107273512856715934776058874229534528650490093534687552312838358772127604578681916065664467858403156806685929534424317377919280538776785165603669064979623411945304044369614511653440338955693107759830483795728777517656737949911427747069565634325174507105000659707756611407460247188558050656771784302248546882903698544517625979210877092236418231469263575634257280461973510835538808406510850484721957888705660157443323076395127600742113800040202713921975856056256403524801511290919830616806947287025294710901381211640211307905857027300616733702347783026688139733427330623280550941886365981566435495799479605048703710084587804132836882664409322694548717971351250065428530245732653899537301120164509153391195842729515993709349322912266715623444630830721089863735700629367738722098179492294678216929903406578518017189139246321410655131666484762948825308445474674115819812402960759746467790311176788002024013489942508244372107364128276136837092917393617047958855442071546713452134713875292701978249985160659718890642258480156696201316185331253843233500840357173822361388797210812840860257172144909183980774812975014177114096696260092403234561841018847917706639452990873228007368108062353564291171932221086716852810185284678800575139213584445291911363687015318932987546809668987859356480336866058733159104061702747983244576867717984640542435974683357851167777633317456245162725966865629024298701111417717546235159805987355726098633984952522395763508459455692027145955390031045267834719504321221243678663901588297696077143658024612191825143301835307280042332850275472792932276620917687874563192866766315816064910544158694590023631460692090961660007778435709397294219397271016009640629092602446401192805406893449248809507646902946378475542762769009259814615311898732297985885219470611078006840929524174900572689069602149092771309154450067381666933614551560598169094276774932519091406888175413649243658558675971263715993030134191330934017364078887879869109194883286083843480143223392259803173217752144400005718228994359464500146833634238046980184975654337764298849430808878844894437508906313576210255096005769719630187585764225183967127656122583355165095946188175508958750140412577409135467106182712233038895358500095369196193523760701782811172547218160803158214020868990252049338920388095967273379933038051596941001472295252693137184410143348534953803842709744749678271249416541301091661579920023268672552614383720065487916353803580895648052543537152585155036508067207976832539255852945086084743905820358867949467755448998893790188205889342220451208119642778077942956518962102904932677439601849178410971402659599458888937617695364240198356104685188882633630466980865905850856923012455152815480105782653131453770351596150410724943366361041666835041993080251513737880131448683388850410858465007649191504187877541427049366289282209891650842647088755342305065496530921456865812312541237096137359372205367205173445216264346774577161798541975040801686899423012439070102710799352256108837190648758352972831608971055128887577975903423046061863515377074860171760265490960094657068388377726084544744500542672154642559889134394904777581443323958821088585416510550736623848680224125768971816723457075400943285103346553380141226414423330223733028415907544187523023232582302197332984659524020251636829696046432439950467116680550121631780657581621088274122488554680269784271818718081095513415789657965995044675302228287204172049767408332861802426521693637322907588469254007601413599434855666689016751123773879540461487658589567336224214586133276773969309504294594772573533618312493542447959255833020913239910021485186279279489852918547178378936713373381845281540236785278051514559767006718518108344645464061120320153183577124009467439680239603839483040732312473094503940335187969859774711614938769364268267487240380875396028266831682555872530641139093060926876649744768310870877525208760376585061657572767151589817395752064468254034213967049132530778894359697044384688377503288272964412306869855547300636624251716666121573541016596797659848664743894260499558219231316362764463614390425259423791781169965572340015164312972208724853861383239563218237459270841530675863862191912671724023795903461716978593796553251882920884228235254468455232862804097176687026020048907536624434096783082223906790692195783048397867093909885206204516779952450809078999713971075349376256478058978020041615248151158197961223180956454672453904279662152000585393635107246152068463657012482655527066582488650386643330199823203809547055470648385814389066937827189093982197719903150542392460584362686985997257612821109299964991502797222041186037909016709311038479750635164197975131799818081614455404120902535072603173934560515880527343679682876783836188713819576655391386338422237480234454854260068733637460772983078257310826759503857066292409806388542197113560237196863549071570756729101853228203270128584997609280272701201540032046930724587600218398801309194624995880936003833123506717611311089064922495218004995319530862472944318724223900146142024218985991271080276571769449968864172167386935504497352807654773537767806047044277468989306992085612277259349249688428878345979709131495193009152733493506142176502255497572337013100422536899415644053837403550418611445600443065616586663946139647148274949057677856249508422579257811957651086635289908691010540051514816661511311077206146423882435786345804470105819668242159881548918006797974932854048252331593839396985799942674667725257862373310240066107849349596514764055813913538242856565871707135492127230099039226049049483555962890972664139657766442244599056452625580267205674491638333692592471874935098642322846846237300034674248607395683545457277454955813563707924204867898772672669418244300969373173440543874068201677718165144530803182664513346857207204075302606508548895349656958307167881738361086411913938211792027609808477631864559558692281631508646739558595634280517250778701007140128179064747679040182384574673606329512225909659945012977261478858313920496540714693078086679677902686338413216730755353255105107105954626877890151044626782009775639847212067259394750871288133885188446525324465751876382786150568147225574171086554472282079655527701492950215426590895914281778567725112070468119538055681642283428335780483862405549838028804987791125272703898140712431789634786729982371376797945542704077036840702166259236452820920223048175406345556721244682102709892518337386709952481022376397333854459048602023502224182534165162834323143628544286531686508775335093598115335391787186211137662783857810592169747479003292888280292024482843642149564820825321246093010697922985965273019786253518012688504334807295227917033419864787002106402283914889679963096253797844944365347355704949573664208766669198002732585485698386181915132863062256899607783761824551176394654479274046869572657710965253463053103059727627297982143040527238671453296289312122194597097458334938060785142304383516876377354103321998984513465219291412432539891074351251101785673226937645289223798438788002499919153372101822291956821962514181365079872781190391150663110648148977053465951213905049168796915455572750662689246412737036444222055642574354677975030141725555143242660878621194246265013202008087578177467284935921519247990075908555248687303110877053390416819311341017320831955807596725584691554044410891974413851997677365536147145605338978981994128452671738635499552538301654707086599453552611794481567242387272534913103903013997831095776574918839925959153157316333408254072369933426459022564224127808321445655884323121048080721506371419134742472151019064119665293107930675007310408684182894894941972588570207055652648219931399538084518733119444734692127110142308090566399081407023497716880409073856981997451928364538867458931604551234188949838238303020490606976949244184546209893004731207450763537956566409456896087228954816232115915226319498643478205316652082609875835116323611289578303492830682110845084510247674053046144431276949537046747173669916047504659447588941708930419527558404603697829929891384724508466236249460700239567237513264139305841518669455043374080939429089017235458987813985813683397761478311530180256803485834366159699937535616296715358500762532065185744299935355073653606716745787404432293570903799356654782581567969393784855950201294465420682593183840741636462529386083118102813136379384246261065108192231602855124725650428885352707459121914922287650585268055552240354749196094945068615314669826260670016938911778616104139476880915468651921222513306357591655909183820376395850119852323173590117218111813195772245305064577773401354144991877972821986670836028889956826432006928746058207434227853030746953546586333365347275569013133604132268821358620666435677658730197297139980123311672845059808847344447892732723372383119768529889290916900141664160613634933541877054088383987899028926177713276679172177103102187621330431798212269785920522593949553418101628213408852522287937048786996036459637019110539919623957954181412020348726452871202021638036791188108135644771433391511743933989594011032579304479778846061129487962905647673583000903831893504679544313869447910653513498213140955722575340211130507057325241842791143822049035132979134822749555826780541272955857853582407568482993547207398750115705553022526962085950426202576800790762706566709250631479462155533538988524347028014118903444970437497722160113654822999613891309460136816119774329360889408344881774826372415256548297073051913082733772200462785470690567630076955744155862474185657669630017938389270439160116143685900212882859801396919881461258578759684573129025677057093569597606505030768474293536057520812557102185364520081130350994468841914587972983616046552828110231483482609980440503295137658630685058945985393640377340891105356205084993416978825921362880928035541380306774113183536334858990834116866684962961827955502244784620517681250721938253088092652996879093988150363205189189316775768945398370208347131709782203050622983710687344130453089595774963362624217042453841838772534346132572806094010249122631409687313490275673208566438524442487913150908122399731414089508341846965728432003797989651259876455534080442812252375817172969455055607182612133172481409272287644172647566664790695425257351933495150295828460280025949574009757057014669867374098002649069520298953940796750795180379870633998280891195525919931608907830541178706309567261083581116389605675256016658034791572241441618196276469380847419777112898843498114854848047211137055100955245743722509633282784774121172211094511045879328831322110253168572348713005354359785439243118617243010276361251642938275608221773942678861440916092827407352651740995412948108883414024645488120233587601350913771036684392678197722402679825903636283938106792656722809971197597541417860632549970299918603520980993297436625584487180618590690627690528784011996304612743889286286544713878960417737866849591921833839574228913256307314312334864732716042149570043115472353673959531772716671969746023409711141674726789759256732939107024881418838147614873112863770421590677435008550859578788217851880762301465710796019812873232256326487959496904704576087636506265310924742229485821364995033169743685988520727191704737575365004774859641386178885831664755332336860790170109593134309349765462336788260086895202976930077160162332596552662519967232911101624423616869942975403720668174283057482779147213684644828470786740875570614211223823856581884324205019419098650983538625254814591337709323351665012649731118773911542607350805547758920694659140940611663720134095605572873901475970458669531696487445987157703820164575534188457637825003851756328512066991497977272537719020187920315055019270848612710859122650834271971333154510924655437680571769870644801694416026188168681954427888437083196347644247723408102704222223720366882512163191554350215680568900416186651773356646280966825727061738182043912007100623531617092257331302792944793272191942710881085449949519211749641342864602026104854993068847918318031095495368687174002691391894824685577272502128696279612974543942852660055467679829670653815732199429894248112040984942345319889460925530105159058599849932470622417837141224298032134191112701423805467822642599543818294099651290159646108325709503863923950133219782615803079554635928044495362033103558042137837489078543189617691686117516918137750995248937381201843801967604932516350791079751359252638934024180730350639244115221800080442781469772241622320445253109186854810498411714198370549437604256259992324234364937763351308868775517568435246154616220323746891072994967207509593932023782864846821816098031670978163730737065515270022794299525340874368601966243616998182578505828745562444617291403730345322991808967343737988950776797951329943838266619360451434033208899314622314437296454465003237952651359425043151082677917618463203089785061110434345200610910847447993842543395002064391347997838400235591995351167862825717545741223175960272196247014463509926476106751398922627262978441186055747018513136653663580889871955315933176862040156462862419391850193015861275159368512438851448707471571911618951474005210663531059679627825694475251256248578311105060771069698104421940381717943601749811750607168276783639802704288220845616274303624023220300401871409063883129087133410576236038354844307579529725426434873704212421462275508938448587273081544166362140690643531256394798938490639012397969937264344040144457539137900881698867123468800382853008776014407151419408685527912118689282286096268270407603531257785614585284200622009973729999780878428177656564413530934870832232975802239396466381600186122093961478965624152933377396110867526858155582335908772317724089815223891082915718680083378750185678376084645624041039416713668663283563454199533356870579671641035175628951651442615107285598200047095630454805368223909590322795715161328220357869471471034129144335580194691490412541235417809950157965395909889635386029557959544964761858292470962014156421724559766561265732194602716017862534812830025043334318622769356189276000739598505306087002436368335912066602612337051509713942886792638198551262804012485318699273708375816569119223972195689856331415016050584528985996253435067512555635038154778621991516259330083093670009614305982000000769950976090357003775995765808405881185099231348808481710328705209654279394157855053370826728444586697018299947092797190851300931607890110338643850947541724353412743050325840613330393557568254319385979774061321279061044453783653359245937564658578169696341816525087818942940793130195317717752623423145426655912921244698363163657947185339311204583554480038099506102836086732517785078946475287716248981973582651094027044250169903049519024849572213703427453418957778045795393597494324180322101673087753064556062071827779380325772117229117560233980693571480763377960761238720500032134543460681229425434718649936517544228303109407470886272234682357153705681292673640193696617059794834646610447950140232721216257285872645569084262165923062434539566901306888568010114254207097185801725929575522047013087661977859533579119612681601383315664061450453786472245070990419354537121775500974833643315540025838630931764342088367525468901694493931598162930624152408817258107236416469007972391765052500841153321413985309247335608213885663232009338711810774573775855009674679578490548812550425442549046330987705481777866546337253299777262707420609084649605137086186390123832074386123630076048182021895261765321064493318986298816418711339514886674158263104945728025087784713912441360503722405976420787318920113609792328395938362039654878369264028761995621314802987455624921626802306151218505936044063085339202288452912199765558100188636692721917191389958936821609395174572071074873966270590296090317147078316309698250418700226529876453797937734374117525720858320107077888819955178493323014663787203903820347614493591468602492193014392504771411272072676946259998540720017377245503866712905211778143709199634223236159905990025867010401579928960882334786138236814656320561771439668033494115494645770246567836263364341526918556652550390314240432336667046682077425886117318868527874991886373539906038326784510337617144427365872076507814191229427231083670112480864901948296948923690461008036153320225145565356798289854018682137820117975341393858283911181163214766188135272557063113165020594714397977424579770792780941159505033490050709926401802997641666213173333457601391045452970965976877425238334236302262649927421759908879331787806369061147331929283497879575306203690242915114048552919712838427507574950015957118518569651372815387589495192035788158514539549203575227403338103428025555583159923701976639778839067759743771306725127460871955876056863556383339849698096562976167447698327797998214861658168405547784140993833833939825123035163056037487821238647230052537677599447960509610286580671991835271362530492387111194648692292938050672840287277876012906510182797840007773965386591811477140291546729532925841378757765049444143877076653394707505029791072562785805266007463825312882149533908959699147860837121264713605518107501694736010607143348700029209634183287256276301063881526352009142533703545684656293123155638720245129554811536656218752842357816368176564683738742165777801269814946487614271341437863249687620517066417981702228338541700254564010532484520322138268540535484429214228572812248273001955114339173554806991839099699707849385791849417462836091131783705067137557002377153337352901801868132489476077687263416412327005583519302733604650978100040170190682312949743362577967014169431058485263779278266522508502941560920849582346585301617135908691294685897984194225853931452355217428422488648585542477073016854221441037558189471509706239437602065313475794899780545008222194721456443546990949633148629998561884175103019867335800118990710621397394616086368987713968389534731039645136189637670862335500135934524994135759952574749035284456408980400910087127951226059716861796106686926766004596042418090956542220743726539993153884259927225974051184545308332345471328030248051628075179179468212596692708722927020628779410474532411073748657319978455503672563688965072995371752622165745634573689272867463465056890024651796487307125495306325081949567453166821141840571992744011495674823000133246825915847190665721707451653235201820845464725000567517322638888485143762709460965204246540954699195306846215251446672491107392087603752751695396055561366179567248642907935666202069832583044085042645657046177059114458763726710770142424639678116148799775043601781815269274485839190054378233049523887562579086656598628152409321271001773127706038881985650416603610465643991958496275852916844447514893821827915022405302523532036217914721451548947566456155102602467574306251698849522230888273531505925494832364176278867513518543083947286906910195690120254850414526050080661479271792526127034143191032080883437564253388790783046735305679904031089976834774371482127912392566777202334557355441614625238408035172901156482487005809345949811377684201712057599276868416466875008560337012470795837398494640853387935437179590306036106822434629182094044004890168743141222934890408490288954742120525001590351367786136839191551303065417055624504391542716612898194499112261078381516868997601448385641050780460181419314819892764577994340517052556325052447020052205481070922115453308884382410024207696708114362861751312431952069919838603596860687988267527458771634389925290216966184355054159592071845099692942325549781376559981481308170207789521757284707243963750109724560647518519103839022977514984554382125320965312224803006661767273192267684400998694737672569959951335897888359351266437459270524381812290314753904158101513138904000590633989656446031930894937259660680322677841668229831578346551340611956988396309526818897599637852847267204531742167496191515108100210150814597123316122148073389585922462820259790960858921541860051596160338806075395758714856215226145737476528540629889290420806442556024231291153520531127175752426917580699753114663135223287194044243387876304938204522376630436143825028187605434697094507484897893604866571384957257194856513727288224809218567550247026222458815544283851075562200371571937808567787942521405663185326428072014173779833020816699633107981772622481882166141198215721145426463499037801438742025710469680071814196011810683876680635044925760202598437301579452156580582800504645805071074297326887144321520302411365859353205812766931574197211901166497114703353950811957199686906694887079068530887621913114484627049721881034332477468104058224894530253656714379466722321272634904972332596387526560513898436689508818848934916809431283961494206164532670235502723720187772373432125455656017668590184502027989804725568271966687865155710983767466517113522451146226109058999339594923447535603211428603107200251371488973795371179573842044669433696705060810841289615331967712555862073276135203595850575360206616334717921668943412044931071837034209536240734517580349917634409306966161694682272463935608781158485503238632433108294777062791407996112156069018975484919205629447235359406210214640050610445432808973170816917949886798857171302123292133996379145546648283377548340974713554986425551339081353344366641458596281168577193239607961200485192522880565145983423555634515064620106598502395036374029391828843977548178841953605481908682010569187778847801528969192225896254586471954686273195297505705020915729404218911614632517131785513546654786007230412411241156667988683301871762682296851537511680110814907025497783136412327299335118027264149950657000597327105274728549295285362463771032834353013245417927747964897534841490644010841545054344754710439995667560453461765743594976718617858049575706583344408507144513889011622363956571453900693882687087043138257621953055418802425079960966030076199646205264047049824369273111803693659341195208458740077654164648980566919970886655107870166580863660773207891375101042201632587081403004133247821985636763933760608338028017012441077878670690578182271174300220906552657335710462513633204742268342062660440022253958470197921348442606472673238468545583430369434013716078299272070756002929621519399736986309890886178225388062106334393429922519888563978311796278618845520243644980473951486709873910931693444314864201697626734100291650475446949323322071572716710533191068375066574055499221365311869059554860968653799054512729387513926319322863772065203624888050618947197758722059786522795699783220265539239933158420233890924873219570641959079670339128693797586169735363357909589174562701310180867881985648364172925443290895969256853559396481489848650949784603173318373758906037876158726914037774105843247863970376061246448409978362996791920479538796813013959843184469358069326544763865105483247448636227780802450841396108091248998517984062058847430114855545356512029630969781393122756590508426174961982368467361700816722100016347328020717399667587259757678157151022247527862303715873306578322627003474255893927901412752792332738157607985369654782709906767624889496457213067235340109997385450062734994534976002917176342714685420078736581069614731859656407237416283297631290710743698869150500831049363684719930400678544400237122062247252038868887629764691583645497852831765949246420913180305179470040530742473007996077350678770941243523634411904732582187011263086303424077051258488318289051920045985182762706647706254763047648211922257368383816660022677016291597283441286430852472971932069567075871594570376259952582830580328660010933836823067631599152257801795802671096674611782365148671515919183015942958920444200153073560844340214990668255961097939117188347947969943090876071690809964579039810961318736318598625843714052659201968717530382546893554692264787320830762617099344420597696724872582733800337710962529115958280617804417659220386104884460339557588344357707806770271148460599363125454337174925250681380756869001042561222460262845095484847682593912698575869020140613253267361762833606010378432342907512512136500607494497779987084308237918850897193929347413433840002302293974358815776973174513412361360092418561228320812975928573392159133961526345333826773482208332853768993661696295620305193234973826220766930563287854057852161642629772140626947138468649110894140351554393928482316116681263801470683939579001450040441049194807883868958540876236032366110907501041984221115850540099047927598191001302703773063188228714551758234411772234782001877425347862494211031716082599617729890228673821150158519581848181399495327676000404581074473010623706404574022552131570653912767169562952159496724622725914060942283692326882573041309148020586509617870260251138419101520675016954572330514006370996670871715971059148125506293402507276273110016851158582241053577983464939393566267796230383816817168959604726255579609518856245366221840932206997095229783771001950243578469460289377117542292939904414285772958029039001498622019417065093488839576240974449348821221943374209058994193437213030836706951478756865935118692479330838707215043315779231337932013212815110281466961381276153428669640316807529900109726014177216622295105964385664120595755124325375902976061148155780516778136036765126686047638828389959871545025772296377613694935599264613332419563836811288665577475303175332792598006738678999768530076722499685774950968681745960487736055658962851461163775480785419488986250546171784968949702344867559913982840123683099235111249773047436577189771757606086775998303528978245634732864700704354685035494750004503694544694184610005575765194981838400307645473854118441030708841967824672714466207075255948916463862910326515766140190970025781328765190143690878892666815363430352315290258397323166368740601763635382909836761765506252014986490787268584448886338291458649275832739135905671127076301162159694516456355403626269460903651649639328604273562635775865305307013554840680329547852796787851264982953235533728639597759788723344589578728051558281146631988204412065769564043917803396602722025561760888468544153426764431113364205604440820346663246633513308551230333119430250384444182323695098153457258885897594938927220182277141300979762904465951913754660633142997149205817275004143091470662389955134752707108604995300452061556021688161274961542081657379145399323969195408114600283212130498214218776669095413593340589746748667453134487737288131548188172772194922118724170497578916236907157633897139517033574275504729192149353223546967856549012169326618210482657711220699030240140425850100041049861853193791452485260156825641014153149472001108967813237130565402146006693070857615343620991742916860475069970598687761051370372939022806476779225072049775161037239549708580222923792265609119236674072513208674872049626983548166333494636090268711139153745721303163717786429599479513145459550309237023240789092997010129221677257583047941147028964746853285171069628974317029517946411481719513867214882671439642130207652399775072345031953644099938151884729910470501984927093883699117318921121878815074606989434404240813061512948939234553850668235443928968867784841824430817963327328800094636643573956500678586648448218447523028609714021463371306721326026621531448418864255884762044845013819808532301125029217193286276052667641751476799113363795004096936495007947565811666711427106248335105973528679985639608779976649399688005142604906723303797867544623315164507474114478580458463789263743602138268733537068828627919296725921310694156374744458890251821582828263120447445411818763806736523881471074158992293387483902641061669080958427839538464210504586732684889846395191846434354801974268323874601048478768167495368855812156482467950588046827613109954348839213227931667408559488756852313529876468686006817899502008141178917493282818973459895555741314262859933788534110109422211118722797753661093246737475842927741807212213580202107716541510809086261756638513655777968301546334221032190550193963554566455203401902030428319097752262516721606295796551847462975055719018371526760834157155821399664750376229919855322201227222856287928780463746421643804317001559581010520455812649891013497589139507376228194409919433157066483864062892663965632047672189303234108199579785715520369906867621466766553871312540617202734521378731055424151457796039819245503039541560055708618712747783804031873709624969753096931862687042030042827817607771367414704191852305130541040858815607988553152667604551761035758119666321210599834941990295371853518269095734205547297433694910140006390286282758675332278112177794540262759956411831115906683121352293823065001713187260885255838520333137456532922301058296425294227048977449571868900286842217069468777524239821321918009910187718062781163693417709192290095373288507603920245670997924405135009618506306372710522100659640008817466654146101706869912999445605416575530329165742275155664433547284849328576006075589129959088322805354937517147144600215211632667744569929036184656086963015696015891535493912526103759655370880254926608066678161836649065093036097919819752350884735317973855273346598811112846454565326389794790064430204343404922081502048359542824129442099459440310308726060432870322937410827124272877103737972020155570557309221495916339355971477618128605600366197483363189928783945225474554065166703288477398424703645969405162259644673675231677644801834200797393216810116958589456947218745200736082161964565011770587192937102608189719908928734163969156933490135290341443302683363363813165768075333961967539796035632605699603587687591647631845745302562620074371277844099288210777624528834533735919695576801897783184542470644951622123645681418551527140260044574889904155184942205655898696191471307016588241171924508364626193371480178086810128120722971816827682904019879257741289415859409384722378180678320887869739453160150138369895455871404186153440025958383813348548395303061508616614478732996287506587218537046818601941429654553012940160348837100401489954784550868558469979021594204994932531389843686142266543668980545611993941717763435334612046894849273908806488455583774253175861325958751477146552352173112165379295253919814517319643781898458827296834216735823271645280852485839175569054061665958575891555849748590810388007719678704953533608871635137128029998544162362545360811870105402851870110017814169791501697789429924495438108232365068735780948691227147757190693554432677807925077892407846799756042523936362384732546228789638527326669047847134779342031665931989102346195212112493467469392501160452006948495300213524835051177385685708951477675198570813015668992227842564546477983006385044609341297095057062860597630634819202007318643677695542954437335897441687130951268252420009880896477072651120339097175408381001407354667633149240294637447974261110466412320529249136225099083971841898934541186407577343339847941771401347394703763046335917203080019605749741692174154163494948898944156837667665642003329475145063870674165928844708916826909990345797917264688272400580548152316825165174436479865083821575964810120520887719993308423355002774077433117859613844887341927765208715576576437527571218658971412864823875479494701349686019454583200423572692040697852570481393623297922277478877790285129320954825247528427420489982222285605092269115671097818961762205806216242509670210736358226465551663821352808658297597915654555249528943126244481728226754888383749545254890696793549985666466349988397276049452843075382470515730878801986630513676908044909104776142072966227690808958854075478463606434482151268284687519427208956578045613074484044120647830792437947228031149589982259598279613569430259787375153735661094985143002631601438395134058687340286574721784377867142762146515241220287248226854596822261654074389020890295752066339693672908924336164297913886315942557724936687775842679163170035691993592355330367806438001505367556976766217124028558042529843449088991144306603334534431167238890628873080293520186419370809877093446643243065366689312884844972553582155917687882764785285606547701132164845921058607718194447788520032959783959567409794012017419552202572307508943314174445506154532681564029855324107409399940173606628416831713072718784511498898603694333783501253059267233328009675410615475295246329975538981034793278412503730742201371513131015921555739324421063443429538563499302176326545791259565807634250140991864344022885528350017692466813626956937378194654396721584828684104159061679643052493947640024284360314438592335168909330973256305351857402505150141178422564816741435842138999019154348104828559964880636786272241907312778289128507672693288007867232468867010325076173298820045764011143956886478350432321748691371116951728996093516801858648312362718211477309336619684102052278417732647103860410359016860280621413176391432763679122964890081196685338259674623810661797126252832321286430164599307053544242265029783592894736569594429185728357962169220489192316784789772604300505406944659448698185080735200306523051604257276613681173998841114593047995569130866579385740974386031300356797965179102381756492389199262503990711522979213729679455106820918278306828753067284889512069791714025313422730372853309594339049722278554394177228749117509724837093763829863006191574486166478364660502584093166991255075821536933282153013315278190801842965631129082635863083915219898933533854156329776620008360208669572268721326032614737857782166681444175344363988343094114725520732833540374769095965092586349256857278937840431561055908705441315696689207074960117049824391128416196322126664038965169291466433583526034845559987939381460099485615922690030407084156397874431946265212064763604380737810481831795669648756407632078628116172067896761986171672850987342850572653744806608262733170669265328116217153568597150632612468327293205101342816422393651717689566076417720871091084173535506847327855815767054922665318316370014032224496692769459515439706500760983742628322989351172991642924013382408261201003054623370875935270734192951065423301147703309704094337412690450109192583128756628938426800799690763986290802525406926196368322462140004868411970890174205107867489739799790914034576256470045112342651449920743716859517505010563819393950719751574065361504680945559487470884154605457528316675640951096107435961044853946316251397138741417297540560934300266584851028539202199780322959974442357818964234143168761042846968045214265842243681154212422578426962987384626923969163658544606752564631908847175364685160271638850632103656259499412014373340564959677420264790390682718719241715284712065991124623241202843237609893008943816844362570445463295814861660814086330531039005984101898620306608378115270505700797079479283473416033075263418629951352017131987244917353408871153359609787154627508420428607578945357495680660297728082790229863496308471095313446756427037907103536478617160331805527909693572623107626127229918224336944957529523600149655273486505280562935011195013496976359213681252323075173876870560828722251862696016203531936353205611407475762037795985712452691591754233511374300579247616614964629614324571556458511847113176048971920560666818840603053397325812707059832973746787187024430087486055364286408680217943717286272445018873937641300086304917666280512200259894332879331933390046045944251094780441186915668763991002839368613796238251690354698150294622630259220285933825473618646732716209121490296333063661718745670171575332587031449941085311040112290434188153320241334982339393629716055712916031684000995568113945271989871106143060295979435764349176495429982742676305353038795534204473623041894016132042050518730190244370349745935538147866894853374347654404949341691270990819050609740947783042036507915419082343591366149841767671683570150213262426647665276727630363276352255253409945085959769286740413771964097388489890897155101622621190968496980648989761356472595170535511982683404023355969981805241652579097776544454444758149460339757715856219682685154200174717384586896561488852454982203406978158953736642796665681971048631003087339833322884165699651195791826859540581252163593770555861953015639843177227139634683438810848762942022448025808978199266735579206236014078532849210484873781032457560592536431189465759065832879785441015930603558231233933448355519605632503902232556181536100157727801978943245933809261924928420933591094549111719920283275565240055318112084737149704352597485352022053234670348333901775749037653739916901805347861453129186976132124346700033001681540438996140090038408317919410336995436849947205278625012419756658312489214306839336521875588921985394938479393719180803577217926953890024156828396899906586733474960849212376357073240505632383585019187758791801932458534435096305873660842216755064657434512981113654151636056099544382859354873212972703317345358396613742758468933875499535090672854197066052231681275431284937904050894117990976893915716904291486027392649540125673026512386256421595820905214920525804290236438660437909749406188085842472088032343346480789639325163633619258702434487229704530550378988623066244200475322134763855812049925044161463889336966299089209956218790061209720001366270952525978018471776830800880876529505267451532071982418587374544409490440633947636640483798909326688610705449381044752939306623771774258494668178923725187915299895153855371435083919944151922181212264846516772893067841968540302030733765346970279797734743361056127496728119301276822621136592370930305208934626265739858551006735381410690781265171440345467078742956662486364416098311084528875788039725988725831158826352271279923364353394918306474170341155881489111276571660120173164172305959190038341367423729988979199666661968693866693004076725972022734174749609923263723255883688960483624105587832869622247488154230921393877834297450912348987921705587185017015645206220898204219392107113812786006619173698002722472452662579979858914246932636321496416115041704481717998292746656510367927217182544146375544065265957133741530303763928950068349835457608945544260918892824318113482055234910930149163809516379142608254213875600733664378316508775846048531323491540924007279281204155948572776261795063084377243927035658332623249420867042123023052037815028775918725955880047353657033694287292821093478177255153581791407787918267762703251338678445898478912671149884906614371826555038979077512879193441988657226850766746044339948222481969350688744818408888687035553142942679629667108021339878988750161816360504104700928179715933974800247159591331434115420147307828103651470058250256930978220797201312549466825834868205701197486777878606341558147557319834908689677269569269436435618673213840139572820527589501298580752250424978100960656990118032002593808748711011949204740095702433849322909422677305135136619940516122629504960683820236854620591367344088612158270731246735947305435352009025811662461333737669476374544066248691537343300468258439609956148408380952525333769806852928126093509004577877843194092122396264281702127904019226688562305215620934229342210936899218848574070570647745778279449997026215608755600456004137159894059454004384982871588253404062535802804307852985571595990085160899331672801775223111190517272220930230354273788642328250666613920287834401516269623284904256636926475915607909399225315442936738947781005550404130520188174292447378213082098019517293317343867827555849763004619524232783735734045721023695815218647905308401736092839336908051590026960314566043281302954007431897155792534568381277778092427053186308649006173691450885366032145585387038156959751339536336579083341431011911040204056802099546077439731829433820111566898782445784879138720962650285662192724433597216638152775599504064846110747546923038664724324501317355531916350978390363903435430665353144238214616080724220769742343326908865243389614127433470710185950227412606303272345681767494100541173349638387797773598029098451629179678217969339976738925975143798916929346594274641383209622489294791251487111622901751419249265931016840490788787826987249769937138687764808991027830463375868633859736694951016064670827158641424375763799096110863788992093184075059333738812527087177635819159148632382446231437864404744603260269543159380865369287742672716094585450894729323269151100242066752362442178709993463457471119241729227722684187485579803976595576730153136881661870904684767551161713609170067741538749451077179802412655948316284314274612379315148412719765600309542748305359285346673230300424226245042325643697265895439668383454824897965391020482627324099910186014259981167236069432507354915412798246656810292732236518738874656753628661352623122804163871059801672312372326045098997428608934980430446882362106852827524524884647168435249485060976812088597561235177665053858325322794605057198999049673354891970124856662518281317307855522259703583382941007579149597719400853791593359112065218843368494935811039682497168348490021129352280492532997410065992255948899191826665393768906265108496429902195926726456159030922498021781216978954642889434803807877255817786134578604172068220779049221151210062331382073510968326606603890914017625305319911436851943594833353171213397987709290751604877569120564672641143867948418232498619482383340585941035150788740162109997928041040748066616857118666114132449990411215311055606077671491594622456890190179036397958408673816768979515137026586251355384216791118090763452601939417560501811556311640181830279031318925834314489726600541152283236209723674182321387130797037530279857859955186359241642511516201457951440326649559597371125576566811574567807780604527260343781704320871910496202566961099076558866139940767923860614992315175270001023371241150659031879064330991421515268421504675192776283992194984626123307349223150056817506385353611216728984492564467965700816972265998276533015412665710273241398090002652084401588491371408454061672583673677354104107277561147552738485361338809347154516488351888717813024655144735328544529913785082088343887387764644517187850029325779429856368193232818314389620490499847302936028512111207349262629321552488198855419566406736703764706306191036315797227848551661217223135247893377418382322140219226353015693823376209205188760202671684729116165462757965069208663799006721616876002596666821469404698819920149954073263730642895628049363089111945767578164997057073699548917672882319490211585823203209143962922299632285437064724841784935041679364411984977308243565291645352459469533302453070920480524384394314640300121814427627956631704613345218296460916332467203809945789166792937326146470864569075523063368539132483607218219214179970923498412318497392981680850646439506567110970893424087790549545713521369963668147935990698980906760953462668644133150658800500439741168400699851773117003812977049066163388061033736415943697010717422055161001154542963970041254986671086280178678757898544723935904681833593263330967377894515108096023809872670493113848777971468008147968160510834031866264745060932850684760786698780265445497968251189167228152657914152284028077833614191610778036665149881331788116499512295935908811556158015858340935866464172325286287419549136637767817098645222892613579997944218315841741174225388204267883984483715793400329219467398851927924965495368399624585132362323202973332582781409161157964105733481269789107202137078446599947294763583848147526839829903358304490637496707065940585936352896373644601184730241587963795084528942047220178318431375230442823098464637123764191316011992117490813842568441409442579883379754461192799623592397118310814923715507002978580995113565848522240976506691182279275485728577723256437660799879837622542603769770598122149434118057448585728313170799753464418154104890528898625663754809533446054605731981240364915141159749120217430581065721599914489010808686286611575182253953721750143698310680246624547254954878371220746691982905889060379202547695915452901420826882662550258956974571394841125940436867049761676358578530596878103404007731175315661226366728215091831456609428652678206742552746348087668727689912734114674582159777910526269067904458707150934200361771698304988945620267830039008862513636838202603352059490612144038827830768856936961596455741006285362592721210198091455497336567509350102159251710723126184636158516354336697124137736500309193293508635837756012048977587978799902031305252703254050602742757312358243002656494673608116414225246150916132829830656894956050731394750765346208255723120771470404774497166621532135304842467015798423472809755958686984756956099675085660630736420293625109456803562721587167030028154128033274933082015060991594041174067013007696879195906489042754609729739372231132130274161570142474680663000995019249769170479300828522329574783957183455379948624208134243602899227090146825369497491578871401271100775658579938675002458978258076692013381513953538723605282610249686200767429187235380359516835792459950302671781738790056270750795457501421860439212627770032685475844736457837615836440627124910618682012150139726625946378992844327282829545395865290019732778350213671239173558959972536233388059365085894016763955481747562769357438412384957439741246212024034786889767254846431303046136259787851731710251057480063728808461772081970021954120162628309861058537610337200740479113803671752673630555778487577372825476298951415111060999713925560210617590862894809076283473667375337942855667125265312124343746270742801804185834580762897422716810762206926282724578301559873755058087592772244341124728604698327871913994376945707598983581505747209454020059476383366714829267926136960180670094310195984338094944144213984050183840595561675651045881245367399357791788269351708048693992275034034139980572411820194829042553666426112238952403883487564057677764701649369720514711936977117306407127196163216855575698334310055634516352783325820144616140251785746252601270517684024083779709401521324537395373481595989064970745487098445500757279956187747501751364266892100956028839842234512022756724155636342053249604033256166922169785645999568443070760127882765068344721337613911082220739799172824482552703094811163068963559011783364354918583662012311429361484328521761821884748130070777730868440274180897593445205984659325244651039032518548883036605557602194542459653402208723999853657731118150503459180401829189030940754567433500973297750538919112306205951530269448672169279157159955703606287544094938411955078332105642462248014774471289965869310726476064244070846272027588449782647030938895926796045930212899578454965208049365697511762260483268403047319873829576757665590866151524496274761891391017126649353747349054530129142431216885900667378822187419723354018645299042481403659702778686456369322985959811132397279648390444435886297829035350489904742822134175734401807271206295369928224433799464294281096938607124765429746794033705984183408409110462876283415934595778597395535639083248401026405464205263300673850453837004371173790151556116546065728974836514982147870844515583633608549030313988892255188907024673255820367599935656050906879843044029089459246327830905617950320925880019019783037265987953980650752849075283049894018277278351956134137590008047749744183436591502448077814976696939624365930123812781644446288620289199495333500714877107332585831767717731046107013434204057039316611672639643508823118699996060666082613645763017113097622004483381786725897217958751664066591319939788371393289934006663991453340102732319697122455465173264421390256413159512137379552334786066207098011600176718189565362725065625704578190942961327750053280483709930051559187349881778247078868290849018205062919691197323239764786663514282381725918209293231181497902587736429941532459032073684412941370508813723301692070258230572071004728044185945058886123161886309814123502743943673781336615647590021637954652232151845575068280358238188622335895578351457576693742527531423248273045504272390536399193932697803304385627935793883525212823449966897578477271136863212709913522896144341328770063325228185663864997996133741932137154349685645513409026332864136087507019825210408503374581254556519206369961048040972357093852393685174356580076293814330902690779659162524121295368349625594912715552337772840678194245082496650947773080823354876695551049634664967662950443556199374945942294372545996117495945310374843709222724842645794353942136509288689113479383133996832515556335010359751839104213248163355293458451493862698218854226022181199020669440588692942543085497190308185975410983393137516631611969740759190575447735082976718463974809976479596217952769176468888324454271594852823848666285986503503161910753469528380924300146075877722167035288521615554709365958992994672524085431748040347774426337854622205232847060382796263662491985299656871942051907398017377016323329154103311457745157415157676455142020045688849614786494511404416676468264877764782800169235854986613516475280995173598273075766539115502931496128087913738493223740776792840248522122626914931868493562476825767053828914077225340528962399370104356804997864212295494559436661222457498247866510888710109170763086892850805835166515193562118258045145155032817462884691302984069946890339533461099272185710561061251696073249914824790697021487323197460953158931774304535793426157392853478584215713168924646973840700147293958272988744312432537702798699524610227156025896199485162636120325252338943258168103562837117673994875654450233438841978328255256810570082444658254235358063002866396440107904516776656245208998239730526663069315185787879506699140757221893250464675736515972186469836646524220355558650805238071700294561617826872495019230495792197527478032161521671239454792835012245206766674696643099196705254993062197513581919392695614046604908031078471633838209328808692242820800944760963959596684242935110087621142605809859446746388019627156611536745107076974007703768171155371970269788536728257727411101480012457932232405726137539093130162581266461577864142309709081565693728730642490876822932472699920806926943539788888137213491639041992429134268141637914976998708102906685674874649391387591434004280847405991075508575656292177401770064161684456168925410811253057002023462330263501397840228888760686888945490141402135778149340627672660511073592628244636299980426805575726975929586437987623814649187883191702164047035765119384064574295858762155579213274439878110979955321689066025373057462689372065454901825183495823077474536166346288902240245485531074048447601311009949236232752232217198721778797107277990467970846830678540605336821255386466968798075267783353632172612411881779992205605292713767795009553994156627741813748306746419958647544126919050062973558073966780497555716478445227637084238615895814631019937053588911539131350108155755160689012713876535574525189447258722010993687209992156146652283682311574631499457202267531646034659447043251600097413308642296740363043763041828173963950450827668301507797234606001471660833882569346897527598827163172610676561012058604207310839237431812924779620251685877495674311251926845830507381280634365411907243838365324988130235452558341118997514373994981560700826499732127912521744794898095828271947521156730998367271762596828718409751544376436625387897910107207612863341401564581047856320890112285644064899396704153073672302750826599271233094263515452972132480528437809419354454294306325746440529487783008815747729841033279991202714824220120196034628765644331078282622082008334001968870678136163368465124856721280315717479984809755451886059293540755857840042658998981167467589363799880356008240168341055441148545903524328182845604176549634989061897229777139203362070318496218699346327376350909113280285565572673479096595485633358565920446645284337058218121156220302204607976356415176166619966452888947578800551814464122410157351951133955933444721240171369423025597164777763135095017070535657992017063638443798099596478854284490466328621119329829011869274056585846822718766277191582250513671180069647425150583517528318368455177688011184720256993122482271841796746188493054743615440050078969320693657702567805711382245279482555800368007377098560676651180634000895940070336599006586632890552149712736693843518874781842942690025899149757561358979912199816097950032806999032452642375722555579134045676717818987358477513825312367837022469781238696429217079257109471579512079533544130866036986645050563828305932273288284276583413673003218527747256267818544218107243521774992631575436403379795209741864007014565022151033193529728297697458711255096050618342973829004704575591976976188859870020070608864838339194492078828501096971002597634191224045243298657057092360169039240514314782450916546540444236851650286096413071118943325892450252793165548109726812134236715606476042048392398762793460188696511439624400283156259216178682262870211164430902552273195317002721643837760055846040582399152089476977598067145899428070216262464811380615390581790803464408109612270106616643672790750070822660960855778345151908933047741849627537590944703733453191534226574859704257820047563878262895754857960783779000183254108957004146331727980890740889533340890058095626645804036086729159544771066761595704215888734183076331471362383563676799395857720199420949624150708533989882955570238687039506579160282048020605644144824203059792342087538685361063397518876391249018717805765218781393904999341382278314741466878474077507302553729970631593676691862363985803992202963077209813440977107674194165026116188738315768690731366873283311610943244194165646218158588282436946393837994743481304965645014470723673044216796784220195124619385157951689357737084682629244524861955395332340459196707448052504695066660060446072580958174314947408032596440421608480451605753071401050155390506627379038785846885809805712274309285272357543025814291920654116974179137983111074319577097495496019756090955715796916391303850192120004036679541314184602714876553884356464803452209092257042298945874867425961421632959480537587523128813090630640541002217936503399816667303171465249640090226773499921900992921527791037312596052286668919490502706150805029563158970740505421716254151326568918785777409649034811997570377681967910211485116249226122142570007212302164641195982159992567041650808032540422693855729367908363148507889626313792577763753102371241769282491935277967515051677816252930891794181598716670131882764487390262204204509094777840027853481169131719555126606738696532595706977454528011315128811988020424874649645813453951831619085520903122686222339953363718994615865391910957293080798999545318164791634473053262847876748158643005462130822321028305828787591349130538631166442672517944453320500025996162373118960491453263608656241485975534805126553219417673134511852255329233494656460896047847309831940226261789447327674941359564871500629076015698583359063957519467210533528301808078802460064970751750873712600133299641077883763327108400349401518894353283221309066521364125815505549208279177226325663377651003952327824292199465983542001907031255844997875736655169058023166442766188187631323536321132512529134776248077095648673593819420559563364477488865113242030554849988297103821198420849180121183106895542796851914850577254875833844634324112714332209610486831278872256537394394359002859988903976182792867994151080087176170440120733794996955868146426507512107239543591756328517762985625485950132259639965977486081571597712815289201081220038839668234134016033680087147743582235277174240654464024069443212882736265612468079497253114788217376507977180018005269920531280987425375774537636828930493166836155331081497543949719498981377008384790783971131126674429368338796432094681233394388175327760242678345174032987655907883869046540648679132407705322412162569892142843237290616645406981348385281239720376032614930751970088262992372636737000052724839704180071564464240805838570727973888570828985181883884979191586800267765973524026725903005285864299905882326866051831524825469116075987126947437665166362048905966423440314215062347526770536540054104120874900580927250687407226299398169926699465580634391617825250967670191183281986692494792862540391472483466376864683743642877871856404320337835310185530737868003215878809218588514432192323087361458660867974281738931130341845349929670714692213928847082414790671401406610021059687188365073333478799434241040347190266880773977339905345768535766849312146350438035276843142393137118478831663712649008045084531916631728758487434100444070748371177811901961230693042864703853560820329130816291851283147538729939227414944205178112128705629124921680939906657152352613870251931826533288503263721014818303985200962512466184741798651750039436419858225557244941381220691661186164536623037384599489519955895882920080732521251888617518556264690001012404272318197688651786075430074409832630829370203069907033128616961062943246990831437664360563741313890078932106456036050633731692438332490117782736949124463529494307595207680125132876773136406924881069890657136060172956334299577072901540576043572981471932458120500006730835424278859099507708786661374258904444627242983557845428955846287754592414974803049127829257465282201017838375908408138457080493795241743586533382693434048264589707630301487553012595572401623191246510103449291525024939710558594137274580038962726600149437218776013911158263863817237375368275537964632608017512015588492467765687692451643451987588575777782766858720828516958049323635644191295758267413041380914307880004177075381414607933583138957832059608096729734831536137026221133762871472555009855002176771524994036986868406953728501146230790462890369412034461993265156102132496086311371926649633264881258841279597223820740641286290571418146764692837608370520839626801212521196704814514290771512742712720909882986300586019534962024533436218365069154921140782199406336221280498681899619951874593676902973903593478723852344655023810473446032719820488252629962904404971443657696203995325571867491758651045781547091612541231104326955902957543125556597294855316795969868186782770789337168773615933926377265056380943869486306627516829144974537648161295065155346355756962760997309940858027195070548075720456986559893125949150764940710333126961097398298333971226974100668916673734058574055199203869166899208956969575484027367228252538524194293211493460609241925641061423106346422373780516711102710699044109053163312427494778222083115052428102736777301722928997527348201473621634602684336831303120321010296554430281112954945563750576757438713454306195820807022683919620906262061362229581336559404248026421665407451371076943576599990258246122641002917345207523078205368050727740872796232987301196414337603490141464348506723492591227999149237676806804034177355352487770573032802827794679331673832254316785313187499739964284557772493367315602406090200348237036171596954373042152465265235123531308024149054801233218689436287122514516713712825533123343438066135931907519876394333894249714490034479389748989804701147712251307092790621659673784770808975377117264914694223817770952989210217787009227603037443638213144102103865268762822962038151839267356337209562524901560906670288799676961552610940648057925105021795362246412263544146690620088338910452823993073337274335266540134497129741037799267593541223020544397685477751467113655941897889499563824679780402540340842134235606091255756243177503142134410894345584349514448675715423418482833655786981731496818577364235966895351281899119935977092476316083463999598265666797990093385872767404227822372221035082196804644607832635852948109728009813462153553763237281720422135867879523219512549760169356412836667688169369816643763301095487291631685451620513143118768002169737345506569112902447875920799449088456243929704735069431722744578674751017454905626508845563647144419658135080434852155486775080196380056349923482847868556349174232500934750834525664997253779217210847188890292395055127543207734418902598863107700018657454331978638878242142306798938545635227459871712652828390599075278529906136065377464527640167401913968813806279071421145597308819677249546934469689043749340141637251556843249170628327586533169889676708798863324530530298395144889757201706884520944437547696057414675625878356963965057458589982446378802380524849630642402384198921936932109340055817504695894244255863475328762673232457546383477061712466488121344280338916768775525770398052710231519489935842579912872044275309198084759017154909458382783685189011268238388951343380858012026800354729963770827588940516898797562752672492378137085550345863938088735238698714242771095803811688096261524269219205013158783754746503060278778788046765615082794726322077309919765201121960496391366956216217400143372184690969205396286241548738629048955282420372767700550991147772875260720775923598731793312082457335184469280335217420021013984600990276180824078972827037460930391105973246524947388972096925381875650406953648533104775833027710933906701022388971643680475036970280139206899193791733407771629563310181267014124207269030744715610880129588671008928977025787288921261188362522352882810646034863227032846951184570773583104163574701388525880879903570763096187297364609412823241694448968558693851565991377825710480690419848086201907336384124618718641161749002352998785106270078038302096036579072837467067220492041702880324358093812724300080486328809361002559349667712102030233584825217922291989838328968770875008876375599569396791678124485642384924825109449641544044711894588781485139752654123822009991596021451826091761644482115983185709070719354591705847066415461399665222787364615670482256062582774998829472214699732284953259239914225911357105843858873388312941648699837738758918847452525445505639807705432125324464143030598233396031627032769409053674070551451223178076238790809520154948776473296122770450754633836958515753658984371918020289656732245991722070819925985221911017261923796837045031781625766223085851207802351207072404386040009884553356794538014591338926367326959003470049729629755114009720905324711880343193817288107403518259957756206568949121788966366424120952169566020967725572524629829345229836098446418349534583686713291445851916417552609928260007099421598639054579896881741624371985351430206161142110136322716784076820589195560104471008057182393977573977795113606885098367802111713747160871893363080036698975355800707732480770471983915508897038264373395979532745486662608791315699630990860541862443897333313607544319511625069401464129004300332473715742559651393032267169168253215866628597163653289705267047111693687398538803285999418353952952302953168779259975645159391705123158834297926667485026196240565498281217437781286762490469195829042583018326464725983387280143637796740319669606581591901600932631647459103144162427568486341617617422482851766871191319976592604383682439668901409554407494264109928591842504430469913478712305933272096992605203738897677369464258054949978248538592419089393790252672805151751808058384521498303287214473532974592766786319323442907769771334989314510223895979542316171494627824857489294866936995397158560247928452491744344023603284554042552471204753398949222993101306961161922227642006546873600974250548657522102866475819728534277045711216076105768165450303644452804931912161891093290264987413411486752522585033136692017536867229401585615252483858680785956667992281959932856029502279284064254719544831368986297234858553189112875609780141051102060871058294513598425804680204084058800313253945771692010701649727794787941360000182080639297480387966332039363456366648531601172450975379456282893218236242024017602445700590269343056554324606591957509935005109717348584256537115801414701728570380966743229256352825152487238772762421343978725104421201864420038654218873713718355948650559987030264024940876068740383172702323225646145520319927296584629837374157428382728904283949481701509712714975820433299622795935271677429392332669244815383587729500924657722361961387616755472325131147229489661526628249201234271700330363076530707127344374678868123739325061905292235596776697230891683803768841767634695018458166504622550829536708682884087621802868691958145605217691098070035363096579458406663862252046181314517226735043068229373183540884456049911170783786285069205092305820935009116854166437776336872819591108526560890937434826416052283745016046097251775471547721966604676560862545528904948069907727877465260533539221899928642404766055824745079515521832716786786808362783803076859336524192915117769525036753779080876815770718327751182475152375149174645333077175783985645738850528617242966654008504873257616318238913980908194440617201052874598679167459931406809545777114765442303925944955647714459012034278637083370877521393472074361248055237525919260045219612892300992546305573375607304119655547592199697079809014692076397099359901453722797966769582855063930105826370026576740050686466258434407913659887094036346265708606338768025709005310499243270358990278807086367281482854626244248725365965358284028686803341126219360273762090433780355211148441319944021196268051728052955305676211304558776496378972227558371017741573104380824244561046396429311892444078921678488640024160075631484415161484695598320909796293320451745271979129562491953940942732208942145483238957601647234977697087114314911106422611049102718549911405831515853339051490811695106645693280047597428933582629175902151108199775839671418470204615832898177990793558078650085039839525373600451472121399937282052760560269396941838226535108492634426966962858282726048583447314373477716905677410881438610563714635492237834040493517732131880629120728086200809146152212946214355250792572011723086973072436807476603534604466817361771523302450330293965152334681433980922533841041768660078630601363668835399576066804896903508613431167072600651821240932325704254281301744562527565268915501273989104051077566137737128087800759440993233965213678531530244885360747947604237024498874778954387595788607250050952711606924365745151240260274654936051439228364773948162272557445851770989831564761563454347653715707413650634845611833428416925676426865165879833022566519166999215070236936846161732794891764753230724420028463217913164661269883943252995480297725301905480596664471833726998536513948942670999904558484734167057412030355573398921713606877485197499464297932444609102237198329306000454781665190734114205694874175633521658968527600971301698496932364501826177639197086274338710935182318728739496924294542928634059652560773342372789100286366129459810410522218301978120309835024080387325360137870891192941349185187101901176710926887452927360813139018142685348149752144962867080518133884728153156994110473286552324661151403180321224023302421858082711228336751769869545121497719273101619881547465995473988705763391213673278361310358021584993604100379113352507930968233451727623747870762924741929424620999907491570938490472397590807791440334223287978788786528492781157806050893311586392367004791474185893148529585201828261614306241020545210653487399116112849676501997363971910779505108778076384151523161043204605695159907805398664524763477500989058724064950840782340807873893918374884788449596121584163240768564977473250293877308995363638738417601605119125046906887665175126197198720817052876092310911611842344996991974167963453053751950956766766089908109649517301217471685867920773679391525870087732586762782817266055905242545930956010331754187052573230496744252954675852891162511491147399688676803459009768077601491487107666019191764480340777616562272303097738016842902411636023184818854762033888456231813716788379413984182845877407004888119915218941336907529628540735714203308672963641503733809058520814184279550600708077414498862345929665715362785187532526042237138819632968624259394552871189981772392411888912607159558880346349531865722341862494365094759745598215514469854524214402552465056621236882855701847080741202548359268348829188994689710388240747445973589934192064085740475695601979308393170331238215672185602416884888269764116939043404947483412826520058962347385799970945223969500534955490473183064204981463597637916322076814447097088729879603757776691135624468607020608535150842393297731116712443834606087239373505895995085976342030400860259764235808065900018615404924346702885581901139421831730194821426934718238297710201777204320803222970766351719395154156048514417576321091553308911994800707671341619577786305598807021507458606928746975976190997887390214765775403402223449633796054065046393295829367729976406008113409518443310844305309848782493581407808974023751348707437913196106869874349872938787581775577013408515579548563034237458345053495820672513401918885874701697036292501084320494468277268536626222310202979318103241705119116449583472970303925991379540327400018705859704778513811480267487969992889210692756907559274220381571793014167331743796824051446188314396037017715923370519579836533704781361549463823750505223164208355062046074732908609619567811510817329170301335562632933665410022908346016603153480188379049473135518030230911798025532672038235501047780676450821636701756078909250456347686560038689919616514886786971237682686409627210483847127478545225717813187620954170916394052873402730598098610551063906176218519104131596891810388627794504961137041083347203376308357828841032135763503798402396273884851471183454346494434669127581119479666896626753761046569721734058343997833058119352612964979991878973314893096749669138604463111538593528261312547305624565103098267426977149934734538930004954298192825307684210532446057977834826995986955804003929767266771481150771134193443357417820034518491380268408492347734102373684378287781340611794340421334384427174288775146770928013444525819029495232759287974058600943126608872492308359631410182567801917175070853299064556313381298917009054086787428330895011422609045433231947311106330546873031578394379354369431426138342342835248046738252262909330826862286973181743595959906146472390866331461325753322900008372650932995948701123773981453969717365311676428397109530480078982681504846512259804370442683730558014466832028282298381681539936454211296011552489354135641231796766240992816046390618923317231992969278861595455704969563371925217270106722918395805246071560088739960338761072227672151928464504744725288122663611008746867303093168780995426997909226392206519449907250138756791336782901122020567954167229743417197936071225288392695148361050045549151326874047597190395781386096802648676236309774847800226388055361572839411592649527994067785433567360965360174504931214421122496723921947594051932065073214410823067708040931811325721062460521374574825065548416163466480456903454088055877228487356587409796047840967925018884653959994603660328990416954239848066728612679898861451254882952435951752863752719752551542720648858771516068085949580228566456668631154611907295398816846438441036838905884154590981540737027976252109246135723710510890523891435256106557015694316639248008213064434196812822354580578704456413551791072741804872830203926513967003943798953223959191414386651103809484535231596187521359974832468141335433956025444282137804162265339416890844819519963957225439468118961635608677127131364125748837800966554385319884331442417754021058669349197565973287400562498464321457827117613135492494218007450905440329632781836928042523485081059367483456848149603972319256581086093881979052684550718999366882706936297228343935392782759928352879120720570967740343312121275583367781926807980228640718601200004456873084995465602707890681025979368540454438977304895437371277008453273142993408580486424453350979643555047781531201467870937513317895437186773332699827380792520429581883660579936875316932906155527525700430602050324515963127115922448693867723774125854341473372331284174108210211810254513056876917882072320616075489922144659626647964188510172333706445525302284404409698121180553280761818258650585689805947971227927240049275957828955410092359560811877368139351787600134570701465098767530043895345126711440709000782078391635502164393655575600383271315262253495967874989730769032930332736672639660142131376038398012218801808500897276591158528914832332654890761972754592883964975698875723145896116936154624527472969413985328653534471566940399134998561903980556720098376847976217219398557856100397737495888057339029560376974958115081756186015613625558121695734975168579465073703311454146544906983033392639613785065814366493316075054365355379058794628643331535188261714802103915392013532018980756035867189324106663819136136649721794940842515987925835529158971018880953858893856253410361969343529269304143258501819193193199719644004111624741410411892302317866467735432385368898212982995325115799348566077245923563966277188539466164451650615957965625073559824904666919176475752059300465046274073824097869366371835591731900885902534580918486602830237176783914940954204198139405837657856707000199186846116408535659983594574368465634027380020126015802679175443834455309972189044390200245082378250930261527711780034981890690568278643503529268718545076622238924867944296702136593812276340710677923655161271974204109090234735496407613776741960194386051641220011457985441053253930429071748653099424369715999824213430343435233768073185212005971217446886907194616668576911842067823201598897469340276190321404142957392515344689505686077466555764352403941377381147451077834654758960903242498617797810719560427942406674499537192218558864560663783795132402685993616218277982380976421118005192581135196678130399428875036725347152112151987845934566158116952693568747908494763213569138183708665897266333389831561135641111198617573848408242179825227460754123671368597755513978052496231874515291872821931189899129637169257893604471209261245019464787085385561609372525647139298640982564204153859155823787688629725280249938385094753510434361032784686004388177094528832257915328223900279069490632218008288878566261972044667047772991866008375141875666930512142833437646489337170533607120720449373002834065943731841933109323859206988296965944915689046473271012260620608782655658416648107506033550728332071922904833945442844676090250304765908116631669311722683650815737005351629283051835716853394897555553913489341400142587053672901964622998620237505867979787337748312623140526732810940604066856862893777998249656697583459194857413357777385744737490008507391970497528590994880134336160320823647970503631141301991066238118735693036066136597989427642043715585201900519252120496971648102523853490225228417504974295992980034290293309098772252307977749029812476445620300068915141798888566245106361391839292085349825885111180482200661870099045623901442236568419436107364389578816959900297586746610897721658513861638401074703351789950199164168718614147372165455875879729597881162836971786359924473692818812429090332365400611545293867632537242683231097982281257000027684516292522106715450081520747507972514057246877279832722973049305632677912433305738569521742186587469685949502975765583037250674850213406100354272639082985368073232815227197373908487210519845764687057718296259847075695464183257130735975287599577532694665095613744299124124865557006487146950691516069808823400161217209601763913351885781762590693615273425947613443428677269461826378134255521716217733297039854069494309577180539132104132363977867896328291402821483165093724894959824989371726200458446586106857303422137066358160706512914653863293371250842996796167131185329123936561712116767875500608415184989360666523736762720661023852284585720480476050221492086872315892910298552371339898973536683734951089163699098280609095356436456691218766719271897926610349744308172868740163257678309388376567899864296989357406630849649829197059787185748804952332350252980502376581163002647704377069505901955125165610868044124011674402145694465653545905447770947341722574656838429494556248941502499221310745653694958958304508833596983156692648380736387317526423995211047233568731876993305949418245138308358996690800482964394242561550611952843170662017537685883736438834882844314300892009198425570853171010318309778703745489695606645490954825168663078312715264580186813124207028240833148557285388772362881263601647782664149425563946497671426525195124799991675862978767310628085983951726975628612014959986872769459678754576899230921230801550013388432127242709539996079817105960736456925237428915234696860052814375885764338992349625319052783636205591719365991918999108211261328696249460902562043971372235883238236005235054041217757403854896158686417662095043961162930802115203119219798296462943598416536461625858105404235513985933404772661253163889795515668521305718676137747220609418110751976911719358446573593774229218645272850416317848929870673066879161864151670545632451066498675168227477448122082889546654379581158261046476557519035289725890743874730675715894410101211694402484155002706902791099604844082159973171287132543748529300137431170082165539406686725991229774418332080509690459451502986188288790130878727641760635857484189932242236208633880749581638027190939043169672438670882518811500057087148462626009042498551987932507521753306654645922025219202004402716184887996079352399688432103684341022423762691822806902577656717026448447796084928943362238018005002698547246109470865725783834118932515012689577026840635951388893429881986238943326262562736634042673746862253850533152966800190281491944943379981625984735392815589966440796097818653369030816896215787779340294322466372746986362924984859372500546782405932649284228518980913105762950402815952957601322677458655250024018431878581009182881070750118191804921082584854477520562980119552764073134771692718129091786191394350493592471984588665327200660903967982417180392774590161352093259811810844223722892293876314474828909234876642731525741641997144555940266183758716419790139606672295162794629161290584610885286680771621095248192169440451153397178684202507339112115757993364141134202137898282131516841516984361527911672787961734621503328753085072854341899370627557788946601608669285835802953690657461764696109195839065737362558069978353412717461161006146610640906226482082013761845535784775017789205418876617004920352604277010493433384291571105249988721345172359684285867775527396818282132398419549094409627574346348357215896482245448014074690117330772037170290635242579257885896069589722503564573192383954945381523285997744784386180189895779677344547146380237145712546370663646242578275773726184348941764348540104451871065352306776000531563270544008527312474711509591432454159674638174163644456307728547074956538760169613761890075357548335182370110676930146778958186231231439249922691380265934378485800286566748603992636231653369348914539713605028598741756370050652634685289092391864508231805903364876264379724817277380057422391708907799894515514722158678699912580663976805751772612735068044899855268552768669220360519192209234034738729664253368203652117517049099829874044845674564749315841135463960737627349620216229761411801541697491866328358929660649424919733707741419467951787854622897186606215699438300102246985518917775928372657196800376154500763993980863501937883444473757823203543783339278018337482018835223255879450288248701724435519855104743804697179594077800777522122661097912603638738185686790559281580845826496773056227751649486771541818005712757120895395537680716535933530409045545449541616248363439566187241369407807363900107120702989044706380011759085745259825412735803958302586807126805947083863696847194123807164029633187511021590822979907260202367329226800986673045774911132030206991369230524260606845686254747366763232607027343365239107232880818331428370223715255804556812784673481163946655840663750121046098125053536359667216737043171921911699116230991684093410681630769659287519507048190303782994676364504248897375000961504186685708602839717293344915782926209004652943419957858771519830935160170496579353852756454503371974143840284498492651642978535370196139985196983765338438190813201085102188762578817076987611635120340907276060762697280878708193858685214577570718206463866827785706089714933473492536787682482657747388083171425067998363801224036130552744518068962107547605731931702308554941828740944318149558173076789587379299203110266419279113416967426160716170938020129270451132183192006498976109234277503995805738226580262153360812823720418031367366612291510052206569411617127456711893161954486296328930971166751261081727026553105618326158261795730825310407151563882523809114003191635482317483190447331522789159067758918762407832820775724722638992496213100801644704762201606470056530313927792950820652721864848887470872353393630724027309951912763078186304288853514964505787562849653356599163233341881646364204335874172190086125019331581273423251127592727434127589381369072635290689109795736765802625766190736605080995433673124005379676924831863586099770217914223754941943169076640463804650823502164154836724990759771777405675638428936286383060335907309542036743322811580029088349745428251630143555966313866396637405749565184379153709002793353605942544343820992276425036283362166966527645271285233500252619729225109203761835203019575758203496387334910993029816152318372050413534262610852348949252903764490691416288418391727192017133411656667113940945758617049003438508169451084406109699352710793398313975964951317869182665575078371722395196035525572001672648415314322645902737949255144764871607000471311981250169029420760133922747805544135158364163335598224605402941392597195112229515337854719133748237287547623488413719113579236917925113706349294841065768305998928649587681574748178184069541148551111745004907316243128822562616505762599293713190268951835189125840137182973968375530224181330127303145007978272332356898380385092145112650233032982302744916759592751214104047785769343236648305135481680993862379262204449234968966908793779488158376818142042265316863844765965881365808944238138852653107346770455447900890703598324287338146272649242042520263573610528364568748874249743759784669093810810887745302787640149743998890491006935949090798285992066761940889842219059397511811285968546068785885436358436621530471575815169581098052605957037717627191392037748452391804800957063269220182175014657965479150319507223661747741258712288349824602466078030271869038933067629645037442877817187290344205292020634904303428520547259526892596429345828587902983604088004151399086093127574315519035375035997950331776793611583983262241662356872752494564977321840527550818795595758663799665860708734344011573681009225189981064181505756216000140807707487021075157493428925615874250895794042397691546298299605920959876458778574007398617883792179857852909912286053352367271376198605166521750010556302289318267217187186735326566669565679666663900456471456277401352332975117790611753100037922745640760483218911691872152491733579706979051507288105390206662984313127199562212309069831884099404884118569587585714480011838820674478271680722040870537040737979847127348125791278706716949724937850699938829349270217558070602046837971328426598504030700098046347575966871087179859074101899409528111699489853236514949823671257263815945744744806617718411919077992056099274020455195927474209808581828719103203823234513782365514669808089155267694247998484733412671534727145936739750621254853348774780951224687549103591717625923509834924954318474643683409256067038095842916233545883955273467946545384079786630633989192853621962920576739520818909770153456714387931043703184852687747315370020902984889579516173444825948973791470364515185738629633308728058739275217595804629115586723890134483053496218480625658984658583930536686765700636447361102356070541501365417511664595002544686998386181304736941080723688976074100880635758290384037548223647023860590611158584501648090306030967729507567853504293372048058084996374151549186303053676259265901952735072730443190962719596493329159863975341519578167718085052386258173630338749970708320263073275044263875561294675981191272572029419608564852211942722692717941955813806604365729095715860239968315099525167837107991240502204060384095733172229587410921952551351064435394391043829293940548715977497878297029941557600199875163976534987222368574690922951671016454847525956882580448363704078925635213766395025564952843917027377761289927691836819460686742475274629253518780720289869503184258980013018288610084682070429063101117262331032743374366797854214758428644234149754987768511135075497608572619135198047512796660186842530629045300524844942023444121060614287230729456332698176500292169231542128386966826640309203089859954400633988730960507520892160398137464743985464457616157762965215547557383791946923282618493739461701906266044174102589175138278554732007680976617647057187957962252813774963013971944798282958146338071066291325670676696574976820585520562123548823650579049039323438222814523900473885378258728595407899941372146167551969445785260880046227230196184568629751509841540209922308576522337309303683115777742756885692988680229674128714110473487412695235826443236240104487821252239230274892776437648343602547786848883624051117904199086480716022313995145432801518571196876609504167504640034434831034400861424973184825816661457805821841925578554709479401132445580403128561112091278331599548942150051024331435019734062476075439730784663356194855187184478065075494907155029118198428957274556292602190103747630948233871314855657633743103462069115948793754694248891665917797579131081064657679156921310442620542366583586968491914720711384058198938909510442440530802210039146497430549136341914424630455240172719405699406207226262904509856268779872795135522270117305747339502371953106730265406402392212856968026896402099259631773107607059268245824542142348232664294603508187723940310508469157476559830742466728280070931660690035699319617776845707240896775763204245979099946636220879623883079830214961394686422205459323760381534437161094983350573003588846708137557079135126548195924200891351527490318966048100954004134025130299294264971776705291494740976967301159779503831396312262430680250267794224903068362111908505586022340609630901909537354516969340706500978545144859998738547563369073012152439660272662785708582689240409511100490126081148938535722837608900760765267569782230447634358858603405603700411041229788952582958042169676583038791896712151788427700009687242904594499868966071504296349967326562476211209722039871937995693755250864736576650825197535466977254880627318063174645175833580867148269902928038956262267179517132242922989634888490695299742123043300931307611552815154326082129003316066404756834524217757950796937144293718619313518151295328463440064605963331799307487463722629527835503835325541256736657145941815142318267477413324342324179478113168692462916312541431777605661103959800296614364505653442555281823917364510732627950421288093315206743517360681141063211286318929432390889459646868793118715461613321505574272841076643647260479506030390507931281778579764807649932391414734710130967302699281456768129778846331368151465645612488562262762047716425080259017224969169777561398329708135069359221580402051488847572437379649834275233875095277106962501135431259346991668580787178424096329939623780677184484780408328676083404905680459769649788094496324148664371111362258077517091071607914517050586366492709247910569501492908503561253847489418393241974679427944187311967352385334764961657015769016646512941805458610408597561206658121329491129839527373205079120635176081826246372372962114575448518084106289889249854858844048454098872615860929365507682060878241320723580074607857015345762618210304352673457922382364527999777472760171086289213964664535995169473935916321614129852551778145599709014878636361185810703412088585328240674796056851903399550714403776582514285387321606597285676921471797732884929863135611629990722534891280550948817722725390030492345636157867324371593792812780729148827036631474277043323641622936105859328386951505155940971801406744372188696893900705542203858959799054838582468342254373817582078791272537493471399362112311885800427047980693451926564663942647052699515369233748529602633651496138491867855492608428039756017120447320479263404986939196718035964679068758387309578417378005487477169931157205491141799712135026378470813752561918104294346946941096633711484260679770018210111334543416313409831348690620113015758457404475956574438727561967580414948633060576889195080155060862219123466032131947420248888066939695605880328914060537830577480221914531206827849440385158728026071522028915263376560524192432653380612923017518817308733838615832332076238461387690124122391463011316628854850983775736278263084589997260551452670243607146354314963209305817577585807924418950417400954000608357231442020565176324322172488722050599850934487627154266173421297546819035557449692543546972548564947535137684036770718122255815151562365869324625483265535027304845877512150947417746326262668918929484409364888670302756779502235364184878390881211252079748467710176304952550891388103353803343670519503228868701079757728093783376021197417824933823853088302842282147678743204550885050153996561574056344294250270249340372127350645697477075312573544452298698662367906165487523248128098850517446557689127020195915719139802005254953728508658933407679735381085473210528607147477823849760573172052551781090182359063651326859486557064883307990804076294857249318856510195885972805341103345641172990471620914059186949353355733644982598118573849737466797717022136637561510112098262126245289043222878019524170193047678296649079349402927207307139488290293516013947822041614821829677389135436985245010848888264794612264894942206343802127709426955056653684730545137694283606959981165680199132920390631609342011126607757440698827096945422900291109908202846260885538615871604029419556707501180944786255406353257037109404874897942240308586522017855031461655034017157390245384910650636678261225068274818693411473270152747812411692090762143041230853016806018830086336530104349172594321790563273743728150593880952865320182113624203768740919820303190888293697271233760801985996899170244484906547142135197705844590614497943213147914712096840011759045180066904494627401983210606440098395891667589747722818859816256147579613835502355732840730411414456299666851016227646615310693454340024762813127312684521636635879965697114337206826563595931324931700361633070717625632484076801693505395159586414171420640416626470024197777524097594245509592676152818555290786120148677539660256869724981957148289440235136347644411240016654731857305871207737493732975237374800525929305753489961730159758210587448821101826951659343782530590952985458839971494348451949198144696261983774213629865081026124667190559709808393169677190715122392038708002512313290346060859690483989328128882454347987611040020143082640539331697610630932352995957443039382542127488952422192851026936091052476929842135916879470464581347459797569972135967378029691162950539703563071141367094304423394126520804545263462178650666888112321372840819458400241944743366123057980656003057669651303894892996731802392601403555640370432138915725174551231666576398109134067676247038374614216793208762416187602179461955232751351625959539523761474211601696177066586741881747581556264740365907633785472860541342877153349031220400733998896612835900692070011443887739899749360695103313605511403414058896889643575201641308952680310215798106123569129611096391358914431811955335999481431749337745563087958134685732553026919449765917253400218655316304953823376353727059480531842341666446562406592245891668412192507615721706257866379856527624146165017769465127091259115806006831369836972070478709117382809742901881853171531854237429911227776652009280407317647096676388075962722411457589125503252328893430152827987052724544669737410173723353273460251104504847975538007328726437462366989666514646504416953645196492623328448298719217428031710820601100188329301609463571787638319916506224099401671623858195051099194674540665290173014389283844014710395030092397471910740842107514497122289969952022078662176667733052928317862982337197000911459769775211917417768784413517184946824811817593416054839580208923262857299264781137154772158338910139445618222965302061543210916080341946340370158370236097227774629333634928227648466900238350469991536166776312638942957277088985855011274370314348547838980677528075404562350512915944310844536461052903443257379873622665984052627386471157737188731616445159614671535385072464783127302386752109185819846987781554378609135711646910591455472535586979372970775435702197864223368793482913784608939007622147253450562409385970085122063948723511338522280020754565638119011926076266200506564735593532525602620675420688112343811899097244062526300832928843449622383205781191701585353967062248035625515129756330444389289339901908317801384969938934069531950135676654574459543179223221150595182730558659482896578972541129140440121175764096115568336473639229562936518611800005597143052720229941758653312816707260608375776826073532436515937605594723250683173889114724373414320854827178735684508473119489119609657828483896013513688030346216317955635625116915217292393666985370068823894473857263705299133638357301261171062704039429750963769092036666986898535581728285974845030440390339308544031529711288705163925502493101107951823008173401483649870136892048324915823437516226652199083804490174876880043550845534796750186799106389351358276098398383457861658714065544258059404069024285558227731504300815677580926898177907254714128731280308565055316280032435251809962898599726211770231751057739156778013419187163867741775260866974135073325396394490435453369904585956352041354837826350902346693004405900992926362742311297534499589311092051452439493151642467099426199175552276997370599329513163713916602937653019939668285013384883464950241132982863861249697296449929032095324966083241648618395081146123851112343682482706224778881260153418185515918117968196932275406757217761601988348358225773212622293892799154106840918806593924207104157103244502143767899463899968561227124819268731598048878771089194556033592030568687593052431277694157329531162650151476971436502706970382812880241358424612611814887931368473367431753230059619746148417293776628753436275657333307327836345815931366960737015589692188231286297185256586642187061279974648116831294151773663871388898352750670530231581220449174611572456874992599323562884759359961171863096555882853396447126314931110425042136587098666294937187104889721766348668026884955380376380399618580809258579931441639156318048910170058273156408403591777520452246616235776401775925654009266408426505240085734422438568594642331833131169758597456583317576066077843895887546234810286204174668071409041336283871932532511538021885237075113980600907423006038480620811681712938136296638750287937098511957616281313475367904024694676210356335811969397431439389436963115346663875283789181727893160933729182063866964855142314363208131171055252707554881959202925407358119808476044528785969929622806962104280885017910997037580131462719652518013339921326363412666201489228394576040286208374923015680932719505131111688964380867539115821374028875748317956936458910248916356922247770984813772924724433142414345501815690215465998291272484756147669763582402476437418329783374900176472818387813939734085293954934202910703468176741961866679529842118661147915169688994577126606639835168172177091092139413477154509197687228400874217906477382850150866207123537942099967890243703960913455748171237122921616310250344852956848845008263853072156267389002802627438360903822755532148208103653534466107578308769568374129978334233478764305152256556428184060923192226687222462146264522308429770355274928985474194009339528753778093654172754648486206515238191084627773001513637813791440332174991455908721181173239073930071070737897624048132528115694601394285267677089351281745687808425857948698649530596515607985827981531066923248036714525087130202248896938746830956359272512476184077704376079878525478202464223752937539002170635177600599090811066652461725397892114637743829101587108975847281363934724111921278493156179093931338824812726630776404038989914757881400109457681416131308141809293223215681353270762278538292714654578518698499492466063760948634338833080639333672321019902053468382846006610215913733152725024850440170808532253644574537176757153856310553284858005401430205536621312889772250599941214820812238837940381778953411832063175527212366254326351104983906498622732017657659535954092073539230852695993907195751261803472992999874917901274223714466554161703358748572891586787844330250604629400029976295329203639352516514576228882582388392388320147964033229837324681793340340827164875239512188661560733955400408398674323103925411205034046082508046019834030338633042367260849904297425822509454810937517254299188830314986175106453115595367046167649616518599644435624515854047093134334865661761664497405790375085329666099172507289731570767524617948708177034706201367299420458854784878119217852711360813579081200253999855175475760542288693257436445575757980990040308927746952001642642984942635023495258074661608544245456109170007543327346290932229674659162073455849372630800735293992091067805752769930167515226960254356041386756249561794903116902228732520110707651174932921581861254020361510929781132104375821069905628900303452499406143182277949166058714912561810038343079307497449804280977725881024666349453735242232959492837172858424635214185002961066286139788619406483196633449600055930686620887611129265173943828367409157918120436640531934803921386610222721425095186863429292436667192329503746078692607018581109976307138799316042734731284697114605245612335742551958931387460769492665096571261804029848774678805920176430344916695704630651028943401162785009429319958408817799956218181352682508520102771206862405609701072124446002211969782961965160344952827224570518083195504803016882749576783346071999282885578944877007128032193675801714024575728501321004251593938545776530642065545584572351022241025015443417204566674337388963099785185282066529843583360943344595958471449698347170599302340977424021351375288597700810761533213387951077436838099862534384742602000041090366895084181828497571789978796993124504280711607209434592970629090581400386812248572637476245095756667006526390600526048956192077704378988496287592384440566100565983537911526391257728918340848822069841610174282563992749267023608551613197089430618920953270980015642797081057388930134945867496800491571278788521797614463999789303154045431993733728232433468754250387230202482080314157417167543162842163678068837386383561774540206302557162184064902872030299141871804499956391780142651630725698197963896685754784334126891490445495864532748251500378447773261201483891260991462665042746181666745616432149530138485530397241608577448039679734750397984302580511728795193342503609433242823505823101130200151522663794057144012796489500604918674455749237238336276866480709384223362466666230771787285548966697545421081144533834866321045697400128699537462709307573056181426558573453130009152209562078426424166989478291032284897949923682751439958658266687704174639606928541087549049115466697780370887635995176823519528123596574588249883026024332289524370014488909421257786165712943378285055057814420496456660070688040333389120124902437227556835259917570998887545992169137392366333508528843214262816703355438597074571766610477350338185222303875414883479310049283081803812366726457458330270205355962570597994735874911665430968442392260497382317318335880038209294997512230472442243697596391568099314865513522104057554217831385569428838433755791245907329045336059548308842895651318365710981180766155287442058866989949251621374082270527296569783963103653313419711105261470713650486400732582412627207587984322997930343889128937391920863494576453610391871342134608322883889501255866586930088708645707851111005039782776388616784095656553525161698194786612516843185868234031122384174097223013334433453080180060766478683649048851003221986587926814146611688161041748482238076643608233094808159605263556351926403163927975887441038481879975859591774918510255089251510488646972964287939769851300815309553434683573581850087395827131484557326229633929921051964416977897206497066907378582422683996475097185942261021000421077637336317687967991885492112424517028268253018839558880748490859221653035039865282326319499746528082257891422633384662147713822876331592457344536718831346989819650960886457753847287963763175258306390193791092135677671119780538473866778846144786731356563726314459995389879677319753271681447015599566396235611543636363521866238181323693827666666716456610093446682534954227843890073369885662944555267293649842660872913559887049791741800858554035122330871665672372555704557938815741107564325411472768046256164144399498465304288584921752943209787309858776760579966033633083326005857256635021578637509974892504713210068459418740380282581635154090198886512537999001215453927166630425300272318136160312360723851881283911283538752124682874128961032215317339722768157910685202076239969717457954952828103127151926499950405850662393949443879613083747407802355485013859210970107511726017363436777506322722999523455030119435255960941985486502831868142724932818364453388343999895776084818859514370035741482709462826281314933173601592751053743386410531021410019461769444155817616283917264903906915226244826766548457817229503211411940843735389546397030810220844751640873535936315788982514411619952121304723151098335020715635298924815750344565748984048015244020553418155159437890166266699343311956766955711883885872522623799350229992345279874857949070938387543772724214127596755398696089991827676343042046765306277458900221077349595400958474142206772135762997433206974783019184349162931486774481349471705830018485607075628348384794935513894524828242696017553567036211789862696759060696852872264503131475916011494245190127603958757488439767399865897457400230452180988165452890091833041573778105279119774975361263108852996027388658658861608335719350379131006124480798550510921837022938142315027966201211475413991082534241649852559065740879607105807373472295495472013677449722686454854430609569868563705875414481373985190693825353378836211856723518892790246569202090394978213913070190864734694343188660526794829165024519989991542361482242822140674059320810164293106314937731060160717095722270750049246316390601084668694160462692250611568361235783822172325920994333592612188402486730423662777311011425613550369232407008175465709856765296642630364826587198131107944517548008911648075480375942309613946526083462629862552322336950913999910854114162167017339780640405847786319601844628372267162719145583193141820073938099207985517463035953306270934406714725939203187063734453190950810145720820466530212108503577994283056297080631984493855572531749512094306784949258052948919020368928873793649405676287846608674626178638436734584635088507808430297572236734886775436477441595230927878271026451386593587139065502659372064724410378904147574882749949219819188856601003434570119614354240675062374702472182043873738460144266709257382182704488167400896866173083327765070513019334553839736161540195801141529900402140132485972138191133157556411240835220539455730933151031763906980945047308169598406421742623969290219455658651361558095842181976629728727883434341749182182544650436183535413392350869151257484964482298032074453532513936239237051727920839541889024404211253013206725959907090682368476510106981138962772343335942730422150534484967987660405520703913566610996256781700247272425551435946780837159463806283652481687552348924680580878843685499625754618479450500018016291673923422663062465052920840226348180146291907724217428612832522258380917102600857828056102708916988140650364554956197538443487871108283526705475464040207438122258029750050067028663893380216636084592450492192311292249846088195987409554846382929485824808224321549188969465236123460220086421672047137463057788763795353378516996898333003402851540707245029939982286171745704327819731289015327414722466119446297211329442194511799203238816800489725256151550418839673850991452372728416181892392898271769811696423271211752842589517029839220270950064153029983844315124970814324770010941745163789117825805720224555435310988390614995068397370879335204084883624188230447124520263244832284303337680998100520677231683818308692577963439186547679883481302083747632348669023490244492131160894427040627894152788326073875584822052766508428747468063805992858494388845474065898066358112909125969283392174247729004832334397282147810293680371940780459531365439985406880672835820085184636292607710653961083191279694689064629905174165932054965960368366016008627400716520253319947943732271780510507241421262050365135805646726659791956848171183882850117301648038928947231574906029719612906878452650359837015897707140867700701503606310629307939984478868715439929103291892908832557681892901062993319813203260138537156495701682573817977172349197618956037766445296262414204264251333267699955171268096947363335372444239993306086881310434860560477031447539861611295425363697711114772839192580787855672007269369047588341668579767615828543130193233334680469160506951082416195917447824053982390198269287894817684540382700060347082416000871284520239646011891141819711340391620399537529209384550868050696632306651551621086828227594300096647146746048694765225731699669230429181945222316223641780697096031925290205276483665812645411406981282931351396083386779024202893025729896372774234645959582183794152375233529192614254474367279673426617665700427375275256774778947305263810066301121587279542080725611989342178630783527438459200225114455545051207462041994273758929762438197383669558491479811385312441647959558481178500280999833568810735688942133514095179634122637041519079295574546874616584642293960364906728872405783538380977739343381530150339084644382675612585371642030533897498826412292583291865452117699682316977724295184148394375869513878123661927808025417847176878960750814061988150445926221467710236364659826207414377768704242646025718024843271825161351454995598104134107275353299896327139156456104106114156264861020643928839804741237111399468926031168711022442252424570146845098146560879359433080787552518944994028736700485030193724187392873205886664800834251631456238216023056863526417387809855626698772760669930710798676098358254516599491896462581549737067582548852556282185952861672972073227797351511828995364292353611842483568576340647914953376827445459102813687055674066155192583107748700238995260152326922105936025246074689097261046194202649195851337978840275201627151212778862587417400260637543804606009350959981151497644953162799910884934696807769297455935898800435288487660539269124834858522356932345807474712423619308021992666295024939963589233787315442638849726835682495922130665547669042315449412646624857760632973146471305264304454776070143401692729881103484436304825559690660071825424810551417596810912719249460013165227496549373625402117670969021806070005382715286264191305219900934956904948275244718376835994049380212921327799235709048226975170845583078572333190192367312753707871597462894096261141334659803327781379362744942689963431043581259198551325743057970707175280982020684646427717629454826349183525587699109238387006722003274117726300593992353947692206162923937787867151922478349858270846855453889243938760956831076691807212291572052007379399053562622642027877867832443260515289984338347455564420804422350955859046536552970540888998678192596715188616058791908622217787258769638451722159488350492777626810848945172595552861130434352712168582022365272786096080113936045479155103606770463678746862036150373445898949467377221825728196119414762722729209066472174186569581314053986053248016310481784091403641977485636254703707561015148503387923071090299660654845000789941313876663081837920023570408405234098779768340115345415351860059884429310915515550457846550373141259428463014210824368838108540008658621926474207728487136327692380767681371749998701284863991063466413799683120018306934010305506510950562619340339162773067110673019059181347831506813141340675912590630510444999515930291080079513792629866431275965042858902470420332584462219854944657976909831570025632731992302555480157075219548207548752105478431128122500966604376586887862952501897556179520511350681836470630923408622996690797938605662858158490831674659563875293627003188046498699746066685133277733888411004737319987579870032202776980875204165400968394833658480429244670547954776895878424718942128591483496251172921785100107025712846528868189717487236165795896941084551878161349304250867885203488788433390730050683318434987656703978367412668431047025981055702756098331322322971226114927056235601609635841283589108547818263459431756758887194601667998025197481881789999104858547107767595514758180516485255016430931460900949209092012268182609880024488785706406345782606400326476217246157538198735652979459863036605944406751972864632356020339699073610605511442846459215395232076123486097761775980584184079205423860440236433176756439367025363759676911467940829479108262236993457064226548376060973206873209172872089798831060916126018683660781001460162884712329467766569441478529093827087533346634904441331586718204444602941246677201329085286573850890041394361258966675362147631329365712582234146100577110135389320781349704303422481023475472201180259960073565109002409437939127693255125002010791725118574737628661764483853348276404620395036149817362025156390447228059944606109227346146774626827610277425394982739917385577855653865847180930775071704175588618839575776474266155193549220148360035025364744055002815816821973832867667984974408627679120461472560019322134663850807406929785851396703333115946693668717373712003745391884987537666463974909589752467480206297489768185135373376851385030215632426297532318214290896096200182953966436471741510759404884603860791317653129948028557573738562007268590605978235893704048991707697989156755607139564831380024698176137540620328790558188844218773944935019470687603003915424539613150922967325948606213847523307600270777957792090981578319389121917773480247844718162086588852300286646502799856203236296571319911988114491720572897341020994468499877041732829332288812867217793152152450404407734928739638594677995161309765215154109366555080106836969869270946043486489191300932182025082136417914380836061635282890727261893136461080082033197835614628830583956305235730265233015433732406589445843679013869073804824112293558000966457369712361676353462671275978129004589477396580139900758412419375234109702186459560159223294598221321181822086369279420828579262547822517973501711719075147786445352135989872095270612213235016882236915250419235063620841824274019759587915602899362237556904619467519300363647589332697742056681016982447277983586640826278980996960314469497813110156827391894611968335369100654179098513685204347167348737300036232197337980593017552161305660958144330224677741881426385900773802044455519425465381468207099173879063384999506612329400851032482464339645890664525779302544828500517274290999400314840913862402423724042409578570799653926381438724342453107514834652015036202039908959761275428569282274993585949312578546562615672921368292896014844136369818392957799585869278064198495306228859055399756244115397065237917282337488477794461221372837377205543408119425133411714738856188060125618990879436366814847715817742610122654679964369303209591705349353459038769930342072645350196862120011800490445304593634081095870865609206640060548420425771444490616342817156031986125514366051239003310895677329405351320894141451660277941100165238018381604169370587550356181828070070862197459388759359153096115539648624839954403635641490712193095838424399246970948426050531466826280520343466592705441720125269482242847349010998385641151684349739017682087707064783159014096989290906191305882136403263678659843269849585875105582838669039695659864608673652235806943674095546475601518927825181171939368738160298146292374272344144086088568553934553784467645415304345634544521947119349890489318804428747419202409475170781689673786469721280355490671927206082553819913229261805389495595050662124207320402837880293934794826977273177963739024345901506840192235562228774156569600915058169867402920443165940779032230863091651045097239973736495014597816281908425063798626577895253934897667069499353742250013158276418751031170543211871061430762679278301086454339821271683204320480417177933214005430449628692010980950372544077370959650959306928524036358328644568333065583013031753461467241531060518234286300404009451651225781692485341505219634513418634049074283762215923195798748093334777759485335901054581653873807397654394940243969903685753067420961432529896140751415573204648342533998007842411112121074906488054287841790512082487243217767222054821225560000251597003367022947232717124204582060356297512436663768347170292912206896554463462467549787783804670929643303854612740954625628487455972455648076007574796729504705408713687606905812504398703506611720111768395119070706237425694787834836597774020858941161337180034342494300272184984355116351804512014872992707418022722201675416143513502544816897929567393956555526127272240958160220523933788230159143397677561387793551005215673750365649042084276334682529756048494887001317916432071080632428900702342024418622494947487399742880581853670741921936600519549304765912077007154873873607706736841213346872613553000507160446746511107073619664970386718896038892165009381522396948887047970160762644627046940739144231704630917790876978650261120974193781011833131532702927125671372270159831420000537429930822868601303389508081160824164202104442118382643681930175004196153682762038541539984569451611171706872126847981946716648830625842880876806591755050568061397578420602839313700839391053356755217987402610276423270420004412871646190001451388008706932214035089355229305290326553860251753114200066053902964973228216783880235298393415378209394230228313943544130386644229460382098483217062875003613764426459232315038936570900299934827924193573856949379085622838349569468833859035047214502886179838835563524892056571764441542555595435951276729857420593507549973145692606571341764429542444459155849285184649824808693707136342708024412255457441205090340433841547284132909623422322866428099483495820889662631466689999247015338098272793501872190197132594912007205226348235141067862153546485789206909501811965121894347325328572572060281223589160750882508979466315558543267987422140446434744052532134894172487869968921446175320780615109448831980150244018134086092639719840358902552657453919140386142301723242624944419309177217598699096394829554634855903781808370769264744344293477366735366294428819097936138089518923177999946858539290677173569583319542167200106423786333985781786701774787013793094448119905942165296074372880533820287270076822511992300739886048462908084393106824930070549365488279488239060077253641556671359742464866987924229585036823864097750025799863235693571461394528689329806960118035117299844870381603473868571088459037126699183612603117319309506808139110980577691508741603631493492666370295653743813331466982584180991425280088632939886031939222539745194883511699368029060198395894180668802518401480660180999834126441713872582093445470106610165891785332752283392535348131959036067976444578994183975326801909428948465649578384786765847767624083835776420477823475290620272284119440466648788577427849033170069899880534562956174474363295016932073571012779095278651427113714069639510688927835749596525571241390729682839741571722495991344301816984869414699247503167036414105603321199043219597491085962583527664721613088105870489396979521519129032191552299371936749764422229648473076720187068534809160202091809537432063249663663308520117000925691141459271890618991577609689499047676620792217065801954877303177119245624856434806607680142625047688496881663103914327288632861184401577230762034851465065916116470525870401291314195953087864505518696087176537208090327868915799569719502612889174861341513117883217633692552813608186317651327085827344462317743530999502958819307728277048167543538995139206624122634218968187464118162221975468427044693122412136447957723955857697374198316260329448829068288272275449390675970501673366866773916972827045246383408149742136210609671310937138767181368816300940122995259992910464577236012683360019978574473068379056576347258572782595886199126739469899253171605126457430739779223757728451407494518338453225209257845533990660856734836325073707665298632056519203905233929199120545036831660187082105918242411560861391023530548320590507359348237179835261963419116301688734851954081570688962671527498688455373453590349376666265524914020791083132743370837232664766733644920012667160016098929367335175022645661713335842268147161544051983675200985328590916282602773930636088653251805335395361156447746140912753174625295120216326936651304081978905202273670081317783129650603562121476311758120085423766605766490363449416332547161759310436922223795541155108736886751888204491986444185270792191733864121718146688412210993050611300484912173466908711168620731966661240035953819387789847713218974956918208556778656205970175884451242108031826133592407616245748143224800312051541482593771069031990111608519556785737088110253392669172644148941559186148030061157984615405853714900276923653870772454767148964749063452548968652127015452552461054097538109411415112788740760754495034668996338956801405482470190146708097773135025666521688004968365966138706490907438148683696208337585542703553903141916104253085701123717499998373077766982547458498551353811483663417684588182671491171254305320919361946043330798199233697071580341683633329418213340745482898523516905644684365028651288621683717281799932779201526675572074713736376775471351640969097492044244572968589045765083213016168839620464448503698209231852601271019515126645120538304828689628024505777301365531688062801810766240749210175267522582072574763377582967750207960609423139608416627509578806356121884697357619615825381056821074426119382509849689837082231301628926006291390098575333827784087745723227698956847420676659603379071168820014776327565232593465187607486135986739882279660103861665192607430103316321979868666187631838033925332932097703731980407723036396071776567308358104839425774123281328751514149335237251257198640346031393986526525469944739185314664813379590859702048724385469162951170199968878675479113999430733397565327385015750629034215737937372321722522172590716864868734778312583711028172954446258224805475950723417649681159579040273671307533732492640048262608504674936005578075739920757516821410236163909849899306567199991904922568508793412816936152672190330058155912197217961862178022165478335740365438575223693543605070080901614529553157126438342949542412610759446422636157958457021572283175859902177510167896081824603778279348893876798644764885357826802748549336714459437366570944663684001920436398580827784366906883869401456513055038462229161589202447754530893019657686532066478795168726913920285326854369401702002389169632121702913058063295007201366592087256557360433417629688202814792157330903030710157816075917497678244909567789434514634095415024931915279395132330101579427827058270385030522698124561397982066369912040224780236380103488231184952306268846466414966915044506424205922344345571694520853918479483310752568149035448700393408947533522944339938675721911022590889511909981960078990391383719402598676925025495122221004640598960279095619588153082854053880694583477013221023475572450805243564133326099219964493954334244250492842319650186984421336497830047365250453790548066851762920171136604798313770012893356734283691549364858411983777332351254673470224202674727549330166952023294262068396104275887751380335375920790578511529204502754595104857653804945136218589378474266287096339442937424479354208773255387096007432991946714882660211753410813024680478105253844302845180175134192868800941612758979935750346478876466155325526525193558353143732834483398993307477790807395073725821886178755545674651121877671947340649168563058027286455115349415642700421253798804721592593779432641016907566775127768936415836753907459944518607801869804872145481916855149990470359002956186757551786498259976950465928935999919461416682742472590809885740023269864122471464070407521902952146805187199993805303870154766873327890299015886354007159038301597346624250281026908982241409229899538706418031658482875515242630051285808750582038392283031569119060314551849652732728714795997503794412025491606065586912646619439299443863928281341258802316216298060612879453422597977972662634730667524200086651433400584337190655399673116928856495951462865909894258773050008578888604625315836255224572756475750132158235679672750211152286469879305705487243167839143049921283383473519494784855794726598327587860459776870691637157251333317889631976107084988079060575123229133632601401866297261109459571243455352106751529538393865739895778893894532269963715323021119783832876792439223539310829932888575262740021649489004384523401187527011819234327586024295034709034531703067804998982737641342424778019477138080625454198935848347179809943735598235558064288088694510441347783852409224480878844231307168461608235368613010941082318743835614215827966730361382313514861384833340636433748152292729189899160940830973124040645380035646749820637531324275181465400908586017688400621010330641845784027383169177360548154163194836871057841470496652886272565952963726934842628625100967086310465165323466515696585915127719457376381959409913695003536935703353876147913347595850444109124122728901777055328227597330243447498824943244499824131961422168465795598709480372374107197673395714625562947049498948982395406012727576097818445698970793143453256045916874331267535264444473986308412244744557668844459289838966048073888515559203941335412037761901032639152392694237303928395875902567792929419657376965927296486817133848997432677019773460540745088185287188272058265113295179637147686298741268895434268785998525855847472201859880166400886611381699591498638970322254133041369302898305346216659015304858413503380005814961851394121381191797324596116179750004087363644950020505336008962910275095133516566995315878741460760984972703582850875943636282551459458422865997192137129723089748598882666799340134258416283865935336489684293950430896270247341245715268060846940634453595259168227795513612779041160636470346493953259152630391851525814060324408397446889368379645914406859144062360999677215085537426009860940095581051954065517489577981777989261195877330224877960974516428851863444126384403194467156824309158742130321373707076621536694080336525106380635913877645890075041490136441728288847310895943358513351873326061146083880834146653879508502309383370885729496666370193914004019828754785872446021106257903882290721123047166631872404641838610281508530846041972046011773132069251876226560457206588107766503291257967039278251636573447588760104139622436476963322662481563506781311131116611394034979196989282804869129518166551352635698839614912096869435171474577866555808144379236324388644198423996701244438141765393494454660607091730538331738609479635500488285899390502478176733424561498723857465550017326116519199066677070841282013653032981138119873071759745211528761406728441738983531659895420542341624139805944263422837899777840726748790428648904841611489819081048171391274641658294028761731414368128063526830868445733666184163512722356452078344105436678044799730739727788046113793880086695725737348918839692945183085094237405224535596911120078564698343589429176275191754479682060548381656623525009852289647309894283848128778876344618379798970689405307905830857461989362799673337677375050974028462672470214586867594116024973662791506498615169235596174833440921164605948112329684491926146974596890880174103828442375659118351579119864762580708055040495174253072506950874271802408031574984559755688015458960483324231036337506464640901198975285054478129496407338252875041121617202315878036981783852239251602618426035818587568054137551584396821844753821222234242039805467181893368483927811870664836571526201551673329916443514821210394344091558212436364402249407340780432293672145018606762313574422725673612515083621772085164371837382723793757880859347657913452714378410971227093660344382911767633894042140762839778565842813624967465356763636234747244489416575437897002644180781901252011599350680861173354805853862583673849555801071243612150666667710377821293453170339412303411284266498128556453586620787283676703425726878526260384456422712898856347731400611108154682424988493022288371854348672114363073717510979278052476099764453983030209487639065722307313470659252937880510131354892462960809961406160177955882967421249885476689401378609306830341746158264012129743220335057933703124150122266117183933248941341645515776364189864817618624083176261842602207501949851289124637900096241045237521495811152774224497146112841624989188811223757004959898374777264733732599226080339137499902330881204070179509366635230323295109767998280793805004972778718698714618436434667987351551947412322798217085854679531909169485271743338997405129303080654666151621506629424044247465110063561266997551402232676152204782393106595523282627279958794939418036617404476501989213147580874989676250779710827895060310175528417944280664998069263752800299568603541050373046653150636567584136324122004669519566160873221213504276847023616074742519713719668520186928136559054401227597096180442057404034044896593601062366865453358535948876414881211143449137820907506183928949640146479792420075527383937359535879132804328884016691349752468063068017793213476730650238848902502022860286631399038543346974387183258504622632791300001671047538286171101287250029948047760579134145941379500193756224225157215091550095544810296343440422784865047951584238237716988098411637702344109537428083173028973614854656905901861649801266694674705394477977051349052885247184905505490035341444320139394823958519104095426933278961345227699885032056749208582134483423346047956067810386439001276506364281935069955552037078691585288840348675443076391516364821860767072849185130800078403930756738231527205135651491273226729884847151827203867311873742135751439400759788553797270221282370670701592618347139105730232811475227116819932904706858910449499636947144936438071805616319214812853440869524820385703394051931747306313768832739508958342201592797829796115296352763574683564351546551721547402639089607345147162286849110389959471737210977139522927237702931199094686312778494770535584257652806336997592009357538234902999181304801739613986106819455114186373919790094174367985025981818461471308803347166663415545326909518893428583306153844029029891151584198766685596905561233074543894120129525789453512890453130013543869733881545967770241187047182042037554914085525184944337731969564321156967347173743733096992684709545660565712208874833451485609333433080133354087058352206468890273496680150413472563582434623561456998729546898622422162168889880190167967757782034653023254081112057442198963488698450389819569039593798210148774427791564438348290389470256407147972610333806657792383718259650774329703468359193346319567362949543860564212879043857291933585232894406085805544314853960941266544697141268245436122495948344746501695042089656184428229595140814143361282390920709321513966693987288430693452980854818015337940946115292779755049398554563391979979205009058067862519772377497324732432216420146194680681556343872361422515158243628398932877922651341606128739569719723112995402047969025166938710024856241442218474557173989513751354653929320713434102913398911754066543653801421839757523949729461359726969818754236130266909231221185420930241277970718313784765426869540739283804952390373491701630573999847836857904394520580721086485384717647801660001162957758780699460088569678346353130369163872472973785343752766743213459909487981714915658009893295394770256068107404569201575987181494671103866538947101546069589466699678992377624882551883424543729462026393796946484099204002318424174366651610920327587051464378677417687003879994526868753859401805128738950815933984816309532362434853973845678137600304807536481335576515811657895048420975702275303069294753055801835184917380051211090111366622661381298895999645463420071871442445330480909549073406924301285561475378352910089261479639095043571917898526678512490677209643654004714969766259265158288259760555145395047695690118117533429497710324037685064011578050079364022842338909250222182896898555615939695014342746629041795995981584590445208475411168773660921976992673671097850974178797779631524202021789904759807199794684258409597525085893996094839770167648971219452514703640151933013625070185306962968093717132744381880704554890327018600048914556496849625643988818398474538525823635217928198311359041500124648696695921732983460711593937832549091317754764262790115956766621485263482646230891249519132586506988829671248995496154942167110985076177590039195472109102398773806331515887015643943956683359294793832950195625036314284491032317617331284173352830648829963660500593209979088037208890928298012595865476135250451398775600512314118557680669625651182332718950280945544098717254373491441609365879108471876646352880538500166526620273914895002887215747246873195903894420187143250926926532240915420955039126513950350529473986688116597290120897435289217216706886706184808143845071713680517011214918480904852452661159934853155886253462237975271080180025200166896040979929407589115214290164067588975224907975121206513220486531088493346449673359361418441874165425222609117097071000683545112236699884136176924464295316262781945195659167540978574624530660128530793400330463632924968759933957870087820826044496082291046003345070085548443045350853264637646350295236721420709981872824956029765726428032478239005966284016301162512347258751426019000855636649045386254051142421373474225917049962801973029709500044059225502979018132959230415326957422477354172399447750611594361936549267460149218923537613331971349018923076633273254270427981628396976612980937344651094993352410789188389352837641870788634663719378511294115329558799928439012732379446959916112165128719855613002143119473470869183047684383116386368282541868464754520842621931362589696349173333633300213579223477232204240666104374952724169827758212768709279150015713205821056852902306594107172991758970050398319119433438839458298911562470443995744679798942641377375531394021180804630814098475533692031396983146280201535724592834899851938816840914852538531592925876814473307392111403065497249491240968694274921660417639845747675587302075884813830086610051248952503711534380414409817571282621558281719126523348072143557328230980512770738932663900976931151163494934766383791243493881377177009064410300706843520458988385632015492341617024825107483309909579893547277471592095390992460673797692181536790035440703713993876073546363609725154542974997910059279021353793536675892182470401621898078422293704804694064950723847423920593441339894405257927729793468884087467446539766336250522998821332268738813294043464531831892571401010630656780286543304428562573139276097828860842374323223660584214278890623658671694119242265556248999369734649806678337433093667524176018505086142540888284577046150627765013226893548042058823637349905933022220152208110627623511164231228840636128243100856418039100563902078821818032097737322132511342467928004967442940430320622812663583412981996614234138590257530175059612405088076108031213757895969674558925758329240523567098998544808561697077778179147045459228326426988797834718422116115385997234360438978807320227283102491527188051102883282676839641819746293579360816879336969639764840666226814475242180211354707854629584754614652474674947870296593617075328255376583426683444364856548919876528991605698957435952322978712982430523060333095131985969249112752530315265473945714273007526682431659531556741037376414031159770937814302298403283215723003390644335633919381180230552952495700882405423611783448479509846290905479345002346958895588966918229628978997511736865854329928776283611685489090499428917584689531867649900652101787729294242619724682885156356959530296914733393525625653244325400474839226154519132082034327894446020740495497626648185844432764528945121458047679984656866119325286004507409887221008292060753786063244532825958879212922597277533336886948598318026922263401081031581733212997438908383919241185487633731824959167712295898235150137749599907430865328357489953227988191885232728564737526309442974493548324694642836892117344759166436822084318474526692610214588147296797430316269164782896285230285690285974119273101969682989751689970569353440596885410210572980491621871696659232700138877998576338991577079029214612652041157541601514632522896231909927685131008565916060782997912472889505094144997405917984650159799105686951308697956644569384867925209809542441049957874061010763244240616013684681421468821610441248620183175933557000878119503641601897564112473340550827755037533927816191612039279235918209008235469649229967753082527239992397069368431068262878834755125373204921063841596318340357582176200109100575988882478458365635792460887126850714598132223974636441846068815520188075608819557458575387329426395941114238163208440791601189699054996954338509529187335114433223323645865764553210733539431013123374018490007686654236275598375249786806494605951616662199630330156806102116941812043290005007921611989029604004688813281457327245366348312917710185294628866356490082052639932209886029024815240352427053680649275513076044692827704366364593759878913760125605837683077432320210872274067878842380351264544090678684523278572358994795402831985484481777322885572199396546556902681656541292036018868943801358717891931615860155724816192923041834854614318539740266576345081863581392746037483081277986501748724262266394508910525880648481484339179327655278845333291853918537887015368265577168284448973457517414530001259797173996393132912850282706359936811938279664042876005388420752358104790399895726007114329626667002370282567810563057278680704975463764857384627898501782148669205239324860504173574469695988979585202889340412691316493502476213353152824803035279997253388424845793913173563918440662346461491839961588542766554035639004284084343058437682330938462183255516945585905356546228255677777846400573287557636396981784885702346798960843088218839370727141933759855619010676001909453069169307957961650866590930808592469946673510918171200822486824972660092189893277526720406960067941844522882575654565488136081367787838062865315451058747504620971524276237344932071739523350728689033541057884288179902430899877486446680144729856247955460095050308994851989232301574738716692689772570549929209124257855633369344768083995235990806653950181143565382143077746187686666880419517929658418323049229794127606408772662920261597467127762824489299032135385414488689373913720301629581731043619658136226880816532637318115465015953528279451661156256550824983759191659952648925481572477611097999477929209647902771164785917851262275505274035002569344218140422215131517862847778424702758297164420989060583356805568216016638365359433203129727071649915244401565191767086651112491135729293675536212732498857525964061442774947599144137562487693318513043798168827756111667993865764401850907013148949553315657041465418338533696804661891617288646587337709446280157592472113297130604274153425953052135354683899827189784167224931759659196817896081976445896976260520787008140913269306270652297425313909007890961749592793176351788346043406792839958033599010131864030495166692372593882816721046584263059518557907163499500891287042405815018176964962743761108961180734859096835715251552621736576678768258958610234791531270015643683032748134012035513357678087711561251304529377301818163757784613235025904271113945371129591956476994021401420510659806387796363202048864508693864904561538901500359119232251978643190732135968413586229969353498856806870923119466927739315528004554565746262114397023923158029802357818014277022518864189586725976988739976678815139241904160312215045100803480771122396843148702198747332589447031366429595140230818830854778062343390266349252585236022881116285754389433860720463467072814137195367574039759663136943078787708625106948824757037252428844428657503553367435399537183418645782511074260816364629231971614697571751476829652471139688674096699544283453481703073558606134247343988348238181483391175503426144270118180858050994710803362775464278011810664627041800252172023928842309575888499512059957784521236788702837594550651307470670032250643413960058516725314639283017360721116659285943500939351337587919701218840318668547109362241708932072425068025446867525405208216165249463352453771536372795924788643497380700124989141802279674967460396495950729468197674640948202829889760921374599150156647970022952382560753332496302181789158015602580072797693726093296885150711211814827682917710016959235664691019029618197510716788418794514408406097796328874168434446172424718922808677344883566579343766205447356231570701464392862719599618709840037704141659864997925905899013316321830827411073939473652458868046563404182919402758887434847907587789914760776738340136586433046421375673843760546374079892866229202677413286900735924273711263006287432361674180426207754519766516025242998359485715909204247396106176048275728977968063751877489198087111916165288004430483135175524158425303084297164285804903061109061621864840744093978135660216773075754459487602474115455651674239654603344669942028075507248626228532661993448693902637046139856265633568506721963432478866062118867556729622858716279113657384696799386520206663341407086523166435667922157838018710425120739639034775880795526525453558773776999885859727658565421684862474722728732936600935331203486557597487049905669590159702069190847400943108235334611658506818797538347192647989471743193051535668482621961699559626409582386437221327685056375291032606953844247737718616147998323839181392989804566368554502916043061539834591832195137595267924711143926140270771558379146584155815594037550905641375467313152765570714017353126071121218853243675740082600486422864839298076254399636892583276709122467117112124273943427097949100561100416144446469758487973633326043038290199787471802465002182839023817442749987189444972519008491524004902125000172737496485833571884173444237957267021284053343993805648496091585800305071998729116960744812074234946204350857648750943883246857867984262869653624839807719422081497383837737590688663925807402199610621167223736210967351857367283516409686194230892122520002644556073522685049389600092402077984552730034464476000867841227998158849074378322109174297846337472231603924660181064427210757705814393882615354682578929251255318694412748906118020453882345797514369261273381755286916977987391452626676739879203176539713138962180934289857293695716527339688213894780107442747116086832425869711639002234344400065429567613419464669872145473023598163062655412412647979555540483133676320899188220428429607398422053883978501155098942974115293512868818658507219214899518879913017629869792191085535942537141180900288434722792631294299788325760965926223003178292182451777539649230555489753369048298579208485112674657761999735742347307854943154006636391385273121174990574850987835620405321567354727520664944700895477196758624347576998467679663528289617361153427660713728362922889195505041241312072677354540774549411266882712553714886845790591019556676045987780144586648539161639463954605180560123529700839606957023231494065143105480988901087992943303915960862472911779250075115543888187266027262507685341671351731867039005588456370272428181234070158608527731874252018984492059634997314067350662317668124354630266081155486935928292700685488696947933645962594691361321730117219636189955271794729306691511927403319129577773412789413146016832374214304498666704217412768762237931375268801593715225175454165253115972860067948616649759091473086652022628581079382896416050453277692937383288919440559216620977117865926234233616841936977611418723049799198953245883359264869778833379426818842815585931950203037527531695718655999018510595124101073416674023185397738741538644014030389362727384589701957293848876222954726053321104740230057115232894105488855792389384784561635615660289457605471509846647856684961698362331930295459129902526760290329460732416890287657712639424674495501813796393433150427530896617473480599112340653952791716142383440101641917630296451989789973655769510683240000402316767617618072820701402192704126409702570830346649857584846114212750172162607273223467204360455815693890714486587938019933297287706286694109479629861429785845259636696286348540396654520860481849744874343063767994955297229074502480835210530788947390894924760614613535895915479031196982317049940582898166965762571510106333595267600140652496490262251618099396242126226630840222063293641213659628622016410337335795667048872965461591232523190152609156188684000434783728827203419623585935080987530719634932974335415358342711160083802028989900651565649744556367909444090529555608137457573071582605180289593746171100084857737433366054319796149775798885227916567221955673457978976885063439173987959470626412326441952347017268415933603819773685375714512222564211515032191183569587416464802839963128650775956631446353549101904074042363659848103801972530443477308896733328087434910824514190515238894008973588686058000514709984561417675325340638938957022344028517073502323499175398951371296821083633366008411996222936780159969786110834513991572933879983565860241570296156719593215035480723499959328265284045806299629106894307398038079984261684750119228752723463608674832538555052079001698923641441610985221892641267209385193039357976665711985750950257238410104948035781282102425785980980825464551622240986145181627029398463584873239586744684549821701584267088974801447234507921800701727383246570590140338810661734993683165104830059809773195643424279063682406055690229486665237065714382551102030268315910810981622451102293777843690835537617703391411476298722556536915903787373062768657980947186067634584602112958224083233720054733333052442121108764358220641108264364193149929678539675791317790000759749983207412102721369165399639794085928001121353882918329950333297978983411760630843964862037273019464029879567952495418182813367601176276490578863405552996326320632644007631453782107591067805395047348641178863300207899249105977687329016767286416274515864539723624439763485809798973265607406118604375185558561377608762872106484199495474748124086191856440189049759278087727066951647898238132410538036762251339321407019260702560136082172489470734334858095603000771497407415889123474305225700965244715424251622949127379176283025784888034069140127273375851946833036545678687067699561888978458386841559058259925814282942028826156355119308662416598412699526004304832264930730478571775381166383649384863394020928524849998904556486801305045075923423674063627816353636750400136676326473698655521687374151203549562756337523491727028103895384540734061652630668843987712692302187929649427686254022605457345264947140298262458918510657899486540658768071334928757590148195857045030015368603329819019779007491365609619289581143746669947866251677610464682265427082067450046344362653040590391879750010161459122733329311327672814434124511200055223458701241827911638030267265574835632135142127861376741209121750512672178500850623412371533047463672765791325134774421500743896249903271241913852216583549224605742021346857537104472833260180657852069434065943331380007639310973299010242504860828393905653602146437232809651266462271082854136287730710605863213985270814909808813872730262309947507953346605676063150588732454813841962817421920019533098494931122432725885031080580469439273202425245000752461328296549429108977381774877687377983268491985890296709635968456312635858666624248471869217691072769326553334793521574580177815431427759766400616139317452912624538440326448518859233867484297923163685027063001452410762657937094317819917453773015543326113646796108784950526228360344649168436081823057234377960189606016799427045794995760152307898789220027555387893127479749531472705424382662799665943522195269494909322467295472675701101042672670096213514514724903709729575377550261334284625090019849280509249001210956193677509273315631227433549775869880047408406084256536012317789581098161636181032013061091409012530101555498416014769077475951338047343051752973738902584501155459507839554382680191577267207024856018303854638796888963945573265646672318502269408963756734886364223966617018487446334490887364773769608017257398622215642749239038674982537488375543376947808049743489798433103080115438491080428935409830334811641842964989810360853790199143077289423371871274335851513876025590561463533656630543166834537870562887935666401509078185648826252608233595046153502752013368868488867614394439388020981326292352686780389239422205468732636483640097700202792020473236105083276483791807795268415308090273979409796605669376183304674886582975255740056775236342714830913385014058817935415823446169546983536939112395038427589158371119065246494440379962668938193528240771998485927689123742199692890142866099830553133145291069368164601199675413205569607426729736833916974222433131671719826332270300977777379216070680529757554404929544060607986608384979336721632075941088175409375183737858220568932414729636817382604395399607616282124391355264980753518800856598472180337058920059182547340719743497993244269606936913136154050310043598561572043138337057096990829355699261059656949539752548047316588511004058878733203707884817978134873845873021522364319624348758911402482868937176471865717363164410215786945721027714867719036394662003273352626937572028825325940474992338914700509557666846029128964385702659808142831742541169633128154289052674550261258163627369835302921389856788708007127209241134215278120982620533482402801402029351704639645201773855650749270932545905145347656323416412430946646985798531103655685249626362172275731621621604787947806414900487171106771369410695161104538414357740557289423941071788038887796720704164200435772362015606901749932001844620418686414181687022176993004942773692271466242875573312490886217557792313044439172808738328942361003867973188572065975734773609097172007459389700866427999538531586825069553322670232194988614933130732771396606320720491861264419037062166960120465667118898874883476834264225709258486489213779972412012499781395521608694115672921213571890717547752695143360869788233977102764495662867840293916634382663408603855653567275717895473418306299670674851384659926435474017021682727062301316494016834064633321069343954061036507842491763982356898686093545039844077708749259109129098292031851175321940288459471430701267554358353447792975632024851372900200191096608485701911358520398345326615740029271499625820868221682041611781624459311904092554637860284813460273794687217114761255688751871659501267130849610328474228872387355118758168722864325171784756824009333247374523428396582251139367052092524207501673480956110953840921047731907290596368144396229568668846576544607765642274766950269004667070771684267770017556373663048178701579072001301617690969910783569478449974344378681899498138514123957912734125475932106989682094264799025252394904257721903776856095060609746279530349855423222168652759569854195842882147694715270183526728433798103400419590031971418044485342493841825101966644134222613712548225780697341923873493054293018357985342033270320184228407906918559266972702494830406660598002476584412577032604994436494062627220238458456375232715682777366585057622115553534003323044288908376646409625531021910599906324790049558985844883870045979226844423485834240029784989435730856189043650105581084587595388643448069881598791793812138143763914628045585833082037299144613069119227278319327856593169576852411390840190919442821898971677233480393871406806807344623615132697469068736093170964780565196341282997822009876708959209745220024740616973210102256350708116445763848018275310811547230888489488928680812347369913291921977244275394984781393504684553311283469381131804542719529501880260809175395102563532009581313362615416238335062490006662823328347451912525923229027104610562130597710031300863280898286700578567771938507131789630664641834053331714517583044949209966221669389722541475062287564498127238632404067670760625837917087954252790397060140368345274173672740998955841718914169799460242332603631945024076192340285618282078242318357797417141582550920354250413272649810739745045609564896128741617588593655717117730683125287607714357035613163366518999463815768030231265637992490210572947063178745308404581574843222322396358172563385193736452220058017577263104248218094418714979793460975844175353779830240431912797659798872640209618468124964754907157323231157575269916292186799108930774911346657142189426382761095085845604416575198259491694183480870062197926397873006964914097969900948389208946578527967704779817427574377086397467571552056690703492298394903501014255701494103660526501845446635954366918985868155625049631203433119001389588546419261393083754435589282233433041628198866491719887977664679939098108304548978357667847258323690878759311688990246372187382654489922408104322943315825341801649590129734343631566521925436995983973261868033797316976588377842834519800294418406031102190803156194590847632549489613061625261509414104094274803404359298320722505187426949177887752914356793286835289823506563870569306479939112105248357235758970452863842229663898760025011519076197572616193040058548212157537453894420693818421088339855837071001152594903937323647535428218142173368285719897103518833936656954062484090644648343302801122620936187828027319999460341186081646512537981679215078344365832831801091531802278690591637497621771497605935816556922369301219500075060009051322887438547798122962737725954491244377312288155078084024256826677054749029686479421602810458750370601873212669988402729217715453678132857808679764744568317978593054965309812733240508493064812885589300261541697649758055939049056898337461507286104922690306970258207018288242930756249569326931961940367167478499301681570828013415738756693884613394091626812486085021260400340515468664098536836912879643365995932868303726456270007982772906142515249368028910240842447794248782785838841415831901575946753078546721251230136509779140253053264405308318890022251971640052517388637336860557032974393119094104244304947098849514108706030600122213706850820456076113282190520508648284978588972971207013034582335725601323368412150036599506147763137024492273673100729815827868114610169442814212926717104731454097707707284603117424811065730906636887966151136517386889467896191039474804544451985240500800758359002013451088117070802662800505556064126317942744065933742971081173461911053268611240025865586875004726592858277704949627237683222399031747743242362625464575033815535479058268842735687925596224007404532905830476170745344421329857741594438098657679179689247570059874880108791133186706996399670870288016374350000538992007110665950955016802704734519239900246747890008027757028004966344160712933287287661648467116951966607005353684479116702966167750357379172337231269865528638971333191725645807057696039797593811614552552520559879824104932064287181576277728450275360007017363250830338017212523326779816968389111033472101090596355502908572536674119690967414925759033400145577481661496688066534678367636555270090145346235394940467350076838804724785386778572286550712221889720884012043202027336035862421150871505800379339328072656994769899010894148625339932857525605164823026960430771862210652228939439392806014344021306386600300654504243264611999354068832177835782426629655243423776379080554429262046698161148000140214972638625645655966862056973160903862839508693035076832084860476178847945597696917394115367046971675466760461612822249979580780466469541647449487513689631878170828758357334311226191290764142426362365465076135742822069256913777580993850639074334230945430177305340973236013998965905220450858673300687947501593377827753865762095508418649725891866370223471025591002484201472598798844005307199053577345795422862412448850454318769286152807486984722118559413224021179140955729070241978110993662645907031532265535526109582936756995570884193628513578464283608280335144523435684987084165109235508436096522083355755214266989905217949322566239817718374888555487034368285242771896961662686968876322161318677500609012969081513634951070811814110956586450688094078576653201057557423796022452083504995959037536733631594340995261577280767657841301896702709884797306748200163496549292439594330228917176848711292565810413989353784444797724461705936008833355874441511653053647079745397613616768714203688914986593433615175762802014101380482455378303208375696310058401382087099064044929516202935290043725488896137834722287126477163091947426855326039961293201733220399521883636763326393022658102724100346809752698703330287146324268839803677537740206554155749019770227768603622019523936554761892046267345149889754879802615809555251891804525152616177356582627991365503235714230766512844550391887400566997843214042911612639902723884849874218617096909577429801532720899216645611542525675931439784379088403851503433843064154969440896446011205232222107564089894345083472937811307279057435172223757732898882347945266974649246746763601316721302723932493409485519885097641659884197032578621393363247863183678803576060145077663222115690348935375960065810329295500262478508209017511098347122059863385225115586412166294892708901739227057185910293302292722741380886656399855669453978484623167436895756719612963547722497761434980756449323391390356493475303444302814703054271854676474695032808414481195979676998623158063158523297080826384512905266929418262035048392394165329129671333378953863581078668710785880724534682927446142747978197761727292554988235842845418734782869851090045833173315241240940764034959302112441265143898089266757772043934370184632288771480893298428421392230139032862144522618287263407840613436609538822323526102403387477584979689216887922361804308625785274712708861561630862238664078469579638094829024898088913377923742382752738898598173174410464212393944047066028664615569629503990106081647796720469969438986881542222900288373174819874862361099125035890731403392512846099325211262261761734739382699101245011833711632649493072116415968021268982279905597077321305743986195375937232980742716474086539252257682158253860403746892341810833034308416022801905757480275127313429252320534540623259381970912804148353338190492270991249545324237455495488828557469780137587941667268035888489883985847487197984444871250786643412453286225930763025260694093135064179881904776620960622982608142972556393162961549455974449975907343226720024587197859874213804252924398367218730578447673769209528809136954001480634178787474443826119551383957618167364014100992952875130502316061558187332076516804794378001402515487181535042038524470332353630213103981616903245987444987354043266778265277021241364492696337284076700244400458930663178844969335957269114931636807420666223891855125496999447634231198271930708717470285089113530028077919857933724697680689183940370204160992800927590426132229171768203207315878830140480073996866640164531234426938416582396594335119500735819557392627001366700696871164263689092653903633198114329861559310872739257883911984382445653253907470828566487782894123899112724991504425711539379713377276495681368521930283797616331747149286450873808040651159836544859178363103785280784335883195283645085577364349571563009400769678044597186676096588658566028189185423063355774762613847512625990475977603760605851645564160343672254814840443253946648142555470761772769529111569983393090125177504987413101059668113895425458022601989364070869533145209651205496910095872130395240399495496155514326362317545384731483137496241105224106426481462774666583089094054629691197809892593200247523153986581627394304772489666595900675053566159571993893021858861444365491899461538650274962160459410899084386904804870743206994430329863959470848344141343946898964023947257079428474131537307658097863763522378685735468469645652187899391917718339564204582827077259468344963723914367964104786672732887063958707450469049065837416554027157443948001505463459002442381664774087876938204286851494914752307139740137945913512978325331510575886799404769036388354938327166858228635142085916961760147226655144048646178008177677694374250819753381321707642641680205548737473179875423961421933159913893038952446887620090856272442376316175202437469001439930237445916650794754867251896669477414160614159594460770108613514329335143276030561009154770121896638838552294610519130821342955980586280477804501291681136438608756590044309526238844703563310493496226274318010973092500847887356616577860287584343721031727055583925035399475282862801194421808898625862683465885674498782692344081682722774820510668814734965449393261501196470636221687787886920131866353721912466591368173927886333649368036748594657001245293946020122922892886331278740629591061709129210240038244206568182436090717512153679771954675619462133133297221263404766450823521699549744248799293733050356632409582000137219412091436543320019625988269267967299772931794941416421383014851732822289160010920541712283071371817955058635391489902059460702535172980781741494477179614167116049957622348956573615677005039300454166215095485385657516583626983131276976234535360166184458525248095769274638373673350778937607515856223984851673149627293014698946486679605599115234115964753443941887192331602815539258343195078630495076775561576007783179122823406013692738538753791007898822080628430927015318445311113176276564687126402383781117590775524357267478571788498676614664693398020500692772704500286047321274790583204159220351292330240053168263921201866824546492659062770574565856569607314311079106225717812637037312817814787785988112399356586477513029166812694666076373065284112065919849937408685410564087606324956555548060833999757605393109623355234050277847376162981752384572685759744836203741050934187242009941347855211168042012952733891262636887169365098579729677502681128719294066623395894038690840923238587341989061790116874298123497476559925610979078321199465238607549654132292914317977148534574442214262023140746289150818882889820011699370558958061108590419637979718868026888412740638239005214801204167755142392178277269628927407725257473728531441747871308872059452188952403548507787108864948802274928692196042016406630077115375543681574088162774791828445615805574781279519519581919963451443967099941322873714550099807982695995046581133999400581063173745713006239929051609962308689523693609315309423280955769990350959708336760614092208532190559234517923063200621758584149750827546957873805733758294246857449885311514519356697443576185793917001607172367599672878700962861909941378748767599125836016585684666877694460687278749226861590828595377409301676076975874736539319840328900132187702140457744844158507269171185763585632285812908349170618572973455428327128209877697422712002212647072625188132255160653932487982995037275896226106325595328604826005451093551360766403223687777954103910482204260603403151361549688997451343193128078684138373798729053115986363208596286008530651305526368878171746327428501464172891329886628426332346717741098241039182002511481242546567847987912477859385375263727602758111122558626726195970179473452759851913417649595234579501324074558379948296850821898980142721744940855602003622101036550649347245338247818896693297949022999091378883995544707227341113619406110657469946398754743195515476816150257935089402764216098448663244456497245166539535095890843755089123277743678539749229266164848933622694743494384041485108615132979354658843106771374742701459852913208982169813100278067048292310877855935998616236946769216650187173650602756456802612535910098730151380239556978778548061851381837658371693952782278131438781844497703563874744316271803616874607684769033131928772492226876710589005116416701420042491370491802090154003234149108729029359484342574561119438423458484382299010008945385629346377594853576526049106859961285432415012212869095835711185693726563431081219616023507522912935925767514768268371081087056745478582801173643330644323347560791188850341900645961032098706671467334217310302047607723158678447860596823966763365745716926048028001863733638477688885047861981785821918674073306115144052555067965774572922000596809939571506654128994252491941846957795886456734442869962375640307031217202309909570134990062866647190492684430264114306959436543345358965129415081716887221623744153575221719698330929095640429736351053399652481729371554984250490760417284470294264599614113830023194869687335808797508419132869828461623758923091598573285872307470946395053445335017045809087774452911382219494247442740496222127584675816078639326176742868524387188514707615591571898744834899957603054277811915425542930363426575064491612846409477383764549016614337811275550025968062762630018453773435829217698152488122168468453702681885977984255556028775749880396787915305986540421493837485649359882345096738663529538705464923500610145722044879094641817714953459474190120917568847853974001846524031258315369224681186566637999550884703509466605034771716632186431602147405813297168604432092134171438452427513572005352967968230162043716132541385410466440817727713241633817788687262310077525382570728083623918830016921734001718645046828816696443437187161849989036765042254565460339018353704211202537782439511784912853074571394542429924787244611153084880069138526109174951971314813076274994141414021613027880045683844822817916428689534433808592606104900940080204599049988804631169810845532895129072392256061536335129650691415970727401198078156081594447737118097193794787990412158670938767534930140060528206837424035841830301191517017151478884746654410868368257250263847727936410773569346325294344280163891611248323022776535579223587838657176949076237149885567056523283567208806187484305397435973008635489922586267382086060672740430820804862307425455971086862345772246223235139964567701341782076210121551047494468811549482693596421743648171849603281519595958248439689892592425242295406894507179299416529366417337523428805675937771820250422092543045818488211586998682464680688619058250672539150906797680057851725748673877305214006580695394418105774024429115217724568209228597757146702960994604037217180489458225483995262008779196025820620321363131177159766922914633001217327356334654766330846364626660379478183357001163448261794220777877335342349202326154365337242835873390257009534382149995229358009866437452408093941108526632971300573774968059595570647128791975680909421207905682199767252115619966239006638656013820430166979440537271954907823363113648257652688367280374142724754609548583919074950190147284588391967721585663051804729760025539291344026613394900115246349801406601089646396163503751927827111574994550064638230428639059798299985398971106974336154217596767307425780660389060146024459996744806948074375327301560810050937625642997544083117055837727979155548405953396272868592557483284501306325101815133491266893194170028230059522286047903371684331700732769161070902613079248617570372261249454070643778132125320823237571898864190950841416234474380185306139695640844429343575585147584042862560995696470596077037099274833207275052268656648831171676799157207322158639200162155035147973414438815620303746800545744951272634531129132015711539838709858890810035828514957723334215169340659444731820782248961095491947958169804867915817378008001477837710690808057927581355312648463683902233726428784038106675056814868474648965221530242187735982541787971524703129296188623269822688675325373873464430102401307062764391395047822031745744157633673937064057693463623913618156541919188984277522690288329844318385056439037078611060583305062353957862237257408244714856076800243138347225481842717028737116914368340895157757331678733674218356664169583136109181993520627785947923782647180636098149536994308459306233290667480063449983969664500847507963200436582908404448890088020280712636421159106024315800414213248925436639313217335940570037280101266743869409948101279260177113155057662768226584137500333718681785683142512499125574629662005550757431284418823646309580119159054365210060720176938915784255394508661964244122433215244504963474574891295195569347088669292747401070629047305463334479095555934930344435044137428854902873963994736826477556259080728464169476979500166333119000860870616645632538787185692912090601543011206249436396973100073273432529715893349328280897400056887738849104459720471583274906445726537552585592967306780178912113701401265337789031593115543570205385836329421632819125171920857147891106503066191524350321104557990908701441702647198929913057555868492829339162978979627288116705024912261000270386650713227912970083438885199903702501518394888278655673787218037400252366764772650094771179797182241290127760601005710371106772681449546542925697349533353042828338789876019078237943007454618247620068958672484269073882761037773344832658604418473301132550166999578415693149771068594543413945633164531134157919923286351430404200911134830045269974455156990118231799994888480653794222929803672300325227756978414836730876994191647888316032480975754516081617107738024463298907704779434806041370249415709727200483216204232094165815245895738885995465955868860651915955062936302866086378095484293859581955621771030994264390104803025977339543138150064581657956968488551853902676190316431277880961785675051907235225957483468353163209799698069043931793954667633453483412600635573339160924814320989210848344761901609635059806964558959352220484357394542991463867224675112718147343126072865675092225562918880703327162616813789502470285875364988661883775861985298109821468551657860812833290468019782270311907894192396016755262046260145789680640319631558289574460940318543492322555604913971888984275696184645284747194851120380342252774518242743438955287341755195321027546911708766344214070948177754676110477662114657159175415266047982918681732299770492511526814991696647041969002070393295473579373666102762696506618444376550457178886100519425835612409439872594816017606048469868662887398083708627024273144485014054148630415432066125760337286845202671350283887314235325180656937394566995799330167719137918228562461252685125515983988529299709871676486450351116055636492794380260664643617114435139643096882848462744853585032809855741152700339981125368587068228916268469070031369875613725799526562574582545509531877044030071374912296249717728612652147466797459020133008199207450308892116629566675165161419929703606123490397203413404923869658945366916749520450594173158120477650487655484548473729707235322469243062622763614055805377812952479414307229462033301165175605604218822525072528313981903670703670423029549998295993270864686625693491136375956841071639826891556122220465805531601112220719097403663212442868487328256401727586222070079085144935953969751255737372297549877297105901191951071117071797590712001908769023463093548889230497394173552276380954502954994826658262813796559338016249029584911982618692424164726618929023753886437240028123290725188827229430047313017680759824390347566535506002802990456157054402354650271155445182736463529902376941736612483627610447435618846403558738597548626254460329716884674187238628101808226425522202381602608678769648777334710584619404760779535802921898707639605364128664416071539310762608296035325681051498937833745153488538555425656842867299520578448763205574847814342335781789050829868798145510967621463993999792361796350077981289085902482093678665981802965678904995983050608534545605225683190608632943075172370243426943880874715282278846474083476695736156694483541786557484925287782600397312802461175073523830125002584366335410429780683278684561586774121424533895310772407666143181798824654735961931168780755991547997772324980730270824019590277065581311637297666876079011338374036549391092404117174794505935162934019079985809625249043952824663708643542744674964787876840413504700752153145557685433216846134190753259768108851359088951082321230591205538729234682732646354522583882851349473826789241604349573674572821314100482626326121959162588785221713452781205823577833317369278447185225493886034237100617996203499613167681322359231895160554078930100526094275621340294811122516500998328181728678783458233181115683913416820697157063045751092228728903787035123564126536830251886554047277253663209088107926959546478279729077470503045913119401910644149466866246516313116234859270063667942277350535917688310253732477962857676920828495497452648533797926248525935613947741855327534477778201347806078321170691157379443249790583384607161716517103279527534846280480247823227898309538628130777395377343213660736710795254589379636844525921467650141076293273806919364966638418254541013284408571087001118255306975348410294928048260239375396379017238525785418423249152982251632651101686678731875586480809860921593318799790970616279163097904988050488119055538806029102553396001690978842688622901797114003902354057913733295712129308736613484491366630944507911233206335919760139362926427976872543267937975100931053361310362332447300576297992944457786736470735200181206581175412054434189324477073793262237925095706174790128707560802418544239063225162044524790463899273474551948309633074426234812934923525722312929771480332459999645881344573259706193326965610525057287461497116160136567789891198666067232860129853471936694979918288506270505931432537537069641071472495789718239077160276933880027285374915809336337391439918808639164227374657559951907640005813669162051901397750781925000067036347512158647884239843941453409891401262640763898296231836786344231142892670270832793154851166414739621402922782056538886003753629336389837796819785336199249952269952752489330891041327387415972184632184059689287691264296692254234347926097570181048915754407462247259589620890434189413863591247197607306050278236554708691120122014579770304191635632341144651758087867417590833431373170727987358518726624463860613907756399636654141184207161196555247366939768407234377558295010305566678440775014125895114343059575925130839996897872284706317533630976664842233863373759937716387971560048788093273596349998972931304590399334293815266280619882557276367652198602228547417661691296119026804502627384246953490777390792225816552277841863063866891512013669439083344457017620650374564443308757883603361229137299448895963844917346977548689561516111298341451597376454875810964993832892057796946987373749376277596294173070435864976568901595869857116312406180127939547354436288427713297678539743876786968396155970854590855143572752708484535128825919671780816597369733242390461240434464540355735393572710105492850174290691884916022572558108334442605940277266876378224535933871315989489174633462735803062013741355422584120761006260987057413571538097017744425811686758892563648834973446908745804490721764053711784645416653315575328355094106980306551171829264707667070969966725894820515095934342060491293548359984455892200175021155470974903104526695335873854579250210623739265711355223953681979451930694320860332515004789725571732848889045425503024020732786907433920263107843034608457623838547219803902781166685305122098593881379742883177599096780834947702878899941975434814242556329270417991876349136932004436200239857859321875142688204528026798941355094767807480306591800617850021366569270345927558786739383425277146619277467685610268809329035043838556040869937391633661299796278856171760166686506489390317170014246700661976616608477566831504680280501176552171815489125418649096308120012820184864905794519811766384306232999165328967975980731164506976729360041404481829966237439995591405035101606576155524147096130681848890013805052750961012861936074291818131972300261717935421987271603700684764943800242655544582444441945223892250618347301365769155340409040771610697011251501739002399662104508129589688859184999119476018318204679649399939726895151260464600833515965950730766319821976199339351340211362855164937378125623453877826255572343912107507474294147153557276277956093159382621695673867429855477166322684308886947194917668670111893305887751056583070057313748862600532956442560632425795027464933910240903712085946597070448796754548678924053353090676703930921333672200211536431696923441672369635822774490031386941828369045079494905920722892579764464265878462292744010935909447331582917593267090019406569854584927007086181879213627076604455233511372825780747208687846900510087708703332627453489557575945645488151880720218012788925725489242384923721679573119609412251072388866559719162499890816685186412980842976198708026095603949117370703733993159829642760310516420747335133450746354490137049480205966615303017704801810447986077614304139494786421580074646468055014870120878011785574503302575455420456613465712523631761174587122081400965827676392332573967431625866375070788883841937567035871406566191261708481583415832401665219892696946435801931135838836278218363222614012483033888598782737292498770265566947913232624897885878631900786570802929175446949907300977847873935954956492171634286734584607451664093233774811203086269312137959177724068563935761368863401426251110673197448350503090022725335340399240270962109060959471064121237294622491154656187488494310443882260854107583873206299281939657291783540060864497378648820022993592708140652928170341887019728336844431636529698769673748592287982702433735355471340766668568028229269723161076306187689843955581534170560845815107863297982999650612426762067832390113490840411602590535633259853019809639522269486126476579012315739178989345422066338239995455644868872786859394058429778263205261581646704055864945804736650724405678431253421327042287108829352433168521185262842331420082325385027243874363541248159157160446588125939773674486589143912313011309627087698771454862142029266421853585197667278892346485017095766730649371834404802725224835334118212295541790691079632622368811110871590128859535833043984932120681718753815978938987552337962213952083922913902589926290855064986152187485524850464323201006692677587150424626871948103128449788363879784272644969088059476217307332116335709138674503415456064885862398181414908601460279232553732397918745547965392110547737386375564394083490476316772909008452414853704315958370223418725644160737235659453184196769453267218005568922757399837303005202835588186425135485644126631715432062107354907287139818701870944707409900790776166972026136294188937163920694619957993051621367376786433546626438107288391586871726873540186909071162512204247856475718759893135234779895761340159912684657796491396307673493476936424770026121855695874703055889419937945278087073347492023955234601906130423357796177361179562013001728066524830607354048128448471501083572359098251747850936531620518132839147157908478372034005133068262324375255818182161251110059436088960172600260671060020097179443722550532784576771617525252054519499621861194501693328460267350070112368714495717097675191267026314699965654115133252891462211214869603543825267627590833611460151913897784077627266472758026752421899405978838549573123300518214609845618625262107105729500770105374651540343198781837021386577801967582940082772586977168436969703353389094311030010234040979401776489450464871244620437490479573882082644917434642932725418656928585694269303117013005396929115248480066700002385438314156214536332073559351219734061216126936875297204647626486176481736470910086151199261220958395822254905419147666301579239728601947849476303479058675861524850518268679876061882556067091956886517754915240117924372664045685783782393838965218579491419379805987892502602322981072190329060152711300846317062578748134715162876196345021065822637872777096342035470949129889684381900641311423585736434883965307961327051866488981004970625662078578675451350039693275422609946454752563350493996854647586883038223890589383187151164810284405466203259301632138227544811362215499529457387939830676782221152641910951962368608712901697551858448665700049108277342487388973368944566068514811984870679045959615648844522305582762800981714956662675351029326125099749914552579824507063472380263563395211312862726631571870826831733162882092348114718135425184159215075378327547458389108189473744428695920039898123702236562629909841470967652617560781856534029520235702416725157094984108255816849635706827595348897148394724361486868293994352083561926017659512670215270876118487206210632164136921809984921083091666620282299257627347539130561373952559813683710452855329946010391589166010857843200651170224475129062030069020698545668127236728350289378900863604597437917766368869228918214490556955908524338523052864206044429906595853099262484056663969274382618179154247119985424800722683293089351901209279595450551166270953583148410258847711317652244157062924709876998581926695667630609263018335907464913679475041079622354728704157133076638799013932463730148251350230393037626184968049184529698292387511154140633605878851363873975538670229929135089228508691431941791974665551214597583135077861779598190898034387897217121658357415395985439780732959202132904844232977056744693970600755860337196480015507791424157383447430031750607330424130353904697844330504271833397270679714984272379906562104617377625916799045178844708486603585373293598901358893098789236839690012438656584690536631914981059654611727225196650365150696913803049839607660435188276389584462745296038263859387038120454475132844927596187616046891054295172124802975407956620049366497205670441603013950285213850158023169415534329215839028430912878485097968083243292072577275236067272909837905589270452148319667801955760618594886229910545966003084295080996218086928625251684403668797981443466546045866197271173259161769762684689527447825834774996447295673622158473191716316545828793383767395790265283481238342339345858353722841071772182916056566709098296402102137364538580052729786317130615407722699338610518125462004851513749583090918951104106768282341817856490201793269645806081731206330207929041997891774710871400637860913767700089690072427619565688861294162986760593377272868971086507454744755102532203255378056172647684266707550731304598917809139160377416729739137516560241542248799491585277092994392945461452507520577230006356144455813009974960188210930851266222348423933771687733190904547971745965440801610587439793656291722314004360926259284133961382961786276242157869196850183888086870220562392708969215549772668819457119407633805150990254212584123759921625330590524421944042464151352270564008982106416892386973268603885307891002661716714590428510227460451785684704608702310894099128626907608973760225159071699919033798822346323690614670395983859418702285025583883787421071704368139248051466710386192292807100206254634510178812611259004289341211503924164778395608885599137178230879196714215455904993449663127928632312576076250619707763788769350490793170223067849182264932665285354969596089237920331073686074330428702823903862572643268225590219863076199980688104781681329616395236710448290882283793156683708779219417337008496104340846638511430666265927106075254298808301039399275305762217773091941313480424243768185987828822285056598182903112149416388130581350696989289485151672186126216712693051138156223980028739679140158263125026415529612900327819315577945364263016670641466019026111612366740948221863130433518278211805280890163109922107219473534496342621011807204758377566338187607191067445596289717976666588693531449102474586926442181994736637023786480694286312551995852528050813793244295951230542356301526061188456230515894592836393476789316512210269673752464747362952801818995766814708544261485039929421544880476301720332595074864939655695090916572945465688876403053596807542959502286577014381662915304993653229713358461191169565649950806052389206368586291381690912329668280588807958546211122131530288875193963887952882263891995258185229794309230331548811350752107739384883430416776942395563416936527931257136378187746937017345147342172171048386362751417972799447838190369886232682512112445493170299278557699365439787432608688764857319560462135917054864527025685072672757347199214624262336993222936042301413996257074882278619813983173651326540614465996493294398099577470772333670246383880690056040678510717200690485188896157599758249124675735709111483162212984945316100105705078885117048024215405686055917302796792241756784102368995527464914640640102306833996725653382783646754710279144313290550248839464223167021811558547576361720810739234263069748513254944990781910589315618035878113855791097890247088809087235393085408985222679071498475877136227255675376688056170501335606552270977629498609944691001870909850974476987653072926855557191023914665957723945981295445191030166955087562858070868024850138900463757107479840355987099814246484110397800623398733098421671287031677718210175666749257344915761762186247403118257394895366821546197877443041919087528871189480107143849800564176340954634869340040678343781836604998784855948264642720518025362974630341949201369375586746463051218261768209407219600659567503822097809692788960471650767952822097911312023877542478969330510881350401474427098901092725629816824416656056497821160011463217038568293197076400256798686571292823719033062949751082325945545268187967662269312964513270612379280066362399778927589446736350446558805235170184937768306875537331928313587112316694437007109543526820318097847516550487814416785471942250868753672195324244710756211361958482342081637505849272042926677059145255738119390095231593010298904311614235628889011338362939316390770259914490072827861408823801969248137980510687907333516687870298088117221287490591979371323416416284254395115745662405394438472642845315859772508949692179939117710800313168416512053823327821133177562786894365775187283394434660901426489352592867255794076290442104795607368365348021090819204301475006004401437322745753250356127687291992183674154728849046117892208912082255743443380464057343288973657272104992529768499837999203474001311012014070844622998285646927446501171854135159744228935180332737549967093201907952504465739109016461869145495934589678770927483036342786410592866410152889366924623301143929648781985125758535798099247048474185125011677594716767129826598177769507703703428356879079239865550999257153030139528802979612717508353431372748737616179344589582555370829487577775542250550956532987729387365042280374873585160681490184894150051731778068288689739620684924587044302944143891212221639311516708343746574093260957940901189789885129740695270306355068556519154225899835229047636481345705773003979147399100613479877899041145420018813039386838849068633143374686809115256613259276517624366228449253605818794839669089956443885025530970162895672217895617338981642958100993448333614548212374449996804484220277024660330069581512557295704487230403149565491035727327099108972493888103698358947030599371461527747044162498619992138155357721612173181350719829607091255812430172979688156458416963370586312432393410713648931194691853656762679464593765507117012883689768889878179180415936354008699979478547493239628462960772735884246797847108596747028624883023757278570925784304958912978060421910511290975435823492166331222244085818829596347395931240695169045571011952922473465222036783745081227576955672812978276652897037509662072224515419434843191957281386112178543940081270999926860457166957838484789514863896571582153641758403688828001125920910846107977872873267328361771189228200025065029070749211303004280854761685641209879434724252118029253509909433779773334413666583833961093410018601502625947664374217549104733729317891149048184822038127842110410989211381451773925834453607749569307498273657390951113706699206616082394656540691518261448769888020720194272574790598182567175172825098080478553894011629343993750177650622043673570407696089756637626708190231857963568303203969364048186644986883219206392888063431703967299379088023441244766097920776057451684502813792797673277483948381395909993539497834095060149181586652464152467615222049742761571649789539088679959795210187286199189273336555704973259737351010632296164766905302592613613493250191804788375478586120559072996290243443643022740795339102834152901926972333533409179110304315035571262143788824996373975136030405575837934645255562615465893486429109869786818344440350741080968114771835534074127327969774918157965528313860296658534476820569070114111111073543573847753138136350634044192521936573322251078417295201273955557544671323429959018659094629957451925821439158439914146072838970809559869822511182581215399675551552437262917899346133338720246603442344921278155919329293342465390750591244255906237180585302294518727119694247759793458277361610598149621824491907236064571532100863851251578599744193974700837583770831440969161383131440630124983332391996196175278158059050537237841097408811848670416211585872956278203861249510250824786032997681414607756740902953801320818667883493724867515128794588721585480611858086704340971316264981321024239537239096889685780159917551071078051488302499140999091729221438944527784967248988278975492995766083258192031159541705756663514965920329795835909466491412258359388327541769883797316853933921624581473194964410053237499262682632664019645261595769090343827290786607441635245677206910259126136015376827825770923400042175453451571050523546323637828491603764178714790215501674351861251834565900429643239617918283230443039909968273520603687097522772369692615314561288479679784803509283392393285911247100129133363376962785152184499756255661612975174035274883484748274678533452981748460114010479954959178308029031525898635826736543843709323724648412779929927140718338011176187980991097034463870417117825277584308199931116688617286668366988352704350135312801965706290636370834702460174291249814966748013893435584186392519738786100452448486210175782608754962051183299026954748532303648254842603969092858271672452746373542095050452310173439521477527990496869779578264675942102851108523353648746622335740449993123758406760906371336995685072194861536256295083273065964718077088554506207418537325952691430603296707536617386787561209771885703410659279011742217787240482365646517202326990837124419877854236620424536008688714683110581914416978825610050434078415022415996317142266646295848159170562419296731674339049652812226438367624137699551163487455503976812566165873903725779321997878051649953147097784937382518573645213680041755377557547966604362745059134453106726515013903239078301595126329618216881388477642999920355429062304243454249475961520216175237339136252047796775790522672891881231856594253522292604795164153443843220172214390202642905475909665195329249669301432306523870707873431657576361981075922426611685069877362215594282729441293650574616730218001850871501823719972069980690494045215929163190370601972643086578067429972493618485929758352230263776868973639343425271855983254730762557576616764221280583089466667130209076621927385916801823540680024050938632567736814485373104354320626017010366452103534657083444732978208110289933618639676100046444370604186504520518975455754840725788143098644986826764471685258856774930379156526283812009547131995713330937183721349099660917059251326183549150693770629296838340050285229461239152518278719238135321955611232012555872248994384687015606378714750563124804648406115082736084098683887979620655351508903215582590530328424644310067397591252237469067456061083701646219235487378341848140520461636474031422809266245990950006958508122507777394394939303331366924555164763078980320054766360805282962042389348590325960612767632198766115569869686489591259942533517166577272580854571576286651233454575358652454450216672977825376024437997675630664833653367582888339094164935884985903692335595569001224189445124773465243262151729443901338430179501638644706494021561269928112435683485402799425655124655628322459717211220669549389810040012322844785351873418771585841804260028182109023008075015188051142755132949334970586733156218566301088425984769253216306148269565844574655428404497662299377077229809801531343849528236031104494564402328957032598613552705568373364785611264815269215503604609169724488063293579795345680891295476869447670568931005965973228828504132302850466640353394123238098463003605930955674457172337179961188837824992476601243107831787446963401634827007815482329614644803701379439623325525377692158415748076095736156473304663061744185339126922496432937304374707427362002835249222752739664644637372408676785330385021120347839176374943963186356028399910925493707428347953894850207053372991354725039254255663472986124935867384265407624899608539376079068278163237108162155858603837789367281198498005466609289929924062573157629986430428971806177044141223931097275082310453071135728385279921290448251309713731334188674076142254478815614624964795225686353853514543862323497757137342245951459531967243275930033186639901309158954429731356058363095396983126399242747252971969593119425033160269493461693886109420138789335462613002657673788684251404470194856654516022367045809776404191937858226557885724804725025296989559098060540476813010999369032262805330546785261329362472387388265837458370486692978555123476221800084074156457042682917045446660588374803637638879517980929863141937602658918578688705309124843213185831878414456722149003519860531797227730494526493298762235533283417477374446255321138196600837009914771212216836377590097288444732746510974635587395075910652056122387346457096833975259508280445346607066449428551370510157256987512295770200647063180601894158831708526586347825593465627958787581948314190786969649127720035969330544948588508085969462141225433448080776800412766347091482873034502906234008399341887756909303176294666892742325787230475143230605655626424522394604065223670522648900412840231251904183555530622216385055483401253316111498724091183955958483046687668300289840386346090216175471590028740519521549206619159583770602549204874495382391558670294810914692690249386754186727135433346981536778654045191088326703567484520950504880858393248588016092953059328985771312668117735767269809600521192740536861628153627687253298251443482492180318209355868134206536374991681949158603610840122706843556769555225735117338815297479152913292250697156482662286219183005654366125497736443705139365310822720564349639836731997899817594370439365148513672466802367680256380873913802834678859220750923203811150679330762856807156570431939726156452025598608433685495903909100082395730165264347708335409979247953188678385926587825897863017445509481682055647888750234162358810796573228439247589376423467248723290942649018873655416148597150075706262995899269947092364153074877489526932478310038265282234784729466126139846686818561081698047345097655991542727935678108745783999857299071864960992798527599315893025239987377080789585530668225776443969720602418823453332971614153295318629534797849851900794937345798866050484612691303044972983979952937128958764911811834817516450374933757158700496644968256014898918813168373147535763331559473546395095024871304076924110920033456903460192443481607910762346549739994819268633876777064191113393008139352790026780726332395368149483883825125703988906740800059394559981891509124790645918600271738132066459194525667585203286587117654369803496739376351469693225646684212048038802520727024823345456673123885560102131177033554744079154154241817611126032262151049939512005981368107037007495731358046789494884732829674226786207873990143755631751103851117948514957089456424811024112120230048235859874500556356103439637768239308153256613039522458221093033158988635094254797107500359377805868240628122650653464905980126720372566465422386777024859692139719744004711204040762096413658807656278491092570305138583564681899464065610344816850256916661869010721070151612636729477379350766354708650057699044568695372845591683399821096188994887549896986672232677001752934713023085839334258841288549295176476019474795392179444839872850120909920306064053056882658747933936956159963923973434680456274894435177182494160285372904533065965523685830922512734974104526730074212666744430048332945997656486706908118205054369164408256142950728216185097112749388534551545774069795489821033569291536226639465588674193221112070989251697719775076955625235439284981435261338184803345471492785903421003695074641887187970514737213097844807250990496079196347572017562532100384088707888089907341420594319335829563884196750594638558216588232325906883115965640705768628588072719657154891257372297363350525443156314150671095217632266509424882173490065172967267257279948821414844503951571451058210893685195736508479860977285157019703869766252971673019391515028260245692918368860830103269370422577773314997164245048919582998633925308353121145488299212172729152778921447521354468410212628013257647579351875885618787862514346205485553393538214879555026081780106293381234365931830155310676343629222719736738228223683525075700180227101540248612955631165045924712757449056767049402750222150250011031252062111039516777164635765604109177831554187620384069154195101789056897581718446819263304989188247316639611986792906120253531850981165282345389027497680198967925395965423860540843465640891631496554698125483860712007937763870922331764713385870296215448065937906742836332462921345768030073457956958887547896280133879605892905034637597404097510851248658968469932895541978371902269201325639441131731170390960109768932542536145429455715240288567887617627139518469039480825095724229027668269732943753784519941277597653352586280713959303941015673507586098045187872726649868216660388498346623184720001065196252455814312872821052566443408180538286785313284310936148100715716412037132977739333349455886634352063306282728042855217377052664291871653580331315724470524125203659910810839845972211480974485886727462580503477418395880890172415288419328265374631744407890460865019050209551461208630796456039906807626339586247940883463933699589013069925953122325387222102783770901065651209688513395715863767520744412554041639219112148367198891047679564609370128632821875299274420835567730991445398299224986981412543105501181427353020404198963203801244477958530680375117822071696300574553251189511347783302521591090481073010260535571646912837309636060796499817307474732544071378529758861125197120333499574624488561620367188162934055536271625564068503470536126169822053686924402357012642717208751053289866452172932134497829795179892443406680637930636620311647367790629850368877453794997665932337041321701531821775610612014886091982829829315211332630294645938168856428107866141635598772323923316072490936321833525233051711734863217368592872780599819560431562782012765368912166531077296357671346706478034482024352483421691012007231255154585863756627358302290279426140525777404263014305265627033545168958260479423984192867501962414841582176680707251796804241595219941986582427463219537017882227372819608010459684189367370893175334248054757880955430306728084422246966250731962304647025098705363218117537011395407551282328637741462684736682854473915538125438809301952430027684388509681233204602817866438589089628559087472753113888231914226067072532508039918749832808211207072406742833377099604304688637435668972876927905601381783694462196529655157827586149064737316575883015239235861808997564396186272836780795561540006253213433036245725444272200241126400459622773836174019889632724904739685741758144097080049695203829537496653342717171217189799052475650767447336217324759647896727227040721370537309605133558435000195014695503607896206985050661567973453463857111080937051263547067267611536403424500998946157550035024147549867862845738624312159347968857340221069098011298177856949669314648235928536855348817732636177431167800209876012388081722446465316977779454873651172616826743168316624225135864435095403509698772871637793180136695245947523419245491389797817902216172083148775382454749706562090926486351507504152506999167723580004885022111011125183394067761691345400251354766298867026770368537719646761639755489330591912005408340241463717288630802489109617127199913275597669784250011890535396228271584735343354358466602481875500255830869731103688284786541971575202258913480052823885599030440970578177073683246645563747353050139406042244491391974391754217698491386594375199659238492657646705419683094821071201577967372819608139358584099857445649491420386260929611556987705877870133366257067833543011939489403526998705604011248386243662809613138861552254891603678212029631972956687256801732297907402928976151238763459045439406586796118941012229747191528386560816093196159520197854228849331694700814458213234553954802474950091915338625200478778053501700059408059483252977045213488482357112156388535809956110896648897198495496141837980816486589901252633284752345490436876580054535150356568742766993586568317009757103820265497926670369854058692695680723603219410007159354370562642103966533686939901461115231570945029270900114768975816564682709457461878837621837553340741054966706485528288142109430095975046752657926016625114519799023819646029178364288256924671509442952919912245037055717673977054685330085605402519933274257116599048556702575584529040209162392528814760542346953038406733702727129148935110039920629944276629823569070054553838637389158132809291947047467032879978396816079120918004282907779188153161182682482769785952895823191830643353652357541002868961937032087272211394089625910373646119455564172264915434331181744819554056764115450686645935098461583679946546040104913858734499767418570280268147985535869882297327262810005713228636483739609681821878669885448496781959666965768252316710252334302715868659344655500052864854873148234069073161979856095006942268400059236520313631103921144730804881902306703824293047313814032165148266887876767187641800805817287729922710877871545194730666203689672780619555429126348719679836219094260548347440234195795571132486714735884796737796980695435942938360469972848674415162965081049442997391565258284641043333998550966252701290039597188128711735216090289222020372695482778944351883070005709584463694651738216307427893369682485836603690752327597248982911544199443934256084608370917243938905611462200225090813212235768892370848748060731775894985564001388846061334449490173865764526290750436139417996689997732963233584986825325409091167334306825192048231278032328083313617838925865656809522949542883960401890587699754594224859784309616437203233568621574842606768011158281140558737927325586205383458644195115072438684876281224470440936991902811523364540314650104396210817270755610610897482831282093472065159735104480714399770059403615055475757407107480096325714584512816597710606158627202839592831946772133122435292392763247222196349664057632563222290920823305369025787359523102071155178353162646012173150831820559616916233918777988432443392727607363543905073820756330303915853005273638250703039538602783001054355492589466270084816840689517592327255587114079248215613557778605968642515190486723705848666988215035617930594292415450485005778085198114569777195311026462529937192721357416918518083607400849393066229524169741007902476911060607795523625995229523418681183294494554893913788727471910138573499590358349242874989840060528608104349779439887637563408420401673909007002970219754698434435689898026701169555327957173387626913533288265620196299879479908294439311904999594639258767471157158230333752587798177790299674960488653313668518476873645984628119290319109874697037669789049380199377485101643723823082949481094695814147397567430822706932986895887116241499237277721660731712234031896793452417482860034392263844390130467201233434086366236323377385387076059846921614114707443402790533893807208921954298075427753447532070547591633474185309113126817307900331252488829127457140168420537052327247500974518009937157764530668199454762147434102612581608080056297176401662820935144020941586405519323311902261429487370261432579569513751883059823570242212224472587973390852643343532943715917279311986588537455988222415601922407534882513601909562050613044683684879651499563166805577303538235770225905397896512909862415835982584052423620271128680662476356471755295129056365770142454370009753706919524617689740583944044962453356528181826634547932132634913455163300379665055189647424365871049782838589526635663291022288749496688097849640540393902561342769203794816235438417497774291975900055399838425362505113120370879131061778084734120550290534960970274182243555100952371065941945846302162517350577811874056170381162875579557766483828959978227565597696418966217882140158265683205645068167859925599434393761688748428525567485551529313221509785506844673659468062114407214191030754152489924572134871841344256957838459251042793256613285701787907326359914998629756305506457801276584876018361431463963654379199104897389165497477906829813616201782397599956089268569406053269573521318139783439973515384457266616292778766871290185683689701044127578199304638645247920647109469119642838883550260675889347625759931811649736326185358390106899611304040106210752787419449255933023493825167800943773191217817634667155980986297189291989970109380785987065631729243344497154977728440295774404335401576069280899676700590031990869447296976611250174823212261245480993234684382395645676212068034992861974051412028944256467399245353018283514891874618175719972767999692730405578764134299874809750206631604952129912931862519071423666559020119612536786000490456311960309572863660773783994693262981087429506746608559664079765260807401984240881972228528737421194223093837162070115839223466681125632313255163597988457639807251058107415309102367498350429549185855455268312092408406148215651904838799810440883591478910920508731087634878637860233451767676498146234202529775064291938620876971251999858506731944724344517243426145651708249106101623134599211751251921761032212300472936677625540430915138242056130395123594056164820870685817817457794420715120633383479408986954097601591627879557892985039047270763870923971200348952408838613897707871918048772620847105703984209560749644258786845027518168124589960145995792512112006376223142279890681005312333743757787920293349990860308175145865529952797918366484128293680342314603099324336256831489675730320698217023628123604492057500593942983441842910450923868676115628470687906998343963431577704002413529170629025338010774969641675548468512924417455220378056882935301260170925025586280584428787738933573999814093506661492219534119012771781739437508867069543064985504734517415832088267870198649719434584035183111531747616685321320595237945038884553791983895619883077386722754754423444481132250095154836209105790498058188449322311264220477438586015061563437557143050532037036794623252414653010249083049628365503879972332932939952769856312241404561066118888102699642131909218884656064898594097418766126183464749065218526661813044775834100569297525213842698954964697049104573937470838531190909132803817722426454079181604284188615304601417032296018581643672566325566739997880815783251238414480669454393494501246132534595307853902612402802388048029941770962596067842112632337200031573910848482397033957909876278156663669518766690647201432537871290092997208709906599542540460761712077585520020348536947141792054225641379663416904125819970531059831260678143893460657443594695479332283803349244462311297833263876246428469088783073863544602482848280479667764787898142013955237028693107117554548255899194835413204107361437321137842376495316790498015448746830191522166121300492941700089565005442472953963192378939531015861522499963629246997729649810728575288926961683471485075702211675352595724436669142474610720257481558219267929729360969496302893527054145549382205287822352866914039571620118683255110899311078811277589206342008197394476530664226292865702052842367911764541969166689558621760441495402114454419609873271131234471251714694928617169516000656391291919296198066826851443166648985403227001037527246376040222235228366831912029554538542244021921922808138861661643307529418970165258340353123444600407303304099790816339690387316951076433172034414601062711285801436205740829282489669363398921019981217962005218577101110170885671478890942593977550720636153786937826921976808672180011787856220996591492770858302749331148439979882369792081486142745387749005952684620927846895769702004247785313764720733087740580382356915426640520501610436506628194074101641504022437401236020972594354133937175496207579073257028003750831058917850906919113409510069600547369714727034027531535193078589079627637568132787951520869861214786068472038301475639748447022426945089349349044133921420630605381886496915411806709079949724040418629197232833435662769190388564952267395887011066384098767942438417226586308371864427037125874611390900583799333637382677776437921972955032392678355131531759828224561759230648536755215284145694751916170990374248952139245895517746610805213608934047534395472601189552324201964022553014950902929838501518268231436690079250660678005394086614805882267245872689152946675572978551231436893883778930405762015013165733672077629967423650333129603009847031324062958240041919737855350910905434398200169447948756731314921385733669171572790999827491172125876203985640437727056258258326944493402078484885283706292321147198789613243419313410299373460720978751858182977941621342757600716116891209136503181835777891294965651984652711013113834065798184689864057872118382084388964603805969425350236418041408148826600927714755554939531685702788975404358649594328504115471161627113656696086317062937028557083862593275904326626918870909323207180796824415968094634953902174710548055545804242731022066661016959504227469491217532587017009806073487802955372456818204056163461031825052989437817474115807260232318980353830751161320922495306696919212596726936985157064481318445047579309971572128131163512907185077556291673119518288847188833315360929556705033674208716235016823055744255924080759529869651327779214274658413148958013016820391525412351782089060848270834761029887101021104953268014029377799516036641054160033938139863824154157967739220901018342396779946875195811730955665140163313801705295727936767565076120175660784992155359266449163476262666627078919106624381546171308074748932016571625378606879784079973367998304893271743017682668752417691223193180583611349402716968818922849635794102706351255522114119551874676505370762495657728558181858434936387403481917790245573826269605602552248244464748477516293320888989228047830873759068293773366977239759814653628897965934949802348301363572882908639496372824784037669519350569833715238594301541110719662716234454663293983784280111048633497865266683265087441769444119943507242294382871574314371377936620730053738422732562590777407998254679008453483967937167673003162207415276342958235602264299849202130485089411149907417544497562288301247070089525258397685816320561380852596223586244859189625071004966153526397655567074459705268674896269690610366354985697769908061708744498996225856321835470181691653863266082632225607121702338800088135665399747087071761454859071070932351646668523100117640480540416996967496479307048420763388513560303023561205050099106327082995964511949951919097195345354338690476832572222377354379927555493283858660405680217040900831927693384773350612856038502742438276434285149030125525232123559889362182677852093998182983486546693627861494542944499373205601269006536928719801724841296074307119608185510996397127834023315035325091944626388679048073774120683845733368066019250878646814997028105158145197480483733617055914639283847270756769029263913859807793097564737717158229311358037887366009050589620425014660544237015131198615477548744825050189998759905305603151482993702327617427308267431031253226461733251137506664302888278634643542414413759557206318162017108000489731262907005781928463385667264202763730489461794073982389173906637195301689272063545278286803748431523367235202838451664473503389040917289883590231427913753757213849733836552138851540820162083307071317964118662436590071215754056926708053155931900858062270327134023356132046210368700640376694685707740012879574144580947150233876245329423992526727378362626882916073117899615047050414858207763303447679977954907322722309555498192732150533040490511861900304873131989535653831395662414171993520417386809513092368562994294813545634421209229985843326049942407449939634265734197768237226867533612385790584266143168943302708158746281756763557193559912928743686953368134609028779433079283935955743537933422646257190628383610942988055259048605930172949603737168728763690687227004347545380814868805730071506064753411466388200018120383277017634953340628428906636687224342821716785003405833788998640589457542168684986423624204755098686725757350477270294668680875336488010184120532033162976046513282421879109990501312803339868201416449257432011703665857255473655897927389302006583619614280275874588876954456182854376827140071632522787158213055725855884226660889232938390103528039212271405070012862009538767956633519611708796123988924668292016376918076259110372556955575055480028092301421475282751527979621217508983292255578227296170606022735650221623337234271174293607023603533949696569749898381080403237413422450915401664281736849958180460388869051499091909979982932959604974718638145051616139511475100869052391476193130686279786708802734511350276018170414612761865046335009890670699283700989508700260150776762668831760748328945662644833435736350146414934198592101403744825475882203445685474443684706635027902790937345282304541990042842265501152731022769670791603438409941006589419380654132457026346093773345516471936924368447224794020779988789855586938016898218428629301009901723142019740911766137943053786849951856163880916688770424579457243282185918976698795357999258633114649850263884586806639760120947261649914792657888262844767081113124043139681940666772208821132928388366843985670123957376572699908261901300495146342019919549078258372188833818350581311901476859698578387075679707652799791042126785395946842005530888719270055798751226994535568639490002847306584913854345331717173759173075035576171113684637239546107607757105119855913710426043195537327804825304345782618882149534194202756605586298909523074263427736931713481118158694978632786814752851106130924722897726446847986431839767075803468874732826793886514209843848958324316388774431033574009018253735896046462236525974145308525739204749858957986218006606004790916159555297674922687004999510829220730256202961364119198565667641276594282033217779794167601659733394668248601246185750113112866381941531244582645864488389784070470381770270295535702195811385731972866456939142518715806620209921902462660605170424523226504928191697095079792579106284648711616216161067578626743057747146750774000841603520470551870478730707446491924216102817047565503604482063539666381224443167622321973344377350001305277540525487672560027452199613115584637639986698356508019577090028203273971403333087251420837193825478675085811939490792951053295796204032845674790051601702336643658125071911735972122627956163944089614072726986768265682228064746830107516024558013365647670898339301645376699267226881233680486228608768346326250175790927034714660209968485540691206396798765068458984614895191257478280853819116047756730993877887208024079808888302825860727188853336657254287845115328503059022547066497247628026647080956214095759454841052968878921183431266919886815925421797874379401935814958156128724542600179402975225324205019874501031843786040302658610658982604036522680517118407057211946601321412811990702524526595139737439792234578919862621323521302081008042905470169554121542344708072962657490265739668957516834195395293190744254938657103122143583385525220537495293837355806388139074864800226905111088928580152546837298160336930268565989262137216528135132079564774542227406345579693221173961751460344781774923424294973809808391298074438455880020985865372307213892157670668633803013312629181612648568408782007134142059275389115965452508977193901666629517331544987728994961131323320641471670678107601382394835170746983542754004443268748727785801617408017601717455574464306859062937970612898019565109528948125782446591741000312703072173929836973149126291052516794596318102123777859663023669164143536171864149038500694196647085670483267235759211139939751273577191120150053595274535007670057035318841763173730201187093314214692389956189013516314877957707172086414086091223857100949683350282923748731072722494978786235940755434419935600118107596184675288629464031876012525075775126180347162959573126366076807566995645373321848250820634929670999972537936819206785353906078181947295228514352989662427258184960042203507744503119061136618877590359995841380297596390572813857590305331407266161324910860986617331297326358548140607380847031202906808899714686073055697488576976068848081343109079810913121376319709608289389039555273853696743731667047426415718307390640799869777716473197553477382381839628477245507848524078367016676429739927709930817502580451335152299890009368166163564286377902426447931665300250641450718355919817645149294271683166048416957986971418608579439336230229447154770448530646784074285017633527750217328002849631818882672778200249749496731887321674675499360613865698226265445541602581811527684317654229774962237976479682186253905782077555269184273688263106469537435007332017076917485494973534770567808124083570382693831775973521019476178081488473150723855392372262865869319141526351106924144906691059611360572476916710587670922016175312927850443171168757638233758879506397488928950704511442179086374358404736746224838066175650284057088993146210478486262482324143279990239591800691191136166210873690626002628566431353766507803134558327092356680658808741843031722095447515895222549543315066467294600220623852504789783135130430796164870459274534759004863164198950811617747096912442502829381160922229962681955874202227232006004120829879636353569519246103987682442368894169432157258601613277303349038615283238656702001564552603622884355375888569781075095628420773119713713816400898283558849154803583417144076644542620673861616106177107529089067419381374014810427621205175256264256032178995960129575291679106173683358182396599788997693829895394114373671421250895770530793463597059045615183655375799250969802412409325697351435645953465734052882275907817563717122754143679151539082360143460371297040376637541670965338367274837707182203847563328178657334817517003359608935181559662424614885254327983859307700467768047344190737658522894281098976060329719265178950641940375406120864120671097680229200501793767412479422347182538249248895291481827346792964596684459549418904371116916971635745803528540528697064768967485376844756887518758239107541642778082795234971303453351156917844370722204459235867561268011528446964729720108031467481978471218038527170336681593864602544223688952691593096481933071749955675226204265485554491322002129048028427764615167170650186921957918810519781672169156397346261945665751854705161460358177528032509431181862458239806012667956414948689539793323489719423927067986604987722807974372143024280493546736402919649466961738404472416980575537033408175887357899561310359204870495047412167395324727729696044866800747340128992017287504223345946209968116963146479578310132710345692128976800335917907744209908961546274823562167357501688861612078889728399818094142741167605892200877019229277015366597065390755185281795223778705893449508323639673708546377327444958787957349432467749195433604816236466891298306598182509191612015386831521999830876559925605285435790938693873281633599789759814503802626365037928090510201648103192427500566621761778885203207813993119954400447823962950054469741582448377669879085356302771134344304864252472315131752794174537946127191158832312398125615402590807636874913456249986756660076915103089610752711645530459035192448407594551813144929531974142787644668421526665195843917833254870206323511640172432600493526927991902866136242052251480770771163401449459562530906564743856347392507943954536027212260027002965630226385423858198633292168618557710146252181731932371666208941453382898302306867759264919324142624879913952447445377739306007392066303726502778884599049215084806595596800611122307099594959490453518518467638198985908248245572043153278054923778663122595863584626900846257370748771018587177827288875437015634783021482132479977621774643028333624903266373418635128911543771022463323500757337988710794009921289895263252136401966902571377233174679362895269370429313037398649125391478872498651466503590258646539905465491282816227178320958115510583737985911381009738946426053852085378718825766388027578854940819461594797707414103083062137279182987292175128522233920197395846812138299584052638223936854473918232971945877110675040813350868586212657395515172640785509081653703530837105537000555238537618838805920452479889593787916145876396724414344023487378987285149942995686384127994235395498900403076928728543137205094807105961637490762598850953504130962436716894793385211377924618112377362272928097951728647953337595989553043561110503105514061407174150821438482326175523534815052530510988309989022952392754564282755530880494478707893506873328881201205852534376389862702726947900387090722521566165771975388968342382364571519807051553270659241610383837999683464391635094656245119841783264736766305796164553211513078003091382897909272519275646396700299242497697985608568788879463311368420847290759796832687693594460852539495144454883685584104097591992365994082184264312454969317874269545210979759603157883964622048175303131467002612345198993622169991155974619459188251459480958423932905631409049695369214123985878170167920970700826300047786985068109940914124872875400114104679104502316666208141684286870145841036040345718202345557002293023553239465615159482854923371590876712705914614135971486103205548071466557718990349311838725591092586666289019763165087686924702659346464416894160754399051592859087674894008008925702773506396174676843584942157963312926180449464781401865877893042099891466128610400532210781749129951693762803490885921432301773771345755047417187913826072189113507547788319781394266566920442494723557566497247808503406688324591762160033807168103191628613048453706969600050901592912724568149546960864086181308962480536426861951814631065207762403523900810381800405142839817257860856252765510078930239177619062207463449925188043487152716996439368675473036867983641591297146275923652952758420965421735551035472185094793932862748922206753271189574209676785285471163515246440625594834185107482705992877521128000231753608496630857392649284947279951006059944596058506137635932190316731904777518395954723577979367558974188267767515928736739482769330856635367111263668749820936324336032860132736963746509751237014727472393803297829038428220480930182128043974833412305679616285404013709971212248155143460294938679382207959571365586945042204237122035903572234471899612303023305387049061917771103543314005616545801227576022618204799741635337961595136711470610270035514667459385739089360223061499528454348048121172028561580308624705502572279835601934444476460632494115079595106708297764460843913064664596178516883894332139564406143089379160459720508737029050995369767450947197746370376768407678577810905582059525953959438086899461955718371486270176229753557186343897669522905635210602769057730004939352819965071665033496259123159557505986762676041964048220697847829958145498342180645695802216051655080711036532847986638707930871369700668881522893475333627304122360338469965548499913899667764367371020262564068726376223032722360082571169263774988837216115403663775193414409275676859439017586715451019735354223155545550409816549787860150981022484628039836178704281161737873417681898142874018290767657073779497004882896833983175428505539937355809540292058183959229635413243815386605330265108058392311990076527520995086696878814087162946168111071383265718714192392026127007016968849849901118126790004928204677735626495607867850187069901503127954636901465812399635863492769202607321377195927073239572756037011897001497970764284696495996408275297458150447735220291757011652088586943214171451020807273035589517388884228370948901627812471532928857693252802248233268892034237267833966491226560003525095226188205303031669748451765414663936246444332970005540089877174469051870095492604935908196624993216777821226292442509825040313547768169056868980279924382163201709486383216878586224110697849161783659219821000019377927726671912489908905944352737079459157098962854107629962817580662760304817495888544971184925531471171309573671538126816596489300760743821835049589900155878370505858511431160183214188768209234254503711731805003427718946633123029092821838813695557725395206453671853411177669836040467746048349746256947695501159009823083912758479349912517372292831836408008358808839140478279672270761557160726280774081099513686938401803632816973750657874208303391650358333373374434157594759591268840235240522833833104870390065825954336171456585730272992039712711464203495761577089296656141107585845289778927968725586387601214876295362372100246572794412235695549817482265499429891219999900784502692150518695980308957010532872386733748965881076961776930594211072746862595369878632728253890958010117125703294588521738588133024648428582055389844523287528274646030231020999179967707426188650376560698921302370130865937191412842571935147716496015334331942702100762221279984078916120429402701119433111377629441694194870656165505128214668603455868701892690942062402576401524707798706977145213250060057938954111234053018193479182817771218098845062965390600505608197041190199330035850394995205632456955897252310055799892365443095858841236599304795617081245495087859729086741836231057586905264729783982940643778824589818461993435177512265240455864271248119105596685477863166159664256844087950343365087089074883368904338236253915306198345405763647198626460682127995043046718089961186388323957854043732029668701656512804295379179729506819411831720999912824776230402132618448222424367896155717605270419597858087976637642946314400871905051678550966175723527134296048755443513528715023464132619029926144962477835900846354704764837933681695234760686199305583788938148947731726299049541175874617609265655307763050547637896990189626110268605590209863939805655460538532062477176108270818885561181790521523557513473703504484166751799405697469107913111049004017617221681498910388681007612595532483761857836565577406711533311250534761022012750695099479049235772372691652774347773416537728570547590470456753725584895945737556610371691196717358392541919651789363884749719618964082023783602106788128347519177144770627319831239382830030428016787646285519421461639853505831495967664587927248104853244450525670614290842617039764393024789080865350285950776589288880907858403707325001236091854107794103126817317493650994653070502998097560975639338945731691316297777942035427298315989561272933041476987212472572109598682015290413465745040069294335120551540191592690701042914551649541470407538501652340187412541266875215096094860508992280253417405655580604814410291675095393755571808046926363356845959163998898147333890904831467360761726974254531527333165374344113584232427249962016165276788991230740263396116138925497360820395312042615771918302961049721176007299295887425416213611511967550715755260324770146172611658004921162068467138020381462143631937441417505689092981060678220208109370499158975213879136467157868705851535701969252325754824106577997144816526219120672186372784837354176609598386116323054226693326566552646304930810701208817740996355365462934221223188942379286810741160906649920568029566063422618339011767576485455923268407306810224855843281887547718944651766905614696484288553713844654848262143662154009356302395098235849397843083190577061556518680049337835401151218853460614457497058841482185827570174034937956955414325018833648465846208756074349806364230866065937593611361721905732901280760937721393159135136346584377821167897323753408776893008997191418179485551427477135154001736143335940509237476475946630927941897313549587950867210810575377310367881278473394661666686324567612664337146420276336371838241595500515904218321532448140653582327615104126766398073059782278507163788651432604437420106677926798702234885157972700874881192857377183371886652959941908371248422565043292830015739586054382556451499899064517379707366029426083504948375501412137692823717888987410060100635144365260649138573922205950906261430385733202638849547193740982619007941608599187898006096973578725441467939503659082199283951247233722832815350568506735165684796402588659297515755880237035084329932249802820782856680086303713697970245807412555810871472857520124183470623567850422297966475661568841193599152791929761058889569688239677242537504459839234608938084521070908413989618968398721145115761789786051980125338272862096960982704546761113774083746696554975457125288233843160490777443951742195410445810482549111398086071514789255915345436712442808467408003423966276218434710972476476044550032999088041689895148503301697217418142916973822228750333391619386308876092899728928988929523444650906946633535873132245683467272352976246756896918778571459643030199176467475953105354733205160288445775550304291757916289141375868675582556402160452517538614714113973419581619695942992767758483546383372980637113757267305312155178917555888950148262146967840790624194537414167619564412332032825449658579492373894993725378330946961116196834470631201367362669538052035652406515389154821722848412112213190816287223306211020240629160487995821508170692538031486922527014030637147947324677272130625513951664414958491981492766158513173898137556543710684783818879353171518056414148309832586136869416978050693765381707272383496983955041937468377047522155430399790657279431315601191080041667396843372965544624499128357592692571427616471678314702706480363615964759260340778136668168024882857301770780853802321169890444657904156523994721267898367150182855286955283193234883273879822015200039653437794792833778080996525879849634199185431033595630326340635970142057509802620158209089809930902672548170640365821068627564173754861372504605434148795302818721351551776597010091247955186410142288465698970846334485629110613899270541922707067685925597241530118418532353447208682104171764638435797824280015176619940967337204802309112713740981611570891435113387474720508723468888308993223182961264400161473577030892421780633576068395224434437979874702822678988670880575911252052440963047408780471457150247572191549308721485996240440526993757103291673217567694569317427435638301928888392831236217040534527623430229572461359078535710941201177827479082488784796996234612708620480639278281101895630616413289556819047096532711222662599332761837680607342821820703319319220289547013476381643919803153025032100999597806509858761038041931563121518291747671348547756278935620577259376157131101435459513563781503926846439920644736801432808435432970724475338126638612850361931793516551401217508777978500515163321069351925480635115250737807543417305026678091369608802675816174359260179173437737896676571715522269070204243619754833785850285768782852156872558495023776058544036271277242643605548674401623898256703560702011403083151752054128872328721141784256684040425742652787813408146299030028913836025847436386625707000171559364534803673811488046798336375520387014892902920875301289859133013242826408676269495685109135385083934372548438325973442635049993031938812852102834951788963700483765918892949784529267516583436244402560906191141501610117489303310036073313062144502053837164232083897247134295462716681724155205008336964909861144490573673061483996396819240351233438208234771917493179306812233338087390375567096015420293802327987890416373389221512961807353246455178474515130330144885243073602057949383529250471075691500279633041415395781342995281200655641250433000234065835922719075421439877665798970464436118401726849248329755916050369947750433914673259303073965004469897174449100777946939264288229299879542189404459482830777820512655105826667382792180695267868438152673588906096950474656995188426004622340383725609621652208853490328075060503029367626560499750651657362803955436260028675691726459933099741298626088322802982422885329378918957108606700467324152003687349801654193106253170380496094943379810572822169650475654972957814171663799115849214108720872961940640646822113957783641859451729513302882471160063354080652257845590131753507738944683796548325838656748790215646855585349475160311695754915006345341100314618976493123297683342884292390190516976499564513366077290528331942168710509396860464638805500037904144119065935893744093431389335079057877931647542348088894440550379116022982702575692094063585496359685103766166429475406779210257304474872375579289459393443078003040888904971957411099418257743373571154427273230395185492697980227948299687184600748235334911317650546872022291926477581066204007130808932856639933866656427372547857906125633374300217001066859651960451869868503988437272014148085799591058060559465751784837134887420994459746013315417566020528350395813667844576167326486303189366285815408650685685390139713797528827654553330901252360834480902123449775742916081824613764956108154893344773092048361277370344616432952351668572535938101960328163700083058895155753142798199423142815206932430558717017786999441946469016232954679921061136824183209395631152090237197767592000378087449077164404803351291476214327220119039958947616006284945844763557887283907008333808907468527692846158852827560357355451063931639170442917828891493287842145708414755831213352598471222046203035084719990341339079230935482617966789816639654745242975035540706973785979231832807675004841038301733447587950170546488367329705023296815637625905745280225425994452368851910624157089202387402702505025453109767503865292975755762969405957697079869542410992546453028087503374458885681093877166123346397608149143418667726370520176156873762017337139920094466325510364988956444822572690089800623866321669578324711872541116703350964302414318185328536520072978369297446198999042744904807055029953629198568623056440287909820755829179231374458990133563085066852313799232122526502402448617929789480703338661930567817417198019675253399354036797226963100402831604107260070786231613562834134092947607405703758310775757530307727476776705510901895534050786165766404404988120797373195274496111724484981536444992417574190177897890593099354881115768836223611436443087182174128469552121035686703427258237425916824748089868294780045255964999062780132262456758847471234223268434098737366339857461568019955390951737542713935097380428773201649160636113715866786009953654234309805492106575646364469350416815569277384722832103307183225409151199130450966146044597141071920298600254604586416919812097449633243109070128442992057294221626242057221335974294406414507063200250377169685709338815034197480297657976783205303997927680339579151133059719694265932913465075480482840500844709308313715227218843190465463559137946166813314692386351088035699928929831671029167116898008089924724440977156930686675897556020666105978071310806899709831310253207991523673123051190804150070672488079970250558822998047957596591193189984456626066532494585179734512739878470678056183528856122791418156332396716801069446491406145396449666094583310419856889583303636086972374486475658460842008908834449343597226063278603227868323417494672759357464183669741338742286721674704094838931325901758837476631898590961253377876869487660553103347267085567638014558571212799113284141239697201948934449837273802286696807254436254315314732482196160079318209633205146700544136372019949843186429609700304713442766707594924438396471602084733400019809194368415871324557824704319381889248382359257229273814823225464704034010596310447955453553994129314768966061040527426572440408198419266879747575218982059153202968109385781138296475186087042125277880428806453002282662809804921183835681297050766626785812341117322150382731982591987788613844687463884548602850556428051222240781153966192863928616086666052587004101257912930912132312513396389919704424792894689978913293091337471519971843806567737721885804501088686056451222995482618262109272502360486259065712321332473891905382270718304354123568317094626550607639603257481985568149638752902662052499448869919485111429666619352688184303509244402692338227790168074706550485605835645324589198550511329446482215398765315075497890181160774677282734164600883367578320414158960578755128568120081574061259829658257449083982496697283568824318538762715831271308578174058702917830184017358459622690062081773616570317698989610209245705662214879574837919194632990386050056169532247276732012092257769510972738911321333698642558194149940818448903419457652869261787691478803347667494496017732730990156379246724781180296608732185648811676015335338393762642714974927079842839570174470072354222971768133903112095747394129145828957701904595271771150854169201797569572124873859325267508751241521726416110021307376619333047743501241306880911729694679585838936680946288161997024969090892338781315133807606954646985191001881867578157492131639852478248567942886434467593873293639398826338705793588196162789084322803793177252074958867707769857515443138193490639925537852615650175773542103947332419808900043148049893976196617682962933984077468683954456450917429544821669027795660732643667693692700210804196535032445934001305283954062080143433872362950924335077699691480207964870226095874496491005717814033451585463288337557338206950976717939836025124335773957454436626247123703861771646902866767330423571197744439489092356087859455746043511274048492819424319902564079838276924575145080637674234516357489939843464569221660662077323347941161336098595144101300906180123781018998295893403788758929936789851296290860162732416613389660524616793730490865806927432654206825700148547818569486182618753144301838139670846191696613145730503465531902808361777905794983826873567410987553306504801502898716200053307842383424321695276879487977393748153614224928817359399391842186071873776281655759380423696498214130271761470627514894480798315690630935565885955940511240172866020364026989843418416646845122611807251236502346458392418937812328208044424855983055166321207113027463280203145127852775658719608618571806726492422461548321459140744219709935141201151785321060327704489836066560231150729425397053600737388725481273438175101251213451513395627662824752365821405147009787058758544895349480966029108584783310889488279110879183653873088459279634462491117698430593706690736009784377728706253329726309192525960323571181624576953554603921345732899398996663475210398440291801065699898204157039641966288521029589551184371908281183168473067603550861054813529807547798089745457299940521945730443326950945766566904353862287274520172569697283783907186828070906374618852218502423218785694041370732086636069199664155616138680052685725462942591222916786904569171111366244745306429050987927080596744338375932248407297997537746308988189885407211547618784356202859770398678256043818592718093731407242500426423834863415168130739820738655712699240703754588809525100920604355077725839942669811328813185049541662291286606204453329371868224671818788755920130816617927630175315778144441617440437613961376102295138767883663713198650716756826726950340643412634913710446950280928638644714061453013031885501727381617633737181571033828749954541587242719850218073853112227018315919908034760064712528748601354891186215644932353673005824473827917691072150852287933423903246458827068320827004842013585569048409326608857636131702008174546700954593750453098202150620689698023881563109369211781935457078335088423942263218027636185982999035938422151512210028588731782316969270208674263713844471630337263137817705110648795514881442556804719041506816901667932856101525602831037485268130102011874876786663336605783519552680014106829986679647999178028998071791424938310813527880848949870776643390511793621537207726110907404316747762410260423285114834127148489061205660036515616565936110147022179393634465933000675407266972918632046473907348677674440856276887866814602285333945121774745221479761238943981072475007927791930536778266899961002814507753997492747803771708272237641892204714024866918587702705989656293554479178045693515127602597999666663121809959939023047531876117339709243282518416630742527577325024111448061974471651804397620610462953015629591025595331716103914837381284661476059322426847017339323502183011985338078208458627749800275490612284037177257567241397267404664568331976820531463627822957542822490784457905678343147953680254318557153203945282897732390377912192406795224088718054902169714016321101723215178323024745009806698120008397151154017201773310217264056591175696935964226188788202481711472818815741559975752316320682421265859049356833419360237543741728874069827994540682651714184170787258585813624177551655064050790649122674997087596503252233384573829999726599523794115857374184795763841897855757640273206604846071673348930571264830302525477351071488927719448857066054981825192107479624485406225337426787197290764276939955038181046838832285835103888563858842598861324320292735023076276227331213629322899561218517328967825708875525477363293161582973050613655962803651259903311952481338868567542854846339300467979932804304748254778841380315285293493841946320540306876801752615821177735471539009013956939057370976907059684543333529218341121962651032292871878443546064139793809678083124108413371605585017828353575122994851721499397821175064612053960737302519918490783349993553508335051890024476154241728317126063579495789265854739028049957542916681362868108658189251864559274042005383353325435295164303869198442742196200910431198422272695641020796524510152960318685883330671768148648701226958894012359754390575069213088906739937809414308546056827092834470902557186245248126125946103170539278394113110702198811239845128180780163567924923824000296942778965173109887801502259800148233102524349362876992844225060557221339476647966351831713493110401932785338335052363701191773463098710393079418530685161040509830239778412152498890751940844790182806977044615319970439495186067759122271215746058819299120875173223221746965892780333826506728172799994919844809798359943171737435604814948673575626367355174087498013256595870204717329312330961106805341461448172823270678394881628977620550010680864912711561807159049272977270198277932566792409000267651455351477027163913759213745109320942895937331077163971711758936421370868971541179100752355213165012565231348676173114573819974779960829415654566749941721753109855120856531597704712244844207000046156167571084866971996326466566455450473206577977281328216271466323917210436906506443292885950708023790864721959111549212267406893096459432458934096694184664876551065598944470633947368731055946301282559887695500543089107160506774225457731990327984767653398287516769366716737982928376154881022233123626625115278820967743592932626799771042031946781250783311250527219592529279279425520386995169002271290617072275032816781408969670307506090963318870227766177597572634811492873382961439483422276322640962860528206722704351505906193859032676742153130189345017930165861735401685601254791249036317799686961163189121009880996664109611309494837816410972267629001376949246930168298261246676986411937847478577853031382974980446997084530463989831293273437646049175031749857661802908364414128985416771145520254710196622551349648252409008123342495454382071788603471540419042645119721310680374907022088920054102701144625753734925204194966133909656904417179246888796392507548320950235560681161386802273046091940986925585660231136450732944898691537639588035808330696731715185865593404326346064536616796140946155324102565446282943654420656527708986839440329618302281496362208627617093750922427248347332295951031008984733469904732890834286288501465264090969870201335918453831776614185474609566879013405852392161350021100210218848469608547896188534292299436704885217951869553434855795088907550080462083262985739072398694061134195499726359791679854148297497157623122250454458954231768586809070050283181810347007373577406794256491024346735016169644397969730430915112508026339984592761011693683527123023871367484420480753892320962618111697669491141120416800869589778929159329591905232282017100951697445724953367499024304889441013271224897495861928525865369467059872504897402470435034444333530116134643128090355619973514789307870647244602654867786019887886280791527600555272759115182716894754573701204170052547040661469225896785621037810666931769942496448690869566270731537553361044862954903342144647047655069395707716002742564782233676544774468214448125729622330371413017142885061307411044326018798530521853844389230145927154798028730714007475706035167498892595969323094155657627771218900859620035156986131660083953748979606653521199140219588891930647678854203248980941898284335535505916954666751192963910043343161799062243238123799836955645566729647306417717302009923578545658780645801910359362329671537661237307533040719399102897931567756481903952262029615732454007325285179718043622342868931712647693997752550213936485581290957239463888493087284016609625267772450911177046377980263034883944092463829421861873038126298352551879831036503265012144626875686548780630031117323257602682605763030539151657332268431556477700333710360708985691485914307633319035220519913954370056623507433141468275389958139988663049154158877920805500044920182143782911986830146907177914934231826212767454887244824296499543435206987214300879185823430640780102062648349414458569132086531098106678027747060380418085206757570391784988798953593611209018826967351122994887061434444584411072511358335075624090377527890876219807893605989615205531592499506659603633137050765060096757714894626940960718277704052043033304805097641746242294945631773917554734728092386196252705993945328315377036618239520761540574768280082364180047016922442869346337147425666387593445838039106101022998071736008612782211219390950387474758492151573173794159438124837945215726271236685124956305146522000144906109446225343169922698269950759768985575678614845798466179975816880333160287778933876154865850015821108834371933991073117384354453458327213747573163432015358109029479683806747227791165416587185561748995668182135184944921552725082744489429632144493650983699033216125821957282949581343652092312836273483042025685984643067495075259034668532341400367712624113340025281232011887124267688291603432377664561055781322614357203050632901492263701796598050525014377236199853290790450019911763302164445787825859502609068815091303619449474286156771524715858027607817803937808765946095594719332461165920022863354364554517626750000911656833923049671675829690178555956765886853370799977678757279458899503499344615565793198920234850988790550155921109949991529300755328260057465428855914197352049677042293061503160128712342280077529585391696734685584935601241094327387648989441218249745997803619242633250656046961645965747419147435183045347250307383810731574655095841903760916734017638681890714130347531915898191516910686031438868966879606439518029448433540051042727502185021656674938279017787532265251584019300336442655830233132943425666771556150503256797703156303038332144909493601606506166731448225934783638089928819255804120424027801785089666851964493926699501254502397294069790044816364799233876214263264950625810201957971647120051764719802263719371862437611023865557338525087582126898368540607213789685046584359140009976123132067868802355231909354167908031457808686744858325201744355535344895754893196850087624925601256514984755614240189074677297148724303914442157570455859030821132839680990033129128172864962958483023485671479686263231257318172664015115686571790788498504468078661513439551177244016251026770704390089112417245751438093691537466881737544113643770255193875934864115456454172334970193425018619490920881012839107388248350142272008770846765576988363306547699781887743626912276395906839356432488883772980190319825744419178240730215099653083665054629665885939247712280098087924585407413411909007892583620642654110375169882297639767548682186803548923493205741625992063580821918237485690597851338746226498881335682408008645292676813730696613936820013617516231608661950850389179567847063501187216083575343406117457101298770556251403892728783173359185894584995094509478573778993998637968932879267789052587321186314251854554858416807601718008992579262012495343181914870777104956327665425136798177644309046230577396317943849606161049674440252861172392388030977784478954494014826115420895461489749810967563963248308086031443797406285519903750691927329184895592328335209518924034436119524263690570592074338429413818050712008576587717197550370301951934306621702771329504789158734936180455140074952628259576591725566067704486646469375207445990765657092719325809060861997717521522716862538647393790898883727240192914345838928195391079733585230135120979323942352908126141649775475142705766335307534598923796061899931508136061795693988482483560283423857184681377992571260604198546291245498179686528624609878948762773500219370604838954532490146636628284365920797386175940301565803311064282229836319854528671424924424253786576860914816322844165735897269862675816976103581690716861986610088167089296851122137928190727198062155638432566241516295191381118771061861776227927948801801066447471452945399262867739228926422323427488704017642694851544662361077877868274142861011776857358871889654815220959805741029073083274711662650685765123986452704161201546375191169600867542653625119255787998361202105874373244192504902849930141256600516465575671800674188614432938292414543050271883162050430426636673156234281779382516332518243734548732008417457424876040743125726339853589949520161813465168078201913881866910006255911149448497298980468698053630899028468368651951167905954494008006898667800529543196853402837063748157243072427323019061429336589298813653845267915780508293232113834364358832073267732708910822210433414811429346822000151160925883559681683117896798544559284387212030225973305060960455242320841190243596181461403480987697020437404305187467679637514502030122144210332946506453566204821313721747112964710596587931700300807678702482867295187176533191080643207496135429076011708063347211213909293257714903151264192020951201779890153466769132769883161162359218475830823279983273230672779227980136914525378906570639888578906008979753868291951992816683399190578975005633681727076025655889482542930408264414392194462326973541650489482348530575273992902698199072803284947207782371978185992116733659800942366327369750636633012999479834627221176048126281469087244936208216225484852014848300074859786894698975587698406998052458168418674547393693901682422020144364412247211631714183902728096284245875248098251276117849545873782830636083126063946340430412622740856011430401037492658195998689136698372584586552184479855862287632234781628307379648610328464151115264269670372755543102886754405187722613416925252636888365653092644495811682287692423462498790623299982974837100859805372454254180616701333537792817658218688975389512890825568353975250780651440766285612820597812301443716038234298293453543763818597884100860258887393276592322737908052440447573063311086125594591563728461321733509189617696443474497403826861506137637427090729244374806029149090000577618248476792386097371201335100580967075280637816789167633871274187979417828178603994821528724460052326279775728609827946382311022488131081346775663113859617831267781285143689282453404192550441904813020894433414369606056172264023915845257801825030739543836190677948109818147098987697821495176552075792593246649133735778909128628195297351969409663088906838214168032169788785060302873225935617838682658772589382765167011621611648127507770587766460762518209560327792224520267791378268164171625829758555741649217424310732202258073626148865388798973548076610026807405823126658501941852317325198886320933442596870993023476188995166269265699861003127896179791030503495249550713452832270790265747759387701078886326100613390217148868892356896344397524346271163204027322334378043813286245453145592850486672605649931877295230857130273890454553032135181575503374277688602928040750037312893814142172856680969780864072586595111362710038014418981164372417157685433883097388133616138221081669180253404260291349352009069844373618467978633137602247919350516779066740086044988316076367218637740486318518553653700295783764463998623908309613239436619518826706788125897577253373471582963086294228091829595464305516266118180642776758513289506472819476994182046774594658762451544605394859028504994976439086303117443384076730451674020971784971892128829421261632812683204145039752774819255656232289341343582144880420394616212903263824426313477423371766038852882175364909811077261024508233217000837553321824340975324603867505600407379551670231541829020456658047715179774447207020212088851819721426636762345807396512741867716510563015932464111931499579262139506919201115179556117588292751344444377674517494656274867971560388048833516464581620927911724448394023020536973157327497995328497867813081578723728929289354268450611755214741870978899744972130850637659861164286673025182568840944341693304438213233844944580755907652541192349240640648564211235600643932685103413538830749129313194911716162782776854864873488061960246974440941925542147915976940797933025159963990377381144679008814148729892747523238671873648210043198389474584228722087032144560468238642956650433014418515185007466408824974629414262379377411128482291364484105058905910236301017575138524680233878725895393518800819321948433593043842474871005321556774430798034414298704059481795775365357283368969505477232962489385675669932106436016924358942578787406529808494282114321009551720747298469183579317807439362333149424930432019298779297934649342826011125504598037944743497282953223014812663687098035092316846056000532064511919451009878063421666944838227556774985690678920086350014312784035952287414152089344666789487897817682764618943724671018373241708324221247575565847996072484029198237364955404215391212472635897078821099546835727166445704822689172040474957281545957398372280552225691172860542245469947811646731583003970521445621482993227565093935035960049255921116168987676804939392248164536449299733099153501615890216247528001427030063308175648205087262179999061780467688701796477715776151370710236550956520992143444194871643363911057675240710792842042657314150893302481491006415688730789149317104667176367053564843638065591531333724637076029809939430369837240821454770359809770351029971570826624420659858381949540470638807437489860402037686750967150634223932453601019489851828659482730353145265146946362179742849934651347960812620966621695426846412323582177784576903395514116661266882063741369978418568805871886047237047760166977031708712733819963065726615701386943532158904848951992682598660953830937595105059384516168154941416742683541215514169768124721021155340603785679970991321675388221052094366011258304680320342875462220610586371029917069390753209114197372291615563791043189971333754607132841885145392666121220668503523198318872827283509849542794756901711874688357660342809417895788414628054678142683002118649638269338988923611826670308990943737934430333214578491047895137428567893321556147390771723263796092678619544187278504522812733658161435383889576783043206684851234046425927580531423242944343291541213865122618085873575970958654943561745002642848934948660016247879312037262760131649176082398703715919928002814534015451584685112580262953178168909412854290284441152134662795828506273858871491386628159531682225999071407894563536158797380654682699099861593738519633043608465702156717624889175902820427429527120410297969219106490491357978610969932892895979498668616892904474178766386936266245045790027974283998591282163953482210247784101222212678257759837928974127115873997682100591542878317263226926866178844860313288993785161701441460953867538421371712378111751081031829258712202827275708996589867328332880423269717228997189662488974193567768175682530420302597944576870424786502090409290509707411399118399968408201621018437106451834043569244393147527695196059696702182148733699621322441776219612378897826132643965653039230681197689209320328540182173340780630665258336896540009767370587740480652438504668911874104412361107789950866643746456395791406542692861442573283192288540199084812811411085271911609483355119236735773519130019345981074142676323285755219830032260845200161942907056022838310360262437049592293213032901531596151765682832110256992532882833585124916606756154916390141849446502577749746566858512223918861114183188737547418774580258782136747567332365413844184107209651146552581923046610136913311025307916023380336797384820636445622111256832654192782062845713462549035144913057257244686116703930740143078262935629894900557403143183032070172962300046962034835890234885291053681383167527514007997256460650540472419014943272370352770192140050127425652149168402440089711001534773670361323650568217475703941125687713407326191732873886110212810818052103817850001889052869709928864728338202162670884621399181862298250816042588592149854684612659001692661602913661066528493237896608948474375908269452952538517246252859560722596871237578733350438026899549636262279308804401657154391179747832128675155591050461487456726313615303451000120693317955088060770695352582305093794284802121433463188509239984774228396104326640180998052647390666372860874766685232875059228456280458353221656959878943217799977446800856653607753476159184613476100407709349519572710599279094382748976694127820496641157728234349042395583418721461570153006871843441969017431741504835451454258160349605340303615442786988676617433510104605093464052002938898042877229416984546908873843988073714915449973650339249776273210474879909490391868784192212353724908031706376150561383086073625797666800711987724524883322013129467188090206775044813003456539601477946014614757785333303482359082330953468259781869574413849087932048947587575255838112694300588736426095882015444736357343339813252802350573971018549058702353310273624778243390548570143422695217259037010534152493331815256544384907272534694141164763722716438268540245453222003102047674978749104770798655053641247655555029353491541771009935914364932663471338072169617425530976747240183181430565990822225900296261625894143750891911994528986302232152525858832030816396711192583634161625413467884993777861487957788365233919209450030992356773174767529440815990021104740851608224405210366259430509811107539135728858174279166047904127717558610104966779996547635019921511398791344392491922279286489398687133679659167371530262000320244446379481994316839214723958662450898499414908936390114688036755766650273277216653886177675462857193290996215298542392865275960358559616212467023341919640470439722162138866947764723705798838886753277273251213381189232146037395887313594560667089849993584273509978137859539835175429746525510247547736338238905535021297265834575205732653400185203770384192449927262730800751799025094390247190602766720116348234484113757885779601168737661867227087951395409057991179558612088857160786960324879602247881738649175971620870791073963932376058780829782718420182985752583964520539222323650775190581060509239245199670662352656590194594509464843149032921135165985166487543549841490637452944395660913697783603870499273612852192758899031937564463974308020112027940115024716976651046173561062276172958435914179418548140611118152680527799082881935704852839545591351609046281399094676525624632567430841289048549653202200681982687200037601535777944809633480541698626607946451175757956515507981937722267298068658115669639258948541748902418022631730038326812749440465332837500194595488971594286773237237558975425453900300771607856195579752691775453919081842010036789365627711569099176136165474923883756930551653743496445428654752788631730767356713964837464981032816682290093245611733164257795004168118778146684011113150745864905979084605665807977598436583048663026032022388457161556048977978031786541078765299210922316783863818396766170133362673300515103595190447275423440015639825054902796358088843398338586701075523083195129771830286236250073263175046930099124276700589863450337957633392154097081229949140677488979459002056580335672165712831512044764584420303782789254395640690438173629723041948737946813760086323024836301926179544651056439287630170346142956622049606748954188592340656764425613755688409717529538265518613766938022360586433929463192291331343276863368925977256485634056612661217944444921557584781512919051413773581239852104357616325158123681745793674287913474815898454951571025215274521667181385674086517868184309830314155878594691979720685418446503010101791514775512121866240027383339383137236724846829949778863435815312367254088181974180053437815909735213321315931007022824253269783847172922542188160842959823011638166740789481826920532771394729501485906590733637206733772673322799297489719510984883569231404162278335136552318717793926034518894170920608596381543815062486738397661634370814030097797931139612105225929547119986988473056038766831198614281659284604105155832226185720071184656314046004513679949084457151078311756738688702024308810529376906627279231025804859537361259131538230176264112324396878488418272118889566456177338465336792050882789808215336385378656531285269089963109891490429364465739203881315430033303303559119712453000453093292917209666790454210233220891483013663634663421868978131911813954811610723005767644598839303074558045574966733775487981367436838177544407981817635100142983622034226785860648297807084680352344479292227009009568962256992080894176156501960154152258164923496305934622398983904644541058024124114512389722734602460407741897847842238214854212313854442863384522534351208194229633880330796550304806329140624301318836780729666748053817222101463910461373892844000376082090365224789769040627730515477110599954438155956870763070460531734374741900493478472054547314114720520243329095629216152711666307876245192524925085693461539933442533225399498145668395015505628590786540517299000262483503699994828846311563608984941175989375158951112499117238303470913113125547180351852118080551318832217017259205018351341411395567308556658012680316731211381223307645227410732673001529077109821241607026827327177892555976924635587547262119865598832470336667863366059334717990358345366576033766599843640987733236779040582900759247444371527028373134403511058751597993713980520387267780230550549831758213806321439983968945538361615260609745109063506370751274548875793651005718621454905477794094163795145166048781687780884289368185610461118429679223837464144605022811201118818815172415633109130863093516201195502900851198515678241486702998810658824125386518576376562889454874934544391778857846688516235649173816704928457036848049001137672616459071477396906750432606537021290522143450145373008922729428540164383048103109963630086844998010481177342659964813174858554287949450985396110387750684739829448065559929264748825289773316119255668528324403814933855152211525002103680069861782566387891423971434120718508310641736236792986873476341226662398094280011486432480571605235050111503099340774548075530332062267490340163601398941666935930065181530590253024112541613068688503372543583309988327972839072494823254823751283356427264902894915016053137065689931934610038614396885766803003051254757447660014901549636686557547098714184956327948900106527201249606182303502832536406403004016001874405126421832192828406757214103959893693778906818192889102969484880542131002207520923240043868976180174744309712181473654824116880956509114149618430782962144282701047361980150073068591917390943714535937067984531318869153919600535970578666087855429782472987145801420718931816944286640160938495206866044237040840887241613234811437753219457252479606332066423518511751832243690850859741822672668542163044124018360179813846192692922563279575445372391784345608417669026583038324076852258352660466586594840285962910071762674623438395287444078097166022332375547828435790291954078701925472836947444865983397446472159208268485204868174788998047442001095763224542475303625085901035622133403987079709829631158747219586868460164581891677992502215478855390172992151588794979638342922817326703777246794428201937470164765086605700094079776516791110215901366154364085195516936006869198566254009719651266871140858232747506463380422736508234877912421686015475848004142005648819822548335379430950627254805826595765583105964015897003200717937552593325910065688389870447091653372089814212096033459528439266825383377214969853299471399830946382487976274117743345259489596308265887736542365200479222302251984213865263578898400636588029782971811367323009831984345231457798275729270684214618858216271219922895068665735226879508728325338822482091574418517418456122176829926508850257091479227176576336946400869369792698153670501741043061339921496381100485618472138214897409164938810311444506648402288519446583466463841368127802482446137483216795602382004835482610959558135116040423907970749041106123575174761971211325112554416951314733300342387131175753023866720876795464913798262188360818831860014333670319627186018771034365018417442545078085187407632744764289690315819344139938641602310665149896021347663904490316928850501339125109539372500800740660739402718905978147760850171615258309215443567395630147763674066318161161927981891981024737461875921332394911800492522617142723911601561904929949508648397001912406250177300491509455750760574315665820666494840621448421505976561716818823890684520157395244643073392428698891836702167224351298351381345305715493104162807696334987102344281367986663958038686402007701494765705160856089076810486700634783560674803936786453078819696252933132318273761403612034343275422503051321561685633229653380374264366170327796260052485493618862715939898575513642663838776917425181442314706353647168581086803043137147498532317250005716426307669437516518848152841321810655566702012919689640224589159483100493794300215068363747198846092117399068391772139719001384249982573273803817578877464926812726676253995095267280510898190716348638917377656017444026367377554766191880572285684461413676779752355284378341122178857570561984057440263918495869908452530682313470890909774673748800478436390419381622723605689270770384475166214297344012161830310509762146254611454559482331269967995264279228992339827610231514913617461716276210808215804334782130167973286063906993107175010915020548100507907089334604748134117838587978969209938596492305697444466759827798378081753471742825018990987350792671853931426072010237975078404987283498611752039632225223313269451724292937169865765718392379516960290037364612176899396686184245861400250523577585425250348116332523893362980797959279960980087121899711615784516546822709847705967495231748542839022808434179732830142053553452444294052919476308194600136515721222159731186655071572323840827243717777583644265048157901699534939602250713825396080011993702239454984560993201219920800092204641655893330937222138796059486660144531478429853762184457063566292911519856770306714479205860584244814002868102891342301991070487688778067119499863984067263781889591942732888041511629300010173807989299235551951171039429299593834175802145410852023814329234681482900431205568085664402279610470512206452167561990645419325907474815817483041848933882217748982096590865052612162438589211539566857400256340882911029523537737664673328297769333194281883703232750024238145566240722861947020424367771253909337662198462938167145681516731014657928879010132589877868821533125633765004618645277207425823098255526095763433590276997359246397742771465125268681934885067507523666072094171667110993909197313883996805468251335269306815869688214419625269810700024586572613962792491175036168009752216505425012643783182169248247193683141362948306688980453060615471795428384208403570860908455443484832274510907320133234466342344933826207411643163848141080146792145014181670618199940163637567066179316565293719089771412681325717260971938536912328008334276856079732300332692326196199585830610330513963457085892411650870728601191883179406683892803451226747144534480139811349026352581580654565022885995725833231734198196713374598211008542959772168902411954798317741757413470290525793195655611624273810319356444871062735052420103959298520408093516152945283688224376816529702857379416511868880070673535351476475769949575985724542461462454156630819257952631167224993602617518556299930367221753302574453805247861384032451794373583817538089542248395859935630210720564562476656282480381464836338035116050329702936361599527538533252811951641499532811374810943385277926555584378081453849404166350988726584775605978296951427907666378094661643551417010133704221763032218560190796275790020033180028323868322157640934355096257821895706180734320154639557636914904891907774012189331170034676000891590120669787314274289965415257360026255450054031723638010339459935352322522117363801539811496638024142228673935562235582331285534582961253327142676333886901265558152507475148303146684318995954883182899715670536511860629155196913982046373295592485498233612169266194420195014810234298172770497627957001179928388535830252997918944611930284259942524679953219307473258290083178082976244653566637909844241129207620686768147693832380787474789457689203937255167423758514921995856701892158837243258025778426880165957176055842732036184619903689768182703304833651917030369185873255405126509391888424118353649122064031506133990826916012895070685544623962043958021342327201650881795107045499655235515885644178100308770658857275726005209494482082758562461961657103068404377097920296753821121333427511393877640007631135161265480158997121462014532909401328207168056869477608344663831161058388073578793922382240468717350525267914530406568958343523038150608152722632292570255409589444852369736569643198304622010440240515443928344240686123680119607379024095072154303350034599863456189578483299549112914569180243281642768189573874793025175868874358937420890409400702744295724387709317676194700400292975171573106483207523061820149321478630383293504107102482068513600893780871573217846342260080448964294395674373889263521002024099317037454839409971260193125811065927803804084375202423905253276820019159985700943880082005310475845364380853814400347682071636406344946086236828439231841779893121681941958893564031127045160486454035566965687978466148387476442916725972674477269633571908739461824915712960049576384874962791975139223934298354968978086522730691675469043441967982922436529931568880457543543871230902998604704219263874988206332861791068955146526802410282497698641771332219940931241900339637649409514034859614746492710542744667243467095887041817707094296265034705256012615068035810079576821930033593119073714320695554559736750728754482738171064089998895940700350444238752267896416127587765520616749819354631865417385522769379544317254631575936417773601108085475264076519146926828206048350651421779402841245706048865805098676613857058446087376416907058717141636483678174939983967118908305900847719615779556155371142152170610212237294832944386133610950291949391102812461686920672620140724445809686299977837696566890666182778223258339692622087623612226902564232874121960849170895338938894386478827526425665783086913025831466920504088712512528351813769752674664027202862938162695299686313747786458582804069744745395777579567139449635422118824179977953991650393015320457471303565341190693705181756737447019594777743238985744667876321271001509838617079653546306157841559831755764423887274919686891662196006395223256602885186768259181884608370732474795998203631364534583985844189330553229098881520768743522094623955070525822534421654357906845832153626318939883923035706611187326020942744163100277187965483357790749085554762214245027152164143315307296392053559633734646532451260539345094306360062028174588971202160843157236782744498456994686119696311355008397378538503945696035524720566929771671422353578986678527445344215791738576225075641686490106405747062283789734975522485907442816068427365794212413555493664492115962795359922852960995540833870817752487902267942158789785912394028243450320699153993172085461853106511065260773280323728398454767638682763444661879086463903915110804352639887579821899318206871921578107305506336387909333314489358569430823831694811119785357505686873950715556224633668589532072387082168999270036694778557559136396998681128490654104620799090533388570332494748324718797443632833716399143946577810367340803799103573422054101031021600357453196926751817085301316082328024468506534213728386845689080602165539299240355635543812815355646676050661524266370231433267304500832085634989824459715041091730045848151440957322291793277404947751931321938227433024334544707940313291913347951939784974979617794020046300097598117387505298759515548671110873048217504126146771422797033967585346779203717581504071584037951969684866334475454689156380154392573671227567992558713935727413919928296016722367542306660050247731359008387383524175604490768640680500174942189193565162638592680990024262902329023024484295891931833904444066939341029710629720450938675854814551145487721886067967716719480310435792502843878731806109216464682279615236228060728665390340709845265353330109788815496879781309372942313750085392700470911171340252545731883218768710760770788358029532399947812572515652573472379627093681095628145840839367341223648460860734357063221290140400190101216631102499988126896142569010915491215755666221289829068214724091543747425247186498789194491349938122025427355227097240889674867535716713578676192330547448647848813946411525920133267503217229463856051708268639477051153959522095422005088540550397488602981822625726966952791461150942038316025916825183806987143001585245999617571386066450026794349682620604776852097432299048761176085261909118196550424981453810463009607296446662100579020281986410972505763400926023117690655468178690622926648866275206726810562447809042067042961027137405668876699611224228486859789782660222995667561680062092990361009129599896627988284280504456377608465966282600272466301097582937354694879204219588026571643330129785881398836723114425147119298235272851518451071682396464537870280377794968329820772188155484823458724840868227947834469679867124530997390400153797756134172365818295025933676469893081722817512204604274580447327144574722733683395752470796066272238484985256107692877891938040358139716046249068295980945395174416766869272673419655003580494138197353886116370788426863170336998862599439533410856645962376313007384507112203880147571030015810487209716427221781793633025776928056077867220602421515204776694915895953494412111601477134511577895423902597917272420142127958405499088259314075903125086782486594766001376995547452503176187564823336042340335209401170110907833297720439008854566557091738559156550198356041561782064762244870362549269712354616045143438580551189997845825832924083433394019126976299811709410152277756363665583375381546550222361290105457180288297500537087904770863014838534407590459043696887241766288372140991903194078343190443271180313785715359872542348153882779335199582955927319833969762434584317085848706046293602489515353619740183804150489783351776240985423837495295537908200086205671615597138787040820825683992058774569189495118366601963302103876696149223747625630666309187436391723557274292677899345703623730198165649393835180445874666648978003698832906545328218827718950833893187988161955222794985376145928927883512967235770887091431823278597016397672513170495574581792281356099910749558776925307516277091890292465717496215935734853980561076607267424497579935336969010107568995301949919283472153393941948433512758913583947959067267932612873433904901704734610829839085061413353179740664797388086693317294742373000061030929436804447544105607183848751142999626764927166565389198526634604159873451653842236605337186585730813372650051121215713936500920615676830711919791334617677245450394796176381282860199074836077478340549135467976893216059183388027477277221595553221433206315666726368945827516268044193305094885237498305158576612171218343942982065793716590542976664405197803956022453662124278029432118151014973099451109368388710364083417754298540563920740122708174511679557199647835933786528503666137496406695572658994389258566472119514030145493892026914892267056588023352168450886780079781575728838841878882528620440930510923910070989699266088749420357731940669868099948777988697929648699939372809886102949584659859136900125613222210141311431795885104935590952338162021499647368184054030976896162110275509750483122053225937589181593629382852978091468890894752046968703432676000574434048786899810650938013883865056573143375288557293440681199682179105933052663454194444789332423170331954875133912237120656240785606056384307663487681025698738943646358848848247049248904031072167069937615276549443919783331866536102275412705749548026534817525676796037360856252807051545556853582632404987916419099952042152174576502163201320108431070984458828752945635620687791139000501896940793434108907272718117437455292427229930053705792326420049605815334258350488637755278903882938219537695600684440046138250969482478662023478419030055145153298367348495326155495444299469297952423081763401307589950771276902292190630183090859430760692855016964893223643197444257921853221114708483806375017691343143082878178243371855055323041903636051074125464567862539175995974890360164803126860293001869466659019306478053770056234429598352701795177069566872550744243366519947885488442915864690341416299101776192143601294639009948982628830122257378245866070594365912920220082637190144705801631705277509272558670064348636850481754828408599955144436104892083127999425148191396687688473409617003622829583058352574513429922805753076310308912094459004606450501852875222163790986178524467984745375285153792570907108291652039049180760905076590926304926482395044454423072893566458306272280632878699132780851633104773843953866061670482728921957537864592683183271245264761237382414786210196364477713505461848505068641773481763357750192457434030466639161768295684014943745501541846189790329986042276361826068235427629314731468287645741234185676128518228495734346656273193549096549547864222844388037649453560621452165594641415960568906466128034064008778461289682395517640255367304283375803454396406490236070255562322500154516282471622675241831988748963239260191284848282359485536731577801152095802484893632663105420846825075680902329197611635930377598215224157971169161172883069026812982291016437805522526305851295314041334065539815620763934351344679112655771587299207931175981664041987131719078837417947339888796306428335799154499957647579540198203139411185159496378240364880810698279001252563661609783912710374524311186510269749477176867434322595281761624285005152477226372471895155457712193522361534631440549909395477959756197771416731574569730477924455473868458182484330670102634358133612135574863523369666733727429467548686845932248652442150996249334346234986678410754945825370405723086277672731554118332479608081222922265322432372545417407562564814802820492618287936554331577644221963011231526884537975971313235555734090849945467329767725500744898785320948641781282312285738694310665802398057627216360573609124587458344418573060108736250861906409030762180684492885002514065554000641613053975067914691191122820568538177243504917141896702803667278891321081118522773104769082352740090169673043120984144519123604596534927553833214152859669957593615759503639325779005016209932172450800454634860792323062733377224553741999125613234606597600965245841614944977460496496324390734793483320880456662714496943281148985224564441047622845939931704908407472130664329515986158417007541474170672842670252417918825059288018286823248640420715763894453345536541651006837608291221325051833887878072699085458709085175441630633974926642237843137760648097459881756882083449120694846238910759855467660056093769839658091939173666835909834351322289993665728121015572703645460895064653086072323411810072148112444715139496101160562043655620477764403282144338716290788759640106129365813908456699142360065313214071637693366750598334982080908893172701615794242501844437310953527403164530489262559078081331466432308393670447858679817172185839521740491202326135630626548166640175152200733353261525516550457370496279115654522470629886164142981335510217177578649504379649741394453068465649381802847959701446680625852847212474828231230072170816185901505388832692835291889169625211256957186870114927848884615123169692085608131932250856778660420398158967211489890243119176521917739450845583994635050987319522861025465352982590380995665363172266173298387258829318901488680917418774102926827514084645044169595754027862652343834392009375468783511278988117920321209637609814904579959311379805057565891148766102138035435679436718472309427783860132232487559359612987126327445784871531388195411976734447793854169300242400848014079467289018587889661786971892161825119202780748535846678892389869231372023971555745484899746553472247023312476874820306613580350247187093567544470874925753078696761377702215241422463380665031993209604300239054855737272264675770608655940815786776822416010845761087749785813687184288492642184885547285340687357522857489050975331037765897766652105871564762465055716674210615175966825865078242975125411901518606650826692655801327126194446091047826375151412496114323312084773760959934483200840669919794166815934297012378918539119014207808169329272936637190088250512703950194439681283466354689420094512516796459330949801892096598158607921303407254525641243390301982905436284374786572117357798925895818679666043396592696308702101919809938396561293643224672277396827479239148183239078329058236762593513025248272754313363075775574607936428316552312654255423542444087120058019685902243877898794868801819064757780454981023162564527469626992467180383016174164241379883271615471051964254524008327300242972414169015389811608542286445993974321032903268332315048606728475853926729071535388056924088642940842148727198628225540831957210321186854780913123540927605686924990011693154852112980428061464740348551881653374090297761453081123010617060348487542721898852855292551102709739613998747837133386002217692095029427540474485320213741327667185506413472927260911094472133768882015422255524122228187404639013354445339183908641203424131078750870247896246753074990322595620637809669828380163194268596955876284452792683658713918864595385796688309882075922175787571555002486232831680031190916885222122569781148485895587108375969699655651172835694735056792051722423261618229142469360461963438253892323590064458944979927294373649015546055180718869454594221194536460710992028424552791634479945062368230121884418634093717561194519123532663070552363666288438846085845528591205262790233229659811411453109508581290123846313325739623178995194309721695904132078123231048463636979275936974787743787295434542200853531629120706430589685214369987276407557147088386338147966865141889887672882839341258857275411828968502064521782065795287761234991013753134053627289699739078734316600806943218003304844098380957729504025490551148569561056817970082339833826070104013132750721971584538846793449236950062065478590187717732510038228750152606199033113069164296987653100395944518095913158034041788847449258109595254999234708692834270318512492752860214329150024618728426071461963091880734231839407872365421736248838643054510123519311881401527497115324981284096728937741971300882173997763624131551092341614386867730757425223902261227142662892596069088226283667777759660672504911173560170109098260501287285376197261578549749283916064420658988869890859648553918765665870432736732289641510538481441586392415220269350487421542707658480329871370718027528845427338521127382299956565202943438869118983026117540577497271063116564926988031574760074271105352308961872737789428668658175514361256581750979976272547155841227948408866554128294619750267078183748576298183448763328819229733454625755874802308090766659710849002943872864331696839923093208360968298584424076343794019536705637408503229263681198203530805104340058624287116796683548332603953980852655953007432018453925614656601303392284930931611496139263216698751314312953933866616862015614350592219097903142032205615959078539071452376584433590941812096614141875811104099526983942089633580379456935162898753653726703153315708378873360269091837215805330245391232664830131924219005598766260244890046700858574984177309100633240550457806193148367753651849664810187297039317199431933360480706439698583507721231741533761923878423550434946203181381454221834683596949924675864312552521515455550866446026233827313408738074492909526316573410825373419566681019125372693621653200699395377247088573502587210677648030243057190801761316483421963438685809566932305853526107864628844060913496933218266848435122648533000334995097627757211588399373789877623626417748971453512634221875182818598753810761091058076054328465213291465877999428630664211894573044146728322989605735979068093300819055258449102368790247572349563595634609060125357616090571027419871011930863987492828935073446905833223386065245582642568588876405362041097559897185528937805038819520662204261805561582127580874693933753930199183001897402948044522590607389027921583841513721132126656295802008112203161705711346943574758236737590769314284770759703641893749608386415732732248116418120285173341718881671536555899742116939141308275269226582333969726231479685835496865544579449650331536625062567577639702982622763095945419954172048954802110798044690301497157784645271935293466434040431892191483845295630536838774893544446237893202574698024032222474790639543181142296967538229480843648492355888922517559454710739635865096280141568978729449314123163686519409060502811946914536914214598672365231644776426601707052827068955626645825910261700840860463385274959900405838017043448002263059727159354259871650520090366174591551381819769541212035621857054656858355582928030935472666593588004563517908173671185454020744847764479220914051585491054008686292817929868947600077437456166718456000025322042323541216603930824132517050481663642508584536554834217178511790781771072106479860463055049606204657839952185646657205054982240146538946876344986833237068780571529406610868736513315708538230370463351046155418757976015488795096425621981792858388856489056946778991962846644947915145325695629524138171104588213619367810679976189183149337184727628264485026251165687985372746863756978835570406091400192291630176127253093967095936033344043570388150409166318061630584737833665274818220297099888859202292367993053131138514248565988689514427067393232363388554803404543734505255957368565580064804862281194131630711161331739708598847394245933004515634590948297066215577865082556555563482453010460114088799950708654301655835508122273314236509573772593639613322225043078647090832423859504288954409658285520607276121911588021211726117383945315138115758544563753699136343763329394714506392160998019323060672341904705231377761312665630285694236538730720889181268691207704825553715693930662372634870646552202262743712009799202201556821640839443770998609315184750265294677127439271741781636012308435678889239042914507623249521148682445950634529935166762448280765997069594158914493751846383455867928993378140522130920002726281584672637958938869533476725371884199605360041113463947556591264926855349493037128784568067922954610493841125536663645157165584334626983154217823702597469350334455240728922256072979942852605176065536182159959548973940484419977568175147394377801977939107460938167554676005995128386287346468788273097075066460437627260036831972415204017794564702959311851723289909648614711385336095290319427722855504587332155245489643737011255476093108699271648480239328012080122944349404687699900473397117783175921040987831195528220162930385566560818666639994979964687661866556967965311878273216962945605412684475656003539163346438123609417357433237374437647444709256000099130690152560165266142106692491522696733050680160630570550166609088982415558107716558583075246020174500554939763276949965028683403582810045304453496509767002090114563473884213828022283253732808044575128941954288543851821627344837916410906193431761560031924562259032287222483910983935738304311088080384527466302299517946773437376752300877039029060519290247810437407549242283763062276741898291672705487247909280538589243886595084835467807582622412165300094877408378475703352155932047120808021994011999431167148541653688154478880154143792109249876649465879147864298611323000921800275905420309020087545834239712531108723182760671280458539696291140176129857901508260672070785152785561930823015406848493958257160148787638345910083478206348088257436373744504459826366162155917397380773533401590438941578970425901095906497661664650473573992865564531127215532775369369949010963542173949564071589950862890774500327904513405790855411274790148455715717394725868643601977958325907071117296566424673950038552815892879978838324903037209276247851462266656065313201462444450571788931250008726481272080283583957032674017437132274040963189061243305153369972785537001507572219145442366033115121047424677194865684880462856169217043598292664089892556041987424728499332797209392390602065203151459912884212924111812115685202036298074780270155074310135717950172916466168687902048026228691157984858103136420385031103976139050597868944082148403799756889267550956057366670364131980886816272002898024973890288806805004692209063001643962432609884023949557522101247791456512793268334727778877285416540608916428678506810069227068788823677444258497201945717265285679560679871922122025542978364127347076582870520653218959418264958579434187465870893473004591480533220382984370562276921484363536125874655272392562243816749963354100801357498225341803828020138410291912759545710940927420647532974717331879910102674844351587472551701040837649495385631006677984256323755617010575121556192947019994471782408942431489400784914748324662810803825761748106765255644599861893350576448066168606836643033396792352295931970601794987802159236489092605571516847925575007144453640110612024491348069681797375258934729235268392640032735809636804905762055226129380262071814029653266106710506736893190492965604211113865227522740975942192563984286379549973528622730285366710557012061457890168680017119054563864752552978118544398960341689734330752089570029655694561914136045828312817536576260348090602833263058205049575762301424464746847619155551052670655509881064710727351299129419807933252650916538897507340817142934107602389953331364213490006000201562507576481469225609287940426770716919329405097554700439901980713737513261327351599003715349798519009367647603882909207342221582261611374276950118177346454115695554386213524062604554890665481339133354267583320519272450300901596807638739485098224139444516094476767899487238937451738426950666292596557174956772695116521929292508845745234034935341213341276339431223723718553075215982927465208914573181793640031478161309928400698078653135280119339282718650235594376859527332297301871495430641424356166920438492550919206211175803378885774866697465661240195809129126180500470515497173109200261135049889757618186171036804749139990295428224463407016257431962477112617848181971743905792269055213114984070265312921761217569597184037352075732990268995724661659106174554511082337086394307684120158838755015323415504969797821144550024894436149447738970365427552430412170504338419512550344555158541918771679511004596716780165975686674903513647079745618659872380705278506335557798105918573892674478114875017885444455693668624438505064185597047031790913235004299009673461211526865505209315727670180519131602222257104140685915091635515016719800585442673318109067294623638182738520734508034862414681331306129405592091500751257235943264211676405068248943180467227935969562340500675866549009992018507683043928572090962410742893744252886792573904716002113973221075061014116184722912131490199320141346297657285848456595996679202830643294214991177072358113328579358622749009883890653218883826805738519401501004058356732728652203416866818787770931540017759468958398714870265457152354845224626305052307170453332160464914634056028084543436430847374713545567678961053644652628021310397381374977569525190888255326562679887930444983392966070026158373643153836758262518374126930450173582971353317774629040081165843807419510186437090263241915245487604450265295580890181765539533822409120975959994821184509297204859157341718294858656922799806734881971914652139086704242759322276559436559524968663889056149867930668192439969866101842810623200102428544641993295737596133514842171146878702391733951591330364727876746088510337736112134780160983111488318451498725127410529463154670119656010768391951380123316207383921724208788811582888749134556194541875615583674463430278875729237597958320712965726891434704388640754530094712990632399795836506114252733907459688195118557430864199855117237285417708175255325245204573601462595697066832431061314001604884046409958005827033074492178831726945927123693304927786722485651686895800973332444183805446712782731635748135425744096087294433621811256308143160301288490331981781001633828554743407986290633736500136206657053095201410410789602094228395856283937819501807340646368412543525027622070269999803162635182539595589080164269741985714643581919338505983324256011457524300708563004639726730460567243223523511762561101052687248325979561349944565197657813368134688812329975894765171370064700919004332441648309330682884790814505143271842224205235976005003582393884225391709911300885685498003878275430775096273302631523734352819553272640963026287061003790375004098506427378179417108978510978991002541643891066652189583418068718452807880769147838206633180105624146745142288996326373799264778953067759689611005522658064840606591259865842822513694221943536847759952570402537439443168747153639247182458308164464047171420282914382675219683947755276655535039010394186659758641413983645964923246712138268972003039345077600657809469225861140726146542553617961873496051015483220686538232531073875262851168165016563413715165813220910021525479391742812519192364660628953322135902315418419034155714564719587296820243623364622689226043615637937034620897190051278207100133321884839340541967759355905632226138210301798864233471698701865576772882947450844582531595889408667562205928543843036891991446666430694295808697408910242728847028421684556166077091923260256644582988584226020459559505830861272546129042992474446556220703494812702639636075927222517261181443892524279540071473741679812338004579885387653671411955412284588868035746243842292939128777521941874223974047787424650128379466012898004389419058719484900122983147388131276030161584041895517687230688677179829413883507639918808726990577280004628597949422960241142057565343905711728266330509326453256388230666508968364322023565326390381696477682257811690340554827677353153522658909774856900612636549342648363417950515308708312782969992477088715056508055550187267810559801704270778229981960290677402666680121029463341964679266623945420763932728736749582411446471130661110648442247958725008985361820875520156462790831441484880578819391558705200146183779935345367692910624929870270410709596254704196586740882115621113061882011960770697417663055740386896234445629137037869853402372170097157269966550275253684967854220202506352951581530690009847028494563262428484181461513413799679499514429252955994450241009612984433400141967611908341570755526084810309857516809346817257126315298358349177396226063170437721391488428302071930062733782796804576225182516008462780276423324731361317924044465626480716100456145657722813130520692807863289857023118019114424472627170455064646020094982236389313968372112068980776673875506561259124782985107644087416492355600246950866769344529067267397842853967959413993546119000722983537159285035943357691117294243982667167761639513574594676117118741647677129435910108236199884709470730009109912917366385432029736778188044031032099574794769150581578234717199540990620842721120285796282744977519342154327794774592966197519429735760649079493494376706622550580602700332675191190598748911887666139473051863419521561972711944095610622718706030698615974010417551044814034486741368633471517679905288754163441239999396926339701079893499020184552339732081319077117882673479190243008636219975505675418657718569257418105628437647198473870837618723953281713632430179845937445814106292779961049018086211629902916818961808378824039007804961904992328058898388829908947307760588206623583017165190263077605588210562261797448165111360727697697660517176012911121574593488469268032714954612174860322066621963226317527724512744520979823614996014323702295551402233598896043033160396282687512617585311097324286959769185140741457585912220063246675182857500242168797266749095285992776756935040148069136787814812152681379986183420360532671606060043871978076699938580320809079851970107371206021868607529594163978364451713638777740485985705005779325595468447724434704585175680342100280459193475319419054777462717698750335507892517955583426252579346316929096016585619875241523643571514310503952485016607272541222237252472433997081361935392232172181739421852594492147413276526671445311535712106025158610943336708355529044348957443753239059277391515405810806351963012025607368334786660452543942695413445595898637519558875421394761761076274678273168594832378516795115824788654349108142582397555261697866456942654543568212890068661208407757422625204628941282183366489792692829047021984052889356194742057350375765419621451306270529861085340395615917363839129272768512173415805392716159859236847336306375590357894650202752320462831190862271797023337961094518247073618616387872547818999505565430687661423410223846727954005884231392173985552426092623065980515943694891324496403258525492638030512760465587012167774760404911715641247387346622325620270802699889607103514024002825014577450406765828464035414106145377037484298125210407410852492316456385209603376556935508601818289334263206569346253528170157312623373768925570898466957801851244037343310265436979970525616789265610134440354523079900330982702879484054745854468412092164769744532895341972960085048893948963113575685227840240456632954969413321990397551022849221834555199202345953220318997784948621213155955298186535023060468367059545087308897798213889822721704016946378827491146248334608135438730122878216022617659012454193485632016250512377734630974363584992482104117224819138479107639084436039677818332101735130233501341248050471865389556157101062314077369318248172385159655303445368525831540665604502848339158201419088642670548930227631209542006832293825146856449651943595573154968705542336852906253258077577555408474516956335917570473117062855304013746718807428320091386026890448391455410088276136131770174898099839956546989467438115769162434035245255501584145701509572996059682192130439658462909944773425527565054731547003979480867132419781525014171237547303856403114409381473792617230202054868390721195733673070944286343223167033984573377076822292532876216809253787857590390255167602941224719297651684301761009756720538217369039926651741384523731670451104618530965083611025982293164419658143933520467624510524723461459943960635505477530419361338243186352354518926972889984280851158294338043682295512891501177104613883313383086490594752459341755196144013994650748548911348176049545726599015577408184109013271811669924569096297768964676143167369551968586968370161012637374181638960602553737880197821646258790591643614703880425326220882358083732312736741901853929047412501042023801048918904071676311999314603722688923489481827767047867355373863839997107649282983278277764627246601213930199643595783630405029131773845310210099313811728640497923701054484133425841012778868563677275537951330773572221793173160149881506845433985574296944378467129013083453647277841507733909014046430948329724584442948913242070917865200551953836900059777185518952286110093708904745668000332223049777000220133273931730067941994430374044908818173967090687785444894125450551186137360387304422220111951888365024847331085664949050353658780369356250008615306272830188602364005493028726639641121163586278601956861276903334293293468983475387828062370816071697741374249674539616564718410854960670946730757008962755782142851325925610184109617419434533696699078510601603623112569087911115943821442572428476389870792115505264980173440182786947359584605676108543782538758721623248947295356588359074718629481650302207978688951181210215094035721681321821902022771988632927716837974698138729429179996659148174256566789899268380738189276369666890528277467978772379603046867196134154945467406562362390393342573306035173952926053190970834308267486962214154115749240590733552061770124442162242846997922203759502738221296238139453572912832500102233222922843977917234147193477144780056482918197570921550333700314296567554167420793535706601063855752541535074262395161710890751607059758687008614982755752423589008393341946861374350033503624346227973932773815715792453517775373074847954776461309337135309821312943651844726280932907129693803965169294233896449437236033928828814741568305899541679698423564508310591576108635452323000859866732654542110537309082846329637067953001125676545705246798889491188449102332489872855138848703242817192281965861417061777152576625887552874580323093846321085695246006245774751286531378824832228650366993808606610098988066007840587364278466639321838757261461396749416047451850960798578967705558111986402460080642657969202202188066048464216274617648475090919141415493739510180641234348886685651425099201205223217064345892577343680392625158388577411783897895429013580738162387115905436887219285684410224108858182470775324067332468464108100196790798101365090109872613098639465662435794494814219329852720286734501171640191876820778619814381015548165987834831094601056940459572705601685156548233694055366328757999956905849028859548132136848602882095317320315688922121479601615008847588961100765395055491794443978166148422452436094663803160088894910858006364483439288532766134062876232664314686151565139314088664934129839057024448661993420504144679751242713856814546756566219240354232449581774469243002945321273463971449486935215846900563458083230776563919010876198263302918597553338501138523221347409699627440603761905766962511006479209539818956443591624487113831805557322788957170098231494159732845961761256462204586393568106605227213051423066398811014701276510370865422427024067866918519944248967714563318382493058227520591128572492382679749293464900151824826853202469181946271719631860746044072275981474750339174178321576773864496014224602731210200137646214375843756372934941113932269502397390860083819434245409226386258381600508510931490568126294382693822787655506345397336383256777622977228507990058946490761684989784312710607985304750212834536386062139855828276197456353634314260062132198245925976203637814966473516500498010538774971080704897080975726564609096316079347847854710692704441032981476202127181244513820662464471278513489612612591295913361020740057838321922966565595212622969464014324615257933467852893997590142666890667346254717070882571768870666786718694641784983539596379366760248380191698829565871504500731674271439961001715599008499535419503899976593604645120542649380994936644779738592013793848302667386951476293079378556000941643262549475250780735687880964263515458491921521506588552792852286952511461994407793882364144602103609018370008803695282172075197479477114726707496295938422430112959445928786737751087752586756022160756166859652288734293101887406170276105353730258007783701447828682979719069995332737809821444691922051723674540569604480113679308695369110268129564893422296238354885030483967117706420820257505351467793210878739156065902303261065964835337235815238185279020661054262712341790898944268768925420598564561209482958575451682105030531750707508966260254105870113818492203282738189720541488595184239877280765522738035454241152348754115800341216565334781986608117398494399396180976123661426792654263409615812060517540671599680844644431478743198212136419076287789070697059142074558698561891828442373724674222726440034874652906645465016412761514964018025529239035823611316658656606163044079952017576468627161815762117394078902127508599204783633951440222275609324444457491292564410368275683547205524689438311039813176275652583890392949120712332035606645729643996327282030202220408737258760050009710812256868074202159750107819341128450204531895736306347407810581043712377127429885202526814545647166702956404796829788562924886759852123588205008689560394239887362064396061796034271908291404202700729232314611001953837079881271935836693437545812420266966869000801733557379026481748754599310183598612981949372546097219532637998275927875435746349681852180327842034723109077752819016399782104721041833669692634743661581146254151557282068922072401302145448700062458387481567538210325642537754696510967816329947175935818284435704576468132611544908950425249623783146607055840812429452542850786493261222591321919057253889939897291459800448915325534947923231008400828370367944022051772966797223482191006103387235499094938463629910032545194910722761950898108221064587472077788559987221006659559329505464652370642539204974942811220072641896366548495734144311254499506142187846114377362453282433352239643844712308915352709892659957372589344815071586742257598818417078467919492157776555679864746121867820262048054356910126791554694477831008077404964843066128679417997124836565730712509529514108411023615426484813489814326167379778077810362838261373368717671153463802952248121633812066554539351146778453822542497677637368666439061101988965967422177539912158785458372211532459698357173501316417245131217364961729918203405689793755218244022541134041171289078123726922308079876821423301928694401311707734379029545919743431916676946644717377153556153235834079580658327504816280127517485944513697293485441811432461632191243929382911737724790541341633644787550123618688236547133407253213812019023675265349149697849813962203436714851199742892814313269239422349374310347156310125746999238812291157039527221349457268781825494615731480869569841806750973011818914481654265335470188502726122512062346149145856059926022161916036177075051787426886187168156805331279936693094362543814796163076381063890687775592652857228555690970953159632164251311020059780061657959789447381575581978780755412704736487097725046884458247725375571705630592120208859059398530125836735145419345055387212013834835699448013827168184549972724607148304715149724075967357566777463812501475283159894241999596865731816912006518660369291370715630333656159476479905004154263744554825148708476447409840658144735331640655627033560940783164996927453626491205509491247569469830061132807977621389064890992449321764872915685206747125041971748849552261895321601346728317724652712272196338976368752230318658126523473486844822374772187708925458760846019831574234984201097035548030026593564121839361145005257897583533773012303927290069619641722338605341747896441269655438456457493935777509914093773459509001813577974767138263236572845718562390643224230577646402401411430122673595039663746371572604766630523568561169368554939680969549975145146732750338957133183295743301749761381646843446143111812855624956189551827910617721352370006846764465821448393992880861131849636313840555542806562305820661797608324809883303642713618921569514001934624386874159105055511293076784855828404837977297350548438679988086780046928903370832134972538704215597765082348963951429024616293565426846145865249361268231613592592509379121975388659031298444088886036954705425165248149377542570903571148843892377559673766726173099587062587551290963640552486364902445379815605433500866531785545783089318196305320061731342377545994937867795845323400592486190114443883015383220477743926621048416458631501525886077394402998908811145798108155087543582178692208182641509061670162361477066465868696927112783440375573449906111421113719965963997289413073068461532560878024256289000951102091814283640220082983125955851558579250364366594286758011078481481741694544376763067600437546746528511406438333415575689156171117831728376307655642671757547898608911837012913610334933682388296390931335434580808619704794871698995173664184540334037742506653432282383447336420101047360610836189451973077533258018538506288190558194436433336828994571437304250088319433104124295309235354400528591631701169489934431908714568553794901026817031027289716970532974638739923657826886676312007746668339472293505060132577447686284444437076039446229580694012296727279668475957039118780148359593522229815852153579753671656305509651546763873058604391430373297485036913000669607070869422041900887850451392313976039224006421399803067731201000489325208926084693747738830443875121026654815589356893913826859566963156952684931225032204680964764274109868345584632225024261391234487037099570654812262164308657381297064479566488295470571906468824050557149439408249631900025053004596878315133725772905813961071289677350407710104894135710472959194496215136661107522666312837678119120311462532867378411146288944079255153856920962608438306850259552585754123687719939650779124632788936612686194600145524743828787538403398193068663309878376749063292424886720559092703072877417261109341325358860159898546658629132960796407832814543600665837902570681004417392426309317520965498446724860656131964344437949740528730617218032313684156446235065798167450874345782565464542842505022497121285700126171258449606730525520116884198500376641950362986232030370878568792338317421885286232314235815861425942384139220780265051717905683881547093370293393587182224081587142573159317719512327808415759363874163243758752992801103626807912710071855505734697803242738726656068588394515453791839189480377803440992337237500997756508027482113508205203434513645219634191196906520324050891257891091299425488044260228064391846564355890761053206104940743685035954390533523447659051774617070615483912527109124670368275051589310366092805044549424695900554772566815951794400437153939268439132502002377213719629686188944135809322677021655770744397531671634803743122240161764015136278087790027106371386075418886383734087045881533694367585163496181560969810192651103285163310423215335796702631188547816904270507075127073637242336529085603865665256766631348157266621230496103481284035500890591319730571874144874593663903870541502292507075478613585621051542281483719207955083305920394895918286110142762661936781470934061618687566419272661717778308647654707151107106397771532654417431966824690268614949784005023043369093125486875352946439815003909253093663776737613567059635761698740642693545357330388004599991731409141811286040079970514500388574464440210907717422710988951241101780161003422582941255323147394511739281998677597665926091744113382062902176078144360330858362600820440720998389281117121090612449562718115046176732321112052511993022880355777043817826554414377624620663383168067390785269739226601412058538457593527906095194118666357540282720061283858634850266195784126191078559536288612443194288333232038096187603879205224361427153924055168156565092879545003454719281041398538876084065599626313157905118295717475954821777328079912664932732806433877317722019622776518958444523404973849034595072980076434203246787466946244009919255362771529512542378716788810112411758240560450158888400082711826267683316803851698232528057967629090448295808136649330820528112115933114357864203015226607350334236060425855272062229761566939150645119545182983448985704067478032578127837722068662295836287274941537306622277609754050764660933680269598826187443352446826166540946150368766106690439241855164801209936182662572046355009886727348649209989663879835501214294413453028388617358304306065441478863335352288967256874052650648948001472528090925860434475774525340159453132437996844823652933534945613940363182352111970000506520077004417506338852170838052247486581414901406758625653608386542657235065084289541494492061057398400573970884320002610486520314656012278928113043743456406646485018099110011393227068047170676608179016446075038011576579979612247285217616433545569244076944577507690534347117301507348114972029695694359550483275994750769026400647474931122704723683293174539533641556531246013302629637287821888808218810367976527229421951157077431880642507707583827759603376934265951471758624957052654163067934896022786328297699811791782276995386280751663444245475101709876422896815548619819568457198190739433468350659082135382729028765454772670602230169849007264091837427927760873997175287549757877438488844618153967858577711993492293278358218218218226645418981484949475313769467913270927834048428057382322492556528499505535266329048955646326653175045587793985220950784229154995882600812830724776864526918653739276274353657303602968206760718101666251777382085298057919358459352556531602889500864986357399013924875048129462292215144440174354452906519679111554329722163380721478796315852813835710749861896621917145490643205685049796199354252602649649277066730868357309426540315931961063506439680077102591003831610548215154777536426339552062004785281511294903378625406073462444508054190421108853929513300523394504889067545989710662382134918602393041735140444456513780680701360855762893046548124596948714202659765910069163612728207322039174398094298884545232422989550558575022649625566517583859853608223541963755881335622624709371846409071519354620636266195616490149486543308622634752400938374587612694096370194211458118196829450772888183077153124189890274622987906545856120309239122694936969540409839424922377165538140945921121561983551565819799343811485444945883511380253020044686278507791199999551945764810607578410477759613804918389270255203734231994643134128000361601642577230503640462001868316181816993897332262709483491481425465477719651172322711586834756056669722744321790727014830496415435293124657390995392003623347373543052551990146443573930320311584026183732976015119460366611071492469644038339598744922890853789590933722305471152401272291731797750641407361535271178134896541022635183758178143159817504695039138991549750845366102632153057786227082081866343040485748845359337725473231099241881141832470940832179707709552329810024764809251108189466886965106313888460326477151674509676235280210699788170210921442864496297240775118894157613675952534323392504931373376526782075015112449547165107864591906985497570114849702803447074616312732629504212436963594799676187631259383833556437526337477906881045590159435149527579326474308230045866891768017418053172091095510113141236941140827956622066352519791059972414363068475803599086496382390317942232512666124778371393268854649520858980072863520667450327960849869742142722355591416367037621738436551262656046865422280336262362789989145402266048048482049159884286077052039489764081287624040543688508535717657918099109506238500528378799834095890503863575540221836435506437185880924360615112439689082881857507700473756820830398568331985487954486373607067976391549961529217257983919487730857426672085507901088741415504194327997066964161246489012007561864166917439689269933092583224450457489842779634927068266035701241769620008194693714365855129710301145465584325712687796208463730592716191633949745139686063725127056340817062875277078453183617922553959694221172480966757331486554504620978477028295385980262144285635186268405995067528568749068275183322392351311625542578672537829934611607332545862681209075442757174378980166534882889365476491899104196974413547340347381440239982112808741418253385435095432747491188881102446832272382723910769520897170752541804170380798151545266345422165429219823169839343717155899673403236071468011960701648492514192954472449096441821402266505278277860137149944871825000764528880422240271000607699461020987073199982237500193197426488463519632625502054967464922285850156617844025498746257587452193633973883164883268108868360941599832948707904069279347957418904994596662526264701256359295788473162876347936821039682520633713175456804256352983182635341394208932936839149209145390676337192158130829894652648988174408108991760271263893989093593006439643008942883305434151202252562878506531298374705031096892232640314868987577497994858703545280274421983950319090756683876334613347457311092834578726643704343858825687380790109389337128192651612726650424823358288443111885108026748246798386674845590774613789884993768451029047237727543909700485119791983968906700923956228766475185934717931366902611530759779937896103850023127366855365433941045651811271447728354203805385891671455523386080605702641664582934696660849563415889927173603288760665239785531274780274511032870116029249810280563280036701456313101308133066040527833369321642900129809794166499704848413864909980772995417198168008163227124434434729438241749649736680601243279477490439094225443611903955178325393473123500928841632556672318515652087950807756998705054872536662204042843072670271310326385873438666980311995544897037665528689862183525493792748306055867330174897498075998717004706762423985188265933036028977678454477258771113628926203791308003270431446759357396860400459806770925733625186616109117331554389119484097661812227938996479459689966695671528073826613679649770350516755615209432366373219117878723242498476902398191882695143843947572961484653238062116139767733709082448460694225604635015002472465692934924283767566850125029680613621662849170211409817378657361421979926179756281384819521616447548244510648817940172376594045174182992591164746171795684681406425272637270296024253529780051901770215826852601191751596134724221678995242852553267260215212160470569968224426018908239287073867895087424688893272675727715019642318680692105576577696054271051666012831310318499032547893577105221191397266531954544747185814469410130126925433271938450359073774875073511178030129284628673870553597482241228053861256778940599727365382067705488543534201556752670622521018322976854094461155006552979649868814565459039249683764313842830708055617320305988581505323345484351299262198444767302896800997381006517599580675294783952731296635891124008335874651863670053650531329137832892762111204743223374176831968853077466471468615430032684401974765688173636367168800416463264597263720106103785454082926982312988109421005355407756867360395648463981716371594149523257396004537895625986213466286378088186018841296405713627910505699390841029607324488620465142278469282669478621888261566988637968485899941328706707237085514209774529169657556407197415106459948736906714047922907959782528460481755225260373141955087061048912890160623409089191733571713901644831551844047039678640118524229008479714815219048897586892619036679656058348961918669067415671686291446096771273189037648413294746302856790811286782027702222061561158589319798463244806728274844014287265421036403165692618657417660460680087577462039544267106950938780370775212174552419744637610629732479937111611710473503354351610332836168310338585840791337156095311713078877836641401144540083014589152801223823379199452113480116722702037408422490310178580791480863185974556910894910147669399015616286917061777619975225632094667210770469568134832169728662073430382699985106949109820103091448245333778659826034948378772076925785974029035279717978503308294759436000719784181185242011356760404428450904757209955895539876197970894143574983411011466112672079785737102781218576036153776004269811991242098518903878344382141333483550573905205426462293276755335744636497755060403280210846025794831028379829041869297058315661257375122480453546274590525887262116610554559034724570760686962283880815543569883297019138798572443442154229566859982072466124630738003027725371411947048446731434895401055764080946643071197072876366031024743500612775518071251366108485609608929924378796545245743028395015062299804519776887191474178429069082193628990939999693835743043795501010487481996412741793753123807333468025290267180640424013913078899461485802603695429540391725800908368879613481189785742527003686612604381534622129646778969512507848508323960954775838905450577551608473871797123451712643300792942048553542806284446961282519285082545685618400097916737461529021594951764833387783469636217675498583942248472211563093412545340918027154205542658393117058971300506546742423318188788831042261802419024838872470607986781204526611990638826563825101665640377177274269740144831768496159167625570821585845744177790956695504334047845256414101191909827386308972370180496830681114759347722416353381574997670725989829075996060445689883864513411313285419736857241690942860171820405756668272201120169647712167943213894024661679746463617464559793840848274057833135029696189298321560119543250323549467550805224478215213428759345883985062621436948348174395050353678635198257969162770981893804397574536697736538841813499189559013557849161016584956647456315728363316679881512599046675494664896721669343513565710240092518419021874133900236635932049635977079255928347070790816817553998817316659697825717973390522032806388608067417601326764871556378853271717656027063458896495634204624282842192616079308179859926823971312320630160919936015410414919965966103137684299170506705977491901191245825405028854247618509645723005908679870604802951067836422382833486542228637557285086957531327967985990309765457163782917729049146964076327859218319659601741024190100131854982598735180266627699686501899182093258258807784343454981659188582707989880822734314157911083235492800106596737668562117920772577328687528149066972436492970371577866575951547357973235675157237507253637361417591363797214473118055636958793755480212376128026121139251639888013420153578147491800068538982425649909581077703884460515859528607721879388485850649368060317672555642943973353486479336472491666952534380507731062600031952557161131836989359865266046865956892451629034532948279698068278955466692848674537532943817409483803124102837766565561942725275696265461569083212914878008301875540541426222008227158621574285246702595498013050074277403232113464819695094603409186641521768547608072945102926720428065126427818780138219340310942172383591091936684745178569855089136035093954476835574066560180205072758686619434787072695957729390849428430161994954327243671700353084304392982863985435902987718532395734846825315118041319818990427112094290848120615235713251219192794761445147116082919238754373063123793531826440359400325968381070125862762906306835290494486948245836303442791225120474017432531381796765655744441383706298296563035172126070506157632613831431127742539794744616945109371319241985985773725246985187220447230665337244384187921972304303800873590504606650892219744643798425291305989060669763174198924596782055131939399806455412313409963079493976308903923691496135049414638790020544920293675320823235111334159124101527699520916096723223811315795472591608285572200592078683656628127099613318794142528860124500950829929826687387700265486773162811490310697123851728985576965742516867278559491444294758802294002482207706219929204551121420134298293815304328797939175544807505151145441406794775525759209170344947665032969013290956687830515843262057206451133372805039033766678975504297383745491193074871936411890516609145376208374955699054396578907135184898778915673836822806792724648101305746701096151787847915399304546864028951637602460020151199263537511237129509311970818837803883148737420577891089012320402233020420396640764834472877240310033253889011007318707490575332686726466810848724340940427065367971911373562556670143280032590601539573572152081144136582132631869096152493688705691633082197046726741781907742208729291316823078132990973146780407953619804966677509690596527594758860850030232671657006999237706263455370941360460968144589738985465809255088931965689428828434605551238210736570446172587702494225244021128025586367223096588353739268961674612071411879746114088105737040572248284141802585201127158610855266019589105457161463385005046852470658594528243296607093869338759039181833806052247959174030767814583560876496023075470494110262826743220334179108624365939539913816529662873170645048748229465894010114768995323433320473848543360835555007219875652627590657058422253445243335977085770492843484746529220317798532334531510052877450711197149273556901452938106440424679799115555321740077878643208963797393261374349520004344124663960307494833686355194305338195851731921573860243049509331238773634912560644434916600266787642015342765939072570339957134847189434069448160154474028407108257752498219533893763358097832706264451987835628955797662699627387722291083094339356327012564631741066803988725763487694468672502056131918514131920273040223935857617066218755046416172902698813018688645917940287022299304087864745294100374578098753604742509774268321739882923646239604285651755097768342216866333607937225325029195544458346335314589998640145016295166571647306183812508420369072491012488720345142806290946343693340199139880696108092818687835672204940542836581422130749702965311992087690030110968370765977610284012672326791985223721859964969882182588934462951639297917494716805057163951051252006658686642962589091598838503071989357282036370065926286026245778508299109549297048579311951442428919076313372930898656188211874412364328777813896551790343208851929907940545147944298108989167855637190377546685487382801496458886068848762609925154647204414490968741768502725292467435024867187739128184702678349482889277722965629722203579012061199748920214547138541852524348231066639151340313070548235999437491587808735346002666615854488161679208744830051342215023180564636103280786717624748426528788268950931527663110174582531567580489984148173498666076274599665932726798719285044363516031716506343695303848014118910300851810624956274001042956035465879299945368571956429459923247775100404618290716259551362497837877127422251556527307113029771099440682380777729661289071617157308731500706555206880204798535033226399247486990762437961328603636677841019153916863425371432458846626401756885188019822082905741924175796138452138023431613084724944333672314779649096975709175845020094953484056778187470403579777670561546139050346139554469960899908643251235684537024648637318955659370045968948164902951901710364155920173017888587808694542570681921801412607402494462774803141420528717980987635055217074233830274865677793529770017858410543660801635161139173285547899574955153929517862843964674312835688926504874815102317507648464885098842256108109135697126037671004897033499817318974964221589742226445074152339440770876944860541345076185335790402402712814779916199232253909873124560971497298772097962556023161183482231309180226901621642669777116807906583764648433299921071951212365004971025259616125192031156814892640903650860496474853859021907399956702412330537442728635465584683978025104019028515913742052925610302073794635937581574033264398168876430273345330439127206714920029897593900983858821124606457069765122636793253078600041740015475765384190192857123897735463371421881376727901054030033078592248580967511239181375114443446708218011888870793784844762174906605518631227150629717470539281801723551988831707555018936941433224455755014573974295680185508448445884311988055225323233775916311270670846840906138747358806257315486659328682469579824229152195736528003662562228288010010214020608165186119607872244686374742115851680254250942253419612072098267483239218828086046995117375665219220476917477932886264778458636986154300325926208786485486197644460145517845173091608360166043190327391483742515813473459814165858820020276466541462195983263542838344640816404771511536373989646536770392579974878478242936559777270750450829635092838836513729363773589386806765729415960049779249603610661241738650093412865703048369951069846903558229831300061665104860923469972766146137285089092181760807179060377153320706719926367617444069103837120286515221805993046764854568145376461472318988569449609774699476831253792182860316377705848908039804619620238653295970345469477116522232092034272050563075405254563826485364602607500830091870389722743982655008876674419696840182630857437971271129886850593018611590750239951896793355233169789259137419893385314408928774577252467079780551105091854779738722956356939844273320783768652802787498862354351775571858994982558533480342989895056066992530062543292872191237243731736993563405489035032564250453762723926274292311391876528370631933853632155079289392400214698244032316500043723238222721260307837624314132505246558787504606603327003767673956349591107814757335080491233433563551119049149586755358774962036383642490274378977858466466306832640897820857064665810736616850245097707487316509245589903249877701702169165855043507347394905829616874020096103062346988630246624601211984635962865583010908314309497891877915983479847213371895073466760193414745637733957108599626866924393339852833775905751168580585157699824589230833898576417061332824960048903206628234580849483493225109797088365495173068846028648301937285447696212509390972151002215764287355766314628330302575888768534110281544603946693833064007874526353418080501524320840077694244472051299233758876240519401568212485623355475079109513975417961115596940094389139175937986763783313663405578386009469115694376842694593581211503689382901434014752532459451539840021636536487013701481631171967643230221685901692967167554468931903479716404690986847028854255736800467157356292216994712273911894512562630315032953381277238402305359805880938295599987144935862511723152241059043276430032258767910574866564958497166945472676720637662194232645228406516446831840783014790193135619750614378071121677787710735477236457785219652812587010355916315639800750619902960887579746382234592346089401968004708942185757713519464147808435256155861527374919653358365879217251365537385537051477622192348626744919033553204750305375205124506757860234987037865308503328629791528649443186955684422299346626751737796391857863458612300893177664323928121052324884688252469038538436024794319055472439410610624289140269724535180199923263782094334009674336216650852294602641980978976597685641539176413375302252848607482186201228340537610086126158010230040838475283580984953196916402352297705409331098605684814921034026028876269718978959047998860483510050298062832775635603037001468497283350033400088331843393968981066578827828520859405213322161563363428679964034411086267389998023393995814975927504510952695313250988633712070688449838346643516874370733081239533767698745141182326278013384474784057659827078776941390616659205843379443338397457149464566978528987390671514775643206463370411736950022067395724123108461725060319523754321812401122835772013981387980004867108562776307620216591028093977358514942324717661277813295604095392419700516283374824677027037021883762664654052081951044103114788548143999405650975641634599395891896763338490635069203533208336223230394487801690523958613999226118942212387861848498928788690260661509420446792189758525421967575914232083800846536848502009144683734297686786509070502657200601071603858561811488531172238764168402603877380706960246530090270413959655400411141247642130101928400930315289493233594514314629588129123989892707892340389307167143874686302157136241595069180410045973281952623384743944783497593364553203751738975536399392137322568086517531322953736601668312004246767689181706819528979937370133350579277964798659415247463436775815290565792943491273856476577579281742340173047368017126483673976255350952240250321764347286183917564779712426776631632203739116282052228001972574218175004572003346957272905329912328806786416032002313379944652739120527173579079605966429144664213276249762346433329014758496786753108347425383249306730902695344959060199292097201527158001823444005050632348940357752985882751039193846683748813765803558699798680985571486441394491657370133078662723793817860402380929695326438344142142934528936945103181295153508154283278351761269559384772911107354455759391279179238117864371524197841278210840582972912541887628159220392006467788429695944465395576948824665170876679235704092568914444433293596932883409176020583140967165958639607374502057512534393210602875167806690338171936213000960696723845655548732751585578434662067532580632692644880707914416881742195905655265198781987732618583795321596608525929481552520337399977974454131980288280583804516858832712002678346538194365757824885280564129520128549851732298789518252597428974655929247402441912927190758144094444843910120187750634220679895921888714289229340161784854605886625462283784886357152915097469197836690499530515793903713771419186625456756736797870161553427833594956990539305842738747458224463494160193581840072012570873730170742300598025611758145129738676705838718654678373740981551874485761695809486523462570648167226102652937391088479224075471740240006648490303238917452962707580345776389151476419544935248102070239959438176208884618154412418252164937154588263771787152259248326674235109068773340133616933685978998586643124942424242462736352482164467223710348045412259452625628792199629210424244397111985900979770621954211284234929972295064018282558753734878058077197400649497690273357576392896474492388451364067175053128006355955295440261878844395408947150038821452294442915141829202286223322154413814605239025729129068341372687734449511419680902396620818949686487793657203709163038640686676733767933766454212950608806539496103555019296962969369292355512759993205603327197500201018659384171661355459167208870310055851697704177178902159750809481595255168998900820425463640093697722241458581163373175802323549166583871920674634355568524324628882312965169446703830760371326791490531976414565220796210991411759987825113543956560498735648165572038902317973073952468850804792132572296688371378075541853069808687164009525790597703269655946075414433088091644409076546755742223259051389696658108204614058700080769967691945335354763046760420212334050602037221434192536307508679865856099272615992860702481660928852971063483773082859357286416638998711697058776573817189483739530524852477568384565954721247883417019609406681919903793588168290337913078021918963699580974867453552640880901212840229973911338687031699811929142959833444517924370077730953795390263587252163519797834629148219272154997107287125637442372239021912068793289073617081218477008901626509472181047452665868244816335039960868553313649818850682171130438999130089413515976862550964446169405495504931057396715246290579156435886829780680520011430147669065897034424515025972864836755600800638432769926804124964191501260041823765620138559996127343498384887076076128034730203783238860717654748408626080232980015125234449354463972755545705630305546438151756097431735352761013426349835604353175560968089807113408797864613389114038266804394425994457401625539958290807172861514531451070345777583659346935101697968283256637284525842855035408603715453654563788435417383285601946922738805902245906415789571334163646198201330951765555087803429649792353388390564096438216632612424313643528697086613351323543479360103156453958202222671995171011752018642618933842021025345756375399127135509596652332476893901693828621590229920911813120483351824134456306790615370936522220412243859878460746480884247023918183160464723023723660596682297360643408339107186359220948214195700000761573119603566376122864232302064941275240879089439670202924395307360351083270065257565699241426683603750289395950319531533989363081901552831936649824035212104963210119347107054635300581325406435402166279151545733722619125490713611587117231926043888002221639585321247089547638471907371655301160075045357393716472938900262475680935766110147978084323202305308221700939213322161375265676265367690515245410825873043928528492813092854337627713726263582743812697657997621340417914999326415833793969260728425048298557686651781471210752800095853573978331645330521547743175649691217493420623294317775905179448558997547671134646420570229685248287120442741426148669344116431475763823353268062178937381698460111711857935909701364683625165037911391695411215904681853012309926314375300762366427452065169102036530271515673747556710993603889383027440876400121748772623095926442899544283409693544437228019919684594034907762140279791849765029841334186682843095703772854126770612833740950551257497075761878965711746192664323932732315288484523735196078865321642068304032796196027842120381148840627600108683641259408228248966625355332090062332980508376640896251186680437314517615322337305546233546397754860900511293759539033645467199457171066344495303414741689552584336124656639228990402666313190193926165532968964781348700178096333891257957576564821669882828065544672959108934000041603743381546956921705301056456341855047247202855184119829678320365640181398080103306545034036328676865391804469851730216251663751242608906267486471761563112363537391475225255191046789077522703184663833133310821146514373482446143363792211415410345382681315977520240991784515408801286112983025308018352021202457276749129661179465941882878798445614668155337534436100054124636752713839825664218924347015437530556461681824487274310184107926333454214257437452701997853521248515367379239432485196832018693241782640682065204493183898741197029865786113103465630578105241806339720806260270088033463655884585641135109619398764565370055717600604583803361977899804865903550802985052695174920814605234140878586340209195152224325735567630291842701443897010678136048516356416825030554401331618972041156487125606572111052260729726824557811183093131395340235251275767437727228428910033272362599683350657317539667878797006312288462809382145172925834499120353611051701189397734433887070400203728665085108792994169360666033566815758873961094470031269389451241093483997343103809942945837525411763245041663760194970955187193251154182279030143113980595221986230825646050921174274882786413321368629026938545172519307732882055147465162073313986302531282016607629359026571201492985365065013097414930937196568114098217645754032187318461055919189483092422574284567504037429416770918397239184736113264024373048285961738775879873034760232122225250805481604691092834737341309538975564302648997044990009216943694286058534425469629648869720684497954172531625216079338531471660502456961003394374944145481240442717067085134017471885171411103600546746579377292463116977272996216355024111577671457572545932878980359491251337031228786075335731545047732213667879266914430925329070340314875506568865879093727952874687288834542744421997149094016533902574468461944543651212972706390600821341386348348621455914031441966528575838347548556147246010013453362763101836626097706632391162479925323321209529241435681588346497984386623424627889015607547597616305745617267993472500332630115926944474522596345111391651304867045467651138865124861798696906956262172243545766449734200912601437215168835592507110557158956384534629859097366732988573906818156417957198037016686351620099434237598696494447037448430021295503284988333407034592556750954827491406452522536871648392591003079457921297600325922537083283038715557484600040135762447501290136063388967028775796773925746709331112518304822846525918804445659362467251990278629835490020369872093025755581149301242811458866177632655692331509429711577380937838470830598163526970017419118489254612134858811026492249877126534566253181360161492753930411650312426652980004227070555709369745119971549415371226640475157694760123505178567944583653444041182220071602612872073970565531621195173693470507035339651171560469374827524564301319725133227676015115154336904840394104500947400739400475001417619621301074353717539349393256322557922381300750572136004445097624648427656939356012248238751369130762178598959699276198269412009320173567046041906763241733780818509429883061647372804438396303553117062693325569859843101481414515065414021456555844139904002114930588219521092064649748398268680767367113798014431439536894530676060763552257094031464417805486605005349034411425795962404717217444058190593771510483874251896922133299026311801516743234052441330838441126950440695550415209793541218013568805943195961846383863938844721727532854855507001583781329098984883139359237303192441197205313792310065602814316588142681937634687718185486918036223553482129097701891916137313584995233492635697972575892258089851090817681447138898068999910735792763754745756872291044022316818926708856207925838756677002166799843786526544649996889950443758514407144741175406399304888777399080557253889568881291710345043256019131109771134894298693542536634668138209746292878625282965261774791116177779468693691642241958050881941637959595853128894158266298563632779173690203735458569673859473666959750895026788111587145419249468555428198093911889050632252632896703278574998861838462705963128423182482163097334913503459459559174800448457040458300437370142450497327449567744992672178248366704934593169691807086740327223776404956143009957774951149694902989667320392032964614924695177089449047225504489550011051811223918215293685420113385717973708795141205622846382215516840129776851573995465505969802806777812422816215455862356286586578395701081755652140198119681199235237953493471295953750803761845982844344299288019600642863356833333431832214723832648322073028498595733962953293874698614251073643543941447207874802629746229803409338221106928841961019936765777552535728687467040304357233699863416969622126468083501655187416372627636209015994567337156488083522383226992136564808193898096591969085721503192162978909231241663258126085901568914158191823395186000347112602590152593920322828121613855873510233396576815199590842176625881931624674466830760751221843121733669534907638198212683945090347236359147719871240726769648281395733082721336289874395683390712525725218603865605302413065326564550484616800200181729732389128727712985011870041723350487232591882991149712902622740243675837742884106139773846913491193264835432612423073207504990806446433919516856235233863859468991522370166656275381197375585338231870183262398350551887650044010024533258048347822282634684766542841284758383964820311502762733840676849134803186706120583945949225836915305633198172488120750880817116098038042367895766930352034955923130144993612956197410547923755465868762603022860526204735132676549753730775812989490769572820058791545362641204139365183448018526455026481858811288513559323654273844736743922532185093238770074374336110475598953215128633468566201823781098202357324610194100641090004377104250257212382821624573794026733684768238714926392796609337842787012598446685246170505611188358271875789028805341203575861582689467863624910263427742908408745020142711654137079038830427121533526755022008837987154375267073732277330176550321985828915658950052086243676453662656681944526684981658830291388902234836682530995525651296265219236775533299184824799436595614277098493959497604920390629019455468311587926511413885709599839074519686574754666881333976555246375914466863955930960314928415831528185413862172380657449955941612259773438523703126571871597480591730881019646600959759591801919609977233866485299143608442323507532616530744100240471682651412263091018034130150066004170196054305616394532388262477481860905063062954211911959226974822774096210131186929227653288875685194884782314845809679177517643137943715521829718429598459972475388719186666605103233454168804641860492457498218573644335145647310877029441969386684266977080813945160561531138746245537101197099393928722465011429690312399399361071026867333143801684354327585464117432740144729109846606027196257606703508477407243080760723670517740693286842111600881894081366634038920281534787794277365508440632366062404329444212490083047922015902082332089058087152070268331739331395407353403946473955883369257545467188590436689129206380321284271171202286377923775682188089761512464291238988387381447232791591095814933499398394119404659552711548369625144126566316752595567204568740004291869375601987591356632306732298731295595568713357286257633893487949890553283835240171530256458295033699812685051700311844349881419604993013331754793122372358687063086415839432540713074403241496372812332355508333080150688653520390693911451544169812077486541747120240994871202180509028288460817455840975531586208513588599203856106855925509608610439110353881714236344093335013091917060565223485207658708745086960357216489046428449567310013499037547626490900911482594806779077028604782106442827492603078611028833956297286084361517017211681348650942202248807520344365798841639470980541821888980484449227671974788866012390560587160684050900352564961251416865302004911803511857212832406038034883231678108221381250503259528106979061723386759882362834353202011543253352392401353134832735217772173562364602412946385983867535461389323314746047507951391709773588463265301668378865859850332295418312985698102818568560384847105572826346824777998505586693920403514532168157875932827355706077542275625017945912237396923798100825056694315650841543461058734329846617775738440440786748291748880882728510113160301224310146764363894051601702364406157258139898690041242526858350969585141916919149927372717218805923024286012311111828210108075637435458423636018294577167181341948219441321985236834888404533407700852931485338869978793031114320267873124962702912207376994170070083375856342066697976637889403479564261312289406172941730277953252430258964727249218557193345330722140968646009540423439475781227272602874880343503390333031144812835898665817725585443298411928522877719909839425804192189559825915120228049854221685697277918284292857923432925464056850913820946428379248118897153561018557863283749958190254350343665462589019290115197172101023198397581263090267265413743516008544782068249789455172574993357278771592857731193732102216350081747411242683153065681973329918638405222629043805262346358195510676969460834344517693675833485925255240617855397040598998744827460280041696430017553997518654639218059443376643592722120673339316750702100601402688861891641269329123779890345271935425136065062577483916091739185955958055508428892243657373367199129512854434557528159345647622356807283574343398949775596725291916686824361703722756652286248558981042186644811800403464183933802329820894357422704998498890742573005111539303982998505084195205949590531429436130720514131137238760525968447133699948139736026006653759833543462288207502897207940644209701246443422456717970960907737703093990899535843589736367887697226424218939992022116557797227964364008098022721094279980673496029266951665345117482383586439328563835340436082091668814761667861877037535072863448099835852183355763457374728273634362219036631104289182871634086068623787459079037372292157807764353566230242952000301411088983286139971956338547829697625600464985218425711060649532921310860652902545171067442777762000345211060990417180874806095378758082633678306637556710928565897996594748099433863187352457610136496268784596359109544779906336433196563502805813544580024067420572154987555029293352633507664734091665391335630115064402778827706191489216175253192855720649427877286405149819878261152218106565367116100061294657781028186162478804074414814869186714556975853217572334731651351841579845404539429013236427468003174652257470257877523566302885327458729379573459059795849410411715684199958719079287795152558984811695352880543705083305459175650489579772280136429545701553232476119778752565316878653930124588692680993581059443067646983054042777218684063506106606275073598139570987184958653709317739193785667697859107613860313648962609192282982951137971616162578745924481323557967272427648883251703941897407578426425559947468806896445001561449092776821378757457417887494639602759737412748629080628248986212127974499499749127799486968752681116755348742465140088273274576498375162914118134858770536222616443871658979103472463834552357282754001333600368283502324848521690946778947778744038077168058857458153739676609903676534917479303253014124509000849081772190693265308748136433328385157815052108839368276257837990114660774914706004798629133043366432281142322329394773021402465024995494774025206754717593514710855560177734880463333164659124964633313355350450448304519945338461694965743974762824383946337521740092945393845083329295988296476744779036485984911622411660667968717437155668174684953409614827999789552485281675828874896685285900627354296993453808177426036300338225668711282095241490207635809107856048702261724160485065427541570031977116478580546884376139182806599298010103943887051677025005533108489517343808116336558099885516720496113585075494584317215870209012374704402983637624685312814738673941950988915795535171766161568847103432305936716679891317516132894544844435543526915729602261952087968561931157299497545888789901618159929395394022481144669508099578776352363499774509206114384545947264693161403719865329537741710637584240899966015746364777606199039282836873199871018844442314110491514289289125378130092143368879868855749489265657140465483536068918032829046274225504147952075468618303033124533612115488599968458653012476755166647750614448867228746725290162609037625639150153616278186157237100833928693724165060641723735857643086489887375478029071082617318023018536021912012867672963454587316060696180694150474927462318501232152859774414545378699649052813108536885315254934011588508629457207338998120872414656369196852501947369211648138316317045566697830351619187768434236037360017555066641966079252881989557240751542150804189606307025442400270982427133089560230490931862043401155311811470782863443668093389776658089363027450550087750573704136824822427820219818601877047987324234339759091251566517717754041231442660490480366434313398102766285140906682539414098029841200080671969862144872455059150141873595073201876925665620813525590753805833280011809781799658240915216777604209907099130147332179067580997323140112852355740738493868685451699013517914672364775966682339698575104180996919805379371365474995645601594814668041124435825979851065992686194477291520791956106422172844968974186770191988340987780030618618461172843298000091238451936901959948289358841762437841377373874745758863251985897820896551987312680808637521895210874141654797817545983170998117030945449579104549796612684674838973153791745088645682559949823080267642575650218307205731312293487475171270511492501297447566665580313231391670844137904153710595119557332934428063042015289843471085644454394215018226970642997066473477304128331962989170419920569482739003179213990550230926073344006226320217747299058363995213499973841728580108458061403819257428324812584996844270575292201260928191553293062958871011242374855915208195779162148462163498285508005635306762546527183343852309504564961890377095774268843811148807930013045250831272957581657300140531437502046129555807006841695923087926653666364971546437491211973284323291972224923425720954445729584692977993577018074847257230044132972633921504219801339528741694991784155861200451814932344755011040649423184275078146556550048707283994004753337336317104544831142739935818993486424554950706439152450423756070372561259450457321088011489756498805190190397639882011279969537496406624654937243389505420149525725271076238111382813326139275799969884570977602908840912157422360645207422139493448370085693205712897080777075618198160132683899703260450166162380004673535723763189701549896307182647090622907573189610800351312673886295552830898468523257939311889165412191378074358485344805020167418772418635440761422207481977466938022270551039356203021616092428021170308289818241619279875930028900050697319695462183943161110199632907028886679855585940436190881429853407798853350828749438443520527722837286604280599248669538632866168663680268345956652718678458761856203651802102836802730670327948414921404851466359189093370450227995050069701602532670010325277776086464777312027743192352729312109879469169160704232560605667916096016694172924850400924599324076902852370825553476953001734883605724044966679593524632940756500446459735922865022532810192381951310655589285450262293834121402323438804633694146365330797318571477255250063733713708152691567699326196881657203226431674648159661469840665177122626145943497011052627815989596648799083538219767367378213985448717888488545575884806278306099790309527426449053978483489063801348826818385576658386189800307176327268669342662427363343855768907170045947344548415227404882435836597930192427008240382319309816380833587568146596950481636652302790942245030275076468771300675267615512028323764668074625435541615606912951367190792246452558288835169846793320370263048838862192434616101365130633003208706461135229752995869521240042657497476502491608388470801435924326039393180920036538543773290182374800433031556536630854588356974751675858530904596908138982357677449705580525383023281099948505930924011686938658228573004489625152839393548521548386454662463249932954029582976010032038985886735550658642443026788731371707855429551790634730237313478488452979657245685240147571535708639924662434072894780260018156013541547948991578137391450361001039024547060852752148605055266817809169057718699834783757315123053227745421197907177214227747252039801515263327675245257228779244935715491139401560040106279065370389977207502277136570511511154842996736712226100448620904052616484818452672175664780668681286905263579594933573041088960309838912914605226283088258129769548606815156455224253590996523775356007762485261254664193225076644692010866549993184282177034860355968359454443246386146560546723635288688337336233598616950237585927198354385241617175524610126881735175962290411567856954733419127859864290915698541297805380362019055161840032409384069168484735432928551648583212733179044562541802458969815791253920798285171764363346490512164488537612557262930440276971977556472256670924486625468472377891184959509589877693456690741603812809970308532006119422927756535540475862675848728599982767587033580498866139086575642446692397943251489266950699135797887735044614264501871949067573898559382873042720278544420050026179222653894235918632817906384081977029350356971059746400058192406230837807684497836804887063541100553311336804113145978652794935954042354889457388749572633818933515933076348372017971308835028811986326270893409413538597975900300645943991168588371299311199441353120693612274614092558450727767269043500308348044489057707294003723827080919145008128649462435054263606806819047965496559424059259821678873984069247956781010065035443701881658935910962352624426083137523148831590062706662291049051693230237694275824763667590596710496997064802914429679043860833933550931922036362739316516382089059381482482704614012350198043667250746488632246759874358932601493904310588560412025987764599406610044568789669935477128549974729501712207009666302188612566964783860648724829874480555611750808980246629065677125933899812772235361968760082994653595664304024556650760776447212045623098096403229097586684200763792259631807516698827407646529032966336380593760564876705658179501483926179963410770015831681759769806237477210490221078104720610942667969535412686228715256539239366896174070753609267395230930219602443299403864565588849577546797130235821349186583634887265952772310463025967732594462012910321653173999410790860711373513986266539856504232448358574752725831247623661643847946816613026883020084405024332236572329766081692622855081448513931412732652082267275442112569516924564188603995402806912863238999317112907823089004081272394388255995760931910243129293021943469931683477817560861153817476076156785391160925125151944622282077471672934580578402942319708631715817791164603994231002825089702965405433528544272607952535970403576819265646565930276851618882029801346880126807907242069999951548021387655311625853873747862888068113596791937638782462014351654559778883436803276251920034416396321382728329120807538093216906149112461622172853207339573935995026459051686519818769961552124606814538710218953845281523429564720753497849376622317606294355910698349085424886325145016259279939550317658093176363271824264443887793578443294450532919644855251254612314066334191721256910067787891657679748726843350239889688390301595534389586209266032345286030398321383708510548595570250803636693379457706925908795355425342707559399922983640418329568533005254179187066573944670564739586316718859296682952600704663451520720360107187033070499656952225644161084308295348926686219214212499475432990016349171100418641692854316959525626970065766896818951337146889385895889782355883044254405335351944292181502205849024515521499054521815426854266341370019312010235398433002695713961350862372058274683409347848839846818868492348375953067734873434248778548322407521517089783891254082251143777445850181000097379730099959382440718188718968818155744838581275900948446756685450944648578411872777015514875493743381773677855180393148479852242921163822238468057074683452372817459440977672954000478731090136389524688975039789638643643029035476686074246566627111442007133608468778027281784297255628572256964830771390894209770346067462706814529270908918270498667656817109348592260458091508350655496612370919857772547581941757815615352846700985277636872229571855349407793523413456684812169965612711694295286603134068379786769527325771149729933433926273356020487671367000307498433308619167457804301509735773766324627127748301687940137032294850390142767088065466349949435743592374442666958735234851627276816092517047050877774047539604249531270778589835252251767223986928742543510994126637058050107262015064673316690297105829076338963875968866509689365290319517183661391362301802275835298287773032992690049121451982059319332248353792631609251311914526669247748029881070353713565795522137028309543913170106386916305385846131077141087278596533382896054038933357736013132844896334722964730603133812288872355181830525171983063910631273681619575004543713830263964577309550405918935735954638434415711544500175448125363727984179440539954551676546532016931421090812783690695140503896279390791864525500073453301424375325422050120030423292046538706215602782882420756966634864327772929484351620173297037319780277917887056816464382761943133505929876659288231118810702441539046727985052317437429581721936873531120131347823325268259555326515748239195804648570557055399166605736352412613595911550920204829771918679185548115797698929235100703670185410566572610937649675660560611741839623799242719831247483566956015237437299134695683116256330410803759922231448228673178403037388148488649333046695916315866652165714739442825698189207861865035009249413927266384327168634028100882004530856572896183882841634653783360582798044187947999444240920200893659495562512814691534032228398161367681190048688509039177728278102785002131309998294279162345437419313785237966720205365533125030539471950351423624660818845286436390826901386576410772995156649071681878663432306352247241657759506728233656447411759829872411943756698267679243750485746289988526180284054274365791488347924808339410845235617705536409922178499721741008262849737145479229258949388438249230919679287862680187660777565146097021878256886328845379288506212875178200593745316383639175580601134860276490717805478142807452381069902636320289948110108853558306528532095311989248597991770680169771153817329651594762820670881466990709060039137567647826846132924430771005204357580916604491609775465480403656156562394370084399801305018106245913567809235855887041302646300786367064384367918358216724532317610428674300512955359130161768854754973322259052927710940095719257516794748774345485164657298520376402699496722753433115103454521312244181033282304935096750386777392688491148843713271112212236185006013338308323651441823451610442263885988705725894723175820836585955177934794275656182065380163773085303916585853306533452757077930597074195233783136864578842037574308044291908580685609606477405033841191646868512768829475284379939915653800312125035411780174127063464389361740055574745041129952268868488917692848378410080653203572667995513692136474820742241644648655822841663229034700038585554168420842062395241748254211195762385802761291465727349816836383801608841801780138549471751247434036383239854656181312322167150749593369289080250333054237417469146781701425203491667067060182763551134800160292269734359279699275418655054986094742535474386977495620283567367893133484020978724213727406557616074680656619009674510066096183887801501091039353659931675457967752056870844545704114725598891540477232780607426712905781205301408264948924431131627942580036434025957147847906965356356687832117103420172314231868764886856603499661575575241159138663275737783750062684552503519175182869110682331506840461591601731289784589828494817338586023643379944289324944138340768478837123610752881083589546017644081815417505331534431560248560100693607314751441128999536882453868189237574765331078399684408159191490779517851720775206032311846884498645767870154421786633166325110862809509778846147620503289379136195137649294263577900572828652615553069037014263969520172493239194583383768610608129798486165848130959483058838215152176476128446124427666014128354784997833525719675890053799462596879369114476303039164526334266103930860499956282271673308585366696152826477908804871015808427437479580457329791847967725431988722163971096562499337922722951376480299569353027655259466652554567232431610725109539166784409538097164902076975833633791116950348787619642531633533850061409715600724605106495184579702179363006509894859311121849257244041278656469666521648844235726030131921498907726985783737148626938312514617669753894445413464257074773235435386134298755915013284020680329208202087610158045721575342458357163715666433240904131691799351790166321145374611784239970618822932529004194110412462737369411356667589788638861908883253921839666666743626954795601617728337260751086329078537613498859356761656782638361074816331508737108497840500030432999042098028258895351728984125049419547475569794871241746600561007487779681876963725990426922327637412808813690594466181179527847283641880884792206277870224349643950853681600608817243919192939312771258911003091025009282300555181114852843127650918853080036355377091236982646743568852464760110178659368362115733931146828309909519144623981109066092057840121949102546936735336703675584004654960475634973960747954553311470550170775866958160227620631887649935678246087474032737803722306300267833547024698662310272960923835319745747220622396008961045312531719324399015238617326268409058524911411134365091285270943051160404820525938261109635046112446984653112195746992395719752054847233050308592226483759273048486627671058349020441871089075028810151450375579001569657160282721190505213991294448164876949476851695074108225257489614853417185260264419485701451971236891915457307916491229896557935725821018986314492843600452730575519130675572001406815014441218112242441171644908887331332995627495027157409577562259777425602840951240839928045739131479481758754252498822386954245928519819871817139996068103469997074498085907193221097397965355146387872185686107398999471085556429234459554792586384821130128979387282679944973414139976210010325467872833157613935563792231053066409859929885675077813908860787666497373142437034573343411977199096342852484657405113929035751773215214278827700411453959587396986231756253339657962795939741413033934354917858299859251258721662088383457342022415276442725362207200972239610551670695922594034737483580099371830594660280081248901477975439051462506015886423782426520603765412205863564370622410300056961868910523320004033700632719673717326971142495538290211818962098122171423430812278668941933414304634651364573774971064068344258540761333078030064558630418051226729574597170820004355894029057161549812869098159709890419881941378794843481635658949710697830607582863172754624262233004323682404531324236956064835591573457018389313640506753442732485410123823943873133518734186947069094631044640787009134548781225585754289489211069042537924997592379671645785083376038277667227394221591941660072077064074198149547961999445199172036302826803964231888196658784096989025383070477047326070910028201434794991562935161867890802780357369130288963506027663298641613273838120542502380466545782776715880006296676551215336885394106073065640382147069275980231117065083010257223418138639210106455888006871277452608910558403390535824212439945362457528464250972971035322999416987123980384433646175989137198544678754529080534433076974165345786477463272124865141732059968350779454680315336747102684509625343096660945590169854193202428404680342184856677518773377002977765242980533563493500463399908116099671464961945441028157069184676495771825920923756184753613979406632910299908038449497182309546812546961461236629017852742073824751975563272244417758732267715727837558757924098355422116791154201001748800779237217690446956710317163419913588232981552429198181992870371380491924612299547049867768606643112566896484398597659464097552414988775876620013423502002167877301480848080651226226870430330756073894745605162895071639047297442300408513518133023807589918769365227910761059620835278707825626058752308092740170049422711386580811606682431641891737783880437865982586679628114005735304300565786240212835921252254257216613754333630942597976279717916841212814525615179999284744356718700061159554701452466521960899035116868056376579467198119203599103049911308589372852547119887131726289447512853138822725344160788722101864856378175533461578721942008116225308733912459573995415597906104839501264244571742501697498477344734146588005165697188218823495864723911238221618876115114444012447488560126733293889375523372604208742551961471661687634199816336855824247965981388243035351130082250328278694007998557216332345261754623877427081562155265130324560354387783420251429609129170062537647088678910161305709377209360994924963589317452344079024997567478732734272781483768049040719720839993211376077536112190054528619509313141259251196968002354022213284162010533983786698807568006043792596234526406354927745992445685711688196337998996503094051898399377055056899494908841773744041799724763916843962319390999325098088087041011705087740264771908038015322999012235159911896905096044581967643038097671646586789783749478640706591942912023401942141792198070836922301532564710093256673606158758079565954653445405088708357273335468438081478641571561565095487987819934835939709180203884248497509461405730361492216542907647251679461191095191583010301771933461743871737524118849836872144352110355144539679863575698252120181818618198163684302599258194984068624966566076438508450706651488146494125752223240923475817166367030474986750271266248672870763190215589821243846167764202380692468064352482537981314783125174532021853128810432048923469851396561959449663071689283011863800928893235701211275219622267855358493033168574813738709351545880507343883761596357103696777264271380511081670486790276344449512373979479025285193250418585319987510974084750030661951864561349769914078402183352851670794550955056550614738343811252244296868858248571593597365011191406848500909521936014579245059879273068255753866253754312298324530544974554549672734820911750014645935704912105919813259713648423558348685190091790081793949107581508537050534280381667761870996490989633314519328210842080988973569707082120111251998383167717242741203044121957283165726591476165854798806212638583394713845430233586566570402325663103713601072986791308540462900186960392918344785877499859184098564235048173385520050049773587251688999234912781549578111852062107953745261674562196567715451752906321689649126941300913622310136367211754084448153288940393203646629161623110941436421391152964663909518168504361768764822109704021718381438699066404415327926472087058382736067806988136525480974120956192966096662172071768832374576007143791407946813925417470341903990872049417674129811532105301935836300362826251554011595741377993527032591888536679256321052744687836271089773061292388934319144628549908388524562933694453046596788906193160276710511657061371887503169193485551243791464939908791789596389485353999490790201449558600502003171210704125078212854025860003527763809298426727028592512194583074303938091013379747918468264855615539124395266311523996966748576697053338493172303713048663329485952155779867637725856270948758095004621621639339647380520567839419080946315897042408989259624266459267117218778056995569655507287548004594504809341731378144810352593000670624383041693572322187597531552226252407077520422043500626613315452595687738898591556609983864093108448338507044520352879965614417074263385507686560929081390469619504278566865936415239228809035136949210183668721890316803530058230382245315576353652289914237106337228916346673228411112930008246876344696140150692344343865013745268417002124097375493098017689211547767682201051818472221633940861734229061409661197121057822939925803314246223602699485187007738440381901381461097444872473022195142952173508723136863955339405261744242751216343617415633210007950375008395984040595563117981168223398205385514131316530782427770255594757672267085561121214311325066787508638353928765320127413474333724885924202736460403329985974752483408201564171181543137182761985842929509720463195333750848399745535162663797001023549913565173132207989998514649379319240428391626716712692603009044938399738495704411124915488601653351852028403395931973726178618215894372665013910637608527890490187538632707967309416497624155329274669846201104953223770124446379030807916924459135988270361624096067862600213260720132845669566704593822795860924564741679512835431491148979828001033232944293810365144440978069408338349703563341841577668099148414752271044961013138750148035393409011326625596265411126901855745258793491314134311971903573460409195506447708025793926611069864211698387197435476436786770621567897811714361539087608240437205659469052423218953639461663005997424536510530354667952141135377228873880904319743485985474199477673687797233114406293376080768503529796261211093128487083020752900311193885201890385921902705428130011739693865206798584469207428758560026817290861519451891121509189885517594626725907303665645605013798429453702788067489170218176751459061579080264778451269648180566132655633650777839581015996802590870625288373001571746846100489414811562841943534135248545087655652333191380929071901720340742100184063431534369936331906170399060731178533442164238096435298146773884527485052801472876091547818274871847709918161397195695253277234912329109584910595183019943556081421070652345727111209017037872230211811981459436997018349184928916336415046076925107293749644825896326531842754123627705241298285697661882893423224404184470389071467024546570720794653806225522744656323755103698501649863932608193490336783172162521839191681995577309996425157300235600235450734739436433210264868968305392541729116846369181738519086562803936715939582500151666065701046721029386954319920379035157110424839740308390860609957855472027117950810323616336219832166064864208334032732838374986271391972613676359291946630247632769434062833020747740777323255588436477392687613219352880129905838506803847492325996825594741120338385499824475609614830171296530746317851461652179030708840491872374123254243662278196656310657332506567993059250324007538741885041970029116165812624898250133015947039904201601557131290351753867763693172475565435529479892903722438023219038571406070983597202554090234288900927343734881215952532648282704857755687190339695149758773367866844713601781387212460370826950719737316574756629234094521347341132403373561774313610210479025154474466844287932170886243039403778812991280689009956831777438063672638719999654461772926893493019462999744123754180494356685820496537661051528634331330228788413528745560529885502339524357512578670565862496632252306958480792449464458655477149612646510439532715313467409157375073690746606409016750052072889516840280852621827968377805983774109470835551726791258616203820278836852951782000882469415438380273161169590033364925079050686862355810397579803552881728925679778905913906452577707837723783224588493563214938968590814830349258779235058590105170720165625351811327026362496415076135550077858068263408312917714459878342350695375351625314281885819795937817007766324765721551010973460059003522095201001284080692500854156696061801357113488528474374873648729812582316078224910311069228434801332567409867917187443362505670143881958950361098993279255982981029361042076672880118292001541862912696349829551961151690426751197280892778551212226181469042470654062733426813641394447987378458154867257849026244588055710452336636029188164092668447364585320258272409194001143280872066287133848657337143736653553531481851869357134194399072816804583107768372410926158245082599822313811779466747617553606782846667751014589217766282948301962612947345084639066551587928723922137558288959101249361972997808468329931744034337353141703490863859293351013277898301018919747284472819009914813414886543710183040216832261608287432426255462024413741020574133657520411594315334375934249504097524207422408930775609710997045098060926043703914684644472368790392820585373294854925278607874751531865164230935415912174150264077949227222912002337721788580461056469389289809445069822353936285177755522986854205231772176518144544475615942239408579986007086515915186287312425874985551290879814559451639248726427587568400178563285832893332573495101934877948395153447216819155198485248005149742757913256390875950246241671444564581255298958567871879778315582997531353110101411535355489386904066964018846159174595173732931209037907453329565512655029561042450890166028457454571877831865584503263970098396897300460404716469907285630400187647730578017709232488437015067616692969186123679663415748920060866064917294219178546561674378996065020658790697313816166529452904263066562135294069501390037121829067192535044768350435789811805022299121878459462570482564365713599729554726205355900189407190583012680357457466478495566982955650426273192179854020352960777071863481447373300917787220427849491620554335266638048232444017079178074869425280687296470620520296727700222567964290284754789656911310754884572548149434376005481614575975634580022348621895150972366962872364983816987306586493863443798726046329286917228526391418631662345884856275073549665473306463733767488924883291881679708410771274640697752201208912673370537354232910250015753934220821617319648616813014803670821756034814230831102101286999433555653769799072543938964988187708531857483665545450649091125986090197220250786246817791964367318121810166005286179768008447486199815997949329061604180242529088743066736654708817022837178832832180615571536329731286035739287102557551269999970150045748107059750003266692772033474075883921620994414657071636263956707106528936264794074389575593642355520190781077511844214453680845594887959711555367686183339641938423812298088477059367372581298000518452528316873293325945083464733892614870811826700064177928656239631009977556403088892489356051100335113076665594180958069271705685888572290315449963306793859169071071877331894289494335198975872138549897371562040209465429630241633637364971933267039094943643388586670862383309251008744220795122086044954590055073028120478509463431278761965029169197900338791910427641959704289483965388521116400638617170927483669676075924035385317807614923288323664053985569187312391295292968299071267033551379040717948364884535581255193862667166531248348786288355649889169848916596592120268885234833416596252958924529641780660187685581174197175906880787736247262404701907044380453383657518294716314490580247684485710299762420671439076090252442281872274922150447601298505251890165101865470601714714901367566535267752981081238587062940833492797337589328609820344101077750021989666539679581432608350640148407295761508391896482394623034002702334250373139192558731193256669501969373532667292782311797445234301266351612868965756732976444904416091606187091706322967439715300520591046877563095064547007624327255417606775964048315391329247482346288877374047759320987849374572044363105796499149809798871941875974642932385769411872403430660537662524075843662488629296657789682327092376521944823006914089467545490064578495467548087180022207641033495056449876105642962252592815170865036331848640246958839598027446665173597723670609613064505490469939720375538874767320396515393253677085169307501618038929951030262319154430416461149401573884394568075874930676474432797042146063718475986551356753664991803084277553709755798188129704118492616728982525881702603950701667739370207878391057132344150363049193425277775352667910707806618098532365961415256157272714303793860187399863549883818284616497119521310626656122021220715325255676569262956681811968846380246897743450779777321139385062996516335052585372076458789147057783680857306694822000547830110437323879503651391869551643030005793350465436497540423624543702622064007954456256505906262230684708744858524798031684714788160109269932818279542930130956254247141002822895947218542248734177240429631140926665618669280588279119535532920818405989493150182227261884539701380681768018281160185733747639943561147347555407978076547932946473969773443233365296056485951099383275796128821104423902908680686395615743117754304081550794459994046965422898327216493771302597456214110141920315093710698591562389575792182385546197765936964631030303923777345087033247106269128216979327513520051561537531752349809988555480109916156421800757011125843836952450875868504760807399180839058303745534779593105031975673463056252433856325220078850798975608204807356987061523374989834188266753883357794240613495604703436045284988516089909654511582552388767491407838668866200687399312850427992859812787056991650799636607249771327173010508332758907144755344130637348463940156931430753845299997459928075472366031570741864788221796912794272741855310210918278920139110228994220589455737624649203308134739499306775852988125881350629795403678450545854530677110833211285937185086234004180185510483505997489615055861547832149268411558626387163824553123645150533426566687353233788088542157130447998657296563401954590635945686891264973734590291318611261079375557279283981356554335408603457994996144510492999580305528756614067765972816730659935911437724341364746592284777859110096007279275399952471095783315433548175812679716201281815163067673100153987526939448825093140725206140341857645476754466430055075436464536306114786303657176874719880230579005842782129038475433312155988575521352099321665698122640183586643202852781512637663487649352443599225901428950363681668262436861731591712589000414728512978172809683972733499074535731581370927900810946013015663915418678434306306422573802097323051376183728211705972053909415376918366949240659357252576086921620041871525692378748712872728344998590976700730050967813145120423948644473451297334893749639275548869376422536540393226409772375668576235727958171845442140618704812097232465295781733375642727228238324277119631140109822547008798781876733229832884666416626948292131495689035578744956281648000801506453510371278270265894620204484448310224850582937538389367700064602252878856960455517135527479848070143498723058190932101838391171651966669191850556539938977039490363761441951531864566607039519140179168951431986742869304691265911779827860420150507095956952704138918078192337845062299587424770025528772808477058670513501499732211432799028184441421369696923449369567535318853338872477533458574401322506784935357672842904244784671318688207174556377913128208066360660230217308527996344677812405956479441268327995873612771794708902396053041969276400905402095878820646138644333207693816955006817127351536330325163906577238372649543591168464429000703654196636170831735720032390744780874472249346191548128427820576652673588845503153426316049763175972602719100541541095251613084512435616050348078394922860756573881994818882459117097696682674406114380164429456496339500541966449834880020698998558876766593717424230780865570255448724040412688687053523282226643530120738628316520636875522060576890148342365351521921446593031093563428227085250262975637991123689960226418218057812949107032968119568177240840214395012297184450226675941683133376968373210369916496660719327934512489008177019155403701506743350631290854911557606946600921726290670290479774108730433371753215273546984241624158367717255223599015344872746157601196062237390140153249120645642243058349115571803141230087144701566200857619570526485007628775996979703799914420218402633022956714266692966622813390732670595541783544400481308569552289169700984734207527893445250668094639830710259925130419132025152225481819067757320223434564800550867563482101373935590837133459610545488399154217506050862812063076940451268505608370626093586975581399695396161227435694145463795046993620119965545795465432976430838985969458621192462481570236201876028045160503272987778357839271742981242228106913145937972353964604444745530359799306168231189036475100237985491081642645224343635502804977561919348839611882442072830548401564065604444279252514641550831696252438230932728543624690030730641061350592006864017532214719803330307763575198449318155703741331725370305088211034826513147523160413458302834750996090330589222417234976437654811589487318266195891305111086065730082384449810468772031717753277728411533052839091234074737719271279072913668554726037593880852558205421760748649670493403027618412159545031482335155935586280003169481844554861360828693885956345289731905891958799305407499495702209868620765436585464592655531528182633808866378085482537239901581408707081209095425298351685845039561875098865707696455125665899572594181544022611248929944007324918892359010601159468060959032176148153468275066662626120782196670735623322022034464279844971167108503170085925576212162103347355362241077381254179775048266136167314158861183237699331131376980227311930755590121406438504688515914093365227913926881914998560982208508458588354659744335015523776840613723184444746707142522216096355403330422966096542785321365106438883775172725013072385878796569272165578485013584956510760374056689877841474207101838110832501291560904903565243938986375340945061403378045104535970061881092892708336696881253905170825118035091289960946566233718115974571563648022009344418939658991508938999141617136367191843615825203382122738264222110901903510561541784361090788711171557124600948920824866342680277804849037772673291257472530257258114841820968942047519354056318488063547789740064186749208613222591032901463602686125325555369480284681201434534449584972279539311148957866507636644112258164584507003001331326156109943305396684779972295369237484757599496362678941225280418493672519802596622167765238224632730692925180920692961197133683084934043109798723183673587468483013474862508613612377796833103661241797651590656357693492147969963673585282329066743211134878250367681068632143694214798763614252835518143178124792560172173975157156266568493548362725914041771852641820117834662989280395562192687070667742006895020508995276687605884694236386026598887821862631199640707177224409519660129834568487911909802208843110548740202135888347112138492097512724036342476531376404473482110287929796342550063747510804161416122044554805124235347295605696387322460146221578125211033646070547130642664607992256553880801601652758784036627864930804901797382641208391532278406908058325440382026408935968569860739302855613276814884900581358326372135087571047985652942544020654129800052301901889760044721626569223582263065760572055353507802333801371920460996240942659443387601486668428996681481071644535928610069927785646275939660288213112578603539472559786537123903996338325898577825724407450038646012782792598805816131696639957657713559403156356863803899432356533612361954598625238736316757097908928491062334549168314893113101998240297835536518992398931306251766423059609448373547886628215307749384786380773813615093328570938680228423667151439684342462370607364858604578853694511459245114238114051164724595125527472121876901737120013705710682182101283868651365956862190663140489992657293465057990368155609169851308687534632388901119677726379831997423769253424051527861629882900620877981379861628807403115510372327976706820872273013006477193550351549204818323420137580570889540246777339841497855409198617464479643176728221686966294220724439950560206234426276838602829104672826903818036774124870944537565124971366084616705728216697484236503600115677528421031098430475208794767730919146786661913654891961787802110918759984063936308954127888688574481511274925244309796409442148738188053325197698683224740987834930927285628770216081920480055184689477100546510374915275724758279799444357927833513558819341523753680879032479765670354766616471749171841975702729149689672925181296081989177011847287941781425944483293302571205087547098313768665061731545394092814288703838987601591056902106980826328318491260680029242669950033230553805814354041385740312278369480495901885345786243361973035685302733049975630954521029849372927108663432683398861093599074946500752477526977622985830674802480536630535698186338386077398218744574432706304315770914878989840594165544489530773034133084491983176383692098191634100434177454197588237962189254680572681658073211476787403859483832852046538341922480746839026388614114655769482404709926325440000253735414333074937085904939434192993689753308206815525650640360496096250486933116081299046625167543441975684192169076459033825373963486951138638776502999925595179112079328997316770047543505292908469755538042762538553434852292568405012916092865459484699838119564740207167314512700179818580348548197549639381910122116831623903649902917178937852219080463753661629701901857316082868791350630353878360243825381849850917409602831402464435138273916914297412573889142165778171105488555350845869736392886326342279411138255187215944858484527865286463312204853982930966369774841332153913540508215435865001693128184511801038485021522917198713548330604651323065066984825891285720336731948395779821703983364133729489414926026005484270394426079404135150726256814999866858365652222816524979281754169371167892881680233272702335951931747175543673007794944222153363432418705339931724290251031135665059946817474556333103272292433432539374601984788514923965924761469873714352347252460628717398249950148190335106694391851221462079306431911482271985994121094130479514723947243898169705200867153683602283553551980782371657150899232620865413074074961118313419170368044515236628702459945452475146232144327170391962027627642747528673693799733198011479456029748724328798474805778940961611457681104538836177936632788088462279885246928666276666032765242585230893258344341204660567160584262167591909427717125216150615569756671635440516126439653960642761900814106653529405570244596225246656984712653547343841185346943561946946138842284231739070024306126243282279487298614660475203602306845248694927246762646527250475761715737303460593153956855780720147650679292436161104461611554195333159114385153460286430097892769819386940515490430427519730318798922295221413777548139379883064777623908795946913981364218678153622792096569296866517273695149834064655291645699822470042067993147016996410461126302694368300401549163558785147419335966304621932194352487995653898871723235787730727299351179790725773367410424469151481920391621811772514667540644779851717781434655403642483004985763971142258359104589074022617487362800861336517500336388735797212454105969975580199059468312178230582328578316738113261241304161419084560895210824400403829658895569088675228409138986454435007709380848030643498376236342705836038664963065027957343622463098913793014952015959676930289873927316051038874470668578532110080322473821934755647076491655945989659001655799629760140456253078319438860436368160943411836308631904690203454412735062829582476618540655224439603483203241780159059214350141011739800952862660701935058981518257223236527874358442267003696010269323206676358917628886679462205745961054931219353968275127545982115165807025924618564551028067680398773986546045668012908931495362768842605596072206829529028095544053891598283844680014177062170282817935873846282162548763948103225018622992455166725620515257507036639169005801703755736089712347216785101439011037821389253387871142975584992568173162638801717754866574179876332289884434744262591931015504690628005863294466663187209693997372647505390250738700181269627711642992498193446426819803853512869802517813587909758174195470971852995111140980376817562002736844661196196996887504637964304516776311032760614936120057442031160964416331065797902843592681873715043349751385591223463695616380432487512936049891569174804608589205151460840962760361104254171014218246988926817030728016528769302524333012073358700261437433205642855079405093666000923606791849565325147103894434129156284754905557138620333439827127894562049235509658441334235772081424403793444744405441905134015350627346894775027204291073652179595655432081837342279557305266705372688326816850869269296800014890563361749196293394487401449509890236152159855383714918540053001589243370162184553700970451781740500590516593271528606495177693497660788689834903004404482430128924078172475462363417475930611250996010765785254181398747034939258691198910903641438128850171093191645036058024580844576634197731281725968169690229154057747354277289751801326795913972022458497415769302336371008157575958607359408293484297654974229265757130660204412312657846611872375202133618368628559526251095510756210696688087298464778011154749239570471611585642307308538236063799044009828370973131185103256136791469268719799305120406390510274903675393693417091385264672656278824622628016551339128725598116068086459162169113673559276955295304826514788500173681822683479010322269322113425185238472239102408653424651617642783145457203704888251514945931146055277013544195555815094398170583315150594284065325763439041999596974684416873502029743245533516424221971174214484846927161571468336903956553121415551911588241712588920383403418925532709408563813142272369563262800808614875213589899393849723091064128874942974977017339596536476455072194756021562179207814454040690679093798556684259303534584300369272727559809446754570970446626111731752187756763264613654059629390684332726924599798032272926424722905798051205452436831931030553874281533205019682800677311141342881439564889496851081157479067767464023209338407941412673833011431511561859230339136415067009933518969456616746478776501634171877308899137687363585053623051890380822421316191981606355084999060382942906925154383672462228216051520011580397059136007425526262030799127300496706777192908241656036306477962725777088586677136378549560902147885319489645733356226836075293609201926811560240805407148107609542070719890395115341126392819325331296328324544346310139155272342472448023288023840257176939541053521107931776301758630996086750630368393641470567469888846623293562942575776491856752295205235193782308954738556311612616365669806524411586712829747619564838953605449131189300350572138471603126058902969311962442556872311310364889390765537529538109562319715236224295329065278034134027116292012922318761034775223301402821938775370627344815862849612544245007171342663808960175073900149701981231615831850350178649068071173081725129308357689032095566029262325514076374700303393980307761675543750699929937132301493840826786935391850294877834217288651154391533872133631148592734868581630205095726985663620566710963785535095614205450848916395504531015333546762763002248195022969692565481935570127105241359241565738226940016483369245640508486152826437449646515905804613273918939724442216940689366716853179861834640655918245475477380619713256539981581500902602977775506657190360599002319576347633329425150514540467561963288894238840041905677724158771522751802601703370993777095703308016472660621753957880463694441098143806699784421585457091438308332088634292893506898982669657795595314304938194768512923898729817116193838758235349164281571219073030914692130824030323798875371550536612311453649014660084605031525196504625665571077031790452007510501357397952037235949767934409141477948487666895135465348833635017922023871879137357062428747657875099086268149745057658475059454933681696946936178540145104464410173356051511800474194947540139386086628263410651055521344296946757755682639620299723553492920477864099072728462193236136756884889297204901488940839949075649548388869932519169503928919690378242752394980980393516036516834577261911719607160082303910396565870598994544991424375537855912083793054171077895529908704007403685246222595568889925939505917475232511657451037637491996526709726033895497680396035269071924502763415820129706399008222188214655799277989438000594740201283271378620991314841453944606740191501083738849913165768935045634413318509541852477204372737662655852838356730475537969564895794070081457986783932634351288168961757196572315241380316218296170754689288491022679863967759437517623343972127419854085558571448577883682463838699355702054046465655187806421536169551412252627902190237506876325639529115569143992434459064878030949387240323090499218295632524952871684154390321344912457710381060367270124999591932632888177370957740532336096057759719807145862864260465634772320562600410232882324436190441326258759389585480510231370288155307272716366187143953467329512945243136230749290759278589566541015832698560399639146250920175932786023879127500624149365510480963754605175921163005557890792985672843231642633559397052857683502426838233965394852625384519551925057090923333967040569151858044858606889080692396939719358639181108494068199369010813362419787332982328633166237498358792471824087115486816003891944338726198275699650075465400713361884312827153868545125618923541136119837428974395968996630823501027170377864916411911453424864254785876699597211978527872033831817795188310884679765398005919986529770867485701285984421120490637858825446767462151691876309912141879690408356255378495666243108824352358762318342546696204201850845184628452868315692553249649442735375985596004415255800677709487906585927034935679640418750867080483588010262372384088536939437121886097339608298021170872757031269572250194405280393350644987701502143845257594995158797588544910931661061896463363621678856927268235087618583116302875950385222584277523079854229919323026758228628277854841104801713056757836199495846671798179080907348837322312816411000096056346540740646280958668381416167903219079289561267785056272373740683870524273440087200042626515430510919405306990342014431168237140565258385082651207657485099577932841722456739586863381965456812668969606710022305369292195434282523636384348317491509798862789562767170784400029761077242269137848083586990687971018697771198926412572016454634571031478385308071767862236155571779841441637692886758780085136190912074701400999367063977387577259257784529461352067145834695430434653470400548022529436973990670661394253648127936892273786451697771915100658808777576049324738001802246820383900129198976135880190031279831890711788613515077815440753841005935473613605686056205165360283288037899544528428622832677593772002712134263184613175183646832514096892491908737162099630129197121104229766421119412244218983927807937104211513896742908256211481059651298415315138680963031228420752778623874869627591510368753494388681667432558345472300934354023578514975019887940644580677136527892016075057789334901748134441031969162060660828509048460891887821674673442678120240593179518726841627036741552950832497023718004002675424615714611302661960944613502991038716392701875575883304160161511669862253528403808982246663418125932824572319167908804893496199232321327298422653236602754302665334198707365832798001936729233213672115372934476853292059741240757549653471692453155298345517489490520086753849655400187314105126768381209524332260636205806963344857226033511106745173106962981509008665266289787534533772288075330304948078119884144108420384742513868092290696837610625838596392311797732641723224444554328181763128529062870037884996587769209825832529332248819921389599568053016648123046194431028521458552939982801882291978304063052535012470156046528601221681679558499718816787001416321430234303883769125976066169433151106870011472361001409691307271387009720122682674127584258849967788182711980030793366164658500489209619266632411927636434341534305636625260817256402559066583323410386304818100268413305580658060319404383529259588955140966527336260265508016672874602095612510548184758097854898758242602359433406862992946234905071673368466879932421321376529987280568217575300396947166961945243760539508007627608855067346996734817819688743214035337926397798232933292538482525621292208717834013397927618561372925361347739850345577378000211453902501132321366053723602933595306112852472732649106183572605174257475382971422008717193985593538471569580028775055382554265523419084960649043438009363051343825321828708446116901324673424979242112597981656450265256983649937105036836522360933213911242353789676817983996156897319607227577339637000264375765790185030732243274994190807240973390944508952013718675881795854837957358714056707852595580886619113317622334408576548616844451184583706270464274253271057227299553567300090164446146731062614824128617299261241951857164999374313455261358619693275003765447927087125497165979657667641977868681802475094421236410634601615656023806624106333195779859368045377369300705956930891089943661529439920598221472669601672683231183930319254029330345034124016248937634286073359750066895536911971501542950653048674772348543067529424575566883515837202690815677464288907923696476846670040429033078816778859611666804595482513143777804995797163517083622679990481469630548312158081732033639287765869036599883273639303818756595326684511751405297801937758622107350086111343727065136325179499939681092865615064375476785857644546250366666114615519808563645170859921945222371355441455856662300216341895930339412874577661897010378925177704943806934429113409921035494750952269536677638828788428026101861005115118241530156207046226962572837800008336938993337914023137507931978317208434088446422209062515326730602756101088527456616892949810877495676108224066101009282994166965210178175298405696154912766070457221332041417670923582375017935160609447632255289027649434146584720306811911610477408250635742072129569553054913657396244763172207282648544401696094452728913561075643386052246604599109495081291313258991239524775560188934862462490988879525994705847681573025750744736590465563285380987525284264546303310522749007661525992390703805915356884611376662814574997914354455960955714698424793033716479941569473702581674647232667936826828428064608126148650519671634135812601186246177411458653868223244787362855196923704007891393654803925684115243575316218468138537397826113159507559702773244549454056899997461956856272877395762498008394220600295561925669030218773694492648948482220814172611677367231849974258785384229537271499428560282668636725792264561805061334980903486582849187036911598894851926599255008498203332781288264908064077727406441020709532590935504286431457931172759197168666102293619224159754037136172852917380687892190007855915771623926535853784549722436537012669958221452868438169591748711570244476151389894480017158426823188728325387429562245636889158624810837884978578899614548854104007801150806329692647973203871289429453231552158774384347675292297585328374374289859500553722215569844816157267159013513506717045693466927194877370133942164490147589114116433693433093380190501023378585775824307651152093969891218021696347734540598653154488969966551492882347851680893357339665172322711645949452412025921144896038364565264502639733291490966421321553335389113647414798557806767824783814219025097044606323260879345236842929395956734761531985638760268062890263375685939114780861331941224758169181576377399435597643547646041994809964271060647468297039504401682445932259360281352067616596714268779623738337626067589386408280843363216988312650100578306655797486273286861813967103562765960931404299557562491705305565199234845031306549138600578915592444778357709558066499619187843473372047456005379001144661097475447218100342709001411705783261050496376742302531954939139862418760015928208626606659676687498585656259646020270365846068330233629917138964829588267110957110149010569090187829563746427111759762515973389429209298995713378091606876624133510881767928073967187925338242231616774074180254657858970648835639325051875549758823491859843128650338310222537695556749115244380933263024143532644842822741392629374715922947146721637470292384686163562210085689770701374871074379594362933528467279033724344611363481356605220225345404769729936919311325512721335885775803654296981329179486818073102398003883078862407208816775543783415455075163493277067516958126262716744192248504765588170381221312652378920862154354928755444830457218909976395699553686871621315142868144855846525826917882993950031287593450304714763244532225983079696722850609644089665926005655835804794133868214602239461204685996943690632627743948708759712426144065898169368953630572231021347587405170604213405554352247745962191507063628670047645385749974209770708720692608823396102461384658224413331632028890955309433902803835679231246042182159839780703142831782654295117787018928266380219783493147210903725560685518697290122984066696002661889310780397292819694395937726014635061082702268398820150308696792630496549338847663951812801745788741167672508859738174988106938797175052639820808529433942871514819037121903481877777956442987506046335952053534277557959885456448837701887806620704788917356335336007281965179049451494916018817799974292955730387316346185338208667827108681055257742792121281795778282332171287708761263376349627745181187416084539606145623746497288330780265799199435806843137538327475378542116610355386276591353203344467622481266928709870616220386087432479860398333066371556579077896144095282892807304964313217385022815451677907979635461551328278252245920871604730518455889957686841655439097565214040053774483930810251674596771949148149023160713067527241290652719152823315346618228217946664163753044337870698551698639634784496300846090366387456202676418240113759665484005905685972310067970672988734288012607912502082591127984163534763341795781960882076981315462615949257149204640752244757354359746465442226046856871441220139477269688178932731973218515951772583199077502199783467669555117437615353342050599027786714945154931064377862417894122687655808871086050534957260348748636677737575731737529860852051281340977777689010393409334801500745324801367942383635026639559211541650606742386389334159404342009745168956587026288674304879357042150609416499636686762844070721931713311471794738742309236580958672448420165370146693396730759916411278606698514202881715681966917100076072152750120483363183293086567144972047620843713451221992686788543177872196123951985938851181024249170670961567647744251791826017944642889936219916817446297720492853948901689664622362161784423016625779957377445961152021990947502109040334716480117542318794260291058562519441459729602119674876886376079408998605184989312558971935761315079770958323514716478080383828974809833833793880930264618130024956038311762389236275975795768243107967817006578773404306243487482512184238699339732455547546648324696609770130099540409298482532505511928642832041906749303042810415891668211755939865951766831099494107967181377009846649391980143156538770008056901208097140857722113105843860303131047866448164341844170104900417219633659409816703165620069392770794749735519085964202225870791258506484372929226095499209160149655265011510056412747947467256217122470258372381923825334214393442399501862392362845187723526322971295869401757001630508881167536963915861659781101792701546259547999637035517010386286553530363377948708965131173176937884747443066001024207193325592696973746426037079021758580150694449536128493632383402046331906712654361307502569412345262292399386927578779033723700091054366815552659452012589010221167375344138183848800570769917086953145195113532827643703877868135175781251816741121759932692944131668705525581018929249465016740187959140134553039022895182832362396340392753741772738918169841899314531682028186340827727003521858984645443812527507050306962192299406988293091609132290277023084144670073062901637982749634662109115852628388768808159301003628293535362291247789265902587051464969746309318262628808188069538987604148185903004743381675580787139132585635072627236171933764110504508109150323552296392191463806168443789590394740739776496043237134259663305852790734758360865239719818824072039839687926246819619589986744328777561093600585295671717277931720117328068720963239184200536342547543015360222436142985812237894949790855343976454997912639920521838411794860121864010116732023497997225581966359340217822909555931777798315190144839372733857506782882098432525397819558389070572872237391243069098984353733539345817403815816335431630181778799972931459188491703054451660958654610640978584957013162177588456039828471770762997746888416849297949562362518825848035651731661474492829942816522369130784595992523495439772829873585664066895281833911434009865409817755809129673095855693463573211706494871817380996924753486353526850448939891523694022447751005588080403731779222402190531581221206523401300204839502250153731356954792914414458409571023993524079079474972992538980059668804222931739192707778331016916040783658222250763052931124434991577480697641607655357721501857741758385324659700261495790437417139936403470806654955307108228347988774422279548565087555946451744167137218918005914946365556753363764815031372395642127032179931078196337952188162967148062130300450552869013429795395504546429763746343556996764580556307174464722605019442212058538872436899237158427878679242772143334855351215489284445560377890101543609548621926388446845261407082659337322951220092971493539239655497213594701780570432075793788724876308862560418467225287861165025146958321267259176844724950778000963283145769644593080576979177923845481312746069191701968390025495570529391057198450263290570215631658696689487022476033310078291073733218371581339540444776938528764677161013618957736872137365797703167614104468225361068795498087573964647632158944776904468496167336351386924579706461879507631313909472199429279875408804862907732153238120070396623814000875847595787529753063757182438455318117757007036816955648332125923608065763835712942483351396976673430339347049446964337493267453235708568286252777449180041692227959066389609919945400764004820507984128609608911024531259947689053280012005609606395705337065722828042618485895279211274096474427277687852532404836197009632655628841967230716596120251794245668990851856127950802168794317862647176334371527809797922479452729951596653877802951612601825668315935156426020062887481072315046925144321814194725933654906046019081376968614922812208750899039659664561097182204281192317358903399830504379210999086418914125257610930328922436650630865707928198421117880103925467444474138067105954579396153468148513714146493102663557461294852919590257035564174594122949201684368027815277292870053213381769572683608169531976370234268534186700017747329950022776746564461386958376558222890866370163411695414364311551381305366724641613351367463698488254460070238819395568882935167290572411938580714695206628355747258388730959910673788744895862594584774701462956954487202225655400744723286473878637828007361392979992042094870547794888057304022167495610629417871275743837802880579095725067080443747390650243733248896106806096381835342562977078473386968409329295903620696456227411935728926833565749770869137836559586657516805441164101119068467067660616253155282170796206119001096716910530504677171739068700217267271345924509882157790894708859658018924773397492244685456994947816627301817939747028517417834071568313195303542321743940600424407058190679366484809822558321069178416973449653878499260745120530840898852973657029855751682946659223248180107929822686458194613434441567237666533433424087858128103648439209875173018361832966208686562446707878947701740122919437339523462332563237747012416984754253717378641891048856116865794164628323696102180669568521008944990311244543217095378352001704099543255932941504152109974419555598476376407268205292885413226699752377611540224803075268934133373165997824586881038981963019304086661378652288984457819965341172511773471792072448856967882422025986348952184235292002689755363504159510386686967866463087209531642232525273116658526712185691735692374475137941689693369453856955062311871882026359346779267864864472562220037263055043945494588580195361550955843691714383391835005519915831137078177540269111089427160976133089117006119465832424035835600403609662762387686763781203645173837532582507899883568782374220789090274147893960688087545988908465813297058210484346577648779692221896792229109456591054426182404337623931936346110010245010159912680607331789158312013526555323378543453142791816099722457751336049837093213858588223035716124035955424699732982004133711445302925906768986239549971714909691682443709035285043130202413235694878771039971514208294041342385006491773151714488196575645279549008924913052202770033228463356755709078118189736083324521404314799418898407778823091930434713943050277854799632078902030721345486154501196199645932835925395343784610640025415264902160369405140478844326204289520738565050592414589342226776039199068265019029974164434410112078337037679247221278631030628080366802253481018950839406701310120563921524315375922986321074950716392277744144435897533762951843738260640296910744522054966079808965707629506992976705043590459654308532392766536497107253630593897489561201326387808681249378973929276457982023643233421526691016099799937675235740876005144606530805523724257917119559108510051017706253641607821192851629398495441507438515471977967516338788712951818485738008175285537495086440108749956025420464982620003875213054297674051111486093844243342485187973106686349430038996178964862747420293228582779406482304576180953018302129231788508057320278528144747117014983619243700564173228216464893790962557878797751164847789143680164197693152113451209585383540576983700730569213551432304533577168195396878524189315103261126667695139567875765182636508372720319210767523579523992708912673793633671281640588118738128346877024167005927315313027403514952572515266234071483509609824554171004197995103093040818058566440796548387355423438588385522192590290169733679261878774604040927283161933915031832824287296730642428668497199751867205499887684906140322594163250820022583975727260191847770014042502706159480425703356527755385303467622166730513256669305238374666437529265219776702346550427740679229839030262933504671937950404978550799097597432004750589153333132357813418153390542272757977939982121756340489782637141410363175191237344419196321269904875678742732240311713400244233884504309317652835986799106239522731653483717186907389079150911490359634072830910049821930575747512985412311921808627538738307513733430908360914664762366587842880074304240292808605542089391315248552913545095840505459520537663965056086990732601966528106699864273925604588830630076227491270222781179025852947993390548461679902291110149802264884608470677234481273381666915562209566635016999032755468770525226942291701828803529709824500913809458633953885660209438529086214907735251906707110678739948443788341060590023432988863043642872843334357688427231970139284682699991770930791525249086223607630985348630649042923074023754203821318397501541052471119611223083248365240091043397235624525911336149113999779196459530853776871711592628796679270637235633606275219284043799206463547355913044833889716975639473990931674825182767819972830886175279482484444849394793823210466284177039081030942024823103960754899733180078828822241291770180381068862568528329189748876100887146427933971950337561873965704795914800554048358049514410068657958409511371233853635203615375375550546756792114252350422156407481713585931445283282186324747849348127102689220806452993742041671815587200844930826627506693924742970509440065296301198257685950250317575608933324283592719171310383507952312066916176272931737173436995718166503404136643070530557487140251070980994209030542884377527540543621952443257348518527704654448683759782158452814608231696758725134389068257903733136752702128482891391717978088598627400548653665998846368714966849793034266775906956938500461765447082705182852582872993445445551922882384960120732606693470518962536935965043675966535268476942455795713287243108737454638285750662785836817471455694640795051304065537117642539734285079632156048814797083455087198704407173750794729854309118131353540665127161084496730334164168049362217574130095597103807141641063496708850718305268042028644482580249441188238283057968004907852743442162997760077892061885198031217398627865009625179758982004288489607845012444825907854676638068152532445485344121397971958685348801679832846884087156842452551612472963950668387258416547028520123038913952690174432281472605661701696195480410302813406543831821483226658397965704952134508297839553109542399019606762388973637075711574652710027998401437475949862784784281786294571126436702098655199226977682055369036331330495489759040326247010076418920517652809000435584397787796507938784216157320857870787282185610280043433868463901275951026590747188265997793522056273942357651552193394927035284682154649685610325510518254609126286045162375540761581513854632101998826590668802287637859906227027664131318738536208335796119646932011958816437068304822699712075893183607006744196745304810494663212485591234456991008300400730929554412640519964524092307875261841411731818192158562184473221788984341649324063672557358305583176806196386530288431795771322496751244631315254484996596565153190633772908619047141129338660866930818290376813905689663722621429344265960957873846313991076782047136531536389157114798919403340013404963969508871737884001600822291014906883062487179573810932170534033105849465827984835543617196545475488940538417691067742758264706876116871078841603437881360949921385541434156249742078161544813646581549227267101232424031849855102602088296990562159146774437631915848511552091534984377882673055388659943536044789323296460198179713673848378266758402940255644608954643988017401494796874135429647676437880723434519714884370901917042442124784105472848065860455571485056947912484341039906266225466844384215230208161657470271745132397582530464426609356691348786786911411799334819224604053853483326598850199015679710926425493455313751999910429697380817725532185347917136317458613471561896647845110466465659994224807762539535944534781792256745270780011216301088013138366240246727232408023212352905195869949498957978758722734214887020676319493815095663674201501442990740075218819582159280554377161974055524415784790837485811844119795998464527450974045265062952319931303244919168436594091633208590718336597386942060614354419113534546893822968268967973124234211357244140342393407090082395638763721667204242231614682391669750869853651674313368932760791378858435845913980385232459547069135156669246430053555662359522521112591037718039214779527175066754049321958658699814636642723932684211953104117965998205781338814807408320860851228407433328974731317068320725455533427744527762689233724546555321243632180966572304002123730309941210553528297069123247641035652805460847989925276263770141171982859254348060626763132364735477663969777304553959956430291660834626831877629457818156570193477112866313832448708690782736376151043364233000661103734459539081347431915086891275854401791679193073972270988357172290455523820263781755681187935989641693125491207252841202274296293746559521468417044568924201603396085730210077398815354125592772949646238286338305731600377567272732548669165262864595251777542151057071277155016522152060579854363386423453049819889066758760303076690855009757386045860253083750895515013757461726830488850139153935001742581685668965024321043016932968192852777765049168906078196938995548901510318753342409579916981858526431513819049129355464405244849147169454515461816575887195651986418283527891095501404693502387181446264625339838354783159964347187552855165311354132330976716504638379687501695740632986174063834322555916701004123185738016292724987546967041062340957918168151854236563073041996768837871250609437252916588520300198846246942315797319247714487493638471632766709099213203933603260988233737829513161247359081783063379602995197295084959305844618056003120608609827857827294652895519674732747537244562821999017046514003058770776390355744485755618239313607362919986985197671604185414072516780659864838213072404613079649276588385581542664851779183333637493583100857144668440753901512788196413345993741007167935271694983648209709748039075417935376964582418959191819768897783712811023705708504861611031620840951476109282806977577253948274048548778618233229557108580375441097889638591721492856673284730521265012618155506770054242285435480862556376489275261498091473340669005261903282408509579520272557790130366129272583357185437038205732110799319291084913666761278241055691020981799070093470489170269993206529684863219531061316449868284175609282161220952937798895093698436668240592025507061105468155822790176591370209389183394583283719300165959659364040691501135827187845944269797533356968225637917719640892082707621198313274652577026928449661354869593746106795453777047800601823351974386438127047655837343185905833843412295765032735914074085347051865634012335740222151167507668012499212174727314760081857927756696892279378830678294486923004489423094571678550304924002094892629027029921657482867352398797023322909928048660157762577211007454955338844309589741113726845980808860755930344094028603086508117015319373585147686834426190570043318461297699196887963903350916019332703562233174714855112774103983892943183483741986047711477009694915842583591983903798658481008108418232040052306206322516164016226117859566439370371035183367165164122000028359979828336947685322429028705267043706907900229921637699604242707390208036867169930804442829083430923697669151832541413629107471696623457816420164844466543161505558157678980523090474233981656881324628055706408998164650305951326058112049330422960745197859310437908846636723711252035908886490385588890528310074503574204819719443304373119085010058436106568594596233145101127291303262633942901558874893020201370301361448624732233111351021265352011982025496243023334080598897392537747196226005550449124771328345047661411985441184535526538806033413885042939117067078358282301410051914409962725669460239614518508102655500855965358340028312353500745511561785297996846931964873726478332642390823730669688560169210964590768621793123167660252878044883251871753808027786719590119234050900382427447706734483759002896917227729989320747890353726695036059050688385447802682330796552640793185610773884704847158489377341128750157200947235837716236880967924113917127957054525359943425485205520970326139883769030465649357683154936345463937370563596027835337057075994856144317822662538271974595656515520671046966116095302943352951309643669352002856833695248982637030317414069676654167503552172117179151022162267417324484181057533806726590274292560256042547331570190074564592221793632592606980289764138159822022013087841768168645448586057234614977865996798414505057947853448889879815067826600593511110618085431536194526394516891773705619703422606592795481610482013389951557835332635417336521503750066797948072933687029439157539518373308446730702912026116033662498114433093840654232852715141170324987311396951631159057112802661984056285400140922604237612004936144839604415709982281618746223210131974870856125916455927251886413714298154353975059414941855255282323817208870960949680231486429873996514377493916743249197922150507853730128245659177698284398551293262443810088093855949120677702368843620565989176203838503626916311945263447750218359800540981511991276596766051356554679496871563406149406381241148248154318722363827378119353281109522202352361957478726491037084680581116504747850640824699612360659519410809221690451273728827262669171898046127842767928602684178819757102136768639297165211918302109846320031880351040269943094223559323985828686737555921637289612506453847280798278393859670368355327473290021959930928299808226803711464520349761653630322365591936011098999772406147708315759578430541359634204280148593951450628909593995279407613902403802995892682939811470944712506277248156739318753198125665800717818409201581613969023839299072127805857582732135296579375904435574003079919334479163966477745771081768440863916086814190237947680558985401672783893849697409459112477335730619847834614479498742552211029064710950818000614469408219575160151338962704840771690364814848160352371642566649824149835789503091160451253249881332780587859541543271511267643310083151206932133829139194177113985642977486433829264436410389028344005271065451506445792347559853061228379119311292723185680814881967052431096849500949652035532931578089884204443716249827500745258066990513061461568809194124939763537771259926215732537810531423789629674665279287304256676498046947432985960733759003133651818942120195753913264714068060933299918191022167637153593084895586196690768123995324654746007485287917666918701729920558936673824859364633823780130709543419810583005497640778769501755780827929593134262182810074897187899102432401012435358127471011449495309150780368592994414707448403349387035034625876993927170728360010615347077196135461294119383795975289658963698322375891682655787461759249421278247043530163657251469933812426293663676549523181475574044437709828746083711008419882932513240771119437048588881000604219392675912884394057781742708132820134297281568903726221192506879359452135224469421123488695742875798867980711948056325512650569156262963162722667764986935769517108942185216511316605449757742405966261275798205343207931691387622792556940234823978885968419312732539329325749653004431437044648783256469857387750314055264072542779371520328724820484730323535306174889565821541851896101446783296318143473847962099186916899541237964388129456636457163882899394247569215200961824415060803809741870462717174527146298116251990195539087587964694025145092626852906386831262049098342656739633814426161640456270655509786636929494259374308667588478187848759891472210896851578844199947793580543728393108332472549423024094097548191365016954298563584749919087776338242889412415769965452317026768641361280731617456955534245951149660498764296817949036428747496667794937274641270191652865664363242702423907274891142722920878413599843292927329253767216923750167101602445722750122854296732083833473808193590522898167062926875736226321514447781551529257938330050999026499646794994570946590718561773227067262628399847644445181330415604795771227830936861613808416833382080445917464041243999262714470395178611213275403120103648678712760994739415854766894100976867431638663086650635068217056401574605568333688877723746302908650544107681440544977900460737868938929736391879749831693200885453906296612910405884824164533648968237197609344918844601168058687926464282132577133126870752408565827734048003981736903200750025935834107490722415205837846824656996192722443565447420548321482465560557737339574203803700260607740551509650430786391716472775147316993332359470389631985571170434101938414787946125697889057150563237657185143420615384858359924011710987913370411278671958337091527866681738635505603852460980822296681281002205147076515964438064082428995669161530761388397092512271374839881229466904497242462399443608457590348883963281771683051920149877492528713826930802620476377318021723687835191412392260863026268195116598185278086725674945590086953270558158471318667526899513683869546375980185442512345329389464140238178033437459288705761808329131602116300808656566644031961810507202526318293505929172809196291261921036036625688781170068463329415623418273646954781839229550156943511706750705294897919831413987082136274492584624954938733876083078470109912614607633965251149619680697176153355125657394341274759290157679105119814439365185150092045190427254866245006498265430801032062823333111112357182446914857773796598985737489186529188677489191284341694464161449717389097329250058962593314462179157271020520123593733212274456218808777235126961035751271273916707503947964475556270071617624975818113771110222162777660537166186220341503131364151052018824087373873518358847921037503529226062473229259935931610639202446958463541415550536519660815274719909414598633377539163572062994108964352157022063426267597656028266399499431295765414934660871783935527188472958402107729771700813451065516083138699435271340168958979663660215118813842751676845330439083851490958431603481388868475862581108679049676927303419497943487739435800115148283067680858818432095975332957556085461351921992882495157646923967938516577985645128027301386759593599109459477456149583597867835794712965411174258699733265024093910419375435566152720780933030051275482394283240493365913638677916947146116988029638526208751782015306863826129797120171828383855413297168993119169510474761966320751214618908277404133307077447174179347628436215862026162869354626475713909108949271559468334374577380326245097482545410932885733395619093449442934460418175608870679781846660566579725788597846902019683858554155658667303690929601105030961725232585698747717313426097945496983128407540638097099149080048171102783548156860247612650934882041237005895897870390848391595722941768083478568057722384767949834146839325254523142905753107286154382856174854169693602136836119556314078619419125342933782653445919330148114059924662153523591159439998196267692778725300501481345170055855742316683967842099532102464349233633044290552846596428350837021994668268827519286259422661911730492403086005450836879309084502497490993608208482657354222227704386543984742527475182293961393570899251326712969615380233987655491536789352430214208997439488432534795992733913894131135993058847259141735482887225975340411831769571024353204343254173997077730677057312679856151872821071254465205209419077698170650712781515289904278527303069083915555759453498891767974128610451714632022268933942660184850375343856014070777757020755111004591363442588302487493901808350820701003725165964518531906648563027112778667781229288746008959920880498301158460273216336454924283244280498969358030734152655927338233890144940113551021726138029776438550703254290227682439537901516188147276858443805503183297876115106181241936010157501618069902935529257667834863389141593728417391527869418036356902225797122872671260527842202790046869377564554128440411902201715398131873611741920873808497824242044032116204428628354680567554812127136857431120751467496226934229799666292302844610085997055615775220000636590283232886126668894640187116055988784827462464823693934108305143057663735821488175232021908134090722887968356744800803317994066817655261040001469560693748804851360041553648271436958442383071685614297893145062996005351369197111099371226198356812432787183804125717059866852825371159040595225521970398669437402859613123345032668652758912697166986046199568004001508128638545677590678497236494503689046513348243685851839848598012309954149483974461387368899879864811393980588312615043836856516867821141844819965887184671761453204415026017595209191517384449279929822972461611167637721055377943235711402050699396622753438466387830309593642083521832365379096825888188814709277010050468768193461538220332711021647139389880057864379092188003412721053625930254282348173534060877999075181222676900753877196566992510223966829729366138593765014602400928486202306350125178826453120511819963752861722774200453652243524673726077599279957488483849303393605503981048308520946759212985587660932257634594113147441911621385940872137871039105757026033772082564368499817379598823493105704813735434946082014710430060683823651601752829122503167401358173929086147178603320029887746983594611558008887591703736920286931168248270535122338212054830477822900725439371058658011876132737169187600328671649306315912110458522677920121473096398097121085578804336449599036777674872665799641750227884417460687158375534154919754874263337374715190801409415595017385404541697762823777123406628099118629110091774671061848408973447320490883181876103302999692361979519052603981666147551328776354897819835528165261037405321318589118989608534226481085143473979267931351184462981117084261585276983534655087468950756121580213858938283275648151997654431255980676779368312247715146355626832377186436321501080180536076401787747580124836788605963707226846401414607273124220960562289394440107226070973240835973809908684792292102543695266268900318687645082496642937916839773668400004662226465778792076386847315991519694951743578723955302180525808333419655894700981064264300936620781087295846829990470336484244533534240926441324062679350058739835249233874367501785008599278184268255601294739717041025302107611764616037084377806398681720986641794788282319936241148741475845684814631147355698631436003392176252806369923502551206178899411094000680419922943805832871213238620838784406455995543342154310531019872658651661364132039538356009205720635031873949842823850925460813402995930947100970788108852160312260508804183248327018602457423071023253559291113603076160678552108312194913765198368130799074124359278131300265448007989859826924182338123970175195753502986964234037050709547418044985220139844834179604128826339185980809118263375771064666744053781385591711021609667728390242370996607544788581622360062611334445154508850290454014218586634744280789852981661072820475834649553814647375763270874450392928298409059598016311203463645949495834804996555235457508180150715622764726707339099681340723673820394712607922402921970543019075137055795218179498203804588338680836954740444193482658284622794751001274439680461292871169244842216079890887013999857747008517234924657098678306263633234307502586164382330607397364473717261425293477300592425955754722484513406924730609169880798828311728718230355936796453885584624317033003300168151223033389081600105432867519881664795459309584326694107718445405555662548310399065212683691476777214709266981439345123013847153184240127551664646972833164209310842634491078995809220964291105775292978304200823585197154755729440655798984864582547175603374501817356516991998086380583497094374780747934462013106045561822906938119543006121003478751168332468451717968560348641168372963246496161911522300172259680612518155671391543940142516032035837574368324646761832959426663327481116376296976618213495668533149684348204598087434259317656317735405965098394967142480462914950318939044791718416178825131137365203858482697092781475269811102216520434482422476274469490988532327462166767162761156886859060673846252712263498687258226854339250368671900002553958494552841707511303349181295089246322260710460195460766842943309574133716745332271145614430920264677869847203904535791604620060971345312150224822141146594277744353760602928970211429207924908802376409619611109191912278920193342493769931125436774144260165261874853226362062500289517736616338482865962150681472133161586918706053827856467974232782630176801291679025857389320860749022367781806404179103727705198127714605081092230260306945482391049224357059684460179963058246819436481305077651152134087573298012761984987979890973543113768070805627579413322246120451628641553291825878127916384255074973457072705301832668040330756982945092317418384603836685494595644177989603262648932590461211522965527726194286015112587831386575319795614737668394128422008695805743563511897222112770337426759465074278733324360451062462075567164781646079199840035007512078587209123019719073813535546890358859961876880123817264868662979574757030803839430125296088519902055445621776706840190420129459747412619551550428160738054531233143892532451316271954101769185352422366831812831156428631629708548491806753322717099480618495717292231285311925944909453315642848453083779876044979876969261757876554400764718607266233745489152397477276872555045272196244512841606126476230836448322482500425587230635470172805406348814567361710874303823353132671043415095786788471125651859059397677070658753097507006905711525797344966794260431765776007060978445716293438161047523155258785767963810613298428154297215680217151419922625556259569215166753430170260403954762062976114212199130060381503583294896087748415846199980347885085814264515758705279724082481802918658822242934299990066221395903813682537005673572077810935897940534289966662791952168877376596430520948213711127539897304653367811733817584661995227430928403544865017717843841370976261986072586834133915205127968210950654575416830401613972017728522715528209550439944042884922990891709039277156743303942676697423346849475995332783463097421447326810977443684523395697049566774558187773555860798160279073987074316315845429590742237904773140245439278103552027659447648554127689165763633922878370177430870235148027536303046234836956014469421837771025104461017688969843248265683483402238237483955137139142699754483112908510897404967505168032402918433968013306302681993444655504040740693645971425956095965767023763700759709487163828871808450819194988867528524706896208317766833021784570789906250181636881949539762276367713502572489585179523025641766524857342794505345371377265497176890262072077683037749665200056464607581980266698848746847825776845007689301499995540947283202444516798167823396766602120941859267253324330165016792376855059261428449640627249551950018075543388708724975938624717540263171137400246013283401976496014186293208860931062483525658183399845752943997762602299634834189074855323638362896549593010607292670635294550504846101729973796050531924111119020043301683075205722365428101671397060637177536522044952515460212322363285698561437902592343089538185164609569464485837306724221505874698616472417440883966770439415331252418383161642362766209503770178541087157722454455078387182733661571477712722362866154411119255251173564403339422285296639007130348838327141713544971158207904608176126978443367822966778865912748151727204416128971607563946080318564105712716922211482720311189819064044888509836519041026449287894099559930859707378788502291236715849469484283278431886444179707841150588047781085811534263714254296720649847369058656387366217158478012438873475575051679760186284876730422210377469794971307792705205560756388267636194281158117263331443635211982565581053351480558361376397778864847009840570625591551286434928248257319173728462672627997103414121753201605213918776364780737577379256097101070156306462740024083890717663164362010778120732112654870845818466768669229634139726508752764527259664880325112443478411656258321045106282639763743260714922297910513413569444068375615461210650633726248549595725308717513053434448358886369117204731231992604915653404609389804516069591879128417037508621489301504116697197317960940287678695902258749832664678586887144933539353370523407230667739012242691169230064479300540770742787732416241527712087091520346752593867729571532724684214879875421840646731141574599399320126230581235776124052904170465019148352782423953689396147029586253297095713705686413952884770767982472687724043123101057083350365391908600655882057775050477509626209467350936380068177786050161158890237788270651594331290372391696671155536594496458890050598130403583727406364893096160186082998412703657289256700037815625035714227964973044234885252437858600123681409587726101689011650173789883353642889236732640561203432728888702023365770915696286305987752373922473503341129036301688420965340641514674022683463066298848818980988885468966524886583023405692553793146225604789052181529216570522738194397468150758084945858394965751427339724823240177875346260727452690241441350317128798846680289033177063998503373804518194520092567657273596582572399948098853010359584960295837678338566797503174625632340552050281151073323907212361608874424723640295517219553530128637682827297690100927971068483392122672620128650466279665580247178322503757449964720847908834232998903074794401592566113444621221373638320578147927943509350109364534809224085138059366343724270533805213415709881799704153958810434953665308187509751743340941173331550778930678074185726700540090202635357786338082927487079498268990932408995760765504988411899707646182335324071073081449520267958922050102155198891152436641264273233720077914512810581047374562664583425056662658315326119518811768557474534553469477821450106454917792196983619863926882973587118154635722383284148401156499586401512296614896766068845797561858511047551142828063591929114429115904449872470176741522345744457667451305263874785798162637450872275247042473501365947466537973351777487814719532861329632283146992033089037556896160248598326733570059299467121814542787860078583122003483827271018351568714118159043737117516761175504189178227750905637946188930721719679796553298876701289931505197182747883780730180571240786628846522787681478419918358760598546185201089703060337608670742629184276218884762170204338684678141926375925051242743207687639434951803244077701909575033013881354454384919721994883184810168354398824982162623749942490477651056972007790361419734639165023031639745074548365693147651256061136585015536783728668197467005175788827811140360514324978694591560624215679272305240324329849060659271902196802459640169511289419772688334098409850620399452609652412762836830747942551995591098590652697350547140695305862577625655137923226833195823976429007727609429847516993214682346015110724085157872646751923072814586489339508707498984907072166081570286502610192666414947561679383903867194051585049887582639119348291548111059930410196088029935316891966606951930995688378808490673613256939704854976088687233797233624361247225660039935321670636224452435299035488212889520388328808907313296191891767495910093887588119347606362041129560982973204598444855555667606945264789098381527028283460019442925899497146720144579142971324045224380945754939029413040096036358629409048032974636234171799366619112840459553840591786575787569199772142772778598844198249192480989184644246670478218785000903396866274041367650537682445571627989904642692868451481650824537333739442146630495641210801179321937499405261978895088135196132674773417451961322479703161829305008632322909498333865769892043951444765535151823101544884014496974591712907571804194572947156784323178569040154252677510076231131517277907206947680157945822804254844285917217667666780397980676983423340271216073262421535319562679939235894226492611735081883050130919456863216853454962392001626487094913035552935491633783476980301911394208223677530544768885415066165791900182551645230943252525033321369220357364137355056296713961331568308107568454029169723597321320556350660961947409549608047020114680500950398826415552981119193932167124290675953723106076301147657692078849118568270734799409189580499291530232037176214996835446232660112214954369218306749345199420109078706663569421902126553597236374571401466689980961209887344182187724830354248158929215964659317989446010562618215454443224595420698173338240995278652239000661002381786556412969296622608035888676072520714935441273883273490982512346731278829866797457193993819705280760703715261047714546537694884161746207615170193508964041581799477575889343691824297650711584092405138935836340922330508132087085233166286512098153524353204384491248380455659360874869507739717674764823371146999732174863536588164734354656097950083308639286261947275945267872445564147737621617345547075994308185303013632292731115920528261833124654776591694836398400547405554689309628602197225554592117030023372964217815642171604650614513576257589590902005991157676132649946160417940132514558016680670262899995748703666772511482214228595633763375782129830784560778907091331594317167509439804739348663466181280479173198644330866118236806049625007282392183197310653634975963131187019124623932606073630387068824263264674763444636816139896578958464528888823721104350701020738397660551659813819722232300538861812431609748680949388396747038297859324311026279153988973958733785777661068295447652743278445931602725881575401113405201740613099847993975586334464199294528576649676537148815472659416420496170445781930113736368084499089394263538180998822769220820944302127562277003557845742083987490260126395148427626584527777209582490381965206371146297460117931014318763080331216222424917639211920707051030673979827827309655782913752525254479278840981093581592062828344999684814345153218127779489909642026678174545143276830027457456108017893577301491171101219877158829297256870595712769485404417068904279301063932387377906072430860336262366049244131484420991791543958934779224141191739487740063470765121050491349296914528329834742123826762524598247341763261498418871284546194974972314198725672090584272400451926064835074034491223095460619573169059144951151908246324873151751282828278796080056378312704411289500129402859336397569318600734048117534699687823786869552890864691820187615790866174352068264500319067125723448155521159514903660415338920239456430918990923839109703550453956874917087337660637358085497773938055478231862743079242725505704624941325434639330902341042570039271117564030712528306738608387161574928912622366487993000029148303124236530279924840589804625739577978363253366240249350113139925426071780940974415582485397403972422718530764896770936451145036945358226890322377146139009422053487148377499609178340778094715757059265999058855259128592652994535266043313058532350639958283795665372492244218269341039722913979049410132260648362486172765660721947430616541622889732274886068800583871417597833679927403727549782836046932656134433962484740964874493420949265370696161442373004381962000922239931900134642994487740591137563925865723248957681136463311761299331828805559258799330931886391450747258261152059041951825721547932209977951174855719668601789132646959033775112838352948137834579886423131330605448461115652177531969855504831575581266186053268833932901126868818603591482379214300386333853298212435237188027829439113070469395615982211910910725106895364912272937044841753483379415701949687834138989700305834482024005282025013852642868121161364997279033115502401020070522641474997882979714804469235916973698389218676484370132933281489017425597984890566418447210507356366788572396453131685782018975627390542497092219814437708416740801122613405421872425218784331578219629926449589333420141413090676716526328815629589047274601421663176827732517147851580357209374037548140136230675155573348840192116414501449790506914167632199739781935084710611473749965499102540513395625438315102604263111570067721961196234907727207718389221890397042721915903156045653121217801680102033958627580066844944753342531964407460294086686649130455508840747588459196608198231413281290503015657435936325129137769429605159390145464098429418677904349000359316968385052838613252492907968540212948778393280959520496888448519678276108653384518626131541532886087639839715319641553866292823215729428879773442267204639876501158754862850637108639515793531675292437662579086523898430653997697232778351972210374733096706878344338335564309078960901637475151946005787862908899667059020345598980931022944518991456483340072365804922451011161405024925040111483281632618098981547111679641840875734963288671527750728496699715206915208399910594759226874563593648395151766591081126959199957317334304931609803285033616797364307228694957464718203377875122410884551882671202113191848903618499368316123496590304007039193644714456138828231748300568898533277260306048165033830160635700931304560661749292637308058195599108881430775197557960798535620304138386398046206887792218918340653173917649179354715484816416726723253122587722167763253350100898607164879841809152885063211633678932708069169580721055706482210478107119179577629206483200132906713172710720135176026338669724646195026829187768500136875135289355605865039761934807572416786486178644244855465226657987847146551736417151749257014560417555674494447930268995567658625006841709049502965418336502601640965949686136234520475824422699025164002205006168043315959196865116208133912907190303734274397041140179579957674676027327022845628072541694518411256855312326286817684292525420319694312428651295496214123364876700120454621046881453147241198001683916852883558474340195150928943109172714493862935655445275362106488609661479999492861376126983144565435477817677079658497721334127573968398513404381955333445952207653741429968534814331851368566240445295938596344400698993410516268281496099768612604452214917855321749888647063517692735483638799739705614502394092577689931557257355764208924355827634828757121109713600526295986221108411040397859532598939928658796985942731963497953104947281861323632945539889666521062267436913890213523367537586739873648259629352651730809082912619630628774549798160223741613459813335961327490466263630939424800073759620498294737467769382420943780075104720513428721495365477258872059160877990778182692759672003251024234570999380066587927720753891581763202025156847340919971210716991955811588751284292695098370173979380926195028793455699632798693126894158123463344076983887858609643928378114308941249063010824542511045270870333195219742946745516900830578613190171778821316278364454914641401382408891958527978311741677039872899883137334128379893155029723958388792753189496857327761864896425358672384874383318874234537618750131476056485871366535063950123727287468217589188464339916319331286484075833387660291847959635414964650465305693323319582608948039308280111758235318237497914671691326536627272626561948822990092186917940261394122592638730588316279601979620261205043312799251619025858039204559909193844647193798948326948559460287050776897506543403968746138429080620818972120463297384830402638419833835433220363732969706319533105511480707886949374032335166890174926384953986467382258324778530708431496499082850735129535409301262911928096937890537377124530961869500581450544213218653753110345040189205317017226857554837637686587815598591999330564730265551641178005581334032287864613144015073947398509868899324554544535725215714952801196811303935092371928335956297568065643693353086882341296921568467030020677741099139620971179654152617583114015745382711319380464968355140873049146435800529556647966430984876105581952373363748878651142574891555573251232133302847327995520310734220220009977552255089088466687357365277510540900967439948578804508546682749854067269689591817992708573028943131646459717261372128327659353802008862726742572910368847353963533083551604397854098231763744291884049048963860458444765237675205858417987915669820083086355709743665163036090821447461771832528781621342762123422055905038053099436054590657720120940532580425854139316394751384535412711369860471153875317095031163445782934133089303274599263548600544824637159877941569383260497446376835810439619140265176719922220629260047861156367763555453409781529911962982132745778017872454038857932865203295614610885515413744349480589148102275672212304805679817143817948321364061940437019606696917937075437165779723055666562911149091378417761377220566763787452488470485212775738324924221031675896492243757766444569218179522412065830606997661125940998851723254852661649028641964987727103867740721671297853154137825962214998918333062565042741064879352841649188128301536846293333184769039306762276062295725372920821982582527977811228523697582432392981660277871129395640014913445594821816348484753946704992591023214866383426780829411187062969845343093877182928035741539090598771142984136572292160220352009116861080137096797026035996363629466639892333003587300876120472486959175422670581905147998653311119682845617460776588070012867279153100379898688754945752385571520554590629414799497901183789465456648470280018427670239476792429354164669028727766234793665117704348396276015520172454764022775659774965329801052244147638132921265440698262501738125347595759003433291071536463057225512446795128685141066932148853946511879226114502691408174868969507337798435271669870549668886661195284274767296731529600377427691950436744148996949464213143389101255942200471246474741371171629704324032840594151671409067915903145844724232813200805893405858491799998842508024152224065113161117393585937386552852640336922952599308003214748086103966252605434651535288875161545820454559756134157626636772746398803082056413924134764996104106305502818409433670283687765646557915792742982115206005677650831533233037847400103680292575735048766783987249757210810833947191021555379360795369004963085474168836886501771524269235017986747617154431873462158371782751170165944181308552149878768193542768034084909936698682427832534980674413958729087142869065409384975552257710939737606876584232106480767289332773581770760736028077576044211144510785046250545753625967403326947859440743579679886722465882288249312734036917703872868337567025993879885727338605211630108916369122499897374695226939593006530823394401602087282803442433781399872470496735766756706023707077817308312220519134446870788785277501226460241806749832915267799439861870977670236168800004354062668448393365426158596511871817393297593484478290550444586931226599827806723050776447769445371717021285049928390487271853189856122267707626467865840422804899166380145286063626641348831391631737964289669429988922377744741763807102870486021164366219548375067322299912112420544090912076100133330494732934006373716685173580876817995882626562556037909886431148974491216388028376205697440418656253112568950145808538208388491674189135435521222158426869954977024993182128425102030702437367679435876381918757098141596302915602341545054987426652485841816013331013243423981274112026882665447250133323045932916882534134262405107027702681534213250022939725404838001943887698397771689131780488814541647339112506524068034313297688309155487315163222167486486554671669414972400354878792170879530299422412767105460160736229149421396656734845956380653803797325975895949387879539752323138900426727780282859840314049138654776753962082484303241075765685499983155524115899030321335816785077026405491866458624889792868243767465011348019677551125609729312212299926747693002805911778501198871400226831573749019804727142403634024765579423746821291319007383062194505342647391346629630942822509344532483196192782084545516206895736991373835843309932763739705728746384084839476707985659266403313519505039007601175444747416750597405367886427465698048323657805776470723462469589571228734881005030966222559470962124119217502107445893269968595858347577356217264783260566789877599841645670290667809942105533845237841105727042275206304250661255782773588161383951519340757182754882290297157054140386463149776420614739723272331835395652162354613061435278775104095750116089717993051240864370560161027877671681804812551071858106911678895933352024567626680756468823980866876258645051060155430366532994446673726093693033522976175362279260891880267724784449724942946959193178116369755355840648363990724489827521226207148718095869394119129599093324914562830098467271317352910292146475669132365861257991909920787152581670056667423001437730411050251527525416536058526685688971234726873567877536860448800668968515659154247404050656517567909055346565002971988735003989046080340448454556215601014368039807841833672294201939800551890925344806218785543767791340099713415325608767784062386303449298949119529457103860199071809131482894558115736394799775653377737257310804168314248165411137983474284289756253927185439786040031900401607927510381256867994736637320098608891658562035432029286205528905747582201891700412778576850148133112278779832249096639710947898475842471048942434476815621644739040031973105136479399685257742019686532677142795175440299297080868334765605672540738023236406215658803375235820136589010961550071026706273097382147809274785006352183185214228200567819578093783458300934288792716583098529973468349643795551367973035001960212594837763092148893327506877271585174917503466216325554725137679431546844570168140480104116025058637883933575058391157888323297950300858192463377047010080786696811802078662961214027262896870892670654476278130398286303915501736447910731331652362387869773654111796254536474253490094920928023463010538578983424190662269365843481110861672477063823607869011677628679533868462445244297673011524139361929162446685051689809897192637904375524606896913227157688769005638482625618622675595434249247673173729236741783062062472043919191088268352714405914183573904165552087568052278264433238187804859571405330321472052166907553558649501730196572960066279315205181474762444157070141015508563228387862597787095717204629418920995248267027126986150910882952801089903728624239502854591373540975366120773792943697486435070709916315144875265066043816036258276029274532264642639771395090420522415345451302444555948673115453750539285259936797680538821152811846024738169530882916246153231099248379198934108265431558909754325965493252377721636803651911692947229561265612036330516049636536760258897312306386449834904474219143793603052074960487272026397984760737189906186341968317752266595030158899931567964930328253363800073806758826889827906731593887972179856846864751863182339032353761798114485845065919857306776373603150354781298726419409718517802656852519347449190662975186955773552834833898729307236947208921627373599240603097650560609263484413166283968194515110391734222817987795460138330571071243987955992545638084499814981917899921509231155522875111946539392588739604231404069542577020439870020551097996348000664180490084763969008105906330451984496661906268416847854571846175328146007724855815159642735465315832471050467588701941341342318699238288129384968111031281269201692232084970666399740322674159158896747754331981746823666302669379208520774828785129705843839274655810372982141204591199046323646073981151370815115514357562057831971194299143925774776675033326348264324985709194943569606071876889961333552905975255419675917147781449533162977722453048541019519670865295576924591494712829650771665392121862440473232466292964430211078391530208143523725605714019671623545972945741985733154721491271710404399293503243281495433467623012676075476826252300339353457585746826538786069233902727239694555805046507197811741948181470869609068199534225766455568982011459460444259510874064255776157549804076326819449001208949199057690118344956501627585223734017477563037866927327003286455307859107644576733607193730570242807626135619432233392564011296061622194814009764564697122327853687817777098605095681719768597013290078720784518090294507548272239353437661494427873332110325559127855214391837497407096274047001070049665866671657950204678466792691350184294235707367192802352461892130803596684483829973771523810745016247346456089781076593850394052269321709334813076926361520464091003881932311365588556541204179263085450373465107759250205665341857425359166878334945261820433758161191959195568792743920599329051424629209288628556752864411685053110181837470860536816323281258488288211980495759575266789249096178254477414959350039522580312437866203417399368995070015611729985795965739972309056441600122050574628486202350869452204260872992673504769897939099218123692019257072272485120631870757212896286718508590567452826944056794954197086091523783417128892074971829621068655292415740423207024644012258037258503505777291920168097372937240441899821155015559120245221860716207613148936251181455016289413264080839001460462802539747741405058297869245531790834859349165694129672372502542513375631693919848769492042100308670380443239103250509136832067776907881151603347233734064594518558689893241047671294930633605772187835454561702742601774710846813466719043208318571307038677267935741013281164144322236309427853247222663012325051712550028607015686717907747039862299823947515955984066060224289256996526904098386958961057605981225752112961765199498047719332547787425310462876053938376292392634509447992078562386382952263656374055615002478309854188348177752959553629325644664429611049050421457518308590076657068416885759816070065343667845041121992728844039865227997175659755046789957846226455436011654810230861409692082855096806380664988251667324345536187413145071709500319694065213241748784466457071268737897134560659465483251343916447784538167542577892252596236002780461476928122130084010737790823301415169931274042807350392948518817035092318142905107782721599884924407828587100366030652763776241432791608203847896097159864937665998887573835055196353501545509792512257239365293550618950105852741178122551669358621344778503206548389874276590745669679694508125322318596796323428058593398875158425265770030241790272395775464147146664283823704077818084665201638851886732952434968616600184043719162581575321456127553398066895834763403083538347581344573111099044498567046394223712508830459375154125898870014309869321398003301845082413658284332359410978498873121865673741319822357228795709234294012826005992017095137662205086571225174255301924113485624448143656270675632082146503093012049470216163802853895463921998027725161284664826419151974403743443148432878989025390330392354757784977642564273357464819044154617749841030272573396921270495701316696622022701686540126268025658632682634632706235292101803494084005865046057862550803376580370131867205172518655203072483934598912642560064876631130347603283029797488973576396162904698282805994560255118165259385455336144177750951451793705044673121325089589571081682436807342062905429891970548086589862786669268317620645645906262819718946594513334385506439406457795741427795971646651176750817518909531720882122740581009806828102804677487535525949107894724417019476120484751912778891597602527915446129276202796091743434969321863525752542055619238200351873087261971316872212347676880396651436683289715608917371160986938193624519401638662076163805906253041813009660494337218978903890879944899343610653704184415312906337709524385704916347601113571414735417817365043364366819525774955779447209505384616797202690233595513798785155642502093080913884524575971425993959952287304673668494540023767039695748220095597072230366177508804619850948944851159740000416048390415498619719040277390881096409581479050787470158134486466393839542576785130499510318623880950917776923043097348541574998230012861769938833522606772283364868187350755506167033523552658300099512869855496266039690878319103778245625933415131517084929447776468270834823307862511278146081691248607276062778214182016921035799494181417981080132787364562030274247985967157906301298192634954335142300717114310503300432786028558255240750953637006976893692227969990169981597281907072217977996174537712722223473473360843124575443510683089399876208390065888315112349531883589217191987470062832113475444184333980636417588408058264240920727001002927378201170888620811369156667565377431615821161295360093696615895488921623722845565466543722459303172239847506562777390590962283795079718905396807306197551259722298030065214469181121468167414925502899049013968050322391430191113003109518782468007236426470183892924082016990418825608487348956198098601151254464153698853344512902804510394341180348903416960361822980425050955451183511983363912031870969224287990055710367897744750801124326783153662411372401121001248808487395289164921079310646716759910316187784748190498747415751525582898434605303320588696670225225008919453509784629579589786764832450891052818094741369533801698098277664253928031602061727125646799430884128954196239633823846406658744171765280164847253532915984881975476810554994232472562369311398986764065910055436871139288991812258263057536326821282456257441417770453288476588013185202020642920263993410790999936456064708161972227393319479688528355668127038987407052223576876439685738316015163438163176795987673466392864953978740125992568729363739130667658737618454778397296045523706183034417356116404068593299171130062955804993716737816975957331091646542619207415497022243371215126757243228008161452016863372692704329911224538877365232271246106065400656755728986897815524231305582895822251151172740254396842005016225309424666803171984477212346326307964033223450186202579533769735555837340770546367379302968416357477550583065002216614282067545325943870310735309240413364166563569312157024456789189916207444124180028182333826705641183855133137053253564628535677585522298167149217592371461977604134618043296884721807031987187725879841953444221721259435797359013984188936872382957223581688751288547106989333238165757813387948891295854572044880701518411715425529929976661707700623576547077931445138155671267461458685955268506706245821772587358030915662542076581425687466553210601436565189674101000525125028044990246247106682534519115228771823388779523415644217387561224776455969322116165111243907327650728539541820524508528636083554760304963055579802905126111975458600955978639275886960433829743806644756797186131803620205681322799149841201513014175870074352969660871462572375228496286917540559250164853559760870990659119485244628418075662125617307066780767550792920417244913863251790970463977675529549817555531543808848844243142786824090074387589626107036826380072733993757013004526213208467580735761723608080301166216322868777289477955397868643985589472773160110861889924549363058577264684466711413714993418687535739356580016044226635581988122210637340176567427427046065591413694532158186700303376847755054493254739642002388803355611025097189184676911837591230652215912691001380984679290351126980830790370336087492576644049941356955514671557668821058657803484489551569503257541353526904367836726134120620561921496841914057324996250531868336258223021541936878989470718718445897994896275225149961289012774400210378037043176228609835862433063088836143395697045884781318708143002457111904446642095346591417057000432010131421634774534497976070746970458863551187428852939819269798711423227760169668625006852222767516642689688158055016035744375335565599306463264301876158086514263563767409706040555619200310917320071418752078195476345163160872732789493489375513332187284700731680776073763054402500949053687519108599864334407302593185145446821838488131928377084572192380427594250505962097296396963571670084802963256559663794888177343952638741924912514708494316519755205364632790469852865323974652029841334035643747037621894854314429535826644647977852673067687059836982160621690251358298742699968111973240487635149847575486911631054464612715091728394313507288954308052880966229003656930526865048380288009295211718335137648015820524446841072010897039418133263653479359340064533066663272139626892376640835550608967084084529614180584476782033480265657657175479121253959879812590266025669652140362474619766736576676733272840157963976662216078203972093586913373082461020549713089347934674098438872667115017457583766905542471420158221677241388652851981311048582759628380259987478145989456201091766861269549071048390554574849205086277367504376791792880701840412123586753230162190395543023744399722128873048626989605158885591833820884539580478653331812764482094032512601881624966190661730252617259526516225935708064242314549555264238044546326092947636495349162554382619356527868673343393290291387882060518372296409842433677316955198885332127097464842888917795699887986021746844493809848691567338891240076577902137132817526494608941521170038597522230840621945194944363678068222971141032432543076860279154345455419338074962301197175271893283977202368525780210405154624334916461139107984074813977701663583317395657562006418595080349455578862133083714128110275491208081618434121076451110178173792102255012017011185860485214404689779679482681871900726760519887127383483017039677156488298740901580884338048772202493306856782137222183922388298105021187164305306839848175991845547738076575074983797835666365362268571569854484031099518180939544531964971167656384283079387878525821026465834560074428649407320502630399718705583530979710344839257500602326904242625007093723265307813343431128892398906834732419521697352191134517048134437609897468293596972300674155481632786689120113550264706048841315599453644010947477417033970796624243595991069452693144714275260814785288375565990513216149369561248403011731140152838062153137457810770704602880297408945678135433692083098713330104169486070451940467083326897766684255038314852631663459437949999485722035319019582369733708711250958995553168359444604689197765696193980570036394293944273955350345206999888328194900502640034313367847863896327298757138816696049773781790307816368335984860166204375477768026566873304049673816797283452319807060323184060996691899046214601074538393569901447788888055938596913421321256543629196813755798528292877976598056332747525688316897770793519179439830101285150357919210114565997483256506994916053698572266284685822108234715079117535193899263105699280270595361121335695387859650019759918138253032137251518593650034491109875760442818837280708900342810912876947482896250848621083347452385043596598686840784110362573407268804302970046545007380905139073165960159731740662771097896921640868588342785064648432636732106745343055340768171625640252721488356364310830032992838284053086358095886449865320005608735380135837733684374947264806888702198735026147950496451485640882504055742226662292521562883228760239605161642731208603133046243451474277257429514628246292353663640517912223998748002073056410517816957748178037656785136471618259585011937710123105561844252496168734994716055291882096031428343740513157332060710836792343407909528951553192104338193654225429548741339304822106877495685429877512230555482289357979734103759962135294082926906814451362566069649749447151247906929794865257554709461789028559565685079683644586055403331790977967773760518792034296038864868996741263842091779576652262677700476064982410681871289162261961228241484973792688409845383025669849255630072958051125168272121219093317134333005471897423039328483789584013004258420871933940556709398262002893431585978110565035831111046592985809553316969881102061508313684520937941806092425816276153292220185702760498608276997969755869555638253871169103183522609794604361370422054394421985131737652320583525672860207936418122440859907051755450534764040395378349008809014237499712953688959073243951453427961458886785798117491670175599904601206110222756062822986054115487878060050979277079706218749699625546875707941395795794097361084489672671674275431622999429229922678758818074870008316052797343845055030984988428686711271082803077757613496661034825474449528809828933919578400448397453224050749721453674943288732301508585654336683588221346904646197226865072430514950686165735183588823127585325200401489913775964292878547303724718121891765253602083959812196103445290367392033323584463899150768802629648146133325471100611898044613256824636960455374920579364645834132329997217162283267483313320924870053275668239429276611506125528630632649736264359839866811092989460281549371685067525448138803671783988130106014164814634987262157481456191122957991481156281050686012150083252155924011257697443075785176260825194654333772431415532095203866055948240179163232161043498855340770459925288580030997027264122885978166879944455758763873214581721523166574435393384648993487330364926371445772441737053965404652805160752572134312058434136811929205273041467415441223873035186455721436145288603813736391504359122339632001566896881420020241545940651277610868019001387585942558050295663146934424881713416429294755354342356343198835482472369123841250123376894732288473872289866140648071628005310632988596972103057135835099290080302369735810515649117646647248150711707090030801092503853901646568584155405165881826325199540054835573482401506760844976831917039621477550237287546883816622091936642263185762615455302628657763434699868012384314290294541296297854144066213574489390658915450874809243128923582143844607843715808455757228672425871889052701358173010169307755078422998119917607407526311414287839154172452672920150998783870748362653962666824411951846378384172885129313158402882860574259625026278916042294529808820657623589113540993204538860810197922267137813586253409803373421587294216228001796610872208843365547540554129220361752552469115391860328278143308392309600605975783611748424548934542936211871371788466487738091405404628000967302068036422460424458922587987000766325714938822589347232574952615329942012677705903125654040487431365270740661332759829387061626742957895025061208087859979550960301056526713568444858070566848439500758191653032638748577052757577898357738120844443845195117781963763207992862273792288710190842103450712236470777767159076852243352630951658658535356597044465734373103802222527620085393968658757550399070370809943636190685809347554896488973644684391034447745959953308486676991192770596857567926290450569070741364777196204369576053307799980641762303461885359298128442983616825288966266877192499318986536463008458327363767154044397721232179009339094957581791561245661087665772387439775128270853687649114045005108847301966597489420755844489469971435793781472112484862494347229824356143078620343448433162118087708727221336558973800102888614878382911955920280559361470110690269054546811083622323157171299017665858000674990023209599474837754983439203580322848003901707111429026566681600391802060410154135598658313340104165761911436314404340244915270835873994358607485827142307605119495627563912377407039597675149517574931871748408710731374731129247597547741643446067737038646013311642264188540054849167160338549159059127819195598556193185877536668889035901337239814169383731153675379678151951143090854246216217278778070948573053705808775160152702858738082961070647232230670551100388708455271531355499558627473924905785694010416150286308380478541047626135306715244948875534065267112832192567110647275715179290471480581832863523560017405020451735342692275242885402337917081299980378765076752294792675995215807851566414825094457141425400272828106354566049526024620319744276464104632585034186150519970278406795985727456981831861236305667875687189360331063211805480519144921020917132221196225039933340050485018952577096338706378759822069291168473464047358569888019035905847524154756344236559514339042026204377841764565102477739492649461059228179477229651242558910094503543756729955827447068314585432377806933322834167034804889309348567667020685080413061151021035731885249345843564512884875853786069935871065855290860504798294534795380717085313078800384396853271381088931749290862606174155428581266508543482705372756063520308378175316452490689574263406497230543468570179318957928741794633241807147198964893351859220999176796493238797980549919296075008376119145564268394424889556018231409270497665885015378356304944080265705227963684507134013660543340777285791576035293698149433089517749151484550511628738056594840554219832415781242134876969969705455709339679481113744261825744806951190737671260819003875931316749660921533326090280487174015892376223184502181831880542082734427523472751616440203512674700726147203753503491358769226262963264120276939628363127312416934403780829016269998977481539124930047903489603496807569496462100921197099018867439648981042110942567348806568618739451389342615343582443276360179769536410795061412461963143602902635409494846247451614622708636181858576734987806088288691994490437417855531493578393648748887035113156473855710655177225331305764727737112488922560265868203458068328265205666534833554651245724842305649264828243804685325547768139340517867887358441800624267315690866618313232046473990430222494924382353618052884872396121656425592037071290925212643276920111733459912514913562497538866384644517157296911755747799781046985015727512270297567087800274783792258733252199829360686656643830643566294078662947866106120821789077288971960123217946991906033125615622906468228731725778360367309497782300622225186041050141559818528305736699945020784638389655486078107186715520573750248963211002220946355503448834541970390195715248121370522611247004081881939412763064875272879877059390460339353319911103747608085538631326105926562865007715720329712502470478936785772096123354055415343253321047912732961447094791823765157792512068982870833377762029042802205442282418914655770395710244137251697325707470685744495427428097219566653478416377996805326773690742176951083815884797441325309327572098537066019605159667568851862751477129015357875877147763659884730430316853671269732040882881596987580661029326165196181048063235726122546420550460028202709406151120771699826824396558589492973860981578493468570986126165156317582363734174556219094102769694923158491007203690017148910263400131222963428467679641993804660144612785190730849786587874246813511642603225267260064925433095734025393263401481041148859706555285994931165668874743785658482869203784613276659333542195127259388740667010427788650279123270136694376578062004964953815126691311045520796171144003362626590081544127889994897331775618535276291438249782563762285007914204492680908361019139042443134959257836391839348249215264019309506446643718923066566417063028848679342215785462739395693121275169887148588717495007357813578449420359786055653962558572156160445793887704232976055541089772193206227150304275135873272746619361337234538882091032196944212774878475639875754108462898272534882619579421783210715902372311436692479801107707464084895046104674245097134052137984301499553691876869379910971219436435173404375848549029183604984637162681747858247978202915738528599729993758800475471592640554676664550571287026584171164558476625794815443048892395212610450379310035316404267155613412935752147713121079398045450401579148514183554387116789120417129465924092132018034892142327924276783333775321423086625905140923033566610354382569984687450422238708398097534327135185516420358735226176329869708689033623728977211307660223505823730726286003926392886113322257946124475235347435221824092063966425545807101389219655720368737450092237290192705362828368372440274158005115871837640311830692741979971194115764894563168186890457457929850278719092756102684856939902279688251201042680424510215957127245326802635419901290502147034501600689014156164111687164494005368342278382597101668933497235283122321246307567978994150486557886130160142029277059467337792824821234681791689365633210644426094185100958659513595082325303177771858693166357213813226841545983215747888001541343579413462136187955886379557962827864625244627970102661514424185489250365094249885437405265408833464314202216017718015187066955392541688382099292032846498643778973231778863392135622287153709105616867463441002854476358012344064447467541994229634101512439140880420322657444178856595797753785601175861112938631095885927408583282570067147230730640560930813285065984464298671663555241580063649565410685674621586613834400338319622066711362872567854864449230779435226177057194146482045648206218901035093326748893230403201492488440394799140901127143160595761657077336713366810612067402444866230588895815163994568048534581514609856541607982545321143836994207318608420206641640453399538472643805648910544341801915663445089018265925848685499084045625852320655624664645256195561402593772748374394921914664310889213075175404285592640359555440544003378955980170708817807117273971643416991669230736883284110556493179833438746144795837754055334350398784036450951234587396414304517005027906372647641173371890094613136065220327301723411387599851385004422280373290127992925315403132559934086406395741995320112248390079374395032080063028096210980051008427518613853678671400441169644311480668707203076584571911240756960629422328291065274685161973194679408397241535128345303049478121403220538577957000483559534262160535612700291539689703163386239814941733881475277836851193336210712825768436591322576317711623815992713946363393659966282030749643895984780576998345964254330172464447518170067709886960289317603936656324083098758508134718458689541779836884458362899615560986210975500620686056536040137134291520410218991488403088516970372971519370237723375423651561838190305548450413797807559473350422166817708044574019960386540057459974061347088344851563802612377749447269541573702633901279747893317571448788851739019009780679030854296298412206318608093162155268909767134891398397882709645504178663566886341319332791567962251048382128377473726838968446042009357478200267859447240079948385429776286562670338072132138888121534015448491014321885824563948194803829865232443483797027760745686775601273657054825293639414808234404470570311462128803114208202256642640801181012030902460309294731184083827424966027530807567993300731032128424004541461007515099214251967752964161816168421486999534488690872993267025432945922308140309885507947842462458998877141073235145784005125909804109811689872885655037903599550094432892915751731597641414709476159632572056985635271312440650920209789066660988110735474905171938697208635046408963008569214467524677330114001040315013645643664647214368939432602512655860688312434322987176438682133803093830732592660348170041874746329964737085466725018205718588781260751913308996936712042396390771604183392310395238278571460978922276512507480490514867222388389878210235080504434419787779613769989764441533558088277270168704967447203250886639348393760838976554106752853546360999962613053044146106244736388306612169324319037228399527478041773275145182640894655964595658727493150920199046224552363152229776408677380200463964321292059424365540687145905947167326211892902608717254032289419416091213759813837159391421872581091177578769330962551035516890250773990877827210111963354996081552994855624167209651795650012407423011302157974692660128181312825773963504162705375080662310957001161447415388741330643000795130734274410564944174898845837672591624125790865431371625453476367992714684292567764439127347403377928624856631143252164052659229068371698533968302299379995988212481205174808907975640127738789019338275223918724793814015654629238364303092217992966209021032842872076578121558053657630990910870921827984930339699212603109454146529254275412279151653307306485160491084896002914196957393995397349795054181781666043505747162553407196888075544999008617760580377364798439589723320969478707655259657734065472885086706441837749877381707872771690925855323220278903817082712666144303144103780394489766201541904426412619408089629420644037172032195885152369795198200801532751980470704872588716982971746009033113300222534194544158130988186734878463254285801439220887611766856899107029897227719094758433904092947267319821239552128927730490029868596768262079850049767184314021429311381976574535892663770921149353257527271211313474554822894644754152336580375373777864314080441493007213582758604779794446639673850689219925636691965224072347737819847307478184885258239256546785141035218876625121410705531925553330670497392389512111720972754373840031034940526603515783346579524941088113082404323323435956253577127821583906642118175450920844322666073977543190797072029697815566738868953288286721008011294086781396404530153184923911135830453590442027243615408233868689203782284789054274417167914441810256157448586662216335108507061537905244640804650389501484599351638548259520499657935951049830534346468833498745303184230929445193209623577889437266184220015065233667802241541708966635857679310626220856408788048510995234595490601433047861661034185656678587520582404575600254134805320246318809496532475110048990222931281744186295233210683696306916148775803234581316660234800749452615635410263220175804694251172997946066315757495188371839916130452753955729258314799673326577434584652747706052028065284014176704366259452616006975703099461202238934907297370404165541476632644593265293440839158850801264260701092845272715611831597882916874635700260071629429676076009960377625002420665354945440828773080897553407535116632498669305459278179764356772390459092557758861635603009783675797620440178412764817585119000866533528102903892554115404224916548210900370639762516830105700770779641787206495395047105171190634906120276691956969934750762647403120470185065153945161431222043016279395491912087443097257325265334174782537809306386277499297845164877830219336349461571231299569880189758197908313991579384088017877047790592645480245706675811836700353236337541454490687448534367688622462163599984076794294797933943111079041348000118397763035662741750622394734646969999128279399996753200086409067487827753553253284009276756840613909326619929132843217096640659800259576853179002749617165533605052322705737651001004945992082840116202307639207261963162586816329113145041424659561679648424260486291248324216940222069266727058826275872940082525146175390282382120082673534183164291373983862654159429165109838507646680953753191833223839035552085991082150033113485398402979248423448678827490118898023710857360011544398212977830917108921218838671879466973899518718408018461294422773067096091474212939382123778849725026802398715855858189361448099707792629492194332160744651882422135781345028734837066753203567951085962546951709799114585890448075211233337228933505448363306920581214523003611255641148426953226103284892280254015456338102735354834302750764181854518709176083475508507168257655629616875846597598290758012545856403741702251948223933252915279827208913938282132940162955410560218781715526107365392536536809944302839409299264400544334027732592888434462862645625668486418879590808188828964204162845254867718523748614408634743769228487653837215243096664526134562607220327993623862893800366814553684994831159082957079103118991278291097828763977456488596677542905696312584639446929654144865465251778953435705007128627819522435048956765522528771465582331573677047689405917265507551421503394485553473267326790451677114424774835212019431130830544915543386978745083517588234166400349926515281255380246947297465471366677608445342036158743526402399545695264782136512746636752502830789178537099986503150257301719011608987318129911348069628501062721589960777656298615517201486457338831972830696897624227130828001339294641387184977315183100386743427426015678170370934182057253759932355830419941114802916742377487066332504291326382043237484477233547240063461798485176844218845083351811293446012198432222418898059000455735439783519468846023890772105310606507103218279059639245722944594821653945382040612014900726162306692343816972717085660455457392552895417325130958156911228518369482995515192366420163078875238243332881697099907399017379908123046401784438877384963056599061689596839935447777663552870968125304287019014414935363416059872519891525149322277076563396007367093916059992120518308361914672245862772934789666614220565417666332581123656555591520392814412381584838279143467895830355302739350391004657866938646763274422304866360316909628606708707743318873156540925594841409688500106720470766611009383340837881839259428016743950574587663824223414472018132826323943632452101533275649943242625037224120642178518723983792082349551920884145820610752753777208691781410407113613882751586920930377101292517070188963910988338669411376990668162336084334533325509117481311471966664516040561176084508760645381711662588149442333871969358539059981225212134459801092999281319957104508813265845735338076968714459807783878253007791439964574551729619736114599938099114399612420401821602587403502276865522394520866212072713871002988363534041673762827632898114576113480161987601110714612100793358952653042238463354297867794380576546756694882653556457468846970188671593786327786856898403484860806989223611364550710476208601524246610461925435278501161644491726593502536243517794805409655708587700736722752963737976927104299914516998792938516447330037071809572882870469878015771876090965928957211742238357791822571185732638990770012189387836454622211297243751446345382632485452298486537203707999297174642026852593867048393186750887932842211600623548532174352295548223550532968365426720757028498574183886475345858033197876873383727012749386299583992014731107116245419338799291391192705144129177167884061221478796827020730392111963290862834652916302956992985783909013194988114623206512165338665350419216744596066174343133124636792832437383066849488758765781519483191840367585369922592225132676395967734348115279702695365221065092804088867384168434249395460051939876994210915140860065591922275669675687620265627058140234779331728410803376967312486319117496493804231212752065490712045872813209235343575040661241969370356904177027890509803242330554559985307695681481517222824274421804625374791215540355988740340150683286783264805524922480617093183543351259968065326040177671597460769076456191583170547713647229096292688495189116686435579396421403935600123626839832296454040885088253860353715988775347328478377342257815549931515222615757719208485710271437092002463815798412544113132392171295297126244819041501468278568006751929265712657368519242033762385821788821645766733601167673795115247246155801014178545339517018994684009279755938427484647346918118540961659962943424590292330920090950673402200855316666158383925781816925833963062552272731989636797734473069081877627605621380552012606911996829739469593403450457217086397620856120592492578470150007439358174300515746570149937484541036307565968371275697573446685477162770368091050205802917536808928062447793184192345459081356197206223711070708695821291830902813226852699360740322408784563363680665093913878397286013809168186967398455669930677367098024412014013628575978779857015203775082158144113208030260749105927970500310928709630312984409665072155125639040105900022374637557295951369404242055787159018240121079560642268640699521826461303378691370958986987497911372853746379462646224577409353596891255486005008778896508594342774968181387953481349870775657160884866718542112832474088503994404594193726344177061159498893649700191744459675931163653780013548606183327834405044585083163297053739255929335667272020153909466432713260953531268720220360709538755545807587763289467715730203117039360097282976138526129533021605133864773139086790008148397502206965155758515814315311938430378353388074078666345805180354713870523367049163924661375034251803725082924073553953073489346426133081844550296855113192388770883186275045266971056733428503539369060132238299706651161328632538713300537952602423044995018881509436892678566469374164840682302466853625985661809141456949123164822045600675182880538229629374588948449936401202118208767585840029701431230914733043734943679110576903774022366970647180144437394858116946451987786808725441461777551508190068721655027023319879303112790631285702027629352951178408719001588620166119334583090244598887648606604293082462261363869737479283710134842578734406889813686114577593846148057268219340773171799916092128400321937717728542258295022828469129616761047152907107129235654531449167600425193128359185108643213415091526113926660284508937908923786440317580472634978562595803260511566422019260131196879916913176073185837853281793809147930643226641168259962030878435567086588256624846747540003706619207198281761850039602302038353423300794230553653490494391183358200254415819008739452014783214885830584803647004140549798473010839934772849069079423717889159564273098866290906709215553406856297887038156305963484085535348346919102562638287097243665864628324815523596182273064794689876385842176036170425122561387542380118766900434656897371479457465079136092546720668570869336118863745102295440300607613655730764559664623975391885080786035643254320670572749492867400247011984015889883044627066932814223299844538922886181977908920015041721206097272590020201156973125291389459564526441353787405724028494761088203512477668946163414869644790092541674084442927542320698589744104592385368005106188011221192018827552434282089915201586868399127207409454627632120685134238113456335549806248156283916416534916468631366356773446098199963863606105938483044441722132212619915953531659992878774251527852914477741093188162544279939595450017792622114251342367423499329882044674537328010139321191394844951172585364117606943240788851263403494690218347371772026744167601700714706721999672693984921822651996720661849082795603116830938800734075695724223452974714043556016577627010657096241950780890863832403492718218985803515097010488098887407873644458418857493342033514389828358327038484388037610742090129532102127413133048486135083099558251375023285100973323905109894335322190655909817351597642533339164994583789698118620311436698653511129803749524782863681190454965238402752187165633948698180757354253927227001044028533416708853686686622737992566822168412253619632243806974995700689672025452022726962848766630111323631610142356444609761407420908373689860230181865099484845919418700986691114041860587567636680858689998894249895208311670473618949711597374117726424725522546293665989603109817832684243147669121312423994985552807658031956485895628385161932901640291053878039173777517965648515744106284640640210407477081205532421360046466955155522503850064816304524898070806236515607122534925741624405019596514389785308123095447830006653280384839962572483306433045749398870193848873575123829383341101912217653852249877174611081089750847260822977440498876487293199753961779054420174513903937830431733857869681164985441492446501135977764162948122737915000676583991035785249408327978868054837515505656894584329964541592737630509054883520217759359768359050015479806405093413567600989598653693902494135340512502289915653831297542003900715361785721423299630471807814997017667204009653307443629068216462665623891160201256964879813242550885720905518898868995048478032976170500654503285913126717601929006244220692579348442959450481423103018857289791348423308211261156892859467284739835618911240549750331305226333734832269834381853845337233845456918706132470817086773005818895889350108506799166707729270615703666447197142760596023625478856885787422200636290592798347743693058645623494642745239912284294045019176109597454620399442633991236544816528344493160692340905761589128537183691875780673819780091994459916873324412372055111601022508004892686920903613500941176192433858226010171583999231947857109198657063344357538454135564330343484272372066656118297995936049607647273316709114369865911155078070667729973412175523959500670842521433536493221364819745104285807679515858840384080052763916893858245833570172944786774551406368187462912695510196711928099339910188152152340172945760804515945650840874537999695998227669448800310969141379670729365204195010915750913307011603051626466924715683715364064564765142192459837761138663225478347528064227433737413481546435664159000236544855070512099832281193719073837726099480432844892272241532004779460819917683752152308434346026291305312520061385309615042139338964822508623940641928722278572106036616540862118339275034949807771706799535825835942852489112972766564627017150637170673568374851392157453106845594281748834178070926884656858908112140219150199801141002143327704581614064956174163251135029196757253416853693142121046769728929216274340231858019458770400941129077906793807406409279944530393073929081758924325160022066993342408315101758040967144679795673774641655675772618129535332414436758850498874845046717744729290834012824907642485316161763257324045997505786229738285229206024570259799769085758394746711397029040596117822046286533689829149704831634375054554710220929881480372050884433032298032069873067091716647681242977609786075754727939086822540694657280851482897164362233633847053240711024469582099703782584731800520416422875877489949318685352150473461549637941049519735844773921921066905462469923495404442457842596641993569680804262760835658192334912502941214978453689332293029632978760598475600777887561895725836423418465230115101983735575281790146514568614823447535744323375372228293065946961708611643695284238407088767300377593044961546953756135880789412054433481540776687971481107437792068875989525383774315401903000260453698412722970838596220533310081017048439480056989364256684553465811650678144339684448920219078806630079117003913095203367711027333498190807903578836461880816475324006559888324595224485449014042625663086146880915323458357383706235909531255447556124382829056470287890709759338828289267419575304882261138936119566837984164693290195859851746764734176936324868081815916496584008037707693726536533972784798290481299528026930089280682227972401192487487128148125278577054566558585173748750348386643102400328275488541282786481955674241408355103608226382661416801947735558114436114775390790433711518550712988550081407924903899940349047780018677552082304356888896055148487823572123728134804230853314954430073039028141671973393905455262229404267979192604149110688935442891825085334308468007167008202135470164432550345501942028121558740023896160943703493207227668705442831744014600667531595338720785236451072919400566959049153896970986234977227535998784539210329849092605342982526065234157941786409000842143712788869055828417864534824158292122044049960511481167351398482749085780656279416468691514734973131809409476162186657353934897651006174690265773832198850952070053484618266112166283185738639715908526171230080036846883020710199735124477569878586042267122635860265664816880910036920416739424723709456933264756265202785936591341988919247593046815425835275699285770995822825533854392032996272530762227583506609613730977965575269196048256769224006675100731186778481800446593543697372938784219594838907659182252432278108245237282293664365738362031974410843591569722713958326331457027087354242643430984893950150605103318844628529208432441021416110011404225315086606149617037035417505264485620874784194015548373230922989564186947504476640327057470453525965531687321733165544024937622686379992696538702896003456594616910263132737262547330294311948168155648234900685917340819375299856396444133185655908538351301368029624286234412567608027341809287156589556660248491324607169468950825264307794828665012452473707450753395859525095692317854776949995441149020100394156836213917438266374834992278145358224330927902432072628654489212252452754335798281884178682578832463040583081763512665081051937929272033297266572899568175987624431199282627065765921617957437404332859599817107641670584132859273771944949578204769022989502939821361996742318811263399464974649754459865591403743197615147987684706621399051964353503711655033023791378213498216403084072085647918975018666333738824272154014703450166401419114233626372422839362755865332944056097264677844734774774407974980019297395286513339784241627728354610902757063794832957520822962660375880116815934361816849995868085726865599731113282565972179064875204325756170003314076388850045397041140164988383972878369111836857913020977695005004937992032461452761387294704447505196889249508787931159129474568633923494028996514461324223371042380531823886935419607555011627430118285213539536751169254211982782373929357671604578304278641887374028362624271682809291379219243055160769171164216444483657995717354795470006546349713290603729234774099723573899519082061991756051741262508799692314347487149436543986780950900098295172596196482214004424315963776136724194620414888289099395711418858191948092854045155338924109653666166056139375157578087352060010244899624929463035095722734436645402509092292749236331059343502824065300899694557046570058549945727552933411359420623590396631255442387168109914994762593293497564700832547921115586930564850927812893965534483331028043931293344658261090540804358386144789639883578775726519504833076990899396897071759449395646161862007370904249287218941433630774683120642007462085132070241734005679284287083687994245806231575991136094132257456599229605753014870621684066819711375869955447041769921440283734356737880420697441271845019850383549648669015833480617124112562669626172973048593951157956789458030454217242026698875015516138298051525279087477537530930120896466358350843273391620846562035957072662067645675529637074805788282097905622395273536438786537113472668246623160877895911325073542127818842559753592360807271733430396721352801391582620954509907014824817171396845972880048961837138558453722352668093275264240340876675587606911375364575282944342250014488686836353737893708508353675308337103572093406440469509058491184655118155054794209764371401676433346917019829360158223933889654801129224925940711135983970756885759969405065044582086068678155654561449329442142566344532746830285679934853229085810897487934258287004019274525898229308997687743352598161089003697911777954366902450318067008983905994452423920335146049720188017941406399452831678433704205033907827758763920121024682016116375139577764126121674170356194766064499626070499430007834879347258392026219367234126691655645367464215446607822444295206378353444861423624264013196020098615793823589086638479743719678983972497451039403546436964422777661762019982825179018714143793673545091881632146545574402547582685754913175987971142786246818734200690413696338883499298654994430633361939451251929285414477582704548365629241207599133421439377669538409188140409459817113345273341036999030310361001654894349016108636422591679705899528323041077680491445323552749425255030614378501990044174856771201211585536827569618875596014480000718957597183127675870719684108814323035633154831248799651182770490113609984372482920603303651090783804548801069346726933015561970590376624771622969427720794991690662923299509054501897066301699770533316151798001264519630960373717696817057596513437968941093536909819788380575580637468616388412159635552812854452053979156700676792286322516016080782504081427770675009054696937438887698885390313212975316540950702171306410183158417981021699326568579400301042349729024412003274018710344661479197035584218483314763348004071516359468844615897399554179983504035867944729381174788860765296847062263083563007537931577103063542881216726866267514027185073030180022585409783164284603638601829509458046463739956897052438390503799624862548495151382683382495204742732404699095115071402891507427688986328829512626613112580329048033081095797598697588983913684867844666888033390438377077280584528596284530151251714161768639567053210343000084611901589272438299750138676945198670652835386582738211688271473193817638003383141543526418038626832301371236502584862429769362825601400948035413803499226603084175149660244420931872604753266016321270684697519936989682667402983943367940710060170857459030499195637416306903651008825297754982240500029218713992095490021728102901157318109975668932918817845312882578627785352286740500231267098133845826779693689034747239613778355383565549867375276783350217113178202307774331528985842836767500151975867208364871516694858593986791872602737680322219404807776732582742716540335066350731726288387040751088523201312981016718612297856456508855234698553081285508570698985053120492119079719717088584903196813783651780249812177558052915815328475932987003641680625449653159760065814363346323029762530111827116522605186812588059481875550266992406693305697458831719836665550355540698295746503304010574535084724476413515326734384293559759800513232148801314864041092337287922876044835559277348683650685996398469790317201225422317403160378711766260298548771932755642409329345215431028168969622287147049163407491587583380749925862288445683431378360617035665955034104871419584643438382893063696737547692954426315147550549221616240570041589358217505852670903796598547312412617444007960648504841511238303471287843739179131779890494165946731437963836947372889731132126208635542782464087365979723777048258585876122931668874108373167445646975747492535997470111368484447223698367665630524115861455094373348899818337207734804116358455643309359423059086492578704257870294572548308829352721501841511220963019219483468119710240691621479691540813043823905970507582259348534124827432438689613727125745907818500783409469838674165687474666196993069833755681870621351346178340102032765253206181394486701468721740516371508309789734726202380326125645408988799142616883093335837273032452531170198751922778309603001083389028056147755051446336593891715390367840282683909927576439042204284309347601192275500267879341146506578726590277670525483650557327901984733644381010175027707428869120201906990272417492882797001410184150433963571481548092889569918993043840761012048827429549602573212555837445387415644892451721393266907868537465815773307747475973326983968363750533683946553586520824969217365368764793356530436900659979358024513382665842058082464983509474761687611158176765199078948523807748814930885696275089123997336815596578599645353527809724888935371997334227235367014289893649926072753146750219411831568981659682274584219156127999709904604603788336511127525723244139216303693932209592077332522877165043548772211575327727791993437951830167312724461189095027704865192118459764916281553746448691982637820654119825781644263490226615579905124173618477703959947824906881175934061170105343810234643759924252763828155320212564059411343049354698045663053910497245445121127784218050910164192337099450618704552719649463711241009380881806953334072828645097699119209874049048311499652663473467378677959010744885876017959353808011015555250173339895470080720271003050252472392488549117145994632969151962718622785800892341764598073494267916358775422494989572295708156377596910442039331969360234356620805895002387840061691055500660198063325931874513462196795933955826817072920986118703966137762628562793375540896020396343486010937519656685353095844220439157650148560124706354833330133941537160809775325059338916858472658582918398951955790483136680776522728499818907688605685272703353434638727193809804427080421860986081644865931032015072434117596395424782182688061684073090494929824689771875940695805118008511328663468751621150034850636260264042570768918631144111492121168410008895286553189123409767152702553197159279488784470767001258106624815562795141484764270365402767838304126065218774359657493262710723388603818537726052644194111760464490257924783247277274871961217144506162571759215873831650381518823127950135055131929670862576655606810135448627975374510288064475656025840583804786539099476067264848868468161063549835660280207429151632066443641400703827157355468153751216262005005185062477803649679526202703345078354282588800666969561226951402804139267381647292970566737585378374214706030028115213319351069501362298543569850698758027918033503525292898829715199429544242918068844924333260006068476590441085548864456122232012235180305097124247029317494491510480387324592185224252037254749043134392373537506223399678900068554535299380071444534693682076126362501568395917334862020126530321229998442197776891010442375766061314138850731518112425936398665028398297732811348763408058945736021705277580316181275965951336202033796489911998129135904609312994928656262017021603276249176300405903171276254125168439843014468591072958907747589778192327929543366062491927364619749469191473094977227001764767462975470556266374788967356933477756296556058834543503343508916545950293770126749961960520269724024968066738434299490335142405511595883625110173511409568918534965466400080520648146948701634149123026385908266770171372029378753163827457224011337571367578232626910896352457040634019000621494226120456723049799711267804518205593525105495925190959472153733845983314234042964669361956142379610693400712914324850485041000024694537715725186132313105125791967928136329257123214849678601361543656617069644885697146901495305171703444984132468107312254623794243868297630394853972919882206540372428185158676640326024630206759363393247932298442964134741475354446157399017609941317808076956377510746054668277568312133627618829230708117846552763779764287656728507846228025430514700575726368207338086191594632426532775689807456491936013123502931111956528174596133866929561699460656695065365765669847086564952830256056889334603641791670048181995718599618742511723434535719537957239784934744791445625175054646215421918489355047426029509721744129805149363166426007843673901617893025693042550612650087072262288215850961872699253481970321591710245083552318138171634522816911135892375735546138098939739909221927725737546675344519945876360207328954378630708715695652168257019520273858941025047344728803468554886075938224479441944705422981770531285888558698127551331117642183099347219096007770009789411697653199706612110250270338906154048905230293253222304161852283899291089054538735005417921324904964533561825150053540273704236871192987386827448192319106312789596296739901917381020357317038814777671120362455177624004043764976884544728289952655973112591367322396210428204832618445918785106794253109909922002042456108823850417453989269211249208561037344442320102422394847043165145362042980095903605119087501579633275744568148215598631118787636841511951167330439283046603485044637357419216199896717847952597640592436741393587692349548886881244755595853238472472869676503689620805922408156546120631814279570491456485507201995122321540694019133096261102987524971681394400419665286688131888162462283739258549750938724211828910375343439808325023279162904083953379814331333953779251918645382153273014330170478191114811075883983703527316590105967189338576861911343945001765777086597113711987412070081680913949049794940646182017382079038742462932873843191956441014019056959455185756835582775258270699758463337946640853241220902061884308286028486321096785701723623934058204353684035717381417018894902303504833134117501109125296744095101494985171180158475658051409383262365363847231072100218737613539926611230350577619341244605463605785877750436666367399681853836562273371065118889130812988515304540358418330529910434866399212225260339072708234801243526608557350387756299409343628065838837008364632639125525476911846832710171231939662985703287773962958450989817792523208236111406332431363649326669587787252604830810238059791924029467301856859877831819251311528513110819508949893065827881315217202906472195206069277105584026873449232222509702551456363811979978329148863851910745463636644896858729519232706714062137149138493676946975783888797083660476636781615670484392646745506888813266846060798004087505652713887517005375049267105387106211206156801476958941416304102496720222505921918244485619298020812977620215364936077200761530834818575846861489418792403946923492792750176334717049560372451759345639133097241914946020298413424461034762020568795643222729331837770924544810561844800845938009645015839378367736804387342822926548657155091425844048947557442870403892894276428347982270247766763781088301864046502714634697252626049149664590124240619568150075447784220124447642728421813979692958580126900197397759252043545614214994480009352760302397478307010231035609354190220133443168158231715579398457961683491187092625897299767178736285764803587557127172221807269465455423223601086543501975339839286277892948440892705671597869129580187926664376730067331374582072506199453120772166785065998695905505944962305939336727062319127565290067319448415085944483566923704454163002068263115800841758690887696333076315454740217871626550092810989137010259099247053069546388841831419786978623432363033844816204239240126261781626526840988078201060622965732151487822636244544124813357599636189699510416733048414577227602160631403215399103602662976452681234671902852341427100833731221029190983447092316740090131933392447925176553889829968603991877824791617960072910839298787275200298931806760822989336828588078841279515148588896360081561953517693496621900105619312517416100206595586854750255166829875303364723297484838346220724224782867273809883615788855627918290590980201727598901241360822442747288120695110800429661366480722259121571478285123364218019854417189583359672320764459314262805070805534492109778372554841226171510578056623647432294572480767746104724005016150448929849238626056085459002807539272929901050398688499250293534820476537202658441681613291093932578654918125001391683914239895980368586174461839526162675809728235727301995946350699657938053097518760767719432987705697541499619969817454241017467757686492022805384772245064079256097402591460091561470736275765569738331915084479915521250209863757961307123643082112946786461969143024593550746075341409843076798381156597186175939745654125525424482949335588306182206961900315756270981668140551000070373817013215747488521854461101733578210138167288759917010106939136544150740870243933918503006657103162578525681350947221533607908907682249273227827470985892071769321721129945766854300598620500527811647849295796385391457926138332761727917677236435625674452447911046050081856215450693248754462108146308992181030491032615997959060680945013821494117332039650969754624110178970905558273754888552877459574813195457333349042619047386015521684759507850943442920239790701844015292745479747350706173368041711564573530987554017375000543358435565951872276683269115470014876676323441016954173691347901456987190376094759826681858126770227858453842148458563645868997562914327011484519324078977688864013291858287176075941214782204872408863268865317901024488703558529372559959677330152196683422986009213777586840360651520659592433977618820949427807818301483975231737364615011344943728476334001405820246596736225861970921417485299772228851445957467555731452226621048158258668450395746572054962442947285539117620788807351187077950166684984473160174612763484169949706106967630611074765797586628013962341872863173631300401551440870346660352555488974427182143337300349977378189188775389432529490626420901684235670682087057299567692882077681719139125663845803980700672085510646345562465555221114733628121443277235462231630213830226425727386397970240694988528761519170689610563387612783871104507124588299394191421365272816606431450708789817531658793843492937792382932882956420563906632042602959192456646091346543393410213306890358430234270931339630890820421566183601058652347097490985111092598980911911539126005429729312496586747001628371391525257348396216393806944273929065369421645575583073982294302912203617558376296882773448827340330347334620148150498829365709465944965800054852089886994472897020093542099327979773502552256431557272950207209431660178219828928671610772359254005499253201276498083738823759044326237725996040791245618200371747549459307923187777863374289130308281273135382743626703197497130389052465731704069082034575891056718135930568850455106071203661401936789342872543585160412557178040609461520846476692528266587827146543020012173763028379985584283694163241472687938224452701998661405373426650725946479380313445501484019101434802522111198527986341150043138372523590571977899602449603071793061392502912524560009180798549708523623694095436906553031846670248666111441050404408890758731710705874718232780197635047155918414625858287913825423468610577330765485304365389186737753439581651134955324206758733257629053126175597347640940988353888564351926200245552494639305244842111369586473857572717264966875799315901770407630142682050638525118770615415153586807866743594891876992612554387541506089977826957554302893000841080011999059906274676628357566922116622928210030925430849709154482441632471629833482709504148539210558097809879394886462731443801821622950870959927874774826279017984244227900943338603831803808705242669449220955225356580186200483194929964060605181611563890950251106410264101748903300114824754501023650941158205622165069486391104947435280678117643345490953414819718515609893930713136730074324401363819826734632962264692205750940676281323100534125456600705635316159307116621530226025771044612428680810560047236562272061632862414501470159493484978102991499242941788357046006418269242681083225705195187103693611223192865651097305044108927816274856578157486270453739355290483996888140764987654679616511306231954376110988459754460232358920315817036317429182266491421337734729683441026448548202576292689109994514125929061159275862067545247636489240052095951754144514695830048846457577182884726836861326936956646842156761950554564383578922922167866752845541856319894658324924494787524883636309551320367465373905313470651869599003566066848837219790601227415771071796695998621622831302655329124693885421120272979413073333919938571046800708847693731944198076114914131887912331997024923042657076219127143847957633371001313868099593292769122952574639470233881081554025833254593374675709462514924046444448566400412310672627345758047894805807055011636522876354928063146678280804730898796363350579753253949008765036687113364876937444628524059026330579730668586176434724469348442684959533976075320721202132814504062627284559793140443837196361159565990342886867353790621045583944217661055968331683985527433262176644808419043296832030464599880989577042111757947542863865299659227124361927296388918231015068227791339926893023861568640061657824776607591417202732764208426051806600693571112423335330549286202691059713616491751529334998017149029420707477882902312751097424762744655817932609376428769709452704969674048156876289306911796677558529988340694503287026132884032909681753880877521756113609807945840569268574195633680210731341095241543525306520308097150023850042716472325144081731510889153087230095324999947883300116523702477460605933174254122292161352719917626510656525152956103983133554480803996068327091378617796071850137565461756647571672058005366908537675108447475829736611745665680930864960400037645394298496880268293805859519914976493692689690516375726301938194067966733849430069307122028006441220744575471611630567130087507488408347341785152439221757718360915185040213943303090345305595599147121498788578825859003268696431410379139831904731209548888455793481536263495657997578095144150902535115342756698591777804567111187753734321746758048615714830807387542170099968919307940531734781850427372114150101532844288184968839871433049371965577849566047008739976687833060787872818527113791643928027432629969436662367170278722371682211494849717624423925806958694150133708580423857281331470970984981522035183895035868909567316062204189485864997272487097815190436196011474929185557919503029225254025477084021286194007951727155971827866626949473744948218812517700677271190536963223349352266578443601343875824537029916774210859042655689723746858212747796440315908557001177083662751086719165511291155721114692926563112978854799990113521489694093999464368576156878197340847549332161020083499317707225277148624147327307130685480216760295962623216138873950623877642720124654307880309618910959623872694618847495518602576796601632903234623212400287776916186945554077886979331619583187661620639686110360260080289700966096260560051058778201157928632408634521139122418382111820885631323308147263500711006088101571290354071746429468811176389034399570932480191982034530864650695964481418969226632237317415579655513794103573331957189499895521805126802355997667827527879085198533445222265392372975703661592879785740731851992990659548062982129761390715881942712627908941119839310131826233021536801961087215323392382137823049985830158553082043302901181263872669054949992174173773348258538078668131293642937433019552214286365260288801902680877940107759081010239725997329754208032674076169683470010037345607303338672122978962039824382946358865440422111531023294015226730666182832425741870565126374210495366800941583911851483662139985871501449444266176751376101363884573936054180006123480914139244014596950362490486582958184773239953938973619639046468905789401580048298185315851639534298660903975531519331598740250326785803994387322371552738028407584253429802318908346192442524556675847985975785957940383685766911056631243221915233533138766407971315592094206636143482464149270923366056162040148196521338002612767637877730644394031561148088671169226439615976226957753789454070014445984172511198170263294907295856471573742365609525801252892584635900465815620882893894857153780146011771893725336397144980146657895363989191278699212385455429106616137627412103663966303510833317420967905860201583725371713875497158555025769263272834416549187949796884035520332434568171162473250123001780716766552202557554873346140515898973698314090596586646765947136767572061073133685236667506022755737562802109636067115146121594580698846568298064816795664256541619648465373633892476139816867095585929935894782743284763571197373804203877423258849803193550960224526632722249068559939000423503426029752461234769304704391692938553141976053096256434723443355847593991334086379727262752289026599070465523788693564234779388372927323592367897145756107627261545417589767252079280011398587888580272775112887719827839014513437767946146345974938604690032476945400583656662350529247978327228177245480457416787869786109705477526922283174773736805648618642132861858872251313084990417235768400796152661551050734056092600736881120406596854587337207211831751818380067372185697356189438163053020193325536431075040611614319276293312864146665622217354069734398643927485750490073374051900151981578510497219240056878533038737592414408315914896252217627616230703461886160647193941560991284854235979020307343408617857045635911639292437027099616980369953148121417447185065833437401562411322655671044541949255290533246148419392380692053894235531388678590218418364945212606856546066276496644862868396497396814618804940474519764749283377413417346760608230324384389549707783266710615732271936219140095992426048276967523552626504226999018748030705265058584240661054986171363067877748081011268693734317593981553784722389716172881295499232710278850052875738018578871937577886195139054476385182098844448732665988712401026466034754864590957153466198418033133986164506067694841809296183063050609672759450329334515103876591049197491826235895041531587032378149205275188052570470995644041299120733873347421899532576199841042557589497296435316487087307163484349091023359713557769946940504281530963880998905441865485247195147877998652933950243712669534585332777665986352063076755042882123520564002879341090156459971456275066443444847921520500013531427927119641419852860366988846707760542601148475374752622979570701032358360059119634953686089910664313068222448071550246395579891799616032648083117634331811711087683102648793269952218177610895615695461931070272550346789075483283484720488053471965089903994855940045232928300817248994561162735873080006970301987735665097100272810538303175743548495724937620556145883261881011888182915700972690185011216521571170300213407342737075067207466971971542496355537035511339981478964609110803381321371102852258020908352705487238071004801316215085979312333368435097695788327152172255387102491754545043355269772264587778854571629194330621810462651421136345402938118319153297884884421251624641031669856901760284789022318005301718784863591542693139338757629051319393791293528424814151674336602160404483330547281630350488570389402569449724509153771665278418416670797476928643041791421774042944400707125120183308928000034210799401981246570769584949302663533776006213168521032233103502394120350978532761584701881610777848120996576250636277791108796411116790918113761892429667070804981647220594889045626778072436698974442222272903484342510919966710344546681619834910235015937693102631725762574708695414302035780603560523972295933539625588553641810663039525752623061253728522321065666627514285151784458614607874108741814111864159475205087880259862446009898360540562909294285531473617579859089453757863559917008287143422012726080687811013500841295218679312396756475063079406440320587889242864347835370631326126381262642090042792831694348082379683812402433076244913309175139287813344597962299810434945918977735405759281998826934707262003610641667496039881969655934300943401501463701677238487305770180687669215961466095452145741769434859318332535168693881554681261561578781010703946048422828278210370790980521514140339549791825431290820123371493283753645715487565804303439811106546218110845463492650728093475855683626397794031375184127212017737945932631661084450464950251325674987030698001198510806197758597939302107254218906408867302923509244158239709199107354759915974724260161157917259056191341810452383721603448912756601219725735148504224773219031580579304360707026950447401722744113393537595217761404686448021186870771680493906334632212721430056419147666962451323767808726883851405622863797290386583255734556492492258323371494548094671742851381060340175713212601742215464018823513814442094985045226416585671320390599734067401397868673297327328192672745129875044521308565798943052449245836338360176124198143336342466467654559310614424040029328539651245002743202582268127435850597020595519502014167490804971804946296173421784921062907437857365799761145011537136924889585047759405652595467843749929528587809202659529945964048243465731321242516807936085135557714223376078828598444419656327335036879297003241315813285688250442741006513544940140469514160044438217354356296577294406937585346844922437437067752938221720063959801541018126022671656313847754119631378934267143352565244917122834939981725021324309746819140069450298174450768649931867960625455135983233941540252696392229726262568772682950383686930389383645290087478394340951818636520945919352381611855277493512757197691207286381390673194514968140600109922886774168356567940692087450559732224151549700016475249215875911392868068183809647440568084006913626898251610146706523793006939503192701878505748771919453916343522621034820124863081142821623322231678428935328835866514473849644948395633935840298803332035412668094846257993577946390629343590925914356722905582221272820230083155588566862177356279243339294411757512493731762830975818217362978602956625082297574447442183591887412160278480186122468300595018062916053677981336574181031969182854386646842517921992269529905276403483341147965745061668358090803905570455878427893353535384912212678024196140890484405083207983682037307624678545177223204973011291056444102157799711519587654940672174192430023498445791067205312179243212431501616492251462175851480894375052329296378742603274519630846664260336948658495559841946726242794978356566065420025798920765348280382161455647421332033154676691475283986001271053328905825517399101827669874370081404707402422839218361772050599340014197477619911592151718156608321525319031452864911656849813147681202717359636948938874545807571083189274835179603338409354661225475431037247528823024833242365320460773298744390914221388830874706800815918493399519765000670002644143919217070352168279230455920530016648076866816873880030504433648229849602273483628359493665463862454474533772107907774084399709171409105760776123965688848631464260244238075433847790859355193373499769863724137060853473114701086716171054876429868438635344660121860691392651590327851618108444495625749879559896106392803042783217546701665353928097876590363594670354414988445060839388764743752758637627883108194781274744402812504604337156471255478829441951978090807712583688951960505641401060846011279230998155040659565152114242971711290218954751012994360025511580132272544893238122824466837604717741117176531240909858677810890286318360014042461321602907381259209203563123744073864120488801477000229274390175052925871183314032139247124441070324240122808178130275008379339439078104596515357173482042038427366695204688468720473777012280211097185565258218447819291339608818054735337428853724724781690699615422286605062728995057170943280661761282533250070008653038760816198277540496236312595598080862720462748112437575880168832029545608928555567689167772275399692811489295045906533082651410385787066200168283295635359639312059873747935772884974670283924879119581138028102217797538344868270072459240531434102204572923171252536364092128395180819297441928401808254510231022926474141198170212761725210830119511055026018218645267527105359141180285709970375065118644205916163517922937769354247136692463247063871157352284688813312492559737715651687221728970204636222231569729462842159097246769531706860298781627234827074819728134202075128321401487977251519251376523697589641250454415263944459504841947849573545509445647355405913270973193463540175152486373571614416272473463837362783427757015553737984865791354796849019522660501592313196200674242326706604839833461538779052665822757716587789123398907519616173907516504922350745717280470031320705452933508954721207958469263321278005494246511012641808687806474914771924661024075587728756665212518592478483520261232733740097909729110092434768530643281080329913475587042793676481164319183917933034162371666877459300961356304449513629851692947387185319597515751014676618333825170860613628354120435983010932124527563731150308327120888102044449029152462919147896418943945399522695234900120825392221273636252844411978512736035227937778517997107615811246699641965795311686451835019970401871128149711943028287487455500176052169532085166388334919258058777341526963637835978697968776119805139939133799596595970969110997323319668308051601045565487808002391788628867458666575389862442662276403944067555922335965820370863019680205493295990480916966215129167188516185904369819987127892663073053257212128299689931312477682132969260318409504959200124136539979893790045467447247838330323155869880818789269814615586255207610101491029606464165967105248408593236774625574177415488083635575417173347846669637243776747855212217068605062737204956732803049242860364481012263992690300454283665429566363667920656860369674354118011011161662666067962415020248039245299157752876757238197914720508424930403081250710776291073038506969828884711345815132478017185900137505445399642175753256191781234970833198675941074550030432934444097782619262788042114793307734093105490454504393374996380362004560979255318702206992834370818973155330282950981856717244337653848942453714664468091389074527684440184627567459772329973229755161422474491565502880369720565645984817151611032785106081000128004091906963456548903667798998492851352739417822462438797929202232897326292417688607013864303019668773834475000267931032642587188510109459903956615969780376750975450553788200512195137412573640513310787738505819161957407966068260338786448906160639980641789386730610240768781579838275523349063612389191433403127810970381098822085360230238201587485152722029004773010951334303999610792403014680235138869782408773341208653741092107759745784283649901629467818283590937207908325611365754521279246087079996423833061749311996569269763468144319896399205182871684468280141982069227470705197385301484753607136939062366075489950701392379235548392652543348317278270017404388822153940837277685192650623298288829819369787832430687895268218811443470631776096102737758592706061597472993032315350938965263438172839659065396330487604452388780750588729468713853186366812855344036322586106884117937483318096693415943593286174241807547245142400776768342163795872217124114904677191024099491295075724635881385366811512296649679549703755561075763670442387190399269603426528714709439549150559871832641836860363818736327359715939526398618490401068181648841927832104050272842157651835283769473373027291400631303150325437862676098628154891221989412900972669530367453067705069682389903211877504603236021730062106514751567913935728189837258295782130106198272220486835637867956510806227120084210966319064363436911899233056906453648256788207223944369357428686513164579469653432142382950985614169187214916037406332205861413087689896770725564241095390550606847690589060658604470410772972605871796509490014371371394459321829931110520922338828209517518480503576176774643664230161028426518180363130015082080045531594155226238095973569078393348594807046427818611700114319633358971026647232076499695763100675760539078611518860975182928090948084514360130858924925879656704942035098302304873103685448397087219580708114408840588502666497762749612493247895393877699025666707192995195921307487353776570354050496834011596823463244417221481812858941589431628717744275017505875318898511603383990222081330661214218381936445979731174238056862702510409637366431967175399233684706534500172934442666963376883115175410991118472164577521309289864184811133810986450411948883543670107926041912703363503859474996783973649259887395416183194464302542117595309411538063195964036587322610755939787504266599575592439192915572304907673796590092041393748503428888516646021780618268229963783743378574507105712287370262648438743691474600009638910269085581013547858287781413307670796882167930798380505289442833175395991558399033813246779032460372268760683691260156354386717031746038806790357563682100741124883898362313210576102307125296121654190930137231600545062490645649360770817274668773882272719265111722718529592923802986651680740439256321969848618352480709219262595740028230587761585066758375909533826700270596271985239335870698720752431288437999998516089416856456904350934251295120651229136819879630358773185573789145288561382859320174510017791282115628297229441640005129100818334918229611421038103255110891438333988676171876463958606700249810576279844731157883744316987711898469053015474735704200574762929631308287208808551533228602602102594273510655343130658079563779806800728562253280034095056906019952893550634925226786443925444240386540933565287909758040085828773416929897617676469610519870904949428629460465104024698889843898591071758321386787269262816844187192044194760040027235076558252829995324781694935535321498897562277120540770261887809660583196308538834329223714956292908311028805950259481799943987489243515437544216112989568495919534199650440878238494712456843011771912540946523170458884700328519777829230406071098192024981323472979713812489573358339755476040927407248455443438332589538258450742515583538219314117753969433358704463618832180006164344005163430008773449922115503823909011925349463462874889169102904383112008298777447423866962255917416048436119544478922480724365229724291848094464950140769797654100672188662572987114472084367996875589723498901527241634435486562276246804095638556126043957460408910085844719445556961344470393664266784075893965251348336216083071305099918932551131598147506410301756006646503074405377202557315708303394849874920954531354075284874093631632080527854857014286567992737400386964462200527455654329967264336273398636304418227282527285477205405146520498234924228304461993258251590398384777648532884358846543673428606342686077242174227958781214891733750981351075651545943678002337727545952260781982059363819307900606510918791346679675726304867552873074385733110903737195076029152353900543818458400839126627065087102043105265424013983004303040430710431485307027218675745237060075190235564211634400043307559312665459903524193450585038893032173305314523641667159446255472651356186158057416903684068422589038791552327501936855962699725404940674327805333556522577775659898157769154526335138430238153073327426389421381741190988752048539582105818736772683925096088043856880735320117494535514116353491589013350517621232327217889908268533450107890370425274651130564806413851329490028798161440539516541632688807726962081346324845006213948918152684936868490514124214336338828742705557166374509649796790517765068442740366989956699352896834358715436638585289988732804732891322347627720036392719565710812132305408168039990947236402609004697711335726650838016326194144057601686958765833868553389414185277624979346080068836612380120930731126830576649920782725695463705445565893486878440801053301237616223753189231786845844709125946805847904021351312944228299761005578049998264321628340654898281691848274987627640570138935955967844881184318952317462788045852558173579908945186873588936446300768708037164907778131721478913620462895993754786734610447205084244172089457964890924040063898682108509999369350162435710410292088436879301734830259690362109024544116089298212665840169413879648672689398269058126439996850576696974333882383847730463145109716929850712737583199246951169378003982416340012030960309615312459112336671360037783364360628031764985852896236121631418034079669955747317603580336661183846392489009841950497832157889788312334631656585049751776303705194690840870085624022855170874332846535688315964266331481492443839804459242097641717806633593965384341161429559830653144878895866028674552925979421453433381426496874158502785653608393836212247187392530568238383123876371747510295839667745185320056557183471444122491673590200612540399473355252593834714023017792113274735953055077898530650150021188978116752886197627373597808518023990059157248466535225388874376684374530917842683516968283968755666178214871199704199751408160662404970349786126270409556884691887221488074653346420499129490174968195305147607977233737885447000206133977804245561497344300474167872431692441382383520910383227922502111249314054856721666294973773266165168434441262019795724168667316097516100325822499935636726525311034316173191311165302320220704006327241792218748900822766374792102706153125379493829997923829407023394639946922719851492050313476633276971607916399297623216001736483798631872182162242838099791684047008624346945870322319535855496159637646854205772290631055328456377765634215764507942622955442074590788107729241827533223483165627415385786194935613743818655453340964209027671154813375183018188196078869477364115796356395567742269186848567396882970960360121113562321692504238764809042551199754607006673521157374535784290325049596476792120352617290531532342999755091388219023941683625143287621883088044142183504135048439819616827597494664592153108006897923677852021057142107969794632775024818144223064882538141384030151469030080287189992458575828060280771086131867692798624008332417510429249781132258097503886212939728124736729039166168846304431600119739992927744129736264153304983801269455611198375384510462531005072596751964505794250292928251419457313513328172865042243398511894142713131218507058402956726578067165676467116425970712930234056816916487080829828196076395847341337039692054199887365615561089697081965123313187870197844161407604817508271611369872336289055858826088757105032526631772717200156620427536041391956353352010010390234142742215177050395213822216657070163621732223019630015474290701806245122076124912103885908397876568826883612992440850800304124512606123379032245092541284768707209980107960986481470900050282037557954501355449293376368479048650230293447173660835771613900314178484605441250679244111833118943209475370054038189965361124681131776979188113575515202873636631016841662408320282902090829783737579131750790383113621043290231584269754821855327566441385245941858843302630052185916524651896967927723509191930187715148318772272046359840980050532445188048060602481290368821551394364323767894560375034105989003118876406442324756121338282286384244407065371991941619855833103686485083732425563258732878122082721130880773725279961410399924597990564430138401538360968171189663003115601329739805617301576482744890194853271360487601004773688743492294311097767392769611568535013778760126056145198774522454848940700679252895174944122186556734863267977427539523559274331023144394496181766368688109151250805545753076175153804987626200153478413407816650807479921134467902481831967483642128118248490357507971423874877966478971421118588199101195863241023262182394950171669983743334082937122764408908135778933463589823961283186533149746416764163592154498432876176721155576629304054885503677295576735246041093473021942048594619317790862087333574938993237630885432709556556479082564201934884396017064223223152524314949426252460390185307015469405316572482979867360655274620686942050970609368323963958532983319443063754768951363278088639852144765394942651454765486747432387536605187134787239609707083989185686132413954431944420921713278649244518800821782201950885610105663692422471043737368659572741861723622056245203764721965702381005339096150134686615055990804732929264258068500778478943862542816616666537210294512193683548521121389195233109164200503176231085172983149174624542377202558833316193131405923211728711931033140493874458822008961555449858742256911275502574575615105159710817154115680213511779329510317155604103962226669913719672924419264976497358185916767916127148951261641988871435412755362734526062194082848909375166110997952760027248235803965101744795039725504546649543381649853004997290777715881275614877838475858666752496338486003490157764920630325050785761673401136012623850361737955536954515451654333078567201825089477469146432105522246956821498895810234795455559342031042868598195524324040618496923308598709082683870174214525128646822743281143840174836043029255649353102144966645213267602524872446520494913899788908249525199605064511950412492745155373241420096561108309404590674780294215222202250290867010856583345937947648955645349628686588752534091786941472427329930718154868726868421938211875699752873562201857458178623249741282962520358393116578955070550664765629783528896695871020131438340233267347767510417153575752106327301473586439595417066903064317973169133686842695651675612668714791887320156482176641095231864435627255985370686206081874989972488414647264602159231376839493531248126560656395494477355868830549449569330807393148539489646838739803725825641044596182107709730078450384226349993879856784199329066357634275697165974775835615726695850718194392867625645915895579035193345971665194614505976616994941090500350874874300178272201125564608477777654429859174285860967097657092308892024680862479608953191596442212551138840776101188226720276895837764859261417432042466599232527982878718824604751169439016374728377571520580161446186465031299613279763751481128856859857329348118489136036012253493678924565538471500581598060684662095116773856718569110514645016134347079713811269136202127594832735398109386401018411911925163931295493334518522383995510600324892024896042263631570601447973124328255120882453328025465150421240544344307265510352919644629848785817124582103274897619895260356053815783465121408586546351474045071587891853893350008675381214899147898614090734569501606938406155069269985959622598444992479197568885501700631481649813075435335253451005889874307099742270992332198911679361873899654937968242880316837343498603467773351268363517550749979955745287069164699569287005859659917387237179050623198908630727379978944615468005921022025717081189065892990120500613779662829088728809274417012443905752649924484994031661628937548232763140208357529768068771713926786755768019205718163571995552237589094356234139552394527850026227093570367470893999579066343283105084253762598751848559639496904369042355804227835105483048744901664733073775062790441408698356316231249566945638344106553837298497858526872597548194667658809463516818667692083739830620288220128819392582076464754816704349052594979286306167485459838595564030755992705844855298467636613872834807061934546770928125062472795370329429092523791725095900588873158120635390683839228509287191676384567733740125527869075847062598803283949446760504254025345430511259672336240302973099747641870713190979476807263016812299224340371244037908157762737353081522742074062284768826079327929679753061144384159417663605046450114826764338252146260843525033086786500820470848622096031094306137111193523407814690138196011531691822972167240855906100819218144517893748881121492900214107977171571813987545514433835216669152126835377066055891087590611150031166719174305499901931276570871377549963923928796404578684688901461401366933668318925666157969245056244402756434448024967402728208911424556235806021266582364934822724128211097547253694887852371609103900015285425680877124521204331838144115115615166980576978942615955797808995909210394470390157776426897288494921824139026669477491235286102932373130731882965054830908704309882256073659894658041549566840014266786381492285059229856233288698052396234756577550599146648818946926536894151613991124768120126387582618966968363705130985168054262485247319630931795539730746572183370526849481263549395143254658033700948154964821033351674561487192826858348818088099516162373306065186024510445739829137799150172447468779621896375787451551109615019149003775863381969677366904886403186029171250220319038343507337023528063177982551033138494541399348414685258249535477454851498962764210732826602995783041919331897055342632164370690323716447120003081728878919644842881925553636328935527685614231007499026508220844391696295132947192533695012235690456846839055136981284723683055383726821891086992470385190528671869883084701178854388646775993979558775793006830338591549618563816251594316498828025983398915094764757603436875703427125049000396458642419604555134670898108622311207115481243127806361615178875076561591309235400450842887819373411134114700656159120746809290618374788686741638432770727382194077960727101014799830505413887590565291439663030824470230483246422618666047186889699781492844168648640433450005790342200657488338912373398365131173738524019812091915095645987933122790199969104787105757718015739260258746749935275950103058486031578096829259813254321501715994397064358448862683884289601638639090876448253677711030497192306487789507139034223535498081580593575492518478475852283957345308822942357249365706237943502349197179718911229234676247395016414359038203305158803223493258223133763518684442445768109095716042418607482667866668027024269354407029059137699961539293628427908841128318497147674142309001123604498989094348569033144743095493853789567338284593035439567491170511712750302159384221329136092258442557824562368414960254333804743584120072566532785554941050681869443857830142862791787741051266801525029546564773781564354278487690316301308082715634418698656713815278738415991401594617828895521528009017554368312135492813325675318251567226404455467602589760791582289580301341565671670067952575103602792532155067879744434086086363651516283761344262146041683328097580563009409440319549106531481257003046595540078262000736550123655298517155293353276394994519808160108126502256383055895306212552621245362675508286602958404662146016692284879346006219830426110545422448657767269905301078992069383235206950964692276695784331074667959958080555174817037336070553176857928661431877121077158228007505841495211176048679547071532635745303846932326678035485885894312133686662897343868508985215151231999599042747501123706394541324866443531097056139320426050734317985569865371206082478360018309355101059968972232640939081651885201979716337235681449826219422031762003371460850346634877643553462264804857494749347106394890029611680878397146088095961408669875094659174163710083666008442188227358263595335378758475174434140672077119352799428921472232423316166423732194219498397797380388027970644793521606345919457724603259994384131927745539067657899243280967684747155620938611717788793125520010289896672466211827946218480060824648932766024250413723880996548047441628638494009126445136815684735471657128879055470697742826242355105683837140569576043094839715747851153614015437010858124786913482723871575282393388399779019472450996097329517462209640732360242539689752457111221361192094852348377556202012294541131431511976255999831118715721988499574112654942891591176155017212110918882520159865938920442504859879806048625500710823942399313695519621844619797800546277999021679389865105695253140077727643086847093936736742035520003168155469578248883116800946683484547165177416413478140383914001557130176316657443082078330000349845675778762331863216114460425016104614000634827925908661423097317377195039818370344834581347496078267858263575163145868554378595371148230932593615770442079841346912750893914429117249173504867281473891605272576478253953509630695273355774489311061505674180567580021506594788512584395838164197219661529184780431484447125565099520760037672668084706359213306741199584862590074316703535695249108704329748027882717523828555815484757573689879914600682035329054154477459899952680435638465290539779095436871856433586547868191828115821375120347558101154922433894537202648945087290503876266708754491161924077365951903152266313704009549057960178261746345782472255892655124761503147271251447202819016012634816516406202544108807363884118023055137977909164628159474944508420495239947141720186083658476361474799779640865717149670916998321928721386345907549877580503658565344460771922495125810883882928611445887258568332677073261522147735840733200728850739368153403707114254956365911315482506339653040598372352503034337976241622685222461573798720425768034304865160661048381917491815868009725348897353262262889236584590918793503176049418090973468085448388194846505717501413649749736246436373592895058023352948812677031294909430534306791842977159604466773680603937201162333306659897523944381162388129715894085117104713449279816413469085796299419414964339970559954635085188342953517010311996436925521098735090233658195336943847460643357152967227325644273944648128104779906238717013319754129795252222592973191440587214585929418025761712222627385271037534925369868152470386497056309007796202416155924925537175308744668300479869579190013416603523575901404828500013887078010941602042570443692753473239594372786398018936222627228143610989596161930998237661319449982899421780579395536181573259772922434295617232830716505343627662119105382515022804240423056125475885548653998577983053435393999783234187391782912489927799302188978360466648354605443277450556652301129114140951540069768800987423956980076758906070400837642632689727755135714706115268036553006887853309791812723475154750874050006832603371179887638597852387482229352600699649061471047288306174567969605253440996306220500478762789440192895876462975406820748938474841075735846963759841657527743350766328030172328274485011899167838823096938221770062155144120021462862390222970296505007078451997371288162031001603696261144804408743164968045746682503092035619027364938122014807432738897943914324520127006058863111950506784163131900382610156702173178749761775746006777457164337983180348595583610126421497349291535692629251849103455624346087079822818847844781466460059435412514878163816657561423050896903776638094469381900009524775225295014701801215900915414993352450146439743869472199799270435716656452342754238170491786790504614149462874252701044556181682156013716534356279996652788325229189802905626780194548880422909546724109913907743780666277161398325210590303338881983794609148466173015772079284628053305553053324637335332782398287095252540332935599257063107581093036919061239746711432525070227240431826757462786420243930224176969139870245838123270628637787975629202545445962641960384218668819858883592360342443203379665549961330573909840381573196183841721402008877132564544419022329695311898973340302172389441414394554844405371900483816979224068275324313152832764224821295411603936536634019560595016824799042581294688761607702067812586777027747536796690654970180729788459457755237719714099901704632914422769167612547186098065290463552109065986437043310366543097750988229862678883961899920007518493400402538242578203725659492264843845179126512172968187551467482359344060979606273710758489439735229359568620192834259339220186318836883873272750765764821279017496958852058184589696707153592221741869302461684102182041572167831405408707030773230884513043618622761472093398664647722775663235666169930015627261281178677666960820131351251990738999994427599031530814212567391657585651739888770617282282321048662777030111434079019726418234925856489189180827749088861622048925861918905224477173638767795717314935139464016295670164281638539274814262586263033644620956721633327260101971698346093596748249501266625596023664562662310289175651748798529941575635499269295452587060242027166744446946178513257674538827950825184365703902418585696009088151423342976789704195427900364751221231512482159730955459274664757881938100227441934710069086978332256982022513737791623632369039301280494750608184597384417925565833317390503846221007283719217611063113377108724827029099650961728162427646747205602797082572430512022739911296312413070771142461556549712453545819476704480595812933958830819444268143343531260522905854580198680836030386876225853479974748799205895834111271282209066310244022893085525553496527894730852240543550189966043595616175655056545211472029777236465507781426765002711469572592670803546382626793942201311939718728473711120532322001855356103894333361636951631312083276750132412381830624321588020941793228634810987916782022201297504725186687033684189133937623345066603034806443490588790991288695817286225714754946775649403727438794938791205937897896170954244732030925423539775554956268915720645845368425941474857274061920551004724991524389854936303026491337405699028503851826262308823579126621004498072661505808884632422740650807422250182697398634050449093357371690637627350887666897145413964009924972296547142615110179878650671822616425811378320988304517638348463702375966266723760323377755667396463441055613217169228070319304610480763190399289383401098846800352754875969816905444557348742921740197461638522216228773548249967143252840013447761967182135381649182150099993346936714030420933638411004678749388620146851908194194813317989425112524197734425169624455501967747441454280713225135866710751816272569030603801974338847376830856155122763698675888814379126815665677610525007367041054690875588884263384447841825274808010422616298585023824584202869900093551549096551497220035111472462068572876012269711760184546516721624934163228859084537404963976438931712661869749535244456041050723159271915189909751846168236022884154049208220182966887838365967463093834142401419810907659126893210257462463170816884239297975152964191053330530366134933021226408387498658552907090473628957994866534931065691365501151821978324019266137703733186015381005497092799043073171935092530319915784962916228908658772501600096964712060185059898309901223372489229479069143306320472329393997632355388476182584019263496734707178230150513743569279994061168338351779520439142556712928764745747474824684731687009167955226228880733004301039336995683770470529188519975855163967706322973491374766298248160528957231117991245983859450320310124239533402058407872604204793758768854048311045668947561622232114174525008733793432412870198750110224505285038730538641253877660722879043679644282102901399364673341557032073023492568267194942477017361799920170997574346153463734696818876926447154203492865367223493265028997148552738284694011485355386969091782189376689247900206491486266355797387754707307012627825690478836469033251846718561114600286264898029809251134783720169334266884085299570809109555114718037832590665434803456174606595399219054076654273282983082735006535440115667054490285239217746893488194881103098331737634509726001594699237357644791035448330517951099868702284029604353175203304573940304701528281563905158394985555817885791850549423625123702300793655829177297531839328284275422948507772074622138383816369040062423299578762261494501941168376136727292642905406077974355828136922011364467898848971800295732386186459548761937812127700457819227134593239015156451602499542024347342262364110334830586661863278286211252174655801306861987756612540908381210051239329051189473435151540754565490607799359988130347352116053646056090387496920561139545567145583458575181775333198555541097323270181280754223030446435221788007254133390966458411030309154498575437689796499024126563690394166174686654398542247837871708146631255004226902401313190235373130383963499353835533895455382121256716648084050534008340255814201072613694299272066494777850509929069652046172748117826034940115231881326862143670572888328203336400443972988310047105237290168989358406678848544975432776677650841967138010939290030739514344578756591890645008128054516500029125170370042428572818392358920070494602546875624681122878952274779974734084833485581135907338361247072502002230550130608768362730407910509343438100508549188987974348096762479246158506856443125496121798786170518074699670121957508355303391149102534227113782217918344695277130448111741269427770710445506651196897824898172138036037907831029276641265480503910711941465625187052366060622579638779389257891708966996434160435948650323301474801846567593268248031572700892462978014714990048116820686080884951828361897646345894499811544232434595739706024909465201603520327943923499243876094858335621337106615394557494551796838822031656856295617053443418952638244335852914979791598721039069071528170867430625951963816869207632978452374302931267935574343585802954309871416102148967531178629837862000069287989913154104909522524795997810495659471549298787909078504460630093326615600281501072977918005824006447377545947334089769872968028305460884611002771191367654733528712834019872865738811647794797861246046202624503368444685565662179404519751835615502770285347219951144043578390641657983220068412650775366925259982211294950352910296043773366189627008227428249291313775872652179108361964651699164510049067487964491019362528834960784407448036507816824559262395943825870609341950837049855811138122813829811127126371581989140355887040314810945312328808501961534388882966279852640063487207890490508049153152216965950567330112514369077060489985541859675975914806386242601428013724616358271189087644847347487314664269687827910485971642396079214490808269887130625773090354570011469387076003291408512031751662967796322510182910189529030066021108597981429474808560898448653301048582149592674440385809824873055293552763008968727667932630864686325089101908277480272075426996817141451666497765113594657215994954544530170035187224766633678286217845550191680696733401971798515925147233440286684952907321161401644255879851383311600909539553996905153749374513771063300664583249310435837112654471209327963039102390735186163719898367891811451421519488082154113846255749526398182575081843593896253851294756711936362537850617423346725387546178127659915536967401287132004562192389120604747904189837121028592360010836328669058151684697545293460818077732829129996216445760204399259407879154817514829261985521632898458826213156769695775627679202150653290170527199303637053105752291886400225989033242657916808702497803723195086520845406219302110976175180288547869589936991693140498568740706170173984235404010942715162896895932500632794807767280419813133967863922127707964072661574173383950561989868265993539240299929552887461649179381907753667564932641909096181864496593079529814594305777744734075282567891434637219687546068580505459106874178883882353824314470973363215280255777014169264381142227082611379312154065577965462545161971139836811750578697341463812196625852805182628681701729215236495699232752130755776718618399150765469074513890276398248507732393165636544973166295269109043218387166586882735526563727760752664173060454310873412266642969553842957068192486648151897605549747518628202002497313167603145540650908188818678965599290714815888184769907656906716988470005303942755247101778807522721671151707769441848560259711749358796778689492828677832480630963402335771158051703474784299595637261810115248009584928424425720905651053131172252504637726446965110669493056491931095575113281376286050236137222366605568019956302366239758875634088640908882609887781827779256063653737764841809458433994364715745889208122960488098205216655493443694345107608844904033909745916693212883016161083295930782427101752881537323263925209177047182796203380887762500238104104820649656757264676550229487229515168002004541142878561456114689129117726362595088878800681811096996380234829554523510066017257405143832427158861482214919389173794945071016961926452379218174137885797335864134033135457745796035470690648870147072876278767226715162235575471219596918611210698939726758907792048184650253009756048234832997899553533398756499067932375766346617068242634411727205703997614830561892273928169434367398476938381758783757929380986541442765046847446636028456379158301256296977454760102757725054869745078804327852204502292626873137537587558354542923472040556478749484931167704603248217399117894120781547066984026587487233862176063490052607908353716742680286443712781039680836679342839697967448833614668910615404226088224640464970603724318690716170488595627429621336716583223181617380004016308982470848827354540607179495204937507548789937034486508740711275926082574029234800715470851597852212234388567921787717867004330858983134628523776625960337291963695839874272079479150928467233589931165272421886056056790901986769110820234532673444318475257444279986592244252252879259944815715472317281593983074231191467448523160892930404904993685741254522647980503274345833297947436100972178661612183622615511594696302461644237950055288463462546992152818760502332034671010054466329906918202508654295174385247144062135931862462615044524179816205628959087776566175760807695784781886402358572743865537882418318924965376858618255113874085602270751363667474853001860534561879107122307886409930354028020402147608535263415475980584482229101310403723850489641682266411131237599848670369994898232269306392534336779646593281275679155688438242788401723951451238161766520641025198699492899110329252254088054652342437219376431793971354316268325081369369689322530912707650638142855230671678039680826957849505504428951495658622874382528536304893792782736764795735311923602098506703335246393659597079195746434729571497792550928555517602569430464579871449225839371440425124027533623911121188671230096958648734911864693999933916862646056040429543831003323689258690931356718681244883075194818258519566249086843659518095068678776182294508679580422241216180065962401252441550874942209533189081711875431545927336732721392584997202241371516615000424005590410448965169602951694969272247259318593162437955828132915177468365222481815788303888795064445745691306450622798932020366014618729362492251053699472824501337658656273720767901578083975588343597620357689467400330862166914891117461937710176084786619492243453506076319428681393296295713835659720443147964116945502711298173122952540429683602469638036086987260329118603079593422352069762712044256384260436393057427833973764807335429259424677559942902738456095533536025790704496468798669766752988974850621017322907666216841841681552119647155606582552287694032777901605718969973447095538157169012258280477653612021114717777759952049830303678284609292020868594404659334373576045041519671452602979431725596263886189693116658863817124820768806618063168703911704000288309683074485796641165784476485282504687592086848829064445278791335744943322445949009711100001955710915193601840986024143334436653235650936718156966006626929945227297261447982213378946363350895704000270113530448354762654339630585411492552015643822903553905172909565835357431305566979873039973672307528787427622086678018289743923586679012988340583685437750860471472878627541261193514285671062102301817117222889909559069816418403785515055205514839392542357923124365852656129703099069466935865418337430186332922067008353986182988568791631620162941915905396624695561454126198883288075644166387118884528349227550114070883399858864999080279616137480905347387429267476953841871539902834195261290943750296034247623522783848528371179475916838192664424704431350774869139606796113921182851352675008470271927269791472692155308875872811161125573942479639813088766942280916490929228916610280362484567788477130048489751015528702221710999540255401456442872195436790133653356376992268455294539470962785497342901614127372099512907778494591016249468963002171812003155404808067401609043302530632386166233261082416119537950991206895387022419089007580298987732735056404813908343236027256759067690694384453789881995469707695250213483636800867209842616010591447398203650264801180821056971984100192759280974090873755927168751697538038206532782780714759088681227073258952730057978220853416823979080758880432983217637809449068848485142078832776869270692242382782335512256980026173877626511439517598517567944443556031604093108583116188810931867133633727226183067856542164458307802403895809163169153115644533890890180629949187854116072253502927927332577804049453446975051894282239853038625918893930768275013821454729305047896531010767527758977931847181171483770024242518175252995900042728208858746230777783483020021267781002513320720973452550334479265952730119340390725172341940976457172900061870871713624671442520489187810219373124486123547208830511243575220736085230083403740060545886066658812261421868658402335274312312039548316052908553659736555135935838637047248240528737596803813319937909721021160413570204413816074163187092377307464286411906660969326172283440015482832315123066207504162824192014686543973814770275926013109357653346333886265052038294269911852674013167715212925682910814733925663857620505223286591985902207917661978212910374744931900857483503856560312448167583764909295851857739774505330420366876593960835017195317553249883557695884811352047193233873203038982248920002018970473860129913318553066145733927591125524664424314566873715439283124225604406668917933017511457207806816880868485678375364128539800440066335800721957069872211655758698073485047383401210344277645595914005761937117095777527919718173849999464933212604769323481910827051178457016881506613617003949796317349996332983024097388062457043611546755883068564333094100464741543847613459016532112497201367823774422826464815931478401740922256039825081028464912591539235384067837157625767915021230689670250554090104716967007295832459619842888977502137269672126136490046652848207409957450725441231327343737595177642627967141788888949099607927880157981633684406296520815341835642719170940727502703449361881557914712369430509159677406567454692060642962642987169410709492459206147539301663231061029739099508372449712269254707370319084659126879496887539553080661780717104019078730589017374011217500725676133493619878376192802143538520967129133492550145614367713502957055219315379183848622535905858099725687523450232340815150688068206245395123644578982118751333222018257729854912379144069465116196674662277509847551052871034791028097967272472113303753462671923696750183881154050221368338742507325534553325299990797930545730894106924526300153767897339557465856261292070971415410989163863344721255810415208434062038219447233242147259738072660755054989238586045465543268569017426231537369062934551366521234937024630451820348878191203564791780542422747030696269745311645351391876646156072891302632840286967012232088734090604574931964484342801236648610670934148055734730392821935603866023225564880442418058080970588170042704317463456326457389213695413562977593709653460727308874724249860877592533107880321355928394175124462977037511209706474055890083490314241912665019554582388342169440315994369776482561895526942372845307149299585698051422571366533349679792967562049691923516910126531480410859273527597560680372781185554617391977423166338589341765513212443616183961529130067147159105272257692875161364559450609588919881567719197105564029038520613202147090425822252423439549367091655995175337975079804260612217815029729708984355037127362756761519606719563357263902842178067103119999872060744805089447930424599152653770826092997686771704573395597847439991083162022547504481788517068929184141136756132449360630410282016662443560057852775173659534477982419039326463815337964225661311467309309136006884253015371270118765546702594213781550580660347245656003309420918147720434352352387681338483139418489955520539308012510780028271556527068160430209583823928435730055914944152080721002545539636800073850477267531250485754983070739193418813713714379974317094090120035527178909000191962225541156677898994803337566698329833871096932075127786061408002581824610420104371391031348516504414784934708005740769542622418493544312522677243154664614041999254574888876378063041517828903418108219654522368727856846810848741077891185286512881953620507524296168977869002411578736271555332923740338912656164426008339715362416191543016609303879279578823940125850117201023007113391645058406046175711177224451496921922260587398279502980616058002898271978359377058282871236023325563992126910433879813992876319225458732296590564440430039927401342531261736347766572089319192155354413374689482550450230637433031754740723388974165487269564934177519803192840155615445130668206369265101823942469592363984721644808074379489817086572384007164607317332710363420658986682492735403348267492735239362459253577051876915452042018458129724475651110847270068531230964080437585135452037375563762329226402821258390086127364164547196104859243724925964086969567523063435466095876577760852378742564545110685250615617258280459980842605665681630384274277464059322553478733382543966118307940830632416921227731746628153639914693938634095554163327335549951412642541804695852060049798679994847117663764274722808181857429502990137057431934313484021423162388480562398765328990108285915019073618369240697788305455900938572047298765119274436427406433724458205907824483171303474727875325557017012715787107521142270574249219004825436962862593802425571349736758427049236460639813906799952089029437749250934927186163090954644627755894043914018690992777613493824004718265226077245398594641580106206397509539249177526354401183598981242943704361902253816112126717431160393903075996526418542473106772310677846497340747196215403681640135147296300500842851683219908042106421993890612723387971435911771329939270030170243430711949074512667298122738049383342349349861809871679747252520792379281182051579091257865868886936771008896688069374922517420168828603027284331031046265630971879320067224958135216838612734300536388329469647712234360468907942841454626276678361747310324054085697883906228510003774376668845599955494744291050817368525427181246731682920728059073040183815727081312758054403191931981402154583238963049492398737639919241224683956936703660478829893163814644380396351739246526387247770847164652310435363904817616591547697783493780577730562894195916968914678263153464135919969785822013269741561356331829751392938367673353368580232148167071602695448275571929776458702140616622710042395004391604921339519625038511976443955675071834365019675706971915846864105229446105978841078195713679045805236597776312543352701813469763641429444215280499060373303221135582696407570641734884841293337520988590355621715423197821589602136469450415918736708254687280293840336184323407833951023407817788612080984876584765163696099759409263246959851825135722298500422525285828819765577683528976146096822469978889074322295702096599101724867997494461401534899590250646138007317200559608916543025157555336166934211737630102874464735942939279908798013733221674418531418120193857702332246853262016807680347071140208656033389226165380382651857086458769023328038710777843413086882107245440709899613237347654326730386209564072485535696894755777568190979508463705878199186987887655456279555103734678753888162771994164300441634074177392021544654435609567185139904886155881458178277136435300265335212384683137267343435788270451006737078845741360265170504670641495816807745851521275221866383652260391934481619040692640993126168456108870935900449262525589000358515445059175124805140399877662554656255627821366419834488668223341617658175571556603415631237417132622611649509254285694932262365489081424477358560481997240015917355144432756238979688326876535735121187409669462987242493797738872146051895817982944066166793357488150525747042269054878729854445141910204866442841470526136047627895532773082060568735605721088457285343547092045271408171723282778495724054444925025817094757662946701847694397723393902226945861411456444532882016575204921429214949163765503609353779873391650915914860707874445797169409495788773264122721040518637717433069451296051940291029787299646267249421115195696927373762559637927670233708322947883715588872992089958545567483272083278372180952096873834994874630150322793690569929979390982500047282080433593617937740161043147497171238792127647296290164651141936605286109618032224910275911233253346801174527414681640087146611492242660021607586486513123202105638251794079428556921450117740965736713249648671816283335474399855148255594672163332724345447740335968308881241603246041354320218616310904215933585477981091544217122988197542174348802386035408541116816872205736914545688495811525179585008065671712363363807045556439796656963517174772551457557147550650047058665879636995968303035502500144760652959883022878601247741137980571565381162058598385289612361515358176500226225557517781265919525103646905186028308661621911623896202586397838362433693086288621524177765238187852058104287565717464558652168905451836235195948468416825092735054794487759910157382653319779064259211533761535200039857366522371396999956049270316954629115508897171357191858215905145483468511279990395379115278690653790429469566167932541999064466036509268408853640211257397149167781094277214365247972352841833019176045206628781886115326973420982025442964295564277060198016625433021539475805681998519334953575933898112451961960838880239899890436437416032375076833215180888613209761896629782962485183701762610024318089253238526506496558378195213348936439572311670387981799191074550586652613783905092464674802076593835151929456040157207491434265695910726369480822687742090446682799996256221708370399475311466203021192782137905936654936746541595270251022725218373986014697662797276066863707498562341391487306679480402459719230358518616158059964827912295892228557106458472192696020818790746428556090847112069970388217511717289603029541420404440062737570898607983400820508720021215170297133654852279413588665661589675379458488004275155173609167035321636169644355968623222262308577598593834627323535086241010872376477277879422497645074946323594270672238691686783757954582419568185165889319967524780071125639496971921403725869518218450915732273660183996054632963374458198961125293929409793316687079420287862928919259142188964508660100484408277908652043014738899599538452391829676837061601178958283174664519454809699598709842850837512233544536105539415531915840072116431486011469682600952993521965880506178868254892038595514319152752019853981054943303213775347010655301589893049630613808552933805539821581033677466408713569148859867064395406035962723997396006544686672314114828446634931779080106166211887899752636438892975992923061744036266226598003696684659341283041125104448270388126595760353972169901137933859488381937586106620583852838063292728700379515943288760705131557912446002572440117900902454733030407294368833816890395082020114320447691780579838285349219849599740718976854385055770748177385746192246785614626782482033738770360505374809081341091894186671305385713877309391124276287282031281433236920804899136197831900748624636441510056215510752290448378244836637708244314283305239847324496692798381850242671730265028009417418514993870045739465473098540965811433323001262638922531276412237697491901712544476056684951032235360396686659810277122897618438372837783765212650270464393824461983568494035983052173211543123166747046865152333503847962161030660372424030322565640687186360040320584759108301213310379606713676357857339540773743961143388476114482392829248365463585484154638575934985050155291580148669511142710597399924202884646745830666985396022864854366496066565954731754022038436577308922704035203367001395770083754831054894309315479765429400752700405992895636012428038173594251820002771594996107778334893106210692559719013867267900633583591026765347962354519730347676244160284220400934521604188081017240894329109369617511629547358409843120071163109679570453623639885524233087112284469825872728185322244873857871298343183262066728015824785575114794242938221260542232679690342626179914665854055270055274425526228832450591971192993077389376566779806827265632191169629544498462822807467477857452897789355513752005781265619668660738360183570838608447140828831542068962772186686727484117103764296506572779215979341088998996772660955063945295370866267038228787529376869401798561010134931023932156564055343251166221061027916811873455186375483003343857795679142622142657670307225980259066797145184566153195926040023467872677000526100650442887063497236324584159123370029869247443852012547562607498029526907462784231472925272242224371559965909472286471314526958999278026338019440887428832447536014976718279172347904027478350555799331559046125529483282160312207868256570493975073573088312060970761897284821346678815333631062252434479812687143267146523307938050569593096748820915563668792639314734258712468711238395101706998891482761496808450587412787339259237331320755468910359458783466057062099223300204637306478453177833249827318594080358671958222520957013293770619090889462775854977470049584965187770156488662950547698384919003203537770370898507426828877356421456167937458131572640208125092387552746996234222179613184514193495974630149480236094829171100124319496010601176665984136666244821976451980251858492681197772631815159594463798752953552882180306761034890197846555840241925906345206487877923704948126521908907454907601097631072693740999021278430370765895173612700403665609905830757454489178995615957191702738073411000578830443789927821929549585408505087249812328475061974013708897782711559300433860625298918973976294064527111589760070578124717303652866537131902524967920085837498277537286542977404528583466094873200761670528276695253735950945367667531720120531958229884711078840935901039975403634642903052529181458970406420389476533418415183364036304548755865090037962682436066134443165424648631655445222026308570162473095290138854608640777233865459671985469108428987986483189521580110768433191933021394804001856176690277114073203408005695990316227532378918512975755233410563882623622726719855709380797270359069711200744103248901700793321157100529400100445931617386299476692555545793453283579441171790162413449435656131407402043857231711124792220345660867629715389643342045810924076928118704788862141258903393365587086720320358778945488442912025208129788391722526266973567032141312353049929646212612952881622095924065831927252077383523303674809790656896748021152561714629653578877314771355829589312954984013411501881637561858524622279991345834699071804997412089033196073787867624940677648804593827224381174597949360208279313163679105461499136431657229678179481215086693698829429841511786287632642302337959538238066363048623517113482287457067279639336404224740846346382167736027234913599044479410591028536289096631838461025223858473203244234423885026382098755910679256862299973946503753254041531354859211849019372129561921941301990011102481243158511048300635563595921882055136293467920374019955402472392110646019554151646544793472807482875738996555485569253618295200025674449249665993345306891596341197775856466392092366437496659178799552514887278700357698920313279727890022498981380705284918211138421027014692107735121106680360841055526073154157364657269489013906787364706082414978573260971657650605051215169709600625694854461063294876148933697681869047031964578410163634805387394651502061663758264016568490959108620787764703912138175478824556269866746098800266361370851714627706740056307758996038517608730604926096587297769624065203374674595462627611819988909618285735053331364266204469610980114367619987533910898397746820099324596702556532214036825491816281852035448513341583014373818498853085996285679910055873914009026245183885013112699198850527996468846843715225700135905729357659529001498304735859377381919964977994213775610572111437040338987838298439969791806616340637648515256483020097077256636472765851444129149772075012665732394694716026391363676539560820760615389987225832055915295945147086242697523967628526743059740671821288566109401916457789637775985806747557458445108023554061386272600044306063244343657784531850791159840252229226073225338108246900231980810875736251071715492855742172166094817942859652511282539267986651425971789739820682508411778542230371503829055193367721888746744447602556191052506686478472004159434985671999471974667417052411441879679870683468535772685680684093082889603214980707386475243888916211814061062909536180908092575189037090274578082792470252046566910380134544660572043564406254181716595098622681245247353849934013743922961989250186292491755822168936325917618662900412394081195686619451892291267633520671999761054995463137812616174280863269029995429450753652313865487380968334111406909285712026039955135681623327926175750385134166112916517819516985177351872533463855312048307843055427962568935048969198240507964180355668057773181923913823014361333003934404180928339308003908424598590569064040935769936712449404119824197128899125417461624974601685372541542840220088374731493292355779031619592170785858636459738439910276918005381749809831664023296299606430838059054048143606873662857254145494244786855775487023498387140084268688190516275863205752263803694155432554726859548405249207217640927322351941446473610379120689592423063149973632131584452858106612094542437224550974293996699994093864182678245616711881515063598917618899667257014992833630376105158940227350923668019239949477772102136431447021361590319813949805116555806534908591327384560982924895785847863848801991406620470865941684238297355659025119753150852259350793758361299473089024948435455005360076814141434469563818998637845487674555867693535337611342897991105084522065465939535097925782571297796506608237244398903262685811197326791658709784399025628924750064682021294508224513435888120689483005863007074212405319929595359052816369803492424559783534457015468087680151383341679192983039001807644523117482786572062180480800459664837878521178493751032424859133681635008973139182371092438072913116921633930955896493429947009984633369062381556062518566901329039621101531085830189901740558536655646990173212507846987071856099729829131984736607866905208988879869568098379499422470959993112066682588654088200683715946082028231808323881738775450450454739781746211703728836012914377512176003179949016764958228973809940336153808270859191797468143551060497461264255002300192729354593845358074814034225168466395339806527593812373982224361089844912117979826216195781807730021426393631470879343594514141445278176815593429303087791185368112822506359101135477104378157210593816052090336177248993021638434187987380014034642886074569113704065499737442876237775843240889457427636818019569094292591463965099086727152154340147752297006195953401917003322829065046678252341130024519693420075898075035158197093967545255553358016373531292098614367230160503811393407303152820479269305976643750649595106715947386721509274320568920003329023097807787151979668134103086530885617737091453818593774607160095849302079966036371386637677286043124643900586134885542237900072507153747805563813960142114503443818570242164883753135026461027841730883043951350886830857477972538916013751472120742576089622605298401467010899760751253725880642186883631690920388223438408795671242807694985006495961317611027290723293953728144266167498215839590544129783752453421579398669254230303712067757859843046966987130806172374822005324595809378925730818546545602131324500570619062459943524174458997778326415153361768548680294663340036975617827111330971666386154397864765164333652560602513274766440555863304685005742246039622452721720589679017543326600634848219230210408002905195869775299118935401268862690026466146543380895342448324520554264185253302066913490490437070878595149304061726871163482906561838852814788020156566514272583073972170770966291496646035340639721798919312890734072645246667768097268268394189319149258139760333197732581537631944941694394530312983192560047701022615121479498875824276737803794990888320936620225796750828165071939727590385331921863072889535823878448348130954108348675121230055532083509904618985173208832399080233198544020989738937099741571714729809963959207047195194689955097071774748044319463543340057231664255558836191643723635380917870801329209205541390756104644118251978244787506745512829280123123047793093714789122913681476183783787550365427464490663893859171909952158502689002682671862851151624132510039399712577389962545418105884467367499568824820215197439274989195579928101556336170957443715051174772987711339687319566643230988974364312639245535199300616610612058875604527459319936579694324000519059621358534479294217869751093745199983814331037336242829260232884053685043292617264477968177384464656041858685353862183343376173259327575056728479585500642544008405171746189031997884782354438328077212271023002875792821895033066006659841938715064711642656824936677407285561974013570527906433784749270834982123252710405430752125953900824470090782010018486983564894617250191893277853830068926290277833802432388592186307935564305531154707510771447199125945742512666449940776083185778238172496223486597959852008578110152594661414829775718551272881250561626734731223610947617755451960504735610949023692648909126146159831269222058093283239807425990832922011511341466293070240437725630604464883753874674650908189272436055758536820174063275641418552986285432085080995579249605633988573622631189350993581565489070568656094611252226041701020614584134655426537784153202899495166652575887803182805453450658387010641387802833106113118490558748409055375440505403336604128210089315975764311940891802317339751888749009346186411009161051015361052544786347973647111760926683213744171502678301257549834006855933790239175490104100219367882665764804365639726721673917779181357224538556971926887516060410091732417400795029006913193925464811741072097600081245630497608704089035087881030211998179472825942523709617668555837808263367749028757880025214296713001347144261953993551333416472968770396720666305227834572965780898225513409604446286174523223194452462220764200076278395140345772379269520778408446414901255201995001962011880859725927664061770357243847511472517960040985075400675114461123252532998848212739917769426692240567076305895614569921547231312263287822066935328808249214297121119629925545559508183857601293146731998677551139727861230276602802284829648598886100189454722452752613271475119692400329625794068084073799881517865443924482111291253140442046463167919643446198022249449653474018052458218370160384037035720243034079248936900478675313049019339859037808121074010047392555223739580786064876431577199377443419385664308225605439807938785792901896638599563663966858986402552018510747947920254477531101483522894795026756025202876464250249824598918038058138394980807544934923808012169862252827492459213085240329690882956389536923951475013834483449046274770848029678810792372582654852906938399824552737854220953397338876654585214422204434849764745663876242215276763696675177786146010979910378815118584101580032562666094349881485624994978910601163115843344020281180396873153940729627946548482268462153767986949144660417455920910176512289023792020052440700442008270760970545137475260651809351023231624028366328331853789630614579093307710524708840230241422593586692348275269486257975593899276588652632819642834349152190420762902888392214445300941263703002593433835187972883547506991533367061316845019398183990247526960805044464782696063444426704766248402451629944311269229200970588481097404257541062825577519793505102079110651634300264891794777883530852184517814623091759844951243421283250644401845253060020419918006888098660020821195827799902643934401269322909221255319550199438300787329423364966656118102218793045748917432171565699594475373296977491531415649223906361064315493606011157110633489217845288882547347284702339457777004295792854508097871604903110422663668793855395044122891671398348242152517548341711056147001868368760661299663637824721849981309044355992560610981700398337727137741381778596352176203926089124338406262236609621494360255614888491336715251174513253086334421501368774019558252473775425631320235391880746648618148336839638040977640395134237535652388828945831484827861955265729465558061673327402006151579256299481482509234135088289406798624076040884684659775979356258398190851887061276246782169764880678563224530469674714362619496560873584360948030363783890565981108272807382246082947263267129025162615517326642989638886856616674076481883694130834232861155808754393348481911975310117964142193911230989122973050645459303417873193725867573980086674920530097175400994445385637954927832502673137615663948044056789621590377618920222660406102070867556234133662435049791405420748711729312395310525868259980481021854652931621144615934943446833394161355728696430652098235737432293543483309478224471061646090167374659443534036722016633897775869156929812577226691102252796182450964240013184944238662227798803780869341329264090968822673817279774821742984564033680699117189743487521523308001132992279899271816231830598892802312726210843863908808609521645414850088201257471854743302167533594345950336112033087014170421323099380165896818564675773250416608804943880292478985709240273390806988131466080862170141971229040612635987827497650145708346954312037984673460357422952309042388106003078295301853552259917143417910200822513628442938146193338445500496286474265810351030522525449830250722842128185263457579700514518194484189952403516117023009572298727386699694429044584803600772526899760719944872031192223163331223750656225645281864146282002358951702069851857359089892246882766732863026565693107353537741730682802205213137104047840969058519277022447427347662250327441895579403731687607900362842607046572585636460016841155738493257981725758907094454317255091771808182746809137895970310178356776200693995102333143801954575523240515925559240611160110284188279090493160255657202737671785777857574021725448418731710764084101207894132563454244199290754327653593680639101988530286584421197159335806051045705319545776185474091430561853434731681102904462177034226423032759203680502357410839549516853808417855860061626110981171772960325189283397603839795802266065637486396244098331232118937808514876446557088911356257620367721638066140745186297609448621267574346904960496049492954514145739229714211591212761772932247215121948205248291274478013235717154047633497202787295067597484953390273178719007883323197084191131926604442663401502287786214287412343128971121846417802973542343002799572973040390029120606285260587437214202982503993929913218840852499777077548313729526892331116165331359920723742419535666414365970891622822746028224133665973831981597509646298676997436577978096227896028633277772906164564693575650683262872415904805586159178574132129527480381311827964280310530354799241581246560555656690690947330826417718353720698817081767746273939475021989058203114862917652766735680404101383145813464221106430816913054231138315723190054727976007875765711508138095049504043810706041733794945761003465709982445682414774880788105275663635751144266442305714757995937417137002409005250496837238947177420495585569789242635210012821449280827797858781680646987009559360808879677638929552899770395399857210899098774373629085962407701871487088962697492798038006158298335362179539710011878517357624130329553191485293805547460163767757894400422905474732107774548130365171752642247521471991135533322572352324725511094278537214969697708546830725963249308403644426374840793066177798069692406036103782152869148662939387207508220226372480307431686759270394005033629080864687668025117233980430404863393602451863448272282033957831751638229425634054592950982885804123378131223924149156677123990557885774550905496756921125724712103117457341934548193052082144397968858160797607651463690432759523830457422675614790323592478625226885595801062625379048518914127237000540920135787185507204467293946837719479848458005595500252348181054051003771559493080337574154408022486066330844819144536353547878524547088457053140758393143189785052384479138846103820397894391487541079300207080185566525694659776832648123539195956197492555552713683233071075133811917469287091880540190364674237389968178293746930383329005575608370723953680173469511139716624115760568739745500437428699656416953944649282004986052631180874384683962854552708490581040441073543478462893175371337003207395094808486559649894479564464361334486119404958679138088317210922167531972604712929122866221291496947478613240508856244471440352473276038788107608105688249606450464359090979948358016230601862304614734989160299823973046441620561719555327690524259704374935285194545842974046680423205675610051992915695874147745393430129329520242346135355364261411495148083440063569108741769744178830829046847814355082636640669673745357698192580950835619155690648153059026098442255374033946314736502062015359137051824489301264815060911034501447135805667435471027872978456445006976305721971089570858993373900976676733072016556506678650930701635726707458073394909642727292877993535657211938516335641256264435584686484993788518688778160880742696392652036962561865940329501411290623505011967618088432799233921842574690086760498559753329912614991937415457567793334095381920796856469836908737640330252931751851136727272405425588577189195717187343697572268350546931606936225281224389609322965123678544020537784081292601491805652323534815640090861657600487763564266406939379243869957140768084415158233498373348376525749832058911174238423065542226952691620697652539337005665194016824170817010580271171190200537435850322284687176295452509728705581698021196684281875598442077741726641597055473974806763679705260453589320356829204338714779162705094114856651911884343737521331416499984936063898998949432108826165118471953636327599863191238684513317988656977167066164750344785250742910890451898158751568969955404279799190203744570506886357793386286926554516664804333262178802650867894492260591002646196831177705474900109727936777504183328118937832806398230121772792518718433918348284612213692930987002902222504617791746631942872014142022380864523145221146759993472446696261649401046432273129231991942905913295949590706932550633387437666134151001725402580600059641308935093352860298473959331128078649755700673469232414439528432776581592527191825602747816535802426617293371804640702881390412348559198605437464233135058847197560244583439230099807123542697577462502047388031518277068055624899079654630187070592199972776407861015528027577286504431165330681229248493189767443405795995947131055197447949205261565631073268789573763513862218304826070926992399572975343237903430274086841393576245102455368986751797082368183326410704153832809382989103284054341225730162208154318825468427502289935473449281924514002187984305513493644821543569572518087142148176916024006754917274821236939699617437537914989036948026643676507061752043687132475252951478253208603817093905219113076594560700668860616597858961029228127591469388378948288477186550897724427838149990246673511326540217941704338571510005016720593523525756481140537757337663621076791658009690193494204792318891952250028482397539276658992709487948851430068573065394873527861878535428194553175255638097002943417720565689215949465724654619626572911393235714029086510223748610153416745702480496390162867618397450119939503585107124737294647268075373140224575394033234465728271020192328969259118069696506090369124175149820890025179352606510064810310237311245643620272326994914431745138990203198418764216601996286586652783621917074787661583678199728172935027224458466563336998356773220242747355168489131153569103763784295607883778546683155907649841533068322585000195333461980559949499602487259973787607433072830295348028818492166344495133510980961612498604963384116570187155847750514531758010881824891241418078882824984458699568796044578276299884331336668413631988145517224022634998440056159665208863586581417926913333625780390527715680491018476195131350003217258597318045063024257877038410613412080982380681511408311135681318260778883488855785138453221138865247011175900938268104000023476806102974086036988415076067803771653166437773343650158898017442560776109355657760941815312163418373121375953665629015045357300700141974314585556211971773164646325886203684209348454890014224091249285101376676322684295674348085494395123689067809456215395844369162639675366934613728622797145536061138469093140475393679488526880171782441035927587140408335678285557723595359843709070702069510987819301561389097308815010560142246322163181506103347530747004723931569690871707112337603777421827070816185206545010055109971163480600769601092850353336920811945730347292400273154779064960978689609798036929149190394497036779367268833201786812253650755373721615009782087368323048059383626233769508563162465906694141425835350971343504116976693748287849540788432328382049280392169082109341220414186096053193567592191922159236896294926213305579415486551685200262849073854695119223123288147861045316759290662994124203744054669669662779983525043000131744817273212577294797179989682076925521757973500544445365690090034449818649764043704387485576933812537467359806523781283278408946856222469879847420269389703665635611521589525873292831486383372826723389422480918980410209140488442989692689561727415970140492693422336938556478708260832019930107652582666462332309071781982881045301382611813662031045715355540076566684824347434922640053497813174318121370293826011430108133174768240446005679035574786895679011675906654198963000997642140546155207952971107187000629614136662903612341513492205867149761142906736260437693006644850545332235743174305266358399358392541581242086321403907227717855048797328306696085039231826086817895829177040253359861257640980284833514492390017386487110677751798563617977822622395057787970961200464744380555624933168816323589675636133379499919020930863489017961348480743775933904134228181718662233611188471795313547113599917685255322535675038445487308573364524477097109447655996922216223173714133736352546679662473331955193154166549989662496297213217412804937170353695147355400863975920154040137905770641396060573703803109026676373354620765140245481135909929322452301382972570226977021909343849740889962972228152203581392072394796207092590064883885132598015266504418620680489895575690010718889282530624970399034957568914832582179056805787961194039187517687752222814360093059802544555448524535236901297654939722968163476873397710175296882600172951460528995482552077125019074119853132729961012498647480030791928461780135630813126352509966023483392259026838115584009426787703703540918299514493757250792382294423952156399648391006154146883407352062273183776867707266611910491444477977832091387929526645404868283766123963048377590024323587305468164608555799786647330423877676028198655753759346644066800395397693042051308787226039831938916359700819379225102816998782944722790504206104800379292118348012725041526429827425574734327955027654114173522026511307835155742666294947674351994965307951338939120698326280402561788131624285294641534767040494077212703836810814026186614617705200645403841634574990209269059211464670679538336060530905442070240632421323486636158036072310317405150531938732257185135680675257031027092580838896123164082052736799760312335135226865121319795581407947260699718522162960093506024494486031261714295018764218082278166939645017070906297679605516976171818892940681378190019675649908907306818990664086141872603006461300571925032611636081024569804166970229244938540205613463428775637115512862249578443546143507014983150182679844353597353767481199497107742467941755214192493661626429942981324145463557727338181006068998494108539238726518290313091124289957615286012539053928256965216060088466266487135151023420298143418018847959829505975515536419240012373900727479072524102054897145988644400480566817377936995658076671924143543840087728118094643275020107473664926745307862175928621003389828963840427633211682329236700431376801452720362217721772476610568476235105458172994391946619974853606342495420909821478208895352335392914580646481057847669093674786566164674193459921154515429684126455093317660273479277266723426035757700993295368871021903053142685288623374409030058901141195623503555568748971256437903833215621159484588380408345120757642730336059382052718513173216260163975429757906615345034856490054293556955053614505401282601261992975137936226391555826495855221196873094909896088601413789061424921051238842606728646260699291989996835335714255872590337492567978111430660195495807088518393735945375684379942174238843155927790973528363193128936567985861781200174164475615056237024854402052304237072478216235156708339627363344728898516629102462668012253103783219233685415751703452143339242154260793045051805971122835400755747869188209525758029891628151939284972245738391012766310117800141583239219580808338546210853102698633291741112980115375936236310444991094267355662391416119558858853584838566141509626803587885290061312761800103240984656499705371822023264059936708634823747405368863060242126943460601143445920306197017943825196123262264025725730803156750134838254946142621494210498789556320380579775565953286427017119077043974520722257979929849237784822026048702341818068474783107278937245566184424354103184901604160482711089929654576157558277846400430412519346748405242354651746888162833258291551485993802431499044988346307456847815870525034755429063903759812110707759368700565985645375549932921200018703468600219308522354490514763370187303595320940339487075536603161107272336377268008173256383123465626079463400836147442047681016194679929049656545383846310237943441328565018671659320942157435329516350452880412499242716321798661736681166536905934734486177119482481591293632067938304572664245619235167370978462926621968246937239423811187027587130641483442496687580548011880527879297247854254122056933787238618570163282034829959263759405478970813529075234177309147203756512126152355524165335585449555107734868132470649447711233378104865223151874203542044779423972619125839875017594308287016121323154110119475667285764200288803326781032148787389026352945766312075171609625221656748121888595740162985200071991759685240959651499422436164381443093935891656876621153540772354007783020645947006790088341311705870730171576974785425009358251600333439299015886468576009204895465341765601863918223028167755578506913660404362447356944697648168122030623894593185436385320733420622517497160208201857741203621756136586976530484314944816769452772181225091663200996413035098933828848243882399210937726134356377806778659530767306614757765732074030312553292931314098588271759242093377385526030612182440331165244208611884112580061513830045302671550683793540349437132407063954792771862043846028027991433160402651856902532319138221069362733165999826096659952977514659559141459721503839313213581628258005302559315413702438945213562308884248030464500777319618743578632246004098613261411624673159092022751026755854350539420428964952509589691525830554881307928660854988665489784337142022306652055342160465486515755053813286636176391000286258992841608936520241949880716698712674431945186851084055776322946539500009833630809530611519352402526307108909623450590957197951106028623651568124799375624896966508640034189297579871347995859682389112354083909117331915957937847170444189876044740237541732872082102550029514224253886542755190431424723847086554902642377729121241082939214510270629294034795393267966816965363035293910919973780247755798621455989422934686522794750038572934711505539566262459871495117541668827547212103917460364283096524236931235287089979530296667093966701422299119718852745984252924995009237323711263214027261186230815397596361321960385369814875068683093858944943992275251605198578687361764466032749635997652680337800600333066757289883029398855962250657358135468018774448690615285953261294827554446495160067890364648898217257851097529994524489154923495013643519156834395918866821403119919538884119869787103453341881287738550448410388447660176310294415007113626603534775875278823455545504941103643023533818904278504132746765156331883779673330172860759297570877520978695101043187538505947936109266652690608536277803006104588752044554662362473123732735593098390836246720128611339934969352092066477234673375210787385545302476483512371675217817801860732184473005032615171301662075141833430641735560803871492500154534323078291629396403480410489769852547361908995075410518283658174689661155910987276524303191370246438228078452359491678787542232248221846010856401291023016087543897202164806469520425329210375406179460406704823541448297040285959813375421062334400581599682417407834373190381639099688824269778723261595654745454025440574999734717211360478051602153298315989037050540424538861535945191462937463083674425362626299839687379259929577415274506261771221670810148928243007968996802540302694974538775664371424462365985038636665336990995744232146056878803455415821401257395896289971477839766258980018042786687884261345591171397216049739836462065445375716952985045582431000593252334885908742452196269311443816543604793458878221816059365542297231015686787500165999925754630161343344867819191763754830463020087748478112444385900231499135356716284102893676749207264732635219473056539037808819777212571310383909031437902097364522592724358210464159130560003617516764681463579962338596553514209937591439525341471944401365049404017934989237789995311895960871496428941495323447137358214435001439740131527192271842098449803628466205266271758190976703590291213366192146275180417361327684243550345618429743930893728534545673473141847381227647125788307032377458901112501015238860557843446891892356747367652222713902281128494289973245054916483361637165096165284688804928701157971031728567410962440701432317714972775275757402007419967491677607740103528826184943019467427594926450900036596500346341589284598366372322229915914121045305259965626977259689029733280547963372678429945733391689767617895427796190726028579838982141186147944854139156838158710175554369682781868789195011191954544863253146968747401495039180858653642812021951696850706956225294064789388733998277019673150316379888934237082281487373780220257638720562377762664089330653368535543209016589147358468766325221370727073136157235389512236343872371141006617452349227891292671263694979239197198818024161216988328424287669660665251342713731046402748378840977055049350752830671381947193457440456078062229397094909766272882119800671550339543159702374961304433130814412565899547855041812553225089808628449198772243059187110207204111130223724338328150926709873865036936560119714435028234986074268535680665973260044414869131890436035229947126558581301827657134161934197122048537451380212107202018969147448331110662114460399212408062490984196059676416050389592372429264242281350956526706216888621509818356992123883930904645648242182447042966601165398848949421252378215424723324869173292976317269137328985506488129506908346614745402260572901366203204452974395703475442724148525873130766595566513114957172431643379348656587719118656265142636980098561320474129715034327862904258080120032820589265131899037656438586523861059695286245972976633901729320367618604666249936136719459719003691462842655981604703880706112127723122524782754691716631898828696386157524457657455422401140293931002230789454893511705993171363758730720871935205329471136368849146098607370983971386927108366311780241363958289737667536201798598425117245448750902018049626806050713621730982857611120320690259284447575876128665859977868440706133535803764824311964713425134626923978971849288322580435944333693173189183120259095083664911006795413946874534814176017708367816530699550186195320880890461085808562609077930044047029267859469075117167930612473030044857523655396788939489936688226145305463621267187525377527813044646490504189714337545730620061733776733224759199880408993903434523533075134412425291591542708811833597632380057978709556175556425806505601028302577910495536874703722187552505383978091460443590631721370789457672108009430600438127078003196008174100989348590097455871210063382765694661633865232577011799117792545450131760096403839873500503945470062605383138725370383096795558165310992319142743065412146800285869002678099314762597845667146803354009682527774502510195406482074107970904700428886004444194424060335841755656606133463681413371625773799944600218802251926040135476485030107448081877557882873551842733423898985990515922477788697715160780822333414116102093886539250051526676704067483853599161060963961290506159795337529216898062171313575605830025617199430502428314247195821099827316434516708188385767438887182298207185668725978986257668070259750436383902452415375121417917775284169487622398387329208448993676474620383007712797670587587682335933819262490262904291937738199725683753783158491356281974396950665802113006818146857330985366228292632033429264323535395366876961597390300369485528461257680514712518965348813228155921980082622406463944689501323517137790082301558011970523813441021023340919466014379866979194356149393381398390410118417262993952664506003581914669557440573252902656898845492090142965729078717064516137519456902499423488642208613532706460471608635347463120632477623827483358069981226804436656385137511865107163184839674120670293272938747485415403010983529400093783951461020550526759605472981190847462286989063743727901258184156133687798554892895323910936987984807469473051289284705615657284269963703749268814487825894640320559135248918474251161008604562095487422578033617639863361558278477966431911538373621813066862445700321051231203502059763543680035807159524183308962618363138443703622675230872007535173153871730334384053272166566062359174260317620969449295703962905218477461000556506212456727839035573342103211625907153193115670046066918913106017496091213038379809777863686682076615818866268596183536267516023509758171467241557496799582230495427701320498822475821511531414223692473849091063988453223219516210906221786648634613113322634503065841967491413308264338998728580755613120449310383530060369452791804306767857113413230322385710403085034151379057326447348192434052791798658836881481236410907837172565085900129465926472564146523768736578539109580562394160073234069986378897538728392852291551903056602428812304151484952144265998094843615700720606342413705749307221377081840419076231406941171495384717851755908598050314980034784320806356847154278967688498519530950763715133051304755074258010571462419476184281040095116097413226054243700533261420656431378913696758451691611206362379932707429169816906696977545540866398018900471902150882421765677964089867912770447148482500937096106416849030508860167881094766740690293373169838715513315933189467854715772792649008824512846030726525149146425875977959010046808175628189761235953986376058601977605091999657330902417598890610950928449200278874969929549852614957087629844166424408087320256758095688627636005459831241765716038456194301234379802319693750860684023780278966444155803709431706261579812614068253792095968559694801425008527586954318979893964517788292363693576558872414418419654267081057231744720453227021051372816821489232782144526315129012285627290617525932436979625583764578983073006884755357174306784405035198122465913704761525560472706504107529983647109802194721873839547669636920552447862862895938277260204732183801592857624496431368281712303213620406923394532782400530192488012268023106158855344850061451372403683265362662264651520568593589832808819871201153099734679173684157596633815107351601290783410859387428620864912511403719257785996741579854410689635210942058109086959408846706631714720558327638030587322717959939396145313613008511848314354696274104101439677729781796012008066169241770566258371056045824573697589708622799407515233872036863003116732574146827754787328829212827513361642121517084342903947209604028111500205173960084968396422562772174971132758763462768474849254861736741867268248373458792121614311536030850482904200277339575712495993261481010240499784319965728126775327505106083824207050116200167362685848985768992106030978158796567973870499637134006044823790205554202014320116595946231334882983796497750135833824259222314537398042059668538262668890996210457826083624358845544232754312500619103158838723745216431627414238411507709315242775153146133646164863396488498714287616266940645530096137448384232889001847896707211827892626318416273326283898804361306349368924941620246196610922012137794499093559473438883214909713171159291862790080963285046691381284380101433418400174787978819109098294541494604286770958051441065783147494944257126167991095156445429804939472080217044146866742017792989209250094050915782014278519663502910487019445794082702206500358087955642846584120305537767812692994233374818480620720620352570213162652304369985946827473074108717570311260034912097195922020447425582445814152674179599364927863103268819204684866527281118247078595286119992385318272977689710390860776842503158009040156964383549395677081886198380725596661158155140958822692691472265504636708173813941653328706459801904223426102103438851126464172871275034800044367807517325251549041813315479980553650593852417857008227800183462162668030740328680562677230247451172233014939488886138424979815672145653073104729506791503714606216708994976290131732881312788091814979884891799365194299319822719809911005637362278509287189175561369955988335647107681464615912559775360118268304281357844216051821125595044799956339729635794971770041653482645356807475367141388267111111654179856382594018566821230919647528380633314817338276173515330312908223180593114522139493679963002339241133316268092298268506427449787778802338493553584498107282934482249972980091438240062698171801275574721950647282091890647441493271105050217329258651374484698954766196873193982069640200842496875688102358935979472706774622801219894303665971999241840478076083712909874411291681260942320019476320620645787326538535548752413116980498409679245979349602876604488285856487578947798634377192207920705985868300527375017858548587703751087691262611352586823184069419502587354755121800804835459073621285287711308880692833056915809781605085110628404286371636360263224799510160104381389134261543215243202269439645499845913637542442539728593918680397364349981562525795424044460067517624512839716048461957895387375722278053191993669156371375340737866541568273866795700540298507367289074812829497672766919034854481558372090067213668121357459816955775568042042984180833878623224467568243232830631998706197955576602796089482207151591786945098262200942393526161736908553068391145263899227807442571344670282265783018775955364578660617490418389790966024990758819773213415291730031150038277805545238281218590719392980767480682584407444296063269348917929785529771631723260424684338953710257045064846584512205068149294782976344755945175465848711548307866940789971580356273133237782963668498476229427766764416543658358560042017006695339763239417823877570281502304708388287091127333653083735495267049807571652914837322222156863760799432114728294651699347724708280334224307207319947670313749636471626565216943561041758363406683547877727261330863010672279206561342319893758987373755655785116787293494973635358651043922596829375147106470559554009153548255716660860114801107662227977163489769392968416505860253316142930913526794354546786868161827652846387083576161786585419433093230839035072367537592382975968921788823703176650490169474432984484469712943596827923081450223645860104445713682353446875666992716521982657311110497559690125255099315849839390306453621424987116390946844067045556287021520336414899688577433834529493322835754336345901997361098030726634279974772520449685754103029373855424510581142712832577977704204843478671024900689996076023782789348545549155594134120127997614204500095525696703278534642172933737718008338894399214835872168143569135773336122003531701416538367506902056579216287195516286060206581757334414017159794213565303515711850309694418656092724460598323100834197209667813022125117573476395561739460958916988387096684548806262027415163251349654931686337484094342123800647172699284789067109597048849788337469886318824110519338201986281780398036288231270953943184164302445349590938460349150962282350348194406292668208915632700375353457828754964213305266367054509662688395084489486923077682961430126789250146557766044048248248678906453573783769140914040640787444512274821551587436006543459555279398023938343983584714883318873865352393476751240217015904303481924678750284674429509044393400819319927912232303033643002386376359887975488581764524246682440953232811808872927675844659657339108929772257284316892187467899079533857775434850212177525726036980784228319443399547194263342240599044690175770125345689025827093800818050955523242135127413554070159834454402344655773807527454555324621455921512842248389021273165845029579766903799754472215805266434582880283396918944917871123404730324564839235433462350746903748591928019989956360771252497525470847449835388104283787462163135282844715398291797692633406947843087412391631986384283861594196152538337443308341690569351953763024760631886108515274603303607291157226022182511236658280989401123190125136771700901215638053495699333430638476632495286727806984033534229644930514047672225855562014148641258420734377618962150473514955464430014672491276755955236196313773251725915115491942934776454744206583802515242142678301233152240301969351767858136055204823187500993414454533677577818514492417965255941351090409773495578545235465010008417645933480388726065671715943894829931575572006315445153948824023140401694359649007164837813249025350324687272504807177287068051309207903067155602872188194575786650489340949844931938364805841623998990871881718998488632652797031360434960863913318242274136840729160866252963825159492937287531100999211287405579249866037642636880342559928114397320589357731947849656557989478593257907083131925899572732839897730903083744378280662481295237366469879303990795290537892397784241919727005298145564288647416265095197383183859305774646469447359993381267988649758111635699587760846211661134437359271745056292926759881846828484550307497847679574520653332790129686219812269130354012636987160828571232856820635979286641602235555997937156445793641564635250493503887428871531717046245290069485327000508038568970785765992332844188515548930410893073513405249245788978171302287945049966624982914072802081400953430174997436628190000452723455771726739293547729617727850714942722696106572044370426467224380787482334213379676665776084831956698127591888104131489881057268013575959591264687209833679408894133594078172041333139993316618547735941528109525679664540380445590733982557385774724163648271675151196770792865848939372055033215145280373537393860902083586834996445162364246377700399278384619271982420184299219678674381296176630952920392063864900367050047439045276194426576693490569398704671618974532979600611476887167046272339868344820768778766426530624204612896150043783026184219476424426017594250997818157843546283126570703154072407436806820024245950661655165875192015201008414062881573406963026339417098960853993028141200266765302028688807665365333028214019869575127568191093241697505839503297676390761516089437673565788340766933610041601222763689686890264199594358611368677756419613236121324397107834261652263473875562250132502006306547680009267972976622594256795788168458321069639061134060021197826420549885202276393084490996641102136933440023944714728195819747272921846831432221317262352615378766256128967587421898021398418484958741112482234290940827567161747342949358519094344421123262621748266534100293931258288141998745099274315291579847718313006374195108539849381638384853183403528847818781616128460440097021411376682570155652413597505733882249102239907850209228904927787773013038191705719290651213173998328185554943238280940184664491517811436606855238077123542518421257896694254771409363649610590365176362373496202660428715916057305630789552357016766933080656211785206318086316545080824025417442245223699836999101925871689938390610886508025803158916021268464523787156616161089941274166690421434111228237838608058444227142023347628603556643841907740407768084954263063577647396138576764023149648340965385635326493760112900265504192344577708237975234289132184426988950219157676742207411501135902151597879517157340476636589960007986678464045519645046068076489775540528311183518635585822457518872161122768611156499365516637035528746570682725643637252636497370486867964970534812051841502017372056226557260051596994772018516981440630171388013041193684774416038345242361472966529849158540004252341351886730669244433171918923830284125699243900950028212251469026234386045806766487243219238995445432494373161205224245243600849738674714399432167671600396959920463650221509029844676361312051724914634787008042271541335467597657429991998741287097699241744791928193162871457890941292090746940645897263995351926209412656012060323572452772401465496144234257957428938575166072601801751443986876311791778451480156524040196931317370388215114621451234302004335139385378589782978122719898088350677579507530439926284927368722702012824874303467259020903139752453217554391159507429341712408752895701796568707506164849360360430550147100529701068952994733609385488366956265773954827140554213036302365545168240616012422060213929353222265039458738840291051245737438855090660851985294912872818089171479138877864181821939093971154721616601158269105199533137055334164857171148924832057143219988872621570653085656136368527652766925113796195667908968124019510210836500267136754677183772602632772418015696424373522643735275832987169440510758455992675723587207572712210600932010782142565368027698436891496093843111907829647740216300920105139578013484462768652106631650505497534420989997698065323174879434397424828208875102815519820390884554162649112270188359425195175772181301052911612966264470469953429440427030933773829874442564310444665098627550258496313136338339028676120426879565035286216453523123344582285807172515811786784747735869323896591278399465985313920524154322761914196534269367497749601161550574035738765445217911687591728331349997955777653204510595103815279179274322061406034281372813759914167089226084491401097134804371131247042983922667032793199483460867445416788625371565778246605522056018960113549920123330809104869773218812510241956733262635873366172536466755098163911515228520904311416318597723607690738159528966053595556858188387458258653767229469855415271551706429767671381396267049242111212576326572469295855012448329314580595397574236529752284461993057160192824638062005360288125455008288757490466964520986472824406408006842247407650663243251672924432152911343906027624533373769683031759969151230510757002085213485070493378095823849871018168841323774531604047531588117159785626552333441340996897914569057775884278055530540878761777876394763169805304435342575561438415236967548721709009177823374442854619848918453814897448491343497147008809212418506783107484926704963619840777889320404557473566636895322756133315851484699236499311057121980755317593110221939491925909390740715104495522946276042752518789004354467113859746914180909204155930201687374852970945331232832151663193282062591184250148964065570144736913608201351684983120884093649577926518852033735194544584022314766006449078280830145457634472705645975145243253384927256040326016635759939443828028755870572405844999624811459417989508062381749313866818394344407490124145088121547510801460435832897904413403287224015862862767456805078662552528928357361010408106746482829007698874039171152541251399411429808811238882069622562929356483568919609575206778581535617617493988777641226141148569811105693509461797975615272948923922128368951692631556457424723795785472820361446245390858008117620455319744870657313524214817895962898099030362488130529121283010692329904414375265219586561449218658724917230789830146329665970781397854901678920758576350827063130132105509141467313500744871941216975388563891319776965925202389364541639009813521033983533161833968799143323288783240984447455410553315530617780514458920666304822993235296350547957634762727896482997386757971659064187573001816318888620474429914801958347527802394132138960795741818813268908755889909451861415950828631364737437267473398815609956159515318612225727478073579700103053192339354238472401176481981901891508448877280015426855267041415129864212341248484075243016509337320839576860795558782533225429790010510736381040845655430519685417251658002684774907695104888943208656636544171638402754083909958828461326419990163314426972152254255137473305487265774790376598729866696323332236568291585182667883315089435609602425031318003468407567272903650169052386252179687525065113462564803657406847597372037844834626675207866855794072213008976830109362586859439167704526852441473795926100114272270454434621099152650746180352353171308273839391544431570910794739843396972501740491585537599955735409477446857024748527612044589626824158908241429053221206718273619398070734669937133841303780137655574187150283123175341706087640416448926144292183420001651782205579528297472395973738041192279227265701091813506447079998913750045491167529692704042122273296204694947027116294398565275608596769135637180079740609039464650459817427538930341383132157199131991893845897167977607307009747637801760548658573763796233254860293625437145323739360343455919751937637943414197690056638591210437041313261595062473219535564640477307682614015960989272180605181897712305624360565835020281567123656305462791578116647803524656875422288929811457489946484699500741803113635983346405092552920169867900395756436375551597588218623040151354219092448404860172140288316006436728611448156897582900339330738653766810803032539484648391597807738286885451713153633286491521933945543743399313075491439914529794843577043518346953976212179163164182539055079272934811416488530313474878593442696549595230260688403392314494468797914955703307895613285473862183162456522491405538775034410682814217772873653780709060410370270913617903544470908744399053780162656370159048549744148936974289276224385922367690268280856980912143827605338155568395506349080644415117250963313603067112225243781319158166375660799858965085202700271690931685861096209001967321536498013148655863187089820814611193575517016643832827149129613777103173858562059913021877573591776715442513171397625470596362444338585405340627794599274527722819274055562070133946522704176340172003638319975731060782373847003581828222828172833826093239688171430511333980367924671004936986683712622345657080867627077231624133297922636763343823928418934712643939042799957480066263316687768381395474142189748273588607721637520278713361709872451953476354911207364529495658437234967004875274931243818706265139384108309409048466097536659103132282472426988209543033264606851585117159595949425705730560846882978444092573738390968962491642308633551299228974652957023011459982659784980037221224372464382109503403621143482750135483731928306440587487447071680578534381029992895187583923012003046900061535870441905954618983068337215429242837502208004847343292810709780522152028015030281387007976725247009417795361606231370578627535664664963757838057145532904493534543043736949123088616438718072522015629463986549314778283791537034466881827864371700252433331974380413913410645147393261368095754041515463260435976951347882397482788916977662872868850815477115420812225644842583085797608350900656145036780100968180865434205701869839016742526380628415677106468041448016873300044075102996307077335336181899468850490345190541456866285631802319986003005729257798751335306436192769531501997177470099714673839550633031993459044701499544505154075491552706661324691070708193292291179315042729790249375823348151416763225737808924955068526887844659161359275874056093640552511447265487475370466214500040736440101938456768953316289704331437682242165703017534656216206467072177058140237798658269849759274965747099031898271676151615376117749313992998717033051709579416965046155287587115758203095493156606317493721764797911428577359276470846828943361228362871314193133027269440862549476452312018848171964096311734047307309154142306715414297471366560620484697890604715295494203202988735675761905537452677463085795166167951153518259541183738248866000831796253351955203260354938233973677985711580502669691189724600048374953691665683238450096727562915463047845323024333940792998232283522009624677705990252860877331539960536241105593026609291722259376641442548828314266898969961300039800038730284149918364409405982061325141808206464089138086471065620866012311901316359090194906764487064555096458287569757398961178738190333724278506093768808136059939738702112727454759746807539471707644816811109870106297501164779704057944440880569092587613863688166124792119745153987524098315063577329246849164927553586194714062566795985816781957555634397534687698740333369533789788270002832542415346117996825275398508331218231345432558793727328605203608650845209740819115997887179551457256433989042802672047030316083484691957406364565687218139478817682102024380531450956260972087141445573758101124376785979729773084441147918439243104655322827628076811959888871107145236825096695750635198624072700229335173587246873126641020892761398796414783530456508897155129217192510688151227602564535538933433313213070262102637972873309726435428766230949475344178915063317590345493187607480271805951895166839601544208929795368507632393102838133507098239577040288839792989268223586148238496260670939962317207245393040292484248739269234356319238732962352029682828248442815669215623382014470700629683054339281932647900059862407605662730086244248808729147247924847212361156020037254238572732922835248015710619128947156566800267363463339310468612428749659584543630104054340326171681106770618956978761842897316438615495985693973502886355675374563281886898636770988969520600989634689789586110277714054659566556517335714908789869667589979428664199827729745492670541218958218075608191692869672619840289881510314952624241867789592292776725307497145108657288047245726595312726937888683709769146999630173462648811873115482431116928097281537612663195355685942925805227403477536958321441828743230221641722401783214995710443814928169257610311152096474809399893291433556654049732283298390373820319193066917813141043885253766427735389322229995391341266580967495086411936842747934650329742356258641012052931631696604021811692958398673414442836608249873872657155722700898113871068116698309327220567375781083953529812333766848218789157835464549156464246550615917744030118206601811789940805205835671913312283184104899108503925613128027948078812548640833610917915914966943209923368100874570197672895672180647203059041897643076642999033204079992027312210330448076793469925558899912983932631552479320468713829028813256672155906291486779638805104201785225763087179165514741259558862078963372496280025886619921615661447591935738529342678852490118199683653539479683953767512767427437463956478047656165465014068418639753239174381819461650626286240540339693930928777589945688979347841790567279648703690819230569010702774672417848050486088121849671948165422112052214944852108040935819805983427667990476914180905523079459635139249598986077005076854246093824295798514094338835601305805973290683697198095419348323624697897717659818184738328775070467512664923692020306216498198169785157562596535743200941079826994027574408138092339087879178247206509174765059610892540275184350156365365476992358688453171665605532499638497667575889270761195300996031751792553610815495017438738063214652712092460343572802913953266745918372941901645885339474298671977933806057110386101290628277999515696852803668419947754479846997098827574478534663622242927442462919716482805517731812342521019210168582139960725703684472829725260018529635848551740151485408065262364654858837437445624638679426042461193831139858840958947755847921846781458055892282534390671522891713843464415519016624312880499846447684234337811827116624223642007673480623781449057525021565709378763087807138203605707428951165903142239398515659196205849348561179575659931407395961046184095666518838857603027543255031359908460457477376791444504641253580481732188070762985084360533302663812712917430110419934165124404211746423041827890326978543008427829832628872789878820828674213000376230135717057832385600870199234533868040184288396194721257715052712289030990786708395730335511719173466749172733781379824070382069706503670532548225519774161200098643902334413438252612942748469988263304005523095294189118921460829732443951323036447807746701669214928185158873211304094166159119167511779643397806126039694669703390050234116552075704437972435228153160961672346077993933331255794281464633065747775453580939209037709046985439719412958125645186183247388006311022934379169310078461927540146793780882677061781904133102037611133565992614110996736784565278789750594395094681538582061847220036772459945467561559075112721483741406935811170053803906273193326465896251701397541619966188141015624263217674701289223476807191137918452057778854904281660009507754601129393086105199271117834451187319563234399404274947074072773255665565855012342204519938330385368267812802373786496529061251233181525026801538262286806176886638753488128057969103663263489809080016938326080887280594853384306130536789139405663062082315637117158945523673583237818068127789213196850531480549773148163720598790057466964433197062724075113702005100976299385544941670709367455478685656489327072632956098512873722753536475500269099117467011210700156284830194529094695805156306889236292765503430310704535110612629335525425889991462470281870680823770270758455612262966491196542665165368249806580377582191073864613875851149788754884507622774447947505018156117166585143325307616489289627734305715003599667384955377074919310828386854887277712367637620896206522616772116176219683303019277714354996914059263707439762187750989203029866426145479856092257233395421105053296840287324474932138971039669905978224819211252664852149840547016907351685537053650150066723422261868825915015270749816298134597416832446226612026491345087435305352674710582767300965537243686277756577653167273440545436970498347589997484464444040967030443720994246246821538658647829612272276439146881586535313913771397180519965963268878192632858276698612529101983178949884286439912215246840224797431659493710550684139225945849410724361853510937983397347516676630945291783123042444609208885413650632774024433004630937487703078514823795242260351893103174987641582185592380654807674663352486208443101220706947579026429137172675602828677522156386173462259523231231918789595804544836188693442351389250631656067647521982557270636842895225879925407311363115249351012962845564481865841715004615227461064270894439158449529459945565854255348164563602443172471944116160206753604732173329588952494800904729647865851928274629169989011956557418944697147233567616712892086730090901237688455536597551030164070983361466286238500716689562571002888909586260360751874675020427954736174921870719659192889877715593593041875878809378075944381787769714150328264224167206646013886047728637142500450353330066763020481284019665972112376940108912443281055030513946242117800656088143300354819940495902238211802208187186516356634778852840525398671643160261546957149269336093455169233298301066775384809569046517023177431147385049939664868462495188436927719125983966708053654290413274316416317013070089395434338239943603066696122567974766787988008174406718297482576091096420446411053375954808438119435022102586741151594381965741937399153644205752609230717873115566901595813172649441006763351726076422638284337145856947742165314244886389935839857988117949451348998215703160584938345025447411920957791195693987750383476659179040357937307908212880817881886267761042576550763925449598078565353905371258400037126721278040827480207879898696385647127671418081767946708723314381510326251709913876822118790955498757898506113023878742797690680358969722419386292699055072863179077163474072135690842958762068447916792332923160387462615784828283387764400775708111588676341402859794247535625863187801300727834277364651255119115379760043532090436560988063495562356190182672530937979960467257312154435758109170590521056544069799588073514025009564155917808716216546447788690999102958098892917017783521751268279660242141781786029443276724210336912065004296847006663298924874805509787285442211652893850045337316140105732625558946078132736432934919951473025159732908349592911413231103491834418889763623157659400562508986548837057797506414165315800789109449529386567739804080557460822198832956540140829242241636177203201999848552915513286018425542675328002805046210529001480957357279020024887261228872669149675308932706753798290595433470303665364560715151303079419694849032899852495693784897684418778899669735628231204234069448537556465732798155162989404937330507614245487766634453137298259644774738979651147875901157311027421524998375298824380279293955820644525394951799000473083003900727503105067821022413469829727694883187154902674733558914809120521690498168170074991046350456927981293038048008494183422224577592600867378213147541702961984205281803717959444123759794561223625252418900072597801837694381457228900200831147575683009502465850547879402128260221233597484395142686687298860805697603213314753015630459742936726392996298867765803021322985485121396921193765762007473613238514155460701300620646757284037870810927870996914016356339440209847470784290363392524855017440103020299679351830157561554530970738653266673052872194360858571710751270788962953860448283722349303695302215259377502483940300956849657677440941369331752986604515928344236639693356298747419796792403560427977305432942530215126123233469203893006546544810281496553242783065220627313181717673078878646115019558824955584172392143173844995225307652660268444410361854911089690168419391404412268537875549297128585681989341428772495519333171624697818689757974334178241645740701998284501136677280817155538931058496256372552554066929933005522600721618277667461925594464535171183672982811603943233385138248735903175463851505439783507389947300254429660418924256968090866233223442371570102161143444910474990622502703535683988348344280794685613285872489878343415858870242881791880426720742360654144659297959658083789657546087007973592967786236256406106362330058604083242246358997511091440309982885750336094296111195226154602767212206800212179399255835102093050640065378121265149675705706341725102493640250028589905273866804738486540141749489916308512199784106141441023613606642535044147586554940742450983905476552086111440827582865387918620331408190274097107893568361449459568977676039188510069822873623715659490943646289320525915366349962720898369997961789964859800634324668045310920414045038410639527828609008503240292086500192830791411669196991435943555840891372426963988923108122197324940610789003713830436436482223841652799248390906965137634848320154022162725990879516563307007393915464743386423902136179883560320458248662910741185421243188075537151620170521473672239291772745503939234860390353497942301098286416234325520871958790589645342763939923055825715855035438120008893165032895553828469060581986635565037326883655020143750932784942949100034713102035625002530110303518502715368577111325771641810021861489388419191079144532745925865463761435788374655793658428192930985264917272098805305943067777063446038072984213094239931004498803829351496754151900473248455620847640422009066142037140342307071448618229254196782011431993093164241044746346766470132798642738546191321240397031633706195621930163966779895705786321994279439153717149506863683729125748262902860485909971710483684552107832994336659651449763209261277151257228136950794054571667065438882569862319075843290610852175362721745284634204582174438103925057548262471556969344615405297655966248350148062570362634645157215630094976363122168443488638586829739296940564452862354684853921494366958347834884823905308327591118437251242134107680614082438156580324985056917284430574124219004285961278732436626155106175209830429596204552582353071675571995460005131381892706902405898070289229353470317753047786739127802079480628873167890782284779113889389180988807294792891135435781354854776368335781614483045188146016469298615803651770638693384929972292834436955320707219044384552763655766382840641945242370355480437721612174593261256127120520586995038191849242373126274231254216338424918766420544845524332338829756457092387838704827474103612618711020812166994079899045225392435139301137273136333966162772034187540948594922943037731343459083320516021164134845194190723458403448355285789363510520339863993399962324180931017274786383378661341351683629757271507994993313264745106857146071696844704221032815411989539152456929557351453472746684033403384657468851132575423055135106961314265879727082317732485761744456730550439035365897422162761725002204042899728020770878959898668001165549364684506961386814556932662253337168538803407507318598977158091678516176859310970704694544576624158570408552316122021715385295552450863640050347949674127843475095969203617143818388249704905021613522118519547769767232088172311144605744260913270517365866618444252896109376925512022465363945951095603192573030556829260593504913847914728269736502109175840661530621122198140971654681859891906872339643382113278692309216776003017681583369684636674496608240793293044681080730388869491640426334880620435660714755860708543508881469391433623351988318567790180257559376524589539990042649211740623592757281059858450468111292422619496010346337595899810851825781610824384614666848491029489547933837545929743034870141385397187314615073708108694737367197211614670432946661352699703484200747531265920810936633120423527614953245495342952740257835908762064381769998936969189557597665463529239137624231273582555116689845909943653921310133738539784001255339268365665055609156788022379363725379395976281090920886964432901288736643906805098602648059162648977133212982714240528442216919644575681745301744993090677415798005386439169536122995542161448738753414955633461362969810375058976668638074083246434641573788136384256785379263103050253713082253116681512148078848630504878483936648556428478501161632918220480145027098835324757176720651407491706238604489498839312890942570159766555179419726762689267362688715848014008502937426930220940983549311336964478778631024441577452052547363120613270350487977938932838466497813070950435038408566733344972873888937340114678824752473862299509432299178346513000475148620517332722532263739754413379325163960401759795040290342447803627274360436556454409638588882014196442383758610360261281656872776524443602500852442682529952332459289732378510034932608421526988198056751309751188768080278689553446489837098724929959269449363231612025304910951804739769277700435791989744298985042717573474050188027312554289131179525277238385724961789569425068538996650093241096910858275607598082928061335911118448541473869834582738812482629427616125564118470160063017735450927331042411791605602488518923553352057194936941558723248500915500226330183736157202463199528797274237945210493557913643318506208907928247362364652897879228873422939174224577988460475063140697738422455927997118553497738103217320255139265965383829436662343626545563078094599463096177017976677255919240513284016358544484286389053137109490568263213791440507688178749064917869438872264953334067148584157204287095993184546540236126664153161366535772457649161896723426904437691482100914078408956999743611455916317601492451270967487925501649546103761164838677017019047821143900889335818880140352262456061600643386404895023877998221956034219330852504470168229561911865448369241501317258773144651558228010613768219808733673341362516683296657726027508370919692290148742652735639318463753321098838824096809016792802590700143981421717497825171017994687765036381493184466136290924064272171986305846757396515725819749699946903265265839461001581818342638713592266691286236270393930931794122112395017166154303610082676116397291398412928755894812558585327163893533231342598680074071009507096274614591443322211762707145934785771469848940251314286085402667943481616338418079800758390780694248253851394467463521447504938766021714941156215570674576229366770431124627770329718830895458804437321519677312665015632147893235016933472576601331073725049082787668360241684617173634524803182871867583671898474791194184787032228360519245661401908373287868881449867482020175524544423608151210453992274516469836532930082400515111767568887400055818897623867181602016555183742704852293496051807380093190877545590122427467211851725235414787287306532041619749939000759124937447736188189509271176587902027849115207670244257291957548239463785101849900874975361861610024410642107946051398553724661846399033567764591600588891885350325753663908877353441834067620481179950669110868034430927431281718124077347789584630877956953168327918724935336483418100873065186197015751943166875194433211259521040465008422702621294402241937681907952949708397825203395599024201787865428660298742252709044965093833479264616707372148897373738311939124174095303950893252286766419218704556159920009681247340098492251353768053599247739548425591344272526447119404412292005910566799228170835026917315401091471011409155095342511607156164852784555395693943222329727047607130729890765462867116242399819913917329272566232557129125278317646901920501885206192776098742661317576908715109059239738748597102605641589572239488712985800588889292654835339426943577345212604813071340804177672550301871246708625833877057543189340392871883402441778141980798063119557494491879739623177741858929274962763540992069417301253683170777022348069471558635175717742746258221734948940955958569760630776112074249950351273949908482288789424183662580893051057371625899395487532174880055353572390582066016888302979338275294395130747547228619105752860108306814264212795240498746546884216187826043453008560533526513010663305628445247506412688186436102041828231125251501876525935447935251397501794603168210143186207323123867717251777380191928028178588304040738004988464885036368818103539471911648520621245097167054354385627567994421230565380866606197326714896130310750109389420075209956565786561600587198037134864852541059550494751933620875673568880999655151994176083594063171137877445523687897196952669472765189141260617155307432100293340244119915028471877823221380807643325849825371400257091153702596180939500583917938303588386701071463195963040530229969271394502415941682902118532275785187107292398637489949646953671406221029741213744996982067358437241142568684391386675424861731162063011079666158596974385401717136778333250450242772666580467397793176330944927621418493981281442571365350831963682568319272142417822074541202201923313088504651826776399536634236583066973273203987586867596141629865112472222574663132484048692537445718938522783117864014003106445289781929403975854240509766356465939087317806253159077087364777855963849249108596298094961504601603180044541940781231410070270523489747536150791264590431175696479600641576144738612191213865682496922066207397926796771596978637493157187705855772299886294866576304464582581376599645443146754874636276325813287153497752793703726525496051880050700160780219580972066215026597461537591719507310477483708191148911263649567870065242667792209915071139167656083395738535009020926221428597042435537336818557753392966313884191881084644829195729994230046085074120772981962681194414391685153444403682914458830963285987288300570044602558068954319795680391552580693594649226717373162096093744803814992516810347346973696388974358218252478013383598700668342493571738198519923661838697794982838820159845382271746619071346445841539275605492727199734950294503466113785161457411284153596387186882787907988306484363081466494963298477231270162966299296191271216863632916522488760707866272877502796245770408785910592793161468669076313416878193539344402734640130365002397902375644674345151354278143284629896959079744554488208449895001007644593177989701617227071909077071365764993543710498953558407338755437979160084383948377403318339446234820109727576019725066596135574800422042869385643486857354392423454927225025323037650722817731250828471575858766200857911230775076815718432263209769157335550938447906073867658009942734583990608908593342199295458350055986954658404272464964716166649151555426078108307607977183499432208507514297366524711797745573780965199687068674808850160575019242410720550190709069452530539613772332942595844477252711805539294807500031965321316784162244193773029014383187284507524732814833388165150254503652959934699861265410538569313919677576142784590660579842579683576985688860508272358340035809545502745576379605446878598357929544270834913953643944338366787279412289488623183789664358190863280343005273837196738527211360820334315850115963911007478441632916729891632247456038548894151124628939231106439495059464645889853416786007497379567000977006390207745948131737854936805319093665707031816339597113802244177031972696781065825518487468340778516887002707647410793342106322040817141292767944441100869084470567679327327522738941923193105053018075245830654495180785142581107390365554579019289167609358389411889417882478051111817394635547383480721680503848035484461578189145376612558743759020149989921946344140758539551410654109514996287094910188349854086500655259783741003265622375548472379465247367570830583586445060712396268817395618318760854512907182701919179007376936635163863364577113300221853293211529748087469630306575204981824860610191605836036380942882590617218496023736616104539622406663100743766710542098271673091898616278357628121062852251157998101585822678805420025881038834037595648254116191965693231724037703111133461561195741117052112027634648178657743902950993980569760937632287129020047426228784711705512180715948305661739196956841753756291386644889722641991600750943448346086351562817458908022527930842943346779526018066102923092167952468539636891416393318277073594413652636056080446033344056221896489958240239097563418112040551358632962568477822722511722756414165560323575536242410255935274434429450971822307162149004394861497533340421661911400856405277243742432093209207634062423857574765167666345177717200432048369146199274737973065206110829671565496048627574614443176060007251450853079897933993728642958890739660827228702408381329543175758411659916596082059279353572901154549179990571701187180124415556114315370280009581819888029162640504459379696847507261467564830183889971721098919745876990130871600861380511590935909942432563600542812614069291559251229283652848673236254597709754725216373412756485947444252789341516434914679864551636670307405055304829097007529232751010191222662146437603728681092310464351614603912700304436617824982064292582278544646706318714146826104895895076823968131651147987011381288345006147990366500999971464295483484755894843947107249550871446335994047044756408773380149593302882862513130089041868658497033760704321048398030390101382354758062661527276800328013165741538434895951059701078098968875591364277164386363210982268850213442219784436290289912649651032658370780775878403909999652273040512934819501895719892947205735940456394665666324899399569499398388526072254605179629947291583303098479145293823646927586662761184413992356611313443341366775511850574214391228572822136256706873531257665952055767787235260684497717276985582655349376898052448399335736446226609273119958718243373320627121349120859709635745747338516195582630729961188941736500981048318212620104601411773939499743284750797878575437958378846597433618867999242845788497972796355395977419909159786119328809537103044111905225555851407555676692293479540991937720517719269306899272774767462170606295530276961125462394149267340882045981238098857023629688486528745234509168234937320328100536401041226233809924689517046818873166768655783917260343508894777700958733990033531876413094311128420431900382659410543842080595685619359522813646545884298682325433894946016320447237675509592845303426740006887666899454177124954882204454045898846604637934953033779385155966329132817431181482820627098920635366718568071970194874384975896444290360484982263363458830012608041766482750242716163023285350020271062325356230901938942774250582767663323153776946355308246134722847927914142768320677971409145676522848402326428438464124991871549262524328964406952765836992332117659754944377194144566252548779886658761925356002511354456965187611565645338841247020569482772453988487051748135482676323097498624611995039990269462539015253945869836151312850314143096272968866550556194249623280259120922490356449830946447438329431955492145028226934478522198492217187134751623114563718411992288048363664908055593412537998742550952012160290161438470069710990698012010433768692572267081528466094280431112446905418033602107900544142481602424703388656953418385056216936426143254873542167951581226570271681453898343864760109369096488730609539094604910163020147385464151130508667682098969118081705734248460761338989640086732087034563873862631890620427282913897586153714371810557951844134379357656584940429164613443407455905998210378919861426670364672513908362378931946620746010702839475876962660588467807405580455971637778939332844304077046923452692347710004652003572570848875780152643749174334688161638233046365450616061750424490657480348464344687164672534117755169846213422734117749598144055697028816065241651316677106070186524134515818510731423963780860064490578257748697322183410051047673433195547421897488039976108943989841427760145156547388096548529088474263068041243029233968783354746680165123837940313016542983778888469947872067554552074134005567333373121149962290187808805176763463631436756391755223622820591115379576704280369061453314527412435410554146195808831640361739223310101608505385158301159965281648195538395646636345859256250768150979259244727530376776925940766624210116934957266510173338585829905317804023102034533278954327833806048037752242750313496069971492299996795000342445707529434233502218187501568713777444459159284205680515203969171796784699438321853698924201928175504808650776147331774090294470657985965255550576076610874551180679514024091468651232424399668779244380815483636988869432516223013097960428775023156454765164669389541190314413934372205033418313725191924383108201120714705289913470903371600742516370014200875594019817726937645332664923671755732758964687082778170303108209263216666471694647291223644803905047197648060583762965333879680041029154905110594644834018410142726585368841168276864586571737214531369513958235995884729291071091451079862357935194803786607306587856460257230658930638489043240761874181850682246113638072734445831513276944536931131295911136737136743282294122031025168987323883452837414910458284977587214433016198451528867871631562477474654201710913250389729738455762015100563352464173056214000740824751338967996387805311091012269040789422386123002051072024856194314238782174944790653643409065958537926400509295960700244288340283146794396495313431838111979442619542461349005091933918192226930810147901128608244647855382033173294456504413393385397444688355015542358872315801107784683202869245247953084744769133495738450591723289392567663848687655905652642988883679267136903268306208937949690494284411941886280096829530011761156549470326399880403250582045305815029025523465929741566568617552891836858113288587860216939549599538956603291411808374078554830187237682919757787216552586870046491390650644599890108690103097185158206395672456548864328285297972179919463556553606850448993062974217278647987950122679036083322310395770353655601869152963468152753924531374385285068676257220988101567299537146224790849834860389183249027130513110071485339367912334323940391034319773056530626853558300411136273516613773633044579740277245400356113488986844226610752521832106131026603099409291019831616202186865476111675903837698017561658072396411201183091384843886324865233455074937981216822835042781973448819187225533266283113053006183020497706695651567955049469585329247097658873683895993897896197677101477620370604898870245169873381839677801411025257820846744952300569077127558311067219962889475575185434671304941942285286604709199088627527438930337955251963310329707583535082227793998333546798641760380638520204910084152983872555412400575934109291992305019810269297159170611788171471022560022998422500644755048134704636163029640376555658344498208014327522768826263233681148886031728794718239159508674544115465123763115266697789917491934465557987159441205846545041079397375232982023522249579626164729966137371069920219830722220853197208135292284310224785991745671747547469851358048038779317207524802053683879084723098628893625650991139446310922249247193677246896312682266795434773843641766927979671266379163842539699907209666995898141140452759880568466089023888427007085285998750079144761258146396451700240932456367095833646788446156615670593663700987720540518626312569894720262808818267279062554008916014560153450685648016721415718690546330819776516754314458536880759513711098494522795438820640231600289624380274166431449454968610668960612946697273135732845329341598665651067187760545984658664731303594063723296329995768276720467584263270691044119640809001207375209453300694227129969885469310590395081600649204352658995988298938658577253782471046421979802688120565308422834706153674389979389591855763817918346756080613461034235664480660946142206060190436867614854842164683042802289610299225439934133233981093002000847590680861091401641824843640966407786985544993657772653124286960013460086145894189058870563903072068201161694434235266263108249035656466806888074022251196920888336153528808919894727152090898430067252224990148240791106206540774341354969580417900529108475280823857721129146643754278942961906736015976937982567965170557024912668018558706669307255475522168237665455348175552905378584732142406913644818131520435557491127581107810195811978662939707812346710005818526542535549059207590656526924045507766567077171644769137291556197076249265898198035170923943903271845164944010866094494289853374685511938456035451928823469362097584266831950876739771202989483500149261196549313758698804388386158452187216141074595013730044153822153836440520210782324410882929742988856813269300633739323109919911026549379840673831814248523143596497415892812528018955486315661575825142931633559222070528015858305935952864739228899084025470142022629151370118350152053997075961375596531334931225824335461587301335355829137175742742022369578500852429008379505892657205459139804045581037244676107670832957176737238156873246181925417646051781275537942591763488249750270670493669608642888705875073358713095224146316764476710331612331943106381106676134614954979915417864084404908338493546799126745467692438308395572229920948380162648422274179455940328750832894296487811761746631059266559951608986187229951891846751394299831316939753990075803727470284969751568618664212906187826364838696631415623608094267393860352486733740391736072606735833569800003982112663438223487183560613975178552600255891840167368978172918988619885474457334442642519575067115874997127584342427219801976662247469527782666244231748981861276298269080090529011670195593155965961318696175167626761572463057387492546076649606818837507933474861746193394565948345519171300453835159726578182840000767402262538707984472926678475028115961513186746552472386084925316690895470926430074072327565370398325119448387744672291679843567874369175598184519992450351718434481256856944609008005408650126418843943037320868443362084694567219123812064956036138951887882566314235842509913990205693489243541167010691643763777485585510992711542135635957704418867381771213449438149267277457143318992937642361664844595523155925215530386402480841821661849174759442656082186188690473252478043865866797073865003806392253981343093379788505912017604562918264642178337313499134826184408545266031632043052244576098054147869729158820857538865144570432276597816010503796765909993098554530542280322910248419981822950138739643990733813322757130340377305017548083491439383042798463509129727372225908739675305330809332409640487356186656495838531622939067808713282353727595647894600804015824575404893938645353669134086412831949489707671818188209048445030030825818288537128239348526217755450469753697342376263263678969925186510075795979648956464513542569293567354419639538642901692319924599994630162078196622388530622910851208534921337633794659127763466815409383230387567275460119632894310830642045013163262699585257375137217800746044115562652110670176122341468499463643457498182228252106462292167323665100874182738161390047843671865528904830055053593163655199863238476814746937296739130259369195659339389212663356217896840704966569116443943565281472823084684693609066356615479423358980588521555839850463193216442275907352109917566953998078369769708688108196995251295656171066304472106626434658137583132053183743172461022900061327392747891817615159112176327151793974173289556763451306197421345877129907353374910205048961847856726378122580697238834487781178408403280836144842825345422043428893696320764322116154300466167967813308280176705607662589593968478983316298126329051638047350707871889350340530614088933045533973874049224219365048463130572464698352849629199981986746539880423993406757510397814230153921966615855795676578179161285116650630055457840880126211192411042618293541206721737126340422677612735490726890385850229370543639172670388963449852080169267296409195942929476502153018696054249493810812972465512702248699573909501351592753557941988167340201581511806384872109175189505735977812633796409933060694400515368153705299667727446825575549259424372609713504060996022177900316392853588083380365344762715038614656422380910932793156144531107233712944483900669600577024994226138291253681014641281706943342493030849502742833455284434500352700081178156693422444954933801909679217717786790963419109931668225950507621295555245425662407365288608660424831019545459150532009117815331995293173027744233525471713401981625120146684288832218187330945329007766283761973432040332139088078646567425688234338148414740986560328650975118579456881025719939960087014929474636922629099517045892106789646560096400932027120259825177634794189801466030128128759856407685773494554962437464870714949947747305778003908126493102390524935424909379071460870179208412075197546771704274021315575843022682346119695478884274782331802835339741835100236890078523772603685867416962855510000726633197829772099690160763629550666428137615393880443363440981125639424834933916116295966762742310242153642207807153920544751303539801273118675932092889892329279931043059398757797311126362643081203555191586084281465483033488411852685052551622846930642682081196574006450155644944968974421967858402597051446153874434714722834988121452070379947642267312986950504658510667320648230206481644703668680007645107856754750330222648360854196030971526899333679280709583932482123383438411151341034194429550349655960111708939522326897693587146570401933574331342536936297565615421000091597823229895280212983462242765359802337191843955047296908176393327426003249837858688982930719759432974704782762409924127128742121910444210922092854210325134614932512368849638192091771218671998148583075416181625675807459871950812008650305135263300836049994230427995471926465144924659935465111955185062830104633190493661354045586555687383336409411212096220360775989601159420179418348677350141423452021619666925433598739882116016243084005488802030348975299935632512907411082569855971634821513396234368344430430123564790482880996565712553347682631095518479958036267402114275881094830357081875869219087680718204793869750074856240189445518277571122099586345971117517948891780940469760467345830184208352676505387954990759181986925281162256749227048336643402275080307505559243061770513147533657979186649721950102470934300079996424743306709965831854063310600986662286660463667207871924932073265456780240723697053676856617254630637786628271815314184298679898580843924708537550149063670599418674477346223451890300144194486462114668663631576689834028551696622765132205484972111708135145096254529543997437472938407746320009206794652434269507523087334873374781036929817057703481602487620911526693978561999133186042745729536354046857360805035949630306614897706520831255525153870805574068153000871696994236795926174569774316925499481977286817736653867073152788876677888296641696663812462427569502145412640359140535823337892870623037808101893020078174904278639276153346176222656838345840029722232800583985619400253045712659655107554207975793011110298197568298565969331108525346911861289026957072219721843040148066413623437508125522878503496749526643546145565456146899833418699341813757355046176762813701616827752150336791585223638434520077076975035575873663414207055116033486449782182885005237606645219889060163926968135683321470472204791162509990458162442068344196866384517772463568716654113832426874436460876989265104293875260464035039560877272718627704795204577208629743280087135172226004276023594670068125816936518799953552773857379479737094231389686629240898023844468987829643779960988360396765568743020596084010547109801656824355640323055261531576334222112462083581890567301013939916031478571077835595070249200327464037632335744499440970766072542599863563077213768502215583640218802479427574324472094987141529887661307549630237204479058224875102606930837414048775838636110521695590706439861738336588195551743487493224979091458164621702818942805655146174635672178655847179575823796007672888232760674038363031835370364662580074494071127765408668245240543301479767853038926446515545716002090983740227884096257195770598555689792395620469775745393124661638137212367350002293000218110470091954585583233528143444214352333976552749446196793864899539359809652909984267041480802842775536165029496947020321603034902652631976900302726265903999979340389039458289712696075400858289633398784510080604498879760949708116970628221081532572005403083142219783799816565521137156436669675264174397675216184009920854110089482217525692214279053876325902938825357934687895468268372620945158652984591444337001977358890428211399385401293636856104243432004605853865639347417847566737569668620617879210400567561102568581921322793104743137160100623725134068899265559597288185326427007102231673780654736099853407780092636171117574596996383511117935545448219207592160622861136757395049461511650114025504432330942731861632179886457678498560540702643743264191171109535637288906818829068225835425313801517962390945545531070822562803048874097933458240501638632049698371036971067304479794185900587266763209023294593304807864316331575412912858298450235716764379410933688271189605663188401879202091478551487724305297737346158135273559528365341307896545829029745323322563042547488170467684426752182214975097645266989955204266940353263847018379633634537661357688046636390785487257257626323100626445636203321401755609674636442534169161233981420813158240770090907575492150289470799211406596562531055811458991459198115633485353113597295953688384478487519044224690005454044631682625731629493930800358325772503154827323940497989910592376319689435393814286590612303462690693705507716967272686150170604566004138177902414443239992784058304511626637953668444825049844379031769408317574156361991462572856799882006719454875170411994910880883880739981647233906979540153613179045288026062850254786281039589624840020662637001231931875800600991780781994277362683070043684896913388281130612339238044659534180992711852711085997269590628303714085108645965424816828213226106368629527963419554734887628442138655756236385151031043800645963857610365649702335142658639890438527463920080399808308935124488474771064686931914713746454651898451556797398637947600369050268476237007098862737787640246386940522116138844204918509872932325970348308354542160402933445760449522917157964979310748407389736619028745687862130456740420962949566142810691952318405457215410338567886764635242233209332703291402651996239172263061281643425066251316641692212608768247095501814550875425674210194867219911068727407691572375858688020120347598560940428290568115237658863078506877351058247844710274875405732324977690615729585052571710701138717620313985322667156372435666943564887439970921284763061253685090569167206419412020228918484155997109532317166891239456165271632926330669104319727441930979360257559805567746509134914300461115184629883340487116545940814130952374210458278401017138901810528791749863294659324415658513844759195066934439815650024037683483751596552333633672538540139824473916617918090339504772222117430946711821750810007857814025596129715889705529224921215967134944141628753065522509192849555864579003372574653318090138515421682840294283407998153749778623467570062366252683520086388869407331457625247797163389353832483691390199485285686829423337467001102189004303216498767440828493926896842245508164031799468656435374410340464217801131867161228902247323457706208508605688512792943372444440776216777835427951201256116880281518942161776816691364485078424823511765909843841609824760012712349326329542413310101123114669270530094045364149412649458751845702267025175700080182845842662894162024823454450380315516856683350336879421024114638955079287308316705603891910312854746040000030344673107248062532755935072212453493935338891752514555451194066712256063192157626017727507866124509211851916559848851461827042452140160183096272349457141284765875151960439366465929483787813928338381926451610078000565613098624695384117146468726311559615768306696313308311373451091415301928510345517611310673704780898752232865102346984933695477357662771568539389461776072317033356131689247749365603389585999269844619692749267949774871363267174430918688750763054490662491456977155921433912614961327955804794264836400458163225422179682281650169156574121261140128596899842303812062094910649310371660050950762039247132723077950076114656873032097371518352181230700454767408268648348855683011757182013641312402282938138302990509158551285047597979664724464289279538770177856501320460521923994447477702252800469871597216310258789514078875484690150904403585405798377099375714187344329297802152595549761384392611974893979544520651254289097866493625073329396365500800521456582581384664460720358165402247972930133672182460190924009566257686222816743072235819018657588672003929740558037545847475300137511158876721887391747676153632897558113266814580142486720630364578709265346456341676885467560762199002447920849796100817821759133539855980398351739954963383313958541733685851713372104079167171778356557955395229171054409739675069751614840650051600918736160863824642187604874588738913700884816169550309044211188437794233265529439936920691863005552985977491820857799564750465942222474953096365514420999487364716930909157902963639172514732579771694212856031840179921948578811098346772004820880801305656061004531914999583963787661134900079508010650157423612287241477627336207369162036418525191977795799060989328383943893602009709997997634810987216666373896499691058982870811876374497271285838729988446590943724342924108952735322754476654097962209347281075863291297536573619281358104097619715758117493468840362994096734455212478473831888725498036201745321797592097188579227491556319401523296867053265541662743903786066071075760140523851102183415271017920636982066794119449899932736749491384488042521188467150665511396390339910260739929456407365010829902312612347068109173657058771836062368967678575297523747553346752942061185688473251628745877047117605493658368863836739551763707335568508727432979964823015706652411408305891624544004261725801892946874808044917580464459171081941273477414074613284800276884473392564432948954190498536468681408323136609591134095907176485801515430619307451736559855809752351839501872577696187403056106076397962627190272346250243368094752980601326238480914381261393609727922573477070094233054175288854375452744120591752157855887445441604518369918050505498926572549790250151928253893041361863342237494969470812371631256290523552893820487952461076083931032087695234054384968029024838609562227169861519527650010656444201914158903925623375147776483622225637391623256170692589220296441513636016645091538766655423956599667402269097857835543751213207517508257927524191606937595972165101851465658126964000540869847188260117397231815607660362614377453950720844290334376568896003349121375543840316834996193704674088846064615578800343792215102876817009871730586108472079306418523371802512773162412024113647631004886328678465759521951028912424703227344849999368747601104023589167133491958223754188120395797798031160828042448855451170587329724564570972916006967275270751908547438191401784062505627723696337457607371941849048800999254647609986004290913560469585195021384581993457007649513633057432474260472699571499144606958865674971311640458464859711239123514640342459254390315277983164292814456567052518398657759825252236851801555549154096760167828676601909470583158372343152854502708853836160411684109198700220283199066210068653363581751802502691306348054756329625607833731156802708701094469883368246133290120810229133025031937377286629637524590316871956365419383545583576045892764829438413416658458694322095212759280299356616234745979757314195969100001871261663149656375643297982628609234291482508446445259317514607786173286161512561420311168744590092734820323536601585647733739185733352506702527682975426622557445424859226568458139425849429854162230799056549954829122902287798088422745559706517509798092125758132461005572986642203367690643299316323883490033821680068812765147101160923352715511011829953074194721057606248967348210151141359139456126443045971337113029923603111752848213560209111806834220056823792232094320152461075290313503572490887504748681558334173261848915274554258861841873102391417460288347187574571163183046275053347661521207182563390239731893375930993417708885297361017053838242860857879841453918155975229137856076863791154484642019153752397589183072270238095374046111635114658487994621866912989645838787481291284179625843140600400022710926631107372830496399263003578493605048715176438797510743588654638076587255821155993009061574496215114259301489501654876614218592912043065051738485866658094507895506799221531569890485477066228006927702059997655845348850904459213958674761724432815475639449433620948987861489943925209254450532817582283189965356956165632031783521057872066148575570492800361418712796568101871313273023352940510496366235953010120900206493271676846309646459372904915979236405410438333649999621419436898696006505873782995147977075256012386172814115488925570078132739779311400118968257081239745950876923028595201537747691586504327934925734349284392126166613650241380024545486062095141542167403959700748352345142379125112139334982664423867799272519408836249385030750130228499522611568214099512028739557028655101989231201858429548474490325006575248658437070670150182627660626531259479987329858919876940707622108682517288060131627602866093391802471747270007076462198892735618923111347313472216480604646046139399084991608257046524635810233839747958586811704810065533481554075795360973303070190067764583752678060708165843987682661724974322809804002873486309168409156402875941749994860372571779711159278901803112253590625496571311063211828724785739261931809185667836642385310497631609344969069791327407075235134358033543719776778293346569637371416152125441767292014197435767007284553233968988035332574326444362800972592078519147658676439641478918684025512675796668747136153916118127968269835127292643646538209173956244272043182814139175130660173684577266200000683962272467117476953780925639538228780212481604606057624590306706242482415726590529920274731086110053508201350864130590519658821074465936576475924536965044742932291400887379646405502752991277226342164209848336350952215342217227871232388826518466891693416544518934826710909872627639759187976101448444046635231965010672160677533238254174867854057365425422527667770773867843289082722356040559102010842347216956135631995467273109911185561950822990645005433851547104242417952956623827661086293544868921733146085094549430770397282210766910127989290888857629981336146219113397406849180258403862245779003457123009478340901901196451587860061125198547538168314024684749434071308778333443754143843809869477701365511211261219419199118114992539934087171041905863040493965876074480243433634754184689241117004955663500423183029408677910265131483192409635234040284122666629944293871797469699337957249234439712825931875303705589727474741037945462137799368473688663619918259034622104635537217288486563363067819457033648896652899704606299155435654348941616184397674453323718536127804849403576432169014146874796764791599434227725279484558144258774915095283560213984661033816491559570675431848802258318844545527322387741628643239700993968652335200493978300030956483680425297639094608464890227024090832175357682376082636916741455820756817108720588856762450935500172427390902806543389690406025034535257315331254704934949594922570928590830277507087592049814270601875411130377182868642681950898643510262377123614467917527178958307456482159408764137675008934189387713657200057195183356573995537648094106530694604141215429208084814604821157961507873207224505465634601373236046976940252471403394279590821621707729422261221956539662967363001850929799125898828707800007543328613250643577082233282158147866003064373413904814836687207343446836414604931309470423659009438898209845739430056643110871818872096394838886791081044456870525423183034628822091452919618080256659908365189984079865349233031610892720661911012725250723751494195515455988014382463937951021813337395218475667809416172341067820980798746328996741357858746067575408479886244059808552370914620117843997564394237287104484740361664932483159002309535606456913779310456086237510313889775806270828493430328375125499089954025740991654236525416101778064962400678197607900757691536317800560034230414985348987482968569265408760361447701058068954201201624474265976405639621362474661901947238929739946857251990903067332687744797657695028158114003433702621815160493550310032414334575716112791348080964120638829949417569622652147209782287508178825400075787672355423354134838821039897845376272403057637102100036393867282312057582466976651068745616253429940484123288909969101717853632479564124007331364941503722902874237765172278396383546324508866972802073274184153480945034639711457039066074715062407845962731068977381927466154320586435884294374825401761338135642420293579054502400421741328437116743368608422830274397237892135452217911099914859292252535587127003901090654154260141356882575709660679870767438261410247643307974932726112558511804637138505834840342772895482578433914430014280724805262145155770788941908744883188140007369760801541890946317579866991797674922381055623256671865294136407131384947649231097269012264380767937375798317078685168669617901614525602411212281431996600675962933813142181910641115246403851545115558459306170967150003180530525877912047976050110618781870430862267738651357055744460919666889487764053612669961109783393987088300666705186019639409271846448064814950201987066252489920755247221760060544238396469558407140889182478226567255153171399507661133168289137870060978838399035921025218617253938010120697400805011673789448392128618328961212077872676698771066501256402883442664350042762946609143684609962615740547162391047567935173827952852311094394747739646470466437900363680977368967696242210740336257006094163527259499115839778852466546891652740092175172937220637746852853000488906852816252078382405900983420416110395577203568436503573239658034660497403680732708877567899996723268910479364276639343292787767903660951241856691186398165884165505353957227724563738859922439936639218784667499155498439359072864433243572339517675146427316279848605873162315683263288869385051283823954365113966374973224430104177723804051466956218780863120578231182762265570971925598783468741528841737154031775731916379642001467526032525761022772578347971587483893811806796965259199115746843765767818650561555946692767296099214466075963702056578661415499474181887909858424660306645030026130380247128848920609631967612996547891728468170945967853131742408958642261933253290280983500833879908718852156002311351184806614705987788399292638866949882128533785857191346014603960883712299437920024576415454673326814166831136404360352057522069224696349515291021653919911899039790407004792424080077238862339891340384519927636757533097351293196731476397776378795119318573366129918098088030345033788445145504330404157833585832814353322389262010970427826826050905697779209020512028449120033493504940996413488269697895380159721908329188388307422855813162017876703444114564368257345432602082364137032743268086107719335419938226636771741801325987094535123324469404876205502573860376111413503950358231773539140027406363598989932716713872837353235444592630838372391200309543062220169163475634097208076827800977494172391664758028763020275912479125120845384413351764492565115061207299805443028009451912854997932664326332763111629972721223194974829157232582909095970121023219068048140253576571507660825726449243091754750151179257517498006249284096749326720775145304125800740711763352360393675668444441798000867287306273148959412021199847274881061251839877452831719704252970273603690187608409445468508947756967722838539552014112245978578313781093122518152405033911419218174343251068481740909476754172475640550708331551876128447162934630860535159212246612555997099134634270574781464972965543397416520742138601675998739896165524723395695971381603611359692974389025708817674093848995586556655960396558239543670166606467508029468100895566014777985480096708099926552573355447010551491852556663186129439777695899202141387927722312514680547335914539958584026293351312874559516641130973128810822955997604128970832384528604982375809780545121077406880619769985185561232393129101780918770437715245832677179544350795555336530584848498698911897111740810745684001835651190955520304690600733464902297019534000559132172427870364515313996931535150138457537539630203945720127534271795510639839171426255955820092442676555256801757150823841295716967123887701520468779550029465210573394305546416663718679132520106523055216587756110575940380575707416803649793828727723292845590390170235425163994129975709428798286487928515319874889631211754620946205818058253416882535245349613484369148773104303730186220991380853256723646043472201836703371812147681543403633798029622467963063854810241861915133795091822202135675007756437928388860735547782988334366613633808593970001407721932858498423278048762179571511956053426570447428106274104985677269802602839816416949435499518637188225696796565474365241789502808977597040570495259308035145537552772063793143019382106300130084725627687784363626596512111193955823743400338012357504569382191309292530316576034590107648781174960713791893225281282016048908026211369991446886271266347931718160165319769711002207450286455049158986952683410473249695612931355227190806430852259019448105925077877560047683948732468964310533033353174912079343566796325944632799266645693488137458966053338788282816689361295033513230336796899516960457796872804869437681581024591396579935949620447309064885326103471670494109362238984786413877430335756826715908179557908095182854366667984785896733886274538262041716729543504123995295281356864347404572600005569669313336394564089093872883767238876321093114224957241527923594711711869838438889814981015994749572385357848251798886539683475530466307755887405605918410548279246976270078121388875024944985310246199315497606914824522510008007075548693815105264184373136187003779942027117430299109444893896363661288021289106651329896429495989312107959931441310870521998386512994055218428663433858904992811228706657289622163505630668391160569341194541420272034789994917000993969952809643404691951597054189747996731593169743127716223974282620295721598442459607389402712742668153642132582705974620279317718040383417180935138210365716780276840972124103642590262769298400810263503233767386477746121117601753976811704205698436505477929760840899654003381487467265626746383390939364969141216154355553810099783787310850826183074969269226112962121932815465167254803328123774101604949433827587572115149362184199345913511029135639494218753968306129286077987848256780942720382465083692831385288079453926258744940597843041217557499553122846759509267448763809618272832048124772826395968858935015566502971320984679375277617855556632647994986819617042217974154976550102307317223525796787486864171714720971341213510843923360175481747593122530101052181250101854349276590281779444480450539198594576059775863939510955390478349508559016030556515939983651651341137716407826064050810756588271806125749947799697932566028887796415831130627605799892818479941841426901220978154091782559411331306777411497915336694961125380452114824343978332233619298482022593614535272245789491729300824650563313934587407441864016032522678676610172327668855951123262691461466640661911689485801910150394716523470957472238263746583584401689694304272622765179460130712091189153261192545793463426752977395628357899172227340792714279155607265422350559553028605709696298251873613680675975479702910007288582567514134328281639837358309251180927957899972899884413818630969617665713977102380310129367909198255570301614035903285640919519622609758891966319087011545148211146624824280729069657266194277545242877340306357121681890483963827500162043330314690834172624770788375050297741698305502072441207179839811906091310728666737903637270246898980752879477340192272097385039077269947997585367375911916302759177991906984266039250564063163173621533371986139457846949518455472476541147682144885110088198168505702988677418928366134506213962929211800548046430325175302856872680213670424650081018893638537049925257088485109056271429645198231153228889704169522090581020910921303491213292034385199501472894954033434553810296708045565277976710282425997160224391288536782428719203678401626788094486669691335999864625918153068791439717640307694781134791186883271126243222374560283986064442575319858339433506923092649530871965620105790734277422720194452280589160678680692523518394646610138058785944699262608657216452747474365656418886947147569390836313872248142777234959971344078057701863229882785837827194923296132350347954996968278031923510269862645564640320752803850868407404325984217548384247509213353765441045696277531856033274168812605804444812443319559687920141782393192884262051500558332379266072667572527725330323508249687027748780683641986014312771512948303310661225791607630655447491053279764823880078726693592430324243524344641950028043625730360953844811908038378152848615905828938129705512383482970299656983625419923495999186844623504401233049255160993254150716015350585972080447465752843769557652812289436289804049135804111605408931794985862206624896194999424634655705594932705828516020933102338144731192901891589110913506493529066893451158147463070208792340681536732150724984366855125222046863683648521151906816412369601863822845430812935152215933835821549363922354605460454203242618741229322362655089797543950617030589081836075970031786015274132163030062884808216508839890391758067614982675671542870922605411032582981969193054590341432606713536773264522117484605138280277277154789453406825911458796047576908452265110278952871936801363151996088212849340927764626354003273211150966363280294849844464806069234779599542235928078906213885508020870098913386725790434184393031452049369321159631611768235144954599379377430329617514235643871636358783886758151255111960128616698591244154881802162213687266497068011474536406787574445928639596293680947688763565041170223470798167015950712514812772282749941011355833795403285658360280662269075121000194467553595964054927571610765421724728631276122879139632205849235577174258099951342857735829944846636473148570707888017184958235501592236551155228056210686259274024565496569744444112961527541183685210888390253443698033926197636374192670111019854606030647311302905592316341891837166863756270739780042446956617557512750615865481580707281139383636655704012353128133990304083246873365526034005976771038053681491299392100062611113418572384385454352819090898233671726466615553844551823014990509383660096896827514197473294718078942286869810512920338608533429162035171628459279380480109379888780749499004923289316323679452182803598611322704206584759411319514675659065955392243879277968101499572236117694241755176571690978312006305197843673446802958731955018059541461393631566169502436183690644772159045218451623037349462480533229084604978086502331436531317631555928591750557979298146736247561186813293422164791866797756393436367492987188341378508341187595935244972173214569446971335017310313449749442034706986799330117502347741721604079980339377236539708238117114666992311135851674741670137602966214746857686948415574789926824022127514889326099204256893920394161208982542991939626742756096898178290688538202531687534169014220042133381303440865782043667484386197976897671997250481515640311617696742821020143399353213551615704779783208464253480552989240674546454275689823253794017469845517912167651566986420134687617130322620054947023830857139400981544257695828690441002361474685114822752331612759516739253969379075993172533972118141783124831527935965987918412024441107386688041253324363979191998667864947656918267304856021941949900311218822855795784979110990086015159240566811667480136243959335867298939296287398118777908974164382027474083208484115419013147487371962421096690073884521965901325925867292150818281458242368384753701912155105673268089385905396391690902492420264758602192622194695144805314909923352221964174638000259189553640448810496785852166521686458026891328331334320552571619255705547229214830896471699060901485272360300401153918426255822050262684074646523720300740095899831244766128420793449803690422460760844433629857015579993721473023159907016441933502338267027896272116441397351968376543808690677737069679292968325048593615394804720317742358669141369868871782262565740039279428942320235983946091562624307756308880878801033354814636560595724919343337999046355036951080212684339324749968525158708465054031235933111450288080248769701617334543599580880130649780236751179320625092893077630670177662080204271136136599785184167065049230437336509919347289358291782304556393661224441523714474814158166204865103696980003383168886326597175613554032528425409845243807292496649590849369311151365565437606712061888683299957280894015592935463893200272576361139140459723455446966528443046690718102448303650795907837072427785067810223097387273157793205671126866546466746972258103987696404916402348699571054017728909742358583503973198091364576547469056715502135076069599438118435606780329615199857893436967475145845519931679316996470217839702729796831287772400152325457692656662687935567415737668857812706793356721172811022157294328612333228485807165534190950431680456868551358192144499745662963822585431634569690451839994486492738458519126948894430137879628584232141770469662352499941779817088450732551198268400354091236738897773244766013357515865583485430027106383063984256701125081883734238332165450128232853397891579147410705389656456672393209875875640357572987698974352985531417641489720342705995593620141266720316865418119000850727404587678745725404749093600003746562711637736869620236657535377670356376302772309325594305843039378147759532202279146573425272952911850834971967487662911706156240809601216856081480716800150622819886747382775365085413875057059556446584955047221068406711864390527011953122152632898844035004482244997166528573037612880545761700571678520340972913413152906925683524718691443010511451348432255143206185833022225904080174875100264158116885003775305891677362448955708855381178296318304587244054902181107733050143978142830586372526738707898876306641075941669140183104728417044521440502711586447327926761715946970132997664288320824451932041788687405324686582019729227402010953774412755852205583045424983771482530231020564185980815326698976106436432823053707261225981427881688566827765528168139561227498186595472712907121686364780060661451010785891607732262068295622401233866214310654223916456417505314774368085940461582455041785045629103366118335120732322361328081917623497293029712792618977529652024433329562135596880071117961463611192225032522782143493906343344274048417038290617122414006629183411107443969553644730423445208990045854591551964529660327614815202670443539073066378727772107425905144134118529028130235965978185662654875549619878970167990859749956662160075043523659834596416951072538686518604283873707958484964198714512717452373320146271500402793855337780112919478308086134714621873457435968962207957791305841999360935719502141864807909220899100058140112380015618758665119796241179215153920232919984976966105257678698107189711338339449305672745692302078440832990983786482079214113304484515584769678740870733899586529655292838796434975350900681233424278503434893400051408478409686745482099208592164555634830097460496495829057973315037984210776049463059473095318561461524519564674071750001211960293776347681437418361963996482763772580767557723931222094225913253593390252938016398220683635855934749310820177824418693306928920590422477266335291418651578237955907313764981178701611567955615351406182097709529724426317353270048286181700561460551900450327663955665464238419905120289079639946416627176526207611074899435948324389714585791579038511727781317353562816593565059295716154617404104251801408909311433440396690404370193131404703770976739727355566666692678270847145672084795928473615724432791689976257718327581363075921234835889131036752780399968619434760112625276305589440928314708628769150952294884993492103326077455118744158117989482834506572073090099917454890358234833023047485311537358160424888998219300668358561302813827860291188481158373024214609484630285158307708987084580050029986604143816710167024982713477229010772311011296572610302405083988080145541954363575346989427960900320212587478712896940408547626905358584418779761087069278224048016650243928375107739618091874117591943447010419903015695030226817461333031800602098631247479525082295765222692967705376282670567379747306472396768021961884727665622023967302307875277024461194416997784818883182817356575127129839835504667583649638678205512813521453135290074444629372001316490852679211222444085888258503551799515610327068114547276750969521051432401820967396911474234043436342809771000015474607770373100539292463753114883823272301022299789292004024583830756914326280423907520719447457740226594963929191566008463471623146885472987536044599884515708444655646840722685557269189388939895147139472908993860745191298394327462584174263353360915538199120579225093607421697254084979489584956244312103943420463937714517837101251657562677072389051248194995285657313820777507020107393372101243020514387325851131947037594786890279333447839805692919074725732929957801312369797452651960153727273413061046368365197224334587053366748602435882569150932825867850577133136688238293320879837089327368531402972310424040412797378414339715241897624751807517048547744156298001250366362747244846382227996926525313021572664376752704706343031033839356421689918494187382869827982544922323027623912297090281366293098830751156990332686166568169385918087484968169051792105144198435742233165556575901433145361173289535827367751971487421930439923099652847631028800670079342384023914496869006546825764130521469587308245283667159672057949012840622046921441067109984344393394352719911044774662836576066942464568737309200208843875254808681332884541193816654944348882969591470718047395830689304069439012101081772737531533654833522291042072148545049313007942956295686836490316629787588398599368151184128704638087408495539955246204141986203732411274840219900131512844934067369297540611019591194017231254773671233124985248893935422949582955514661851470063332237066346966430006011770683145726268648479946936056961658791914408707882317411440413152922413166729053034150174506961934854045114180067172155511810697437293903078834233759705899328056567812145532742271614547413438860908012760052179723623824131712991883546158990940142120938585952377876841774078881296735480753464558874303056738176150423315545379798534892786462934495811145619690881354010098437081647064665507415517033271522838433602772494774298158841274603610860649463270110233418371825664908419869196067840208886979182734836571923772922607671705993994437553937086689470391099043240739879340737150091379639311055298132793594268262494336567058429627307830363650589804950570995147036430456709669096728737716844935314607344182463198821076330922880862513870532221036576497307876998845024010224639783780778433440957847863705186852964457535301052810261626775781632907375020723542806168104302436390919917906812738646953983494168636869089596264684995836769158689709849679970655946539989223919367753109823284361707729727928490909241427469698033875672871403335450768275595540394138536827846646748257461192422912160710345095610145893202448189798890151783003354517023235647615096040774881028435097862152801623031538591847361337628404138503769328017685108254275577958153373433675795380699015175663143863089924676812796642576734595364592420400428362864486079947650008529141615256056327807226004443970369988680254882697328021135272192106777337781643473330674488415044161844217351660947522367527757457766278652256392826705580328936825230640891132737850239638313629846539231628451530743651774524620209399307539057736832950860819571850029948723283148077052905364799315782921067356066590660526717214151955494106683766620908940232813678203578689390089701756575823439642681697109715031751392218924759913575247852433949100595520514078532275731100559544644722960762272656181787156762493195752168078987698327233851975708663436223086059892186357328517643120852817460197167597409533574170281605111778447390230643266036246657132310195975813848931030094699713740666102521431233446808837740818570212279595853521973955325293785477336262808179132390598168115127694855964851496611789242571007543167875796891871079120132521465595879691362890305609210613160001444699575948868298593951410244347430132172187467313311548585496395329582091213695090556879651442832406435638968184776099757205161086363532233218073497678586297372546746991258285665631853193206260363930283097130189536093897039446081001861394708167584247739127967316494889213107991551291038369425259141276697809735281225062456893134003796562593163691551770787940640430363911480079878161708254303092609011882680774157614964515542514523479331117798610543718381468919701516471544417366227783176842677728747883906020239820539194269282889734196321994742522055144553696761584605436428513834286883563260481631924639302833150878383232682982810633098765880600077710557270653690247618471485003099263229673984644939527306796492692407641250986505885088276072669882552481756626179633508938938493786813576117158197309723523361705065479392544874924587444015920413981130287959061704905243938202435726904778914993413651357886123613618116678501372524784213925617633647732339898691812564483825325145790858469178035814288126492023348562198128894873676999463698138376118372820558797358241590089121001631232391987337801017458596770568444287058002362149108525965335309311580365503188106346633682950544517615351702196385044426625992144829488521791845047009648238941940129524083985297392560590486919622928281049535307123378794959928771022201919059951536533134159230536145586809258207154329857741325389644648989484687005620868557061891078660998484393794336742465012592749550172913960831511318626581694009874597403555167711982720612103833926006455002095443615297666166450907594304047833594666118815123957963977781613354402633710757917394892931775066992715287835469948085149424623383568574426386422698005236571054171468111888279023744935358905918274355461723205066181774206570585954951741873039569928639072544367573676286370218362294478551724286921835606693231409514514836861335054105578480080906980755767312015614116452801226181261206593876900550972324144665390502404901439813959233979131704290480213983750671320806450853777217263857511866020839164740400062984957594098238307820025932834357320075418853329867908884167457139645851482248644591312249215365554774038307568418091580409540533398488025914091903853418629321217029586117270113546479743425879863999579288776775200849245237175595302719998731397703554515649741328968120171047302111818247518814779941057885711969319950131527110064723094672372160012724321411567267663263639967335654861240704578539871057707254078116270688926593398930283403084143813587376941126548411807166894615848150828116281119002825645541192123893221750858829447701852788232817551866408205734582403062086631764803169715330148242625292964803237379140087599030735344365721132865732298731407919223608598194998038788360114438934232920109511757793376021361777650003659782757527675434471647804343451650673747978856164036438464951066891378463079081869850631722455675884284179025099787279509426936513206720946009139528071234909181930007689641206497532938690500822291465841099999141206798283213149405650037303661118820456452950618570010182474181150653359552996512325065401927577385155346850518683040178460928969338617063973217670755438849371566708010750348626198611315570733187725920374095361938240428771323601970765420162002226847127959434688199328033007607805934178694588096345393307404448049368231377940586463815469234970152216808444432377706653147433231680277786762925070811588739991314018910716716767119051420891688455713113776054518370397857376848484830381950489821385198769246435877111968826570497605397070032098579240311974032414078764264645054936552177417729257011216651497672108377269084824683968841423190834009937890488228359832446578832802925323410767670052459942819686598615067486795181189935463621196091587638765276723286838594867572664908374785081983905411553229913550503286030101640327829000404713774818502917869625156101099812053131562496984851875016836592875593862294108093798521382109946574676888235682707642788560756119281283675909766448732444853832451673268322158218365464341944612016199483543593826267604944291763722429013828625304672350311073273560128962442561847861584407425559200806834867126713800555509429689135834484606155699826757173299967304709438395763963322351443373904473702040923060778038204270802923894363162843583809636462694218483447064199591013857560492186042063617393526472195778710897631968889796049788624618206431045056435018271579250849775774425493555893556775219126090338096295824954500418000418719194191235904553541423185422934495685812468486214588021445521879312596033002964912602239069850372172095788104579496801458098535761879762687493190070604676517001339845883496806424554972007078472934298203037062360909821635097482437882598829543825022162999855998199311972963327475939264453978904649625151297654929577305409093750956807037639785778236434307984617437865477432485130171191692226220685140450678674616128320050661192600046549941012444681842095508722998812039496595955192910742263141930348564884989168215418696987547670179394604420288241628665768292387002425717678079295480825964250346590655404846655835676269835226642032474851162958140465949141390552216076852477223509105488325343433031982073184382582125469011032347153673925918846158908300470637643788308062034404068339481699714397800151188887051127961065377435891613767786677218579482184655395981216786486343466380495793619806546486554698041352641162836680555649787618104057213256855672176036872006863292091419972976996527913944801316946337736442498735294063332507357657201315422019703903045183677703542775791833411762108870547789394134450129699354563457657240073668202791247908786564666412076053091530792209707125774285480350403481384319586658205195417438180731743038980299265872519172555399183922886448730792517021588412112751992577291631844127715156807405912088278278194858159762516214600713052607430515927597186317866654765860649074060489776723397139838125312447399328618118317325679595445426566627399130614195078184376143603612817046378838302867841740683394710317338228603072679820058836259769725135194796478844900730768346047182436485767195438359523851501013541929543763008092589341616937503102840129366969391124103557469026199050691484248388895019389019380233387842790753046951875189798124997362317184340316850658857528150079150203731527333222642351593411816080258457957975498097266422413026693514654595662616331569788048054411125352035793645438859140512738992703989841558614724419421768064735496828057730045370436287244716434654730762457411982902806890637425776109771945401661026628702419578480989974677222135848299778246541736251798536451612655610779904883415631156681146627021579864085027056577410287046427251617492352534695386568619395007488770134458954412513477962835407298141144402728195079669569977366031952675387658340202005322987227466899660544300428514397332825185293979926600575531036616802047462962001373495611134385278971976609016719902661212516429700709588708150224051785465061443254540982997992877176572212426299525462526370558358620242980016714928218969984666630086627655037897719329880070935601379765940549282695213568425637021061331170294272102051742101279951119737475051191669639061663560192366014003975319779121471709215700798325199406284356469052114262412544798652224604668936286441760484579479198721017263575263774199635616069742512642690119545486009286899973873132394208991587549708202272928067764744438811117524423461253964710247534329173712932375551001479425420361516356531613158968200590610692873034999208809932080183415224730889273902755152890369785227955359141628343882699460752604405607765334429772165668114558429855564717254385649080104598382796926759758928023226075904826301502381224874497705444994505205017686444601060869544689972097843171924493239150935683506813225910734040748857048883709034244978632993039181850879548895580646379750090859094528327760050138458524065733387301406586383903328227900875982688130732740504413022820240877642214880493134035308556301103812971259463829241972225353402962606122280125286276031455878816228667223475397705853079875275924173654968019320528077551819989619834261584797663555398229051631544848176017525997431032031981487040970306256186892899708868667329933836417515109546179475927435983129874359489182812985779936475190409521819880996883464221281156579228296829291746678690064896749359464261661477578875157909090187236889298200162250810356984312057270875467357219129355228562124460014694977301975633078550102738654034669456684154033338867819114356179513088095175291504413812851307626248487629965793559455931044545498702949432389216146571352230949224831332818104852074240830012860402506433704564848661449790027713467324920800153379321535907208383498077332407622031589452561177574174338670300277280738817370494243305643450428286319796007954486511676444012955691137277527797332397716516062055080692635035063991080402734042887352483976032654708174087994827670748926373414436685452817471433266264600157194873726676847445862619369633544674271386524153358742067449361918225296954804209683141130911762846518004524015189694899439938592260744296282243563611010200561893444637202956267119751821507975836427520305228783613509363021598076205794740994678115218471825201290709318204593548142539188523075352044951944423896582824219431787383518350157642870594895582628054874835434655186294967871912923977216146174066969020514137994973058798383284426167868454276715587770618803691167638377308855418764686243653799642589001392874241395125079851174005778250135680089605667377255653386873955506947780699569059356056099215466115555888275299369825897198503720609263756514177260707470453470912988233785479481063706077836000633403594424296572793726410193895954662702078736124687167849294933116013891642515338247818268927506707392415231511240284768230524576111744602794721292934733759122378008654033851441918514490770215032693425676622772048203861530745321430375436709923561294704007559905332735573691865467033624790784186838853347429539344087244189745304512141055230943005775672823145092568334893995598116021340777049385437441855337150414406499535091448270926431548330997996749063094950605097529648600803089829159753982354307564052960317978282382907506775782484290600032766741295395244144545567778828917067049980439434664658373558887221754900749122375657822458217958221925762491788913387888467791948473054913414535183262337253284548397738681112817003673887738537580246060207318976785757978499788994445574570066331356410610102798799752003033478188199719114043832066911473743406613682504488240625764170068034507190584862609018634786878937039974172560152753902724669252552852799624028635712235057256793663061984809962774815435098626295013825050602962725775251488081861940705465057651914550098163527131093955353369164087108881081247244923574595373396787415262331381384117285003528208438639325097956458890869259882560153855041277408997310644434371664483075757984598957631335206972840352303830352530008183233820564434661891204301890417922178150380353282463959412607806035118503242628249104133846650140348441004732744922629213876557481337235538791190013153226908376783811374725854248351120470371192551138510622378745780097150509411454116903367460355610430783634923846449582608593893239965304130955716538319364031084316743713553377423847118867569276089976721805923213112634638866350853314524967473349870709943573785913029620636760950736919730213816507362425278718830215545158977787653996324029712512751603897026393630588643310227773944948427313336258234170995404488814218642262942120607878198220796980777945872941697980580938307453819549821810012222120438070602432172045258701298752600316414669971977514002342815075698831199314086898692774199919100181558549364207444975428044348536787074657307520815424823625470165568617574670750585799056026533570447001804456290042500001937231414120384150743898460562057880901740323571140820593767391733766226131938071802271233407708922274157137040688914786578663053514809781005226610482967139525385528514264646636549436735346907300801002261314610091902133433586528107241362596838058710891910896283240021225259260097008204090743004900284557790209494750893745083047518328498317697066325902470256324876811364431652795255225316289942528923627158651751798913232803860834720956552747033290376611153205342174389496455460608841718920594566636086300454775019868398556540810097374471215310644853976986744160092494595108885701894814624983594219254044546906461302724356130193129332575720421664020740110633773696776507639146289980121822837766464819886578503396874757251745692019104360501770306228807421395761266101264358075711968440730523983755231293610863866545095309995990401351392214048746713908969801804524885183534491145472963225722168092251658825007807457056807576728846400893630190804872481885127757051865015286827410287372993171288141205621065823088363007149335429751880141915858320664669260212802867554711602639775184280677307295203600031402875442133829331001676993598528371241857583688754809016255758791838726660323060955889409679216214662819873604061807169541742655997848572815244381761764737726096642451160746942509417380864781483836544380244976281110251189659494294629679588226399353234944176445206341766318347791333569960258288602720569382615742049975215337435124327667160264441729172501641796661007249829305814931504765186856766732183447588014257688827968916595283490986002584896522680699179224940214484416898356624018802406937534550778765563601603037890906787494137713877587639451655594337326842532782934043210112206274989258693748209564782551479023861146446828641439006700425032739933907640758652936348670724903214850953389365097616369755222889467137505784509945252494403707646538825576213519075606481832473192958439867009588407513653110612191700564618758825926660608865602150472626519738365433625506404032040287135876963705366091620566605596530018990043523171800930570638130419534824089278565597460359287860476734140035572694868768458395976650826925286658544423047995496842626620286577236522334242846268463144016912352262890921824890385138531199105231983007735400705616671883234107126937016361431691645101603539647600167370252910157248971857214548179858370524283330788844235846790881347753382126695666676945214202839959623385537984227024103256059606347767082160781919991003593085053971194809878287915133287618162706196195718858584041636480526209893084592166278010269880263673096712509048882846224245958568569518158990637393313814801623382900562571746298783521583083956675410779306006974408250859914386083730936027482749646956390877886242921723680419245579257432488730746462700473629199227014059959139689926332040666181857525118423466421395501875674425199488651319964501296703472452273088471256003451849851930640283997590803726752356567822233799980772195033803037451988844351226540637790728447912221320649884542900517749045699373653180887615934000352378637971870839719741484983358220902752560479384041787304367350559286390517695538155130751235955080680215892092059975906794157568180505720447061124303589696539642390985509181152405465293253060685112485229243789722065245319138479714561527325389144287301225575387541728221264429545165656094441386912053032705639220163973213815387073961266097360353877412848310563641024200588831655661386545471519253720143757387485180170714305813381356489996143438790428445654820721486353977579836269819131693061474789482984933909624634468385688970506390747945743253089959495234740216457993904640236867330184389102815913744188474315143548251879091207946024537313062563224318696931677749655776615966384332768149419670544193804366496770642595621511243038361125984003954292371243678042002540760251745700759791330983916090578919904380716003352612947800971301382987038046940822333544959803653971368911507503420835864588934981432431446120017248060842169802833007174883563041513479642766450946163723773207689534455830460496172943571866876992841541633166639214264199682193663075980722990916893061818092868904030518617605679437917092964022434230493533255146388716706988335920649629600405933557730667371369337493383699101020123336379448461656209570004491424397955662230902782675304730452720381367661136739767506103560779155023636945037186012978757964395924666220444969521033729320755607495509326983370248280215687647004982809594514764482724166245984817715583319209304939687026670921765119034106917167710151149478779256584733882356777785298941002967993530794858932886529321968166644774118639719714662497963470689264589700678485115383382215846993229721163061632546702924747858109197218671045196185673215024884381516628491482650148008471643429048082435742884152960488596709178531907387141967320321475081523310639440260921840584059297770694149767067271528387560903450122078592771237092073191081363370570946061464022149151038479308435781964441852236173568313008026283668246904293897681390226118309515935686645534093600886277808647458586686063684981353908799510973926366807841245934014330307653886673587541544010118302290202176684061582482126561704980820060019938454031344885515600460675447262107949391076179305128567043433232843451573387853188224975437575274379842043534232094427755039862194796766290904321943888104971390987074811526839526352100567356556342647358253578592073793327838144904785230358285981542992194581867947173091520741034864142037780116944703981907757055730164897408935620407944316882509797978895873518036640860323277645440763533374954964122051461028473789364102168933896324775844619488383386015290883134679276189206523367752730935395648726239562342949761452384078354191115949378670795811558612444923042931351538460722729208623907682834715779848898668423436265108923230167611297821017034958162826753323361230344221776304899178147082587798589718621073105889216284048732793595207529649379229099324664218241252615353878633082507943531947396467711389691345871026200856556077830815647750886511342561558527462615693442038110169493118371622695272180907585660656610520092417759675888140622517009978820664435769082994161600491409598215359700052157021567983536817844688574128087996350393787255444196048073444971525604926511135706061229966305515044797278909209233636756890964963840562105117711684894766306575041007541467164353751363990698894806634202430930641191334290401140398733222008915426824538280936417021500525687455579127000083978793329171691837340131091099485847154026900364596740664979611393620830805962488414171783590005987782708321933194288979510212772239899551681907024867357765257353943888505882833251249982306156287536736549754915321925638466960382092201142410387492909914724160352938694883224659912278921684916820470624172394838410822274294929751766649477309184886811875224314452691077757266193468717557157786290906057705808641442653200216024446045462288144656136248016332461241388431087167043585704926258914194519974887147316140249417186856892663112658474501178784631569116900118345726164495198942305691697913681955009606186693358624612607661409235034225300898857082300837268670515199822345131705410174681228827433335471953722166860870962040851053998611380242018142282729709421557543972272767925144076064133207211711578397234153431645776354613355846366603809266431314001898174679951027864365499929172541076040622451231025826981567396693767861154522041843952573128206564310316206826577296783023745747945291384520444183334589706742143290954682209222817786698867458753544858176841270470124061842469728369266605242882869778540727436578138039384372902895466302950489635705793333777977955661323183090687274267514199397524934218394234541321446970480707205645867427321209778015760595751269415349789659839453674768336096938675963414025089814797937964558488694632513594361127907320299273246922253207096139414300658904108290476112495158457200521605549434210225152619790760717786073550314290112714017894856335669774021549536553838766656513909734967458535919504322300484492735791212045148135537522137509299338434867211819032032380185630675640948467335790349372434102671315422021150527026615810970511518502090483465829551496942032643365663626844205624469985569858242186432039507475786166834409106579411415855886869220720200755534584914724346517047119391234287620236226164770643935393548862951957274221240885820865859906718026296388303061658067064747319165661091410768077727115841841033184921995121956486576705780865178295593869514981391461073390955029667171836809706583685480267770403363288583157151849791176844656020496525665948000507042542837154401526254628849506791038131439510881748712965850387845608000678221689970345038813745499083045674976249791968532393925740643534897329580857959260153236363475342056375749406212518253850430723702069112558961823886922388964433011959129474559908748082901696777619203650811369763833842097114804062151828491984034631978904191833070081734847823183708798703558858936010539905329731863962940925759431579942013215579012659770858820357472897781008928097524216499693787666977948458418964929672806171326327323842065270410770006601272865430561073109721192826868070722344963586830338465737556568854027685311657944517602899325749825446324272801434109847161186711875375102484488203382826659160579082711003317567464057537669360148748620569531586870048548762785237611048622500081576048236416529000891221065074035534668064540505123120821839616628744223587706574425027739101159172500556264966717002160744124844917710334383962541633035086137999909293949748229937084455622652958488587046508901942781768430912999799240426622350331210365877855035974305786731272749385931404243837069938448319851134930492233072172418424617496043575311597999818003746414471334746466326194657787700292983457660858397684683041665977840061168206197426560658509389087867760918559565895976292037284997397832081678475903784589023600858225778245438628301170911391913345486344505189590544578957422568244271733692228895717115926463853603230471278441314741763548695391402893493936992678162859049560410786194657452550484248981385864174228692474840762087442126445861798784606195718220905667957455400661840235905532978962272403033782098023009374471593543905831699605375961507769576458647150558569575530470672796215843429853575648315557719591786396363279197518463890361282596503543650122988266279364432611781985069564944777183119743717102625874702383326887928531352430059068925579620183207237407808412312020254262851395419016780643267840469780924949510166493875984114445261071511790165861444804026033906793364670351707216598134946111886426433617932251930420341258774730470296973466495635651882068460034344935464756459754518939456093876218308263499697162599804812036286545455543376077045961070255586417178467745399377543232258587392992255493632579272668614424016637884835429723425558084016339776164376168937211525006508725933633516171188415063970042560484897183800519924129636659399460791060898919680016527740851026181122186260944567826729894635956736309409418590293933341375344326219992206247830582143276328650373504521507786543162209243519897847749184036295319812906235822302159233823595776123104132927425980649951514441149051701014037841979166135547860653653868203266547338458724869118085992503273961077829147792544099797678757692306492802067137984972169366655929658475275853175534643810546215513773815756361236097676895491294091673607995751675727034423141530468642301575071992747755440395653445962649336356112643338906766381767295120210530105583940879467605747593177558891491599235089528217126260972189097153209150595045053421660198927026587787421605306363876525411005698093768307893782112500103383453293032824745661834152298513251828897047851198042647268360747675723499699869489141667678770532014234884569621670094454021253372170748765881184587560409791750078447410336426802961491966252241900997757795435539491241021622619493966308218309475597310309585250796788967048610580946028389545627903276302918919177328897913958607524218575542031137661879286224155220725745078528109879011371472149836588281965830032890696856782163263713200754573607675374727963030747260411943582011918209998467430729584919643102706753124639335638095981603912063287833724115932393473613238161139242701414243117728792367666903381491889632098605754381536783006215034006923371733332419491663031405965941162198800142020646026667550670249242243161679225117827343022367032203425125025876276535967837974056943469730711333203984691284597786207709327146442385570126390872476369217030496720327524993960383351012543833117818550508785141034841984152260163940168997881965285098778223835781403291947226859209096047062727077997723296493462790475703901581606602456973996852089460829946734528951159376954581472589591154136737065145013122709687302685914841436994197055547700783185450977226869796176592175382310850806157617246305999444413035053494087591459111991899843744899010823066252727633095006889577835145591511798218991289907106294041721694216140438787515197218503980346250426771025586863895254622305550326417121245638996314228987751725635883415271538692555403385184696925130039004109478963601040552447127921049716924580387498902026139487859019425149411926989243259955184032242445816306544133950592197365772002784836335193849088365368183565165967355253059060909949754088879658108740713452407879911305667807840478340172117492273815324255043442046246981267733911314287872998980623621791031368933547274695261266118751755279276933644304558934237474232110111384560516576424575272338023748612634713434720732389683341593634537369701881805937711400591908689641107079186169969296213880580212948159362794580616932425962563455044525399906571768037396286641108225121336483394141463055456639011822337798947150784109979336786013516470697950518401167097097485136429978890874620686384086099580342344410707305152954281981009265272730934339178281917385808603732880509083258094372581039476605748967371309588568063568412323364828470182784805899248705222034098864792770006548926892043005725512118324946248445717898469154379947591384489180028796728659794115062759601715897072236910740268600072010814772795925188285744578223803754591544828362524666735376666400893477710624161873748076534100651049969246029164589113700834916456091365107768046925901622351183404416059085968847752157447167061917133525727982234073796844829978438487795253593417322193735657645298496013314752397427548722097263785122134466352234212407871483131652969283994261885463763636588983556418287624761897798317767788255722848409520484177342656194776891810561751149232099452236160916428345170932570003020000718162920596097319994777262706008021689568854440240836631275065661627584355435830482929020269096778893371848661403021613772307603403710923675279268707106407989224104660930722648668347954107893651722255493659619288521767809763093824142332648925194647385132367524422049760684076692489669836237271897896841630281484003158227815007891791265564242751778996486209949118953719479431078161874811845655549334882867787618958741341092973187907576806232970823766234950918721131086382658392684597243698403974934784327724172546108316488822859948857448181087918126168054460504874414716641744018995539044253328138915129189701523063277871382704803705228434096161605615576228295857160612565842030982095761704509889878006395191386705249818070824082755735422837257156246044691555680475128061696361245115304321132502558544368614681063994675193994241368597771196481038047240842107467170791085757838752551204094847418926482467129854466994479667636634400695566714732105392733395615690100339704616742756810868395797631495121653257879369358836132808573867383526443226603623781233262026483830492963654625290282444709392086062994392053382277033723106951178249395890549998635751348287377295567683979174562568379404977428225614181417077858980448085913177669118939038502008509614512499063942742039958140273391865585438240970967431222096963056680393881433513477928575644955995145790550177471555699989739714703773471642805447146501142286296437405413958421275877285381391253361332534999336495017904218138282863932686700014213632866975798783757351276039666879761875092077222422284709529303848031654209880271404517004424532260140217441441815219530770038668419898741392193484426576964371134324143684909318317125864805686388243996108186889988021101848830957094521925745943708876549497542939951181765517835784111484047758833643924647400630340221099638306613484714895664582363200577564544318245191814249160700968132453359656188170431279427846917941566703221869815716687996995873561389074690472635164120521531276990934509960014400776762818885588269455939947024831974824407303001230346507834664794360149989106762520501763874322041154936122817046780840033539457307554849169944805111638944024920138064685783597753829974327375480399452880822927945639439378005325221476522859433755736329798267833877769879269482596524896121883434164925895780231842572374750010130845215867525481185643979719644937280170117830415001194062444886205358819882282991901966598698853404220722774394407397918273674183446634164234446637603288337135890459350154188649482868977990398961275286385056320359738931026056688816578769845831852587033832629316522473120191845365926651644715350283638977236523049085729737160428373467618098613961738382432797868503887378272751978866384710763604180260093531042268133797252258153587394113339490192659177167161261746417982539489694597884044066722120544499477000156991954261704310563767280714910990811855803881772511461676904906790231711185305519289731606537896691663300384223458154297380282764292667694022898304036137224423838776584675177078710299031706839954346024256992491428698135052698180848002045726402584411381488888309911579786445689725703570754348631162008971875335128395621877160570948408677889804914357318678748211800954630101966326092443557285693208964157576164747092256303395517413106883652051205897329888289253923477042080732521598903253908119857623625604333076953340627912204022037853581913656201895002755389080931500008843385729084582153441948344809196004519540911056224165364751377697717106287782476886254346369086903904296081193436563105965375965891383313009670368492632708964586759099179018029374125943648956340417003707748585109665266496501793034015801036509653352100408754298042948367644188402068020313708440109888032560482532510436495978599851855088219378541467119413680700044809242784787456529911654210381547131192295238259177019372804146379181668994857735305392206826503635422488463653610817053548824401836396230802294783885052548870552217470965113177067388262932716466210440723534476096755307073812719528304800595858360700259691818567137052857221663658412086735424659693516610064009270459079043709532249721767838523633549968641595215407886788271775184637834220326376027081662323955634383588527769736032700119151153427822012488274588017030481164545595152902773276730202062999144431736522943352120948487617504260693630152209671068429657498375872382969644748327854424730817720078893131959379959307532136077656395063741431582497918161015933465349536761983515256569389169989124610412109717805555793893182293605865961231582452054925309589562560251694900081615328157720124706104885189465334674953588669986954182564579060247675713068247620665319605713658235349633836490585690113101907301806492302919691075519490157350743891764158596985097146486772833836416890387696434328727504909114905641318718627156946853154438584013448860683172630388090628948735938115976679046854090725174442562328511237121329758361298225942214197400471373881538160593531311123502065217614472382081089596771144636035293587522773855314671220275694605144972710584708058268155212992701761986220199510592244883680423508405466949072259157953437130954542184286857151993837567578139930608674708825099637876053405126527528758946278788865554221153506831653507607162223872368049641468679094667818952086992642384927626419225070066587185237515089503171706034047419549167473608215509449201598784780414999673813662130123063843289625668001592844251623398332561470701726883411659009306691348529177324767662714974524228252887918856980495344814727348089266889455691744161858346235628382291339423396102446512743206673279172928846819135040750446735403523770533716273290246976678957644845417681332227157893307363976929684503882943455525554387880985944055551506458318975812403948814942251136778499894424411248160077097623119617229477578910289160790562075122179080550781174101584477947183803302062407709199307484449935102876433337302653688062213253841463192893692442473401398271003403915880388280683126672215199066371125036741282844904004055101510178545311780061797736304057890153577047411238329750884543080112886478438343154496762651112520952893801579453681692767893287656049923516453873053640726203053669874891024319373603966680834449522041270830674631907755706853535577857410712139604032486273790760371082601178181489439443635029816478822263409356085529222888748307294498247513512961681748399497080277574388997122794879045938082996104127352551692374658550296139634991095571970896368776161122791403538374170360013880651611043625257133670600006349157252076304276964166579654945197254199060022971147504871580932288048986011318644856764321238720764870662505285634576402780168949097778604581782446487579582072117296265488047251875052570598307467797134523114660528504315972694499290689081536392349820815455571392351619959885034831618640199747073417057969500456154645894269233913501013033117127409482958704039079342653170171261173519213827194347760454927714917223489303807933195602956056994936376861887551679132450773281778346716390936019934230427159593570761589934312640353870848191739519678153852222446463540271239534093657529243272242069787662474997401008187699811591522640170750120999668193801279511410188077711798447733139957783027028913094560253179725123371242945999236138227918340383122107830282842080344911337444556542774347615151948171583225899621946849423695382500928369044732551734996164667065313842224995214596834554183459277637034184531019786201858620249669915864164862734943303457638919253752224293359474039383143046175351790620102600492952501572053831658850021510792553813826277206117279911243392433961557259436464361284193842142065503705324395424453389148074136389874774385089917389684401479728204893428575644124633201570260993134577382764846505574818867843980197503628913304552120749214490252964400555759591945125345007511869074147115782363515130245431179597499942466331181807406595895391792063926795320290164079435604507459234244757769462651263006135207114677091205570668692119363641229106309834342703476733239037015682680665446990927512835515092480887990862779393131079945452059842182117122655896489745706257931628966244904435370950164392641263803277001780061542358153616853635454061735939752076671246023014817852206525452060300476149379057558948474448698109072542826106874706822784896279249572216216718663230632289575177780817945243470968504829321799905997320373368255739803141373719806844752387222456178818650562297251604701155093176712572935876612329731196964285148396049092750577955202307993134119324964110373335151094686442571089469697668356039779912128278526793773808413319081686768275954918308515969661466914571685121592160932812436486555040314533796360942203378974344896089163332837001302007088496684839118778752506110313440903406034559652140871435015001314745423950187066021917252248204471562813659788369698969020198805381102475278311050397580259858678295632741287307348071021545065679564090547406352526758103683129277313729007606670152258426743666098857090789834038569286752198381306272637138219619608377500940718240735198886041083436007534106517105660563669464680241225294548726491688962087439560677101611858815918210882368697882964830280933173466395296097757479136246390998173852977912281759191845718902379811888318885708508876729162804460054307719259353630494486085939208648418880649596249260315025057197722070878888243430989440530299472956255293821254716567306546040246330417708057154358683701072563340716328516447297973746974942647923047035021831063219424560092039144224349859679466118045198875224985888401622224397511918045411863165225893808194454812318449149191222967932747313591188748086298133760846492994006589703688631311094728581921707292242490164312758618668897025957353402015634049028210004825908413235985617731992319251632882297786806916481094758979917203574299187137228293067247057615335579480154362990077144489917644461418336703086947745596972500033847950852829648223005983922651065984445962140188867768367236169633899100755572546576970048364861946834013836622287345533601730351944222715771914147781787374368929907680815969989259705374562740144010224953408605454057164400492852811305241582998712416043179647389560645980370492434385857258463221553411131487491970806010598606454202882979160760771981999791130383717546067704878105921798324106129241744198540868554039204549811199148911101839021780831377364028337253855184209634192123875884978373836651569058083563469943920268289633542628653364417797850419865244760359077390587717102564727913360884830275320783328989041512717975263430412880353646705883159173576320231972446701345898553285749608455712292419858826644155712558021950297532834663125394955838465966418388359289346160309348725889383669112633894051675534127496476170758631716869488536841308680846729319145125689556557875630070379527362097072756035728108754362103712251874124039977920459958974758252957513093897733351426377325671782381100443904814393290453553369295144295676719342643878651747540664353631526887453666572533875856775701141835129148436279606115259292758508613645022040345558155194607811367426045425424387874978267996989080776904054338002883199221009642433749661197709216690263227463815176950511354868090501677601398272185165615932481920741753714374988621861148684606590915064783975672513819170654922049978459728170387077001799405007630639889391443896983823461268118166773459837298201502346092644815440536774948727310637456177801255285451892681550805811656524371112107067981861981957779311914323278125633813843315697101068176711630264744669181979274351876006307698119752531658557057066720867842943192809608523470184202564428933681904938693998037214438679558133415435769003243536533543965879501732049469467409218634213731848080181693611253082534834809060641307551068380447618479266406396716009408390530393437217187789994336887621502042066478897951030018021391636087569673079687108297531961353246384703809435581741641636495397296605833474646985474170435652549604597700195883104661723258457244181982000818461442690370764136490866513543932944419789674836341854248732030108880382596876040074138139885196797871915094296248028072105510490326009526901055429647734888405134449771422139605155649502247714707646417232495306621558224919535507488246961263802703759482911803090295870877462586900910949203636512374313474197954840595080091053852944323574237633937815838532825682070839966886030878493198509258456133763081496550927261869476377331388205519452224691254938191786791358392599268242979387023869202013675936850389352722781630894388996238364725059162084313727066368647574865607049931806355163363073495113743116088178696149939714087972504090489115270844538776464270395593462093192988451776356678434640848334745303184075385932292766929225011446385765470311117201979544343409410596731778892832163241527057984788268510889122830746114050983407911241815229439406125939219210554611482774641467515471866934124407701393774703888443608673257171940108197355410899820398833458620013207026822279815834345002318848853064224686446003379390866073577925806070985032425597592484935877005836370362286000279400532662099691644808215582970157472895008299412774452992130332370917479512233028629341973222443663437274730076721868233806364331310050801203363045519155849058311700647788788990992268915810119097027923406586727400546839162254720315714725860481737892263537785912300529647841304334981493815593612681768781941941698862887136634832497345479970285108774110060405025040927863315971686959305822600175391985753073789789384853185727446501962751018971808955271150037519344497664019017181478098419700970615623731074275668645800369991112805479590426119337407080760611748020836426161530742001384717524471599897476656435704206242901930733674458994446395467816691959316240580713016635921921324450727813010594486924629749854308414421685931066760365225868049204657273728247423617329780492798622049909020902202985818097454917638312169609340782948270410856230291076253146481537842811315525499154254725280198307901040858958053066263628816665195419114110769899517374460574011469448189636769597012594783917101844445192264971602057405292980491169981655462642373338299628083682859715572448260997024913478460828270907032729473197435107541402527536797077507861017028015401354720607714708089279073250966655479553549677095291450633167321213778581740081214852426706174120474752524872567648041015222589919300243861603788286493350948433574222600451575312567688016903219956317550426781667493978901609329250768140085360814320281678703635052091504182494006530370383887286726169988825707978565188494902433950124573242076398855915003077653993982003804157108717964944851739146866916369412916352776215376994380373318241199012292962242742030319378515370394098987030179470492685335392245160178269010661264680103280340118127553260580514299403438810044065663196663362577177358584691512931362539434947087428371798759830311022660828588505140279914679788345031254614894920331332756606307807583520274234656322397887621075825573469769329422161744206036587975431475050597042470548133641745748442982723310882725829833353507476355539866674898984153564487295984310994801590934735186907566824092414919249981395907584878866903698565990463708410256161993570343700854311289336961806916453632223510982439280701135305278854433497061675248527265731487652082932663070404689027795520190464192444977809727242216703182739214574395927273289995868508215766036931470980648167836749659562980165587911546448048379379131386247822014949937027431340414480984231163537531297262643311485571457359127146814228392141884849772184677303018792611060697600766094856863254796338014259387425596675201430093797934999745879362951189373526527839230086041987436416000647891197108586365834271453156079691830591155131568538128748436357086425035960683651520611433295588561791025238845204615663658009152248014314828103059226966550595341438233794028186189755300869267620612915563224931295864764800280393958217547660075801894205787591742167567030937035463893902122473992269262899545760656306507760047282516996294612555195318059940282769527799933008418716820548064722990653287631720711910276757771180406943559571491291555584467238332234097466439003953902178580731185006889266351961040253725168202147986505371350009118390525156707417799248205291547916052556619216015120016905806178097609010020477561021068372290618591635556003913570874603756088334807686684556754485760015090430412345870637368998659020198469485007273889797528954270173002136272046902745636639667140238401485161973226335232727941118418916717192249184381474924619630453354681974813781041435831776373268747610883861908353904986021664536920417953821861571375214703497272652601172515802460357981868455585802194242149243520917641807259648093953824615689219222677110936427449547005271853019790781950327889483183316195549127669514714406322073156917827592597406236022588138302259569138649627516250536166710940375461943201953100386275527453278879657072418747585759615404134705719512760153428840673856439433417837875065704322423063200127911131006004309842961661165116224596899917703554803629453574124121961449677359520331009506468264022132646811652992414094618701985399461639902070353381382035534325019031808209325164154023469695903220576991175531519382901952091009625048497058144978422784857996179885808181416473523150599055961688138139060158881341734872189267520056640358424047658931109057059643344282896146334118622030534985643710525383133250202973781538746984611943141488279236293081987228887475170333564997310468539054098541690274812877692160775585534923514217116053260286284102008804451002914951473661651160568972994225263187003435621562405585937457143407458326407026666653461404561658044796080017345011089559992819689494575185008881630530462109874331984474165222865301701131275019545535453930716309431989912975994126556467643640145985336330648177215871458229249895157175004708944878876989094906052078838770486812214534308526313909793168081287266873011498071064479465587939283063026830802462165144622159378320380442914063624994734366959174243896971002380067803153438510995153724478844471400856358243093469437591311671330581742184271162700858621299302689330199123094629467845094673844970881502247036658453761691355617708198823841424090650982926317993094215388374843878265949594536520999976265627876562955257266925478146639246971646357961712229322622936416111800227190988402613568567027391091906008328901944606854351465093166020275339800271672919554802996283101727967443714580114608033473091331462446571705821322266257207272675128241406451129642452197196309369986915006316574669499818936757138298424329074274776427688202215378060950576599663751336573492110157956386833044333533653509887250900873239971631059416996668149987239386848586680814849909911058189440544778008754004836254082054400717167276111537628337682102275584396920343006342188751330999667578531711754344601060459768776793923693912857815107326886112639638400347001783649146169816538732961079150499559443849077188904183880446018948383577199798476028220204760136803899569611950598999357486066200843216952841045297306915907339104741775184291883333281355255892993373189768668377787275431551678349980862365239244236216272020324373067830055618846037496598016867798853351098547000006899357949920427568078477388908572337943400871179864431362740976724032191599479465549990329702295332444640495731230317297448576358977205834741915605634761750280838872776493501382077427123958219911621561564704851775601685775912866222236350180496811453570556497179962748007942955501767001544306783428154520228410187258906260726894700679654547987648714032663852875055529050588942092333789712803532071186544204704508909648190601825231752365281094395483488919176221980367453582936100486123213300983480682655722611440866204354569352327446475369585811002095049839025151260806645888602718570270344896494252649886227069133627984477227845748492834157633242231559477805701994209912459212519045796740559857102555823586809530828979376210565503505403228533252596650421314489281232330034850774485427388426540371398608910050490309639994819684874355350088689426495097586375693977009306161028977255889812237702110352995289236530381255521721320079475978265376827635985793063155859298439137589500403508713400352507399734664253086197269719856929572760151367497524653233196079639608493177536718004236166765161828988147438768117523626438418124259251856666520912235926248809347898257622388900179087820521429214530651278747666389701983473721940318372840875710597616429671815299040332714365864665789157476280764093349287722834852200444678625399926229345488112248198686817454596119182779153690453187846468065407709956841259884085415671636634477704045629689608578328010072255989532096985775397548996909819561410598558641843764912351485189639290739957657085982192554761508838453447099407446270870681269818808742175496884882939771117698659293712465248612909098994924135616945738920086399272415685460482312747452130272045491457062482422445352447353091838468491453074478519209639351884389679442310109556484888740484399404956763141925719179828309562767788999572395131950327415821786491648642487714173017274369641609106642844200791013468923167960780201014095198068519641777317343555179457684108103948010163401063397229289354057792717961099832460357599506762448999598042311856832107940224493601327578823801426362408514790506868016367637842047383492875989485177421115870576300699383393581954661445315745071688834099572002487361664021734384040543081844704769238684532211357637160588094855625048563199123832926196787849778430546425096473257402098604362958062809323843474579942869545481369902049941745209262010959154511498898905969750512545851917189772059508877792689227638548690554831170203054116690734013414240499160724674634746950931309493019663209158720713892347318120276647130319642560145311628955062830739049511560353568462652809004051908956459341060044671088882701424772567233428477107585207857983789242443023357651040448710434017153708544529564609247497334532612294476857143093532589763634725923839002089288497112875235548356618117792110898290844719262367439722007998036662225622266015584011333799408434656632915465112182639549746474678676242746136141350128108621953324965477980239442509831674590829864343670432773068609808298412806467689496252379807034727675439978837784195428767216904993710443003661216864235149718358796355377328523549306558666722264529519959932691529428336365447866862397465871158767332092068953831477157315233897371369917343025708831878557402821220999198233615656753119314008937865293076589817335720393260062541434647202146721683366419995156905538558009777622990556099803913232311393973097539414695383606274148681578300716458706308861128044551463711143862077070714241998172270965446635775567728853687258475567603613839568175995187903639923748381229396216224647502604665188774606221416521852779446045311796244402406084646988158659817216868006254703790287781064437647350809850882085480150572969834378580506666654669766321035751897811866309225213878735490944210317734703776379827575349497094060866177905342997834064810361004678445417223426823868084023018844756166735615596330290785455880893904856345305723846355161264429488229885391098990606660251884458341359029218206110418945307758271390686345998324960548426679373159393508691544245519865039552510843421762816570219929392294691918952736984251851408892995559222994692086416889073214936343145671540992260318792743518153510123620941714212343324090629429753976697162598271057530737385962182703753868215622153332805949340857164610650525776468408480982142330993800149523954606131945218451295322004366990475899755513851012368505511554417393938375735432591087667588935609952580878327151652380498198632483504105419917934528165223425976169416603401593571433115954971989468032082345623314090266368546865010443330549343587380854884455373969648784944768146672164913784190540661232150254075530524582205009689081782150741533643358414466469036648772551469774037883544968675034395237498219329816973454450097875057893188745494976147401170797814032623339838772374587096056351148486868084090805473435585503904598408685963660233718313495223272655865216231706900409675661883336768566275079285614653459008062856636058626381590086912717448102914225167825682687744901503171200416799700614921510857479073266850278228860786876748101495763471912252159318144363259902064375402415527068324760482361251881072818410185790018544277165046379482017109459554069297713761724040383651104518663739769214781588242273963700935942228001837912748382528311399321033663506576124523864584692837637224217805366522610945094090157127064835458601542392550041246658227756721976541989161374693070968131941863331139592200625052808393495907325829559793488941095794815666757929569263964952174097358195031440520860608490003640435510759735320060687509263614645299117811285248559368529970605517643133025513422816227086786360745480100289987174637197429424414194212119695640725686630723263368411231095837572492278648234848473087104580240976645369612926093648093047390248828314333991415336708777433106566355480985104142054975108026571705038434641574548855484301950759097446415879269315746761173387511702393348286623032655407215070107821038651233240073285313724853122266227577727061086023866655481136574854078943009746181747098521190263680407534119095829440084156966921178354071775865279300307357335693989320008917543161790395892195708986914530114246799865939119833478406864886278989018074647728848559687163531014047365720929973546929172947266544065696631324325452147834082716930211239759743185130038804705259487485643010036722759972765138704169273971755614019895511279601609894453429970136111864402715820841671706549255586084388742794980744484418111067974728845941175403098190242810019000745831756044985835934384603115231544316947310377769961155285293829709501538136255883944492167943966001883676912501758916726787597629403081066516953540802332717540595406883038340158570520469479017863054371258465558134620189307145176280792889528902360738125979944853322956377806596888829689505496017625337543904262522521829002225188926948229686729415034649078190315990891499647832498273815910305450661063457690651524603887147811057389777403920190811781339183650487885790939412537810410675538281658070482701806777737102562772834127683466429766487138930121736644545858440412762471764329232621105690284194008204893185607185703568446424427429280476067205377147976208390697806506036174804879204113063953402894267246055550931305866966736798906827649635734167710902761048739243970842915083231424150525833969929289807818471993791572174913551713630706914115071892398516203648761391789784785953980890180851190234994335231712953973663066683132838021911671568690002127490901397539595852257322215641443351791529488688184736731821735878389903557843695324058670088927110074529048907385556971313554972665575961336935776542756376876276000205223045485042956619347549772611580465502439801720555969254744879082952512953796056278896642407444884388749912752015719558220568027826888183619244590722507172270234149721328106751153204615255412651790140502864901469712434656780593447433394870548833635529509643263341160613519737202270589128279559741688529177855051849901053884777012057070733710038430005566116475923820560380149463118411417450221723720668029950467522071809089583924192380054050584609685395795149108970511820476414889671917224984315639044004034423600245088900656971652723572391904136724773654318472189536360169032127095892273857760790498071229468164610996080853845971999473802244213407017676393475188193896774467370180797984185267503697970305505568202604660451971288500936168836598879008439166242950708960435223096996509973412004442171854599244912411078247584078294433721671847873488066277817312376195214654197051303231283139807037655314677809929869063199184551413455301915159252361774563816780297203962997332301064611318761436024518104812028435423420834874345406867285336055859864637816903193624177616301542147134324556274454438455098069892018558020082890998139228342109882448208004476035920953321368574937011178993677762766901354597595650409595913373965033008861633200328731156390317799581297936357881994427687700898924862125888506146624156994700611772418791013905058916845585447186766117695087559281070752173730166970227495327274430095438657536381030455152753079550101262985925248966248798328075866913522970407116698560181436933593023734972606435706454794176308346068817775897513529939622595013489749686252296828240686907015714344260389519560231452285606358062001459069530215074708540252821647020393815444535441468917929573201075217481138611868307973478817005124910158861543505581320566323819258632074133385082944437687063673429530452341302498160329421515896369711742062881529693217625712418249112230449511414404551256477266102049348071899569327913746405962427758690405647512725251305174599567211103335364852889804965180895125764348363344878339989547797731785073505248892837973422013245174781623974692975477709634290441847528616574961234696119718518347276038068407580336354909624574370359031904550636033503193902503790219719849154528616760998889564081462181138662976812394656366728680499435897444523219377955330348304593125120171690841869495941179076280578488282924258265715696475993565526266844848358783080805564975583515005704831335421086807706265986305742381859826376952578177692920847618008970107900042365724038727206939067984479691987445367837997081821391759524371978763926647599246955959394763192648322650361412200619373461285994666930263611013398981425341761878345660931292535518002328882352917303142371108035800426211338251708656000417833012516410742465453920865480919767047917711535231891306343964169938488222684932701013776748812754681247517010113423277727133101094794027659648096741351979027119869185241692922384374705998985522059609308355245626908521055418104179070244241484273723557133890974661009407291280702956922327013828360429940526515144708424936843712667806344975725326220133361752455295860189935416700740582542290781841394422513824445925704690301184551123741345226045668258591584830635986479245799109109448461031394196280007748059141156728867294215012998429309282103376646223766108338175294454885216245104160746436806166512563108641987642214638693565118214671717887035698378183879593276937132902856299778108919455215518565202789834819609639256503091397937610026856811037658304616234897204214962239364890648200153536602825494530897689062808648320284376713529004680419910671973469229164822247306390435382068356390450992393960898707410273089991744523660783572601968020480953021163071223381966755622702527040442953038324243107269241388119978680716647775060628186282360258120588912447133411764894806848009695660141295913928460678794930807781146490645709624204763710589419037966596958906322532063739526641023357650572115157576459577411314968916815291200285125715532863229265791891191579349734724920884184208283363394454995421503977356443550983457658719414134928251160255461105311568577111351986912555279875754681668952974758376074975102718797115268201457189765518230877895711883570929663513658730484237279702911643325670065993881550855044418521716695659795015197812053665596224063428111545332920263557581081225888033149507834646317393240032636501370203393376409102441833760451581901943562046919752975279133706888346870320034898075586547288330419624415660302597463327145996094963642424435208099420008990423284820685557258330107340443320074299935978440732622115662132963406102585403801802932629149733692099998835771297769571206490564870131994898696313675677564987959463613386270667230486007783934271199286898684384549136668286882900936725693316350399514975765160452782147974538557313015606109606621126847649659769594198016279787659329602232767193341083747903341983664522615420376310314271398921186627433685673662567657903428977329665929788318638752499602931837797732437141648009329712224837115428412885724127353271942051084678674831211675000080186739608814894980047190303577524830487794069249649974757203847536446053057304406067531832867602078224208669000623231414244357178321268486772962549935702308817982391636509975612022120409489404023042529217283103534605913853647745093212150483914189852299099579221907909161447975629598051898810881692847977359628820556165799467235023543988877263388786172419580792388383836610696635252397533138240668256798718489835671637015829263907948110109608648645918297552427130676221919723611785038266282540654930559244446646257068198745406681294822057633175164423993619466278712496680369042015881558300044962792017351056238249412503397783760595070907169648376390493960610925997531286018948640069317563985659794715888370508573187974773793314944631012165805889601115991523475400937877401006549942260558773633635620277298747881368051531427528719314818072695220033780567876758777908514082875282333330828073832333341820972351622538641710186524703415881512701108243306133047511939690908325423848780039799149301028352783107399297412648766917805962126619694592617728209238092005351727494717112057543425345534290917004554613814194240400217181529580915546817979252812013340852267971770067452896210102274224902498075013874934645672002057641420718467906637000273119428551853304454574057048396060196889675275419472535809803939778430331141639792639806002878448286806008132391898018660198791627223121984076428187070302032574260044891619156206562927237370546045081064401704947610352176581631492888034151735984930893385960800338444389283366394048357915804888484655342139496165777960289334587780636765531426203054766752686556975638688149054736744702054917701399919757723426733723693392264414486844033464577450587444406130780718824603026386428801027312911992818675988338271508766410442303744947766617401495982467481543019605473227524307866084026862604420996069839565063408571562003967589081526172666884048097500745077580003857088797611290614158131208944151997584281632704329002243706880944143745583567746396773050081883256651215754107695075883159318474291329633864396263881195673285149241599222202974706092267853293001914742307096758770834150868840387093700660377130234832318148975520219785001138038588176915637800191480226990264463452136201472150727741491475310065843433995222379591080275515680830605297531865344270393885716227212409106954522784690956614194529836544517639287345716781741726926828226388895623480167397284809031278059427964126650152076899321607063110358845809922063496031564927069626994737610504033580527902492777820980940079347206789861109800042652396795399420622602307832315629434536040584365191747449976030582981082812446238021990424990619638006765874274563902155816288398956294299055473851234847899666838613918654379863192971962632732089700553572290211661285155778906528771183598587883120161186837621064060585714381260054020091520426860848245793173541536531797639855331559505628412682938943945726159616985491168404376275455955958460932181905021632449020209090034334414945691677122136338625470765353893677951983302352806024645477404179491322135747671789182699511580298539642989140983310031034855462762918840058168367287738694810204606463103865589423995271466567897978328377928431062014851746074445173941435370303051580547984303431797066653602747796618232022106859668324298043805520892753647561901378723505090744695856826638549523699612376846222171345044951443419290737418594895033020927993646490215078483841174549657921263197680313170419928882820367544934005225059898332548678864001080319946220076995554075649255003052206287759736482860010231205661726757205216089056626083232804192020105703551441711487070801593044182316642805159216412051977681485215152909145186367896286581561226025963533176261521977361392179192214925419774754375347095330829087102810053112941461477630585910820612348786876319713115216287937133396106566679386084902829984244644675931112903347495125124680089950342971952945970735695500442657406464246694745894852552439635936971616018665048750361227030394107138775768100916423869998250529666140761491405069820598814924509542129050982596834874523602250142695609166006854835297068160391415568058123430059728974439153769475982274193078317846300133768788377210445768054136340179786312440166453510532389095773810796318429945115874025733088400242804482527688288663881188844150488954492593691213634124291928938825218489748244069446335795783829893304739336156594649945677121154134627161082570557617624948448385465637157797226621766085691654857061007303167533947162676457719345690134760568530091255553090393027194868309617521981805665712354426233443507663900506438391951667229642768522179458541753869298230349721812865948417821226950856606986469481434047780100942402088678749104125983880283430474513550791800589198342001488628239189091850768742455817190385915691085948647499185549652953571995202970508592700994152760977275088111848727277601991917592986104522181239151227572382203203123516000740774113821840615390711762653482589098967709746672757253951605719174268605369211348858530964045909880101541938957045370022245319313049332447083147976804152859408907878336927281339299413904206940076749318048557066796637876515003595617153844181458829865984757911196782102273646886924215882264287849501480669085233276791047591758795373983158429999185650805999312764268605737451032152136836186624630724478614677669728645999156866650748752519400637112369918419231722507617493445046292033621968568936016919402073348010110896521580862378656177746909059464299297715665995217019583826063385711229112151772883247012235032531575615494627070390263555583961254677541433686266316403184033793116346620659323419211537896445032030864127959907438490698161510061227510922502363020266686290379153465226243442013997492063103230956274308334898893854939988169278217130815999652442524143167508157488874929754184851592444990542048181188435457071079600768235411834555106878455117157793532088387610988470511483203093144446220155031668907265932804556201167828640952570430904467689783230215213276768855547744750376082437989518726160271936559661669620189637539479121088792870327179153871731730950181041338637460151987963279504435610979094943129243800188445567458794612884334734484966268814042619094582873560590205041267937651849978966926596427819192085991038240157195262486570390288680770175744498661925836607703867713633809897576621991449070106560738314444863884496743852990986794808071739982848113138021626326521438286844301288792873512942460318936764013032097402684941523550301754261249854634494207771719293383077048879912229945977212894613217602401486462169168346804451371099987024661783366936761604065071554146912723896214662213840482039039329646540575022115119420610407598034473311301149513061320458516067012366280775798101222963162237980756728455383927081465401274611339095199242060903801271294642527545109662989025687837034708507288724204857055270863167698565298164636486236009739993629218391303257554682184832013678575659986247505776826259267827928232491276334912820236952794610037313339698645561347898034304236258904036739131630865239278869471624121962553949417758511535860885887620989889618550492865882598523816228269677456827915030955222150098344781473424193352249392844288880793141363713846505406590785111802297997113126503156965176113631771643923991446046469419449461846957874275556760181505579305011641021279068236236818497444103233025825890360456530215150052913578172640666489409530296147293452202333147692056605188528523951265807400807228241265773137950726891735402990946210682715209225731391901459305371308808740202223400570448207733388615586691345548793204659556582010559011860839124881285728334856636111430264094101911254276392778487738364455483002181974940935600653689505946729729224231367497109194259030701373045589283205220166671255491377376451488833059406405928793554365967959587627278645296610539158175228391512961323922890990594958938953727078268238072484930467035011580326924952172799828214603064175904483226499667146771777061964189356016966932605595995764501153572764768810806760969983415251427430198302983707940205831402400018093677007348394440506170746781010226588777129749953156580944100559428112311379969808627102088070603330313316621326609432757938110310432257105054401041524085593889771910695738465051633985568333321423210276132470105857195201791248694642412514254510743849169647979339200260708808339831554303723058195808291693903320002940207781912873665449569724373368230360775924023565428349066345239778451864147096066707288138086494804318240652177981519840176878002693704661866673497318043222492972585492599478775869270323752246501237299511254857877132228129607294743000343502740999282943771372315980522259473763927733157528801312670866263008292690695180537979315052503202584585206144716068538877408106531488723831223374473014073088879072604940484424586170185256594037757085676641030126734682902867119461040175604476388634203072184017519614056900253373968422031396206452122168932242933571248600198084143947935107048865337449962100279761157884682407804437736844522413725749576438448238422212118118577566724178826360148611008060445776794169885245107125477211516248606826936126700793627130128821854073386730244299418043474881783994726149365185233766752397408274127171932733368044359045878941540268861417973499184538684785637211649439733268087999923990656790267274116829853704991846591257914397314998410329120688677885138318586461146406987827797451508682617915476722585766591341623869396264414803642116455496538287777249264336076269206795732576216504801568014504755604068071555601834097248412665037884930608454725657239214716418554404757860654794177359903018846879987202688031669678250512893201151882947095125335327864690217502176344552741906110735941909660067697192430244353612437398599340311186589154631930835685683009863120443700651500206150812887338504514201254245874303185042504719839662321879633624452859859140715524936878688451277102181169483628077012132349879133481418209007155007858142531603598454656831262123141909146082204142956874795995215761513436952687216429841981492270296041333926878266047305738979481839720382800163697891893496174836850874174434032796611636344798462424476678028172699864720007423964581000012496391467697513884498809228938123296949760718206459811419656994700094780975957687724241155971791587672983569762760439840625421949943126892319078272416334139905902804711086442952173259900093734470853884885422219532233166169725903553860007473468103256220429752387979864424043704849581763174460535849187889265623073005110034243555884055894639233595752832819651513456338889066325566821186572860628436595030432599998355354012172370404796661529050179103777994559624912765090100532820143626733774345496491563278042583692779585458179819194357800616728963122034951678756856594986353808170872299883621669507850732013116557614474234823742445370893413739423991756924103045272493430065835563531358855555866115615873437859488570789201930602645047369132859815976815545694350660844068756804533131542273097281573452384200855040005409828718585253910827473667609621341992230327204113224477829210767029434350182593304219558441095007431935938675714646878481698960594500627902740546592669416675004598913243109183785175760215848269626560425214432089369428449078176919872181322979217574221157586702491252070550848823495884876675408077714172400615471222984869839682123935941696155166392887667545438640231310123050975283201372287046462802624875870792695748485177879656598520012285261747519508726225059919004078044564713718537548601868355727268523476999380472754243503876820390043449101884100040860775430289800822658259389687107395582182502542457383105802212033493128228046018942333123920287506085003250654122096922718218326454224608001631055900913324684429005782683785546540197229360418361365801778930501312958446489493903714985373455056059120300003658646838932326121053144983091615446083967905588678451009419452969358779566265870518857306879919983204425262392377153831959700203392681974654045731888494696899167156282140149773478402366431199875703931796538660119075121261879326744781659630649578956365226665728000330158250263196372044150984406948945922055657814651473344611940852565778076989259144095848775560095693849864623483989254292989559783994482068441132109897182062365393797140712309182263890278487609271777192889797079862935215753762889132819867127486449274249112508116434980689951905743622390204100021522685644163830558548669251601482467876095028712518822861463972401936482490142053283959863684685450148232189729274654991837664775809805264796214838879007855259753592806476111415543684921031988947933128631238747560141533214577766031915231459872878431300836320010457123872643371042737474108344833326634296831020741310621675962179569606738961082199939189211963727901407649952228668055009496200422202429045672230001067496942127485235419172788552074456398619043572235406936518508640078022844689803406389994656717523324552250869112313253145352079786034202919010706286198858894975357329014204190131931532871565028821725487949978394752367539785518497401039606820727357392809949711811833897914448733882080466694425668808982406276276505647713370177657484071973653384630691802810140338937377499820729592452750540988064158276795806899495699985741119267036997125848650789390396614213042196203349877955112406662795054793307350182440740614616979725773235115984639141392632267678586234711730316260191110645915647366456328636243835072094849045734737744475611381446577443213220490932230190349667055266655287468893825613849160899544140437064421763546200406693681436662611019559303211955628612619894395459807809686942849242823968667248262428764451993292308059043701086436693237172374161840759847388456366467074054056576057368277542924979319400257586821553669381132047420778759681654940920131391585396916880489115373357114820819174775915557423467998695253405802700207741938703156038882985400035064456361457994139217137961709757372454289289685042977611765040395518056145067959546407973111985199179760723117023534533137749241615109875492295896572941674753133695282711225529125085709066976183621353225543900871793915120334930180285886530943350134758427952536905333538375034144780465559245609328882986182031945354087499067316308641338732765849446596511766648091639519266920121655634126971438296422371805156129732664121783787526526879358238146973203287295000288685961376312377371910575582146731211819335258228171995211334384862771128062485621994069584068415862113617685349289811500646561345146396407847440620158456214427058164960973960605961943523991188378643687660369548020604988455634060518307161822064325204603711886728081370539419123499011584341696728714317052917031277405236711397369243868043064011385065936405082202202447895374497061745691587191410584118598599903254142078271167197467482183959189976714433770399613711406378649700773858981875199272557463358911558708837164728595879003888598633404091100122587250094246285769260546022432744332163404881360417711004444726141649963306329878021084525122628568553397122682636897190775493839007748934805483117321601733595545216681748350934640279249809549384846870042627967086645994971831891633108797865775222920442371910917607762011048070371380033591065834393978028771955594202186139599448453144634378932721406885393383809401375970784832867753670701551612937675072020673346516223884139263149050314717434365026302455350240888941342732381976333360189602331550022005857546667444371407928389367813927702153373805658815520912624842006532514539537496857835372908912035290377753286459961886164444917756459221248644691708066107672921235801605266656270380696623688105909196274883409886142065311889941511624576688274513337160545430431306953863688164469075040519858759742060076778944492420070433212087643007587804735014899173617344293776780313933931981001234581293033755319879163937203299578544146741883855314242720310008452138999768976841457207008075459227673111547996374053071799512238318497018008209779356702306024593762398934828996371327829132739281749732703691703493192192992350157000141827972732528107350386018876658685022924506737339420779334685438662315192422302964101454444172355406318601902767497474634961943756764251792528343607584963476844526413626175626538419317783393716570541301934708555670700012753823174155018110621887758596811151432351883099931994505214557133329315215396737395344300408529548083004018204359575257300115540706280798768721045999054911430380877785729867298369351446212816169945927709752255126612418796470737745558615828141160696220199484692029136766443194423398932143470929734398453424780985974799534020863480270297120245881310863317708930998744846419049800898972491229331092552364595429750956792174987739101205396499490273409532461782592969736103039610819747374373440548949595340130650909218299945761591365040475730336501032141502754990125539275989079106008885170812516303535468780620636832279225598209468876192152754754093178081358938411086905196316013663180665810079073853949818127308168904188084287401927750378994604525490303014628721279497538863536828243634083136740831871192557616574061424522643016840529087089178780323519444236475423822756210497621087986240614118502144099731084662206130671745591278650827098052361970176991927140468940659861579182698339150165088378532244774353680073156192313011519918172472272154879038884096790794742338863734851092418019363903446778555274120375364291369820067608495987582428277226375880794656090627883359915049673829989892027044233128829860490912686086337840604523145300419865049924114363617990662740244388125545945050920507212196847410430245082157147799896124277257746728893881529511931291523501651325494396553220921372062673096539965974608800861457036009076721204478796973635215622890104451494186546334583635483409464412335423142365523361014947173712922459315669849852581763979899161069835532604150792029716630012195941556412903174579177075999012663547089195861667597896377860024379413424535713758910530810012410698358741552338102676666966789717664828799828984030951881410308349235723166633947373067627055480498335118676801821673560623979987763909040838653145998916468916841077812980920614332062799354741773755252331889282611035142746371537191697810688035597791790610776193100407316860700278041126561602132227799912429715673558458378351644815520316600323389698128596248207404784297366848524266900630936753458852997519953371161027584743130419485543677350299369519157328953168191980656646488073379625731642105939228076115022423011689700756552360921434016525903533253113003203881789502433596810173038815777173100328294906316222723211408994097513859449833065542662523670072926482568765686108968321092865716216042746217819959394723909609840220559687848947897876714852235908302651367151822255547708107827158113104616884969173772800186960820820714965149294770135279591461535901006015939620829955931708673804233675135403888361899840387676889062887619934182722616163851903712147970869206514493029014563544605631343371920207713539151906403810956273619497586622795929719998127695363067911261982269860094109567591547279930642701044666044115429864208751031331647060904389375951001483834017448032452293677263181834850632549140878507039667207751140096451223831360817899741240537131411127449961720813366958823188299652234096645792181508406061075204128300940466080328086434919100359922764747867611640410604261196511642472974982597228418476900922047704190538570423561519603598752151516408122563438787921543718214104797896184028122291609516485054790016160032410565577101880345647694790092045628457128283582561313147939644348172157185561403415020100529812423273363332295988424652770277267213498678000186443639204329020893875351118029048655145109428829125280789862908966103304620111485225882003618998748009915394587409781730040961247940915428303476496318617297790832817826966098266995703663551536635862586631637487901158259504920873827032375828033962755242164013545552169714380795644379603457175130107867368129452834253045373524959724539692577681650006337256509476926003588257552273821740062853682084134547721936657150834517577021105654061580690603872616751565940639488628904169048352073651202515273805849854001855701375878772462990731579430816975965459363887543640729833460828293256796865370487514944394128470469741416931329581038147977855037502820367363919716046155207705437495794388206004292270475062408777538598958045170507860736844963692447859705585471199085085185677177972039509172749706920430977711561171408756820572090287235491399290249637854722367020496419874280387894221348390499316355337452508806098524624913534904968265719134189964900499283774250363183993321437959015391708219341084613533599361070472021162214849664384529924602139052144595870214732972878578251180567446218359887413971290183522981855020478596874116539854322869483390506416728730817405774889276295796395692528374331641121638752984608301773871344554016508550300986289353373047636294728640774779885613609612221091132674781810822443835008664817288803843951508846254179491289467051104934272437645748127843417039288692023724752479072513542707341037779842423404800107809420829419979881125937215057249006864126605929206114621136811366010260007985695754562294100081663766405731794660365158516204535891309199660224292816754007490561654296060062527456258609172907722338531377152663021460396811133016385796046031918682064917957800355217509128395448929265262917236553505007641576215584252113222386679012518993575394031127319415532532944025166586933278814288932252944929810965591405372610419939536094742628675157011593103985874567496053782925856989968962196663088890466057600066606515232993896106517190535462282221740079753926863419624474367509076233799345052084237295814374678130922265021410266355364664957637326057094143196202127669467486603757553629667141998922660540405275022546232546794611332511570510254931465500176476546758391677433052217237919216752111915883031507813900013262577387948841905642169762976207251195212641530178777994848634328037475322962765832047469020858889254659794447007206765508629783481042676728803120445209514402026680247218817896128358058589762601817953569756483213215620296577699802113102895468593766785367284604427424346389815903812032549894530746386340197139443563387221842090103080246930383467570182647351754949698004028734890847613181840929943093756624931706501390726582520669538571883637225849930549637012110865557515615632136274388003933596592379908349267518891524210677261043435414558902316354120725301904805061925835621630084880180969611505913576281142276154608253497566360796780583930734209431714815383481490285006607722607869956672358494779147077457721058380971022653065534664093441582671570201459368699782396028998879453026409342113545178121326830677560292154942579223633741021758992104482726383703577988297917301158901460866246579175241023457822890475230540762745105798865249932588329478335961192570045184483270769653517908014513877859301258739989795790582970897609610920048984254340658050634378417328947158915933773282660109647689933598526461788177807026896615372575668759019495338660821883348788321852096548119151319581433405556776575189535469923236003027365698464484320579182116499043896760733867780817107068330340081962030102792461043747734278828538958910243119181444750264852339150748767862185062121701101945789474206413927325850963075567714784980736853860899422016739878938213980167816400090119209601292492148475384717716514848794812119233845760876574632324520009642187383908345823806563093633215601666080980839666071138365163393830120442783939534391540859855169895470293551276029199395502873141940368315910804941421368642556621438048870898238713279551416171892954753237972847626643584890004422301187249602472980363793428104349351044774339312357089595137103394851682166744369433244473412129873265877775064050051608726655940481361624376409761291696893764791339971121324596287585694592591556375952678189166705657087456015482521412647744401170837718094616583769770010836023309379201989228301084012692893977664263465572362752652381681207184898123659893215473098474525587772891750651572874617503759460198427480329472410634364056652231447124136623296697104078827580053098190417192902149222012510679090015685303240525374938158748774903153479241344039434242711308218641346251425864546310546427507294722277992317646871045580101265364072401493790478399428955857711499044353182160549353458783558208174224975629295589833408501227393016460990564769513896281404463877379429033898801058068107207682189735352452447296871598240355089621248814360884710212192496018157307782151767772417229150555016449380548500940381391418187140548313932308183068461004536415493429718245244419716421072113957201090308651955495937644761292261606156302361005655506368975077062556563846786287626314607347652160643763518204926802112428019722685592734981535003611430087525290523603350710271785736131298542894155930080485751926308817527827723739378625857253510649029753426833147786700871686101103037539437651734782641062026925586705287126342086891599951600032054441994565826311807586869572524767903453500732413696772914595108841403653250881963697129418730208799755758801700197370047113756818206250049796514786853308039851108277931098880756304380005064181421555000641171381051457178533281792695226874259027547686576100826827689294592041566121226062621766503934247469693682687476849869178523603672010242646032275092420322143844678694868309736436078206995606272793454865637199812441415014661082140103410450864430581309940558002140513858123105551283757323807236259612460215927790279230823548075929982838031058254023839012270993097759579701483036930457112935048901931297673436759238098146376061409034724093389367053711945235315266924997967555216226508518424559192842690666939604218477730639333739244894900493588307349960027539127807186456599032867933032543381813688893884813736602741160268073569881119204577834353295165054616424480009996106821974357689323448892225179466368781357455280669230490933324568125137732971817536748054674660723212016380902122042104502488932679487371215721069040922539063681837206331976174229226331339089510307861973901326267058177221877464768303488601025014097680623212950491043806142689859391316883070551744381541415053205662570518403833445658949748233759362288568495756253376643502978807409371280877254685403276619474276769613992553866614223776113136464089361926981957092871873297914654939788388978184509457564218207873551273527862495215037146550951125867472417980605106922466791647235504884333419677552244497921208324352128866789689877125029637621414804746807374385342619162665875838072961933470157027039160560094275434513840086360901473287917401608335424799440680352046927553937438687488663825436632685112623860706073588704872632493015914619058672451323010183042535746668103935111732964774065691457235347471464250219109436611934204816875674760484110089051045822865971776325382914017020221802881230444571305727643915746474429260794268374332474805787786454305754809973241633051653064569276999935179932056908724141467058456399122518000818439077618285382250343404902177020861708996614704532281804785299079195376582214128899242811973719842315305945481246816269824803115386463829838374164961076134035884070969450776113390778822654039119545342341779948421602238513751967363500772448625794655434166485047113436762728323013926485971788902298032515435500653605485314409592582726507352414139237973318748824594394294228783163798000039273957328465758265983638460161483661285298378584607639057924838774642895228765641281479988215994212106038585732390801402753276199544782001759241252316748048545098768108433541038724986176442643647640980244792893344446630964191371335914701741623906530191562437554761511946215664890760194723792747344620253607451007443468300594454439973171544532565886200690122383385384382896738004542687734826515583326231768888772973543013335599125688684724328558219248073525317800237521780595278190538605158735826825596808216687925188983057842058664533986445738122872709376763010145381473679782858097935108928558688360707758229712877540492876429435808960904335186892617491785740666015926339509334103888688910006323560921936786803186295216690666017108718648861335846511252976055002318640166707714147772941112837295131417961953578456666319583390619712743070690096430141435374263693027108139094400518674149710411967774070425203734290570588089359728965391879054435575042120610777575438470605244300044736203789187199109776961704697657886460608999103472328511980355142959132662915978305283002162773280806156408539306285433715613645119003220384147030596223413064675638511881846616073244026501505463365349552685354456489934016920063438043580291493541020010197497712772137754387516822034364168882197807142590357545880743843509748427595812111696354655899735830991501283583324013611559368008387638606434171119346892914677863157664796268859503864425035426450793756226465212101686861308076317658200200525325986952126561467438765649942592596506288931107322368376455431717779852720922843246927979892019894014482993590178752727437791583089645108678428399367607604577878285649806238767430409603897374515926716798036055026752386338352244381189286417729694008337532412570177557857615463713935953333934725502459338203956180217551252909170480296848160738020718022047391336548407416148654186880115977019091381644015030380958047631633219475770275787130722783240323234590900266321646400286225770872369149393781251560702503879156315498725424698310612547941777541206023605032126898849825339749627110913886393024872826496634432008282626335055520904493993443117384644518049611353655527259883869481330975398237776427878177609910804790760763883201450257141634095616179782078793707866859730160739553794463890602129569442329937701890046223907440954061422393862192184923600081888426978332640202477417689878072163513397443133268582882624757618545232811878394392535036696573986972428871255015794574277783994825293671790759058605933217517491571800833485259060995860039591320493111148670535969114344216734680160074702670476186264739047077102420356328151287117288687163487953979454155557141191226415821202186616632394993740108766028047380426652433698564531455761496950668395233186264689767529239066923964678905890017955740074329447680900109042605449754552531065816418295453156943442878829177724810727182630634779773983343684010015120422243422169467750599378618105473692404325741537350195588179299259717085098613922032922129175072507822347382904134970438545798943901441803045087223596048526974447361146204082233570690475507431989731519829935296267504500779613070832762063398757466489049287160902863820637639285776969291813601904075383297601338148192597357820394821672446848196145048664557551476292251364396213160991693342477843598543250675839503246800457664119992879676598867200281516784022475917442420969546180451559066184596322881746373510789893913333721675120323250394704887684662567404553407549655133726218712508904180492524330897501092286791008768354364258375000900216406281236042295838822054791201532729152282748888169068494989145986583736921306366824209934818203553186785147049737995031247325928683579387081257909442303992614777130025509888403310913429403695668964063320487827068408481981153533553072942012193293819220831310956755725317841928853692357494796775260861994197326798782774674424061542936992367667560589623266432375372629742387367038471771513809531340601816178679152255876314395573124258897103717009146956256590847597043817258285196945284859546109526895307013118930309658186452849711901935900973279747526655137029576857828456331902245131194522664248045727249040422780023154817819617431936599900398739086118736992801208161779241558592919517056393455848405465795797371236604324952643813267217740034309559352225433429927775797258033089741758515999837711245879779469534004194477421215006414989894418576505934316176249636486189777236392752663438206340203741891389477210714641142847340337824931269178531082831101239409905155858920293622186864511539166393313537483697670073785535032282550491253752848787744809058282468680007655913617341507788569966687590370173985367252615053387861502272978316033811475617068850705023878310314058558813964527669151440382354078161267187244196197005947340926412654810644391977472593681589593491227082033615346490390058005191572212881901632957687998481014835705555733152933043169481557250800722340493970765249700685656024919095447265059774173856363229335443230643406664333637944874619586825194605269937230707977614363251808295905477593473551439355295666444558449675903154960493264039329261148842122052724228305779284452146701387376037801375643196811072825559516472737173346905444151635370620569002037961083112996932177197533351434783816815708695796543521796309407387155142484043457329178490701958433473140995662255383647143721588056610597743265909787394539279458145954880155147112474977892228666547979902511162105001544299938085068632272145784327283495127918472218591866213395215922105613449978571409311834547569657343257944464948937199697422958268838894595560570008864628219785210120498349358706389511769451668540741658492964605390155775998942826224517168047785545831644585615467603637276441216792241551433543644753752653021297431979249687522566447653585615704784428752437880305460791212410902616685734859127974346551513572028944967494671441364322742990326561371103873319030767923352398077456255764670626788807374883359311235404932719080053038616128103920743455990074373756735245881083801130840725613024952407352303475743662697814548508360640399359738048695868841108030536050317119594022953662441349775429269786146985202027700996250679317218757896472502130762754411943442798300668406790763275707288501487218974806758670621724974078770751263922294926879913959624117944263039797151724242725345963263772546312641458707301346043165924413575261612645638088628928983688647768723659082156468882952672188361437494951526926293793962192868103837179255387480751972846721178363274007204576371777035227738848484951369812958512807696288480275154577068993376126168047695047813569574218833992280022006419035560853730849455426782433456229394190627091119421357231424301492134283863804367630641061688673725469798450471669766943225105585446446000008674480254208398309251069327730580327107758548423743021518599624883328128638303349931134913622189827806137830910839825099835128448636071743102461010313363508978571250909870008132363331744690396443007064705139300718045290970512013591768174119151342961037854223821837217743789399930786985798420128452077710363796917985764041338064300634713917258329256782170150877421733571048008858161477127116218524735520487785352133613719595711807401635893921905363829539423500897532962931322966551928299510891476610703338822859497540725703477025440746629789178531728448967032447782877166084885729251915775442050550431654271616576880406786565299814811353322458484884786168747176215855914598494838698700876217864139845450768202922185143421639196803401926084861589024927783484286309026912425290614983342335892743760656164922318091784137904691248380612640642250865391657968095711259198551047785360216455298090001868352093962380131356158057447427933445929446897900007855802656366400178271650706575925278009080972388384770048304180006298364927550257974013606029095403068185446964495171395802034452232763827224629783756072564874973503871895882607141715492181599176763064368515061134351029662720790552099483588554613605583901665436446467503065134634332955060954966990360791145214866622367270757099828108178342226231849381438735417296015871636797014445200068055096864013825947034883067329716853997435154063739771830852598384100758415796654846032272446215405412672105178486055700415869227580598763852696786584968430452867259143646552400475257088807240672036607350414102270222019309748679547888416199166267722602868002023360845355062495073246501912309437028158017108889542558873244034565393200091992525418783350626710156629201374439900699763641624773462060725725056565766490931257999139471450782754832219424236780004595669783810691436166516872247411340365097859850224994266107647112993946375433058276586127825374246462999000267459655310451685346545227408056129118267768598351102874107227794835450436976631980305907940032806417425811898874032588683272901347013548909882949041080979010099640103626570550140829814473989940120044285706295826642808595257326125710164126313833624831873193722871821095106925930555163600607379878219898669033988139883151725188730392973003574846263073574544392203845389583631964069607556432241497835325827884725004637407043567089655122135613641041542057655269780867589099558044602981797001343521721442503778077813213454633637531024851800779350517701896482434115831094376476305013703283644618230049527433772076804902789707601038542244358331730037499686412502364847487734852006677769151200602902442662743321081045819657110260146343699822933441496833198473571817102947185450266232411013987445359898195765699435873204753506633345290518531371034271665046088733874201571459412758357381874996473628186305021664005631381140345461296768263394113919738265961735488385890090012305466755158344642625822209920674401775803021396227183415765011801292325570844899456957288214031979003694360398948599560336870697690368830306206413200232209912088772802428430807078617342932554997521383741455547237012444286732474078938182227223769393058705764840800349627883386849316524496847670013786337129126612500963393869879015632921248881863480291227714412169752702372926878582153058575266452644422472037363813910106778901744188519080720906161256730656379683137062828410882569027003200857458071215855236266715353123830534496157095492375057098283001907857199984105700292023429381809199777734280933425912946156398417097038271595886768994129371156622117667906968700276332772180851590655198977415883309052452413755565479673904521511749149775850946179065917035900589371007959573140665579733485443488161365287317382452901628865770346129742480148919840707490162713659813227746635068235132853790547407455969119433788146026079893845449959023561396927035101695018840744311808572957440377752586008162024138586311074262566949772221999790921626503004555181017263443491988911161437174185565660857770501488190267532413543692137868983918476568393869063112034239786619621515112355348098677814961371800455089580352091317427478718070607857382615523461250842535923103911777716427563392432279018460531891905053145095626392624642597850580282771202552447327673789133138442579331874242849320548141195045369213173292549042710906787090927863060785946638504043753396658201892818673770083390460979734634572311184219317080416035352721678943315435897074502531786373801222947737491637567905969969431578040437191249863598277520571957293796146416809530963929825664995430444298078895703066836175879419016696097221429927028780077655948974363909935713113204233316755028928131491343539059098127074188151901553466429543090808008829694817398677614975861030864093003126117050005981222530319054686931827882441659980748053015225148500493829353728007243743544284758769874884920435584223678049059717404498527193755139548753963746649942657125759090130902578429589749326166785897306524561010020667813209693613732649734456203722959375279568823917739521739932651968201479443801583552817483782477058230109965932590255971472905905835554513268434249083087114498380833639908623312203986137580626870155091182148162593925276883239609185451925961046086398762525787750400847299772446601394467331261619955847804415248673945001408017885226469521919547343585261747573175768312229626626732953100487936062781445477090454107281143144589810078036390782037144906361828135825567780120269326973535833129820203072570848486104282004835598693551244911945509382160060012215889691707233986858775603111881774496121232863875782669761783067620568923284943871227897472725440057841736196282365337706930242517404903083910008044622500013145424821912197432814901095400160745468064311978807508282055967619863725624933921783337476152639697546699877035206703196951208642417872495982929610620408627950054665313010388062267484881043056517839299281159195333260896469886796274084924329531852336888795428219762328930208528170595546160905287596426647293011251723103786842340861231524298736136688157183381466629168828652941992335355191963888880344789814326867393472419900822544053498227351967898761342883163211537348991780751544776715619742118747713243725020782373761458790682733892544822512810922233275738340851824815627978251949848683558844440610078850529041733983922481626541733480976183678165472399031285228436184440668383108900622051892671021086677137918681920738358761964897270430965233206108181218685355038369797228329036684879831980669898823148792090185144912801640144350435319447369823189529853970546138500630748666827179580398910308241117890781439279904325028342618740286509222365424287303419128743365636738820860320722194108459032287287167642309191538745404368558394607487345473892562847838990043531539511865733930421369761363991206814571162864360803531403925078039737963337943169684213009919421507607179391205035579423898027418137590350829600311384493594683246704550387456679490004351469586055598814218121221651968117035090484578079012526362260116783259002051304324562333309365706895698775545228549688350056677037209186445200608160907655820503402848245103952938582367333045585076262630809376588740712888448781020282813218500731402159478753723031533856284471014024313465136954466080670836876532958482245730629428024149159021542493876723908104532225956426113408521858294351063962528129360047388874224622084011216838521179655206299623440064103204422241120408876521246778573448103147598218930763675788816691219253217444635991683041462003531556291831138647705606707045933752496232322005574375264349876189747046572205255825672758628988231430011158906788123962378869104768309486324926129193601655017475218713726118431182654392149406596554037791324385886049718636889209286021434389247670310763674419317414286593045564495752246698253547852510749120204202751066070360453283406193593022721889474706427293778831374570374411118127503599505399110132420725841440910573249737737021849545497432725483427735887744973321106974439968411462107006065300541421605433951711218135366554668163968101757455777728844081017903342364841948105866175089288740884518022972349253460154531886362085878433936207468093224418163023330556038269459593942260890267665754235065799971848785425668677176643686909190519349616986308993729552835157602606622544982958083088063570747748486255038269677636631768438394457026796689139204456686455076014096422834722793241880732780407572866234308091966475522836336558170825422297182014365667530164658184589472764278493716550921329028064403357081323480073068259017441863959692762104531601558669196655508978058687229386723431486081602048549123136894058690875737856949801994570109279774810708849509663233786137451034829290636662525896038533916345785251971340580496810138754268584560659190171493260335161419576870532039242204250257063002065057872932901225054165456164694868529687370645127488243907146883744585667489530221086609417985881597375312763825130110350517703461601595505781015509953938493444621200652505776304315007441602504174008318350884162274531562754586342170307338550551531121838821591733186176772375318209678315721989291672541627359714604807791070154393034558270799705202350558308537130545019196689684417122032509794976846388668621544894575694852437893313203834584200650142022064881955607530842289066402871849725934829829153079486686562722245951232215317750508575930437521338577594447749164497800612247984913716817625437691127145391946919395983516930915217452994465312458556596267280458068926268414801496055725131096087347556974355311310202417636202552251281031783367183873385786174682598802746994882227675597849376210206000356644765453880872921888112509015169150209968093044558453197685819857231300628551715816415785319271115639148130348638833696914895192205132680731469904970614164145014876647355100036523129098898411879684171519189915099504877712064796806428386067361577863445273451921453096999110421506142866938602083924758648262559285091676170389053049939204616476188860704041361250019364740407220562754567125227050486909237897204666850132545814463395573296378095513211787219124186042156305479207499405962471844661721863382442894738547188995980281415955901249331308396392571317506569432000887891170293674392106887594337949872024956596324630101068402207177266610868988461409045070255545010879376259693648085949509066202931460655679484392941652630320295841557519362846568948762027700973896065426295602016497561940282969490722752470725334319680907953011191234075409284537270052108128807123703591731860045654981160090031798600472811984125212126390421957243404517509112334593553964015032429778005354523305829769059125084489687689597063716678021562747298394928603858752586047094825642280483155525483856068417465574963086091520001072971686445360117615857030436762922828389612246027147734259137372265283974315328014915923340995100570738684558235201005517253236848890673423290830287795209570443944783189693821919104622878246431435516005169979423389974334262935436978522237161362725367231603756044307370052111448325887424275077697744887609774239214933645638877386204742945281274164883221717290757911776618169458964449169143940969266056027623573947073799372838429324767062863079873125751909029227478702651776381852077209930934438081463622406917040058235959717954470205008371114235803083263026967518077029889912898899525512525913158929650053451851443347695285254189591544138470024304294735210355095369279858942411347534210197230984984154353806834356608947812376931467837171562727573697272139145588356490659196268790889231596923199383328293265949521759054533810005794276584537274964309401380809357756092577510142911107961919202629848059585709583371129136754627724172319384761056068194392909190712479293663736123982323763784713547459195055869587663028544101941041250283664223652249177166969978404844199645154030834826857153528363153799275998525789692208386061664592904591022178961376047410093272151477559091970535510338649927123591942021337305454444592279863134663138145439432389901311318199429544150119003252591613388201536188808550347802965959956805380912748269560364782115553173135671690341201088548047335478996395419644012963217019990479899644211009091935605954238572865335528778591298031662470862803684513798533966873727947508616643778356049763613638663698252792059551418286572826231219007460307253443402135940594573897743427591894339367240055140081444258793786137742337912527182069276616563283927164914570803631358107679714220353785515285056672061141153357275943607918926241653345792678448035651557078994230596542085718280235012049423767679588601657630081687159140566670520361328070232642021499074975692885630337634233480941564047322558701228189885552172413666726552862659232117179717374545651266431540178167223711826254312366344303787964611745722571517524782612987383419537215989243656494027977104589352739963417293272891036983549251109408290535235808327415760712150621090719187073628186602693860603352336457102281127744567974333383788382142241104521209287081296468306986315599972940847388929580316327331999773487730678584623132515169575420883203372234425166913663793431580920630647066189910681483103355028317646427216058338707016593826584510333228128804020025385159556726336260006827542757169842029351556278369574270159694428314490734902786253997001864886238400843934713154758070655253516812875697399334283006091386975478544974687205965496186598534510450962060011120294389881649848486918308203997072286256913748886628071852953496070375033415826619850886875903352985573998239231402201841749275653555078120751059050146797296398904571754194316081058023112876586540344457213734970571349183789390401420109019494350159055882008095168217117065763602677459581837582065707794025028113170459060687069500756149133917293916361584522184455861713412540767933083598573351211212502133496697498191226176427141636694270236598279637291448117276984663648585704092722504946699402946584952264749313393670513336694066351440162245204353432144030026233834951719971299336733712051860072665644689292964804833070381241049084429777757042716296165418975249803155793561591707068816186393112971593590685742699089774996944599189536881156260272489984135785189434826917516037628133667198459550279015807188886163055015761151022106306067799396045042575066440013641635491464966302042980503114506478750006060802834936068460321166633537010207556189311984973835004758710909165018150295676437432496901971194915476947902127081282711680747747951180247914774952346066100701338367421509144630031483838347209635086187168123789053579322793627833857943177830700904552686995884245038702523065752795920582127177397870177247004999297385956623166522526984946375997595065078686308045653839248136516555026053192475629790716362152914089686230733744204598938046539365265122567511946353960700647012172296379821530810952146420338064651667121815787846284147042435043458694224073390233793645991498378904987734144413002916538597686022826918804866993443016857578872583723715134989481087634551726357320596303021994248671733017311618962265638084046847196824817085988205868696772690150218315056109600305019366369204704241358608328602167083590419248779327171972775381837473060909414177803681482354321730933145350732026577866310571644000056339614523663533758590593917946206516312515011059651219706988967885255606510210139014564642498461261910770173942065170740902577188802431151529266846481004511459687040056149062394443304192736118888167226100349061692035694445729199754956095547799518497863135432472377368226081713509670166620240079875341324590833476099093176950906902142466529086600590855116104292378811400951610044772710940645621148476529660092367237875179651311864809266372491322696841355843016869624254713977717083985606219666062950087917577418243242431984854870302257670347335561445671269792813098312939417289124171003605767425635676486280448943334363020710963847490904621183089687612965031377281519100020895292310355985698189342874303214069538489072821062456603528034957006471616292065700934373957247727224809505847310010054980579242938924342848792017225995420518344936325208675172017942299112891733475625293505892948452757211038817245478514764800979963940239116229580003772496142120058203437212481884857573870311288317949339513153937016349093599232745757444040641267101541041077208724882767076988445997314223291732200525184879913949467156261991332554477431471392680296135779726244056270963310203454696311299460054048882028393602957869215895675849655233636224393411565529601528238672363398046709728265223579423045937669607099385543697428893474030874790057962767852608217725412201296831732523138460222092435165227819849709830701394637762315388841739000383365394087198483875627304747838531676895258847046830642517396698168793947052357175524757004326322393210512885833594594467771377017932957025796997419407843099709601750885147881410869966333648534047451727175491338497111238671023132463859118071945303449233263725478328604039166400202594210302765769435770906076651981261506513803380139619121023114304459662918658920396864722212329061184276637284736071629906204258855387165513818291413879890398149204789342087091899653084704398918601430523871363286156687811712951173502212803022293323708570961092022125692983809206750989654609759228700613466578450820789912732167999329046542944107803966371750304213375913705032327779288934031143360494399755602947859948273989801387429788385575997626873566875940005721326388432164950131807190452719480424666889940336623751662906229050904173164554903750128377012668909640310279338930866272186068600657198474955822943949490471391575175910248906693578501084381214054634551108899218498196580355879372168584710785940935477217943922012341129374658762777814295177380922421691171910591118447604963573364159142291936721791152978203043967846761931773354758228809461229659136020565877644755557915320038202606514554141779302979621109004648860212537041410070714764362228152804295222935448021772644347836751397840135184561832889934444777663865125706723385661430774124674938001564708530107620810972764127451315162414261759512187071211172532160187399637086874456811819567098073936015221804840202391707283805892626171249166613182675521041115892100106983444817395771883559378906097977172116547233254791005073428582152228583979573998056021238729047397682011510851976828863448356183524414336043375061786370888470996669762169501389710782111336372968437445099677084593726903438551522876573970452693469445407503620139844545223415364293721078759160981966053128889492797982558838224628725756466642745530176668231294512922877979202550404996033880350446840917195301658079505621398484267018355947855953991963971376298066989561724392785895070537238805373484315739551715440932815111117940097865653811504616363783248069420702659522326840358505753904309808137859444748083631845397532137889377690981832685043946410137463722993550050132956507963174413296537860543046299218322865987146256175486532766564831814238231258032290878320059131507007206894117393122321574461458554412609885544520965989174447937239090168965140603841787897996189479122088121905431281368996736708370549029847855824064135830797984036802857202689351581864466857652550206825993295058077814769017266851581698181869257874185254141886871286222776837554711557047228793305972580715771175279467955279914245654189770348755858262571602625551697482608308547361646692533539131746772774008073001721018028817969703916053920312346817752933558496169968468432413317748629591913449473540140411384341303621248720415588251977078675665882380274693513402328513026037916494288342425107543177471444810645673685312524983875710787284602255461562774698544951491815989016810528763673211748024767347177824551606168899592366599914800412556930082293858548656610409572850467781468732988666841902189674546440321706574466007762180334101226756283968560210539432047931037474167029120994471340033265703427717727023901949311654759223021472932219957902617973246879415996764923663067745790582564237210626377852004919991315892863676840062896509650454102873592818265483884337461802799151025228296445911648565994247476795460998066917311241451428338306667206386007451821866111469089332417784476902090197147866763632927945967290976522349054772661305190988918510244163022715131220843617974419661462273666332320088238721287631467050535907400256082237008773339730347304057565711797034884681689906734621902560799602877395456151052123344390494492876853947759507120374537298394283439188429255354952654137902444652563471074990498381583471950073901934843013610912109263290452971306022257277671010684801094657105365986166093962650885003797993985436727882966783739726297234537433252281927011727479853018994311631834871953692144879931381469813430479258793723327247164875830325633453575950560449492453445990613527746215249553905628200961743437634227021906045154348716955053259490028706318418161454702814107339342493805102363431318737178023633947551464936297478224464654148557126755877289758104719348063750675450909359143322830112891983834435366927514821661073405988122540889296578419178814623692137941604047456915833932934866751242454448601058938501888814026704834083819385234052377947011623924183405527190659834071579776836952384073025108835602161133067625368303208315730537162780280994307925608954558540121769585384356826736379370388341770092578761355431805502835546229379426673495392106945530417018320258219965042917533757422752876024884867986836225896140667942913484744022124268517619082245540276448445633556534643719448034632638336101379108992172550272416929979985420004516047040674978378064715047220514667910067629927681879188261755560925472026968540968276439897309530485570646306190173038587701990697752206669561149876905303557161248537020365194525483968574262740088980294876135843652498194910846654749632604901076116476263709767165824774103488263735405306416335779120603353835118606738284854134889913986347510241292153107499694738931754446398629644588843195286947156464618294805875202530064781482006272419029007429137937415167964108849562537787525564967859040332896106451280784192624003564179041401069813722212951308300891140743251458430507525242094567787642210448833375238962197446292300463807910609860632509719254401765771614814414887909735100989705372656134760598429568863561709470464443773264598383340867665162831008336058028872343294035930583328865686186509683284929439265443507517977887541712939534898156737370257571331898995932871257020826886389479364505050028711149236452547121331362996862104508535626449651710515068559934865811991044916691609227419723291188782955534522672968409463277461584485431352283166396845897272086232842623026437095591509360390214980051378552428093284569725512952004633254132845775580778523943435023103573850833028313216494803652419096845888273198798142372787607588872725565286672461665639529306568276794532381323229807924041824000496577558023982948308444814522894007411476341880667721429494634363678299174944521484476892003588298291364025224559063593925990453689862353585944386488318635071388641881816972401768214713144115787210397534170802489662126413349456663302028789937337242608099484675124243497074660596070184732440089168350833455072947933402235543780586118663095965946725840968711671942479959869929310830133845006719688783798348440170664172411760699906770245440728941065898049289884475326460985019481185224532390614737439147927972253377459853254099388868890872038536413738791135271331636350946106448388626206709081346334598262034433187647162638938967154349122798466007237852934912936247017235480032630746834464258249920864119686421926457015753172906321461686470583338677555251723290130489704026553019117142139408333104246255296970964866691006462282892951876363717620884882712036055350093495109436772697064633169605215914416213506706728018823632456333311846240978825363694274549628821680896694280781593890611653986683028750555267024032267752899683517245327071704780169792971494949900761667401905125760791737171485643331056334800328469012081489225668984819998322620193987274437373247845802826178082750489572571155969582174316637752141067644085098126554749592249083602525655101105340954380651994109817610919683652329187794074518802564965578675973872377455909780981466557807585746117424274855674798299049767241531070197476519638604096925563764337156828196709338239488920579745966485187611583057170846976617423729294934228193467065869233582359466256612665849423789999992436164098117592191938046883022105883637484271215227566914416568987123711403758418804022738919828166877074396800387938798202769855922150152514818930457536404477594395381432775012040582961258780019322781182788737514266293516535153603116667353265870851223658781957840438432313661803480083884827363613927332313180018496346823784075695754053259179684272920548101067718882100089733725514159685970772692757259688733833094876437004006510178840307674367547959673649883789983734042953903162139725115449694754606911008522139965592101313165098112917742278783046501517749482689325023256990869604777290323490498984469773434981438666347679262866356672322387946138495448697901684537307568291371454535345573013677284153267693033297596024245907221012093827347217623145327906813643745709812618934515981968268774126557709677210015953815304752431998497655275191630605514666006849550177314761199526401843940135299731177631184243964256173828740514993954373753373346244640712745713109941076624629635854884050012048622999089093941236101637797256941973701749550204138258500159946035247641046100573168246265920866204382015834136040217011108168938701382379454052431605601876607791633499850361013932980467106926627404352943776037235252168833860658049232853351691789783224007107203940852248730583035772278005232789466674879127759526982075050676559195745974290257797344550045779551408278239838524799973845651905142216970531131763062642493407707264919907400207958173574163400259953200446435751346662074887798952006388796614690406037855164540245251499127866315801137209427018433658250238281014873274525526645871957662743231063873751142361223094687973935909060557652983486263685893974241785178980314931898407307303157229933625050132928287614305917437345790809979522245109608786836302804739657231978302431817089094224971920254018024566458963770433612598997205892012231297369927176250480149905278532746326839894928773755488043547652767280917705625291366553993990259918594054704819758999181360653251321827112547864853743891434312903556988869493956487862622398683312337664339287504033473020999733817046720476905150945811322244248122429443425516739577191188604628794072702963940456360726126944810754815021453724754438527738188476206008180547589364974052755573536605733271091329663779873214821049414608547258655703642991837368173824763609869650703316555929312692149064154989596343177193164180673374513073738448827823104547580164849208624229975643930712912632542174000402483721650684546628507347877249282254757922903796260731519357048841739905333722102612817283120593711398702720645223863338399884103302484293288405451328244250108067020934394609481142580450443693735162292883258043743709914619345863964878345184826127328831678025029746730413751091242669131766520027775180454441721516061543753940271788655060546548014009327086447753419735609244874403249027142551833885506451574958083662947593752314095856887594190823393350839000533719645833576739977356884179487074925624771726434650461101978348772587145824702577499094849250175494996489732643651711996806644495016487534776366622406839156098129317303641875909865597440841495946360011594501740880202275332341013350228458344712306686466332472660158038521590059737212878129622065766962739290765382148081734079666427789605297006257106967496865926865732805980019528088301257267787958078267868978093504122221325141079066743086365328431165381125656242069252154403860788173961141634952559184667499895403354175931158668839423573264218357594820578573381887427968214055579964256516847535303965787939985708713524631976010685454756784282158617672128323699580437184244660549472926833149440431162626133028500357757739900341241770133329525389343193383918439458914903212584606998783398542418069599362190682566982568215212828383401033622987965739415448035719995906447432410960563701074768208827779388742036460926466372212825284309534070038343047666224871200822561938539602257424646710272030778797391128426785921523947479081729278482056656562330503626731357417826496368510433540480732318143794598124850850664435146305610179543026566244299046390640204534211419074209391382327493978081109192916117501555200831100916553973124284761274628472606301038057168712254210015567386643273495799831723866703879703645673709666911590029736757424565981775101894895554511566191711783840764879229928190829821003411354268771505698304867425104769244764541292214494168092916217300352729486122415114905866454089749529507931336690904089204575833620419848886021030810389147503664237038202975387979383316724006704136071282325276402674954765402395361977809985370498966016877968635161245604758535182584504908185948724443603422132547262176011295282574114860254807584082700938161214314203908562598598157789379657461176710902259912670204231711397967344871814073372869351575476173578589520667873416370385368120956723717012571096705628070510040438939123662585903720657923097772488330027589984397211566552521876276590808879864843953655445989753939212487828550934982459552896818130825001955799723390293807570341806599529388232759305617997729639191969712047462639721960680469319718151278539075137752131344868541149057520534305046413678981134559272123657436730049505752325947602288462863378885729882665596158745663532470580690475651224861569699509206276550133097744248256600091987627995009618959590753788386309833342566029815435203803587532360953809669014388794689064774106598413218869961398433816792940681121777696592115428185107971658373360273203155871031185776333320496900501212901751374408487462730812719949641616253561777642255565718418992443620710927718847184804033908828965838863763064432932947902408895059125639902381766028912474282237019272408757070964050365160104965909071566627785584394963415167658408122316227740116356030069504684203642951092525985064695297503037499135971579728493723060543040819688133723510789360719536188367919584306237040794766551158697473407860881424741134284334011039335479375398839743214025045723541010369949800474297417273854502978168694007998887859205712315118266833128328898990220334971797690658538955802854589282660207123595702812193683147164902361905290029422833546394566967564529846226653139621434598900378437250005563545517016731529577606327966068837265202689189122631083940276580686356202772585026729439645344023037652630143646910253711855993098525155635066708454402314006594625686285038867910603511679674728983984509092686039341230471403036443738134911224547488852674743066276864745119445646258793355256980229606515729054804440698840827255207390888386342317150328079487655711764677194920276784021399565351876595092160683877507406627040725012656485585743883512319294722786018521349535351262092936693260815395614158499756428023156757902778356096401960944155681836424294773175499498679770882997504622750585894193645018716265365303929993263531922181838629565570190754934728369387107117803086824068662644648970457694296913586055917370105084615562964562236218154421793123470652305937124425612259044549058601187390937466912097276261328876928303021428071425439054842939947908567657928039410184703438177092043596715210231110609173579400516223699438649997672191271751154695504924881046551648391173094439418054037144568195509708233895194798014151212837604951990208932138863591761743865917747306623968063278943409111893638503485553275833370636674346067370020972344164698033773825806978654364651393882745262506317305024195065308305587268062723050432897038587130510969050139718185838962387533504679840672291013267677876859277707326360609791349933684218422925036566810368426146119871358602971690069763141771979462597021341334352808430666181940199073377684453061283680304367742373357212640151062213981495159306658816390727369232247142532665611314103959690155064249412452565350221427865450400649513523549690005307824640502055564771872515640128933352871391711535536855130124066683604840127933775726108463239032622328188978515759204743345346915982583732492101809108080741571361290734666854493253130565533547453934352195494462902380507212879252786431934542478539866366852356513896752418850746098237872996250027302758474280819832728746233059891417161632302367858987181711549586258068106941143137369547967446521516550685662987999011777722620617582555477694297196943678489883333107437509166201049318041369983485616936543213497650780337476248068137068184866104796945412333741396615382400986565990014309331384254323922919825283361000071917847612811180629969114798865090643824042525465871824290774194271541318355761237372444834360356981819396851499604324444204716486615516580520459152227695460908101498067967150453263125917944541642428092359854889750758945150414726695693988326401452093546280330061749406918166083121514192864291414991083777887152454464548469502328808316645651449565420451070084768427033722214319297653122073110753140025461541020265887526521446020221601914975310873007595217499683337068311743808225314680180235504321959476571639932297908819403054216236665439823921825725055875019725469273543435111023991343713830736752915305954964143709785033209844233342526611816220601041818371063545682270132178877267575297870114035444790784734131419502892435711958885222674408497619066806914842483198397868476604048879839254001075065597478233624230930594143260527507386259829232234652664518065816508350481307163270672894338073071548486074249349832549368985378938558651210292441986656513492593434913793300055229676917556140110800880120428456842622681072170058615321840747693263200290607953515730083226602819925186051104460871167169844663142224924795022365197429755785226931674884430665681821235249566482067843325802854791201413889225056986261574895325380121520324192130912364018029365724763602574387821365003538551798406247882314872976400126771855498118723364937386678443425363093740589496975155067032354164900388919403758428729257039404968799508875995479555207996738851010641207563171647029387041659502811693707681229293932819858560411371519595486412712312909108570785692387177654012982382540713395767693286272814200838442168293592762132967652789230659780791327933774262018055615724234293283831969070404049243051997638519415500009137553989458318892920215831149681185757446462845663578928713440910692307581730935154289778785274209449418123284374007423813837809786606416336828428581259399225611153212505201473373215951308846927076787875668821663199568321462842863892880023430632437411407814746026509159765839728955842714372490840722183980879331503181572426195100123588681877388109264439292420820561427941639670464343776807261473420711839180398318430226374649654097619452076872294929254238897661456714442737400482891199482944300578949321654375254870109812459506767358002211522445772792926462415762571238804390587559238971125957914366002347059009521389056905482688538161746748617175026009754171129230801580408567156848484483143027342817498119459030207876690182923293453182102944332028126078134257161318748701998402471102907773152594963975454044489852417297129106972958039468252694413105267088170590252350825006103228243958302040481357827504834018720154297941473900956723516735521358351534990119091621138359269950595703580379513239461389330415835096481607190964277414749309747808678894580131752013816284855872754318024307761806609203543312492656489164677577310403919034464040455925103370099126237418497580252996825720456365219070568232026081539695464501670611194183127415281701825160251969293302208669894704468277174383071368905837047642464609140028042861262629254950833577062943460987840896820641729555180158878101182990097000821297755821120413492867269166261509419853036342302542021498353462810413431640151262316543198711108854009431929049463635530551381282739913562922918804086624390378155818760999417855618130410717684606302219019615792456892120204497894099012953344766646351422996025708104066469314218890232336863666145083777698507321501822202298544948259787707406374965496516493517783612791695129114479576296913374652208782970837083407699520756115071977900694794140069526065073245107298355381751919511527979238922008806858743119811975906439111332599038919020605078699383562467552540007003644758739308016950348184966746972863788427398972547119124269077784326721592962347815172926344623486766644586386852863400167308786875761609522702605736171651620350211562005895765420239414715657021432062849521791980987649076805791270880458023995061679569756574954367864214501788074106762414576150316517969804462320203387442489193687347768890457603855381010721446174862918028927769954643952965719083208422784743522549041556335940735602249386425388047184056449345786741589867321178599963222577500408630318903802002140079183051953720902636591267546465889954538329523603048956580345376468411806510030441083397460978999610998872740571100741945491148768905050090533104402625187305509509963992914642134010980034593358881696330377986866066426059072304658554787740522081220942564073901527412261570247884170719991040576526999697226631906276098873777473661317319156510669502712498475093335598626753106780926971986148251984886396663126365339578366578801265458066773297942392742689397452823869907798974287967216519836432255469486051230998474177836876896600906618988149153790618905795344722777188844496862391152575010515548286383706193659595658409236041095076664058054738830880609165562037965690854916630828442858086852449704689594610576934257750027868348507288826729547793309301696671153848051873586352768457214433108045450619056022117053571961977582789809112820129362769796573631236589130846117087649426322990988846572631185144755880940667317498791041693734037559186449612905003804238592448505162691993681557577683827064876950984595589096762362634664807601074673956488752931289188181516253934493155854968140236392371012015228713011700254901059609186349291765752651592860772796575124668408651996799010251702648262248662207646583418945488383796630973453698474970920449782461765108030287530020892773400276390748935112111871769031022718981587966610331406874365671078709437121623277753907561660094873338730735056630851500216431923183480271303633570214601445251638963652662735710285888711087176553943095040589474022593359613733902104442001084413874059850196120188334179590527023897505810769836840281082186315474234731492059397503982391282695609672794556600958778852934832382224546606765865874719794438188561856786892218976593573374699157883350899571263538403843906793004351486848107328248358343725884055282105900923832374652911441807265862875244147558145639335996660792989577398121402094803139822266623010034560146443099364327593848182051128239204260917742069431158554337522916080551250526196793505044438116725513165739090084128358422485556333178738336236324375820240364169865868363565485111274276194721369472312122474386353707168147310696067418248012965965212729700298699674692054182923150502203953476564106986331858960141861190904424035499398484699070951160393648978471859292225503555035001274848725427216658472261166907396840731202375695179605918073400300721895095263238155792478269460083383165149070682108268277472683961734725068219670939254019673148529725658652497244421555350975157746224186837954562509254467475622513547661625185833752771040830811065679625010026390431462399217771997078351420334350738410746731041919775400330961328819198128015177497257711076997688147187284222219066949770381606978020710668893566822450334058543912065428447729534525050178816547533301875579506515878978392189411744336119697719001649261411467428863315113408989445411449750099032371158748373008687059304158823415724368159932696784328931581997070940289136426870585249272814592888014667971177422513333330858540583420999933926480196706013074749782231621531380633054991841121092481805833870829057354701185795554131128375716188098622846787878574977889029812787296417957759445926467000129367124515189555399649213475691233323870020173130220495527888474446408868634810321374515471203757698974228121335068791794127932104291509336196179902403019785435034371459526737190992439648456937205214831172531319301321514660825391088462887006030452250591582832196267694187591266617666642437640405988912776870522214310237154448418879021353948379614727031965426501734771161742135183820832981827022135325002108090130019619448988146500453043616983314435101688881615122190481502269661944097967766259765666393346005195249802258216942155313998721514281727310543165426137528201707659407761989510084003132867185661621377349589795110336957554636644066977226434456734406996075616813545360663290162047747230026777877252566103487217706653426157964546128240913758184978600740515955026740303213273502085407452596797566694205797990080269327909060793584855116256050608454461732393292417000311643154313997182167754857732692448371076312757296217388384720513062389831548035054985432469067081453602378254597901290849135385065658968724360747783005056373181534127901946943456122259166360383976779367698965930051842825414920290976937260289095743699442943123203701024377832037419000886712402134043326311513417736268695035038914355436041162606775061049748610603014576292864671225928374200492805591649518685984002217117169208334621693763108419198902202095085506527404753340607474010536944327973702801205936965753511507651337573959406182438781189827488583947475241213158277555766936067728415997476796652119961333192746674280807610989589223880207607829994883655914328038648885920527812560100988720217072962267689659601577441343523558954156309913615399402600598978121529619430471733209542600529601711781782399387275220628932620316595321266577576159670974343019348972023482563243375544767793757410508990221828808787393700762531162467023294538562075495345977665027132816403775119755776148930076405800076972765081114971758198950071228211072593442110208948351415833710284738011145162324797783676307693085842722538421080569554079962442000745726350951372032364815262114914787807817418425939340097259866276246128894004559252073882344893095824325475607321404750583468494869568120728512011344081233762163132510603292856219495479453334982732449991430082853421245780209175898070012237934919903947127808095275614048974936170556065459483233278887159055617398237186714617715556144064490401780348671431873255219372764598692831734056876058822790012941476997795565871521252912723764306392496393568337594634543042266578798225690438504247932504460107261701027102817942664064550512679413620436031844681950047560054366990902357635106778505954764237608380863412897823560196921262142064419894668572788443715113417988795501474551635141711056436001013300443853849590378141826027560704588225317412822813577792982935137101306655676439421188790750278141302512529211847651114576782695599454763654314700699895021294045769385662021662774651947848548830143295418767635113554072768317352725999795517062689784754223007764574060059102546471879526112015518017716357146932782195516545311541622150473106348361481966191912629964393037333875120225112312081152965360078940794868861022564204871983213575565492853144905540889045930492939953787238052208276124591845114247782540932058071914243587315367689222922611926691661448394716596760574022278404449465345275422938709472068187130654850200020964635161374127236926837073979636697561206307116231118850276807584758628117907027998865348151648101665302897902400662550130938063559000671849543747027935865398902121819303706210390717385088968328084933279957092856984175499380104344094755413233980625761556927411678929001544172754043248490803239357458264588028300636876707130208698440809329857824498584319587104781005942840636346220650065998541299900452204530826157632404075099308735732290546865428122596379467167136983270177647502936590914197356934287754328923232692879511076486138486350207662427102967190768914840841246635396520906539099449668561442878469310876182485159007308516984608766130170651817609502731320864294425946975389746395925451445459215003253903993027644552742377761092295991958692762182877831875797328387887079541812282597977944457172112792717632114597495042676136494426952990990371642039483647865825809758530770809483390701970800852558610968431773163648094696646815610296571399691625387493746709702489813093354492864078972952638348548989647898741511600453623849390677902028398314442705642460694761007924684880600371804390398475417783320853055571883669700525046784828361345262453289140312361022035758914069285411856359899027863162627943067993375776853982076747595118390445778274834980246082577634079476079978262274243951642759407235385188059092288134536277192913647788493434045638298105916653872793242168277109346419232212509927447557005571639828553848671642083807919416680418516749616762560518339670970339583180238582404308103765193858573637510216535323962870612840160236598507794781127252080173177636971129228093485645757253201217561972124193368994371999028105032806192231146508783373317526595521545846386655565192954760226516737941741568759972982333693721599807981545260321307157322388941657572112423665574094885031171270249329067731050280978861415122588642405354184368762883657182630031866123611442270834412136016756416644489574211105441818983167450556308370793343417669813290744939366590112570062594640068713546962961665916558268020204390456670986757462162937171389619873786315869796726854421762447767227260382173886943233937704147352332481751594721183997755924650036228139519278512912351192196787109049120303064705527622275597869392113146098230365609780860767969634030196042269245647247531874461116140571582072515105881282711889203389683975504845823601986612317174401641033308968217187124350881786155292592570374802091044317648877434703872641421424723654871858710130724378317804464142357589677527941801542620974193300648762467198442401403045845495593668372466460228028430252345175740694604893465326237896637598093483521977759392565298702859139497495830372260694771933034732433133222602675970724177876384943372019254495884761221125005725221412110098113801594486531372479970985162557844091134456258781919663051202435769312520855529100430433391151285800943360569660101103158842692836480636476955822117049894660248153184690217149603724949835521807285848668526917568836531706221974924693930570280773447200682980282772352829096581318739927347941128174920260871108315549236778083899198795882088201116988012865137378504610218366354144972200571295384790001646965201472053878635069902520710854190008144990694908763359398317692678124240325298323586350284008084484222908494315863454503602954018627738113045627148042894035667582404979295240275007800033764076512292808624968602812348948915756973214163373885450772402086659543646769653865299234532646281841985402894757344866227397679401725123183765946100904357902507745401900680217789289067141376461595281539783386204734260891960989478665801702033748972522260485752368549920480107270798295950366384174637115918666590387093170368774057279512006362869827451146387849266871020451291931815249623722283166786847857561013103280964098201561860128821173973903900613677845119451781892323206587614842297242016300104112354255063811656976911201264773777377852691527112531668108118039193909456416840157544829474123325635332094628021714561690546379819694163215753160943407058882977213180005925992890329395025321568532054551874529318066981948581119888004111449102034516029811373130274416393793448637139600673993754219859022542874052653570457369900795853057788675499997602808131115100055483783020898789448380965503057144086681232782002148005510362476589114688807437090376524305543376204431596095065228900262580864102509366931995953857163070397089741337442979866112635882982951481962809933807691068183016442073287595750382128685689601328668419689161725184499981966011761060961489617302741254352514281582527927388303291144591747150976530746879378881534232482904264610791109379226316427272932996505343741420370292090004459818749033933309157182569576169119754257158763960977425986287896487818592534426409347139182754485948861034690660189267281455977135660791535747357940571057645432984835067773607475435183815566214907820420490361706625556501876985612342584967013012131209941794678506558219297888082854790404204387542885316292133996820915623006655914857163125183299435532981130295096470544146965605960016643399833112885422729209176583714477438576756195315116652637290942516717091338967410966225744543675299089473826936677310908170769322897169043679033874014947004593132022149495359622661753182713486865924430190419551795423649175001752254460983158912065004798533885151303158647842415425057595314895684262719419589163069232616904584103764925119081799668277260040143966252825195763517835469096815581795850872978688128283789548448593805014682280148963547595953294477744456473818151311617112085367495154093424141511525714244161318033582433126173163133436207490644409331249125285835954278035793556686170869700472970108062115003850456371667123793074122464953713826733184630340425001692714085694964292147893337690278947201333845907141968882718365670940118392529519396161227757826182775662483042968753355011488341797116008907821264039739250251849428426313529690368008161917958975084156159495987810871607500267085261735202556177668170877412148316274066678782252662856405004636391597918107819367501572887082750051686637495440152781733214066430025420334954471878590771859223122978051686005851113731876088338556964790361702548377314753603132275807313479965209237559533029984139342657032671229773949668207499619685062313492579577846695826608782764310911785924067335275423952865017879799266062884912034783709335924978431086662396360144557563852906274850338337993649107587866509613962242312523140232440593137990652157083878868335642554226861324461011356233991963154949877897732593790667192559336136759036428979386253160759467231139259348296240930140891156643976974920248526112937352442821064048343147468998242992020579922132665075346095260701273488098375875782875617318432947650744822454179588967755533100952263440040912859898804457442426886331343735698767290370391505898813089972158428759720450975886610944644398675260945580620945914650932535416769091503670318630723351499323400434738685094826357374270955540605824357558805580727951797214004272036735629544512783345944527829540847252368450207029916319432243558431149121996041906025634685600504693830879967737332030885755300109535964664093783896849814461475766208807007074404884436623519927779066434051860376052590492201857817597192874499490225703819527641441213229634837812419816743959748499783315089270500145508418939403279984125672032254383858415573370105886450093092998718105455124588623149105275483926520309292977879412334310991444052282304560392538640255853673897390850774777788416317559043693370929352894571505830104769688026157054929599925633157615034113240513154019292774159893253852859317479551263259878294803726244152744867916743261417458379814406366034667583801816412127132553513861766459353962670727008490488395212857619033348893914628289923253804342592505251286087959808703759944266049451175701620887096250931998908371936083491875397353282043963965179103580060095217144859985326647907619125231633476479032182033904092877679255398949776675282552456509951710303645240612525927063409244743788968718865669031701990903726201944299785081626906063920069915182009705539374526322186327081590873218791282116343708068101332840904721886768046947822003308099247547811479832561871693467291952270618725813402022150779762079369350658648047989943737020745867174691588451153564432078638188873942484005094130408012259635134890707425092295791385762905836617860327234812705790848049560169286326615425033214080178438110705508723249188015009941976578330449818698892366325464792520698205380540292868704879470981551460333027026391834483713124792742949554749195241669193898318378270193045406168528334782914449555500387484864057523704284548506159882390393986650380183481202931358835885617176429065976694023402388587626411767680306273061638956594523093440521053852360347902678052016861464467757441803496842467383089732804412216934614641846009512830783751447793970688641980890228519006175932457110273430356316364572212322241055521177806880895857071434895220965510640276375603875907947742951739118500346810394831525890737811762767400290698171859868998861399045689804540853997229589303011673134560984659567698651245902931481000041235968522621735152897603755846011187266828972579547670790619380015730910218143179714420157291243891370708742620909936209598845146918368365317658818151973508541511586800556284371592110810338173390876752724058207842339234266739911397623530073229638178824065812482833074525497561585558113169230919903650330947100373760408888248420450425405413284857294520591972149922343699795325167722107667735012683752282210482738368380198908035925470817060623803281058394616753614919447163018914669819363937620780131551040752482193491744718013767285610912011815539737757702013425014429784257349255646703752394414922792231951562955475715922319069717303564930393749129382008735540991447994064221817807192839547754632672548031417592331451100200626370727482570623205979027171071682587926064389654878691804093525962728741835208891705659568424491616442834699248507575720913777245668653855633881988816371887068872998218436376784048133426315528863262520064094404702091936275812033633338189908361539249719525763546089590156439059916201160242687098738225164960642819907803713345164328717024894614141519129087352649879985994556360554860473964763835226019048750111458410271321429422703890956622588408477057964219417542254125677415463898190036645158198323944558201978534528646559218528611711228907756224755327644379826436642165100481284334846107473799644891046716934693908207469214526045773819684055158430568009398494186420424134009917407762309555812754707098010544447000028768898866598463424316229566585098657930640034577003173596408380331486099574701612730697018581479996999965819467264196192292970188477498323336389531526436686715504707682983925434898150967064007977411509203401075017817542061228984722762529108774977430960348391258383871197402340363156162090549896470927677410750851244715238934409725248928450899868247465623380596741689573407339807336394360333295422847607504114130320960557702612435836473353696859384117772955735251983297513382940185996319550414825729238104522793864064349455837374696551948782297095614570998525434560530772177993906394776551045022991713246701497372471960841827309637070826388016429908553236287805708459514804530438852459082967531901905610012229880599121037281813227478497719410423226932837529684366552084886565230348852374262816109850638589886982990740579290661960042921792411723663792225361969766367555551538762782175472993502652205445455276737702986560591672370740922922722167126721677461832061501909511110887304530883378982321562237625247981296955243319278112654265054486340463233593550044689413023367988338669765241943978087137904764729374314424291506650271584549740049770629923993051038535404193930655061890861994546024402859456428293408704186136248060322615474858980194992360759306371953554853151502842323219514019362861497875228731768378621160601543459846505374845468679379150481160547694849730522662280199537629906516248355621298747917374204877357887007064527353047906391451658516682418120892891478306565146906420397983528602424428351526827844866313461651733152860064641433168354691729239866815677946705998485320102078614417781429306960149963843785562426734125455405056982367448042583768181041527299230641432408626056337034998865397575479315507161748392206983918254311786383507339311136874585605443693042218831065219492593035565326279807504603941060196918944004836835752508094881253754684819402967771380428582737737163936255237137172842852452169624342093157840945893518318111721753209552778382233412097393922590724790283085736005941405706681840469760044168467507875139741762500364401121206926833713501835426735317947400649208436667546541116757098352669878794185492928051969223459931533284389545816963403964945834359474833363844554646134913970116052724692064327890621928901673670038175992904972093591651421795432061814117365889630875416141000912565874446100197087684026016349073896583968183280118870551458414621140409911703255870797191913763226963150472153050084044843133591493813390508113384884960360224826185825130713002085692808731619906592064790820598038343331434378018760658020699166166998743537772672250584689016505320048969963599762429042544119225496990172216124010936836368901742348234393007842850970739989413187520560199721392780973716693777847233859049709189359928079180049040992503142964754880941466635208710949671726156522082778313669286426721525822046331220523391895767754652003787926744629631668717060668264747823126471225458008643786896081592961530002475918800175335146050165179582772333296986203962190107408845563528168354166967969570749728327361294503978117115081252054337370571780833493949168557842887141001018905134330508099037577083643747906405727505029936066474979757716696074597656007453967034496157071550690009564223907404273826368763628256560046560011341060500236875364472924333621062139024987872894918691138162354150148543206541064542405162064181675509711128276320530060920198510589041507008738337041366118815465586137977525533043371204522291685334900122919920273549237696086532955046342133076560411795413752057504110270613694712829896862310377365257002146295593827115227854606613854090215804089683445672950609929399053341738296466703195209962897482308246449545278341944873011307545575244251469540671926366249047816873653117769629880417182693188890393786305162824364817941431163761504994380251981592422847710204331810553073156916528740088747991680680821604307287748040702617435881173803345590722056701564674158884923180838334625481162792193841698603223829546901841360390945883131555707394681995331753576191555233739232695264075184491348168448638341923726309868310216331503268123688057864766910994859786733830445516903265876846192570083416824070202696281916295488224943038005460705016323855055942508107962764776209698692276862320070819223980983974356995004021923113499971403803806918803248256030797202326258674096497697226721103092092095168812535001072867625954732082044151135024043307495907506103655670990590937507078441334951109558557418591569984933514003371157660676009522578292676234739824052893861934340376387868282169779276337396058560731813425979046138323012296886159616481080959506761709022549769207280985196762395816053087389548254504788638391518073008999148545586136534390725808778611308487126090857611918629108054230426266109731712600848652477638679587803015782442245868796201587317177581049696157515123532177526136881564737953340499448135641894356275452170772432534728115986797540392357475991624970076139430346339861915907348709273794130992734097788642380225695403084788043668669323935401292402540085182171401480108006921311170190901761239635071795687565824165795939857259854366708442860760508333310032052900321673612501743968449544773848534887846710724985144429520733708120474004422880316651331552496147047865480788039377375841210568610356656859448317968182252225284723433402519431243172332546235808017101619343490041726238297015436039787000903746668102122254075611503386371190267115697216064849229331114386561085284267426203894739834329024756541691750518742468160469464966587629961374114685923201676088610169466464704687048752278486435297726236064631512392693752457765656367988961383320537027822781909167243807453492976539435330626820849333258849080803200162621669988491725409952575970806800535826401094788192981005755341483523530454412248930833355165951258265359431410635474235594666760744173499771552598320189969375686387368236629737013073177465509182591595965243801579882648456998131572855129030839513153199386611195833385872548693307548056585060580375413672719962043266517204442851804045141686441099871875045684340563674178300216976775443231322557824993315569142877738989562037806834779638015425884115792943969102065464802218661782805180323793322466824264141247924490268170819635629798043961004649870996183085986208142402892487048172573290311465981495044894772393725644797769010314414616302364321153597045530342749629611093320329654537802306110894700108571899099406267136493288321476683144572270253964433559719655692596782226410194107315892140174313503469547790112757799118967119080645615271327292306828247619084832487344299756997963661159059053116499877524073504640785787996443987973398643734715723130644950168691440212145052429466059448282654015163686616372032308689706404509658526065951047188831411824028147907712310677711339635158782242031746581565854986170629671491392158613719071413633600520542260058374554530485297961044168679440879111348825657300004455218397628427835821983574212214620082458453152542604222698642401446728359346028043452006140024925707129664247512170801184922207535297394434590919382180603502197668702651586001027469333939530706942396510231342981733313692257935821580186261770178573132113491306954643652777792984938123529675747402821606540988819812317967100059863518374872188761339746061593862623304569457970148296936158595563455556407222384892452267710115387031894408780743909298204256613666512469198675659893790453862546005927518088853760441611276064101020603447318587497519489869292320358468060765235893588556065426738608403745638967278630476972276196959819530807119345085431090066085736057953119595050978034665791078572877910852261106928097993563529606433220371820390342564654944310092880737017371020448411226955771762129358822809396871996458070809256785246416700555254133375858528906973841183794894547433541463731302290962932061223629915160213538872036851617077910718317319427419355057870256393745132590592827028013925433746008960287524808029605732580841509170578075953979180982973529637399046879244452623173779843787946062398898051101984660528657500165061946501435629983773424318691109997860755586787858711858325466871593386664098434642156192894132214617045808301178895997184149666948013294973916195281322270476358252723306977015787215020230586542752768607629881598021499639460916693110447898379646249050153312133564613098812550173422691318138504958716859665557703412207146384538939226043328974383570891985378431539863397524861892835321916436118035187313056474223780188602861413620462416907524460441133294818302239894346407951125210206458227820606714354899013249461285660322869415941552647479872030418344058768520564270989796353732066871120916415447085258500906213273711049192827254262963384395405785258179594986614484786664398710319490025723575073462818958996453228634445370269842242798186292200537535831651796917730135074595715462703296558492022277974581219477072123800266237247325242119687335181384838176337051257893556473665818150026586085480541109523141720119681607729101801507921781287639947767324053766628947424245108071788784853257100763862808014547387089420918048477970604036578615487038333056023283649921347950682597770733980710565690892407381635629416608875605904378553795948163113940697381151894416734786321074979656053422263824023938490992543409568269641977453409949030985702212337942151389042198841307710372559802480826170088235662428362070182465517817208647826441367887309729552867150805734872968963721231470253929361928973211333318515139550187106990184866813559399878244243397509394635622078733065628685098594440974424105975076766155266555432621478233791709760319014026113530227179286281354843795265072928927415646702817678584123358979247424227685571450579174749057254941448635491561841126232562243425477840263615300493204034706668804823834004895521739685996282098025303390940706494847258101902194667653469058757204624206796658319507057999117660369784146820140755569124094005093727922909944781389498625022946185555486254570456465645349343740282295698408716306192522972770917514865489370482092124259034551308423310402091781573423402716317654396616708624630370777245530468055282300115438654376716483772493157354522102481190917723940076138960079174737610577051844365678557389283392361822218253750915498249639083630220548092978806555131121057828934828249037037608590629481290879326324545324048739886074495188168092477317255679995998744182564811643233758935002451050613260984408067865231531044589221855577490669906515210475267027743859130707513085092359710414001250607997701615042404191797488457826385914524047343917902850937672576116928663305910195489479947445920573396393557798517505773910233856874863728474481077175116203838651191902308314369997164683252212982872621814818626555420099945658793526201112389671445213027423413589450813199236812140580175045034944369337618546853820516874303914263699222525822425809589744865102220504488421872196267541264698873578855090292851010242813030695240178941434235301367758754461972424073895820538235181180059570204392791975093603346437894649967775668187978000097723733940415455892411610768014454190818963505388276597635255769686388809632423492780286284694901920284634924051735719791097927487441543383663031657514917182745545107253894991995447590298781323571457033956134363062266300248508562127596530971968584028457470207052390380482241055086267448675781738915402880223748261652175140636297949269824232619395312929921480430560089578850210525025731052355203736552713122659270250908172996023371426703838680007887275149694361541968063841157092255913005335479497918020715140404279312765663416666787537808929277274216770953523175030510158484677521652942311963225519068113391564930960558424881121741289110722603282144372770023898473633615819528378647780363515353916366662665606400948650064965632303089784970387950940714208749162529857283705295772613571115822322458942444574430588297637988355727958568246044762621941848407323447187706215843042436863443967869861905063205607247357838817271837032937473883228131974409539062506349774451028743115830872826734782220572678037226382068348122664143741203934596762820871155884898983663224248147280418719271951384091250664233644078915147805264582928010327898153511797528413470992257995629409664609291256248816946734090728051339551306715028451675974562220034408749958803881604719050201504615612362528037940221925523228968369063249113503501385473567051539620416786907250624913557079447753392518243625879918757614644927738839848114635690010449284690629256380056172636354904533210275293579447473622869423307130674447263495862030173563726615436310629422517855668036383609978630126641813272696318858669861236766584661352481434963999778076194849169744163233380535238702878579511495308857996717726805894950826579130327065236104451659331070874963165623198017981631229173936305063724849043519027099474993708239557045361619170933368674068347582322319769072838651250202206619546925596515143397737871607613613197230247972651797645735499186561127189793990071578724161148433176363947107487182967623511060174685648508393304910950312334125433342153389644933158970033982508709232846891584070607120667178241604198020323569353069218893665156367673735792325128697900704746000619788808300232020589952244984397703450989855481074688806833753543384205739791974724450483193024531297136408819228663567684773064816179063230539250709255788653539056944416785530180725348931266075422061893240639548367491025213465494940074383623949310722867647917296958519079477098514912919990932189224472405488739158823145528864543762610628112612953565909442053867402472759043790990240665360245169648562602295335118736079321845999598091803091728196587482542494348888685997582300002602236412502706267225416007912340018064825349349849169016457855521320948728527769684643918671041678928466067985753051859564531849353434868681308599856094360995863816418032157847821786676533478154115329071170514528476625540972891439247109101185230693562155256105766506788177493145806514261470207069662318687598872577734727098167488898043891564434829919387646405868541560585363255899451413561261186246162759295169610871182109302958179209903255726942663183320002943474103843842682866780496527678229563132104719092284583018614252389112623974243755809433901212628848976928567244196055245138515412038674706114527078915380894913284024741945161746730705494025472989951745978507955782292963625206371032049431893106895897840139136341487131880254961687738930694933254688342601772101618925455801635799758227982147187325243770937779132184431257224193513904415361785804534606832941054040450924797566995018039866960592973593252208171417033265744363000359828487301496467344279703474301973411564956631343304020191060181985339228417979565750805930537136198833699874811354482317649453516320709594966118243123042512688242017269952945764751316900029739020786403134269863029591105160818546040077652204319599138566771635560289725569920612259991506493623004945370337328332866390038867970849310633312954635612200259849745379458015217690863137484957438771313754823575521578669599867386138566653262966871568639285382899057409904327968505500968251120623963324433716570429910565321432572949674084223569152278461747811286779517516378383009717631424344647260340824621962286969607096532938168814114667986486400060369388055245260928015108078198023335710110881267397982646641613124012663795601230164246842395174498998002517061704996344930183785168161910968567880790554293704857749103375623847845341790476264164138441205795501957446659316500395511716154947996392319061018578584367037521409652926035804963751595535466395498609522861246358035137734081694484943254746285089360820852191515928237861733870499202191116947663837092237332244737998283515838705972687776830396358409699648759665531086492223051220475857481163759857638364473999312223842283266584680544687105738936341153667826172704220205324172952962799186322893407000521650306680013121117938770705499026323172604096183831826206988726611093198266878587026869400942664576983782877883574062106955835611509208025482948323216104897642971576764092222547697948687261642442081631145633855379294695095880427278654981759649033400239546025663521331505861948800169531201565342679157415642491328392041991375977642816250223401148625362371247753589597178447580832286133444847048822611915679345848807583648317200933358886211673362983990547117937059691608086811779085698757125867044782960232357708346685050191695212075508152497312577963747744230370350800355495521667573247872008402174174203737083344804143970331784088180269572104541174087396901560254543860115664380968556696660309134454343110584532933456341375834005712093289636413076874880829357236227515653484528424952905228464726555433185373194502615418262205441673577667927037662437028729586005872986572632917547336075409953395808206439718631260712141623800258256255177824981558970628061484563594536159546209963624136281609598845619117699036334509997530515610242293504591465081257940612683896850658972099846108910261455375155835815291829621737415088717465712709084260637369879168465700401630655327851984792663414780867870234676626932331981355994839496111739970712560416248493356436664573046907127597933203190954612428967252063439025052951044074520738894949627046538704251270931878429369624888132778577898989278376645615828695352391697452200957616921021673464418431031200435556955424860305136012912711424399111228615183481600133407232505723498853367341876453119837285230265516647049955716537274487407571587081409657773432506805615092331400379566751710896406905483116811171119489404626009704372965324933196302749432060409920996987100274625011632365788024831578799712156602361593809913204962766232600294876588206706995887160584283402287278166460591504277803774531676457808307720289283562736467454168908506387751576317260620889778592543109628145311228197708044449308439701730313126924054776636018344184439646538223561457178841383632713100856645406356806487462398960895254003106977984910466106352005889562523916221557722293315265908115745360518607163177865707267939065435576008099334973522299315133069892983958212561826760725526026481973663175614355466932596685538016736527524098076433684054254442717954887366253231705669061317094503428827737783943427129793928598196548161235970183690108404431269793237032378179448487948016120000076666216619889688831348504450929689119709234833220260288958795428123315743724359064190579992936540071302654496206341979449849802024210980121405062909997682280716105545196259768465553460757110513197201128095400543077952866460888862245018959865424676804409053094881914680579840013845825463369783074464673603140658486350300928994010908633990465745593671594111870546633126539814919157194811131797864205057089039222173636010123842310414580915561629776987782706468725935898336491369845910418294894320219627691128423243362171749051320451484672377430679794033735784857933954508051640484086524868703386371698401492315572770034180210819351940894858177889128297805433458460577502982737308795126004168121283041347885670735936114826306966622460408771308259723424636108437533158030442942658216425089463423642101609385848561287149651734626267990291617609710044706249947537626727662212683950212425661415431003300701796489507926352237798923749562090823155673426260763434723227211801729729567537420736835236405258587679271744025843421265345156313037935272346451622789052449087478132835870918581918630663425969305361877435373167275904571394840894320171041094899724135723909204427545052540235554105840279980735243318194242861351878558310277647382987118190952098531300953681259431044708868228255123488619273579360933370557355404298903683053898882150249229237135959278546087299352423893515760906910435264951213338938100491117220536130689573782541569434273076946176386631775673275960007952142275208262711072330679313577692181253016168969553584604818481321487892197842176744319744710354153353463950179735241428644814727139748484862692617706962187976543946289364562496330368531240884883325550803757197062652408256737436557910360795809326740320039298380352074118530642817332408436336585421669597761046683970524980001428773558350423117792809030678670840302349767244494154232552641209792687997639048725908487471970517690125254734102398202264986919386471486934624424177358936800797167109377355806476630978006721120592430941627521506227052393179455269069702200906307634600693247590939967005827817663497033090871958879821107565316996959111329968593963171848261021544348318214601522045618885898603771562656578971184641549498064305196157114208078003054997880944481190417694357958690988603640722285383400975902123722571340032266562147612548758035381297984611842483039544562841289293709729691761528123244997557243386580482447922577509400424141310912785084514458707251814375758855384112524152593857069817674056000345158770587043148560961044301914244824245801632726776863821520377990883971520070103139115100525962457227528698182878549860501488968433477662700172370735457251818511366623268697967670403203184168640976644092096962050829756364978564619351748748105294177571702571579201916967907676477564522379998184847093522662980337219298135065436466111663989613379784188731231109907351738803660164238667301138256711111100361843171068329272732820370587602673799576899200252672059122792374989810814007148892549222470320181726510527570601526765747636758810018347848136262281587613368976363573930622203377809444362646705784174443485585677252841063707438466402164016609082652584283135840007933564298603427391273835321114412976739666745056447086355277000482971133080599854896688668485428771062550119809882623182222808443322632369210175935024659726763888478419834522434033521442908067414286699952135765842935487450927116610390585840208564543612840290397654828021991711471287941322096707307431585800857220395874169552015388742085284510142374501339964523259444307323852461203056892798372554110038056489275161846585414447853607970030123262374733192474195106456724724620119453545317420817844287773852223443126495292650751009271776907809232499827375290987450300892934805833548854994868233549274953467716853584689859822632703670402502952169328547742972433253066623666907209620386048877782500837396603024067505954553188158394319996085168220055117585730499852952051431076407231090764130967789700990281817794462990671498394187705139982392192557047953479926511282655212629523711158837043543985106148513251568704605479878949189060077739081075205386804505832756618003785182026332327684499338938937379164980110955155263299135424841381110815356818334416526867720353018969564738167082103561466712427666382925758226579934672103220768682445109707461041453895938581716038840605582286271717561650444064151631513765678445666222459401237438533385966883624013222414933463419719625372057936333770606585419177756125051446662649100906823399657483645267338274482731071010026290312509589878951241991107305320994581631352193739893542094468148150604440914658098019433307924035094801145411892307177787921864422463975477346785840159733540597552154568814211312837589991098462001177729507567202127327118885041126433884663708735351789143113158959380101489932259092905835441216282980780699896244451463586948153103804155303371626427458837975612012278021395840318671125753740237151938149777661596853035598496618554150168792372705724065042688279057108529393530071853132566757954807895851198301245368745504953327840117126608586177549305996553525420418668117084448239776718860892691653078146013751070136833448844564912247193788960120595399294544195644908979187828690995060450624307354672476559758817079967545029773095130431798941531748063829990822860554416681419813342636471180081909944464924232566871409650998268083730227813381238912397913331536312876253451927747186208170282657558238079681225730377195502583898370259596109719289584999848999601695868149041375450498058455248619801273388763658618543819055040380459230164277058577012064051188519704973377921317096511040404933373185332716905285585639824969792990973386528166084925724935985056165327515124106953162556755192141997139546142641156667625048266105566959109632585151289394940103704365538664899169285471672955585295053881488741195242042702896876575861080126055967110510897878010489478297211822872345897649814703279192797296661952678245895013144163456946067410475524935295273655326826842219075136739032695288442009320387139672794780318397040383295668192705274315834649676130660143434913318852489722845895212701181207799344637873380829807540674281451629945550983166771248004028449970190496260013005520764852251070796210311950566876988901122691758199760465334024975418283554750674687201509261265432047608970110299492769088497706088198322955662733099652464907754105311161390651193463202148019747573628117083165000570502361725325831602880694404257011931097985458222581596940414237206600665270232541162824195039904523617833363629277230623273812778297113078830766343425701527039723445810779821949624749516177191457855096927113208280391879272590753119702138832740877328454117005601332954142799453199028905497460668904272306695913228804418335645432373542990528641128328050877542012501649370207464655103543550662748489960498622705104205989102209074007552565804983150147252004216326307438784586211637843868668321195943565768815993883699071698607544513675336300285317685825073260903915975841802286739103436715873881505057011227900858039454970436536244550564088985213398603412897269501271297149757657979791744966193994615442663237666259811799663768273685422515931525694393513519878568955634964313968279688386239145152654564104021117743258247387886903461793134816913034630015784722651146274229695607195637921362064658654829181020442898863269302707275213192577396666023257128204579072580383466803521966011404088075991394309454703161011436435514926547373653543591776917695914786590737819374935462707475358789649614735920236239794827766300402738852400083496604406746716534299216396379680424813237937105197276750070611172607371861523434054998347629328267101098197738718676099244602200244710509179160618072248933219617470808283000027850307861373648881695476828371577755613033620668114462521890106310535416650734669148709257080304376598122539243788831039237726255414044462127520796754428243484008180507398948885843841955634186392615436390084028903956795790023918237865872333181219947042299428073659398189677060685118885504628047376579458861313806117057088048575352601835011942537468922796718748779658369841195377881577933109105412816432609901585584448312268957311484969574885646227217266888363958749971995614775875001931392050812688665051001703092352636129612006180849076902771272037574371116812690920175070850238972093051841835427771757838127361346242113498814990007737545627830878471558515804695119402656579898813400877263980468876707878414368917725848390800780421762639325361014008096606093613591571457192957874805966387239766692692611214644663422732241219953062468419721161507621000707309822154493641687097332865835181104339682112833573374179000742926925038859367609680701470467900311673532803625627912831852664980607934124614327651075715911702357456734624474911930935097557317529817452506714576727142529046898041793838866555671863322251454766577902818198090453325814455521305699271736835558354787363070340239980016668057025788074971054188063301191596122831336897713694475152810686831300599254307947854185027560658517013782520388217208575904811158624448715587682120423372364624551554779062713338637531999020055449072118375024789874743892459695156228878102874297872595068503851801732900856454406170842298664324847280967031648417343365788499453525875781495931894802229701924634330487488398983298024687664256800671455449810351747621771720011706177357730707594282301225992250162028437289755554609077355779072765673374058924250979422151620012659189593072514094500607633887845491151027019223245142692810500175315780256518645612452078445907775327681711151549036792669720329823087793778048108706855665895764461888452082339388454129338849487832733520239521261208895916885514473980274110021837165659020618109725056857352647644372850368541777809572925894215578386341438308839942397575425287469323547984936527097760126471045517174378924068317621211103733334364454474928057480363930627225286836712003707222945818761602546411727609590692331101152096234436545269417259394532127020877529601217712752736696158261242878757418900036829763517577181228849236615858744065372426098016661534732502069766282293890154429189608740571707795248836298912707758644563665948138863666569696614310679527303360238985843155761219751477746762021113135931386007538054482909728292986402432033767783240148228869413471692104788002997952812005006133407808673755242487888265062253909829801840327430557509542443292840703671369175212219696431908893743480646164548752918602175287029314835123781676215877423705156003508986562476280360926790108632695007502047745267421009345983261984138601998430751696506545359784908996228577648765047219757888117503503148176348861657151459363555818966968902566572522656116822246415187172914227967686363812053278532930388669689291971644359241843130093560459155535024281283503074699231366231485537953105633493817472073386361704501514723654843127683350881427239936113662832402115544943201318997972088956994833865797452258884212244036541667880202099022876725145704919304319772795134734869407852650058460868684353929379508373217266815283874346459751947594704717833243562547763203400247432933114747138106030975223593784586256722150586477157209530451849905620004984404896546530660453081221454134324542558039979922558666762935319564238691630607842652125361685105854134049634753140539260975481917757413609713275038591855969596918086715738441348865180280861040379294896376248196642801479150478547688707728409841246623752584979921076855562563628102265720487346034804520252724837176208035927467342265041944850284525514338708973004492014788564757933469406395258634096598890075947399111354179482309082127243534941800249621786063420365885183422934870608829945806957677084212133081478616717540227395355545201058252281915990205826566898251281108380118512967745133387315761848890546000787423684558235068720360931291185126196703576493006081510953115051603195631996845881441511505618155729221671833717427559527881370581497533203196904773398164157492279670645325908851197220499757817844033730207791170448388173135286749030425352232830226285936322122861068562674695961399274672611352689599979401352067830002658050538080107766972759651836851377353659585246273470343244444875858269833166545791970085619069219997358346882119968403562275015860413403961852793061516303435180496355837416385309709615377193961485055941048528576189636903676979970772757902776988024072710749647958106348761746417137293395976927628981834418401675111699389425788986745983836863896437867355892698546239285203074879481541902808954557985877712984202224627012117914726768957093005928577728949547513240672104324406674019800856316474131991972421612495992600979497769409008676468891378951661725034122795564430548621698089461864758536068261844762358384697732007929021165755802818874939600678965971923444199525768085833054347064232077750135847228177446396879977633845139029238931820665291489814058370679189485855208683593694385139758417110458558830370593353343095971457920467577805506555498391998836199094585664340776707861880945658566640316125781506161356264426982149718089051505058087730436024037823368994523155763303845824418100421361334770209340506047780568012907652560099309242257452893072293313481154040187812426762072059949709643876683664382690238868153007169669124054585519332305069745232035613961083592522040333470868334051210055999733623995520829081899971062277371603946632409415516657744421881494817626858841023261165915308419362924970204163337771971662395526169760867799888997598126626563938220538483451942044585991288155309048176273330632855584417679313957925135524721138579115237297340821800052240203448954189220181442938150157591382255211554354558379928011932961388394356621300152819522389818737139504950900021965276929904112610593118441600534582324310876524689860101541731193689493077109957746108838636059648714632451831637813364461037240116968000461944321769182646261178983739631902154047871981904005239604226032789001974903874957023924245296120396536111673483345596355357531746253539557183450950036255351294479357754282900615151854698144846736028368881405213852656589664789235378099126767964457657736673921251740569718839047497102523053909758844285771078567302234452037815653482238328917422492207508226034381510353003130070789431884530557283971627784343101698751491198109106467320049865842933538728063967240651550990856447083525961644027128700344996305489936900049300430636264603361147534653589352361336142021342906167674951225811050399546852356302494932052372809962496772413375967904139849997134180657619515031054164075936404750825993360427602811639113129265363509161742041513170375218364716445961920562509140107605221366269867471336728417703220096536653940743493578125281060274763952186030775652257807612768639473680950529089788469767777297369014855540523442096997609219160329129720294356457262360170496977036141082056664794640416243079078696321428732084181552210612174934712544831352992162914180046800599294617574520455596982945437280125992762990884394068156965970866650144400415136965783684013573650995186066229900829408554405523053678781075465107131274180178252918688734439063841322110389700195291044993432987868367853693142578853086323829380357568970582173555836853829453378221870365868708193774925492735714041697565505684017104851629325356294722626745270745132314203508258228292076068377711166335305168654315790254701305420117983429786618460425650534636942227754558360006693280671179443342387804345672848011283172266458623091543498379255295740007187505938880125121846890843049387822174574330454511624875021560497438290483896178679956476245107661363206751253961664285173191790938895859963342259057396946267345007312703607392234034765945154958229426985618567067854546909541128520677088301599020641952669701675016693739264589165049887277616574194846681107325530708449135733410370833461467030950624130367070540820157744402267040003327273677060169237378835685257056143764695347869503784708078714954728103757994943076005189061989971024696194211104764186180606127677440493596527818870193905073616711428167070235845192962389046737125261239323604592962670573966598544251282029508824275411607032915886150929848073811224337842378277102936107388715410060536787740858146120429392449101315016017938929241249924216627761787058150248522614171622114666014586068631742782688764203108269755480848427872537861830562058851570065804267742662647051630567886114760043980220408952621419590782584352954034865019666528700623359025801214617144394859628227141291194457414157631293826529021044374662494984273706960893309135613698128643330809313877695254317422089011161831472340348670215615867311248438102051731070106255507677858342198326491845222625903891352493051324103782664733012172215775492174163282801979318197389694260939735966220979005309702809796373324526184670157638625369996029669984996602265738567064071222025189683915936269471041255662173836416511690864686736654845973688038441311843545374363133860679633501869982000934169146191665737796091275669334981836490974131682694916074551137075944590113261419959335035887847581863200728883649578370290437561908521570272007029351149681448005880344498997120826277967033916438640988484212197242508972111452316532788337761423099172352793662849874662059892654987426938292656742731239894625543534572102316916710169346254392867115388214406625012274738928276786127305848344750706960744513197761572489601307884850253898001400594887570321976002798912609960219161188635085716757082914615527152331639507108729240459411520352115153779650955409207566614993221464722972231218325727806774993543346396931823951501755390609086320974152477745987873439706688398389775983890512109834755594074645638020300339031227014750575940171659897516475639623952070537860725235777888859620578570620631086694411581788427044831216911282769734702483333624558444433324507644260740079741299948580122927611197192370731787916288807382474435068784316922809789928154042957783363595881385439823900009129625395347128781558917325306585700298870919967375051208209459049264770203728749711249323389102703852346001414284276758207309535217922795913968612128703109020962495181450041506941650963384065236259636207415592586513681670739328673806963187674617227326354071222426477295498275123680102554282352258941524594006245667275261802081375363551086128236464975681918372771587037239440589734704960404935466075563294160484213651494681415189615574045024167543714339339204295957846566657257413242857820431248601929201555963869133739904666414173652616192996541142644850987290565448653085778416345803093272755667435248842833976770476289515216408185832033369741991630025555152920704383925338483586891363632281660312693921815962162194966396106097900755395071737650006911061671831086196222368867221049099836083085809080150390342800259479726940846961128491208075551110664784068330901084214835441679396174749943749010762862168894511507298692219478992456096575178002351326089043375146177908619489865030175634675275567780150111696747488443436157509955767324854910845576183077193910545498765054069152567458638290794762415600530568631450266560818587531327681510566497692401792810061723639155549443117762969694057052590541642672761294291776257030537955270491166985006694330006598259717010100244458473927941140546516412714108318952189937288127259603885795553095229254051460803742763892771943542154359519207675483545318627466426323550383754751301218399094473781584781190268598094745896858895113015683237474666232095122533799766862202443072311037186916204173628814065235259174173211129068018545978680574694948014537343960229174240366327255003752643249526822849457398014341194472634417899355662428554035037806549581802037562701710796184572783283028845486036829201321661733800476794303789175170375448278973611620394572304837724445017317602057755574500809621997879474876759030473464424809844651793955232290083747158687190880222238192933345805422430001595886149611092455495877735459067937223419611799788727704865325819637683853009498234002560733132665035077128733289102356932245172849522535750217534538471535345808361297826920111373188293025811001606034851892222874358386366347345477832304802846111131421342948009735517379859116941932230041173422798498300189439262548091777450724282585663775482929107103430115234194403597480451547646534865523004834866224923529486334259500826173905293892331824848620385924806003039556157953394753163974030185506627624721160243330163940331771078320671423720350813167169645502773791035948385978787573528887564390672358929851502755102942534203558902807370303809960433872530565735458923999605274900439940704532160336069512361359176914865349490848676040099084237684132171348796754415099080310955000808530258085070937497326318281176749344976354995483305659029410256216001473796901964250591325414016326126848000730684018620746020731788338434915487553004425362315259899850979353784316494529811226236101253751729333806168055321070801573124729957682043546700680281541109846149835571204500400060760973804377796592242628004683580966582407122802707134054830127747545686838101789192583462529385196363835028115662749446370165182010774613515029897964823903574077824181700625249011426106467266628534612569560665211717066141439662435238991004330499606525679559541680906531300247842772941069014672709319069809064584522445470922097897404964296938115823008213367051810048728979778373938100025758049496799267752591727253238455960721574736720588901619973426826106710672305488267447880852919804442330106881014619430323498779617149934959298299622923579362693688806815850647275742734031093477334520495273290287452266255027277282998064904545646453993840133089239939675499126159087212676602394738240773469712364182979338902895669057303384656262456831064570657091553100558316175461225743208483061996375729769018290159791379004837188307812072906212038506032255816394440788107136975412028084226248622463760425698367891280284845638948338098214014150528478578512028239924979601197880640926024058133856334710893799534305052452978100939901294457906500716187171125902386615747129378672491497949977855112396728455781004737633664568963185463407329191357112848597624978052262496601172766861392317578091117389353218305295443514846811516083063763884018722045126042534037434849388065394139710292644221811359197160427561396093306787951019140248679429843091921688285976238016255998323046442677451951649619760794592940094772814057541579802992508666665332537239243321485960408595728839748539883514663621166367287824283684897925468760422592993225802096898241372388892647034914523293076425786773727254379820475022776243114485950316886507265198638528761852477074504201849416194013365877360220041035513068805425979496877152245300551062105753966488960960881338107316305493160638822154788552066861704459540845249673441239149747313302616491163572502798050932390386154396288321072284319205518733688129657042307540138251867131816116597067441801620522154339760181866603026767546261615771268534660663295132939666802220521230205205338063543545615845823786200336389933446939941747004305301635751763475953878692964469592856827319693859323426365676067302169561770776174968335631783659740047091795776601973417115763399967327091556329080489598007503639223096601022338598821076623182421047438784636509027432377925096528847345218607020950700086892576012749742557199089048597568035142015314204874754022607990056524156107940168172748556331455556344971077046213014781541084709361502876473521425711190057445259562087577178535411119640350009668172310515590911504064921490815642579796251567889263350468119742536324025869945674060825529199007034213822003197121008622105350855513962608598872189772412844037461942345640447379921357120913588481288266607401632425427407469479025902042335132711619221617898229485980169263614020748362096279035553950145916386895303670788615485649281634955199887958877958781178404047784832037923633425239288251499706217796659584646186624982995738312727069656024497962011955775514717198698303107400370652556344224921458407791935402482347952920665281570494752367097443050158096033360415116769717872871962638531982743445919836082510029225933947380552180035533077657383695397077635840202900587153645464630716276216272710595431936732216359406955235347397903452859840146341304415888246941496883451283414898779323863595845511510133615664870237725759053897028826135106156564746655735010643012673961466592438888662162918191490725034596680441321533229203680853196209976880407940619990256293567366592293073711329231259093308964842245544862999312563110798862061749815808901518865350743886984183003789200799578345410627721225329501768760534382708991100965493759096277651166752754516859429504383435683276022469810103637095292880527745544151642578858110994381418779536493733247308574733057148797616226669078222235245726477358929263280334114907056473772503753981758297444507146466013754943067892174693380698814070983173298688034921561286005365089079216171479039470098498710580758932590043875716113783400090505046992959755157070164069164686737307568022946702000677323073563808117896836372042978742315298881163728652179372962313221474314996699740559203717535615711002132338583279327278197759819522307145578681308655761674563788796549509527855272760701773957833959925976084859704239326627425940461556282726720815723846409801739754037764130006067637482370028590821257896711064421151987020739846659577930171923622064261166916102655049494163903767140950704498640459345775066838514496877136415357883069191779161358636491712009988021742104982935892585678283030018755939702423902447742909040703362369953418557340575731556996537245806868761269153587274799141151094872078868944162735493613892108275803674349578429519547307545477651603697765663193742920311177355676170652312096554069951003665013574361006409633045388619208297505358454859561166736561434970630490755805732860103702889661222574783120858121517209318976020872585752938529377065707672479192978222728020701151271536217310758832567833608924715330590370830139287641407350388235679756859970977355812116924408325685971209646285338887234418311434382631446153718668598706248741404245908701769569117162437703733590541911240962596445668696395293479339732775908856804869537620419867357057070793105609051034930733146003538859103059490598648349015887993142540473754619346140138780849218713176798408871698157539007555152267859243152881651271946816820359013414898711009890007601146332893793521533333554499753094177625155754311945111780374126888576675457451336042342716362891736339487000030167249184531257294613064759181894013304692660733734896295564147063824008012331409747604240132537429592416223735672296416894429493075038183109843891218840936365013333821118556994587953806929565593208425350282001586778317562308566625115995739591276547965435925375053093906866414206350161422077484062387073824343622188763034772635392598768864887942290577197510546477630991047723537251154403789395426064046496960718184826840947635530651052939971677129078458573248349210617341383928383410210343141801837011313579537459269001101440364935875351578847294230886705613141944928569369108831659422727483206140024974016213682332184662739632947277654097721395547167483419734517537155135298165620898040286907817357858427445129931694907941776293777552764433777962879313477226473301066450230495663174171629326538009530411423162115045816748518481918434165168153002851752431308941501675013472982030996818246577668174836078245226197577235547518830300510385257138773169652646866331455021827836001727492879574256707123577010917273685446433101983327486527477712055084272668495458125730478855080106540810226025188841806273037775464239089997637221546474707234136559066107198668291651899190487063005208937536543048596339009101489884298194846868551433624435841312588228109849707591436138205748961769269380623979695410926196360976162509085053528752128436060682847796637591531826141457173026017515986019268423083577563971723223562319209829292289098256228284104912358375189146275441447985653641810654693727124162561088355181263514570840871619184816709391026352332511298392157284307060160267331185186411774420327907520598862420229520758151040785203269342130398337824871479769740249787993545533099676792262219136300269800784567753567374589653664087951758301813749294108652547806075604490939569343215819317677077122714111765862640945659631348270029325594821913798706252085349898692896491341735391756727394935042663477387162912909948028030391112280798053317520278447159778183484715523845111555800724935711118914587411775241834622784628099259439860914833748162370340962758190617198004510176647745665800149326424798749618118523227752190857244190983324496726389151965622640149555922196623424858915392017687134483406861165023665763076527217062782315917964307800427611669491409529298239808567060697954233581619616331473445426381972977252485177773060857981758420964994554621486666053975929024057822720981564898744800512780859529803296956547313357171656861187020382717501759515792670054979051780896421580781714238242595338307047781193162691662824718574821765835667625321051660144176680856691758503280732722016315557774491335377144101946541803913063448949425103702834257815387390419673149390997769220439599443809367972139751552730654521700512401296692322366127583885123664806847073569965946126418787450250301020256601983432772879820806168730498535936771076544736279328924763872637858022627428930028727594068923893406973743458508742813170148908847977211823534442155049225064387842537116392455973966792164747756418130349020166121101775904796095461608721433029605476137210934265246630371884734085988631912638977890728900574193103209773186133741995964804526508340017461459243622568575624332224675956934222229294757600132232303831078711190375703630272349374166917001891397424957655945140333311074783355756062182590596401982696580472294713607046987736655037879234975872541207371963124897475827533275317483205279770752523081333659759113957764176331474118888277518483828763645234590096385016574190475837635204682957680464403248033112396995352940860200995269764895897254971341540127560651204182453930336413000890804905543209488562742706847115973910148469617485527285477568300550436513742693556210243750846210783968335985647935746468376828342307207413718388594283957368683981275362754354119700365505592986697048892428944515413509658194140734056489435494280685171208783878001587902287069787666612362137909050621632075782456447990256714456474751399282936954247054926999042313004884870887769369356781609817956157993960848004171540146415786359901104459852659647565385102352311432537201165777483192812523907439737254392736409280870294865886650908732286691251545833730425900878597272319505285021316794980212064591518796198416761849989134566650481025690128367827004484495714940440333002526425865933109807772836252077824717830021917836054020906582035906375966918029618256960176610170015029867537691312325016501184226486499921519129450054498444790912999858496380524933200641776492731936176472676040099969028587968445986531075482681994530697085513015926999184850131446208891736906431925229067546494838657621201863017908966657627828953369116802609640467265240230561081507028928315357465387331502278488580626507985199737103354570760194576272191047582138726486962561875821940787547397916719695770753414832521525552090732211978552992251714648351851806290762114292250961138138357106871705287907077032005463873103629725378120991552459814334052743789340832069401818750491609914296613269883972361705582355053804812093469752551823563951677795384931573339414417054804636940481729710711780753745639526466984720191650749166660519480780312609539776536442993529929685318390022076604748553319496271511482915460477099360352050291821187231273759058027923054304410325532020883595549349618236700565328476038630848350395483757626164149819368670449504903721946121657488429894376891517909549596280269897190666548924360187438474445610460189179584550499232749826643615273724902589343279931653740749879190682638157193560866109332069660092293966228635026891699060397290104939191510447527487843069367284612235855966864521605983235504244831264843511893079766672241356799840634388162760349477647365627712321029242485465992401264158818942521702696315474848574991740051529302453291729280782313087239478374448959353926753553170672201157029810811065116165395893572336119685037270052409314736777332735413790470975544469646127408083386380834686459686379906193789651824392994035994318701489956860148364989241686499203471024951569208973965738866348139038694663525286981345649735755069822126136702020992292654138787664736459323643320743259872008718162006906063968852705770249531698707446787731842537998551731166991205049983405681800147285038855420841585582461752342426030782093238068064171798226400075937721021908238900396131316303431015122302336632382992630551027844222702695754430959723816114664000008509298303930703100335675749935897675460241645286391230126965939435581087318257231622814309600786034351187837678990816199943501166373005434529240196963899710842365868013586315791937749396008173875855636900350599264053594930902267210902100431532930668760812220541759750985521284780800772630739779951453254513027276044853980632574600038777957894406421167037747404130177197623320098707171245578475360250324536339349777367084098191492435687546479839297283955246028976544839449382006705193759043518890221860220234935918606597570498240199297876536036489372330912855919839297143796332986247279149820348082524071023882354182585144078031970089993822209234878078126672892907512608654863539445600553718333559120361092394847664681270042984272510158694317235054552913186353556285245607163248006744020629516348384575581098109786778627700382058996024472694379088402355866001735366412782332627362912222151106230136299947230759535459609811933228391837133556122809531989233187961724822421049924800278889296148063094593160135434060163921453782605803083115764439803349835630782776834505649591832030141662137954817708466919088208505382273911566336993471208431716423894597971196877095810513722468275541202255450100359181503377166693576563377723788816579686943790477244426470297731491273296695040808143692219803272838888846540108753342591213896765482665810278397220917230697094977968464562371053838734812406746311418014017717032684687311507760202504826412861132717790102025467442816929358042092405991645355440093581093895466596021569975236490846485025674939994674890013173136734632202901732165252137731906879942385679310454231202009872529254038532732791070704267093208985779098542796868689660573144847156612657353340116747913528926897354446694546871048277953899826571054463097783256366492333129035128536891567769799813712719545068199461184540241107637501858926033121831943290982163531416765034679975280146189339127608081985120223029996004623627012856685089258769330681623094205736976123845497673486778283329719319877461473701032160257492648860579535091258361073510186392749293036331522563503953974200752359094663122260890165679300951769400579840706857197049395113408154626354992797836370668552059311730951789545644726995087971242383506917000456273757765696102445639777175992839371408915558236452406841252672854106557079457456042391512763499851969405644264221203796260192577168564034277640190356498704188592862512835649918479847074058643881731709295301562890465263955183481948766556146420564754695642152229130492164436606134982990976249992344523625726991708704502690275036748602381363910851956023214216733578700417347537039175596890881310383093153778370432411649834173825854652888022624756251752553961878018876841765230681834403890153119788608834574405353086570466730709625398999764281395828116723273332897741403196452500367579441619792443601556576438330369996699635421268748235875075076301265668849980496665902017754827626112750771032301643594541580515520960181444913134892372961673221371158558243496714437206134007810632730194825896762593886893489664969436786467498716804177092123277242748317761907375590305885597929708816053856504143691052761071481155301287375453509208899358051082762658329319100123728436710894982960522053967516859101966935757708644301027974402586045777442325735905915868577104487318263355993571266192770111182560076319058079420720832833975315434541860278351478558443332130135263198366605654006380522734206739168149887151765291749575598267757121699959436823203904035727178681183928028320922327626692385050217590100718373048940703813943963808133653658469257065745197250294755897484621366077544196699670155320850315923206878153857939553012495473490389984488206755563607759737588587917015497113805686999044308169758388343558555369988110703590329480402033815477615955612212279292872107902384354970250466678758226085967200277582149411643578613319387529108095990393833768370295620138120575865713959979404802999324639082243700678423243598098343134028098426734508189965242578713080904834191590407509739348986600923194505146266567169710327297987108305189804805134724026911547222132196315562625772553263497033293118589906427775837524457617037553395447914270065415051842424148808797721784521839526983838216557334803621847055991794572534887078344843570355776624828212129981048349809022097089502123064345914881258861351570894228859636789477253682754947132354003918449658705158436024099952831016335024037289547326408806227075579472459908474921617142660831682162211502197592223789551014199365268803406950067258593960484448743897041063217829670017252900417721310783328807615066353787993769169548219751975407265687297025700733855541421023413433557959622056574876711632794987252702484105076208057656252340082099516689506805636286913231723552815234910427563806913944055570374974002837092553650377338015721797042425948429762192601466885221736739388537597745463123732519987550478777155089087600879519513927484663999973012802186198403392858561231126598943289096379507219814055889991843983269915674522399483522867992683647730818876352709392523803160063189326103846882220698178904365480202816621364494163386882613653946817332811601034619568864217545163945974204237924499092148907308500224654724271621095521316142587062085748249828089173786889308513491558002885648434454175208733745178472339151003993557393276874327067623412611176880562247259917918705982709052348800261495650130988907324401938533024925531209297239116605366740403243010937245707353849408259055333729703212992325309146768522346085697994884745808723572802740567328933550776968592695167708516456038545354957501458557835610317946626447756291845871497973620989562941779844566778642351188569898031550545545470502749474470263795029770021611193420914028500487280570922418671981290508947447874067210916179871740479136777228397534829401420697637686842925543323667404086576842291508453542061016173230698728470656178313884610544034255775793622953580004754784692843060893287465395935945385442553638707878403114649617235263371869562434295619929231661803295278801859289591410240290165835774207877867518203013213147625677188916465804858053438007921565986879631078859455230418769927949086471522829377148278388556220431517553090009581531357639651324723488990394382130290964270046524036470301782747011688310572483778224265385708397191971649816082717985263032578349024917822307998371584564866015008798528207604072281278529966202151865374173367219788812483285082839867578554290774331121955140682165355483402763043827305176115009154446370386943914034648049832129454123456536991231272613195129444314927952868410121993736302184457844700733323932029908064595965487976842522492684989795325174894181242391643926791350714082322147388024350195288413681654849662580142737139051504502957214964405373191557373183773634531544591018445148016389829265233505284069784627529964184444357451454148371608250558002394030202287719371663454328480549344758676110864862948848067861971562512730462320067442156204195275129842522848613147826703849408197450466155201228787846828404779076617805504321749558730688098045971105240527026844984267080017259507368620407254130256301791974241236459877051410253463836463928698204974911726127332233254415409961425366711957669794083962684868062461023732836882288334905473623431738834980267740073879001256733524372462391349753005279099274846778071345045301867373316100120042540242953388777973317747911495359261188071688249716996323824997785808606499189004877178176308771885576480124171673046715078136950463033491891428528515276298298883829942995945564623183446079768890332933750157300053847346784098144548146487247782449413426672885161897711128337293619219002955571087129689231023046646212686899645805617991290956199121562436946136960667277281240053957915384954929733596698466244508256385709345720256205665446198397742412849075643706508448477504889918254703939517788556576924313251824833620117952239200227324751117948480709874820176138247571131480205166849361716917215570408789605107693603489547109274599218283935230497041061783232647922682018881837415133501129387845636682002121560093223686961066918981564767442858376406504069957155006342911713441873171647130397547504264216452682066683494141306915529211186394978664817155959287048652474043541929957357678385525218395277094168575319112833375569881983131225646940504744058584628291492387258955967325284353679648906563717457693027877490027476556832064224066773116712803265236629746512604284601594749675561254043847946324813196152224529552381340783520485032623162670453443500004385009495426999976109469907897673789456805051074284917198468894216119770687421612292700049973505125943411269281983791048894623256383672520553625592396796079560115196214008638744126902484499045829330370982769124706134588229982428793157919909629212633349136034154262318481640852975350185740745696531605717551344058733087977288784298458228042733945055980023656721136709909250939093688093123305202574383570929527309226994475868543821514999690247756593271207089094024843075647377939272878289307552462244338225580288064060293145650798568287938502521536945866812005845728379975179576645607632534808404215057726072111558417619323670564804671201984022322729791001574193231101358205053650184273648258860041883976258583358628091174600154203318363298405776040346159611274406373628408160145582849623185252837080123817291126767024912817964549419043825898851668523474852442444121908343987647640413704079472173294216942155331677314486413292942052174648574214167675466769664494504524343867608327426132793428565464102101938731884862248435841491029689752142451868145403344892537193438374374354466304509379425586333970671061201715012423217297311198102113256157521096457968497296253486311781687771193664277221462749259779005646206717450054164942643831757972906792251174192138181872604397505094696415548173869504610965227444660516860181846807911345604706195871490660133804865268812838175833350850065734406514120160694383450764625853754447780088259188890587242490380859035183809985671176054686793232781237917509042428685386243957200378670906360188568686511382513397157343459209305454028465431880401168623065302589986032584925776639532199709736909731372618860628046085156313202116180931622377798106087323916284915512927068222619158761807762953004801383779382018313176975164212236530407184445644527467104816224570254190821939370721335724782946505920462878649313950518658263130569799308120946154864942842392139159540344206961810833089813493590077834869587588891910158914415158660317716108409798440926616470061627259670450893227495577168156191104622787092582903473107251012654845978664246588998795354052760041398724840601155749576509361435274850003746399337576530860328040929706934179191198933677935712862041115003799385764340290984849071955406206202144614962569568283827444788106123635680377684097573261343538475415987247077748381901140156727120682808964136457005728113347513874060875524267506584523152501948542897401549456633703544941704271394248749307788290599165733989509173192982296107473076246179667154091952136907383484351015318757659037057131831894310353325166790427298198083782074097783000870165233141305180936555427805761138693006738500264998126787415686563174890972915148563394006968043472173573528983259308861579853649210549149456984669193848713550687584849753002864992001544157653403600149855361315038087470766665585979625521749119633705945133057956030746134593152967697548708070070423102000052798573426861924019010912580806884733080317468673893027297086823920115483459185612064440684665551179730637863012319777733620381971756546340186394376995580074187103296049586791944138561414921983889550491349125551975831830130899114669663527296880404158754729061916742525366335541255941485264213558044618088749895282485665669026704070953273768527128850310866135652100878358050926064839716459090281502138928712839200289735062182745314432886640650600596738214210498794086501914109088198025456378746690572169897031588908094574490192390695134018218226793206286268811491322560980722877501162113369510915808351171032783536124017254559812316326525679868453077550008272327660601668969832548791215717996974004285478964942624516345694840817612544473341820939070260640677577711474220956582651284493799597179794722350151690566967764126822669067444998974561335944020642990321922724612708889848795811839628117351294949604610533179479534691547801267049721934323208145053736874030553284288095384060015531370019007912562264121702784454402449497961804139044795540120695191733585661627951221532186947440780888620370260373583204110527173070563045960564379772467162656891173282566535129697498397742704859287952329020878246321285186473742269604307480597125832031754497489721614659469027038260928062955179138398918681007694212440591163896786362196695997355276397334785738007797727108657733885609534954421568626535924904287929228454512338403460187823757312616447125274018323353171057503492783374386050832971138798947414951151181359522415079698926489419120683872825869090642508559154945838260831324023181415951119722033294521018251754306456903565653163581696015505577637810526546534735412384047482449933739161087230650851051727401777240040554316240922765175018399030726726562074902082147536126792532730437451147130111953735003756308618028354858005699585988283645306702836162771307357934269076119575302240290132630502768346035744978469258049085442539299770576918324185141401348151410704019139240662980282279301519656988713728315114431337570888713324709369186288560374469803967774441146864590590010872834774208232439715427589822126994259636859635630048410113777744325795823295090224541229353785299324561728835421324989346966843807268280879072729973010941637837097445782551859001563420822867406167393383505394384860409426692652083696957725049351442332520444139455171040473966872508415215245690528002602912572719148326246319094952848438410577484249066650457266743636600144417581242029595375834822926523650289661678707487557658630982907148709354336806169127812846233842623064981499847932405132969463466832527269727617130518126481307160014384218590698738752340967717920197169780926805144171227174397904315736528948217737309468198158145958056499358939597967054105733471460378429683347789375581840242926868800820582109182880309998248282754909277482525220073794644438643793118438216130267974329375841549813163017697316205777903431721238721604198380494889589291375540085765491984194379564303922119887924473097294793193915815838075045555193278202793953416626632993226269915225198876542514126414930503102212926869488641205684803260626383023755226741734184794103849082549635123356554467009987327594814252905857812892833038692771636567805955264011492590413533024590674352351260280898335683174862010419055804478983535387095203459663109680167093403963277042416822061619496899134458230963976227848436791290020306077455682956843515475967970528537578263972657721655183517551864367105938971679595988526888629666874628688788508104173885330355591264561990033507067040671268698301556972814697833330695725420812575175536160349654659781301869678131618452066324616124658163328964755931359223013544064079670240695558743822073142635142498510216151021405724180539356606558641215593942013502484076277257831674544676235254191407063143426254625141207001769756655382703572012578594432759715449345049730024681915713232092353759724946725946877171839008833095978346459267280187044440586976593199699435246193941144039283378034259660477211374234062010870327740000837426558306025747063477953328590439733387977006658688051971948583208118549060111590789808259323264138489370371056167842112231902934895473206163670145314098452784812335601075111469876529329908182011973987793946067659588960573352357589714614052240594120604400912709557160784533533086792365777322848840488210374265691122501497709477475726167355633504266032261992933265072173347232823004027614103892242312077475773383406402213202898111827148131249329740570260358466300028999860027150198853318043413700857103099876281218567964021629854346035723675305483468672673544272600260260557218121731247937699948486883184659114789216645662962983628515159038841024630154857446210026270553516536645207530343128208555167612252736393235608537804918714464859219223394597551902082925344467507876051553165606250926841032316303341050210636438556994986358039355589619956439926283900512191149558891620750156207783761102627941061174854538973867760129306242165054858852986918492128322207447391001720223152241592973638328233209416785344569196895939616665228282826296263910147954745893165280437221039952652113533437926330890426675342241405778802638050805236150197818104711786790057022433753600373637606285887840561539832524623800045474014312877440846605924002469060059986982588268558831111659627803843128835422721315655408008621303323504874442691620058974773928000405155263769185181799564431079118230645478889946656434759768734864584224329057290885433121210262906218971027360258195698728214790095253975899453695396026625853271953026572343139722384886183762342558005051701006700708166604764083302929535378816565698848365234784237753663255534512040170169751262299225890432394631091231348270268294941798990155356097083106174149466871554269775062492034590511383916165469176971997233658141136781880174211837945127287759557333504982677224734824011605202928196120712803016559745666868475392358280344174655361794093355144397611735482938296641570330562486585610572456089390417388203381887100621775511303242513619965305417671263663699097344885151719465772656689593592831047601131352641162655324303038914593172583923168880552205160101097156260755553354315707932310052609507352924022615342772766321304871580700806060721267919886985477612894665255941489951841196678063850384914161831779990410657566301612430273875432904216298783841471886638862593130150824293765733851373155506104181581097761374652643297406934087446374654661896057932263025334795027610717933811859059632235479218739759835181944237182892894112092974958561843581859691009261345988037086240349072307275275302221189871622315936205410420544884094703679257471444887361955223983299238033795084192800167887164582501483880790919010804428358530621361436618602505742860930919262678096179534377105651301593269859971588863190255929690770314770964599044413071577233366659904310686564595151019873287201895856787688409502719674580185789185943588233198931602616716608888637961350190985027096509420115402015349566784768371136671577142335820265330179302232088265539533700298956207756029601745327100979319833521477089158379969335743368809011915876234253969053059034791989118283573238163345931998035958329955301673484967829505835465310124494667203284355246421449824347254802293507255833290912334949610856661251270591433354970847414180531098219212369750315844890578085343798099930658927085230015564293146821358578226402506133343743307302142554036345240230963907067230763947355408587293713600117451431258615704145273045404500544567817590738463514519609456054511805045042615566374693645944990734736151038699749235558662522866131332425059875349021725191893371584814416558387715459964136751560097368399898605338532927329347971048043447375710403454056173753917535751490206892140545647443780650534413427953236262550142336872927962132953342807780185688426245908857516861949112179960777959062143958089856951101673665913290301172073544208661663293747795782768827781924766325698392132619953776943368870963377836451624711634586189380939409064566385908978014863618867360266936268727406928339597556834330792032942499362100648835058195063967095835134262940444430652318492645596257759403895623069444596874735986704391157938694428170512750823254131050000025793019687142002198677673400378067374743287373693974231030248742800771284134747327269295375064507933198355186820133573244699200404311407422666507814476975285813013639801635899821926498500683629106384542666297385613317111390076921933217696727892727798974530186549056443030976842214177050190107365982448549451810309530042361070085341387768974245790363599942358588506913868383971341220315562227662842287900920540609845331132145101639687713356571453399608106804885616022451793008463815469052422027713806789358373219677265437445851256921520274439760638467158260692276215414203890047018672931093250478408577461942971198668676767036566111943577020236404172521927677808017344172607211088124330338606597563988032973725024474876074381474176988033994175529293830983429558009509826778852574387776408318044806065641580321391569195374247498900362980735513741432980928221275413657188031804335214358487330794415655704210213710260609207952815470234152069057155839577965326825050757597849754257541459772156880657760481283004464593059386233805429504933995508299249848104235576149807354636722114176854291742409772890056799359690020402748429123098920879252555033019517939993718253029142617248015408123592169290807292702104676216966981546644840491882175844398081719022472407890904387469210052562741430506055273201473884089646170816614136838054194044407463241215806962269150834262594623441441167921067606799851342751079114745709359942156997892327791957492354131115297818103460123887814601639345676721185210716708945003247614275996195869062887500342070702350380646510650563677640346504651440634049962028507353058382531590164783411837512850432077235165343253538203156792705440736739095937426396510175795716382663495562804572770795455432873888228080681558745071041114547924851617625928044149445153421204629917399352851233112239068608218472160642695341622258959687357684259166515478334980860209598301715947782752233568241236056059308436272999896100808031100518367830890676814067075710985094563041157595784983091287341841290745099219453991321264582933148615669754091661654875261985536183233375083497533630256546383911968347492496935317229422029244227082198668366413142917193715768857363949229611340711293660147926408625964971200547494262515779323619430801775671600396698326328567985661464833644460217135930106747756679516328327542569253079922525272242940510317903667463047308094756989265164460775885103088748824107979724151489682411981036688003523166686631381924812198680115829457981160297124825419775004246717994365758813467616834166147028665736283139241486301247290712251802073575623572165533982301356082351629495543436499152206422307244893499767120989711556294073647000706815062611223684488518795260291938998435487537085250517649031818584656683160493213101844743914203552996662991064323147231835436555049643149248423329493559228912383296265002612038985719216302991431488668869845908551350962019079851284021790980678327082087905852861377538148309875348000097276394372474431650175714346667034056735832079450163907811936157458231633824551959683717976870772579241837566963118784641874237984541422600102368117281249987885330199218912487534258363602808468495977381475152681217860203344274102768695724406374558083082648425714360089100617542521524153877360396923759025010342460074195181228522439825600660247741971695927887260410739994074540625156521049022456185255384077791015543954179235862990823729546148121665742374263407766195125155873740589773504110645980105853470373005073349586283486561481259696620183156304794048716662010335075469326579231763078996659379493974844520123871600012844511909344577064869959489973502842355922036069731639804464518690139738531117811635349417945243060245062128380715033503585512212271470444408972245070099669339559172413425423018995281849565638394004213638424690745511448911393716769610510066479340081976410971015516303465785442585063652210569625075903182433809688157183312188566675395538301907414288682718276087407690701951604532600623776011223933900929858348600467514355587977308453217189823353296904805047119931514112738061894153471786988510193950247607563095078936148206248334138112687109445414502009751902477794999988173203259496829663956755704506369222245711634324557411222117002112437284879412160578531386502627873589429043232064292126366167975015763356112742474106613764722195618399960174410661254165654152885192069282179787629022750328616097998791058159596491729828270018275315341555080265345018443212859107228636441867043955887186673259068262786336824007605581217296076371445485501892281761046458779693181332169338681283592280336418565674684607918759990822685850835745232162097531114519200352570709672620998672143891884841854057761939968915039514990335192948832197001735486478181899740003864168592467798176199678233338202042346404245307881472824359035203891404888813959325028869346068973467773181936411228950590001958290536765347781938818176641999423816803787529775011000959676754830156423684491835192221569669434845150204628087156286662285961447580706154720505011320136456278994386093258791271358721255571491973418803964572222257282482729532433740340442622008922955311249832223172875970628426042850202512433499510673432942226370816601136232333291810465364672128690127635331071107263444502704994358004225310921760106815805923023053219464624590874718147285213258498936228682710229687784946833170854787231785857200284953149290810555247226058422734290487516544731902209848195333423284021412931678460634904583797457930659701121184125091997423086840265102566206743172190476888451647342512589477606930168932845323881287466922157114766485970192487815338086991174973072766139713739080183997647579226544015379721743617398960929408386083340364971292570115360878842803489111787280519264100039325024093925183620414671063894271579590100651852953119091989007014345346483550584170550887515260213851358502369673000552264518283349272754021365202708746836562484602760438859472983144038133928644035220166268721230437155943266426555774939265269473400479088295730480404405948461239361058385013200387190795315195725766018603741329412604307705226823782493601457302287139307335734678153442559661114406956926132958601730750743521118993081059646871054492556918411763999294360548945060458959662862519454153216412431545751015082251895247572248463794051111482564454046136242065621620013256687228976034983678003278204416581033598827425721746750522197944428904074858905914692980267012843223892973918519254792529217817632760510421033295128324736910039888092366401102082322168096161331929072072251539458679211992430577324560539239338915723886746670766841323463790052248886542256522019574825198312482994622727271885066617452010008447318187950115469117273901838677082857108451138244752631485789396080845846664779939398257186029519074577825267670438145604418149030354352824917205620421988899057424153367020983729189294870213410582140014552001544621727655726570541109909296255585515258659171039434989324110145417072626679844936655919388091503397466709405220239407606255185737835193046975156358152698489504671015339565244954243906233382677970756284404201640983226151896140084834244942665140385158080674801359980083266395277542421841492972860036992313105685481891881032593497722487925263536564934677786362253319782277075857303010700692951085226498300677635141004005596837857570551280946617916779591281547650016246714146646685788143081661767540175941122409112352707711794613952262878087788118312569210866599239039233923853940910676397969783870855873490727181634785462700094593663555622972053509008462280140287768360711513595846459897483923195685750675073343816095743648829722236738777563921760021138110007505069627060575718929536886120407634566810943225310190508608780059513848115798297891704247989830649950973754416129864683375507866772905285803344712659478777403303734807555781778031708381781916419460373982469213653984874771182563711833890806917279199105348325426855754093259624456587948443781532099211177561710138370203828776498671320921348254131407417718705220274450120029368388629630270062727235964395614237162616697515068593666989924209641728147589209932953039163943141028530508443304673399023165883851894387925653361982936304021244611339919686556163047801493156133065203782501348865592202977159019428719700107830846122278403452071481450447071453816780158831297786636247085562136597063808330585555147135797842992471843261639351777475159509800756438083856337561337789814532252363901566074889649279008595842134913246373782029754807466686616820580596855815431942519631288501233149970638839622483326539071770125023322252992540030337454855515118618894962594044681329245097547882256566243858044639544422147498805544738932143159296099947370681069047238612145015303621730034620424217939047979956315322138093759159894382720820532218682709526533370260794323918192957388868002147157630287426045891472056620016122290807213946323087609983493947998985246001484233142935236755089467462982991138302775152235955410757261225413180779941183529256706004058757315525201679925806644154341236733762961868039334122975080843582484632769897047035119652993944189225358918807553372429691824108016336754183652818875146627434843199544620554998820564448571718165862523027573124068670104268556121419650686102340456314763674609203678723034695100780926716796609793174171338184316657408012216558749359845113105038205957296322172987200086542966982226612393720909966883178500680804882998123147410712882957891486232969402541445357996553507678358282750687136216310248930619148777440129846940632911261544546291551866695984923053235560946390607175510757916159390205760929596776115031263409950723612236554961332876792460142963485176262915110941334263738910342196844206763248163359510952766618245129082755907670507448198373128999147499875021748034130963030317286760580730882272296028855237010738764605702632680566117402774161534705387298869300751004149530645843455137331982959505659667113621867792084075627849354171185267849203147197585699364324189743747670501197736177025177763267053595469251952005359162053629831354940125697641247228886248734900819196472216367885241248417331838169237950190176106792002511091536834932201825101651633531638887436361252740466088458167362579595452464514255367306365120216230031633457646303016222771569858978013034206426246474969842404521302913878248488018740296065195584575987588762849401316066418147380317165584107862140560431330901248193762853212542190972762253639112188051947388518393725423118946924447718724600338493563653990813368161353685620386310918057939055333077149254241280065064671518920501612485553265123669732081386925105511106372265430907509740408878273059290024829553590107452642138238922002062733715159649977651624083520105441691378576869044501866014440802657620635628784264332866983860018370877634704313188796449217666663539170517178002565709782180236112285616913476350722504112579536866298722475869742629606684038529003675856076886012276748547486524363632366373471106707104937815368454182314667594581560683478541499167477329454635886190486797631357853083027799306277449708789844532041815040722128338512117490710008628885550964448933246256110691162694564884059642818690681828130204432648159655190741921333236935505643494369894176351610808905914128718501087587851237419362369160046445153421566452578406913179764866654689061534459226533634265169182261843512294531175356769042714408253886220317218839933510387013425570813109367595390171296826991914549131209330327831824846912838980199675215495765993191790608154516064765813159485953605721681397754209126059915825469595718805560612950144601476266586312659656743708446617585521748643714958015182279075328776977966629579860202951620538705705187413093783196198084706688081752817798161465951616726790984787352622849591512998372972205793415969859741933286400883689555468333352154416553226952361539308282943679601472050727522449034579202182650589935147104336348093465849274414170640871142971691673929709555131923377232408323454021169198195763170311260288653820449435764758025583983607647700653319547421737377487886631320135959628846406515827447608279535342304210807205674937992734541393373389261054423862997750801535552006760185562154022973452154509077490004035484689181779439955660526142029229007949377755207472486815050744066267729807994342902071592716298990181320876820912869723471608847844023132557107568845508329603658005785922142419849129055258909984393994372626124773324310059021268027187129626504748500689251852025051335656061530913624839567480201272804419915219554410622173446837601815129253985556995147006585157715503380496177789116437488506754517211796187026103234501618213937683559719160424229268054459284991648284018459678761908046425376649373187669787483443610688206118290791644859484493737546739225077052927521354609979604608082179335790708615441557764997492742503018100395711583646240759341549449357414486510491556540382067850130525113034022812694594902723169558422854993384483862669385149985729926471431529535737811993609516876192241726688531545788895020958185197027013064342880514799735406956075301975413611251140386848270562289178759853980009503652472787234630174867515787082692074248717590660859943430601820001886059184696391002799107341708752285930714409547368230037739064972435516831201203558392196511893433820382828542077697549074412124254265603508103571087565702057350183296576569324188350996429901493432006027504060894030594835463745291518650710584679401580333263832029508823014385374981207285454460579918489180927583516375722981751760643211967438693487161443766367694412786146103323559210661256450031101272464194675085833882199547251550989269876180667168451902120408171433707860502583461875913123328720265306790737396277594796258017578939959194727069103433618798387839101792167250924135108319244776827840408695412215035827900666378528912391058980619558115058043985291377676271501107317839896219300811893002373650661434584555704263176897797745660571537025093593381359856984263505995361178712431754756283809972238507573053518622543795103634483301955209095121670741760155774870054479948893683017231935312898934496715432995535434224481808438939010779597842759395573559819095800327871191881468898659181926121312939200561615523613414319301402406050021922211402767330465558769148610386942081735864448374413558509405737652864724025678585715670303745250294923079576389289724652022190429592388924461252412012520536370388775877047885753506641291337950363886477986913652113570212746562071613130920581489075470089210668967955335651939558970748630639000371554775629088319295233880456316335189582652445633598195557457566578915102196759528532287361403754061669345819189143194098833422947295529949041731482737604510159320795643832211009816075821882522987515385281424070122956137737483789309618943432837849675887717834874344626284613514318096659446430220757320098120731113814332785668656511867756704295616969585143450357631341728669369851065944018365903274942409322852303143457080809302080346377969756180754538006481457523398625490576430665390614792115765614774251088036946589788203538437414368484515209287186106618591561554647065412229434944405014592057348531943181990411264376524351350842131406060468059156745587972716651375920293457393123192495720904374299703528522659631633291283900994812563443562068217031860734629396898574771169791868647486868193814299519416994470366286458083009502127306064465363593168977458462921146870314139425852655919662904266921216696114946855518147325622770550706967118206565930178662330130832830120161825643164300348780781238494236788680589310530630879816056268714645953034119060364678020891920061404128545232900531861410838079431271227181902532229987197332192169751393246065398250296076275537541172607241473944669142994783495203526732887301308666025686813078100135631107242779121057133311268262516055875121032350314218202552068400880823855262863359955935999867079267489333116019007291396822675988577536691375710608441069021305649117824364141954507143194991503137223729762583927292956933715888780446188932037955647708261328889180631660086198507564955843405077060255036406097364131273865891824243816929175836249118722829406904918745860603115827238796697148724690679165222842080840390072425248400046956162016354818421977937739123383159196960219010920305652634094130276132125546752480550784382371931456178826823159836164555475929850454967091406060426128662459536761430578460772594149793834808501790150517951440579789949115644644102030452910346521661825419639409333632126857051722767659171797368579818375870626165621736499516269729999909894990959972191497960664226916958826073420974385203254732392552878774258920918724866879575175287662985496076704998198315545876383445306906404886226161151134410643145917166527525964185151070337607845623640337165888845493090762326984890759249163260940357205230534322830481274216576357875463458073229668729941484457852489373553331208373668526527544635097349280567603655830053062926563306862861868797127695660593752238471249502226316207134349175038407492102537336957608979751125094615378640302584961964526114657836225502987152674347000082805114236347319738211166023229443518902555370636683935104811891242150650749747813756871745610802677680737338785738490248973318731378854079176796525838283172963209699381638066470302883532428321533130967138340989864845372073223370347634843154739611677246254465522768914053534907094661528696970368278374203205431822081933985866403076702489422202067337006896500708684364985827572496424665068206914552128567847834029671365574575138869585056370894231238901805967852407079297407549151989604273004419507446509885916786655564966526284120536837587027933879359918800677104756096101596708180740234527864666783343512629684411374677898200256843666978982247869908913131049568713618554982552659140639280084410466972508277347992323157418594828407602089876992887184081785235239564881377263455960746005474195970152038458077406574052712750254808052192494606901207441882703956724996046089896640567971127502770243039437911453302750988828047750000105846387886128964907964879535076080161974109756228490028658166831305247668840224802882764390951659215798097276068281588666443064753205689650052507879481048310404907611252553012284040335589160835695761379284680834484030140548201021109517373560771691878792098334625103151246274947196874634243522186545528654243774096871225525466162294293628129688668744102706870546928250378500237095330160901264754400448226399889399350307985066651684483421298532565655372724755045997871966533515236802921403512174431570513376220574985484344559227046219445816676229801337339318296058702822818481664564202408296155148125127442289476147506057275482080652109783271738843172479038768047085593553669819917935661272559459858104325287383725874696709410128341892774435667350821268848328078008304455578983969501002485596073059607619062350288417292780480111238544890099227690627338000330332543211512081954529248148720541238110540738150213633961920064767806728463289690907800203261317634413782260093457303097956245000740445493339078264592588844459826239762038678223053060683552106569608342397349906436025767732198212293392595102133688574305427389624255065251437152501682353341742680598170398038853102245364477135925431001714782379353095299368602853908300722299017310735811155891177105612193989942911178078375093211048948506379869052242896382893372712332664861782228418212241142156140375230455233998400934856156954753579055724489734626931132869310461304754343801254421968974628682288353528909346255670061942037457037915352930925267473085576105413481648273443411592256189775792968374333785184758751282358185879494009296246549126716067563500462630190104407672220372404199910806041964869717147383676260394354036903130198465460883281240799857889102979128698326406900883949832852268197850793941505915122514811123988855383290522171423339742568902220790826424726020513460946212306733338069547379623011280861949358749584752767498969399367247063127813129783606062073180987980106701090772833873053446114149094920949057675764588151291063662743298041868036124463976762748715218105667290886560966357656955533999872680652964828559846758608904569126548017642470928254143477482885660599850223416066475121006007995792512796129369780637937738260310178284874083164492944042268806781220092878079258861797801665160681133753364049366990066181151551488346311137837943078874774917970005923871191569958764704454162578600756035348263487545724686224022594731388965842800509710710313395756321142821897641537767953992894513690230995519969805952518308302959332702339419589778413433818646889619493703564821446499332731603357806249062296821345784851517629032908450051872897145061303487774750179487775972110700379888053500993760216260580453468545198660968104157755884935095145965331167088868241609342750116234799221642623958573938970014791413739321575458722850256714225979154708170848782907106275957467095428609165522583549347467315066774198961633605469117173774229769721507036598205040045897057335308856789754522421946652634410137581227334786311478448755910472437397032483185572075828921792342758158268782575567908295561626921940606523820096406519178198035414307515538556029942452752571201284531229707513278195362351475336601888301850755189119485389963861221807608070096003475038169813316068158315318428983861230169979362579754587001793120928147831500944334799525767422320705052245954352902356067957853794560636810462250631917294809912698759521048302493239444837296457695546192176524595615440652278860187012015621176234988367909123612206961552639427455518457869918752236679875320611348961077750176671954785634318555859455547766610840003574217172751841995179232726301805883166937604397031242514233737544683140353051825166384678572922814792311708065980616390686779807172228163747342470342304957856640545190047977020542704832476256911420280133971587207960370500254547628216344388403563653174330745725736845881329777895858871678769675380245223741965997644537761765780876675067776562784975092131231396462648721416574006907809768363060855445608121637286765362073827855145420531024127992356097883207927415066324132007304087678913552026179305030423491465260339286059923742688410171619930426355413061209777758067078527456732008148822921376006743120330191514071390680235626189343455368503715069843914551820055852757072139354860986916311658334659001568421650241244040279862036608058605707555005991642013606797994688908599283185974438085251941985510103730564504866929853706959612609826444639693389233345374377947534606034275780293600545566289582450829785730423967902250041560693443980840241192511160857674327279481059682516134527327984971167999067908210943901631368449416424459690093905673615904713071258799556608043260670933166530525466451781498996128080369556406807820346347921462597491543000021349509840998611360269730046975574048752118619214912572412416312690802392181844392232327111710303963241124217556642385636666731100935087407325957150780451265577969628879845957313783749507614001430514742746649560376724690296389897626061341107213292525449334261590823519489649375575126281026323906934239809033576063153926963690443430955694561045008474553511702746720036269249511151154528020873283651986713448017727767054548954067489502674809782107325965037599189833744421970663404576982902375529556643708241556042819629605520052463689651676320489902426878600913912222560432570733419756494425324076242002763479032347096231079045602441664229746216811622507949047379010141138846366781267929441988486707767566431134927376157099148450262839037438861269284852772379185685007192241416549639103715756164600423163782706053753995579633155049943454216357418506237849251266613544895620732375117572287661879350324239186019473015767103652714203396017986378619202357840751717808911075823470877886321232267768282180203904305102661979525119276821864731277832367159031759480655204531824771076518799741882711636590812665135079806890703697551033878898372189747273819932610102348051200899302051612304027568793365926515125544651305373905041949794581500654391811012506644562822663836167016876008139932572914420061269435922714776013863451597034069034901477689220991115732695379972156872310732882036784658397229918712782936785820910518550296518241265340528640443182175967942186287104566350989970759682629562574179341760100629081955811091367937261762176638447824202840112904768359717780956841562577524535458777818935381697443091151213329590474037237895307941379090895671843272412754361590460113550693639023132544900196489441428522557511909722083454538448506398741463497802651366233718277478164669741425896865025511691171600800341908026662230089708815223045333536038667522387463330484183808203471820944558682834272478271540422653217514960751084740997924752524525085665277777331773893029414563345738616685537051100852925322666787490979528628387210095113379176491630986586255253723218125887845625795449042328844261655082942129925446145566836962593772497588755668612178608468527911583641540233296723145208311790907708780929368856544868311885111355421613593684253179833724066325489283661949504896799307494710108668753242364394738430466773859647761858963439181367279540934576226797659676900435318653626936345221315241133097553502320694205620891352047818594874502779620561083752700838442186351958833848303261577483327451034658795019913601581979100623481562768751338679182426854399572154037751866927038975625084419663556316447940531046979195195632289584818698598018942670470823311398178208462119122082087033178527578067576626901901587970180036911396849115514331228266428474521580659808745208030321950420382087258128650214616701113033907559190472497626694109607718420988506060577265522962423489088512108499705581935508581627017976360689930487391772815256000153525241719555521762065696566343036017900122201391418407222440357125689226184512899062604557226158173208020376432925193947770748216034739695809681044046515055983201194647766251376712046242967039198704416727435968701252149801980134966350783575557965731808385486129790986676170120483654059201520967864579558807488956735262368039492980335237624719186948203146939819638712466095735227100772593323850019128308214971980909442625540156366375197631704340337668759367816443771370323045474850010823779395982043670377842325661448370812735814431000655940149097363199834395863411010480126517008808371114785907429677614069848097118755702282888484666627187545603333078516454481762818131943976624342020877250541942443947178197529988960859139137567805892076005181395140631745873994205471725580942934261703919563861131275807907430912222082900923121770535884603925774688250546316127892561215527990580983612887488173603991665752028106011372086325878633568760308795578189488838442662608190002756068719638745833089909669466375640224838054049100045411680909316879277320355578039760547712051483805354869907174170117524725326963724234144381719615774449914859733743844192594570774946994429906304800116470986204259384480820318331423567525382223912911825331501512341440705872661490193007171808034975135397838391433900676849702958843561732800130647364778937152933594680607033588631137161435263484075782511363998660491810166334270099010474315991819748310638673111104635230004791977400472673094398589438189923724831423176070610377189013243784761235897564792069507385008797828974393144268868347770107735610984375525681414731073492024689104800522966851652762836611357439626373057852412412361635403100545130989833178652813219078181157056700437214234964791089934546271070452865770670999232019254762736425862284901950532887429562097450856957942418284672295734861394402377018929196026735251385381842225444799144743220700118533033443918477176425411240515960706918411830525570917601854361080052284982598361892349424154773703976641062383240192437254151482268491444459140747756977656188092468119171238950570832999744081957427882598517516044406880681878270361559140697378707036534031275510789123502624006696177450484355182846276279399870196974806396840758730653222410099471399727870226196126336582292957308685075667347062942676878711994748176456263414648653274253690952996219279365324214316929759791754785826820930755364518497757519400161616615703553733386338074232937458595405893407617344820549837577854211701435808336562643614217296725046193550764748829585026197443230058188290284345988384551492078787606623836924082778068588875698896241710354344402989336729918503148232899888288439570524021970679979665029812755509568244131209216769314796308029387850380661638178162979728405071200448454186557746215368040211099102893294303220554450339910259803692315413410373230284486838926889997639643338727743848632461097738569308325042839498412611222506263368371209937967220030837177251147098377444933058160795558265500958511479191126167357256784776933869451822305689168184270927160198999683309685783591921618200470122391468881893816634085993549006982008994835765190913172780658549823082165655753742039559977515556146413355609543698096684376835858551885246628624381389662318452693934683470741386607437558158926243505455017692525953005614082280461411837432684495417851507254380821087297116569275254201902637617715678025511219149093877105393204618980025190916724650896936676803860214259763292706716931963795889076828328033209569076776025491965795144704212146032764415193057727490439895590763067213917762788436831685463451232475758853985552977920651767861005542518090342002347273684098358395282204279681639583071791337574741806373780523546021776912202937536027651697439365759723967713416942825086694315047595586064206827323323067535286602487888919027816940344863475045623967865503456627294693614858286332856575248901003070520171310065304637536390652392289302768498136617871681995803639422763563972376386167581205676809008138483129690585642960431017690182890309366155569488761767192089421828751177690436748364514492216908697587654287333849817643327301539995967578160152622029502397228447032498715027243958655629988108900984995812109079365532325939688774495163356584540632483715218723292332916958504675012393741305940091773457725881170316531751837271461273698518895562785178366682700706482606523568482908867279078225674039804207902346107183362293252216889885370018324286653057561139157254016932185457562972553922925799255206007371785557008208506142432563117561637274301908758643194455735738242666763490718841779977929033761660302048579261921900014106862467386421904180724577534557297667228690700180014672442402047155428267704764951056766780255294391974467294061532405193401904840797169571618766927919768103624408281058700454400472362601769740116031561105057321390266272504274072670455236530582479066346466345331716320081975810352306140293247286252650208595530237952353968112999230109850857417049855025014862756301476881510187443320180831207680823702206229387779177913125497082663624280116105477627880984048318116410845813480555621301352348018419482944748562287793623883970390836151931201207502598493736317753198155696886799440181693062963764008029503716631777466399260804264584548263735591440792912984222185560165554249627104130378248670474029916039528373721388038994907701475076125043566497559428337837935767653590046221503181997685826057250724819332985015032106939716735935272422240778195222265258959235385291372901537115180222683527684644633071621012910065183550245165937160796329663109839964742010068551670944698944315052299462301896469133989645365287534025114266027810764266621894242174595191572591552607355709678451517752707239770504435407202744418286259870629235709304432811756750522473677827289689840785983197904322373496777385822553258707959965311453924021804390422559203924733604380813920700790242265519703155680863006024712843250344265459856958384355264247765687999346426326753963720564118802061809185727080843267116624688990593242835703748462390020932421479300325470741800985075343481685799862122567843696365537343347853130602719899461981885553338977927790961610447242079428311064358783460301659080087990315537993112971673091580521571157548133891029602562002667134456124111683594827636140605287656040606186968619866605446803004867295066548077398478588745492347529683392073968045717611410928969011093119158839138895608099798532239208039646597792011139310638380643839461502305544829963959165081342240161220251032003358115261064889925160401662066118136864260879338815329972573985735175273618236804439887527500990717970627547403107914041351657648781267972906811684044847236313684475359013300088078253366013455072189670766416826720085063810077786570627393110091190736808469205637305444225003219761891947159078579901835838370097232664911315421805802676070175626506487288475697206029524996712662472902609569569839488699921111120276884513059184776129275355678889562178719947444201168697948334632537590291808433366995771836356765332750853906825209437909069361881224655968693150379302161752864138191468857553249854809623707441615159075440117469668198691191921219766679285433169440498824212627723458610903285005541030628885278737422030557723960355069531764295256708379710329025895973212352420332973327414614466127284023731056915577925209980213349415117870017472583701506330621850844720590795333626549670779916202488107329123293518282274400631358158299672073659447855552340881507534516805178095777701263790902750943844427574470463183236677510435033157468106722827725191948349233915580763315106472357086895368462509309610089679431132753765489316864387530584234673308861087005431636016187911099042967583064777501602030463257653756882746292029691249368846276966632233711084155510673179176645574644509997899751729493158642112644590301544246474141689080758172157123343080536020534944480506543269133542873908793356361484291170963565379736693375231827029544709229519716797881968093282790201095226429982828320946054094762078502921880146450281942299379353630098822911986026170609831668845294948169191605331076908461515574061202660682637867457473366184151021942113761749795946754375255134483983937002905825231352331157820273323639346910293141482062450288322587176189965458935461772522801958574465238073613862777401780016182978707755785909371177871743863115747619161166663162750663067319208883411225226686990331178514242177810109453051570665044129582391287162774226217320766669958306581458282380835098320576128710350401018378654638783941634086876570173922032706753828503472404367738932799640563235202385695410222036807484453737885278560043151392096926638842973221138089359416752469051199922866045563664836773738604268147847310884220284396759601108733103983539256630141155042286831400759109417049305753690277679258405191618256097137949297187262828433401648733100867751114679328543204781004922775724922408407495142342928797609568099255300081866252025776148973837486997386025980858137963268974289413639214819559415384266803694240885246081605563003761816852651666884333134537383273756991325100785663756198650991523435618855402706293912197293942032101036911289315576906124042686526916764313549159765767613046999415094915491235777910951345952341804492335337485386498828925216619185616187321838013683315755969598298210178278671122922322300835918785399951475012827227473779033775705925523683551611211918978712639549776111007331956155500350481108673605904123264763168785658525085154059996843022368764257745166715208373372355737484563196498323303132967709595149542331404596231335839353911263353125312273216545064844424284450632742484268623717127772681102344791345681076690098492451363121841511357998568059179817810282930755833634800174113805997676105932190984929250098425254429669173389343977899112350036749220388990785666691352188594708995895418283159862637237445623795845695495987325660951535771163528149767167061809966679362095340093488945877148561379618423065713870051979082029337151592573101515636337086230468649403229128096317691480204538167668404564730965578584557375434296642623358843162302442309441216081632932640267506917451137196295502667551671803729719735189580034635747903852906454083195319284062843551070353512636847785621824363191548908394021802624032780139203395860987089676041969619628350328320755965019736317157305343129729840226831369557346753696353346060831575502049322213463377670790274957392585209442578061693110882371444789582523110873729953634822331652911006881507308322326451527763824258274784233615990434928047735602347859575716957611204407161035862856020009708386307910901484266257141668737331931664442408404646039905212768235403124749982178172721148905105069520700151119707146885195750894714709268927321529650978367001273252218178624331294297462522036294692302883343579023794547734729013986268663681721321633872926568257208947428176728431421976672859213413256096841536888064024157624651651985038987205249013202803384666283277041885190561873136557701219317127340770921191117432763955691404315392121182260310970242473384414995155279917078931365023498548833341822801326010803621869410980616889837250081249923454870776149544988463444862965492684497702112402449058932127263041594234329457020143657527253172287212999046454898406806067090963803032765569546903419597662409394636323392174301749852888853592961015885672903108747396946113012285301912040832216498691691459698234461986249318697370529919234973708868204972102177384078341529775836147249048627760951028049316830348292229914916391789591613071978049719489770588348728423324324825811632958021566270473278680832666165396893570237941847074372042952570584792067049056249294787058359536855025322725253866305275065929499660131966533688855774995916618024651954633027482684323503576634030284409623223221910163589658803336538120159691202667826762335470850474983587502260555146686154880646021905169636115584589625418471045880001509198578883849641295156315768911906086320903163664801511462769687294233523316760286343228305388474425941322584707552871912691659373537536908683967088542438292514045505813794323295393718321602638161639917772686644906542864346040900195150030524054195726834980800949801793997893225706924450654514843073358594325357808331238181974907427950885885643069861336435241680803665354748363951053290121968705075141080006158834806783470910741297873653914433481763117570877840093837811390676389136849615499080069706005939653058212830813108985010903654462980329533659935689117248153010090331665727325597432434273448990174373613738311485661103916095314352833805849987423000473211619970441862137652412144190289159831485024878476652984363615773310314639581118746513168264567599142539856197841797830825667117342538359132594707302935708844648902877297837088320984176066893302893391102054846203504190775571361869393926515577465869565212155488508164540561617693124262792283657678978303838235668098618884827959378737707470425587390320176831758280340409464224227242329972415698355319387179301569173250561955093780774205033549083228829163588625899277599200120776495944517088344437027664602533514525756698757058241537526638719105206232132745882566426542639033761536200589884434219002140403986287133779647302917673131417239393473572492565030076122264067684445663877031277465095011809869897708088361873276573615505876024964930085372001073377300968780533692267304628023723240470935450065201309256759651556593222591437261193593028146310040372910536791216229024046896280246909709192581652459200384383416009556692769606842773897680262501118993827386913805825562882020531106017498623758560790628911357560906689984634945457978447152608523904724749324481222336591630285108167139102205257099567172831503541910010861659831308293260433751627209900995311389679121900951374704962622140388121614009421058358954460326732346914848239151710878509903065152936720223525484300662925837289592871661855824785988172937744041626085213638337295164627641507925578339471499024846926166683396415870346347064116557552063129262670046883456887917833035603016698435778198670729127541912492241544473985912200678474813959945751056192297683826515129197526697475405585312558018461353449860957747390507872358996733737893600782506058145341456478934454625726469711722124984325561876190431799239057334848940780771471771145255259019271025526821939131258265962172164593169242196769460117007992650448164945608206599928309681822595747782935866946845654883080071958107665993687280999315795503272064256469291383201691020066663197773051004849108187060354942531938482165438000806625842292739815180193834616586600667033061008622147323240614518200599562723189965013678670704946214915463645437311440476841940337138379146806842852835164354749599647405244398440162868230059843408789156419048671114688612731694199743184229201411747137759242797882160020089439114217220706309453181482985676715326976195973562077409818644715863822551121795002215271338979102922451038615330655585693557669301165045099279812415437175259394198608104294767680321352055452683575397693567902834428106450951511643477605376439455048153510651875571974103766821464884445588259762808528624116897940220101869077318270120009023251272611974693191373973584278601413483978352599280438421377098736668040899632025593541245309990714299463468520723800674352667260658443635318701230022691331135248418894509533119995044699524067943312392051765082199473398916237871814055973218649209936627333481249548950081277222588652414594649034574553939894068613758932339290370736973183788896450051885746286807662334235407925677606066853255469521766615180472535818451857234043725415770649934267818782977625183725884561888804224282085431221202882263930079079198887207240243742914850243065152146588093666802875745194595542195392303455530614713498048347172498039303615077620087305132763599858883890617269268881965649640829265675747950445032543347413887659593480015233399333234366246677976510346685301019338540369922770707215750667882900287107567517820343095992906184254893389994974329959714246777542598702016125131891006184866878712450337669482098448185338142149044330140836648536238595442902406997240547392374303222364018893320493863248915200294495355236235575359882091429272238244532463590263887571128335389167486949914773475867608513709922915419008415606792429012492674189583932755167070723828275001213182030044304064721214636209563970322205883293535471780042842416295392249525956229147788455504434238620528346361428847172759375673322977140445307824742803729270520007752888247430664279265622568105040012746814020785101337972775669919271084197917423373230480121130317313894115497736040863767866765485190379583553663631406717108960106667187740697109773873787888991882279751304563890506234941725671952144746396138307727238257388040921959804171001510810932756805831301252222522198787245908507252510084588002521399572509659210024806519052184691759892452062674985389687155283219470355441990800682449129630112593636892965426574226125961584350896004307727981736408264634830737704267022795364239838780344681476357447714775366255627549290621168636526157554721416322550277794316454826755832471290765180416795773474936653636672505910149262425838149548347258809825735838521716131201460093967688612795948076492730991176237954628815712855834853225336342117545304724694379397169111820490912823482739121469447730137950197118417942065238550194033631359969652664216966472614153274479411120083947213369241811246298989244682572626020567050761493744903416577601404747931286080856273392961410371868857733074857966677453114771119575376414295438068500521106609455255363242231882285533383606252102718921998478555776837900617594437093589005090878207289066780344255520536711790041301235153356163272544408969359828859224398792904336047428765074297574923581625386843438313380339405156557797556388408927501264971220869442411083109976965517445731345129001345841749497375082688074881759250635297805222797493701892763701504304850700766185044632985373683411284457827702816114002639750788214207230614089327422522688648641341942973481511841648301466325246505683336149864049415408174110997548276843359165575036095556295318292019839168820527168122208036909378704974807795344618525636562138868009804448764941929970297453720294782445285709461174945475121594027882744655404957595439972130455102572266930041974696372827837296314935618594925545507684054086519693899269773550170726587685952612505194492820623378857531776819069950712254271227939169125307650904658011973667742124584613290638518980550780982891067625111992729735685529841916240683415060627604397988263743464958700835960144790060347175101228519590841271105777571864653957579404113269206190122692168805955124730870854928167876620614659470093018529283983958677027506027948208246510469292062641347972836502550605091874690968137445936425497633695072636789797264954661140153828688913309511559523499902787320542237220615908110331133243930082657986407636859096390953203864335415702374906822867754559991592589239728059420460576452724654357662633359060111250554827157611978193468717006735921718297437141370274483732441248509071223459280421691799802775885603150810137446476731649314455091769558706899808785026052569674127474767793383455611172639186846573904451063837718940054244832533533955913590166074186500754405572020509806917345197909988384840067317816846289354031548767426994205372864634638442066866237773770932272644412202750094155823304672887520363905517822301169664534982578063917338510172440199432491829374168328209551755313043191194822657949960985785783241133214565635247892973484581544876123091387993230101433142454864369608096371050028841265690090405604974420805964760315258974579724895907822640352468716638252578417905459189592080198302553911556081272032340124930319391947734411803513297050353255810291837182022872350063187382118140945620551636225813904475142376678870724652736251136485199369216420532416256548197812724442336709945685920955324936057589755154801720300608918558434727266793410707775829341015809507091523296392153728306965508195561931301731431995632454752213918899462396671666759166583246544576780994109298723341137747677121768831222886598760637368613796217518913174471724194840502518895858267194653697661083145291650852371536560522106867546763157958534849065822749781773142788319642177585062312765744888800281375312704458320856977383099620830194574624319142750917681405357000861767701237501803683989549168797299760983342648464154415336228820265174393663907533406502340836270931703518840107915266520501068125816231226208104733260921653891322560737449560405935378835901492210006351042954527735865499225221854285446742969482863006549792223885530602082473858121054872548580268628393875172406267986033285561695988293025811585747590177411974176971485509744344898190588045014845646900891023743055671799002154853265456241141351852508069731899048144699456220745185705558227747741674039296813793472676668133180297241697983970493307567876630690251804025717028664355622100669143104528150421981784668748856028744206803117503230438669974032932793348657151922226150972631332039284246436588971673191820812669218337262000159541156272373441184399865332100038297165355875800544808640527394355155819967993237957632995860302875664465548348556719351282435648798153626065935622774439256810840526722131617267727238770149053986307659419526680312481942927126230801980961355026140129693655471599009233359200499999094983405047062461470546465927672617695327467439515018393121163451200971997568862846724844963711592826295784300505027635463232370481992475118921128326758215621448480689823915446581405752662540590539133069448745565233220392106387180677149568962941745087179360376351814751799436233775178725888119369551871758882491801825925624828460518123394440501994365596562772295599000811053626562687342792429747328040983066115403282506517706152083247755985175264419745990650558152505558557693033162977600005032072729229033466368625053036891170186182437932167641899521889065104329460058545829759502164522650853442532354851980618377516047654201167495583637297550971836402614829440661620303435371542485900811420483196875282216143985110080196823192450784394297324852745533561684004728775439630362296075196339604883421924354660558955457589866616110944216630635342443009536943253769342754740256632871768271910281237708318331002609425026309454209897267532029319871165870726870896755222612266226644750527775645094130504125971082213219412073489786154534298586167077466160092799495063860140373731160741201782115568563539920932018953985647583532177629470631906987290183275328918546976421301074066630858767881169733246039940406580557298725046065064187086716021151247451801698353948340032151056937120380791537926287637139044784254549155045907602252508273100277588880714708331286794096462612164724987521619273149998675887240553176853081003414330644453707362416688075952214556704121264997075730291613387417834226280535766366149378272123687486152966574340857711821399220463923577405716766622250571168604209101359360144802162473902986302553191764655216445686606150640116714073027062892294605741996010025774175450747375422270723767898118393443832338669730434221095657357115438244489787213732435324702891478225827999485675990451559233401169532522661316829011867736370719519481198414267431774162202237142018725846649263567677172341648752805296575879645118725507578336037802567410218300996613147775605575098926631939766719204166531947515102286619585476757523201443932782739732975309554442885189145827347654542689231526429899350900230039280311650681895540926852472218419889362831010638987456311263955564679057085706023852154797131980384421372070663255298158611710619314547733521645479322762046482716677800843074926074932520300757302215533198541422038439116925115173739959148605466252914724862575625389568486331980977495795780358533226644583628675056438434076421922948074877776953844551993588818723123610515553724345134080083860042530955123969229375466160302703703333339624119776270336088568324885505623958614623678059777405511360740745421600210282852417265765753539327915387460561798942799399389146076140887757675167516121994239749959459811739189245248440688281931621135800668587011264325261108771924055926355184572399003631639329393066218784636888876229669360684054330921836363864561572458614329640488540112223163486224429827045979599480590314561921637892804130106005748444641707434546825453903572088770131706917986596762763606185045749353433481453909921635754329830632371989054196771801860636830871673440640411759744973941492097175836268220450032183769261992356740097609683550583842329900016942586745537659594174376647279206555621711533211287256856425748555176337785498328924855333583334451973076756876131725153311357637614794721908248965365016626571565245024336147753785857419921703396178640449926845124751699094606930411073169010353255868720000460716778479059724185890644321923026151200919390431515095507330697461296987005329551495242646968548478030171764286636545406447174735033769378313179370308695652377167085147644084329235310336409128117895351180921178047107839102133304968918343572248146500640745543721933763768229495768581371748913566382761586548136197960570848118278687636450412444698042213312754174046587525755948951626305869257705486216467809133134537561664350068912117462582268626501234707105838521165033934627333832298076781692699399818184728150314672404694010319539896900357311733851693563128393400120630475963505101194747168801039830361549944285511169883158807006909236315951812924129845314932128596981143936410361437649900423444026444151938412818704799665022897110884755930605633811256949548401098734484563724011865241907698541522764515137154622611880390445420237437090905725807424210574390734829456303924115567148269726513228713355953145065130659464305815117484823584947460685601210901213125455815728646846381161840139068819101430821030516395346820965114884735445493391513586644312238911086709890266247481754019553367331934616852782411375047669638603029592826838968698169473352519597582172603921252889412159140354130346647910402133309906543794255041276236935690085306132667445430711237328382135895982567400886276850657390734222207549646094207232786894443305807675380548384020678873133375673981058272934053498896281029271404058332089906306852895339655198375201654031120728382617712230135607465581813426467184549261233889473499838876167218042922247594591839398841317556227307865759889942090265498779393135310879236232788424760764588640138260932350476019052795109278801450338316757628974823842111000081012576469811683751311338957591149323300160048261767166492018469796882653370676953548838153611388297073610740401483741355703080817084921445602612913989397199062064817386269828728365506708209305931034018084081566472526049263283413223273722556894115097358271955103333999317294634252711654664030517367946229398981084364605599885955887524610737838486939600749948655660985390834843731938340011337132523176154432431887910726375819982015668666422130461937648773493074283530556504967756605581280827768767288234703505881955255604769190199710662224129402303212604304046046880924863137384590854951644691453463206933420928779158785628547653738979728224571041574197142345341636515892477085400244462578598148138792938315005837245247247477055473846844910533446482280918003603980876085665246546901627547936317175600179105532685801997280794792365400049323732513036222488161698660190868757675356752891296701362003274042622911360845378567517312952238308955280968556287150976853760525292450641111939894291533484039102934489444637604905250120909197681353290777362548424080366729354230925344643856596196387775568760015172768861994549211177263800373363110604493470501001092487939551767282059055781947651655423837740181420199171190949115752113785711148788437868112416681800064726767988657575619064971169866761573259211546761253345003029907662552621932844133564613183631221782540500401715409820827044253682149106501670702321665640872547660217178735195696436160650281742911713093533444565138597187510847997717705726747028599172446573643576108086244831029645646018535576209835815202445977107574007495218269430644408019853011020911477451044076200432309006385122996582375762985335429262335206535668059297932496033556148006196249306751390206134991957217486102988379994573725237994065306705297688235040200754908249287954859857602257252118481848593909755593739043665045158960141785260478527233427270770637535148969501152854835406034633676393159927216782510639172742922605249214397998089842591324678420004577706592804114871331110900377341064281550631437050918245300205544567500070775655373800234982534962078462144075048224885908543865538824246903738881736297352809382619480162439426311531940954407717684736586233265177465996750893738744776640227807836843118643081525334593530968720372807021420648298221976049382090313981645267242798980804069710234108494210846081477392923360394845935945104843714349834489235517804090097673760359341586348250560931228200231487403643120936441820050511836811325177563767963474797663188977013016360361689086275054015748984164876247620013489924392595146974909566399361839715443778880243100841291084561277517766718365567195777146428520097515455119291280032048864222843404688362295237627284083765166116794779954589449756062145249939353242079534536307782117146304117035832928282212703927707950137425928825070330674747352526762740061955215750508189444216095128681216232960210006346851448873899310402025004147636496683489006130591190259624151085993388939050211463939050119543078460184147673297913759293041629496282228877258231544492817691119976268056462438943842298528428866912218548643855927973081074686309974692724335828403954095175145509517532026704580605890161436079710254366750775801036970248907077633851556414290423620032958237378323346782420336008522141094447706254886794268458796645613452470082101352342396383593706535441828416679794663985222693142481858276247846847660190180121822878096928072645494830297162628790808120767233205784747778253754325173888312476051603508577962821834971645139681810465082984705120835673269526648294253894151708163924686503570560529272328751448660148660163761729849993741725961746410163043193637325433402171860801924342913915479638528371638040150228234894703408180220210050366689918141952039994449525794070704104614128282409443017152026435418309271350355480835358148682007384274313115725065211207193705015097353356905894889597101183831333791809778256257152455249028744876213269259866592524138957187168885382754762195879412144176556757790122120813354876818430287362712103420550853350889516524706769829626743569667182181109761736878780055504940703274024997350004088137729184617350230233801651387923774892831767588812084258204288681081986068681453058268586390927241659366154808010486815338346688090729293885667740336986817052266209511809336504035294224167109467811758766550971377910758830990761128130237272027022460803522649955825404254170698835638824795292942541260467235917519685377379264518961714477528676332484288950047852091901458174173792592336574731370262714145386987081632701940019946554429794090206737738098010847065381912263630433658534969197217339756979252823974674118790700420047125326743000927493021317100114941106222205096321754940402471426203605352896328807701946672786762234506158739088796004391677688147497332855594400936928367299753091683660846751412231142591098802001618345407467953753948190351995627887937169040723018279526947332690759431404445681926397783430953245577767869989212230592812338238454209740239128863649840688830664423664647491858849366191585195926806637801527391785784269761281079937992865265107555178858123146618326563331714272052649946586655648623935185609256585258646306912480615550976962077616340886378528412971927501303268380586783611970500299428376961023295083627856961484281199344528782255681015527065276689009389034696911401743137157532014232131356778590718083723038271742801476811831760646791554335609658721108094197450820077161018218785296744921810577539224689760224169217900633042472345675530424643896637394397131322344453026967538014798809426805688197893541160316712175407001397575205769644795972256880371207807311168714292197290030759957884884173582134999828336345606369592310549991517539527098667170784424266656194211587468191612734686629250491287454576373275677547812441619199161307670178608907329420989557424825694249387111799352300441173299290475414334279337946038894396507121385712260284335630020599733270611138132984836545342575793004137567884953154757322043185340572928997174285231576747623079165690875145524047365671083366538957871278742126086824903959065556064612253789748097759421941592419513748250371461029822378019431809954453427690216080986515572858354993570031712231043303660078963305022180045815449875098263858715261751055505949004280324065426049021240228836169419225459497521341417986083933908615481204870026093182150471651092010763210657054830909624228228232240654418285090661228565016060429338276406725450541863475365243650463280265589830258014773885701296383008123972116490789618770178607248520878893304000249781565214290458299882400277505808364044716049608849394438577137029506185631807749333209236374570577729157511997027112135772654383079770803139654762774204929545165850610204256903972344903294921134093532194798917907702911738001287244086032381573283304338848176215927723177678643890289688892403854923291554306817356637461178389282574271968665924967486672513762411908203948001864490610373393333205266807755023083028694312327151504212730933583831823231736617778946210715601036901072549177477764701855898957331740270725979229849940509322494401045180588097422238886622705059511688931700357921098732504131051444246724049871400146418752335840385788787429601703478207722571620376319936347559503446269799784398096216438745956126276428542323300477350401222681170841035415857777845726549612216004164792328228022283167536843727754596179108865321380103793315972006364038182370106741579977532585945706272903292737522203262608240856268263669040124810342874547204769666779626377114173090963079770186672163995815642358989311255482095801243986087212838313627995802823780283980903777999200098937654692788216050353028766173274326531005658133408001513417695783374450441583758784442130367743442769020382271298360871553038430128733281258415274224925098341713013709030593461218887014603434333356121090621626641598934283814738723177976204735198236683032188159620659924807542944787825707000714856995311535069110669601851581008744384114101786567183859938328591150045807693594131671784115540224550904556968094248000720372459258039335497505545179928486018092674858245410321618616633134122514368812884741791616707689407627793870512613136781502244395709754819626841668377363136774401169926630626216631373588243488753751545650680844494183963422036629290704227412489075151837287371459687264930887432674785981989265601591857282550525455097530703262196735133454172560739472199633498803692882665827494620759439447701989858394837340101411323429455853685005440900437302887020380237082556757496213996114902476036517251585168921231067185466142722566130705371330333108594286157058633928538549170109934879058586813127858308417748655103060057708511230715886486136259089698437376951331836072295541700547927364890871043932136961692037430737776565903542055870772634847126405885995762410955452761398719347786863384169414505034937074833620112095612896639107271024236151175063270526540642415937706616816388736233573565798192773270414997965142423136883387830233390253308969908102175039822844592772177032178169680257987092532974257922607239451626701783235080960966801464637962423784790949169066149253587018335174095115559797201525116935958432100516751513351783630986280447476650373749890332320825357925835890417154891265976973503971513963566289931080874635154733233308412199683978914260002260321775831694324610025566927843155552246523715286165662973329538555362037405871315095066289486858695726629857932488731487761524414679740244981290195816474660949802341797103304441556304493453653881632693601489848484710697658192085798937670425456445688063615231543777618312055396911014927825891829284086026491181768957758434262643786870759066398672589433380854153225998195978937990006363664776520075154941003132840122493259598160888091763225894831793019624342520884258211479834697015162781714838074805799715990113426019184164423836398375034894843340391361521652530576494219843129030943600441349724876108239458543543597793495341479431350062806952052585858833646340793647892187226274409935468283917664461208128665619624221489184945026990401695665709557116917392451415805712030942475152353043917822605007650028167977230788061061526139890248101959627841789229046969467037247820641560007728402882166599702157885833895800082258695284521539727890673766334754523252111006434017956729475076689222729053143416958181917759003943889837706386590991619937276159166426186449360908487354644188172939607509766418960314047942744874425522482794158221608197745280238753225703204742859395501666819482422399985220728303819254684008996568824148725364545288849806111516669538123151885691153737289242822468602779521550813790881942109822491868561513921823406760565242757668379964445687655315384143936345694168058278353648445482705990302919512892328821084039119852995530893043232093383945536885922598331759316811813588529850518833835162055368568412537285560580386660254882793908551712193812771685752474163016641246827839830663530445988079687240002669908826881778270199562603967930105696320879780842333280387928565719454716298328566638466178840579370697846424169390975616325648462893405897604161706826962401202202705557469213308067047932980882543201100768445851354296790058298074518899696097031311599617760503806113068748596070745195998761710067441531868010573958410464028110912486699934096477046060186952174487548548295136025754222461473492139811580320253670780478475145090509305106405649836214966306878960041240878844383249755215937894300812280785486985820595654331204654295272314093566015669936128486188099380744721265529256564668889538084902404418907797962032736604348465833057558311567368433653048390817055012515578467920573435896642756120514895742425023960296597766304143450319579734146815403681780456778166811767947598150592337949281158999121203880739272234856836313171048990907385171412117096977717828820447433037803200776346956574913479172241812657311038357925843695707643383338173666065632836148352268186679056108890410897814107434223805243407453278884604314164745735096606616647121770455179782392063683093663101130785936679553709371381694887938895379838313531542692917643248038372989286125995875568936560350186551832271721864291602832517692376145987934699514274834134115668144389266780067775602615520681769214778142994632497289877667128083242197855508930662960892563714765770613619852314349751814109484315744480836098745606967445128379998718512487235346570850602738137574501673905060743679120254189891624662821041943996040646690475275291776829673804954966669405776698952434205886626762206019912118161347209490373035187337227733363730405127352411897209781738319319049392378704522142544176077317410012302287820073115820429339706146620017982704063935112270090509910657912875822906711253175322499651122754857882422125120665412928680688322124644873626109699632708268070090176762222011514118857652472331024586628529518630997068760531592697989025845679351392257079794717511685218076487523900297908144246293647377066491385878563192398640099126470297980453440899793572543415711609273631905488643307115691909590107317167568506790446121358628915695974182480730824052814609553530998568714443428410439481996078046624901701746387807455584305365736481589205901490266067814660333081474779015168741742391669949222325392431101356726149247935454951528689095652009539698213172217342430619964371002367945111639856204882808640077012282476362406854226716704041036994483865578841091259138891870880301392518650165942710100220318915158679914917421705610987523496921265293232378642415384290857729903241386312155512496564074574124436961718659368907507124873802870671011904614539523124917078305353903049856402817078175899527501858122777089315430468894760436214556423850512261069297961960153787016439377407758623745314805417931853961246163026176613584727772626116696434006711574805580900323562060969095420765184577148252447151033840077487550379080888537016028013175070015762104230483101141277984605185173034601755191581421737775041346519042017365065416759558156727512844814706930054174583036649075531262580797234753712907814910782818179312605577844057572330591855403901808380038913500154921474804830876120911268769307267836640796182247937700954168113593135595457970478839649001611075435378734939322811942321866656290059344266473187043708644433196079934473180609759105930676324667254797503853967029456492785028395726500377291171072095199030767592441283439065708881673453265151857326727905705175690283190721950304036160786230033208524877005851119758683501895892059202526327227991483475882415570152002062863694916578163748523640667980569558365224620470234690154857994265236487980049575688899571524835515221109011507845966159191563452392798165806942586210200015520560961299316450710703638518699062699661811380973379500589378716306186778582498442408395795467209567683354308739790487387881582330081005311987712705028987157415413043016658458045283580445433616096797264583241780083656400180059519556830365682286210177854636896753876902386593070989598405377335470808905178286063519523254482462126500753928718595896966700155414912127486916365952261518596481789755964857576388976375988563068952703598762786986924235860530060126565519879537497289004364451663583431114067891250920189807062142000286785046423813366428978162264672662030767675967665969242248129961878110186852612653865578561208888329760263706203649830254484350558872922293256921296217373122084447172713309788620790986169477901906253055037701977042439866425907010493023851964249284032009433961880096228343928308510512835916813201709538467805176345120154525209319180710899877086858554279767030326852699508826688353536892697900759144843779281132087901236658433965073265466466962613890377408629111844505876824940257696035729963910749963005729944458258655364873549938394123583304820995069523797149879088961173430997045294151794287576828617053650952849091267224963334501798340343617376906539570319258739679060873865289995109444715037526049374405839496872173225066386072202082232940122357193026764539131274871120240111256469061342558276385887258713667721315210659416201909246306914259547643935977056349113627504673362830588173406322413767598300638365169358037808755450047524998105118173078787354372930675603769628208264623954936984123505173950809389661846523369295832046910262945627149797577590315039164222882942356234306473422768123532273251822194666179820747189670441328089781352440300416579490792209008358921558020172792713063301541020194732123113409852374713116706098966587086368026997147526730729122570460390370034195751882062764900308103450377997919280128411330280128816797351227833340173172990216533799816807481046535639572869434358333923385550538133912806978422875458930140517200103110313177882557077353690101809296186822070148295646188030809355257742378154700550985477962111474642372947816065989440984803759221815304761725360125137784754080952803733802473797863493265520166993861569006689320928656481773166728653864608530614786423301349543031080102979940607033510684107303639150506459079756200966458303394555078032203450892432274743534023208454423134009102104136388515539099671644040773385495570913192886272312618325306866946984075026156542556320324796533095972636288581036823245572505302857216147124833855725692648774004232270855446654720940257516454506278907920810080503617644260746997017836156227399859197952520072137802239939701532415030594793172867374993176590394812805276930286660641569781668549434188529152974275971053649517875455762437826740810545669518472583522315075850725189033139682831184665741852787964183838567477926703083700425126640886144661999889753850026722282761064710839357124455604395892199678612791096730844680356456525707189145812810110605781543333677193517256552222249186742586254456901873890459100783865164741383602645455200737214630958003797366429708338062965011936429761188410833826849135934823855692370647643969233322094551017179888123415053628889868168766010942826399221017273498713075947449765474509431277524984901389420368623156610238486623373862569331748603647651037893314602093919858999478426940060019404694813041096826375639755765994038338372500488229291694796639507912135025216549254901043796076874782127733135072439565211846426126691610725418702361102717294006896070477612633047831050783536387364721217799640692374827844422641452807855868332175472303132101065095885205060781350065903473824747892129706669628786832881019690791430235314620081590388549888957008222081470570347278957139910756754173851453829153980265616536791128515036835247022907902647111228411890753315677468154295624716075611619815889201345817609053323037613785658738573652398534841654403178914851765293822192104178603132316541405768666181419428508668675941173031156947996708670735553259640211400673259884737780773080199763719042681420782984871788696223529015276952738670865223947969036280033849058930636549216674644461564279027986023118298525188206205228020948492489814901590040965947931721677362994554205172098687045726903354207744680629661350589765569384179402273207685122578242751514846067934838237043784056382041295560749432537184791722433578796838371212364939194158983308792166303202484871088170184094236049057478897602603946463040659816415957186477427312335777664194820989782995380691310985486796395457245458236052510630935392006623717341785270731725328908939707211370687425369488453363137632244018899839044250144960448648957181213430854685246467601692012251749117413549170731195576795235103981781961569995195642546385370710025190540707183160198693302062620617548862398255317998837554994531447744284497277910607599447174096965256906576290053220640720627868883410979387224335765559618560486272210792653658563635082510459140456601966482292618578694194969419493909522455032183291883907538973893298686845665673608369545550319946090525399732377234196763455338871404647283254410441996188664624378852346591199031619448917727803580966640557787663185511572707784452587250812257431151722526650324778883187170395858520034947204075088102444360616756989892768309787605338452712674264695103840216098068981472102475076902872797104653044641447192340399207234681911627337923397973143219137410479803430439001633291192219231528291951051753224279407893833207086080733828446299077503433800658985322264775768660920910265399967586624879218113999970824464500435103432793772802399873295231350251915399757593760572575195119644903755647904381662409259307515994737938745235875907637091767377181019690616238827887553865453561050410072226292734555550620209207318773274599362612125511774122004212746004714806054145876898497840038427286972311908216061248536278628473495768336097520007893905771403351765814595148827774145437052365021990747181227706629420921633833295467397225391244204550082021435622918994045641970499090445128465283758039580067572226528859771560107809799347300061871309177002694997132984874337173280675606859369201422116923467353716109088540634565193947379421275559927994552898124688855123388272859639643536747956133583218223821907646659499868123857980349990376525749213895510301511302316882679536499638856063357041517388982966193615335738939610225478713560758540795247459945739728457978278342622178349728539128518454104340479792124653865216503594466065218007286560251580399861006978296598982931126938563398880238966063419828428480148296561486087812240479452297828049360892543997942784123049552294741702541449902168834463460148386365854679592653495765996481065830695513817384489985021061863555966666346447459501312326633405997705832009826860012082067450747019378861350262964994942595693379172843528439840145585429734301570724420738446902263765151159397640481848243540734830331953955785138857133998973109790177219025375990820025845450811071427058188557879108729042816563719268366693030003791374024105419958234763315934251134591410159748834144302273303211920629811012139615418541666899528195387830389287001408234655530630578849209759347782841272312003405443287107705701137793203930537529878758221053290456503688281050073215402461939573063763916837569971938104251938347032558783305426958138831042850872877795894317657301574440094007245304428670459087049406096349450936906220279601585479451216795155603537576767043247686147633584050358240134527730513772388042745451022856903954442096054466471226252562012622975878308401390552284111733547764451279953149258582294012246995304165848919519708031378173897545976997001920761059194490291303501254065368199908749045072409525175314238602074423417196393573494554768885061116819113334258977854280081546208286925088262450189069442303898392745865542872307602685565677198246098952392508866300914913834020986768231538609434546271436134578820362915239681928199272522327882219840449782299298547596163867752091983780008138930726176006434328460938218041033125780305196850735432002157545667217637507962990534132399537362312023763485122718961803948085721050860086076869491783477475964318067576968721311964859302029660514504950492907179089447393204176759231811305244723226122830165391304336190387338108937503392529919065911755182003002528713749343951354910408923857419734245685369057436191366027926836037798609105294368488962355958404710387676337693725443170481288382922611209120518236501766655733126856634525591253155523463607749234274060031666146290533860050797350152215565459975537124052256603147722497418630554162040829384346172071390562759007300879372627695885992204903252242810269125447407524254298827791753545913425460191659204958178928657545236670536318961083139013781038921738772636629258145483501633863924134159924989167703011752237695625242999889695539373456884627107332689370142822363587128636317106943780400590716317946811489576940150285535625373679292686959630052839444758649671402735198030083414954111139998717972111116269565525775202607659540872063795785514139468687916855769635071567846276021516371009864682581932606440031250381706899168954197890460157802080039721063491092396721447619084666463959275933373476235697082226925567879756871083009325810702541451960590496546221549756797689043395178389069472628569046190827175601681212645740493357675380313338962881967479416000306801280424828927928087825333823334418049451241830748075136017251277341965751977302705943745526163189769609814212625958083904870580151730939978656515006940615153601034950389448841874157206146312748698952620091875148742335779816983785786339923272754660297746772237956494662219500237133829807060371007384292726413690486675019544152807902452244972908946653325757072050361861878384356149172750027768111613254314252969054163611705568616314914589996455420736765169277988875461558529921226213763644606018304983324843286905096460209358691244142407773831552699696057620674709799766451544344116384770652546860149892132065198380115023257405992462563745959882205643046220519250836332345886799396234694959726555428213894195627518523980689930149781014234732798636352316423803371321439792271013447894550696556032548597979476526229721069157921828153209877363388268670271048807910064903697668765283368478511053074379832193751560757882960608211980288191116320440244789003328453051457093416720126546252202195909267755428682418503989931793159770878113222093130649595602967498327714982484876296227258496146554182594389316681543571534180901035615490359726453244044445431939135272850666407196473408276620433590919314794165926241089171868307581749236964023979631772150989113877617698843815417816133175613032173223209677740014914321690528446370031441454152382733259674809308919098083660323387729217339986905439215022815708814397050462004688242681960940019233397364266077168446449731505269362310469216528685258733528143852149955946706786855938705858650591826142046116839448243487962495503164064840518426838490028347386688595413330350296664853660498803086778353378608982967383423287751350413768976924018031439133221759359388317087663613823995195261019427713851809548294090996300998278680466228437557282732687576207550165161065307607598712981795910236362566546084188390792067015464236612133188109010301943152548376757766002206778514561189186272756563466655970333121069217651504205808949386441774879366886747503950931358444763015435325698054339184883824582718590355424364018829879173775969593001191386632608096721385659871922728169329447769565439927894876912143986985604195855714705034184456034225986987106106013445239632257309498522991307078841854595617375217349697369173580178639103459796748588286449097395397523092204517633824305170406866725048431085331833358124098399463235492372157997083817477080738120149671193958445783560909618155040730765025974164579629529771795479533148510155237220187974022071712514860856023281903435368583954515283621083324404223320044780373518869836308957132285770707660240925111044226179922433101595028611432641115140904923658001733505175458462540326132251980021606855914562116478268779171810003146124552864676191710055516693584561619134378179217294671940394205006838518745286144163662798791575263260128009729334406039717021405373877220157149959575173144889234204825301680703304681664630190640884787324828227797917883330178403537163562131141126698274926835725495315901491834509939221513610951738003885950423753762488664032984236866009107342340743042058044508035484672497344774005956918162107816235767732323264436905833008038293938464422470183089842610674472967578535454332355264793169394667777170692647280263585358838262872002642871003661708212694131339612538451306483148621748118169861280138226740201110550134556019745239658039104075938673891494821182088130790699361401796968607868356909317759275281029613945062255596899802791293740883197704821253015609793005564632024969766387744230956533134181006568899326418030250222278583920881344291387533783103284458072450539958479678357072129794480430834792885575200002678817351942665309122933834861290531528007804312065916235117992532195531961752130003026856377815764527104455066806008941719911757613709110351825617910269948944939331959500368794749118742958359667653481636042792452803507749167153147971889354873281949726287690754986694425956343238352798850883526191498616197886407005638026808424157725930388781841365781622392893118742139108501990415944121173310556208143702297277271982020394663177778197465087450613148515891504360040030597261331423667432023348309574890235914514091876295530485451432413365382150574794058886553159975014149148658000420938629542555828086535895238567175542055923897805360798836970012757285032418336280295903184467743823104463816108596918510715867351632540408227554100960821091543710959943822689186254889950146512826887382069746997654375851615569548474195502851797470450027722896250000694375010791430825254965506768775925581973486917103840620644780942100552063813090996083045215412039128247960872310046702509276059878642680062033511447753709514824215859305786520692024963067038723706689237579544974879209493127044191227712679738196552661099463058878514028239337372731113187186054191245163329204625905389437743760921986841651244966426736521031246976028585230723501950212472779458067818763206433982661003939229363811301186857868493819436671891636380643873822949039098886876478492950604372381404659649663006614486565992564958533838542909239812878908128297382471480593080608561404273542913231151719826708134077395594827530745196789805716499671344017575615046026953361481785308730366430726922617780430994661454747059988853518064347831076925773430268391694605417054404509873119663925327098515978466139660512119058526835859267477417095634624180564407456331893497771169670059845559108965429171289482054721044686448753753978113647366041092640744007319737562652963988530852859685540438313411241028404573644035626518039420804173097278731725456848330895411785578037940878141693076356337433142512827165416250353061360644575252210116106341817431272157736199311372999156199229297677180884066483976164351678669992429778155686426285102788394709874778615133057091723882464881339062569184579884889482086675920092610366784198423953684158437812921943496470048970588890185657601891020103843780165738795140284280895776891915844326770296345740079321321583338893592171202681475612769706480677527755137290359354146526664135697661217118631142319813574602944194311725219137596107928467076010751072411323589116150098738195528857150388955045346589183525437334969959561692811219651574688445635798495237256316929801091355463082682315311000671759381683609471692248343374538136744561448782602854394982094505533831948407548139336968971280218408107941188727906741615628375309933039730458997282951200288105522982676243453529258816067944120800091185654893631181290171164623172735129120459187988735986570549184143733614140150520638143985956520116930556153683885449673005851295141477440056535667828320659129082150493700238448951825665407393869630254899133233971307251041326693231074677047451551895447032005955802238625125761684169597820586462174759054338940317332085182788318456551812121612658588849964925063609215441500518121689797193898552339461372215915382878504329944918275667173822826958251688435208620342524606344616254483922897547623252279111766170289352955506723571458427727235740872082566001385890522941924756955605074927234841074576392722430213533247712256174569710419424642400181508298716921479427849929567308416853973528071236700790879254642716774456699583687099790743184888283431334705064212853351055481584860381693353730059638933670381568464762182604489259101358292555193551480207731127800556550251930209751591073762778697347359845407800500064988715545104714776521524514571079444949305852363975876812179722390161371277123396544140756572824729026366641724120771460834684304953550369891460308974291445619892929406318800159758502224744568796312941928021574405665951046212717625313637712677944438115799940978245776838558457165445676757475045954779029370799333348407665078220208495796909249122424157100620281265759019955527866698577272982390579511134450720762174841283485277044138046722854737704390432621020896818026876397977706292421711040434706999925019434618828885812013069787555894463665038165554911727284439633002793386740051293461726190102492386629661183288731594318984471000367962223766998571426649812663392501555443740312927456266303638653432458403536924508223851850804142946792527751620613656812585591272076098505383385292035780667805397953503763982706887923160580558701866129654732855371685726825947450543810740139596899170573783277407244662924063420482230932592920863046555136098781174924622574001477377311310287983168329600086357365128492172485198298230834392605275608791408863461147400751275383460114133040254283830731356530900225812669667537660828320319868593117374138674707918451895176269707997061987492853389116876865985447578818782619950134109620302953588270897323011302582762516222739730337965660865030782833203410344172142209925045358768963536351745802654519518885916963773286380778072053948537317767715325516042236439842406371912975168855961251112148249947152860957598124720894713184683729951011552152040452052667927898822444561703296886088330232809368179984534820707337704582355812573491231550773804246316851136619940968392676503226552091667396032707331517119713153960019257149059705557188113002617976256105415147365383145466653542140285959278857850602271454010049739055293061997886925105501455157263150099132274478948631444167216669808450323804234584967824057226256500293509392266479374160506781089113205480915142129857381462304289619349682616890420510083926417578483899142199162393839903872202352883237170045430532606377855699597604959989682809879739305591006818719988709723361128672048424154674098474302864127902129851499450277979252785720703088441048188516263960471640494438640887780529833329630431743027086925706601011406547188738200097205133414042788773175531217828688179334002269302762593999289070802189583815845860086786044175074368203329743204816975424116548745191076658387756629785124419836282541328338646330661446680856726884914738784741319527447466472891073908300552577237718089064695051115717033579922281238460966485790872576465792270433601917222556609036366461579924185172620381158945548181779503695412085531759450797324233965638872752579810228108029054523039484523986565912766282086384710556348480463328441828946387332691302248039748898417781410100926329775626100103509719254192817978628547848113068475870963173685162072149370922271570626578365545768776197430550555204522177021300438450254809389993599653351171242688150055892111096396293437072080648741622576762118161060319634328397289639622143803796307786199833133318696089603542793922898098316711836490549104097743984575146301636536687029242481450960220132900379215764950611809605792081437086749567604448570448268733068550550256597437254190510106440317903321927834932080303868644536087611754139140145640024518176980162425522695002443430491388095809330969192905513132880529610888385485539858769003717624535393269197446906314098959829080356616891359596283147092613862625095899058351965611090857401354057981513222275271256146824844217649827691955565878816770025359912478604572533383998195288855502688923843457917795783814108286174217488188925402045791745808702432069317845936247429987784541451742495051524669551469706812701449224543383256012261632309293571193306498131670078723864045465807740464225704316417836893312778554234098110946304714079837688456636283653549441506860499694911701404498130980822704554721390272143851582579833626328742287483207851214172699573140078229153243233874891007763332120957134656179023115143885235092667251250288750765940570921963688745279034668970131983812551256431038128087645864452633779384012472554254938477271674972841496947403910449153968241144361340875491260199677813650657445404840257560166256459451235315251543315779004371328589743076167544955158205118183921717600721820645847454137711437158999132942749235730015878584205421175404876471861822755815151767753310511808896992878731616780472563750996407450492025060029830848874961027166178722637321386099776761964552126814908944741584268697424024317289198585676920893651621127835410980648681262632120252481236925858962079081859987350014913774710211024709461459956525492306093247988429446201946970120863664465414138369245604609286297868500064024878853373433365408301825757458179495796220870392633770785295018938438486221095777980177253040421926562365853894925914696238068268996625322170425699310683814825294974778564385635033998322075262276360790960588375815193162160238168944071905530074047671952258602891776649294953402155631924993827935829890732901567504857685907179851017227264854918033361560498843129295502337097817933112974563590570053222875050688184339526903805528601028746164944851402018427730085509069553768593423061070372708947353300175378738525013319908859292762382948761277548581378413689131805411376439227675522756246135280764486405930543524630343303404357443503040987882047078292261689774513310614022955432628089140813966142057586892755913025731913090144586631726522458776487026011483557064193358779156141911452689156024115723062871954146212387463417781921342777316273926665862343511849023054801047259663040329852397133632890424287248798161398184469438674210649657338592881845601708438645527428512777441586437342554132446253478051113121882681737464897615372192859155044807853040777377073584963355347360666552995394418130559777237484704638334886288322877736507116387870528634971556113232045226376349742793966782955077552364295181996439279707972685360530708824119784543287469611250274515124273278037865898076758530799307835393688415306417296671435072519266850258942690127581768961646939513978471420815187630967239206845398677571824567784537417364634820474829389367156096859398245240783859565558351840288619435116390114848921338022171350922548390193325467707909296898748437603849433075599393055855606200272797333603594102643654701040123956246179703881773614627569393246448172195158484859189729643071956452521401657108053605472541221011525917100237907119881111435793742803408329093539357116173240638429149653384470819176130876268181331744137396693229199966509120219726163944498414336364606693172404762459342566910871545598883937203349967621511000482170340473447512641762772682649663399946799529555533076063895281163545488163937793168172210108463877875406033748322176220591209294681559696985757429173674323906524554050272439155006088926941065213934139568415082115223273331463035158976978867716628172920370404815849657612443356917522394655949164418590792305592149021225541695321934936736663131879156256296751104647404046931080630124755440805316796780437540655849179303323258952312962090571676631593458264263329000028440139529532200516843195468926998499916684573284688168300632236422219717197715262922300804313313692815582307621362844902244333530657646587211266491761009556645584538406238132909847930699461034138228063450626215495289539376271178250783649887074096727014001752792061035418702209055899873202473874975238901911616632788061005019748210488350167153776625455750094733521229960564023106743822485120614768557955270449533262933605795321048115852711348581514663124358970561744886625135725223837753848193144336062619750095572787296678518058870301664040751531132946357495355514635163879425475574656356930195589768496709327151545925163564942923586316528020408033911756078408349362443754881441999193914021795394158205130335284411241027381849461161298968036640203744656588219195503461850073062763989892238870883019612935726390443719421917132734807470584466424804489381033398919745441827544087020462535295926197763300004061476969624773763460666588845836822565024815266271072462817265609076666692645357498921797775355690265300959203286511031770180697996908427872524046595771086430776657095533902673234432594279010283924400869573587152975413903058968608481810419842217740931662882807729321614826418392781089413540147133538891629289020070072954851887965690976610883012727414917532405893690588362362777848490629939247310071471913419165423171642492628422222857380105269820024446351080289519554470920317413438927713151622634901405290200865397874394726302391804690107491397604134284710546839673335384467792371862115692380831466656594142817399944154501283427263271356999591009225305444806378927116729164638658793065631799992594651948604070848435623194175397183187606748412065462598754691620393482769174228947609355838201835790492509690266937728528062296412666746223112832443582301317156713280920955291572913794317006554125954416701635445912695135583327545128969611232654689698412726726288790385827751402268944532985403702587679842142590762512890256047657516794392596535487860036907124659512910609729696896514374872587047866767000113929424209170474545878844357226066104806722238480412268683535407318730735219583014768871745642275528863561520678385895499502575475489529362405467337673705196002470573770649119449637444725052428138487884028518954028392267139027909049740159509919343887811906521961807014092054754339661437128293073759762606439671582797957869431179050291057657883340747316231098930138838754719904958957034988994205200605326336966706333606801563517096048109018357537995393651498883775375249651084166026564919792740556854649042043226066845421427352393630585059775806675060501190532884222944904085066001664627586770866615873688056835786710597728069272534497604106784888356010389106539704477348196135878227393900652023119542771551744323586775594668097326554312384837798593174965545588644096321630631580551850506306514424072729824014178712399534659560166397728843255633241503467056439334094544883175034420725705533600992863821869460181420717122510410198515737323298343100287689902317163324164477282770141053039537108774690130620302847986393966521039849566257759728392246721320297730862232118326740339539819944547049056215979744066428521630609159173361974748524574350790233691061214026515662808111907201551643847623396902274350309246079710046329189898239851254969701258464345249320801960518444941265859704648720052482668926184394288087521933162961688075935546215468960334826396235324102981262415628526341958684621836225056258928501643287816699424426041448731023682465512294315400870914474022390458333294901015018428572399309806107086061530511917098335792408188705761154255470737083915361697523315044064505669657729925932613653856708713001636683527615306135049564417170581403465766981451289678263273218618662671033859291767361176607779367045605942415393585696147335515058311039682310805694692090011204496504001226561341850904357896539607852188338234110200714045442677149057122513705942642359028894866324822427624443430679578307969390948061906256700822023094803766324802323168605081418401923609449931817634292450263578301333789225519956046924898574617774581707022502726581074322987969919509998254639390905856822011774200863037917836240139401665950903494478812651087076543105751943866759796675066124496175280453351342462065241804118714545039961778721154235252149568466728972972862268710629326007267604838703964177713214783477146783781223021791005010508576707869095632795138446231134280420886169440692200204934268974838605128134583469719904734110272941140302574049612276017063433517363438331129596859883484016776885239772071512338547046892368430589186085373850211252481132043214330857366962833714867986118279030828459851361071928071828559124260358682727789795163726175071680808729070959612138816182644599595553801923538056873402738020778106048579155783465501598002826414596169830754854871438136431082036402870602037535916021761491761316723598523764586130378405931341415955407792015574781960936997524952000954849479553718051001046465465162278418201125061993781094014813279267192889725106895680140679933719287444685550580663395603877064097349310319022391929508379950503077261421580080391840455766862862393464588344445613210547179576089496872959404409905707112756927605128795764693227197825824414851912208168624057373747965142609696347763283934851494059761350216210036500132569350371505586983882562479415295290559811015341619650132898609566864890108187235539911798650453671493560807012621826876864700638280567615752224189671828253520042607519242825276432282067628154766127308493662379714435157063075917829680959047278414823031291234048625103680577063255289411252851704463468229511694181013653864571442891898478509197606580357937181408169204281961814079988380024993463433987129148133236343576997926604280059584132298648884970721754362334030126273807155076407168609777832139791434103613907647859747177569109287297123964635236132108320809310347590491427630100504831225433773108111298404900068406060775422937897100578271161963241997664391929952433003105599688579012319730680982573587083764374678168635435369003577989955995409063926069714870260246418441017298855833480531078162974511929709752922613588715998577022069764343543905035081534729437882862098472542540927836130385304297331638227577895887060553897794782058771425342991769782623791814815699769764773580879925089532315270293962473116579441509607553087951943068047090757276155450862258559657446213712289959212647615550332754385245357260929790121800416956477924837945802403062633870420100868964772174831944559067818161354093700753757122485369070878908540630067324085190826957261550075207313878473152077308483351004210461791997853775142669708835280536388742036379186034477845341951937773370934728804439089776771514552748695067572366159062728672044585895591506828133141419306320202681468260118217369932603035818847896578366791621337756837499539883404872872920777933520722910315385088090447889655189135954478772769628289100970018070666485913447341422393197079047376109333138230550934236678017866904818599770304094844151536066881049453297235281669530982544190003174809818392298780428482802149574675541834769078452721421205196849820540854962816955197274148119129411041318792222901944733869743807509108344574298385836096553348742988909260710559525619723231901829897215097773594172424080791278396569684931165046442493978519434119383884601127842279668797723903968710408886475788839844030163187820483207921848459730069762178721468342054209605016025699549629567663145398751199913250987124735303062771173300659980676686374734570640795830887298821496685315682783511314882836777447039059614334157463018256813587048716177931069249129165503428576659448762614307390290892373664517049944275733217840814161281533190271718249767164230322439496779442850959828959908856429124705860396373551566298224602892197412396146812355508232237898498116671770112777372442892773670166708256663767026809709956469871318996158040149464291460429893242244518000503722973012204510001113621803560998341914759349923180136370651936566889612202035325137865685205970851074602402413983307912251036004949868660389617471343318936496885170437266979798319846899807761392605490813882372524096513772439777429251409876383783148436429985488831586956447821289724521290259471636117343693924299364424664551428199949048129535704608106276325829542830538366654897019773074918858911850254080976679482194526416639292477326552323921464539275485788719202532818035434038086564674546413736134134013901561085068628599649394106409126559287756060808392286915613632831355604536510421279716033039188508403640875608151854749942226057428991392783547356451239400235420776220653325324091573144993071728001965115656802911725702752226754604997117211544952969967111885963661429515566533685522100544007849726392923906876329438850349366700295935041032805153110277152794230280299285069643079332512995946961836834118317119140897490450645556173490282577242575121902452483025237885784249652817756627250526018782910216090284698409026584048828444347541145501669344599856765478910232298890416488290511082616473071561903616873537523345303618963018663289851608169012519899934524864203914038666341946006560711771304659712441754070417497949120069365422564558695762757151401301667367728572960603638702889816322907893556473885213151097004131272247899814002070852441223753223538779379897439196107267509301400363629356931003139479728387442923797206940038380720725494948996324476342807771817732250852178182412291878943847929291505101796681566543152561739973128749248160437505561029361056097498712907115626578612921422575634722014321972473525130779427279659638846829939749757880714294305036325546066412655207541555191534925493554594868690813407227764644385132024538654602971860019413391603291156206291357337120164552267684389729858685490552189598797188842171702974222234721107954007820581781632403300580627335038799183087857603412441208211572852440992610607060089954235701941737634396176673079269306023905910529157381529335377044336908801170667872113653970393701789759549297594600871212530944117574365100730900614703791692022444683681065874331055433077553171540695719488247586861365019760215753090892978781315259299367672131390111384421352734483356695183537710962867698017486740924049618163221091821372429640191517701534871864773218139007567247167192572942945869670307976552166383257728958152407915043885064977686228248414273283234490565422988395503426706397520668982554354754433071295120452910841956501692870506563632807559010931439811788415555481579606432243397955516724096083094955842628767199610074195474841805235590551280072341690841562711914059379659698402863263671502755532658028157292218663025064945910825799444131555325399661972040870791266400367380916119510176854520719425379738071985616007563029721032814630790935688607825904401647861671273172697029478617631905495121630330627867713539039084171989625349196674689386562388936610178128054121856169625699067432642408749807212634638294366215057555703364316117199489004645609385693280359455590107697478904417813026506801618050606562152480045680477974383537884740782188148673795009327375806211415690356776478609892171889260273156567171962909555616400464276742719524806982219200348934871071172530562246397230688017302622463000002008174665855481139387512116786163037700195748753263772953422446768201179300928015167856130365991279463335102687983834046872831986537219731212396088692230604210557381520861767578044582882919819494963175409301187607795750908699074060039876822072399713009558062434386161622039648881333599979701828496913934926197195473446084254382212593466750531692491191484156401372856781871901014759966353018356411076218212978607066299849576259142642169116519662187205994058927805902210577078228872411918836113886427074269709192974518856159684784302132809041255258378374772587126466958158753310233602909014742099427371613092304725393391624430574873849268250619560426161221348880577628185243785005141749182029957466666536962842287731186888559218495040344472244145142865690514906666283500777158448106937522215072051598600392663496787398176228381059821630346937651654555138563715771101504960822415107674026183276979155172775696235357271632836679524373250824983859358229640163461045466965562979731425831762614625223991198374975002899637024166574961214273025898695875813546568645362769540529898474438737289532489776946798806115256352431084119897359660872984133016879155076097148765471733000074051818995626589619843935278174112256662292768286077327042460499191542935851653172811273944623762286429948297149039153876047802370908046309119088283759967945380350584633848061834070712408742911575480287920227918341131015481355573230897117719091492845526335129462509111268826169577127801557230536296657445893960628015787800298438632893654049833956209555078568374227536546358611645379878617154457628315384166760021809928553246391670670176363713714073189271419177352461528116211451128501541265645041839417522596588137737745301281954702851654008636597870328998198794141044092878469465254356384880542469830107173873794666790771897316685329223428188694365257219014327044006561338339285063373819302743431769343596491579369948856559893205102383590813145063825166840831597158173442032246623081827846195343494507542789313009984718420951391267560225112601728894632311614663271909236832253951096411959080843113356990667687939384321551645800010586577441982802978921598020912906629905378475465261825616269652457293016784917609407258761120166161940527801654587116783070761137479875825637110971406347197324364406495191471609163799266135798941009215963996708568885284440896592195622867026425474189045739774718682260771174304294934467714982021482312052978709448625784164612018184919624955276260818806148839351426205672587311536764341934799032030125108813453554061867996568585193166965564176102435231834904831568966988179501393090051805831967327523746117911796099580013991381762637058948738018776091688836216816637943106457621304343424341132901797735039090329985301067023610911653431300822719010785071387974454385945973215731127429226956070961646871650301480191554783034595071321545579721633025022312908110872478873564349518626195740833595261250355786474227796505613440967542173271970871702811726068370522464079642695944808037181058656512698872454094075960937879559776918409947116797039164854422829191174909712023932671226844156449388135306274854800872677718753891961968165623372307682135194258660677799117973243096739068717469128606023092397944716561851174241881644843664618856979274860166280211376075091801212236637908857822476263052657518120779638971933479311562090649495258976703516139688152201140437446703800535282208513708036448749555219507031695124248782677308499304971159204890270535339070926694784851040116374674514536139189907151747522963748811428302476957245007270515733738450342072071978473783050151998247285668089831840307350348341435350094559486368360587531603028745236942624460029985594577081509755635161166198011630626241968427320025526710507618905063724252094392175591750996287747823346531462243367853800969611991951236058825006932823302235887746395577437889195213240588759419552724556641915568018446176178981179140377972226857989672630508845036617247724702474855125325212108457099015582842951016701640575888955349706581728206988483081530020870790400566669792819761404383636818726195511645086807587748147863343407917374792585225876477609374487714854023609378927374380413821817126161912559681049702977713959978581036841229771110063515095683508702570680957332868031641840089137686082162333716973655652639514050777099920696201787816069756771412912701189311436960589136584386780975200818587262284232193161832843782158043428033062527401454461750913661664822357588349434027008940684986633411104411168604118110579231542082828356838549889930471720521589669788776318767974436950191159093509504052878025632700328170807616135914122398292723442058302891336205851579579849405183055002334823280787727085277352469095443406215944719029472588954282956329598568880473510059621981342861216748061386117418814532517563460396155267550528617474744462834671287061368688775776791918035964585863707126976171629879606122336072682662747869208032866989404047673294358510284866695899275908981830396162986810498561827641359771529031698383377008464979020557225130714539676068511301326041318822732835564030056760449569167311180770863651553204010166729791723400059457107878770730147001430649001565840575534555260354701221247160813561031489902970278711417372248541467960814520868064260442963000587301921027489607808110257957054853810441525023687146446857720080307194820880086648377586578289870227997666947332367125448242446464976000406816149167102338449103941541366312234191162171269102794880047485484418494036040746689250211161989984597068036725866469856910920184268906773005842299442423533841399325760900642730673056249250416609919909984277312592614797489685066217878580361908452712003864677482637728737815348075169438223719774233781477246743452485230684703096189949924324300534479391503045478078304802887628995256642878092876689785930342596644410383605249816935887928630019412281523116855830559975959978332274403687597551959325502841234564929091832368164544151850094732483250707265059459348659280941407137259271109101382996465469625195321769246335940986380214129001155098307452596347337323487551739918108961585781542649403443030169164090096817816287825517625902546681440284506411695100664186408190003547077376984378189302214842854421882235113710860697392622951823780449222866625929556618190976582420014277806225700739223992302740950818927547983041942956699739802268968898300753745652891471382955258312249211721225595666750468913354419259249009194867091447114515644007105972062374677008667798277881911067919493491589675891919367549639938168199727703633931535087453254514262179484011112324171947570279558968246586632898484920322116174868546533237214156119763048158682721148121065457609327868690208330560315236760601612001330784237346650235066496259785213560442381617668265180008442834110971141652062808589100085757450825294090111117548034925181558469851243037653219617185165292489150484517555916427463388322328583197149195048760841796055664743133815231158254116667546608501077593106498933323567756996498539460712414293293852042131189996707923258320047423576825407964610182145382258517248385589175320077761464055950190550675325989373797262484556509584547455591145053640341203853362385896403230474269790160116499509705071638682367918330089602068737174920040279255796686707432708290056445932257610534840974039758942936291824649736584783896426840671887676799939593532665010595050101023994719515564994272631910559988049678865390682995217093935788661174946511435465598266529653377152439322954071984334202356106559661554691455670776057955137897552209858159689396001663759205481088304232432195214049276919092944793914001967087483354160930104577142963508956439177544935226846901946206515246723690582113105975659827213898933443243073165626190640699700457642463788123388442344069818783882628323614923924504914902621948728484854778859482892515531419281331756726516473882823623087525661325253257761321073208964512272582132626224823767604350649998390929312379924131441403982360071476398100752749689445671950864613195641770184598786441890075816507511542958594710287669882596542565846365576420557385462137615231899396133839107990818035015667247918617462722034400891458445559672315562564356688427154507638371320464069263090922156966337515084684473842559543453861998954608733466601116447968130374923568094803515203434815267273457140708172680601518858987211903466321685357644354460409751842306406032856375494407938253900774302522959100318564271615072280517709199128141812841244632229385675178232358993115502207052229074881374300706272043222330073801429459511780188077149519227964100669222760954290748096457249178255116945015227767404466278370819624048541496214598361111990891378468818310392127978264705970192544658465503368227415652945223330141377801346184874136196665863683446730601830273707536951065474234052057743772800014178629197718177576369467355292372367419662239681318739166713580401163521581451895716067501075616724889589500586982519635313948927693782113346084678573296811711577290085494911120758157514390212712465529994950739416289777679061481202264316587454009795755366181517217576948098286612732482921755347153043394278466457072185356642765100802306499003659436136128511939520358662532582159922020105607536668863766299185875994579933007489966472542659500292506616836831020694813850735165358894026565725468508767543869207862717714403599576007085809257481192441512733841984561983608599009897944961830590644617809575008519166869228011038209391133405198614640704407592919587094188062334488618051924395456399987955583512242999481340450776335962063021937883610604639914305247861338163557822557337240911230428517141613820261439990822833599933529969878917022588453123981340304952427818812145682923016710129040852479557643031869944518908084985929714243262658409692107784112325616507788644724051762466060396562788438663598301895287343942283018610431884698272832939111988391814241991738997495337449340786294423584010369832442908507093735826148587614601370805800525106753060982663407496182293057379482720048238523946198213994381650087419382206253819490166551485696124705934648145496859954697217025380358494341626130431707339739763348215169942847310508948614074405870503656704119779343705951137544349307387396761397533287097418844773744316140641614456733052111869192239090524228345090322856610548045240000169099813593417234564013583150791701578508805750081762716003890956834252137292102299190685637539918744159489118425997277857131635336528899963571234847973277405053066782289336435109731822063464323282271199517787988230381518988647351989022123403009083605527371338917548737410796917776603809177106331595776858390015159196583868948080883862625578331055657435377099016886337930253648606319092613388903385895380760725968878767777669279698988625196442908510493517291147029187156597965864985350567853759882432615069005950369631480628668668530571750505564540032661396767881374188591526912688540767823278502750679778585749040053190338057908562634948992584716337052776619727845830280122933691712060406913076982189880042100933950895202352876456423708490765017871132667728119809069117154102360961863002193061424230824084828695682375839855557659212404457946779781458837724244478275221790142316211739960027774833800689088951967626150634684136772307783796551653615067907966363340529987187903683719608348638944066291250820459237930370051190245109207943813186325170927980714090662978596695738752989818315576915360068981218550558306670766932184293283462660636238299791040058680982531337288302816580066572398912564625704826330879238689870330475376916869441894141576749467918921388910999685739474462202990284635634487677879828635604026292029676310131557363883261664986949789784198589235598710579841428615129839318772234546936835523255211272648571847136832322618240284744985654875920119576083445356855440698694879598347041484201773044201863492291599307292984796779110987430505899731413785438488698188110521082527413871978579606994221975318834948139329413476171919886245595218932558123801858710531910424372230449484735996524113240594608852188485980937526938276734092795200410926773019567673932577654594684422201948996882200900548865300547938922742915882951561625625543066409285160802617728359152031596791267881763046309324828875555037706402207774799557748504217773908322349332437706984509270512887847291037746693907262005945775589846636158609075490256010307803683634335416459862167652954479802745063228681097169232112508365346116601584114558847065922750042160255298895703482109419622638164514369168338199609543932746819302097172031274598853929247008108857419989535314956789043938474472293510216845915632320284976390499346556314922330902534650447321000529159835892308323175798973989413746834180513512216415936651862682655197598500587619813864916474689034959269432430400420614516756750096168539522804012085907053852190878950629684596035546969797793864361682658073840633278978309238692536944968387904337659710822608705375612274656895354186629270339186288712666304515421268458360163070122908445317514992111527515282903219910586918403076529923215860068032381060383364373884949305828044883060814566755147347220684322419818917767102588066653444758138488104783880384639108761517817285423689872712050252677471406003802234619730018063287600439266350462313799872176415947802571076904355514520853300393359988839426567157106270094273407829061638070067665565502193643951565624987442890814434719050670916531647816081237026461430172001962617077179881505654648904775624538160789227408930374474953599572608458400035164625294160045859777373891677373954659566463024369700721026265169036640994392315982432106645623824936195330491746833553076576051523195614976057076971067175165422442546827385723307707405216952102107579340417823579896987577146258139992091547207350813139378741521947229531838877896702741041660062600323198996922090034562616342345230417932404697093505741350050525151034639706213515912873385330900072815436987762395793478266355182167050433794145826145941222532081013478332836987642139129799118343017735755511339771020887475025124929499210459739416745042664234501035230393949009228761285073133840828968540728641138729484267509495349375752842641857278413145883157370770486179916051432728800728959929809749361204582312257307929535007037329017373600025908890531191215669616869813710251357680412198025962199741149215829576571728483340897286081464963846965728158501199394859042998965884599559607341535714869936471371516457538121515518135593698475225815826826774237127958045157071069078880939585482209990176643016224266900380786210442780163261416108650936337808494670801663584189756241987765680761037647995752560972665311445870001717544735748378961382661461758522651764320241550066928375777507574727210651632527779234363750273569230538717024258805935796431733567583190685819722955253707773364729680930491981056065133534237938202391925037317161571858746995128899743424543194850863555414674744450463666187924732366671070589913785062393103397466965673026673286281482176433423495730114899745173573268990297038394448229710499854000265667130075758921770748434851373336812742299044615725331533096637918397177451305830632905031836236453025027414958650250912860791950384040515700044902102117974870280815254491434059214597228515536472031424162011290849841340683596136435915345274955477542021650338118531757821349251990433154474159661930075205971518409137691940299965771520103170021138977341147547838222692826422238272390915299098771269134134665566708567658146701063840582560782903006323645853513974717120234915079972850901619407375060372859812479505860933165102632441378138677121199415223182245935407528437512319412760948608113491966462604524445977716452224100447211187963645316932775693089662913303104427928788379197001502865310032163617253558268503151717204050429258560092840844375245222541846246180590908401570516797136541812853180689780638408760134799493764860529561659693092256549575619287478397735102008611260173448670677672073818036445088271239881399436720472639566465060509876060622240738982151611149833875427748621665421270133427791893948157741291557105636280943287962902266699879169729912807476554073129007355581146181606790617126686803223759184425134697416208287869167161707505588010194329043477272069641840656694277245619329700479996173339160421661681401706622810969955619030401674759670961097051360702002565067213876674295400733042203308125333640906733064331842407034667382615794305547418659015346026535447806716453672322778957615551164254129583481912893066881234955222829929146463270827433741729267054206604715790567095139690844368065280932879879027760809680763380867168141684506181362762554851538269446857597668914407891574524585269715994410478259983600087533989599637267983668948481533865332240603793143873580872820996490620204608725957935528980413037360557211035549151868574101259356942203187039624852396392940891759471678685753939921459572419338606022712256278541389225323659141048598787258326677415433621236539161049963826332390301277543793472668833272450058438631333050585149328057061132905050636470223520247602706658930894522027482814026138331957789949323594343525711691444813250892039735770041699938758579247789777557296092658094643124883064226209803189569454683225298705261343275967967348612188778209581340386394247014569002638757292623948807500486068437115211632348540206633014879217247661211274282780427808104743132239368376902360400914054710544044154067066616381955987395177848519388523506202683436576618427439878308966475652426091022287745427343548546433144090065164038763216430445417474048244814959057702353017132201374516682250895576784803090441857710082563281367009023607278998830235784258951960608180668229871178288642260625373964946593787347270303742748508727012275404040383636570181315609253756260710606946033421057586591020674405017162396288567334102622194018261432136967073546654144352986219655322337093184162296645092196074173648264212517982932280614941923458761172155393938314143898948699288144628991275459951734737757630261162364542566304297615296777984959080437508283135424676092148872541300067884436610724619505422927995723989361152779271442730155271870508686405358896812529497301011411930068817162326829736943182832841352279652539947482771428888458514095778253402969937942544921020603161695121062996920575938141694204860268415035973563283227295145385996117849009099252458596308736956460596944660250727480132516582227180147625716619607879145207415941087806896628983798301658569461004265978637619458457290223311952017638520225094703604301531511040535404096571570882374756223164579312533797667217902577303910046799853990932271524868480121717413395760593793288219427330256138693077517103631164079295698762775356809741513730083010120890496030610075733083909963999890672584879425720838081826516624092509519295474370251268849614928106649704492017717826623831823154827073249673206426467067720462442261293817312167037305971660658559182571403500520400697181751311974049290155270559599543777780184909908077000474375903991156590685515262731633225244711552172131569451760083499951606190933977421813947923488221869686508097254613086717496472810329664349643119798355666718249627599875976102803276553701847760381533555457328351859419310375038516629265720735168885650760392339810699714430630751423209220859401070117123261339250421237742309380883862707814882587835233167341317398784099128817716891134657574011304627879564828260209687134475541324671091715418224872098421530072698110580899158295667290721313042339308892823141721964477242891911601927711301716302813425257521438717770571025366836393495894122177235946853894142299305270803077575237615643170626711337576317080906609806623754874435516012781346456302050458964571874023396477742702747015426288459733697801711741463068198200903446125351525982477361840601217694387807165079180505131337600922955126992011519786410238540306840315631826096922346169121930926058422658861352126542596698815157986486364305930691010755358274610141490440399582799065105788559249123332342618039846317459057643472871534647781021502250952708462706607844343072475189283309409916030433344697339129073090187526517986218018356206899252699013321109884303438110025882568599065109341441605861648062880383821790432710844270458865915072842637136119456644777699314680693983599464129178916298680374632798377220898798594442805785153428102573521781294911431233603379891810712340974113522346508437802058802791176365763857944658138590116582551657794405002475763295127005192390564103930507747625676346427890888951933673713603969652439322595072595771873292675257268702476731937801613228868863706999203167678910525782911382672002784603789376137374360416654523531157250333172228662399993967771748832495763731929692170859639185460973931676101211005324582432018323522343744175766344344495035604328078709572042769440009194328541151939155547753305205193612905578055825107909065426846634051447531046437052009163059999991453808717702575273076804167647661990241951493194254771361526571518498017535173608031773320531986486588192544895132034831259968814438604106505233914334213561161948805729529481638905537431004204573011774976543732705522975501484017637800720376217167177988160212748912655065059408525073399050727390644762892494624875742901510012257128303861011054340408034267494789564724503237303750438295433433631209493356539405853654962364088044131872457219842520352227713556476029497846821116337750009019307433528850171136327752014455243386290804294168999810419263464618536051436810067600215407477158848755346922693126886330665373609281842288240809974432296747045759412756009984178077639090807604422488035267687292575634205177768763366965297245167527685856339092454889407622471303650674318029481327015808220623946572015349637381263215178151162107416397014677506204557796976114161288341284879694289599802978208029179371793495106317547450117328439867973001168645678303524536325866057849182573081025662981495311194226897837400415485452849326505458104188529230839762835485884711189767186530233505031079059216215443761271740106362666336274389087615217077530201337783004776634246116906348078603558077042571693834939202166053662088620974329344892277369179415040806276770726393675182700529278564811930608849186713816123300264050804493478289144912066324037250219305329626293416728970607993557925875268841095775485758951599910364485838505522786334783646722247077402966812350663092967568513847588194243645952162670118339966177286605871348656089371515294528403262014826079551152988154662537049095508234090462782031458280433812370574528508524277882819666243720488838271730206512751438424672137500662674581740172881019241228443089973695893851108872173515092598589670652283953573329075982257090150058502686526300585471821337116977143416364067585038285273927137410785345044278569102325102124642496563054239100373519693080047846880223378700852527188435684740456173877145459572516733527425417528336133288502732234559815211566671768571067132669455859653373249377827389497239167142877852165579682106401276160014882629169029091713302567590967594938992076384567348615174856162737282770667491511436666353676254464315615608415806392629425189731782561685933035819592959056483016971471817191440939143179406312606617920032938999274528149756313240902506372064667279423054986058560483969678616495174026742823150838512354020215377725477692461930585002906066914292918776045835499793203108284934160121741111699494825733338130616728735803058415880093595165932233453734275774937640219927616141394604573251166820288698941907334965295123772424051169973349644081701125139900829740112679861429778805200319620849086133542477491128846076886130856964076600671105938703684783624938259775701100335213612154290893729914983538572251781144295512753881409085518778573036173550003530427219890880415798673281229883136838654732515024796196002067882868032846322363203744286563795795399848972866284329302769686748074052939796306769521040517410706824819323712373470634681776832120336499177614551843597289476246205115857069667066603575976178369556768965293811755733529739632202172180170599024728783612951500402925264685361599466362380898784193723994066811099234550521481132187561756570847800708119027683882902344164116946836925428964924287736725014767615137488270613775834140701845580142334754462508047073298217046895986238397318742776762594985936857027826970334565381073899142995532424924428371536462475986911593052873509346479576589043871655529835493182317685611762567089817308724422340923192397836906794764882160154344701089205320359488117091853908350574274748956166687509519706781394316991701881183158015971176340931774985897659393146112534023932340169936596301300340226669656265590189481433384991869784210165480764333217551932710583061824955931817591651060244128256504549238694178768548085800145728000711476784201046941125739054247935164907289345751690101689820465347860072543844751694066364178708737804214626112134881466953929060139439646040615282256319219231961406959201883115847839679169157838148994607742060897421059496999109388164211413236945146636429897199315457563655668052668841739282524725988337185046566527570151919804676876088434877993939883591779778539874776085396071867701996668407281712180156654080420635229105493867665525188092391056015149816583604549198579003277507627329057278739749883946437215939996408845627017016260649133576937080717463882305806128811946647859360777569520658418357415197628099013058424413172292160390095009245240942406043669663979823183320520731521931108608873814270577268908757847095460579206535389768307194417590434615984420758908007284509508332855238839817578082007610305848068615981604057076618101069377140103577995649777112806199585243972198133230283719580696094233671392306638536476052962343742497989432514556143358277925529445087343566634222135105899421915277278041111984924221845284976011104325249373409743363562058220214917728363016915764964153306827207534637057912877898838244481927727679656791311856650344657194880205842535278982339361724055539506669191548727167024174779375193567237782997559190864213378298165305719284831773382930113256119953123341087943344742908933622195704721336080225306657524584587458972910795508596209859957918283064265908345925957042350335518176852800864231479421686113853123063100638739641385900478863765627379987996145151776529970499156047792258025109570890313156753632150949496137983721116348575955319541203234684506613650670367273030118792211386251650692377289995092367778182168804175803814732291641713238583116709677560311785762722597311799105776359204563462459023895177406051553349212592750594886101863445773737345798566254299614186562294087138538002522839316182955284025480286501818751861228333543213609662875339144997619567994028093599448445001968769001466623951404617534325149976120114190529420940561327028663177094525387321755008581643531105283487607894753950854627492768391986229272055479243876483765563893227721917646281183111257146927047453254066391701115369349500426015689970894239131386006774114226271143989947998781887654560058043636505385935061414186715653176824423827953320776421573066673087889334320889189088381670542718233013062403031866066089754868944235291434717821505482947626565413392146674839125765635716867155935719760792092258562915333384195082461150612628653697928158228958012105052085832665040656803854145907700716783440421223947593861970685594310163167414554410766514640799045321139639774937932355635815719134867274168615142935060781333368192963840445433485649781161949045456687644173084484830107636916160340351989925756229574191986532910828366966409933618475122222538164811678041519477504814356755684061511986523005591699989804721620083036430666643206211979283928224560876567274621438049899461301997994448100314478264619027030366970760405029899341506830417079493766142421496626385705098996933770573395049888243872799599911989618181363377468680911469701512836721742168363191573770581092296851411779454932347471862618972451662904704036253634423697893502495263471711059686515513165868538266720532888020061760946444624010466501133222549033138116729659019353315413124810927110661202038209464048329213461601972301551960100161217752640783566929855334837759363870564703607523004675798929282053896881950835816366527450409872142938044041537907698506941100890956350122871440267279403813843401488409859415484074699432258458606747894357400488877782193827013938916094939191144258204496920609085803519528875710992698341719316049923447483908916252872161075947286127294352292413868830057831614172300322830262401538543716745687540634572053724905195453697921371565936197640867592553199584647639696476833630116251061172556589854960862654926871946301808936894821111882995024335385209509076730513448372304021196270217568012466551074534679639341189938073234189133225571338027800095779078473016104096469003655822044908932256828931017723219492728549030718780326309841185664234635790360247735487071145859768373521656118696622770047966434505244044528102487462494978376277165069077675063844955632010740660432389358375496231863653533756909192771502278289755338570666401551168362389214504675706649613670212061529385413445659587169302414002876567164930939379942463708949969318176917448279221154525131854602836317051292950428941195364263478351518915878544356683347913853865688885283493673314941747495342859860525247152334210121651174947809537779931243261347882914351463010329355254354826537705416621362552457173728704616930004212190197583935656267487935680580180902093140194945600465443486588095265083954008642408380871249017435473779854441136600949923483889801971263025989204742076291118761404302684141289307226532344480624876901824372032088732437291623929397489798512970309186125961776958853987785732363589632757020112549077164082414017060355975599747925202091892711746562909527359102511502457267147280224267559085299193649715440485309001035482674793104388570165554332741950843552999331244274690720542569397231828755137615277985013550110718152950549731623598215810531987871075381286072420152296741254985566460583962014045600937766971870371644015680768607566043024861655879531625748161927568412072028610600241886313911422998103705793099042585002222284140748828993361518862994844164880587635107326082042477863419134283185698909336090134400319921372747934728894021108391557205041686176102778785820061594940380083822830561301575402843223299987751035330781043234439726657421674235408008906484472887930778961877366225695128553135543841297671652053751612190811918495316014076054275395400921084679122266756883541657321217010628574159563991156873008081018440902353389442407808186206416105977081472840076784086741827130500804855445236461973437963875043021636168996583737954401803874168409672242464546344641628173687926146520519475758108450972578519715366931515460081984549471765158512667492196892287817104859039874293399459557737580514862445533998848010811260926010471622485437582285036268280207313287197712537371574842697343128172317723652152115716340421437057814808795718489030063547503799151740388289904764939901533160899716419297161151339897185049399501858830601626059524180477707699932410326944305245033193043591369886019064778352253804986700536897364464243078482084757916612584669153369070259683179542517733218687296240932701902430254399283302277294352153432220499239025260367301063831796207491399594969461446960960015138298034212194332952635813891961020804353579618680902387363035409973102604289936807472341277490586474766685897461050780146736122793324177818279453664072397018162935843253859146859791289899900604725076742044508744281428070813735034489237214686311568351677902573094798409668279140960385554669680968048040209102296702004232085341555848887975324229702626129066388454917069850504904015378485186490990786342287994923517214999096278576379283828687708767003855040244219748315948237786025543388985942673931216320910535262727451705420770439865451739616288639468073700096326992410974075807739370625744366123790130229206112944222466376219811648068694765928877907059377897727552354494977187956830768820580664937349701537496666187084405211506761424072625867858833202318646846501784855083811664606782649880035789459064693804250569638593129952885246839028018288362389441038519175783055741351029953693662901139799600122210476833416778122367576772949860738918513957624695993620220395674326961447918795455487645367002559949095915013090991264479963896268688242415043591617927537274329795749688758084352703250461515215047895769819749627667478513009702434255373337882673052739283664188267357525892901689019438623825764125513681237910533508811433081493327864975381718467412793558512560798517085132014126254426733559245989189626428734645213320336438237847796516845051374165610642695637656244622913935465928103720001917303128696224916171018755691177531057136717152974608505141756696144376617255999291431668936755656893216337250894902624925156989429769172504406754633625120018985342076031704923877208580974427395276664116556961323859626433215504572153557137163941168350889684090027367042881490699470326047250832896054716330915284057070863662376485696432359197603149981366951398537351211730158739919952094839006895388326663423221357779011457655969935771891966158887959024625577999210946918082509610113471960002038129859874907060545307122054670398432531776687421880400258544309059839932259696148855216291330376323538893733710201817343617555364146013043702337020525788965260690908571358166201588517984583777852231684495288242271635730390764079581331830899320995839737572923590925580362895326068429245715572818322255144054856377278553306433523071775510635924466858270160967004406194436023434790326175439714629829564850011711081590930786410376415384474231119149637729810289658676888702682531281578978713699838411413321957039520157805345656826248126484142324152375445730130269346582824652559618884951447181407592225625266761008648520714731911838475408830881505304222470825753867528311264943118936094376592371508540882943023971760405972284786664730108759806964114598839468816020252418994825998290080210751787183357346602142737156984557997463893967000897657019844327419283187523205503066680544322954752193469376924725104516485798540998049598573456291423614858689707722498184705108090350475610111189963644639720090281219650805635235502396047369468788712421825838444624878952965587594478559603080213485058953176285979759959473655066392730049069938899557185783080688139049018486928263784849496913498041430701868305220158691384440914670461093104143774470460132288031816535112189536632739980853447877480366195349040847585864818468186144492211990000317602228014093389615379993375334001637396229541129549176831813865638673910353968629691115503075464492009052455555930112469194775915622725526048524833766311670272880275322717968505281359613105592531851411483080810454414686089703562906204831023425929157798974156757621112333206960012692662709922963202299387776587046832773814578135146035957278703157315592478934050174895731280322918241585547250776906935522930681796313125030591724979235661105745711873624975152195260865299204824929945022315158958536710206455374946111146055776361095506865771233665177399971655715088976558599597042635569368380456371742381553124263135290319048575866895029777594611267675585412709237973615903290497322092348167509198464335085486272798612962699914456428662265094298614571062432159289888418161986091637422047580942872546547891818929701255492831351210984251003959175087148232825323353458562583562707632195351539830139400087026419987676080819894853957644851845632062568116497470610841326676338039001960937460718513303234754495377167111288231638768018479191368920744418486351650787316004171559776827737267099859871541807920795563602641049090700287001174461794962561993105241636448650535351433650139294779868444978817228224659114380175825515965205350734112277764528087046689293220561958073945940639941312522923852997448809094809215679138668515123997721322871280529155204211298685821170252772347574427398448784401333731554886848121433175462262063172229809080206828466248697069675409138948002708202076559661539859727849357651622290186251823955103684852394635883453971097169498186920303450650277360730065467716750402018827134502842720849001362788996923379185922035325656976282885418403166711345370863229975563789913088408495789283858281046349039932300834034427856270639543127703352257533193980436036562641863869848230951700695887520833739970926938428772355903172174324894872630723811587914787924023415634705419227514873464765142029155515026541733571021489331766109070567158487378467375319716965900417747926602979488338430097917719959383048608967220308976417195802528509168828043789183675339227585577340728902945316861662918316425684884071700948766877431306823033449034325337789916624811852945580198314824808149113328783892830279115105066110006602440402833778107144405783249688504826413089242516447877302703666475777094080165286256452405484687474774527940517769628730407393162622401561015039533603078648651210860999614104264710539940756624127496007338026570956629968022390344500824571033066649612035387529778655069697796653332298491525166939710829715786366395340827159289325338865114702865793339531026536815813551514080104304133427014015257341748803947707671837989817646159642290643045149865035975238570453319775007890512938398667019055444659547792886054739683767939741194536160646805262327779853226595284402795827847305617608256184396746754589552917642132475732355305093059861875306779101860732982262764730865127943743270947654133183154649016379409234100171936253861265414820798439481225966363494712391846354796644996389545591954647813468985507508465564170550560099156921919799726137601528390315305918200131599071357465532420715033835548311495987872047686625200737245250276941575485201075125533271186337640889509129930878168624770560762572200079793750392535710941249561626919585657956271289797680783238954301492082990155826652672263504298658688904223662004688343926037804776292673595725690214753100760322517354680678345364798775311386058154172108554582288001510048420830780388453490247932859329199274306890499039128095853117961152551424054336441818453175123119708210931643416025804316952102665821458388539303601295132539246532092595990234539414528179214296362094978302349767687319308738277487617540632797627604359103853634056701737142429203899923835472682952563065442789969825961994350556033092897170554871297337154080747481181218836787358649008144846958130830185346350495791039555657401247393888234088022224505480963516567049472020093853771461956098504437363561427013531552407558039204210976220017290622942074586047417090059350674914823007157440809901453550625991411392222242919436906682928611901489640560268250367551506404342456692206538900220158798078320039858380017383325136272058615194479540057631252083009375047642368851797327469820279348191807238198648811033403779243334830835289469450893081855420461098039916525876226891561985885228670414907815233555006248941499947745702625591063915672427286522861251923273003870198461932320083897194622718016630282576502320119630116932571523951845683666551704215342055367747470557471537530679000008658699665868868597722562611890059611259185697614885090225871940999609368641439618355690426426359519644525299949345178596184488572717214093709481840123916718179436392608107682521322670611117553526508924585345530922108614357509752356428025255931092702705662943191237511459753345584789621648882189140106189778641152198869744538585842239815273174311435475101769566435850917002435788104782529817128382826261307335418678114118205511945876084081271623866224279244838853936287136955464029123131277225828824081670602741978398437042698003261027235048066073479084360259278181108108685192351303154490156719926449084906540856089650815081773650265429266733263975124545994444472195927293753009206496408674237941975425445433064308931526104456046303671450218506515574627893326371543277768627238582556210260293058971711473364447719802525840536531449353900919785523212253598741383914482409585132475802342738684445381623271211283600322757292988596413212899234342801759369398472220574445874894259553964559469881119754623804975636888473464974594298762837379026303464199118368236528917297450317569040564175246763422438752941860556434219027653441385659630595126196898800364762359614011085448983693662987196330134297202748186756365298114527039502621845284487906240435817286106728902282602416548340203831844625599243869844570027974327688154566914772028559911300413974004887196561147873365893255367402834000209786732358866546397909843825643343805873669663494642898949416782893345063864297927285390563905044081615672849614980630117758969482359000878360055613811678447672016030456958394088967471248274663287822428616317838987040550113896517887982174848413634384869563472007105356243596626441246135241965646793732125748705885157550107833048234147702722062562545667349317977317184217082296839758984070413515462660266318698746761464996007297062108600993890766996020363396943299841546082110355999466532310411768730198800075851829786954372775413963898803558010550351494779327008301619265363868355399108532860398418336312380232948776199887644422314455442806372456681603261966282421625528894195835905445670672316063592418888198094356490702379602728668510270802918858689722173713215295380926051443578921855643788352864305035760724925748572307029638055195646770104471200932544560586239478049887576171306817666293366620998992073697393152961860385330201850930028754727788721073112958452466955238143208135669452989338159633685556754060028822968236893335866263589928274167708880579490651206909341477852061860172399370924220240840562533038595232675779668424466841309165151620531769790863718640684117668014580087775235332100668623072004063315037791995434018692828141936786934387338798858457542792013040738317012511746116865777368657151569784860051520577938971099648628000382628185251196105274930520171123949662695796820963886954461478525645047082491231552526160516162503378599625588081743001375265769890507053289453158238659546293179199772427923128447615793031731728855815734177582186007828427092564741041709337742877068344483343463503001555076190282061702157455003600494712377661563102541502653636097689883615480475550191524819394464206846714114677756410413804170163385731195429520991670045163703629579496848160261089063409673701095142113128094450954258818132531504820213638136930046127990838042616756271892629985914606616969445985388437219398623115177418108033252041789518149219048268836929466514080180100547104815209985767129582447732008979861596849510537678626919789778845451584840651833375545302205512934995714756796155421627659745056308034292194331333442303606098271056427976886923742906500532672752917732750194973067468912135382558008250918601314355654095699339206901308055770253456649083275175872894632533016509025869821479215750370836913343142498401446497444337337884344266584586829076342535741145695464186503741970730056038470713110277016894674103763135233983294575403682480915312788338304798961134678452556888680004949301699813447994004335506506091896112092301891975075005881708995671054932555087510147793054929053798629242821481749953218885326254858090279647221520812041516511977864300574434108598259794353359013084860750935644709479076433675645830612546634220517383581530806328446006563562729812410909940053946926678942874155504836362339672019134186156243648635134099821978258266872731589919351365556336671960214616161410078653840363220397909431652853733633929422513313278919477657885860270411328180897220800464407496842241114779487503847097159212853090542363554122373329214996630464772566201875395819623282205293158395458173424757411656512245443605695888811317195190317419515518883052146586254973585628961131062428736604138317114038866421674505066067572731965311528115175508194815198822781170549519212851137840868366002546137700210284987387775837756681767087748358053732507844827577745101107759535008211280999654730611577424553211481887587694233816686127144899563850993730823475797487818838439139593583820412757151438021517205248496563269435699632909812028893588558847841003762080260787797672381964701660405907013406552134612700313793109021149055612955510887653077777485402525804418124711126005991182875103891694195052938554903450855281837358800905126349082611043331773398779645992869153931273789748562291551792675885293054609115738789877294586527116216275941170842457703351682620059589941496948900469339141754751461686604881813873444707024606644003427969353452590772989780310563495293975648280685566637500544243434672716180272593867558515143094023186214037820350181934633392157622319937500041388746084725635715826057647887374761906060878924654314124530806868090092921269045379654931072647553162517144378912210373805707063315660462737228341001125959689951857452348961853477703945589354292501400128455277079339968225634868050648783705249142454938779685227282436945162326066005694896980122451289606129683623495639920959134034929384289089296704534366587774008981662038852753547234165111158134439151143627574903715827237549642246619337998111181091728317118948710393403882549895028154911613359109670666272707780969150066369857003382331860293287500883471298832335709799125368687381035754133517717982127782767892084409724720223174132403409023245239436174971273934421572640745197318770067695479287528892305241823055553329216870079562530483437486598215695247468035212735357755486394965556600944476550833920309425121338384465424419572174055901919912116902708297153392324910257096024989937229958632425403922494031739088405433750522473097483081917495421116499301080642671061945238743927575725646841046196215363927152605146554462985152597621307169028736240048730127467455514224604297918954647771859034085940240856943466063505345115233377094988995683550293333580929764159515757373246245437455694770575204986654506284851949173723513151517501923970587193197772427071153915256535504930294121846595596189524790606670451318638205705985950264251944779623066171124879386688870164618695137106813875136454535122110780191549274449893246822830053612401441437379639508347908378394708717889535725025698941235304252878243913791688695770005109852855496016732484279294144774634675321122158223250252999029413706416297049838846344658516460566622584560292454668235160150938782976230950977263954978422289621039279621813223784866925882209635854038271670231835530461018192218850450546272270347819735328321998767351446312974199736124606055000383608052199759184174294874834413748206681982630460263532059968479729421880311189657074450282341904718903992166534915914862003561772652684988128551085508904705789299154493167250781076147117975775780696925828700844268508335860695033876022070077946473311852252718411693542684477909475435984079677306422679400787938092267569751319740170245422449846735280451811535393458244152092398539374570268350457371586901159132345794977509649638841430729869562691341537013910194809947635944396436824920107418095452397336921405812982730758988729446878064572363133096668639788156737879009951944300024403494564091128676328648879934335470362977992956708902739506974046594262156832134937371145080455382230617741255023731262275676669713327936307031893420482885357780566262590931708850708155586670052395720268363754332963472000450187655834594342597493246326223424577714869463285560496615940507612610994905176260923882824877554483049819977963822095097574943739928516792227163756416541573573295596970069729724474743983982651995984761455741304155257249006778860037185663948366267051650595599645941497280384229748153690825352288831928265746889860814499271877447255623443939500489256822443556970689206938838117007232496507742066378738320348200006702957922159819917045529779286086805066827331815570231013560899737854530260349569237877167776698949040229259422594403524120391161683623913159604751169181135573846142076345760407481083816742449799212290741904053494379975126486710105802534111361377011029230775118688591926410709831078887411669579671603969313391977857222451436467305732001722252133444277479440400162927408903945547097166416833660721996417365619556145481741512283322277982648169147883113383380682505242041096556474526926573627200383224243125886978161589137541139492780798849471342078235920868015026114617865394043094501109368508460458089280520356080280432594697340904980636722534673229614440736869853013296408263608766666614472437841510290313661455343451523650661767677708076670592816479791477593981395871292353134612223767822331410235172832127211061095681411073886211121527736815021254384858587658619940719316139452125686317564240307537471651095816287958142269050519535162330661040341246758984476072831675458718651705394697771650411130336597538724624564182505059137160713606298293079150031401711767399145799539661147765830544032027375788208588548273760212570986411682743366132907871859539114450047189488344239137931071626570071452509707240057166682294814081364001570955443392180301007155117348362155661029748444576276073144568186873732551872917790195298649451270348692597076158412411726320860860994579124263984572760894649959429829073910397393809527058167806735917252972463902950900389622276389665437563478881867989616386376764408412599782935560454766081524359754878337001168815725964691720324455537223463473869595618840714081074427498547268247506643161002587779452701250119420732449476677439441319682570512429338320647147446938647209696498166888446597034119215495238714921694138206624365631443486664835667330124088713420323265428458384327817889669525686350420781630477649509414869463686579624390437621421030420948533318542117827090817828330652290764606088729548316821156766105438426492662213823467803374158425778433336529813713019756944910007011473414050010061198826292534450343543719782116929653078416008075184250751501684040682618884946288038632287935056726189877015545921125095555836608894115742614098383261295714456229323971539759788266222933045273143933120109111966111323025147062616236440808202483665330666821512691603583527448693475235487730946435076840572265480035342220921327728417049947005355963468983650135677184343781982183654419130036475856988173734455002596424818483794775692748916845423738444431726549306850899281099365349436008064808805466686772804098199065812547636744089307610459648620799143069516478779930827964536023652176173787454406035392813978835961136500459498689287711291788857293964274037214379907678817349432373734221474422341258404306282762592308478590964261317327530299892399919931242019991429753588822171188207889550827110432118709390056617046912773047257519377408403153659306317827404978291907319215665686204825597368921947586960595942465251413148566330182621408988577626179167598594577294563324795744090061728470286310595633071638769809867900679513396098063199101194574781540406678504712426757089667243308294390964879124634819463668126789261773864021613747349540549647908058454011750525786334221735653142844068968793011722273828652190363021631512813791074888822398442346861574678684070079653385057673561860504221664948486969180988355678372210259991050802078301336934160474326859457905544789331896368240187578780349185274173490416211262811629248012317908658218115278763004159153084896995496805790042139176687640274612474191348504737048276860468948068839584900796187865714128194068612425875170295210370235608266052776817127854244079784328890271174066810855732759882306784340454013853792682392963720190875794569870014053666929229269936835919917715537094722066123252441768335424503926089248734319265092772224044220650498089724153344316296418712297792844992457098431377828777694394340985682579734258165605219046421214559990064970055769306050634759220929958473968698599763688168795717196579582333800021058618205992402437671987329410378831700829629162875849737874481841918683027611623773561567788318407379864974660125957122970920080156562967362746147139482495773537482196606688853077611707712754376562667754090004548371910142444445404537117845342301503356076854486925133764435421646983031215626013282404488037379015433539967883023596685334786434274335764050397159787417193355723089982659364425667476050694163919558432977324211780459219513407678586410966522396788294996283451674580809625185955852983032537073584104202963956724389950858052110074450616576780040407435759097321482519182978888629382847643921033188561985198535098470139651939780687851465651152836895165262571239384099244982832912406882850496281180422468600022333882153093404452845774646771351816006581971698441431710214000078121850980833973666669290747170217118556246456853388461605121001581230555508527960581452309116351620563400784880955097065125439972425131859863089717955981481008393771583460078387165758915515860982959922414750182050584939232297115846925957466697297433043783248345954308732254670608012841383736718478560911102189310480798198839217886968675675269920102618847833560290373617795403768478115072115169442913624269629670208342578541482684725919080743122035153444168824670395203921878074839278147703315189387623600083891148747523318383604265382754339068357366631983809028313491379668955113792452917265948334688564081083016255394008977334884037419610016436941671693573243561298685231708798998800454368000700191976465816745222688851459141166122754082362544757105360965509540979209838384435281930912050147912515450231290682605556691295241165569433975974654826513256042094902609970170061539119468556741636556633302638092580831459247178205368446009507100893043453323388961351278025846040166600812883108090395040716568709947855544375032413478052674863119348325173591263615916908347240147257717475696194486847833595649969542963451268943910258696048610230827102888992508242775959594485448776641828967251160673150669840530399150591516632375479391085752153934205048043697342711924633408727841545802912313726480440435391304540752274525302760845156568528001566090782453867153625097928379030460543719071661221919327067440354399260090143085015002898162236807975954358931034851642679502392514443968443845271328028532578529949477566397495931573635722997851745830488356083181460415879855255893066754935421764252007756946920515337042549284905671510000098881091213271402677531291602401880705855704876468299391847820773041385634801594354638372797935771132108559252693589940311318080583039159067324275409003558239605079525531571885799443623207830240580802497717663369200006248600445887553672669546536089544183629235278834171632323756127132026684527735299785411732813150475070076756110745862227206786414462488651345936141308419045913776341572626128348316841004591417043239367922669380225522494996595870831955009527729759552900173588730545490075896410279896150422683414621576245277146237811697789567176666345685444697003653186219975277567318515481853446420900919779974531178101347909284974851876691715257116334209114254662836018360258726535548752191218301640567571039904173694614863269254483518801357568422542090964384785169334997884013140468637253831431614262597733523771977438007513357852766303997346768094525135127610011520058216438727489545467086305006428346925549676492177970688345504413818520591078441395976684697018716027857660110876781893417014181197267629936170795687074923317266436271582821369983061557973307661442666411329665096938420696575034561366880825452987057592239735411468503617138659763555918606079389886214710934507513429445652140953302391328958497793039599333169938091944951194733766327778490974425891588170506944521233954705908744808641529641857608397664244964916667950480126376201135863378110748333324862862280100553414414514576179560380324716860835532181677023112017460948824057583449497003298108338074129016365577340723598223418613337163021355874262282594708845276587657171438901837233711470285033033982369611619342246218787989790683216803641798453475092645088044521274635005433082712355250066744132794935469680642186757206606181133243153299766126773489277207568786472719703700235235791885835338652755809067362876910008021704953592574513336152285657009289510891281274050237912408644404090238674979585612514506374485918187934604889345606189983802971281476386497269206086938450150350469846833974124891451454564857383139642035666615551178540110126604303601855906895539918817708438060948927368166669813603398910175815389236246025244374807979564071454569449951985314575189143543057745798182276594154919430377719349590955632050777617206379247980353273641142960650096759740337603520091998162455105985085429851373733640232600475246658884263828890337422952034470215302675404245127514848691673391925006178711682220539826365901328614628603484718079673430111650805331951763487051144209650090919992795892584075484184731827399243650992829040529801072688469640738270908135063417590210810526929661416761492277033292486074180084189216559400051620458552023575235242825518594843350548762105660099752213063467657208215893932379135500384814603783353677978904530218282293991280242355561734398341465339598110034558874979225872913177246646317481359980431226829130033424470663311201917557537321131585930404302872395147432499460379320849883666668075467542759101733061636125386698361944798340372606243017911586755802420213443620644531164024287408458210960286907034185504738718141485206190861731508116759620648203905097697289042243953794930406756616181646035725257361624671202660460483568721320852106064136432933220491281310292753676302864137257051781328042187339244816927176147332129660389736374052607818343298087380209335163437943712792198680074638768752488574147611585874876272778179084028595238857347966879438471521161317398355022812613093451721552956778365746756692810614006941338460334937814001913639079086056277508601882931676931972784031312619150808056912863633971931437677557665857942447686408094637947668880478456364583550091943028863434724534756776944415497235124387532925004294652154860270351027313813714647964567723512593088899573691354932333717365673957859097254810899665460901915760561059457384147585448931021060688564525588235638012742973956212093152885112288071892765907179835400953173033778345260235747328660255292555752798328092439150591696276346196260915065092338200001888047356709980204618838494054536402885981720483474637754986628107761128366393526688751230573122043907275798529473930944759250652636964250718109478469931979612924598472802369957395497687448858070326671036716883994738109584895045203517073183446230072844473679636246123611348179310455419119374493713924546826708445549204649256213112589132493840276411740112529110258705688478725366379279326479006418650599542088891618478422235166256592545959371583415180526375329920879694707595523567889296923569703074383066145968715780373773655077042493649488878041950065993977216413089661285883888358874938621086943686911017723010585556792837950281671341605719273657784013355105425375119595211711759617688649947961411965031854241707252559932606345973073327109972351443917150757174426382819537672468634366191726010507882938797938513498557038458008605358489161975740456291307464057834803606768040844590910403914379709869832426096040184116209427548313782732071248875601726394429472173139127100143911174228227434352807530230447962317679675403872693602268706797195033696375840447309869294149725023201480013662376288582619561517558622648246348150592472743583598923359135000980293031326042818419291729884281120868581144470388757218517155421547098821877570388918892494582097270341242024042116300006641634302169746059140584116007017277578905948969818530523715493804735047915931440628993115427050974790268187401575901469541285435611879190372208074498970636043173603555147140504034366218041409926626867179560275400633943678812326184108952491712388413123868942903329026835106399180291940974513796957602205505990910318070515275800258056002925683849580519015455528974935725355568662807596540963850529992452890137303806501816003432883469858189780626293545049895933127168230433509236357585075220501054360948260021860179671189114000227582172991927254896281454477329924940152179604640912707971535024274668458176390549375255167836864174550008187289863565473758151341715423986295490457853804846492348107046294517932725649024057702758708457813811104457024710073515489530178922282854813596509135607417829948726087288923853996973419120795754614923260388471391504987338885533860542665725475029226590911359136876460632235039729746953077874899668264002352528266790397751374559593530578625542170658185731098914325673615900822668022436600193889783065700173513572143389735736048316216564935227464932627966247595785486439399370575736368218652950471831083783387168842523441693692764329028331916581414797929275556306025445012800860602900576753565034905702723638481138540016603960751073049103772461613358124391096314293223852508694152624500764864369069162438074501919979395365702532239063204651712534767872798939455584996452871646621348032954256756255532128513069284539263717952316678636864663470206533454395902044614038598263534935313040624270565356196614008379613409918972439159291467108250491568281506806714607158704887546561073372066106930711738400333424348966637282510935889504537859883514706643260784948986061981753005483995862131064420310213903777044289461704112275805231407435518648034343492247168732378180295764797927610072563643319928930586435658265306199588482323190980842346201800675774366432020016713497625696576944677346429725952805484928785771775278430306316523527474145635875540581249760843630694116898206266265342762790480376837780133583233741253263465779519020126927011242756450261525180345605739990698446375896812882945226178020230290316605719033491382781144229947907142208340626691135856630523105405973649423330759520028789930393788933963370120543286218569826997538041211760772961279274344261032006732351040471181158489596807264930848176065935459175561789603248802365067692768451094794646778731466148657930329091235340764820505932363967912390452053539219726527606486743353335392290823010212763166004784283818760449388860315165462280557373407806139100593143590965715490884682111043194224938988645206071167599717930985095341092648170583136018816706841567410782349392344549102081284485146219998170929467587714963589036598610357396603817166806918926329600985077044410088848925270070010873977787796396760264005694498186876265762129327254598166310745041315559071765238607318355357755074023289245853785635939900447173563297820827448834441483758808548276552913134417746799266092948915264713527051685758175316040374012939190776926620818781861970310129457832118289010040004875113257337796467171747382492320410550174094406525379960535148133688339358517056039472043615789953368670724359561118453652160901234118365141571728416298605339684719810653391885685268964396781269812149962992068225698386199628344277900276368507407664713145046357560494437052182613310355091913614799262216131869760073439438174224587277877459813146552591475369387263845303319105329095704457646967388839180661402964174428454488838358436305322896121749602697843893274182881230582228911597609000499370408534454416320846604294473666497719424707331868685395531851815079336069173731070906447320830560030932141403971686208706284746332110988925596947087936926897008123823304561869936009186831274361159679649292740594102507585001424914407363342730387951083894814100552167892321115270330056031638614251896809446438031553942894787971561962351562187404514895444150494038483622564501539417051937257882178495359193392535908826407691368422323242064872029192103038098172368669430907712248601773628842136840968781276339308854325332653080980662433630372657474142867716052751617128376550113324154738496579865244335235715231801353359956063649694806002018664015929535615017020262112123047089936301536088575643765618192911271578638589463201080786125241765935075089859441795614591241035776083152421397528409985424616580950996772285198276058257931089712559740561464643433648191071458842037955152008803677722996864071961040155730798014669674784852682145602153743984048770995487491246300205854240511253709478880277516844288833868978249809786171883254350746061032103143490126294498216312296517794911990606189777949555083503494578954220699488876928175539606180911408231451570826404386571458968931941969723293346010547018251687534870950846500675809848954910116275069283395209533550939850499403465619348929540939599158279364159577468283271208623956789203222035577444490092328879808453234260135131047981169897437164193854453395279992058834084382961524798827825828507086042169350328568274069670253334314085973320819127364540204086529423059775138475038107568864692464833536380923062484827187171804130473489950519418463858418046262216243236427788502430151845423496994952754355791825388783876157869184562073668073334623824235377678124585402070293270711166460525440579201183067364006645314392729937135449307227162357693946792987625973826463771368877936767087309558438721571850550392207596078325450763409652195624853034803264869659597838114649092876106382697779911297990250825614274479061403158333252559555834895836585494641784132120324088533523660195503696663625275870113404006053221387534846300287284248230774753230773417766058050826595379399233453214541438203391401793875971854174423704841415519952027947550504775986585460307368393098124688078412487832289527296856721741072876348223399936472840499160279508003890631828864064643373723093929969948133609101194850103880683913554295348507894170269441213038083547341686680400988060686522181258854210934685187549084784806018505740940362668575045731068513854798814739975507593493971775159721202106753726626619528405528058567738520075604635066164164331669811702206574559242183838261516023049039502486462580741048016602350464701720644213538390184935836458311593123255969844576115532514511632372488908111861978194955520790712736303441009263287815634458706912933681918704998481000776537389938163758604147357619256430772750343453083666088601157004688534772848114347535078769259554757829422783286231635037757571456618271612335316427835860534764246635386490785926215551060987206470015512549565006504117315139616454183502001442940453427779103926410519995213959522175856179734419336352760328119394603534643394545526704821116579286987943410178871166895128674937122776422842653123926557111543443196257978171885363563532361540587083896385101261637294465249320536013747627572812550773919525954121254545813421990054555032776983891229763285825403198461824352690893436877390479844946804698454870960983788574728050177103877713241613925396997228779969125879458438313290631288632659201850410024862302468588955653880549327030872123810399210511314019949357355219941892538950333266900453637422545774264907366876119457332674862079701676489727832977830815275662924321874156674209640299861586990549928789903204842298704112961043637312071811051329347235230637261807108947828125984682723678539058570846041046166467886731569010557438603351688285528063866253536859921294803845798170762603202275011639099116676545301633004797239248236470674804318690856367330172375181480025631436344941336122333807706308310632646629194025920938140582122969339986116825179589094644667558136972145862855058797070291351185766124841723990908516486169835131196647890705446323555621174874842652632942570606738907984433430243845092731676760992303672344794132898201580539461503891494836637555409030591112277657975589034260174530693920695927139990165978221109657949579469328119443666586272071355913601558266340409758084597474118405349641049087837733280120626841571684385474204074119106826020019367961057679749728498968761506911636221077015686610750033844681724005152808179338024506555629588468968375846749201273374951680740208916769967020843963810021907373644110784188317088958646260408753137906506755363776795651566864366472917741994142863255314222797079522135613458141943587272489935445642384001515813671819854132799126932700021812200224337824917388275676290884674538350240036233808672281779430143843570989051253826056508493383440515973138860620614737110972786620617403753129239278951634314690338455669195490323179984455043314678828997341595599455251600009498809725483169350979546545795186559242994745656138349093205341823256598249152326341569963812597403530903365673247418562802716232940921433115978077700178201379895370071237722904438265222330802912859260312286329340018616728611678339868248658174069386010231711370879630105101361327331338955013796736573524249989707387031158855098886397799044627139867903880554438231684191239915965202683465052743276398805753208176753786299860096835063114098093182721622863088876055103405383005984040262414616349318927410842711553746016028688108915174357913747538671693279952670919630281337188373301481174004195020059834372584452998982068615402575461131900699543114600197246936535349206538027221503501860251587393476922536005201461797954472773676975573216169401365241056137353797077926290925859433330582097619993740466869436910601546081600709574625358282177399162915894559194050710597369109408240370788950509040997812470780710842018134260940087069764230402364524622724792792184868536945252171863344986760235743929087464452754770730118281973598787438868858844320909979317930473546291654977699597984647601290788568106208153485602978279344614794765798863881217587344927842881782941967779196826790686439237171299481355236922459240286138062117450378387441117611983862146941948367074838236367541468939741778455221132031352205219082729575265599455417203298506537164197134407817279346496101657485607237909834898959125352142187656372303817009326699131952144283717226216642578333451058409786649382700422730287607634275876742175921551059758928351210584419705978698406714579719373811058352192709785354522121056250044002844804863155637882992504608723334219254139053666628470464498388435702940301947263523514664421074789913197207290268759091399001231886776668315411543004585521518754452838232852906478955665189053675354202249293400189057856731992531007295064927369130877396690881294480304715820717878801083432043197248297757895928642957318855646591919307603503578799989836529896028633149490993297471415359807392308716471992316231212252224995980773638930823376462237073771455270967474734797204232599046372281206545407083301007835180129669266161727898725655549442021853723234230186405641855667705889883718031974024019868961880356233474333643202965637416107057784119555496824487532414260381440099369859325304903821124109463129190456411387895972050104038263628463930528461601222833369047937461891332343978069469366105939481082684236670286881821238881496108532770856755270729693962142594666478266405904355426078845289984380416259139641567774591814054907782307750135664528998625853951072074330755938517567847992764257311023602010886831161931526094573746256438072240370863041299398753546690398219480494196136510307552463304051263004251777410153365282318397639387620105868401977384796991430156684446882327555520665665860612783921772738545339970761904382258717483826305536383272303669473560180433866558234632433918388377337734418112826337892727773295462635906765578424197234709042024109352587294567247469919581084753666386039613989561667932473083997239865559043077653226983833338534689995400910398054177491431415094304857524250675033868724993308109500746923821925529085713358358927484925086778699533289809496137432731540306088873246255500617237653672744387844793362119546928434761432484896019529971320585025207598475333493257588669398696513111371119188807337332289930071772102141782485840720448959541449206886680446972872538431705870831937839866173382682317335802742208239005141059898057365704742637621465489890097079797188494440201228402530862180874867612658864572201973243787015480884705151743620382247104538708493640882297031696230815265814414322762867596595552881659769451477313666879649415218282008068424620536061263315619651264085049841398941725186131443814985993347040052383631945283269657665523781149545901483882923265575411575618158525051167253572495165134366744161930781196710913572339755109026117122649086945276920750869819802618182411445559121317212889086115887576568716323615722801755162428748518547280953839248030021240551142410884199376014752427281396681307584609697590924833666748851000814072421216761022685516860379680881276270486941378738491717815557187588476158894985003234659422634301690258670217561340194480386749788429629492842375753247806671044478400805051499010507919354572670894621051019286046937585004468883671263275487632469484746697941656504059692854105157738508737638822576936457510388123519610376878031299096033280511444691554943102962277200597654213484168214237895248981602313765271898012526861832059220023462491132964153272568464477926781767821437255748636515269039224548958229744183895460781905546912588934599235064081625966813164073114437309383686712842964567487589655759575194464425177395678547248622167785565503451013461687135342126392749263463084370213040668880993327560489792787572862152353465845477425756848922958903198223245035063696671369700649862128643648448963255231434776557766813616806454088525080537221857202854431939482591853254959628242287782069305392465037268721124793007914224848960526530248337869130054640510503278436259675883899820976274955725208769142718336287936043096738637213993813526082120544021654303615057313258723041784976996303251022390353366550678990363146748710333046032031973435369654302274352710760176454664781542136262692830786836068880143543209218551912831562015269675673981171736743482684641054121251692297639628039088664054900161815900281771162268899359798058847191427136413539417978948166239656778968136277258260210808259395681975142771813033953280107200106903127548230796468128178379171986520628364151082629251343217247652901869457857129063875263475715459137731655300009992473313576133839846272510523624369879680576119816957001224557451761240717158000943401695824995932930818072082539734192145389028073942189898247940165145946193959747922811984228148064297570454297086084455328706941635661362670094810730430731989953021229025193185434831967561520545765808658462883648045003718647530755766961129614439209012243066257935879228891769642089860925296671483393198090399893635677535201217789415481271337153876462518024295511534842447616193289879263326926010696177075464787061816927517012048976135768083054607179178420144995103154852792310088114524623212919356429811501493538999956640869416285151522162833539358477925595768934885452754396443800531408671656339472190002412691395526978644552977043067008579763928388246371131341334329567782155362907158547557319085998453204788461215643443420080107901195782491143670751941941584244248411272231664000158511423887036370068838121178320288764345947975801466830279212078249473879711609517624342478664061385001395428428960443335789080362886168084752362659414090035264021611983041050429411739870574493028309475392998857274519899140654581975532512126958227142724725796933010778699299068267744876231836794096888084850624997455205769518459887623879966546941159636744308459226590501735067771509834799251085921572538355922350826410479840940071139850398088770657616737392808537408165737529310796529618983029712429210008665251282839807543624963545370190607616000794795181997500368546175998785079324811964161979031899325169228044206806198914587616008240817168349363453270012627748261226305031906212006270086632236196619309765922749768772901176197559248637472844058429754611540178022208458903359032188716846415952037558797979873202037588254193919867490360664672195430734716947763752409678611035100413210474202084436886338491967857981296859461047790601354779863879084831572188044527839741095433343351170815876160765302812194317455019874446830716649901784514210215615033518547259524643366493901362164668780743557672895435272228432986284281340280162853671870923154507746352813738804175370887542617421107372744229148002072100912119303968334417261192908140937366349305087486146123827155718731808334109468866125604233221009869661582440013627925631105673774700988749723679029972601733557110076816664660189176589895703505505649390379004038632100959180117550407536686338861277439121847407805629824232188790349932220249694995068448319819622390895043935279334080935232427187302620808128942237804988835621302690417596563742260496034108234774759619816679091126659711484291709478364396796046584424770818268600471843308641598318903548637021640501920550927081347424956699919408306745482359874981696403596443416861810802134885008949604348904858869678471114831459545621153545838572764475602094503702831620417706224967622587387627752546615635962381701050597107851465958932991314839049225677431631487965023244608080771081145350924210782536397428499316215688721996705587602954973001782185867994878850167233487480781123387034648046433159208812618420149949885920566502650065697887924565258544421436869606166083539108498118305149795198544618721000664788120579986452095553332498129745596271884259598550307708316407018225278469120546204671116752278739291805768826362717642325636616244745110125018071640343927803974910157199840677133702638337598751946579899661748794277354881462477456509521666517863680627577742499705154495500309324970460803400093713847661979632563948614506490444999900950664637205473582360536327369514160062626607304416118637142836680043936811104615445560419317999368333466647504017329541197352804692276921797712963966900217964556051777129303488464475834607526975057534202472370979981157864740273424558302528569116367549569783008864571391453523102074642192034309458270215841771629965494885229112297621237862684612082821349045521493922190257947568244609587282773262368664859879974968487482429569415551767021150717633049990647176000647732063555844589290464204057410208459709607601437705537955940901399894177828150527438221725691564280454815131917810501347375054894707932583025934226972996040097134537013201753555846519984737706506409368362011117891191782726148461912642824262280429749226237999240084723037834605224742696121072398587751868653306242838836864249644226658757680479043591100597963339943063733970731308912158784706737542397756048512652026530846468517885544331985920575546613257977270501282436630077944922019850949535775564403620671976390004874722065436183888359209225472139899188734200835042946076369471522146050999381721862354114999288661594896099802443806000592460684308895508713932166070924373767768271315194010326334232835713966213440651335322348439679708609693644800888164580049798209215875019242781127721111334765264631200129538840170328794360036244106720343648110430961953556600725638378822332341386181271798274913863664089089952843894364942763675601109746750048088775005100301596060030929828378155240669182809275130860323624534355008349053064366556752434100381213045694991448273975199403540196878819009185069672252886557359124123958796985016029861895994561348342530775718857290360963613720652552606630449312371069154609068582855236612087639621678589744701749870390992331202367003289311404410057454775391472067011795773955912866632407896019933222287945399431130848986077743964263383490820985435559236753609212430104045159663679706039152076875344277573740987433948374899318290799104854484565573079727071038070481061564182871076556697252946520769904430291072567628370717875684282483705188758132463375888210722988434554037240609398478714552225814567192108591651668431218455899189934192683786761996726948700300279026326304343095280709207113227173711873055856948724992520045557827055427768957914117573554061935494666250119985822404114236259750162846873954007731165350749519719521291437377283475989560960752461597863090956925443169785293219263339519105908584921049568390084783863574181851049403032931998425429423195283798497768336632834254968243169176881581558607704458334082742823890418298148237485757124314869510965109037788637272518830507983814302339107020640776037225965394824426939633642971749403514945919507899656368840690952530692461403012769405350763636211950988962164444767269874174148848988661812765227512757209830321292468060548243065622942207545493195150873585514431789552850405552889410375274742879062989531471134521972374772089251535785723136413389274191422490084180791444298891411863550668957357315763112118563545084681901734446358782783330714260011483304645679108362274450370823661534336872662180537094733252582523338732849592265131128738811961032513006760438346925244469786085235934815747088032093244435233438138491347640043306632957157736924210703517606493772499976153419412214536270480922904780135369840711137237658613773353043270475140395630119594620298183496553184586322824103934546193537295665901653591062788335012655744786298298969638307949170016651236632950983857121591753454782791087888909346098504363241266885563969340463206476618461588105785223633559524271031163175540510027181220443407252397506823392803701369335023184821259032406192568206929395104285778967867579284813107044041965365679521613081538761532395439019284725805593038876496767179514151939703744981576382584275502720960279209016226747037042842067405504157217515335273757625583789971885821079359368784752159294025338707541474261606620220310878644577733228903200612280504109905587972251754849894432716863756583790578166508087045245770359661964422066260473872406971386568016093216443489256288204683242229723079537351387355299424616105734292144221708858343113281038623980428332557383903635164897005942770872093465431569549436762747316567470144102590580360414862394257690361111324597717821101502008067877873327610363583194569393665082754522883227319707136434567625848302420263261003177430653483342777413231906417033985172141956602971229182634641007341084307648459411238629999483255541102883406230490172419717823772149741717137032780859319092256157139424898237928650071099526971187087973807898224360514309580488448049762170869914600612238392165876436954087561197616561547433416411007943422234168912354665680069801299632403107379984809519953451320992336779710951508316447788662299281968917336339999036847614179644139918603578295217915424230546827545782547172443117430418509381961284157508315860102565774762866814040130344262436415217789110381994866534894678316886730576240539032561897799325600048168327611812200829237213657309058253017328473058905776384951646922836254634074002073002859223475350117847142446964319376275171426281930348551771656840986040851240079279649465822763469583161752443646168960352951877217627423538164136233926881867365569460977999521736151938516379570626533980722939141519011293527380463277460512513550872560740753648348661573214399979009451085047688123781292176208311553441540931922328320982606726500052917376055562511990093615635206976984957678599493530595673267668889227581691155080067426095414224942920706779444648328606512553477234340342264010490248147022296690567024184971010225177741473360722784119442564054774022854360642486187252762627958967147525193595522726654510170361813123994371419797272183871606032472213622628664491256038015452007214905040699125484080112110178655311854362809133968046375000224999019427594053314035598376324969011495830493978452467601117387593856200660676352965176525487238393578180449392382438542353332525495930349186239711505689769297966205089453941770930832892155277743319014406101619092953826083186389197608553371132860173408380970314290518420092939891545346361879875487496018798782126975729754450889873444479239800580399075410204420428612919370373820878350585051514710422199957534572127382575905359752139884290318334498182077240504915236844984939291939294905592486185774768766624404257350517641604455272021753818960558752564050789868045220897864652595264470043906119335501579791993250828419930481794699043827202599292098464283106949660533538158479299117798682476559646453018018054562277370875123202400167858149267964486843693766100272170455118271923023819748933268034588510959925563331024094747078939271782420015283999925250382720628365709964338981286149474169863841128921035691993850072398601144850158425129164806127251611139980031079026499880172571283256654595610477707042668543172921884589043052043555645593903591663395879750288371718966985125908267550876440710212781370381884951178951430553221036110071400737957153746949695816123524159194650517408391885271614930323012914348947768348512596272607376018614841443632482980231806414167653477071686539119232874046776454849245466910327689410581095289600647331084119445610790369565469985753740949636024210364480322372490132404474851374519003070213019549578617129424393377052089831695922518744363568179461605417996774146852451157945666754469855439003536574881000715829440127963735147086196125148991798283864295950734417128146894422026635344925080789819791764308889535648534539854033571703319827154054604956835196687499690002852180062459797298185243889941569217066582278459653687904115901515883869492540055293466124370275198941197167171928420233928233611871519211694938638157675218931770876985739161137887725040641864598520195109890931942249624960472209936002082210870748722145226148289528542072353233179129425360337906737714005750722312661302404670713994711193854269576547290106618374173552341378933573415416810365577295722209170089085490367379450304229201839312893802869419416151484269317113391082512688199614314468426093339093493407988427313503002156610564059442726959054226235711635968291018226276771599533313303006296852098806129082411397392912577326596262535335344371527075020764730207808136497565552089365771271396772101551727313260495482248330117975876094370101687162737496168657738051978096721572065700324238367613499755127084408742703202075515976694745230485642669239018171943085638928394048915293017612037245308671728407120315220815605770370252456470370357518404255544574463899796907956908985472441725247164538724502834530030463071866467408901864297188311004543373182080456785429822277829617852045774444497182858383310547911886391250217126136375967243705749207594507980917633196275857824603124898329890505887212970675898133823248603694934652603524286084435720188975267036186108564254932557664915683991750609887662865279377795658442400029356576146467357379806450680002570410507257879954233662429885955023009756944429580890248346995084695038981321703677172628084169990722680869303761886201628065404638655500122691392461082181556353734096167281959584163923937554982412419560110295060698241286447752023141550482760555350548882328862187423891286263134499605351916955816702827796132899193606447915961921567558337220291240458459093062036441564468007977238558747960895638486819483904572602893467123688024865571584058415600262981065697911212323634060898652396819602213717876872312568142968599924039528815213149289058638991913244762080515516140594178206166650844740895306167804793440868208050372532196030241488057258648376571714571363672053134723184316803154888601686456804863629198906615859463413433867356377039309333782346136481982610267036565798303372058464845227731362596463997058975794077622108815888387777785853374056623666304066024960279179917408493951126961162247482908118457784327060183288403304870599217200863916338474607639587332422300451101119821608714277825816136105851479968559394297707618211589196367134372112471777207812420507849473611998465927071093921383158376623417374490909136259319202040880464235132829316640299086529824844271165114812398027064359291513020411703740572578454011984456750175876470460052997311528208665762241413965784524878094209701446805662444696467661330557457986587620936528048310874550910343886138312874726930658418733746151146574895740881661264466760708267175004075780217073310489409995092413379974359899267477347500692475840257853586643935056272979650388337436726292039702686683131287160582836447879115749202943111906925355645020764965870875164335260888653408864902366886587032958953452849563849267474959579939117910503576462784465515777239610115337684341219429883417938346856944565566742857315736208573133889217667399596713217568759214512548499391434299910098566265318765602130901612071322528402787747102910324393373604940685090744850684880536693602485560208401438469426404362256056413250612330546823689845389107000012523558074097870826310815849499401259668211163777484407843578433530420074226254936542412249464088644029618808367418294066987175164116614164688844683517055969338549513906093723895621983556028160638939077485242737856724303684125021495677737531895154459912252258206359978727464807140621507497854681501366244968687692515473502313219261737379726852834732682559226035377480337227640689851897501836688809567234301874364461742332577731123600843669897793834670655003246942000770214356526567358233077135592664822322097349408026729499986611735783768779639257780432509013803983445299251688256974545585655521147421491948698987734296392059078028119772404098204648719330677463532578317964286624345805625675157650620388363690971338308523072214475483368754583996941117879958284658588450148556272118136082607989796026263180429446978351065460218057955473000671996744840255147872731169313170209342474997127979052980395029665555739503459903908527074362685912622749230386327030338810264174905541804686797646416313510916739614486099288185987733639376654395577498487879195136412317317654581122780431716852553385829055974896885531994451793194629214920367802628785290589323536661762343264077873500811525994506765683515168649654832408427757029649625711206856419779720970916941388192422120094732061897716141458073304704202665403758070082336047748579458137958971274297342000278976822431959581060006787935866204724941438106506822883832074443947748691583870865602633417408199858196830121731432227310246636665855419089576810893253129868491308879752499980364547963411354926747020241987321321648401451065670234290777419432263975294156136578875290972706814957122079551591043617387043579157321122620586526921405537156673286847271331690878509968551878935646716011219030174569170515096096098975709874656686995950066929247970789807426829711468918595167434481310447411691406685336206646696838068520637506456601484778815375285917489775861629405293985851887456513303771475108728969260829856093720853032299922035602854300311496739057532127922175906778325618249202209645304219953358109244126460443778259171361525125982933721864380169315498751299889875161946666591086692918824687067238632341164240848624453002924257499974878817848809776802626993316687928652789965170036696261180145065965292558333640596934587374092815312862091962748269677596743120976090083338237301161600319752699891437258061770062771130721314051972283320593707171061609516450497556626212773272964003792124046280470985327786792883760245308131846194912847222026863801718823071390367756381923652611460549579208343873308952995196241382773034884791561406181555226376460754828362567645036140585605469370542570455207011786506147829748396127292195372108265503706758720817320502318685267006636522379106150638640536998178509297347874773180225276222742259026482847198586395959748528472050371688554401247580393115920626353632152837039312202222341002597762358150609628317159539906317178279873209521329726402476354731793688715554693326621928953832184741395621748130320595289492998982365718988681852595664156647785240207741545361918734170430164253122548597424978126814821761056251435774463246668455999073765474603598877799016735526038663085044474529583920613398641071166007540752056109696950917644238544650250291794930498392988616930249102535410523851207603633691649246069957040103447707277772497520320863225311797188068138215739946213439246702938155947615099737125413902612527783426667873549585727075872218491318566989616134563986255111537074951888384255002024267081357814620800906841027455866505626719234117709736120032007016671882971314656988223888682610331881136265120125426917412178734021078785232952890227263525365265143807581509102404813513917342389391873083205088507138184629597859256932821362806296011106019659134984992630600727980762149807470597515013244086337104454406049090498591750292409273207647983128385329434183157714932296806072625394910014786116067917321431824521025047319214410857679941487022615141664994434055938201764092242935635839676919790639556816926334001813659718372150838970102278604141301406022571417192692052157738580086211745946808034954313324947034785466529912008217287959731371309386323072065096981889282145154902258160414624675584653803782350991589429510910271004526554187949263185391911341157442984196255346233153813959574593944522638728221345241987403742737043513594925207504458017291824928954190028239059617291842347195971757121831336280776618380887692865507260028017603640064029247017860905210100324654128600796329468059087609601029643107461801694041035924142264020408375846833655315912273044511201469258340331818742479824532728211489250600743831250205118152356896972929387926714792144069789410808347233919230320752164023997586403144141395487907911088567058867656169952550957012050987593359342880212408738696964809408260608513808714429177132158756918818309647835133048281196446771406175443740042446073217159966575062957399851369160217932563337014459978200984107496313060918624505764253185129760355611094725697313368267444516205268893978590030103535460094871358835404374703019097614739199186816078663864931483517213163472512238935147750464494562238905806568828879527393380086454488235448967107183402747142929506851078687064339751437139047093441642041967057907755315530461345927926240865446009768092720529123007346682802434678592139814135603838509612899367254256135254792476571298613139230272725638771383302309154183288192820128705285503729013915492558243675076469855961172416837800483969585429375206250414182723106344436704327611590983164101032041214150638882590238706567478978989142544462932731347199316069368806684263825394866099615496721130289558321058573520697397968452940283041670514353601531914522399343305074156888225375239283978828500115250404583258583439828730274375905916851099079897494601269791963026653639490522882141603355184824609621045269903689824686562257179296595356533735880166391766745220904973114437595307030889619909158669218190517695891724567929020074565132843444462939918779727466372577270615993208828155481658438946754090617236611427707231411105346138930646976270974879698330993793381523735043431815019853831056704029779409484935384334297717174119847268787902923249967062457957552178576080950969759561389327000574947644690442658183103182628409094015871976073836330026844087777233058635897724260102368199217939034487327696836754059429234162620066592436095990199201107482739260872667876417093670826510679533798450587799326572828947702723363054079829775274373248100288269030159966234501631641856869877462980209146123182452520817846598911032820274925283892806676829899032469469717469709618714808220912716205860692772338216603188656475494004052608316853487539320437109458082206172899679839587876668996773541179903385013531924981476029485613037818615256174105636563728196449032402156074476125108033513838360721070375669255569101609872273206944013212372635420977523121379499043414831001308564888717169194193660858844314622275568767006709008282289191758067691178550477635495796867063146381004070496367533834252485349188428852067762216935529452444955959950408514799804878149535830205112489520473494661011254985545982975918356872829798067047498347437131516655235935464557497768528589257046425315745834611445832855432311244069824943210182812261959590489119908888150254091962063248726044115353045857322197962843814171697637792769118636605579174255393661250555590092974747795853214663859341317596744130648766204755020525900961607755576806268639047992843887500316024873795618884276500493269825384375170356293266335724876950804036419775577600085448427378595516524070258375589892712906299324730089498816227935472355584103301007955961036436596948810984691288462539099338201696843866471847397353283050952847818216443407859558644514438705360967390789924268730664914154204678971818883609377614165069195968619058782682200998450279068150796538842466625523087434589094276118515063808628334013284669379811397211219375121447618249264912612015886399964570781401936804610308576117735228123882611735217804720251018758393592855133411266245216598104589069970533210094714773431824878967385495454429157573139164327808168178242655762280597204370653280559711022024834067263653302645079576312803314517195620895827821502636874162839515935588053974994360134942162354654845242083238443870562589014360601586555099629254376651291231240433296177706720215439647192573406939942353744589936371171579162304056203752151479373836870211278990875233906397627668892996403615050597576560454502780442923232015538151544423510526165048656364059540404620675550304639525820821376897161231375778431486722054445053786177624592212553997401175278463941330230673815141407214558934588861466649496196491879610811847424395608185904085901018073192687832341869537974036964881232900068316890384324957953760586520967275145880942783041604125815958468932122348211262754438019845416215694716346190667349795219435799316063967587196988694448758861369242637632586379909155107924951543494492495701875566172651144666289770135092944136028191271977250970109585097883125037495317899165991476316967190880804247554973251152189395758056983750838298965270483516727473358649539304695961279908146170262266797512796198314148755931072202564893786116253987699967468827548983139048909580091250695940649020005303849946424899241446667262147700227924466347999741722947601588059204981050334589268719916069413855050172323699153559061337206055617344284561272835953666754537331774650580034920088078135745724908958611822992264214852996058195761085440767469499417451128860071737714257227403686176537036288043456378488684758015811742333798177979433658138130188904437609258028261758715219078378270798129090090090657961517023493886656116009557940389296479068660225475092269909625606611580819167625792113727012636226212692489032375547042232811548464756339294560428697996636203939765026630611440898614691784721530024048237590394003707291472352842303837934035429977817093687141276128840759118238824344110769011047900539437807674849261611865830402360508215106543319444129669400992955759879240711633936380864118275585358405896047021704970113437654796332305372792321474055480472661380656930762643700251550888722395904499864484074032706890356193795554145412079186426790595467324730148268555052319906334902358988151877171143224528707470399400467286534137961727428495594485116676851754603587763761122425947387734080570113342279455152711473163409241032200162048196220478585565489000084163033330742985150533998618492771574511368898738419134494103292574762974957555668071618806633434819675085404640511459370418894496058185402888479977854349600598131858917478145013699574828003917133344132988544033727160926256291925485010996209604187627015290844454738068291408842906426795787839736591356656186987866331673772129297906732213233922606203362879908392061869845939298769402613734743467844650623593919068764028124326966205454121163121568291124275583940567603288576517877941630393957536615817773595343110067131550037231683059039311937004833604773146148646825713089173876104018118849280160499702427939095233123566872714695263805404419414768142293852065706277639133172415602023070290824735487782509089234948101372277396511530777367105538976514202154910339299394663974041398280897995095106943522366614606783759139730038650470293340990326249072126651793638600582457132874873528856145931529233842267622030098542161512502810993838009650889937386327026414836071033175941027697550882336884470609184561936067208651094602213459926393605301529174189163280595373323760606951400263119957276493925763869340936776900290848073159474310198380414361821200583489211683351189047107216297241555132813987858925694244065960872754155355460249329557080465409710644962598551351689790901105387388018137790003345645768248973571772121336669990819022014482003518117202055560090030020628557574088722212314957383175056093292721778967289991399524178174821897741673288285719812532859508094177337867673439581402095079072071764793740713146965453230331717018908374558413032716107166487565851971482581162420113961817334634107569462242463044976021661255159943594323262695369429687168364511697048090750061545999261635938868417141358915480451071230212171210312438367570919854845520774521591182686954743710329348391518345116368533349193920129294034930635049495202165669349154033140382239002177385118819339417396548190227369684230364398402597980517619173419079809097706633971850692618310506263082860055933066496322066709578491494101089418240228351538818789615136387338300267147041035838120422092277426936190613684657040515279266173833872590386693984988940671721603765806423750571054746786974216955180491524016796037594296219592391162710814466586771726171714684526745918562027818262030947807992969192969033144272251031458374221495719937761732555589869155997784532625611222655753453766693655055594697243717087102076891690728558385340725179538387246236840639116594223106257934646856001313531141701769543873969285914951570211228295713326158960887589483946295579209760217079250681987222096325251545708281098559104612676045591354484285263827830131561976487766873238677959728569969815608008058241398648775533159475663249964461508986413797262471414058502724191962642850288581430530038460992037451809743702722645742701764411582604982782572703887407339807099952850467963464352573343199466538595415342329875714821034581211630229932020995818413576146632837061337478146542781281811894826161559886884128221209984773616140216566343113407304961717988997977361027276152793935763153643367026313776890938910850824815830802782439589332210968727154425583058360131972711971749460796330921602828456770193752177952417124405336082424543459118370411695877802382375715570240257611678300243245899102982288216829332787784878210047145926547529805428275579139121816387883467911541278274744316269075963092271240115638940873206864802454490525024423800703375488127942557575562390239657407302089083352972559605128216484724436719512887239996427267196590257302008492049338977732022449282145288413189916613628892873455931133334744901301215588886549981789779111790851801461719241208313073188890829243752474538182638075526390731499455114641578117505046883922320169451578228747050843168061246736326587384028322518158170777353278898935353179113055618684525442387560864710301145320012802610281323046273558589053373092941042789255422114178037678066213329558866469921117617300048611005241865670148435544735625059928315006470553170298081402119568665999259400701595432914672149675505107585307298748278127189478133206915497784966000778986963461900745345005471480300937238496993097169564760549455968296277319485806583863375075586911575740049327615617204517704501908753811003872973830723139231126585958909475733145884794380402380765246109776810761965159747840989494326243257016694387747082912583653555830035260672044113395163544085580036029476420302803639226283423383388739212827617063933228525527636066081951338325527552383686786727812527116982074654088235413906361428272808285679594903834440407868411218084982151784552610345122875700266978069930797304454942805676064487317865593439493765812107054424933610104882281607247407552157244667140389338599993552566264165966684339918474733750683894819513940495733326768556592401088373757014503589480854304074923091431146457770390661922856511136931084538448764278698264374095891172869925153079136971993000867508263140512967186405521143986391351780336269345573650352579723932244612516320660145653309225834276365659824127442711597865099046925845393069824948987516773886746229546730450209857734293074258318418406913413346653915373964092142303813865659517181689372573408302157779482457227447157955322225199109840729288559743788336149709088889149105631176770222999734079561955031162375874743512524324865554006018445188191465474137801655537669732751918421770491809724267399407188391236012188137411129991230596736303861706159437617387386635853879307705271656202262937396506025387569664586898519428196490163701936335401582152797541334055819642140346332132701126836314259128355779565296007884383252816143633980422758643180513031917935506942295571066354557591669315367615496361847025751896862638306090420134141895756263978786038528496779913247225299984428560401113733722975627682093498555161391433947224402810338003420036646407205848815921032704932423635359762378008895466148527765513000730944618803461404272832060810081320913121732788208362690031317538742336605317229540752452700457755357174195650109946375760851575900850404036961502860481831976701970078771998772472793705473174246882083952032215345776454888990546170639531834309480787179250950427703433389266036410491363037380178991539637528696433974847509787410929917024220863504788079905204071834709026450227628346484420276384220540902964133061401146109014922141665444551752336001362151307961312849019560623599804354470116732746504392061286287234085968981837548389084555003724620028506012698799475150596789638399278694376252853183082631157651578363103246887001363307525169455373930554876614824919989527881356011798807126108237358594127214634170168099721610656391760934519983756405408969619783857753582826091132225655184719280099003632862885874166321162266907777127512629388929786268623275772202787198655893688130035959337777757197037599245400484635315639914093915861440372771249399934916129150017962096236635161828481824103129223808901355918615623807068285730394332497864658815991091302305287084230654205836765579880173473453046052329274149507961016760057261796171442233848944153466688696547978816872014908082274899338324746154335085087800974556714386189619952222928176181540694359175001148800151139472432740871166115055716954234682933313847719009155007288404372510470767200225346223119674031554881852399617153857985559409313118796912283055830533933932575450968841326214008718441738731248375292967522865902893629049475638633788860520589461068655000434466790081463952150335209659118854836267896232132511059521549171919764749353408682675152096234089276022972020984170909788122821810406595496013396483423805464426729764444943602115588352644486503999842808850712655087533557014097212617803325150918673949437271590343750595846275542686119760875922090271204473696393361757589090355462238351435668999940446181251625444747992150777751588345374732609017867253679631497891238612538892475525940691275167467889152778407305911176706126316657263829506350764367580979106367947169513756184348833021290230389331454466752487685472213458453436150355446491572256355139627873733514628607792607341877462950512230197753602136274278480824918043010319411419753664974170174877645548151273203536576500126539364131922469696822307627084166545442829831833131093285895513109078961686465520564439377673438876707023604190060615597924695259082307974520616080200927321945519992477201043520262273653038869271318812142014250458953898765516992062283322558911841546632260043723145055592061580895867191704003986432391125063848872074289967867592764950522378892101453328463099609052210667619437257786652089063461254693968734108713281022653647884597806349452201667999301061257822085702614829021895350602208613054285387650150645884423570558343025616363618070979911261531215092552120731835753234426739532582123558323258895491861576548257335144361585872266049499738005389178064475218842056595865200665093996782867453787023277356867011819090250813458648587504928816763305614351820152882179236106621587274483252155396893435191348027158033877075826335762342442575169803879970311842185333698148445313183607720296014163099041372192110234865423323728353153091839260159215927300170732792387495706921120938246878627752637476320086298169132973470212579116823513070600768457876508555966190287577541220215681045884628294489068315282617150497155990601457201161403222892252958253388194699589861289894521084212315347152720478013275392159278745502261858000883687602460202326431353546017167715300903049483880916526417008710612127267724476627727658739652212484914977186331641328708862722127568687536712800158123811234739012464995097985604061488116983730810662923821748760595736072202436955070007628681254504811420570864248166311255697664467997665890396242048469494146789281007496050667767671480218639588780264181467670316904370427376352135280449694053362515646908300247905551589057641625334376630157059410537729393401287977495090258321925091594352484714101972626559282252728176246446599564808283213922663338869638275964907460432790972618790888516243028759329068967308013287600303481017237696721861881292069090519460540012300613223000719270070069097400866503613398858567023317942470422531171703899709702661794109989958143186460509191307960635889752878162503116665584825761543676437591391302042954868406779213499765111946417818259734815896478520398366011044283793901814845867101681882163008344650995197451828301587072549563929810355075176951124800526565270816954659896697204363746411808555332946556197440730318710220062349235420603493732938306238905359740660713104176590470628089416309850412712346880837267959287803789192800457799921656386226186027403529852311025145949445804914215800500707933244749439857490480176773827451861219929352433388172863113769182717319020303608881539075132569471974484954668130074433816433119458203608079185893252812405907935620849774868446907721507604149527567650796533741079128876941951075133419213023479815199565846718096096567811175512474541901060622248804018522452846431278891011212319809746309071101855251191569645474487999809347425988229121517195457393002524220612993857822131362367989782883283354189946874850797332122768191513187481853609171043858452457090373566693962556962990349648622476145626798632291189539821372890360150666965537036509488196550612719932297432822420244380598413429229222704613828140934729089652528932151256362189400472991374385158591027149136151899787163265359134184441423612799015072486179371651562155511429246638686016569562169956358699007372187757093565279337304042580198122688232619625245017826148228869490449957731239200252533872814888361710945394131724403709785951837555874272886468774388204437701821457343090567465107264290314381216483458414828495461597139688020719169320568534817975556588635594036455960752350436582351274987132103969389049157260231454118621322754709294871732206996946597517468583929282334331763418426639388043894036133329336559588374611259608759045189603523277728754902136173487904103684439080711944147392889776298249986779229993762253441981385188465188650429927402470766077305601356005091732141878270397858550647924203493648199424401533334973328137386365001282579319431221937933708090929526928317036438759976032305824994997636550046596492700668904490748245731295197501409982669781901835778539475131153197071636161014089354364919391638602592482492977400480130979075249735580217961829663266788858997149858601866987620415918357806591621590464706233861646825373695621614175960026467648925308173855566299981951299931963619554049716537503517950941775150680243621367326945983474459415556072974823446296034179970185786454703038293017505162860976093397513221459667185475128295131041517790836778339367832762206682249752650400327342943923582209479428647847583374580171543013354477825827576569588598032968567450904608688161520470353964832282109831224537132759257476527912853772949941552511704900611078828437058760539175089398408695879743927571160105692819904617616131697587707575481716625992407223914181559539691682812043432839601510224939048453825843243496440644401911520999458716726138047650356894175219673374176185509811656352536555261111850354257589118042524021919398931757364324222360018324702666568037246605321376256928940814060966544566473328782385731575537671863919560875742214412992227861218696122016759832835832732205084308260109911345582537832470923417606893396525082540918355457647699109419567398063513559566633928235463460920776350097990335282604555575281320902885297370429098932771852420383542490784798504261501459299090512793080585082945733477651307042855148857287649249804039925603643348591822424003679830447077641253447175731610913640066985788939842592607339540829964348089941493034348644660034462870319773390509691075449585682961953941123418253370949462701794429118319097285569486221064054814324976425318497111647512552526828071038198419597688517060845669575832831880368402821548176344707075781374668816129755799766380905802343336809952659897170422227327037845222047248185886558887005144633609756203544471753599228496659091427900436796274912541379005699926351557013878363253304634751432156931834349467534975483355474043489355105990823143733283594734371996876558207651617530796007923996285497919884760591585316614899958365559837092843087789147004190558656170872848629872795338007005356600688535771808619236064773970307006808791582098591099247479123156043169473633246450276874862277692087112196427210400453299457164798340620174262103505152475935794302782580278421900410024328024526228384580850805364087577050780624652566652678190712716257011588347004130672133791587313360930651762168776415706477193035218281934540670614318536488015859220049213278722282404096188698059464002119127044739145606846920979453782946367012105551115234228779969365310214067277951306564895027985092311466152663786249199414916597813881706357187311498367540348598335855669250043269957998253278944387049805762230102078174833078583942067191764594011330861370088465116686960208739347044868015487874779707416545354066492272161121659122341076380580184882313254630554635768965329287130178537276694611489888201381325550645650897324823246052578893324269826243635013531529774308566368411515856775323244962334683931710494778965987594919831415670137100641751309694186982651080617660950670904805919558696726748617125460500002032124706586941264042125925377220619973838223613501931060841318298011462793640716340576566940751850923138189740735398308436268467862527247223077710636547867098160434025256781621358230401377344610171716850648223047991742752284976396746318368247775698306238949837630289690937959724925019626168073019888273436367101494336178678807045311157394784684982798545126850752491583695609281841415531299916302538944080037169976876281856209757089944581547642958247060303841803900083030007948297632295023408722509930526682522922657396472854429485821513949354621169490588926953842409309656635186497871709947665001524743550607294877297758914305232130297272514471123151723637542832960723483884408067583422790593886717888426167314606244155953395465575624106776853886681925874950409084093831760012656586125743473271944461912805583055826464215215248575391077715465226491676740013885648127214648549683864634114448024553195497285246013938499951819120207183701823554498638222231852896913547788828648386770156927881206963416005108919075833801364322308404621594406043265939092412141176623939467435480036380815712139555736328793391462539059747967163145153924800000846578649976084859569065160560486290871575678034122735314580547248719139051755371212180516498279898732800223835478854320015403121794532550301673085080664808232411596759648937269126579036703722983339069898402305641175111503076013748990240742433240983666721235645654104654506998863033709953799077687155210693505980735054687696899531209459454810870694164700425841216481364408512076792177853286080849207021892224345709668873780779052548692579842141952185045634951706044833407741699683223987471842689486583663714177878549224032741962254217681198708343674686874346568507092264598299060378259965653929253268795068310383280248592293205241415781116247914789411116431215690536386477727858496132937299493335946911396906940072526705540878764161286465970788802571131397626586668019666753113863199160255581570772270061932620280169825152454070254425504375361271252202680890959717170035757461818263737417958254476871821923863072794576771351814061226472893802606514864401568857996272930198516760057314882803491687367482605239764734514117456428477440292832071006769977345547652179171794603716717583995399985499914676909089326715296232557618466406288100215528525826121949680029727557939832244306985995323456177620084063335138877013776877781867491727726459789835605717524422517563550451945014817864146967260165764770390108674462578395055031612353745498387474966375097841867182112664024496550019383655686576618763790774948447647678569973172333701566472074740676636154199747306885176555786393635157912359104507505312725637038778965415827070730937988789080231616762170007024705663926620109310329410532975611486434042749724305966162355753851671144175558059274255955596274022109982541031785163835683484189875157519105071636190145899631132290251572214454638820513932518072106652422574616460421750782966289454477365627870124974684468729568534103711800679317203644426088200818985863657633751283976242731701765077155316688320110963909453545004235547323567805926926664680471754429283256433737776347060660880557283724295942942540111098019009612094167698436525616816512918497395961277757163354353166305014768720408604172896041645303470995940826885549946043726016539187255376325451378916970561999887428508856979830467498508905675076038704414257302415340167968034634631003995573078811329828095174078930344019926812445148547917176507287867314939586832576301331377974048714348818199190488381478602001331329674758023108450118395825825230658189491488056954901062589755094804942064253681482168737612983404527831174071857786802672342248550811377610070368494833591538690363453925753103809940907736195901206627636869096824556914558424537472037704074776168054812774218119796077640333771662727956831948960588702406752073164235003583044157048694898362668488939990274745104717987019687775715596120195054883158331078177316972829582584279394114465520926265610927869314615457073425962882444355647416823933257599565574195496501058741775163872338633754552694097699724957142315132774216608943190114025664906478264810266129477521066188971719479616332639398948106378166334089735567087779679648963281186397867937403028333023802652373743155578171668643390754558692669983503030323087734249446259069530099469308139677279627037358468356444614109195286005970446743936233218732910842425726213031947812346710594460669049943515032753869314612739129397557518053818736518636193574494352366179605815114038542683359326951035697481497878808786626347378940881659306640002359095292100818089770635638278981761191201837515944169511251542416045474561269122307525212203496493628263600201476551931238560586591746262196463337355772544361815178613328864234518903849681175114518052634131925730806983998861959559237777522021381618107880642183498166575010246847535231463319742300166110937183267639913609813460182476887183155107790893804079882815924476264435177037942565004224004512969290739813505820068960339801731350941641594081369689903649336531763023024142016951615963623504417198350580705457807810514830320711756347611085462135806147067281817005955686413460796630807720692625288696545512498303201669633465231988627133557743863165754607955386680496806916463054086283878861294800761531886695835869199470103845946860324760266821716226913655615345883483555618326952261113605773604402052483567993501969864318558665300856879139524629801611276810780582057110976504667893799931465601081665259779088612422284042235212996869903241928407227404879922796100021485787920919003030759414779546656109772597454469827736980381829690063122028509301065740290562815354818444666280938580618377882693337075190437622967643802971179156289419853454426197108858013551577017809683455157428190515799609245290938131084108288933901598494326447920709964717729825185427385070989247892384596527606856283504365686657260247293957242757278299348763692605269568815498895342010424415306971578170000465058508641104973259134550408243611196830190495804199962167671601714762657527005712081546675184582271774724607648581757576838489808155515162792004897890623647890542288888695340083293803492327443659833007813970605119775666927355367148058815686112268735546987209817275203587789573518272402972138308782251809501361735792472749548481253825105531322843253002244340668442116958445457534548947816942491957258589682170649465170386099875455736345672404123027424025528479614899244466573992595497848817637291999326705035746871511558544139876991381910663011780187188508196638278693438646172344985620720164713643169719492603374918297914696398086551462876995807175294852822506702128311509929450207431807643345028102302637117514548508072280847374934176851961184790918422506580276339033280528181243173269358535991098960726653126396410360908197656738915627001615385898687351563719365129213534272057153006952389488834050539794526544234104519671534222746033310999370990345862318049398361073412772802036162314037204281487500354852493588889113064201860924841742952236306890018846611493147107660021390832166013719961169773699135007863655404871840377126844071889352834705142483926558107524452764795788464934154898238910129065733444628472886908826420308801299856375748340207515724884421859029863417028092258476828252808971912809229175426217923009765391318130538916602171709823344209393355316620639499532353530704641679864477059245906162939950007187379410849751782007386199192409476328542567623854911094763728194160588689970386406992600657135136263161150324894805893359841071161013646561993797873910287636505062730847565516599335295484577710350547733325949087331715000731489377225107920886443613875613082819570874440423010536606729792804903800636298456708782357678017355912305480134857818506658818117777655193101039746220568883125787886494520104146348509185835116831563181445706852293056973551975999743026239277909404154434659030445989959280920836680247701575401843422879097063020327032460767890680657137645195311454567667903179761967846817359570833048121440903963257708044283202618861976027693191370890637596503010247982975616845112852495780577294398175812852589513957410228560765614030427406693193494024783249636652285945815655337297668043251778186234785573579817545825454454405574681659302819634055344536478645321595716195612931703215296072231367192745419442561261592544210055917714279596665569992651161693878794969746475667057656332658942499165407311874575633464714096452334877501939605531133763047202975074860512729265603644102968412271931113796791929526013239109059485904566653772166058940735490676712522256219421061726181160666746953162969948638558322928350506856639250753419658848657711149408206556652894155591215612376182001927750527313894727827402582248072147859934950119946148875495547528808323871814648225821975589288048849103352749092806721456779905901277083129167405169488541133876107190035902126053125122167270629406939810314229950413712644300000848854421131626388057961103382230750415249893204445851413048354588696487838007374171344063182538022081865935182634160938426977122353903866677391928725324970942900607506197564868533893664713104173535620726843296174341659452923949054864561586704876927714613943896824520710180030921683307249130923253839109011372556289106673855890716718529566020087378555899792921582184308564121753104820589613737937411349329055182216250715267478628011994843387670283660873538531543676411995039417571447006845751870306704019033812867864238241037872629213918615771212951826851232405696995567332865470532280689724425674978082065277871176251411842652295966687778875271768988926259931335809020963643743661329555355909917922110811316571065981733940999217442604397245041165966809768622286934368826051520763668822951121844622312007110532646885050312476913974008763476459480717385790269290336117473355575154544341012412354226758818710796942457331830680789138567238737870601083716269522208206837699300428571016772908557284733397335676877468684387805128861212770125165909936516706034087140870982475541293505112429295492911304094923589618435458070686103738756055126377105699761783349233356277568876928183062098375412800404413419612299499833847868074126648045294147885143174787062040541288007125903198886390040788712424945887961590408626146427605802296453726795126862880661252750092877743775749047816575637439855872130617244568660555904049168840470182131537024687987578498925960363315556371439694492326554860382695625808544498947143039337701612551897541888307722243024236608482442537398950523642371352139849898378095695854579454269938851442351772301650273008144625898471511593713720445390742402292147647762031465298845128729212166256725775608737315612340796021299888933901051239353196539605327362130821523916420765239431577568456947295100017935757209242239619618451285796287922940194655585615207027704389494478876582627589833455945400121947430697016134773830919555185828766278633423558622406823744172568088374360760933582759144323597886938265673827902385209422245510804045572805068185845892391082887611420174817480141513999456009249779746789018524644405582349736604315965572584332645399264405384604562172082975596385549293215295637822065325580277359360931874732320364603306706533697757030001500257925278415690081472029367925098442339828081616467199513614151501673012747532179630213668526196665564306137668068091897711959571194733206925295035114589856871463869988555202062795249630337541556958223806465191722015799759574560046751136512945285600571686359616029036439184428029860581177903213536729741942623499553764647158572302186783327387837627406092217808852474859444497472972980538609727664816370276739243122122159035760664424665282723626233886749416725554568860958418327257685687178487078119393191330731475824619525305346033451995524495509022889122192720368641884930692933811852433120414410436328441790619708888431647564254025238945498279023290316233724981899227862695666795400474786404498223097965552730433904954300311807203629281754096637113216379937181956952137182499183064614912788010283965092523776716257350760738008053245166989752743853726676347837575815005295098446977348928999302483114046714716132090923445178837741969272709907956909955604726229726302544715798819449559264517534322669501817318740390600981785659037255684858609462334032051815443038997195546956006993250326044243733932514312130899173889331657950726134497293698730482282113715089397462595985941454416867917045272615790999543672113927505397628699158945034134817965526997711544228952024692315937101729031934139722157765320770749904422725101493231942733801738471563425429124786846375997728988764838419012975577869396508913102780316374433241524416662392111620866753215233719297118805713710988847925374251783075747357974005103651061819106422937045131512081710774371889615115484632805918010732753670324252153846369792890341989135038300227024034863546913958853385345241043833394703321673038732402503630666978131736459716681839907883708015316056124378874087342727315284932734089061824254882440198610160702345320874358119333777264082854477123089791953713889157935055043701434054172002551879115449303617158812234084799312662389041508279889291148917365604923321812473398750306441686380912440039959707981982635567888388032633959661507179833330158417939411054869198623579416186242435286110408538181691066724527464106221594859919067662115798977458907357327885679968374993522890216413671172632576597974432785404183604173629963319133902283746585639667021109290653032025220542164701147998667990796788534643048080953776418737511664894191667522692719055140192172036286917350495155785885752820583365479448178622884143249528903534713321525301161726689720179999631290588534475245629584657828212469635951753129611613549218839708901843605554377640761018957949921558326368430301604549972948200153614026876368117265242833349175625178381679064149027363920505856643900590071972043282360869012495225690641492976770374966142869014743786842676447933355853686063454745355682733486710757352037201939039070793669540090617988806974838231580192607112882611129400057466507294695923538676660405492863657817016178474386735598600955654212918578515397245563201624302566488600689272242875270617504016142422338736186192654240990853017071227723875941858291742629860555470037054692735446442056675538999674674416266676970814544430039141411596822744047988783954285453986333525393570193519651365456070232632106883494953450351714860309631003235847622351359450536904112030682955094219940429968584778318783121765137547548965614215929535951457005079080838727752068342518024327941688541940933324117728169790107436178003339094749923015109383819496806095788133101893376306606711684506040239749036796925495536982889771671237744052501007181783121103903803129639345064198486753242204321042148317721401608121147326003600271817815827983029868047116374609433092867819409461656552941461726266355378611347215588571218700938933813516619180236266029373925441573680252788983156056144898375926182073398426798187872269124645136600577762054372051583189710277580796099162853657614468084340076306975481165428146914355055123603686571018830733389255478304786627335554064010955082871283964194528684171179084553160092362533200971130418540980218519365407972995194304058725222460127747042437845109383713300684140536616949613939911902494002918231152362843301853250773572754318075705305184589424123486164418524853372791671906416725619473167639012099042340480231171085920469455050697269202087459239584737991218897140230485004228670858450440344333303531355826162412990373494417553412558176056833471713185234891727865248389234238607036398843844599270824642749017309297881734248499927318004300355031230831357895079512331957101661668694224336943886274480319698134545524848566796091520647539375992637897918665838608834893734219506635134831740426530944327606355946850599262356972288207149458645770510352933010560426770562293094014489322908664892890317547052020185221056984009610236964177000676372108197693642568708150425984231037921897488645760952995655385055055323952998699152633758407631848523234110314193860694582264897139563990897955878256582796667529664370055102544365248331567914308734776575524217892568753290203890982928478519636115857264238710353917497069752712583784479637866071716249458990061853658880647678588790668116781893289681290717083033980907290600118750607872772536925854701818967913917169445358783130962409003956145841847725006345680014763679828142754576258115615685822879664275807948700295828817305644153769148193580329751150247599198183872508558600497208584702511679205668866923603042126047694013957001665208490646331190422331127340796524975958059663505822161096974037305762701336685790894100975975639364285736139308802437983658667657572830240134615252398756717833912691023791301694383775433197437933044097606046256434838352500447943190123808410200589240681966201759987694924667514245991912634799323878790635672344236882156791319572862370842480742930933156870561584592517112408596183195447494278912361936449196261386398547464051511212118605461238781675136334558240392462339509842646592343535012942641648596995219201185597213292749056363870402077812658140001494812281794219662858683072722200951998117000272206756953943497411662884392016945592636698407625297862690481255403126007021862081881676677329122457153064437898434720902779255394084700319745032891634338761260074047789832978904805417282686249356214669201300434682868565142934976448034392436046824206009812901977246651738809424613432245862814188479335750924304832749526195791611947717832744481434336505383330608603709479652569759405824174775211291541369590918550266951169933539698317396841053698460888956243355082070142967254047566414218860507066212396520636235353519477287857618443995011208894213404593630526786655490456449673561768810327925101702961574613478495192069217316809130088375986440626862005287468202904364147211460561826626974684024525681668610903938891792227030089173152555303835402991083070281948780567961894792858557173173746589181083216022861221570347353532487133561956322391296292549509640272185412479808726043742291666799066957583172343916560732974923649828485857546794478958591150604016214547757485082350051589937167471220541056981773675311075166102221436876745534505852991538514725205889094088999701663634407160116641020800376678037336386392376837868958095190471995613708732899547078630958664320045573257654584124048815223636898570824701065650691524288562166707141944572517379386926519869543046224794991113109619318484605119407634093001572151732351451365417775163165417882605438642693321859769601234633874936166691485386754571901755108118541981523515688733978562837745499248028163786004272390416614034945677316664597830725982785000333566749389818547408092072228126548280050081934354324810779660059985671873574078464213091911919170688381354408425201891550096882517523314344995232469712107411759910309152321925225706703634506192946410260091950894785782547876061254076670385699374840837683630821479143037329733818675514533118142939258966655985428380383174055439795758317196685531285106049314633601194602293426843355306009576604041179645323884064436639927042023608155185787042431477726524820722602572048220790968841655033688992534620839891433006688481907730043065736289612054093838744808831330874009629413579017636940415103008682481081848822537938149483665180231800940909319955850759914888223716869708275655899393491352815132155385822933203201600333451657853257897549119317991466492204132511779002161059680881529496768620020135388396685716082239082186192825347052469444580186730415782767122733276695585339386681119688111771536851112465218418758043369326682459086903089745054193188493242247327214562460070441005340757832451872698804183318412234762420405653685189120817620147296165316180913799813823779466663918940363244544092672102403635686713272117421093547465142677356016540315582092992885348108410215878449362587172616535736833386828900120645169288051642724855123329554684061098674200310348600849527223430889426140798006869271791453975603037686255221792868892660569692142304861040938690115546388234977393705375825940268589336557681700382512665543309247419588967173521888762519473397918000594972076144353500276298414711901900747782914337878560780894366247036729268828122787442414502456480965623743534006638477708738205309177133733294927367952163345424974549372263631696683818431271233781435437453671994081322933880820902694215151146590345176253345366478994552105766031846374737967468384457040656088028154738758274416544206415997611828610461197632349100209803547230400150021171463705222405549064446282263884370454437857617628158623115218245931771314041136752168793341509864481931343829429306712427597346130728055665869542990025234639075102433850716149472147416656730347125997983618958723388276421866989428666420497221896935673628485929119794835171368303376433587419723747115592875834947393236074695934420872452173232531679995255060239670253922354828788726148106931835914682054942421435304606549368576120082361516442628392064639816510383677172857760918896360002363157850361932909860455698863703944072459048647983761795084694115157793240926402487709342403291290217437124099583296781111839525894179740808442422012279945857040507322761820557802946028007915591509121550708720114048616632962829648968423445074590939043817598231562312375156108901377915696982031558908352727086422357528808876608260855698602780713389836623467522903233455538239071596732431501448736192011273630743418027929784397169114143150718597915462847790184261713804436765813785184315639047852390873383033027317864564471947805443632872078173720806487604514473256773136268770320104575925021025893059388597914401921701629977143663150533473669240678673179624528296675408249656677370533650734276561256398641221982236394143527949412218817210858737848737456424640869149828254455823238088991205782851458089770122511036183813393412019749224307023925005144159046255025717053287427009010175298451010587668284917268253090489988196411849395093567400132867028476788266317344616973488824809333047335747391676598567853860060557154695763842039034408423696332760212377661112558935416988025702549410150032402827701358182087229810160147120247421427121614233323725849935039750718708398196052891221925998146520776576671336476559940221970111682223330548502171521922582963928238321028967927445010892631847446826719605356619706404317237453655986719208079320521315580575638326218861729403799470767084606505637266472106719580376957045396079734072823636275668141607919691895874157163232216669383073458712934174672386484274823519742021821008929329979312459328692320678260267024146195161285505086794373237436164349132703269121621213003715855334875564147057943322189170450209913851061862729753305701552857424503075745751165815730930105565329961523722499359240759898969274173214978792333731457319299344399479870254643350219880141352575941399909592892628267254783941576149744925627571695905827954954769602335784390047814771100174573013548768299143825233322738511429139080690208422418473524812705098978554664802260436651382712910411183300662131163248670821642107836739308445583492166353116421048350615013084407357303015195120993669181555681520208485154504710265921778920513529355914550947430086840643206058612845126396188370201031707926818701357000686740438766812900080587958072429378572139603745911695737599645344057765447674450968400169292524403625219971009578504663241994786076713382530447912150179889278851898454648006191734774607294887072435122160011091092489017592214585248751305192801833117262637471514796495253479162292849005850917940913876407449250805313713181382532575336350559122265372646715775460049678463475983258331093290578585916241874230044782776130562286491639255383849140820869884769677947725859431006697432094689889180734926297576640077999374605235620618794837826851231923560446306487979379449366462243228797189783603881213006317217443718217393886358520954180508293413970043188067145304816895069993152840322330887878947935394191501922360857539661649510336087482301827091511428599403083871490703756357806752671636526198182394714291965614975504072878281349413814075732126225310917885718139030941491155685668124733579512869048714169679596531517779664061584730099088626701770170851402096933226437721712915316838324356363300108831396809095296119857860684686033994933995826049603606658673155423085171549010157235893590125198428517059894668158253521130728882488845614806247722681029224682540134274306657682453746886800540878744310520042125430334945057285619687126172101019746080795165162524188165469874653341755202880744138674816085374524092120990069839181480199407565040758424083625847324515851080241314924893983260086345237027436866620838928127552024138897702892702818200351300999886454702206782437734592521593216537039523732337207899547616577092439492670739291682977215582739194776872716361662703974069914503614005944313837460621415826080030769503270307467217166959098330643172202042905491106555377727967317247225850003278559204467940217642620318839327450049829302057846734444883919081512081206073915535408243343037521867217850483184907123992565746740275110627544557265743357008751430283560944996147435562191727187534970799720894265164249420565286485006344896384949632117235959272615029303442444272520114914183591517281640003969729218366798235977280016622030398415266013193907289342406370188129088229697791811118731015000780462668798858034841050024692959139884961764236223871137969875179665581290005065395734868845599007201412167796469997945704750378031822167103698189261603632430374475713997822738857106489640688463584547403869004738916901520618766260572996528059914195256918243203368911038916389359736655602453390126778148868938329642865809430747046999409734596404039870339452529088749799100517961512031651619805472020457023499506515873638906198742273681011965176192700078795825106771607633334751317444101801773401958066914596819065471299462032001917406588916866915759032860553998655755980812537269132088622379095320096946468354050174209256575698392716117689042190861809983077163153365787043406177662409937217116665115599815262796109982943117176870706525770175068444059386980230284525460229333246573496757152592482148805113758812401851557408686263738324407222848798865240346352246474439967254070011553309908138579569156214002258140179110911407457199008831299210364259706726207176586871773127189441298347814640737078207937069752839818023358921521716093249239190870917887812854444297041033061472665156206232821836567746944286001260422785110464085100737687882409953777001858416482847018704926846077424916482578868518047071182320760278629274508961872799875674389755052933868136929667827970244225001781981432943049168959633355164901984893996744116637697766909799287079394277994401452798262493929578543282569036637131143145523873048517745215441623864557824577925861173813269922884401914115412329396138613836112712943836975838220721405872799510662854832836601546736626331541794363948892664075490481872452277026043078146526130466074645766622838801828739931015044007380852908013274300490262865936830724428179136520629859969424997202458095429467624841662914906589322635838424507936661899048307594900897540267283733779147227072862819272848561116761797261257787625344861860266261652761638607513974870592597802072983989874453371725809700101491606032837928179977354953804899108719130395107734433943427709773288887823111093093619271684286739526359811141877893173173459388818229128551481127748461169040123753805437953375453240040700925339049751858304780878334011175490503327616611778075510408333377611003566441654656516994154013302849283126398975338112454916714859175680321987951055555432150888502934212131992968697604625180629469589126551325926672580538752870910312815889832382326843401777874855402390349251727265499392459968881063026369224064937930790821235371901534133033181419965989115821370240920514281202756228203322850152608870049173804126486102919928595756013105883269925377263482743195745522628798606464129375967504001384828778577878743559777296800517572059753512184683777642955903627695374682064052577445800630876267465841446587261836699147746419797653064680805581532426093494538511953139841210919240175800787141313627600018030910059690199614790848314180545310765957149370145048275167403354412498690024969754261759019472292952758716063288904534107590427416870947418504696289091977617699372078563244033500421497848751931257608146393758430680262812371214046336417512334929565041465985928210428892423607963317817927683836317739926571861324382942380153963070536990773281898288207896236755310362640441360395604425783852706565633492182836199410000347024393065405829032238605814859872490491284796402895774269165572559353902136600583591024116068713179210745323031319258909263051019697010307541394309072230232224794802947984733311692434577769804093444469742963433232115292886651825175438412984920943022513108781191204239783961703988594511117309182207754152914638673471790644407525821130212683001692406764568963100453799217612837886194849088160521850394637406111487225191145693831893089319893909387344418937531870899004483706659118946283450658691829067694665144588542601455179861165311290368327309420131621001664571492890953611166361966679943482101640640145250978840080665807486218486242623509789282480777943099759787340503112517133211134166908140374967960608455318602905860319213966107797754690828455763702038368031012777655420322739188474913962177850686817868802708826116136915737438316729067167054619257459591899691184090186051522730923128006774265929273407002080197239204666285773742027322803114135858121850073053259680014743957915778989080896457893438066979555553152968715646075303134790567466077303391220225165991797791921523731214367701393890233508457171371192567343500713795290351726680732873054079240025988896211541223011117562369090753357124490298751865484334196880042238439874678746609339307280810164320984034317531991036325444762154604719653714171986304656770041281269498391330698662647047858887028950297643336362441470321329606496659893846776994220130267626935770234155142775225559297524818309280854383558979157456338434830422592136186876332721886137943943188298769551127548202390615738009235672069997696405808412427198265919638704645793246485297852330277269231519036953523030996836478399412017952731632364174442463562214559265267808005427260297615566473141470795945155799816706876431849402047864186765547409820081291700448692533078753454184234627348381432345105936031834163841913467336979322717876604513657604610845275608849465707713274937797598282804731973609729098586568916872962909648346949702974329459640879136500180527830162816511704698002323441016401738539058834683703583246957342283665373683201296128788881081581066780937893590459595993670107079463502943571941555085500503934827458951836062969841035888118372483457731210651406832437620125000402813108541495463664355423477647782282608325288089663529398107259502945987046814437791625546590331650044110781523479003237002219792603515390306465935611107029992596939193351307178873120613321796243394571984829564500693881963417055841641555858977554470513006697180895058845814553524532004478375126325885456099360478396104480769439674260369585563009706310698867942079274019600090899577937281107483002214026307839700498109529810671665981984480463833436856545699243402383145403994393810525661864755342762452720985392460364569757840563221335320445875716560662296902279167987789172827484004878839007912931012013056312987194420475170053900300853037998843350543928550314967688022550580594767820538744804604626445368393862564467930323423724230372473490594826429763944633219625056858283209573596014591884289218277952019748741533405236956182945679908306219703767476897132112900724190979964880690233727267539856237001817823340322781755691784166769895047544410020890332019031952988599866831681965071299387775131746295363810637349149034174011837391633994988842642034474808035922762355859365684263776496934171117918681966579879783970020539714548836244011626507090079452992854071708349063965018818858349532276973769785160286832526570924481402901936577970153666829614109690586166743555681897019219758273223877140192869979853111128582173394319223237609545472338283569444444176223297516062313335565624227416926624300834777747904676086940865418331005011156204231714446378643938730525694088991866411301676186603471768808214469204569634545049553456302366150401453101690935404485635841287282202639325300189056827591539389959622011766963391385579854942853719578262590629285973380491155237176738370537970559289904533128531031077511339896321683090642347287740953827489626388836999822949304783847585392986210530362265003046606003675864866205259199359251973775010081225212659050595556966880082666025349284506172424768012346977299528971026249833665512362525259913612404981868721252502747545805007716316102929314755713383065845098526025486462101158708678953402129637985527766066063187791590611144733499309976351789321571049093335110516434762053877102280407347325555073931003647181289384273508627013200557553705594691631936762658806671466438261722738393718665993845261157695966459155231117201681433496852938904246116601101050512197107449586272831927982460375400663489781508106121135669344727164102732524977970075942788811712239007836316000833773154075666812994077742133118035392764602177182832998572312593956812937786336799762656887481698509518488560741972612628562120348438579043891672097070998908033527560120122701366017772248830422179939512719823510338072784412838438017871797800630967901459743975677188039217199214993920564081412498434593953590405922853025718807582814089433223777121983611898852264327796075367170367585457738928376372492969402725211231848921286437505614502876427478537543732357488146800196650254550079196458609478755221240579505805449289626539503121895542082949060063899826931283033658500169089598659965208822637480977421838397650425043823000054196194387682203399399325108464768669829124112860339657179643918653450824888700105533578549873047836484486931516552901596887654564654316062990893686085395514455134011789468256747814241068494043498956669558097817120828848703988133793556208955356902260526850066639982865815736321671529297803659387115552511810319009066811888332548905004555401645911870867992569078548975974471874652172485379003383757918249758380800284548244942379746953198120293506836382550201902316675148959647458839810840768238095150210017332883882148841389104887846059751142925138434537896380059025847294549225218500761566094380600468779094203279726436174282620132154632941977542026707955319854208954110429566363035766586255872602158293033445003983392383877884193274689959661791318102115759350328109812981973058591443171199763317936225044020750661239665782928413171544217883583562384287569165519798176874740585674446405807327662297752569628260938000850596725270591238581611856437952725637937704157095800389617760656637240363809373895463148167500487885624834634767000637022431826132572699207421977243160691877663559096405891422994668018921978263019827963348091210724770310828492185794809177105565737518355242469698051392310699246115540749828931865036663994763975517151986353992070160968132513055287039348381446320622861494638349428248977791758628561088744157253727871575904294810342348143944109125424381146751786438925464870391779633180164490944519335565935238317600764542348758988924935581993623341743343659496516834413055103708422992345432842389176318831213012465676244524338649199227570648770959283686568853715814683172939475640949869470649579826497951356106637738574485808893452821949428684367768995119626239264677407009487576301343374694664831931431360148749550814455966972231934660196789098548409049564203761903410466034002919531743346703955534927373421482862167050468134908209349285632048354794441233773810337364078642436212809174125727523736056955473232388353923287150213770897992629462835670030532432809690541614410631967017712717310630593836467573723626521590278847231636589166880660434914824767592771347488496889962471330984651168130545532088323954730869531424264540651214300496881850756964949014190665777423201816897209808440749591084933328740586690933804515010874106744045023229747531155802837549050452802168712704655652010059632409426326852268305862416213051021477093982848121559097124438102168259158834329146941444146180455834107596206989249715069425931573944043527591288903897921406351628779480797520147441211363574821834521143743202198135294441014007814848495995894858710531241448388254756424724905397221063860457931086243035820699853870978558536652759107631078230002874718289052174216560884256783554113303301971259182272142365089433944510752538534000494634774191390730610101165607559583179525512832390240014065522478301464577932100164813695523176485677628688742414104785092592419831658871559538259872189853138002547505777327490890376931089734074931932922334729888527532408008682767387041429924393012390807504847229454459740702243349832835691531168627497463288917555541917919935422753728216893676756183837676536799087269131248463532227474807503417700251850920418806662550702974309053876731193470651954408580520852892936664875981605797584538000195204104724835071352471044523915767816432996700865766471232785007158046057330439897860803632336132405120612914698600508544698636829790512409718004750184295337419240027005345054136880355926713179773040520167167133912561643418117696553830015566533561604404590202849678968198387349073020894414168107949903118429518258976564016742245627509592339841704278711539080947248911851677389163800370853351393225459833152380649340726025481149801738825897342111015145328311635741723078702842125000436844073645598464008602652903617182692379755881242383111990168731203098807632210787848013352072086897903949245812054201846713473111137317303244547290619313516522437557325331120726908838856117977639202279151658694530221845844493101908430869742194377451194069135218161887186830340366494079875135334536750065827632910806502942581417062441979414542854827346114230536607035611688199644095325320792203710658299602368775925643948032424020270796858799098261913921370934744278626438485160364308741374884861133056753064359384358000882522392926713296151397833440834494574186511570244658286209106924672851058737296998522070451705350325728625531871470810259157595117229929450507255422523883197997099668183347457940121991258051619408837230781378134805501908139599064131249127733455237653379611433118254062891059448947529929155330184493453256567978649024673040608074433241921431004990094030017191725509901394007915309046340368022643763608137649535839875632389459283355295163629875080479207439060067878628044302978328962694646289970031441239254588539452520839291795432356575073255753350771967169638532207932722468479223625302764110007277430766914082605785627884235484326884948426945868274125590153995770634542048666075618985007673035571223507862516040574055102903378787364145915099749030497052488235034668163092179593718496887120010232998653926480940692839294136018805187250332112216980676948163740604940025171392375878484185759670480330700003355778394997287990110186554030737252508676035715124586173570827671585965585858747467871497431221313082050048125838777341249262304436125968983465345864271495959291727180047194963775651820791149974369968543062265334645454167028882332211682543952889672301817942092728971778903085657513752599823907312209668759270277499051459743149205859925621071165398166712302561246339268048908123991690010073740607972667036384926536839949849768592727910101001849349165584206829543851183652395702953057392000130068626279598093834811477010367206525416251314328971490849079468613423693233097425680655545385211841589817895713045269458241155351454551822632194137416953798934716827424909216929478984166569531394154599903592789341800181068484649781717382203961825134872751802951688835522896415474845382327663842421837376509244897456952987307618511308083859900404030266949057458344358435588973186983350544821677957965770818809343099265184633827775331709912682572522961847102767554867622402825341439935708825819743609025375102026735805402130283961000360546485498434430988404608830649479796865603660194716396402231308279096486837293247986712207114365670295158718302329457793468255338128047286003790683493301376610338505463084523753346494905748658615797592970015462982031573594517265640524409697954262398995571659815305438254506262545503234028085791199979705778078148573847498758186717076464580398153591840212993725963920868507806962873807191684981914246769597861274398194341191940323148425790583025166340929138081069273061444548045783152066507344416479834023878388748849406822777961613639888441795201467447023836281043619035985195427358858121734240597162860564856430462420407555309312645376657129906168734690980678095788375001978096952954315483053069738436033699942033933897964796222836713414516073636668893383011447928583911240103601064405520246107138807158327644478547612527934774857231859931188311852426347406717207350037442756836269229494060207578687306524516576360362263268953099929812447160958803686983930836179601264097829603584564241512686767982480450822346480771932558747182516801702017372361766019381885598149304740643940180338518499164179636605042490408458612027273232890471145216851601515929187075755880266747299544686073269242822938013167713417825372378524006817619438085219442073862875260084176331403516797651642767180703717136152840723923241550994400757071869682614618237872293718446829872218860121370872620367160742121198737255815317479329177586762266556785544609270774600742919253395887436819770714135718729108487173480420137782788768734458600003831681767397098307369444443257859240131555226053920920200048482364328040097712058308104164108614614671484958826802037291268083995411991083463551195368435874192481058704967648335656391632553042419149292998213029030762528917674627892979643116101228317876844745621997871211035915471201120837339686808504920587726001130720858769337855179328868696168989551994443649950941365729010114439247942804055288709489503876844464899807584343717974711307834602796012000583038480929860018569504418241679545270650001320875975562184343978190641895611937865062463171143194482938296192024398282165309841488595487868926386604894981865191427216982626159854427415297758464179943592205865213645949818707594287192881644456644167893924873215304998701467942314544326819450948596825826823947864356050187191950657318179598161872140165208018607041123174886524903268773568716850499770764678275788817165578114795512207584880038261462479701555467892605695173625320057256072856005971313222054709691099465137882114444922925180537895140694153232869677780428109026929347671757161774761569650331306717184153092156805880214684373121559951938404244152947108024998244432382341019556738695061963353685979989893462364553014633195497731846853748402413209883433884265726041800430184122921560830473202653798427852694276634589980705333262708147042991982776483356467223432734434311909667451326208025054345179649159045809327428599529512788500405390731821992424749312299315603749997829783818267454787184686059774458569104932033179280094127431880646958938853045668922646873412815778743173335758803622819039266164222685914289317764053494195551602281731728240863206643479085703682452927761108971129509575255377926655482791245098058947405019152969181166230185768326608677990400329989254113697952908003192187568595949459652527501022545367515177734808343773913122557628840386663844803296535410763860581500625042635397247559318117118342963176458391083549231038390222918740477363378669140101238296332034850949521744447561554674614085579355669985751592988376167935895150336017475109454603432803008229477775866383212509664243863262320774489771828398969741943105788543413931351446829124068233050278774515459909660121814969053848829619601172465241013076594299990286511113278741506604305722096583931214460412898877269797840479596262947089008861704162727811599823908247100296860131198913122676913121267831651369325861864039586582102544109688553278136279664375648383235546917778824659875993241461684291258316479280063743747835868344509936379646698547248023158314246908238881805261310625492064463014699770966070909499019306526529171483033060443763432121394436620827501691201130156858672219145274417143329241212508008353886332236633032279616048710531065675749128022092131940831378031244512987652939174695702105072310492199553747496409469785440101141074751454303400919098873747929164100145587360312266779897804081571378869044402233463746872164677910391631920223388484488446756091097579035639009888378150432305638157727171613650054702754859198028538293355037010210131407874718308268577953873402558599704954321022583641430632242932725785666454031179904617495127219581234901146049665441495213940928607497223990758274084006242430560321669311731395935263778279590479031366338782694403764358196918275198585593522031334450686619707255352077625251150567471708591216530608155530226072107633970505445645918018605817423294466944536707455274429576064850444664260827502182801277718460565170889254995102781635105767065670914488128341160846196352043720049990053817553462479011956181513150619292428983931274572752698114648018672977952865383401199298619333251931177662497386745106528330263716992457026036326431642580929159344703220953175148710503109815510517747653150544677774147145414362834416118288403181146385786933712063720581730980906276869859166462295938909377728087239979589301190849332950998600565336915076522404331965397614685340099561664589923196248343725049043549509986447036806986396838744311277386110950106004078280846582819620439461762244561481972234970883438406209565328301016181684060603058277017750610183771315351173672866021793878475219622133420019725626818059347700979525993242567952868398871827763456328421925744669394570598903571396909296994374161788992482309251518990405012867730192614600974841200377640149599517162684710883071297110842065639952266911934359749778293161722383144306903962608524620574744359284681160236633661177928683898227065729648986863090043696537581883793599282476930344002954612269152361312887413438564708032664564331214638228788361874813440922934144999489797541564328456128683876633622229678104617024578351380945795235044980212826162827443766454220225704910350792440417424979155481310327508483638778014738248414993811387495669715912948603463432958243107549800003952578065693721747640159443746525740251616358179711179858377036675304200073388900169793864652265603055909047938641006590690615070597745870603985035796364706160012866726404203596387469847803099664224598143437145126393318666831534439569626360798605047466944292283255246708945684904750065684213629997914870352829893961480801195098559955244200097099560646542042799987362131443497860026136631652658582171877420381589407737773131577030674354919570631384907023704095765901704093186187365386172169350622344339848614189694286571563912186569500213205769524529281406998369108118799200130593757435418908433245874688200677519402901187170278751563676412872227744569928366276966361898334040850789004964285578666671576351185917674596044813438193052028643727804012693467599761905107575737983574256190860065542354515312882801766915033193059131055816238012065689208041726263803533887819236760457680910473902164164232364031609482001878885109153688198443897072679048648656450927794610108036942566495747326919882068469854257303193203129342653393702516517863957741146609629080538278783871780663842718851206581600631233955379919956160533149778388527985831689260183303700172261313200719959162342682817324360162674429841558091421610355284463548592613335529316611674216055303397291336561114815582270695901912349858003529704147029559913877539796807427271307732013513198192173509525064705861796322045264925211546071539820409351925655038541837220221986871727308568066443809013586688771901688232938315255494381055731149355705323364223113709768709468566316522576242994347848336909457902206113828954083286352862560879829485724733393303006409486279164892449282484957576188124487180316426084697287797719323706775031276951237337414369324520605678949742578290800018644860751141367511554167474485032203533125252632271807142626696204060511760919156785652969410899931555543688083621302518717388794118633965959325835674690074138295310373883414588377889768697915375211298851211594593806511741267330347490597080939783951764528009810416870156099445152937654940147687618538231039586912539317690614430186908525336270230938875864771207740992487653366435635813168600305824244417181087982828831120605777484043914069482941383844542364312231723035047113936799121646210751060535201065796157828712082880960545498686095419575402581470693008402223719928949425114945973516680990106864214604790673938678630707204229533423397512147424753885586958861736611271971640361370110784975985937310713008703100003994689197696619166471017077430394639731962209032491671367104140390961883843616118219239326733370439561809337185523344559188559044256558779764114581036265758633480213356812042968631025340779937803511440693848541753785056402396541447851608961110360820261757404145923382676687252721893742860429037295062068172620929321179316435439709238568046619188728838095727348451538016272171697274377881631222160087601514833386219344797410680604276808585674353063961081168773722358169037334401958642439041209956031747866363908741135085430296506853842466786348267091584694279774475466668685056224532271837285585383413927016817740881031965399231906409463452759215222223071889085595429243630647393670821088079954751658697210223000602812095110497894080705532335828041108988007070342825671894069866676217937863023614052949475562223552252402474557106173342477690811639710288051800983822033601928308736382795325517550840224670901942490617328748183966167083819999509096867782821970163447675906687188038494492051774453346939520354887840526055941978315257076168398822453465696751873523557939725221524988803628387491588644996211489182606398357739177712019255716258748728323420493891773216517687372301210764241053572265089006038513643556606714380922883836431875558966610124718758821324622798181246698308060558886924763856899658073596855407158021803034988189783550307924430334364517473865621993055184737813541757342243991373166871491233163479772342930022993182435641245389102169820048040319728061469596044924113045592561467265270196925870041873146000437972451425417443573204300179497289451912063104685476164262381628394081261517548826757934536118223557410150498197082770390617588796275318326580212904112126802767580561515819274668190318958766680631675075582329451233116481351341667310180715700278040907388243602497842513457192478235215735099523962069177930371009239877483493551510542452828061191094996645893270726705641621855661671588203737324896909713841774866438181426780155610539786842540505336291280551355661475603585412295103346923553418571700747367770033906807741026920966230877980531994326819396718190187137535391611787441390972701872791125502471107582999234339144101587929378672822650556162206325922818694140898805580118507619127111122423371177484015944340259474826873943185027467233473535506803526785216182923381217701094057543101195062235828095982319692376419843513513208842181616502624797603886053964269471882902819521798574304957910130521466462046331273871829654549950818646091068169592581622803006374454263460400161764928246441461391595481938857498108127242724814072756018885281491173879048204458387277795460209830646663172463814531719059490307133903424484373667384685045588861111642477066328534624113538462447034892848533702903246557988495247586134694685502879991021606962294165352753075171292861599370271372410200207241579692350857831504950365561527546697380378896721271663946135942054057880807135181787178570274927315863330687080762327417546714460413075785957088117470807815068451638578597001846057561773650014196982370982806038087147740642793944896097641842895132861435342277465264675102237567903603486768177960679009655999177924168811685816754721809734954534117123745746344591554571014984153749386648725750542796229112379115413640841526410460689261117797250012320464193455770988107035834477476034343681946379783267748521753984630040966783883487495670563212491562425687894401594786969517637971130337132715181041494942043131885371935269701898265608243461698253206060594127490797528934841447911692338115417902435922365925420169225251172681725676807462209768991781968202382596682399450749727865204173938460305781789508270383831799192342354021826260083301368229692676965289229204465730382200181244878283362566341046322500120227696355529345457774324404556544475062485128018326374164605810946713763985976042144286095577524184463831376748161196123681224961731836548620460431173860271129387277352582042467631763407144528508324172204774149474081700916437655133922031888510077621928593078663187583368250005038726652089810234389607635672611941878512205625101310833606413541066358606013739346082235515224082963275260176854445763334219633196274065041191044885793804955066161467093780449874712882384402020379692945832868063746236382555248950834442945108408784120483823816959506389323401332207085954420568581128557370343128880634180421248140089311655705713033796755204279663175585377936226976057283443807152572725294629394048761301718816741879148732115557255251658008220303006575888157350818694101123650030270547863914499726832210521333024074594056232115711427947075718487643293656701117146647176049707883674184054716746306163479198045283541239000810215710053904362469058304750540702740550837992670115724243573233608360102639633897641576993892796923570561620196760681361415356761325480336779146174062341327646612412583374068554589207460169158798135969076289627598865413714945276334441040780211911565286943425818312736708732100932962851741005098775075082774401239895669235932139349968042935200666895568172360734071409478460568948545989001622347598434957711892353982507719924149024583653952740366278093754597869118786870518542388758477063974201610942289595123651453682836159998187362237427601958979559664240083338776830511351571331577797767714304815444524974598875471654454720152371213308591880529703034006775590084295403745203273863377066242966172261202579445314858067164737499238922025553934268982064496223736391946370912248154416804120381504956436514720757505109787844530740218839947777524808095946617051991856442947054246733428629757690397746129377882910427160265645502551063115535419087594032514671615560487850003555257744948647643075727645515646774549138118246615712360609646346674524346677859943453952441711567681382999221489522331756911005705668474104093607823249506925244204403478757568424472350681293109140972009428455819087950808623679211323765110588255107213922756528636107685997738454033900925818239200763554908013182068704179489282485576583395447619232903419145669904821461880442123970798804945456834794700637409331190044723371185198092850159050236550137409888342213311802960091035482225137749792449520044254136561847766463927238873870539910420443458216642233832412888071860222666981986064989999841539097269278996789438532537258641154428448211715057619894857194201584522567106405168424489184923775133422682267269955353354633226683437235709625133305788067655863815089116138136506808468518743976876782937506534736831585991340356223447383133989964504597119332254110973976051533869744491904695123659344257291219723540408433756315728697443057344559749609918678164041406509085522159838776384244164897905975036830122306315324385593835708124320038621462450021766393474853105994303483234075686261629512162963300798882327015484178400254126057743357822551616739999726033128588523712278079671755445179117312713930422987373494894034810613300761798454569616457087880935020412834125678808357603452874148361550035635892503461677754255232814450237834781653653678798540870669667863431747534589956625457124521221709868592916241842935671877457242622066061785151755212923181994028646927467239083699114934468319090658786948782270731219128677838151929543582461273820024665307399018094263101294956249692331892026794434845290183760020155526849175364550544615790725243407471759848667131048052609191244908751624395756922214797328802506165061374093789800166919872420544211245116924476490431790712504929472781607375044539622149222220683963154812494334759779217478401370187549848876897939713061430538535838722643878789614873961107204982969155092045026807226333765494349967754067899938521193175569731763325580406915790363687860890967218037088185166377318555079687148045868824586239879218051886744156230934848125571594113626567446114991640905638553774708561445448027069226932214495765671867896678713162928011440494346956498997716883185937760381166530900359177557563244161714622362093221640438629838461817694725896373391687010827540303255273644041847718916267582097726654437686245282224082985479992645087240278742803193590713492759596694499925547166872113352829984348876321464839990297647606947478013836329062415027945975490078883049772592265395457288322232996892241204005684754300482912520520394105189529250372835846324202217033187136100988803067264043799195877153318118075365648615609906283899625679093322581697796897035860321825332014465834935615625762608095363592997595273066952645726624596689610517176312660728894493222841067693203307279986670047377605110311502248006266553086561897017841219189557184982158979712790327549432412674535531354997883837349235097536837971973462207747697383245742519094390256910452644778922766623575391509393875246423416893697276920251111906260472418080360689748533287726168878866524501732207512563665551587394408149699682048532834798080921481284236525522410564390389427139128573116751596210923208948382561889330410915518602818282268072087497412906910152749271313449247629826567556274017539222380524421251324048251569435666099262395878924101528182029085977992426692514689879408704504754981676476744455232027835459010596715483776073241078621236381805240912688862803891569523513236095078648836349952144835288077895257643862728949403696743049816972784401061819566055242722661480797410784230825047416357561480935010612431255936080638658050157548206984453972464139120612640662125759095536767102173361787647522725605523430197680584386310029786774696264319418660833697330570746529304383658129611437487070492351674002131899606790408972594107711126790963734010832981395047896565982174739089860242683851865366567814235673874398634584805551381460302038221030343702925019497597986790045628232778678244436923118184652300609609272521781897395065839566708502092322771261377727030891535547711506391295357505475753954084482623453452180470527102388164869139526795746354994389666418273644450666149020544467005274987071779282852389044187734315691421384211137083158112112377427257236506063353899901744093323595221786464207396541905971762984745369186545151450410274638389251139593213779758143453632264361231069288802207077441005029857455833562355729030736874136093132656959107247054498260440607321550334575160258978224814622199168679823909986317172722334415488048358701999708152342243828648490359655818801371726981611518357325417933752205744322285084938057149160375905992105905849838320295040174547687691677556047944813945856465009089634049096399131174746339377410273171352960921823546903877938243455085203289344652388579011629977174314257775821760108341803430311950939450818305576936315037937542044048042462345379180294895615677847199695221884293120281780455799511576954990959855663887800110375791763613426658278188051532063210512336602210247259464390381365914359666793256775365872503186349692670374299135657675452267372981562440472572748626138533615002663811603243682435656951457579015735218989105965803407669179853774442261419076835339822227281430253156952336593656605941239195023069906223611755987252102703736221956714155434710132185734293539719947567316923853307867960585421258742295670482148255588254203193791492908315091141460871268559002336708844069946849215410289566120470602903214349691975143945921983090769350769006308923661118617197243578181254452915220572110150962798466511165001741006296385314150533564175173204904570821998963088221343501696314285172282464585842999980555467830696004694717977061746195102683785203187227364141820324003827384772253838348190761274763781542980896628069581663328931532829085766213421884852740467992534080067517896419777559139942936620024948687729456149589941304949023693326462977432319012323142969331017164110184515798293933657976058398775516640331639518825761843855328662662803548068876873603367193807263281396073483192051246639176275305965688775534162105115336456199270326068843807477528693930626741879060258271971402829619374883905383148543499045241014750967433390652577610776274968302401899274146693718438953134802414729585390602748238782426528844333739631863285224936695274727532252366336989102859178468844546572978567168015996752403668348686298804343451990596092095926089878285441802244121707087694907542099815724937716584251410751105324875425051337796186705255759630676939459678206640050375173893740300114963894542023145504013230649350967449483460706679934482161728545462071601943293688801571308377863582750848660899406658930428858659221596495505773801521201148969039994733089877089028364164214062853052507489189550037003911562372776102080779725427887118684391617813104604832718532984964621656524934970259141207072781554733081863051684537569134943090337705598804938944685183944826450099416510369315833026876659920326594483260392590513865041034682226371314268234787943275188557945201417144485796589765507966636802268065064462892646087702626752204914075929675432523961046081527222914096384576362980442017535029749405237688707011230527224257405986257735178017638681419298036134560867562203930400893047781807988488709673748893992169238838967526082925174863437265846237572952104595701072779243058976034361208922266887949431942185825394545686057011902739740711730219078580655266725324536915707271143435137152307898256567414331299751215271634902082185506928514824281204930672607105417748206358524936442841053975784542359306699047220719506410943765698094385437293821011976381208400691036537218998107482660672871657742345589115654788580200552745746794868970735752349270128196957822784575416359828023571147719397014078187438225280752157793502973298171258570130641538589204990929856250374505522189098999814002159852673393758339730586561566262951147324041941329536843531125045612063845343569860611191599726074942213319326250782568318150607867581139023092689687115442537455422221072503017492035767698388486803607496885330793976314441699948019358609716848854487803630207652410623011342257221739312154636144138443601789267279004022391754663788988357705396440839594074324254993668883214131294083706867253153301599035793651700200162736010172986619497502882608815992647919209665008721279884242857339197222575728515471115637261132039964572873929156561948412825811026170028778866821587822499261801788921480943847231632157578421374515216394326756397192259370326465127163099258034810465950025432132444911345812976573979159185230210426578127489486807369656406324267261024017143449458706653547321476417956572777841670245943258735633321755351184951811314364938701468072178940566168164198564639247766568844939489694113896789119541597414543903460923965456876466447879733100449251016601947122145796253201234648029039204789415050164817575222389805622874189948091826015914102317532596291181627357487275475585721890888893446482358211887036953639800771292872169647903520532038824261098851451943707203367009916507897215651631353439055145109930259477475184056750001359216803454978103577971884369256994399405473181414249597864657793331636362810287486231227113845781168863716504911669375524033379372867767530612038253214626707892969508627956230189534629586873390723704504867396883533462683830039566581491217004047602402391997563457748571230923100221018166750055389150627933767495638093173043981820939395601660477649465274120901458613930307546319800256617190937663085518587555667443960206215148191980293655185130655537036063520817503083020069459653666383390321194978453941825830633692842609383793792550563970283371639008354314151739440133838926802058234538316079164103639112572397575557616471734397167792997865820534284925595608512014342818491457584531277661737020240603908529286971848707530983126152401935816933868190616179028172968227687211998589616582466453814115059038565943507759164580322746766744034450464384216534254670099725974737928327671603695648366328439810213012344285557807886374819644705830961717716662169949622572039550790137849667129335006315791207896048978313813192206456624322661197714471135200532300946929028321729571882276723253327191366869338832916695261503068741812605328238565605970346723016015575651802993422465384956917782054941307843807290321000425664992281827085195395635205355874222793058200924315463074718269138744365074711889564670903842994907078099741041553216214070999578649499022947653102927083194271162479564696013825959234155966835259852293238754971605714928334745388052283401313604649660384574134684545171285000089132268720267123676944962568278737564497358601481303023727833887676688858691958389220916142439767970896207593447998702752849088014418292632240503858930186331967219534305474760455060660847278098332759086645200106639751659648712760756394040967847827322380835687614702843465565453258197003495991554779849936094675314331436878516195694936294465501483461091967366389662872621661299806568752128414770643733211962883705039019517838569614819907594234924710502547103204179473719307526049533368684326087739843886498351809829897222548700406430654504762846435249844241587806113458634552476350625879477568133869693578659754740686878260698789457022103154801072421079258519782017876136340656552070047722644925107196946343644888970657414379540139169393859207031883989116557391868562905084080637372951653287923092599558678916342351460660785726115579463552503236723384580612544626867870097597750239447182138966944177109855585326230396925147898271923303291099231557396198030809992689359125351503193250394312724188433652040468227552358593128479704742182429146833801237958156982669799181717967541564626478770480583123898783841503092715182465529839183674452687143255402848071630023209959824514074521181452382103791089226158751474640199445743387697223682238768365970108824640538767983499366473399874104690123189884842183681491901785571266214144004198597951932372799497074276788982586284115759803574769701247173975687897244899242710795001121262605168821656464923164562612784214651610570768440297404853238237250038488645167727633235562589755526185309904378498580510501175313330996389744214805323256203686781232720378660595241673071774877318690059002991615516498449844690123074543245431344947063184417844265236767669681726735170364858366697795205636994625743142312889205606742999144106054986781988135405654571615777194333738812220016158528885718457896888268550488644964716984211516636603809694518461693533660501485453377598566333032803313655723834233164309804023815687039242052187950471748210176022764569518642411425438321488855528428990098906012077521438339498347967197492498760809495912700334275396914383572220039300166321980319029523373306317972407550182188728825265896715663454659941964289196750138565938593378262541097811040863668064244302701854903923193427915851635703083967731644561809698971860247929891752609158892575882448629909216205784685242296979147531405519649418524657063285692923982692696921288878639194472772992532869263946680885927114346578557102729607559761601521319836558240340027256297191705147667796414704968756591920752508888928133134541033614080137435387477524612279589377265946969413176919586535073933455994258200845954532347368263717144838505048558449993089149789357820623833142785545803397413209231517711653583925940622755533157812343473006404550801521005827513067617957885572717478131007455798339377214964052665645579204592834201808741721202933352152321873266341224484590873077754479002442027450477170239811659266743522799216453778520658430774701725771524766308915160060481497735738494786154684808544194293203516544870272260575000641627101031014085780697235216475511112435302300990078524509304504277189840703827828419399169999120947517010235425790822502907106092335115888757348404995686502312965781341205550592657785220743066646598001111150658944160153283091891185515067436497021868612180989873371187484798481892231740046818028002254393488537815004099752594638175602067065592035487158900793793520373933777782944330209475198024737525408904034765680817440069672936620297584944187299392067465784565052476212658308220763574738396327538886602307891876153468070481289141728796779753791325422482249228616053531769982514331019476538310385170929374568088666465343169457959788423154519660509826682764583329815220033104895935556295609725676375531724590569958038784058519949449774162971885684123658529319949812701796947756930881008259055363481566852765573075707962662524763847888162969324109216140638574871820394420933230621078790170125233915216318040479591916802566136747193527730104160683385882450384952378061695587713502122324255119933120780006123751292801969887837293644715495140117539123774669145655763428857305499728884422568779505936843808924239712479604277230111678003287608447907510771958549169425499957946796978217949545035535305202182171859515729152689892394186519451300721471013719888141415369110531304441839414370339192509544520222070829971375816568103580905377572177385538766019004330949203497363962605923235393943438664569216697981863483236348934846323668827742815518759822951840419675954342449057297751581555123016144787934383908193555309948541460499721501772380803895025196368241614010159034962125007644519429235866087799939443424119946909630579532483011045118545104386852297377646707971863553786191050772724045540795126699032430123333049472814133464468498557338162047632850348042175776746665631056735467455714338024423141593117138444557594966977534508559196828431143974013586203473451381649766414727431442303763251088171354173198241091073030336358104610269000737652126881696861428342876324960734466611571752659063753524418616085799573262488316345654854384802889448684288376088488912175550956042442818417597250925706607630160317033317136395776966777695591097584311809365954544823961399208277013890103244672253523688640901632023833680130887918791896020588280639788008393923196926260402367871800025870748372237226582123491138437974865637212372388427561676799566439211713349079890782855606465023767589911199261300987381007649277186803119501895811539073668600746372200989465218942699092928715611280551823421297548290672341760682356366482317567033388395962881745055227433309070227711023234479397396147559757596731638985308085744185372482105009660635176399962934039306751018097096677138898555209676228984491572711367234077955708400972369190568076799980545234171587179520816960458158071611058648570831653134730817645815801035326475179379816927091948049147423545950313267161271559065009615000344828643507138256033236288512316136277159153704969860394587445327574219878310879543126410549272445518213510259992532137237126508299861847333580441766643436156361815977603039363881946526078060220187256761560062534531153681182674894598792799296245928851977727037070124040378898259007041688556739668910952536834329413614996081974103477896936751846451789764115104709646076278643258677732813671444565813985626142332132333301888837534553402038820557813467833290125930240848507812291099950646179305863984136935980439755315897258130727786193804852306190094347789210167276433927098459906012208473983105553461337273983655422962624880671318236594992870261240064934632714058999699005649347923816862998226791585369872197766411497363701534116391885627949984208302255389277927390906777865212392767665011967013778557419605703532470734997060117643867231132696446259934073845639906782673089500642272405754422440976879212846443932670855738692334442187910953188054518489293826013308831268848799422114704268083636437436705656873119147148848385293037169792892830411190239343170859175168177735009092880621759947939271512473321004434087642529125908613451251065598600254057830856232877874668331513982929914136549373554364363497145553497649269299435675375187199690649966298141713863999289737258051488710239482886743839759223608302728708870644878049997524235248553677723799764216137856406868085336728185228477873976660702777101718001369406140793557327159537085484065207400752643606846485657933204035899041454968886909669668483384897839504090117698044923496618631683986572337176991736401026307039461305279508699285404051748304082318373013314321497673586453798301241888329702711104020527830794985042545905928963704259331683637535331400691199771481907344278356382388852803284742027144984871194742223797448318170705355710328401020319726613311401469458764501116321987704901131513312943473362632367746155973119330795163001872907463916086078337322496781961309202122247446227059310711750518638170113941507843702762621773202460519453987632932833816834026149984836970573952541846916402215851051425306630467658757763211452117029193045511806712136776007510497156696698006951225988890440518136508715022350319284532912859319173615327846886629553914590285040937162298046750272525247609775228621802352690546641793722671520561273915632913179958770290866822078002036973534454807359775289605641321565566545609554923000329961797363093056619381135339931353061721422032778963166614333471418189916634478746151108163577155236520821843969808932435958070927331489266057384371503842080370217601776307441200395224857581320790976161717301964694954101259427233194353578985022676176949346373043663719237577674622142853553174389635158311093532729013715614950697810711921053871737153671976625416622282713100274148537995884462178935270776788346023078553122636950145601216784781368954328943901233985366054911925125867032644343215789125343092099809975670561761902396306820951605828656071815025870710893934715942186474766497775554251300126863899864345866938609173084582034125926330449598063119743328785166693599813464155827128135315278556909687684933024090126409989891535728047539323342494985543598023019685254245382544432214539584769563754455789029004066706459377037550473139258067153205446847913500770395526731415157068405163969992998066083470169011564975323566059161357906526711030606416421858719289609921650394507908838658703606321346385124291409707860104877716221847071237811948456573965428279214222592329650779532067561425078759146832046101025851615262320538587882213001117339893159601106363134754751755825350526367623698390203722479027584848637711999295100541228079743858315309288454735596123520676858053550899797006865683180714200796545496361591633667112828842959982816845154785003923850121089476044168473509039333292978257115076701279776221233150894754173066863342148958745455362855299149342131802664831266007168768518468574997499600516340274802780722270334056065697082628303673968975511812112942802122427024371441836414791402892455556901323136365682668598646162453609884915088186734768397985010421758425511138964319247816256786909402328784166861059182205498728834229943302300738697547738059783136662062064138804692357440929096071327100725722286360188241753627601767398063025461247503863490143219501659759185029158699887002512717699330764518745316343431818916686931139541354934189260926218528699221114380799375461316124932625142825624493200646386852388832036629593700034433477342701091707534485086712308739022862398290328859804782794076322653654828081151718364958644156626038316221550974478679568400011025015705775158379093037928854483877527013370034180783626444039933614101366857857949181223530618097429624272800646766031324052344904020757972794453908446204081476497434209144744128727504977605723493733734402500428784387352362959770828309087519733340174692598125443003040211167553196749216270704738725713223947835777409626345324325086144037774885143457379213066174361678826800208659317579951045191553422993891794877443746414070634603162825291574205037961590631071401467602100066062739148561032358835942584346960115611457094558761842513730551982285169125407206509180275362113078966531369617940063998383120133382238997532657263958616650698468264417735166575979872259598237163364348997502438704825678564205259609318988773593615988613675892083583281020115474989164479974903870490062857237856240630978260670514396521733243762352689464927581265495285208613188372470977975975030581597519230272541762188572758518647848054714417244776213924726743175756555678571038866013198894868877819230820354838992954185611469320680536320925380742552134012606604206434737361624918391395891257470716053776259100955702318990418707523390103458329020917146180709715384794131048325508750492026368690838376922914790236501915283372185163319360767039056414185502783429186477817211738607869147920080423688420557431479373588877732774000652515387310369365132476354918778478455510257287805907100070632063975518777486163824301720055680856128753008112965266398878631584456916633468271788871942477845838660384738960016142923234328083026881163881242218693995740605548533981672050601211850634466519114075557860914425452346056795274510356407518544517397892257617219942138467752296771289537486930820034531843959514051441905089075897670545011961855140500943674172638083077781392516194051390244228024151207427255635217049696518987938134089217408924011384768941503815599791062722915703646651756917620560322275359194214762401223387147667661055161463382782881035562522747633201384042783682961504259417608598486481770864214495937718166407143642478209383952025385029735340471875137786734241633615174420074563882274569473754907352432314420774666698735216485964627646848686449435631168072393718961090587953693220634883153159744272213047680857104127264261504932974669779168539401708673010210732587118542528078739371784531447898137790720149268194238607153867505495171670728183221099734925290353424765170432335153497021213022032644621224349353784061571383844297943239325502812606270824844228785976897613913350618692662562331360773771770195652037178155326218502120549129143525567400520460572157404356330677588769310883267401883879071182799527894242231076384627326871467211637264902003459013870609387079970357370501627281809094340578334303013581393032506611491923923326686726615918189266207548441686171991986906151238939785752546206748873364414705805374758674611654287932976702922789104980581239333343593524201010294671351484324865993880582779113494676613207717267037643923112249055705488338414848088325412170337130720684516608818209234745234323284186273428281552534242139894560913681393539834083472106616057962597903803799091953873660003191244996042386400059469426613168317962197377966178346766291553710197006597139800168006697212037248800514149251855434289969632467902551043687914022152196842418346209051913326956746335938778534808468518907903377395792855301581090742147694343299091679075585605453627993369820244460986143084232609184747980160647389669280341449747076601562076751708792713960237995325335427036877998423924214267035495222759321467434117844577674454257532019706498384819768114305789138670700641638679311724328039197059130577329367006695646098384009743955862462313231630438792183921859072322358417179198963977782320347189896817022115349228916620438804184060881481298269295359119119483863042962651571538240726694717791951295372509114555556024310894746901386773209305309164446550116552657068370603723451595607662568610741069997410445958296894064143417446775648335180275448285897561315182290082176536195699270103645691019505671532991467993353190005333260828185126333245094185039002181511368343007140764947453200282930164977319561811354516943588834834690148225119404133593397167472016513167804765200404320442570585852514587908319667475943450229148129527087687236671381206033701611870508883459537005825058607302623339894212190755523021960752780915191559235035089525174491570764674584126549403491112889121675056411087573514049300763054989136503639657791133743783945951268330973238889795857145308681602618271957716561849589103475127588305717904755320254986078835575439833798404848895341975615478427744024172685370411321553627268921693384117951261661353947622530251341213937449230594613221697132531601944885024141243989193315442865407154149381127638297292543072762005487972521735590111948220173091216044413642493314908080184838628261310374524021904118549038104332300515677747389489316321324635897929928543684296404593145049547303656110027610485614920036055205616080344946996848480858462524622625615404851185003050934795182701780360712535865159019298059691819936028253864165211833673910078896842240222422410432417035787443946604578234916053917128899390811764503125297419396317125501917484374667993104393831430356695038489247853709259427379044211210662175935787713068681580013353369191931093202616470060950963995726676610278407310492291796215619581124675039065647411561323767968179172941296751475144616463627956646037864909397493602745851923378291859924428413289692375577768276778679245062504563310618830002626558976679373490849961976547818695393583633992204030521784561269389506267767056131437755784949671226520192732090084580496166932550458302843157840761818693519654716259708301755516461318628643073850462717906444642087479978047188090019586145495019921055115541788088488014633501959606292130462192728802934723152090806386148818629879565960348415474017902604832497286043304997141307051492713055825105837602084331137256851990496550247615921591556952799348884307134659395777063604782192238430172875680426135034795720695197641415416117608971060856852911601655893311987777362703584697634159425016816215991317168687120735092316056431869954689162424287679134245855259096509790389672858649928209246770386065857067766310344004644106457239732149128583782181344275008437126316970949779019772506160505456279298599307109379518371656344841860851739798439524401331662165569164359966481914608564581965711729473981452496837650030593603994681596245395173109059720417662011185571472973530465886257086844122014408944729874731124068770361410407385917655508222617572417388873105507777596489202958062833835606109365262828624121597916338521681779153827847791540695093155749201092598515864910221641221668493904437632620298863670096220082451762650843064734162616224132446712724470252710907123976504115683969844241049597300040571063436232303219187016372537189648708322379401426213830940662245325467918354242343522077068358774262017050373496861007466775944937209052445631233222565415920713632469005599910119305905350138493033569997232194880935728180211367412459539180325666992321493748743904544796769120974462488427297496750617810722344269106647367856229027939650878137964934327916423087166303403162914284759713509555464074916818914167252370911967768510782339947975778396324661638689068261236090789888562274084840430875529021390646351607705957319944150927853439929140603139279876611584198896023554270832933691140194829127874175358832689705009038495535834246793822600116387606579732244533276205725972943073626849651871130118551195374310318385329092693210516028046871582628143554404876486718089703684112337178645283660419531945836798531032337112048903855427797679517054116667305224360138864766258699509254433777781812747575343291297598605879339827076542423057550648497754387482990152315596596837763738498726380772764078637621201026544099961904185477597480233344687567542250506545208534207054167834547675933552261952595939094096803251567251531000473516905213745526014518413254886739159627034584767568627637991825631107273448913394966009923317087894044333579012145453669519800183367483818051973464179824469113695812616160549389866700397248203210423086261424433291661018191059282140774729199591252024041539310657296812542106070873481598752235955902989644636257640517566473043855520611957500833222643847025700208520710129956946370082589119036739051503016088317832986039232206306251528461259196112502027939892021993539467823184133788286012033714801119268567759387387911513234319275990926748362383729814814079716594439957158298240959315782522990386921598004489505492606511572634924102620399203292509344477900525636830617965138093291251187645468361853637191046200452507963418843355001498894313506943044306840624451928766431031723391788207122842579771122250200444542422068634215144357896307460641439014440710631660817116431147081662743494035691753605121347825798574406691491501739473380320910591877709093131151350421450348501651392140926467429496359775442644503836275789713686701625279864743159697398252529928784778073007713755450485176569115738739771226503886476606174312725154264014128600980402067139724283022833720158951925186161371420645599399222488980513392865835940642385785192894219528422828860544822050085431637663477771760435817505472004604670890519912714327279196451491301791583724982404512518760259166477262896383352737655225452387855589033007103811613793745826453395696365806109569584248311989596451075124623997823123786416401820746258306188911525721605257634716018095111444719041251649252978909711713391929742011272940790149135015771699905655103391619513774608109968412604952000082366071492002078050938499074266106086476805290926604389053296868686291063089937116656143859575963870977484534133403902365641136349208949646515143168990912337585553088699174052507868992651931214762110402516738467144692423771487688358281676166846843212374784155309692765698927402021006212103309683214650309002440950916189749380804613057555588531825733709478748512950634942335103246813632555163871409104333518006506150290564771654028662330544783892277038415650690034224717261957783330748353280891229921324351791093750258541284197119644392968878632095142583911606342471002699644712604126402222246281285078825993823234031763199215902158011263249159983240613077474564146655718787378097617350292794076766814955903951392478365354110683782265352173545458768116271315090849452384623094115251666989368969274020036355189910148160987754920301899746703824320924696855358952698123039184817713576051036247427293801545579065341639828131467793228294339842044756463415155147575894840996804442457545241543698802461099245005201316993863301262469373540254207106542815750642391960408527104181850289492594358129212781438142481192645498776784720862233546524331262152521395205955484426889592541196674952431010015075007648732915312588516339666430436507960545022407063197747051552415035315025223978736143035583521487811328388627487947148946687873793069592553393726699582970211597248019700276912886398605810462586678228705676518627638605943355592287673021037864671686604154065670570718014417303087815399023843213043274079123225906020258769396276255947296699451816412258799950054503542988157411727473421748906247650872139882097812559789833861414988173751156334013649722978002343313712642135826470600733581054886291962690317290572446312706140606635561468886186549913365422345468795421848969208127433318340456189467791457485044523625207178831535799925166298717136964446238206695036184849657459058027140557281069183884182175501043102548371845261755711555447017713608368334679433243322373305842347532831707817753459012001849011042551346534026097813220382789680037646670384892507339779594959047356633545065654474351265435911368639472933067217809517519434481637632141955216643234797383395203962241535921223936417907706127424317090881372716225619977388024597897829058481489977038671817171749697525106268921068350077228234512319379192621379518845363903768551633681567652717435543119949920095286680356387557300765660945561747245595025847435061132076851199428603082749046548476086363190661727740497364139833930285834142401496140923765175471921908598553431043570643463605537623264778307275056148398413086180733167861178004673530931375827469895850160245663904309039181692074390836518852774899634430600662804140156574825724046108123345499884125498124686364077276675104807228321912281953993902697769515821014490454241937206239830888719893273029518471187143959214646570066649321110341496343827516571110020705948370517350202352537254430128777415748553460902521296205925892766218741116311521597202133521571350192534788897811669279025856066788510528331568034514960496845008269703860511436557815259809096771475455660621974854624707239225798315582115050805559067458846400797827013663012582752183384147986809663927412207196044788482425231083931064883620450981457724809835944816423916678908678197245812374983248966733869671669969233511633175551208423957801005546932145770575930762640082950266548757810838371340897667917764766995140791972391181743204845203242949444343411543316310093708680640514592485749758382782108592203761126046935136812002136239796482832808710324630932452006813990603482081614348666566297042980494514197001744303861277755503959098739095600771197420882529652533697648850546471797640597228641332938503322518861113039882209588286221198342581850586487167842266992375770820461016268691051443743465633400978488039040251523085874189084007237315083396831970742897677781147163348325414546985196405428365801428463946592658651272158600326568707814710612733196293150443834408705517483214334791081424984555390706401287565756163287380144319691873530627708258169360764403439738235081534229893218483297770806465612529739514864374252818084819601317203103962273163584854956371893971623172657579674349520323105329793767403654787444504971011054818337544786680983558558720274084749627200606773300675920517930065880414977097074459161715803271624027193512004270120772560660864951008596315002920712055408540515842027261775415137504293138363732056218402242790153395547336126412353544662325369306665543484903072773822807326610624405375528389679475901852744538791481981736712647060098548212105083345306218359322892754838624228212650135431204578060100057569352781711959602061626303214775858793195161696997576911137407001380474532623544685709541040784862200009648991430342159914907380571077219316666445024715127765423115832799948961310267521779332160741450577285858917774913615623259513778124918192955347787608151946919674848819741856908133791607206990076493288661472087026182749503147096996686961685238204378150684021715563237277669487660740260202767963666041573454406648925682036040691414421144448922981539862690953538745310288520291871219324735782084739557036997865607369527155682709160410153357419101031343857429220281961028910597268641590750338089149433966436936379935776273644707111316856741544979774198474776730819896345247833473583092165110944634251193949299317179471875903348893301719630528257007178094502068270473116543941759955781458152394705913280159252190328933824356384912217079724629552541835075920127406709819180699670314521182309804281015445730130510628301766841873568916785665816278330686665008745413111360868163337434906760271509437555451094025242554627071844168635383739756991766754701596534678111923869786420542171928817153033113732530494334554354252394425936556019180883988998278819194547008966476380604937972582141203755932825371129621410311675032157195989826963904650313375350475796339938350663380877288420522438955419074028103342484264208037141782787576106431444912056399783338215041861363246801491274006123473216163109734631270826199867891905128916919818559118526670023838788836481546695901354353111090007956992565466096372222278645771806792360548177208145732802863691656888500513781149180580225791006462946179358969016991576566339357865816075992482612461824977169725138061548430062652173550729495366551534293291454952738667509995578842527868853902108194308625895483502823733920679656388365439179754566711913180290323036349180170462777330275092281863647453106819612489796037440968248596432443041222501477075821947836011569364574888263625922015091327247846467931065865639313510629616208897625973356987910363798054731330394744419961309396060459262588182575402580620105463554244405342048077922768032244594950628637827607945679405847335105758959411098301775573165651322784076474088418083541474320262499111647500403772579723610779942754353328048471064517926892943064255176598755572931803350417090046159048373674625271927469441411134142723308087802908767568390361724958752800955194101197123216522258046204552904897423867931766180654037035865822958107405460922114308527102628753308643961363613993749239503324358447205641017575115656627601408161604980488704290187142633353157828114677914986654179176241674724658077601215227074697078717302440580228507280535432639641642419844189902791606576091567618180331123142340462385142201714097049323117548029808497447212080123605912573613829115379467709720620100936386471085751723377518499776815143886915529505138989815586193111325761403737935087242012679887702548103318858159804935540772619272924536256639432263855663619288277948239144111154052872205293918133120867809838480997631510758121918416242525009054139133328909634591240686976681539345302660418109689267980410543963877342833745301616644981956712290941898540937409103570204308553972584165175291393951237605187456703326151015992617392184907107284731607060540521722341970759326123244769268873496255026130924384766342477178756909667710128429970622649093138045606286118880968999196903602671148561658356548624056147894858690255494176596989693041301245516146508897066314998893434617786697154050744963898575553088091459333877735694012771119684934053293496523419392431234259880071290981863842465976940837420925645646094184291321002638357482609037243533357163480542894181313463316299818108551381236653121880387783030142030268817075171627036875238495775876370475918814538637646086680047858525869775647620299119981552881998369606779127455603173179462421173547320793240187340700987097676206009907301420156650647413236844341653293335306601056835519844977583564404565549507444614018862275715363533917454980116129937686995485693421776957004795651133234573389096533071071153709857503737184809567195666732453662048870877736587373608545658839181653042241711777268753450232108594260827238340343804733523022580722908947659420256499579806175588752477964923618885058431790667718945880467115065424409787667405387150053700632697904131911032061472459658710517474640537489650249742983819799820319591170927266297325155067928361450961389345081009195448490331604125578416697228785673493252886182196152063318030038917546005747716601583009222879902326979264802831509305391407292799473085858778386423204288891356185858329511147681523917393614925339580180033185348799115231185301378624765053110856803064475134185372796892243418021452269897109564895286064074919018863458745489006489032193451873530798950911852122946404642167094685457825221491036599282839941976615050489809362582504858571063059600151054173638625142107165674821551284194785046573683556475028375564006478948222479205308280825601063589687847324306833323454172416145137103485829590099501794809514802740818196978945055676847655633020243855951645940263380003349772515499939563996357514448090866881317619993908625279225769943420273635379023092214858471052409703858229624493497434432141771569808003625232278480143854499867402921517287868672394167247683289102190987757917251220891253834157042582699282250426272870307192588976700644660020715310314951425783145088000650498080486207289468839187761494003261887345745972189239602032107656191943111455077566031852894130491749076532046977064926642211930128187690715720319615868610598058669923087885408719636828974728944477288643494989377998254668339306920049404746384225332282804928199968208509618374241869740068057940144275675029700478215376635577077442322527165902779038367142186358951216068768903935781284964612805377994101009674276818418989720728311661557429739829924635096692472259057698771838917052534694557338968093877869840813745999369418252564583698314779988477874212170747690104910027188203151777248793496256460840349647753054014145186164432820403330582372473993297566423327098807621463919084371946500535612665244182481181468091358383435767525087403883344381849349863185413565745527197838925291846407288581553019685002086454631692269639212495071138705881695528745766895067146751525498123611145133488787487906502952825052277730545204849467592069475247973244969385805816074751063709901149867080469029070086830532755951593704065539334786120834611192673936865898293040057813875504201769149415530870474436621737958820101817718320475012759756829553344273078438525782763993458688785457327914445056369244863477846704832164651911588803073171945036832182895173104425558054631345780708448548366427842062633720894989327668530039991676353174064873533836001782788096291060060421341491842092774026269176795123390498387311339655650496921937575418196145451329528213556617545859161952572008556464318837477334834265979645305641005402097468548223477686261358161612913949848034095879960833115813792203900575891131624430593229101580150741755450257839521938882894079951815237734205761846453385704006557354370667355339261831334816044446385252134424498333640771711072126986054646605074593146255657155998472395814446923376341106161197365587468566791028397487601876838981285525378946448421049868980359651660121104223801151267096366533786442685943003389170623241266079367815746392886729750316753061194812927136779786388897501923756387587253241114572454191623864795932518713557019240084127138613657801629352468105685845364385699533159617320530876757558842855922967947887545353432638790694982013569494005990788591346699149716329475461507448011659860948807377334997272273723946794879056977520787915366828759377194455334585247981106932955239085963488218978683930215066930635567544254009443775625654148113799969309841221222034443195854990114215711357923020379126690973010744349819427470663403465718986591855375984386503223175406021949784170560330724249486205595259166165103340257592492312857006784444401894914473587718790719274087783214473970514449671332233525431462928158794447251468415783441227817817698800095696849981554057971801518070711153930478454831165305549824731417549156362786365429641478462117445899614405083318573852620429466227093822823535688442745598727593005662087898019623434972884691076419195750095649740591817279964928060325708154466419328041737838235144228772986231370630533554126200357559491821796772526225300570572739457162525618507954113591462393476091635710782646445229910578067956319380829917414536797938334884842357217943231117474475516736607918111274559016510666223159966467734065886754013255008507133079288152126621247009062774003459044275564337276600502899237853987166046392285303955856881022087373412071132541452738140155332783096052470215580710180346794120523345429914289148090197489500380371794474886806476895409142545529742633998779733003079119327650408532392740149049971619837094910055695108117484611168229642453857441621549072187823172303059953194762450736170841484630405629549556161424978355102819409425393170424298360832044375873022660553232427777463517181795163823672687160988330534799558048594856293903028303012765619409860647645092571947342895223058290585752913913444780270004580376710714922552302580696536979199793023996451595603604283500296251970518576881228414602356929770889798966419909455463328329250125664148986793993007607343648832425697040684676734431838876280175198985450961804401762095988473882226150986763368085479122290648322526219150965980371245760607440120645611397769791179519064327164926987023221865523983334404607412443326194146717407296167981068027503092182216854516339015919042207531364002206423701755721229233503983317873737548659173794149925344769034033651805582354996071993795862075246839944381645062663578474426256062418004422784918414118217953857390582765346962210796849076781615054126494474346399297481031038789979876074716846746590662270982893420336598160730998485375688652026476589769396781887004828036645174511613414027638566338160810911694389633450514099402451208350037172814454510633807032296700415694270178065443240068017115146453451950932930996478238860166296649893310519771844474378362935811725131909882610023535337654888772958551993105050216844459396456194524074697444777776757448909786008741572339745059703340100614458356558773702030045245873297366639050413133001011083523885007700565494530667527969488765384948629063022036194235874782823339781486679217779384462895580209968737468315499376048750604134526685839243505496280581188623950936803390811794871069402791312869914542478344128156739222251300914510020633430090411400552008394473464265685967710366502896665412287151900631338209077048583538950186947995720612944466776013225133498686189719879833373640035109394232678806401946337573902132232264963780475053350140583183534812004949019088528340180293167166175920815394546675013877260947283010962768770547397077141510531578941600771787841280701727221540189070775848024149182432374050864859808022120121667520246625550842034265739316982271469468706837912894799249511977695719793500179956208052394761951617420091900862908267458671041982123437385050337256867435400529757827724321683271592887588382340521186964553474883956080213422846045827068734371410027384744737080995203264219161378632073547512172928129180518210555912407023252837839976526123946674494994520895734449496292716776756076472080748777524462843778836468022574614546588619603109040379255241766641540275045265220697142606257318752230119050820503743578132607471116724611630389619152933907901026358533175571994419704946539628173580093813017730297339482884042315745220118321126586251323168528548795541399183183996108074291721815135294157208722374620215407156383020386010962505037638631940575235097388603344421407089683990944469432117390901672932323016023146092852105056436655387154863219369548252464467571963585332012492278718830145733022936454885057471455543873034953398144612671919181056419648862315702419212572288817210663552680902246944536151411825254877653310532215555889437923857102660903909382315171152513566682818344226009479021706077126370147806578647776944287982254603152941868711445117390377480906797868189876844596521802517506487217014477757277938189540291882814370705733336574515620455988520216445531429210017959734617960612248655824757896890657449744860514382433791276360525902713060942503201098330833557735007804532436827350787907101176791161378259376006966956223267411344625547413347806449716019075204915148108749870733873187210299681135312370857240813029516032984840307415772581385284451893449910461851623046424170326615718691579092029680087722264933914878381312848696684739459850692187848029294483986233756965973298605427784265958739616801602220407127035994142837441850364509502580990333318908624648041895048343446920808103408974416016144059252625120503253022092675464822525304002217834549233309145914856640656693809735594253403901038978176294160922633164530243006073879436433261210066832624865480656568775888385740780836272078572874062257914257992799807207711326217322437066984647356884701703774702477496381046839654752064657642955226445642360780437759493817050286925331564246993260317398132011213050153151315182224526446713100442122761888741591986378045479760472819443336300996327746641264839710759963210466130854697787065380255146080180761634603703183794732052281038891686369953513661117841096113227383559985832522732568425771918160135053862770408761544066218271331028731585035891937927414865832287969558212548049667266001388419103670561325677001624292693234037276193935739864217997419166974732704571818555030674766440100593510713534857227627244882126970450979137213668344304599421997848213404918843403538835427530167120268529162825359998759217645071398056966793644308801405361396772523298047045486139111819992726673669437389452561222923712554226120857774794588693846399906446405020118005181236398229100040445554218498272451217474382017139920530767454947936900531489845903460848555147774377360752365923802788617410839738362726770697658255409928503260275220458343178877332924861313625495158301316884612848835251146561872544405686369511953967292432119944569008277865675135396947987842461144145366597752191218710462309920639021016031728701241896706114172595253511432515022567114256694225937118282426023158041321170057611569557744555021864764625948603088799517516784961458655701680587741518008083821523205748509000168980927075092617394970739618411707740718165234970862290947437715570296120276784237758098638388409954951281724685747469826048272672973405322105548879478379402152951263640434898267134334407000448846398034316098772135299167116127655103896003065980121343522440982292944540459757776227516431963489777210599964827950429891334861520545318651531745101751539233319844392511331397524218505020896318442589718516701792002153357149477138789710432931745867880056468690739707245903651673382494932971130952274841519757074166025843140357248323322159929972541818815513746326161032775453855412845589952591329081888073623821494861678594733702242858744634142946381743880590378863317448075253148203597282358863559159599557752076244542639418072803532464977064997553775079863211368281182921964106000683730537574541345462744914373377547942554257495701316074917673839105117725379376646801377507522423846419716439170626131288655637977534814482390951084240883814413048355181707528385831352400879827777586483027758659201642020949698400821780018843388311489294052731825863405382428201300173688881896042391919224849258332561726013804416715535301246317427849936819861462339437902624013220989202635340530505045683952061509054512200296463825370921841953762127157681201406923937034743331654355621555789747712806728931347463126449164197047288974780056228073394768608648187287950243731529253190687184610204333041797085413703825367050361938384148092249861120450733206389453508351682307505937024782333553949327267968875823583556562397582159566339225911999516133939032309738493963596318312491368025163544288941546028162134448590279274231431898355729000113260903817561096491855837035236178744171514004045166237854032433582917178594331677151868143906888764386180167507892735260455431726974809555481236138434353693334217362441167947374518641986896680633374598345962238163138618383259975351882270165407455624793559632947558646173750566514118103098426557334716903411183877548215317001253463487227482531125269572684521827089549583478189306174450007013724456611856165468328680286090615763078066152178928291003661722522029556044501682814701582609992134229284950574990920607136695057792614625398316495154733005034340215311518003458454626175366637499669417538086027653000181538672563152443094908851269672890891889539699674939936269743391596574186353251498242565122324023038295679639217470856747219171860863483729595770701138378083346195170603672252576019836490806395790391750661946207684406413248024808722917044761566176752687910466961162700423476922378750243127291127016480387814533671187889246049910672687632021446631599149756710908406146962369166267424844612760266261667742728307385174240206762409635611761760014608944887160192759810731709547945635871878808224351458821580813003482473482129610993283662436659997821875017792613732825640735385899538317101093137770500854614019253974936478172323654931198642158724331200697781268272654236769883023550046265479860239744877060066228905300847255705661652029695714842913730936560877117623197859023806825333447312001949827053641266291173802155096603486958497421972706131796068071406114210587792519212183959021521572914513328110501388629851883743160453246225530616062157953605192156164061814225260615878843468749109890013103811253789928181697459844280791387421755891881019737913767394237140322469733115433931577624521938009848594009275577389468436388027426109745330784355414458774902566125043919714216440969841436571642479874766204706089448000380369765500693206748811404830699322384568383966573463268358767284464196471077559267370454627115356273123840365210105287733278382234802660988427099062366814923724715875443587043867611756548866613777739834145642401097571721740316995187961585035918259254857810321247391882414933759932726616127379468591181240357299236627931971796988308278808410313025878256556918870077589541889803472050228937146772695308041810574629696641112890349519484605244083178674124026298047709531355849455236142091828787044768988124551530177233984981616001884082589410561070622529449807897107929049347606960306130094422673553698938717665729553515100990406918742308283881026142284643776770446522664782481802025959854794607121283690162240470634491909622191994790723936606903529056546670083737840552662981066200780191122164546369508732195750996365320083092555311424615940244441320631462064159730083993421990966201795060409554214039900120811278859771460188089758331043832555581441589352913349586235760632242401629556406398999552697198629955510880878673801221193117865127928717350567927771703514491481610581125732580948720799175691359436549154530437751803714173501736930126858304322381645992052251335628229308865137227732947757057065348724347110759265089528935633482835199794575349765418815287960006952514988769065545976045229429096704995632467517993519768667427537621272564789934224424845292763557851966897632056842163607837671731820590551599923228134025554405771879521727871388542722103289816791120838550345102421792677275862261620051318962199393315927095820336081010881305979846644363038277425201610056084903914504884974196700193686706803987501359112783645260056784815917420207753581658241087618554166471660412867372927045468239379745096642453804498944069328817755038977491489622028278699969472971189289254108003484729875839414195560952015826972509876003142668218452986869071961327289156082456232070787444116145494956399973965447159222581036232555065504580779977138421623540128887376240800325327689690341058544573102796943703146211398737801560732990910234521588115966290257103773199736928158956007392417589574601555025052676590482371127985273470954501704228994700892782782966680402112328388895600303226207396834626124312170401650328298658042951882441070527185881173565514271736750188047794669685717764656464474874855726294955024292636523273142133360361115144608863364778274337140105596853397614716191977537648532241393905339421608205977079694435607425786860650996501358307957591755014382167680331848140005840308998966957615864124747197953729561457888312609354063697051536157367431328294022048214345373170498268927419776823739475821911878455117514988417370864084853534520701332328718099803190610985582662620596782420812410394304070688992926394351721786494929855463249935244702739851050054104598378259619281867432839503376867431908632191226130600572370854269504365404172552445707952693031380853940105946284384038218126466776663329166959583072380145695051542180889004554446316543994733977732732834082953758750627178867866893161472584750767581451038763469619072870911856125912063934643213568104332815026836642320599845590755900412947743262424080318107383103046499289895758608569694042289482727378382595409312304204699100799820501866172347595093692065007287918469320587236581195360809266371819957950838410152076920744275583874357639667229250252668204723683738647579050037115247938259573246069797355904818083635480296616398074462048872675935560589621790136640587007419305770563360932906142688046041230048827961219896029204013896502901847451485832940795878994548310820636854257549989817455267675580756074233800319661837603845115047708938137730254279320654300900656707575857366742407666203939732895747184721076253661651947846453663126286953390200759009290671811641825232490258757497041652269089154930583624880960028642695731962471493025774330371226562483766182385623217540691278522766680767140780438577336172652538578231687087329577588149331652257165863386936746710335173178595890501346061416794574442989039395501956603159927047970315992444727925560424031669695717061175435326562704606266886898377861615238625601441411059118179557107380359535466191625432982643528179638997128452321212299761292360399559079203271851597356101250108783667291886589772019944575075979067529295797661075739757096578883008271771797950363825570381752049025136268511169790467398361882890166358700315588553007949540602798306482248448498578131811709798168468264650776595456304050953841130403911139829748364414658252997349595914708831253054459916141243771466494952485501733030753847959178557864888387264937544421914460707616177954764788739875773394569953444312119800768204708752056518697308549227506628666444704180942932523762699309452605682296049122895487061651487881594869125960365270549470378297000030486322513828898560652049483139491791936182238174641654116151641832591437985895505810037282723094950568546107385034962963691454396208352672303251016590714399154453713164818199565761236704704041562476580052652435893911654461930718808802714106520924747882141167960413994887016317553135511300706099923135235516060711970605602633019117717455954427221971609398029868736241471986779923459345335724975631550761728627148210754693553865317648225466521091124657049986418821500394120161047233665263234239985082442398970988985441368351178496474670196314099187182831099914927435728221661957318308455874748912465459573842748556398398530185405029780311461860987226747004109321656730709474524106273148100237815391006345619445804900757129174438238329835632989464132170951552850812090535195991924995806184204194430904817989807886733218887012009650630893903393486193747260208856050093070756687177667054586262665196453967232260206602145305854769515279123936100009570324339371226294583394573106949690568340309496662702280295841850132274146122648745210663615828121928812403763823619921522227884891024988262950892655596276856404574546896801216184344223741299378833124012062537585899499277955778112224356383596903445667260618812156564880495968884314055498024184083938946466056852768405261619113492597482973270508487289419271927147048959471222291089920127842283396548880824956016473560025082566183704166832671174488322125650288641638392444978801626257325304812068922747845779115677221534263540388512842872298523477157041590599610226081949874490895078702442246548628158208746345977620660460383627029221645272893019854508489565209292609379529378520251174707849735401562323413082571886986346132469689911271104701834584249088069137855362512276249873626907783486966234536110357376916356056048502568403558761746614217235923738029793381589888274161458314587776999299489498569214762532836551556625163935145193151963119401057697033683327475974598180164560681031856870299750613614784042525216896524794360684035169758783758833513024099283471494292095025036422020883389918623817638217224128240989925119492563520452435389864945188851059785915464591566381097849340810170316838743139584131608984308517841898697257949642625489235017159813729271665696173282253938330103760250420101439570391209599046854163075576912048696116102446922613083999610198388362446756229992188933351705494847575940333587904442494093382774266253871467101151075001395658074743793712551631441351337725236514053400656944399996606793871156641565259140201269847536427386154220970763409316123224753431750295733445234319003696226325430377470481747039028296660805159749618794186679329670901480844871456005226671968736361862407955767646709441742691314552919225430880418851154058649443449664400191687326059300149671348272176727369210735692881928235942622663179397557930795325687549606413172419116262625505216242395603838021077157877105037467574879528460979515432048578798182228141083983586697213325521226892247813215550021481359864404688978137939775027138784655540191740754280361026587976327202584838129734083317596663667961009489572005353372298165221125202660592469235149693532133736561722264747459720556714901159092276406040201141434618479751797482333556770763860438778171082440588023225530585082989063825402150472770864304501150924573411232684510393438951590884096700196661335981304381737086217086931919641140580518514198794854531810576869591390973664743318415826077344009091084075781195607165739279513845632411130462339148434547880004514455967105450919083121748592255742330593519692276927978089996303171510405294839776097192628104531443666958709754923374936758131141449476033937130676687151513704654220255136787202585775081799244974914622360676900887575069444262139661013295488847989707147406867262242938438108452348191893925596065053688692638206715269422209843404969801447253710264141259511527769261337764323626039015937996224530468359944722683663581172624613785565894370404391648471997257818530512467414805574001229626980063363405747457895162014866507279861307072158489342907083911227101351785210098969157276507522997809818496243730167546814048080284137376908690228754480744536537494533968550754606456998706870466713548274005816539568342022027454749899150226945926219723086317543935275521475917750927909377398293466004650076610778767492239656261398958157572354053694899565548615266156404817281260400051062002942505598322108234176155753584732995295456049588754304402036416109705975755647634113137365894201496979234488932983087086158140216734203127011273178612283399240199529818400414782960383927510196302995386223362733128887981437006890003228158287347436027244285207098022618710390661190373946049800691217374109484877094092120565726424727176593089615516263092943658277710256615473953403799440382774364148828653350497448683115451479515433764249555280059815123346032510571388105261026531483480194930933358134834070824167050496763368090830306866033926425221930625568038224946686316577302981851855341476957669886049705578873891277586965983568052128676421256764943687202143609747839053826052754478318364231294205707298045948020468187138681468424219325804043770821772744080245268119709325250467357616987155932131946694934286259007721347185485032426615187518564656391916868279369798115442842494280152833709446450397906604151424058930491127794344052187076029648811790881758351862251107883159822257278721606608422450146392680958335890358092894433999942974819631099010268673651058072167082151910489073546618279322438566436804335676657097637895544483611369370408262556381166900498174156871963255337851755884561719345107510632996435717818296648941409756578299782459085632553090920485314880652018340741270484310907461712918710398337580044497664812296004242126462696620726083303928938377736967682331725882318709555214967287543437318621727917090402125686520760115411006770396214980532868283864633467992024976702549163612228736239579041380106412098368967685035816187721876898264899719112184253963848529582362410368360822757019672750794901820495958161260614898637957132459159235261673069995978041572479517192063447552929438685595274605281064937923668255328184146068891471010366727716533812420207415681029269683647975239100048919181823590604768835771316623064136771873678643292103328649844570833968553345226776786307616481997159099606579147134395764513715429991026561772133652764973592579368040498388384709251511185436428116160308566619752156249249715794675242210344976886516356845198840089544922546301122276321870379386395643110213374849095258365413167891097923918886972697373271436330164963571209523139316864183468445988096882657876316092281088446161498243359912781268597305548995574874361364102098197990207403212653342398308571732063760989103464494902501337583379539319494216683232926461917351746625746200471924604502812907577198581108364043348077181093921654231015509558724941923592609821358161516554070520227619955413847299063227872034947612561209469376728401996386597380472761543365928935620140439145221754049670265082837595929616879352173473183574125085173703860906626553061887269191103588161496365191467266155737516056542962966477827692347924732748416022965684414516804603118168494297774279063583850931569210004005008680284615748893050789890644857888910414936010258803971763781117348158097245360305405976150691125789672935939830386926561699467279810258350660619391734917216631428994376141787515552647960774204915737467117180315907214894469945111934208469333934883333982654300268017982721107704418138278546328972579172837176799878441884194851308837885012814659041559977539203927116350493254305764599274299550276100961279322019674268059081401351664094986489831021793557427135826968359504697779176185574341638726110592154973602446367562854380750224119252740369222367206210169638441562450433881357752174303618558668748888144611826427419509671519831931145081681128109968358137062602437580380047782891243467181546222634582143883472578033410283076835603096938696830355824343812898728351578153008603018925676689563180174296245807320134010142340710651197668826903007472433230303183678006600256033379374536951610300226864556042302318970861310937266132695211424592555464417909028826300493151628826816483143160373240202040798258653195096979228231829749758899108164499342570673908876108302398293874291765557975942697124250318270598948838683391160430000930958918619448279391754205260589318174235016736475953700865736368828467864402836938467261569853305643163439230893513740167576184055726302383010860904587915897174797829860261172723817502172510448784848651168130730938648884905334108824604435741821580939781483205923546484094945128543307258381257002716436856750469934227089366874235137919063048673555597489848933627645767998052061243787924773929158591281139046974108267835406360940719998960727251155219412682389103900056691082660528662973039338854268056470502197168047792008769032197378034740533746842729462288410819062543520138852395905371184650679242415484406637843400334250570014410478045557201797651255223379671827796298941075118091067335463018138897172603898534042387758564208041926253664276575099411501039795364823561108590874623447584036701800389983350096518967815019876905076512570327508785678598077857977234509216593184890620209509226865566532066083786104639806304404106225654647811808407216268681621307933900741469522924298160027691300796303539787870647952494240472475363733219672367178725485137591397007230297148494642724212711011049984824485121074415564104249036849760621321793385626888495688751944762585271761449918576166423717652673461737794049272539699787598098231606281414595432878003019539573028853253773016014444120759966120724152176658947861644895597026913820409807440336262254465938175728441715052798187645342940598325506877854062238471982414903367792838544846180065192301197733394954125250520533971000587258148193777377738142382266690698347905130514227443213935144406413763160770547656263786409944648049954468553710648838121961393078418676598794924549113898062669051910180018642017228250522479071254619785566551990461045661959222296653814345364528654294043340631176310747336598343972970161678105145914088471058218088333796893688424244548344258925757671346770024246361954980434484607091048111137790230307990079409712496780993920985852209004342276479825238974277337948578813574117490389806865412802081741812467910405076724214924958153278263107339693289839228541468626627438779977012253650983925320324458463676391588068684781144620263823096020755496918092674792697163588359945897174384336904303603360848593529573762767818492164223168077163859967451187321077142247468528671113007350913743008620834263220313312814685683510419805867290821169583581709178485049376214652461863783109073450774222517903618613862061048335615822156146560767437606985569227810770429812662517820746745753259178923276822563547992019406147837139187102183166560443061646259618370974344288758533294113175291859822305185808220565468400116823988320670819009144820763181230587627652331700696751847519841569984439642410541342457384195732542129565028026274820673258435083192910299657308415814442685116146079418857938883335878429086151125643505890238991302930020775159937008046123920096484832687861425594241773590845767871838929268116204402545855931376991567874571077331365876523551352093988799822516449274640511948943196967980798731620834761836762020357918843218647836177881335365357756840383419200607879204131673784213330767529562643410941166680133102682308814591245569667277735626770156677364029855898685335821243990079975530000836841963846660779002522977655877837195449704780950330096175510986999374535069592653428994991453172701366962616252097555775000167238072931671772537758875963753732591005012906932128552790112490889925394100746193557429257400745221403342923085549602321358865621378905023994220052106453582148348327696462228215615114643990199875924209716152845506478046478113759476321523944095926513349551738396624505517805353690001026040942425941777933534583814450060109179635018266006702988202167897494419329385999085782658439420373256166964616055914926847990496722721661367379443503564397868679077055160578740946029373190304778391752585626026838317195964672489063213321984573599666761656055353772351676185675822165989273994406411094854053443917165968996592843615893078959876273868889793602692461148193244251450628309541147167044784076226957431912926505363433315602495401694390415605961700772101758799523049012438130721382735050568052354249763178742556297947507218939810639184433176712892814855420902759867944085815007571367038813462409638574955839770447846986543221786181372233004260181913531264114424098459582144807860050087662804524007608070287128680616476525543835206559207998161703276431642185578454453934400715719272829095749225863910540416788626806416847020468741965387155571904789049152034860040713800852131910587454516985517089661678086086250444190592652116337156554274189973342493245859236953266821566181137932867264901787890440697800147436362997749902143482790738825881106607630314535197329029731371138479086067215471922518920224930840636489181373462884029481043377615882429856749365429241470405141421829993358928574941582562036324043872402895971713776041494303650414167721177173411859204777443655873382073959589645255286275929241828313679299570157652688540869257672973756285754191964085057073300062923676368809276126423117621867806926755645907034151453993579201540561440873762466632945937809092426295470177275221366379302232280370865057976718805212961474308843261963424989597256261088567252562851929225394252018490711683474743713083671438638617259358152380219345307060971097293112513950352330587796496823078595807348670529016520784516143611739887097135572137319250316014985032105548786562045075544679287052477096267291859572788852041301011176234413748539798802783494101056652771134246564371775645895199307440071146296471966814924856073321432171702018908623173741430134363037327832964352634809219784007978447106470884708825343605596530160857447621825335153822136783388178775861175057764670094268761860194514128273049938888899813258231681810823115077628789897040818759074969191007471676839086974798109150190552485181409049947987980888171689854452324939125949553465952883827896823482165833505958624059921843816700507620667142123380450035286193963287979873842550168449795403991841953604128019807675148724035016449020548776016091017320228074745817998683401549932495081516131800820940917135216282081439453877973423840895898642461350640732723518535906734175745324358621250529260447848151367340177961844979517387688227837753271184214278173688067398998257438072248181652743346605832486332767310824619859991636632497686807792366463258819330985208403787057749031393504353437439084903885002296868149239759693087916107739669446855966513053303110756351196220206681888928042657927146428203680783746173872340024837224409424565267239064486689221365044565096041307909264278626273582177516756907188903500795490050968625657174300338383301461676275957475295537943360243589135398767885554165639518734616723669699935588652958062848972391097433490811278364810671548432486758689292836491112603426640780414471351695800165741727455085972543756473344059321879991219878180306283539105563210362861291000248495254632356328100019450864755815359990032588434054683821628591147367485290266973054947145935578491058441877143295686114410085527304465550172361753840189669224420900930522329139067902125836020446411519217805015318693127444958392551625811908496615950479518877642655511316545229130988306525851540031365142803735440589922532124254246643576862396031712650473152100363315715560036519301682391861526428514504615071603595571198830089433406975776517993174471802365498196390847663367723993672137266018962584405209233901914743629498757229133408070575209270574685585523247158898820082734848743540539330265248692074884901195008839712924876525544783995389082212371115092460419863261032667377089056100093998298505977619740156415373806616074609889909984276199315566455304154670969332656713661195430104982134427715018355675102846654500782471963011605295554493299762971213803682684615984193786920154918548594291929381905835074977907635704060943520602882962219596519328017550686155406787404899381281321025890935446961727250870762459172298373487503006919573353809227210499847617117287116991509174312688387929851226685450139987306877734643987719564085903246724070489332578971493532135459991921238498770129602907484709911638787643267565593571250587761426448959920997953216743248868748288213104091441801817475448930865087197267774013235122941482914154822002847922070217922056549446315157338349105480759135581591861279593555809332657507141021847272021176602291616877431593961818655009268638007701595229451717520091897142247673432963986859563521947297323283839498906790313316249475761683794488999397940057301364216180503342265784899537828811916642569132370445472373542176209134721808376787724506941949799694636590790960786197154856990869168407442338036449684550975369638236840842248480957953802088971616708359411131546111466643957103828927677806257604722171570559893759976336921045417307650771042898630878919912785419659889943772462442112634590812498231172212934907125083453485476955685870808373828636404190957025951473753490338418769372805797028067869293915017082156624577953257259286558341519770195754826056847278805688955362801566355741261682500961410776253857729992907219052019492843738165674537549557720655522042752989790149979311032454820517067560269728206601526768958417658909307861757668779885052426828682441168875878275940762612610357442615616125166096896709043554958291563363028070210834881900761720572547430854273352525525979194635429878491540631072010001868006466640987235175979707349151929294740965225984609563238399434039019293002346040332649479665126085527604923770798645268424135200196855060636182224214727364875047011490799484504935061861942460480992225930398900477670584551964355406289353089311922160915672608163932992906869045414305222423620832866970213103949048657183958396907542234762907520581749952205940725975718783083600314197615543715952444313990612319949118794493846400353360055337857807099437048027361997353479741251735099572861403515003488441775506786394403304272072761782865966192440488460869178866188115547482570266722721526196642557344080747954407991414035557297610508344493637583573662477455209016857877473605651106953442111426856758015196725820603113328150183764646702156997832945917206952297946476663189094332794268515158330987154232925934958885153113927605427707381037290946956586336914445164950706347468430365992490845178634394982668658055885762104228982558799973448387928304575967303645418815754684586995805055992162569904479072234551237047331798347316183101283174228804940674186020016545163643295629697675837867763098244920783658216220312937969342552087599009557906535766611850978356637170517288376860797396544928024987818024916258763936453990579810808831312956668077810125938032420990012941915223022325544314878691545658195543554292930767796188268555267737249775469982711175038029253103883933677293438931259970825369122321086981730589071658333199866554615046709196556436430762471666606502737112407281916256000586349773948569445082790662824604484192614716587359728101074932350349225760580286539764791433404157286472801607347292508416125545746810475492116321362700779346673161617512282896099227347639197798025396245938541366604313175715724254923751154296117985794118879236239726261975884116265499367932830485899859808688868028635406066855260966493041470357519202699644325047778435301796936013346046088488286001440774536399115480129373500874427272261573823350631324058588126010509197721451877608338872733645359458519693837549579989292548528943087621832588227918820403703102504268372428123403578269334046125509758786272502973422111457776818470164858655740394126751193036949274147381812662762338205779392592555515473836910254295424056374823429436412678591449404839917020816637651635870272596961084787529297115007475380948899728456815334062532464754416458792242872437952513708827215343055592911503864002896918938711646200521393007049972302229898093852230654003652784131789059220478541410728330700795983548027835517711757872969497507889533246403308394223096822582435565516071455338162431334113571609292847545212408530622594194948469651016957351454708411398698719213743181395249561272751438673909219443427211030830723739693044766077763045850463257348190822572290757232607599057072985482757596723379808524416312451758748226523923848503181473702644335527292841421279921186312040424572355183296321319090081356714402204219683638650823494509755032956623608230747435080838649772537263673875026812282267016719216287711775527002000941115227910026197379495240273226206298278416163372546756127942973566645983799953223965802362296582176295872687882967184781058865316420718610487871531453319333405274643186405587636395127306628993403714149328662833301194082921440455344374885816294532807701102374420535983696657565919782016946765099733728867092193762014304498480821115171604422945880035945753989843262241440890315095589358863654388286687001320625391781969919538649287828073584915821911260623763296148775205360134370487194281368878751071441130022501828793244996588648134812722393844120570595894973348533852400092736285100935504800215056801704204457346760333946623085581707674800723666581837103633955762616597750718083173358523367975614091704603167786631745766384439596230841193695827135049406527116361647466907463637754957747719307634454248714511803024373180785953683251805479286424235573856444961461999697560736190413140531839250976585630619977332409578945899455467452855023791325791948439416437060087592948291415311427495779401446405181049155049293446504033357801064202063058217098697460594955339157698107213882691013714894379437021352921337297384824242871499901755772125650404213051662559163972362684011094809239556196986897527557580382828611250698701167817505479708241691744501900474199033216392759522821733762649701096685682914738129303144451160265327155853688775997491092290304958778530793333406724319307889684142180382176615986832629654299769757270694114829485463157982257805666356630150965045345778996839331723640005938446947350713204829726652855858341802624083252039722231460121447092305496894657726736113382437261311464036473882585926590644845035755043375140999933544686349972436395076965734019612512196583342268161038013999512225369544227855015122983538335868843986132561070749504410756623115293775925409471486627928103103327911740601516300369583759940802618796497599632955862171781050819864983645629948415481817578685272222816229861203870940012173577183185037804965188486849895396211421114340906400431550891804304703722242670377577405122531442517109420454593816274051292059458938237380521102701051691186483291741382513320410452144481168697016457978085552719840660714634134423779334663501650616559919670745256899772025266023574106315787512265967033437705775382830542235556612968060231170828657561119998583721577449985135448631037924746095543656120173148646839345249665758842689204934320715015274975411108039508784589599316379713559273688690303802847603087216113593221773348532665567748213432194655831071933736634381577085629623690086708276197193231845829920594536203465845298343326785217943066262716115479801107704176508970961846615176986926341143692383505629699080549736311832294783592613415381270524510308984775372228849531050685429695150851005350623616422550736947975843664219468584085157191133480066642737403734672702412759824270861576486173327771049139595673597983921642766877500218025920295865009150034347138444293243436135332072069627267578690252056127466172783303855893797080905662560334393456392268736106774371910281968569220671679069609385295940943408476791003063223324281539193496830592267385068500619019682160638593164002084865686481622580462262337598110353307545544604336768378437444566559937217920292644137873814499091109374742973299873136316385121167824071042524410848107304478124581568469886566840048259581631347625892059182657550538171473660661289391907826863654966905892488724915863632879481173725247822764696387482268264307777505371226762333913276580135906339124022280689650696441936714612868158156191663101845314560697110207654002264097047157597217105685439654418860580237093603875933923169478851503127493173603665606096604327563412394979296819019474668852440760997775513524847961484758281848344086750932255170435630736856933561694463851058541671497707355365671282954517859655332303700702892370997800333163299374233430873907767459365667775135107584154448845429491033112975327047866277223656329593139873728446022129483573824143913141288805412001018242124818284521831321593822966504662044908513498464925001232224651209877540549208336189362340942075450963344810114130525109774307557393193438976372654057644459571271738042137907412182636991888558464574385061576440172977278508985976074899229224221297457399132924983323741017926424271765477482560990845177195786645551678079014720687423381309420944139544435805255120875929980702162007687163361271517899793439518935524769626180470937584657443691756712861573789255134005824888154746609252445569847719466743797996208183054296080841807690159397627900377619738636338888989286236172615391013665574423023375440385026535508814165281528364934111842673060264877575764364838203988495724568115322058773967807490205072605979273702224304540168727415250096447573728461529959061930213191335508849534832352544242395921814740058974413957411670292629988850995194564485689413914078503513052836758741780552197425109088279496989111683462970636665745057526397354574562708802934638602841369661765742010981644557756936976747598308846673400837152735815829150493068669689646314126007926884242490832041149664294414674482618174670528063594388733828870074458058756432053689964411159894752817014324488147420825840596237471338586786149614841126911083550103661315788618049776337882101306440566555212699813239403084380105850733289005907772427532848281655914706290049547749885405060422003285759186694449213156996804305003178382443612407380863738490768324201762262120687178428877138376488929134535716340203549551497464398078236159102089847926785525335363688081089847418326355385711813134191101693297850926075913658575342891203022318630222768294800141062887988810405198181764056347766049483301123531090164304764702358170659392300774909121312502161583889323254833323039262341025738837338722204378076998770890777550381320999531971240759526520258808267714231356627750799168557289798214782840745672052679459811688500650424227495387732461625738359180724366730706939318167045183107056923722060002750716947654936294528325397822474193116011975331002018502143681194091146026541135421691664565621627755944011325456288311685033123816656621233568640127774732300309156239406381858487793444619739460124741610682143431661117072569183152749837097347807899734485595233450679853534579707582625823333906855415045226384535730477701398146465435817328443304516967065879573412830185756602160326466028409595741712539948269408846774969909069920540432683970106219312287499818668492882260715758993986408492899651774161984069098448332368356691515380773225455646187505724665071734586843271743755965458479222436384456963741497962242690919797291095198085427148671688697170899133968958415341562275182164644607252203075489244780292747864068719715125175109970825167395241477253217738126676045742741285821309120255526724551635432909448220071870246560720321400984244175791051680365534894171618332511988405128445287848661354646344886682697404112810664121021372726061482106921744237359203466595245063369356989648823516365782331569847708823904313112196421482632175314633535978056850621503835775478356450744991742738403089595492167130585018822609644466650602176142072666482213874357915002721180904961240710169119852695364079883283269386978144410403681617137054437296576333194384443730147406570113795239768201245881634571374659348055884215714406194207366553221357835427965822567149911313423065383710738217774849576470372418781841031055715606896098601571820064019649155476875338747139192340822846038504529553098114276746283703177270593453019039569023473240032086097137424247870240070809494205095079175062227195170728079751141711281558233006687386983260934259108543365773410288401555339928685057674428804656357422764564085838878004317293257803400367074305379974518943284487360947391999999971254677360912632063252339944880971368435246509551034906060614046935701640269467542738733436025444184285338063844893720148456298523883250482800054939431428379939172858754176228849003646757774119621013566424145513743669079790865946934987889138852496303229584039174775175828933877349968839327100756022438026032904910744210183991052896363574532005092192591616081398200508655535160369921601693756569015503311623039686336102819663194166657004845558593749658598529379314381416243248961034659782692124250901114879209442119207453773126847060943412401062565028863214603898491537847440923428610902163259211664176271525180753602947335965806494963540370142490901317651073770266266580886050639641076935165912543971333232841079091277212221456903415759233228215119128532013791565760738194016955256768354689259812127610457384190615384353118044234143582014281991205532864329065472394446435284493349334536898983317420119112389334976573958521001149113330328216858485453620599956078800719188182583513228713394322411446914052171321660202413186398109323631558019435269356109067110830785289743728492971115501989980204219496725869257090358091038167824741405716844944927597144746995743404239270798915025178278644033041326199568490802671507572520362272456718306883028807815659930781228320363070714832661096083520490680629189140512726391763130583201864904123987198465776940386903813203293080389506269118648229311690645820192548543925550157299699147410200307612523596226984348910049484346126641359349918898136013153592480533636452313419638553041762558141896422185489218542457046674168076691410797639243866468995523020475355624416244815925950167725209635933471824350535710568078889724651115105770382640133043036965003174109558765632141950158094875213598822627868938079380827037438422426779134876624989212135197526144278221451875046166813105243714151303989132027425133185310548682092205027055540865578205931922405587131564715792703938887622162506648178091753310475489031323805269117404388056661015325373615910857276519546382193594390415470069964255598987950438999368395312647087889087360386532546547248900259194562707339499464973265740697126665485709091752994315654935375665035972426068646495868140528792962702556541491634296554901567257258135769551725240035270218892187456340954459610765314259376797488874788165068564959121703456168005161037824665773357339246752298328575238924325611575649417288186518934263288579403855205307445772986386357104091313396723355372614819957370989437391498483351102340700764398852344619925323769684333928040995873693149923303000025028767806648768003368659603168874797657992191249558745347607825771895332661578017533056330340298773866625879318190955685941076332023118166987518487288613602332262122248463088921881567993036439771153708825486632666317929037248388374385584485092792797226888851801314844852165599255248460216473122579507537874077317399756213636455237984547490731190742278119964269911138969585476819781194705477787374930403324278255151787882682829639403316696168204681937896993556236111144899739349204979894107155345174220266525849505523149605683440150284990403009876671568570305408701417946843232753480616827674553236065738912720925427029923032327122619427341106057284171515296564057054462843974474993454825903292745682931262656984336237100771289208474670825982955461463160426968543516383244658697605186426635570892276784236285554608100557991785702796349537084167229341027963356128126119848966062526839008264230478759991997761672397913675480982505540739434385408172217288103139273114792542714264003136083365691220296590102413074035545416729909268849448631591529672190333707818540127299275131949406395124914874077908356934076952430461023749623519691850322432975670773552464989626186530472938371103915116627105448356900299406669725384508151240100302949303817914918291493311010807814683605275927756161998901846199049387277307931985321320150288083113957635001653522608441631311395932826233505589624950213392705339579197706917189537650657030940474499683259145996011234221004263121220984832696625873025014899537090303174643880064729977028560072869717720528465764086684904965237545245108876844190282662656842427305943173330596618390392918171653690035290370907038926180274184435199267323358725230937130152205846075367612931755880361869818422936618340549735762054058185557939165788023119526656830292742442368854872021992776790815034853612819654662752508675109814526634093810670316862344369609864144527204420698414463474440807127198483972865966024045784795348334680228155678153566983254731738109721706736202051617719245176789673421542189001912397822189088784180831254019161099616000457377587137855726824960827431417355800302126640788970918933707349506680425278610686767539903863967985463679417973381975121622902481185231179795334182678311754253137726994859484739689247644930048170426195344721594694535409918880108826222133822651593811380397025216739557716460252369167585263721445365318149401091090567366947603386845466293785068507877505783153797304108938462429861751420139374210296604553726684682424427415856914074638634376547841028750953448231647047248442550521694827700965481523864197624601155952422218673837184757455892813181381601581913429927951494835801161096714559107682359491161634691820368501087965839711399755342381150006124575582203466423325180404874399007525167879658393394305641611155861011450467356318429307696937884124277573752115500121627193155471504022765946760902368131145440968146614263737547059918827636613098472191344966716502783475890826502865398102816102167864434579516738724490301027373274216487818807193324261558766246219834770038224245743279666711945644258973636962604248760731294594542541885902345458791818837995086136698252804510221035201059269739750061183775232215212320317743535367748598392379916734484334962230057148387273000854288717529596630595582013450722282740124613859097608661358697945376083848410800663014464550216994884125198725765054920970589293902798476167072177488763729368099820233596750526230550951371538005372011769600117880859182610539478526831447981040619588118734386322724345608192219848972544464366817270924946083633775814029774784881373216719596513590813443071815533229404272388816574150753790162199772080718252933415156205795909666901486713300725257806959500274519048207253360371948710469313625632551189795196875410324695755621747505092821835537014154931903412450288062472214241868437880684681289507083167994561842812339465097518074655144777700082314876477324702246141622739931144627038699541178004983349801837566791006010539390067410683953055060741514258214597393747654020778422400485686714489377157066711437206530370869256688652354185733433635082001157637509530563261158401193643867829068036241758579416758471856253444423049965819712188221368275193239565436742704816997855854493999563465805044884655634644838116246770069007225919711288396456564705112345647957949342226181331166422256986042231903829421442156746223337336749307357063668247216455142634745788393683567625911115110738282329144584767019433168564427400611899017669724520461360358196537793927128428579716687791141947076312341798673119733018583737197777051709404084622358884066879076383059846075240669637687050346849462806051904776884899582736664360923059255972821161198361349384431344214905606327953868398054089007210816367384547990522928429196084802691470948632167871075057547031067505025269976262882188420203221152553207340750520855457143670983973418417432612089427038330328723107910101774789611042783699172343234045254113903593690636628551508459253530340049661639006080360794033749994643404941830123753190036195277589844171884523826913240381765695866985796681693528114837310732614812114850339114798415798061178043552351756576366986310522489299296120369746718074789128021886426446762588469564801921595296463280020845227007223491020631235894682573150039047006471128076053470664489531611243650103945146068285419597201745611114138597577920659095057739078548307407405934798332572662155285282035845530517632953877158958986672777638093015366497072932787591130186183546234882145643285663021555452507707158115743075976881261111929943840729564463081152913850386147463654063196355446004407265159464512698772276723526248915997219366614150429432381823496573887192033518765548732602425293557760101446307730801036064937172043166292419060084424930005613678183998900699108343705811319222462019514811153603543961124676422505241962410149880691512143644776751145723366011015819024200417565609622575204879610883441351358312837720534010796590816592989354453914717958261911472824202762053229335044434888741504056807798449226223416540930486295536014604965918026241393188038065483140278395600630374782397848689323838537091772954845801613448672245314622333311136875933402715161377677291481355282462698688024235196334572039831028143173340138789962438711190222436100799055041125071529163234513865605867036908941908055229206346574238210897462071028133822469177507381604301591526575383477259354041043922384156551083984476052645956399939282705128027685946885976784110363859155047844021640690146922060202887942316752596553613060582495605538721153903287167874456035485233639214212588000903998298793627016845767600434609143638211759878534572913926433931818449114767177766070025146279398793010334470266392580899807266581662692808307623043559804465494404524960192359818616577509290662987665051732930231187333755574601133856843198938575093698478986761467841872299143907775504939822062223337466005165382255999382514849470259505045054630077276052678079155870574865800541162515665293623380365128712378175886104934391719586658401774417381176056982611939382798595806901399041352084346160765844841506867094410864281824003639425835261891940637574392841146412550564396369470915811159796199922714368755234012761320320709142417812704840214109559907640577725459630621276732197991936460650592439309994823191974451446081176580227288860912315445569744884401601906652467322027784373271017736274796065540665389568351776596329225492866271481954958431194363149629468619535363977572620408562700951788721392456967963335488472392348115164100126563340515041200857974182275372514463756113995725147775584494124422812685920322567453724838982813484073048242072438015508649638014484456795226718050376107919155328160161058869347912746591426202420069821313495476417329366162100166291353482892810519369668329116611106215523777852898469138675351310022060781483249649265675308457062857189195446609286233104605306468299920680967871144459413949015680392202307311380687989156819640321011197302836084369763809058660528348574293580664115203382956336676195415850136198815717172805610337203057342467753336579537307493731981056958867595975465463205117062361561217946157393648652739141798848832738657093724656302382220420391383987664413890221223696242620462610426194273155030989496384384655901617809827023106331377928770233562626033127481329702016087689891995770611612744213404153060590063101243896582226713666777156291164376269319865821635863341513709775260692640615060910564120451710109147939726735997022989180494576900473465677320886373032888440194729337268615830291688414654463035500578701590966260648782310377925574780796475324489372831932246727156729077035679876962910882924122746661951951831143570388000521232282916672626836499898498264205471673628192186203624369309325496240663756046148176285509638831756906321681355075266714298171279739463605444926126063472557574661103651062300579657059824611019453086548868058657985251123415066806981029753520527874186369083067163424229167866225242836236706451944847274813382806889945359451369277285121563310890742214669126119983175435604396085945778210973471797988675672534242983295732591091121173973888029798275342638050393066977892793626493924583576088282991065437723788116672689055401150668619988347383179728575046082019386758370276246087250333887973494810226878286416934387702338167084981961093336343983949466824871181005163150943161026489215398554696506507045247642563731765299988845422917554745251475917794360830507799608073765618590534917410345425781507319693499388697116811318362562134701811741617522068970884665934131876906242168056175622069522591868108937995082085219254604935028657189560978185420082168049075390739272319158508822544614208411163840886605192024153226064650370888357084592422306351832920208593882699051602994221427291510872315155902147788854790362417632454783765042635965281624765622308662720257906102777207401471092512191681533773494082216913551844984627375187266597808731813410450337495887336176649032638767760099263910589373872688339160013958122108148626401395408126457364549553410718862607834313671964053770440655332614397305743013917342204096177725749949991838607307114010892188225559416931946116104137320064847515662681869948240484540073611054674372430626716939874758244875288162839011210388935603580110954521237064491242632713610278869569118862493858717359362708568793731545570676685522793271865818265411625249825223514089661329379785803670421585096542942314140854507290828454533925121869833847585432807825276435466633475033229700234443390019193276579444765335749364940721952720143324111133802198882949590814600242302209383591181121036474049004733226093036279093079371409928766386503044071769569071403722459227418838274418720327906600613216185696239764437112191214250569980456125343505147069917565313490945974902085498516566878095672917360621812435162624233624670367713885049020620819527577322478134345511948352521780103892685788429782781942448419904061357597426866823962820586375693187174966208168153884639377476082163614782128941984934228748888121714495857402276939352553456498022908253523029513392902641342127688382724410207598060796965687970941611695273967134757943903029373869195604832882705746959753104866703885140424301137646665498098315545592052496226518451214916361158881115967102436840038988523290417684606660728270740545394820755495580318808613231331694994279861000853221282009277719072851791128954877339649145286327449006756932816753601097771275897250846506714493004392462865465605638274458594910498184585056239075427420950236444514306728235097712696415438161150515050239494723301213427748266109319180059722318280788990815291564397692802255769425900149715900255851931872813292455487455355142538143679621041758160957483358277406943468979262715951014571969823001381615608129573146893528882359366945171466251238739045163223522679754147754995841052699450616168281196842862280571954274100228943456703162265388910738586126184713880364563417588634086849731259183723524747015867603682563946633576324462499234547977189468024372220534275880666557367972741076948446548490778843139930314125222074672167626852045991764834026438395294861193328917184477327102623677429849536921537301765456659505723904226035004725209232890259900117239091507918062594430274004194671246391331155845794964583520921837185718970844657343715606861656056596859346970744542078729904412187869699759480099677705152823617973250367255172470093740179684016276737489821593809617292672979264291855491413369335934258042514109696879733186084952321810060374486165966525209753692558991341019689601795553480372178315650638190969106546565323467814426169071425924317138531350743892958942324724438994582638277524791794879989227891179997776752664399271818363074162158722521652064147494616442304433561033334020218091514984136621441195242794174001652198743149988832534074282288145354217729001591742678941060468615424861935839858795246471264352972878167862860688397347818495700718070843229544259408192156991102636643008875518526002344179069717191945333116556353814758018625263022430541875682390492658708600969706818284852944116402713932032207627481218916350461060495200415434056210814378667109792922415832064577281326011330712409737747330711145941719484290776419652357516343245473249507828163711538366592678408752983020242443544508335257680446198453530090544422109030819955700601128455591600660253660559795029157365060638486493266979177841103452525075657871965297482859939642516607937537037808398623369711154995910156998686359915249764709711868274271736099509588372227228508324765698202324841775694413227314814589249207462307664287408698502409183706657496600394117671679465127814395699583694067996053975267689499789327381109619805852175109166024028964234827820184828177958289393816743680569544789057540262697860431653417008841260033048728391401510837340650944812003779810780097728009931701269757417483833404471332858654246910388770012748136680582418040669395741093516907867822629767359949400966931600911780897689361056836798968206912527186246613137039562586658292837153424749961100689601969791971756548393453193142578646449661998465051604069195509416614637182314116761515743114195078300257681153280672171765464059228826197945195312884634690603830259470476698757030260420934725756505409590041596154431967415308941824078822215109115813759139958503704910539914867639705960345613464040647226564030895168184562426022910606843736432768455254338769706828536937024217149290056824409403838705345558179949184079715940565623495003598159199354870541592128691061771847239251380373320575984904796934553950718270418326212521845604868989832815566784584862268634740108984139803052000054045233877805465317957489326600778674664060192798097253104953185487987411719349419936653743230502488712521801187145366251110474950016156351163000092584002401209190785951372127511567605619538549999887071048395423913174109309965822666731726746008964577131328268628964897049462408197016512888367727928234910524922649676744260428967222569607000615240409288575367175980126877343278967527510601129422203294001461022171551923895935981830662786043832374750367370707703082982872809322360025092232785489361768310922694047774720396910106338208270556009814315625409296762667834826154032899848831025109799213801570859362169098552435382346926048063221633673804152627438211211411545526328906474508354519829324492869087313023621522033109964480291081125355063227775196517067473879030390256019977378912733338462442345549154169577544158513002651038834747076181851760581402251006388628226038567646109107773586645668482355998490012400152727242339065070208718276351298180543927815700069964345111447847475573124762619180527063244405707917850155624671086282024818840901411741011370154662882859274376435434734614923046543578326512188058746489113481475716279071256065823556821698008526506301414988439452240898567791007070620030058407900024342057942037928865751258929735292100383348098231915236877180021903659856284169097523579022576564623076392456751679651901548311072889036134584104230537589258721544980348737651346071037092539586881042453470891307929914111345414594305113681380145630926102221226215752215457171619018844870492520342461459848906306876054244569353833330625050549935657124099520872540095630223232704363131800746076002651962492551310596773359811970117715014392462979863543970543304770643985413920114777335151719374388873124931395779716706923559245230685158740883178552666390934625620448085221232187189937195943717557147002377308775899323161205791891364243718777121151389568947327540822749223073671262191296609641168682627912196463215671280770967066428248091654581069118732051753352717522923503689509294902908122586911653178973280397895727356580390590262638808767505143655403723517955242631880813388715233429246790125843309086922622218474436458512235113400195677059820240485855686568172653925554141621969780930607852934713555527455574901533246016180589773791919637018790222994167215476437878262029726429901050027723629518605900400546222603817591941852134315776036907005300698536595932631965033781434371676852139163720195604457429734754002646478652120654055989037045455488260125031035654422968558980664500615082945941364492291803927171943077859743868865183363523315246164615289962011663063396254371059421092816783867915728912358710587215741065070630033727154399190334691128899428628059152367429046937946258805005366209530392369102132638666605846730471361123482951155581274605273816687096310081941794120715360272294592410778816826119825809459692839888542537990624791418917741833494799544760033718783137099535641193076402471082047279662068960674427013895739968457266979542758022908878176090961440191029911062252290442146203539853264357645208645827357150827189189213213524636800384435021976361034632708047095399897970963825012961071345830014190279563793159737842483553373843153572590202383551581585841621016403114767997022458154528467543398618636620585506206902158974560326951306833612326530186462680169515649782428118109201764810295123235153550421251443393797674802395101472590340465609791040269902027503327846977760791039518773016395999061393250151448003353925667883909016611586838880803195754836604174522651927098460446837697580378886037084663121233930212995185583889687254737699188399508083815268520441387347732459723513768043597347516147913783143443125184009635377184499009327587022952488865729802247831203510989490234303884801737459574613738066804099742858834887547112411324595721804012092992399565265103861265278450172287077182890617171222198518799668088831819005490785177150982151288855584299967353539836647420261023486097544568808653652252819434960860998380233431434025322505237636449529002317501768997217419837559368705082610603246389459239199519496564939233263205998551331820020295395513480656675231357819361249077462308447631651860568511688134711170073321947209473556603186646412311014405539397704602115912161183330866856537618629029669964000694452240873269122284569589558471736305632884203251851268051901940456232812768896066198185978233647087161930095151095297922067308558616858493927697128777374476514350265539510691811128594495209547018493252478288467061222765047098378810071501632655853018947492088378360414001409757579421027126346838460883251668969128765722445448881175280056306374131704980850406518669312332887187820704101553970189940962321386544367771583346367173836226098679253331376166345690953906173063792550410715702948483232550887126563990747790564858333666720105773766781456087060011759011871452001930987451341385144347677247856475098497763650501537825930440030444368575438035083216900654035161503350055336880112641007890795432160035545180349811926026644731066617745143848124695977466057650221168284963235364545446640684984625348268065211326779529645187307589721924231248971036781854834656427112159905057900619963992503416657445778184116208732858607427643043025022724968643891686092728429439531686626979984402053941968231614635562775948311977682685330273861177877061184062692042619790600254738523212474528666745580978270763332903908947849144509997079187841480999447832560054527052958276990949821832232644544362450938821734400832294410299316301423796287803044696273579708467894159828785177129565048324534833574111714342277657333101107700855090712999643288659695543301340588476637694432254148868689644966330869372117356133705942396391050371356229983610029200553873401987187260956500981419013418024823986942578922606538496799166549064289552080142110064832796022746114517985060000577967312217563702953140509865644321068524572243480223522023560319315103332151438650165073205037294296539232393463920198084354285318541662367775267148336280198683928604899993576317021171565423382565161485471553972060154911895797269391824740144495128752794153926220463146233152352161724140870672559894497101168554418522415406424188509476702521963949726659975169687228010165950566378008348353178532879460038513552584935275953562938031268602125478507524296209775485248689150899236512705904019373605050990011626407082917455200184104811655155241471235365904753217899831786723216428359024389171247677559500368096347021390920957063387853682286607242268141091013049216116220621526901062483984729344769112289593733145409206314690569707116493292690307775851265779097300745958884508889036996006989246428724665349615610375086072185979407087346790746805123086068751814244019427421602194740840414940544594285569580595950739789417238851235101055540186622271141062215595852144273888830996210114660951873078769250843372333528286391346147424334438546997902490430099453394616936809454714324711554387177005994174673495986952780707755594167741442512465904405644850831610048878961440203300838632148552175761397719328645794835984066379768306572323169144194491881559226461855119472233929915299133772771209933494549006471545919034558117613049654338479329312197462118480775184844697816721239250159475161887251762342425654860537168626080731634249918899428757855699738813427680313622066546453253581269661825217795594461927544132021976595166985040521811121423196534588410717392358445789947907332540477090938006334200928723782940116333466214679961127393352597067725336234301310832870691535835744572242097484096815353815167417637942506210691974586158208314469986623852452673145317278538136705494801701197052293164932855589312684309312416245781315746932267326158855960109938530232570461891582264972735375261399209655595054571019851033881383895580325804933243428223851739565510050743588106677807603643682804935452739931697533325871325910396887519329941386738331460647444632331361102380765673101170365243479494447541299950879591202099725454096856804005467985173598558439773236279548174581267060224352862409024330975476015646312075149880853960996176911714523425965059605759155334775529750251786570045210536956040330145948949415646425422876357045703804291030418588803324350075841184432012340474363051614073884392467551096700302766297889171367934194225536228865042573603974563380096321396418957431617309196800953934869212299057933432944841205568394989974500992858171855937489662662035935357211242905539016520766206011061077632609229002230248895111802105399950022824933171218023635844062796632454727486409839167558610714818885807584264119565146313389400336543348057460990808530478382428555188217915229374979006552906421055831834695831083664445717701480003894669688748066908539735984185795908307902764485459324215480972413095435133773092752772160646097571783163414336445380970282517518378473413071499143163183110649878952204307413307487926875393768312983371665721051691022421167329316117556804451135719250961544417052394892425518685517147635682927112480658647844037574050684615259525481830715121891042146659447830793995739447002285926274962665589820388404043591559420804300742258362622949384185693192561630361489408342486791382052599402889209947638888203542552226896763818668419605075357500384630330878705709451711597810350787544584123646739532300214098590753442616173629434430256657872672702411123202175345402534132868947111428299331789663959533827352653769605739842568609055435021437402784018972393013120706641489641672693698313288751745309675966216363917938568517288521327804600804901214485708057317976027765751267753935558308866129155788058927999290654653091310649740104270425331164649386759978331787202087591402744762525400945877377575067460420850948169234591794156578503380844258246642085483013566988288004894157521778711208160564542667498143032914908091781653658941974091239809759272176068231669447958777463655151576400172225118779715368442401561088687807025743820694231324138485363366612070898750967534975769489112370005945808099769958967533027451718106174362511371626966836176455464048417461850924338259524892824170804918438548896456226976042853148160511751488891724992254122426659289914550701973943709191656746977725221101891757580809913701940301006424379683220169907535873550205565021022009252169707999982912610072448342597656747985592518048936578823531647330837845737487306161503255023397816975336715805953309656690385838191728706005753506286672887169362295959836101241040977456809775728344744865933325128782468678627255980150399565225911452349048208030716692464888139773887329996075078151631127373396985772849030245473177282561811612984641235897333875066927422022866595473668356857789760284851963387417990184021850224657276558143442141680836653618297535356376930703393010864973220156109221116568897586045106309242592646067952137187158640909615501668465286227281840797520768560298888403664332339782692717026129572226569874828241930318204562488930416279128455240128792935368474145783735620328406220597991446181248001608870860510688238643698555042046981881148023354064583108538035266079642840792574380171674574126777622417533393836338143407189773453250245455293665837395210670235174296200635292143828384364465921991875662479228901199140235638171160664561095547839717669354356732682558765054661498002637813873166962106152131006518584935253191694078249602617017758979553711186616515912971076401339825381778572775211197037095591723276546170855925233716181919761989628965612944993296268943857586266909306641505839381756133857207066184722411619237578263100324888168851475694311841782402323053435796514142148974782759533687624046298551455066124149251057150218122908612984335215847440545978966303232335893903299829005015274774974050672134428230289827485892059400938709777811266718231899794866001524112014949836457290129790125936760276949232903559738003017929760830015844406015848691338296789975301454040995294615662618692515295690192643063545125170105128283471115908744023967046038620237424058709630947408627589747457332573130199335629088720799068881907082200957161057323610500459919702033960760146280693685689774340702673673987558460886909809566981814637649097606620552265466628097562338138914942992617696795491319392558926505372919112933259291955915281952906842419011438797658965665529182519656982465605375741387928672540832237194991947384850246076504843606289390745086751660126777031208176078421667442434876947929772434926533569041104789694735580155100080084474694849762623739738546757078102105207669490540386121099784452129506745000867409340348461973312681220943210063505464494813082509122338466026813686335521211358425623796016684071271700410097687732587681648515501443622081336859600905556256798673876173107807898977828758472875626605557964276484123353777345076905476031521542795802271096021845856963749966259679945293178160704550086909930590436765535301538463339346608497174932414295355919107164982529070304785099161437489180103332230853272450845593656281666627221715841913943857376423238139007975025072355767637475408216823441420126781298887430793094322304570012748901480640227862639477831132070715775318022731401904658481885391534508480310239813063179533474891948883336807303635365642483863015063601253767087120615219093512277542899889687108542513046227640192153691338805844211987051940085280036790750729878137304432262916232735383869057071641878687509347533977610297353112134149904440474006667107125266571748833432727127057017173437401105717485764644851150557824937811694728881820869917802158817857850542785150484058225173350899396060110127045419379840660286497357411110769113945284684583354866683808896728617338735666088958961302800162060321172255833744781147089374222844854163174191941433578235008488173373072142957282927464490069630473955596997471593212121996559278281422333389908512246159229451684212278537963214179901576479361226530400987505881594279524574453834195029527544140808576711267360992313788991573445384876344598696522096324104493003040312386997768177798996594720697571675333169411457869496123598231462824343643340415248602276450640396025966975676781883443165011902122380692735751207788332684257280089837786577229323449511307817587353072829763457939190283098850817764295751520741831040428765305705444630369460697719615103041911622145311809808781254567674651255197126352350767404191467556071449403541003915742082094885879057856089408243962690086137677681354763874414223077980904509606746422235972876306717779814471883421934857528404611815413400779233533695394611784731788668164407048611009129161369413949214143729618504359269987325572801390202733217645192021447852581945194387406705269728059507996944584625281246403943638778093952535875682085645128349854532147955217076699215981387870688373681682923943035873184893264578733854353461148529311586858006349647322392575749531780989751263953744912869889547121281319823346514311836560450222401782050573445365876174161933714973473421418293818945872662507057231439036103968234116983646436468121032507754311715963825658995303524140426767868698985856518229802329681249935676574609665004218200102809186125996339809057268743836943715171888339852574604842909783285109873053096230309799532973824784820709947086580358410712030740194813928302634291823892216273472467127923880088202756975792895336652519256217698567202793735341926522002090126115920439526401170811960248726450142249457213381392799846385578031364426328244424574348343301206728744553544591393627163650740732557678360076794223494707242662872158096835473580075687166111752058303500636585996068215259600558339370878518117130100019874933949324517786608784160440973876668793161570947605974455863716125075692158621143101725754939077567460044389076268834967302323266601917178697861633478379088308155670266205839917870856836976571154151206148919105705718431749115415155233821139558856896487345962446406335249678077896165625434166232074199136802228991829906505591911920697756368574690646205361772275393450991779302864049221835839997381801243778292894285665987844961384677246472585064221620533072574556038248526386295052382974100170931937460597463461257993143162583266912024819253198756905120111071606431670209249789811524974207315567048370322805279286770980158843946081464916023527901570431084716541878637928123585830947618487850014766047650620920939464585685659446459822854430640316526647824414197849258020140285252307807803917788682997187838366389952966386228005632021242487135413176644113498623306032578251157551142442071369395874521542143625285311828676866304749900069481965391912658071324620168058403323334471641797928831658205415583919128440306950198517258740625908786272677921158862788140645908346788293024092562597584495737680021479157159793287075896665521178989982555701802214338694703422770461939671719246243735289148480910359498853333702985009970256386318579495022323515614850265018911538784786931575035724485181318339427324905283915499737363745438275175199872904503545042961666866337725356007553155108878051415499850885956088534328900707434682010284261593593085436740473245813752185255708530374325821670006290562864978685360240388108127557762093680292595045231264914108202103569534738352070367858864659808694158456893965105841833973192764616367784576018618614749206632948505155730859174924480243218473269369024387712090515880048398575438251981136911087155095363556469687149224104094558607138442871671145710840761007024070924615814322817082530647928501721237436051742619544352552038705327989370996577864133840914176677768523950025034844979897489270053026090752963988148024720086691390425815556215561923486903190740695362093785668725441651076942451632667575539120681901186069873989258386518598745296398402514409723769471399749286732277048692391517486713667451383593641103878447562156441346674963141264320125067145911862261682297025733702185618495386236845521956362315944021643545512760823201265711243846527285515177814003219946995004530993421388722181520798213548650683150374151150778399359587380523065481029923590876126518758966748048950708876697214470694061928087143497910355731136460286100892558537275698180325365531079470907226925100765904767655398868909355123171562592365569160068205218876032769946827857791736409780963989961518445967544743021453711788504666733063852526802340986298339400687405477493339014114706343370922004871287605532644836859624380775020483655401975778407807345980729815810572870959872024516842145017457678500003931209525024874843256154150591201125670256719080164538278053038937265229793724449532316438457145525426008708986484305694444750236503114645923486714238651797193825357837072533394041073041589938701159282854653296681690976454641845531155621095870569569348419743389392455976928041247396993907504063639487192531123167138018126372716367997014115589143894519572166596030088038851166937351048462124371356486587896175504829820242162981160620399282129937030531733784039155023309162115560750715964898892573395091866017049828876808500491602839494700725479857957086747587081458468253975074197023024575590356628055463206790084844934937375250550227456990635224062042255689875039636398898393103546454185000482150918262016945554120583798460974572107556194266310770854139727062392859920525820621073729532796294139014275615625271138736663451922485531745673959489879124765234223845743332004626971840658434642519950828779325798486853321814526223640394304097944393960548804255336381587725572271524225888105396378779165453443249629294355499359778891531069206023910698490192404518086863106017979716350951798836982390372372685180893166565048302544936713228166156009729249889817536871468309938265708910126731357788122241977377622632519527297322175492011177464491784391023410443000462748200820935767898101787503239118572980090168665702989633118056906423434123202777920963071499227634539457127595273606472079829045869076621990223836531442212797525669122362877129775055453683325375500881224994331381332607836672843857057436063707393719042934335769948772512886737092199378099721506889208905846740536309910097871301801613776198339542381006141244968200678884875259742813527554523588024626794483206843051452555864743355894843782104182150367160516822200538260969932654893576274924490617391374095189057669809431510116046801853188625122226299862700641499210339968053295059423536822901257899534341273524713403944009553240832384214796801247960636903893216050425021135888495982746424420824115347611102758337799709726181834124483617030269663909894632729238910111038025017175511799953484563914237296877408358657746272260949506588835719282377403877818260455140976843173989787269798841510797291143212285694098584621362907345818953428773493183204473239175580483424934946634816391346113171566166565106100401075878521821333736788482434124832768000116746851274077418738103644727874281607596539706640604151485150326556684331341491096594295596844447673118544703074639825200204796605929425627367328193443003677636716218796275744283642201705091424783859875653062615982221017866771573375250309463531931780997796518844252038617780273123949635579838570352514425965827939931849362681720420191590616223764638060736215799656002278284371834381991124981086537370203390045721731820900115424068543334480755718794912320635276588800417746108173833541392793715204837686145190817285572854360871005583642829434542990409605083574762776295448662619470975576648714772494550816378288633200247459367622750779849677723183087043714375505316621766301209348252597509393695612010593310038548586129312614693126785164755725925022371143761111835059056129292069973131240943251544277090065526154166525883108517303095676183268720444361616602887179505519558642902377396512025499105231204263770163843095990916800920212293462812474449424570342789883300416803045322280835922176528733674182677254735943927688468981736287123819526214587035525882612628633244476908799083289256811591668243091453500166337003805384189412147769756211797249196927487026175872372420558170047339771147860849043715903227779430877907910265742700125655335712730124357954749441406347613376704246920782128253594777190524654039725798306731753323251647831413765196884517959034239477385569960398532806049468880618638449977968860235634063724867893321492195404330870537685023614625787813220028440670406646421976695940757457824080203364878421410729683920640065672216001544935640437418789523377030977922147825061490316723758908640577134125717168537382015496430476647077925016627523350605550453991015932630652475970792787005059937070182775482657126893158960370675145766774149634011166605070508908865551978898254600802578881334010393772091617389779549226760466319111535974881930988382699010169732313816111352223259992689702087506214118947206309013888977419398154949533204302659992729514521551525789644944881594424668706787052527157781884218998349131086283695387306203043062614251115087998805189817099793859576367023973601596335284994907107073491429459757427665197874581019046964165462294382713374609790986863251261500753362764640086733529894076732214499785934567679232467385538605042622532457488791114979830500314847475849906185362997240182622841666883104098658475416883552366719264787721148355393070107679113808625244364253839256547767812970677739060765655614061242942082256205640769265875008546518229506391190315315198580197130682270983142657564482649282376424839405861121515906099075484735515649551847835723287814193587457169016893088288721401070743611287090903169853578916331767141331292322586578668390238190817175565193706074864643691057017764176109979688675201630356871553951952281058838229347407417177203267817840582395909134720556512532395113740010004469705788770667616614557680496436245653725386812355643607565396793305742891171348864043575291881780300559812097289120183948514152457002313793774941082626634556950012293011993842264420309644690102880397732473619205129325324231105897158315882336720627538539231724655440379349824836775379725528992191576726026153896852780120954197307134586579404741819143775408579716076415020127369314490238012917643394580760586532959318822993943343379738457801692783692520283983693168761535928704338595456173491723568585560631018524515776580970230093731846043999821266967575204851213559209504064293185204193771046976386777169836548638224984164821316742145561583616260233946066061630501344993471084074061322454515523380674361171564545849390801502605629885494033478402625884650472196995248451461260260380752001377818653156890701471912805404818599056550381737677965374640086721535145817143481718348639634957971687299705538623962043211463506531022332967930823175424084300900450772342506307760441096105396227749226943236772678860317507104922463696298820477029956088864900928371025003299463044985796540005372978553359793034840203719139772434833730120981142475191066092722032132810324921848796446394361375370819882830566464656694805924799943206001544897034735381261869212087290828698558618688077901131799065403541757911442894428409814464939026395908326595527401562562067678685463594613272929454702066965951047283603037654873586039328626396936485692832362131620795392630615601505915701571100863650400048481797562177096492781392496550066628125423373892706619752621349313998964663487820847280236460127475487498465911944370939598322108311189773379051643187201348973895710282396791594536737352708722950578088608372963613619362192783028916308140504994782393057790352338850593773739398790568572461288868194940079616871859344333212550064069579522796686404100559768585312541986198457894828557226274226371329832954089138752577833671926721460549322580581791930843301610537218982459186757484877686413530392877613891993885238451195971423288443362178681877640795747558160864671377864141839206987012986256869302608418128791327382944424138006299628723143370047306905514995605519260503778564975294850012281229827389123698772691757257747533859111152720060932731544286096650394329876104904167864987947774753267050031211125169082397318679347699244147414235016739790627080084715183924691716167283313345479435533583344852141535102602039085627315114272536910974227349027422821771260812234525133669421220267645220546927037397458907375660431115504527425056684590160376366346189477786254858429078817209951011776439560692377356597162081898071432755086293090499417814014447746998473955566176056437032885534916478808504795526324032941419838527882570736313549965489384869727637878655969259946647397480004625528817322993113183316968534458832347245643307468716031470787289151602679066403836384274824353115533277244378670936882422398662524772299819490070436232809035332694699598519828458667977445260753696464847642149161826180823523455325609282223073153450263720526925102818075451504203784371492327500940093920668529748386181970562863756574151561381931673410500348360103373515132532616656789205165369167640686077011535699124553271275320835279698978887436127622484716941550878869893792402640648310125507047391736280363134289511121336884387557335759373844213834198960006233184721235988733439027874451967445741827701554158559950878177354962937452053541242036684220424377691652775640172725006584439446062136817784456964437592201153393289292037787486441379162496373492573492202482452677215555207152390775663794801083363610238702492318046304246632212829033346331446240868897862489117362743484938490942685451861464410420260104509519115407148667487376770197961363279143331019288900151017010088495311719330317320155165320474643222856774942489677386288658004367735123530852695012401880904540919358075889409584813131454727837847000609534209697542597958557883956126385423118115905795039973197956276698010675969620765407702619804123895150637286993452240369896363548008642949079142965925562678860171746447796450031772271362140505297475735096702229850262497952447458083797418604353155738237025609105250882102409708123516633129546150076631660905998614224315968540090388968902504055776092357246633845667871924659263006408501881646375344572503612238079175749148740799077237561695888092423992664232551008940497034617558096460225764314650148526576811821988130474744305955825894735719741476769704892220724035330161632744943965860025144370431381263484589051179955137460158610683169805447510698836794901262309244964339249054494890207862350593853466908240229931241042247083124514603110086506774777967499594792331674242717724010830341437613285106395259906778695418835241883559316707209667719394158949824213939169556475250965199854082410098213380223743156810993931382539404365572704502452967078959839398848643234979767135985484513400615883177934314376438128122003358411147701077235526280263133895160594420247097911233391699956435287776224610782033322937737253998508633386684049688056923975028379119023711451743850423852830352179011056428349642470630316336153903610403027458562679066313180944012094350989040328198694323701318686910547079164132675148272439644934950781282446079277913643835683906565835241758661266752206294350449654438758483625151493601123409072937335213295413816574571462314163350578637359709527353431221407485740057942745895125958892538443990513425980591944786006580849758775874440991871439275424705259711811607238782920245433574329141503702109998774050875256525802552452064918520697345530786488014537620952018902908780567615084705081259239285855047740446722119441896095820210006311969954107642312636686688388519623547397649694605339631330666692208746342048546368211204299157875404141430171561293190584724939035463155497426892900962134746137190957982677421098886848626026867264396772086977055296516210309250479922430036548641782673989740213831791097852829676919369357931214090977298617260795631863534148383985062450323337498950508901593027990090431518184379698800128490902041608404681834183797326609890258486615049090089944948853745220614273926504865679924281619283179196465542520350201058293404802648212285263637715645345772799892882313941874024102216313971197536423364511075220556233640085973928361460758574398860795986154350549998064676280187922473638649259161787989013557480502253083345772136223993319146446786933642303660523729098745154993606797984996905613373589184466794249721493664532983562290311522706886222967423481154551995419311381765527890446735733673914141290581194633334863764641085227854153921739597195682222844091983206066096525200900729207924688204361399759309020369124790140586998915368968518179676828031372203814974296411699235877986448542152533201622559533665275038401463129078949700482312309648498268971570955540345184195685000431031895010086811862927451673425956292959740548127858219778652378126307794866082724841216483708421681467497373066859974492428748059208840240401114626717737813563911682193481956263773195737833286046048399386654369367365818408412432097417455959996217057752677272669267170384128065600299604752916521541623252975680255638524350208458406483485649913451836861958411080986663045987839098407772196044492452705898437377084366401853351143791674002022510860371933396804900315713177957183194129491189637811937970048850463253080180848555524667041980034740680063575767759580656423042901821657495653682226874580569000895457620863149070567402518908210784037496204946646405627912634256391350112125522814209297455161684666095295167173360636491485713692293679639179682671848473396757350793903794613393651589089355531130025551819410905388478514874733120345522975093414768061782676447864452564620962275707407519592760873193901178080514502389760850739766878093396365668536777609139395026801743529496034719512049977045851884804645502119360584627606909798311100812480822110215885876849465259615519686755224475134076287048629837403687903707028474914240613723604727487642732586329490794829225573782333352145202828900283262596431299080377028165041616377463464663719405850532941130243631335199217961974175177700153434176981042536061304436696877397092158516211601564131197681709677796405847078091882386270303806358396930122382874491823440775953672420841436051710231766270018817201123715562861845254706791250528516345042653859186421160759799191302499069857641526585403564875227435300114926376362567146306616570418210137027339992157617558832855012639171698818024607979851518908140109297248590952294017643459088323054623588473004928503159124363178220220373810192394761783138044364283284096869742999140990076161400570204243857755309616239046710840322211615426500999065850524142845068076777277756440571472749519699467010457858817587417160681815881643004304450787720331299945854442821541022958028023542841653353711333009847133484263901347834739973599732215019377107451256348041233853496548023834745209919646071013287376082821791459905173892162481699698312981002646440596028232769608048189273206746283721074682690523260938629927266894794246798164874547867573130966688270122102847228871529412868068833895053265153312302895939666049083543453805929749518887414935341374378565549636039892528880931920903322830191841466010948369093969705883457746648962444576350367908892521911947357537176156790617058518484384865883142176977526643692708357351194065570336148620892908125816580056590749333016998280574200299179334898709084205206436388985764807616056527445551629143547432531335465150894234770490876446994164999261788681800756861213881453257008851410549805630414466705145554486304038610467702913384208582468786673834707248012693156317860190916969999878192225776566441695151579928971036947940563353936362911277847795869670490005493662809970882072557413265514267765346457103463748077334902509379884935378712511087184877048105441519593493017921497538740645992306870267123634473955858270861586475329438575520297393312637424321848674634362182120019293171887204127944051753085554986637827244707448648658859935919315009656521517784288835945895844479343217094472083122161189243957095350317606595224094822291204805121729120830051870714163033767360020357998393665598398406222721993242880939980077250944069935556391986797857900027912288396553686934919755052252789754690269182175946872767264460161241420310336681520913752166149588486775145656225984992456632914510991978308313809787409054164531676831108159301124838817637082621129208138017346451899050747041933990017377410967411416864340061702807411186731638590347285331924522841844252813378934726131686119055561217857425995299978668656345066697564195817276672824683307808028048740745288125118132496102030354646326214141691568717070057940347375407250720331426479761002247471687472389395187644086548819894374344671945069847945359785500662439315782151136104603260557826280635791789354073485997636160546568916553856183685869841964868626395684803994314823412763454838028554570680364579266477574840952174427020212842045980011227148808011936737650054850402454686950804774891525282942774770070746943736736283304863179763470474964999080898880120816531542227170502309148113826011823470654496216991165185246654015826141983827886855915366747973863686523661441592291069230477716550233466768091187609154285463922796793472393357534263509728967915279810959096635484377692759382608346415194874205887696598234587280097666655087831078117126916527485473735071720036464317308271873119376209524377254253000134679111900929283844068360644504119070800449003936451054912081473281629665133095321513137480353894547218956201046826482015950256710110333286703380748967006262001917535428104663543237417186207793023356706191225992598367930748958868540946505377888480023606239869293205963314458610034976224338014297672210142232706713055868896120946986076478789408709248805309013066692415540259023118231085329862816282377396749795728733432276622564048405416092003809134083098246029900336372846837249826253327484491537357703814828763467824238799282747065156911738472256823398291376885776634060335516946439566235126852201312867368718850331284345457815412562745531096707673019113060232377574867240643695544844921192054315446986043608790686725320822840671397823641041825046993731844990415773362598913165024295746923884913345905000142749263803709550100148284425415660425043348525351379045275437387547245590480973091813890089653701301286043781790998081588361375266050183141480811515198597773415277371802918408052605025008541894013180575666954685808261641568894512636193504160804479549597318466909258421111714226453315493619238933773441427120175012598485794156418448817080826174632218947218070167061711021103531582099046322741440256644769875088527611535468303419286156256722284423601468592509906459265041893640837374649841941764285518769105217173634603356667614767411371043086248372289297229369972095481610323251368020226099709503309846316714210246092627764404241426904952432193969344618171676906251384405528694524411034575780293031455178425462995550221330689918289743393929162179784967035328863546959905068897458387488407650060037490675588560471407993389979647586798033968934169664036156848765598087726713655208745941900492839608672854903771045283465895671492719363479129851737879561061285724549421852114805923221645199918126457842609347758009651295400527993203025316103197551314584639945778402371856304270611088861943469734069469544132924406353813044745132017495493718858148543221184384602003655903686333357501815581693963011177407667449035372484909024093325834241351944643426912577942699661665332030767976539296118132129887357554627581930420640637894069506626015583359840791629736708027382124084988532807218741048084581755890869037258105361816140808393222803567789101481886915089992068166898090917251783303110094484811249865294256597998416266734335272674306963525642775571288033816904893464914513026371223979473247619443304950035139628474731235043372110487399709431172538696024364288793051030714147403151774309617763176204492635592275653688605010967784955368049511124136844971406037640731648654571310476152321690509441100012940910830726724647120401686380032977799129774900071146476283265957678373555461107385024142472945638644381643556088860904282831913013962132831900314816446057343659654908493979371006151887529018833189192845472346752785890597059217618322529105262174640257231255550297666309801148108949082171839352149525027933664958320044267098470094889696894804589053797201306526442144393107043243063586096671637407012540533557252188784410213417294528326454993697892240181441701691036342143916551876225491682025137553323088207533931355009753299970970437190468658288366032645951392362787040003150138521023408081372196110469740778149078760309285237547863498448637608716786836978735762583594367301142513127913228747828051155451845517486917246392875507890288344422927726520219536071303774207050158195164750091340949057203019103606979302637186299267974569931098790911987637536511827814932975123722684733846000005144065554750098887348035476081652739305174313742565053780584954638605716133666815704394427545759877272566583619329066127163432483691954370277449844820661119024660744470733799850261624519752975777149933842551535248850397956015380036751182387564530463149153355512250162743351504215860144659113088252059724105162588566207924037499472306882899986263368561383109085033493755658984242626246004235828066100636675177455068954173452562085584043506702956202639509379157297516661949270599198974813391948773121403233613488844960958736091902200896413249325003745330557339354184429441723342145627752493807848550306734375236807301307012935063064200504525137024830946469668049651736174998366198742784160265437733355135638860236201123278409229459942428810527908842414296364984496130201355325922996609492879294072407840056649174619579011003240361640171585667888042662628733412639120542577254856782544740150803716499919725550371966479482866361944806837606149825038410296473474233862047809315015064396600965018322484735095067928626625032242776321595738784969610937437650319037804227566330718270306123968729813154383433823613893626228121969760193296425293856907639700197556949098686572416941410447922308328340268444608292676695867482938474059448965065007303035676610071730318729225412981883113114916245981987043329832588743648946881307689038447749770531090492175424401038410165224493986547044507329490873999665853707843325684702943823194583204891161489433159783984108143168272365993287615340859397647041183946907199163372674500315337138351893816055243972221361568290843909219558907927436731878999341946395358250947238214043138695088523792863244940721293267098879631539717907604216729309648627760813313016787643740136738720978839758391697391796417768194290813186126471120744520996129083398620265995015552208797411275723422344587793990238284815219756813727031381979594568189997545887962568482146295445371233977363804431241433748106452905172378446798500868042598049379147810189346326536882162810064324033724936675221587164508025748065929958696760340310944578766329289159547462212996404337637720188219780682545659985165923388422742826398575288461673211255486511438181163343737983706943004556014303932911619800527718976060044844547527888798500290619453054871222487743630274751656939559768495614182535814135867245427810072639317351892579538601483338493343281922658144960992522145428616546692863666446594047530589124302793531456750340012825574766886803514730701364362763809395489655872263958319209623887164454069258381194850874222827388739135787573813890264716562745465388650590445433428661437624537984583846246729933527608585458892463830905610708274209648661076094324068070691610322902405381183093730464095948233747627396677564234273177378170984817001536015981577772512444958753535715725688830422469929712372890082667083408294869435375512468476059582286965420845235238199713932184335946413057282918389654542526133215318568901960800121294570549593654494762491841062658780601894733906988088099638774324416507780573509641013267423869737259375627128311117788377406969854268851886092093941951867213861241884730301963237592022077821275426712523268592056159883978913671745061022822920889865513277838824689766988544797075645575147637399784045147990944808947764781527633879678618569283619628194349421185580045964546720898649377882345593804016848232387066189013931421623354890721140289124316725286662976988163176137805937351975443855574299645935915385893329142278475378624588185486134206294630874319355712859154172841571294355199996320138877640497884938139008467341428532672762073250456525205813808012411868786957367324772867564539609955176146861200302756153211328475606751902242005757621890808162220624145450677035346030129621176692680622017667761089825247957946678194910295798762447319283271188407990431606470163277303013451819931984329714769532415194291277669319619251509099971059916056339175157086416728364226065731046074291854118645162325163679540419394528664894095255832813285810072236014512581388095655093764547608411362623900432518853410079528430369181556168681477138993633279712142486204691635850630251285144072511647871695669742674225934449472501550939054539994594774173808290719287946233402197388463046393048995805193454961744893547130600801944848855218902832461062878513967935811432514280918941470277264612706731303554100780447129938707458490487440457475331235191105536268387018514697267694148008015415932565936418037554485543486856211142115465025355089275624483091507005785291918677946160135633370066073623035848359770592156196889289445372586564725161546065153236304651916695538863788228758021809592745402314224073187607486633800998584963052984868798639754181615186481399471663580962930141322472048388913047678379666200937891861996032658948404215719952358609608264683184553002289389133532107796318953743516179224662311200285489123743037905725005037173568718137848894751176832959265492931529997718945433993379490042636391649128397931657164903121278244150365975483643884619462625513774385114936413802148728421824401325597981533834508025177887076330465389728448608525523881827062357646534950000620814172385677590690520999797887798070831101569118403881850954676852288808528076495491901115272573797651627163250547026161981780285709322853408971835268186025676689395108862657941483057626362378191742444327078907402494950710630591241800193743750302089954781979726858053268497725239655861648525346525093953299485788515698184348175984557282590121397990285094262220629841153613438277391810668809428765752281808444779349668617529977867481339993238020350872798430382584646436666303416592121050776693338029886435766586950188206922467506248811040819920895669406864080665649378436612613258460144859964795896189617511827951245625009433393585836479172208490831049807061190612913287993504171194600766931214365197702404093652420454868733444398894528050255372771698173222557607086415219904405757375468071676586040094643954004004606893462576006091382756752992853953749993289547702068414612743120152229842987015840409920099876793728201452790610315371144195468557605277586386845510030416493167744309676642337583425231556138951159486755807194395722776977165581002506869002152457646267508551324438970598892265700384346507178143731363889840265044438193924272998938757581014418693232615692373935011131779870087788715770349506445935606084742094702065135343826194355537910377303676825861476451427062196824721407556443710467899712157685395153179604281873762209062404127467363348530618202001736492269335977830460223638742133509261530546279367266632689431284044633486225097141797242810181022634136498693476677507889952455110407417282317503716236668768414081198183879242873791153120559418581773451627557180282327987668558097594252090822282078843209544709734741401952085209626088548167794446527877012831078879778897549458388454121559748678276498610784535111464735693800804464960285398966834740654845711079476203138291841472952534031680810749304566513596655213373406344044124982063938790925864718258374901008309270412185714719175272354917413102747834543086669266911478396828755005329721431154042631633320505095831542498421239972513248183897684971411934301194433407168397242259659184106941075614800048541762702572465837350441461897240010682540978841597566206752573666751589600905583356628710477052348667691187973136987341578326857308472221616027033534233153852892352211246890013057129798399083178229861975221471237675243358250330101900092977422321328331606758027793232764955990483656713490242446060342190863989157545451807960868546502253559129131380647182200285981124594115547245380228297501945159096357082006098881360240631183960179842604778274260431467805247863033660138189985305419077169085527645427066327662199260052758402015335250571813559323664601816177054079801218846986118486556849592973027284802299328573528798236830643189045704896954688703116876180908591337842304413366786062196512786842734958589517252137645170512503317138811285263453082839093799111578689401082016573472414674739609315610452050723927437382999585362826966966863621485010426165112108546394426347399345837353497827893851411340277380670288403929843073955923872334434596273427911899581133157510436578230097123799862073327522863532387285825761168428047357031390161340369861511870213158104199191214806678950833112874519445279941692840618485598021454239588745626642190871192107198058189981923881367120515495050737958641106346626326200648431199884449099224368963373467442852363553996724843395844249235907802995146094416194387286035616675115104197436453493422456219874166916625484301676229627750971507448234310151031931362161647366449055439271645902980089750977029255623919324431904841708326869655207008693734432662288907946657097386336472692907871863503194631636127881523353451532378912186608095189393839998800355224679926489545967635619893538210195349812563776293023154156174589403516806944888457995823357749174291963522311458693170859213033735564034893174261682025821619690289886387762982130294836074876891246405574131918614046945077109237636937500996075104425627872546675405067123560039235690479739230850153981307867030603458380493097723857782865270665673868486516185911568269926940811651275754440410496861547292583355172979655510428653730514038000703255240431169273204708136921689863692775885545122150072208248170707966232418021408120327262458861542967974394181014383906835955682501470626011431238395446417777993328466677159844270408706029708884043408537579422064167698937859358261930348796276377489007867340466303204814800446185458069137431901352452811107595640403100714167737929895708973316084681681114301520235938916472835409831299989346359868864862525028124079978839205233305374246367443554214844125141908058760761726593279878076025513204918435948345883212182958746902215565956404822645910538711686868083545912380927553677267692799392883743308785301860683702120779119857691523935553954320851389203669683704171043599433684151946470185120459146613020346599397928942609242799055069719961218722958708991344781357737737397215772314601983900323243078691982662230828281704926095314648762320046486927052774116817288756980181048796919753423639714138893431260032167050987318593189787857848215689231954340425181999832210555703694381690119729096539631993918828456244722491045819193147997091115184829976833246520352692245054200235908889008132264545086850441674863452021654101892384704320597943589347032142909994144515382772252995486826473953041339946797643106271389972943944640479088716684488591433748062477530673772571726625248320753935423492539820508774267969483858140286617326229407688067593592174357078024318799151638034366079123166383254091582658137016436686092976241654875794199455454169904497754005127909805517881744327771103918324418388880598308676291966955697024891314250062653913590027648503694645638807653028342237771079280798420289804820622065974964807545605444798311574775759071166132643226642114079680669080151427392423399118031378345297314861977613114803155367410788799684464053168759343247965450872152238272796865312945106689501695948845876990289278228858534421278894458839865857623212688311547022276449911883026444565045305221679008941982628275318681386102985868788245999080909523636175892709990666188875643964461249886225234836452391003929088940454467823465230124887208983837897112482621798014614298252464510678641184512974400866867710931710868544782955985316874807701077876714320116855779916284008246491025387971407082316337314635493945832430248068261982704269054137471101857109524025335278299423724607540587859569264264516669616244216661289362507722655258556148895384677250350056634290184616680866644831236731491916032886423465051455356091393669085238323060750898960539385399266187061634283027455263123974173434758690163680579348171360709380521822997354198221102864659373424791585801319255741999526241915869855975843717086128930046797269589150810260848901698899818284475507171630901755842930959055214345245453794217757334338466563114761226576673452520506252327634919231655804292092656371894347754107894997834010859678243057104917273407898764817477260983323237791365525238977631522699406656147713964288991550273027229092856078591359254378036011774670222490965295563207255004393764140140437161128581404715654280996324938652159460482988138688049983739824657763690202547516749555813278786782937000544927738249039584983892064021626326451915511973419759866476407146496751995487800363997292956976358604086774534175990264379193366412355052718570650026626812880194453196325847997420016832864526304155029393082880460658092609467542341579087245281093886635327940017310149562877231675477345184667255908643839222074776840654340136501072423164107313914953435957724484834535109190339306382611919711016185402428832489202928211437010059575018112606781896776540702510603322697464190215550283313496790553831223423770564242786965086630763877618558932503812460413846906897597074387255998372327069369149222425935864945465447976730616842895073200573001201363300894972921159587109457308860970738523463360404507764514834216297049436620134573444407453787772375700998101270659342903262874754879929832257524287870319613910069755313502711974857136582798950595107819569406247339068613093842258903244005891452645253207599460556512287618814586508195861249666122734286206598216918006944960060861807974728559613245439418882736562467247275739541191563793248864248498267363270288131019847665144773706373739396895688886886266447356343987177457838156209670287977095028653322139478788041594669959184258358630516705562624359908037088008996123043618445321735177193856173257980268282433066077648091050058938658878013118116004110760751127560377508071981406601446380386786097124887551384229519009583954023110864033595655721394064999567530266230819844294471305139463931331255658548736768787142087429053921106914008428050167435261560818833702912508933484694482080630561046157852926930373971967032702060730411922083674332530472131525860528900208431265402873397814756418500774483115963676959324101652638192684292473501069644091434525972118144438881624458034411668127293864430588225380344763556732282856900642354556114926015154260635830913312223981115143475627210568495779986572161197940636894218996126454832221645820070518255321000272570491511281967484500055188985672885689596015473441021856033274823845302114801792812522420689676956627621699669739269049805757288850783926340785855404304356396934948236032024471225714334049462586391059102659457508537621410662845100509117198143042591561420748148949759439097286213850609397880511060098757052999135311129220640885474780541627264392879261699533965316003924659386971411049268741987380148013736221931031659224104572523934056982615678174271164801518198744434948396607112934197134029388302547683452132059040026738320289815214620650443726656122433711589380226279409807757063782273301813545037835139883413208826221055819303037575933875194047516113510618820508130918059386975100793045818330765245227655411074029684244642675702374969520575348587541243821948163523872454187378487346675287782301891737580121253316962671318863247884698849305430128679708082478384803622855625091004981637057402473209616050269096438444225738963622360351896010483970580699381525459909170385740905966504300916357823378741911382278671644286857618377762936155252114450886143019522461446056550555869751285251336801486886479099483649604167517213080331988640437806825262453873466225773523567677355411475463226807982290535687700319692833207872035025945811987008086975485853792104242152116444640848621949073834582926095618693378314809778416254779974899385897391405337261860399799516780739276785283488006687936493006518261621688675452045840725736608125104035473405656222397476143497272341110515811118425919107529136121768939200466357937634673331176587424216498967323962240564625024962811757206067294565998199753997315664601779523817789529467950184226303181360109059804136352092313736727714671063996768345813983424881912086999703390151449991545248012249583336870985946539099729192379212730940473189014563525197871129170361858882061873305553322345036144948291964126157370376661628030183897608186079912125260743355883523945116133525097536050357769011714767706288961425822164383059930075987851418388863312381880507917447607920547965463025485993769236182656735057204766932706957495358292242290839803652186535356408544431062554359029837156663067488850855295276336438583456380459540379707047292745013512529131512601612085907165920019827828123914415950998680314914793436482538131626418381842745532954405937181723551995238214552304113628821912077572539416467008345503654649330506899598835884592418642445440287779369355293015355223488029484414317369745008403150738393229826870144523360875717564653750736951585281850671886324146370078986594972246789608182992266221189433304052550202018243193266146976503005589866389747968338633811208521410391489735219915042423259887271216592164013367622073101652575064620323937174616695429264615203954156905999773634749019663960103432054196801531595409227700807192105479451350554498175499813321689700417492333774388218288953175146480655009717569006776982973676179829504728143320740723680881594845065452535352474348134791488684601719049156961468999733759418603386177073121524543904759417687639270093604716578084119452334735033007987743320263042582176740017588445690665562606705277554168116737313742722072686133503758988801180677585478111228573697280688707109554053111724789640571528437402308446058946139660107292292473086586921013272521309561847822134237090520738400272623910811749285947235899889221606739856549266405022730028369862788810492858358247449561968393512033769391678891327980121066436762449943633169161980149853712233731617537891525897787399524271220754015702595808148417639567421597300837684818271320799567109895418135010327026638858447738142365350219488345220167243662563069806396284091294146529542863308505132236683474274916781986061347455869389213526084052154254889588863702722090218122748502036863360259705535427725624747873238806631933557390135374491143471678394538328148072668424230603477425210646834497080751910755661323825214139628997552846434766283592788789987242979215256622629312121397104614614442269919102273983171908904863167781976664397251498422409893420841144493249309190584721184494506940239860994660613946093302919861609969297489203381458282309205250732889023851289912401177743091222523563406590435008207188202756065127982212998043352131552879708674506174688183225238325502496646960367318419440189633036247623353387277581435863478652861597696061418064728320468761536885857986096226954944625202014106340797534321963827079144039894896536252815803807589235624607182428326752259047683139456114183356889734165044937073096252761399432800145014593060704912723702749291043312223591893211838710455688367481092613715727456632693416896226323808774902959419789147096189755522715088496637043101327079189534804931482389525316007173833050576504854479691690190775184288954272762026516010604646388042512701770194668508511716813170621591265927217982564057431835674639659907138847021227671563541391923585146723227854760247118148270745497507467107752321224224156098422237101536239469232910415405937077589890118994122164230788010669888673726769283409333496763514976242634322902579082404275147861147161103826667634265069377233751455630540500622740733351689353953086794851711658434109121219713222766793942869261722382621417921508362625159542284752493863210832443228287233128285112960122087191326285038294923004959274825859651396567996785981446547552995062522745390672713265266663086162974700140495258122063248294306614652498040518092548361641648531131875851053698121797036356623285889847310039242973800912539813613414994166141955602622637450726470407740763068184984707512644672865434464247363700756915915929044442011417057325472989219461101938374833404081722535981276995092752611752929393420303345609381296283500981157877040544809759668640673914226593303486753296186499805572498701120657589531766887504423277246109782676172296659484982419931896769486118347791889236312837084928696086542733516425337275355297976847864184941779636866244699585444233567357525685381485338598767413795263436561888487759993941913982611519068983468216143620875259092088145625093430647542432568881818041026104341507651830845208533652698601906971650173860138467445672540503388934554125408370666108529425383992684014721484223457052943873249371179720647868861604030327295834137578740262656030018809855821517473856832684913550226577978474811357935018728008815215316827696888836333699915896027127816430026888470287644778601450972660942262934737587931038078087411179138693603519213379847741731699747450906252738728106140579295967394583765097156847580565159500225762278879183516306284470922405724870242173269746712241356743151769203086324714241994007424383972570764710493729847177186342102095167978736264805749390813861375867418440989881201466860696936176940020075541812556856739924278060039356996336001020256930684097132754857782277436309024227413246435586399240620186823340984292890007073441222697219779040858635773796704317661943027459460284100935769799104340550871626165812255258377929872712717073032096212434727231198713130293741324980140551658583130929444150897923014650086487861415570133489397169273777558178112459774258236130980477185219149538783358882385311975868732538814764924359101087423508622614336609060196668509835976310677599336792711763258222602531737363768142485645673994080146260048164399922122347954582968269066987206912271261559798205254522686562704194756310776699322890306184414343765727958437786957155250031778462000949147694523866594994121052039989142921340564653059693848703438056205712744990555944078107808853896913245199335727516713688920237968422336402464233177113125032639946984878375613929101776297913930700401789385927437414471034420376615570175498668163094253965020741993378820965847657339746584436616199431772584884910855936270313132559022147159721640963974015179386883278307038012173984547306203002000827548564933102092328397894646219540888263681401075059610068794718629760667795151358212980296318463749389179652359041359737154021906634137153261254157756613258190959199319134632780652662052925659539999144892848028397952595428336701875277241400252314863169878615864413121500419584614459331538090362908033981904647248770770791944179083165105783099862215714425106057108631070856386329914950360173273280356031190497685542309697526835361848638582668796924400723411830639153886441425445325441210257389324292119246721919492094281196539541548630643677536799651367352679950961220475471574080588604436191616328529140432056360663949009703526235780111061034827768758521030721866896235513832046141401347785326235174232679126697799838456214236750001154066531291315127725641928129989136538705213902756502917107297286966428732145854028152341446443253925527832170959210492913521075805629288152063952257199043971370409904570744441903930720178940735251703551128885330320259771434996496147380127513443063969384895340383469674751692878886844186901619602434716624826005556148348836013245187660482628375635460209230665575244907791355078868923803620955773806172479916370208731499304645110259925942669778788309944821035593576903039604646405219254147907337650034303170139643141684374890305308937485160925261356112544742965494708378831996287433506727856199790818434293674826357134184878161233426891381954301671150466799097986206310248787879953926880469042002673786253603790298824837773162241604602056764965491751285198685514212297617562981901214927020126869892869054145490762677822246116172730561483302146977591143609101109566054409272409316905651441558015340183791585710654850257218657101134130064383979132779174423998443464631020241549430146637710643226802411230411078470760150046363327330266968516529661820166842932028696907195316600951055460447064048961816009072140688256853051235043218746456104631435539853987909653696365525879185200776936252560611809432352103549362190939533952111074694703635354154939098500350247793865875234216564639645761861414903335368039166652490311789037254520214687837337176384254854587484248531836681334231480871503043974619876421553388151697449881240385034721406608279396293854198694129800168854007712139904015657005886804020018989657330404194469108463167892304379801201023772325262665742498241007189125080279128189878463100939449693532485531337160332569778641093127710751503229946534810814573504376098067627463484199416366872814210797052702335544717769083464745115347481485790015543577145079278792566693729474302662587869134951449754427363959280291653091194413745436076581978744746362648948027131264873576066444235261961302213358694664341568369591298207112365146230669914416124126182714705903819893696950625491881288783949994136784790240079557778266986738248230577642978045220535149201664107788566350493307385321240754180845362702432685100175722286828130710565236065551219801804554684282649662657507687443102554672788026295898103460886201629496936371720107061321990286872173404026508024953547474827682226668191140473608239163610521028233942652051223285490951688255560899532349210569773463259442987924701522709176450965670122259496844151977128485357336984209263328389089947866284500763567792075353908435087674372528267078369203218431485476666718892916550799412556329469334376470130613085096471421186961009411249001998453280539299853189142694323275950363233599109573994803612714594444346829964898068918401608153261675872903004492420076595965602744869326968756504034315768673632078746958818554052677088614402009568569560777072485769180866391975872942974048225134505978665320637890325654525092360418304385538444199470870544583924665389486227707992399445140184154656416769733741235603110968269438191591740463452710506029935155728901573199728852632617296983246436592901351913870175628058252043387646213480738637669005552809413336483628708058689365721193541631164888445278151635505098218446762060385135562879045490777564743014989249213476426059183569282531110610805835802265107259821000710531284113327610207838372863370390576354951968758189577286920916546810250226151465500257001292726869779911854428956792834630407522365425057598912002121779256897544064807402552969395688567171520862513755715615994927869736454845891104319994334567333125603936117953849164429927557287406139757727874757060388057875316633052777806993234695035000234561113082728968155086021838476694955980420002943950452122016826683107948222262763293891289834219484170661313627299646536569888122528279606918222023685647125506449900269288951406203697280583448169451238139892072583177533483188634174913625578554159516779187301944615845026553865620142667338167661865999406709569359938572497112079813542410493192310248056937152561367701699534846109954393964542754191295194766096495227434706049853776026574018148222560057657761641400118692326666707454968138309508740659644853963907696312293840975189499988040927271530845383665927011953870109154785086283884297701665594185984957086813075536426169027902840794608825569710632441331162724168041390128386585291791535485495963591378457597923623099730899507056669251787441680491265559814073993007331842756484929996434459026367650465283816431750191192599429004764412345992299507812024087715365142487887277513802877648115263444229938069939940344018578440673688803593568588334038578574760372485983042067151705297920116580889803232414171042922331150622601244289497442669084838810716685622035821734683461052721087806196125370898253648392423951751194210801497006468427535713016488249519523694322588898825158598297723324476806204539178299255410492988768484622664011606278934671817089379806668530949871200304241015260985096866188055877709511436489551238594076832736084571905576797571676738010376550923770610610706005440123050990577308542003189919728173286518318952488018646466657233676444944421304435827141713044742561867017809830232626003761454671042141770109833514791366599324935413838775917988866945930148904018792835859744394884424762075674240501759258264985405997533682909281450383327148072286303635072525546547147720735209052375358790067028584074259185751407069433045498730409619265371982941005891971456024113500020102715589390517818452767629579173548673459050332818266907879769735727625549073635654447755882997660132465418235217241364303889619408440038435246305021397646153434451309898811915920296479233170893065651106202969519995573277479923983974381718180804032004899106171878050731295675391686390658805592437925454552462446382071185332559022076290278641808924724816153635882267621842493424174130430702174419603613301660489140466736645707118489874976028320806761588075864880729474623762391524556694287940507593312859175071417585689306899935685497861660507044879016630263985047506450329317635240749865085588737943075711664396404915212449952610704881046641873686361823763328150672639124852354417057412563905945381755589490699372121714160246561630112708921052774556661377573868318998540666553132512176811698913999905076467015784587566323368311425319185833564167549678216714922275003857333630073778594906028118499502000059322236564842350517616300278733018593362374387502369011371764866583722275608784709810830020094743980827234900611015709336471781307185276353887737608650313399400978633384123934411536055917887572001466749877582326938775319004997733765870540990315743624261087511558651919723151524421165943033118359607305872375607952638269004780266448791119257377158531286365946312576818982853149318252195210183077738921837962149528057587110908287121572550473937843112522334400430129007426195286929378448541520030457732441107137545025226856380779764020027735423024172529706027823312245051669155751307827604897984682265531288888028142485720678781137330426662382890509203283864278923203634986421605320119264822729859486608291954363633865461609599457066272344806470749392721725768798920444646206529811432424986397272274699624078964417594332235467761625224348565486462501821717254014889785215835269163975636991364069647508056708461554417315072107213578559507502877180148193634163413953556885983454060726188699899433076196781951824757458854509453919478479107117770241193600162967815564671334062565048676970364607851965145990144746244121726275138101380995769777531234839750326320347859975910603588722108408750435859863824262525344250451016145622483762630066406527642124852754372019632250237680251558162814552188597538284233833463178682460861748421439214159186579184252171290490531545661121042752737489490141120922542453330679067842192009208110773969753889850940616922133607884131423682349355620820617237883973105128236593052809758445443726523762693067962930150932839048285604842624335385767246498966039893261085912967745298493746734523017195063423296834991442819794179118048760324412969808798530797901139671938761421561282745456615922901915240086620147870261738927158519453529277748811454579104003918677249948265480168821339427637777500433249821033043401102520667960020143817725316534953035152104722530955906138942437984242953205254162632176471515672221334195873434502140005694287354990651503917750797891089383000897178813505225896911041385913373418261755235613315070052546713869257913944151545204603827251130329395256509529876004646705367942605733080619210711662003770232631372031974811944768412106404147962501033895660689774939683077230747321336835680217346375584221399052712103170869117077336208652523347754327284789772127811741852527801929434792875632752589280167535121766729724140451295556634680310329501479935396032975261092751782610630098467188088997194104006601615515963561535459457483197068043667780033666058217012554807846597398165357692077023967737861056351274125695440956606628503759438965807894642570150340721599285872757961179497287009736755792199914101637413894774648869663850536519495161775118691513202362324332692552358432583554279346824969818802049740896031538719866629071870289995559689955893765004181204985025397414932189943270045416134903104950147450629111268036654411050120875173929154894158658732967183129555792477103362719741851092843121571396028291636503770720504751268894858428054818591064697913324538822617804629955375557011881888905922287881654468293602207163234035174266889898129527097843865634736461461674491495499670670850292384484364397160464949648256657518160636689607207836943133830054810704960281731391201428523626273206169517231346552519767582556504914814399209309704482235652657284536658708947525045856262278997818600368621913600037591182809921062622977526340978900309725222612522381167564117867552458173281838655881238997186819311472693633756571055619551757468037435309998973423018854311694423708899266157237948754902756124495208197620019151813590346421161178570027620431113431063304135364357887573190068206351794303778259428894303627686820671137370586310203215993350172570945360076059254633094802760930110826579646653766241485703150400823056135321491326993603926805866679495702116293440241492711939380826061777617572983691180062450189905782416665781820680248552601449036679942788383653123652213375970543822196683289909498375133334403255464995131007467515358650353663832594140303409160892195929922114882482378060238840323722549297352994270422440794897803139313634592892933178519817336225632547972134881517621387139297197467229915307733757096436745800359804682173178684093944014209676426299762764443956919792035289031116005548569739928951356637052501030936569078082595048948467544365750544309271270779100859820408935323622373129753075045260600962063732679935536220319687028010723311063869016591633625700070551269201976950770092491225582599249564958113375761183637098308253474287195324149957439063558362274039823393044502674116301716661885443565377671306980735393921736905831835288535750318358585468987540028618536238856301959756007864487164188294327702151100033947628886883499031906075389083541437320595677589704960919902287485677748298699131628386837817389081060545287619803484388255216586859474259581410491256843995821836000404739516653568772382955720123990250779152188236324612094099574301729327452207494987194232539532014962857689403340103132370199389799370728958978104146078330737777716143755994044734834746059270240651203127789070242990537947608613482493192383758909177492765838668002167113932292423212309739605659612580505256173565942005338201582281739411746167622812166847890769420556066241603108196707693672296776607021523508187103541036388396460640582526631285511727127150319532100726336975348271253657247227501398093142499234117098890328223409396376444522579845535430522439983882667526254934101011185212821664475551344731435518583506853083122920428595240508115805669176451579466563950536737538240811037567999889947175875712175101633984340284753446221090844422566112658177771935508744180472394470852531197413912925258750540239323927302316697238127702906639744028692822718321988483304675997147445321229036648628042202586400165007785099388517202846225842364328012053437465119826772544431313914318223578675054197897235735470225654441020792235061311485515097157577885605724513303944952060065622466643253198416369426537967501622093139491780179989986122643850077871452167992403492050444858332014888479077220417767642384297788276300908610822420165692682348237277891008787935580026473344448406101000296836855613527481591918181783748594553964235934002359257034125409651305717713127733017592277298855394488245459383886866238479897746214676924594712540679800767234338566025175580316549439144606229198620249221211571533071838786785487409720566262092293865322989504601086300359796404552489414458701468223483437291269448077716003056311786071891026331151530592178749233016663711558970098645278172468214580024276826707336405343426556538216673331409886146729185985780473078658252104230761223034598527701538829964145086014847884317602852520964860140965323779059802275080437386122423266606146577934116425618718459587248907589586185106511663400500772817500013498368325119030097784654590702691083331688587662732393310190544034127282569581070150173528926079317857994217759478629490570854347864764570707677145078863214947478287061291029242071078369889573459283344560109357302845722704481803933917916755890858288749241271385183988359522601108937837890753068624099575115306349252701759700681588142998114032179143021163328110786832791441024176058932183301047304257740240473999641946217430307107051716458554036224996821746547704691179752245923246638509168466955713233930434690272591801626154649770256653083730807497465241465454643452804667076445644458530198545079191340043304365718449895979334050321074424353485423625680214728975616435481608614526647850061172449490555159972684898177429580120093556487454796581601718039683251273669349606275143779687924012100731610994325356012758572792224686004873992422569044984095811100567543787570022755605937186045136381397865088459033571076400746256444224071916084487599608194229475748638265937564073284590572575580033815853837030347692059614272862728337561420471763735836792712421449424926051151901463005761146839933714788522494989114187289487095324618961541287551584387228346529963547918142558035342640540745743890516204215258019114559433557079717208498126539779299145902353677257705151182107839545452346394178272955233813556841885064557112737309814452068009931563366806985392365945042096208732379347950385654849002249500945021539201594198028796893339621797349982917266006674878910663388110540224084502427114156654899718630568153025728357517375718048784254754913039114392097921496436533668028349446416457738411780515478290022441404612640505139222273069138157280006164191275047966653397634016322157502942737548902746470637325967627428981488756982262298209614990033106376321208848486776032906242577826071723035984879456065467658442838466949359794956915801240265537207988750656962688142614682728124833681354799761832702848487306536487720017795844735651460834775809805597838289895392988402668745813893824100901126368356541089192018392900078398257982968346298928831105351158377762375223347822160007776668734348643318538809973019739359734430552824098451235940801681632311701304739675069417798220133298018714678424276569868124719212128647943136960155623663206704565984245877385519763745935460266194957940303686781973721964972826271562271813251346239378156368383282748280003926909574993512016345319455633624995235158892380157748964674693115998861307886382484776425696094070482144726957554379799311655091733032282280190616572141170667259582300265009173492723607880017091061890186581465305039904479785807573767789111551979247696948775355668688839883661626303245178018322579264784346276842144859286263370105497867654019740760977636476307262179525536832558215213007240534289182389422536762281762318033133231104004483855251967589677717880772704083669601798101992030512464663844170420037515914504122045259177717646739910913279594645690149903252816756143485293146917543635196242628624514499494228473947604091001967755475790890585825884928246057602243175959259484024596570419178434297385590393059989678202496491132127998233718331867895250308672458638707799523126066599228163237355156491117991556384067704701011175989652792450625565957872960511516603618853522399610248514388253197169123288190629580101205389347637787109891339749443346111443891113390040159580234533944686903562319646897417526228496767410838010350839004392108424614241345508072836948823200705783554617232338558766704498054508334027742793760270008790010304360464968527040073740927658468034172924045036729069729159458785796733553765564120329331079095005739394443983146632842864581879221883701082309896068919116497705772971175970949143872245619250990622962285366552118312749134577278996317176636316337666888521808067475846293322902877430160331005662733180455925823549904703824625717657405768707632450747626469796311189568156599337413041615082408218393200928492059498889543426576669803997169620469364228928836166326832050828596026913669190324103964097124912497984186314415029363042747778380467752438425473272094904230240025128955647776386596123424563022240868175061927182937101169310624158544607769185805360708674174516161009836763958126534778894383022231047169424915975852439096996562333243543135389955586052430682757400333795569325864052688733365733416580562850006124029168365078628931923749642244572486812307087060077684672640215258944984311809434161464531535345777153920274333521640357514703964561016931659535846867662686765810952602787311517170826108079413200554252468720686377114677438978874229452986232752988029538768069156391110692576491055006928038171620918877722975933443708421530599428181061133969138095640922370204007473422756699473706100262842914181992874206178868575094966887527499117506931435473166437377032740948760595165046805466094952571140248130852906454949611888383364168496869808966349698008037271207983641476556428869577966941334781670760743436182600741196936781483933470543053816253623436440931145970097534181052867922327095605535296439123702151117288411680912010751848109106211081750089660150419546092088218884824589762669375708653780614646555590824648514580182066702749930610918641557635069659010869848685736605198448897962082396838140422958511582745258915556861003010941805559952923675450553679730150308415378796532105148167893144795084330342335539912530487303257132332252269918978904327661468616791426557941742892398263215468783691840967932275565999890349306984959056412558081196913242805395870226247131614668471643684693293933013469337384634574863830336834167105930642823311509459503427281517411478505569691765428128151139363959940953406129067108359805641179502424398643444913451148048309534830228047204107306526298129075693364646938397819410745930059855361909270607567992915918934957624746266547145049838999488868225016736282720915036056466403755870800857021613349296577473023749594733718085724698712892820736722615348048088130141134249245454611107400537357072412504828415180982163850358705325801971927008684357333500760911249627919082897822074382582917486951691880942022131456913851948352988314048763526278919161388492977454872669761427555716108238348125538840168652516004953401138597507045247172912015022882827394824072080778308088586271256535375600851591072348165702695494406083309583354380040426441810027356231640311558282331322122609817483471861780039549115640409752075772805987757984977167903349862842003978187492560470974098273730465522258285465524979586468715152046203097322125288804478112380958496573290285064480497602028037052971646037797948892306078146473380293415526523551709355268105079650347942809337511240879494657487410539785279187354657920281914662670954498498703298995271467242056661045794304003529879501491193356578223444062480192837029321241722752282868208073304697054491985481406855880818727264201839773109783510338301328699317210395953251808329280732350051170861352614266408485271618658116069632930287238615081016250925073440403474602415047799104526681786642013621379003402220219870065384342319069567841901618126594572273430867720664299379537647606078657021912794004004824479577463481848482572305687144816583256643252483129051627360939379946047927538920669318617147198932136793545243223968447978438190314523146323244047584334484784569280291300912977802754047497131779831997950922946337818837567184712423554773723005661465132773032146457479660598488786553171270888122122260133547488688547008210778836823542612282834918523856420144458448448750965697924068242172637627148015363370901376605314539186514485962526652175947075447386095449965736479874964522568360209142319326366650605771259935495544046849525900941266636601395680855936114766188613537352058020714464955599470585113400949044240538915453456012263102783548223982687917012196299512137270855131778196236496747266950549857681181590337361704340969969322217778520971265403114243079367305193797675663063182378481573774055998192693818020076741784599054310054842615552175632417892257004737091040370589568662871487729039785140857166753002056839609527772382388074278648933731532752689944838190679617295676574670132493023152689712845297624518664615676582644022194217397462946544466569304542676022319976050915752045946820813692710889489846025347583938265962639866628863070210922194163762000474273113561912279314852298230803087948042179790507828718711261506913449495055571538953963243937142272230413146112365212018693659965865814038842897271091565408106323305861206492788026044941726572706861487796704886297795550721451072658436437230841754992878689392391636234323154523788432205019028052718854138748818765237567575751030785135607186372805005819390228610836658423593656586790370498148832445173357882543339840331851324150870262927076374919883839133263209658205159213100118581867031482006787735629605442010983423972461679758824794094914131955988927568554353213188353349695658652291831015196465836552873495866097641335884388452457324753237884666843768989334837555655084966651793611168982778061517982404806413621737991367276104899085837278672220433025622358836866959272167542673357460141362859368686659192715182936978905550896672375560304037754919135589508999529139980806427513150303837813829796960740750986904235868685004677960899105897490770185837162135061173680161746317426819932888774267434497072580780855362511593357702589170409882606293046877441269965662621078874038091857718957643907812452087091511743113448522862933442689750141654631780796710711568110080407706893066337560636585097036509518974741374551173934216631947353446055647747770828894985938165994649951460781448546682268764233640220578512071403257848456244695586600051604441190247719268600141254431112901793574981846109710589146211939915986073741282515569294377735408469814884564253955511292567736486701839110823293927151865349087317064475258634287557475881579889006247847985081644067887298442824144993738598217555327226285329459628998057878016550347720121964422650894316361213037613753867164211991095074775954386586779271597470061500528652305396611533972226279981373458655623055921709649518716646486440804046685772640134210943705972910756184269386198251558638891306525693193610005581216622778583405573384064632868002164768716379191403995522703747057528591264782774262844558171608752731078364039403131396953784412389767034412196638578011671376246382970635375627892759472009213725036285159434793332356391572924282439737907068361708126506745198435929180405631170087806278786397153116888952395104645061312395288382119253657474066992416667841545128605389182247086755216050596145825195897645811025833205291469700911470339560686719363816386294791304527841468856104624639828914462042876980674831298512608929616153414190666336571315550646273722726809164011463920474447130579221653793099934671778997567955897720013376559473501276508595168344182834831425283819041042260333892131723753522886986617703280557088051667061099640693097543583658141859164933573167734730992326040293811755472733671880191520612314921532576119710554300637088258954074201151264724335377987022459437334373603935122967836885524027832455041126924579487206912187163351233603140433057134472016829714206767467751807095390916429293815344764305128355922376259819324862614977759745565043475313374191303533526848460078160617262125830647177127610555131073720005202394231044512955570151399502056650282214480041938302539216580208230842853012562537234608542518172054478234086338776362546130394921928706808624808366971081330969194034127133658631393539972698043297282578835640032384372873703307996801758663056484491928277296778017981024366960390501644120021083465492792088266827620646616092720952909139593397068724164156911759931948221987313914726002549131625490475895386886046692837885527456122679295843538228328990494801127444034804016330520855641385957430116776320472953194481395998504577433306415503130201803072594138750082752490744119866437934256859695187783913559229875931966422052430907701034179795388092814464969653842087140310227626290978092893066987975913862121545570654238124219219328956784608205418320411665101577397152970846597563308355364202163952469209246026239606735408457045744439165775395810350128127085937217565910735475800710280532753011849879261203233677166210947541879780694024042236181150879926767347338148665131028698084894948806953903986680610109232805998038860071604976343857114512916515925834258451834356810032557222354016473627658991252067318487507757265990839878735289512785134222532522842228513580332068713949112160986959144349754431576308671099694177528997580004047663930248463325298925590543679240570995309711220633722303748384580579338084072519001954215953076681522365143527755435744001313193300325268591483872434797788691632451945405546401843101909501965629105473742642464637225223707692941932967549744249354856108368459536519855027211438505794044346993574730273989657421435215377906094711195774205102147631543203354198923515886295855462446409032383476757477908642326407746264866827919233474596088996109477757406925497368308407227830914135134861030720410505446112914940840005458679946486696813326470924426422546343554324505390682646152772612946171044921611315217695976587140063892872927461054398619123990152860309133485007374369041097453595614602439693730842412750919628606623996161818918107898543739133952719399694597258623310118947359118894552948575347777900149327856866678865981319833544612731933476228981182998957252597179090834190531716820888757679587987898353520597946180929981690600072792243107722616186537218961961935832127983485656897815833464376654730043907660543512597426426441066937479442975206609981941500345529627129100907858542172719273041492086890435992476576722554379686607489283020863464207495392419963900800519624270650308731789663048578657061602448336242751466418074446575023431401326146200027479152276537277020295406345053677261822084493756806710327717092802172315916746488865926965769023807671230399016978069088298799130979403341587011009863900249310372700749768977350298095451950406638280685914959444013156967555523071527237747092991417031107915732166973391323667759185434442817786634393770731572111452529087676597207491544039948280937542537626098155547401935990192019366335790620189629749437386818131922598339189210235248628804526108241292377426781464812555440266557877490758710364130822595166447420062001763502556775389383100293343884524676033542851328354331516277909793915582437702325294669817119235508917193632500951762204676303618410272693967999110965268351384709888956727717207374862220405249779074713052354843825831305959973551904032060334513181883170898131419563276500106750683200933323361658116912926802427151444646386674298679256186252431705182201566733662480483048725176985512304883599908217935332920127619151116233701152826681679687496600009535689046462186481890766123412726985235128640743407881660839567816516114110689301177575021717229799484445294581571226114070336149123558154453181617590105656324752084873873987260132016179810178666043443922694784750943791339520539941901418675288628008461956947918514958717077824791488072578399289351654479395111317370401186566058157872437913555073505949288608425195984307879239559257086330655065573684859127193678548775171697720279100749085123952849134087505579719182597872005101103650521637142351850866599976553666724355901165060231248886079494523673520883937691105915385276815694890809061892793672776339819851806046938668881977508610504688759069083369879380505306545062355536874197662406626713373010192498786671283358991218935721520059336704661343087447463361562022506296440843201965591461793468098697993861858295665071536808191704603367628084369500151300459192113274464214217693202339801620918770343740002193688318036644928060416793721286504445214310436573381512525172996506024107517281101518417976874922683803425857159519352229844296230695575559256374791055264834498445079288346302748943049662218328830022261279895435330984640097102043229629214732795660808656067298140887806123341433633677247987867250229588862602526541913460954026537553724145664451927085005750578632711494346508393748128644741315403921091211067150062376621623610184735114973427283642568969095540228996679867997917044072522601141020820375427290695526987960708573696904437582184328035901676057759019178951013267711986891684816451637967365472286984936928219566388061108589676495027277744973894626911592042861732421661351098453697623085188785949791296978352882501297539157628017967767003088660998148644867672193888478331629612498973393321973218539093542709197335021259566996119916257287204160231169669668211262941701318378536415827149560034383080225449772810751328621607930547017875476876778986663994852761231939739154215874323639981047482040095241495685951562576459465592180393365177693984466911664221978596744147177523628117193329204655639028020526535115056763934865487860401116677794958749658888557865456372030027079496455582970211294558824413072259670478795129284089077424867070386943976463178347525632153567118546316061545465146120459819405463508329570090637646474781234385571688797978812048125881586502448732570216305142931218066403806734127759900604909453626296080534338929084938615978463798247926564879181473888199812205145602959483677296254829688772467018263100104956884591178098553520816810999005221173155188750235053662947547081591245469563031178894547507238839260984120043065002336183478045361956629994328023391465436927338862769058330867205416231017824951862245896854496852775816415035876066918141539265719700884783843534991921262724329243348941642789684482513177249387881771502607957640969689240528124510708636210106476680884587402621233099128654880562519053987191248254869247667666284202167278319446314645442675786723615909986171289583156996615843457466573331563783182971262807585797605877976906091349783007455211792970923199626673036894918532468085737978993162163995220764225720333954200879546646234074622824987945560180352656553997399845647418564400217566279077134099582496214944579692851854639663844438455937901121095132632713194900700876171548015846797313261530482284185664961203891842891546123924946878851348730824173730793500524096643851694164608421996521368847832462633670806992516197346498385296095626141972042184174723729457896766943671734815560329462603886546967425746692598238790466905679492981072081332609756749791654810507696262769987961372486736248749449992209249052554227975081834711064154993221160876541343544601449109101932395901846503391710343052114160905578157063735092457905712054528985744660234923409174510448047516485521019828525854025780208161271271904396003169791823701470433340344499795222896617854542276281760264032991401791739377570776859737087714176421894749608627593210861611802592831734016069986475308601086154689849265818251637954615076909999162206007528265331224143748155066408679954819941849202778494216823859245717633791529372268871670233657230101285990094838430374507667977056948146312967882760501413950210423121939706843847307039339558284875674703138093430885187513256564751001289845942326782544298867041363994482956771518140280419517023163456715387749446673547916320214837319280090826906749371596215961255666802830341989766185240444847271598973686191581607001189990451428861345310381085161936984088573698714289156415521049392112914252926742481171152894193792472756806407722931110380829906654937727620427482446824083919872307119030826278780144579444601842768405571947361453614120714280516591878487136097412172218315914133054930431310795494571077866797575074253408657353193709838449898568512489661507443053451570198591624030515328296156350755818155578152802604669024688468008731969694070952658237843082491139181701155375108255202363296577985968716014323839552034975562650170793538494862505421596722646121976861757174897885893226280074485617039492689403996369455016958239750667695127333947204766039115165019785570579218049856013924270883939306507657216041680200374988495756056722221420372162137530139214731811600476924197543050496127993893428108711881082416953570299041686586918071231596675136867496403712043022019580203434741425253652946147693218175971353751084642654615147113851567556680762209965640447661271775153546823432628393423208240016924548624013590149243001066906539891467205994882680905893420433708163091149231044499287349337124188282110955166430600425006149726598411498083249730031953604466981626266613429670393689003170701988277885684797915606982850266920578239767699545124622624089649308898602133767388785544801980813720204486751837896800796031972486512644724334912223857040378013659620037378239363411401205631692839176530589125162182849173388009566761956210203627669151375420671096044168113635207196836252366781563171667523881271630489406347840187148004012605243462880204836300470816506055050620293368895305735420731027912047553891845427851087483463303328806254634759349603229457007659369041988989121307222155890161734621823766731377169237626237000073473922251075873378165253428511897990812377371861178914178530723650000894970514161197054117471574725059387745821010872719117077732519868018580563786913214778744786491271933094959184772473083888371813358579987492379663711667944410464030744009971530501677991572775196693886485520711604039919412890202578381984311808450194142797688975489875509846800791113866688082866587541373188382123017305838724050004097613665823220065099211046898218272130726174408338888496698123361276634641566360814556453170196505693212223839032624386461055444756211082691517449755990680948056311838826146819563760541559483485607256386545259523328388546857071722363131673690872374176203957231646607095278794390479089960369742162273415518384260105236768856604452763904760583875374815961076006459008596770806893167300254012883302923959840027557103004592322910542880081996890176048367753426196730874287344886306148027580477612516436403641085416613711020095196795293163338364907893056394561592018677280534949218221035685869257861880397374109043358950555857168783193758589615333284082651438870745393670742758379773581085283989472214021922353678480810362555407605029843033797992040572610122647476898550767065487699876337779760478675639829304223366785263501691543017676622790099674918273970443632488315454930069578584108504111994527409822082816359929224866884372088793443098990232951872263387002694193776380905569620267107398098043881188743755840224802590816626010621645345564422229943420185011130255779749051857691055133707179541006094869334053741596784437400989578401912516882335371020175620632210137913941411781405492922340593901283534101623031344117190848282093864937002537803818014833775568522134474684695488909988652780880853254633158750207313726755712873144476492479635373103536030654133375843262518515876184551175099431765663300165824068231871962810152522280827575431395835103510234363139909688597397047571971931324289460798582201529560521379808260714073875318701330389957156408843828327872336525202936654927560791938850233678860068262336937831347731458179028753972697680624189414829737787967008120071642641887856483146426310671584145912655248873948353747213358493172446556837778702403754345796100171769347971276820518980720389035498628947034037024731857895332602220573470295789003947025094072428748463871849192980709369487095409680998217761635752039461834647922192594877801187823347980689208851839169501493168015674810481917034388294864562190516530098199786353022084764162324010186421044917234137256432385556871628920801539190668728296648981905649616150692915471698146251025482346652349985313140597584514266455218459023939332455077028357023264527608857363910748204627343210843230864647118468161438210769107486648033130681025563143168208258843507428489343286477504251661709650951392347587647743181413075014078018606951651976158297210675571431984918235538073205421713604534138441015159847263534989763014111576619247459419896019598538819700713674841919797227188173141124386367651269410176262383869662175208525153832343433339615369557844738370821315799744010594548943616506458496403126501721967653528421083031145238927155121378129123807402878872212967628018711630416504317747624515497718640943562148481073577956119233407374799961326663645264520645631245923652823263722205105854964086654256836211316372989161921302329501979087691509059742674011333832352047939692907760604965809391337427526061704425439127524695707963539130309091274225865634838973792380475822819826379336041923455419846641390877823460286977782792559535669292930392485471485098007408622036899139954810016050884869779392475780610963085102688338766185650347972583441252719458792474147757566206637355776021504896020324434683639612342867582788498953578575112110957228163429513347504772774098094216264999601992006947145658053042117897202965137492525844973002558494645987417479640433844480649583770724227805992587445285228239546779917830214058943230939504191037661465165272450965992252312236837765005461743551734730910043550886662198005918782970551422638477071354064158135324959602443078032424489658002105406131961963305535819178376080070222299203305706079817260252982445197150721456194236753684200137694166339677803676482586586573858478359033606014768320245078371724283656808564267952454424047070937764642327028726092036615743669964223592460040342210893576603933272924561177669530356292484941819319746319456736249892792827590407996148448097514059795281639673787773965522688587235646679222742628373969407360003852990835314718556024375698986619521376080865371929214640165873130540128995106513226545438503992793263779667436628309496469466908799839450846896856920306490745333610925590611689312503860840863423322974989504191746580843644827334352286708515865702075973500819887871360698469666663662457418285876495274306386030109165336282440488180997321320381774327325748973446914319522067602516093321232041568352642442761410770930289986355045067240947628830750187906928241665619663398310995297614725716020083615087927263643106760872535552208361372000862476773636699508028131196984907120429020872260656757399254432340449809178455837816857835937539844478824977781786417397229112542478201005504211357609840045940261616047621525454595476551638076684810559503673893456169836965847044651342915463454832871748029262129969164719144646447203266368833028592627879533787636038579068744953235819301399260754088268706946374486214548264807822802078239695308690682308022695334926820291680408535349731312305478503374858753393408394258693945894631616602468383746748954053266500813529182354414787757630639987954342780320081222967686588312838936770639629436217008071227373455083552658253187938464956552683099897293213097462283149922748185727624233289712969914888542422095251949668079961391466989829256190781955525334071463856546438306256351012882291154152735463032531254974201029619562764238833497607977536221423641678936298367560639139218310844197676103175944985900517597897346190334627112693910750141165344875225221754666301837516785368985122630748814777117611547853989330909026192385418996743348106126741427528705734014427872643129393221724040275211930728456735323058901055257432368435471597163737288606117607098353691362147136783631089519074463949490229163327564250114412712498479847048007086635822921690630764529428770795120366508010803841200942616564101641704057712271249680988605766821954463233672941521584199057582918508213120011222631103346221875917774091168184635128056922911029305048238774784418916892914501640807498668593140490202776386168407495240084618051499405389985305532249466040032000179233284968234490086439640874584751365475395424150022700678248591446413426649373814945189874533284354393913565908402065921787331862364004154658182178976720559681032364870176238354412742141796748060907742592347313348102910027905955508643545676371677371260510895808759770417381509289174174724407213805661934347065347334112494443118559772450976196843537060986437526301264219264258982095671333044673649005607254622519032461230307215582318752460727269841325614862297182924220115235495445501530192757342761561181540576426827490417820048722605025398325339552211735218517905781154852510468246792897176589786597264483241786609321556335996994851788382944137877619731402282843482953372382929594843770767684518999762010096019180911666475789154562725848674511542269672824639573081692180256331845545033892936690909951066288363748857431361527933495205485886823617126744490575806599758334212335764150102500391230910023778211755919302054983043103737529730532872565832076615061114901607117330472606921071652003258037408534081836710215872672005328862358777149807630779979007406600482182892134929472930352049461982185696201639828438286701243058983700858124625729694998717205339947468139396775108949536824133932516488368801537090561192184694681857187748653694898126945027877611892269787523155457426826400394007517342928059325220030218294889712574345295341978970375730292065879466743158157993431050549449890199745113728305341261777095220414862971523412185024462526099252567847364365587587824316789412025187244599177493142327224939750280203618468362857397665501908444169499056877269283188440248714540692478124892205037024043719663396227861369219776142236875635820337702504612435260625863134065896848907507509486929557057502091307145584080498485718545650232334688258599529855830815659995111404858987356564805797175700318377008129096537834395122514349639713315541714509655650589205643947986770174588419459958273291213428310030495334030752306479564784576840895436494564686327437417605068513572360740799432369651657469768284459370457871630380760388484067478182861297736024115665132394635432586728640231292354690564624269991053163571461088777533893461722268498999175387977482449300244427093403191781343141275414352899030888988895768000721100818676892261580885616497504762569760399358637232555805192634562692082376885847367783061751559583789534794393762733385953387591819760217417103187175367122847703471184396086533223210573296349288653114934732521643297214398151066606928416305510407211448806063918780505710925744916978815022123671345125089538096069375462040874214749924681883592426177076604266450576317996896414956920533220312062205090013547784355236444140835667150934873394727295115564435760144605031456789317945069522715617885449559081516847420461130522000527349761135031989332303818846985618024318924855237289978984721214113717174215179108902176048006652972397092189396537568611078373655411830078491840284462892294781621583960395532326217262465219025970255394277606694543647325687397787078884958022163174999666189354819053365133589286962008189850577895098067633574020605690446435730964136009244437529032383285610788743376213472041994749421013799018188706266487769652995126788061895537299629421599933718816050316728239129938977799735313640372858587043025588363787508573551135066528308974519700243102184632944662360466986780094564383094673533928106756011496115059703011584442479598719854031761852867058497765296899700897153115324946705545660651175623276609186586902513905826069324585713626322928308808429559545511008787568718995470455141504988254226517063186607988655517138437982214860067249728028956471246484798543379701233152291865918795361687304649135691910583545395718197900258367447356722400421981999427044680403499504033039865355219667182024083429406226461648397732474126013517769610434015624213312922184091055461164498954566971448269724746395846082054074810860508514757613334274858975440118853298983718838135405153943708396716404809562117699822741019714081771803356203715761685747359052026202483130608864166950359365314096367350593694448239730942642387218674519538456376725661972580904707490248786193953867306442479150186801201729053350051196281886265465683790003301048418811430146533535720207154800223065491670824837899343234446540240246652115934464164850485986431889874357985178042735809763711377662636825953761134844378333649488950014649333255985495435529958404701071371238142547486700674816722881627498427278658115917159787363874825011215208830558504520453097589746194957452550286119490746207037372485908146440430222430269565838966295008129423013046018167817094895982329493791215065208210646378053413388394010391561955330567735255433963420408735356960336247233927970598367275020122134233351918006295958215100612352186118576260823256433463778345180883192284166354110330075543550686720673636130900406867183721919220000079786542169389427922139804012861246900521978984507653586714332639372506123923241146632777906583857941472280469644006313994360722954242613290099124415933039252374674061544401041212619844349725311656445429199155600477970442759164735331241900992951877127199764094596864960042969762966019784663593777236781939354404033081785305367566662265907317115491266616145962920326256178131911150355101472669848910970375503762491453419737599173674519483884981785926284744371259923660857040318499727139621166850006333499402209468619769534068712504828385429640001393543710657046553197232700550430332479477494028116163666819774327183826724326052428021052825901608235554534424866523191989011619505993439311193677914824351584205466171543047511610033108885918214311759756723803171953398383894858229246913706490093794705794826788788619154031742726832978375200300645175460572328813818428947904338879065202198941785844775244505568136276048420369991677282254695512379394622336392324228284088819194040135781619887452684354289244343031450325459119262545683899319125288517271225276111127047855157167926800835227591883671304527168297911844302714970306645735534633571538840715337504018640631459768225434439966179593079880302653851720589972140676487284598138859226511288219048791326850085137944485134074792699663979076223335946838160719938521125160331422128089775681492889101705681887812830424214538565103297413417457388014154527416674959832989719318215889509170192190359044268030140475718793485213552826556829159321781020554955842417331065657313204785737770901541582071462502337306179250195756533775519635319966722055640212651162982429417745259975331027034585846194075172265284293972093418657622876040620555654667465805465944282929614279057169656093956609434466783099217514901606485532547770728299349725407883909084189615116374409087627268160713913438311989655784673956648297961416572257526332297474805745401173636177449933394697458054337885722818159358467206389534831401536893758559948788008585644583793842401158445649961470861276387244118297642453911062183768643849629574978440565889926154157584003235203152379574695413061022202363991546656282582825623018089116669497196133681629404448313704950938573369389155628552696057622798824411049420141740782218611534113998238066536727820798437596746272490240920134598205948071550969049025496694981128727620991983841771505980586848826378832822367564804143333281928102744062379786597341467345858797080038067886500005217541228307768488898588739523958553396640078408090290428339717915383763280683649716013580996988112242350467265249268410932069081443321216696847968932469562401404419794890811527578792272173250115779474268496824317141864061284634054354488659555878382230007005922272158805941280623358833982173312393329441457993029908960725939466689920225061023193670902231066875250509739636148509106322649056686244801224449607634881003619672708429651854651804381635694705093902634156628003413245560745695895387142242965897662949251462327705708348604208791467392751139868108206540937613207676276980519213470673245378311061225357246720200327811749149943675324727768484913443824948375025767727466745976776983229642789707553790778940996718967249277252632094491385879747554563878024675045601720656406895445431015717427198811220200686430515465013786270228274801745813111084497501668475046090545134769085783093986843028258616217175839879013302210571902256315059313230954485493897484997153571378374228807660163266607579620604181502166273785013034605380521522663578690144997604034670542661683373582507983511316516576896075803092234264827988683468250138544109524079998476894175848803485054137802843658235068438001768763364418977705834130452707984444837973438057561179070414741852596047344606462940540969677469907629963128649272777673174145240926426515602280732494349919623050002498076732813886885703044581380336839735789073196598377037185174919388232976359454119954638807425729192860720620876114386188074347912085984619300355269418134076794992016439717366884376684408737028390941897201255842751255634101064720979060549046285187415702921348031781018555155511072684878214406610922322702681214375648682014768709853559012776361217835364366755488972912591923795088130950312532813332526698484955416497204834795172901833061897536480223395218873475017208184273679743290148255084058825468289437547462614880642439765186970631088960125882316180435232091926936204263044262358548655699214842915709260593241341311527731673587809406395158322333004994895791942600992745135616350731187529327066727701962220049075685781498287939209701674473203765145780732163786352048338943185048832540345423786936918664371977009238941427384958984690456345894872713904041311542372425034721886588724356944801784981110084036602089011137186115468911292910300244821987822653909461986077692480226377599230508671430607682095938815626386900719315374182054555500672127379798813060362728262849606160284282489456839153463261971776861524969561963894162813908447079379614477075184629236610477736691064800780073054562517448750473693383801425217492188880244963835508322780562960938224858961277936199461053656105546413261494601280421889308503222368165580827105014937841295764113171612006650526165471281189178862299739072831609882703571633336252763076751580487305855229362749856441960068381042299376906695369085225655422468398909565497576248767940140315239885227569141635308480139307578304239972962123313520109770976140408094891905555151659796896082657083413592743174390036103998407889213644959968366170569353053355568072943392853219366341192652669837698353019703892250201086837912608554970980457537103582332559378766048560355533364099300820955259759524270556069326759356322265884296452265706051947788992405186188832843193052267586128520096317458860957888018233128859134875229864872173631607091788659324210746914224950673115653367900202191743699827594143647845449891665007008573716814299162396007884165185644909738722873162978099768433154155928227942361037863725628073555027360477754027938052798051444728540842653428693448708973146438358019621334976965795281047043888697536269340624155030674095438995694848925302591135513589552112761862942212707080919434074643794466780879271264711585385453541075882041452361174127693453816917499291546422872043209219187048745833966997106574273519419724635660524219838998538155457591882533776895360263246652731470107238383776467830577878847237694499552847948234052537982596057454945845949521183715545020238479693144160066922819390412262648341981568688244346736409225058407124260966919767733694199658590129775537845494832481914423916050175785915299411359048496324203223165994802286701443673352134084132939678602647339690542508198256578450946423444412675528531270108307054280485457407990632113993556354692072875274631158535015201126335419470170765488813725412278601294744613228494066009546893137066913788351592552341931651843273426183030201229309034548806220088067589196699773426256549317172269313772002500591339937288719791712544138706959996662111766245900991173372363542041329453631653424812603636100583669829311131995230018995764035180451958451194216110800411958948983551719635670125500097770287885516424233820904228529980195313592482938294735076841080459720207094204032819900973103895491525465381602140369704138947856839471876730003793595364035560123745848951113109516750105361070615010460315019825457945890139264773490251220505539172068287779707558702481666620793603695569564167369845878653781214351059378940773080156865010053859956498377407376024371402397268100391545907947676672763784690755543807925775634430371204699068367115006729646797742117561860318955248350118519073615537950171859307100749249277532003722539909589069040211310506403199804654800311287197798989590223864254789597912432717884197573677400113039080952681780642386776164905057775840875044161709747580017551660763660182692348220026185234960472813934459966079418162634733348491774234365863158483192829298986310737469309662270431809121664680542240776929736409406299473834872577943792047418654170413784887102043004689340850071987676121220731961888230465724010848336348114075372160868893112597032097922765599250197933542957580188355188875151465473231620865021291716212619117945846486292240199463760162672733706421553506355478769120314019179827831266791232290538617821081959556091128184215620132501002067129862448359179891947333125733386607778547905198503265266861099065284414091222820621741164848916144608256970313444899610687487647201890173416007964071119724573654669246298567828503324937499105249583260583637587639346423326209530038407434566884121354565600390428457469672525791464521658810198828138150525138739167431795542812102857374201361771395586881233375369348152169251111086827171785166030996842575356754523618395021454061110537231481661219634143334005217359974368893443135744873419673953983364655006187656358143361103516252056767261152167356373296578914081585837205070163833016814415897514060429713949487045478740088895105984901493648490408117663063244633010310056325201953881892131584142492872585510292101870626917595856555960637104687824998382026771272760706481873016200296639327862348288958546257116910660907418507163437002236948898779278052653002765374908032692240451013745118108874384901761206605696751883166564995674263641500149578509798714627503858126330504715047436686156891524751093615719031114452775199469266207729290368148215706239131444210243575316363649227596839598719213276419681305960068161414488994759534010247639164335504474479051443040340641483430159410683191919798145796848535350164926770214429179436344317475363488113794979531581136997154870845511297329334891966297538603951070693092853148929782337394221777551067394082404118338356304145201699785275018342278961686094422938843922850112689877040280885051253044146355561578165828066586801971321543397146825240365149753613808135529948298306572545180884708738088252524734175089009898995068825558987367873108390128715875405717771208944547838063168739057321601450632532254472360396417049214069970436969651873271693524236584730040643236617253546477579230602243789941466755489584078311532227205245284019616524745508145820410763244079796240281194011832056491196323175522981674116910848772755021452457814328957829028526667345754690745277801310052816419282259522230794188959895760278489813058285555806482763854370293932413865009057898386128410276770140779525430071838503831432204399912150320165860798212387952782003392865388353211696792652535407351278776938111865409657351467336424462265943398763350892333327546224856992359036217050157232420584789827295957263456509370925178586385497711751924399629104026373710710818542984101944649598570952058659024139270265052914247317335313046450015604060071062899834872629892662023520391850849312066693971445827724562751105777871740232105523592139205965899217763678769585163117592564933107304209299317905465102612656607964112056429202222713472599502021257722738108547932980059805730823762986489065273307595031421280133450411066210547663478038020418043450751170906247301405199090929088557168858554427349154919816292210823523226932630010635366042519880013992094361663914238412173184255756253324946304593987160124160851164160818695318348038910256524949567311093996388607624641696650909783071054460066734552196863796200864989071739732462913334213184978794672671824813206564028375842553185904465873169528193573094306279144319780029217703236563308451067484783503425845637151455759489203031641389066922183251518984512244018009513108814934705885451997796035167729767392184057637810909241112408951439970177451844201567108851431123754306787456638675770235334540112011731753841252190324794251420772843011644723643867919076879875869156570416959586903806141764330227907403879872833366860777513813418078821687796465328836045858612314363635865498749708708534746145031798816233357792729278350140878910932922433494481069065116073236836067449669214377282760873881647416851104321188275286684629940664819121937165540187587983169241279367012060478819039399277334408414919802126291348644902172485271153326987782867774069142487831371928866884033507857539914021266764679426225648347431055009536096249018239399442230551852626715446641042796935165868604619457600363102082461163057080881431653427007780693717289079396703678380821958693000206408973955598680653146571741629535024571605468531189705961096616383404246003575152666298998972974919419848191196456656917849033235416412651714205617953147296008674351443973702248722013518547611856396616437082054691246192876888873093162400126454247285519647880614494243727837583397623752731997668003587786336627653854641219059932894682730345489579290462606346641672379625347627476303040521045899164283604885292722531030702208211948353250431145268461524672059652935321338149413543376191563629226821312151198839740455037007757697683287427313877126708943004106822956331994959413062450138586355333595412396643151895019413890450056073878344979916357572617745484342491876325747742684147553756323827381633676237027424809951164994164116026290304707221236151044484158308955957928503883369521179948326055854778207587093835632311454545939773257094350197791006811752079970229797047029390662077415191904648847529335110760184794494283559665786969531570284602301040361339706629752605582978271319729106194755507504888651207904511449408776038176504426952024520332274335634539666440851246409630684650646867135576330946938330545750199046673312300024076182349605022734424466035881339231827506768306961299373505147257358481027334460200354242492638979852328736040993459249545443572249088858388076987365350867576836998997612276383265134155717658789677345424589346135732242050098922170642778978894198959319909695207041505831478557441371280316919204976804530146119872746075192009887617753808792909569616855021889159171878535021708299980673772255318444043749160661178784565322073784664859957212788413024154958239688466061222725996269993339975771215362691836058450078266708992005985321370780697711102110440946642752917017611956597068493998192829713031894030079125354737482639495547379649203031939885349673930365740889361479505861428632506816316628882135351351667484536797515244736609852888341721417263755915882737596514464644664421646704373801770805529872499864786959085057568535866169616754863550466073403464937781410866916135779027800504596309480354127862628584956288106723447841504287702498803536250541403457025223180535384880652538064077028004261345592826476954416340818180394021496223345379145575232893698172301966220035860552408372703111997997155479343439845076121159433008198126794691568850044810556476334443014716808576548531127774589698895808292043291285863600316817910941529474338861587279084334426169314486012518017686389539943539790157654740676409463313752879292766998103138619528303918824005642927910918613509251530049027238166349463352196900101266913876665899595568557541747998590409901758006902057731866363326378807837702906921902865501354800571786909822127506858045519907374460789334140950668940861361131886033617490810415247146342475677591421955986180245458061590522966886563562012297921299612367010203065975019173529714664894411312105103112062965181420251336298558897988154052723104054418456542513648601734759574664524017008953030067848656312427856155516718548909633273705765199236922521859368600524365484582717663742146206625032224225893386214849817573983812868478904226478748399032934869114655300530130512282610166913627511224529165032541731171301135054073779748589919556995288773262394967639377314745696481836217871561833054863824357031611990256061314077523201800230885791734136415064820567975161491510141422224651475432893765362651754882168065276055494992999469330234888249204736188834857499582599805874253477645778013452252084248834580395686380595141238991163585997243740707405638979639831914789584727377340263553976932649267270368354094977306619572918176825106371290030929691972987070639533075736291954338963227247035167552784328919849542496360950514967204864801317982075920401070106620226940191337910773296201534551566326267416342543560403103313891536446415223742487591399054994337475854650483385471068517895988202538243932395123555760594651334332543621143118388793666885497345056484676224901743050495277149340446544772351518907137316314859124218166216067690152987939006188990256679193026349146860821694202533685987066978541478461004849850198650295720020530079737592614913179033877269662423926464272388334401332108277492355753689669510120063485872462021115473876883303672415347626479692337421778674160545906970354231780180546429587352011770547060379415356556746605185367102826601893107526616588810334400718883071858496579446715462195043674468631990324217132508603121066615756801589071111039378771515676402500154370222895736608356451263350445406331861876690347499298648986771890138202188042718475528495111913196980763525722700703347833634728720613373039455856041749824300943766845532490302629586862503289266013741663856259742379270223261618087168916399328319774258047859150813555083306594838107426353827052411953439346643411385108593974519215866896567741715840531232674776567796145862231268179426507511420248201435448214955953603739933362712497998343198815207772952824232151859473250247566074125064106546089374759439793537606376613230343600563913299305693443581280940837678068288315652876141799030451589776255005136830950138737006643315826442097502665329297997215473801670394072580437224928649812258049798436112808166720923004663598133185935705196328751112713384105667591470274874162077219520599412276584006854055786955233355854207795149142310009869789129588373725268869140726593271169124456153362906864095576031036625851156354770904017880093301377145125704935522681544633057341828806536806509299445850802730268377975485298828864334985755146780602178043522693752499497964989284523196625947920780305773340241161559784746465253551616287191467931296606767869181042329215620077806773290072035103320380533787623373057331982137010038618513972599401700945018841979593117178788406317944313266635421904379662470447144545706268814330628960391547534381355799558482440157870719081072121982416673573446780136450529687586669015992470006990282364380814134290059386732420593922013308510160111021509149570066714745405030791940751818483219644565003802190702755615690060803385344487667002490856571240375258651101349870165830008433178808169336030871446128656244825186266214952154373424014481466193418119414621896159971335973526491759974288972201635075050821324236535521340477375380306283495684244856265842356741059277319898324670594403687551521711879506980873720015975694924405682985094626882126873190638890734268447473014572848756339676206014855593575710603180212756318385826440093530073114644957841100470566420482603581810966139979186961354645367679743307868029750523111553647037336534902152573589292476071990871456546946158462539893612113704869827114331044464509751174020884340338225865463738616611124104070534861711043539674179541741024228383570846439994160269434973952839308305789124410850394040186847781006792763166121502905831773222972443409602135071893553170723419489761470805219131356359348124574730165737299047796389302825388347238714152612250932960534991012186657922010963770715728430860648750623307956869568358136498635909667102536175056709677061651210219649358456533079608499103149527219732531689849601268645798868965723591644913093232596686925795858984521336657694805013863130893765669648131084711667435545042055510076475286619248357287798656075465681118718686718736696051029893843792734760437848338777508728594655780772606489030609824092915637779432485702398788986030229309484128302530883070427714461205949305115152526103681914193369652167506998050046673676318820691818518223358461652600429407127848717380404848376014071688227760097584944851327876385503210816575775046761142648500115603812056935661935392901840528341734811546738079951105504378812190624822880152437936076766488983860801853587864218555196187538300238023999384147062286245983010178091888153894909270082713660124834182503054199478714212436515036801602168082942823529808201039973391889158735258887459975856369163336522016325148387511727997936116274347782533700545517019987466658927135026027195196388169197294442277407471892943366840950898083511670905989163137896261406860715226195352937545066256080595748565050337969227342202259082789003060990991665481812431708145580552348644563719555871535259517366255000686415007308753657879186841671798757655831218890541335444205921769026163554079561932463266922902726980000547220606081697972701058317266565444164681907551488453425967749016526970728051423038061229158318254479489223131423629228803211279862769225499322195219425036305423330789544120796816456777145362890850227896869307590271269963444891118793043018136326453906296091364002229957415039242288869256592434440129317775183706459555128949757290472773137928259335594685489938387570056016399531055367798879448189747722083294003375715437096667753607821272306152240484380797369142377458353007228877668226965569766258804152996833857619391040895988565129674174856681723091942670426714972247545439818777968604513664354787180875006803257508521168022672279049404375423533182164120854569875807338987561786936218438669492364773855484595070390395514864201709005863145271427487161316999018171627133475580576776904583929988764207916159516855254600498688879535179743891189131189078652967067218970556406120832302156294722661532125432935029507411644271262693111883004711360531519593947911815941984155465044301666256390749409606685639762952019012812836406181265954258295842833719986505177811100561278151241230726281040338356006575619450636966093310433885988498959795246065715017508860062906740961622337460432229515856089792104522977237264155478247429727941735668457179430392121722458984205977554646994533954089606782886109625561591798762621934655651201840330720040688716771549765608874856374449715242042399733932682832029237217014016065781737977630471961427135418389854206993346233959577906856789100755381942967166640138832435103707151466084173794948199083834585240898411082816354996635025293397782984344116106792682085791473208917061570177227927740381173210719792563294930403267126877637679015045821837061999151689398010596313687637479041398573933924760229983479660479891103615218260527998182439583495555847942015839405631407339198671800939611285503376547938264350745657742834763148338736165779941060450931200298858051155896752363085239463173008950111873216252091186085270184454094711842742293864204250798012481456579557872559225254862082060836838824460899929004980979919843025629596574895795473790857227467206969428860033098942114406373679883023876380961796399020746110227047874128130002371466141066505214124949357164430906869463669541207778667915622146046371838462496345068896459123578264711118986500736968247673231941304582199806048314444206621572531762903623455264671110053532398227401989739400977601979981388440104901473847734453801338661404060256805684863302249438893977059088834270022758789912718233154321526408795683761536557456872421397841552115217067973411037954832382362581513557654823343132287081375313680912444344103534809252238865127668100926066032776444856447020357043171219102004628740716775027155572109115251534872737426236285969596153052488475340376491368550888274742838637615206642059164134803385806447575535086880875067452745287930520821172204148323604484218154131472252871647485718703050862248757621483180518220081262912936454683054731376659635107218401004479145006938532913403819306318058127089432960195822642719383759597137734904606008777935709235146194147659646592358734446950085083371294865826640223979251894462350849052989232219725723040521411374558171178680870723773361680041055779727875456379431712028961008712670299529549332176018077355458581506362723662570739545966096453595054402405098928089167480551151774090983318440589025831727785510448923210260056612807382282447346747360510267240590123592416214545232861995405176405904816256960911797689820153997107722194745224673214632929083275319865315334263728933081901716599850681909461893594133686742833994119222606887456516411658643519611900457414049523124730152234848105736805759335525287352048502689443134101740206555883557085026495435404076625616480331136961209308267848605951542177092426559070437045275761856507714051756940571979404155616875020467953291017656026583270198096972274296284654166204330463606123790049817876099635425729966978170061726891112764524278029483310903685526810642653568091406363519635298791044577155258009529891341177830843874216777788597655086643015890499055648480173117927400012639550465871272334767891664086117344831031325698486314504495220979815349705674778091786411584382518094159570896291097514325817468338779589307722099132612774676214158154456947050383967419234106172827805141074119729183807264245426251314110236851841517274021673670209691506781595870167038010934299876582656595832798850037757808654256500208193826743956801326307618328902591770696917261656933455536979159693391153026501199202253057212966004648397682082059871518985436098048602275787750403871305753162498387285618418260175332059123316287652452445885655841177834859029880761005042015277581037195143724248998593935887195407458113500780622305650830354262503975066084107011602103985069162303686118288644800551502848887278104516417398957284505609854132500680276149155664472633596556817207168686327176734048767129396997568898726228985656537089153017508225855000196787783220103448908047257378802375872003354140357561025901279205540964469728873198680686227769666739770235477528105196051454307100328902002370985994784975598935166189300095531370679386167249364318067381915019645211767426892403899190222286526110185226476517688308360436451997123538621711856461322337140224454595074626815241198538491609068568743805657276232078686197453493622092026471356599663049345126858033199880631790347917054363382207722680171351859805303463837225433833819450753495640359430513654078213646574612637871312462043293242916146363186380498863680292021563273492975758079074544154323876230635768532795583864254077992511113459353810465604933741240515459285459950924172840167043241819129509026568924731258950418828152517037846519701445769474846809664758060045614906997014317653113720229466153368673687816407224857316519867042179959176346109901883577789931966555975182398229440236254251855230991967361540701073840497759534416039935307783557643418708961182890389044453769111026238747560567103019538339149509117244305613337648933214159242484772160360698854547858745787706563929822737584805019965529187826465360110686382044961504328495266490766380253775426664580151360123893064168325514211880779233555790321700431957064130426688261807769383918638934292143767485543072881753355776696381970733974925084000874978129170268023344377577431081247742313493074714108439638329642278932374501527084842227364183509479984722316689549218274595245198912468646621223871809946735551261903074179741934521419620464458997711786003187603025200526833168675496538292252306383856943555330942290484311269289911282841398532880742601275359747372654952807103974866111812388642777575934606039153875340401398319041204695671090035248803412340008975102999819030461291300466736165271691657776935463190698826685515223130234661591324939060578099882916925031526550374524389619654169486216140833897958724610777210778413652271862087687768107327097741079240718299922246442432739208667200181955688137444694053139376332288332552432660873186081060716708028755617797323675321410591465948798720810520921916822019272991542348660924321189395194644834722574627093836497029260932191430593105804652780033105719731943064697139582197018367938789254834574688752762678965198056572378189266172937252770122436107571936597820985134294914872231426226157293787756644621503239580227054580794313680232370496646705809982069912895289495437574448534971102970208084946306145443130516025738739590339878885243019592416230921870694452316543069322056479642623642280360071393638345679625841326546500125890338551938452053337971238935560988805377378008921313370999185190174580760670150223875489488345733457431951552365659790071434785533727823142408827614011481362913045794157100694045914971334720999970531769751295643758295871103812104713851032730957627421437763181024350318745511623028222014784361530558006456569432354943276938394296920965060112215392460735523885589692636376658826281846220306160018863844042475576738759945127705408626610116370732564828798391083223801185776486248893699010862961534191532229697734062505321753411770445203109801535929112085455353888362183757839889376852612726696534633168846238284339499334898723693353553501212116015582179619518143048797201520925642667705317057673368744508450218109129534774561823271393197065165051759912426075600535969010656042665973732709416579313871584098836461452843364677666943789699779991399330902063584628519534967757728654972140665904134752935626737757872648074404533830258352036180057847023303562816492777870962694890181236192881700403736881254849021344172801565816066962741804337264769665272054144817646510396335975471462746226618518539356902987678612926360421908290550540702575278155707492844155774334074731154628221103365251052244681452430020070315139021992724240633901622017741777078716993753490797192714115811429877623435991119162977994214777889490270586326417488750368133424650055529338619531471995172355622734118570413395904851384756458373277378211274465437078461296533225549648455338451294628491045839865695517528653845343766492827093910267336887635127739953176909345827826243985536613451972173740124350946638371138446621084006063404449482099483455520902825808753210969856080550165715241327013238598494800806076188451439110800194408937115843951819067709979638280966468948921729310954697383449358707999523162139099449348332299332541402222260945576805555606877705923480954263452533901627307728212135974294870551749071603400863177404060868869549561068700886505655359892197319372846588923283366083443972099725502266813402178241597217276188612862754322726060880235007429602199777221039377338565862617039668389302241978692798831544900469772475393523341054055011998273905585064318466723463356371611594076898983215672231322203113109058609488203180851222551513690926856414565982116095092832481929902877226696762407060396889508436248428557562304506376430319350425819304620656269535655726567644074892642309055742379248145852541371251177723321287196068899113087560208000620889763379640498549111322116790084639107053767736316552885846692208206038266271417835324051623582407706229103482571115568161846322310252405023154926575038519415882791828790345078790288279277262851282628685086366291428975979018322942353467993685534110285730171169798929105389553641145247409595167072230319266762317431601511114211846626634264454480199131231149806344895783239411607679151042543741838305230720972212615188453508756344983996514187800619626474069962205305368359352530272497131372092718752768053023676003457542526914097586562970853606664146196930054313135164081822113922072217362686107412443921398335835201483641822079756910428533295864158732336542650236474163806150353899887722624512052813634405718017705729705075905435950347937343115555281929125593310347778445418847794777519409762901386971186332174007972276494652190874989551119108041017162738111226309874277391957044693815283853959099801652690364062604087035453515866315180950179521436655581866866126820972615105365732524405895136260265931733431347698367431893047572659762196990946273388989101050260857036374045306801156260307119333030762497331189149262276145695923995018462378446039847925758875067293584182194745726627472892972241756470258410501584547877451772038276577619251581900801366156520702469010512350705394359769262483427287056971984068107814932202271882360796861782992485571393599169424598263010599250409725573511625049918272094109037699155770717934170482500759486171635551915143652367419426308291240962955600346475266239804073130794832230187822124367438747391349679444390259481579460793461617604592643190994723998026725144051178921897382725006519623461277168846778571533753327291775771160288391109829592673231283836902019792418708801608673902194037221785399842005174043732857964470152444209526384957504917383932170383941308610081009901371293237070875160358250969125899168803757689087569855243819512608965002720841035709213486058466908833161239911839855903617685367828317018825389763404610704244108859744854285419976667168959963304292537469746656282087390761043347435527960021217743221989912202789078991385628945054023023098662557235226558354312719980691667833794302039316059425651604872976998342701916578182452730121786252268050814980698379106710369972198672077435355885073122033580772714451649996789642451266717999342069035560204971731340454264874020553175662277616618661994085858475035008480969531731285653282696862076079483259357257119334677224819001214299329278087830293614836160784711686751065539456076295304972595475774461057510305666031422623236185626064092770183110225221799628232269837921819653618431682970740306245024846753101899425383113120241962572015080804780163844837509577829520708148022891288725717061642759512258717000972602437883833644092954812330761119219495883210291557706427630276617311459086617830499154156871496201679691295736516558199751786359447172479358207600784795216320947211952721227731240575722409349510379780095896688152477699939370145512894551606017293052501754803559056366696141610447923062363106079761131048160005407433820203801831869157973651672271825947416054715140193982549977454492540198848624783683741886027914275691145062182999114242725328907569581330634396045262805351710600898344181191977267725766707735343558784143386119438836189553038107287683555074580354541405982605409059401961105667552149834721064683720817032751139648302989137084503309134076506030351866188377477332772956477386581664187891321187826394236474086224381582892307156884050405598131811234258936104942243683870474184419910519345051197666464123208359039939297949327349285850486978939529789861428393017203956905302666664644518616070010696120094888708990473733289903011247584837917307422159052872963354779085255673954892417112266634900774588869744524104558358593929675294643015678790028340106751293482960917878853681023042084808807991581435900794967107560494558622405219582764369190248307516523537912264921249144164180848063907814754216243893889078332668162381200859072863095875136347221875666085689291409840623576610224907067113235626370765173360613267809662459896030638183202843128339633710031658267198214383179941277036629036404971522707486123295430971317551085825510910005189046198494039010087279583521259815756704520808966834769216099822941042011353142470323698430564662831756038996837219785088427154105666245254626936785586858431550252202106032696833942398229783309362896440795661078068861186478447820034059433239542396494583161133620497853689056894510739098096471710669116683172358048078791267016322524198832754243476348370246676030943584345097545688238444201803940570165508034291328133780717645948084481568974956592822144787485386071398961772975720381163138087594289960687893810558033253022443569743311619230991410149647619806930978305940016808364296847851893831532794850925191372304176775448997580797836095755851118031691300112744725545842570103057532435754796668747362279598004810260490836531694552626755216370879634319812869765686005017389937190045196269754626708706231969810172444119244846875474771858749843228313372524262390021052385761447648654532644730443747311657302817606500756914505134807854650378582898250487246020852462689698498592977973726429660471801294756094029151458946767292344617401926133029810292444690414393065842408854944071426324236334921444109608226430872878900849490922478218487311497363732739478118171845211263097594005301206353484016391492457820430462818736120552439137719283655096777452245755337418627623309070651617102637317779454235351530908367352436067636552160009475419279938570992899453353721543080333300684883610487889813192897170840488028327666801623784763909424473141797513788721266266146167457649932419984269400816971065927983583802267655948594486922997181346589238278028729275504983382588727830866282904381430694083280391625790569647731246187459376660170268785836941544974448753871340651827361320215442598754693416193603138445543712486187586850691825187153916556410788493481856898366895794273053405385970537492647393241665345996400646701860963933167818493685327178109611424083521858893659736972043699689755829196251106828312404986784812543072730521974486467867458681585001201954621886287925756637146133812599250250304557984514307854236757799289261163038028931214486795061496462382466584452867064252043390224290039339124185226407746143193136415005574388511499078494960990847077985541514279596337505220201591593163621628649370404195879268693724654149170291678363382237051717234553090104573501104886907957743845988627654069378993025977260883254952489986201669129854798987079113197949878762262621048051700078329716311619840210278171515684936246492233311097440352348460240208463643659818721370589852096723656806546120581739014814546342444314164906020306736627318787922056122414404105924147673328698705642750120888442412248019026969805204477733419636324029497590720109036938709556087906256348836766387117327598171739067337393321430309696708957826830585980496130864847373759628910928670813160256058672998307608797659183316162436165156846771162106844413035497632416522742596538580495360308116841103517362276643714396429378610820581702071124964689587403252342721591581385903963897385819201119203229192144020460745655645759072095786466366328274739542384120865992536919151695341195149446580037735710952049517696708624684780697974075624827243601184005944089668236077058678771166657422191968484358319929821310798539274617718235730805099270770164899902994707290891710640603867123025920439556899594882326105416221135434255757534405835193267010302270713461068823858280408285683710140525243881923731487136385982267759935381248727504136058711144418550249162375241836537647823514747011196786915057012057577452576803489911064827958179137965405217606451720155135053226543178280743055933729810723863278763967284347277417212436676254277430585734698769629037827210569267673633532622460667058245785002706419250521843030647930520937384856954372724709116470126785535583177363204175300541790113838153325664801489455919546399664516331074902656488527292641493184092935259299102361247002802964191350174755705426241054195664718527370839761181085082353715374669546093904161106236753321106808609364161608844845361813697727469476633469114971464824122821229919113412338554453520155289221857144475757021663413371481323665233525162156447864070859247341212043040061649894874231161203741885225308052027447535419034784636455833892470798538867742429259792829486251145709316614429789752326774285551468545586568829411749497423566938534697918483184180866281220978775810977301396091761287436470258710864455832045551158210886240793650664238813502242316596427212305210673624148830418054094503866552798447147779299978851195119874589809603598532096397033529120836925831505336623014837451574663767815088566996449205199249138308406016846284245841290054646130280049896556458947097220826000201019801836977257710418034946578265768436199088152797738330803300417519229325246360444757672452863930491173966552350988768910962685016557946983494404710130852904626183790668279109850962967454563808258783066535875660378150237698789177346146851520813885181400743131235827110309640326896540499185522933985791589052282136345227544549796846838019423571283093755962893296178477882810167699251101102036280513724247005474583716856532415822457243657681509088533814753639865501107946896859248556748543553593485681909819219888121461543450356098604724714044680591507152043021044538623529553590536555143517087589960829529550957325299315004626074013869357830476265874558949596226130659880614229724777302768860592322380650645322422481052721765395478847853613875271486394068336759331812170537637402320100923395641388890588679606899306264924100687645447831984179244750748138900940328957879249416660233095132033637094829060387365188819676720772632879057580506126839423104799015045670752193904792860822527292737100757668505770228889444957298048586559210641893231998154939743454432493504075659837031818508375102917405867103515273912368889358348319307470824359138948445579851060563016192434902589645813968168311485154656227608560144460805807558300513479906102316657595577318943663248271262355100957448462179603538931361485343044608975030219895294339740129736476725202841277082943097209375642880629247061064630683790387811886478959617383970178630927791143488911088913260472686361935302882916278593577158854585063751805712769200238062479034721047043437030193370284579152001734685627192537352613109088692465857638815667431481028078615019579774259713809767877315997609265175262374926640496005308330840003690764306560225212488495006840094371102762044145379049593067704934149034571692162641584013401209321262162581825392951812706646265542988651591333352268589728003426122713016804202994205069850950082053936086666062255500261375630475128258862555628203689950439953785526951394042992047799641118793975008384973094067351667715306900091427486066909079577007097022301845157938997054773415667350129977480766157288298653466544975191532102086904825221761308583111349176204516817394041300543955737261042280650611523302923017313608166711681060409428637889925709709456811395535921041813171879445510990761101971589477588945488779983692247137703434562971969256096431648565332983793567310139928618787015688325578868559452869049608443499682547957877988142806366488820556218258863097495484076744203662297628021851717197585005947598800380535072606048858783332715998759218561445204650463453702017973356188518298793455828615544818146570234263518266130696861459383746006567635643013268257349644211693280056743743136372926958074267516442433167521045396290393737033285814754718403572522119369778731346448414806959028999566720805938348595866634075585053557457990998968521094500424429627026001612926250474091392714978042733024091493668297222991818723022501095540052247734750976119030689326776823690420862142313533444265541199798491071241160987986061842293530514590548502154917636610625280966905016785860955943269493525217029316417497240291156059674902035714316974650017832330697559397224840723882418181174654383842872112303471771380445935738989028824992271767003311016156395668259583420539112259883358189317092240397309181488197114984917120256450407252193997333141033867485404629220669870028763385121877134655595096246777905676253132589855392282342597303523765878505395009247631415122821518401632606960739411057717468411248867585915097785789669361570239560384703704497829944738611898133833100263373105696894538889331337902681770823923991220375349576554687223294452325714408521598289036028254597579567449953662084585455703398579584152386066044944132635734096332441959552710915185735939462223842247076702054913834602955134658701063404743305659910102660351617745107073696367834968698073027259321455359816128311772671097418723515886755704737486147666839968203090327255745798176519750751939792488458684186529206843513277333756121261583899907003246227916891417254847496560291816737508399558479693944499207059529686765806730525467966279809696872494871779547473841646467992267122376496947638901380574448369214851437798448950750909742971522974858058532047944499069811073811514942225166376964861875935548802407358954720283103924952457533984841108232397495446518113623638722883293327341210010585371247042235223970834791497702815374754713124947481210655552306575714912547302219659684880480433925448001672036189550115917179957577254130694507068897401852060708813699170885763386941024039867645064874893543315353115942887501092351346319525067207309173388332614335828887051906835347251805152800889700522751926418324530920498090757316776642744532792422805090089162261633791930532955422838690879347338557570446590281838013789503181383851151641319305524238927839498052647663236790080452980728871698543952000209149035138659791079113813583235040083520891003733314391899510228616132059705006754238139291823921711222784385440037289524106087977295173094216752888599584620059070024767102519562813472948617394365627893958341777015278910435460807062463306491021507658065596100254424429163592616848498457956120052260481405413594738970619419457567619174116081984079946528659043645018905025670890597495740871728634540825608460924837149048191837235841499932728810078249154718522478315834408561039876001868847104548851213503381490938515145961659131805864740536505284329090135710289479457248808233790370994392745142646823653653285103465512491899604533974441215920518985861533582940936338464782541612166337943693479994362392473961042596724700005052309136340510810745923270802922930320478581878815840696073319447456992326074403417552352455485616383116555372261549871878549201291969371879998833430413377580940436889274521560524802004658951893959600024510510544979574011007151016021783333574517007987181261448637549832753359881980794618848362904306556650245332594226557462194785721934371171400595526835984074583354307970242980396054441168546329905598611654721768163615521979951005915343278190509188521981767808560617328116948254468693297203283631090480040690663736601658795902328091052195824629412012516535856111943765949695706826104724144270316360148522286136193690766094904178148653121199155475519053368117922142615922647762845145255447585430785363720590691283866419700520586172645112872127841965434177396678287013587152368436204062857236383614792395573140702333415685019251830177364152747928404702043727376960927696601162964072768380629022191590329025685220434905654881851799248832507773662093182586035553278558218123929709566838767596062590224354340709518944390593721052866167444510522254691362728562601899915439806622260292003834872103585310271286975608740399622498324437941638252805734142376964869742985257778526643848006473585941300689323408648051645788937882411349318401848830670471641812605418682466910653978901109308456975269840034406722073018341725671614611488730199664925921412850106863122466575702030240361063513494811229588959781834914148233293585910051644423254231233834684716394921218407589495331504760154328938038874642306387134117300985134963098752865615426800390475296979001941666012638944769098176916313580978285406451706470555816736514493559397479000534713680400651907540981670115869033473183473426331590056481537295381209959705227707579959702664572971129771105309555150154205228144247882907531178460266203007106740034896061269306314182147245506720181868026356549291521028189086143376523236601691064145857992133643196957829549118319647429823269524670750461830624265684954479272314828490542605208530333261712639889790923393695159947048502276563953026814581419071346663401215577014048446761806403140766336682219423811699329877005327604059232927786416599476778256469902680023652330991083835936327014666983963937437945138293056915263077877247605713466169312442041877855931121401872009288230246656501786173135159690127673323970049731003909165404496164367466918778227530087455102316511836654090492758069628980433346742595332396842749302759877970944250525610428214613455961665693562555855404886675429969372499130624280985328959652492238070162266497080468064969987114159567268302420850984609813638473680308912043560357571830832913485366156977175951713382356601257952384196628813277298829720135588990456963125960536407965900762663219731859882013385986625575328483423615355746507750545316053681769125736611343970068203674910754952987598831241996303115274779648720690130219595863836774741669320346958968875966336285337051883474085712939723995056344757297621106526647635732773605618640708268461084623660580465729866551325001878177976894626129058594112983981986743831018569934058024731085397331723794164356641805803363723716460483293804407320074309981790003049520794416141045383422495800170111042691408143651142960714288655950281072960122619914244787766625036399643910723566532387439394751033440395618136246685083325723555532806021017926914291951707800277027041694242311552809667824809430453720587992761506314857549763497404593879858081088590291390986876694365641306147543127784365152248577838663569339186382393843615851011534305877522505293209795428339436350731200514211184101355697005810535176170435497909817543543938215385496068621664956175864229083877498582511460436076052690257020986058834111321918069596674428676128586352181295350808553531782563731740534193738146553454285391921983642244258500611969946219777798093132918039377916649272808599950520979520986253463130800713319538524709084542278846014165470539472460339865926475178376402265179974019505340830150125085667980610433242640688826638209610223539678363601783659202028078296200905515524551231623715322466885136218470701068233210651319821123424264204076628302759593599277158442105994348801369393511496209259197195981440007743400703237726600393579515034414177631647192772556085309777169451273192934933394517734070061844893521597742384987755420862728698443040840058158527063220088232980239230797022390945033523602630442006319504659347446700800430478433057742895116661912987068745012582278459995588351679130710414115089923659282628550823392636789206854274878997374955887854489819820093330693113488244648909477616984500430968512242110131118735302939288524280718236710451899868495707033848102885055893060281189970831095688611762039734334769890851045648147799516239856521147143862568987566018180982298060310312591628736130449297311019851248339642799882317608378820002117775848705347519326022173789193095056465766219962646752684068216583128208112944943741747497433382243506587927646460155623965724046620092453645714891209188013307585834959932357728866777572647637264720820142567286354592135618876029803248166589352179908622616960345862236059139470462391767740329976797359451551152396674315396961521736598487772993406636020385526775848775485700518567715671419704638472613137740794002736856754912301695361366859857341219839714819298023715476553582869940001376930402455642031410911988536923355394877438660329733813879079164998472372846876663308956578381625669949344527436597667692384810535966045683992237892265302831540396285587743842237905713990058376474973094407594958849370401164473474886504427931485883701842492500155366084468767229431771191148164005686800492141938396317012427800858116609674322652542913758770329392943394366794872478254967410577139926502406831777896649117318429551435369542721817650804989905126554302370725072391255504552820830151219192530419782337123946863651985548556698585037783184128453891336666177603241723954497367901240822733005985201769558434536368524195658929056982693541765341483108175463540707334296327402483795695686643963181540769221657666800201917643746725505040194941338144466579038621451340298097899377319647377535765581752578146099380681856563742802332391157307710577885983684914531279680914265444625988365703810753577229179394908934197977041768961003147536690779851426683767130608542374190178701620854638603634300843244328959636238369797684160840177526890747099445836913224193768864958640902592605496949006702895516242150875790097334935273073745608098987301504854708762939545605827295072573546795745247618296983910683845888696354332906816455323296007451125433448702217894388830347532504970454595754507060537926950398586555506969687842187552193829997376155515138924540846861109655973426134658850535110275442027891503466891496931003079729689389639953362043983269262198810583505519877475925176893875522766689149786203852133326258857756755185532284736413586121869961447478882128964704543458716962177062780860543156425225478914916542945744565149033833487732042645932699750513641306235128505914366345051114579146104754454648071432439053102975468673836405207043500449297673120950148172214688310425901640125546418581753973927076328621140444297233229072485904753054048299400367424463739216960584328263051560304426342742922520035437825153350805426824488075877135209454876716192961241225580814717297807891178385815251065663788295542240130041014040247459643031420546043882616649644390502670727151579619169137502613816840322944963619782437763542059255619353970312916037537274387042615644019230171692937881527417526153091926903402533006400703847178587239544312074897623335953931220374594465884479466426068808036513086454806734545623009670366708259272289871158366023233816305076863102498822471027443387294170155685554691263287754552509948104425604841901376423532996731270625874783946013298188618164536311807709510249519902292578320398999335824311839464133520022398254986298353360939771215852436735063731605307117681587163971421190384588265448537805121178604766360715616218835388688821855057175215711619650995694988366307322044193077046991819147436900560689721465994390490628635274185604173478966692930105543074079412987478619426703571872202794574881237182053357976762051640822700087217271772738148218318924927923323693578204177687398242725275052610823933265969291306533065711458806694919640120500573694358337756553596142621237095926167606298041170312800561354606271558769707809508347815011503146848998624479325933377753398986119108380766305752271060682916912380281895248451097704684780750255394534316432207562148776311572227220624772370860137756657755546534863206886564737737706385729917101950374035505161727508832689043424529329892280201443740000232323091022515791443137857768547188039235762648667738597216339711288786414814878449237357570757249216318663757622181622758693780477274756325730676255004417699683272776146149371914860597604174501134382608431472702919140209479411240245380866012051828907911632869806297845833839473024938071829702313240330119775853636624472887704365205323436140367179558707884099817360857119585814330408014904272086259786768403929340444047892517573939597635925156860636862665524085825476467829894963698985322454027511834112668887131988768952304381852759106541992222267748640441403254249356144903402051666028884624731211019785677640398824292231037885538455389040073738443030707821227806817810043060727986063749586041400230848442066940284350219361269679552119437026989563654176329520927688849845055269520545332334673442261530639858281177340621194944114421286494574500437146432541870098906971445957762229777227352895880977843961997865007195278723134925515748239151806165904128132522737054370277127816059999006924612423851808302169327345728035140478336185867770268281763322308064896670336001521554480942150501567572280198871450764800243517230275934483064616631700364551496764402163859078654166218104065517677601040930108539310851860816824205052426238384624891809393648544646844476123886117735482531803565064544407833658674347437143836419931484087469693215665423096438184730208255465863343994455581725250758084307497562044890993082597361749229179428746325931379133665587440929483259432557235014929019055712239104075686329939431981081547943412627338997893823937318538253776480186068617111071805381654891285595501839571415724361631331302427587853516788387900327966323477352708915070199933199213181869444218779462561248113806411272153489780717905194635513837551276393137961919701423802126351225294809182581935174020281581395560953720006659500781860723553050954732947307765743346580596509174070634339822326041287276436733820763907022003201079537651137022344040775024897159554477357319798944869892683343866376467109473975300049114659754345380026082863112810491768677238893297136759418492815804876139535314304033094260662879961099242081667385955180358281001397269090816196226988702805567672033331850719191594797242845831877309904641303876977893442802227336486627495542627614485456679439260364273949029374181183603745171917301636051422224955469757644288215448746163334480380520818479423986493757759621001795220879398241551195443419332382976737720057578112914729385913585900269104970514424251823395479096531243090077797573129906027706171062928180950140437600599806534788691627285288446800904113602836599329620096558255626897266114317664861418126753276819418518447083654982456925997839544845516089380653520230112457094791598402911359306968287502217553035101827264124682005294759728694956125579839336510282095217222550498778926035871038160863013544255510014164788461275720416967893670832394797872148953343541489822340672070317881874992098755224054545158208747523750146715921071336099174965066856403608601795694198568751326699646879084441565196265182105134926306675741490310522650457070700460487430022212192332623181785054368245165073619718253184937671212932176673450904530997442111850882115566822456560264632456695121438952939372628057239475238067488341694900366362369283575699141216809543170122468165532691104318930195989086671895970043521437236564339446679605378236447236865163764681761834468811361993469967883248915975040589035991126439461931289602140527544192821364473113311948734611702540281336163463265441863740191964688567781749145781802274885777929114812910918830349956980237735454090001081964448060900909178253692586732127260791338611319096891614714783093037387585988334980412317565081570135124466125120998825848769675785318362861777847736655904065583102499494328341859135415315720421549089526097149324002631215425523266645471410274968784755652952228488354326446018351423518975673400182769387192118804792922848759961333052986013624181584963958222093194153641708676056636103251333019586244916216109486945722995321799575853243852173277875421615618586030541295703806497932274874232638633929846638688140317749489519018770661323874995815543855121883094550207567534914128188859680528050849056584368225985285559109108675003569586656711195911596718035986609597772722775216464730564435338200089032662559376573421432388437267152725532038218373778990252606231003061274570160571437462400934165090346298083606924144329213705685409473830867528564221868925480560244547384042856672710320825055941620574340212123998371448611990602336875659639409594579112301900988379708481993306026019394935763821696916006418775206843198097267861868981388506116386606233502404983059168654139963796017007944209907025793299879996237769938936950113028025175881729821611090707271563295266228336849421138688080498269834602376847106241065554171618893766852674677914595284229752321546597619084443884489650621467958496991797638119877486804501278150225057757665559672880422790250208693605518643672351988160047540175343547520616085965737034117863248240351185673595022585718954299744203776742107977839912618071585935224273077493355515793669138599231649691364992488100015448071214979030415862605115256852845707279023036246914695568712653125867018603511062733077533215105081874352037667737838614474981156085295263287101186689427299196577087357701589937216914973207413414287320773686421968263359942674769281836201890814342357201967247915583559314612815332952092840769272096177817393750328939306270186308058307947016671545927955813828923201155566151269725859483217767522677205164840705564157081194369825779156901218990556228459139960543826023121963590045070543720448561956058571853114025040283439112979246059517931759034423636172022623560048329377959789118069591307961317522625384125472962462035908592340576707182969991075314441518752458547554891601636576490047442847285451147585952388883245963430350201705900357637003964542916387180075966694717763114185171262745074706509409341700656286824502048370892066953035770200316492459952047102625582559870029473573503977313607750857752431892801489041372779413097279448667695331993220090080452290892078792715121258801155796670006541159743523294465000145566218862639583886565159995288662446621657295803986067838111822445802882781883512124299618263070169706205026157692004907463724426965039003088523251138354422392864805635797014230041889325880108849670792391848213300557620905301169926515968070067201926149579374086240550246568611475127477182515159388848894271611497851063321396117132736815786606251826754138810767203899937001575413892551927730019567815204368853654934013418057920287663766459657893595147125841667378732147648580566975417262521467273380041902294582796071056252007132480940313660724738456089821955962697108060227901285953104167106819528712126684312056254617396223432538392838898759338818087491684161959301934480629123844508643800544481499539652282462655616109676056672670227357990677223871223827754887778727512672714883098490130250377052994085950521343117511150010102502877595042879775759709407652216148056509721782471262215434954011877073906072265564877461693342170523498938175855922113845455383735716883450279220852159276610428353955211379291753078781181507477762505210455244660361023526735538148747265580926174009490447652645986133581390163032620652896734794369367721269397397691930848844963432544571139765564990692510129132736939893977945965825347744154034474481320272501757535371869442262287545162994900697478331469770366077576945348238806338970772535215797299919013127102597954420440193939481574836136020070869870565179420979203755244632382034535438922782034051528044171915918143089406028982622093520073747014985902629489588377580694221944536068604074177745193995385705516466868331987060905213200220569739078715419506623717540417955608666358577901165970246546482585194849286293700969502609665003844695013078594945003787562900504484186235040768661315187778644510446253537075266821712936542716696050865899881162049344626989919195950505853158115244177402209919550237117520650168236248133404172351378470985691515419634817967117084696199009094003574676828190909991020836611218315444279280988225493281942148997445931649306166994798607729573371506222186553221251616284455228232925868320774422990202719371720106455597750020745744212071784335621140621261805999430233561701132267735134873962884934912179597906347661753366458903976517347826730814353387654484493415541807739410857510185432088791915523695442683532023838237491700349792322585737294420570893282618991082609372069434485554490541428932198019923937776649454632841680704536512875343954176964638481897633406128373661031491766461279903983758790262005041532607174598002799964224301492768040019211573314488454890920301634084542785886878448057492451912093492314110336069764281467055947023750091152250381466700913723945367105592047317108216029543823041281223389913795285352150879680215029480316567891335927457901092141870065947925313136842677838797428279177273046549704398376847978251194164039623244760536830701701874650600523302420304553679940946803871271013566058655337440420026040496581204255670614392968858884333566695416858908791432966736687467385119611858420999588036469478783537535488434739318922909058933321944820101417493456439418680934045703925377280136044960760198218763365901646503245594128796385637037265734036337822243298610104912270265725625523751563998206749550257354049070728756895241447862161337375839878614347927798841568520282160458947570437357188496457100627861203949538695267944499221265156062134421016965124579597218977393321497352145931498457796754558499400539060214627976411029173009048885620007721789335884969458593742524982148532427630531284741610862167003954578860134466652258728502295841380721105476534757659008910472959610748513991552867784481909384737586618782854089013257886826697806998286306872586881916789931936549244643577300440723336924543978594948137320852476958486112714462054829656440519068795718204124166903641630172815399515029897490971342291130970051418115737372467828046373027877481820037009628913769341446718266148942781885856282415692487335583335730055957554950804945134339891320369597363389835657741288601338403528016753270614443584230416593295757751759068395986419264306754918129994219866315839639179681278564896801490666157240012599414253922628790790986612769526743568578961128739169001486658202120413335345109050055858193482664843385353244661393814121878226168779727286554907158561779213230259686411821054023522736040851262142652004329320009214393596221746976350557265139470159507218194665196477419384449049950264861854324307159595507726017240943970099826108988535273477133776259010303303727643074876735362752805329773949610664481644601351324613876968061366210975628595583375383082749639234999514259804826523747424978763658355414020712762681464700000200964322857583390232038412264504860057040497503528112400607711896990585330740120606427617619092104921139017635566368079676296819394842505197649677364048608569732283727402403971125209329932611186194861121430793744855401245479248562831722886497384945361105087165292779163370044873651166156793081309659390417796036588234830362250038315091624065515815132532366286632921924923284382337103281692048481900134934772441053843826787359311272856420511321272310544780655868049573106174834337978131448508552048864645941030744820258451336858613205024390491040333914244887253361824460221143392821089672804548496203524580066537563591220793464619030649745197389583381018209677652965512079535541355642844568427961927810873058328354829601974546332963663454369570230786049331085799739036819769611735940442620576440268765292742806493015040336937464651439358148941721508727345596125890084671620255003360166472169757808064778057073906062339194529212372631871217073466347121801137565682826461679862427975452464377156303621096657713094842612547364096295589812136645660946320666989319050859205257658434215017128471737672150811369648410454780962864153544190509490003009695621392936952103930937285895189253426494091546671798980386563947308736799128552881160006641015708539144681515147878556693497546384215851852676178020614640745923049778966533116005513990594663297998674686838559071255950823496805392381414467134325818655683657525124972609884185786240302900057752459692869646720623553750446156684361760361589119485257005266055300224619645896978241908212191030124625008110918917261065587923502870400235806286191632439757640068551986687801147451772386452197973483170190819893468858021402030865975963815823724338888424049638401226529242411799869538187322717901549084861596073390957045690929161586629602389797634019242756996761408296515904268504041767874696723326512948077232370814536897655644236314268727743619043879108417419497939586360595099705502944777831886397325910902482315111660464330395158425627982248329155857817548585057141325198408544790958730935841356045555934064931577058843625123632888495467884594117795568617693969991440683733731289544340014393864128982798547931904244132171697227290351270253081088831515257683709787955673589138175334077238163844042394735573779101348419957219440547047226746380095920082204673040167475974772336537727621449325865288778578055508773305868339738898383443353397925372936611351090600662880194262656932589869148158154654264711563469765960857989924349523166777972722228310564742705523325412692520155577619110896992641562151969120208209304279269999848850489120174442634411723156411589211728544743514727803154287828069534889382878461588285372998371279949722246481465556487317642803115640032300921935922304664298558784570116792929032335828997396052396136338052493417329666096887397899753536283151054018988805691165495002005061949230791793333004121050985448677010419594919314010634411528488141565208790519555453902350504355171208116488025267834801476180013571295953564224802582970135231877135137051544221313656591444578825547379270211427068952739649049946036257311229719445966498991217027267745340516961566285492159397292923809475136186290081207755303041207879439514800373685825706200910046848976944420362051802158007787258514569184287356215801738536565821170730394185156506388078726899346333613071760016547227678544223483660527974076221685321010007728350320046584473611430999115495654425851922605132633095067756297155808070231403273814826475076719921879974481274516699891088064766957343638653332970938576871486806785916139367064889290028773882526848199746106847351350114961680467115452730879188227972179671451376554089098925670467983010894834186721162734019524480958895654947086789675311054131454446044563045693856773786038406854626237774503863833308726986010710476403488669188264829789106520777379945183495742386109765334765313323714641594171638413235774775308456569035462551084739135830599877453649276299667670742666936184976493070480629770473848869103865347689059069996835807623993823310144114154557844840768404502042795422237440192996193478774377345271556834012228269099391470096077841589201649191525083563622427918322948717685019021021537284222327417257978026066399457819128259090928398592365122960666116367507832046914514405955125830764628857115346777888819321353165641017418741161315956852575807185711523772283365573940249131173487810064941909961824682250928675278390189768005263843119930294504907983602574493778562094019633533166977223044290189507445813028468418084423790909905448238686508472848394385612690996431643491168557628464476205168623234235241141058490977336693157062660502622582766464664228513828366323090835194909192394441166506598717602492817894472412937739446671210666293552129756854554407637211187910385891657972438495009884661922277640298421603355690227263598880177282823488370605884084637819731728813753150829882496348030913819225674245919369072902009322955093313291122698620090672010339725206808913560063172826203837152586782094367863679321526416865438471691921264147840916289992403732691049349148427965585473058988151256907325087974635535755494870286968687107897026779509726911120972420834165645681325628272178802575654610365603514570056533695790641341639226870510518727136721277545650897208010054181321762531546646197965220770390260422050433190191981394478963230591977564203160335726222027827081118910443077207152448945233008406013270683333708120551514624534391018095123676943375991446852145922891159672889193395310020427584567828870256060552223632540551525200980053781007147511853419008252117282114213443146763312422640551370250410491355822150255977289675211945898303552197262389988647127151299981947791719969809545046800144814681375865013581163818598776273823178050890313148096113416453522228875426026262312363375768477826388282814800429551807497249880018427204359438874655891882846322555387819330504081444434457941281345482960868044007802157939411683660233891911537317770005137127781819743045003604242133682937951891506354403851936950026579183604346957178180411356397744382759144086333551954474645430169050410417369760314823807856006380749957295854045631761151034372009473248814181397159289464497959477066234130788599456364002140438375620210048642998813384557283548422692153859909802888235586077578462638917089675753316061457405483481477621437213255035530307409449368226010324480257184517130223990595532594311278002637977186818710874979137544143965660123099431148696013857355215765022006989515567343366917505429892379214464982013073866350632946563311045060271171273054544890239679981864580347292515445780406098326049943710188935275583550298961309783077065826445526381317326991593325053055079482123257296918217604887349294079810932024410474349517225757956752230544679764385768258863018768045241645814977242135039525599520244816278371874389936274643093913615572519840744397077534072280185456724810400365671583459926094259530229463375292378799000395013490022298832443859407679362833357540830457195283239505636894056429546012786632747361191105136237919235934003907834374426298689335571994934823727666933470770494220491101480326553607962524134807701229998787337862972729834937585937766419448165032947187997144153165771532054862538977605080799256337447419181787401823885016177643392283630505702628793598820682137350516816620646227318536292720281589735567397588317929817116791586521288490478518705965105179378531238441087956519710816695373621935276582541245467720378124194064352574863170436408524250552488380666733438575697678024682599320071057215234775037504014030514341496531008273910186820169469903332191645807798738647081394311786232578225192809937451522208920628974137824715915376931298625821369626457509251740540486525684449461232074722979075432354882917130008755991993280234641998866258656776324747112970494507177412390307137111161740205098358186015876419919283074870112406088498870988637224720696992547554698978972812929361590836729121371008173603394488491028039355719608260218090228436726663969152252906491132141810506446416516267361401049232553250608583472125278388387718159704367902204279176262420295770466990584545866385056102949161599976401530193779598115150057464945734602931732089068939287220529553698735533910412946578145363452279924431771933289626006600807010359055893585557764447473796644041735278536629167628669819420700885446217845279434487245655834230122696275620814068758786080977834139904499846686750904521606536793899060534631545680728360764611650461445735129908793783203417707505702019980550295227735612643728480636176559782498243065155270051599558345774239296747480015056890383494019523085602329003750572799127006250800363373671945026669880542976757043364873928842264310376356364569738206725382431724667118669909017019148081749508905629397462835595910056775959473638150556961194794394156571481369870190847237017142917320118305991054451785958793568773712576613279542514094133411801967263715273967138322673746321782349723728184180137579758439517744320818370870718909796113451457572600998968076456930362388061279081321410982642288136204858505330445605046094290944769585036913863767059103853386770630587932703447941722702364729803662637818035689080832603619725304729679790134406328177056088292243820606474943235401034387706219276659441007286887701791026039515907549525525338076374555366753498679487742574263239302358217927054385671569344149460079849351676162080455359799266709386806818236138480284253819737753621729064605752573863993768352074348060238567452086437288514003760191837632764512699041273531224220167159994444530473505142087865375389036007830422550325921283388880916122165952709012599396703323434957704383146314073011218635174151910574894173316174359649565985839700905518025045373932827940935146616746543072780741690244528977441220831412753263611890878867961961971767837915302136306572087911737881202074372349452257518035627639930261360554709991976637164404090080888751159165170530816656654056149912312116642805149501453343573753546774731964945433991714463497773997263825620573551169843107647156992431315042198502991265836479516407899267774387228371342035915674120970284522360939230844531863167193043503195149353697243353025895268495775501903198373758784067871097285777840270973569818384995396501859156035086944142296569442390863686164193792048990044014530488194183694983959136168203418966685584223948796238050546545050298325686786086575926089128808935512564567495044176934726352819506697312576395447025866359640148320096524398293188915390866844749367072316070223893790610598761297116453651957663387342059179866098998135598563164066790272389440082811299249746838818716125600075111229745840880931607099970528276107597478065225417212754392515045861628944963783160887715274349642577516957986846903802108899362989330003959361988353285185716829538123812566353167361779142090103915878015122031032967985416702700579726182984757279790499393508259090823207975719169857379352142440164270035282101316791149115694009073776205171961709385177187297909963325368668002163843066004366429996367858080483669303330394634926651669498786403277397351226236469809434940170679843021099407851116211163670122741458505302722078197379454991373421631285383234989293614429101990099472459171625997992090364825878358235674998402250900015111379077556367340954490290066674430501348672335963313641010550080323320927213258275537672865116153104284045732641630910102113171015232096128173965612057148247323530739864110020201415539600791080983295789809091277913133287739906624841784717651742435786952266306072090718882676771692670988509880271499963945216144248844079584535883660207930797415460947251114241823009492321194941992759146305346004044298317687755393434462404748659794133482282517742272172727706777349568274215183472969069270311560328722197975330042786412757094516879483285278957576590970258787998784879888849440853938999701414399360333554639564929404044806768395713571475856567665927838739314174307192265292144447308655194101457480059096488539694151380922763379846463691433771759171547153075891753378602880363841191069526998702504212554337343870410690180417592435468544639725285072825917737030328971142529986166515794208189934534131977196375746203638767668854649686266245915707731989590106779406156260485110209190407481770243956332266664711098267645039228335633075062758648623438517711908906298052775076412543126471547105344063170129859282992412879951715108634957331584954143897823954901274472711129983917235272623488779097640509637194531637423805947435655389948465358309690770318227399441234293239351501087190066148628955565374247515346083560677817747303406618000049028253683294472141082139395015686084793782691820421726264955654997026188712820302088252676801608094552773478558381611087312224349795423448130669612396381992779521822663806985022623581339324430963008449532886393375302322579507040283223176244145148323063123839006922267155500590183980170196870882652365083123700446813943551668380520950651316470798821440841289090883086912254263564338843394948270531067152356436745732890654863747454874901092267167014218667878224866278569763731249332499283912622522300994122403693694884145019465183829821088368206464074969946768123646386273604238912144175523799703530931432115192987114915654464504920098136665185403806425792291560617406290230212055484109652455874527294632062552607158408573785730639530961956497861815368793470644769210292420296582869861298335492575623812375517001532709938216354091394337952736381043383906771819886312623897976190622302394165431981557396235264635269145913876060601872790713605404433294551837381462573310567377216705625791028760575746999725655631151082498210522594075621053924156703219863292411657231940595753734092119295988129894222811405301281146562982411944870326712431107535738459524996252260029701825834227409864853494507790648406610116266679920579637065610254477183650206098242078702700601368746777788037713982223898320313269167979898225062766443004839858936134899151423621970502260485392867340256152140337406680831044645137345067291249134384580014991069304058460518687924306940393512950640832623934439356984358716415188006698136666481566425209088791143878755046390665539718359000294441609574506544574212258639612130096045467162249620947547489028630912552960971150429834224268129087939285048008971960781533548531580278231456029893691519244077033921802922283639298547196319078132584487908501785892121096753876273574219705435549737131654994346127192561069292399570807578239288054744347401656632306929581285080400901120672438108205597413734657413539883864703928940587642629269131293828966752760174896933117041827163555193193395140385802661763764672650634286850821204484766091188222580592418753304884922588716655365801906493654675877704401555598991616958232676356599697786788446929664049739091591876999181188411701616478792605282118838305831692938583642136545347440198371436780278144917425826773688736543436749009337046343496520737292968487137707502865662514469099126263089913669665320139192765496514673324823856502282549741285937526813421010511203117439640604985159798778792434502317854136521048343489288190787431010348478364378910059429014079771730307861783725983493872049715567022565082316248960133802858022753334226554707938493943171640367910021092894265842213245583374674088868994210161743109254771277126445196451092327179123418283094767942366523623225687221445987245992067807024338569281187431802421403471635070257015982812489909722639380967082961549584538816818449657058583840259943453983569098651752271386373243926655194425974428153423944862580832741315776974463515856260754400023311878628563190517744166574442088912694687029412703594776930674115487309872177664173966643322435847912771249979582351360997895468493188861730559725499440092291950184780825202196304327175484488779822755579779083652653060609618508549605538907795723827805519144546948377536213405486119996855724358556358680004012491231404820466433377685281382082293875947861387423556367053003867795183775517816300701661594259037433991242441597676523256108046248868652142983342522829752428986553210188989943200035175139235283292947203326963350980004535841462415102824804272277420659493303098867614881452185184533340785676813857625530754146643251240779029797377135642542004324545654415249855126580212488687402104014262338171675056459060063611125053755200739356231806510674064568674189895974490161134531387026790756281756901994670062447271355205489493316839349787281351778522432565604392919010861997016524369073107917155636296749636202878479868369120239078013022029526327415924237576224978504006979166272803143394116877938438708801967977583514505874974882113799408848854941293787404804853140131082878031703922564705999276403828597158566321027621321097715968043617817032322729257274437275633906264655398270641665059548585378622748429562827385824599477665732505739010235321969081557446854703258888834553478972721727963973991074548851526018152942542293246104718861744725852303224431055536023447960568974774580730679450482641002839456767019195610451805772439173004149036233315553263653054887666817720861911639994636235802446277073583104582246658889511494402296054678535695054572458967032643946630331085570201265387155725942943677208639846279901058647366323966947182784966515738239193528860627127574611104745941325937606356236885186798545895148775136380327132438182763586710167855614850710216489596513859162294504257212250815654503943853657732704500187035994089549811741913044520366669917436575227137069005180074795830329513164394357670370790615328945478393818367167783023301033698917167388834640999469425156300619955979539178356284524608674091866747648292882405436006578624245090586139417308287291087936682998204189292930779858087435267300452563210785000747940756648872287510866776249023040212599473641596155871140689201304922657699146582386119493548748497185272202855393668513032206348969256074500587272087717409624398853006557300741934789681817719481801770829875530996945835529541609430582635763434021109843555232859280313711066463965777615894225456997167814320275302060645023829097595090178004503449826666616337595039506504935090138864471165593981389018049933224443941624309386247537029428683983294697018900423727220864433979015389409727372220536909988583088086584198082658132521970856610173858459780405662623288938581054659316016101619126965823876383169369483115506917020008312239156500696471072816957668604272199090996495963373458440815288327647997355058217160368062258644902893948321077006247355988033523661487000301174974505525208224234703229041365851113597770664904080232978644184181872903776769539760064254469517223049743226887588947457682799964859157729074144143080825182130320914675954969189017883899134246230530287306125884055620643076257982491703730108525667730031589209377025058689300295328126036627076019801742648090747633992430274804111588059329691914107365106849522507893058333583895888224430721685847856165737521167250480616144773956797547209438447652841617938566741277492465803213012574987089989067001021463378857004074489442605402323909774538663435376371235687921246266399888821403817239968484004604672336693890527865740636273411251586416764658405408182221817529218858016287284593168793379205573633526322480168440874781811909580112901642332829586677928799121406073251580093859699179613220160961956702295631521977143366741492314812519126421162967858728351791968507612785688941871743952100062573466763594144748222951696128817890450883935649494226570041407885327405540091319597216464223492886602931066808846482863507252452293600107070894292271339390677107943817750970013331962610540760186819767938804440297111296376950445416190237934311608706855496664333044542877608227519985510325973630063795813751689201207586506088396162136555045630200556696318713683473325353933214006545806980955320799270916468332495862493664591544872057897071058425332016151333213044381553944696646725424390641655234378759650440091522345667082981327310123689431593348795383658386900541368551201177774684882110299729243508104903815390698261753243424305858307932678665862628040988330008843069783885346434322179109591679279971475774851671844054286849836550096671122639648118945605126411855199414437195978256197377438966358891329073912249756732347637228533410743778293222583087958715766482588726522511326491212685235330222367072674400772922769656044314126588053163315544613167046178552562370956763848508764381063613552008812048394486217320216671566769571433889716145099700735898438973686949507652591623254557939183043514683982622265851194234887059434272317799940638937424435421502605970912901973608567691218027486419870486814181562424848434611677256991577214871061626598777645567345463670370423559295121758564978499267680441227029402811686057849969182261027530281340969604471621639926986635656309272051729709879590406886187925505839132908295832116776938683992530538300693706980563355990778322549997167468358762252082315553210451084848147177729497587299520909412788689736499580741976849803675688181262974936640208598406506277153333290237744931559733377721748980397429466331873232980381001793776444351771464271945363063204896371651794022221695014251841752256375920918484242919250081515244113941781303618777876236922022651201338572538942514272635467608088424111743387289238648932543934982925685892451776271341140479804789326047539675730168840180967680697837138536457498583472156928447807317571349020336134218524170232802911178614965284135139037352376702095543028965114750294707409734315597197232337806656416770684607391049115868221705737367009760162727549120894954902331348847948217537745455963194057074873198505011932871417869687626085597789826308877831304410413724480799739768200574691193088836891449501972840037524112652668337532841764977554064994881293955512720246659715239656666420192772571079901704591703309448973186010308028344678525956816249606718401363522059162344353234356368571442084009698798718417687693710533988903575522180908136884443680025947892517399923651026959722357981004081831440405141590393993558767434146821958280711254686536214895670146069328063429123762411113464244080376472631047774939809221738940950405519386607052825387339607400509458937071286617015238056022469627502923591564461918206241380410289671107061440043003366345787852769247381702949394586345404655574086597549199698015768368727251457894840615363214336117383312352955619709546121605374826468558730218264069140896094636444917100047113894078765858732397626178869378714061474387848169767254513123139524373694612806791725611173182381860436579685815722198696201556585348172974779298598849380903586605998201528960086032986417612822897091352222897116728961116148565615001379090512276266686660894357210393825165399823811679542275963475435823761541218107087762603159782413238272197110803962656683729766457188320278807913338198046607190224112423607338545689768748134140292296309790181626181202767587579096137381291214338580219215168627508145972794689075329174252331329689105138745545341763288150478354620850820322322002977430459496281703272667747290764461996035664970965768687831724666388440808471939606345598803123462572158754525092977666143371211294724613117243904773476213946729375760177213690828551682895990520180282917098465795977535566053929130343033962735938701379098185895546422990572994005888887035892921961855323830270475132934794020292701089671277640208870396883115823921744789405775479975717821213472775538585164716235856774950042506428540769890749251175523210397026860122311383858997142003468543992955879962766872511144502888637981788679479224306967026058883910888624561529596483051960656104768631099069069755727507679716801816492611652761314115454537184468489719103712901605988902453847442593540595686319250251105616331926107456926992953905863198815274979574646745090181070335683881783184916932848554585095711952929194152125701279692073935736603840201089510806573696141347138311120923342076687103729608358332100219688320121876633692790798783199407848837317787951772473916474747496871492138081063557253106202578335660311980317332955346244986787906413908274061436289125911849513685131329464760514556413698733696007590099252400164248617272153233145870021842964555752723241543436032246200808898397680647226800522764842500457964986907407445496183588040821744034694953435736228140859047098914859346401352674040324344548316101275643106768859934061523986889631955152492709401339683344300481516255730824117672758890930562892114241848209988157675599016503134294908238280013168248016336626426269527095241411128910254170500938483869666976051669476338142043158864584835223901882958616705993722960319415877084492293524199200346433097346616635353881646283818729806158777120912148840272237658778785228410656398084877369816234509488526827853603497971824872433406225953578099680305056128953244241803102106982779044124961552066732375396223691679141646430140814863205672478473611369883899986307402061286281122851806992425957697412109179781827645276542312784048360210393266279876106863342198555172418163550298873825430542154117724181567383430489804640829251228099084612857265700312380985809620509675449639856160082493759807166247000229785818684474446793911007466134804018028237289814322634398993566136361232619083943944556667772676047097916952591521857186544651994124233368392320532908635495313586252078282970642567676835927343714066660471476469724163602564366129784859527348717272806658466971146228440143053304336425285351794702687884605985667173860212529543280930104998985257610644393830778954611592082602403216741223486393009913214107054526952261913912720400190087668004483866962349650329203596734719060789254621413934976183557762203121887394280318510893512360928619387126227939466855671351981051646413035877123927426706680551888292304879661594949026535083408623819029500541260784466902784685625038311706460426150767576362800351071606733083176593722397233659086089630456414979245905749880892899883577545145288153526371217962979123526369079299758314826338517845505107072151357309904644975980150887164845876429239526998744288991339996273921305356295025309339342383451812229986191667011725054333154945581324039438499468588064337523487543144642139759829924741112539159816429230574769147470646488605271122745032130756415411673022460492764116316766367443077979111282063915985478090674377494861971266626612006860389002405908932745609818315159020395362511931491839710520962608979221092381527966470414411586161989392678539307101087412899148040779067525614853665087968524972433855085108682852683381720047625814529232746201249438008525530925306262919308147925581709014152478387176223600640063936592662463371476447529866735588717896959815350351562551428112873387465249237548767040052605453459054834986302910089967875246218825644871906373453585525621687149056177906900661652548302679881413827650046383827905611478185074289652098379674899353121544863719939727575310747681546867880828382362556850340124815304986384664032923117413742284003411872070383823912007312132105884504518346404359150256885554776493921685238648243719591502741774649725486100263344099672436186185256877156035099679184956670623059523192107130219067965605674226801831986260308967281136441546668194757897319525685919639165347356042738648083252247388745358900378679958590790806062705903278524548313391960051739238932215006612103900798393033975832032472583594442303589501374998428259996299688440268174550329207575913339655074013323727755678771109735120484029546795718168312825490403662443115051396271293497181958525811566752288491036777591704614325434622796737386688175498735423776659471170313856472911278110923642481467325346543310908984340963123630667025481495936576936308166823425174750457577675808488823389495081559005334124818364761309713826462270170033524984169336176516592990467938215958390431602339683956560188878524987120475427725670320911335647948202277340952918972113118512328554027223794098870724376727895450249191091476207047815906710463190908592598164362668951238405016644699955985323573199761173562735679392737588445296985958398636525639923668590720456232437997738443461406856683040020895385785564760670228533480956429781168300346217521445878056417394163914617806499247631236494269008841033674967308130245162994534890621786022722106040876327076267713224635722153743644257280545563840597460749925081197807711287087632433797582245218131757943842154497749742769935096817642175509380333668373904884486642382005564235413816035012518870455684805950791811995511541743600560464612781190286737244547243133018707312543500992112148904040679664261535394886439321115843334006883330442585689468409379499877541607671899249624388995643094909273551764231382988754024152869897416262421375357470285053660646212352816207898097399992964118269518408666634465034686025965072403500616961259833634321501361704474418718368048352360249819557499396553818072413653350453618988428119386161538321211161974790925617225518181363753540485965642541458832823587689597447364429009320167722720279778815813114959165933398680283343815541323593461040939191934011582643106891568039702328590786972622610855662297140200697985936726748829264580523519386674600698256301765728047004681345227820437965080121116313289441009949726774642018518974833130928394408076440494471584751653149183880094707424517330336256762711404430113622369539209929025831892825537247757161172461043491958047685039236242607205185968582803347933831706453007012301895829625717766917483776797304993436373721609639129622144301379268388473416872924087333805527186668109763782742138119757719668352466170479719991530845046982119149426377374855176163027926454263839551093064151041428933261117964779745866048435776142510370697377006694466536828324750562306162561421273615010585724052331218080466347901920487700819746737237443583784452714104964250822434660422927492970394902142154172873579953677548965397550655161796387497838485656138985623841090046135924827067855468643565865686035410705112905087584018541980910300670957502872493792707139884448274177803286941613756462108154992232157492722956752148395249447593608692291572556152900603300629930872710163818766178797310367478739484480310840728689532521275673411950320290591852606806105525096461380039085061354724885942543672104510204981295950573387655290040260667501550637610825907397306367729400053910711695526100476883940261274952808353277439525199728036502325314771205002307890933563213204621054924562246422943826087982299742709860837295292333010327844641118417441386073036199564503116395825321192777528984791623709315407117449561054125642150039440361776727775550031598700996176378545600559586587234033531902841154787815867475844466315993110849474094579550986496595035283748405485987488475509137911332355134046901655923254606706095874093467036498107295893757604339509064753113386165627521931685007357936788725743098923905845957209234076429726660344949832238825666056347245466282836207850591772213093064937662856695757384332112358671666897604992858054871513735951479264355788474501185885028587235141749039854632257873754526293668193830819750615231243005506943064350439847250582259105427564715914798851268437490660705727027792900662570970956471450556702917908481116051865275464194280827284573849168223531256595680016716579838758431184568390289481679750038944611947719415490478363841898450313797851359546267081623901528232588222436575078313850626514062705219322968320041404855599316410454890183970249195134084793811854923240269804068139050199837447124062307036766675909467701458082099674157881867145842343772331235951907753788382452395949632874162343856165343683146670264914989126485440342294894492046580548002852091853387421664053164254267404866854787276913360229896110965953517419388209257202424336722538398655761766008983062188600621185439329043820847694909762605316208918880152240437583191633232084837069654675046713507744120522066908669126777537512971038259774761890778214933040541369678043265943439934743310737859485186623482212934831346966158284640858845413467823199907834733931951359355071939522619748099804804469939299635685469852684246947250081881556207697090423897205190356120637597743208579549498270320334822980331404679512449114139097644722711314722050110420791304154966071115811508309641145010046174291540626327071255249204948599861853510745508582279787625719434001386411040816806406316384322177035146777638531994639795345267526519750195167447526121016728837650233028259663713074892623751200528011104380886768644592708962164192664401557749341401407532405566434542582036842360096308675818272171522057495035806956690956247718643867878780918675343855943868467942165563560540609743519449922500055428976219335324379729192428360801893304448677588396131677894343288685771159319360341794440400350860763459964381120828292306870450977377820455312251503501216472280995495959522717577844731783358181679803400621403905649052568221897789918958760562563110446910770764622624400515107749053889547826438701702789019551630845888674559989041269676507880758851223733344485754664080340181462078864861480084944599458746927435880866391270522603196127101863640076956748861881161906051270868229288284619028579649639431098104098255215461585156047312317705180237522830509179664490005074273496112611416676242179014464346899720324462187509085673494905688645713433698313948496108307595995777685859659702217168270822012807575862709192354765966873901461898216149805674182121261053460638410669760998327889308191382828390333806008949141516691026329327319615112028782135630074847780314186802495090160897101452529568481208532558976111048417705415430978274559583337651454572796318397977944869273273076280601588492179780995378004392278935882513819001023745929329200054038545288946943889866216872088492755482270082166999004147506136320050059481832166870771080623456616844546299163092418893004324669779288252978045256097316507144166003958529838557837646027013004007484641716984470122098748617463402459473864194249422783319838476300694598228694567274562624787222156579813824022649888590117855775993961648754990076826587667484983174748317454166732290234236595967874772945942909925261382467101823640533047618324578324138046744193888942163334112331936199386513764798970659944279688053007469136540528489062936848669543209330126086141894309041136791921237301977981723143080847337277995424822117043001183487546824820570458440134015947932042169090873260272715555156310771838919460409082556347276874241052342294898111026331559469847426444653448426159339258571965134530647469910930931136009294871444877312494335426036040992051421989196768909420124172699609410493434972215916971635021170964100552876373719090618980715400537927680577582049229948683029008425488173973941675125915384570379634396453613342872775377979821540526565573841801493081093158626267056981327637355009801586103376940388166021383562897960934590222169296390579557589639641522664272314788978307525254380469365320103271363269915915684461437006554552374858131910802165129934901179312499128942805820033644676266993489388287325997127321628634666942817656197247790265799375223494349385140699510050601221066771188003076023967333684172912009266805029751800888325681935526639113419965329774758887674579405154627763667055820222924555199294140445526796926734079915147719690090758412916318620261572581655364095226246418716325933855500236817432649177430573282248034803014848508491698838800315068634503486926530763578501724604072756491549133141632146573776486635485254146422813952006706268519090399091051990263141705106077965687780090901764905001445108060855481024658896068132795660853716269640829241504326451694875613230941228708989459937432374855596462300841065035210962355568801145407991556197021183915448762152586514127077625864647087227295835401922322323011109342300205400053865874578040945313093683232160177193863132838544490620459477865337843453189900101695512953457953272144077833994802118919915029108780151508775593901680516539239611473508264838423285600743164071908195388357177520385911280611180062698980909231477623477484110652081605913160351322068754540181610626975369056038003702311735577806009226068375872099464831671973516960875435057238347696430324490758534753863558703896441901842794929343706135259361680867255333581625272298179943108944768690598493957854063480776873374757936396790723905585177030764952576225496794883212773811454223264508243433452877106311038727946629463140267520913294622815379271804750929606538640627444203755449188298261119642560671206644523442927209968139981983789809708256808749165588183885917357011820254004144428171693699636941760971430129336903458550844716043080292396442691916860847587478858053327360032805487336366106713320667874466893244389619325848393648565565491609859530529259215979590001505968654337188235433537972069521185468544814851527977867019690841568235774108655249834435389004549549320429952299145109750252650938061812165404322060853215041284092021653330137213243312485483254163568600520355433793072983513642188774055064466230544417499371471196430045490209075930765410257140047272111352623594451576878704330394123678545758153293405256557257061607288709081392025708158819413781643101666457979946834092891900154475600307807901230380020909136308343943662954891468479023052253374829233165182253191985978291296779850814199670469474863408834330433755412001106397266003888639202100575342660122043340207010595103676647635534911415364353814896119200864765064512274280340441442748924608567114468146469727959746720939578409538465873247259775189076939340706349229350497467693990429534472439666167352006213992935167160819503773079183227542432821016980878530189092851502550813888776724876898573035131288416379262957563717567178410874580778868894973122962735303414607725233110479802219013254997406068835766076826955255679533937372629918551099114078149991483349704565478411870577797880671653385007669334713696552793345285372709330488238649659034039713798332588157484759556559710015051478236524591348034824842938860481370616249754932345059412636379959048953471647125731420082009633729562584208684262356996729806038654977022827063309258157365770255313789442547239491205080688578936915230795623140716473990374833867480543724140711655154332518347284898709972628010630664059087200485842983802866169659627195760150025714080958179380318343781246997703728474314943689668622435742646694804017440115757772848632002179295447933632863095993716764399834334496965658340365326801206652799425006949853397485843650167981487973396531423060679590187247519646083737223390969139489173378836069129139893876684010638488232795928182236343111775595235954252112197604135683521012774475251395693933127380084059844796382388082394856007388979823479033977625513367872999356147622216663178123950198008503084202197750708835863860736500283663447669559167980243514836666908083247054136262233229305863748397865058793029951876703142751549102179027639692636899271498027172337557152339802003936406035308484152209974921070682988868199288671007237653350836573645409386841354177487369350528337043577777094469608684578006666185220413179503799481845646421199810051072805555421779373618804387876706722127392890314298823353088523187575345239326633010807780536577592205382041812995877666087007607003473630331432942406439844641093146780579425602892233106993095723191702594936181426872162467368583008567007917110238093873900805842809211626641834104920030207861681498926478621333901448077025189302179161215099897256635974303075970273926111492592736414742638724763551850448703396517965216952790951485280642270066586714123240169930025159656886014253326998494942464226838395179903974600845410804978042955476305294017107492834584790437037047968617384404818957751275461042424922202291972095231302451783588398703030453608434343281937969318606096827970923840562561921400741547693820214888787398931246531376252428000290463894644831339327540292658332203821229747350643860258230343954720238802747399748451191732109119254910920275220692472139424371043693456609613538588928052838763608722190785863200479767042956405574673426012826176341725596078204029127691278975928293575443286102212990536448165304635120779233929423541972582905771059547075316780461932966711101483753981103731047634372205044674986897352178870934346871814157041091822585397266442896864270402239217587061982751376987157339380567345836127212121457933052842744185875986025533945094442516376272961633161752919747738962099562457922383360190187009816857497505696624019541001415736614434525238183813012091158731841773517824591911019277863663920221129257438307788706639127894969087107247909539327589476208997117692069632410868763201798293826791968866613505997345546651821902254694752340549348012157004387122940799487998509095396594151998170474703774142892804455651505288452629566813621388525106044650837583887991182760506836118905126467791740718507249170002153807455146452230122004551670001002981321186470872179231850545286316752319615679681483051956066549929843664308098809262368684300859936645386845743069703166536849505737892906490997676991609629592446322205023051844594270116341653677560035052776786181464313737861425729649581144344688588773415845604688400208135939131534384873256404628064219507801363007998551501453118106029790675816893892830904256402661374860359277152349525224218583369595511717112462421890598879374888614323215390223297051963471571368819917339595438956586637832939892619357908192405404405980925092045804364848312388272933028893934315618126607662501166440501923111313212528619799525367926307275991716561320566935753607677673824503586473771950728035568163417563484517243639420447158411914150688057734093817933068755780682753453543499983335179159551272145124087655015177808276462602544449890011231813899160046890998370700758214542419226366132825734299299680212985881226112858747014006042352151035070626339932232367412273299975354955110040140887483276876084099385218103941431043608652941797822163593016725327486864376455793818937620933292665498719357865560499114507609739592695296728143643040934790708478444503074080014230555490636774320576782696518607805985388001652487304478344529668530879206720169088448345544487607976492447370506163934191232951217234397643289444552422150519919550781859144918894463591208842250175058406637755041239146926883159764670128987619648913941439114723508700779140135885735928838265850927644189574910907310779505268545004582469934596208184747141916776761375899729254233192232207698128904269608056154330394172454994681903506211865756348962086108683468389182571665915614248031765170976292077363854541812796687067271363107853853848770149535046036381020595315157727338030606019877295211696047209930781840768274950265972052453755314346786550189815597493048003073400001088125350893793515798497955116609924717851866731794169016122475252535989724683176148971333158248809188246960837739380532356120413409610648146717683692008763787800157829939813608564693846586493372806895705114618307482117903248459559820998408860437898550890363547246427053927555076698321678493857342053430018168374771341994531789800029791251178437411569664373724002391280985457355074001824818249255314846282052769895909618277780721498305906217953050213031876958268269711636828008149296719954277826648499365779662390540197264426440682813935580739113453968995944993756488768064064613703469866075398135455897577618820043655621583012781593729280852909697100401090279857842386810078589898181703016902409886338591006430464929503619836454845870270050986613673769017272177046003370393075254203380885192671479841528604862762455134792738748828421893380275629475397300057652465709674231386278909916782451416856711038889329100986749532752153901109685707601076566642925882818759565150150109849890885228771638930443752388260326554108931176194294862306314008626273774892700428979727656905530345736839593460931974887840129919389482938922337230544680104031383670904683926598829267860328550340827009899667529219252294799490304526891630149956633074033312606798190918642570948051938100295445424892160583430469903631537931474661474203007896800102862152320783925446690323272949375464278901319661537620372988958630112063984347944431765509261449919127157663329592498119846619131571734254272429497454180837123165862230036182441811052334765491509859133073116803406885553499042839815966425816382698642043921614928091078303558653427181636991830391997588236993726217494966628943343348819820024701169468694352825625623399239592074265464327049869110503916257297836349876236885095247305401524305951711317245120449408636342724117901605983058076640301939348064796987037655410347047247618679130517279511562884915760321550352982533278873874749040388965637293107391757304493561069345222944204502969857275146556669893596667522437548058057442977430099097872382504748116412247920290007522601180275066834464115880543805038116851496707891218374207168117209278307371065348873352696591092455879457262636804698936200720600031533641417414792684098908773610427798612909786728605674363759866422745213731160085198681940709259970133556498953221599636389807121099297491376517757960982845964077745229080178847065552748331387199268626224085356299247733909530659596125771238917636813116026805917021338018682781865136437825107893807651377719343241119746936545783139817554285908694464631282408246636208317313036097444968309925738005019455981000005712322317938466225708530897500278563685483174977783875921877213939049927713409323059120339553228200469111844040445080679176560925592499594325137918848646941392924252622459461020749503151913865713433061642977963517993268946804597065963006266525853680380831023620601047157863341088291989285426587088948981375368517671302953383271339242379213614496302300841347680600724488383274712919785922102823651940924175764169817442746496125155346560522335960865081074475095653711858800741054703103275585097715625550283375317546445253047443969635925938281670969710715710983272082369569099239708542298796470203289765999610431535483509869110247477065311472648184330105670065022515977494575258777405959584294173867760430225329863181737055458253494277094443260283940257216076783961698606858334570842287750405130324636353739998533541881222582527917226980612817661522659308091967630111710664729380562230813337624313842331419209507297735325227549235816788811235661215654826153576796124661115921627257374039218696383270537682668625963961641545147286362952925048365758758119405554179164995818518991209489298501788921442556147540521257330507966244648179768657049053729266079827695320906672371632903807994041258690378578439678026000544495577085636779936231685045960953577099119556819596466895606580166882467796929382662781006065201674519283279507529550443898087878384609777078676415121850123715770255898860037337645716426779025280460996640372643771554723471163414637912054890320588481964517160344105862753501856870120915061151190694716163315552581006853061180366919332650350321836304522439846171379255573654536889202888813739034599861083652477503978909632372047457624227825320509111084408613915823574654528121944158502840634074567641159372032336181315327943304261508419496794452757647322999257113594774531334993372566837491282513631741349150245593989212572691754210381168729955407929076990903082139751639389511234413562471527781301275346532823579658212266990084480445702848209154225712090471457102153405709521656961168230533347787448791550673771567086057277891346212799424886270384384158642922049541235092359030753373873863666077605759776177558937361470831532407550299997800872439837110232243971173333344193395808375950408908218008305984557238879874782389915742745422426375586034356407936325262645117529772748877478498526018646477489230587074981754886730312759563190144238463933556526126519216773173531396857369832042572953613398619991025097720334384800251891080159158887403854989559100285941138653490954069972866453692395674571203284346142320162706880120089210768029761079522011799139363949282738360824361344792722785670683867769849968913649771918849689413046827700919864838273457612585156119934142724229386464200541247614095250175566188367772703988999794948148093447600138354170369985676836044890194396322851654651159500654653876179137628885926356780401798354768691144072365350677661772404048134470383442450282618687851841348147082800976316136135632967941460711545212625037196678983841212600501559049056010140455477969491881055756823492954311830528007320203025137244137922110789953032311258200718287121408710011371956847650621346312718628362679047312749764152316147456609646616030942870282526529964115583072867094014037983603587396653527471090341961662700845939530899354390193801900945684181010500822274734371423768780570549608733615619034380854079002063229958717512435403974340629916541822631119289717247884545435803816532386451929986942047414168838106304516661186316946193952175848571639790826508041217696290219413445742632150310882198762491190107734797302040799334814795735480471249825023348881613173592473160953321593989674482377662347141774241430173586980813003596197960249277927628854028942779834390343678818376585330317732548040088768967913031723139825315714427509868661950350035847632944296379351385839108239383583084586484339812830524671458070741696583597920988225929002409086637729015063989262366401058839283001908640956660599358966058907809596907608647895878089880103958095348548508122324708323630088030436422274666040199303744648670469281747565017573997520123904874842243734878568480515275003249272903202256215661695071019897733419977522816850594420171826763985476165853296878672425177630446553990749739305824019451361711516011498105535036766108254378186872407152594469827890303804083765907792483135583596163876270270642713344738410533988597022453644128262749552278347085016029531729048041525349826746957752037521639071336580011591125447581037038063032241781228987476947894006222367407554068374352909202990750981905937708563690929336513438027779954597656104846690398496725218471310289132030522272440847969090907821803621232648369056369985789799445765610679991177537672119454621726075991973382558895476534724755990285415054046926115588192095217768998723622754047572839264001943204950366555248913436975319544141810599298778788317236521612976186629896600109969664056803888187132981940865654795042915556483929349896227209951625964056463387439519647950586479431121298330956731017333941291425614312036890620359347888374362105439594251616234117195773512394702068341533192707796291173640310709433912169797732887362933655905633850043541560039053552415615534889216786881214714035768841378171049804085462406752363491714634209309914667447318205286242275627140917733129123260562903717355460733916881643601467429393476295134177446309407027753522498512582582161921487126197133558187136175178391516594348100995896827218592331542947387888937446919620335349868188442073679483894964150763022529406764389412062178189290041145125027556452194132526959469892483645816161782339629879758873017310646513507708869026911027550020255180826200740098928410514359733507769761172436624851184834679427539590958368450646935180263930263512965298393727567304579209294299626515047394759998991462858592645796479731474309744917928820756850580846218423028662260421647003825188510420402251891352924614135055982804347902013823048240854836944922393515727401421845616249209534203155868538807175542933927183139574450853592814319577840426550662864795092490753751616781227683834023299054582017416629786575327617435440724283520177220933843728242655677798701532499879847757965320264772196036939581459327125611294489071477262339848446709604177886268342392483424304733685421461201408923561058847591961298891472041244156431507852911877696871628783917635383375650506404795299412365770650823049506288079323414367666050646207996791395261969186741530148528695853698552990929755770878096943266636802391926144132457475135940243574726996211741438132459108972163227915967587065973173410338377363691694619579958100565518306667164645047585910920055844714327844830961633245518445749333479122655239690723143548527069091569218922864385367366176684441818185551311447391188733223234571110530979018721651738922838100015938545157992775517631350796872940453463591455417776753711438363182662262774265297772232396975990676624934045118010940080940392664120025565749318608028024522530036404426242960233259136547557741516635234510974366971660721876272500831245698504560578134808128353386118268236996907915491147546342137148476713407536022488033458683221999538823145187702582326784617533547051066741314524457415133650636894985564180003149379754602013048613992829287442363930176889754241835488140732943562042998642701023966103958355993985147119081823607966961044732373943627138929436346852120594860054464081745325916729364282822274171973697323230236346377740646679318677573378536324839876755576744752965451577620082429191648537431677739822191643671488572686489901326655737326440884918509848299793422875101469205232803792818179006249216519637037041055962845099474730496895611304735661674302026958186685215707493307509310854573874909277332680833241707667802921109766889151079956454976574328129067395114652769434813116153182926143990738319880149639986421780929730840041817305400877121804024445588142888557048860061217973942524454744014413139223408105546568265774523528800930498085544287573388491972533995163331647365521161083801708980975348868170696096376068264885863673390779635042820173308193763893052640123780415731108716536180663317970495828319299078119156266940375962522666863579142724023972108090491557723260438156428384228897897108704957253278189554395066045676945479334831309168706523012468303365750733268286328025994936196358366722452686510807875293115354135884741432133270071536319503366335157364282988902792437649258292061767220390108887998715051955555092398502210467707985247897440607097014953120900827745205390357717916014651192375425703604617933022893162144401015294553995092967224081337228886190898042739603450115529724889113176280693932854342130448416937030284570406009082366501814743144744240870858887191310561756990060429438300870531692967192002663786012558559923905250295449884855119002812772544529746440291090131454597838715818326678198550393668900623045081224168533765415558682463511948564478563778179368597084299496244974331223883848702523628435023839170660468262101619591210943863771270376871151370929912390488178619829759501101080839200097854606828198504545465570006410849962524867872269325894980929297200108176654278007520841900888622722348620827867016941841656153287043271933490147241321477004894931032940285626218573732120140509053229619222214970222986141305251197551174265311055962994462059936648522226915962079165116362834554685093071287928018029569613371921025493291747278492346623076370626476353081316244983048640144295995692434185701712930150250006708595598805968929110857997464440922734521018679484557000123070983137060970734547303174453219255355697142882416123932094015852831838634225229877541575351859148734777470837897067277324319866657964261365189663546575999008568792999692861890255850956770788378310561019831241734897799545531168408665376072463671633119000677166880502808881586851953482803024231123628310877439285755159181821513184465173802484004424393269646381480249883926987105932901161082890035858211587132451414888638750467329195844548598919844938613921633876314152028123114212892779931598234245489983137006370909885742478323223980819360182008217391882335295483379087382140131196929984821572649005595562712601473709684585643919291955023325662581152630542179569242751349658404134259997538071591765841635567738108500891289083927800885167855262995371312089792238094731270926742117636586983550058034400221568931618815621091491497571229653418081334224099035137158544572289332245662742571154628760993895499488556280062150367724305547098299157053170034719233377793244049723996078088587901593332311879470574971721521089301948054386947879326485989993133213783624469042546162218757420823803603149702246723550320107199924831443834271754002108901807641526350027598388429155368669719062687455078858901141000101113392667141823422821252835035511812139867776800519156826470853450878839655471332027826355799953215627716731826869834774243454005569617488811857685775064794646624589492034450404442273081942018296405256810100674935026380192903346435068128331080962677310157734204943345643396374322346039593954364277202125379648818050310243390392651562602122592600440934748533343308049513735097861433030457943914920886851656729006489391321605201245947420271395759046492386662443736019751427522431161518305139078743192784976135673842199997687551256849064874432820281650975651994535398789325456687794798353023765341268671815085533335282320969488201368764282983887360472957386563584048357894242107877426369596889858150101188734883982139971026740451942895433383995117850297740284907570039601759399516632904320833090306996696515979582902259662626969298940535118660941747071401120387688559360151495979750778131429472007342019023198585724747416812113985180905432947726622746525119819093393856923927352257445286016228412790185756669476354881227681266027193011471698961353365624890170659042934582298956255730092107528885316724845540803193853215146409573116770509766280986027109315041057488570288524265465230732122843464471120474287251059980291225211715353524936811593840172231875042192890441969970977160339275479077978038923003638256730339643390277237120210641081615269819763660108650593550638272150861356267148210679883934312455854681055634534562212578302635886478662305957109107117446783225698622972422259689054097927792512856538908171408730174023341393739854621887012030894741244384172971228587723716797012574297860990541383729290952074919585668559032314484775867484577845074866285658229663920003219617793089892091992269632887893093737091171291489754690263680821969739623699501380861184526493834581745767729807977805036170540388356938801721689976230983431844053850504985500963675670088305986568947938288607351505896621787950402427654812584970108024061953776867227746732442719011583898201889339828114461761191560859951211219055130893524494829508053457714643243593565622317898426313554364783129531781268806815533766704627421067081976010364946099973477668055222994166254216580037952796317739178401460943572168584322486705371856525022248598844846380098674903743499026912304166874887741527609558508836946187696845152737787620479262398331377573165497095753403937970661630652624591725429446464391446248859595270605522718817338803709819413840504241553687713664188381243513735103425251708006551341048893251280259654230161728684997783847954025109512557062046848119320335054652407403874217908144907980425681290723698383370880756170515762608320420828939630949584784345559449948861373219424416702231425541141698140429211497585974511612290364907114768695460400660844970786347133016020679295526180838969153856169106706286778543777585122249572129140183744826934812081343249073618704295515125611103339423498376664198009724629266686384212536933129706093819590402046393797925760675370908373758101294929049466600005556450568859438113402409464511019113198668542879489665718870521859043194177821098340319624529212496922711069438082935819390603765929916374556213341522786771925044983071489594603726644918511518337324850755126842749113904410778787597153739450833318524629976632489681470979488423559682895714465546574645005460073525594387177236075929132479275018198974882832894645635656543712853438434642870668638500451855077451257221407058441271819111655331854796811895179108742407194692062088079061255401308082763767268377741341774145855607806493302279508774432527306450591505063337257983632550661231224616257188444946410410694729044881451757938984881273438698781558432134378175359397687812869533182581608207489740000306622124639098102105843327880209120935937680087329014135853032804575541539455325380086664901387656155178280549772760749686694891641732453140761120201876064304615278740373836347323017394543716075814921487875280580444550350800142523779048679809390939952264738040539743369878759358670553002344079831620869067211130809319466752252343277805776816332076974179076294364617523219658494751862805402975848173830006202527472806902555510689870560325314287113159224173789186072057568787124189015177668333794569059232635580892307631101572929834208010273415447751463247089529354841335974021888949486717846231747276192042022441206580530728713973867877375918584635129537949677379407808387476482620786065032305547052759518781221594969457833931562519844004850502560995579832062485119581083815260085755380379217580184690068940221550800862642194179381154750233587338107630681865224669017288767874905376638624775992738140456391568108641125662458583104060318151735132620873939107089973978716789102001219407664922126546069352541305907478306049998748763129135841230007565064727231825917093026464555749124590633368658303807885691158927334006006730603259975879907032756887552174123446737318158606194003776061876697286455600330627269773700383306065250845249630486075497071875166434858091723485048533878502387306148102170562264007007623300931530682943112253779354172614146306967913758728754473340641683829847170327364672072281521510795112015679878553969844906615505225955031647849198300573680519431913291858692851873639902762881603343495524622269289050897927978720875306507291038469622851309241171885923869454680311931870199389598652622768631478868073670903409687692913826274407483199271114222310694396424535975416365182266169260988247070657125504046773302712536280994921865609441207002570050990222290722799070301103408165388447697466375140952374293757068761198057305937504483227787616057345125987990838331544255505522538592097920306942735481338164004561763725466677033178577051888995609617368493770592964030993056034039241012526973302139942459520516411766563770275469372521083147518309947505660138922985362567409108450218776025718173717302206155837173487266722500029890590781647570856011514912321759499418037938129997568022149209129917492425181493317730450802863856490803742983294575036511552364159087541975976151380082657732957528699567533925255988564272080173045409666387848703870021617097229060796416550596164961672904194182550100821839965119566614496366153405025602629331912228909258172472778899238824787750357455572769137432746288514677315972862688604193566968342103221183846570177643021300426267640773391527555414948217614981941118382775628260479386851249647030511657925746169323069439199310490968327281479934368498346569671610171513708906907397767174967125572005901912929207788639653902274252038075356518322650284840325694515164448565166451588175201750746138004891289325427220937837244318545637600884360349024883643561072657558923482727381908450178720160725482081494404313176792253618738972765645337140541245684236364743805383878368248299774070867039766836141616376330796252113248392027346951213631451463741524159668003015491960541778355250408791693149118119810035164120466692823442515334389980715480648477823141176980216896418055327945019140355992332725364306186529624223330551594797759701541938057089525653215910251619642253252462398159009089284210560104713427662012538949522398210847612646196694280055059001245366652875350740116237819278541784315166884476326735024374216469353643658526760895787958496965927031534998845453428270278806292135963791638014450824892653069322033496352672434939137851579529225204882101265169936031774592375080603028893542157951285331615198652388762218884934363876175985517169775912308088228342073970724926903008884650843598259658171726051044875756388204996460277618826288291947410213128945353785560283282680320075602363951955439893262004086812504774427947718649068348639387078776323150732038238958940824525547277014601807563428268797969486122312073933471165541619310856279482369712781575286331674882629404469011315758647165950862607993902472888055332572162721133154820228653212802134577543413106299574330676912073689291318730392697905435402939661500376299640232618068762375316676295008314393037123121294307967801170062792641148976736546604836586713271906191834956544828481591076440178730823899235815088040099837139831568205022581250683933856670256770365861419554347168138667569421198716099934910868356261378497536611576150562593957921012119563315898922057028815804351484571887992027115397586008283897747526544089355162713173089195633235791040826380559586834887920904592852764297711132517722578208967642356882867829554953097735428053596514001601462802650450152501922090385473794930777099632083713968909378882190145667638030082877732874827632375698522502727885661137886939939779844968198596058924345388075583231016179027881318397764600263046677725760367537511702514645592637179526908937874569853280902741311267572235930196830639132751632202112701898072504802699531910474768836707907198719753049106601694828087588885662870770155601780028749199444394077349748440962740991768723390192731241931997694572520765305366759098116340682977911127755577930839159184209555550629079357071850468707390956149568138424579952949356338065656585518122429871328132799817182921519331161443800904611742425770970079445349478169745637201114997038818496802452844803582031484721057409309750110444451269294334561773000972141071250186828080699090596922450896017329736235884245970469835764411130760246072416748451713273932030193404549538601487133311109107825790181124262490861050222511100252577577861835436475078857605226559283466861910684971746552574286047614799371608327998837084088113706511420507962404713863754945337525227704584486524839212215167052521798222836421375928325787504636783837592848039695696123846343864470984018086742656657817095820122341867833659783325788838018530283573910068755482217766134168650561690699723558676787101930772470985947653354795225589195889592842111794539158266523443182572455532626861180183181034426841954615762084580423875357206065296472454237034066494585399528292301819529510078666215585962268276945011735614770870838982634054351696040085898671911396322730248568960094365708224807669040717875575138537394466141396014113268886625879069030771100403350549246046069401207161016588663136712448983861461264372155220993381467555334106114870189204185902574581935170491632880575839235548867123591600006475273826149776640167487533065934656765952917978946142837277248302294357185176983924961927001425762856755178039011239252002058291240520592405772842836611806676517197898240744460253375339382986435887634576429748193147660072427198569935394753231195282664246184782013264548984463380350168405197157976826093021068274835736262842564590523089825631029829560905527168747101859318807649579434633295982840640579403083228517694988570399560148709870471043221094937620277773806901910795593215434264670602654220085850630665976447218737772018569504079507551944641611456655757740507990386968682001064327458465741405556015062905248763286881245853057017596034632048260601252563282759005872712796243717413527445287385591110637482657877703471391380196774128070349161638627255625810864558560448072404240597874552279845809193917216528761584920262679841776257763823092814361832606819605215685389318613780827659284481125326047858600167116067190437874147792691639789917313939052507100761998617622404543409764345738076914351926852449742152998110429558046313811147165168605983852862578552518774978049595719844113096901699964605590450970337272421199311958789997072624122172582675695843621528137843960912394873382070324563754474918949269902843297310669409205562069505993097829664340692027580929590644008730696939539850594651749478320730454148568390351159536555279630470773717400805181451889076605305049440821409567266691175874649658049800011525417418697153397044654069552881188190948692990706319871571297334456465799314871267686942061988113363001396368262077984009875536584217329092501633391949332084654818851676311412139582214737739259355382577521907892377966591477554942704120891562380648856057121649110939453681692512933169878432412636843475872418387160435649753716240011006725067193871779365530671703824269232239302191550768249735168767907693550235197793644171995992717586415963707867274461687769451421272405489869377416317154928878540927786750397092368639039215538097505377057611781228701967186505530545736407080212360560298260458273072718049298670135048281635567942334942048848371406375307942121536305410291550437046717570000052859680121077465229737116081818947361569742014327902661214590189140770260743521201254016279667655954720041861544566070905561001354592456100900336320358960677813461378521771718708029301675248809056567687017616837578531722418608283355808900331153334084494305842626543189188631009206733805461041613099619989035709985567554596835014920590576028884190541454957045744956991562121406668312602468168799176455597806253435890851628808994413394877162199757222695667503122254244329424569553997214359341600747616463079494163270946246972222996409340662701628622241821246299857818459548854133901970096774049047912536018607261319705370421127498990714746629005254454204567217905643105610783022795852429828908723940535924902511460185907850769748634396204447620676621509347597771840706703831175880217234753041884223918303196016656873277734551776798181015501736947938386815243362118074855303262687517010391587282508664959288929820557548293886136018366652866113514021644286483952448437197350737981470290049085258472738595726599371815255627494249588475164003353636832273692990359228392951684904918734464371376428139818911227013674325855068897087930212223644046049860520213517291711274386713282092591949702584929616641956127186854834120307279293946303842210125234045003000086372116672735008284216620104199543477452795978315474181390287837807306159280116166297455460440704312530300151871580340390890120723942687174781658232389162790002930451615293907633346388440550023009460753178741007650216569742093142172938529565830206697354862444294307339666132227062193229704542779386059199060437422193475718683041057672792170791115451225752499453153390104355431947484131412654176805567144689808288092471887784217727383279065444015532419223622558337368505451055121077676726118966325776458309165304890582126874957582006721203843858853173096299020950710690634016744606880594642560980076304249407170911100975831665892069901906990508069585660124552128063905286759014495055283759558611073291490554017304725845920158398803494247252745677135650201833733342659209154067427977452043591343240651815432778099654571610915562029074925791984747495428248883389503133590070407236247579077089165049213770147566566197428387445719572740148613515263381484214335630887912365222554796820254926914879017087923867015185829835024521954544220258150609588844363922828497532181390033321084122408807758665813882198939181291349649853452752338883991803632849287820401635124433091669487282377786923151491300503793691622407688080450442256247069872252134693830938412205578132347043912018716473407969592714325744680897989403426467649867578863473802789715948056512640652398638782879697558288626642109746582742726097044472341034102437428279648398410028116218270992590343815784214184836014782718956575915903759458594060077314994048182552128830347200474591188102585588296011128404567959434760892673793933701662922552090173614671811259831683865384751841940956069795266297540071315113614285891753302722009310374086089817719365759284222238116900911957486978560776866987703995751441063823266463466435955514700750110629822029243088759033936689541854755646421345487832138197010016777739636890339724477709486627682718303538586621212177214290382808926414572247471958539113558073431863535209473338166008876623001851657908212657729067000156318000498025915092163899254989499362393370623438402682385762511234809532942510345358301070007036871651475135977343631657705973724975709615177726263053098521039638480661724125619870931731043995707578170749748783170605308420817988768760517691346885309460020879581093151125523879008852427223919822326066629865937438422106812980645111203874951513951083741973117693039719667753360086433164636864453499093725345926756668414689375591379322974798790030497599524302069326799006085311881205973809529627552605769294225261160825210100807778246755663520764503482172754322245448811597201256678729691239046709145780939833691516218101278553704211425242555245221398073212733552231527723852970305658916050576116523362381145301740073874041737894796362231936696042215123032868434868811012829199262984586668144774247714772249622374797358652596698844999863066364536810959443773947400848927296083862632870361113189780169103606736787580363931429418839464123764579714173138457781465703619830170663817984183255651558585560203821398436947921106960326463542601612324773685969453808921108054533863967122792471070161485366323854795261747460313403151001022734754649453084291380254565248108461104412477550574793436761197132317820215379306838973672465031443753858065400671013963232273498533631132407196956570175920016333093331051970161685831950586929161336734803388127714058175828347338411074771608663047727633897806459535815944197162048838677210161128785031866541120431095752396262049765609807107563978671894424222810251189570584511886521946991190361206238605913062450546981356973721909457638848918055769435093747016907902950055429782569467559035337877687369485595230070599241673814142379167463746386785663004356863202290796734932938414687689546960796991676854342742356912848874632327819754370584908476587804311666401394114957565107602576018961099798676300904093591763606263487413196459483770211070345041247455967436951584009990027233519007435607251539232731062520428476546720914128813482837818567496636727464599904664284995979928850591820851814417988739059763353586224523556333027098691457546426339038004874594118933152356886696022949279109559475945812604529842361996301684822283307510781270336402740643045225824860166582972420081005540460559416737452809947060923236075016890316915036318262724523122346790456387735731732143894974297815357401711955579271458129418448267698888708463634318868626820799261893264144176475662374294560020635469258576254920749112966912969073765460792815149394427626022773237060262764463414953444852774075196902913760406361642516779631781293230323315321072930351274348251204046429773569966843644446041250106442990576499062225644073271426206688247505361202236532093336731331201680986145257646728382659380671705555394665475363382867810149341886344811887439807314111060157338001940102350240081817917199327807994948885007802459749299542928244632752846158000658641233994420782377319890305004871545640064028946900283660980316108609566811608231550045214896487067080368294606512594791184504095963587125426279229402571878745446448502421331180162338337459814927818038807880986698560099688362636109000953582670127313623696535572582790245344296218535525227290383543493652152120175300734748271545844832756511835046883799763724008018606961768157571572497694335531774031600158317273770865995490393988076109358507917283754546626850327656822548179196503943016103971171736060197087308022760614952943932272205257122578070818995630551458458711895831062198823497332948653576713590494311510456287040343324237301497823705108114016613841428772127098563453520862863992959185077100226747107881206391302321345947938783281866009310431112175990662668716539908570432034479515188272917783656425551301379810499312547649409929578871634205139998273101518704003774275957231520707014239283296375776728544274680179471514133693169377334121812283000038736395644115253567382489871450439524429036250075499010434960045920791608830679624175536211015840728580909685911891169873302872703531030550248133036249031554118834591359426407295683317142844240491374793029597532087818877292325275937152120907793395765088184442278971562390180084218370564777601306455953750106604305057036314745017559725442821642779379677300731207086009996846402419923700614238738055029239152333169305335878774681233203557105022046383679091415476768651973673862063695210832100926344513340822139399723958738352166837696511587236887089489951858246261520095083795169815000109097782554920724937644287446560652123187894575402818758667219371247287899452766998151009537993516762248095114634690442532469627254819135798977235071983762959471015733869696469860424885305352967609242475029308850700282259682835210124927072249949975236248161586212059910491791933934722594469901404541685993402528228077556443878792419046890218435906804963752658808377182412771734928814178734606341975163489910394130490089145756274526413618642736534490901659264355944356641747574928163350018941437689079388022645133953868478228313279357941836190687183084580790281937055932160810511536949741660922737732269568747502210228981517891741826244485608290037735659624934803304476582632170277027496344543439709937915477026119849829538463700529705681454116582375015490834556791038706305802889704439119863535670382227644684459026028963230541618617355447432834958858559298299656894301508248413055576079457515313571516067155178097659521018790667851878795918047257926764667538938542981254567533612100897674348618077877695615334069621160141887890769089591057108920310617374277468688183871004409477033300273210641580390409683297131938452332845089121002847904334085807081963808430222197146089969260474892213870890746071454442178331976603674486095714488477299454245606265124418373408933796612725528725429543415352707099951629759652717327297316921177306410325171072066675014940400564309974146330621143027585665878596424201322392054205336323221874180418346203289379573319541368548885071176434650180723508396900985017092426064135204915643176601148599180134382585800135792848158356872253959876027866131678473991758152057749112817932275685244801468936694136461633161075603198045708342011490547698030180402541060859244144559888222307285135472001412437646899922445648576453592157568962366564488517475793824994785740027086673010191349677454555748457474944054963407189317436323876391803548665898728845002561625295281437527646598520677536765053158742681971810272388164669397183583902376201150127881488890981845987565638942492346860840490168091596092245944511214700019097002161326586175044341210648243090726510702931076417481471830515375922218067179484735298858166175759098180130794435428592718057533810158994040501340674632701546901361346878353472239219610979525630489046844977285779670573780602887931065317288401560618106523251037046845805308796420495891598581143800775637758100775958269974449137537314666397084208397033526321479887420451579178961299960319777295683451962180994223594601448801003178709772764989301887143855686876666821503891160797403816184732542380328763742206375774201048881211932052202240274348237537439145393940046821829100022769459235635491873589065595476735231172553162296160040084254807950176352344849354400230827725496142287437721779239846621979699189958926518101301120598943032005962311663386393309955918060900954330142206644163352076864496177723077077559245151313940583752353833745723743940301556500648041374836378003498211588487456535532191230901330693958647303302890832007026515900031142659667729223586087076422279321626773000108887781968094732493970845954262200391016302695906195990121170542538562421066323525975992640703480151220542537812986908595053799780901128701337706118415414823751657604547391873296618254520608191807939114596177518509389142337183216700244175084701944207200468979494978737897842181398404065663603337662643365888204977586358267479838330984074724458263280232737180817696476697462376135714289938356930842899757274251316499949303358932378922935355009491054651997929794960792203722067565301548457831644230557208476043372756099955523384188423392792990844949196324458806339439586666909333041550285838995335855002891995109806175978335720380186437643299824766108585727059705312647300599285658444783451652185927366322493794208465895727474684058610353935874507577227833853295805823929111584976379235634537660591604845648756815260615177620139740499692058773208242817469116008038548763074787544801343006504741967116011346873831712014325190746871253480317699414770489809570027055315008062411317850534954468247338489874844175518123391252108924921546354319963592420087971553931632654388738460933592615668244923452884283535857853083542174906175071259739283706939329981286020121520132101231929517405099967402933494666262267760170495914431011185270843944928766702208489699220064400125150450514306878039616234218316159363178893752330699377454896783363221504276875831310150512500500930666913603304024512152605293135907167429798669885235987124268549539770040397840808458947466857623231441482343393379841610452169150043539858111675530186260158179362217936059597533991740612317233889285602864988193514908725214525095830279129105484572937338057383502325045946845501380682406764665351168689604457119157671943274065303567568434936426381072324730758160089974869617820572410117863178816749866994129509311154459961713902624189621211641463827542747438958719317030061588703696069556784644107056364072409937764399370465648349135723591302421260470597140608803337287862499097320798463042854373257279430305138031979710961356541785108028219638176032102147231824944727394200706409163540291973975648958563145218753421660138138288717711924566201254238008788519725449793923638755041999417645973145626656893248222253611881798568161112990441412141231074327263772237458874164835489297386712090285896050303574165582947555198769462553355741129361759338898696465410556888340120134832831848213255021670332089770667699480283567198348357533824459750593294686336238675866489947139685258312318588778024852427334627132688857633826147035823056949136322880999791535615568737729568224150622267318793398874134097611295551253570677971428319634268221199270158180158195956690133287022004348794960190341109465049937961386003142933224279002907442409097124142955803413035712629925482505371724344047940062773776293587104657217920835383137456988183970857736856438420473933594869856369815428375963934567423426704808094698206850681223580120542965943925231835584657519175591664972576996359113498182356645682067044837905978327371307192692616533112552806433238078872307518464329627639816826011238449553571160523975915105712353545603971552023151791692906688321997309224265367317545061683993000739008151907812560010725196818759636212440435216063855416992599039149222275783989445322714894719689594228571878743119084129749667592389490000578201808038133717836253129653337043722162800134901944489772629614939696391032991192842369301659734366774909630421246778188999419615834324546438573580313345228055015588957099197077186226786326427973638099260335061159736180621732526423100918584722214117637117841823326501014962873225440201754287446473610383281902247913853497873810035391042512174720031558261997731222921640912362926776771141397655618934775625324713758647982580803713513555383765676240797444304338436153775253912914068575673641691947367988703531088034852952663168427752177391781155906983389226920702161852528060248248990152811667322797641566529695655370935076021938779890358215340689176688879147983303111773340172683164537343533722507770511444834089111440314921066411008190094793018848627215008310959047574596896733368990355597786657385446530173905807263348292864007023127029035365288823083722270175841222078365357466550245424560708564612044030835934312638520816741989781908645843186603154324742540330304893632115548879742128754875303837342336208752013831288374746420217136154573817805850379905431313194763061901001063327789268278048237273590384212513761570021877150800737453790607595536171617428896235967235768552724810146784398434776303586594344882307371109766615897296301629060729315964934840460893329032431279560666509896498977532273123246558014603438547932999126047908360570681165354216205661799968394098184596595356916584114943330287494664453727506608603643688044988000942006047576973413169408477415595375193672407691397480607082554811146714550522925613733274278729512220003096593899303418067447251980171737562412101194824538717627144685159237314777170378793186085929599429644875920288875923686142720821418952386511921148922693083677836166799960769006234786465493627221961355544111064247689143418136270515769792614056433145984094113276088765439660757273118569238513665075829536790787449821741455320739864051673605943098697624379258019186916639150547068072265131307847172252474370292443828796782094937676089948051678107857509329291875253706846980414668959710436550218691690541555625752800275291239577807005469995852047367920113682105512731657913661009132113118425511712873641203547464318112340443199359543225681470183981385725204020147633225713136656910880116147344460238225527985908935640032791065117237366331518511286399937201317488788034333472647198568930839584804846274362943306237385100092341865342797259423811640465179263644002596759985944048063520507630888902992821656281011592529756189374818805419497593988901586178226946601212393556179939416132208209076615513683625392624566511781343255061726732301656888890006362643281434644239793067646053495883465118891989013903447767506894131511169482614125015941592250137901739758729098182109850466462908804113614956733669825907888389612876782250666040647372802087472797418846465845984147119898326644254351038604697910491768377039171055504264054197702105696873950870772291762539536581982376828544361685858093997718719860010803575946403160903360970918286235237937514872220762049711960502748846935128786326065056383684417537295722875666844505230877823412268912858070931740013452636517880330308820287996057212881391090739891238537690277407849873553036862570309630842292157396191545534540398593468208899328236395838736319556201526139836564936528870359186138704840666881362638514124200566268373895748098036676936940342347454124791367704249265940800598168466083631832395832926705960039209390307126545288136183220762874427414524208559759161592971709322195274955800405062880533061521777691509355971107994232551362408283312269013461620551331329385782305056866133916373292252750799042017889210215619456609166755913212305783281256228376981115619716452654068530938046067222375465971859989210609413820600803984357942501641545007210821754867126589060596028345409025853417431315804197235216725368909997653668119687352771860617298777751610136706464436783885989675771352651874625418895987972589043393223317216207680327323310094929278572255541117748034805417751837482034137789085808324275423665183352352784916661650078628943833504942651760856573837803418007360043877058798131840359082097503828349234164530548993064242242862874384864850605098322194810583092633579322382601075522217684734443653183470230100040855874239583757064119592413175682375747942944065305189097591966353199066961287566300819351404229369366407557414894856360223859483413949117991881763011098225664103034271339735080681701940783319942979101451959040745567160263971645524881281400840575009176747716499601600808174500021877949424836959890316858225048453581846195393318668095272697457441796009670864290112763907238645609794607420388933607908651962081597143706645926124988707245412547398959763144401767541917111636361168469546572292916921806771064496262529412235424008957131368484238452807584436034680304492164934338803324618630017672257063345877552069112105968661920253049062206001237788140723603609038592854238403889950913044705611384823173632203030779261348761459905048695187597381915043462896058785408985904227495122075906927134253857674563664535818257202980171295581674681122686003909527878525846630918744475738685373177484066880042733820143365872396001085260179284706908465469807913833889664640061540274202943194245492748912770650975746711316079215454608768987484865345456666505300327287436659026972445475977829451975290657899332390684281921722388141913224505396183707657919761915908093226490306334618964820216168768107194425556399928849048625630548903832497468555795474351578904633085476461213159108137732737692075164201042831146195302506878365095290788854028263731309447464494757313668310912478485589042905385968124980597801117985783173940435635989447608454110546771189015815095763405919116570510220845742225560266976207243983748689060535941687392585995978837361045352729247230804677849360212754790793776951798046669819948629826304998278986965363444094145809981031529609857635880974375651177997675084702012127971896672685893976497530767288017498285056429120641000171023085402195020499482278945380154772938649625030030091860842495427678818171125253659161142343108856324809523983413114812759199681411054840690513534077829967014894338492457245312746762309288629422503870041293812660241051423208630458463180534442655657387967907797863379260461603210095036832516143180503152071816903790174394925075199697457827925543051069568587569672920331421390093586685492768591829555963374467879110661444410974983115776248663501198723170947880497673611204473331829617645928995409959244861556862970195877057504478962388319661109582528966176842219244790967923836993303700120088411594105915496430926157988268398609078721566152810783509124284432714578089098185906240059997274917229736826084902600715168374102459973737892578022136866043250418344174361547816833838589897724245589515819551771977950436650524296903843708128307063018245246336830106904496693870003761451870598249570758523109742090842491043035461133976152781238939865048772171551761098482998343070422578578170778018846980340139907060542130132479307648397361559508525851747768559801841200173353521465907366266791380515553328759609607608272803354622206301770529743041304332899523924345986303902556046305971486050181869240728533419116393311244064744216295917130627732898109826694941322614218316527113764767926298158645631776199473934750410043898984218965080472718955325202970793611131901005357956154561170903652427694922211751644963295186823794745230386096402774221732894614106523744181380579074887134988339763829901925986751706583918925935020757418364900656940500137023328455837139270591359481212628249355719305902725691510613944300344391998469023216083341320799354873283713067416334087677774043423309417859576589348821463565247670341556247103953369766648029850390882427894650140165485258725272504805978259126957716422308229052608722360795232994324305924209665476022359178375722880873024425802874959317900781400612371756625021441986746867668688605915750302297100924319578194289551026010432957894631397857797040763304081852529432752819892023062251024995062810518073063713218140364906511707099878514261065134409096346942234626927543421575901563634386790349338320504237023794147449558720505318708299081718737568801186677038662637962315684501554389294413538836054623597012665696360210811111566704820592212614458977840919543036506136739013451033774434022642162730922568550296942079737388170459753926637818967853128155688197720377231822507754273621699690185648795938164933685426808351931201101852328770203147570081968828658100049413200968992076937118244960898554874707528186892200223806487836081902634313428934810889121015407654935447618776570787949587912110862308528681707713069900104536170941962808823032121117070122963511849257825559312659832616477028222787898220034956119637806651177344208744618912472684864026935382617863149010540590635413001954678689117957385104314602267601370828165769827491197889104452977373497662571559374101487555573093621796137872632212697273835117874001803144560115900588865088012056579255788920362430836792674915965572561447746813417333545163893942482781122584761019644222867077998595856483688549141945883515762047735469266237629114147979473663477009813119599232702710419446795407665800801854228069492132480755208907763877070724466941076709126533527034764520497255870992384186751988942026758344946083451690345743610664939277316848148067217069386212906793867461657222341198771153356600431462199081992755212755083847446343662890868500121591701350019950765895218562040332128512183957002886697394570496149409108959873035662664230165783002833640546800444643855915473635240874905941173345554934359303093121716513642321191645005508547441722761068818526095216089642614939771141456976696966453622683577690853834961705254103275592564513247614673815743098285242558827231595674420097234685750176041742666064556875773549014683891322787971462275732632922435650674437966817143630654628840922219130895954255384967620115844678433964992034404216125538750196938850921470506212382224533461353819943601645760179987688330962877335194227667629919435349921591244577806820769502832340219492052052045189923073268171524046281832655935013745256311519437760569736468895546012271602831189130085956924476112519095538122578486587269198460545107520161528808176019209130469173268693303822977619098201200355714030103248214857227879547337984477543361871911152097012397428254748629851072837235170999267081115911577434540820424349457318852946299051560419887388293679650598192382189368065832583566550521696828919339140823320576509598364700444246467997379293515933751308076158075531549493285734382626822563380842811681662376055433157188450119835445369048838983287561708916666931375620558117677796561450943035281402953972424778831038858418314147130051565842821327355570655567410686943966090096379989945980158682369576930039663169864434895740138832890096299189704635103232106934840589419362991421991072877883240503047309869170511130802553109420716478601591496612497637847128024532482986263270902195435359189763117349294486839229009322143396698253946394059674984672609078211912274091886120957885307155569876104241749247907847999325896710598828775781884409282585209751781092970430316569086500262957413681714495786342924134896590788670731487080627745912556515825898289470661944543818294427127345608693158385590739273146538769858937965986612592720304570077609007413621972240210616102659585060091891785488323113962437424589535387791307666890595689973695915512078223564014820227482190668505544331098371625648772686391933751937998763373811072050284565495970904171159632497941277422269674465305609053877961597305256478512050053806946592294415132416568879256120985325264167493613968903437951463048155724133117249358773350797946124465588517751534902697145293069864448224001503838444677153906730316682911679003515296188944994134306915576614214238478833839742200143670872358577905545582995686237558010922147970199496658729569258776529742210999171976116476919718013051392203337882697765565949784369147672838336622358976222087445155183334160529304700363951440897331137013248846480173681347484359687889593087945867751683319355347595867344563386720555263453405372394446113481534262539663509510514874626308772833805657280027594945470052611756832704980602990654657874630752764223652347274791882541476881607088188862389674489242526288231648635300482761807205608058233200235707502478496891510644256898305600466919721645356664915198834818485660073743772321480821606792151764865594377477949192517792530304576362086974614347431950978350613338658432025589076327820187767061268298658537597804187380447659738318508308935901395709957601928585597345157995789755092801442704155756603689845721952489651733859212491798593487729449124566988409209900174272908339879554949958039054876816488952360860373484291958935584845320853022144201978049284249512798610619272889373326879566375357900603384904077883717878788462380672600966004416770736695487198352441844633279349386468099134800362573367559385273704008417026680337040962620318106999903955802086080885967374619109711241995065943531217671946023628855022058320685954426242272893434677067606557926988525965864005804710004991467672522320327524519430035347572128308293530423929431507618490866700891020900445037481413258730349275155551547938161407087962901815387046299095976899664784728166508199652215094284174672845456865860517751590724741949690719682649385494047859760801516507643764338588024364305803960894555221541193994706395727727901034317181883430453560968895525249197255250790421072084458773241594412381235878204238139147808947465309276846123110067632539260286896718236742949400893123701288214063421756643816672047007061234978750324503716922732439903332895994417135480424737930195325876823405903094542863550189477201448039457727579555400325648309657513451977157816989480390935665660264545329979029470206496208760590394250019269052862411770786535274629314208456925995686575375945101807864588058173612950050479912142960954572166433444392284536785129033192543130712032786417145243771413918122272343384801556732568083152288196267358257363104860922093707076847952678288009570662762407509325470242893969408321125423645968629401761563763478889864007728756383247033144784549017365552225587906668171134104878489285248467398012672896856617464338272065184861477492859035902212755551342278952639230024306581254356856936883618627476594946472759171331711790926796855477516519213575987294632278958812067116253800314813959042871386625300221287933006175141848727398980085634129761857069226009504372813562918475652353996788062474306286553123708579409861764128135649310870481775313016402225134756514753511848820563409526908862664464665464912447584965833026932278415821477678476374128357206561730691252211752804162214745682252468872829329937853248245673405898537053575793620990206535845484437662522817489889365921480412016866376264682088972102731816530182550609831259613492457658624502790001588806244130444594107116455147304830761387711003502176559168720604900847174333259732616780191318755574534916101085963674719888256834959425592465047023072868361264970203175435507519493062472184066462732923638060546912842835964758260208504389971901578754911048182644268029558224407894283283061274165813573630133761775151111975288290621764043105576338750763556342547850277202376047182121816861241783291206535628678343459822474547983358221893655738704135313916038086720248409757407026096174306990496058043812453623759954543716176287603401528641803910707661180510729570517318212071308568215086016597122988616343532009808761885574376382297814318937729180491741886413980644526756455404451753150697303806316664852024703164614353119703400393317831026378301134101637583307858836862512203074606617253715450163500657168475807893972844887412956347842470369056624124455000325062607727423242761269202902997177207268373059485813947305348040240607795277997374078073028944708343792825002795461729702060769414525033800758815916108948533098434340789715594714753370820443862617264092756709865140856567718771286391467172008333376690775887898517694271724158752752165750919059920224861599943489740465356797216088703341434696553571457046591732026831235218343727508059176627647427175331146489597824602061876569153213078747724511047940662436010945443286294130367721030243449899466845624689339205944242185206114591634908978220735124342021022649028005472647955697003910652747454854109787451669069788679638072672423483178219420491360296116807024180282182378362392537707883524554941134645034817809123739826816683323064914980696274733809329824209607407318592633385571903006341625935349025932987355556152178665776023421991972285538170160252913465310391394130597955672323805206596040669717988889494655415895685663189945980088290900248346123131524439434755589632637602059501473663388126005008447401664029723691910989099009139122862122977014152699849864143821846513044960864999734558745541056714145225095374355864322630583171319969235743712148530778089587734533973523571787324095952823684305679758332712697446662790171124163202390785115568548446283714199330349975734605576675848288110838781490753278825585245887592278684528421283364910841540253657741338325554818032736126777285756166485824157195287383865703605741310771838732010613931711695013335536186824440632845020593145787058004170081441430339393523259552932139359181112625659757279084023015022977705071003704345462402688465252957562263805784599782499728675674808732184479556516815141936945691364652376345973384402327831739162213622664301356050547643157093806582641250663393854907231734076619993040890783794080858508463133256252212198971429160947932371857888081152810840779119403350971296543077614710666077657640756657624322149967187218871555967268041117068335244019358569547545657168086176226771377415137151991599111274920757012385003701892722746338751514011833103552978377187942727324777474167647849538207574054199469430276958361562378819674384810369856978617408859654312384364360154159256134610740157671834049571183548505943074255294796132779284652603361718810252344864982595469470684796666497457398536732638803380554295371155722391878329224769221160911613328341513034967206066059333277252411067251791825264012347938866651696446290991122544965237113033944002981594788642418328227674301193240205099242895886904072606551525015627165770642296668439466406150195062372580845221320792957683436060386613636579218588921869869581794290374842533426290184103537547576464984609921773829027062600803049508180382189637584656773276402816301567253353156219971663503941404919523703204945135145241918154646423147578357056177259120463312461207308580370313152846478090191090997882447264189006161560775155232206782366197723611111588094178853112639689026908103448446131143521152063331411999465863939276210733151761550545016427747604674527397508982601650592395974973956478909609308742921287902833807038008102424982422662757349819943397845735253271038725364077668967029460961117122222027490855743587950236780559726941719816242745343449592515445883844944173485297273245141523910031109991075238039618029575872225056903114436968981564556411337060034796093434829609028519471691802490417968083862243141401548183652701345550781767308314363081991223343837161774970869432911878613759094999024504370241021461178112682529933366362037013505998405996053926745625364658100198386768809229884508171812533294664840849044958337607094098319562869008037902900718141476279637827904496283046648435324846803340494215700263657350868382221010361902850000848528916975017057897649791851190258058581249814966115838736852047050869300745899636120286651980438508488788313569047877721482773137624419064977027164759005084750901714871143747848027739049079110257767529608859441492427966360086060948374574709441569216092738397655639257934693614186245369027841154649446617891204139593865486468308431842572341842839960491752583754983346723217213646143866108477541346148286401372563067548236087776737697240780867033523814945018327192368915757214815926829806467373482207361174184772318985646948144823777863362899771056314054617600479529079841007918046061684396366183542798208542535447719852926995801309648919601947138955402546400487164091269606610392487641348171630799272554917737469380559845300314173946798331835373380557910191537496800057067036374094409106369049057913686290500855651439619247592908341995584023052694918555224781356001339490083198723121933309959704673202303777075026110380110871998692541151409855266102192867921698384799216230033253540443241128122930961337670964028868998650989463576114255067834333968085112722438909443917744992327796955906518062671793128375723644201884233832400034750625529467674290735518764209409736412546921029477524120800178968610260124490161088811902960028130227285142854289875441227577768351504606923431528671027281017365791898255029953428871649221805209549202433951974721219738332846459740347912898191617248969634201259739005250752674331594128793688297874732355895272938168648931566050302469663498421426366748824334705908894045960086492366771308603316801023726485444226334178079949834949372985294899359675715148641736770129085760340744766703327056257908513056286614728877369507211743182261603023125039942139431359316714580166559348286420520282576253095239234586149044536694214532911772074251509983248817450301744160576707082321831455399533746598251828310341104656161573146343002593762347741769832582260121223593462293203708811309941907784160688992047701673428482367413941155574637900807056960016911689107856990120169357815862256780254786664785791546899894690574635143386773385634171180204946183223869243811038768472267530290330261326669766325538121475447752462232212585535654674067945519310434081286041270687315429242992092906579998595488983087876038915831889624406605945091319535161341359686675061445282569292713703061429285097503787268884012959499740203184053984486107182708580875507132423610209536351609957750389619162698416101332562503980721219600151371721587886879491319202529806282885623164380417836716632376099558085423131027296258937753693150223425438273659423162730306894342113704142444132191002729081458085288588360317415329136972983796649883244670752670475645651873800403211994457179202875339907875877658650447342290316842103355206827505160601618856683873123550237071368680113409558740339797117590738063717529131448201318227868329950110077795605952726549490308144638564950920309561421482719215983267711773039362397376745621269249847771178437222716096404129397047750418109263096258252498292500083994523395022653148523270661526090617726873815738121210051966610091343464913315609112525766615459102923151732934543109025321581887339275735613611791874740837122211045122596952988613355805507496717566732243878689655840307901319229484013927788777202652400797522960755429056233161479329916133275459204335554122232887279626859371375482707603496288826201521254223101079730436642990342718320717655369287678234261609162766786691985898265457640422728819286752116344964069028771406771197988561029684590468155517069071454893874188294644981759230253774835813546540788661019990865467591202336384179845432660855274143370641739797363821611904359830554091687409310082473974793369198737310264104581619095855122348778730194403387228816549601047668115096932122190936495683550688198867565237971993608264854498596603858525408844201541437310972119805964071065415951819230929632815328875409694614577797890426955218671189439831849242390450096254437191764810984739708374979657251391976671846504051473340528067132180257220247610121742180961585614484722879318374375768912803076343027716230971884070624638536110306584725445395823658467022221761626827621683626365629481939019531581299496478926354157445717363885759436848683131785144339700224138244584211308679528436354371876437246116771308657755324485549216686218245785798808060981208252429863346188251031753871073730233167118638720673560082629647291653870592101395719765715756340130917262297003714740700857709824338208124409647270088224250687636122736199778752979936822123748780197077366292598115441202874441869315573137404197584576881506618940072168758098705349440049129682689097927941519255513072862378576852977583425771495731431608838876018074578108181951988902611162787463333315996752168568591555098528698665894411324380455982428895300027028357072007367330280691151742165473797156136475954780530172727520063546873994846184226371325755899772776312299397721454627769036091763252880618076537731007351000893137361901902019208684461141849418586316720627356321999007272097020725652460877185008666517517476302373213497744752778956372653018647245017697045986082514863828375420891855753295102564211536949456583645979894848846901830850205368484615656762319335224503454576926617274131361607246091131618981389375963591604712797995953542342950522612735143115117137349762355148313406106678071488536985381312348049830482530402060440648651842628910651881066104338558282497357181755455239991329811918184980254931359267099359014946902308476737774475629119569800790432228012151358842726725769050481803712487093318038996943651290132364740329435753503106300449055800231121775872454294233280628244690698032370695298004245158516868442341414844421401949187064182751973242955663837129064914586135579879103897667948097184017792874311695729513035550010945071938636963979726281760553986871754998859387847250683541163341794701163318106991869029910972148353242352738299771199976727477313153502641185087825067151036109883252239034073444836095327006529304939350291630550599695716596165468874684873470149643121833866479562994690865995426949566180043122609741388731385507720916904781523134544878898627370812880842976081048930740815731286567918721473281855586387400582981320504412040850745252619289599538018422572215052606180969214291751608517398425007841723761461205025540579053873263154244130016140891811408054778186881307648528659659629498543329828947446618007058855347929767774259511940772869744265675687913113366646205410943755698248843356710544491016931951568105732207021208880428458996276145208425105263273870679118551577141048723925011528728461222246653350485376576192885207161559576975305909330785881234547317394470288956097422214064246746085668114816376386212014025367541441979398097249178661331857787711620772632113727834314499157920471808069636338787441908858261890322832599351030042315855846236830968276003261171275591241093730572476107129582103130932484993433861841085206494736771678529344542022166863513210733598380125594392677226836279521095195989770131626351045685275001779339527245173510474879030143309949535785679654490667198808557836498303303252409885319508781013609054633456177646080948294112322030597864737521062532098240453912593383038613770827427972647739720946806083329453833139695078261382840368240101247233741151123578615168017299012266437915970065812957346476320538658366456041492718211227456748794165045326908727295532768692202916609059977832592049355930915312213586017771756497398230796167684737574894481952505392215155306950090710652294137272242414431622868459223896161165320424039258343675718113751740126535115800425039136721597069972667359619088185965736642818287245243653364408620439651551494383309984271704654018100096026482079936624690557551035034998571947126652229643823859372418070920256140207907728180417476567705395071009293530559345698831790681216950492093632742400971425132761651176117354976207543810863745433168267977164439989120450024450134699777585316139513307327388664944339972635975241682660801897752585184915211800327680641701109954298379445844954152122155364536165625968053682958882639661065686832447189197232806662883769692902684936611909341801766089581314134699134294998705028763034231486836765543674502166906269296041603138065864482946062198921238914713495334863498431282227593506851573772857564339780326322158024393234863970405254057801879682772553226509602802499868066076074311558712844740088052653954206142260587283483883810754548488395283849512067813250839034654685806938386648345039427115608877421572889157057369836149933488019309756035061114344838659625184663987605305792722451800158245928072088871953815409321594361573469314021861135421507224684032535072361519901244473900098473411304293414275795019046375761728601357673342431050370632712021418416589015750737691944236892544693888908318311454255760879796988077883549903081287026904528007766149196272364724141728519703442366496125991103640628638272449009741277732601391732404506891610657095319223522590295339357582342028677322479124069785308844467915240015103207894853151797781958371161856498767154962893238366415452649630867038642557300978384518668981466074952180136096237159599623254274368224575786874371724432392512950195477335031670294298148564534490226122762448231771808753326717815283566144794776049492178780122973714086714504549722641367677573952761734973241684441628362706403437847141036493541634426639580366691835525119059060953369445837853686224979290604175315154275029954292212223133950140515574669834160185131162936383562162018897571681176306372153609334464234393902219738032883145261170633688793855044570810375800782694316037919726419425944593131604430990890899566714835669826485039197375969453249410897758876072505729172938171918478658652252520397839933437620647404592733903978180609283621115925994424314863210008140100864609991620435257891501294315366097794071054904602163664975440534257189116701933978071610049280444019552465421943982540830364101307015029715494484184214824699454431305781055128528259981398945191309917445692849404618577679149176806661864651755603653388518799903628154122364887878483625753202621232094531541279347022800175315331882133112249650988065564994800595117412351527420785471974460631667756309009742855912909055573143066463937515116358580098159523292034712111796987068701398832754894303693576239448253930339542142714621355151531869645164888072719115630629160650973142630600838172354784192034543280049465724740595405563838126530961606652911974068475292823448805195857468717646882993949826222045952631553867265645420328542788608284400278225923107665117430273594860709463774555533471574533268943738868966451869574403545149899539747562984032231078403743174349312546673945699409480638507802393567389024590480029692519993335940692488431735900362668983426789591577773290415738375560137162896237339682710528488703985601926879828128905601002287053572755073414177964199139121798757998799325669233954402039756256398133614284567008317338564599108088757081316731921174801431852520847446659711219520928700955666810222665116765004927033503674059697536226862323857706327797645336355392588129066328295204977181235192106946571626748137134414597127226795270461218353534649162223722330863554380567816131444529050347013589156888434449158221922931949544081520836819733103454810727630683749197721913378976689851019264124110086935704645771238436091257499781613066888706718418600828873522561701930229055078792410077580687094847990093709990765085486422202249980575194776207823325978485207924643986512495628560166947322379628157344530714200356862388298014160675206608871756263608467979259361010030295535966426210642477007375852382770003398002969806970367861269854643060310371645139781808510256870856500247341581744288756545476234642254307844174616127416300818795245634220779804892687378723376995717048469003290412285151634689487772879555847265158558363400283491151236168241525596808364257351483502889122257845178976896985456859171141208708419149724030555007254913175101673469138519585063873403921474218912479812859726039722278583658899278100870111923529162998757781225007783485236920139790308775476246089588999514333819954498597366897895641321971564916184559324673932760634374690981803640404854372733546458681914794372736540699794611601775899513647002223875988706146779516793101294193227392874364836616409946580865262435687951906767074148857643764108758521598710764218425280055962143471208185069181840934470229460457358820034756018211505882281570082864440736095190695094840733732455890322583520849876004977991042519071933848261796741818540954137601346831926570110169402583696386520096959055286465599532937384405660209774873356769092451328772814227802047090517323482067222695703527420382504244184026241894690855203218507351319321327204660425468713210753335593991282495383516861516663946788766081103967133098053821282740355819479438617404113456777762259103889160624783165661516365724185856699884755738394336212472760978818094853639147327846778356609134418796756213945722053698817181018610726119998488175947115124459121131116171352145627626025446563305727182357004863228296805418371944326200061397451571126657170766334121617904233656546994434273224403100659179274069671492474440763297275912444774228622577694390185848339797354836069490667860298485861193605140023212761621075335958085381034842431316408364789562998759376431235012339078533596405686583290597662508929690836284177601773543130771923783325557666185088422449453582265569893613249642468286322215840543682718013899725099346698846192687396240147281002124697064032225811586495499790872727984005847789366622934456843599277135599280419728476240206681576695552746686803276969117627164302282217807091534708053260903353399598199889201133832443433284381055124233271430883419940284258858895406024625336370706911003232993572281856403689441218718396897323611443185148178277361992002699436919253465271214978533224561729550966821794245563237528979515248423269014560441520778665506198706977706413325981906037548792612693168419223022515902470785082623539756331916950885625468572273510638259512102515991221759994995390317836618072550577167742971014645277468765315991835563186472158566298777290777779250641150408793152979889200018292448230981315285758526924460807725869967157756744687952150002377385994864233082610605679097729999491891405688542078663971461117409146135344937062830612768786586623974583267233914567209779398880650309805518578096957973395274042204719582287370957194322981894542614451577622094173626536078858083122977765184855445140692463469690791477330666790825727165194149966375428637956337315812491407645277685589459949491950946606768325834893531238673785256262532005391799679461538574204295064493706448961071313941594256646816297377180469833008292309940597603925399718837450146622128530158653758605963058597611458041339198084382741965669280477233995047017959329909356040825206632740879771364754332845470285393852440296411973358091919917136461635749541431928740870330775251500905389917274079782450037326304172314545494395359562089952398074825826440909858870840466573990540800066238999926993055919019983547667291822606380795922886780910766562537720989798146579409715760794965776839454973822786246226255725674735376883902896021284745171928136256088429373076952527704654580189711697694323879278956476320589372630729001702445660999828604456715599281602930245975353241877708326993443871667098552183731212724890371411339094166102819498601294045888654501378967218271905529250550264400702190101879302065084503450381190740756891623917687094034954950779055615102111689978510351443805306311987068488443778602286047929382345378553995966483552498072794662573676149731548419542321858777481874484616981366676813880183510423560517667152534197358073466143906382503399559764014406483587440531098675343255665542394657858239508118966395314504779384828651018776301127871900249794267047420961397102926974913185918181436173116214779058423210903947553573634837388542809762908343950898998639007806404276341125304213343439372046989130442966421444223180394452501843601927257991033736740129126736715824675962306497350169079880427673254430248014023311056774076083042190395893015202502941996350096913105866981196433088930063687607223607544079925301213115816025661730882229911713703912647869585576079968295781712640996941748724302093444306619039872681180454711241924509557917372999852994156636316484942782457713329639730929312911603194114722079359474503808215523615092364618361610992350449993165126719116776943278022383285495347466034231952465380382309910731829817179547926741478781982335546624279436660718842853953349130174412204121568562943870239341559992613306807288454705278799637400739497856691657642526335411194851588029200444045884171039282064035783640119930925150374424296202581776964394067927458248725443156312500234376218019546381848697380573004399866245134703869536541048904795345483236735027295133553723506716237986262593060545427518955022230558674734297347658470938385122792739189372381938235238807335455074018226147289995049064750763088335378888205856839982414356173393564974479975159990609626689658190850117630547631090539887205274053265271169269229496094407455850569710910604860004704935123602585410738866717363945049772411481350419961097037090255815467760433036038324921364299825065124396735882530247140468516445801070567776460333347699929516284722863782660748378505973079316319856313317330147320144817817610493440146343025261080302985312784080322277021088136488831635745759872550810080556666952189309782126732865978784209908481404408642796114490927752424291280200748631234208156593752474217639967360289358471520770644961884378793021597403760542121582681004705233388989115881768904944770129997519274861779099095934916053699917247725126838861916097332078802035626132430360351968481486110808144829005207690069527250064095437504935771567956138933849094025613536613884177974669397547735322920435013286490181527281362914534928416164487302595260771597733024259083856754242781116554125230716894368583907402943243091230708723442484668356161768228458993451964499762884769337065384454541878313717878610170760181485157471481581387064528089521275942532887270786357452634591207817183884457855290742634660602237320565798644140585814077525264645618144404071002792139844223110476415378521630500982901231256687011879723685658185761408733964565458684261004968181804968617391518274781009863378600086748007910844255448377343454548579845835019693619662810742870056918157246293923827530752875735824706746485026901111233999646714159106972979261489346362208499647927558694504348879642287883302251940893922505496296108983289823372074491280011559117987990933769501525857001301441935819464531162466321595340348135046721519311927584676581170984208455541515488552882658785529199470974930081600389036150593435042355846918387780066579816508523561955484795467132013919209614233363755567455748333840129210759401926233919564515661739150476212355616428842976383362286127397631167359708708090067924261966881259182853540728017113838513331583862051609878955340505941336341486805041476938349856468591869004116312077828953837416856420979039958150593765893950701843478158649622998141750608284254741939737976235388727331525541648071890328400969735500484600486421687661379823941807325724042434432560969090442968266335893864476959252779008148702147075995632107751029365610528901985821142935881685274193959725372637301719157709242361432150214127813379645635650858608592993853876674081123949795550174841751498808035612342194381779916800265093863639668252325966774860942564300600005459146393348235462232370739516686159630595558406677724557641622582980900291341561500672799966516858167554665731068623908424702871624377930182781147037868235021317129000508842554620160299707848039963532599732515656152098084989627337576714239542737630908778830922801086950746079865116902341411508746830551251328706897030721794310757060594139203099131484811376449226940250172788591727145110485194283593266924043787139638262620096949414512127654709772250881497283198654557522214000010466478046946138520478046483601318486359867403980526552847798908216644623392290940797684682996988128088699001584679990027729936203489959358349391224410513043201623020642669849194661955443170729277455627342536661466024434570819106465318110487171409042303432427963129837804658545900816861129677720557798222742366058603123971331704219473481805752210970340119671381959393560048591285476040218527599477208491564496281641153152433027181516032688235310761913189995072605372231954990380427164871065015797829804527208291703519126084333545850556897062330670899829126884864018465973078993006726539956519522010647029650051160469894115361475515110441966036660583422399374230227099163137230297670820824789348470329157795963971600566861097677579652424379357493079559407991192627227619720271007777433584412560959388280920390221380319746753582319503271096222400443328006185522702460104783501540790920045608349596609624548236355050735657655777031231604598403067271956658763730509150415075455790076508832695529628355052783321534831204660059777097562447818874206364649958673239416135809520969907624160356359220702427411830267968085333514224752067296066388490243158712885242249149298091755821894743586276058423581471538188255096932292388465803804663906736475870843268134971982768555531492536557473216163907420780235466836321369829804430193650131570471156861599409682958774518003557084409960954418606109448132899144787953937104882081978967349054939444687878953413712602560636913529858617958461130453881144517849697834746864640938522133001524422435105873128766430798174365340377993339202963202148037603844753693674567433698376242700442275091186388271316090448711246787697371987673290345509768850955628103349693093728098274929884155052958345490126119863727145526660140354446015446366042613789458669703678582546961732809443905297877203913921612996462786453502113534163968953708515738427059379841088806085254100449845664633642092103331989716960619453417607580671508492521488881983945557809609969603773828930360718264170216677486998670137954924531054922474915717253228406235879755177330810634108659915567601968841002873189573701683184877099415773217061402502239666000390145009784912657624851708739151096456344522641503789998775317914779805663950120538713072067796182509507964477923389306301961340645048436646074907842720027939828850581804231360304271997417044569317678858695767871903750221396410909544646789538731661982970152942578661764622138186020832304482836704977965746285184902669706449440633915275492510920053611509094198128873716539806766406617636516292287129798583026836357001725854293110784149121257087755812227494228861307824782489765354706519447310079928183493524983988852163422231891216400160655943925980567773446097904572084720982117646333808363955451211296942929321582274391994553710011513686468357919196308099167878475593307335629415840084758077518588040400124165054257745569088416758488402128356594827195301755775785098758499195117747348433293527515086656049968403286666801357570226995551672083531785599779391092550086474476261816238029326827296746099670551203160219573767877229997490512637635632626957399223349516211622541076388445858326555546362176111129786987136410670533159235691780814997199472247717437617810666668664802218810493085396051438666547984348798277874678618565313303276368598709274702330887543947499436795414065631553075957947289723100273055487436522870054655750875248270961271722006637312994844771489235616304666507948513987929093359031706182114564332104940918904572261447144644948493682622800822555916804624758683354491615626418388337126328932725062060069779432787379313093420372877450414707175273172392331142608880698863320000263868557857278456424338550659234622422510407273680466781948855776241728400828548233097412042396398998792695142631185068013119421387495193661259429037523907047525253399889228966102276913253280561436596636202674261348821186727926686547690232536062916944213545507194009228525505513043773181004544279383197321414058069924295864061053463275004190022399543867111004983053607489937346655952568075331204968476156502646921172010530563435432140275443483613729723363691634652279504998563567074293092370620483921850756766289348128331630503095297892722899696943234900115903844308108574001140569721851589089121742512006198633281859140334934132175490626138564251224191403675487066621894538957861441246107327135299729511373798024625956556414479946577755006902516542936322295881822371497879976800132096741157653203230705936740822767603721357114025336914839061548825693862357271124173073080523263033747733480727899023397394981258214584576161446654012636574058162546047378028748435343816311219742266928862582363162167000518919925409244498748700032502164450299628754243481300970830212273316830264048770654063032851836930986189282055816207920649539695421968600109951284546980742621134909280471077996926029290964069020330252996017328723705669409578592705298504206100254279092561723442426940301467648009970144081681918693808904498715558714538159387688898620344128353872715230817582959862209454939065022308297572708154016096959153470452401177365289671965975725025577918618662078706275329145634103913119904104262752996659328611843983579053486066393643396984734533348767559442216961751129882588192620234054329459563605207496916263689326436256753263325809643710729828109005408289456799610530669031672995310376998797298893193718357717016683656419010344997194788352217834361675834371285714594276521018175001402372641605505062295480648586777236423668989827058735318573956051173875090501727860511347593547566698434503587918789267772631398095166977174032479920833854243372601114572288183684679132588442267753689653582354590615998558887032276955779405605884959817150307598289156520758653806382852531266404861434419297317950289324314609652319970766438978235521808089716886140075672033933756074096031108917841295528392962254709105233626443518132147546989420529022421073319618687100851760775069804275957677413543362356457325338746039985330671195435394388805800826278730759222479507498066136584093513265245966367575673779253427132698525879307553633463185730856869275903660660558253948518799052254211948215285374620410193283721593672166485822102283401982547284399921756586077028722442145101864019463713029748090835354898323258437624406061283441537776240356254217393003382176089430093262524227605153663788096006679616719962059406729029274000253466511600088812069329310188848238409833628768032442177352049843683202122977843711588608576788096522430247827138627611774792567368259879610324584960713832258710373458832999818537444801387521718988241295971006287797950625288324667315482757939042158101640125193431983767100676087706173420508077832776560744493269762522005524454695036214484959841429382712654528355432627973189539616328890272497487952795445147534995997071439007624437572400887086598543931944921677970337770256814904353836809529162498559496704329011084449254000460718726570001102202015834680401733600562288902373953542828801431088651997667521792850836937228976823807591670703432271981335326046097634999813343026209888601395067497758610552485873194258528110661865052099442519104514607148256463539300372647546702422301490277395702849880529539449043109376866752073493905497581507440228520360600609534969359580808611336916200331252529700211281073950590483406334893205536224792808055495946637861119480004080674121874916825088341934291360065396301457715559671319375682591012137641653949257497217010903429352664282087291992156185010805092541232348943287579925764269329303369632662149847597304125360081242525013718963066529991867995738973158096624494330773477419041597362362227013155903413353514309502728155839160375946174643488005346773715658168002976514880444458610306257094539989018468063885392871195237378435288273766837705911051950321654077025049078198157578714846711545165302813022750412880976654472026437701769354066268372930538835085968887084662841419893961803617412047488372618042783849473307738580293103657244190495638646546884002594976392462201036212243938810900484268366664962887732523741987517546317798555637828680296074066127049057353886683621315385801248331434586486298116475830673409465533697878485783824820235541091411897148380839453574462322153137406869464666190630644363110893370534470920940401364743464922196110144166940327337700050156604388389204993039660913520907652065552903197336168413930403046582340730385826546573957344203294763568022815492652116639454014748602738911488250317030149787391633239996353540069487686073976453209551184168309122346574995427151773027171017647674211176720344355346621216845831014833654401834925205402202838783752765560948661015246810452436646548516161672923473899855506416207119565410863676387641871927488042098244804687243235467592611776802259487966671898384753783917823488888774461416414781662987649170382792862000180686549569068332035571306847082618261136757106375793104030923412223917677823345164335159815754930588204413207838805906258109194938918004662143592461428462747420516375146968590307954950581578468512846522696505123873974722463175840526194284352475178378522758955506375928604959496443248513018953636228147031086980088009259234891806857833871455939862216401691394399079918118451273860112074748939205822123385624351739386263025735255405098427639397886850113685112136077653925301801294464579992602650032061825453756444740686597844602246091606269055525129286440370030118591359154600983880965274801687943374695619381155771259020048760774543445044688631669004052838315800311724787010477364438842082058102795871601418758688286817478952276479912851395185526668898714026491804485771491626819283350701337425808692312267672463155979931156273817600217628380682532781191624781034584676109960051821639219549803550887659288976062230214980834098428796505025400665062643355966091012854877169112359346280690697710309214407115502399144988121684252843233957300063684283698017788870368391131260952330426523391201362750784898617680373799731658171232849421373490429307464171017972742414250632804760062547859043210545735405688146791085866445184614709056092053246428039944908474341267204515642414338506030498930162792836937392530155203931180371709058488359503633976064978276660016942943938994373032694028144386012971732158051010349037178947030806483145893092971698138168028660650495125798956004327046189630123473467946127179394477158066623163944565764652053967789194357690380204647210304613441859604816668473515669271129446234434977633767365778823454626740583682471038344009771747669629946112709744495267052424279304746075457888251353343207957819441841684766077667238742611832994893429848030170922740104552896439131596469816111661960656821898044573306325122404430753660130951018672954174621260045676509522698207202204719932904831617518914084003277432909475803832491494089770325280219023453837490712307930819676442482971260345871851671574342480142298084898220687559559675860039998829129501047008196077355917933791397010298952095905828597749212917173069872544266361367714862348832328570024487852825988199926267269092651236127160138626165261660740896789824486296360383164536366832264361236174893773885206712352582261135690330215606061644177175837306341746373460850590723802592129910449046271637104933731976554404277290578621678426919471297596472148600785353690285812894140811268947610072232818400740028283623572040205909626840179560115627942402798813988341364408331772716743197718996010209800148408492699274748744833718661085249692939967176810650585599319410576410654030802908809660470571973471238078667806740443453629793826225625995015710514360401226337970920125503276240789544575700968976690389046802229899510577465544281602320884551819138899774203282097467419568293620441817990274783699396487943077600594187547579573252769905364684906445374833385429425854552907653849802774746749659037079333837418677611540887620507966658056365818061733488671630846935053727606684365660473937716568330151892360082631750670141697981342362978737904581964230185043889686063107383690709452387913535749935232518738651179740771397557628480784332167255204687145424513388328195803712714461966578934560716607025398332774995133016787099534129019400316711323021810739421832719563498747890376527065154507247958006886988178524645160608095187855548712268769004770353032335656896161807506644278663454830107814739044446929893673116748870553097702600112475841994854660899187231075604101891541325213577949397211416008316957170797228902238260953946288842185077523819516118304482784676793363241370100670039553826832029879148409669403587758888682636320570072035561455504788176818493671406613420071333962379137577355486343415914053909485393497335563616132330379468799888890677223644708850442881820911011397793508626017887334556779785473548898548382072939816753449554287073120972769070572385627185129103203801081811555918828009469455673191505446431861952516243397041999320835255584689613458436055574903514818175265989842103707871369423115880163421902111475617892819355924550430813076021467400049196371187979797398206517828918325997909407358695650328120693587860820718875311443045259922835201913623095885465316261019969319827491180131944158792200529882713926749150929980583713278892854462008964642521266724764156183759021071311720476937313556880392518808250736757699114709439750059506163136540443564390403673928978287978432270555994898675074108548887434321141765317657248112452845557584541314205408342691821205923332700950694578448861848480666068340325810607422948397134928930522385165781628641126530091750913663617161469698479262140417678998268907453110221866380527595642300274692399061908945571322750921444920152777415145911042610967336263266598612738184329321743100029222371885364736011218912647750073457222400677525124949508116100709175761760538051858432523969262105224764994956088808627995972783737637374580981892330950101127999003977647520828885541252685644950554772983178488769675676476376475094989863060692675238044061763414446950127330044770888908495494270572418389040150806633405786957422127091352065039204147481716443225628412761059208435685587317239216052013138398556102779614052223436370444493235597687023371370437271826854148379504225545989799797765524131916892593370812184440472122694070843321786571536359962038859635662309161359953498634793878906337385249793892740743725801222293016643415150828598205221593183917642992088315684931959276241507136400473425876587410562767034798164185173563459789883415909060458687833515677051482549278816361061301036074618192652063831220390469020861361313041164950280084335622495200608871524329096364262756680585315298178166874134881119549398620478202676071136439402438444918528553815079760113291637623855115808724716099082714306386070034007735076785281808994543303693892708349203685274026322577049793789170391589830894441231164815443308746045415310532315554028066308674817112485224609323561932482243085899988032276877764694661399644935502687378830900677512037276153815648979695961084296976378106437524611144891134377874918189942219245714941753021112243953556157838665139487904777655982878498685254185929620397511369139989382401159958963321731516217307753730399361893501683946758416528748193577592922180349555483063533409036420741062866233765027732275346156354641025865644562163949166401323185208912456369160322858567586458410413991749170967416456119223537829110172179076496389012347917966894746971889451265967027501982327894117980484717786993595557413687562136973224494515832419296317545538910793792355044344819079156782980807086587716146243085622751821079119717400573153397498473831137861716348844224494122581508480393844223909888247190341052257147739311214827315808710572518488719711634868917974036496164018293155183963931516990512762394415383153240273988361396946413432760222337215924139101148027135636608062425437438261501844143048084851666934630487021384753610815165868042847505222259112627384126868961989957364272901481285803649145216174804124466270277651934948346982850140442231199246658916525807822501171941198733855767447183758496188568768061771624392259140033944882173241546486187527865441939850237575672443915184346952323916468171714799968219827351142746649633245621631982819654302631915641513092560836544304022194740428165934676461234943408216529119879146797344731363254759409479083301524959725717217707053834411165548325310536610191593940340315045988402533592820158306710837196135897771912658661732113116881804499417639442391525121583667312990661471594640623367399385756785274262726101609593938244234685521857111670047768279452686644309642784071696765198327087960061375314070527485315238919349034464223217105667439137964000122267065545018450930401170122805269033686378564888477744620680394057245584796149473394657438997618879688035533192290771521915293073166736160389078989305092279129866464687751212399135931087357629257001519622547953853941974371122590343803257050157478488962493803375950040203229185668559691000764969520792697527469452456365957399705266958354078422351697781999423206753536766653274458983491784917645289937612042310125388639209871042065843504269826828652772368392433661984540688702224562614114951973658645963695921290776936890455053563438968258398923919823766530844964708120158431978703898432453076208126544354644494117792698230837994909603095994359378114619166919846981935727614992230855783783328870139461141545246165012280517078217964562990970399289517761072796512924658159165034106015826695692601783298370745057609562275895974978758817794184951450755120594439909273144437979847759323656093348445237069821373702233656219823491670051018072955447523834905864105934855538724911440251162460900411046130654701030174105984754026915009686098541101226652648128366475695300104294063197885793357540932728541231586280549602559559603661920598479585757004872307508717865252108076024394783923824130936424594373772707184694462303985270791147500190358183184191352924675767182579035503929947777541848934758219707559357932017779011825617005057696696073012063052311414031561057074752667580934536852124516485865554716713372258510047298915580462369012071933869370069904582212216077837307596358145072556150082412677897604629945505782835659533778176744814117810506187386879384326843448231106910767953302314486637879469263603926482830161722957695156363949388624355580465254029664522015205575502837908514669329049669887668235177515480202970856373558300928816982376804470837651709856912669796035809285240721605853877826818753505313520408276947724396815539768556336156903290020278946001586668086260861558755341573623470140468107689035938305123122683330297227303974015541969483355612025711604060948847867465310798741945240738486634624280269196139247778944449024224703265127193845529851301852091647292432183816945772501230509190123970343161877572952870636700443353055888054861047457396086683086384663102345311089800600980922358834954051858954195363654639373191519489371569316741110263254429651189307492476799210260542013338164904759063734577563415836913750915612226178047660441498857834185732516125334137019164333459665489977167933368222413775868599492058088845376731232162942841993396116967784982893929330110481656535167889580834839209584952776554982752900476534404301243034876878669899247433488257338111622763999362243852866368323117817969017694641438086809985640271653263171836165485261355057999948366927775065627717735572463568287635056659623946027514310384928832526899600572187280766640092579375373373011981481083453287397326182908100434613674903658066129473541053010306937195701235085594721692656602064735469318720818438720772747460820000708060346054885497628268170649025191582041245873029497613365983474334814278775287876327924322029011279661366642072871383466216270397096195140159035254774120416220191605950244335179113828433112396372498354371179815434851449801221940991667548666802209190789852675705087891019065721592239972187999530452154156124373237734987106143688806855705073768274742437139788511959025063929026597960542528837919194505645711106119530444362504932771696532568134102416584278505227609271313988062581970301513679160003176468248372134412226928682593462784000535105491500731911735734994739600177700666666716219964378932357184089185692473516773928329010666467982494724197290740915436443870310296328578622863053064248491121929042375327393211903892008449360641922990028635676799935847367955654471542639716419817367567282912953796028571422448770478414135700142479700999523568570916336678193570562563402859014737421566372241677407317340842243713822070040632930344589277500279434884468720822612943598471794042719625310800428096423437717141599697818468153187913231096337367941816513303285409613592679583969411319908045617696366730350831723769421463800355909166943852980631070376184948637993520451924879272247348336665691966297969360285095091845499729586725615694582500056281143359257856019591111871713818052485917364897981650502923112964884123353474016619483364806893079130642526995243430251343416320439060042146526715736269582218017072218275708055676056063770338683535693873034795275787689154479956981422748010696084117190581618027005376093494929507593729283332953160832956811928695538668671473353035499863260023600530067577096866598684291388765367853586835689518119578332732999710881616693718746684715416562668089606921935810599633533825655489195030107147074910255742640676007144116872132980209742574266236914913494761826275060960894963397303423853641386637694184421369368776570231333779559548966671415044957795250275478948764253517993355964265946405176353712923044507535626946284557702508547495886950605629643652317461830221103272921904339628574415081217524409725708451662028409355979562824603691655677382760368787710772233460414922595060338145354920069679074479159262281222153457220243388334928344684460672582977435710332813479150740134064819912934520951173127924200746412186792225407461561781087401553724906058835220805675477067042063038073225471045784903333328826098200897284220965291392546718945514085830060411430218644766070100299824343063082785320165461944035591908554918542197483759185579638760226769248477466291620909111067227883466646411190821074666457260326669322849747732082401462161845927053767081579715062425674408357328015300904166309949729376562895372877514049511806349034366207656851566026786564830796014001707930134350731028554976234461819723211514833104784276515792794464344180633058698308699202115738925010394944250646275025731808654408200836091700503426135093917327472102234902959902928599077006566816377148172960907877153714969165815784613789582955795466859215794116367161191926809985524824825887392259267448444159166943605202621162308658635158952782489498462598749130893495298250827988851411601451580217657586473788006312563964838889059169114677507909680325156287232847534058316512405886768646017854683371867349916285186766619578304452137022706116576488393892777146127387613336548150414299571065803440774190141742785200076724096675221268384560128712967460999965821621620757298514652712834002056555223615660413903524625521941343698454794995359411592538670656128659814155195938844225326703070614244558091809511535796219158016044945490452110076664942782389782647853764697447101855129957799768551976692894195178685255741738700290398397764760519250049048522994700455178568951877114427080909116471914250703539406448525264379173026320857714557557437613289165150711088534186695472509921941678636389714031257520076623292193623073123232858610880064498087774461146505852336729563130968304317781608253594332169738281165941531639686404816692791514565714532387654892109908355440175733124618766112402321176857096894522410945238803890143026143231078300125389041548094843049545189779586902560988079257659583765009478190142534472027300802123676557116086805233351286453514952627949008779194118348648588086168642803158107190022755423155802647968799855018035707320151057431897626126688787872949568796726905668970768550230744537845555897476816880227793253025613074766500931948525189058493988153550682658722057606849244520007996000057653495943735593889450361443851604761700365940060601500994101716590566571442331369879406148217474991652158466551055307744056395595155208719094693243048828518386958993453707665896171411471929627863322618219922827174146435988180598639518163740502573338209917188960888000109315830222424469920161261927323020476328675275669756061684881493332553537523529170597753736205250571920156315519184388669374439535337626548092750938150223078438914243912493022387644822721943059557645372918031141484173582401575397565769316400330345878052846487688355405913674723261850613897240453319603713057816943235077148774700071377572667653120808346637734633247160504471652542722909252637597226636609521676668330363284005951112702927053387583468543548396534543192349903318440507096449715596900770415965513776963657633003785033091034064493619895445369525489686442856877085500399530736330656169284675507126354450116753265400886745594372373850585601107500080297221711348222494438020554562651267939805002452685055643172136605163297578455579465043073090079216828060591598231886221136259915393373510948355568129020616398565306518849292896051930778437944079376550117043495032909312479194928706508877746244284429079825678315400146339761485563879202081096754526513886332460007133872535051988862109842981558905895959201580496223499159453350033072354333363634449864400773312097314933759404928730099400639729494383222581357403415430414594151762254131500170270687750054847827134626040572105782843351451200626498585111342166360009598132931511751980706094602910467669843791000762477841004414690202265359075727337411783393260683424843463803495696350007545483456294134219724475461315783969958695568107790521692155480156214469475266188526878940149307935462045916496884021216578519559671436421953685872544499689476592016529653263076900571110919316521573814108106627181855490602499631351396152681910998942818197991548060098534337990468878083027740516183064546653552562633200850098655982440312586733373671104539290960099104635778323911934908400261472097192739297596837077951623418754396427873283868181454604917834609787117306093985442022963031332105029148871298266654696023060728192600516278605597596625612734274352120867255062135497671272897403535777079068499209351196296483500318889322230274344079528594161126017228863785572408273091157237772302325726170941190016704414295572937567592554849812806561594016504714961952696918985105522698758811313477506612433994481302158497224814002455346304796844000272254388581132805157973571116621790640281501239846817245049792641279540466286075051395026871052325459138620717971007984296366629990587887533869469524481963577593193879155142138190297952302649302504302741331703634812009733144270943426981845513532103782740202044402768280570571450407258865770977227147545950370760048812150814288970993256957126784572488970041895945015450748377450108528583864412504479846909505653232095301332442649648411948140070466569404326503667337008462813426065151529898913077327373559853422829101803352225853756328259668029354738323383815655104828237969156501242163681467907281964622432886008350241078660829218730769919629415228151924521999042759001871729439813249312506257276540707597105093497849544498251030541558108064788063394031754063940605188965341992808113377977397758073775288270297055326409451752046181140397949316599389096067236004434870113387862891852616192349880388655942193750026487937407182933346859884511846705205066767549765205584205800107091240710443657018186020536313201447008863751179431071374146794682181272373565116597462495748876902606330358911922428857199408203891043544750448947933442229241095487036683056676963243600708357445474930018310135786810052115168516283056214567644772822204435782949139260058717929347075972166005012044828010994888073441955504887253162822521806455722454542478930035566742508572689147262344334278299322864369183021272077631273775173983547397135981444133417540347235238624690942848440509302865505518063760029699416950656680428104217188983527721434052777769722540995891411067447817649793610763199195110494407337876329652347478502005671220626436784601450490804035229142642729541489971054578917674813074521453829524290624989059809361907757468520793532114603058592513339618248453748487204956388384126860377664591849638431974329005431835981805761094272369834194636166708571788439518759750413598653083386585935337788197562489724307877742115366777269875219119402237631000447771602312043517051159093089519243990967287276520675847200474203525621709144096957242057261109637008758179618779733056373410498998844996730637432680526318355158818001008269822538531563275667574438324844731603634215878074184349724714289757325896184445269685486760940302376524188342351565197559149240627075942072480197783955571333534189665690117826102404813391758923135498103815548220458148441526545857456841920344769080051644852948980922189130796764206353719208000457127186225524641881393839451722172296482696783678570640992786418976465749656279398760242155901426337767580719794586228489108301701559690232549890635862947790682115951734228699073816411744291797218781925476140540450822887532754905819129691588535003708128131807807535972717019135259630748846804802507231549103880162625354813887387701083039786798059701831331293424292404893091674027328574817914133172150754877743570210076000687904664237922761935938484770389004191650584544460626646320595940261025821063101880968901507444382882006165428853393186656176886160633609394257763920910559616153270160857625109000279678592484288074329022716677912751493211705017174967288210360077327472226844776026963117606904852732321533203180188124551771856731720048165223255758211987000941763573298386998462142923795953176697313450954508305538891005127643317433210886937989485152900495002722924885143403906051476936664387308797219370683304268949001264651967141790825459972328091318362179654567534630121652244464252228102156001042010255203491583269014523465387038809439795023719643913512352120860764322753606700975110869089600184142484586286979802625228223144141391159764271249030637861466478276734450338432567573565878700804400342801784758722398401766095936547663975957419989723191381187548962275001733050734068401557106099155882322231727263902026761410347617131144519171228277067568821578222497891150568118163451898521246394162794767816544660695503735746213180455260231018294127348676660842495855876561097029088536235214376226830796727158371965047361902918489899449399920444470237962604635203565156478252142036961832136929902657270738689047351715502147022505833609179010244715671224155656964438963680190943234642649025863414067119417610451695961030144950453338007338362318206244123829061557734945198470082226799150244098162548393282863517277926854464477931930053389050972921696521652819232369817694782398448782461410486200113020435045022288365898701208094164943741812098831196881042935650148333808230753297732932786795815125414764238376636621078363845702472780359538262708729229872278591530195109311818281782182936047380352331745890447328589314172935981146571808002165033166400903925712979694292767559441701009704701083411634859159926703708106332614186289378339330383350728740675137523407813838346590408597639863001121447318745294401627455468397853580453805336833359192353069551692259447350871516938946701353310837462785102613490051749334213474756059388895789245251546616712746414173449887457610049029165994121279575955109209694351667535051418931522128490805221074127938691444115367718180081169779787966751433574095036833135630061837635028076117377146482993256537629299932624243150501227501552528739225025101708629868264816180023166890389776641327842317408836995845417813425165901662333655949725774591512223619849767837611969894230662935130399741730901647507325008880785708201406247362805393921907708165306877296812149643163164008788822214234157773450271951978003213204135243492236049580683095667845285044292172142154501215751876506932978605631721266073496459005227338929125598297642456899325707705754209772468559243459068225807502836164152689757969184634504527199871766812039072094739350514184670006884067220713177517902492386215085819913041740888994244018091331690281539704354808130834034250787287814121541636603458444522823779593742821775916999051941276620684760090135112317554795604638916200974583743718714158344767730541285260252797331651919823974004187100828385704612923771971664182714811153856352946752590534869364372395564790174179611989165733866090043997236945747240011984257955983915686140019243334611064546062109345547198671850102354186846837390143849513562133113728339671196168758790261302687964611740209505696363634478801109961411873605189651731329519491529525393504568772325332496225288245163402277596962256303522902623864711952127650261236922423489833663118226404539554695340903878944526271459899548822152489112577140424241944438096582143196416401252886552723707466112929185572366086034254920368535495229932183668843300861043592387378902077735017627431204561827096461083534838464430145489518866105969722797024661359219601649076425653853027245246686284642893090920147843686908920026143938774218200854519644859189098602996638823598865471372785529175621776624865774464884567500052240478391081247788796346506021903577177272691773748818338818639781065870866183711056945599166606174612085068038125826038048750491678754146249264772689247452113711318805386420808287689904312077643759538965441430418425226394741715637205523898910645571556549664922219166389792599716676140220394633185400560124330923021876954411596665814819780845462384468189929029228519010501592561838229455540411610851740578002816391655934726150922561582731610642361585629036627523354978867836427926666225115588659239015171449639435730856896185312911430149048613882805982824070505878602627194215681821554814939399239792902782762306896173262189761845695795222929146220818667543724110303269191738099743264573473998823795915321746432066599368174806795628397419104717619790255344128648241574900832164992446315932402522508241153744809304742479508011722883860208150992067022847099905216272790351427571548372106452409725456992773029868122040184011935796455291396238628991638823847995608796588328211172478123744217526778863615065214014642433795509003102110659444674127712565496559601141833434306189177686517202289732397416499562895744499805699409554492233188170268445094417949231845801154553691381676059479577067954739069623544076996204424367031914774807441638884333830251154194404559641933249250696280943440746807013385030936505890055640024120327601192915778665877675217812822528630811949719935587114719013025421165873045756890699258870600750438393734539533282936592165357216204782286122559530298544369952981663674631062098762620510946040491080309756801464193676745528086152872276324729215087500730757657656032904484065248429164973977853673631888465630091786670899878975937756199661564367505450549411770319743761031891121682182848227924170976673258502940942257604596167633340047126528943294884966618533558889286927547913404883389875500771500355312571320125988832096194142858434921660304329773968621944446992350160822101639708614229712084649752754434733882339113915849873413723868858546494045630420132354451578286478348350890739713551811619768336518830932647325745530517555785895400498851696073284114717715989548143757601397321019111735279982595230533778481568335615726550109385839653540908999489156859183161279035656498904096053982191749119506083423382797368815094097365536369738600869730888670197666247146193988278395940046721531131192586223788996574975793613679530364754051725260477102948521290268947725022102426052047322127962458659145171305429382095863535080562569788396228523348831561884330675864904726302980166448961690544434228260757702120738937807105083290653351741310006719687118957893690454195359585391283012542446820588900981111431535282366296919045169546497962482728291220907906907688762636230252819688287049026482855858099518383570844991586275326004299787907692565910632196051762789737671062353675816300428663771901836239530242070532477736879724875570818312730624472756377256256170847644695450659040201464396641889609876864818355340567449990388755301621502735729980960903446645191043860068637329234921594777182893526220801523060742616178597670722208829511295667809979540418979749049436211602853943824132678605251388880459793748319190720346415837449432715434853846902107025331889915211446589824004872841354299130878291219548505707142727061894412021003382046592779592803398085123607549771204638880737155989093015539034750314784966326226551191204774638273356826062887616704241380885015037864997307697817991193881436066634884339619323681519558000066749568878581758038609252382962659687877176252160379803680630543938059614997217351986350740314708425165305015142510124223629995168926879206275431527768105264496749431335188755197730593492347248260936036211656362884214843641520988052268636788614379091713743643987545359972892932984964407661382966680510796276792952117774142283303467183321423222370377217917277702925241258581240769299373725343488294657742625154703156120914689059028654330657062015484435923878697231930591822983614126316376471443619534236275054363150368606324868258125838088874204279276178362471412765088946434094803564282102541801322302272527215854050784897807533724091822106270322140957282960339553771101276628143892734792479774362120445225744546256001688685259001260430502235192152679431039678413701379463152059909463538797541699577601960254618224732868717215510234208470270667689899574149206315839111365479082486696037619731140575829639960720683939157866086330146931877089840381096136518914677830996486912086853665761283075288244420426995203275423262237113359737339723738899703066528695720329458123762766330575942318507359330698495205830920530431064710013499366286778771228748106235315451680942093589405740468928224175740055894251151776478963484036735799915673505621980338028190357859617530354324112459889120127518571521891522208569305088970383437531206451695339772255268687227380589184893769868482259285711120362696233786032265067411205591402550518298341716666997792461957951408119055911288400201727689175849801846762985702316294824808085807140020627725089198373899545011269893947559646123777469069852787341286061396446421480133311901515507435525521699667294281414306206210620092425763742880142933873325822441476576350812846260010938809317118886826464061448069288988981241630954548894704056514881337936267046383100495984725365275262174366131087705642266520474697762563854343914603907677701770455618388401783329544029720754145893547731570529453812648107841171242675177798930012147395783682810464714533638346480461488820428047282345412219142299183800443899554840067554336927080789383315542613606479499401836670697724265797084815950834489721032955070238897151248576609865917599777488821061530340501619966645853199874909170942950517783782055111420778420737006610610106255855855970499933838562224128751813799999470007193686090306615564038166561482494533616307429082976994527217220259739764392270524454986929316877206464361454865264904723378688693625468869475162798156049502525310548008694484474200906689784221635249362336070866586300220887354573401658791322536346776474249415922320670699195494873216448929493059800812339829328537308423367896456816126332822442059663842553590427398327614153347005222246626178443284974460620062688427179237744932069963388420184692472368984555116349502784945919484471429141050465710887423426981879950360765015357213300676278911150488651266063174705387014281958813301418808271451872951687867346358160259738084129292269724947199286884651417763087636899021622463953039463848402300867725801094483555100135026260052530374588383102340914639716638015199920857385717177635459519065219849609053438570606475511735072030483943757137289160942323887487196591411148146514287143859729233422467653966394048675803938468446519158139600440452437436960130030878958249353261425925943803197857231914775407873004298552240318475809174964663079106195760311693213759800759117061958375602776184417539371309453992848032127181446027731119765332178862962780672681849606091450912759836700534404460816499440521931247178747885191327550300592772012102448171825615798774991332826006963452698918239624543945588875364158383520083093015535902958267266010254977407111921351084722727711383571242313465446392907677561348340389612978257369547139862929332964486040561827182934655963608590268366144822639298488381083825280690363132193164706362450642703686612753173535930532013701803687780686857577019880244283706918558678112439736077193265442218199155271513764199296789159811533647104274185320716194937490797217515733273564631261107986978956515874060760063761019395337978326878350883192270562499959110890609527837800198692514682509886668511118117117449392774988009086533038575164994300957734149086132676860633491484419942962039099785086437348899270972413746670569837029138946457997443909503205972953692247115434335335521598698038448009360349720653245906860866794358112599330815688395063623971666211397811689041278481530929638524260048632428220453537977490509469704581136277577296442198733081495622396799481123698299135575211263433656420809835610645137034623778105325376292194097277979082322418873535687882479769335160114586703199489584354220148316440403777023352591054527118304488184009482656016096291758382288130182631151225073094690519993368325998726962319568802972877713526047350112391858226950186148250912436838961376914501647112272643834805404135839643190927192984891251078122506541789630035262292922511441576118503593319563615135350671404829484561337514809428213947453412954523177134920368071610919686640069275048583239247731277771894065010795056871602886703078356497782011832507038494991636089725911551099141864867134191164478638019577178647618134942698523909424653896028518847211581523458258656498502182736250575411220001721086522341381206461133363206332956779676589132638312330113526084808804462103887723829403939902744222169758129497619785160391349685724535457121848530412118506093786799983148479499504700477883399918052977319198438294486981231514813969914806720811244956389533710676417601656265387528707488080872371278796824473016916444650263489247094460183009463068861416361215619164632427929562040724812040805198921570004957973128635354334997739825706196804932507803635567617496883515633515968046543688021859962220019095963898207336744000130649498417486161800461810380281536814045569898180493989805510536966677139627699013333941990416776907077709452305677710301957342817255157458320039156336047134519215287874055765043147115526697722318325408239172250096637970282878514728668358887317436818392256878348677421685062358008697461868572695968853660656335726507050398252041145378053599406997322241048344330175437779349392275605727762180705937342020458975999142177204518462531651757074267430455668930075005701035507003569787485279723454850528665896474441363717164654309534954448867222155309558970731194568225919146291851120604228959824345767959078780306966319253134934606107490555126263369392886089591662898668923688232355845130135091137693681052902345192759650944662626675556929081388621357730232600555371057919196638688828986578738111804980177373916847236208495557265552618402575589430049664519487893466488816435821958894485195609319992231858691955092695610418175516734270233861258378971793197816462186722016912985656636090207525045811330564045488817590165884506463791771728037578411106142152210723136921988045542355955959584977617316613467818946677299411017912236447838458408430816633527463225790834857174828338888682574042249282217727216092211372823249692580178773706789953508266459236295281783012942878247149942516551882845110102909238461845938163671091216496421625659591283100863641738229689530296186015614413643597108639380488114878208828068050856801121360432250696243748189388207662644929511477281701502813613092158880836894670494694716450173625580493985597822451560707897212893593599420599315728267324573669185604848538112336418701806043203457163054019519793270669192118326926796738616362235938641545187802216674697470793654536953881391421728868951772302192223591352475327340484550785287679281124093177547508615000967087063079805737465433420670604907905765120174159741256670687653893144578547840176920731107801937728731520186246347978081339055980692205972419272688137988899288238592979747420800904585792114621634535453715296050239364182039452154508762817695495422409265392816999505745566597239880021028897568267897186200707792552043058097142129147339761580991441027817201084966487906213045145276683673095360236625831282691842391553423136866817812542339939555465245688846096323864404235082937073387336673794056417399659280230625177363250249857019070800025852433128235755561910852963088756616649111846045009362270885056592229054707894056658134050760369910510019681258093792840472995007634263525669072981194302649874211378259054408460033339874300459198718619163253393312936885818103378728049708255706391472628669633433813054524197832229553718603635697253916759197153864178210005418673041004518931131591477226082282749376916092388671528431131891837072431695579126798674794161203465908164630593762316492795032684285446775335532378531248999487396411622111411738696280760393223894356091410670287101675163421993038310654131621942595102090069140647898436530263769307622670389422206210005644718264288068317181870578364232720969536318716896027880073893894810754969088365864780817960162565940151807016184880759068673375968037401160734899007154976732700200429385268653732739901406664267913625050187604166299812639560199292305982168421690041631404907230915960239820039823763676497529073499954568597973604440956287090329744731162855466784679682364887292960368601451082702080785317243571151258803243262255143381211226600675400156124991814696318699158094850045215468497416759986294650137241153529153580882118052354481513745623280960856185147792932255004946580991397771452266828035289575805712253553411560423146492456513477428176729544919677454501606654456444781269463681287997256372324411140156225317502984510376231995092571707406479980837280944524413472623725244892377336076878510080918953987695282784897379966124454350664757020946768637771484026283251321028400053873188643321549218948262228376402862166199512655600695046351839970986928426955131946556170738913762612497432578761310758384541716945137608570696888229859806731241167486176346653088705833124171863367780007479417518758190636325745486537558134536218795785248666960148975747495476495655578440067510088533907738792220286742285842967290018774231006808204082776396884562190784040662398674644717438675567733526430691513240520181191673453145582601639139988166015287279383065532229019918707911631195466847614827414880278961420469131424438339893134617038280375373011098275566022644520403106993560604957544729482761384783688612002413860986004123599522681945924413223421515359770292312134911035211184784291435000106867426232424668986881046026771437663013910584471480448974254993855394818452482361162655676527222123510682461156004053928493372372212145100209017205179323898497866905628194807717428522673849286424407669360984925078307613990475739750801594301727577537705305915786350188922509799531068868247764637547458777637860250204084945320473938310843272533572120149749197261523860013898315598905478727898248176173045462000954901018341485385750214217661247694334109906643945175451960043454735366133796042295353110491530406378669825955765784975964718350640346112382403847412098956620147456705081523625128937319613939796890490087412099393589637640323311789061901517709325004162545043859198030758586371093542333970576862979401298893365406755933660790552220727699954404558980319320017565342986264353055734851872475100768519802286832405203443650878406365104646724551840006298345877887293995269423470829071653647828994701640118578832499666440690926540406824569183124733127399104908062149715390517235958782088171169026650610113009497580219688970034228765945279310407446171307711542201883481655980864535795893380181930890875223944480961155383997556213389907142202672108856630726679225783303618146423862520046255604501479824865831068225009167958569314568223155646608814060439553503919421360920918033683848835537211431375095590837622067127617381179948669958907419138343525933097979456484155559159078465850880474273433827339913681236798704568040126085535267782181321833240026853579691817198675250214907022652104746800114893792060764595505155032240182560923550396205408906429494472071967765017907313595168827699282486536525805343774201135310486193519538092367529981961970428859909299858309795200789884781516529254313650563427075641510829931368427474980668887526930467875416403662797173480168640188948744220438642559174625893099831707477594286936742986319354491767354762217403736558734039120878792410706495761868221276852975214938624041981916572019146522029397519784288111789651620404082201505291661487727471615824969121720231220631907204175018096740715132374276882747300999040576650466244271021692374445751937979018081569639561857048165430158545753655499063053902034440154027351609356358009228336666460167926879568323714509751988190783275993809310714522585549408717590962128706544390351419500272935551044927806465934792017538414249593873418419057165524623527003136410077662721422508597143346277927068143071192854151252000157645934151533461656773866765634076543838089943892495109535538052828438095121803958378380639452088711583381418838372586470137330302678132049688040033503382808645462471830007743028825117856740286123203983421885173402143331620649216026630656407426968976059537096632192673908450277247403915649522794025817337299796823418867647981196850017824530447166008287335577352770996462297923775408544404428189756717078420460110946696600860019552572636136188339311326535280474804329981550739232357807511860404499934641776471551642758413925712354941618331461236230931998244299931827018639897274262842116412558561995553004209562564729130962942253666322402398830591917356763443139085143446973394176943187754260838457833363934923919450644846132174606605558196948599792099966461987115316185657128886332854579300372169435542433402659233385091841158829771642390906380136679455302991837129461560249690911339935807878176794875275758445847064561729354740172298678583044521499209028587902907942038619111633683247732153320219512237879475322817907376199493467445909260791493096319564295642188669081691555563447066806020893757189380710547428750024670014381703295810904559763269414399825770300797697406798755915759533731935751332843208067635375504941474264569585932220370248648567514473953201830297861313794390376822427196145182114249539003756196474135225176654583838093081017175338032579500580992641970295415401929252555581978852273600453672660036937465610431761079465141178790615674486771073368372748774854806439150146832394269562939899709537187121078619343769309041844401958476927524835186903557681906837645113849779881721963166026498058863265976028080115726580787293482861680435067142056003140330737661306560433419924465458349263120122525533079078086078342885575117094056316866022467798612101652434814011196635548108539815211732625699319607160552718078656857644247128019297908305237774573374264828519491505093749174114894298260825351320303591161096811734914475538503080521780979792587135421541726903736892515883460458776630865345781054663584613815925021249988720631803256175323283361244104400051802824932720240129184319636493953883000686987483790054469046283971259708943883200798392718707132019615337161541271342059543673730279022317235119749726542069789220988346113206781113005608438410303839882232851988363667469193835700486144081765360399755603419859223749756793455607402216664269102845543630529865443694405865713444279692869485890734392338534318160999074357832368919228212441513280002368399520453880839324438308955206371030799456489254811900614403208965958903095936552024675680044059660970453055863039403299853333361924730638605885815870367937467473070023203394879852708708839320995490838616369480584828016946728380910639658185449522408027146469761995377925703463250759306696802124802239015093547164642848638616464817318760559874693946305484219516709277418730345890185932145792771635209746561556033512989067847405966776753804819122105916762283092622870280766405244956891050185266535327184528433738147935015834599020949391641140156632636536761923055571388010037618177842965545241994142329946463020052745418653259760224600693704295664121060199869446861515000739061082566228408859314107603461829074988739227397305006450809388899191454466647113248879384056620708362823036975277679357168322675751840906125567165709924291812159576872523734428674667733147921050894737359643204163038789472118251181413132732053062859160665439563483188971135034858419874321038828402494640293202150575976154036662281441224919064821834210831249107871333677750086180277967896906340655579915482030148405125766879518097763530347506298472009917413028781204696459120143784411625740745925220645716468327257881528774811990923305205389700105630071929495033998692958104198102413635444183551256971041400304599701823829339640567825716686709782551045854492575771716932679830487734300812741387209722998217652191536655875931368230279152847759130715832678478713103801335175273647237991926165374774137880874126873998134715292247377326126559954369609142522067537247879721193426402710264222073007764007219898416943709733554338581677073238384837350022036360007668612058296309356894748807824009727068556467487792951469681623483707686354747414808715082300903773246674599812407627352578060987485958090570588165715655633227110804910139050580901025099103031786233841934631117043749359307022278436584800205603583144761961534859224542327671718556518005547518082495316359113018682934035977617862146298924700009174066721844036459805963564805037722950191901390384832548964050429457161754898247180132202885527851770707075652698153707893013672212797082469432322672681898890218624187823181000953656550014807385942082862296526675505178336608213266809358334110208212397315883513995933749386412275199001347533997023377257435986425035293165313412324489317021749567642007274823424675184010582581970898111825183090833672632342074671291641757208206032206525872907824577619045210903140590347659619437380156094220430463040680278469432777058983222759392519002185338644326937003190129187025516713168989627759406149870486200189037929913524811784327377442686061293179690500757384100993249671900154195063609723531378968053091757255642747409190110365417421089286794094666744235208303884801690997637132528796533849722843802261168464681549701502024850186936632152517110480988218556311763828698520882144755506169969520163440604298040021699445950776772318719153142949325127987003683130385352059644649390893234976985439642474435092741379553935991867459110199356901261451470872158074792042297232015538315182288862445339616518489409708932068288238819468909923916067868328484960904917933477563858337494286847620414796531873036420474653200658213242051341456288304186921652684695899203409983596542100483213163021995525306884027931064240510259783852092008773236959741476464794427776623918571739279625101976712667806640135007281702829521357246543213097777148496776446946049093959882927704512631661819337244982137851483772365849025389086419674820783959161691940127118013029885072347165160364423358140862509349693832856031540512987027327030551531259709291105867963088079630911506139357648147326654005286094013595188979056875649953510858888577365563740943371965578685704277834740123089887192107407918721081170079776585534173237254185906426765889819867543681313787846555265174251242776896749099608137293453794876594897408771318197333057696100522854644182293552225486510291611849753585135862654945139454747650320269241488190954487100012338020911505224106044125200332883669216782547487017779273127294971327144340051844125033902263697733954665245135747929707078818896229509828417968802888343329945433920355298692506135499411446558454830308623308958327926068108209677998670952965366486295118232957855953289053018565714034441373452641928715192747723570167894590466434613771685467627329299802148568266668984546619872871396921548932765742885815034475704475821416588516925859107257373630304623480229921577585058621759333530123844540760374864674374034870567923311190364392981928212390857030541317696016917273124178320463108781005887955750272056353004943321151930942707553015927755220579901498386087078203465198166476963251073227291933603886491243873923822164728492887537904163168246465125198521485149406520971408397465029324097317086091415943930597953469912100548820132128759767423671511405920134945055740675102340664446482269689957736233820158427292249174102153420519121511359128556855194565570218734306016033716885700935250134503974357277811528740865261969253681146891868914952818651412049842052326226212467926720301783100271030146782381395300499327635941366628818611598983410656741151748237729851680470288482707430924394613065966434154810231605197874071524025749660192089558209739216548078780120820979713150191262606677421577299381216752307540474368935550938048211796843141774857250181992992676226303140433469514146367725733480977548914944016911019146275228625979321870933185266245120638663407538595447095110637710026261074350867661272521741303826587632972157608338594409128179368379811863502836175320581878570446562446478502712631433404781510932617991991333001312614229220853387405329882805796954162502377132551500050380939084123895399781873141698153739273377275360896741914960865657414421527175609499326206883484144327858979054883178621306229343962839736807479033657100458501472036598849152073128390644417958050013391659563556532952722827431382182851573604170221911027916126699187528577826728186219502122614606349997467945679185438438702376102910858982328144802799863546158218118441078057141204383483429460552911819284604615195556048194853744106208075243516760857416838618244662630102791275652177697368686458692479954097299560931607837217018371784073557454201671672562163812804859238812225829354750238521851866780377534221924549023924931192303509089565684200831093783291075458471492389306421858808049398289830012531908413149270508489036014946948386619334045406986229135094588067895233556013377354599501108553555875470473098487208315494935037268992605462754951431059511129430276292199630487409706702655947184861205319895126238832482029853164310539887310807294058361527128280939734488157665161596415119448673816872274488076451412652642248669929638170591544401910548664225665102267835574831103888965728601192345885813563726948795474908151575823950954888714080339228116496794106778377947417825384382992017702555602508238952651466092399035845965686703042541727839556306469958657149577523932489248594158719750437222099664150525472729486047467202688220928109236841474791890986676449123199435797422888404601899842565807289622304622495064818208157523208730989517536632991179571768788521447257975078001838743907470355870827408322357039660975956327467418735148571867686930777539619487100217339778772100794514959084537469343727247737370260167716281433041136169416733497156895504678429504924892675223646130977384720050441399517344326047008464679704330356937610406116658418860401759673750370639805630857386642507540280059736108316718180798472236373013921470480822174130856768446541876375003293598875953013739949704941498847269100259578131345205212471170060424435912296548541912791709444685294123451820405354465792678054175329096003239622739731394194332962422735169462841468558240132459851265885472686525675715502370125020988235688260270267950837107892502107473999923576298215848537491421793381341507267071306807434475803216490405288488862683636718942775956891611348554320381653381947874945880693835823514398114322693032737548385696664416009661598608662822518780780978574773504056518025101497215511600504615999754050429397013010520087756279965421906838384032286512774466184780780527936249608169492319354802713760245384020326272080715587809462473557590496309353997780654187021565317781110196901483966516813747418684301189390232504638222035866982227326790418725633722427332006799162959803323854670849390604450674864422647795989443357747834529399766917284324815516318335494734916860276434826029091351107329917714427327773962713771326587011597257971545662444198579255547130440746339952717325608900677204706124189796733179786384256265181097147817547144026333023548315598729573361795738397919810470499388333286475900295529166736408455911559873568246258976326137113139442383650471023360441926221018080859025693315512143741764766551671674958712895151261648227641993586078306282631975654742182038252106696640548239495992821560295099702301288157127638918918306495191031530819499115547091521213950019365748735561505142286197955999735856771368940762425071866253483052275562149851159182580094458870261332254366381546353799539057037826166014111927245957065726690946186776053923872314589588997992137443866484908012544217788243740238537554743952051858430748762513558526548904085386714260386462923403308556231978342932474439165633233138627919876102069890743725560125621751889207110076333861616102271767308494630495995551536298316227821910240634029230173969340444974605069569285711751824078504967737136179951967460591426386037927185387942868936046828459206630737787120112147238108107184338809243774433108231562830866667247716846188972961036299433461594838854921015958593623946776244667199477229973491449843239171998050610792051235571336692776616910101604679356944444280833358521851749578547441982986857028391026898022458512683261468916678710868862976339359546658567766464012439667695180236626494095761253240164078071055486046044275461311156100288915201116354562058457770202059691762999562846378251214387776652141444248680696587043231684783059755286887505262939194786645126260501513982321314688476728681775069804076454555462760940911636469512441956946570160484427474371255524389382258268890880239605053243271761840278367843016073893178307917776509531798779752087205177368841496500404555059063219518595416688886133018710456474772689840420934475011958790899913706577618238168468010602832601523523095806383774246342652963841302438735579484405433481034579122105061122965600046672269782839126221414954778237746116591877936983537160401885103549443948514794580874745047891810853887872384359672419952759086479266221634173556290400925913082047775706446614555241366736406667271667734969748833287710546857710437914048663040673161928575702944443701048153665803391730157446355435832318174148768990005909477658803882498345803592773804075308202898777967994546596796590951627343518425972606801349147533400637480865111354955786531213454734034515135225303761143637778979593734154134686548030033288117689170876388070603383051397465511691656461019273058817376059947756895220555574250298460931155131111415727073771441088927735317689361463465270137451222684442539571233281535488699856854522389665894692065264872431870813956696290895116122148972217003696954176426131332149385819335273339450609763166670505689300745888110622380682554965329198811239032664765109934204595008677029058746212664406007929415840216290149270614196688724410578399931636669372036649383652548078959625438287929104609867298921090462755092616683668370187525349265340132560117845479150591855107765270231298081680917954887933987985082234932781049723059342267410158457379914263637643226013792999055002021106522807689302948949921973708329560701889544770239179477184852652824698885731608914970673265014836273229413030896257906035717013726860737753600870403443137524855249585913680040078322819334384346105444330322540921646449278182300502704654549758529797918852653254838859827995563908156824837667184942666615170649249002101148921960689368575046163889758473300998847377477295039193310038400755143281605056913701835800755901079450257717460914427318223062380094460412716555404499188955232987141398200765802178430822124677701924036956135694650401250017993544848044695985776672317242190802364358775609403974544775545185198762248472743206478526487970164824709372099689252204714807387422956756945541368827488470201523226588180436595580761392553803490464982760067935280507031557651438632577375627390200439178238799005066479363739093447195806032724117786238514304227014200730759816925799707815206630068524522831455141185579796484503337624144621964193921353389319205128587185108019590348844425036479951072072975887784348527418859168739950015626651459277322435993477229416564738287141410627647744773120476228231816861358460533942723778735282162254471410309057236551714683644540066635011446700874310602980854461462458317051520577945368192638147608409021300353839104234155458274334367739523217591816502115738108788347447654546679039728040608696641506596417853855707052700331890891978703070211225902351565643239546120015359410174180235089999109720406685917828013089828180830537348081572125808707933317137569233786395790220711561815622770886868439936408265520609210706886872896935041087604616680018334358316478765048243712471057115925056346349368380919392838274835089703243638211341119404322058756625203792185050655836638697544147453677330976095529905627333018444193690342209889582963973298073170186258307232265155141131296893110812634063268672353463588649533207982332032504278663197630954503848748327504884785686555608439448433713316910309643840288424247541249731386797521960822481722216282178714883936487128618605258295311005786889500040258273241520083811862867345029151071882983459469676320839151618214521356407765825892911801995260663531269950153693054595948931891489639884952072489379691310185235198996148559511372477298638518583189484098630784383084500500148522590607131491030551912531206308615991005838455809250247427209979439512473965015388907384072167236696977017938160542338554533725716518096141065315382238716592806389287615240566915617633371550393964513965602407899309436401519326988109018639008625674423149076717200878095101679942722574366240313406078599530188276617556357693011688638898701878070120792278719514438320205032378052407981959463671631336383023869066761478437520682377134715162822157610164714468601826768407645777494761221578385807602154439031591050843724497386785086125752485351423523962983344202758750593465745255650790903167633497310490752250554275882720828206788702575478566446016326896509919324110095832427297855459299128262120523092409752802289871215409002890467357775160566642156306018341988406863559337295167469712539440046517748657612463443768945709856425907779483269172674590853408536463719542899569178189218627297109008006794312060255647292199519690189301428689577073497983519596573429613252956794666959552405503437901253468825009986586478369556315993058333926329315930702296630740348650672940189420478244146948251683038800228475612332213639952852270355397039376419617311487657801465793347694243791773611410328957590973551508117029672736923468941631041605498072531447199558458316304962491892106830112221409972080932796749853908732281834948896216253905758895710546932039470024747588394665603300083305095745346115371250108643975396919837579265623669452610650917224935851589591825309136080246196059648580002321609693312993849506160650928171141599678056918997775594219033711708791223004362541242458824463398495033748251276678332965620516243379470198099586721095591698388288647904765355378421078451919275152211535325370141327745577884354516164456901655267711472210408082183904016424450810396529521321671333342243642005746362434132148017884959611060808291983947980408322095702625997902031415445013312904204076462529368236831599221369478596897967391516864495652506175066438278468493912279175794532667305847903979434255186135871036600759291096724040564185081647356624891144014299182898300686047599877071379586321245416035143101063460502996969751785927714776911912141779421390204672445728666448159690919847318635773297800850999323813674252797969972368374175683788450710753703605352845957720648297032974930599796518042118440574162880155480849065550865543284190139803361286561373055793183430465449854341144196910459197904885206251024205502396690156658485279099558473502057138299670490031495679515841486165881617009886638179618241700093737002791561379332005017380507657989505038016020194335425859519583155780705522956445881275902369756978577100376559617852383841811400180095885008719341079723562731530365719577788469711695934376756854151323420017108367135348243640435730046278249500108324864875789084091250777697521827744562288403195638994126147644246997680014191112763247776732531763490898630548393886950883974464668821934786046083900801782068050510613733256150645542641649767909935382464313583234304921566458388937872148990504845830533317376127275884654339470887844981559372646693495142253682256886057697911834978910207137531034286312454153442892216893296075037986474389853867098662618267311300413160971697737147874975719450171603068553735673342558251401249405336339108391293164503895241309333807031272792126671839346407705822687790077381724088945875976967663136316823872494014214044974090906816385190637109139039103867686972937430241321201497020046291988633800551801372992269285754546473936463659190525245520088877191275733454592595321145807524196386419937577231271836395405882274024041475221680814888767249036366753905609469251292198849826887393978123326864117076446280618451263702055790896801305871190534657192796978600588403223091032845158879124963637019953472404733669416492511708970898765917516078641619627734676792422649612020707932497348456754117675361980833532376426960692339505769593102146257951147156625565789846925865612768982178792037426450159783350665279788408165239335724893223970800580496146165316051140633105347855073923537679702222902538791995532693533848875615186997949020174794008825877250752880414883509354714015478179899338545565364454651201686888701107888066386860641842491073077636668333216147234604524455590144459342203243430918254867698290804896441470758950908647070251234146934737879998441375685573169953914938592278749144580641376931864550087438994408934209681265840906795361850477057648221763097478079611134815557951375739402381683263959083104256428040150117884486486776121369675079923828912237811096087762126880896650115407686210982015673239383632030205623150170665734402765938233828402297001207497092261436929931625517757647205080977844826218107738845313359252724397843339221961290133088813592548334133290334358654143660408137507400033610788677862559663481925694203836556318210487279398310272688648485229524777538118973891548269492948582637397582052412049764514954635492499156386709052105057588143265183102519588390010458419096083952164407570288365142310094411285232302588117293370253705462661234852980479747720893543097188469978496474460625687407821749382785048600450137027240945916044552245402625764675008417500471925183844559415664971613910024295194965750055806138465321282513853421822134296976298512865856421646194362512010010072656081948532221293523809924877400295258092400712281608480702994582732082417397874210979934932988169467109685872732636016713477104729503633541369064310505975904328106489612994216202194266827317095781532627517150421580951820058491850516990214786630534235171189871640733805585545770952170220889733502260090384589200377750336454478342498027329184291601935616799312693352859877174161247902904909752135559951559818918576167649987755321394540861555562669183338869985755959266929641404030127418837727534681021436976657652169217310376292100417166986863737331595667762064430745998554508390611374414646326426261526838672955669782750489219738869250343739156580807884947019882141285192265395711086825636207462387022361745536113076385880696500807826685738862390915007033871145287910917794715311554550454578966864344702261589868879990480877053525297269698543910337396409004894694854985801141080771588241177430778467761987053520953512385486296996069251726270373245331198170183724397270148208988916359474724414599575378447618914799224684628673664975624177539043219751567445167549768915593269985807942269458922560761409765987791045035996537867345757776206383398355022199001409070377970351275171749991369447713597134036488244456682243592628687790538631520414141718237063979187715063228552651520402627601108794954377806692595714412065748875856008467367246361842574860656079892031024037898647584977910551956325171561642037601465399160954639408610200642536029035777111675912729320577090954517098355235733054686313161141985605503868873786585586876726369992181266782848691430955714710703206295610289177769386120276702359986607243131840399313504581084535789387389236010521419039394975164389555304884995052104905772362175671414325042932643329836884292141886363633834948323276831247503541547907498898109517232544434004084131496025642747320590103589553834212220431705052649517714223101658352841929321088055418917347828352938370347588513905463288010223905930612188407942922641817321171178403537742594096217775440108947503027597738225658402668820451330007839096994571999301435946749218169332422273497849824704776347706242222595179258489316507449587128122713724538223738340785387803804024707536346328330508059859166476142939463227649117597040758510408104883319103342613529351887432565748478812468683007300374600454536237253368778166170302110369814521520522494112579356039075692084420888802689733409405006372586786439042704567459192379426677175194316183678215602346764582910110042920334693128112848477844459607673587558599892348474176209795507331958468538479007584398126690035622027669581149091602579719026881791237829001701355845453383836772563252269896064645028328610395241953987584863585075230640129693630720143246023494775154017104106211922081619462605120612919580396076795657493665560096584165405382601906317945628975487510468554001315520181729344727296023338134901580442661051476273285588528957490769115084320159895023760999558876023115263858365101349752772108851961347908993788793658617901331371088017652904610770787882095365301822041334536780389040513955823237602402887722718340183252472324809417392283899260618777050893845251450309198362190383927061187167923190779099387625016004052627154669735279483841525781120085502219473525997352757136902769969518436121300205009959635384958751640267450544257845305966145701130608033733603482299473543413302970866082863216021495882026843082376859432190847336198076975655205827693080219326817004755463150999416885917184952548766675114764220663242967791091585643264035451516225525858219120200603124269330127391959148273892565221575564615273534088552988914188191425026269133421793485607834259662962239312324197975916536259308783169371848595286406019339527884036093711240254367746998218579817209795137017553955659461819659119001836681959016064914735855491872305861067032464916104554325126696323630952344106790352836214076195368002275168494974669163698567971988611342624478500020834339963414265665298438841925767353168013214679634986543720406130428352901282074896433634886906793921485133505087904399213822364973667378117420155564725754725480167496339238001788411278814856617139754203013305499368793784331862241983376814077996296418457654008348738962690987579169550884234947486886729712959012742366958889429782486827718943921548168109869928693608157792387372159008944276442050336840632754162154988716758026464287416170634787974196303628683135763863806506211940030124698638314529315761520502859752441697793616763798405458381680856807283201807359690298139484444594978612500131266986708627217618229843486706868955073203439843838417651857990800982895036909641828744560552098579005723629503385749970862828338365753645067451156913881657428792355343687932578470825533758526177006817131323553863605168328268409912649003526372067228620396693959801065884794286367839577426429793287114323056186182217141714309052518311768917824864661766904841578659607226510307651346120820148795388393186303301354472410288307564006371402266496052125327565318473649787227237866894756548128343021666324889754106919832265388354502754755962789271432095204978856490457194362876169253801412893878659221232717823454787403462292450315588858443376526867540605959883211788875725312551409030541686063152667733671652416439148112094357945590492941325268143603819339746710074838944039715550909455679388817866459151497397871060563325592154573980099354355136808383069534860353093063115178420939734547187926316510123127011871732115902525867517232882825910235652827049981098222551198976162172148415314747220905731705666480308076364614438194174688610086237478003405361561255221349148223625911095706709283389906506694363341408613345430086593556227243852566441811460129236273069882686354227472877588902908036946977424595415619679783002049896579433457650186397776255223072932111099596628135547565395494189024540078807832812990927981027022892878859546353504710077237443700643441157308232060944040546373811612055293645351907861643292275806677547483734175982696862404364615580374599089492916279510274157214724857597313008946882197247662161320648268647670949404534630136495590002570486098635712041928452917832703590557400229961829778621474458438098435819820548168180541720649333545737434697718690345493839037667810606434179000717694325252876236538380262074261084134083023836690874858718332318411176933232370153179476079587097742339322085877462296188860661000573273565078110505073680302526286550383535583480566959132267306289108809601556389843395132030887715981681417223663917552885585659213042613268367468617548468346268304215383439127642454919047253814979748176241676113941700521647922561796921735521692752008284365523500941304375361701917259542614782060946231244814186945101794394815962812971592970822854496276443105423122359941274416439306516545514857531468831014637957706251207629727320406860402193641103488456889727212479177285263838796799149862144840511824211225810657584937273028849160443643994804250153844758207681131143833171410738097625695809381794871069606829364552493404987169423736419162218174654123082333181375196111686320331919138363715270893841346019163612363711497876150317214500678722985589510109085599191328678188221135531573116377225541509183983690199830540356766480683124077185117507387459971721110377838165938854940703491134727620373160279473106951487229992416120643917814649643304198884975243875391565190698875012534711189518058371536926996121996211111773380025503523949479046085742893146185718821757261660366053361877842737979866907545173935196059246806291383042202071353375787613533192140821859009442970888534406828088483245566287755921106373753878188918728789072280653580359138747496581909684307046401165844552951941947726410559528880408422420269755115256427630655998587456666179591454547285911432314520881502550086735125220887013243514618222652667766585883221000769035666947784674925076228057309414149464426969307490421936851715161695160131022744865351055259127538055510587728312802375312632558483841293015364164081287467811376090159354847190244468320938342844658641497546482796502454477665639113481149816928069219704910791320868585622163068414792074282784372117565626145464199376355734812178202635315016691357595329880108050268090218103052875286679478283206788467824551084617577793565051982288658754704056731835245249930017180053162280256520336817754498728057278078952337083084346460088977358662012183017704821810739949798993198812451716030615315774995366386030968977876940560503607090636901696449136660621749686424063454447569607175718800392874589418165677061925835413724282246299914988863232592666010904412743335756465649197680573224113399180845146284222629338940498487657240105668388142364983138928997840961858140709509313683134575620606533525512438979891764963217238037894499821526227769528540937343545651430884569771097375375787693514160120099764428068183991999724667379312707621818350734027724120082469141300480386828567618543778128952476262053795864132105430895465260977486637628947701249468538323885902922108733594230475281734681028018488292737794948394646503421869934077525315985587722559438364309728066730239418637734721375690055800343265772553829872238013822849055206283504541837175416877755926735210228393964102731682492107882954545577469982042394983730443544401407951365078134839799530488550674776166591442528763614594850318521441738523941074900019893595557806446777531437666356984967465192870884868903680989598458335200151091264448053325697544386265062538141287383015024043111108477481244192564612098790743000236448271296063345998225416706020565121758247815139942914071694341523471592726563436721759093582257867920291823949893220242486005661834602620132126239831515132929015453322106246597703027437677452421620607177991134062527184116056245033594957579238577548366197124397812394199363602211110869098840342572795920684846897407476915906120563768696688874218075022230119162281742135270721092999672975539329640726142252293885212368584572504206678866027099446087458280255675647559109171501542650272194857204636470966028445512098152261755300732289949615402816760063066150647066161642234207679250470033828897907065977033188211089503878422584453130990434655604636884990345066434873061447884043769324816323667194139195708783555901218319867282578223898904733044968335811017382550960209987370907782899312607940448008773274836234931875544316971554317169291667411780924788331372082756080187788053498189630558949460898466185363968836070036232068288174104632943160049832102916975542382878064606074912558841454121575905071588590264578310309570763874249641582103336545516237311968828075723398657233504225450059228370498571583487589625727563286038588266550230045131811713632054824063175970367613252833763674220920756388243934772416817563423811593124084237776232085604543208772292650267334225891824389121411198897098979135694202573027198787476683635280566061800476573828899572776220726344647869457615892488427317542572150832718753815641225922477466139353466696646527412690879470454046864868075032655521432680531290484077709126423997214434177171165360085197784495634056915517133872363845769909424553504283213821230650233073284362598471380150762507840227232250789263619216843752826192636541579708255864756483116822361940146368803580660221452002004782232183669719190792660762397777332779480435445917966569885309824840161316125655003867362256816994641883284619522268192858134379727318623507911634452990624241852518162801740483609734220932892883116884449920811628747504994182907921829734964605097282620741607123664882749447414776449021675183155678048688041173190555018650068929252078580622830914126378969348551984781595528185338341010651459456293568471102245074906914043304086481683431754467873285212259953379160597029091963026089754530090139939047765362500138093895025902227108304657650357296416161443423928263433299552683529895845615146919598523017073392305501223646258825010577233844268646330990594722318790266650170305573963959270967768340856233977232680669935128743382456790317199701872689183593627858159242967032831032650921732589683000092853956852083117775883740894579071123968182889780492384047749162677591332802274828351070187738981137528715391472270259409448134003979494497959515631102841028367121603197124413076792132728844529863740089255574675274947182882757581893438439360674756829943222823775831151965136113032084822279451716517269768663479818444823553619956881396774740131110087150203006740171504258767049620594890191500350343304754063521422198460839503382287329399434429631647368950363003248787090125256397033301551485207204618218295501084513586227036261547883011146600120348126786164481015683019112817186358786133919378416929140608051286193429266899978782279264115139471002716924962094737713985421143379638542769433297603003577996263589420182820989821799770049625348213532134729030626256004388776645272804364044108461765928408532923548202551498167688616175258115760014520441094605602251577027979242461435872626356138545649090830480591162803834462496479102059588479856235380219072939191514176458492525912008676058080410885936387802489645346879809154184840129935985659550583909705788770878407195987678992164582510001637449131103009089660505511241527895482877489990445050021103408055199439721791223096125412042286594455822468478307553058146926112316481256178047598839588825742510741249204615541785291432084804739249369862698527922058639104564912642962535494344824912467786295821549612363821360228445817979476055852273448768715711918593462895931261876547327952293745367601662005399926915480691648557067288530641488336807168868942648036467063389772497683789781520576811765361169278505706058682348612709087614916137063572370534872703092071422603157737115511739475746752912606428516227908250648016672309227585873019338220300606128849283824006518242482347574120091106750391769150435192892277809808232671375286549705289942532728448717234274678712137143909219813209640208830515799290707649291712390037731055596980406575288306272735529897827127958461452077928107651441147034607474879779162141121780577855682970441116486315851785442127721745770979535455217717862770067834983886289018942334388817681548861184215798254010884246792361225340071087252058314532542242750664867348560212158937901811216247168396961596179259947444450075802725227460924728108139968855053880289960980801940031413065947115807016586389372986801116324144312697792070033183223182358475908954072539063639644249726680194944685670880637148610888821835154687421800639491336736063975538954445314219052819551678784967981058043221161701457745419610365612603093184796405644532105060103484420300186103389689179975754174768042327965033093514381383392932800227338961479302758145762971663778239061333587798054136461956333707883703097113092270842337261639625288632536261656751338448197446767466580663025577082291691875311935723369659088075469338799515674997948698202263096392245318219836296402290275422840536071410081489253428387336492378609221545576384696532112084386991706986326384846679333682080672004767692024800883052913868224291673127518041922265765758020969929931695723402931353635327302657487667905555097255195191722343838859556001708527946171647091721844238028380433067277569771946809679056793421300181947056258053013725812498742074035567903400167522171589124957607782362550359892551905285481346347460105865811463316254148297098060711534100587811134555725606262283024747999800967033872267071825079720498060956331615734014328152810581633309046597915167190019069849348363965912363259030498712224039225425205338519733974262690304954090018200799736185688950107289886428856172119732146299969432911629812566146402140130775419781716953234194288288753885410671416571383676587377465793215423023394027042290653788472294888846430203474537023381914681319641228517893833958958785000208770452846685841586902953985065823100976004043296077867797386960493908592476801356568013481200967866926640232199317238525830149771952135060431738774496776463275628904684395417278180825500288341348478992057393603944688102127072456279174128999863573735653349259157942612239582393440235309465207912260994518076434300299289174152904147263180483797276599077349608132650833148363266850615146125024522389100605500389730683138365723069107008894097342567834136235639885696691755619119845707256477923511499760284586923971268862495233279892426354110381634956001588995816393778508562313815938942017393166437834714666348825976122242267694715931574032616169960843520179562284306383871070745995563298495764392811805806429982664775783765671807615587699666504683331436903960625231942825989396462391730441724130671095833121487266852075594704044470741313240460547867240605978385744716334697668920760690803727793502810059196756875689859469211777458174660299321247271569111457376830204076579901658154489392312248359701298738684573649865501134693999377641466182946117659069282849597079604767424007967325351789468551388280358912072477842460716054105583499334008990337941771647088162444220610952314568135277385671768806804814353458861565133157829437247164059650344960761171068839360919648280601943348412206175869180366100441024126719877035746420204736513150621569347279091934361439420156617184505055531747389460585749476185599697553546687863644670451398715942115192437300409973039521366405872694861183984946518445964414716385251587331070664329810649656514491984313909626825611891191323869542432508864390565417598000489243643265852685370172456813035784453914957106503170749737847438010012993960952914290734288517301828640709041455577458859280166601975498337101284874865969038475771547019912664582224163306764515856362871117972302198990417193328027892893240709311990900314922021888441164036867394580044163931248218504553535992606928402921441912209014173099832963210423747793508896861422834294621210228925747426387319344774716521191659178050399125893725854483392862469508448311220977882685134828820651018498335498289986689280852335737023669515315646944164766286837957984925480337409219908288421880460131968271423696389996441272152859503001237464027252516716279169392015136468011364815335675562216474443604436364042578763713751046157527761241239613538155572536024680435510965808819974467093325052705240431914744793784084630723885180582143623818662598465942707516347189085944066226331811385092889969105005836421914182313646485138893718791109068018420353428309158515473042563353276017776701101390510944441349327625570996697657091743078232713906286235345846658500204764921426855373365946000329180180942984838667472452847331627720851932192599330897892391950694000236929783064692088404495582647038170259066479653595466779857423713434311978602183613102315527304499997796992968229433678337353592908151683208265907403107478594303992755108514749782336150510829101849138235927206797786411120256787289328953009166252020132611721941486170873805745872818495574452189414228401288051970091474430702850682412516275534844031637760244955711960540089727289280477935320808942712450240224752992911261189350473632023534944569135500063844333795725141785673833944836026770132799946140009145184930742518998840937013891696421165518033011521310807247980832075764841727352206825720461508925653464011423968933489061569081171954804579632878813487053784424009425133236719956167329412903514304117913493152780024260107774268980425044174339737810457062514264168597875894230317220583862241960734211652928429097333397125070423033273538267763591608970075565460276816631939838862645278621284080120707286268163118055487868517646879779113793067816909896221904843973026186800952472021514635173365990040435991598067483780708463655135605959978059581894436641535976903644057426147089508498000436015635835540001642570283860824571440412989827418923773378271719730948479918539690887942395951446925889904540703052179735431223984239096475552946064318493421726630581966380617065211489421149611301202683756404184175274123036180449301242258153510721137602189255425666772005353606971975647680880795407216363998986416222842977767685420208342374190513869133875945821859593082898798767214053124810097682405850542198656915245803290615694449054662521053538609378816523076131113445476283907523457088464975831723678830144035861769438935093458275432025857252065795017212564318838186648620339526331994421782094714455037556083918122914141578091400994145513137509988351299312803979383978909416531566614589045211082769715283293978367565332403260578916951139911792629174938841298055597624937643738637726987059677910596251976631631561312080513883676207466436164191514544050603763638224815410436515508033285418108926655557755487208676443510086290475383361211645777606291938311695685542763730150162234397723044852665029713751320667546932706233454616413260155371890792150445772414140387995807574197240416970924351354073168870239916053490744532211563517940009424883554887271271907709768790487481314347064974611201699003256278457621112413140787312946561897146460779236217744040629138198275602479044207557900685960054199407780311818636408506681363032839581892213698042684133253772707454823257664658205217531463158338321277907655660236163266619816084480470432597303721512529597154580147874034402524403569061691674122955180468224854442192308987699881433242877918436922193153923578433280896006589669629952314731588438945387307187696183678785801646349807146462931021850084852483439635076738511641588094258826198708786057629582931392309247600252238119063705341309833524054872437760054991812558420689978512178783458829993198013333572173632790001761379186433334122303288621125752084927457580202798003143617664781222457022447644678522212435633862784859032179709023043086482127680278191934208378694536690160650158066932053902846749397858844496197208510296543531802270822207631242383267084288884059126346646070498279174558933786592376671998049639993789313703986581569115314804265899102576264675029727760854434463087122646122996738048837950443141848806627770512763844697062599687582455860699280038044108138568589717018553040462545621478622476126441704090866044302621139855964111302644499972688282696098569399067688095558778741676791194301173660944150145930936817374703011389332217487210351448567942627433004862104577551161770279744624865060796517754353290265328005633425567654417767108484218618244325232771465648518577290943949649161949510473770604886614990943504905435794799949863419779096740362754321322954425843300461515405201036325820988437805791070599904812177768167631866045810709972151461188140155302547700284264141848509622832495882574214770902144588795592028770580641552807023949220591107370651293686881154732288804924038840279148551524053359491481869099451068864959035307907868560927958552839818688213370981647549334027910624552159800678581838580153577502052473586210575414911904872481959292751414903460934662377704936931330740918922287763121810931458295018842417777832302908544817478366507216579878727319597769787712955760110384587345653265037229541441804044721791824531568645583585682073144463957921664436716167012782732379919671168059124338802593230146629838990623563511484671746454419323825882971030854070328831209222274450737830772247619926342676256276071168636345432547378045034837173851747516269425013885783898069823519967920789582180147569356358646196383902707362772444023050635518122367299808598250583256400744910531642212588627593024913624046667414871874946726377079110040503951524649293909361601893268769765036398339910282318280421102103377574842496639135445852255973465566371446781455098724058673402210483712488800275212711819613497915277620352052568543839636990297121118739439051700658992975535146741345265304017939618717793072600127847464152576151327665996843457919960797608474775151791111006625530236626183980901800680789696893854918655691528784749938673537121109819470190029502067501918001349919241811759725149863077293288933219381458558087364977939144321726217506194910249805380833060997159198549412259658069859717762837954748110482887988097642923759989986032583951783137685909153870145841014547960814487677277901052367786606857396884154444587501357532621478755387472051858544294060548138475845972044181079223501115031629511907305203841102380503581790324320180956137465312866197534504590696376153843332042419004414267142408419668869295276965342139597500299230666889329345068009234205995191812439996127474134531236289997438136197336494970661141943931394826543419804707040398433619446353643986833678998458112800805646810605132888260530242146402539280522253255427617594707274325440838628420859830956454361772211249856892804527623874834116696617086333585760856310958048042976207836953553036059879871920216503439431324093262918884379852607284006535989642877153387878349777307761736447990624343939827164330414879346093171583599107137454596772330012254694807273091453503578562100494393723891701813534537864487385194595189728966813333181596400727088972977534874702110387916262284153800177535947776250679095344704030715979451312774520968062027775176988203722126818836958673865873733059219976401000828483864220827321829801612761240711611942388822825578090584666025796969451939416730537152241121186050538536066447142114568020202488578019708285642155761281540704615558956927552438560772386808810553666591694581811195280110955019677200985536845491305230433386526605236345828698768084596127615346389893666780704220546659426276286411196535217319780812016728983497433920344930494033063246399105864726150495109411415057082168820223829676817604490160250151059866924839629266489596435408833017786050423295880567824576976771815732564462621883480186547688720109223020089109819047038666030105997825924310016706392367190876358142949703018604533954343201109857431785674801301524024780771505621336213365994977335147402209935200897889198070769198914022590176057971029593367329251012553243865201231962356753929755770311547631275511116739717280312715749734119803432070851151962906959238072266060848120287326559756982782447638944773626108872036013150635953789303501232392004917819813860986404215767680566593204890069063817344510853820993911886431311129992682524701218200529998991393817110153742308578270498944059342148787471325717774012724229210414093888426818966234048285184868825690042515369525878763307664432570431703141454403381186121759192040342631575919483113068671901901272332474533908733482505450143985948855278056358871328771090834697240022059190581225915153552453792551093942222786423494365438522250240133144933676978489817017586094864802447360932918460930437660655715731318184107753200561799737080344290517607613180025384331736719217771332284729276333525409863108497231524534882249173288656765705829142827790934102443476968081124664108741948033245449447985225181623354665138694560048644901680530865982929304089572493942296652128871449683506159242329924976796850379998455180786763000763804269928155688429791984913467426657579464945732567932718301414484316635837382869284563225724461084260021072901581998040048696318543468580993813858260385162638591326416011224270661543547417317377469134740723618484256405428278904505904973854919967436922945421626542719265245613927006859267619791896940957617313128398450674648071237359330266463342534232821612062209945564871852844610625592349411851199607907501925428880168003867177279486613783957943794360364854671197098334330501627891941397410246101084211219663820911243694191616801206293079341847527156109215593998665481373195698821948300081601708655409572152549128394912377341824206498933948902859976699447421722171679667218453465906463553012733493749117177939649056453791115658194161902878472852014821705032680636711125000419764842509733611677494154743605828054473176703278123432385282260551083038052536275900257229441641794717071319966274580280330135514640145161824216150149508632827945812530958602777072711355390656951223147366396630214458582450192558517274652801660430486272370842312138266030826465400990654249834633223253371827019013325546004707910086080717266832132391123767971832515502110349607069610272518516031292866149935490455581209048163278948375518024919858083736716749197442702713582326068594150996306585940812108824580845383018066847895132785966417544800629739164844739501005892464412074779994814678873082880800487410295634829992404312939259024105452332257672507219314966037173779787773247581459356070344921236985262750505436538608382360178726343925033614203069266205782280772597112826292084383110018026528608046254561659105769844165117728406639595261114883911247043083099324174031488699234606119729406222563393753929904226189356170742430215038968532244317407534544621050003553863120497310177171803196344446648787588922426477911447044825548621033785159093029870271960029161318548441410757947450080965376542149796996008220028260446460310151468531633289214026869802982740960626211253680780673468888272753486318784668697566869097587985513698652149161386579769983141952388807486534917260180210271833264809425915811848788680906007750658863485966650433198542939939332825757481655116346559007905135114480083785337993890514751573534600144510538962165719534130624254458853473854945246570046641575672597741784104627460842220997806477650900180484685068270299237820204501296789688125258727506442716135269291292449963845461881119215872834298583459587947574633068004111008532685532746975166031989972719708494795820277672663458546047619118729110313477177281099095539205927891522045803933243857132946979935740706055392718174023022762982900217925171547355968338749585676134522815191729709400733572226787031859175304370137399402008836576206722150557256486390636353379367345538655306519994306426484601192987745067135590735374941509342849778152540201929430645970019237018438859136759781439051897965744938187465170043621485786985376277242603848900177872671984959204960112196402685437836027032121399983849120608150634421299822065860153112896260430965431219126336416181651289626928677666843338553868507798717731363674374283672818319908258130731960979416779365353497366344382183254364437881097169321861288765355098331760605753552553087464002314426299240413434966618955586948681306469074709957920644723026149235344820476117816305909706576480470805675043027237503538313950501313009216438429064759017624822320889578266969344562743225716068542282565697003867303519537091467517691954907161415415346692877775838493541628404087081098613628293068745056368186674074073296435222796895362516607008179861756609808094476393650564417984369497175968285154570585677881419447970322572008657439565600854993714673688066649454942403229367138831160245005433843700155030765944855133215173959669254148865971296634370310678709175322637057774043511372035132980117421628050212280057145648085311251151251785941027187617872972560751393729830055432467846017791823032481499022535908189870970607529329361541231218155756494205064998466464815221892728739091039673878255426591827712814572285391399949953172696415939760863165292050033674793014379012444050306944559955081047188471227478095210153922526225543370492079390869535873805511145790664181382338639913180516387037757012850911612171703718944546134241877723373335983727383719504364897738407413823998369447478962715039019647634068088759191328397420336587002590962869405495000550400515811915870432453627356072684053379428282538907579731864353751713087402488274464260051243544519880105805021233335853930265842096071445381259620129758130303648210376406838542132852678407950506572449714714536686474870310618390631039657929171657652470737138038504726667701177094595648059868775523173059093457223857946254766425652539855663732324212457928559101959987376550271334902351868903219764042863220366362253735783255945462830584559491754952365432551513939006419021695140923291237035301996561593856852956076707687977207421526059146526525379700707169630593052787159506282680598722263072244013800290208044768530808885087485653487960541803593083549956828251094908505544618377628282058465503657814579994637344939017924579598035948056644894452738771503812089264630747956715999095667265682729984115100594217567145527774919649472171031591895642774612986663769271254961406903463901398103033524830270644664239125279881072149852595662265232188814428137369124074260399371785269576823254140264500848187648538555509406312473307210992706703382255573536426953022810714553195168666253546046768674473180964226677011911796246988051876607351214903899399215385913485700064573662329848822098385571473405659250603110371944041407504740178624218477172346259765868871202724155690087295570881870821238135286875495148106182805726953429720452624691988659833572733523546780038729978993905487494070671341858102134135424709496022861356658879643299372495297737679680431002343861829502782399517701190322052270291214880614494575280972726904004844365453322483411081787332987179810738837897526623842416912593272884441921053348909563279835982796163737785069698891713338978935940939464340164342752373476953550246067239511762806768630528500046652296724558052150524182814631724476158910249737088983271722568596875836892348939174804231877389548685129649843158642620273326455964343079501351557671075539619658889468060171932557337659203469442162544198196549477839308867342337489800187831614752552313798584803005349685286785269074444193240172523902233325155245401722936394891724630152469965843197546991958273147314241431961269296985703711131375265652087661403071273905101492491728555489692152732181342267086626019021191832112906108447804712021183041836385008580843259806767346965574560580401175410423657704788620556537903888930523361264365873839354196749069083138319432034011092170854509271455604192991750419024840964640073943850116556534560267235278959585794363377283382229653170835815598408523793854075156654869194245767207231516078100380008425180604146525987233460278692613836333991933180167822554903026836458295029480162929412085720686488338232899621977790301189309876974428248041880998512178369598526943441887571058905506818032485749834576892585883442042000291703228365208889170773560727415805636036324190736161215496053424988116056506805501517873395272412549518497737500698905247122486826304396048857007415928998766077630432531839083957198151828096054725326784737658923095042904084505061852608545374607879629742175771026253922114735508027416049439366053394102773283498520575737571454702531191528707653515631854914289606731027137807515523261869562682477063686712704232155960119996087792475337164411765761631740545859854965679645309758544342505167846982385165430300328342044130039312463190483646417014586099598703345085876730331516836116757977495377044263220227354087012575257348647999791666998229852722430240002183813145750086994622562129549094044534341001574121448461767671661749533058198809189512136599065794100890281406731957264508054465361281280408246313723589939415663021971765566239190896604155129635846413262492959292888912252504636128892660489149841103665978455838659197879722337521796457826972624081940399104541456008766238246549464760966620329335473488139425658948441791733072494981080455360204846024332860651961845347341941650098589525947285884969934387130014727083527818939709008645283140922763036789276555693072934276298846615506257531046478570494586063964053763742478532856153896446644301328987302154423533990867168245455979425341043475824584558383807853079313034755239472451823569967166485642016633279290868111874529496740454372064603079795298147925735301474982625434732058004975790710286062981329734445838808960100930883044292250039700831389538065654992344473761676930417221189891300843089794310144796982356217196917883702343382179030919721508320997231560979745924607871355100546413327269910219439887698115813808059423936049704241976482474762229158172406324771896786003477811100861183246950835369302875546340065162426940223090821773296688992455181751783589987215643893989048871655101491122597638429301615633051689846503595371472301057193291244854924292423764654352162056840889260813159765942173906484786109652976743285517868364315272338254615292669548475559585608535899079697466851270931665625125561752078596996015991344850426098860988951412216890963000987961853644491527065642689448749917623744593690003903013471621829398109087457586918043656352201635270614916686068156407869340386627016167858071322923793469928418700725694988114271403847208834745158308664228390192360387029843491659929131272434807572678002153459964938497967036740747000417723551759923467760192065141642796852058869607727329504404513107148717599388086527840921377059857075274835294912759523790536243558811931068713235685746180737230403424767585659407177323454207180496675806397635875033873201741691096509507109442481087175189322761516012770479256111568737254141825222263299227632190066217162867552730459072754331487103055868776410232101317766791489828671964990090874974778071211355578264160394180772877709684646117406945324629326078778376654280545097854548989949312175282825118836260833578158138962015476041816530962030384314759514526538320525835830064321228270575243822813897009443048545756150147164013445479162326585315791930655991459105275845098186303563456618212853276220025092252285826668211109527133071027736035788556075389398172450312102010541603651553815255053027206663067420412070507169512834100921206444410683234706820820674377002779528160128987594591980450382567574057180062682913307874678793704545061821005825800493049337433892519555915791694484772219510084871482770559050777678033735236595910216280815831669803077028448644692931160700362575421989915370611962182348864594297642743768281681527739667269857904789133586288048276364867022928066442520925258756943167431449934872869441686447568686257527503968929110245289320458249327793861860414293278354548284238319700484707510011519538501914015162994730843365304655464765095855046429851553777307002510786645679241765961909889031842522417450475472636051351166770899929454459081339132935179544831172293957170248250843505756885192891768778281585909013218342419745037222202977901274914966322748538491786457009649033541577445136873531699688962084105852684097417857994425489945395653672878531131794771184366407659326275663666853419010805699697490063703233414425382854505138863229137300236084014341868464878933320546867618910168005900402679520536988018886012606419033424401897431642501710363163754477100708558978673165864476203156849113882173284877817772248121810496565909234648710114256669353883529454193192001235167093431439156365236987138043101121266083470576867854997539437646318504118223165885060100813539787229151644294386396513072462232460721043570030164262668911638865237612358163833034501140587028678491678490115577659319262870605679742386121437621551377919149585464688392630665812222248300197510506568378560080106279639047585819053803402019034797721496402101038943390507998158610015358863466101376778276376812092559973857986742733344288726631786337505619353707853430721618049703866335273477930988456421303310338363284332239681092771545047356388417711693852720044887607703063730026053357721852065257241462079346656702888176783786417843009023247455776391134614189313372875485103308725777801489587769210703335330923371739248061734405884924820630025577634844544092733592909788850340851534576197115234713743904512442761389413819464916738761888568684701748260934817532244195054004353900444183343550803664329377713936309619609346397288012843271503040374639210630001801139888376642084959709407389641283835001354635890232562121859556315043747223963261083867531644740464656165898913388713365988736179757561004199736774293113228943837178251305591814027459813416273489242223636941512168173077467143208676560789532634651375029201993068423086793068279114120656790546086654332344093137338838272773746705963451536046529651888105607455945099514800267237941363780284361254244713392471595775280415003028076050817046581689082772749767959900943036994882888498225404202605971331035263361320275530492584963365694927531909387407782639193305044217193288396927644293307655869325143186237453572763338354837876661568878809175321126692739838551993990665711991430335299656462849594888078967205950987089076790731515801750053978236536539612680889882965564134079391145823406552595789822397842495959579834666017541922570919770836492918515500649087220068672507384138631184141118105454267378563489355296062749957727207689733993496279430043762307413890725908355343211218531033418428079163471979135780273675422378894413266732029171984994385617973937467260469561753703134513603106984530420609230216396405991222289550012132608146011018015776916824272878174153151619229373090223921802336807274768587483192030550573795144404506984787023605923834323672566815051686283816785647117790547135943757524512070783714599397884894848282143239844388869062120642957085449083903700231546976510421322191570672566443807931152079735089121656291285481415334450072767039863826114261958567298420154496932553404402101566224412155166904415272423546710308022468443840595289627617003851186458644807133411736829721347983744411360246446096134501566619772751617115702763544565779350959636035970536317446988950728602522755668049271473308973087552334741322193182452908884367669333989518421961784783178890030209376260785938183334730659414856726919212054078168604037276989911219900146878997296871744603474727787843096578840578193741598778691391253007794122820425163649913337005193077816726099754610054899403360020481013393912930723725200918933495499751196552382443688831713860547737156375223900080688189431041545463101597027091472662562674299145078013102975061219514380240416573579030106632252030250945568133979728945327526689482143119071700265418739512081942778789266770916601542892551293198391633434265107539205212548469015850227888599576617563681960235456918784036363858206838685466140597902784503850783218412581911347547255010078892016851349962427881092199271760629368886731592422611346026373400031535928639428142902469025205571590164549999104084517140784435268335172687183406457673590223802745540520579889367072718866148857843449119610549146745322360719415832388490136291959801002712154391304892487653123118058663401562965740325219321469887815375965672607291644890804877254895532385627448753979576844383985015516880375025722552014157892547769018267503170105059316441495417639971407971842461444757218636784727540395452253057395799315808034752261660778000314490504343212725145369847869929819900297008979981094685029828625060622860155111309118641030717295185472355821790117579777925439671201265584220659835048311345971126698878172091870104965929794872902505327939040191216013795031069593793840660912670711594143654434694541516468507263467232844389401517753370081019555206599885026791801277953453769500827835315189708865099272587689015278205193147772510101928010789133718770279073178933166661155770028125471644596782284650062942463659478031148895392096576736637026961975539159708927863762086959456294251889703551477070790993261620049472476791828669680954156251587925873238272715721754104862985499904249960559333915406192761566428539958424247956499067920938861274793194644012540477950981708231825565474497264541420143298303557341077930469928715992748840518089758861419369658218416185390392372254072240140685512413350199223384856451751587825659607380836504126536553131136801724077635797214358389053805091368406107017576419610789982261423848515891920407285383933902090250915489152374069688787238308744138212919168826756824617635548740767221983070722041553282016361884163424985557120367162003821298563225598795560625423652590149507186916534901294522581636491889324351517484153159753334560019060873206906235928200092365434203452857257121268297230235556942783989380329273238347045392632438402952674480044980009169026330299438857663818105142455687550689431254573022315361387282679808687734970433317040524335448730043605782007244498691214721094511370453887393671252056769362968654392400948268465295811426412537443604388658656270247380096323270327320643403669496534543840847430903335588649443025399461941512900523777758134043718026165410012192056902412769393650698799192759742891895544030478176152704140737388840419657829609853460478923378932368971701179694356268667849399599436743882157417922533873156092226060587353740911214012773649427915777905251417729893830500590954245080844584383416846020760303418157228112399313571549787540858471325518599225612636351340354632505002643484801281254469943184368383480104102590639389848308102272789964479718934863075642304042697606167676121273433040679191544293544404745645530835970362240394809306885207709945709150171535221673784989777138601026551030398535285913517054833389038716137966931255334118376272451586051530082609442414318350281847466809569927197447471258323638387339230115994194636168037408576521790350784759938842309830701991665430053291684492323769788561867551405484429458221566078927741502942850216343487205797339664356513879489386918327500303642864772876929736140285942223195247435798799153720249830445771595375922510642639990401215976964559870000237747714911220758430352951283602017924075031319298982328143994331218359908851091682671678788423864401000048769092297851134017494336415149151338237512562648868470562062849443497312998970403592424740018349087597590711299509752487235016302312152204739233599458797124900241497318851246758437349053222074066344103656559472980005220476854391029875064135463474679490035400498800858690195402863524296371381859738513912395673188010263184624533463667342224513472649768729307413255165014986130988951306983267516405704078758334609627378420172052386370401183310713943444736212634086411597410765585912671351878999579324724687658962857230202358175664454282775712699113612305591758068259272917983442047733387825054054812780095340618137804219427003301267663726738752974881379515787463781527583195605136378496302070433082752298558871871146286753222445431932804800163247299941755604758761045605030878593982549239559338168078205814843667561045043210569674075832048716344233170568178953825058930236680330239030414007255488937817165763162393166488061230077896959305706891859425818162075582771196125053603623631986554545258656319453963344607748813354046408577344974332581136237130744794297524758084448461503672791815641635551615704935401791441290986973154615633829424160123033917391259195214273912438196010499893135283886025593374875420030471132477408527100291298096273702406156841534186743779412271138652976858806377576457424185089941981400730503494409900576173201846787213051688106667011450495430352507479175076699171212392965274013756959797424800790465845279691353663683002731106293447524449918695293137409404226116445807340369411415515855510925447918292464219156198645922806273001087375473867259312340820629538068804298234926855243632020022996604448794104282478312879105268404785130674700954616808288220603334585261668833911447445181726084459178887595814686513135312746539408212878930813838532639070182534627065698865303379591163894693528485211576584327188760156420690006657890723961592496284993204994619934217089385925120136615553291092362970296987477626449766970926992451716518969093224353519479625918084229008775816603510119122765041007097545161831382916826673251474918978489574679324686950101575043705180338737090766331183391152331322721009285927958623062718090914870640580277924617006072897584418072530509662594553743833017099458265671034312039902540495502641292478034680822489923440058988596812374407187889870599381869105524715260538993296400590042886974045832195550614297094680003267388402590486956177859612646884809046512523188312839713308746845918044058667370990622249456873107656755912334042759330753181437030311785888329906861927241948803165621763555979912149540899303772184156938129194041294329428192953241096107138844806553194658033167820724576514348805235862355115581461764440176531824612503748192496239942213224810155428431749381301285605039020884359329518442081743369428934706327324314045139591249051209667596730290119891509878112855079309753897699508534549442441252637944587653740194600848356674757336860300447215833737527584401376842775608824229576269706492629538411503517611350288584556093673473993587306756955785480345087782176594196957926404508584678231178366772360157290231763409158696940760249682539978394515900669801658539005162483934111636275361214964433984438386479218442839439290754226175298690368001258260121338596594522136578882015598932391343880552882639706360080178939735365069489735575603469501264452741564166773759198794296621576522702254551637591713599455698163706473273005521262439668852732449086333596408954956603266591647355886202569654486350075904747322791172841759372157820407519731604682346431988695138485247577864940510692620159019038434936873209900638171132400186850768542638726212668103499038605123275163535826611211000628204091110093668011343419307557326203605045033773930703125740867910822159475745834601978765862720136107398232381531710017552293839200983906011020324550971674045451938463206587752181335237557005768252185730176610414084311861935940781855911561739007160684208053986693549991746248782237177729124112402474139907920944671750873963371164967980992323950573614988760490494084394666834027397827746926205120501188840035314174690082246736207762588749588838979899874476626351613040729290540683190227442843776733220180488467498865878609472133267986279427537218570263258295902402630262018438428250034056411166327167788902921473867590977686890038678263071985541436622143835430946288993021591381108081307039155013677918028478364586793928289703263111591452266065336911364124683630368968164344486182624451226267164036831984483018038112599511921978582965543510085040229013619393709518797961620649372971898700931879665465210096592473656667808678123025853382842917406120032903356688940758669480489163971502404249550347659979948759743147934922247932131537633771765683120579902383675646189718519835972637085388858874057807968731101892347145418568426516339231956887015243803661677787967325498032778754070190018981550555558135267397288473416032365801212209838235245872928357730305107685526761429389439940808618705024849351722641940623765770388287239653920811840206717676784958222919230758853459306843806608902394360804761641020144203407360458513385005683561516184199313739888194221377155020836439864231834934355563738067338581076341831111408673922170437964040070191019737578537756913425726331989559758739511568207259773704766253666916289504489463282441672878466192343321485766277983296613714521492885099144492308095483646292110156829008032204628076599199905928328242882035546013279364750145800085971155130233187486770124023099238386145151952023774597843083888669182293186170610226034129540413383836888363037366357468548804724806332244659242400451991185776503144407046101720431983517765067930771186807160532579647066974356043420745092010196440869858975522257726682724994473457296728056036471655559684479885071882285079041638217183154588999571404861824757659586540527422774725029197672802715344481665680083386461863060716568915320555847705123793631171619252599906141299931177178833261980780375598678807200019510267605914656964119565675010018153642750530165777174308010160471751790586247321045208300507943263845730942468571227446987286770125616159527273635990916140161601124763768022396695441523852014967580447821873088858062380951436118144791544423976442152196604077870009258115177473257121339462058593143523213289632665992739125116616098327309357763302009376023108898013076567483359904698767571059448407516008724300608812458286734829414213569679109560992436294930073703396167646749336664706325929463927720258406390747083528328590757442308962959251980432614523930905784226931249563540980695109695230154979170993660423474481841168675872495591000573960776566405231230079404279478057452035294496417279295479667903629070099003070727447206234687300062480441550286434851063683857139684042640725700731031039793574830457473961686176905644792234912615545151453943839630121759247483336596071565942200886661881817949759741094894784420461714434406286119676370811558339700366854590868284265053384175119802908480173694228898973287959907315796366119454628236496944631225446516216623539812098793667218578580842185788381987794110036554157271784148573963530557160495327545714821876658169217892482568765724056400465743549414094861219011955076217552405471519601635250242318711698693154806398312823516603946404875687134377538408038945618335925891811171355398854663653334881563131700241400282730630688455492421348450057518177604101441718605115281154562829207374117801091566871087941314651473754496553791897465319791777311890451141380098417785307319706500535119077246606320532608851694935702908201816080800700480324612063819958130274225908906690651538120677728186140798078000897196252354895147709634013200514546025130020308749475125608756358613824926778052493118845944136331607979696132597743493757818295171914025202262999472507136172652705975611522034721395748617222301388853966838837386657700057274535400033690823535460140953281815050521138863845604142064267815713030380562205060821427347865072597678559404616690881708922927808156284231611830199812765083931767239204018013216383667347857599327541728048148898721624428607724862220836951805560353397091578093456212211304834231891166289547567382839307563350214466831014343415976432590604177087187121796271291704055028822531271579875865501717803143893841050329934442017342943320944035133498726016948667760408225847857390093813206244379298541700131642439495526583563636326765687566334228853993445483479946107723001206066254012303838267917977378340530573881048056945041167874690920051606527958124731701352868970108069560197524168642291362933907337374244752445961019221772083049826006167503028012938244848821854542230873443689852434215212582208791487766919834067204310280768726288230662818740155395947174352256023328171224279053812845997246612290472823157237491526816513045721291912759147142014444515281019164339613379768903592213216016430818203055290241546476878120570752556805158000627515735299247096914949175163248995793088859822170707582173691929076230706702945184844061259500541782556353955295825691433741654880265939734925015516170963654473115448159908546217392696063016085162692371074337943715536180778190042020942081392452706377082621346614501238346015465257671062646689785708638599265579053631008681117573465866984498598979318069979024533555759735425731632060757596165357540531132073581266441809141803319022983241762340977665859026562898204500914421586460557248721517214050158315132017245927256040456329939529817452896050439834300664571373827800902704894482554018055244829233318604293916490733123123021475363639057112583060738478084769077221309783237131613501285200561906574994561430624369360942169037253150505891183551406177985933688207023087495203471907766420632299065716935709869812547634428167075001676509512523528734677815920557146866579969209168311845602125184978314681253226736926094756781816546419708626585560045142309125574722937792216975600236143211018962019168008607555035462847483200440750688840207215034131223469093387145917765244817373863705397230382408980503101948019444349954633616294983893987670239440587227640074844225258364277382243536959864606609901979164368662767362744636805000212341281728627232683427644687103777117692990223869096521239073693829018303469085696577753192611005835856310827832040657589751055953724934029035480479924697139482433372201881995605121247474158801484031413444005237960013523213835757581101910117736604947650691476009585234560091974076264188039903003887266667038976145405930814514503409975921997360986543161741316062415207060077721525395864422434507717286603698033231149786783086860640656887028781779915107519992659299335868340259873401874039980201208598033197863579911881851239124755314469458022794427323795750264325841155301094142992346372356946158924743935708734719822861383951005499879095169845007800096181854873591492148601028599904008493908698522645837474373696992537180166212664400183862707043650195850315013110911500365745040428377275004464666339389243925732777026595368678088137884111152674739207150319431537776356527276748252168897171329192059933494437092760290146714088105263563063741522435453625739126216676815987581155528949047864584419961632380738768808773839158942035532999286417537392394617464762545106354110766005448646255982082278646788332062603023875870622869004055256519517103148653098751190950900700334415896746573948322435275403069585702544950482575087253266365441653212657601651994724454295790492973644623310433622392131689211895033553626324881246200075433748469876226395331556186062144600365204552195118985048924496072090986838270888852519639438972553825220758287499898335739635358368634850200310684958698678249403621630470298496559295703351693045902557261084002721417783976883178704423633759944263314647259693372934890135181873213855720917439355944199586486707430951662511033160439546801138810514024209963254348630715563269815065202134087749660030854827780196089431723115463991665059791459085927565270196158289362705725473777873757870888204970005269144739920605203981183269752418713711528077949611703854193831030093294492984439983979568328003355322271211569992270365371427399777801203862631975731585431141132013810887370751742124586425465413497333456596597763509395022777048697572434087737812130403782006741863291308395364191686827978309327402469411093337165473297637139060996489952772316694298344029740806723341495852778015477975241497307151853825991196447515412108007519391006410769880921000289761146429672252199759327085800336096100583738517279277678477014022620534901811217616922523609427252738872982741949536780441845159398916642394680834580279776816496389878532423948924907992058519037095259180187301547267764636498894372927107864877833846244076502430928092339357402628468277880453380819241915310736307504693962565488915751700682087268811344919340010908575127826434394482748572049980035603796068599631767324984368269134941011930213888364352503079880832327346543848704628265639104607272948783476068827502947218390890136814500000859142602386591663243010573354462899102710811318396678996916308410818766503694018146584048117903299510750627766552151344485427321700956697217403080095792808623339922405583711755773857280834054156899880618853467550911592084167667223115426847471267684457740104421214374897806581454755949662870080122048819526818542806533207677292523704316643262563460799405037260322954341485932976804791199612473971336727699760963438405599220823449448837115704509750982961532884360245020991765402969379292534272143092174742140438833670619981840242299142670261097086578271657065908853355465266541895516597882672835199202062032046714623952600077236737624364707381802429802794557835081396398799507315068007873295292094519760177766154035120151700883371552646889644843743632386762852225379687250902871968237948256419605867576831114242135308537271191287109091977659863929479456900012845578245920279802440087523585278921885973321229001141839921207550704412782835080782716549174471564494377178301139622165560438462232293497810197297250581940865189148779721938001670048389009192385594481134331360539171235969333681098432285953871450172802372693001574517687810866932356654626196749722556328140693823635726980580981318288941714475093043118152462992527950873793925356156392714515948986642845996967560533140017444717609688606561702664835679184749147866213161193553732483184198647459178274960851563295246320955058348175405592299406506874708001202259186787657424927207567868255122268332362688637748954836634029055292979654434120696478321921489991003532667280593231350349122759477250400406725971511956896722516188793570656730900772435028081023201334932371793155935929895557678360799449851310500674553369204277359315646771972918112299220840859873630782868450476323439302902787780979663035931267608334646365359207806245644450416486761456209262481840968127223134843544517846557013493262251350544488838689918144535274743502738582495437631799166809338880495000277018739009835192274878110623792929438393213858209416984277104456897903728508855718244293055769759532730026805084174723788863492777916056838768997366842149645045930687395580123143572413332458336853241111036283424480882229454339234322382105422401763811429159046266999138104287783937341364429620948391612991067532560887764478245480560745067041868542502269136425070591905897350248298729717252528864882871920719628382201521065167666825027159624893320092853097012203528816356541001494382640974050515763748621367341491632287981045300861997034034611558761375407477326297896657664394031265016929597429805818062035374099366685141167972326207927224932879023219171455221171824167310160802771977980338742793943995109024033448788029541652996637219483184279191620868433439111548647351689343680348679537082796229984578987110026116260665804085615565861511707916960918703931662160659104491379631789791683928228743163653169013790354035021224717409934223690642328135738629863403089908487725980883714815913529026662935584130615450335089274431593483205065042110621393666252784737393478507328499092317520272998596508053744193935532684992864488822225874754493288347627973835749861699844286246155381947149188390762791986380846764486372642351152633846592044024890067982299075113477393124588527857774242354859204837930001112314910988597615533838848508027378140903098786105944488410794571343552806787337927201101068540646234566137712586479670523886974507611745630230972570323135842467022294978446439974958039348000449709053566855274726120222696460297269802456133220445040573500444213973484491833507746928305480419494346253866518745954032032546229560083352835312979978908706662231192956440459957504579697713487442319104902340286748012959080397375803109899261825609589032398637149424882953950250978511643952821412952511499359612113932845935739219018221914178100809673550560104185841887144381480801996536423588620961741161825353788956502522936240837426784702688152663251379602312951524508283364950670034535984914160725645616116484321963122300474934028078686338361944123546679547006812737856664233946881634853912168721615301968777844755030020893744934988653398393058363547280915977811212834084740065557388085207028703028022467697792636173508984774775798880846732663899895383948582665034825787605454468742660021765092478183892834451876146985566683559210661690994520719615740708699966019230810250879437329109719258349462422813701763495411041322035347445433900834569220725468421316683105881000582131549147599562560459631201821110633506819279438036425364803153115323308009852388557966072957212683543441155678083846849439133256062773270957639162290985801941193439204132507824059736232097001142907601641457024048217064189708270312473529952368395307539587300316037426332681741520481605965403581989252187031961955747821395374036366728258439330347108605967735490676912914578514666565557386356034650570553701181340006058414635336934763545477577389967819161680587639704485516007669873648792196540423622725330223312306620234266884788319110343234340879323797366397479431113971715951679596341255926735777424559756215337534088987775135562133887043647992759384051499045886870762540886990207192843669273384457346727266396494258559778854974659114583034827330497909995132613358523388020440680679904225321382287332927444150052202105984224853963502271666545376594843705707392184862068314541464715615711234786212707945946828256239385203301252844617741422412845851032356202048257567986950536513190808935195214744026881857549881692161688493594333572843462650455495415598430124006740375020545668147450024211156707771231315740512744970289793620695501117311445601381328871374821280671111435321839101283512373246185178804595951410390691150404185614906513023243246519916274876722213742373171387430479719261714236799651065181591061016090118635553071660697750845643029054913478042469335482179932399255810549853531394862332594726216219594012814253420505899814898283533678419093052326264368979416648173967948339719778356288458214149003734145488384369881725812571535195501020317417632011099848313568638078629797606906494585434388337687438553324119579192059308583914423810676003555885273411875652942091382716855967613023893697066010228698969810083001719336948727675200228344329016955505770782961241191325882111942496210973048199601844556183889842276574432391060110237625280938859910466481843063480074392694974575843399320945672054650891455813911197662429944279495322714937925365554769295981120556028058707416885079686215795662048074449325928090719377960171472224680443787521039124492357481534066702858486651669901022217939453959133501818215779384593111156432070086565479549880940771956480872020387940274158061796414026485936630657420793537141702180582722375135296195602572129694618391702459839672722616792723373868500414540175560131123089204605671168612394248990733145220497026353480955123134723467719643308672626836398139339325247366094020440956028475545853368208288364111493750818290866579385063765926485895350391126037415332872288650804096181853360721671989735129732154694024501151258437482438255030085736629600066274287181353809525322752616525945181219864198821454374688067552555939556959114609001348300963351997423470004401312147520944617225214784846213630358839194473850515470714667189071297001807786132474161466815232785015243236276841360116575220099569860041767389624817368630772970049674937217879377273801418565525743430676017005527690832348686298652798824129235559714789180481148207950533310108648806132337952060038458716518129209216630632312913236237960456336982318772615154337679099066356904026111122274369095320870090138105594031944454867077458472826484482428821726080513971158185605649929026160193734920151217050531681315133196590154687333038153771322337371397794289054100440089776455670777214051979174505309551347862455568506140338965131928037747247960044171981160449656269338379495586184179465429169439490202025260329207668616418495469467812188081451191964781578587375060666952680523322066276044303563356814059653850947161007731955228208313031745223542715136962134008597685483590978112379182185413259423520714686171171647604470339661508128584949251310474101054224456002885916207591353635159714889324629778880774792045132232084290755387731774876340102371932903128896139455813424183033256909779010847997976338035959892307209022085156588317603109515580609660816604975531079867299245638184265872492112029772202648212882187205302763507595727008866130529261731480457062420083047842838121940258382500782253863934156795449263923860259104207218043941011622790789568062849239855259264157721776932930333472072823016210327050977534596972115364160848187596170002833347252745532771967825001148302443864324994315187731613111075328644244942182622001841198980782391630675118203967911852631964830619024656813252758834363666399406506967913422963867690196031560085245268850282593784850166737055324318308277680199550272360666955949412230368753114172718041335778971381578227071922001313500541010567408957357700521263932420316627182773515122851386385539230511725174164973441190570448800634359261380045793129161070497503622258551268823071564515109873325061128357364253710400203278187534420202533032579970012963016217833794947552873806411179754664649639093560158927456944318817085973200043048649128451586805579000272532682101100618289232791394884970229903571469274245026760777416730335862419222325247873550160264504313649228842908600687428125057714858860496318530462209961774150383661656861713788030598706372287041539324662309449087746758502864084684741678723729887670464582811133239067490414162872191268717330160767438950440314620209593787167991730900449022709757638493264217829276554422625698333384088694486923226407396370538323425416367751680062370366647069859041867841021181550249607280943519162694298457413996033691102030918969739354351670010141124358834454167138664753069257225017253052810784032836580090854762565927105714709105998901615576667649821318044004649457353617004850150454477434877194405590176493844377876210914557333586405003062789303943473099930825037556089071101721264769443748845457351161899343816935742319362969193747139308496562591778781482777191664552140165289684178142645060573569452713584201935913191591161279944857267667560924818031017260897160415047625941792537845781557797577612058801049188922074369830118568922752759646588593632155373046296056728022715889995800336699085340225189938711310011440141821007758620306289923276059211509556912748560092379490708448551660881890166225880656227809814667876861581471213122155505745257006195300302680657352057226494057769809858505451430016467630350875270166950323675026238973973539824626081854404293981333773421654993491360442754975164462888968925326161549203188060667961786531992513322584633087476839866233098889091535164114794421758492397456460349696365284616258035478747722809446231076883307702423373553481525161341024180946061519560935173417136311550480190000241587633126841962315430711292720302632629658669589977810307558442019123985656334224674173874974355666674388981594193134847143881573490124714718218063654437505087701857026356813224199708790448912847946103131005178973459802536100626910627774749482754679423720591351576554120189907810905259934813933209490272153560588374470950243902966587245049420300256805222327540990788986186367673326119387543265371700942162785767470114538589445192884861744210471519558235302636026993082768974304057568427980612628983864755416322418969722239712888777024312420982570951926908476038246757272005146063812324193478004268920568290238872186843116345569278513492388645675529293829816090902485536371512173570155422410584736663924520510634449540579388663839914667621011944666683855506849013536646083059075001566053333594298079820616066462520876492930794927658309733359893200528779466457448869175765575451643922356456381895527675558089287314793641078591642422965787696805971577467931784230177391881011134198200614701345256686761628840207478547462998254699503142932713637230673175162388802164233445095801172659770780457545430410224370259663440336600846194734075838998242044726204812454561658548560646576092813295299245784267166485162044349401684605235215798875714006987685790371933359514756801660350980238240812215503551969632996503325984325771964448946753557371008526152248791589073971081407293226277240975054969668118436765560012105372508832029656894901159863842292264004293186389546951782915670104051867393972669702815940394970329070934495967554511889563652865363715635413625834348562964555609495518253994967851308783831571655823957749552521006269744473203325163704465251153983007815848684515714907704620245033163026418692718418787418731773846202955934182026702365322616831929731204435648302318604894410450057078962651594042887125600508483304402283291934134981219701671418440244528412014031556861828602091985694247180648465104575145515310799061545155792215234709179849472059435453727194161354966049464000670306556994084068042041722794664471160157564566487268058197557371145783500641910123168653204520407396115378537127514658260430551815190766860950751657279580562010852981289068515386603771239066569039134483634073374055022448841959384914451541049157930621310351819859593780299610960736883345465781346934539506954900151941057887374618040434684478188819080892894781584310163524071898544985743000176982898350210249612468951692308228111595149208447546080461515318478434774109850539863925019261345630095730320180157434572647033839486636270836644887627114254866511626124905570961852550673216280533527544674084535330804018230237132654105264849974468987646608425962932378382039153298844963854257955886517157948384334089607897008312779860850109419676753051145863150219531839254632033164280856444653623300423467821797725625328135122267441475769762955188502491576763160396692990500020162217414541700578610806795740003955042873683618426132028734714122120488227774965887534263069166148944483994980579258854497345799896348101428218493967474295971757398347631139606710790302566107193725810778955757958885185679505221328531128926433643392496502085057128266277030218048485366203721402193072074294683851456044303402166297535380106584195501534978757125699592521433149491374382303299027037488045853633114154170053968423938619518740232992227586948887083631006085706224799124255954284705177749111822143290398275293753756972072974811079784756046799185979475729464038941600961491385474902573248650052542647160602891513288025367391722812789352526830027016065664010551088712416457614354241679029163713372632089729541059999013529111714918188693616099111992845732140080137724973987522404349844291795610371160998358356811279182814278881061561318592514116407168381806496909198020083618591340567955743344342466241214496049916385728566096710214546729551187352846440021991278007004044926709071873428592283258970590331971110134116417022408005818029887679962903533534317372369074101546079083912951401691292895515679842443785929278210712863955480485761818551779733852831418102034297812413218366799982164420406547520648572328544817071142744654164205436186102095491969921633034550952557041076813464341202147467846193497004479840705734398283008808515594734333919974829976323366748926855201034197439674800501110512145145631060595128603413750811258010346290248636454788019668614095993951138802763974066584653433710162767327195404663213899821019241288308548309243580152137719966177563760780237058872316321669110291564158927077420213787143557980690865946321691329763503183715026490266738094241809236240246986602062678686988595736875321239213777172590852965559950374437925382829977660784158681695745685078740689460155298480218958271949108176758311466876109794842250362802651229246905096992411781438386775854527058635101866127764911678594552188126612167261004526816259111425682430084839619829113553839127336371672163240280116209312288977224877088792326874399322393862130630536900525910257405667719291069735982683392798581267095426163980378707634356095855609282121936143738920092611812290151980469465987141922196775310256577895153943506176089046008834068952693924206965740816149355355364155724411942757076177183378755445207378829232887870853400149022033341416696327962539214947152214511894715756812241900308297825467322333186874824884795463441190765303509245149855726935423284338788811938984528086682779041842759233817667710405479320918198777517892149119388758436346207359410010515185657181031575056886671808354309899414522636522316897027483443187731318739530473793376340876138590237441665165351710165369624423811631710648894693502091243092129033517401243379189233238590269161838300283460260843707310960908666125596652800161079754854343008379203891599904706138907545853330216023627147009355378769527411851745169663020956131800735145039795853432990147594789360416473882502573762881901535163508646659209696123640269599690657589480925962364585725988087027421061678446679146703763850465988739892102205559112137745503394227816741627453052572933830609703357464841865087802822584570354765418626919922458362014015869290823335625881102582472609892231888946318601882174692272266967843651050079340774087356376762942431723083903647233382714441586393838405305581138145446026593622336808386129220302526164557574958145913951954700389229123632869654860599222983042486864662761702755575909335137592963087511631394578750419327003946154616307226198740190005551697682640872216109415759052228475963930064621883517760415681679109339748730050991339185740019713676769139988878069576672213850318618224677755807777631599195175750456323180641998626930758230900601474698525724466136669123909317450474461417113565618958174168719901331709275947808013762218703657005609599638654460589020286917673397484306801983852123659891075068355004482343068734411084119890490730516904088236694174157088301919378609745827101310193318388904354179020756665553191520271675379165938832522666269353263158360864767233642683303867301599047657326095008375410514404260440208507383642452898393111380552256289579375204501557970449102214460279505471304810393863103626757229658101326065521476597731185529484919118050265303462597439198723627341240430830802924708096827711692992295461417418555066668524272686649890394826348031615612767577637838693839232683795279500151719024733770802487463332178909043982449370379794056136145368550269839175297121116845026011108375159228909614105234405405081580395232851672719693836813850983795904867003517675404530188099796121198203561030384836258710044415113503090570748982885427463297290064659367505332503021241301469450103406716326600201596959567350774340933529239012865325028843193513663274462280331950590003508571975713046437501589826797933168466152464786184020316597328275308529646837317787806811208291575384325269838354946579588044319465851837551775503472660054238599112626302353838634363632544602367590447784312577922143097614977487036365166579341669592774732259174063639029700026174313654967482980397032902890592723406395744890597209931850425294246494384300746374617375193329888269732064319860769185218486734745377341644193785557440335646862070609445798632046463792617081455182299900102127738636519584924738353809764424750910000645848365484906132258841518341277202833148460749482363036360785731128295723249066893339846848921378191639432252489150323823726523142146322342626324942704912017392652202443899789150275242459825379418424249100878344608609743988341444341180117858725512370901088185548737192238956136119936957704146830569517171387493340437874602602745071378936095587075404548054333539277949406943143573883674417862672422135350305626422466940992267182484769916690994677717581118069548327439266795688644503835931375023446577517247000495049239794591665412483692002295639527507844153665607711824876379599128237573375074671889490226544123187601166682445880461400824847841417536158186585345206493748624739435239109904141139911241336667652067741064506800356022396031429428321711932929174315614697205980907360237295644541732462533520558534414313430596868655976814470611539789886107113801822270242574883416445317843898381830021849295033904971385818669813683284047511351383409961802166973252956030411030214846347479087986694605635871755446725689609953487181870788180624735141541717734956317720761865528779837937020989495990398270220215949885116756155910282882608153716120138777449352984005481584969720418707737553072671450423286694823444257240477662758390348079257415007153659986521752179928725628633259989462955475342763256551946006373876295462908254504638700956100032360682942786071495178039483571653683510342181586574138541239039016465503929689056213923652254315172731869613970852089880073028841912735907802635061758443847070446832706349177888131939274475062618450569143889117336004236948656715287843414644794721124839964007333851050577832375961932349850772494939593681505887586915573457122776667423225485156967849264122203528573967949255482965937721224140076626785516625000993438350667856659976936655290124943809241893522143485089240653974654442188128252292889204303286541669759672390806510026889451543677805720390458002815361379621514526148019291782581762854038533625949056775466294159367101735466802544352309350426707307294158072245843654993963131269328879658038998179131945698270023094471841743789056307808163802079678704462208182921224252372452969633897084161017966323120512602416068982952632029539878869328113102070755899214660064149318922619785787379530161455734395363373804571357812418474772553213969567540218793295172037780500041937939061884837665902677948123536751972619964780137645636118635235657712887752187192666905953975606158355438280155840171680990790017811541591090570329269982897529143707763310772745784291679436626131502718856204765738557380575545948026824764286202076728270962649653706956302715540184744915890862038276872743155649728041092013657567257006266287976507968785827982981728589384829972574578898636613503432190144249900016291357623263416611047918186578132493262244650934339864947904184722299927327079778327431518772539243663711337131911811295241727749215384015828898708724224648012292901017975951438205651169875840211218954076756979868663292287169348382790713918374883858434066567043631913123969019493496714309620816494633012081720367185430602067359131314342453119616605461738695725641269318759497993753139473131748988317158492756884046204533064304889530070908880418659240911248537071336712929554031739306738973168510429561512547656566997608305765213173788077326892336590964479418111963214645460758014655130829576995607881966819518404151845092915913552028359521961206467113531946614468526091515578533158320401320563032798363965671697966841225581155482872421374877518949980729031886278051582521034413286638560454645164585579391006090341620302334761051355052867792573418776535468212333404441452449197058119367630853784806335197938400749488513085333274722078921790559524445046832134144212995327389718576149334618940838420142953969995633871451453410288214388879682436457597579601228151385187655865211298614052549433653316141118437027211907983280838450076319385777494638072619595094444079364414145774639833614839595033051224857588314097919060947655695509023143537240022102891825219513981608721297661617643178051409164708966278113483121936651141614240288562614217152646708406711825214859197914581799582890592635469104761644631833285588853790730751817791186252565078312794466229037280967548573740417433146357183162863401132719570016333337407801711799467805494055265684259993478842162312583905137935036986852236790305115486881932512566292553738936029671968506411242536200040920300070698261625476218120917616321732092751566702495842825272832680230618861807801128551694060686760427287132137821741771681582101219238569569311192496457305349046786797064218276321681302610619461762106257263176513712246646008336254583016232596563477152861675151409509722397954415303073620109517592838709536559204400449763379599621509626937271074091698449409824614237133709699287839006660435591839331681694618687184002033993318717131336067917802918728643019800983962080770597559804225394879792701053398700290466993257584792608066273998204388094697927802795372100403747456718638830708777907451626526576229719379995339912870448431724500722088327346426071500309010705281288199753367717782088278637729173040694931208289125048632363413001483357620440609308952546797691171408751942131797044049283535749644636055804841950395652752781947018765094747077128414618262596879668151798779558576883516872314806410377792156103315513134346093162880130452716435910019511975774057317642073971398936685264708469300903089786435436052271246385963702077860784179733529986457846616206658962343187341095533871028759263463195698932975883363011233625156331963604522013233976521196009973283886314051174606387000439242095539238710082300508461880725408741475072832923122075489438599784485020576022696238840886920576585141461159045669605934332984235399301502010236526866841080771695450410005092261656280950363463473978871762209987057176632475190026543168073225308504839090890974924200249098043575121167037023962704031402697925040255193240072842858164151377899430228096562100126655055677917773454017173545361637609475822740192115589688057761227174279671343427428025960213542640728137421280521555262294921252579966046917415018162956827303178138500613349073632094903073884633041987924040833592944517315301263064806810520278805114423582338636899718170504925057507147125169837605358706710719863254681553417293389710031330528893266801478250216601518362178585524656890233571764421763886263228945094129579274701018850947258234736844233164607679429736181015705727532854000003241079857388994397699128354681806352575377928194713364272935446942423424886703516390156942739750513114234548819527045360804682450742301055917409726821710709548804738129138800603120419059285161502748028189966928834420721986929906747609749032028653540376932318686189917370791874393476719320653502608173480989673492735969013420418946651781377634130013702154801668725369256241869976197294823348419204789221405903203582528830385094931277769115169140846848608698503218968124923416186647298383929632770399242215578722600782043401811660712180711708140483774508395496733632232500425181200397845789535128770018615906875927018761367413159241857562396666946613466099799025390401291259419488178246247736500899984219485876522432287009860316076862086508017954631055194395413272235609048595734008049832193401883084223827929733765754785202370977429274130027726468860593466997470892951842515595024195016931676170761100613139038610943100286288689065169605168300408115082079928205534954570891836558523436169908721814045135112482707430545606303890451641390855055925742369294914150482845618429856840769923044876668963604272146577199238691760164629945462220737209432140257152258364641476753604951874267001758748747490148380486742267710795801869469555895935221790439826428555988168525389675217789828369185123059348902603944685871873447803142945759004758461629828026827028329587793581928370264977230828463456159352980322908430422713626834224814426305736234289437683689821857860038548230638733402414927674436270004752111814530846556516959006953303554812882783639482331744107264521831820398825255836622123876840112914012280447821962015165225263687181705329657233655243795292700139844334810268285108726512201776235313834131443090105792324795410862868392847785538658507869329468137822995973884127501417973251314084590177942942492973290115751634470906460647981087775850191077350677646304388971430560529957327782773048151364269814469770311837721723416085565078830910478655170096411861724504364717081048895270148130945405465291549261002693870459320041078700177473077327958116197837513933457959183978019820176467430774707417129337739529401139507953194283241005706331530159748929341471535667009870439187698446216968279468281777149663237299740982320750675782855530375563219235921000550704146500232020159339009752488575557013357206429831662810278440138011781427150299897678562980409375109599592131632268057216727896634377053111116734054958760536599865142871551045126416028969117182624678219777559363841324064155400805467808877277426605547239500721638606435991445365324564448424842791016916780635182462306048074993061479442396907337338320588546378450114158635017071424709151024436480855068148777891987481220501351956324100140733382790130410275314207143862147409507612981429256457016883922252348138833256471166921043451559241546435520646692063172691694429270146382553472991081655598553953778270755364544413323201373657285048151612981301751292619549279730518751283443677730038852761185327304288539895056447547338271591299745038785021759738883857154573746416803114973298296121305813314792292193321835594262027905151640129607776777220871106538105846491556763473094477025606162570790773866351433901315567269623653773366915421573999965267086579959252960713594099694225059804561338794704454419387139143095719817424768445045254530010740444096923366378646784638319140897754067640061562248916058224440188724054241660477850398069514580115782392170873016877384057221747478988039552049658376472613512168920765084745236069209795332232277176063345899338960109502336799228871380056121872327451803697983967291302757518657466219820156004357582774397307745449301754001888398082763755659852676196737571082347650476290133423399066002893664045685083623028446020873235028638447168627732115458356071620830508879740295278606168353860800280678989115867446205938014530564923839411075365677092931737850560502867278287884572455663382435747275009492202493352489011777732636016806782900040387663200358985357137256926943091155322377425836020583256677174309574593213944541417755098759509455719354456070823293756088379233543618562670533534998991220617308186030493231533184897760719924052484262855960950394722457376059116007343584997732547465021799288289496939809506625272744753867185277176425078708600785366024923101035216895244207540740218273130099580730852781388030616079956669847735041572523634334009476808046818538548600550487203704483149639853342563827945994184170895471941567238188616669417674696065764920621638313754113095734532832170555584144220794196682718470146418474810970795184700375648271907686542783566422491607860084355296865430667292133991682110726248224786939252347617135667174279941204020938576030249976646785842038111199348929491617574801765536439430211682697065422314737533374215778167281320539793605077142364280466487043696109718061107076191225282512085256381628777606606754783760745794919225947670630796087375211946559394314789919879447317272870376557915033810747141381730412827613273922558867549241009624816663141633756520959633752069071682901699313542442753336517331758973623784330252861736652246150343275897452400043870874110583437791796111976534957909150862664116058841331158453635138673731102154565140034192786347785992121638659407952921829413496124652438138485470152253193824105344357284528513412044395975782866166712455134874182248280867556142566965072386758258890736459590877964570494979062969277878859206993262025891209794361999531649409935205318958378508152631567378331569502800166731637240308369160893436520888600572314911044680551705945040611483909089314070055668175549569815031048205497741659622797227741610488975628536792578196618639792904583116433628901080043140725228116578867711623000439062283276746524634797896985050475497285680251223580615103806740674015339410220297064729837105643560808727853008471155673781367134790006866299921380360291040779839430542076711898479606982291538167337510143758723969149739856892530142633694689049427531645985444528527157481196366127231488874825618490418645538885007346736146726078043951612740881897215599713687449172373643003045303565027407834702928798920138651940125768556227699708622344485222568989344539281280125330724558651452098626669483321721771283624945385027026964859927631305392508678618969002773985737037592243847374152016176008164603847448370440772592279462291976378413213648465884633241258537836749542158651107859414990374475106825449169578354131090216868897794038058232527567885264828341919491600178801683872031274206706765512884317882761844474750628168095388415292750897423134638297637019947712105895486508789973841573003204353757538543775881886055408045577505214840225621984113768941331913906508408780707440826087469534428031675577067946606783643865469545130157258509030503763802985322887962925193706339198806924662047871792120431447600798438009329909245147165688460799788619293449304676006390292416659161743585297354328933366301311441802738360348589371938176614809052017068256837815407712117355062100118956534391322986810557484407706260215794575960063751592453905498344125886181034273747804729267409088551911632476440060723884173078512474754451535976296614380548049780824923832122443793179894826112390731824706788382066856683119501823578057888406489576121102795578103870290437457075445694925098971553226750050730823214722415552551520007899200665237513369617908865205252283360298289209295062741289160767452730623350871941784404378345483769220113857589408535049162572299388984272636078699498425642886431296910861263392291482601882954005737862998793515119759812368601674178012022601237927831298172055515197316879874088542270788854604276753524398187960086100541723853171332861168126923194805290675010451444085325574376007229864009430336382423351118010793675913480644040151109115360274684618602022791532758012876542101133153748580047474812593229608652976653002039084072331151559238318161099754148448909710683769411564987190746734741570691559056200493041909023960404736462166352681936334061168281450538967279877496439787873035183310708228431229362256816960515653899511512368581499287874629131523337118642905268501723992771156269894081576038003943494741098545674699736545654717048415184261583601410496660738357417030667406767413850139577522899515238791063039358276980171767009666630792594043166352259348703470888232959971620967447532255335105996561604289218330092062644042452825648949427744489264569665378386541267353861846367516823186350314903255201793414804537950793697610254308878574662818795224101508250546723641547546187313750693614282923132693414873565670765220697171146273971595435808919821719578906311419254396567334989759693725720380450159490133949958908166677091242842298142581223469901998964964925601138239532664804520624014733647077630556776905932918539717075047270515256290971101689337134710501449782124045636535550067093839200276313481690500940363695343378129134255860049295243457369044707019924034263245281308732294833470252543781918754804695841125914420066762263635373843859833235954741282049513001215492442395014853845667006534428015596174914415793882669220620817052070705551816784935576857200089588776015786682206397219947505810149960943652488192329828473900509420136420407268492450523889876397303361831381189240048584035071593769570880843422781271963628182726310875078870475760947319906114325294106564607620911424198442029521964759002079264064788816262591470067161207903791485473354090886482583839006489621735027586645297222431194138766211180098134466174854519371678580883359487981373519498176045206462962281557117117525330254481074091045806394937764515138082632360369220021653551982364931916547441824363509616251095002828113482988387381464099743422370186026333164796779885827823113977302941681527032255667449158342198203156064344045034497965256019840713285515601058631467635858335283086525347598379902979542024737908739335651894175504342390258158056860332508829353115583610724489014103974501763076013321710521498655182617005377036955733293606365546786620959709485000481171382800582056863483234924187591796198883172599934486085772913162883741948263608808408398950800664006798069484929735839224617555026453306282997768138454951680037413612178024020809383860236586670463542369487250201217838104994416810735637659823302618812632337731258134478520986018530963603118874548040963561084080787519191978362489853535348859306637543909665467669796686030089152490418373404991808790657760673661558557399303271203746905528326500892598718645894921326301834618815836842897383804235060004683424660025770501165831018683489047592961165532568265174074966826798954839889926455948287089577783757712247494660895846277887006713300220027279824821323991842171467397928159526383167512489181067452497122631829901094024371266980730334100989713823300119135633642375519367732817829588370633794229376657860541353189169599328848377169353054025529992363933020438956970289369473006882087395267869500575380509814210700708769156199267884117721693515407256080421490521222511785481872614181178428052138508579606630139804377778602483088310173032734214704844384508801087074554207491740186187620270641086016421939963179297060114058104994618972216824294022517520524341229377400984171891013956356592997544397831164683916818435349965592069263910261166961865732466317251021761134213955651070521096052099623044613639986575850659101548512073653214160815250012083566031360614758737820460144160541772040618012397681507283254828347705543003718220677598026155965151229923713254634962112327402232532588133070452413005791268431428168485483729942253511368739560852081993889754750576671640664627162172349595061097273982071885390084227337762461297659822242400088692099413748334671625007313809029292129078619230560323096210340757798723250991572886878213965685229728691419230041182271244568429146163530683142673349277306648140919390628566885822439872201472079449577339037376707714795044996153621995212462979279443142647338225573346260631595105678985751093363548373383376425627423315048254917755384216726026413155121108556270637870819424071532550960395090570201850789352791044850877110106995632311601753195841234933813001105295079890606120705556623466434474058811149086719519420361015024667309501916246211341424582387768164519571810106703821674378341050824841394952442346714063449285550657380016772380787265570488610280420892107983206491171715708506328170646470175502076207554359610643562710622538242121974129355877081826195692882341291990665065678891219609491067020965021697109135007319350399207909857457602359156557052118429730488355463307044515377672256003717909244251965568933226983594393422830897638079839066960256958742768031163649668721080719958451637641211451292433737509537594817946736121626539214764713802417745630845662793707132062798915185826649282584882545864139409446998112309082525945384067366051207802206684479247126185630947786950928064530071013484328193251734422330616532394089413947105765995007946749109396251256262014691043836954806227337034143536168252592763711408814268293043327509002369336634858474619614890622669368248804539455514640613302074519875304576061413407310459252040579386599255371555122563459893690347848883232345161682672830546237858725395930250326130285013828267224115830979002173803776684691084299471874988774119483375222328758652428698626892766970733799154340274856763813411561960380587664087477056651978253980338083941358893014417263347163923084632080175030210094475762161779391257716140788802771964137801421050464736109551089925908730603442953705643460088004710552659338524748747737764809445726892664630445945508360162893710860624914603084352670597707629320474300191582946220778014070640161359361188688667619644544591355856427218930103953181283077905918546242785138208779646404479646644662307662423723848063795279854332151396147556225335423564614477730904463518487386726405622703615872788393287270028293656138647658771947421174894711012199480921855502270146456281883934153216808564921158506720692930561631213812325832340474504888405770125174302507429559784289508824476211385638275353435338990968893532626059702591131229980776971206974937801325849862562413456493189211307246988252525958286599074098060644864126814426736089622194399784662018202782613988073116142724441665477914438147118511982212503337461369003409865793000757592884082616617086298727132970782297441311376594000079125152086305932658069819472926781567883278818218997326166145509178821478081872856687046704447316915664525965433866771749833867883300470120701970461415534163635170358783299949342499628462681182737641101419399369650172422734411436041902279199921420853938422480958984853425123157551064040163558613608511938543955488888718556073445916111423729721269927228550404420890757213296162665150654928793406133308585898422577929553699901572577656115918232418796871238727652713874494932129940297682176179278380062801935731645253423623341343983999110769241395634477196586276043802153946471616106881720862244286451491650828336128843044810398882267732806241210926833371124255480858574316053303336086001083117082250680567316511588221782117013555778767106312687811682467482588332754514825070476615431676175968976853136270835820268502341384194100634067609856985480950962428776783523721446806363831388784086726972785866225516856260656017510009829081978552307076975670539429373262225507950624925527174126379474673808967441632315592280348809877842182438019497354321911381535430596313328357800119808580320955573136204691670391914282322770891860308804198571945312921593116154355847818399407192353068206340490153214245887035423443096647139830826036707078362751187390337420977273134811527326817934776497745877783676903159484079696921407547496957096090083658725591567095142120529757152142973878367229087666258821581778609798047375179131695221788170286153648841855085339513787505522288519509324169163528066508369388623982367446639194447996412526721009256103704346162162136995367404242098391186931490838106013417209653021930390422032028543972405247333366227348268598080821013848491129647060140064167437143419234787476088027750848095133871881218703043121702648221606661683128137708386701470988570350849508969250779704884456840688123991984013020173051305577311466357300510642391690230734927872489240499971221984126202208533410555004452290265298849913213405354123252881561060715362001592300062152399571453479983575526560080134587521221633675523624702540769867159980202607541339592428500524095051629168443025338168846208735877988205112191126524978914996258660667683694827500518299305753832949047365693158136556274747387375574143111246972094119044925372859838881420662627666293374034171101828192971532962716158348285878098315260301180182165334577411625236053980804151553510218873070153993528210222083434439319242652522224414999419358200549900524711639242454239655851430998781471799246435309388094240099737827100269235059273813952955985290011727457856752416127283873036924469414400984395235070469555975263012506672210984170046442854637840232141463249094307001951830271320217181142359860797695067830188505795954715626653118687696045951563740896962040878508450608358620720894119381989488773076250598352079774871945822211327878138202500454414127627545273788378775139501777746518902435651828840652957270211523153257852774488981296337017359478619678788624292964926551921792690403674594236765227348412470027219136101204576226462678136086214333166703474566078237737908306151314691463798402458491844533027260223167464191411696863509426309022799866577717075972776767792338548480689827281078162665667136036091511840280620739273543236409028812190596692771615440318964839302212522950363356974879198702354061309740484580764109408753010125846676790741044953051798661596087737031233701355438882337485510217799986596323192497946235928081474745463772330288652667396058832646100978270130838179148509042920198603141346791679285157869326731178231141781745230371187308905363573886522188339181821217745353903301212585041375271471720880739276226716949788609203392651583438736511898218745694337931712597865595415612392232617497185532660095034077274225516638740228534432734753264774185310779588021971556392371190615438186162299996400503927573168444946745520239794432199326188941091713365341566618174151999032805139482524958129420527780386488096235682203420100559593434226614525102398727471387476679036476333962867562467516166035748629340992318281662886405704045614640145430924079462099818260561321316104577832820965654688700183447629125413247232871939827549766711672547427295986461634958457028384561462968760808596453898981103668505664743200241453454411550051621056851732196085167396130401451916120150066176608642829776457049890168187439096151096238792022691105423804845313734337444566862552476198061216233053553716315986409863619871228214939515340271741136304592855168897918251276574812097677394110893209180672916595828810479581512942934944177321641302686958574247671267915577603599282651226262482800738014656218832664735847483556534122931723430017867594361358713478895996957592824338728824296976052331117239287771863902479219838794203648333954758594436042783043008568367705623061842018443941090892185872885133080376141422562860994799116597055529912290187984136774014228667738455779583901122264727907902539291640276192172810237226037129959682561674256533584762827105367819340033895931626958390008668385052949467275984371096541314823174375542528537400791200176887296380609703585152603016482294845775607174779037470146572797922443778299690841486035328357924329298162936770486422479836039109955187428344181972491357287806453293211470108915447547739104182506359029649356973154028347401596753893165186633595834664066945376672331579956401101045345345594189366237242351783199494597458283074125806342884409936472953992291155226457290127202273518918540518613357723871723323363816348541322676562450791570489631138578251950298087915069700581857167162100985908772875771731277494338771347847575288633402599340937578650690912063855002011147416959432678816139517490673868936901983711375538866218554264018340424772367588051216248986991554236023043929026404609268154354435732655151472201455861905552491507018629849157260103156952142392695484117180048568836987738810469999734457494714039995669612725433464004492657119465928045881808308221175396781714445475021243153114935738733366345516058190103011491404923403598176212780254935160130296558847664719972114216041703559125522558754400466957404269027922502152433291843990824894863900186126351030859087334547536506599103484393523426780244844160197680806676003142654731666852892389820001513299861818472502473089232552889599614751778736199144544943558825800981682323077644539901449688484630240691364243286790230182084741901776397297687516052513726026567365888079050484359460302118563327182060543555336395258871938530683610872585495799407225152393356787534650501088016973160917628698085379214469981645751864910557752478901764471328106742448214024931510770141211012844608426849782316301856988235885155488109043113013819904088062259887154174864039042096729676955980527994908956682150800107321990628829190720827516749358070536815902555261584832491451690102578621260722703087273201834317493432069636859440257284699494888520436680176851201992349357204402480837867774310148490186051830336342227117166748835668316619846438798056706289467564112384737421195735675720355646556401229452029155473315468674685174364139300692352121169570281670906136304382124505220675289582668077429477620284918502237511557622177365445113145830666452289984404632002929047083950618285201380909509898165815754383839109896395381410913953100765654703884298116275177454818266504987280371472664990289501389000877768865913840274027195388919592808640819551217377593898300889148801381621046985831303136897912972950395250252423082522375770817786731107536000810331294200706463659493211221019391106880751634641785334156567857945274646651637623475903192131053524053382721058444010865566603896544213281684726133028866853344379098141314024360607747903527769671161772861529369693268194216294025817192740341852511619908630234921105780814150090846335894613466030846089922381368415688933053747745044156994160573938338925777489791153262432991573825618177739913613545315998108566659342186207438484100565073427812386709390560999141596215998941745157680556728354058050426567257925357339513766237687865994745767303873360194996779182342504772167344807444322235268173406169476318148261433498153930278450473840638420643698723453443881990596830523973297624323287307821818105595196935123930064320494795995965083460889255916480644453335382493673539755021627781993614492282034893465909661354956106021162395399437715364053271884648486091250086147056070034911713387657967844914635326105766805382710914609188410410156301759814878720581658465299430478986087466234575274585835818991546289403859645359012132727355695096007281047026036749634694851216843692247900026998434226162600027580124003310650831398145427033185872870573982966612954982652576793634171599640163747879356563482317637254083991866413966222757210762462644055445301762663409378645712186232657009990866726166389268057913852464661026249645620446572890541671707025863300711284310993815029564635291348896206068802930877294198459419808495699077384319170678501915515806932489083509725691561372558808518650480727853435012845574928994660617546281866447276169480079044075535278598099143528159230200934733707799425304601750883423438467815512696454613604469052578694952762109110171746448792861971951103826234100659960333988629445385549119147380323287807546284961817866556234170746521300159923663023592909823238922262834936983566589406757176625650374759732922241579648574256365562861652573584856767412883869207447041156017695205354241788445937273995453535814650550269449850728764254899587570400595446883620767447628355690346008730265115145043590603175655604284691015922330417160533330739080044606727679216926858314357201434452578755724641740254551401270948681055231867461010442405443512535292706772338561087708130270125597220586552223200781619747286047465085692067890041204624898912363361167974027286508044555673725875456396467373635735434569608988865048120652801903733346236516242376997241506582039778846097333183034189409572443863205314822768778707514311407775483093013112617856226054432088126378305487792204935249814200244309434819023082782448046926224075770674535730135334652919078925061896369925375174821898281482064902568842493994330247204750461097267969079280343902808546618835245919789622578787044735851951221595819829971217366679366710345082920830972808962262732036015921839734411635527593979662041120635077511600796573572632132276843591571733898275218036152519442392034229090738132081009156150437353108572827012237755658885680537937835393239494625944923948710215054388574334184178811267475893568224865451620161683020900821137183142040773010476981108403215439001602355832222635208688854741349741228320944300521340791696344366863063212615052501498909092209400225940941202891457182678699386347205877532796908873261275919295838847629832987822535874936176057315090574898634107939082215041645779805644521604305456811033105914084769091192187968955477701872331442496107886012910857209759122913763861095328133184010128584925324470840591000919322674036572101145741529608869642579194445280548779299695005498777992173711761764698520537225848109336362030546709205506017362041350405729214700773963507998101824409566298646779404409942091875129936177055689508878987591111824018683663481366517233516908216303709988560635977151272016834000540887208859694250723351674739976253577106180597673301457215751611182712204556303206899196147733448608614075516619224545946752256993683967526398239632777454826308192854692726166953418584314103882255229630925066118390942537377040703064861731907320230637349463938783575958032271678575408539811358830505007192556669833883707969511033534968175857215581444590301717260520481156143629640535797199212245274931535258314259336866515031562625901260071886130760063678183328909952236014775341908788526169646437837777308991883319442464838397366055288709173810500247988822215394346910281774920349562391466452006694004181177302797728494899105704364626199525790246820508466996361999657321639418306193834839584509721550226632636421847843411064370179335764112214118064283434509971513161958548390220263497910782040449270615930467006217272913225045686909870920029553356141501037383781408437494669050718394809359519491046316323257126307898662081476950982583451178114583014745603322549243027318296160911583724547963303330589704931513147854269057250560370821804774828936501779949713271949852223037151430495110498049096698694152255631830883735947160870693478121873803429145925472194813481420202176986505808211363791443332748317686531042231792715749812916912469848931604612052704068869399108197165012768090063067619520286902956403365332340318666841582299872399520980261031971369698411529288721056633946621387449852318324386064929340884031379155631074976855158884762054405009976493046027458869718966599439034858754465555538314334151241110252449019018755536276709600771237845651786658354406283238672275726637139258024267334840125649442023477774754720468812869131530158849835849181979824061958193379788873847336437027592663872660840381436223780568263966838413624610366420305281840459926064674975091313772016589008968306962484501623345544955004177431848808409839324647305777325114075784639172163104589503344008808344425415647354022304453842544808789392645072902959609682813005589862760778229494208132806265365932221081532063054062004581032405197788988485086521082306787305996968791899794970358755520297609273803636338765830878421603018788595060202899092160227108987053101856525591689837426264342963449497230289553071484007418253714788555712768648518963424419443768455932731364735377272252086800517930442665470718912658145200467944376995628758650315805369103213493321745549530743812342910462167771732584186571997209502641188807408357992103171796534662417013288393701621363058818958134150793346654748098875378471040569838740504223592968702292021468050038890652349807592218387525435915823976405369300166166897179051967681595972223994876112052549237731393392086232297735864769364241572521037776079561198173052768856106048684895200771160553189567442545641109131774055358663432417770035882653927184192397080396124211019790970441831687385257549628474194819614133771277592526289738705045849165360224789408208892427503629975348006712327580686584082871539147775454258407302122149147219973997305729995562051880601954716988419718002227964953033460173043681476370464916754055045490673882024161460822055551615719706936343404289762028978277542311886732686985727903318464617597923720453833869880370682871753390167271729900233874954353477003678014632962100091365229483277557520579559599789180904783027620708514147839555259463716909448304110106890962316307447052820595439972201656421526353471581101920196742528207121823437082663602560840463197902946678330104574361686667043354284360868496117367991751109551757037470407124642202049836004288624668951024167949830099362989056111261912748760673784704228753062395560605413652279920747746345823252058109406557767083481099871284543045770348547422017982581749706710093335559040453161949751129126340443600499682137658220597496912521557043255442702356013751119785409778773989130794499614066776597777067705211011531171358078902943033532694948411917172174552372201992969341304953011267970185919873362748503331071630135515263509399774327512380354233505835448282773969769357184797555498420414530925308751954822738950128168738841795704573954268744701991931912455925950674630846229248535821219861775079746547647843487981970808511235674855383983062401918777691001623524820986643015298495702878701235847039061116784144265658326677577233653977537720542364016825688113573874796456229510751389969319727783712870659502355205964725571393955529340653226754300087687303778860875281842493220166895840639004781441763374793083091737548483322757581818980455470772817876548582456962765813057243498962565928975456001365298688796444432066053841484527646387085128449181550432615792460466057133177353839426424923055812526355343977967020867221454275140435542734355550960658056516067965794223703246308595420874913778193074328018400007276141963218902617025867640145611804483266757302471678903242482927811515424142413033694826809973897620766420769031010576321980938274224527070052436452126590322744995034299889853649674011728164672669232975739534220730980577615299181401565266023258794034826049716928920894873577146299414406964822885674336126030087807744106873808150826031948458947979079860122291727653475293156482022786426359405638277612865368800995694341985100394369843677844019497861013213498935716355672869945513001311060808366545095872738679419221192201578423605776838209754761280987695475808737960963699930690422736869552879388725143852943724618415588825467424177699166361531596040623518939340462367726646105562815430683355003471113072550006582122963615947392714237075241493970761027367101652967267874766026654169014872178929325118212225518034741239294499995654253302265691782365088400901000723421696269522264496688371854164355444321541693853449158746722420732744533542783471380435101003779818133976727888002750692068456859315651280642087921980285163772660788217993753122358193638471195522496854636663980388245925212839682300320805395411669875260757048130643887189293669147866525905354404903632747323372702893485230971550294731478096680871915872750617976745002661373156540623402680443215037826623495563031310910100320262480104730724157915384978819892147278276901774994439333971173430287569989057568422140278103897721551367425030599568637507266939517183972326688056608465711012323128703550762152149789992743631176230708034795879728745548730224781113879514754798876197513318355471863335844498170344008091076098958862963172092807674548027236924077607282363048231631728316320498834574975620359062811106439879995811339327392837981579572787229555012043719034782518200569689214101820666180946082919763376622626588471630835235388079075567642551510711346074479987779301030439442470553636942779304924108261043375862713489893860127397961317127172581387924184099181859679028957916222412634109960797011980323415618741080268225422756291105586129417310265037017338407682877611171234288132677449147089161716344137141298336898436040706981130699757503459118440701892104016055808299061282609130862652578818398950444098643808585169489449409732365867787415376413447427745819991084369846192410820567573960536113628694515630903134278219711767132146497945453013888035498417805662939975907886249933960238974039589964694043579296806974061611244622901644837888540987578136290917201545000960164299034828515459333165037512632508228288007116912575255714860701985493526089870386644367544411475866677759855365165939758199649114105946416375579715604925324670726752007633938601147274373999281642401402960225616781759207424084523437753782793274240302026308183909494873890386583755275398571658372726632573401837681812356409122807469903345728264129965392461642954349924528628333647562367976010989857277827991068740951534649305914501506517671547848780779795018782886172357529940075712186576860294835948562336924889735424328748559876455121087642245218537739610949906636213932012567288915899759321576425649568381416070459471682890628878691188469862432386576751062855362510393836205947334747856954346183240707964821780152327425247574915197126092248267090927321872365302030680471161131686225970036838647704185636352857287389013483368505679215590525343710530205302752786199465373387489019768509837410598832976895374347049684267872270631206655959584166992480641773343391567535695176150691288742968667803196026719165237340907563259378809494129509520477866275687853150504135733310693963587367580238337384366266825757735312381693565689683592010165622447455330347157784353521752435477447122971284904335131222209180392905512609536200349465998075649903535913142024311485710664708262150544604229566563619538680559391024061154763042744938998001434820392360891134114311982530273233562299504041314107801684728502816842125464028718869199257863957062798749851361248647529620773893421712152036550515943096653360862654989332078899675177268269173142262961330574985381696976956907628457648052171900443544057777544061723736853745290363760164299612916609183913445737862579221436132231903430551442415421452586152895815569336052434616958502240247818475584997848228596551391580307343579490641686507992159103114204787315857690727007720376569209649333030293867620357610889177668284173951298060537330719897921491939840503817521862673814032684326630482449513286863287067988676162949822125435833995149979764496366906076358036205120306214243563667142242359197391490482252512026236819597710604589335595623527143915041321458881102342321356704059742429611452451948397687831080813544700287961861532468019523808176737849343713382825495553117278639550155874937383901868126085655113743662121891639075351596648763921650208693642294550815974817139559152679323044058567717640023848480727984168846521965679409431117783857007248130291777988612451465500523310038676481503897125142433360819171135408701487311951314544348620280032343663395229014998412954134738521352434956373820154675871693721039547341695709850471381214054360827598851437559564757668810256397960976646641687177995704822255715161352391127739591336406241073414689052760890678439890801430153153432577213030509667079720170315186546698955297720096071935315462519384886288502551004892823990470632927985319964677784553683504339638175018638903673502178361206344525306174909901736712392706809384931993249805881337021203652850219404210346592958333218207530839021802237344115255297658157724317288668504833486964073097496105020672461017203535269088508847904133218667960920533401691299039388724593614849816421803359221465767812748516475339939020682505750208357172651388265604109402277442262489684918102254195660495140439348885986230073158569760195129731260282866741156173457277579789971638990394362213530832427870154613803073286612748926460145103005573346026610143033095667828263462775596184754972448770275147876836294389148064809351751592209186888526678981483460174747840425809188982947745929770285076973973171114782827984593378149076927150817092343650398603489766707243509600351250378495708041340081554770744011555030053331487305060348930141327495774392311230563373000940405708080304444270855076475109265501421522378450843928524916710320316991041609119431648348199874854009736496373118055724718968296149053761950172696420838404954272471467713099519271474113166836705092111425020382253923720842260518564284958794413182958014618228368019509302290865765919432238289467832744818092874241184455607975205316168112716055210895547509111415557298945773377177915837272405597030627690989284926206257658800887329067637169947798780943191352265791266244901240247134060616147915958860749627356130450128173971405324102569150845205606289099719653571940427022886265549452719761451315235448292172680269515826907673809839530271453378472149246319326140170870315136222940757201254242931747928391286820579680435270766902808732267681899252323680296690428800092663639644587388796649132117833506366149535855621074301932420669483628237828531985981548651266531288227731285169112990029027150672920850249887358262236737731194180101618720711025042976992889901393791054452300307615319980013762491635168049175678126287941202621990101456235146633775939766216373759584098694622106288872888953170713652340885688463134893549453358248968787434187514592466708005129519268270238058980169935399747627448499437641701346723435292445682387792219738162134440791836234631095095633763360654975937624275447025670961771258924294715117213431031650769247682011817583785320207504576805414280018588383112283168791272593774502460789488361872224405451893833667102303875473694660874321147844140769583455532559389986824282172283238111116304816378167664544502701395566391497623334746686753771036290926296056854616021563057234408296576406213436108144441786682714646415614955715965731489991636969281990326872024298378207833188191233433532426211759912412218757663692642345265983957628823457977576264444931821091258286817445596291371087874390131321326954201978809509319727228370242664829477505054490604864731120972444081866903199246262563906778786183827599316776623092812482988659142469964565251874806829711970911710550380009871378136581171052525358640797811511658547846864821053935587801453519334325485019177422300106728153864443536505210712387189315556033003953436307151907385152425555936459905880465899539704744497219433395444099730289395866586678408867943574566174266826067109595113416043830928963952249604640605083584926116123477086567326082932431608079568996890422620912196054915547539084788080066189685533976173947435648136299738289542222025221377767851094199538449320862645485450329149258442879413085059169364639250259991918404969573750090639164684327322511304354735227050228877049666274321498115276745294636169209387912192292878940762525392545740380488844095306009005303151573688963150457544498803948273451665539010857163245420845355564660649972383260099170877809920707634530284082597556850101619415570613264037109252624382446164747923960195403037099025009734458137470144500845521343574849785276137993929752698475812220582854583849274346479439582622144200665122212718397503292294366565324631492791155929991576096790551483144174674000071870415399038923320745468003309981772791084047201687415750624784498045539558097816204421386575738867357095510328688934862499230505239924266547849359714335395445954171874786330763497952645574249866153348125186295256015150954267251409529644560739872946408379242482199499934183987839053654426501205077532061891692324670048071495864980835765726394678575602156018948515307019602836638744200987144727283923084293236664312975047564844261657759352874541020815972580023653186616504155893818200980825925705014976886043863671041221851575188416474950679076243068530651952346376653104417040390833465093752084969369129897554232485912490923976121422643041004093144842120531859501427171077559354225665839187234010964145430513026578004096838059705506600072784766131641614113023371057657750414114435692915407381647505471609756852732712008345944899860775900650333252058938890279822203733874883377407528453598726316042974129484103359940893145129718643985227636768307298754445719609760843352030243775114153786283339340902937528073941295158644187579309964658702148586420900852276631375665920980434288996449733811105480774566015531476372476910543183993102278382451298164963956018419878775714651668238334165831081554088380948313015240384133093594578459943102088764337356967012098548695155923905029966330881524868511409488080830625408004053164724020421957433957705918295537283534029995651062929484385128037191868914908257975539851581339277439595867774038191990756056500172641926549032356846065413799977707278498359324064864550164330313140530263584518099140541269614073888609593231045948424244160779967227758832413844941888790909710583105635919619920714630947571597043390286404961256019154321571728628332061166090192352472916546257066900118913310471849088245057398011628419183087542088075977363571411580571514205001576111567189547606488951102122422069087783491154818096522334620386527221244658092859635222261428513223743870529255381022761288821929893386662128411582941676296972241927093925020490723620094946986296394974078051091313979115046876314220886149221174113741354020122358984797585077839306770320222798895398289676928385741581177635256336031930596828205768834113167694460196154834293488184708866016535246508914067574719834438730211344087047361710580513997498088243861071300052734604283547194175545849655205749602737523236379543560569250854918481984033069046084107715775245784245097780462841723772676267889129901278609172017261142081563001250020442646186659258572227460953714354895586759800578168622326600243890718673844161187815066107295920873729081921023324171616943384534091826634317920604207728278997181188850510504249580759224340407387235577139946145053079991234449431755010192130648566713178362035351972167290519510737552555815157306450180383517196001809875164462784331346691441134505917813099427492624710524221020790268213054370320644362798038394917455936389590732897779432926547631398266505083562137813462854143556789535780341350992674410131203427278008391828797229765081748405398155529143660182501464084866959685737135933900946671219966046019545928523726423836647042669473960299672319903822560948055418709556257660595074540646175962862943149195500256690876726070728080756636197271626021766937744695564424343387929165270933628957886962387524578231829996978739748004535925369220599374044728798665353358638929301718478191136952310471464697435888345385539407060748924662841913539467781378344354177748087812155580577179757830290616066632878098600822440714424110429523114191608197601896212643304045372404294996853900215841716657177517342407196279368976106785335612608961744259309784944137074652463578670814249883226677083682535378647607817176396701893196410214951857445483349821592679474529240761760212789879796797710307273214430010669081965777204766173440203318192178096031458265743125905936214058936115333222396384622486566681135943160609128781198609938772479730654957960811241967089924852711069672736839623451165537559366528800913429140833588084699935608631844018983570270987471619765949168704125376288291671335319489532559640623498885276119380890061018240715299549887641408671251516400551110765152107590127954057132350613657668823491670239502076087358021287678561502361596281968362645785517988672328693839806043593195516461212599044896487661609444420389448458958159589831641547802311082472055840436959859205353154002294175974903399647998488543782037536753542959184103409058602941409834826633537749743965968039322362848662595093626882045395851641528468939728935412453292275750758354529961561812280556804809896159598619534117113056403511366095092505383831575476589816309119891530921177890227471440290084417986238542928503784894055083746801260293661634412337610078856533615048349153823682244506155195303505147233781761291248062994112003027500638428296836760341525042739553695942957613950841446010909553224413280780691143675439218104571753128259552124536407607429299132444479644560689729752500437858199340213433296884413844894797780938135450687698197207377359076760261321324407967058610220346403847290761400088374687054277765683970273870627629027832500250196863808857212043662499929021123507806860122833145067719012657493627205600571129061911306913469286814962783398432739608185400312746613113764703514889191127451809442583555725488996515075572470092448378561820383294147276548805980611252489767634944716756814171036916778238671766631807292351770044084378859388397509149145619931860056426688627571928877361513929260812253704199937283150727397115856895375857833324310419086056832221379080621329221572358966854109719647569587196410425021486461974719777530853551370381448087675599586815829655095204119842211234927024296596759649935375830596145584971186288355676018263667825401415527064215314490233771205821170464983913054183281184121604952570219494876687185270506590563978148653451795676980978327584394062066069347793124248906682591951607307909070462529534171764296491428351024878884131199582003107870780217470409690966975447837153759928690614580304010663356354758938466422388672113653172312460737168144122405937834685217034854974567679778714440803751928659225660370611946070223351369856767251681454366149100979624296502525598736572346531469846120315219916551807997596356725421198347201110841024479453310930060953230079567894868651681215056654540934821964115121753621713689080302438612913348679898243255994926472395842464000462872715720992490034334025358703869013233936720109134345625292473114903888014389609763252939134503245683244239263617803914191875561345656102613314574838914112429927090808035907133485443824568048885446905494808638681884216839088966024702660993526302581415771251328051250319871971344102329752327127611588753263657381233048807846697379986146665696911563005563491104969580319865473098739164879286366455661225302223586873314221965318139815658982429810904059024449799036340407087137873656400242058859261384104216970393760271332782163784802982941410725898232853042123158631470966052089981968832779564483448898385362955079186265041429480674161468897933586420840379643778405960851880006785010248601746232456392161852926029244749462362008030426620032852180579672986664189773534285870657015277140413930077580900352220296741187516265818704515221109663274014170877419427499409153505255684913816157865892325879404595391351386522815708864218512127837642701327567751954144869302751586862144495171585934487332522532789971693421384220592050563325134192187909824498551242577180977474879924221315480087197418225319744075721052813060671943071016066917874598634213612748957132570926942791898713205773434519125981203036685627701919825291538409973072690324811233058513267995704255614874519778798963713900947360118468418655945114429483767296378876115863513740804618330135146777420359872791896725753012264977211041506613016223593010177958517528348253589349423541327108095700157778571040391782816745402486929499225358753094548909032111488970265675847512242457680599089100163580278986092255546666620273700482170557985296439490029942988585249879333346161688555086999880223172666306038184299975221903550987960707328241386685653134111992201021739968575585752554103426605398550235715441227835844693684869167247838453418562470655817038998545345734818517677673551489015122296280658375096924575251087475621500701476214911093614941135491251136307638190204576503176723023650192173474795391202174892291540446052624408466816830815790843851582651005417691865905840475639779936027346712279932774569968556749566728884767619082376091262684583520560203403645365380445937479414151330927673396783545939748291481771421964477391200968793125516044383416359337720608631179958875109969567687119886437089609743743696221904752577243084918282643620494985977136808201853911253525963530921360850579757485420495791352058277246175423269726948695431490054703182006570998423843262158006537517607448201299238741778758721772965736999741944644695757622603528174526895734047152964196658684297026775734830196137128422530896013652339053371534859954363815442818793295269757026670112190055082520085858194060108821928950030655025130061144666112300553024268838489308302857812312916013594613909779164075417127437037539460177249851821952404391684226878328358806422847831579973297880786292890210930765550301566190022474212721345264727328306720824457393184121925213621913844050562046990737977080760783292430730309567489423718546194576456514281942457475489264728310382361880810517301887840774773092890415358104858852719166807058466263873011885290763331915980206286583799620450751728147676451921174654459152680115926331793900894633428782918080920575868629357916510971945258431861878825374903737340440757815148316132569656510765147637460310375437111126847219520848287045603695463771015780884594866858198721332967281139757482160677043704876851279002190766396173702526362639905473019888670335487703580858856493261340796373478425499674277649519892567268439387547671181729741590805393137900078438149702529189816261014448310944118630091717362741673998264364115103349825556159741242623932044941911383549103986375248535186147363320431256220618421205828164182182510969598202870608860392187299982808190170815849057215029291886889055104364929630986612712863961711882843902209892621362824720777654532059882122745045301475117419909355375925795301544847702284974028151776643200712073550777873277290662652272156992235220338656824709092997440619403762799499150222971815800553751870236045817628554296966380785890548399575111186225347043321581015196163746687961790755559911648173888667726757192559943074829538527112335140238795118916271097681682690477116340939371084340821497436247022253351510850837733722387177570236529872408007728354463323737764571658411994775514726637807977808969927452489287755688503671043413273377224841809388522650356122586809579799111316481559178562341037718387661028848806462794239883399657950809624517820926531666839403835670056067815449560191320814183728196154180150227625270584790589822160574095731887314753383263768037373397106843066878478033791824764193236648993525416740843100558432603361704339755889731339201485238112270778539106747703079486860909744085903286764767604931636532524884828886092169520208367713533154252198524812700425927260666082524870663454219594361815828706026181297541308179564263123478683522406604040053179059915847386003591801949074938347917631870317381836500516195450853824842685361017455647878212607761288734139953128815819639170702029330148598848278433732660190834423137629925443284978016604457440098138462040571388752674217531143026013599034568503170355473539575227479592489616511480355701410462940292988272204761422704231865459585239392155969795959660188109293146589901390739350109213690292520808822639894650050834763468240297370638334767066348234089413965322274584780386405989703689043172044616307038695123799206729617658904308259720464000191261219148631513230294141022849751087024841455494392100808238125354372679674531729320937445201345953536668337950877015721964389090511312563365874530206669329791702747359599867658513288873565942338619725560146991320785279911574995234378632152935515731644711578030781905424250423360509878335226699535862525240660776251019780036450006129429683590547976421981372536455584166618151998384503144795406547969913717161865377330170146283337988016491693478061348163172870402911927105229178484536682424486427633170685508633095829085910293982861620863401447126929888346494248004526015715562369460633884004094497804254336780540781328549096174515838272344971942849124104683930254385963256076175702267814022678959311405271889612732906438396895992852850276686500447808537869990575423576086001910400577458957160159757446099303990505217976018033785939307144526457578838911942817676552638084615060147987868688203694129090049358481733763247455872496577290641149335979115931361603588223141416615094483691449180845129096526156815590667836777473038987744414274314472330881048110522166552171569050949749287019716540212252131749887314620978885350111740396080293657909992834622059996028126286087595474251739654838555267451718192767940179230912144758573110166200099098042761542936443891011377121604280426582685496447182242169518856006461042786553006166296168138440137409523939160316281872551354164027537645601336473027784375420258563766196898881790835773832666050535780114701173166534895409611942609780943535253200261273290617472461315001043260002217862464763064642417147691464601259578681663415354945401974015932433244863165170500630117020722779457073712213738700435691947874721726255248652498336365173132104094822386152349559027765326644196428664873422429918065010397715441283384352836367697584154826870649376470420031303430689837032638787019489216067818176513722598936606288037169034955900667554768719857748259860535322994338763893827452876493668294218042412969321510768765805935514250784190433292284528498272489873814263307451053213340910715005368958606508723105531671989844263188232009133929297012735499818222617046643891038401895265717904777393111464495792856800676107632687075160679293301624007187283041992004698713107019278713258144043412062638973625574005772566393659524536693843589174385139012013457999459310757637239518083471520436730527930373235198579287122993097960570756080209240590225577044569812723834771711859372290011111278074970988248238902556841689964627012592469443475080154250649991893545609675842922321578465363433772443387072381132195527173271578282433472059237232029912994418338455808213703830045111518181638049492616649839849664462424713003465054893059110874338672520834109908782850176385161721893774662526242821221032553963093886292478640283574354875813761715845422257548677898257127082492577175764992210886299177595529772336826228792198240497883160141320369520459866351096892431623023339821898389880124027344093148086208063938878512520714231887673982051040148460060393222905487730117230445863401881503690361493651901138673292274148451472226880993932807044881697603526275711444223194188826975109877302670929335472154739451088642241930748448762255450075130880993572372532082840405644876639671034331772391163250915561297358827641324392082738257376527980634374286027425182104538823680429186019938258511814496220345915295619830412869044471179595195037927614302102326350202493368363684783687566853503434200064779863042858780727330827254514669617906129247429680234168183031682041700251655563061648821536915076113365971675564703454763848371922092325536962247852993187559136400484592698612322369316169344566945725269592977219173450480661170124706142594938191960550748341447646401416825930015009114411856478220767383710091343709882109755214602951464590276855747156547928726198472137552859756832032607534061702835855917028369257751210072617063693623057324309187939704441252402466056086351513527915745644854460168421325996310296621023963441278473548808317696427888107553519908998303408799313432889144819558121670072554640554230005015412684775766675172919329208480328742896519423239864484817905212154162657135015255661426870249057050763066057225534754949500209261448050901668747557618969589951067052068407111749098812760920272194554271097516692536436480376714551778862513023857537969168931748899521572180095120586638613125246276400862607040117953516261704050832287429576911427219173385723000400086416539562309114991740159317887900465471958478206999057487465821583011032296644861686144784418508927229308505886745152303307777022141579632446470317185349148573368853476893086094216735330167127048313683996507901929370240434327947159529529105166510055081622358891563670487864004326852432443549100433987090911294150187046493520881703971164150779475157445771309943808235853221884630562911545210566783779789810830310983641617928525939438925183510893343992881439077232967606026857989202856473460435410927963781241976230982945938474582605134243746094516835136151625272939810728033256886132293372043322243459710713942750391357355306952862626256860250083440439103142213136542943071848067098205489161746877120444577915614245766557047842733415486203467404838472596407270986805597514080146058912880160452519725535004943969308790958314046418144702629206838824596390167909963934519567430473547376913335740722866132628055751717451190978763089208247285351976505788239895219817089255413054846376542225428225217867729388525934778112162653272268823767224001666028878779448154140725520446619709766564429196897075358413823323512194526502515365738192542258816869298637690934446293211196076229797562776866803450335575799764995483571356817429917292716960963685984466371884454603070060827664127524608499588914098333997318198892376005859426963635479201773466638751445095459920071979279807303899316055942334576108924187187536060810295069632056159213236228726896166677612316296340927505094710855351951723584744067903738411409267667370031034657423065514903604140153830694044628735038546236181916085432964372813783494141068808014921583311254234030417191889288320135477613511970275110238121484887484457039244625330606252934149856131287166371392386548907083543388667702887580622684451041354361903343525556158852144785675822904234232901226658286589712057196485403126237240937963294849050697969550822945490891371096143086618415236514235031643129780223703190739204192682125275800366794919839157693332014898640635423871872217623849087206785049904090402024110574742853742050592823363947924682131203326005360886534464684422715519942912540771976977345227267924813341923828206878649104114135207965008592082581846744474184094546909494798307171736853911141328504308094674571220951682706399822781075874625439984839114877075832945330431656107156205586859527638112001374316701713455724010042915538802452981526768977923351292108562633259447941322090328297444864797291980293127153831291333071415854655183986218707046702161399350598569540286865340868556085885457928666683336952960886896240949035480003542216412811452998572534159795177945733040495656848015832326585660104209162221300987617163855686736129815782700002833859302007422453917155233410161869707394539425615454741794925137763819362095922513636483666106467249979134814825105023940890047283749089270172396173965940579281119354112246043929322029382483541382152744618671229798632617051422543091784365764052805712921618095212525278622826076693989069608370340658617794932011311258386675799430136262696127536033854711979119161686345097780217700895431387806619105347770842084841023830892231643394640893731358441676439896494105151057816176850239322639095280571359904052740942179161813367222288401841277366964431249522260012180583356415951048185016746464324505679271367461618512864475749592794198746835948094601455318168458134610822642405402999979989571780889178238711422950840058630305003167331437981167353847765998074248374662873146874571707737107255962844579719415702578572304905163121383926956735811628071066812107346748885269061216365731148070293590551769681495689484695647531321552569520327640968881001231870588718865259869098926513037546713326778288816936474735680326730280078688257439670826896606017646797224539577500714446971320699508077181780528624626652007638039755870138334147964725931534544755016745586004047094635617642282373716838495011864955772845541593600349711038912254437339753619453752884600744200136481774539737644914538041086826793932716563440549926494714352812957384329795815913486982812321243614219066204814097974549466264241874003781404653010393349878024475688050752751810714605916425988123391940393432582946596291780740351886615223330066367616300166944478066491200129590529921852738861940829847510279278375009593249734443441855615196076873348906332695757277274986112758447529481651811029920247125831648261623694279167335564934674958769569113189836325888324877246054447371814835708754969733556636743381341017862573644892392764709441498030989648161060836533056650157495320377243628194927166750109425837350765720856504560148627016399020884321340843419191124229348863856511004474785174778198662270628890920830857022411185149145289799162348598800196116581249882533469557341101858335182734964524599374495789410680765370164376628071409763089516073991329043226047606241413115642781153052412962132869721798306857801292915238597433271523837648798797394695984317371538397159712857635782042847953437283554079964471931907667975468814488068718340691254189401229767990569777930520791922984717608839196692604871427905514089217452548766297965318453405976451370476535020936529100971104168584045930431097970108035849696881657547625352250452507460287280597024807273944206320236493618954029412875754229837457511646807412969179816381688259231127955576513612389304452994209469409816195656579411970110347939118368829996309408472374170347674520531246076116413049886608670620598347725624664805560953558719159907480419827562575944184107534671144653616344378687411429241602556160655353082142220761681616216217834938577632920468829545217255236429017411398305382170048671247160979804985921031533048423585053235674892501913955985074268007599364784837799254736173138726387648203586689319270125833530555849211452704271615663467499554606852511308913439638277559582700309202801705748786528215229319698087954457820381887677526707612985909328987548120194779294177914149026563080128777515340874208764752759018199401568352704795168028117218264496642537224851662773733157589391997880110681066972759303977292716320745072154895083163197289294408616733416246273610630887864027604499849173860895807108087692402519874829014736033074131990335133939593590250793858384756009944848784106408054232105871500715957356137339479529812688101414101651710725175603799408361494773897891513633203700402485151557599506381339235124410017611672874192382103666110209815622372495528027708586894361460854923651375320392350436536890215304689974358040726022541632129089273221498318704578806791642417146156041034390791205355629015475635076967197780050659157050025262038936961619179468842225680976502942137427851888809483522590598481371540066244569919628610680597522658931617490405532114135079014402194543714531491757787558491461323702413745426206146981979372910399860272395314105011938175698966508647263808455213805880586874201730956216965555038672115451017829236164157115022374736482749486724392458648616408913652071132506073461922692421268965196830330099820153245578094549387597790631134659957660815446605947443897607747702077498941139047761004085197841847978955484287619905531643323793309035075994731366882166580957940913644972890449940640420831741636907204371223610851683662333858095333778215471516458294590090675077360748715963388702503370789797567566208890929549143832349594679946577096865989764938661629435434724726496267303608566115829390448961629597144170370410888076710756031633311529340803813131928839077267129740759601470965620017494513041803133594887035916970520704526525055940389033610058675503738354315780087427657645903104617655516853559558667385824893838122837005327712892356851870009086995644487467019295878209093809361553585989314635580740130431063584988019823834161405922230762084155881715742689713973753126987687469045622447416152288124455725427104931345631944852297148719739101893917705456721147575997727431341364621381506915943664827298668394837144042867822374668657511680397767902533707275555567306347028509246185161454538707674116739387720713545758703595169741615638445262420322530614305247944279754300917486054590466854450109354262559856134941770573180912479080199882073524026093899869376286249568789946712080012357824898234107622858777284532209268461377299573120571154220824725764952838887234904551379504105443012296703945099671979405684576306365424271769641162963526675583558775607507612974151411627106319990025542549507172462922718995496749241616035440902109514341343619424148577785234200956103547129059792504658315284177333914828069873459774446139158634743844432453287342838780798553332603375517393165114001467830442444246005685147313491475666996028141706208631861984626214163742113507624644658251920300615814331462564015358834836428664123267482721645866817882619144623277191142344987737236340850416799196717329207283991508886298789048333877164378397560884747657265842130214842715601966837738540508960407475356783688583397502709768825640494996017214037884478370899310229653985894799231723889981052364782242003387841171250802069425119317696058335196715490147368504001617174853934510908069553243822640288848015515003866604701037704472411288233356400905914332079226420375294755076073924283405616527893595966433158467088716773888764110630244089005069335326411606937901608918257786193069720680295682737141983392150334718732216736493336319918369937785639267868561018074513558919103990025914759915692234248681453962445390831235172155316361009056948263673641671849774322159109131520846817242520498227293108660401759280732988156735655738077468734840453175228882711602246426317126472227595539532352411822485240117862766237221291581357060682326557161013943962259075446913719070186212654361571608305593849563312974393295289835563683613754743360431402221885867073178111688795467365635706717035429998207604843206260671112197288813336516381308902719170049712259538639674025924075304344925308304530788447766493191770926893206151738895653780792599596147765198976605912230576648112711153389168862685813029345317210354217841531983840447672436390435965991550457240458681549358466405730855049682910812292251863976632270861330558274907095162377404513711319540418232098389290234220800318071579269516065186091035066416876662362754908782387959703085384747926992382434593805032800923222695005839014563600850529159313846313063175906860772798007466546489441240952889742640007666892419256083668514542031955540932926147383923584693047312069608515059866024690868808807258206617868549587026429583719867612704739697313529013323297223207640747325092759403003258272379582475840203763034225536297192047714711824738888947549719657551021074215802619162001800191816075667458314173963468024579685596691634405564848768194443501623111661295407933061354515611903890522295270270540761283743470925116967732874194731553124751935683840688944265913751381052269828513609863895721848981024367703645798721532868658601242254688760918299634177730867116191569933408409962584433430640204217385843357021875927525123250385736595990925765064776984271406650417403630126665534278554096932015255562607602376505942804861546823609073329222677444168945884296638116239294621646953180184489997633270165312090932793402087081602712928350723249418871138299790391943890227805131239538701143556842694259090498024370289988533236099288928002090949449842091702523021922103877706269019103080425237319641686839118482746226553711843630773017020866684733871845284171642594114302670879833965890834156152972263587387933865469029559941085589559131979943047295459256497118010268683510390758261260417738077710911168560726276723915679468410595802698994464016470957343494177302912323393619434133526247643221478486358582497094673904278577232698051180476665351869999528206948007720801248635980558092538408401948194135760186827394276390899756065436208779598413413967523301830179015078611381970063867171240164426822639108152400366540961939760117577813778537294241046422957543626349806318674956942534191996306797573400693565860506725655691749004533833214535331916702476512062519582630073228546591162577216383484925290660021492266029568913726266275680079647309436410278827147463327667275469967576400092813990056287947781548183816726282268854269278902168114634301245566031484560863612355572691038861547154872340764284369657102043822830438479645582120673629557686624300628611923112070392677891911882485518244962561218045507006846046233684102953062355022267564398639484729305810881513683814948171628484196153367880961870158912009736451554886246060661981364571820207153124520898328292067313251280072365706805886275078283079164455946546119095534804294053846096352350104069639745316132281633471962963294449534906728227382063852509005336322749933175806587189121407039367164251541459264152690111537664430125832772057484740800164060964931001849420278347036925017469809905166355023957211168183544719350078776821924843585080752502171450033840642347742507445692079002800110524840121460977437838688479105980513787014035141310092075088219600742083639536521210302934428687037556404051823087527100809629522979793664177923513263905737817915414815814666664278693738023455587150496386043424494729549466480156613583305815246562658020550305117482774784102336459172159397130102256477445028587860279398174046844250339291459991575448205140291876149883486925494741000456207941802119265146574121519990619407691832680567748587200799763173762694474013333956448238620729402595505789174680758177971496824282378395398587534303124864233517611784234056605502951766379692555401719355770879099423944397179278481528829924359041055746914408277385100746830419030716988583672937556238516621920301395923965188772528736021555896596621332558303153066518778015260092184086478600021577930282410104323897801364283695097051462746840823317731448202545537519941950440202720374302480919950501952409730042525482269102458951838038722770356046752146026637146546158533334838258374722487584958894393313292867964932639314493125035741850737318503469133291689480852455328606753077366771116794216277054814295683810499161497619939621816379891853358756800341547712340522636668264698930867179266731840825633897376770023244139578111113829563281288602289241673293821231277823515796274359220555532116896592520050692754614894098804953321497383633986218014975608380615604833657887852153698809556213240624277331058516196952568544580330977660632605516165088562173466312487065854586455698647347865291842518531086476458478220157097315778096487644221657092030056702084033388288134246348922376189743552236520903099691984439721698411771285320534251491310671159454719601039072488201630462790056449659110181792757544460438179033042110598372770808310085619507741178463517422305360426649319000844973127429634425098939269872996091211981256364258864072702748777014372823602427411119412853665199307145495311185881474582437542116442634916556762256321553388527726846511824796758345304860208384719355654316245923293452629098492257676164999121888367439205773394308210603501858423850001974529753820017270802675604256774156369899785306855413642564269222274319506895718148901732727643700705985410330911323675011703250702205646034950205642993509945707792406454050306761498678050403448975837410057780905906348480089135696114913314686712001570388685781748355070743328846021789847164421998764331952757693132235953627860877032228778490681556610531580116217631572105183104433638353092922781231059329799354049739583866264461869041623434465842557868660429568857942514498011778828168143005620395639213957985672883808437339568317080958538658944573920559654500072249499386510351952149481595634298912217136756947935874165520684889863361764382196732219852832559311355679273538487171408894555917279842676574867489756611804770033207900728736829706947164536179449400510289892010484009677101601603683434144277157025036256793093386343967213856467395400823181612454398072796492360330110135944669379033859358280877691846890644062356539322905699080519678267961515416096788985586295757445831261513155183929700958569292042137759801155042527526339426399128238120941418576218146276501451643893457381660735591646254919646702865217949240126062022832915342738348053929229863112106148905565243769308433935267637616930093823358724473373586583284692057682146132091291022201646503022126447823203495045651509055950255216446261850232027271145308226819738114008832631490541757825090634652912165071379235089984307721777199281985738588819261749262365368039432705976875983799054661381051657248834717745402800015153360463317113013730667645437946656297739498249232278226058172608726614167233136091369664450436836822792574150171698296688048721774877385255374026470770428657942449873525987747495734863468710346334636040537204429267270318486698983361563640669772909180632220675810548645787194317651407514668920365450671279619545431406431288667659367785056451483341765121365459163987597280116631215786368854592822686420417530701720672570479482683505884964265442980739047160873505275082987261254016855198849729787097644217596284150387125117071490831159755334312156678778580874832988605023927798601105392303751858374760227407235096386972480198464705139431908561920433907091052954098412525725840042440182238477710261040072993102363216514087653153847921675565855427590386838899025849740102329933490249392036274046039123308061253660616262112321958917688670368892177940486491582211516301013304590402860342816858196510563834816149769054447621511016621295676245534943826357552176085829569875272753156547799468010533255759764131284553400555438184267602186582708996594525166531814274584711791410778317216092133777295781582757070184369532079527499689160436061804206252850334630159712146684117786478810165673008370581636535834199514844281695070541398518101287405475228514882738243414896889714155529475931249469333626820244696521311703756463610038814738245425565119485686694686056486171487763254850734722277714541155489585186127797700267763337280554324635516700490950864222890044402248909887650696931368076213308659768984941077094468829961258992119961763026141708804000428682760498456902906036260925583437252320472131928827037317670222404082479101310271710357977841109418155884613704568533300380345314216768733295522496145549322649470752773905123276466739957865244109513756908717626530764157202651582286980746031962857225303221677682849068530153594495821918682733676060259819336204952516367498186628748758974078660998053503631248288456992915417175781159625015478046904891233197315875918574568384052105475045277012784204110159583091006122807714929627799350807504932507357107493152534256746699098105005450305777686100132451384131251878769816783306115155914236527032907866157423482322896247352332504016676894340944254266271176251005861891842229351522506414096128851736671330956864906755708865731472698883910714740681046060969991563156679719675763373523646767724421236114275756908216925821842814659514772303357039592540939448353098210930515772703623035532386234960653744192542509616775027222409550894084769382988321580328405599799400105205007023689527052427578606443986561489744761041438457634559409828454257027159315341062684688252121283332363542621573870404457577200002456551093953471758485927458535463925470374264033600156444950814815053094288461934407740903249105137596482363354565712574408026380563059081749753499827388223776087178418716178608839773610237474452269230968270072875404268853722714539950613877708385899068079236810082470816482071545486187126244320288809626374155250600835001442963366944789243852922461053883042116073626957077771816332641092713126825532073467554891067031667142208624910806668008799523070885660284349111239675370894143694175940620082710432283535532174760303093392752312509058418044944869746537571591615498172581899883711538815183394937692798747869996190762003136888900206885087090533725081136161142862263549074060232079871943293335111817556654950547775995441300366324585153377523082290393620909656730603539602616691382897131180195160626962244949053292072015598400158762012855740353202627253464116782709594400827563129139721660073530305484179375870344459455094577881302934660437149192724847029027901661494928953479058309729770536861596996617401673418048397940705250789910200726025967870144231699862046556776831912865940848127321887331527060546518056783601294406881309879104073204002542449350359052450309476008811474844513428565178410656076091092329265940751520757549884814885918188338705373252148154483815308662222255980036992620084182372421188866484803241628478184995737333487229369768423775280607514407875823645073741299822931764029169958915096011772892108846370532488615562369291209435939050587176385991677210398425210323746897632780265664199622690336579721569205769144269852760851709044838863975156843683474340817048674526004735041626149424237188321370519615452911204124357395620737543297486491319239180338489550994580572644611000787305563626217856757143791837169166583909755229667306697207185135938601177900712637818453112178270166284724025282276424111112532502732688363609098983903732465101349342207426148571961833310914925262953331346831914746530224154478484135308260240802197226368729811061744393113596002623817915715797780242918278560863959486234782506686559182707028476263635238680850171461227001797800110950800654393857936288993757628942383440932628355637204984412940002366874966112373123561591422300413296114317963142333074971066735531740461237529778287297271387247490383444658469464569711215077894465845629039857194914710027960668637430535931166071973318932266359335592918489378720041848548274643306669257024703593594539315889572629772142694595044585273695223439688796632862900206648626193488337072940425293472345206378744681644140835564559694597428073212153482632205453797439721674463408231831704319504479863738775126011209978674610323827369073264719352361840627247821507846186759006705056707667573169569537482427432306433922454802889372826705357601964125821145657010208088783232009295098926882251372391533961856364012942898750746516748928553302005823276261688943328084574856550357542691875605142575528400289852333619314829739618650003950085957471343779743236789471526801339699826981092021535871161737709487246401564526366697423922759792040418647495636561589540162761268047428718401771630261393589204939163161902270368589767845368931410198891700196016118107931414582040595310207832614557060996870895333168763933732658420851731561667567401598932605064059518205000805064380990525588367959509493977866475568379807220611589857009808883073667496049864047589899484032278653583858625482401126339864026038807698456342046630310281081163407072795792549507533498272597369814164808504269381107499835179416848295706299097984809921817930897171629292251626722221524198783503270448758182607998633428947550496922066675972395227938740424036486539686993672621880857607439451647693666249549004520635183843236511361423478714191679340677689069945171235251745296668288935871654746278525462625702832982837362911401343264512374566230157843000804378744863526296141242966738254565328659166696480112211380941664031699450343294607111154940764750599513205001515176914858765421577024502189116225191962125050316150785166317360766163556640776703748428650681266872584733252901890955556546877578037419048648265058852512258973456253073736634493300330541079412232606713782368093123539700691380956329704875502021073663360969901945504922911404452097695024287157860212151312587221560538248308997469307138865316656023536929119178064488612937835567988753606855040954960191133088943368872778403010114939746657995817310021380109471752760224308444423270373913405635615847016695920680333538868589516375374794702644448955117543309530262075083141618216100845556643936007667060443730686801788362658185009257844800677899882042918156237320069264568907687274689853668680332686275825493011202174778043185624566355497151736183349016260494987623283853431519354879579764436912482094340527602406912673549527607505334363179921709376955621221752931034541230204910535410616965360231022643365742375208826743064987691538210531446585619913978490312387040304654576009976166973762172144515296840521421224670878550239048830249676513267805126008490809146428839721541442583590977946503633030717171633513615066954523850361152078017575049804695864805260136125514973092584351455602372433689890302882614901801945807055037272474656839388139870266097763727877559777328857826674734164711090272615618586155320966107220111964760933442859876585704736425510939742926351511044856157615723550763622303488196995424178979050446400662126351085089407349268141613404771106969521247581285076269180217057713301830410409204039660470426153801832696591942046069554361559416351558322948561897591843065822946426654885818852741837895280065851427183617819527025772424287361072803325340830558294878776970210197823370072407675210183953716887601463432795330865516798291268689545858932846847171134767036723666979471962066399983138227316130297795854663908868128352019109598560074273988372168844954640320528561255952051164090076241382410657677263103828311431155573210497174331901531487291395722573607648783984466260346748430556411126177873114389613691138923177060040929483564583170132404308275983311749342822353057549679892220545092297523394631870894263060236332563489342794783009933759411452181953011329485189486793172422824987978501401836580395915903295928643226635624600852627554950923807879354162019497544298089239761691500264128041471633923804419053324285773922095444383312492488640654536841812963705658702251096349878747706812050723835065957290480867042286913335675888507507138177134894041473619944561740519277370815558746930117524666079805464374501164053693056280855240311138282129509492822064096902942415778923069647537642753512356149288656138285894392925759498654038977639885170491917879840115684688093010017590053661948067547020789709350685066301089036944780293710745401083939383013694637140857262971308189789384213288555354933385187992747974693835696609885908589234859983539383756612948478147799674580404838987269154658399829723850829488433587792624325299420022685357769381205162716286848100140744895955240668465082942423124166360684930633703389194998795236620892607445703113768606872452989758531174475768703285649177687219826199647573677376060789091774093698937044623740471244141040901028414382778654193766282001148298667335172911880903272382268611356149803893704251937736481674520863202224513673734889650491122385770474975086830669822952586421402142680524339051530573740408361308428202067221651935568333754209949174161679607389290708768412661960411271918288938074616880801396169229628971816648128259222220661185956298768043223294533403079119556279445969849185605260328679858039654456435595774303087051053537021788644189199011631910881159066098031737079865884644011413452209948830172329293581550996450789915073094132915694309145011431812034695834401056980557895485942491673673933511271919066914785639948655844302752281719880107632088860536608501743329719712443142547593618101608117667907413271890610381383807957904146275571562780799528522342807226854176001033367800076851322899366989360604563999488017000570665484868517511682041876974021308277658378008281150757883372049606939727374563833459048746817261773687728838493782484828918867624582444893991666096656572091207996045943879839669559739923160079124166137053742552411984076622093131387731330530488736693159130986651988234088497767483389887885626815029516586199212494560711905914348912340420591314811753178197798067151107838030215379954493910648886554642031109989292943655690899129234242779856867167932142546746012709640925598521808398231054222065630228700505614711555182438857495534545355230949130336121141150738049977154883130571124443189897314325599976334418650437704935531368172212378242860732770044822372494388807268151447338617864812572815053682963684371480017909492594443338706973683784585351909242136713370005944180548225685169279066251701065570853416128713586660061870193320137595766339909599803613528195095097842914450645490175654055843887684113301274255270275600953120286916601477993021742973512508747002973233622075441771161217802685215491334823198295983956029076055432624524577010649559811851478243184691662926007523589827062237886293811296850347688203502950027960452185057336036199033209223952739018794377902338405275683346336489778388313545205721484464606856696767101904491830989963710675133789207228267091456397045781028899756581464457520861774593297284177443298265078775535169288306677006323683500223658997868409961308664527374149505560708663163731513197925163949822882685729636744595590243876548339847687638946350762781114807844318203447758988171416382444482308852884121597718959315212114061521176240100842770036256101738929003521484584822575866386234502193800356267575754502251905205019504053893963910060484120985756197103245997921962779620857228232234269391450558123959633701431454450960938159473888243510458886295052782710748099843021844128213724210648799819175647710143281170889609705012612527459819780273655154073577403793373498925700843136673831613213493741027943612518846153117418098705620791522995758302736899985772221661312721369711295073486621886037407988990868147087799078188720122155979422731752013151079429881330383932777085287183373685640473676104703586936408628988912627241985914325164873397141265886275749045461120056645869449169946795030891125516884506831333127512467443322419635672707937866834997455795055168408864662023592992877687166695756797416858195660041384185743316120782064383069304281694932296769025761284990532707175418211567998914673440723501587969743977375606822942415555765666302262435814481174163597462766397527285329064938301448126361049278662180578137062581518838756214991074295697673312341286767538270281662726999190147643414543757868836052992606847103869059586813772499898236451118240252746213324930746687407012499634377563937265464396466092229816964930707740658355610936997216690919139027167497771840797205124041710225981715630249543383555316607348211019311223516203034443656836291053909365211430947410186290836774102351719103989825639305893445603690262692835572053549599508541667863210736751422056072208104097453672238382442239822971720114765597443842270211993804151687316640903499988134311091856068524186588823149949888411876115284802544209423672000504208949688678533222628856311529135516118765647246667937063666301483746224225423326444838439330765110523109879098145469141631319282356429429177306747201954029976578735896799971991644262772432344472842234019429592688033322285245688810644261372859404143126557387825655702125895884444703219286583939384264720255941639105717008916190652088912657207448105759624401203823218487107678942173506589615179957474768113847362654674308016669315449212860462791431698366364622554723802089109650875242661745627076155548762690759200883666168728073442140679711040731788385510623596029551867585210387826889240790382387436599761272484833341758187441272753208676497061359574509124779994010587210979106288063058823947162271425187461557322541679899836898585893756300691244243298454336983410903264221953770907188574535338397909789537348280704588877605261995214647937765370721243987813036842826548767629441508554896822413319726353454075956376014992721294918502194858802642781186227193709816595829360694950533478234252904116953087292449780315106022284977500371324290082178321910143553078962965644388578258878059359159830507283324331984130637690902874748395845560741206126561036401592952655343747379548152187122271322989993236830733934517461936170775772623820129766254688316697560334801812385442573734082497635200311924011933655416489975153798319182628515924282942341152214010955017909927083546934689154909454997316217899465238817723852606369035848209096920530688495747369060404529660090793933630042884587111520784417367150638334903656529386362694441635489902344616070622477912416301614878944002503578431293290584335647445938276733177857004957787834151478687333157860595376250255628880659768193070238209072132271661451351372915542391345095258883654542668961513876266821025288332871826895801411212444242577682268362685226338643425877576488837621020401330055516974174295739736922008674413730963592135705520884217959025168847151021619460185804046986059485050918460321520384408538361106220418988938958664474134592839387660102437410735138285595914740580998606378501584230787304525240023268683304991363689388784300896511804036928685426746794989633535019338596285066628828581728554290329919198356211245441331985538529166493313500110962221829387326464261988190464237545368959688516840063410710183655819033177264217629772157808104505879991972231395133178024143099062462028698174550067758727833492424602759779709093588047351336783549997550781173114626640576537955374076091943876748415474467563295162640270411134272460763456818772659241424454941177468394916245787009227888088846360964760986863099109733478752126093203196173290153789829477299270982213785151260819131993145402738702824722012647360978580112718198146062684290358900619694565206435546241933536265818135418485215472596832239050263531423326524401842411586024017984475882059642295797986099891706416520671743495830080728512887495405467812198795918680604570228057754633604700545313041328202424635781025256724959245923590266356899490982881059532764649119025969870576254929482794534156733113437893260419089557993424893374488615946024838364729802435395102387721779202192783901625005539507676034160230477145131533545749203836113353620998035547807657168156200512928212120844759894107772706325447602949545406425916611062375916000451336204530716375722925594432501934236326003538210618958262662513084618891365387021036458738331045578063722651200545645289848611789473117379046199865731009006480744214679079386151860248947497743381751474862396034858392960535030208100764256203792932224930017424950990067032852778844826436754801154273079747205106315129447276962093302991590806636466934676829486503447428099479153630280131207891779570614039737750175424986566062835382380298589798932732757665757046493992202228033638996017035402351367721577360429656325801600160768148257408502966302199812003941972844713339751070158862202201378460115142429736546379070710808379813685058692919774408405719133733412654685845345329429009638828888507348131999078522900647486160457746498639034829146796885091786099663959650722337499084386904107842838660348743536557216062722489401324370172546765337605209526457682164465200736998078082872859813209766863499276450819472157904922665742052570231694356027973430062811879066180637942009532996467888737492277366248875491387422874081020766221504377298470031614164211737549254221247269736231254795981321592896902326160810843525025563440455176858241754202906196523344797026881398632325908426608129673179438524015172826021363098290752379100555273630622960240504829019722694725948404950099704297902064318544986147054189513698227930576550781171273504051384744685221395027739323596896099922484499366601044971121780914692610463379678602119924110149759657754387260094800290224378397011124453136713530607564366867885789360133191722467812644085210671940022121936519524147683699674802134134495118343225593597075615936918515284661700673962102212888349008359483828753208628865832819000266686505393052160788635341571307601838149322672215876633402802797065715119012784499413273843105471739763111968802375945780167661310751223405475063402295806850182560534239595017967748100090427947699426773211988069692038448957952245309525180303057466401771950362343083825503698952304323084884232088836743677177661136824890060850071626358489533075579900213429575314308383842170490482304212381120450500963713845476325159705745864261960671297314173469644827797684854436306158026397288696599473890781742899563611171809822668478641591003317761926978235072668356577444705505907264494181134618319898161008965468053793611611690324431365558356451878302541658717742505168591390679573723466680242698090433556812711330788296236086708223426629676270153715782840162418984837471616689979081737480495331211161060013647335267574593957724329643737270812282902013113628932081519037639496653498637634573204745532051056439546758169875134630791198762874128726207055531418880176366851620013554385160755398496962266432910865151320338406080901558171044152225352671928240506948212947610621560300309438826127829429374150995721151141299281935638113557335087466868077927871244932041917405385075295406196323892845762243824503590076757173300804340892948160531717475220537574647001090143831054437785518825285425222353020473491918982543337347890980367469437140150935080295088981473103926066602469968738195449995237445508260515163753148961985695439465633633917087043346082609580832139666999695924297357172267584263902528517912236365334328882845483001787566992602221271943373274069754895532134164234551629059257032876798006628991814890414482752897257108036730303610596523337858206622941789576271453308963370586837629234503404106788123601085901493963477837300159895902881655022849356027372168324443098740345042529698370608235807701120788616895322692600557281279267496620416052340281894959093455088525639423096949607596379038673480607776008018355058492469548580425592712197448133582204761903463297594941501984719192312729050591802797157870963828292907301915302719794952351018130629063171111323277737300208394352318544774517313633726922608958868336675760872295761551852352040822125289161879250612399758391062670620656624341973957381890870408105805556774848260643210885499271526081960544671581689550234153506070850471333668689691485458568114692008483290288781195505564189033671430094993283005477087952040153889353004350863810328906850724821717407498691904536377983251166399093844637692933452574380814165082453686759839246790687687292782877939348767652482356026856258555281029360084372852477625234717254336693129684137490532482857945554194210733249637722599794080739974213743096341515084212697514995105588496374527380320480160520802509940977169855322334606432161590700523683635181256844552278055340782534091849958973657913098760612068331457056743800032764294954747584858625937499095727710607804672897419242599034294908062932977885063098145582124265870052531382557373846556059673969355062745608958729431325550523881066856219581255175848991092307333922126675570799477771823738160207189986354184637457619297195842073065005189903125470875743980503284319922979591174168070127243339140971898706659800743630961810425766224337162081714352438409132137858037199312411473718728443393238569516590417209446578045546834641230343651016962892214847314325269897755884204170250905638693306416257074596553296902252763707110068658588018729603639709116215501005617222136083279794826601879226650391104765679791678968157119393078076662251443133885956426555373496758138306149130034134058595158118039556784827441626972528943049299240086373542967586260374356591778062738939425729771226347898744569763149657491949771914807035478123374716084265011495126536305117832285896630737621261162116563634032767108749011574918451673588985056640778635651713519522362973791630615706118734352706574350586549845266931279938362851253541964375915904284820079455970992854777869206281738333483793502042560508312889885501849426497590047687448686535814675380196551918528268436812075590746711104399039831477620361427996831430271633970092795654666083451867944751138022459769551287928431233727180212802112660342950725580681013688493822778665187390141785223384862416687694608672728451164053459163249731042429240224660168587001382346313396098076182305455572455219445573493810428366540789984062690585694952733526522275060385805685975401690058549986290371447371651330802059391484774601990622944777406900721036103424816578010061560287484776309289645774376828668207955473379356729958663830388042041106398668910988351668723128462664800480198204286578662264567540275550380608829043329504198654663033472333667811383938066134695856040017711199888094286992998114343008989125027827859625627759097920029067970881619444258917008017145379074845072721858202403026700292710981548627401801108523021948837041175879151889869334549539881149857179432733238510258147484627324876706946361936696952940437343665846736231201353613777566484956682527860631318429064212983608646815997868758129175764449519651695553540061326769787573394166649685758127106584203449307342255530204455868428394020627948858343671405381478569977390859981173614391603812232396212857358528627447688538435502845697079625168698067943577443648967893621881061273553305193523122703147855714629565493433683676604921745957104506885361144928761339256163507125569060474778243557625759735039552241835020859641571927793394255784118045586861075147263969163735554305634579100150476048788684134908031377720841223890588906763408078845417433849641056469900223919320981940608557982570608096643298019875589672934567140759278609368612879841693197830705170184505877916639713287132279975021550958528812293147104718402740340701686258541600376764757640158942465617875820375271105684281004349114444288313809781797538088264845822053299470434225200928622976872518519625970794690648391920408051913323122136830359189412147222027535041595265583597472117586002587891546480504407522678784172794309243083133597279925004087412747764089244924507049532806997988408401039437336137449038663471356955881695590246991577986033967331979454592798328273340186885141183110410389002573352757305632393001780250311691518839114035216868157789423478023192630048825193055208652749404632778863063321043398950160569027761706373221290526564281484471388173501395878251842558933724505803003260953801513827979465157195188720619981748439067057525738647410800717450989958317363815624621556153136545802493730583565461789274666559458122152356211895283959711577500355974312957515222538659714732277781873739366613211997682491669260746727494353922506825582628894218747308032617787422308563387433465955179648332767428378332320879233825779549884205335418557913718735911262834692905590604629340603764795619150828352784261702242159536293232823462679540663825362637481030359470252007526432298359697334554308175685765553000756414423396569739020655731227421811396866644520715171898633202643117820012974448785603109656346358354783637512484733513919866112094579423709540495910094983770788390230504056908833930256013820617169130844382051932875203980321511055807346781884278030650029570296710372627119738262086231485415985248813331127691478958808560073065043296507391249626901633543019449448431608980417893451066648892898667957213051860171321786446671751036384544838826416791169353098496743989894157504483571088211895218141372062539240639857453387129069245405269318658068072689070663014194173554070186535044521647003458352965255126691474284638369115747801456364547315647858090121407693511350740437469263280188879032361668330911064467788528279284910522838478756274120585049021490912059649856204372064987640577654750626284398261508721652899620492433291573276052389566573540909970933571302453920030445123165690117405185518954837338673077653736644220035196151062899135330189692175363305997863011143981826491821834460788886366421246092665800281304008083673788675877863344453712239415151519989745924141102072408168076441131145739087725405471001507611825558225563086249480670160641749169563173814875161603924725043477559668256438895237494888874514291444918436300889722770799467906145706463151591777583302215217114741944951009578903238338594770799525304283532573088840811372028759428290161870851625201023835054954222411289824075001516857132222228732193147770349719097270334713577658030456496662362195403024863885767301009604751477454789793685356532291845753362473302161566998194330165140835129933513760051563110887228923703656567822473360216275122158476155252813029816485734271510181643891860937418082808139365101960408547834624921242275203210321562662415796083798320301868579748047149638838436686169430348348905883493267676101990488021417056017388310115496916342807694195928142285215531598959434600174351504585136421899004664505480201299102327208582167473371024925446423169883528202683900868350551444195934933124803899028002984107609989210278878575077636350109871295416327649601645931606912459625623199062024782528817598123054702350530539351150122285790292302656826671906569130892077237403169316543000074984674971229831567236813156153738657069810710473652162844133437997309509847605379461598116052846607152768260668469698932348927041989768745126861801733015976468498456657431421117740881933861140281211182041505534462488807789660544563766649123934710716584914180336750214573971748457754088572196248753539267972544823818871249419104720750953187060176452243219741702729607134119599944325426579023553815137984182699427096525170242809655786736978623237511668096321698533870119826802297213075910466397543814590265189004100370046166125863451592029278047233904810144299643674820616880162754136857274762474963739676418234542437323391634314592032947676050945174715100508098227080727486908644663641940149170665481505883740623365637977844040994771266038004374967522999608096895130602378737198027441314002928625301795450852341312100583015764214064214921995974501877213709101075609430880856076549788379464796051142406054867236987274777552262507453635406108525965629944306415337621632834657505514815688621551273984678243189646599447258134227499718619188805853595854842620890906138842265895296479970205755742352969407592942297670557713212206523107465654771646555720962563990113025373450272043879588918251500544702224859950511660389767109279940396027371599423351503473888733645016811268279348330473317416672702042155057406176279339146493496606253235560209225960393969967188298757784271760504910052406371482775515158286045683770297833998905613647609840616129390531374880295867427668262385991151162405323014329087331192850058257446690987695894081068210199699311334018189974897211665088949029121660505007225996291039407141350585141552522388740871893667110107753029479245026121816796771421586074352178495730091361456773412578330422930888223110014531277117744372054802672028738817647208902532242811057619685632333096484954664784186534489414364248072298660284974886109164468440239285609713486803190154880574572445012453353531979099555534173093762425808505896249708952096299541820915831888326688109585809433960087892957516390274014600766072528744927841861394170292182156590979503291050034640175221144001807973071844757933419762873942398608887232513336575776862024573554774752417770775347164122394867661183777492879169236571977573242727268435339767900397383613799073457045285457503974255092625116752512903956589176620621283503105376357004044854469662351954746785721505935038000686057119839818773448652839336443587972021868934658124783102064092849868089606975337814086705213433903008957801058532183407110025246239452330061204816679166273604724340117298644278716691471443476125297005393658141877902346761387378781280610446568023512006436386144727222213621161111517336278163833577456599800535877279792250985145676282566456363151497146335507039965661814643498297253565563825749384362811522461549951881663495796340632114009658276343130823604523660385909637831394901369294761587883252257791625272117763002591165855017794718365144300648903644035081354218224139223224998893213451233378241289525988949680074604412130616167708236171145720520255408729065673703663891471904897125084788540353727620620997769003701355866967502862621121714801868836305613629132746690073843707227754960781655508223469506502029595474522557431358699840559752152384204817166045158347982772519617418409235814843716343892094283709395797819788427659117402442970571829193300901000824762918067828939804540474570912566249659876563936782712137927318409187657577761619028458287274674002981109317595546530321336147764850505818520712723454424607631472172922651445860326394935626704605821565844747436839555498969467630636250245031804525133846281648902337860558971185297258804043271553806130675524632587029794647014531638101072420688511699168044681447163802954510957565597644896780299074055996048422242760423650911589143791491283356933584612980295846630260102294310786435757090537187442133537374953001237645223351952768516444930443806717710810578392711549437233903023009893510670684804991915053873911938284156397825652417152676128131078699862377221639142587888082624404899482189002992388580710540740519502548856227257065048681274613518125352837333882262011495323174135493037620729880972100068383205568344716247149043352512341144179753731882718150230368370434808983159690981051699493490808228642880089161816257794526382411673438255554464060169063291391661117372925642936883696867220096521440759317672606440640604207148737516362694713652699239599666816461110585959958746916252650517307016061498270262329167778046962881756514547762596861114679457875157460794575893016357614158060844685211895393572243152472792145189056199477527147630214443546671587510332844350647559291960392359507014374645629987394587981027241470064581339884168579321428295422543526477426295776448863032123400224095106135989541522682221123414980889271388870657439872723619205087607031264245934232437318135838475686850044079418377440444431053385271169772291717901393545242323723186351548761305413478843857515658004939958098911488240410288800934245126825301528264216043610543802930382154495371096728603488540937099495491002602004628953886324500180721266699244684074772669742979554964464774310142510610420252634661649946597099590169063171423725877624859565856987659681950056405222334837064962469166674616028704979458071898016110665688462281960029439903487367322823985908450878988753590191895874013431845796366143428935033158745235786577342522388743200894028629437871097327107543297977798557355288402979445606642404130684862934688724494003874198360290494590400445684323364938367681302565867059835063344235946032388271539675733283469006921596817402399861929889846319193690320721901245175602730275178891240058902746689207448381507740835267141963897892039372767888602545049730094358936536465908567861031785628303531841059627919977478864038377881745507938387388833960552265907627454357047824091353711893424089909563944235665681658020404004193826846285599516262242596446468816241053057560062919726668096034314309006391949635097574968872451829015591750629297423054128832456466058543586963060043447952569209938580444011998259551095137224200091888150411513550953461821906062176862793058066886194961506774651835283998695025808931474485548612679361311947821573749908928335135786053126504220208719360336629224535012807830927573399543148133637263130963203326153503748847774116546705315181437957861468208005055531572259517519110876647322134713157178870070020705965250135404652731301486470726242807945227586578497450314442481955257295527514314125485382371808457852019791839750129120190508757907543348596055914662905441270707776190550504756385463988739771557867433760367807085038225392931163612824415151003007592181508801885878878400533316170863179104952529668307177658576681756979079097745873514069294350043924441941235779652745056047628387164657736893711305260427888158252214221920462654610288893335504420840024726789755238249194007083859994143789753230252961084298750881410458939729591742169047996695681947634633173952696927493985630297382552713780129756524806601438941264311989190309532814206191981543855166765471978124723936863519648657873684477548819605181083590724622360532854147021390263559068052855351502175657909261567182637106974025708993916690845574774079869431662950692316352152031044301158730452923991490482851423656933211430861510157146611454037302631148992266796285429679991168070314845841531748674984272562768125177976733330427779000777592785287275571904968790101027272333057826935159451278628646070233448651207402047699171038642611349041842227262749692858810384801468883471383709276161761057686041174124549856970997268691024461363610291046461758361581237708761461800978556744486189706210705445526738070653905998868298007647107848728489204734860495699367654784348776996028724197477890027155355369190470200471589108113128777735488479279175685006765987578470960517187581437999219480447092305527950408104889737811321986526961096932698961671967508974634806278157757939305732126738435440577387102318008690385134263354704963713050915788196018421376866050673048761431443200695197580300221899738055135343050049256268172223012415425356164069846124624002360621967574412795832119083897101889558763870149379158560690664759034248192489072001738720379548320663689170094268587900455216386601275311162840899616294213585193079544188337146133238328331791868555319899881640378797520634456686331407802305171943155358171704545955618050471089638786899756804343425071764216857538857237413448211310708409710770056912076378345399317935124293361368599572617234500192831339136891397187951789544399062869418719504086198859926563503259803769993559041202313880369185478249142561784715390693671479352680416947496519031573582385832415952358417983169985203785354415106065143218092534942994044490877016376990595113593778039496836737079068296554348135058476760901085659841746699700257284077832213246128861788829321688209343455520873731736617468949974206361418630800729161338693927147463430883830824905557744493540128723973248754587525529856325006474471979346273178182235831748399727331295022323736195105842546102919341876725723713219951537662334540887453396843234354536193863875599689085663417179107530069628351418719407192678252680409031508676264861960007092944454143556865467830629211525646542518467420039160030065809831459063599254747756788730131005729941383127332046525900144323714873057280959582610691998247225811436877365554006963893989954189572961385227486514213397836027494252076604552528140712963777671676728645929130712991988337745246937255868852009816897996856789589273121802708945963420008218603376420041033193886717899456867140442947022750635053712767473504265611317624892311436521975996394296829167714301727143768977763077337334609714781446645325913306229091111323151158815129656907334936339614994237239571945158819308564195469645816538784570049890107900962134638713093567486226300933367345879024785879318726087725335472158370568171049933612831258544630219100520103064219759214850415267434804050752061675097497685107671022189753732688241799389494946551367199754044978757893722676020631923893627431125101247289761058543867665386975599483980780672910156363152126758135025335623451201315347399466394038790279014991267188404344779446681788108986716864043544303226337587026778867420058138264637710341011150901630259093812244728936571600836206301403920587390384394706499329216639022762722517592620792528379126760480548067938790420756845585858565581923336817578249135521516905540187310480817424309444591355255393420440689381466396385559167318807751274485335252378249529083882774183064345623672755541289662403561509958438240286527787433372447922753948374127328806439738680093115848492022218465927125554685210072615885577317169879527875394563887839515419237635471765228600247980704477252989891050338151053080431488046578352703378946260045169611524560060013298470928743586406440796692495098410517239653829012483976397706051632915718393587271324466843941908188183628121150357691463232831236233725556111056371205540750967548147843833041403265462007954733045627617274574913342544504148685666782298484706254030301366205267387214602651864161331261609879020059256661910692431851322841144595006486642861506087387688239516486495906363724416199253446205637284827986799489793236940476081497031149972884117886188818408524573445276658803374650953107985299583821785814135801864982157078284223829418584856692288621350182948425849328407748132085098421439292130436402566191201174452243218714209130037825784673750801823323317566437013380102291127735958527708451189251376568271994270207744740454342382717672854182889325758579521841035489096712000001246519875027761613490907437639946067642822837272469495953993266624745681596639587383783828131772917008008902156943647274753215740010842102336320938988652650426542864288030809146914345525620384292738191293143990757863153609965206619096557860517782319636176555443731268229855430931611997652560830795669092910581980617774740501244965856949294096309403632916257645884217635301992332479556667594132245353597405840505659214477912648681204388725293091716870251115728408743935384629304916619812566830364260984961572839251124509005906646198818924769180923718868629198086789148678359039148917578201026589996883977714505524774103830526671797139720199785609478386730855388107570656678713757760000882660638643321977212955793018233897976416427800105034727979685718248898315658790044744019753118408180112655967819639978886552871600929759422055213985557480914749010353924419133556602500059666934134783744940354223521512405288245937393164166955834383367613634197966149979508027615142695055968687554632623410418277344704787650876517517310414104149113314662350928237734836112275202678955508437447071759718514311020757173535173017034738634120620868303873286680110032984480936417054918962244973432931236564032089693797039614325520286197384121975945438568003810161792535346676615891899300807297136764213586845944990576541840522610360376745880035212825561331619981133389097885528614847466999683009132606960434807397381509906447734637263619213297846850606591155786937437542455047825405113575584353164346747003172329684478493879769007746029077818637183271904447774307561188333840202418657234911279853615122585630327759223262657331680594773655721650041420220845283914653549356656819136655581318073121701178332460250733605178530080903276942025908662821450311661259624340526699394251393041214994434674150114305328362543205597900542649121417510068415675205313247177088629860246017093715040344583912493138825477959045621041545350279772737799019720867244927637494490787781551856212292891898038009032656606483629871931494332739638469561160770945061139451364392411814810231654044607213894628575037217960225120179032021511369634076016343289796615258122175700030954108992585820541075422117379912090222031261474704237430836768096092141711789819091745665537940641244392234703094165888765866364551695755992942922369038589895630548623276064390435372572622118804733629894051020426695818223492126192875537146403837053552225457238038068248800206791182998838185173501676110310809267185377476976637444044535483452082597711873487675100342335648342576308446215655977499526827343586392458851661391031100897630836309439022743290469098521206100951553388493290010344582613043743028687924594967618483582707046267657676728329261833041797428580822151980008423926605764338352962095971536030584524852478274935565226421152324086900639416299165637092306158684941081151877042285309448960979252495205546480569784110728010349331676619172913214351954902408314093561782820051784464109684026586245587732739936543654056205305647346010677149710934740187546932812550543370755284502552070830161264201223462993957713791685606533930456002742662406401828130285470817022406575460822931126211749050724819473651721078742521646682202380305077225617749585180301625005146460264460694919624928673868481270003748533314464149045352410105426756648091936390010648384850562139956149849712438044095413414668998569789078405274770002175698699903590521537518873909123022938642600630301871642240879072103985197307692463691665265119773309095794879308240228290902024506316859485435347887753440975973137828500494158869703695976963416978718471649900039084946082307546868756793051585640920868656718838549777849001485151260051345886576866570465696659865453508308906569551954670222143786434953435632887803818894399871137826153038978308277632822339525451159197248842662935857361976322344885974603668978027870859822928629399752818730479289189898112799179179348996267495666829948049902391022646872720135808910303102224941114746148450918927822598947808969941022073903483140570801408729378065598755083976057657297740235698887493990810035928246756478860788535757390889795713733088115768576679223978715265780342326030865668001391523946069119223262243203775884148999093517878409075677234114735260505613460251998300664440448353324947771022621026236140565424261713907127019301992273868598064657056227353679170118907781683343525752063598881353603605452080372736646378753776883899072752377551104988707277270823595398861345232941692426742700838923807050772410760088112711717430497258039078832813961523827977730697363476196420527055105750803525350104143231957900711110780772694286811045020668414297270776651035647336264533931370966490000654061151269172138750298468647210098040530423588503026865374201907790138642873023263767594774219205038996026743716011854594788864758501496558145639906028168283893355284973182869036678754299598880549590758141398572607219610028696059206503475091394255915285762590322436990985997423276832090191634544052480669245515403291339372784451126470520216094881490116935182044568907020949372428449325246302785897982713903955424019644482117011862130344082717411775803425254847500927291733155123715530617491680555168320584034084272485661794667749250912690890604769679453268563101864893234404504872174495005149714718491893896535693470796674657042506031410488173805551486736863903761215254800755893657468022916891271164674282184881776402576947228739563990229226430786959789820333021429746217997095495139644516600625185205786796853288420207332516148478911245528556167945932200092974331633894596302625121863130956019130800047166494665813639848815856456931101582233108693790995429685655951898548093163258452005613193897737439019073919547560652556686535097904780628350507466608680877281503149218871835016603607294608107608573848631966867710159176295416153119521163749208623692780500104367834631964095792548133320483958338516799620356547390319639631562292266326917408201949445393088031784763476982150841348576951169979061855306482511196064820307291698800527104257199523752472536588363797476194053311136334076300672576423388163746447835395038281263795227192524548092929577552678939918503624515709478190506024466241355128831034760245269164221057837553499954097289756310877561551281687573324997182910218179805248893167001011512409888943180918066626067341132625511556755948126609707330417460272399012443094650099170091626130713310732125569387236231714001717586649101197196298478701336243358660686194265240893468142710298510101262550427062506259676717077683024125958966952200928152127498352809247650779950954791582770658585432259267192022544104577056117768567397206962603363025143341977464023726006469637639317967454902794172097980116438221988356480706131172179220277012613027860823870744174500423822920139726404496404553754894983724968627468800536582636415838658543390804220671002582218926713812607986259339249713951956305115180536653445878611955250356936633760615187754566561819455056561982680889917493573183847570999729846811541288620270473153490939208581495672588577537270827573002698891106945878136928079490706719805106118194274509669310082658903989533407394962739102592456174209042783945487709492253063089975637173321163810798714270571000649965774606699136677256182494227367571688102242556632075187252883048276726028977344431511623920761163988075032026320507300224271220417156423764072315727697619108537571464490479609646763525116870700077876725167696972099802891764267529285306251231723767731203346133285561313575663055090711160036580639877642766921734969522052002076460173329092710123958884594364144754873442966656470033511695182936012035652572067167376559039883718360644545125246119479969551970648712406434080625652447940577382993572649200849289565927357173881150956672205517203324544472085105146752594857586852460928756787938136866808257973454413974479973059820660244907631946855798848303172361415795260838572844177398726024329167197931555218416718726902820576803166402847788562124948579838771452647123262359997809012302781201163895867379257352570382828938812796995534868208449049380702910058280881925479510380747785879749568998486980481518792783345876922392905855964282569589137226930155164291916340279408826521430235759618272746011285982251623269257223324590893590050290924436719082401605449974323283858383811765634087312385146885300727439177784549807436077403567792572256999163287803812806007898247725890659172550164713363843298740207722907426911152766491986907045961699256912262337425642730975803729699877217416030383154497455179355160389627935538124877367613126779566685729573030758362686561135998999166091406445768316121221973632635414834288183334966833546113274629283671705077065676036159623786825867109895934518613955184515516863802412499237978507893026867761997949272488980192484298115959445878473787944213761206458586249719470700658482719512871417704908707566898979060726153262798287817182822800403146376145945712794278793467975361970746506558055515397185442512714276586886256517987551882605226060924747911138851563928046801381327803133535366962499472953428577256607848112629703242850827643298363562723526211419535103812298847181859310709034765214459519671032279448062860127069860130305914793496084941354761300024289729975169845257371214316995393442050027720084170040203173841178146242492868310132938152364808061769330045911176374158905246683531113817255576657607173346016107630798280985040997487449361844261872234550724654206692161802238657862319911495552177248021285015607408782624084925301971550339499470372434888424497778340608589052052976064648268415273706548650208091999488718286042905314432393439994880028087207263023638617077280406439887551052964588601319048336528229553095562198418454460457243637481474346788365734606444808612150162502396075797114952737146905192866602277637791372605786792984888991960672871552102177095464598327071667460112594945062304565161898982054441753716763636946238087115140298415157023974731144457190506248151641336742876192852468687277475506943783221684256080731789299419345109602938976035403017999807438048256767983775983262600576577682449327163808185150992394171406489779350288561988254592173142363996712058354053345507354869372781254228492923434371494782757769699553078601553910409525691816725583387456002410518010980717598632729918758345774729695006480495460645962703715276091184238700962721437408157110268923297412491534422983906182705437553751351763314381089212188517461097887790677919527589370744908724194815061687772015215325033839387544296170360830463561958756677295449946675052467205151412475316102373235202306914742651133528433753234728171085861231583025955363872525337395378795963698859794854715152908299920582549036905515131667024999204051167400963457643379093345342886381289343384493756355554849766112371136368539058600633063838822774801282900687660696631565520942332834791740656764395693058489112909195209486520254888427509354030128058084753543121685390179383154300812742099970470696714787078682598409125335018091246307014959787579722732746291208495635658649915178217731384728908174905070360184841631359481376817078115529829878304423411503974949733463668253132601390746647458688063543341586128115374879195069145956089290259380547756112763596476660513744385057293776451970821577847163359695360149963372773536294383135890512614533075284144364741930689641993288370052440470254952269979680136592309285337410773539739875283005286024909753259008752477625786364521050273100935818626564908157140850989754485893975901599938876254497232724660786869072119006337032822069417012527713558269090075038735351119456222140678886589002074358447190065974036235516056146680970775636499232795338282318981462714011814311572628597665787072897611166829495171407865909132421763646376903289417243042362691723287825398316856650852936037723580088369570093349181944839464492700057670188281862326925218527713085171782021053497742621277166004020249224856404324172416053356752252073006511288485401584471651856723818667161199370828313781548505451145970797198630641947349319108547620931167160122913150345639238630924754416279038824105852527051228065982734229872846807301736094619621112120213693964553069346171209398461207704491429968040716082488459819304575533470417597499139780612299803699331327101211119534034576255942965765668474545701716329192307629627455410127786623840709056470463047035208728962580071684892506589209514131524702206114297517473137617965673212797537636728559873919885359010921565060588041007203729983184510657031067838927322171346038277625228849275164607714137944765623442241027219918695946269532887291531949675054939529263097163655813145146235590510890877446159413812778549336050716205064618502697732640429825746474898256065025942534434091092453597466995606336262877886299830364392301316183559675398043511142407266526146004748768416311814011788245386904193111486784644885827787694911523657094797487224774890815665135347295883422673785751905367513773820083832079064537852454546351137724880047917992407386391928037937507566423573576544401237492261452675223502012501428866412191416985920002102107643241108461648641915282753113300024135010803464109109585369731643735429277244145188617280302474893322239501669490328349966927342846702649337651142403752610679799265379477401875221997736833547019999219870283653462953388111067876265828456700143999119163327102269568254719092751735866880482923969906646466033837751961227869518870283528520724040549566497790740689448767399832685756126122662713329898852867026205504774540311407892619559591638758927594484578878916284201317998521224923962340004187186811876680082404256721323338422656500479786151817011518730460313861275303112086810068647980490439925945481873247503492200082859604882097444344260940548109512496835796633603007685245497200235157577410150935149542945555180055061138528798059182298860574264095679727948944466532542032894430512681601689977985153918610102664183277636099206927590730377023674842847273472956944778314509909521020362570980187079527833989630438484274755229913064982490343914701294899443061297392163821063076102527817955244932034722743614079692962702654175490193138206164741440948792413622322887816982105623636080087306320758293738523964242782038357313226743645354105531059943562642366247099698934769044943295434912570944831156290516173862141981085167245553246155388458031261208492957859536396656052039522824685860020255725966100109936396844612446167644240524792946204724003668264649739133924672053102887475614662285091759604616922862690734173442855340238994356029238707326369841961867873822535923437549258383471204376637140849242578591262010037306554920637107590825180348997031335961152035158025124884341469394540358410462627268241076971579020006371154681121936659902148395533481313347622141849485355502820320839176233549205314078613773161404195986288405217943868480806038881795770339040530880032939173666747917476945687977034408314597713824158773448759040453322562231854222329043404791330042369780674014703404649382527608283372872926754228547072248639471428244043017436466873977601931286305130937803341465846725410549711271013937882702146599269018739028943085552169007589268299847910702810573374427349021424312447448320950771588571271376522052346656091101372425696187036765906671843587676075916146288914061945703464535142378312353543344851285807046611452656509766989865708366384485740765869501290235943393771284117237007550929115960371549993000183428155858038122661086163913614975793559031926658718961254109193852679682759245585690555301623434397346283806671916136173599503860159564935068042904462890540921719595956214702656632616716507939074506701730890211941490582312179464045132753768783057674413123210687804200499027378495547892849340273735613027958385875766431771169711584438789529721439596195736550199876445458574246653751950092817383118292261063454427811502254344349297848772361124792663113349564037932680737133811332296132126467971446869958603362685179283015078704423940607728435881735773346949786961494859647553569931651962758261550139327658695295416389236754981622146947295757958114220041475141935473113923792763691418900001478180261384544591172445556108830474337942185018281030478990348567569356797356885587923295298527308936720047897525398181749772431066847827759760892354215862327865733568400286449012700697151289857224829303996306640216756163081139787401088460111943420142277916163757566576922023452249360716588474028899439011801026162739244677586234151446403329860083493595822257526496590068046340116793169035067960967445018213951081360914845568605101675865068352326081248127978586061270335146429057686074246074792720974694726089263979677702474334844972302825081744106501273026663673778622443845615409531361079528310606770935324892095612670975742145030831308569826796891167009148689415153186606602673381144538041148619023372582539790857357720784504826457350561312493493877449090114214588753979667664810016326884566194055337435127261226902470635623460101578085748263789530347557393106683600405651017779796803153981824465485483476145070191082799229861028775626937519244958867167505177861187625089641014759301214530515630354967486583648525044394972264443082148671112500957355432421723970110442238098594662432513176974923986776358683870253063578596755088570838377273378367617841257355906113471000590450392984457346707274255871186317490268735085859809036678846782181235000076670835480501378065819213334230003103866647777085995563695961715178406927752002086276315900872094918856702325936321031089748599041832570691467673269807628008733074047633046691246422200578698412541539485133789267738984789285660302880775173380518928707339639854058978582145592190156617823609247214462948958334088441328017987829173207410861560796221217377151005509629779934837262440724768015056115660064925040901741373443195867979760519045469114230128725788455908923791972034300524981081865811450852030560213062514877750364533599061375525070840670723130218559107145621004809380151458674497016237213541049920696060515795729276342703325349532800214658998790640134120053789298512360581457970054727999673681206602381880844531533235707821868113629118821536155139308417939414069408699892948398193220016716954435799069481260938185187860320077019941353038299653353715036405622156129189802357538692917934885351461286725051743411251126193367858818334071605182475696604592863658660718670365667713334249626926861037027602341922511111667080444541879908242168736196657541005119170721678010451053692674011301072180389875137072830219030880273053577350027277598424961048026461197118508373178104609346766212838939258444120900666907590841928363185471788457495982770562915877301496414554626691460262393466496081231649808939816846382528987555240458074969580740776341001060763243834168767728551268688477258180921255328462507281164722709767054533072901200415136872726923473996689381811680378001993316200053916287134890900256417268325391954836694799548956358831583056750939013298287428811591342089547430701673193678400933337344060078748874236018260892192258740468850095384945128222291749253416868856400450119549139225099232235379403376579229418044489234571699415903861810995744202580991643922361842446310839311919961189838313090779158363488573540625298204286294289253860935346481357429964798314730628605474047873547807307081181361057716724415040889247577431050652206785645407792881725937803093763905730142759327406984680273665800173547032425747532600648110301033860312900056568590910429538883270208905842448764554501390856573547042018304976927558359951922160303391155596236192364588562577321635841111851246012855105903069108810072295350166735325758787416688904251360677203127378614615225228729783905685729032936492161947037707185700303416553518000203659503140733001115650503918626173529696421225068714888562731528391121955727116701566818753396445053190586873791760625637259701389178446169550774798771426047038920377151763922342906542821539434359582097031974564255501314235279325100474451220954815926219302062617826985810654282356536513482024273897572351225532590210852833174103436357082430542962249734747601183439718562072538361541284012251475697353093750185176884072835339499430406240314695338874911825723385698845586621767822069922790788015684637241732193551159752515353621959602907390873062082441867868320643267890085279914306215016517450553389068461720497036647710536752392226554676815236189929176765998662677717397807537109979448954374922790057734979266564187141061803100078760735937078462932286659150246917108433183651753246464625067837076434803725608404236119103669575342617689671668054556433993470989321536344306113226427222296673359523465606463754079545461848961805433993257934065474635273415856096347867738135394343891877442477918343897880937940807814414770834951347963535274086160210065629045579673030284384829528383512677809588336391903050302436245249647435229627937992435157889725847583228583173399100720900390911933283007091331718744380786672794257133352143247485847380883451101985813776985924521154482648168158761328026689003904746742648548335797312828015755545138504992387108556399499048474427290466107202079304016657979359639641738165065691215586062549808634039814086742357215350308983087413657852608297640993530644018958506352888945717588199127719559553950015351024617446568912682748770043031675991808314747834234568565100811027140511126141045596491727578323460050589622900735154242884058189989020169008375864509064146330356843646911206766421982820499447441224491234920192439698843022525475504363416315176687091125223260679931588241957191860818313691504880192470588357013624883547895744981381429659828327518030433897750460840921979915634189552070519138485741824770203819979950782543139401885696562425516441786442357483994878458989524063797605532210900671866945228179548117525224041133368124779881473778694358414654897402983615399649867968531097126525252491826561838428128324847979768037700518032551122646946028580288064415563788933238934929729584546133545545953740980656176157773675729194969652702800408682415533730339137244066833664123845658660743848946465007767395006575907963241163627847251076334311297943667617977388756575551724124154151172796884747504429071741408231626637015146430646163496409113709358871121595977454967919051102764691359832551593837090422310592948292109276114595934874734737295304049643257387045477543558322189391870697743049275333792492894165474033486125791076045453707365782467386193019168926876128000489036003883558620341365682230580216368025946168266337067067170402957285172359261834089531141798492406675129599263036205624369088309454939191892166272293331249810975837343224785595429253392321927879469525515936660185179200021370200471188052033354271750151990065775284679264441430235352859625978288876950551747303656239771752789979313250628972856691290852152111121185681369345425715645540336597401656739635925617061371272519452032069379590538392227714244004364795665424053388403320741116892879813827189227978150537523725900976391385953626165196310781443956017513882437858486135098205102153397027987320034632065856558691786004596897831874081918238638919755712050091352700452449474083790861670384562139832040789641891848613315029190213456492323142356389738267033042948358250284852869894280706270825577922575453847679792117995228988372098981278145814630874528060948494488668112867655002773730204947863114382872121213506001950639888486694673653106737179252132041096338529547745780026100816667711734814398978288872716477575754513108997723123887883181609232292937111042255809142761738704279582171049825643167606224278924703307489565276950877341294207761468337031100147254713745721688194898106304319624020197823174556342127372403729742013889699688668875361316468527715546940521375719794613835755973574636367989747758844207175690434142031823913321278081430644475505583948800850243373140882996026199609450093005068354728425505808290172163207269767609150935245760929161254561407176566281906800178597045325067361906947462190710402639323220379787864046830142831496736634347735278721046977236048999834014412224774094847831100889360746142050538492219485057786326426998607561137041415627852756577751515964025543030990190785980811736771913879010827467765501106604717303093502797591223244340756078069493573483130619002285118251353399886596223473481462327634681884525142327092002389358356175277316586003432582616053525864698561226131302028048287682108761279755526974814358235891241283993057562337927463659961790649829313134252617764629768404652057690116326610045722553765870924398775717517318502276071320278481820172081267690450831794340795920014025660296219450617781208655326340856256797930390298943761626082513423678078751754491152565707799451264648132182593414244982939118605336945744054844674339208958793587861747607901410413098984163537335465855173869278555748714978498045274539457343309288402853987188793437019178298732637470825522389917623583152834701288584432524044692689518926054250683310550319997400300166100550809440601541543121100095189924505619606814513063583020304268057704862328488939938561988420014546757982776625305364391483106547422084031571919273168536207003227066968575289825079727671530573834707169246879306172210086149877488549324183619765311046958464179906456301091270382360681187177442927582112223079590149361632037757579574209560397913671960557138075826149727697494004253875073770409128415339296160301734923424005004982516234117633167221406034764136521766810660124829079697827468490654925328897022467907037892440109359009628342766837077863021892903735979633169853504226816013097420540841630349524726402930978419950214079648588873924707289990956004620589160501084686373893957330797735592621943594191539030991607891624691771858613840030930996301254723109912827255415109560184270522073632929682501326235323950919251747481817796063939432604397208354941845475702164087658568721552136497153088309831012764285970315379448798974739305886649936442184752603535225605998709840126266834758057752679375784679762851474299837490587196762411339076033635483984022843197169939716557819770302736082427013734821694329341262105816773265478628737928945648154457717845171557289553415472684217687432799420169016394683853741736637916493626856761627874814020728564944640277322398404934011915341755433615279235179327290146198495606723765108131479539691106136915891514513196348690159407496576819867380151841440518847392077007746230935333550588342784632907046496892927397020445288729864079953168010512630186281882370799384773314608410377116102718241769834470181886875774024003076073673178716524239869107678929013466795925009964400534780779386296252992654930128526641619164929673133624871526473377290585571232358962090192867975909232841229384198012518299304161417679853716021547741892834661734179217747717485385329909733529952478493239051706569420800982399764854913396709335577180752650309431804003112659888504404459455770425871271815335138535426019252235496720578870495435805087575918365455790969711769399032245640237238188409711003056760006706967553523933812024404679001446059955414322721120593505014073719560831427672983286993604556774124010147143043218736183559180038447830886097976770260344879098265464836013999529305235745182922490653464975556160080144697388540086466344842381624440854335039466169335339842426201752390278656128217296914484962753600322581303930245056946068514489961807906046739599782830823930248530676570747833192394910057855965697594756980236846095760748693065109440852712559881532169735942774625325066542436470199604286335500739838852034435937721618671021106372319571187326579177866619887164549041913074850518717257621814959605323065716148855771140702008582186872616336334780217625652492738068555425565393846920534474010239311371503537063282482229200216916240686464346596014184026981135049245252139560401549540511214102449801266059454495245679842833013435145343759540364699742823064257429666934430018686772482446847488434859902547809640851359171515090404949180377900662343891982508925007836495233192321588701705044339978342637586459098727899384558863595061209762575859972918760694705190274321476418586497247868052069672637001941243401127171619291766619913720330845057454912442180192713565942539454512537970137049989771987184570400764968895516555564455346552093192532454647487101299231340814975959443602498958651472197724653162317761496264563194088178003266070957335855212579200376489987616656065474760272093723445406142424903712470417771254005605541638126801512610827878623630171388705201932286652223344394192125526545970702296251335551269170187652213327156052365527292991734700088695509717861139861097629705541663921326107443130852329089326974819404412719519160611025375437131566029036869514382627751966702569264382285564706501362001336519589703100134343623220215917658591480254068804610466190152146941680450854065092254462687942707967931617410839203145122329513084372683332996588735961631005939950363335330842938440819921863889160154938306834431051876617173230615597273988236495054072118109647482569830997319395641227192981939183456161705463174400144024757383490216779670154774599099312227560297662347942326750563953391543530828393595359170963193105391861456408568780828012436200018472794762714484658800764428077063667330367917959823729604963607855872961256433114684187498841744534414902179446603775724182689332453316109649191354562208963036717715452402544235701268619654567293613328215332993119599027083569059256491505931401330571046289215476611295717125294661826751155608139859827558582076294633932437593170894631009730980935250974740491785421618194976007732601779481204140343770531538588640139880956160892723451137065765838099952760199232169782317265818271937031685604374713295264477450319132491298714869025353478796954070356352020076173594420869557809971898103836391119878222464677198384895855069574268815827510132596414597515264657985929810323960101540544871970615645551791325524363465840256532268467635418962072042980665207242259513065151452478253311109427393394157658386629892370967590055659921159905532903950016460805317153222458782056728527015935749121012283842361418001565795324171440072487049893952212154136483875077935041335815052977656981013834935188508218023799120591696982599434992357577182032157224297663423567157894757215811843861049690937160006089822114294183869550688816461527976738059443294627529619680918247025430206843375497417230764258433485304339212536371051608767304630094078160188866680296029556139158484366413970664149387221962590760678017548427821445135964064544894305818343282602136628112144349116254921812105379614728847458476181553664396366962519330375895446045843325958681131710347001029953565274435528403458741125923655768913533566273241193922055962990219696866603556736576379411866335505534192379620187754940494683109158354561753544085866530967128791120574532460589168687152709365245281620458282803175773500021547516166417317021841261726259025861563018285806326401261014503614341668632523105901746406941339817470821237294685158403147931144339058206667650741379181976509166654485525643468760305865861149472528288548643979527950886660601041675560653924743086115142598950752828527443096682682731673278161854575514722957497530241983609467587391565349004079165801111426060188562917848487371680889581961373987122550821604911799267628269658290321312142453678353425792516547040541697359774648959189544649421184832530344322370655283194191639406150422871128534846680142201416339267328286073686552901143034976344157548401910611024783861044461095756514964736552880195097467030923454484820615957496471467038374704225211618583227932697936110717694448305437175278843931312871089673946698653850464849510076167207582086394951964775242971819740116365962293780238920636655701061775612566851991936821455087046212649984099213488613878764003521137957565464978684881652072091284928983233091412951546686955136179875713878536134104878382073419267835483712991587903915238587631819523771956739832952686404233009651881972151739799541192706632310233504502098181685490985811671297648779688948838071258158986172692185501078834512521704970042737487919193474412752321127159819803180719799090750163386958090743640325103061370881032188521488272197549617922888628399273011845663149815895328467939064515744372579016839188790772904247399485682239440517866501369442915338819624466287358041516484483228736720351133900057079716478591483601265469885034642277516813791072107787647341517701124717302660274874298529906023178794282031477794448718290773401685455066219911728809586136553635628733539979252306516399281740148098305321413096642974866993136902207848806036100625469247071222440073931360566236689255403425796187883208671544594631163827960664485088250692488476078322342416257771000981632156257106892654917688249115634454645091214229049161378823448304981643910386418478314573600948033287545877051835546112355494669926014256295479607659703727535347029476228807069259547933642489265619592079417254267891923902800012753085752390358340713686158539158043511307079448064004991413086060755781091206092089338549779219011682368765933766487153894946974560789338981556227265790640607225557433866847978841039317969842623870751713418977739452282158011538271797962361174069962786318313497141441362402185698302462269584643733297877163242423290028018830896419294861713553951592741331250768393095357024635932140946823586593288897003967933227524889226788634435106392720687774741155342590795342768982537229487805584523696078060022290817284674348544727931411813003038329500804184878878261051671187113698917514428586394394600717146094766294497395246445596695329434343053238218544350144324052973335852988407691292056433883155413472405349617507915963643682240992080775901093553744330812480861353834366389255812515228525315157107658529737570390518204944226864042702038466933881136289365432609168200420074861190292247920813309446873914953089938403337351348815500325835707551938701209377549624672848869870183540149759894868646272526356533648466996052153077140677187116274544947790061769261165164364338027091413993546589457836642661499568179516717850139020122688468839741331325368055471373361418035907868612221416262502155800821502587041482553349998933507285137944364893648681423696862481596551046679648715658769812637828923887229209759072342491886092639780849378417538541257596935227582568871962977549602369502408515312733807425368126765652022891181246668074465581460367156887581678761934006291973880385786844265176869152137948472196127129298999032848470058462932572145808848790012716843912738513627962540014701969656836323596999942435858663359518927898975726134945790612031040795909359701819917423167148831309415560060408850018809688965368890926034856523571864483809750728195189514151479760798896449378239292162217519531100128010447992320966059301658066450936029689721005358219583179175192162814816626476736705189576245528428262671445205627887499124317092892525435213586286805030313735017681698544834835100717427661110887823875478971769452640344100298274928341441216735197847770209228835527843487193105589658906419420037564524545149713500126231831444972627094139458235320914795912685766448001647546649934351423032707601713636461808371114461744891328335481151606996382588585894974318265234685030458204302350029876614666860293670004602829990908787777849353730485956282893037492327765499842756650769961872413319148576742030725883936253517463093992759370395733245137220830942660416328592290371208367795609229858490614908847971194376890364004167969886664837060592714660537553787826697152413383475000653012735549737557942983169889540237741702504782188782295186094271220402856993268748026053950340403434563056299525620039662372400681432981929426118517306722091082538983706047448825738408807906674806922700688891813115873579389996666091492162083951316471725974345244860716072983845636905792259646178634841031934776038440566786294211408584333228854318941244505819566002417387013342487819036031526821052716838004963913780599871436348243523604726470071245684036926904537041720920221158419153503629347369316037491587616626184393584962711026703492313548883079399369542396874933478902000131007890600113356308095271887270445942661808004280372115838537066153692652484236711289749164252122135076818057094054589582357343711144206913293448436178584477724500299390896188076921763542337472810639009768651202540967232104581835536150756865414097836903617746786312312041094746336916827881130875005130560331293954273518773484261487908385499507824469275418576930495149603873189817704685493615070709948175745057659081808107319810179740098606412871139007543667629145939256968828856368516048834562736586829379717413759657617768331171228271146924102438579525420271775416177624176190032441967351310505972191026741749807029567817135548727410777138747063665769016806631373309120268838657938177120554955156533622119284114689030450002095829006916750433879217270186903404796636974684271437244760943772988249678028997641064628914099512400234677516842059598701788926623710080340063852363680174301074132912562640718666073319455556356621165078558262752563007297581391066415958484339948769070389711919839078705032880886030530216326424699999270348139048013885557532607080883041487337088111626336658621763881930944017560216871203626303076471642398581417927348420283930111531933187377441484488494853199132546060523811629954911746438978882169372646729068893961519817458983440511743738328748808854357513889519191376026534314303020906284045270253043736552298990048485790072233927362843975910349840128012308830163002199699506360217117646142818388549524896341021544201796798453597712737217650855689689345406367650946884262523739098410884331112141122985330652824104375115608601005915235699463426780840386506626333281700563804753056713589440745312669339427518830954382121434308410187837331497032491549284717520662294825014735726969253944576357053945186966056571298172003361934416352699196667261434101046170414097274785121749784925028228260227019062029384355745052618751982546499548569052847918391662428706345593416979698935666978933271122927956442505144676861169975176638546995767803705516878708917601397139981455988369155052081371299113684458749244447007940894056972577965667639126302342764998783123391225577702001775113745822888537414627939498196317373878197641185938544146863477997338015129876885279571324607026452846910884870946783011948911660188261792626491863730026003093942301061398927808780074823735428319335107369183856532443519622398220848721206554625317327888410270816971765599198502739564328827946145914195970061692976742399498369301864014468124425016992119139743106901582844304039516755861224710786187496600475812793501629515871167257608777593561595341374122543856238070075319900146599716114435753010626602951547924256291132094040591962586536475577966298555713993706906841535717392188084467057862219260815079955512249870554397739013333654028411630986739439509856556240346703089089009335071140064056443640737234556097097194601237664978128897224398474809237542237827454812590066129667463720332342750593489334410830186623774099094483090223689005056389102340828321386404653344662556924706312870685248715377026860042806703020624167152510727863252020611071615011296272581022868899537287405741101882904284960065284195940646755328947684833676892287016225692440751517235065218837192085718745431533768836494487252132111143942055941116744065818865524287980026363262217819555997077825546821698460838161973449050205066792115274679896078767171390521052374028685162814141647347985840629658795819716091102957366993870326149223159011050763779496987773689926455364771174143318258057775036016508867736654628637924938577004763941708677315342191398233348086657550812292696260977987858310920685020111338981601258730553317624380948829649185709263870781040734315840086870459011875668095207395033824611383367344191025949479719851938285381142603601334763378733088430845567568661372620532181463757068950533655804986997220132077037063691432041088459046372144687587847181711546812859259027498901805647760574088465574707428451952489065539631776698619068942437048666268552661534667268883603147460188538900758539763928100449873963713432789939929242637134735602348432077710190448688989058407421698726996875897662303026440566315472667320254993073002417587448013392500568089516277974798106923064213166640197395224428377068485829361991042134760116013293345362696633135011858771703857451577265657670082383733371021084905074561895445994271271803853898732091443449711483590249697249592952540004299218796097367071454189187937275450846476914873772279623215550177014242769247078725251115094683933344835073147766695296486999442334382691988328272710994647672324693312328193756632125854902313962257647461502544106958894427826601604879314148581210383724103567069086743089865976506881920728556593130965265052508299775105895072618586507159609061562792574014779788997095331670315813465739624179930699509408830639586680376885834952758780657613664619956102309220168603880436753373717354151070090008574743622093939437931306827767057479639877241599402220875712247181797021188093902020450132018054481495352958663608108833919538785968101555263925103784282275523829275398770204249163232503401040452595924198903324811132752856775228907027473576483676766138363394400056588471335296575519481789874812936431699032553074025943874489816540644727829820184048418176607129979850438069146679834388402551999721806089136151622410945588804364844772102297346052440906939102306971344987398487190570859618936555617907625971146088304118971107456520426231281378846921179109816938787127501689052689611662279259718144147304630609028125645377730554050327874027427027859675568069008618936626167613865378628070519213381841430970121687947630668603758580873891266157135909436083531585458059018085293843822168139996087168309920325846066809036721500910003553853931957251403634688358344823944236676536134669391670847527592692961840976444745009831858722894588007132026440891001814764290601688808544535982139890835943135927026045480807406953260980232128918832319267245307393454803400881387122862200085667203800480916931788181956804446207769914591696237792332009903582279706518575418256996727914299646930350582432520184120025151466629634370879440725680550504379475394424799251080982775818912703350540937176022532952240361054059364711925255205144857519053133658939274050411429914163371245762769201712991406023869157267278165087086165689075792336285929930646101963444344698227976161740695060968458368763841243378963901738456801425305422341132547379749211158804892849280715151854625082793666133759642415844601506965636796723457854400063631448292122533152519120085483567155598830971510552386199550349146249989541637196430580442196484979372658496303938520423961516684877761074201700270278640593390036728779298407675188494714624836925077430021645621580301706906310715478132128874900791893249882136634050153581434911702313657120300555650961218396870279103871818670693771399636099490232325582119983060213067760978722811498152512682751215035084301274762715840989097173846557409352678915368667346957448391506184002742285345908279024312156509844649769600104480282806451259351749232342515766237295137890717864030069382344997846511546805006107599286469189646601274429842758617260164437183379156583025095527571350368990503883555830650762031416732808642257545846691042584483068428448688346002440329627586437671884832081311183049791446935236794983276863266780808221475601750615552777724435260203173426208191145925187560461459135008301429808914595121698868879911028134216157378095416727581421042439594046820107261072003523062362328617258679521953400897400632990893202226568166116753186914935444737140222420787357834765117711031425706625479250014952206846564270986377647556586106834424098354874557842154002998056175070275552057404127594251055148206419093262959070527304539651090544389463090657852982317140996986423726582715821407476418001783384354032097465568620093905541112977233003197707806423472305506794018186029002088354764086023323035214701764711960542897438236268918978645836327355672710966557828314777493529230774852154620419288136003787276321259543737864255468251665263751383525249913184854332115852270730480430917620199895217939488848753727573712509447923380748311160118277809109255658333852047594101816688572104861640909015083691328529017349093735442975111875344156537869193302414350590396562573190616971845782416025923833735028258848150104720361537888098913839812038687102185095115141642790343460339524711587554006417130972267422044439307064544124285971291835802500533569145371040447527877227164365893202433342294737809809262758910686688216826736056470859666778915709897429627786329730580802503182179662914691644814378511621586665237243312708791455487749808633952158695490482603728354980975228159477356406837273284933326865523264059616769563232417790631869371234359378316917895411084522476511303193861473190247287017900800176165654637760903529944576257318253094158240855483350766697175039619384008649464239596995171853980853452098311932026510401584370276318935606862040032643240197460459154177080147002776128259788136740472769781622902039357749918570141463801811700032428535851107922436008749435641770907011640257519843793972288424723985884203942858155124698087015683549639734073555451365891519315948189854946784738928327000515798548558991846715469058547340871190033670841154335180950985007512050172258160452806259797610583355528324149461486146533214217504298633987639379802659522209746596646089814729442444212081453933507100290336315392269859402075464189142586092752498049528793070251719274391712505027779420991204888350558481638720735974881734288103679573192282797390060330718836083018838054419907810347267478627466155464362186118514886711372748803464967306094404173475122244385090265840268622277542114698395150554289047209461298357332308773389360126476192812471625474440882998729675329088233741645467196732886827365419755413572594810269417317834828256103673550555691670955902032702474591077639040479136785876832496930040692932042313675994053812061550351602392959536223463825631752800346258452834490153530105725490943113362341264106173883242389312099380202839634537407234181311952889496943543051511260059244951360021507423129669127496000727190510040779385337289450123877215173780248869852225307946195479804100617514126740199159578561065403921248609768926020966617669972833367273199811155551080564599509476523550275591717265449158795313546579712678445747606290452367577083412449198084018269633809447066539142870656678954521599848759843944595847201863205223446666729616517517395418889241692537670899614667465704137713484041066568880327118992467645879394716845044713842336677269221508997815526285632730926544248463500926446399161464449440235062899688764593983498919742752090735539157316558525243715052404345714444396655989384860213610480698882855343510580997419689371350219649290216807262811091150019921262615575562540251558088069795676163425767443398483387301766973097597480402169060087298006495483939306880869597335972048777027005136815089474975420532060371992126642777162673166699712631406455516036684933915936622041223867298989845984684373953993570594632891033912060559176885687933884663131691377770784258458217470223964048395836621498072137311794652141101627450250759632818480614423327084663070336383028776822620638813489920035294206247775621606651238640105380298929496671479159911902252803629819845908020163640079777075625543997051401021697529690519169049565283516277918577457869982358101400513798932636653251879537528963212267000742239381520452504558933684051938666237684537688080192917015128763218567065417025209468860075002711128968031000312834688708777993866090176658800240752139707755358763046393928773709082902601597546621402629587556624535640893047801965189053159938546337343824145743241539730780183198910171149225228118813841990646838847580178904698504028188122892034695390321352869715608294707849276970119966252842499320337026256119287634498718188334053485368387161742274487488056605629271717727654202782246893570528816352636763252184326234492501530351835902344554499453347112672721399162696915315947433971820098373104579657353850299891056175988952939008019911435219031345705017875790749921219165731034279992489603467690608459132160362227357794503911120718741303808441350815342813736595871949811818615985784348142377142492790616790564956843732713292242721570193138986510715121156084482718214627027457199290775501543789090133534262813463672281796071511597531765316716026150755635859551407016844192481445467089501336841185183613770006021323955794803000086365220511620168267528566479870479329564919666789191754194963469505335552347524971999240723923914340486640279102088581214573666250179585067914879307449710829180647770771266688208985152611323080392089988478219123237488824983508107158549292548477829628486269668025145851281413177938972083947521389493779688881523766378149348592940098611800765028803486713687759373316125882607759234260994385134835810846472536587426301536719644552862705664614600196640374839225766292044328267595478278733402681902591999311092390899113325465115946229314140438459023626722890980435955331584142230219844537470335889007604650174653405564622426090801157819621306829574307360642199177975527086418500968653450202342382619023328014171260647087600608190058093415448275400633493679631449193959394034743256948912207585959851233897262830448418603607515167833868918540490586632780047184406895929858150137540185787190868949710794765438891063176789397354949427452764633313809201371263369114408940156307407682369871156868613264665234419080150198667542754898269674673170002433247773009954274145418559087096776130521984650828103670950371578592717961760932141730103192566532114553535717539418888604692353358972951765512524718264334822422406136065532401496421292416256690694472052853053951852842288437018326803249394637468371970039444991991112497369112279517600987404623994982531597534772715489277685938003732445661922984954491978998248530032329414580900412169772923797612919258973284666394869888208946498251978405880700542234689659207443024870388472604824964294996775924521434846654163684564382273045075563969953538628994897241390398885625591554940641977339130975226944867065576965079841415416074428836112620432822195521122556102251629510114991379932677234068273932965596298060142555316617159325810164800520109658026908029050727889748383485782393156824162434802273353295541995483282247940111628867613287764719812849773817887035283569366775485337519943162518572680874236183262557906108612212608608867448980519961434196975573213446295708153343915549222324416010883780436029288202481969348327786341093950399154876873541979671387696730498511478101090855605290819416824420872658516461593849548942704935585375912002942882907313140586618904682026679949383403363605275028482485412205121280424343915359627922011806482855323150866057813836327778805997473393172990431912070003882492793492526368337091730879370347220962065751718067935209928664447224700067966220804617760777483589172727346879084471110839433648586648577353172343892921106021252316178343137834684309263416617020542662184618071705717099524481976623452930323775125233191974219990423453727588450893648344494451678308808525690737041990188004804731884863990776275739930508946998019762086271567092933247137611981843699557106007862005734847148798299448886965014600346648844438942247159320243469260675210030434540903844193603634889687126390118081203797206695901634670519683774705285988627023247513287711228082716190217422068209605311524385227035319395529067512715529931209052015375664105703466184527473280199128991740349490610541401113122146182277369710391487266501572508978439377218266709073066870684520448718708146990809130767185435724140067969162696886162003802114789725694075703671163150330451765331599205152343490363274954248528169245349662805965546068784650543028446109780590301377651241509539764413144483761011259993978276846548124388611820169116009272898638400206573306954799254680254048505065500104224528851523628901107353799679789611131685334323255502759255631138208741243814778575017469376247030870211162484996598757907154926438960956169980772693408772509291812236450068970570713042348932246131590742988550831832762970459636144125049189271388888584395651466634264901348128679472430221211412941230285547119896464465724706654979913567420236653740927307497187092193264172215292903250928286795500784085467406696502606191808363562521080254748377465756946684194270187236025266506498680843634948457372532775433994106206546700197490182070874352759500224036245307613027912016328599447990080822519319516032127251186337142150555283831098057764011201294315032385456039808788785243250558799083235400102075533213089372650868291460207597911597696570779060170766168273256662177098288932016673963588531084404747143618855446486837019292507668190427560417482068854288772106738375475246902204788552568691700060099780351170812546096139477007039832287955548370334801916268712594061805246459792851017530378480498846007954664240339131062718117733555668894218486195296085456998984960304398218511308882325554620696723201697866759867606678850889373245249780231822736295753682796623730007388273546668912591841089886780378103090689105657808479381888308075209138466504871140873952295002734677388344909942927975404663694748740488977369721007708258036342628701306778357025065459033332408688492570883311322211475733651229646652526287958119336503058895710522650494568951713663026743726446621214340664182773467338370440079515679885932201280213463156790180681851688730101164584964860008421018778780585927522912416044841253534980257270497497251733749669447670446256678311353174420370710683730201110687875545807306784023240315231379377059319355249840395068380331197627973425907580867109930147683350305426799262633962897690532793861579115109501315515323738364902460575246574353686134122506278184193868261584423378429888230695013801191986722247345283232788425345602995081991016205494635538464529585461553327824254307706502128588885457717610197218233610783597536306298407460765303743980861230020876058083591913510546409748092185351127525254115697340954356162508406310101193014075999088661238429696507995183604573714166860246671273071526641558825907404628550041710129031229336653316956922588671723531049588818269212536447616826257618895648904553930285844862496675543661192489180383121224259543032568213874187684424046939362767106084647067492445682733467742926115170539064107363701192260668618413102696783803061725735809479349547374654882637373984696976904294878701405819171485397628264307334849229117998049983663779830209875369642318921225125805681838910972031562762958525559376605851467438499087650183224963499526515389028299642071288779597344626527603408085414124940115233702021187529305382940081680327017681082530269512730616939602589904626653818104745268639079453987493023925961127674282782453952861503342955348547555091512903820738620254604426358299379168082836359323456107597736136667484094985180865410753349137316645101847541529284376512502598157356380702528646683852186969280778846073782083164641534479408033340810621317670851672032720991893868334218079590232074766715797524105612481017205179135094839875528567474209013908741030409873415188490238565287899785446046185880327585736980558690110974669050995602377003954363804883582186217704754419359658080964383429422555038452985795946500055254418875892665714710351252239964658592154785295573737492306381880110653918908302204827820685881431474643907209283799097281431312694233056007172200136977873999376236512862577613257016822904807614182381914493292569285931418591424882427621446663357760209461749658956463256230514189363586111715635129952554998963146742869117497702653432344252417155980671933861707335755883916572874750597188188722140541145243995683855255713030012282077967355294126661136221141801953884220401747362075057228650665832768822372696475526871179163157948826667630628433849933902700530963909065724781836189600717878018986876231956011050351728018453412871950172331183218998433490571765479244869430846840938179287774057023799435304157892157947873452299342429600094334660673881457809787989051977011622291763662243742955280355277400454270168222111331578570670603336324937143529870570982128230040369360517821440398321889621511500590440213382294855733298248994485938374231211051038593561986142759420547628190530873651838032582391799027830962118504297154481155244098149490495756751360785168660442351624056928398060417624262852002394325308851258520959895416807741149748565538335988370024102135778951072209356170784023381113556540879031146992864668062833142006654667186452312676277219377687604319109382706026807436992356014584974624894865439293372997283522393278918501862423194838699593101335708878796141104927936207695966442124348184573104874801089592147667799493818945144292850250117865057886627230146478184268434105268342039359273465837919046436297617570505943418331292552769361219300689624804487852610946015841373348540141728269336405131971169053748787505210665756427381496232902315397409935020875513792489439616935183346278055775063825059615866052974002138793762653856399803052599448431190726827335516639647718844169618816731456150074046467208020365086056203052309570871129220722946891961522446536643404600614972174064342156719940202532963943781115785022116360099165896220270810184373064381764032311713320314118578942568689296447407039032850711905484730465920605966337010607829326554549165779627832096832533391981037137666251813088576327456776089094845138492765270634636456629047395964424981815709422245608232768957640871695828653269412467906080353656436616138326252237378595576344740221576361709082746004457721140069769310201039064182272533071387941586466774966628362397156139823483399251379576679851181198257122454579246150962215683428507707585343237141924439241714952982083641129084822775043251623530310108714410420384330305957074385427857633990557707095325382199871733215155548363243790648127308968784373808408083337552559850184256453343702749900269653965451662226349758804470411961453071099009243317902506696136966944905652545211930248765778608495491071087893094129334938506984220137446876011742966243425507477863937019045211357974287473373423527696865934900077715087272242647644699173937921679192735011839442237498097382217043242755887783020509167374924033709269358606216510094041622768940777131606696948346437413949099514836708166005726739353589367018752745833708761171000361804761953925605899817979948941081230241481292627065719093619760487459913125143393235957686739339099653379138441029146492861405820259637326978822252343847363399939510492710480536799635371095781361845134850610497893134864387164172004855932174054303767419485763157370431232573316641919440895306850688320392285061210782219042512833167707920476638643157109963826036709822909304834793340000589955802211935962299086996073205239657797417161908319740545074163253673125540591635180202461352750849647025055214775201911892068255435246724017263977802049554984202756124387892931219496999991251900817163720332450643000977322126561896909971701142534215761910058215845851760605427276211305402370259496488978864948004652718634519823895607881555000301704482712377964291163380043369235951880252002182325191878239545928699797581157648893538508805088702311152308845748166570046156922982872340383442148692664942627670906898751888792681031846885674228634500740883428735089914505550979006314939231824990845230301641019965642830592125121075311515979925748802336472890152804743421753826335429498103850962577187241622358275403187103001799852135488268883015743754985349267311181746312017561340942600144886558845059901331072639262475890166129836220206948359351523842178556244285252424827895510832381446615127244925263258872993108043340257993554541624872014400867231728376045419786878948967599264003777630891927521121792140057073066598344175805095635327447187720158210205430017585345023678171909696934588710428822043305174194678807829273865037930336661815393640459117893281877357656443782304519106731656846343922533976583413875861051291884115173022968010186341082843041878523762580814917271156323513620243817662524758983891111608503638147422458783600731961345309772551099510497923855007784219694371872120061854231987225701605327932349845120740308891620701542117110516684000314429651369171350817147078956437243269638495650947950799675296896089560220367916804899580433612093641348469614458969759656880747575856205884990474531916527479014820289632277646262220358134360968777274165504402993798783999447637276281156976592522341754407062893399793938924247506688385436203483331153475721795545711222579909362181516196521810475723707682599703211450686843000528553553627861449556766251684736362009641958901481115602410192423505927863336278341936181998612666066792387985560272507223312617505859192747136847766815391608986606674095760262263774186751232518814373164000009022229051571247742069717775345358745141623955553888684533526705391453161568912623635031770940073981716115931993772866853670449133318515456900745254167856839696272966665883474975045749959157569108790751755672415947509547910627906003825793969304820482002233549768395032804168999216230430039607757400687266697280966707521786246692896138263341216203047758062223555473419439699643781822895944200870729908258545800367363189526361835949126040783264404380154140773769236998893116137167267240522017448281480892209431489898639813583049769034719596276934881460675225708700388887835605378466091147184348777376260826349100214250330733686636941250834384721252047550462867010739538358543778760151018816213328100656894654157547732279148519525368373103393984721304921006926814746464309772267240723659644332240903400243075749199245066023975745764261027859483023572449140433312509841823537577872847583807155290072608194380358061421409886169990992761791459969685069159879534925003374547734156433634376085045000777128704197578880353612959462227517098517591589586053446705391386363832011593663578543753174283194111292384279477186465636050544725582387510073566432866111406951220366423896673659896977762828575008697582140371691510210608602875607771019013193368607145789896849779100743586870555872283596108687420808395070097928634349118123317566765570113474888566234409894279677340792528865776900627851275927501688952184201614919802767062767879680582345076644238897969491665539098061075026339055484341749933748460539971407031796555821035109776156735292464982015535406457760591600125055281853902957157213610266825032474001487825104406014757144045331472359823245171405283371018250889011684653319811920372994879113137085277756419019120415174174099394408758545430007189328109760220431593453983927427010525286510028667679796142656036326774205964146267523388571330493990568632766707851105925521379929941018994288194319129600961069357341470066936934974560729051231942001284143722469242921750102423291418968764621666583249698507006590414758477947267639019662674374836498931831442068438764907889865729108458498890035614826051609726445766948289406081533242620098098078517887876739919469168578757688573522576394944657556015482172989017673877838145624454094841088556268914919835077627281990627241025226191342809930996132402360688577187798497217302942475736030264493254028468891561060489238579954547124929444149236269524265366210507116034343072815508840249877257769278839003857792859568922081015340267151261165109942689885502385301811238386486746099196905777359009547090501163611454109075493031751161470049757121673251304481263856215654302957110311083842274390684174024570805498584887471315801297759463523112318541401029665711322692018111329506072751133696728437268075917914398932581685702715286671516461240680754114755670282936606522537251593720057789209190750797323920231211970607406339194520947678550687236833213334913195757985618463333323939454304005562710226113184658525631537083756697529369060169954721765916285335171188215661999399595083749701569775968199082530616708010518618677942483252220952476156683568010698330630764138657447825845613416024171213565526247248466652971128069590992799197319936138522172867712881528037161166118058227078956864332977010834871960977587087183279473300475378449822218248115846978300025006909597298844044404516291487104303265079415251669335226412681110701992451843012311772940755006406229680118409356573812321823090835321882885150542776644695693069990923294572295950986979137896086703401433699836425425396395723871994600905529241238925309804999808597900768847367171798414779001345540427825491588226489410301314199601498761799563434565995729139745088209530683811516265959931489003271578829401231008797911537253976747794702324606987358210975281494069912221865648872703238024546907324877081932211005859797845842214829216827947433534843832493504045056780808121513964261567955549364497387570946953792139571655676466602014494037701536807941424898347592648624644716098961229319752797123292743209684847433690557605877725118954426936885529657838324088237831010653924969208954181246941823237695565378521008734008327760454277962425843760005022062624323959451248341101762916991533684511056949691030465496749279493527735699250189499947922444584292144855488495505604920164960771139432548266356127114996757552760953631098091873697752036093500052128116244967777428869581607275878934244410285668828085606353638376371646950409754849659114888586007196693364421796689468400267020605405468570517073558998238371535415365337514029458810434509911353739479407156815501668374233999255324564445275773105993754237204146557903249621274828581534157999480771076016818950804804063436772150993747682678869930911501127793148168743049455535062428084042654500757370585613912615101313598970307370905691790823018109602230039481934196600700060782657441933490709247287827673805361575008280475011236867697427492707715374555783627754190489296171563128032235716785321048676356482784051807770889889100640540928108300489073341800738261191738094756793772781354227252618881010056383033832925335498052959232805644542117854053342190415749137808267033929668500508213191425638078249918961496573536944282963964031400949962016130774144912294384325219527318232333449317279078392824166831081151127977655122062867944734741076732160005865403332819285940963275575103898628558187854488839480865498268908703810595431075380910402907791424552367941256884458704674468414584823916544203849064704894551387770467499720096473605175292213748303339903576613671615475481334272566554127928684766688698750656713364890097124455569147446565538331298465819007385580039994169117320791002896574943366916280782189694316632528480603363774265992064701491223662238045110552987938659738144840925613465698134446320708927849692944761325301705117489514574702424387960206933525976922316625324629343045875019496414402296179415842494418960066168086544315327105144909892581793828220590494395816573986228733392253534869393671081406840320253354393281553996085454709114205087578753089523546015750980537687351678091109742258703137988748098144279148077476825113856774040791427561722132368772479773199064038800789719046512190713077433299263223801798726595504559146846485772843295285173832156132232755719341296948695516415836206090113066540503543624672620590683795888688482420333730864638000606784509122788472585539367503672576138522717344844194894363576445853106661389152070824421648666181476859480377356969703552178373604638041814273418156550230203370621701395986018522196767042836186481224540612164640992910295271243343236934095615597590137562038863222796499256329079545031803519334675187529776530554862179726736901091581702524433981999843031431525932532263613373972156391245383094918446530636701767684265330257228734363627844844863593768928712295836149977694286112737618451575569592559555635604387904287916588267401375559578755394303406858257997900070514183823523135114754505167826136641500954353889277104775715107503313095630591701090560230191397209086960339087519309840402818147450441897818282083538932608663249118509127589823555815974867197015667750979606410544103933410597592170274794056337525911244624775741286130164575239395892454971082421798718479675716717680399648510392389635965636164707216673991141632854017422558636862245598884306367241293191533977174974350471108919261388765851480850788955648669254645379613004098086067936256021248476358670176708869594225798086731605317664802153226555861034141581149143518808291727653462863367680047723838338839797487020489452013316811347526177287235743450442985095092240171768723124440189908579200047364032174920811260392013351942753778428303289723683633703016650009597898356231013476803531381546757101272689974387796028356497215517346433315499704136602664107400742666029431285500273742992595779818614840661816550788836322067553481097977212614603472912548384974178245229395653690478565383635183834584972476650622999177829711978247552766987602681968098113231131445620715286266416993819900751661652067568763158248175076941654191324974107604507497948364115767200294587806600960992583824829879399678941371830081257251808301688089405448248077467373588298786432684308773291627533627080088506357961265422481582677137812794591828723290454357815177865457803158128455194276759007117045016565463004223646423452953358549863321616015814061432631477157947832871262006471123310168634970221759551923939214287306096470793718012169801969343571727011102256079486172110416774456829525203641367265700273625226709495182396626232358222396735584297280982833643928082636362692416016325312385940906205226804279782872838558495407905811414958203208131410375190592990282104536215542033030719088737884993574775181168230476836767871921976428278559544394514644147590380818211795639998513349210427326549015377889832422726905854549784526784975294414804776015539785871968111978022439911586101028059886303874318761739797855351133294404379175913616755616131336323648252230758798432632500625250622646190025692057542551844805290206943793232764837184614650679017668785970590348692428573423883901374015039349073902825020754892252941605155831057242885303877028110282108510908109238936496760518342774161845610587158315685585376445220402901992322889545719898346359221329172306264768564293187878952986914360120148582671271447107547046132011526893760145000472285674388331196267327062059008152139448337509105816623805668625177793300301203730286727317924926032735542971865051999055314287532555954352552729351522290164469585520111483420376029550924414984728483317711237698232072550007853893575041515600709101674908363523001290490958482940953340707871427740593064831959240179526701157413426638916352984731798727551263982816579546213149058803019682105707849181962411475903318000447221163868010895318929359392882162329616745676746392793653629100588603002343538812709815400674238099117826115298187857732008251277059241454457684245950930037970704180548614964995993023697553640225589004678338714373576468480135580211703761296975353671783012982821693800402951607793133244236139572395865799611599885744622368946284519839676190396916360818731018926114158947040751492192673475405462094936647481741280302224468066331126792898777413002595795628103036824819203705474808866987462046715496408102712773391208185140462279842178024703298396928773000407932380228871753923235706039856347155206639225227344884818377657946732833306758687877023282806675791813972344937619931285696321431542459542333301752954568876888165223339340672132979462491559195026719874157762034637156552048802200506411631822357162509500555531540243628514315154047938282868810759357307441398960447273287044016705371719259686993873208069164901484511575038417610902378842905923269209753722585370387631793890763607681910327513256203053836510880083630304723772604710401526710897455140628565981075190134365696603924909180759347644305112510712890424457058830551888989219448195889078512354780663825360768034762354902505651144837737425203181486793623250189582575128026349034025693117223198226950257632629529285478841976151149621051994868472083032126311005261385017072035163821943216205923518023621206510070945835533921558448303694092236409198857467738394019922193245223193399638451879617946420512993762417687051469367870415774935175343427751126916387868997565611580201031418079571085476813347844783810286846816288148441905250376997553961158170445455375778155525472043201151162151284872893130791389868551470110361040567151852969829457897540451031822141046981796856723249096713613979660122120044569611290634371462463267136181307167834640454594203098367145347801776085691582663658870827803026574671384404171483792693922110294978455747056996007741385242098619892919142655827787052406865017596833128757578571849191921361288150929348647154263172257433373846661281828563880117504565701533994805923379427485825340433022280320733674909138152389599036992135648265759353165267635602926977461496869241294902180329229864940499949535116420084329609778914842816383654629687958978033361620042057749492375834529315443836194220814168397892857817980428604102992661313655833290737930528060141736224192551705550166968074752060926595243854126425423959264787866142554423802705328836428603586432101897662559940498049668180742289555683121727947458892475086805023824012908864784083818248250732786893964092287259463305770035456144872071962389980746497721136232951708519862645268925147234883518675351586378685814917103047924975648579990257642741804926933765647920853334478330489147691693597471522964955841560219243300145673095370854851266840114691339695046752595139655327527991229673168768152490632209758651467879302866989878261339829503362677724204181338272980665120103907688825674513049867126994017638174497052663267380644565670470223706807081981577399332195677483346738793392728453317179194532412369549799679490168142775419487863067001446919736335787995938377809436646495640560190701971916454560995959835481324027418074055956122712297512728815499309307305057525920277231720840214259396318025924227558904594217035326542003422741419788713001940290299122361601267708792594927066188614561437212473010165535070412813723881200800399879123707094037386918281633891746838498249996554913220174343788344893263093613498734888791872720258654261555867510536435123207273061176425444436340601136559958028137871750141413087366615401900138589900466018874533836460923309984723236418609339245288380698594156534176366214762703214611563453460474614384867774966537287299744807503508822869436644799831176620185542563638078298682761887614025182349149838996060518377347237642742647978904719133030318435344935496471412183384699358243287874905975433819544818252648950862632122686505864736955968997279085036354650291001328561986090344732618644542964915219706512979792926970099291160378250510590904389063100005587208706997476103378660774608990437641838988954718709761780207970889752711944866817914601621500681472898281945997497281173116667714439094230535955754770233228093583629078859704411475330644166194852431548431934413516929384652576721781064488750124422170600569695406936089870711903701913323082683680610140760805270563108021928377141574712001856235554480695028130637181528646949262728741018507803833380736358509922136432333229533568992131054453680592327255399408151826021283769932090104442999617110496657590490142032718915085076311718174656648350985910889044938763904216315927421517000940511609799429437362710744406862049708484596334859170983236961862860289795834974117435862083855177924634890171481334896275952570923443558470096434719347434079368308703792203398915017926898151875081562133963150522738988455226297198766321689972932667420166658550296166472286348647919852949874033961046714142876917221286784480079783807477459208691544115976608653064011724646028026036604933698326133891893151374180573581959456484689813405717323082661001070300111832719222511441581909661025374969484476239420912940362447677518829344336473270181209619989451506240811566989350471713951519456912861042837637012120173687294368893027389092605355296437054146840040698990367824847568942524930745384697628837796386884301254189334024406575433516567586675791325364925502461158858851635353495564147286661831565222026583274365815341897633734436052177181343085299403271988975847623381831454586281057250460470799833140566517826677523578285926947326795099719279985550797789498368847616951134381077304766411513026009951896664262199296760769688991689619990469605785417561714251221676199624362043867349634787315365238780437103667963896925474918343873955259470904204722874347070052081151046845510779400062014245909339582122871840262452499901999192578208230342494855209732090682983343961074108868067350460424726800634167013257478127190307220914648120928795967867034990753027779981033863392616381234958236052112768236068045916490611021969525904281418624120371857563710690503147054027365404347634373082576135201650376297687816507428502858272603928141454658275114384771658835663872064149336673158806480865334710780639451614211509043887117337634220252109977329690739167490349369959919049962193576759516703387586420459239067148546775868555784210702612136885901793767113332521548832071280194030818916633554062846505059843443773015258993572527878541396558781271642458688120846741512633753650636311017231410243070459110619588510338930467107265693466877634163476264382759072608625759459921421930903028087836255692546557410313663380445669385512269794841251635391855272610494335333551498430032627621703189850752866325165530951760058899814741746666593961213871032058967188641377333083340936231605171805450027819134035490693958572358548103913946055359677267185201634848333900337936298278416406015152582576251306920783770296076393508118608963990590160687572026346858577384424860832988436870032842401987167634231845861582856679362363409213947296996805081613497541784557395712493208378323320147487989272867969880240299466284210851905876896596116622646704799834222298400170809320892032688694206008618906403314301674441838182490255259609145144226663610634917078646605754853159314709841150507959584670704228295768445513966413951750253258644172692774126618470353228053406396261183580024343132424771283539852359077994293040864075355561994392136307397647214499554797180737393533575674753350371921744853964685466820893240742300913320481077606535381084098123417722784054485046891114210598712274398732359531804737696843043772340729653892736665592346117645509125446993820971620805442739306683208319635258378224364556888197548967889812932307175863727789794031478704593302373159479627490407859889960666600727556832311850910866244286984193035996964186635944056265806915971737071126955552763823234575156685611282241347609797621467978976727157838277838769589274909052621855276031088818703198455576379602780367256331363926224599897774058126925746489739783748217072914201609791459149874330119479263691501473876828909996529295145298394328484893166370823887481964713007014783397981341227246028720354934646634100260023910479951741790892058317544826902257111267956451803812272351399161214919706965407690279563531931497325286615065614809884944528379769652523625533695705442392739727325364846133903004358149833598413698242455779187789421250575963072936915195655895606320951941731453082306207337919821286417840377634437085603144604782179072383093026505323037334457935236674784757211627759819459461067124102304824661904470739373276061806371940584402916653382178165958979084330460925001308486091207750034972413583033942188909778500380803068929577405425001027580453821278204675476558772228026373293541872066384827160958892004898220167848084831954676242198250154897784818010045282522638563478518162511530792284234204395993022855149271542395811713118417383830180877023775742137703522528882492074186592024514586515278252198863619529659020129414004628949964646269696845271879306422906213899819244044853063812194372586052729454299436945837243891872254879024223230813866385683444964075272458578280563298396382434111774218990311736609171635182990721342447443079210952257261932246953721813312732471894756134741877997976164749796983753804973805941678434417259971950041460438188704052449411509358400799533197962330374281133674599611292428199896605641331542311265377410811232290390900410149220239125692492086992719659191103500828768942697680705847512810304695794707156302517740103992753166715714055933534224976716037750265671373322279038187978340355431073040319340601790346536926039058278650751988654782240788172040328193921102562050701111611052469472685508872670795291192618265610195602333988116903165780704407142465113475475265650959955260034075031166871067266088955489455153462931853051386540962683041732524048702458918327633066119170827998223099271805867274533128744571267588726909857609009681217346030935036843506282288313102936550797740249878572566775471239876439194552529997893640269561761319222210525489349802815495315336536722081727242355680784263606227718385300673597332543401464651554652251842576681169830169204962473586174719947539158735509417992373310187808166011211496449830875875435986876721440477283043253389528762455905462861243653452226678840569109925812387092441660130988630479922224002292983722667783839977318906689137603524449116741759220330167469173031741040987672715472606371971649613723869095886547686578656899417421438708778255915602117094822113563940553851610676048267619118301249785233016637670603369275462973871106172124563605209664298388221378245944706151615064802102501082464539343477718398273844610318247365486053268549215516057842633562754595575836145726634834783839872334039816102848410810886646537654698487072174322254312165471641697664400723546044595789090593882527086487287762306410336460088160257236992225787542442409740080417885027888591723889023492679363442633254140599754775288216473891750002928274541213434335344507744280880322102891816688318191392159119235844471349901350540354494288098416861762612796241233075138666275545793404893690204787993578989461763101205036355880687773435796767285520347530641986305097055417877647629110778133872739852917990405910411512731636630060521735466192687718646766721099796262598376530526975456548201416548865143302540466587520473732231260518787472072307971199392133019421822047131425726762438302361200070218649962711744375263827255874202714484394550527096138687999473236216730744699798936358718524062624430761828884246840011275614520580232893063747570705890291414478482634719190578725429698165068522841561544464641243050320295479393972383286567308458311448524680206664730981551636169170428190777173797310548097733863852773746369677805323525665753390851447784454257770544922815678761633641244146467152151535151063903333337299458614211639367919915691377898544980841128941172287441385414346215941668325537520574135151949764223585357640642509728926073556168521552758644129716666903496270583577176354278423445360656270444010724281179011884278144142297093449305440263436981688351454895726363124658591006830760951105551632852002905078244785081493122739043168540680879555449422247426839782052535967810198236694617264514730903905602910608538003793844357148289030734160484079198157363766257561366775268763865513125908360287133733053113037143937541161332091252804497528246396421418241659586501660499671091190267992574775705061043557746688265728888654633919963305008634722604096487630665823249525862553353430677887509213587644484138148323609652534620262866993580706160025514741921584606378520625938904903163795712523375882508455856458796233354795513133778905398414037713611612410073998218007422215428672028997717460198068699423132175978198544636207716574767485810086002513835086351723821898627517500739051051720084113583323216750714561902137987532761504324665415576770222724081848284177723563512525887242766792560897773115953601951567440511940903968987420261405190484994537433533978439319037887369396409901328001161270894396367272234828105005092673510473665777541370045148864062040069000531797687250866812531815964355567329774958392387550050117634073023258079498396000990650609660118355498520123414216804800102887324671109886277150494545002963580692164726583013619700725896270685678020528099362799345154005863896311396815745912808775222479465785006757704026389646934063871472310605190578916757768026874182457359214838256079840123176101725773860531524589874477781479935341402560404147637075346788745063551355070683999699483814362013282258253273084379022553264872077436648795928518159841655570217529520959666403048239312577613548326924923326282434147568071309758244671397872160660625459999623563999734995553245976988846081414280209869484803186829318115184454585112462522567340025540954544988295757178111567542827895912743150729869810050891760353855600011807657745773694002749550191986961559423260297808656978048524076438650691051712172702381194937405015088062719886815963980060856845820294703638331905426991008007936948994663637383181756018468841892832079218761294092104663263596903105143031173050318271333058522953013122690412432276270778842962905156532818384840394440894914069849512246628220959998778686455198405377126071070374676234908120747982413093014823496535704496982898475411803824760024372759886053064592599561002682303354279785588748928112043052278779706228854719125882999423839935865712811533968144140513560149636369481544156998202545476148291311574741618628275923209818381486528857583196120830153270725713348750653393104823063558529053250655261387106528712149322567787859954440813497197188512607343905744909781629956526924998211311543132471364183807119706961233906510466866684649101966410419319426829610246830857721460972075502997961763531826274079418120407643792146646287453008579074014326816473553759540359997689937632898438478111669521299752358506114422189124875320755122817976846008713525145703000187258569646340664367438937284072779848428299544727938351043776300404678837055842650936898947874463367062588757797448722875758989248961044703150367402653359793519721694234644958938965423137844516950466118815669620243233287778879811255633963194458501843725507889735387117347393185425959566824006673214422586242016933731435877385141558202564493520483628697113556772747525922073085234881986077503443305733926454763044161245065157836853554236614891166074201137150169630925429749349832790249813651145550454124455759286397742497038619140288338544141929355597455289934415714243365292875893203731445707152877982204953131893102585996458242280192649320953853226602949576288587064853466981022330079621905880697341906641791300003444039101057170990360939895057289175424848461658925076966123959083213328230724402321997679998224766227077687265541974813334946242516119105103844017335187011650836718284364334235279514675024328902216442986246611968306441211031582867556010409113626542912231822271938196957369642516008986365382132840607989309710332248037312982017825575882171810121701745179787208619732529812094013036027771836733406696653868026486040621828255044059948338515509916044916632713016973838978392031357159526037738610694380010166978797384818207794297731242366500426421105448439898750398230842908934676357992300369517187986262269365710904264622361021688269148762152361321094855025042472436918336674101236978384593818588682262492777221599044741359682146698704592259152213949676495702031330362631771003452797293319018682257578873349633157531866404518035823909023787289960690286663703631956543366853905734725558652492016261321741903071058411649785651609886084160659489918991933631459541375239770681316095665053007977347473944462696046814263808823483658408458642132048764920836574208144616339932176555335182929770254406415097178296116506533409768596958394647488551458962581632837201542427764532374734358259769460472250599865339069301734603745991474122001955135194726954101340522475094047450108665490260853180094416337222929036452540135076226622627577541557991089623398147520431559539572448390237027942816496239323277349138164126646836982551341206202999174882636303108297965648908390932898770290728009624285394835495202028685881754987547042845896742417076302423685251417865371894263484118602636374557633668834324766690040718830199483571906305579927424325224492405562332376090110960546149414420237922930186477553208753574619284085248820646466104420960360619026045597745409534890058753985787449608851915574709906459964540674841796794623372362746774505301376649022318942645965169233104838875047789266251625484540006094400141991698917698709828155158653858023968558362650092347939487827887228108134726280516627441130036843283540591096791781491055138694547414188051769197586111278653753713877388136104439910613107164274101810268063591009013969517978903402237649728065773360764311478405035345726483689982952848095765759797638528766697644052975828052761622941505193795685167671202959822106742417763026390035579554507435075586444164493587167221493361924780498736365983021470170209588524524161753739084464729642786532779765106833296469224240805225369996392786764197311061611112792119993548675091245229050687263230052833957182394835792809529163867001286987693038827421514901015896234887983217833829462900237596347236282938545321321991630092652136751280500456156901802335913281639876364931598811503047079691764805882806114115641237936425039412761197943278977343820081360989644203523686692195589626150355977894451411569945491816864211147291307368471050544949403833846197224259773258621529520442180903222274951950178799584144805459637707195343503491260291837999386659983417848563587564288616436036110169973573438725166768934816062377424922027688620897703618378039938658189620710422926982250389068110825544845938153646549226980600088569130313350674910211271861525500167555624796033977329139639948495116824289012475930769684447854523760571938214472124904982922314931619635669634766705173617774125158617075263395807737709435613845173457327049450520978829014499143591662104148184859733984766489180917029268880193065047147886636657053401590972373461867135892131470736672877829016738130384655647677086259141856725428939543434858746973253054039249923619914115099376292513762652754737810838390198594350364553727350931232614395060807442022186722583365372793637828310991383669072755530718875318192293731463798295214056034873749989509685009708750461648253104956145625433313359249490690413763699606794271572638543353540899235434899526876832248130566923220074099720191099534120757570339878763197882122100139321275755777636554962558359997283161990436904373994503518170740562555295356167084661550975247839614610558120683667250405177092801909254504219928551005071275316515962290324195785228294602567314129802664118891857822296956060275509342975575672488393154908054926971855090433029722440906552233785595502380153770929768091325072554495171981598131354654155776985267555650340395580368260976870967763246209703322576060247942338834333873892617863593143924297309982183271199854970257216293261100742309991117294167498360267656878462144281557308270991653879284105707233197985376117769578076013268387408809504790795810639508321552483465019666547810346775263726207554661001481172373781164584567853848347081874737633374915772892041429938539998006409517370443984955773272374845603010743671922138065682742971325925037586476233021672680105203135979104023776189656100757531949519368169980465505614205086725909021385003277464430850387287270204810560427422703738463217067754066187469477897944832037984912808975860800240224855875511221260264286261700712460957299599346806244829373915959520364567789854449448076202193586658989878846287497612259578942861823538618440652166392876526315695734478080323541481507956785344528290263710725545100577152228157150636550913428584529564532352920587680644272137720899644164328748556403075310164832525690918637811663035085141179483639024976246060674752318285046329808893633829495242262244717772424959431664504547537253835935499996512279356780810626895237357599307680036046722796283790612253738575961391418414904912613006545086907431255817278333542047365143215536491170250084511758995807721300140340191310643197780348818716466913161388354195747528716800853907064132330434477609839792830946163215468112477755428898251934624306927167796537347329568246970074374257187881880827105708879261546846003086082880727460739994685550634847771271696123244412344298736737354519548194583450970140432159362380581538248291637663750690388189537286545056011849969303753413609630607030721870567270084801798869684087112665456508751480579465464195783049514814891985544799048614041327821490889726277634043483184229317694997392426215784536061574847197245077775273360632566519909289369452002812752084823311150344343976116306076775728551472011125025753799836483874616392670758959329670306231615644250843502971472933327639225243598969066894872954935821882182454058024865628171788660440565403510825624457746467425372473762931232943552388072135768405460205145417206598958568110596725511642123429029333821695951869221273758434766172585058730760471326240126802486612451729645625201436094725171534242646931040335080747383773343496539031407766547706388855657503087041155635781838300561081013397363461096521853503551695572005816899235086968521449076701517155633095299217420804313950838383131880048916977217395609814995779519520435964016616962671909904311922556875182935660893216577862554453975365354596864747039354626451835382607121644651833405406231472626035164363869477778851347688636490564021800093247144074409776721794963345330851213132398459322474758235663122879091576811065392714142089165722254932913629452116990165174897961903782285194152811841134515634884982434796010377542027305338663170832307887276627607410534126946529046519726892341870993178295206438905043592938747497871710925968297648020690248460246244204940821262566212066195440120858489995459154143940656404336871206600389830938965320791798257483595531898351716977860132838522462821202959363438671681828169192018195821327375477546709801920077365161438336401670341952437780636025724233739063326894793400150271178891740787618277782244353732879297065690481105547582518121971715111421563305789693907802170156718120412807063490974576730658799741481349269243236587248165084498650109043954318442316690505899396673014737244845057826143222367061051991392920667402830221598169035434983873685651510230655648607965057919022863522220595435529925243749300303750278142840489952125368722878262866026282586647633907452849789156053585254509131006351144558066582084329503420375032705442589905706353741732163678219935749596298156940278346455178871836383850544176302657973450632407369307897312327440466768935772788852742675630292464156748109925854823970323614532100537054215607844844635637319130896804979106920657169831390800734182228441865442991483724267438461218651982683083359988876347767908362848913342069319909257289644925151500198055161528858853862017105903581076028667671199248007541042786779638031381792233373283138720213001358378289448072737089468950047859797175092871663308628765927164390947768559986475419470437109369987429583246925136503643314904273390000189961387382412140749408372034161740730778424521111401191372705117080037650993571569714954269989130284760702286052037940882816361790765749001254890105085521999193213006625949307961344295378116651482778209892732827294033854085393646257297267493538076999068415466498893106099957127306513082444003008972529230028147040833696935523597699084740931175611706946761575070277970343420668862634096181232935173493286307815534996716730840510978655853214312189880619625294347371609503094132821393677648270356337030483792274556104524267233291069547774537931421295426900054482187495360890818219654465561201552169687369258753615267954560088632022580460197072151674753536242778967119226947185192609034542580575039245227169830897441203768529990976494868981065086070943458900985537538680118916109635574410517106423824991575176668911855685692970675989674058139691624725230115079912654553958742018747485073039003935300789181547241736569000043010456637376103877470608364426787884278933103464119197190581643995482617556042556617592146157994880654308467860983335896143819060053085558337575584154425143400583992716189807085981546789251812554879182449868018015248028656162098924003998630400139226948661793523779605064857655362003606104691061327225532988898288237057511254238195926778790327619195111466822248256849379769032581261266878628734456896799028850811516939464377635468310535296326409515312434294579332471444527525570459299717437307340085363167189178976423191592202688111878047504763393159678998371530800274027527735295782223976954740124419041228506006521504440539392931724932003470498001490995107735110228402133475322703988096646107137096365326255256643735485008836352224912673028062867963444614462386541396279243512561745182539951380367367236886537516560274156015153002466766420606039259266782893999097122360583451079135568168354038402991270862864939044760545099379990105496300039659185539484316592333333749938094033104851029348585631624239792467418585320878934515543164781318928738163053293851409915660675018045367477778188587147752948031535761516879862119574884295829626086323672413969131702914254432757393378740184174269996372377146680075992096254975426595184979831140648076527248015241478301307044220003455081714611295198127189853987709818533001639211044572521984095338785401246479536463939949470354125155751863479218470083682822599219090797515847927684909150220844793843051899819110797355877670919014223017214370216805370328181227311205102652616651949136802596890520570553591320274866083465001688222632789427617598013383301617254277719336346036152899151086345234304359567403433213929923853364107415308245415412569078924396043472383896314874546933229852324405576784857894591072443800957209572630547306293568428617085534474892547552449999185621499748419688016893183046899312415817160802726684308612426463695854562956151822331903292213271677271475546818380025195568317136779669211192287144939969211733125673282991347297736060445878999006588066062969051169034240165572319953854878093138296491916016510594858593884134612832671452812737282097068687238999206434840062027691507329840091407212893127887984529928948110948154392878810886539275830881164139463595077909836270539265932293863801945299341620083389657153386754877964145950726073737699369665953007727868912200166236944066588388886162112910992659618981667501509271645222477433407793678300151786471895019962215988579693616995892415425886035074622366453398763346830112601490921443592324937047811358129215790859116255026069508020178757602812996767872150097939015042709852706994597034513723479415321637312708343151189251157657165894340676416733475389447523756677948981643105264101722306153271878286229413952944410604934568879145760608034374348757239764073066695464203200305003765379804117810370923624888336482905736460543204837502188133854530701745565227756667530954510474846553038464149848872479629194574462916813682826155058811196524478657495805200321656184851017185805068345984479980954866673098691488832292472402925636229608032820590518837483027350003640075051649888889481612022763738505513605082890214062672055749187367679377944201971104841612597379720586459261456452901267877935210728942403603763998604474295166058807500368781268495752252183617295972974560348128705322083039597520386357746533224610451663899702013856341933230311578696720109642896904199405499071529572883780100854432383207518779638137722593399515601275262160813257462854629222691479135768503933753953947912389230781667708005461930886411131077132851768347178952858871203505752023716165161756038064357846271709752861728580642554901010955997807763828635145384370845099187172681354484833462626174675763366156592466278232247162438773618520984598745851440791615876184605357164670339608000233502667488180047200628395109478454496081389125819877489123154990235579758354377142398242870058907296187894277727011297855767584858109458651170380129933016056520072263719665161103646066728260989136427821677061616504703013773428410085669528244165117239299176958840416591580927093953976046092879346390905441920117901961891011343119901692062033053093962771666047128480654480830303733350577090269882943164585398011590482293398600486775573523542817438266374021099831506648256465555883983517533306675201531800352592794749162967207981947084886002404984378286591837494140547916222163877635718710587702268940451949716022115235111081422995007258132166109866725267518652479298649992323545904388009013571350078413259049750167749620796510224900204826314317341625756267215856161287143685667287836682496428280683579940637612845199820534799450103250330570261695814730322568506089357886781663396524167724003457326639146915094565396202411670708969603420354211551131995395184450473410381502358201940757799607005245665198682364309762377539282792231047495124577854995481546727878114091039682347631038428238364844706626339339172811889337010049520784999179504715495965811950899734188384873631275466411613325220639797360850384587714980094317066976115901540704998882623652871331369173409715584732499753214673617147545791197852054359887315574416233862049866107632178781888312912033631690452291848891966833947515101473750710857116981879881184322804948288804349695497934395078204519304991517377893932337257292006373696202859444253387700916703372607321473178106672391718803952474279289063038251917249563864905079171771914199680559315201435094514351688372701452363976374764011218803532938245914067173482245620190087913246697188975727938367984532967363510339904189373301557959045050157029808175781939487820787386489800199629694926741287385742294010247496112637726442275196415710576478058966377794826995500295154751203779772322245189216914055751596538305949855174604362045231592352015983905992446271485606660339602465914459412850236046500575438020977746354463765831027146071980039867107820577862742541068147502821890860601173337083465473625308739625537738434302309156725318498815140946298805912607624240196318485992146503168066764893279621435201142804361705856446760844688065303067274728271814241379555288851728774001293094140949871179366217955301796424305648623020699711435739780072334002307595517630646686006306967951105528999315621788587171114906544355853444817413219632515184473545771050996891794157553373158760810164899170268069957363708547372593290994540877688703017762539981736450175983664434574536907264950399864913066789912401808074250549126226876731755729283804243607708652772292680404559386934816436173560587034606939163621150549785770081088787513480810466904304682575868754753383100023336824283242749651497651561420859021988120105032287386898254738924333457456253800411428773706949086876867512697100572641359258775926094007537522358536497126118255048114575194469502343485343870686750840373624914038409089497346705761139778608411426813384748537610915967145545010509322322491479658971507219402548628348303499352940875838111147190601484705374934283402926314981059641570252157661758939821028676785268878986608777294693300180241320485404313057336003346161898371403121584546293687060157816868494378457902434615179613479837751219596717944232991829062682798488900547924583819815194442226703902889046562819486966697845571071557722336321462488573076016564514572772568043894213228411829707774553225374520069555027242330367877582976502368513828693708954619304361996160178593445116162808217614881946898700093225269962551110344806393205601468511402580751229414402030126805688976432595721317457840330430103998721794184661383208769162143482105844866947453382433715179870006850276824958756088262955985389825786408740406523713769211725840569333466699677403892534739580659520143474928995134365436637814360224318794181027701920831765012752576426367320591627643763042903719952282664025731217765349442832637030373131443495103854968633639181252878702242984069905274983026946863234353869836309656070905885648398545099693046775965045325725451924743115735600183655270199079450900975838217803713932867104814283151914935119435604761805655542158691385453126122867702233900729426818255149319294591273043420803518943894023989694226161074586833486064061031233301883282352144540112710822868500225760328139452201332670692278227814770254341493901104491165459562376338107796097872218122675013963520019065849769481695904330328216288585580219331712407789640710809783304677066768936699454768809776746595666841455104410906295777030689495599172824967042666806794456685919821490350044408966456163580033896740710125321538268952394698818642461247654844375164535303844403867547621209203000637288187663889277696214155220112536151616780829392764910893227571185593040466068762782697490782580294376792078372900527917109343423401319729657105350891427962844156840789029428715754087519456737886477557446606008921446381238145759887293897708007159513561583535377731411673465784925300184487944176966857617958435249261378500400837264706103087186579566423901554382716672182906303142788631718339742849600783639201059652237039796504987037232680885170372168213036496132225038886118657132398646505082670281540172768912464079968476911029658219201810033454279460303548594867956253800930780939504291681591501914606225834906248586572687446972609916880871944774767238314030318039424381573189545616648637628971699174965414361975888026036898667236440355389300988176539587960354274406551094938896120173639459814848687894425298604318418710039885387517136546014451953806348762628461081239513039558879652848985850841719635946138727855243317878417308617470120563499796264692383529930403642985261260665909627307682525187197659252872267248378267703235622206264506198262780366689582539449892970400278900888937538653118913335148636137902953807997313166765619047601443752735865653922274420679980595681603859448700571700747147839677825374425801748558434440493733085953636899076810309060370176355440554854861914386711009960902767771117905754497298713616253051541371934057221980106923949548963175983697178946220173580353527032546758232777462698698424359907616705870932457696055972592931372712245227258545079454258721773059740194234855970946408731189172260779763708099619237668122415844006711526315947873903614526994845073032562975036183657570334868529133615948803729923591577852476091441389676611087479687226329833992710185002365812760268809467464045294730867327643153897010079047007306466191834553726587541756284189312361904650245817962375632593542447668993934760534892876674901758785690094146456849602404216507606939999000738918633945768668586306053531531028104399214168131690739943860834037283483618231978278751400073476878598329140410141575121995217144642154250992724473661099416802070153269787500977560439093249898706522359428378966024354879484022910041670359065923656979072419490245801073668021484631944007583394219882176892771068261998136885773815859420476400335036683043249314808257669377701608651538423240804686187290184575396703341654495352700449078311006990313933186304235632633040243923397799861954423096320105292031436951076598407345770881670230125584496769767042634740835282294017020542396623571116569416342219024343364681679727599522343960731072261026615030491877612075482629462624335043762171582536449377734235358530512188107845464839561962300288915365120726190196459726056386110055350485095252965896541788186949574869207280065966229068111709202621679327949012912445551672776634135044693903166874828346675024788499525408448600242464905554346768993596703062685687625177574467631282875074935934407305630936931774798988237697284984557236562301298898676698692996429374207266935744876144613066476955637005232121548449950281638784955635386757916825502700899874272387532549328765959589030117227232884722536542488601770151842640042704364136391267320509944318497457479756902072522840229595311562032558430096955716187998803406303006883727630874621642183415218435984482482389417916453280908158818288508269615031315817238195952807818574083631523205231164396633118125553676718875015709252141727839973877468569029428605493190349730879199922237959307481291503887909348374238068763047604801997224528379433287899096336734329523485526063251806601995107638742687865999026705183573686877903683564434160812155401189261275272022241049786027178223934439967863379446903888376025499868164226573798048637104622153120040971952667022017180590768441488601285488829798627341125613724539728497698365889401639693218517507488380301047735926002575315436458630785915223059234707386261316253512669932298138294621896818468906346461188394888860744451979401541702002127786652201027894088028589166042394642127381628503686308833682440504706277378506620065580617786163303167593593695601237522739961635562439883943652054289129210516944184130055350028595049340150857640047736835290172801817152659791849731855144387275002855045221239114216892900282479376220516348377462790415181697916694964426194381423061629033943851940829852669912421223275100646206797502237398018339065751780112254047636044569582970431385513595686765028331525417248840489666668391392558664717698911436794495406655164790815820426883086660860645068817550516093906827408366169089556397923762414981591100437756913279883080059015368129173403763550844403468747020333690822300611181252684678544934733601418450943644380193502887853809512023777478862614565548553822114051695133158527551629550093185870291186553724632850269565151956439285212581189297430558144747760670109732023715155900979729877629767574091456672340183549663065116259877788797505006288109425987275903240455238029415091972533688018055535859505895701799545368549944021583173578627913902442033835652180230143872559673788863520813460941489746383727329632465217738840217973936732054543694043221784042611767298119551148546748076769689684077421524352016435684212019712389939925620787345151799574755839029202883904152461424727228755514482986804928295188081409830325866935726259589903707356853061586068354596973663826364690542099568432690293950450068604488927213741675758034070460944821492961601114311086825549670492325926036275098581432090986023324132695253668664749663365823144404685374175208666303401546589033030063134010787582564045747761814735421879786562418474367855987795327717419645918546077648152806924225655338699494127265778882209800622795212728707229138384445627602520290188167326238011331544773773590610046578561726303899305697812107723894911199704848557418156545539818301870115610794133346263573134824954332998773038738531410714831686767547543366204030992622566704153413219908586931483870524974385181800466547367879187607412381365490178565010965736526863643967882708311805228040816255313552281262441944520865657693654929572549501444800860385389804486570521729985867647437938926110130031146822643282733248595915672555236974406388677271208892662389809703109056518759582884038189672718187145760220924030704216347259577272343717488559608221088471542646203397326482506279108704417716403493841387775081929841404148259513503065018043103651517582283128582439821631120005233732852949977412407708686988452119061351928791078322157541980144003216562865769038504286890202630475519615644186631308900576119015648903576202327151390989903057342276399573383043258330917971120676381681977339075148229973277026769773832519768138432696940353908513481947195182613601050703180610766629043417713174984415143204104755734728111592421372523665209369721146015211183983702894483351160859063357905170318657449004220715047471267631577941929988847721079160141968457901908319293598640984546691593185549098869301141975871098621440544876094266106141384101575728876269717431781935276043431894499105744102803157450964456254542948867284894226453993987241589963756293729914216675804957318747028766972459589086438082250615378363216568027933179934668260458355647977343241980649818670826301989735214224544198341720287306958667604990884472824654260312078662867534531952430907169364422902078731977110862583140286161913077566979291983046058262543057189698629749114542287774260739049023597397021537187651674087927169878908487921505184868279004746301376077085555780564302085967087550009835179959222335841689075205182195148942419111973035897597162795807075552092651776740660747441565123702999932821866342276343446442083631344272915378494016818016290090098615073097934774200371677045640564617539992062112872643983902790322669461280858201136793316917286472453148673712024196152085203876237282891400819186854042580327345784458762656359983495236274454878096322895692785230032669654164884702202089541533672433706082511145549285445958000712013152493413934875309367410414674549926689839498209852294140076837105725238431137702663378337039915528670697610182912272149119667076028640896080209067517538019188350209264715943190470481697436501981769846826443170215088824167036316606508131370489907699907601486263959285914627076534071071787347181096411793948996780501054143862293043042837495854049193608414591147647970545237011391469147563066829242465570078636075290051630121253094741256080220857633239674676607879498922945294096775333248225451266684471468093992827936667439267279084531651163037029460627939485917925595785149064725749189582459045568902477826299799412072361016249400198310669081076131421797492723136947457874639613436337057791132658270109039932181279017157759877702688453809247708558396443339321987099912789405934648273269102909378344730461801634553840298514958104675077688047011366442560869218536856399799345811436507301002949493623233088630115635932673036413234009685164594340173349939585095437694010804003591593781540996039219010759653559229519041335731205052607029716138616143928940758798557310496237909345213837203468071179939726839787699960402364010553612009815412913311681581426225692824541369415133533024349939664872001122021333100216259887046563551566424659138546301449584490328917761383328823303416531103943215958753353297874652643453958604645301643979397002152687545517109098260019748565602002253167475383843991356818465691123111207913785322977470429043536920278960454225644653406151449281676553666480945962995855230330703200663711878890772541188762141486020329598002787470130351892939339504309158677569534116239522241390146251364786891778958658106770127369827719732441431244241330642590234012316376975555804248781791077205156120492618221337790114960574557245678859855944621066893383603697956226235552872842584710609353214707092432846135854608526816699166701409241471021482727968024897494019555747898512023243683955812690030733171947581428306277642915849485449562808258133179849412731091122210451462608118255752349450367980753298156020456921173359043360051790294448512841794849569643588240919870544575045358878431738618161132007128990316009291207240058471695428689148486568462652173345745064883944167086727863790317698962257848582616619939310209790547247854243932199678751902310590717287995618996259502164655122972860972904261767271220448141241554003188228666183778430111133530984446045150268792304620954819193744210704642541833564916473674362665820903509642253099856271545184592003604692590356440926353154033667989268393757427931169391394588412783388939608894995265056385487011906608705102010533934527222054336482562119732315865141848427461537302373044854425432405260450883316281820325720283622789939266958646214531324166193502157239040988823047388893292824748265617657297410426991667631057257545032369950946228131787936824643496743688553544593279466150120900153805635467984980135026923779417118444255590162295618456009551235542459232859492190106369577796906519275977586206083978363800251124990229762933893698465177250855076482609687311464259224744617135864040449090181514704355684596657763173573736405401224326993299871689647142565989367897507450925349501376114578876586094805957103142592258661942013362243680330669189973493759326682473280570152168502159927804190359678821671046620788453402061527835628224588357568469542863170223956293462371079961245409463605296095839767506427732818785051402827570733603099826862788428636723501149501217120788682485043600530571308975878125064467399937997668603158126566697262488478382766320686798798774709314640301774096962779778771629666765865391800388051386826353396586471788936826439992895012146571575607984429334878381119444480550959843613943121119748302754387367070380481813106834392386171631135361519244527859863894741828790610499622185688521499602305108111729274547199617295139443360292474766395820548603868823097333314520692690332377612993382901441327184900485807054068438972673927760458345518898972422057877222173081606970198514003178761975203302429499068178667608096770647789154712154417174768631398090039845323996895762697669777983089764504936842971486202472836768258824832322361954740575335778076613239061145832881360811065751878482837782229258320296656392153680890278563925176341095874587661720190500082924066801361846202356026413420248107022075044593968428826254085795336725068020232435731099141606436764361101361363425313758800200857363938331558378713469780004184815191931615583008019124251961973074807425936400341398131275617598864294908457779233145926284809671221550294144425523893778827295647537573848098369846955037782093500681724238189354857778953342703372882179701900069127294699710363225181767556508380651903586917090456692187478234188471226664923277745614904624524806041217540078565100896804359896646301503418018553129779100597875594506767269398657162813215028195549890626841393882870519442131313508690237017235592905882775503297743633758496544533129760396830798786878498653049446129397393227272697445415759319608783836025040580670501608976591907446999319221147969434608430421939490882116180930280495290844881385253222228626036299680582214750871698575774463053031850011591551186154366971826638330569795944934491984349292718445068890518475013102610764232255996466806085152520592455915009568629566083538329253363263970654916575895516659562095635427345478771943040998189715264339992422224532654177437871914296834209051287382585441625450216577992102936239172290649182101289377235491891986188581395148032152474324930764822276962632721027066679117217620000791238080539131640775010863905069872541525904285388236777656171492240680617365693255348001896710489158730492394676922690031744317415142340819955409496238446829142178808899772668477647928142433167303765687192261257783835195647906321140177186320811472735128064007736501469494787295768700307407708143566541355781533123936507330961285504139656398597765707522936820894147958694457407995753710573606385804199564950115586038151310477912460921622674615313636134711031752844800846789355099720554612317496782601969125336238426203725488345237918891027458829547883286225509170092414214401857822596498663416663203453386314847525019997191758066957821069817425169037601890941460803323112555640010850650367514258515604957405320424293982150222639822174600161543766277703136469645835946608537962392771451426696877609355980276488841823541373847863870957255510956503463958715419771212576401471899213273228279730463744604805718707634575608522397645726962943495324864843667942590767920368066922130621958622000473255659720866325580120916054903102503273951474525862644942705951683915196699628631669915276372152446281872446737645234837850762754614982242317822133733574507033941646849046268379654428445872437866724637878489619035146167498556993082900483929376946473642198864576014139364620097863406450443890052168111866091854547226699577088887229124405819053762876890079233898079223766066867710989173733935715236757479650696302820369913310276634966407445637159856696623993618604834371227764407966711032783065069623183170631418071665249806772160332374916141923120883980861768588850477602410586965326045548459918531484877105669449179960538695425338125739375132835616701466824560375768476136434760310426522768748964936907720119859057692772440496939284046936273405707386758297552259772321282585565102638411418323612767554271563992094668934500122292864394385225221555036301749024524160772165846634568335069719994655529657090077395068403254466165895462716047069053545897252980134384867042610246650657373202269805649968753236440248768784481288401873184961493329434284856129861827999240663458042615478823691436901957792577743894347812844782919110392888894029883029960753299859760189088170474444568177055957008201123781437755621805576382615734253004151913188592202063463510091800552202811351937456586950868869156981764684506291056184166532169743126302024968046634223021949184331491817560905513982162243280364128418739699223463183517735188577104669220500891807188736790342173013102255772943570638359854258347256474607910870718600928245937105473335013275640333240035739698304035372691162058300765240104770066165243108567403236618592765766038025923466820945710608610118954827064998993518130529013783135419290476133670253052278884986221944424608728771308832206549648619808531800421521932576035852126368514351679580105557545017008764658531437892018063186565002872462697197828742653829967260385940722455023060810464984945363631393544642802783809202556071289970498862301478549601057010436283715226056304777167007719719976702958069483217919743962356548239460558796630439836323566555638579277021823795017728571338606379265243244358116997476462434321602547238403166261162498491894886014139505485860404903016176590687379090876033115512773056094667058830212493673880757741685265398546785225646110829483697915838773257595526225692803550266172956366231272971497205547891304053862014688971385556037489165643889732935841358395751267457753872292565585816602629498409057316150789830585766288985106310835949269476700533298280040748822429652527332574444569859859621774059682498031976227644547572283567221270257734537379314745918559216495581083938817059108392909421826535501257393155219410897317068702577824395712381564145431444919700382295675836981750228264567237956551535450707452267938227033169286323403208182643446053819461889049353071346607149794687219875285821699157025567902661893503369368370451451274302335092997818192149029275796332032728021314827395360028626548291223756049918770732058505262730327865006094172749610187934300523939722804396994342305887940756432316301667689245814486261667411055216999859420093716654614346878585573890545389210084283425303875645755223842353423918777653434461528478202200109091599240176975315442389238424226329503153518791116835726911498091160031695395062848402221351834821406086458978111981798975305266799914766801339175840214466513789317836390626706586253617138676382269381737782422819104323393922861570220321020330556010760533192200432921425814962964072736917739282118955903524439823661361061574555168653189884910846897363192429134772494910731080066257449711387613598747705014333261140833538816387330470855744368992598107208370572828930660628253696174905207997498537945305920708032935694540406820918626183422341396292126328478392796303706638038342010326460279208048639348732074603296092084380486309361386890260344753823428440103198474638052590736866941994721172187109352916689779841090225083506873510523850654442590243196735468495772821190852296361034871036583093709078928271736484851923318919757750544296842298682074647864785197215295929656878733729271212665707566442418521192356929746638734113884037265826535415576206163484395042627077466561967054651047410006667303011479107662122055109596177687100637548881580655289064909254555369733809654411303832151439411777410248085477588791821281981106038618068471537567517198564062558004761688186810902122082301571287930368790319798031045835278798383171137100130987598252624115347935179756876621615167552449758114333303400955666417438785516147768888585205683010899794494603394099547112438843978511499783816604339096699254084129927450091633187811279009967273405558087982703885263997126309688756177043003830748793929438997226749339976346127995717828772402209330583067492095703108431423775435859688297270621489189951249631589381634556042735572997827286873812282649249447636843526784814000961778357221981555632087232983737837677951170468422875664159446082169098400372294289345563765867590987203662838266673220584746272962440643619171655714395773212063462474767491093839206913320379609302155865385319564199231137936776077910224989220670431883634950010868859411107166103805640058304171922510243257724732901695798618211652146177427760251675872579291440172817088677410287373640487051103004353070460970628179717719766216327136094220993248127535384537534939322105457823293950225973254256303228033006097630700459360230506731408038143885815148933086419019304172497596507971757813771559897399026160852427078898491024214959130059694303247318525387285698034270974333988161255213577910369727440877325644037967092969171447714750733624707340387074926630488838635999611968861508828072300547535572779974869267984149710464506649400981172499193054801981960432913474892935976637023904316193272211453996032201815482926011858030930939913599747008996045941622571287610429274250441292956371759133551400937036257686455596322025616272659440707554970427559283675723444076087800974881398457921501869531671417288037255497194340961567344757103338869671644911361361520587252257120182195435421747739997480455472739572875591908908685191609192560374567540038002115061711902435534998359144343340959239028859050945785132169936266447103205001394785808545154075188135367004275351600337922973819633857325522554245395455150258728275694915281615477409633869656369708789117941110711405743618342721209024231082630904103206202966713982744021856323566994896178832424925534043164553207189333035809101668510338430192623549664891124957269209925341028354827777451693161967424247776621490023609447659734027011378476328798985762621458501013902740117300784519165083127513309397816264524178415507686761072652644096130230410261862976093987319610974134218845477748772928164991055883332380311730497961324069198536273174469639926574003281362711623919542589063758463147084103730628157535806865195570091252136146596161872482293029729679931482787352287124783945572308736743470184993807900927636731336679390241494972954175527814946005936422619800934577895035801812946135567852372953109832035997762764442157640336284381140135788716539195128359753769783805240550693567359158088379604446114074241761567479607092732352313282128377804441165864692630880514812370986238463452396713115980390211556203231276556661471714549447883778735403443818455242114623113521744655736137036508910013142221117166133909016742542243249325511732637553021267283037411808712724805975031125197636649470172349123735710591391960932455822285822296611640227392628639896142213776139215938241407217910210688937710978604623323009456532398861816571958689411556753788477563619557769079379364295510383458495846980379430080894244330124645629004074791599444335050459717221545538085325377468194398750381056021446314503959904625078320930930696097005422672598581801382843570984448502918903757927451161463733466914111367732444741507757482201926632907585737765518333298175828744975135916170736524803743544018374818128290532108410510231587841395933100866403224911911095493488590639636181182743073669148702684499076323067222434184800684368231015500353761166035555639734416028494175843820291818775385056482637967457552308872195574090698572225544421834416219307185270216221461033006957011560231917366395037131973305611054754567380952312985587624184718975243508247231635267243317399030184358116793353401341289401108452338909393273608310025586483804234276639929946412377161968889445286991261064261853772225210816210216463921352622548471256616928575529446045620391982108442828314617221808076845073807694891135219026918748756712703218546022058831812681840458308529835642123411211169946808402316117875642543173642457668825267345499621878771684980156159335758869555809202452589722547410528025089876870706206253772364105440791776194828441340557288861810953048257831185432473850896413288076931923957390684283035456465103206346063573734960835068332505732095492470048957881312092051757647608882081588444263252808503978529374543281781429558001935572451631529563434676611219784287099618159470700437426421144541197217366196970094178832900618181518824783033834754007238118946370413169746420880003241241663778887116629348070242852034686244756134183852622749977864395827392893605128588192541631494002213360845001501284045769537242767118742522800896218017927796037471706263891868215414409427555692320521393047755002546751629113413114944198971740302575526848771787092137019530513161960237793229880216823605629310208842450016252561779789782998994030475331563100067459036117498084149199409085875018079383539627283358934985666450300423593518030861084578516020709113529620440851275466270746173188260873591447991686452361778115812353050531506355144134036278882574572350539872892583122824956895115177694886946462887127724201193834106412874079086697722469439714269668620454983054706239415091259094369378308264384412789839289257094618633425461490539610236594999569852985410800938503605860047128358929695443781387071291889109426970838754956355609427680412848668351739884110905084969450802831157706208468492691078901984103381816258673504920244438390892283889830460292600744627720272830818891623603767749978812199780694383586314705324008215470433632047285403987003497583744361294995622714906813188652284719451336499144663133513844267563949033453917072207827701621813963877121519852721872502060885064520097851308047184485306401981704688767428145218386324686615869879509126696301493799232008433880175002855651971686303645521355013055672892246812126374302431836026166632435322242002339422541434211498678829829944375153478918560258496028057070890394002835533890087314583797040746476434946253569659599008254627363333371397358928076658559773908000403957813099312384108143330031223006876128257207373428211384398180580822634621025999597232489160049547638490314544633213319809078077855296211382450209849829464293099472923776880792874867522258028559966483498760011167307669807548700965939732237182848886528989053398020603160416117333906058292161135515793712760275535095378230181290914365175341556702926982225563441053098085757568403191188680476338641274642831477013923058733259007120690810781317006308988220161554784469863551785333112073677626363884887606534399923780094144370942133898001147806353009797184460137590639009082977894858279027975048603910414378834935467179620766649975400274005579477401956177811939405594262283633515272138229903168513375000117443881202824691772126353822966492741832104038991448037897327919676003598296814033468456592969584898577406356935628629948515069607200924237025679364363306109122581350604648573834838622667383048025174129273385534110967423204125673161529514314868771789797449639733416468414123294511883057756613241643766421737460560841731837306137108331295528695368478535930865684961274450773264051728207744445050205771702767473356633826242383404659800003054169436905768021103580729638230598031326756449390980193554122565348503999345573946034495139514512678581293880441686105197565594176770202881327278953660406227703263544969054001063051697265142044530904664732787824439856801960044766058472815779588272444935927548719511290811063916173457520510023196912640984608607624795710014626168053789703918043216344514116626903855327631954770733801595511897195292690097174128799298551814555426348659371237737911594391705131651866400008991478776607360780370030245855423085280142127560276627835558364014977729554839440677013861972409670365827118252678114047395302432772900423490980177759506130044491277547101968999462064503419491086055973707276709099820337827360488220780468715735204583974267664610846151798067544377972000987027247103618740187769412854959691595399188989162762886418086129140434148069079553495637296489246440428136327261229880826083169375655931846292041895911193062562539565663746246681287676014829757892988140875317952281150772218689392664180962230541768731615899172818697074405340801484906261102105559609531216836386651692485325274371664393860463655245123086166001018666480947760251238962728001988474962962709430047293200932686198396203634292100914182398654088219227398849049813325455966237938767272388117863745800366196300023981558747196868595247771899994643806311893152809101001297410206422737157644020432682775567401239025136640018210175753260181219571459605534156414863823618320313143378553870183355005345700457887039588876801251090268559720920388237664246369729042272759411210701772830085191350620193141019540889188401891528241136125824865403783671068762764603798840048112994321663111456241158918984331141235383318470986284667189959665874250128845975219591932304296595128484856118910337951595001175408290694849301828646568660349259135462605780080793725165566453953038984768491007692890706299152760504241457856915516578426933244649914787298223414824694549280914033547719504069257082971170169805493744655568507482578503529379775564151436898357719355228232591133297649448040738667766938214922267027045934662588728596510971561421630235281684382252827728248448204122706030425212273238387472754088940640990079093953107941236405184289105559490065154422028861344418734454517271020362367123154649880837186529159660567145316216040265557592647916143411056874112888714570608277664732212012854862899743281234542354344995086491228359878351918196170914379837225967108360356789037796444825318110269758283319004819579424602058965902807338237100678612020114226677331166404270311115954915710229962857465819513511994911526927543729461498227541880917133515690631789789142578923767271560574501958346857399906243439351174857144903995093046916187486145819924356273388825298743933165227296411315093334384030491365843296752530726566912818817016846556749451766647604252084499022093110581834019515273659441594013298527106302274047523120580331403508640243012343025780151568690070001804518265844246299734081203097923555859115481222671523063009970396397857237385202891484109221752350189508273593271389828015831487448606009438380301261708323977570952240056475685492603108272417061472699770068967103288121720855126545465779695690360561504939436456148578820888242241682794867217079670213949887720084293337228215483260062689080295681989278571405150364508010732292236079166015913377376431335795501389461731285798541676644109508204006368916320349659233788643175213535959723260307717879511330872246362540733759919644580929193503579968456421177139823894561913713458471619664950239647488112660532331059033906622300857387065489368859074761466060039707658131984419995762999060983827344881663097174164942963729985990676901970206123283701120685475127896300012145833375868521628279549722085642067632847462558759669865611392898331074379673987956739118248359340974034020068348243074455093545810636764910112437264290508797610205829705240416138948533632450714429528900272617529659285685971955254616385683839534872978321115781110251906657097615702439746560085135460351852624955049575424233686068378375245505415143740640448533396928651781055637556161663430555081940663952525900719470137218883785445322643487788550797619181641927129148309769277273208168047345799760347624890837240626890835746713793563463102655868729812329369733872293579635790478494369012536401628729666664385028723311782155617785497428475247429239916039378567943738943520812542245624692873632232457787608169640629028102650611464853905339948855377673978055114189255078671427747008253701431418954818315355797918129720437553230768627117078694230685616705820277985271607042385707332136598962042924451376950309872154700662376691365433310250939671128042466905144872191210643231933866528865735561213582888795741069041660566159992335587381393920494578918469501578237593534078425303627134232024100863038373616168246652732388466146905543805595400889113890358297401734830193489922132117465256634082042273445438445014012017571418043596218956975768940433378347955504205042592943508561465123324898790602382906809346626401036423466586289444935914178453448231773557058377288210453978697838136799095254628079883187806289772968688686660179224686675655024301398882623720375320283984461764211884778722546110914781236709882447696013241193032418266999427154812232173787904494650802640437203434057186666410215818412079589910020142935209774642783307370179913766045217564856467878075498186904398230837756684696305004615897334745061752151740422506337558264363854599847505442580486525588787215448796755400040186746680787648946478560935887691807832803919505816995769544225120268994055323117925794667837798157084529896010304346747591405069463845040523751901349952948592202032213896722680292888232615514250489384210348012191215391215339056462982339923012237149031369880322652945024498708797132393348476830096752711253835690892530559313232251894878384757456798095021960557211042250143778031960781108908662277471831169345091629584243026831714474075357011058673215409389458348589910370658360257572303661433952988820496542279721625323929062184863018218933837489241476855929609676384097589576755705678840436741675917750853442068964171863160944580338729508957611273624854781417237522537817083040489150944495359416352346313896663600097551537448561679568692747601125594123811820511892860397273135059291780141713778667551876065305399540365739326466891642161043385511424974669684233490290153645310982298161193926356586488322023647491193356555533731617440022861253996102338500721458987706858769310160812014243274300763729963720775264874165164957167908149810704961458344208922997819232274982406113019228582517034982537989880715766342105094222009806464404540824242941421952794880409703226962813644941692711041936794993732322915870763379355869557087349197314900213560422117182805343237235254371764733064254883285714122562071474530286737753928312054257278056653858646121300467030249548571430399922029990720871106620975582230595486668852710740601643403853237721553783304055492585022415900335722633216074777357205503335080855363683555510372731466779812990799089559999051708015274466580308703220381234503947138511159018955565876385639082119473507404232407719807539230917854262913245516590090966203994677735052858546944259249063999579945314666553053137469806754979142741965140336323788944849836921253237974378279205420363437026962856393539696704343929519290947130915496515123680591717021834274506215161725173802260096066719752340857911717951049509031723611011593238312686152410933138691394889002365768596302529994262210533997358877034989550892647346507532223731591136685222901458161859673765376388901821999719696892956922087641654711357835494005876762551706487867654550932539985776999042790744490520336461215420881874439829265204711277878352788325402457854394172059874063957142779527268826909413401381736605097256121228406755741646777417807517392470404453349725063189060387462386521483786200239050878690833776347035213627126754810837904552231906062805787445077522368683123181886833205081416247393391268147973803441188042516430357006839814902599151695065464479122731466856603497959657272677259163268930241217842779886079202587666514865950494117802029212903383921653435999080969512594258456006840442510205302793512492155781552110789626417756098490092171824080899978918233247975443219886964384143110772544074935208786316742226213914648843698122848377140021917135499082195237843742419333932281377939348911686191918821245018196253697943542605925753164594882298026812506866265444222366414961889970904276275561712573527120235763785140412816860762736214489022637132569405099969026101366341823876681659732327581903010164594469918187668076986836971100968769092673047251970765779165248652708515000620891676527141159951268568929439542886285978025199744917307103402980492457611636371465986948881103328621828761398399781171639402139803140015104905424178922072682314398806201926851170113041440340597318079508280731702711507794201804568976251397505099017257175714197346272833963677819574300204200632809929581113270143547085866250269545010566189733910837596523423054272047010042820366267193898572179899751113562014010169705503651850023478239814699683974703795117489113516033353277808088413180243057118899682140854094350939216830194203910247976919719303784595988636247627937116880905825446091387302269973882045821563896339706555012156493517095796774151373154570368080288901560272482589747349401086114272619025171825230126626849419788261165193826861915683023409528696275594629973331605348973900108492989704952229144485425701967149068719920652835385843850879195708670067534931015900028086797643316893920772980506697403816304653706271709142978030289436373525716395202792567939007361922729744081792246140946867690592503858576458455058028332403709952630384539999381493526894766270571429708416331697016970812326153201275206026612922310786814321117447109402827055289208428364451367923822706453015922706192768677423158401871783461184665089945166112999108297671507859528327890522691374826371345539582915352484805107369761118457695981382025237899830130549210213022634610156479636300113150655508237825945924580222913906126861846968341734150429436598227416459177557796840241458241881120392885854821970196650126240309436556549350000271426336335467760071052520740827378627304317287698629675550132663247183972879812492815040599826242424597616080507086599251914873000974200654447099217284258708319486346006960616961788262172850525320979293139887458518090570020428338139115268750717232074062833073371371941733727428697702719394771785679907661462314526215356175557859787030693982479493532955486366756430521824031108225783606829536114848144792955554651847335325767433128773193423460493259788211529275548416045432374687981438283427453325306805182672625546038786729600725496282966036541988265926808991449259664919370238105837989375160925025697323618373324353049276385345330019311873990373901290804981070276997299405608094121456981467013287216248283321978097814081000473522932774719930263012284490984632791855326802113413166678412944768232365119585978221351746415406005856064389182607488711461525429061286505671158095009454337820610834612449467143045340362916066602731741448901209998127005586660009292806650987814138744735275799109470173987262474743943648964445578833679090145105216798018534060944511390528207364694668856330157219737522088257567324778558423657991052108709057348316800847489559792245948776203911294648433153846287615552096358236549281092679648608829831979922365630103181291305444246868785432705683746945662076537871556019822833683814879990067650683492801637916881610411624566626111066907723293072142595829255703274333583501185656618699162582879160666056143369206106828805625076434496431795785486838400678344870027443286537043431309330387943602130238641185052665227407703936925460434908897623828237949862643600515655182636353465351826348210644937068800301620704092775004109302901162885906637285746299411422898137499005207206122681929602577119715377328248005610748169296415482699640842772843609140505955433410545318224580947801098603261561052366650709568230997016661351168051253572157292485919643894714775107675516263155492364953824081574937016921844990853233421303335857704204377973384771288637092936190180145474510958490193834632108366461726662074580728311458295078124846398971229599040742176465624213741871894208071310942323535845529249012024097199097881481459291818832758186276786833783519255301380472889027538681356675645159259317557285821849785350522596383570645209087316601714727143700223844726087372288351625371147584285341859596790817699728485695763438190680387338242189989452280655787457112365478962827972400634137717183215801171905609592528042199228321662849632505927820745209316184673136366115835762893623247605770703007717874279189978617500517824509072549402772486679316654885906810390269206803195120066499472360160718079783802105436830981790104775896416324085360959996674158945730123414108720862480739129300800882846505342202319694810412698085547045642560404250424494577733681525054098314215589229412714559676561096869249896047177441596263218409095608219586359982807113393238081505878724764662218379384510262506973096436884217346305836535506767657182990946762145743522977151065710386641793311633707514187226361721115749660212184141608256987378174363009138730589417921324833088503279984532350911513719359531697250993377907842901771349746800546884083743156736424069887378514354904439679196612607212243385017779164112064977172160611413736204663097669508333635890873060718096450149076678312542017552860862721117427352148412826872689907149672545627840579466098731021828585904780960718182095586581138759275139233381075230675283918168553151587112895370526800034099384323902962763862165391760452024635398687496734492221573493162389503615321944045852144458289699312290263937091875683844064884016525488716263272423276603843452935106036393874529123786671978082363376018748141473118450448415499669623412913527001950042955200214953960054813529758568790893896451755986932726035186757060172632531452411688005813746261107573941437563364678671654958723108132242231802588931513109594826620918580765889019136885168670490751442355944032947107267414835726380430165779422634289661759728298204848559584155791944717859817165003569624473189245048599807832724555456216482979077410114503798205484773153330178223090586284086947765934579595189792224387074075077876431298479484885512177340380641821848779703353121031199334664589892580124203917262497927792038393160449154750483456056484338173519820015800631939765050948437077791379003704014668087352363788396691527183002249008372106467495254342694297184218304181396330656865927963627395354373560587429617875263562777033874186637388848631050489979814979087814049484528353478242162856680179753825890994636934179543019217319594594984319699033031997515178655218051251623598996602723766372317969729591682267634725571780041927639385631982428443207045865875494643356957747414102093576283532010011239608296734867793126814680182044151696414077001106003689310014031414999107506573583719261028032137865694640172227560323658411899456684735323309769082932535852750643653605973513164977379898243972353445054017046824981671227614814535285221635316872182984170544469398419268627425121817935167729148136554773945740275765349722955955420380676410312290393242927647481200871729355118298718679794815620766443726812245022209829000233648358255562698627099836536600027422746719155376769481112627175800548291660419807202625146149583480037547904929574818157297936351782023101609392000161384870038324478346273337503039971856085547158358402481449245154615376107374629953899991586958198072525385983248578822389016909150349908375456371192289869298292487005689545244137539226770495612959172442268988585461160429243782522558201059557132987403694266163432110076220874785944612710279259982841381150700114248774882594707897554691715094741874382230101338231972356613437764523752582619872060836354997522041916374209932969100569118893863577825110331112091969138987384958259479653864482381283486980843604821523169848234007429944112899558351648753207852009195397704197055652960843484745131800531995723587423817413515750386054645818975021848545244860344129872250403242043399771485854285154457812043867294873703701716057616305918432620677196001658252602751612594107600167313038575058147864916409107988496569800817430689847456704098824262941223579440421829476005514635540595701253609260488550945294097376800979641130117940273643934829593516066696208335545394665549111532148658465712670603733833775445545902575004589710566934634181399124495231020335005557102117470310136306759432093983401980048045772033527987871126619307532948152619088843546078720065315196284708552182842961762018805731342447286062154245442413462449526072725902645368828886128390327882546670077317321485766736315376668410488874368667638347897626361960940815542777290214153454767496520152830145811405873078972265322228660840257150276574219549725456797237319378167278503206740583508070488337061178570578096241536917275229793188317838598022741399593198070629596038401012330551238511637714464532452039097455822839094372461860528034327096990541320630022017197005991149967431204854108959017049670189169410225185491376491401962557007159410159873240411725776976951469578550885788167451076740665971359616499694960026821801164041804649938485818629457777492855079739051371560721325615915048482293427421120510654566997808528465921415694864514080236685807306816334730208909456774692978737623829596312341641161635172496977374137065592236445588162444562413218063114196632447158134204196259686193512906875511438399129702176747304210529585916280196662676819976250073805858385333818529439500419411615055780707320212707051704347361935720829690531270378544945901812971359150540228145945157351674066849114359633526245821857447213223346171292248517061347216974029163338597777904666218407375082257488182749165245156670287949947892129501392564122227688527033399756410530825110387947439610613197245728625370019280470299310498125416141168651456856221498166343211156316196187040758949419760690758277936641097200526253551208720708632465723237034022074101712422657644345223371575468580162706542253119541523137060145562648696091665758937076693570440372241216311420372223459500316838769972080370347352167560370108282142939163710920154522539986865820520624442360767123309012366695587692913042183449027792098479882843011067885209553887678949959793302577945983625706396273079598883910185048913861839197640276823575429007247299980570665235773401967231261316035306869211852732167796278412956111141516108061298273619073039901844489860924250865075894636424280284835125732409394021046549060254347834625317557755525119703397789730139461723934111527738492713744054391007853783614249137743072158986378908549597479154890368105406079238809536002868178082228519932251129932143468478212918293619421641684524161524749357511580120688725550837773198458835751104577122337379655981719514970367514064906813864993999670540742704892653729340018603266615109936419447975583223420481595549753457315970332981752472759796038151253922253395425184532757628753237330612215818129989236514554510012267905202170553769044212537004820693517514123612546731347325669913142259171926239555927990043131242878100383435973917817149286187229848018668117195795221478819295295617265493147041402437803914930897104423357330700547409563946513007027719350723164782236144079588876940056287563077111969110274058903907258751263087616302828351032670913386521102626096389414240966391631002010112742719978854300763200526726384127685900455898758563780852087238507327037506386809381031905710250154655273252429352462308456828688344651297238756352637545247465555198089273481154337195628762214072991552150441275158697387128885647567619125643904990568512551778959143862707420751732773019258130607308048400743211784877592417161527915264725633120307492177457662243141885163694534604222090441028215892179237727508702323754257844079648632453912646187696104217310075747758074707394681449239358540008029027069141574939913443126026117777036229350265285134249003073027169051988425500314791848048423768458321131225797951622052585953669086920807198974059915062153883019757381873558746847536940857466093555322880835001841080871421505297895023805502126222980879873036870947695453970911572181317784673406302444257690474576587757758859742309593652397308925295547671405967997831213374899482162405552849177240992500191494449283610449183836347291767401010175324613906588164087001713300440509924562273989880146203888687368909281193090402793891012612276349192720930019835508939625217872944294451935811549901751065247808635704480661530813196070951209989434858105159954135697389949419824081442030069248074442822756445995981959705155749042412896522885774759453179814367059130053009236566603675942429214572228874921267152489214345123699452467415017931212707499948024182688836415684396984045820110799088488350216311743172020337654593519874550421085880974909876815545320213196947311759817237599361395213917855901250982169307987259634369964839277042666500738305424123076467211661424531100263126391188004480310452575619468130881501348743366388216793968427493140858141678243769987100935391786761295000720201665677183800238208224997966008561801531351462823895875378612453422261591694113354633960376062955789408339949224785794459564396150241489759349058193075044784779506879235909010965201314255658599328825869188567528938082005531508355150627005020588711627574270875724060298754124956998888271972511237644058224434558207196697887929749025012147747987882048268794402945343250064303744362616230229576789037575400558446248988680395526126389652071213982067625765127137211842327475344327332044894689548033361565410093171533338731576917589818084344053316314881762987574271589093710441400086994942673891634740336941253475018831428802549032397461040334728020711300119949846300065796713404015189890342158455063129503564082160901409227749371701098692524986641535855876162594603668363567748868611961011481831943618740279120932258041093699934279867368329328783526544972230643878831305395464797524001493134786586937344828900118987359923449101920725143003742989613316196020413173156919063847363988823557883266192178090579436997999354842591717851756141634651103393453155267170524742364967191908076958542986809167584013903338094524549227094749279398155736590019182716749949600211258760991299608079565695709720671822834528869697449231242839618548626114529633242852229091131148830206110490383059360319251874056839942074549613581095625097874877378840976901697266465795060102214408439656000719247192656504787208521227275134650101313377665056810552840907348247640160462637607956754603130877594377217950842622484644593182302501096641610030763457750346262307683639821805557392883944757722643006618242497016036139004912775094402185514260858677549806896641254683127949298660386761068191125048603077916994342226755502602194357900684893998834703202243486504297683804945419017834668386111614570660641798447935351758296098195570283734689913918181408070682434099125926684546340029227205097913737989297744572931029381451371623262752294244300502406949920997898802330476817700503116034408617335470205678872008916802141971676218150335703911382258441863618845010725775474227099493573210404227773139296801915880723808037923490662667069904875862708275589350319178965559405359312259921204313456233086507989056602563853911645598577679187777693662538929954693281303069939055776350500048272645053371664724134734594742419142223296979228149811181540884783454182203916007341080926176357081400082118881346141886502632488028946349209255989795613190596433001045587646168428451478727310906240355644913039037244173370936431620790520053845648444184690939662719647797283865112517553884192534743655956035276264933372561004208142500435127594471677131603304936593297914319868718014017225308237292257857691652633128680902796513734309016420853477803296317703994234371370582298449285136513094399156422689773570205821255692237613766333298223568759835460634923413392988751494806133629330632025155349071745272996000641650393977828787091250299904329949552715885447047800927470150309002312893276684501652920818520645379184932409372731882170595639589975819987749264202824715472062714600707973475258431391374141398380333394669397837322156852094269178433539274359059824943179494390090069690806733445655869233312520737192355656538633327713104827216424751257507090173214229895658930775395417099847533676021894441797073415645435527642959548581527462258447614165133978403854838142659966774780507741839191092180978674208658074987800820825888015951668368147943130311923014772320355085613827851746906525337910348018650537248820700159719002456103738773726035936809721972684401184522657979428314775178990373554493180895752854401438516681500720632754267753269204906154691429996542770107382198529711160060472118886074350417885762818485527428311283647256658269694326141984257823111769057334033131166202618193721351734567983731977726952769247350025093176485223344029229570473896210497621799944506432007537835719273555994533000353040744326545622443815904183803779288241380130339243156284345672564135003314861220939105783971606148921631735928235389146997157332950687885543896043767351180466878491183075777321087659625350847906346414424435771816108789966887484481139245295318043148016558835963159256964646201450107922507167213465311455306061659283100455185641040099572199112793846293285392037136398670570413191686098769599854032104296874609163125071774988347248719069790232337664550359528902287043448835138483908280953204577526807277942044909735913581800137393973434783834800895811694226349994771225424793006151930248024919944537765952983245919588952739422790089746529255543730304960898571010608432883195906024214414047091478511782102964079734511754391830698054737680847649238400230899683711816310691355336098035450013026004205153143812798167728322001668548196164776633881897936257445294990846287102423396156912285389768025605157278979918311390497415762781805672862595398433378828423781589374427514626588066234522031113564926950869972376577441928922879829243237023223289777340748147551509051228499657591000173031815614880675491884590019838969141587111421134707501891129106665242934062462343995075473477281916217403739167427901707742847487326897197156406546838755304582826854414551291235545300409478332604841747695948681234457017212170711121317583577466119100082071895862263434199348555258313291390435953989929600124353644338485194665779628812604837572108913108153871253683857255509889790218649639786226855469173006598542891944675353341886557000078359079559720725190943945157358440150400617964353650742011539145285594091755832042432209553113608529977558287349990040298841955616340226331689824382342268883692282409612567601421898114795340607272397086633555791575510663234907411208760512852914969522552287560816618093476360406562145976908373053572708996073944086541015126031302223026834288767077704169761799765497932254871052716787717249755065420238267338132332281441229602509075155203483742545996648074609521083035766088751761024709913062294853157421606681740466511763104045769256992645405246219273901624136828592225645885671207622733709892169931897481832534696931828647741944674086871069456555095141888107672812487623109970652349379473889788116962569891844804292552363328885216934748897292795307896188030312857245101239079100374748266927862234089914777620522742962362209285096286696974357256259936112098886392482488364486120483618119734996842235989413774101796213657632171334552401136416084897520801677902753227468616928988374063954427570229905221094756635947460390026002987447047473978774434625168871488271872424879485253131720523413044940395180810906225661914650778751074967984677569358233097970553528101350977061943816359323813954543371365377280332277635130172401936637141582109593139601544588881055008190237443833822536447228655035539900626811591384125431169688292632554644427881040325358415252918866092364993393183662228398782633170214325203799495777432039878666370617520854359339244749822881956593966949843643109649719027125674709619867480066395140159227144864221426155901434985041397033828642595852794098816714704967022285877190545029867782077398559614549807495363958223410082702163028728538564736574688229231096170345274582548269722784989529602171261004220787132356825077640855917920788514354410835384199482350516354894606777237541494523519786735537005820333262017702718523840285221078897841084820769017759168424531474026164323340336462703616159137124116115663604359290029327384357733278695843451177155033646550992424482630584771094132044979028692560809284427536221468750965560667251337172824251159049899999583447225541281121582619643131378322844547148662318314063618562994671784511443846506682751106956076787635764901121879152127450746825188023866107441263585211254342772221316696097512638117856120033201723332277533275606544971235079094023470464844163143841478269580511099078510378732364021799655846926843741358883166655503383891960324284458027922009126022698703686441776770388997907942158985819772356410177311357122308115193595549305467917512526221983141594326553813664781014283508023743505465660085088108341266466058492655285644903902499934634737763536470595864605268178050014343031564982118610202128098925748474404922680553411064458514832202439397649009031947949971994049842299976498074915508816559920299089618525931281094285326984416972409716696777264501599288226000215723176250752480620223355036570152604173329974675241304178739132497573683160449025388610493449780875153941246684118357354987465567155232370136869843671156206154642768490257880353167552621444383009263094258032266241711195727058063849429112384325827476910242437899177225116317406813684690332018055081469078239823058300058672741018778481093137130240765438422530393213094641916940843615853224997641123234775299833569958057509628376549437998800706431059267652654931735856709253702369211116491892589965768174579157626971279253159716060536217832973829434602806678158745078962815629584312677852082077535693702543229168971377993359305763077324799578983124689961140281504499004454674446847668910363993039917406747877785701244877196971092120657856420146322805105427034773041773944410814344148470740055926983845104562563400468625412832300736675887377952057081859000048901965646027335189506249518361998892806252396771162873520207027799912006545282529412542318069707313456601953727149363933727815179921505891539566033462343734416702284608899204276456444429179918501907927946467849497046597209109041388459002084637709729942284811342095318654777597198022208415923593276577259300850732130833459318724468204098792029999078711015633737288657661263385498215630549350388143673743221494971187472519886114538095413978035143095294544925401290276570841335590338494755132836080162789839517996356868172614997390270748098189586045672083358902677644503111187333359105615474757372169831658798505851045276578009565530363058809414429688544386394458566759240895866938008420997460047550531710875197427846298068790720125324038951920923394662293224832466192809980910880399896436559214616910200719127527886246970917062350179965932555661316133241536632343578206054394654333761557535160282022260856814014754385702564796691754065466372891007966298621991056908330198795006907147514223912824735096145856065637979131077657134345600870228425891148153878715605158687521136074851398984487014993117994239983164987036178697313278892759510286635096599074125517647871706863931371512299024361697101269622293538144526667877709775375428053509923012432684149360264645235976157956417401429159674131672939192033802534495618979588998134599366615004424213629957718213547634076074539834839851868206398888295184963470147985709097161365147644870097962758601092122183270537521395872226048067759787583778089449116336460630317536321522024746174091350647610759729353760962041925397382248540334135794232631210461536500841827644056935572189669602343416238836676411356674601357382748980368714949395163731912214291170514084746652282661990910556608471653084683849252574641467168771955438308542934955755097662027871148305989007173822385143471063030303224715620971008034253583496433919661854838530638325445257095272654128418774561311627534585864606893932055456032894953225571521921893443604914871338406335841806908996434353185633612454936500029582225767773003027053034209765424868799008990208775093236992456960939495874867186284165122605267738331043331036971052378499740779814107319090473533138207396569236039400855236558037883637128175224705557441321246186738979908124601441241215185391480980697168700808407252850377009060331086888396942847392651962719266107011781869607607636250655886632123759404226778065824940707017319322951338020026715301457637766077867688830011975824541013336914066041737860670101987972474784564456504425328239784847044816737524130486937711587796964196110271421379771792286954311453460492680341723735374942088425461233730931824657791411273232957063426268174061834670708559945457781067041005564033199666628638626454935285216494362139856890711623104739301952567706426223398559890304819568909318047936579759055829822688465946588253559745721525456099809335195162127897537513892854753639408202515466207467554550263788480719283726712087541802966289460036157023011549064901095581677453418580326646698029923290664206653204769097417761875275934193995326380503018053780752057001996169004867502021731487116656269739757898763015301115615774486123401354419645096626225259263413671037601702618587594891333110797492235557125577772626473068387184349094760507591057907788587515684809755191739686136259479789652417551240164377810959176289801604969251831877014867732968858941538495416439595780064114395914764976841386300181223358017588771180350274558908935635050545085289947203196281244345814296048481575940725317111259171683815050757294485006756448375619611737436426640402136870004987893584083479522799167758166945335311507052627564339949537970974425433619685475066212632013390009331942194818707621056344417843883910490816366882208685217306660051232918620855695600099430736627248155533911367125807215586220042033027616092746661099995744469249355512402564283628329458740030047154569003119461580529848048514265294925925192167367186844034614607000628014679182349518923413828498553670717663142311392663751222079937721262230739241477979674008693595927224610201794806722814159504898287622145403096124020923305572909188924711376823464350523619109623422376966190158850704695998563830762792737659029616614400155618296640128978198329780968125130605706593630179630993511356495436498442785043209689217216333698555564752260872917601791901969967321174553887641348607882575513157283755266293221577137655721984682831685196374367944177262201282207809418255611497424359619625185668178200369104466035235290319754876007781056487180186988456301613474481279632810103610467252209961825798486882610633447002194515786069721041920095483483958480320909416399105183889289205858300236145675278729567140595532851701143201633069020872439043575851655645034563566519023395496779969840560467430628132722854177839428900603975861411469874367876415728144608505793279723271103861374859083653842784103355596770606178470448105367004484852198367436127355190234775075590614294987564010828659412115203887870136173085272438149315203944608037845156222373625961685997276920492311158842491926846670891969913131852099938661831643860189179867398006483649239715944185200714733064835699966080429814721019151729619579970194917355211348794454084540330347568773770401357820632770418234379320145647882238494286663484733033108850663257697325530984662036465088573061955822142685064911384906438242378743861860527516156621838641602325182418873608229408414612312947570238698964128768834574823479460411379735970621126405268033281546417915863131285004740299066650914230334048053114337974989806676260874188685476160233083527716518170612379925688844796640058999860816299760473089724207865878636775036356371753647806408410490272760656286130519140129769102189764355860394478113662561395179243260806619365641547973549398225592901913244958461332004195363426086690512083652948809745373429811319219909569274375960467668052861212532445684274829716094308017566117220773801557378467452595900411746839909978665831782456500372823014418874136647786978925654581191522477145917764413867721195091883792950719470815263730613785351266858734931982194201453726801216434111939618649729186127217671183388921375471502556687148551745854127893059412311875910690655290720011836286695172849078832160429135842578713611850572502303918312037455694587915321953741191009223832896916662832072124077517680532334375919454864682128620230581996965589843324600842668517126866218000345135074980632705455387187031280280343425961269960055306512903928444213402751952453383533928827779250923465840473580567857816919785202243463125235360403592747882125036795198963763378823528582985891678303746915794421954393045290877400800983932591522313689460008273678930036735917965787651293737925562161587619216181508922839697633565516708041774205635039250363788375604385527056302722742191634032903837576105250832541850623877456807117811646823744819910571050113642233287686357319818013944425360015241455575268094704206003578558082708721530352199628211459733631769213213639114649641485016971782232838757207563314819506876426682456995898632304131534556386191927923542776605697948266812400525984546312440992038456137903367030576979504715192957887827125458878312361150154943549623129304481820992633605482296276754825953409955534138036860352713395284848455305477080799376047086556996292532879870927462999632906365816712382524817034687105508739735629232355594678389915957527929758490710949888486970648440022474333720772999266902488416258956550439853884283012960772499179807876289641480596132670321968044127662266260421169217160579829412284561786373666115153362621861206274107004461013714455348391140604209075837785816848284619133210260807674146727417385077180115536129374775919678220059390402576216229165996833762778518807854228175780738734129339930430140838278634646775901356756020452701218537969423759334303471267786324324986676037370432802039253843459603641925508432786722640876784854464763540436344904047405845792036603671065663643002226504287096513972308738062264028713237439224550612943800709452661359540186383897489348781452509149610459453614171576411110814864404061071603952423130850068613615024748488412966083133683112765516092037149992088308519132414620034959404091153856765805238457039593741683968551792711207651918499694077544336371235557600673843866563292171956858279379073541721953734383498745395162751149083496994424873285387793456683865747794494954038686324984262239712198538459987553801795533149204868102904550615080548338561181684311825771455773336108317330657022637476940231047500072464848825245760534096664219173411142655050824209129496798031427509048554093698745483512526553284380877919173884358809972463961046280374630631639117014993821256137287503720252100830848677850674725251258931649580056448268561099387898063898994297664188499241852373654953685555781058513131818170510810593276318596933471091443699560315519533307353744292034362365036465597318206305890913561539898438025460230131706885243208104158641940338062228913133329172507148315022303150416225019831338383209673558260638500998683956071992817696550784688253971507897013558191706481932344741745651147212631573758901756067450992798037887904149499914260619190000851405595873195311474106902519708149812388480349671327160117580058985414445874528810822337870719863846842808312561637117800791601911833110695209342073416105259614255713696607643240499667137495644005537676612532549171253783556295215056177458586783061067582796705961130448367995238712087726928793064777711412158144178010734030707698527390310280210944670441803156300326823317058484945664842477857995328655714233372078338938735978183997484246781950911553830093841640905440738533604621371097576034655463411396437488223071454158111294428078744087949280845887159780566737249725586467860921058113925916102147861360622783501573063350933578408914158144505231093862008427486541410178401033866486816230957365984039273353594093516186217199901977298326661835288364413845229868018947617595986635118981106772651962130469799641454903351886806031251471873286424571093966394564889705314973663430828550776057135039810236472887723598159774800351800976902482210421874051980239130981466779350438503265570794601655623559347599643427542649963311563785450700729303397650045443810683304725927873986080591599772875341172500970791334375507169941848856927389894247928653360317924171119605672114873472170916162026403351387783085275829038573808807614443606289853653272659140659091061859731090804948264404599155825662860904303634489693054113224243522772837755073941246139412708371397795022256403780894531602313399503720667947457975314730233568042680413124473050838023895561812468836696457302047629755301094542718337089300076560580403203061217461379475057691216912785761225224699601911072793754934660152044923094333482529604195864286996807146093350396515147586323539755967719587231279642003327059585234182551734539859726747851962236197164563279561193191646196388149738347728872042353894518421048921045728774702738827292723357602321958833521387423625684673798715208818601519680446952354984403128492591704750853641731611283954787481186602613060134389628533300793667389185013056552048260943736676261918320403815107246398154230275594928521288886605559845113260807816255116929178427424369400716878773853367347016356830131220723032300498634180505973602271702873390778168692536138784589034637106337691802768068132678284509371191813844000729039561736620261044167734486590025355574522307321828502159611759845920045807658193059742916121375112997322763078928319755654829029429620178281532345718270669543335223469383610674358491797025707734108193244199550884379978828610874936893319476265405939242237871571238449179194348192350013019213684743526552612056116561459061683796704845742649073091783363881079183022756310156236274307067863100309581796486045563732174490015186531967614944020480568781153784235390959923523969234394749158718560252544474643436249040199982420137577851075326294899806704704413028978888024898646005560191220560068957770408990559997032492045973696540054123291233742259821654774483129589844853800639777272717116043364129098564444063810623585066915250394434042391204134411101042469589719246430284787622658146014600364881448810632086336158026758137571009627854134132531928928112497013918243446823480718417484465650970137613645376629870717053621150806697672018062349138297618864054436373772299515588005802653247442519492696454194644136314747697895945704070340312049627804561766946308286299726928985865434210975091971697896932175301031826794979107689542380557790482955314373822952072403064644734843941911327536088488778929435446104730115506480129155116112531363700687644114922831162927152855659513969976622819792647512233063589291224163175007273799091208231596811957593434189101223501510646898878202939478350493110956022548789379579583494769901663640375822162451084164874571523587101013689797907665055266652065765824838940037101656869196143355844633223110936562584496265959247290040076212074248815973269827575347274327790928486864343294962230163238019370031324139001439694982631310392990847254955305122894511378299281314243557146809365063400840732789098224336153975235989045088072101112159711005029452141772920973914454614735340294509178779304937157318335606454750666456123193195862759950954924546943881555868063231403347402137797711245715780665321416926694780790933036136604380386967484706639619777066137404588840272695121091668395033409414252512375851087706323150242728511992867120805876411360700455090949989452711142109605878896832389244102541174518818380766035352208771918478502586979381235584310597854813792965548750297192165234294054638267204386374539487077467587426205800422567571827083780158217622125700554135468325744715515781894364467425919082421206374731201187867162194948155739334474772192281528693678112335054127136575662718787942854186600899229198376216495955168022168224050118954920981519532288087622685747264535442252130246082804753122208662622012431501080968875245615143269367153389129132113414959019987745277493857949996441193034911868065872647039614189509582571032056810338274380146950968170035657520424182416236667702218354370156816537253409775726829277727309602364109295787599318996983976540738920307392892400107656307706848619405117124514621298531279746284334248427214956264386688161829051201091347329179680701254999126908235026691610345518395638619844578477951072138294201431664159870005258722973967282202139218882405523962578410758688368197405401466207698078632274478081277934661995250919929179704513216896907616623810096382728785027444701312566223161386622539072161001643894306161992349306232453009828207699834400336344194644961401528874961450551022480606362329261935934188338283373774289125396710622575402258593111470277981398600042157729562628064776983255385325800783466683174959450442581288948481122622441914822566956800603162054447938341325017433650132115287447447139877085241811307899695286658974613846552114277278551445520045063529790622803090081020607814566502106548773710927208555662343100048797812474974987004993896934432350947835782275231579154002551792909987465912325917436372522439250928330278024205656858783651438489971318546466861482498794759743559244416525337157695725504380586489038066337336171613494704586339708714113236014080840625062871090193204007895440244944769385821631231486944924356197161121308703588831715351585483838669541418882548977253492567906838863218339163342980550817231071726256169272116346306757643402328998312456970143417922179429257341050373325040418145770728738252590011571892069758113033160823444363244340722904319648829200252597419817853105251228789096142392541660174204108305248752075561268012532234037915846446553445525995600963235059939528453062244602671907054631932201498662734138459829822414496387875340908344986268281842933351745901619481565787697280138330801521916422222942236780048295049022440859082339459859468629972067383108685361679697257077517092036653861549760822312805803063022277766631989357486044991484854552221645598377278995147061621241739483321020707996271637822166147833187199517076034282271694096037717844932256374475123791678540979308016167349323726565122255560987120720714270505823611067790348194613508445379262046189741830895895480978077810493397119027466501894111902191114843249585632578261097484167251766487013327501861228532706338571649279783757707639821957077838741341436576293922260809166927791523815401834558513429154498833638011827115420407263680212954390102396970571085221669495261530613467209695306675065098106494217458098578480473407414341183261330223147752351787125700962722999659410902984359350664994333521560412665041608195577435055460632734701779083361806263875630408557104703392773466084359130512533180525660060470612161892025931580520999579728612546759275822897219788015060024128336648764117626268355746860625789091577857763693700858060519245523230287232250568365580198546763857224504892924446016434927813220761559935201592865790881152254792761868002146003877610930001224119219272710489962552141956330366583815609033807568253659040524793903386820735817614519794375517239256576348584630528184131725281987306323939049242607734743104682552383616723113549966757896661315333624402449737757514606839523599151110159895433144126084393536062222835823246268835540513685109126484926294097081871689772711477356716338843466135371965090551964251320687852838431783546782922441350463238715349201439017219542490302640150155168881260870683945644628598332746310154386994498117243929807207308964235585994197276421577694962684965135549732386053214298266562898573477132263011329149630417943817212062390303560718985803202502833233277031690283269802903635023059680110447697976861794530160079880749637865370445661240523799696687205247893756578545585090786024492261809414105589119406374891239551414699137150025677230636710260684466880587575461064674526361126322998289933683781573911864058506359157670648601248252050033423249912771318127728409570026987966477611107893512605518026651219422714936315304249414373169890570714125138209095676891136923122538743621633928424527227406830089556346289632280825448334438567702233324237520432694425480022979916503187046178066146787319763386475254949959464152181123756914889612458018497842345622849200941482990984680578740779216072176262874065356152345832009501495397346783185959020444700921360590377931991231490591732682625866837603053642487373230945452438722529521465984814005037522781028165975124911418795065443099421108195541450413133439777464912951430260344674377012682167512893327389412337809069953581054871094095015816184353439389819634487365715503015658008375314709461175227656230453395606966425691157154752327634951692720891224664137090327029944713594632975236138225907259537057196245194541363160252479660341255488641156314338021980579324065104786103947529966562540143156422865065671134889084215760638962977015013864253646921402775917618145849464768999658401106638426356700866468985777683487391678774309028644118197257969502651158172739936964026200328942762158970639041492671573452423052616232567079871336832124204360515975816184140946912529036880442932815882153689922929264720501967051491524515636825367179217036153598768907181459927905389705793251034086238593454051500018160355172214570319516339298720648534151018092992860700671669290136309794270090096608547978578710099865967546823369934311352950768633714016624003459215146692687614583788780650245311411619742897436607419535079074987621806115764229804045663454490963693782139040426925382422721539683440126056767794719727052541542331573795306385375657665833788577672063681747814531918742014484752858629086278995923542570958643578482510395291488694707206768481491732161510952427015560167131068868421433136344530323772694118295348755202631917952407185948896832732830124154986174627029272946553778088118579271300131627347606744202776131238128595694033543555401204601144898714750925630687775929633915576256509859529357916098018180987471462861237216814429804631906080905783017158180386331041119467909292599512398655577271130224452833501655327174409835245081594970513042467001911269566819691710961628514724710512472075745916895235397115541466114771134951462895830239753934005966316058446785360892857564951498215249142252424335639254133464708319140801280501069042067455355791152706742690817570918941542521954410417628523839930687471646967621748015075854648278829770571908965774224698515830464555191206029106757445018848994687062391674200713712652138132663160766329248321964123771098851141661632852863292663647532412938687534106286706748181654475953273770640528735319095806947060746053303501118500316112254864688867340325583406163995436152906004842758215799748738599836413537106778580115094880297696636482628209673586854945165089226776180221910981808659263431511987220054435782518328837411946371412339830938569472441814256644470671901924337493872999514105937584577968730150896855623808974362952462974922180376824969725968183770218101960867768345411711974737213136352647258540461774216063908974467363215525385549400884916902937649330559668741960368934143585565729427670520762831342488098349112449886456321812872102860762660608874987880695669968057646910529198321811512074509581778829978835823918838458769326778932304401050640270066654873392792298872094953871842852284034585858136458963284673538773864512461757735068297920295854175356986510124504722237321917839258667424404763509945093832138504975717070994745659405848299690814808576361142022702296857226375725483140404516459874519430334043279173102033274033884058571972867917439856785139784327145848714333623531206801593431027708597348911419238423614617082197186980158443371481454443066451549986495589194566384085735019022398793910237267890762956546619178068133906771894911661665732606898378012751240699410271494194454456273134431382305841700389382336209918837148488909173164988838836749581843028561337448822077456682017189436770402051247907826281885087281758339050660642985431133608837523713292068975799895592879084615991473646975984764572493656229904067596080176455411610553317335636565916161749635009282999846717135753474891977790217272789645012504426691146925886407911878740792872830552676910985314699925323685632217049514587549419565095092943750770698350187944146773539194751093208352910248500548467071661906122222180552954425975059323798393036917842019979029073001419106680605268166311490112769877742526212770136077770254601613634197886671106793700486214679095377229098435687239740530338416689147568579116174239759417943670410199357978912087203084616410494995593321588849009821576745846723696036980369380451001404002073183307289335158280375004783865195101296170162149143937541135732277543215509652387908301457167169780971314755246102944140336601664766769359662709504669004124952143947575887808370712555076401999543943546904419962983493384483948494495698976069710264874397220712853229819881092426067388056365476109207194053377118022670135753090472616847856060377365118319036838494631875746835795240543183780954952117457630515352585855133643531788027585545695344066706901780831234599698228203997774192909218759018244285889302916365538644794934580280094642239188757468003792237045257447915759016554739663266335907329014721139324083861891699692187463367245866345886211810705701707271652130253929030515193061907381967005783592738587678505455847657582944795696691198789158521543880590781225211485248273626254232269712413758627469813406761847805031094008959156736145932493673675763137547018438361801663894122416701562808863982998899631693955840709224148546587557851527200465880704160276852329623262300791976907169779474728648272461698274379371887615577758213940827222577720892512728982984939957630767640211031557994634509725463931460302755548882722871437167552438526454704693951640248711268562048372448672108087922708503201714808781252993568353490828611752198990840706372239111049406106062413013767088555783298938826358899859222983659422479921994153310027383494828087737484414273139551053531408488872096802992386470456226667630899323241927587495389010425922068957922312401383279733254841675310188223083884577409561315972780414035770812177224096641856734925475147104227435746258115546174188751170822774157597156476758177810577890875586587973842793218954416449491994855593321258716672505014826566482204138398800248290879902240676376254931306434669817040995706928268841048920547025926747311247417042669476250620362867711710019831964068157683327279214479008975397504849722829192214140193549063610479849780504723493481998497301425385469987831376678044495833509699928972000254699942886160768382495324841411772685940395863004799356560469034939257596135519647345893099241704080290745678030541277109946805066801534475907958680618988268838398894278870393169616082176939139797837323221370664907056782063926335217696583057614985808422619042669830755652354361873031592788695763986523005585750541432112036078292726061452657517221227832738811849996568259598138456219656086362726636800923379070896764561431978654522382329819929446345414354957564276832482481989109178512508306378287664866074822023633528221048262244036970588926467890269025591138772152304334318050820569967969821169005238359366612715649152867613299264314475461182171667287694186579590477615629129889381074309376103997199259250194449764783762622689502160979473716927039169109549180607231861788294608394921442623415010193970821911046645551748151382167793667306023258705546129900606304511193510882555243817554588482773950867785863550454705716680710273893651208748408814533032495999316527436022986445517267225702523160385251726022543989711030119192214036379663572720868995239752888407506315417083654525459639159227068757822966943707559498908772617259115419126666219795885491614621244241160495462594564350146980231024056140525881963434269513698911493451816102784456701778632013648161604420563740856702791066583479604563282684930981383125457360351692101309466110773982610870461249187310920746920854805961340755061492688901824115526545408390074218741833830018412488677106729304799305941193972484680097181537376072705190220862009420483907330633348654539664907186831314153180468176428405163952742880326827581262074027276568371558216845199388910073211334940427969004739430623332149690211513772551168712993889379962064289050754789150317985593420494107522238741369844952851727815410271020342942288413322316054456160453733193514143342839518658409836443566276033733282214218503498470508469909286051281630648479350439849240223605938208691352943153077585127417975241994551055395453131678537407573013804275088295025466864133720957135971369605989981171045894243076580596378436763112589068555159229272955932859194685751661838509867819005143586577756560794802817048713814255386865992560327573365295338566966865875976576099847138233932086157890545242200658759563484761565577773219902252622361405829998121097546798095070152661065008222638900164020832105549097383995223420747587188039531984671868124210511697519849638324540796568419374574782303947137701336488514467313418192397986025459140136313947833130948718474666441642311740961561409660407213891189496955667133689392287476023939484445245627167934640843058647727232665760943030357623489080821589615155654176537846724659772183621921891327062737546879961775828811168217289986430067637400615728437943088101411216121273903708598520738574732548522415469030318102912701791875208373975110808250036673479980624433048493177356383789784615872954309121018585221047390836719336123339212099793519740906733500855188045512244973076781217384464114828842242922928414931810996920548834882613997005837926947151735911801581327803220519577756423325737609988958271140219583038301266391169892608991249820334120226469401511391577571417618310958704255730828986780560435137722402415079723541013190075431202465377282698571757912725047051277751731047528734949747392354481630966076224337083151107146359711759997291860989552131079226343826172597876948695031028129362028689492720551396527020749155499509646579820436198673170156981544677892967856287923802780639951281615645610421138746537479934361355888535770272573105445911550734700535610598380412487422011943033009075164645712320521056402465585975099910404527225820832193287551683462820621425953106093309547250507613259892612440126980080704042961919879885216619413226353532076417973172507855749695200176445348285916450603991180765127491200720457986661209116873186170026176229979467639898660800418975327000579578075074786088887437842907737665090029768776924708381784811281698267288262556201573284413808652217297612979045645467013600154282858905528493225025308374684595560106282362995657983493963848804536803513930458754859275595395929721034029415566101694192918769986115882152372974027073611745474399725439983321973764934676576954216862931166630605817248674455703234586430455344324466994791959734031907411030885102801942552548437357276998553251355079119363980988346480334439669283732542603565525258123395818372227081027488260634105591933396568314240441925311136947791969251001845498734530286575134375516966800906930405371589027718689443936673055257883737710773031884912324293550019295047447688971478101620261542981406379151523639483884359081111088964064890957589687385497991389517298971294556090547577167297919359014566790240213883498368126321844475542539478546269235008388722720071881722270589685658629162188894998697047650758776259825225609112223065194977103487914117859411054309198048705104174854552145640992564238902319529254239842085954384825109965227472032497325756695983858583522283891648448442960555464563044998656774868196115986114356097181277579510551425140196659965584453345380673498017177712563315206582291639074799989185695891327002454509944391943243004663342347212874691220554220263697567194862677998085120254576373417093320742566289278650318493463415802213311428960642744525337050406128131230667904118928003613971527516010475871849094823710221152630125930904924318335996056543713321334478885664842162938303785045385706895953616191314350525238467020242640175324092069130266606070668873595189671976217279841039291438765170881483444048843967349855440641145534658171230623442309199177946371312951110425054017139094979055650054934758039075217040299128602700831068885056387367673756648053519224849202928924614147954993567858221558253627316797023317533569277189517778178802104080792362681479183761715271297049194122162481686478407574291808872653097440276329097674013873293601580428259583017018546262870542652852197465390702078183035447142978502112361193609784939506968436820675292794666424255785680220756578697267810704354258156084814718330093476323594538390065246469641098369155165039257906218298596857504659496275729392735914147072265515393038719620726533400427426226365505293713851519182734543274706764802709602852970048181413322647604304562784371539046310235413981663634155724691662135682306685850461377989330370522723934275598322137518163322699568186966232303585155564560564942369620685589545571990590425895244801934567880930078340888419692836083975708821773817353250277268374350871511951446204973041315225893747705757889299035313399676546966965493800294801903472612546735329776410573887648244336493380745582155109083470580101304996254472027713548297393984421449829913526320275367903241850236476305714727990996468759342401252395351531089725508035816330881832217767823596370640629455334359497361256074686260790284364552072342187683247646004908280868553035997732662569237714491370284121869903048537891109962218868005753051704105540139144191737228857670369441696308208920774538718973017625489977075984102830665575526290658328423348718601336169776075181730175362977297037979349290607707947764163890114317162931265274604391040866831554751854103549441990488710893142044181087648157497997654894055982163460766053246494136500269660412641994110741557513196683958237861399252603446073313546230761094363985803350369034101803564896203920811757699988084090812415829095905194092014232869621058733418947211338270498624578464248687768525079419848893413473990977589127316110126259219529538330116597933579453660435639130993436733912100876331220785524896577830718932461695850427460142527370013732854675790457119118307503572828186381219501350259846806162263632381552483884482703032354145398944391535335867564718760196219856459653578647653365812736960973135327657481057855096774644898559006924348245084504183142273725970500861871735897555956007709658463597406571580486298454822955927802001672866015790776894879098750404797700869169298566248530298303253848875539524344169375690974487258506912415857450540756283135625382968822412146641346876251282150884565602452186852656865665311853523846201402851146982931047394643962538962812418194449188401421108687171227530795757591696458739562089924419969743797951159569044612381153584590662768455612376607165359878718108193870096417093404639431894305432707064480725999517136086774872259166813860901154769332598650686458449121284747223066228380818583310235518033312037637985097148702053435851962529283058979948166345432459796951387501291948991746622575707621411515326354804332367949304570807112393425714012413315513735389670979358111359724187572650254492524538128300910431753833868915111876908964739206768217234004549238555417600177595240740840354298280254677123787523550412446203001900873561810556477855150974033890554572796903882570105031983023306103088513448677669416166429516730158688677092626409495078934853008251587990439824182292238480057351358701498098587196674896727041187241659085070858316839781071318403389536348974674233472739924141346631347475578029109020468058289002903040322827143901979560129857646173479639277986654368427221866473277213801868097071692975494772020509758577711403007845575319761803325213566606322948223072761891021034268711198310511982803988684622919994648338632542790372928666168176491730175446885179478560133522430899357129786864348412075920005761157398518423807686128199565470487005787381245097821046397925969196247925015253581481015314769384985007177111769612981670927548841390295838601232096524669879729363462595574181637650437946836080242910454265029826871738304287319951086399891932242875658079557530037105672940911034879283758866214089687911615297804740018977951552223415724627840877252239742530529687584537860403350492909195222746445668579882988907747244024142403943899955209554116932815782863419563936947448591923633117869292418475481227186166052095436615760381433145952109209039361256394082276266074299394994715593713232124761206016107908774899739761390722476185191949199752312389460756327536387454111287592937634000666185538660203902497652977051555423471011916528697456465082568817797125630597019006603271383411237547909052361664819055620384805643385896583825036884531891300827941994614696699048378981445094382218796125013279721674921756721440428436349081801943230096521252714856626643864088688521399724008932766550589010843946821494043249480115147083801569193539633890279332898528496732673508366373338555394888846885890482610336054793224484486166541291154406160875409687953936256347204728975944240357195605559784143327635562117983449455322442198975076375755303004473334698368480840067357475353515328667085112041801580879045440041398771092594130879278907518334700069691696309181992105433043046983700846046520438526227326889154986940606184279191461424412438180338585246447712612175509148998578377793025203006767864361438617357044129452901316326206325568000923335036849038215451647083700061411889265981048975725396044856023091382172641357149248140210690317632955429008852428337328001942589033718794705863629462846758568855078548031706734630965576071187606686282302795921776510580486861777742754599664826841231918808833090957182197503712257570969887496030649468763042394603256550711124050754435677758352626110753626625043263553331941249779377126249964384495307951436673354963931232884019893897600605207316047695665416355122008508083482621809253665773722113556627763682599438924322142655451528884730576197731810184208104990095227796894161629900021180871114523671260333193802242281647553524081161423986237738108253236023853623345895604476654090113454337608139774532339384498796932163289043380267611240503646156319125645474250904771623040887750419236733021363457441617879112905686108558936042955275400935721903305130689905507837825986451622492893812187400518004241854586179266696985170496859448514715375472634525521125330763726455314950228262055836836828895967485562661268225695528778004077949170597388668764952840802289199880581722394084869591846802369841471347065499849120754265159630969499846319267218214163984946817909033243941563790804309650609185210802947312934080597837631959568016125233224956504666642195803935069930459372256832418697934798017369901550556346601997252755122960984009242633719540828754465814484251127022089792591894609647819463339613659617616672402418060368904608983632987025288752835782185008331680425327071046383743795002559861846026844390507188959500781715445306799481806673467213910523231708025658019941269637863503479327328056359518596172348231408605290211018602662964276238485879764103387730577533805612220009490087545541528243483216919111049646012347762030087300834932534456194531230127575041476058214411831908438439070957714691810758113385753684408343386231806851932279697629409120125075013089203798509217636822784053253991368739858922248752490514078381070255110915797083503759084382425569069130032808562282399441449044609499820029046433340433592664226669989481080582253413125519111849872671610493553135658109466889256618292562592059898619075063948769086562265566737427332980126420894848587880284335479259484522648451216325867054866322498095386033682900050745118965055451629329635117263875574882665887822321942166883411633948750598686212050192318845791407410524066154758883962680476216283153156969875165832527638117195672568465899542973666465317540119149544372109110483389075399341360472115257699181035082818187915758818630494386293091335438039951419384831581450792274787675278309691728633199894084576331079655347280132840138798303479185986596741646231580622990838821778184341260186739420625786994502962497476864207593440109057054534440679796932381598315505039213895506651094887730890619979321958650517544069904778733986735995139542590289493447018403990225164722951787950339387430763444846977348754422934311963793572417238182757437644464478492496545829176760467688620406372236704498168245365110213019608712986310485173867764740974798493534862525244541135822625887306449282741219440672251294325414146829795988597281596014940680713613276845112142860024930726603377348098727931377385350314024360758235389496056691691150442265292286750833224247613421590095676874840883409222504040617450176852304266171241720785548041725724353582890327714547315775426425859073944653929568798101233289833268197203466520274338176419602897099933551031413888957263393805576737003038269475230228083874969779065332317118625462826922411941978180564856964129551140023113826942453227123642810517686553517980713729546013199661736609786168670027686330389555984933805583704381749693231501698572268804025449412966849311429538194877699017894665879045955985643280425671094618308467593470993439128199408154081722122209166171038925835560165405371634602863064067243832952609782705722166906897986796383574922874134178363540452812119743385460098039351936002236089263044696618957384133235116639984683233091467051835799443713625490104408402764538990965855621588481434775338419351849362265900560880622238161411082461604395075961424610059841678513635279642905345336484222951040549458983245101448904369673103265448059141980747494635366102501723293714635209559568649659744560327792166189174771676384639642655350626778738349971028379761050383900569398034357981591368544439940479409340897939801161203888272579951803199435911936801635506370124831943267985780947324634275427759250354273335208674219262304849401819365450908120626424893638861382907156446086737558417292402242886719408140836439988138996368101569520996122383258612690243748024275167773641049923146784874573219183229418833261999680422916884763377137367969561165802810968167412870284742488266690442923029563242311017317243298932547149859768983610228711460876226804572702106094177290365282086357989651280498741810128797372557328955041081428076513617687306709886100927037299439777414264188331646767310082515699489117516984488975758238199827984897688819266610291346797072150081152954011985085980395703410656580196756134790700909740943214234040732014442722417145267733438515056884265284265430913476065146452103831285850605523523053544127888771629122703088598770357328058476230090859632621358021777238067230146594081264374228992265617227680827911124774378686855645201686766388983583421447287048361420933635225852026891260151085692004014425976884336608849831406579367719032888937938476930871468710619266102074607222999432941563194853127910212389096428119224170541271954184473550844601561688843160941306995683156112197986077102965185622651239486471701848020158525245938913128092176618606127226124142284834049604455207353266997872097855976583765150119640993526940061409149286688771610443811181193069391544725525795724024266583361378252236931627042878677186170411647935802861064471122177704415337609529163870556229273362554825720230668644469829823260746952327712513331931189614849728464501733670415442733361493153616676543422757407860153091016126257405356705676113088686787039002433540036590049513048614932900411539109273285815193119452050256713891697590483518250614158256586724061368849649552278283143436555800906705234256053238758480353020253185928115672549508245313092612556253911951075517383564114830054470649326854915205193902703749236271634662297634199023880952117693414003958759324103443770691782559399074848164674090414822736021158644094371640235963514978400461977460126017958627337097953198879512255878416314920777139256723023353958665172026478959998968878226263433451633754623209118898155982945732360507904252738608408297332839912065991344362207345047290914653227170081944248589539442616264021729001906395548710630866620648888528891093320179337242700546704106625142308235025696189086160754385828877196748437785824254705649574496428459577011070731341263970287994859742374647682788010607877726760263204668248528375349168261142680797310259874901827584245989539549429795581905150462316244980967252929063220939475757610392109830235093011737471088773322721577627576772587708377775565172067290844162882240936514218776913753226024182706697139027470388827450303802936178251274679407168527320035528605143858353656092609462181079362003888619101891921694431305572974149059426650271778570869660898572896798877160226801057922445750566803602669661886524290932024194170797043940925146748866095002501951558663372270790048057530517225263819451239049215899704160368638132663361354654051220806109848535478791683148565427596969844721415212799743376429480857601845985537135027141054945615816329847951440588054718339430873718812216658943778351057038617848559461438415479966938628435182197533748847612625584109938724339840623195686992537400726123105235747710669447326166774820557489018647619029406043680988583882271846603348425049445027419458997270389363259655255843519005656205287036222369341922442385564282121283564996658439160650644637147725293902312842942874921536269864539066426837556826916770339097526635507030817140315327608714478057083144782253879055491676343506969517637678919231414362125136069914250365525332284849342884776753179011667134104316919421376132230255274091177705610861872865666958217124410884241634249321926392751495145035694749180312895993325268230187180764628577906882780693890710857231893014701818642871683923944108929646350574198188817000701135935479817010942011728775667666672589688899374434218862656707250606471068442741404647009734457832246129781855363719746424676872700996716860655126634214889330626396988149647382693230836619204514318210161177425382906205255080956243081280283285768073524884638658193972957613730099118192618291408862438933383083534751989636215990645082835090843341597613135016437141371840149061089965115254317168812675051416060190954372854112144889798225622594038227739370158398105456577820195623720225198795167977782284397410982169480477999221162158293715257312858303945174635419382751944708313766484753521138520540201212111437938688371658824596764954715698837774167224021564159477190682830506121184573716792836555966522744963928818704698790376653165077126382236796211008945448365174252204494612603253912206456831372332676023787895950046594838458232877826147800965059101118563173423813081384639342613010863445721959479887442105700994724423694239131378601196820732550110081432590866203312452050144745804702880421855786404525767589412805885090418379689029832185194026568252572662976706594014739801450679955461196125431882447511426224198511525685629403588633081419839159096922271402878919297127849649585256367789950869861058262232253386152525655736645566001503678031034610179220157718554335491975859164013614806769906127046053349639446853214514384485553275134268641330437498129883819700274166149074995265871529996687109394786512165321719242911369962420734443312409762486752776430797259711509883187430886251956519587305094970534975055097446156776742288461453383987002744512967463192133280417378160828363565180907463967423903302657389706307519000599752462123328580047367196277714413407005329740458135899218869839996444054549528421541741737338423937349159420642452253923880801386104099059450092848395275400141948040213431116683335975308811412191473505189199431774758710406473930876116955651812622287775534871188851847671506558746029667461662321180263854373837465998176669843796646016565020095203629135792846159379613407851640453588071018505911830223777127753347299085090782051787524053650553846031299410110360989434937433105063802971327603883914331755330508344822406510328734225335065624498559380900304949847817097894554012258106143608935888547336242021958443346545711155946589541537095367278184726861751815601617174859648738942907367658285103320791790359316937475017094528444582739520151277406833195160468782997199126740005352598081459878766238273461981803472644936174480114483524086602485815327751999042125066190400505570915326082747333072264464199745313297974266994239243981772737749034735719279511359653086211288646278238591284541473367157965740853620972247030385176648291207000545018462035719665665000081674789956199880720343430709270196320061725776538831984352978937710116163515453351754551150549686767780489412863958638299629126864779397951770384011280158116592677450232580428050890585396103479222822459105270703081228183051814855849379307509576638387641444139656648850175034953669337753739069077199498932030057264473968347049036704326704717874861152599135986105236477946093611568674171359849075840360322554527379093914867794764159836983303694038871864604612570546655867214993143588597256562113704418691491864234536626049922469304319993863981120293904731503083000756876209356392100551926470794006923597719486617717556705395654735092730286873083939311666780586476814222662256284128311491423012726546447978411005169644373284102008978706733873567202634693697734986292565234664090554605800136400307200862581521546394818915498070534962101198513378450229450076683797096377312162356899509323499873655473629549612891813282142530470924260812255557343348554210739151125139789577694491757293856008473332957918625407490875389126716790155685956569852220705557072808914081798487734295717744989849731168098168263453341081609260865684352255050499091646417224949140898097678406124236822918987288200586032448810355915072070701398224166132845206197243804345405602615171487320888507191314301200385789213437356198301530759345843310671616409354483798906229205192552210824490387924584613159865336395653590944891626554471913571706434720710123755616163710356928510744553831692794298356015858064514788239706001832765690627117163946271026544101836011800820848193164666891146502875185021357330065252574422065538707846943217080888386806289199887818608321566979515156614755366706520339970579872226316689953317463852406692456993557028762475267343947172696333125642242280097362236234813469031266737520758758766116442561856502790334145150510495199688443421541347186859062064385909001087822814059023665636620816774329991045606486242198331501989887958836160517121415226323617681191233160226967189640367588700854534175526544112065682044605455451219967475369545453510811753094048034367560790607731866770019655711914834656899845016012176667307814836610006933754324296601294263629710289628771880572424530895223846646279958515853604502506025029858954899053367904638362654992133559045731411121292218001602601612045436739350886076226146527802726807465940703776780880814044153908915319098224157566025139959488944947674927006615861225877403371913795291604740282906675015850240966040759527482962652928140641123703722443831744637456283978321444438728526639402295060491383322260181039150951950654085427315373758993887527189016164550106514895040909611417475074047784039732316312953117472418361759348096567834538908252485442464045352812348653649190703411375236197731676678389218913020424572680277778549078934265116148868981849668788988455028104519428867726927325488847502559380373022934732661018893265831109738982976311114470443431444238102669321122941194740242205409446524540736333807320136451437639892634652833464844753816189248588414946735424527494106167663758377648830028902078592040105044760085724077273619168961496897910890050813608829435650620921677730263157907555731319731135917952143886924348774247890554237379950839020534529047159305215025249878778058473722453012811833637930615502620997169115856332859123848972263482992786752857253660262732832746779535102241029417077223320634417074947571855457297676140048501492761658877776792181309174862886977119469457915497640267176643332361887432128318450565409322200773409226680535255207087273046300844154483378798793236777689931749845271867919758925475854868705003225236168757518386678049788648018376189739694686714166728205505332524329940961883291222921396270544436106293336996187890364121206116253340920386966976154935105575011812363446013899536537642364506284206013824848894753334095875074975692714195268325534308659242560443937581135502476280802297910847373800729789510810351768673208055879515594360146281439011099224499916250821038686220578240276126568039815836659400536832780504838666934153389093196721023639255747470620089013747648341396087151713926512775045781264247530224166556073217418947392537031999521829538958756235054867275917183402964793870763023915451487301130559644217963653056261116462705083939920198024292082279293951163735219379893951487222312249668957613729837139499570713708356790325678126015714081008775068661179909823576110304970522534606919490765145673183527869601183776080584462263039137634546249316370347167157863768981329429091118581364975904524927098951778332123364326794397629544961577996262410952608844828693165706681506270625452017167714464979270146972538568039056953225517512397653094260633964832387581854518235198045804852146443080536560914868052898159685397168874413337807981191118747804131147603758392724006181744257730748801323711866642864786256846761048020994119254916547057391485319959374942476336893166346347100090084871233369203291178047294076559893473216401945604992454900379479681891894109029109810187440306114295499192994609606406024154698473006537809814453831416806993801732706927454831819116713073937871103152301149265980039612281697624194738824843759097939790126746565949173224234476597370151286828803167697038306538118841495061572896196084603068382698453818099752695732210847899776501139087469099744680491227172945432004877265221723712055532363439086374382630546496834949965071995567529282447092765428774256265496976547404244355957371590702314535454000376472326966673160404039804182881204387729311664832117144294683593796032790284188076447939151178506675861670837606502341608413576250234069222010389962050412051275542390889690245155192650766305154246729420535119338983402757802288254749031218407621254957955733368088462274195510177282282821587764305974925085852614858142815882389489832216805915195755714548657714547559572738622285876673601834059338354919829848530903634611633652458785382296801418398282699924539446031380096982193976040727566541905483281454267102976755510778804237325527226163409917588473741593386257041668466942026395821541144358391819576805265402245530056367961800510577161322267517804074753383615500289804620032915808079750174758383296459026570357542669416062437943633894484251363162384906515766787707488230625654796116926756349032376475439105336477433481250977053051953710951207607878150044001004382206273375732626851625350566361734869141758289713430203508591542090208560996324261838645688942492944923636176956706411557188895951125798576045564077106142508957765612523143813188173331972183662249375871318321055296412914911128895139383838803959682969372870646917925480830260938019870374102496166767910702427937049821838563190108992053793621372845959638571344645918064443811697409104048629237578352688017137873278888979420294329345579113357804429852674396492514927096475716400764605933523630455535830678055049944222513873281370240750693130432366651592185145636399125477373202102847869327522465791714749079771770236916840175346446013688188263281860736500936149356606505916859020900891876429014887042845012664998179075096362690765020504442981714736857370555987029745154997153577816468470001573575654279646422694071644833642639910545321933651702391800990475850424738623951017043967266406762551020017463803976479863623692488212078107694170203610763236649563563264871557427384715427612732321822374983357062273072274363832141396130725807673705980635789864559609343956609412672631178240822363216757893717784237684171110844149881352607933306299085414933233341321987397601463656706136043939766998903164535511907133013012761433551213511284811378309187224552237861832428380749573542586504494963171755014742391569111928949417437164924317642242213948708051686693712790256304529397691353430379271458660656096984837808406628474986201355611653321344668763568581515175470588989130686765448733099231230027182639563005481336796057884986978827721717779919718370212871543716965264816703238846940481560871006762486718137957045049088721721702086781849297171760315396830460940583093881924926471613518462244947534888399538268418220348453907607266226126341350977515128033667728376868307409541665410627765965238485626622644777641655004026372955360255899895337254565096549919506867893437460285607675171055602111162502420128435536115490588596889341292494420324318940500330462030897186764789836916836522146004885552126567311375553890748847579069328890454203227004083916240002756660242835660003196551019072848298259442526000953350355288337936420336155875240314314498357685565929398969325684949367599218914614696311863702225389560197822768886378876257662491874575668935542758208906226289787893761450585139900594524327065758235438200693081554409058932449317720629333720944455074750860841992233344837582224997812117931898590286889292494199121881352664668894630676273954827646754100513422008947334875822522597271694045728282955065400370685525664665714518782317173087272305811852150942982001328366134112057169020351819276934020707529890973928942037563815122816910267714542416234999113394925894518915630589982159322969290626696524611949023406124638429133019161677167816943963739216818066718772405793083059262237296447480307987979069886827130067658561845080631661361881463652322782451628785391409898076060912771464957703329333970733787028010472697627127373994178317272652350886178249736248356610470246315521749060033914584890621474391249375953864711159784165030276758293010190654855672448955935872701287365748015161598514902009113916037671134579417369487740481051185379805799502378712973758229671118918463248150159971978522337635879216064167397687917173409072156088812086898239376984118530528707975717144902435912150787213290104020210060957293286746257077043559236001158328962777438822448211380726053984653833721367794391791568205297005579229968913468537532161654458465208653159072206737463732417229043169512445509407285467069524929289644317794038820004198723829545749376343922776066522834053453963116331190101903072452653596637398394487485863821594343351025960392566796761099631952107894453859636823016477932680400640977082010173047423278498901085003204058481540578947520264185200107966585942930492487578802441547852695544011862137391716402772912856334575758077407909291250650677148362320510985671832573067332615664400067006677438769661129199755329873972178965365123490831712414566978110946750310403762653044316907695666046309111664341333155571460542096908770340662172056582024030718606133044735528059432168532206994997602110734650120395659891273714610086435792044659543830867867912242522348510839645797675819323831897325304708642053983388259829031745078780831971132149762238636695423551667141676572945176114099839314022261523148034480633220888614398878241054828984306749674967549582376262304076168224934751468975634343445885377982348444664016783691038656942607578621351721613432987555414323197759833698892658915873313269073335950749498880767749580284638955378948104435877860053476109458523374663663728799640637798750491181028141585580174883208443721119178094015883137991268203316577102561335770539945153173390813002879356033463562353912783240206084558766886907072235316576668542114581809000585100189337089207940477036831579150793016185581235503585220360606039383153719211409602940161194892488775875271989096777885071765866780822533634804821584227741558681173234807436515766931052349760616739523511115423300631468953675166779089042030876314365944853285851278801331527775800464150981713494986225639293265667925059700308916106685778573829223534431580593743511828815802814662762205255587198474420584110141463566808201647865000533758978058391461385575524909525308858711510033956784428978889548694159655926809023804569253246851808954696505106024265968962115475305253492311853053053867903623420287087439573262948641603757686398324785157377124429475984281547957590085553941228186273757232134850825702970723935268042489630290239015509916138528280908051292347410575169627830587033680805060461615578323971514967922759426669409816411254398664210852580104254526348960088049954497089592711614796608412956147166259373192174612119881529278053480618171695290981482824235427599195546170143041437489269810276072149670418967621171076636702319760258931540779192549443105238192165863785671417496729341513071904341159492671981646152620741833763488308394050174211340933965302462885946757010821970150465944031076352497931423569922678384882937263312924979598375704310820224139551016645807293580493390954193517694841797992400467379445062597524390128835027699032839582467818617456035081911988632814974825081817390349894174120101126622491269262675171285070066427547701283379348945408404363537280880776199114022020916338415023775369644263226149827960246755475535582566744981897478105647410708994745285934389890760123576236183379860841666648403458664536520805003641701940184707907254707454297667181972804785320851202393709939103813608017239172907507593161885428472172010543308208777991945625668260892202488841112399260611830322454220830521970566115647112972272941927859580634274278028263365652517369141235551043172204242029987596899651809941932850031099930528321348808820908197045553149348482006979783860286951550239677786197851884599196526434162170222794624698411473146731649891458724491746874183911310536224626023610990281965025301476830652058458796220499169221040854174909344257198410201207657510359303876748342950084936190862704870911233466614816049036566503730341440839921517575587552229840219675006347895475552060838315357297931888130857811937502968844823895114994359166870123373996190481616884577242768562178341539166250636751237039254595082996270673364725963345801705312036510059542447850762469692536866106478327568884744439615631927329818973405983043092871389388142801912446551020757479981895889946748545396159020932758596249838823383980741210666682887556978964945815476303385191936420641807220397192376363746602783535306169281334157909371548225164752175149987334159207864272903419200795300316924674179159141592955037109889077925708821808307677709565554151424148804245668952095748428132136718577187023139171367768705225142590579364547278624488496048696203885867852222053361378573140660566030241659738119395884398421622869716313794308687490614343198212666177725536507203672325401651386437735272371161388442150223042169475945424576500374461022113218870468535499396332042512600143755655185237980386909289087296317251449352451883615045250407317452989115679449848515241635095822174527775134050155082463950665834853770353360033052046360699158500637511247126287105652144637724353377628307026894378415273875473269325312882008005432373922468082951855902127081276132981697639913324374856037933262453974291492350046246040568816228580184010075818238338000744472966529847858629845277987909988955815673192111277672835825143307836478728210688080819325254757114886066288704264920258698762830987621778091432576017182794588189040871786837394876373136437615077999203396621088483160537223310329269930626607096313784483602266014837509520273059576554735686327670071001605953987268616670455997432193244468271206112516925186679433617997817576357714817604585125705977850281780315898949933622424392525541105672446301638597782337396741880607344419196542269193886778944160604729124029223310799549849089078613636805121186216117424399231922283537484896115787031373633455812958847093438443422993773226783085467555907131594161262723722216967304877939394523097782613427316102556888998442863872560770113146192820123549771721175196909292849187656240022978149042231939382737937482901707832806999039128080222532614976976278723350416351777254711545138839984935881078516671805165185497804529133435218673537036151604978070141898549865347387689930688335902896609051042153711513164667900206625119841168816205176720898941780772776166974121875557760925698285524306394704994043274335695280504982573625868736140999037444934986110319630555061576068113793417490854092568161246045205326228508785684684055914366119674155585741571905313003818043247846288725858820289828573007006661572541277853501577661064303425424702328205694519718748877644051816729185679038461001308915917618657594925616293960475745213481697906253692001228513488646108333262414574137393482807417865823707649594978392531715954861375762531885836497637519004768843673815864560689769452141311602824094233369797907884537792203450120254118992013896933699577899077707158953400816469405611258575484711832148823884134214689580724357091238036781297956884715776705540623288116634164851771880716685171542382587740333810663699079068424084747795265410654635837744269915104134564767292458718057268490590946417432616160477852028830621548816921919021872916734818007408821678003845652349982911860075939043347630739991949011517849106482058039448698250834545223449767373349230560359783061645318393071791664369540698324707122669064602251991542315326559253407375963679068567649520141469855028960126169322511873470954683914034356648191074454186383441152074532647172725564989483697907932990918312304628300663609021179341776523091188015644766933766138979687347372276635183502899512051045784983227571978948261250595766503288009493646531070841192257627456594136056767567881340250409152183326965215120315892709384182875040516972922489426615080066031097605091390443955410032710778560845124989247337771180906285842741842809172589269050688652957957535875811861088791034098530033478476387148987358622883635524096707191870026403047439651701038564776818123906517980147585543362500596827793004133290983204059206985528138297226895691609357540550960502277064620458499775985168227828588498775195118451672952365066119916599874216149789046901476404218735351724441925927664690031776892221125406097765052539995147049231550259541912765254392660784825000478954521928522410843183478683245487809924983260757134372004075579755172978244995707732164380847404232605835666085135006920409889619727244187637328649830140028396629273632181070610673488035111735261319541856553860396344143518062075548616327845538589927361061327358039488543941601366136516153565586408841480707804661893070479110564034495049497483090303116798777616390240868363263176812091938170781141759347443994405842375666973257293115524794793411157254486350270799023356291110952722284420317314328863629536569492491292463712215352478160981779922813111567649757789098388956828171420029812307809215239046499836879288696532985482756566537758693421433394875756984065581784531169741608586093801592944345614275587738897399900733509223777445687072770476944680825484809213693331459507445811275548067594093361412491351213855600061182268501505596342216360950937014747387719497041196325414493871248976058736215080884317783717837243187750235586331186475792311260638599258548052801029979046333152434935787499517625173457950361027530109654137213949795539219017261666901092629894231468943635358527501554728934004581225381858174679831834911565703760312991471332672863057850133110716643507243407018511310021138781086982694652643728648868174257350776016599425733634669129213494686450867448333201831818545089957468560054082633031906894903455890776775402503912231355661543765889349041951167906027548644345471988502485224440293953840167975880335548493704492975945153389501375131573768848207039178893934487924708861205856076073493433217682761812040113620793704407677696862874173351920421973381728657892383333208478724560721242506128376926957892829722308006480676420315032278838323575335720984010814270436646864530655458971589485874833791661952004324776026502592293600177801998455673452312541580347901813901428977274747358201583860351316845453822149700770226980300010412946065533510477266369545752930448894203627977697550269554184802258472731398981616984152188186830754857857370178897910261273368547215417809316392732055840956110885782002049959316704659524848788906128541633190392733390775041043329758971302373562442926369557214744199214213785796594093567392409331310661549597521550889903224506175471171434488277367047408951006503896187619484264514827470578432727794188833291717411854812139082123894774328079473915820765975628922329402882348769308398908122760806423935218370780750794785773331781451663239071915075780138543849524808109385970438314511265563646802442068311569813661185586842437514097151489730032538622580713313261710613801607269117952680161861495079371417264737653295640505458836124161589324469668035865967689929018527210273224440109043235036211822246221313235535582094878244931792467666153909377917163707990624959319780464672267350029738519240909147503601880765425642959389429219213972082546485700403362264412096600857316166823279400527391897761459645903361087474489785575863296777424912275981406254565756696716171975514016767003367692983280575539693775856987508225241206450945475302450917752689899569545998220041962653868534766069490730771382984384527111606435114992750393287279031582812983923212330750874863040285528725508469833033211537580475952902702920978649383216372418466823290899163730125837997930590884114997596905373317112461696268682082233376599049184529705447220449761892375030206498754754717516571229012669114920483789880140065672289405976260942087067422013305959490722010802334494080489147880498105304164848448841861900836160239262675192267519782674061502948586309418143178592081334329895683564144195531455581210726719528247289965494757381928139636793899891744170589959925967455118989408904288018355355799654066731583208929217342063513083714754994000406085866026263028546763114281358472949678615795113243737698926922264300722152783695347762976071797531333136031081663692618803577737553295447821389716217247953350703049413083338367830030777017599636803694448061812863788458444031083812735938987208949826654689777809098043150585212027498239987526093734505517327513241203177628216184397769374761018540267157860974024424254527528843754638191429390405170573797577712464065887941438413602842803058627996797409382171153582995936366971021792623138621936709211583576578956369698445868951320705064234272938275811431728882726920616234375365382811110589046295113886161343751813378577521300872603092649553350243801580431659547395582617256971197819997193160528379909435142087963150430135281707747401196316338972953681660075407941232549557353726263027184378176345329574927278789948350067800492793541918963696077221795511998804926771052264498959702300414361474354770861287290377988902511013210793695335222616459528092748095709032982284541795494702366550368160874600963957448785557627063430938782491224207417461248665990886361814168718082398867811864405496417694483165199273842313564407901430037590174798646769048451619084379107995508783141354481684911860139936570433854678321244096034363627905446510249989298211249431855605037963434630689450008135101787134538219211726529475551739284280544147013603589318074856233501408431959576453644159091427391977419916004718675279676355424478134110521169620938892941128514971473258394445169735972925174734062470228930502313534267164391414160614399363252854159544826608956109764825412284081758180562861298790951733715136854546335107226311850041544999381094102528366024902139179259326155528066594380062262181819272888817785970641288069451752055712279231288218429894563853615499876647670466911040000580905271530593997938620341407192904309290601993142103269894352271795722547885116306581395138716184275078576598979365876634559735020340644870249728171525304649977584121021249649231447226004955153505914084957620496659661564602919991391044845974009724149206485764618392890823806671111801766876344590387004268772485980397486203084038439867508210715650223527307697460403600257161425426239748828061919615814007834295640709816036855192088409142878143292624122514223692364935794217535968995202761921602762260955284384134979117895497538247020444837344781120600980751227109669016900051287691412289590171975828266233849626480003210672290348206740338473640794458941935656618507621311398342933379190986858826097603679636061186633931416127440314674981579927496267328700788218421800770256606620056696561774672472349640991068089117003811702506623676324477737998692190283955108793093190066946661612002611806943009002263297159731888663813957037204321454254660052214508948831460183745332041969771043757908338186823494340005064858782466749783898595824274718621252435124199631059807371143346268101882060573430311636546597646255449021330605782042413698495431978898955693698156597685617776288671540997079042549969894427138088248509502949538489564203378647295394252400219865413080690016982991111294491911728687148040240496072586706003040454951016248402730151281663496162137027775854691275778716823910697099022864777734906274796530611267940645783462922455090434668058466551640627873550683815593655508377761942614507214073439377017772343780507943612208808155246761732234305442242730237260516819366993442708916715035328615294006456854839350430211077364270028035554421711864103472080246282186158040121118919864213993350363277798962996321266301767167296581019980944652657522768960654902679667396445374257623032093212687100024613702186323869426045037796955183999680365228387357575570622808587989985624207932361710437177074023414517534848595744801232460139999269408298700743685738435812953333471503894816261266319254975180697978542767768596725905610092801334798654686837039200097635132452141933225450110979084760066270899277730508617726602091863944231048730060392364309941814352242686616876291133767419820990751804883342211883679406163822503657779549598953886158911552301226684458211361062902641257195629436826514853099449748503757616584778424037458508393090340119596261798157203811422876657713636711193918336441229690877438906032004871149590856529478939676623352136572933560298055327856437221328288365870351696427303943970505570471489578528200763295984818916741620806886533831831414657307123976205232063963887458304252250111082540715412896098132424740189664326439008579660796946630432791002488917000891341612148393989661683389003416035274901430843235541604400081042781170050345438212526260499756180240133370114635463506562142191280676932683199689237491658037021543848745210654266862668766734898601437908254737206994418682964843675695715402651718359342013535294669597140852750515442358971395068133220572539277624898241433346456227520226805216467727543159806980328136267375129558163743841959629234796855097704776440102452734656950827819919379976898775772131212130701485513725745617587786934133290111962096799444455407747703996446663120044692105598506172785340906703288493103723520307118094662671426206317339214403426701434930653110934078471381263584171657117985464789519263414290043533959264909905105281064481711303087791610437009422214385750146745441481841933126759955325578276491473099994757635101556978873227901771584676121177333642493816305559331778512229809254975552670598272139610026236143441500170093437115172601218424816698144851156673974250993273960264744715079166585487604507332094027723867866190323206474754192214549417273621076761312427060709242501506017520629657839483092578704467984918161285901001073250926313693454158802751019878757380349969441256964962061875297942871946844167126652750067313182759417470171885596375000312846761287052204063544346006463168385294166242726974706820353084232752644467921966023097841319020316123685109299053401548258018454052465965068788116725758490260976737642233492170857846737918133360665324545255746654096380176664195333230654140401064727401397080441598201297450014316966558914848573427901791610960790697028863946622101006915079892277243504025321677582569748369682557542802835563325605992402190190052959994189229866956982330507691459345421074011387023153119259777241193060164014695309981918139905133848174714172949056941316945441065469127321946528800442977569799424325911206130465788072834423255826824274792366325032404873739746549391209225931161408352532242576892547464640821217807168325133331703299616034468244026179706015512695446423107852717777645150217867688981119087233753517119686428158723166989486479830367916149092773456959499161709168693296921053725873042166042144982664361597249613324554925156999132498819591879869008793667223068622068957574236999754115971745227554339254752315675508729306082905585266203777670302162303922717902994912122138024195085944011330515727138307365541534371508671625967965555127011836352633250107159950887264054332951485013998489332212722902152020752726559450605447674120351283647155319335677891727877540789494497983199855031044666537040657551443696016274817326508869027278748431015235541677517724091307159451098892085589117367970644023638374584082358773111379278094970519576781696389857668070197847481576994963507096807307657180971067882568424763453430033351250792220219583282835667208366665873509475879432342035066701918656130940630280100222755112337764928765640180515045790583987545908185613926548788705186833395656853183665030291081021170199525400156769491914086651465106015595119671881216618996073075763219044052855738515353326336576389594878666816770560382341790335275067108735160832340995683218960791233767651031478216561104207240764684615339436372769446662739380202348713495030054763731699052841966598539625836139596265707413120805531254478086348263018219891374632690541121923691740193810758830010839615653147271551893139916872197829795154050204492281280917298464716355230970182860934723617108749801645423483938868523854894757296489306994841588678383190648937220561486831774716921427285442725697002638990689792608549097566818962837873232656842442928901397666607482034230422745440696211539574344396515746953535820306378008813501233479785257666752138665002561067040798891078075776232476985905340177893485307551736211264213619629763061730103099661860247643035922272027551724574937516874230921138366109641128317679153472806497322438404703124927553039539675542793189276172628504866011648295653794579157895228927451280826651770634740884838246844458737922823095865137727624741214778950438409769835315301448086448918259852097750364243957451956809892149924466666240599029520695380746437099260060553463735367329145814743335423177964007916764363743688939124858347497454453081595641881888926472824654776268993344307661097623789003542139637974040636395697832022613024074840155595923130426837378399332848327058657653244962193116800355374641276564549701849544829124700660254578866422047495468683104960892636114571184464207141147395068253393734259281332148904616132565841210455652585831337642863145103170137340686538719272487978691098180104276270754041546868682072774789617653470626767864200131231849970340666460304715908543995989113912275185172102738788606495662927565790720159945825403572687632374849973267225522775742104618874549482171183172523690176370396986243426790431903306938538888679309947557779160198466285540956466534406852344471130463941301868258273848766184708270308735236407765259440332216188505797848378427390067838709121488449723630454149129763966107785690047436230096566828930627235061393477757526965454182156999253944223602687094226387894579271610028686462802408814486496533736656336457087495252330371146772858891273414405647761377824435749249750832199317007269354909682338590807706841677533986006106194814345604332853440226479454859554892657972620261125627273098924804307910244875865651597856930872670799703840529537022489742928086791510222904194320978799424615142263596923773480003208492840706515262125042553387294476594691094660871481280696124265280738268918561434449870393873899694268953998735597481069623484842644519852701475864531714587149180792997612390951488746766456454471627707593690874036975512449963239531461701998590277909009058256647731174893452741023959943752379716921334437736398168841064837961101598022798867431079111983914003146881678701670923222000449364332541942717673099467258322030910435274489824742054274755858953814360361722204841153893673830598715897282575270223364940716482950790490100848238854254532145468308017636167986772294629905243283916550668979136787850739137849034576125778964597288891795243573339623506362459728753142507746978694804980220244532404615043309873440538601491786536319346842627088306478520572207405388024096394335242052046852327993102449094306981923544349460210800104224650332291150039597154520000517931630696536961993894800179435720175217616419422005536615242163128154456393383364267460548357961909101230322541708371192387855887759581092767846023061490814923415716219932332862000865592721483734666401876921302912724382101921078604164427450254457975165052675248205052845261357930695880552056430554460069557478241987850755984018512097951675091484616936819878648832398975023856951174219744385450088240327149368580592767493999144990224216461466943817600548332740838742977617254320609880247744658511909049251494213430660019322182017042458005886827684054247204039558106087912617006909894750522402908457206954409963884504528288307401391833374477221053814689383866778642608118134649219528098509168205972718584464752450458229880213144579753277851696442173662331723234684097691008190170896651944051612582205654229533738883184671519051875230191709439183303737771225087706519768100391883140986009029701055896988432991043151410889034485437345271057052599801052674930640900880355045729137721518189093024960251810163334207886264785504168003549312443273263575259543775958544439264708933704065056855822318624013078657983102659023949327655597773721893784040569184223735488196792203819561105013681922803334808312332915188687429023604105435822908659387743573047776903042300025648854704730145173354467770817112241163698027656778750166099052762469458095067164004534501331576717516468644193397808742669605539108037464231965696298358143822596701464357076919920763945702178045773143217350851634654551489161632006487333673504607572912794566505237866370110645844644542873383243627937475508447296010393954958093223423337105561365614881698914329736243245244321307867350131922389806911106563197557476438222275362710443214538526784302975254612006426678061139922281466232089116392080283735915185542827849892607746091194144545826970823836720294106442088054613183007337003242328910539345223429253094060922490902406377599931142745960224285911490183297986838491504915161129109984529567311245732477174482448390425132803573640298205773437298759623655548240361800808742477601100373052945854307400016718463518374414031081775382262911885909678250936733032893470602790349895058460846066071032163228847892531994472219492360599722638080375259772088109000442644151592275661626028460654446374612192378912815041031230331161606155805970672630122828574687860699801226980206956589327857797643097607150593840432243004300940640227451110937723426526784293696006894345074297844932695675366662338038604200279547825168390203108235472729044415285558496670744661222173991964130186092251029207104511141498183831713947650129524828141921377134390658824567558419365698217303841401010680518233825438708879115541444339440417274402468998800521238824963238066958093789290427975474441792233700336831252026691375015129068697947013120894003491616637278261884041942725125000009265439184238578402650552526517437553208905258957426743381868100114508059509394025165191633451747972455529621607437452599393025067385316189823313451665413609169778144638489044145931605682686921723808275593702779473267698790528492622277592677335545853328628450332069775744187618565513183837427077494463427595624821184518349827841677749611607674159665525628645306234314925589780349454886319080499512814874002807802252304769518107108050393073808203912237511155582297645868758601355977837104442152635490199055831389091571281009288921271835731546811987575101761604726744765388309685925834634476418727447304546676845430053154729965492916972295635617300866796551111347770748301460397100017248607181384548706283043124152821847351570466128733392582346059324076342822996139046067307673412708284882900707541489093728062085063668622068246844034790295338985794094779141399601081231960303985392669107560644935695006478810958820213910359756256585998596427379641177603344041528464697575049512670527353319729271967645504673315104221275494810907376715807102534645611062918208904594926780681436730933515615829011002319583487847390428873892050335330620318257552492207693418986793482990528813008686910282766461559409953979585732160175219932612844169439067482482884297815061525851106543987854129163970650993659014044345163486936102947885188029790448211123816445264863867555253020402690568486885950745847209603019880657480359304237008824065050129331775659932256429352686125514941818638496823299422453124543104747724259615800951855722726335279880895907312811545991924482075302100357016736328007337224268696808129512293328149911905992578834154868940952454556883471321209921965324320471965369019835085232483622080614034057501299852243765022163159698903866164954636236992151695494380249000858734787028986057550643856868477948909661151645666030534519581004482032699571033443684594034885155466330675244724184339936089522847496722696140025592209402531297984451961435603115714281327021207485172009591614011267418515849492724375491727200440773251323105930287682242481385905065639601753740196841572494736868813090136507335186448192065895754984757129401708469725252982731205122874096209880308868181903859704049859782992733519934261223923648794953377771199010000273581297357694645796868189603696082553661570552123793310745019444324561153594766663257657109925014626130738633234991498009548965391017863589036375821032726013126157413451879291544680126133736641648151383209297136125626372790215078552597830979594936270986596316762717277533599148755778465458416273409643162134020141892902211967647837544424118979004023495150156178570142725811064246261752924890444500166652844304461728218571163694629225851350087838187073556945886094260573179514370641534505275385839911311330669020959738048469805812989815483473334786625344270064980241061782496493492459273390629019885389898253687666050905016988631721230110125047014536843746729685145919445963677494693027049180213811607056555616600138106327250358389760690123811132510013277709721299806749145654015703396860770882520820331480618457763153319225549234459880186915291589766648730667921683545348308656087983436233333467375891615788787382071051326214235111825524998847289972072373448818350379608348636168656347551903417100970438568096174744504511424836262299441122877311583506564653626425468662845524154873479152819338330907450682366673179861750434321903135021030389503321401864341052190848550892294334828204922060029584767176671678177789507216349160760816322064344691568387262761833155230632383274872361648883262724521521679609093689886368412738241251535049726659039436304500164897452498136180832152228167295649272757739295024314642504168781966932483105842501026403385102772456128033394630264834869505499793380929317081230231370630954978319669353293096315886249512961766472151519484746594342926339071920187601185967579105450331450082366758264667674883111231735017196625019982125501936009959300198065337972669722354659013904227851416473562251782494564709002897705120734576742945839436371965466073738743833049229497751025964296673889311994872624640407372240743711636134949706617528474003860823982086235588147405070432764002765966421514232312301692487544468355441307641199641031210319908932388278483502719177246043142861950896072648259050137852128086832870528122903165372197236460881606391821792141402096026037776611883965559940770653164060274877517475074366194145648439751106622410300224153515610442586268074074070989247779694296288448371787638049287647295860535839701387726860039881611613964650353631258055332491475323278477917580989592636662192163125569846486543532557055564465178952991067965835942449193350887121936101794179773617666887970549038739335923597923247504575546221911070373085109557108035408707310860815049179441139087841499671649106218386404778735157448356560649799952644520874241189390815890360967658598411776033235995403563769947900879916693334878296830455515922835426181416141305863191534913809233873375906085845020530731078445523837088739441378929870347552263004225410141772365435200890907092877501333677154713735114398204516829277880433852321578847665983046367159808819322565066124627619683676298194902314797035101643608750902395549744793697690926544310659160867964810005452625200907331499086590515181185864610060144072440836649127817218208803630781140360891113074804940257159048754309746582127065834605076936205842943272241029598003331990184223223912234744890008769125124351470692268469112830309816119100622993241652539239008532640521947002537175254993369562163294716014447237378690307248885947198016246978214622222495524179414971802881524509261276899478029865998747451629378844698945622199032371362499335549892371090439543925397039570803800026921489185023350503551659690553904166580347245641448833341761064422797945747195425183708126632540007803698977790183064235114658313367841852201543970503633988603306570816738248320322296769067420718303130818638322695470979187155732805067976989609921390557927179072553217980949657767600232903693409309041633542839385963362838872026072515988735242555973696333363175578738084401164934640658640939177448181251104250041203222801186101839493265432557743636584611946137635199484586376289875579669691627974862157364682988786500751798214502200605107632034231089485820267613513140907926541003091472904828433190055613622723878086078031230089010019627996698693920897105414587247761917588566284176752940648503921666130091174648434687513565022949962755890065578690574683591790508832876199350375182913116595751552810171447945002029272468468922250749862550039471783298147463771461610011724985342761498560692648474523850020607482888368425226992768180940429108140099246930918995438714202059451978357923646770444438700581101875578335426387496050571042644681104413342834179866903605735741108005634651242850307732464852265588029523563551926069485866340694751306459130247363268668639810703637438530775055013510352282287788558216239268067324508765753545766216142569445711252473569405595978801642654185006363147614276515096686693147333123512126104757011469408014893365532376552236873897550353574077836080579992662546840024468038589061985754710329408258450982066421377072288430393234204094113006793456758726145292971597503297285658426637332172117293695236921974729916775749900222977826563939262086035651321430079626961300747179409388447612265645646520380937396410539941284826106682022009135840346012556762211076861081322543336212748673266635024943611307877016942486798679058644638463553865693283441047720641461229523081973409989113344149456988148189008720382844035002427752974715544724132030860205814875831764340490813385062251967418487956926261961744161823918700943111560573723880975208368786306494776751217998135630621111766082449290248054771480296819375015719938476367652321020272386619715971122592766187287867360859879453788375062109857077542714948715601187009006661526931742887781139846040325080726341980263335425152547231731494671082489863156829612788302640284863110209335268693031476287167706684489222807395117541966462888041910439937207786184648744553271459695755526667409884623432458089931196380975501509638538894745642451308111811583800054542697628239098324394011782369954549026231917896436869934606746208485442594280659487569114046388246932383495462783283855879114128249539667802368274578127010119983264989262377581717234237332720384743804200736055787940230081485099357158079602217644205938544513452569297668023991744580344824090000535420991608737752593537803480320308843166620722449259097033800067577077720777797847996926034930624758476750627317989268862913554346733585024637032104003516018442571484154520976107402686304218195423163144126974778295433502747162184557128174112826245379815572520463721527051662197916557096218663197370970302312334642269066518599272361815816253524695803752730332145260650103587322257044855513296910357538450748878788897730343073837080001531874973677146352679186427294161463863134763625982401287828919245714186070637680485476280042574671851235368156559484440735952910095123416747719955314143472700424864448239568003531803644489050214476780369301067858085615706925867109955013274867656327499879268927365798441898555498181557897671556775411738145823132009861400097777544646929267502091058607637143622070623183200289493667660777979100422725475540423126538349232458226232688174769651950249862813924400469250135643349784392825982612258401481045936460488029862378475017215284357637519345813442092782091360182656613527352001545436941626942343117164288397130775419045168572791499419092749959109733051922094637802166125165248744936959293266700954361326595446519970823490249025060422512484708849683307397848025506665762347754176371285845288022603833065301217344817748237805895551245088750607307228993557868640090463213878599345792812227507108501234860873036676725341151316469242504065248891813462663935704409176812065778691247052620273750084187637037698852397711636685641727186395993738908733397914001430197638867871846052804791821834157720973192266485006684135315880856579451177218974088121205161013865288442849172362021172963802936940170954164199438234820041859514463044524579830094968134239825575417267432396281252748716202383794662948834195196630768035133902857305932855278269525281963073104893209307518557424527757841880782133018985101611640695279362545173026657114108327864187108473841894599027592610064508157919015513422923039211411848319448872213784056308687231676308224295542072634415534951805466622214638020425655306645493745025102018850617707994839910205150470187385225833098547443656807055244133205417297074316142678096292916692242799076649070324002816567977393676498051253883481111925938697255879118295747123463338567591748709185793177502777889396724399161724593482046604370888103383034281765444810668574107899987655498055057875808768662667501243164409768470779916522160332601603692467024825859492024944581778604725861011276064224136944052711800227021209580561079464289114574073242615220608197653898071301235332697902571204804077751883774242497913448281871872635485749414878303160897846793182589968394031436536208143893276737476753630974846951146905414961300875629609534784007062377224880113982402130276207541506088103650562888842633259910324782103366962385427471576338751522501010078501618410355204772534544354214107272982347414263769009954660513657561579947596306644884432640581717709208146862151999532884822651954383472194090310615769593925479900826297940438977483944769158586534352721286124739567370300687662360978449784678799442813084592180219446442388818942848911658622303624588212680333395099343951716350950651344124454225622114964948511762039432004954455285417881264352807786355164594733278566813850196794934063118836907055420854843318516819883255330701322336542478115982981413100472698158506606953305942490580354396874581219972968969248164666740628151146678625330391300950362077669255283701257810651221747489478561002581039415645431390479561613092331978966634156384381488994924819274558345773133889511357235018952388344246431530563992157036347987339344560372767824599404822264922115130600618161194192085928741036269636480786040107495575014716781302030903702081413745328217406686291219594978676032218141438107234298614607671757903535235306263323291123050468913809511403889194647185723179171115096618152800870129706493479689518221152260421543738926639401559445467693172177459545642283890383206549659195873003850472140922810449391845317253511894476284947225726037774505090772822087073998706888355008716119537216520774103307245960933997346656828732754256160588150035902478664375681761569960613311751538765988855326859618287544465151669972724557972430569849144455171478195060331492735374373900961885784171854718815892835889325312895843222692184507427859894236902491365103728358484104332540763470352742890717954175579683527175660812290371749217289372209173059368874293394152424338911034980056586916091214397002014137444569350027477605242714546011100739602063960256149376040650038879764128691880709662349988830405265021588944019938206456679265294481702007849127461015866092022494291145783266951993484538671197137865955942616195247190567570841629886946050673955148548706033722160190118654372441401835669946845796795288089595011608268838080769940568144162606169315426162913749286325960527855579537044798491176903268347848249409210509249002291045019335305157380426656358477574132078166964811450000901390980391227318842932412220548369090861026880656743255729943453064226555103892007321583804192807739027709414217444684744280338435131916312629498680753872007926244235959226928291051680550504741880201467570802547507985449728020832539520767073804870806082619290646156390815325911215416215587729909198510311079229738241883292719821071247975192460249137333307794202795350854162960605183834000384872284903489219276549268990161009049219526975508989870202644977219982003771057020483545823058848967534866199878622760260647140396407351624424013673895424596464353662288642274549962804533314724523389092440224007228773956555308641168672234049037459788201893480765124458955446715952680297257360773098006591548002954624189828218169499574858990809982521641481728037596564841823816338716441601398871469055511443489201627081004972024577048067502952327250470746741356257733940934777449079600450687626092489186922264556031531762568167783741662692933158780917334106727470699649689545341561458962588907826780581789554644254597701047211219134995726751577942927926744446658000223660584739789024633247756216160015228899052747427429862190901626290674831643174635410310360753698742980932984480554824838973507184639894269169800680644715477261494927026266860912271869391609585081392662754958228079171220631808746586844974241758778449288063096881137797219809035240891094727270459835727537167850672363416441583648468185916215142332390988373261665329208402414754808011534604039346535647234101022569207320605909725260212308972729168457552672208000629375494467728233297722754558033368184731288305047469753025748887234146681535072870337776911985774542624749600129012346367544218103049250053773842481504431890500641776445580686206050140033406363652185319903920601192745452769162429761325943521844401650322776806491743639446090588531351276289759620789022899370225574203957673652014692663969311661978809113085805445665922506874484534792349487933135579957953205211241832019409262407293285820468346607120514454613313398615508174047095499206545312179897891168331440519045697706075622878470261154885599769964767330914946584759871377224975827281353124566348388575413342446140964588384776451598489783702586691388365657090093043861971120891015330649777144529566135734072667805320590875082316643175651066269265733114823968820756859082233841388772404533453828172352187575221688018091308421174571037705459552131734802473246836159952823578894634796777301044754028688115295635619712747715308905215838279089875382680967661657939273868120275496392932972690445466007203247446121411526386433828382850258452369741212483717181733728335088802861499937382862086796786849475234385089078184351937786823967954471696309495705846181502433200449900036414856046710464997764381235513705047838685849099610304024417416155898141750321919393563736338031469599676640791146754784141087079886664304731439098059834147837377809038873846696262098332985700012771116033805376221858856356167622551884493991537684613741542459447988539536153709084974793544733216933124536296247148770244799580759199039246835680210407698469587067238434410612768048171034111952580388892349786268803457106748092985718504401792099981158473409646729652729774015657592139113134600772536675325752569857021519749255072160463736913824545878646352639372558416586250533447620229479771632865152527279988652169343617877315910549329851251666901895829629472012676396365691046036232591780309473103422591310500468478514317575796178358068556111813651532861847546719932189185448154609741767656398729734683298136677230197229254121008637004559363732430026808415941452919122872703662867323506439092372864720289492287514913300272417695360722088372354408560774823009191313851681129215584567681353179077446601595725695123725275989083215410089969721081152154226361889476301956590526239888837427656305409229667832710565918172128164585716971471734494267692152722280600027046117011744434548320782344933508876928162198437134854409752027185471392475069704886794429155490665126993687838843667061863053509760557121805268080809049957839590274868050502888368474046177267716046436370686143894697606029949737727804239186888883987965146702823366080941153830896511694878904854410826382118770288116836868617721988714800693824908921947044555827516941114682989005373995136282831448171780558682313630305923822547635961452383966854334633943242817109286917309149157983324954730248547429388264667739788389755175116769652738253851871174227300662937413718144762943236513989907821394086854917811949447409873967005969541088565435783911917227697900324593043566062305950498550631931101821133053505002102698320615962528203744126012499850127791565577149003254724955771895524454038885616649676517319549989561836146290734801076597201869565440848744213084454668974613779394721744548315813589506759118415769727821759079778086411601515305842274425742995011430917730396805894290950911535467234565655146882311814097581964053473342978899038337146738340523184323934175921507848276686556935077575876822902700072523815355561139319644579328132962071485288269905548197806749462782931657327735645789974078078449754343873514111745511659960554022742634592249038491766592681025822491962531177745617070080689316334196762710033922611246166547816568487568744320685928577925556594101921645441968964805428423060565515955575068126940616508099130875687148719761066234049589958250019090724997327043850875109877157071436713154778469537775575691805146003530451880166278848617444116182086112002037996259124499889551608316658713403974482109396963191856600555622030795041730031768619517782882728656299992482313970163572499746005322765644996813339091925925073713956029624030380442675747347277778652214984099084166843642054280502731912504853517030996372078632348194090804036028714616923348653864578677200213914894736492349819353031790802583205516460709503389465368892116010349640017885208841586652478062556482340585870729212523191659997982790976652547153725579058724976284387979749715123421150858163922329246636562783772913552721553350417558219273274870824434732086319791464091694412409311826485349677541120065463016248201762795416170274815882102388211448198968530610610897119888897828171421368860776101232638217588499335106349380224974829815128325043152532075439309848587374579765393428388324405147688663343060010140826936410089214663206520281582555848654393110022077296531401377311899305383628022028873515771410736320955569298971417463207543012788194826295821523317348132865922219210454379897159247135214555071730263268127640974364058373192359178394807980110998619873032478504205442763506634665340290294899759595517266434454608760347439813551248604792215605847607334800842504907644278093604694882318324948697398419707935149895845659432243624627017046700303172427170754684963261279935234303506686465376569043793182905166560840166245732866138169647177784684158266390987349827688453360688928592111875419968258149018069614219940878472039669343302165094886581407665826516924167970612503800222080021650367704617841742507807848629502872822680392771688139730766546998081062139337453270656595433878495224927567050295681648932494402798902999236451724944786008300030279439546285835012951196772823377343335821043985381479028104521246370823514534685001720527277655017135290144595765867726451024895625052029464207772359443622217411651643131495348520780097777915596663624887632675372214400596725896582810389733322908579593775534702818377846661963152315161157382900149330810763334642030273536862687575694546477123856616088640807308495324342863966798836238646617288207684158274880460411645846224733799966749923918965398511059593732449560721655732585983429317815386318588937808088058049202371219659028306170013235226470024240129417561724981593348778856641164059741296595182347537667890599465034824355771281910091891307341905915676414934416231465337034248693907164602487202914838115303979903860308803252545821008751331316101371074104582574858624133912338489587394404095899208240412554834719247080428471481810883329180640892628842221219460531656244317429817529936392886433146582757512223990706946785073414490388956818757615355259855866517129790811759565271448585227728028875143310012097704355559766965409280699017201737329428820065177611761605681339314669978549082843985370797169572478689073447801688281546998185183756020214236236148119781944581548266744326648320648142124741541801521446187619230095506384501522233426181252592760990408506327706551791608016780335196351892555153640069821260778041094544378312190157081620220029789075678528788864747903466932778785387282063855762910069990161351236648975367996166806356549643906897757139366371444391062164634692181312436175254011184500874996530454474218042855999133499487228081402578366824651074649519118100650965307269790009389574801139668662530340923657666788415343411344582004415272452544939923958273612341785209652347041154748909714585297838161794983067983034873499341770079311147592214554448795834212017010843416999461466336377791790706015752449889144508096432333934492770437601995145917118050532877278981116647259990039639254409645756072990821668081443246990867671525544618212385553039153638464190730413515031229350566693040612429068317219350249973700296331595939627415260334309029914537907582238511559025536255882819742647115694373999023418306608381574206424134693356873443871033303692409368417716298196370171265761481209967864810156288299104399319479389337956920319796598862959075675042010989248417367540312763966634996079796925088758417008098465435733816033971293602408307252081317693391133579388117788557541207037214942431083644085251203642692659938709669431298649196573524466782978004026260380011424192558046431467679878387537674427737938585976665474014113056361020313112458740262914356105720185857874930696516678441373519229216850778758044260441834472328731407084480622781435744599457335124570982522807459984715709372276888754949864920841131740442591416873551644419505578085086186377012649976298758807135675040232274068641248706209387215435084722140257912242056075840581605613702538239511206774310688071982398467930280342675134896542837339249659772280961318434079010555359360068129632296826928663932581152930471893280094329658578666985101297614749905051077753292984055544080807939653028826688190514426296682050696539183704070064869807190869199086194537240436791986104046965526097880622084912461935288898246106880442983471697490604987308215117376744497904062628907002653139814488357293398581398876480665119240127997421078202981677915436757757685681250433323085284637920273074557238590871325771132775111002533995957584572055862462657964159952665983936814714278149044121376234158320936875332668917096779632906216976586108865110228512442942154791608030007334790557255469389213301399437646245039678831594567112722741867838930771725151084989848859158857511108007436399908338973310948764689688139169449728813419169373391548747608286585467348591200127166460195815317007009365955005311262071897242134162683893499295485293684603760257196674256579348741914389545016529645485823072575983283149969525947972534159856709723687373788567985138238366434737122908316759538468631424500656649568581715206056951737784976088160712294848919349054953003346728629095718456208065056050317389046715906740509620039140274565628474487992935834184181812878381030366588250184258530858914423294501520145546266356132955911504613475969639780369673910567559518840089588840126105885395080941060857986444033240459143794741558504999270170925761101301124525746049280158800939595484178338602421647715441856970735990079086419348274561255677259283036725003549651261393234573795788472044071395111976399962022295352101426635290736610390323787795749102324076551014739524172240759355283464435880424404559042294093880824439243301066320854468921653697163073932908314390387557237129168049639170016706557630052527269837213471173022651613826319625517071128171324583135775276985227483554227380635250033921631498884277093858800765870129492959328587919457725374410355520422356724937441519769286973369604731090379880622447078544232232761724403435329712561307209004063181211651392982775936850447696324421545391709826815071636659013483286204729169964293981839688007061600831006203631332752851603018530285446964717569646986561270421507587451211353671636003212699107082744067425224120292606491170934869943016574638101801894324251128965634648509588038569715346283654004609217427963879279724947300632925136939910578523671276954507207274607227488189474943717972265069474402965375446585516535577785382606654273846475404986981559384900707152360504845459369390359745085292503026133862512963314470894635799471668434079374079657079473336830984081927169919737095286452567973471468010419717296375622250035398863555588743342043523900949640378141786482577136578786483295590254580145377825741985504118563950744599087105622001154777891493072979006184487600706490112663479835467433072609796154656045126562655131185022669434880947769802117464556647083739087347655589534698131351438870402569540045250850786827084180178839311099001682705075933751790003051821553033994542860824454333446372781462494017004643375492245142060358362086505092582123512535686357634423896277603502630829705683782688982917620658141218363625426611828333875388287429367547658718302279087643613246275432912564287488839859809722861418979391337267676801286082947576286666158376353279332721189460418199672664450894396772715268698921991647503965178208356707837129990880578358728188541019524330133144109876733408658767347863466234724480117828589837403177212338966531785336668107387123336731848669589625626221242624900311935629536217928161876023961429998441125473147427871204406596531179400918527663804461181410043424799496130772895696205911162398137716649009096216412947052036209891239109377244414446395135139936463683475371504058316307037900614841090060853794698237869086213836020178956383276915636311297697991604474088747011839006447029773845247027751721697804763966050245901531583289512078515966641256531833172707977271191935431612012332626394376128747410916933917569841941903114422264784552701193661965288112005509989606719127013051028365302844177662895512466488485003517160271279032002630212561272123370414724005942880601890108881107728686286178284451564727641509578145891828272030902350454249767352029886502177115060959483608551340579372167728052249403249383154747234270400210264443709780757450740492096186664404408683839826235101628780496541026573166847528256684149168229355271303737123775305319437477329640028641076750428462650585557392731646851929154670779104116256204838383745951228019305295069147064582891723247921157793277316226446345492813639697226153633505655134000555466809508057287233384099438459088365509556313970305120060660268835420337445867217731623288966763510879522101042846602028979116056908334219634370771486991020263929704641574659178244895411732556465192962756495311104013764910964099586544767921424855692497081556775484035422778104870001394541842321140412087280736180555962036609522560387273528337509388084010294891859947250567861557987653561028057895463770188450518765775694514822186334287438677878838271358723954067089240971569050315991066946826294326073696543602355370738672946485729783419363900657739543004429087555268653989930486514605604967414144831815655131162752595027547276639713869526376524690347777566499756542206284822605736922041245206948294892595740549727497734886184115051951680090383549171790357331041021234728195147767101503904109005384517036404066428579562957728805054784019406759528782398275177071963602140080384285793096895423649545783967635109419070828817426753389426299811142175840165438837454204721818645690466999943032535443013709049588305420270518457752983130264743117954833676490664388938356731658335227250042903817761346800949610371969591208520839457685540684070691007987547431614952190743958228953515075995324384591507602192641881661959858491400751117472164971945527538572526850671799567920995423660857979686888294268447316518203948092963729930229353534097431363178854643778235474872955960716529343848190007698932210894721976891337083162658028520295313460509697697987905878865663189966468957182780020365259216263846578711041243483081196896739174054189196676588353153287366006117088102533427783413739072176354890570643823529716181419970406583251872418144415457249806251333234666016005582240917592439572373873362961247561249691285601903477530379587047510059051773151557324436389411156729424510897851865829406903658702280723360008180550401985954667029756949913465006421360655071100501312341157909352049623708872713477841989003077977226259402741186969221159635221868978494112791233867508039563400641450894504981267496180797733531218950324454238526113924240917846087740584016733744243194292360561098305731850865238337268476767064191644729291138682510687368166539203751950656594753256847581282957122897262901895990526707097876029679258685887526060479458804148068702032966390630572455940050690836752670413994698591066481369644094104092008065184136558981859256062865300155360171226980519496876943735349867139821574622739437516696873982883582625238394090429515345553009419057955965826585093279454282127551528040441632880005036956522334497888407230843466866974720212390984946907083151805778968783987687830735688723591339595331591102967270002357470430362439545326408089773488473368381515449887673166334429077953816132803888364429766712161363893466000225360703774645354266867622199924309442801500589485197881758106562588227822022090830969764855462372429453254377752325669381737388314955065541140773141577875162492530233733199609786927898633607777722569204756078956206381860526245681681094645585012114230271440019159839446756251498475065705916557827233615025308397161845383469566498706739178509362524492173049540712872867784281904175876331551958115507561601950346904329815094233035599169181905265451072848297138187908465950796946642061853162861499966764312378895423444256799928744503151259587669856930881698952972660055399605959246955408814923012286358982535069835346691780770000585789162460739967135956238117671401604157878282935704194755655731121504204407747975457608501712829500466614420177140731030060505695288657363389751154907644956819428150738769656972921284995775196916990962455734511677076445220296435405524534226983929118229826805390003997840775410998419971498175035408071427084099643302985400503974809755280750433554660735203797894557073621209483978185303089722306535023773508557550322792288298744127590924506915429919039279016705003233973843546256782754162384619263109503615265214710277189266126621475587261981559679857721413414315683409374438661040329470555584218187182524276693132931542914548127271203492632655263026422962509864669907925980160717914636707427593499963748983862875048771090315738634802412517116219096186573703555868299145099416110459274688731653803985485524324262175486141739133798138821181886197868519747937905721089831561882306076993940019409036400629528962223150539783948915226753680422759168941389875973129396742234407308238664271479854289835033492657166726427306664564740050219332377431621001487096144027064769944225016652258993876443923980076614010140261518748154892984077412214571377613939415673993981733999719911408080545890883919449964263968671208125201862672759213966158552832502616552293212148341992544717673628340636824543728351092365893894091088843032342459700557012226442960973471184647623813952260050343184002219583150563656543925921763969062466776936943879750165399593836700065953449118259152572070047093318726080693261893157520157507348041392469207045380882096754845948079297984614209232890183725669995241876780711942330697994498201874977341080568192655802675303674544196041301621458876512395892454327865594452242250345917635680898332462888412277143210095973655343546770308751048922787552426578952207380038772719955405252024721605317331355004186396148766140702705350337554748319459365788805885056926263775014414779347711710569864255235259260236412008621483848088221044088645369389499893644326858022327872921812786930170806739276689271931992555396180290729451346118706468743463571256267705546984682121699560299392772358232511124586516960350490156780128259948029574224939638733507520313961459323081904825401922259595575921555464907445948919058712616688300183350319825441183366566981013830150121408812964262714908496958943637861996147993678691003350806875453848718017379410689788865466044072549628814237095392101473508325158865215552277628820364285462621624362245699978973306403359335243990135016672549301587582893465882598971921496227740265744879405241164055020854561665562802630275390575049862049283829091925167050180754579271088024959176691485121397572551137352776089036262943021831440314112462737023702394244674769950995459690914295415492487910454336650317565194310367955656890334832912544136093360750032643615538040813058586481521839424298025159475514014097284359105668642294375573155681885750371319140604133847733206774767902507031012642260776995771156211937597492521878494377667248964852810872676900320334458796074337107142138558601214293282768843893460437191483653590540342768251145094349277861969923448434351309838076968260194450890543804840520385869275181172662569390062768083785442337123453594469307681296817974018414691011046359514638717410271837944921330039779293721142939465842891746451990216888584404096846693266635973638754677395403013181311251552258078691306121785781787180117299264249390177268390924569011288047914894999138016658058450684880787555979322205312425532089657969030004870291304262201418435032692336132662892668794177213579622930178336093142125697942449146841846132512171018071466639117775755058825729355843715575961394006730459024581300253727563501682686573078115800535849837768967954734267305105795576325864653636655487741672270444372666080037688402119969651225791929696276845458687536380171387223809453488699208710126925255036337856866089168518491468050278478771263166026313030037071523445571283675218889675915960607743783092778114749563630664326377983962667433847760912155676150242943470761672785137296597709399217310945418767868502935167723168196297630809639814908086482014658241030653447704647355453964589546689971931135376097866136722003388076670589070508280692001170313923358435497053989354217579323229413880796797375619956660829050827834011849759538360458253561709003354221972736878829835041948021626907574417867315176659156357980675896348799284461100434213325343911277756989186533632378409456477716649958775479856349330332593275968938630778298718087415219794732681600816205073215270114048588893137994676896264350952172996997898963829986554675270096407833281413150450692339933627628203409646025121933427078020799105455193551922816292844007968067000896259311004591156756242759824247594393116100066113846816031559005878516552595658869176111804194600276451318662024040735281787142485834018453761875392383585217509862714956713576497466833309227653323949073455657132458130395334283485758247836197801622699302119638278204594076154811658483331668701755962116431967212082131746886815430684314268481221133402942804695344754308300057032791705183947710626657034856819107783569900390233099166498086457852592040173549576592679110818231810578480342998758658571820742309371708171401393214197817762737607003051679664116499179687307881765638679968444293026382829743343478732091191231562962643525961936848134862378944284966952329146972755515669365845356686334722310354993128384494289395004758027425460528636511933916769530789480054428425835410707118699862187376359013459154090303415744472803976391249944200216924903547829901691497596318109394971359911854355269744332047239995913100725686727554612891410556968567276763318744570091558702648589745840261224758837996173191152971858755812156800499100528557817909809419648832107754277804031774808063362207538797725464336005310885633195518136372748112019253213286840971432812036291960714362541322136937929810101061820069969515618017088624727193072655523248773856867417816754350157752448739569577167837869693559533327655106928035892399325352406915797473464405908263801093322839622373983114312616831005736853807289134477134657949459181782989386702137189144857966541221982186540266035702844121956146616929670718388103552904991925429982287117430616908103534429390703596736937236227804893036341189299635269494718196221908760239034240108463338566907989786630042678435010865478037181433497014366819073544747601594196412156383303396934067645006027821031228768846569407594067766669926290350208308793371157363342581340958900522340016422266618491082808867698925234628986565589433275634162432996235929796324187830435637973054758806700868430141577401693045266489716248766666637825645743273991205020998476747051128997903674626645467517675908735054053702013471960140777384519467161378504839479330469831707383951248763048269303967457305943829946658810124217060674492900415887240056621111449247043907717745475433581164409480937846378244963838451426404336060070745519348225678555597590636558614025819385527851735309452835002316558911758878311586716953799187164071716706722270140541863780819967665758062810201795439485309203303919554706258363183326251752776869512122776962375689979638548711014249837922572889450757754100792613765016950363563741112816930492511613543284030468072565017950933537720938643495771271209752610816062780906425587897195177903919066004623383712537795533348915105569486561830872255909936730030399642623723664647808261124864345604506523168229891972996173236756012338807648663223834550027034587296976099978782716467382010158127151335782465630481794368858674724529160120288930347526915943743513402364740847742917482735043432312611457079972960646071519485718315935909970690364007474404146060504226434719467724937653176258446861587764709383541451745503127266941802787203282819686463469782356249023304255074751114652733741536915450978455328945742083999878175150215466561986164450717207334099291856362557132862341518838419884651655318891343292977814616737480300787091856060179457778865979528778891081476934826982272399737937912054443443754684190250539008449347591842924463716121154299082358528915644594031630580308876965668393275510449446650907805653116354869258238798330105697652859605777958344199049962375456452261985890710266172295610637072831762840858718713850343521966155727869908981271074550382024881448454732216398702856777908203768728980399117149089805550734720100145062636832812907355121217169549280089059984299576600189992089812136271710187470310928623168760241766794095649674328049210148057152668363310385976447339471995166582226030468888254565967878753090753377766786509518877816687818089991750221182297347613839442908373265995609246430608716643314685050413640258298019650121320705365904227742607195554103815106046074281006698917076372148372043575518191348673408315471630239964608524872487179195283175320161348215798882135462857330073301465040503829011308742232875289262423144631708171783275641717306315089570586496849677362354657712778952329479298179960217351546444703359464199417785207767973196161538772473953064913292954836336072917664250126949708319400656675509018301602117616057103377054362365603525839402331618918718990696015018824171356112376948770231369419709124156984812604922717087870426868848725132805673378630736881710490131133384103467282213346039984935202764243615123856021216013127901147147976207624109890594931084419560033191673505379189283006931601957635294637170465222370253461223093401111895712560777775159851859104362775072501277588962890003128455350228256881685631970434949980513966383793886063125785539167378324809598920366797567949946669417493259613806004335369286949108617282739882860289958294829254149378943509928435492201961942811225098737119381690490532656232455405258933283400985472339200891763531878519413189836862801131235463705364704392212198307489860615988943584952467481948633945049321293396214178603075671748672590874204640189315863171533220219428046013723067029614884615265997685898919191847942158597701629073891516658520933262914982707526473075445975271969349555986631064632864339157620549231729587944904978818547921708342975210775247667347270260957822794744544824403197571968727878251372574607560915457282205635264833360792138064210967474707559357587848626734831558445339534114434256741621454779741079382962203406202434988386685305329294969450051258855133889058692528478354220007024826715977449530291751191623531660921323970917091320400227600065243376104264033200509074874731148139386432462649710830046065481832954251764443534683796822884370698744694560934042515060506675853557491238552903268386445961268374423531415530106579100308700789638761134372834808732163333254042765245299487685023371549165688538756584467818631396343505429458597682567684438887790222332234277714444191836054973427878869081383490601417354624610557606907102478094381274940510424641401628857869955521453148993562398152631381335835087670311379453410732661317201202277654545164409039921122409452139276230028114629866964520310936646166942716398367011331629501466750833134938736223129934876281305152282258531195283691591118724685729660854412077658744906125216762876660496271072543761208699251371527796547063886499124109396351898352708955940648827638232157456090235856103808231364777318060046921393959300912136622968038252706704589962544259468977639006318649166283217077057933319194101872975464846528439397399594547920382145506051577592435101542134671548233057054417839911995217764555242532383203657359342707247780557840776268858227259735550143360180135494684530012461844364493514930232881842645704642690171370424885457672693402018855117784035766545665286774823283007954046079925124089168899297485186293921879574176510342586626485342671528393410600211161103413102920451755809612222232343923038166695876635283584453943883858234099415980997390848063596145164432025855637076146724536683719945260252841280397665798242196541239695655737510557303874475928989612430985020817713855606208614909335795451987955068225378752653310974480172237927740422833379781470376301371281461362541187122335530970689387959340656144979628269874437796271980680715906694995317946098073627862840382883965162559504848249542700382896444108628774990301012472745787714233146393542162704228158935975727833851667671648374540738112561505183794822222869673087494628345163325474000398041401408668243064736925873881906679608047774431464336878796615415354566706583073077158581878355992078216550715231986510922900458542910813622428059564445956258365896093436877646059066427117968642964929446712733237281946114718841810638029449593819511356266502468237955371727592723463230870355154416666699711426070435436107006695311189694053160743242632432680054814047808453604035271001359710494658205018272397825518494698367263860726900780978213514785515511031099410621352098669412165317943054851620944935877085654552672763725656316081905051523913335587897027076249259562306760702483420055172570287856526651259348994491057731586555757288939322062261399111604781371310965295511904785707779531623169496793991319507840884729190550621776968631603244214093734717026986665153252607806889151639930122497857635589131769808574137342998566869693130232395292161163432821343346104955368387178260283207324339688842192615900927212644996896191088920223550064576963977518256657872567138920817727516747761405971608393230577227586589271483871545943833422447566404575710108335042714512080746013340329823932898723652977528637776198057383791775001311865309510703771827524742515062992908467691358880100128937513763536136369731847877267726975412427837771561807356995168253403196008968385317320965549931701257723211075856646581735375552623634749671698435665692090332518278178454782347085489297420501811666627492562994630735874719451275479100997284473191686663683588702447486866744755596275562039570977919878717680692329100250926033615484521402187354260897880855277692204075308077600487666316597663815818142405223874765808501790498873651416523577357327298248021261015153768875265583235518982716237729977619275017705299420462813131314226770240618761890864346383566825189361760105766593410857012773507491841287953149887919194147261194688617112990777298521359686677042811616442494418143504127391186585121282065947474001198819897721073433763682068952567980158372933789906116354934098761942564139042896014353499407837856388019822841116127492477585783263104115970894596056927194668889027555440046949407613405638917832937447692755672224739229182159369790973627693410557779571305827898104169834867185391255231910571852597088133333278475706626362501254688039864405794628194694337520427497925077312101147311861650817053988213757492979655939156513438204155763042488016876902214059272135732964362909855062230593243337215277902333885778330915465250997349166330126560369865969432629513801633631857642032245055719707856077323621094702653054238020852457208250124612163736408286829552359217649263068787390968406642315633823495930159612897031192784546801550090879318092862505724049661049748261102881703846609887671561143202594078491561882053322018100966137757201354958272499651183792084769394783236017182406079083780600840370860778968634109144620980833997507443163125899130019751824537788666134435523382192285369582592731612704920312459429429067571415982096981635606429375808442912479274496866280201776284356509848889958091651582772213689891518307336615479744148891130862099050539752477934824366003259459864940477121019783576719968317940762988980763801013219568227413523679544114490519739572465675159009169757174311102509322876893198779852713715525019714354541181861733052753482809885230878302792725826850807072435300953538011486394850653257038190700277220503496414425460194057073361869928157605128095598379852592095423997805518603984033030316311374299945308142064306562598314897357190966466182823271811506205593727904912910227135625380421291444853421377734077133282148685376419691721972346602321166991353806839255483347513255045306234678850350095771399565876987432255095336753209445840173695299589328579987637083490954418886106713990979814720095424469694585325260256118773555741660211745908442932603904295175372060831424569543614945452691590136114507850676183371803065257342191728650216213285832036095890352284923558126679132305686874186681781415351987272181323089628164678689921207777938384211840357271010515613002462417427402741419553227892570632266186999961460847540789680181003993512570968039621569097647664304705326341926371812610858056288606261313878255227320588505024717305225518760576092061304738613475409787691843184615012768788821374093772528080312119882427961291836415254821430339565449842008015838959700954894339637236786763681148686043865470455525131597027238105734216367176630817376178587126115294869559544225337758974092809621003317668739077881804037567466894791988297861907345975199267280209757014876441928772875868206580659481051566831903836896843125008283395426087914297583176877221225026577827792949563299816982580823035372315229239629240907847674476501241443031415671942457862079509802552751082621655192573580747613389082223524073648846646880479647218866856365697951575185820396252413914624642111042302325443657220027125306129108848033853488412448593983833220681141720335797875135632979784470447489939520329982300927889549700958407799226746820266362134064446855935464253763083389661661353584719505280834617162704383827699633283608663068316014720882214869135349361287324774770513197333729896449486958474495883380383643208907667967576125005122261518705888985676614876876307673279773300626060779872588228495590893585613446240767820223910954655163218945307817885278003009611148550905926461377604270775965997002608487808305128457620595426496180505057326095714914583694412037537181763480262875861842000265082955930402659290871808051040997656021405561102847785115962152881316551534290091383755259285707474754426634621619030059598703792378597694213513284838502804388506809251793249546805184691608331740063132314548220416140803320404896005376152116449542206782382251304465183605760185351141989875533498173286147530450119273215777166514920190323368322533271533449071588194382935715530739554674288232540495471904526378484919150662444019090718422002216667136922816759377349657909465435841326632194955375599778855111283326698228289041912189076825635100348374258039626960189620823817347712809449648632396516177244407081090727885078189977211701758186565826406353828591911039505214049272117943931349642974713909712004177749833008762786251136712717120737766485792509211326757211134556260576483009179104453504993751700783524997882855167570836390383413324651250881264595640062174197137462549434095058030378930814814265269206788653232122154791829965916417660186234213080920057755420883682379664611014595056267792666968389248668577941257856846654988890638785197941901066942955951714105170223461326177206826951418372040582510991794406986651018293381596900336430765671148168316470058382787572196995407430164107871635334018043693650995227491625884738559489442732895898556116119547136482896214768735071336900912236867661794768678523413176969867880271999515966500918109512874918532325505684910652790482256689510372136580345745475093222473280350070659419802237356716635184160260267276374882417221466270740362920448725376617182955244878467376796623486710303668144547487889025867307803586655634982743752997159122377552503950675774201145526632679402449585543458297289902436046499537419438777879165584053771788477119968499738377811149040977243062737633598594518371164181347366022512004545536439960243396423862227015035934660128944893311755348349193102287292134363051838898854851428249711269434287473761288763045287631473404604457961472642023879042174806548043209303228104863797987688622902286202201041267299437462907524598141921953124814602650403906165229247099984271634972200242767316486313555441144363156910700967047393893831839672127838560028128062745104911095141881500951240159021334265118428948746809688582079708071746508616281501871646487181845563750303832476105191824791156240502528539430086605399875049190175985412955756198083421155579590800426813182731906503301157095907004630525587074710766131928372127576590863924901071103866505942247904150711080380291819918100405483873750982441132250977243835578427504621489901195885507308295727094612191890561868829246839091577677573198752365506635016358855311921411799350726095665974132260771506601101399509521038166979252182324488878064693529201149860700821272883064177847467291226249329964157511817494372210865122931992280984907931341155366934963897882273031644830398855872643684927155549040540750951066163205398076330326050617302033365553177248678313861577901985392116416917720236500785476542644512365304200726661449185389971904603527815610431413715189768114483259766467775320775565845643661332156485073599527192549242731334388114824140778499256593428942659148709356861311796838086986409095414150514031882326370100531910024539260028852876874584194646619722975482460007973079029343146180757745991081297696420051809273094535899309684985366485554776357467615933763723972152404344259253118173542179732777520753746314040182707694516083850983700016820697387853234306676267015525418975802642484321610612577928196452729152094069568219471928915398987752675180563712482658352891205143420209604955513150146369938449683095854777168491767707872682751193692297712504009644979099407458067299267025503804578645102589305563736752802760645561529499728144574995731761474455060495837859048784571179353453840834265532312895622492944908731753603254741429762312057760304021225501383041482236520819248203168697509761870053122567622137349264882397267739499111815770103003248122381052861751476476220711420496029047396487060807939435700474462914091683241697871612975696451179866832354123139998646529937461739520958665036456312718535281601535174141961980391877071433262002887950146170079408777381222919660729991214420201264354745315564295242060178350484724321801506942558238565840487478978992602832545390712404893530521412970908982471500073051822732922765211269455579669996900316354688771407052896457115833030289781399620608008002657172459418349203036554229776824891066366739322707480812535316972196014906078215659704107866727356900423666889960917324973881473179862189929397755113547613197093554381304230282579249681441353640057820938966330427107194087383896886271666416971345259211356595660661492889074799118147027731316822400299284800556036238841812653866861506300117566757861636147599225386554645746139827566267453797963595622841129820689415264413053275162455647532889702074852674939851161951791778324234311890305438197303155573582271960101246239801352663394076119294857412316665274586100478016714428977529300972891606402746826065826217894568920831335810693534089842726430140371764111009020898210101175250281614218238087562682799640735204901229038231814893235996152435801320941805911831136571643816618306936005420724291695473179724589758907769771518218295313504845247015789303977985556295082813225433490645169285797740820855114202490630065609985218236169136948782441584926969421473190898508279606530836441069202135549587313905912227033363846682620373579265727666090269124795943991767925612206568570865174149356660249916169917021841766263290307915939737031200303545908719703570225262925460945174345644737525796580526451662761790093599197740371626934112842911751727348524832719562194037377824319080610197857778044317837335798702002228690930285106278373599739013372598706987680095392381505870884356604857642579942814573089520392820166840194806765896372164430028086981485820295607622062917068740071729448152795732867640860337438406447941679398352417715485070269910484713781798482933593635472939294080089375629791617929182059520792655760130432578139905313721897913706998124137298975052078352019036123130249170239112236895363073072972801886227675962028203196543905000025205312131893452265212564832466287531020435585746485083254696077977811688973684662580989984832634494364610729318667674789083055985457491769102509206206031973670841938578097914393311227986384426382414572546752268104400897392904358648290631316361105853178946977533262156310058854335172809054273438732397324966485409563733557197749744076571543781535567220895272649235592625043595793128710466212084631813061047902029810839889231680070218186547531849117728583350427469129317490165027163615643524924068840435116510698825066453989305197352364825026988345604717581670134367819312504464001347276242637215763707190416378506134256036606204793959973387585899894089529204023383089931394857252648822456398426085165672372599213102396363751309519858751479417794713825567520347809886527962487447710842451739341720234409025200491208851807667233809161213745497741235059520034091564343748489607279035982633331395719079844003848177267940453638329457899779354794945140946480458964652287132313614528656567795396003162719742663914064568078131330720502730112872096076032351745070400182574764097847047110247131903319407678316419981330075404867271754798057227438896696024969933671942918249351999300351938944918072218356294433795634170200694622868908460834770000810621961901836915500343903680512929272377382075168062839593284447736606024685434348225200511108006790245487086081152655180019483513481240335753797362972981276430444958697284605992912947072192811631749715066593989794392798849361465943678819051993630955738189773885191729650487496570873077503763653477646238755773977981721170558376341531435838313823244053860164379299909025662163197591976240059138721557070135291559845275936293328221435592304191699441777637584354420479120105026047372037294562884813143608605344701394176113549926194337159756757287966785776956474618275924296615555677942217060088146090695818661714406599669093866395242677091723982543132814560018162720446872246214331346819806339158063022465759531259616785307977720850233869406746856841911598268571877449731938584521429473607567561596903340799881515537047494826009898446212937041515751265870790021656619360741986529182790514360929897919510836169270887782694441754286711926831658834364754814595483846010320095420678948263714408882772205148751180112705223620227779619063470377294462900856780354698270608114530378696698849547741428902792809726291764483730436238456029581253459971291954128821731403739971820474610204510416125040634203048075165685530519466359344818928784275260677529804213853829846035525134894536309734546700768025488323557286374935745823935155009815203696495333590054118048888871738183156096182041722601374486798105136545966550909921379482099708828967592438422853887571003034969996874685050550449286785756534532874632317590122271776791655168227898175353463134695175911008599918561387520945460552387479336386428910960353284513682730888849875557468791639809107069611431970510321121369694331637646226192143002333161578662208120778533394611737500469926258395791189759734966380463109629770163228378872987519502861308906413276973117630889414858596976469872198159601920713875394422422169241436634430371491755298399353490466810736916854498191687333377007636025146528674296135848852006139766658545737453680219607338265616600103159373220550686508760101597666301279118196698684956382699819223485416727086237190195633586132605102955141870311671152538511766143123958196810302412820128187874012117088534082594992621601417599871666729987076913273239919105780448951626613302378814402308318829773790883672498939639177597507701584685043995547534484236225435582393310279866079908164572607284092987833370998749439000413531192744619876440466591991044767721002998796334702311487495174216689386868112134706065171948712520385121550189828101996356320506228560268212676390506474696993639773635234571631957857556351016755254840023031028535240305249508533043161802191563895261289188276225737051835171540943569969152760611693358931226641055745107711191567050129937037807951501884818895225374995597359870516317704394580115449449312986053700088844539176591736996974930352459808035108270813079120458711151275243559754814351346698871090833720702178778670915817941248927110184658830230589390881423195648846515123144495864810001820996774719081723153235775814149435754885900306428518169315763550243268130315083813365937942816523606346066403241419878700321826700308276580920110886258536713049476368248361369809885245307427700703846010785224248664244017175298476545707842078196211636113781747460265612006110270345297610753618749028201712032027156859169126697282347135669763960691806954239348203139326462753939484658394646906203350617399624331270248139434252030837818251652840560377334032398813629648448867009098139721640112577746080494162058975505766403076381405687541453567924958920971963244145191157235231842683473814662874209247440079356265551894951886957968241147782533118995935098346969942111961249862093217984264827232959069636494745453868116468377586369596797269176717452540437644513234685384137336541837293019380392630283085772005788520247976016620370162341489526501778855519061705883355241225493995427368823364675283124582124304303757280014540139211553234877704226965182974350564315780286326780924055929287889553546088472315376996928469111477111625909869527701436785901092179281982291207444928493928886496807306537692995267892063305162021029084555159717665599006878669887045947850561587627781991483109459509439900013452193805642628705576285629024178452979773881937615442962643360064939666940390999326022965134892971400045653220146136265767061264860741144346237723310479744035116135877230478731020261919645543803216372114853438682978228240463249017824530313128500900737069243162333754273592921150129510039641611454213936641395896333269322644502447538657080431568117952236238024573731068047293843630684693885095945311452944162826084607125391820469660004926567980544619574224350628640971284394161712176718512799319030287096718682879809165094277027499033784879675237114924377714971312197813829803863952570428563451037513410021653554673986514369134349324315019386216923196515741382118537730816500365836415564418162542992154127100646808531397189413255924411085732791937151499547347079405351088189049294710166697308759903986626262003402152239366537849445290706961639625720505465485114194234637464054775298061749460747897880955203378657167381734577290571177966543380533759808632031290148951600574692678953221965182907243948615301041871860714403692995523224765019375046471307519276741028407861911301656588533589578237673487969858474768467585301080876707609654483303182552677744422893973964112068351960362954710088513077812765079714667657256934861367347999694145315861806217892139146082570547388311272690920614900738886569073507913160092659251531135513983716194934487037140434705583963455606099677089863828704513484447188435218114343847901770669649405759088352695214852598640192149553487124927970402819797814052899366236262888515451059084116850397504275342370498665685833665924325906194541910096135718252997330801559423849583954878141950086715668826299156870753541566575967751048621035329270124952301102980246428728131760956546651319453990475429407980009895716666973407549872485339090358313377352273998717231649107641977224185464238367516317632453040610808176327092964498035628725320332924091792845444353834186771371758172326746929107091976396683503495103011382606793966972994245398143749899455875132042276121655335601598194459053749115987672354268853283990149773368289102341098061986904517477926196611307763777581133125543013185020142943541852152528912921251281878307906677949961975741906246892854480487627959912837964460307641937205575754937484932900079517074570131625716204147263207657588433605824258032371546587677710368609911370981576698341232889988731157626842231860199552773062739257258600405780576572510748296517936798570766025845731263883824394524330207466310828595743633398855906408711961299334556832040319613768793051124485401381650367936735373901616874635120327479388799873273501293946506745479829025323430831935457150111097206620500530958971035154143940001844815898673416046166975198914307793436842493824965713083855483230481213361933068715238004102235486989836651825755572049232760977119025909970886611415579423135195099062521883023907083147643361185299313462471136680985113918408020246488149472585703288762288532353021211579816526251514155762560856074557361912138358374637164307294340911949539288011403042280871743844520632312008730136671510206315008794993420825370872698925995808288778335245019288094743095629400511920439219383399822491410828211508368146606083527595738213163739244370068963514136729760392687948862859546663339637689626522587803143440790717132803643378218032184323337134216919181029302449756965352792229189274774373612707049001004586078174917881385115969123624934573902054127690677900281411266763057385643851181136551193458734274617737206090780689905779514727040008100180987978823180631214220195796050758668510577353517562547777032692199649356333474487629494236569222662965328357620431539180165707341715946974985923432638103140182944137641776834725492876326441337149004662139338402070189729400642201950449066620704384698698914334354449186687853107174813151836461270975515629792917451582426066044725866336370915246021288015349407616812193608458314200538267553502619715217977589776218282750939777502138359815774251866923458436739964395347608686892204389802871531077482548129916368968235718455114299718383152578058484158838487632385151554863979517414544681796314598343176495049976539549296580554657516017299351384035812068527684271959585995341339590131078289494691040704887894478728748833221751426127164461175186600074979367032353049075824198016992925526361674002660448764665634821813419876304174074121400267996226597625150675631266553020016491521805147434324082292169318534018111200067171252917479077873979871538786377813969417833615360861967494063575787498579744202177353744160121176877514308420207980417451859164971097130250938657576529002621064680053918002829383577923748496584395111148878302728082878090270845689597072367508951427392103344238667058027995360328042548993555984397560523854605529019880766325308963661105082703322106941899892796653799921875461586735837581399000968903910741194975888930769836289023608622438236668127623340828955664202550623413834944169798578435403347017975032079079465369489926685712404399743516194341132299936422487420831934337956198903375970833615375226704129260631872574442781186160993513708402325397940769636463593861200886595835505692420622049608261469626929770201244560515143472927584323497494127688594244148097855851152462522629432556310569726573563209631646205419568253838445108970947660337510576830136141681317528477952237500537024268549994093422862831131711665136940246728936668208141151410224144528519007701432629036162425154094979210398666923922701559401640362251687650719741531291786707559643818883784324348113049078734412075205304181215541274633242805763898087847462328615865164389034481731278129121867517158877686917524802802789979293462195865172827148097674785237000900991255388987468889619976717918036419565455440225138433978480226014001477466332046869887598758231497748177822992852618895823463237268459176751427337577312796054055156359877898480195003574324477450758356668011523384337308900966010193037373363180795557673355373162439014131036037446157270686633972227937689906589342259424981465304484261048509949788350907300932407455858172489354620993792333225002716267077685458345883441941453944163833419368697985915230669963595076349554181316242075090876661800003889538755861769300152206234847733181188877674830199965149038007119558452082533387302079517889691886706815471171823652856508938353529681558109330839752189967032308774842127899092854740452447265296877201441937030141071177109979619857518611670546636161999761837240547123675621598773051230084670087387249351874943781952528603783768748173747311347365147828557008680771554751907676221137763507373300222088856688715817665843521506206102845032321834606748063446694917792313937564442995635588854696551302001480394263915152862263635532718840092254619307894608322752709607191534480167512599377897907954350752448373348201970157944485097015434873051543041423020809327176973197720187245107303644202503056107356627624206873943954599021293791492289027987794351699567980374173867968024710801862535701300934364706706484965147501462199433738537255104192271671141527918037667945326875830847107231223120932803971451194135173848032373652513549576597359970477840309741928902491575704276357285111599838969305706099896632582918844827843275282642162342355390550704221375055645459055618983431120073202008585760881633510185656233328752656077853784983818068460193158834003725140874868494865357123094969411091061220734150848564363896681987209657445943570546268183856846839102269112246843503468241063475941287283727847300714757089515206225070240119023756647892413192562441439342941236148541015219655003148564893723265738329615146368649219478823153764348204640933165953362771073596180910349152583621471187013955127199378422058896584056730808783150160719414894862059990809839753314829387283501126306998684174758583563649122403265284762989149052774316265832838139421852748240638778291508516659047684439189777711509379447904847841320456938147975439754196819996956681368445330960358064437138358043557328570522606134419159097207468899645144452185117948263327123647091530049201244831767004563495540182875530706786694204665170551327562185885399393356685017541547362754954912249265384557766272480099038750678531527985193891815378079018904507717244173724472723251429037297249180882294337825828340841504787390924051871707812430549130965494627184624666530373505936825726190245219574676129104824643673312831931863971665953151489483515773557335169795175115766775039755968613264216187549842717428902691244782498218195931506447134460201722621183214509122664675382491882280753178005345621783678955412173021413716831670019183477102846204602591197228741279635798845105925920022487316682231319323239778167347078518872565720341985662354085487359199047379063519287810841072668647068764039730677708903702518339181512707665554263843429156544183825469109990559145303818192972574109702437917572713304898379201471435609415067929956908382223162067836364262671931861839191405555146611283562674551902454917598893953361905768028231715762326860923052807602354689706762463849506726936889801267024333724960250483249355493342977334105550185668655398261753961571657806228847109552773671691117128937445322214359654405841775161421662803705262782613718066492028039452700442381060673963281625805713862444681708599446531059259547794166088895315079204992422467553828667377057470716123911220320297917469609679870695622731515829404578597201089159600986853781842581329315744059428303821132123735333229816485871681840407271701776455873058638723943886179953311783714504330598139750346692246187379310427730298055653570445388805140072135458228455060042453658226255943465601834268525827516878760599583536589611749034589559156883387294636873902052155800491113714330372865072286411952487493290097309111900323985591490896791485985373296509896577015698144069468591733646048135547703400971929476428044104417901077389005620753756814316657750577151885858085122918428677609633905531520358003627810039393551215088616404084908177275904813846964654225384856788711172115205795407280095955151269014458384469667509777723843062406573720941292370685013836302318273647894216515163100320705012257570424650535210987477419320337958273945135317233973813948252617196603498655229766961905842599898675787912727879582640399340856275194046052639680893946913903304130153059100395838352334102651030042811881968397390325644229144604956982117863500088721505989055650800740072965384950521410921490012899842411104026088154486041438555541577889720369945722400847060756729042476080866484449696894330959155042285027169801195740481176783046485402066467341219507721836551266672379946269029807509612758907282711630797242207238333435632825430406005694048237051949736103666564949882082829382000488772302927981471793392406574479160499733015917645086871435605453943212693461450179050885944519107976089990350358713742964391867066808782636326260454012852301031965032374604714346172608371326332139281398903998642508816436822425359439138694638146177140131915807895302311729394938197485429366053921549577348811641971200527713299586248008473562628302781545790997401450751192545213152823227473678229215260723083528484202839611208007311757454006917279839516246390226472693139446563385646809926933909524148300478045870416917033394696088046855264863724548371699502319011452117627058981784067443485166094336613877093729416081656089321421743411875694523763904785504959144123434699361676205895038991703432987344611898157579437720821475223970338809093394066593751306806846410288899420059542693478661453579807506164969238037478493490403487416969756888300539402732024587784895785740231941221074738840670822855855060032036180932701091480086879051656479558812742326389526612275831524103773147578034451055098049798391273372578552553127426149994503348025711043162681762103651625278151047255791076246187160978927212929429226137640371148598092303921854910994938781567898199573847346018778988150525720346847359455156601864298559348281042912389241693028210408250621637691384933160567245976595377782442727829037446836310151882969000791228825689293552485544605897593508514687580079843799783387318874100556297521408464353076827322971273187987260144045291586007434475812067703691684231269797806486562982124026869876950129568788366540842358522479439010204310854545674321864581266223596547074639643370340679368371495253405876644921331451644964923304857599021158861039119842902915143305407766645750155038372723783875206698095970063387013865239672968184831332047870198122590177290039920113096401581371070586261685268513735984717453211649929622040246098944723404376509062216558436199227099300573496887367008255144715467006089239302543135144826082384094767282733691201557004687559272472254230711555518792973874011527993623056458733207653706759589282423540655311591206723799902780423823865853369431273192863379850038251827656221942857531555876776619794353411715818702731762230090535871322242645271240959640129667165487904846421732063120178766587681680164797521309922172507877541296221123097647095354184432463000670211602480947292015230943496815141497683875739855593872878423947983035668401607004138379913585369416072700251352075852141329748378673400982524572506270005280679089366413716517061585481625397338857198274767280824778832011284706215742802675390388394273451429429598975271777160951471263541961177339575632465606109668098585386547249313800937507018951115363239230532421565437866844107948906318022974785892839261933243512106998991330525318440157003892414143580487387639035464320401353794570221838132528950060463745555268630946920189094007127368131763878166337245484237084625291352933452675111729117033767561690142192851316801862467390965160550388477541228367205679206084719769888812299320318214043832172283094572186015043716745861234530186137028804152372178228423851405552955576557198964492251407187900286665511955502431577684163931782647486669456940985544307124701278057988879816222758708086259734399683553325367617310262788661072019829899089694383446173261413122518054767600208411428260419890029481097733910143293034219363614016080776696692625295358087280629835083372836687734085369021302895633635441819851103338028299963435965080111230321014236697013851133215576116048754799856482885946330050059271812783593473837617314909792891512356757635963351786779064163734865996502443390784983355827772307813825623598138686835027534934351969876358897618730066447380991928915469394133921340019798069665304060666145691065760094102806205348605807185405640047154796304953558761609595619814120729893702722684055732073775866045981407720572412032283361310078354090110494066285624275488633128315591098341610971104698755586744916263340674035089844706459701481895667936480703338640180573837782329320872932795972052191073738328386588850927835474951068593471027815205363160447672379078465621116497296715931486671602242689589235235871385230914688273228543493320079750006318621786899667074658016665771900614190936005904794714647138103636775023199229898074329883445293679489168263064951291809829928936663530419910809248916522074462893222047638486283947544048561993535843665792232315911894156234220654153430794446955932849239110912885419465676422544469423898850090415961950696674141244721592375371487707372634370020518906174300338654163640155917906109041725711222058250554893255746316217698495992195256582113649779935157243145062797179976382878860714728873547120023737992626230612053619967464256731400150240066902723124263719913298390373023608172748907678987375881457356648013045002594199482693430071227870001683265497146557809687769374327290233913612377982959987966487726790240390072074093668302395548534344533736519717526942929074377927256575018939126648161140170473563013738762365605937905090802975463827800486874736542737684518711450420389782451344728793613532312768958658652840932244298547617925188319338963606286588905902166744460649154838566493766391002554134154711455868879613650102260006988299720572681256207858402728722941568516730862298093172179718314338184439987459813079076330784527637997495667305001113033223109199429854160673681830039048491744105361516560386095725355845348974467462148293213132594443650877258751362477134322308301364437914245215879995918432682107273844301895335603398769317790638407365423153484617720056105163118260917230327755335304919006556279040897458575760398848868888200923924172045836571460109708888549781611372570051329367509093929313836798473506228329483161879745461553854504668415186705804777255924815253954032521815035706832743691896766740176562944704645222373086476400967620473415909782090235158745529017055457337246841081131079669755669327739990094489275857506329417698595404365114598333471994477907735434809219356010634107337952864329992272002931811852195844765945154905510596812257427324441704667221895889606285306329694660290178261206982569761627835970768456601672629169270988235926092249675621077845467875524919075144331471628906827515820049723033325477634391874381835249271492687802093524492668915938189099504863673590297063754219413511428638327878733045286273370450650016072714016386211673679156965347524606441121254290261431040145507881677181405529761862413217282351397620220920629432344067834367746810602999713549891399610944567955023584284214966260411691355371586610245566501577647948514197116405291890962155064788847769027580013572555593106938432829420122764678003064550974847249634871717853381874741353775515870907208779447823737598141741104809597623704994514822496890449912909440373098228796243245540149850114187115865757427284561323155178034704972269731929331212779422599578303581701693574593468099695954163638017657006858853225448694263839513833963915998173454903929552111769532377960399330269218767004029063036173568688802320354577157116320763993776696806597681385851370549039806888277236472621633526484930990522933198986229838606747463010322187918265436234334541318367525339988575065498714486088953927176071299101940533473894050807125823750638955646741332251939348908132104335111359777489778965202796807497071917105573275987826557490399463547542909146386585355937139198617556927714989442771609605852524867229984761836798761339584707468540093490913544512797016550037120065978687426293895911345856538491715925881847405722013702843227037567703418542114431021955111222900211523535962886523779501929473580617214506001835976911078627912998989499939289261246528347429186204625884915340704322719294079232163517594574011336961556774843305272560815679502809984544338970082170527938463079911811677077476030629966574585704710091311143789594207490595378016512732482022356029540497969484886611802190657926208633224027861131126501290466958649935393369760567616214071468041316057466603213163123563064874118783266322199341485988173731267276775169361792341146190521114629590283984031713223302974853624868061901300171175053091419164224467819675341318434516849393110492483135477994707231571703111557541501942358835473092189948272392935923144959012769603597871807621065847186741849830081385622095148252674273824236264589510289978412784846875966028411606771344687936396802377089832250807485429975816219854983275786544467617425334480348426372049456955174293687762064856243253744393172459351250785875333292158131229214466607159379438477419935190504897408938341717208069543271542416187335608973480568294908779811096970395905253654971130764708141386759482623085716572862986066293491939631790120762809953850794852611817077741133591548607592860721037963291892583376236057888250294502535211680391656218711815953041467487057175275364367667812614003898861554381591325247493673137652341079216786843554737212307591692488505748299916176872111697699412265221958021321602153418081576058829554533380761111940316438900938839158666033411592229773257364395850465258429709756723949431252731006603467460392581604833101540406217200752798771544657986289934363606434078730623267483484410940929938346759340305880282308042098625028148353846145655806089509435945693365714570688579944083272607790536548751232340953878775581827546728016293203618389138010058553002244052236119826513926354694257700987912953339898998561311112203294289095956573541990748737075158652147615767006582560445890882617868406821691337459563833839955737860743932508409811170160593293203215036548439260990355373595525646294731935285535304508910564286263222658280111285824288997368236104511495020847389391216401424216219241107366451972282215595904642554564803597204487213018191626969669168749743490761177084802198033212740377369962217556419855864532260711519541903003327857609522492808195379439097805857817924043628027331705362434485271599512024767965529327738926680593437876036037298535555033366270616684777337364046558439671959342929470579309681092492264910283133730090475490689056686869379170295729145820719661439143235907765842461863452156273318895888128039130030524414644593187734069071714937347245674312744012686933315616387913709951881746171139452026774176442652997363282352334481354057760113401054130727199969158468510621537033868484636361305539048394128569141091402878752813718413501742947144476984486593780422235049178444818678290443178763111877350110131289964305418004927501572991858934584269686433037113281799062838003699223669234836942879799599958042619890181969125448777945160568466746061142411265254456445674549184238721590285071998174891791363305771229649976885319597543221474036125025651554984590073160777194760457882934967644683403223348685055568189304774449979032201001466940361395496390641648860183933274565361491388003551806054468066501474999755031492853589800804009377141154293741299958496300144583125101472760714913517342371523705101268889216090738114845383551886767501232830821595663306324623639936019623808784319424688191483859927573183060405580254283927867689155051391111207722086551903922253450747687232997691337159028339947279384277749360929386931379308228388486076105581850721755765291243705185961979761081277405978801120830601285525148046782362853848965385717471099152983263235781042456371044839531560917144628047360036988466751678218151876097675126153297468770119280345046791300077943668530918839476754495569169318181179151328360424436753986977353464182035480889841476831849832969785111301906021265292073465541229194577246129427164573306827374041161545630163652629839276814279109612328180728002947133122714562582338917618179642006829287798569028133923513144367886096836701188611554447938134902394522180040947894078049498854679926742386244759810008533060219491694607530384752555027067440948336635753521817090773226414941979114038147666789763589889411986236180635095259355225740258439128151170869288414667016517390827190869674405249901424006660514454395645249486557456887684090993389028488716350381224231117713441710280903971733818941879414674455652535166510000061830750722092902622372464849441812745843067450754476289521993903198635209140022721152832962458112446926290322719764003644067542996683697908327607735233480435908055148382110385513174211748671644411280064294695859225818849170758846522136831371389182638129166979097974273997755476685163999232836201511380706475307311260385228960092159235100854992220488508460692165822635803620907420845370593853837134082367635397123663594947970989748853888667647081426939934902033525243916887892653767347697552966594886926224007694381821611256510628713185975124907017275046769287831644945819812852042494501924942485674252087857342918644161018117094851071684944727462046161192332588145378008818215362465712702843111868522648357727364987804814696782503477334991539040290911329500461144969793282201359890177665642981639353388691447339155676533823821445988060094724519134274285462408576246087388895811997892453222388968490280945202738825114718883994705973259770420206070984663482878444889575500893778183453841907693882994329075618539307065271509763248103909294217157348411465832788705850583583731763693546120801308048355083994565639266110252088172857912662275923545765604663986589430716813421099435420714552643535106748706116789797523101429929379467659532588661887428409846532074533267691215003748593806038196924165533894111974136568387274331016155382432230226699340507337357070552315087280310693570767230520206683536574256613058982510259888000037275894084265701403228505214851138977476223483153634010964945805012173642969213113203909552379932580200811815168089824813057299386454797123309635395109031965907962841777800264911595819579663414824982025563990156426819212407807455883791670342482038670112100690973264261591315950273904469236554759215541163219631796590487809593683881309096939265914802910231561895919805072442335298063453461012204005107147172826408484360937718563875519371527310543779517502053450169750925790333956517165246531272184978170294397774895864191093833042899396002580254365129086386873569874568019783699554618494600189073712438883533197445804243014171732104339041015806175628087354082869476477961347499780120958265515691651609644956441958682065751650398700206884247105392695916719300059980456250759876154011109360726657725578472531766031384719367525759247383975732684101554062090228778660372645315814994689850314325099043516153324722231619862487214578391692229816863789243859189346461911653724614990411604990122899197722243864598946276298358901496862169952690694780337786227240209564422490298467245477650007069400364893582438297408649892452434442518290585376027907188140711589950989711847956266683903975715180237193653490308610961450408448292582804284054702954809921782690375539561828911303456936279329073753696046525648272313584514384529751111812812128133020317629479432003364496847785456996697540709004058783865440772215536535889546773698781136765069010212528254073010782087335509365068376968185787145010634887900138671419029447542508671222576172839456921176392624355119720389140482624584876471148764100018663791831906127574927329582406262094891931241498505798806574124613155690097475085316439711781176407705435744457641257429920209651275018753901886728213857291524623000753985864318821681605000762297722401560010985544870085717347643564164380601956508370785089369484339093668593204292737222346232944915704206329991361736944741984915715645173677216857912546521955120777843676542051779753382306617365250854402075833389808508339827172532057452639952408212771251836193299071924900194612350380064680034154475931441294590612526722487197113068784730706004067620494638182838652666823727096255286337694700983071924437889254404269659305649539101994641325417345971222258879992851218072616586731548896587822869431918929970824299428821784589745939556392410713963922364542826232645648997788226067865871995698947100882300353661199153295285638181012719373033385450859163632595888053067420611590694326726803782386748980869921786073323205219532268586176075428613786989921260889998819873285123631746033545162843076753980269127196590289640583562240520156445694743941612232970016537808445397336361362870121085347631674133122090920866881227277443766945849410224995756461267486208034040660471968759712585913363867758330144646006162335016223993506792466717345556548227066450644392304615692806197343832629381805218374677989729748643186005328497606035281738543000440585249206447518742056839682305097863086129637365848847960206840146515035639023339332855268934803295234553571391408839286151115859877462591766359868487901381348807482379010568306783421315963592097540255174347896858981787589130311955928595106061607526868804295116551917420553355252918044466255965408890092132792754349315172692201450783722246411839954793248005327422156532023120464924761437891116006028351532579559824581339575661753166767773915873454979145319886348866188880019877512186400699703886520772068644489836639159746561472453180296176605814006536034364626123919159098316132637466385025934179129068903828240676063057663197403062148959818337439821737343743886654281226007957703813965325089036413414326353328949494495519889397993943090224154529422990867592958019929692969226181456334930126657183881612615683738870710514782823698497873617371673844894712183479419176308574175891592796059430694972275220950003534532112093954094938193663779800167952696234765109669363977185608773546330907181285319175741573557084662363341215686136054353185011141123614895906191030796858184393532464494553290866886254382172340917781666472047980215668836709673759581598213011095627805233113373316149007615379846556281111926145037246113975377563785975580393792923398670653655409647955079011576938065202081385186739490971941631563664804972543918145988118826452800902820774611355306245850165308796271484613184105882621000806326544640815840517365341872108688771221990268592536837166386704813690101226921959769768209483483959889920849020805513807796233263401367313847921399421928773279019073142903021972096200579410234904314581290537146670198218760320298299138655980668295819080432181643457294860205868405003962825577994770169439651843570625827194909747538068084879628219317791914541965207506733420714859702007507625322393762986781216259933098321949900519796434238130366989521697961948387017246084751772358831220525755117967996480486075927692291756533917423662479870496703196506479436476743565678021078198745026368511976442130372479908419101753635486371803928152810776781285255989990223770193928591019118993136222842742295164082703834972510426398028765505960932919578623219250766318900542251222652090497154805126796393647111211967211712201908325020364209000010823735185491555856304154489461988137670533364799820006391684804528242498147295351772065872781870902480962058075554589190605928006068599906956404685969106928724889282758096099340493629152376847314489899455014743467511876541378406578279122571526590494114890510000817617471630156682503238464008404346388002691681361641602685824835410513877539814820342246388598297160637568899577930818060089909108636756531645124962532290971769643398330814095073681618181479169587644375272107873426773952941868665025206358858040339383558021106455527799642225544831798946578257085934371346553840309824114792391296132029016752057972577626871440119046961541723184358778718350230190476660661275251887573050439752710660930067540001872848791892250091332410039869896274375678908150505469716683444076573095095923916628391929700303753073290543883291353792123946171607843866409147095846788072432150628198069214129818900710116311032988043224688143327858743557180178222462682541942434275018965863537647138576280591824936919335093301163307250234583751715347952708803252416426979600990674290556237636914233312624500945748594950374251797224557337675437519820112278679036789776011983054427372392918341131712958113594209739479408336675038039936803712110332788778686239082110649826303911812559788037083243680556312453228187906538682809667653623951591635883817102732814760393083648164646864168883999634435907250588293673042578419334695385642845564822720808833079803062600286297150849113109746439498136252372669697702374586462436105312504454001879845193147637614008115459447754642643056202630015299922778236445168221657373107830870264129913386597898642655381372340419773964281579826078433503136183469333764107085825281148487934492084681138758269554246265935794120500241261933511112500024905248363019958227528662997693113162344592531381080004112624057132518115488385260571386299810307621377702282773036136769853072272636466964990667438338256946289692405914636369217209962321913708377293255481546420766036792957918909276514188012914287279980280049158920592383858190011448444369655327085240139705727121338809804774504579358794124150303975381436376161497002896385184424699416827788591038566488284253369497545054504672811918523825308057438756968952102372469294469430748785427040019995404577746457212233927428356400434586351615429399796352534363929302134037777454837024203320543232129646040342221297080739833134834457839552953461407085417493750003284952169249560769891813261251063401920898360039605428260143126267954968048128580652116285423677581308140064333403444648949852185759108782715074527656964863200423754812672909177403057550851868102587421975650243038167587090827472243071687452098642136345109193595856505178083027630104383953875690327062906254510686948627240841456224191551747788676398409661744514086617664145580355190634744848685111782675195788615347030997244318460614368218966796903568987725697806082296439325812688079735290934074145438417209104036412954212313374469531871592879251314659217846526777062975651541331041796674009390887031089501927665321988144635916336618076041566539674732979257633142265127419442177003078059572096124980531052942886764464960780128794863662845848110138121099551545588058377472074769231829501925551933995593387923309604610779351452388870987725165954869370197929105492151666035341578882211587122519850893179550657128945704635423267587809348261573048492228738346691619412553535377581230198623975935482865673362051506324013928881698137418118887133039044987610129696554523604197432526858411714364645913605744255402158347210206461880817039098918281229840100621693386717560364599469124358031162585012069782938513882541518791635002967336488146653328574081870076811839203648497647800973264926609233903409657190184667251727726923816220812598589787252344838355463509231977904411121652984325940307621840103013239184001619706285018996352663761049447197184898325431799740316555813834735472833511586072235392861030498299809379066472486691099726014441304366690314199135088385108413094050191814497386596122318726082328944158771799505947429188163248702303668313376457881630692371870985391948173086554956245820851781565227599488282728886883667987026968405637928749318242911769047436373324101838769423448694039317362222909635805502476899950056870054222347436467260924732141515369012748636455802256018540691505714796042156318786779266004579540104554859684217200761607444371011742364264001677010300237894996352429818597702357442204244057985692577289407533540971859798812290186571674729583043921489722948053614173733612811500928862382786417191843713086253209024500069258891465562277002492395380468968585762422669241917712010597395272549277107915461796036673395760959746850723607405711095343292482683247250148132143083590492785281626126627279556807758878243051265523438724095996674557417189504675997958093021348686389712387153253886074288458475166933404979254272448877507563761239356493859277294874389063069664394869403309891130630740352167367997963695543163897056827457111704846990826543312112977249665565258943393552724533668018579923773489811568396713542441119840496408380572337069015407319179069609483719812638335077222040993819605335159821173246883966808086727052209072967668600456773982670673827148542830340994931988508515386859611376072045103131458157682685165995091440643422386467080471217950522965576115994431092277256957256084100067432311383132327453209317423926723054775683951535739589506819248234345094778478140836606788499637310521428705466218750707146233535248504811421815297913613426120302755895340853911616008077916904275791471983463567327838203831402297921010234986876833558821026749481220181929488083468882666918307050076885975318020656712639189596692633050777940382377824279510489499342336262311784792872487863906751034510119642998776076343871244925417316668553544888149362479021938308245375903454529058926760507187235139262565136765989185238900136070319505470808020756104549776302219210212952465461683302842820416233399885545881236883038182496058861172674724470722573569769448044697279757885455939349461733612496060921279582101580678110765481235889680302813423082733870304600008201243439995219981405420135294930174894763904646920151929888749399665341312219177701962140640867685886443055746276319902755660793097758371082975652878031931609480935556640290504903211441081080120008298861328624256144737216318876251814175129100492925619533669200059218841489189013458240700374462327273263260442128027907474678593813933637315836794503015251677437257021643559579146943552604144820841193379143470575759878293969092231057425256653437769845554721367216859076362267964528929180245903201743390527946891046717838034431475061589110920489943576936716946274857363119934607777084829879050789657364557230410311124389325562759803488867260432871224652480189551793224850135489015310699869647835571968273463470058609599042235846370398550788692213115394300633147926683435621635900777225875420194880194894170314445151904820220603945232607007532431662656642003577328693123272685346187856002218637350702413241947633249973813438633340307238959817277493350667212517872569364966350107472443211483536515197007891723014224802400644759173698024016715617121601066926681864930898166199784671279702271411779660667274285565240575786636403205979285329044212094471037956361631439559315321375493066854119877877292135042426818711037332473448228295404706129719005967609686110107833561427168976896674689987801116186869509883887567243522380972363544782519699181677555872739499459603317679288499735914948697459393646514481229535904414417152767777819154998712433581018326417610947449822888341570077648147651245594787192690775520633633084769365868860619576815301724699085496159893178813593860338595434229037425389423363098802219882215454807777030841954808852309243709490190423121423531643455387107118017187677434689177249559269582381959597362225201384366771360548255713198712531255602605371652029373171664738157275042525298914213635654547046306215624048558253733971149706451037040005727682622179760319807698554976124506888767360726523539012444815792470909405075217320899215756165157131679674952656377601316258544742436055818841415074784990951173822627523819537497302779414819346826030487498099009915427904881896407115148559906497093748496084431132679727752786352575291843308971324076509215363114419185890718121964942728438871605550280231439498557233307948335454295666559659301448530660295801296871387457732116565570528571136283686298147213301113438526663639579432887617330910458128682760421743652441538600280001247367642179444052001392531011283045067984550904055242134903536245875432909695361072605107809712665749138509797252724627555273663618960055101792661680918744537056576959226377947717446431161699907955869825893871868302998097614481373050731686456192689886811848487870784038790019103069758800101974293049697944310074380016877860015327151391037078122268190771006846633541280504925976457591633736017208701925202635389810884296613436230415575766519555922945740426994172322375828855638882657088765795517102803287309520695224408563380756435271849258921211642090931386504809214537252713715206714409849672718018430298496467731257906877073591241861745973493539657396133910700222670175353182429793363868716593622629560744377134823495317273153953911708909618347131323827654802596200448738068926850682346768957271182188830715977605275609223627736926232047814125605883923145819806284784737490216976294672630599503706794656179567045761422761444870717076296952851740866089475861901288916961361038520824358940821493233015231090760581670775782237712028163577409941036260331981576431908628932566962912436353950769734258480063207706706310458498200218461844473415253009255988532263626081359536884492392790750197837343968162526906197261838577659635395228272837684314554169039892748627905660745550902801613259978022403239633169740512303290088174887137590313665293308965386849650036329162827859717687108502830819652899963540057551646858925662877980592037458211971502181600121560654774873121931249693775901281132431081076312574087111786525477028779205809224687322164059994460777064317522348516282534643906250559974182377109268775117783282043909498955145016867074293302707662152320504234693635424277925803601868633881975738517037658640007901335634900405838870648825997333982546699133937284586882543312634168960194163032572153839009835466954052020233723536162510826094962967686134161915365127946732964985275684151015650868963414185718203932900846838341358162552131652731543737589891763293962812785374460701698685338019952481153293956769559144536321355554409609362282663702684409743416803875847151012439164474550484101812401938978602589263444077700942569009263478919449808806354434920180979786749800204822595520210578764737422172437419488246534923181748682453375164392689216735548306628731354533785827723602640682809180997434179956823149259109139729057643694826134829042239427186007550574970456905752084210482205255229881651070067170697892945591765723497954492620707890467422268205272157477901134161829069500204061608233791877979776834176279430561528413132532512399957552849153110965640098686246700556783125826125622009761313016071557542585252132842311969781342783225040640907211906261794494325268621886498230466560404646951263993680944949285078435414050421286663323060810735106505494915566061878807986475765137188609904650845809423740757194594230942588573004000634827801815751866535826151392456036234082394127507607153664510051355842200440710475296586188877721130237068583675163642891743781375338434569457776610034612816865076103931445079787832778180237947215546426451882944665191240834945272518284157315524816065863086883888208020782510356925189028255959553824629388140666894900117281993683181223666457573702625138603947540122234448141321083869899313370313300803201516597616212434956119629932422784751234082279919512129233642320636051028819690486441700326616843518341724688393472850129737917974565479115299501021356769248438978624165861652526075726986474842264649071762406695765468557666822541041289453648175314455653875382406905705931977455042986560338980337204487280419963848041139083921018875697173736350524568810519281337285119519767157420591636178122985012826657935825539720675878450458056418672137105627368069067775239305500968515606647639708860737448850519327444215717542198766444203376476123438540899317125795614633549676388815464121255886047589924838871806603821962919350325783783298299822015834183547534552373302748559895709476560944264087062759858906288935125958849918231471081682375023250755363616366978518852008029953335628878785065191524739643924539794179786083433285301881752054914689843289138201580113323684874574622041076315043242878943687523603722883332009742484237091263166031536989737204191325115471304830339637986843581913081543047714299705345614494389799085693496131665462330247549227982187926130456221543239151348230386222372088623968922786220741370078064465170863435530353973090146889007840949524502372580278461104934945740622953212103399426467339748312765804764319681080904508976208900351804175937735713765202268015788269403462499624882294542220751252548407540723300890122657220016422421266228324978397886059029610157739514445038853159025044952238401051675117631651985925834382721540170999416383886541793567815813765211677223504358190957518860768230060370558046002228738330897615435502686860466154924603460595600848748869493308767778316569276830798269279545277795980983875317968962026444866740736988650239481730358420148056829777405565547325280945060916327550229205805633432733522954450243085995427037657961127370243947941361376164925791972741292267667993506622265533597153681912722702698080540213387835671191618648840980748171376204987850414252825536264123427157961440798909818357035873238198064554535413180793898866978770672986006015927620483935422614582699412758048130988000091930910870952931030654923037630845298387557982348284981045664800907815953934743508290123305054802305720660412954708890576419248711593646533959735497643438398982340631426474013119101557744200702152294185659418949115840469987521559100187504182556352147556701813681672008390408623181627540769353831448616020323710868202468910363236186587532017960197342455957740279016502184927481942956737057451232607309743320528733688456155687394880399646893006288897637122009322620512296773970642095787750896916252187199985081098850512186058289936796652320346621877058611734463331494052410100090892026940793089201657411875990551468927708338401705939525828588654605691097440439589343382021190909604895295945758553647556028673612906385890160345082404283252391588651031594856061430022679118731793454779016094528074772460511967921152187462809896326267812803746790361078244627074730243979965765480990592987045472492657155806565477237567447171925399487150657699427147092846165368259547122205826341908916087619921187359262623060285045849759644762558246662036836473844272511699157309919830298054765372345075139617462494469304199043079173093060937846387755691779607022626629649648112090906717852696160860824940112474351220619856359226245775229023218833270086456543648629288176299223205478966637298965455444341515847127720291455783885314363537875731141761582230544502956408921633383986463940762639380860007624614913152106339982659779637364937047182255636837478457377496470997404639336633764508095906098331520370668775599198311949956847383222128987320329734384615185069368236570177130363059503368341040065320876655132237189753213483716494954558796297940979061737795259713095168637524290601743160565357759409386926096962142856993249469228454326266930797911173818891350989912516006826921565795440004727114469099844460828385437115949483853252378677591672841762244324482598305786858692152491667549008678326698694162904028036373277017064487430520994692860022697851951718630091840713053024708575238914079200642587457240349668167175697875154799432519960596894880031126703163709159172894509384566320762083983608372907086965207751633940281543462870932388636431864435628265093790467868404427570334065155838942593486617605100036312216553733100751807523896819336463054906880159861907454177220701229947444531233246583059770756232957708814871116700599936143997947433163577052138470719715399364643153942641036283978908999976444724471159419590305577749230078348894976324627518269295487251494347466759975925319042842493684602322375179565644388383255344683986628931939912605328332697596655389437880013091898926454199510855806933995162528596433900109289100816425924585967077203313237402783245541526313320411316518205933409040373775229839744379439216935864725612369142620292230277182632091548974366661027865332403249898285682122178737992408888859808505051886918614987137377658734807338882783222758190985041082456905622848272397743140016963015562212809218482048987295245295372390162149169907667235849827445782656805570347192336638297274823824093825187675950237201245462232475627532461141597466109188353000249274995055431219556910700562889261664482594535425094241050037521145968241787917286745470231898807477814216716625299270687811352281956278511639319434782364489687428383992560393462773140806009377218004144713549603397883509826727872872569422142862801648465213504137327647395725821803177948890230716756359385080380259614025780256821054665454182385000102153610148264379775474489070626745321643551501815122429231478195522683103343049660129440944823248080988272180957071290193717466672087502838291306315761915569655782834568240628126789883652882705565964533209250017090801621684092831703353783463410633158393781670741980039409006275450522757785005808098567756722020270820978196754803145660151406884385680436406469789859934493366837427592509565278045846708275544190754305973948094242270908482240506942174792754164743970945498872730433336350235553499094984702629818569141451061295759958610538595457170015222910731635559084580242893879519224460888888295484897669190543899197893111939862183562711538591268894634060461089060723864705142212438792271433741065185290351257427230673522483352250052539208397136033557071327491032947926943793454801949429638595400846355044008891879826046825554681759909945715914897844876348570633714996610457652951115766333087073128506547862249187081874676853171326305620594968966282090763766057239451311625459040795884152861662400700534722066011268445638323530032934400213861712304391220396653755353920498228379520967514115008785814311975864178917706230684911723693181083243301299069500422560705028118582425146563297162530520275042544869765394108310108431229445246447169366263063194726158491657471730858963142417937734603189644706407605062432147253223095665572254776086223747881697252552191121598939805438825300095699403918620478736103083494327630781366333335169103552236377467807638000424879097195285468489535882985388633160494078894763962033393655175295786473262692038634441932663701669444170398998237463186283013402109401317976461645584131281905625353607701870219884648513692807444824291227018334730499318624705763214797485187497965822008557850314465276839486488448795976218021691427424491084991978669166006218867951093061259093385727900817039442984085387058356973842089235437815471721336230738120831146832974541176711262008256568596702693072893006256640138421556129011138696128712718107676736535809886242403856503732307480212734223982189798508543401389634384810950774642343002942961943914546389720112265011724349707110727009088855769731567085551939008095795938358101681463103591203881508879033502545591997298944326198388380553993893318458372832792589470866116805293947127421289371652401672274302694693278716146629298016640705610517644965621302266766567035920255495742178862151995262307023840723902083019390147428175281340368723762880734555571704206324475922695951891687501623441309806388915682370066417255273435946783180946628662929566824007757459220840540579351640756418088760462570327262468154666017417200044985138719977807656881719977923630927251179434910694888276232245871672819943060330816145717212622289473406076748946261681982433128640538695261042546813900272853873025847643916498120718728497724627828341505629281778902691749689529180604496861666552751827520426755664052720023056154263489867717506510623202608762964779065882455377668279737861340573698690336028773275746941937644410034506324992280719435594369518154979222062139453287761458321290302420953119342477570935437028556220147013364192266802179688453595333049643497848136012181230516226876019877660702563158818197810586699787450264820445608204509603824255161372076170329717800971696769809718096075720997758744553758943377888980204211070550256800698756748876592789452477573367900571915526601394372642675390650844467280339093977902375273990801139389042371011290808629143848114285047926666541885155102856775583937893571290760131199088952897736091351525941156486083187175833126299644631571541290891209731082193451099076385373725604822196086128658176954471066054508983204035995300606188686715390647950151001908244262984309330504690908326944809269875428763743055013023893848674834629728749327903849436438556717779867010952098957163350807903612346012877468731346631462761442429074557252113338354212744932426027703420172892285529338566803436384350250722325912507662604663837080988797115281368478350430908417900328946875489123864759044411865872007689970762357892529358112469075348294022811778796740011610271587682295920905432377360812307640485550532486362033700352991895745440477328164197313444064248068950632601736281694570876714993841249907771272817752953761647189341618676938097735218905261903708162172276855778586451199168703780696506044062360568259985654731698239094357334801824291722089015066071718686706394695616517269375284822581527460807354781935710591020371718395655641644748556977136195903281845756670882031228259937364743489577016185269368039510642280880002557702079454430816241528049448559953620388736256653654320236466844401996962646438118569185345984236246102550005377738048531671212883968909124462981316852191777303384556631050984319800857976821797169021260573515727978830840386753547807222161234009343616912920744507278924077253207328044815200711626650106877655654498551029940715314168455052231140714686978929735409152664722574069653491553462162054200947170541573365098852713318284392429517289334813043761326686435788788716052536852066195779760854830175133176995919746877533519909003010181479282957659394678631414365384702859197909167697520229050706143455731022770848743394561617540124496809747423673256388042976995995471328132894189366100197304571289006353729073097576206876293946118028809690690024360214917935201595332231411014427602065352872754198247077556447594794274249471909785884602606455398888057718737078989327684170719273768201880137629638092067505192602969377380923517649764780607901627794317433787247674869674014607009848442971835056641193118796950195826734932978199530891385775931622117793370150537832578538890571259091176079668919268847600088123959809966484541553292383648836703850019872117277146229150908244871178956959758844012118051802764433115802212805482546054381252016774825990369605952836344837204211546688077633565926486724717290045959548332793647923278582955504349383606013224471110709939586830074862282122905761501838954262451778041438715776094446423460391529144121540149715350339432211096345093938908523972136900626624490201516779716936462456695887336238699557467012560064800003022830603184243730514826966163326150219420019230949095880366623593445765453634855715927654532146355996636141460688458396868642059982135744671623798607448472485974839728525577640468523348175551581707698127918394318651882359666179483329173385059948363019684563545622330874838064271769706399097928331061506191364134720811028610139763017674206543792148667038942118511271702915403602097585265225594497438357381698243148471110727636532720602338082826605760985395365239385206144994021334444566665420014282791437274912704947436958246413328690770228617528681561759361551087959884316463773330571297143249110963045096362383131290298667705986777276994218147611422247802868343382673043837143572563328425701181235287831539153309408900239009570453380880720488030391584579267933632963663779942732815955610818489263099540220891573251880789896998815372824710829184457311904884070100694566493066727023315507392974929616153870048214562182369775681455128835467679129502125959050273487448956654631408704963806895960489721128182628773671672294174875593378801120503251053946832940566443623051058418149299322299521186507502250362831401904840562473072258260339221813108515234359872523039073246840729215399724767495914735654758868510969453032074430824847525941363303365674413851142652804527645483240276129787217269316850644504503923072418270275730027482841228135786908344879687936577429936778302038358242196684537946933188674334737786679923169037327253788288688951779459036957236662392677522048908655501551782463298126112156663352839043557571613146534697160084701833290295335052490773170567094960683295610754031443062580747036960919597924629638248567428308187300554002299586086577585994269224094857918482730849509431930466737066991784447311169882111163630683358841578321940653042497552227103648457933417620915333623486361714632865509503450405558356234969081356327857997515889180965146138922410048607659122688169802487066030507234619864563573010846232008722548272582933115585992169051338251770396993368176802134520638196613921070083758936915385019452756077384542141714016835305479506198996393710777620151808605184272230069019163707716309526245962826848282140863966977888637038859750639021363076006046011303344213455863971648544469723450274979407139638197696522327826956032083812626033825912821167495185913392270693922444327172374512720947684140345412953574336713517536590630461250095981733052015639880320602214259809459086346125936730139221402770151092323371329752245052261458560243615276610181745412555053435396762583733574806296963059547652455572152199776042927139469110082909804060058476593919992643325675115976174084961049579004592601214915162423487277271499830744091299417939849990472039039250547824158914170282070234212926835602669693055852929474585120166294157507429424429478361799450211072326509417824476145975434751157494612594107449425666475861508705793021280467431888123819436897563072064643909090427211612267557003824936598965089751278424989688870223461794831736841449931939460410188297546134655522283855659980569945100997930412090208129612521953648270234735296854708760607289862433110604493171342537804818220421169067569081688749461322600943774559697381321419083338407967773715693606461652144932202181631831908767032004204231430314086165340775728559772842102237246415730303351219556501696903996808039537076227599778793927513872112961327334694299877931345691665528893401358291047419751769831896441600772821272802825016848340509007289777959890730178790418776047413194250449465826240237540551302887466257237095598602254422531266871000709089363701586121233597471269809423731533686706349633568298696838110789503645290833691007711631529338538316918021368899525380710724585942423002357755659492237204342692865947176565238536934663487095454572544043129371275857300649964498296407761733585456062034024079554096855072706682935186536587944703122825963791384981884450805021890732955803903157337417107319261113554279417778583806900919917973407778681627234227237405640332041791976403071414256414345243948428313263087920764806950559012253923498750072281467637912348908599475209830152667853613266021674103887938329146124226989294105490643456275011255572385308259597295290025952995523915348023722414106786533927260620227191313958056542015166433757692617392949256275977394862348081837415925721688105978551976419566639473348189549647708572548663496630115415736689921304581326658695765064222437459355508607690564981417785634603615428356121916543670249577473386253957829098210862884075552400313704451408230884503242252784620500337444942651601931354434451014811884929099579371190819769194982326051106353933853448446463380387359374595124501416358117197599512483729895008267296628686786911517856337968884572937556187676322012050342611873744869403165433997015963713040810404638807059065733336607365019655492131240500050079266526792238689096702697338635889694089006066260784316575225014698815552252746393685884118802252280909865597058883682501813128887320468771360605067260686051161993208666177170718244804421338158630820136824300396094712974980452400318606956242160890353269973079514134559546811012429390322175854353889623779658987813669500409129380181985911151478222434998389826911633718850595752376913858785747109512804249797681742734942342396603041032977523904199992419387746182460915184577611562193006916033076276183943829827404779596073530518181600053677860233212809802835886391285133222083634778311178818279362534730411266599956772502705442442257179087148841368920794478177495677255908319720690033339169631698058158948003165901620899913349390030683683420863888739505734897631380435261367283649250400606323592784674904990613798518501757215794539827466079585999464479493425933856870913185306538627393116385166997688638706685857537719118147698410907894258961995520077211374308245763656042889484701566325539385466303582880798213652421820153452329082896769744995176768108164052274699415790303718048533017494455745360018349228628653427249428265788330631921298353240310409144980065030126362235837138497127842121926053544512753210960261246559609823061649012069241960818060816270031117449448809525935641922658126146189037227604763306568293652545984177962404563818490271631217163947758871859523115167274314329827494545379602144129818906261658761189419772057658205691010697067171088810800848004230959794068930857231298812755506610838994543311380948437709598129355168764924396635339546392373465392622997428053714787945152143285410375867542185963401577294553238739032590826731003258045279969928267649663136558872919926438223303950124722071658988221483707111417339385074291693819899532404290729106326610498499401775664649336390452796278709022494417093283568868413431677966137682665199726541702971536296112461129513039088492279108125950124031513164786911343307439700399277418872837737495300712805833429135451239150475450185601747550693330174304801287372953156852594232571683266422889764459956058511694928537820226122192987783928627839955265012893675549401669051434295619253354830943048889119413163724344759305389979396261047303077993130550694646051585279505251110062376373618794810967099517737983267406940205334759213163360074862355544502342301462547001436689680601001230297830189963755111867103113811343801681090856210498428202553391541452369777287301662231495439227255405946639525174522471777355964416358612582558796539365349855493992075354883471518498048688130019343002069946680757593253651646674536039383099536816178041447517252652203453095803787626523881685945098020228888540431822779653245463223701274741682959393766429555382052473636293576559396804817782906096174593852332519538228966778447360755829759329117968483560325077422457346048415542552646686263697947130834595654125842988481310258971257586053249445933824009920032896044547663281416884927032843727001252682789604713372889104268600909542454378137609528097158122201106778944571457682372236512250261272104824811387889153536961881188346198340647645569505875738066444191226773840166401149716960087018471566756283496763892720727165698602807200208680734573457475466669774701210965038047930297473922576176840401522428891395232718823478230637786644799995124480067146441941788391156580531666055953515997589859360636711506215755174800490249303967007976743371925312969490735047847469880007190680193288924931652552983691972505210637790545948332699165503044279497621044445858709129383225697069213619572844959268706897206092940236467532161367839090862332618043412308145288861427548623679309709045879286660764231927921971359818853623863696747284924916953732735980034775607498034201296415893249498789307474321877948761042597497503151122393712569060440403097434956152259563079343026571817196837154035191831158280328376641348817584577108844653384348901112012264616880685327647096873457504406407685550416586624609284390871029938173210345525265512374216109994634568945976617860263477091046787634834058878555147015685824415318548646908742093954897003408991689544524890557478137189451085365113249237819765980463713431573981587038828061196843845639605804857736528067443965135289454759291961401085447507784945602863441465337973710912114507685415986328306901404083560635644558101158563199475930865072068278617995965306801400782468030912081947560657406281074531935672981335157917785326001883295256918731771884681589914738573834627256053954913241901381825438861650683142752273235915987327611295563355879219620506869399947632454776603306834836158757535081779824912354811970454929460593085772005585546793364983749482846021261599094416767127142288034957993087969754616970580007250753609284135201896650412263170665442954829850666096781386270560932655754931104098363934063225636892671197164846043463951841722749898966567427339617051406390204890728935703834903538468537086474846219932863901296623289762398956313965051363381858683599266895632696463271837828097847851219643211261951268782664393337565982743107813873803787034660377167847818408554906172128337347948624110422870387493991141343180124784037093517634482377086928803146235049322166143046391342307701691507433516266700527687980763246898193536473967410108516175188475063555742154721234966629700819048905055982546994824147643346104897745535311284341631116962733268457840978483742522982084387973605943880459141319199157013567727832504410171621508506232042878477408138655260257105650493450303248455727045914700588383422764892184023529567901026675188839322931100794186522682177973254851982701762467691702616265155699845401503733032984869410470300129898261610631376803339504332289701430145535298390368095331968616481888412865525060961714709030362120881868692166104383203198916445010540291295215029722830057063292421908535933082337352027969508545552645744063895548517442567760697315468567978281107131836682868370431875428497798198896074736548161745976912685833471157671247716327088693241383677673718323075138367978655763223863166539332245769417480404773518214105935000818925846088177979512846223155240981622899664287772895198934639733280460614055819984561409946872959629603077997623589606008358991722596831015793009032936505974889549256466392496486047069605298475170185491110655290610631591896202730633298943901340037717175566321966779438022665609712495655938561259706549578055776531179854656961643846626046974172224078180416563501657246047608180356080802201002001074714995920359917979082133300158466882414099207856654942321431062233897527559610209041085744196430460775636451549367638835047848840881554692569027437279196875799227684853760802777563910178204910284354334305757610005114323958872648118708906927262270440983426950753055247092271077355234729127885386869643161825597766981010105031109124367133171284594820533376757825654421600360836192987992394814529834114951203022539897233202925682447772406695887603250005507647259595327560259712824817857069590367231364724322230483117712690973970330941842355072089567246845495782812417906202107156199357866981261846832921196361837179172858804505426373500883473117273134654238891361870309779544665544928121900980976131406868015133564782756913950427416064611186466932439418762000066087890227125018796177858468990907236557915237385304589320038104431196934998316988448574032308739813866118072691294277946816243904177490018915971427238851330016353130884495163829273254297981946632952762120462058067954330803677735806176476742320441551679120585105551939545486428072314150486715508958250443279060711062542613385764977860794295333530952837439851285833406055446306041064246358399043759848224298743501943964998638750071488949302339339811501738916548847425667912415356474010218826190219847526340601566731791945389847297047201863218647920347049040425192112654371298626365947545493094837666582110671405361070714256965658195501998190117946767442284791877012348824569112489865583658798721261075693375888205440933415065759784730053854754433661348569226064193432615815468199262328855628841132216985959850599582369674043008361315455707223000018629640438752133672983512532120815790044820888402383174283397805836002383288451643050467427045295571975415131989749429537418577044378591331486799990695385938930423498664046050393754982348286788367689670906640338188779593669032365794654845665156135922317670426289722800299677189518047221844588193635831598016958852163597746319255587281969966831385049214961388275528382650457877261139574594865856825304094829476914575017997973708984060766618144333619211351190147418393657482149964618164988511553157554090111699332707458409124002176236553911384687149860708907757061462172837755933772883761806965551799164912817429974789299307400347964179175883698630844326450415163290649186088502268012549622340450904550781420525807812827600963721710998478197846772147892898808525595258670925093593622312959018990781989508416872221094314487765749406900336496284405612080470439406883949714397592812971849519934628134514507160726048660115308365803251611209393105661532698096311858426063978132756801282855439759518542613787833354425487929888815298320921844125703518878542844666331690249620939459154478957386975370380005655606758571554020274281770473896972286045479570562793801248289844112956078354928954542806194131836388913667130476976846890740158402971706380571710703248519180284745797155037730461941821643726620815398774782124634940229704433751954850788058000863639693775856619368860527910898485745870891256579949015616847375727524070485545325062827357477054196895326912270320908702098269884679668596778126862872958183077379573264387615580753842881997093694753598720234190463321675219941624829151734133843199972895495856740137125851902754394652576865745782146490849039055686336552617276159452100052462595146496930556202394124584541825608789752528156236161006915104510763535437660056750650761179803395547641772339546287809484811027387106444630893107853751166554230258115873721896932766219080435182191790311542887214263823316662328891865691426033180139190559295362418654886414179524465375900178861231826766202026593893780054492321322422598068176376858915572166127718376682349433394289512676560848593986502382406477366684382671556832773333551711701682860965141804063899775206701325631473875551171148246800492889551958263455831532266458382409303881108255093421882955585049704315440601111322315243759161783799420698755582225142290285526129034546786236668405455316747695590117299172269356889223913791576538523949456470935238979320800981007074258564271825264823498226425359235257547502113581005709479420923043103609211585292950127509817076561758541263085125631356924550890143702045285953897100837901870228697540167878216441823876852897565229353626595022100627862370893983851844896521793031423675233121427028927406967051019196067969003178284704747433013340682646778169286766464983279559606147936240178939670550193549164235457187716934996562555892340877669222393941198269209829731383767462078788080084931349848879816773677132112299796488318536131612772275896542653209823006181668105419395896003441759627925761320571621782241248777780408470306442056268549280376550085608813677202545380515987802400882340059649916663090721707878945747217509538105140633382679625430944571070925442942321122286292081331174047938107551459109127471503312226110522857518700994986684365412164906286135993218359017138587352664854251788540675125238730531094065392860824538819069142993814429358969778813227436309664248829311523561339974849584304891201429847863565375729157982383546156877241641017097849056214718231134408450755096851896378083172871687546427766111841426541773121187022179793131400241514763216134084819714798317620421288091732115441881834988742990964147993633065958671098278293129459357886468550147731684299516630247894836195852683244577211987595141879316803520575970526638613741924591377794792386122226303156393177328653603846164504845317290279320132293611293508570447653482648576925118543921258531187830880371967142329629894638275896785126235599853188485569898431666102931443424922161100811499489111416924027579665419009883615910145024820562408926271126149258130869728062771341822056580217956100149618402927752647531760485887675656460603890062855511637619169621050175784129025628810574701901812018262107998387898455888060593854167043946580878627614512156577351827261402493012531006576403201663658140156369392876815275108360853637088104745352667620486468225558292501539305440835312129768321061025468234106125333863359377201857711483718919963801175198054362665896753640289997207924601930350224397241565559397985720380741698803702987935115484037232907884373618539494711114906178741825701959364762976198189509792283565168578169031902418144624648466585634963943702290172882052292477002880777742058191092269399916257703708102567923336662367435976570582542289462635871720338561846764375441749935770206282505506891626313593795460790183877262029240370656311907206582859445452590443880952420400435310352731863948145002920427865865059846223720932365203407975061545557175772738890805691751351847934398863203903959131456259924375116672843766564336785057489155116438484296432770390222250626056723006573021201071424799169270522672412675403734816591867396322916242062322678957293218494542071103503619137077740712780631407158763932985383290844112550652112602385495529024873624642161325057767506445061957553072370825205226851789453849547784316123856268005599276165126134993922790591808027418101384278540505006092983134050917021168118026192831392368017398280891924443762998340895058591709442101740419282855463058579067717943864693087807447132906610633024108817049062903654176823630875319070326051830970145376601945273123121471491599654774480123161395568364018555561887341269154463580522225273547361456116129562051084949679847742030690116566644622775064533686662986237398938836764720813622879361646908563276952288045930150460169265652805976744317869882133567532744647835142312712936114278037776484148297532705804783017605117282771805436219840426265634965971173745567469154416247425585883726330465483223702430951302830487120570664591901158671032656261206675306931575885940480344364157744709004538334985200131287986712690755344409344948096891552741369552111486457796102183698393747569623180764943883297685155343091325779866900082250510883596173373945247643609374848991748818647129518621160449001912095719573367977853641085039490224402746741499366809461047896467943912786667444778393623849958662795956049717817913464287437782689378758807060354695223033002977570036238745225974439806579356698508551574062299177726663521277150160725007559078614634296238354255885469446350651234792464329927556851988074738620213531360272061066597888240728989408753399108257021628404459325112387451391558473604330159263357001608232697708965399317563680407980261225942293838051812144628070897731606434167058105831216800481170351816073013798864008026809402958289153138354435845814400669203046826157007876190273426467374653993726948123487908939452693280943948724158629654245351561429625624725271980032801685797255705791221668556754704330884386444592027319939078836254350844764164138171902367951614908646074544834929007920163178828564676039727417548788322657715733050487579967523935208583084912606042861675504120740814435796875003739786114248224492206277538801401010510465230305289994242009548713904687043175551626059790160880994230365929051392622532248787432147225521520623121313367827041654627858144670748947892993498233716075548121374452267316937904717730433461961912097246831162826410054680084061770503889879127092008085628504370702156635217232599241565805551364030203470032272846826357586037446130233049658989533852453896809875903879768029912455613876323791619422027992687382815697539987473805085160871992129972836199854427137171926801750007399738291174244837956034241145704067516284879520701181410912147080043749966015865667613191263500917012454428723789041662543796495469733881500093004241767121441017697597448160180488902939358428664910428446995704310545640313483655690835968572387635639511298029413234527948958257953157575545182279246257042403127117480150093010315967720038466353165232656851407236106294539575075976030575797633273089351456062029843372766204957861240753991918607086798782487456095788227110308555232413946556802460170540843045771408107923459694058302134688101228759891314409194951010964229404825623435838935517815803121575820381252516377813432786559022884896888210463587166190425132932781021222082838555454808156187621272537716523851032445361387902503815773555502965288309702870974158362861219047488334579535032178902310977367006608568441987941300291132965028301570801862032853049951968683709123126828372585875572488389587032539899996814826942697473357578775136594005292526392561617230102353846655232312085370957772209256648620669313466441960172098140140479029434245178597270315275794421503354669692671105076915501696155334717354963491568070712341739284328828903821405346234296602798814301520877959068804444389176929425631492819228100229474062695873291109072182647646100969812165754063990369682974956208023832500322903571691824822253743630614270199533397381805287470005720532831672515276297932597990590474695921950713656001897423163960620781196637287089509398762379354158125957731748458765144709976400536893512741473876872223658413480237995562229993802038922957458489826589915189749133548539934742648359376177926759176810257068981175756791056544825776097381947372619316552261272187629006815262715696835646853591939659667137223516374363400785582689924512209070382749529706001419069347911761297099313086947362828125758054650288942757709781147772189273952960332320497033522919990465558716560619441021950942283754989158155276569489028402486660346476016926597668739675674077573108229645464082985410833073202137614432749134155751678299285328824444952605978996393741437782894954703223797606268148011611611026248032711747767489201503675695909182096789035106734210273697331555158206389254046145728862880628680345502620603101054371366108927066075955454033509741531344835636539122810612375809808057670879735777986005079288148531587326577233254167805165416547776073273515655862714935197174088920738728424388043572014114975216104950194043570106603264242927221064047929156309454981000897551244116903028828845675462970790668915752962774713094649368032579743188621008008839523126794975226299063321813292771027270491538556177780239517291519872554862825262991973332595421642349067361173671414973005323747654902404732260731837276058374938934984231863938833561896094036050719559922232054980035049093715808090979607248126210154112962108881063370700775984875792350175330363480069985819094734049332158382337084981387018531451662023476901651972636578178049921423651218355613876291031759897616833239651224245831389015558820099220647056346180443573347696078712323678287683064379466480051566063157784933601161967013503781615396077758104368870149923489896264961900591030040343733816267898150411329645067881692089362885417177701314174714594839085708056468577141743484983469048358998289143913249471413416413980964860510860022013694144901397469153904027553074073526579854167107459410274926734461365260934381331020384772145043300436592206671772633682489181108405378950168211091600549114128571945895303803064767595910999888732314051658956668171837066343418980331012634928286783897097427329455060378451012523142547245999975192298191343665221744651030831386834356390011837204032208384615635613318496322757805929240825937476443394404001832651337921279635413238655992324081121851345759886466437847313286138174988782380240073132417597148083824850116220202437260852869151005991457697423296699168838269322602382210532485195789363076527877830711151016726005249734479563900728487760470737803362316080793986648254475605432341235947505338282676716957684089713734562708027682626180372373255585012452894314212078440599361328195076203620430125703149783251564373714488496148775735290889257886009027492619233115892389235904471495996903969588510949925180298978409982682205089021701954845616572037011704151631172514381538065618750160709282890999398936197538853729922294636683211873041818766661467370987005260960555162715323735409447863006456078044033833958411824950965390496888640906064114661008005554876987627871728916356657284309228835218866007402903986144044466660825607460054125314746659051107982354037226374788775575217265946470578114026958804717605569604680625859164391435120212368642287208406464720655602363718389526531893845364116303077821704912774950963299772169114331686285548034807874802174387055335033192270305501603753420529019658158443850665343060752596847512944301118566047749745874990836171113465586542524557567401081098098792091532685376174654763852627480375186730743333753181694934104582027783107491546436211594617793818276019311207087892734340895484274249162261331630637421028919243361295307867046848523300933609234798438974384391286794315540241130937337282378454005029405794426526665367627373902593734553729320192721331140623134406609511134031390823879121462745212871386430220636311114832864879736703762666370996571277858121968468187421843426531998902223726439546850014272004374880197038106316842571368416480738761524048736193090521504565135093125945841479291391397270697040147905060421187969049504850949964451126605589235879559610389890366407464979560924694881841826026828775590409239862694833319060927053834902875537948300903502554056046143162258728632160225642108876809008882265366866997994741941840113501483163367980353537562262736968400564566179938009455387387296233947185381854447905878884966569843496282869881839859925078941611746564256448392192070300921536851072444548280174574929702740440173318648544062680677731230503313003627005783871446586856100231565017425807343302206387339907035163182461672665857463448737283965110621435271433764305821101179064872333196994290572852949356693169714732575461231068127146399027600103930410249120386675857359021983122010793094231618321789013754029175128156075940676326218081026980703628108693434004185655886413706591859660330303106832030744456717224060063224587034632393716225828631277523678706663229272728406099498319256090282928882008179881521575359853201474071106265369439842801031754683435869102212353020132496388598637869104626370043525641270415324140983719307523581240022029214698214049245455618136585870520176873479257094013660925378399325035764178243172839502663851041623446958941220761637674033030257152790729593121296267303385116263319726479992604172711319103276244275905288068160283284841615997444585573475278281761323387399099956232283360147903572782815423728494076132761717504601800806555242948416238054871870883964119835009922088742981854855430229712314340399954501564848144682694598672380492577229910408836627576218043213579353832788018607793189265846637075494294979954973344616305019138652546291207193537579463529212391468219823730976793338230188950100494529677710143361169912909925397976026498146496929012713584133788409097725733828746646709414461266593004097712847599538644480203693819763728511331865831442054642304212375104469310458399207819031171541160235390319031706341245611046362521509296049063562252101192932100699153315036497909166684674235052941711720312782222680233402302942970748872614109771489651624364463279710527987817695361750282515698800835275465451081309793647215989664430490888128253074273648870147210251472159549236618004255951408713488927551335757088260737129562870977399662309833831927464317254456324035849402371169476080666688511024368230521445480899661933372092857329447418955973878776675484699946479370732811658416059713577475794022305278221261257780026639184612481943663209188725849108979074450536135082197208079380015168260748411460651426513753789938900717423756815824971195833180217441048264815311706904642782643839056250324009924610945170679738669460113019335486832780609685309558448914122179230802608997211446224333797893649345046893948425428469427165812532599539386558441402359590311036994011691961919331394670426815410408531850347026082633215910301221334310232198426222965516394787460962137670294986413025954125441787336743024038235864303435253854565554457979977277442691507135036197398301416047076931819156509694243056835940617263988947131898668532488599696176381633890745938772402673573019320746474775384996984551769923328804715048680538774483435687190038834566969937918807731113065026105327677585248812495693768140598359610459491597045749385127905569826139525371126405724272896923215490723656220018178399215499660951809669970273680786426817713669217747742324040208174925267521364822114513188424217653606795959319626732295765979927241291501403805131096540095084883588340738989069428198848380702111006695715142427316733576485842374328924718025896480038113866717776021820038040871008063196363720186465505878639767518698612251325881416098187780632574844982363386072544438473315122977111197394458289582023718629037536342156467855213171525082140054455368709877337950425060677306548087538013401332488066571806483147373771603142124011260740854760909787802561966412050684721370820016199400375122949331101605273746954566574777789914940394147437908475201679781529631742881138439873673570831280546696884216665687665677258138344659421609726702301923436762513522599130736836698755332719853351736629605231882497164964738968422900263029504757244128151217696749741726589981311429384574424928720245855807682803675287403360199301964272406866631322749215328098497329502222891809182750900528368923934884466707170826499336331325499727717975369162022252397093274092106576822285352185470845827982589797567972202116439622892007388215122829645867077642355062519609307269379767193260021330268482391388115450398808356459606828299628478858850396777737551177901232237134346795731523606483411344325538266202248596165098935433886372447406362658416634554477102860249108043880555147330048531846650767527374705043169176358578339438227588019704506799977502354668313531591506159417567804943795814150395121917364368291013931623592495829982922836508422766044249291934067090022988086970169072840838457956663550276682301111637239042308594131521819123668056658144245634511037081288494434357161137626654247171790252381504520685672538056523768736171564056443049757110970944772300599041399937864990329546165336657928563695781470955689447455458146752399780894172559956290236009757126692921019458953019242240083150762337444848544452742056853920147425155762174963211647833257374922732987345230931017310612068688032596948103628510102385792148763928198490532889610267116183527691395492404097405403437915166106192485164906935724508882109173265675304792598357578385557324550145161272255873173348693598427301251116971044738042850274169961371327540373499179949189494161620052368281737593495820484778099283592135467943029053202679921955880603791917488701869344172022412669835593383651335565797551290503780916868087242446894449476729653463257174229719742353938076245076151098691307173268001872211517302692633408995108421199607219181332777291756828134892562663344901547515529641344443656573288468327255557790292632998566934197211685090770694341758186681775089237376612375431904395238118003216706258080961321762939602125429930372291375946188377601526498043974965070534848156136916051288389326473494625045443276495334436276981631629046429315068647807345113046573547140404906640526196320823063787707154055833749464440109283668431926015849504696598651163086064272053492200441376845696380862349345216566532029291652795095545617699499929668238151746026005885328764892210996743622045456080263959543031244726680222829853390089375811473949060344131416608637217388358871907135248463637934552602193458490151322222072572618525075684055520510717439638182584063463327087855949695718225939997809474989671923012165609211678797398876231272611582971374734687693945594556966883483288167145149623233139301535455640760256374210483754414257390981913938227317090179348591511665770681074338362142691806374527739105021191187384998669915022587557687593008881415132235793908383047120221036013467609990165890171032737915553914696603834107456971895197420330527605251652023956262551109310350095251667449594717545199403411625561431313221309816364120186061977693232417750075264528243861361754451189486409273146318026069410881356339720849812934886203704320515013576163906170218656577192712611649134706769162082242634181960054539542184403140425355841235699905930040415333999425401505005315839603488289682661533289664154804334086447551420295404554006477123294974821307242825621455571476576257217655777673872484874046580962565010690431330528638918288897404970537817893559915572340271288672039225399918335845629419368616670730016728768006946067836352493150009145257499191814562314396020553374584751957424189927208783418478310778888061868151003865193638034335072692622427045067200716915504735998712593846248032407090471672146941443462222274818854991770212432859555581812384465391731375098965963141017886095236686906928662311642184160655706203051833911507106681240890394013892977400335003241184563650401980566238150095048270255504014901390962524987210170993227395735857841880668888674494191022685109080053128475869090407373729490795867609366297352563496366508809212128174936232067912877538372391946712460628524270395716471708860468267427586454419101785867588088295911829838110611385884771229866719337072837213186929166103204092183381337178386130460816747811311487160857621517804012131306567869960421828390812661328577037127721333629484882823717095026872999715774926286214173479042271763298174108480315971146726386912493903680515993590185513399868494159571413673562928214175910219418551064596584917749625188103341556842131247813922541711471236933595026604500252416986926638506918245861576418716570862388296240446550543275082380666376974783033623270925074001422921100316779896254712039091636979647401084838269856909203834252408607585325511387481565099507608406683040184723750710472524482487188385979305502558003903229184658729419897080574391450299039785272505580085141098740317220783423719895264733461709779777327896302096708424362935689198088722063820728670565495676802695634634400669749095980494443831214905701016132967933450612038689403447586397488022541832932593167790448926281293836965527584374795315425470720344007606076463930718697215119943576803605108451668421168695031333204173427700729222941057291557842770914639392490450193576991665018320491957473048925252595371547604714173009384201828490150136370690717697584073899630256485107313213481137010509126283144243481220418037913428789963263410749625846761757875437182333457506892391060842039188569017072947101799403135686205318912374121026183409371149679254033878147438273249252211776452663413383064236371398869020706703252382478877657118250508729647378574175299578174581629925545002175012207112755035435904135972880021539203859091108630862215482396360051970850474549390756280930851155628068854906556624772436059343156985854556621040532181692141535047937174458939130572074987179545602210377433182262218225559568953693497795714502910478875910057996220573076461393473906962751762758485159536129353201449567093097970167564946287969240559102069561782009546594479395002661194375893543266856921609371360196529445745914932059377877143475198764472447829418931588288996828027065366590224709906394860603274097101146127774459463010292349333120619326202195104351216188431388901904177564972058028424626204566145175981121569451800821046769395861961948192348898389536817999890722222456155252977033647639773875305881883703117153877719540301434008342510188888367728643734315133235686404036998132822278858206022668973362978334121203077326034111642917843724761682388503641242155438496553096340309650445404098993001008962932285234145303895615157188012118856905230183844826853814454480980491133887800010740684210481159019205076874477101026914162557859497124056117574609390725238117270677452162705504560759100863275707430970642885133584365932433227723147092211049994815961083368950101404348649273691108204084956682439093013723541894785404636314537741086121079419568105673523457583735327262572701717239473971668168547872404750175488290414869346472545456142081398890886195371289394116996356943611695027432054737602001279841985347010502105802946126706338560891653214367807457832060803754242351752846559701105100065818590751928176107884878980595148437424013417957542276955708440062479792324444947027468441270603236244614851810192064837583008997657072549404904370400117326996657198383230574232626155313200661310948504355252105692558534568776771862611425098348352944543252550737661480111348179092568619082500544384807206117228032712245333438889364492253434032827605827099936570085883841552767929778106649422695589067593403818793586628869880743552051845019926196002171081892017872295453677127753057762843037643718589299083360412517865160293423382841809916572931399135671195576015634673821847063851349016812442374973208733300015083948611611133576589413112339712022495014099967336492798962427625629250671097509500454998646477385957859361561336211072893926324720476799924989546352186462489782321412938002784752656173910205604949416392074284208234001756105041352759794038451044731141477708117027246450082828283750955898427008198566733679885004765666657161870916950058168818124601670667422931119044537387737632942646607533136253188996146283608610644294101934062695417322026001620449590618320569848923361177371051694990399989330935886028205656870192961820485876106670668111588018708366184573058268546738373565589091629952975107034983574692742422017976902780015277566666577451706858768249836305004077316427305074282644766895123240447086525886963361147581108997524220467291343537159875116069945140814458739163436184156131373716149614687653009156892884172769075523292805968974450902200422465249109525519592643263534884954183689552891100235405776072941107881532685669789952167910999397095059242591269873287283494410892904014438317932263834270133412577860447031712582032878909621534869062036691489451035010047741964827627474651082586775950886520421664813607328373817533123135774129132176060101260075436813367286051105775603461576111784202326492180299941969914499010998565250592384848448148513620377388145066350716368036188811837729598270757922905540600029747846102866407471130999276718594839401262072768701818321064874356417989995130853672353247140429533602590224794070492643431802004409326759954725251195564884583394790769586165737212609074561164154118484009039191357795764960139776602014063358571279676870630738953540446349221043371600333474170628974659361250160368440415089019860654371159881901072768389823509063522755949165841924089233516496222647859948151902356333185358612414561714432449244201074684239023460901866166047523675628423139903657202623675658607391066238605737266673525415607141059046012119664198571808839203569482328068239470403985209056238160675875853126141037049589903175707908533095361965857110393943419580453691140512780335019889041089112268737039264792881797739880766339673530184652100211009759116553663350114099360273916433664877497540123347274841553864041143985084056940075782985724897844020398446274234150404553918177973539003013739642015146795998648297691821117530350462504758311757767275957533751666430254051155607173908759291514550114504550799849507411528910342773813280045838555212623363634869409933101848885760691210039251240418406053904274650013664988813880637536215967476063401901111422440722818461379768138267193049635778715709597733689212645129709765791694234889889034931509043541287558715501603774078803272233962644613090552344601785238027819705663793191751569680142049201600585500290757008883165303711169522659455735762079765598449519835139627930014829106111880828256044769078546753356424751789859203545430174559144683176080999475651721899986986016534089112739567473985639979755601044633599457793144915932731292398188617196362294278312728955528008985657180911932332036829792215243028111021768725399114463290111451242262034653419021252733271362505553488228620364632970107171779114225281682172197110628406404216827053759830669144969551546033272760583786802331611843942813746790475348522841785652431319485139950351775241052596009550410566725121982419835320713121933681126023095198642586444039978536310560963366036403448904982017102574791008650074432144897195849608614929300100981487815513377265698868025729137571961100384056921235798900074600828580044080791294800005875130613172399444395249579463842978136906596970916473506098949025600938425036805611965383482873336572602696486367327687613011722045934185861201782030591847853234499236798883561018463443362369082039333464451668695108350544626150292646118745399609539546120462253396467935608222841011452686642824644057587270305954398605068447688061192424612036322435525772600474618230745422653704884237760633725126389313078419288615500115235187051079237865946903613225434274730162486757645574108833225305779290650504418682549901821327509545380800716403655718693412575662241553905139695364906948782192698023843446944452482805570762835025693708084341084980562977518609815294421772732672619675072767048275994437725123980218604177068126811550592490786748276410799045904490030362701242155089691620583034944672000738709861083356423906836835348233974795454149760570902876994265170722632337220437236371774018417305169759860434297679130604558216793086570881293141962073783666445161829801588226441515948957623864312711499174715012663289115749993277094898730092761700712729761836166186939226551494071716745773223303123502251201763554625477668967191484191906066467463216783144799912835294163632165246826444357602928996901259775161422297720686244414513791249269458075139856694977550169972477246902438655760740704660246555296450382711946026101479288735912526661652161163300778086887547662088855817842497095627725926260587678062740990561497039296866381166753926203962401980428188971465613255562225349328321571611522297812628940756595242508574643774920666650214971531331593881006361669749919108586089870672678228371171056984323491729817487425930624413742236890101278771889224498304283651351612865042854003569027574776235690465587012335080560004272224080081155182960707664996638285355768318734358548885369499796366595649425201531092317007010405684729359957686791309327921917722600227956120568558483145344050956092701899970918861454987431442181861741769931574236059299499017433765845121444971810730644462070570905340357089367840451526536995123118928604884052688687234174335558101040136226390339930149465450101854940235451275692662204080027128500407345866358481630713979318290893503272558394096716972956693033346602301554290780951946043955928454553839261347466691386820665973199774518415490141436098206442975294659957257660043817806153216628508879464663853201721740720567781911067995978406353768646239506182512580650844508188672530039180981701868559182461911085626689078555787123305278226600650633474712268456650638812705067596042287111619622068573960969429438654755282315661404747980501014600168858496172313141785834058513334221977884134385650892117197925846737461515588273763167707267924204648890615623318640091400482605044710292811827667044721857326956582727111448635060970336187514051052424292119280001129659604519626631523216405079673826141196695380767019563835485373677477118321639447474415401618703564801536303764906635002042265643627339662444466407029871264206860759270077815321269046159658287793924669405539866476299077657123679538403924574895069509407763267433400606007851995018201708158257054007285746967206988034221309320325330090626972907446169206959376499008219408441411486116370046766807226511442197731089856809336373771937744635815406396598748285451052604509486364098790590787433096151067616479965420186103533066744890733014037094954084532335996593198924975199786941245014217763965639744890798524755899155674796564049514991472475370717336226942040729668676479693002812373284907161029761433098120364025940676510142093058695012072053841287442207271085102115923138959820373414646840713200578602728368019894011381717516915271433214155970614218878748506741891319991541815869310760429880379027701022980151129402026500103832296152844538411348494395556766796446970058205489615368444448922674881447535626843405354978812095961328206294779792274752789108038266033937763927676409669278238427487469813317317008620601185252167666832687182070381500222221230122610532704099929273592446467799417497068645724801748325742147872211648191120602626128992621250713476165536908725812758180552561048609591692119857017009855153885298039725598049814913095514525285515815389110495291860873407765368879803372774967626077572071468188498694162421834578279337775743599554743166830331410122637321409549145105355574552044614037699092972860523120290877696265639318664603711714306501912623022260565297868554864805853273921741748559775499892418651680272944081087345887901805192781594357658424041827750671533608575907387363081338114021142070991598408449085116662136444506707250602514895688356644497119170702189722009701633973188615351249145045469017711232527595282069193940531349332218000129223653932043529627106459165756493332360618335609968958746154806093704491153073859611526750950383491665208157812757208679819342715831419368297549390713692983396514319831922257811031135671665576818194310280406270245498959960908689438423650017821628359098549339670732073449511430114145818262838150498344805989391768485859032466110326011976918192886566758711760935749481608451044846457316890921935055241137202758429665578665651329285069120742360501669940643192882952705428744223163848863507424539137176052321464876255576345658020696382409710608913399687205896341839435847858264117474652553307067780109487349453173106229711549160306541625592038999532190873090270877298127396408275540128077146302680603169284383168021156431081640262049111162638533160001277708480047751518612665843908454840204548081928596677413581662698574782496412172256663438472332561063708945323277750294426540449628182515710331458441747118239248750715637138959138151824690552941358040908165470323726074331973299261535210401808842211244280931483304603921861630113567692740040466705651844387204843205391100417348253817062373019296509263182569197769467155636821463764911039079421458343548205044868211029149722207033832763420956424604399471657591944348819926201481699664102121935845829750114156167916786459517409503009306468200842964785842955523178735282488813415038681037288449274112740708790923317930120500871896427268022946447454650568355884124995248310925505885565705095704158672067911613532960769786045280502994700430256022785065029950494430604651492341900734518948005654960367733971685188189417404747604045198644646918870642072767930833377619801167463683353988476656707951831954733350237192033334586786090713004326110020314257714827193377486170744350723394000774587513804928353079893000348495832855368148365753765696796771913507941449925954457524966755052897726090768898402513417680606848216490946193784062582469877347944658099423416111060985141208500830969426811638481626341769070058263487861160831314533912505630544379867286111034197342465031639914786504573281067214666056089545623766680911371252984246720695284035587311867038348345206435869542808686615860515144215682109880439908607050486873308252588410048703034124560296856444499601242795200800717727354586869531386683192203702674069807949551709044963482708349948201284985191961478382893820674749624923160010838434406106239217318749884498662454364163437822206876459537044214561377003339526763904765695904483230143523188606235246729595611999461334992192740584979497075395441255101126226654459751575257656074760202564610417300763688626730023598520330716910626726267114738268681331830789401075523045458336191563346085612703894805446937160105332769715551903948569230660687946411304978136956212436841348903027389450292693993805158875807666137281182504573506557646135070909658309013884817368889888573441744560571987454018428149415483204407946180538358056064082748619258813933726703974522696133517881094525522898653104217456543859926123883943587714375378366484115157526694313282389489907008065074717172509372429375917877885942754649605674293958976466476111555649007138365204604706330051287828023231427048781806982679194796132489091493059681106798445130209037239017411348628402903280885607367614903804071097049673912051351009680806491145474234439886492929676337686298068866849117639546967301312230840788008082609722060541985525381617043063252668123987787143102910183075602894068187188045750168303013161031182662457660697078195724775650217551271596891982958406387119457497328044841883122348329724092993653357600394488905079552649978933410343269084471269624845193493852459016394558396517131463071967898271529445768876196351225498098917136597940442334995588695669606173712002156153478308213356453977776375050808661309488602959436410947778474047698767621808680885046095159603300249321385862511513141302195431783693777355169314837495062500595844538767024473780361283615928210781667075850216697483111075472788592561019554651816381536726942504557950910678055950056472699700543392933213131481460529994160862800703402864399430175390565232164352433898995637231085371485895482748529928700368881863273110450874879657798043888778791240556841905907606382384367892342211345801607538271434212947416732808860630747567326699721465604713279171119645165477154582728921327479186409856563450542476615348031427912196742732989642949289607988208706772929106773659401740232013294124494439291457432379522052225631627803393555076041312542891627642783889253327452757968126375475254280332271162995961458623591763734291001284792374981627524256827966358461090986694662472599803012492318163698313599286228540640734604891052575079284719832485042756419758335268489065973786588871239608321555570039883003622534440384668267946863322550383581831476841246563745342624605556120124735105991342156976687002840514651693046548773837265874264276638604562779385505439808432974011463188683253705225235857800950480590274710059805505029298963388611948909229475974170613397350680442472287335735054663448447911348639926263623893276995297248036304971103625311440765151827876437521541662983611174383147776937925274979166663698370650456425317733299442031374682608079260474129423316119639144789964743270722273918229775454218704107335629930747462349042379430781855410983118112023534765921163221800582802527531289094444806581919120886935871349342752990681472913554998776097264338108959571675878839930038494828558260737611378324768425509759760521918392245465152767483299695138381537110376392711252479545964151886293595502384302313348956048107481181792584253894815738047124440552647173361642650434054079500120063235141673575054848024008737030565522221944920841746795657293626011351397116757780841147659819180464007382766677117138158945474513267583111615488978016646885491510578592556595325713396596583360646920599197933079158928902440943154119041576763186959999414643120179272646646595690228246716669397540242185790280147598597163787041653466056714908672434067439361921944578392244786943461593854584113680869700265073487301392189769278165011117753294791723311085697268984513399634923258798939044159810863845346459562379369027570683611706804483430251939148909297399305147133704850587038228880338282009128856508563935732230575208204560384767680413088690458604979249573002970142238076649341884839292916034080715828017995306269580885218172431963595435169754241590913527906406593596092307966862443428648117949141638532661727623620922377370348637039996325364188077070803400861610881484422830199260589889340265757366710235476333949831441631886314008543638796700147275341959096849679534475210306495769314429725273408259829051703955024590925415669226778551799435213106026527190900198106164666306501036960953054680669790249811754642824364881625254720748257293635925094301113370517941531412409779579895823517734232682764576206501910167811546993481794651291941046465694769453041021386188954028393643855948553320711095975308691979979296268931072691251901446653757977119149130479860292008895693774816834557828350357181878760912563969058259639508345030679402466692423995662338609335147573124841515001352912560757735102642777485326508426373402570923506528686286358742156534574924587984624894360840641475891971322243018707476936428860992125737534002972350329702088473310747800321929823680229779179054654596355671599330602725633794263218315476825602069127897025039482537219453670653511244474590270487240233421945599446730619649347666235529867307188251183136600346994206808239842014260797318311641231152671807795919053816319247538738632935944684014686758565107115663340393420684032358347946444893804899919508971882624587607284604438427164204108282437954024815683992703372112903758799124557166820914829960384261757441560323862199441770254758714638226801407821138780687838540827425795875511180611269089617915491092437543609941246703276254739292439534325643945735009715024303140392277522723016810596695445542684311969039782341714658874758063172021354180905429729706221288230512494766799113553671436557595761807267961003658619767129774230923048402060399005445919791203389372824691032596374702112090740644257496638593555887133034454010740919260917548840415814565912951667793336539328815673527388413869689017805109798182136969979709046516583634143454582200659119946290968990987852885965293249784235270594124198180768772165097201666430942468915104107669373639708352622827684540139867922848386228137039510722485107976465695757335815361468158908001624284121459274394366405060374794752706394939741814457717603912672518511618995632591800616487755471754581313162600680339779123552434706697039973001904150336102982805596493546599102977205075818221731108289600992425498414347484200952026599170765091764730141324826389302323204019878290633155003245258347634047512489655147652442850244315515930413258422225469577021036712336114671577490192240800361482344188244441764027860367425431543391346525840337422339262674850196228143191449550786968185188071513550249903455450538098825020854139727762546863739093466794950395892044754787502406417849299581791412635380535812897323142302759970375454544404418878729040738571131172343455325223674967611403604734584636347396245109124726573102952539277068039618575960802014933076255429219925616872495396138099912641845426692179007673407676937462214139989527220057399911088631666444957467136752314402338512157019393804245264723762351386884494582778330822351335718646732958978746324734407235080520382264318408525210007486750997210922664390944061400555223674834470870855490870599275476587611151569866131868521915388097950848199194001595921586910094274514787034068659147424402444766305751931802988843610065179217839280151803442316290720553817886076025407427470899501667994896565995089895541506738694249030440600088266076519218224184181830644384531611233371806458188248963219922942036155037721812869651908909358671858540620150540077976685437394944933730212127548309315410930103373455668166591183703935040303183110011266168539503209329039388066630582544724768151285290372024919219926552332739257902022923694969042503045468696205157749312916542057308150474822420588550014162766206816470197683094229751675184633393441576997365287281532656302074756178934398979131754778802869995188719709248286137571800827134887994907731218226188721146264972074063623456014662630609297129118212396857859890710401181856850211528405137764666509754446441618437442203126383721337118170271200921356273817736517127439527802176686153612031551588846201769708284982781912890759125230610995755698877332404236658069070983704573522263156000649227625361542051521104978654897357908312037537237789463448776238582760217102346942877479934464110449145257097371062661907177132741830304146232200743767206421003136700549320811982359114448677340832865062782359043567138855569594949314761980160163604046635867766723143880598149002653543874838206706212599655987245207013604361246377856581934805217431061477905642544825005305271086549718883085968273989006468984733594296092067944618939369089410780437331668668910146220191775917267059983578147986034544989091588430067604984926191173763714451064789883560495588237547678275247380320935245847102110933293073515549855439591889951931217646905014146648058197266144868319368768730835668527543075672829050790276164899802275376479587971403788761701883934722130130403920830430792797155515931975340647300566725023479555773792540278096453075982864929664684528644218593013886562459395842649157235329401686485578781480100000847010478602080470024072869120230100967651911501491494861514372154300897702215673603373218371233520548942757570386673646745860683671642675257866678164917633825674479710210872900504601436329120019672935432319518722334996496195356982403241386754660609874849350139752380970120355052570763520252646668448145107668177620901584011273113571227857743081550727365234674474602567426308497497164778937760267917495398744666030166596562652154508092466160272973825594107566363814063266248464876175893040443072386479090425230544717106339116940035197028953394548760925018191563867829921600499088363092429752386403015973947572816372808835837165582571197661549175787861760524454896172511505138794061522227014211619243901576423164639170559882942003480955242415892961784995739932712028341061086776948375945049878562886868983675453384127705096827403642094362466662282236067923072931950150188214198229141758783541590194871144313803218842435064220168582756167429850799842366574338209842993402340777134921531863165699678182660511780862553526484007970789610152079680626168608603397060070723310112691354607321173800988415576480521240754190556778545975849720661482299137453847259915720751500886107119579320530275172565429341899982245304743942108046668259570649663122614651456045978968638665845046888546691301975745741223621294591793499414128390626902695823810427976513637882562724309554097025802068023755500418539743735771369616649421209991303397281642539633107724653742842230396906149840725901133066906239689486615660384588872404349343317795702430920409942566477643543854815066766857163154779234989645935223817845719418719335846678240174347576356741161705364501813206194185060064097782183514990737175948664334383758611121091826434871822207362376552303946449344046474719780928413343789536792471469215502907199549531892662099630996664862368230834122154568171434308685153582670276849288851662229561913226213066382796079953995247693177245183937849914257856517152799815950882934832840998617925019310891731605791928722287382118449990988699022394482073282924436986516133260023105043224620474933425982217926732200895328541529230347341391394952431136887100904089322577078870616872949269811002074702085713188156128711281859683555921315298393341710245641624249735968611835489123510214461529740673351272571360566420081365562909831409630925239958395100987263697995534549087776545473139429351711148366881417272703220925293885672853380222453144184004096531801440491546915195842622871455785388267597066747123079003280132709045342426447239527592309586028942231472822884614502622128026425779965293327865859193961030765934801433577535067210515447564922830184120368684864887175149485683775567230778756198843260017566312001409859991897204192652684171236234593696567251964512859398574285761569526273929213475763038818397650643113640971290614841371623894757584268760884704438378178182806839571452137479969037426028325349651599134170928368914313454125497041268814868309055779013109158686398336724927740690917251085104912807007908289012963092409433426751875135974068681115069213320693155745129901672122169294961976879894528979140193362108696682118493636646794534819549635803575141447431793588848773793186124616766242943970153665198236075484118351856187683448216310192476404092997333327159715291949950924029540036727801498020114441145272589330005470477504305516724363425549356159722735841681481570208850279818217524083977998187834761872272924422034222135789119302690412904826818104027441444886712408273654081894116211339805553295652914711246506172193797885708922588643408492560337399567293763753038043406132782302950956470558369457835757510213053680938397057880210455683177848832022909532164834828585719878001922726967407330055948308330029897582909067551232173026693469201766507729200882207679672045038735698906769776536075508926229809766316206710985413765468508218937255169831689385088700895971227282076854913569109464572866455673258089579924101303793578482641669129452594225716747738384016243353967206809815068269954077454329117468225361103762209965815138962609722583093568799292470860571430827183138712561509506176116348727183189624823187290050616518248922410522466095411908034655572883752019643858341020409217642554408426469297416381289560684087070130952832775315668612616213729517332764480249065258478936015137958918095486873841619828772149772677076120908491259236360454613003546024512738398819533944891151466931113086923036917544751280103400309630925499197473286066711301902150730699094508620842505569541107648665406208400142719285132165533041597195635844498627988634973998967457554725476533448496794639947393460935258664449476879716718941648913197229402812677952190537995310822037941788862339927372904286271654606793911516358938276164498173081647729051925272483120578695601511155166227845528773241760807898400480368276120044355930471650553100278303183887956987528251063191855397274784282719709830421055388592847826952368789692305150765103023590670056626887348269661377082170270503532846172452482313739918394535808676793106350595535718158354260733565648448663752580680279993192204357533013009512850647084138572980359531221187041186705127555233192952849675395407050553927998909916106647814893975851206621983870407151875474721802639441006549860895124851541703115106233236549059069248084379128887288556756920795944775310555673080942302005209691652783028254199798278099551252730364331633934549514831088130770352618285008769055263335842086923445342002004697354692599600626755744777466537526984010080096700490889595358961968668467019273038326573053889483815664233101207417534529318054194290718342826789691884408100301644275939563653284460210220659918527178868807895126875010366684651007302594109025846529461685575710179589735382572383999778660085607407778539100144522474016836584413563543541438033295339412063393561212620719611088616771258941851879889026676884229885491112668785583877120863786387015792999959433527839293219000647104707201150749984175995000785641478596530189104326156266369171063686719063946310312624879060661849013381959078077088213090699610051661042010487310199414582404324753138474271770353947910347669790699147786312290255314742374370260888373583080609938577758985073153957055998977806850968908672844573256381579020853192474211857816385071732203497989983822905172389793243182742636632884333760628603341142612850651016886607800324444420025024008234341826101674940544233354554566819921334483432642666986076797103042912096412152629254721214298442019234063335458338552983252969086332533834696815486358073733981810398430176764422540199115204522782335610742151873737097413148713707050503081392015409932600439365322411257436818211262820066662437088359141269269085532768845330371193660625506701003547966111116168013638099989741202552653097114057080499755305025482755255144614953561953568141735349907606031221744302804484588746688008204981166809639943633098308910897140954576238291393735825793119564173393539388966568745682664907269482716645184531819424835043529016093517313820646493605328452288345610657825775198799834429285803879778851183934064422787522522186075002677525200430446202273978427293188118036645971069988190042848461985538439767528280518337295272537456733752061878567496867982313297916054278836873220457701127061544600353897983539764978482092773554137740416398077097756600183304866581160572580817711450119231634897619389767118595834247842896638654881936170048272587566682723323028128366520507284256538846011606365658039392893498777809932967736818380787358903375314737029699531363544069952838916598238372530643812110490797039852874779467550064344794363979715304209537520793021851950057760528402950284431248416924126870217615396708888754457508499318801701639581595185850074654074508209508782603181373008089175017370497706606647356121550958693577263888451127244687740826428145035982792358392650497134469741771083142420979952721219452521474117020741146784154899817902392503792574647319694879839648734843947773963460654159650663789647775466529716290065951306773056485762215524339379266310677207448231957776035738742153849053813222730121692088558094783338256673751738813208700480756321615255723554320398784597120219979066161074297466452765187218830739774210883048820123282740497103038262917014893514454297460106501502771510718260856193606403987638774759638128972412182673111957115729773841461369147094695175012257031638619888167986016579525583310161851167001965576532155101113604865703704793926299247353363861682722060831861513708401617382160906826950025197877450049651299711484029369516063356527003523911577927527199996976417167435834393043219198897675200491351442212498044056513097040332852623364631537237547597400406490177192533723443924306822914463922495307709940231690386797007832188512732232103413018051811768478278621368143952964319257494659095602068947196594678986683926257897962404800227442175190079407508660145103153790420599330941159194191515030767367098993497862222453591343846366296680018764986429724184951032101389654588175269936482944341925629455199004961052040179545613988951902285630724730034492936276365026542112124798907193361444841980745435648536634892064077219282462259561799621438646877064941484397487937381061678760959580189826547030651097066633768503396773233199728908714928594482974094157702696266286043725087596426938928395131782032832841979054284262858107589222064168361416219911082482592489424681883109869891343253177748489433486657728675242642747447393771674300280733202930379006394907649902626182666803245798288479105543518429800538089882502396422301364332431885812834982966690343471116114855357215196468536857518270203636477748549565045287767201059552577446206228070957382204725540947689205158529035620749752711924946567865776243517825244099533645795161553199878179473263605056044204932382506720281527972691861250269941700835260622354196167075929824470091349134967682364568386140264937540921015150581015989912060876048463414374307209613489011356314081974085237308168124454011610250775297718053975374115231764862857082505305934923379314828496879288133318917721157644848128896967130607847415716835477956481627583429823096629427061213274141537057662927909664673307153992949543003018035373794640382279832078549660342094161589744465891375154947447534057894250493197964692014999328805384517531708722772770862286915586494661417924165552187462861772126516576214900768276824237004224727619628712673908008470195536990208100024317137405284739417533811231412487178402053325817975434706540924425969958759335355098245793959786149650589510606746777732905026836552297457177809277186031447102315771061168411023073943962049167462204644343955628881618655222986202987931008624316160898604496072439190810219163095196068546286771843272344455895121770258276317589452252608251114561257102626613381151874940237289831871261406920889226512425776656953303436149372177794117458120603067054813323971103609573791452161811909256254961263588814138804498384510036339956991133901421588922892269107569663294700682693903108008188294836594040606798365273426893660069786863608477459326890686618915726457318477079143223476889650312026188491942794553886057741186742888969536074893863873377389614276826745382127763463276829588525736720589000028296387914530801963334391975338274476965740663261842614897805141764839096812779479638101394541649485315980275426607464050999736133596440490537597943212656930106792781803381865837770981322208658785508679643650090060062528698073039300938927993008962161898860638053980846387596045249452687698864613348546011251157618751139793624193203622701461848394717705764922851144483065377903820336768501069821801035085119793734244414472760979911652500724547408967436800458797518743721618092687531277843652725296590441165083361517185352655437792346037133357620342041785721301155807428830408151010017077512581039747241013623020900981946193586162850546379537750642115097704659171488483404765984839916266626741232432769980410210091543013666606056036079764499103506843930517506657313561811338937017934810327412568569612504751564887435656535330279444984584968179209269581341093385719919403913184045363029651643942761280954245843456411524972397300279429690862639589807434265298886033930357296437920040038893603061351077789086408529137703860255387614536761269691597432632477820042267448974004154882985104364544284468557246857746400077945933672729338749718273082955128711920205107159173557743430022623301164660979399469410177162684160985901250248311011579595528791100850896480927518579951673522245277155024056845125459941758225664388216468027360785292092104530628877078272403354473260638743973317427748638948927396186788815983811801634844239441172562875143327231963729682368276716131802629034609102589034392696176844876570090672616898444703359041392875921557144292181240244960963655027401976973025744504088500787017723866159383861884685720598436316663746071361070747378704064417336348367707119600681137566024147651667684062631684501183258967974813230268895767287227828073566163041898997063597148920305968109615352565125852815817045208777747723032013156977064144825473382648705076408528381294242049278196688690073605752789640503514336886073806044947670374035051782932584868344816740462363774843645160744961657078744747558612394704645415903731508709418193778506192916466440258415131283787414525667792823624440499850210813966291088239813593008139137339263212924071776379981291954616797307727175705691059403402825012467848720124902884428296888704262805518248973189457150253406536242506312439556333071786296657598386230250812339122782134512692084276715948919921899190141381199924743669414422326743124455283449778196366001653224530352203879803241769858279030567887036487427067623472039827545993374417205391291961869394926185263621543404826217452220331624182994591352827308510200842692801160578012997319808654163155542752099430439625329799733514880594049149588047740731742656668331654869298429760111163011001013667718840065189994493115954840377677561190696659268916708080401503737747639144554408016131158991614879748834082226130605615548498868431541258969275229997967011042801132399751192826934455283181732069215085100819207053096106663822226536879098533742371058520728590772558012984861984163716129255807720989312186992549890144151233890101477981043590584975080836407665932275747635229146657881521656105719502583271025683517534414952982307998838459911967604084017331639213010692655157225854492164981848238565276121586025602901377262696615708217053161976343261792095493383497712274177855741793072736057184390475690957136292432385483773704191875832255344274866128190011999479804215900777895963052512836131421856836562225771907367116167306011074976203329846046335319082226228692176712346003578790247188745779779850743705594040258501369100698193280641987582609168860048460573691322367701095262655836464483912633747509943151155267259048519371310566988130945026935120082864499490004340902272470131419420922719078047894723394154733148064974287035415554901753900705241161950960728519006949713682536209166148577641233954716209477796398123930546897819252155814659085828599019926260498721506273268425471081870540102115756022267307902609097578409248227603740586096842428992349482891416239916313230844016726098983717293116789087078947094404130785629835179489116998169987722861712096504451516959763433055525556729455939152807318827303730356689860128046332223273227223124861351268330867591830383207436935408901541391385112565197515604029125476181102106688015186658318777845149361410464405957276608330035197330338138855143486939479249476854027996250726657374211390314328588904690902590694613755256404150459985560423262472330239139378906761350940129175797711221245975390760112010870544285762522674435970473050647512216284167547436936045984834763974418982895617183140174913223834206365896360081949118524962173706543487220521627312533656431300885135101598597087607729984215014773783509028932811127431994429551662397227784739532296334943113564314935688811928857653923477808785474765189170834598478669449519988275597451948727453739358730430734894588513025123010536651803623090399780401087357659746473987370482421060713250676949352663804546557586562040916084489691829323670755266808919563744212950209842896940378380723576157596265104028594275727347069241994132813813253102518745547686682762512404087195776022271213222450899511561118019941786530956538197655027528660063428579104149003800007186981700713145426378620790894839541988487839247701949144178751520131755555655330108096438503334945732316995651197506106478603816975633298353569225649828556584252305392508294199278973211291980725795006682539775603149204070537701992462849085431590758134920297978027370185437181145863183927749506515240787158885351282486851698760524857407941596665738363977641734170734359115826272657677193007128810151719811618825959038917365756030112645022134893203615524537559048281945405104401410395249314339925784560204016520644316421634151157169974473427895566308001128460711185825452393475296844399858387436697730925757047463286205248793479116262521157487440254603022095474685734478610757005614735019131419159484650006789610897203739420747567861528507477966247112495019234201499893217056738479016164102599311840613036904155013278994126826467567530922017316025526598463283185994457687586162895422600657267470729757221404752989196100117338186002847741091580367585418233272123784962882456465398085853627601774961099331982117532160388833745529745076967018565263476695718435148637275835189834730420968160525964780864463247537632804352327121490932259007272972829265819954545803333941946710598257748295642274354470131285453825926626872844632141476662843205343646394975534937420031311459195038135734520100161849365604413619671759019627768307218663688766756073048515062272929097965485315402987900217137956310596718367748734693840108267703956721666525504934664024385677114020643542021118482995436120990388576344098113017272888868521648844931712859535434826147062452555045214997781549787622655990711644058297478031913536107563914749786276172907251320384555577351833851719534327009167716627814630374805852029747775733505008240380947229141248173748579005806886985608353186552541691011212216156971482952726567907377930387579776775234246601072656248495146311924686606295616679107327611867622221625927467194050884556525576204024369349272896846529629371094201095467868343513502659277912532143095458376617410573007659433560157762090324122898283730907039727104774213872421331140512187168622514477340300302631564038947570352483289577483317446964970992223448275060579996696193881683569853009428753000238980149917366154170730300051647670925605802977923839695252755156752925643038148290545796447875584729632926609269172021451690922049269294594881877413540694150632957260617392269372322417973066948280471112867937124624544259163589021488226192698547605785232501203629160176060074729589348824974274934105644060534085793642574692278598299498274778793686163818837798048845639775768745124382378114150116966822086389821687101355308937288088962330654993990446175294341965100240370157348528703602779316825502768898657230050460358641821674387358879118270774021002722335556876565180202822374515697318710348628539552455742643818289422427045001374531139591971565739402684470052108431884905246969077364319032663902031379795733093599243042399375753328528244298705045147191512794719515686781170908199775700323112744543588699704335682141080613662189100585485974640284228346475457659308403381584260765163628779942047984578920565455454693133009443623098402046797511241475775010846160863978605739567753693184297889857384671450039603891661319710128680238375143716187555137473368508244091618131536603114757511217440181968061704600912374253494507119933944359845018010433704922042311424903906401054461801387399575711211570504418287176271795378929918230455842551860664293107099731248308212098768893192211710603004568572336115863002324398530822518700731514449284035782779866154591851479344010711566280531020896825447423678287728835336322496700948341931662659152546253777084357168293831469471700858494586642555865351847966627855082286045695913046996701375491809125627107356051080187397866561550266197628740543445040312231311196358994123310219121684936914215692789019774954068575976867234886515083263008958174916400113078087811237906979450426850854120114267971238575255060052674005597739505886699998866255198183277569444894272476403523217090402776119401878106619240745931378633894132003605935326393108346513412964663575805294127713199850919288106961885772185680548968019965488699306773352364660529864247077511117613746506748452007531109757566496635046171048147240906254129660937221024967632191613445298296846836782447512713866604887189132165168424608585281843881851033644919622413369881754911381395457059641048341807541845261664206573135030112971862297794866826101952632699248012255219185151218866959051618522518291797623583931248377934757330442877417312967276424724619164814641223512986133071205386254110179681581934710395334945391422455725368686981855031965996188838528122729787327296672467107485845749828871160505250318224492489286199028170949871528744800585535677205044944194003974745153690192359497439622283876329583808422626450171509788236597647644523361486490013713093145338951128653429949255451604595727447379490856819286657412783384518146218500435740290840772220795276804944194939704357000833202210235505054617683856123974752295955756229059973552222184514725080119333602048294766205722297521602649904918856958867097583672053218761513558949461428692421241627963705839528139834847941049639277729478629744517283242214623888086192412985573695609482307173109497944705121757036010965933678972719219276014261109704054534930044621819301026542056875288418418109596112852906469134332110621877189905769782021789524715048732528702658027232935755774217192161497506551950535401015284434105286510449059202241282365789612791198747688307645045743743801930147179794967026301215454464047769974777332863988696106946171462951633294647324389626512060981120301194044562230243079359467888323756387037581942710996710031724263328136204352030200191280256441852407839904326873157600206609458809846961272683576863278645648417783022462193842558376953925806922900991884373032268292731938612734080102982448404655203330238186967191716340957433070819852779388589899315715614778457316193774678521438767550311143496082648182576164994536182766647992862370800012586589032570778140429202060617799704219266333363944374842045604748301893394443267492705359854108792374497603180065497689642722046275462232407559447784245402517260770351940844162250012685101191799719541957414631353709868257338889867587910827731582105075072626506598424848867462734085525594011202022791391991318342255645454013230416731424175526928003743744880494010803114804921348741411915066948175326358179229970387149200583313062055531094558467121331452134948319421273424076552729475405062149115048472647474863491142637109906346874232942957647404222031467274621504112937125928835055080679484058296119247574555279339491641468826914137117322966846657473434150655993050578152487472736686799346855291521161918245176701003429535007898200441173101387267560895018694827945780970213814351537083072102495147788489521319668916341621481073400660520050765916733001972277796547352885371436067856484291593421497391498972347472605449123554951974751814628899438807830018067819831426106916824829369422794158162312607557555033687642245427589676707732041068344781437932124625844145465510549055098124178329098474772340310810908873720357730639504418425642344100569408199454758775242480227609032185379746538131393448997487361450249443004791034887800286560774600106910204686569797724711964113774394653192437453729371752845976277311734705224002209463077674757621278342225300224826040858283805571075803500269466846846599069626488468514248145522320141356505173884476649557886554041467813658938175615084836305112881922801260626990446746520417754003147938730360752295263621067668438594011777453392575479543635735920488489892003536421915065479548874811637036558104334525718311053914173791103920899565908018572386162465581552694479099420041225353424307824075575284850972807912655896941677604644830302078088375254463323940347819746341453672555205354730497202789468760189341764799053698307263498167072069628605128849626099444757620773804731980910379589672502112976672548280764419802276450391537483741961906293607489051635356863628471031239715931167988208348114514707207405749642555355096389783348352010441519150973952462231405536922449152319267059862385521149852634000503271273801525906802583975016600532913290915376610626268366824580050636826565614501951787411014969063312959059111534423505145921043483667481193698338726277254192613676342937143739796013871362940829270813168541800478907053152919517596573900006053088283307052356675950322997336713440863830939533717310852342396956319733572470110610627285063939776641023940315266336958455123937461850332035572256350925217668369933302329006748329037214053761454726734917725624520218873523208384565548748430759860950176740902455848316912672740923558421056990147798724607240666160417865333168410248374860446800091423452234651581782915712608493942429449581753660737207288239893898051026039596386321811506204043205234722511697013808608262921972576397960613658415474576822705108212184517065531530858465716901072615307178704525452321739768133297881726083958126907567273232262783668433368799091187459135949296542861527082320121714160311530099195981929732497775906068758422411736766245160025375289096574263018340655057571312184679781006403009603287784603272706288659859527411248027802852760089236921091014628701278615615687623484966326286150235669115075437451678357718978902055596771942505031242631959703354419377872662355348232554717251568393781059925610564009576712082616183209543673214300811484204459500579833303381053395518224255536608759619991467162980853607773386022220430503024063885979202460685668033362509888038154222433496861836004572663085350070217872312250845025336179798600157250586185030108703978707032795611596054753612058798250740936318685911945796580344438180821977181958223066179268168447957609406129000301879705438902562594325445212046857119093454236012644904747333617281851250707607357486842759070994125924259933348990485330791196848170146692078884357135173516160058845348494521229094388518739237366060429446372217409672537118037020643623553139044027765230638508431310425364102708840251433227522563233901635279779611814272886163043063413834339447438631384731571138979736646345760995108339533019075738882585423538103838910324842099377761857653391651355031639739657905975077517617472343233101841851088430835593936003525807059761650454465007263986635509520405757647063967313816866019107035101894070502323392358673106598105179621556147333392520835038206575571984274543224454640932029484720099660928382634280896070312015328166931902850742057668882098730989195564108710375877781046722224899965066402373785822146413216869163027689963198494400248402297655532896862931322911716434714891331032881938289639611853991096762653916806938508574828158746935519040087740013155956037922295121614329110600856200860854576143525876601944723155282020864805735293047056127322726728600267002860935024008316981532472675955912996185231501448569671363530292605710936411130524076283277102516262502648828569195733706257408095980644678283755775276569450859434574532436917780934525480565191152059118094807644519710153960878481982110454315276203758301133108666833855582091446885859312596758173106111941932547080604644674440444867174830522144450391837453895465368752381126546641533139523246343526429891759192776396381330368052365038399372086065515457201158158160421444062440453486569184402875110163961217874474703465943919406646729719265763245567139424878389648047298741976501492651527710082348927128965782330080472725355626570228248833396782009861063147804552677394490336658767162958577700508610929042688359405970228641875350917837382272413018922498678374827958112625221755712775071090209022039429973498435293198637227600231564324337434708469732524045866963844956424624489174228028253319178976776327964680405278661216512769840316311525511571954972828290818894167962614126170898757257325601814965729850692360969267674975837412533758174718907519137782698972500403120749743919550614302710702996941281721650986231371608460984629213826228550682674513391199371412251336502403899170638458998306420959344748065727556181034395436833409710727970990453163058066941311345916187612007590105262055712234055317249361050166728344318564694830722193844021790129813712737095403396800013725495600041457155321740293689196709396651819710411601897467063285936996333957863655248776503312769767567073401034962575443243000359319220390104811794859456833395012784146546401179167881046442125214214909041129919198499710358261499277110373254773383038908903369222289883548805076931203779785486742368424643726460677762939788089788228937593500772617808312839952292360000453715876620171648208365349994386446163472145215205591455981235397192454462841527211494216383457441364800391006783276648623441074722776722240213206627053490977509458185650289564997895091011836365515834031080056660020377733436244520942865142078894916765143977828186197990762367387856166297797464733256459104339494128419203303392317173026079115334780224515701599434549765985464440225850817077539723670565386000377877979948277884821570292115292607006662323867608143827680056329053450231614196981944892683205796277725133170346269876959300189747256378454761318413032428423402818811070999250615822426995117208790067816939049293594095362100217196304338842098692629743382456947543390681325553288947571516117685763600006407718851780731438513817530316767308660191994536462880075821718886575286051854278267375795519105764903338953583482267914353066364728304859592666228460525316642310067584866509069836735795928800017253188261659041672442016081302178161208628690835832959829797201348604803140835085547560743366404361284472253680614594211731371386344652066902037060189031719499280223973492262688744474851474053715611529748169583173291349669764878096051001638647752438349239455577899988347290905499530947120833412791705602306276978898725008589109910209512176146363373696616266872052688674617096123190784074849926170761578333421731911223544127385312742008569838497246906426252908609024401202322905736223080173813410858978000749396445115429581245454313892515127438579428136945435616061758052808123643179534850579471060328300716843348131249404276672809554970082269002968641723755276124088150898404374819036811895089446224997020538889243223386229291786510513357177453246041607215667676473833854040897192435496158495724376927274765927363206674073159521491427896591192637884940757029775170031952079419232575989751364719151929940752563493732908502429846181858805204970752236488692382080046864705510633383327620731351935160877204516531897230685688805548115422332268187270252606005836805261164012511967150321407126881123184810355436164712264785081360251820284724240006359596086951504568591713747398482352337284240770512617167509912384575343912390374287832522423743950301987048791858213941083576233393859300527448663963820054290056647278272254027134773415590397098060846612480470247178540666928206959922142712355503646062090859940201702864619705927690268779616048083183597510985442103252863697577018061757057032234363943771488838093010424188888179590525233476149733106556653968260808376278403416522429188591563960322662417565417248485320100417220330176202310217059207941412017997394510872751000469196684017571785980462517387592447117586562541469999992967817749964710689129306050031965323628946862926267816116696987275264726383321768185744599453362684315734447212846116269724287767908985013692823030900019318957489321890215850369160779664613941961345160215685159801035264200713679220583009400660959290182152726752770506212945466105879027438298891689783214738415560384571732891281117942283841205928073957688622376927823031421340018942738257601562644787113933957007079971556791372872961387755060519872102552078521758397360246216734661499782736372992720200418512303600793582131572895849926513934167396401501712327223420305888873180582776825445076688591258184371009801910242957520083063464489694860371190361359293507093119655727416157834382969624226964076575461569281188823352594496151439066209112857839473790721548252664406353257828664980265395135768903806218229324991613311070916067727771806820225394886258838699584254684749661962220876507795370717656576043382390310808898552217465820788022402930035251231012045997298256245961436777681939721144830951253880667971302251402186162443079992280878286978661141830943738828051977303207410000201538870296706674082393297017417148420794876102178304587821047658840187133432212912096968384582487414993453782241778796724984305883466033190744796434358775974405930963516117624747670107529600131812862430864945926709645064462447520697965728497268525166751414825059828837114919701634405309950087934242204648101271996213891610281202610261558070249474215058199120139984155363104569146888016273008629027331324635913446522276430563983573354760259127433115627764534124592999754575562440122633673658144075096195576151406023542277705441438997083746326701984398045214703558113111179785959330911869565777858722394067471530299382858122039252099201699739161143130705458434481345133794832973062244801887838658901106490630569035317755431044880063635569454537410067174755708106875887140170247602850209479828543358932599952805753006968328344918325505906902570444609128392303340152716802829389639774601973955523873241176196546415986960216983461295818336875953206531381174147893837667497719170086634590653215830779825139428564216980539005244696185822132560655427423267217245838178743233246706821045868219298939288905786625532391135006918388870655534377962119459158936038679301880587521382145790639662634551427125024680852984126280634363761623017294480717367795708995723957620636448420576069439526648598195883777998200704014795092701828270630742288999154336243878075694512803971160857307175846055549717673995228146928206594855442395828957897428799827994393795038486770019273723268672219781142456131960635205368122536422964529184348712780955733803518844328517044519376873228241009275966377463323716324940810400697482891777886350386707586983716772323190553445110747862819738085127961272249927214964515200900599116199037256593678854519516995563358267950577857025029643844200469763264999763333949430851455912481109156014527868122309777078648856426339972484649327559376253343561658499410540544459970206021657122189799988410973433783844211322190925889731363478296398071664283434609345595060543824239525760016797095602961420505100978201874058094319794467883525864907927088637265746394454313218409742150601641008300454861511054726773828917396830575589680862917350034132351584984516458359431583837324447404442654896942942985245950671046751082743308733489089782111482757461613116843852826931711754164489428656625567582541914743893133978783734115632635008432604819307248789742510733215927421235320015185184361566219135716518050562521935265840397818112909600388423065564433489809785713822114158555048074665802900896361939013344449969065053003693300659986271016839757323975164652979915852596031299506960391798265309292930133257256187327784021020844671979059242528637251251527671247849910004080775163255278297787492916705461731355707964273008696964465468664604380100610261236228774813397841257214026685797755845880040402676631051225855576139824089413967105738774567079516287223907148490812886985002785237396090949764751173107257047947482396372867899274543663757805799849172381126039590953106946262995721245353406060848142494412980920814802244740716671284188622559235284111812576245070746050140986265254862686380476196885917654830509958064719614977434087314941516879974965051316831136207177272799319849467356507655868130413625182377682833224557669998969465895390231438920489228028819895745829024595077910824825225070706747967600732839209064272507925696159911204102467847909513611993320420833776146294191164067194040189593754760179778291486098858592903357032309501300307113442211741632959880134163884805036638032092100108430530952931114677061615000860054590606533846157540464930874906644324629520922122127797556566092279014058972101735150061168429441859506065215987603408203171584255499148233152640039803029764253891114411072970939218108380468516769721952028935392858648270679335825882030269348658277651026156769257821605356444022040610789701593217433909103197576068116434344292909999344110943114973154779509086478115409810533834691584642645168210951043014993629785224549199505347098541582787685702118984947378509433026857605793421909928276256953781662024819819770602971826702105837247820925577516106435690827053881110812379506734115449269605863547218662920471637729622357634520087781942571828783194183732631718163598843723896808892176957067768435849546845699890451758857776808237043390023964478356714117463844967025376438697132367903667645302453000745734589856603723063017066751643105251672402900801551075307364929750384363047628903884403313140654515114809524761669446020556981646319845211512867585912525113203989424185944064778927810544552064815149803177043116448490184316231270485722238622634088498595672527359906201904664330289732495630122764131576279183317327553378328868581450961713075951748752687235155681477510218046287399128528558662845637463556807754956361542145636391606431820280428475976709652943274158904542512408089715191777729894379608686123576714514313802212208495862779292070777304916664719805730974073083595387650265357353593143849687990376399065462913255818190965478432460591332660689485532632395881828213576773273125874938630819028590680814521877996092193519825546221110779839382319092310768152309971735420533882968180634100717961956399791302681960489808428193699035907149224352208711423309934504629914429292519155991137388737462132559479034674008384315650381643082701479555999453800499202627376737901168203750117595447777706618507213536879129789953417755664275570245185702520778030701547743504373030827500079255366291159613808197254294894915419450238231538477199760291344100903300620605109107455689980429336684661604338898229505881324776494639931967651869144830646998420268882564324141302557577051739468749078372259176356118205121912884647228333850931575173432585940780484224511430576619741873542416221570248023963664407522843117761599529268250774068243032252043254646792028172992106213753654072308068792988730611894902456714275089937009573301780824288119190867926346497826578297018456826380738000953331432412034198172691081908983729976672943157381803389676601120562796110376345007412549712181423949020141488760094881207687365313691237888792366123457165185308851478190225157623547645103683836077040562370533190526641188935638625096356531769580817926695554256650610206531206500667899665503496011355176252134743892869336608030798303101401682726488725677635646066267690297127554679484494328660447546422933413944420953281836953689463493573492198990698783455097638337437673615045684285975585662457911734044958079376464799025115013762059779857858453983844179307468556415380706405639137522030913367386832663728479355347931546535622541077434562972342631040565467708270401707864047618459010783239250923002054825219588340308760215749679413912905440496237451249609905375735124163882985291013944254360836137220301332214017599369587401942801504919062152192514803191545883590406114282312574369948119336467260818624807828674276870014414774561685595456427757938651633523119520331170515561926825430815543955254014797518531196927887007394893806076665049592650527497840902236446162786094179698938037207006837683222160039780494794239682369495317445239213506948810077921400178464038609175267117828618458235112536875626072968987815656073278447555801879397889111386612675239159103857569960305920021676445259367477605670745989314705711134307040326398133187978865052961763462408268520009882351148793624414581532518222377961494857280958822443778861733842452812160788508806402300293054389364175536023835511751534396285810880638592036910964143587183930192495078488951407053969427795007345146726755357231146641009863735953028739331085623434463173530970563065879484981173850335374762151248673294523232523272915403846330114936193483852897936179491314970511368269906442447538469141639965668972810880050917477547473910511746735757813130108250441641752901421576709615388695165845614118675812900790802705499489763433270657727265316288965642701622995950092129705131795817129707662183096094878079169578171816106861067957015998923210553716018373766831261091260121259290400780918092701304179991255000727530228472454109567123228862891232145807430390518658167911553377041506775447531687346762567677156933664225433079553964265397360968728931052502641544080832283224153795242949703588457867842254415401241945805805375529774669008796856278059443616611255205150316774921462152202411240615840586775237891750237973563859675637378403995917214919095389975123647695492575740675337021154329693005487806230454043958941049131120382993405394134969206362909494319331934808340501400701645136221819277204991143681604761622643694573468076084065000552533995986927631944076682822750570339537354601668460779559480486957646451096273396710624140920971917754991243921164737728596749276097404742083370240881868500817507218380646503725260050286379642684685372230184319279419585374567136962329867513030588095052966824975123942724020233041789554809988446218754634777260624326327744378686693359551160298036592798694040588763998404894399449847021721991166187764200355688524417063878750484106890914997016419856705949565713510647670482287785632016118112298918666434609516275089340314764640219073519503423280947966134450793682026946346091398857132662224551081429022831514029728058806061816291567794623255861520550994258917928904905729658794834907725933629332683842488108993304344237366236155629208466765350140787204882408466022491335804830173064827935550210297363091248687071607682980866968500980856207476013433406686905616452518169395080879158788751697798922649093114708255243320026756498935169497905808087931806585891844008507141998844048304950492807002016743352183494551516737876756577205712696781739291613729470967278246076529594337871360687774739308473741392203398999386096921905198328202288698129608336663190833331715664487072615960320984488375220592188522676328253852702814687722796232105479605373309036937326633100766716823687137157726620349619717709044342332236899410897636900891338598595932230905323699515273765449358139354587211296470716546139012398831233521448299421876848065040759530625515848225942915510178771089285281085946844641424069904536873941327485857634165918426612465126174484335327483591791357463198333545710462959254858426798274198905119427637844834654153824358771664910339430756648831986028361207450950763666999035045382954119325327205284985346032040704758523409767911687815540265135293203581916188430862395949855422391969795111347780296656856441139608038474425224799627263995143490094486277313058642585645326192022880182969213728529654659970445100439277578494183331417609612419018003035766631281186608035683748129413250200135416026464396921021539520856842689941449579559620054457761235692019867929199341589003167369284883913514699964096324565159753567593414024443515403511562180348992380247747522827373741367305520346933200083034137407571881753863816372222797762820430446131823330292308449542433755554570121332091470978168481818652825451699449424938158652982417698361487229337780079098523730216876549354030398743423991011853106827920761897229779132755656244310245698921458786950324150060550528498773877917336096008471504527836894638945781159225893595755787636445445358958628579283433945104937446532061638311310221059665486463936855091315277726793190132528392906246876134573648393450051612678531814534477040987328664703040767264903766241048733590056476887402991633520087073866131719071572347066756621568075214453667646077892261263476234997451558747120398419056396292203076164539650909883823430786475070570710502861617342828929625425488405617889509317271248118400990664474684280200108337768338101013919188081052854549508649800844299896131737704335250015418554801745362942637586708498432507187434165749792875831332861758786645301801371648247421234360906966631849638616877241732259404705937664372911861835128952855924314604848183896442902848682205886120031365801045712627970859154302787497983025970064023581436449463863041376333191813320940757819244665184840394323084227190287319085958984563430702612413210760554413292721306894098751144083121684827927219566891199402758006590225750238421264608026161272646620915264161229974146317332174307078705769241418903551102387940523289522899666012080023899479234403107909067162561988855492444083425792637747394687297352256480283374842930199401498958695670620713827819335888248497141175739940351445636262008987079700649893648378429832600638783666257756168967700954915344276705558141306067879488360506668950624416905033348796368484213071622051041441262394448006841132261192168082724747772474824461731033068618584582577641224354756924176963772160775189358136808703796121612172898649716713762786564856798948018923992125402382708400163517702727898442243107183063436435309265979748202053142587730118348765908118841362619447677159091801251162240419018903376194057539639275284105568324462220755065974509613376727582228842622862458254452009461754857819862486090158537185068191230699158890202195849485656027842287921874950070120075311323579849704969793316125014610631365230417887812405710074690709719689696277992116233203874130512551691071169461663599561904282918793903940778073699749719707369480340991513929451308129698488234584570462239094438741989108854616658763958368733720883423330140497968943101343585207623485933511074016722080599694978136157119243992736390170037409958807523733526197154517034706815652091841248598157989654041689439096147061067888211554107714684293637541324875100441874464315509094255267363450313385427214264585582993377877423334118801305304654739518989798748420743350013154166384680807628965989674662156528558111411923647099547126669849464578853380260834757966568221672063660388088579968484154480765892339139179309471623666045289781859545445869946254125259374816518621618538996467598328037031827829975901380629661415685008002587587204612918835076991312012249642591990792849069715650498112337595918887446867123387694061090844629034421949857062950857529217167619520632717987269694228393328229063229961918291398185014317208492016221289725587043917835301032395723084885713616732617497778936963413746220246922329783564399721649257848314288745602889925134771026245774993945180338306149687495832939121237114787056747720060803163248101756444031611774985462003168801618079891292922747975076922650681666113785565379861848432350403843122614635067436577533019360500564835895824890242577956330961288312963765326664601793007496697155578701843481692350904049611029695052935176140117963095676413411580819765001457249274560992473749574496988651869693305606117889655201941693205073621212425304478953217296187036088120360222768786011689124987287506796262382573475386394161979218015579833603868145517967975249043265069043126638479760177002763099779213512477117765846887692314990471949573205058321963982066154320494773410289749012900775756512407336078376623914295558586134331884231841304933123070026027364429993437365624415362727850667599236927150933009504660511919612986630926800208935323475047313254274260634484425636927577512187759873232033864795441296168037410220581713675456650479880180768959678515601491234939012250724513903642651834097311319167745146934051488466075696243934538643868581848191551402264544360583049548074841813524835577504087854958938125311288381289349059551433582799675750474577861815904311920465737077515002215411943635806160411391429586297389064414757926890489818835814814052079857169239550601467521878347957610226768716524639189578152179367287468802491420896300378132292738087265786127406851830229299036039631554374645754974172126650914223414815219681227723290541858666287113688294937515630277028689904972791402590186712131143140885423051976802151501008771186028515653119896763352862694587507692197471800541110681680042848213403518029530591484748993823179941039827029019271952979494520660906886193338415962592794029567413220254169557409117295414375982345366779203101126471698730083063262878076052202052165058290617224672985919501234696662382277294669691630300581155241989170144047984043708054868473016150863450856889060819336855945164599069154292741253174051859682369322835940713126610127136475088446913828690649550735390158820613220322531109167248498022474132508780346167273921200360734371323554158087104659141351244389874356513280363637887999311004221089890903297096369571556989016238108717970153228344015230587388794933905764857974647830826400017431828716132908120378676735034810001197414993549379040407780672494499088495522527670782200017531799997289682568522437112221261950045465188871225752920355952885762551691604227285861186328198933470477781231729635690101957471333237276962675716099687139273270235944022505376066960805260416607444612144241748468573299501699766260818023819595235844908199660903977360012858347416991433918827385821454955059980731683771170820737817740558349394875532408700335678612389779241416842449962979943983295485144669311781244002001111961654648261086219800842635233726695308463967634317705584367645998014360535899368844538827506565901660124838553195804333399762662170885117957576825254338435713195091427409295435355616100004494696152050800985457207139572486001333320092489519876989979561640448978881868064789118983277248382393172195637603920446473486083908993672667670277437509923221315865937386018575254899030357795699281763808378268720792742437960734626837262076942567011874015003227014525140008634474805732031055477762417946353274604307863021637813415486521691425259352840559432195838202197221589986853900547695996224517267084658724222130909875973771271922070856233120207844635554240333357809793309973614002919759724576734624482546141055569234402926879666658958122347553417571269933421371327586395628556358319817510940794249109625433905031514693645648266995005981835426291446931143220312396200055454812927517932941476271854088436168722978013532023469017600213929817349008919701363043955526103509265829355186715478962508195721932334529403923757010892037795814875758416868858806143681272619214649107461509381702996999595040694818088414575481121919067059485026408059266168386057229820789525159062015328845600804207732653958679455535975169797417623863915549013013318787025175113543314168082831933362447769944830532424388085763201197747539097727773237328050453657097708059531772297289078356706045322751549034343035872521235182435567703112876984918489545868843519141234509576580013186680955648355606261717420401033046066206883799863279898137407660953602382178559637860649421701340148641335300256123162360341169243386594484250942751649322429460758399035857921630726009043312714588848793658341488208418219077550543461353707281377499238718754805420966680806349008291124650935257182529367551951214633452640031410933117289428811494748127353823035805707277969809505325155714908152282010986407237029615934239015144737669724967816354705141132427049504486404315670072414376595339790409258982675529970631159288721891877779311461730619912620207101517223884386734561565811957754935639420795537546060813390388024281218410100966312943016487389436813492947194567248302025412640511830683707244836751345516514239784324555951415970692128609817606742486506250696044516506125346866675393664034064635698456099104800756955038896673194945459993413027552879806100586246747145681855109633659508289706276613128701686287365214175842791555979022948129569318657858326254994484802786969595761084001979789384951748998438389257689697725727317942050744419245832773703430298652000472620497424991108731385333374835309369444329158420864524564237366105677882589846270076944479479340138110859378660419709920225110999355280418394517014568162665988134683591186035586756778145031667926703041054269247244250720770211380726415762592802314786758022729858820128445200932298992589680264821671000502001945809351664156022383357378654864714868076830841994648752569420515080928528298738635649116796544726752297465620351238027104131815203391378989626710002647215823736777787539153542398347761523932584123721925648817424092151042043025420499049321093050027002083383378228676236031865276530141259582709296567286736775814104429065615999085792914049104787564084347131110874875261999134355029650327991177287868141914461301464012227741998777632563733504943079411457293316992124289063391286577373461837427535992767888338383774622113451068979856126168495439645287922622378852661716383141729836293046007985843575965234989225155249430258633988044430197644935532070722295962048455716679730652896222295473057680267399867658014468698408430058779951532774866589656777679227099410773020207563600570438822139149481902222350813110512939574367815419711911849170468245941965791381406678970774764640067404728500362819390950098739740724281917322084435602857899298771778392612160213275113602252512796453652280725032377485027290864488788640027148188108662673234589487964049432223509624574920979627799053584425974461397212493043473025119507865354883713357945085557947108730690778362583240664433932511420398696481625374483020858498719559256216613011134259952918825056734555026053471243564390355296335450406518269372017320536812099838319736399453877124338053259984541656710635188231191572239346288686464278066269375609770560429941538562854183264460968734219501813582237243688682733412235136648428342004682989326942496532172290338490403031198585790828533895149117566426937770904612693169224241531890989443890943450720147593168385469913817561561385389819696805700815532255062951546592689687945854157396701562555112388543578044556369680118635817767792672358087188737477575587699974575028193390505865281104312390890379547397963473126305042070395675694144477486317718939269255715208495944022155345590182354646230279766571919579493448915906491424961850780727768608668875909300146835785040673980933264714062129036900541513502128392172023325309815922934700151324532616864168194227620310756342917431407684755511070860191760928464084249876622502910107963680636379521963174176035791280540607090825983172838523374087206870917784054259506935523763890879505616982584731989782290236193684038302956413512833855803204053223254290755589260279850042375992169961111154292892569160292375488252273099660990244247299868707328351421736782250484631829204832197892242403339652536248016204984646241516797670399897740955494351742948582622163281980949174510003456648471316852637879968905403310616430268272302620093841391612813045929057652497395352668304080036628852465966467503770657029286663377612924638834913651137928968852529638908405657180136187219027362532292938958974435479611902355695878167611026221931255304475360417591392699996466961742391455718616254230532341849859436328411845179638861075084062666965366832864493891355312124921179453121136083229382887792924805491725981209070210425553488554058107377419319359348536229570502538108701019108596629242958469777072073833192919165014193448268670442160297575352659586809013829832410616728988357844499377802538649541960469336682446340449055997279639931453643822992136339373044449178584520132888559957451782777880275628914435159708047063731308984328648670396830874971767297557415148118671791660823826609122316350948846956193858094306426782454394936648923097688903997944550895651663761831201207674995599605857353043547112630220283531150945023420846913777245022252207094582066623132644683838231385139491443111358519110303546087450937688596761023598094428998467226210960126120802451437388771182957583502167509188101915248357896487121308251641260627999831035830032002722740377136277931834924544435111147126863931730784952407425360476563237504268271413144102200170790077043790172246925499405102142013281751289811916150824617917280594963867900840767324025285661426162986278296264378940958538530695485318461050151737849612108217157473883927559374205217961130941367876043101136971238239147100770616016964060278988761323592973457344047966861911282693024509737212637126422010068538471228785942175994976393419002883382077433374662651282470878059401054231358392341898230022362952820288353288403376145357237221746702567710651121088745211359861825481597539194891180780688656383150021300961814967275906044264497274922539498386861424368481289000187908969301137393198784341285507482556200829672655136030542097041469334032873247324142054099557450439809513922292145838131172536050633016503688244594698903113146059054502194237189254721733212528332326341092986955064863728292701198008240273997316657128775472323121197998188372777480958443224481989971851206161069671854213169693751391324529605972324702981255463049328144931415912166973101144671629571290713385096789287021499062376791078428713462399165130321437810240297112277013452068903400056686234999185991756344861815680355523934067015635468877984258437670091825305856535202834713577121412220461960882819896646527684126342688641474635928268818084577263025656144361708835234725282154805625598302606679749830643700858553541359818858242699036317794022882554730503626283037215747177280911469915537343561154204845887079819818408407972831476397862305548584545179405072464716675015290763136879529163874617101833419754996913393668491471691311732384278483796973836393075894566515455703695541227881333874516690284584741696435020630157185459142214668268690565145960337561706971431128925915425963033232452152935801828881809233303909415157379926309412366331372477925901392833386921821125413648815706614176946729527160257071464048818963990501369430572687854542573674553219378036212306216473135740954906497463352164171443921489893562058827353623830771569026672762879407760722344143615216108726354479585971999209443451865514413254041621665698568172671374690393833283666649223918267986386502983833280077051275954437309010927807343489972650234797982750663483840328461242711494357567698649301333031283513325665450431824438204311968171184990127444556123354852697907546630712454230806221775692488858756953030275336452341245317007420048606713658631696214158540571482059617117925612734838598518393138952542096105864851438845664530989761078423102457223354546403772402972945817668715034753756362176309550918840396384882552401922924545598950608230531105507133568099350720766487100249191242362111124039064306010893594301239735845739518148252639477451722577680787249224463847539798714841548952771003808622983824006535480316262355341581501825034069672487187093633285727463750756031144963484689107890400627959172870620306248974783213836523243738217360262095877561845434284220475554236128053812893866446872262107173698463647084761890932250798461522765130345472114955567770593576977281017655471105008732287046437409759698712344236420656729048228294183984754810041552892878202923707811881214192841972082565107730678415764590802493555002195109074065485791481989638271687675352030105770166808114162257847112480257936085955398747239913604278933957374237624419656888110686779457687851360942617558599983412620903693547379214172322300209910495850433295402952860981777256564863105353275997140437842051263979610322592002022408429070236918913372034332671893122382364684954510654637822855902118848086608398549121543278197888360679371756553506603733301823798490480830151424782645456905040463462636410482611523823075401539202094801562938912815376763333591192258826715276987734087502863442168619477516656452293019160395128284777435190976640091572439439510678146750095397578449916697397858146065864269549427175657519174038611586472821719729319553751165195697771822640703587744209086527365608605231137632986441043188689107578726467255094553742185377804588634178000673970109784291705953900003175400976561574310040838476581207176707584692072340496644084246780003310331837744926021645524762290751143083399957490718415436121966435140735030844931438027566909533467807229740184024720462938056420261078705747710793289019220394726109828459541748575738050105359828561116563445024993752860044686259827565035194028508643810816657419610666353041259459126466527276161855560523829975255948503851480775530737652384901945275816936986989344176348337463488000366359172502779162649243649568484432984884817436592011260917731644810988140269839881822822115549328908879566366960928873436540956953828206231941234034864611493467200074198649812200866386310637163959198748212952180215122117700999503040417289555098011334041520161058260640060413201731258461604086457608406343205043156890305358063464832056963161174649562716790083849884273726694693906341789891195786266075473600480053763525846244292405929176324966061302719908421791745792944393912924315844330173834775484896196876854514700340189720747545090959428625936643175695464789842403229399914409833905083491857873486954779175834659614447048638460236181687759013801805256828098046637946192291789087883238610008829582103695060167143705984265738764897494469231417624116546437429648155762594745334960426613828827363034209225029236706147212104662144515140468623650435018227139212282417342866697567544770495407356103882353124998890221990363174232535641118806711483787308839483347874078329936431967377429574398682487153172902248587925691698250756108329479265970738965181538265680979100723227265835344768728889174836973895712874010607278872836462532813116332897414077803155994188958377241937009767861273194804038467206180413303983809546187441147574908968253402119498897410063837468406135199157520991471726192716165388715395053726882277603437556768826419763607388752631721625352054020147018329229511180404781317745332371570523376239457233199208744590250510437713324914211125760623693754186678944528120533547317981763688797623031415563959304187315307573156988153147317037864892121980054350831067965882049788172415550460283609222943438996207577697216225003721564950784017713684615211979332827031321322614976812620908868486054991586325294154044754035113342552425759375603585910700496282792540388511336421294061765228284065368754195936841984301633945375351740061103471866562134496004258936812086752736131180456815005426375445254032103098966349884413004165450579141809366061812860976858404318305660458017370035020459938334472298888702721859779859685537297230838818594812384499839106083148330277592891302550785336085723445729624030547001105968659276508725755559833404399006401174268029883119436828952545175387477857602191141675887947819871247472800014859760809212760409089416023515657458583874586447609461241112402620965351864743613551954806899773487854039894595983902469802640421657963383359956041523957399379809201839847721747593730006360303743872748291727859028432466578890015547511139142932781257706896876982523536849200033441403052747948352768303618240772674871308677218262959631789500122219694194505441756770119639294612969758817892051429365113061414907668652971091662285308902348739897140177610805706854628427687182564297976031776638327057200262428893024685399793459864102774767636261061105858741088187514605763225042710103126121885827958828851849238579663277845018321942431118573187486337729863278290568218819450892316145869558259563857529399281766626042610922103086600678226495024964220291021046016849115426170313045098260212729136397397808178890004683429130315992590382282694123584376236718436243764869124484268940340527485763517267688204505903979218124437145206444281714434135074711808260223248504547964990712346599966255203088994177193337509073110104460113405665026572743664881941378790267210320567535518128826380201149919962725456845689297562581535411394450539106050743183910229995168795180149311242378233653511482535819179634176995695597211442620876381753072649412462828142619522124212828021127640298163698607218924151587560346461740022989384279770238701586877676904809832253153600290578074137061523188536302574543835101878529952811327467799772313756500075561202816830121609751327161316063722844984327147410831047953304266167500629254664897605413106003426151919454166971440231715627062068426610628015415325540717525831332247116236798844680302522553912603776758048169052845741114500224774808414061820174053382002990615049146071342602946051560760917507706169705422722888956520254272552462044171139610631517766340901718348708929449150176639364325550119062994581138106515170159747664849768645792748172448814630030450490079853463504377194066773972689323159826636690505776703867137294637728939196832966799027681436001784914531261573874528924057394981011098715723450929937108517343357456855273838427725734522550133659253120828777572858861608831039237972111399940229387251567280789487021822471142606790362345405437670497383179212141440785820704699034101539540755891012930959419255601679344223740598128867856381727978780590523447308390049413591795777906972179809389544056843326889523475995493516029099942614772356939397569481603094939220048304845044891063124852670821443435241481283801044561603605900186449643026360562274801223568337964790143610043580460940345445459478680986219058675003665850565019081093512461402957552285084889038489358817709045400422042308446406256190091222108822018613534488746779529058601491420050927874512077445873347996811012108312687933042247250594550846915385774264722601955511669216783206585652910485447395579076419413379726705061092061222066502316431363909450614686900016856999726428554766651623095409633055335269479703894100668210443795267530347675687563837563677950632777136511978836396756195207008365801343475380613167425479513079731497666665023455012956416022904548729808642160700255520623366136607914930218064755424163554656120163865422061880920186495626568257440326839137987158835868747192603617672461701919742543707020664950939477099167469050891675536018253708613946582116967813595612530329658491849530684579247999608337701706978196440218298791605052217564233930779845095545534544220286531699584344593512663523723917416176344164793218404422757030261025076114779143821291525521936665781669932616973409756189945839178032240489575175627450832449610637676771519435864794876814573770358786813395189394809843352590136875695337721931077714888417031061080965581479722698557701709894753263224901569945770461175913145765615822573050430028101006721284147433638371882365787447295908353633253237111693134546713079206738141549845740323252229215192845439338689239513579035902200285135970663709517268944606141328163113542711094711753924690280549830202263676493127913771092566227723806545748459932146876147024635689381887460037837116497782578950769773871946332336732318385254427486934713261646513396075758503629290881055599222591574627473332114460176836344130084309974162918360998204154269208604154196391555050773584670879417077515194012571887946313042986632518933936090929386398544202287607862513658211999354550897059386610458461378485380201388756184807551955787413756360027701406137438263725624221083666582219157186474973195866260036558264202468075903392797202875219101878015723990735739986144832839665568420774688936086407439030040936763219451926888538377986848750603394348813997322466751994236136991686885590202372941335337991403257162867659417393797017799495961732563849040791723054105669208578865554990599278130950468767083764961692847155504747670260825312896128223539350937152525653957900949405472586837757580523849115917704657872482102036856205498830589644133298610019365193447761155946323913064331946106045198343631341852870128742135788720909904777175896821844512140770408003676996049176737455947919991093297848273254344053907616713028348843253734103063375782065913507181361204602594213553968997408948963379525018943734687336749815224828593087598759631398129322675683781042666923446996105405621952276312932944208905649543515286487940220667604084889159364710051312347760316199742127464705077418247493571849484481670045482665145752791605301468847778505226727521353843882532621180509884433117652948586876762576860409270830654999026426516120819793967070784007920361788475955642361487337773643580617753946938892128010301995593226365809427207191526768561136944741639103261333922585923342083945517891313191002242800523163547877403358443253140273704452478177612724768659103459522704120496232525116396499814860709842045778975363541893861060319516149855963921927893814224802157588725072840140969633701806195542793752948777566747608795228394122238063190127608591047511434641542422041577942642694921585419408963800195333995706708970801917759757972009461593611980214915383105698203313135973708465292497235448837864234195186258549963488492180376085542922033258295236018751873463183515767262521324688149171973243416793496556369657404663936707307308264927806540167067508447906075099002928586657093234389742155252518886725604049424924313763126962453755345874145734286953411324203025805770697023653665877763050188917593248585308127411633711785008804869470745130948919206148404092488071882483227654368713943907040997795598203504966126068678688534555534151794483590419012857165454374187618495144926121882293692473045153835541311960554677764088910566301473309630369147411178599913046924932935788876045100982812528013639896214678282305016548092816111775212887694308972980663319265881498988154238764312865029685770534026543923614777641554364044703990926462167932599032163367461199490477780525055536141690854127642810633759501761327086808735282308399601352385143841779360107738402654912938978326203483518289653018830904569450890963181709011520424782226078002176545966394858071865408529188552789243617730370723693053311233617131463839745517710436785805994063752261924200518632825708944492749787055113805341549744464893598608311479817541563162391623342557772873706088808042469792728249719045128633156037994376765163462774282460560152591299666432636667900673559637733703383050450360120948417178165309487264892949345149502345614924418319876990994799335796711855668896719743883230117848888677113108226237867847567175874466687609219877829673452236148385665323118084079478384799003065868737023693527281499340727960221857542643020328917234760925147006716178060313400502423587696197505689528894354026768449095316953536179202859968102275945673717830751338356002581614641531474997779858274361487439287650539622510292386266478225716933789504498051240325850262321177204423076684407522567790939442270897010106971838781122870742637940403135431883103770731371127408113099753562383800791901405004223320660915215346409398820132918112737079393627616450867949999352852360942415474947934931523680827531756744469214468646199784899141586533543735177319340216807320295490412100334902806058231231303815170383407136046612940927475859952628131986967094500776873587694526028589039633480729454863571587101058265218680411688470379620294786215414604308808140159953286456447973309032573080942950085588513967047687358185839059129788090137255458930976822109867491602334378623029913222607380382657198872540981827040614130808426748457868487877718799701294575771724095836137468237093322296498871814332904705784542820085864034796074553720034568785689427229468344070102977172055572686541432244762582225151331381403651395818750184732048107182099056865197170725134975414719399960641934122634910808089303338577033216181887715329068740284607733325281235930671233535976929286944855091392257863009774330596487769666349460167194894387939324332644822963761365570715725331011309609436453758110405356267937393520784083242105078611798594480455063317523507941313318126496954535927835413068792079290728910292657158998699114246304154855388576325516975216336401565608241808686269873339566156396124558509291347895839593332589416123107663424618561947133490597198987160615435752924000180903160419751132323824910758899627579968086621677838984870254600785053680801893390769475933576178014304761383512599957768402301922742230169302082337774120076510353405438332913209960945048534968718683556555768172184442149095728643918330487496787387239305228660951136687006739107405657672664427118857858240496562399547115961336568162476403288616333546791878665752191576458136322866046004841172589774176988489276430956175759777879327500855187608224076216906968374081407020398927365669564602244783943068496171941326194695667497710533706531413277997754738760277512777754973054856004806414629539366795791893660683183532817964641198746801849735685362407342349184499360993592627541428556233353995916449292052232459617952373418085993707033679152313963788827529457435811990861134452981677704811907965985068775193309614458505370701453818827557499440998774319055778782654956254837292058441877965231851277052722487388752858199524931024711406948113305422247988635860550646043969697479538667601715923479915739650170693484985364673946352309774158617629094599610457070857901975182944768746689913995348021382562297814144437451060899920859526317932645462455586992432171239978095160571146014815659775908884228435513713814069639659256188411649149771433463231962189099416914715658974125635561165377709605964750378517710181471803854618260998092266567034409229951735650763936416287414708771058914101147165573800889101901570831816249321278383563617962394068697097163095600879075901801915555804582841764256153601031986409924080772820994658198366787586821677807494345617787756558504611435027738622943195062989795031345423034441711520649057134721550231563767153419176566643286780418802197711533829063831787037449177919083274351972621808107649415582486784227477895234077657005000887340463312225875546206296645368562401132456397842513801666289077803415273483056012300111628481267673136576724714579713301418676018284977163344694408013568196012632283410002702907844856779537890361135974114080058783445106486500607756416817643395113658069446977891249967208351654033129761193021084146330375070616005535673053203256318572448532673749009204337317836790194553289899608719776361485024289312857403511506590826621354800621743677596192107401754302795593265456615333300250322989495880506840853291569576746504757265191642751269910989480670909332228435715369006340101258852824393564395371848521991364327230785048068223284859944373832466187583959435524802257110593594928957379540923898634377025132296627282572563132504434081057671540755230341351393154646762653668540509760630989146359636022819830333669524594247316662716448511090401734853375504393203516567378675334979107659866135243760608507766273141570243367235588993625792367527918911042738485328336837668546290408252184630928519826394138012882034456177023694253624792258295641310704574601643227822287554791188532076671771507823245523372824183113654933942129490390244707435575615040095558945692050453795721281261759538686501091785503323194870676403333676556235412958768458364571055236985827718552739301936760719723506574404604217130442845457233726448550416338586920360665526278520750573869836178073928064227941165637898950622067356048081884423429760153418566795959900152159468333413142752509221103702158217437307533078610527870387499737824988094514053657467771950897265368012783985687954994144378656558482537767360027431846863323133426825660879827485739879885334738099720686651416970738284736973433295482986166101799188712480929431891835302733703766443884848407609616613246196374001370905994229325761768668773328696959056191505750027184010700769822593894259451495296707587097072771656994754759647294180314758419668832646339492782063518946199100981474868138706888990170652596099967449931116316829755213827977275510768761299745582688867888744155126022370567794935780104757423343341418690940716834821156838877735361528052014966193319945906032880581967458856098935066836792097465101591899577113250343290983406043607704516772246216287529380424334477041965860711307372662288681098242049071812444803319964712371943611017620814110180494703013372399495571953470030321235246120417782743395623548938975492745854612953917465582820778511796338893026755268499936406403326335960202748386657267854400719535225104160779480101649747828199885829444806871950939769539066382935574306779389119038649712440395825228086095252195386872368258758960465950406804282464783273596026330795575702855536103886962034474860042294734096562079750522051275268993725119201406245267725244791473795483564398321126361155692409295947990814605310040803378689992305812267835577728502500650167732089138479022280846317697226555218565657807832659788666638361208294708988533579994176317932902233321851493348967693501320914165302968327005950999755632650993376111376276358029945674152042616443652837500999042967128112114578878301353112032251866497762322113777131363153985800576928481985674372210641234525407343157898877001458624853601347523059748021909525743636423528100474740337852475012566698719000813755268381234946895866009098414592066906349274816444004195551115171284118130552290200377101537229362450848959090796821185280370360292764945520782975479816195716252716499492898487562941004003140407963281965664252313537466658729164533966361123318075137395004491477135603339811020930982736624746383547789907512416057546858529571574442814404707905392578942438761976422082989262765887309593275804416288386299718040376041134393853221851740559173812992312260378624398379259596130087390539390146269430299943983898828504390816984790148679389405379547807925736557910591447146204817954720464674520293235204610825163221632175431088671279100356375196840091861294598234805756385779626427398159198551095258287358858079641575314130100265619822855621815690087140509635703435839161011811504325213898219950552612777743483496356109063342480409542626158574137717674919506127849410213983291714311205356088452152928638088129740459227268339823425022554960195699658002805541584294111334955548464138215996157710196700071898542851537064113811083304441193263029031589324311534518633257294639204229343255542416879184759426585742427887337752542392798874753197029165292816074722997362008065279972831327763604986325261083281967289570404689074461564534603055204078751028715420018068940154832518761719478698396978056853206996037450996001183968850792092898272595027623922507482681708131815670684411842851183539454920280951593462984593716512841447362414178302578981750383492399342253991340633984530117817041045428580450095650363882392298129066305584491884284425671132700029561983057634363676229568321342167702706160312233711480502732171841622535024161035874304877650667248653717332206572264311989166147344188094115723800010835073775013142917049911745148234827782999414489504106222005497903101986351150258431006938140793458728765597211611263050698351504351026361992004833099223350616669412691464547995060686942576909626980848784085798326393830918298694376067720232542521085025126975335185214826546898147410125739749374348022468611224028337675394844158432250453278994108416725859116892730529461486574044294933732152292081969092347268119681249709550262432444685873924585562044882916009720701013558680172374412274272292316269710167825534345392130869197942691392696865322274129804040618324217180218329835837142441955797199314238748534611205580216136029698678253574409993071777952254311872571226995355723730126134551182231598735030808176411735537290697647672204046729277355977854986195507539119704108469450654797432831726922291212614360141213770395557130539624017130067522487802545097507281430584455828325411464689358211447103485183967412529397714493899409665242779401610181373352472491328535574956871977534333490575141522671016313029977866424113505791289891252259580983367296067492323565489250699035934762628671867859384901213416097797673972331152574234597184334118389561487179066911694344612533880099285778673112187488075432347951981221932108117468133009890543902291050555593462340289311463008590334876255454434170900209384499114222716658431974863580880381481169268915544626006748594191558514748028401423969352362725215172423659201352972714595332048498738723368821842541791257253525855103932133147628027424327672123289892064068492156608480095721318520895182850141279690584940904773407570013874640312271443111795064406669670655717580758277371546162479657746862733890277502135784234450816108712969740508006466944316975604683046868471630131582702033779283824253282421992703726861473759169647361974574645897699870377598554783807662014880422337255097912312730132163428260274956000579580773814905665344013919668839449244866660859077354359184950748344875071654256440730665101996902071559982180816890371751361525601323659219201634988031357409512540491032867283248791937470177264951543175301165281921769004463685365364209953310198011059808696806588420682929059140859264899870090518950352644288704660095367292673174273465612875286178530361101551993246150562804753011201677113915428907431861328430020648901383809866753059343144201595158617275977554977279534212895967545620240867768802641092511306106227751517499462627213842511046360926391274786286170616360433802726781584625959913404549913322669697666147797729577976622947332957094508379738123325200409197152925416170039504344302956343768029566204654690305494133379072753887133320249408066230546131055163693605386226610197147176479456755939297145851723497136313178819833800763250782266525605751128116453269170295295985000513904280343891999666087518632774082928212511589170227116288844821966086420511669933900331725875627175223767059778051804608314303553237849848431326636340107532314713679465165727916016292418904105514871415755658132179738711378041934502647874035105935757170872292113219026188801342773844779317363618899751417096647919520791117137654777140532191385878955835142428199121177273801676531938570906021535295220870411992195765314899113195259379899340796135572820263225312058955317967743716272739716519257210805215210706779687470105634685241043253530452744976331138892263332225763671557662431495962181496490493057072841090950723391074816141980617514232208595105301429363040907131088570016118069740170071807739956212836760741170873052935053102560641204376790576308063835977013406217421168730588786058109580915275166835079696346760684342332026462704585534466047125261833836055698207650367696717302743044766218465258129342623728932149431598284669306443283153599504533848027616790935896996331596736980880075018485525858009002425429463729658340692913289341696379171923254227056689885341721970582153697094680068447002459176276030154049195639471789308558634225592295105959355606613566350031457519061580193815264138821070438259075249294108459322215181597587454198674848046790350214487223757051915402336392470423398790697286210227903785517306220733056357464337591979600127151288661259340951466271223682818809955488286638687011575423202631285716386725419783460498991845405884857389219650980444399094380692607657691213095052750879481216504280763962210739643412436228352350367590822160574521327150198165089015873022230282749771159563525649980766471142019471545239013821105368562083052033297700442291294069967852342847589391342578547065988220712791362749189136457554319177884623498185359416130742763171534566816637458954941903167267797982211201786379970687817699331110901577449771724437847529462362572387150798353586458121930224931212216318406161668624841711183252790633040677065109015771368785361090888026292433923402427212859893302165805293078560578603136580059144004324895798123520492193978169664247530598612019763539734277187563470031516237399724535570834940549962878411913917531943787219736845994590863653735587709414345877294034865217416667641076549274989044815053458294105722982636568862941569352939997350064145771195899347782571510802831448046278202597920937129979856553239160622229313474442206652653361844360810695816081106133307825773638797044992077678264810443945010112144172064311843139688624631456356249438580638465178692709124975086438925763099485336126439186410493404708628457050386446122310038518167264372134951473556997425017758221177344931290802584003243101944698776931345515976565732940663354869615722728020204273506644159291211283881421009439112077044996927518595754817792501786585570460388925252715561383135671703086253382395515998315918394448191968840284303108621848005038233547102944160932925893586415015954510316664179429464851403132474297675216214538247301598223670220052625989674473608110006482763551685963927310268129486773164454732905379617375177223311888584009211587819547351159099844649007643121992057296083045856678946321246260433921380692776505951655018230808231229173206706131698326323860152499213399918687316914043627919344796359506274447784829572905975793629330984732692203266286861646746720429462925274879550204134363107121317864113295953265306117439686307257437080010634429308327985199090136140190846663560114511434717944834139882138875044712399541667348763917891123985218043123437602980981743039754539198183358348734474814141722518665997770479630277201266579260789505314260409215925511713938712633245390784369038552233341254599573276048550588442437842866516485572243909596954276256237704650937936381931973071958798358178274739912054065102272059128240883667820076861201527045493312538993083898147594310677490967940644138510592850752333520770443506493537600546576337691179761299864112783645532303511341123543417210574150100403434988023107346587893404855403199229439632431850212342878882760536199019429798211434742365384869832877732617474546323999046675779640343112197752767381559347311461774187234541720967311462042117225240667296233427466130528325922909490639174558886900114503986843900818884613042466303499960219767649615606875518544656135066655258558815358567899939791640926696274989914169713316302427973960276829022866977102986360247723030610319412552924665956470848240564264525445494963281840116153451951957934139366235095412429988359611217362725555637032604929309664855808458360876613083179499315609456476133669170504222042257599975142269352675118648618355049737879533418302979741092059688334102819339951294772186153886220140817204558300093299714623810288654592421148748278115284832142849513950500123343299236959671365378875315591746046862003243982421934372260994399430300107733189643308404785148099910553608222582847421767755638300035206621332421298400256642370185550804567450404653579270900334443898347924199342600571811939856792150354631000753376903787640364872234561018476491925512384544883410527389764706864825346849154625034686148446072761546051542721499344788878749185269830158633873084379297871511791663442444794631609491666623433515642183932854854453122869022087262505120371083067565636180427591194042109677206507866748956750529993919332208986680303265487585917094521612213882538255352082885387173273776809977936930841735434080223137242652718459611029904510552693505436609488613592896612689493405124271857928093276748678464832390667786018617576263614219377308127448570804066651974201419183408530922151274350963145944887773151703466151412511426418639969233805944165536662229413600635888437925382813964367742569835491330799690320468457832710207921151689751844186798090643903712824102246224675615479155186106113387795637851700388222914505871332944045518068097998927618308991159007405946599542576610458895165061951976365019219485974997690834301408379745997744403551198113805240586656638011792918864885397791534332680986464799893825565750838317070240575937539412409749122789374600724484541852036358288304952247305045740821814262145493481901792072747474271055388864983401865043331571650640616108421166633647078124580420153986483772895905018640053261782346113369242351306099276256002718574390368071030681515032749870316240050615019723537411559256881690953848665592545980081597158324766849263361776473490344964742216405871551253736407589528506261583206890434400602434095055308001976341443715372243470245549168633641808409347231005300712999413136688677213381992031465965466114153635078036111518668836910155184754311551553762261159175880726218553971325625681834184979149880499297392317959957163286881108766130022884673482166044369987425790318669915076010645919240559310939093215516943183026195855892725685068964076321260275489506289579017762064388677195981187963988877077058317205006671403379198610521599481866579043488683490711510336169421171003607957156391068339402118918702273395713511295720372720735833658754502772999252757463437915879156661107859009283867351189947514153328752086349091513047520164070844087158840407967568795302424202945561780443046644936310606757720250921223720841802679605965309633601266909020690887430466297067922596014618700479732760231328403037931370573598501178925202883721995622497979476920593350594184010611350564847370163447383232823754495457215773085687992617255080507636905078022331504045982188696146936976579946036973736262505850145750870441881684782754044713789366148719177995391837907927712277027874626581941747040255313409003608876288135627997419282691922913181371225842828956942200278163903514530500150687754848179094961690073740359668763331637466648210080210471132241681959146425562103926792432500952725994004571311967129755408360635133835910924253540624975915940826797471381835782829866320424695409688144449360413501219206693272339161366459308645885122467886179455331783901255030916646600510579741877978735063565899794817346526245714585741297210185866014597256323876294959552639517167011755862596769702567982594908717271238431700995937708957972182118030230352167731677617905334118465106252346370560497660996297363690356156659603109091144723463154521496150069568149984762181151253977147853938707170013781280217622579111889500393955103815616774423868103503408856949938093817377593357375400811397732041368934542181242942697494127436459304394150992303639888804307516063324817319597152018049530597355519789806440962054005969206006334566960844810551799083483407630403290185662328765549213088956688226154829630408391309248749347616152963643327842017712173538982685493369250496813380264811951209543987547543623758945765519552520469393182977243001998533947073704342264359530764471750670595712670934579886970450594790894552918491684901013502024719172398972945782510606076190550704858220493724003261467469504179088890239976173765365211135270223584719885391729938707376537102315876279877756602954998695379158527000562561966905711090101596694939268049875606281328874710847966559727986916394899124796337429414944036358073693325443878420734961229608025079168612744547832231080662249973704428725506892986230125182432387613014317161603381372010202274987454022863775579363701353732566952427160369070998635334550443428634866874181339747430879123034541801952508259974393006602176493612032088397439220367390571213871787193011685083907130374519641006667064843836741597395462214075074856437827625632516561843993976016487661674882326308537029876298658409971129757783471767336314351384387684517453407927732462323519077984189749218875253801271692797945519565226751114860409698078202509054142939771434055560017144689041020631938061847461201430937210226676963527240816219381799605859786398115644108082734255714709831907816474556628888429867975578266512033643986752762213332392085457647595563262545951414983207795998513494797135980212141880984202382514540485533044694137521290441804428971988356449430422930751965282826729424273553601251166192513435100634141384735559680157481910787200774082788376151360084573156329915544140689155980907180280422736935621003743200026605203177914499232318025285971888202416386683144119042708706686842602409594820983344562015905022129646257383814545354854227452413013648563723617104752439540593834745905277911897409265692553133524037209198643231934373491133728516280158542114347122360343201635568702147409604312986159494288695241596434923230558465638325825890322698934045727931025895232058633062232282226597299347155404197252280577831481122381489997428081009163539237278880651962522403948530017583740337881582264325283210787877562385771282705441050655080250288325286368761088226431392048126517044726941212070251368461396203646960895366595544092533350585978174669213463585229852184996819351127011054157963430051556206032827184662432010056714277833619890780528577182507564522167865847876578511318749219831333236213959407807636781948504560881421459226107025323228939733502547295079167790515571727149941234163227968934207504478187120381830074284131243099456379441920566883334275909469862048890060557762802201982607688105183634378354383433938689953571070375377386389262318332089884251698933383232728662479949365757913848558917609390689352133174019250719506155881888516245121896724884335052722938516077609859330473402539811832860326986770275779926623063864385760766928770468571186846039603876166202849583799602516884731341793682667724167741695270990920387537124831966229732269604392061066121059817652440550116046107998318413479887540043326938560761329196741113548591187088035928566339093047015830321357449824557767839508439767849766363851861408910881328580257600495326280683753809329017931571989892957845554374435892350099906991371700368381375261405875060834254080116242461739740894615452225627798252309237882968626075956686092236168238631275880931382182430426247690017144543412793470643363641013850431567982707353712649094914399005726107919453795096030640122430395030328683322318390096904544522858705268069390496256342795557213804319153384426589024927093991520801715196350070448886589404737003185457519876479921378887770960139807069100696703279276438534174474294912386398858924460958082080542002899606832772130025178344982457245146749817729773450861430139688707480643157537068440663261879417435974256866814055135699199060072240601802370708116374941762164088643096451536563478147203702641295014217339666690845967015893989506703724890029767015506780257726365689800900576612050079470478735091678698797643674185373853091966972234597169021155316404086133135489912532756605162217452915470305315217299981073965685372659250157310195939014912281317410458843091677225144650781920496502324355539373201371624028005213948597079697043742248938768325201981197181061610214747138270425015749738936764172441462431986438136315141187459502777240543575505107687685763509034371866055082570706796479372776992181251705152663052117753722419234410937745034349744599413916759343233538049019860049378699135734833949269030940559100601779848937453916779443295654385497899216385728782391578982244354893697818921428867550678183481440429561406312720804097455951632789920909596785431305884470007100639319924267377972724838158012414140715430702806874614633458015120925318441293304379758555971004970494896447991626193592529990503125167764118025769102485786208028861626594745843082981632258958321801492062926270064133065596442437230794674122544366428124406095729758152511813465030771680100116130984123812700701859007530988728968793560706461896097289934568913671314027561350032923050833149057067003982887843000802801346970950443323032410814601844012739470606411205339732128577435010983890966361361836884002877600563720991026667035537160926591678016242427625071458258089373550716317502314670400437443486853767093832020954376513756049418922660611210253534233378338646260879277210797107558686025882190838998685841523835144841858503096103710460018693685945448592845725160636790674503364118713803960493328389393648883218623185873136206665856847406724588755713319788962071816313682635973973761499549211119880885060226406417420884961085246176686624889691765735112287351844879935827133683896332865299688081245647779170996069229015556328376686482250605786026045857471802177097625934789872540418973817866707376444307291837425492776270602074234425630899690217930352341722241551804035381905225242741032342652181471789417545073806556758684363536435536691063361796220630764049775250836806424956479988700800062038010133646578491779006522486163026344516138717197001684918119328351871109010678741645360380138332534288766785678820300534842918556916969851236061217085484945525692834517199841678697357323415213326383523047185325714325489805862469271232984168299638590030394894351512443464902896548498874510006921075549277741819362129374504747065689968174869518887327494956297858258228372085828932056969526663045365665900952819850137987346579254539151515666454978919449753093246809359776958773897848357738863867353589871028825065934437574229198352555142979067661981943821677666405579596494206770789014836676826954602293936492588741021789915680792726797125964397340044014742784155838091510500714710836139565414882201367955577464727743947054441383783156151237368964705055704471223121546199802821313838492672111211774904375922576976576623086813927995136817306695951201696221991587659534095871947456327701975008324073543500230050826612793494684160233655610593766119584011497755092824253005094538973876211279311344249034711535358706394294163771028718644789510229000515164672660653403303849751468388703128025819676282457837412632703257936625198479186741760489158509087366905355289293507862859862194318741547320466951375519297348946726772622893167795148802295709780574275095610212693530087058183764057221346238881399900521128928561087718418618688036273347292760616401491143867485926457314233573094374861762693181386196741745707280293088484224321563351234668107306661886900790653192296000582188893412813818602032542945915926249068035379567705212190561468873959020920643481103103460979938510003685446046368256067883512684649851994920229477452623753046384527144736100046932034754459018385007889577145597598246963253822297666236497350313648591182578381018589984276618859306935654311392636581789679082930118955395296959703792543537809428431761551296031232232136887601399429657036924798586718758568204497927136405313888023770106738668972581802608629012846286189402022462017172688454989235821355832024680363227374875413784831477686130946880621456761407797293166543117775823954514723434911077413490786808521707500771586467814143361570261008514885057792327620809774235375460491412606740878455672819452495532652901510385166587590349821644844810435363987528228371472468418385177249260468008440874267631487691471929456312947755182030252022789031438653545113206699495638348304944386292209486586535361060531602649789461152341059753046714975718669430535538073296706740279657950168090448993871080957658801762512909236191266520279183690747881812205543668673443347526055981886354846554006790188798151069163943666948021547323777647580970893792228888583918672486395817521926903900230545157441047812746241228756830467235901866207617401267225749076163232152384090924059215446213965360666039551532796456225928762540513551389381155039547665891627944832893189768481252986343986583599848154328290082961117875994231437691462672164084512359436576862941656192725156545196825100841948030910599288096077518197709590586020991391055061886307729730508579953397212016046524794184187183528450437213564243192994499704709678101705619773874520391830199017463745036049044118419391807544959472204457823783242410937199274492936525607543237065170507098466865228363858588830716217100732365690119419574541404875201368182804052882646812414778335790219134576804348222521922160744382887133742607909409454528744390529500046902295974315879658729339016939783758906781936469599688931030544804967925840715741001921548386583347145782624343107985726147299589468202172657667075831708354739060265111131725953303444787838539716749841790146372828216679680725477863482019021835337703105013055907274708362297280841345112484376203063321728023449934850266283644826588294623718973414126455121415270462187860261904839002553339085467157366276517228303614957022057596892357667131432502022418335143900231367253223048615537864649924311441320062743560310213682724688567994184793627813279637758297102702258856520036929036571508665297020240698745775167663287425522537435610369959150278146154822306011066085470309188173265843772013281152431249777028022434607150817042497820025508110132207709166966802329917286309689998274355486361607642873435430861249824315552922894410008653898182941845788124607986662148278724833802603197094810629895248690600925878354409125235661429926041751463855464734777003378474745487905267519076346535356687304394466767455130182712539292328463044339057135064327548403830768659643415480188103215100173029135962209473385507347261973086024439190695655962367956366301834985869811512740247037002081458994989402818033922858094486556191296024565998044212602221648970947988715915167604385873115752213732059053313319280361783888677462010942577809925091939055165759640163116555873643978699044695502072548755283927304316643263610786818654422119614192898227321956950301862526058052132014844905163788661830591906673058839193265838199756356941840087910362256844231233935218034768135802410032220099460693776965996129180114850452651430323854768839744330535927364139291746002358207793280161607449730035000151498251139022272610100817099086842562836110698824034160106948778173908569737042279521390486776638307988087079660766095561425745799496695206919184612132458053963114514523920438367228251461234347846946986111876852906514413664458592257959088132449283612620224535183685658933279305437787260503284077043873404448627671550429110972401729183912967740546447516719696634170250199805967098696642760013817955863437769253034247946734130017731229460415322380075301044161500067786372486551842236921114865470926175113670956268049943114879414896823473793152184453775427332574454633802396046363134284796886381622774935403345981077458689761878831775045745613869910597329476882238769983087038431826034067281065607391560343358438687754356411361000545906309400237868952534361897556030128360496015625234637924344444458048044326520206891736633178838743584837717571088825860104354987423372654205458598433657499630189076393308817986507175476536708812617078509976976795058436214374351816131719898878448120881748305277058981958589266631866010322385474121854724189679745119642950317366768558908376958372813236637429603595850377482271957054571062639573794973049783375808194075653146058892032986020079020751719988927637751347009615695011580144209167536919274066276394302489039626373284096516364126987671169924444593012677524084021146820280141594355210752742298772482285119217036743381366078973877491646784323384069408247785961628848226429815280769386580763026478251563139761487552457165838634883589971050479450065881015177567602646334265636343943210819240514754517278765925747581071300014021637736526818469034387697438375096433011227707732363518890240449423148382212942016318442911760265937799112637753275767374105653746891429958822470780796905805509580423627462048166921900015247969440055086930505082730834065121271953260207197446380468037851346043434211558252205440879178775430772530490721674382095692523351017320945862424897684896037048202307178400960041401083581258732864419028083946512266720464725233931714607965035842939965254214149714521533127164378700481857871888856359768398278875436056458263264989122776007942358989700248501069848490365369293041323826230495109514610253433972119321629526060967561660968012750764296745518841424925770332279458174114717885629181307096559373910992782034324117831383183130718242813532506860691694733881309028372197897972478809404821731419219072095919953529784681658183909779958337511190904981535867575869142794672984980079430774901052201629795767366508987177743538101812631476435066028158155222754483130799182905484896991405397235299708186288217558435900762934321221149677257323681081717261229182334062339474717664965189047609380783292117013052256998348929615774392590741687148686368888279276168124795637142568087284228018308411860150303221457091465108226107644452585575781736790463985426844478316193176495562557754596979451183218122842618262693574657937012604319396177509845804856822277184924107278531724872463632292694935103906357479487321438756742233413061287853584216071769252335462729138130299557966513023623922848159398654947687324730016125018187906135593935501084820524348425377466029144862663726517664146123592476209263100453196460208783123455558043214338492011532988357625694799434189605292634416928452337961581617973347574154510361372106629519856772920803198641029014924519660273477331116421225200764532439747515969759389162030881037203537091523991179947904921602023708187362708728549168744997680308817336666700574831463958100524359705831462330712975661485562425314395756562217278044664195183013307471177387125400296896951815571321179189664192594437251932330676195396219394501221913908988487525586859837847795871241950135758830559735425379596377279654963523685808682496283819240252027237113465852648099871696683999920233101032230912400164961679908353896941888107239232687286435096370810001418550738258521816125607891786640428658689222956981738062150477009196660889858686910338623320003040632166699259428113133519074787099097645145064115444907748771496823972947342775574861772862582917450405976911138958320116174109837363758988276112846966643042463606718433156574340369989545640051715953323284879469115731248971816633747587161445084454014483711705482810590461397047811077089015902284804581146802434206790221437375142503831317517855664389871766418906487874142409417401610837808921495630546574133082415393587695227859969526002233291714630056613185621789400952305290280726978548757176526426665393405688001516282319712996456910689751926401897984462724465147066241672257667218796928894419970973379775570884432381505092124934832195668682449047809694548740804906915324889218056445609139539021204626546796547920845399049836813141710360089435310853066571781281673388249391444379405809568857677839564013520456610769521632241604306195409815771736118143942121422725330629520022964344864750669797023021701866102247711590127427108102014866677620781636387128970838476158134380382608582551446673946484924604066658537942307078305150814101825717292111446761218755057113632570283584424085370113440386409804448077556484546438735831149879050185537525615730300420758994742077370449810184250912685634722250639644725316482407534933787992766163695054950206297250934765026680512417326516546859127380265498958097799506755999585853889307594356591094571982769859139761772047480983486019722679591598020409686894670571026759225771203307244847597895533288036656377412615822329911081643452816570488270105992813323165264012718439499915950453946089263679088182645751581228772930021458916506501610345657660098345386804658051608433039627027360358911721081986090737440009100615609411163710084435867955764662244810757386399300613745734209861794379925124016132094708161949023217514855180433037359011541381940478316922843354037790776922419172224998825682211986285172365958951296636583211323003591531154022566900547307263448850730888559077200412956807109584710737668425245161784656034675254610876477396516803932312266166705143123211862647758927996496292577123749879400071377790933813132557717525341763194335909903643717527302957436839870397677430284521379919306288309233269996719581640172037707379277427713032260424749430079999520538225195642547367324445855639630540464407267808129879128425239120488752779268325973763313216851789884453109887902219867286579296197475173048705461193623366459226494600862781913761526939251439426261589217594417679320629578209566829772927368289903971783610037344342824034158068620331049001053171377581972629233389920299984143304782362479726996127481833805559368240703349359102802503036435491871855014103262990404451011567342148281800033631703020419743172533146713000687697442936507928005300197740481788783061296205757301150207017476760181297690517484485483336054225322782112217944105514221920438374970668700751902769187723891471548188721221274050173760749080761358836709648985573404116982167951221495779262713590589436911284442007119892052522752762928826705353373796068565209591752679887678368718989095858109605004067756963022507833512944360081734653916039084825617773377206675723249708736660063817345237361726772411951868588749375429816323909822991264917190683286904533844377060864796907844870489189704498129391333257109582053017168927099428477815078962128429075741408648543945746442507467936917240790925131760659975773572222470582970931269470169408432009443517208162258451664578119775486346061300960281738766174653272159478956988968983180218470774312513906437748238473485470249359972354854716583788389707648435804435831436745117109992711088679209693174850958761887803755923807763344092558078155488135827143687283672525684988004664131738292815125111430855077876029400343207271241587574617007549968556982844714262384933098601766492063890894022893086352663338392610865608825550049644802328529623609890815849866967415165767625384884959446299512487716855577009217410052447277355345367492206094943993494712675693810755430579402062914236601442287598175901289949647005227486295354644072831471143461220605679094955502664441575113989454773442839338352247521161116261492623125189327609069025423939632155650894036437599843565618287232853912220381387763828076434852006076695385885466811760158763910530030748878364498308559843893601674181110032694657887928131235184429856369899135239090676930664580993834619897089084259397798361544696747361248821886477488788207199020675358653328242052217142255721646515264068325214728426677844981128772001076818292542313543494223371795840173325716317918431373858560376928149238830629457799683230598242461367217641838678210355473413588428112055774827781572565374038065164909745043101278291735109161563777720389571601489386613241361975658150570592870158867481763593536530685614671785456009467610018490857709839877016070218489995120257747348113300814269666906791274933632028734444440298253117294983517379692673731977431910575585508060189570209366338485156518783116700927388994563826350522585477264846628201494967744375200764009981303270840074980590879927351409895798940669203889393239619532015467462913230633433492349799468128208250688450858502704622608873807871111832049129624908854591378333743483614510447564407566728716136296521230093794080790110653637980093040773737722814808599846935936365153721392717028994397655020408107214352277766383958557112882553706900861298640471398975673539247640556387941308411216088257499952116446196262100351255387338161348356926456893021465098819139156663995222697256604251906944530792050231856599096356597643789158635960980167679915930905231950451117945389813415942892842557134370837937568742004117254508573395602027720149609594167628405458644967792127176601784513489996509351258042121882037050413099196664015393393638662007109122961814285712949506387616610132606723362024631130178133739366543414430119362442717162065294056977116082542994029145905488976507221130418523894685339757626283519346544809365796579252121308612166913532169871890747720472817824564766096048438936882188034800368136410593999957247444760284355474417856705220566618342229046744089503622164323477777426201337644929202216708495784219523724510411557571780022418410067537777742674031671168558932555504583423271322578970704838139467958057492104932690736129550436122578649265685673532666686298810449498888434335701148798551163758484704998955707793670858276515319013508920524670929089246437583277605427046395245585796738013699625386591469084097060143404810453431712347131609555114409937408578953803475584243033510703209878546612916831986930605434645532902764490379773024847897147451864811393994198108228224916771003362093538659848698264670405203158124414296104413865163567065328634231103611460417646364434528576363966408164824911074409159265735604914283086050936664739114135002421587885844898626174718126082521020878729263009185788420592283788707867025429368063141580532613359989201045982578907603865172265521694148676259691624655742341491400436521658207509483650424094988241106014392994976303664778477401043163056136696981208319154902405480981935773431711207602580541616595053688774483494446063880630847728831910182209957312109772487341597936011469870375325532671264961647719202335244095500204320492916917042001624394411888637604265799114003645054261944166862335181320252449480439087395279549685882024085317040777649381857442770839002733695976690868047419497020155553351871774471406419623499155632494401262531208241187758453737413888021533225542477567660346327474314421064250031688581689647874946333079200321033628170668367703047732608586004360445355003872910583393181891210318864757683108321339049790635774240299957604093169943230795123275618422713803232194907907458678822918105160982148603726164508595436605223250057426591798379361499956325838738801023651156249888283674982363947885609277072138794314659029437681539368183645436831609645275851558900294672396762623890840849876567582026211992415518515212838817507739995741354818727323171573419268764455149722591012577636306912068163081821832446900509042887840379187026624936120205691173109771312073719275045026218519374243621702375821362921701861358710732613104717406271955028660355215177411356744077405117484571557281078302682750363337544914569981895080068590255206096109538754253490222832213471494566527243390903803366551792846770045231517195421027769402046384517020598985848868250534235308131944510186657680646516426625949386975772752702626627742621800304808534723908269946600145799419166412445269256412465274039849361256513723689773302176235344378052411725822228020647857132294599685165756920039216494827222095461549395673944618211426918880706707270953676147524418856184611321201047302944780818140212732243790760472576393701563078149343979942185143886241375451866165400436729763127324130691445228532975391670668494650875531855057809860620739031992904682335378158917474368275317346655009240413940764102716235852090065080590269688201185231406848917178080348109280482893616818182289657409960746989678675597249348262921213505388904553616071184149470653729381348230247229344468932633834535059478678744179901889379870596008558444407804586723931178676228137924663318970033014992777234497915655106709118051936205726051112072380357178520320271964031160169146150354610084391599397879466937933076228699785666435070535359199906028082456668888651121529725392814406607402746883980470280033916431014748592117710100221985795276592837665094566665352137099783862621248387366676139348834821817723809485085193587934870813025836770562355677138993393540237363834416437964377163567284041216919562026779948367610890805798529024698934536928288707608836286453096792932209389772883395301143193782943705510623797207195531141044898322290470220464623166379813217423023833997947160576945974802293406438182220433690755869059812046631805448239880418536670205535439463407997646020898460577052700453648086509892706774594882477844636685726769717406993001582301119648237676684322548928912516358854426964503417890971113404433000696046472152115540952577384038564711891119825844298969470561045243615720739759741458927096229610098157655376065559208180993843970236229700027377123170970106393555708881944978836571999319418210440948061691957789007305359286015873132763671389479967874945187032945879794117738869819536123777419032327118807334849568689827741066025073392874469640368264010068828940625285427106485318705816963718397932158362809161758040020960257926160492433812824299894284157873477936743751398627360081827839151297462618333184611435754788863951049884253678295599015715539648850344472429564492318661499994745096904561525560342532129064581822061967044258417005123441596011001721156858242787147454143487831606671625228213500666147302878213302844536244547441272609151422979697231110209959122412922152197619360297669006154377161544027478729680367169340676300490250697722352576878124669130857019757696612727891874264853651530332595475682996746222491951677545677976476880711972073238533388447747957256232297195392702485608997579518749167130930563398091789661432577628180548599778166260215545293997160149449105302314232432728727124176819732954565527080016931656570349156015470455436223307877989062570438467269236434182928580203765580516775259367141862093182562221592164729274629047171352747495927546583257916725419199510062983321379313777028350187125450819528143665278724754138599845610923768060763665638031524762569796956029671717110347826696551055048467412578304163697479740249669177477122468583132007809902496884614672373206399659060325686764256574979143376986470784157303403661776090717036598284141375363152624818833830089168581949429893852750680638322901170004041647863307654661048118907642564518430777814440240306052919192180670404513678721703740975390454867476220194152606514008569170189441542418459041199840951779156947626115415711269412931316310466442064560706676354892918623882193079751671713659841596970533676444416694420253698357161572900141035451175621301316376651156839494529440925162205163153101455428025851780870407224169054167282565134125861569729261074820452338849380353586752815616069314270937079570410785276732649094289329316976575935836643202413532954586112556826156788470784971840325719373220287839656775745725906848425252789938989604080954719707740836837333236597512248893499072523923585848063797449528147507517850938490153130368531003684252847578781339550060182737273416657829577343243552458003252351908270076765148337349627002949094653290005458902270526660067889392724425002198759129272098041000161243045334031080464309698597486469600106320892273780808108368740590368930642994347386839379092487391806194753069165303144657083144053821772083519278518122239474084857824005635587436860982916710316093236559169058626629209699905437671710874880511257536808713850814314666789085241879190844243650914015777986668953645938903467162551046997582348129187409719251772329086220275504161386869889347922007109038355988606191858358541939144188914016015507191948710068613150445142526796306719325527039725897644571523738029018193348082326672949054575728276582615968566987356893255501896802737029133020991339702975203649450765525414212323585224034947055686330684243162459974617197905140538894412223350910453717462241464267043011439393562383133741663073528465646656157166508817820919146327705444724812940070797295726164230576551579998057312331129504787761869482309821181867826575930699429302053319556835664307873320284582555377790443005472383956259156695188415321021835155704678921589251769069252006093340715281730489407694519490397988387798302048791791505071688182403267801369656777164194064349969298334647403793394683280926370451376373161101332790017350350985638689595052489894628813383215283139764466705301220089165150690965236920592076687675736925473321875387323443536477066955947600803959171709786338492859838123639582421495928398901123306247751666976171833669065184669166170364258099321845676322641726106357185736656068304631646907992741076760490169157944591010589856256506270856378055125022070584223246283352297461687052779153414993365915038466126665341955356593263129025428740804836323926803479971200907583322430381901958662406601535268891315143133722244276492687873725284164954288568150957119130274451576854720705773429234622443607538525586074230778443764809230836300467889658277158553197165561484404809574970943250473044070588405108365647349178406247796561191586464658623533494457558687307067839788007146134520346069742598591856124095530226658572365562044803277160781259660994763665338134347139541755581717348116477654040329991690994353576360071657907817980276264854891802402508944437401988558825450835889425782566949395919935157734070764115449213840773581765876567922325650997063331373785975878124430718953255899066203797291905693027704137903485370426567727301515869369058946331735825197313308224563515235725632554899500199533530487277525598210732783662656980067391323846570176671321748577637300847931303891633864608188771905708538458945821262214372307547621189269058752833290545289047619133738248083752971292407642475406262889815517920978951626044160918798997103645644244007219165581080968853904300823300181209592955952362439917007073519527418828263061637255328445719208089808807364934427627675738887488145766410894699062312312215337131925559061776292568218693667797583614944513541857802108131079618985340305627661746845557104686992010930162138651048550755356437342630499127566359390032171026380584060497578683662529018786784491065048176419604453559816572638265324872930424909169088535879818342260562219349632185997884028470154512106781356438102282108730766367166989825338569607457654120842057284121669345428261430216609702933573297826819583323787721639046359040287944908346729575146524382444761042030106394809939905825765606747517671496598134135086015666684321090252043983378801309881771342820054129979307704415026448563476743763857450725514919121174806364835339200898825179747084685825761456526805757003168140936874885330768312904240669235991734809602947130228113040230178724415931910237303433837376046520004517922718562190440356201781650714835856601322925929108864742967611359870777190368073446717235545902912094571610291145627684653754220981908426423677860483490026534644136781326790237210399011960001248337522153128085778597355339301255634299039553577918505763078961689860506094188261103938715664945787499471688404410744263200388326878990009463330733122303806623922647873595662966817442237150104754126432167036776171252239267025948917893801520264113428621311237949567195728475874126747547679357120038452279326115119227527060257253725935571962764159730592985765579582919681379737053368503124068092813020738517650821508044128567225759960677559020964097023481421808701147600093682831383939286202866214248647415787099615228145973397083883214797269700899395957608760203524904992476204350844928393022477862706425911289535289682068891574658598398060545110975089968227909585432540590861175649320016956612363903860926682321734090728006075844188763528548624560317668678436891305808140483937452869633767546007320132241575132678952912459399754097977226538209135726116967000238361979359230122661024227392458078642339869161489110261501486736731480333887069632482614588891184164704369256328805102514095662421101040939486098331272997988770888396015426829944947972503336682750393332217049439319677657694365145592588156116063374235770247718367738641082934783599444461918900435185592162907952904044606790221693541405490511810773980131268620910602017847684216407640181720893371199013017397974930304938567976463574210064817921329357662996789398898620231185280179434378307922419152025978689988241801348628070722388050916756348774811841175934300527449688262925629295622059228993134931594538819736881852967150078642664088375274775061197255218790183397554760801751846937067035464704791289769875719963455986728072252497887565521477687072323843751486773077025354852401302729471866434909688999159366474046105620761928425462937337135075034061455692330632485538874792494808344711737646255832278532258077750789669573827745013742296010956673832990129234691181075616921119319391873788899099790292951348265397639308003552996191108998192232230799812742050357218904765447383086455772192214950953739885954561908931667409297618020161821721448198973559027655558613208318815375951949310183773136836767321715180237266041751964229815371052004126333448780554405575411014942601953643850143288229639085055219548336365527891520043272163578239826441029991811839544233730301082451419045795691836814086385575848063245077372803744495118325115554215389434316814112343063885981490828186302192536753125346395696707179161681677449683806084845418867792055351791531680291532823538712739112054064838500923582919353485010419879293020504735606551674246329337751152338001419382241085714896782379627494720730183974363945446886865299352617399528391033555308297788502668655993629395927147630815546537376170389331766252613793977096177772234326374608277492734445744930646942098860584913774160429162792516225305866425499564191440386005519219499674442012192242465311962173030723777867368088079013932342866924886734513725472358171134195434666751312459620260508778097264212408806296566664323329691691147854095112261477285466206677939886724453504152933211894534997018616653084649258842045885763440960186140470605346470501106870376999780380770296539986455619389190251888442918380150337784512545524907773673014767128327384950879603915334480158284429071088966186751124154188980939271346267398692328518130328771657355040085699572920267470644550657234338140244236615167861575231857116782647135512561324104822141597658778208495340126028011338766712446186915575879827023145672088356734601901114437176567379401279985106341262578358144818137953243244614288472633915614717483898394316733451962798989154205041974585879098794596152266510993820859534469488539490068648381080492777693287102798374521579795216059830731553340124074483253457738702039980747302648046800078315586595198278461045272842961410870167546020471024893746749974832908554235747389635515205354850004155717345382210578202463442746345746455717326742161458642528713354577547166074404309763086375583305738262292617939744521521873222267174786286609883587850960316479709177299334051417887111696007533752996044848652762381880922271756182923615051820327306142765537726721416714732246936098439456993988043008879698198005965287547694296500528609876240388524221610333730198896530341827306062677238169172983215808315084851703808197569396509751467720209375400087619212751568989195765691129213136283178781597256961803469879179661616622933487437473290064850067921890039467084654459770972177274716958362108338823584119988919680043885393629821325646042969245497623250987945215695459593554530524095442339877709975318590067900132658107894375647734549210016240571582559560180698614390889879324563715820759972350145840544446299788579634000450112516546748541911643690478091761631164681892011099313016178052700187449314488184334025800892285378061081227740843236925063959196909144220988039469776021608710140224914548431217110739410821640316843287507250682739055827965825845447105544949129140084627324657314635917987191060103617939638125569275594113600106677645707112897146926760185067228310299430968826488461537102105614770811485277946232343801882524657134096726969099856461881737363510228871460082838891391636116261715325516375329409634956020669769423250355872987711924053702599893037778402143253200223442745884235792978025208740938911269532856143704207904798368280841018925255061782758493834658596870798917572413093451050782551269155313195959544868730429491290007499329887652882963952273089044549448366228917861637358143497993818184579846743392631358584718670331369777253074941569543954907183117554324309342848592589607487505394915717566903258124714377357388221240053656638212690093574198695103637303466270308180651687382096889906593569056472061009009697631229676769670396731721413251473110678403939731928615255277305312747519989579994811086930455960811483735876721757304470323350763927111733273976996977916955742213633279547444495803936447036888400363042471657126268119669706217966071982156971452686099068749521444400106074629705016029727964806602324555461557199159290663401408337498241356920110406002018795683885360136927868872167219074999597162201361304550298685205484156947279381626939358775810775733591852468066715029340879693524110938547747650642254803598725843897445469320095407618253198645520795413853237903185798129504452519302992756895653832974149311574361433286640074778218630127871184634421242450049230193459166220790725916411380823694188190887149216082390853730248422165037222985873575326045989195844900167250872585789219463576717644926812671601163028007052984420732514913103242040309106983400320844745062302518946650418136157486094722064907922795643975272430522514061403981020613749261660241259719447354106265740715249063893893653138579514470856549130383180905417731069911144532104231900226846526255767098040854835048452476994103473759607719965681819469409424294941044612070375117365788294222752490416473721076596922414252178756018311106195204181337529704533618845346128553112282013449333965418007503199391910193880352610835854927366529961339453679907614809663799304722624586319033294678414465428852729450381689889900779917090243467288469345889947414617970699694891043271382173736487931776736564657503428473781041560856952129070145696889885679673621014359954754183651507401013178138586385991591395423282434646502843175024472272062501057445850883875428013977848689816602241931865281776206810453839599304951829764418671090951175560003541963240980169707148644469409135230021131903249664843047562932468985031919648945975291882993620568531435972552940949883382521855100307872272133185714643620510964983263203724967294118184208565781548045809847174511167937285201196550221913050216153033933373702015757630598863762328253721716805952810068297916180790946720030294168115265910876422382640112415104094043706817652598268964490244438132928685901224519111347877337618225665771336048531491346665358117758982073766767057690527763968169894313930975552082975868395850983670524707063752007188911339612659809753016248329832547184784090250250437425359386023895404102902064251042826589619976999652687069408088470331407446114432417405743619081697707536144252749497032120933824741352882894402496533619178857590506169300761223653819030531803068848965979305509216648953690201525366502002857927523047388903863530319375585982786275822596350139311491032201194570857020671407009084681715840860847264679345697144521132556472853274338198107665790533096976883278096630457986056969974266466335675170897849924041033550221109024402465417273665168956334703612778458443950703875457990383362109346603719518109027172087569655460200919472533560053893391902480591219759538734640498248012677422673451202354246015239118988157905276550932363275551053265668978573507516011816442345097740969858897435721116688280610505776508868012849670760396452205544351657326358268457442942660295753510440273061867741857574796338250771254735074576792351608639993509824988530823148055788338061468880242525134635885364718027383520996822198497449772110628182990436137631313148545701348745698294098428496297111114594651185178739479165488461825411767232351760525353095697090156543602501141961113855621917963850519620833907110533415071151043531216016028166131221662493447832354563395262115898419502983423640011147244467290317152280865808463322090952074205010365048228639589955120973627012940372787211282998685915453007814650948950428315004275220753645150180792838093676104687880689284934605180681995602646934232104687519817873429189613861963285995094532904379695246814977008453939042481989901714714754965675186276360606371071880037994219838739608722469188588640954716414198141245867519472216428858573433667494648743928448307761297977682663899484835689328472903925462525859512913402112632500820765114689285023764243107229328810880303014156430224970024850613556102418963241065414188888928936021665558073417203882232552353643318044191542974805014894203908309665914098267076122941356843047662693582263320748396179500200574603220733155466259028948699500633859813424384210299942829808888001214848444399344294184084659905288332006916060276647586037704109634131468268450763276945543093451527652038036310543373343905561186207664740028838067062551699805421521538076193777419269182755961137277759286754443614816052784531116949136786325392402643035998938347516589680665589620373690552923855798399760927395926185033358519333480148523544050431621802715699012800367594144604820183303618540416969734745005685931261846352037564485452339517907271748417685070476238386222267339602384132737329214447966500289290996460967702131603286635491393317109651307898314718051523528564662387316965739910771048262382648113712609202833459513844316747538335279271685607712031916085725223603480833467545745928425450216697479977263508551777440511365099431873007784992555106249059460091462182228573386605738691702273449669973378690442276391775648203890045261761400588162037945738474765315703931354438937388354139231711640599350238056615960392237584164868777506693730167579402825207783586817812591459489113103905644941125410579283081554586432678615664704663681743817670751021360422185263432376251153385586082564469266076750586507359263743047446104938105559038769055967837169568690250993019664114594004155717233452689372912705583376187984716212757324503966753485001821344697211845093021751956948710033568633561294386702387975649789340084807415202619108315371164699132749197179945308760523007474784417557714386520852203844354659668141556556412116573524280033591888909932894522917382029806649522029988073391833424194146136482147266613542761665227948802667506643901348938168013914987494771774731934659170504574114645839863219277503938076370724929943099415910352673495719698807355798095735331474091311728533987638675564421372934445134626918824857290437757041630266635573430517243942802887472461923662337509967164204963198406880690856856754573192953774174417819936323527044720630128429942715115341050840746147838372503963179712793596358846830965484589595778383889152784945469357193560401493975179324850074872746921906705363860827897425265730305787895841229982871625516575681498568741337323100441921887871048410193749409463761076193510242341677758276274720285378133242744665736546684713328439994658145146435467992482818780744400938677654728548406947811049123123669274910831349326821699630662935236106886660683169689835994773126401608947470904643443430960676846693973001727724327242217729312819373012431066393529430501622895588375420635939215649101106786364350146214160705422640486055473855110711458357316096432353655149303938022735195053515966520260374930130773969925486065670606163593507053432860677087449777011609568907379900724174663311611086417802420438104823362392124186675533196200605790065824529205625642247234324960553815376075459723559164077603229975720548006648173233599353335140619691449004556505105588840840928814157743136495386406424547902063753565167235726822780729882662989220705502486871053123588824927088211771194988327217466262180866196442119641694515693942053440535377568077320322587485570019556994357482096748169244934851215736433060565588688739575626054282924997981315026905067804818363916885061888532591476743709695403059223408755191248913111030613238719255138800647504899604999245286098938881466037304396301747776939630424657164827786975393603525533504996737358247904184266079345450911541781805897424432701311322162999138072896076442352131258405388345582665775617607142835871089943651946709514930187060668813451358542702130090582344950292141584199916032291695132548743786398232970644299907921755736316508599321272012675119326663708954354686960306573204717728972760839616202364662690421757285825404242140440903122164839022286037334201771567061904845399234202670970930729444449165102985701382730659213242571297992813965605489561269330144838316862262981232065863480819985506956642877751880608759170867059650133259826500528383437232426054134004232021807685462382702861369261592296057829701753717514412235233992931810770139764699490469349892798867292899455769046645343959685673112906923578488535527157504521928014296710427581496701442947490613454293119875810251715245106477357177746289872648246588994083806126992713132047467447028167996597541980572771878345349920209010334938987066237460296519604850384561085290087863485530313776301937941154794022556857016273513986698256162525940272293702943421774220926711102335722968364757428680342108518313380555487249534770369798303378329710678324984720914984071371388084249586097118763938436094439064048584016664600843237037808959313145217048762423195304639251014003346722130832784445072139739959081687409812205199189564109280280508421527619566678837900436282441966894175207882528834761758489421931187869800212439353134559423537652246651972704986528214133914135319187930145876460513659097104323699764490145677145333477306925729363264118623995981597564352666763370637593853437938112309097130958742841655446010475607760561050715582683795067501705417036947128125499283395192524633019899337087117807760682655711111497705429532441638814118485530194616115795684889155050086180681631302885389837994503611845722672281361143390488723982667748356744143600412709330871426705455789892190546872062075459667306455866282129770299020551993722433736515824829099377741931146797550157418772970475416811407260161640212582730440032298713645333234398340243640901771857167125453962570821060768859912343810065543111990440874716222746970573831749151553892279297230342111406556393873745634400179459541816492806054012119945460238491624259987314763784968521819964165504160129076798385446088349205604092676952471753934794527233963508369989160284181815739388700628737405186143871106073966956148626749113598830113197590992497338191207529766242189930190412244209479165291489325579297390850597160480868169915242249493191129689615019517181998947152634597711068012876309550094634124188461170488445605370513129789943487762452689101740526266089319475864014563269766716145183237884774136418826396773172507401029139230837755335790979680662216944168253803287558731825123911986778772896859456024877313247488862472502484661857108550610186942043779027236904577342018180613853346469019553288889768134928886270759606564966348317777728500553457318495547486229691677458819639396990506136614402573596056058694834418906943290888744939141235733366975232003784503872797861093194391413455638988499846526528175419998940367131229319973473667582157598075708672738696822347841695184885530307122130649127449684483345323143427695701241755093225457712906468652912045997049835884784867532542392255716069701457511241694421051805455757008524752432900922100199061490636697965549361533831548273692283720870920308736739402352698480127078783087519503868171124011454537034429664511801491499748220498306265532055711371610337086629351397374967469252029697386842374796351187309630766937437434480623218853952659280175348803723326119415981570850089951880072413910144475265295589904209080896219425316127005289097719808117410303068859420614302691355819660938357297547008921547491865418654899627294946703330564401028190717143972824292189946995005202019850922573138185015090648614773095904119692260890912938902284239317879880157237024515205362877684878616708160729898893543708177687007446233163915667407054841848829447991608060439401883406714371715124234448008439997948060178552923987042429552454116110395941342149705142703386934073678389286094013560878750452964889159800966679250339486524896645526172929385369798180183314355526980942147580420802443877327653227425391008875660134101703545340162897405852537699313286493348517024769357267623488335912555468692961955807624532697659245124861496763601365961951682421612977328272294464731682285833137208073604373357128146758076618584249133886724559503968351595387149171595947626572307087433651811730375580506432726934636266106341987902295396171664094130331895561666617243409584349296980799207096509862776352167568839286365132762916588503584863326500352072362937124989526256062042922845599183151785685164884058208305900108145176159269925533465400903379714227667342599064522229650000133009202388685183181342894228606645327362737300683428722903411076667503083542546377483472349304091337188996211968114833449551520328588794673147363315213424173354343906619853217112965561484935320789701439093533709924422651787084339211125701421405448668299354812790484298944670398333470057980671042359190167273519558638308151954261713872095134622454195584750419308863785975537101036688766971633614643895389244034224592485025641371524598567749607194679790428048594760420168483342611407545049209344517204922486455686932349526755677273344349647208795411857981266779474257796028159657527727399148636689511191028315712129440281824223001686630613272222773427661812192967099027626853224715909873158509975712223438132502299468056802643197285749763591363645378861592427342293855102402057173608264078642069199877725080810033177788536339616947622440023375989584265792439421848634388031110837349536985005145210491992841844666847070010752669329787019086986699696075625212234201035118007680316075970784214266351472235573840873837367940072895616926551403657636263583397189948490948193150832485399361022930740450204427324501445166904937965083959070328366426688797377087813901741072255001024046334134539628120064506272389526452367387004231044396402991054471851413036102975222726379970502926653404783506325793551423503806111301692163008001346123918215407316357905384582203564840586890140214533777876652067410763794397058084738080675031643511297208929329817046785669892987244383278933634648966846514357103135881312839321798785349085572112982906711410473482364950437469360374622106090073549821008022278630728076508705324024905704811588351800622886697654701726243614996690250331058926840566058400484010846944812819056616773010457918954177589932716100483675370663937242268592632294665537152457837522645473035134496001566082643689645894592218129602354938143301263279160385873267034473502034734794683858313068766759514456732901365446252066500105896443501112088479942690808944954271333716106695846109197806644854932548920787670765244857822067175829937626999214618842544702812935194474697653727508076331588340986376294352596398026930814454746851867435317552832022506417302136737959066384403200448215677029603643605337535501598104739509117134277177467381116094844716095223750624998188244846562330737736782738825890609775715786151394736845448255388899901854893625935843057004038549886465975697898308877820484145237413666477799907789052186450359206280404178635602051493719820637166643242939352008203432745796496103397270544436141743996632978758355847373820030515979808146857955068433350129388137069187378025267251463589851325862885265112942332216726051690960987853705863606546968434220581302340377989940971859185749325955383365362854955332794564797446151793771890746245099023070645819240161045252922745859775215067691078804940746172694958472567901305844557758128029395848946084497382546570919257037237290320295730565641666965175098769311964303788246100720955530456309726503535829083174145410820710737214832733849680962276642881969495142382366860185867268292175027353421245764273908383141175360411814192221189201094800229190784419716462671424235436985798109829310906285564837579987493459318249457875172616436354870572825287164115283556185129887841342899448046500593657312849113065617186306998034814463693006917100566937793875676249509918498045681616877960923379005923961491453091295899133282002422092501868378017165185193033892601824321298565209859116823325359209548118164531594432507559495320707599031844919699366019316757844947810665502430366134367057480999770475704617620880983296520111873055028544332851913473389062416687440248207917224955370371082103043151751804034905111720646292994370845988329380809582394770383231395027496745543982273174615057463453020113081787457350775953416447201043216096032630184165060857285864311425180136793679591554216062837468459809068946482662349718090247228548645715729928608698302929640732386378496400407496726458707489038755766129624387476986568409870105456159802491250936045431140840372403339023558102153813544617309940471620486103856880547788987506230961583111716817685803020360878340847258624629866009177138362590421838760405764820226369429205554815673698551352332606368035535933692612756726081687782214988772041389572087615168043034793058070399359239003187191352464053628492056109126407187900287509414784600057328421936770282584514762010622619073151317536547743497398104446553724054009894554793576415201799657573798960921580591284351636554694891732255134621919390909677997372017944237539779838513213265787079023929273088949633485985913041903690372607468547647542087925899312005915449030595791442244677346285489935238280266344616772667605264205399669845145701255410900458521887459869314785870438430553718230434974980041709494877898227519831954234149197727236622191611815420501358320248865990357076800083062265108625643955398791043301092153594204049426968691578154786685169739989342548657885346285297708286149704759260035954954201545036570728738693039485019929904469575516993702257200759602999239566727705138389105462401137036375602190196912157264442004512067057839956654627480307934096073171717877592079486080685830560015788138258169038440113349777162874631378134752074495350528913695909943026991946973434970947990386064168451046176012581268478413786047468881605942481722872100023249248861070546193173190296064838316559441920487542950245178586576248376014334004230257183397162071491749696446649251227169591423493220616317960533964642460052908991471598184340625690663888900394357912734351971205240122196227626366092787014072086214683680774055186119850788377449165362579409384074701305555076394967452757899396579206905964380674587839411316979215780939821614548046911758010552707979402988119102628009468664122995216757911772388709313192328098676778481645109380614475776532390332684725692121341165357900702316006730294787849956360937134744602355225591392907703995178155057211874915028676825170635963868806212899928521228443724355133652773674229531552989872745071714954940922165669972407666192363717414263086501602533111353064809819965873444983569084517839332938233877411820085557373718651986424048815787154873657354759284048469227915528648651063295666304267310047626427738036417598149638698806250461105718747447624389300049754138172697135597638592322683235884543871120982697466132742700663000630936343576929760032299933365869463142126906320683313119957524361161695159938123600189241532859020510172887660661955608786122610492275439359801672329105211633189513499613857330602841357444957505272484714665340096194372233915997267781882011984943513668028699956510940058121122422619313203387172138681077393007567455837044902590145833803712783499583958869250591810118170849521953228156275562632186525852398525408607177258528233411254078293322570035477858328700888459394774149042320040444985329357707295092608455386166252930062385271644747874748955016678557193369920598257019780904381734749340392659815405629485274307354340876289929079525876535094060152398738227166811028592793084219421152455668545211930784408364757870051890914574888723555937934545232852361008812859236351280104518346120675624160882248466251295247431228668186634519042748139719066565770345619157730975933414210125899321815864889050600455621253119763401324985581394629779113305377773124199937340046260617755700329193815525549024018212258922338683559751798285379521812096033890833646800572440545819391263179275341263392853140915947511091332357787157089894548997837950548819371962877049662464217234741472350096556352933084712465955972446157833256832514375260548887463319848823138850841911771461081662142588295054716181709463304781336531074585653980981816579160592236896114243275112859283094681913973939110414485658821044469326444068358392834563459796524210018794453034787186227073330925447740940437946924685815865075121637208521829574334583038412873845724855148998668837992842303423225733976730616456956579173176461777653836288000264956923954943241196861543070147249794259523206179144883620346245286155468583173566983273463346200171836435841923329018245627823354106568146365493402490855695257381010972707304388525567080135502977046110074251381969394975227371614937745850297839061889674177379560701041007083567777912649472356375282255111758187320272619828937519027763203610199198409642872554167523556380655405010237046280804327455611147582734674409665450862863257109791656736170134241713503182355934733614335428358961164918320973803405558634453625650536142421443329283141753900038826258425217201577622633570861518235773582003478038193967554125406673084125923958233154561605145681273961714003792898017679050146907150685529892929834272498657527364602168952487348895075052907086296739505681516309156376799770309128698133073998007693754071938427989734799292818074390848656039060282614062381817903517080982486943627073324183306207503667801160476401465647889545206295442387875799135494363667481443191163580863841890944557457862242692446826827986845647022489028148710092514220053293911187260747848366842010897314555710857133266311096334922663598020295049508621856806710869497475300607468479446281620591595390920688030707837603853532414080492193443317805307171105879785777526573811414624643303434972499635432092321036364624500693918636081499768226150661590868937885403585216721783195811720455051004760085848599689798005677008521350908807698181759771538285324467154742995255856893407470875482289386873152880722360780025543882889494068651193010632869744915986600027964601525930259165425707155880924104043735933990978422138790051952846536737022041839472692900067889060594021371825180393080196317889784218996580061674502925465318746738266323523547873410736230359877986673866485764184411250504357387341052327252575955555312107549507626739165167531150344359018929015586273294392553126502540157037716924586061056757377230237004738519302305230941286171322184779347473695608643893211509864845229992153702166376901473919308155133805187787257180025593158635211339602612192850243805708466108245689558306796619618913583326479497710597037474501517742762024951255296191019753691251928052714468281090837901645563803610563020274525439246918864033086350608971870632384238814701235067238466407972925895627756122601706472979469607993130807693345083949036793351288430223247521526139155927672061149230210587425417483032516079061052242622115209327973575792949832466853466649620537756274614193435723716773313249041219537053200870687958749448096203138052715740258140986283647643629109895566202660237608498246566718210513925516241788972893144699710664919723052147372130508757363238849480896243305766681242148460864893169521876764964415381574477838699230350213987423904225391731494015252894890133075948321800512529767397536605482223004150345696990818725695412945156659375343350359061563363805573888076262010973473225751026902714045457967272206134542704322116065045209028097452766452381825711685597114745829790008540233424797171159825919466195410243493709505552200332773600507263736729827774069243710070447010057455206402109524264216038448440473016440985863213106086509176095356070744155459424759453346913062998788545124113112711399257298006897516982966913662388705682907128636655659027013489524152802431789982338986714650007031461474439486703049197936596523584213886069837832707081692440199099449334547861787526466950463388958452952369309940445639627756359748921294541380879709912771093170030657165070582928097954343320047514013399687677183457734772597987539558673256296913702642402930723985501857098642542351275290874514592650085526231897684365016180421946731394147333072496066068290038483372292799274920601806807025579432357512049434961507437953959044194927572022448353449611736709716094799114451142762609911760027291107297387678482677846061474978793987757555195534586929733106019430754558417112682331389096665690338510261845077347657788157176638481052521526593537732728411438601346438883936325777414029129972261815940471937584391533076783053204128689824662004177151366687647565602849148482426431929402827404699977021529639759490736308887730737222059552765098348555268534923804063681678685908050932990445595206752274503353159847979916923012164251889706181501510818816978936623304393430403965187314490723444023828049018892029751349853432124995411000962458427462812377131339179461328701414364177182939141070625284951897428026886706471219863254911234003007632536614627093484349393302918723278743700464680391606404840719999345241424431443416518666368441119680853248582345454762935591571935018222659044010106443227328083473693703083006232621660334906663733962664991309416103750307217532899527919856305745845763366004732452532181647456672710713518784458170679676711293382501111689967065803376796446642851803288013330737113974262837946661178205427009351337728303876892867935580226872437438626548546663548570063384625190835762932884745420518679677727525446699566790310349417888724171725874328168164430125792991709888270810938659150946252941647173840122311239333039591860697851405204071524861911774396420954455112366079047016342689631481671743197415058744314376332809457085476785728228472380278042257437196818018191055373281103515647235957204052490826868081392446117740272595203186376805962622082158745732369964424138388758478962315925279133290441176089616016266166177473198100273320989942659609527899114932503356108448565564528034004920254627616180291457078629275444275061700862252957761237360216739795271905611447804491993495503898654170130703957826516841474965539685396561475254191801765021020965879179851834034570652132940064345364021303204652195454357757614423816125122007741443201273841426650290179881046908102760182369720336031548821466521351438146665908451713964028551161147504211476187287030974507662698699326752481289056066597080623707013017328478602530140749243299076723981096674107731303014100825981321015974337704797112044417099580330734613201886024706343497670772849131932799257950881094056160332384177666280542506085677872635012817314438462927676904073806824036815931220500815399874853353491826599626099328434342475872084129313141369533917780723897105984698947551258304039953669748487936876996598732829637616216215120977634722178482156887719948956089996259361340742691849274806321857590865528432229064010225943161636998680343522098529209963528605439191358743122048282859260667694601455249451070499485972437275494402123661376027329562940100787467942847401962798186305779158780012694242750649181454601753313183266629708794642545938177574009939776846863072529694520427760295890852342234765885953153811457556230869946282432962516502648015618087577315470783286651846363360644133833954580606269427137845613016199195578242244194065592851764843092288580222282627721801234946411357378772225578104951676142694576139848021028500007624663644938105903486931738085123885291755654405968535314719233671175058376934952842014817870721196247590193203138634433330368430366510078473340105471804107035837335574767360067686568452021795115829744177889830252057067455854325185328136244869472266747078753617621902792857244397912255429384058553045555446458435165371669298574804083906581496429178700821273793512528663071200499365591918935900907331104227482795008576459824927253384823655744058248726907222603712771967131239725125017497730237967313019867654786297252508821064703040390915917253095300417416921033776036763124536396455801641190857982364312878137589159695301243957850482064094807977173496827409807621757781328130509717081600529805415650905249949941709515535469862769740489812205640613332814563290027682330838635112600335242155781320487585932131938904948618671916581126706390811615995523432085136596839677663019195707495871985641874210271437975400559044094468409239513029926474034898401201283753912890870522932423331541035397726858459412179598468119634566113840633127193366334984326613948886384921053003958070443694993677789674055510268044046021969773423957182780645243004434044164420809900393971450209270234063950384695053926068354322750753062826176875359736890639821083782742365556127326476343377420072566312365380435461192066145121595507332431749556442853111316297179445287001877195005236448698192939633847426393548471602092112240903102861097673745341188096238818715297419816832213643799642478906205734838595564829543069739146961116157110620642222808041863245560546357470757611059086889416691398636115730619350691908213626559149213987266932484887320654384320193485614934843551386495856653315850040336380689235719733623332150954681323118999494467711604917719558842563577167663821983120562872682689985817865975720071519517109673241880948719712596316823589468565208403874975277379178688509530410720279859883292299287235863300695879163506203502060657142648103490101709075845384741645991662427930020716574946784339332874888797975599369540999319900319151754193124157961967430254273938997136264706380295615155550081713921519311674823010430255356271684667900679367495790813757467409096433956173135003356132097681491773563534937178558824118064966640664902265489253495948797585135995515780896936124718908624326427006971876888754435882327633458796551452512577473092035916635573024626970933129306538718240247483594445291613147132018808685862647336733512180723977154933959832686061428877856721262355697029495991627117904879816686939252212903450707810273712318123516925669744418809822514463269920797248251923947028556889873171634446602665777654976340705257923636655605955216897034865301358254518161831016521063817387133391791451569210917883046741533992800268587121093858107648256462300773682407500169736961026748223067182207785785459375513800334603951571782062897277559135541824534287079938661325911054113384524410258173805081369160087163565202303824967114247881532623704710592849156958791948562448935033999517956783310935824095578970221747309399496132732768670953359699503539767378400113178622330697561116349842232700640983850559404934798827825077241372648988027932281928998277828423674466507803732030201007891108631414724590867522849717506280203366822019386448605455772186131159554361251905656085531066672012912652964376383518937078089834557880831075053660874854705586057195740579528249725171186175640891997286888654074940501574415104657938358724591303788556412408440989493995937845131309192011192867737192614553907228857009233580224362613185202760789728191627982257839567648448333605518378699327044054732387747116028008290231243209690716063324432743596074337769645874469552610126167961730950328820212398229085062954141415184406898844985363526772691409073290700581348189105378746847370456176268314383122487965577553394711695123577260164790741927500867002560772598533826435954355505693601175704073020234101849876402462791052931996918143584893100342366311516738113428127479436452400761171888014925535366955251307762919333052566448574339350059940391774424968225467430115276746270117409497497025503201738967149867307398285209492717482284023431115582950577626180524307875377753826101853773688562236254606982823333847788395180317415119795029618068599497921334586112324803968180112397040318677074680953008394910013508002314742040301310404390611124850692886894753292122435508852624483594185366780089439826209044254208061991027820668437498908332440281166112099986697018214996052312764744593666131616930860880098284907227198995398462339446102531771311021613993022556512177918675930467590092913438458399217850241640623321073493063325007180763458621384444768043111794211410315734123973909851025480866175043716530048870831976211555841383232222444415608875633956855906099697820015087775514005088520184744027816254333683030485227650576921478921999513454740894041225299987568441220164865422706997432872698534388928421815534293050862041437395183761644090067230881023661078897438201736933087939615808096995903480555589638336540435171061196691402546055823734880755504045296370526142818860640460969625824545331593733634766396020273523200611329663691258490527229033336642766687937245551713372059746118646573239322982538404107566732003044094649680123220743056406876889974219326687916343932210165862902401835241541148128990869749918355299078024608286961293888369255221416603306568948937248317860411132608991810596108715077301192835831550078528514739729370503842932035788546970457859854524005306110687930903852670176502757463547431241967924604604729087399283629676332034519655707856227700036059440602258858002127464447584534929223885535774266009163206236414048843763429778061673301248090975041331547273664309378016677495601923817629020815879142111012160887262931617368018040927176147554318494441260359013313314535816307004964329306683663322145549295747571176734038001236830761562644214582689265914784391698190874446270319719223378872788542386774000739587219934032944351914041334884316618304306148913462382114668385587586151822158729747957033092561393492647756307244882989606876713554582420228163363340707220124533370978496333461820358117299986966753387727070409510100030439485931352013090530881216926629212869530023980478940394792353035974167682258095583396660726358964788704445897055033585406481482575808561430993585248930875548612570088492585733117675533060293440280004125717008060579538241357495186173580149520231942384033691891130499156206314947553505750753012158930793997792330029668009564182204520989645534070888143074956861590062845615746625716838290309016750158460883054466056863935906264316175086982048006435720707561153572585801794536459315312786744008032136486239852752199682115109118193522753695427067936736639791193856264693999653511219503631930857602881732146417937750500000588808656906652603315606625586787484212514149053554942501659409183722926357680453297005679407034151119670214606364566267969055620459017596850638729213168388761568184402418425880047296019523873076009133797301301533757680990796640528037629368881214324696480582580021485516116418615494660909527715838753627787083800858307652123273062064668977590162094115843722089951235344852481221950532313479475472554597028097198517834917281014536757119732927401255752156885450525952538318572468809324735557523911275956619736434276579331842069597725421142203175220076808751969901276244320827318974342283327742584719009475215099780772104190526009726538752440702728708297930880094745371417768553439647154752258449010127151385723078260019044449446613537841701279261389896343165602612645506899897681871279379505964043150167038715031398528250850719140408447252484219734616208412899353790886420562628083259434754568303404442487470013708907528438135876716693887897276371142943999059192737977410521457662829049387531567876112825880215994992940303464451678483681673742918403341130958304216416748046282122490807208234851644054128903131690948428827753159008930570677379492372087486522506144683612578744214456109630936140875403456058170041780760374519480472179393685016138046586943456328246506786122249777427090046754790005466213280108880879622318039195859402724432175333413736689277177176712150083132447806384261896770223013031934699499933154717063779057951158466145978219658135195171996658716431234523803611629660566091666777085284008054121460360861727881185566553537181493962164060405968271202017867124209312274143456166129840905964362048790608408110743420331627178402972158241815986981747504898375894596698017439283283326212032903511169469236926285056850644069000746227508137975351064496717039572395421291533601669257221472439775617461092187243658467594681137496676339831640348056096563725786808115066998260686603479160590213350182370886347218110854495080673907817987975021761446643110232522605458818958754557807066763933464346911853671327184392135099011223688017001862353930956925392614100684425048446897386639204683444629702133557265562468096215195095421675837966907097472964497112671893731679862189829751839708496190041469732887067697575065938099321413946808651094145290720483929634476756272291966311368068490097451848631793333165130634928629841565843008667413955819106848929202708426005428583898729315840106529227807519503578849836602209409668451283006351783412992553494087623083177403544381721066363581962447353624278516393447292136257791072890113483621840618449835402171923804469370772356820435228326396221370732444335197536222263602457339458020413633498311000989508931563416889795982384613302701407581198118727506070444485497295248721454187265492911715988704305765855768230537616765661367032701925211133702190904427695126627388043075256010394134326798441626830838869740492828001231021717977249613954212610882122858152220755565808094498101088082081148892174110345458947982682811881215194768081144126702635991161784183448489097138612598916899244901941332035037031876894105796602460646481816139167833426835021923319241164908588942261443450412672363139026468571288022540284853373739982283302611830193228027635273317838687407718491693958454606440489933657301523599967848090690856685850265877072222624498351106174570653713664816351911938966416017751836101987984859606170909827198431522331878662461636105463920504269693442774394367272907992165218080494650339588706487161686434166821314553485562158082158786376107400494939417751091667462612272669142037784275239464400621362210847003956105270961718575104342656308376104239789383601063577652698720721003489551120049345642813312047484738499340732312755224262476100885973755731537027897840297493019085397987998236410784501069601251391621756524557789563218727141658691068671773806186584807206275520747073182860712786938520285123234757078323944423471021780301343077672989986147866224400828056504858397428251483657469542709827849176515918032987214615870649629604622488865444646031421344944793101896492395524002847623445890170478140317949883496373712552743368774162143851814170789169197149216480662097900346907517162432152674782799129925530803676570504067180201823650724437610358319157922004328480349344085844970429817086731611989353439333697053742300998813332516500219930136385515952522707615349388042880317053685672669534423932120310561187862275819991762802936110211994838076000179141045845693515790214689944307096942569238884471402112393091048873280531266940896760846417235512881111003669147401630501108713109482882999189279291831759525121879179074279142804539659396323578540231475432415946693127721516384021720257394665398175622970494118602578759764419046166267462483014771765244773766908143792466747506560001096322958568251207509573143816808196645550210074646755749232344717743026281694315767022010218138262174058832441611223048800012525295252057179284968273079026726409147235058247759048709249339484071303199968423318282789917072445416873084099847891557889891716910434423840239417245317858884502503592842315437764122174394979451366839105680974840483545086478249199137952052076928321038806227309644211787078478787404769827563423721154042416581107924359142477207649404283776388731253022914830577926494857051984430166210740626103698951056042417676563716832736852995897463226804966292718805035475659328999208546300638053103480628959911226916996742172337618010624454224675558405607332039536235117529333607167034650991624954403355121078722105993814092110670764322633985255344639124562994966788213660080380138489211987621998919174339262500371471947635644540798958375203490176813576935648880838104114419675443984458046333018754027567781760098161059978925961554587419191104418336728696551285244107042767822786377288373993470143326407553167876236573944345397541753943948395654568729125741706792385201977134802564314198250201684545293006260067793896659915318370315465757210069349920410642978279804474101498246965593672969278690911486761634150888423342441280310843376913928040754425648427942803053169286167863963021991378687946731142279907253011258800274704043566966270008233525849814933138275297588310798160409498319186634941426460425575717982519978870647199939918108564754798389146244186822276229989045796017677370846986378174667721486788920365074226659622064635694491029052859968853336078200461193420024690607062860036721596180669676418052638858270793533050750100865905849647877823413256448235579725039742805105629573703363764190192282332098113425020971685152630676217212966899248895573311154265298258327898974822345208470640146285468529445027638841936354635380706190182000146449670568513120107092339919760697533857111402613053726906425299034965354173669492713412231968535899608114852855822588010588846033162243734155951627377196868860087752256878045347827294748358070920696711786665850427990671879330943558524044333542980078900179247302444522111843035714475659878046582500232973942949269486232074500305736944724217388697458732569955736566817896897120566004411580806975093711716334076694699943460946118784547353446381483926709261466999325276894896469349568458079192992669048153778705735049024958510971255865015857839146423088988961599124655713589879519792987692064366293296956650618332928305499291610286840745646053403220630647979478561869959700072447459624108680400772539017506913004223266210491517954560890449013351508539249348115424620130204184313131255676909599596485760508927878158173477136938169610510078109841068880885055775470390583152352146255678995346088351305608675781078693326772454417663033716616680856030250500296761002791606488993667221568519738621808948227411947256743872602371257505644297358685461820757197425800575820946955867607768974610173632278478206304122400777209525188442578056472831716248672223164399965838635006067551138406310252548217979481391176596975734668462404328244536276364783197073316757693125497762909125416315779215720007020281070677540107524198052714578619354376975174535792076298555127861863584205150286235220425796125548518812306516510676502660217256764627433735356845994859230830000275728710764314373555150799888262181450192636578469460253955131725603912603646061907878131729135815638543350363162607625136496879942291720952985342902858975370596623300134695160576414109414991583713028480787146864585417547670308192166101469008833201417132327841541530143946377682534078635776341813331264539491822261300562478397734666808478708170992170510289035341217217411378959270003808999337330265857858715471300162160173345194880242414670879150263262463720938487298555229974731179206176051549885114868235822609480588543319731772037115665281607212057162059946039168571535036332873667517421766786597407095872422676625677845921971606270532126492331596099544481485099439954848342936515191571936999190710181262552605353622453912342030439647826328069933363140001497066965189559406734448375690640893637421952023754439790119243296079648701412045400027066406594643775901230626100629163642890186005812711906541544437937962760059569558703912278510027339507187828753890256912305578460786220181997699921133802277842379609872544268083594551942968431268490366520854174871167983871610626102239698065480776017983566498678895834579633625502221558054780077048284474095567771248330854158904081364395239704678293270436441558462409017214214162418117672067431453722064977396606972594411568916598294754937168308207979857461073335837318824824585558387486173068076665938444338942902207249239215772650040707971381819997224555354201797238795743642543149095046942181523782060280011303850397062094121541096613854519052136278032718561558122859161913584132135067806639784361538893434435103800245233678620396088218623993748767146429116986205518210316212235509549274636628571761157783304408534982667778030486354365684567031157306598838334765028952888908130321698166286380600995702373118542900042651575257950688513894000173022754242590569912027136017479162156334951236071426792714796104378170852953940475319112974109690003857218136873717259539217019682768797022748843619644319113538591922298441459220471639630352737921963479835471709446865948620011538854904902549325050527624820002169040139890025922277389108731686359293286563229006078291422561583587366618723920157376071736251511189348333408074494204040280576681202910573110583058126584245462444112633267852400711561973781076766219752764544553188295334113673177962288941718967320831817849160244920136351936370212862499656867308788511089832746786739529698430741151186368689834225740164507798901417147889553588690140530605391720366499777696124770151588530388868867912346194992249863244044692540489855724152124202676919863172724964524365320718624176058301125100062601474064821873390787133862591310179501117316590860243687257127108213984228373281389619037479475410804570841923600672515822323092256411754630506834439766489175667751255186978994495524618193964194076041787650117501818115792402214370598431326205224297952232482306114516881535057108797696852621481765289721440201310376808348233024714000527898147633758236225569951361270097015859317782825622310553378776466382686914594639609336033758693788964989700686308052570197841767224929083193167600866513177730760164175737074790450924558392055696438489790529823371431385440598915872795829340284818244891869287285103058279930436643646724597338813030126814139611939663437366884769899700706830161003066413236561258622131118665767991238210982577947785496613615986283839278680614992747996240500680078367509138281536486299521313716914935275776017551575539773178145026093140995861854355994790301612011455671854311660724223589927721339493014105788161392516493723722241516390394474381143975212450864702368970500794663576538779270952045111237449059171104228538490799236331283564913971019486174478311013196379832753729657041075191763665000277549740956851569758972010997757933022121586047611011994776678708998585582207852577647694205981944153623982462438869016036538393075333822250486386121915605802768540963207272106370083228783105704177464154174676886148055383469916458123146039223107435962963641171015351765639359936469419432401051393500836963545372484678327348166654966620625612593754186034163018279681021081204795290836763972066705563600737900247713580698194317217289828768536618301927778275626210184064814045570118996388981480267770700870700996417846168017330513500449839827641890812329384291017716170561197111572869732403489396889893550185880011963484606674094035913011432506589046402417521049470899347417992768756473962141147965214343816169163434460628802596604595777610047156174704360018288914168242372237331166115085766058979486804813020237789952572022037047287980951085016517809116075831607865459177649584511781366297365617798413168969808911254213632988448899717741473979018421208773302743263575249424545186060496691655296307105401966340996764506029157905841265671997223751284330982097557295804237392732340411267347720197915988538592293704043874272826917377303644313371900431365309294187019391155937297729620809852241875018670460094013973010101265792675737737240634847935144009797760795834407022576346763705145668917407894615053599153495904806350359058093034876749557399634212717398941385768849569625299642605095022992868064697108853158371452048567814305934513865484077909689674224867909546749213012904331828653627452037242741676303952786181449562438961165260928968850472926918423319806903073219688293613548575163695211516547125191993302741664120387699773895896024349609718931150780473436665568054458139221987827133173156241247643831442453627496166887799389283512892247195333783845587227549966140244727731770275809961278175768525713829165681862378015732313811268643727104982352622867367491021309709338637989089820762767295945707378508932680096221065511404315693990020483520659117040693564610980099835346058035821669801498151427425910098804377049699010615855162327100797007248275168269303149047254672401761381896564508157893454775157236513234568676718635506625310575317097291985252960974281792937576328685919121156745405733355740114457212335971177916874427404496717089821900721346549174254349763181930759325892114301984614922758386020651551482676878247128487591921775031570052276179823268672898240760190011723539119468939811047186430135968759141370285144741100102041522964170756982297964534234729918704012648858176551914144331084166943872831413035144484657726614275507409808110642437733295461620796065940454389419283746144286928912708033813460166487584678553646843580957523902133462503282793985605022488430448675965322010782071126032880217801300527124089158195972171895342347224700036590243906944213997934632745268014708759135856711806983381715448504103629117859889652655260430427357025730588956650907502968020612294849357682734457403203741003232960172263555307822162702861133912325817221736753549310576303690850374746805601574905653995814072054115680273819373673317458100771769423024082717931147067103805734340924370056899409771935169286302121536840980741931954192002348357983043102598592283030066733299101189290334850206573166601549225782390531150454153777207776093096645542038774876043615977922849916974271993227653717141311897644404080786411449716807063763504140643325482193715719553526061078369489285482059923382097419512818102646039443783330588344492798196447702906707116654919593936836721651903282265552431563404824854390038467676059579898345524623878668971291431492057290556251827510802050623793603534258729613634869372160628090022667082956596811264063839021173202495499840857547152685134499984842273617203363036379351291495549329026816639094022533086369869654338205007186091348217678339824353717242106923404772427736158716348101023395148313189212693705312482131876000506346687042403819928881857992485630114029905173137624201616206013682947142090197399177318605974157460333125424432985140760631667760021847250677628238791055699455708548490875697044927493488478089835327219038276573447045110578362975604691920345337327340322934770302367414464329296414665307133215335997069040493073655220922688947408970623509967947562652249763470329685575055570050289838983398383247443991287698245680021562056353845750935796407599099371431639516923112282010628633867811395175666211599698132013533577536765325330213460828747192044079321076665850251701900821920293590392500024475847964792369689760326564208577376281653176777440495613027894701192952424937981865903621315585138654470636043987290238262845353021555526007281374330682912992587764908713445656070701523171873970913205357724562603264779767763885158314518503472797448098299923407421856856433797599083736771135338668627049048967174088438302681472709833140911306159094781174305748685775735682598954432144040434491858316232322800447429257865045043907825652971016327653967688319173870105112191083402079434363063810664059481472314910866829254995122763803250266856569913085307640397205877590647205128075809085586024466077392137081101582353425182572705887019997162383209980348285806668530190285965703814150290518401406169223373959569260008769308310631322008106750046241602834070660855054198374642836129260486734317678306875320732232586775472931121273318425577934508873155137298024541033549084254464725089438210557668498867656731959721852043433449948031541247895758585423284887676771630734890545280474400103028952758736802840377193168184452884583078292190790561496673895695421028849687006171423062760383785874795555423859382486493720071843493548063931371774879537243024482042932044868529978378487747414695472771069795199769067683643514202164421069208662860301227710362762082813779333463163714797375618195090335958750236115171073641212117861051593945831518932596289408157728080529141532093527369083307596630462603202181466154463180613457938527984528964510805322135007539153232609560783439126825294970978967321243721733503634975256166630939540258183091469811327629639315052621573006649442100784752707644994830685585496763350475950186992608511565673842242021229176407012504811804176091298012298713467142706205729800075710992061418473612851939649679391455630193161977649540918202312450134241594967332368353722444338447597379743535372072739590972274063994828951269966858150708037875695223083191554436482208761545245144970193650573428823363092526124601369858448155953724800451073349820746184078750396536735277262771607605695067668993560319566345275674996818065012269225925444803687375938940841132099099938159031937573260892785236236445659249161910999177255722114535487060554537196804067374848357155292399644267634501275552620503325780990466637322631698152683994281014386402072008965283305961803591602528958584282750275275516790803747161681551576746499274721610348052222833012556692184428195970663418758404998679964816216446525150594164777862884560327676393901554776362935473839727237169021878315078065687225977105501365169610747286502323952263390438001507401420712733296750189884861650259998909601485700425398302257298578728375436821797531744282327218746865755157620211953238112097811110589720811276483683898236926284182346380660314330659835052475395994667653833830926461977247481439323399808719845650244159100520092825587921449250828360706883772191402529050899620719364746480205777151495259659130318914831671620618921986140242551930176549899218096721934924958888502982815003856412314076943490876884395078972149621386153484887292468764356017934975388515378844512368590944970720767714550116218740536716892977331801475515440015204876022384573480060615303202389709950025670010562738521386102672449447532089679133131398618326289729187648557721982604599052703687364356082466435104222427354737526643161359259142706763385901303694964908140543261464306017255698540305195604594539509654965685585456208006894653590418957080305192718927186499104229030125497857332957048487482977801453584264991567592672863263791733795867140737390504919597101656929308673777456848546047812358720495418265015392957668797148209201514358522543206097629164697067907758469931113079755963081539335658508419681824844490647480486676637833657054037907087042516142778739598942988917266381501511331092967134339030039982338104191641238247959022297012616147555882549309455783310320340876494497454231545410146811960660417645228714060867577365196227896618940754713751278717874141625132572115204594623645301077091716117018211311106046546687617864253706328755650490066349637476699830882526720385579422022502390148187693733958015064548969713361784228791408461425013818174152019770987406557046416196749327754900174603149595244792469261782283544461476115557509949056160419452754732998109985975250768070500045604821584227701343671792389420604957827987720598235241984534590447613468870329458498565557383821459310367017160056946188130948391122072176089595092556788568274898134528973722189405589700267091519371906836342856986476669372317139523621625135550963429237309884062903709123289213965306463101707246934571104618182270799825763814738594674082744249704440981653671232806119482012940737595161527719141801810366946885898468090201926079698001897997717065876022629225175832386212495316573668450420333057038849864215186531104969266217607933308298225231471777945869748044747524157514796906132672573801665455993438452066510960845359179679729846578353734068049832683811534440514648490233664017210086117783554307341334029333358859276616763478138651371497642176882032921638304834424645776692802812578172202538788153846144846706941163933890093073228762377878238386943037789746819287685398805522336969789757070343703180125562079765478435364828509918150636735005208009516008658531031125978942415597264806573943575557751877213181003052217295463426992617559937964962793824067251343484882018628344321550154876317158464844725021041231714020085567632843191005503086273793677372848111888723461906081152169690246217908831186692404003453126563109518370030468226802108386993309050303605660561980808050118903086950715056101671170936704727877235017023290103099728070891355769033197825991043082532868567059796030012516287334268102282264953298788271765261781418487136248337134674971339518806586178777548583275307940869736334629390343798838104198278303876295958546962555048788128144264634668299185809926825137479389582529321760053414166546129891656923572788428941231459754630558321868325965154129246800195570445647338106910711203894671837986242991703385798455016876205459060407748854829599377951272496605576656487537520578669811921965068129613971643278150482627016041157301944615784337609846261947502288113429971994188534951231958988833856893564623781413262766842787695529454169107327256645464676942507917652065135420953896106282315022731523515166569214742055643591298459890520279385896446164277836483011680295054435356941246927124190808473501018371567973227725721961310789931071924019347639086041616241007100925445652249250026412708833708906073105687483525286248017728327033511938600967112750852277900287740891868312650196574611320849343395253986785067670568088320971107506822275053026166349074221575220975364784957881248875973538325308086948379200273934396356518577481637997891836281750239249854586751729854296937593377813829299717048865658784190808954428689594877652336633028394211033169871046979655609272305197596962789316813211160724778812372296929325072411594873198131023329319487691088835191870734260815181915154570349367727412152690079631168084319325505473671256523282819764706922271648919949719767456477928857215243295467938681395612628557918833094764261969950318356290575921732971646960370748933299027937531181018320951934326635544299090742268087603501535215531392295810533362176209209656049849390906066322889990433329823912658733898911585564691326142918021502286267312595015218027979881171670104509971120972094885335643225683649717309900599774465911280998638928224351677640181743152459488612052915026274339382417820727008363567385312481737898971308584433128511825051331100096439764259069471149851653924280647572089711170505707406377841076812700317415571289777178963104830428663319211295181745310921453055548740671133257940730922635249902163886030159107738892914463851936267485225009479022859753240239601047970169276759332835780049984979342745652724394361009895065938296729836054018786568490413504925974870675873598669037397822942162657006527850301859571477899601549658940585690781081859220662183615605906468435692365983783174278787625120330093711060930273442401790524332580102731767232549469518549812824560747531783083851271409652073645838833029850381078874526745311424393568773988875123101978040621108227153582027238956524246796453777980850818275551919210120687724013732511331450612432935800416052817660605597090080034991936479187616886586003470233702931044183420960293442403027771136034640755524052481869211382999511672931378034665276029142493540122425272886770730410488206472803507145012420477506832665837739066687650764714319412500052792937698058970820410347472707630715909355661150349930075243097500877741707258859676400531205215480332794625925050894235836299297573252475706648774201654388198111647972519605429973588592013095059795210337586350302687750834706740818389293890058852011319498641416850687284791267978144940408133713152451870217909973567229420870880561312159115646332082397166576518495433642257972626869273473946945432998710890531321649647835557116563785285980925118473721282501474606715238208466778095076581609482118689584563034550879160045046498443583372838273227888838738329359163025875860150512152221947766516587558108982895344718163071086012474082669609977326395654801193786933835224376621031446311612007961493823400793499039973465087153530164592179396559292150753039509068665761023092673268003882006516198909128242870243997741718399467760846959189013516271412007112380275594804052342290349816023956748700343850916675767012720808024406705444721120727344238527880964213336388820465998320830858159727945852139188421319623506926838169623630291121218041745765854556984482194390271734792887236367562374316528720141893277973239027756086505473846922310408535726948968085663151420452496415269080484500135598815641857388196311357284092901030552946543868601211456741015349986959098983793664392348895445825797105879996820405465075683969568312159069844768564208449728129129744649441658180140711438619634905442331212576097740136992897577562543874789028884190978032904253585872051664493555838575762721048710693507665964048380169328430041062899464387517112470120755559082397035193472765281962562772342102961119571272826491609104042004414357294196318178360475792962827788696977271866092739103736317920072653902308270935492933300319099467796731485208988784451118389521623970708271321574680378077597379969015569755188872678810831914586008956252556698099363680464614783875343416959542301875055947846077016044616491555493761860821177816563703023571582342540715050195840393984802192929115752603289544783159230933414260776399361273158337183612700215989355471308006080568712714998427117539030053146625349944427069206563918277654801712391803001810323751090892914796476721195021006850621046968748002307935623649104699413097851797181731875501582005513042247702623075383739881953539750105249788617525132910355858729408076313483308059949912659615297979782347544389856101806920033653573728457702500805486026337113960590973112255281555397580420752380492069924971201115521735166724131753540156668427800479276053861590724968977897174914620514512006019684463202681404052059134087341935152732703324710903787322593972605012435157099871098993566688274223087407033553655869634857529181934902549802593334563176434427768839357895629484694236805831071772462898106268470433496225770320859219283983379497899267032200671136840909449386220340364386597832330116762369952978621401756486467272354747840638784178106938613789878593991795256143770833726486927696726580466439727785765606315333347600039132452244315440637586551650903612039433454921654292173349490023358677018551803566133585289643248564527177939531787889203905427776930135904338963676544371755198980705836104393329550836058855391507912851913658832925045467558960545972149392473113801588271068100793926219695262113601265777047418249501561799572762294435256651709081507561369192603190022588986987797308273611444089542108549961126938513137479656233534366066406293635898210125998888593642653195042528188567500640408048083746042767553148583415998084568726018724986274173765887786817320389127221913235923636108293546101751173207629501505007535326129856045147803185970821129164369378639829838712654250262315520238576828882115161046820515030440893420366140986849815221505711298878928798581766416907449717557363677913637469252181376927005158371519363017933926047943131315565522634758249369557854129628649854800375683056966140394373675094745139302885158095553843595601976670009071246027929162971656820622567202551606537236199441690067207248041699084782257252972488551468662751837491633034991705653609901225014867717869228839824013862595684498240721114300035285148923094280675686199606919423176856734418998263779831670844997534492970571161538168061715363878856031405464076489125722332346023041915930615650502493033815979056045473658472659068221504468241388989037078389879323276170689750670723576371961715871395667798486326432303907503055298315701244922825670217319874014078797170188638662782080335884251538460952284870049175247355835030962733405140997758263925533785059805185362816981291338077902078552002413716473933670290059336225298820986649351054294542016166360505201304843317941926300799785533200954892254958641570883887834773140961544012600323486372647037784331850874708328708899947070277901753489128271105100184988205242145998541945295986192826729844222458486481247882127442840310851337936174612889193368121931543993409866559149850945849184408162596241393752398879300317311671113154287683854693733165225557807925410896259822452270883961622119762672955999609608118338467697512202180526434663579674077728072762643008557626095017113378074812721106113718399669186538871485037152869193430351060949059700200381566964664594288607122113990750769476218158469967406735564243494528889462773339938568761962853580954086668650985733252202129431240955146073087866726317965991950728574425771601722155270278498638586889305049431232139544045125897657629178629904175118644641414156081017634871954699385907235651288874150081280571721249428779285234830113599451083550575690487458242892710692519935946316873915374297197823173187981039255564633821981833395448780852722843087105886071327085940326430401736295820665764439714185110568309667269837707079851243771971919316284147547176101931806120390942214137404422972017809623187893858815253748474319591279804503650589310319125566668900441024811685194058911102420590917543559703160207585714256542199947625243963350191608360181294744304484783564980421162266806460351150806163832358475889032527052949439907671161814561297716201098688372885795910306020497020944405292126545956798717055222406457396864907987676126145598525185687210197532913375032108697904420845658461917119943410223786019386122842944527960273622598514119983855280776075315103138789389807554668356116946736238452839284486914649635570778619752255800851701977927852740865666955367510717569436731844012299473473194413133492198148500608275438301998577763048401379943298113962786169338829551906949277922605437918645786203196823933147350464221927471544909151100250809714115719448164382052435439461454151396696465502387848513600894095841698838131951306176003034622342835085494797142553248274238128517015509779849621991551003016937842311845897050274431653277773109940521363136902918055666816346229338683987352367885952981803734165080762071675143159471398230551620734457834658725456928635190806023937197257583241514358773698014856192343541761666350155354672604083045593656079110574769092063391120047458771397884789413540522257407383429048446509176271379619296225797154576707207828017752458208462681707500484221528337079324807544821429859970592267302632979813619813770053224801451758493437912637562982343990220879987220538855425369143435594712541472631548415044460204606454549847040747171680683404545408655732669907614749974235354867562406141726367742033832194203067675738114682197122447022443462979734590127635840365828927678746291343816033273237550062955659433119702618216656012267828276198574003995794309521519955743803402413721931039739717029548721450849422240799534924945089901820032948067632232441427993945742443977809617837376724919296465109081922244034578005101373227193509553423996372136716819906530602881287558609892725078636304774680766002590957108787134035003553352403698306357298364080047003306359196179066447027446805269611522814332930100343541191349841452689109680485965329159901095838191137316801737752745608980942025103458327606515862459944615994896763311129839743393914655612277641977318168642931177432875585407909485862316735775768593095124721964223476062293638054162465810074999830667395353901552882790907455566146959591409630593009240448084778922780651132835450096503687172364583192705227187607594667188439812781598659621303086915446500075359391064464013476308106750603249198121305793957979715903812539401413758688604991640929494809987184213013492536052234124950028801287347852171894222669441385842908739759270061145297948431424318183415966512079025671245426454640230001797539597883115827978162582482778377298884117755581925439151426255847720641585772102606233033823190901263879814982294090276884739094719321948925259600143957738012578928361281397089847700456168110412148900024389137966321213068172716692258837603523431721946945157065020850051493364003360573398034689071679640884021020299229635224271617529873684939393243743831659518999393199489199740543702961101244768690779677562715459966195676977181562434054985575446310978409741182503776138069666945284211901086163975500874243153667436564175132051421323175604669409235591523760111982149979098125735765931039453322295886562253824202508498029664911689804992943388595707469645309127471559780185919496499382022721936606627065670908052134468352142524190809829737219562784672475018663187881334662999557793873049478583526493434724016844934039755864149103147855041299401579843846843209131251249492973403679634978875328827288733180350156637621411868963916564548408967683505329902791176767521797029800929814754595505394346538750120263756180477480349285430435245569661374426795788029866066648502524018746851122699732411104452473944318317878772370261483371421258391115211660264289192080625266516876210360298149518677150630661357895927316158426750013539782462058806317338133520465123168979308674621857046158199705916244077515598512444191650985009586581089260951567530688345342545000334734545452293987064111504026618307419224657305858331909024003544480661452934915964154888589324373458932518634748658885153630193502092914833399229481068001649303751654982420846997382611249921573109325205931438300031509628771263739022440190270056758284221712331705921323388187324481570392502292931763464953220242464547361418190581878583363249218795898163243663366626516197976838439750064681675541040727750355095398981810963980513664407809208103214099424682747094173022075551836507738933247752308700249108135898850787370931003453067640757508207392254656194158810439464647033227903298026288816506625502677556989521498029100196656367640212401752980251494124197086634781073767041646796408374828385738999161172780292261811165886265749751734489505533203825076231437371954242801914726343057129317434803265962734793109305392494237994299856262066381054040583611400434306440860825704730850561459415334394097167419257921365378046809599680398887417471329588073023925701913232513379671155627803364015070404022326514274051665813508527216397514740059207617420483051489880671904094573546379809075477559624227927349874593215987917396666730723025976734495813864898727071938926803180434404486327854520725275575326042098660429545266380176937968514430606315215003867504443065232382221778349884052566844150223301648612982794215489108907998595131854653826382354459169214884127399181850199716177393168374246605066804066175837774237675235556846997485148632329672954082649971088808232384890182413048705801027480795545394807274791560983628359820791803569968886288445629647985229910028452416560077834788613788855987447213795986665003503745607685602813405550637255556811040698202976126129843986443188630314543242617130103193073390232765070402700033732138039753763910931743881979952125914308990727108648187693945000532975213713331574772393447075000747041914718652533342061790936848187207058606047694685608572839431100273319327178079975062273980862339648259465486609867630816484146380003733704975515153286002143748700012798803725826231281650448011959479262505120629560821306479785631363176949092156143865519584266919081141293506967785119051853727602625069802912650921492136910569078239825341312381909652699448207499038081450323455423743382409759196463604008322500886577038786535878897177048963448711851760132073455786633882032689780836229880126144206926923697244080931076716498161502719769717113943874939287491303087231473238279891801252309420631376308110171612490876659363142516432062489679496605750843287522935692950687061750535967052343399442462869366792275790022030324554241954124814800308455560496340167938703488154716967233094268793835285334661123722627313519929844302748614598614113426688673846026502105485840540939487204920002200509251239777070931662574294055160414188474262478397618567158027827962131851270398369262665083917827923912130570773705678495723510590505671546478539334639008585460203759875547502360657412608484478605947742050057880919951378697157220750456170816766982267601373618797216618656142766860363034858399648133340699145018568553933750054084563197161598630076481566307197632948328397804114983200645488522898721781567682581686741854517932403747583544845134630816918806382679458776143150276084215016172828646750636051706515614752939494488674317228843735562299099788043703715031535280713178325562985728719586237536370817247735292787113448011382818502327793568998293980631837267463129000333024884036063269665223371624778555193202432254447841654263487043877766758956491254540377339252079280846077157140084521776016869465280064245883222700126748133864514757737518193343118301857431403717560039826330233189916002453058616155709091859758312801244692866656009045919474471940752980614232472501663390861571688201246778570101463529392583689672310354397741520599547668080930378399639479680508591382842539211167788461919754738204037229913162700392266947359559371002079204211524125807181476099341487877702662067471425931056355344248347808279568847384353775818114490188129959089940402209006692156390737504106563610723635110288689219618890452186160655513456129728334282467982927715027968177307393039716867106853110672431858165993833165245532710448732908878839869986836359786757129187047737808188567910642579507592767521490218131614104192311255005379506656451734113829860283915681167673211885920576187668088188010952366516668303535971920877024713458150980920762595839093145280125280914331869646814771781130675522459261292752167131633960099093812149381143669825857508609849996140177259603874910189827111373365941972030074661365184147793342410954134230480751135179055066061882971729387547834690586502536897904748025862245251902339545719003946463081363344701925629959413785302975731842938064837899266226300454016561955703491964413534703401425302400885712432231094929111389653863382888061390665299053959634816341037508429126625216590451319961746503368113955432136593836048751812881671675609531904579944198380498183109706614287754036110499016793567722751300179303457737084467550359739835696808082826999251849458382098508609142413157135358762570394342059264350483362131008343790425611999146649181828896707302507093357629343645517190015341846120969782763105665614916353701899214777194076095649604317923576246243396423743121188736184949809592003600873195269435960650221472774502161282736016690274413804271002179905299037308382316286836285148013477426270586628953527015688011936898877613491399574350723662174087760269332004764161200290798809133738502454755348981375067421755923985375102232776736232985094411493032488125640206873423626759550807442602867295908454538931649628422213071645432487596399742188722152649698966572008590244385307730318615984119349145962007524347609373514414930627532621969625401529146225713358692703448801317159716929173723045792558628460572011449125760439574029598652604806870516560047861574118845317976795501559393484104953418496955042114344166483021697368224700200042475756930341309731729137420204391529495042137332786251098214038265353058175639006406486972499708724154203049597522211963070757674935807940260090840165055732074127118002553523124962070902589396684459814167425928912203374482228761613159568563356432233183060929819328256795848725534380717183965783808355255308318094720644800151231630075317205837992983083077358950141951729874362221265533086752310567020198823953868547853542237218894882971953419521486578351870587144798435833093994497861939397193154014297049382289235792980437413776957458917016065537397213617990261187528304581656324261089681103109859757105628939306618092410926849436477403206422756317361774464529247236107050736691545544681642778160799573764052797318946745660523653162564775109806796856813406590179379932472510022018009176269285775030946837006362212339860639925442297903460764133947447930479704962180200205140564499679923560265562219563529107725647360618459424117447476605777807444840513683330324038983579082679124921959873382239182183275705141744168705718598551549328044691172053070446086025866777745369535627843525131239851313213519647637212780583948212743638441414428241140635318832407171902686088654741192273704987294348217014667131735188009654950329393182575764342931985768702189646127272575325148992437570481870256133530327619222379886527048852719021835580224172025285500981198454031169225760663249545077145902292343758903856123786637996760709981502107778228300625882442552435089685785263662162171846523376031555294148666515446933957335072442342460516325490320519344931715986674146826368027820808830165847377383788331199163545145117452690794815848316098755618677239728842874084649548696127763553730184492171708405978826090819029394369893385264988027471877869447901454822219619917555346508725610824533670497960035669421642914923398253172899433900609684521452908625419541670177918403741773862165799360056831389432165050820380320638099796709479320440791401156371166965635596599682260154859735674167133418409471197410843876969469444636866860690192087550320359783384491576743975331774991816489557918954617623588469788615992912362272509313821428038730756392902304632170949408144350441655598115364620358919772169147471121302178716671127705369508952513547933831385381885693475926984988182937099910174090829838210849912533930654280032563202794670521645250225798175651170610332280345677680713059771750514876871948200475202004476214096071355689060892093424640272361572477303603255132969872137775483330425140001033056785947718587554352921110066254465706476924513602530460634370383146652682206037738117563252075386360859471464973010499316812495985404542954840332688914809038705542671442916581018762261600077717227453309614220401076078804208693738511340571545366806250360884301779034876255401072915839725795692396722105507187190574930083511515304478942074423652621157640295961760314928701409212096675843310999877370035202576194531195529894405726117941365459625366290830943608221640738204561148907089611134681190946008866711581930172805081899703356828163928304796926302448513601798819400382305076840876191478801771380551216796924773406337611005189063253674224741479402856389276164508356596986538949038252126906861165196523851597312079240654271350691499474689099091219853876656322943374344813364620117721596725896099118242962347691573666078633869423881868288911890270593196566742301078621580788779657147425956029977757936728266525184625242324826514003058837315957688076554373062587597502844267060122169189055439280544529732583361819864462683497501157608206376490037772678874496667059918955624403452150854202506772192025909379597858733556719442682448260444394163551460401101360115516184003415376601515348568152045899005299123207397775781645806378477667188592312470559193321316987302115304788320766532542270921409121981072112736032633132093447544182089672636390819252309954101738451310319410518150610892033728372086761691219815889678290911743166341047298428699851377846474151877389715608931259982267977747901511471016120495201504239388824429725762844934225032719872740074739285613910525361449352821895211724254733629169175373380805779075780628145687483841967868959178269592763966847305047391146588440995697040323813252377538826577851121198902677491178738040063058079733865977506697212022868280975238561078823561795450560928973123296246760501448615411754495096430831481914140277808051667108961477316289499989964369847671313192444822425168161487175730844258911973423668239823865477347841241940227840718306973257211891892968088365235786340407136761747334093577126654147616279842202525386666819980197620362303739499486739737797916237046332900913922500074061582460767768850564069072612194353192419533407839720725835839382012532324951559618866408837577363934872070751520683301436122223409514901437559886505744052717001218149260491736245151574094916458928766032818960004482476360053680793548260893602319622048904467112792768305406737022024322571035916660017732384730887193310738786090037832494543029483845662897768805545099192329616949672725429626120824806847470833177112356765429256122301401698566818924228159318232677554739293179817432293267343239930723455471330701828314229762027138454035738435002913692903852003539117632183174713654718230787185224330189089458202367283605919180002155140397931146768295283088791513895432267184481769716876792344940797505364722656237425602978368181358822211852071816363715529276082153681962215773421267600981260415636871665693747044136433983850618551032252204969028524772832658721606743987380093394594317726112521692957771564887321638607234781823647353029937864636189116658941408511216499566217626675641422601588096075848252255198236994206271081713365083944055792088146183048400602339509630190366457675863759119461906611782761831818976615462041595795395769680788971803777300169259291510017632034205950391565814371767832117058760275910382633583523654411735760955223044967890552522126665196562332334035009322877878081554172242247879794038414788914629770485227245934974008551547840354773231905092189999864936080966182792663482982158491522550872076702635198523095845575754150405931625637466870786048291790355649304931430207150294915370181154639858299352873427364828277549652175710961356496607397117598818645334997782837084218238502771679437508752885240049975242647762906481298199252728973761800831378539393872477083535482778010703509232921619720694979377228148243970142633266863308752024679313746128254964015789881563987660236824998663199636289869787787936380703798036024923152492461348044043501409671245454330319095212810848372088245683781161768421591216669545341783982898964421041398822310380518025661025650110068828673056807040479431836133082439168263581302810376628008954032614878150219737212170083137855710364519614861362781604434969537459148492736836371049522509723697720567124489426559328122655169574874888751046422948506473185321563819746892384226446677581626439135295076267023022978707753100031336500097162160920698174333636042410036534761250192491295315474987497715694390989778088730472261101630987122966461290327156338903441496958917569040778962256415715164821746109565011671868040213459746403798774150659939444347288483255224810547679777645413313641055786107692845075885517048750562830642485921043966076436725734837598809907955600983575615581407577336506981500679766422897067750250582640958637146214941740760190021590885307898635223788596085424882538625242748453281306605029053604891392427228994788092747084764617413343797195810645749861366040751785335297236798550832036816425846456590938598109098716696439172027485426710794249255885958010525644879794202372969478318779655588511302164006346840317327681959158711184723104153720047109288033729931875542843226680010288118878996118166168932884690416426973051838562762163705570183615956985126035487247866744531173576955823228557006765239694570378820322457820092244216543881518741050323868410558022176811775082422762127345179466942552237344809534004726154408837984700979509737170197388229753989805635163094767440970475858835466732428066297270609288682478798655876725104040663658565523914432396717368168983205854886880944103846007252818044190232601786395287306229633002077349383833210715606961539802781478292508880889325357222210054776881442577629036115694805325979828726222888342689699441057575778689454267916503813642941968757728173943830967437400879131414768103860359353526046775244518982792704075230152677287231611520909022561875963789245328133535022667576547333204007870276181681148091917102999245981316135385685985569102469335456744829202367450751851030792112929225722309311947925944706616355805569480166854468608521906444743256805342157094826631046513055340317951070880160745046968469684181638188412345851096404825006604685357116824488182754793225364205250838696855273415288141880805763087530247157760913083285113743069468770555191921064316800774870563230269854967276026838541840772380805706495804684488317625030208597733476161244692355541806246155693665054561066799227285455549228619898734453378141666721815588671118766161005647535163604212856817581914320932449595202769519115941758436738803223051173330438209588684962416142242649477773525998109885328714074429638858486733539743608922306786998174730017471304011148941861135747068992269987468682111134557609225350992241552721132537092977871459110539820629583914991585340303917585418889547295073019762273941089060248046986529672806484856161860638905401125131177002893750569396779485988478085801132581432207247834863298400062918132272477993087095994402405741813309816934456885718456961189491721249302673153101349469467046462739333616526548619191376399032737222615729536916764679727784258009340966491769617821000621468144568607658791801379184656218243967921465310193085866890389014165046054935807139519910963634108845772376495390965988512163727905278405250339760696065277826436679380756000212539902129291095645213715957626595380289742632274804115878272910294894502200655162736449396974884910956816827394994345059680880109949715416767787402904472402198766235192507945250896574966275840086233990686649639538876117307131184380717050134537812750680110370578846993249598869508880431793915520052119626726436788021643304828442870644383775743319940339359602286529435156582969530763759843231592447239363780810822163453318680890965715133274223502769314814036304512943549081522599292327807284030552174729873363868416486386307015921844704799791877483535961452882318452739399599207114844458299360314902018907389540232700478147728522813428966392104996952573987672712617437748657016258450858342630362978805673073360921266111630463832890390622876119030235248185860690338123076527397314962075166886041790034343069698162564134491436474826368734596770193959976787837831468579709525068461779594067018433816778820363654417574939152854385056009822331968566465464067171662302763472750052964898206649702183670306230028449601888207052909088960953538645420382926186072123881753131178831400669662633308512620567599350337202960352145609694937279079552181914348800618593101432747141289368049336304770177906225023304110965843109744287433389929769073471429511259266124313301362442856214315314389270325518837742279614488958193116147486011896261917365258921258983716141926857516964287839402878325178615166265582808318094809055643944880103709391613324343105763925935657269782697368596548435701256193435066398244707890640786664311907692359600101538776416982683269370615976173113555445767752187423869177354156972921129920047047934273354527091339020624446741656164049432999598453159188255094763055967171893695403614019963989327224176683488085774564385698997978167182241211525448808970860709408492275279069589404438787825914551976237502501686758729842813895245266126805527532052487775411276586148487044360352613386443800360968438214880665178268714669129000798484813072858565211876894602975151837763013506488495172651175213332389215371085995380293889220453702716550396907435095368912157221958394890514364756789445352114459228221156231722232813219006555498846176489071038279294533119282686670478336068456073313593523144303935546640582863720543033008466763341903272519132210228213349199590877623405304354610056535505603656384856875241422012556876624031480249038840440827751504107155903997278703871217945199747418164747447500395540534453525458324029709804799877852197987849982746438874495862775659703559052587375383559370120574262245212989688268962030154569272759047393015120315498312892655644338851754164036021409491401586544721861645970136373228159131469447687302128883196001202544339278646323642657420034892980958292113052159032330704441246087191044936531439107736981298781991803547112004096812951578861038611561934894632328118136279336955859496158103089992165431268739143243671471822505132375302375896465886536854348989054434802138047319630125512319570186838285507547418557380731669454457911976123659651569908472149449181213223718337298660505488442959363189863101804651476616370157376377055714230828283610714712460437879590279139065312461962356613097593547656422300131246014695228869523383900190516614238268629256468030674752873443855960685124089156414772974755041830006378836028325814051900372996041174801887357182298306258436048592072617865360646566249010700082334126461819131434097161488174142593769566315978722822894586844679770563209676926734167063857558815122857843351892615124017865429260492442871472843425051215491584067016523867047179553447420859672350613115083908562972570976221246080327612341380298721006621414378259208918770100800765489025943683259151403750143615662494557053466191772831111827290278231803394994220925335684696050876163943004619111630987894198314864463588176076990982338083706742682696412014746362133904950738945024417568362810710896568908674758737142673314436713852732785279953687800794996635256270677005737033624485701752958239312854320408926112145217348471045620491205761182065400148767616285858909621454455520198019754867764750619402246177413852990632690553560000054273503565261822389724045246025632803053459478572231994619142509010463527066747494833361297313512705532503937618853632344212445517490282606600614708518941206796888933498363444030444714042179894380580684387477189524310317099410603497033889462157705470598031973727572951692583266300016793616974570559074745734597257408576796806591632160965602828631346681834733664046120358449918997378557111106616027201671949913290491347803402787250170106411036610889174107710547843622768927396856064703814835480019067931670465450998709097005338108888640996114737088816999599243117702341008487433247525153310245329788604467776253338921685875153904076225141001482253624529885738843664030847092480694916633610627567730715292771011417889955099596998817077157769705109958680059468094226816602204765420291206538164879794599130387237194494432468268446728320463623139784265001514176339788293482384335256815072966248137671611581369710260995015478924558112496253185351139401379204155067470883810187758501558456983735441201636490960452122507491894901223995588435149705975644549417654766872534895842328213350084931041191418201093616890130969007371685236746835200064428444193847220874538855199000910778086903711215116696063474707562583883034395391903502350633948527897880240833685603034181663717033672169846615586250426709007529888346731944280641008423896408624075499429295688248640106347882446254770317376368644834267814852164355883328831511895671188051808270077904177963559453588821357894876301455081241543237740543812755494369112683891077985376869821183453804245658258897355429390605061607301301883603708432752962424124609537621034294681298229323267217135049765988231819989182156028331531361756591987666157320781073318692999043924463249118662643594798298730883845419281821558194836098010086926982321508674866937929769719331110125829385904086710901745715202386415501802070658528650673439507307461677154096974596069494090075932089375887251238656629778891486022245349554413554337686207193447783142004927643216913186363601997925062909321913957594786221853939235894702804872331775044553622627577150682898952098282406929633996100145347503067466056100949776762284158067465490312234473354983250394150681632366093131895533000290644171439702020488816837568449575844828432699773870877498735062226132400671313529623359930908540144544418093300519084422278147677024527529234057965248379175009307815768231342626580351769035555055675246833966571995243447054469483525059760820652017295321188014164865359845319627993356716661835647377321742757841952179834915187038801318841771056743842699867308632101796717457523327197235865650833779900784282245040372151637004458971557390599454443102462494031191159092964114673650527111039829321710421845909772086808423490203236823229840525164343541571087936283335802141174912628023229360240876681062587588302972566008092778466295802319815835223502280972024617505346372420730330535275175309690168696142984164680374116484593633010388528151583509837968282291860972057767526607670438505758045617206666941835200061779318053264517316048086614770025467506428832112229368732634633181981532859674980695579813518869989629145996156327859185046997446633655530189994494268964231322621917315406496105161129806064249552315310270385964254710313120392997679108601718690016263966561975786079402030630466161530481297735750864541549562886245024483400978075881272661473763707006944131952586888416724454346995231480961698473167788160913433919045379807091567566380544614249229247852705534600613272558498044940428721290493893750418172699259376335631917999029201730571981933511601717661209357628061962040777075459215296709460620944507612258883281369425348227445832099924180971195440991731063642623327747169574673001409087824338887162488520129396329717639058788848630326592344007775974114605883785182349797624462314014612882910010732097277824419060140172328233146187983107581899860141186340930653803538071323136508827632910175513527079361883666037224726694929282585508875261638164871141357295316515424974688952547854163877798902321938731116231263244594570814268210454156479782778919048085825068505007282829376885229011036168577197044729965349755284382234220879416445433193670037149835302303792951138637663028388106840228321467752387406515856322533674597255710260965223079347412567162124692303496619186998057746574514108595591280132142867590710324482266235940856618921103825851668437233475443606932234007337955914623587432861467939298477285765840870945002429917695296954058498421723165762325147581847651489253343729982769747937516234505781419677724636452187516055158756880756029588546967361822595032050115233933507997553586505346165283294189757926993059924769367120655541536332744418535716769241130158606803034418935885690183336573202638645613017998938822153551247083021051267610651900474352966816157047752174660676991271336686418736747181746788257375413042423211032846009967132812906566329118050063354857673336214994352490946361145213359504614108793553758583135452136115293692433056992248793066332256990986627167031224132128699179088010650145713612649882296160300756226513884377917694589716996538679331453684931407778217339451739495189663515121618952629177694259162909428428190707848534869218027118233825275340015258098675106890567320003078275458489241204055306129575285135308354907031057031207614815752399833594673959283678507119706539270005516139466041726995326900423184338364442746170029049309619347030996369189608629477013865005266987225825106018547819821588781417977233948671093052030419916935857003726741924263037510475352230608393181118767874293093078956551712617135434320719302531318502264343150629465749900018817335117093964730138885443411837440603560668098836478506131246800783808870178300971786935318592468965216080934893277520040406222741204848678362337699249780433685501762376373913480202600293516357893176907064802846029973832810855344302833057301615125805986049114079533288569706757066401901390147844068467390455978620906980190280222091887377515709812591224439484682154875066028646271400958691377565744467328745374917982409529928829058553713176979713291892372004297409126556971055090899116315542113238467083442748182049087779584255233162331812854777249725520579428308105883626573098921460852491137948910746992163348177944251694128403393826912197897690028856414020205748760609209729791550704355676467941398238936214662636251564983984142322845454810609710388927107340671330030475742677475188875365102908613526231668491768076461600122600585333063296742260058797971259973624520653895821984870642582565022663836178220443308823786987606925224055541533024949426189189634276769982887175423914651571153989509571970440423217673512242053802034634688096820277544082914099316564581158397224655896489808182199471933318874893348067066263249648793765961983930935683468585505800437636240230666656825260434549437571763607272092816126750572735079138340950644576491931458804583595984489716293946585663062813206632955861129368370870378830218737558490853564280060997750722141595528894145369279759421035871308690123390653814179870326050144990534281969086823403964444033374297592782332208186154689831392446126205549167802276659414289999561569334747370088484925793853906621077335571700588691301912989861909646526140490030253050499511660043358106040949222152073619133018866879059534756334137011600103259512013115704880678998014374384790970238175691565461759860739054215765956131431026540833324714215063631472752375966972543344512542842021776471150763515568935975176726424731186586601061768879373379004109053032423707189682365365952440303716562340895563921140867558834174398329074004798873362358773654455480112015444645838927457084129556096893033845879825301057795999303150021036789529558195882319753154785953255543378526322415709200987283719379479862668485802422136176358152547699381262326519484012127906574322288238540806139240392246840482128146336895503066261539355607339536993830053476518962015415783235871274343540867328274783424407535615343547671995417348722733747541548601052169009096778890247764115159844347818574810422869167338893028844939833051669926964761820255108310736030201175373306385062348023114269409375112739863910327487157681349620489374407548879698804718869175588942974494604838175394514875880389882061603586086619484075424242069784837079381002175452163929502916013211679777497040675828198415295393572529143111838043781710233691545692999248607581239807799607703604528722814798258553582519759112865718168122004879908202017371275640335309644623767603796640436262543940737598443135295973714319863322494444360909669673613952130934285092486985856417107100442593432465494881145051309858344283334183328206600715162853545601167298193082691617359597882949237981565592497514387113377303661476509252963415381041308856992036166237553835120047827293592384147644217934887345316707653289585051824977410041891313958566038428133539494582261143746553134589557136401676417172492504380773063050555115873796429252882195782993900412803679265865417771772582952385889280040331505388615295981037958812491062276580580509003562008991050786535507870075954399736269075097392836226846877315120972154779031497596622850322398546714168353221777720030165344819696599831705025453636706570766981171856571317598849565829197895771900723536061190836343353550794736679999285706743359488216930925736189643598506315517351971688988211686334209940648014778315917960198797413813949525650985306075322294383168024370865737407689126468998822713394094495381842641083548428182047364890198804158491458620921073896274533664019384902819851937985097314462583534756124632347267145490959892606667121379382540372533936908149717624688530112269865311167498542203459237922373231000510587547331383467601394357734765038109918278578114723471588416066860701972141166646611112945237587575887373275483121638379152020148330112212309660690760760810803128833624781222440999201845204293331799190399665491752545982430767099998768399159291672137233686593885926330055393894243560900563221911214215727368342837714019687547930646626379589304308029905637350332733238940802141133632788592168998513111305237710589238022417319511080921796812031550519417545167126834761817349717537419118222946200078425047124587930555395647283702212085996257960782036970314058486943143663252948720470734205173010157190480649794632706128064890012939685492436117958955800825760562096741952418551743289374999776915496937505726345730034790687125487664295839081333715456734276148406532428077746503854783072692961859046146712878045365218472189373274551421582817957193394480691420942520998984130470343958893327074745551590611957273991939603704318512781079195955146312934295339331844102163415657558450484819604121459554078487909625047717949720609661401884439908403225366410380364538123699548942696748974521536700491410720514123516599180598093303978736335313491127865672400403715714430364186895970956926572615611485582375224809881175062094273877042276292499558515026324487734571264891245269644927672280968595033928266847725405562395500032428777834014547102559226917006266710359081671017777958853341345701486243817994713107938545331686098751227578157806837285514209197308426331335851524655984330970836645211535624148955184700250705114337632964093974267200545065345628637201986566536123898657735967042957769613436342785042032026418729487725467541142938094813422993662427702938067984773483011612009453513122527344342291813675151960220988487347862261989067788932697739086275651306604481394105510594898520143995573020263224002845447083416926897740170804985498682825727237073421780512349739298252559966963454215937472780237123528218207392618954798496015332955792732371417492560394522755142402081131457869651786688527120918445715994984846950954957349855743696329166767710145566737646819340112377022487311073296979357422844228635512763385022486901833695858378344752703367011475358616455222975883484791483180363342153162641478233858521268150885969270156427744964781527968474875947522215048434931183156725152548586160277995991497201583254966289156857487524415793193440838561923093831056083255913510977883277696594819945001856843196745458586536272531319358547643206687510235966866301040296149740822835563997379330057040269497311817046854115639871946227545950896241428944673140792295350796914423629049581444008830006022217742940205997307899237712285261737615428091486010901219069088243722693533572982283419574173795167062088292759774238444720701314752037104291207963494545616937368526759367387391845640386359897679371923378779247900989217257295116636250233798102672954245403341831943637347457181210793468295398577950148315423131899382007461671529908465272461356747675605603536748352228652431084255817434651531771162128933661352081686221021014737839478655786631637907691494356102716667615794927986908040845660374366306087474849408206283303966625750225735516752597203577542411583314443490509330817086389687670808498058635336062993686700688669312126737392158013600950224956051884101847126204287203723406322145608689570389804851879151748316421789074270714177038129469859133799128583054874206847666225416018228426237687780934037472997750932630856081436324759029641893342008310482264054048335668140317431575971324658216283906772960359660557236432500644105833959860894335951333192203528165097510468683142085785358496599838248180333003431858428823647869936528841345147636105479530617363675359942619841976234421590524032278412238216040222882753108642444725163109042802338134268940533751206361223148839939800796583653737976901831357713259571338522314256829595072166847930507952495710618757246246240335442804328677419712029278917974784513257171986254453694833077522910266410109849808701367398743025009497780435303513544545158218390208935529838350270563138656143664665802177756587275444558316173001526325227582981231545510484218374280748515917984144165710548471187309157719695006111382969821844610247097487254628111927560975382480312123457867534381709053066359362181278909695952863489621170670974124510203204334148272470089098227433545351811095674069744740476387594160954385177158456550124068335613442096369182569332753021797295361282847784280497362681252740712826222641446236184671255907532777451433371585628151884570143722909413474169536618228373464963799448022447112921578481167995884802103413608371595957371633906928729985039766590134901935867591747083920035353946745318581388288182709485878116929147054665406590485525138814124581016544459441236075812252157971793905839813037771931392597036978508196391743099331625786834773874486798121841405565157405539389181673665396158595434990353505216246654748455563962655813252831912926288417231782961708567636960091492218955726164815305037149761992489266622438168192759245176914793510470676729237899875971658233083164189698570432799628918055343594677832197583972868062739690301806071397286047671690181367109518811702253557371973918966408155577917591342712784389112148594863932399826405540549372003546877427999479157901172514594671905097755626398396239318177708759764742793433768317021610311313233600212012202395081824037994142636722486521783424072767980056427358217571040547784748639940889253017062216183395018625890195568772332736286760640139876867999851644198236803101957134164630430976136732353669310624388011964318158279379987043829814892803495105517751194585522684173198183518672375754951878413952223423292700889214144159568494766704673253307579748194242296300549316450395758666488613445071103972957703447401819761386525932629776845331667921146084089054018474164384954045314830354939176681270355395632207092910244662559574257299670229378587921562904356794603053812205242477209744315975211841469737546865233962978031728548489848934028786147984913316790795966271880426218514582778040860314663466429445870239738706118821149456217913862100152600962974073331100330217578603574181721339647205423559161906371364458058534354972686573697153589078556418030984162524351937633586616690100856018069014732807120287166864281543480375848604540136553616117154805823201366973265047296931582709796173630787805481645367695295390730551924841197822920906817732904037480768931889844629695731817609207705421415492826787756159331997727748412257198626080075309967748307350075528049535070311875896431586518102857773053963546831090627658370343931393910659746607034853252476425422132741109210620867432210288775764672243488159481957234211039231557534061109648178305853308586493399587950798504211238560455090495496495654934573184571978327038154283197484460711030088814143525665930692988657877078198672392485268581584341333295920568906024622803362951101576414168040208367636572150569704815479778655463520363732034124963099168994912806570405609415611217271432756957824485027343222080733717646891590071609338863036925374202714460689638109524059961316082133544309947661579228466023375777370997554512573809437819450297744804278301501981603019036420796302308978926290397353774479747116224273133166492014482759900773344198027027379332751879393785135206031414170038886214447405910156189607027939151458076164221586598111587122163113189003789947938100360348846607270678116733412803907314051565733333577068054734149195010753180608740535405340122770277645000715550515266953201400375863661160052644116340383101750539481935266165723886563635449735836408149975590262539046184903289761028669391313480884858785777727528054501878360032070135922919012750805072064916822902062554852187227708698914605237402715269886520338689561580004868394543614477217222121873493265341631056150186692348054273281242082738568799981982689112863299670393672254223787161059333357913067310333983946898384159588003845082835235855617969191027335480995874833160066316746229593071705818220380300375660702345331554393065032384624109757482717612136228635032605948292815486406005206132317174712881341206502043578147103508434995973663498525581900345011012305320674980370762263925195912479042849604664718977227427851208010218645670584064687624365401244448142976305656108080169860472104175709916526262223820869000831278252320482943709993920812830358112204827382377895456896410877028264798054280328538754352101856987567431369910301000391571477665775412027029155351665614803182802728485170594266391454245800396269869818027024460186735906322885632356674710394269024792671140274544367339095474346729240087073702439930401452142441996847382728038760936562807356834352180370611342605830091079608268620546314579042889261351538563600780214036449056114970177031350827214387931257939987526956599451680386233907672637066249649254466032227117921055420172277565686081158418706843021471400252377299754700199817092816592765563833605568563768031401163285878817235949684394526268705345868419391053259781900859498646899562849436372101416438872956395958485228799851234564955725722276041246809309760486106897767897169531941803857528318736707621801970781714802362806733409696561905060950012086965842910225297453650399791789822474557593013933601146794572601898214143299094262077081359803302720685748642078465689253898083984601164317855867240716378330776643695824321228946038277425563457299865149022075924518604553730567988531048707784751576317357990173919788760623285697004714997333453211765257354947572853769260124563774204164497112172217402921720878883077655012403432284679207300958099988909852614545688397062998217975318912149109719356740538032949726659508749196606678308049891479687182796770951392842698084683340328951865620695903292705754772489471753404209095602451206837874766835443494232522700990166792204659421718199013247941097517063787596786852922525943446872544491686522206789508137357235649069375932103911113248632165239328184347284661625576563874238434852009547695821035324823911833737112829958751666957533928793473820647075823978541525495426637794489324900382480774495691915726149089689212902986913081633626671477321044768457375657512739919261431082602261193441232037995503118725264297957174566909852542504835121225436452065284410225793926811141938696914506723038337865856224615068168594524450193077077080196716623737995319038091059957497320911863104575953067254408709392770389809520999655635551974807988699566137465090553732828426125447989816915143537053204358573348549522288070008505558886661565649942556666811290914546075477152241442480721980560415026890762156881237615270569499869345827819006987938102228894171827124229999113023944042195215383733926524990197302542374200976998249860082903099864112205963156392265460765828052974473296911926694984983883290566001775382782618647689739136937757043345941301257308668170558348030063794557852387781991015940637766846622100938306741827711778489555209305099447786359071935259909116264912232849587811398133122434914453956550665750909495940846302515900278821038355848018960314400699215654959590033677830773272720855523715899823705242795896549679901125984234921733990064525129796171417486110378303625478476532897227466323647711759278069412078658864112495805291398845738763659585739807373793981158826964221364607677726858184350418457073084813035113440617910759857151510857609276563517656055786242164485685278347619860316313361517734007786043721622135172111296933704751683831900309002496203245587806045641459204494251729184628396918174538927222271912294908778852047344648125353433113890155563818290770503033264109993961806638444816734310250146218622191513445648061122609207581515941461792845217320485888861935702521089412974933423110337048261512046868569278396129458799426324814730873867587435849668988193834279201996823793371027647892279869535135231968849894141551602168791087588974089784414224784621703594550000849155368058617245405923029495179143924827790539230472807409442515048685097184008789416292477845986192267748167096013801011504025551541839548413910752446555550272811825201320454403166847557707284757741694101963522959243729544523008436129523908175659336640582447881290183464853386896642747346387641973473080271556948375841024071335397485107176667380878312923342749260245225464155186819965217477748542573272939480088680460237140534352803802787145821852299300949247487973805309235401628527499821924212629882633082715920207182666132536886285442135436634663512544220937754331151094666752714585704999010888974435128335820815386503537053445939452008414789654162015500321905656334888060061658868933435858346350617110128697419030920057041339805280453715916225436375282441118229735642462707948271054679888310512297441759399928933722738412521225461041293975259793174666513747878766126852888033454287592102993837035971351114517520565267427980255747594717997354239983698903623764848036501568495252250620579220395166271640978926264722368991566653705889641477177670459236755436593744953264206178592509009251759883461249086430075912797044277461425686866084198980109224927657974168032472090642479820511153541114502966632165865790188693148678138658282597082646246942541989027727171747955192737526070354374820311859544665979843110808951305208378977459243258480914209762369968425534681006893976106773818852860306808142481007240139297750722605676253491288754969488522288880101062769188037225454900525296253030082064748864857455579225156579636637914146059905889867462590385207225168293524933674036009838323720811741979128774548270221877408215479987175363129615959366296205031421286939138138538713439817023890312996467966398423901012822314625628324013883424479651414186725667262866294627868906907192074763311007357979739116775571420989128640830697516224395424329209534732299821319802501626965030440453954227183529515596749336643795927656998770349694535216147493472973461937166044524477505983177487240665632999613697789469823756959451680525704556827473977965063047032898930558088982361215670634508697566861378116901475415534113901506632610058690960770913103205942349087365749615810642639228894932606275349874098503236528755411149336120602520107912464659068964561958421419341258576861809676100887986658474494723797425006447494288984432305250393576634269576934139340583413845486542449983409712628181984908723510672871049521680506024678007056920602398851764519641553627073371446601865938835275466656428740830998900630673521276226932497879609846670158705861283477849612755353571388139168569651770446178256327962650945958908391388345730926304788352062555097748870144379501634927207475803763903479285240405479826389583148586635423001741465674186767573898779165756641181624784272873947526911757027425848959383976492443366105207915357260555123232354061731667814034864362194082604379139529505842203915483090663580933415804061082485931944812703473130279572451794417295347603842108834064393082162188440042839973329951683491784831760438634644801973361018373030397737654235546191751504814927035644619144240737350592846610393264910543677397455110275899999388086865271272170290536639547209938467905638120811578922507016560295212339072078504148901426561949449703921792655659009984900635728340460275173421167870693654391531750569671754846419603961052944992158622658950365017522413882139505428132932672390620156610516864033179344659964943575124251933511932450328522478613445276838577719335443003612071217102474617955109517412354585420984586230731684113979215490731036443529623122156795823759307933806235035493401668327122705660197243430599364075062871760823390608344267728778925641571138148782544854139112456683458216570692449509540235168430825512460212535113952869822315682103340539682502814987987285534083852354275827190503790412452269659798243029988909454711261913040573610066889767254781192318289750410682993493268093505272341332026090630516778933510643012445019180604659351963908939014091862909625324287403138314335721343791896835965248454904142673244991288998264845290276082153103198903680779025047138095168752906207028536937897032843487335788180207661742064493558996007736920437999488734638190965347651705397072194409125698600397056286514660744973856985259174525084709191998167239905163693366562041309052069075262317302722877907737577690627495795107552585488099614422281272565343914823845990825051511364199970772067399341351898972255242919353856766909248605559500250194975707935371694911221120341024780358812258617615440413104566386479100070436746742159778645357758711346786613458037463019581456546951501236264752366132850947022684648326771718843664270231789171109249422794898246739792976973505506937143251599037187110054169405379046589330343222323161954384767650129891510331007864233371865975075707547973133674227481400330854273707650494234877456871873864379173482813513947415059776786609403263970800662676430634269167817938977667835807939136987994988394937808679019079500870957967084628037345030936919422934668602655942687115793938775223567436168708242816918750710797609852567471010050729274448131928050399410919046676093822750106613105661175825959793595387134491430665507898585721371348172819132087124138878349536416775700384150842008432827632822669376695593432934412204860637866109132421680090789915131666394901269477754997455031461137679879373269816432542906694264064103405104194647248021348606307118586949863891952961434352428339674091678100022209162275213759364941268345470257645652619978974757566595373357455267821337716696587294006562290763643950834794691597565645085175044741668003069505204197988803256263171982392550934475360121905985101283491232731769968324812020148426212476870771064312458912247276484855886054895023042619012882635909138834142612827727969913531888147411524209683199665189386116198928483725691320600617316195311041038497538131512421380461720659622477560578847796919258226737972511276615871102944918719418498326641917205056845384481021507877787149355486018709250754914208439399053819589081151480687564944108995313360711523943507872362012777867558261061825321564446922884090160677167770689528872469856372770676049810092980477414144583338552983472564588304682800687352672784518588086722604602861807984573789756974313627564388494760398717991042354749751971442305813566959028146487956928616040642309102380013462217601607724871935696521874460168306471074154532844228441874673956405695801788705796517279144460483234148108449069243162852089386636472326828201869409765389345688522560514405612572037989304706736332173223938821317263929948037013145088037439356798476903104441345463729999177966839536060403580517342725135966483515720057397908782085477722388545431885382086252811812746203692050067713329888915304194492722047648148159732666865551019526355874886085279578107869635221870314668671117839772836104200092605972833163268245118873522371889520749978310712951488920507261801609397577681313023270923085395474784267890389955342588770487701934803056260486296405936239134976185138492488836177898098945678616656087894177008618120941673041158819541136386587132369581083592268125512906269277129039362881036809364110857181619419936798199104120735732554216083873270524245174280274059396096185593374488518315463066522414307540851592569876018196787675434525673267186607218011958990350317841507699041484415536427070814572670620724321932249229632266063406257543850688067875559009934817192180493130466753970759567157240158355810382699575109768712772390011783838910956221144558648442596204058563716267643975532789169237256084669869364354423890369422601288832460668752601430238586652776794211685103934848998182198896820621595536429492178968097510540941795042127940431349573485345249478106412551738726487992292355431628612682470378768553841506246274176517913099048860077478115494839073862373866150724527402264714335827415057143034331063923366261658239419023388134265717462463530783320888756206956722336315761823579659350620246233557705882925544719415126884202304386786152364466456775699648145762657657261896198007398112766596431749379180687073327276222875577231563509955722358050351800037075685119532437712329661523422541056301325948092257141707862356530573477612652174702741219927963536852963524660589064334922790488594620235443547599879404178533934685590877926623226876631221405038043133870873601023092886978221320408603618223427702612414257894435384536214051622220989415567891257022891904284633197413590031712390688638018984266402047393875243446686030990137400599490337248637343674768671218910525091574517890731648556639563466984153251821530420021153215873657020446182575837468672924854539946742119099927110195343778330208204265899984025614049968637694808973057445311251103652796374958411610291297834992731652717431675054275600134969988479866639323395540210417741238538157201390385229870309220446326759883334009471617244831101230063711919819588256390862933009863555783364011527813810515313787411007400507486559100754832513098144419566519673768144161009074800323268716589066896245067365020418283506518169408219315219377642410000710731582813115918174378329789652715402622472201815168809044174984364780161741196600061541728896416646220312477211475873943142841018430439586351054240782650496834616771537412612083172811030687694134122450011042388613862031978801681006088801892053611954673582835127349804994861012315780037155104795044213717317937307901508071928935766281157308243413418912878020536759701934131212811853224376814072859174138776332785177016461351158851828374615118284009106118449410212087653873387623803651391193329398253398992902639373417213584734736668242182798493518054242341382681558624610818409727895452635611107576868284183846742718135955857462892956428080786581671748154953422860459460553445661395828393939022377254328228945869806430296511191479725281944967507209241841678796051519210143240507016093486176499707801799904940925825172704365639225974790714083208064052556191260620895746831272048950381103788753307229568295798109468558650335658705772291531265619751947445532644636639523704598480951644046045080345852235109661001608456372059989611898098306466025760670087870606875009918053209322189198544526271848240255347052804129238680374085317890328868575470120330228104891432902003763054697544710209328474081302647338938318406461425716316792570292779317651835482649561484774602147606150849450840429903460342280091296681297585568976521808517834960776464606290845047876227696170720695044768379281379575369691707926910498806406268265191182644540011007422766468292342115282029702348891258090753696899764432142735996579894044580263947075038618401789506341567931615290617637046081682708744459046434907644810697172668479039039568798399767551170778304136200997745390846771174009757749073458779430493960726785967748361412254516805874161452335343708624060715046580311297523658527374836388376718422594804066805386504098622870688451778805181395454450165971850783030592629463793734678918215798882682711698434864774355248921035402820345189954158675189825322931100575245195990875299726416823510055875740054469610044240844761113723166887799326228375935873657201365900653988262092098951828069248135248423558604669743994240265580291047598946453087377264328658379859191022079348638452313508713842643889264468790358228244545822669841794865352166821810503353072807992461134596872499655928248106667027684196816185320849957235025133498274599992614839926133535956963088221565760638911635728910748780179925133011602618454512447666773257903076712587760552696896002115155559914436716981986729695388595978534461660413602765424027406891775161342874866804555605495907438381011981084151290346172152395488113826703691623923679594862645728782194463820897245869340552565468661790132458176423723257282308521456782913554745532035119945418069216511850326834349167798011734788257773343836361211081288845104455439797614719496498245036827285189550119023417922740431156136420531767298231857661890250819095149539701296536478044252392050158971930531181812484468331266571731690793640520648418121254976706308489218513419537271799544561654204237948244885652424161923532472624067491747129054395350503137640127780561528168310191015198384399473970950906793741868404134106570125723362404009546729118314507071866045103013959939108287282057736145892789456604875259601051599410773098963009819395889060944945845504076531691440582333464590401872077688893344510243021430599408975795230738944446669778747223974742410084610811495314089368022991325157977862436314972069387414734031296028800608892417528940813273762799794247468550481548321866652187758723435658687295006180254071878387879919316549886547025591162993012224073105820306853127764033614842184828677752423246556165839542961177009998102428439316490846206399598877479440271615740701430187632455074168117046023617470607799942302310046862904722883342697369177395212814946821812456204593392182017511776765080513262488008501611791684062314267807368587789059478600135124028709917726933534658577820717148867244696910580229969341459634298203368049357780804525262077991077865107681144058673764520856964004240352048928299600148423903888010921392707005891881149431174985060046096984732283161264670084096353611967096468275751426451146011996187483593380546122036020658001029880908189694532143678397209806485447128167954810383924393951116757038184333254844040817656916410200033552681798245177769815794280717134075196281427167585739545178319046491582086692897643487252654072511807649308769591596233397595408962683327126783365031310861686995979036044698134401165151394275408820876965033665809063145175787148194716602158853254512321378446070787704536604863361783372602879549538530720241838679296892935358347630081576423642740180787922625118219701765863990040345102361043840079693931860885162899066349014344444031876645437943689881749793446420163544090007964575476597058379388640987314012215320987116696373965823101498554156276598812816153986482578672733377186365269074823408892661517099422176331540418463157680633380491750304643001243310629465665159985740750085751711305648597238228778221305821960272848621227974508997151736282662871551325581301561535843190653983567651070069262655655601359193952826500103023592313197798272428608919966774307398773528344602070637718161278624467024139842730164367093065228295633826481291233010272901069132014544091787281959712024303283772747549807429095923527099418377134184818880429041091940976890854248835037353335249642083138756026423184966517054107440103877924336990352414956042160619543514712213213084856207944786097275621634949113564998133265748859710817351407965152337496955968367815561542566818875735035432353266461214931196288238460547835063369822456116230272785806118344125318629662966170536117294490438826116106714239831118218292892539570581460708996687872245176802899732971087738235371116032637615035740081781360776312987811891635433375872715995090623843106421945820921681752346748473883672260677417092097197813741623609745404341294097064215076873625641956138011852755231827600559773950101908360796005023351020021130659299670977002906798896844840162981523344257713245892940356323142814699137055161055792274980323957641057805548600660471906134525415744873468414084605392105918024980328169170169024916131585512075793434045056405177179972706541960692553362774242842045452256420340336469252669040567025358477081218533673427596420897960370984941015852353350961393747659094354477230955753941316088850530765311086014060365951787438589773828450513251600770343357097200713167735394417453269782984734943014284810507934133066463593481500776915578502935268545892591666537357628824880160415982288132744531688495008017474618131888421213019713379245857381134233400896809207004809574609889180597243757767486182057323936073260750886366839328412601404109483312102349700644360982628699655569849763365310823095661555943983737015055757099905658733285526255845835629456276493359502066074117678874649872438417140633963661836984879546458640759201309264292225814506112068477825378335548271188593485566743574836362152428707456459342796765949725451033299805674008800608951113954773167375747489164101167876893412176336433928506976884563547509627253558756638229402599696002387027394957158475521412863792953350236741373373985923533135070572693109007293126876563154153322684674263615176260406761628595105820920094775644498628648304787211675471265419947679885697857524652590339038366157623452120014500098125155993486097596829235616322493705159822881861563607279925614001517386677519717987784732736049871061990925992348820902739302491969545057602367326910526682501172277443933913707998369810483562345996350134500730417506825790201549992103595712674156196887856340243891836265986390559873619822103028724741199772084447125500726682809079448596902080359579919344527554095122164313195849104144092672015751952192256560486763766768981405269796561529561108227370306698199550137638378635685935645436095749935659708906735676963645643987933539673887853044351079748047173918205329804177774697720295575555369665684111080418460605506870873548023979727153684313388137687834397807207892428853898437554846964666312257054584395096974838824122834663850552965764962936040511572510761282603107542933325104217204891580592666187309361202090991495478972565104941049410427056504672604668328705142448583290471937569207970200225054930287785085582164384375376165870038679329618742765417144196847431711198107210494798724650754043711706846991471193705956785431457349310666000525061588306697194401169070322356994588023208737012844579188757197295701918615462539875105890017952190700445124553270381024954302008843274197026332949066614579171620499877311968369255779093352861083488496396666434904228778997904553688324959064161213402954194274171420036299692887848593619524911669576083553031040180092140585403806201038580993886979833339962629685976581039042168986533435303177100529477519196487154140038431550494180691614310352347495467793333813873425414032877758156055754577684038631766394256147461696235924009699119181491540937981177187558369541522416383296116783870750434212838322784649834766863895148478239748523614808158526165821982552963241385060201507140596775315114898404506493408601125705320764965402486286897450955213059758562285078974229992345741178266732246994966180779508121947621960864838539267381443480246748792248806373290123426465244015083246519889613992552563431038897601711453754415953873253594129723037226015444802480186200061508025190024648114909612370496152178290877569919717433495837420325941784703016299723811805576406692380964022789845177134882980671244895399164812590360009252609077455593349076670840942644308739552236445369446634746163533560670050896789872554679028258721281792035892361963585108956107809411130797345889902712256953748877864811850769883806141794806882866024323894787422928944765644348969065844143246749377922579183698821173808069494887242715456142019615640362309703951756470559107285694037312812423300520268346634109707399409660103137281199018551439445989893672495927772057903527849719674519260883928578657067276793383821013712976388902680341019418872141238576674590429434411104235811095476484043501954005405367043604727596175882217971176889734668057770121708186406693562994850385590243580185352378352049522948002030506778843424618995777063582236098222835504801575875545781683713968022510035745003239930983429912415818646169110606838885873376789199802248023755642394069980358362592805457889997437543419024579795202348789664956411992415056537693617041504710518385141010819018283931483898975642046627841041534403640735591197403476571036137146159225775300307718028183740547844582201715421998976486770588180872768255306089164238614486391009162138812726257575077180197136845987376674684290593297007773755207128242711263012505239777031415263800350421345421348603712387023109496687391286903108505499331106294599902154623215732650763612954670124472937760655109853520508073716858663035125534707825167141920283500181899533572763327561940680175246485331621018411814088191260090340984337478395243185123839872278835624664198955509771837946745102185422930066259022800850040305573540076688167677305069166358084384119413311007000012928125672419571127003391842682312088799686314694604580054519742147278120662115904974144459701769476609796373102887777240673545526547706297872159922009081120396518275086678965103208023133782816177578470320326792204148830861127020331991113695575540547136353824890793985833353356105907979781417746167866045321595856904418758468141022232505280414531639418615870073629585526185945195860040521256155643524696627686029301459843100858797202914780803778324869174766337504009375260271268397365476098466599389005473162756582992992060774317216990022427592791459039316095427029244859185163668254749352435171416949472775547699456128989956508026465201531980588554049072840002354114689070347692188117854860091074635661066094511156072177643909885156503429968402429556527461265600870801293381388533632333255394002142182060303279688590797320882212441101654082695182131859759110287094438310825960540972962183391632369693396592158491637782944894196525919428741476444784428885414269108947219170922734348981990035811289821598180182687406482147383924037212177752883100997310093044660221572084891669074729463845746258877800967661801404574716380403419008719038732409226908022777491161430487253281502136647747291764559450133964622851963496984448264456138897133365748191768224299151658963530883267211768510696092580322779686650822606631612471593942422865744415731484041783642140375175820702605626208203740220561872761102607548581856313021317080712604939437707665808539466548853440982925586219683913243365285352111545337180673153960364944643206869815758044744688116854024842848860442520189602521772277608079758200550993644921970405008121546376847362972442919569352844642557037247504110760894397643067487091772284972349473901030204760218885868615256786181694775195762356367907802722796215539715192935072609749289752205774280164851059251059331934522397610978456075437674464331095527017618003833194040788526288288823385211189027630813951424735598550627834840689981344875726036524471556785200527045194475530118603331760014335699143696489269172028131803925745185373245909920913848069440883814917002835593068423786158816694479657529717332216799709125840457255586947107355524301572991525746913094397399340846101991680489081463071763818286286717974024782228749386431511719267346597198669934565488657582082903878039571959622569844754896307738345867379063782348872562938456556643828443245807589248238349219466324173766337836788342248478412832886046195530008840112046544697891874605359771212680403565984864345482908730806449206931306109911325346630533120759516542033117704883971234238217818858533869785410452085435257275475672243646710142070970315443145734806859598214495351993612838358596924697549032094644693132977473171070171833125800697479866141092020799647890830725605925245724859100516459286461199269935796399686644382136756316331636028459953248714423981663979886480239059637992447449493029810685448997826771344603386614242920809871597447113994023386992739632188221208545124765613056499578593772898785118875434528258710630824991903511358387546220416784593151339340273790598004320841423579080186290610400559627901852349169878868956021413841153180718586787842956089380780264099967624054838585580615480182116710471169890387969578763596238854325252180309786843366552154203325339171499711910127604306795117824037836304324381381511192051814079036363028882594720425090431233912950073418585190412753153624020740792497920316888024564357929905959657944875411621502304926791265152979974677877758400902666408428910141241219435434933204325938922841373708152017892240302399644311470187286281134016378542173080402204400753048644474526081909818959966584549112824731171371915728399216892799072584160441382932007118195977897133204313758950789759826012561174873549914325602754135193800572752281994854692845196311348769361444586612981438539048693184216681235783702250480661119996350044382351351073491899259518246679386811048710765744386618450968741093772666411075176222258655736041063297229645371592668377597089916350186938358728043280935022371583061701767168652008458363172835195472536052441277880233881933319638248768354674206969908424252912156285685303108602295230378753698809034748298040001145210425233774452162143102232721057214410656093260139748741432288370774633871921449751271581149965663162280716191969920521213051997220082223495563835575151945481366987653866370225060357319049661020377851369860667948378449087420740307536285095814909003401109188572048093462764903267164604875705407312846080030379158927240157471417364442242085309551405615531377897864922986212552934003875298077160691606990461941983096405240858888435770828184498756613103717180591705131729581465533940400941442193795540388726198112673936730096760614851156245740525141456705143160919562561690497431311761803879014760241594350926736091178723701111368501851954490361314838103665205991331629299894092789802414857656519848600944825133656089439900222492354940245342137927439103192558770836107202521837086049190767519671960849704289359425053219991154122818534793152328904162177494413230591319459082311084848511960620879848346433355217586931587257206723578057575808421575487942729108968787716828361870407252763898043102565876523379490424703598359680664860707385152456651514634999947522880814454339732849747447049234540005858497931070177572687693120450851226029729431054568531575524621797916486726829929501808047407411374303112056870039728839861652269029700920867365062865933879045563460079057935619227394113745260153369060762580750955446673991264666647765673147093215715940819096815539927808205414632800417594724983659656793102259290641821377920630978250236720669370680042282315070150391372153887572001823385991739650555961321280773998661555492053994678027895766823452155951115882037325975097057663063189730743809302599445945400993203363215740254719858356439885251682104551481436403504039574307847491923513212609814222952891396988054207256868742080287177105357451150095266716325188500402972637771209288277268274176001052945836042359931223583386551048041759834665265845779477791421816419410857799418673500703847071456774519032103881685661678975943003392361694698153078181987292862158243457035552901264222931229870461289854761220234979322773398325774615542164539734385029908960429791902932527421483847258372494096238236221752017686280583803428818236166069058354992197245999450282172726226587666972989504108671785893173076375959375616454495133598158536127381599179531837607278239601323420293704678608557854013217576246486319317092811937737023664125574813653593673039078888355967239833843451292868580071113758685648564389909471307611235172377091581560602874922508335021573732613517573697786695205678757894991995501476183966994561282646115097740867142907163185099343632764602665950252956454664817270169088976913021353117767857689244294199243587853681212512100721645054739808235289781341821897975270378081427066616087501678095312626637759211327393353704655643838573172100778767560818831736434527004675062664942830579848864175221317597102850638165571731601678736066629524720661385458234849185961267521633141786715618287050949303753067906703295814165962695932668495720434934202335008454008498182568691839679280026008885345512130522142877026102443116027080897320073484947785131797279309712874079899195677273909694720935511894590113246342128746464358467446609257521080996406099832514743655145435052006071373523551935569014125993894153292867520094973502604979289959272368106592337050565496263912846083353661292954401344667788720680553608267925115526283354495661847446355496831553238501357837271654138082815081856747096944707447194746655146328022106213691844227410262160312205869347891769169977197381669340367497012565646646896497393071663043873234392075295051580465545968830865265905002851379367370574044141993811571398306607617620338922258620475297522259491721675692745668066585587471979092678451659292591537261407462778902123852061617120781674242777396107529884883938365640661416850183809254368369525000173588172573975610899833546225767639554876871455741674327456857014419818433121468546376898081757839981833884871334477508907199100473582895667414466816900155391075898616093021358310912953412479761300006717087009499629943301437590934189416055899142029357715682845893347924079435048513971790448405516119811506457969031105105107673029728170555466409888864250269892775759892968437430969480881518328215287619868689747091775643416994466710463747458473286179461071673864525736204182792123682300039848548408448750645007940895944754459719798253306493394677691076549437222161593787038107829215593579599073495817585615478745696435026256050975335868197107181698272934485938606432262744625014406081074497004601831634830421633343449200104999102196627642614609743700120606645678751793340310400501960477109488797569043528770325808748023287106063581410766024623994313179445944433882623915613692334007708698804616492889706506098906470816860155506611219915183198001740470812297998639951327410206545438950876935738642970425609982232448718655035828019886656380309846089856071376002301554891030795878257850454963278225341801575427466414510529328206313131518866151186762696713126199205012397769171579769834158891290804601699035959195483124601562407928040638176762680746150517346777987715129817139020434058214552396231988944069943816278870492487815617086442051768008052181487188328971637652137987164139329048005862462083058561758120685747036912893948618126538715932868717862067369046428864720741404134202489231710845696323053743800217208924550151326051080926816963257143869829164646320285872832266924593085479410809682476556428808435487658736288472183494486995799831245617472312880804909359803099445891702617064929283403216443898780754861106232511615997865390091144326993672389417930145920475756942483894371226017688058782039242625158228892080743698672406514612107123997804187557021720155744080289391228099096760981923256655597167148709769578173878941915426667630488901937666161555698005202563144881233961125193939257965656185435265638888633516926777268314197020811081186351250397894229580163505796674163994611551643014614616519829983668616599962621728486248235592544583252273455192306823321329739919402045527768458545367445420049845311921413221434360145866094935717046999578611695429332017436858610681832438384218038450045329079111326223849280995988712734072980578811200091956089456001650927592957022993776218561947730853336950018492163105444736099771210941738535578129182272641207040845763846402850897054745983605281642711855124283756746714874361396720348348629289742794521166170846587893527842037811359095931276986923080004147120047758036598381496068750991614047985993998397931318642523333694352604280989862234679146132315906987962371252907326709979220885011496820602732834426483304997263235849939528296364248363995451583967066034019737127348002918493996844110890889956099527491320015141087729139809359824005952785566759426922130579724743907249411654357268540201053339714179123278764183817365736014331557757523136048715278393507236973652126973263312419888360250521289050996638949689134722340579018273540037930794253482831861014607206619183607681629801400770876244740141425749588928200092149855132410330376753641959661818505463292502198977675432693747562090673616483046063152624062202285213984183015761448614630051677255218640739288093458359984420381710305181076343779952725798516894640560268521806797380307093321877336995907008682874188507408886462901402269004220421867509458415792987656710199544986930774649236016737416106850174021425320603054738595353037444913802889946911650257915300469944070104369489329856486818084033226754688665651480992580577698935779644710253178788685795827767713106415902361580575904227600664788226626742393450258433548813331632383153884568953737714096014774671758618947508949040384702507144710421866870842219997140912477110425749383457960452431645339027957647073407200385393020834439011128696299482449790202345539585393562635332717247209905851530647380027017652877243361948374577020042117802216614182872786964962032235436672808656364067221306926418814407529176821439313315471054896917399378799404341725703386521496591530846380802782285464818392150563917000621333378996720399087431055988558917080471115514557890658748034937982329863871268380457426953213272766810728351307562999722947325555816195937802419692453566733400878811592903929954618854600846750439099033922844628237106567095906090107406160208191770458737151596351147121944040355008528510624049450224970168965041280969766675276781723016611036273541556091996093790989151731959615009678110110446158481061137787055381193123326919490832996621339832665802133773761829756520503449092106993800818582261149809777312422516726690070877102711300489215663335697859396025495635349237988145104458793152316584494173083733128287993015242257414731460653853684560763060146256175131102936485746841843443572811593282366883944476464616118061776577542569359024705888953064210358892411755884105217734532691672259622161821335742193519027079280294354127144817277430474062400231003397174486742820319514837315383182122714129154022582869354500065488229272473465437087512845538491580094511582245790147598169664216221162224336439291137217363410252975353968080170147721417859617916888100952641908065629589766466112399853500897797021999949610197730138609270268997406723041694819040870877269095774225167653088854188186794876003806364052238649221614996297466324623449607057295151138030200446483897178225498855172312462242056815781356848512605357571324903292836763554195137088084150792290683252924256415966326352282827882141370267651822490324532992571308201143239987235870038086382995017009551049326486959717342178569221096806146208838563395364673751786116029988000368282713693372722580906935538383275420670295273272632531582122560170440563338329288719924124925861696285726601829252163669226229984221031322211425415325598733306346618028264219373508249770671030806160286134394529149311033384621475654311497793474380704334229357822387732015439178575189300914720108957918200705070904662595394418798049052483854717320551098748298182196440067150705155383801001981641835547091830340058952627220938541003471574113553666372377927722725336710988081621416020162717019529356738868188540458344757152885227304096724132977492710819596313848963637326348428782439128497312690746106674963318351501448673081008456813206415527413385744811068189652307817186469082896045439643578528644186661645679528463437736810764383789320006949391871826129390109735321200452687766175148008567970472801971001177151748901926723631604413576460133487718289800629856382525692296397903571662307190636741502870751482922956309759149189720958360032174493326038452494173978536240246598572870101115099162673273233579332565739795605096011866089317406090792915347117722146255855243515616899497375139471102711102081218608940592608655476577123682175500295408520132147411802255324158796438870305205869760689368575977329663662081025050659992071916804885644522421481290227170095414958160664119761001245915444621525462023002024722321742312986218399501961415714036930996696028126049243216819091501047738330808869500466767757849360230194712820447955641472167734684633836693648110550474291934531580678952925215152309774299596470624791693291875605070013460209846612483156888920015708494137310602141149005683925464896143568886362001962762000938955772136950984600253691343393968542353132317246375537575674606906662207070595225807032555083835799575210237624699767179426069648941165131225117504912074174021374192042365889249492528789572470841872012930130243209646668636335104754631957508895624195477631893545621729470646382949353438899302073204561732049618660938052558028910276005809434956135523091272848506523486420587392882870715937451176466256134340041347618669816433581204076451729900250709794190375969947146241626791152490382083949681835876194078694022609301239377575564271948387519929583446359456247244965401071478525085037471894521649577212741551166643113598854575400973332105605200302661567106619872254292123397502501687671402031172694773535488781831046824451084056520037452278602516255509778179062727187219301384137183740048288416632751135774358738124242491221025951050504926066272742551801457259261062494293017924894554499899129216625976980946363762274238621626034184362949586964184310569234756050780543933262995178984227657131149756350005945278829868870001621025962268805064828482613727893447499056069445147670251902694972422777210413382531586030681020678311195181263460074030181483198469811781077234382967435333859427269478662315362446166092180140656714932543531559253738593606972170845271189580471651446112791467845847826080317661946445952209945421748601681932987127669119926607816546733340573355836850153352075043829779063563708050184767886738213881355560052974664315632092775225464703456307695833929524873052653535882727370546449056560789562309087881002195485036792161697646901741492381354584588278593559194431150069149894464904285404161333346290280190276465388802703652977224276021120575976370098351266873858725265874626159832123324383353140888782110083343010580615580503272524458361471917285902555480774653462738827135642494707748586526761552380571251952264725121817897021887587460798610013220996412044445325851370619375805436195162717779693386091475401660682006167223960786952758075896492847388384963258494707979188883168885873078562406321718450212628667353142574617105928343492394092710800657026271927316904023475594757687944534762928686961718680944071637992678378171075695299940488110120006861696654928109552521563665380934120043433792363040088464130624016206408523585751141717692335742557673833718339653879813935119371394499584980618229658748631017061232679364287752288410515000252395639370941860538428651205134334511720950595601131460770499318975261086512100612884533914271412520677661560174847344619813201353175755715601615327758324419454558410026049902923325154403998335457631226372661918099396557531213697889857940895839415474492685320385471495256544873603027258249003983060085155636551774880945256116270887745171299573072328098985400664053347345099304812480076183918714424056211407721656319161264564547505855013340844412557604709520244254622718983555534352782249618432586550354974650428011604390208350056772826557019541064602142114317173452197017282886032365300417920136746761216840266653930347907955192847738394963152824659185125018078861766222976190177793343108606562067007241737919485479261427132215357159338123498907033856688101903167340453768036371889096205175530572994745328723971324082747515158403121902978119080403836685311825461038520397571088585975525547461002054107917611266994387115382167667523651253541101478744029778814755045112866812400978132682091856028408435520931685143384757039155778054672356584107230524715206121170956228454966683009259468815686417760382028429512382431438828568682985342372546457355230184413455528112722714425720858862953929679484247696210716706707577695783791260248447294782701113656104239321162030756424067162828723030571660658546979986036828144942443384728681744549736157332888215516400904375219702611399414411857060932862542053532886354349225814618051217613015813149128601432845937339263212241598659328441674901805446217127594100973404839096107751166987337554672972037192925945289453863526612020910401965601420459021269099697389965176796924766079018854912818565150728888835498143034514443014136857480591778180923175533721855442883594846849006658314395745077005883608884205327663395630816763750219581693071255092255475797100312916587113992469810789473473232528688064405164636131602819525482691400369646090375263409172719341754465694461826442570314266621392748638004131128585125367818369511013525535764401013901495166235619324506284722443197397019971560614479873771150842811164885766876439946708364121561228817938795979779400220887552794590024834031712108388057417189751861239467198515740235680249593050170195062611592464109530355542564610914811150170002847836950113964637641392744854607060502057956708120671225967035460610844296333498357030805884367915582645987223965170420162198913911151893440779113660232136796312742880327257194058491823704873424146324106535937368506018817741720074863307322532161751384902509053473591291204084423448071295217399282223127733818128155818626308928293312155192043722293770753987352866035070216059558108448041090778307210535854826856555749668128587048903166947029263609732810629339549101719885611952155589384070276903488185566260212611460282023512481441018256846856794452300089978314433420900013214696370949516960291956251930427537585681453226051578428309316868965620685641926572665638557484347279459274677651355882513315073799278502009606899216754912053242521165613345565585450204271736467284167042845089031114790792182481293704866665402467564798269551367141871403270383584462986838825614215528356218794140536526926258439579011893430689613117181708476456756022727754673995997843164645795634748223269721292423170408304616002297172441317327004349679250807451755013012958652251829713312890165166266966339363206850556631096441911216298293477084791760730260534698525317919615084319477251467099613781066431422560093208310477908409747400561307407230088614521129150401289220945743069943092047407456973591010400573218815001070957792975777233761205130421532896983241640442689760344625352333696888664838976193475502893983065304670050432528255993397723515075249310610775367531335937395470477582675821832059956674730745325872639876420938382630488419835724289189737116378317813719767323311082203916386322057103502174657026834814703683222894932389619866582403744907873257962455976879656996576283873323440986850656897261370358845345784613572869389213333955462310585251016993843786033138786623750115930518662854404012623686308490561055254383524826651266600233293231843229080087742423528442524314145198196198611350956941539588166353492112924733648331677278142887652419290668056935641243850262269972272656795802017591800109731934938462401625153122934442229148692421261374837457230281721278383265519256193123191321713755314789026664835398766035448005022759293363219233146957365067584676530555629938163064925659635497365211408544622561957129102046938770201809004907764116543197924663108435678616669105796422773307291923727412936280569593920811325724157281281672010627893690877299712108936960493575768463482943022751494367264909807251536010574562430876913200328601244593905645086447983107560247970342916541260434666088561082584202043023699991780187200649260068826533421344385152340579111389621933298396246447001417932103473770791102014759612199340696075850386789654605326688012534740294187144202723208395479674593754441119309713130380996566927581799539454378557368237865270626368377056957108059158501156053605623432389477421832942509139113246825412363201610808620790297623832492001258405145892350537471915335390055625263161638168955259874752119710995943378850045258358409735104546423356477072283472014762485297302826652472099709399973743003215284520688630184120120061433686035785620293128433907109861036093623781976003092387094142744941958336656728540768779120375663284348897017089944426082716402459159973112851587327510837412032350073495156766177716602372474392737228721249068479997147171138564940154043369379966502577397925766620079773148195458437014258192620733490661901110354870718288846811281531050059855213619006600933155879566708767415813932345845936016775187236148332311518678759727507679728469202335905504810756582248899644407941076815224756669105797409242328853337198004963306804930051902086403995521448533003054478662362733829021392421395407216960442891973359979477087296613399654382607934990911043291738904695322528756340029658641176469489466715425893426180957271756225307800770184376850616346725397201081449884104785613432249982691318510506021670830441178401684493769309710359663422477032662478200554706677744008962914207233952086223964030853168375164557110008935124578628424713498367148202699693143461023438944694596434640909616773589014791264129541036764753584513435725201757777591953990689277799199605223244766045029163341730338304626282787492286093340137583566332080210177762424721712425752316159627775776590119287655369942453383244194903224251905226463062064383857659903933575739056298825356783487375745334224383989149720197818523827685698087975520021933746835033686518600569614533349662876970059177122939319724883354736999363798541156826813752300650152827030957942560948795424874130744638997420595878420931273981825734605848606176508641670881430915928988089203552777763161875423609131939791111377386172262820775800053865728918075280821806450410460170805662311928130291680133865417344232381931171538804529588654240332314301487691969963893853540416808719174347918735201513316248574597319491822242277678110467631665566596497333072861264872524269838106517921851670912786948114525389832984303929350668129811705930955919319788081634982991875353642346251438371723181480668437929721811768591146391251224654143484084396913388912606107048035428944585853662903561187276011423748786288969904555161167998203788475845375293707751438543746207325823903755228798191829981005831683517236941410872106332470122438960553792595456438632567034408379598187716844333353102615708658098202848957244956846066109426193104425210459801942100287576603848896786499606989164323554921998713594737603979392057440879702068367869264030826487608023960949341633051108004452804563275553679752477749618400668353578132575963498224759197843347104947553369038228368834257352892104985702467826710025636536343932129689545446868448449605106497879428766451852450718065541754917766578650789529827215441204092514339800121503790038648728555928289428152043704492693983423813206272424408143113273127324709129102054853675724005631884785015342112325277630347487150681162747512259354151620564234720283839978029712025749242866461686691782214801107176223487957085030503127271509795430064556812516312558436294224286652006443793667272301994158732263492805398574135620242159732856592174659919558985834786246009005811944956453898572483367166915139169064456279377004433470555300388854805770234598894233859986347127239273992403362189946638933023235162742935951302106978276129950278152776052697968914002144121355532672472179737493380275848736453133888615153053369035793942891063310812351594558393807778031547054639688199357339592107660344454369111022887556571745304233033600264329400955953964503334267207002214669829053206684821055656432686589198325064066061736802174332554557697199282920228204387366447137377069644916905571017285448992854550892446220210882406368385285945590777157232816268507809909171846367717516959305108796095985268375145351715052189366532417014103965527941555976746772232088152480553321327393382264133156304904918337189501209461537779178947591326077576317345262449767533783048384295604611835318563824924033751585999746516835853010960117926966079778236750760299234062711052471456156145661642952595696221119780314915923208725991814682188641120804996297527105030338946041725791385357575312813840377554947564935315510283820669858522728928254313681300294553721250570058996350480041616024552856362311149195453747942746975100320317087560243023571848591030293195024602068731723492733948259105858246027805529230446191218828477666442028327572671079751653110224905262864174084909815890034303951883214834758210653805720804181479388575407593255178426740356894759444474301757549630175858102402889289665499748567620366947961270988061435163657553555122306483037535656593417962450030902469355485618358877086369015494584417977289063662079115138145699411924116003261375719182101471105136555256996314382879039965624047182725124907067155970869668868583929307445638281263966745491669571532190067911167768615125517811897847958761114489640329544805380066772367634510505822174913516851739583776437899464982790908157881458995183403611014667414729702274854290832716675052399763478781746598224798287462433863394389534142470634941046364279944658044409377105943406607801930843780410524554427745062802406761037186562947472263837309386429634223565144230632325876796928829966273951100540637848864977844519587594310877580053225106088564851634642395038269844986258448762501008157298640567559581877036723032100678104332950121614254306952787468941361682812732237710388129324064630331027731707820194098122605418913773779164185747149277334644466981102546654820861019153144474212615703161219718608220700130085543316186630907015734613984865931670658024201248209734334190708289233248022705145379623892361698983433806476304421210835719722633539086792225150596780084394795169435291289739602118642488490034255658674953937095728041292619473038131241789341031824403183501423423128945150198460883433154566182947660109971945426212003557261764593657031032926526867079623123468597722394808626543617715052890067662443259870070636095743748584948330708087524315514708487277586594572281522807369667138976605896341584658039632857643797476563003016247709500255522369698588534043996619696581294257626878133289834284035424920929383387407692533530963842529851250939828075582616299162146513229636111305659645586020663641299146091491651225958190839070773763670481201494950751288408949184029409191619559021493387041585963796419305813561285407509969989194306357791173454116969909904865772902607080948529632964175565397522112758206895689335612955115525771530166473715603265333404097219025234402870971418695499312802823136292625597898865455593865425112747593994597741097031900497730108772932086032634320898691939762777813223730534852703197494124902793379231946330546216775507810777400519687430529799612944774213190891591913946835617327613133586366879513850320227196458846164321343044368675277131741725386037775426176586107860949064162500959484542886649745639111696240183759232585083237998940928997081212786782115021913647162774795655255841349422561582189219001494252700652825613917979028697352708241015930549070465183773150438710511702908500037340555257647624312404604470546331334933218720546708773445955068991002040994138421045159539763868578310448378568546284604113204666493283107499807702993168905533521669555353449857523454279598981086044762684294839185098857475215024308365157307212275895632747216572686923105938677355093285134630185661540833025870015697762821696970406361232210565863951851831593254720647208845376147360572034077421986824223543555391124081942697343894097119645196236996143966482628522023756054293403694171852312580194845179145767226936937524161562408368025350148037530168893438361330530651454356881021307645292530920613737715074445304867342975004169664478478233005886611435172705690504056884183696131220688237777518294999868094393635042723650367419363953940140477045787452075052236414958370265339598755494371337531493942263785612369705048301906357338069497376041801056886779938914437760957485682274436623381227991487878557762819861139166769806499781110354363424973892341732702692984738177960472097536292331620214982611849583559085954662276256684203128297568201483260697524863268981314213907367458576325477192644232034765186314182574451126613533801400434595970919715182284396082267197081894199055276115229308542921133843760873221797518658852142160540062811354889519879537283096155348515403081145564408527206450320332368505886468223238645930550291981645364380573885003955974813762106517418676274516433885845264190056941772083541317082472839592747142719843857580698393017332933319875604704888635850812419741073311382705237955436729725126776482064529154449288380955852726160771570147856388544969020584758602554483043426674351556259856930565094217996788207200589465570788834712986139417460438686491699396565374681362420796834160256321784697743901624376073874456727774192735657318482865281117855320820855823370624591956824316426581168757707536982655696434246199853304402876697107293054161548080702960871847827666111964612572787052609393554767164511995167628128011079785075783030071518159778444541140232269738230058647283320004369147283514583717165007021909101507415883907382389157512868394981843603266843410356956529149698767982583006993382417980445930524323752428923944264824399088937933348282797381392232622720548303583993573407362628324270683141012543465208285597786734955851898528316985043376932958134610502400513706623853573979784648410439961593895772834953790774952271411405775670355139630662136415860828483507407199334813166828055569228723464793476141929317523994188616717394949550799324035887825908409521216881295604224739717343989308526297025993162881276537199017345882061983396865717503453264544768752573022521238704292727984639891465806696041114830775549319493062690635544598629496300896524175767097494431656793063824853309524077202924192944888059616382054300311824729940273244785152209779432744843289763631588117490906589652239028118823698891982097543306464961592927715602683738097443396778617426497436721293753130957862361293844748772422835303314800323701535034165052229379435844308796358468868732188235747806291136069954516716803671708439329400304376697360920241509301554187455152365547180492413654544519256557203230717252031744356690087907280225201737750780957595365081755736135000314723489251385000926961086055460482061675597265265416399032076802566472210222346092555658757277196587498802477327159514747528061802015685320681220657502885795385726500142743559653544904672524018756733560278311512405988541112992473472353437705157715162083776708051557608420169228647062446587678310281431089519702412820000215431632911106993950256232923636640447086329104709007193914388031343453788666103510608115576424100611494566139735139881996810771382468490187964612042537168804047012598230809895299066758090043615742372336206073112361320278967787536279372080020561516425235670562859596407323376619365712947062727491536728840750644032614339177380672612581695206178460341672323261815263913626062517758712890630996506036595350140487769508285369594712768137772364851478116561661697581077872978503255445630206329449085971304619265288968579493456308248860631028958804087967495460939080335187902353435587577557523037491803657092065525316510322633794987167057597775334045755391552234112580282163176183132504170173134469219330147235488380866938771541004026500499445450642393090710220904347937344383448309960222525873822261981234030763122035920563821992050985921685973722718205383136071016081762512177452098591584033408217559112261303762688839678078020107265254191041063237988322293505443932024155912711091511338031383729435404230212765580706192676158825527928337683525181651749582669074289330495370739280097128427125463772417522019397134387411174421900291920761288831294863153516718649458477198693363703755850589448714498932155110313641946232138314370054838214247085768712997149359928944679158804946814695961109345705511880431269213078313925001147270751225192146545951423031316175759994730011994487764105273687802455304899561624417586239234540484052357829557986693302441689606142233447599088016989403998990026481054659708345419108756649836205096147416306529395038092644955210880824799270786513651681444730140615781126426675108656748770687940834697715386332840789201765522987548752769816087895598151261608343215076698814311598333412654291770973701756970617978767115985680929956006637999910020442820198699694521438452370567958892672256083789992476496870878160448605203390081976656821110475079895815890186736645972640915858741311985162933139958146630670219948947806706722971146783461680067413344683071996931069828936105958421545530470489854579677952792030033816231554494863523856254645609112701242511335202503170073790069002255330865851613576182419048912736893540852095829754592416553122691406485093022490041088386174042105410328044905482747778224189191055403121370221908084898799638677215704506516968195027441168631179468941830098145016632859668450547478221834494881682946749510819745429510642438359055484045993411613805527640139020366228401194814253042352720248815976725643249832020616815742183374373596667435918061190042569512655918932036664943468289368900681962314055432774169823585920244885552313242462379166915586342603179385631877974408476349026015085611989907974029813903542823791531382254605914539111499513949044811436839885875740563190117523205951023085760172253841243402853001597994151228627277171816560639438202481435922178511318508480057460739945159179081088945190289506145221790672065918730496402887668309232284383164675950969616307581243312657526224204041382045602900178604672075417337124495607796906023432754002742928276867052759837637014983943891880753487176757971614408388579222520353361572576625505862806725517348526652975490206027584251204049446675153679642129144702941294118631538162313765456549971761118499903001133013457479030400898015495352615934176913897341378831749465718788726325347233777249688256811104358164580972600680678788554186037605901811624059008295447239136130242697808449179934564488897470549480919098836392549978724242643292005664044310942585701962373244509018125970144263973284907450519926300665741186954289056618826087132202906234607100266061978246958338039700758422829865798718304519211990618381898810731134936237976370184867771172615104225212329352890552816751880095868659598331793256120674468389571222531184783348350361000252016923860324024170101444481048830312005307548998081925154046060134130100892690696944048604641228445484623328189905555196433692087674001657106110668111859145598663280401782316238323939374675379532414262165160919541984151677623605371767251071424889196858248008790285330070599265457243806358604858458120515093927647404420667446252227299011834501307505752901969725713129884616843549138804992469122923509454531466112997839571219162899104326690866149820906083531082894198014879320490076066415824472750803781492243367463327214817254621159848067849761673777299625364047394464928861946160654068868720708315382729469975066659977622861865481378278930930566579863317741452946334796112484345920686286063310557904253912753777408534044360467671318522332486549758971322826367236651960009445634475450402214307093740711168286372948973871538729560573519921157386797456260368686389195620407911185889539594816957690553328257302786529992897949568941695849772448555759145853779993412890867330822947461172586522604918485671501387759544882399596974791184743593166107509845106510402272450887508063907552548322917754427087024500861528552400976372847286989554247708487715362576112662353929498278637673245458796048877613948006839935806846219232105619752962240469894018217746782258487319850240846616223380814974248059566648226569371744452754339565100393985877336080675172936811066563579873092931460201192785350905898524600814244240033487067550102964319983713278350790836035421082792936786826619635484932080829653510407208879441483106664316206873741079829521061529435493526433146061240090441628544457939540695235881357958056681394838046561659000547445946175892697578882666186227625308583989792556758464854486711505157317905302471618253589065085873116917603613073740335028138812009704081276606890742138536710163697229906375067409668055859659522044192893388283934539186386229304056207564880701445925939205194107172456329029090058544861097771751190178803681951269075609015179267622562744455073541680917831481233410729921935233249271310560724431884484465550465546872624388115122193281058822825901054755583588678331424001080403862374129229471381862859743611682551630991116309495588287895831798624274843271576749408772183379450623821720176655573391316720628126662707591639336739430485149468451191263045014693013168215788284541435966945738335264267266071147080013886306139164823345880347651290919064767933860954711584047213575262640722810388822565410470650324655531813968104210707984807630444589617114890908473376198985216170272037682302196615637554644684821141131261676138664944672069565976443158095853460926764164388365593310043725732255438937430983990349718004010230937455278636902885832342147236125948575039019261221118979961274953443059227744085811717888560270450521362342042242140517625452273859713856243776492442949084403812164530106405806656656687410244681819612846565094195531269740801553690281482730228954165816560216322857606528330944803667994964023038431404075561765936826197237768583168422098327010862324668586641223114947707884654213860452048705292884931084379362825190544482188829169630580585127565930730660203447724010075743934325871207358804508452483273873400780592188134561432416919759570375058203169128250326082262285236791395773052206059557136989272265766581137251677786484835043265485765460049102261572777615143948256038273307287811539327778307316376953315558721087149264107052123572049143717193390372025195705966128105937321481043973538933424506598748907334959479779496127262532005336337838203019410261819488158586130168238560674677157241632410444456519967720391428872750211053951478657226460918222027845776235790012599535242066104288591936313999624076796645534865216282113858422389051033782018790384276834004189449300525684234347143036929651746277291186259648722815720743625670427163877380616719109550784089878531502087528528480841258492949195691291133412302382329603207537259749638785160414839821950086491872138437656962790759989983053673284506213803921130840479962353300058821048311077265584108206897716152037287701903104021833277633009786116595517988687868645474188800713283727258355405440427319890873719916725607989418814098598826317488636555619885623760159443855396945094149013753924645096091717853139683507975763633994045030796803619970226506900280387702310477186496265941667893344131482216478864767166582784790505579426651009477099129994253572674845834699656433826086671297185074163734571038249564988817239954077649510630078506679304062890635602353067465655254850575593191296568024265237426854886465864882779501842813536532186241246291008215807469088836577746622955155935485917734300219984442876672555523296839739241070904594235330693122556866933706944314535692162978998345092285398636015471102780478721126836653380278703315717163554606197980466633889609484856802835277608582464562553515044203540599333834816062650104703930317588509807741624859145715979645513643157540626397655692934644886837284893635526474297358108516559702515004494474030877155321431593432875801329206127700762608891833826083782900193282387002972790944062266199780091347729575951157187314459556394192378830365969487161182940197328630356123938125175220586311580285673450636987954747201150641172106699020262848759173716358164214749905348499374241433523885990961160151135280349992840378526353657844795275836260852743458110022047909605657814037065608570689112977140131539657016544292257133586780376627800540498752636024293324919459179804559047978626386303166319539267507564405357377444297835905237529691936978368880898252096750436901986708785685817040444224608821873518657876516142358420063342515420630722947377883418168620946976319487358902089348872933095968076972298764422488971041910135020956438125855288940777845153633615875293694510855654816929229025930182703742947318472729051684226361588123273008224968778884259727529432626594343413842801805708028044961584987736224820460740553993155046040012971670603744475471647914775512966037194201637439814035457062371585478672076859911327399498625736994064842943408405855863835462503398182346787890215298826581067867262238419819705189916952420936243924603140691268155671925551441081193503697065490285118105039803568339505843232558667331210437362808382817176586031718901478401942883208277161791276718655140994246317118898128466475098619378885001934538123766024404012779570592325481070379904199841210743290705104457253585305626215456539421920538322238832896027121920414546135707779360638473457909015088693204709987749107869238825094634149159895669583493674712160120286919454410316459562778963796111969661057784189550430275917817950919211857720697237185056649476222123086460441520990894703448355239199037352395509213136948671309163419684699225171127020189564731673659200347315962384562728458229144058160961098590157982609030470273207052423742359510196720586275247062168710759011384067837354985273895198097658106699981690395212151598916587285532392182781801255858908041306503294440008824786511090340719544522939545557311858487863079948262823921597868050306710602551079011666045115179550385693411470979407399531562394248920124427637043361134570269892018396404811301043302625993383828818537719873499476655897639669278886542368490447162177657362298009376380070118178080019726187140333505833986702060388227613694129037924160537361066543765231764467635915886444033984038894663541546495431220993073943325209891340318347907170563485528701675163106071360450039034584372736473715887777754815939442574746984980533810058736047468975921229372837027093841330437412844444311831744447424218154100149651621479551376027894025939522514561737646839364790204237467570613000419460159522432142450977380668983767732724912898952417204511586239026471858319478495761692758886875690932781451173120991955471106011439295804205327964992003682446144338781591396872643885095178069754564815627873534935490546024495785261910509126332624271776127319660674944128335894774408999241375446392494089332117677703370431967865586829253957192939651299377883059806974406483335078271562115967227596896392202692485667617656461796394938665863297144127739504430427680232879097415380095110963208022263279419956333295263506729270780081045208054869537241579649887522820347704236766219071278056477074783929628850059111888814505730172895913223409949762841608388248015559523490871715162185860601389220527673268631363148848603709307933146058877137789989298082979556313950606229653067786615927972575252562086008501621568497453338120878064256009941888392083186746464169993228908741704487979265293381473153858811493314045644066107748023812417309005880692928186731377561025185680187739206899679420685133814281016444140171602045291481565133089500205899411343933772792738130175675814963368638408142929026549053014729354717055851861886702104592375047386051212169501536007746935064042526831237257938531450981971236833910878021596671732673699155835695123219918369096628704301739674012818344792733770178531318896625526573123811964198068147227198699964690493527400238854968275153987953743504595835596396117203031148979187551081518238782431405227004066315348458240840836901716796787597809153023752360473074565118321620570606054536222474653364532394974523819086637060199328981481771180712729173799002078885892181256608763960754749922845725910730168005683937559784740264049427851789743243561637618636471006154295785406931175263764732612312166320809922989893505061149331393808644376691929533027140716812718810860151433293247121832452164645578734524364463410080000622356034360775402462220057365225916440918280443499577281395287173785106877992380215186299076832123982153680259735068800280051761023627971531362628577791461396350359134455909856524935895112094445395888250539934303393160467741805941203708213244288387673273904907148180410504348415919152137007851839632406141484151439434975696977620024468657928266688340074041518391382551219269807456570426947833054532360584376103183061408968644683447223154892468726197291585905738346144256987456848835583193290084000138192217616414082641200023218424213169447381764306370772080418023718139913003367620589156148820418701500744212435941186443106358518711546750630378207813866706826780511018832138481285201546997758063850038627107003199275577107753241037789566457916169430348572313648816839574629203955883562275837478138783361791995984895840766968175205992144559412738403965086181073377869247603179416285192314324542725664791604178468442060792708892288730948774690527029947927176140120484111293392513343883772661169096518285974957107653493854465404239328404424903149969153772712354920404876860796296941884148095022522413434217865575524756250378068095498164559881181727398618062458506442200759858424204328858674891370017197198047498330427439204015755534018902384141468273484704448571829147404585770623113496109109124312954686908297169410607744617839491078958360954668786095488728463365700308753665219627730969311919712962140913886830601516238067017328910509537204725330246106282974836565366953918308587094181899812587520326268758684651137116791620249775910369162723922469796799886212676660408643180877346377374869109226401520412662251375077585400297437884119997411387959774788610782610472258226518792467886388595197034221048739839919450146839945357574957695206776526268853200498545780303579990819159404608061202044236664713532148727653816086987993048885550064725433221073805825955670175086532580834388074279990046006143305585980522427287522624094335261494158417055439415482841780633898397272346148370597931673842006738803018754615876482903123502976410231885159168546387687741493702168173356766164161228595545602421557629743821421420195781005835438909915155045944585786441213814789603018933802802965159266841504689821830821194959959779212109773277791531015826498687613685866753741382212313140751393348191261304053955423258941062067655642257847551918387391885397515577117288008873023953755155513371528280400720102220908753748453246057629172902907803580156702121712267493317406743809908281405591147530765199609706972345309973849143897214458408666354722939575802384068211911756901723054003966217013333280090276371277456389727189716837055171778750427993463060478689884429922037011987234143391870348342330094972652951428615899613449556682013582646098171419015347574934609143937489173882692284344289039929952273469900689543553526868556288344157365990059957810733254984881319388786716607465833437856047763788853984373293185585165122957147198732542607220634738440132441957621659028454818374531874578287786792218528669035927580703192698586562816890675905731235545051488402010076114202195874083131385181078920231965507867490333905703382235463665863315764613324794783347464892548966147672740571029185349587452978446940999247576652560447016694653557716112368771831564437404725828054984492722687125394055858639642274364164268291742780736545276791632118699065810899030603424664441800571529113199616439167276519703454609965253702721315563059969013439000035524993421994157031202782484123428453739222287743330489080214527140381159106280596764684310114139972167597220189362560402115661667516079163017409841134676501322623595017761773334059880394988415631034833611161014596938367488426674083214980078460159943272588684725564514760305203854306436064588234447414640385842870116952968140435228545144500194612851773006989295123532896273904551310334797941469159557957312270843204171154660308721510253792278164676473943021407331535091119139651767048754163583010474285726983615573471807732715657487178131943936022781480658984849003258254483671789906143202144844515114005520139451629480320648830450290751473794670212738330651882762223196463265036498806381397161529734361238618150491398567394733564795986548968303782614315700609238360381228015034120501528811438014984095609715669099590732132813476500625771195077063706149886341385605719029809975906398572944074724970396699612303930311739907380476607851426468919912751369943701026285755920896788371070190985005929079437392966151772166238121523920550562669184963353350301074641132251595637847409561019014777118332723922561313365588617918090638198291123793820288205801738356813523807790216837314421257758861929214398598078896924428498048596272242954294008518960439492418160438801271603538062760356774395045365291720696792046657463550082967555942866861632202837080663283267506184404380420154683171184299428852812868650683886744960800319923998755763252211975055915296260961748828391162515124905516762354070807500169905539678056871835749169725723818671360537447896984755811960399537785767365960259533452638766068640153358525319701346665330624913382238227558964786529103273694912648591145978856581111351872656377238369620882593716969581744944439375944385013003491250881075036275901072087073949363981135869949037332488351728957888413461029381760907370796696244843753396331205790534071142121731973278787595791010468330805511484206278799038676263858435669422042890082206812488380751678541221408426290590742742312327325605256615421156488408611343681338465914579672901498039147507734763351904714069208625590092891828406634617637471127143768165187132767201580829800896362296019265190892732524841884917534094675315532349403549848112303889811296010787969544176932384212664319523047754016237641572565506613618124308969124923079353580942225827374304513701224025017438084853547323988358948241748281219076267405664912950317035836762979671895034400743768335662551889816684062276324804872777439929658074329168853923041953388951079858690837193623437264403587223056266776098873905638971847905360815750461158094944728458486186177244902526102449630716352281528947340070713716103307145628934421533708179021128615520553414916101749038384887953601157292047690298258935818223797342272939584223878404071279200827222525312636161781291822414669560310010650572895286615849146357058250605979330015930143683507270033014115953044406106449369534849602063566950474535824866930982903190546315739324758119626650385271635861820071304441038113729660482120798627736194526439930113883045152608569136537339608064941582534106821454297898418096500832393210433724716448610987784485306946263708905979367189755416662589291928186913076734361820424162877642329455387934009856030232878776379119663588432362228543693632652222296196020168149391211930948652906615006178922808040087545218996330844228593104751983471325117176074232248949595546431966746837272982174105174119677336552740672008357705835152700041941548398943732016825286158027275532340224000179243687116083459970316662917220470951925494417419448294943107588803368033834539258676337812364489927976822198184834570501374876546874685561071578985105161584568848854280175318473305903136334658901314671685292056735916245604941655240072207231224119681331838637940667001538560554488402071685072603886263242772088087030614828349936601554842764952519758051544636357246972131377623938377775892067243694979942794965289106271208636318729537754809903281963470044831881067808391693987943971850199170133708266907811631375113234014603127310476024831903427460771942388747768483689933177330143234155540882400667823628388308326448725225900189468719804927101016463622246503437758441012697472100214949001008856576293063925787518313814835015036364234616459544669412599240764001336958628587031735941483995352592564240303308434425406306347180600085969144340853776629420067719785313369901184771272212862823169592518511700275003763230384994385543354111213300073644392113970793104093077040419251589393123817262773563528176468025561914739688538710419907095318940824140917265031137551712918322993316591752100375153147181347019979050755510239436390671479765610470107971104434377649114706440786396639801985920248501310650012627688524901795745085147676223348510414742605891675540968648470734576830311238737654675601034462264864704547779824942763423412473572122986322629534297204999620524744886876817731393925748101849228768229861944427810228983151691417243463722207911574931910738229148350696642264479519352558088775204088781315171869573761308716232805477598525643833858789884387422109994378297563942617625402978951565823581280829933503532972523529837643596529655589999532141337314668574055874770472127485274811202748605208479886431642890018443031612085070978689493303356375217671111235814100523377356870416402771446194197866572826766181779753922028977617612478798932841680518170382741193006993919027415140583752562907494231233540657486440479025409971288429038566319062168063869231736832931009037360629483716074120512154381551964927009107104013948419141222634937851822717193224087388405802272153014667209087634158006665581694651507594453219965229531819237037882392870225874978466234304018190578388002512763044212502208662114473199432045496623523567180893585075359341746353516652151744423081675624251265966546287896051724074420059086298378901024137608520722853225366713497725614853256805899013784292064988134028646628960759025378596432508584878795742194465402748209924398205370412687575258277661142930482985823206034073496262111123652155515323547946948494744893953816716800574148759765127411292820848847586837383342007494575376980622530349562357945460015852306521299562645207086743745146599070841180694509523224617553057644144059032187472201234891793790735656960867296911545006087643301400295762498422947512242247196748637435973502047545711594232402545128908474928410849375384344617431035721395779755837350886300240517004759683967111953465418639786733569458078415211148701272169079774494294361971299193535701855264376349118540931137336520137381325848776871141586111832649696569409891026501235271936978009039540181234174529238430908093948105726463264037296439837472619568855762337800547154846249608862144096054746873658374176220246921763614153079779197029047022425452210504531456786780058551940805540414174158014289146360000671835663983503309775833408187547387389110674357760686898756776256262352487025393541156140088795512576916228640864147482475741187315216644165910241349232062860755394817153147080863188928830432418503386811871237961948361355796549079362158173076362600436204789119348944491518145381230339477240170397985482474280546897819479022858003665482533441984385592792028550248630740324819951066117709817644945966309226588628373677350074021799075083167816058631735740951415238096460360294120728351262694538983703004201780792743259897207486783148671153773253553537462580202648622222988295489725467921945123966173684711446088711264556763674850061441005736301119902823531226255787879114812816422567917200935760337885360935351930602583384680771453397629897917046121034446494413528848411551463851427760240057047361599643476940061367826263214025370809758118793384500093597611846100770478586481604729148908784614922133271154183489192230075508600525514419076990300466255640986513780927107105024595778257257775652128446533761693312955564760139522293953094181076634020385253472528871902769148057353956000036096223013633138805845496152091831365943603986172921751678855335967768511178389428399018328363533119987390048329900851692969735213961238981232601860237112734976536818373471808741319371094453252896186010757671457070399547678882226004353390506413517943491218336221132313882503817037005449227155930258508566405724556015266388059273138993048006798729962205816788709365356928698795887270616596803544308502359626776854974348291599352902860335009697502977736461259886643370997621089608830267814731331951376163162711507096783299018609432136432457735396967836761105349335458376885812793030070854482470149229752107149108046377486728287974724388512722351751413609274136104365919913998294364369299472794207225686487821321860330471891939274092191468141407418945648667962571157752242837616918488901425199086425902012148970257694057764899462767847301352354660275007963567000757393851457224735331807207992094387674458316011637071973215434138115811727602029367794709892590952845649878447181135291791984573746711570628799446598267893976624098534883730580600023782310351631725655404896102382195135903435200443496151555403301741121242032230641373684597338189947229826730343776577528133555764410786876571407100672522225919858111980869579451277341003614818518380190705495509512580102342530167913179482726173245422294616795846473579668058224180817561269170088390899914040171991514568199927421843481350104874180391776255402993918348224514326276836640990628139479981778655733826923290973243642159288461188381928460868906725566579656593117305565001005578116209938371195193207741109035692739703830330857462195712733870806643199974010129302293463659152042728923604702976715873735695486992596843972526381280345094381333207778503817888575161346340220944288440038191663820410986437557120498109931875854773303632316536326274727187774341935589060908972788858943372763615594678198741137844295021980571341504865401787790961622258727059535665837436010522798221762329262357473004768552050494627211416879472479441748914588407117098577663441139240913681407514783371837127249913967270698179843404014496700616267957189869755824076903207600683973466417881204985542184184280064919963815239275304889639285647870615564921818349970233013248913849076315774428783808638330632852377685836656211941786091691084194090160586380888519442881358119467134821456587841168580914591312327917675756992125112225149800092425265814382570124460833008110114071111622604996421617982579635011757824980520854712530026908262277856439997598572539898386840337093564376261898084558585676707891884600044916076482819611680975967958726632040811528755567398154402351761680702558370977156021610023584152566556616973553946772019768632739055074550940468017247522924844922445416876301748790503903563721525300682537069058890641477103959561407478556498815754125116761928774352634635957616850506633124617443830983748497406246550141402649608281604113285895317845668524769406475596255209472264486780099274986707173960828091375007366749008236300827708781511239191629542885824660076738610240315743317136371666697051083006738804564825434973367907624506319473657492253203619851832714595981241681276148237826369659710035319989820539852627187630688216165751928021736728575275109352013073129652415119818138097968462802613641502178599508152161029175080498661330544924447055820168385201666244451695829037518431692054143670085060188427963820029256244264107321100167617377343507744174135082566744518472843599727598344760737826072958419066668291606687830100031693699336081113570817022682055015369693676319666143565143311998646157049565807888670812264443161139899588752088716315238100334714686909698444280783154911075323492690911801278597519973470229123907832854148442162367756926643017906128200670329963358816967531361165054586856613271229672510010419046373660705717161324946713492291417778097336566897430598882382878723682360495211658357195716972210215141536209298732644982841435377192494681810089103270049279371663820121681094593484184828632589066355482109519954093836799436058151933931870045598524993759791687642078849852315990450744056418769165421624199167246479369426189523310446239738296014162400026652791866140987287677028030485408129294038805800296205982950760359628436195631453391497884682734285348019762216474927367747969741017239014242244872332211156302270053976639379092748394123791291458005129051006834131503553875907623421868659293751518819924299798876077066225330012906617897504767054030777186510607487809746595512605974164451977252639983435046484908872667952400878162559280268821853971151537920301756002803227051718464921250714837729742087878620277685092277365229588429539731289637264245079383311951553746255065035896102219746606915119429551883076562860064076293268037553960492553494044002111478081861052954635068646965043042569098984759851205064639034003830530414542603244933449392396216305811880589562563807950201047395996369289250482416540358768387557242837576005214458468170199660692268264198958012638027196880953980981536100061071002959365817308181199591112735330452881465920374119918096162795554375892653313937737516778056836138753736854830751875465658919510512101404463966558507189341660339640868884231531527191179034931897503550373639946832438606693479394204101810534429281529014451025935802256863798147807497330465995503431923605532867447113868409901103553756298211637103203001711465050614544520965601716884690184301428927415244549276440552233998390675300806068231258021757983549090201678593950215629110337868231729400928548325648202711581357616521918064644985993447225161417822150087621512780607655062936571693205210173246451067354832910351827248369459701106060189832896363074837881522676443769147776128255657779293064921021923707688286630889608896166189067811642240196952283776496802766586246556885167971809100802960533845899079245611826317542023498206124702575218557694394155232527027284630360204964073911901941558898205668653029274010860909627143540117659516663436998414586088010298570036165505517225541379754489524790444901991832493816786434637448008547205461637257815038280046741534480298409558879467131065616349086072982526224343461735539843425197472138454757762081512653881842303169540953377447651741860563269882039557064660583785770576816087216911958115663242158047876551317082995671381564586609030219543629591670911120775350085166848895607248943269013747972498802704011009388884652855852345823057818962452927055991078445698285353850856886896475515388513643471315763703394467133472624859495599711116471127409251161499907139942511745152602660314623250300436617264764381471216432682501109485303261005875656399190276446255843674907426971637490661860878228453495032174350262689843176309705355202976141323843180132501468797528597614017434608344464663304384217064566580539282817305516405359084494930620344035145022624669164977142187522294287192342504121542298118513840449443094116954892735171515709861395028582475911740242938830669385776099808696586605286548632598562668989728658854565316123018768190631233042193551227490551415284476476497369082217079862526381451683313168070492536279500353049262975523715881678862854680176359700174929683587522535477396245308166718368523460619124571881914095446966857706131985276752636184458141543267451214960255359466890975693487850612843825622995103591447403057179332713852633789356076459818848007112930124968209624614773444761305410346555208847524232839118624314067254682745718919437420584575783636529792665000887068675994406513258495631897563707216409102579371709212938026028688757282030473911262340599507853296414051647512383158553420924260459257812939864088619085802550117112097676411567911289540635064788134084151199835898656106682295162816339875792431155188704901002861918585280314782049776921729887935002136408021602956832113014152549130352742514643763745757018031302027869532158281273187937176440497884761169748623416194038397745627697558649057069449560829490843243751732954900601976314686363193741658187701902456714087984324230744900831124033073542146615890019081255366229079722629960568739140102565107173557482369704476570031484096015437903931586286329096106622704803661931564800912728943315295146506467076453718832876332177813253569759243599165557671453659261099938181074935214442494281949990306737095533575371121582940224104170683727679437811380731140875385679501712368835165415418162070655450863112777688662549691003244558032356313519375438823102744943474073752467645589032692599319156072778085311926418395706764619559508422147462958740116921868354513746494492460167398854402674319109537449591274853455379717825982364209534014365463288189581743600912507469846949040414390429073560827860671441072633104179971894707569864975631096403529012305404550787192570304528349822462164256557914461128986173591871898974703837284971079590205715807048398289721131455522081991734109097633279906996807405725611405978036145187097926081245210386643125936911892995839634912352887403960140762313320147250626249391605858330668038820692660270408273419478548770714420409345628686716959576913500308492415863973826542105112856746858281017589193118595251952692066444991948688638135289979695683208003809236079191798812044283120397422984713513032219619860130962720904663698472914448072652007210035449698555492975305891126193301114804043174465358255117426868829049473158515639791007067566629962645728233179020870588884398467255718421338614572900712483409836153894870078309582979687977154908279551400383931186997803215801274554042617723334590112191119933743988436962619659249425420082521207100684339262784676313203943793327702848050014375714507988539445551457606197802681670928098999867419772614763479809499072777410340982084875420366982188854859518444629331647783470599748959325491079844097710391748470290165905242177758448941241571665917108481724395496294946516508605766865704733946115374129491799762945448164825570688420647707365188814328084584044089877559701347151373261446536313918030956095103232944679637432929305626222733248024797687023874447654718820705755441404409766012554891021284103362825257022401139067957066625007794676169251984033902169870919838307988803291602633794063101819619305259131258561888154133187508953362397681953975519218586555549026004168560915042674470460703930210797835353130802232658195243933351479603446686928159704581872139425707496083796260796698966336610442901386128486936216697633244319262851901896315273594393275792946699159121446518304326894030224989669533922261705704218610229294678953837236149983711914990526951004631771104856791240386795147153729783913975164580087344031215157937970094154173709513053297739299015483756554904638447871047892670371256465005665662751534124128202798555019711911602364764077964042997428218102724708912247474232272036493935826358851770907624738528524906558462020280095083650634373196313025629574220905282103184236508574112341428740270905584745220286342628692164094540517361367211172683277271645403058869423138709436666981103531515858806385251498712272936704311675275401765774293525511699797962001820987486461372791890627432128211810074404584941449779352913061850178158495309066880074502819690138116506685939549505045213290765425651634503840997024868709242729696348837336983698555438232196442614030034491661380209571365001265812983280596263544131372736090438332546778611173404087370140771147751815341301924678356120552516352067334412512511126462264411538339363400084646320683650666626724204043431317491608727397179089281830372265452003175443523007577418157347529441713657364180758976997854872811371014440429137212098014018792314781955646496370519736619307721017347429836955204405550716248870256296888849357334402243002424131559015850104119121173724921500008824043202132501283360949557867201609019505484728928943297839572080014542831554093948325727159037022192790347617640240134435810276309284288778892155838797588954453848553630534051516651354226196050424444108231418566416844807365701939953974179800732781122661997391626918111120139934404446772408565503365115287872357127440219296824741904451113990948349092080784595760580856705241149515045090523885830705548056700660868537837662297325770951962975546545200168269363860425249150243719423417526986171885384676485989282585899477173027411522304853025944880792450891973250175940034945806750933284425752498423315765567286195011438163751940809231219431423147942540092987625582248476112894676543134708172490639537767214013245446410270424710782338596060245896335678154420679687496373425546513487999648920753091693749257745552192222858448890925135625798088406222211595127694387462168968367388482204760309767988285622007254726721515678740386908263568154658746943514501576056848567079549208337256583087921183240188069043832720659404525055657330049622344175748153479237748250875149300403887379860459163223215148586818703255781069010662247691139425043521373157162791093084802870354849967108653952871741467791758895358096142456221682368995914925592617401378750884598677278513236054351520107357097757060907907995950871419097075682718447008319738339460080568397640881417987871209068521493392107323908489442172939587599655804982728363124741271162338267443677551715112716593852800682503244922853624455493531220213769443103183904621777358120168855765905256524014744821044291794438636624877763145253009739008878791080867134369287019637788086957521091645181114447663578862575988424760948203731639344590552304765503406055997520326730327504482337142970507198531469771170696504343041163855444805369905971394479494444268820453206353217884969619237464685329714855821637891937280522704474406594468830676604827726191050741211529973138050327364198076856375829446557947325945282165058974709976311765162666498090404937022040507603829912875819529153652023517095949118412858254020733131605260642152417522040480437256462294134342919408509066789816103901002164147953711109766224299733888775702913461215713910647803427278729974105796847536054436884932547033000590205742974219633619390354428783703986859803471555910305165104524754453998729795126940656130880699913956137256996968795206912523691727445352607072226858138060204905311576587822851688760616789661666703173396761131216895179045671039471234132761419633648124401521204275285017776847912633962824358810659599585233457321122106959336533160089399476918076983613029190735129235767628852256595614630136789177654391434875264527715908980313826939574996132883997153699137814986420452003980568988441809078860562969087601931096674158841439236941478307435283376769374253485136153872390034392643693968983029927209822062474768524407804947747253936793898926711718996650191085519133130124420906613696461863095811903302725444973752487460689884176918248637987482342341264179137956133456471309607213235622183446055652509445741635390080244833012515432732721667966695880307741471143656541947888892638355576161051700673742539175198597280343567413323450518079795189282046666768081968813994350391439953007886901077388952911491447183617232671139655023441008096044495259748857955563978798733387375316509452726415655977995823517922387083208833985023904885786369284033332936112297989271781563666296538307847272246466268820443889363698358044899663377734671333334052747712664390233504548307251456042994743275010556347287680831675231164328963579906356963593645007147266304482265914496499862056198290580668936811020410697620683243307981494524856353863847674886350688906447919962326992607052681175217008979075087589700332134322968291775497197175181033722823827947694072342387379080118278897225284770839079595359835733303392075544378853573466110660633682185573999664289682980249927373906483939237282984111387181474888585968719829295119143504840023688285054603101074800931968956914881284642771805509615676314975982325348430466641587357195621731512120621257460968590038478215110982421729600425997108220899379227104409849259231698567628487216227565495804730385816260038519546016397796691760667760704423409873670958108027333679380975896056054323793412791714547705923062791665081482773989571183916793411789607699625419289791964962979531978895504757848607425010844048001808702588940626272217200027077354651303409277306369507134074327218537312019296954644904896209130771498612725983603765551117674646594174529181250787665795383396883478604282494525362939613936463790210342670707012599736205970168713479393993809112549931343670991538454033281173518419142784626662515668528673209654803775037960387235085557377180827039107870601598478929824270547026072557724729035394758574093021579552299761580751969390450285108958118347406167052803053756813093834588713385787729539865902887239135900246861778873487687036268192760172861322283962237942887046317401329871095630761172743407199198685575610457675461223087098328894643375704638498149851704001143997211397723208729791434099750939664416809157043868100491426068868529556153016055626572200441122831003929317536657570255155607727442784946604213425056928509079521988613820864580581280386722799280474679803943127431157393313636731829244319228024801114523607312109621067410004670663230855314916028777857575140798454708068839522189147000037205305429343958825568480066006317175511457468957114154006117983640653830615298542577542190793501077731328163958820129317720156973345947224048797544917221085376602570552668147269226474136184915966119044048235304904466134644306404882821552877151260821901994538828151593104941410080269185701865520662741020531996359046140688699445402862705147493176915936172912923486750582516753896447490029929222543509063318255345549506288771307802306302227415909041662356232931558224700011380645599801036787954171801726059539231098276569713067942007510319347286069265001669661769762299093234424857156051172246535795400896195307313593774678612067574948901510539773315277000214701533870744386577800925456298905277241701965035521833065646083973387626448353360937955667030254495422290383094450764314204859070920051138569861725677284172286384747243002447429021543628005074375134889598408723464655641917221569173289779434218769538685804529825044931081958094342516152089145928266945526316413562008328043150031470721768945623447866515813680641422351582920801577943595044911501735171817897231448305945870667984544439935980065002571403695801721891183931699074739177302439790398223946048793457433723432268447048790610336044840338591035125742538408551170847965232291798281344294161558889065291755158231471448395136246831712832078841715069721766432337894330052458581986888487616585927405597958857553351139597052383085185052467046009314992190425893606966496892203709734611244774690292162649704716609027230459141620299783033719723579323748845465649103868851019373422695065566918707672237590616701746260413552627931019224191859661049909524235000759407821055776536468017713339290950766836561742643309191249464494180479894645061893358758202746664675739460774711436485161126744928390516855695608397882360036143210505983342488148476108628846439378594441240906115428933032071468805210831683930929530854294818571656575410692729656985419890176423399412366290064101328833439431621706395191490052438096489458424714839169946882091846165202135579292773425488953222398044577470021418677152777575671715826288429561321423156907750987090988569935366917230793369147041108022566225409772099057168204471644630471004659841186366959900770308250314447372626954549011364382375247946269013970076321281932882726460586666460662473818212868020044507288134528181281452808022777709772433840927431171621277481540893858480032914908452079061828903003777885336827452939639408868141482306195960841721517157380108984752788287431576260422941565110862626688346380300100006038056664243786335106593104419172090125943185117025879622563194433507780373119217072489436855395596292248514444700424181677256297713445119295461643404071334368861614047853051176073370600973871693485578904893904806717002690966345886191785073528985061244182599831256502015756895708729699814386768589647753442092854080034982126925416624146558441664411806624282773062050377488217793608017106875726620645884515983176944503047248559282326821078234146681066906531898106510676167466456204303116774407753318498561620752919242125519262249429026695858676264138968922248393717942941237294139097908894159136993736629101699666240540134121544586182092571923159406850929369181984975170210403864401617182466928668578479757886748421353251470783856321883758874605792996515654807003971350786441648894293860710776521490761004017619106348913190454064563167726245927641914047328548976353817177981111430181038577352561877711665009034458179162863318745718410676468968318523645130201432922831755467469127146054394652134258202440535438579092423902573068506362415908550659191774667445738590660152018601730858037571898772409628094896215564749892539190816645650850056370830553817168558514412034124004574295373016108062721731901554217363661854053700176598377732844557237161044337378462431230015666499621527793112238259759859486519194509183369787011308216986206765277255667831506717857119158368986186875061059107506953997405302618334560825296778860492084266443542701227851506747280190111723149374599047665158269680406158501175058278309235176312417625535115341538626104081923643656968980241220926113373822225128137510366700976120550941942899165974669738372538140293085925471760919796269725283324783292746826233375597806570284195054580425265093675981072222570756488485960258743633154955910024419993207119751718639384007178551909872629744293418528823370655219076889645495320775365082968029839033164364142897209095930751463775422999638706109176414803493442871038050474870276449687396825156281716636809655225633583919807497275446910966833637193308472492987837142743347526372498492811313458367474747656207496482380097151544736653416552984373734287179504852004511398915919096811098976184061990384719160479678676716250599843149178635529880577858129933837509392695474681566182493260344935286985867626270755547650312579738142268419908861697482113764606383640018735398088560168867076589931616123056723964791368725772549604988920938927304048952210178203443278156566473411169702156799111917112440165475877032631279791535321812900991761533863972853224601011464152426698302211009475164111981238277489904592951539383124748963190177659805494113918820367734647634380270320089632357855100741701200921233161406382342706631682119805055983883209442655470853902038450954937347535719944451332765025845891428974563314210268354265836008288816026857673617325428583096360553376598860873920677593175014805440839203010754366703091816336501356264338428103396205316677426152748195917212641802795139838018590480179857746993726941521473932950625429834583032541774192812636387648561151242424363735649539109747941847169192999332344620304025802817846733005547849557802711576192595395412315641175725231366882156917363148124365125179155080302509102374717642312408627417864803556417132797286792652255514015060768156610770151946608603839797276072626101756330009979994915636964259193845070112699741338157535439163363715283827791586001211773825633998220275862754372754032897196351166081299847025742305367410846931207287915204915871541114629724434925748703718257342494850627551897166256466085535752013641259157882946787807730927772659530194272673328986629827054605223614302258138042805180405120303956492392273776420866477395470710416168283908674191491866911565428948731518515882813238177382122446371803468132141056022498367766277716469647286308120657730924927729165854496957131362584352916269553347253156192973961541265918393792408143581628434081699108662020880059891976977078380814434632134294964683102431354825661450490416464051849225667767541159333376832408677748181959967098805557469600130596539740879065459772175041882449575066073257145976228331952172535164119725650598617949588828381605146706237948666374909203002003986158637755256156931064959876786938202908443611124576683107875851526900049857151961489799238931154328533300193414567991273917853042465763732386828291768121754353527071194543096022943223053218264610517385439513996938515426394172558491628985489147205078571782775832966938035274103248996140785185762207610138700161918145808346040303882546537893309184086930932839571043641100597521118738901021785379883728562580032770001994861567231242490061735154532812536688361153088619259885673093930586634806322807009511498286789216025791128936347990486833044892813401431849812985282475438303197779483938932692841258197757258199684941715234097986223298624415452759138786633254274866353918361561304795158078865392523554813319211544384273851465498522307179090684922571644533500609408490593681052696772241662520576656815717815148897426193671561059174279467370982334259052197672795459933540830734301481032746911107182818680667144087690665447575121085047870676737893512002496630383662690915661472915595573511421911048275150895361577444443106971925989619002463722458205265930814033050127682341176712211051643181375798918954641546850202696532685939328861004678090949183913190782100181041385432961563219938191368912063603465627833620152906179945095290394633275081120963664439247325484153111579066433446267782523673905672973928246551177365546188825050521078529431026157068721990213348554077548686278013448027571854990583525189644555067369716877139682824489587735394632748774767822536130734045742929816809797992252553392593516786051597039451244447701887954226984584756291920913469706350657955863419686334741088203716674315622629457932995967169815536914498582330843700237400401151479429205410801124451447276325065048924047647369206134703908523270186644330867328173262474855424256285243868018841635230065022048847156738876757061121164287249988167256192099738768136382438175491544275661410394920611077267550728449325228960956823625195680729575739507803427821838051778590016325234342555170944375389417309935655587234841864261756109248837853445845832557705590977710485336181718741316534953892636615088235460938228802554467010142050327191629707156234968735530617616654349928415703781141467713358981876746227516505412799148890596919961564992584300358181687156919736896158611638201445703264529992983423809373730856862350428150772088542217439435317087258036223055837630258383331714952673627509363726069800906949499377348734031484124615642378254025517178631616585186675309265070283334512765091640062113077501253202427550785322455316495071928955776255540355976569171183935219212192058147735838225045717850028912938855368624639317311317247561965604481834909171932363401756911047331135866683254478368451721057022415375490271396106410600887169383542972142217489362447816672813665448948008325582004882592050004503201130326416157099918314884376935926035825520771539137010956946352194433599592558703135818570712879884714984059367828098967410456218578703975626875469861785405859939197560463112243520489966693030271717834584649988966820183668090400557558940156555548797643236378185958388123022143420479302880653509683904047315503499670494944638353790169735950491502717979709614167622126142437147512432762883616484746405389722931561320729764519535674165829622071351424554184526900773931111619662672550316845953863658847047701647232154348695757315853261512766944301034139990908832281609829551576214413017616563430301514443997106791443080060653990480476451251315047240554764916530658165303946881473416403858179166696297420199460767372839770398734136441524347381855497396808712784167873592532748460001182873048294486019844617978768608970146989357424232427997352372746831302638493746118951396702326701328478668972943990041375992513154932408254904897500690693449655638573655106249699435989897658753458925627700025349894476101217694494273746357249414461030867062121207903300745999664398784945181256698791597758053560916987600198034007252474413943102487453658434170026223689740247189196511249908303755287797529694761249917027692602982846507906301006731878109194652535443351484147313904745627016348539484529574565840722464270554907088913349969674903757896775984892075036949046110402807244138111255578817131535429454437837900231995502437181571997511652220052502467000333118623100629368226103833952753112031381712265506938825722072956826304687756596477805686995746053891044915317933889802329586787076320006609340559518623816586747962334526622639832073839084871824874985302713827611077417920982663937900530055000546099701361071950408490727706286714208700135696991279638769980200160499359784683495845752513813188685998118226693140073469718542564028363129267018738906468013216797127069792009041406950222755123229192581637924145576698109872687458461966778383965045159576990226575677654651047220044764644007925758263483895271096421862765425789457738341129839858968867823875892718172300633667060209523242686030862159381083784418630548819753535324134329746385926376690017220806074871520150491942493180285611697954240787280422113748331394438746468193499393766536791153178788730132820478325171519724192504235139881934410330102933578972488505393364610248629154698307425340457736607954289671983475698173348310246029155418544897746594978898209892582205097427352352859244974932972858117038536920553932641386306548883225159379031058037304631669949183012728929842391120680893089854230202205841008026842335306474235274708474293488740993564373622877059605206358279151054566528441178778372374017931725400759798156284850802243111369912111222212407653287052811850752916103861618014106013100296050190399852732819247826431615745795081761852149361236330500658392618434069833336450776453764119172568846923328325747320428196433283958327174819806195627797209341537011583905365900168637347854418488060396749879335840869191409955786931294619918882095095870947868149171038993118888054798628436569897852942918819793718355701353311609110896255464167048747454578264616842536394732200421017112173087882662967335672947330449202076622057515800198538732219970890081948773753713051360476748980587936802577573018774531318666419562475706378665182941772148748928073048089368058173443666249009057034939360601492339390116393633702323483744975319909906731689320746924321964832290367168705339324048897943784130543880729456475369162458520595296857416420414179232734999110195047973194758146147011140103482146826988153105819315829386734085016289547242072849754695716566221511027116856234690834637733219959994293063721590990354857675570727583359616165920704769318315832953943154004342320893950881438720375668289551036042812396983589485783111578583444054224886143463417203080942552928559984155081566935683223354051574305792379255483799386487233470890484070575490829441506119546484547336043695163204581489443761045029629411980671305089878393044724729653114164618756403097135768721057770016567920544380543483855999939206061381131792464514262485553986967780835026643369002598469837185757418861537802839545597392890953813818453734361099297184440977693892514834589072168376950929226493988081259035505121550083004339360209422178626210287174343135673618482758515723429259857454338625979874520632603936288505238829288906101565068749729941668305739519671154138356392061021839951897114703663046438044001704556430814706593382741494593602111241258887905324133677628435349751722710121144146628551130742431642408205193241479377310987503193518023263155146179652897257603221578465350338087710470181446439451240711015209847855702811912945828986933926204517117538119126283713490133693786479400510147161397440646070591358891330142599228808277693886400353134776380347464596048097679697991358413865696368338030188607937621934570473582495681931254746931289779091751960074135603856765895707165174096566459042951275046705304169173888707647899020963400258097776271197295512602578429018802244711380980647010563063853715123911187426779525622003298269322031063703649907832861824759326513354816843181721817803123695029551881348146588822247562091456550552057428751544806292785990588966062220071771006047903156595178383963259162671114885439640094980069894833870769114798492370879971346144648543622182593711117240849431908722902879247647720878833506665096852239017559079180813866501694536535229294326243697058417358367329205440660808689212617814361973741100596704045108403766559916362488169802896776011492501609577166957879427324944066817109812610818358940397868009642354959753552438331950913760780507908089018343393049257490251561044382641476640341378650119891616357560896177329372829411998669211855254960044267461591793170813008449936700639745552701678537386166635140517081842747354106828493194128088968924902353486304258771945363459981825999652487776264843724817713391527045333837285970665377573887958363161760398692004248015220095804964448549296218821638550920715212964348952833737498637869622302546225974928030619717005889201220795788807841626093126132864688137543146533559319902200928993348272036175004730457382979055316435931077920391114297931202561855088666256722608824452717084436603040427796894239067838745549376390468181256800761375080194195353124504543180013169808578169891123976551872271505920585041911204538543341659930003201914856299933635557476274602599878298185517709482549823136851364446898422161044691521679446010350606839464584441405685480463031587331101279862983767624709214442275558387404830778055875790761576772719803587698960550299257082285334301083540946727584536730677742461226991458253749532523865106427836142278186991125027691474902906975320780080137444726844442297292561429404308647749062750769912453762950620539573176062156235473079799574107540843361629351353404802573099385251237147804546704673842251539177877185820584584283122449759539078770622745148897799419548420643623438651345689442182687523106439931883561021158317143366328470627640678075126433255003230284527913329024152668288249136517761307976881021556463405833869818974094708737202267257734661775856051982708244749885860024833399422803919546236798661697425042738400065817534550932895330477640720428082564487257943062553802109974912040885551436374718211902136749416869848356973106805167330500549182597442392834018586647643181853519133963887893507122449866828751636517598796407174320575814868436304889379745146489080716657943508536694774461900045197091375827684360508196247763518995336788779885610067727234222930181787956640698035841059739604780565383558097400527725678687043775091240519024250351426583966611868292603323258674464745433220651558938852149560343618881537208145080946662926464769558711519363508830405598522954916699788644198897871331136867658725761558910523947498877148300603109480566582770308360006994083254962830418767800323041776305825076992623152792313199255458195864731852783730120661560948057254222418334324786939730321706933463523095545892886689922476020990575962881577247689556653739657558389953635039783450723839900437430571139925336172336272721015926356074909890175907023502937168488298411924100121295121181924491137618284751643568117550408001136805128324398480546526627620687491204562866808066869525175843244197951385435367621119806043284240356850050231897576126180704082866956982882640355016653664059309975396977207740604778586887411434978479172460213616836238463751774108042805515664461200090202668560434200797303459028694284923764106853079668563872634180061515300549044567223546427420330198661177731035642733398857305576980227838430595625340579228638935954819840137808647096630520945799287467049620637888496355277418459441310991394536460857480173916276933267910049009687600671549399970936294227627648129365191361653780162196863054044861699732479833515537827677365207708445269588953105251964436447887286344458398433530368696637969515713003329123505876860704121563693156037349412476818894438349297326840861444745679303236032420029169147795336231980470229012895563159815189784262412750862943838958131348489066770269015053793144005126430602187902979875829768785234883135499460826545596083073793118346537087874426542452033142704118001838450622103928133445575444219400145871841067967673893089221515514332684595118198036100116677002279015819924894805868161806872956644386107435823715297062995740954659147971500303536171013166793706651792149854974954130542333475891516675622883046462797710448873572854538730708678129416111096302142765408818280690015479574035519044184979214152198314968919482497728362041049288394308619619589866203218400327029423698530320501751142910668270531470113815401859574106573383135766643863620510132048020377110755834345081131215086379903865371104138848200534295756122953326081465937259636276396227757004774633653772445524030788838954074895068352393584756203108628988431126435151076432427991827558544600429549303659005846675657433488059279379043903211766315969952133298653330996159025300167482632963999308921777189247433820474187191713818094636535016834025877356000802352263167699154359572996570455567958448137126623020482223484229337709463175642116677565751745287427864263056777562700814059710164578356992934679984147757741172464337844393193439223037862406006448224728479873274594048100176748193695908785780807709954622730024529454152246226416837946132094068264433783798127957583654440943589119792771262346056942402197129051425288560919041991998251930152051802050288401977174378811618270826775498115970012899249915012394380159499190117882522116991651720144305889945685944732340346405358262006407438338771171603351869442634509909974948795643001501825328643384740763263420573289696967441509459995616334940141313663478108545110210416822032710620816751571427235522943010136694544442047790723298420297426899106239692515154026540244694925088550308837619386393616619165955000231307396966491530925561418893665820500703052857988713607473172433977318390677874709034743906748865792888127276785658879116975144830832061170097845550537192265943342479812450706564138689086293612013009205765495362025409343220335145636732863616983985416537466449651432714745752726109927202502280852005032636993597517058012739251333003954658331883792455874180649603106465712018424464626845547411470325694216708572718047397695638005269682807590877871345401516973120008699645967535673120889133132876391483563777090773569658412166340385883029425322754499036125051529465806046517018924420276707839058957061687908493322523022339750510031278908133948323168298474911249499517353047201435167734191183167504047468932387040410686844894993926309716008063831772827649218330214989248333399293791655887274153799439017763617592754776411665740097969773106658492652563873712019343848333210873671142886816614565002874278324575665890856380722406131921433172465386272758746148384716349995316173679495798523048111310996097659388816646456470637120590829401298884537002744600859068507237633762232352373515196857887504549498621288638308842323637449072102711943457313029700469746322301459061606910669287433745720386064629226352327025477934731353753051558411256879220366312439875851697137167603437020532878627532444888524178398514243590304702293612286877045398208310367021589930860282776666115881123990548868341844937710119379890124690421212587639195824398814084402762866926331725294948259729514245095309066165014345350143626447086028813876026383353279121569910660606813305114458860562026509465890697252717269427597848394600548315332555554732324627301623527713491902317208053318947788376086389892053242243445052848612734751067788429342998293614391285174822203509080313407978210272698483802098629574283284815650870929575537443404691902819870718883778772829935549330449896627246612979378418664094247869862843760880253582532767640986754610937629012820706340404167033636638730752751914855695078828495284003894487511605226969636621720040894238722564014471122635213597423019818539187982520560670155429764876841429457217647707837782070776874314537166608095366849383076001260650918875684246336377819494471126994361280021891638699633271609489556132808365484851110571640227951663230311271281848480309115117114232528649875278011025101918693078788428845290831008347217368444409074255390897124756547850025380413135457167334975990344753011306923932354932231188065106512401169315145750210515383712107167586519301783573110896433834382253621819023630447347754908088470669102821405972762522653292747042983174151371934974372005040124674704710804784777758867993388528235112309530023293965807298328069703306748973223237432842989850275054454858169752518523639782026482012699737281684793414488090964546124655293022062259773021509569621036358917017471330470505756729470894306558419926769141217451559870322429198239171304625140269613047075687243521620001252364352784840137890817178227973880736521915108676951186763854587583410314864538534816234218385771526791146850439605504221944100802379596799894931379915829034059143244644723721583213410023190886515279459519399206549076832184895336861554868222437839943572652013196905602879291112601627600421831090964791223596959899169433940862900509173724402524937630209962911717054654713069789127108639611958675960575588013766495245652964768082287186616168274068674522230371644707653882276854243949179191615481041040114984723868842174181496365779726645839529606085030674931106218621824995387681616102857866378580009074961405391843814227454012976942374056811536366497399462408565434465332637857759771641445520885730204623862908879880075491028880990964813800064134176167831972817015982882472513727044404536798797868419479515203855896963645320813110685196658413810794730167724629513506575530538107955774642360388544099495744901563902616982118860540723936405501462557604095134082281965460426615253882848106801832886240623987156692904898812538392440002073107574218571823110885026403662996296756328655867174798560478035590007652474307868430533174502246466292709511260892978974256701630886441169529710024983492156620213161307224355296961872243739779181720824867201517461088796134464153128383560233334913123728846472606100717819242703000058824139467647771066852092740273097167201124055684828745904209746378713969354164920849437743515626034667464336075642381738745847265433620570107305559827581512333582223586308106508351493180339268802269361403120556567581474182414394278054757197318902987716490844306971856325794809547561726428584867824704105512127624375413218470148737950338953272334480128099911887344558425705113977664457785060770248025119805048620732430182134089866101590436862361726964207996631419891691869348510703284946088113695920974327111107404861783483656955443831446324474409752718952845609244090330621427284075487559190000542379358930400081539765949276243654156507308838681383334257718293238041207506906865604074019075998432171652091722308617869332345237831054956183168929659287053908221354940836711876026356778499461944240704425603260796197037918135279525715914137200084838963989253115579248716211333369400958752827219039474821326032943245117615158071298028939690059509649715956898492949357296743808473843180926703758495457398271855152105274177553459988155624441879445386103526107101172447222624340836924067233619703936966021389805699136146160707100449946609724755687646965320981350889538310071183125547402234465950953924149439670005695680323658731493834403341379563829423554648888487496069397582233018118466247839668106479694497802502046064606927967996151793850029998435876854209229779154763117220979630831203430494147493475002365210223999782011545186127722844217656479433242214811826170994281574537182221400489318253746095039874748098787908130938409005198593371591023960978432374133685489706322026150240201418953378261309874428103743926148452048199960378424252566330210913481687120532389583874479138967072388588955406581800378516648843020177355594277678873348412325874984642538793868867588001332900052215327493155502959085601495768109426276040187536315819907065066859931009071673264765566739252943507954233622327286159967384992887907183400313020471293281413093268208134332487935757098361780744140103301198407130541831065244091819591038715468402167483006058624764289565879811737500917927580969973649321677475638371326265238831812961389882717745037113994706287122828887753471042308891829017588445343566913815221360363000840532372719149764930177673111385759402935522543105000579319927724838553627420110194614673298457130450056508149053832078964807965555595322394822826042790094883587686810848526483420989217577108494094203785021146384285102364762704229458438326556838272431082596357308171342224888815479231466807664780272452361928941740172670318887117048508889399270868072216295003977654933914977202375646094001152929972551379083510778851322674835808179740680015681452538492285166295304145392251883671915195218380107092283744245233682453677359034480038269754670215681764179265958445534132655430232903535071164030421407459473112742677990685812375903313132524403350538044551171631430249013445316716350746111549418170493361516500938399085768518516664172670768572422515675279632930200519754579666081010727767456881934709195142440386219673432176467954957891711405931002805657137728646248836313434997568664571109759182211847782774947490071790380857368517554833174466288738535188171748913743375721763924102586055596418178403818294974808204434376962251198838436074811385660124713870517571175122334960191616603173881155619286328771926368176900156127313362727527716081330327699533171367272581359420224570995035978921103222239966234406764359757232153265092012396807614477822703891376325145697067692940985052574456229536365967498225346640462825631146302171359695262365227523909417100905143647287851457473854386196148270274787323590661971499749219454789552387369022650375186034503490154935489248993998797537987736110948638107655792411022222745594907842599231440956529047195177100931664194908441135052201410425624914726425708425088806861948530349510708716764909546690226949343745920542592284287180069860512130525958201124295365747134871000152709361077711682185978917025897610889782923635175532083662392516514026774129857317502923693402848281737048834793816122403770432223361565921954747005696652965258374887205427435903017283182373339681486096020845563794483785598658001057262028310216628989634475329177028743230407807591852139228046168685556690813820889656250298269357149267177800885169727703425820353717232763088166743860501131296637326643858509185372077222079648621373696759050631992637959162952233733394328553043520487889617916488880932205316180932388895328298993743028675491742664146620612349268834324617711345823019261011451275936142789325548857531893060177509824589985320606933890091348362674551077542632485548540657899805210894724295863576771354785496855805108944402053844069283012341165523420161609264126032240050655832060045880917106318067679007691436402159533306730980951221913079707780459904913136626863294521183017288661614611794477577427634399147827836750439243042745400488572500641962629111492389416987183178642694131578393792271810473087776613871036199115974080883081421413215363005255483819444973607241257993408332979563241353094766592040429788381615088039829049764330241659299528086825339334496385069357857027993434473556370454775884713847374506294428324101334142448326074491490574118703550733804483779598875170472114737719790051555100484448188154329225532084190112987514403276044355749643884618223404864614891385661651298770287799298039540412487234585520902282646157797007147689798923850226331757997308981048444080298469592734642850365823794865309655182532615639409446159396688618126199496038730687945419266476483758251542129430576778479575544948651421070432756030194883260023681462525841030746600380636057229240965359754790008771936232158923786916389308361459893836095561998797152909196613663869831209629809876327563584906266104256817232626519738456910943876448844831502738279792691800162370805841149821754034374215131127765173149706380214732410347176836590582951927063324518435557284108436838567347858473665999439021798462375545606567691112355722174872630059328752281634198371008073779420014236542874005694025921428833317344834132888673950152408838220001821651997245986670418895028702371901230024861641409265965077073521552806727338261595253010324534758614459274350616970215794895776458534790962460012249197059253515223358364355446218571788107960253639497183305869729299380053484319613722860684877490676534065057030452445747649002299956748968584624574349791804782867125961811132039002328897622963196419519503688155314105258293299048767195231494203748746976413424498893199005862021712165617475004852586209477700826853214550353601643727507327268307643882627091481380649592286942344802073940550792031097001748651899731749711118995204993073784116781950630496119491671761455110699610556233945994027719213857122529636722669546752403529358726892911430654906688940963404214569630654768783559861338617217829149566862330920159424754567711699117960663515602712955550750625579709692381644684657177277726269846268426508511968299685164966296710105639893523198560187230776108532725566699147686184501321310610688350493864520014656445174445273505811791267711574214454234586448744567357839886503402496578129865082595965590871982934605664806655758245840721775499357381705922715437565179642175221912729805562021856541656116061280430764147223212225306135610483519033993467466102816273407966291105009349906798609602083414082409996971145107788956246841397335649108350860980799291025747419114424094285501829736253459306532642346405724291348740538034037477833916027684906060754880119727521223224890580675503874432185852737379069228025454118706622339246357043189316506946488013688702438449382390994965662934196368456770671353239667608501866789825320479102669212927813878494152798385461577076044041745568807264530491770805324799567784862388564960427011650420479191860043084595468239945391467366676986611040145929618005405610431172278952712497536614265235240310006404740357932491253601753212129127704083679902497553946559732002801497842133851679699722083103358672068607205630065402610291140360458886975744884977842037622753222081421783638335185870440741837158235561456426275470463016240217882943403638080787369079159448689584567130376663880972308344229713127235449119090809877101680398645796559530293894254027243598511218886865895040688578591534405028481184286120940190899986185224069717288376460050458320451375191682624161223208080533986727295123787057856395461290977901800817013347687519433046528811412414182942390483467557966877458359545003775530696174424209487961032401747499087076494973277437008711670888866333061563033723957027575847279534041111857297766006175231808231449762463964817285570636732708378219829843797194449446972029515731029774310890050448805029789806056759804179065457416697181335873694959126305562138409396640972096215306282781300346465154871195090981722892459435584345902219278467496620762011945454026347317638753516445911325460467628248730042921122002110496196835479879135884711692668072875229693284467309950298578415464430256548425750996498550999656829345337973584946878454240613391760269038756036736344087136458630302802760863179345529011384086017503244500895817636758108829061670064234532972296569071273489828157514363078455092079796443761297864926489883021386114473829081737203209511021371514297810800711249627030128666010058390639658287785382357886205318396810560792025400161677280248408167634773122440007806342135647307579209294914471440710116450174636809432771474082701222370006340264720641755620423899551995406803088194226630667166544789296361375173815618602366889135481288495371730726850388499747968562962029888290567753849298958528690055963258251130227239118844443306726142641381489393449410572249605203313482774443935648455795457191270331941147835902435102570831464437672237649367180187369558320216820957089240350833424757640761181021114075586343418129298102242278866712796716411898151756020437469526390258537303147134806925232717580969838603387228385596318535951377087155121033142192978360160837248917264829161198476984949157376493008108195512045409524788340298370264475799298076101565968645857542118567202684790483322832509007440523870319924336932539977194762755751611184666996310136621854605829927872193144605325544843260358238038944104819564509203616699932056938406912571915434639488716249827392878018333151207283887159457420807054521759711007272991742827888902567570041519456385093189183114766154119240624699526086314447930678494574978991404721630708202638538457331313171696292945645144686009914167785150854689611554970639657492794448283807014029407396834434558681909432734242881394638474075690717089149658847192380211541184179620930870161524498455563108137980417259170973452068214970578026151285914499243260410095961308761238386362180507774082068074652558513084898228425363843329579556880956401119633553533432759473363464614332820601193175751504165549234408729254385996903578454060192054359626075937055118171979350251251643988167097455355976035341102093214015511002951538442862450668608074269323040246874166562453619525390061904548127843693995205830085675180372865107354835065264588832705934957490996831534385108940689176679267530097238568029946723756561497161839998254083788163674548981108175230477781217837443813931830910681698380688321507762282026734705721675127578921633812299600709239061674163503688818839719045925252909872466335743418338166101858575514208589834590862629009167674391527668801137200410916565560709555721643370422009977373198395703709604290687493316858808814246860188941918046797994351980194211299583109500147936852015981459361943989775924090833997223992862598310024607840377170053394336442682497485425369794815477954078666579261450900510564904226532379144017618621641442581045570154988651019927436586220627255147517358927917900694460960855771372524745727114477810786992646444678580786249140263042176241759840382860032313686146180591928144806430181038739212800010644800260223891803987889838493746078525589445577449393641728094879991593958059892816670374877591009664236119920410866053956822055245311558335023371798297851102014526399407661735084110833872180227552085498064355274442730027720372614727320801374489971543573088350850580396139154349854066792800768997745819496705800581960791096920856526419913486270246764172611706932227252366431357466229515123329468033430330973239463175409811160060388413670395601892074479104253292877285855447882698917642111879692149985986924621769168441793969995960440449710602001871356821885696651667866215264448714091102859971163000344646806656094315491753107952758343000591643933459877917138911475539650204563471607422761134114571554592659926748935383466567278156472750113201386032421677329373596149381897361229076117696224463220907806630952755196201997040961395991182604829951299591337522376802059838047429000958292283617784465229000059734318583683318555602559127570052122332227351601464257718350747708718719576817984395116744369331277713607127719680824707318220128751037315573223218420952720261023056962034659375263690510418731114132406275111127447270666876698473500021891099984257404187423637339905819807245885501148532435864543532658043466094362203731915294270731253788618256637985811158888771055966945236318633298715910028665028387071732618125384456377979460185038267534516959336575917581517178887924508606269697746416814909490535050969749319751049758647504543201861304173836036221644125238647379187448206513865853880351922465454439233093965337991377555588654959135951652638746689763396274790499043280251509675977592370301188555397866820727311190398590385237297963588043552584982327550483304333632316492207337224310804254539144786188478540869877122225866178976261480946132779540560606926544230772977884963910048339683039468765034532966072756317517037657758509911251362805859560773340403172915865051665638996544754913133432275400618471584128727680672054727264801540670983610725012765099883238937400233084767387150904271214167663076005549836041218608028572223785336886019478183126163863001211160426347891972229091262031470867056343391682498439694003960591680231825993472781191546722288463900995466107553470256176094396284430198105425326003180455181079422958213306138722055104599780373419823373713725468483174124596269309438483222793904728032069039960529150582207502928393369764026591550206547615051176632546525527617622796177341025285139271940226417317156788031731112995652507636972088164438917253465251838486049867055602680523203472298556403426891559116066387227269708811105707791490224151108339587774896063786946012049477603357075757767285821030189304933878155251048904377945476906982606599246014996040131975027352691864049227383869860588411951903388828455238290610027332550886672581133328435947651193439701903696594552197829605147107768368629548170625757832689152729839005758349408435237490549485662278376642656911707527654624334343276139732833056384744881578011985619635551753877529157275738741704089283631568585812509860749026622571490389566698947857445416322374774895871817063559224402360200311589397646757812883138577268501036281726156364672839441096870972215598522515399301238068534404712185555401822848341156291316156375034897979533921905291463893336024958971657965518318475972478802344256735801311690724288740796947070205100403544308772094136060106527542215164447396325661879554424412406313149198675248258639000178197866262014447457977103782394510380733014870572311911805113564367638158143999739963142479584835734514405379715900858161156503162618371441799657554005336759906584067246139999480033021621170488848250388394323983831791607853243697347507134754318713337988666228749023290961112478354644766327481069614369615741829692470974973763159645346823690604730453955433341379835556272938870038362841022309785813782519831022964508813231938053756276627007552193979532631673839799752434268877933816146475566973723098051126850632428334735158959071282202375824675172029745105179494968411322900184160669439484226339229406437651926648935216753227371283098658119542811671251775708225654162627663122651855486512946869216052480094003916502313015703769899993457532361743373293876256532958842405247095612773826038587208098930113155066296543210305887047812371511922054749571224811989191868902867979042368708863599946188769701157300225142609844002728237941886919946289786873793859968751682613629047990871833471935713125794328081735454189496691564278567167155724018169883220521298855647409925392078784167915410013070150681466955799638558536967929756844709259938974845104894748763389046158730906461590275863345383636953594401960269489039387047746239692405207996744650055634860747608033647693061921355056597241752340262380508498613085578420074186637012928470231372088537629109125523440898129690283467002881889868114862493577752944721846408331615399180911509504846909870530482834543728638579652845035552753025370173012200764587345997768143296447669965523161977556277454108595889763661897235188533277676408719333105682103985530940806135437135961398819951085121884142618216422670888149329001092959929832002721155100252146624601827903165909414673306507808415963569078707722341094514313479233539282243599295344319638858067546871169558814957343731540427076270602097875715297026982099530984316302313341244110428723469519471112961011970696873001988252484576412861595201965551114527955325183968748636129411570210811371944012465129150047948130729602303426693706245462408970496526370809929022263838746955712297383789127062435428918683634159928655460894102859987161648434873972954653288369902200178397986653325483686209303920552199619662181868873789464238168118808028661082310811507571670230655183510021898984080745210314033612605819569569026691273188402765045221153040274231266688137610902054318781681748249057525361671766488789766451566301253254143339939662234959854087064431440109748201397501153966256010240695218122701672878195060378962297897450130902979248150505065286328696787504621736807476209263769601655877060530881557630918288661170340995681643088969779415316603958183076254527583195813453226534604999498034336441871387103856009229972991812692216068506010347864455361508622273142317151875054176438873457231922638995325228706755676872430336689660853746620082776960479329446998104239955096429765273775166968976196353907979508912349115325958363372785320576522236331602064141518703897643843081972370142117619440632489166789417808150008995455018692652705015125714529294883967762692006808767693301228327746558385633780156107385343725142093969891787249646545466652215887990366604593095662977312828598781767652728224006253438162287490862043450743862231331627767366595183392067309377759498534654346530009497222935012061092816370141122676449891517727608459478293585845560454033713284881557303629011477575763334102539746199108653739126499534071405087526300860292698053681616898390826299883966615855129229387830973184598886802241238758344585318205565407632452141223213051907837134182419366747561638977332996774309282745604032911078742917360111903981388492576657922140583860444367377203818187256814146721807125569309482670534443444801746521911689894210234947360968348990311651084711126771679608471194916937521645232142946864532575093928225112469419003952380018121033647702796984036197634272218364461461784497139867665393405566558361151666093803884957149650337679723865765284263947550804687766855663616556290143282986007845837041569152173731187629843566947160999838380596018055310651403380707246236391330960959199782972526384138794566884571102373836955199298299217593236903052389951800495721932363469791171535356116228825904248649895300110197557543483179536314072176823053483124693832453020119275578998642434903130364745648827705434434529347072174165080773070756117210540780562938111830121401937432765949018832769826365518646593719966319751319764456275838829249435052480809559688331158051807651212231152723110419804979311580653235619997223013527761570753665327284935529969657898075604367008969854220972342426204554007916126458858003076463019293192418158645515263240062856011541778863785392898097174052869020160244100051371113065386386195486859175323658722531775243313854895664989436454697565408672516046883636648376783689633610373127430553346755558944591560008208447782199090230326315346474498769111809395909288036857247101576309464423368884825464204063960812203563265789142541404726495420397716469367678568866812585546987845361612490542214819030535183903972682272791452081073595269175748148868954704986577401210102694131260940029962525233921476975715647065019296743088144096062282374567227525707689186924842474967124189263417819605875551577874704621494682041901279755053164096123595751760972958414260849652121708547322698512010821657593398696607455433052898787423070105960037794547319239573348193045527080135117182055749178505647032810376667949505709337175791746457174341802106440358250464351357560530188430050714606054341580638465664103863453982886604009653932410221631463444184757957288963550844796508582179670657616346283516183023173829116870154473446552270003384141506491055743677817411653404241211907460925557771501831587840429316120068123833006786523031184857930469498070022277300340959565160258401351791433085627256925691642916754612168734069312787607122236218789416701195558340205147177707021047677290888457986781513845758456808227379284343400858896891234891698796074097698558205440124262271764159731419565995493856780868240457510363279992279055743535742892744672272180483308588659300325074677844058666300704719613248366593382983005988083931680451367000844460203632533319757991509229968589164309781270071611910859286667891575771728063284755010550137758620471833209999167649077346988506490397114263774406506876202451912896794483384897271114762106671788123611340151558193804002993104999810502997858118276723621354123909681270175548176515239102774462062391856951319513856659230476785772148743383761095545228399320953973246301589412710901957764383656067802987082440002542196697021499977797561808010268883317179767541470555271784044878733302337886840371113204731253691513458381328449261757230423295757005171970147913590742371677034667820872575477112766181618670272894789171972959033012352300895498652705160934883777452701504318481719485181944757629660629364058985460119428327990975252685320337610698911304675665553324865269851173906524923021283121953153818393210640668473191938720752917128624951510037435482679924939501849617654711019007342198731357659527536359655800482692276887671669121781929770646478939995174507844284843336262345334627185502849615782028095769402010940537816550314876734275243984395837053940588998843946979038695280082214519973637269387860851839350579277030452021829947058140329265724893460890540335374420395861349259037010376910238276474989493629677873671989087299350266064088817244585272839654107291489841237054277011686855439606624199080418516054243246289414367433969635516636772813582413480911231875171766432037430717274686709149203572217398707419106906667401554878895157809531884818828762327465657231175203888213670757153795192525928695931393550457205813565255728380020737523112533942013029231533584750277525852768567632490609612256023067356262914137134758875452834734502626054490158531580312976522079850068380372474877013005325975546480465313226985981048221573075152407191555019401523619200219481879900850027441521353937577334837863176344369289220837023254393839943370336181608558384055511055615992422215400924442830109210090046093451623107105210674187091019282819976386170596713722611200956700552728655968248386090269086405112670243077795714764969345913559179572966519159105809077466570989450752518753716957167803247345574073960591803279731039844826542291127933699036680751085847885854080042513171494461208890807520618298167559601641549810805278967263977206265366017633563943768989226612495360637520549996501703647344306125555151599654147258825075855584533151712248993456733049604351727858155740225540284697706203698541575188618305337307927262086828794440242033812256501309432908804529055099229266007992504829062350439531443452818440041079277682224034604568205284019746232910770583775728218934130041720948309489309729106338179744298672073452330210664479231795137967578602854640551987199272574650689941721864892633672285317612436305884640631193950380200369993323112757874135226054922377297663288289501707278319920319183595471310686852725922027586278404052055425848339231687836698177169188985951068009813190759592360751837277267078971058717603652119207582825105879320699207589626037238301819745313158216955239890811941985756157767149357038416484542895548061653214571736029624500762930826735104836427288323220753914367548246380533224203232571259053369678733221077758481366859040901058271772866331823276024911846921083180763048055103973093332560235462612386003269912148162317802578088124964920431693896634078448034370753594905068832733433246300070118024465037698494800132464796480872193430347138707829996431212475354461844682932292887862192968205633259539375775814590788044214061037407128089212662073165302304145260660224034116176364645497559501414542893272027017868369891132394429340266932986267998801977460238987611558309059185258268757457601757740732846520802662346903135801451421244147676752325508672138783629063947162435210354991031871593257121733686764700686482179543861808099365812007510016605399996428971184128308570963846303931865250906498931839507799822614757283999823734516875094847772469695218982662948469091867486475273127913714039460522374103899709249506118251177343508295337678733769586540638327522824067552334918911213861578163679224439357830581115570998666574126211368669005070778469646308482258340235541836404912097189445084120625682768715231433370912525213203089358016034879361399013577581997036864143746418976992106322289346157426304668606215272131828031114612432614294801956995329513513787668292415016532903841144960489404089331802114932240324383160279695704964424779258299176206192742588349954283395140328983412207198330573898795912524464230310617820510217990820809735574239395281717335308213421531029631923328345176566873004378748710570645474578362169042384414022892232594410526732063709634009503286632022602569238782524127404825139592444692355451076177107653112161047427303566772044658762664708702624132726166273492292462437686809729741057887687154073560329333200902866114258681983504017694289043727405838277077784631041306524372831881808103905896169271513191883917439679116870509582696198254642290273620972645881034669462832470153155818169144283022063254291242470039001491654621546461334918275235102059203832558374254534563273533596238303424120742810777864252401095665427142302267270431279787063850672091153920044708890811017193313492129972218309284540637764043377944509865279097854279659668706434092009962369697599190011143145163908002408739949130538154805365709722715610797240321067128786270480044465800534548893671211740612622908193447642450449161723124624104542636313912358329837588996755187977848705646064935131251757274230159075765650987476377627571036188055590313530560891654410156428904971275735788792892794484678063524632926298532822286905935814384162784642198649223376562981779055862997846777863551790274296470763336622952515283541523963999469881401848565324181897307469578186463234761148506350263380700818217898899505996125281862255911883026167603807177822947992881606093473747608149086689337527252940841979499389641373629406017083902425220038710329369037499360872574764320518495340830295463254014214170030947224226914651531134620956661130032957351580563778830260779382797621286270062746699144536334347044436842100312954430873873628232965291285954571961081706419316549751761488420004633812867836122065274736067721771722240491257444448800916866877496441068759695627968560512759949445162992809559965211165306681229819657514539771368024970576166727967561797068814577509827159721652105338039212060637141568283794288755364477075386943861626674482560502184495731561336743875163943516256172712021656697544535722988480287766634998138626253167028584656156718277415483594373806474558871018333150072817357694322433072620546413196504939372859658018546687075983412275135762527898978969202667944044870050561717045408839962102781191571757153408237053562188898271337546980479772290939000303240381515901634908770844756596053368102273100358471161396621746738992143716471068196703707608836331380846418609214932508483553104942105187537775015616191350548124218618347380981043513650509183084863098142802685391270358286317815647190017324021981536247818047944647867084326452992503239649172933749429118762319063132072792756945893496994646707001522985962336155151918372928981054495954469606730734619299285930194765326878674135135603215103659985618938287477902688228013085035681790399411605505512653873489361555919724921444378650266730430549742952544309812917234503937907457920919240306993498296194671833105575072719150054021208784745302119042585733748145179659113214876097489198787897332174050945196545140465657580976527031672214883310675685544089104531273395407943804259978497179679857478864202664204449487037433513159772213896446557433229832305500868196037410587166077219460396921942499122341085078779521819005873899800172701040506764545072044847123243999834474519047604261410460697269312181540660669875230336583960486205024474326324008351911631980233927666262667394479382292764794435237531721434905694234559090025786752467522022512640159777304725080698108308389828110633057013375633249081354469134977157562886271854743599362000835830585397247368347792975194724994908277571840751530743739321714624373626163389450611105980139889932260945113760363301400638293427937648666741985751235690269282878306965294006427162142587745075415855718845383071327946158705864716426647006583442552448910110058339664464144721979017097859861904656410647805451740199314406808778428246116657724109798643709578937554999887735338098007023083025723808392366340499856440622568018270594009458776527120101389842078795958228691786527760457020899237937882938034450886763383279182372398259398691758762913566267655816900162501893291047303493257836774543881642933336855930635377590534728514326578624112960658205872623994700211510777157076247276061066106370681625527713181184017766925064932617021492727276769919428573914642081151993178196170564139705412161764965669303810136072445832398437623777383616168009228556148591107438217362423038112781044016710682993562108201704574781474637847320632325526316060392339848235379598185982562794065090009158727742163814049700634748254829796912927310989954776039833878290596796822128162818143616298762368415559954575625851404332548807517473763149040069620610839901135722622529441821961618683305582938315503054399351699674553947314624676324078335259767029703261474262297155567444587671342767714963348710113887656474310094713119343244061335772983519657251729714349568135062163174562114422100716647050595655811753403447995489100435037940191098351636092537876930555225198494567267165594311778956820653031679312137002127337903662887723937553298927958715324832531052717568903406278888109588201063478331758984139519394164999746429610580138657863368305235474688813953525297542970343113580979154810694748802609357978808324608164491008673421693715719556967088069314724545173258121980776092354844207079349442031268615958209939459722843992043809965745813547435719209696720214907816534186515542357480061222577046801917234364935156018104234310931023453240035016496405213918713181933011435550024475105508057030589730975628022393975966590634915775696808379824922864484106329035873669853650968156969073710140854049763608073807098660717007793982161819129110113207206562768239222031184765512787020189737615547449986634810186910062142886434459032233673778338711839299215058975570645111182684831158779830640210678111387361914190031988996093109331396808476074427571274084276990901253964786060064523977546505401469180408142709561695833572021208446167015779179628776228462207464805457077765147515449695216254142746042982079776173631933353113093112323754281975351322517349144032281669846788138949877850921254233523408687682077567283662556119288077289606542418955365341770440075143286293548355496369124160988015135404726897504277262205166772059168498951306583655972699212710604054932534237118019482736589308179950471254698467354835223624481596511406884765563299923403598450747359423893591886417995460901452253928086193769917846128869195933550099831196989686666396742468656141887071570861081648380754055767423863837371884562658905253673881394191932901214761704064752836317097084888216133363223964662446768095328891596714012134621524433650087595296300561016289802240277427711277928037273108962628869517207457669372863417385997521841283510180802496789543617220462072513259518888433849839284822746615499771110608500062017450011438161860044094079098855216044196142273453318019312598742585516190280253898018694316502121132432771375642081052074562178061584688437028551073422797363300846235792950512640203054583668059393098155835557796213864544323845589514958521402207685811141019416355467940491081089582042721286857350550807774753962713695178315462270928980753298563502018681504097377453868362043268564127823604622526418676275290707252206847350609687507673282633940011076076707820476441979512766638621734418067603197998174823711979491949521676024236437236142395041419016107011394493061189779233854552816441605838912224011466198072894018425596753028948420073364049989427881547436805240189800232445011949824101977906382676138760032745016964513632356019301969735706916214505270921721168793386888302143652513485218889261173751138258797973577610248213993025467830845172395739729914868987865971765281303608683600098729027490626784119787479867143382713299261658527221308833059819008348523812412886380775564524748281889327459951025403863910375721030871503525604667340494258743211543440805510214498720145357792463035199142548149305771200556860926183659818236945624961185286970030141965776447575667130566387404492247540973488598189700571695153688626269757209598330643488636675258211385672847743602218369636046420982875329071436494624763636063445112559937556553597172545115729387697184851700246010523724673187481249756406041491775379360980671569234863675305394004494801185875394493373655187547905847347449461133504785581291390985402559938216263742076800068922383102598970345926630627089043821298938000946241792655118029227691828791433891447951990206455123568575384657346185181157890507653993440892524456032418339448138754259450227261573067510603894923049092569597663333536558774286067990756207355367142362067551797040210415991481474460521298632432362047018505638208222028400185407324691559509065119866767515795431928537586457692331620163097343102140427173036056298887227220147326577398745681429331577806594250497260976274355202138710500350574527112121068473181937097302234240957992155143916381270968339084757188638381013430517753973294595755205661754193446781894644850578816848404758460704583080687550939434656552812138153626423175701685472596420529248642289361400253962713380350781267943246085444504261303469567408183025860702592969751739543750621123837225045203229509685407035227600536035552846098868563429143984895410126867063962556319153250121935696024589777748085265011113306764325096425436342010438195574750355073106015761583008743391353712940580912640928427080609794948595151090374674452721764888934420942712186500220825027597189318621601110083998808246761110723266896405175406267342985071195468746908299953275199153300212168649595388324405727525591158198881680375668654194925219347017119969101765967429223157568435284745933399526545134642943881228615429958418127336238590920114370168559062707933088742361512841728021472827328243505215131548584201514775426131666632796873167442984847689175987168906692604802763004176191393575103904382814565277256837930054199445636852565141262026014663411565223548957322623702126030927978548312373999345188542276211285784142512787068260661388686298439750114534399833465370768393119780838738656427767720252625437711068637764509793529037008399936802525041147534954440242015941533448334070672960663721695341150917765887019671841939873803202404073725464644798189770196273768167112388417628196351215921758936341503291504438221036299851293774353883332825637986999198475270258983693760066188989283427208864605449058499453457695762081225445012463017898271011578695130871078689529584922045517830787072547088585565204825385255260138715937277836100392153482514445551515842575852380787676383473866547260463657646678119911546995573390079368988440434198636415710822231641456484440617757014139324243866375576835545952594019266438337481609577916202907084822643238183053179486386590163700163213628738342253006900378407860418106890692121724787407716949276277832088163737740087765867094782813581556875754677667419677972723877556498656715153876132293546443754059759421443866549609172063829856556544795611924216432758526896189465328031270515873210260302329055924842936755011462550977876569729132831818966501852423812481927025991257935494279938953791994807201257203383701409826424176297462823388041781379118559537704188214409481550460091971009161145407235075194633692190707073451965905192530758157299670811768280101694455561182856207008273792467122990400687021800406795929714965288671454526704946575718364990905068861540532835388733818288564907853991764018913959389806073977130530473041746265449548368597566238056371260048910479028011797473320185635618409306306257734606041282604277843559613770623339973664955707366807013081977834151938726349367957828802282498180011712041956865079293161453055416414524279156281447446224811200907712120891694324885265949921065057688403646083832347743652497551771405927474050912367105358320988389083635395352941319317938266538219599102962142631615755983115396905416826079334584279461787720003655044687260065047137929595071283446012815391131936525801571285546079160958502167946110934771209718972564044366781064690761433174419361593419362871391706492981141799098922900879714767471256491041281555306781005622285818135973468274936605164801496859305381668153283013785279456372215621133642906049449213613757364903595350394310287492903808864391874204855391130165268813152132457988794728630204908867376119649173660886011066645569499398721290418817941949852941433353532421267194978286293481553343291414977703311253657336297620135978036982481013936102121065498885051909248412469344537393839751086598057619338402286773570278653965096396092461032516131371696275291663935374798622193100167019953793041247345454976796079089129845312355172556057164354275643630594359813659118041332754551788413667655521648998979658258286938869678880234276854630636301332152526854378472436087071856461467099752108041933776598808310527667327540414496318341889752790946425038074464207598971064976826239290407422050996477016012613216861931498012316978057694855108462843763011091753236982258077945556657315859000635811799336976382312660819610094712841140720668998241761179323893386392657343655411415115938329309286433140075435034238521251509643663117226774935207989527611671001999036637253451828274032715883781929316987404319224706331849822864035807628062639659127440785690445489052776679375320567179069477131974588989295821613594069967827849922878592187179619478105303753631972060702368518016960143286201832791226227150198340844134991634926682340338010244729837807325532599396395200117099964383505963148797847388369899604074150804905393067152141616341666018200738690441616804305970685926878745533330825647989490024441667553639066623582500076206875178202652684357625306459201551161409445582441252643217801994921275616352295385369185592589583837153118128682811550208238976073980619512668768235564690693574465191850158852181394373329413561898402203500879095057919510615937559467613513104393058470802618324697873785516787994021149974398398932712555282388308926402449903618810427281439966091895179774569686304043083467992949130206927924288914118380586297743299103153162636693745906378784585270392766809760487770929632088871085591592519203958515381754878896965453255387500409714930360808671470438622705361285280439837791844245484637556966609608229890949913917822219632818700822121899004720784695682750789802547676058501717406763997537041660422151993073810024564328112656081317055088127671482418173072357389336561520466927543005473856626474526480239446608295641730286717812979143355223676732030885000060025597323876948356394738562016452051082703961327785064414862605699927105977382856556058645634555418554282694974525962827757203853063843624065412604076081432144102278032427132653047615748701492577112735195305101185448081648145523857394214802869724785232443985223721744998891623830660307248561114210425297721105458995473656910269618418667539940729596281210967190777191340814667914374434042316763597625909363471554441745941729661184735201817731218664297591351796180026258386134982378582575555322382038936677845377487066112278787116650665598876676742691053876420506166949490483980610717952038812683762217449386612653078190328020915591753558621103017749402755159310101291319692107008748236422109694192597350860548986803164878579628872396256636214827390542567014359203887720394025821829498732180739593934649587069918281886025078537884459883762665281733731419789273459445351784694621649455648815135776677132382657066583817606785657916201398023260687015748594353656517318551947935633947107232902608803905077378688570736571499741465042245161494958828512559109783612974569180403928047053905251902636003345353085491781862732647283643871266457904370144327534212434680352759024775671035500689181272181578812328824817201587956416578611185788271773322913176499228656289622967389148463754388799702023006554608123956311690337838991889512633783886771279058683419031639014298515392270895487565704039304518778196638397083018432999138598290943911700806550591418002655759175446608679434189142233159906659643106654365358800305829041386568450338474981575620124265507244370335887877017914644110114517157272705752103903183993613961127269911177660327373722035208849274248132576901428203445891156638916827020612848898753947508300548095606606484667938632385452672503658665348915203299386069372579856163788603625908313716695346651532370449849862686922004675176852263558037019280683097973027578180947408958746618524562239759624625067670121688179669415328895709947850925881719518164161017133482453455790490847717361222241541036835897433197318903529324990723095726288323508430249226365006110407950266666962150195423697977331441403907163817194698974025255146376628446560517085714221229071333236227190139259148412556215397359656030878558951517398091580762308169371475989571973077216046644647764866332622499157431662937872666940750490522471266022554303427464725506870346573227140306126374702244195382664024091032259953244371829623979675142214149902656240117034101909229413156299036627617693125917348839967409220875442216573806435396191024692121327251353189219889889138754695710458873576207908761783012221929419006570898707753317743686084754721715338805575840033731340914036862774324722118973350760150455486051919958957042478992070870727093400071724399328178458926836871461584812937629129048256067333949954140340734284912121626966387601898628844071563124243689451454244858879608059377553813910760279589442680596112368785086142736756842331112099830138166114455550921523350143135819062911230922318841417676113834677000359757514182113467941130916146207831593662702612512592351190196415588602458473537189833489712688053046016251302503056329259196104093218179406078696289505676831525925992087514923993212340535620190230324367410257953076186443733632668033375811171636869076122548738337705310711009610740649759353699977556499496863658439646262166928398420614391890552766802523622941883262643351749441643616041223802262091929040266548261857887153152631220698003009250711715853463301639236326413818800193388666033047122985210873000628165217689853072917419095059698176813165293076193429846761003620207843336589153355966185417573853777462425547604924879682936901724980706128341947656645994479284246303434640115528292943248263703409307971802938348776545730108390893880925900596840770450758943518967630443445241566035409432119964619259058444739705550933421250839315817988673766320757172009834418376458990651523092787707049590971726787469158511143692694105112147773365629272108046838375103865539593573543902484738465734783797021015578262425001122243511072505522380696545542667157375000922858958672972263591789462878703076035178043319301286985307275001274423456707370103851392754936200910515979438016403603498522496439450396065853325252477834412049461426263469334681213409853172098524591298650473735530509379910086054565495932302878514865129300814530417814804454786523337736129540941405126090565953298451200536303994419596845239860184232122267788651986974745407262339478473947215955255640280932658125952202103138472754327888587013333514519676657649757974546262049900597061390605311756817768019856500602104292217313892733275774557149065576213327105960646389701492099263383547057277544271392655777522231451818385439117996593260476308171996567739341698945643957738927302332172379685323693917596957574805229225509418175936677280224189692834081567808395952445822278402309937280749965157266323619830175490641861787733939462472098281083503051606656905878021173512892736989225741991717543281621176114150459289469386872657779744376114247242508685413866433947476255190433352866230822783577037437131082412127392454028511697607791731130268906602482638245784938473729467537060513685576812789372421232431005307489168185582066989543534327286332178230852685941595433234325480258091371125511605418700545702084966249122586285876500439336577856401127222287889244634365910266819977404873997116501897422016102663144189014772499968838172514286254851280600713724286924221030740077771264053224120908477164176623308912792277364029231869589275808698747912819862546789204909178015025708164111642455634357320956611055635014732872030131681911027724037040666471543869678842334658425030325730728114464547432382817520091375843631825176980681416141032177006758956288515358678826497368987746093570933927272905698697296126883129334878437228566009474892581230433673176494707126956326588158663746775824515632415279396004551805779596742662962199437678600370881929079086611079057988990647148635117709995158051931935682016624180280458232513752206409523601271636246394836097174166168027430849894964823814637137001222204179673026085858507142010925814648269061987475840424052931456397878883519748059942115143709098834546018994900189674497757957414383060195751564446476615887775042056496665829031412363399420684246066866727063393739904894991781331531831131997581051369341237205824020079921347800341224631743038482326830411021239587245531017651316484080262860113033437029914246011798884882570591532662271500163743264420396439180662822099057386670119684909099401808565989675845662201108796252400633876718505172501853307944549420863689867976706777714841872500241760887950504280242473148651736387816198704134473917937648863582055432575445867950390840133376891704590550154813389648831209680311535649900941540175391765978116818932172206367281757964429078121517586381183136954542293587323989627814583420511195693297295414653947752547747796123329471361702545366482736401170259357487346939292581930410907493427284871840780801736149564877768016485205458243382617769423204225615556171948812762636586571895983056080870532689575892440059110123562414779394795158994407518056233980281890882353964233352551382402386581576742930332369204075243331956373175485682725664279659948703579362960755979951967352549471721749940135973923241922163203235783874554765407739771009595042542548502049928974828245455759035270189765151688156506919116175889284693140205035142036812976144219347134714477352308210159443339942976482292740022055645973425280729829996762832444328690311063309059145308642449127482124965510113374666622129618267914444847540854012404956876146558434633491054099562792062489981126867886510323722113542901171240644999992974205336568367195079938813248894108454064916115299495179882882240904041011362981665525500734646121898375781688171758961070100514797878701723555983891549047037578856466125415063673346998812716973051187859318312241472783525527496618164985806731726932314354379437298801360997496826927892757358488229131129644520097120889971966770231522766422153042094030888658628504344028719162834097520144441679453399487334013254518557796883951788377497718490026787305085704120503205336796676216322561827075447515294892881485944872613305298881679308056709393573671322506213209300552321423112511965667208918240067687382783072197807384408342658009493701612192938692217999512647807982358772146687439391955772565856027885559068191966524563685661719583813322487266717247926283894346169026270409808415809059044171728191101783087461392865649517267127241326688632837259517564090668013683808071021645012644037629743530714507443979946495907083024724178391608024688333547833679281714958524406989063759937548515912619748304727480490731071039634742328427954036895158478263443652162671803590733489999423926466265997075658006982969166657518552953965720789995719249045408882738243087324255611772248563400561468515707750792910830414215418869190259760284229476350608881676159012767160096434680017079093143354778976917971071370858277786350701188458388100559722117186373824714572018126122960923001645139260781251365796993596577156769721751238191905159345511062945504674513897538424912025326826452872065935689560437053060368727984955204918474191872183891607847475865206778483155294003384060777629450403245548174538218589132805784471933367285552034921078159919970033454310892630575985259774653418202963979347748526584203562589137508446987106014044509166149835573154148011375963088844494124257989123324622277894886657275737429712153151901926513548486516301871192697661148082681975469953314810093122951769839401654728098665808812219780095086047362007897747721170015006221672526977267218296418575392014996216930294864453204730661898894252259957465663599763764282176292303071624429646281492272058769398122264585417791057646368053331553990877577691144869399846827833233964376630897904238452285354251999480231778096383268431541281074729121369888674202109356327605623060329793710579202505747419658893332325697372391390210437117840971750149047912519255417844800404770811149971727988687821250033282932377125714712557348538228875754302484612148137100491318116276258614419504194932671481534058772914965761667480114833162308819653889764715677414451373852683379517132698647403239470294845756851732757873958508445935460987211536260874984839012748579417081915446976729435828957970891274901938987937539557698805923034354542873441125617488217517325030166481762007538317661778637238168942995924668367744047528812649539246521252729236994284534333586086548199616811959283518634584771864196999731888847530521198780282898841441221999783673359199868449371119170629718625098678101195739410142187207765435392800579918648142286174907385124162349199230014082947871461566593737791263035770848560966788806852881066040139338397708880701204777900190496036124802315389654280129862411467981470879234105192756221531740386011955964607062851403617982517281807613645886425285470418287469269537385407244878375757953143292008711081473588007330325662256083058168194575584485390781734332052716260885288554591169052288503916107453239749570655304531472331967348911639007467214660398013313365739049893398292181500937333820993745736983573870594593507932455992754677937528167856617084513369779582324211914195741646904168164112641387683343850881532403805304838630427167606992855968700869481316507682973619108987378961138986098655027146645540696083944852469660232537959634971236880011351153277652750561550499274327488170980204238348363069969394660474482357928570791072413462823106051427356479099483323725279126719307336382843302981612113222585784419126521252175222646756728053682950367470237384027788938598286400393474462591287647205774456243626096472678142971879616941239130453601318597781184642659181422604065184317833842602579783373523396400591719172293159307401548802628095552845040497058939646691163478234871792873624460727040594349668306670581438264052104645020277861611555665226933524341578450599656250594156417297279934382323667629916452978903988617688773849269496166712461746419102145792989833361504155276229311971174146698800636882359786728115225105229878678266694365191615907826077967002704252422722003644437917610373651607411891563012945160075323200799052621579719102565753578574084641896893010075340915667318280322846285648817156297370327310032312935011839717144768986981230925384068182877084669870832645135163211459667059244340603001772119382241233964203531915173769142666329159015657786459141786263658579830819113213793985712666915586204490957291881089602812577299220468372591190740749448067016840968793809328780543037506217558790888571617382377189540857474855077658683934316305786903436905521412425917243153211252426914958544649984264011552569129431280234380725689047050643958968368711114232224190991908978955937006480759280722870206267012207662243589331142498729946853495411395178794580752761385030600032041836656598584239225311927246884535084196150102029226388852431576303836476090026438664390762819180304608352293765202612882221429070854330763894614634508981001680351104350437168967969146708877500320757523905947265231565392061528520576399506850994877219286098812034007391481126672775391687444338252997717202359683430274326197643575427082138785180915636669140742418160021492136749489126294938175765076901553288464243760598305103097952411642229226141854986746591436711222707739003193775611036388986560332676796513982467764621402863064213343635688251595772637198533314269099338031314567667492724831117726225781966691505083269580669059466935843811948028460565978370126056410607861053970145550430061073769999318885756559464886835750004060900394446388502858759213683472057218252962986005029544514730747445570670344898552149366268416432326684561292053436578376058346642558748583733589241813379479403575021589847895031958131704203094685478018932912416424835940965244214316166435152066915801800107108822026937798006245968396720390235093046010954760072615909354693846612118455078040628354235568052557773114816338620432615023054066486205778995906542747364632873114646569634641790982123348851717960764990927744643841993114437696760607829788987882369230380796773285777708309370984736123249187705461206172093955176972110808772139804026159395074939409502178076026190976938591560835512644346350910775511278319046438903748671007110357062976316088986964093518212696468058606937547852169453159443769688769380620190474343709879792516822370476413331689689756664160368792810939735218427830478283078748211953266237082385244840009685456214350738622647625726498692490669929154691569038078904396869374779102848575344874973809133780103588687880703287518811616582486087337387057325860471397331533850810674243230586243034275851090245578912824794001995576382380702806245608516392496329589727914716519425322129119604098748411289248596212458407037280498997282149098376072289341681426982948233494350809215700168504394738108429538613069617019808226198833120017370189933887673968440106562270408047747510392298849493891232283554069801055078241289554912847974286605332032756853412301498536036424645748361012053519302302759225046790469903598426295715732815455176980954026935155201413583136215269602613085532080583069586685742819146979279068782316633032455812251640501343284148486020002017988044892476983953359204160752880195612901393858450677024295817009285053056141640321263893520911888711286674151329568546428283680640916113645846494122751156795523544643666447885317249215722543831292913139958397881558295748989216780225290735125008837305364355073254524846340379544617995699281846155797443639842090316787602107028722670489511481781052128955796543703601054321950906466118165742913426142952734852098113332485062419072266668895485360610877567103876885357385328792592385086548362489680433852689727332002031291554481143394299816631120175694851282559934045015975264860881583172507123572080270742367232358504547796620656750636320412082134572550830061725224359751112226416000171087182602042182565846934391030353197789220011347511699846003442966799471623260307658438188992362690360731009089178025036212365926977490282236581686234576956134053521672909690606217524511745362602275366406512407582577093374368473280640680774782413355965345645410414678196111297781335604422956840681136534238634908757234402610016794136307386292995528003458310206525737878876647983753233803334376408690822390676620944277468668038987127723961007613274913752969309234829989540389754726478622381346845614504390759182077882732853196566240834693607718245714289890449707599142340357554201090986285643878391355829925727717875178281896135340709486027054858111182100582942218998322989803619734484739347482345571390215959382481751033805619528572215180802123342121863565432002198880570924185884853976252950399139988359605042384399293218898756871132631807280013176773713447183007163051873810410018049853446171948491269613194842950936235138536171756131307652982768039412891640259253545931744780214759171152721764975800789173316115033028034436913665921065105357081065279467691808554598614097571121786473571303217614533820715953360253024503059012026460136013801999974516981850277566498274672504868860554920852110789864238706733130881695676611973008146494977360742527290372571787825532609783568599050313855927289230376254841665764701610973566455777471961813352761461190172031595025627553873613522009869062548921358371010821936522095215235391969894787969159424150314793009366812017036811082010510799952477514373438871829253654407794211662205003641212949195804986295368154543654464308818479118200746455172293173820109638132795889683455745753905179495731704580731866500381057236690368983948162810963610834977828492813084594419775356661760317073808945617697327234553672521629207428842155970303440369162348229687717449311905910937914802852806073812476640359581195696035878039886301644197716453544397645418570333128037840436922675388316049382633530837162464969746131737436523490910669120868429452013368218292324205542607847651383124840325136339130141800460359538095891340623922977302115586235342228094731618480910321090316356166658066738268146231944255413738970487675008591902728323839287304252274661448835516551160720452787260911726068525281917693356125475813266340760826066832805955783977927583374597993587847236897115853783033499334753421414772060931743649022648474445320996354984430784343078939481204231913937800977976268014236272677765361434863449348351473682699632282870072201138147969062456089315748090615548754387178652148355174068514152405620587319342467385884462168823145708537563233875025675520112698494101690461455728948571471321381913341944936474518698423645910641521445570096950818747090795301084525970416035375166488895941978967429714342921430021775183693158239929522887366880049543717625653889638995585645290948105681424081841032789634446934848798024284962981706894399297623647050914042555441812925941142679293609588800057991972297560182918827983425880144760245934937655618870016739202357040361327694136347918863572369201682150871462571748101297837823354899346873322094071907345221392892807721539755246458997986938384891927534424034543250992479126616907951147724002141271892348935208055346658846845228967430721277810978968868784818965686032293221620186032026805344807758327165426961340426414792259570885354404316294632784755489497394940296132052518034148556494284040168491674220007517044738273578890695307965395135226346383337949056018941643799681750769510249281289029790939045395059717364374028298974070129973768510535628232007154522710709267791374030645243891697888835514656531017551797004751041886325252237280488288831463502779097275274982690171342117593078868889211515406679753099517528972686393315865319051215123181309908927001743690979882718043932790252050378460686671147214702305992008967251506190269920844679255091509206409767274657270482565584476900830669992922661878638648271087034312525450924306613149214622867447799427655308007045644847257990324258305749481295967956788237921440004900054224805356582040813796198483235292960191474637356682125957518199603663650015553228413712552203668720429495805273040875844234312120244830122462149377526462845769512209186421769044260523209372222906947714229876320697021726683424670448916178617425497392268703471997986730718150438818237244720891341240939825758019182513836441933725806814937903401457634583820442079690111795325709628870910952825596765894627253721217235135841963613144443630310540873164414710173204081582133080500235691562277085137977537242927367289902198539195846610326374460396673072074062377006990398989906182376357179712092590258131330988759821105687685323754585992417188724433551574778978962784822649478204441743497538949510467924795410885068919119433998300036406114343212851849591353174514531484407583937328447245230430861249886847695576165663795983998965559216899016797486148698818867957365357510771982672059279472390870679798294047749260967958447828069378751390809521935871118774253561055086109212083807986406171829930947206035023953847860279006147912656174725877572642117099168738307829755852873311432949323292463166165616876884623899179587734237256205367838588792671297237297362788166558030162496304324359841386872535001185927389843226084329054149927906076887245506491587917740990034506325240996514139127375703289970516067336736375013291510353980644276207573030005042027421084418445355517494474939901971229890373271867916679619171790707161798752813294051653056343557917766838149679690596399960832006853446377750195676534834705549667091353146695198372785532748273037946213768041383147010427097659672335297754728469243399669341844421870545734181412772397031662219565558952528279499840887683283896397455154514667818020015569157553757758545956286775887071334489532626359381572474740752735716904071262599847506703390562969138866878431463198648447703147240367625213726491900746221352412659849301267448817245208568810263651496729165572830265295943188739857196738441277502904154404763932730844899637097619810646888136320678230206795235516605677076521860476730049395379896135802761124341146225662208293101014056318061550182031924251548125194889296774894876331891063722769879210093580889298082623388732151507991125130273648835614940179585409029935791030514582573154158641424707991049743105915151947762571673896740424479462665000865754390628758613988281983509135123328700789707359238666174399154155057389922329928304300508838663798362702730280468768542067094495086688739288546076226958041840400755393668261491583957142837106452769623953864106818531139593285802275932269506513330663339127527938597218156227888875843990373160959862249051668164179004884077472349686587502239800958558191938427698089591980548686601753142368923406298109210168766530130510153719516177213794923712236335049687102044364115961599785564643622245528499555884539932202015406279910763471150994801222019171676464491280972496973115611251824536244229025175361843184985031860795293827583186112308439977585618204211573881805610811580621715177299343343315796600559484409540085998319340782312628535783337676432645545276418732187292398801914784962487164165858526328709290055269870065531609305192486539608503356552194456977744867140321731850554445635267034349213792201436174933121285877638344854648694843779147860431396005988662754674230660230707029561461033187428277983183391669292103195030575359132288138584213593867996992452615967727511000308295602595718234582111834520903596868978981572000169186012141025635652661672091220893665801510957097299328860922502821700090095177997546119000125198925587071081110526672654722545443685908683362601668214776338513587199268294471277382338622935835311357742206948141860044128668573756790451804501772135314875696361864339359884903449565114322429185102643873762760726074405960536399052159650302764403157190626317766027661042881335337272788403851761695809270315461024658219745204279852571056370858653703330235585298358828897329162577981885482914824498403490357964176117651817584075398898517366900184576609952477558660873863154954778844277228721718846859098462643054143455092420304187811864670008179890279928704114899791521564156649805331381763634317083450261935418016140807489272239143637137598613356823875637769179100989886859144577370931220018841870250041173788919449757306422950032356572989440652752109085603528821566798333357679880461906362383262514346176194026781979605650202000370012181633194604869820799804097428457773996208742652505006347311626547541929387951823866718786667288298757374401543953228439089066179873086715676697747113411752227040599120913945488296462766604882292288271286330565044476166116549656528252090801441383671612159902657290171483219958824784982527861376931264953763642624060346589644561767989566614571790030540452962626097971866695315311191255968622921560648892302129972572011597773721167203660671533269744661947527894856090441351263832953885517511672936407014609860890836445184900213027021420905291019522778295436966788384230914013722952192581795227969111197605931226908794786401160008635864110196710225219083323504990374251333719304497775884241706459564928147177372577260333915969798051206001526890392158687474099994168871599328338641947745589105684184366902386410524725718390286685512617069869675976870771248852437431404283046021206585879380169147756270053229429578960191248706053626335986428757542573996195019449031197873898026927656004406030059958053527311296665275624118979897592577109683635859326972159256873296470140748284586640087557916366067886383218129686427343624119528793402708372953691491455685296590995564358949070103836636022102597502171605228694857044328552969226108838474149929772844616218456311254002339476211079101771185257306213996005220412724236524532674110109040502659039838103171737568546189551767162237299962153653501007530629165645427222957620392141635468069910650524353049555075326026487470474062514955653568451360113374715097001888880590817344009509607694969763148268233661445220303520858476835399347736501484679715543612283884031723493277784441195263410533176276110952525856496427127129155925633746530435301600183737284285169674227031489997643114567043324202825761146871574583006831417734808374015092179661862208749991165015556266781526534958176097972942611614333478535162361221797661661952103636046576762749167324784228461016753627312573580490769605705582866260073890223177478181983200452609345526910487939517726916171954037061227744599326563159863706495621669177852710897598127690975056624003354243848175066562474330757661414365207597353810835984791767973145751882202310926296776569262415413525197209544993061206218275437885781735775585763636292797349675568237886747686010680341224701303618174946385261927990982362874487490737233812805499697475618720333179879877700989788778331932940722273105008832202821050359125660398681577496477071685753880513415755269929725920388029430146646746828809796460140485764156768624721934277121322824534858986746413504795747361746640092025655611982264321153864030877814911861139150458570349664590366113140227932159246330128583604483978774919974540475880690724990621582258057636494984610723489769502533124352565912374489457325546077392152982753596235994689758439135346564223375573854560277112677198949367288269453576769589443255089376940272529860084943050329444610139369459614037497580751453091667747670567623090838753053476206175962290684229136465825496698736005915499547991155007424481707951588193525098907542783564122314897754013927597623012023814137462546741635480803821438059318528414972299914789982433010958251581369903054415516003512042577324507795405405433039327487897647675797807412572307042501879823971667465027158253760499587706185880570051814957351314566854462864490304436954178032566299506561211961709139841834952866653450561846399845056963751072649889805429254105610025665748478371473255661055423493717311539762263983397352954410033603088233835653474453940112479598990273817504287628690184480353016153106512033423501283923463796167962496958282642920020285131977200713954853701065386213023524004515234038498598536246763111542152955301553198710703991988736410879607133383051208349899617200602585372428529364619467026681085709237544684572074793318857552141896738510625818419141965449794837733482374634955573308625212672346835649172666721488563882717624449290264572378450503491164382742636007299311719808084808425185503435576251052415707162789741803131706973554431466628252341667744839082037082182637562261314244024611075759063303991419929216209711502790773762126320084657025272995822243008235193588193985985699961805866642492378827751551877150826918518165456279746135319020665592156250923227694147206690035456264739227839536467350826830327581251688069700460082931134343266976581934117807141201664952972681710277843656436476107480182241761168386305039080152927412817524609741962105946759362473913633545593745064153676745356584852897255505652183448692714050788092344639357622212221631721202612158464543607405983074797704188542859051166790172953775111105125426783998938067431314560668926136027172416903126974589636185214105043457095686854405331481433804167318410406997411743543948003766836539631019477467928903285013739814771614048453972580702275046162713715719499740915367566071433422675343489505576338799240752937729815852759306969945747893767546190309994179662711908382743199189969279879726053583999015219751046131900394559645019871962172578253090131745245363193363844306474501884980867849934792216375625999926514543172934801355670191023163328995134012767319353558045423406227915436763793197659970484806063977340903278290463526307717023325795571577953153947424485971794792417509278452376622546699289946752643501930948794916159332691596345573247911655790287849538024376192609601414306802646646413653421521541868456102994962896240970521425577563219225337112114050790069137977031256878773661106169457795485422989487699733575084480220945967855686178269537469562061158568270232654680285663528357453415108026842703904864559316782359845651632286395551122784087423780054569335273098347953014069382031247051672454243413173461175036672359306155395690076069850310203821785192977640866134966989445622740004627226819676579890583375237956497968155120206235280911872271166507474249992957482437052914164205028367253892196075278644013976762556665669559109503277123971394732243251239148730743332756385546447242047153366557149216528873204472890394520012475153680632664878539921016522363925109530635447919000794564292403670893719767064472407771416490351057043636266006985735140953211523960289189740996032455430271019028278307199943785633949843954237206747166522352560323809427925605020464920774126358283330130764695740380349101241644538632829630674597188786908902299458949863243550793107874081812480745798843235520189007642213149062125336209606027636513692976492403024759660112779748810830857633181239950809117505880138306680199649880415003289925971129654830378453700325689346935408904153869330790615095575334385714449570096232692175568471370920215873767719742969218470391500871514038131426982719328064207124742796972193896719871885874118443009348970172227452591892368460249547844574814485520830880177984265046502522893814727731422285606762141021273453276063288480506833555223133643923687915523054006573950122701018785878667107262138510665851677916434041252323234869001076434837161836481824175079545600152118470955504304588737199633495690843221568642356549837259911067477320632879208337122593352274193160254946471485907173665020978393936670278752771479253994755844087757151708245720040153818717105123667448829124502836481681052361936794664077003812981844114071725407905757990049449882372936318171540074511753517438784530547336020113869360365383809955332187227620758662026028190089810693324434429304536076133358419886719376738547752543106664853931668784516572179424879629022747888755499829512521672974869984245541401291904929251030638438140855079254372241933874540948114162804498622012469913561741091245840132351334848982274784398285007919515885877304729735056933134424287422515219585427837483086729094318733851328335042251303254139667136639273683434851585887937565111964610003527310495651377034462902210026059738123860238442410550741547824983714941788647198581882317684757416253943757219068758085099235318893142430563235774332102601437693408423741937585289529837890560778078542532168763231629648192775926893773453676887122187564119011188211716672052538317510824404258788881167590172196378556113155340061147812648168438628672320261140670059588530048702992110093088693662031133457789522143260932647794942127312042023022907976903691523716297268909747981469552424484658802788416942424409450429786190287872090596444759774308737184900549050203017887021888690365113626875267114256679292676816384387326668047883457498843251475155769234360823355888974604193510639897875503334453380380723014404393788050752238699342189250228698459570025856795138863390552466035657375610487385400151373426464017214600335971347010097325594818515805176271046841545248993773536543315386270496299915530166992369409126984011947846219685267583891876089738925533889019473357469546238064432482839201337987539190225897175030176834179498441679097874552345236364275771395982905673201369008902318468216283076602297228985529429177572771394232841659114643113213612224815205302037549619299411883953342000520920306139364879185670549135883846746289363802988917656837250795933170698022444045809334684061699406457737594722784037971605462331286373186000177121362975825395464028781834643289706888177308331214792728966617242379534022588619410695254823755835105565148684241265998416020956607352479661532698579680066414259647262040491440239124382578169316991552470979838348912407919319342620769271817879130459627768772304616336833919844309521095127105539095939678260824237250445811089674402686631865432565003488054449218733259473246726981790600575993059485351026938714044744000867416576693272896660562210219516563798262666674819939698369686426999416210485243070178836839188979181756334781782434065366075935015508814987187673702153076300635491198947190798306298268153890856829898494383796427437313414029075493240239479057827984847896801218398555161035443572932433287381783967260012960857767951355716328540072990097472295716825306823457886320363768808580499726716198950482458033504741773466621121649791862926544101585331058007504331658083372596577663941169013935485429763756627960059985215164303407443408895435064134891440712299627361055779897016408235518542616513091818886722701391187489625607203157859608443915196073397369320833051971860710263375186524212081950948140666575665257220088995865959758109110519220035817788130346091297079035962698426440581835464981025897686807186362917956186718462265280238394107341215225855818236890855181132989848249826429950906889770157610576092558954756814132366207724873664805577856903201225991037971296968140109007234370618813907268287525115276650441645335902060483653705534704690255821930099268972557491945407190408869413996021187768740749764797964706945256090402468131789572489229911526069369496294810011184891344620751578219404601556401445405037851195584999278933870542077919401326200372832392699521468935536186376838363736400027961705318888334868979950007714780284409974602925652562754675812229709931461459299588167219144604403814030461895487478536777795598535269111760831132744010213679952612295609640082798003288750905730642780717551853134004575627180316556589649585856729204374639356703812594061816722785117678117900532859527243066649945416415913568703183151598732211101595530062564770025691218326241477549252210056040713887608058282267588517141560002783065294090182350701811179885468626149264984865539212089841887639603878967181889148468462056277648613454610060679925007210300894531680192780775437003216808313367777745441943679879447873275501405698644664549573442210009468918891004223297877078728057124364824597585337889862356375927648919278649345601728906416529750512028761081085341995918118243400422400822244932804760957957231293006373571053373822888601369566100616451897958679596325223336511181890763357706847354407347361365367820242643790425169983153630916772077098205546333990214661345552639272401390330442875081483472959277331810626623372126398894404937544260566367566265569731559551055210930788115267863929245764790604519780317616418214877768400427539997703494660473233940307959327543327751219507875703996180980094168398476728322807766869560870706820857242122902177138465140660599474932271602362313961384793697262543262401036737348080201530622171857324870469975185852567325459569427910192836192850669297280873806429657133401413938737212965533722868338252752529429109031746648623956859861687886109319340869967100901477325336970923105736259240652327269946003831096159685829756038545969897101259634534384868865166328265894034774230210495026255464444348007497443392405992108734065527336069272032096198339628042435410721578962424604820091017530409602869461578828133447075541866277508050884894753411554862616924884982134009480688925748371870357636419878798668606035208956693467477144774702207307529762401372887277986373671540190040722000762378648289773848430280164443725852001165597294238181865144348209602334882591716766277958739559085395103643852476891581071372794776931247528082531449829903124320027713640205624604122695411283586034167386872483752981403016492353585692741104781386863341712726509495277096835921651159575781554164161892074235752880955768117511749134424990801540165126777286186581514135252366857961640302762508143293979902841604710889131366560341058175076950890273158856160958691043065813225577070873568793506449051555110681236869577398549673099599937313828005873577592008264476234334536134147947728595876134377754946344076882220221794939907076731793122151571002621083741667157154116816938122656038207258750104597410501615201810357486637090749234075949857714694599003537241427509615165991289667726640786449699741227952347007229467683928560012004998915752394366586204855550447124686355086632644095987388328398279862807187211068187053790828215204308083184095004175960802456602755399048320818653929022864882641284007707599921201333698216905775897191638918433365166713242581303320105221412533965951744903830068115787993681975261912703765653076617752349575155966547946379608258946144198542137122074526629054995228585468606417234550351146094711836941504138492762972559505241839366256445463697445323683161709000949830368391910447878666656795108828432103037964141218481716044570180603450397271752729106639401820308472501923395483150142892311536873419654577959247036632742175489705126141004149857548548814872598244192457300568735497011949472876117498257354742478717334119426300954620635716856196975895801419729137722798154639431446314280659457006062140781173581147962335304270092979745268275992104932726481003079984361862512160660484496769379309418759820651710029674043246643652618993812747769619920431088645117846083656024064083119248208056909892721544595648890565401303804605435915746324308032556191903510989052795647149360392238539169723443894206743810740154288745795579066716606838718179712062597577870621441820656599247713232509313257376985775949410704005134056927798246696336387730676503845476705952732805725672792513438399501526414535655276044443079512369533679761511445344922272884424281229541967369564133411546130952486482076432340852746310650250303988348497449852700130325714344948167156315838052769637734088405764097268682065421535067802496764427446417994400199528201581894706796133328338303942235038770336775271918356814512857780468991219286740530453115721050934100883704806217977461571224657018351161259678779050217073561882250818034132908245161419440377710795465971640963408435983051411529635734318916214250281269108708028857332110608048963655948654110906605869808281406760962286170133770666907163306808569238808264185925883346801593977262733399471056747426321459237441369204470926643335920177312151653258026783657041853688786087386567542104516239495734629258187376206663941407099755347282101224840927600789406374363003308750210583336070365743325935866304263165729385769627699826412461918409712086080664512632523350143215337333287579442280848359447200277725456646561731752850996671810440567431970894800021640822531970923829735086841277329158512477689456034791135156759535080314998176802832585194310729167972091171178928089215457633505480648413338114761628980511553609856810585620303595999564141679432278083716444531105361158055658793159867987978550027065378721338502331302353709805919640543762020845535841112352605966291318712231183021409197280585616411920695776510025905541002059960375627146736776782015438944687091692090105677757773119499469359869886635357083472767364104465520532733646391751923158407893092518361536047744646572259464249051809779389004819960638834732763445982227252595690550016009537538017418161506968090830430167310269562489325609635726771027972385548054875168759652142948923215273143655362219104852759385573790662566407317376687720616439143304211060870463466356137530420301719677221434083995860105448079403426387265996611196672400445597135584955470995949322696370930266902433062573348425320005675647851840722675787056217298057502529366301392548767784044919994685188426844691580062711272284590756093609519384610110801899522221184705266702309804758682824753559415121649068643028988042647065026684783348856887097374294312374608862258525292705495296619551019828317201258256867065535902694715067476054318092646112659264995614386759106448952628563765042041626121546178364509868968370350389859007183044979476104383196467244980996081496267961461558401640231012606432416925584826984237446929133232098846784320993716318012007608470618544717484352137346534270230560897030865402546736991597264531184850864705611129970770445756923861561054638342263371430557169072462327536552351100885371876042102094975759630682957669232540066253173878829793497854846890869953851243968794358356704958675220320451732537276722676587286266311172401754183534059301120850333585505223905173042672181549496519676360764543420615694390487729943481276191555972044099966285469098018073278106129897556084048037293311159779566312740901113642510471682063406766731592510927871301866018234722537107362240374462893121379352713190196417375242933397119555439896660947926988033173512467633297595290490222778507284437351826770368653449497296848640032977804535900829402728987248216048072033914660034368714613210578002111162154628608105339450598406262913459457977349905907008339705700182865988236683303443847110700190120179720795014676581290912422648603885854604511723007650586027470519050392808507793720717391065899311177653923009430471246003479220662811587998465592976363763353605715494123071881960391093190550678577108888387281811822932773408107799849232325146374520733233626677290136926735407233766341350688331270743595810497697738695139512756873754462395202474348005031773202823293198378733454610496813233352111360018062400513350726598162114114573799221957671981377911914873761090965540959527750214864394971991778897387408658444330343083507164567826791784497171153494013467038244598966040377744080111386714403553253123714197668188045753168659982016924928810399134009939448484460743689668863936376635420543330628609170269123047306222174513855545360954765559233150024861754544596714164087306352997556206018055856170156822371358260234372930133955622849884669425763352650844419654813053982114272590919794131539499980857635696599328160996249471912663838918963086200143920395324474016425179514062907647836778734967859574064544862018678206171313893163363912903014880937959136529377156816811518660974998330329393069842443819642987975914032766732912141665717572384977021698227971042361504677210988525578356447486411200277369648565160046782874120260886006095465414797910335199761036725179675579961177943426356212169957090978509653707540630216599398154993580224260201136959727312281142037357098839956296604983591374833527087073581524551232843431242446956240414400569649943678742598284263175587191148161670401964327749296906439809355468859253860983322558524656103260707853845078549639645882181658974498380455739399628532764372094528253734743176639163477138722903474135919680713252396990175578070012736208259792512088894721123907072947607493502480379473963616067611663414518697377784047642766908435964599009353458878965191247140308681407357366877109068947671432258179047039947326478173733114951518490488114044902300933926480890608284362424277299840451396509860051264181284742372410426266150770916621938909886755601127116883459991114790578368839008322464356319806017694419029900690032786188802886720405406522781255130158182304288126000172882375426263024553356469621722402438772125672124447492683651941281412308855420929574274124109970745869440871019085393028187963085396852637077072966043053695107584240598095610728940298986719864635734990527657839429810519287914694869985858209307816561085789799565260029136828114553384681269900558541458325515870240115057095301716184813168305680488990087591242970570440528940995912666551036212073881028597005476261916377288711354279502083578268116671999554236508110462428780090031047836351332857704797734737192433149027316650008069554973486900910794454516676885550674113498874895492909374974939167613737406911628287872272703350546340720896248319054692077060358644558139869280850662299002998316635045003324278912996898405825402541447294005641505915467728831001949836010030082502201130742265431219367655244558209838785340264997160852729706849685808742678838444269246488466130386570871702577147674570696143433229134263140258620527883024488946705034643456290781552536748862250099645477400754738112205094782755306175488886684916923348854180215340020400887429491426190126983471043608139777510901582921077434277517485877807196390614225112287794095093736274346823081547440471628725256354348850213419503039159081731558148862815927335016278105575643585388702880802130788119748736486341639900161931490900768761910389386745215495603008890845468672963793065417005657083695169713343517298976279602805443471289610378741120846459034751782630304952414013882104352951599158407040236442102897125476678998758300363557127183770530262399062389134352951134667991831264860979328414000483567171714698343436498979178813969231535033981033480853464153853713032115027334527798788032629083803537703611267735690452946328162003269538694067934872303739778327421797988287437299975721742698074059508509971934815412374425089756142277201787553872230686678174692799513313123906451300892418174523293394760836419929010980082927535597082629308124629416339891070210050545943352172895899651721821751461788985358949970992343917498519264107106571590888021456301605838207131013539829447640341185537246268483750438904967316405881458220705073165456567830726392585849872887306920188098363423497924002284728086478964051101452949146073255837868038015869617742192363139304769907677248851377932254683828617064210829302199215564248173874768940915949225818961237157312426323820028889329584941483718212825794078791852892031668720778269689724641283556773082102193569781558663715950307253783730913184440792887848079291843073929745713548824088209875587008089052953272703744180339118305710086715914036622275643973674139468714385114261978007517758186557978229552969840764711383690463420359580758843651109403569333754108978959802156509487092894925575968183758880702114578587933727340168320035728514614541805819930762181269490476342608151260307802987402131688409512895487263880903121085170786826420566970813257932168343642786015963321684723248767849230247209935806986654761965000243145815626357804998886288090399719187947820683564028004136329201988839612550074606845129891869801016539626268274878366929844077918211127661335804893844718914453742473143338375645477117579998978858284104045706475041806225247652111022837803125507718886094538592973246769237945780106203615619499739258412958017414720391795899618679941347915638732152163674951220075014786506000338843644146322725129607558710826174014059881624607903449901840408840284410405413737199833076022876552409673080402422190918296700601131811028817165234620870901299561330685069021075218490872422247468806294500237277064765704209681851494433365400422119409019320985584059254334307416186379236960335204148885293437356060933724273863963824348556346110142933436323194412867963472413667260288354884009723034243901214238035318719512394554153409803463489116132655783274293389828577313796793205070535916428797619883214359607004124480812510751235339388343471563838798947246665005041538242487256315673980900785442853166997454509962963850449987563331959735387489035988448641403882050768067461851004850201901989257181432124281426444443957351633912288711329957086782205431847549429706924497842467777237017517099118781624645828919066237872200606252657192170296625260725599658649751698235592011987873693709131353955027063805128456428337236761980363099820989998795518786608342334468377059699666877705997185039240002414384054649895454786201246176704939729861613656027602403121493058671051646822677810450425066019737192653815418927979671866430731732648267530613896991745296140644692655517150705853475151877817785869700328475253789091006618063390072111757809733511264081939661442084690856526261981589372144919147415903589867149146886428554265062300790403237661037509137711883253746087972300315052829337645770729473928515191562509993895440366663345811443712704581573080768589899400300266621842952105666511444165616672781269877780397205020064095655005258186919848932217929253820460090533029968137447970293729731271198337630387760179412537796947956548739678695924092804919229487145680599967964569356617723903550359300647694444987144925174748580150823018558763241103693095328208730718114508243505848381115608101984309017726902466225506551057543317037899333056861470228029150182536624761890245920598014142521562861300641214632925995955960200918622602888138706210490073293490657638350469955870151648905552502666839243673064294746339568230020679255162210534866739099868110719326965385304899142021934952862949525511355613670534356651702359350211946143076722968521882861636346033160335994808212630709745128110767250643624631163651192616493943597465896293768128188940138310012474601182074657985049294799520257478339688500082614260889469511697681645182434847029447754484703319503012020347980217239001777038088185443626936183715991975837412982475644274807291443284133723200528308264858368668010853634011813785970984444763013005862434976610133138207886055876411157811510574423095413085924439919779529688289997225237199012883403208729239203644038887279140847781650539347259168541586667511558267819597680679222639966793193940989267163059608076642568440897532204963662912154873714461847252111093233256849129909091381915868775605819541101055488917976359840328181115254566526305668283840920986359002630494283553211703425251571077892679353758494639655273571596907061937019874150457164292095502926489552416188143883289935080991464836228004881969392199365226846295238328073970474332441634081260672157570732810218155493057634933444552450388614210311783682171544271707473674440890720137094350682246277649709377117223352589979865573136400704735376457303383482968091499056432704942363140748798861500883083070333104706129184074454685356070263386802687176427610893216670224086160590716095431970497556352315410579012843139962117925067623171475577509431828821075053304184596437018834876899359368349881989692626173898720391718790159807829581650948612824434472236275295440875603065832085314361193755337858468782780599801293448654356862073958507586583429082230071512820668359207827674487988303789724994758082286121420224114429175564525777437563134935759589709246687284031946064961997247280588579348691953275803040623914713664662692737999356094897736309190294842232648300800105401655972348352808813681068609679820924159416004765476327010630812971714482789995425214836168362446454754409530631768954546159650610223961729009951675531821792059613128980003601631610885026546708381763427934880836569918125790867896061132548160128594333085942398823920461491234244320439035900748363125973715924785365784396961301451519275844075100316404504780804067799808920555409895804574789437167650028743859352563103713237017563680475564846191761750912002020841491790389826069977677385776896023040356933623157306669544437789590710922921948089744410647938277899440960692432077481292655143722164636335109294025053216949927929105736249707348500917818008187482043577005091136305992574653100196093375884123499264862023508106685863418683243563861171098800941144993447097774922924152585080312244731963293005936510524298114246818609090280650682244703952193317742852325792046723291431885151356700117581601446380571498799597618200231141763221714118148921413679172861609752812332720104676599040416462602751163960486301148033011646379145684587371883575985949943747350076039604244182158793171588065649698737086078076529975261616583878165932234703679527465509435593745949688637139966356870355223772221122750931041837196307713769730398178915958275034662922929906968993265567622555708932744504472202330829740646959504405624442196859284366118903555566523454653793599423865783964651327195652467415115468107649534322887167834833555760961660429494651267542570519149927013119928030348001809968900601024351048505403883309801050493282147810964996638699877280362540056752400918332933881540509564752628847896626108001464833657550999696838343230592426191463463598436665044140023291131284806376393431296372491072397376333984756515852777548442012504911772284660124627513563264596066751773267135046644335299867494535658500497540337912348282785533257011331055582416081378994298969436221281014951478059574858268976855149618630331702398948474521185520139051316022815222655924094982680787513380250981501910218885804543567008174297659056049265812841670906796636915175342404003355554154065965902481287768891292832175914374872333090554745951002225064458630071231473245869512605370300656626085336343049684839689980340446736441306963935407761635864183383299319382526753928945720192185092060247263622402668941891068216434864375280001939138961912562146293429416576712382221823537359472040371517080212896926702348124647007144239803105809352783790749102576464659435989734660301600420026538446417148532135153220779790181574446808588031756140172137451939510764624948905086977438904880277439742687164812177104757172776819222349599211569180965892814212689562905532857314366708174429956355177586460582839788420396002059801122226402504012650914794810348783391978343094999173310167111630000879870164528933826857416966920688668875539364356080920730357856501498624458768361864422620952837167088502818303947405990098958799278559301893924361018277151713101124865530474370064288330806011633950854121845147689367143078515727819158878400889198547056364648799345090949191409212957529706239527872722861252148861179005896950867946876061252166872537277309056545445737083517575918018594941633267855335426529489867678910388173370878981960710789941119535470418134535596545824445383003598835041254565009995225845586006122598742527354614479819804371096423604979529020297346111137771911374892868122560300994691318018262252809889501213799471524921664247540449805839999296506983168357435027252064007997334485747889602955966237098077880971214324031451098616375783717482902636274669797590906882308966638209557851806165434548818107197879859363472958328320905528310264710240578703921057127408161190457088520365362766621179275337713780617245097214748381590923055115077892910875489637254776467537724288540530953206448267149856100312581530889419067643989001761776767545780719428655453787761246268448595062800970134827857292774225285674141268579334109600975674542846057189079695806609337659927521528870978389508922063565994178264032212897386036656175961818497567150860503267956117373736828056645980596336866569160482082838927492214414206614803158654242248251287284280861528451458799184058597695496096845392390428527330278831130046852572192609166076396662410416367575776283829246228114718373400523159817364189050176689087109436266459049176924520443787860151087680276492379384617478786904740030267556869870726235303907131149873570746918359885031458329727401824256300003722080807950065305770216557056277211828300824661582452958522822156706436371723403420553946286472615984600783724862513112722596375437601224866292487040112346576170300778007963413286444877083922257130411837458987879506485096278467929226611921580275472084654196730994025459027052192418787981274159335191215874004213830405912098615194346969959734198361676183952890209025512922473134685511407047371015762065674505894566009545373090131150762520920854569793013940559470797286356657202540377558318603785625180412550540534255766161934882899407024853825823551620262366026292980753615055044616298712036149757375246622944036557475562426770000609625694331783663871425355695979769044704057517869563899590391294958759808878164729432920755073094742450356963711463444501895648074226212040482314717052731596854277196042358672933478512930147771160871516220794427733320251553250183047024564588816423110990437751625868517189546025066757645956744306466468442530301978173598613769818179352258726776975581109487462369147646135995698745180746482330777291596158215556696168695276523501346296181895014498117344538892744356738827265726220403736255490139565396406326983493529779361545507759617625978676820224111328342779156939939369003986014775406898939316579476800325794493544482999196236957449748851950832710002458338030694820617007316463022723988554900184859727662135577737362754678332193235399177896371249881927700264915956884259461872096627800964884818226179167927574607060605076269114226526551879863060150652351707416602176633381712861093657991064908137153714907813106242781074392659777974795730828845631436014226852963593820927406462194986303627652302057146120971425282639873463357787528185047721170398320094954219196461961844052186977664047072561591511322777195039928942943343406853742284775020440330971098221777540763515200335152125644495094046383857289666064121320557622237452805860587554289101186637355155434742549181912469642364142256670591645129690684188035869118097743126003803005541452765335846136583584151572817407451587875152175192595021706797275826588127342305963964376069900749368061006234121347083580262655737026319535116723572244679764585000544282337396990630987737020895759879315898314289958021873485699762328521433020885945870413448938854879159353158390716732025653950860225129925082837490234760094867552275004342300559180515414082091408513679044058940996609745486721992332336715540018436140722439836024370133910870711996105972737278160615160670763679516001546577921530764695849662648161049184235237906735468288753977313240944470273235393045482170465545443494281383313349511714912175313572912197689409750139583016873778586084385320122758463726164763405440630296013002259839562959858985300373557821177326200186297634602532394458070152607727168009259895460573765409225328136448492711852206914662463218960665471135913521426491086766772410658307443697429375311466327897787302147292803424890742819185319462151287361554108104394043443027532143316620422975265813166444563549300489871476701025935816853599563030865198361002170159601517184929301066554084568135348488740201628672549486482829486227211171451755358818601896488601742831761022727561083755534708913918971208137964713918937562897485955078846803496777462159579116793575453513907338712414966453894342922227465889243291310153675406233044872130228680798310254597498164825777511270628052666973246027855624335749507931711225819718452219321813785938918414479017822606966734292011543687638534183938381125533822097618581587292821902476342856157937246732646409348943827038555179767872612353096363383614706495647945523784243702271996644333896940134931362474870161703667892526725865884475896495420456899791797677714206232261158046255670954422286285914471927376499062675205075007277483995099711069408406704626186049572725402665137475787756402063902485892091302322072919958905997752163724000243015754296561553454187439802644209946934116347364758859277115747862683328554265297910014547159835084924495909758343936630630588578627393709190827593648774142449337151515431848799714042023534687433865593958018883739707645885412215337590921733142254896273312253372640305330345998686150519379416518341823150668515906813180239850218277841654236929798170763663804477407616409224625149879794733412375777087730431846190493567056220527981823300575291953947047422441444454547446270215392081589201734329249468628066887127466220022092391954665609107492259898098450090326077790435412990362591261332573867655691774576768000747754202204763898491721101570655419368464263141881076249494130849432989200526047779315270000019661759404570863067207576722862814053675313895107361974136447156338807385386023246455458668119832789529029036795367550219925886977142537838496069030988335671144620395843760026367753608889711901519280284529493524378720578717687354002611475480031405450942531184285107370985765630988166324009615599944987737512307296868131045948045104463555334300159976493881599683552109001861301847604096917325017018952186731466408383856455083970046791666242861887683508471969520184784386480533628795126645779467381837948675843842654771731441324227077483987642705330179312212830143131603117182163691237038238507245416600913355161601170212883667823620972615215040034292493046959483068941398249538174643801780439994220132046042713226018470623127830235870671619353338891721180981472174228602023464887382139566487084735085771900732904785649394747250170276126970354903597698231558585023361143163283885399934772253500742745340157693556876791984644744044360826030403224328365091565860420314011626883341926253926905507107826073355375839413578741963625688766371933756079335255530714680587461402803337753929240834822766691672881303206703790639622356704494114629027397659806179661921096405117668600840595870240021032183357443690546610975605897881722664327518139368793826977076376665134160537811516026876453601208742620884679364751863662227595487084528585539456660505051079772382417643111411150301048954184780389496420409165601401089722890824860271787742525236643023465354103972362708780994057202645924911632495543885703920330481364406591578639557717139324965765358302921824393271734291556041842136498680687347538677851894610962696043464375355883510399392443536998504288190487375100088757633758340241902317971843551859441167947651137900207709392924066664458661826294602449992158439605397963739323987716137282975628865311099521142263455916641009644026158847662245491704356702133311264384734223605789240076563975558641361283238766645361893931796999306849607041301922138169644951814851146640758013798371155381307933196665674524898516099097141972778851460223371962149352542543315272527887242620962012875274001186593932323612740670128023018913703073301232838303501914398550814099084970062375630680961545577475464614301005707011005466347157077999329884049918211807038806264458137696832717359816245617033663284690103633020156274201883313365349174943306013106204716187965396031926296614223664088036323191968493577628055137358901649283090141618368753643237961913699611540910721471238350562396307567131432906370487959005924259365520922527829758497424302821791126541521225803565644696824535134755507054839533373806285812947901028747459182571877111867122798028255463622620100749692113204712319934938390631280911737379097714931562185089721276719083300259754663475931599242944261837020452220284798979721317237029451395166321992051375722495280819185697646790907130954588335711157836021493314859819011982190960262251693789033988479978298214649102491784028557123038389547463633208572027151814343093223821625050684202918668183207237119456425181520465857757901168170925305827463937674787626865025137851109314712904497397310136791571785346321223427980734673341956279267473161426103797815919390841359690245634301810626026516920208518015204645875599952109017953481538484985908270637467357442298382080597061602203675142847313898251099825562353930430774030856311242713326026193168928460322067426578592324607204241384757612659227288672958297798553750324223346954837668612661134057065960306754092890026946454015676832145146961501962753582952188391738901345807685421668798739332464558277318894261884728900217269495511452309359699783576462960907979418696388671079467739846216547738588972697194621686957333869385862098051709248579717529148319397228513665868889041157405898431860469688470523468390043375504075347034097451800131182944937895179812436893375705668750145070118589452747056933330047275694947120667231237317687532220080386766679483417913159760387417250812127167531720223594285988546493127389318725080149408222683431248931738270235121308448119647572821434218124831860950904490291071490652734240079860430134466235899509246043004187872766518653551605259617814967709244480043409834179489348090931703017678124606031758995455813388565870106227067990834865896220474371043006988456727057903455391228041111949275128915371378283449810051083009222359799657708093435322882752799220736933604335759885289256436603844212677162655090797767106785590361223376828505101504391442989887779518811561803949848412813134739817847870267880727301486314726056876585468231983996553074747744710915965623189278872815966941961767717596939087404105352814270899585720711380389486884015009679854576930078912820308356006251460112711003981700654322074007480878486204527388547048798098400952633242767305006167977969802566304978185100671212978308671388568922522644646107713135879470272273749426967016879349291488167483778598469506547426410772880180103739296975899487646023081858945022920535128229320178471831168236303526978374981739958982402665348083961761689267959945360464458234166554432260323803211272150665052891195872360595077262368048111029299097272716223444262803366599901863368518787805419670656592104354450971586323059218739982797390122409584332868200059891616345275135492547786772182964234030795515303988030500952915055465420450574997522870026506141534119170243935678172422344975072162093586703714204829597497517627205152276951889825796026598620706466841073979170280039181722199587767087779711043245311574705233485804637830990083412540717706559204281119266260272076843058117774011033186789273179114843609071447943053577898368037990952117786555666418019882257030600685831996272087593896971402115383175395647443974592756846017218052862619083642702028163738121465269319105619677111066057718791934192054058810259186701117078409808414983739530151866349548055077197306890242855209615896078314005304389004110695841066677179183818072047513300945142303810327639898393673071613056210100233607004807479359629715541424534887013348378731001390566213363070558771003336239992068948651396231967113939614644847225228440869357885071458240122443107766497504559048386919020303924833155720907863090803360824194474928633717843589119122590551450587662660616636754014659504015101776681755516497924000822710357347190748558555903302916007909398074968270561357728945241131820350448690975004418051117707339132039822871050063574943813081355323174715531039698304482886891612576274843961444431886723030193904722354605009214240438133640576153960331502185259147578176711565800083438096667523963726610523259674302032160631394849036590429809585714756763701266871760451224653269088536930981053959080069610269046817360807743321381933408269829642794133607258679709955053482996461363586254389884671392416340113545439825011297007649885393042617395281069729244010437184596388323587334772613212653923952122681726207702744168243989739758995138862324123493142770676597846599078738815014652571408941092242916767345178243097518963464530160046467850716581393142057200555984312470423018210976445822575673669227808565268796272809962851248098849727097077076089166749121274340708930037492250861486840205910028570884792201151148264774151144842655575882324103729444564179586971309824029351706789770744525766934092961157201587304575964186920242846024249470113484824702277119980781514307850330094176273462615051026974214346752407189118087038422483663579797890419259439432430209200128499574826718767640532306935189847984540034699769101121946071927652908806995417750673382373486135020974840233510908661415391126904520260027647600462749178750735194672656736188396750246213515079117222423412082745419820982989030022973958717600147005831487288266867852556521470200911406820345582334971238977358749791318618244028094507167632046110383806813763147232646035515203858451538843419902751773991979467928453192190555427805211655277248538290146651152069803205883691615689731732595265091133391967394331814967071382718747789527357587143632210401750013008636834737126378903296510533158244086103075593136082978830389122878717397040671010990424237025896127238299257281657272203207769056992216403165568066603246697681957523354502551961480436981501627900261282639644566805746104505282859966718334350506273506534215175120380770003836199895591133713472851682619754243660339729693562717190218803849726939497574077071084101590418730647429836140486288309509400310241178445721635556423370747156186347932534158498026276681547320118245950569199992296077091462301562356615441119200349777996257242389155336123418012209982551737556099685987592548597166316369404116255372869533674902409655205359491146795157200567105865872245472835864374315455282491134277143312624521571290896075744159424953641597628592752200359040639194532261729360702692603815718269450273475031945159166069588246225107484670306270520442418847616883352146861152627447734046155737349975512564028813270629452314420822931395703258075736685222222812659749044244124623983046214291032341478366614753053599202769600315598276005407654448509097503701892126173891403229329219265540026348655432564991654281542604061888515734178734611376443454030745720989547401743203844130444980470396171011044347936038583948108323958490399254410897226587037296704810319490797087612823612803955078601145145307426414277667975472044689078337485043783214486829536565439625312110846452543546122924120996903402352752484131505747425834338144226542686827871399630890759904428627519486941331299733060989330124273095802492774277119670928003294174201800558101267397081257361161104491719527281520944568656280989157015617369908296858253534427418968597676348867642769702662718938291894042320780720968239511666483650698371853668846244427156004303104925965469331692785221133152235007923653879311310333707570627165576591996094815452155634800248035016874697083451388622909524169424431938343866349833032606512315998437953150389988244896061092131849846303962192338018845660949991582839657860260003919934576252550740579363537023231953889938430624427224355900031191764201625837286084709701150584386149164028979774214327404482251307073193391846650992113863099140456098121971469701716308546550155724352521028988318747062656861298953761535210901766792916217027098070325539428719974585202504197317450489617867902905489757232327890663445883366367486804331699678931891280904912280791894740174237216830082335017986466834397169909915285606490488241540197974393462214216052408971127460076881574371306998247584645407205588433802948664562293818437117092099393384800734861071270471705543990266385387210054427987322780985755842724135875258415702889528628158232356379704120050592119716498801612088077012791115669383346019640402137070274278308203801324604624652868638158820536017733329008604849043682563242683460814314683293347822757337892723936317831842695505656943061857469055929667331479005831728636609818499374454873749714079757258623941544585552939280034720727818013126760970144036288238115850258760364929535067857857374306574302184700393104677073559478316107389329029993790202882008994446602968650655190801277053371542286009634199187184968939398018731661795960490940002453678330865383028766476613390584585574815985921187771048000226326314649533073669802039601778540076231790121105612805100388705489832813974204763834633175988182134443095015004966596698866178040426799008666800780753828646475651850414467344437610870214787971876051680050667019681308734217822087544489145692175900177929304680552902992562232962566053018293101459049243056088933103765415333350596716684015000444245304593422085334083183306851611432775712917991260592167587166475092716826115202029701987218534323433707419991763252044216293962262158047172774843465598697552129686627279396267872724797426639361777058337859305437201720255713290459511128664640750713205709801109658071302973045925801775209076615807491049930898179572796823532110290288962165028561428617766412503172099079980801682734147288293477530361633999613969532125777829525709984105987691099933393784548559250913654883633464235025414712641476431869289523964498707371926830199075675507934494704301492376954480191223610722627322160341311152782718761367194363781798729282734083723068321043589476837921767692375347761088326936792902043686591178922602655378583478225003009235680904597347195922386045112946150998455862818999041054792548654846649040477034539902747261948775720546637118440045568988318587504862949718889070958163596070302120614745363408541573495660178814436456707941006086674591658165424121938395477236071297213066279239768189017154533764869630372654063502237435241054424500854170522477274384801746143019659629827690125780057925168317388308229196121431923292018188663942416566301570347454260777102859965937402255274691540287763531083346153863972491024597817238573643220779096477930434745312092202058571256666303658820510193350241631193894854372415052628602890024821968790824680021507190117761642175332327567410223257462456315777412949423950585833168505885799947992562747663555925098711709111911372590621959990368608314155053590896231239898421910098640731174886979946423705967645355283295566519507967008370682964747232331524738312339515592052560142166550821989299630719693306327410236645430350035952875564705896350721663771544197515496554714139450056558714851736203802909029210634264953214794813442560459775372391773419021620483349541342737474747778310860375625519283527749972516863794559706391074217448447311931543399223467132980872759408420356616612511868740822406068285567297953366989163778464476857020121670696398053699561702131578353458429119449750596193919300786798629293555078423011793160861399738908838521509143376294631732982978148715814228004380179102459500435171266370092018728421757762916903174677378401930822930822294903144811386848814748637667037316901892209293734401072373544519821379239969033482411412643531461664842829189365881477565200899663656070155640045470155389283051631360729425253333390525069222980764131432855530912132952228908790065163142382969953603462381247367093434819265357463365586618185052844069200741760314673515565698987913220516502732877544426555492601163967482106306580481772040322393848677730885125389907834166319241621619254881253735604006032200807465646319449650789369759891470855949122374322767584051975065808007000364725550776213933214828290649871726107690400011234774581172186529744141529791385897724865265133545566408399697319387054272250482574065042694422039632891309144355089739702603851017511601673241755448978669869556876642074272951035463406437400555291487001408755494246311297492504119514323647011959269775666022849841203195753555303397867891185227215217201285675829274894881151592742808753563417538267428825183823781044167073453280937781238699525241475951363217631162713608778264520506860561675292403085337147635816552665788206535977079997225547954938957183801884733857652221749672567098719317474878648693490271280627259980010660869652250703939547906733717148860402962982048071116308297010675888810207520704689554058657738233009423728425020442544925210956176603492833655835503620652079511781699744128288986633840927532654194709068090227836624145997766404071363019098030129906990139306175135499265856250648733892736255127428707420630629097335766469953035425698902976579368770973971523668706472271793839701835415625907183700077202246458351112355828872419220650132144704710420770948198570013065915349307586268957564613805875073489431499525199662030626507463901461886767573162790632096988537284972241364675471631859172904211362048868424428760150742879405933851284159903484497858476173411628105382433722027529709838225254360358132574296319556235948904027414123278554979465101496209241089374825228423285895868282581860961157743624181419566328475957498561265699866752104445858522728884242952457866780962337310858291851893020064971683442902261649824740464175527910683943470083777275648950035828872600269819913861276527954147854180033447494471245183796116522359786024268698806500184119595662801721928631770133321594618760788036463476683751768084886997077296633869428010558685570621427292715387844110131412063362961780303039203138303366884798407116356635734591860052492659171258214165813716734203717639643779409369812843503635808893828796529082233043448909131034291095257159048800818087399672912700261513195939778222093269896883326517881121698185386251618926474934792484332915327288568738647022617400124117034913329776239785089446890417434822740133909202317788461898351096301334072029174043705660369495795104379639094611452679900472583377921425958575935784549860279823592639089333377442869777465156189044740501881432574984841790025138981096985417929871327605402802181431428136231516408857251726358327238029448902895243853994511513421891357071026283890519776800483637382777141317417097505198977934103303577931675745856150732259622567978408289082687355376822932848085637921465231648314603164128190571665034471912328487319655631291276237843152887267795559506951832454098679418119622374498880268920655986851990685907292179167530285046378218151694085253771574147589250404118258602566460251241037446969854832946686270069181658720898082146328874752923185274738506445655269522496965501777559564132747500258140192158492667039656979666226254575986964050298009102139334926341777177113516934569632273492686633846362118322131620935375608119733814977857885124275989604784849280485245854347163886798731444959618206334789822417839945802323957257895745003375497752043889032054855812168322218659519798616412038718937424106109251500933276330461314199218709221153093309324192856586350088352830621956357228905025004543997538789205433093433943211242006394747717530149920579717131760089325058690926986086128111456461700534167700907922669618710711999917599068519657721465807390978708131037361844942559579489018305771349593208393390438073693384645879337022848999895378312527099232548353367691535586523833480274628878871016600006690585614938025418984599828247169282493828448812840449342330572530959827549299635940976661367082304310301507747969200620846938504994859399164631523171144350774940403169312549919497995821706964184360574083310008533009443047159043877194377568216042859380196141462801873340769073553388719011980343739295907229410543308042407001126070464813665383145782847495503075623902423880247814645257645391047394211146667563237901847318018325385873703217676095693219091621061042963332906855471976633660332423914016708054862025736329749346368130656011847161514386479743536868605480121843976241080646824525264624720551722785871228400068983458260715144075002687459211094572948879964214193632583545667776431722160365550039732167810710017497194300037371647980369198797817471411173956063967060017130586285525518371198963440129071902413481925940717465703447568108508050177435485492831096904358232315602741676199186712757702248007214544191033704052604117499720239208995809712935617671748464974472722632296709756042201378151013480076346419621229576597448448090468825979642415985582636586111821440091277990598869958976106101886932929804510273588329839882691998411912439314620199687217174011176123521361941278394020913653213930948731513787353470137084094518375996863577923716109574894287010131150426739583948218961856912161520396660322450244899188563893076316092769465466517742949282125207744602582104499738867251804128506775479916163321323917816340800939716766288351657973328257899364243540060542880940128299776599367522201900451327135911382184944216519134447989780613488771344199812672421637491976902564450765140795903664188903079182076354730519923309358853630449890412633428186122232734807734831855605456384601875432887161632387918027191153546160856149034963038731330357148358708476595854692129038779557023404845009433774563263508508000114500435755046416942341166417350154572420142807274890521993366243812350025741187855463231944882152972935775832821499640890346500054815399122060113078928383504536964110631554829590794444288537000689931920714612280576207855697873956576954545880423310117138759015224751347821468368614925484799676587379133722853591742489927839232852899939572202815138710499663455568800834436237610831776094294120030764706027503201727161582908796290679436898112287996920137907014324223954562111823544461210140565439785044875879333060721928354140697599653633048128121355035792217820525265108717250018113202760462311979070209655814872583838312618534230330247543633481951406292333230695687297899485634636879689348690378607591871877356787470547538562103129512506855423179130884263933937825858053249457510758365523291357069316312252639775261639313391439007314248895420298196636477448239465819271127835346630458813645893194331648647830738508318151819407555625366468983240534988476682214565228323677841859226089030643902466005645070671009172335412288383395355158902788715206209538241154751980250676097414838465880280266436195363637526394469070500602000318985660773848055856232379475599507877308690112468637044180350252836210039612154669400339779074384306121609837436962647639240066893899590599708697752335776646841521559292116899812149603549108188481959160764045296456309975250823733814000728175182095760976159616234491433489832917643144821218327719097914743857542233743697078841375350145413540580191082391673852742744047923161579808363517411884002555753604391315229682370657604838467191234853324398010413135475948990358344527726848860198189576357852772867581435528673468760015281684254496396122411859770491198239586948999145650985409833674836779794217668849659617394546158467080938424855273322410557019244945365944766108569775039661944329544384067833989386147383612567106652518843254077892947054758023416089559921130889004114806674211765679982520398232650942602020888548338897335547297251257260167130861184418958733056971852545011242633768839366893487298323784341232821201172333483702884098964434353247929098277533579170967686305903462855578655246650451859429701319372130741000938516596621057394389504759802171053534639157537796370581451346303089954517671499649099675588448646245815750004915995551394264470034875269929506251915635582897919707447433173140465610438031593783830884855905136309863124874111186048497211574713414882499161250594991209764450769137139407385738521476119863865258696612423179481586292649694217216837796489649736275326452439973801566589646858355006419901484584381589427631759665834862147772588165803394665925249083641023012697800410539484008168966371854745798536529530729151073421574298888567757312602417347174638570432367917255189919727691777316454098928228510375208475827012891563374577439030815578234463633597073533529547342425374418967015148287729593442398439437023834841831442066203873278770964844351863492186989844098543202622398300203595606412093731452310182245071253108669818341342188856689433979776207506201343711149196650372697681761416863910654146034298080706343336144000350418589550192792437220384746429359734588511523048143778888737240962818578376104226045803607089823516329901365886394399452591854882713186406853630854651988968391164166039063467969258016897769945900917133799148887012370900848943539226026151225871618411034296038192456980520531110203739869836272291422735098862394069535364357063627602358578551417630279495535518449340740919010253181197761852106588756875820158873188219145248942419762190170423859870835695476287073232026452959562855034953354983836176348427858990023307489132716175655121744401792957363341200251923459440014706199335133252421606130531378888349282234941778416287042658710435140192603964148141338366727524627616005913574250577170423288488174036441749005352115490656258350961995571787973709066529421098316046432835466702299005759828010098463466569684368591675488439418491059584461109693091028432387206242926118500312233245303781447591710534854115257033258380459559456092258591671059074014784760668743630564018650067377906223297024687191703889932239046076482988906085156515305854253420957599023859957960465865628321891930406993217003088093194016662121201967458002024986737569280246161542717604823510958743730514951418346948889821597547444184283136380487347480117074887395862856703420344089000568455921756659048609307559807318976431824978961441844734266127868040292137072288586151846327370824089304443265878076499295432699378078647295636101450951939512299227690006705454461500447837485860070036911567779006828008608262447041128074461625633615138730388680874295954582278851956481765415522635547751516346059267303122111478062199920097926459993876227957896522365546734993530673306698775906197342953702185974929471479422809755737636039570514857143985537024195282068656027880201438921107341644470674209355482906834011634281076374656337297926706865281648682198005830095097349295827294883313705202328357064944511752372108128905359987554858104237102360446971297954086063369719502313488247349472206002157225945569125016582136540703182542882764237399177274181898741400654981994289904524072879580747427791409892454748663313257776760894933145061157421098188098999088047739463182356182121289262670552189578602382842012601663439736590273690129922574974522087681067640222049845625140163461212305852749970219876252907227392158995315892490188617897246226414846653221128271688954444287846766605699424420242234306875266902283043478922869603318838977663811741972316241048191628816677937223890277478980773111570699040839221888503185885118489426866240578239469580259266061253834655367817869129891470434490455334172316374996730475946822225634476796217064931340807242154003498236547278479347689298681700338237835665441874131931376824133882641035736928891607521300070066425576545762360066278137597708395587944003320113888088352279906675102719356970883027720505184380521914263360989040877787106903101776362915377244271933648491383988683873223732901222768482828886612265909190141110800416426668962294763133330438185703317838417773124501009228703065832905034538276851373257910818524957976725999644584560432127049740958168050061383168839714295606524506415634874106646875742144344322476720447291492385768987652616181658073400765952964295258913097459371932190428872959934913546053109103303110753765730566521295355650931942409019209221196741382382090896426389780643225571000056308437387877760833772926052177751149661412597525959493598856157596621178094007374710877254697718792292768870482603648717704768153329789074190987321599658222448694097689815534597631351585497078774595508144537772105873726289910199985884221822363276834537927941439441528917407128168635984400605883797819700034216504897792245770418972396313745469718459757420423229241257928344104626032711785173636953549597801926119699627619284150367473254658252508479190037177861962703119688058787577889054303291816739366977691257628888522586209051667736985543105772069996623599474132350520575702683924836358352460023458782857284836653093251957819304811867070339671930936146289661762520900934422544847135771583939413236353270714427919167615473991143065436667339580048923876059106059760835982291557001413281210356459527396496215985986702873596966376275193921723970457990239605378619824597496221904543641671117186363062885522612989915200116585953405482104045953719814635405849903747456526809779342608179737647807504806112293921364011892539037958061960527272299677958132430421971202906935839505364625554793757588668668321908293527382885719201785033175801026729716113485866624342850452022979274868161252665881647823098058673287635376397136308860657253439789866309577757814846114486068748511639870970633553899669239571250626363613454718268801756639074644538756269114174237906250551828060319048298524309006795026258113915756192578769085136812001970607831645087876318681135203866185615583701092354567920148009462080548675160296212596660513263529943819863857195464426282360626522417508687580461730465084548998425098160316066919913153351596232789371103961879358972925199791680726694218969756605476197852481303017279433315812097706527656431527285629369232257638387231852736737122368438483452455688550706619255420902607704997570580529882332935788710185804417500094502750231196801161498419041080934776177283226900026085859951257846553316233228682016043996608778027138260094468665134166066639117825551782033774396763118606333857669880944790796197711208066847205193815969791686152817697244451397558828386999070063099269351290906884620916218864435173508572101634295611482249583064832842152665990809268495677082389551482635720119068892479936530319241140663913188625315239637685458595959375868499401240189790754165008336774074485099286883534527027937470793348453401738862614173333286937075985832760310695135045534025281434226522022686554909474698841188365374144439369584980110931111475362592767533868363537974745902308953357196862315534775272620656928618896984910268570461124630308997069386511918781022912475639133637918164007327911566513960306542670282316900035348610388021709086183205600525976690486993254293565857072444706511638857113862375269596466428216434096168228781461488667372830900141300364048362460577672181981936882497246680967884184892484131982081925928957429900499235073969781343330622578699580838458651476219735536120695551894793265318506312875592085975788431614508842455856295021307589019103011423418209994800137918709429249015675915957636843303393283806088116711461957488758258511065444707992697829242515614122737535387378388562204880138782717844688172371341397130383567526840882114307718910294926301788839770121200183330159336003276048393206144154092491385977031018121928649330100189778366414585217663620938987381929477503690808284865096294443183512250891643149192104426404732738450173100874626385859208191806797528192715361682820680821738147653483124940848491613634976315440814351102360820710863643160874513591541942992541191449710656114567929790717267938793735639374841713859587637400128130443156454167748577451547266293027282510410878596998077586226708527136067139488065578520501678100404453885890774063247303506901557864117705902134214190171785930880208488471770759985469352678878139817738608435238329719254058622303088058368200010539812657831885337377785803208512184399816564451189112510654436283207521239353458272620221947958458298846606786255853191075320829717343553469381461252960294829202279869803540502295771965346447053976436146396517090144751538016985469642465183976416325846010189457140504257825652183113686126566147858262913020265473826709053455283787541792729946077667575980718088217004109994521973344256260910971387639426765168237867222300384003891977414194851115996908545753128881794764770826442358097011921162679902921951561574816703366034336573935928466110626267186897768159069610569530357698279638113426334649215114093088570057815901454106047072520680610202763268846834259183984395223168366792605468167050506184691361097601341664705552395462725568198077902147256692470136299632400338264422052362158706245326847268380011894457437293254271568327369172568696230064496005314936731203905717860412516224848920005503930795875224034317495915054597920001001270838163334603768266724745471344649419966138264806152966560652335545702071042835762950763201337463522607433584135149140705893945696589875887667002282850226083318222492317728212667901988818753135129881712935536960257723788401633271484253495382421418607588553966879983557218446896906829743064382393411470784042203118206951498084352690908972760996865074839101719444136467951380488824173339552690121251045264500988960266644090202412030620225310939096624609485763519720763719870270795243476304169995823519851516893907545708246843923602901145826703593185069066120232615803292182491524947811669313737953437061899292414937834421852031323194339005566412903154148819601286006696661182740531060660730584699623156969939560053548971445776978297135048183258929381117846036396659026917993906388929992138465012643772135143726223301650843990176525012468855953742067141989558105093953879890524168946033909100784860571554686695125316959879847689099934290256348810470728186900429396832151342979771909102998565753234597234175791276524883276434437198274905248933926546251539831063103398960435462540084710274769230208502393923874236322451307426389071143761444321013098115381219378117024636574291610812055561890767342824133304724773845866727917324762021590854954524531492482011086271279408288070223187444710263451819407392414944606661143722371009034549209076110921696762917167373219820142312933065212770860489392919153201959700700631078021552951200846287963585768755981848365096284903596383336005315127956090239742349683621857380330195900616028523092267871211124723968477016132486446473678386601610285038516681369029280985819778027425949201492705927004467744666161095431731553966408120434539734344661192095844615065981191836907011887504996465319864491406254108937157919618895978290372582908731185327354239940221815741443833537187680963279605625254844724790088913023490113905750565676386681600871596538361294134731427949924655348924447635039602653752871976193472994148143022227392911096990616688417565049228795606237679679960797957643350210085758033019934415554060235472937758093342257499015859377609721954501045461625887355206814304480133205111010645594221154908924826046771694637233512066399305626345715469033030642611316540474799954008517644359808796622642855230189637873268155453053162989241236482792310868255392102848321948714144533898827333847202812922688863227017455148881917989226840156070041205049889484830844382724754600257725223474789224308554394234281344305075722903645473528889926860880759198009355603052450344144521691259109520929996828956713451135323499602910937922284582467116515438627898751719466869476306103533490396567362410993697693234607139000433489056967586729613896125953494237561949124393981185193457892399610676527441153495803644860433725476478175204852510168232827720658384668904028383297599001061208398637288470813031608993170162972810072705978704915660536866281428856628449348681128133296553014554608720303982625780835639823419083243392249413020917588508103334250726129575543724502216618123368594784058276536142055936457386398105090401623874389434862732713974372390483331548599688600078479699587423943816671359556616056304940253183130381571596752483116732474596197398591951934676350968863018413141575350769175248267714515755717398282762403266608598952806570317873230228517971901994696512170681632008529084605984669570382927513737332648791164867957093461772319189397172730792337596580158067540799589271752351880749011931035182674528313533974393403748848460312977126759651802524146910800682918735760492052059081286740526956697135096855529770183254326898015273959393580025845668439067560171140981796113632056668925204250687247728948035082988068554118631506991561439186847831944495319706681861340468613417937413293721219479232826586775226074107137046983203535304748787498191448525811359183003732012823247512764669368342478959628339518760695801042656647072956167575726821684541001807149219269734935239481999976585386774513331960329369838343552194228855005235667023662471701616740667103423310569287972827368832507520955065131223102568653921282332357614542338052786476489950170354587975696985256561569642447861979202583958780722137164339058046804114873423257281572395270969815629016393548294064664701897671434324848933449729560812370479492200765714352290239934281322294698413376067142859044408717105867466416564356081520616377391518872310439830497037209728101957468440817228627489357765217902008573310467696619443976832096936306509950792643552983282788185119426456490436882462978111874815500641485933632514610943435935001197782848315271987788154884092099258485962560052228483625357327750953763982545587812194036822065860763193215340903708146036926045840659582174939342865087362945311332991358915474190262773585904461085767358561980986740280702009383903510868577146180254597652346936968504305388843979534995927665360402577334246848118549142698362618445021376579013431054652411835344153604997436967841383633567503092568057491035790382267395531533250613731377520783634596495496476122448110614623555063008181428422148692483315119891810861345993031223473912684217602388389567711611543183898894420234143335604703968989107692295209518978322994161663260648316423493720149227640629052663557960483641876321120894096107966431061500200178345005191696268284940381051704120024627579721113039870031551299299484411046443241776395537559925397057572938588250001889972531346896502502271892692567330668222211219320248381776975911621612734703828788309692593941932916341228706077524854629655389343235258427036995140326316198868423525189501976274842835034410866836327640029305885201877270654405171217274287679576800131853591537284957328535463575986518417344177465292964032553088969300824610746478061060106857032354414041089411378955707048317274609600440904959976954849260712354187513735181822176773561168434500554509942370193821951218027234924773801153023474158306223355319854385951320151999190978070387264914387489763101773896535137430381196879338171231437737301723834693384551612184893568366124016330304997826794317153118153340776263587118303266002390758818151386404596272989390452583604037250603844987581438261548366359415187785967299608359247374023067343536201673412336808486415315224648953114883593428081854886057114790697987836862386983171179241933012473370434664933188743205410567961187213261771258890106411401533205860038843153250482557756490760446707733573072322296718283795540102688555796209533782050257014137960097352173553802735568600741297724322523396372650909592533630093281480558722706823835528180545084507293023167924854924931114181329937415252572758506303137697724954279757265460929400760168436696147174119135756945662643806401425574271691363784226724517675158159452051382093415414260643523131868058734837426301832835307895660404673359720572110205859892282291799130331542675977033049035523334248577206122986320662102473598497364996633554915050456907265540910833527279208047230126092558762962093616993736252907701648753519639574671365792150380760841079948643301100304196084823861286450033645761656000170385613836349978113994293532001159791155733612122057392524955170025059740710033170626540932218509641124125319390947404813465478695528843504302652020826855429923434827219841564187665181236554410125518768796350000555934851584703165969353606942301022706159697998873171950127635664175985747611506548577887767515867419216194601673898612033570330776458685344618896329020404262546795726841316600340806803631229654671726516011571204247222034835343338450876512777397619307388816527982997145548103684359555361314546386589097127006926153583195148213069491873744871937526627175481550475230544334507881874082898778866238124405749312749651478209900042053095342600721225832370072419636374337464465627878089744361480757524261275918668941185834904209955589038812465943418870846053195230887636065862896467318147628883518820811173375423434742214478268746651865383287977020598046804938619729332913981790743641379531707442097276573416369171065043179700005597173506560989587149633261452742746620882863773006130376132332869446260953445308188091543264924466578588723507017987859800611051044985446460933708108881253754380186168825428680805152489558275364465075566796405811004133142014997631469049752696759994024728096188587146488305591110942231242453338358317861584273901419890166368983328117476230669085991723817646987869593195962567455655012300806565578846121288609445391877634346046733524217485153369901569119896669223619302341968609100836605479713155669073552286176794329002919296551145763654608917091638944460898180320664901856363048629555502255503162595891894037818107869744969634264425822303373472773153085673578532934583484081815974699442994863194373654490155469094466582977556767544503427876096378236605671516850115082281565710669722945683715710052518366572710146351236537698204095526554256397680043171416205746715666848394564942622075235410311253949839290498266846886018905174266310741347893027583132622850426498570372814418472546338947014874075303485459448165830771004755901637363963682428393907153740210330752692169660629803693207781537632031300303916625021741371965894458862932936900564263166072141392542691240009256742483173877415034777940397302506374128828247915000997501716571586884094599220203292382573076267934635169809836637447390179965971116721001495348088439603468568711559305363078731060212726640958965987372086860066405944388302675492045422431809897154166780397949862737170617520661354574810716193134550813918759669699054619572815447222884446347884792969370133642463232109068984443353262057338181677638103863599416532637950617301649332071215565583834424770212787197999106479446967229566442421971850704495220156581502795129503410294320677538251199444771787396831859187754138623104172496885746850479136668149433796807039862429728069674617043051244387648926432123558442250662995529540940916498930785669557946717606373945504151661559890296832536688222730230622202608959653563109581820379414535278003701212640955229454898358304517106933862179699884042947201009639222866984272620654721259214102607457943808781734817741566364514615566030319393180259079228937847715523735717587136046198467101189016463258088490589480609566760529546612770175343055484046414284285539357152384581861345317004801233945359243339842739276014034157138691313257181388208782343027928824862727232819936041477995012448016761417031071762526033044797573884823115193470686561430184412072028194140220449897389120499673699766058880668183956705887326244599316780674551619965998958864283232770358376229570984226819680991506078697657178708795985294010808858584560691252395052637387595256876676222231025433346322219304185675225652075566504627172671478102842992764879535055392800408172962357848536320100825789016905475347305832901932870554644926934322682191028595638959489891098030318440885572557134315967292449410996979123341048819376383859696878475652219839791631151710865396775359954905209850034797272909876535203034577088013464022438870491536158021054260382361396658257521674556387977039306476591033779212140265504013295376444635923421627303181056174307679133435002585557993948524408352853322198824252458647354508524421706008314112458909226793739659978894850171366523657967875684047291776385975079762060905487158291089641506955850424485225537573592262693879104387615730575486623441059141672927878258419141220603094629043712891978850534645185577914543501589936875276803532443845592083260486978261180397157196046582176266058647236240412751342663644211185353932648278305646507286241204715544681325480633572904477976863129093621691336753087060341830214125815586363037865806668817074136021818522369591274424319723074254570545794827467742054872798246112237398231936702533620521724172406248914743772117820750265228434304237083264964047632128309664272396158847247130001283274637571273999438843672282297082819872036150592787068408122274866219735275077880559509722303633857555180316863835643177862843781766043316284893273133028620730490287923065025288229396824197437739032905719787175086921168937599969808954361261143585905100651378484545384418368967743362921702295701361538425815358119658845519008824454718391422751185419391593996606994900127425146436265000098353204222744796250158956453365633970605475336316785093977686954011652730849970744726933857965936370214838969936352513547747326369695920795833149396618286619871234667356627828171181094955480657851643529209736026315595799715406464192690899230627006607771514432841846778394225299345242529111647570545679511632592649551341055281086077148928503995980807183430324151517673656898675372642899607589876935127481364401483972501926102746222279739239633871476688792398279176360610716271729159388430032148762952618864269015100092881490032880609876968357361884059452293808149305775452146701431910095891732497968001241373694219856491354888725226363210369616058943875258237940478694688108738520481616251355251686891341237369992173015931074152457492366869212820499162515771191957642480729828901506476153566734736783117634058259328790971298627465641994526704169985210446283901365169558222071325293100352614164867193637372384525678615116039384633091156174139457136883606050487731737688880867463533290403826056113216551774266814211394085592061320131284574682679343194245836324816325968037148084344326843597632177828138120651792396577434583835188343522483849256878361380033626663278233202235241368690240495450949068627638752750508528787987274481359820914677367635612906286671191287693383255045276080086744835417793559856194573779451164574765696003114639712927975997090293837653373542476867504365895395579031916369345702872000564995695247909452332807429897663863371101019179824274589470760871296852737296567084993184247460731962086095664873014646327134056348790911445750499058722253211311050613553981858237292494185986420912379672113112218265180672157022475015040993495378533378694723092879192827005213819942462934604637945054625513055897654928688354238464200537109379730865703484520185130524416643137552689389325827832067910678206522237936630898114249440287408156075343589413257042236853474842829418982657080022531029482903410416075826756386528683207849024609711653310143003907142531983118623517747197883701463256446432738670326165482425061158174049042494159905912912357395195861026063607347051587021274970742907714253287266799974251639941090911010370118407197343825149210231133972719972944929985712836770091639354120101858126213596096647617851967622942374888056160352805279260507830672945091861261418255682495310601013259259223573529337755385485800392965283779984951894626695600932021542586144509406262436792288036553542261334935511053886415304040329000112608734808900486424097415003873750644796117634977485681831328642091536937098320905532671849628183990447041365763794072473404390924258855590863117183302932998037755813480460263989186504755736187885224535768323990069415964363463660921058741514881176143698810715135562722851029964017100887762318828715506857916352783894140388929108016079787544573326132514479327636975389558357438583504623868254179555220824678212234136555478741187067084278321199127084782802628864319459805436601122969797032600962674838885979957743986304559630344683317819259397473221100403993120315712021031918525069671273784323305319305785668919847834526187948967767529559701123752258194995986606267413029408163505367076964650529777847976155867243333641750173068552785397251069537998936625806336070147471604958082367949390809138213424896364142616682855673127178918845581619013917402224215682703682921139545409660535942654655211903532336813831695493636461056557141246023940353222946617474837117874779747320926484214949701346167650203585047182622128019123552497000882910533326382289015642304428502257444108482466607627954314439180559581640612860525465306742798631921531624587393822881721939397800928750659181836140782815783688643424519898085426638240512087718783040161150972325636353384222938901761245201413544036297542878306900212354599341252283466926610664531134206202637376740772319040135046281359368617300165597820350657153928710615339980895000014160018698097554116836451117067472530793295412745097210398779102253946089229430779331510255218912690894860940179503169535268832883545188050888131492736167660332736521806934603468845696851813656422395500470759000137469054495678415796150984645946322834504881615754747640542415777437010251492682993337666359847791866559506093639366545587627938039643550064271629589462076589085440531162250479073429190986916263085149368447404737168134912643328550995697043185337074939841897842360176470408683417452277256885860602166388884037162018498767423189660829889298104823629972882574899290183046613708995880182334934049965302978281245697742226801077501288805305939109285510210464136668006681395874427742621910487717887763717041061741873057556418021690401904253083488092055066088582253711562127366235170897625966194986026377526012968597420121560409412037259287932889766199025326438155606206946550136985486724719988312915598431243243049818719427201715782573855008833500671598967664228972723068000566221356624101707338916483580488130478543795714262916896916532415668063890812965183022741478313809035877261256594351544794005849370426490336375971674150639160805482508010972414624009911737935442484437824276624832085898439731998456659263596692701319566199665478421150121003423780317647528944282689814985933320768831450968512337624561310296356626360214512595362000719457066041924681620211265854472754317127741094422670757347517569294414995883147107195924848000691237512858752578472942822127198726784898045217176534955658682994153659386140977053920459061184234528803242604999587081613308475687836137514527206960059682893651508201346966826220893183325297859857542088680881510832259720267717452931164456320625904693280179074704268467616382721930043099529401968886988122149388762643557378577123496596830101398480779034571493656641214931240009256127846669223535758852770106757490277690754514518318368852157243635300024135036044017396423408474598512260950856743148661093436339633927853349591499913970233410591176340916179347179877097783664587312267598777685589670400070925254814326021280129999393639891914828992190296573825096104889204944570010225434087793682894271553647792705603639470881783962716072593157433955464196676577269548194133441107841260299740814374654646181047961674975016245731780025264499176883717161907565318544187362985429767879526711612441853209090098854116020010267486880118607027495308894047806370609359778351744910815848370973681458404505027878425904995660116603309018334441164174170478360108249028998276071302903324959593604304625414599476430303220663714340957309789249265247388067120788724061803544393159904870926290006873223784980531964538293414827220514509788785318945524669255163295616225070831287835456748865566353438175063168466483417509097711559130445989335047954538185602598323758700313526753421727644410446000547967097831860930867115605977529457430933509082478318098735949386811096210449702159395206581870493698029439065176736688378008115776635735351480846985382459757285805123031244912882804062987532503271152757871693726247796105251903414968286858766450125333254324551919052771185615178659568310309329353241409432198948946594105467677943646268994336104971582974380058804540895873567079172708075171274116901195633280085697827538156856257812658470821564035227118464247444224372912935292909478320157494606556322158704269115187716735671800759869912033097331482838167739871269070818335337225285382237858435801049020993563421579870810471458047918875335993186580644462841697894757563073363702837854087020160891564908687395886477682839329654906074362547356123800911136217488472171502757774189869950016216301655061628057577208005844564315542090144913721826217319573155372770857224329563831092659532213864605874077673147782164957701244259056015356659811824655608191000289918194293606800166555099378976767818712224593154800712895981491812169752270588604747891283867204151845278799742910598006631788399449752979601547290056466252639342910476712415584245049265679784385942217356064874145420255037693149678613588861670427330821304265136518974433049183598500821924429428284502596933288466717796124918926019438425169367114395392537644911118635984432292588181024580600455048778977605219490456018704599560205775076751308738018026350535425180923343947447380031402703266768396064255275922615097043210764592554911271575495102616402089984955600063839760611247461659780370001718891233481791287064280477769260479078111596883381199846466562722473509724796811001956328343409969256240964798997584713611794433108716326793771066728986142182172158871754880874691518894179970536808441897083678795550590237231752848361215001179955652271290985648583318974007887364554749815157357792713715004056634013050967033959917987148084785553750163461337313828997377286156714528691362740565752904614953956218007023823252454127737939596438926581429374245236932043141810686669736615351697793575576408972267148187107128081745400391334655534598942884306471839814301252347347507754204137641008155992841771824343060915222777404665894015665020243288687775451202460678298919359929369230125229398066481894862000417492624901549270674997385421475572379005686195429414812978542423858267956495190826441204064861562187063808428102911144976752563947516116139401807612971579046137153870580180885369871646538798201298226503326079479657598613819338473556756870427564661311948051399463659853862167783494545234938103959603518798937455524063450080165713843650580776994053794878999281181686886030338364441408290445701999793717572788821924154886669135087797273741861153489300344244605951830465841221083286352570688613344529256723455608741888176401648657820324443394132854280258729644901933384066715419417017789580701587535989157267995833057318969631943311134743452010297985762269152615533732154284018271537185020945050899708926241531407074398975819907340024184728584839653006018577813173565356605904177201208281214516460207412699503644506511440724509170367665808171531656900608677574192676001910366048606010220956866348384966460318850640835631254011536850840171764642831425815829213239502220657478438260529850103537323951188224819907511951764806707477906351798505392653058260546298491133357349818562165079068658480594356682080460241666219609361158438391388443733804869266958875271435280916120298892161661412303952706074252523078167227320102751627265929426055525518113950132234657881747069078312768479037161782835923745035270931526167606291407735715768800429286992002451274789634088047499831344729154471256098771701682750623794639346901920038590977666093022687798874217941208243724226004899095796272349338739578524805597249341478986310067055446075208022952914429547082978037388537655098051720434698664776985769040363829592052712790502261163397643516884118108476885229487438381049002861564068828991304276385325084912903715440238434846862128207846569411694038262534902958545432972756889446965446179619538667270193201856814623843073891031017614012289305799391129045670207063833380354219178779690631364483184318193314119467372772902442544321267657982173941753414110257381253548135715229566690392896840578343661182050088912825657320095479056177071681870454467625232506887912194214039934041423362058676726076079869007779935983822374171101617443012505849663218254939252439345415839569065774573992798737120082104606003026416625927646974350774371124268247533313511291476227527634344019351411627465927309494825988477663927294374547266675984249337879813567635708353162961538723722416332920192672303930199775152542730793300658568628756121945054970381762270487856412958882550415106683501556056001738778277381129800591947923152979832078839439933982282820588450112514102274091715539758651185781418456570582959328124930013217330583183470745119201745802756609559411375103845500023910348800781566778563729861745548707478738318226449211107031195683539877202288700039399035388396682597771373651863126340802074958018165166766830017258328602782042562011153445058974825132259377605132337558462220623644279821085445439966565251242462160559960832581381891608106026085319112889639844265642013313532699029172047127100569129724735956238647886376637503145834004045052172946628115897113980362485198259415440745737260653279934333557123568329150786403385985352752614711916961432512880980628851029460655846831372889882651406639391784002967889960196427479185766023330848815473172098016022496998770496062489077978841730756705296016217471073685038267567476191192673650955585420265309727443024650792120190022769714146926173245022460484287139315414162728797032663342243303431394224721464686308607301164750038350651678588867187877356525885650438733068109562831199814795417988007767177053445864705891279740150318146065769143560866202190685075476134025733056504461162263026679078886007652314105698011621904937609334452900880281840933871979183845052363539733686097693472874084512769849658062476584592648607834917175753732139644056733773207750708379381841083859883106231261510029339566539021659784694305314056952760911436354671769216254619295907499628901399166888369140814889878462398424774122421494686212588868086931964246763075055428193977747931010516861330734809341427102997837363412263251674205347384374493115938050595800022316310443933387413198261657852163909529383053620827678235805817817554509118404801497013906717012801286017315310219316032407624906924982932125629378415168316967866596113404604976216421627370822689014691628416937361075039544928206678933175260681724935873184047831205804106442618966746931705350442530475805900199857748075971762220071570592696806870486953590875240715544635912387018749476661381530805114670863595998218027576800297312127956505889717552215582830838712903982356223005239875495751035772469035604077194842366546532836631946543719497816760927888614927866850839221183381575630439274793714815854134588889295868856745043324330004230428667857445982218303672336241094428926568969965550845484432860457361903222609154353355651467386645403820516962233698873808250470159059361865983470834548198627689562971178719636503562035735444736819714652505896407101591195359651694628046871246964418421310803260675471726657592005117267858776373082253516107131874549572744978352614079667696387158378436383994407863735031320764862801000669254708037116574324830827412794359064789083598798803624617166210768117493727999966088455266739429305099231420715101127506406444761305047215828618654623533200547927570211436556547681501140156600355438631166898855240475584545453064940826109618046023484354297268490070663255553327520224565420861124321169309899645226186000267628462189137484257205138360287843494363504689464521497104911203980683095772587301005662995632582999431997577168915882921806485596208113529019726221663136218314674292015693072592046750597575038752245804165668236527874035153830222527123788885943693536508126323577254961234314734298277170551229404351178545717639750445388707908092187629231750720314297386061201924915902981157568693308539481128182463818856280421364734451753301886400317492770048569235737602247576655070914702977938762181942136040064884799386045855858626279972310605820075097280791712104310279513877032623841918790419354316130202762448872141231429133115197578523666126335833517888786630743089798305563979089341238986376731161219523091682814340518670356811926406099969910105889396846940052095076739906440339425072650210947710354373652819405588993521649198432063123729282308900502876097484877986339305151434046985772463145748730462167297629984508823924437560287363488635681564297722740983863568438974384104979722405821987897205275414267522882745165605885006874185150264396067923091016233626941199243243169303874942334078223771889224771833327878976167515900513758857684285134877215215344012859683755004034335410121868239443862523165900322945240125572940997453216560526528340802582554380998106919998614571548479829314298614090859825818517867606146269660518472206724112885664506556735285616333090690318082613011666670333641070204981563936799905654889232914450202558345695914633300354605368154121230909232514456115327675400424226221344455161485501596603661399201943706313169564854072481851815457838617150046271044942029409668690876944000370581939456084320057518121528688685794992073042893047815996076017539457437275003604947951890362102601618425487676554461236184407501297782923536650075837989959092690655610591158491641894524322876465932727781433600799242222267720693954548381037452036693296301309229287663702542646177280390465333380108263699392505082841781959290644798891730359644644958162935113116324307648494153529365348326783504750122881738806290490200973345381710616013848942744330111520513462986650466619707563190908467370837036311663639840203965628805411566717562471537576502809612621093774321305656518296846029953452737247946014017172679152082014067837439307084853482271670399233279736098199401708491645549101979765582006597629277591863627119018949824780101036752383584415955970398691295968981100236901127213971219140522809723329842769941340658337930135527934913515993671413903078519534174489140660666261227136567415407692847965662954482528827030094902950086614171430910427292516234038987807899284023622850582961351179694261006447367367282210437291797819755978292028601613639008903292359868410467683811415183896524108136121823227184916927101764180244545076597255291359098404248344264690452980573093122961737666128106431349072094145524770040120514563064979775141146136511860736630042592039132843209528483287004964801828741292622723189497911099990603881834158126271583998728075185496900990974207390929290540719020755757908512812843888302304694845495932964107788877681307079804301120246462494859075234926429155940300864002143982294777971436156323163836282244881884563459240323881756914141097269132861953793740870395309743487816579191061464714046485855016864911964567560926668644042449394090620810433686930984207782176814759499565255131423226691307680681375247501810082320306698371775541250187338310319185802536872785364672782110801258406656707968861908272717939664455334506504951151294747320032613120807096766312024218793128596206278680925491595257620727922635780961027624800412946332547893101626499473143279296002345336909801314545964214893910606077726208764808292734166700293308000035550470638343550881884623245130423831625959058486726083794902944929293142620566506915787924176909340013437317269256697455460208885376232420589167707648836851095730990325932698291682723935851613671674209687343964922790490526005126951129175305020680381726699348150113376813130168861200655538356469991452857253843310295267815907534250836586193155470149276751469224318942189724575834046373465492569113364139749927686968598856331519149235778224947409287575938449039016057380398926770079786818565285569627049133790472677047070536139821322407617814960326618023125023369220651891917818452623763769494101992433368350429914345479852103111674202403459983233722774911187695843583109877598356194228128173053822127050862217654962552305666142355373440504825152677188131918467015945249696457565442804485187880829354450726141623019959605887807224833700517950625388408899364918221988563773551371164330633110269804809760121135540338391478735085203081101453989753160849661340321074518796152392559234004213213151993596399429510140198817671683370227751712741186068387412981115150781053324204469334243648210477605667604951429264572823724897366000407495500680155113220424544510066587776648289552041837010020438993757214465492398314875358265161871191916329149841169630169868005646702677897875863504236659316612223435916565718617136237226079381160316907013878770704667704365024924356961262620030037578189371182811480940073913679084742787433282665538427887894517103563381345413242867236927395573975394032026425408172409688605513659387844854470179512608536145118782436321530245649675385481972722265521855797820974992958988723816929222189640660662452253317090014860609030496648456122082149261144428219575779622658871504998035486275648568651475619403799046816247240720643256340270784571327042411032322500578752041367241639187987616956258296247796564273666055146226867280434548187819563015632316737426434637044777053515343646833412897329549386260815195932155969154652495072286223418409047621956321829168160287655498542742942063987965218512164692919156960515988589183793541132934015381304787164611096224396737657557322457768997901266931804843488321503107051706600033783444324638637888600372500630461530148712757484404539761464434053266383408572705236455336678063521792417085203403613084471428924906076540707406230385355497162227946980035064375011733600895992167904021083626518327426196851475139448695042949665685899836026991391624422646707767031265207159674055864804986114356339217274490842441281627437527883703560810780674039471110991745658152852528976292426154665148038257123028090084907042052670499690382037842436690345748757005968410233739893856243185986990178689998153575414792305757784846437221599142178596698642078632334904361862997078056698015715971398760805831574764525065879227911090589715979207997110782087022216113681026270716260304057942711382389831963750830555162601920168368374982537890760425060617368473924736865779037466019928315691932452516737916750800500896344343689517876850472845933646106442072639573539761650614778437049743477363523995473845508944089449190255644472495598733615561341796722727491696508285925885792934468577086224291343473919410315752191389683822758125951411286121451569448726171531373977005215642484858214040229128468896193304432090894180205133281499383103160819787547937079288429199903083543673940995043854206326496489081536582940433600970859628402613125618334169557183674955013143759715319184581425523745829311360350887579223092982400382039277388088582099330403568454730204295625039211022282862816940452342156640721645462181276179528302691413877863026691182015663921098234729449775284853249524763310047768259426911184882469326235007435280444318152724793051121026844853946674024883438161668518200718451071041182593938748699781589725147294571102066096257486303144872363893954803973516489177660913725202039542673522204111597656731794934275184506261806658632275768262304257881588690533404981608844437164297998889200279161603143219507247011885980933855789370015136265220600596479965703625420512735303045305210462164398586244593637578712380301946413736966310033075647977801833240584134452373136933548114801099325765764103492977169798767724893944112936839366134388195628155340715109305252727901065375026661053657381500857784202289249109164029301298256144154043028634966025367400251684602069277296254285260273905729861698950184049069274782804430237401299546048186840926204725406045358564757741992678371392757686846617231740109935489868123801316150582471298285358016206950153536029318890909763286723453296224047824752022882641490708743781016641457783892651626427547352836543414750672941956667846977031183100433989286670845292850434979603395481274065419834253541354200883606925959232871498941666492961037152671450896513489451187024990110806817380845435697886674137109643178054732106888520938962128823889904589217190374109665300455140059788561459254574300940572906560038360649685388803746834745168252361408431700915752085606314279659343825553441744378363223902430286274124305839323154425089483099586042359707030517625946359328873444794222202997070075435734206457161818073776768513702536320320746456064045669976074461927198935756410503401298966379338803473202753423056973971238278196898544688447080053001247225641801982270818663909150650230179892611841766298814675353303000706137880724274765567212040701065162114378893978748200820133691609622713780620309398467098775407372611123533720947586774532930418209377979723313373557429523616990257793092616164282259402532721984836035477102809077770652207569723954976308271226384525179742783380434546633747484758938500221476854762009890313331468928686457320477942793716207914333217745497316465341021985445399902660425293214841994521539048259717574180547088675021593058808078548363426246021016796619023014735686784677019915073471680669438081591324839429133071560891069454167594866570370488133001388407934589071348340272996796522454217162480571352777776440681579667520997388604260063215041684634737154105020776439146541281516549635696074864704438483066144534921686088484375091747366505677924598845797685740133816222273707080769218035930453103973140140157572546935845004739016148748457979987888252325884097616950227522288934283724544716337502175578887191348519600410071169334378263208200746474324012966743059206947250795315450890678725742146294863161311181612301781413005858489845388355656013042919953966892215977042218397999022000084366035989707829685383203724580017319026570385280478346608813702057086791516026485056373090300355921040104041219906700499453872099312585509849023417387812829780730483890730179622001428179035767075830964444724821096700128616288465574158465662446745771872586235751786645149754048414178888930280935853962052318347715879638347341744706885035644190351599047780756342560923462745324466474875501045768035955115634828123164538168807287765533869363843139270887553913461909475217544834043002569583583378675509603041578994430462475535401816772717103781344677551628584737403266946785587915126060087484672817902935674959446631812771133833732135987188956597309108714904773453063447407830051808331950456749958959839813307654030385747616018894183818039275127505582111920332508712291521559693462640407720590328296473986292725292764413294939132622691061988798925237119431036864701792202334306247970792774044346167693891191517699562065211586791213011907220357430725036398676989019845968003852310046408610661063146519518850564433151988418748544979827844606471320356298781126564455336190737925499020738753554046948936556361673270335688995645834642426178350768657208969689824989864969381049569195793081873806120989055197441008763096135457520397546778073393384965846902019758449230196476161651874155504236185817378157865327721683146605090555136934375966132782113833226516834714067030901650323873623314763789498458650061461433033852151549393441084710370140701878686538683319768582574604270182159043852613231201352596145732551853774861195010942789765513421075048047604085127128076220095472233961525339033598565858286254706085163500213562317920175447803728212890759404448614981310847242126707477031722791705883607258871197560952520890389850337023503813618066850405420343796047268419571434259218573482847030570954662031692120902274313912339811044611827614172685665277533230711109270507467480491850201417761213847387396799788840207313939913815246643794916389574361056250598089767679288776946100010039208308564819210371258902279169410742725622994800590721175087903115750048495494850676344820287249900062450215387188625180971323339159862915107549551862405276288452587522587715937006765217276967020461157444298190085379907964578650923881067678575657674591692509804173851100117345336006295657439836510647811393636543827140533313797884659529802421177678949485428237466712157908475740897255724000450159277533575190806846477885617246649416440215086550727767676222483521523552614932250264176079322105612641941085373427163889175902800687151328265628985172201836750299406150636515831706741422726914732843135702282781029576213508408275911630430302883469933920829700220575934926755456671852464867305582733736388636911823286653814966673190402949993609242312359274728254845080693184031404375441618228829920464552898163359786803435940623830425231773937523091588365107837780072886769163324526837366447813133439619834365058412250061222914688111687772839565917634052981073626781171477066248947513095356527277311766525792183743387420112374801669593471335640959743645033926117590677305616638443561473240318019648599795686867815365766452726089405197036779110609424719143611013300026923615347856318360512682766075429872424904093993451769837904208651884631838817296540677000133459510842762333209159159880337533808990777002544007678081926447372948077405419240725440409730884721158096981090810590122972750257086097511326905210401220840140554963496517246090417042091796719752239845183579136499261155257545427551908637566092779661857400158152389811797214267428156256530973231488569998460298458756670000543911966115511316258768185623868013409005913489022045529736578054013919208370923988889570472332378277016324297813234933735844244971543593693453588704753101909132257527956253761757258504207255696953889370003029758075277341111390503866039257072761395619435988006180098430993169636573165666033908188313513632305977290176443578354568779613291721965507842877555087260423636233011980638784570385531839897025315556406612935414577023826463799044787677516441818706115825836276805881726951450828453800957150701274617584257499282856508516529669933551475678369853617892955615389902990445426836158719807013813904961230250188132777149933811176478408926932745343031172747783476316014585083037355501240527688507960601259940403253078480287564848957053488241016016516383614721312236604646965193407915889375045217724098819296219493904262306299228750710350090668493998956172866156225883541260354845018030281746917921139963183323787584588905163856627853006034894796885000086298760457107219919265327194163750729972646694043358126644798214587666969134063963737626719919752415952852975142690526379337079448807173407302183347549958966351447621799750594203347125807441775810074954167516046401729065409103725827448339991708003882348499269399399627240890501238109397105647474382525294088730998707650158038103003635931001315815813375066687049560543714988286838427380725085710190401149561337844669307321122390773383684539850310932170946964732331317029979458425729357904102507691658117654358926926838628348650733318341812939031155662867707561632524680978582006374323053187111494681265964098948565591325339659021297570344263609047103982292293581260267381924226618836296172273577826383983767992659092341502683407247787963016040493092986104976575322416264249791178177321163720796196820412974434110045843064686599228266146242554113827618231790132279084793696359454622540863978028449666336461795098149428657957570769693146508841516271455558671964648254989592166864589832860164703701534401192315474828487339202897026203989575418082699063487308940688022818607029562041443550310594424343009350213372465448757263115912925320914097742864775299754028644578611727750228408581162883766483936343308492422982134706550796273532266447499189345395554687804378230081546845273539267652978919481468858824368311198351805731303946164700140962781990304051696625936275673765592814463929036189551932908819800927660389277444915715847415611905186544414934510442340248271163270429478792839630149659660360574570340341308110771923629120207866317293403354562297900744470669147188344228181263389067099867467221667478644997694886570461782457018167720286070078523853873411717769530334993991051939521376832050320130421032899519171462383110656613543728208413115778648843911062741825592388365280794865138468225346008395314036931531527713563182703576095061833298634193797693657306282071611084114014745130157024170633394862037392868462766183759788096601144843416151472060720046504544550502357908471235931310445355059302572833088227232979926327302810476973031735671277417153283066094062958190976192685198380740173217386142856644416343525741087265127952954695092734419877079893181225514340424001846617633523230230728107336055836409361550218713958276533023905280699792469193774473409138565656971704158488440418437961051245181111586006863895345222587721660905510567287793777440551761050604947491033270064158156199356094286708652327456793331687447211726923801188052454565176133438181128023736486151401522813833246041086148534548716861651969554333858072047463088109002401044710666912680325672293915002158566011068253150266431902058187088766164399752499029473040660551517651011446701534794138775050143764775655904556139046633914152063047123084911389525130032652079769692968182886507574499662334028842704656987389510331214868915018235518263710282299074148503740915765483455953556064584303299313320866994817994598803300216765864529896162945726386943160639641682197661282815979229117685464710159858131735482669396683653080839428871888195023218271492536152545203307505720617482194422720897663497815985547062417437142199209700507340196381558436333943194821947190435686231251780335590328568209851479680868822216609983267890171301621560852654235887979117117019570640992736617592942416787260139425585482247829824021956524046040934239218832970474441283866042785997797876445882980734006910565805502478310551160900269161751497557279931233999486569412266886445823988626908749276774995601347630807651735086402617762324983771703313825996227600837177789083996692174662354363936696547921431483441918272198908736083451576158639448958342954271125508766014703137236091267410069036351853112152002866950686486178395704818943869387695721570461564330653697250462146592167442777926200854833418987597104184095554831501400256822398404033953941156692431919428369006441321346148632996652549627044188518728171151712621409551847170289025492454316799546683017627436698554388220993613882449076311656495928032097343996662954260780614751136531049717270609164447718523204741723967576466334903789794628629606969037126136076289725461273660086475060392127140080517605015255487126458920969349993393549296726220579531848026323890348834243962066998243884847821796779393917587303859791516726502915347453784570599525551518375758652201368858886571492521115724717933792621926183266437005276600966081735150609858828622007454218471909871148149039449859026884581680634643748264419589910758352807361312028076131409773797825383031408319369971623663373010983962330344279014068229523650579401265902772362753988233139735199692642564821992143288901979186570900385393293729218990891106412425985588603325681090810867549320202613148094949486654658055251092197676096437722835298415213342970012751111714909278419710571680833877761193171317694878954465636699530355165220759388378631212551391199250952738214276537169338537248676858402630794609276111633830351307666692754565020976625168800865105591285772139061692592915774491571522300886356446789709074312682133331249129482366637615072735575435045639292635087912453569568841242155277831836961991165799423503348862271716630649731675735815300628864588018803275436548599318344552345645361731652197407237008304984965585570753486992637466330855923063497139048371077696905417704123280690276898400897505177074463494384637465599959424832337982802815765814753248028604665204986736795451423093411261688807478630174170957103400735464009220403438086882460425553527835603816046003010271296911129468637989735733914053464822720915242432198058529188570396553307248835655511973108935657569969928318282429165030815741944103192328694068287444155585402012874032455838130311758856951017595411077304580573870644028442473264711425015545235931015827606492762811311823652997573495042634898693887795147341810186559303144032434217517568029712331052360898810363342565650119704665948510592746035425114092069065565008731771832617839745712234599691443277521920237385305459083202592065019797024171755483694560264800900112091485391730529265165237193004384878323945972366915006560917884917147865117751861271983268742728562306323032722401527956597517897921044713488689356510925318765665445371143094327301634425845047570130856746469979553351155704525988309091601633977448880954929690755798954256806286080099587095465859524421013069500524406420897951135855233654048348266453420595489348097402545589249433457368708362261611534817337489897563520427723800478401641743042284660289455081219390310496374984131907347313938167238310228087530465114731694140423022876923291571322307254284973353281802040438435118670402448882199063807063896103040675085583332782411639679971319357315682634141721114662085838181898680275388565256532579452673322908612697383635938410476327138717673970600737704761618860241234292935840558182712148611619815633559697298575245305045216269301895471286335513195618688349998740867946457789740075839257970279580764444817802012673413266986396994629843155232832857488346863156108984753565904256830218163465720495584340355213573783815738278425085454638657547019097622811130745421798174404815275202597296340070419223944176609339423602231165060745809546866415212627348381766903437722678142793518285789118979993866071718631494651944528460305059399392191206854787093476048134460714053299071899647532745788642679150516944310926867751068631475542750540630681883088247075155264982901085282429750698991302004728973800506283372712060834421204730229053327456954314889968138839128157422582454012030269969273089078448204860459319758079760052771673154292755001020741012231801971946018136003934037148467270607339425850601752482495266828726153345366938146373426057943301847444703483222185087264874986059255455801009568218663171087023279974380863055830261566550266411143545883873184030589624970498940367931093537982213806027484271953538881748656123886795124377935969798353503187535493392202531080328966905549459730583218299260965775104296083296053611441039193193655301961422445294980788778677704807128709452528031817323590827662925313948656982587823304226245278173383291302365122678123067922657544708184028617808389974749372802782756618512663831910090165420927026337625792653449876843913615333699938087002843226474925456803902339580690188751384634914922998842108651508309476884955065232893777788315072456215766204514858896597060019016875885888088371355630456897089671169217334548511937508393020961669379368290901891514583564451631938320297681891057158032604818775787759800520622198616062380228667863666300638881885293900859767014095629261419722346648022321370576957532922249016133434093935800928410895487882155300056532065656162025396992989913113899557328112815084828436309474114831062486630024552745787595707828514310579676328577815040211667916627898167542289933225465634821743524267678161421649281740796024380201271639797398970188567088048399456342205411468529857564331272095114746070637130056782243550628847540039590449517478481924223062198004124810048039361136855241018770305248042935326706459281534585755478201596575087879009709622643324286078358497618189172841554115494374208513174086118572529185440588276894782063207798384995130284728114444541778245755646516923476738529554141477490373606220215182675110643924990699521079112023060657487787080551568277002703499311178083609567808761271975353021410715750548767962626127610738293023736660129219071958974009400343210891608543287549392132131909183909103794759780283635124860831477250675430787924474948494416003980126601038208178134833412645922670319883623653764931712627487955842494055361782808466299608182352615385157068880180531082602456731835438757560922645508858442586250473594226187195643532031450670540148895323222077651419586789673863487451560977664305627633703175853832619564023068089406953877134257322967286768956091152128905238941159266496817502902915331989238786633376505582474907319225809316823199163360884509740075122768663784249461592297933619004549797209526225119876780568102666516642155585329824518733798293059884144404966319729470822004600652086715062251013272286054872845094255013620267767161539203798310847396259394743039194033703943942405682513848289917169287987618598779284851217165249338311479963583361892325576751681919414170721829211778750312570530077781330098001796056465305774328140048619064219767574879342551540970536326992440897053455128952927477346798491977110753612415000217354213208285604705147796020646775284391663769786950773654798282413277454493079880073000228401586988766932593761283419535984941387864467972438660740577851629187528444313747106153045141825318714579467155312649388882311276718559575790345668256430056666364994610466248195032733808940822342713712605125486553036721759719397506019906339127096663706531145464754146749191999871442894371703224167317486819999252641631574438001367147119419824502268063753512249763271881986368997510557086590106000498971348948680189983990571460867745811176875879025811065963257101194673909863590989550813200130180571743461180878132827565515012378957751065513666573578729453399139436854231021595469845980419159981828123754182820451206017115943955819647134170766813384633907144214519391218243519015100484669446092775720109329697342065346512260537545149367805489570917295116413405763199564078016285280570256575184007814605167521492030863247456682083199329563936337142253361306418412648841674310163040515882356812974152903595568667876249656332931282264281580380350327303275761566765644840024928290552117124967904115482490674700003780317375802585772326507640333029194406938452436419772143608047383793303185910656508770594100190437336131410804269915038116425939228200208252042045586299532408842742073967290974255232049083842094143147560835397652434676500433832974934241112489501184636618980020594445877095968336653781037491676151192184635811993162407560567700892604661289862554955088473661960026839963065244981672145141163586559152499569743165623247000245325091828944262589326287497230383502014632389676253765849467102501084842067384369476582303492437545007536859479280438123087882256599646162897524883802148351287047864904583883097959201637825258725753751630988967899790567737640743203162313206298521548834631098052411281071658642636194581650261244184396688516087843151295955620991399956602036010708515440816055821441849893232278369917097496523877587696828323532435240091690649769571145457504117600918212082226734050530051969390589351989686573883650632501045816276956821114166935865093099239095317811055230351234247184699647884052789997492056896895506769134967386949431448248074518077220081603647339556189879706891419745553127364834747953315283141248101686442829408808682971850738082655345140995468784132198750853281140779872855958533000482402866772010898672052788591518237956640044470809817822462681320009447678326905356513678604544827964312773322949962413076771719072542672714729833793118256120246511023643055841570953388217068970108203648256648581088435292117141793309900306054808391132162566564373891907080657324409409000275666242278094663525569448796719932818724866607246159604807567228965267255200892416221955303014457242732455521620374253039456179503863853704525555450121138888628341042843095944917416955323023477712086065913495822627975631188800215626854611153410320286778435735149887940538168290952530444615153236216476232195853504954315569680172289220988420485473445292491399251382487902220936531744522719523273623064824760796065971639883913512463646361010090784487929311097224482749624506454017003930025781637343925019802130010048545520198079036581456885695971958750916995558148346668712438817650524961461300784369527128978765434042253268700011665298762824393781035194835242642347759123684165293308022356288812368115977470161440079773387434820980943867466686117028277920212096580510044949431743317810229917944366595975017550967195220631008982493607027853781612514197769673184259085779615586641998556193020482141113316134149166003111152397827586425551485816081330862914267611832226783698329568255629132261219346486430255344417249864595077382600088709642863842678568147176421685663896542355011171496771243212635875051329005506111773584906907566661198994335885103544052604078986403312821697743875630008037788808804961541406096129147411300110978083030403398832737477362550311041394467993294438593767350315863059307978525237027584757071311916106667268950507965593550503154166503209543966688378389966679152129029086731341447170554495637253120934727423000315504233719105474492619263095648881656883073223703720984484064649650350068878567438013366853570947524873751104758246931962589154908168457720097196320069793318570392902203351813374757793369095174920044414014618495263335983148923016288485494673701985914297371010848621883234707282216488250102132401218991982736673431617669626120937075825784884903038956732645161848084965778744394006667219137831067967809794353222856896665287494752734392290542270056797560082980884542828060562039777226479263335982252227904895696384046834567928289768571307348011011833724496146583102898514793279999784572523803022177078780091353505841295195144557444666318213254103238065130105428069420751002956910542574192897568936759079960246752273890145020074481363247015159774077884836049413145837357552741912881440502663013255763481108992552045204489607537823594603135435549534058347784629295781324801458602591754385047996440120646725110786422374451736473909777782922231768136902963424834183234369981169622768356043744356100429108384753084730335881894938733711833770560238808978013676985847930623896739975265612019589869181967426303446211527443647976375156452038837478707667887461147939784001892616804087255376837365692068098026759302253185107715087614508852993434958147406288482521324132509667564203402303545009134657781677808385208023414025052437826011470679498875195651246555333481263534312930862682982960295672866747564772681150099114092653260085082976822010609869806585090726837965181814388979825147495561670944696960265980748828734057812801535662579805012928795612418442368177274620882432123127141466726813597643247621483350644992664267810188345624965985720223411898243155204687869989533691698429735282655507523747496362186405185537894778414167104234001590840590415951803808469374556728078481340507880813628311125483328703225116010336140879762174100097776416164300964949505315087085802858321690465199404803394119977067207317753264445665549220084492714313439515892586244901562667213309576553067258806664900237834703665877594157509353228866971657157283927970220229659120554160938171025572080973429323061463671994386369937220082013852001806745113162960670957292936766369331789612426277606708194685926659801852286183393770147532778071436521885562605502771881771728948491231517813824710855883386285670111463572347593526975185983112086435125744039562731455213597268054030615966418001857245065122199808864061530360361084726524364668514193177909332372937057091868415452169113839757681263323165314233800526849177440325266706816848620991411126857466276231616816795832518452900971367007430738993438632653328123933072386222455228426158638026699146622500812972027155962339493477665314284333641305144050190903255976639563993928368577310581902618606493225161545964032607689143428181706341739411065461253569402684810476750474508855843686063372386496063997463864324347976629157321236515590074938987260662813944051867905000880002208941575212945923845138495020240147623979487842623928363141747086777168308252699321846343313558874162497938958414713790229086011643877073174110554955345606489385237955768580069555631266644927329897155036278622126275344218705675724854668617881912490840286255634495105219727959721290294948072449462441593833162160677155766606499803729429509450207902542339755414607627504917282970149437569107411285231012053072077888670991213435578519627775547284875189377898576313296492273968923874301458227935089549461010252821100518785260107613836027081273841365472605703558852447582453630801046542045340588269120092891623286199258778701803759448371574953620369977558045753474978276842608044077328065436680882458390628878957707945161604332197245893861766585292618594114757121215293255870423605570392873618469792956069649833508885449625364965835954395868051022761016385767202618047227940296652570574754810062498185580615669818948067468568351404116955570038393637299708244293939697820948135481700549327821650750022944852777269854790950123421643410732240685802846968250078341835494599225878977087535189491525804344296409027973317992454653178005882792406351149574183534837915013840734317230271013234977154498238874638682925815029657216893593936941656092368043995101624587245662489035147803366666711857297551342378327166311674943292052174376774574695811655615671009837001971319406764092554582289583956773064667766294864881050493245325188733229735713869897661235293895172422477606210850974558234375217609272981892882593950897457919320072184496893838544568401927392971126657447799361855919780803283382040154093556426412172773334126547227005477107992771793063063632096518578139167449823773375970908123112046486835081152253757149955932668656988724528171528571444163677771024656206744292712086238581508267437108842189498711160752524860899789747099858287561958687011202540704935345848200435170132908875776605377998666967143339320299622745578863671839776318413845108485294818762827924396408489049498051696510184715070996328791679704682843411557566792158993403540666381141307327488022782392009812377131117958215897491699794294603006281324190784228239175284981776336596502176776190736510259408358811985621205216021423315389774935746221843807103570370027116973540078081272735761921389647251179316593597847716699202353267884864740939995082380656565707366578358764371960890893931576260509218875908220613655315816869128848933147303291161080062452988869966249961205531042217739905093249615813868854484426273971224208976493310257583607001506122127846157297454351663919789942438613797863560136390363903784461820256683580349781826206308032687661905978601573182289376744342497952020174622975220531981000723033326797216069553549353327341302959784637383370005181109311345190002177935466041707493166370601122667810042798809710306205297934324909604161394771566832548132921000120588972499605260050464940784229932469814327763674500309652615719238574968746271667285089877453538740044519384019068431881705197748498718693594476050666543769339755606794310457214139334392701348240839473996343310018160405391773096467620152457375615533265882983363685577712424555296205964779167878265927423148178894953820564499054595562408849486309730915993770737149285797699819128651015622341965073176756500428610761202963512322159607824344102290756770886452973934991301358306156568661436986958409465553804586976751453651501666892188338598544058455218322497802967723229022674389111850962244273001795035998846657459584939516967247729789545422979406769082784318075559785677255069168296569807123240502357340233823037152280488987129274981634591348823066569200767088598499894874612123037590975656984021404778690698430357390315488519530261576370319264164602350100759069734896662447130468749717774968481427135714802199021510198693217422604909069322675659333440571042699985670836331061588740041070597632555100360296423256958657838538385197210106008662170650912329447272142590407887665640080210524916110306957412477318818061707004411325328810158357555877223072419775452513042576680380997645691398139877218651326947605785230525993775003212339905477622195683760426554612002079483590093573492170577050381255519412830629381802846700225080166749752512867326091576245905088954346010390193062062655635449137619923897281115973528745111411582132582903713228696426921649738551204791739891733292515003426406567936009483016651038072561454936691797701879207599033562762933652584602502743797066701234532250108978551296952620498125855881326459845220663127523496219947812137656890951704895653487743259523466319887343536115149003016166822424202283592653358061806632998629825082019899291578739553157348209092235430362682790485447163804605012612532204741247669375211235028847130605803891559375045355989617661115796118310397653564321248057549305562931888394645276216635861697785301538923684941175456369613205044069994854888462635191858583451082770118436348476291003065895202042659491840771849442585993474265716979531706615329183481074581203435167186728420989360733314562991550479035398902869199415040727303385283934349635735375751630110155490690556689873891833106031048988353405275215381617516292636815044030844216817646740009878534757802300129594274508628072811638801186107990959277145109076737820798090257247657136186217417773846885533918886391623080223875178985289264388502017053574673978174151549345992892922464596304137701807974007690528112725470945483007443574364770919124663242811017136636285637710481138741916680313598592776295193059981674990288887085305544898941928651430866875983311964118373647780674165356882434881606785146557780052836921641546045772326918621923068257859956379986357133264105519931413855133516370469077860826003524870389361736883336483878183985914482671823930665686787456712332875486268331517884153580862755738037774910545180738097773335163090787190061934763906956112615519607123649852716711898076407438813559011679533797645030478130073098609092750223211137719996060160265721156579182325388966949214814647114106545078847532823408554598315443872897442382868307677940223167807439730243469216810868135663435623767916038270080380273764006065866413945648470019802363658553853906702547102221742023317038928598319692498658971712796986381653779977032028213073812915950070939826791959753448748521271107398481641851476447294634506031626444442501787279169367731566153762837173516504761080826922270039965158654508900874114037868960403568500061058828239060564143619650945382215142701037662683926158048785033702759534233760508539076629923458351389157448785428474415926870771784263407855340945641338262785738358400955806776294832303306286077001858026317422070605848495683378977438418035966580390562009074996262193643045320094452880777242863491917107603714474559143762679401780274614061410033619265878898353361118659314597625774339513235610547254525287553509461070918532606488277484882213140958146806774039848433256842843838397361538000556780236229395241846627458082799005977417588186324071092188808415133777502475915815068383610243031489786207122285788238825293236165531029163931898780210698511005591997463069385466912562384043602382730597526857580670185702495091117620436665788319173009418273863111041679782864899726916927064191777926010067650053157673364138240945586315818391869630069637772353451657961708590810649998066677899756613935066899744544820357224868260566732157606957725316031398070960548150732270825887923089127054952848253788274404069409169263426608496270176225700354277179084688858819228354894554492907692463685596555736300545234601772260860014099597643472976504063086287276072564388792003114383031456399063231171113826721575998214094327456636105596290549600009528348100497979757306931360719375210370977560807728139021467322564104525301193810979379133413908304472927400530316344689287167333163195865143270529497158532999975653674541523888823113059691483894278361402496749567514192462504577232678478660022282006373482173708042312307165014579905242295452663370107757488943481336629551958482544381030390972010584741153153180178870955936532459385924996732410934584940019488741950274509000798065790781946234838565255208439286813519330148307274585627230825082277219323321734863601880366869733808328706607708501691076309862059171029941934237406371911633768937674699257299473813563118328349052181295463982312845171355716949392865174166403241625867036391118300115045669095143542273312284019622372433578526273666476988363213201780034028379743661073645605609449914984292255538537836298316749165907203544503367377057079103105533640721471652140999847794236887178284753968195630350267418113593506126126873744163189183381631455783866163342515946556960061420004460420684667650630824489562607811899811117445792461363746263349117364405553682299661244168538557077173797186654228090508394232767370134989384811894136425420703999238940937582865506542796271007751168115883593117329269446550193827020332683638002508992926148879338295343744781303248123223225989837670559408485222790332818252165236048769676413086294015172133947693532701159277121931382332478467458212592541664593963469509070539085902552329598450759270503313538752144201312092457553744764674714095095942166558080502321278445476082653017151016768045549675722355155628280715872089348274444084205049991086399320896347484706721667139471514772631304564784724822872664214543026734031406676980988172277008641087077029416961607233533125553698194155413084432732890470228323012709298000025700793472077031469747910488265225990463175370893452286992283226241690846291531505110538939974788763259719071947473046681690489989740829928717919072808530326871155795048946435065011990033556501696202707362482624259114986351630209301174738965716750873550176793839803113183617306115763631736772136120729691658315187977612711701242133005925932087698710941684218488394563216217397492004416176514392673580527571917057899807236103498435105078361714418564507760764290374839716738119903111062153399435235251777077412193822928604215861759479374997562936275173895472472856780702273278539488559929834469413744115042603354862770158694677134508587632031314995558431713971979634372798091472647291253944030874204122004588610110508973601055109876713368741805417944696158923616277832290442505247623092434259428428299093644432850941872348050668593480694081767676280232663825451647035987571884197183832265623909038984745811642611749842257210475212057525213407512858658556847676323107997695249406639027434176595995779666647582854324942144496797243577612955365989869862810300105811550877382459086044488586247740239807552695440911084770983468733272465194629544193295901799125069456217794770175542736134932513753862136323944340887886426294975573931866221173549579963808548256918038471055689352708236030430882604913250212023667729095288632467263682252868342861450705586913608352854104904328202716452618433994151791668030700811064233723263123815367931660222513529000156479031447645336299663563210731468671041165672957370723178248987451374891916659196677857613160696601864843277712184861533356717916040118877328318556133740275267900328463841245157148812282778718707783818291088204737452151341669128034020821656934074418168410828066725900656802096510746413938250130323412811381250833588499463900785661502190166650980612129274661394456402852242447168580478082608831074038510755343370382781031850569739725849331886306995118972223789654473818546279669782388975941451573362468894522367152591359764820519825564147238706312343152599917916992366244413679607834654710004225009145187736135392049619563206914882605534518050348145560431457283872950708511981025681276580207638088197082458298920087220060342068021382073068649984590566946391298030599500793103721837462756712223379504934645204867206550616656387078909589863901748560638446452009675279529739767752042795910487688327779412503249627065671983401211686033096308362411640738038992230890126987875325643096993470115751285953771529600639120129590531063149320176721851908560033312931245436316959181709809923804085781217856692655708245604803561755248226552913987484333978481011631227977479203994971520923198828230814050713138003580113834428547386288155427179408987582347299522617089009349496913876886448365126542591502333866813393717063583469579004266716309223321920604138236554564498168459210719898890623183937880727816496018058544804856046042074664156074298807681538629533607773852522178656583956723509190981891455211206573455365048954471207628130314487665556163497527927059652528731626867432450077464122734326906196095493851252214130967247823521917082120471259934078361820854660355018340554920205232672820434512748597266193869743714765860436432464167664448331362481613435483020749881734070019139443395926354631931443369729782775424831612385547113945324874455753701045550915225220117843574228624341176068914607920052075406206764555102882636443903641034518442663282596514693466674096668868242544396924770460825577677468913567788134452516032691077341739720405803510522415714671838160999351465917108403154298969470848235042723500982717444523911046998223925731679830263871656364612434829794046052585881337115126561086003113784442590853201079762973909559678565417411793484692188181405712150856423736383968527783364899465486621821133395585367462363852871890511106381716794591964598180697219773963827999908958017200227846698175099725011712724523380025726760010876080444727327156239990472072652213648613468049977256297864397141331029383834681038546623536757052263373455123285452466751594810201212896866857311036813757081650703652819914977902803214288926468898806918698487660006903222318103981290864910069470685804770700204828616353647767451370966827590279281400265579058899025180040827681212571039590921057017601763692981133038083951250827933477952890599277282848608619598958343363908249918694008638918177000005880871683422995403160553506307546389634532383735478246318104575120729279648105648530943418874957907878216860248271416663852304030413525861204530478447851662531684623947724174281352239911583162467049141364417136613074121045630962495134251577646316486099484518168831938280716226887150583083701894331849540289482083174940609954472046985674600399880422069573177842137098258535012348591005738584103560656641509834684178081522290309144996993113045029205342158957418948648271666378183725018395644423426252799771490927832727793155412649721392498610308134595010845923821420165979398222153185053566584138694264134059627191850290460199620542572179421499552864925436495878560771436441290642206899369471656407877874013423806282390379138092011333163984504407780857172752106165754928960733304662056522100699781608832735789655470230564677529571720848394901986989291548838384037943655403715501492528765833010415441251175464761863382026835342677969261752139446854220318371042485490302151003373383974425187206262486486533004164285265745205436073565545351400825945672712673088048749578633925640200620730769853660144675713043422876894441534288019125472871266884520572857903828139417844463346627273253329460412710104456659282437427243379977223431836432093304088280715034950866789176410905173455097142256946426068342853998033486697833684647422757830999199920243800607814308975486144872289895543435614443051882287567554438613167493303931728290738238183845605261027680164508122314541273549666009540619087233852137992594084053671190770263786814962070782297463994260586075787246742156993766546564396654442025104660591023180634525505176056369687569257598916106979842467939405842328648645253860500750725064115864724563540582437766064399569902892600559228953795613727237967590428421991573296348830938399001988548385662198974505183261796329629809342757342917996398358627090228489676207222338928079832995153267280541902158064407549872483163946789501755493765445159297247551394515577358939414149902656638304202671209633138110260726625934332870111664553667320250421655875028257222813713022998513969833996951379973495540246554479268197975618961418404359831100880104499370372724342866276371459835585934563698939916783877782896277093694613033541903943467344236794853556188124691996721821769129743525110906241102148031561276629504467147584598863574651745794180492048011563082157460713928997287712454839249279524999787526075474058877050062572602128605913298199596844206486323070914348378614059219036252762792305103135954862533100751234981908866868186481593008672142411017435745431949718073841237736510012277199225326499410520821566868524147812527594658242905640725990293319657490730610010131890759606027686088368127973316134972626986369384181773720208781436412396477814339005661541169836050869707050203427456950921391646404828379660302533980602217871541231627107371333327457311735458557417678372111509045457468795846440777365664489359914200045010497730254095907364213074783442122639092755361618081925950481271263721742616168795034795148962677818474797138028808085458260646281944712924954043421650443693143825836196004126223961489701195968065440996864102542641929090872941749441724191230383599602660705298515895952090269732709112172350749604165966373354836683618980555443274295696484214513514034214956943906419396902993744845966661411840575083246468153374139087339386948380330270821195285110290011570216209731253411003994472054955347589753203134378861178472013046786240839240823022540791082758900513827436740257405812163726479368564767167879084557755159688386178624556224808790480799026298670416677125352955980006931176009342080405807773279240804397494881447094630924138868814749815143713343649026328203068205060848169063547233813239954089979627665430324257544563947838368251287594998515920057136674098724082122855665928880033644318706375759422132235870741170299000771609916560313367004696810802974989950673121304916298115871191025453382250679036447588998928314051124874761591506049491417536061826323370382288290462640114024375844743939327866818860321874886503730862977306537685280159864257075364664619426287565603844473033422154056694946757863146498624795899582503266953641486542950989888932385230399956920254928391235315503094837663898243803158858239529918015480596765251165919193507858877656740599833383365774330332664049133918182749232581103671942634917688649939051907879373432711737007614223309429333327657077896827978494607980319993488637984989676137962961446572613331702742096455468878311015044037668910775437955794438343973931826106532115131847019195573184805061165319419807749065160620235948065277376052771813462892781623007418639718467826740859417175018745097907724649780965247375785776257685410945170262360828682213689736706628689547741953902608553500331178670367415113254532031112752277163766639886106031174549726106232081607707916920270986392282046586261621980274064032508424545011964013996094975193429511716719941549231234181773786335323376826852701573408982838342438500442501574965381742390557109454771975285590121206142962174984688628848525850782957550952663671383768982621733049830270971602766183771116230623030768442070357074731952215206395201836130538871582836672527658869131441300245010691641310437844209117792965003955144613160728361930645525005687084676817218665317452287366176462110406102522865241869617960920679810652642629380775238920167884395502562700017541932054743777873802539099841787767116193191993401216523503346487427632108979292807285618386902778221694238827238444976163349847207320141843822203735099896519026642279039707413772826346078964158689519990799591430327119421254129986767689361606274615180843107253591582641644504777398173836543136815933155081170644687657198088164479736445503560096165070748909842188358514470062244461823629078889670314112996444782468069263994038191876227762250035029884448420269374090553299201147148622191650759803666682485414276285230938714535806276035003218607058305630749030762319628956978847035544778159470753572888548815095017024023008777883315130537133427851850797720588390425382742617922615735664596409398468845416285215715021659146313421438268503465193886268881880109361972378011419074259360073208853401593644473559406926159475240074008973286364188546176689261146153668907228550224458930957247752331794847987357206594283550177031195894638419354015408046968881372852750425873204995667550981648145375189901044188806648993302493330914810518244565980581280701913544015940343400783438661020027153180176979930018988960248531793186206408240906152823219922897727703926064509906922442465247381256640614984327756770359849364524248806149426838586924051008417446430158890774189112532579409157866200349417040646805832569885099450677354130138306546866347881165749910461403031865461665721166489350936545540849771370287810338374812333764940776822396475084679570312174888445886754670304404113161525157379045148983744713895453370151303632003209107824478615477467486607921475747597609291396311132792117823839868678420436760186306955030592272059954047837898979687768478196223629394307299892195645618453755564667427782305834234210914702943702643126177048135529941064503552324309643063645427473658169348683354421740477221243147268355826705765967321171729349241627701094090410724638786413416976975541387794688569035659813669134967729144175619891173061262092728471298135992436807893587400150483797949326177224291464074998578676319839637689840334377626828987095159226885080345636255722180203050554369923686700144323974525539436428720998737538476430141694812639372419773589685635799037540228523467421176316205814208423369283832321908392998542382356464325730667440454215871556223563419493120657497147335534571643749370812172233366468338691461923877529099644754023443736219314364732381987541719095664088587615477672724422858350005210818925204473935022153382209927109360435262723546039659233425640122842038433817824006335377262665092249591265816734958615493853598558479428623356772426006779883163397626673036986126085984304585566552427820925925867429986050938034330739414016108512929370807089345552860836011867975781996550991159043642252817813555743051517826539532568221603491635048857334177511609630603049739700341731995897897722252221368956212999196761345133888398746443361438705309541616584820807247683588996752166234419303648722317090964146378474997181059628197143846145002430155275922490444321946980438678025916120068033266687033600578935451793521103539297171574304536613250042804913349303967463462254166707029245936010611083928308568916633903039708809470762910780416826198525142763812860176910396633904262793954769913775033355064382733152141236465545679628990968368631750248047320526121844176640922026497884246106969828651854048608287160943838211044473720983875810008616403836442643960198708087360156372558610164816858687702500480252061642115230095634609591292753748848493822090876355429895306647180973084457100992132872792879984949206954608525250783231159152002622426063555008951132752245915313400226369961796230259106880415319283055567137140283294836071639662269095370261415450395993671458223583819407498677020806815819420641406793550509053481922806849952516087406148359777556629368533545160868434812744181717205911145444078799939392255596792106464788500854474647624583642162525388358121476174862270736157112164971633010525408662199345519078358305465608673094323811212768828764168111464398023663146783551913542542188597001522702465709611479896560408072235729252499315821350974632909467623796541162153159362501576361487909361926931576618441781081786184180539615159852019445584074626968581925554501824068190436793956921510686651399361115805357445763043362731969856818371558662269605455814370112705235600387501460889669820658360439503930281825312268768193838106325649842996516300719196364506992486471062140061651225883049200095743908620751715840641186022487164167928395254433424890309186447723933468835198027942133213787109185915676347249570994604958655818954182408177347420228322387732725266590325155986030360511687526118023260502840449396282632979501699255595345940965247795114612496829286203333510936485161502705150261480522961446238200607167120101906438504564957461992557189519324373283471823748527715225496239880381498361655978531019222503932370462183779370502608924802467484125666662667994249240870510451050012211375693705027693937656206573704466566986252197368389506366763439689902120348640661679905516745293669106621068263147269987577748834174309125535209085916681436434131479451990627477010286046194866902990828230239640195990717212986444736403875526341189889794301938604761163315808995894257594107284114338309794926703501603849514305280129178243472751652488535922208026488013157656273030818172415002465619114915569201143715522675901906609953941078769016926341206126716911336374368072457886938844734453087489728412565649833395690081088180923453127496940754675283573553675624593833558451583552103336921034364767158487893245343096757809420071511986267626726406620416723761982224300845331036812404168625258162310106234096343068668123412580111178130785103501254417425782124510074467679353859544130926582711195129534682276950564551406149194000013955457640364292216509465433653057476477619877118785998867324894041968316114583291947703804476873058178125527348278364050057403073872864071488399496656075942814950043103853969415341814155269054198294736712094932490568950840721933509872143914496484637077375476556000378831108397061567012518730215758339562875200380929675662889449042969813330531095396134259797592693266519982940389689690459104361107666500565167401639056529221102382842932514456836932846544317227405410269777532220743259878786598691890737325432421166015741151378906685416509252261801752489233255294677432723562963927716300703364465957801077322166632311831127785297684462558613827079249180536643348652110578262406716412015532638523330573729922465796024692351489882718246466258972911589235677969046287371746623073390503933032449985792059879253272420439128663612567911343440377225387754967085877345046246071078885728982000198819971204927704800066759442910942455695895001051723940460844830161546559716272878504265192200546818967565241579976226306598852502097956210227946421418820711977095901835212933888667218503311286392680287202317076868955041886801249517364935188772878331686191521234783475709698312974965594055555601116293658909685558142783042410251486989704807995170178083456401393074494882122826172889786601041584846454982075572951684699501174038226130783674039944155809124068571188422079286662605175589696382274958842511832613277658192432994254475620145571052052624538292102672467287914747736463402635668538150712823744487404808813668351367593670839746364727775660517622742422404663409838472375357803450705812511206311722507389156608775803308916458083813125252043228048105759702310505492292497326837568562842415362356979863868642138647380219315913887458371302850946425164606242644989381320746369590300537731539889713007511329054507650623540891361705442766567607809011022080600870340644258690583120848546322974669064524737915257479372695373702039138276577884508139431531586123702544319915903562782890115449675639672587528199971964376762805567340001834257420349163061202780903730465402592470910419343463177844038184566596536019283110188954160973804703856440296612040884742173363796868172022690031197935165709408493224798824460825135396666831952487043022334058533523329032711286870382533578387094246759055033844565485635609204874161949371823229238679367830136514963989036917984868856536879771452119792660774316897346111831967431018539439819329220383487355827061321383564111682566658013866685702161423165273727039607485350890745142943936540251972566220492114702656637085281917010906358892895944916126427767715081647854650339988071825531196664240471950668303016203654568655343947034168223119267432177814312530704968887837081163712956620352868840104047241099395315840708893753492989239195669892585139686677841953875281953096910999097606300255180975382415168539773482422462184021801728505988885419112641019856755421240639859333382544273832464664270767514931705099156045152895260269225656291793938899365770343222490436626776423085176558347381750510567509148286586948280887951167927092738477955739958183009970493381871639516147310238910873145243460010784828336411035087670078901930002689474655694870062183576043727196189662992928050335969580048094289096869258128914100560429327331547705066998312873442117339312885537149608322441702721447156250483432963320087005443046658325425299114736035880664795199106180247814630414755239022007849564409475764844040270519397783248982197770051464435405345617505477829527441752766540189136882691265165831858124406017143066639908691337268676996594198226786954481220015010980515501420308994974281664449514808705541060568006847815594715535366053660846905938008015610151448488717447384859922273274227691772568403728236737677271325706022063483015625830849240819015635021000083399646461770666974484584250719910273382646157670265048267641712832611288833118641464976491937957175397936309326311801491397554170824347704158466670974360418525772846957215636811377539905944357894074181157807163346389852284112735767012166768936600398350093723423136750305828890893463493072469076436069768557370408652580390038446492239900307607054470036788693743806672395627950408923235130733437917928667053406735976829615318617027657345449773580282409022869768298700549312360796685338087018821400255738042300146179723673101133354187539710827450209600308108731509842455009221276067211794352939752803141939791483996687664310053523612712757365577229293297653143466950559190908630361953613120880883602009162101270577807625567541352659741373348265140491092359206407967222740490756517772835508302716951172216342138273816442215651504611906581823728889102683631974117481967009535154641490845826141528364747838559117296038198186286656122777177113707213897689489831743622090131026056566173565536757394256710120605910000310762708516784419320640874843840244539950916239285365481432614888114912074032119692175407332956636633241062247774396828952348138134802696562112792408145731986986881726191581141181550192307513635026357071732991357716339948900390587861371990751580235169147969264418664614124650298712870866784397502650375495238865423404860139019531957858687812385488979542521296242599366111589812151084604520332694348740200471518639399650683054060410072533276921725372034544124135354927750886607742546302519971120963544237958181073037526531356614906727115997072868523507124544527891551949734762070849389420462487136371931527483441166125839444128139485015743633125638293961627681244366638533894201227807539564252488513021975699460022167613143392736068530037437843077164317254196960680990430894436723395939522936745239673439542508971433096229637926806319662878277689250676940296236420054125723647269181055866397437741189418413860801751166318533660185716645000738401951660918956086863714052170603080395130535641028107859231173451104494350210918288100374207499168912081005320937305023841266434201698810758242473504135349796655527800208444977440383879959034733762117683744041228916982838640193129668389935739816597342814477623578368229468084214212759387855132742729103537220151272312039010870473172264187578978574258162922774526815739200094297415038372064548423972407261347397064768983673333306596379032563982952930931012190043023274430074451427213115241866527350049476557096181682277761836434881712826855344150063478454895421977769503405087409529331344414748516596028749148464518888463290768495972247371908651649469187420574491300563002434306842688154209672500270600013918557664364962439066994363480714459436838529598549721740957761447305705463084077718789143247348033106710834425195258791143684231377202494369601037841807928717101567387876201742214273436968949106252183123153747248159474765436458093149361538507432255635916384007311599446536053120113515022930475809590071394352248973625377814896579412050464127439432047822495174328737732853088608132437413878089968781994152202759978559083608813184299407212153473997417216125895520982856287480178315826604227036242875773468244777666770900453455383729011685826960367684503776595528715869707977417745127418722916953011294889431698479780575803360788402565850676987434872922218076472355594169231885838554150014570971744835527855678676967225077397590162475811929000719692355754873252521571944657077864999476095431256282839208544146826768692559061353830097237153329003471844188137297891798590421764119559499204664845241727128908087060763289727013160584262153713162404807384800341511642377610373909260841320054254776902732539647537072171138592748598794521323233707892726778746345657130172460914742900509927837494646402088407421085201425062152717453339187409842228131450792785948777131322307983117736480446072750092841426071187875060620318515790051481263209343696658983072819596268628380601742447896482791273683922053741284136528206789732806708284854263070265575242826164424992049669048406331750452778575724162349944790450398058082970649987997643689433627681598903429194340665253176604390421998210295684470606873967399350428543717514772262636762221852817023815445718083414028442304626936041937059179183740301113171950703683675829746467390050497859833909655094056687335074613936004005117344143202323092663841512177130319436569497323904670675802653694103888171674002417432412229706660513372706480090682756518308696387229727007741272881531331929740122896734845865197067050115940973538415302298741564845756211719922461866898373433054509744902115436736215048389020623564707616751830496115172499064695391989812885836819622404067175349859186599045558889413838702193678209021179839499538475259767604332809406915085499493185330426947706805086093720325115356669398028089849825153216393072870492462347220805282724025555368113677072565143774704344489022702727641253920210601044207583414367518439230404248847733471158025397458653377826745873058435563900742159496311644746010554380264163819521038667293498543953677588999678293283906705089342125695731666534379034336504289629592411854307837032838535026529237834209299781279134047652839697529705884899713208346717384846696894786033932883741093876812517599637777711552523745362488275222505874924351998482757871076454582223291438014003328815479518566547218943758259998810349814805031763096190899052843944854599888837181412337306507894478401807623162750060611055992317517819195134091291398295528474427355896788432108956562537716547880489610185582274613571939961184671552007937761204770568513148192725090853012472883084839091840663575573707580530137885053239634579636695266097887297856739288510669144800858841040576150105829424109851052666539752839601513366027642421110172141370297992503938965634000694913953066917762224091887038717915971947111883203440059116713299013441929712105917469312427520486460020811807341046621741103889653675439840271522572980441854773141835265040630281177736649024349441843347915271357624554415568772372680220291167690459301580679444488247747541334324282120571350844823054559400082630168454999547148384172264700706842600530321455960201942965220727099900587473064601952950334940013706764208352286678312707209392097480739881848192298287698469175456749856406979514105632479209615734422506316933250477221324028407897385426809248959839601821526516068750631716479539012449974757449882884930671945718287048154941109085998508316554454333210626061270343477620469680876632204723478905085321845505731463802686154396415232693284334711046803811069513119723934714473669560446642346373701102665924238258754355787694785129618153465306342580480383312863000224002270927645369195290286192199981427565432562933746705074935356507633385193417710677968170416607978535393856599372632968139634715903137432837410204868389631011845963787778567322855226620126819251208088781985012641551570420554506624476876026565591708389729043865452548372961274238981610377849883562374928408512280705131743253979875567475490740240974865464248105557666734506445180075120013934075727411184476360892686592958794469749664795716534060833481383037957606677110763830555145849014393961726204635943280802032117330527110990238365248914778005854536217560113529579508569908438741363927152327490697084858993677997724523837589246433535765845414455893908179927416561461006682552962356584684709108650614540062440281166712418859485806284091258423178862940210919779853596207133845422512785441188301735033296445595555431708094020307377590509140859934520924903356896404370185171342726390194606293371868255307142852099624825454761950709024232273404151364396454378482344246664904906400949775840609795684474973704498712760041590053905530794265523007371530626392673225856761280556122365924548226815881995035653655411058411135803834970295277623553423512288713826804443920900472915973128430902622962672009857049326288489125214716436341175191530436403441678269168200420577161527966830234078279134440880759152558147879500914881579578188512601431418096655911559983973496839720764452948276957777701637282340218682660738858146056065707025029519768767573213076009502384186327600167084889438924083578659580671592983529967303758970962029664585995387227346804687270350012403113725042740026674276700561214218153796201665962164987873699535417185336495771527826514196645616118574998670056351731687096309012677570185169350412847048408190481827814186445708521501220691156893415667530370754732458867214285393165778476206713759375779168657324339160447600463032608266758277745856872316720106169810297819103379954777996409574563393093388743473391622859482775492783185718203686613809571731379918812053838655203778125599931138927305855615669416767468540087491394298546534076877307908730447876104421579058919337441637844423680501854577602951444576033761709068244918788069617037954171465015100414589757639265406977902601701493167342671690052384273501831904933613927797029064832826825174800763544220750787360093532500154140523629002748700638644549072369520723694086473076729660829041699939166163506495518087836086963452420648386641938457110862001368246713117039853849942360174730516368724479542202132248357238292609562819544867975269038613131619841525133658080876754583623273039175169237145040323055913740024571274681261493047345011880986973491689777587014210619788891954914167972601697018766145453660991278240834858064484399859311945870612157238872311185422304459961593817887841679975757526317984682433638041291284339680373733768004619011174495892973174723495029446687045816826858949992033813803116618349839376898781297762463935397211205180073931893728035126392137778837327234945859216024208045306996643679337679430181233129204079615442447917162282749677096966190668902057826963659819129347152347130250065727292494160201224433623218814262976858750618258627631953577368754989771370241266503969415168888929126206099178556998808844631590093977593915207345088632708791528178804923767877125710773687591900331499148706340711838744773834054428891803739523745645240081854627193727972057250689776060681349666189772740124158577708730333430205209363743969922400851192339303051494907500717015430072570451186671801840391136409115584609540318974129157285686840840990121419366335897692505167862212902084139554716687070134632549544873731575673076346535752894819294581571598097999938538166615170350244192633049594484121963578520087410465172298935767692193186109268264433215837124319246038987214040621592683465341001932855514697638146958081672506353343241382228579668433060066711858330392468904304804515247912659255537531075594795303232480579015867678858713139266383176539635131392748980666837197697494420044801104729062394269478445169229364987551289842048987585046258334508703923662283860176813309905211399051773626117101913804143443919846196428607319005849481258406125829698622845244621754223018721121414372138387501617025849365043583490607482246246342538787124771551863547767147133468389489362333970278140840886842817679604930184659370317522891546753034589233317611780547901716199937754897230706567688401572487748081677973706701601320864291977480647615664918671825330656199122674672266199277606305699854800632593408612069643908917824888749046132997128167487155039069696914660565777256538763186538735427704941236034088225650087917318478309866242582240401528572823760138109739210767882825487593876963192759406637660852369076596698638538629644805325784238479085775679976441966137322577854222981464769033856752981322226430743631018483521759729284484165871826695543175352032115436339594159320454381145157107940179090393721145911834008827227545629992251488596336674387897199567615434458205745199056664152038412975766192687150243815209268102008540377364710206309580182562059719030150140783732036775829967985414188239577762969546240427321847771619181205603889192686047501861255573097800674630545897749636075650916288462132077836769967641793231644515535376283880496169286938538804023216075108446077205787797785353649429658741712475194537553532982902165401749445245537303176189970272515408618028606522734133649840413911505717240748613981420175944327904688753117403577396034505748521615976568022683088169348978730509787283605426409530511045440303098546941587371511391108798744978408180922556787952218665068806869741037252737284519051808766434907961223444873414121459642161147297717986704624407917375949507963488255653060163992632678338993247522686883007740952614739583495661045990757466555200085964091874645506115682881463732166048289252676838066004014146777916438161778603032962189234597536752005093839210336590949860254969835711181776620858857986496783864537790426571251266323886942974236673972589491516114532450246829707552885248912546397619027852360656952975080575462587628403859158206532252466977220494488296053835764749025093548143446034144916581419086667750978159186139131135512973688081734423580418442162617840478495004181602893956825855493218083509534952237268916140966689663191285598746397634708101539784405677562579069611809365754145613021074326607069012486188338757880916154479082905574870212833069377912832463340800585049323921093757623908765779807550502074231142429196515244037987914023639753883026112562548159801498062384314618475814094697947968171351557291090257414678840621031898523592763800997708909107446594113011198289334181012460200150930818902101347824276348591914035906102662365979860705269743890248538650122090098660414700680618486860893158823179020987258059827468425804804210173832532076939524611474034138990502570779348119935683868704140780721962843977189047827891228026824256786588493298392803832500675236358592254839029965213827762199889978229342306835494342804062896206591583686115778603115050034001175710596155801354379521422693370037054590115404222373932960354733674856190858663123961681903907622831713935943289789384109990532946238565386536663081241106914530043538074738672036607738858872372011164367622738413395586691156106638944891833932754821837913201701800535653308329977706146626577147191087200284429972900666041730822359697123076879290247512263132098513672506028847812147387664610590339822916791940331475110019197729093575453872300721467885263651789088696572391967369366056438679339249910275636411948455621912477487972853449035261122921864839930098563485917473675552693213414398412987172351353586572315604375734052965003320254466911664217559146826263895712686276015936679614595420884617186140855235657510477476992743960714794561438600972102492792828143423657163367749759004389412607336132355155477783144445885832023118347796216430349716708880905273619238890869588009056334316992101302528816571475145649948106222711038828005065327558359312875216239288671885095166104565325542132090446019629811264072895853433952173591651675949023427550109101471045801967778995687728047335740452975462980501202978191445239814426101694089753603029573029900401563209819267011196493983474702877527629933830854414378361722699997828377212516074521202198167284416071305255223921528531211524353421570235914505428368393547595017504435051121125139874261932095638188196510220503612313042045760296895929779613704938760521567981212891647050085385372862345615809421035441065377563494132429039644186257025047299713843530936842178171199241356540003778624815819748115756134518970139925112941990908233188462569095954964062909365317684196487151187625762091593099164003088237534581585125360314252992390591982642273228115383928729194633017032632730672552812427383538455125447064012756856913103289032177970398398489075125459372649676428953023322203808876724022250489040140219855854329377188734988312646559308101750521182417791783397132024659665103925372195154562539643203885488308282410126636435025272042012128461354347889159999302504494245572631705249133100257276584954806393444478794700920829861120942754940923940544520102934330706408482039842889254562242193534497786231463800795347349142020964731090133945346614324540561172682667624614288105002499001805471459372292217911450264481570035307085259765326572139191177282635112130653865979046590162523909958927288960105808319393073452519990412378650907746923450382317810945700858280902970773569411960590226294142597149115389673945657622577988674104460446074576269276430130507471017965651910378877802637288022957173957826167494760165842174891004848991301093993639626739291464826571199254579639569547744923208643172979761273943016424153849104488544880312339427752627488808235288777935373973274167333973442349207650796088307026365056859141521797568338392695813602120744788976349842285297540783324818757372727480234942514867917316009927220701436438092344140443824386518952877239727754993643131136477432201638045807469412268617357478060598656682178642638502964063480760657173755528175922580582818502503057373213937418212807911692003664084010761750129825028411793585162978298800519240023018101849392423625475669854007107020690611073596482143093013758516734948849103689320913929826955559458838452504910531913989345626050911152002622587446570201275681548283227095285647913472658145935202716367783887123810575074683667587561737410065938203394251643908805570748983554040376160018070293582745018584977520833031998127607745515189082130081110340992486078952952593666343275308173955744929410473393262542947044551425041878104908397821566982827005715161493973780390269833106957200571000163697294273983314912681336395519546351051538556784329534468515737210092126567008668843402264508340409470533036415483411035378522564570161012263227088890386424858050442388806636597488335703123971158243942714228034912171315488554041640720775085213222740228514429732637756693010119160616707665429900309951381812919866988261017551037754881268671494995118115743774915575739727201104475490702092797539108035031126047086789030966435532188965147658923981826658944238509612511764484102722941975872603032347125216171096787383946102846808140648700776421936852028848236821518979744543440512829038033872786450913071488207115655751945892483229241389900862801300308166719307553329129657157206479109425468940507634563993269645867677519176490813554728769347082026719542846282154563139784810650098828380091155462655610166346437565895843364291683093302960854779412585734640962770652024192052359279982636005412032654126291902564950858309307741618533900577805557059627727860399880029683956633431854435306869315996336486425051790219717634807915030846651793465161074179679174267394312162308340192487992413594360999154482423653626436683992937487374326464622193778222055329479124518079058543311498590931909674008951350255437188454476560885989306950935245240364013923802214295207576749566631713568722805433553392200392610637562110160463788840046281607864244369502065129394941767079546069106015540917561708580863609999418073718457476654486598146409660122276949573130216818214882059802006067073095494657465401319097954647093215705308862429985322662044182914554601226304397875176885077845625931258202840529577721208882702805266161195144346600328452849236262604662091725618753646411969594033140607307857429079819768862991837863930314811682085044177563643537718053843185896915237679045181016142664678292685585927498526587385294097758189206108418703142927868705757256542201928795502724065159913115457823774173989797544666521418408056014603303014501449446565284372441387984224914446280328383615024658866843523628524183329352568572790518786906001280929425372100611994041551663150741616256119895424490155700242427902116505126818431716068764860846903682058619322046293908684714757475989305591841438136406029304649613732390334426372370108778869124410042810949656188074359237868087711499030834477681174706312743939481228848887741011907394178074355571966550039534304907390367226233868641402643851203701356533517738274786389586236137492985134977110330449540914084133729689953564985132322628490091627669653470278323997090422906035397247963038144489536965774125862283241562337493768661484484845574931454087748290460101082124696684921563582627096801931478101734341522166887878954396669273568649959132306971774183470573277373836533810699974175458244321616972706466619535606736952055840500933627787174012766397973147063144970282967509967007506873795887546894712725615846691350755185357650628473912087665913665085359538541196354780993224779867997024415961651226472814381897267311520511819124578855713922202311449341502359972863349866604543741051183273180428481061041973066623043745920520515355326256074293356688324999766425448947977730772524400109185933529803586504554611838713836389279833280169205422948885864109245457049734406889685576704687898817808438786296350931050552244112884093215367214186742010609977409902859741359619430144341966331725786171520947358224630033629452894243852058469059854971097367573205560192500975528381055465468781333837966812312161670782614435813632907987407436549552533820456545993814512056037002925828378090013232383544159474121613766473091265079212322530679454567575350429128382811781148924733754349025396082794926039836439797463348589905018738511723784801653560802178320916359093626322522622966518551029846035711351607311793614256600114625556428988433821628190521943080034288650949084792879661635330607587298306643412525948061972240810001828545517015640878828674016847074168167534810604690653623627936965283524377289640095172707180729872958255658312950650064988818671763368879918590894564087921152637987264913045498444434722147481006631050532665275861167484968604545246190901985932936126254641420877784577786230490476590810839765765004264056019444746084379941274683839498757833547247646519328425805157923963737855591792829753120832003709232011333066546829152093790405979479896523207408167050479960709168688653643824935358455049934444121544317580459248428446586653613470109530388784651684217888594339502277788827717396517111136908850547719408910853489025358621663867381543594971219612243441359953434143589219444140125689712836687681706149242428200746982212323203737124273280248665959275872047382581928341258657781671129432992860840627441510603135570520915160364749494003170785951022116843052674651060774863247678998451487512208422602586226992870859011846904185893607525327507432578302414084887822688930950107467267393785781704315321360199313181536015188790219359475690641742735837610926302735454463318521675325854042441764134358376443783368060292187770249987420966471478472872482416590977498007462679893366336093081572563200274677565554328478456944024234748565019940123467689490536223473600991357529025699057943755378081804731328030828613467611451820244761868741675260413506748884892072954935950209091006882504182086118963004658546120289236847893846139960695821318252673215064409835298324551274039134396445156105735813757420161256242851487121091654418998551785177334770638665155723963927778779190438613761598709591978190762985781806355679952655750985019123967087162366895076593810323411677824387758072428500870621870633511676796301625606953137190444286037685925347111829731399674073829504718107296213065388326324564957732151191640775521341377641232728926072654770291949156964776110035307945466543837335370814571722680983358361954595792417721739923369921452298153510404318073075412337666678305479875933358462859470362760290700957995708362051146351141223930714883587605153942243351144426922051932722600679077476913825207682041389680439583407050185911435650714564193115392499290213914989066336182941123061283621225003062945459917557919820805434947272207085488966868937703525700995137413026378404007092112644627665985850780937234637156232660115250583398354717874861071323683503385468333619019617118676318789678422148726160567044485291887172665953063651347964275408123128121543878853434104586603469498548858210267633754166347310513256233143391552282386808721652428336317666527648023797369678756741020617954726168387334738891784244018823599679542344030857138119632634441528568542752382179580466029583560571001927331517013578636787074777937518603170882568198956033277989214002368400815513978446642700943234800883515312587402136651163666718203947620844053877937578262206690249053541606533088367491132139723123633511792865780407048746845742985761007512035259299503289560115726414851630822971182002635698884228678453967101427661371015088717491193423895038887210425868165898152477904362676273470083750434304293136834454072680553727314378616831581669210035530957320912897386944693720539810692934425561052455278574340900687291626580896535263548623939025180053610709841065767228395671843552008241743164551947816857306870170132714728393140324755156436112145874190422798426611816070318151860383639708913875639150574946733469949687444994511844159923679709518607575799014625210380215958288186343414843095747295462701125390381968949002322800927965960501730700750091144802957105098014499937247745903076008174261727261921441555545384781899178851168999920928558676734996068428974438729249988188254480893485061844797161071782300277537509685845775669733160320952532686030838093695278640478826008406118468933407649955658589202847599290556689390814645713562806210025473152588205471252317449334076795920023411618446761445944187048774057013223134577775256112942475986435031422708410965424428180068403669156263478804740010120532533051039410395008637283977241131011014986636292529302448518348581708760278521773735131474461855294379991656148187791348051066907273565785488130058566868373968992412753925400162359890154527066876948094999020837036724022489633394561617627537450134665652465560573632723278065655496362180498824768822144823213608306660309181269627607154245578771002218088810032194161140341923052496199565669284470387976680077535266250167182220773671847723813052451674373467134455155046797539264333694480024580535365013450083494181442223570994338965430695779220144470912503179411820692036754730760424512481816157902465677718131496565872604862820300821267894514544999256327201134872779378020162715537018282645013917827395734301006545035725705198503380155108071508764553689186716699338612810615825283271308738322082506694020861017308812786664813677577454625774544562377106585588366052489084475722123055943215518474081634690380767059676909695268816459702610028246215643715666893822361296176476221064498182931396821143917516360529768264443734901322350343065042871386166789334118746293399765396277814419621988027302735902367907712438686114414607784958447141844913167610061842846957945494810829864388572343782638346175067404994024298674270364173595561808171241694770231823083511658473966639133610559439186439378924212767695222994235099726091947486994439533270977709343168607881401747150970321460990971973669651566549867981821412684611993040333335972033629294248150494593113840671700766787792041995605025091074267056010955395582725498436782898788328007787856882999949989518775211042391890553111857923265509616229053291860293709709800384159690184176140813376926835899791317320766805532491170622354995331152529244711206320453469737312666892259156293079777080788155394012158670033289435801714828689126953735304486313030982665416817302371989240807877194084905653754998647606912016638999058707251681051691808829381942476448377007075402319965126766848928202878469769959857746158871905081180443373885107787640952674027587291271144835066754286627433647856832010607709398397831116240041408767755591850081965516477165598473910254460899028739369134481908071493923088663888690149204918091523813744413412256383471443056245222015573804004296612994071300752444352746481268136293537913280972129832771814208753991904996033284615702093660016714840030938509936195917602047634778093725264512899603082551081137425655786700683173035685497677118464168100340946711245991589624169799474745932568233521211169888763487437855441350013223673054397520331455220509924138541823057438102069814909468233866914493215248382967168061690233263644385682123776145175369066536993774873314949241184692243176417419373801585547511283437422006039278152167023054769206422795155242709076330806464333054735043619793177915556303050042738107896090942968338920556433396146593783761696531826296439497054596428993808661778517220618494072038833891837395394570722378817562255763841955453024451563123573292881684687636640521459006157292372894299100494846997697091011316925591364686264064131441298257493548495158430133788286201934281657361585978353126872192295554648976164802056262705550775792756642417690867233701562912769239483553113074155757260167001525934815161687416273650660776331411299034970586770666988265749360427713409561043866207066442326200245053753537772511888734873312554771246671963589822131097816530444814146339716928051548951671320590134834848898326028449082864240471132135561021744059591823283800944921465110192346451938863001840607076551419863115533110622871634196742741643983795605787280754475087794138786184587868704266221028230440631212038494820485342998084321758461408038706715414112296070730654684016121523588689461222842204443379763953683918559294533301628729138307635468575670071286501917941863395602659659087338930903406959354633487006637484265690268182159221507369136558014346855025217863615298574313683185095311155909176358971352488300945693022958793258663590924748468787417592295093654734768480675870571647885617579626035441665437329706908684234630360218637587845506021937950715140389363374039953107051945603690053291285632464674182906806804250785881818393629348589402400185328602605380967113532758705038752396355415121891007342204394767824126097988401542975382291739150267395751917327100092494422769718309551165292914504073572182730906140444182429719923573173973176542182135121761639298042190930003752589088230370848529401016053321966139833023235212506234841999662507145026924937091975118684277932219515376416471594256623063816440053942533592423753534364054453962657888661516661115739287072151767474456208554401689453670351259814095272529087197261865150619483841260565809753068403882900126157890951582379091817038872840159119798496695618040048817294394284185633034101160971542658554163934518330737917859353234597045873055022930726679235423526539321073505344258510830082995556185029144098739166113491457787248069269389390764197523805190018140077301304052961505645488875660129371469192050306123305740030412353256850006013269112581416828372885971086136315023673244028032140705842671847140865495650709781866030098024609105665732109415211994128610162856567173469574753521002487123869557283810950898862102400917473829534661900496446362482984651719079313018705829821229061037325012791353538005936061127989688490556593049061746044578693217452665645901489206275316409248972990371236553653963566265046962176207392742243461843815347178709478377060571380422633790328373936964751088817063556676571860682592818121717783218600031263942463032666865035312315970198897219663795775450389421759023996471257970282222426467016930275627492273706096337884113278800050401902185861091259714769136219224250288550181973384007784135953112043491383989926490793246748589800018364025150565930931017953828808736216321679858220907499307752752443119367249968092037685334850243326641067077139708315762599372347392963003919985582014624510762201318341629659900479701667304745973359137379520689108342459899970725660901147489701267955703025422476676732492319285064758012271385099017599947846891974796761402537561388522390044664492413210499996871110659629371989945003191540115839522002261408540119200400244268786275258114038449786693786887853413808897955588641563307649808657641745732146999302513420852434862732729282794545738308984649591817083814811314002109321805222973510534444565570645729558519721708952184152254947672229858217805325824690504726478796549518859800012913478915683995070521388592626447790719605547209026319327214982521625920802061922362935961073184314644125410021633138248027853043555989550100873110404284124215113929138510224995638019372358256188769806994019845904328593633892572025791289430084985318548457973595122941236212781023671009322061645858196570974093282313396150549781775344259900224010196769280772626425458339606818186768161680756823106639143840291173747418480051506476148016102289188985248588660713089085360012540158055978235552590980778185591737783094478544307943108319975931217619064019920174087591080974339862330202007028577892108481067749125571122198447774942246498010818461850018779747619844524714386247920015271867134095592043045161949085820036385249094838550716533543335742459141373540039250427102631940709625985280008755283960542651900221278152808636006658403952080137430076745788716561683232957700164391892597973439124155732970539737923410040019974567440130209722815960045506001984821152506923507220660378145241449745425519751795923844386049425003714478963206812472217653495735542142740790443086064951298865014165489496410288649416679804650430116278122477370579423257052059837754579789121673656189070957370203408118115031877282973944107150044733481024104459168581680050825052593765273944129805646627831051673841996777863795980962216771328617500953038299143773955935343683505333325686780293703450884450922267031176342704562255035503652560257925883608276716943611479124748111965395747698767726605965227497772323880632042043041228476054573906250127815258673529020077430191538699318386843570955878958371113969286535083069173987539115823021987079154865608904298197456451027363856946885102494949204744235512033581365691384419988630312430921849649676738194022279722487788868294553109539543642775025362985368250526702217297109075678359966233566887740109458383291204977565699265822969938661006780363489262909186087938993621253861946436326817936799703091516787090637793918895093799393146065975773080115349714770172364981802632181024425239123377298171244862177678111555655655835273200144881039196535237785059149860936481385320938357201157959153373796141654941081515557466831801105922197621918674117600256677527946171747805743507099969082827919930981229040561613314138028444469852836284259213785440580901473806703630138040183138562102225890062657210973373188447125433166110813560835474313056512920024531757929855793926299808957984518081709264536887311656787673873906665512489013934897584665006071177951650780333496214871398229100602983991993973258329650586458914928747292091512889970567358738022050186102574078017518530141683600176401243893404410592406960229845724714841634321709124821996944779284835121948622217918855890603912367686626746790672257621772183020864519778502991249159948893989958314616094209728491546059178025699538828572440387464533710831845388740125760790987769552242981551860708150984303103059395919575658066871427253400940240518471926407020988166366373447884792373284421890465525779661431012283771523042572923273505751940490779327836040800811649816914970114445975982167895403788307096082584686238294823274562711037537306860382401929950935510746879316808028668376597695488407695646306483662499924114690253553472939408671294407875594973651083871903467461042313266703840392263098122033887316736153167134851304826983099704517363970307824803296188943236175596413452936775602563991252805057960357508035073455052796740385277868869841658311929074596629904116312044382614508522316235771765111548303579597261493668180983167183990657180171668990212284202693053093734932017961130804059953704793138899629377797675564080845761832097837153681099290298705242317665354740498110568700571046620486892728714466132692209041399713293541539215282496862976048640859099432007881358499135082846174794833318354395021183643151685005642169901238879215923543289918119510755391937863834167448954733227693121744527705662936395120530809943158993714220395477505416367125204291198644044858303122201953556620965096349578636959609771008129633247177434418435378568302505469162721734152487878485362205924004714843158186755924838641074863282189338650405278312938803070573551327995912865257463144846877092143669841776070187403723658930957126009584844710255327056981953535293563882203826192211305607698979757320143022560022046537368410361975500894973973878015654203771629270476615803674262421828247062851849488528827111964733007788679730166713913944678218659239558429766583913134823600908651130138288922053224261217777827275377578937937468798240789670559116914113972844402985916719788707605822098314349995069883720210778760307299901433853087993706907102125112114525665850820201867729536921508091143372447404297732057832205705350199492271025378103957538205603594116632764847021372435682925007028637300237544345646942031904802451149220468268665491303736908747141318507008882350937293955146920629934857673652220114881811577659220650295522343284324704154584296497074714180119565114838208958686549152467702956112142842273406279785907366457547863365796946812138913291868308559763760438636622309695904818116503652176567899564013101817662862609680797079268874880686083568668231484604800858807575890641959815276260784458065982704549611130373500726348390952869619196984578757009910507921447794061812737196334487194169868752414152288076085963334012159442556413266602002516376818850943995588766659546492748401929740171095265201591474680775739152556941158013066349294395501263848164183087361123831942983569612509030957520198495304438156604942754314174120075091117149718255634995608115239844019391584343949776644463762231174475292766700624393881249502428775632298021737305300810002586655504752756097465062033174701280042741967013052382972783387493704487616658255059110825684070599768015964485881838520808375897713389871952567510057060085668083148981919394974207914932941473202615406798710642533245144982809793340821194075528407362809029494384664534529088325696372190072958253509538301818764417912780062249817711342728404038606647308135661797214366170168599376179478621125729269118429217258962723181013439962264694410232368897030216681493493704859511307317058529371574920259034911679158996826044418686028249716220384685450718665418991279423371963229197351562641251660448587794374950878750238318983190576944490433663919881702542630506226259029571172492601170471641418681481680255881989298203587241082599140693958852513572194786518072785336515446904668301614309095699173373226609240054788268736630106940938931722480036487425813870094382859210744088075035971727509868569054725004495843720338079003237921017121755348847779803928496955284776878429126634765856142777116363536925410791918497257548564144080935058645123504796614833283630988110762303775759119053054098814928618682792049025737793189015798251160473888823107949713582350785255132687309959167887022999840747764265368279714105227743770763736708063142371927699216555415718964900725216845174711050246346958838819176019924585138853675751351852454149074070996749316232371441219279470591943493350696853784183197602614144211786519962580287792675207936778247092930240378643687647933718720676166645720070994448288855838736702987500532880523268655555762669195200309688577457630499748338449289135701725634302248799694075790236947719281994883554926880948080418334237472101003679343298239800113129593434541024581771631377798376224476592639320852905781123222158385387171332773445703974395856572645495603140451402305360200403716544931695502754966453436219274117940072195068204234227898125567084075571739380683247116353350356156454569462323029678318158501937504943408383351119787113787963769775198031496977049591347370566495078041149496646733612525750489162511989684256473885393127169320419935969248365698104828076123688809511684911221781816041186464724993715497886562912078155649134644405023928349775303825634008726144115620260616931530817143961915375499684450620738836891512184855237403908105230244082906404380351364944061601898891893763326964601645595445727540899188249547100246530750755876776879579642111319416957022721647867909719993648122886868250188156274813571608431628386886355091252159438516150867796740128163552364173818662015644919588869902515383393707061966258561532597341911914283068238475368353563317046141292715667737806211559604715840848755145023932134958450581484515513173757174607999914017476849779883510821802134918588692392700617379541321897957241111495463383365009395943103736074724042446806856637338423267433259778479125353972276735742523523811207021852138097342828253088260164925329504913577173019626628219533358167867261366107608150495742075883381966123117627003327384801879730713589995928498579467146722493781003429878352759777491454673337957774729299836410019910173756297190122942965225862239198950506035679804134767714648899191285389485507086684140815405294990959526445252026807372429371454288865032426155157476301699546324017606770504548257602499756593425912571025626640969693108314863286822777803617489853139453004916331193455098499854213778559540555850835755939144210117343552497124500012628644176341646607655417212427798587988614179032190735549991931866497802059946884688388579107982476999049289179776864328890780895863110833929179178011364349305036411547443788536944675537817396410266766696238492311758362653138034506479584397849396422050117308067080514008010895430779312901848352783993296483566668423160991698916353722649335441885601359779340031900813319475456354579948305909441150329074941789372640316243733656238261181880900209501856284662021301043548031714307219042388933977939291320351686576163667686997787020410702135176740521190345330028998125007182288604539365292109353350914587756851516823235629208771249323377890682965922537488979417180059575982739952366826173160379480448503562981356904331496682104643434645418360857511609587133843865202200032178276742007852806814133359677283198747798148661566680420170267774939071594917069422638729308773269505648334118638373267846726929135489890425030474293552022882491761654440252774100095113510279322116033722817693724300187834417368581020877401504842838460181448526571700679780466325370791652092619221203413330486229807864715205607337021952202673538378631745598617412206921706771229072648455304688517040583206355911485787297375591545173137686457246376514789264199865570724579581699644369408016279862673476133456195505821275665026458337217345164605614274966385980680349092098548601354757044992631978861563655329963675170746107474814830470065023977233763717527534504932028221765588889452822168252919405716204734768726473415454009183902256310719391993251064927714467041087094185241794868087330370242636940807777545164458259151381651677923821940639187789068241380053472164794773122955394398015140647867559338925695761204158603456746807165413333683792555952258108265824512772334525712896078886916425717611731972425616243361667189580124395797860802170677322459001048572826446574460692876488932733390598652519286716401935566661274523083376267362108616472376829945143948232265734662231828577266672407698220791744472509890330246453271583790928825228126906539966990484861349178813846212901348927792891855732703212289123822133313237655223062102463829581176036372890370845289314314784086598868333781457313216329116199822845895409532539011991150907812587911018859804878644711264227736183013375136163384277641815855873390331003653346548784334966386159632959340287995174380398724675403864494489224119359427936404686026911949051247437790135278495301073961622152552790143313745474879532600623516774345480574441194725682820008296954535567611986949813126134587689583568477794264694021464898514467581295340910765654993449696141958129099290942932358224760990471143367276592449943251808031714896110384772257108866004073817575732585998686558112793738782985540015209426779950357171609312074104754681617850297465648476568534191597101399208915549386671746577209978636514741919607110898022708981359174508977481722490604634904481888058941712099201541799842726735705746474847008594336375522405970247617650636237991629276706850049112093752130553690774779816847746446997400730879223412271578770175518618940837127656309510856606091345496455647045452642945017352107772620632064524489480823951097047074766931649379326256986676606758418712306457491890139187025654837950641342218240738145797377900994934065795700748788915680616232779820463940843944348501994582276874555946380254805147898086467386138940489377218590389397721481110065448290488337596406326277141119403053738850136389189816797717855045216283661224160161065391151605821120479478219976587433435431728696699094443279133606940812180962609337634997455294599296602458658197629647593547492230231381283503724214916831556982816292015752761460654192542142554248717659563430000207426775366632206324126839313294257626330326369119351546018483872325818495645549948533340061730535104742272617418599711348819200057278456962978627630584715706204184429272859887447353487017883091208546957466945594112318505954476052130528711672096889004396181123255792001376074294590486961907873885908814098409964646120930811510883502115516880389489898995605876826551199719091755454492804682322965390826808307404936469730524793594856080756152666823918979232573627561746393123945786912861678911261670830595435893657915840139206296488819406647184917787678485891765545919252983292598603098587319328085262477259917720128160653557237768232909807230337474111203667641126600288485910126885597376901221725228956266152232567098830594355709677175035794486602918713231035819464172926423394651223360754173421765613077186092724855658240013735872697614096258009599848294734872650171494571520238801173595401926774943080818098017776631447173540823332751811363465371487363732226057217247132621328166667636643111890276175349346425619115244392731477210435091022485005105637548566491552996363815386013844922643143573040442005107516211431496233721721626271888121413819983644274221919549183090022673224844325427775182747078954420767993597706465671463989642547173093873362318455419348080700109018160877751103806249033526070786213857445190260888829649932766813525534443545373067288840599044044618346576786238002993979414229175385309839742556129071057066914129134885655228055273623133387144372918462843796221550272572460901699911666038233635718587536734777016095679064877215065108364887559229119410536760055978302427773118232654946167836876094681942280184039886113806968698242918481435681010729606315240930982736370372984373462724610649666936839803910114235728678997216292613539809891785885990538860524149728825319685986542631589647102632210471891138463394756451478098820540518312964070752645857325066631442315048034260491154840864783214141477450941591466508194944576547967277927555877217009627005219858046594720432465440026280679283970996827730982195325082271472316095534362288167521366011085442003218803672247825257153934559004228432423014969620568845204048424129638671164244003719454178156371865133320012405364397955515073028872754367716325037775603896323000972196755566381307558273876420552085450929007787392333624602357373325374978357173180670009843808438148432189648505102450207101514864273740174670452862303740551394892987829701315352316034227655830064549153333719188916807905790268787328891266090151379193095804373009526237048780482911814500818074965081296852679487196804245855968513320256646976965919597019413374359825574109391536959331808965231572130454351037210083209924881674690289235219278323535528728048965057781393657391533939896798362552924913907670268593736272976295212515888546294013714396404918015319310806959836596588610273286700461407995889969194757620919575160339539947596945351192425035421545853872759660886110624624304058981917272373888494937174448541167381780235610154711238007733753469510878918887228533259987336029986170339685306772379057756432541680274438498940834862960036966438136200086608685028620176374706060109285072659861388473460853563671300573330824319117381177872090686960772329455699560637372941125372555640368734087347048751201039441522622161353995106468319597184833012015039822338210994473019062490328055754202952981932936904948616756731641627186381777869601036521855962435636190161873919753591755430749088003627113116350399641285768785914035478952392164322989252107818112513310385671285148952068809013574536562372383530857484705697617590151076382696715933328332096653585728019613363632982031170334050616870155431639237636185439898652814126843138163595125353243167862403460309370325577851139360121016422894937228490555877912507952558289980932787839807156158236144389097346294534835729059157894805360819960574806152964915872631858555970654460455257400583118475026986109831772521868474864329800540681989631485076100146655056538842782493004255665891966741730757254392734154058510849392614351320099252226795404096682918067785696313066616330944614167314862225370001833254050824918479078062315907186694494001823222018600174674539820933270457687369275277254713514322262743414455773250623101962476849278529651464673237634753419192169599305504877469898524166977077332626570211067606895892296597257095416165379659228870449848848163172621724164666171716643011621520118818074981109320059481398955638851800938978148089892756678903330320953649722940019658617188148261024118140382940471947737649660578640680093699408387716026179498495012305878003494405695038904474861776905069392627443776045798652874192595014341434384723190626717861052210527278949501391348090297894063057812446545571030523259152330699648427397604761413362449665389170385290428224683052547584200326731020531938703470993120208428929011183543003640711851023063472476230647628326663766729582813349065781750221651376723246739113774199377580523297148931944127954788274353766483748529133364307606594239656155043098630424349540184210943642491198897097051072242742642092133408980560878919380705983494713688572477466370177016558034968279474774974092624807399222384499186245587600802007861138566963045762601890498680742778506564594595613338249910140298895341868924683033603419419867605864594597697528757778541007830946640513095143565212794452934439857170698011029187461253489427122090000535563921059417846007876018966200376616347867960597931497335190540362601483395735427309415690906904099212435967764064115091402940731598818038669611689605009425881039568309698764827377545522101531750943719995492956074760607875448163476568620697202692840234084410118436592688317630818689144965705999559820254343979120853278291920866435255271274856232867834596867185038410154493217705520823279617532944209723896060255496340953964343178210258654420200787867134039981133715757231255875173413246106808395479476496296228627651550273846778156167240175259952913166915394273760893735735245146333175203223156849072737475659268359465810314745621131768295902013499859726993639783868162113875876975283188481022453115545598526347373992243647285674439685353458600099167087049421442587041246105655945717172226048380225060402392952308293694063228125647498308399125022468152001091207673011774516475826566303880606653967626885950933336295577116349206677471879388148539947956729949656917937249875168115592592737258894730810618228588221687587637687786877016886889091439894440815578777296834707487792233464616683092963021655941084755590811266536704210856706107423899573910349213060777788611968819075418682962217365936561544691160083022742015178245636351382119957024411764533376351301991097557646745787563023949314147472229384682333092014324524108375535375821412959852315346065879607508290438313071921659866019300588279540882450690560346792179174520381066853552115411646208343333229788039791552899539408581178018189962874943260016756195356907080542334528572701183524155358984989863157562623611892249911914511893382310272250825849420682619676945740744261176438787105203030172491933187018292196917066239199900815184158587608811370416983168808805021470673025091493341713938634343114783643667819340073006689730773910407654410080524221608287214965309006786244288606178320274068954636295343503108692962221892388849015704224570104667668425901417220706820538063007030882916872042703274635836002136446167998016671770342209244563042452016764822029982880390445387639964648376699861098184556450528787079420576388278093746605863413906326660508192200763488230062278890891012995983736990843845609968269328637458440196753327901389049001022741544697537711479739382225675874251027395542100409027806246495528534467538691534614815716059089327540834355438496268082050804491741823773089163657916724278853937194397734451516367842101191985604205244875206756335152937118455985180872378178882872756036366328466787488305387441110348520618181278982309715797933803842426058876573934139667122593181198062664150360515078778588535356329967031988325312911605048099082088254035961420521410643080027709680221667099211843449113702447700759186907740153024871020347672291731878090845502598796413313113865253381882789800895386154109331993377462992630416530198770550297591634056755854496883764769498994394650273447225618082463456119023467451497499154714136905398198825082933927216348025182295574174450724965327256146029371431379254296364044660064627682896487097881432299528793109678174261457665948322014281622487738480769633159464140087732102386900132633300526422928440198064368021595598012492970835807612782685889820415414230784189672198393921864451494444268172245894710325874793710606303647381921732738994921206767800210630006652623071360495323014363474580576489572942393013183035028139478782305914944507030925429778053444798667336451607081021000205757722796643032867364337863707025406462614523363533504570626766131295053381264921930358331120231486242743944164059227945957984727244633738791590803001588546564874441937340772514283995973232335292038715954915650631582988763088349928733955417482269201715683124469621015083797902514689300932823164127015960013844819675323251228676502437668132860261281685371035369161801104573467129964397527861347483833642957988697872474736650011393165374104373794843900118748914860300410399518391535138488122037090162983461697248461719142205178462839041404686188869619945492294576543982627880920593271952543016424153344479328392662069867647354390232923539111460025694630321339852544533620392367696591549335388891901715528030486315098269655416282197649043471997891029770018110316217363396209586985097171879860183462456144804746294934080914594909645900087952693417696511201859725877319815970873828897761192563147203009910671332831576155939505172256615052917525294138839939873188467678907659553405499365250800681828164740986814600869486337742026191844637001941174760014345699745784049146405275386683852709042399278125890331378484886640470737698826287770501238632941935296944515481121758906392872420451712196262277071042896646653622574901801935849020367252617196424121133413678405797986530492246190389909870316782547461197658559651236201271767308476428010485769995448533734054727465961502729226301799098827254138901832531865178741675278237876959819320552702948440311344653668129234397910410247032550522092275573203021705627317888718234861026150153472663668843992056525783465407350153469859990032325313793656654789729700306117341482833097730232824856567849334246673779189423732398250908347608067191785097662840252236242933306021053604728807171557240284009495611082139121234479175416078240607464532722624360035888464774887057128597680180540088326778060589406745406258839088682191515763795907853027074692865341133306757048141331080339090648043243310711445120181965733771145153184768279610659575571373926761972088715489785824522470579860533184886828171773992120552134232710928041887850412346853104668407809402953027101683170252798535140425581263546485155688034373516588204540907291402424067563222158644477569948059888018682610177008397998886729373453943462146371003430493291226309769252322385491941722805087232600292955441990643397348680699735575731290694010734584866900280507443781543402404834279405189166677214526853301934463278726998384297982182072335648663172478292522579935632079410488386062115479961291343884094300313724941803901157092536348470166678079323912078428225144343145761942935205014130983325149472419503815920585649482829027714479615328536717151776936955533097054129446092122539524953372337610802949042295122223622390243162679629984825048518156827103775073775420339561699941990513388121702143662242615553454483115435881090268541073409484856078671195983877806412831724781479513629531807490841901044967238855817375078888423857166938307221072720931205679173050248142434662416481592013641020598223545576419564662606047300366175758109598697568588364390733912548945892867382710007299565588017631228188495257174348738944702949808746655364241952753112253488310127937573948776729711154146670541687007902596713918957217219887463287201912668637152169522775145807026239356506244610702025566609928146788908481873175262876813849810249245377261722112147701458584762786890328871217866192715263921635843364057044499847865953476006829305586073755719200682806275924950778781818236005933040504644094513898947461783104015626660388038468763351252722656863358016774446660457481978448498810521455548585784965497591498459510049201988671331445306816770397102991878858864077463200034251320218495023039926696997665951967162734610280028669867968358076422253979614694845440258346088682877205277914162666868670318547189095823733168038528611309380789985596196793354377570997435651716024829646386991445461234974388512998810406205547450192902769236271294971978113980885744307805961143226910079024173017729956089198653274117410512780553371392784859479489050109581718204648222150457814676157585556250989290236283950654685423351459002991585120946911179060796538293641530555163454595116278734275284115972283634408304264364673333883011275384307641325638097516970291677435481316307029473862700973091064898934860756004369252286786637143638281673646032580262150961102149096780843930950990264206398937964382210558350664251172118118100328934904156910141830083142336987879267030016085692345055758724338579138926888288212079045805085355656542146887874441579231086790373957539797164257851446752508216516540947280174857685664517044716340222976357118671447381906176197592257541965742730739940302716952819003530273082482725439461756454130325430462218064937768243568599203578946346321016257944780961878275301937012373525293075181775032646472937237376245017175803403268720982486037188843230598542157716511190290393941235935127181528073876144086756803840443557608735564912304317057516987611048200258314674337058962452603195970730868587610973825037408590939661204255020928239848973896939064751942308572872670355581560582305905367154525845399027033166687414891734100815799450231647303625620228614391077550475719092656442703513187002919218479290597522353904843658418785416935196493715148044668752966619288868194279086473980146997406385766765224837810118950038300849922919914534942840620317301287426254234081793020282373420979698132041265259455073581686989704351004575962020409788935401655642172296483477700073132847961041490476601999711326456053153592845351393064469522956948623304477257732787818155460506181826538865405260655261273556410549122842740788762718921869038029480752641974363501499747451426568313619453634210682482087115619243096342992290663613492357196462844495736045402380918190717815073330812873662433351382361499216234353744210019388371244587191585304853867075156366790756497126070426110130305552748007488241398408889626616715732846509121794964549912499549016994979364946793310633504308316247936919890990725487712466749869539340705024032112443803738092833113893913574917716740864818868877482201806418481313747347328035108130528464769127311908226874069321756574279488726001231770043109307959407472230945053270042033859707907926392022656543831732338033259392420038295468867928320317494211506763323496998156085483226896027130411072612812543144003170689785978317294669837828570741348127990311461629191802882349803011742535430948413499229454151358753807356647472633056703675064764276448201916047302562113045602943737079729552802819240351140331200582496763986037744391666498999240588295608418019399912001846426186873239405849619450832513188391987192443005723951490086135098781889937332620616097542102574219256745001812669402923336656594973637005234503415527382601181333619861341557386464106992861732957710492508282060035308295502380144594122862691713795874657534933918487217273226613711733529369143497605181455284844177588932458528010334894598269314190711035730216816095878746988057594252421079802214943843387140154377650448660381438626167632829466455978062109653119400828441543116360233416447927457534700264025388864709713334839661830894134813897761402646925066245626720173248368111585462735212037064062211014206700872934015792642313515822799775405328073939392267960199277768665754910145189427881890162487855128837512471946063808010272114178989541106708144721645737789347638981443225278844649396517508338053194060672028330955725183791589083842109606761944846474428037405014643708186541240213295900532930359134966398899337790249456363472415217582435682745960330670582270294711848111897192863051495446967318024459960231497733162743891975890713781567683937538924828986141798948599186317458912725362304817671294493266594570444750842972795311871758649372429028870764879990259619274155196191390106708766101380969769681088523332617379177849798529608487926175844969272393286834477754620142594761561666592286499087679303320798294408537627856443080030320423721672885645862213822144544429691160029742353117606324603664945421743472655864241926829982009216380702118015137347573895898995998773155046050643405757446757492412577158835628864554858835731030740398904555645616300686919546679955864038823846373184841350987968946864182703478765681250548307382275226691669123623849341307269450116843847576339704965775671687522779406590479666275661703420436855275211169441976477384661085641238927786822602144812933692913777870793178808344493091932623364801398265313862770929715952112078457731846173184089753289867297565925313773875940414194353390147811004386286309581245494618446295225359840154372419220172161940131306289214860208665175159700334011474992546072297906634482978117333271455050548277912521028279686771387089256197032902964321911984948873672269281230879995946853362111945220361354904872729026996283847790002250282873376569073282292451782291655164982323820661829426753655442427777313577855490088996386567131642888575321134916391885153730711231301624805228852822538841625822734707942375734959496566639556382538816703169020248083459303102611688213158697052719102971323768164403655488074490006077722288519007263484701336468242614087847866633089779525626836646568700155410464091530850363325825741292154876028989674573463393024366577636753586268897574491810124055473888198979364695120912791546971760196056343722043779470763895509980620922267040974575458028820038719617635124946924710891741007683184678641023479251582517337972957774565192161218430794450904514023211465380275597437223241027159050468049777523905730923423044282799491918369392471567382079760215470387083536034325579969401915546690261874518681168737771839294073179444345431304962981652967381446797754437903746098419832946795902456785398157308764971167861832046423208190781360554045155207610223106281634579271863462151987308567045624446081337145672522955227396765805664871334907685131142127113777913138530309737145532735755308901248781238518442134537020126858900208624271261583815473945085085755220872146278987476369327773871020907133987306176595777456612040887024100683303088922812475755461293629182586803167474761330276205058787845738432014551301419109451565829649507799521801267949458685258434322510344419687839160964595918794952808199077785677506819769137299636459048477997738779915231103958001275381201617124462765509569670696741426737057510156653393186084081613994475902371221090628922134826508814357092749526357636944678964113835675459450046225455389330928336925461001832251087004125029631495808828941039632198305112451226284616755662405160260378746425850816874280320569960565719995463429422840501820116585890287870140792164270394975398343763972866272452183742616617419667133939978588733446878439116723480671272028706481058589592277445127944472250406735080218443592276318123981619002899405446696224232393991626637962978883911186112599220819797922367581986836412686339566103745322048868428598706491519779983169253067921453610282140314057815458931364540253548795355520369851984918435323913153038225350399697262572319558496153634582473242573344823951130780172513346041088008059902665503896957323783497809236032741770846874544861808701830607591728477662792040687376334183586077242484026037630800531229458009249954822695516587109283518556578766394028514437641979620895147459130148453518960806680861045697291854291269742174136195650215847298323532118892270955704353448291455916565589586446337199150190282519251171341786965240471148839323832511586440684395567158976388310013312867827179901546097414771738655100143058314656911324334352001705236401208928790839725505887196119915013469784695578462316055897315627832652478097449452968840930583278499996462926350193310349034619750709805510848443876358340757326362672654141741465991065025160310421166991332045838303923768819755603812446422044301465437459714509067281628501813673366910135576603964336820799984110507091745713639886141685825200002169508638550490495634692888788276548388445485228394225533833106444525489293893666336071931715060098607182156465899981184687281834696011603091429521110035579787431499252200865559192444692178455199358923298172729809623037049148252222193893171263048908999021371781321734475854514185733097830463922137901520541086560457398297286562792011996805499803455137764106440702279807711575369781067198367866947102840925467000408681954896210192164531942377835153536649413066622912914308773482925994297558853490430594174390803112516358591000797746153070268783633152304613408657178596480361307252580661297937365651298528389508548812924216456298082521080519107150747225703634578327752055398285168730377863879865997968441546842499672082238576599247923610149293249447809543955952114236722626228513629725856689836887683556161802083774321963941846808697182428270580670199331376979031358302273262762809693324420298379518835842757418875026369968678775626133817580600942376176780254981656705777671541966610224236892325029417696458988277965866423542413726413419890897963741419307577713799563170656561916634600395791025332593177336971733565542864763863935475519656883279923215914630077800158921411253928417180555622678008020314367435869461051057693034999853551656223552421304911931381278885228354790592922808318113046525890392951166002993250710549137047910871736470221745910689861689544346865279356807992649470637048367746595738951571585552359659370797676031830346485033426375392212372676445264156394809879039983199684550606045234776745150499830837335654341075098594496200921970738699579082649437613946241647001945686954644103243236531512270424176414962120212496252804258682713449856561638958574742319005357803528729213550758442879746299423562822411735141569017071657643674150663419243099074387235914245088119451466859118506910839556446891246310909124189263754063791090857303311255440253847034337101192764812201304659854288363532079698018109261182198947014222369407055210687766183305966745243269933768533514729569420794715691611402044841610200740721542004647592267940673339900074211972175532946141858513101924403100320634471292722286928593998230789642720150287240096815022804540890551985293513659382724099593119234633650398477535209074016755240742228158328836676150608346449663725714081384068396290110905646270356522354789962464726496376393577631870446084609760255966786623984746719234134062733526906061675639229537231745961574566666083592292122422337026948351475825493085256024771800798624870043916296730545841146732948169271259428854798909003659088317440284545822274576315771861217195462696911905923434994143981802034194668963079590580321222844205305564222654373440597828342291395377467114079271665765630113699959085803724607846420053196341482621769616116268876579884687943789253415281756215360525845107887201348556241057609702319674680396231279268245572723075715709132842075693892846436459575532031235632691356053305559027680158716723194248943323406230740708873010091912079621292624450174889129956196286159171732973396787243912501925755766084104840595661186980487241278392984093981574237895903834239583564723393873278599163371830466040368188380331902294422226579134894443920772644115062813570497479998004908361037201213643635459564466727978862080628679884319825381223484844445139312318189550339274975938132428272033321767769993290460627581032936184456996350178776044709116446253604201917189223160434604604792942791933622950106144652162658742612432901430020620239324098858592963799867459638026497077636976621305090467052318166365376765418144945659419631719307975835409230199572195725346243534751788214893125885333556859299266189857902707719593832384112462095208370310008063243257450819298213198432680450692948551592828796860156060806924095635095682167958721844799157412182095523272675876875837527353402996611139734819213447748350668588380559158485089026206145155712828480801794363938114763168208636122855127274008259902007849376751834512509495654479959894640136772625409791775264460472054123354189472316686042148542831616094666745966361537351871083705157263675970943806531352634656117343025050147153662852674471612437739572609157412404823585869214681573575693193980218337006972793890609068128067742770047278008146380872542798821582253284813213190381849511562133715425482290850337495092688863959602677893879215149131640789111182137933259040106443931192178863644779025731196095562666510058748184290048109238126117489664416563862984596002099961395462933303916103128372725340601363102969480261850800568301160139198705362220427246359676115548245317386508432230476924838450720563399395036232457015582226683296959068360854038509013432615867933576998859200376918594136643330315257365561279226369456097887640601901386575802470840750338216470535150556511863683855685632383426986319615254515858516921560212161811151708364334779883328387071243207728071377763414390611947578485527263013744571612694204866852422513270139091536696051835616150631655123501568649730512202320612797681374013017236155465633019154102783054301956742123048499043807002641058759335064542622583849778128374478083200346744838547796936975630107383892998293925634693201654889524916951858406721295087196033366043510994565633146558426584889856104844674227939827199052167665374432920973548505859760423789563047705967908096362357870656947387945338957676083304831620438617457244828770119195323497555537017505639385393910844372615202147223570830190369962172877749025427198260973968197170948511495011803700603657710670500663616653085091012671831635747902376545620355564876594460411414261924198588034488254779623345076291162736159609772929638471989482631253026537834580487492282373336346645413939384605713992313257291665913481510507058698241393682357682098980043782423173392037277076554391757822695948704009599983838708403548760132445603428783771049860299645369069537175646606418805998550866241310188962124585812861819579076763158251589597143969070414630022833737679998152493082304073982369485518649154783091388989332927093024315424092022609172190041904983028021441968091982677436858813262144335670442493098363186075514215258411786585262784403312068944586086891202313671671924359885867064604562710725287234020485172604380378445837439436478758008768029737499567077220671566210662345636678566857541361394917272340154763557881348768402002176660268502687237438452672334942497399430297088313023143302724646976996288330161452911646400312618791095386173247898346914958149827847251120502858613755263216539823088243070524965166028561805018295154385596638866692745190957822095112387754130878587697115720672800170567031075988597320105184200681663829994733999443011243162297765101761674899122092022171800479270476839006160587006280827846142052468344666157513430766313775152014239282846051895197342431215435653321227509086430337880955452354487242620609263309773621701489483409761401636372130741033767253402658496089675812702922341035252106211927448089598163266217155677752092921360716712762760223240721331713213852687806397935700182517844654305648595084472688055738386289520534283102902784032666853396439475146511043619375659320150107742077996641139000382956677315127217408989170539355072015731173344866454031240859618102963689195550401733342948872345832046239332411159354311480378560548022452656751764994970855271948611001999968014991261419484766190703003021879082346083161024611376320389465499943395046185355224703910567756128548646123729455575034498397380875572005380565537250715392208043412008937848229489745552644456886149863416150429786394487416567964707450150804316180554200796194697407715824017571056593208485689247537543800369590561181717491256603375606255715505287758901728162276435255932119364830145082169840640687182041677820509741987839883873326013566853363561261026436749239325190010215434772653608001520144356242667078268146473474949677148775003378644581411933191435456146965040531503965580498162951322774465851039372962699299942696054885332196701679366596518122690203737576999802649580304387768813447298082715282535722741916861055486820417258443382981808576333967647518558354096038409141737491904026514464236913928548927049815965123661466665183714606480309659086915773168363222797916208201297538761457794791121388169793415949527141235190313178570471450790900972501652021486269366654125274505954988651778016687317039803192728793268919191395321286539847587183298007323491616543594030652979074561229267148451223561278769684995994162693216057315729659918295688679769254946948273616163862572919292117449504873647194849817106909232356247138453946440800404346807350786868806455148375534076174848833615025076240221929589069145252332548979584085861601272059594194718499469461711013313172234041729431967149875861028940814720134897804608921395808139023323926695142324305352874650180620460671151140126145200129275415360925441860391084976366739366251979649467788842762805251510193857540164348422881895698201514049255359311877073696990863488685780044542951122408829760655936891537792488583498398868861642491486106075776424428805286943293390618608174653550310190918758053157021857253543407295509738452184964175621739168288020832163421233592502713486655882561305947100923949317381318671969195585369628861791843624749841227859937588291615534704293358695188435437958967163969918128114351713048603404102736538702370716038560199839958437700176500083019226842081623759460979093356230273146569732708628595943012201663590421776026458041531497993783805139462809767781951042306698835137566269440396531961734216330660032770434228907711367771914794867380113945881535551144659745458241211401166723696596855126474015208467256945156572372781657835587753139679973948815511379010014628231484459011678030827696075019226104194023735826099719102282535473916810966387776624325345993570618985514635979719106140772731051640121873709933613150689832182120796243114121525359122508213655399599486967063694103716924520898236391308739695831539618742099895268733837146533850103352731739122580498122432028644765989387641397659886077473459403769556704781051224945720429124157628418112660792785484035252622154978387708475953525261156478792423755192055819102751593226546201690726412330770224847767346236001420100045416630977097913922011006954639017578027294139198233451050541252911193836111242967984581355135920444216962054995550724655355960579705184718847216082354738781957582523234098683148836870202499477639805068430476285405509292469653319142767880408984004286094327264337405136680453567607363245625506019457042785553707817928345581220901599495968930526372277445664984100721061707995493046514367090386772672924476960288650653490176219159376206855515135991138990503362426338460974141992735057540343720058146207261172852296221573070933519652862051687142270608596449629444433127188560429376410567870394943871466583954965816368456065274044454716617012970445714248729237717193950238946739093686633029884618401955561200689800161564395406884990426735783773878893545778496147354000082272890900598649460638380651122711519306441701747630462521779373992226870088166889727319157103653740019558110668417030880032654002260282769369693381169313952587170131878299941810732838472116565459951305870958732835276741720124509252642310494633342902959773334111145528725711945930861658249957894401227505337496364027033284494665773699770271604785466457580122531549152315659675410606228920883034622591370824172668698678295569586933832914730700103265338420593477180290816905669498734656987451618170382055508375128936270270290088389448828938456458668938777083825794167939820980955027800964418492549852710348758158396839377606449058318836724562800464989304129492992136380027277477366059844766621832209070021993023326686651653850900791665489777091448701233108611445019631552652674540368840085273783318371588635745802142733065017353820990743230205312853955006360484573438593085808626014901141216978716008502834662648068964516595818708535619817639410815464363654107304711833144891507221308063191418615900318398899149824286799868386793650041979196262135976107598286141587116076541941698656104891343851670491525465054229144708854254963746091524765354898026645996208571678599571186909568810296328612569114519929982434602859092822570693213034858013053139243753240828718041430514911336611031650964928286854133947439248658732769113401483734041726643512780355013134944470621321185084426241895488161353928508792713960102221750174096977332320203321861932644166206140103958189685679028182015520790468076483366242792187559844852162908180860535164791475303030779587015509235619783677974064656386493531778492680202380801525750264665658359175033771956186890531971177484556248886144817740835275461212043635954127661990781988960313542769359558815893053754871446596577191849925603671236007883293689792863812468289294958730049574908479685283632281220253546886731880919605769311493630874276461536374512541967520528286880218845041826109398476232223812371616890253694954839280977814923281432670098489205365597093576487950942989002772434307783635369790109248411412355172298385925747330538045747535982169394420135568558252586136006474707389665029373164940943753367083242295861348708771478466634232315565047735943534279062068856232300862887475609254351217280876523373593022686976631026095711174683915512768279581682527753773148673721519096831417523305896516584115230138820545807721788196233699217751646123301691253244241585943163996644279963907466570990079691708543068264866630412530090056430836058399828280386123951673575956088423836826211361328571724402394082529397495651822884645481241654681176779289192667061432808381173402974522501834138005267853614563025993382066238271517316495514163018085633198159771519413293870737583864318880095712449573864644705976832525091507823666771422804149461671259748379515245509800612844889285678226424957780353070701114438858651837369862116339415870006684644591452380749311514102973350941990448865994865946085947969224744925636962364780995385019888525890136402855557980529708974836121245240612521834253786481612012679478831856825588378560008462030903833384349717495666573082546325485087386144585404026892734221023380946100441461763477088008925851759834288483093195983621762477414214151115621392083458945826620462386239277956446264699085019264383849882747069610725357641859182187560251385148619928818654406225117226703937625687672632193089485108399366896263001361771432565593957562684067338617654805723823715178382144524722064953242834433868638534821893720536378050364200462641030155158745191625887196809189067333043965962870983666206733908150444895986110579380811353007231810439189197687715852311555420407186881459053785220551072928419313982986816147394364530704258735806838959598978960632261194045199615842025471710911240857656489807185649196014408598125579173365306758057376298546900373440703875856516439853825022047444470220714129035384215440365528218949296689840306215971658185236124202991502742681459543178404304588392294296433090903177379608398315967021239042637406381431517114060581327329089784452931198110663957712151385612509400863247278227983792057579534692907024594018695921746154740417361310236407039365000218083090326533099045613765379613947572180789819873736787321587626426076318654391923417367916680402220943958978211982209605777112805433607184863901410721905097409389873266410092605055094867459854925635941174579052039058105464646254199556286267954915980673219183448809519510392962024402240623490213162443267457383468161610868108278181666787451906399949005073661428422033069382326593657891217146470095343565647411643624058415461158029186605938791247879014340500857712075186301825316101757530364171745904224861567682855894141638123841458157576770736189021108774209707357883128636992537293192009412010016814151195765254708902062437834683427916497201018554060563482674567936960634910771429922766477512478859847014725031458733269790482527873484127755149304797123004049634278498159840361917145130438659591980134151191688650698057821613740354364108925085922372379493147680124446939628810323165403958464778936953469779179212046807388981501342317929122941180505786116630701681113689852888182535059390579611721350596157680514326196555678535291955708292239449880225145171145888607932904677716313969969336498157511307510918232725222472651479572974408270262806717922401806052125062106991325285472623560530468861827262555392166263071048198075012097349768927809593694619880821533195699612940423628876708497841500233584309744387836376533917894533845390061117133277174052642243811333389485745970446190533724415395058064933464163109636773873734697130520932676900151679575794992441049426785111638492931695123380417843703944040654480412419016329973303198226146898578442762955413310621085318409532801015969049003812906335550774745693855466846327504318020259476877275693105590952907399668053003625820429976987452546326346606972550599626417144210757475605210159784899246299554857318570924977181054027217796120138515375002071863119913254229170057000145830938162556116062739355797148098230983062347627866187521540434370418835552217874930574200342122576807985347644373912932558700026937333118291051572853264266203198222644292613261849544413568923719068334627724796064788918179496732731219187426479898747665913593200829099481172172427131473253516639705958968253903639108027892845927125644850430376533489015534567370393352472446730259443750645366029013697111015799355010918738072341221767346541887461546744897743341806147956677840958831914566720310338135377030189524754789036435661329268273869688126123877830362963819487938103807610592565165280055263753036666496812589610727531846868523784671112767706810205420318037175466012991246703630698642160397101774765714550999550721480220706989747085180218627802385707773493804350243516691335312392209394144966544676623790860604222860114778199015910752837331837381101353043128239402152363623026067743531326086589911228950121995208840012275013471737455986967896081701110750469265739163437149247436934435654594136449366408218153247051183588258703541682474659890622403677124746009601773140810927538699730385548094856733663946309942366468084658073041059777832843095139298308446964920636307083700067050550023731473513732367672431999672397331628753308363786988581480310859770247659655790884942841786114561627486840847299973765047194079926446374436997368181270240802372030501509591448039460386018182635418447395122695657263709344949114268089986161078154523499598572632692725427052846504138208945286102764161765013312724840407021383749205057392528417241505370847706705237989804040669503902213109064722873297591576657521511735091865217218760400737556795415796881926608744223043128238423447517792731562475946110943934678796895061675732261390552560313670495161755784272276552802438711065917959389826512908346615438645656944670623742463983891751775089989314153608787064639125972262051171446961232997850531975948763126909519429414701327822173120340954364661956955207737806359080307487413934829077635488332383912142176058842709539124299260031941914807567207560052644864824241578529079999038240013134198786539464363578470913223429366304352100549304108682321638312063906790925514480118502070872591750589988213517043539739228219107813542176404330674429499943757472801852527828200369461742568449952496161895318571301607967660556642467939817530731384739996647274778578661030002670831833268962198687133325826322467274135995207947343304046986781638669111261193779125726258691844585214656553115685268594942798035090584293540468897569307777025819533560510930919445596825987661721308581731056619092178901564972555055626098986350869258604337212876465438822721505845007801395575148892845417184539624399021337652350512863044444109321593406677276582388237841774055578055807800766828442683129931276281609794560273885078616223162700319476129527567565760276957998120534219199640497741936347135662296861983269494499340964084014845282516260801870543478204153398664882349557850607297296011249597909808458877743865909519703925097626603172162432512111909464082132544629847435777478725509211702122190621652903545834050021880156005672503748476467945107039304833620827935767885900751020888878125972501612102669854941623530911279250055440058352095767004094614199008424941101319799470773503995551094697638814309740710560869633934982505194636558589068812337035405278870031308111707334234852221230157723871927080082970551757121319573244422878748822629147895932513566846184901295910619121445920769085161323164166039898634676948718915541517047420715294265548127893593144223147892997841332085044435546763982219656182782081822097949185522310675838825113398097900361352863710353261008878453766565667648728146332936819140072794313012539319294993334208642402297673141776656910853824097132491994293510663055467038038519916762532163898606097082994730967081744826582479822319294639497178855392271321733102021081983450512778539255504750280439213907528718284805582046695020808266130003281888032300477014466572349852221422654674013168000337363665228371568886108875720465865294442432309474056697108047533925773078239739576643974000246381971089505726982064134966909533179014799718056808336351866470401143251142747824191518987084686113601213220515833024288791430007767889944290471999038533187968553422666087357982105286379706074993852387764907888962264244006665653429812146343172848809220373725616602294107343743599163948711352858161937627621250371574029449896141710524092221739581954669144720289749053375879120302266961503446975049950230054768460622524077513179700093922434690516505869078178303949474875378052949113077509441798160080743549239771201685732950905863337871755807440996092631671190872682272001344232707777527704719036805687610267774691864666777334654461324036307637676063375768605820105218250069905128162207060650293487505897937209936864662381952690684453774827294036141211914702530827533165602617461832210599771671736687161429263725933345275627568191206196386389281796149245904756415014504464702422267770087252998608456749899173229016547633992548611662389299961964750561714167411410386949180039311021274083047531438091545307682513043870160551252346546563746910324881848009355232668429965482659313937482943574170222237854507849630443712813464873450894906129366414394292615629812793150701604774058110668298741748465718476753933554404204507883612113540340008514015923966072547635090425796133846879734444032376230660743106531749511070018269827359050615032010077087875201111109346973379844337568162522610669631869425162409185800981849427954928663447501644251815191676234051091306355600674505245470373837392929347796243260238404581607829623704707164887096016544219426178517557145487991176411728998388314114908316403251159589606868022798327322471333598569224680914720069937350042298087826898467723406170430599332721002038406802121702856456400941198174177110680349406171118473052859432307411516053515504144322078353069232387780126176359224323067020965547966523746230546652169521537432083190409951762606402155987045719782685112678084363735919802621571158157500190817599791968897306373834230513137377147828332036846655330874415713811144597282917919626241484004361729257930676332613577088693987044699213123257605473076933818741155461438907245525938294628372075847563311627994702749246992876836549544734045831463425112827524068171673168961951057292962104756133296524834717476084288484377413448361144731592383950133458531615751229916612233997648937974165473341105766802799623199902971325752888026626286043701030756312033614859528660153540765030690998922314669637526630774816161960579739467771753923776676831563951795558669834171053087101184410681825045630165265177749213053982968958388526831524026052352678996736511677558623328862940854037309060549075195335538180625204613687974098998604196329449417247096454945026328419168090323473455374878652682901969973375305577418683281773493487819233277107706474362821218200423429514437738194113845098537669339681585306828396193085605404167391352799836108380895870479800166490035024709026778225353749344001068359768167525235045479981651698523862919001515818907532805472638461008464322942576793054890462441128724988760671902806924191774588914976075129219134177913125525185533733202361520240240883718588358466374280569752296938473525547724330798650247739810051750659473127628406897886522581189586408027909011201100551929530653335892035117799077308218259560497465319903319449370914083925000859876947880825367579136327904501163305046531679248265044150147857880776788959612851620941093792357692903839437269297802411927987465593253740386464359267504612710260609963642433976543540104832456562939296037960824611133427568777248514426352789556869194922590505308815719645147237763038817199645327414584251077722848359633543908114545049980133499654038761135303750580219861865273204247116755002192984983522626262544432474959497363787900725346051088408708911173448020343881822199002084595080164322553971537308330281401235040695833251259081865536272726608949225094185625914825882170393808209863430809336434564518314254517162675452671834020239000365410265490146991980000328080925021509562974809791795694554697990800712803925584352608276983468836245677058107744269008008283314514318615189291640501970810621209000723179656995843706834558568143789037705287856881398319185114588110906440700554260059635827404648842843531220395092809695851523451975789600851326726791709309301056308203973375433217939474477441627946021157144912774547066533979338153500447794178366133325165813573279997828999914840774726442634110173665466784349391998476366266459884773215529318964466944998438088409405444759182728137287263528160258429524293280819008352436231865624861285442991398205632926009374938659043222374499831181019952326104924108466108059294601162282952896698084878395203680594274899511546341271207761472878409172949968252694055269947728322467756796636281275837055036770572026170220015341252720416669604231628285848977446885765991721493332191249556298546639914589602320254605105653720164966154408228381112670814557024774738215283292731782828834958575524210528819060199224527495266337248747429332890814367993614809490109509050239167145802690168411871752277205926636470939148564489349828025879356801164027451490208584927879292290786982733743684524520006726510675639775209494184865693173054638802341130625784420511524077992303540856590181366251440619228473724949883551020747431802842384566164809934755542207665502198110891567507394406007260657498935796687996106674223878876593850793417497481039226339360099380016104716135419213364877468910461794758877621394525648910592575759577119741763379200250765936016742519498513928313776138329145409658280713254231923768384339515761156275724495571924490308484442355182098893519340331737403583327187886710411444020192415075556199103383365538108566259942086338812926368219825109628630211334348539069468902749030074967338234091319135574939450814710056976198010302799282708174067583892711965206609229963112735873157200173032083427705761862271252914352378457074023852750784746932437025223792518457915824382817658045108208059230750724893894101410642202485874393708166715750022677649269552558742326038348408588102430980973714225689273007158810351420564096348088009532786973550516237875094525459296077439262157470157266646462844286432892245708704045620451805106419548767741321156547679360633697548512707834060062606686324526942122906885865305568297087585115580632160935192462063571826307329848887965273895526811311493251882572370322217626487353052219899904630263325481773628297758767387747279128026686250624562693884833416838925753465937474974158273410126263464218476707871060031571925780154216031592048670244995227272841948862533849193149337103966582226797503211360080034723336435966164565913269673078771951231298976755726838087519433651701020571445411354147796577027022947694700700947121051325719123430460269662838836525597151223211461918593030147581387120502037951887095374018734193259669032263314491253219848587349951896136667635112666020353292689342138459708211348839922333296997655296603434181345810653512025786805559453240495411612040802803706728392623614677887486241908373496280286147717889836084492825392363929843580491613988269430785598826932978306524244019351080423974895400884879691996447150246902862780513421640573820506988956133082379146573121113123466681956019948302539368561781228545131495245485775079688098431096631265955919564987283482897170396978101232119701194597457844345629449729745086799855873419718196515828662641831091349939517115571190055541083962490516657875818324445696482285274818484132937625717616466962856902848472673222184206326343593926454010071233063636717453106182770227730782333388949811969393330967481091065569950404477208402898277960434807414442799231260603591701127462684101614429605353247588941053794047379325335786793453657085949368431374568017080350659021573347822126462991890295320180153148727946508527590940219366716484023311672002762186140906861322825308591936277222913847411102152158872427032335117813043076453274326953028119004845905762431024806767779812291620313390972626798625589923531290362016293606772137024154850719644379220769685827302056943913483073525536372346687602487416000746914682815241298571426246536279035203260726992220181534957573227137962069293970990126860272649319870970501333962732067069229966173109463541417466455674246823036561129846873147858409384522360454507213228941986798059764589754242492803033043984578269195996867263517679857423548993086081782114128527088639633487272926837136970526332075547124637666834382624086146698817586195840600919245141328654013614293333064761507558442495337843989705280190851380536786713754286413751670940923888119873370279355765170575306419552367038759819048575224364221036975628476384381629875488655440188381975684234822866037066215260922254232349902433400089109516322341711309963346455889664929261193407788344743556913704600454467217106970431752860491175476544590998834811729243175305401042164957963833793967882668867970755133549227737827053107806499146053999252853092694444213509926268156845078400833711686449282725614275759368191335813766738816824605884941828754408372942828525131052592817571096007949259345017739595538137289331436454450808412993201175524124884451753858237805972008860820153798041814683235710292214054164859421306485142645747536905114581545023117881405928933301689392103353487071718486993330424106720960603342968899877894848442356194380116192998905036155998696141542467630866619226117106243279116572164265985669317374762049263765216387309082490469485789408626570586224211955607187543133827624916453523071167093360687605826000686269152427803668137589486988956440362174594121733148879859598309799868929704001682674861596823836276537912656190645097156441655603306480265972554819562956664488873665265372517392055378803630231970002177515654463480478515365000678476023744953744105482054534084945586370798642292286401922982810440057539541825750044850313658499484065141631440549668512376082916501173226058471408667347236782359301679142605681072923489289569791135773110854903773285625964086907262016848400779266538799357619138372063142099859652003843025476097316455013424017401514921664436995051695243869456914791408626800726933523894289376258906423033555873791727640223665769155161222991762084226857729862860581105605744160583957418064864117092509771696089798613381023132261046293950256300478763933208759345575481903894217773926642030427889506856397391183110871334528440431706490320685553884265600779948122223721700518393664404131026938109608146124326614417818365051582404631498614526049505298732799465863612878202076077871559436312544096172854859224929930942589688932165881227049111018695752122972390101343005182338869229601374502527820147388873920261083021321412890485318208722615818803337702809826419627734007198561714683828919759141640357575285125267321324337262312565321494406002766551811166821380205482119390129817244977962415391262670372023315294221999131491444581070520985622970996665641140216253731469027219866829199873710180833006427456015078277725889651061316246137057123309284700592040848323362421166186604194423208560385054482711938548886277489157734592293013060181375586977031692810840872761147861723783358370827547358044866577561019050562285856587838436835265720927121178813650486957356931516159698346250549951564497763694871442990683139237400696983062065701719688750409686242500024646576769280518884121431183154590963157706683125464517560954243047674899077914822643589326032310437392418148932886809333426886301829093309796472610509824692941261565894973980869402903567227387179601527327721223071859974405070700338840278717463997061268975258203361492288314778215234729967355421052884795890413072867328650721807559511911901165356361393880032604641674293981357262892800680059846384463935207914152613847901936281455333464118896182276046882327982453221380959992488825375923241080666931282563101382533367771720549991340620969138746521109376827609355759621224086760811410218042216567518298256895671631823157680766730562688662612863083718482286479350351744618742876612280244075633936661485241598546165976468053304301451238289687615813033321105760876052848988972451956945150407634573970583914454256692084253579226730746628779464748045103667802396925849258477654857799644696886553459830558730832744589221681746346443354295548436778487137235244116109688977977866072716235466914005887476071962189182279338071013445172618714934301849167828056751738510541815524718833070382448357973513251626867163811027100091150791599185670164022476248676850299128903495425089288469913154849445244175432354655391055348818011835158878023159320199500664289100639195616492461040408933940582165365467922939663583403967597844558098052754156560728237134145162078080527856959740435228288764113636723440630596849792485446702074337020839430841174950782885852897817245590937729485558668669852134154580003240175061700372337946859056137209707731376737665298105445569717896116001665675665534600377126593643180032277554275921075400523605205932760184516325517753256077319126992840471338037343664230535832957492567063490837436330814812167749190613299293711429382374814813384556618308971673784649494053006292532784075286184225678762176473590840663713680953893103966949416765970627358392520128504625042682476055350485119334631888608998778170685126527316937881103199534699198227767572310758954783703523486533791405318480273743813987986444806614044694341918016149231027803052550797462907689172422628641321422258527929161659108992559559339728863467085129278860056878977134148504435366585386863642718355641925650109780038046757603255421617660613219924917921115921612451098300190343145764062757724062512020643341025471486837439911621993490644581549708646463588992389065097865413965444215572720465030830704241045895170863955250966681528408691855261765124286774774962639062933030807165506581932892388900182930069944098222853383747164733127035049928886650101320929556938398988335183757006763590113985398675159555343041903089633591519171796790239765348124193729987860238723993905838920103847219656680792631408173115865861625129748882031447259863011699871166073511835215975585091876581984612779670890251362730529667639596855639850460686808114697831182842000339144085849471132945600351029958466722945882543455524414277466974650838741435815041072804288009842944174513365219998725621368748751321200688923923825523685324171317734691060847075376699590327954778254284668379457997801228167784745841532152174004322919625766720149401456980696717078985692906568562470349010965255141830917774297949825780489592735228252947600430588971321415889155545662499381966617584321216018400989079603278695896631948048242376274930800644613852706715912532456298433466781726324011064537904088547645752869384755564308499762877035832365356126138104277651183752292755822979067128759741249002490170379656906630319126979364996071877906798435423129711433986846574052888892132200456505438200251474985945751794311394800113671027270054748858140632364167310988948492055749169348579492840382591068549407591145251546704516893176147143565378567959620560345957693318789052926533208272967238087196269567383087542089200204171293578033037696337793100771589892064174933953366813041467167015406807166611555451670947421404217428741014597253776725764958465565073689922532859538173767327662417558103496890682677204136403186768359636776081843161864407129793067239459928612316802762944900368760687464931672247600554737841324599566191506024706793637552521016735457457909802566561589951089237785083865996886151532151954095258871894050792892154947857120991354364842614739169714052749474353170621743264692310084949540502250389694596381438426609057685264998876961929872804860917876015486487467617091495578314372079583963760123309531745270284820925554474311382203532657846567546309751410790461666147901268506189664746853199905275855113027280140668278425449893616301926130570939939011244559443474176001774038482049548767902987705487638270924439594323017130950579029439061459176843015948802457516941921453302696277516364746977519940984054747704298469556501950677780032660409966995626303446799944451801298930125192313598174401487608823856826030449651959001332266109061547346859639792785150932681649943320501879467585109690940919403993848185925264702638479828331645553617505365631328383187064798327445805198445770322065729477575706352757113627852459308308187271318166804841637701383557442792904053282068683443660752858349359641027608833872924354194138505954813496423635522652816416510361713390419480571355903732179449204423057905921559232328501612730083018371208275895313296642248753164445694225409148982467356681922604742679480463785641678095360892398232977151797101380552979361694797729470101729804937934263007049207952343101252891171724513116757535014922388592889340053352723609800497993581165828851879688326814928956048977869482507886566866315021774931600486598659919894527330213919497713249825167004917294625779807758960272783500092540547797874748606293101853213017750333888183777580953844990537132042176350674700100173544001512627944303923179078266429977293056901199602881177899159303283056606430780855282821882686177225155322719400236411012788611849647163581549824530400512988510490381630773156017652991664897594965901477863520757057046685823631612594292047138171354651429089108810472160243060915976855333410629800126542004720154705103122715380729380278137845830736597594865190587680298015047107080725454410102144441850787609010894631256477716304226523796248222081283621986383799794781378463203668931904181387813876727645835084166501580451626912828472101015152029998869975727513387558609249347425970317686807264269055166118590049836893375859463538692746756965583601296957791117347749428101089114138659028244274830475892334794198551747365696681654322828902321657180171862493649298026777414356507285075833014694414053320967409862442148756807410003222241627351817116430603034213296623491029089387405132923644630891420779272776941501833919027530165228975495425512946151210774060110977657856660317748171094920733375143321743422071827271298666877489551745051563756826442458750832785249981679222285866675042342217216662839649763803930550271979118992022278340258656545674240201781056665839092279624683952866045865571376047168596759996755219380071644690831745022358979607016167850235153198262181500170988794732251794054017295014754269630274262512470111952560755834950243514692353004416346718735046209854174616335452786897430733547021403159926450935704814183593968360952179288867334500585069107587652949329357792312297793487024831916016694360033886451566171885919247830900043845884297301519813664318772323855318391045705347432139368744186845797471182368267314551983956099929948938306886096380177027752805500442513088288239864660821778815529931824805026704401508714751720338082218185640954181563942032438039084037002459498142339739893564330700838549448344622982311309650698860913169119653831619247191617959644556332373837906448463305711023124993467124359178168899459474472844686599596356613178414518009443902667808600865448101824720618705621762747435148815912074124728432042200384385425971211785579708009386699004881028491250210099970352593204795081077324038879877361058963832527267124259555394985317805147163890405072237674342952283449912957808742608929840850026285805898293206320479027706252542267350834708364333067712914170588866742124545584188395059130171902181832973421516454515109008481484875685190280685350509529042677074185472456107264175319870408325336130140305365878812735824280373913951921812966729744204355005958909224169867743039873334532513874268620661163513563457213456165472160457322960914027373628714344657065800674769532851422346642438497299854210512921259644077749873433154321223871969201667070043166630109756411332474734894933421425187786535671610514116544362600729520745410708171939837209156003468745792429553183028612205285357559291537940740626346621104931385808370532566638660878695808922121500155742479977966734807774350510698898797965313844252436256449436783035768354608913290896631114953006545090241952673076561704376396743793370817951873905771966877426813279900067740289240162164845345582411271889310585609386800167278516913485020602857922519490452976320296728086316917059346114805174711704661689301081808694204072517975952145122707723295720800186636872012464261382414788093482251873754257047102469668464775539824367810870369395656073189724939964889496651180823314158368575296079229634427543423386939914529807059128987269184484614791033539083425447208236508394093989695124778837248687537403545797479858162767289921208648580743345854384046882328631561269055878872626190105140565064567957920185506024620930289764907027720132832790781976750663935419612602662666456429747358480047166888633252037181549793024374754450221970308397576371418334206342238415164988782521000743932499610930981090789287297454117086183697155800655683630139495410839566785512528485160768466880853415660370301079329860028284208832770424301298186242091132557183787818598804465961385269295465020348289589053118260111695428091498321786817247950600786050523956623586124160025653940444644728697618568796892316362207621927437996674895533469173628190577941838603735171535577994148548532608345955065456095076467243960128925426954195345392202346787296065961330707688059028390098492406133090801266864026745392826772093496131262969537521654639457530815562939710445265976465697292953644090964179615146956838130307890076659510732545197894196117674888293785275411861774704279390535741225363889746992251970523638526441040160677535344233716503137787351389616729548602501357803862678128240550387782139003214524396879015409739234074744455917400559550370710344313800824010365067553314840750166750494194296992454598194584581158778981066128788256189928562423323716814184682898414601772502647194227659638678614224090961809511197881438108131713955563641483557639478335907745311411854233697919685827903452848517146246877865474264402449400530812012608522077330220005876273920583127901911007369272800137033539279801444207488626999739945088536842478694703969403315626961193137029385090295771170747883281409299700285327723676784962107115206980244049540082967849151406403438711504290098600582402101016744253326547045080037735594218075450714197782110324517196900704552292175380084426822444651728033325929257956749714799301529720267747410809374668693740597508768115959506550321401962197755403633235669143994220653354141172548369570443426492525400260253994034668075964853815954608818104820194016859301647213115267327195858908754936062558792624622956538532939518842847295682880829174492364812292359186014858642714553511482550608161622789295770787192205183973763548064411049746893979103196210976254639215893570375263034025988059906895628855165870156694699556574681839154609768843145372453046125738649373788613900824121251564821157234536307051443130885165106309630464802678809640235063809485627128030907707353573358251112706982773378140160902399129471350942063076477779335988502508977059455533518249995463578703937629337648004869674911022395515938896449066879666424822895735462924569495928948665323226252350726900450728737001103307879528925938918209297332849755679090654936133229386965833385361085419437209352487265723858258749964903309602786133469711336614635866985662563566422440356888525134073200230956729865059575359725195909518659784598197932369630425430036341721322464381558801077297531216222061720288600090870112806720733038584046941377487681883934921247876514503497364593217911451665141529427468875516900754124226178847935934820860031955488621390537998024625514472831876468440593979252716718589492120427198373274642145308137697450436122305281823881296648577215216897242545347678095286782034618913629376724347110175916666446368297911825227193689752570981633061519789958174889288530496664200432221966570938550218849044349692451887026262666999797278430739360982184055275946960753863640371401401044069607781381022477310999547519674757287681646115807670954010112217716506798924853823413788723424023804923835287447687508282887701759832747806865397213591366383891163859677967135770125529587488116598246864892555090925834655942836375618760486100805525665137653458516638475625541960211430800727981572711360634422384333060485846105186655274942400044348473861938348985536726380145320392762885300324777072026900818815147477506817394808472750673506461017121094908224482777516335160217186434590661076901081016896426521919684006642592566240231585404046039575886102533400781761756418651897896323192296929588891935989295313189787315583817488193613948806774644650594631147367518230757792287175074669818591776285551614886405245001606056158059704621539001822533386211638831488962727261237267027715818875424268588987765569129015513596373606974999791821044315275766047330668119495879429950815335152772893639993342111272474322663944216451844791986773379394826695774927856872277656062353085334241936773777972587641153026175017225217814361021350649906915634981016651923854868670829947540246757261521263322265779036695952810832808283259929639577049749603441848330954254882464088487625418947106199185690237538551442154695604431681443219867160207891305555796428249127220546260642521223545853339959698263310676543121866311684618368844405342838778279265450965041195424512636711028565163712068306001385741379899882005749992729098515127100502349742095288507997383620032140887179344470657117178383465582455774879710225074613117013495650366142220397465573129578588882126778338886674026911011883862038649645096905946788309428987206426597717878912443733050431558757815478778520751549982648496629316510649012472537732357794257012903726865581880121036736246059944094866987633616492914197839968280513908982412188415326009971361922630340083176712075806039938123135476820223966788610548877654424829114875319234025753779494066773713905709946899202301696169563051194265765716362895951556250381010964110224532651138464762536013871086135379564736151605539689883134439169263881488377146466175410775322831416528099064848166352904159343154614599152490136797272721674921202525539780004478726621294631075065587111950497326897521735979683161577944680072744110997120004651454275206002280520562450702704122732830373486832223549067062889059219194068639510854919859208717138725286877261121046696206097330693453900135264999217738988024636573201660931777323033860467437794450628649230869442838939589653367877342707231979954510937767743624009045087497674752428348083600757178248366247655189038904162170795985977415622504033925251009740391910973776146870554114448768890029907804765133722665747696684650841207532259609661017660722598976769251281424272830666987880718716757331558658752919114873482995997088742403669733454174046604075586206639455858042950430046597757463782278151340698589917016357882701282995203520214421833954378770345909594094913500076682766319540259378718030759428031975327324499798828043996476620015637059264757695223977690431059100246019594270100099528044678789467670080460820520807476255360781886502836464807887738817419837355395776387507065500791830665792585613421064565200839999283844781597502209994197955019640617630940535163745098309320918012941427365567955893576068597311607439289916454781506991998858165344008996829075775259973066240980742874640148460992086562381060385838522973500715683572765405074653864425729422329832828271007041979874799979797690450363426794413530635577206622381662848703053893516820507792257298743473889099656283322454618569357927121428607772454937721035079072360656121578306168045251001469192180976796150320429423735900090263747466004881965232001602489220803935125429296385623786052567858426578628568315565529084506130496771973854942181593913043254759499605225181854727415315029796144063965923199658625713279967149854198502377241122213176697360431183552805499425579069376850565206048167115974357781903864415284426287412894910728036267415262007315861230730636642390571796440032828856546412504129998799694383849528167158113531182879770418108389630202221316462730087134572994987392581969250573988167402577614243521323754092081138630581669247427520198886056743063008672401172726857989296497722358856570168577631307907747465340089271593271399870374581272733436207837667253837518036059358094367453269367269002929634041747433164882333887450347201903097440460122322544894460472447256714336398529779146466523327073331186693042394625416087216566759275642275947610470541599285450714272110683916534206945613550031585770384377997187556629126559925918201550523182584630604147610830679894958074780690842472722790382722609327949299717479772399978228600379727321434565123924546231370043513433144779740910604889659648733540163959761680457309115229414000520490785179309238782274510289918273752753687381014540834647802597892272457363208466810287718788768044008612097418937154707416537801588759133470862501552840504723977847575472070841497742583421592999768917825787207430541443889663744105053650649048123772179982703930255683148160121891457349127371051223587704492319992679509648370496415012938262927837812990704681826016523910487308395354081409849276430253348002357613455199978240944137373051569638408761082123945161167635575510216368713628102072058299730158075435556923311141049004022718097798922460630737197591290497265166840742324723948823947198638947766754462576462911907234768997183936090377965941607758203392659682427826122541024415095112681512505777086036294461295808081625528649964027381913555604730940055382717538819973331894993826446042136645341559630219664284918289159573061643312121784376667101750445438445929172000684629149388434810362314322682471162354715266343656961408017409433578240972334583814483988564240687629574364291697456310334786321511955754356158827025918559035228893142694175034823849314122565188148000273538128749662625025588344848226500860929364706939153745087181469990630593970746649986488413210689495920396729838613472383637889370559938350388501034095444810791279334608173746121017185813516712980741342211483052709934625072999910521117068747169922328915627172344433842703229641856912915509735495432666102270914123564469034510715937202603202223717003622242241058130869045473800400716334558663067271717935601684875965802501823453613835598930058608764669535212974145688154336060369269391809366947696015328022445567150830846747298561651320805918575735455685968695999525024213070258863187190024385395250459096811273829316878000256630245555123115580200550369430777530879228969333184477957152914870772051812011536342083365354051636356042261357640068890485549024028927585123018864720007816474018209490403550307701575843477123658445196889108181314695789901306710630118610551395455889194396584692242849370050440935676703005030364853527353396145009256813392466230558989185268836610876027597040320819330985925502046747713470869026169622794613036318349008609528622519826638213722865048523231861057837573861304510768304294786824468670263011494876796089146597341816399168677707861356778727144690385844999825047517786138742937028848160315670609424535173821325520114124290469138407982876396103936663196692924050751874656655001387885123939416515249854314246169645989790409671747630081633769251797764076724926531545957733726050576133965583950195903876223699518024818140156368413029828301405836450014252755242806680761948177627317872250949637650265379176957487610822290561853532025360820027835634646842652460198427911463505267210172162195109843370800338199490316396966604872676762176630275209465468916435144583617995227704750742817832342737925421657292827242650200329933601673392880625559615425381575331347284699345386191934911796214974441916579147458970236858091199017558616914457235996371404827466659180774280082397207858149686090727134807637710442076627166737769377339564862045605645158756311441793657233213683966635046328902065881968846964210517949831450810717186754805779431639981925714667772334199578186409721401199998992798558872307451403950371321172173408904160293534910186112043896767653786410418842479005974324703330100783972075353453283198565033952313651430043088385180251479588883702806083154704861942651014918736640553028755705124720658684157016539381680736323025736997193993289221624742073677155614458399520042358914856874205430276585037046775868483770158403810768050864128145544622604091106179222762365890885524021710039484777639696011307958275944367588192800335123528016032535637546808224113800998244762017849815276755294109239423868981240507506163042182936508422163921884345764186296556251321261779429117311548530703374314289370000877869878454192811708493241318935762302281709814928911968781694518557102693674009864924134012148358820240347080591699142042552596110328956195756085916066275796505021143836183507896031105939319371360705560454792309433257455250420279654649073627507481638116031263835317539231415893418123084158687030021645958732357908050571873000646385335182184160391033223713644259278013778905359217111979576442347043064265296038630463193459440683407745267443895050458648445054520699217296146094799479391505273838217491556208723447887816194356905933492556160428131246422023237635120467732748653161726566778342839009486109660404851887646759669574863754272161227710227269023443730639018726103071515892017095767665429430075077670003429316527719699410437304802614701193075717741788878302108435280392008244987961733990708854087692682651473507365674764662881032142431284956498120476979631420442308116316881898190865520816326569804656830448223509442404462331004912429321853090857518920437864541079887966090441713169679468634420807544508463234080953763907658967197999577392471995030354384136904460405859670149489772376210403025665101473660535951672815734866244746726779943297263505038776384732462843312800270920223380873967095837370208134162004006907747506315194946665117397830214369631959710190948799424457947609951468222285422850871847642776935934696119647536357374332861672964056562181892002168704960790019281654302135627530127647593267619249134675021737536687545003454207452155208056786686824129527595450388797066913364502076871909497144200104014028484174511867250311641937688208588315724094647134243670743274386123124137817940084913874087575351242103244402900577559656902516379175700380734830826988194472155658582704141418024031679434976206275246695589070478531586275081323725742241098070190259516444444530662319490975601307175388990473430424927488809147955491209453686671758664309404830379393177981235380848050806518276688784843053576099389107046505729506255958832822866847996170024566069138056432227970995772823102695698073651943022393213290174498397093811180130961427496376725540041228213605814426712637723664009901927694957920898982840522639600265881919874386276306278101128832257559567194290370527745230345086163093820714234227149392782753829232887151811596697302470113509812107785064352441565398080330962451036248936780883212469672423623680627612657994014954850443959826449404279978805732408102838157018638714129709503348928555591343090400820738430749743525876280310080158571498212057846601543463161985041710959701590901858258258657878353007971990550374764112660184373703583317155466648895995633928813380516780131051497023748794699087606897528427095345872922084576978776497205580978470909489422051607583922624143304183125957474132065127459729155334840227011043756144408147948247397829148448148932568528147847466991124372263344728435584908134977111695551578824116028369332519372252711403317396886443739971693631541298191737708374893806646883999245464806495210956435604874250475832288592405034269691605613788899439741794415899451557308572334759865998126389384371145441006805289427626715027003146681587882029148731754391370457487142945896228708832309375737106818233084054625703093260818875551813409702638781161734422327914008361586116548304854442789582119762756895441459472727014772707101726164853547998096279732943204076585572455262927066879387558503451914044744204550155970056871761592868448858097761002246585480581056718534311046932275167807397726530963530389691698208731677500553243685865918604681785280094635205140703059945647770091185700728455456290881379291491327811962673126730828022741088513751275586202738484368241898300611013332998328245929443100839510276730992844523530577014631826343654054042111007694066258222068317927421312509632626483922372933300328343007360310821620404156804971381957236258016554757902113331527182416844895328431554583054903186859677603482013149829812868274590796441954718063980520544116500846073676092324583093105594009400741318698514596376043885468968482480362433156717270443213770370575411318454555410595759939426700545764156774089426179101973612029726953093083577939122413847029649768398661009824350396038356622426273438279451083832311388344489920431293026056857697611603285777485054016304288302032647837427716533381055690319602259715078264281336996558807899034714772456491176240718941040019369976666899063829203864453407285955490125461160938863991408489678404971744794595839832229624226955511461718876695092452195817519235813295762434282003349387801533656342563188678504538339049912215396433281134968944773509959564692802276615837563030570398035864957026637405592041231165937568324056694566651047275835867372360605363424215039517933653333693671705016609929756014804440412893346405820268269599049670778163553699966744589571920025579571674614918417648151117485017635390631582505604524607731088428213780013642553062370076667309396539935265167230206416322963645059070800082416635594965359355299413365027315656073592099581434153528120324089045092866332583891828936476518028599782398900127959802068453105820782442511419365920240652460696278085906175130949938297342344064278334959754923604363913400310115053329896190236292445172323949263586885333811918477685613402070699868915700423169445827519796741225844798982770042233005483714535996682201337586909443171264355460131662768866038915213514436838395405256703445480278057793657069410711560602737102161631163751686466070993050403148974202529512154827879854749820588454305737598583830233977015750469323046972909385333772799346649861567822613067166446903572659402054104142891790799279448783636616766649020703411506505026554506559297136235120017953676230607186526298670891951208482452969931194955324339186122135780995496464646001115426407857831479445387672124596203561527654939136861367273844341607676800697215567818573792043778578238478159215135638590864357160266874469470597783808681170918926049563443721237047243646115167161467652922842036842119454509676508582347455165265930327420316224491355530019017783250838455175522256374103873983115795788264144547268234628894116416080758338587807846721053188524320909381843121813884064121469849229037363680941331979078775941440379380632857609330278454644023339620294235496640202508335307640151945855015500848439953397207951089964786318891944764928277244805236525163160319747197706766009558266533231923976796672987631790471792843189358104430640668637291870912354362954840130143857896492108142106771858874691900882681970012553624375834110846147717496224199398656098369953270611686256474299534846163002168981138536335202824572203989099811128125573857462655171191726482452316488060769254396101682221694151311177821708211239520462375817680651954878535278944297097782918252110005535250423593496193436496726471854943734450166668760143800711271066603100377447465664270575848680961302375790638759845663791033874098160271429466407924371073951714540954543039057479871427893266143957159842873414462311992748844115857128717451774562525528410793327441834586657024285725091580868506442303330749089445031866371602098393021437868731165783067346716222392506371521847122683785283325070011260577546486340848631797305327400535062097356941995463299352297882960460830097157447496829784145802416194196573452674555115232746638151637674397572510706260274241814246326505554113362085547712344554549251856362535594412814251111591171525751008768596002105604252805219270846930558763532057955115029902430795259974785605159441747911645848636636059981867761193953224647618541445352620481893188567899969648538535942278473120873332032186879823789143625005286617969804746843981158937240745836854714535997789176804198078128696664920629763990156457400060711910520451922192302699898168519913835505432573864362576773804626984187236415124726987472838208139238333873768764720276957819464535268765768963982421169654000712463618609460079630970333330978750026749861246817108635279518640164370763162994087858021784966036600969644891442791442785960089758326142781028677467059389019784274100563877379980539787080808252889985241128057547046018849113656641012513694630093131432175947958574189807079456250898298214313230047467125401052361787427807893721730917181312306571445667532370063483559996117883079765986299145154544573200573641744746055375161827465297881156897008902305908692951795635557527831788032461225114912805236797044390554038252046681353123836125142675165528291434728363301775680366012235741208243653898141229511949782254032042354779635994557071711589791471224379898563312325871678082199241110517851541440700632846793662646231756247232035991609078328189468086806636507522354046272917799680970630713252492761850992804006189724207241217290600257213882293486024008696273507849819817772084420314457276706614769574478712519047495162097933326075324751386077750420185730817159741966091595703706985169452714617864063779748811089257702736680586040872867211296354113159957371742946439661921522457440478012633705787689606476245506871912624960052277941713887542986377316178426317563402014030217828872019131632045962426951159479211075444457652251667807253629749998672344279443576749991117565861726190859213480940574282638455807656187751761177021336598531058329137614640179474798577857453305164876378288483502038810439995148211628559574519271827871036433954530607621997215229297607880835539098056315934945361950420059701874686436864099934730777300040204218336439399146796197804845768802188077676739443304074613878346965341954828343641884739054691704138668632782743721413939555272824751087304996314232269489650534560672859398665938170558533827021002176634937944657398808030114926427108134411961290905931781763265785783900703085629227136468656482710958437145106768014649686320856064505805663686083196890209700447402927378746069470677457797223661764174925767384280489554569995748669353509330868723332432412969854514834819307736861130273174632331715727596899772887124695768269269095857578422770617939944795193104575316985507116906770396085290582082525086257068966116285330662385026797243428416209737743384467048273770185254514273214174335656355986248944394557611758526296857704869578113927370917826846184363411547127140993726067936075572764669949022362153958795975096306019486026639717720366874408595372859949783122082447666837115494993106107503027669521941519489949626936998067130889482427520006671369720832846542121020998228584343629768159562244492050213443956885259734950282220347129296978778422269711312581381619065052271833078982114941163375959857460386971071362535428275183145200547894411219255979942202544867390739896614881556218253106653197749743764479597220298575681352685298530722447882592857552270241563690022432973124753235561538188864724603293486338635421343168766606602337858308199244538793064795502924255745416608755518152692031203196625419851387359989369659471180688908662167969161916942402731535539567226347439453179429324380200978451791289527090710708132112252075972323789069109763259050090952266175694649769958885741262754528534454959459861915457569227570499512155732573827922554654829715622242733555293316598831026909906713023767432498382201193214359633895983714240068165416376022269521325540657325248534004607841595218533531211995622916500609915108185083941798749126542660969958896491330947435609069711606331253709589130941999531044049893968797268393096049493797963039701370277962828052684430411231548177039690459292432972578518066650826054793008356316705951313695204513044981813716225199437137356684524126013433676254759803309054211267545989183503647383854712470343786729091811495403553907471710657149551857442460445471485948532007870522064677843222242344237440066027719971223144845048540744468759941338955583263010260061070013018232625201247623345785679186847440268081255439735595931605588864399478762793851595055617240407150340922689705165528544681330893743186571774925906017463430662859973007933825449405226046215137498645325289378047492085163577883893007228286717410008931672532675534686569938287944510515186475138842474942883608093790383251212312280263455206547979037551715279683325287545338625210777429271386065705521385310038328401283105276402117510575728422780094913819814428606648723723800195927022939819397367782689775659162949139440125675014665629036165362752049189891658496274428307414136286824787299853795582512051582280532327024343015284010370426418336975853309612366116220794040560254308679203988132640240870430124458622021637430739884713110793948877330130915528366859058947661714886724739112877953687552577982423124829831187058815184003549947792746537503114633273860346062397329305785306223051187872967224972546284486139035236021302115098817735666933529648332966024064932817641011478058771561003735790828622463163595289109605847509968587633037549655412953900533591964685052386127071369711976956925360122871612877679655553425139143368220207204221723384535605951026982185623908325338757480364951056014204290961774403746725961202215884002974395773615103140227869662119075663509682330388205049248467023571883709978228594919562920523157602385414683338925343628988369042315371327071123156169423019851255272975417196382565468670439495504414677012042786902622098685241582591917806468821239676588944039797525475291958121953012505369765439904424588027785757821389330075303718169961988365615062669368086197228840764166709112137669691448419457299228799646555104478688945624296655242086785866811739589128373979213259170178300393175630798353907142270531023299827331716020339584635350924153201085996207736133522746943822262018267707775469952089584093543741851028532651804948903029724993115519477451861993404366407554335837983714971824062148922244567848071870562231520972947048926254892251035197314065991291536494399515938899330417715560734820791821084692798597755700265541630468508335057477005020703276234451890309975067210313388822406028107307397462290551073609673083994232145250529714711231079258966375102659153037516939596059536006216139308323910985418605639199476040059047810615075164353428850279993864874221958791162671275753534683658668621896247923466238685815575109321530560039765518429394358333564881223730511956488307552838484107908255255054011539634329552117458477260038727583862078105782760043727318943649762841947776943893173191466434204102182349171785891276321262519166952533224503310561824810794565040333734785485682689628147010497295016474548796346315079683773780043178420861385463436404626234492815298454679582317583958973909753766787940463619603769513446494780040000670802674621147301416834444705732794683657542782369385529640552277857430405411671387193260949821775828474664045536325812135438126056794082711889260881120608566254266445588240866427315343128306751171639983561506355295170498295850672531920450864434359217265142725621744835786479700048097498717792345937556589273104521791716275568046112250686659062467430995646447185061578843746253170145457749142292372548438456070777063242533875989890342891427901872681812189438863419078449855588887676167854316153709028250687501842312115283886019744808824991945954445174471164831811899310495787143312572020880115697920087326769836238290998864736189718026584884465529799855929692074665247804306245070458373719844962822691611527236493364214506342401463689489669771542178859941634093141019251613914296779974808639175081819249541230019939797520005701607656018755428248282392183241702688269697814240622372863393218298525598524477015697587108608747809439511197866561095547183050976988187668323255925214369611374377045382254814353902788211967089332092138002015604369968293010008570914526943015179073183592375125727004064552159884988649342385773276324558167152000816739244562087467608616299545169482565398639194545278803076354079211445169495651617665812226156074416199877660325283950089040963679704794134125050719448686765378470895734338722852395540544738288170694720909079242608824530199905406562821676044051806108982105183256706589855329702851391361896049382944410950932072791321998926617305704709160308191449451641655896030697362786917412611343269579969390587110544580998619027205188067652789274021438495956082151457036208767424078543913138151411241114094620837932060398874315862993628626890307515191627696001497369177316282825620322341592117187511980318940979627593101294689225289225542174001347918789047587014160143203463226581620908607151521608112735694971196245046804978664470315784802066805954882686424009705722444157016607723514011508931299702282001457091882777258766031564948861456265634819435052036801313606341512488158696935372859098203214345909581372187718895350751296983381669122159016205665480109968534957267363570788846720242527332577808856711726460053381079193015040163091340177440122648125636441518425845442917007840811713743651616502561578184425860638584075350892705627326378958463598898512452983323504944154109378554381744217209517927159340110943573049977779211735357566277704092332190002728372420696453835212111635097343620312334645892300634625238909268431624716836947634572146722969908516653625589237001709610182979682798455003783727977582774150810304350097204910792481265587974733230886478868497831124821674704565868274137565782926794420482580230838500573986194202944758114955494936826951673134174537405386636290217572410575942500871454363075055386908306578781489050699819672049845090820166521691976500132191483852059898736227693332150109306993161191615138625037278526036096213474454880843767337016545453336449294505777387084971580681190245694433620164720552438094816632385285068985837316106704493231754240728051048643985123458123422948082213807014621557661692870400154686244365776445680390016371936167725874096548839086615605050107127244450770409015132220142999221684624554436287444391677303167666526468471945181911368002670932253174141899677932338029599792877902492428208341800545881550319474424846592307168895257729452661666129341207392421847234729559921258790768554184425505316928286216321917010970155462525226434559676867155194127113433297110155891343873276248674075229693459201523704087689974186624575990736737639313995943201465073120859579394017477654195874745054053149316103625358710435346682811073689411957792663006685471269053399220438875377222660712559786712217012223216882660769484551410539294652996827781724076279764004666969907437355524533335011621552005740984904275566739921616087443501476587022911017350275110498853058864112263019249758735464376651673492692061587571115946760292173387944055481715598916249294099746860180514753234034396444649678056305630940930644180837508570055047016618643883602289310296891799267917510775682097021614404337998451723448945925676466800998355636915691098246248285810748458546870364960917077224281762332464002921889865740481212099026057005053580148890517755640940813023739421865625572957136975662502198228552073873812255104043203068844353262247810474381881323632591302270466493104158406929673589960429962499274313627952452400401793189171521574966301547514263697166085573112799805716275286479467281519918414643395984408587877847772971783089832683360002296919537642028654093318950448325751742476479112607864279659989046422987768882970169780257137170190648914880203333193053865721129654193057399969251277134411877830830981088897357734781093904866670689387952815292169626181787023026292605218591512419771091174446364545411786484762891943719863134390589146947493692300785297149152409599572582830827903161039488952643759933187634136729331112799740167299009456083305896624750878811512832284574766065751441406996060629106600785558300625187977198318021813572975438812718520792646564810781128889992708195279714885318964164454144194473638428923575539533189201481777807915252577133758751278934431233909228524570260060031524954259892029469794104473502674007074306048134999298905392877400872597879197308719208553223526348187567610713330836109359101372132748923538378192954755541613879610955160935480324226557907106019422285187965828546817355544928015450427157423661920250866033719295790703258259907920629893085685843779208980041920875314988187063848760778056965446657246484504167563737285614542875162260951608731946250522764156629696313361605686203685544080820338867030894173794636955996219218163488908168274114431427162125911216713098521780289152649576608866406109806405382038655152232168365306095850845416470858032110185624254786669734715011272806156908715293165557717009966067738353740485739119914252045564800847073451340863547172835100112665989794573632019295435091928176678278208309123242387982081127591814005373772451922762858450438017330156606438439775337315453679814109278088056785298181270102715475566627786704669786513695751475426332377171561435793156523465057160351167146366509207811170538182529394305139133048856440981669445553554376852191314633912551580047033541603523716563501515006853394698427403530908430779302433128092474750520966431275380477911422370508196524239055598561735248615830271846970863467716254052701531267415936539434684696513731822433258104871582398160638770397750883410921282509731546321960640975143562519113409848327236548916112153520757144953815150258151028707599082170696974431312202937244277419068114370298170527943734086289215796661693530808878269456802099124678420148578866411443367115930649064375093327327884614323567704170873501957966338667068028897747575329002180157251474771032900526775665954969217429676074985216924091420998718590274208633310158307285770705495335004680692973423511496955393939903466630079909775203841210046622518278523115222669825735923836209104447850891248522995712781772675796958868512957672240870951537173143416409331889173702687267195427495010397756936967931132006728135271938121872742447044091300294375606474403271668828564991232212147495139585850395822156607283196736013622341471852527681379320355643304559047259837782838610207823055184843999695287955627116026652087372321753339444942250050604571684032514061176003074797007301287517729020922387135483902552452569584590669283445508116045708688171329153716204061514965739611241491232512228703061174122874940151659091735871833238289289171302756975299543541405232534589397228424114087586497946868854619567965602215199596001021309755419964749307267419757000692652146297219060450648115775752959932094053688422733250398931117628932467559759486795408179663552281623470184672037805932446699081933277522031981202731842728257274130509426687686667333249757024408075683468779437081599386728677577416870796151764381569956411712485996805073931912000995403110063531085994670800403907870488219367212356437330354468332792728966168108109741646156607558328520652634493805189451741195895365419033305094536186932984334120046347376959561849318266068928384358480262081950041587821375410313858132736884435523723073642276782110697354837562882936936146624497740315082036226564521432061766406316372429494442527953463208726198364723961386897809190758451839463563396805261668770856865743878225583826137935349694787723746249325637285272144168236415931325514167997986377417534819701265572439952289921544885211395588133351468716054050660697531400788832036352914168882877791157551383843362317418137804344295436865627802771018059438489427636878249814674634077672544474917715536666966142283854643292712679729444843766150114512016306534603365577207836289585298508988503040169215737822388150910308732285298496498993795777311744401042877661959563933185951371905468987595014560029342040994667871753346542431883260533814333042506235610188596302556291157687442173914779704359050461394643088675686110880678586249991715182470023055630030680928455896541821374902949262557622405286695174481713159988551886455722983410551927623735129574984721075792163628929544443519377921228033946428352932125121611736840730250431026551118428967396364746670803789783445630927024677641573005911107075933197546698472121464772483060495121626106707223665431800121742460592392857152303937525454427490542350412740368607586106400069673387211076822013542797858247515993392385762927571303567174872913139844731720275985203116330883053131394859809348221706869309703897580019910772904332974804262742305464625710690996597405823752105919603986120747240615838953061542942780430105895713607286059701095259509757437233433845500404162392852212013191836526966143718412714557183557232948630154174035448746083617135314759206889796787069369253810268709166133022622473382455841258866300308155844464511601309113888143669238476499927613489587626213989074084268987270053017256331477142552717999930286095241697017108835734400450031889069754725514351882749902007113097432468588563278810845398327288698250005308543112694878464124988850840836273527829158904844764525919352208122632865662037768555643955351005353016634561960351232276022262199056509249896314858385198247015788195892815803982868062571818123632595895553097131251253033918507023587658819894557633332121147403254398276666189507791056419984466962588329567432153799183483737935691325325008316333172943344141742929899079479536326236015651128456487897795391348437461856975896869844004438496917636199739890309215944313426158584857934204699287274765784161207874337390554831101201964932527587459835705681099542850245179097071658751573714485879486966128813467912232024818961697506933393995856930699249555323514504125593019657582972452372410736150382428742202145381784520244039980713723828216989697856387060348513567809720801544513050909599902085398464709050585421770967325874221141836740310280666088151308860016171216258327566721362286300599938079322312707670853327137788070065758314757738357104308112815013241021257265171012712821900381671657095042808899124462509356378699875213406537252397545898967809017245147575278811544127660449262820670897812852451071998636194058057754616100364900592371640355062170848668102711010829191428936587707161060096850158440786606931534570296057873802738794769920161466975150131133832014143280962920976549854205640421809085638869865513652640423902802622354740460432175950053895207659700233628288258772635674667526265632634896667318458960494482303885016279992202331825549383091193106191336480148170038351655032956735711996528346121807506369372146881294586943550723128823906445075574690374182808474200613957522803534434476703655068159735005253580019917299630495713045970440980903212206827994245972751910199964972413869398169210714285155930308808930575134967162993001192230097145388222625184558809792916428985278806868298767995533004887148767453367765052504054395953397221587521634065973101733076165226355349578676253951171528872417811473487772109054665180978206738843397839444770992088075804390107636499712219613641014486649265533781799528650477326537677267611599608020560555158219332436376952631832994132846714865716545711953053891959513084456879566434663708553225189266329131429221819669499458191228670868698536519964731123620198823106770967214551512210928503081940228332383176237345876899549185459389145505152669123494897946031645712295927182219971305419090321558733909504499618021023604608024568529947466981257767583142649571681406964838169128169814408415329192352067749895798619793089407684225560566097159316491804921128609799610615802799493759480431754431819839621137569128745124320390220493130041046529665777619322644880570154051313281455195207213141630591716599699573281045241286611680409628928122439167007477065221692171247104198581625261874407908765399669810026002984957618314359630474697614139322642927772359152334004703158022884721321984737623156676698331599515627226583138831569579974941961257647858814222953772034802403655625710026052131696988034842648769672790090191009154803709024088657898938588024635080399436275832038963896877390859026713047995508317324484849853934787424260329720960861602694434202511735515635895131888169708390946967641655527089393049270786614018268178406406651021203599122710420905622099682790067876503188539828924983116631738967964851381005460451882604742286895667784458946142497329956565384627410359768999118253810688751778755260557097012148720314785001319668559739746646551975140726644599144384133609207113910521826248167919582483535059066831058268578073901639937824244072852071328619518709686935979376509263824406319310856711233492885146478121928788452868944410844278003875613519994620989105748333322683190447509209149217464417780217520926095844511357750451758173837963837559701111204548625417647725196901591149234177619749656401165003656266047758029185088692381964811014552398943001273237584995210632568945224246627993663081971831474366082232842820318487687259117599846691238546075398038486987511577216754837030074790069182730487546291871379775123676793002631300463822703393577472539530270724462490250005569939681600147637536980940307431109435144114650543738845940048588399373823246420536652431997691430231976097929701924611567515616061171631245336470081169198766325196615151511163636327507548501817082173400166675672328422524742639856608134887170468306777920632161179547702324029806929985779197490159590931186075267806452881530727681818738306926700870928813379639010051453450377229080396413476252092868721744786002858843818302281992705606184855480617961117958427008562535197818058703420046555153672163989002971069943219304079205380724109602203559337648804805465131745645083726361800524531298987884194647503554968832275241380670399717868936295914922668340822491880357672728911864959005071955441215937803880702595056545753404275114659106177247501470899036523161812687828005623319582608340919475764350748931772556558683671536493190393977620740999127307720307534594059811791723104323810544497263274714555707233432600091171855055689534372757178855681795309755209317496493852608333104134275604423327436021006798841144909563669068984076924655508838065380214282358666278772557095251797053629179395511374675532526649183492107553889930029346526848258666625496817018294210678042382771710896311628337059360765298072538559224587266001267747062171136962666134029331767114084072490111046388610189824487164702390211778108641967124784112602218357336934292082843021948167406402157111010680824261340211837947225300514052420102437405355793259872943975370672112790413326804654797985514676344649759580744868340496722430981684569139801223089977454100289571843181760484737828700163758247114886768236930269910286494779824234179891424429466442781908195222590769655575742473737594511093815907941540038813279575313942079432349396318841755180873966851307165300704935346442545585250310106049628382810213683199038517053516384904482362872045928556273168971530176918708759503124717930448954207457683032252111633167078207779738735895208393442399065637311052272198267785092612263500387339877866627302897164849313112877015967141202311918569222513351489264148464452317287570480767657040171010209213052663588827379519300466544741180730753337463449038379835662095104619121131248803599853792615536454342480035970943600884660896537812464517979566795849219600182295678605994262032239277175913483834988450483130647234661744739915877913610078625042710812467813056516553812482804264525368467869136589573593932870348246943491760813053942637995532719136833707024893555690390844306018336505181813750117101223366505816817048726610384118762099196336055402672280922805475032649628601083133880974819995238110304853855367566935003198126293177281534087582880272036033287330416493009869601780570569843583281668485866119430117749785107092536812376801988972681696180349928723752588067310506342690383262978453535656406967472028538982334716016069290504462058975403479511276620678117999010153683487751605916915768076928930724864144884917272608545282498263004807480548216490100303430962237590524785582451072116759045952044142749470181017523029055619751339695173210523601725857692723714752755655621784778596807265667599118484255681693857403404898322176037690640150384802807168922368353205534942683815016223500192629998667876380511824024407014203753768968943146182141281986510605862380103959740546085686408060704863331209543259326340442581896218779748778030881742223805455157436473755403835223401012087582325060003051580706444988642062269592067835494547109713260203308639897400564677652206061482611183413135598930286180443639779820282707465308219443366331905031195535603222688009116305898653311168307490458134030905708274632375092324227535948566739736896566582712527527932506166944402161707629630886554699068234036500469820054313431541220882173952301217653975794858043884506987678459452633143780203725901653319977187246317212178921230306934972497211951144838828697178609179200035607506164380471912270195883210170803576180207217229953840440452694638664328709680768586796285613337322295413010936043998959413098782567552407311793832161144145718058289210531320672646921358744232843822112729462533119858821832063915157246131142991164437819628707849646453332329929904038591624287334993375175457603795790916190147176057689982672625817764849018244419137018895603002191486717114983083215802546318250889747749610650580268435451810851983535047890628959101098433117377255372664883087953230507570241921330800392990918520303749569389815345862157194500135295169496287572795437813443638786853881878273665899943889344360511692077230662136387544159462102699072031621722115946616495974371734582491841196616805572409959131062460000716866225737757673452512441594171799755260233286228600899263594519424617107558805292291172511164136076478193011047544379973019851143738406011266723200664847000934233406245035437505913371060626693615430366657542469292818840255021788618985210890479485904421186238175627004949589110279143430395603486364612851874829787619619277555083049040837312416618078556718103309970145642891730249402426006855854858080551773287771237019776209722576128084130461094544461673747153661869819990353770688150089071704895755577673837628971642526191143379934864212471121952361695318067088822522361360298321705388461067914381787283005734119488434686886847493192757263100840180112572146999525580152396579726562215022184670280584459509420976722313531122134825606282275990993097932190067229721160800337060212934255770780386731975122314933825062075185434910601912208269836102198782371704838852589975236964176972706438273246530389583709846668446360901688664172499216184328551656693553089864873370057335527385134024419630388373111609488020867040762769692910272239621984952090721630011141995599105229475205725106929903866981419578058040003155918738892524511277038761360088241906074684709001132928078472169347675961817570874720060535025946670938963749100726924480791891539282373200969835213770134778648470265725261003176414688720338845053828235287137608652435500036710452724885530365106165767370605186638422835546189665238235796155337378732080317375256059945047020116339859215374275095356283162995388353049588539877040527812608407930582657452051914298963976377339619508323629452045906005988587052658196604134768855102897947574749926186551437649749801030310262112565284709055273934714381116356763688717922647903100699249137446634181686940051230980291418888814499723607322857025999616274751361019761972176403172895522368317331024580887210988835785314976232585770918160378728936559181497543879423013621778394614893065689446820835993054906360183364605796568406031588435665459059637047044836886486540609211193215342900661841421407938066213854984415828779265675316493968439980327075834024186034906590250494086285005758270808021994085822946310788433458831969719247458624333610238940632437195261623296501190091963540516491497981831939970047322745886115336768248402410865162427042083597983947756318569164691232758335304454595845017200233474961836631008203958214531087862411967941126327420818441927018092573736662338704267999842650692673009283224742944363980932026256345142411673106481782429023533154296505583142532181874566544740334058929828810928581265214746438209456266157559647813279154433829917263308253774728880358764802577324889474590513208959506230275659983284503536374660443910681475035439176737673369683078191600040676644235088873678276544784614306755430382275274694793750214827697529682447416295990957972208115855274234973776171047054401479876104015251476130020738846951692194203164806345360432989099236657194730644674829732508740842431567343895035233626559522000053025256070695978593353792721531542001919661907785727533523606215091970228456626984052616974009177014809434672535708252967021314324731986465809626011485135507106969527535178587650185166300621783232275378350078417351591515032916969070968263780378586362576183556020186561843692605365342356108530181687182329523623748931679528864954887538087755828770947081110898223428844644129702657232116383135042678934318640517770168372169270092350851722605203074092807936361642358433196558038642316447039529946154857449570031626064457808837754125774510736556698147233737333802788244284379082424119210306581791079387901316278259436816140377630955704433613358597530446554444230137698083804994750146407000056115201335830300793352572579261621439659950901735651555221768625013045559458359019433840505172341001766714259845064658734992331256206667974432415337419094875520696701938393583063304986137912802148926701150892069670198156577733327010253191140452621725286039665370018295163778953566436222665344276618133885535464521354081185413954167914691354327704643974601757989616398683830682586038372276562057568362516955459125663923876075686194032224382373327088974344207770686055293901774495456001859882705765337110771235576031382417766101875252957980722739346436031468908156423188853019280271957118240653777271196969623496371932864354975039763771540158191689339758633468333338024934576820324706920458570319155628603567644500999864746908076209943942440370778395340482618899791477488258505045962923992466629919557265037103752872893328492578853650466156334467224970169861164275239165360033401116089509232426122592573904949838217492767519115557562449297870738911895322388879604848090469323700128613371351402741627441653565801101040527501453358386138094346343424437708050008198638716892372408940688141710162910814007530202246728699616448992265754918568723999162490222469793850723941568154954791982315661479934350625621020067107765715727431373949117162326052694743377942607092437196051153280257315012944653741784449181298597256004701704763405070230583375768943781271209689477002168004048468325493462177411148532250240064380632858329001144469499172054216370619596788405123455511985645438613760402714550793674408420105682290802368929806772206862005811460942918173618609537489131998414413883777122470498791818310724421685337987376137360014033114772295092987251288452805365327842715417891386839852995746937569647230481661783919994670243898811651203964896726072658900430808080052343053542988278610105632136971758158883267801926857949663963572229694919313429426708605783001095854880501650714395505198144513444633296260290846436968793763982629937132561425327893315259187184951653934026012282100853463265902310647839805328004392334568194676441988127817508553294825740950297214551710173019301464048559089609122836127228785898874461504614453419176100583065215361454504338575496250725529600576362057486380205071127182254302597599310652573160290008715902009928323287126508888329231031415780020396757835112218305261835297615594217267195650328251937840472974319696832609124805669504476223117859400093148386512519289493183510862331364579487736383897266767321498923346214769393245921843167385213365326312260763381022876959038850424963929829071119727773204025177486492837852444308936672132673590699199581281533664185410681083069574395626634741930581528287577204406652806166679548313309487404677542782499569456177320702078018787683209880978018845469158917406905800332104185916549178665491218456237239019550490278950228264809237034718428204762175944896519393013196105707460919234869602306945469585581524609567476560324719845814733569553036760598282966979926062247673813202315116415806345639234184485551641481849969536269264083565566767017346246031056694775410527971396560022502678097645878839189379598275397419104829334857437814239926531075938752148202209684936354921959125800682898431708831618979197859219039468921500729121283465463696878321195096734443013500563746222542738689864372467860164546878813300218518892997135566233220377485621158507193130884773186540466239808843375733287557253267186078907804417425450595006601706028364747004939252329166762828282310251970726463668234823485100181510762444922056601061125735797645361067747261535038713423774453156944544678620848018386746224649011264201438077744478576071524748486179352919039349317074639397373687644752802370675778174950852305553455302875028153445175487762548811748843646577014684460099090718242891930676518790629286090007615499327477290030102082490725664394958977094762406042818300434192711926118203514665934150562192187119302637427821494402697407340246968027227420348232947456246918654620646521676255242814045094654404995944444250841151564860479434960204212910423752745093513172400540126953670791173681889970258467268044253377482858524477027236029808498873007587594283149540299020588451741054852420768070607492433374418691604002353164997042984119937289894619988419885135097864419607772408514439426189208065807150607641537789162882133910605952327824024359614456885079222014734698174629246163617734105948923316369870072225066244840446931176744252007557460429770647635229602936063594240862037579203179673727260650961133362223726229825986355784431592460020620266051025251622567821609630854141996358313869330191014846954059594741810004984328036804504901869715708350481813970994846681023750995617374066668236854138734376940855414514401710490494431530973470720378252725813674827676208608418764980435110511812340609363693027756212105068719325792009828392847521329389429733338441920654943737783587938458734964514205792456285043204412042286507510236966195941798132507529024394037000589932570403698911607900845225586956860251078838466732096676029225033332641479622880076788546933788074559500020189206186954968750894529591270046663712330872851651881428313714868729842163059071954455644118106031922829783804679593871554319499577091630578331824639972663933171543611121304124684416100779812389353895818889910734270516290259676134469721939828579304666218058303793855033189210352475036987844585884711547483502766465686565925951373268219125386808681964108525625649308749971840563990162043004385485331028469847705900977633776301404184226069790082873385728061481847608047017235838214384620394451776113912936216602802368981850760563151068934667059076358674102638217990234474884613954718968593725031223225513546046334445337255361372011927573990646814006350275329314245644486240709975077526530370270767111378657187618662899169533996393038888373024257762535904354244148822539726829730599296334416514948247781547573900427332937292466072768982858388171931412858399727564174236461779595380396021697241779143636564511866094642041008826983836386650603280456933430036326640792273408776375743228999717160426289562840459569780045404042540924392558076526426115499464583905583362084795499455988202743363518853455816759367126119340947046665898260092275425929522823809840627759480646467407146938401032931676262202278945833786937009636910437506335347523240174105325337022056331681823054004098858148758596097883238283377749617332544570805120240088465745937961808875932263473455190806185159624574772249475000578268053037876197502508545671392370237662364779223773431982608599969025993786014170804175482242015289052947289980860749865497076666287984625742187979824895660236712920157588751947012102428745148282379513390717628426176233730913252976205167069724500854919940649733668049723241493022320761002112117588761824633620488789924152957852063496387390526092828292800525608158092938933011738272599387599969734893866772280802317096708902264687386950927842496316536051318047579831417388892952138832484370233698077316663051943331746559593305486752639367456145500811658451969904312152289864610507881838904203331989995240453891725338466860455333178794420523829238484078169804407867267408264816287632183862760220438420069655107793187946876070500972400957531697362460064222805698199743432625883484842706233288470514278459102056071423259092306537485865775322181735968230416956835616167089637631456847040415151064945968403217281493011796492101618648449620539342030018851352143993798382869197066968719335643728675092286498493442187658683907063171172775666032289518461820611944494087992251754413538605368332942790305219393467116115095827118804842084730479399168312525785413246724718537281589755160780690920643153536486762676619135386227147389070349353093478153457820005929226874925397903813505500325788336410725291359534146811906192361549754158681692414451671951050183111743234054869014729166795810659703198869722435232840285151855144416970748190544814652385407429139669022167409723762208730425770020107202875787616495121535309300692618848699196439212384530482696690150206144945369301705058573505120822447568130209195336294230694516292845019130597733655097575636147946223512126870274252062047950304040198260400861430035145891599537993497653320099690228184910335187197875421894113159869140205812921006244155687439309996907374846386394797517950880543927099225655876769237380538726132790513031038273781186373563726185940823650983500564279834546310609519251051137947821441347195958112236605671387669681823696512432939574934199595172339056511548361253342304545628674222864010661135664213754496709953265145715748108826248139160937357969759820402478602242050280628906755547587622243009612161214205492867414796922985658829096918317618697631387396249793815743305612719890828516120992358586815930126461708475002406740891971070662572693699729479229939519107915122032426161718416961892200525765882639437359044352169628710409860097554648448600298799673819025775041230818853346215092925606507325156679384331829257837511057334874431985029700667808582001982539884566353991380226505242335802143666145566435954346495242715508181447482617187134061615922742281410761536308974589426202965238699126269426605902225848264024566025700899997843715572942417660418079120397336135049308285496855782572792358257216675727505548619736529832645865597992291144967777146974410609895939722688800420577039835125045816644017902824805774322279288163706582174561546265643419709847647477341028382251760524494614257079006816540437506432984674237453501351732288931690570810278035296791916485196719416389897549583993808731689836538025642962252460104540727048433767409688824604595163152187232740844376739014583359644632025159247345913007562223751941592343761585703652677341356743384311852291449321791548155898973496919625076792615660370065508256940275558422929231863601559532054175397541224598876874676035085948699456137838946256659919124364753793117824671614753656973662682570168655716383416207595896416885209880769558650792770158704893865110716641315929034501408128702564791514478763566793215562645918521674458594004225714148841293565423481870108564066740988848139308237846118785013531245001844197137561369327253648244473267248663285876786734422820907075971189418052478596687785449890457484178822466302517150297559125842793432355361091751352152573759851315918817395314328890620768155974925752787741948651528619760994013256855536642088744595261760802403760747779057096704535795148669357079210597075291554415614658821303957307154851527632585449790006197139503339432085073264039293263538443073719228949676968079234450190233229869976473042588015401306917844089519413438333834153471159264375166222914872079575570459598355249194335189915513541209602935896549070139733681680319216361868633832828968316947928971130000106180352417220214168431571400986524279409763561553785615054832875080746485713187533226185908366248813144805524294122236204943382099280948324994875193691735399175545628303749930675350802690042978525668020128603322374226006110258075661982287231577256138741593031800741812615932387713808463757733634495638755669006248449470450143862298858678316423725805070200313174558360126411082668456883084981208013054139612030141102520099318862620621117393404218645261008898621957470115797680458018605491399363367616056240043506390260968113057924437973604543342281728831816593970627180204304451988639389118185882794588525369096693884312630717195259011631884487703885888844866931263965011775533522377001712869036595290431766831031463473784826209438310898845752006877493668920114171252527367428288187868667872712875500035497912576953900986449987521470640658408495366231123528288246682775417566082244503572748319320653051216865018777790118851554715897423350694048915447932348479535372587328180304944135089786510323154133596794460177248540265586239068859444257029961946791961061652057136201181719661337821024288338946274653276646001376268068002595252173437112523239027288206604944543841088146962376190474020746563254003752521916532077356997486021293453581817863185066989114561952659314835826296998262267195195870592089780336254044406385851457274800866279759590139850282981107707217991381251499267675424100083977033233906470424353916770082576483638615473814175909014693066575068013317754642055499238408679903373713004905380610440391204163907476554692929121580542079261425554523269038361252962481130740901426343786601037340914262943259020524003301002616407461204985023776127344802460072455319080537945658470750822605815840584676744087736021271401402023875492792548405982507406453188171434439084731492534289911946050829586432018103590497898960597341030425646977091604821892433085758279133061168731235122104992030006597685125854108506068535356011473480649838735248602211159815356627989951871019992800239234127770136591696602105100609645560701951327406689395398519602081382851314789159042904110303119403556476445119079791755657878305039275072583178655758521244857023304058452888602327954427896000096746615940156452780205745661759955784637998527574574629240072803540965972205296436368546530975599503084803605977967225274098890381594997278229964845783892735411305272283337275402332936991397549366900585517478652315511933300008976042245280535984754456361327928965573011801321930618234863847706381616647401189772846994637177021836168215870912338265549065756615122590643767041182033175729945717663333787520240908050854917183985149854933723412626555613632185948221068968065282122812080733491332225428422728572829697691734386758849667678483733841724030908258024943619139832415151792140542568480490734649350221561110300685105420073068956845450777950537172338376408709832328225702190017098944677639140988094118030542823833396699146672160479070695804894574637782956346289549955912344011016580526104208857861608838987647368020259711849194556170810897244814278757584853911829346910544407516289755865825671345258538767997193430706908289919605686674374101325144665224552567835425953784727154595121892309136972040557801460009971738333651965784145162474948944990546662677072759928152625711135591392141211686424324849387675380341434622110867180764597657472648832456283150697557119459091470170578116815882736998723854303743278005844613152173144566461675895832125147060052932063942368764877348608554159129031769080537561240458482849573473672826112060534316344474988255779789323847038214050273177093646676212335946799372179086729438331120653263382216432098216299000101209526464667865126865900730810205141308267520198313408184856955710926768883562909315863158606952631878726522693507428250340909559944245844632968464720841536852860882725536409323227873004092272876023984494056762131712234445418143178953196371268833038362874897375031396518250089615903350563453479833995802077783211632059650600550678429317828748438625321913633793765330853214629110299964829606010082408052047274174126298981510106536143420859030120270673597954170818581732649353551535568890723532062350315587837177695472819273929245431050237625286542055411486034651346454130958390322620114703886736939720205277670757776237193206649004364008473915105298974955717651986096283525546165118267233492961233385093482731900382641250775634286163166348915799440982129223502146734128659448358537178434463546626998077811834242081263590842474901517430319851603057736080672677387033818366487401073376940326840300419490634235708361427516137558234136651311120357415623116195411527294695319752187267434139568897686464930567822437178200804285577235422694762465062300644235673385341058857738195751888021381513520117658113409995297961644535844792408795343195182745954905324409557225805979324260460799198385463851269802916796628983775630638708639482939882312721538635578060417721478159131552850435614573969597078858918392239401493342008906881123382900333296255165692886449408718130146206058162934896226573889817588862609597950410109805348327896272581123075906621318782491305522839291132749123071339459973276716610721259993454561243750464290428026733259361952767478919343161358290348518597957921383967080758647925910239017996124405007241673261159676794381515137672103442520045543865118794106519103356181839867652796569630857490314619599461692507665389238193778553900832143062262438925143245692022558746537423351412961869116630660603981087565892863618793317953729872236993962586972777390548794402900058360547931352667695531682108911296212020052503895900149104665150688261491141320060154124623162845275082039261072193194910814606963015231899315521522053325285106536529469530065587014808179295744658761602556397838878798718890446799282804741830046054962381859209697540205026384581676703928874671547758475575296572384182499367936125332681547871474977721256177023585532567211834021416108548229196220290633396081948342071700454446821403075567280197267887466958352576718134254506856978465547512285578680356080469340213901353424309058789974435794859349275847962465185000657789195142766691875045265574773056128739807805249739887120363192920620636014532005733052461365461913805573181761924694299434262541099379635805567642655287108783321415269995545900077064303295939810071128805645969400681296691735293070344956467223113249490297703741192483206330666578747236221186491645863721072211633352810193152218254627188293860501937162751068178270119405771103183032398256570815780799907696561976892625780751217060412596643507906682242232076424352024464607611918352848396415370173769868482220032941744611332987424742190163775470229469156185344245624386580483778511043387486027344682048350131868293684343371624761914202494303126638080806554637577938991709732395056853133971261933046696014079775648763428141820391925919686030429132598839661615005582859746303738215262545925829013961913075429305175050943915091397053723767196983231649633918549341354368983546922198145670339828528834676270911906999939687259658888762666756486732784528615103138570662430780873857120262447089996962381327821678779539142260232151442874280488105352955715413978722394811433998435377749567042896485246259818637094232201236078237565158371128487432745386499964110071241160664825704734769208699248174277766447596147256319012435403084300209112799299811826021806372495986498501105101182026999623974020706313316532086654511518869263440169172112932595026404909490769561563267430202809103463586572960651309440744364265923219960492702544790964511694853967500543342812722105018106104352225926152219045927027192948697611590197742271126739495002914178467014427309082752585066118788045986852982133073390053793728539842700497157447835715245195205607708382641835432652102856380238905751941883344813416139608968910709132687287566634900094700731147303659281410079990460519985802415380778161536404218756354237226152267898086818266935646689231002036281017045842151445823382490090845193793223583408848825003047193717100508567379792637637775345937345771300583238367431573824986488459813950740827218547871681966848301534841447327861132053000806293490055613251662060934119464805897060969627645513610693048604327377574325006783938371714885539568283398834478935606226496656219510553971370350718971141372669493298732972168807648925158350512163774218389751189805388250593843392851721190832165023520389457368126106042005706368993737527977609569107149860326532793102286190935048221632450610600006077541226708934820337655722191038506532611513267494371535213486956305709062993762748736639135811411218631483591450394985425414172531622238856113942979413158471199671405416556556248214337799974417976236829087947293619206691922101541620574710043855675686685888540258133876132348453701055429910333258207157839995608327139552801542768089742492120964072121626155784143746727390697381346300453696597147383680363632839328644894539303434669253530227053286618170473183814034326764732093182161556295095658890415944761921253226035473267934188400235601145573308733976749328178625754313873736921400501677092307665013950235327425736910404203550029609734643280428254828776156261193652310702285198141127194742357390203376830143230275474051444759132988218790857825923060519688831998488174159229473584944590519855007515627187214127129361161547903565848790931683733047703824895944586001329978862620860739294501692621204610433297968761542634943887812278320533666303690774899908129410027634426577908704403026857186369967412030210596867245264077144775706802850098225969635843600077378144299174125027047044076302297599113448821778558046180671745699471684283756446610933013071453393955902337251646781598531943522243051589053323091078673001160903524032875324486798880050887435414466855120928927173502775522594102952714837868872006399928683838430120037101019411766819281028478322189592902161775829735790243728521508874344461647348186002509128404815202375236522512507284560541003776565884106965931498801416928647097742574417951770140088450840629183926815044936477315547940816459819244262579225759011613704940985144003518648388751530206815119811172935381499663769449080081642009237355113750017402229186423902170241766306080556984181335007095139887532972122821274020553501409544561126408739465479994280496010449730048680548517484581454501538990235786960714763206176569288745034182500250577260719187729612168103657487463125843499428512186519918645901526458079337216414590546989049738550307735480800870444806576012068531323252580464829613942360286809929585476623131958697832140914147621349079107499586573702502279776845706873516464082925667779596462361345388736355232330906156948621258035507350539394587982420771283776016455669768659521561106974505897369997593710997362847309069370123448871852138522492611789703117978206367855285157969220227214403403120456644496804657774641634532752392830056236651680703891482188882289047373444120639709044658242668747654211023584875971324606315501090802487993308341548840667305267932542311554617812939123547419974768227933212281128988118080431043458605180923586103658182712330134362150589427320696994540713693283842444112289676681493131893562088967443767452714607616438397961085927956116924015618996946070270469605981987039890681887654531826419136293214604094825553549707923908528300621925598795717104888854215216365454953219409613779467802589816589412893289272378531050514991632095845401493008897492711519797660124576703738784306864026142684619189015300858601134845817982496927030170956784618656716160207646438327144105347860648693676375244715275183077457947896293513917109237665126932040537961638847197568114976930834234493688266916715408505142196486582291635264417425055046190118003229748949921429328185223476454147892710893247452260157139851673987220485217949196376609295237370170359658889214446915068929383195585023283258427827147442707533523659380551465510471022966192460800356434914663837579638045443785032511899235657052765569279840666435927350882045136197034306648482655456768466175784672700163985978948522520892556192788903876114260906530201460352573064219863699784162035655397709139174459828216947959364064830823299176668591882275861298445021018790035448471269363986543728567478563001950380434810740976954461371349709049540182713235363647981290641182862112664520223590650382476284300710485157630783911790524665461181463608461017733110407672412852499512121826420555263278149494899538903462919538810506193831571814979766571651993162993763947178259790381978924637965661157037599402630309989750526343946736110938170291900643020048817614220708556673692797799596800894983236640963436429261058833616287209474552078272036254315158030874978768282040681451424104146337107809141110470426350120676282341093991317830106854684176635374015763324937726427548246308582906977077345049783172452992610874128082736823749508176407364091483179904591288713409376581785746118031339599158010181290362309822855188095275480906903829885665568969579446832956728880875954604515953576566065840506933472609614067869303339279051511396160686941939985281587984592218599485459490811152701526896905663663857415898124792975349709405603433631876188309691020389768432438899759031152829544130163756713221584292411605742516240755928383713847141507660235006027191799324882409399270209740432063809394957297876476653855541358626774686535780223759130336446530319530249426892631147429941485291045172816071440027514520112004953321305291744159891746281078443608283261360884975414201638353596482541426960273378297293933050830553776799636784932189437694262859999281758644426896759625157596633330807474648643184783288251641710557702476142861789159858113255626511912447867222405964729592684175815603259067094241792232190888910562576382884479133230935021142246363699219460540876337899660821406280356969835218478751432355008016391344926966072145887543270536096756046416439128809706959926407420941876160827051126322489513451998465868231900133951284547148639235217774090978867329144351989881859046551429808305237226028199422660439336958985929194063381594864041686570988197699201480633011680176648524886003646619351535910733736043203936042466679824372335160739048204710448663540107904862683167288720425714638857941623236939635966694510432383478152056238311368794237001459901451409308464469732402175178889772403797039759853853101261322331102368318731210315160420319006623160316702925950347996258877028707572974449395634069863945627944194776596903539707569896561780820616764698589444698626789436031332209923019845254010348924626336682456466698547503498239595715397429859383711895614325144999561828489626518311191631425003480565841308542449646984873821651731153729557051738805581581731278786442657353389266921114377785765378015209464562582492945575575214536501843246088924728815279855169287161441041674104944780935700469769158895395986588248021311572173690005155469099141227837945551860274540097905200734370594966133106696713688003908486547045073611048500243153051916281085268030959682658233391564643627458048819769022586995711079643359467806705772521462438933920065137115737286634594907398561949052561687858942206807150487923862940186007852202408218120458276409627443821667686751015522970414262875863924245371920954596778960892997944106300541929906111654508012755830379528468557586331561785090833732218264073825638555035024970586247362898997271939908708568228089526412440592354034693919429697511283676153784737873869403957740561642250444162673620069678413506868202543882180435790890886094865421522116849500842714514848961068502955680917172282278819528624879590888642979402703836996661256284056702253909094152870976095307472594227980832136737586953519929945422234044466106246127757687709412496217942992047375291217686757092141270155099508996835344827852792338166437800496592987139650870225632860335867999649222157610767731833542820109530324251990595533581952463001226596792901051556747516203425404899763017394900203281569023294323375873930091784036703499622072677691543698920002765358661666862706611407516544829676018612656092115011795531745131187907708634446811091300633724116793788350981077140075885703498047147664929239881786620353861968006138219862030839195118517012335475051393717786431447040681675855728674638420193740432985145059115575971947586365962518335596290767132425301824979142653045924932757527360368217582696397191586890982440081451980560210823535063347385521000349458712532974026294607723229139865852053533504808457213674109374633274292481478682947493625923676715563093608956417189504670791718271368471562675546953191737527949837411896558439363753433119957440984951446124229780474979798712126322413808042932560371441875624951361699053637961101795633427696484962587273687449474075135855517924519449301043294581568574784889859233266806989704515311545604339494708692293877465999114874170551216937405653338081372989447061183216106703799451635208204180061381371314344048452742199031965914478893635813837913020503461588896865893383292709923673483224667678265367100122604732688687773968461794723614119367660020080752962778400587291906503137973291034322191100544077558684745170667919774326699871746013630503502698668819272950372311656748260960554174673838701884670454645529433253032040241727678750139656291923515106396608895290873618548275069441445119162193235374890234986051975893612366090259328732108016991848236339909741160069204712429552449287420395534634568174239054940864221013225477797810328663396955017668243521037881790122455772588953504391592481166235001827853235005031936417259732609637141562094169519437535350744643011632259174518559739314081612726531985397204152566696790571527905378045538787304647912297741950656667827078730043249148836788415836081785141973243380639647034208370013372517126891433419750061549952854601220786471129726397351237730644476650061748601531444345607971922923350334345002205770305555981312113836518286911150027098625057476014036417649381044247484040630514350881987490911012884114039206997328723741973676747885400632471130774398540232297481897670238602624610187921965799086143092611051597763531096958937751113082940461156187052211621446684747377102800226113069754493491376251356495635616913446353621336807331774933046499527228410859714707742804583649835511000116505208421413785738909305776944420716597581781203877648973222088552518697333817694592812136486307309193787583960652816057259474605371912989029144449625661377545846512007626809573129251929738558883148615947368473891459857345234660296373321300419391591535523393318339988059445547601492494763624557970831522468432599717158227078161077146742382815482040359304327279286524194988215671249165223430936844170147915471580067006969983492999505542172240057066419586254227079645864852595413696553499302028814096245874240534088956812442951167584822193292402838562253561844736539104991878641440312779130663456535067600685830548015401943938788244133749058500312398423927569568704183562160696595018341941499770316184526053385345593610911539966965366300922695645711586040320260031957840543313705857735695333446264340134103031894878329955514205122445390143750327695331252791756171880664345780617560073083457691038718574021085499667213716204016507552840371105413514069909825485294667798841869492177654306116669673529419972760517991545711702331623671679047099172071180246775310223082820456442444091364019749103355910571994369174521434499614768288741922822013321742251167632710776996212372942310407137505320197983037799408833232202089191622822732316789450979038941058695769749802572578400829750641216860247479415566200487224963017430788400963086995323648221847911957415344474667425781205032332275985242524593651523818281806665302709949843369843941858537956138907024870923451314577095650333717715457952889305684621501717070631253078752094843782144235652174358591031307096293156752568034723153466009597661179428782810961275845919890139400040764996010610017527753399737552222594964847255945976812992466232199735355930671379804676778441187911230486967182500372593671949065767761834841796288901389775719613669431678768857481977710115408857095246374575094480116535547087344240951304861276848158915521662187520852374195088268274507857383524412544717002861069437727361775369175477669118480325025463782409781861890324196388765513457508535323720699169071333369863595344781838150516916359874161812529242191273412502401017493070972745650248059229365291646402015092809254963422034778978487986947296291746569234069401156724067276698457595660221852980054288005500791313330244049100429861793120977140660004630866361876069517692619308005709330639607268358414559508322623752187446397463423991560928389512715957181784850548677796977876925229171404206600789706019585243297932902373070680959769370794522325626770636448432191482320247130130120517277949727385522647739364604093440309500843010554733810803414956684449142207460923976027157784244256498661725431865024566046783452629220031872714455924396784411051589348690898201453879716074375192216388777368986277289470871834894746188874408948171828905288177323204282101257827503209148261424782528648950895901724343763720159627966587187973429684966957707425052486209822229971354698303257092909004559239478601914200974730620685834507565785490047357687122076998484881285902982425031793333082634448105860839836054590916304221543150349213853355034341690521136752261584603538419160805795495683547272168433655677249937798937388826297280213224500797765415828253555938343411087280486766722468308803559761378424634615112740239022887534269283277293969195958693722960684001670552139052343562416661376220155945271076570304620534640765984565348603398910586690265426248560401706116591742326742492089736402195558109020563291391619952968698728018893185869131188114516766625907286401962952147900631340981071028394931366523951984122286738132883199399594434825847057077613222628799486856187080498320035557586846493120227492270381211563408597702607815475779797008883046440262827603115483894741585316810833339809034604382152636699956648572588293497507332544361954314038642153077400282020782602340986067181484392937399896666237140517788762659160315152747838021567657142526712210452760155729099007318864759623800333320538730193920209858141995789074874655260549318552654787574019972383208718487845837201299025557434649345072458112015925803203635523844088997596138850359118500942786157064493423256150600932434399846896119727164220800110426205824363106906897722955225901403097193485465043313467790402680087766971413023921109744100663736102660902663345344914847793707761678702422195070077235082172799030801409412454876731897779985037875477230102135082487495149043433529935041300252798981238877283401994134978859812579477082597015601357639305625318148357047664560875729323587493539167536293856273455311024647102328755824328527802544752320449381250787779676065946925447538991040950060423213915513176193262250287290771990749237891858250937548703899955161710766658198570408856539921999442289998114812659443209817475042097882184532714275937184573616142368995613487235860578466373752505591371042833209143816417540095762738626641647407517362512925045761078823040369126078235878404176489487110399871948130131333782718744583765913341135433376605060830480102617336937220877086447403431176774015767523545684484268722729954518687464275590960193081071572307974646902000930385815055373756264566490123564725705789503344989491988812788086633660298966199572578641746491969563865899161998576074670752692056745292700346496448921654206924747836751118193579865595069993700527648555091933015735084283412202804107983158554102342119851551316335892946666990555785486234595391243256863541558400929295512093053834899656969251115907133287214723068461976615754507518540406792228245358198123878885852164186486751413785914266285500104623827318315403361636345782646409851404490786230689239867578300125635648656639638649277572291165907290240130680497078701746059957584303141297585713553349445063674437855515380065021243466226526557414231361950908176007567737876417427244207474269161958971144767400066106222545724396807091389094613684561577968323839126341478077223409963801237070857228229810943810416217169434880249163976715742074177898607776991859067608920554474420428120221063888926610049757535568903868501829407057011159751615035998017876910432939320109622714564921755452623818043611023174940803552004409174311933747338671210961121486572848240015048273706813951824829502826841603481179704526050019647621618707462924879908882696729768105384559010813307831573602165742387888115074459804888432719809999060905637993517906694301047210708866999675802471917889337718472530273523704802226774441811426684296521033118134151891946833919543112396946173797793548076495038951614327931267098232984270327879560887180356036803595415409678455398109734310441725796043630525100966999356579407022630307814997731042767193623541445895791697518288517973260205071411024259335079566359855741962132214514991390400411739196980414600628145439220114528161282838918124630126116546041355364008306299130746135677503091180686081986197878517202842787349481234406395591156089209552404281976415996686158978403141400353265696598883561881401805903040270270885017637647469595297247204360502558417991184790007281302104443124966524443173196178731416192105219002171731063107357345946213009018260261308465004787051662942832670395445767188147289479541097891772779669911414659962702116014303102931040867494074151626905959448720038885475830859903790445159654694045766230349961692735904184006727470831062111293479215551027761237424102709989304941354701738817458965559978484622805399328370799951912299768614022656142074471095359247462853089879083638913884762969477587523429400719595814800123538599453484679379571802395987006354474374430605398799231904826957965978612232519996063696014929095105593946362330873712335220180846860971471985668898586764734538843589094308200196889771308520660794821778565234180005010868611954399654937089110731222848820586511236478638002315062590757728632833619927037813849645541691022803052977261340202137809159820430440512546110252857442577002672388037764741748570517547126972294508834859323433728856146248868997890093796816175980685797698598695751011048580377476926919044817345555340965193004790355159170227026278096478887352414763804131607683838771074249737933118250117103992828225905786750994914599985539442562609687993225355393301770743800838577516475245036382892404555512572322496557102581194371914135583623511477743155887191727929117175620746547496720586882956978382156136930918548167573893596037403551818603633396838776008361387010850586217219112783963766297225234387968492341352583731392285527488827677743321868956928833527861668732288596405156880352891243484974797609202117521663372506122969739961149685767397416439356706704209951415306957052472782579703452695416559552585586860844941557716861140357579412208283376330588635882774794624865350586643576947512896950777137042292845558254300798784063017972648215941714331481129944699524051145475347358028965120231155225478060116718268369631324109321609030552132016208470439449342120398191713941078106954223689258108965320637303942491248566820419736269707038611719472801912563146984757275256080340505658894221297021091829992047852042451514228316044842358905668103222042702193115816333123034595260201304339794884397686985148055966214945205373221609892334403718738163516072571372636049588438254624676148376589503993753404086020001836765157172607614088703277413759577787707097716365387505428729619818798798996558709710916138540615127087548262666070369526519088737396787219178130910886896604018423025592645704497454841480005929784015636785241317648657492216032255964547125873871624753685368795956793719704527911116757775959576799018092704446903797227482832103972684382587722424660361367260893537304373136941831099187792601764966800608893651716970822806996561678390809433511713457444794893241129797051875022287168468082633961553437216822145364720963998689427152689169237904794374169666509068606187067346930208238345218139739395012487828261354553958264009087685937641765302521736970655899553470445652082379143180193233125745361936633367676167938985270178414025480903603287790473179599328803576167037846842938441386556209085877106379883845228568098312068993098573994478620940144263837067230107458584066475867789743211300081141203290808814716511945050223873731186909709680767289299500358145036063550623377557490702284584520435311049477320962522338562448746487255161204682388821051893899111129785184193904792717114948276894468953995254922495056915643320699681903888174391238005489340153607059606792420641548711869707670485570981564520675890395295488538151972569154140870741165284509156212956027070715293619580497450365751343286975676260145192149390128072091212473172937851574416704639166015871781056088756357533340023243179226161941561371091922775667679916014141855657305500476031299459307694120343862145005323404082540576091346362248644171373361115296140350807008590848014287465392001461592337034381291041709292274368796117692850746544624739433347112977794797563511932216197558405933457458531495022521712435558398484077426505085346844201095202499266106530688220725732629073679296422246300091772679030280798822388151466844787953219623079323512754971384941242236024085490596356367185882946729480934913324745235274536607977599917277283930624678195680439940166142993923493480597957262916204067623802005929832225338751356527299680563214106936317450285409011933866369282208879085825031657399855362482847614935073406302710803526698542928721163146021717021021221114151201382361726392203165861579617202084681243201594999869245649100310962958758012273180612543425577728255285290742491064101067097722106155110800572416446865772415078155197388759871239342392574632771841323696271914051892994600808540262921001344313790130145297758954335390073090369045141561041746374784025508921652232574757722561848357662156370032571184126603634123746859216400765920899636204266908964200796843284957630464273051807054265746027136874455507438658083662190694989131363696503748495103875590687039936673408564979940022388099679480520996124906276585761493777137229771787705707120914727031256164989621248311475024578176047665517334146631967222068701732973011866485922180627291485695727394179373424230061344521371244949854509789949758798286617813292496469066962915842434564209966430184168773843950170559671253677385132479386619863855892347770022741362462876057518743812631673058698745118069131981072824953474989327768721967121557318386846393368198979024607939000939240950658472349073181515977413145182362243768888273215490034624533179542237275562563543010603834664646127901511200588761960641900404291837705660839450874687520734802490782192415520963324871266838009628845791159423124567050632874623500241069603287957999859460342079258734934963255120319832553541471662363929188098110447609647306130830589976750418502822592389659024259323170701703610131865551242906520969218096181439280754683928622231699867761120721032587005516227839336996988420437952224146431842977923980400533257126560297614653656439503985353464411280868315879017053269522452642213323790437581141936343810142242741848805132037915307595410416197195922524045977660843114398608894957404165317863998801530346769096482003696287840328549465953920375398446225238204619061819994990264851265533568801329473394390257930637199321466931654223662295137141787831091633287956346193872697793293100697675340006301192631368226025347758425385718205523013166245269459593086576445035556728023725038527726316297653192181562187701052316184396479607225871188829240196122569759996398123982389136896073957414333908270438784447292788659797456695956770291067043677303432722645319959664264122650253301156887017882417770123273356770422972436258154909865777202946691379377088178022379052915886279776082977659238216761982726763257327936608817533528689006308468682336258422745222269838301157073013588333868463065700610607157617670465103881994619614695584329786407203747185966747181030648701555811103611829225076181013610004898753807148107272033565854951103256097565659472085756638025851964910104358631906784108568700853924741336111608394640055908564898890251395150802707788685906053310653001019278428609593091018003611143605819216402834670706860539560701263611772636763945454229835553190917967149340708967966759934079398088241595989683583169442359335135163925146646940874183156691968000432554432800109394602096914471067041381027796850962845524347324417063555839441722046769338243130338512985989679542486479580180090617213747046181414657377240296728442915908549688134085758786735185572011001159196631052937596075881773935894861797850812550950843901302256834915183835078757732143110599158759620898767130571784729925485475691743532083772689185961740543791183790893099049229057586301697712952877388604497189108649559218152892304999990191115847790454459192115652081730185616629685478179902162591162730407570630428319576937217834838578686564370351042420215055966864929229840468953482526424057473962851559518529874518938716090065231055833756595306498637334841222092510148370313620494903127248840052470905605538716208156650699538479743748784535086736125112948555828195353081650114511698103459906324898170493162268038288138370189135715086542404423240726015422999735823708485071862404438728320942892867318831872682835708226438381726396540494124331382292319452673739159712113984020789190348330387242137319427433486712769183609360923870193896634006739089986143263568624579504553862509091958681947331828843575134187498375934884218895250025538946373964011593216680743749181073330200582052933487133314424227348089907105121167604432761821537987066983563775383503232571395703424424438639560920185668540972344884784967449032883804879352824269344644848296499169475336635864755557283819707650637512568635324806843731637843504337707834977791943257810464705458070603139159058867645528459220327356820424270475286100582558043026155157023909021300555472370376644061426394632404467682401066207498822501548123799713967712961845704869762087873775383479760391969469345989817041721317057826419578414172094989894789550299049936324377836435991453417215663969292610431344845745509594880803527867010426093953461300468216119755058248427263710730164004755309042810060108995448871894505178496019395116946769420703163286682130151924173223568250698965470907544077949546065902315867368820999848104384822835599199400654441325112671865303994809419976180303832790193572750464361008206221890439314834395330955650994712294707210825684354826658749449336048002520978298926156418984215701438881265064670678032260431464579596065025167928379372239620590010549902258665692718600421066206605371900384192247767667232674777637654024486833479564951723852608479513412483186074327800031242717649098536621956237570795740119354007240900893066946626269638989322063404872144115201725547699471640668409495657059845499441838663507122538471101908263436976079753892189570465888860923102352908569200395316095265058146485327636451408791262952816715244798764322324278592447467122880806545065376335747945337136480191857650925048010868247899433969722951251608851809396739459958951180583673972461907131930871379917120629478882183566922764676488009928817434234668168801702357067417676653408955696704423087451653086690545113551244668879492790726464516381107880286168416550156776166012702601480529040246822323685081117847638997978452652383790672518363043723837970366859775073054809082706572017595515624123047843296897743924043971886520658849163638737056994909924677043317636821308301567255090446931062057220157137429611967107352730666011000496386955704561290025903775105302690662362153025925282767935552274338213119074416321771174049833275939949465461874111380768172558684406572528616556921090330010117978143737388500624636370249301818290008630986843890374227524894479965187040297435183087849053017590406053222776009963111822962212484065369445377757706782483477902488850601242731954106035484041801190788152864678496899387124172929113956448180570606538575068113590856099469605580328272322788371737092438469273432131141142899511465234907639130612974910298304995834514467470585432285793681076617339886121267243455015324733238680915491375402778185430283149038626329748893725705944090117934567913426705670737071292231595763820741606369276253603991873898355130183686670796158901430255754501860980447405370323372346217714954474418685075432605442976537828080266895903500429607616922678669747668917571367165101043000308901309986192649084708526260727755336786677638196784707916819592971369498875939414381649423240955299248712440892847928470219834183000821171106382409397719386105245614660272430786131108517087094238214832327501584406325509502419114167087334783104808433794560163106123839991998648303430532042601962289288675795323022084207154781403735714460415494043266408979232684381047963169842248639229397972594081448782776107245903460586638202883179883952614216350276492257775225080445760060772354686152529421138973455158035395422379493878407567045883636008508252647596199406433570181024167002066003519566349741743027216178213939422107109587126164966307915127836846479576391046057770133642664124062132778647740046166026018837762679634165484467555739737732450169460210192459937689544403413541819763182319432292618169256076065471494868776580086064851338034399680181575015783691722533540597780691627535457710129441452522362547043010913202479565466660773986461227772013687191457866803847767476089458361283480511126541944759916431131677618118774289213921892774303969302182076600804508416254239572297799853416664061564976546671110592033663789802582033319776886514368417607325903367447268400999497032217638559203606935345688408827645547081470028322331724915835968368987549034192270194220664550370701977829734790843124694148501411156496187992764461835606929221323324938152992621754371008069738635087441582657297932694238667287628066351047889297993440833854968027880640676627584075738536176800503525837361781894528600563679512773656576419905832615807318738163886001272593188804670656689106568320333214642742593790450462412848982900169089752318183144947221915387954922324434899043400120189829770707656778905954827721023381813705125659515212650391065710407664804707051872692847441876847059926050155618797817992886624859825176163872204898668026592422000154383061719541067192423864049359339990157140500170388144831478726777885613882723159318514650713858341005799437358256052055375400203840763962698279129865401548277719512474299343251766118254346234277093974001209911621617610442842187832635811216348668342803329839997583684766543489617122909509093007898202412530945173907434695645062475708186145401348555291231368591406942625718586202155776054652861214503350359918042609612289053205471637856420319401004585783732819018552993777048961678373697522912658314500625856248092324246941305441292138961837111772719125596659999611288651896036951978083745960082025753171097302808416848476513121067034462649866130821210930904395927911874291718498436304281952459375654912173458797128848822400697914415379587400918140350667000111796733727909903445270656581935761791731560915520365627554613062062081563257121080107484701833760115302043797157700230828618542989962796477635058824267610665808097436211164687667453485783209089040470830884121313429649700106686481672592366103269441472592836344537353967953698752303435712438130533196505300090543786645232137822267083326132911964956610003315382935044891121154242985192655657485024432342226981291149928914890994593503293385051916001302003843428736714612161158123448923345639254356388580275053040031219083821258996295043530000254961774350188418544452055381482660808690243805570417714705043430000024029952293916896530831303818179730261839205559590054857993576495203551849870311772493598478158505786526099038664997185632953967494438750197768864753462404396110313432591381154978760915151674732512128839081350642245275325531186854692503589915749105908076099663356859024079254404181650604862811111460467118479747583603923838516971481489331574025720547574577222211142451528993303878200813365469753699597786232776014799846209090828491541430822146059166160737408354599226600682273266117431693401390321305086040905387734758647830746161056350759651120521274614778308135907572943146601703837037477234971687362206747018670104487299050108926573702596373533638422952234975362091124535196200879646362563418021457873196299977769842519254359454326984126450241187816586419252991259011884576371016564922735118876272453754204430893818895911483020932592490228473996928990722543167955637528312574310874700055185133430732846540386440646520338979203006153605495563974198633392345917161541586384383289978242570516150118163206839344322060390759413314993290881198409328087166308721329568689449175928737958395898815405315807086670092752320378554055537616843713621767564414825210770141004392090195866981543991886243333011940294941642587568560722912110079603576031139568531314683804883184080263242816225366052441970885717338756688325726950747773918860252065030763870612828023105515591987768873298187053565913216914754904787507319054154809925219994559442615407234151787315182630823201057276628684751150857089444127263646853616357657422938607824722763471022791908686360282340069063837165949314109153521978674282893601982312011355908471264343000458577269723975859706499166876889970375259192367225064164053380180366775054442650885903146012227548673008657225900170321619310787782155974541735174870995782220885959432889516652554343423395830800584036690575030285901901108282029383455017672367277665032796735997767348504430228133525423959452282893515823049449719752021443894502734289444573781787222853508431987057308721996122184821499301356647132657362543653376360738538304720141580024969375597227990011700054545893143257585474838228766109819354217174351851766074272716626387452399798042861232296612515121746074783855020052883821706668923423678681333938864037602646345629027231386589967429761975710933438500277899604320202550931542802735854558685198630973282830863630686097197929603419810399603931405219529741467853330232946113686926273941668609303420212029835718051206737387732996608511721834859889193383336181191526848930531601556961358673842418199264019641360997096346410503407253862030601570507866625629342415351743037911051143651014288148554917680453973733433314613531767181451989831162131375662939963273436679786580594064867732925687256230149211635803158188797151291760428595688880561114399901534521802630102724099581210989734890087103862888141200140562432778151399565580972818610401899368212538430542304432192216379084268926167958535639028744780699326484471447511599538885030826741586473407201524345444817560598458216751413336890572982832623108506085614846648347381222199693878889104415787831413320595755973266778123750000881449289895258984663929688657765716057990287841717215253454064819657502156692492335801254712111040470938476543421473958048045896851701421878098641266604117543643978829766553429012028556283712825108145758268844423041766927085192470661030622121815189706163361767402341517419359457512690535753859543224464561369702774599250985177358208452115342295462242930780706313589814976073631664789545384970718694843301931457796153924271071864442930428704322868891066483374492507375202857379556133524167551138863010100627579093305177524103755499897314101276344350341145405296253043635019544536759742822972620364817153404556130332286689034011779099403771872495474347065537474830626725146576018605376078118156751512927990802785533993856744713537011732797602404536692323403352964703678370319464127543583886814427463758195374051315825141949509999007681511206714179924628067134267278577985784909335254102796712224748187356218184710240547411498912801664740095109304202745301075633218186002849466033906293042162635448428552544847441398390151274784308338631890456053641809224423815948203355074645764572487783014956918292510158291828997920396665126367246493461605347751187487537952690377393929520626349367875777279760937020163748241497101456243493133888485195567767359445545993758208455481440055858319700343921750883692664198689157025170232048610243012177528177565039138467293673917627585757716326456769646797707548977024433902207860262858465556297774322335603042578962958186306757707718609867128548866918763644756204751230089993937506008546401240689236259571595411669176069975981283855785485339491636978767250905786870319583606071996259489760314764212519387464912145133995078722839285475675079288022224334508824951095491762976546017894893506918640770345953703897742666952372686693447231786281499497460400592452964631891471924091354618031140278576340286504890792059413389723108408016871847628503649229898492797916364886695643603357318046643144129788293243011910171664980523365946021293471728149236856015425120496429768879660488406791681668409485636607855143674179456349509588056360773288057413883020025538929400926201796437584214350064106892936247047460945281081846648599164051830812328751121898815815045657230519794779108189096911240348272592601577432187345227815947249441118421933873197321367256034480098924367172729680154374284299036516552456366135823291219017260773708497923832425418037252997561269007900996818891292392755593098332430706517526893778470491845496522771399505822105718760193499433490909949776534816873839945897080223869133402647480426681927987830106791678629206834664034161561720136295299633042458439718663670892534640071087413924313880916819311779292800512584553936908337932792538910620640854336369073030148747892515541244494404606997761249028535010547412913866865174352195656492601436116032605788669306675049445246442274846848216265238876771998358917005274614681757135091539232210515257004344294296541180988688068709335913653874659217754780806864041252772372711473461949516092008617909644721922829014370685353162021955209716413510845026214328099745143459065619515238679935966394451844253819393285336422228339125950754026969794090130046083305406444912600547114362398357562248567340219265416330354354594815702121264027837337118928017948660608722538759790300539088311615284557106628258665585419737720333042058375930859107193476311405600358129937596871272000563638285162384466466568845894533415335929450449177421826012258143263949536179126770754963058055390429174991815115889976667530775610902131493624531569657940386131188095551098858411687785119486081775333728984705464525380702963645751593147447512825025681472783377274714559540841168986967016346556466572647527952702869354703672935606922866343586286166259938246169082721434643201036457877209917081510537418429419788233521250675573490174708333275780234874210317931674778789245368795550528642239890358245016435819454750674560988285039288299528439580788643887967307992832808889254744802605418177754967655776659937241624229045249500547169367623847122457993836949752734397182373056874082327144437933215606284232144808915658651977512104436300884572937094404681509082379751437467040887176314531214505041772572034459886574223945668022476412415315346226945463800152139364643392797640632940003586503632268201548431722913176071762892651460284291598037900253997607207421620424591499637665503617246827783557625306300435332153401756162735451518365709213104494913941153756524881679347464687344057268758087898811814920032876329732856520779082860049053601878108264873805239119973359302164108162694495508046425637888396632232617769090814218029994686846495430381267889227965263793013914778686928122265903614174947133528087961059383015724414327065364562923384296082838486002747968082435499050261215588170024789910167500948991370084661202655948351500917066581043601158004473040270749738880084544890454654239951350962177313851524020379156008575217122307195160931651801537611415099640449439400891678522050985024947427360902742401190984266266114450098958895948856550617247342494594168444245708691390240237987080351976040925670010833067302026697374402713709279032596794609701395427190557128265207806907610740734125511902036343044437485521656842707100959635995513265925592449574435263331520239476357537014257544515781309733365723509041377020110678290986927803348212193105207724414826176983261931664355890982925953067233935587736805573185158791136372136474352041080372297144427625790111847849479273458247069425248442190236760231050259980409924632124050890926807656974344028217043103943739006902182017500452649463782352012464379452898351618871233172964749542203582888144434249805587355087127726712390781912403124455848946489553051927849284386317559794138334139552633150660374085263950643852825349719700967944814867688790075519823486599408505588730715214868148198516887716064744607536066073318011615347374323025819422090286639455879278089359167360052825782605786920247574591863347422726835039117295068554585791604918224254249946920358509289028162935522651517693732646423575119572039242030599194543710560938986709876041217170912941632675013289579549453163151114071668263985264217225189780489148199155313227526460988094264451167343376831181314988222545471532373392924621515957647293257329817889972995221950082639041088208891663807419821286977485717166871972733403730851815576774452126321100572937884578383523683001302993842745601519063195432642931608548606188897069346617964240956287544290908668628386581447763950913906217787332617256708368111314376347128850428233770781147622198997257682469618901945902790589849889365800364813986638287267090111532609318382244976591613295540238399561706869412291807424226957006993770965031969630378611865805546390425457915516187412644358619707967341297220215393567270818558815633250329891138371328448292885435456400513904601482398318951942194503528601080226710799549014799185392212754958202925782072222437134727896070386549446643831582001603064622126065633947117868512531147409544608784130005893184204581930687862916969713721925617972713543087883926970254619882856683903203050846550209696222413307899787861247822212574659628350709944729677199327892816366608064782936941663329806308143626771749124226125050638884544478747248186470614325306854129525534141913653080764589944852819911413458033883764415894416302413599967032130320782348257259879958754438568023358484995342914289507179881649546620103799526055532681143227927368693923045583383769009524971746664839044285365728029773429815994895377724911837566420635354201569637563611304303041047733983065642508772821335068903398879799957808252611645195319564492552852731014022135332572368935809001560697114550303821950530873027289525637197365510154337216153788829597879501011153087131183857707683097236941818120258748970197614940991267954240814617973502505343766964236559471065344309708845857716639690112542982225777257571467105672451431239106632678733674253082691376801059734818389597861777290174698633502476599963087148029553226062224030251993240887499598030049333013474874853036953804411961699756702747812663901894538923963814871194450208678782567743935188027656721594304814923208386012794725315446469479721802752685630931492132986858281095438709364857022453461748386566708790305469419037342186272823565010767217591262069750048565069411862623343757399257503205675302137047167673460455454110602562419864959327555986463397718786795062549924952947357645581575678126838673018553594051477307748980107186197409274496818212098239258086719424203728247473835350725107732111667894873214338874034373519090948213279830660166091752041663586570150911755637762071865433953859449792912742869691592349084314892288987837461963714457752966473018777201500541406687511770846255314135660072916899394639533178451747536386288167299364024720923515506058682147426385087525620267320010009202478226227226406304295832440262402047344256387590286804026501514298689458540000326245019522936532033040790945484044024267294321584947428873071194279243563495306250668696686540062378545584815801398256713328068139482201489728492771970430374958856598610595577815433994457595206442171337612381112663810321012666702403773027436546850834883635071064393235902699498121693284077159131473898232100268100126244442589201996335368108421802697468336708550273428692396279693339196042638855698159509613775629339011735492755890277036000089415831577660480011780106035298082943292163433005772308810166829212540139128324049280466390368545366561708267675257457208918757387465514761415875956220981846775304901589963830086935939373909991102621239605326814290997800030993532477833910200947515773329119433491584988021866079461105550636226561767202078932921973009064054877087580017669087756940634710794004688212174508126328116231819660422145459517197698715955969030705094168454802947193616075080870012472863027524210024155507299065125846533679342106409911607336240083700046158097999648609056630354900550873172980635346807253832120444103018029882095814179729231685162533943974963080759037676004153215875333960497311609470723546162681367356624690751686450190893057496254987952396364363365358684390353865824771571923516296893546395666820781881517634344253242984548656238705145432869521461006739578835567348188120772930732743264112268936726337815908305172837454075276390259670875100377654852550224750946843947809012705538727446287530801108761050726976235666711896775049839172245942447442736886026026717103796717691625021098146870297138446623691535666609092457435971931819934769592373928647114592656641003053617025847351820556400159681388334902106375559172846884452263125254758019117738762505909978805672618900510137629677955868631960821241260775392120296051267548452701535944025404959070798041293565990492442282261641488532232182395292332090407807078665644815712651539631920650341141524833346445484572027503039203511711600231400750198922819901601343821418868222599768983919798785629684348652467391243028637938855197040965375737976773161356638560132204821616991733248091242688099332108204957929249012770462173814820343902903451998753923568749305395375062130649104752274199154207978211539261251689183788915608432406824324269705373708550741671204564841191511031798843038972933344516248181157289471132698610105630595455245071106483754793829894436051843568506888116462072394199719793733146714693269251015338692564697836620716856835814679010890085603783060370571949193988758091749018135767698482841371995102759399296004290545833286099913245366723153284584039055028686889203439551598859818832622113903398347159301018330327419822884485072397498445030868711698875589179376217227422672432142636285190512629966271440514408261809048950220975483156940956718902713472601655421564125666277927903768846665939411222778241482732403624586175573008869716245872030812977985250433484245339409428522294994638884637074234945007992516662426450943030691296670928993343062063955700546656694649388617176038082438659156679731444702408310934799711979519054020847530147626395099559521332867318284431421508137799338873857570321401701795911843147740378492991611802926249441232125837949157666151769678430063408314706781099124281138516466462696294321601694758289204469184820686854214775380750296595995033932128518084292445583292543016023270703238482751131915994728218881551407725828119612172352049387267493806578089124788411057599704179502484563776179723361689213799861717291869845061051950837128008268410461772735231987703133572407250339708785250089665966596398047057609038706112967089621213020792813189927817260946278031289168064293475295950361799048434448406690949170412212166325564071500317387004621896468853552019453857708295270463114094732901403525197878533456870883402954798851146255941999575711475363841668137867106012021386796093623011908507508247189549285965254509172746468361759965137785807161540010112086621199058140513594694291688648570409946940251626564655919852104522200370597647611984379423866291640067280462205136500468670350139526186083742968281933468463073472771200151693313159315454327114302928951848640295918966111641933341033935915968533123274598703717938586454905774241570719463157497588493046433838159459490499353958066702842726715312134053850662956516380594054883359606076147352550581327593147894092834163628127721640741324326435066011362113585309168399382947120728037020272553183608101946807686322000781465098176650745397068396516981986802743962286262581483934923191712053968748369649272579271880511038057897906933376213497020604265475227166278064396033405937732149539782268140429454647787462613992433876613321581639543303866805123364686729021508245673238520289109808278679688349394878910381405242541511436036914583939235763023869187865484492859457793294495532480266983156002576297541609875951247861660592840135523444310882332698037600646452430009708321838800174859411243928541035832001539738927916290619868519259697527430273557946698885761276531418140603895886762651733648617347395313898615748005140393380279957845703082359378914313354048341467177418795891094675029249555826410281801640657787946081605782251845907561914432738071796305880324079140546846591868473530200254935459738961903088312637041631350250072389373414879432600171631077275104835576452107916083088723809851426704629689895676656149673111066061751687801380585730568728500279813384767500945396932653022282221216046262517504293871870895176314532818893304500121217289639109196775901673715653448164753755923794936048537966131500732120151934384876820451411919367199756625296040891568174144265627399864055278364741986166683803251192037292617059448785036991226930776640121880262543243605561739331931361274509524239232499344684515958974140321449263356668215965510732860688147705702946409919978625846915359150325382763139676776172425618140254099928484465281225559420114831803021905766675190620986121199517575508286664523744838343860584843612802886768553754288353051669673157585155021700310717365858149350231287685615130681110651770583129167895321939238662643462338501645360340485274800494501515188102347435790201395984009576121826718113856198370286694619306226433778588285243805721656648451350953301707828601055655985286668053927289846169505293968024191979923506503978019838766455391989736442015522257755372428045200816028854606792047819259503999117730498006763554771021897448972691894616563374110202761575270397201889238519354948569772831447019101177658309586672910788600344070279576211104518195264399636449245819563447029422357518790450397528740473120784453169981729081703957177286684963536840527705712022787377864943319309364446633322296024503212175240622617873652289602310763798966701571445616871176910786941295451572717353363175429163827334710817729671934375665109042664106004659243211229543405967226814126949988839900290074136341309582091162802654804997596465683507378357769345056016384204670374595400298941783937652931195056588457964628742830081031169975328256291935011981520900871410518545646587228036439901889897320822920783038436039349964418315946508318911953009667022163661425926626453815670085878427152010154074760136278196935712120245822144431016170451508451411467605761578617943293868835581558735784986945333720869676361279678602478436970847727157877641814096864904131213107830608757376087818597294977910930093237096603013273773307145753931980641320902086156934683356130501692082702063789308058484579430026741131681993727241351599104362655599755518726192875521453209337518505451447852854428339020382188622568429471989630508270227087206191590573215594246085072844778101575145433040391576773094622486784460831453213402754142102209305724625386317310429685580423286366723907185379876889916591966398552381769939583054118897466689582283808865899402638698563865492467993886938633554705096512855688592391960829011968923684064140491811936657878912053857826233023931776976829102656305579522768978063723460860270266306108011572105577393041061787380780596801054730814733521747531018728246464523811981379651345953287192884849083556888030450828617555532003264825311016094470770257997507940189316289393551599778003627994688909157658559373520251025782914284202329727599280770133928848415704065449225575496082332765447545358783946334344695182056695338680061741181995207676572792575077485312731811911626328842126159639515810818027118618956593998422230408682138803127241170324590477248131443770594207639873937439013031714872597120143440150594765473743454792327263758003610785122035524592556409095730031206893817667352732729971647843260152400313725338119947304033771177596233970050192522924194410706365882497261404372865965613081777907367777198125359860451895253108236340510744243028630183257063010065896541258887599123404242658628553689971084608326915864149673476151325742007499957512592949969334935733375179812940850930873117407597675109640660838748269781120902411987260351938698591883436723005497875671286378200027416650599359097812705850920225380241876770915402218020352199673026612131918991734802998403509457065594996160134975969616343327470847957973778828267227108771294274540836226969426792636042806775075611689534539036543156913995657890786482205194338292885329322077722226672236829274677549611886859953412299423046502452858100694349300591148657000162090999229262001039941515690614696511217394730736745875006425993857689915553888904486712205738201860470155462341232818230299837632141784961404711952251813566709298561187614129137564101692098905332820827178232995612398174550359375567103818503446832590070049682174289139189654846472381221274056181380665628706165881033925650138311080930466989438656066799356800033671540279911848840732577960987405325626109109882456649011827702541313897405349203764056257381527943117821964145129200771945283294482525819950105834429042040158271427268895627622232693608369302196167733897375156423222337672778413523177508472250023801911717553992922076361446367854948680286841284422237757289898794504601412834973114437279560051781129342234461734916642282787144513636043124444553779921872703488036437279294067304731685369358191266823516210014699625935430883111217039646319961954042013036693974875399716916226336800496344637283159896372409559161826618829874938227738052963859270282271380357250345084100200670102894982489700040487650138091476730067475193101516718655165551874787773628261198051873304019423382641264446449697626023755024874953438112678570997343650231648510239961846704657151799792246594903469591382895996979940046084963451127061042261275510317811379661724175193381871958028378233313956134311990834222937841651699427220061205911209611138319581546429075770165583746508262484716225503063073733596700849869559225158166760953743198092645771276320357884808309349135916544830592858884975905186425359166771248397380044123332534268886220141996449249841614078344250495078638286838447565909180499943201404657942464992305711254742462046061033197892571471217022774813457012247548413861805963067362813244192466042781242082707761395157849665824752715259374297152318819979101427188515518078890865620438013264020286633059896237099555869839641466926203064823327882063375881100839680816061565465416257632342292464385766330196357720075342881825516877075920834536306820975886557507356375129203613553237284754420461522868807378591296197360213924824317607162322804442754837228784899536594159686536601465238418092898452611224433798700074939894736356297694798333377438742118525107263386713972063366233810350799634496915460065138898976397266732456520414471120668219784154117168460157082957791392615641888182601684937485762809737631790973274963193460144609434882777212298432259129837783894835904638138047164979051658660021009259269892052008128256574157725688084319985781922495731130327310662513419088523589271190040213127911348700749859160160822244251937301308000254859327038474953416450872694265362484518840510505427153862672499996437334903841511625226069378462561491355670062952698456368522144990952790323494895849853803918928254379419129591910341102559854286532819730324864833116064199249445605753371164451936122186347628498766370309663714810791707453000232086367917570157329938528484155649825503735197778450535479894180368142143107797293312756331749521951289580960314495790743332814286912112605317660469028539878976267200041735780685500653256705551750319985177782564877675636328590052466104400323560482490043426452986757361469147486433101726471024425217075805744910990381629318863198864413061934562023515380373545754326398454292414577423064039730167814539763286349155319518971014507490816649611129222702410594502835473462974210970199964856225511677837838776412420697392292443877081935653458373514190836691980389028019669404967373927092960783106395514171036737072889379559544056143249384360959933542794233595521957384749373432842219292494912515594060509612074939182494285052536344638770613454060842913861773174499128476220078700471835929303268432381879186290554104484821925340093602916769523832485038585927730882796178783968890221914229219774370509943111291443907831715553128070669467189593590494242794351110899520768765390004859794796796615496899165260066652514588107155998977936684480703051747241774537988127836545947178002399307086036839459714130023889063233739344516020618338876514826163837806420329249775600194859163828531304947115702367070811033184928637786199809552276001180140403164942943024834782398503054161907947800452010091697751332113812909331715841090937729614428076161644402506698445818585864378894482635655589047867802586329123582066903996176859967137128830334612073526299166584442579243243294028478123638811374717969192332060806268818660522920956292264796287271737561096451331217909210767700991233825781847753772081526138326789606667638339569290780158389262566368443183573698050909739321191625504085338236601657846390634506203966586450146107886050809415701888646423409628193935098658580622570381816036969594208582347441882730819585428476726861938269722781029321384098499781607243717823460473070872111563946604147553578427638569181294518939754268250557406641850066845341983532572067411722136076724251890075900169159025272010524366527295198843304343394288477463023701707495773238424654018941867788634038650391010804139371022240840295173506043689913492376615478372374064264988013480027695986245093373731029524416342132398788679351631176396193990145529665322561871475963493263509169022456495160535252486688951495216407322806026512780336353645174955658914239954419814637504260693359905234957419733185102766390520277980397261444200361193844328192868754663809807217698778674066981728735822689362159109729533966134113713688634480316432926096876413352628861973221039551449379907070187895064383769673171268742036249726702704679676972656750206864502483923294436108367418031628550000500976203887296170961927188885393930736809439240738665869345079951725201508290771913881493859699275223195238970176574428063961363825230863416726523689538206639929544684805025816302024466856927777033699244705322636335558927286975602506902985920145261893792481636129479760234571745837768569568610015748956151879053369639469962296082743922609995501331614803860025416511043666596567999703434886176108378879889862375211980361031527623212194173610171993759596163392797627041185021668255181070814572415321789642222848632392545796020286243558129813542937453464836547866780299235768170253174388895321549288802721777871522404879091259031126176797014969112734162800173732382403261252589569129476827001910070523398279166165640371021107976894684460692299531412251239743975347077789911450117304787228280605264517510709099813602970386385666347330159429107400708681002898342058717054690218634419419938074332656444744558225268380686157167963525335326326480158844892526627842529245625666324927297198887621469048672908706026845407986239199977093000639582290688415050363637632819279700074269480854105967525081632791660261567136996426260491107512683471946309917337105531295548365167324676609019334247049656235065798217357063524394145033237903634483230462099532007758359140202338085201157629989691401586709207533269473868785435767771889040133402877626779719643665354378991347175214359436680135449781233631235747779208214262257722995253753350735587434145202818595274317585986461296294636566089210476826700854053409127538497798157701918020907453721047939491502779229757148749820581849813742101045921229003567498422302708028041618738421378962700616808058053627129722731484054668502016266094157322426593816083139555847297720317790258480970306319436567585317612553391856133758313662540132481297255811654898227372040920427147036638679603244219416353590505080791446146809822549024407610924734490814899877498402072881305274843526728208572512888206689609113390960554963323146693041025240350622735677899819237925832760746417323481587194785881587461196078446500480816167138662809015867205337537096406188533696117712300251051700245656912738458599330836316514718184893058164888558845395422476794020622046391997777737916277975393604351316655935579331865592688846299606570539034265413989845373439588136521950173879987982341080140139129486726507717901102543245155584415005580455058900556536259272539407946160185751976955240846243926280388796052774193900989273576208699900424592096394425054536071071615680780058705547119780481947804747574599877743560100332790927963984210749859647407666547061928433673881658965257178705200275890878704583269653091833999061172549260043168219487538124505058407959454209029327189413443475531694079477464895730710133876841455213386337331376545841958608595510711222161743919320795509562301318120391841569241076596763748725109802002229632270643049029612556932114813642555407379885492084225356453678917597221612301077433899559748187684275923774130063379263294013432142940348549432865420964133885460095258181442628479687975803695063287328811264786526834547878707222352409743562478430825676715157654297393819706595672194737404831612667389162535659352105289154058949752327757017167108552863297710161185068694197445125679279781500742713044648591598072809740584069128471957859760807876080424565594435680490915747791580807466029156627789872865037046558754570690523229952416586639546029556182179817677680001480974318832229962404954447982209138656311444399241441690179878481359716583157814559341839336050620193615575153149592336685376027660236497694971810498698921119039101630256031001050109845587720185649433741665543935403869161051025125406256958056856106065223087390994316421664239273621635199890734226657725346074207698071204467733280859554773366286136494827947693169425712037080184286696762762573897441947912921526590574747556501774147378697018544923390792823600415496327930934170338884641564462659457327466750430431842901326498512664066678930269146204101734055183597245904524272521168634296183990403777573043748091496914741169362127249052538647381239301168379515044024322710747029813796514768564318581214245295854726219936086789088385079997317308533273742541649661941498865892721725472502245607415700752715775092637698172392085554514515408400946910135695205360699688574162413963719710661677191024656279567775523114089603297045291753584162959294323949574604448368541411211133312063692555322127626686994604635986921553856440472431071966711674240584197633492502811310866741922937044828159428845340107325913077142582040337170550816062912683228345630606006435528112805870968655648905585576011113163153464695628373359217735699791947676382394204655717279018598473226054277630555665403028113055946307362705764083326658644669379470235380941181040284126938144653260555943290005919622202498686834418043446176441991005391703495500743339568889337414361009332080103862007220898781832457920719182872465790339837894766559537610616575121381930886916158490451075909576207561003749745797636443284093429765397730499714072121999290782405224535514056099678975622038160190480199629867903820254052751973480230329124847741521340239157065210326214415623802568463923672269781970989399160000942269896553362006583429634122862244904341046836781066895443452240634876091884719726022735964874195180795496799714790007087743914854998794679126423225216193352650405710796382473619528151389016076253889648857950369774635904245631706633855329166039005531343599492586875261166323291094757990281216020270203250098606415965306050555977594371153236273473287746941996663027159509137078979606039443851553904685778720169860784381782282675694203339034347201171665278330967779091003822188763670123207614718146262522849235566371987578910173812606832535264811651874844187563118379272823851518671613355425138531695484648193397801833603532086717598623890910417339015991947986140025365983276945999495759880104383555480889327033927180168767934474240089127433303034960033974771894411236087718900517922896874816898749596627992564254869720801782530555620877881059729922656873111115437958509231399946176176158747696807484352191006111701462549690102234082784833115585674999342003010158670074583459974166369249216087604056642392979778260242396992433053591050367078683145853140823270474281894802644325578845528971785625823629321534486048973344531473758497292141516018753572101703576914291912980388985464021753916463039535021613626416888135215211090458577512543868133989494392131175453339037681081354579810433557850712019310312647622829890720529354591592700436143284778750426785200397701087318038597097681069297566598644108482026991748874872646734391922578381539504333099793107003255443645095065651473630478942435998555404713340475797863662425569611978683710348197193912004866082856017626807267758505597255644139308257463039704439046680254774586810482142751807521386186858254242070777277989292770526920637190225247931296423694714270247722795545085403205317470502027258085942209667306778603925220363142892451724401877413620543726582166661221677044850154143789797710480805833525184165438840649261336681459260182439249178921630541228583309177057415393398383546756696760858496329073244484893675008180990178837645064965462724196988253923644075444939787860622748228471580691806377873063966440488091108294355052147774768141572104877702454269848599390682011673335185185111312530021511895612488215610442767169946020910097471301680031498131152392293935020226037672938423965222760925841574244030481411146645391294092497328988712340531124494460481530627495499950661955019655364269956862868382033439850889429688834921842870743044007201500176880126115127000044083887751202836061815631984229349318025091640700191213984385317928971712698063535423834583973599621640096788245806094403926684814619426766171792370765501451740394894178326099244901959626853897913347423417998521766390575397131660444435910965244785802205576065045738138215692119887547488066887217443698862228693807415014085734232291499662297378748560038600937563363664314103106769606844209937244786961823783931890776192767196468932241422544477898020829688147413266923166589870730379127856718926845275266437108478614424802478315670434810893555888288497965659929097950029281987870161403653849639197379523426765262300844681731291276270437385041376822844017479946668418856215050512747761487634613355315757742983618894373059623105699155023250000809769264963767976911661847468355595340110417128540393558288219845757672346486153247069202762982686046286664703180859127143418293811396344918998347645598352352182349225232876814043902503964714440890551843566599957430955460409927713378346844717032202069131247014792578894327289060199486051151240574298217873381435467099474529461984145027612755214200233338268432042711037316132142062957056065193679691822734232713773382149894623348247430269854678346473220673846121674489109650719650079549593452448760023711986590872710173344460809962112505159939502253878253076168512220969979760753975875705014422354253780991119375539055634650956506767408128024873645182670114120877337404413775276035792909793927648735162730830615538154350357938886289128799153455687050260303497481891385751670829459722248198000745063238761912877362001995416197714202678089912345312848107741203819513146589631310092994280101247172341838386318691852103392192065237429522830976837983611535790910827875820035059632305365924005361996820494952516755871384134286638363224431392606474146819497769372888325024084171999490313484231329746858702922416862022540867043256731450423460358108550642200500406877757037571287815619464970490405429680604036198781532041585206591493655426642040208503862665714596062085236525080511843748707393873905271775415531765879052329503221617508990452339720431776765844398307922451093017685626981644630472860039782876776143094471320461188262227912824184898432312775944251958120504468824112880379257401121236226714105772708178895457736707997386941168259456670657439953285045711712234410312091872655065293526462510608092633797231291294362373553021511265626723208881444832263255831264836849694329698724678662273657256834078463901985611273775191840574531870890657164408510514622188139653011192789479667660985419048309878084632526133398437566652922888654818729493116745859880588539518907173304998300477793003537024566015443374256094247897795699363365832277389690126740985235585723705463837853343711161237175925262291337695292285179985118799752641466772419579146163473878335242645281126681088753708704792906396609012238326114549220205875222991336538081894381849330308952539812118277608721336165556158140402479977016291657805149340332616347273446218164397245861068096221846983047785716151169728402685086681080724820240073983605781934999265635142731459044468665411605180163819268947577829827186210018311223297702852413587045370892675038910727541838161154539067574010354145242314344435005184929362524103452492427298197701031305528050926340365226036670196756960514389923993821470337943485870123783974753508911870974163392041270327762253809120621795477434374860203639635691261442646757712203537904045681320696604433098402627721953026319907244821078499736358508533366288255851128153885638205848054945539720370929627875834036381991408888978734858021291688888997271097986856230008729488253660761315195211996525777835645816469906640751431695830978490811104961260453089361067958353391797934712980051017412658194421171488860165748538908360109906853173416687069943176834343607063830774206084791562484749072947769621741618702407622519177740164772680063772583259294986243524909868114988215557719524884889314902941943992003076566190573287983333694079287195997882862420845505259807172768697502565558300647380860325148123845929945992367347647541873920335000699554386499804299796817912691961461864983938888621015618007386592192400614755333815906858815179595911529137693637066569669917401049815921150067199805972651954127904184197192950652668202910676183981761436637745845108418205945827937204718505414042193077779827808444022637047714774291627875949449960708421284918494525414639441889387856228972031241964300460622566405430279964196533922616619590517798477149093929087946658987246439023763950557420190734205476289106563381191627943150790444496872204646107424550583369323207506758202908592417810008616983274221818769181629991149001733716005460887378920030704082921380023547958434284076048612443171387842479537669167027608031752714471707802875440746770080743614426216932890789265120188068007733804277281836754081987943746216492420072659262293725012345861009092107794726582590385669438183290770277986138563427958464969107902732172661505903026316397189994698047684198737291757338787777175953045821477714891221525683086114507582067554084286808011984229124786588349413691875360530512589942819644828855867629367730263928177941290198034063894868314031895839548370114392275339873357365119577196132392588693224182684594804112821495054314625971434974620561543117818337047297681301035863347259504757033703910804639996472992977266553070171540369580563802374093377340499809304297941633979033878148450187196518172408243151302399070457669738584615474065081390098702842145376740823236548428798351746988375970442992989512779758644888395216887626892974433641277164354975678813963545833625724949962926919911152244381723152498853651229805563353199793849613450842805599000738337788434614270115687200176983701778459026686544168788930001987103009716529814820377260349384363638146442748895094771974381411608195769238815807030099347471043979156296930567486991017347829705832364582756272509580530025322148891121928474132230843763822552269179980365417588302391836600208636349733521973547574772479822293354599705431813784803625586885229784690273874975280459572046941604059193229529540289839802874573227586273779213727179666007520712560256303038361084793379845218171101206993589096930491435311529997729998728024148420767742157906780756159798658502346068995496811730749303253191522131254818448405019736930541938586667178545753102988718530756277788073024163000016271364356255232050632439485930996100326562271120428574340533932834939698009136548547822234620877631849342776674536858806338850704773610708284520653686583126619726343204504420582733707604523479107834580510433401329303837721306727115547143203588535676591737057791299351723760659904888675401630641562835226514374007882954684620351867690208389212484375492351899008678104405624439873616394401996139714849567165265577741710696252130983907508972961895925187809355155805038526336731315052727655704422165401154488863151876852217367446181399896449305942045395251411990110410978984901564823530118924329611541511513972912566208494136778807017979680883597112481634158539890437703246273692374141863227347010478538950449043012092724703139681071089511850903618508362289374442489206860421158117495318862079360302173390887821510334896871253038957802378180877383425554000584061060275239999486420455581621482348600460694498652487068661569594979528100488995603668275348133314316954562558148724450264871018892605859855340329677201637749709768561580069124798567565422779797212002720165690032692082031654460562731041126099011056795162915431044529835544467270073941692382080946358068890973997436802736740875504903922746779179729785437684659504343672567800242632291156370765157265293264678603351879851237075425318766192843674695509621320613956106482380760602879855446265629077256841154187951726491454788933363631414920133156527864797621334870861078328686068268664174705703354585299094913513669166403016257732828372373488369118716227146063122772174990374795716054659644014073460916982892150811197088500528036481737605231471732469846409429203356513712841773178017604244965955579878821461744816094241118761789494814931338879668740037792886982120254848837756530061558431703204515484193758886830407963686728193042275426343105789282497120306448026708614238162635474135397196433045447876485034895511789079683900110181086902316137673394014494535502051043717686135779475324572777478235887798069102309551831160141238065827615419368013831849155676590400320463438416982716793532387764838978738737360262259920313505504953980760239139907298621007675779974971523473072079742357051517572112978607756125637103738684147978105465497270213793454526294621975745811573850471848276908009169272718024166705441358845264457468821988973073697466564202755830687936205056072020060145816484125736922945741815873910827470835926666670636177389223156486992711425146217570410117766545952666510394031408643996107049600118503981054586415842824782325724727817295296723501243258364261465739450981813982665113721263679175299070425140410524264007051032241534992650997980861483110416518530334019091926826824071823768970386742673469370961554177410099132426024289700305078602403024365507615206059488510200671995559492775387304914987262210034477922902439683213977445896736069271973014395801882240852728393906860151857913931726977131521953301136466323189433896385017715489817116489850712215589346943672808585057253495283354543653216292766468806262308020604187939233382698673841663705511930417283717565039721700788043152444407156686326916966391051052887072165115286554366619616483837089790164327019882456446533174397082998636061630659098603849947820131003749553845498090276465765072534155177083648093640621839297078304719805384895754660542795974744733825486496038361491715959074220873141082997375972488730094344487437594366790155894657652301823101128404249202188454078846106956808627314615274352831483799289860349421951141814524254498576775652679291553304665821198141524610159077349675489915408121178881240159656279507389896011448700716196384086535823907920349508143265911823706065213087795964049072427470412984526072376002541257632436118470358903812045769961023638754706146326787327156685134241204961205859182667676943802928997934572476849988270881773911944564250692347086231168994086699988807998460509184201002719122151457135920980254578598772819991206659696108527518944590095480326676543550951230568525699425034817842153991709472923991004351626564310943059592028754523429067595609530240264755126533303505168783201426004244370862475627499621552582756591067324084112097351104723087909867145030362040421594019020482804487311941256880068885121022750920996680686459510921479800672102103527233763279048723760321677610057341447047108696202210463963887106694138477885247443735550155802082495521819297671489620360344835158527303099522914526625875172278453524783699984201701334044562313405859844418006129428819563622073098916603758126121242713479846695159254175101633093354508318092359523143418171500862835853539118454086682702026933336340263134007173761465524990174861097295006429648414192842542015778439995474371163396164821084088661209154925576487891467164920202291715769934234291907803443812511337867568073920693001707393019068409950196637050632609709677900270646065626879401958986166923411225823605116394935727840763949116553360612137006469971488588686110420281068911379075465037690659131587180946909928285345617233695026121116581240708937837413769918997820523411554987645309434591895191845960354908744767611971259174831736881672753031908040873824145995048367490495778452593191930742741848643931744325529425982880118129114961949065815342118549895897734369394083025369410075306848998060519092253643061289614528072979088278635219043939307203804229203009011858533370879036430617508446378133120153931358336712001242677538732984111809987108236897277198687636881330697857239314080591323703747087993952208624384996334528464939689790852179422061008943713918234734985886352190038846613115630080062146155767671913097964724381216019286031152594515552426585734896119702931758694417846534018861571171654803861851830068510072661574017234711151820152575820450972435783609261162901237667090518038801926851782272904697684614631318091667577299547862585049118829932041262372931411906783504947844918139622685193335080100381944107878614354995705446954973172947740318550468268201797866902512813927829557479698663972865007592291019395020825069928373688137369874440244987414365370858410771102922960580448249463913725748286319355534685236213138221875790503175909250502423424477136053841424413298218463181945943880934199407465248479353806563503076332188263353094845171869053373274430032705709167383074308507176086040504727592113391547690197576458100414534673585833181251562437638670519902227932442877278290337756544312870680119174085292098673029761709305914367287146409953643326655037229639292051625013818992312661899056084496173759995899091018279453486085448698441596662085862284432660773257083527285832607752161196328776308784617294927296456003958579725483907671539224071571853194635804257581696549639763175193781222903907991020759956051514989130135924681965841044579276312312509014014019610362466671361560296554172762491849691673665306847712880524320876136630717141220193366416056298526915616023384577219639129529796918930498401922468680965094706624107030090445106388753849368244774185527991761603852666392272620438235659622818471613889274811802352815383193362390139109981332382986022800239666653168048665250707203818318830908071449482288312879080098848009491215473394593652031272041561848903103311995703634357652058654352279764973533877618135730881838719540464116931735684661277466691551859458267891760401752643823081949487450841472891583438751021020843035054043636105922416750992308699521214900830056960174355563822402653409443580156406042759785438712664772265892708483048432986743706439228208891920708260248091968406225747201981631852071574812362678382446002889776210543882813917078791499758090095523408321493737300895186264334595100448100017860500091927665485109921539661395596382660763836968147841313060240312453768732860828697603983130384849086709369053700608385454440119238495639910901333833980922574491093473843561127223139101535324777705356416314924406095481881343509609409432631174347429945035625804889487755299027190364909029491487810517371555035542816223668625378835755246657023329280304946357748125400708526910677938815535016102816788376275880657565262171811795527865819293862984000846451128419804763011809244898572458191788129554436891924669115166493077893473600101951103781263901890565273222467365936754476495381097590970831496835187260966846519433703106284350146869525442631491945117932535726292557324522173849553596531259890975757023735154220087973148202205857114527530877742868919912629445101501144017749177672545429531502967247138978501176353388743877127569257532217035323346460472199603680525141406433241184756969492244306803182616165809231541632309067485548144427186895422287002333402977862111107974542288679042613279596948971159176686980764479437004185365532988896967547357483905304452201453243229046570412843793096440345528853364761716423014931790695647853188552421610988965584043949305483563006798626052050221122577026432244521902653195636629108462874071129270440251981930332915493447950803188478254380763061584295039661119028717116538379205135402184634134714461594180369050816322894044527242450982083039214522641987713734496556786884514563971386666816841462354902810109310149640622578382616609485594879016390366289688362268565470537374397771259902230337139723665803598256184038312019481475234302972517889064540666551236067255473575378448895902695646306537205553126150030924133383205027711163268400029130206581728641542716655376197407596062158206384799906812708066147488794980318807656365213337883284002546859763044476542247940227101778443098632402060744455053755327320850012144377736526168360398488841117464676791516690727389332514415056619923751411942625789646092532450563901040615914194336973969297317744030248985662097019916118540808318883445093313868177838296348734626127064316350288566026642150393451796417233337056931960444778659897259030878901267518577764051903496461333854069967049385758680103919928990692494706698058508437395653091291810059167504442910184672024421880869610813247936582859360309640102028215932130307317440871530235603117548850322411810211278484853255708091134156487440535018340978291408105697328929974289555219799844341646401779998934156456718308298620778275636272690399132729457163060798237930240128655593758476578622000371017631608528611498208794951977087679522145137543990666217311103147921052729925834198987647673467668964826042632800605614482278911899802519676781308328512469478719842458278135696772768044366957427593826425324457305216606848005911999244962686446750220392186342702493538424998021720971535109830569609528432787644071284207679476349515859406184565448406148294293925094788708499856526054891325717121573364164943376809584930819152332838102085405728075520205116973406764508333902676937824604884453027327618149278592106034973316569639544064921269887160478215334481099479524155889978118609375607615338049084406169209285961422863708100043075427641209349686109253502517282607954371156864233569386181417749515553454302973036025842264629870534744120721974091675420301918909854509860802755851541947354087277087748343304384554914144943499325254931329983520610903571983823105512164698893307233050011022136168631052020016865704082874195135574948498894066875334209621360711301055884132020837074687168212367374688412632096698385824148693618248697227121172614261909108476854562390361972261127630982081454170598571198712131229725436735080320443048345907986897981746003952298639072261882967807276953871522168911484279695014388069045945678947006491212701488440075320347542647458689900992163164764806005534277608870746832779592867839690294540870246087108942374257339335282926755812662897674991653876549940971667949524393069059724266693136289167618363961341133529884908176695116524920790044210997374039671328325440041498307127270012432822679758369014679735632230137074640196317322065583992173707739035397553325339392599835997731543705168455139225838156090166257053101859047656806991373926982991170507203255025161156618390492400226496421840030065916778306255774523404950813375864462799825660366048080528514441008371902695517289970462087572607318201376857006902091650438448978346616375913708384988546512681223420359077709383323528449746654481577542646339909923759175377702499192319436239103413408252714279907743375457047450768238053739200107609540185247535610490173694596224934368251884919946326612907472301501146026995157437682494997055272771948639312032615209823784154649379859713694856373031889081747336741828482159446559969697402936351017299104050692390770566883081919062858467268431205415365960707066346923915101328900835790838502787122019583500383075127170892623480958296976182256663912857639169057961766782238368020558948938792315962016546810641678082579778419586896161149778980814462636855869504137665661099786495739239849519054675155780572585396642095527195127240221729338617960713354568308586503948369167106332948980655643070760868413719219835523927822888382560084433386145663901027546299657716205921696070392792060446621224035167801165575973512106938791668491278642165239313584084663254118659570430931879952407795460890307347292301828526855057126980980162136798348479453947777742102101385367781565080598346095196140989684533339370893229852901587179030796537832520620753808472226167413093460863334040263694777884439178620931714943441889014961470133378913173824721422991385448730087330351826537782701715758227557851371800173040700700708801224341068473689810658533083543396540867352920335186485856321503708605837861541156728019390590514516065393861775702416423390128492229589050087592398275132126440976430332181104269104142736686403442798635160893361880127381937986215172598070589624802098652271483285534891476574564153497020492213856397801956566360621312441656555889570643729055914247533556151686188881033003591665335993978361783224617578995089121142145789935181304657675493450401609302424842250533500430361589758207023188035310218852310618895531804257732664109184768583850979107682723343420110476940208680007257892556194824954231637401526004361708507582824124046391137908779742283138241295883665877988455132041587308537879146758858014000339416485520890579161629449548806004805911830881758286082290667002578220789621215275519692698875516764452399403220573127169946500584043812968076745135578953873738852362369011232044549371518802344127046826426883907755848489627052212738300343834096687449980175013513365203007415785705189363144553999250406546778675743254585920155539613586758497744070598479153829605236919381009502838819835631580774745783331610381557638727441056003966003034061701354435426137124884655284990276190149870403823579021697919799180266023499084303803395556245969251015100994542709894914713530388218812784708984324154193890968688503877479392651837287788892253712234732364400981234529342593483683649035634220864792503169850215152709564191032760248403886392234337037245337933437668714717712253390041270489439843965720595087101679625639088174927242555272037539638691343780565357042721758940229763789965954162361208464110147975921191885992117308051937173292236238992913690721323961397164775730790516307416235862006709834540988099376475967044510997773456921428171712150699558465030584459376981342475792588593427928392472047946392387436954564597700337012579047305162851180378107573766515868141235360000590043594070880421249248375042361331287575442189258723568960905698106723527266481109760574718186265394846675717713937019497097518928763357548653739321317494575227228939971886883870117349326821554481398317896258991021917497675477603147714922438373006513413359433024746106113866387676080790427285417285128868902165737494465471502453189941980751936363440610008235407066860786578805016283818878514180442483147481202927486818402377898266231751759604605460338406913024880713881069384386666417173863117869804800766483403801709352999300029523322758803131342405297896425318904218529180167458769338656191138155161128476421204350658090690499656102870015710465910523222743562134072782896057016660553671371983373976799956802683175073235151793784652032508116385275884280532846008711440676830603453967547060474894643410048309409528656064565752992676716975362665929251618638150528623964587776220434555852699373484109869638130861545314713182564702901797855088163545423891565076090120129960039622223230653163673121126801416099195058663742884605019183612942640482055974137805836321646281929627306892778078458007003016390849858918987791077006366825154855640062257804581220098968784443458988342425417049327817230637233785413399822732834579181734993623007033189340318325861353843710376414140078401212567477891325361185703140337874876589801383484129218318356281360777361576511639175066197909460818059295195367976186276937601719040308385502531333381438401579171593714378277968743168316941630699051437492448304149645252541946627493229793252716108351798351448984048752138012397272711379923339341195188945688568126242245096014447395006621050543045986921200784458212665242084605302694798612176483294660021896903703155852424409927690885807829176196365596202964508318917391408431361184833838351285746102969414140718048592993964717676939488290903558766037812728227008465319338381078680115793660529913986869780576365499317475202681778218209545483844759863987696914214570373321503600306248336708364580554268448256841848814499007622702652587203195564325729647044563615423397362586837699613319852021378845319959619189874329334669170134381075070765609377634381430765290192568644172397161211054650887304740938377765262840592801837356555273067564837273798033730259109339106832896446948648636823006335458966981169918795791717973169648311265052538471317357771608281636562563031332741174901600536356037859729841882702463204777907067772210688295956292878483046025749643537503810534884623053263794220398819408024244998013893707457012205347814615089063542185523172169392127897734292614852051624616733031749329300646703779200941215609124874919342279697780953520974349465809494512969096507253866064793677978550990948420128053549477764724257243389926903929060264068464424458611602617096104915557385105796084264145486564683969798787431407277111599533387808123156119639981346916918403931464196019797885114385556988548605836967415519343961635646152964103453572462699532466514591304999314500784511612701579745025368250062432397127930044113805782688699463455794644348673591494172046901550099173191557942755683482000810828922285964940724340297028261545496105133656195865304843702860169439770919785456606089889976004213822507482595784251042280522012427209035152040751094350261291847581029437784569141483494385473802138205683323661605325115078272612363824408698908707948932824906469435845479459396424950706113913070561958280386487611383189385999321757908961548875712842188785096465578343901786297568278582138064141871612242225027182105619964426047425203580836170843613947695090504458270939627113658353608521034091758145942396242911363468151021902012268671295058016801757203180503045921595323539223796174370642265745321623868790114208752118126019042987501933877786379876098586324259716571465548431541427931384265583160526220845951739439377064875980881401640364994270000992226856277429542200808039371469431451927669428027086910337431914927031199343147059677769158456977919201475397895329045328773595640153419617529389248445487833923396285508052138741756848132677985168014146090059658274653741012057388167576227774133281526835499076513013178086240692403443209668673568790471609524106429805574299135359649151944028910187669332980293580317261793520701457520815323615227234755399689160361225485714699639618315311257638744272449991968426450948869300010074928282429101473804999191564220366087340210597045552906512588774357058595758327247109642898770811545356464492691136116628770396591492203628544286005951104061711511772428672128972632332020530370153191287959090648405638647217089932344805071349853617221277415807328444754844608018217580685458009402944325820834262255985577777661769238729480028629796496764749707682579824559756829548891101828520340177597238345354528295900023583907518268820019616520855797718219107868288373471928201212060292898906400346110512769682179090924059260021785922250932618406396214375659933149993130520097164980272810111210521799699172328928407582112611747361757508371361223024046419979368279503412732660784630427966907384228858006955964245306007737043432235930956217915551574876883243705512958139407219140338396610052608663513804808249974043878689111713534391195485699030573657131802267835858098879182037376527782131633090638640872073239476373421696245536567069030290832950240892071394713907271963765798092550003103460730720749249710189042637308299389503732121123023460992788951829900382280009172200386637803228227027659372528889881279234481065133163691443051840671577988749178413450194556742755247440250445950750555146277589449201383919712560840375048395416330712805643969517220750049606884151290469539641426158875472783699469380389821728967697844700935669571458016495109641259554196279797876412741848662498003915290692757258063722870510188561949679018116273519776764295793693670906548805620889941999946583421829039008902873076580219256496084480367931495510029282752801095167450512971321456783979444418187100322862242104581040311050340561841840138810464938504699498425431450837674279004548002595885081359352220803965186740960646161990104312517747807568486344177957103326489514255704649540084627767980774041295457847241029413474215311394557091197837217409876581510408113250752101917755560493144723637965077553227401694059454547356536415870067135816335547833008125083821374895014618956667233807715400029733545626627402084900798323064595161964999347574546214102675150620903262394094484476396178559316399914451645274764065801402815246407835470788867781338064840399291307509651704470918944092796779346848277737710926914263472495219566190826462022465248931699988277272786188791072960407851820795034888522968067334973975228006518194932685077220721007652746613560036342000472051112857293479087996364960914031458127263255460073749453716917769113184747929333720267422056044747392121254573964011439129646338250198910306700394281645066753674426867911708257682289501154605454620033252672323049481506064344613097884823484748277859188910527981218669574564105823399694910825214156212257525148583041615104807962627218458975444009214335522718126299764904917175893795727912948430659833668895180424385467956055062275334144607311929593406758881125359927018342191780634748523475709323076246442855340692460738614635567981891710790017758477562978523409695331650497293618778782245186553174636546914185781116867622937480178478570696044047654622877667889944159525826877836293169891032501075064270663847798510122452784876804204805889846165966686728758853312976065792554069987994664801137005095728983125295281999923636066078521532968767484821057184384825403513120816860036805474341103377887418473171466005007799884469247421577678637049519302285785390716872243307882141174700502333928425732387913481041097272914205274751167770332340619053266100910673171035944146621587654748540463928271701332129553184261251994265606500623512337658317605139200095883390193177597873394889288897787655704208691594878740376643696990942092976091636800245813653989309004638547198953046804569333793233170985038987010825240732467215430692663150908849284125174011569978510618148910403235190983291634711814864065489430129329301406028678801031339123224728262532892191321887894880994770890213245338614350747869559844892253911476056622851116072678336366966099399718573352060664825275952102351247830914413670836938475011163250025743728249436360665083485264210295192531364913688602076164961723428992794538921851201721118357905155954818413296697188072380857039062143822571786647021114158585473253202731738265403072266007080977288683301579886344166092439253223367263935063703530496824318247655875886142864089527580160994574830046543996761920705945020791022446131026780060448406549813238783473199518859198807556181720612712594310562551948723434249543278185322448947134542098927313748520912651363623985610379609614998127641138415909827962944639180826615539570757483466168847371096637322793386751349581107673572296234631733609975840541194480553453761559928140856223624146488212324105637682015407353876418802862684449305261469134201292578469104816573195828060759399066046608348976913531041707423115130866998410342788663306689261911764809841582512069267027263400370809592446196979516145339272326729571154393375651696064378301820490380541902988311531318995354765216524556715720272734741220408163097903424972385667359592166521350385129051733957277935114764007482487938345608208897533828016650652591708474247569524140297299753365380376068698829515432743001084697182077236828504537398396177206506592250830742695597172994078994637390527606629914129739569884012716914532155799364018425680801394633437961927901592292103495314875480126075346769753843568019333502559747139941250770016554533339577832728444232130448799893891980719739098812319227140181884369089168877524301634528320551473871047798799905358145251017532281523988783331149522973693677319164675432345606122816880861371595264140629585833908759540629261795679635532273005462367450209180704948244059892968004119230883966862464864586382863261138329619887286830458199753624619753969595737636122876956917339515534853900232316479720732363486628543836049172094955425215216490421083175976598369172495322116401900268350717751153378886186551415453662382252688188023000683144736871961622308106014822196407577507972772806252606781652045879557375602012635157334321648964798350859695301019885960441329369601764740951470883359114640761982873747731809322727201293510362004550730524005955056607030425528626766383418715387844904914151792859248390628451111507909574276449227272103137219589003105720549158338018432348180775445307886026636696171027011723758405851371380685037763456569667036515040275158790109735950422700459526114607893355769860922508285765015874600187366443294508476785316229834501267041890568117028009480426405508681628907029177085719053403518534205602373298471601445967365649834130712824682364972577629833343655875396158494060373586464406042529063555182086735456913797483331469414637378804809624941884062000334610001837093067490499549557620502962561778043576701192759464921567553981934663643310473404153958014682803250375541264848353971721616317450102616604293308827148729390744942640747647113853334199437846436782754264405609562525939505089769839756728669245202914210211423220167821342215349267656671107115291110145358120334491308501410155061394352258851228178297373641916272197951712848843379800789487675292975011804080358985442589811440699184624678943846019526162314773719564444969307162364879994853718257166362922550241003700041273036614640458355566369481025090281742007750210137559907016327092227908174071888637918139895699698405244680843036071712011882241457636835289815827773130111620213643889784401319822890983580049688667067357537696773820014357322660169496584053991159792618870250130943523614877653345389644357211784124743959269785375080956172459360398442311567584938805742935334849577531616981538740589366446710344327875932473234444814124499542791759718541106701872283940133839360546265789701006259120987203225041719780155204518430932723109258199028943842242113558201854890020470343535972925687633646969209977958637336834243088532674704477807656693135519069619873853613220852101628097482137256299915436155407112132764691366523508616567795333253480250502595891281752592892002705191131552788441284873518720542976686736853878987185490182098790714873643305383175981580855955308709138897640433926736946283705358259352362356312978289573092225978637657603088473124869631208405611475381730485237399697474205040244834424097946579438101997410699259244442354673369953073689364485402244684134232729725209325393012272756487290220877069674400478312782937721513684743494742323979993337916548477670934723726537792430418492304735938184175951302153688491393493087643690383083186184928278511017249498186356605751807368162773764862027547334999790370069458079014190680934832003308660661310627898059030468871328209533729056764131680576675556782248149467477843719987363391870960195589112739070222271735769049662499228639188247828794210743033145257213571907185888883941499970723636236399625117403610046091111610410373930932597777655366072785497072012988157865928607979360732867565734538687124135326719255753758690115899053485071609507738684612537476682623453155585153896501160850229627944454085601166309608946808957974464144670094939708102278011726386474969644313994319922695074431445331737540056364357150391608679765501849500344895056125155588689403269704462980529950860987417920859674156240861443831078487370489235391587493423700860526771922822253058752877675828076249251915800978992953258506774276729850302626607334431753185809887428381464854894893366213107403918475913449022713131416879818465142570898601221613291120233425931435451309576253496091503656150439914358057760864762423320664294541589075211375323530794315502760906906218825123212755245956698601920937883517443441055508174796898558525181079683243919988788533280293510715148992965461997740875760765504382198669249745154634659805787363130362347366709424496979247291056234637537466231057258006986490983201163794004063485495386942618254993085268153017539913370323758584469565607283597864453919319214817043742086300614762035535876923517436574181361975275130300309774760259392893770783205572063330620183020620421400507664165794824084919721354223119267459950492445225909648239670720146074436292859022461643150707113317535143863483212785711711350528603798575451237404626002399938199165145707495001971575567032046560450077059154161098041400222671509329498101766502859213949793846568815550326279663946153073981739910303143416674336218169909828849144785188523916599013149582889735975974831383710138374436520956268868645025677371710430588550979123810754956822181023097029349181053254424214626745070002208158221819249285903083599514101495349205747271336403250743556018894718339869056237637884817377240523676934919997919804746275355742387818772650863135653573175043101493265481735479307660850356349568670496100637958519745431089924580010453236269105865510932065424174757171146173263597807700494915384364341193201624376442459831718791942601845852461730178654132183449424687538089806259964100227112492185076342453157971781739748880119507733734147230341724817612582012639670627010730573055503438795366613325317743933131791643369170363507242135208219013373123220946663582047282529848381997048881780209260657227455518346455596700047200151310585278932514139924809860663989991282098086801514434764940046158209085942241591034315229888602668480652571312816947208036750822201787756045613793464174804070535535375079357537305339331701625310549051279429772513158535334188069845230033890460037592258203179475725324228782458791328405946986555626958932776635998811356218431699534175930301172171749216321681069691637267870504196310861628858813145654145220769203323152934549077441718428429309734541191555470617411475755715512875094125305891277004670160906910436902946618958506751780375178588329423670660712248946878946911530338266692354724799433400887866924014547297591447432769829330529816571790805174451786743508525156551165703723755479081740160572231187384434114694197082187638643085048131786810824437711440593356643259201282234884363644115524447297037848749707405620548826082506426126733289715906467839200545178956647040201531601357524136009790970223325020410518282287802301958156596878331039606171174395715300541986861316248525895777817938815601798725270356039427610332628963540337590846430464972926262341096250597091135230438386122958122683601040205730317610372410328883544438710796594097536497247882578235221965320155830554390073494163598489907997685821058299446988136387816488214646396475193695644380448719044697756855802530169189389671527130018291380861312925614096421837361364524060905482823679552824568421778909315861309750743018927497909866635724908773372612971319453094287964720883137906547917269486248232314065459249519255342759075268858305583001280329443817506304385387357178665111933680383572132388635649089248759614727992780381356966513067228321846054005830230907556767350533927343037634362424668223497732713764384203811750237241856039066877498113007704530702410874435238986739714722119774168507828193945729030403335474143652916188478647980869510175826071305284661095571206538788001131078803103331263062615914389545525033003016067653061871227661598295192547289961576989723156620165926941236793966802149492184641449751462509063092080889222489846758297313699235305322529196878343919511155853152492764174996159875022759785781076783568166410264543603452979336753453676983256592725749803316939583718604099766171457222254806972810828189162835437616581813288587523224802628224175339926605764406439050594473635276299387937105098311416073905298057308453236712187076722699287974629513453786219237815822861988263174564139126827530105971434557372886493794764969796366896490796102293472336306616420393064104434814300929334085508835562960165312778625578441667105866014803459379558783000390898432093886988307934423737877155406015635969783089791144818005922228870904907170220077457884599325047716631544031553554670543391543777032182561180179722468397317141278915187346625234381381197633055718648548554130141090796272903734360158504451844303616078068720873268473892666181423437516430714150363778338405446495530750224348682377457502341398695982633253459320108782341997892586618255321936271641271795462101058871021144583464470822967325961315437505234282076303698852684407580893853096143527745478975922408384839311266459747655497552077307358846467680610805573980401130974574427940968947388188202429975486710751272968515876634871974814547732171653838916289063536847450406241830402575777872509393422688326215484342046714583579433543029789911766183414531353506074341954306251301492323832368628250482628027765417911521901779334396890240527944140642737696787101278743169930220529351240620384387060667679401703718211328651294219679815156982021644675586667303503286003875326098351775185453179766319644056432297225116589877925769798806515871423094839755700858529213440692559306610017985096444140663465067534965127942053627675652131985080457359748544906595040043205816930091319409848592656944986210794013334822725338210067953171780649000512801500340061281683660347218904888478732070763384506162306103311147775641422342354255555326257193342773677695365055523549303403834743397865736396446142114951906028729332224071536912789336013378666749102756616337566040426842326060606894608613361327617318709187488932852450484458180097612344893280617305961569919810734321517685623766933912038449849688745476939270375500230564243636980213395869268548768420419682642880696410793046155251230340324291888248325822088428723293848694794950397539447790852649913951705488200520195463765772692581211742883906102647001557309671069928071126522163857576457258723284538564511443068993198368573999989747386650928105470051220880788359568608809827664701863200716593804185867869824988418424345847657989026794181747362655037647180781425512556301828928076620895979904393872514268623467997778001100338390289713318039305595042926253424349611054598889036185560723272418648475661130944688106726112209286861901328715534811384040442369672874957912514236685339090518082711586443070631870511592077781338531163318841550429299883001241140948911824135782592648265855568365550184957544718167044408575736073299129149951097716007820297741721389554747377622290742453973437515818930972161702086496972472479222957872261094821537437879284343672126888994602619782975076055776035099770020003888605439699579345796755661453682919415978844586780033857031463081456717818176903516284239750299227564524668410058876809061382900433585231241684672353578930381902099769255082263095972404303412333799028838571555922954250710005853378565760964340472850507339015038159755225246477097893112608594357956525132901153676999412466641637842201045401688572701067897858387748265230067512046051925157442382863265030031526456197698700062285731148270172227399945233818447837677393354204842981789697035932189279416085150708882190045132720352897882847370472964447782121071167993742803637245236077398449923828435131632669946304853926014172767249256221715964319533885182825073340646846570134699219303881517521179360557502482418731346835292739238833103180796050069281679957021425689060146967076150192254145577105194991104234748348132881284144195308557703690726402682682274423603010433864849175564361017206355904507496734572776377714031838639492130455601512476775265585293406580960497532292786569426674195048482133146158777501801660791250533864384434162208836737559571268610451092396406565654553378126368852132982769884073154493257315996516022096800858600610170959054912384278913755305919462650313579397554435061289074700164169244220426467601580167416845396734746319236068079786087260769424246167688965021826639887322488859263627105585921763993592824426878204262611085088221396563910345271698213070996444132944891140633166221055057653754705811765966799255096984053246322266140437668097639703739360891574879115347769138639858746051614939719130797700520607149927742450825715142283787397435766184372190904806426100683162862209367507668681846390779533372102467397990977795561291494786459638587517777374688431751915718056542115474205229153173827251071986128149235066447761424627093094506207755028640297111525935439881765124380420418502041663036203817047893291270897469584517339628643443234635727583481283844877522155892788313386380406513581501970601574521583939954921718512244186545559943429035852722540693092555270818448291808174292012126378561192640453435272332257163650505711372133506159641468303852510207220184581310926486618252363100927229355783314525425378516705177832367494309634611397803304530372195860351219416737436265076543235960168572801020350296070443421973307181783188082667603915538950127893484307472354558259044747790321553965770674752117807735428452445205117471806939250148916791048290955239852620010549746833010146659583989509644273361717882376860358302870034979843030660584426916918430079012625991725826911845690682580515293476866678224407334542646408184600959570928822522939182293290424240975415665697196957113572869177371813828719274496639768596532982325265383969428498385969147252034799215854918957086305259453319151647417707213428620443490368474546533590074687526778628515490135546670517347823667358776981575351645236246861193358854638002191306078254460537215496646647233813117646837210593126711282512100997318797407236978462700246446235427781672771494111575623872055576039104044966199200538538461446390703151931905415723089632908488411942115118541199011924263728409181838616952861496768391141174771106554225099561498574812194610151130335404772632915609938132821018381395266825678472198513191826305467757511335656179194035683046203482608152756037693493205439665018465790995917488733233147976484832006931458924681923523440159065625005393628549606735112777442305714750666832207693513152653211828420292200456558362778262422920612298354199805002398195213078622075017575563078640582796398620804180720152764008595796350789895093703961265093945759016831084394865154329347097673341873727682339536904436856712303799557178540317155980677956421401377917527253572196266718649245100322264764158308463558128807758359185741352047206100217817493803328742058872009576687758850165061981529131167010789921473235842799133408286330076752058654006293857382681369519965653575148290111505992118867177027813330547777251310791189758790517559746907698495723844490312253537657413831457573405308695953469765827333994141732513093147743289840609914832181024215901985900125575454261781306356797409359734733197511440683557772645820655636444720377639283240797902879377191352194488513695879210382772876472362986633619660880880457285484473992970296141057021278207394505942236684761954953809507952120790992722628615957580364361808642751375318803555521843468530835742071961219579057105326495791859322509345213456345457633271023716200743313613949650863793077756712634292778058460184453882540852883273974937679045231964429826250910612083375299493697530281757424848976903973525236010225935503322399525690657565197801109662910501161121224530211032431037370232922964101112742251071175250707736316568835113078164805625160380693321198790868486466802203907061555452997346958230819716617440223638248798163747562747386688868569607623747904120987611878898200037900586139211702198645664491119004302147210984089183451742618334080839736983458288414905944889342298727880002886818328666977755645366861800068551278539431432057563135327778083740891203204427280824313146468094629720659169165855333889783086329105073411167663064779517871145251909212144022976610069604085202788380690366546933852084127529781344923974147249282842770302793669533566529250205299978637910243515397614210576610106846554979758905917331359568903030212288705304842156465143702833725781815780400190741521695361119228890017721908925399973444592856684333816820150432005521320137107272385275073986676422257507585793830016260250017417489462201611658590451703925921603121293027377706397050527472114107073952426675270900864309772538952826249810019129954222833105023921137552412123483985908351146543440411402756878001795454478819212679178757869624691070064494250159132704874412629266717670488431077570484139701706187413833195299376048861393647476454425616788791389047623359392583194211004026435743333549294441280361710838393898985787730651688218389459768818995397725250500977554936028459877132258557450070036525865370371498998317323057540860787792393787202964050239737334765985247983135067495882880749133428261937681001517613496514217074990224995494331563229500977259476959132672267520475211304976845747143335676547005341491469797696800328956566559943004055059032773039831704083361540169758283060127455015517567840861238744953301425282029819198357578267497998825282095248068295546993797326057399846576737103596614810869630736452027471816047566470342780792164944301764221713038383870104621678514469138426673159084416162397449982933059646361037832586537587473001035240503540511423482057052144844389689057148363886222522947764684399230037314162621742545851812871838971512253358791692218706640089650826098677097021819713651515442719279774302741945619986054154557079483906354127268765474674678283899226089838274771192285708573012809032465562820174460161890206612845205635288553437524530359047243059664121086311137908758532580908083592596195818747496273992113382372430467484186424496470706462678195069293039507231046064236744761602865576125797814101624945875795292092345599301765316636199116958331998804005059286075037327216632182333525283397085857349656590704747298640835332811834099936391175989371412158815885756606765208167396886069840843947490022055085166760711007603285402433210356231296532154235755735110683011944214116023172922439372358991513504659876217718519149134220649557106677344102810355483501064918417039684276848359926661016914627673069424168052802400041868573052313369862204332243986663287697594301980851157694953911100353045617094440550423305609920220155004468888579741862521459586145606351205580059635523008088987422273289176247533617273194141466833936262879652991645249164101272322030817274595031512265667986478221761063878697864900620300364942951466434513191768237284023912093033053267536767379687989717386840804013052698389046489312057814224277732190538180615390032929260414120611609328610283000977304118508533812788905734711690259417960917047660009874645502637716249739421325468162002695905311384191761376635435575975231154528016226157975292721289841838392940860453644651230982112144312897922199635516433682054951320115044967179806731102511885996393912613159179139794842257505991180345925398974630131502109065332597602084720030456540205490947841175262584304405922102756171676836837223657428560002666360194598898326086014164136389843858516763835271130757922913960039679719791341812196316020785898591107778051476580519955759022406375462799805305529405092220970943981698900490048194989319301170170747655602096751068774924429584809902276868520901926527622640235013072217001385752423536986867199464982606418954922516485870223842747148443593660960059817555260248849824864003461739171231862716353700523739827056206772555059503035976709956611510935150653789121510697998495531886639168875385482371457876941871082819210135334227183902827403120304742172483954462210345340167879726496755828539295534887061623230513073303965870090242320876375103677629002516423489910031391959362033391588099315801329018718014911406399742204855314025137884267774531157409388197998708220461032175425526576097647474481759532503232096347383116255763861470633289725966475092325171942915631696845820851954480480086378816004949081495642549836470638488947807420185320412068715125162547952039598789386288926155277124348951287049962569649531286790881330089325932621751337263615801869504387068749117136096797158254958282092024646539325975989005894270682467789811919124262247204575339765539540047442124384586787803872217444423862727756284054824719750550269738380888386017758745051163310780212603224182784766779654421256776059388556942134156000680874485384040939799462192454673104213453948419783584176930384486725491910501845392083144622411231373252527726684992783697795311047477665870582272220061812639820283587780032295421014710349851530715220484013210695043352776597013484769661846127293451265230210239722598804721840076447789794087906494391783678085517914236934946362709002623919289118567431797498263798435987420197968693541800584691318163382037022888617023056656862842550020544261558028496396005542813858541939783099706831102804710312448071883099472757044443613433005604213832138102399413524046296041922028784274350032892514054171675181077896396450812585729237264021719774540366034802947321830725577472947832920948945463817037893896645930474555588952395163550581505970092307476242915039798930838117405895677603411607681751687737907035040629548666348818834276439938398804147853273096584764402215833425362336290945561792824253933664044783850389936156210055734316766319471192696857462732846936212018605138534195924784712282771035383903638317154825535259934066790437237552178767135546165891432917517670276898327494841216330329201885987113157042334893879653562757014047211301708916838813569308525122831373389505750394817055811595535673394389156728246285352714581697723994580965750603493318342652480496700633331301714409748322546516317627089164854737018693250942141984876843619967744796605508434006021296172140275417864657099584091560110465025023428845463845334942832105018618996126198078641148315950980027390154093265273237048936600531299022371293617343737061398275593841417890453761431437258544938714785770618716929639233283708716773728407771339784868465245200464302507154227387485827277484205842367094911882056163183293220422274426905690960620026983668329009842421573522859783169249168724104469117501641099308806154947190020798935084858512933614690848687175662383018564849459684663540369604458526600182985384456886014002902696999669587891302770279139213303114483464219662261952229308694215933247958123081447682285105434020600403564848150370162265831052555711601387023771377685917933158932267486101764763367872614131712397552554157501291833400911102015424761065730282899160927139518200929679986203506529166390662614788457437718459432320839985557923627947909740930266568515252578189264284496086737716597798448323715015936329330111876057628311288729173819291207248210461762158639116672456929367908480157578258996927053746080754291455901803236874566501693107133049318261792513119699758232479709037464972213200490576610329652582495844795226899157806740638460268578566366944586984488816944808418169721494408051152358288298772276468157144013445605174818663103686572018064415695346034964639504631310553228438809930445141256584443164945745743315473449413284249157226647300184510921889534230835157542990596775325633022719479720007273607268477456777790556526784153846336429080189520178470724909868871037985667447815830786925261704333956733054291415508812307004912461218069952231223895807547218294176635955360613012956931666429003102298620321319416489700545796187544760196087502002489444125221952766191199288670192540623997945653449999059027858949667026527721918706592192820163406316326655778330331932709782242642113079504395176735460300845980709256116738119422772575346860924084385580016616876324630355654521882828105478126446041843228144462593830757837395197550982688304291862224644327121253427399663422387211661939431687203361054630608318692196737867353253621417398595944242884417840141108176655129541589323587978465219383889922273611834560118792868374703626092184602543033102573288263786987395339967110350913514930700919760125664212528136288053921182850537310750455857287317516938402635906774573246998453829105126203817389614311934484195712873828234010831605863730256707768498636877244310840036238940390467388037403158088836715193251701457614112286773510011100022340114255518068840385992027440439252955744178834811476003924369159327501940543638998364809359535047628367310508691631567803151037077844641085770127802583530357757860884901755777565905128463069194452906740904507390007582822240415584455442671791347782280479153046073739483648378726244648246102036667158238215185282155276846395763159182576941694113041294690876340471255161660816128338829829839128790905904509231167969381028426069630400753020489090960009133522290287861139722281976415079772471445109205433632609404284777497945744518402934413370246489243830569525067385696822185723977541410996515088089276438753402886884663137525756973651509670818364774470192717480013010030294636973138039024980514104019352537353991281374011146240530771050395164108671948612096174661814701988263581932536193696270324158622100540125322993931708221431295221375365646854217089547483037711671218338924010013705219259952463335401058690367204105756883317364047687312129016149255242647228535499760129641715022433595128180296631605059181500269443490541699601312520035615099136789228290682812854800908504040183001786662779346692308979523134056690357442532789030483800155380623270648357628060088512798468384740714980269317235912419919865006003467797117834493074349591872263512958724049789608191605936871576313598599039856598849517139946217223523959067262065436603485581654148922328230939236742735671056614528743658415630232097043922027664366637192420589675017776858281413355673174451831688690494291201008496463548494783793160060107048197774514749544646382183962530145942180143129157664588004668597392691569865207335395232302972055461712248354770365505833084482486638947931690359070807355624063768449658511628564609097469187547074646188551082294359088655503954583915962832991596653348189070857418750821207055828120551986605528105019488124040631050017302925233422279047550841665905023510817373098589869768796871722694922890635955142568213762990848351100335483739660775588142156564738712202692690035865684960546318065536160524703009455068283739662878611139767258607338250960894619122359697222747889182294162597665938503838054582385726983321909694772503319919959111913437741189128166416524783305790288588036871221315646051712930718771274988918740064584948322123605497143280019346352302444814583099281040876299717289581765958734138617651841935883513965879704992288102179979242145082912941827512823194999128484421843181765794460352108111577902531763179198575859718146848223716865320618250202349922496443995658783195287395464921183367140981918161721003643326573900524459342931819811503459020422878471758211507740828627311118595745406068153683598080826656777600761782126544334712506473534700653293391568866664639392139190258267343830702913552576819890143790522548695316115511357094866982366709165847508043169672658304820726461781185569707380926927565789661739336675742929943877382537364177400895066483687149132713030095470029920218603110817698260753734159962745055979181519181361403611644547774897450978407261561701440392871078284931044365330635791303811778843737667422580754738883107269271282440526542011071076796132344507159835834481890859772997234631822464850307119720602071050108281963407522874089591901570113935704793348223324023285743186500625735096253769862126311938596124145835632556460920658009587123035797924293373582411898028181322510473737271387727361253303756658990535419327381726807819653227664276561115108851837992155188145356032101692842445495061390842210307169429851277186135961197745449803752497909914379407510975834360584156530253295462375852993199966590250828953387115083276636399521180390403417518381707880491404508907641752270180544563879237615737484189549348055056265115478346722942662077276475551992663353208849769939029417476160169134614690513307605882193118521938728382220152976259371950645738779270859276764840386118911767367492737720123733127678188968665930811615061706875407544289575694856271246396366886966026684213493207721139557510672341881009369331287182823940712805431651035433415540707125752218585529873206583957755044549126958248580807199727876532444155718791048195623475446964163414894592142722054767516607015358678936503955353777169176575961744587838253664185182521319887577808577228496081861429633113236411275097992281963962552827298985939141373950558984383029089732704072947628004024311230991012304124531198161882043474541981607700388551675037296660745959805802373501627737764244644423681536707729488316094378039831897915142833407711183312128600286674218053803634532496091280288540668926270287253361991799208921524999651919312808785647152714943554124391954993428175308591237788325600092074347516599281560555922533728032585201800254107444674614609859481258824268607959755204834097674859739515755991097918104939403362448779514214954532477684941578611977572033934576108593470958007400709507321025318184247659542783955517936175243479390084868378087394454277396562418366146060449587913196392658402510192474521662686645448925939575721702102716424573318629844649722916483682083602873491645884262972826275265041302144183449438707121351178968990320890390013127229808853014129439978573717376016162154295587864256294336685288456917046733512710553921203711962929606450178791636762369247248178478548085708496312899980062073523377808015193556002276833939176693680926295855552526599134561017447989035768120803759400101968061475402914557056679989996128517055998308874107990470400367137650302750485192842921815322259849283572142371082826001680601205729315363466480856165157672996280215270612830987678679372203072348845322392193927733907685370272141348089825992189945673041642110599859708701992920006691546286136629426897688186236329429646934682484146704773708562804650944982502724267108213998334264776944157662828144321420913282856288189735935980668006531832392630063682802651206823492486205437885464732434733093373826881620480437387668948242474251150767735380938293305648913136298067189567816413897900837744627378716320832680385184365838096746106534629525610389795357728887029716923210807164608915422919721182104347366263481312494131575805522584686487739654085968105096985180297585503646062124628718580200835548942540870125022904526080785348414852160419724845034397195933024282699579253092413846405556674276069851796710367506083671487852489300289437663622366643006903120247115244210221414533941320980664883471758152627146144074053233035094384832998470679822159344100818760842784404930372868659384959071389235346910447964820201229264677278022185119021397578340913318007417686199022541308277060726721644376561066747439139829139437625067829645405667484340724870361385836066356598136397815222857238001368328567707106139561550621006571940545693231830172953528692666244955443107998774255408294421795417956229728531918930561946625196160451327035555165022792634652830645045236954775177367882742047785265491774158361552954374538061473768065784640920324643648380705665089734763991754295774309317943787392409637725048211477290749328246511686085661564300403479591105103510281085783319686388505209590051486709336060513541728407847181314517101218563891433215540821651136149328927350808087222374655724417097843094168841788092935788499093101535102288541052822270978007789468217849803946343741539166686223683124720217452886201213044024529514972903363350984694126399390702655460510984787470981095059876212491103570123051988121070751304264005362375839884074351995759489936748006117564589515086301169664851370480409176592486065229039306623567588115874631159217848991236782730001983537700466926760173169601610403350877492310608659726808767435133934802618502009392221674569057896447780842495707258648198817792449855197196843731899540614036566204621331501724719034387189418822393226284481835151549009428049139841114028688472105642915620926564618300011631678178711774149364550788272033553727192575342394553826504482605695616671865788007300555600218138477938606910347280448519295552672780532702956126948548005411926506089075241310971496797468286588439369003205925663655336924800738845085183299251536751184787964299049226018876887484176630707287959956119038598335102745279583576339924069434317800517339681459063082255214131155666596572158865693504692594559844053127613224551023861638237000504008643185054757296797521040230010830848723732468030184102830724807160263091985067946630588622172090912758840239589478085462153625716796381448302415340823010423068542873723501199321752578763092039473158919409873003892328679335634471463613977563059015692273191963875248466660853738050718932246907960086378105309513649135034590448648231439992262719118146070136365984090910854172302655053010251960150066740348637430183077557712803903191167199618726158251813544350383347090689232010843056712014907549431286405283513516813537383631749539302939880788628087162781724182003076210855907458809173569715863958621613430496734305020778997723888876465829251400690825070883074444852035148127236036842448538635624108744107078093213854791086831301001371801279849249074433374706921237683170579629568577018393909499378650446750484426733034381759887295537019920918518800362007916812531874574879345943365015511316467661552158095979612245485317184373186821795563001982523679021680493911266713361573431358396681255162180071752314607822392710729809349350025234857449971413817525109151675172604485243782992286273578184943534400251167466327875029885532608886438046588098859086512138796929827008087414281901767682231783507204942927906164783483302129744112184041790230842884289199958926848348270889520665600702273874492849789850170798349516741607321948051862159754802689595724197243252334727971691012604974341579422867793436703276956685295511661389395171335916293095652454707694549825513938585387407096290729651882469351189978480971590219886462605749980961679282834204668270405615964992917420502714764733739664633299225922265759681051636925779997438551775585893113332318627240086614160586300380598793105122734634321683492481830995823178372863408764933382727061691528616217438547909213185362113164315603968795728095326576343379387133037805601647680058718171792037215309798186578903108227965252432817735677845874850655701259892310018871924032729822569040893313641402924648952481957960330530342857072464924644851268131134571571336452561593319624830292294778871046672820121030849232031959067442185885708686991621180578407943162056152938437593704025937563917490884161370986637156705367595606362189936309713274462279353656918222954964359614504336802059453259607358033306317547299162282912948254137058015242745686180024634571893899880186687071971879300390249520141311085219969154857183755053696148880269533295242272116724910071678116503289156642610336998136769081428848204983716242666212200012033358579991845166578689522862141793008258501598285435678183926370935616236711462093060113109851284306237042811854483479656992717920836747051390504231404479848223057018317909540488692262466649344966462529727080078757693073981054131700002643996730783031445538848907067740719307465933757351731302213867660092804273800501098208899222170010757967255319355015791940456349527671340726289013321314995749083170944448111954761069671378522194754688659520916588572672309697445648595842544680306324088697573892043963491446808751870762326279338355527207343221146220442869984730698411066191987856125274299713549727757816183499188802186173886887539959668237537957188464031880516274598025861170979958107341141426356566764328433534853841051019558410920427040924373265429004018502799084562482656654114791524479346424315227764845750181043676847648384740987805484684647573044787367479100217573972919707653187084281926930166515857976483068569161637835183842784670536430521241239281663271135665728360869591006509336428006836856126707875871682266204676693907280639500741264025513869760810980817406952491902646625979555472801026728699694197667502035458960671331145635550762424167642688550659825281825518650757113747771346080985899077396322102687102963040997049085778114298537282868805425396826632243613442296960593979855606294551835904243978276191860924690144878040444945181911078604016286641690115681271776123690134217399104074758054798529097874916198111378835976655738710749246740192477496859053353990942672048408734832965816758926180611676095464608224332478651255997841630639668556987206504719339828778394344654925125422803119713610299836897468390928542758396202141010705230361528906413963839899381521718131284765399694535434053160508263949596496659877847746798656976530326580022758673980597055791337190759289000604145226168587452172193249404634263171123573442295872533712440338422997395691137595434747164402864209549332486371584686729459648157622614253056306418976941566135677309899690711738620229379026946958051393142239472993722396890892790604147853457610176426381259705716945540287663084068292278849919120808815555895755985296185297276103299006820631199840520272598012157932393524229198288390414881586572226943081637092628188258415828216232773311066714508446909474199955435760092316298011462084097180137054428954320377443856734017504369319304914027315274324113348878456905090407026233989693621215300353676845463842133233753884222001373702169870245822079594638285360789974285538983201618115955355366700468924763220803749321485537549936119906372947599931586527114119930820867318704961521929844327078489966069720382217525853086617603897328184238405978165436054800924764473105353217759386712490280808300325756552894440857768595078231407885223968647534977198938023225432356031504814909587820282544911355619417429402510520223213432828172381166193628386001331214869583221640992000757282378703453334344072009752842597080114860724820288108345513975188091613184035896392073886479531480770488352108357386785896159909841397824522412326696605323938601219981837894434184988327907678836930180447005417867696438220545919334565832525696508864656887874437990639996001058756842424308266483891777308430314590422145168552745152340998493316170000363314848778276951505377548491826913188927618333692995426551408552482396523558447852672256416141557588964898442340694082238846498186389068962022531267783174437653361155038082016928201640910642209540172385482689965400270527220445954923237304614799441987379804051548083696705201353953685858395007263084692858053904861091438748037135470221157537138874978118198411283820416520453174547340213759608172338084518327978027923501893180151390205500216543657425909174245852879280437838090179361052257493817071586744998440651087406961741894941511266155910392118903103543621326703765333623194775624520985072549061498830360343699395075848480832838318544248432422242908039905293572787085632851458906910282076884855868317342909912332794853401106631500124458563960323534243446984589103926795803759614694813562253837463688954462072466856996716517535558598314127268769074845030781805210752861477355020586978049651132808812595349266919550050366424955872700133364502001048871855246413413839626888632634270616125416167119611948098916702214355608432774317326423504975833033043577694991707442267207415047263511819670243698171754055664460643861719072122591661412120876219878196540296082497131634993807056007169246479773049858498235612183471860426626023945933275362897227833321935420852795274591547795351455298366015998947010318340146314644886979110271437522304369434137726220267082967047862059737864864062023722999860592990675719730289835094808755034559892678417575291794632716231384565789723888771853873057232101993143096534511683106997003013765348420336210647672696489879408872014509649236451344713733063349943430237924243044612973505065514352112618980673180945845161500827577953388932880121434516393943063697117389899480226605898625815969628008557928558317311938656170874257208073987503826457822848055434390765669119527854159241407998992093379903736954825590128434151682913263599760406616948057321696258916368044286377584158986196941325695181991199163809187363263877320299842426759665927839589009184747704122173166156415701909456820785014778141061091869336618624693323456693558458282787792274303646583877708812115784073907640202020068946450751536773385130829439116346596544652177963209811264184558585494031549229299312653444184633264919103023846311834410346832105451211976739048668186498905955335264262952836886221988804346481129564326548998178734833177229417370817042515849693227473363605017209158518752548178240286753892203289036035089795244011231558443746366420290983184877200327736622851459962262288551591710443049308024424874300884664676055236286454919087094949528739603386171126460782780077330572204043359030658907789676723569471736209720375283319120877804932685043913639397867423009647638417959361502757372811105182755423783962378403760688781167346793566338966245746259305225990966668199661436960003090754718431913589424384657372434915218925030557366923771324570022551101922088996188559990995402986336825973716095331630499819937857249388362045259576092119725449855588602921074943988583096490562082910689029143828312902739552340417364362923096519638833280109605383043264799695711757451127736598801531229841452976055948904329146360625098227626817134309277481072327675024887164977321839520227980657587274923406282104010187602007108254768013036369087012021087046047842241375589773187647463440205915534369659977235410023986686970946909210883925393568075372067817788278327136081008230970067766028378276801653432919253104712249430608870455370752857840350729777975979692353634548896823475930429502572857346745085295085844129251418888972227178244865151358072352454764675769808629697877336610020200317704458837424126655487905972935832949011003971790623948688024272945062257511085518168257544564959909658933882001682805382194672585457690924821762722657822499799618783678255908821156939204169428488172848086139308301691949767937201389918233321458692580833376146340651277506902391530836019627106268283353731404009522568964312503676189126253840414520419862550696724892413463795597553964478955160695781795185670381934159610412048556385951777943644441208111285568806553816466353933085337405830399400177414081326013204777352278072101710531873639523208385573376459950884455973531168198109162583497459150973478880365896135306538810715078997218341941248779953264307324198350780030394534846661927453608252424752356440940840553494585423772507461131483968026162621942575047753631529783970027442830260913107892767456065203164524666249452223245707086920190604142587564578543685896571617515009159183595254268973722681921388298526112602882249697119690579437604448919071844859391005490570486557546563028763941589763784998189299583129319514852291318483199204547949724586706590088454770043953728286640562022737747611080587135083299521719769987046085312351399444021333401450761459632012071111990936834319139110964217912341537285876583881161443801233383938192221174743029321341621758916140266196945198338217484151295129450296208542811039052263377894563830364496686839941081051469553881871600151742313829162244624644989367859537496660764162389388280124639899404015032834527870181004036201287696360868249298358341293864619994292200460903629791343103442760558393442745896127926152963290234715898654257861144262696741913258127128562885129645733962754929011209465230336367602308926070803379567226729161299996912223523466680322328226340154311649224108413978230677761519160854246826206621591799222164808222360426393236309818744570426126079152396276117704669399719103056774008801862526931216893305947742652636861904323833326276188280179693616077908617307591136828474071034342415942349592605471660149790708858796792898726731960248175105940836176713199412759983349830089722035759831352746664583156576941187541216127477304227252953247780495765945051848400954224874501924807102336526587693720784297576254746427253318406109725687193309269123505842254308278410110994624323490134153831534597090592696616723223979880410499407250564420505592584217957911702743346882367228392527150488686565040678623651817224442306939111939597351173402005811868143207939105139494079148909516128025599997579855706480515804534383369250408653434373591912188658951232141839578369203614558163024145602824553954483299847684991571310136375670085610903600535467257143904221908170916208930188297104847571052495297286664129815240712528036595553614332058529760172228098444653580228553471447121891673463698810185715396712657327268789765369432666886085134404476412991130235471974448607864698086192977557577060609717236451333238828896078881661985140391815077944592864580848592093933396523404149372776654510308876172694397659043334286112279381769399180462096898930159644183921153219500216440863578462344168350286363474721287166916516935933290481818146152229008241916310009669094707500125733924204109918197836552950022834446958598701540086386280078146222497491637079377282848002926456702940898920800710545404424932074804861541805399987084380461118649663898610282218965119853279237608158116353940406055716310227421808329802621564719133893216665180978761384222216511296197093832680139065830880540680305972056320020119648936890082972133238385465941032093196109848978595501203118692240851580566212525564937683114503503301947104086116404111997115594183051786870049224096196344287906353744122334617125814869522582910514481423529484427859797457889585737120881196243914910214667676585327466811576837890083106843583312012821920252303226322533186956264107324890483941339116625478884766208378755613691884155724783249459148882991260748168749587639782480466101310746134288602177233768809287069176579532076318423295131027055739100099371820935256945603580231452696351595973980283782901431585438918371428409665993888906474951722569632478853978834882181991252209957244548794091391046622571069786083873774452786115957768302133523396520569618258601076376275110737708832927130984287097810615850292543148924692266709088942728341567896096680073492705503995137032385078418753454826158329539066205694485227313971628687923005493010611862027234856608882942472194533626259268102167585851544067101789010520822323572661219401214634202773357288127399642013636251367801818047051627851942535035050134672446451374166816592273555731051761753129349037758833804760352170672083868887914913418821771101117474849351502183614704907600465993937562233070905282888688467511500588944192801952133383985152808840233323044457301411216749464611021384660226852312571639288776971183252117668684601798470335203605916860595463497272815323090259069042805469197020872560958692774964945826031828714942712017283449161658829681255753155217697019620040714126510359051553143246611673699606148845512421843093123389208902470452754436199244882721605917171061747274815387099756270882641901469468085759393764429582184273546533753807924385601652251060842803266698815671419962990523697636205962188008923116056781412783836088794267007686185250591197081215019858619468966717397015268477475453609955438537120711190983630016759989889494498307539717722838870787341267949788990225854897549927071304318786796773217378582512056797723109606070577659751936119729303143099226449296428345457238984748450577858317611791904894946768953270843888510482606294744530798651449526279337359212550254434049159432990676089217823472321243857006260317653716341663344664153090510934211263142389119361497680358229017834867593154658551955147702974433027080076890362487412246713320108503528523999327445614884221122631499864379314502067047509092006225426292417396898330162385546427275682200685001957526949416315517685387865477450446279382136877435719164145234601148495065549544625390833956092645964378468514228971751702354733851752641125384770560896198937219480689457118693190171099346752370666489352744977563906566128335386358707503335616355035234139815866549114360233287159094522802004179681902427445635956429457950288979861164991562447946856133577539382629672789103072566718959939506767526200625263598076462960091784878849404722414714373875774062467235380306910236712020553412340291753662094738482782983589656122194465516022441656443209402721249451183456299420659815099820048872439908362642668713757909738640453351743394589342824233702580732154034312542155704101289996088127686927573026521957961807435381805494078094518248646956419770288546069857426681314808770896420869627270730735219165926339229782993959283519434604050417267306475209599734781401830656288514571298110799303697175231566564459495259479314462882952744204769566001373818860467363468460545130342644292368910157461233094798483735346670573885977266201930754074462770789946163846016849010345001186281141508283461167259947880093476639179546262557311064233930135950618364597196893227102328146195501734331364371893927345157619906320588955120523741204872536770928720014413917462225887499641759010284982996190599647227332513233362912812053309261607793399469652116435731728897426508663110145552232106405913522435642412386150048584938364499018512370773517567366667366274858848106759202874715302521595094796176569590303026053779253142596394539838579063022072769512203414259156419767733117124425977685748340802227599060334875317357464191085144316448568853862038773195360252687502158253558754596542939198425575883588049348026752561101948606281980610238982430809763523528479523543492714318597024192414012789674339101599732029234404048606572558392651551884611739448896227768056746205817368664710305403369962660124604064819427655012976351144716112601689537131701856135292012654571128317631993510305735174327937607948847636465618881215958263770664840611878147199754655744664985287542822154683096249763187814318339311552296183366936945096269389488987445954603455779880375308348806101723047252539117824460650351795491803209557710065106898717656694724787656152832037113902794600629119980939100298455336767580651107306418164589333811351108214349931808041675696397643688031675891296993359822356668363972975026788482651353398371151872380751312188417889921331089211643000907478388685112559297810160020994082218416021013014142868463816353777531072591430277551267474961631157452233229063549116700199667739356785892464251399742290952320961416655297987574624899697656155939834147573368092005050271099011756367106851681627253374419319016923905792316736193674827881284814853028031340716493701891371578123119637007746568611174592716020486985399127036594459732916130884204674664076380329544347249016958508821444445902248772681575299820461619813490430172389866824811283818015023381077160485070045993165011968461018109125990032736954297789563201475375271710638119140648026453846201659248190726119890585523240392864826820335359361980141143330973591117543102885158817833036204452598926592351109314333558804626266958621598160991389156688119995254917271400802649872286733489485496756428894998960586858946325496677779049715308898584020673141827010673251664508318070157853514544788848253215646992943735591872454676924491692954820757042019459808349000577915638545284294860728699893790849809341002922786232436703253034375440940705619710498175375451424637054044675613009003688317134676266604753263810303586990992474635750675906613018506826757434292962722858063938934644544794629036591427449896757298396621517181883195661106081278452489420661092462094891874963900789876240126509630810669466392184665308386569651760600051270796502237300779390305776167193781025310473735000863015395811593477861816714862440809959365807288180788665230624767664485476986108059303564436455147205150247933145286477217829495103149225127737896896661605252231689651389956018646701641909633124754094367185031802866811825974277883897946897295654615328140219662188258360292758961962063285674778063367147393670814232463584815383086565689008348413281526112604008695539474481507310568298426952353112902496702946684924169190182436592370870788080517226395654240195127104668024315677988945158006861950946824145682975959386850841342439277117672526299568956165424937070991515175229419565314684562570160303855635616939681997218341750169053959126292041902213935978888326758216014941344563643895138557062429339708800257319173550974201657863227475168861064739896688787140064013261950892435895570562201562118929474704188089745440913091034359589185492104781163746918160371844526263295732411470776918367352671170790645216872384922227822938643717020689545694724281790059478905721740233451517705933167919759500788704096522461111407704165757290775664388412522605550861385857519408610574270426114031079279529581430578697211352915850690447773146497157172863010227833845787561094405075489074374758317348378263064923410513454057494987263228400565805886431510288518421663101381355580193922956842979253544084052285338396381907585199081257774202153570877022552774407648881338164457648619300040412286265454223821031812883245461825607808342771257928140942584293947658896046368829852398568987903146866906550111649269199867452476807539192223864265146769347761370431974441043551420197795607906744796188481085463443366784372128571681160209015404889574934884251024962460062907858795632743544903455864271067108488391353357633703974281996507187919949978439779532485110765265926117889155506398756577554815269271404738423746555728319559385052139295172134718592851023879097574973031203554446624339838968707952274722420986413062275891700615949718545844953882105381830012784614650426134392613048195572286591166149997297462368394772158004347483994697177463120876165090790214970287047037410620168904891825798703670586058213071190156328334841622869053800472686058726027748913728538977785282133191055587654404441263411025038457825713443982923889159901184552613770648246581622730191119517249257686621566612934519364821348496931819667930783489562223430570976369661659833911271257632121376669709766138060436865096895489673572267374477543829442326964357921032288101922832724066665082524899233362576397130709322332785965049806054524844799295357804427007550810635681727906280998019814587586205233832471171850707383553808968196341152284014859219026378539459757220631328142720167026350117063511590258354300134067218237587804737833497967651019608452290991513062946440668990405284366433556435809155188841527646666832214984705056844890459188599903541991192190306491385462470442012560329388013181996062010263441960727380119752450028617707392952606160785282876337403093646611450629102977707279874620566754036307832904827474662877713731136570941590662602034849934534109053369320974824855842817403220927742055787938498974421655035780186869420423780092697911219377947429256205836542234288727539092396101070112280645162157552151337953090504443445266512154577302034289154279294530633203230686521426121944203311114911960407994665695360165094052721823410875163708099535585627942082831025895465473152674884724237567638017116442408849809851687273030999039448360627140633647608635901753154443093163242998654962389023567988891027093258889557453474834666427635252553382511861575307945377487485270248688602609879381057778858976006598153733211105111409012008905835190857926081212458304493448856989380407744808578858952022301821238305797055886718757530291183640214793921518354707786411391828755459725457949396054196700142990575431351305702536202089843061668465573150252627904166364038214463153056820189911958678892496777608546456607904931139866669316040823452636451201560378787528249157875718858542760330019840244501145750601571781006250987082621924090322627846749481620094292423420256906553887086187594305800068539099728362432569617074783795528589692991161407346181290069894393184964794735110319455067873945540040541936152284997708884571002055299259424615628012858736982331917307397367829742041885303868002829950656741865997602703173766785638988668437893224084885100893139349533107814433191675942068848037505340051524418882173923293805052117869067344081292091666614250042665794979251957895719916373836623583499474390803855861717922655007854256363087018506710587537864631722468814278202282175352732446582057872609861112752741999870650724800837049639455587434345301976517213507562393024095732113039471721677764612652504930443010448344806005596686111025360091516558008032188531720290902535446901722671668152764936386551134875723743265887051987154450005975893282944434064408107994323057500687969811351206733218054852624633957467686975762786484752319950481793275355592410238510913014049761898612436674960435805026889258972695002768396542540541739016059212834399708688647853308955196943487244176134808692873393218363786910380569101533501028202692282846604760239267466540056831760623915239102707376337609694039241416049118182045199481514235286003403202566701525148003426814551705048868913852465390587482488510933887254735240371989834819546799640905238817541607806085700691266601815865383377861218365753185628088025846524348401028449434205264885663522220301345976405439655809167771975500519948631114561154608369933258946441986412875274469582639881970045574706596287561923845066691622523596149637656725533786321922195688012943598725112895186519200275873278076389010209466152898712316282813700605454340010492573263930516052222187201053346367813406041290317649941790405564703970349645524312651752910975496299135889601041690894987498642987685046034387256685528702771067956974146475920331802091216002273920697473607131279955713881618227652041573418815806352285684163419665914828772361071498440477309908846339945890030093840523028633968526809593837417998881374480260782382641908080475990036787748636720399510327219144232933308227544331122737796656009784133350503603152951794453391487778084198107022603174082411693369052131472238795933638407904054884418890918567270349427354691182773616547042067442898144731704137366982604799701588174425756756174912233426464087264499484265959719701676678997528279535980187995313134477346144472943149293765471515370402626426077814849673888239663163054361658096524736272366316998765421312803438193285619521568331374575337148410424538718611073285959106142009613513019678549611440712001456422630505927245670158504031665633580171612694683783553580005524231349930844541849428972096278652325588443055175373375948344830734538604098651571427786173824259416281696669974478442460216817501869454821532117654262133262718398693656312591043341933763666299396670882755913611727797369186689921144927133021212095496525095289730285305142625605878054504620391708556684690889535221630245285411609587240428705009525463381153531571300239014728150053044204097395548078499157849005891742534710758291531503519118770873404164709581121878548988795796150078649176680797451746019475760814990162135237415003684788849053137650755452484222536308431619306922426441414723542490921255644997480654818224692308179554598917756106733888934401338437283619552801798990337760913118918135071886149175164299283725268751541714648112434303386589271908930468400638434094534681795548638332774593437162343947995014717860229812340239329866970529744861050448830095202487116399119082602027053154698492361485696207141506735613533286427423005475943068038134040921356352477124826940557016319597602291679499300447460912430904047592614895676481576482425866929474795352304514753754941116128896113662167273007982154352824185155086434348226146489007515158041479964960162091891101152377465701463333846338986431265064126178770531042669397280847076421877042174815361935943870915915680427555657586085120016106707856530271871851196730169277965994334150013842374878168660226326228213965609713545240431165999476614032994034780492737218330771153755510722369711663432690990608969144281586485077664586300164273689692824940246014573156778239257479969198061655650710146220846010992865967271099511030551367182853715661747998606758218149221005812963800855895222007580661500117226783414438776765319119198288540453823924861558403694776571118155301933769051354194367321195382848026781693785730497036004353050588512651991638717636152901185332618522721654363402598017479433112028087165531174910825644756285519725084980574917567578716009844683795596853615504115497546586288749977929980418362320550881593683645702812386201547448148052423898467176539665259337285469234812117705170678855809805724137100984479790324386778153660167606230116147810527412917404398028800629775550334556129767489800688612251211842561759640870737607780198477353680600189350641630982300538615886371859733626836450821426709909627137041662495053516515251046435624969305315912691915124100547058893150640357104646532696085460901224490945592512733584518984026492607146899239266352383333283857408793906057723019204885578014069231392585843781644198707458616299855638328966192401485898485686992056783412300710711007544493685517811720685977462412777706414865902298570980934209541224545547626819567223739227538304423339618959828229245207103921303457345837224937159421611598899792208239303613273156323939539425893477894240461034342066614369926063083345924292017989121148758857705582845254968840279807890353505790762146772413672498983787095080252202049799235687137989873753751449993901936359413148563599222120407607838901359227385217668120144028349222616385501758267205715626637784509624503565086241209930245371843994921671715513700836504943457447306482774315972057605402643031403805500658996940947469592636628972804414735364513733252178198257472706646474675513314586389257640280285507657508030637968167134185062618804530874464805847928406558066859674682560179167595858044597215461853538762798798754763333076020512889994324790243739852275671940674427899994369745375611444935118282980993708684734168768162462584196560319374156466270070379971083573999904630696136390284456546052094373850048011025350299428405835482569882996956096999029652441734043300016025747744146165482363358490681503584081221747061397479800540126023166393334251748186268158469531756467238476797362959243385467025535492392375843586619064514300562783308464291734579339072034325785376521799832697520417332116959934339101924656691001239431888000170328665021366239333696181974343319441259752464134081803306770649639201786649250852309362626107166907933707984553475913839482065955599496313027259765324257515399770898154626641510088889543164660402853008679020258099822333280752603851745199513646013960586033553682190154439079087595288214539566567908937972142403327520950922145233282836012906666273413604088199174912516492202485137777784783040725552605607347395715701859655516065675091099232933223993295827636829240388425015945769051404689836387362829350086222895449569981057689690626646523313341689132951781263934136890204848908977260488301866384994538633085899892863813876752354388942494191231558287676484003106925002421569538845619716546806122658389005233331796261378324336876868655213021974264314865121888094642561204195434861628570584867155039818411150726583800112041333184742609138922834350142059084942334041540771355595912130226625022017234909060112417579721448317292368359930043752765224266200701344415116653899940583968692912609829084231184121054405197844878941890585882479605859304373500397127182512054697799024710035686363305286151574355037069635954397125638539755335615500531844665276836883793658144994282601953656046556027262684955741470759187733827522934624401198659649893116451447153067642802240959306177864883599533873854836465789011000536797007945196050435204780819522005127207564106669860437780926601695626514411387326759961943112305235968962093546412652358044731843733293482974552818487746577392196876698182750665997410404977641364449989934429847512018175182696423278813549776929698201479995960383109709043300740622405297960592390603315078601851146352264797839013437181301077854807012006385885839686932245377446446407602432459241165807083601905217726779846490384754123631601024551380600136667850588322163502574050291128928590366022478424306932585712039300530022478561794851690068824822715384764840402774408259067224141886831545199849610740128284990889675135886482251190908872884124596893122811491637706147939008543582471665231864783165108230455791183442823888431030703314163320842856751379960947323447855701010667873936936972119524499742031190022057881890308897185928342904797082219629554572395446379570849265442120631185766120468767391646084099329337223061027218495736848608821897254514301693182328237570213927581041944096058173211073650367379158555188977775944640856921663126101015869541637021642042355833927341475574319393707339838258360903559591060470566004899561801513095921406897542885413616309126538442431649766611069324639132159104282288601747403005080427847578563764586748798921181887889403999359748582890112437994520781645597244593004196882283659296633786456154079689554069784699329812329091767516998172468653651944662760973131205297136235951735796211122046189192439413751316038716948266184819351882884239025316662403119359768608777602787298129497615993379770978586610083435431875701990894354500035529809136422127896461699351310971856854838314590903344285434320691073016786208967608671827426807245645447978576936812667489153380792460096077506533346202469179181821756967981607989493549574197960533806092519369473094393233585933501165068650830527350947887936498815439633964795017312819160849244545861313536593804121012360597080452411231897804746453630000703174742527655286846135480141594385598651642529825010489622394250750138941366647867699240361362250292688130370169300037461371157845874055800483835144594994496888695890907770511143186733635764999035587119489525967855055141210798981814541464515155353840635270924751947834596610757244553668751616867092674439634425126025776026225410020134340051202820975566152219217888520904964018629409018517374330042744210276186756381209571602894852898240212424323428296297641213127084908975565305186036444391556817274883793593228626863857263762512317118036884808446964747927793494142227579547339368869885665312813766810439707966510042898850220701060709760542903102961985786026094819815965684905091505433598990038238902296938964825794286148390152533255316065869750123723733559182978398941669203933502342660524866769686823818650973299412777533131933359661479525406136839100183516235469787303083896850973266261037841654064670249244275058830689924862809030332919877918859239007794491335566916482837637282896080627038155816911423395414669091613877768293166771396809063542860268457602924863525409782017054226058949117716075024778201260220829707003176349885003922831272825425747769196049923698558696734367659924517054763081648620214171088517440970983061228097953665608041604655945887815081967676464100180270831463203262136848706721917873824475223991259433719019081660760548369432585869176427261458211673782508251727477251323928593858806284336249861677075400523807215856810069764773348690853959316529664982629156503400710899493392923598867782935354255672469787892915243181066901434689210766509474696076985843365181190896050692734595474721704368070530372411130034787395308919169200247516545478752238820818046150366380348714897722451319936136117056467594412405436960722711272408003882715878939265008254246067382836889194246868331775199697113877194094709280311339091324514671260149600229723126321787417412381328558691075399611633312922184335196383462410461355535410400339658834506374682655365391517043115982967342073231651319781711659588103171717009055997189584391625979483890880246073011150785177042556233726283599409959609451846892861202270163809251481356215146378643712846501568086731795251168719876740735182327050013947433972957792881054395639172886101883195406272736126134227755875732375042730198523951568568967690854630290436203466898966155452130294403777767534632192641281112852508142217640341449407994774093912837618739916684320918578960270039561348292299970931109013952244841069871164083211782334018859745841035066596939497226755793982069551309909292254773954026540570271140722137503050602042963224175857464245928638484869132775500698595433722222005754726760979022456110775311464161145527716197183539815770406812246645492888970803189979564403760951369838931235807644497615675623438876354599141944712209793515128708315657323422049777435380703589294872142560413472067205739855250853290116157826897184655692507460691040933310654912752710920732563265288673195699048110657158438344399332600784827285412178838986393478487246926897179743394161042307941406940247253815019773639019873807971206778880332505790404097159884009526818713865414566847867160202030301136520024205689153701118722385404888009633984332766365751419899178471355059179113241990471597984626113534233116651775606230650211444673842683928694975758844575796891873135852578148892733196460412265089296910421453848841214354995999809534811739735472634123284036592994688611209227691127014135628938321832975643463180277910273004017661714354945487417900997097420880622526279561097767795803400158769839995448758759039680594804330800145666203022949661850888764759158430746081486365188268577723839276016495838456685538384200558046386608774839924525280403952436332844173329860099070002021617966783419326012131413955289242422412914094127079086438535705705697523782898803272057968141194078367997338977942755402761908543227671235794988062303414977810930833564475919051237011622864885381580139910471088656354565196808072167566407146441848087161121218235018784888977677038502452197593169416225034605253168519163184268142677580816762980314623565290179399655929285953642413859349947949429789292551673608346322629817967639185931211162285388058508077324956082236182014563237634361069464727500860309415694134002251442393926745613201736889063359429743406103725105591969629839198991393574943493319940083911871489693783521691863971045631166800476620214473649656197488841718345518955869472843764632589685645478317262873668371911183804584895251960792868692165632230830069209898991603068525031020890948908243625833551350708610709726301521079973842678597115565983581557059435737542851300208929251853918611026809160298959502416534088884254245295302314988157482406881269955746800096543908622990974446078491026085243278732724792407041595936909831159606738181821936798299472996915122864841935215523986852571099425707365752483874376096430022080222234543456867129397786687711974013350566977497742050177663549915338647973777841170111556430785378097368901443850775069296269803700116343147322982164467141954846303419565753535807993681771138859741497080786034885839732444427533787929150252060694061890557087622652218679243645246678587827942988732729636305473909221778798298462107462293302145769302938170843691931867039796330797113143026377695800007718816005490437989501966285485710420847082654397458864434741524022317165238733477241818503152414236951475357518045384545385940325410627645654736168834561620537615070251455174201969816824090388323656415955458880912853417917536544142135643434987566303245900940873435478464543240461754797251019038184972373421199255407074596722944868879011623083621981707967105033263683285375884965086585929610850251646458713768429126657763325356514853326232106434739149835294643538036229350097193807611465518010522464565604372568778790733045720113438250174442113011483731400172765156807435156341710463330969466906797391654825321552771228716075921831968660463799229083794628535739603082149980957272646716069654217870807508133019335090594806171999856603944499460330507961428938484014569653419448290125427747458914286272791020704254928855347065542342329198646770755362209936009509368738817101536029543606813501498058609739956142575276490622606361762076502695717269292158839229189353119000345940101572515096206221610867649418995895143123916699929980492904315770554323937618161105961206451500320970101697166375647959825780829537957126491880908585186807300656753969083231111633576935555785633146914524946092098896586389086045214809102602993869421038252464575992559645977299345094484712569945132112638464744820458282076246458858395172658666479623607116345339430967672648526924999377376859185852093345160328134490973953293429108906377713508134720082031453683030583870097638238585034513541469199104815069424957903622598219126097385075934636382616883292844837616371928119896893870711145913631647845350119894289047148799186699370574006312736332335988696980664707997521724455107499578615162310014511486903046659821261366636427449155420730890551361563782823783296162244315936005861247406418512564209226755303383672249842904383856145825987769724818508728660911960543099320151813889008625239679338027361636713007403631320593610772749721144321662548810633119685963381640770109416692973831539290942291238541615644880555380558221493790952291137504908259721663587617297260624732286570152756751877487879098582731465482494715151958728328205876524990017655420741031816137049681247855115480385404424143749845441152003982652701472570507780109531513930476055881896279433639456922129503390856377027731138788607893992169968310898752503219945058607849064921232907982182549770960079487384618697958410256728727177899391114675251224135385081142621631189637451676359809201338568838562887318313104108050889909963206862656271643500852556400451297899441171765980288491025626118207668817698044983073699820374630635818337681457988726756408532694918867126007973072614167209183860367752560944459560977635726362150920446303757627078933938729531986361699730191907944637572402394806892667731501603394086711257590146204789795640604006808885240752288131132720854683454297810351784265036006637230193595342211890725026726877150136050186115492184110832264739458631178254379123414052638437210163673419904138061897217953979998071859038712558436982530618333580865999618226964142497974210307736176234873567531994445140584289212714239681016204788942155851835836975142989495961623606401878612378811247370963429969431954828057129490617923956553799841745467352425843644124006133338005399341077907332073338311105390394710476517591364562364622426906680969597747462903316901894668326304356328600387772563072336553519643434028081644693873853428704202762103146649732879602867254809534774135868757154577470842465249434850490933601723565060115028822613766894450304780553237435047270656061998654048309293143546159164973054758109313766720478043616434745782855935571564253551966764226834456154320993462177589805686713444044486329182940842250440784016634396435469149022895010239239677334505098814677322873511935353224144660225026977672581409919791493455384894720567960594507877185048696370848755259735281479433235506159319827496240576225179241553308673496704675789949616545144809893203985443429769214517815788778380567738870665012583540675003267973017617582464437402071135601683904826676468324408080010362058350466238525263222819297300112773143296102230226233102743187141734470334823539812505147676043220997611164539975143827310457495571739708118327138300836084512443554129363057534759224420728840415936953604982298379376322501470479681634798780363368166977407764092632191461584749021985308238760813814207830180636236025633163691022905230787474528093907468121830673149920547012171780544614182546058192547044900713656020143255661683238756596146999192170368795558838653825277329771874236994396784511056120372045714616877318886120284982543570431348644486531467386249172435594220217317518998184352697578753541204529900945225155696033278288708931580412172565595882822668875669229254624894091640796452932792316340339632377589063296948419470826376640841238089158951349704507827456272752967028167343215508318321287843766885901355169056703014820285136122752116523442479433600285655718103371670837691113169597617576998428725754219774236781278157159988634213315067762220642033877844428501245486583613776917555956347912849928180101684172772755169235689666314419042260426500753487113285818835660949714882917911845175387923549001255739886354126148059364557574806672140737895000763380619373981138896130928391051257687089224584030610907671820179569138249757205223401140588013480664151621798165081397685013692599165597370923545030266330368110669116927163009208840141351554694802624831354996767289278607560176845730806501459735244694280588277379916793159068341812954623462998684007299597683226693433134213877041491373104622001698508022357210252518710418692765494961268936651745418085963007989645049176330690191017499294146040201139364307668348212590211159506196555859630092500952480130163077511978444147637456837955460529366750284469567787515845855549682204159990534693176783255586217412374585330438286566319510953715362532744300455198581093586253642672063567377211387046165105256626640978543481322406783216682680764822664838350426800787730776655827361087131732800375497289090143787409756497084144829100057628432717002737334315254280391454636472255068601486703759189500967049865611036289624121599045386184245065289250931574057931720691508895650723878477643548441666113761169002480286881652095226062026779806286525794875316424752375044972180776198230673721342386874174806469896171005406402828529389798319448848889595549579307247008779121976957047771767875543351378548920757168998778154648820377036048171006854112357533422990707188110951276176673986127197618132725493238810965529378558826961727526058673850993934034052139078575307580880825268333967925948951766885014342101584725077867893292914422923583083938813760952185455988881876156793498706276637890211789476344563719672433798342845347660912550000758019197848571590736744774202202216076666218892155605220731603832488713825931448317769938960995522399614070303749896505958548774588242272772683456425069202527805839457105266588768347944065704032724583852400432042402268415759288384013487116007013832148965052705827248485607202505399607331379043187778825717081266373282216430744502021931033924653742832898462320736699010653037957213833526110112650426290851939152538255604862320367504594927780538120460905476136710593153689037054092006886639594630794606179565198432650833457164004415327394874259803254366330930251105536239959903383400743254597871589836841587029752681519309282276241633908240676352709006832157785124230672282141958651362902937218350504796898098330139637985333497607641938529874213300078839222409718821680002510896897254330099998103377951699142379484300814777769510954657000728264669383033383050194794385390478128291784867742703868546186564483740882467384274049240521449573676685541144180242557445476026361379511040457534472250736571843630768038971442323121482844108791095789903216333462268413053146589791864263719288831809965928691294709991758503838431674788587130556322922009533881411479241154721422145722809249764245488703149212921426373912721450289516190968475942123219036498212675316198794680797345450236764153411413894745887776222178626918861789020827967671683838184170611162049057425176185012581963663442240517214758347881065647238165997280967725018183509821465021175316116705018616664440771077715015614264635047441531640643116974543895211266878336876117469343145569831335175152054552866798742010954146225783856035849142669803866307473621100895438450124602000217671008002409430190627917956267443434355660056503521536094773651947911677640587938189780495225160001969905255368505061835147978859185424848800191419912607984912480848894205903938619658442416047458429518854072478267487561841653790212526039514014826204818200591730796257300546043179329952647260411015760485590937389004562777472074764727610207722751816395574002662347973849689926542718040011323185852617450180947143248451168943189930074206070019823382432809852840664548296545117964839403086679824257672242079865898991731972391978787115145444350693259131883690159205130821541178699862104340315200469339474190435719791202814127505686435817276342162457410681674095759065558199625936531011466264735051523358747384473961935033558691496409595759736116653112033071462596190892849974126920360322330703250948324505859497346669837664455997060244763896652642331774742309431610945475304161156834391183320586880829156076246241028242487678217045038873939861972396870552102358322253531602137818865628563460261466767809404017769815348211752435924785707986768934494277725791638826107905590517596517179319675711625787657396772817725587911390349347332249248115576899764296592874832943505985944118719530152069478846826194061093325622607926890588677252343439006259850215544952611740874267136548950479427010380543421117337382514648106710920755852044272754786241924480367511651956709537585741765107911913672687096024746667437776592146659514294481246111688224656293166157995669067246511589234651555764197918073045852786200709209613318266656029309560123058675780639113412870487667422918366750730907168751262499670898551638462608260390150990716344501660915541901972018947548321427275985692960264745266407255455015612094250253033624147772935117456463558314805834211808700726772795902543227710240501833302854176717973853132629051549750991277282333600004326066846714904977409849818241508591890109599599295095873994871362067057713980546372872590943052175586760167708850657261528598427316636261141951149339772742060767609567971889963824584877677510657405774886503159282299064008690789715252933937524796609426246917162295394736962245310162884021694633020207910312663475328547132885921614575951325813071279651043392834683459660300249855613764794957138903937950575152724094652349928393917414047821593070073868332528275443797556753785121076582658075861804551394478194294605392633477468363832381917591604572114744469785654293231840122414885634688236240030542951907498099638937320126083859421889574095422474014951292562666144694121960386083224347307205900060592461528003104518556477105015878385745000746555395525613090759521928093352133385064598797429866118357579178185519018844151811604956685858139504755276370089867847928078846256538336943585694541712467719601666912947078943654854337719809021461060296110976046116599440750469566412145322142908375692388807810234181674019788052825438851476281428150756977693458221511765390652650386567566687468745856619691951408048996488357012495236811680615969635302484008498050991828010052611931675918830662209346279629923973231672836128251029316428344953156923737529041057589624871748716335145853784018262521608929299041474841652057118080420147403457713217870543813527088070973444670899680685092314478376596521397739208198835805614844674238308437658724658073484065751709880327945705039479603886060289189844588704828224581687403054518507905306154857952913906323407028894389593507906627388000527777683417169596416024428548016516558162528161959134874280190526477452356011694405617609614228129832329247377125994585277014445398348108888952954033032204987137044842318535442981123130598642388691801648841695545719685244653660430063918442542095707262992027747945488172247394708274795512520349228044222385652962983185498064313332299976117052147441508393003461204406730510205335397460175990461257890353607511695430582871050317563872086576324372612376813172889307994113447510154703106069960079500459985163642929993581663379616770883107566628840339958251350338027612136052419038637182140841268851730242908874986172204771315877884214276778749239773407249472652575675659241565963117922689291838698029361442546418963719901396043297270475999773355945941565128438077745653116129376439648489367694380597223861912297271348809449552690219593023176578880795377314849932290947054269890484134800048033480926371969866807531666919241283524656553689639331138384960214579270053378568932423780086853100361849333745793995427137849680676222445430321325423635527857184611718653514911337853223081634339321279185515161184221681222310236861193746244147892281485005828779422692939735322942123679225630156301427342589392775102573348257528847106028586972269306851112670443264854701127545311777391693764303728926562786251931774978522397537073335999157103310215308640728111117781953994045836943593745470756196357828532626037045383430842042811813244335723326999465956513627625422083379420745762919937639410609584882203510802809331116400055083610618474751393218453773116521815148738764756269703154351389318091912933842206661534031169038620911172450039905954212952528728265273770142649884708253020800164279092504812424336505420725586319209174249026864654943377120961160970197540687247164217428038231115590487204808775750237869750156701003629877246440999415401656643330424114519006993127111488552960320054008733831489063271256238740078359120417722047697754407840286471339370999348281899316802712925949018447559568329732931939143250236790373766125170657620159155460543883651339524761160622028021914261182179607360162098802621765854356958899084597889237095181825500612201153994329301442870546704639421606963785388701252403670701987799530550807576165185902383427021367259336049039619318005279017429545199460675252747453116656870233669777266641002116233553011622706672198755852682707540121462254899385350068780240392182795075208252293121976414555119287198742899539589546735953248192069473184986951755292447365933088322164132813208724551962637684241944391474654387493350355094075064004746399596354389077282849366507231729963604928112953307465187430944078202615384152387843407543373121423428639581699624415059367165996392597112566919993295567792326952083883508724431615901091524968622152723089460500886527861965063006071043459720679852918201724236045343977337572182982426197838691439704476923199134017466678123996518697330928658742383032085023199072054877536891922016550356601091041059302807592395286631626719340179515835957305521667004355646899837489844641167558627397861020778784485341918351138872357296202285485501586618966399531602846313613072994393490611240259697480775229791339248372400694140580205438269176230248036690584572158457272584546209673467399792035442664710795486261027859418863873291436903621291118163316680343550366019003377393809557974160245508884649182992567749968530581426734673568469484534472252168727291401309640107210958410285058990792735715044171268877284110511290161120463529343402615123832986956550585032653551596787446717970628339726327391162440859819702780094986514829052326449627178852050482052109036651109143958629158515466219483397452550761490869309739809497142888964831466199423935463419592996045463910288901938358545246007189266132199198630079543398372686437461112298066836363276798066453127119761382965245400464181535796157457040312726930738756941993683905265890611612588322142389816957361386557632051104185813190390830940022098732498921542350520640332526355915220888136687347234411885272895261683333525257385150856613744672505179061820705015632814486278143988901945550580147626026880527141742071137061588336999094365237755702124013379596052734345573796894691651924880623857024774270694531423130329864685119063057744324045494733006129405157255478534309930871481608720176113185496215478273789920925837943298658730830285027648158869159433941755817105220069079299369804828258323273369522319852318740498725462484352037348362600841680667350519136450997472115454376222825787496701266433520468842682748727979720887171448273514174024481634371951466297211536208473825782239788852970003649693159722785627946175115558973243602135397192689057044149832297826392026998312644251252044279235784990781405056634721352832227518260584850719682256526839410331319971556920505643211918564692169446338659802160595787275586949463664282065364244673189727576421364784193831037502892530895462928248699222928422102401914774741760003940184569845368486887421714533628380285929033115239767339637096374113149306637915627525566545103454242860561726832642378755700323737242829126009488989744142941332540840214559437722274717361278675161274567448972359066388182416388809795556062418751832443634632716586467744098391338394266733147965785966588331192769681915457404842475621839635168521277762957381964605670636612543501881802701404034382395011361811177429200928154941375088179223819783615578347350588215592275687253639216947911596571910821781423387894586258068814692644733294107973021232810060869061380400122961084870006118691258061362258377937689533974630773155414793357458495504300999782862063626469209344458006309888121463561072628189186869682606472588095462513755168192587139667349973625568452618723898243869731938584182339686065775643724367306438538195697017463892468424757277781212747759184251190586501036612267650836909732531448583097603942814741271138570896467079391495569021088049267047797179825961035069948955192959366786465761355627361041906970759069187131621510782556911504797724902975610172472131018734225797706868417766060901577942881900145630814379005174651678824402330707572013734901349303509541089069764578610677694088782212411576474459776938667178075115182797044951219656965789637984768020469376650957454178801505609468815981906136366614906157316390062579599492133420159440133733509451343147535363558770229202524895874932507936820929921644458822129251202539011835870385004724596450472579033969458289584027426296109438451396552721881546570131653288023061196093463800257421998857964652412332161448668843134828908499337796258018420894592532003598373165036913628934498558350529290744363987644452599164264116221157307663210298284570611476804624466203973780537429113662182654970504876699361889889538211921704407245675469151647961286546434537990210968646568852471716268219969617665706501992274214534609612732346924640216867596841012140997046800632206831589470109107671807173505307742453933487650696289898536298589160333634815985757976608127688939590998705440883214485517679578960088402359910787112647538142941457550732999638225252526271397177000763619247779885188378117054935819303086835294804518678274621151634083865431835530443161135053087923767936982551785753110101623285381593358059352743513762579874234571497487060506149364358606271688010522538166432929421415785928622058491944173437181069136286412752393240341052636401791696462670938032484442378743495472463029978987868715107847233359440777694208897381170923193785842614210416710522551570161734232180187124961683925459618149866348976185433030235241873590863243433982123930814764182226131744530886040980023437961539818693462144109172472943090476381735092422849315161882172761046446364568184338650678432943400424807355557769623867923093553687236889472429756015482541674218324529513599099503364278106331950778095370722678683252472540050843568712102670848797613605762995765629703327767133877227696459417356506240747661589937012997775390673090603531388884239834654494550642570615698486696256009612641983632456181946047939509140023087765324406917640199187290493084040131825888309879979866816673571072305242961149621946327153232085489740782551159078702589623414599903523715003065897701789322064898005088200170534004683198011245117668156676052865961830968893838354368825474919517584364608140094794736030901977916665112893033370170543396388126566770123690344838483329679375698523689317973166260866892156129423780119951593967981472784069124621830036032726406229140875805631352973941563464929856561386744007890061389476101273314117534722933797017798217563186453417390865162156354237400954400621114435303623460909664852888412594209017818908146141380389297644594550281385913671408348689455288457376327161582908645833552334766797430047484290883508727154750934279279775108551652364132046570972436985720176268178340862685843295880764075816820147737489629229505047538188286428751696815993359731501851544497891515706914948648789564483909234995510868600694803727538745516000410095764002296885026985540749714373963362952825172319821575220416464386204486126126368773352331135326977066687567140082470515674797647045823372690346879751211179216583026449723376435137034016205995460695661189752491522633650312636826102590035623987408520764206356942914869969246119576880270556957464476464242439342247353297551604562259791094409641580771336790273098535988506766189798039611144339688788108702094843935634914613364244000519508672858590984954622282835695912550738051783395830300058603998267517009011691889335984502489430563967589610515098824821275181634214318128133690599282861641527388145998908922685070250987451151318788705947260951906361312935238218607921934210052320481639575688387747874678244327668193327093104853643740366206034579468487543649427223818121057056420741485230200380629285716731358242001528861605049894334970635244016691615025744705409400962842532451157891184042743748413231986890084799268911302142860057642593438477855561268673605215764882989599458474315925278037676148228848565421098050652033524725557885090695327001715228419642139035068799857575932435326693850801599090808645662836586253754271117522796803169387119603996044173773212874969191228963692307282713248646109362245911572535814684980012434131898270093952301236560048926151087961921509570310969802937931696975239035558360801302293102735608960548535915979409710763791986609391249220719820438080603143109738866822738735473169133961716557556214969255771563166370772076520800674882393255926417633544149573650837390716900294469915871427731534461096250004452582416443941004220593949261773773970092571090877032385750322612301407718154534975218064307824862353984183390866722201118957308479173181194464742524148006531337600022738985768393943984517511313766862067435673528949189448375291569961975543412027618703307273506741035045405439191358145607562271750986079627153076479143115139121370748723842597343932006631751079308415885736450519346013960472234103012275960976451810434969451640312961993452721115504694671826378062357242133695419371391252461928750762533340408117455284035438850826216034638921515999351920235449739910264496136218316868753422803485474878290201882863329713840336860316219459365161558697094258780910300919738966399846489048675550458719534088835739502030357703334244771317014910955246036290353653181903679148313779971847816556037383048233920861588688905460755945011139319052348959011807751394272126850086320066482114669687745065373863787500122080122989573020657275080492167436195414505934805487943687409931385328673086102611200128417618022346562686366999455715001297934894449789314142464948190208945820620593481053417726846950672606993613298742699632250556191607934895072534653568686181470586311321248161473797102616331905811068242908990644929832839411919378845127102617358025760187713939163551691172473266011292204496081542351329380648573140765535462396425172655729155805333130616004971486939153111476859918060885520545862667007175285924490833375878852756630931846589918328925510946433833293688456589908825728872922442460648903010786792592640110277482358315758219427487602507427118574365759052988866944260242835418536281614665390908695583947881242301235040388427391168727192827639088834988278720909264016038222233014061004725578237932137168237513691754224350770601797843521339563482785771740510599216431895906936416542260923971231713691733654415463195249246424579151235720850383059959424772325523641877577648894622586637791749543925296276705718802036342624947784337513566490942471053609480117934609960867555988584520324281649252576291917391609945863274827235150135569701152965878841879364503750082825191614651036651461702804286032899061765647686440157855216232724936414218420956974089999990039801415256098805551415374006322007413855247522959704340905839420326861591594232393832691701743658086723416858718278251442800980913881658154547691828573540858745845903918667030520018612447464412769491933948278946921868906563506311153460922540926525943281479935512537185764027534192244159701213105748881406314269724295070539987024849725252323444370946573192093230855542357359599848263801051083788039793978587268489101353616040433622368350709505782420280748638042384936643178010006185768291952806893900358929668818929735447091260737759817253930570782720484886162496906508659703119719991505155952864228455981125475456090488348650634408951718209286056118695800832312970656234710370373330083118004309793417050839595300366116677414571259903443249215406521663544254241201098623768907498298390494467802091794313209980278219991329616814554260441826702366810807527307959274209868662783007483611693162279311585862781079820640525014892537499286900805810827822249509849585904618040186420985243684289853254207328774189180209590248769971648818953246227438511819373583121513742666467422430330792793220082864878669022748192794185125668592515935721441183409771921227385573471000541315355943751138957942654645902198237083502071879382403774567398861843192706079545883229053911491584770535817910470390117575140797221510056371186734073184873137735280007975922510581192518719604134698286043959822081050503533308259943142296725175393565358479776814237802705870316731976727050710120575758902203268701574379309796960780325781557175471203050389616211237345556894002023640656829088946492209486047879294547084935009620838299550278524244387006209567430436393302794780972459737599667632338093683648391674408939950700425101535954409715422880560007950555181045055639145946983011528248706703300228529971269112180468928276056650039827222027789283890388517075431545199870906591326824924925368846027836083829788356920147795603561117097814116539376678853516791821334297366932630211636770156914877954680781063744339163366214737760163384418782432016184813576257370218579821324160398350471523003515260365001511903246780198890107357310033448738508335026966440630987868575236834885502284413066569461077441565709051396116681042577987248625658094125627303596878459473148754000905889627603612024458131494052044192524498046734100716377492256002604630469527673929918290130076405338631572563167645568642473577607072688714484328976211528431295588969208927934173683827056635745945986654602380580439626094121546576699380218411197272729768141557688599888771101401676985402696648705493867325089518112595414984471064106067839809684922492839135590965552642540851512322225279859554660000884137013141410153575043373368923182664306654027316580512898631113841749905442720788877929749415343922143100499045506360595423671986766653995007638143476896880591656655618096469708677340253945545381000465336910489382711415167121485931371868590201619080508475713424462040677105443567716640020791861278450176424596627034472497461403964096346737279392724929433879182133051559037810598208712951971038116108738782893293598033947410151594783371297500105072224303361218182129335393390298401571513565995024404765350064512546952810498036336327709486478555335047108664028561845829246494465290245944661707723865787351628801061672637386366095775442018902167190087903136288999366732394971098003201465098182235553731326263938622661278656734549385789474527299021985958966705518209776277699738494464514655088372278672543849677458826232904411346395468686361408869267077874707408644381725924963393170438610341719346469701556259452735577512056170253822326549567017463741091462360564278533458555272479729933853488786986653890389565883425886066864193844437710822055507130928004988758014337923730648495490666101045283524319271681363259258780101522805048464084489022453938400034903984543700397546295721093545662192699261873335541822348978465964250587392217634494401473150943013713043434330375018209813218152385122827021569507618711640987697164787674208512919620795235555807886460617388392419799268788958315746193122393748341951170528697390588966976941820062364261352060752536457384755305287655790920371548644919337055279611145730908498642809671234202065995784232999878997526359479300077442708992929559143595988475218860497686372254847718103613205220819958523699374669583921285181744292548974871585466574342645319130183104348734983251708527468583871961954854954333788060260192004463136861371613224511090458002123973086885959620770189080100177606444211928310110643519384256998535800885706007854094286461085746750186688101293963049616546750728988924740882617203786958946303012695779129840965843385536222607227723435895667354391503183669375183805431034096029215708570599486123868424966339486547815007496936002575670929629304055086856929779099974918471071113100206304466202370378811236533737318572394754761329672888017776805719572081702085711523948403957349515388670810302653965961092895300469032586306857043003075727677698568577157704316873783112323211951309137868317739627700707116907166734200737533048970060708180312649404816138254494896970907979918623083649149720113518851326444924113922737295763737117856425827049684235157946672625893538022828359273398441772853422306009929365825700177081490001902840507008481964944817592854106342176483843207360335733149335129680360952621182356733614374621584654543039846039740967197780919717349033312348736419202070996394433363259167574799661451559409389501406476257988816071365185848429157128763397065811586156079617651237846112334703691705573979749200033514170200889506934221288063195491164826378233115118092681579320218476650273146586559282330356717605802338629839440973116208393785797186881706026506593657010722061255043030282167704205671252698660759348339458774922925921880631534772012923215556856557317102392086750003502665645625512923161559350875595852361108471844297439438720920272185654337856357921242989937050560960362046047140592363709958860366887905689065045879293306755021665126021102685947404234250895745406939915465558592183212176217974236603425348905636686379436700947466183383627839162877014384070538595263610379339351952236181878272837634167289254611594697432182257960268118581123151204829759424151667103409144980463888420427473150236880467419868904233878057970563202373458804668094439327532561567555706324288588766017569848490946550436660135269717616627488513507430216866346618260317660153674448145352791582217254098677920874901524028571484844938091777355873455109051567090971737910976022783847974675272712904520776912141537368212547949874966093974930675543233691997238484522210766857147075040745836499134599790647865186231339151661521913864687725471402485813194703717872287532121827235786019825638702840187351943939615220720215005229616055452632696779299957516921532441260820764900746963062857205960079004754164097008554066938303712638430884504043478115306179393493164219141092465770180167785604516274527173800979678633559770268797245615217494125239351409570739682324724416894972066792597780612728873248494577185257900736748047751919678988117068077300137239818870570476081754512381471221928245359903651892494609173178981523775794293220119152862674390498971402243952934519455324058451811985161753524013084322659086248169729763041716663754146072322793285573679556519096377176629099791517263406908681435501358268274282833012217274624832305665003509556631289472959495589580498801774296279126364239976081925429409509105747827528215358505303228443253408014565759999747332327803292508864924910543747619117150860699181835274010313726070515653581014308919045062113834478381802422871456085826837950756227610582465058159889879754698295587025031157478232324908461348511166460548804121828083465275216002039292546112349178603411485269326750174342173854361574796823868987411989126452649467531792065523641097813307171369841093304193829723389726131375905071499980885842802776883739910050626345431844826848942033971862411726753879504025655750204512844295927102367464373649507911860103702555714481918307633618919951595045084387026129155693865948982624512842969596887945868640995327414100963208320220079980905731245740563181725455586526029422601453466403258496659982885416135383156639126751240062551778556185512329773370448592559571564946322258158534521444822169821965510837956570071127771424599688374310169770728616062947112392908631356569751000429219301939152447943022138030746602210502690950218543372784917675901276761798049464893188045723659644337397486745952855953064806209199629710520392484235884939433455793196197009614478607290074457928488398629988435429598183725325338218617805506498172294939906482020948102483275182738042961227494870131494885593128294790090617887618855208161276724933406851279749193847233231760196642018926193047519749946226487464008260204567634936031393195039473546621346310236023989331965477485888387423679455619941887441044686516104578563165084715096324789245866269533551954930662597704061560418568861203368933191822716961141207226539133052163000745401235385700457539501310940424442619753154262184641486385965547308152317109757564627957772336939936103299149366476465847242294331852634302678665909091674234665298540470065058452563281353078059799995509832493778630707562399986760542765847673117726661477740192413724153654179066914771602360601426137845474993703195691386097837351571604017246771585691398456308456898851177737268277927635585472207213427695478792229118411051207248047140440067028254534806961814545715881836172942485866215849166926095245702594418045279697020545262264538871813099603731644740215476551215915795706652355617417199779081539387462719839547845912553639404324826675999642417925802153004177491194030939474519363071463908111808152528102175168649829928235969202127234186872789061735857624592281201410635841995718902642878153655246017741849623134534070603669981592373256200720162745191231608222034306149798722694782541463457682057575505943095232756662009309653953353936442431780525812006838790978585967377692478560965831010956425000484915200228039172062979595079499464446334832825764867376745508737903777247034455169484656819631994535975948722268149542754663927337706769330567023712533709719608784971547095503048353644973789126781213591671963906205026448895800648626206975813328972289571473932132259086980471967163398184431018427719552591301688740729593209727327125740577054333864170693496487740552806400061228411091167914067531914675189786726144204011410750218016598412901968176355638261268846902216136428855869719971244598075508766489080649431423655840122140582416507002552745555550105083229111622963506453933630954710501232535220894488617161293990482136780312078555369799169600117591518546520917557701650191179283341434259440369596561101897413214822266472615486768190007799735410014587724605845503959147981402412757064718849422416007587904841891931307751325269446930917913943681439849826733188382550309401795836226656140569016145547032916055234987622484916554318361786117500207709923215023421707282289132552475412837912539373523794549438074981871840237608222626351150265213649925440082252253601244613689334273632817033747834519122825769060759346738644049621916934796992056183239810607966273383087033298807834983705217312080973486793897419023763272181882053037254618083059598779574822967494926050065173322812732424492504432435819233130464725967247793021291246333038413624160362074575113081544651928662939690814779037303992751050141482484871503720265279719960484535097263213792967813636662556406434713202111137093257578558503843826534005548172639755191741182062842240137775366743857849690251651912597600575489780787186305483602613634218070102606343851704064714303305801177261462082589160720754085623571641730989628237704874669917320313675166745573638605064572088304519466995207559190901871418175356980290884104843041612621223933036582390712441925818641548198469564422593447816056251966533807225215786461883236270933323585223307573230376448706131502545254864072852845943568267918806765433774811385572693210524940163185631343167555725133840125597749472788586922584273027090336692024647472092986379060819903304272296861513254649916817493611083129980998009794707581964866251146186010753856809018907863088595803806617700305054453188854834050214035857953062368220964540840321847182514484719530196668561197017247324974832130549872172747494640081695150928227649037456168075165394693939653673364514729554404600984745198142760156195967376580194228985063751818669306390085991516577069639535003774213728224427418191070555985221646694932188813993808057456008964308175360627835698461919242879428190844656988416839408404718141334927509035743089051037399176841298117245014500141386039830086085468833371901763017758863467417631375216211929123043280011390552401800797689591653180289431678892546748909527727456257812777558777388887184582514767236778039358173023768417777938998659017974056365980984530864541772057776902818461109295087417682905025852981123588535099842329091769303090353766961540186508392724976929935637423562751710816948708163656710192892953037313919271483986151762089652722299219218791171690886350194687054882300534785996603487031491061012538111588601100304126061327616403486490777612128195182754870661473813193437634681169815811307556384690325210020737288569537139286981651921367468176550036211433483056313798859146766975054417912537086179720748100807989012485197033804477736911090275853445806394339611021688421353959862886102965678341412364452648915731680136859570558703374788368806274999055568608112813516488499765461730056404405087342687285742474871759173289204531503935928173006433440511276929445250742457113318912581696775992115605950645484765415875154361576686335724435401294715747339364585994626235267262365165427885205653346934320068414559671016169329122083142441849775798778569723706374614605737570868114396006390453062109045976933762424055985200252578244099670562239162767567667015589889255787690604397308389191907621298882007366579202116297642406217575329231264943897710141398566355685390849783229135564163525977691413991319041200538171758126927544269464093579298924906078309550077266737338933691752010520010119615403652082086282267049886390452157854033478845635478703765333927324530457578111292654818095657802426548473148786947764668848252183123958880882586036722386382997180909643231609658767830664168597124224529966394223760792003131751512257956594269716365874474126546447406107393253812787200191089475470707698000735684350193960856888342883307936057469805327227298067275815998940695453545023503525781120808796227308341169718837119479762903660376898119142288949006390674824418973812127574557555502625480510087296627014918430341973667383731098985534768854116627800213900296196117182294757700897095696620352669326221650310849476579813218753673324288042682095770335663334256670352844419677195571668752479175861704393091463110032434103933083583883875401719843746618640275381726721303071557913120219741678235536448374854626882869378186531376481569103064315685285206321408099323481533290385244696829080039978262707911060410233205228496044932672122449453522651835955781153500052394135677279983355699380424485774898518187223344343151287372919782813080840496823633152152323770081429062339253983798103709053390285425096649569189158477049624392679221075935518972908436321153622543321058979375728248451216277825395779705557703566989021609400575079568634808096116106739142632551811342552680295597631753126392279097845395786831847587257491782401155802946501771076640548068612266943943442224488378097016895329771840802203714855190271947385192147147270199690882770283352264327336082674088306768805197822833662176915980148933353279878961460316378951946575421659303007702078430606236816249086635286760732948214230831427764786118375143483101840661377413110864749622194406151531585179811804566345529804772541538682914861043383185899684168602272186632912800015115154892332805890367096703712993286915268379130155831994669974575072802037803346445979664357373445948797748794327719412733197620180261063118039392619855919471140119496241719186692563567031121878016925366416972237290872798676746143727091548041598046355822701919809256773419817836307642664938767345351150742372117363677562397521994601858830413667769763036966613307126707615357621104026178195080122014109002985838542356636681589594027883692271219410074972322429215616537534507902297487907150588660223626037926637064001216384297486509739477237946630735510449225197695897021534566008972252879751947258279049283200711496262564666361502785421997168850477896205295648075130193310444912407328093349854680828545722675989251921885412269553858249695606081457989640989896768116582957325838515925983314350695667921296542655765643526973439472525568196644809825059696720902152240804225451546036830064071137013398975697263172511135440303105169147888112844932133820608672375690710098631347136810103535416757818499610395320977079974929215134262943069009752279950469450577184847530504388621833752759997912983823786183989178273131231918718573394794056908266349748022030505690538520954626256171297258503361101132780969482067818067476813644167609372720272530770364380508801728116381154525527520593878169604814593031843449666543200555341642943713592269918533248737586504815686073170101611008313696596682905490061573887506520763001167984671438476677849799336051906969697799174151443267583322374717240036551958399735846045160897293664327909922112887262908088973233458861672982424470694295706098369802095835920857322536312971772059689023191100674520487737336387561799093415280904732782702506700493116250362478145979885706907737730203895743414717240008550333805346917254097363093006536354599735494981571722914165159619077068161433453492554656206897861524290261320338483698501648555705882760047303579489921450765868054332851236367640084943681087177162071274060479635077866920545860544040006486696814645616401584877479638431989629002915227966042511702955383507547750816540855815071874766503118586854490477421786031618987748258254185657992039408493372270061812196333615189614724014303343903730700925545914404244641903282502002304605606556377104741197452673884105048242242794040624189414689717673387841383314874552646875601807456607079050639415111672197312941364130620125723093328567873293846100308517014783978070756183579073556468937218864349363061908980535730613255546850527698888632200236889195305585730689699869836969872893382344345901586080235287820935002656738463553382455593073904270437606566587774263448194163093374574889069507552150232370538989688912263056151538967639989836654557069170677980777809726878624384596969740804175096340008607753431395970901123689469739600983857846248300822947618112739098181352864771880688037735937323186584072037403041467078528813759380868448438428001912100589946898365637432919009270045280654787758739023484320641105570979829224770662432680719668384842068595309713382797326462138436251340740027023188422208621759109924265423057422772005444141553139830423777755586960006186362296245294926125403617376448308860295136112796628567639244846589613704344462011315985237029594312454209596422415404422336461935808784604259694231718309091252052662012140344524980176982438823337253278016130472271638119453493746911055135077559565616031279520042539265727555714883747382428636310931953259218291642286317167556907607288858505225533314299624624899757567274821614066150285641134514277023852407491327322795291208930423823696308668440975864190902268199503298226798422516422090387168478231194658006930655088480003554746732762700863274152047001522981526043810711665606734180119226264374025815232551564443598224810885159331129119959840105989338762090114707321134485535836508404599931541236969192613272711838929691932065023230778326208946220145275907700520795660894166591554964582898458481217804319192095056127865447477990578248338631847160775473383935147527078796248683830669777166757686793224765344958479415423800315358029276006795798065048213690122962007402310500290911114766218165220309268842204845618430778852842087142603761907088525936287539911920425776134647487513504515373696046166978449410547425345630930988124396226773592804866071887710235914742704202188621838887858097667646487476732335965978510447721711132282262030049433009434898407627332613261505792772277676268319539475705790816039853660852398368726819874708023225691459510155951306093356104962155221063112236900057421564072393731372457770706916047535019542058657058123998874427073264870892536927372920733402083371687960437080892181101803382328205358310597036452066989760508124781870320276743805386423888807888847778184452550160159713043946613943114618541080010507945065905766391972998868659780854332841395728066035560639908157700410290471629769253017882771819673814655966615063103425181959016163095019333905308478454632016135382508125425936275328568157530257467920209875654824732579513035456813369668229500512584044514690042763989430330952222836666308070949609538719826696614356765237762539499768714783590261077593693209263413963567413551519844633750844867372686059027102559979854457602544340396297074590394222512364547986198068527581005337740308413243397656904919501810396808614402300258852005774700693822873275052272361733224419995539971563952881001625223871632066264850928285740809348669089938911833329305545236690181805991515519870693176059580700098474170028936204518016288679751248008319241911053792593924848172716318829426663366698528115001691839443501124860629201114451058686659737694444936763428951602877311672609785847396422412591301568487362460078038667993872035273626264217588001317840638357452057309102498485654875494164164461674096920305556187261580650739517147989176399921347846569247793260151616153941010507283082146115172915599756224828191746131902768613339676546256031945548054631806353018396969740093883553864633864441604036309099166256102918275512666933943416126984105074074643715744767709229493835965958901240367269437209217628130145650449262947817591475410712045388297045669921759567947716701811854284386347086851410100930099716739033917788047393680213772323364085437468301883297792951394180552935199792663607784065826980781881438075888460640454555917626618822881339646509946532988555060192295648694390417444439784009778134539691535276953414740411745952804848243219914122320738692959402328366137782050269199122031744392614604740469736954812764453480944652601895068453713251639294059654881172781169154022826613935540860328135065352094694807884227465591999862103915619635527438283067262569897016557760564999818158615065335698267380897485950637665279770787500642283259989568716665142904451867802398784186691010601048546594948698225050607199354451115771427617800054588365901136472973477966576209546719872830117900496809910156832430490031402649991907095689277275429281950615725725767155937834726912820144984426091350934336670608646190069234307326612261464279235263192460187785271741023927129400569803466955644911983173471360112516274591382887802949458983399877568703867757069862939363169350356910234992128212191050184151716761046080862096658615279311195272585565765983468304865065394407687398109692008268683864424704500130310054828177762795085941176961059685710586048112516666558653552992634745745232837968015247478713235732180178463448785501472406509688297418922055979688101446667032426817964200432166136600227237907155749795075445646070960537593787298145197141033974765877609169500828550560481372873769405499812047445504797398655484062262502596746241314333499620548692857830772568205395556894148683486565807967635098215574072638432937697267072670930299999140229649836360673194034930434665199207990577256055376887713242789377002080816445388232355995969036435171533724928640400329242372876419209776627419770372123104855896721377498644031463747759081428547277313993192812035546132777365062774832200468270347619751384790363313820457366429622304891504438252455295731667992229486522566480957205847437751254164160018189446324445901380833731769939559138234093693384281181956132919298169770627373860976157850775409479206163300084006298108400766096866376021980200882548803472450601206278578321037595271775141492949766310749528731747186895124774766515575562420806385182547872141068523389013199577173599464507523135061609000746681114327293158403017934520649175098200261493963240139535495623938900019979791279944890926206578532112043604598750815413715957592249199760440696853677104769892893508214541526080900521377412752224510430963669653542136768101994332620502798271006978877200695700334021643640846262316811149466563846607053776884164948530362500095517772444762269048287062214375633219791718654289682900151558028633096374751249492508808321559461433802114070372765369777071398872814800993692619949019066624079446875324253085146523580864953143250588727235182318712362691886209074248823157294755584025789766807583924498317118673245686113790884624407864492233477910714413370885680845104307414630738373615210636551866060736866276668573411512825095655359972649964775816931886800956807112809864591955090873929591579930796092672325978139116814631103721635840185528770860210354439417763379560509371828987624471851296649005322404541735586932270080181859886317126447853476749198590802049538906237891709328940096003833210832336360906924501113890802881066135085191708477774831374410923598214306896098750697765598428212958487744196285004830831395207117025788532281157315870517203817089014177884102576444717376911038354936581107393093503657918907843414340816389555278923760318230060371461619040159127796573359048094546086569863971387559417773503698160303879214251395708791306785017373953924118685383371978431368531722177408373133637273289004660097173902980165245497414298787561129790605068443684054427506693299977087501841068307934453734719404739652561419231675027261223252230426952990501417469108750814628394245841607261402344936680486792490881078025110475365032130762381333948145425666242534488809690120918658910706852184643906476559165851765372761255220095216216773886907244163508911217157158314568318424524632519213125969685321583736821784392386847599986103525063343889079658736700965475523233455475828487073987593642569464777749546223089892070269764129074622450259970154973057976681458053435202938323570860261055165478122587024004402915750174305734852179188026422644717254206680426547822324412200503705936871243603487072807168815927759008919893300247709510826778536398515665524467400975432806627655343703103948606816504566726510639236076965383554916590421711718266004996921703149058145272683463393617155430643948802020069785887985680340675444180777941073905702192149240134811725295803986273903988289135957597207477449962667786139048789865469245592742952757967472730096805948116393304645147152063183022129420428396488260123133826229723239004323269383549919493842108323590386877414138677787627939802482359397279575535149294548351844748532359127660704340773396007912308648849052794698650899034291826976669407235994832770286520525039579595997200442712377651719599975578750664527638035594421263572222795938900920103305362137054060211991642013029305537603738576578509544247824569115609239197969215014523407060741155151487985770804244644390697038237329885867128012633006671197415101467828115697696450426237455384097307763934615389874851645232881182770810700658249147222350173967071514667384616808077695941881178564393014533478738500024230495582483236826464766637646448107612962002504030428314030879083006972047049425146793579214831802608644005487664716420660717704207575141044336635212346220820058011350339191745608329419095830189469046665572326274240398786668206696880166464783885914195637006137613767175000744540356893786232205539912874785190936022808307841781341188356061375683201595493586129071215232842616118354932779211465174214921236271568859236152879198633124516391318590760846276125797708936112699825847026410239357645207467876987767740424776496621449689232125994691326214007383380573679241170216347008257947941035726713948093883190252561138516241398229008592179651735475036380679491941963757157836644246025768249984708340723361636137038111592156997465403260270695406340740075376096705823069242013592698952321976258415837864701809640329065206771527688845164049101049348469748993966141489162752132911565591946995886871747448715640434937917457646350066486899899848036569679620928496573593734473659872480547319295452851419015850404857719222652396689897059618802693436611798361569576681213753079285363272265417019599649759834262834073240748748972457406973257018857375953293932203552548358930537086097771943765404876716221606548349987412653816144691335715716782736206867824657678446128134263834304958758198268186018628218202799282635673213004718470636926402746034594128552666431853237438274795654310603769876525886751185731451071952555606232328994625581071456554274725227665594494617661136793524624062317092041520645415252176530054213142415650179796320536229009253214992935952520151960853515585292577631830293849427455381666386332880244928439729929175487377898509946707217401489239108196305209420199472854045386853667442920783013401092927775510802180620720226481309575159179013411596103186802196468867069639852146242603400378529797964940098887936493939499094863570106433228524456346604559326903420478177983563080536268532477174547025174943568965205705116028676760786164017372502614428236470541598502127432556399729702522451529892266876590153322018164464032908453890528962253294827583485513881599422528116344494492428604710402807781115022387519819351896121767856011426540089469965495232688175227962234146173882408345909221382639504954567484962549923513637265037729790834859436393853081272999546103108693693737824225439306838012106011784270612142493142489027087056101815127538916050394607767492898826821686165363440846114982249010841867901347355375058795178469446929902482670480739039255568016685873896094067149767034582645242972327519335683102669265066328523096034743286459108559368234193307143251671691507841241102241123413587805703004944794511121714575980257747592719890162717312785456964859559583707663456192845571313702217351834035944765562526476723342560361446659031338023264452613185847997185759486904759264034081030322452857876489986728573521571373024760346107682477280908433834066168213363145213075426849336471617026603048992097742071047227553841636647251931282684343261502983399274703720613906806273777309743347200871463875658229642805906323497835825100261900379343416465160551187487134814367657328112577474600902591995543230397105531454307807378865208647661953342881556934159916005756350493695450255035986453460605675682571504361726350024684555315676317048712885358556150845065298847265014961520162946671048235679716006452921850675436660667194854503023030358744559194053957259866497878873810414840104844943678644310623932881571437710093516913602978484336906062452772382140450503301677476683247976739662654045820124355824958920501268854150853362350097244802719744538258185773457657275089781227619181737013138743165147802554654957120006614820439257797247481846841331109233688133128097686899510706420252092055743967066490843465593422697970864603367593651149245901452844424799589489508107877227516888922691612527510840215321064618821899468003952749806332199186766936676435178613323078298474486549720800882591717935146900692168026577857086292643115179843608624120279145091607875921819468321257702222015553361950584366417854881391635086879002554027463366214288756937177664789377977000902129077899687621756124752904179365714251918157986936736095318900020847464782062237990873073944424779334006323348915748630764611271901295206494522398874450902820507870219926028855895181015130451238193601937339051636825331881372504513982204496106815958920124893217613407199594239451425792207593196984958173681858858678826642530191879233680919412386014432277634801972423873367149613041047359028791396070962170856984021324772769431818983487744050462703386379027193389923906086843397195556431094516269136740803518601988875097400562459009282657217960036461484217318033366911293572717173431313652800987733950643749796752733088717991965860258229014065547170668633636577926858890465154899225683057444977535765217887707164905373188796244002180693808115618768338980010961877978475836002664386862638733693177457922815665430825156651911495874117310039667855426124725709966198981296306643972266101456403026114800657928554778883706489363560675050504233030102753387112334270838711485974250161916237919086473275614238405307817523261312082943130104492851155062728865769185703007498479640708170815529392832632936021622734956117833785216401614259768182701406275924219307835903644605961619692337544341251162348657266845860358066907128852450925459049085819437835088140785153791351124135043246776094535233221159828085110518339570639737450675434988208028739877876699190980529317663056969348173677928500397350399951312501095061089476365319850179273736690362774232066951258393373736477970283978380384205464564884803014013772484764609420304607730713302283920766805871021139826608722504819547494072713887611138785964652952938693953645816347678275353642787168846420611641885983807918349589942292343327247878074915426245274043038125453638465340644991771129225007167916355407221153768271039619429150302747866593366532682297654654430967080233421089749126728085207698339529761015077356817585725192077763021335863406704242461881175358276533149194338003647946401043310438947702224734634586340875228995166282011272086036816442145596738127291790454773243841876523731961636220990032991644230301342547818694533706167339057380725917252582713371106791175246117471313886586889024873228538416804369705045843995790982468213128214163351182851342454282536780157059845848995383278129431716888502269276152683486666728344098094131364389708900964340691690692166480808468863938943366071805264854782504040711115580874334109653484630145573620201748012870647025074264623173174753711842412645919075572516506533741184942878282113765252916004491274604949224921431942457879104553521595686041740519128540038934746120519485517977096846815590695635638498648370506077524222280064872981078170403916112743527523476341625632830795542830117773522073755403209891140475441521350126517137941465765962125440500640318546276835718121546447578521999118579707305361185237613055378731571356598455857549633694673310721117600264554736026665005121766974379124300681353713329826106211488703942739934172368522099520710563235532026321123487153378088767271390561220380613196195181888250604364256048951028715161850253747596089695917272111026119231984224934793925486974431091352571493707376621601111118810501415206145727246434036815348208613828351413844841636146107484353250564949150403200971574218010163353300590477675925081465256201111598773881692760252734826868341264518187714269688602758696193345468772227445646203360583240438344689402735862369855011313059049970308023946455657690936210940243481967474366353192500289616579971809218921387885637302309590922629170738112610870103193466959562478677224243921440563350145639367477044241399038101491057432763982270273553260599806115168291406564921728854893570421180093679697117130958710138134824661918129782340678068460619430408474424410082773263230248646203102429856086495294585508131139482685482757642295748440256669008120890386203991702645409166733233278589927760112563688010364888984031542555005506876989639282276868355808559660660994090097669563844745013374592241720158920477162704760592273924669345854575693840433660629291091209932645699305380764876428141544863051358410219536319879288670057627920169300920800643299346909279503495003207910421011579946914634098333282062051140673065807748571994475711664950684382759825497500604103987173148325585871116389856447674115460738625504432908222548283637931845673188825759444388436876960690352860116545869074562839155330935327644814718555425461739904785555954876669228079288348709730017691719414208662524914795591273329463134706424177934478206646015989659096551559498207166242376680096813427474872955761322912428478223849958721128979117838656186757019639903201099658683329556633890037146304925274324322228066932424284650984000536432670937710936489629257491141872349170606560060400226462958375647401993418453320950988329567854229846349875316131517704533588535787799585946626201884740441763361289352143252268570735644519167845503697996098532331649271430394583529512816339293462655535103182444625747165527243883401418511401815302075354173927827640168892570167483184676428208416311272549834369272091963484390093627991130917859315600914814953198353771596172504198088554409656521935592817273523127302105613420574212437844468788064825180719097520109515302360753637032879576018447934300384717589856432011438099412504627287108298667334020674025114997812738840510667344117535546638641012995899817240533617152396641492188562758258212111416988711892587540916307678941544090041926920859267992841971040410843447391347721800965034073833226643735103490234234923376282578861812341660936581222229311668813271840544586608513427151833044813451641599801218315419290081218180565852871637952761808355736384829920889621393217038172570234929917898984364446047446501307489353459532027250567298417967812741300677964002769864004835934707686603185292887243566092411937648231684636937694474238482524388862345396991669287281416104973837540842005688523123538281194044869026927050061662652000264124437623147307930243322580540721517799435131363804983408336553461034491709717113683557528816828454310894035139517858069716616104070632541434136681698706579290201754780707200490373092803050714360878079181959054271140844560531302630567625972712090430580961241955440289410748455483481453065602852305834861623309274435444013365898404556501320664027018049966736896222975728834957416718281373487465040665362039963961064489883618103464352617653097121054268836985404771276329676656543061852356166726707769368713213605912637413596914923124039122785635475941396673870677721989513179944272270330950943704044103870855537187700726032445683500023076081396927152152762607591995649573765355526696342407796324435505397015594965228165721568291514635344756512010572937189397703034756813120582074725327574517042018764860973625534007438108889662996286983947595026893659109751447543994006633824804912459439120365866149165398455878260199230301011584032287616483414831805462954299278562080658659714428192202980942267078152458508411353460100356781027260983277827762924874537486256872538983732886188348731572336347131652893467464190279741728345749846169063488561134813524678544587421292936824986911363715423929643841017971957265975519728944901039946055967896022674111888374818476070816742696264107890372157214959544578802844746763422661928965227726859627027706102108148527628315964089276541334425137983441026874376344327182024838512695209001649643641790994396750381274859453783626728433171195965234195765903859216499093348325279715615175806299542603707952090023935479904407174480532352399947734935469722856496537168462420306615524064898487410844877351840931547849132538701081848846067488380221865362798112636308053906580781370815285961970090872822424609783074095677083667920551467535973881199900361361543167666078008927605782317983693770915331213727802726609590516505663680564634856101653245167309011951244291197780623761932395611616081324337913380617686440745271158179770153830406553349510226187970954456252456040054934160619123175181733806369108569394604526503495296791131538274486970845628365577462896460463687651138912847978909915854281841453268150136413668094152552914921649341749351155036550894819184292102463249913953847817856234432311250641124841307977591426909914441758278045501253925524646041648196370147125455100857767851830384169705163975826816132167129128346034080040946756785509487649642233475876512179258978681821913788150853576657244708236737912795353194366294557958195793312671606537427919184218719160357666349365192357466398335605026918920875178459670486831766179384473713669085978413604998889404636916733594241079490111590589906572624625441542799885272650314018582828794597660072160388443750106853370129044467194822146610698801252128077488337099760892013073305578356427028851254374261521143919537515091189471927302399296384855464221297090099003681018528774623659901885179122585564436025511113957567039355554434580754418381785647476523632121324436388569347997084752506862508506930688361066266233738797689154265424250870533892921879091302137844558952330289418199881822720851417512357290853662565367488035678225682275743112663266029810828464517230093303374119393781874353233679183661781747308089790560076509924751870908505393113557013750851729302372802742502123517727409297355279923528204777935149906905135752627927120094824851895510236236452621054499652754222078464781176668305140218100639714275085973077251695498717611367335230762769805992001374193182435956687135529784605486724213678899389067364473283164443021500624624871617819925708232591464571667222501715954236018123137885249775022355048197381663252405002788135211461581997354025989086964423466614481810973179538271569531791947843138362560331225532334063893902537154687142037897023728587363332706488044613259434717632853345644776406933544104128762933672808028930069013835341234233841904975556026723886669239302127963367013358779105177791519789349845837954374923772941202675344298510191571412977575765424149467269920461810750486837316730798320488946509094889599060050100053076923279970228913088931524782597676380457743277546457621719741932270833841678398330305980472478965260978390536028287876987392020750299639045895120202663635704993746620855678989503676529225114860853849668112147462907006685033679172892755385892131253261588285650689444230386092457083195103700355331535638654747554833674271690758175506509660164609186712191939840170662162811777824618334102033427004781434960545396997849830997572961673385316359373993682386686602834326167649548479859944910043216141277610540579733744490819579592501628117812010251631562571382621903883769466305231006538856221322976013586241424602894202946342982069050311525023646891103194215638545488752855123072917433189309037656200766858818468591888819939407738949364357294132648030931589708314256637895422766047488871460600769029984616196466463288400854422050488320371638302477175070797800056134168925200450706032734692652581861586163157064604830872897111304646488388928911848409668580303082546347854858213801412693565145871805992111469847513358784437726337258840584234318316560748368852219679781537512377477625234221687739828491083128759558494420361676844355402365550561958536713642217657420210940930447465601830776167943648917100635317737427233141193912891021661119827476813629880178649378472632966794787912247551169930884106290948913774492487848083085666838831752576182930684706772310214440770700431906404273449681076322674885382757464189215240738663566001995694320911133359865021567902041595238152797246649219436669432277157445084803277118032202424626579934793740382228308783617109405903692012044834651998331631737024608336267699712856244154057963738670294306448411667636976088979750662915818642527204634244169270946318143268706320621142646405671344398362815490456199652835516310503302526393186114965584785312828408425865970567508181820947885269859164464933736679141167966962809967977220787917293831559518464740028121596237845652265119216481928343978391529019581228487243623358267897474819709679178043023462338034887801080656457245360113698502363202962431042686300399908652726210672008098523873015405522400556278781117127881637933347642281166453945208017284154714097261446970976182922620294956017899143730636868312651101708525664513670609610662964655934201760687969086563708214358183329227755174992216061296185720142726070772936333021885115668411560016254530814505107434632399181150672660619308917985024193886683382676536047765897553369770501285951391317931903730433102069934380531409797380746265457730064437940744566970316575875913525875236821402630596741497557927184929558603575182917475671981150036150197319972641147245883492648650519116893038295542782056615692362301522473554220638383008874054659777268022186428744819664398947066668170345042292575873127074896160471957237529353957067574550284415685628286312651450493116040749561731780786756525632229499923664361786509974132448845565168117923147520602350934513857968682897966795523068341304023681003310136794184783010788619212747344851431763362694758147976810005847979915902805722386943207615336507278106033567560831554279278644963544427281632208893629230940268195607124885770393627662254545916233801522695875207072061481445899010880051409776425313645320856229831388598543778885730936063548793497463096583938205466163760527907438359825613018891596876479800712870478489064533989419305542995700996214017072539886076560881749265933872552491882281039491362612885604707249651573381481267364044119632134103536699949429860826478367972564341479244933698839533057270194920800453355400326883695809946212438436190505662786338441038592926596710409402460217379559895369997820227001530285562242786786758646645891474605760793687266621548869522920318975716742555192654716216941271382535077810262143889575429475972758807700208410866264793253589423764761119527437564354259741341312546472328793142647500767537969565110071461445416511628943464814419368726258672711679212366946551317911401855473860799835369867887957822648896677585255200128887218285801537224058306528117283995874952185931550642190760110976707384608119300433880966637903654164197545088510034553547668779754242820025318516866861528600280942436203051852997264721856808000124419498973542274049573157649951929883183232236437212382479379342513970452757531880709317895991704312456449403414643511333033922982967298771432458899417969111186396914578775184089250284291848311342300061363463347983277083667387425529678995176218436139239872846037656731178091080299973076805405856489809957257780921290693126690005477617490478716591873773448941983625955797129454771099183694937221508280694172155855284901253717470885644619667996569713942460150896996351893685808986201841678750502033324313217727058483107549937410696114565062396914361475840650791601428786714868661002331979413215484109986205138772675842065326452092989958436586523001323257547708385769581684938563752744715161822447903529327746508820229198460998085825212693003403400287541980302214902023607842520523743526579415521876287608868104746220111160202356850344933324977312857878585561820313267607866190894305353586356277292493720612909533910145030530611665101837970643531810797195259088800660265716415138239952973942932033561051308185107893468136406038146547319404121240352553029816581998637026720322188016622689004182028211951560947677884828113412129472923521614321878000720443820580041678706982882108529892090926389041866780023041991791895822532434621794556006766700978313872025751694387330980555451105684738831600034555316184912001632268846642483645667808090593224634025589826844639502753779973163581314236146896100774883207058260757500898367824986727548467674858485305531548698227458206730451434394918938613479215515837363794130328638735604579399435119334818576158812047434515093558143350873131856209321853703712952367085023133604210516043179404993839494168139365390240546418570089692235274521824612117548433165981092814578951053371995682286234133516648000225451091541174082269524799731029718417846335786250993763196899238995322600960380125833746333862511572780362621747947264495423677834863920516900386536002553835319169733479483459183615172844853095665006082556717461758871592607141698811425639947387426680052959713234642179830479264732674867223047750276295816280019479121598299896050945131737392371235127778387711068492997329197295497487816248033261157797774154526957384623184640445631213340629797243641769019056371172916067299206673879970576814149290089836444739231031288039596169901217501418011260064117023509674440426052879202322294038130956538206861292346955331020629011658720782029904989346334649483019593973329233484733973245560268053131400978946846535393003799833495398209514319097717176757942920057539277576901707702305641486080269609561385320049471861720151245979798095968439909343633850722778686597497074077463201144469676327218679809930638813878478808608434240123359151686606835763777714391494951038126682044207628121187444235873124398731975865438918667692984154713359034724584991154671839801453665687543986009008506517181483791687599460968695486595094474262016497049829953533113916697537070679642491007595065205253842628203984506253596183687959180946107639350645710055801980160760393245210913900278259192752355492492310645226627170751958097933042050344096364219714280739239614746371710847241681647890838492385678552800540949193380574977010801295799954550053741817087828105725391463257984288370832087999668711078194479921514189069458657481967166018425078273346445787064305835228741783983882179228586058627532483802495629867983293736856357210705612074203827838711647493022333146007429815275571444825104815872819414130437376778774619884745789518816542052513385351398992013783953768858834597856204561181567689871209872250266292193787721140434045241457115409070752645349779065356216139464848368672872934260910410434715879074099666316050221818996371243345906326068780115789672860347673030886666806071871496641504714142602581985955419825029120071817856304869066238062333593371621292086744747997928050098309262734896242046222558871559642715389600513203489655441812263605622554192587828484452943984288421628217571705258543958862406537402461624183765091426035284169811522156812434907786249782353165159235764109959418555122112468589125700826486711296348925946940698150940662664936349626430175676042619532339615297421535374587476896549505285290652839617146349920051226266215713462772862705282145092076985618905445606547923825365162517117365124948112229859974996538920585774432751251081824668943525325334474704954023667781970461929286031103838076448419399049137259796912920547148934395521861234096292259874467902522868516627354433478085053683759463327663703304974524359799237294513509606997374508974238960765277673349616456342373739958910921032369717371285520399183966594288390044806375293399959643240341029078924904285810958200309218009035951282221518606215135399754360940876269701092823674762077099156980345082010029567710055438347073553217445620680484794019399274136531633529660182007486152923162652991964770935777059417876724496105121833343777796954231275028721386468755815800847548114183996137962214813944949640772643278093802523636099242395849622500891287901707327864310499950768529361239414729255464336907371678877422271493559741665572342940397256356039185600338430294924829846747097829247354598042013184315726641923181057795329595082329351638480449007948366583937085283728634897739610785091384916405882124496350137008520077880258854810874293055484555342845080697123959670762576948606638688395445012406360368555131270418340213014510335112050299606215922196058969803104977667882626017399637079278945007493407574922964815969541401144725782709227572357183800627700200859439489462924506072014729169618604483592015267505267917425199451178647272545700972592535120329397213311950750240243669594251034383541960270986313270810226006643889994908313662940188758576792630077355212516823435908446198275950035679076195061870938076370185564633720235945058934562526669628826839935766102844151470422799866138905242915408197459253619366739994335331968530342894359615669801298526043642559198442468836856245449798535224609250661721205056827288208608124245096650407076527699557835391156813730028761376255677964160022949693887476927717741881659783804056247421531745992547191596743422814604371048779560010613318724821999071144784223381111735844409352026385177352213625103511114889708126165299761604575224110380014465600629875331534266544449872949337900148760356813918650835752134310054263746059663147221983772034208781327989062490461704738745487524443857433302332961602503374475002051123024335380334653924656438444920538448725164378014629824359042490837110518542560453581828144662202549271807559278349666667879125128694298615166634273500167064986296634596113393288691377662012919579247420240348243313564098503528608188345057379082794905995661100141649538649645884778444364722054232627045925077059512605389192101263495324634966109998684475213669931325618887268274382791282613362352570074516531597556478120724584939990573623458377563008527409761878649727806469838481625044018726837477961088069788113110195043908305528426618471507198063467226075222460310742695044344022527282634379091046303256581361722494075864525900819465865635350952820678036558234844746412682258095845850225626090472944879710839311641517681526175726185865097316328383695386401827688357475332606198251809236937172512049259795668889516011484378894314880769289444948789851686695258000948326920306515190386360004082789109500815661691243198520993024212784330056561384669351393938957316364177681271147818050527351878427173662639705863362884833403272425218844492940365329468588959963839082492446566949680192983304082636588965738147576637717638130222290701660919205373164588477606737401954534397451497390299607330980894516978352313100110405826363464605995954442757184159041003521411292450151362062827133654829401115279879603025695734070035033567423690911380887171830124130195213394360811914134329112340226942979793296682530721979622815888348217440779588016008746365558158320113892916847179022902571858966193161842217543352956514646850510097025919679013341837950824361345323675591376346676404960963833181452714865908258140441104425856200371606095174623373737133657561961106582168305445239817338510025255596830688431336268357467026537471845934390840829455203738770627801281135739168638869730480445226247465133683712457571161971740394635323733551642633354145606225303300011220064462332866541887414950535887488852387162220783340558625599485896211678210796313341019165822780054504250795112769238858230061634875775436595083627027704144526846209464505011666072440719931906792631826729597109645304609461020244158559818493181243259413602196819895984196875005090869081701991555317929140842589771655516915115448437122519343321323785199470330095788365389932685854611466929795805556946330901019040196208076037274948511142776423193492629174978814806123720979664485280054004599941460314455664420714184612248191716645966967742398136490725421243776308540144742258213722421564483793964443891212711234139627000900893102374659612758306548544376470331983641259049252939213517423634880978748908590638064110259143332297561159511288699388266574084775526687455629998270746613600763959786132534351651570658175938308674595548548326567078575157564817985962265542213087669717677740306936943669714062160367032289507380793495695132516431165931167908988902464783690922232243075700277462375190026398464420972553726715590603406220970253210497298250850499796174911926418398603377183486851919506949539197972302516519900687991647885132972424033304683506892653945972243391911454271007654641968820145927988360071006999193142823148022188363907835533969506996407260578187262694651400277748604797566015258026745357839302254106519260442107242852812566191582691089567568880490780793398908913376188430788472660273118466122736124015074625353988355283309481814700967087485983457546839838980187462938318930257730814069743085683534853757415803802183176784474947397386752128039624583808564072802441535611003558098648859901414479997531412581859253703333847274457528642709579882568925104988173515619771002778936778938300577444978655650802569847935619539573956517608997373417121155621228573929344372500918827632198309032847225239102597581890242841893958381420776840731456048072034367527404242488964971429553505166797701396215532318544635667763751519772662323040652391039801226545994248301256154712707659857162808683763043401111768616542897604165684458959762811365577629276603210429735678255875287038182422948613672378021748758875353823492271023309073707018355179081653601193937777384627494603920931368403074417682139306978570279601641294307729977745075156203049944156199556844236509995266841849527726594199427304693597048036170913050490434326587776333828571206960801988220833812211355267267301827230646112408183619787887127888430650272794724636029927859324716557497870647319327900955018555335192317098007276432298880485725266869309020473569959828455763089503888584332558530051647879144135474100222458948967178600318036042238760770133644397503543044999770078298407867661927580802976287204958820082594890684172481093314228595732651335675740952522724172401961546275255512335998134260607820535169492825868017165445968189051078990993102365687852484282490877182047072303545197805631397338118081957190249982203907035509455076524227089679095740688419028290909227731320202538618371608796016742467470546096163307514251353964836829145064919603279732098794387385366976171647001995053894983082890098615294952532160668453537274318411320048585647260263781811210129607625386962448519840472054018781575084294036160798805298389901340179814505116841268666018248074746529451853364001984863315441943553956541466489934543445538974927863666842074410310586544401809234887619478225301061840228988922024102319943451769184880240156878721037447714141581772595871218946362128197544806284978735459970680069084446666797218673510058153877658279190401499392884671186397467098309892405895591241056883058814801957825064505972493365780867192601809041052019023321080965148105475420424547872690298546363566117467632924549315612722973355386601055857098031311995770581392810464397360038715404999166489864733206603514781495434969045731526488613675283555554035871187348854459605553125704324823584802868141010207301971167006116969775605922632469383742094587047871264272339958971405880848013169471726090450040291492105672791739727932451940555778682021820992517451746442986031847827982045276287084475429861522380947912011627930372625472071322763814280467828785542014840673064659662062798833350111451670168407434694581843680978055670137683304737629202619763571102281648006991408889663475927008117365040699952846741928464722279991702530159768248889281311728893144814303186374636505279496461545980423149092600728281733158781115608220648987288763862420006499315013440763520356342573719738690434252083263665755126974066683675291011893926793162672845289949599643012701929036608576401378006566651871660637741636545134325518624698623892094927571345951925408625565045579503849216938883669538906100763327343667532660867828490163178294117399359169285612621439480569978479706288186394619012274417741030816277421859100704039577764769779247239648591698935542308890218484527200452240182482935602247752562134209770286904191275329130190347031114001413250580460523620833497416939986402246910839742054789628475115606067883394860286508107790380077004875265794130312386511876870452917863120433115146014943821482094512773216332444458721189085411899299438030636548571306419357371493413159867304445368790847708846445326346705127876345411784845218588632146111336313986604435060665226851391772487446887330494329724605209944217815997026524208477645106884949770918102073084273252931844880726800155523845873083789533294557058470839452336247113083065412036082056014597840985299252776101480181378404351961828214069542926933346282005960561382051465100034921891805672840625799282975990228930575730309366482738660709649655445497283573631749672634499131286489246570043647194234496388062903869523288311693256952343367242048919878066433746829297795100682065363019896823766325639932662310120160639643875405932870470055485679949753160317844842711670924668458295971224010634503171777229237110850505927323950420661212793526159430769126088873783101846292791051790188471461523976267448366873849565503016798443686458721563398345451510231113477978315247683928382763424147519847181445445967750634140384038459670314708112556530121542438430798648561018159521437451032709122705843321348504233803250869535316187323539102958062187214534379367707856937778141429806091924786931586140124916494868916524713946359653738562724817152198397621616669864653385250465755078329968157111930666831780141137497396291963639444800805997074953523209567332416804535220493231023555129919385848284850704239283211480655488907216872324547007709127038901037650717173191963380977765778236023112293771013235946657907657992932843901045116325591139347614010395270037939379942204442642231867908535834153032191122893457746085359410071794608130758010972840779077306146717061210474418062636271339034492272822138751203775028425117175173964388213496155756417626766937613166324147563868947740795719377789946153968061000900699328813983693974553029360370148629727379897499571117245113523563559041202837095002494033282332390924778823268955446318137447749717133920305648392952208771760244058525013138490740940001299874165229163756615502209562404522012350659180521194818869155592958911068924259386998067197513884713164501851754296009041390953139904870896607726551019228159982842469630277443695508645332074259998204981661826865974452702970962612937663362331480926537176215850897366961136710036703073760902819667571830987099113755536168724805822397953821796526552620614864707507967158917270186490926909055198192512049419338567610104706985511803776449758256761276690893207070518058055361226819884067064177188533957518901757023612839178374648913773444054445429407742187318163987124870469293229662875386001175342179088007427159362161094692631562696638066481441277932376142855398903397393350784044986021273179516209992203905329327602888154997142744763134451352218563851991509425713467596006231709332802224906806397938530260793399626812688579913642680331416370815163014612740142170329630801080972704979770257458409788341368954244238838335333274396650553360575119591283825558990810343113387406399125652918566411042380236405502703069300562275622527654453286135337755763693961965004153997828743077292469072665608054812547981904362257390234585534669527515069737468442058185480076712759544723333197957391828534261538087938496278288498510738436879698746448711939621850158210922886668687341081091149882919752243364570849375911844681966377291730197406812599163671704988589525255543937937817706346000119634416426145852531797441269957923284158952631943556174681532845752984369689864861783751623411719894529819957106292050641966884144815155513213280276629909187539084813821631080738704135572162405058898944565317342990841226863644023428664081207408295706876003737666402043030286329383237420354104334319316562936929749383679185433233897144289583266281531921335203982224557302925939056038021900004838543869324677948142243559183850810170348452414922974770338471974801439072484917563295941196565523431923787767118809995229537626458263095894013608403030955506574004185060248258336509328572631333394994742641212084962679730262005491035842942761469562537503208132980243874065382502981380027275203681836207006924174406903284710286566648606242728013303405803369442539750013641679864505046535594924447788800479144271367033531063338604921730933266978066426744961191195139479720496025211305340120284837108689062830311104747452931580283216101585213745304413071357601133941126298799945412654372817467649741194038914677449986037456160653730343211658198098571315213314772211420326166400496528053817982706122944705101334516861448879415116320542883916983648416438882820920257253908481556205041221105296521971797787740733121932538987892848346668635164005944851007831389631411025253357667316353579876065642803251555635681135922013604839946827382731189273557319916509691121189697583810162921479557013787740546838458446279419132450882705066485274545283721627088805388205273800785183475979404974881921936488915431022970078752123756095143246931486677385103633310574870677132866202659597865622651987618925457843980123154108897765830675591466122570535564094150991760019895728761671878444692574333281636739677937973814590940520410965917028305851033533539915004070410197023571332478539920342852449524795899882096595886408549674986923713545647968141552968303722702544280541057106179019740911872613549953412194117201754086705465151517473699800050636924257484592449060699552497428387644953072460788523273314663425833885206484922085873871519838884219356096067174752076316276312254265060969276964389344679106326146507515513545959069880821059483388185266871141717863344274060463301094639400263749033607115189372670793347307201165169820139729743025127955630878047318383884225894701495996269892293906402589939068843915966193088444993495570646825664772711837670775618089282230612475429643993105176244400789429334735515987954958880694962610693936098571483822891973873798084157712589360992894722379856348107991352208471497171198231393213094948137113919994251988162019824707116410801049625896493486690579220136095339605295920326456003995271321295535697536718114985997916095648213058815984518345073577740929767098473928444028403754101037452575041166886816937044631639030253230597997563859278941754135223046360283301099263324988560927431036587946431494296907348308348981516441533148909140567362630399003282223703336460988819443375103876762519732954501309818748644261456626470364403885268474577401710751736574052562537505126033861622091729985130880469941951851517798719241009206415850150405641665610425570886754671297695050014193727046938863894788832671796354526894708298463263126303289872387053042135035088553687860807143050880866219919315599592433409666602441400244933325849330341183913684259693852838576682017631614139617323462549434998139243155256006648030565291674259518518467435033699515470581827551895876936782835663861382239699918766418622291523466399813555293979304150523314586686898625151771188390894450356252587201615155418047031562535619844441066219868601121593291069904130602120578218181883541194938318863562626586314556111405274565517409616798370860539364686868920893058059351538790271168013036742821713834439359253040965711205758520597883168701631325694135085341401240998285530329733213412288073227074105359485555620632261186540440770007481904740273796736065372659635481051581670528094354563970673453226354457383358442694286192474743477701327650691864218502439358972492061457454430378764328722896652483775613026101939386441674783460552993379275303636859738084226376759164448453831086021851324291771552207343434087654449296816816598460998412070075205001454771311953534417580572390270997461074844746019337095706367019430135937873085343148023752293023586386648639371399334225636434759364574691056054821911641788079318652202780170751124615990736667572975335822097366751632365159781940274827592278495935570836268152122520195664783879713129069391465744553684759059157823340826897998041703178339612125107294714519627405001885040047616824097956057261399958308213290978872578027788004102743469046837783989932063942838750547578160398646440966246807083306674820729071318837069667447353814032610258928796524921506800645806117815436534113621563429930625304173490426188636406695085555683396258287940040822521110022013964433876752616013210701466875839943236492540163634205465729913779319684524060022249658625370624660857732518495834942456556916823261725729364844278804824264962766462306195267517455271427822822107466542569109001283392517428000987547673191359460115951760935231535816864077382886266189887312316122372676708298815938125583894141373897737087559106166773200191399033209034400613950966483988343421029526713806282345966568675242476568197032169634857150476454846265186202557391006570781727879852743493062787059516853044048455563777832711160290582946830257880313939285734103652454635663347828554024442826689938779598915449578220269401233026152980336710152878579943240605651767739144589496583539163868924628831990898335688956025216749141592400532875045900970672421945578605599491661928960908095183264036747934024232730703165792203205933611585441217275445432366795383725407103791315810043050143612933118751832127915124294004774144031038360392149201273186034900563274861596904644418503486876824555565861152982883729797274515512390079982667231579273266555702046821981060901209904180634720864517578530146946938865784548865118690825512316860951768767059406539174055135506066798753306927993816822682999252826265525116645208356893536969188341233215589760479880815525672561729431260121938075328708447536328699245002050850886544478854749824541248731852235245395234657067178882437901138008200322687347792898005911391885291728970754210130646184688102617960684993951161348012223287647576887859809769749483462007839076062744269317200078739749409649419972025898428698342607977609908252356946998969281229762001725262516706808757840665098325144361379737901604146819654411296394131790837190974667716618582549611142721188494032902302831024209838595558918587067962111738759933166566569955161597165363649606443668306300358492718444808581798311925833044587729835392716212795830514093628643078695658917367739261607088626160265041664064659956502481874511391117729690526754673888890829563642244810912816570208168806329519460954073612637389371854513124695777085652632330132735774254344829377333135988750982133140077036627568760489914679769770814119056639964975365084175266155740246056271270999192237051996048810820425881860412373639686608498630970689169590777371324807519857222262696200094238444027727363736813775805303020874924274360913592124198902229534115441736642981395367372115495316219011973409384770376816268786965043780402388958935137536190833378908946094791968234170947166624746570725622290501539963340604083207105938923821687939046292305579575088417844708112417040525121592502624453658451557376343698593822483286633553177932769596659903807542907410458073490677587019350212562567927115514160162473025649677182689074221662474068910881006375795966912014162566965587660523081753781996507193965189612728881287138301488874638188004505347517408931510068091539674835047286620181860347403821791412035953873765378642608721201592092717070546405746006453099354774889816564581253025486258410092446105580115365895807412846051593936997554442066252784736387707827543022509720157850468733227511470502835404335049318070434100685282892509380233582089235127477645992302218263469874391098940623217503890949602123787847945172215705316522345170170196009486198996548041357858101653767805798878119669780164810905589619245168982037968718165459756282020475869402502954699885273925540477654495460236541185422089022082734664554737578259525378954095238386489037949877061076582200901460025742090634792652350238605468113499993297923233631686794039949695432356496247373543348430551782604429718244788673071843087910482774305600070885168133368026392745791867577303869116604839807043722741558402558315862799599398657855000426726077394046020971663250078262417264180247721550088133301194349949188677931902350355754254413347268326497913321519080752930369876723553174443740645019975507085520219548912427196188654082474239556716971974610233939816859473295090603912045936011835470305562203108905915716303626561859138794953859342261206028779227913550003181127082430221212279630944462180312819339957508802812259650948881380560319505961943996705390464423031922716705653983193386660616993707573920587631437585324507940844996749057258374160717594716953397467488115332144194070862308752115690589053036056175732781446672342343543406333831134134304127456011657190951497786685661613142128283703677678408810572774816807068565385720619001088335678967861635558098803555075812367540960178066851243059139589419612919234351623734497374759154734001902269554094506997922730530278081069193896540285221325778690962391606847244312146241793494541938920045325392004788814639592620761609492987367963503114585855384688862229464070329000497220994773812253757222709777970485256216379427666501321334383465451484791643942931876900130833655533577484695493956049728615237058335525324162502055809221719812089357378607630419111137929149377822341621983167035223606225147860107973416538332615798850001892977277496793796070259451433933577143675522640336477936118050821880681758175510494314823080461420387721744590014240726726425703195251256595461580050025814220318133389372777654641337324504793658924690421507683744526484202087266249463560954522141260593457329966119326378596667610085912731207545427436240969815312977278769958346487658082560902067096516352478269491878200744569553101102550903428721666208582118848374903783814783667266766022548124776987175474753349347012410546578842706770615833690170455779192267909759385851362809489339512016673411301398889624259213066915173383092761003275578854365896431999107426494950581294587334450240014119453367935164125706414726756923195047524013579161947803068403244975580780689956401961785260309842392725647885578164563150513151360800972070706722333528376706225301217614896117272830002242513491996137890119115101589105562660822175299396210725807527853759413051807048523750219432171401983412532950823802307006888974933810086178284028919582147859203736713597638335983184313264539694467458635616327783938301253349239731211501996409496138183876154169554816184025023999213871834328741650348622711103369741682367559184030316445855832777040624272105691346254165748169859553756972364187417678422713311778066544441140416848570991149075085020391113453049898336543920641217914427675144033788854581270066676735421801696178022636499404108891772778399394468258967002908214425978876564632267853228552835420626791182972690946306659374539448793478472594538422511340162576250316776517158183627932981914486565651334295050817911958027434062293318714465068750135205144680505491609191411868502628275360889055050209513069360842942987128626722446412647386223148432445607354885601828797230266906926350881203101986934948887380509251780760120965614621695649161914176544843294524689058443625755409872519725877415562610807780668091968902197578276497699212297663314696127058575018765992183130800685973023894067880514918559302428765993471435465575498710519306026727437724717780367526613170436057073146589740482380029829378364362975278111379946661658899695743674306240431196710020768067139261845694044086305065297543263481206408936320245777999790168778444191292907282843600172328738613100193591420587291034893373894288759033249392688975290423528559622830082134570540469539140399973405542103588243382842348316691978515421166970310417903005716952240997304829300758705184301310279548423770555983245833426282284967647205318206754904496914906645991769437006750860175937865748084385394050507260417212221749426065513461558209147107289397758397904065607372985301878792812867325763699515033870562913216540582598025701305047643328668404141687484871995474014706535198805180845385517385700374017713662585262882964751703609491228063237381038610100026830605898719257611159453916505010087491828196679391588588971386260529149096470468990752152263996650699236245888217284884079567348852723145602035108926687899176621886071079389873047387767870583545148196654933189357384222095949226128716446601581899303577286619779164297999109263848350796762042554892131963986518577145222927683317340913070302988010178010484495137492014680726454203322428020340708373011493957575760313125986284741619984878851240514923109136224925536279496404266998225034764091240354192505487757885940882313087601106925498173907697555188270336268821792290122069406145732444177759650867770584459295977726607736725242575410054261327682686801813553079263060793972005923424420594843601044364893494368417599244775558885695608415701557387385420959249423035902397331938678794366547405394796433581583012432275289225234016844357150736939440125031255710488044282876823588009865529958216145077171092457855042819998325120694964341250740481474752999031156246528815718726974297314268229331929024757891679953045279619254420124080409734751070962070010318157330081367772231807172855333312461586449749397014228277492326219175969061747265277305022801296240678694041468830966829602057255805665155955145747715802807811507379982821158236004348831313286994276445942299233212956990544760867486267599582969048586886585627464881211404183453062504644728545701053173374784442773486741386968731259793373453089264615383670991431891842957025191191366397023815822659014409385559898426135862758177589921153464483032201782999392998383735179291047122957511824066949357643065051307229885527557114130274584655952451260877062711986787370632768804739976409036810204489430042924849116349461660115266690889373951993154847180137154125435983553282438591628033127982072293778078335608324017268575984505522945383402989201104981932118192227578839140586603525910626236645985124101777939293369986595700593460599879634631292181852231073537771551583463331558535139764893058087603090770751847243904421286408074216052030555474140239430567449130511135179727231693000887383492812929468926195102112040773411882741932219956115610842797869350527140256764706000839526522547791966223680842877273482121908836580612230645800270449613759649574870670140075680169936955815412554982940045108537970468116823912877684310266482810554022139514978324605068277375151945695614480353419632637246328160624500686742278280153438563960202692112886239835351319774890670381611095427575180157327921805059443247476957987313347114706968828122919326767173388351658378262104489768115677696082494023436414352723854803799588174947915382682432556333727321055609550274238224585597304901048182253317419270678802037863340290703811445632912396545271535895029315948131802487647927458797965999720286674629398904982754278471077458166515862478923422730958770544283881473850748868358089618905877755789532122217461746511219993756462021939911852270194973174851836864240206379310897696093040713365863545791136391120737964986748331394648138938330640486685546985177118091482021854009581022517348575811000440696507576451585383202156061560665707655921649109694850996611294695296809121035086728364058104254334971148026574488460038160707162149479092020020253116802769061549107494435245625014791122953909327229709419718919807824393846217171610686129615354370190543460747982351210431533206193235758058540089378886468378585766800201393423721813782632964692125196214026837154985653032536482696237853536215536750872558044737117821446384686259351794098484380847119905857107357273108144991060005249240975130198514170104005728600878020653051678500633974119181789095458490668855006620378265481251122154956032750678985491631767315863407889238504584013607214249668185013719860208716445726346469378495814172404976461008939131537600318172857341810341525792072390503751999723580207750882558184046495583339035897199659435805508102294839789636161994316475608575305357319674794387462985440473392117156946310756752050609478488236667797221981884304641322330905506648880723554240153268899850108478108847934296889618831687245981426740242533751858767204383086540434832356714458849986470748592561761876648358675947336740768559931653510013035479698667183583427977347591428638317294952243569386868393883351546677224446210226832927209732455670256541777905278571551542447887528167406225762134819409601851135654916940287069824030508088177662773236376998457613774695999568253468509821685920670498171388874506873344789617670527687567424088838772971509767631582664797811193036835220840272166836198037120412470733911985075701364805927374955139284106272803414085064278067611360832177751620177849392198099588737466374194836589533073485766868574632376278589801304760988970321215177551754724502376746572065836992187501583319956874741444384072308309562372821565468395913698513525018804687930039878749949198528226411499949540817465419358234535637018761860165009877145128597695472679317455664915834972833297652807675611636332462658897373165090411665502237099954258824939846206916787815384529148461157687466289672076215397207633497103384885970579579882568357557909971028330762481198482802123404608057287760185761123136872455844558764264710625906717575980354238552389363089638802858654863973569791206234804022419005553108648574620337145548208913791510674362532050546921350718668780009695570460785903870906071290905130847744029451548463783300836755695769144806390286941693089213074641590617750434819124302761088374722958478902293464794200821585664532025026982461692844234506926323470979456376503876692935702804722979042704190113079665179874118870096241893973539793899780164397013246938503519417926994867270636155945422357623120029827340497552114165144580012735812076708924796326796752986129733774600328461639466409329998483512571585796157461166119237430064593625975787462583799854450601672621729011569832432961827391823185399226588209135811286227735366601294470397332315195376514839392549955161945562779677353593077750529047431696938691484877316621943735469880386076261261604633373457494839989933458547967942443472843917855034792579361071538696298459978331365429520840231975692250049554722146188449244715656200396068508771268859891072388936777000305952636313908906939268681904008592152039370925805502260610688589233259823760545783937138845672256131481651802808383021175001001038222433685156071657501320231323785879511445554414845947641937983966634679273060426223112201121350748472826395604371947327452413774313626178897436193880260167564601654346929153227816389828870890254456394705687867518779402164862141874382872897053105401000238909640601113655049163853589500249249535730461951409464247869717518057605103211874793692910930620526623629714147360626831787586778860590786265162787416934257603098239104635405535443969462509099012285523321864760610497236695884198018082898169980460021548068804220768057969852481817470851197333884042082109387843028675205270776128556181761177952779674197001542596256268548083289223333762685172194057441133072583254836893288995464340095304287921639330629779519771245207468742938019456836200723818786380575828326539907344533665022927579873702153540591576915936773283863033422102223454241270910601866339553151099059571920929435860623310892418109910930441348860979331060207506249434265609651495460770311192440704489525554306236053756686585722399406357870961804684805474813163954182155591405925238604995257140358911023961842892495213145806822308514669017755731461079069094246784194856726661325121604558772242008185041756269635179781600987727462621466167665790575740570711656658494322711733678021515914957798712809445925324082654524705465208532148525767500624095596354502412790126121744141431937474061184697275182802390775266941264561152819924075672625004211228344928803680774057777661460989357528622536664641891183930231876979797067684834955072292233011151755725001970048279920306484904003325082380183973224390466769738698403929864819144195064062642700973788197307335912429098930705334726395612408398410824622016205989848866454791868867158593543400848959813488448623754199681105641903182114786620891348930929410308045804867733330898595347969190468570642811845652521468893842802546758215472807900269875061933470127935081444051993951945923989767212619051363570080847939658196482426248666409136964775765251555573804118371808072739489995875682532418483415393806919885066071912784984664979834424982802496538476270123317816624568329443395629401015038020071533172097595959816959368343260933594846337248795062184983996873923958173100625835366104569815662890831676721497096291022680979411372184689135017930418697389559581199954293683259485962820470465212989546453799042709182900451207770667788165406724725537139891234686571415258155596126940194554039629172470531090319790388819546676410150017398401094063995018473349514906779503265874090363157559176904100003414022980928004055312009238475049011269581678079962433621916962397884364637459941952781139038702245068292845292754539872575582535196553512683044992761019867821979851100734048169724601297110564890093949040524352360296710002397392430623392513993129329486005468839245018021327306622836391405200882316517795731412644583685027559242590343190620906220497350544155237293015874159378918323934947610525375006965436276399009496199600274924784542763955169468676277403913022474679977068706549867779766478472949661300784389656464993044139713327278587015261966176615579688234553713853478885634561079877248120259394700163028282451522960935469226450916134039890548827213931085875265098899955381868421303871921578087219317673141642006113420552728584232809152832994584878151755270054074283324198815707436949183318497963542155484081546323503384259414876025612698689000805117125977123502676330339726252832663715600855052686602245852064579779127368460122317339429095211911660039820274908018576518312718789450112197736305714095249662960913520890045935022986354044282046974665352064756365051154684586177461336803398149203600396429951850886096795591144233507626815523925448556385255971446449784307303852392051757025479324926933625845719581000973309346417900428892885696714945201979519929441277295999029433639715298399451256788942183480045556050450463614651186844224651511294270194566735214548606971265974387269655381903154579460554795140103391531047329302904157687106220544382440836771719158223344586411835539066862916482507310794439546489949520013799247068633630709760852968527208672459310466974013971341711489458187626411340391291113158325414222007850108053469112132156391118632363509684374106339258154657589585788145649870620838049112651699824247913066624614093393413009468876598197483978220988933297565464133462617453249664968331591596982644878339126354601369271380566420666665032100965649936258342559505984903366253778208808496525325875298026240436109351190892540699535028878727373739174473079728020276608287766068345463598887376216862128933046663783921704277809165153311973451916477919185053531417943319416763447729201964596757390083970894939573521434131019365472538238161654459629215793770303133783993555848813925567187838949797706857815636623121406556313637137137467828563788658015689936115730448886341055117711871855079763662214982594961762729022120965469032308457270438935672733794032213355338217579456942297041424502014417163345828571434381890945943501370186257909455068867266548848030271809752255384347105108459065968951732315114251832721313877012260160859889110716186049267162235002841498071832638257112617518963976651723937763703597862340870682791271932027409040020679043251669053726902654378550794920399092630223546769208472412669144603220163112112811095667208308189648604700640388058993299596411647917289938388728906529487906848235997717637470433289023840073061775811319801835764379076641985783527987762266034470913163423021204570203903456052966011981797293931946148339020231088632827909459749115369732240654305163804368493036389597140638377653744487001347291500168207325907366306937274134781541832942482256285654515620314334895112572825780019868273781496029457651382731627771435619912784117487575836266488714722882576593368002846375158640515936010248166645661838196922909486174975220174170927525166652204018279918850501016757355417445803705622292327248813855634556585133395471731374932896739671444314195905867827369293833042997618252918666510875245243488913145058094923321774903484500872215264677706766260456842286110844588802255203049494650659456743407695199062576117378215538798749348670518700362333970026638237880151687152611721279337409573655879091633021272519073656978121713777386247705994493755868558916428816475585248875386873143743961225630104597463344755716738582142224564419731336496844810699001008869266424255805333243511829369003576622452189825968473353112045932948115605134955682978647761480785467255486327107732948734223271962209612207670573278842119526403635425118011058884089962012557037217418815801225391225278820847228064388584490409578009790412967242887007302400649918244371696188110858323627766736324984310494072781809347065545808983338319557544951675666352257957477382032525810925753929038796334286153774520020073520504463128991388822559847344291151328922539651266824405066493493905005720875478221546792431230742655913541280306557690567160110574887517189935189368800004316840598373023624614333154029187976543721098738298320145283698207737199368748293747788880580949474066911679246757635824734414678132650629398614910400631800354043255436732737199631367168532908325821217640854671020173098916889458327080102476149722808189536258074169348556886612625193855757408157642907556622833579298868916706913152617686165078125869542680502447183285122656782970023564776662058812247931591608064965277977854822420049408777764453035498860155615047203933521829659856541028396446470482846865810202022428895459846441847022061782083418523238179311971132584004425379955787024031412243584094914417313935068186337336074379565005009127379067626857519446610659756103213741006446089777287140585149017809690248677861368918284207855726059041949774023805757133837656516476212889732889523978706668601054038461470759119348317215268126914565093716428805898285974715220200272177952744645328004501264939880010555061423721801685302037015933288822826450565051225846593971694458362592496542362749891060742002421585405568165090684854446899171618291952944012815581270975916009882001948851727360047177591772200208488286273647993214258376252436417506909068898657269913091201789871585498750900413608166371048702172553728134837018279973037663332056928909409858745036786397870519572605668130068714806547139616767901815130456554146945189682525108039939891637894920923840725917241603737059300595973713058288447593520601193402890220357029017787339308591437710645983153900887520478890654029792684935404284477122219192274627233582898949793702375001792265706911984420218633453394319114029412510619733022089279667418049232626387036126837350220503457015585646196937364499386368627185249376703880325605225259888709724296047679823441672594600374878749529784029145297988815040645004221475427315608452748962415090140462679971655060088872388992724442912246112496532773125615175569285801727929577924476691947917308405389850939325620548675903007769680494609756089442029190100638030981592803297786255265422019785529166764636721069226233478805234196169390888234033392603315180201806872971777110772306549997134333596954330352183373074186497858614351497168781215813215462987030221619213937933855547184898325395863766889212303072071801161391537936303750419271464700311137390444875772617075812492886285362610969264602798074216459587441981092688057819011102673016401640466447293524162747969710776976316994372650470057025845153585688423085100838645263341192378625855279469973232744610372985602994002507736928723385517347962064648243842998494987103537170624112838006014913101282564705456839508652439165321857323744070831722464578645207959356290847514735302133607257626930639790222740869205778593946189880369122012939828523034256641140107606882511929428063783587813878038095509199866146600730470504059502142426890691149181011426064939701441126244747700024350292535063117745030859568321609587456363143224132695968052049533675722094463158293935976586072783060055196652247918811232064364997728466781662198685456087840993291196902734165128637625202247531724441539794616500727627269484330832030816104305241669681780625117164956520711224881958076862637684344534338772266443925954007625143201168193826938869017585812289187456872950077290975713605671714381060597213386516244256784568905283970028572379119596178570255089404262252541597724995088822026396957760736124976993266228719906322166909889176090444485670919271670828444011094520845081403737166663805360354145382295280021463582681501657294710753494560786435579565792123361719564152123926913569484912826491706746245442941970637348011974157743102176174616683151428292346142262387818390283052529752341311105524462108587240656751978411839468296507116867834365292983897776594707479018573598158046838613729779277685625794351131197606424689120711628747698669356455177018111061780795689559141281189799303829617356929010634573141367329879502880411154942090412037946785729927642601361878646384904908227992107170315460415501688136088083541999001060869628027439176274465098080920119587235647930767433360420218421477574924708521498627977785614495554074360222728775251088737325275014967655939569046815818100722924532042712502506293806852114969527382671683832316413306291516459036299923742253803943296840566630558349072069042994634905080986967734966898323718629292021577360998386834065939730030157006660577204860226139519643211965484240281451177233507024187604485449537280689787493893528332200029415937485516197130119652114882581960854770652864474107857861965347911586321695330351251894762784440655706167608326608704803876176812736451980084353340030012489170366072295587213873787262657733907116731980049511551849488149789565923345400158204090221353958198962965356592378016841066298728693020836237855632895258203761786553383615187665925009450201781052769836011142831350426699834528389826016279781500970565357155902265283807479688530353814898713509475268993818364619136651132596358498816972516962962046737560807827567925445733736168576421638098977171347397890484312218490949410795082339919194493357161202037406009999974510726690605058345241575339757557971171539546948124689336683250952997457074893685358299297603505226799550647500742268421496391516052192373144423138227697452846089160223542885407509805622446064958335482095365169381617494499039460463370523070677956287438712304137175925382164960436048016028390467628895046721904448635651934194288334923304808322777619485194052032201694673867328011565125084331130602867893494212818337389083571322414104314201389532972267026251127320334277914878451787709161811504123697178856118432928682085340285438953212650134754905707697248806627692845408528792677943065664904022077551714607854092490800223518711736040626678887061684385484275547717357350820286556682160680370759398659898124068596593705285427852473923816443822034125341478468232722771775885787898091221525543404474920507564560453729365731933343572645652576529595145169344113996073691963326931116094544554882589568837586291181553290715689069468483731586443409399179771237971953416226946667341897462370648738264275135644989935741723210992259993595667926203280071389395698878092123446170946205212091032772779616783612188242658650391758226123950243904781113103372426425578379717935671498253389731293130738795186176615971247421053086198438250428900814794089943432231395679443176143818243486338783832965816874332635558358916341773019717760894916339068915402175600914225892108346428472470971271797919068461560324867028146822575597699192005324023468372723201273485308236167923737502218978359508659165858306668201617059639105398009150600327566495239229889073508158443173978786841428399516168656082229676288325642526254257215991522770409690357427127224779059586308278675146104793747398312421451422306073414482207198281724525137892649107063116309639496061576736641009253639647649716507313061960193734061270435501988886964903599572925663631105110425527793208061019483787685241430879675449682291375564832972858159111716331807480606375713727996305859087460804130477693753343576262669768367185303258846183309932231699355193575433919485151317831647337035655937399663470075624820463321755452411078470506708111911406025760140931804034307079447853251013347418968149416314591983230747024978453806385543883300955631898480921108997100835554099347331548932500506540973457774454505335614496087457734361026129378205940838655574431474012135746458486021287903421278706916866796806710466142957810868390222409620565128582374890279153297371467733143972754323601482067371410419225604467525566511742448526935705278024986508355241874133620938145378526819855155268067096731610570630488895003504091986150383734386038687237227031903659527209170915770506920645909084727443959103154716575686128162713743890706099471451447589562185729473679097961676179660209852092280782088364935999301874502685815374539788153004393166575254879409649371540282166280740728405005411063767067698558405363331413257206921937927453130027059054449848076839335278279137014886058272045689105688259424254511951825606021927163459064438997476522629963651310783247920174596989898886084204493154450116027388735288512238222418599834703587719050338887319816969205214197365076645098010622258661253929465725154242283714319304428015494147720156259481536006873752251462750992090898481094905317036134737709823352245547023464686364649591612295783729975980906827068748614754274412550168122286721060486806181629999408745035361383952414002692094969566127082755856651326457954951568660898598078160595746312614485016746458308500153760418072852390843346269327109320047250730932118155431389152701714952947563657871752349161841003287049376490674116521982060748680092758764683743373004332445092086539334151725553589045786414841972797385329012372118957691183624949380444747550739509727683623616385674933757483555214729602559537676149673013267354580490520263218486851044776651529185748457542533042195889020626748982397790837169118802995369707918218669293175951906642679385091423228538281010219288548473031149814368205522477306617846389060274460903758118844323215388093098742093060207535442715295412271394634852295515871534043791366090235309056358181793973874364590167165552684409993331588636608014972716552176858821372621396598524430403276031132054687691855122312390525491064871822078874776663554407883879665578920742389266947485543586560672279847983616782890425206646786848140989080396913157104877327002857160433495135902190968083641148712796045390450325926704694479721535720191727936231382713016630556240948663437842105364484431675361997843687361432248906926351701367930968364546413430962034307117165912939879753210860051929094555998106683709360053581771571760113951393859419520097372791088049941726984134538637818442592262996651580878969511505225720548121607385249115410145839348948694662972742470500481063162643687174001700144951029024313506122203758162047649799191644217010526727170625893572522992853702825185865752330019558191459794465998638031685426993227567737178576936250778797515908062205272459395839051682149546142982256776019879482648118472000413174436430774087814740224067364600665766627656088281489961785531420755620790902729936291304340392322631696512961548521726740289915343729091402205833692965208989186467845318560445665139450009573175415480747358521294865600829781159070154161921310217744979037365987863415739591400732741801752448327312747185870225940013204757251017246916128750821656810549357080155807891127730400435038000477733670791599796511206234350729045930722450209869070352622033789483113676384989855264200939507455675450016977309408213483571551595421071548767575751926842545379658770682611279481009286203703444594672828140132398382674337688610847394736844317815880689624093515358406089544461969210874048694279781637384389878938878274942124337189731098333069870253047247838198683990477552069356179129563797932667121412789311328538058619829595930140261228298590111419754153486515713915134207097132565127363138436153234199440665049264787389992406493674722171540003796612859380028247946844700442064557445288305806622831529753272803029439775153229875738128032220681324277492538526655696626021176290708701423670326277149929049409725260800942150698377341598496254167572318623179289042695286401462618986512586983198666295239770547188172727385238468387135641961367155767131432755714257466129559695152212811450111302965843121777178593765905140868026868187029069249715140608036465959125472077326662497601845091516850936126420003288250857919770798398808197047667589508917556638642640219153690986761973921430244406663416312009333470215733143418828295375467140423962244986116755288599923033634598759087086532608808184774709735792583654216932269976912445480685971461850234673409560832557771136061749988380542884209705589164240312526404364414935489527355058143361537458121802682861415219729477381083615745825124203844590063549441166006741235678423292179246812356088210960347191213099157528653763016511230304445943826296300785700533386806848118488600930676291041409435761941694363686710012645709257967813126482204398281516546460854364326723386000871180807222146147595640723516262697768430768666191559591638663667427215042482972469773034958957640947453817000356731783290566414372095030587821804682078164221237166953528547816087130702487619206089632568234614291115205116667805653451881489105550176567445010923482551470337561566008931254923816657732249235738548287353866518056016416272816044769957696247484113825559254728040194128373709535888803332874450007931135735133062123483043242245120576324509635517174803632736289543590979032130218465084943646469592834871411820348813033857912538449705761537487174052844716073651226898199040056103070522832677197249402558794304266944878438414505642089019835527159461818239168482723379487455914073272200856235067193370803057948069001976469918982620953921574306558814277189644357923085888357911855990438047818456917813478318594862969930678130920649724280026147008628983760950519742694665253391265790184595920230638686585488711820117115042895630788127128831289151149486079232419722825995533762728033406339316396522157064355804064185651436030530959076053626424991875411982708809603421000163545821517546865006237256577481238425725064939266832971237163528280417617005215221133127798359690201587343631664751036516566564032769235311408614601158345535114828383101644684656987373223339359666016814601931393568379126563688463509616250517191556340858551555245663628783175297041010558362347934271846202821400317920619350886598364143783482390317787970507129738346221826104206078379975602120248856873086958497814647564369165221068119946667451867667908911109131787341432961030932666763000785829251557672987508803466249939485862226734760579433011215927906400325661285708022975985375687234051865573941196605193490296498574830368802551670210221638982933604506392370863312616998156627233515035683816018301518903540651964916585336995157793719894369442368108827417628208322944294508191426849186763400355819718010643407263176698670445449095541845924575782532746622156165923031263084340892271731293697004841393412680018611065471614772175840481116212648681390712804675775429847535473792708968102161142910222652856393974212215290274129609614821623662465178681611320107941738694438167521551684883545410416612699463734838845416917579941617482380599304461730510651042895160338834417380215993609826638865103562379928377716743371401380216904388743070343262074543484931451804172788882536129837176277387676681981198247334401522568424336163772232036023816073438680486413185961912495666621065275004663107502532885474181062444153790125811997449243296932924661603294307235352041108939832327566917518299515054573768627889712386637984267723425984749962891204013183116999432896783482951180040251351406955766199378464713302502945021270220038681689288939693008343630079723212190620876780522079457071262268195753445791575067946738773941220447822375401472367932306405748147651383019480962781321134309911828287022628069513768661837514657609561587428722087953068545864966468526208706590055838930506762994327605404483669219443432745745169246443593151267928624450695896728351105039845002996969568883817781756941747323160600970107159082915218376842102146747684847908657390243943586117128152019898668185565116255275664313861283095849226406490994022392054089190995165722610617648520776249266180613525535399352226315287528454839337257176762220974740856861459995699678491886847306440410380551198692797015427991735900520604953098588547221623817329422962321219936014731904289278845144953435785567776101456576855059057914586475250282136692038568143320348950193545590520745376172256679299668034891049827211766728804096907173568997478852307180977591902852231514980883029987564609782931680160465509975881632178717584856263745350591848353895915897530509537975830416175537135044927540527252102953509033924117056177269910871216935112150731877597034658658525608568253904933700549494040331604832211831097923806899827730736007381524840789980587087791943661668244247202763065997139435405476792939552243278843773500451980763718479506341260553671690267440563370070479089399662067014215057895177283913202971092472381838315607554480977705782073785293959373496148281281770342162168848680695519357235276376562308872993495319644865638289155464531190638487076517534972190529019176079919847781720991998247685602794512528454032086719947354562485561016051853979187119823584538890820107152828300823239950830872584441125284055675855186024541882399532969576164757722824982296186713273355660947118442612760385466187304706972862527776768866954614239967952272605028782179853197871430992795625414144155165442547687632250757958468496065606061834316392919678712798760379029539853071113160128433994386123732841076380178639410913074197162415863499086779670183273909745102408124214363125308254632731578639393017892832207551685436906774619429180399491854371040154166978984117866354521480398695734293657521414524180133954646998790038521624331267977700057926227858295618104943748914343569151920170712495425818833431190947007487354798946227833758705173360516533720730690994275106210958002490968790277440274674776341486353663387212175023887373170010899485757690752462667959317623366609552688304743432248574253551789962470884681569070911599108666658070721481231037201087158051242561148250204174704011629593277786233258708753819524247207881983619651182449664972050420156194259725459329016544824001387489929758122101553964925299891370054780565990725723829591602435983749938470747938088423965455240061891007448795992742465299415990896105299075806345164410578243173026974009767438118304373641806904514443620070670351179485493776624694468082817485371125865474371947530018941540556954114233479132700647025006698268618678443807695339251899194256490444643990518226094879632340847085700333898348963208417564925725038523618454022999567197880164659623458523323137940174582648850704652922349516452292718364100499285580044344423548862207683397370028412381398631946696965640897792643783187528256810913740137719340230681463544684417747784685090699636087410557298008125898874480822814266723133296290420057859956807794036527070315613637428611529650281945402953256093319662756214732712639656785507042968399387016434716679849282713553668156404340569591054208534035777745147109858323747847210393875654973600907112824112887833928189871857273848726129252992683188225906499013874596604920133914605409178331119308048056595465993152674765852748438781470960933883209354833898597212678056595896452649702204328435246130524624705547242914406593137115287669132251294054249919640130204920687076479962095630167761397367135339605291763180462300099411415623466975996156159005293778872746645540886242258373241431668502798891379831679159600797994776906639448098974182791354680368103431413580819021989959544135322162782791839346785822343068257608109955963397215699220131425027702213898985374891540529961158722188612510676078933472468703450283963498649015175888097768718450407034259395168138396762847849078937684876236310556623335457498009533887822274657252512479190887648724490143388250996640835052782604053050125517431650547770400187975487130715062210283632456402560047252980577760454150714699523436090481669342560497109380562102974047869485924233548173616182640600657559453684638677216439046325305486355556264735947549161981630149233034594051088230160726945267380416986188109703304568530952098836350604321642240454255607595984611052304781594768137004352596118069378223453765889005032643525677915438316328603878254408462065691668660516670862252477843828244454344352953250758487271155014689177095464936279883009974485449296456107599872234691866175708529328197311530985523813312107614752812117126688197478686917981990381181466404237089846624860107349802641926275091380234571528680946165235304273648132678388489052484437660897531896646019693611364852886540602886981077816634471754456471802818058753963446896848779492258300461058478173239108639066539878217699179073522314642279298060376423050941448556364454339241296365767120971816199308383493638429558301800932867723098984781966363808745886053798221706800404359714135510935402514757038838658076996033312961376211139761752430752993616758328092825754809792883233827331920034854051400055500477561905190512906285315927189351416781304562449057016903241911212955210579089763126229202732899294543983127121563878480164924701904913258318625566381740557125645978284670247366142539883453811579287880087351806561814935814398150189586268953686336386034261392673986855876900261321315173107597496131428567890329524641663013665740687712328318965490524414493225669900658156998182673207626586123659787526844099512812669604333263656664851139655308606516230423441941654865996371963543915802525044552461097134303242778996993335500391422690784632613680330114463619973338525351237788303514209015597993071112771820160711688327636235536310184541941303172904764830255650103259604816897984122110157346035669887357577670141290508902181706079182346513270919297237731391986904742573695910091911221041887168257942098417229471797509611648792091813174032407971158151414146848582490798336167515735139570260986124816015215534287450772717879412100776838753888966793052416188161824065075152125940168494082825977977839605970166469912409947822626392747495043167287848571510807361708421114134025727708668728961005912016020760952972188058180792015573237118524117789700632078931750373945117086749420183778631457189383689604731903042703156461346942449662739939835226888997565237087020700871647571247213928337172662186582033951328339635217919697149331084835684308374542550133128953764345290096358902980913366016590965021564240087773258160444163312357066420856313211647027125697562713304702937945469068918232939102861103705387516896634588988846431828526437298137760574848308436760735993842213249564043075706456600579686738577351913369462828160492297843829789889484034442943412789552683768586840808043726922330211337984219353867715812985146563167168511607386707396323757149072316918791513433478997345536443786647777533071060597207710854016543178699939389808342410012773129379382173773044582811106145428583931259272865881565520891479976939887236293455715102398112566841099198125170051691777139210007344625083244996942735182861992032711011802657231892424569616863833369430201696479006041469749557921006143562047378851554102391406157870153956711377129900902712217340970541174561739378016288880215879146348340435864078073341057815792370606273182687350996665837391461553728551957034001932300221152087534076167583671490529654694199499182126833144601110689225936946439802503721006532535877473531413075257728344796772198291294009405652243309331918858109431710668506708529528200908939287394690211057229726320297986105236296196461222010359504162536656239877814777887283803726188386263514465896081835881191613779577642987172212169477986356313792143512638965467027664145702864169688266887557644854920098499788995145620274660150355246720663753374239814001137946515700222365877837954429235201029349160627468963301343068608938903743324780843040272656507146794537907225513214874926434432356958674002010724222757037892732167527235913776636171367280669342145766367649361399876428140614505079456423634649947438604275224301322575590726631715014055833740159126303563663848244289438196061037626555664916768740395458818632833346123721821068310557668183822806970980665117982262419682274991259789266827141596943937132695235371509825468075854656211336512314120404347655477001006844179740067996177883959903890550347984396211855141143653750292323610482758521930838226620780050546203143996404518644702803661910852762648097410495656732563804095021009704334539117483773690079417631211955320293662105859568774574882896756439880499624613431457132768099856677646044160146989832337715512411889645155261981159846804941648327379133773503244135189055722205916501638609449172679872379106854958569009776064371202100248557062535539983812785470452842158666340760846545533809063688308652205391691214621987913214515973840895837921467120672730954254360579645251301377511935150029014049690719928934658678534730847509170383378470196474489176272311060164280012249691539266875912960867631636392068100235262585571514831920741560003635803338924293056215914393858302021586978018686791772153015595914319195326351149253732714350964411229240229063252601871546064989706242229778450412153356707482786314960077608664180740744016837661180851340123364513405923571551033492718919779496326365531770533680409859654454112054860404735591467568811399990760096126385757144224142285277912217386930331271538852085784506957979401524153272035985261558266432568501431993484856487011024378994833459484665526978157400891319441363229426662399233153902208768811054025967138152549130039042760810722112066719359249119773705507702373838285203042837859554514085532283028097834460293836380930426848756091539116025011869864675318399973091459685684682727493519956141078789982314388748624754701343107783803628712891840951695491614478992637390467490684714187173712465074024049213561241278756921242110856793511127081894406319326454614600067724731513156785315319761176646424859156356695904295224500509185747367880549420850865743755780108001038079035685000641933957494570396478166878409824408919404052607702682110497813657109695880686171537859808905037787837469887392147988672769280533434241791989206875000659088599708493993360321509310685005585133770508856684937889018879441482243759549530807960406980031384302233144945121590585026675502160202824196040194234114996164345109801225238133973074794095883786346984150135726149086843450681180887599817711216683320133833771845433407598816793915104068317210549298586746108096318572382919291297183874262188402292594194507955525997805831018837579013532006988662539702424533562272948578825106132892854552151238109695098336117421114892903359024920222361847288397394566512081178037814209968323642630929968922402566023243173849616362529306055138796676629089162884312528837544422362714882264880189513656581658237294131548968244539739767765287997681377621857670041737008535559852678485508443605956794903287117723920665964089895823318555888873322533811824881039163245088127532220161400920997363678321803024317341205099671710908170178353564904597494132745145701444127027366527665377621225545304131143636855013830595309227993012854418104986896475435374583322096835516952057726927031363353178298556759785182085071433275299012221447987901318723068627298697923440114658212982869732932551188769496838588578693992979259618453834709202356791313149996856783339014022215274805819969193257763365732427100081898291689035910026646129409930692654582545327074091921881419109061133024668852186453626065337131197319905678377088142840081143278391802711694392639166380769966181913734790639764865018815398906827344512821244660113602874058333252895918660304936721065344015683010059922602347495752476802678946489460053690705274226693503512580704153701419828825752647815821212608234538183050727729470177447739672733576634848405865871400498939221458682948840772875269059849301234624718416795733903875931020847631673915234903263416432147065386033519853345889261962762758060578397396484271070279892684677068339438927860467742414908334890602658427075742831480184687185881298420599599150110790519377067565175293686191138007383714377881397220033367582840827038904653337415676986745667172637596777085493997059772895607940642804066511585770853128761422206281724547320961577010387154975582938087501717715625759545162449854525354583458251975003422500565610432431525316595399052748697368794946173822672482517632707595495012994450621976145339249595030447680277961358247204307988873105919999206950016311452545881740429574609273836283405188157601287071604792528328230885008979090476515679121185982103997704704203863659013781202886717174260353919389962269624672724619002004548144227775594892407132128257047846033454804473508615149213716248073785753765605933604971402667051181863609208060162565599190220416385816961939852492482662248105465036105773386887603224488272167002129325027332456667840155949568674601539558305028448094007584280676510354411988807308776190756958099605051113910026260941755389533189026825916550260198255439845591940415722275475225875086250645469763662351340026429567676274266295527303601043722404886378584677593787488811744208683440034373308434180959410753391791169385714406563648108688788451694159923617220732191012681326800195302076995645449214126155195404185249942130011686579492933355129476532766028042727556497082228631557262901548810779240739352307150182387950205847962912658700333607590884459779602233120399767114738051186933008386218356452298591686711031597256980949131101450082318499492344109320001846836425172144464174778373721893962924834069770595476611010441396306900136189665451947811527462976704107045378675680483546825002222969534161754169562060977896093803710784283299163619966689307264633543896309539180171579196013259564945340757751510088102222262158823398982007594471165480451069338777207301714135837475424321854861619878918834811880071540454378396112852850975620111863881457273769756002621807865053916245669121341192901196944595731555014123717468663290896138615667092743383258220253394718301189810538914091736526426983547278679939256355781267653008116952697076491513434434971147692956872359214846609820827078845547555025443687581732025755677019561375029075593465732877852922026695145114270683854552253012666461328341860504499462784840526934200565892667465993845608769312306093504140450765347979078148174256871432015607056926757035106071639439299855300631576532104921554202432296344299380085816074743944793890072488513447807796191394573545490620226959775926084756176913791107632083056869055101961655966395392384529556365682165743475997542193585437618960182529371425753117961334868348332310084742901069364005797831866463585674800244387646208667591031630329547661167838074177781407589751769498054469749610415509030523945111994757983658919023706533349471085722457776352229471121013481059110824713738286582127918798173406473571734107437177074788273792664911340045530983964411597688795405817707616131142497075645211799118611052289261152496933166207247980319416167119736896958684438015645319869173504832158491321140198979896811488897467631253967159218088193116532630117754205069251771026889307194149040408706521357963140661976193603513609785676999200358965994769625830389914014199951152109841884905346712416440489606740696250397215907570977713942922625466762695035405032641866210197035707436612191739583533634875763340947893798490817234416141023780748909178779387044132285286024319755710864317350680943496090864983226266777498754610574751311927042667196815414905803969589436138637628820083632854221835293125529145541072775374087299821374053143735445941512781566915598293463946916757162923458357915051308988122053788359443198841550602059373548956221976294557428987412758832403535064554927492711127014282154737922830969226156884057452192347132151608372368230947965200135437039880555020232430932069939621721233520364776017299046660080108413020919876673486643797374232236320815915617590097496411587870006490217938204424595896629672732687212734962023674224373136682149351504603330579637597093352281464339872324612268715294690903820285917938828213753556652706951461869346866906944023813921950216263485037723541385774323826284451265975442117448058610173699807006712920700228943385932431327766871662609402660021537226288074841991732689890886360670708711634447186529089731102309088689869419388183416429879194788937488746157987978368533591734166527668372061539521094036128921690301133631060689032381200508000879177091129856813068467681392979839530686707498783732677178561040707949714237353510768051846169325156883345547487551458856996851078554146148121798200623277335466172594289511583989249917651319992579637665816417036632180605347974037255259880219259977301815839712166260804870425255528767415321874355557517273114507731715676072985921223245756343591342114442480569291860846025405738634199050559075393002271926236660443558757297377459772192248501508865304317442732498624230680859490333785585427061950093047168309034208788139686938029910258175942979987089382606360854774197864234842069270434024911084760830715816059583962102242022142298216527273614230000592779451160784650805762245644024931424691559490660946791398242053416441341107207630525602860942747952009887859165571457883523586442857503002869577486718286955301696319605766345512813094552218728517896802778814690314739237754088692494406921155245998197899928685229858751876540562845268750282004633509238701611253586222558861473022169623024283184549222986435679530372604249686572016651963803526685211881171134002216350926731210914529552458886691314830214212047819802276567004583296835291133306517483900310332336773564169537830797362380817244559688123948471490672932531095184319246589431080354415095422222136084754790195948431365763328733048011970615243742757625277314258970106858415889448340655465519915474039795322067795232828538655318053695565461768254657099342622370816917326530805928083005119836879155352607445268403071648342840575605683569947459307823638224648946538503250510110229684942175937206150166016961307008927352542908105954501129588991966282977972917840043648532901169373660230344072308693617908293686249361467052667900063283627047455914064192291842595398837042452104411670830746681046248591411316183358515120260945257678683265994470703120080598719618473870146235075225240938872891953687537658412511579398219911381670549701782521411193392993137967390710902924024916055013938739265249355377510454304192043887975006807555886524639656563094062861578267769499163080563564775490768466728991933528377819697023491401290285758261010490808841039851718588015273813728536056486464200376942345613686423590600193075837020834360099000526129275189613314313526121865341082834722769899384432698628394612290679070998528771811213072205748924315587133697773641573841769996832291422661999715084573228078329741035602217901368798920265957502017137913594466614881959829209555501284680692900445722192362216522362308319632507609392939996621218886676882794567818174100515711029597906540209320270794585883758481525934092535037435944067963770589485614107832030565801973480495676164981697532940580567944942331784312610844648853795976350361839670367912350878811783696817699490216004802989109000165606081431140603608058926669122622920568881155539200129530310341204928458148372199891612496114944674952791251357088219604865460864510150849630559704926511316089849977628714247106862857776304991753298847731371605409440640606808320503965716937068176189074824467114796017704234310624121363726581578877832171304005792669025951854649590537907493531996963866052290766998793062760364346770082943395244442198779704477403998386999003604463417486956953112917080129805487266864840780673539196232053900268888687629642193007362073164867342353181850082756944560187969620945323244211794976434343709439629887852327381810300110968549426574363978814668812303572181835447007849296419534790881165024651085010038651676527786271330996354815952401207221222613533067871908792630466903006829771830720789818387860146662153931009404159135164790303872096251771871319972462187612342534406055007851071512271991206932755917337380462242468426377324624087237290203909350732571943375579526964373903748452143632598707164167438404847823858978313705376925744977959141339290684769410257129713553937908720036538895198337710275811410427468192850243998026557934735161553714428231424848485722978087578178347011184543801628165183503315585891272994032044179825084956802539643344707137900838273238871735021978617467591237194483043893148233239309993582511455489212168002482632949382858145398403835218747702045567685609163417495033242306120067810950850698302079469916842707568333855763133150041144836687214670595383091714554225463458370973358582726724539257709988557696102018720947430201368686869562412287696776484132447036861006052046441547636896906116090278839322745133444500731309062370922211227804496952283952132455348312832627383658529267307211844286666138229353039850720099093008345874173261163418066059649470191416954332397241543228670119691655313984722067374141169948010014386936456603865316178190362068861492535934683170989227154683864114989846896877800412495008116518224201235496814401199496854087776412146920868839110486175093899850145910216745143669221139088575107695788215116987239560785830172984762786643021183150996479122472130437456253628165871683897505558173795810217680088041193607276938221742532064310991993007842195070591156992121835559156616253114600981722923744657414130367030377738787565957556099228919479304486541087758120292823974935007245243305186488591363061503459759084862631010777783038767468822725506476078231058527644193503810294762479724556040881080314930964391796195672413448775436307906919272741661399313990403047740649691889116831051514903598228259491835457857211552963488677864505577264790611430561028850834142555044615368238039952859027436474515534006717099050930797314774131452133014769751878647769822384750487621029682416788430275461495847482499901578957650404464469309032350124140194622493263176758109184014213300811950575250418179232029848540967759945547863398675409591794848008614197187729378254548100750207889552029753970737261118019655816924813917458862866281045674969195163804042989463682860803720537349736037274159640095763637721040615463291057587309218071715360567375002966556139056464720429518316786628734749480047118061208286151382543850735798537485730272558278183445785431119736754237010167299183749287447347334569853152752653231429632311887899968278221338329205205304709120409229928614746558930958181001115253776371168256186832437452299451097408001521868984210106791325902529832244844842767332086300018886355551338228946048566972534512015441732762659102966176963187122928739155460476753156462154184230079437453776796116411163364522673707797498178711418064193755931488004439115617450817897131860623251405469549987396391487935686859200432906387763273092861456660531124479196740661823700864542147065414578121393925356985389543086991135382379134690456554531704746077119017233962315501103443870489879798766192153866227572143891370525823487842179298669538939273476047687863665650310739701982736494145840330430279075596600180473060437865787799252919473193356802264090968707980584937471914236018839226452270390336304170533057724827446331792085222008636171172512843068582071063495323856382245267504113855667996526819539782136834802264759505045158919578745783415741917074894254344079095808248383874170972705306313884773415147335454585709935331313774857804064022855119104380467326788056430910010716606472447013947621807368344033984276960540868298371601189352341271089937992713634525326673529408163959230481661797728714503511994446332299668375097197548721657818029801793543525359200835054816384461813015653476445366276698579553875011711043815587268809417076839405711921557029563421414863063067103661175632204017222572284577770346406892028659290985068608434642375867013912406373216715540230601042232373023568044020193011809751146093457914403645542598785784152934313548154839610908901190490294905452958894952619995420104057717912910514984691951331394379732180232204272671511866776106056435221967841191265235267305233778925826527726722395595153442174943237585513485473648039939423760102838892716261857271700368588198257758782997088831045639840445595381472143698292698102691505299462473235007990673984522942311671329716622604146868642821866655566882589884013645423574927965744523569019391413948291400444599004285075090397418757672031542502141729932940130910794650788234698626400475408957742673388221318400603697055625131690938916377602462242936976232252432382287206793429546322862188195759174198612343261935152863434192651152640935336391919609321003804565529018129680267889056153092957608737760406810683196987051001190901068673746381755217416550064817059629330085338028561920419280918559548008831428294315985095355575542711199426115522949058735533814158119690244665676310833822222868973148996099218055845533337796416435922388303898653997090226985644208500828277189616268954689557150041972649577935357489058743952729023726811944324879294400325798705484221249344879310729479699936281246514071346737842086830899703085363541659125682540900829737693996349410021653537886794292963777859604454575140041500534585434180409942238605963912355617481991674307876066035498703017796816155527847316066136715279635884557971589216243490535637194969793967432917081143631393384875305037001055383564446982318337900953592663830281345389352774549239157370149379725944377796403980558966973295432697217562053594774481097644141473151694146371967620798042199100862539841308044268188294744740175529691595501626254473736621839668926536645094469631585019324366136100411645966605864412904564326966174645827498804702367538849346116464105888756152460074143841259377244671074013847455996025098831372226761048709459593512617763278933472570574431923008693436716433528935295981872393794706565611312646123942707430393291096028792830221637219726038499687381563557082470237508608585167178699947920803871672890635858891214438326911516918653098678266371500171103899098024636264210481800085445708755126272060922467487922492445611810025157110607995938640761917305145627599692059360727091939498254688096746055841721824762127455661664604439011714127472395574124581568923074938541004529341571869372190606210505909813629245409180149681210915427295037501670940746543673291628090630236096027524375320654618683868193021815211183908166391049024449455055866554899302815208614032479719598057416278963236470145816341790189764579400765093766932434883935821869687633050950541646632360436469101171275848497369652572753894451894644498509803562500798239180049092908272198478725691442610160962028082006897809820735563915255146636091971464996850775509036350708773786655230855983368665167383181470758806549101653257947839978538591580430599169931525498103465496648138538712024657571755366059677129019071802821634046054564438132259486961509326694496687197579132675182814290122314367219573877113938612905651185538522510342867261530809479040498493956078572559058053643739593762827216860962350472299478185737158591143429531193367017934802764137267950644908420174262401660764759405423948089484725200915905443103365442019246202358582755623146026569568329025201526668376928991105036408151905716058882939501442978490784191952725380006434357408210187984661787387206479989452623327168747074975833628727716686560753795944726612853213884548075587493382199073320667463523998759374020739005752327064951813015740289109043582278242820064210785614607620171953134279784058251747299537934786934465257332002486629144236522499066993768674260762514506579235598418196784533295226831246491588917035931245473948564546978762617748947061140242111209563287631707432695181847360851437464278243032456878534941302485013185195148381699876662326462789003853085763605343608323860578720679744940225273388449967063928509808157325279687244850036585518015751041978544967877031340896875050960395694965191371090923714910913433091842197145340000086294736355154548010770423262971365136089874046591798268030739377725242960783418643921126621756346225409982178459964992782626134177585533171654584837553320746614167106864646786062996212485850289548457121613201344535393760811873916729867814465910005475254870710536844367256306913559250968270342542833825217100002008190425507993574368203244228442381176646037247460232823049281159949936039045941665963059832086376949402970338932652170448525782221984794092853679443015895706438775818481154638235715753214485107852573036839946479865196278763058508745382764260497670488782799266818584561855272558117392764409261597185324719931456996849003201831276899235945344945831368699355891951343466856678356292938491869625390894075808979827474093056388046973216167063335365774332086888657367200995950505532121903107882513719175440793503254979210866609811414536630133150708832507418289889427123894355333752711290544186943942343539963665764904037828433792820577930552094175820556397636258021454403459620272609502469928195619138412337782234084385992395959146322372283474317460564029288455516317336033110755996039419129918391522120757823369761406659858730874826645175214443254736113713626152676422043691619069172159698336483887049457031901674356022677349070346942682119072959123153019452201682044845060387882295083551576980829493032161807807090798674301043402020688759039914010225742008201823042276284903384510286354952876623461029288813658444649361965812890739416396075494169785007530921480946313112968478032175808874507493713414125789808876038856089452750443250305492883593279757645147497436347681804627816115990722895188072628781179315778863436919037852970923004843054487486490786345681186497935259438822086791669296434503485418949191916825319701193446051574362998826058107408663472914715336605727289095797360536447801127127493370942430989021104068504680618620533330663194649018231076040477753186848793733511290595663579318397808081506639305376050056986586915691864668625738839995970915131376695189834906869313398010640323764192608292782350878792753458406153601140114811477538565051639702717401029991069077184013772164757836054558195429113860964318666833351713013955213649561925450693180521124670098196235575740321316520913044302121034838383150828026900190252918078333573280722813769421217267105823018487056640537176991907103986352251642333907276147647077794602243860038246964229957240321958689178747670890599943465982467089597252865277150494640994886756212085769028884693163916741189953078520858121178743690110000073992623632956889283457874929939808813204322895086520949768230327688185556075987171290600819853877570506125207453506893229606909587469748768106303038885412941866954110722424097537111006895698179503208642919153146469628003897470158060852882021422644990338159628521449725195543640198755811645815770013594410361252482058012226728352654151663348797885246935484977427003877331206998773515922078790942130079912027036931757280383427189402890872217758160687272323162453082847319901776723017760387290292628651692836984557624534040672305120575421912146468073994263224872379582997608731534774382796731364297739210101996269963230293905458298784879161838706836002379075454239462981386230582060769393309645405213899571318042213296342958341213253524523349108067183517737210058527089392428774664780157046628268829170552760583914186979730998381389340414147724269152035166233493919970372642855025733672776916274218162315187099814287076786430117066933394173946420688080372152552813312604022595663196218862099456631442556890105464381489192168741973734913853493450920055503214141670321759737842745925479471682398875130818165772616224399526638427500245271069651314145862382599832470872585367703860050550360365291092696111465462996090036730802018271607325510485791796608438904458091765929703388032057770670090802962551864308085711513243780048674161244234740690913507041735952108223528363942578158960015700481902536947071887117765738119644661715951577968086650687715175163723938599269528016113721716373482396713421038026321829176358187639925156883612283026163087805773806117776034675626387030616150448904575321577164662100044625551522490345704594688528411384873065836824348137498421504857885436443852299633162468325562844856228031568509577733996641825155156004427388134026270661303188161070909310129649798391614272777151465329427315612990829218068486127859154122777111681353592677164459627618071514606198495422397487028410304113954289450302255970264601936298615306954914936502509216544446311864211080800844829906867191482176717317973179045885059392127916442846497257682064889676065678746774246474588502259270883349677019378090849084780585496885410212038861258403569233162681846641015770279782266372166857377305222282660452233756579508237894883624305703374664186297257170585783318952001872505624042404228338939992526651150422242545747080621648379851624333230028506404226323375170048494024057263721904228603949243889190093394778371335141245402207301718140851917555808471512731227606139887620449768163201163905653256156852780085997983324774863417923115398768758126873834487738900284803186488150634173847206022878297000642497286305959438353911916993746509832933432759139827511090237899387149406932059193819148217275580972711649406101438581409044455268929223665498574893896595291727239834672880222069803067527824734903492977729637591047902079525873122341039889753956852050603878887938065091087737085633956454361173734137268335098563517248211054000300950652215866145830378675579387522506139054690406364651351054839958498846015073757074052189343472821814328851824232463942288593376031653740442067934103590503245196788459180010181917602259755742873745589229937291585371106931373233740041262736640303481939573503441759150636836759845378057749627263086297688314245162487610989968208268206149474719822500841128409286809267159874588761487669950827485233826685489261471376510251372364923362853860469297728054668044208371159528590057557628085587346553675181276218293712351026111096890947106248501991077705091913137407522534078398333644084896779698697235260827828506018808807430848507055066022163852093223618139915130111494912150029211258128521056266741324436302963696704242627863787048600592068115562108973547245423483349529957104381529432912127980619458271161222271962671737247107038057439733206207985431108223864370252082721508483348006091011971768236393293387115033169034871027158508322517255770409084635160151646199319919643932777028159458019448650545308937553773842650144792239071504012521530141653481095986775949030321153113055910123147529578935538559028076270816845891439909607166569934053764021953726459221857416129519978577796684720910983589846345663114789440651887475778430029797661810133623296941617962946623622196479576108673996487104394782316481158373411609542920018483539165232455706008038888210358506279976067888058222486442122304648672638629256878334106079735072181948307689247797668254759858117876420325976634497162401092331861012087694283619707078024005261358053893776767329448404353372990363717727350232176658994447500288336590845049210596057803831030688900032731606776677702395896850338683800691646164463465925564047913898746693783467055525962072144807922368842939934277879188623416472144746598367751059728194815200652112660128996166976563307713673810211479241053993139844546960628166508993259051965713165804106783996374421077989591773162669761171806183808501912972885701328357221700423019268369309378534446361541189446110263057773461218366103682653479336850294468982488158276916910778676898243880014546743836705432720690099292002834899006961169903843631055374942655021204516221840551941387976449531151606870445219299743486426446957936367269247788680132237369575555329793604806619814905571103975120888276680589913097052400352565072951855542961271889610588038861640192619805038780817171441748384514434082514278749115309599128290173312888857897286650478896974385094142042556236784190792158457718996787922548177931549446241083803573700189120599417039933248382791050773996066150782072715797241419111100396060778201581764036161229689046628374324191877806374476226287265374142646373090064794417004494893083103909652645635477916812672954063631018322812148643709964631229713821209297669456754171235190098871989211655438952146045455963188899552773626541711014571941031005771378051691848225587501719153283471965833340673864426306282537853788771414959268150733587294559144416694937848859048725621966029688757930866470657865680920422870841395024427666340482066102982669195056879245895739538163149041823116932948408899188829018805314853967845975585829068546433653531585869208222764632074601958855833197081265109667429196765825491438401778575622868463488949324499972592726702271558247903998076746902164459170662965185638464112850029801200106927219057017052369313649792411636757842416827068923917060341152429233045705599816142649758119257499906698418004985521719304792612709973971772245637343413555831376999655761825816052059034801078309546830819724002640370522491485176839422758221941380739549154941738906722807688148394135221499497306206685187153399618248112209251712038785430625977170692433153929531415972990892141940745811733353309148473110029095640894299401305460795864764018760525815528065942273730430807184593232535930047442249428920637483989718141901709847886935273686571393333570126122364872797288539081599091489203022788272727046786583481608890098716920937334221839504759387990259303596186251554790434835795509726882381701500592459061472620327567625674974415822212197419081050011134743729060592656984790947896483646167447071042865977582570001821472956668939912038169892581552365719560693886011999483455967624721909362104737371999889788201052680228249425239085774280856366603778248519005463767169649082296933885862517775416198843541526063891039206283469005055725582163830147286366191101913999936346963533808840714968827073157813725726188213139474372789969136601315588888290559009357410862617617005028053633659332392789124585660184779155625275397234079782004318326414176437537460506293848564180254377644166853116429072200074007593135147601853446299024480374955565494033399113691498543132235021604464936293390768240115519605787779485942195342140709985845308111449350123861651658038096037419205079989522946004299299857276177177832130175187359872374015425006011230282455683553551939732457812913928576628492592952773631275001725394685396513166853588787836043764321186285309354161693977813045394503009258476973264465273729713833451969758190054067341767441150335566942535647276773309392411618490767744269786936207467998405419647670802632689902570934895359970291972564834509253760378527673109915939826717079283633959974257615473115200328554355983409103155144119132971291736429692537844406998214622909909464702127603624443709746462632755239664000374601991118007377286095203635226293170804953076137065630286956683605446288145705022018452330150416992321063598804504427471858859421945536162021459481319288308473545296519825121554901739679175707799873389919155635966682320782868987204117327082192946590928687801724953459725685928853050920321225507408910326865214697048238395871368113533432370825685378987494968314643603969860228969072161407820290131198273731257054497521500415215051199535662756394245881356601238509843316117273167437434750068295048256558413975703619146045826908194359741645219670827949114051429950513118633096585871701167666964385774257358525652697878353638467781680931199707759272687504010736002180370014287123123505037378267385092332977700312026065862664440468094927530676089524363363411892205023356071882668516278075802244232915668894581589747894054805715592967675583228317156644017912137298709253360613618528102616210664731584752849341976849446988160292346525989393666420481218824950896918890739270398633917303807731498892884836303827800728988942973631981929893534293152105570937765850170474509163330946587224372001249043970333875514209941700704541021055542638219162446364976912305178450547300435840597428887216692538530962260818532084723455949557903528623189503091248387911687045417053239649273456131410461991830059298995134507526019695258864405593873817312192210423992406444303788321636965828037003683660085461690515449399757026153903862135752410872636838200745956107198728650384663380676245242208587060768964911390321124787562645229587459774905372370840417506204068374766780568046428088616689063033697767910516421343939494156663794608535284496855687275946008093369974148550373365571410877085438002992558093757911880376854272637761023849496602888202382749911863921359143111940606280830597146440234975797657813880662686651988682294832135482675936985929823390244573408201236004618836843254668340307838607429375752177887501159750658868929442490608583041485191520485401954483062288368522381946766918674756439711473888717907569524320968052797370832340524156988209025563984087405390758164746129566604537424382106812941292517909144513998527133548655087044365334844891106319434964591508863642651311487109816054022558680003605674006711418957963186222040716695071376073606684180961391403737988008326724367098594591885510805311756132755985812858020448039870778840346570636207827209087248152997143615240292367240635122977015927225285969763273334973834664247801258632132960954108572553632795392682637240335921634437563989467570869637413244382267324005664476351802567185351677158742767671897329998874672446834851331233727165671930006765895252995531032252543068367444423361649263682818381689834530545166635465415291878232317774743729039999732638906526926806807245205483384080065037509679561141934700665877976153775341303621882403599225900737068676833095579703833903436577900353753777968791393422542262186662105760656032873155274462816276137901396786667328024532848854531985252072044381171362944218965411341115045680524318214377531230290559299460154480659135307549041097242445430960783402140256373605256138539642507600092722349807995977096014585469933764111062684074198087487723528099044343601194024512029258343441463091212379688182340673938140943393903622273726145711685049053821326462196192777918435199797453753753745811507391606489087865361905506720231041989318719275767628017170185410362625222806432354734178184847717723681350213862615594790931122881784712419108627229716841298581483454090460001755980977122473391863012876110274627983192017968335516650332485647789925157473330823614045065334755488595001128276377397273398285546199339240638649506458987276917950615580948539160256662075402040211640729721771289360040267561121914436919249404159363126488204358510414072940753366511696210752900233176762695463462795089713022728577169697283829067975685234945081734513952477198701874717181335635659935500816184586064413790534005033637139881151366751756060419396266067744510016535758204589874740714844410640001401819267374610578938052213771944281383247439977062999830809495252831903182051514394281670872544680610622667232628939147202024147328763434490833163530626015884122917174668913776207993995351123176106461041379933702706370878024782032303549105266365792896791785957869459023247691918045511359000104003592055365262206801527449312796123507221042129220996486184234974193435153577249283918440571925191611020954245888053195770752627280679483807805768644963201517433237906989874999987867685228726077398197502198158131459772698718918219401855017610231482278804457578053668752790465145823881646613053063390831369776438732639618205715119189054638782633702495430515816473377418247732700670475699783957529108922073008358736310403394769448234329237806334603283542091678050372979232246039343005671414478160991699888299940182664302026397507606381176562220816961155441335485141098712624595381396229055323943058599976724741345070261374599643127130754444894518540197179875588484052782954960795740758342259207157639743133648956354806160409384224389449961039742679397441578245519104614435778151006579442577240218720254759716444149540464717304196059423487976774956662938175496001924994334602235740682984642470559158373939981874237374570640505601083602650968934992212597371696524207438668611723452840619123026591910325898828593870084392410477498910999841631106494021616044854978772854769088126229690063011044081586221973388544822710270406556375052358974289056629460521100577233585219173449247057169520826890310628736083716076993773422680191611982068584601868158027207800646600949679815835244034318478009928783014016806326301280119110360666688788268819043081815172771560017577498456102395963726708555757264965491301084197366280376573657819490546252596920936402119895536722592399418369345288106280271685942084716008763739161545368016940882395461050154573460021856814413091617053092747179344180495299443303901679703521454357260146322425116854742421339605343299893123685637677967941025038973668859809284716548921653628173450376598073508505630404304499439116471382839181991810818659257862523808956813885754476884320920927178288927167779104536177274240638475456203259947858053959872533992204278645268446123488354175103886178253315389911235575205933622035824405898983966797677506728363153529088597797461473742750806774179346823190690158331109059826486192319816793185162030526501695131328454475558890984521431498085490514124739657105044744438683527570766098548039904690993083535970940089614107293376268291359194191934256136270872157855708856837764910684912582627336123423378134975026531419789122003698072667156594373584616427582521843661244623047134273639984451429967133860912816394670772808108161851817639230184177971097560166095120941059850686917999362152959331027534406952868174120461897668416568271328983337530204770187814705410352178735100697764775146689291345238045262206225285971741029249619004625642267507558198859670828465799275216633453475657699511261745807427786866770737265808723770351934332465136180975103454150624452164704275686241967509769105101847304098701442084215364354000148331090985008618981516388002353943804767816877109019104701190572952706348829084573098943310782978822432112179639762351536163901009820463869289347795777557479135476316920461915778365666603432585349873316256436309207363255287825810717416146601112509555444774039420731723077036501726877107104895267297291542603463126781167286694223564335385243460076903796341461395795831371313912939147408023262150073685545799689822745092195685779248538443549534843042400256989404587389890215775836161268210683331329134063475467941691602696708513021858036823880943064859854243973448726255403853544580757697150594114131321067290753412563959039072512762960339471375909699014939787325674109156832758882695682692885166878485432062570563771075962572968853839137180451718133984084445767693577641924044771356812563242368922170318443651066769516418288776854378552325089372145119046800982047885771783836460456948525627553399443164762975937839075584711761200026123278326033399329519204066809233574492019705812719043149942677135085787051833891205723197069384602546150260163839792573000807286931184287853707875422170143927164232443060711408081066334523216052863728323107441605135873474816789700584800244152325231778967808890249982710566553949438063802206168998667047381293999105715686264036326996657776743679443392211638567580115124299863738038456578555094178779216299320925944227229349059040056735095893644803953558188155513715674791975849080914604891853920921208628128970495913194336699432041016076020766053185899262312503366525319465602997386802765786137772611769429078366321024628394783141275459794708652750822612614841349623631150152731330592322551448710308700628290203423517846735265975461072954615087044066634086779824236047960643108279217895544916510009128053068068782532834237067941630355220124405588412855868691450801731042074953619051380953768633851105743754099857547033204719040236194459228199555098152282964448336763823300566975331661819505204808023943977807814677596197522602585905800392332129745405961638630020801691980457224362426563897426016076013729093964825843424238451426220640739667816577424385947513020146933143758285650780436095263825427392782276934221399747474241671070560094060630590866287559002750439675993070159006395467254340723884354981617212661245360840395161212636530412963941079581775751608296353945629185358860177323335351927608027933081595892080203393434944663216228342222402618009392318227643809747152577198658306215890778668372489849144439113846310471266044147495271816221740354085464995866012833863419445127663987326529612203993486623208494519933614948066557201806145190192100218325496147328361890808368872183547093644009379996775781060487132275194712631946527490314656253882656474991393790170657231084256161115068617098553252518732532866243443429511795500489741026049800396571064746535388056939020305912136868001806282715244480218472731367027712984339372324821032710635534734654745713246844905545742199025746339973967769607158167125368444734789567872146374206172173181420031562154702579206803868557866599179138429196480784184336164302280747277847312424265544417704249433423994201589157429651068425078769938220346663717059991657448034014880895489387022792639493327084969769415833635456680726219686859051122228353399384755952982298448261466440464221570192007357203479156581344979545928572820534840682604509109750219555244339112314546081568062089065786169901220242908759676700210063903239466590605265658649258390846034504253664382457929130139012737237774272427297664190188696793218759609198976409292136380095864578129594649299135499869564594643903647300480368979579309553611468990078402385486676261429864891260808275235060901328521682627380823364670944113168340522324363856981826616300467303115213891078420515689962094194139398513709478466740132264824725182466232348974773283342066091267979468982616321580496865324861104487393911694104871797445926956330696324802208677333339942942035766707560622200266445016896956832087320934633157039733603850756492336349963786717103182404340878709338757143318689082450519274378942394149682532439804832830573466697432274945484169023294819779922511267934551562044132284489802795275839437686663728033094501312498055702299427793105966041603497941789947714275937227354930844535142687470477191817021400574175091947982869690742842631045038368236602339938359933909519954909594070941083975963094776527802863925024181146410242846350921002607179535742759013514577106677488743324711749014165429979026921297335758339343999087448009396247067507734437137479455540244360218676308876610497799059765218696718372380408172974344299604604098755604551412074009034174068117092172960879230377339701487201331236630629831053597514691591174775004182027100550385436322622634195747479990065851134483851952575577492916183048072460446704410606725680293286402987186958461019780628535060618303697689800017925163868547016559456528639536023757176714566779978878833991942204184113553245823902200151213824103374433243784786181718156968127000511815262325020848760326418816929451791493211454763079438315556723858372584641467365533980519956265202909842766594017711580900092164666705499467684072844962868482078573432004266840043399335346528206661849653298802282660174046664482638717782893932068102143680695606350462459681083882238303124745085875549626159824502131876151485922261916026217063021433495929405197647161797247300153739494487836890223613391182937599932235747619442415914323127835806982860551016640081586962648043203822525075660287075386388622593873112507921261873323597125286262367899094899420981419757459447239426690943399209425041971292607977292272520551677812561082583951725002729769096568632098599158156850467476328072326339839127415227248075525136182660731121578524116375353926433833439870745291016991219974998091761023577099974449253069242359598140536735768945164072186184831444055040639645381163335162491893214757485662926912873047091764422455322643937479765269130306855536971799521258119000565176113838996618058326659201263378126525606032155980014310341939894701068734818798399669240429728422226767416364930409515707681074611753331050302637247258040963528458384247220007452688805177033093499221872657712901627989037196115550210405892855808903412584912868748024882615188966555649305856528417286315067845043141661615256526334402768118921172272809384016201148369351130599208348677623827132182745518784477654034475578443095086773827453631246113471799273066740340231042563337867041010962818095688423512187728246444259574990275197375326230454552664651286985859236015117664478985415847242303400284175874374772943251957207425565957668588682336627345459283543147098495473015591969081487507590161033301470114256762770714922228621516227029837407780377549168594860470505983709538988647436470418228083768866627174097091965215297271237683191888523784279389422156876399002275244829634534788804697891321161570637689732922423548191758863727832677025625480980984263909863542289004136528837240404216523814803656888270793618642850858926841734671388391056255471677651980263497937481336565085698438129950948109471800103614132711211822744718403934366718721105261042270642035894683240977329021598427281750514817805121916223159253847999407693053632732303136948542836015060259125202659317651014485604887419350808367900520949785828375699941014771796576130839132242588963438054096378971371298294134677721826776622706265267263077615971931724928798500139811818719233092773011118656612935934679455702481092664368651523122353998674868319538032240306378486203090844092037385782629865654576303947052923055400551324977017527869091893310749532242361507741221633676355809423222387635994285220041985684619049352552373075235580478349098182948036047624549282387053874069089093160353363089977116762078530624608574027222420185245228318269670360551958497796178454900312399092815914323462859005622186896484938224286990729971009398748883526870033862864633736577636844158346459618838307956928632480044652178897667715408290712854792844941111317875191060650939145909917978899781112387338350024995560498334517066010468281814332721644195564274275439280348367586552203766328278678570247110809305198286884987684563569526434669460191373531490780050369247409942478616456562554172304410957456209704370775229359131946680266815518170075726096236636702295138573269400721880980110803153720810024546469597789637890634951754389566367027186022570783095941028572741166963697797813067526366431114566709085738236836783261784342875399096723569051233337026775007744892779098302186953066850693617487510349759315302309617627316659753653048337072018485441435604973572241732914120900390055894939345049261313894295153690604717063129551239384965688197948849549745981446775147234143379943693174887222468024030678769638679936728428043085519891556498933699977462230294176527060470532118817108306890976784891947394712473275734853852756353083461776995775309869977955726474586245097059423393833082828109888142682713795207043436022655500164425749697610808295377075295144912076631326380039941495803206029292909812952597169260341894120534726205921984998491608496999390193768009807879813936852702047319339061150485506540130502945571544601097026285090348229991092372082658608747584594508850867515979967525309719518544436623954220031964821247882277743818461951649893979672413583144995362349037332208269097073427682890862936285790039769088413828045727975322760875866796947261200584182387423604988777501255829590762418849994476724275514857035056755456251051093182631807052249652322869375832952484923936400553672960202743671829948627954109596394582685349346836216669070211866903239088517453198959072068006999903704758785807835102138050314143195393693314375305782380245491862702366317613258665143419725529873468193356127086329357432986411943127359964322800951006163188527148227160805501018196738597178813931980973244454999097508580069412671396094571468184434964325128461646645935864335530249161028481472600695289672539708051528284764065792429308410827810344872888623461907946026244901635570495022211101818373913206609521676442311353422715955242920513253126697961275476430515836075263410308702870826164668622526318960907011214454165723793715976926404273095256233767470919642892359474813122137076276956387099760203895586061540839021864823240616437867098967891350453822067541984067335853848304994349613854259944942021876537880271069301284696370985555921264922159099839639511888817264239307481113919431015275871100986591579023606285135280698685254800222392212206341368225186793415815248053467400119552959604903634894576987045790979411582180369936890705711861684456474512340644578705032658623480097726200431369130268322657916209468601361310692866758295385831749401030787122347429744871089971789493591840583068050153470164153864729100114719510882200608091646989909261616014711976198434841376754482471304414492475033568896617671485445833935254628564346910948185001496837548352953136544922709514756323079275235952117905314326446114490991719557298863246999118456570770853106427623824935262858018933390645939449525012935371673207499498310483880444116764867592381793631018912621249646025530458180049763632299421674773458117843002172710477521256783041003751668354489673014825258819618786575685193608498649217872669506160304512292055798354436892517566047016933613951610877835110933346108573336732864343357050655614704097813408216879126935387728688381793118713911715006700923403001005053638715788322129308588105582123920586603255475116588572613318916174510432812637447457574681055525570173571790261656094615621292628216359727418704151228386692760862289167646188884628354639165745997059928212906732435913951348466144507536388412074333245693386810956518082524825724475260665417409881187643469452890490943495168541110829587005461883284738276272854845264689905087595914469510065466135055523470328942134797954834524116662447800939722414250441810185444425209791399149076343066148326274880602105159399682485307004014058642362749167088546377154808547641955807917796942204348793155568590809131159446482341532656409161469757717585723506915940110785128296248537456022931971382064501766987531919641065042412290472236341168346086701849240813093488116737674951193117144047420553325193276259879995711185498173553525383276290289021347406764132245546619530140448292425727555463329683369469600581288663105614297480539300359784801773569470124270306999189461068109178627736358389741029655354993427973450238164634825996220384303733607211440133094736612893989277020980300995528573595513489421620538650279961116179794129104850194289399352231375961799924431244347734051793266142112187959615743653918969442689253790577497282102518351707167068884272858630173810226101010412764039304617614516970839624246672557150009343762893925647417326847045293504636803915664702006182433001022884575788160224322557599289808734153225358324554296799013954863896066686625242311728658711602472977575819418806445397589238436985032689348647183953650658922120612417758924449634397113080194664708571911562503768882255873605257981320726300953016476255115669544591380168408636295784871465332734261070045573340400822917776446857216313137847354954595645924618485552194802925257237128987756498367195251398879317509588167267785645577276914831066838543265240965866503230658274047619147414259055665423456442620050649333991148938672486134172666511364089000725256478630364420846826330414273664310010587106283965417879475849709745630075564851163092020133880409069753850829463774698280481717778984686031483152399329344897154744189283574680415028067924169089039583124080233399974378422521579255054574720495960201067896505788213364973830480785877382673521295490779320026802816478528973027801527716845380258230505671025116371643810858639388430670612570322387512217365969031250814585884321690836255876835952606624953899725312143143068881516921170607558783371820241903745626884205815455937392021886831425105080308705053225869618725820017458220829511505391017808716590824221025486493581964107333053176124483837352776767195651578475752787510561687666896821945099239102360345132160759080801422605850841954791018755992844212439947441331905023936242287087176853007859698641722183316735529886692016955039457449946989860188037802566591585459604522053603780625573313874847261867737928535350618675372156017365169076516342026902451969657256307102227456803408675583538342966106665296078810339571418853673988953552723713359300916697721732385521459444670290963995894827235301778265446580093600518128177069142402233551805162657069427455240741004009350665106274084949714382093567674609350662298920425404354383384443943980164036253073939568924959361641507166906311323741163719470169829398185816948467149175393041400303234558472617332765804424058176898319054863398844867773660405215553741562352167244955406867712723101376168355593717824533338234508065016242654658477518575980592087492642927745829895958529127943621190517512804457938202956519094404031057353445514293967815789143931256385779203917805103564268959792905268430202978536406215739786838556729204189844602516917216195023105405424796842523580963438701479899074577651850680422249210712388195777316607405284380682471967188107414780743246521102190103519405857729320063097544468346851704071180253151571580180422066567126688461048335213237282952547346876900045682824429541566584303309729206143054892582661447146449944538399083615127385160328100162125798130764906140162558344529592659739433082414190934198734054995768183732185322285824255163333741353624772843830336660685977787577234074740103229312263762132987239894454447314797253837495964004531760448198405444181794671189571340224612063076547968512743402097505023149349761669558769906868664053234760703638353172832623521749047044420764579384664412605771524846674618921844732193906763715964335340267380335925138623465679513474525011550481514147848291140943308063876331877501257728577224834556514522504704220767642305474236694573383112405410717745672396230609975900775224888830226249026693695699381824256192251388809485203135120096326666815548331924447572510391118988546539439686672687502023356740133558184217641999822635053987329194744619753150981335519370989126131015895128713530950141411000246978395433989478080086571722300027695601375335540544599725677830464639514411842659883150210604316246806477465179745560638481856032658306042528411206068904972417763401073552967226753441023913149061058587978468636578922298259703299908375261530400712782623891125155847761952817614670712470779946851692081585932951504345630832805965973032455774287373320652645066654205618451811982738965735305150252730111680272981072619297783145683140195386690047597502634540582638696530735649496137163585983334125058716259809032374021544164342009027984471005112348474901759180703429649025200834754880724925114875920796226856006842749641996431557514394006328420507113902431733082543217603469107104130049748457895023054070961926839748534573123991843225795874679775469215978705306323886190198142740808157243419974797544125234635352500968928200416949756144609778773914954676467640242300739904511644861670420226573835674209511988133725361874043973617556822564543142304058841181733995966289562290458167929252792016072259009867135833591182984943922165623407672145374844647531019491439863426864938605533191883261951102189989569980172658980372953986033018942597874882365725875964790353071420119270732039298632472672279885664794359440951474739124517254349159391671985377447579685079747677519055573990861667215141769354138134106542560445751218565135497794396656269768542118912491661203390440866887728086421885774502291438956871657809145283431550232429068777480088761338697576329758909800911853720394884222383085257739930020105159379184018281099466682477767631539438244652265760898591820210592042534860091090910790610526639248229288298346740899576697934719848296365972040520919608699449396429120138780130443081596909636553452861238795539537191388645920286171172503746867045487795104130772791767982916560663451027197302477277212069587663406979205426653836987549082172867738328696893190875439246030927583493286168685579241379889265540747419963777811704034125804177199705780580443545550399611024257030598712497501214832911674120446135776736064436418491371660845070638731420160805380357159128765839563418562192853824872061321378883652827115197617616698732989514127448723517182285074880412797919019928159309129013086806874024732629773738898344809566376031834097800392402636127682255313903087038602864953565454710961676023001425933372118261640150118455618862010402108265371034546739023825992395524838674018047171440658986856865437276229333500570845591177136087938445852437615592108501767482125876866083984949000776104250346196030831794766191394965859193581581240790322107962864003615876568697706014371910520619787588140549218762048000634802649803572684890872383440130215470883697184680056919696181732682932427340591923681138047335883170751638726027254774100650032546380686418139783212268646778423368847877120088303842828031050557882584486396841012552656087942176996907519521989878899392419218684082166273600741597392669168130898793996217411626517793253298918442626960505956568994920292468636673161504579656466919597897509351313160234575235233022566504369423322531109123956399195106296608152288841543605066067974706771541580657926380240834938892242138352082915321272916021040336499591985521009508823872694045964098422543131287418034728645406239992787833451989240995393705614283379795841289280597884516040074449772585234760830973511240489705358441869560753556885009883206256251731990252383399490365692900502069448256612265386805789697327795576964336179678047116834711364363516082420106274780436752551090817856841786706410571882726266424462458406111109314297410324660297997508041956767113768334178864894004467873826759145515213872800029032146662464148817672285236688360657830806864418619466592546669535901615772926674226203048378168259258378866821754497662112228972291396788910695002554749798964975892653540806783061098061613262458712330309972192688218281083102109924265122300166789963414381173018549751376307197763992049838400297904954915278606445097719798218394773418781956666851942572420489239816841533934527676475365064864110961190896557329303821631260881325867086901720065706877975859460363129374607623541581122251067541300471156667029768403585496741880447979499237192320008375708619842190126730020768134871037365994124762692375754739515655262388196485075116286032889383708303719907881912184301671794076914035841790015191518902824332952456736022474954999668348473349813955703185559718587348035063612423990626653706563263412352246738834906973167727797063605489432444434393028683711797810694452424959312175880239599419191492614592322149418046446434570282128176808553144500534435474587602780485571203007297597677208685040355224161148417737524857755432005110222366712139068959496430829824703225363062973910643137244655618706125485358582242252916321915345647741707844643886973207093672854119414546238822489541376194192541746001054745304821544371569641964749584197350609935711581316065761227948302113003974739907355211103575983760982974220197505542000385853377706585584693432814702432164173555122461346212826733942833797615077559452305080260824087506308272749565325183267237484679785882602781395848013085992176865062316509681254280516819153378879899647532432459902464316021247864687949180350373620005893457222864199815790870734985280660843020045699630163461237948201737233866633359075750022174370241106760631620569331317245564174069701905822939533365691761881787238876415230190291514383679299176902511819236239903030185536353594902225658645603460686568396588320060064615847344917150152213991194592204698962490676621324519017764070429488771456218825706794760851933484172702109374328155368077741737970602869205924359547282539421796962999243851774555169655366419196396460949502447900399197307190011406574630929792129311481728230237130475647368183691457414553284099074883023602137711504504316528090506628343609236685753053237478493019980054082392229644215033497924837327243938638470024977607981911932703704935876150755175714253702924336211997015636397578738680065382774573314588105950399898350881652745572534077540393011124809401549849281343147322663984249045913928314445997102031643069771512552833876273218867779880801580639875175383092429955651029164622636308576858879158707611691708448361371610002273401520658267464792392167632752206381082028901080672896947476638414895178298662565577192864807908951640848605957018135572255878977791627451953807755825098157286128256430454342746765018090502289202102964629268577807526317415605106568755891093626769335200933628166786318060263700475613958800836264330080027914372129546327699227366631845499590207176281590952165324755235119662067255377338993764547386495070917995664569686684988841933920210814660246636830627516727180205539916720184120036179122856402930192122048249085794454979467083869973184976601003437329030483712877144316522118683490022326667026063544644735488546914825254963793308319634687690772379893449322156354119437006849884328530036640778988116028646390859332052705729335046442994119717641773217990384889989025402301343808446443108487360289533296402026159135035869832492065239211156741730184600085284311562869190656551746212146308809886391595190929778459613830554710514484458245286259610180007580619700176060069818215582670900406465236558657298443907693094123196861473268228984307312878916987564315678906809992235811966672907806412332133516047615152890145614655497780879460416140930945324079789702433165366029045631299639316368580775731893080362669317120077199503574447561133591546892111820060904232727974861403494637844853284762685373301139521436623136924798128548023553582670433712236144478872510416840529934705574209636923195120211433717772037616184494888292078448210404673974412961444186265786583533412858120344900902361316009935744692759705893043838778647565738253924237537761021093377077927536743185966857633934286686681479235526309907133943463438844393679128663165449432983171620533325551659091610943563120573004114677250078011576554634224153096974099534667449853453807653486266702946026290055173316135576389775826548507533053492416721289911472972350807576365706173273846996296696743211689700871932445087680084825428518817947730261773607610596720681454512762119892218858121014208021930070541394499154728341036117024100984604797119871249294254035608407302776687621735222328862480840721615583273826485922809759335134168137603380251890036802358847209148924399495469982226692916641331699274430621446642023841321151658105908683868116722999907497633678908124427370202193335802880365746856177481725444589794009797922849136537997997485004426051828716992444499216266704537380004397892665734157774695071646598637612463862513291686662517203367806723198339621409221462492820910404633815427805308445265600976121765061778322849979102754667845605580367949806745921739416269354469266933358617010958597602849890187871655218658774977095783406265700766113543255280583663152635335568460961432068161515783884082106681884137358774963681465749432470185155160988967232277961963196686239186160063856567729000937342856479152410077247530193859669604954595488802354594600386481157111232118013927822458671495330899110299882714994049876442152670677795049606395314204612538721079823028289825957351393232776959631089825393878867002512450000836189905413051717270721601761837928273648572200186373061700123407272709061482305794979765430327393905874562111569412423552833867522094717690126943011627283997430399779801084497072889075153371813935710346315405116262453660698188668347771390826906914080134889100449552065713202858631229664885280793139501165072315819282014452985512641801239433129580389018023130826500782795250475153524883397569286667401423800116568386502447285399772411968367836703748935893270590121729319291866076508012135333335742976042433759970358530674623820709041652929900863601360503433725274678728834640677487307346493686144556220454367227710750357822714059370670933710304424939665289626742171495249307550122045867531318001506085175437543319072667660204707385195475614966123333386422274457674255640014779623062279079231440461203814202737637674735488611559905581831117210669698819282210764704923092364209749221378035791155226754970369029427024942165811503225519881770262385132894612463391973149094441038520852151886831955176795427384678000168609827165919705852971706733870738047931225396477191718691611185490254708638837519462893359443757078114080763735598731575564941313455560852486232275091840488183904426923331222202514810625950421790300163505370568613962044277394036615400518601743093132295754388524177625441783994623008520701110002665073557128571413289472513513622566228318702465122739109739749036183487446810821230133811546624278154399712342834001842398704358623231919235330173257632954333028013433988042729573569006459980149716253827721228809061411255199257463811262522789854980027176443633561820064181298549586085587413795936377362452081414144884017949180571421247157298411806717582661599074488961746746719406839533438197091763655800183748944464291760056208368618010435921822419883221647743587100472989266710519074765006811632001228476409014150347575016558505268339038397155199049193218025188898678570684021122239973890011930587209050083396869702405971403931903395719978913761118839477013216055151510228545281764347779492180049655707735882372432640000978874425920488196040498425975887053971985109466613848460702342932586088428388052173743288209999468564116519181362117182637878561036267942993340483235907657794124278909698275973932177727231087048467305043249588114493871161779432390670376835475923437645324116312383985910032567241539756818505985740144598717577380333579325615609889841671967683424137226751395549864448385280703760158859191081255863967038176469398101222945628216634628864793816506219986138825433049741679739911643026682541733240093698981188871529865776046944497601622811168618965275958728166282016348796087555136158177672562200754879317653455079303613218917908573422865242314072105931759383647605745838675142400179555459079701686211936242841964817801865850252549152976862409852159145169281076522537528319775788841849748418630081955017457274472268907925736618419098172037426318346983652085428374771449801329838941288700935286631087499883515690899260211597817253313425754939488519006132863026818599411653386146332012218478295273646496092713413009670743627879940500588664658006514448103487973483733847582360715031066831011193531173420017658914735963195222204914543165784681264674109716358137333216906901776624991662583395800559590424554275742433202102693781869892809078355323993974698808523267085202151459605865179402136250022790156951296156604825705011731754937273894585060766547590592192048226189426878115689852378397118189087158644992750623963263432971465228488370343891620972872334194420135829230446207091074867560261635198280846754912369612102169033156996628036605982034097888941087314525006173411796492167493277214715934086894520375590377952958942696859930237079544802705308641892383270681215036705645259282194338397695403441399866283255394977230622941880546945751883570639754037931674802272765750247733651370968916580192324621379103679177260266445922807381119428275445783825051798455190510820336308485200098844014221649076147543304542125287763578496021239370229396681842272088737499531546939359878005044672636172686119473515225855036017918043979874160905232615793227960046411273382273087135619371777185593710069549115120244722442214874895577698090881055568556179185512206689453115124125217367565205839213097008555501174849050062848536170729255650732300789095821004320031083680545502954680221636847827633050289391674873983946984444641459633915659858233940557793323518922149117361977424868558564881442571148104723289298902786933054205796071598873880411439681811572381781748322454181729572281635599511410912871208939828593357050869565822330786916951838249789717184682121229535538960360886357179848377074240744806913024606301996400278725955684888552485609569785505862833003076549152812541613100712982820537451166181707832263394804391614026148989230167564246674044637531002795526245254846394456393503564458144313741154873300766622053048492595015194603498218730403951599546675910235589200306645216175730232792496666446910338327509048730123048969854683764738970988485763022108150606627855097806813354878068781799246960420931231894200988519111505021298939046351390183109172756634853529324472060443683770802570668390651044072291117143677485893119928551342681595820183635744845370008668818695638277094827013504736428184818441424613350756295264216910595026961932534353907488637127347640576319784548963372705917937313248045518695681659636206750280769147080469418349163905403441883572278194516015971534283114923612756656347145245152689708916262594683302849742682503043888806853443172275135207941150801269868262660310488948391294441616283438744279412534327029999641274255947771692383497963270915697857939550111581476628795190942229039174791664573887203826125580810877025980683794400171841640809492932099791152210981891504082075282612375832505927779679041260672619674725058641088492364600763437149359459322690084893266240920259963184533310147439390546148008239554586266715725557088845112281781921092332424724491390102036907722850542142318894656535175566230548591189158310490181468975742250219852995997135866241964026422984783154307953290351437963316794082801647320868716145789971903519132447969693699395670936674855112064718426659602327447070173275578909051162338657242513922262843782547778634576186620885074863038489280832283137313724900283930590298187154515964842229191685778967887960939645560861266116590010982355470800202822911424841644915891876925483286288109827338251538827348709017865091835324953751492657531623292474085419028949298133773143132833153032416875793438815743033527689658487721093376947921189187567543486912782094229071505316676163174990767847306095339280330614831012948130134400502082028646360071773626038297131541170378732135171642029406219060385219177188279153750361366378537294774724829605732349816835121991644025171030852989973442338935189512415563791132672288491435617492642992585646014510570358532649521457916210131318953601469375316687014644750825053691643309610063343325260749184801467045630051145716598885638622915374500201987688926252164538991999976551692641014928590990912515851591971695969258043638973425875850811465961132068721888823226433984547737404274724946010131917564284183612558001940742255851544272561750776908188653201170723091465566350575366486829210648730782083406363735424497904482088599913759014649424789435802272417205834219377967293560596290787916164159148130553980272032542624493095193169905504425159101963539222835412175139604708988106791951780118316836436138104803762256418308231448608502176852207174263795398837352776447610277002876915371256462567784107221449087205836161167465473745762925074261076744262042746004221820530965235503326408288420416847340967812111047444104897706997698606315929672148280808369423815836327262125730608360318411023459747744791781831675777745555070168674790566655203055480665230069484974272773387051315469709809015907208203260431975191318538877735405566691571912853672198402190202395149776596518511728293698086559473839298323495547563843200373130705652810662237305274047578486527608750507770633278486919355617825776172666637449533340959786416369529892775850610280951992477350944351616256329073735191358601027327384059143858652211460377723385519123213147423189884887337127564328035569197147994314769352575773287687873572507535445436246007528551649211876557026541802567375376984715130987000136130562961050478375218221936398703230008658830451213390162050202842195306119006095355864669313136201785015863728994572752849205172076745207235878014780609252932917578212353001464748856138611827274685527823645639418666633371568724821514301015710252104701436328559771231105512408675384614844711086399789288442476610589419921644830783173947250244083342885159623982268129161095032329254589134590467731275521446951238886187617428667781893263859601178774404196776502447529916427672643365518988214770844395755847944435059749055760703106124910076204745540419016356528839515574222947905393283666902093662481295630960232594878964047326293168929768429834895907782813947381034476624821050725400499487843934644756520258235653234893383525154264688860465470687927068015295627792420566613545432498820244167762002986047132051173698379595743931842945975662744729016404084864384262811232499721501179895122518054818508726648378631373153040878714379181736944566524551793178613559126334083830608277701846140963430655343703173424987277325724787277468660515269250244257107311007529694444342144245118722778133740974071747863547482810051984511254683921925351715178840153597007956141131304777720103903382939837357284363125895344317276353726867576608039289125146580036405314290403494069490030193920295563026986236052074007747508704298936772162153859202902467727967262574976599502386540574677611876714387823852120992014956225927364011818650732982745079022371747941756222620072519506536464793519815571831074727291781137683584881997050706809428047748392735259063355054165416855375065704633065833760856787838958753130850756128788413360210593850537541896837484037799273541020039140778504534024272233859066420106566044207126863407866809220779648057642773798171311775943646485808646318754395516417210269907629524939010951569566307229189909277397157914362490261723296371788011068308161909187084591795094112084389754780816716088656392265457522511457247547153365790634432484385987839596375228574379977837357423680283151978251071277288778853427160927059333956325175795763979568913105785309045750815725482477578275640569521713504916679913901512490305173864392841393957328582897080553503681862003029477005753921450539084905390580414436475457908580038507445367160142140173636938818126774585535472001655170871162460834857098826485717808984298427969214922464233205394838238294678314526743472047603513058211295638981500941106876341735875218228819079130687022406577211371051258022556144986680651941774982168414612570419006561786343875456207923257358451308424436997054912938148661522721205123032336299389145810653359963866973542231075800033539132923547785055525485321405007066086050142174041442535183986470505328234804942686243585046711893036898184810142884713422505797705261414350987460360386583585125032425087319663141712436650174387510716008618992138165901488376178268751573370944596884645356307118297103301647271247367920919943633675916595645468108748870689770014527758325841356718109089018736682436259590136529288217066891305646428816802187396967297125820581615363927379891621577618233250657815782903945669983890169298920428006999573377055221723933038028080698146169224457725157660130606097433895511450928016889795615115563565929648259752679001208407748948872765973529921061114184481636421803487719592152501551906816014742317800277113057353939264855532460772557626992108919065747490145690773904512587679856262409428915368092824380581989737523120701161569298252651806436637991160035591598255816994489895862927068375378454854603765565169477729896918768642082808446400346537250860159276032305877835334157830233506057163519753523773934734123895563970570760793459517466395827144582381128961830689824403694902105216095198545492927257169724073650607659264447725767998579141350454787716840002572707999215558241557080174559832914182094634032690488878228855405495894419060099196115826875252843955422288072372967439599848163302511936859629002684672539818132908812453837839958500892229540305120416705328293914766466101070494959646476132290382935540712629818794161172450438062581779846921914887319651940771923204902161656786374232153936879015538508573917186823430516063710487862253474022416760741057397411841542781297784022066146870289653791668394280804801981948134728414071161114288243929232005543366646737119356337604374172316404341832844069411041418976085371115444878557506583079645049430168360972343561225801721200494345146733922474091106787566449751405691076586922177238144976341907747224085084076078152909538187877766501704738802694658621574889044197257114691729741195771546171613054168047527726172696302409617232500448977504530959547226235387056438339950809665180593609906208399208951547596752156165944532501124962199097505381605119816055655001624986231346044253901749600105101178853907186945961903769214225623016486018206157282693611115004081187561343874846175317258508596636725501285431012906282947983248661147237074591369675180037346724180718787345701443066456708857280191366904520135997002759949872972815358378672546640725347129098577251538324034239047257470481048361375222474910774840170239783781476190531984511444015328721665143513399557811480486280143595070084424275802835258191089596643356879782659810873711351501585545249035030139913010516845483458834953133209085089123966923603435941316466414614750582353060200901181844146292507051365878504623665578460143623557955257858840689359157378071006821865194229567687226739033944182976492555608901717606223920189514463984976291915043662519296345606599628131149466784932603526233233371086848752141486947990346535333160756457463051948919741814154756505766741890969726990303232864912857895835567368984681605153655457582220151492441418137589045190136440066570541283530512293243892237814600445863454467768597231261607240601605645357891724869472958880790219513050150879854736570849823782007306116053550983567172733195350856817171897003721800311324935371534410085373427964013781061442920869194168707164346922296490336622136156483627318310352156007086477447517512018788621225202385971398889789850958769415222857821034007849091948538538704065879986978584648362988956471448509719317368885894175751210255641654737340417740400162405256990247466244024237270082823608794916226567076099551269436272654077583114121211840097444673979196806198240717670326412422438499259956137751200890976788615073892360812097236938495330267978938567736087216277145523950521317296887778418347885882337679728136256334608952951933210705166470230543610440043904966108982779845752102905131628206333277455600211945302479293573676027345730613043998545063873441366505525104489103828168144340856977402952723745036117571808520157966965101665793410419449375741859560441861786122858683471813844309198675108013824257368227508044538038152447111131036968755894927416151355854913256223628805387205106127230973382292090990663085960195275352505405592155108278685001690651590340329963084860341118116009915155208117923696538506118571110903284717128134550564421154625250817589086441422459685182593002040968182329777378784551671249525314613369501133632184383940850582341793344104431870365139962837642408937880890061614863947683189430934934557165913008586921278595113066249490023140434911591900004048052373446080634163067826656937431353695324604485924705237948189614698196685428612749119543155967113436563963439724372603860948984718508426790154697266188961533438949335194950977219928656133866879246686266608553901391544900565153762732472776525406045204406417604918911184414931146326799375357244167736955888164620687874175861273960596700242334848707253038130657649739938201509822664519932784726056810423158535187620901886826005652605805104172598694877184194084967080976521414034878373011327713783580457586350066712035399149726057344227200777186574513574920653945614833134350676461401523443734764095037458042593628585898526390853008067906428555503019079245673670076797372524118429620340095055771539871557489449901855906557912488067464758372571474082480495989071192616901844041067370440723196842342400257623880836481350498405151108637783388299785191177995619692544022570498482614825858313804920142474311169535161717390288951838303274644787486059904967200593381998698445312678641454007738877300427489566454486851574293410896809142220389823009248031307985088721526357558844335222191073692977866066609677070028542751680554770683289779237421409172163070633965708248706526405578017856438799161643999666267761276462415066582310736346431341088441047841479437087049057679045853306701272037752587462355308539622327887088476660855926568374416567710320677592665854292468126458534718069189993765925714956467514401252546355375905776890538980261457844788259186414470719226163724211459816920675202643378390657008838930768151980324047580878074640022895241365050336416617178653492582485566099858842883533542155798999398151591945620879643698943795499017984021039050371561197619689859744312131176750703032954963255496685470277253096752702205629187825432003774133813739928236863740811215149588849690922625693201704774949587489389939872070762620537654096435578436299023789565444628793109833898971376826683337701677089059375253606547343568893525842560918822171064651161018638149137135873943747018318565736042568752340640697732560895962120579707550349919540729568999393074050676523432569060926124705934856327923703171928970456440212668350259161156532006851503503222054502854912953021420743427450987799758502381299902866421578094577103013371983779220795278594440671639048930140935776512038722742892981454541837725824283220717667796552085364689591814786181666664906862064976508693869995943649441996442533840535923590487570641015412901718335979200121380419954084862143447391482161379227578461564988745462956777948542830291285415277576454066065533421616083200119007184469449227056438268782958010867844827143402908669101540627087264000425956080210447473618322116625587370088981910465828470775430825790591524367422434951183647421429987454050148547757280131720641837195782493789592362391375255652335825415946841920039932139971188845097285453977980103273501083175265420830757596003400295071550431387425481964900190599755585861598146154614925071965931682952472906727529618844512100018591445722288792090113491508748114322518041680018472571256152327365160254924184379757054061764390251644464167323016156564979799254524408303211204194945859031675540683193584441050922430159142611357016704455270391536429408178393802949178787338531177232335257368433125583377442231825871586026681007170059972281006971848227701334116707297668112053532013895797536255580025325091912640890988202797331422828634681666035753567678680657003895254517646309197648599661838866210343502785061332289570554843311237174328971077216488437404888123437915763350778504838164222414859729063244639609966289297881373252319027276445692284218799112100022247969342602985459587201913261115307517913381153584093316086399383247554243372977413517824300334103169789550958738581772124128554214972794718949966886768251288603100617665396906820697120232074077784337845170389162327855178519218317197256973138391159605082814289208735198909383374328879591182080065416489464561289899199409743234705767789714639899213289620968583639173751020199475738275480638253821162042043354597328256141959369594561323069912810678786388590548957400243197959077152573842520328243593762962729938741967871659390736335810259529630583182761161622402476043406396125406729422251581546037304411845212627477146358265829124216620415482084113581122889785718080571737285622792570080612809943627540201967021975564817897470032270982831283386401270935329395724162773996040377359414254465296934969534141463642595858256139957279709760764771012901110908963632292344275340813892625100707887198125084832208817345291545067425067150996282615856375878520464540777344308271640273930531402335573191334617297319405120371833854123971169304739498013997727250598112419099737731631969454818688028754138160379601166049936714494006248373048753531362584159942352556601410495672345514378766256208965570183238443170157310253358643835847787999421771683469187124870723001320012619162641525925280054673485039413228320002375421684685316696418458495090972919303042656972607187322084107361141259021063028530210991233003250263197968793515300304234016356740169894406251615782778955417430223816560503906323513718128188135580896884767680508894591094869394043259278888344920385405529719980634505596473849315081318748060082033762470874557802463932520569900146375450670552122248157132526689464495449973782980331885413144807837071040333748823434842806807205973139503675268379105136060438829032181916956267868162819382997036943270774669714522918350333034029445773857673426870543954078139460722766658190782469133643375619151618201672517206211351591406697728512290426300248500724539602130300403442226906714528965309737553957959617109890038964735664687247568237244841513267126419778021170060559720978747306527267699434529500800810350808170280074271414209415048245595165415008434208790101328282574876654115789302172325193525552838509048500158228132088084992718633687597806734372634783021034167497967323711391718174622479795918534303796294037385634850543762948402873282921110055351529783079600170813801534603470196639113248271852648697405954930664666200664190544994216132638527029028732015191987980222074585351701918715638156943626248092982201074505926012983114323090753653628763913646208199447686714126114676451583320178473894382859210698044429346763558730287299511928465337712606366696172608142666575814605571133165116255644173993060325421791238666266612185310319865237496068027048693941603234814427514791377210024537330275402763721137695911586264976864635201422360355206053505455962778507582145808685477074476596894711259840986855608522316559222912447386243096224727483587258794692358302607350813823539999436469478844086492339869497574985958711947206709193914743331351452551875198959407996910095688700037484874106770302511291068203675238416734949510944526606772418046631858779134000255266996603799301312746722045715269912102326922845449457025219950685047223555970614019967199866737913496704133616024439907473657192870381225906821080142824073040616587330705663773565704444655596209837045061479912941656432696133861590041460762995221350884247964029248959812255851984957549547464591425973823846910811077726429813236639601291614568149483761566960079590392351297349374133384751763951325366521099015498831289294349393885547281927741186009251051582796468530250042573215761410848184393767467462732581462221887024404114860548824085470654654261246129923178671648849402344210363829469521921210919398131718376423859912536836427953718670381695668797580289808959103107449713565481030261138529207567320416610211059870887489518772199214887676484113873648285780208726404371903016169834622438470502832665140988469614304497988869794923605346189679199231890499626703285386094405316810189170437052694919215894233894695444122906588659853982722614038171431950396728949427598938680307675554708893796452366133407139590791184036996796899055500582626688279519634136799524589185430057226501768140800321099277138150194496809541891882300673558706141887508125769336707592947178397951878410452217080684518991659354982457565308924886063755560082016218480386612828411353572379013786091804964372095440128546030734850819095992252284538100555612712747022006492404414069597311915515541567871379325612418667413443244128498262500023270139450562385514807363699541693212077554220987338844029923788477744044151206186068807759493638619991756958296249784153218331421339684059054194594420829372378576845743889106927794504363353202165606117952813960197010831057972163348068026517953237880271911865938605238616915440509190346027622651580203987101326096993851785967594106183553513118236657345231123443577606026526342256582625616283393006531708763454408222258049844677909494444361028232882066367678895811797182137693418566685672765466908737902168206990004587810102590487376469992617581530571074502861915324061784011786522873658990919166574285275112645080034966822957391609015489330532631966926112246575201613397608987901205395973502408970194258902737168255395893954704257810356413208098085083479664377666539671993921540840911196326793661305150326926200371700885009092706998460411351119135999843660034414483384288775107201654969601320426672605152766519441963221151124262305473368983347266621950366622272561839452602977860017603990054488564001513739891103979225340629911283984250474114814082105657801481142144986539485273250035304826126434003178178310843327561349171486138058958991345721473366880593226325687134890605459282698916407412708853020381908270011578820052134902761817003848896858709951561774865286327740224788663668623396775190855210347745186213206184944291079889574912048691143626997968834199057728859148289532135969640867033980274075714126740073159722759045171095770372564368458875927558428154450897678474461356168186594310466201953308703364549609206856524844964256590796392039856671697149174809059468135096405604262098661876943427862070157626501903893379877086913244291344763677624922212081426227881243531170528300154880036039836442334041192253940761090629655871567692081085234835303021695212335361235534387785369515799563088974753985489406472496506806478007438396907814263383516357872929578391699208377411914507363379266576554784146689278320604530101894714074663281903516757170138064577705532133147382745661830356049455425114575770250966761670681095644468396384507141903200599137696975230242403892622613496023277667598869124960791049900602306156675786834037365933931855624868265801216608587749573376816808296046067083659817397555413320756886045451588638016222095073914730156905580577988390006555753848473615379830900816942603932425657133784479142121087289894458536739135697286551732648319934358001173126676816058085804612106311928899085528734019761035870165156750711772959330834987949230553057942772365994049634480173856382561003841065718531995544320500312256522712370313392121736301023407447539439414035738434038109781629088615900767140340271811096608078338199083978002245472685573200173976162737548431264343828295010534317734316918262811348801553310094359209322272997084514374624320042996090919471457143658122513746848595970755060638397056440544852235979344433489679186781326648003400534247070381873643288007850329684624578177588496778446920074861558251930517045025299653232857720059584844651855499579829266804695396120783435321015270048612204955162905733299389557451753262102394698852569983064041178909026151066961090280143698161381404004329851048003254121662753870600445736288678388051454457901075184395953744901300853889657471461781959159958373525569025393766999731732341799328726432126439677651890405307749707011250386821952055289897062061691088252846954568318246871312998872991123566738824654863224724115167060719575202924672470297363813335390249450114926654674545745515538550996187139345358624306622926384004470058189443080673566171180229015209522594225150671400330833100863694260386588756990385516576861601118603531810749578994630321923487151600695680351920183206390892468177209800488164345785582347622438966171458341065943577639111140057206786167171185153162415042548133176452740970623726335197926425378955008109596345358636288725735364055960262661901078410421409140276026964499485934901291221817803004670504782940496172271699628490461744220749415195945424455109102188922501124372148933644143558012027629305842285637506592030263371804943077800558396092929729138533270780225035381698526861063854308191513525636613327167568371400474013387734382385072508607452360801793841540983831936246309999465887077508948124901700221179621205976140474554353085560692978516448310532697109394204823188150273708834475556522120088715579443491716828743259978768020524758054909395159628850373536051000455413091341510342621570478674074268718218899486701767597560732579544920071774184357424560093556294794104690460452349048071013749640917103924325296199760584202957717499055883716382736799460827547023190891938017072135342331893797047563056641315706290211212629776743431901266102340966804435030870831390544396396669706245613358321073704896666086116002356738645755310151967961874696649103095366284849042072352310934323506139671365035629365852180833736559312776226838833050612778081612209728897090026935885274589797749636408242474863755749003846817439490696129076955908813335277733664955982299612854810128912694707471261135328196306336177157231728904178158481919763481567601953057204396013417683312273791524834159383035376025872825261731457622181315325117658342353276478063672268096702690604683352927905406227974423429752797347826469846128356492897469723415529568410794798488517618390433115320278298439147538758557462434168722557812142855718561034869492369549961609438411101461834719093837096422219906710801700674343801195605938996955197176786166618714566121402213629093300234486073756606607289563061333270435789587019000346150517916273259850097399482221106229516609777232381008234523047838744318499139626807013904764321717465348237571552473119037034162674710933767446739632596299125448900708747870540516260504728335609577497398319590884122300678454996545795752401888109566081140062192259849566394724760524846543400006938965870276738545468816957405297756287705328046436419490426500847200415098995698884095559366761901657331817016046622085661434575246468731859576671709424924036801619563290646579993172795707831004109981454395969868517414033080988611795977589960842388793169295669179348244618401419478184740948590247681985708923040143105426228367718841185548654085945614790241077943348267892558574847778053936116521247979901900549537476503794106133470260092489084454771927488037654057105765454942960807238881392904243973231470109803000711623109372500939932881434920688080116037833605814823353821542095718691371002097864035913202452078526915381642901087720163341930338375981467267592106886742549665898672569008298387085901795101746676834110745132688788098989121850122496173720881337677422299522664451172452156604137415657836395475495548850905506322194137158231501736613037262865430146297243425454582251310856902779748961627753908960236555012217133153368174854673134345760235224832856062067130316673462164444197955923318873936882231509737902041886634773210538418114126669277216708896412816047985697125376873544445246110999381066873600644784937089347810006364093624316756225526042829680102559962391126816135040495636470340779180363639603040695255581713561395851386785626776470093136588058622614184543214824917880154347385963404093974360409137071698354201641256521033492247808471893331786989274558132678078954980744771928705978906348006078842757177887572798265850659284442777180080630515910631995954397003088992879294686248948715089453940895743852116188172148281534172338547919555984500565070534310899040469911165337137667430923031695660672598145661775114949784138580645190376529891525465941639821624948240310617570305927944656985177601534342383724834321104942830380998007841486963249750594193491714479880816169399948122233421896634422712278241603289155081559590168212295502076614565946954510937572069435181526748749333735658455917100223837578731075410896284781517076428031741290615262162496114077927146428624470314512867928523079430630058924779586617719310431585886506589290249857847007322000445423535795367046187095103785604001884092036818430240652374660507920034027127128427622940915898370494916721930239963685038478881522456331782330418867107732967548937780963768584822500644000578396995584335210135710183731840090498088275827113027184907927136902531815265508082631460252434921388059842739790583725714613139112919310382837351013601728530399330378797661992921381742093619821168482750104373841489024780482930028418735937253284204334222761964226154963781653080852912610383344186468274869761783521557783834623788296350887914277408992477483506842495263898610875735143343124119773795957033794609028938885893074634463747833099615594383743678853880366288431657333512488189338006770216866625069409983033172737146616560284583540030824312074909256823775299149174530068250135218292363040334512482276423999963915473514108565866722669590261877656731879970848047090826963149760027818666368903993774805665426333807107379701167743432021506298601167293003453841318528967961573414782628556039984075316292668306736974317881255924546344896877748635819720276808461347066835329643487835137527326218693506643457393117579883030963525155178033445037616950864352396605709730388701185734446410977698984847088097669496105035236987322502012403545570160010236039172000684139632450877396115616244610308599954298732405314527767964142916995006632657842074435479831370261461142160903139006137055198202608677039135913977953775669828959386682577978544150984489337814467575278107671504691628612329997021360840028684311788071733353641600000563420905009032747177792673607196356513010464212134187476439405415936189875038742825899248568265981131878610766211053054650637574103062867776106520559182122285415672803225635674849901753064585118680104521254061977049456453615885857736772157766549802048001703955015858641027097930897478313370751046318714493269580893321763983031072150727027734347687828992039365346734242530035247275445874633397775631096563763619935183281273620924514092320547776975893590004892567523409635851007910641703712578274002424157441139058720539595038957649546972737295433802931152491732700355701183892208714405607998949797735551429650441974807221348060778129495586899853494944307387951712932310101146199466144966109538207765202781568349730480574384243942440874515786045827231842054000967052097811916815623094231593121486482145790419249509679666186953493238975348128674933693410457323258849088432443900506453262440597226835992563203992238119639709096061478496084064043734457232391986868659911285895310464321804500648914329788554306637337918505316478316159353211531918306028709852635608180635410663191069557447976730377414053753761636707831475485379322392511639131199920990388230411309368597678973640547180632579190542371647816533259660014235951867988916261965343583542518412234111638421732386348321318559737231681205526653208683122732157082892770478931733158322889091636368871218088762263253602514403840156398112466066318173129353993906610926640878956557357965069597538989375429676575903629748702633735745440249293790502525436530618285103468592162705581854123853064460293995006960315225840981959511622136951273007617495031524921552859944635271892920881998575198924049144179139828750341820811972075563759832817306058846382581903423949202740777737145059349530928828700152072622740267792293959279824367505662370527863209048406014600524642740680783196763740134573285955885658719986472966111766760934536682525584459480879394966438050744003572129830086229869113190960849252696690505609306325929901226374284390610741754981834065742822064940479214443063988236912411074834464542941659797545239062941291314218310332969531484948196956749957130938502488681834795911810425628325190566045664622934982085443637212392723963638411671601194825497452331571490945468976785617841703068699369989355037476068253879083442077956169759553940838250411312013885724151192416464871611469042929605532828374471122287534998191925535686639034049910418712285768204333300540079258300110667790857015626181039131617477331980678798685710002302622457698334872351209090261350301268952000150562936746683634165283137717092590504968192033131646256719018709121394412936059593597236748714251939249249492509766934096255191654324754702708002842580127158355913482646125004095906395292777048721649309907544525828886142841298123573450585187125465815647835279782645136004252201566448127575429277045817282206804022189291687423946619067211426067252336906586411433487386701933322078870475656785777072966178929431927104921010901332599130936060893338357131331405221699703340639047180386787930261386876786562395671844455279912021849381337339038074545413829204779186971780317872236754035783189198810533013351186053965317989372171620464420995253521730456351518876274903631771102293285291169944260122042722663675679528009110857815476984127402791505595221780069093601868839908457933870592775159948971914613283778998366156961842308625746500416889287625410133511928102530210580935637239075490663240037303959751306612101213736533908883125750149044178675163296535877729312731243492414376343041925184927423641305518805043143430076660241466198663656025973702741604778378855716758311507071334299266865225705115496823781202788128112613156614905719549211625672994718943179265910993567922570923001961388628477233154614703107945309949244566356972255310664050059873677934567667991662518278120705379980364334271480204161314087121894229874638855628626463456032605124477070814070082559771071167529784744806073369269800534224073703174038617455514754043282584799362694170278522827486189910680632495580376543329253808997272498632193686750999725618091838216898947180499136965555298597697132666571142975439321686847122078397329915509515458513247641678451934154351715583474684177685868747482811049858904124332378259811865945398325637964021873593422348365141984140709182704107117336176742880331460965362575667517629447396935509295123884572114841695332914792153463036235828752094598180804809658178641592794812576899639774808879383771252904887539003535757616911613248205898270947401114284415669782170696017305108745334352872881669385381598374368900352919200051627296293532333880176056306949127782004051600832948582836343752167467996095388416490331846942457918242810670107220555797880352597189769972075436213081632525237753887167494328105914319092499888767448974612678760364049924754796000353374367193096482657756923211154329229112018203937268091783031194270962695289956019642523180310284272888089256691038917879162549485446050873577081911484161366168517495423639708904934397836222371288802706602750047956697096644718546502503042579298522376615594664304349884408153839129261630726238210273842971759550799144532526443000041844611405272684645551341772248322027813294000723515721840082813649015903991501220507826158627275354611191585117015362794863530335836300359044455021697486973951069040784354101960642627236220061361919788391240338006206088842063309857805034981314234596556264559585026793610481963411181304146758461302600077172852731380842121848179570657578751042702681113990042446215494161309587903049537336672186171694483315766997172890547454565628458532039143197668023213465933719563922878788687005782446994846709351429825232228977967898962595434417723912333546112829431458261580706122920610500132071402787403164275566149095010314652499738876615715073604854948661420211849531352307118346661023613489408417181237556480532869284581283073289392478259683333086486455523831349745317440998896527579190763478448352032497283176781034626955643071987141241171141612894283542093509650223421517264598280229705981364408129837454852299595755548714521137100517533353291200797764548640127528458047701353054645472172528956643422374683563176736081976646992773522439799403309023504884979670993908164815821558679706547105180209396709659318523493931518212502812594241008984604861069029760119366415781758843290400211071032251596586764252910153780823670837717208713894172810012730240041134174683987096692069156774775136118504127358200305800115143235778214451917330082174937986672531900355995998907261460528851240329512270696597067937812798729253487123413522279874534999130425018328649761599174419761947397212760038033373488281941169885138238171440560271484652201608932530782536741779435801563740084773130512247025070489755214507900203381780707235710936956505026045787334562121374354514651569435552929409433382566541413878311236357247231101551243363447827505262715077709476559616714814958069812312714790322070992386344446944992635853495500342671589781806858016234339048065273519125829300757511241353939714273187622328345426226857374576123628424937100884591605588835286112172077926499230261277387002800725248043343528790349366987682212001756675155004484443856958290984453864146132852198860188641444908655954473293938054421813365389901822309470548353940166417444872622781732232547091736366353682576877354391429451192598703410479281381644048949757094892595009240681165758579283460526868717436295218093586129594709473289545666248743460282132450800599410203875608158704621289709592171317949577890548142239001408827011561977664374586745512052551894722573177615168550040250300035493246109956045490740947870230113503353216724273307235076814604533311554256363868157253930417601158892464725403558180169181078977256517587687481021906972074750767988177865012620341152717861316861108211380061203084926483813708447791495172208170402346336026915258845435260037814682553237592486582466809554077865706340615231106381230200067918448115976975485542774766714365028363240474086951156952949427892116426743850870095831938806572130227599958576142142188756834805036036458458482020823994861465933439956698678186682981084286389681069736146552455449913839766302633759940223722900105015895665132692480453232124057884172103160764143647241333665016350356996352572355380459808396969993028432946650573083048426328777227764587371210199883039304941504625582494385907463805641171673853771161742401703930388425609382095367717224141672061575906369135000531772551029728073613578551299937935992774713727570369083761785090331230299125575747214024731185195548498494699413342334703862111894911795803739462262271611337732061317970342409699083419353938112304110021103724310538988393559005628321355609265604464644163109176419618399414142253858236053299502253415695894699609960400271037413780778117912980384714075309998196844929680971052304073361746409764529414522301332016516724756438136950413732257384815125250416835495123336829115372308765845633916701540485614335166958348396193417533992094863646369653390730120786307334321769152731592018681185789763341341298437850580327448714443479335608004976161974713588316507196856502706906913513060955322652180290515132238391871326499224474228113712504762823057732000060398950361417184381733411517991021442811919034357480945445269564404210744034895288024324660112830045890256733274708897150149853119957119395700986031976318599460823933766409735143034159099493062480306486692803468247841572101276896591816933171769022226053182641247610635646315175785503603082020768658135735435453109054858003246035200441337848924821124640556678053252206372152709327649901084638639680068906190245110658417993287944695880040161572173591720180143073385988306942903053206470601172686174191508506508510153231498703400406347665731541926096190577878614368582199126483605378782303299471737978991114572404179932097494378880865007454926895315470121961640460316107187843223100503064695605480871276421647730573171166403360196339162506512176764726248207611813590804657820022334838327329143407493772937196610583049929386538403799453045429901803687501644509688560881167741085377992995281430910909177429342811009811924387660739453018905693180185906149106903602560945130991922897797195782566237330719886413281774411252172962213334976555414153284593039846127988774496805997540948192643217680202893834377554982741995243957006644657707087550302990964483529593468640771211469239010122936111333243048806837311351263987580664360511206904707420220118196025353534225199038721879789930900480203548797605784636442087072421982825717348650961626871215695505519908635657860248363599325424073990611262020698029191887161954773078279325357892077390175943145826566314653460658869919480830012659034336633872745221092300555497838415399095016783790035835062965304836659004308791077895314715651120830706287564111399231280834160187595201889416057238693171018702832080236817765825121795838081190967319606617561879996968568685604730759787298488699213930553103396108205795622381545488368637912947342970862345844423153674826281999548156366085134156210447496161312868676936014400471737663902643969654358153572934402838763140667777566006250899280811715763842186687166159933957886229968890114944712131766531608876148834531488594887780773641897040237931321365705794367885055363778182787604666653098049619894060180409642538197483652918107146046712391485623609283583850499756150330975092740872725962494440817749011393749434868319761300863461740287728868912135516698036376811690330742889453670689732740642815418060946086383514758851632219167145169218370460488868012463501955859580085024162021807720364780372173177053902824099038609477297012613257155601324264718594014172102369125335345984830337277860529282430703437502146183479780458829266491180093891852966559673805873810669283629289985307952021709506887772518504586491126166894526335835562308192219229231411798292106576908523451141513319832651886432118322125559907494641993834071355704178298576863939041649513149705920329369510645670370579610537720668694934305893184498861316507356389211693489895596180355677204308138163220638650687192465360469308138996703626182741209108057329811049647210540003661847479295211918638280474490128382794704575729179949772582651577895814189643207068479454206335166616714161656340844683001252555041429284796898130580506359217118655010025065739355848143107731085219986126771798490801351732797834831511479872188879304838934819106919732797995000446534879673765668541474305009034286033368990090870583326380323941096896980041242590685598546635681332945337618435338074281173452610071181471277929989441784542733774478812348779190333068831821585124320097381491614319883329386370149636747399187251474532435781609270540987149585477017907275579428880319429571280683929302507660943012977494874523525606522778792529257223694066407227046074508542429563606468317974953450549970210842621950833541754864948089731222869169731493504497392261567704033340009038570503804314816253037288380931521296491969396170016421214036903370752869210651336721487010271931882469217100566357146160094145811214459039016658036996235680614425862966279165166551873533096686020897111354686332100135823691212937633230850340841510014460630361500628132074527420872813471215023855986296844594271024259254647678975328153896988527179244452697120235837545362883280424368942091558099557991662527437908252692468389289355978684327710167685651040436607032355048759345924125961400611295036269364891416046184253696826811986846630282713787150573874379842234941985945662731674311493996019856923991132166207626815818472392845316910634579186805455532260529208153688228512672776357291969647720540463969116514744366774816169310154576874551340342609765231288517790408561091735287935663673674742574499897212502953802919977460756885231813451903245625233071277971269480718821667005257488234586527874549356767140954407500799819362690801474428164229731704445752393102471283660859381392243670772095800758136676337018547392735158734327594824046669695062450462970917263420243882837006727999611277293486451684840350266849289795730843947408375635292511998947001126316558981616973791771707099934970896478798417477349927537248781889845170469673305313764325647553289684934123610253785305834966139843254337863681235451626530828704299808756107243281621451671551588249439144662487753310267301568809517651715415656128694005264001210116391207358748372721204265134522213732381742879435845989606159257998560115084934553385366529558706161971098057805295279229936669158538854269710194920167328107520620801677865985424404399367138734338713590132495543916026909016794409460514116046402293190767675232867876056138917230340178450564337100228202099227775160226962633796019171670243260097453300250963958378063849166737203737582052637549951775027542980425267297148182779539876677821497746516192425995291844454679947821470174560087266077590802688765991524089638056212786496324547398100759759253439813483056760316051761608256657301439705202515414430644158330755031674180348566795554279943235066308713298974757558963519511093170285712917935172319208603326042499875076734923528693009505673490070681754915991893887801188837947071651983131233203890571175758272504410818304573486290948359385816028965155863242593256859800122827497594040587293155694931208065304702386012549976354754031439011376373354307808957102156759976888768660226221674077904772776231918113940749319599527874984232477432294200300106113212162479241205976938061030292615768305404727254744217419560496850180837689989800988114305381525292743948361616017053662761424452528487402424284735470402645073875912704472260620067582544742258756194644597435636587455548557459755479107921213649986263718399065364298022960256154906010434774271621942267303896081798240499900921922682573128852556769889302374456879199254766478844932772450379499296965653762244266962417802189739817265223062234738222997735725622741705211348992566346839303529004675589745025091859193838585946665825886809775818839004678364125945025001652066829382713772799458812712596301754398175709744151719842133159578639083536414381846164619121764175407750012075295166269289721274585314760163541540568688689723804551333105464616778763425913637238116572333272411116687980215953667031199548502874776407604850682766351423074439706447449068513200794220862124046869700299092077342622049944846481050513829408625517374338369955123597397334193737888553285236117885670700374744929754164005378163749489794381975411655556242948932367736342797014852315214559922714512423662299146689621142495755612815931410558554862501431516055093552407840414481587047960627353451620699147934150169499141510764734565014539120286120560346455162841200395566243015478628808043954661371805621537669129025500196548287265700592658533265215752763729527543875455662108202926866851703576166226223865808674481041200761067750327163988927645275452735381296142813240665600345929333372743693761366234121184099076818492297666506120464612769062251763574799010221693522033960157565236134301698955627499878299863574874466661177042670379264982332677082533256468374069629348653274377275216344872479607897610788400268185996292880815508852883311883924429989506327192610655645788814335526395498756447382600728360413336193447758751813122151801205707561470296188299296012342819781279647687033219300678470837760257374515016080499777826611412724614180431960914259652862424445170856593577070807298989525364214681444203329283372933121786939096185942550591012160406225365225616079002406393390198185989634852722194834358540454983181204690035829519396798602988674965592444079655988206168294188209719029853306889541345943553905304833046012115622277302709194804022356840517784692267450461775588660355696740162518503215168979820129099796083147777415258590481537065329534630873181449017043925229818541672512233817998791159181456912287723577125956228449965425819049490324329151689895113530106938854598410039194348062204474596376536339853238703984626759045965034150696509219924079326477612035612256362336908361265743809392038561070036791012198018049771637026590490019811237437679192310088935204459800707138319205772819856527589378006096984883998583276847946138697518892638265090643203894423877000757041741296804599750751624000498979195443595279540122546703417460049985671111268230992621968552079941562172283305882557654396802270902755321185266195418069597083375238130201113347858211859550255482213994024034770105894923476908675012982320356095164763970048355891191575892445152823651017901798230562757486795383910614940555064043730619989340155743355247781114986275840157669432649825086993784883329065699516201641183791742465368309728612660027714568085084768563173427105040392693596360066827569273024786021284044013175856738698452421741746664352769038717967909715301103803316302327081188494626387251923708757945243985878632600431225767313259689556490399559318435706204623541121245205919185316791274030398018212418486339339850597902223171627214958246986628448713135172790335497299098907381051627765031491517068610041252329063823170677666755718867867118983688101215067774653729171802143949976588950335566977684141556148766216075156834171739421250520658337736847915051477927632817420943181424396975798269794074081325684839242552794950261634790143254803951310320385565452478373806675201841845266528156663814037343656377558694541926625938924587488545751050065297910267879811635769343530527922239737559729846381808409900426627633069364114525610136296022251248395762009402566472997700740528911011454128146222044906456687729639092852820465363219095544497194294565509526701771988307221978546059845573896141777248658494848562125007274560294917892009012166526293061976548080472286230304641662539358441690924507331225506890387295839751517512640942712886701370253353666397301955465176786480415028067248425688449715992141942304525499579446411875474546062230383418062900986102911191913512031271555968688748544441521435075919819782154114804812898152184137339683271255039693779658420194071037796320925596232663451547985474142368971208287225394078048495029121303152463490040544530510286429721843467709304054748525626777210784685037304745305709447631471475923720524226760451816347216031029297256975453463010862509433846389412119832093799012933190874164671853623723125943740000120486443142333037975538832343286140609249386927581975560492297507211019433933416077987906970688436139967558961982073894602107320620353461396215350905025848556567109998955824248454364098255707038872300153291091760898291266693834814143057834908375836398167045433541358612428684844344679196541413950623418591629346419454787815069272214291435416928897557691660789889311196496376071417967496351196561348887272165681422604242288596427282734788605141934472358317035592250094648878471715140517148248863836320763759635306265564704919327957338829521841824660914129004615007250019584527504049629518098012092219215670029583952639656254735228923809499709923613537609843926421555222346746790534607124020381100037678904110574077446683424284231704773973695704887218751999353076595165800771715393903798745732792403142507086480205538172880244257310535967815998362858438498682617871332182364255712245050458447891287056592708223803948281933152907154715491714294572001870860396012437000492427551055360830507005835184709308628658378899168981283628829876455600149097300286956404825004357293809070224059684904607820765184350223408298593663291778413337337319070550005339166272427408892617549988844464326410602488492119035502757529370770244219378864467068719129183846385433755967747574008187442148954228139390751305060905862831793816113827038690424988428341182368719382214179276749843128815735740529427082405290744762363669628298903653779135391696855934150686233839852143662468513839443725799333937520036067895222380657108465336441840089815721508480112983118373151652843019670095870383406413456533678171522888537357627598580996947675079695221323899305429572123944853108422059544476504941486027838426506022542250910076268462326373195717255772596793169823660096228525663508551464640017228773361573090409869658358481726741436199952815773429770303552500606927977711353229978201940362939939155776105180960459427497402021682690733963302471263936869024863956923839034392243805624702059954469851739833268167007568378384415266936042956846857249370076883613572482410773531413342651137930377955320925930506062817798227212788786127831033686295091359560662303436862812389312929400623306724906142107914091206577706882362317107597895578836805240534058848089948519677539969894951061089570132800890557805249150350106615529059272645361963008222020322747974953999285988573953291776215490212767387564132675801705166011964491199010372004097086830035493806557778613333676450642000114228389074850772246245205968740903344390638133908711464244903305277695896898608066853919125658851817382188196568671906492652846657412739074387236915142950047224353231051047263054989115950958503284166311511676928846554050335875691940997822839083735370116814150979556718870291220215015253705417985808494692734248106729003239205058978109024323284022206134298128882627380722419634056943355850401709826421990852258125111070969603090440431089511925674605575337906305221283649479418460860779307285971082906334097132853408124918811685621547803461665336801580901753086291927949113251234761283121263436839968258592092994350841968301040622029964187993375106736964856989425582868184863577831844650321393731097156289561235178938237222579904654605422594098069128063722059714951789811299720206373016189545071983248170781447781212849799438980822371747860437604743718111172157343568429137659397569131592644511822682358950407696718705965400265538132052370352016656684467332310872514818802606992133600170098071933094930661822052767317416165391433825749501812657333272688140294187644365670370762171419056985236840911089592447617549482817716756446423877309028266607989675208931046373994720508874573392477049085207657819788639836359964876116925423619581959161806303228343841976446663034582139515876111244088497917231670042459453825668299606077728628684732855929569027395399472319495000639734493262404317413885127840341395206243113851342244648621427966431546333017021384769785829783586860814567310590786349476881845077190951955559227570061326702630035505147065522462239209053066621122592093129054063327159429375812321787817075700231421103186612110832649910212818514080071602643784190057218261759744104924280933768539296889826291590832056794471587122469683296425119928637268933872641609309430074277845770817667661700909384683207853670317122197760482037072346086351700814868333178654635668648425440780494939119585931009944351867227305277694552633587550408109600303171447519961732489625112224862550204747462025355681398900379669304744439200163585749084316198906200642813690318915722946120996893633344197553884970807662826929355092095141278611229653017162806282454401064618383279425690393854668003427726658785737056919869410875723705202779719017326423380414679089868409663539051514327925176223547276522269373213665507507040494220225143519665253943768309366853213571143367857808250865158380653486991512443392980730267654319971181222129781618419714907540731184428959326477053629974209807093291378119308509572235874064864914108324198098995146287714543440036080959434609007342031805976760724388636683763474285821213254480541959019471904225180003995506786070987187745761812849901164517006660136315923158316628697592763922675865338566248583465295553810595986159156753772909330022000809328457045258185152020278089281909216678289486482803017941763123098769727566548262074000258753959343103991458101509855768839696193063534248012484384800131725680825701160355288906391729938080539125849065692800988014883021966979897749100264802843780691025525705758660300080469315859184474004220304719124996551352679732757167793763062680298792082799538343627948284245507631713891012210819014015003114469068457194919769410839002998421350991282589552162416622544945146978616798519372389530031180244890107434597527638594870823598207326539143757055006818000342236008770254354022267863370697425552344020429475066451299930096243794073408105596257779694857020476747673343695358099096462776687270180174718182495818993559615530027787760348211411054954366916138869299798678439766501943807214667556821766889741792922053614843740264007834850010411738924622531227831955307107063627832807265362264088726394110944211230804342248831826326521380883979091949408009179995702603416282246118285025397000048354836313421721120437131699148420382049124507054223898261557906884308497256402474767058115057944560434595099464755787216206180554898263766694934898457528382379715691272818808626070475608188729085705411699268267161092815406249837731642318263407578084571123541294524716631301505680740813130737953633348624900961827648381831853621443340066442828754136919673275165992715571295925129000037870026668989448136717847184160479147375905372683124110375719731712803359774256011686118812639175187946996948036591802156412467491100102281457641671332605065942219271391368206199391014387623517087753861957806345183796683905154291161827471719505506733913879044365889621890298820693172652302014748793829108577893496021935592625641708921401614592184496318258520567795667594101109816266400144718696125593346574990374077454406333832305271396330022179769244418086444853923855114222056716840377430282688132834182870949956920220737299832121504499230804526400842858335476454285735126759602394506322010951242089120907224191759649872418294808956354130608149886599436680278480510803765646835167013531744400620272336185682904002727651068532358303933628972825912533139929059295713151046118766726841068345799943175273353412833195362452742448894454682965569921097956848982330701643768825243421107140130734719381848934022185366049551533221078333833355407569114507947292427124065655420589616355080664297505040557774230455823462505476859739349038572168634230617220802868532126627169062963984496746805854140679681391615961047527913024135809316357411909118269109238055398002135307808713611522025026575843312682940982372046954143716018088251803424311239204435004306474343832995984121386557279984177553723693506634648848926044812379580756088759096716179749724437092907376019416350997451412916431377747234360253468895965000119365870547439551497721881739283967628876477506046937763217641581331799674694084478846461742498890539740818681722692521725130326352399835953225384416895509605140651513580685646036233516646892207503445592542702288246035437049677939161858470935245155750888601654155070518248654201091345062470999279094813840498379437835825778212403887414399600186605838021669537203948991856806749645473727505835970229298269464323116614229568503066807859958973746300585291540968551714343984489897510239054983827894767155189908661483351789052175745768095105842535695543709514405966802994103191458832506441029393670799127441364374072814018566983941058005002528624871972826602686286306619379203476565946705960073494309443871180960418430251218197466104778351933821548411023639019554940091280155486016235109492752918936238102952642556756587414696427582821188514380145204639748995363639438124416795727207945932729143906627994596522772584228188222513771551950447832224447931533459138923893726600862032311559500154708956426643087034770092945482604646079358988078407315770636569235066070525119831925098530622168009599492618975611908607498437279915889281090745431751657155498884434822018014909950118211551033414055018409506743574743738363556613550191353681592269264934672320349352772069439482204293034646988903275349500744544933237631351591145276593286011167011523857870897280003010511312717528162465489967247663332566516836238564221403176269053135226526253727183033651332154658097855685843322375302961419500770502892212069860637304740324911147679344263391643362694165093278326152124501582560433060760160463046116858826255807666748325358298480251067475231420973531837018884103471787138460116659145013651694770277753575416520062152513795775954479987856442761632386472579789437245315194171538743025989956710908597923951978657911977018136931811883066991362297140515621185643761642491097706555477264323734897236015935718897691058930890952175817627883806589991401177397762312559203590330176384270831937964003833105216567717670916084152431152751688146048500469226227122998845680254630436115378988997342923423462982938504470870576781783900839445762370451511087176271129992064372037813707176214449761116654912923086284294727023044449555126793588994356397093549985706131622308967892467177948838615487014104964316293436983089889802488931665623282453783536041852877083320481615916101632068931414953304193384517556085148311816133167253115084170775725530801562265690587747536325809298425972357363055893717457778725447095646923678706833936911395199286399330160888733796120319420143464230848794193206841773843843819449675995162109128179175462594193078223997846089451843911781993235938397226658795843104289831125246689412909891668144865450588585006871075128027305886272425191417733666769118693012899083118196363493165336607619924722160970078186991241873694810667789110522269401033340913938140418341017102330948226158920966212755295909706564302611125189387826254571229795602362659814919646520163686038862974880778429401330429729133439635339777737431965269351271994336518955582979347418521130622331621463195588613748763745068649410603793334662623680531811573726375835131407033418905385080897289584614486090784799581246116629859012316512053952844572593239441151512495940596975187949728818127873700767507652035600006020458568523452653012303995000356852918031196279393819493235715318936049574795170992632151047719454072825521119489730288387669611722298174301222731757646151223560569960026054539639838596695429629700125270788072429031370963886868214865036138161928283036763090676754910282847232935711829340429378798203369127050293247563980020266833925253430506190173907659713939941352005619603417498234553259194932461591412063870729584620605219126816410330245331585258858544775237876361716913261605384031003965138459364944396706276800983868323902309221628868680481944591066116494983095605570822707422582632936234348401681873438677443060859093343251666511121892828462352919411692931911811984413114692252130999364849918465355057200101817264680361565755685468756291557250576525100056074350955040818342690205086932335509168076585164539249149015428861355230283176813727557495829840988193349299989527033503180417428538119947412017402789262252336098342214947640320303729972007146212630790166356626996735632176256475859564177594598365037546570189336052344604824229465320223455884142188332426208847892805580590563430760031229907889526525988759297535869723531385032970304739329968231747006996304928596878998289682951149623075599012365526515335834909553746876162374316719087762792813863386199842436805951177612010578474286305311398983837548499814706824884023551233559357797895499862133707056960692419615369129433348441590158302898060862291603336071147943013163855324612578261025846519411397266906055299539338545033231906006779339796962045817724618522768293686181138843959098621132572296840411054892597969846487416845932699084783765303227149757691794607908561584260143163907909995796284943155470105517375804198244623833491158210463057736347370870291240207163149264319741171181975767214095008646931897195338535180562641083280959816697155652318275792807297319908237422909026043272233289492409585732029907809710351010833690677640913497453103640760959420591542244387934558688606534337918181715583655382344113090885635764232751566638877726011069527138246001709326316634177331614948680450055134860577050507623268576682344931100165137702515559688871292137404126823784077525663898259509816765433945290174033196861659913772045168708716152231644064671183663498204006483945051910818292522463271014206479383910498791771165089875383985773252425513028998169423529792739647729209179869021814065896134281291705547207058028510165682864057063090072690559652932316661347377499465233161269686273166561958123484020093344789344834788231502522422284070139745169641106614337556652159572199263817285599604358770129944481163939977385021559357206601450234099062207233018112861175525054835119083994550267804902437027731724371583441670136602093164289842257187884204331186403295488666992938196605305514948020016465979036411124365748846600878484364395325385627403452675092600290683567051714997391572192377401283580434595070773903259628207531446081154578417383512779351820847336241842629033082042142540646324639777180838636877657284918130084216858071182771866371329154655117120379469059423496959984714788675460406301020120192352911303518045712219531491112263215529442335699240440378194148558485749832482145785592170156300831737527026917205577105747574579042440881431967611926641628676220957826377748478047411580802495890801211832113346568404102896703407430870723219921077214835623198657262075132612016764401540136552128082739301169986056379925025985967268656203034363050825084285158956028708289520759007255121652774989036068171279233770871658043344920228159288876723462542395702765232213366049629687253203264661474787829390862773158039626372863591947653568234471579563699775724585337576907826592042906436412899509181661505879481796995688290381990332027621928556963487495804982063306987427025568653385543525217640531575853703411541772116005855425286307843366908988828121141804688081237842681393874266937595589219401435103016195711132676218316241647312549191206602619716709330474258342856216821028716410475201264621806934042754505063510492984342774524384144995497541568965515993995723843287807842406160608166018362135999237289556851057864066571698238344347954410463612180689148860507741207488477366436838102850973048149016303315787025386873032045471844975168705353584724510222842586264577947546849321495149379673874632854494796840782724711429160536529444189577563468518626567162625706691625015853337844271923630723111853386262255832742726502244138150154517309476891845643499167857938405210158426568595366759365745593329401487868317783260472488669498314929585256282170539367485536831000328928020734566264800356777086379102173158420914781694935602905595540287442066542148897378223691159060945812997896688982466371098456560790701101669724657943532375109319182356820814032913093552846654547947243953283973128062753532457973309770301272322353035467024069711817326399502218706360152386942395275942834379484979257513192073667939728204216339709529398624194194976251269754456837808680915986487036002277142865088629884121873568405417535755069480950980027637481823245308579594939872941872600866988933527497343364137813724605126556481542102291599972238850398662530285867768108845275123172331318702562401003495579847403867099462635278900793965547656111757028928662475585302458339639454663071403496891159914483522500720304880939753028948677551478506669159446594801321655751916616383968897454047654876021496930182106363319741391842399034812052765884108606528306237758872004808150616437621381296419052307174194540640988986231523333760954900241782280701723008968981084394753839922676413321715187053410328107127587242000997072935722800611991952800576789159600390765435063162181681248760409444561754200929910238826228314438346992506515861954326235345905174871749784247934724780389014406152390645977678417891441375404014147101589637295556406893692060783110916829779368671893886872488910169825999454224976549477186663677782175352198740428173164246552718138245784227776347102151233716698523689562249664325353199653027883617761863556204014973561458541300068847317785802294722583790980296708380223864302583407513454019529446666771671253276615641399036726940409033323982781345213430110776385700629162158852492436301103169347447780539471952878271003363208782775490022947970978169867264924991651882588520737579631346467444453078236226531743321788882525374261653295584086535381568400798407909678306598449440861920629981109370807334820088435457745335960492197532765245509018442082390699746541014988280244760377206487357377833621025753020351310015775169667724144874913265449220491739300765465442661421546499344041150672607434986133071698514700825800808070825155757837511197608989192008884451057709788115998068331517415443017107256667413309797282282188316498057192083522556708654450056445051587555990287456784053552715462629484891899757814934122482230916058454565187416479474735944357200278706132428478641509886425858813257494812791024343734035111238247763536645993981696726996223769673377421655379250117096836266076286976642899016578312190866291536702745648949860025675467881472883918325755640269421329865273152492161410308171268250135558524512139456772397375664128047312214342591649533691679187119477195668922665910869043984580961711531898250549265206560252914101477977956617842642697489659609210955415452420854216678485564033011454488334368772128881191265752986185790691547761955567010069506592776248902235493633008172301471448916509722136886181343463427956042949995720846659329052710158992367119575063012778060744785998988975816946097636757731813561449831069800477477259751588419119361340832273632812667753504659796279876861815481136089666581141565745276288581275952504858191418225415058429672997454744454911600112697380297462151757382117040150104630696424545696167602847744229244222870552338577066406836026932395249985767961347453700957557395374858491082349818513803984467333595867119290949462926825473618282598205286729402065827837924945839984552582828746771495212073713346707213742158246801300909871620036982715170335396652918910900423548239001856842246616329781365735092321303816641313550980905745434325918384331517976053150478695619341408190018385444707886330449293293427812488380215324068188326541610757026142641197251716751504115560329899954230770527227666260178179533812559807603412496655462550935929326025879768165138906127231581603325779554737990636006179146241294220920960331564237669755292650548086315872439460794208029064343571883761393166099767998173745701287208222270554088094627102575045711904530540293655473928329620140395289062759078652202600155098183328687423192967909980191983442746981018201341929285088077100116225648499871727288036412138390909290794005839007912473833621680089665068807050753489585412628996882831192220914292723234399525837650215127040529134862332518431581284102448118702959092639544192227589801464260390211185088801767594099617486715106127349438216345443233409668778023104041424177486497719512446247280224393372757514355624550505834870995879919611663008516823456448407113275794330429255689262091178523488376414156689708909204511689928515464562815150284160196081571133592708706483451945654905377598360641635429695401094422717370212563774800236817087468748608474391598828108184087420795701482499889795086979255506752924533012110411168480550708707461515434535161659773805146776392956398631140195614944929950091885582248818203608053022924009812086673996300369397931429332903789569949798736337894408053216476899970676882189318210393327995651026582893849526938608663409219085892076137256558850564621390987418212248200713782939872976987386198793771030274164911337603939674042861787221821446682011055071044233870554204089415712879050165982378179612733163328795772976714960027247659400910392137832179989558141823743738085765594505660287672974702856996753895785845746165839881317147249145620735046979932913361697286352601468931385912497731489621031622492191627461922900731315405369215540259599472888131382139165593121586536352823529683134801429860078565337569855017580753337694823490159092927410531958020508820431960860740943885313953811018113562796063886080718182468363389562757299189044281115950228309224020528203818046011148851256892941627622031166412297346640689793676787439508656893326631074404595007711620711884321283213625569003368905848432969244453695401436821121310005635077675245503296513245359879016469068567177282637044493788563343521654697546788070786048257614784660633181667094330687389539967910197803503660179478876922724980084357768402528685284203351344433644216695345982755988713562770766441025934486197912450276099358534814154476503995132942637690717718418356913065164772150462982898334160463059631176400545844676807601019191572466448777885825939541323817135375946558255290608853762503171239148591275111828284529967108219911274619467711576009723149457775900164966273638343055784346017189757946559714052516298635796206338968729529501707015100919317318384461374301038733019147218607341171246529922536484400800828553478667454454257716925154130607744716600536500323864585196392562412832053667417266629371360634583157359259463729723285369979521236333216795395955620845220518157139564669991188033002695724551271742535906308266071375111084109163717740272726363451433244758947230868774262716977636162410431020494137488291405652634182243118044852933721021319123782401250336480206571092447002353048291586408151831144956260997413169695804672493451782006076612234507865799706547604380626627052908230690338790659920513109779109493367588618927395586694523357198680813077833076023524537439055700295411145023461204176972362941910222171992931148981869251652532785354667745333526312339976939639434647312749121027269414168770673115596255933815295609314240143160256401413835303448538629060996153281145193271419525419853188776321706076688844003059096732565386105546405154780872928698924450139144879069821410049169260103329779602109100437901653424394896552278182275272861190810590573990583517628844292692087369844680775549840185701923076934405558867202877778361096977078648719415117384787166896740233640180175219626786222836063506036134881203256489464713122856606165447191978655384277387994005671988318092831072791816435415347737139421974323415550173222813462584778822501634284261311791626747830828097437943170528695945776192149678228257148420986508583975835746893489320984477485635695358192316211195904851039840557100975213443984830358185801090544971443072283638073471927359150320851198923571321606349398416047894285477859636204872176601075274565947983273031840949608227325660519144764089200397434812078542161092501970159418226535958430439477192579300554676827532923165556194260479115733457842472864067028237795365390432831650827695179007608549306974135904756624761466056049166725000795059523724895100812484003119861149818489920279607808875503819817065838626497551478510267175073054193666803184034543323928206114810110420333478028599264947688786412528010334763999717517206896745227299066124716346305379388573875253717501584125657462737171169699321631200366697374018331232699550844005218812519516004883860488410946081383215371224569067914900078499124196274438047371337920009124248831099807373922794127724235777528688540716048072871916225606225527869763032647867749214427887068934887296240927157256570110377245320136888906542757840179214058324999210235190465307818281223860219583636936901213273666555633735744023927699401334822732764040685847972523495966993570233717427770447819309867574232733581855121945982482589978351539293142467697794035894686573514406258246052940849705135282476144287421140946730037273996696630607871459930847551480574050593582589847920219996204600998052286393172953834517150436261020045065450639310881823387587349713615524098834036849516562042507124785554836289880609726967529325158521705463059333047292001673619542281186733808130863238305978028258595095700021458017286460989147175988014451517411991561389469657778447793632282338655801916321900181706748749526154480535000158652195334178287513056407163018861750394303468362733939584310778406633864890222889136263159055072043823158589915182899082453625847927727949832732674632654258580578333251371832772041124670409535840000464524615876823031745153645669778564237307865513814886184089653773081446173749196591705887534251394449149420579170830922177785685572584810977147829527227305931299972936455963719247506043144029603170512452660669836454481323858780072648029652440292049647501344025616040222543854985673628823996983640203144984328264379562237547373714790521343859310353472756186223992537461335741733928428374577322678433560141560596263550206274345213802374922109397952644155926028451699411677111060168071546699623387830090068224072962330498380015127975828561101039294734910914201601612062439107595099129641542534647812146612641082270702850432755086360666947841561905315264080911697186800197937973539758706070090902346916090653009195244199126000324519286715490552143241771281846473303213057272977835850812866390473717738612084549572106737315417770767077851809503118401394111670367783915289120546108254180874268644292157286654186681705618927602639839371119957359592133254458071893836588026564339302755030554057827642612657768665111504867108126566413164489706210066052351870966383686997388926368928923641171565462224435059607091897439200973037305833948254890011381948084350561723965720396351961088945159561786334778463839541373781869749659406309412889991790608385863629923024764255367200414263040288970022597051705823973311486644551524921315284832141416772032745759096286382629844576553363330685146262783803797823080514426810770038363776930509902327193160388979434263938300410426415158604904014857202565063493331843286167871358940276093861037403605777455797745585913445732226252019515951076401947323672004038487365017325353873138437523860494405233892316266442585094475645851722016546594745238980359562799596039234912832003172704767673170498471143710271724496837048616375239210652704778477515790000209829920907282759088158662786556296875798564008628008144200823597710266104994230578265605700134049264449378968385158803686138991050864541329597473508821284099195642336584950022284086513402782007374266940427980919815680702555643152028457585763002965737587182790159969888784542589847054884087230829649103058602307672675380741412518901700465652440538673530821797507839627643043975999410191695241351201250989209680212595189998747690975868126499133527723882126645707413134666598671317842832429722240092136667992662768613866835897859128017696998292279205743286471307539136185055948404408388005571148390389751942174118794418377585161052619341090655238931683150362964720548206950570005246343850216411026367530310257502328193570067996937916880120216376084186435717111224647233505130416625321910526388879301369143251745314237130318661547236258336409188075416904051799556113678477209299286047657301427194163781481200889875530481493214453591524577771721171441825839618234790607981487205582601964801914710081528213150575859344258834099721215232895862383527617994175220017596485851451118721786266961861835263035841495746740059483412661569421642538605046498270390640823005610736463513284575508255116557950188147571770915942534997324688172908536752829772758915447641604183776215973860520605600939971372121313393286626866526766798973448725232510401001416098334963666861378586449950970675973410720324459175856884321258778537893981432562415503995587460490516749156626655458396795568214420088226679599520657404185478859754861461833832065316638468356729404005801726154510181845531152738784809657372680787482625377871923775732103215709416846670736080668470938289266500543360717491258266913743965338200902257153220102514828858230490766647937654208514962519088286219988539774208047378580924725339872093865892032336124928483150629045199193955697597621180714369389656631696948916945913348103705886685846960188983171302984026613823479285066499547709734716443945366473519497836823785633639070923161670817769928104865401020855980297728813272005378724720721622690298305283816620633168313955354457052837319181233706788844319237372507392892136430288007687965078349667367072768962696525778739674943073961156695013993846706240719752231230116716158138718402621319009920690353566557387427172143089646166823123970417405584612630540710111582722225216306521677672207789605670680577743760023616826797671640297631688102740249741423347841823850908486294528352376962755213003319304745195281036603849043153341608847741584236034309052455662604681835508749086261234346422698262432729268063070448907006613528628278355867588140739798700049564271822998636352265434006829685652124731566980305583351700320311698870185596656856239696354544995559220645094896264446121824314996609150149753377290874539102754008588460390696205126411964366555376471243830275118847921394339698087606657306297290068694518718141854879045836497762211503953200453600219619521303767135471483064654112934228139337421112758784028593852592468873801315604744323388541025030000830954794748453441589198496042408576087246120091616552425779027695321108448243090538279907433496902015162393210278532604094959865036879401044084514971770110030864275918489789507199469652057872585458309897415260525951430192100221185241040473317063314452343188517199054687851033577051821785409013745081443075471636067185732590480049024467459471246216534279355605256991040316679324362385535134076734282769148973463669770739187986074068354226063529738440675282405113815988306453497421921084729905640413863997950939894471187602298977040541991724186624202090260219246064307792795126009478160264946596416615505414268739671610460057089295773466824461979131018237553921480317376388624384670113643056082813282528440544242556945114322645245080696300361212132789448802651071820251193378950279732458698383472706188387502080402650042516237139278411119622360402023299970088770602283218452053635957820371092307169773039404307177033275696985016010755263048047853156308998582268911278204381003913254090699134706591730733613121743651205210010228950492345842941914406412322381182366090474343855605641847627751370131791203112479029763609068574330612669553055175704579830862979244934525501275644217790620989699080880988204276009894091274724247853837004933477133568301005343064164981947395766433413983669170741075512659715032824693086453056729242497606393338789276636860179391766917471171387643278579535958579290242843241369445989315033562340109497391767938974786273686034665908979259796785704452904384788423272033001228754596121283933010775975123629892867959513414570744361399426414596143590795604503544327886021338686075797806500908149397103491276266476115808536395443420016405110191996358685703273019971516817804686773914108027475881837188102494952502531240491489233446219607632684406827947190491576006105107203311269701855823779216302561933614150380251843052570742407918992590085640782349036942256621749123733660821715995572143804897077041497935742250286844076107760937786890252350652668349517016989263550521102383340164205359173690496586359471641604996706138252823297189270661040456908161934438990220650214894390524813289844299557273542924845676291768662444697558446912845262966369489949779921934744597688571798901946810953304762304750088193843423669839605911226676321616550705745373675199556253781870182714019169917758081872950682781928106670220412217921260821192142987830861483707526708167435591310641918534663132904290689871207522817455909381088319431989385855413522698235493457855974161337915179148193929041089459410071180826527587528397922720505791026070086811401536404814666584830336588391162380574691343167065008829751915473900830556759465537218620423096343821486643768759160880001537188044818004878182486326102871981986802841555108957729919505068359302737358474943848669261155857330955577243557205192139523547367310732797716683574279273575413752641133184588082273268737192562960772528299373822031391564961243388665916888523224334635776832970474625425921331929095943826674102150601620808364473317554417113675559219809750106839058482894891226693830634916535432872332278653231029447573885622398248475567443966264048060451318707040664940810604536030975186709462481173066499256028560260231952938384784328120488462325390716315665446184179193250705469337599530834826503514516664554519228791445520364401020955081921167451397979688066759082483084890861155067941622172575662185328530530821597138704174790460335654567324321726817725264543851182688276355563804107564011979774755800377175346985556915943704124419531601023165693466060212031404857203659689528436833639103333668105725209565166347243782083214481167031608718336276931797685105501049133312982803339176115380517742473821067932862360017491137663335418689289406099868970237862196095388038672380963651953302455088663962234988222694355258085812923643310661086832522873167997942157563008042587044849386933209997906945078653642604195483430186497411125757481334492143357477414996117948659147806341864426666088840996190813058022686055113374456593990159161688131569498044553169892936234399901975239126524087188250380695180133644709115738693653069673291129374137284920580326672313972038301307755150148757174150944167051644726982720493795873997776494909134053183153199334858779323962701496966933381686616848417013804512048896925194861864753695523839452387578622205544776514965334091087849674763088086702932670140549874166204385225402555221033711495658287865362146826553080751815091826492863414449160331205125210177253909669892712891592679464106836865499027101845987155085629625501108577167729868161830459360655841060674951664364140376623406365192519889831910787601506811771925640712417026937878467054384897541416892918225269334639040713412474224622202162997009780135324879441488844474470734275673933555462037195745671339975661359137796153678613045790003735638120321145811640593892685431427482535658623064017290842453035506170172368653918348600705369595462306713282877660616072320731717575717604015770420138493832538291738540628275719138639029962628708532720506451650201181210701278871033558706301143304858517516789873772335474966607129552268239709424390981374107784571342481195461185513625958034973151899378739253493374036382701663442761560991802465371998124866124472177108225270764128863519631525530493378340223865018292866385238423125856889081522448596186419410341064480437887451497364966370941278974774838693146888491196060729854033416566847144617076607233007250302188181154695670072537982540389790413073461425898510778266163675858037833872258941264090554238312386213994580954081293192643711980836948580580427667161486951034076611794033886623158120042721350886621830832220657848180529965530376572032122906763203854767380442026960031247833572423693688572870876762515263068053376391248416484609326575084667838120966278738707441391487657390629665516948331642900396411117495080755697060172602010721886102300895301414158046176523914439212730020102865518597719737103621123509080461892648829889621200413270861335425866666538029143491373670705819683300251548951382504312595453507727828068985114176895379654475052807689057200494349006788217289498954791064169540339854895395204680027191564860435905644722899705816874785178198911040426616969050953495124251220776304686762142348889077510149752380942631606625728369290603816589840366587977713060014804389405007087279671826198839465087889559374848801455551405463235103962264362997272063745791817570410054370048386145276507657719012194237558487120613232682608259527036963106851871894783647661893811200903221483462246381812217714326365233984335499729202071455800444850580822306027674571157820699658449741200142667063597722068952999090621825929723518480326967189828917190990862922556718454735184967623656614126114752184965306230673242532194500167147135739015746857397715723541067099101439378910148384474865864732081523834453067626360841091748597970665381185561952085743284440531515750318710261433972972243131207953580375323553876340649100578448422645840005194254927419481330664892431344827560913210480026704472329787772628651086033458623474172850131915740399527011450122449675982769645731209447196848865589475424826729613200335290375364829072568871975883604363774375166270650273054184042337588401303061122515751829283789867372133907696999153092794067272283765210144258757171238782224926947671784384486280257221580926137643165613053971620949510398318191654531286441015200397561396410705334321630094523595111944753882547463527788649470733531622336956155926878894284612477847553135840219629831218713406799150396967827930982599422524783216670566702749083427853675881953410249581890869686529319877061601538221144657900307583602000008280080661729240646286247516591083921380580847118984338954025599760204597831564308630025259654605724662081435312252748070835086307874791884275202479309095242529803593786438789846582779371246432677697063840051263480321452012103284496708572074094422598684462634437838550817276732670902822425458733791347880129663294407282294072745663121152735032103759646050352758699554894855084567651944666817572663064368967275091327639856412736027850553136091204694461080223608373202053743925403547346182520374240221170345536264081126765607752977362803016271046745891667371033656616682592622392026218941017352740210953950014122681490876093755462889063720825401375038103327651240527574138226235173917282135820658764076905005055963232767196073490639839792540728703370475967206780742910615392122109103972389332308090351520168092565241650935601513041323510173909260640069800894650236690595825709639688271027988020268450874626645552184963575216172670268430303614752946008993224890118471632115930388619161425638082868040206682579037279312699916640270696418125258667263899538468078941720474295681113072121519510966913612800682466148645784700718348129863282753748773670296581500164863256619862131389213358017163035717125284006092173938792564705627420374826256484958208538929795663797036147390722770995907992179930810825443225608350077721661604665884244427265344611360045965398020837149100683821532126929180938038739412003506992389037971595644133117228534177125443593817822906553278789903746095789070388955483890248975303388364599281617453950064947997212331290097978958094024399537328129490354427538031613673166517712009019727559219031925669560378831709205694785982686196521957881593328311543666865049866947568329771507428568019157209231353704257573768288992432707422651287085837424344598074509331129941619025023159728236538946832371827195127434089299597014494660850020686758154434993725481623735320194121198073948230111193831672873876488490120194209348609998078114329050443332659949405893729952521723828485189966911958127688616524751407359694959280456182947512437172764039032989611943545801944199755247883196483349526087808040542838816913603068657207894849173327807909849889564895245680993474531714832899419998242049620343607106978499801985781617619606264879452492800577052825073492015291579205690089584696630710873583149040836749087327331376792752853497363953620734059696819440794111429689970760861428187201403266501736875085130242362319487455523313523822197410497345307117326031090617936130452854821836085266158902392039527856180299211348153637101794351510493743734347794607779001119075300382088827550866542127589815980377618769182032529045734269173270889989174701109395874535634004110899357412432770159729047427003226659756947739708551270958246782308432178509437354658549911320567827785727873816695139666735453692685806009938235352567966724622492825573005377428330561928616573929011209349312451597145100544016511492853908509325230902429561513945043699875465390153006886853121918154680143891214670247808759222770399298407344089559582201511923325046335752999081717309766990748134001792465035050562608288715430687367730602841195604952933315408925568768179283227058791009598062476701169028827627457623726937498410621666614970254317400813958656065282044295957428448695761960760095432299485538574521686225558854143802908014481611262015765726824956102631945985756928760819245705338994970137776538228515523531783883985854448897717296491795470821692924499946117075768138995322098949987450857328733085555952740747430275648573491874887347909187581221158849584483148769021736353487745323420307041749951724955361165131100401581685528477610379606657579054208117180188868634822156330988551621052130658340624442655697697711639341832268091568079265414647252263986912841080425495829725810827139567950955549194766399942280820835780593615851805355259898495658273196784889996814809920919532221013022516592922730392792775400523875105249963921095153938947179248521019286463316757948162228319602067761778352975988059225381461661919321811060451382382744439633395260439187273067008151643550277166425344047260383776301781417891544129388159617648739969750636642025254854644478370526350909784214013504355320339340141425761737928223220521312834791343672046549070290629474459480852070524961607905888238157559277396649156354999080250275179138092206068205074139018688569845128960751342176766997542206831445390359659145226142071355407675961277975936661836300200030925961385997738425269982074186279781311986460722370191709225282059608368702096316013234944647369676213004352352297392827954047389114987846955181932365212440718634195146437913648886824628816162367124570037198304945228664214657692928127016562074637595266987665849733396763467592191987495359918013195004294220311497648664911916413300881371613189329307685727676706225465161304741450093394199741019126590860977950673607513179433146058768341629175268751570990938669581858757698572635051525855664874545889100382809502341680301495618715626123588193716922135676174088158444326479178723238029600843062798464827129037651524809318179206709503627717688094792107739464401766643586831308970373564742980867995276054699537684145835969205889178067631633094109573222636422791360416860869343345944486589420678189457396530807258196169072026360779448813403837586307819392145550461521948136048660708963060428405831610025108006852659289205390448618138842025431722181276462373453985581126784830896773831284496880240486070277025185328085608689459024746938706287854560463322076908745595841645694251449091568112142426425563919442759303945623144310750770587298218127552915671338349773449512596831427181085320367574834869933096386230321705459326787170855096096408961917925383779925802260628964491826127319975533810839869759290503435547361810675881505412104664060791664295110822558701692351173855605979843414746639317805030947915619314867004690636536930341482491306704607548147679222849334429426090611641258471414266135255950573707932623758925086878813261271056838481685601954930577041097173025458065172533406018873820793714294738820272211971304948634976205653443077625690533274933493888911492405482338575913381181007064294004394559015067569341628831031897041028479189184304220718462121916674073934022953362745948400428622010919530410670715388693590507226782497658608101939345601645543801311423780595516960025647950101956611795066140746648683480374764034530851092974584281764641013062475142483296376709720668106042309608749349268951195697512208289418631958140305027767021467961155702886962159030027222192452469973706064420401878855540483190347408358951863878357888138067489294017201407695948801106220537750517069471151925608625265701536996644337597502935148745282365811878467464832054669196696389913532939765850987682794787321615775437298578122839506753482057190461023749574491425117229812243211607016508178118823003170582593958790580182904767759894602208712202661151573193612485011914502917457926233499692254865739010354078721439010129349284940376938105746264334441356579181285808071489038594999453696086806566975401299931208594216666928008701053800217957704290494561177872477889249383521191548531099383586992621808999374531683306823187639262925435287506184847489203465887707769775773222059241641806808662473434451392091733516442506846931635303084983930119167849295825974445019156074721845041851867457847915746573073607643869167047251681202733417431689135423708908849119605010822440616929674087070854698087871022564003912175053969990598814327000587283997276611287186689683878860247618275815363717819950439358914425449489516009396791025912928391529922059385147876757883924203786289221841335529654770356824304691971373333122385394983793510308840174071529193229037096639180313791704932001062343163297070747067257625370724517472918602516935950168097833487198046795118983536735379549048013422971743451451559470866462152655321983181567176758022451369742677458843042945016834441163404103132169570991092564722799300841823211102419720266329663346728623747248588683934999998043415823550053971047977703447312074611459314697456230192105801055576639714333906262086530333909733891456022678783010346864777918748154265765470177053698234189656221128853336445485999772466287430552242573853076022806927652654035772836736357989849961345194048799084872935892764963345782943062082783953677022048451259592037362273122153105320954365597962949899183485833670885886496673307789060139941941971724878821831290261084451583497206138957821401005317065483000800675543732429698323925237308136563071383821363754019087364572755785089909514862864953002020386092261342616213608570645539028286634964852439744320260756003654124196448748467753710244787138114582475305376884484822567492479165268530560095794574470110356676711616393551172650839539505410644444005663308376272688844691925798885549686654783285949706164334228506967785945786402060077753614627670373816512778195062793972188914991515589616172404996019881986384505152130805254362693782900930328168770299632517113197989326115163555173336725284642920418821570348137624185339459749558506724797764463595429384205412634215062236804196605249476624759426752203217142982810698981888982347314987169703676211105442202054803779066661118722676990979347686411138658380891175787854501418939312868796440268697071333899920227481037255614647522545413370345027622106300400781935038415141105332619259227468098522920041437022580929166125201931652429325197834588868499949859942349572092497014511642694487299265428753083686386944865751163961712580851397632335244922996346926311999925390877397698326244254246124864682207213460277312069992049941667391583652979354628847899093367958474501452778358707079421511572997176286195820680513391148709313282077436256703948123033748179768095863649883462176426065024704709308293467395739941813977865398321164859210856577789773449754996502196237546689753924461523845961692463816612521849629435365215774445172487748642086429132920481855960521007185459945712807816985251223868591021268500047969799598844776671765868335774528322481322338503965753334247173554944699650402508499199459716237033257906289723314502795845008374224558712879325001776108374075048964179988258258518180994416771279576421280914238725989727246983759299372161121261190678814176701211276510969769562505116642409254207296028812486657661108995167416941980683237649576089647113350695584149305371969652848494036482892491481984956412264684939100015856943592490786549358651769091736467338712523257571548237752414397149598553223267080001244437636231967562047646542654732913473802846459728660888922938799380091300115395482367295264487395485666477872027033340046352716848587070879792125188469969361315766298732483683254851133267710769654459043535568664986297370848866279647495646983472131164575649972412823513744727606439870066578537912136112791995806240668141709776043431972067177277699903199953545059532763613910686956630518687892943727553700940309720695059246914943625342054862173620869361956180328442334669437514942576840020154901071874938269620740674731544807550224495569227195783202142322908384334551581944656124314533276157700467137705041614761018502138476262564228272688522484255392254439424334354513206965045459980133240755138026773589041235299392510508842003880239867305033208695508235866362486229932373150899725774802061953950858583236417585253740735104602661106023984309997003416119577034340164567255607190832677456320300663319415398264814101300376191679254180676495182667154359937220806569405501931732850735109751907401656505539968748515242523613602738529472888290506540691921659982528791337741123059328482570369847639899440183710772120006556367034486779129865619843199981151263882106113801961629356646112869566273817332918478007857790663857193599410296405747688794880740596542185265654686484778868760962018216679646597150048186339217121463739320273427056077255720645032604535691984828074261711209855805856974172334963061582846107481877883266281440981996057468567666145727179875251122816364646523450937680625874198196796994973422945647214255063967156955229605087331185482126968465192335668789032758224753045227769534107351250204120540318000983063373733752107123596020506139374935329081398617358306783930217907705784842667589716386617422412872398856472571664536314375791067483352380012646405884687985325767520428566100863958895356872446039769381137510184448230474159051361262776313976765024570811147353632530459199357328921359645581767557671975884956605228294911942948252595229807012186074698523703377415338572046119005113257975447280102081236689184770281624916194320308716042011691828321862595452074227021028703722269790204589823866562223703108362653663393756905761693456465369181062022803657196962715520129364475879766266669899796400698516341724848098448597229750987903875078757548162908427688225879991714771728376845073648355507388569206019850016102465828377607824534778133569623231907562979672736674236545704593325261535074951784471089980981836511429850023266555912659750003668180227038908512686450502080890935430421481140309926555639644223659701318834836126870234674352282760287357701357062145848873751308990672430266582155537393760983538509472029248233783242164215938926004625068486496217813060724372443065424616045921644555274290720682141085115403816050322351284210820325631876926254587285933285093077001399097719601496702358764875197293392248301677341434864169175439125964583166160713076685757534526785111373272331626852575390997941078608919855442913487903411920921653322915072873668689754677196902599699870173913646312185525633676179860846926402766504774575133469264000875168118305260740936981851020239067836833282496643887302353604205125030062352077166860502872031281746553890890427445737303959492849111242004673205790770379643918628857372992171650877319731078538544705662042057593097919290856619982219102792415769127620467154388925854509485263255867727567895045874671675319186955139889408164197405455753478511635418288546377886308650790591006268300936934553919261919648907988575153027354254095358682194547822806474532085850617285241860548530164405502403940352477438714066762161848338735280155511275578137600678126428767122385155191693669993987396982226259377029852608869814255498240412148755870772736426219766781455302149708711114274357177906643512325030759570297196839181914119007679951108569588312587579251776982257582579505194005155764514397288488610826443210457176691547278122294274036540207732590590347092270058114522973164537524625802498580491949289852538284260236433763095284524807069846502349417668565598045339713190008039825307187338781486408267891024386665855585489065384920919113373983423963565770727791645786240354772245634657073286485631421399893490742303412903215715871136147007985773404252960491540717568032340561981433510796743276223633842250708370223840653734858224976756908749060819560228837097895608761719322286891175647614871647865994281424440874540423906736299619242369308769196387087461675199796553726169603791935843770965528484276566690731082366484613811610643742634905074902956303815566063871465698181456774831493889236688846649467552796310493098115027591662708152316663199565950636463923164764583785423202381466284881123514700488038737821781165951870356120235594259347390200155689105059349698178393578060493305682736278944086125353029971284939660683555908399336450943840232769949804192864218221719962769488873907924582473402339941296992641242642290395886958768542784259124345365671489598022922019116294305019072477331171974249242591347092378507295568161507429121120769124292368884200747789977102308166072724920899712944968321249046164181081763528078099962818619095746335837418769581683040467863683112725140474224887911001399576268870991041021844651552700696414348623756073707645083106391822124638862248513915863079162336559831306483132349978620770013473746927846482584996768265084080825559917749606447487511750140197348868561977959763322095801520671438400831351626153353009021797510942159409169994454408130510890556946170217423947035579169155367877786616641644536963817104996579212524090639935003102413100310703922738204313811270344933718714160426703951006345317613961849516282941203315764787854283392120407441184275563993999389857895434737382130985747555285116091990745537757578208124440825276650467397038053145077217710740318450052647272959406753817959725162387277284348835758399918473047173659655401126502355737353519254493052550044267435035865704984338138462532744083874004275826974408878132790195132098187660161354151256798077266972393679461649889963634083704640465623276615830335759071500358688235271681307587061845306944158021659091726235843963931367189821857265221705144861352405658940026180982609344928536517486769066173261705162900215352812638097703693944970148649113754273314761667554277860256010094777481063380558610835243049402064918904733656509720005483549543573467073719819880253702058355129236585159383181051710002576167613994670461833135471114866790655450763571880580411730201695118898446045868291364737927179060667789856097754820145352641095409692436984393792362175704853026762157551843021170375218278158873161934131428732192841207105225729488730819068058536505926348389631260899729160690274563014954635193640201717914597771428038763844606720792958509135604264587930570356693187877259843955240893623572083395931296400505712890040775820709950319979347969973511267904857889193445072171838469142318611034770858214785531929403539894280594566107570657492619770250261295461702670194336173611313956741412821800742519555611454436817731090492515135962011237505194719625056705908045529669700447186026963775751723411685336475515357585896005441215356996631987179756748937014388091670970982723704780187186735000447973047857235216343127420563882312412370328671760990561851302827319918207421502649719998004115411608370465160208090335905757342212674565794424053637019623537558730995719325693135643654220769607373089632435993507560579288751473327009201912864968332045454505190657493381301230800603020152184900958298592851501726148774821192570131916154826393525045026849569195880602624703278698454978198308832333347755066046378459717683117452671390207921716922343078650861495216669714213676185110830155536696071151089380464885564628488682186611869910778868414950323408128797597621948756599348372850225510287263233873450845481979787384528513221735455915749574681476853587640366871978388411527868209285104030012939232141522232600669861367307407213819323712635986467255161778101778728940806489264268063958030929060812192860906180523299315980503676920328405376424465995160767541721861698889141541509645328794530357872700326353428063526729514487235810740645134032595774990271383063435908247917701130509284370106882254527809049393658948934444291934465537320634444516807451507065352346560759646504913629567223028145825861669083664594367608732862525907525057695678749298692996565669047592613344487856352080667592196654428080672482261659071985478781947399750499028335267008319720489598073816313897348652712149651386195353121255000192677966929922721283862873834324376929944278933265651332766908361481930234339289836196334590547612671707475515763431692589382341999602786836654636177684549406941218167933040238733428126954007507493085451590648845369313968782953284434945552183651025231821847977156978549102819330035682274774291147449065976138908700048412322747153154970688863251493244483175239522891434229910206231659124255526710199354125962803127974666837475014586521611905176073087631783207153542900090326627081973811610654786121289007606379605266118804293247459436105994120033757786117844462627556580956152659061888044480342362678747822901498877273635667838798071549232738042871102596448395149941465334466479044434595846441774945530029007246678126224382998147805635874483957782680451703775187021608839630024711855066939758353948797517246723793551992048237690184165937140405363686608031695124905225117480073656254006098515217654182565453678665066511391911981019888830250852843686010876500552402909426972578774003669999442516725084210605492272303184835694238513810915209641094278153411165238309280635041265382084679731347398132262061254803680741390393983356133746182146486535663882210837140491416463628101865112127542669387736893078362095112151536495699010213891493273057708700969828906512209796391266324208978146103775071133152701068422312639900175038845097805328158486697094809541311760734863865509980463296581786200379195606502077752922659039455613316187518690758520900048284476155263895237278693744842094109099576439845051844910571107110711660727224909529525990910417711567079830709078705906097506717245321830402114454530783198217226024081916887539284707820494435992567356694224875855123749573997293409563831663089693073168177343584287187387412705123956271032593079077296707269871905297779055671335024050228007351296199985257409983225238914517456174163019785178185368626373893372662109528112306802918121427289172854040215932498038942290280481133392131596825586185337805318707912320604077720321627587555202706866948668677180803425056044062029471224776203008590194609713245388481980330221987574576752523125362798206014970488972039519144442435973530837469086208003850643383681213102028032561598111379981284808689763951326769074858435351923289615543556832740588300099875399420058593999652219518507082321512845922772308004591324018633219665917041136872472798743199177502386976887659216843308705060037908433413258194829933285859824130554549612111121441628002778834925200902852396606484386991579470026427631447262719299515166588413271910543560380778937430785266166702118750976066115195109633095429588592767093820535948871766627235059437923371096785001077743715863473061006559679003936596958692411029457621907337283442747884028848956645808555612451952545039021528294316079757763398997093930951843444972143189644148821986715563165649164411450869456736533682285116408496446473033819454318724543716173763127784109078395936200456337940331316391752513538575517077341633851714189900390638360691876523040351054637666229441510047252558278875770999583028069940107764791667988522937866433487438818761228134617359270729756820467117118922683001990147063526605940953913816685816410589030300178481224595738896688065511432658710924539679843379103314110640564629578383473947640835460540505007652342073075505956706378877592434765832695361990710308811406053562776213807349864392318656778894165482138982872940859515212411495585922771082589907562446382429097254295152474887267876861490172622685803931157327524935101536465297174700318062009803576893381580930393077845819493517334129044589460757127265029483334964603032791127105493584627695901660458664984723159248825580062093004955571002462648352793975376493399138765891884504567058392082163822910743059654893032476355630218724903092946667978997787936579602696874962366569958196195581378466234244316324465013720109933967098204396968089435108836208290520203652198527747632118679783040048777990213743328422881850152301009968526743277949943031370981584100807933438160682578507359544893888292269180645779932128473939791007319564300579587028362965953488783425852660728874334468981729602812072454832533918275063853408593132988172466394993942852654732684695535971819290287026709523276308369025874190041910455469439743123868095240837236707279331869216512923081071481763518852242484085947535083214177375476968575128791310371321804375120393212445102597095540250397521220567117525619104009859730477902143050151241372111533861192346277064608834132022233496362726014129641985307970338942121259915499695683814641704062307327429870776821979981099862118908810560198910405943007492522788989205402011440019653892260402226257327286694469388100355009087564795125615812856318915815373155509510865693310252955823349847929230514986202068886510084855444408716489327839162330300848923142323967167083464839723654702416610628345273888427846188839320773497545606491221523570392897692821245494736550775477716049880507694126338707527756486723508394280874164188358027738848499747585390923285472528521976157150905207602226939254437142842783414640940681951704629515357487494807961913930230424501755387594372447638082509661738294704151187022154379345989948408914730492671898196667523173204350541376269774236331374671429184332360403599730905987031119033642798192276472088139849503679333639331896764957581452892299999156222635296790217405548354657956692830567862665407514338679631527170749677609932938163471466569700194078101208983899649782956750460256505598066783607631230208456458968177177297733653655583900433073916358063116255003939848738385383346293992576228449350868128946874565535798193200553826777532035845359605672228967166793505286841944391150362709674781615763212273924070083223007777635277572151877177664954702196833444172764976545210692367622393665061837979681191023605278914384386499313810481051434846260975458869233156561664389186799630133538071171061376527025533502960469467212704056386755310776593372995005760338715400774692431624179697752665465209334781349520591982837326395080868339597997234357927870753920631688880118405735904139246928791141128617113919654186718462949754398526909329497934495786413339510516385743605123333151753733993898363819772625661950800701104160555124385107649419778328349393384733489427016731997739882051596855173367141659755510074904254616994951251967748039979603743830131731643110734264000083308554598464342834780854914700115374360925618029529547819478123523334236414618855932141736363529897686749091621805411626412936168195006051496548890984074990409227141865124809834767008464166598720840655628180291082603804943519224697502532862589786038456166247358694404222101669196344621241652363808930562081613631486418444845087576957271466887537379651915712583658614023849806440799765806563727478097404996568509834545559853883023311065928870780984843724938419556081322420931048028046575346413318153997477473988943406077856396380251244771095399278860744105440241235867925071174586040287526830123489754480412654381098478651949579264385303241689597897376114846137651267688908921943745954222283866645566399686324030940455690061901717145641532341581206633387385016854259315435834251771134083308327528885202839223327183893901838812413039354333413615412503028313006262589283980159618335346075245397636177932811522866968404908966596113796030173516469769294994327571860519710502343072272226320295989162605664290841455243487965714471101076485006627464585606779250751598890391825335592392062309711535960372099183392586898357944604093864663608878716157082627356430089384220016771193175482444575530808283839367152152030812464170739995988893721603111664486157210659928650756191933836952667922984353195548069624886277123161455989657576361974571342934904223596661352393911980469003100407621569783695041838312248749554996683502899296107613884313586264263382577367130632927681793821426030585697341037882852112786445373301240219529796490130794465762719805561737921610214997110333506321242971268366158262677126706451770304513213012918815157227920184329190119096120890799729072510584623247270020229749205537725489190831568025030255863951871810861743940567482212696429817457011121431605250166917996004367193958815145547912657271155175583172411651728301687191970364517308723989145369351356816872771256527926536824238714727639637898650032222465217949929355317460916250598033492105299988340631191419585275251799116600791425759060650778063062248629786904607770581134789422010828620334738257226373128075667959025463094755572605024538032936909602492986130987340381990586591602239806807879871583382424706615662151169275157994818789736291988273395592417767764987641935900949866757742053138851943420641713226155984721893744157847995322473448431939426787785062840823181101617009667545472540478897236040391309498584990822272107148622466054525653236914578022741811231755437025777335856709287131443999459979261416417235832723761019605078741099055136624567181003395863970535167257269113513521344359974592534238169280628615905539339738347341635538338958864679635618850748893711971708978960328121106062477271979361325690518019001085079401949663752806973281410356127898476148673551557198253289859491060815539849059321540558886263048364294034111861955044637782581762643577386098891188852966845522437041984842252270449788708586062303703888474473345461953547806157748082953773756764571131368897276978151394410419156059008384616960292685801647412227928302811537682210292939501283100654267866341291073354077930112453646389440209742553091001996691337161416709181806735150806884124063194187373789430896073253472980855824757551721938365451035214796547233334560251278694466297934324010085678090392048641536697798927764223835963720017477334473643311928182678460317291954959003100673775291467045521115766233063077610006706735032031589598971980962704322043294661937906186260042699745523713853402525865781892357987499543532025280353613642645686660551877426089456421535538799638754177254968780259420972980533641165835966405759658073324281586453456667526048153726285272823182289656349290903478883787220451749438144028874683280047469138048143722484700224944787910631217560132787992541527981429179994301418096708004111469206425869080640766221886524037296446160825679421888760341298515823393702230404100121218624582285564570565586530512676859025219531466090488114301086848692629234962071256091535544801111751100102998214752362499510913222801565072744699951294364217933076939029886655507094363685995933977510983094253662666100616478298262946059894172859979669710771762750268176907215258808025635488218118350912695181541589986137106313285252278895376354489993169674017401872024034143988622961566755820822625262127025573924108127860230484916923196343303583370988744451312307170760146929969208096057821882902497600083273697993614044610893319584514271871476051726308762645870957326217776705482169197800040865151871580774350043353998669498451855687280631375379327476692546144348294138817582929616467375339693403831058117807878680576152586863843228168092905212906700409793430206189417174571322288104558957094538785712396253123945304777801710230499208965868752076810538714865907177418431192269224822903738058799310776890894575914845840338905543576174865439218624392141824998682611267604734025349689768460160242117289638776437422353519969392233014339848993297459295161100559485230822652940565979839927347630647944792897255865331824759706686793481964423736261421120503179895965972707001745309989515229721530184605765706271497330630200502417543190738573062921131993442188827437032202638613800936717873327438814942686355738054829433584690916525417550908580922685627832231374188277305470809545100820377706869761579539876611405707310095749352502608816959305750786462347769473666477056714662394435146582065159718985075625127519191606201698906116063333948504875655087628159608134335955809877656544183191564706860092443930462294783662650368373159756636945036444300708395441665924348592488870915305994191838028374979172025093038315352450915395083643144707202630767551733214913729547766141718452177584069579709551609565833868916889951690273534883478609776373959735574728679583643293142218224927822831072224633286478497146072046221813687642780012813460373864053134766250602879679135982554588781770553103887328242435085429269065953403462224569031848809191675712088957594815837975047553639256125445636950556862592787147238263135772595249005885495615929813263499673319014078556920899661837744707826948803153942026944212186621926563933224212009117857718318118287761021425517744981222611829414082771260038332306373009237134370999666492194358701163089853727337325674569786719683404228541237277275685039440699438061541705025652143616909949100462629502749308145320344671495730721864774637956484000874855763220329227717849663284708599928051070888633301585178193780623372638848681231129427228861096199518663458903845809678043156946610334557850430868194169893194229885374997626771408212016724616448648840865889897432924294684983382371996201627468787561699286658633968525445471757249082090816867771539705273453274082377517033038426469738917626199492301690465930647253091105892078598057508832619344717477326391340530298146159530058273899971372293148505200349345995418474217097725894403900686767078257562344295652252454867879026703648440949536626030693512767320913565482805791680237987508912681733200635268196744361482410529890831238639886741658431517907133617652023685224909066846555395426726255406893344437951499558729677602663052322776492572135123421063819317070282593214282658925871278835293020342842586291489739526641942921545426588799554806016452432915656209754079024112068429162038775322607708700223262290664738624951636523274548451330251072287063081826810767820203521506391812602115870397854496643870748271770424595654307529027626630980025587246383937987775732645724863507618604387622152053096287944756727270001260462207210200959344502154828759815306833603223083788247658824513238323637572382391827404599540898343592275947709731413457955594663021607482569187308893264494087738109333397244336891823555615263021925492594553314704527793638360749268080673235062491700609354394863868954409813800149032935644174663943762231979941127183791455403271195959395042678050763205142238259233665245824274934334284424848489354801728148005665785894068047332555799138061785245062410694772407381003721944351842024057157704991293001729813101854676091205214484049903091216632019459371922329928000439040537457988764008782683494562837458783090439079735605186004064331527172758339877033246613417485625362925778543048367877953572216745828280130162073213013775578377655816944396106811037408792227647832837657342366054520752640838006074931715216899758964524403198632300228565215442737206281358425883263531561875526604718345183385636191088546564977009961749283252907678011334287273466495044353755684312231596963107922161725424400896616061068678119497683204437087970549816040828249221940397666350334317439113239725392431574547672413329247222449335949052962766404321222051445196513880507791792152400907502644324391995071438934521735716639370504269805683436740338239469913282346818901983016330818872605218752511727602475023565731687045658363683802311257317935562042597127100072435075156444504540233472166736921842582171732994906811110817373365206948106215828515331067258755394120218032006530612067281015819970290162114280327347496615208934562299684146025081241424457744799889929424524753763346707364425206132213655642326024529357530729005223716458742378114608538320101308903002494673019885196136822357969519037806908224329698842652914190551753477594829005149513102078914216818879236865550106592922188632275097841457464450328622050688676295265629094745231424416945644325645571243306693203721564124534936518330515162912058113725378960066436284136656037450200318600513159587614354589778876238164031437452061574465115852676136888535192053442425541269204292713194024343948502220747721650696786589477215150190504720157333761747130344258796502352989898135698743337787257248254948891472054942018465440074892987727480396216702104235582587538686236111259177291502852313519184927476588724576739228857179943256056557837157243066023064242266293828124363068536502047557442461873311568163130371278135483265150891743736905162092259816349548298153138380739934068250468752849598646949639457892302774969884438754421576550644915073239967896991936455664174070824009362298655192954974369931104470439457304317133560837056099643888838939028817563579479352137919498218219548550839575716036538950726582988644486402523588460890811705593503514823182472638410105761239604546137907121162653119456293755370015643018438790019667735854136697348235713878195845080823805790333598583831215568253981341690617466386049370091792354742102453082822022090637699426102435055710285823521667541915921186607408248951947884021996522191045739425229489921481407437073022947416729485292528822398373075360173061779543896507098789879796815045402659783904156257304064369229738661334736256451233947354435425829727990644301127086621568929524647766707815422983372568349840271948979670481940408024319074837309771636476351963376107693327741889747077546223281574263990837580699401048843229046064657207324318717515917118178333606926427714477936949249780696672472472293764401761788955584837366816774170145026413811251750720227994932601128186023147451775470526485738695806575809269253219436819647404422050782102873463889849376951705881284501349654565674766573424319903710450895869211245838638726134158657316490216181791773494677755701670754599910841372846453350570809757476749179086535210178165061631577181883313061822620985534123571894745507657487438866416689891374292712586616369387413887086097277277189717609466864657409958167336051442379712262285246023563756361894695329403774198488682840503800025711254373736179400857866977508711484439083599916366751083509135345533538450071934314197975780028706852579792484260001940570378353074299461704815048378868425547499403363761015440315329215726943684801108850072660518661486435198547680832934258975283112136069765408779999216994049485502560432474214968402070118971585974190194214818946515992189861074104525643821921957331351527543373666216641558416178881816313886441659108023318904651145157798386968937429928530326946791885839184202865926933351322535591133057812682338104142146224555771531558050360176947591722782080678422999108751576049830570386059013247871531447247273889089251353718015416123116890142118866545885270707641345927756639600778566930890604508037021842302875164759597615710495498530369888191947325022193037834881801110407516519101676719482123533157341649622353531874759160897175824297358135251220709537821242670863725340985244798476190206484410418022865866394547504736485476423333042737018151657141763889342700600920320757575900079742945460207412516021657531042652351455942782344373533060868796174210200508008407367140274097307403572711379291080941990508105874617867088759864884092485075078803165246672841175761879224039872822086640998034191921406874140901100817964738167232454965388139631776692984642204193266814017699136156092554612769828854921077919374046634072705756897720083075065650492187065644317935618031864089427911928504941522269634171096266637645283468882883542918484588234833197518342776706793825943996277139568958795713481249313029878801639647545955364527159560365473448759722648847855310103209289180399742142065026210444780432621955848875787043816827627708864287935653001559476763288704949544294797802841851942953127535201357178317380937795859339101376058576204413639728241272228846747870842988972464896021086782450290115155079478294954402816758993214857700928916151465628703351704677217697733355606996281559285017958049214152658538996663884131061680398394902589401759362376019904271762774492747478937199795569995441199117744143580711416479870794152238389960233275995335500787136227435191857059514701778497332942407881422701019199949425623572033359215043941181129170021972353516432916083447639920959956143242227055146257744516805673899915260479729939500927549997586571839516476762427191052665832555783923309485938622143630752744828173431441914727192985781366273852592735165635403783581372434780232366034558624344188171697757917740023429579712182663723364477071423453155342429083049164886737366318870190953731734387802653336603953027380513491849674591225437074666197070734364802368795864472272275720522529733578569775072156482617691067458228537157357245637374606935509379033716662236402469110591313105175594850144003938053632506243378801690005435241858581113239789769004552507836918002134289118829503444605038522234993378901808466602209265986783008176674376101718117034375717838503003256672913838636597933982563229848423504670267990579557856622068693021357029483713215532803863941741256442774141384197066869074329043211704839219770354039061079394636675620380503786095800754619676511374576078732899115753170653823568622465203784594677313438012545129996819750471309329132131722094636337155201337380193918688918052595106184534525459433695116556650683451893545058772144660283888581716613309100363662076723020806505029919425195711346100635703970026399788932171111810505229092742511523901388729855680748980330719722411432375889178580062435886158556067101730648510628176295151675484810185454977222028158835286095491506866991721594106894543869339529782883851302171802446546837853851099771486007650639741548260629661605360558228764817923769435092790698679510697591646173116123833073436237404616304737179821152556906341054350120818770966644113240396852681991418182924328637395572573648995693404547880692993983884391280780870052826579832174962139525545347780391075888520059291177770765182563926097180201503223143609034618314213656334087741303171300944175113746181925001625497555339490078832994179819306985288504699057892216567427527869561792971077807785759880364870147689416285662427662713371959819015864016447773036938287836823140702677131593800356818296042405941930214725500326417608830134791291548334787212810938321621452060815166048478813918596465577615345452474781382125359144640939901658071450418769647784242439675716266610643303902940433391299910647858766347205480517802593291689686484896360174712476744494937029824274997621537651653913036193888052938914413941556633447639765063929904925440294782116993540783405302374672693409752962720776261744496905388252455148479244563713555301240001030427186416193694613220928069544585862472965138580575791672943572932941917427387099943513694624163812985717587868401634519827516236689677621239950916892670265853205794352839126736361098143652009465562217538992915196794057458721942322562241947469636002708673923831292379391528514439159796748150877579950397281638761181921303239579322453978166144494833133925405838635930309971105496682804502313048954612976298314351880836867938960296981141455272726686661165508204908968729767328516336561909519379617997213533745013395142929282312598145872867361219314005829345105075250508654953245007346983116116851839179229424651298295383933953614581659503798430031814023525229671778695016732623659817238877415752188645664929629075060167291489754031110285864330292347415187697039584525889877098855236158174934269914567015143148641478816367476086817325432327860015091900674285635976122326962208320822564902552365565605644398640630636702795139191434893056349702871816629915132257591065825959265728728974432477770119449182392604347194570436470316110835572784281203809651405305147566670656835349889403179638288869496460650447843965315497492996511287744745781776302617564188850416616526472204280513232351694185172048573004801774453198717817658776329354745020472498171705497853683827184032450446558607216278049574169536909305287473564428685477792402203697687889438080293517892926078535439938175736634741315349031500326386492353554492027897449960892669968889779812735156680882872297605816101691162932065822757391347838356369923027747509827531609565732274948827093557649832477379240369428295443748612144390074925802381569448961033805301155002598982979145506907178451524834237910713427838388603363127109651688775432074823051381769373489291739061174133257856533629470674827076451571868106406395878198623224047597170650245927582167678815916149248686809299797733990956338932239577709714678195454328500325585766781045233812097701370056187383632660373248373243569414084916594536363030171542230380240825472503818331918994397433800820609218753487549828141507753110131005617161841105422807751541813095595163634628185297744316960981533093364871446538944944578609362150963858512511999943709929281073502013413997093581891540733025691414938447694811894377364003933638318404162641832808159069117730206242952124892665182963570868471133178551500969347883242615644276779369871101658475205151522702784310395365421196582135896710730066484848830351371608775767270515123177083022210066168747881976970748181252316931778919315659856482898759284378402741549838807197189533732985796281038437245934023327590893807689109490406436521703084422641984963016066443442830485590174667262230287397148799087623486668740804347271133643086408135873402419292397745906650107535931815021717924458619657502738499307245690543975165634844233106495926312916956322657525649031258228422847665946229840210768029669593698459356367655823407460048112629087272516685646013731925877633851613248375272601424422079265830852447700958957533657832000275766475024412744072977158692700635692513258582085693400028033800591542647950149492541705409751167198142211324023501073314908392272836177406631729063658849456501727165513186812040959685785341815181542356970145171459721101476858995350044402463337873615907214987642074563984624168309594980637184123047376330126548158937534607841621070182788429599684939874920923160788313870701649777695935440719156421372409070076237470698097991764119772874574935741226149673289997321218051986460142788526855818468875063188717389032128113899979971224655568554263737591053936088947810414473358911344040704890726449825719091171162724399328247865800250976903639735863665782480460202527937550043477656664989713759843474719629004260604883249357840239584174540043420526913924926741234567373676943599685092397505119944650269918639731482615019415627620363775768168736404638006354670202766462277864639902104848647552871485853509202313424572426481675708145370117523659184778547667342667710121531093011848540029439926025371218603135396900160191120238758236968889239693290232820632926151584533786696346079546038140972674050583859764095169358059894717744429831941698469759467493032575396107244610612679499611680993704481702765590225172522595230083284393698477433329003710861271931044235454350121647461636838680260768604729117580754284773213617430968865553308566569178057970837896825865368928374843878731396820890521626818057925642641737807632901168252150365267627253695233887358103097035822320445441493289881857339203702333342986612940949463993552231776872977815572852543276122466229518149994298456469005448377882574626603291206738682414152662097919848297794289069811388201831147897012134020429835079877742157661752863195955923778673156901836171372586725441758532339573191339903778287194139267664840910501487344559908367843663863329281478341416027620689879546581832002795523961289863012520940586523244612252165261349954615407911213335932642434981245800816842814123152717998098445564210208495485957562902277439872871682787516981539682265019606941030171004056804757202240354848803799172026106078078155017728458450205022414799036016244314214516809764206773726233348055985084701573977169718589089397267740989889497139276762723679921001602117976749578232171313430065277702740862437565788908893056389820113516506702067850243590834447889724113165863093768918702885436467584601410366355408194674010360702019993518154151647834166378436443218731353625423150223929123404463589650424849963335055044723556484610142864446200194104257708330685708745843422971742315504613189987196452938166850253152000061972809791168843685548847633322887589585147166020146376701224150447078108835463906482244843340394575853704944973739059479156010994666735782783737009025429632413290439172855939100249201107668260777812240939639594840397380203208241886080960672191543037214547508141428033591198037022660260514800441067703004872635500158041370208494874908672632362738446540475089952637499492093808952727061883984860745385090929407187439577663711957685524154179167439650294732085087006024578297027483009407834895546284671217443071780945854283530259297363040060310622064069032950890975478863970674004160521398202754526670213869526316212489374985316807811757784779974009240230594496651086633608172770363987624466653201263744152254166554660370661021706156514695153933792145332879684809242698727439756470462665261309848655233478930427686997846472660479569607525436841414355878373833753474728338496223102211020828979339214547012058385404098824513742207769407170780163029858483082687446692717325980777745428511259389637111207863597644694277573196403474489403067904710521780293379023808105927315674945152817731080716379236090807611435403382847360725462961340725193032642259338901816671619038764311540047127999500084937241963305992765189662605208947340993438475655031074984602615385782024774546321787816563005234051305992976618358189966660470917480181356320560007471650692811588246142680057458772990791330103307152549680206697124749538160335657573824823288769110746324369213010815501053677757082453838959566779543004461382661116324926864973496722745558779627263595092781467259707749677010264474621019395068366065491343955205610315551549639815282718293755144784768887216283881922691718911675284851894565180508211237484839866633324672922819712338517864306160160830972809043472205547504484501979157465186130322878868540551290819327111147260850236898215899811213126121959207708494649209488816674140604661536758302527237230583258875222256101725299573772880567577714833443876141747852586380804011478623262997536848621131884607881488939098355064880197674934191041576349508587900433999239295408668631042171005674312203957838429697653018391404400529913093179681009472955277940346439298927314887622679697165263139005994599122029298990544490876907636788563605998657249915952763103656546688872090619044276913986716690651883632485899957731296851595264329517066236818295867824879424437176824001279773478405028652120230575263102567038253821125906294852872169707377885648836487956988106746231812056535818412582888528328841089766384549649460092823421233812318434325558811671072983749137366626069921982246202697011487495795712475025978338755814322398105643772001293250505868633323233192323927118053729517857709421701662995355681115140409535744836833644405508143498793740487128184643115514982332785046482809414773022221656085376730056750376451332301646008493946273047250323729602805480313318626100167987823478160507051603684781964149227503542883919267727047625979194211082407191564209794623464756919471217132924962907166298203764063260150130561784077472117885867348485184642154577047646392183102431902670266475970302155028512150353963048343120915151004085084565381664834824166118636682494067228387451185569030420430741835685312817368714012583990830957773413312951779292034271008830611691094585422231077230266711911994752489582100790080340332308143820888223827322228698553256266029504592946847455551621102165558771086120174823047959996375816950317854201040162705596220781577686632169695223337976143901406986865907444883375890405159107743970031445560308807046454249933166974812976408815037818745470615394704864101753563057727173952077235009523713760124853727495319755490309400034990363301212070532881088573730477927939809763686707017994382077405647865594084943443998212392977862526637044969145862414535016175082485235959470964500076337544521172515044518460171332823260884292479016441260412333774919063910869906871023414765134069510896580719407939823674377433666735255832875764816252811916346789512365778739768291725338729388577430330930784949333962231939819631841997341251853179476137020947355278318924865925342609875308514628952642590335688277235191381671737538890985757117002142599546664481592225123241276396542001948126411616011586531394842013905068966898521600069578731629366824510793927809757415687003746545362856756157303342674845309119646677160319986823407331499518588689803868706283606913085805055965037447180431336151704681687337209074314810153288210534762491556049714592078516550172709900210509730947348789776614396599687444986983927803455788549512503494181782880470268916146325946225925804008447133787557410533115774043248499441513898823939792965223457986540005574663983859575096353041596057689023498925820495610663877314631904547928497128777310163529108114215198600704067951802252405603038218016222777271661060234849938198329501796342582043639701883889294791385220309156505926366537100368556793713594833389572223482500681753523195224719082327887173038322004322254567014278018755739161558312692008893161369998540117945691123184402111889691034933842301529926641261011762316529443191700938475381551068790814350004199093932352462837970706146740499016453173155457310589106231169602594224664499966830985413521888030034505636141022014111531880486389158943473866478361891858417063020953121414462362893992563848371270585384550474015206156695600751128531483827580643057907300065055798696333832805255808303289105594616386298266887594143525917921821020270287093120175461252283342930982849781867255993751246639189589072444779771800662396960776669118930417303675423738711246384312502655495390706239682881669976250069948069370679009586690841270725341518020704908881342359449436501055075849641126912244004496900120802297600319179473943023590349743713863273909434175626485912537958463799190645176310152746572786558980051183138101534977442876276044828916482405460909800478254529113332916816867240677327769588616053594695263923608073142304040829163836081031826999264276383143376112621697908564646586879346361085098614392140205470597780121434541989477214864684923800565336255032363085297600351459460894274105545966935416253381724335950414103176650348979801840272002424217613111546773203206087625738953741830041880874415639524709134212078274630431265685129227741693734960479647166834980868810789587624175937560939113342124472054145328117672859565416492950906816294998817131817767764611823701888438160881212338977351117404296394177038728187233639161303825824959425387858885836150010582665686799195318456397804093482220033094047219721008272157120973462988064618137995193553632990510082335194715039169172241686982513792476056898633268647449504486004295101338734692556354880954824924360776727816904329492903673868128906836766928649821339457490913624179744712759639653586484051007789381729083493743077443369173276612415688098972781664018695579494088403574442006195837979904094666207311940538950601494963027310616277404291536712898041639114249014194030529935411229531363102803140702534848439685200424985281818924489495055746944796300682783186582188062257476577605634811048649693748705287643496750061008749849260053120403250458693569229392955445922685481276575271933969918677595449678436305029919879519117852552086504696321019798672416457456772265415403140514038816590215549401912905099602051680679147028914635485837184070738491683730646615319750285304834108941263731943322401997947896693902458936085196589434888216398683901326592125304385881153379873298266332687149666088947563946036589052266561486663887539171064212122854666093832675392511606793542097538184869992013237329845900397825375547780687093635977533830590934236807006362117564095902725237192933064371328895034617648107809248042057872276732718745689753177289767153471383486501161787588083577904281195308099404502144208673062257243227510243612518513543580213700297054976312615065616771637353737347610376062761811744454714696712581185517511199263585186428571161819096092038452055805934318869777043800667258346597540648504557151512746920272850235363072460225989024364143393675570674132576428410279129327957919410750084082897180562402687928914099208659607575099344691345112350476593263691046416874454656206125577047238980703944461848829167859949377606564444002715852911128022668510945746967969708034993545157345700203628676601461947983916439501239617776343577308781537894497246990528357849023517696533634394281069648436055349843141415371753996314750380119698998034963465079504442130269284908084950364808286398086715710787035071148144216183824045241761857465062868857657401467136334008016498462428179719636899458835183738534024274240973812246586106724498369118510828226642025833347071704051561383649478881755974477487141876241412220300033186353777988914459864792911478504457643532522109266067709140090581397878697361900615840768593278865102506914962366045577954966539801155461053557861683346748786725291969935618613083977101373406506970123268181858379335050989040265480237822357537998985452936335419234410556120147875473376463936855604245876017489139379819733181756152909952230590369821413454443833240864780875532221697902376545808708507956842281721446730600249629073108097630038548778969747381738733993822485763342006664862584983802186590265718611741460266409608217532261175664735601205150033708428156742534999976531518788573824661565786599854852045013728884647284579042642479800982540808540661055478445627810197676017633816804717402094289105753573275462336513017513839450148239136790532604143624251729971447808095417323080964444835101201129968366292513538703513690643932628193492009454772428733749269119465651075464471185167084920935741811396497487842941823455733797413040834825761428022169310050004780683880751926723747559495916509071354966305838871690010055832522717242362963894367266256676454957657323401607906905211421637963336279734027298133764874618175942376811040645519038511081210410512921431992012053879366283507552401205540395924125633151041427395284479537883471859574560061289013985412207801365917866762982493873731681293468367205641028077289050211855892917891926130247823585041206147849526539695332809812575677278442624619176007397369939300337848995594839397178657926408659021221915841757226891509630754249009680193143464531787799811608597270582810168969763309085530217142149457187717848857778287090297623243387965544612201802414499848315073383312614976039675072542690622110273705863332376626511043422523287155063718710383230130706029270147712953374834729873028141950416903711418462518251073463352367182755066331642081507922654531686315703127685304999960665107173621405426726937912869050705376665162780745333391445371340913567456386389700002088315224336204959933701443234405802144112601226273208613184756825740201494136559498067635826817120658063116344505521201547128688484599987828213802826947382388029115549873101279804752020962791683656739258533316513498561840586039877407970339359525931242717009731247953832448318350297183303573967264688290640518896652419235095797922851544061065580182780177380026007960477679415089909669293086739275504658191302708076999528842000815694128444084227699826829269960479156512286106113202077571522491216465235322988152272131083741282379749600207082706090469177692176726180225498163461592867539270578167359172406783266769812989539553688027279097631923807551608341325659800388097373833557478038571292475470587641559526160635261963053297691129615576325531360040234591861138888385954628994130201246373323237156378382465761187134451688974877269454569523485264570758749530504145196707567712498511748096549567203840291301712200932247723037428783471405610396741195080295745429174418774304779167555247039478741615972459653635295313317596479803669407973991965110276298217456995758950103199947089300064055164056424686835589303796557548735054032547410812937318416966337763769708191074881233597202620407384908977459186911768972993206247368095607894354061278808883394025681225917520702788106663471585493910937746392553028590077094733108005885283753741328405458367755465783886219888696327219211818404410747134554385549940001160539315843193496758783818058556036033833973996039604012245099071962583259613222611800582856411609129521072025595218566589198335340465462330319595264952945013392057358487387864687212914916961826156017319439317474325932745034744713708837767113550442016184294663257086077778229668559226587692192785158383348036934776496184440537078418359116029707943998844652949984781772469171315298646710374297451434815881844035406169699342780174815370293673551435828022404565837410150441740223400728592613730617453248138312669762406756857344068052877168468193160445009753497086362433059100546687759819284747614872467261829245884629406108983449563632251687933415786552046257292061664253421140136434041972709931280456710453485099146124895680772995605992999529837731978196673544001255738224932845735213315815395537740994432943530929550328526157558567758001144361220862469987064890335777708160180283298638014991581954403164131166799665875084490964169319371524810906498189352225184719804552728685083446408523113240254478172436819089170602317435943339054825191554318715376847852597033011435522530146465285964709964552503286694365036376389788923294775943061534915328915654948215031378351941776707567784314523753090277989206971814945082217806513185760507459108713153165271197933728703456743002059334609358429608968424580281939196488107635938647870680708830436695167916276462938858872534084617968148566629632504901729914462998864299918901965156340604200212983183678882894688810929406316634143934199133957720218297526341142727684223247126039828923035086712954499775965054217989773607132268277267341382471566575845802710108282752579913349619971445941974608937441051162001163409122058963534254786432930091768183241688075126776443403591661314883292674206968907407095379857732438868860160732421418958001268806030210447310720392850997399678064972874339484493409755090398032940601624062615182614568593957135088632954495037530781171752227716961114693637190559761226902021902712155092418040148064082587817289312465844019510248032083600241780337064238036692649409361156062059594851052724966366681636413729039233373360196656950289275843312656214677715701820062222320906398974363287179894822393195486282366545088936278565893079136585660580248571475905706552465430367807641839504541380854776300203615661629723591963868853372442772182792239276049436195131570932381598178649255607460495186523693354466560995657732506748476333582455823188665632466929739983926673142294885113637789816844327120810207693628608048742063016890729235483189540366305851763175026120574249712718417805883381030275183444206280565163432867646629297060565607310575257974067270806867984252299575056951418885766620474396573745635134877814514417905861653818833055357556958461690198309722274851558619944240978139175120353715649225447452173423783575356434598017886892638236827319304214531738924306556251725301441253037545225182795480817659674973462670951698717269687900284177619400606669331468833447865976140225084925039503450043603248512685686605456811285689227277153372930303984850918233186426908196025521790719108951862845770004860971443718611793053393708716257429020549654758021883253153230144045487807218454324559785764361335251492463993207478693697244315609724459539280342975507529902235237218941003597286177523251843358097736003840107673004221204517959702208370395486650373503046005323056101135165842180375001400825714700937743837803550146404150520583727785867535720647849189327936112450317840623633116656230163945325987300360757181858552690561630478374758243690642062337479289116533917336840873482921405258310686261086617173795123873569345764940747127498461455986826617930174108600069411246780393481628174449557464471848401296281606656550366521688279978970772767438837214635896842569601823022971614816147482961503110898602800540104575879553187866648584576679275445680273923603978489379734415539867992414402668532003862642721247665699078660501167815430411183451841805831124683313886733409526663499130704721283793370303073924419894072371093485345747990051803068050787881228436190683689937998130810595080156810487578001630786325442251170995161903173456526544090316526836901729654871334779083035022259862121910852922154655256279295645222338200122932113180461958617027240856728162152216552489663941333843283214336634015690379553377809510929549537870511196358700494921615757399326225824860699798586652898677841682483600146041120153399453552613077603389218957115776455389218411575162021730343846716050858174567898762610879262970067920432588511897768107441989341056890143208704053745706232509704635277200374411970598966765741083307334260525671123350042471889744244591027700088462913754380702563990912741076038923926353046315435473833298309543197702137793110664334632479331987565522969177344043151658920100962173240333412902973209434424728208279314512953070019007867467437967954082013893349275980343726001362861870796487990595115908961043665966227697232797762194000146578964858638284063818626140869895561872942300522931381840719242520714875450914819320944855472936361638216791266798758212742922237598865101739358147781230924783472980540304960577393573504157609520111114491506868062509862049955176799140784265441793948612280798590318881114264062485413576861291949410181886027106504477225755971617162059893648397180723405577132388653973846981264658004677023512465272788197436537094524171188121513374617140871079344004132291618894588739113408827996875586957337417836174945172719635188494809646331148571462057158854324315447352689853400141410702597456430128476136910186173721755606411775002578354377793889125188425700806171307076035923187094697364463399070835706060253437515335346194331941486853466292654320604656040786922410187842414453889136368890620639616289961287608998851172088307345979008229587722012026576339940720850063977831145343934079920621720494934013177663652227926008336124869262799565870481912787069951945350704093086129864180595882923199784202456701436999471706284573308342201016526029568108347025640165731668853445018609184025675314816524895833378775354541412500828578224583643573975403551663037959988390316735501852037441944928947076483649459665924258968487477611185603568521762009211384063332647586595656329959174378677740501641798391634651576878694920285366117897635262220406311099341531726760741895962802156123348251465880459141670957541128667222300548018374385105194886924637985838377387771986959639031772441078615721683232966711817930059079114848975887602372833120608223180000616808433974461381186621586695654934913732921417639604523641410440000694760309680007060700894174301984297384652276185280026340623180750737312026468609984489316248182538719442895737539258245303401017857875126949211291782699523819842444921603544050123763731453835888193478681932233885256142892196876771682466172028807516098198383196641062240275196092060817426325327062899044305357361058940712242324399566163891849803767980534770746024324819032966883808058378962106048802602768885010844912868070666807748892128830586753425435789191169777155484071639942210836422989782952847624677623802055239733658549660574839315999012365381059481409914390874129663542798290390448370811723954411620883565538826586247736082615538381213203723722953688592005347968799687304996725320148069201737805208630748872858685216591325918997896486371327052445714928435091306453142009890876182657901665400571227378829935310913959791540424740165734365115348696256401233462836424769589308686804870365374626735272532800378593417051193043122067430149025881634174487928868811089512218653766848784659987743596225357587424496372992082342341825222411483198085439426773543693706258914065659909250301959393279202513865565913477559007691232093223443619810655062147842977610439042845954449309086644435656550191811055584057582479583722862716935034501542244621588405594489809915122390959598903763615681185005135267820011371517274610998093877183873739304828744311663856303326336672110131857208129183683305010391033651155708531612896175975766524036432840885649134196002159025704504785841749519615058534974836119116561905514400644493536186396543915176772786275368610095913966545495785457310486634914509284479138512061349749028495772010818101668624661680159448374543022296068847039801344124736681122276904113307200310350874320527744340630917156419840689434743809342850391820038937189025164871816173525495912933408653809798451198096686237095060657370480876987029780981921697990125787072367502038896921956508306635546829590959948038303178460029173369839320565072135705107926921109849791951939824559522381930268561143408175230233073613150045955610020500747389768142020707101518504854588638703713062481405503553771907901933965193754878220987858460419091662535831328019218482897956344880747581864903442477110589592746840694893419423523162420452614268551858205125312454997593987638818859236541692526507592939854151923006912713071070404044983333685134653101556716744001097043890412031428442779167248388168352006413236364742334498920513383612982037132927871457697311238165782475028109562175446650674824169752936188708786551161406261983612701927012611077005834439922001347038738447494165663319944247158742297141529366501553346848153579896374175301201505067028676965032720685016281184807969390683333008661674979494425049457587153269906216206563473380730134972471695688478310334079025008148938158847631132594790412089390328095232599706916583244368764640963552346049288895297334410647990562436134571035662940263517620391245592363759539477900903912138686619640525155995163250483247465392987661152331834611643084092763638709486795588732730236909965202521101230014133224244240331564043264834164339706471241254468962184116649098643083871320843071807322379708091579743710345407772434681863226135012495338384590971288655473374983033225579653148552567056707888254618981836351124006103879312843102789265508269311067295520934981561879616093427902600901256730161212773131256192223679041110543199416276162483934725872409398916397895217938588837458200719324063592726117020296700178622276858961230985221632829261166726051372153641291724906564613157558084526878912569823272299173199639616352176433102276243997292749160094298783965643772434489438479154935249030220223924502605326902799673401174073881432402135604613981806786932032498232529590282280030529191995615408695131703193532897795210856930002242666783188168775999661966334091614580932778849278717514154570738104509813910265869040004275707113005003377369528320763827927143185633656791565766873829606294103258855627620114919853635676075761079097402131988267176615738266369684104687804719878493936661227506230106968419578003929714642797863181523292505755966941044116129726453932384602167430177148913031016189219570629966074219514071761361634520726553732954506637674320646119087760635306054396020498805454721187220450302046170751721301900575846210115884706572663689977885422284758793258432837211024541554961077342879045886132657006251076473342239657599795607003901324444732939138172633145428490704121684342626505105128754246704940105229034817661621577585857129706233150149723700462941998070025258985559710418405028435302382840848917273185513500761768133778088593450090309273592996546005975477002104973507150735558732207002377827494875695004359162445584039388487580639417723977488114169041845287803340729269867283894116300820259090257052019798582003288188769368266080941440973046680733584404279438817331794269463543540180893611414688552555894285934066064403043868740976613294503163397892193589124205569352194323946336336295992562661595368756606931898834276208535067318700263311808249320565101590989510694725709461480681482169002312541675617378741742912446256121400509538058615552832661433192614328672383818468839152925305528629473145066953924349991117608627769540575832952443003914103439969900101665318587507635287446726285730535469631784765270137690887049233297464802358758170782253314595296917051490018233249638273048101649411443479990471082725635410194632493906787655893422770947136694903032030547411628050828502044064289881760236639725382624961610719878439127248537230617789892426071277619767478558075828134395925278283476729448933406783363065792622948003699130533678247559104095849053813547153129269613607708983721595510017108347699008590672855606028441183378538207821836955260689429721449889733794734485110128244521355790778775679952184619843695488524933852943870625294453548791974128442775758491841006622239275319127917269210779434373466112738304040297573020224732277795566109615002792510757816303962908784228360807946111252419075766067966402706568095604368604929247416831259629312479754747911570718487356791845590642408331418029677697384984852226487144071704267967991352667981434759420531534848031794244790641909043093357548981062318899277405432993167010153710483718571682378668407646358584218976361688199668758853419162408103121123151157295501944749363528615001142742208062758242334069019838528794633158522726429779778582506572731764562660035224405879313903810938442014979801022064289732981700310883442593251709050290932935407163362510476357014261258850757594732581470499314431290452166827173921105164355659198952293110256592408361935269256438366802862906725517247184801601434137648483588838781474072454630893101169041247339392372820159736985217890271018722312151766134762414543849457374877628762590363117491007716639787529801465908790434373771388762325044177141246266859097203478695082182512870693153127366170313979334823965808015761194911699701243528901321731396189884907841591669513537197297616616133355306273669856268618660169634036657553599911668317815478652447543775765118305347463094074422286277571791914258190242882451085536006061777414362834193493983963010721918954239578730311131323114091345150738674040008927297193205220057220455162958565051764800951864784056459836174371539173057565005671295963809585579293740695386609205465777312696174211291128310095085677648515615264553712714888530466258515909767349093527394679966204814515697139678021128732404646113558847099292060341219782766002271458631277009819218410884638204271936694640654772866550241597560391001431623142834768028930652803821337441127565150341937867841215628418489777912238506583578603072092596765112809054170961579683301861675723031840224034233581559207608192940729017188104354587772166543499696634025222966442970136586679787579547033348076813509797924010577531997786464947586300027385019826215681097942874143903656198618879785519053017579623314741718634744156974254180198901095205314365218679357389120063730490164814608221128816855886911086233503919763858403365858607275445222146664142623408432514340950227801802578089847732951874710976269228122895895037490358615641860365945535520390603552080261785301434200823868077341700139094657757335866306958123245550776951956756437088173279526384817673005013177961494303655982899710561560992846700757778578469318309447264927937082305534363195983732911669776863214284509592125437934971404437891968454519956788990091191321431513254016141446608143470150323300226486193906336088560667929619584527247706962754086910864847749281802968561196540023611606235873799809809126340569473113704668673848449352175270326536385528481681953825821691495568785702013982857050353284191320647048281382360468454020411830257026778650258608523354405644759257005934547751073330759614637243244241923260074546869972196546163718475651358101207724424779407140092730508327874227220046511931758527699391595050489761324993465332902352690902421242818931872729983997008980438239696907096988238038059107023768631614410450924923883996808342790546479949407935667202523230067946958777887560602004156754176377890600776414114003051038216970987540357485490600740212594116471504907536251920288153584601528558879256509588786438058694701938134355492404988294462100454069159043799450286039620897489217006411012536000882485911882742000804565399763127082143981706052475400129720583308777160558983781037111737329411159650714024451261050647777586499271735215559315245687872925758393861903101639083737179193549551665360688266286887934760027636572223381138277922784327129504289697988405362500228439140864816854575085231746513674016478463782418961233908480023442215270296968028711834096070716467048465043483479965847986614533808720024044930995887866171679901558433110849582679118264894706536554026586524876170404957468019232126185703732897774962709311861330145404881625138015097952644261653161486837766133902569058390388321715639063484983874822035396611673853537603636250438302897591980783965253414896260859632606618016686862153300091710029938364887307766045997374126921814481816962178705469788256573498170772847354625777720842203510226605959739178719853466088379368351719363562510260716766284231394233724931953172043398374874390535261261286236380251835499557514238356864350767274405861793661182972761245705186774268466285272367588009442927574459398139462095819987469383858272449553360460755116444398041248819078036734508767097456139265421529326289503670328688009290931951745201045245002544437777619870845968760134817233235824108629719386536009006563566577528280046899215878690343841729212411168090037505406365324315336585838368338594138243261899473142468223868036519321480762703197774043888215544442742074136627292339871078307652178526515663585450924548212033262428558491184449824863399663199767713680436759436926723859414349536206982251110637619203290035028625763370678710210090992723864636961647050433432608384880814072595495366245125836368880008640587668947633666333984803802280878408439495157271903952834748325079607499984344388992453076451835405697781137644433146045383073221867732924632975157762613286825355040413092094276760378836146621862764188367837192780879629955151417409990788645933445477373661044323181870758069762169010313117958507500287766786910343205761001339476535089766175822985112329895261676108738045981850683331147686302378098670328315475703712367424814277200676407591650477993637757144976882976614953290550554323517062889258926683727259424708045015094932051309288067120254399149404367787587986347278609453676328380114841759145344923129240800003871799442417510841226770551346108058403068665920014546764010964931537858051670743377584733526924217685614158285206843515888158334623022010565529260573921520286718830856056058984593012764248569297132147829084989026324278387133415285614235289189637941826494199829354901547179948928134517593414886982942959174410752020696578786015676731474911516455568946432237623626897491424549283376614117512331166017723808520805497344312651211637975096283778363667939946593545967152989518977147565927611864003900024632152305840102504230973124943593751642191393927091968011493864464013406717867792294151949479377309793061974165772676217336974988962192927623288770660704601246538675327939347325662834141376083217429635781120560479419994010480341022214726458296843960983076627376111599425510992288278269275378574533217069473312596863560948081731094055058644158314915204134392961895653494828112860118639993105500157421727112160529774783443519344127206546648647669560656084373401911612726302318177014332371928818395268881484251196996094171056977106735650426445940352406435934130568649128301971948685144232240192762875307829872365918904932709561627853261213506876899374801739062362006870740426594509859550728781217168383186377981115544156209745352902141422097556687311481479179258923711990118941401825204196655997272604646004287265838815041832284061373315540088474099905887608701349942462056664243152855500679296151487688933198564644795798039647942338045763900202948923374402423374929063499633513134569964449446750264764932805631849121578303357076733250824129280672907949942132468045607133309038504207766801538315342764923505474182929628302132500386237295831083927368660189165830487356171581897089841152721198358282964435161691597151705421763884683716581481083343827681159543406398010075886926707032071945426902836506458139837873690363414842048305241643527506450167246912479285013093844851566045062062451028135895158897962656300883457085745206333700995792963864807352824554869660501585834765673775855455644194177311909359533964760226519530450717603277124074865989115749234863762223752064399029768197028681238370633480821816720231179080958756736612456898589936357093105788546838579171253780513269156811678526776060221216047766730468262354153271808167834296874006773578374151377475000509334802620283136713897046642706732849083060594643977596726540129289590937630873960457866906555940850341032968644929807820481003172551476128328150439160398933918023114076387335064955805018183944331277520539073348980302940231816553140756267459392590680501802214417922501522807257091865053777998433994976586987886656011742112276190302747579478531364145649608831318453737800576704835055143437730479700439770961788884577818703178469541899968160489863134251888843914421456128983052898830322594622235700437261666648087532953479384516523535558172110585970129714147945591115707742173614692110466174586110724151760031376510522761463156309532976519278607483139317023995556737521482901374046568139033072949226919517675393398507319627817462919294289624013125091462771535274467856140107801392837212217601500493939672256260174738815138705034853133942787731151474297141836174528297346261728314810698656315548371444190978373758933323255079524574871200261001173193005181297704155012802786520433257903241820441531149282070224472075042790203013412046290515204019368671937383280932666894517533989290932559728344533033037159361060485705800332580286474236810663872898219158050050146590489831167185795333992458452034118314676721211189404445588931516307236853041946213309949463450563494973686462835436764918446655094373775364545413520764322040759001465318535023980996449231040272229211955049519756160758988857415730765931711429422309470039399017006894814998457273867653305457514915755517121677554210013104753277373008751331367529620406931061271077498488390862074529446557152454383748486810694915151412949737467433197403413146154275667018538005965967455168591058635549678661726228387896896912665322866311488178698985047664649189831574849036952016949304773450958639543666633179473750335897711520711435218659487927726542133068113203697459645803868887159301187340074673842536312605384241756353657970089321976545016702933147297619263666964798988406706311646138117796691935047847433734977091511350281661127960702962742861575589139419081780262059518035020285008992285150302564381540985170289965194858634013875964037615423956084066816422675211047095658446132789470088740359074947285950539215584748523742210797854121218136393059186171446677769701644717930257590824572143707309830157403359241392574588276497821713992752119914839778056867578696893251331795573003300277353914481003952451459134006598255145341804115625099435153575146125855463340390243783451497650986016939406735007745970167700095408428664793464292834251216941887591174122478286421298134790244528973935377819727855722215963023879108416887630541230685293372021331305152839711086037541507855326698765703969816970606115555918024777368955861627196231503027307951740686212301730855519963342590918805350386152448389144060485556594155823876733413813254104546626758728163228682445560378524556514333138994445727800804913198996532901950497341394716982713181589872740977573854877405088071067347712983155179304653879555960771687259531111541176912988465657382946954320334215686355055531538438512778056311575553450193796809785132261424159797684747503137657392387465157354791895274767086751159996730012634697557674767533457180728682041985898003781753140791168551075020294899073176418325686306009744882567777583341364664808488320085546514799127532651321068746544173431932384893994558912504211010634462424875808423052924641415591500990305568935153655507242626393517875955413391927119392078390594666822070694310660971005911742208461941498251032013227348634857751889141750439623234721853264329809993194145529933154997972811837441695907566822377080966958395951510466598267678241748464086475240239089268035266954453782106069630184174987040967632181543331393259287441293862105629477370915368288422216177508713275566468454770763715641124164438094687730253216025754945799217596754578153424751059718865450749056836461881638973000273210391208630497255451531739330093773982725304427394242163916165183654802667294196082072174633509931379684376860231741740937018922498086943293936007064045930072490916400501221947333650468526715058022168449698899131225042568560532826759115915702051304408495916614246808473957122355768021308513956214784411837449966756216876103542073134354299010044262411880261326194180184557533638168185814962296925244319496737716125758856080475948403718723508006614920944139937849451321481717084819815512001602679647164373774770925100572333933660125751693908520004252608708838162409136998262527592836212164456080450760464930474797807503412537716347916450525814234162699731673481090580504377484782133303998872875147455533681266981567282938574787174629700734554922982929861667293710503311335724759169634058479281097660794260799590581293701457137992764457208025852816336003357433233179915031566118812948140277869167776555616052961346380968847497458028041735150094742932284666847872228851924746195675193430598698666636853897295421611506704775010327156157837957872416180570435509370130379775350704660135301522170846823117113957450663612215258542498818048854762390784617782256725444192170130213586537494279659064834814009020165155073935361367335170659646976255402804663500648346417218999966187584657906521753940652797083226826830575706266692186537918285148146994324489654226272513057666592574751032515780921877401616964974918922181867990822600781563194017755517591353149060554979090463551548768539643601357770620669543737058351184574749447329599757686852202072310201818275507037094472742792688185237215620180698769306551395720162725708972802461921459049798753428286336641321419502966452555923725446995888100835419464168733134586785379742343762279690407247242547362007754553559593070412519260817456370110283062389039478609936394482396085748466841620527658912730612159255437265636613988323439747237169169896038977670532449605081502797391912492197865732791985771931841436404390126906167776650224357299715980177295860024469438592161958809738438815391677104654883936023159328837025288412211329553154135453290778784953281524053477143922506392499936822922439044904156470201766340899346343320953607772330781031065383187852792597294670510588024962425163761415532034924783752449875984284623949832645841173516498775801160443713248948574205681292055212412168059312192818330158406896687949244062165368108001392707700709261173295588915192475211385956304851799036338619781110929394281152601006858390216081556133478203608256089337226335934303200888924511772368013928863979951346491131387772387816772128484829890074314899879483379751950275281787611540856862939323997772929217413607122169965793731685989281259390393063712369972898282464387550137204300891938457229672322104773779231638590877289343478869120751581627143551038112804658707781401573973862389298713209579809686530891529432665261367933674215935737115292309566362416751932490786705632548275963900015312034634491864802501913299830394039668921778773557746194017760916669157648986162937024920784753831438051232805347211436153521721209641178716378371268131624146301142891217452082977219080104831172471632805067919960278645903746257951261509635927923023338202222892013441420687938877390827555712740470761916279099584409264824274084983037646472522674893293502802877745952697731885166179764762769358113700732359648569836754701502215228723147356551196946339067686725885804740575619986104800821867589374394892488104094208324934352851031927314001966315563930713568230680200174911836908966364364946149018952006561215516497491688303400963270561909018114565169018445992600547281296441668426492380194125529640792201897393291074497051257720346813927836265601952954437894438250206678618145068530747488444318115888415262001007570911214041941421397143244142314188118877691839817045870271926550949668631797953451665446248207295773089288599975151671058371795968394697259354159550508436866954885333247748015517286413835258308973252944811151861346080730992372767671924825383459447593405061509014713486025437263536946177802570236526108815316576048563973358526331690686868008158926437439581963989418977291699332076079376032463684507892684848008462725712769099929847694836060803480496981389209690529454267737600095849626406389361208652809514910371899845577751163136944827737863015494512496846353494691056088036661089556337583372688291072415871002645089340754045989609450041745439624042079885360009299667986691946591112260785433339265651461813312813933715251509786774201457845774589473869728716942332438350962845024716902675432568159385225024059164694639838453140848560829423642258065761199506072506768493643282403883073386431543883679866636632148145759657591083278510857211637992939276636681345816150245700461713458251711270497842628543921173770563275339127972996426989963269535404793245392183836458626142979184234955686855537673956180368711273973147200932984894742963029102875161690181642329065876518695245964884514811881116267526748755472889494554591267270722435864563911918136652829740570187145897982065834969588873491370726406101323975945287530280816714287678380275448501561126771581371569028836026150187464462370370514032766496392074168823258035661513700056530677594280512691180336698706742598397732889206173459202876129816666266380362089788335854229375760257848631643427766795249345711711530867805624753831327221784742486152777524691808777878085622651892683198557770720675604847137813391696212612417062595780907131806645660768382453320705411636313592138734519788431281709826860676117716257960391150177459057287122402063409178483635554793943518163367616845373843059093630961597011605578862301188418113273906520150650987505061557922150463902221370418783076227914653588191115482490569936874730096722795199595242994825289211299648624793195967715905974428187117769568947181315581279240583431340652629599518062974336693401734994048764964080134032302983139648405347896279159194093625532439637546703667058018775533227612269760752384799102970937926362047688204370198714143561969428816259541866512929114145877629296020074528034070863770623443803288215064438871755383715625513299367114855864587783980621849948870829664242588124936531322717783769991904551119356484416064504704607318450104886137573637582910442592883711492578278490287157788118364875022135076312090858743021946368900734101467472432176317914136705257393470699471252791226588049147672264033153659089160039946184594537841430148979362042668908224760329663041333760968414900076650916536948132920247342955096691548265961871890038878709169713757425461198445194225345064069245316942242487485258764162881209296035907632020268590001930001230204847125218644100264742388957733322971660322172285527376395555723531679318318505711983826563542967321106255314048359518041070326346465457294582122460208670121008916893126985675349571290089460745018773618246329826663697318424016226131604704309539896863679879665218453686191590269027416317091386369833477580301938104355492035751450882161660212198905674488291875827912599760911031802106090671534691546408842125430696616829444819044609070017375879701244390912463214745410580490447704615517518724281858115466672511435925073227338172861853722697550996966604368260511259596055847354402962099580316908718286362180449743213649775216726046956162945779247139318518800695098450472946001443997808471240752202543464206686908540295878962860676064663915279408346365454462924340128000224395466028435067388261598174504687722798133662737671645703425420653662566999348904198283746094452974142115416085536241695588600407628887737875580080071965003160452118951440585232300527093495750742887557045477267513954032058090277961596703344116782356223573817864416990738847985787917412815195999049816145940705403359199096710550137335191041146527973766421033685080741532118219966013697706080691803610528416293914552474305918015256002094523533937136187967821689716220675740794873873020028620965517364927719162052767100564398363908567783200780783967338704319478952920044715750605383080030505876016258380515700379962934824441144341369032532637971880104599359968027366903450265796472765733628426457111005771428867646376314274154687222193981931082216515028159020268476109129327638963496934073127031041243875473948661545907141128239314204302252812339553848551770831073989505704841448260588497951056859636732167159493665121094478997707308102443931990144208192209525782154970089127217685089517992213342775339307625979763906651470938412500520107447716131294890934581533911674058248560314603201359213165004843264675147550246515992920146298425892682110691691375698928405419830589614818630311301756580972773094187785779974215952312804149038858408106773225392622388322032145515502700079896310499372482551828374826524369842302893315939628688808345919282025660886322181976362620072115887310917675698365873434469193139863184169411302362996950480079248933245543692629436260558357301327165328606879546540043285384881985764295116739817780563534527328510954489131554398389745963079510826496385566303407492714470705216730215435843300128717990939756403567998582958057248240945946935234340217211392693261513944894273221915924058340025629343723798142145663999294659702010672773666647763972909027709994197755683042886669401472259450183448228933382948053830178624355284928438461676414649921878659028717767387211623847124168521824996441519404242209692205421501868728784875260106565974145865464791155729462217049588525464793209378697252037343207964319435169256250711674237898232759050092832919063835454473530474357094290829079976202065941542041227856007690750307901892413679686917346502157284989496506475080728019885688325918114431779374264948179714259670067535015116931369619711081104881538795994472440761470041212772970740783864322346286829550321297443894452193248331661830804533586971606623104297476370042603528331142345889347410009798100942628634003277932090414917444079221758146997945729494127082517668378679592347204246120280963789239075285445105350440822778171273544481941205072719215606230633040465664618931038867027293543255406353943968839920662758068347182823324788021591981868054829716523174253940201550213449663946193228895465211755249645628516381411989592413708138315899989687318412692814524791231981660631254618494158943171698833562688953454361405681345597403447177543529069781893751875616439440370335477068142934615977205506638882296318024008562518070604226170476358020326337618897176475882056860543264075133456882355018709260670991185801160207829923914499891128194977280005256984441182828415772911580375614171630594328201820389614612723354489454477984523661952773443208433268629393591581244860838327321988154644327983275256133417146680801522007604937784473008929529619812608714732066847985535474095976247386570886166866246305220673374735212587180160969249318701248981035435781127094326387209044628976651031799101602669561816988229528426703813101971583644210779645944854441114656843589736631735853913936872736749096571436882330401057395759393658439518064141683534225867822895745957804402848830357503292358831402075095870395982133174099206445012276326496456215070381745256196400076298075538252389719333454942196463962057838622684277306296704370671885724713300821844016373869331780059803234515246264241625664987097378093699384531615188641023308529629598328829542123253691075097478509555412181630820233957992995703607239819140104218665458423613752955259063413285490514561596984793850489032122505684245746801686139440827492401987842996065198389322570712053690668365670503395578456164086818508324618499666686106531381378694808727541668664378050914254628929510915909299059528857870274966046097276784060381735467605432625280252744778904852638842270527267456365230641599581871884580881136180035340889275210211155601004679648766484948802038632473687162132319875945946602855891749062559576466521569178731608754031627821014471755269646777339549069721792488974269452670239743666781004184419627184496296262708455467997843123664004136138111310646194641584528555674980999666680530462929020177576598483160264224411877948267222469153820768556677058889043679735865860841985728811979571809704810923691150063992429442801655482691189904421748631921528460432721362570901248077874557413192226130003301403869575793286695516522814407263536384360471562084451763194797145440859670570947163511458305454776236862304079302087878591309851625016111139462347016260400005820432872021301919074149784039577192012407278692638744510771267962796500262687821489081454519250128673511563681487628548920115931086115859304451982124297719979829610035893821966466854176630723779391715185320832529525692498856749340505154453363149685122577814071821393483433724779516635138679595873717479969214775771423880021499114915095782413868279854479218896138795170043349764992660886725763434882247644874885157963299728421940219891298604479721922707742846620956864828921600024570218804456537144374816279785420407896141229038855551596908956615777590457483177937631449031743465845876140856697641741263858798385594488831032383906504627966103934319093947746393229964263790128234176024413032199944433130222305604207338908159806944029124521137274702680300681973694668703819279606177743168326731585466437782891727512161364477768747437173619984000987577832198402484866996167347325538892846000262005726784262437908505167165630698195551950314941422848779882248292055047927355137581858572751896069619241496703868776711051424810480116734324118987462936745038051824091253337678028540419793200685087681518925090918495647270732718145702235816893297001776294689024107342865246145085959442399047617868245148966838608375418740015725784011629955081196656618296488425794822924199782761433909418935067635966779830738068298275341654192986222119352475069495100170885326218562485978795636859420499521386726155486195823593676220377245837138201261567563316716493886897082847710138539336984901789392565811024977270745058948229633203314379002252789180896701913173412122355657956049641862426856052235852088772084080363529184570130483525127940800675787028300210162087247028462858985289602597199250378404568072657343441117794835527694563542427144800008362030603568841006848043394919180366553049630123971012009862339393344008595677695019415376199676574464974953318022931283337561077758647187725454918937849956623752184674783964131006825389088321281836720870081245567265715311360485944793810481250007554001297922600333888514236086386471526553155316960131801362245670875739233855690892913611779624032019011923890548548773552277004541445491122924687329956586634631847579127606899996059938230711778176671580428544439466424983502179098404673166118533169262653616509818264649668063850152200375596911560163127715765388452942026201139521581820759089008866492046908782987828955221483456275747617533672132250980537254786479325392146936167130732375203664493081858995569494813682897206220552638456054467094723102812466515637301015796601380501402925089227525339372017866601804584205774539038504998370172737337283812105140125761890788853156166230007040240823323787217736570023959969643060114276867282784834154562289178423537802785933980875489353948754847741173694295708731814600260122218503006341930301763369141662798092730405012496550134318822154497681895965658979163219637203783899783509987748485138313004041474662079327627793944105338036883700049934306464217363384984371447356950635063469223308327147870919563411791695001409824720937533031617427269920353748374615880056650193419560430510855847338203670834976776128927106496120965770540000055396920218712933127177554853630461492872593136749329405877090636472088673122696447554740541882362075034705064445399188758546085474402336811056744608837946071438284672006213779074314288928284481179681107385796072158511003417894488153448747681257923481878905899762864119306467188049788543687973685923844118990140042081417921905669505203068735172801920386373875230147899591416190763465863061790870822993284622634369466609264120293571846749999960633794489280741082905062518182289855610198966339794469874855916671500586554865005765675084367630877884392206644448650148015874911492510357901349504879465219001076679745206602659657741984175007210354073850744328104787755777046137555602698396335297545418966364581719013486495279471373073573506321526531395212754132322655642201274949229263091163194330253909047842130988677936451631455399786476238414337841325586525768249314520611216599875249414007262316803434410424856032356784448548768084101715187439107699763297983517096234211888647191145244307347976767858039758303950473497952345768010956997689069934606222288857316423193076182690371901700064703880204605385486473411126790900342656724303198174256361930983530180708554559062048697566498446848557153504578852965002944470151932692685172824623644000028379511683258422531198646569637093175251056231097804905051199464942356443119137711033438263108971750848291854465411704096832237444750660881531042672646147725344527245678119618702392902233486171379760687727537232711301098063464642829366302365264047723123164218615806179757538243862077703488284897758671549306356413709832874053710626320904588134248951244700937568126141599197108613611811026110550159905771440962703099839731930896025365437109646751794699642100421865024804206724366617619292656916542830030280473083251576769201959539665397819586700531982665892164675628570001655681797734879453356742613986403767853496345812009411319117520957250744109824477731209633203878929857232112482712479259837406138494999300319719879739239270448405493931605179273831877136678018784574453409198471217269115652914534166866601646087634295742780784304768385242892531629752830238862073258658341249552154841252465921359376946906089480729435073570073343732238770539710189076846436667721464792237592297524404519229921945532468913516832009900703201799833167256833857648397339316331986366542258781842981415411473866435399119301135704818988145692559266152770204696988828557694429086466907958466299989686435481803967229018163085769922841828680876063487016309698585638124938352289024745902139787870287430831937610232275764956680452359914610282304945038288182685124925455366817181289978818858146361746468407894290175138767788171493692090978886645580679832119678033115733528644926959018325261343629755110241235943993861915530165038085081321246186447697598528967076711311639190094724411244568151921263702160027015091017070322369912025005843923146472099727600251577097315103616084512519098450098845179560030074093634147979276279053385643355005279685556943086939701363874664012243048282541288219545613483469597264674385411880829666263857681120479213655193238047353440472090721285128809575289451463678447289061126537541751033536922788367877466998060329485831132006149397522098497695692280121865271089540777733054292114156450985069473662780231281782896086397436881980958149718640129272140255351467778910162493099099671565162877339368729616882632047085167737343657543695194061184350480088988694630978077992311881141508067922970657599166884736294394825800880810355070224153208999980769901059286791750915921793657015857392224944921730506037829916976199897020428312345741903254938302201326367899309575825590656000977062514732301066252093463343637657978967078932464098696030068363621916053776141685794950338680785274134814660482030636299316548809327679292700176251669688191537766886652915154641207540900519376945220641587006889226977049147946878709767692006784308038287778323158654675809205084879400347827105679289961176932694501813832729424216114162360757939525566377545641292160295707058371285828531066949506467292817921178866450913463755388203817711942563584285839203587437352170796209751860641603363243354061106999513545438803874580488727672055579245552641293527054814728267604653839344644231616102470148624577196776242669316213951745019427836833002528652691495917638821849021904957167410779897118636022721469325769558020032163513433768057196041159352331932779860179177281399841274942408362336369636676775549312494784403090541726487747951340145569878868731505348844582170215022934439191108059437512145513109097318254865234404665085333532847627653558014515947868449387338167901971787909474941645672848787515555286278768433885666362756310706831067347805547210146701206078841655650528166080404456285297270879427666158027645678951976465638122315136902854629797795097336804611230576347489888598717816213579131246452999771436907825350911264611537760790152869606405406314386805486525539603882369388817138928021795351690846094339762645960457866621264407192677218420473632421997489235440175804700074588178364994336404450051602373201006493482492457265591462816815622725581033035351432143852380985207526820300421008769231574283391952403356236875227177132171508584221133071007885227065525538076975936886564236956511059106428825046330268393849018078882469966377083888627729424089451189833584474114670392500913198346241068773671405475391654868966592307893198167744620453120461564872599938197945139897843277768019516594938992385824407157390117382464671798943358274476988721133546809180911045136914935541446601998240649317437190071834948925756116884000146383751276459573679834433887142421219476264675179279878165432016037444522832196572261560832015544387466311959661137020477307124000042809268084748515784128197473301167568884973870544874847919248361662449972701608481705460806401269982188849869605929825742955352708160745266093068544386754281099016456212452481039589034364537154255061216019287372716394570858752564877341552929258662317089899224817385734881700574618608786638478698093593070954330270164965648485671079817164866814795324981118850338979214529856488591517821336369767296981637024094980319370469951925704138629254018310216674520139894025349266477491272443969648248592484684550475828840386279468143104356699754571633215933037952332541252838944562024975409673026135452389625444578127624337112708513744268496798857735773128025361895100175541945348781702615461024032188528715102863071686699622621581120019920956879978979075462072741968116743440335959233462416863812632094062298274175094551941912291726776145686035079042015175230433268617142806714348467958154464522992123342503365731399846114361991562670592595850793171345927586995876183685816482783379380519866830799944856284599399324638047163669733219472254410549167610886157970080018343166683391026912531010100963069016031082167215846397078556565256271354565650898686436486966216785710482649839755106224190002809611075540771155286133655671761790520053587682772810642641819827976658297411935297998796637767517976700147667257386541112405563006092454609107265979860384535043447871501956649142029592505402710150245260622650568398136713547840671755826086055465753123768737636208474719518526692606997992642198449548835262269789628128581958399115706862435398000366307619709199508977304493992079569137794213599787646904809685123480672764828633043092096607525877638831245714436645418760532422363958815244561999493457941898784360976353448998122346585196563468454526250981027594547328432169352624269959098234141664060961029478301214494587523438163555707940474313298107707302761147380183425220480335144961542362000479770788035379448043148822603292015015326304793779117487523943473731837531194363044067247027659023441617065254774263853218944879560993811757704407674013158108163495267310128948920514490869401002814906705596966564690046336229315246154321009461920044927385951823859666603712830741130873506298202118374642514781764587064973470996828460427020195872039368670963392253553393511090814348529122551161953780962512964206115023278769944057477208443769004053884189483293299232467836383118967151303999272789968483203413459944771367539186195716802933434310655766903006778750500002790791438930236283900738066935699917211274784120986614343174520581399630765245947685126023991565975533624580237083166101415786162295552575426818952266003730914031900532490777782155457111289218660483104934750193088864758407569605679660445643653814276787401915920530925581099995123635961509518227025187293722375815308373442568699858859749987614752874034713604619719845263945038833664743737905710907781665725270470484738501171241339439851323470771069343074310595868416750161048645765938255296280384098201797505064843984473007010178966868689922303840040958559109549000789915758787604383793534559350582571690332817625700006882490550240170769117554882792439675825134894076371824375944125284966682339531617041682628510262133791265745105668987272340396539045815557906693988245398215186439876737672445319299198443449615246398856994316105986562070752417128090628413990982155547691239317117326382625084796444192927156509306777638212659650017734461676959618859770255265557900325150001475265826803131224745838158409757857124250450769767270626900150790532964283731111019811980043439642968296208026772867478925288376221112151789937712131710992467888291482650043520839874657643226977821686316095151767332130747585234294012256103553662482868289554180453232496443452160199224400145074475262134298652633300317332954195188894829700574881627041136529271557189173227940157934636899904340213832037088398846857482476571650304560527028477228305554317704917863795108314399432355275785500736909375213205938632654155953085840231039661602991444787188218575299275666646855281280925135862908465296795970891747966343848045260370378772097766560422945006384990680613094546084029014228980477200309099647757878300896759631422027425230596687592638453931884379472315944747010538486488661744086542959787361128371416224116813772583178433477977706085048433679359658196298711214307806378458899326056843034502082752133400058374979008404947040587193862817064525740873945607212788652821159477885031653979371647682920105523736267904053337503662964176862884969947213880071927070126030842533080204144155642488965030740141364122410221630481441019397791294585333319729999152827619797113252626402092741935626718946361387952558529541644699288675916363427425447574811579363789107633618169266676421693714467147348493080597711359373952879463082492240442260258763376213914049499339749197764848623848599761064425543903577927085455888834944523511562459772419848734177955495020675169905374079520844400737405567894965729030699598903713099366058160826117946442232337993111070665451070357579483273253707930330198362110400408337113911835383739412176700641893208069343813400270195242128039595960146945972034048718540902145619246288586449513898781998253300844050124553340737810970676741135622603434224044310986797354898970494668704825921462692807953434186484539997311808859824221566623013389267610176608156791062532528593781709102096189609378474193490719574311427282286069875555722027760794694038341579089246204075450993898508098901537987422529990039390893249310581863770836020946772416521465353768567805038021697556202678629913963357829486831098706958933764046713746592636773223843536940832577607843300749306900423755044789803829822120167508881726294605273296538853254629796737274175321068654532096816478157434082421916453504068514021815388126982580376314171208629162524235093320727733141533357371552737334201057955240815074343851500910237128565304740513081761529535127264385758772401312099282738270063038931504673395553174932246604643882639149991018436043881557025692245924072494702309485987059547807618013734151750728616508572006478032442445278543119350222557478949017185780233767889307323767550956020318552877474807973315657033974327974256575716058142225802943005750293733289263118025921988800904130394518883971673353576635844909948382047206804527172050328539344886332541820200505626256838337482992654283099211162696143628573980829019425207247124984024889146617564258949283803140955731557222063472366254237469082144614833502068650554819275827867846824083570721004444950880127002440672877363291547906617182498209510205270519418292559269533103132617224519342861754812099658728276352912880676373758582969082944156659915880122902273301323340053756583522453288375397803492600048310965949695498004471232023745630673124444366785488721442823529050792108525486489069299893589763288535565209684167139920547592199390543189515206041541606538368660476603446617729952918936212220292074189442192304124772549190760331150013279997446401315231155668188378713383426475270550294964087426018508746576658604333781964385996705572582109617275065466003326515374911052789777469342910344243784584736699521043743891612075384797919025097782475625220916866324308406443272149848256727083148911303742889789617833314064084894492412752182139079308470717627310463123772229761119882893165715586777285303964573506778113806028671061043943240432609424337560364182046425305243067472703736095925814161534717841274262221810944560889868072508024621549863773423990904854918174337772235610455304448510874336451101726015413721379382931648909717884203860365301134056622944772961333117719029217600589342382898069421592760535108807355294548928189586840027772224708122440586992066718710160990483476309528097625875069190374292773105600289419085698238331898008611186034429490456647864699193723707017542247655780202681576768359495281423285910992135997634843091118182639967311060212209186821801543101476479970527028175917889480865430707615585929647750110151271209707766165123140799866037441929234823888182238140743457515879475511933815666467012390858018326500671758762009974068735754476160601405038588019366839339416788098603325969910061371726808012671174235542986870109429435401702543761300056896675810394089881953414480300503876456943668490903204814129726126008670015568491567491162502401982724991958089518945553397210503572065435753731927274047809095196744506420046208557444899355541335983742176573910897703387225843065040567674864476226093320365319325884765833195736416932303577832120981088062994487541891465893834164492653757059102070385465546318254588355646537471266900920700812010647079910957844161608884495449524670390838452506288773955509825060971297662198290928330483006286211577407146821870330703670707653375674394168899598811155659878710055397349955651170954612022618696260555541960672076370125444815795271875480875261181590671909169848559626049095023605939648309728786862058515123002091286732527798764712463442735729932298565889712412996376818068525350442392279803278785818423198589714797704736612034473101683693441728141575121718114654782773880433502473332876986200534771744549794324294331742186419529429931484773225219009146174044411906007458056372412492885826212784090853615632734613359268050721069029077492011327438565228294869064151270620044503627807389321147603935724841495030688817905753250319189710461367458041101770938810204260802603632146434227941376465237433097057819899317783274501716152505021232665364650602260850138611882180837507915460581670300242759722770703675635433190078474605482489916145815333786448377635222453508670585671657697879201966445592818191789330949157830078433842753343993044280092129385013723932995677132881874131434557266088475303242809869213321488505359567344829481580254132170929454004662839317105497936970674146043777043350893417609650067720138341969107901716521112908176877337518825361187003167321167985121599651210644299731482974128290970976075425674000733096093870980612818538725630163151929761793241391654841038317466944703547111970469682121539252647772209220694472005763566617644819496452030880337903676208464646816246666122673920692014466722940757861223159958874170864053989156034836052749123228523594573258779269551866516023116823794136759248304047862877550031470281944694956963411185634001805725975962524960936135226338386797055962276855522156640051209617432561584329816731788970771218707784426222244269690683691281608343159585758426647996326344547933976520279820889366320780188321194733459821460566713182595738831359713736919281633899911144185553082925041357026321869595273178907121231089937377840057009854250568201191900054447897926779772291572313443031937016872073771478614503361384195080906822320023541314038341023724941762643895690305620774687607547806659570282030620810445043170661735316922207920701248188994827818715580588123733899125176398402465441706824523057648581671299239569073196233018423853962734583073248907723650756526675779542810387867561755289121869656199174089479845408138111280737639124551326452901086858457056610298707728465361575715253388943420389698114455328324603034570056552191921421028778767490499900057381924994546811185248574869279689518688481297091364012907397546994032287623396315530917784595596149197329521399667530158214296913063373170698471166614935472937187371964019773140210033097373384366082617593129220497876237882581106813447467725446274790028505894085667016853372604743462937299761654410871257126342788137392492932984943273113836908895553316398473637121139962100124699193077447428258796911073815569343719759327504665160791755391840755573653723072998000923456259110991045340367810136532213251113554037833611522375375026233087882615906953976286428730727816475660924273312793936593854286372620482381392476210394001114356751504936356685356565915310634247328220274575200052541899289480609564686088357394049688553125778180745334790559828366771184196447083883936504375548358360242031563585829640944234512240494143647945415278810463983687295650601288665521343488614465943647362506598686336988960949473060354826799841195486395372888925620908640422244534947991001028945571883719507861056056721753815811062378147085122199199485743899630424806805675741832491295700511109315460106761677959030995224991602045919232911196407460989765604113564647231738397683858202798099219327228789239118098300701764025102114510553805411611087665992654961723630228093209516723346305365387522689842650099071304492365569378384333009465542084381669786619563217532043652201893378448324856795429785986624692771922203650293084632232443777820149390511552850724006421195079087360856992876450857214207580161148235691794295565485479601648068054454280616452390433573609900455410334170040764256396403722751791529986999060628554424522638046043077132702034228362746157787110231448615420876851146923485135748962441719910901221847996186637541401684129398149271366341777891197955540255772456912648409843799839645784271452858574375184681037699574080841406559891105252429908852867809016854684971515874954285608563483862413914617705592328019217048975145612555428912849566679006107598776352145244095308561655647978134950139827180286769587900319672105929309116438145863471419386114345479547912773595554371567847741300955952138480469279361755904443878039946054685265867487176514238681395335423216984461829783349399821314129649749257402842950951832864066459340999518698208924668823906026788153094747628021099930170560439788996473212825911506285291670623419156844989552488519633703375948938735955880560388853869288268255262277526572723397479649047027850203330890475527199862042130967017650656668184185495820365254712882239535343941274620212052741474083039108564513992702840692987333576427449384190752927419594189949022404938811691668919362130670446549383564227048184366887947270678483388431756963349687475723656103855380005963458424436286273806559182612727736109903565752506424286235194374480284332689592996406755135764951460789085957261143381268970569011528727325944476385356626330142642566188516652709153180286966412044948086521386162521771487433946827419511098990896087762783967862223146443916657154393176510661138308552052610569991636677952217783615127504929609868713301977360282538228222656378861804140928671041735353517719279128210142856239292610422877876149036583792174484051507378234728848728670503475442941349850548441947671912003784361680310079582444368039364927838932135247116071152983079146040778455043679427307722845947246817678206951267024366196649431376187788176486079649241071364038940752220977383299367494878074699105825137261495771449898514074575015957899485872747700468868231740584474960507498364318614641076216404942102682261036549757958494106394673827497516309796491506969980033610862348150244187478172774201608434698692055056372129701468225420639339505690960250110329110827071652771016121593081044767259487269948504897350098235684793301236286037200348982530801451204176738825215372127367773643401699037096095161018910580818629929538214698820939721119772932867245704754982012062214281349283873041641793124255399236442474222694478316278273831433973517424224273642405813979518383984076624190569340233600858724989704686135306985734249234662123432866488236496828270466846148680131901333153015367676384433428263614191834431221809410023139015448393796501936125429101471957050733962891210069194001249458005064527300158770167794321652096369133343450982882552767719282695465306737334957625472662037651011692966117274556450984530617946926849286416550602359114088045336699974588351854502373376144616625196604289714764442204395822437900133693510159397440318475083331514201860730637365248495259913937691190598136599619510504781027872126585777644467423006238884748081726551862981328625887127014410397038528422510758225316680094793246921471208732295046833146870211434354892481073400388374233969572556166468609149493050531410672459325317974237705743889354632306144657881957299135088629067699365399847842031240350768571677274373928194961548416406220087766306100721165329519567382586066178024649999088258646476438786227955033180187725230197996885932351892107269839030384002992501835632276329416638619779598011071585560768593620658176627233966112156478342315944875882142217897447918703589497848962792771686563733547999790117239045175107752308764182329510313602994967129458183465206118913402489902459875375976294039007237716509370919999468831139566514659251960218209765307078000284418718249637253682088353599751538009322500453170508511948515228562768012299766862035170168415041751207903179409629685373125095576658097877900117094906475100390623625722341193465425262359732763792083207069942110185092908979261937803141989972315400862185504531741482163908573675306292611926206086684505739806006167231298756201174269740564463993561893953000882855337623033169250921252498404756282747023934138609166035671956152312673200592957997088760356283460837170735460998825511819448378847260203098819756940151792972560387036766673746293126334658982416881626019092486323337249193727826945164389960020809576752489949100893400330613788274520109499497409065642552673393912206360495047405104689151980372620756119288177183810711844219569871200405778565037672454119997416795508961197678368904080861472217752131759706756225248907811467761413879326729340351921183680074381235706335190227566250716492005661288016588793201558233814735926857846497558081553134074533508038061047712477187318477439567549966810901683454514450905482696156050080899288440951463897257346522449048685228181450092596815902319852805455856850697509868772497178125167230448044106003863198631037125145596845216355342938939930922000979771056142659033234850592348249256097368263196063608116851526308599593310279586160441748343304700364416679271726601511708469258852532903987889987348665229866592157671766778039081463083246556979925970684587530688238448389857860644262564055493928702568910897019131499502440423140162650912086901961221946799543116680755850555949269762350024067588001988256786216100880774035886009821506341467655094444252096872006691499593273555082406198993830890286974945502052380729815913396376147091279400972093549536517448163387752819987381049556148912716677758473576110576238717694472439293039543018512709506441326442907315430250278445559123364405514371754283166350013655502927439922310954117099587023305260619872912652905323025717159061068864661025925536713128175085428251281209103944671423361642821748188034949972024203870344830203667832184012200446291126424892865091709568808854924695171267821775882262622576661694753920827611522943316221104318828801080909202947954185367240674199119870826460664135376327642847155763035826438007927807590803460374449116983827904598334162623590653861227763089653294454397516157761730749145854394721991956535683648191957781255611991598962224091526448460083140225199228275871788951464055640835558968380021738824451232306549076742456300527360238331731127348384969070743061531437749255462049243060745805436547164423913911571129431609180854702849325720062289478867389033068805097255950981960726534252253380778128842582449914519162367754668966260094878270289491964502950915058774652045521753338995831212114451283367333886442720286572014131538005601356819829665154676484255116470717194489199009832925949242650524657307459301822171998110942759238748588339901793695691590220818599128437015331354336311635339648573323180889247743874122278504848755468996921796000505731098559643667142970294202192633377562344963398755727383514184668403019511719532533158361384206006164336762764640696799718282282086786164330983475049499883045815889995010162963178539551842481203138697155422115833254946338882104991718964076521781981614280855037474136133742418876716437953925132754755366202549929359028895687834781616667088208613427779903021227412579705239708188138516116645913440688582782317506414215231332559469654961873693382532970563160556097640118519876853183022765027007032492839136503077712395566986083446549098321816331259798204662200332816131150114522282896579313455411362897236527235247002662026340182636436936072167176618846631847221177402354685582879324115151369166106604281275951900802760495097729923981769813471665968507287880445678694500198158334507758416331676601665338419738783721955489766098480536641268935612360564467873290209099722525619872796643147754180906000098255578253739511246456674954705097084546585734398413599745527781926017721879964921733803124585661785240253868299775523959909275603433180841767519503210262196825220464946872720077768608067032172059567651842982034005419692850559615973119696631511467023900612968477333306741944237673718804842719977598135264010382862559712396975337144955558151322369946688026768279343664999167411401219443517568779698241228299356593874465943427005986037576019490985971110319137751598748374741091097478474206676959083848951402415130167756454438115333315637461837801211760916370698156151368698225207503244975282415078500663741295424468505650433709344232919907708890052007916193361595106755432120110832547792502079058942916174026972520503686208535655554111213850247972705802896477745845563331952125933121797962674313701202480341486205738681000602967484533387835914688692815148260576572915951167100961202172877106573935783075096106883803828469000944404150437019768532750196199858988763948800941130210373296859482242516129331719833207341054697197689523060506679910625071908613598480655760847321198600289819854502085143239035966702130649916338320912470569103152783824523752928287144952927145686295153240217267985545853549200135398153167243806325572346655780210097284516703459272407250093975499028056414873647206427645161462365781480722198805503141300844594749683630845324926577333319238295988042926883533314072738111723155502167880745388454961870334444131730239570132525521831345404619572508801051700692824851758644105459078247329496090600039280498884604925908293066157833102370943831675292849054592392913395423828494259405470236220869186829489675328744710632777299711067163355956832194110654319973554696215460490926164154036703961562627132115862388948845312602384900561191629614884045524255099117261154448724793280809925823583133645236820957068892588855090040873299584127954594862611056101761966238140893342452904806322703781890156497053943688992374768145688302776104785108663957574736520455725360037550155641437875411266105059109120858948426820219046758853967489616661580642011549142263809499032671369425974951005293053769597990569417221110798880892439210141379733155987408614521853502432239395378816689579206331729469575703897215872495865679059152059105757625242703886693370267868100451416389142284062968398580198248017099701383387139630354719664865634570800816595233165493357291313944811053742657709273388418230363613225958355855067356697572769663898888205571946380091883228379672549886331306677047872011041038768868106360637398392739337629788843826787016869704109729009064051557275319673364833869506625245046520974858730628496722908655826747206579493980154856712764946076996569170287913689526671361920464268144556521730331067704136949247316677037702515968708824725638775915389109839891292104298173979198039485625790221666134079020128239647264487965227508082388380487428375326903074048427928924155505113030356975170992784386430853863258188816926019535953472006754231719607830267818941216815965838509766076748479704591313997621357308075757334823970798534575407813331497614487044789195857852953672004779781390050419904928395992551759044889443679458873713745085273931656464798755753844069808149552716047367527494043517752445915710250829883506710111622020437872506539455935166418426882322292410155840763703222029706619168806236893149916320614862205285686421364772971137918477050734728504625486789519235787735411930641675359928355060094007316308445903735464033034620169174959471837771537409094042050356005227664239555005889179988430670051564740688330146203239482322467728780762453429449106381448893093084047652573003400835635522685440818372448663052303732139851303717593246498374322371429000558203728160759329970428845833285638086005116607274102353453428766889954819378104355189245882700476813654535549983057958778311024561412823235158604852344989168124511111427361000631515805071487077880737817322738792117064518387874236722862163917003385076917045473705549249757635021388756748630165848877580296157450948925703794499416967680104591134929848831142641224252843010195435308730026465051905435095786703398041681735057974907257901895116841278951158570930982024785114031624733702750041311508275131621132424168033495852837631721623495537897230968840441397633371835446318356949733969385010057251740636651512600117832311189544066687213642628587166556797295476086212476783595064778385414555221858629153406865480971550792285692086408765377584842465056864247754833921531226311107555562871296284379362125259586991749797823085153504292259191424251695573933619028216678498659630266815086260339243407217887609069086210795248404288158938857358566114185566470627202944596269164797585877817002066586299748412581918920002143562265720016319741358858632384630011270160184147512312989297218254440517823938309323530153516056323613234122144051143421918548990948159096740417426876904336461870818344329487097397463171922896015321898879637980914352244004151611710974092510335128086203739394413925071679714728445496933738437605987042801649948700936915964496168448241618765120957651065532045764179860880675814652138721777512365633066673264008456687433385041641509198973983302700826010816262821610129380911147936443304453678368992411617805897186578530804917490501499291968311679814870237927538844052933440864352670340704238387534593163902568536020533581490741990231087494018120352204488729874274228006390758705479740056358564511365293651093973500498684213385146660478982011702657618147826727830407303879465337170817789024153177155015388339549328119835551707402621729123326183702561130822963679671094504223079412437335789901444224038620628143285761550173463407858340296319280654160323923116771135941475246391390205819020670861539827718036276059326683431056404702814005268077261973577962239099904081206073249581960342780034945574267842281583655464807409413496291742998721527386184317537677056784366985198166371826043824596710639529071275551176254759715198269423985877664284568466647284308762214518756138671156374265019645025291778553097859990859113868458390264353519222056763284582455162043701736760240460694046832961493991057375879156729664848621399073548049695856259248720162917001960131763036728637652791342467664513147027244780690073437176733946821954191854038948293655221974339826912544870123367268306058877277227018203374947054916477758642655700819051832068690757739617231597932911438682957287508604507318141142892337094628390579566381705934899904950390325507017393803384572198825494046554392859465228094758972623487020392594783891166878532682989066393181509403005724729257936943009931657881629346254739700643698892072693649903284341607048553324596096201570909780221550346788607154447610932877419259517436778450488624421481909102951375149862680908830736416593927675288304536445974626905992615133895814781656079371784876602869510969802944170585852941998934951709204793456923644741231713795246502401377988513995154894373097451797224425889515853356075767359122295773772418661744269226711439420238398499610188836344496375151999631654643395112107746170467791170266485967373403205087226684628768998053298977096917958913941212811259304743337927995358751180478273539960961686444921749841066214627524145189585608364736037174907681665550095392070076844116032218794008595697179966028369835438077376551941840963130283647912383991010906269206293148156771185045532183896616412167514261001542682961200119657250543232607144335347095824431690936496802345328361434408066640073137580038645792664018480915475353907543188806103569330918365702608944851307788745091910440580952354387407168381396804352338685215098479768754304194502487564168465890883732769373800360613874192224386589929018477741607407011252032617921577696842836925423724656916115626275043275077639745293609930634458589765492738479715103394153109370097903537674923375501145536141589896902114555905747621854264284668622136632570690518538993401396572158847194637820801061448896054210314408675624101791747622069687476597925534251104655697870449963320286522792073156011405020525996498006419595194024848958376284305010381980518405832738345046761601420230318425125596407146689258312881679300924697264040995007643790402037562485344253835761535745393052779437592968998890956254387039576282068900373258017184644735586571281981293148156012554595315021094688193843946828051473636862730637122799489719757498310956482772519071188573150593145687052892187163391993229459165345313304995558938147490967672258909544579299035715284130359122052054216548255251251550782097535664304382709984400709149583075512549683412866291115012166054689262722859291665514945101450317206113135051983392608468057277826602488689032865917362908809135850067100778311999489949032080485221729161957313843958145377749090440936388137110209517841069225571184601721764441327041424419850781483266228147372806445305471278914420754732560545704821350735656939159330043585663559496368899210368370348100263350053370978989939310488270696954588422837958010662203579357094050578133695280184613744850753945696249216774968594242058556062386101484516780995541459842122566114050575156914081849311639064432343558771847643976685788428519510601249965409109693183830000220957534539937806363338824336571398036004114455840084934312545013243523104812811314484755323893563838249915046500317699188654549831338689817219189472813843620712471534171126716298683618953339800106221671340098730013093324831776040757877822401121079516978321923755186054777073430110807074099816961917962559392795742329768581698102224172731184653067995668002085043208658096612169338285992746403219734863141834036687074233585168055971711811244080744397235260905858193867406801261141079658878885893003071292480743501257571063111187599663562050552560483653115155899018556237622207818359842667906958414701028859797354105524241589409213954569320967968935389573558355190224648364654945736228213898310517062855229939587251394370076563104370275005960175695223288217315899122193654931922363305704725260216926220385221732204377245029367903010967491956824658865663963668845501359332080540636367130570583004186651982371022665209763187720854787881093372149305119409951993444124530360513226190468966010359511020121518873458547903700823076372971682942199933417129916190890779049833163686665286423281414605280147293908046718437256708943549020102115223579223384320453736944650028005447934992408468655909073412035851829230675036137940781924493158620750026827619393372542861927419589983182277069791021238367866007606489304747964858672604622045250205398128330149488492314582670379462018052058878372194124574917659297963587493630779812465770779397474141526695533238914455073500238982198702670353789078337738466366480139394410969576101795676335331466911922563450029722083900216707410255683955957882997379077247368561567680904612225851823989729777292885083455710100811496398710188280298249546694303569639884660506259530441777309716401698952623629744466464674085899678589046532448393436678424045199110054745671453409702835795031590675344025658284799039074790692263068644244173186595832909873754406857730898240237827972408060422024691176946633339360060059622848685724137615190954679691742380176934357417317605114847372041055787287341626039641813900399024836987705769922745278954345409264169455757393152652432677876093901175237720693501370328551657769351162445638067773610371001281282142499664930853037920044748711523010383411428743678215769680175706869396053753664950559495897568879794261760655908041242248529948787760679571537755805863834618252151679280230215559841590407857138324220356302398017937931161407678392526481346994072794728423447686268033892075395877952287723032649090341919159968761050228284626638695359029074804101927484276711665295709316117895092196134303107128472726815339045633178818123656286705158360610294121793233513133483130439710268999821318834454129869469477391463811436846823949437201171479214035395347737267002548953923801972442162908260602215504294666062521827196545391025047513783329918805097420856763039482558913875344892655005033449113477095040742427121742917654073351043683080932513629411015745862871230751009215956852573308162320118678678273788051890852473953885313802760317540373953110516445346302415554004837847810566131195610631798719330770690800215882915096117760418282305515967855679754438420297999737025775189227242020725646954781101645387859425650304215504468329197189520830780168025360662292636928140238798440411235297545251853414498591469675331242821280103798007345606615795254042815588633657908286012105306173934097544073651632174443885471819243326664425098461140720015191942890708821327351889931209254349374839582515973360446851063764472343124992065594173272240209859460215451845999531301622373396638222053730601118314326321121313122016790736960196484515024609296731439873411498125019025692229318170920526303967386671094385245448055003277635543393286688537598138679811650517980556443280512294220955556596412411092290288304164196642948859380971051896915256612056868550875211767931878848322005337674003506338697443637837066357993955137130534775053305201905104715848218752647040265627517821139265838582592212933898824176446949161408854741295596140535008232565295313627265624049384813925158365311268645373170677546300948304248143944867798397665459583611656952488675751568631471036918050529557589606909346260692169868388903220386316408178390559586803430623374315692946912337412263932552617400282166903551442648784503162433557098253167534631119011980461174301150241275686261749720413878513331296785454773109478394916911637006741009817213924884186752573682230703381202330159231255048671813045237210670252654024297410329327356316777560812999665524403422082369276496199512207956303123407827596960626804955243933091509584858417268310951453696398479516383287694410461906863119712580007294549577731096015281479658205010912176262445400238835753945419049714981843246509640266823983777843243075309849984961089564803291763256844599367109006619293507365958997180581622892433390943187579658376452556300999546984859900059559120134924911867025392824324656557486289516668479845211576821134954050311228656237027473392030965722424887344007868109910884636556022162990808076920104561446849936897701085082053251787018378006807860384388193930184180809528134759351112011157593738614061393219651146504815159844925967874053694930954811547606191858906394644822306587295042821989129443274419589933820416132200756299422645433015249505117779965576093144862332133594857446810387599925118293865521748732739864988776525209544462067462679279742954649160475540251739217560412325352249998278089621904011150999566705921628231920193818254225540161921193772089354108134454223117863037627001107114670102835090318861719754880753702731467871972378117667653024842523959063021838338464327898261622467984209426773339175474836907390265827843558972098648667288476889105182522897207414437408096862484454468827759820455755386865990071896629467777348475457543669762380375834560865430981078900615627719070297405561812732314816023400295210310231694838388358161326859953039256538122125448209672825537639910985969381250745616684110703262623259192592540466021683109387570160810057713782316169038221504525011555444560467796840306663140526868368540907392530505303275447549980515747306968780239834996774741145111207799554357810427067290581185526493634605270431664945517265356676648158629708842012626884101666956244349556080676711936141595079769670979081066715762536828342426827799364335399448057939647784213877233261060914479062855886660653870466823511069288850873998870222277468138671177628309861023804848979582357585694394013345042592896091447319785062382322419273663368965480775975441542875248201040097404022864811026603615575306242753906880197149677934489860677344452608397022759032348186628798639686841695438436155792282563912121063138581615114660636170545872232842559022929451234132228211677910984340986938571182790606417264322974851578539641988109661776281219790668157186716123610890799276776182435513958184286326596037880478001842347951872170699181915897233858708622828083692015358316060856658681764662090161286652892815178221854695930073093219529475352355428741675309243136985023222452544319355124116457658970103880070105711884061090357496324415616255927648436390463024296735709259881422087454624713745933017502216899528648838401316354193163196901234568070281292050745772142188056624286130309117780200644236198553039493381730669005328802581486015968860234592109006361711049685422744360158076644123738276459939087802327024856745019467614739628826893081196077939465080145982202266358288353277757736535802483290235703165949442647277615267686506029649081807563438698386676830257807617385118325555636307356642894861470253032864993446221065432676331911232865050055467178560003209080789774824658893758944052717378599886652813489174466839175408540489103099051613323067382045073423192284053844303112324406775632789588790831867035225284032291341921447522330813964258634406906847366204718629786847389371251332005227684551501152208184255204585199466488346001785300680430469173386397617169622964553942633198080602904820550582887551173609983045454434680745025606297975051256109486856138819066612382750201829320000941434449273298220474650342781544796610560715438028644751923792037219432329750203690317401395402318224215283861118492059369630395906043620931969126120567551993998103831630579512919934344500536076437489652961798798729391682694247561879962047200968370279947605137404627427383199312787842886973328519818311097752272932566601551120524192844835248458618099959414787009284848304438337650388757883280548186646078499114954174558771657692043996819999197711915801248891141056070125410585860767413681013674771237693107732728854489005123948863170765369347257178910177022276463902310164098001744677542354517312761095884622766069930217951306154641913732442712967143184825548731481865173817500015241423738613159672945293157300268418556589579887827661295703172160401860438112128688801999039488254119516857747320445939027724928994173090500123874815088916094308796630785993126767839314890889624163279517675039382465196901573597571463526332215414979323143123894386685158952737339091198865342370621585843050541809894018962942518591112860819010141991447681197498583081890694191550725252953546503739430859366471339369496381282702640847518661682225551452788108587657611368590971116475042011312227604155103624924870575166331885806653664001657692070176575336710831082305685449979243819127577569999819624164791594648086715001134006274361719408942921233830361499072328460357231316535707652545663695068666461574847535621764880889261135342159764108770791065242841073008756234158959923080430890478312374387980159763541976072529386569047311974638467864292875801118605584688246087626255040731464595579397609381207248321933532305073256477429169977841342720448660797919084391581260435441465353327125385456861642582092793301477806530382409835183779789432709584555479605353302425979764903094351331134076771023742270901457167957113131837034564547514702129636599906465496659249674902070316564878387796834713911058814331053629966435803307410183716996096519519140007785766573473928427625277933071106980546489710522764984177911133298788787025118108691358193977258978850768777164170724779231760912713668909934546196695442913644460477287447899061415279225234649203606512726570462009975663737317475219370989740095258996455794262663980159572999622995808342981203611105118852829968908013948252584491865449473390637281394033528237694844138374513910140091064116627026919114068350788636353647377793593842338386482894306945920993240358841269946746409350904567481485991045303978152250731295933362101603537922092635909929193330220414516413423429879167408633191003410780713818323070491445933549095370469795638842252869558139600248023185025199624091455987397851138065657416509511971755260177572447469492719363258510991196118119636234835865860896648371284978913231525594390499035861988261935789991148010124174741624574225075860914510625013724342148610832368481411494154694712061583727410463158186768323276157003486443904234351727509956426594101000576500737461092740587057628820358422863710495854141800169328022086232519537332937837427117667941751982880488914436248081059638577748875823532887913742090405061198736759112010183090522095843408819362694046182393559987497066331707417263431167972873285781451216842831345827077169464120473768716831908250521352250003195630218104671681397142520991984590871753323671334865430668751381046302704196035302603477481343466324893438675824327633759981645628029589872031730870949136105387476539838300936019027023069493260441193951097282258986727653128424333729936389315962068984412006281432124868155340149304145559391318138485691000817143051739016204721895428261307770252800420584227432182729379538691112102269962858164791336326806040812735643751332075480214067727084183549976898913014222903542343680705153526519279416610844709905455444824320073029001243351392443657519113262361763779771505191650359745759069614497358996064345453616401296510717005531097191742026864592553163093527981918528333403235747317924385916583622571835408571751006506013245578089525662284678161809676430760269568196542844682781501169890227324084641730709955287216207121137334460287754610970148113984809823328695912258597809919902532174774853474490590615463113191790456783307975249830484351546155882333226207196308787618574359399893742917315315067089893422097176755004864809729560132006931333168678599828009216466482389240205081401360369381757965627704487451129739617075181569519894814377607948338036454379049263320371605614160941006048409560239663278397103405511730660951681538120381311509362665164807139766597268726951060113305014818331394436200951754258654207862009226881437394007903646079837040684184349971871919309135323996859787646432222547449043252853391389779518222417898072805855155043266248511997848011795634544822298682954323288692573948296005638357180713861809564207931175931090500610802011316430669569265383950993155313663091924052498538227496902739074817813229933970857608061875129750003694777677266405245018040320489731716840675910614178524280779294823848920644837713350080790735539881015502077370309638493023869750295969342596749074606795278431493916155870148868760637378697403886052797042963790180032187095911516138542727848215140590954467769888331212211501042349883295851667179560889563602930927965843265741512474755386817852030830803606669299666418336045616864009723900216421279323257383936889812781420530560174159828286976942409714669650834248867872565139017229682379161598435424273030313648010832732460250319658942361982931427060221459668693800524947503509487611526959837029369328430205656926826140350695918043583058068778941511966774052355015112229672092094867325461075404335274597564511650187707513284906788967163025544837408611149029278356898727733057481116130776781317947996306401997162518110747285391954291813855490144673407706564098886759592989617729925652096953799841477500193956891010834558360618628634664062472552026447959521889608357399589721562720588569462953310371443394034975628232990545119454463057570152755454961756027349524208214032029587454171744206482801527851446413716950892252187604139407614752543070367539053645350759546912419621507888871200742937014839791735814780187420845788051259995252198042545878442628282518954744604930889632418910449291682568945543688566822557087306697361023687545060731756870125654581912021030237776512382008402500959642402531634494205159284387178068408290869894505839369505216804414558620548483747127830493653607009493487892948632807569415783967076068278013803162359883217810612458284407375254010512501068989730694225351115713106863061681967420585209227218488227062187481651912144665353833393560631523552922379119578437258382717114121909364715052587466223377962774951865092319849367579149909323818939112637998761280484859523725937492691946799129686811166118954267399180936786661900578470201533876370858492940984050448115337796239316435711269155179036197400609235823157547652624866522340004499850567316411493251698684126435176598633022917679623304298883981002597771192255445573176218470427824580473946272695605575162389973096436420016621804731833814781235575961794281019834577646126912005276229463713450491733774360354400481935134777195834388373496880171844127968879031515108141286263862554017720953353807702390808652311322281576218578069148708240670838665875513844162085268666060762107468348273236420820203971577358500355840046554887155805957689464484547518650192864718457978501960461356559048877603209637194245943460843887866702272461764287146037850700109265654326132775140440047372205289165628603555849074431219133955947129688851994536749258955281249466825539875744879308696861862980858440883121135724456546384352502302006342134336191293316240741841333465577043336969896028985533997282029928834672441769425234207552696644638727921689527451671362708649776595849246794250178836166391626520970468748217894948804240343420927884740749877203078309565051565610898807635054354501110361886690960049555618476297601078021924802226702872984421670958142383010591110759335047151416738969731756597450182899469134765718113679295912684229185070250420603529931555390732237321249015185958575383160499697115999132863354625285819000188581566781468212579727778132939567362540864517599901797940826492500306867829660171370622496713340741575530008095966321615101536209108309374064907959233702823732491379617274057510531974636149233939722450762443596842318058930705037039182001349800681054614137264183158138301806518698395039316339278724880101804175572013266250382675718448487033428606915745442575586403846201529968268085726376333775585532014100601451593239164771865444309560238388459114178654301933713064013341435773974882810598735003968073788944250718760048043355854362993017771576448020298090170020006177991067693614435855945167595762165556876333762069139070541055233959416237877341617698232707290464791583262156324111539845743249437980123734095251270822078112507140583860231817265478078848835899702531840587356290752024543360154102962371218374059832107697894103296359958443253066707174471715474295968600775066490871477097978209812351631430762900508697892207520130476859503785642725337184830246061505217444893816209458810055887678429055934723677002481900101280616817717416228668806978220844041916357254103438010836916888050695423773561808625665353366318424867804583674435838978533647789477342376616455741295991932104819823615620510893886511875058377099023562906720949877966293814127656182302672140442996086713556624476838629870019315566675116449272662110249728093191842126873488567057647756030257283399479530716614809082153343129676922724786729189018628874354362215356151722997730038975730072799523752047959126756657077134645544529483071346532177018579502055062432755337681247807474488610564408835439208175142890969828821785792241060812726588495791139345589943118306040790773793030329617216173392622604564613329350547264410685090283163132620443793636166758478521638471097296818997583027352787682665821808202282198579265091523025019442041109441210865459136846610739156566958291565221364373862729898094631189021921846907775645704652221628305785660161220473306588160571887054131285035906356422548266667753433918224309386280859684705732980799344860810126678948718113563624826625600726058611766799946799495763184525459575074668318714219565832437886385137839680284285255599446745078068167562347885855553156358461201384312932538995393721784073470773880685872246450110794297187221198639469819295554686587620210938917742293206906632106492484238407335062255347312731530876633867140332601320485830060846771711092109059313750433858555592780778865964089598898759856335604232427203079435696341229081379574617706433100537080196001428581459880249012272475410941482085038406630247493962075472274431975299354458322212901186368336756872624582274174613402799560550615441976860895842896833441345455351276467171900252922319117375076804877057716418417663631893006297448023234670162966960495987211690903545304993591166167715154886421995291239476364021321766560488176062673556206722015436640019853893748700078027465298977898737747854250238767465623900993991969812717757051136292089142553934755979433109455157186069655424435595257289954977628833720350105963755054794052509088629712844146484038736242942340342874236068804216848034217688482809229978565116653850854269824173792254652376393888386129091240697184457906090214320298837462888827977291198213671520528802188366055078470955385659097096526913230161620111962670323654463490341553749914576288177695315396333918665914356578724416050953797566392141920434249555013253031416663580848975294269261032316923211484637339009531568779022269545653270873774425837473904448989930981623610435776881090939973079751619599088406753759825955037779139048435181174610196917070849641415818479439895497118222516537077525761605876018367678206978562331954728603369409839624031774775111812400879412227251535226087231337795773739489213483496384792529383086896095906080920098093015221482218331987120823152392642362615180342286164726525621184518302152685235029954812167524642495373145830944059583801298162750784098394566563258097342257246718837564344229556631975403736184531617741791575991847715003353425626007420251116136247889373350210373307737622192777106602362977528453279844965475905016984266264085234018333296706288951598992327078549376596961914582968305534334387576001244862532018172250926104102663692106910054156718194379624479197734535723687128653675570793261477390281019968040023842621288291070023746601014006459703867726116990920838329482117811029954743075328067782497781912491473585904214812220673469874979611889562355351463451270251707696700868514671687741070066014286462700017641922957710464716738813469410672677810278408567094636328502852530901118365774416796384275409636127901472326440388483923455617562882179157390746464195715046827274189283377804272629622847252477924639365916934673639269063348193826099149001569506540390659236888147890338135974509372872023548896888704220089504960146979487439270293801809949515325116435397920390260536717892996651228127853264626229386984988801668678402622933926641147549245110232828952668647380507665958339291281510640229410416639274083646281865831697760685902701763337055671834062832093156289374250234883521210396392645721653823873382673921430052441362272372325610517556694133046833248646263390072036602776098054937893083216254317662370220950300455346015365965643168100350752987279284638814090089813555549262053788817899727242962321692697111044600613308359974242586668048933270586681744385346627439517252449457245050748761307065208590227126395054832975457070883177158188154727046027448925858904197571542547624225815764568975994182817801792388693868930139213234866643160548786734539712521782113561341789971795054335926684922301666152238436225252592422806500756025686405539443335230393739978472527395325556705206802616381611596143804889057598525477202887373949261362108230572489158632023819864779795751049015924003853302785129295744377641107545027144572664346858493685141838020651467110091837399735182850084142260809428416541683596123574170353097040886044799362005356078280306142897399232393911707916899575339992367568858376709848722997169551473087306525555601965745494552070773113375753479910457753452870749723460836830606870642807223304273733822414908046048590051449212493651805809136108286547561525060382350350926074142598564855205630892391715495164635657995849783341146846929191887287319498502699742287719637851207975231214809550851691923676766350965543657425937706516118730452521945258759404879582114265067324826674104918039217878963539398917722033488917125193786530164616341068103131280090447986681439626258082613381614194817176453969405657548975613442310429734456820471168045387206173874513238662424947260465498159492764375060895455001305485552129129400814088701432384290997429444224482422942746636196858282205059151464491064232346150345364927071835061346507342857334260952117289017300705274489456789241190545134498752314719330806558858627604547899362211194006088040041930453456858189686768532583175215813262980726439057479929697407241441467396766853193211702820751086900135485919031774681024559995497764617441463799527966453513265482575091722024280720870397653760604572137587974613679600159982285953409060307804853773886229251296360884290935669142357570311768530128817099249943119499192142095619499878440227934605392623142956351104557145994801023578998257233711678267398261826586147443044955608288083146518935925851355779086869723195816930339923337264317102685103796796027721013167724364979357647991618758826045769986300717689762750978842189502796614264025401367640217592573829666485087194347074107335795111322028118423973403645988037374668930187190555033402589976766221812451887827651474234195022292979708182720674080728113202065725310378903778348850157549470284191087014920445303927078371521953783219100302522038407629989179380560217077207246056512176093765763121800136469100730565907626953284229409675111200537140184844700535485696376617142219538762949572827269542842752473486997570547854526038758510915911821921200311238317816649514187067631176700346577931520684688816292468779042571821936438094281906201623456905113899148318713771668843052218126892377616099605415479144891762199287090885419354161818409135781663634534398900595339741360930456818597168600156925186306531057646147347884677223913168005345884836968384882475027846311901903830990493052456767256136691585802509412775332286121545854943589080348966422351113707574044301042888545381429488259901453442967653219070900614183770211000198726292279835566338488658819342763784388556779296751835596429688842748250878491543117750241586912335171179656009011585492366589328186251730834387674559749235846407593790019968060548076447946194579418263194009723260523978629321238830355321483817226338153823896299263353234350059571035293384457229689162433316550173831514461179353605879246510762420611902366704096635563653396630899977962723979216418730354597817193616396646601377332359223447693639236608675734574823725280390597339346983824698931680494781007824496893088992294588963181384181685587223170830890036787309724421406902845033206701439183394177447213974143410132873994870519795797698088493225408929637831107299020131649758418270118953614633996524846821807241505551875749600969614758597874758005174730886460030405532529749853692492017974167918722662215430710453113787201260620830563501361450288771978466510778508557101735873789657817854035485324549573092194265978040911139070924419814201731890873435842655406734830092830311979319726816549077863329061417048575117463417971474712070574273163652396310445311205843547605455912918929886246031328681939584547442393422698105970098648263744176518722805768718969660826328458854339739018523377043114906196559674749844659526661968915322659786236508309709120953028263829821058599549851555087079404784159897936765489407849328923211941999796852315288179913257753855570924164818043584966091323776125150935333491139062128196801707228253788454493451734287624043745492359394226420446845759406454242966743037987930242453400763427767382232959996976831728928972703671470383151513520265918821608529631812576474026778550777034449879010785496940403467844917412915358397077531934223214255515126966252184071293121038975424837673730849580300620961413722133220533592401606429273132738154361760547996555154848874332205814913566557147595845349464087108527324092533501610516302816932489901740959570588155927296700204282547848627180745165025146436420931055303260801149251059454236217598191213642719080051781111705310949739107988305390686844680711155032004142725031372402298700786175904073526784841949360740571284111168351622369796327742870904359441552860734023057960699894165959993908631523057940098781546946256563549526493558459854180354607450521480338325521989424476036606083139243941929173428486427460120142653310626255855943962297639967578347073516876806646975923393758893006947183973393067001703360284847239273235890861229989309086562213726134206766515544493654929198037770269732836725991124861784635738120422700137533295520780067381269967975890491064905541839923592765720481500613729258903738255983629565330209979436490882541155642535895886258900947555020341999633942897613952440067465203281867965560598128018731743542479714575619685551665759577168165343969683956937912279491844159247405080625697503893082650558714010580281958281175492837220826801292847511257956853687922316043260655259858051624048357113220685296989304295226069625819860416416912944300950657951392525024684866082922000151125106341285843158390480496139373977662875508132667986134357900239291569918140808154474956652973514856557107895040270366737400233720625790349661132500799886986155321386543199422750831801792718859229432483059306284927138657345161373601230190579681024825625573947227570625113011709236320905302301628235021641555411659944206606776441949864360461331325389124807163219825111283640580476629086811969989055981638554922257571740727753986860623872689917435494846457624672765585645170292384382521865602610848397136128256566205940335587744378274418115913640254589831415622829053379869990566542550505583354639221559435464929329079276760759292514256439068365763529647445585382619385360124835377310955672237803911057706762208117674213685767143250152251926079103032948831647537891252137206680873816316496223089637807823384507636312901072695452302197921008898912550998804823656964107323265788513397217650552140764414133658084491317200133340640264599570791815400079828209817725846953713893807500930173554802338694636310098481757793654380381914565043032450828315844591667372024291360049201772813504967374643293713363544358341755298370368658877931306860644590485724256658208547477521397828032441773793000434737976819377810550135892044687760605382687814622675257862156162546795567837588360785409758228662369003678947376370731811310875912279729266483286292076590067275752713345782477401661721741585567379050521889171946427621221556002468496215880122315440281644587853939954487970397163718263867856923170593736041376885129842836972576812744785182017712208577119615055278941148738700516128794151258886606730215806507231349414055732067199825865819233272696176399257803316006752453294779894887919576622998323521838994741758854771623983609253941141819053228826224023651918853820353635544955695102681628417525188770700488967321447537163259029854666165450212447688351481019793231933842128217502334293182518141450916528080449615224175204720325287571347206411090665857549751298559181937268794157702488023106976225703800142733831393099762380791782626308557525978431089095487332721255072812774163524397816124647166257094514441952610872365229632125099373027892392146758553933790466962803023115398438372335072967278598182112096836567730739816200481616650483842271059056888664993625065658523304390826304491014295897429742512503865693350242700577483296297725386086410631677287564671951215740513654456557934927545929738745863207013343994138241659651071660800675408797346313365479063123732624496111605690455721094868347490429873332777768626248169674084668680737023462791253895108063102586844512751754905088024221094352061153549969057813486494492286780978360523905046706620174681942469582293089479897037144369575013901357145848451557946002333664636995710295114881702160650020997893073037458835884397783911293652471901575124538526716973793319656113805929462242836369418957175224176304618541913930258682336116122914835614711619564749223326477389752651891264333193704784587854099641500522500806180111500549202220697164253379811083208691571059889826151603787286341293112229249192842601240045121113753317058288651752237117510775843629634788232292551391389243904235608951365886502709127968370993744257517922445520195338962300550814291012988340716104157905486362138201202074231378687666971429417830941202020886922256508794380303032537724659813366484456422717173379746712196714892750131906201710545890208291290159255733180554922339661188436500613209203308642802072082078831209890014354647287426552956759210562090597543881926925154745977112782660620247507080698776892613175880628823285698991957499862661950460446730866145781785816554569205233235240620018326030001559222373332598352572183309403877159355300520544599602527963759349324745183976718513168700387037327107256890279595424572152846574631161740917567693872997703136093309985578059179071159299060044047477882490552650145880897413190667979038041008977564139763030754314992019654037888897777855187799279204385076991248996777995704961413963215566610430183717406488527907385680586156543670509840059952809949520244477507978676776164055356080468028033722270544975429389467612990579732427294394398686576881040083740891124097538582182480770461966044818108193127740701275198251047023520474476842240177046005744831009676928170726354771887855744926593911529645066925087845465275165438497968812296280926702576697331289298343252864662181712302991951035288553094811868911195897296347368532440350259056375221648459796064614637015318001537666043999360595362360216713455101686010644223376909623960034133207016348528237846767613813159992980977067784376932113693235999230595550180422996729249741333948308394631846990195972651659779956107509720351887952236889283267144471563188294810866971587034781466147733571267420845783637431151595816337755924194615712728322996654809171549892071294403864943405471006657108743758080947618390732518178066535041063547001879522455690400325216684395929419632914268597657461071970612420643396958737440265964198904056853069548052099408108053323805801893027151156805572125360738162299257877824396400309381258242716361129153753125818437859006808079445023959967845082744529971047758225705442456370525479901394096265474296306303554440291071480767614607173758337777535520245963221061631097447264937134240477578979433385080019698737630886721424673528478674099197919190894118795536077388059343777133127339266757891443658783891541281036012525997394089751740160111904881652308965037534404013973392050066088485391186009830199436253959667869578865264465805460187102481807014367428151245282523077957266492361728011423766078586682521257797935031054107957267343924333865488134050611886426109600520638064758661024339210263773944323857385305844545383478754014084497142832900769809965409870240602623940589270274858072728209482329465301102298952235050333431939196139249338828808902811391684556795990312482561579506678901581242696616417568887401053201093032822995403998038178518268688181175342721845211855405839823306392727317998933851478546140540089729627584746813843467103141077756632007282950693860227185250207101715302980395694803630514310429484236240687340580015706593187050507555170266673767011934998277760310161798309590909671238258568498085636498279489523840308238329535267645147461539938833256362247146363691139387229436540357070241783133711740851498048407505386192550107272361489021264078635586213883817447039970947896817330619159536626283072797189722577392969841178076508612907295189428211443474102319524040881098328354634828906488511190084936262774244718796508439664840490700827722095660734478267114149071155030922930001264311584438540990817972388644173926791104455121069800353910977450743749007232852879987318420250721521150075152973150534506849041835984183956788564272946335813614363059087418830403532130266642519160032667414439857761196013340671591988892054369249182014785085437584855801323983730617456507460455838883585955972974171100682171557073212259990573871524687245702905776273970123781716311150484893142317936317738766727904001988422261689212335024636899918845297758200897996184721564385635519673701576422777302007291031469561541645534690925848123086829797658858978539495735233968630878895008331174858089391918523364898290723337533720779334075366258027723857565755146634806274414419218310220113156760663158515493823477203114022302579665739197032247611540928077549114152868888705136107350974392103710105017853619819707277612779510417891079464892456130482841535555957782993136679816339550277463948911826427348308075286247493370651366201300242079973907652450722410095520459642334365798335853538898618139093054817763095233129982008918623865748935489949508445496407395266295249284243764272905187418215736383666894372753359677987253872185071429358183260753684780759257655808300513707948127305684251999293599519974056097471181117224418435502331855254262189793654514952176572577065998608402836193079427102030465776340237074182756086031993986403639510916353778564418610805222697483173025265535484907312400055997877861881696705632230298824875163270400374292933728773909525901498808925589690390604778279273913531188804502095179101284857510417749301255170404460454281503606288357249898206301400270293201948182236461228247682687662844277923786657928745077357216454844715672613806629484512252314515524276151113025568790814556756747281643790124597528284369309210415421379392625610826358986842440708278774820459904123892705756720377758549320175676821844488508500484515703336395791012698431226559467167035258440828966855210627296151570051962588140172503894400403925052734366130455629966515319548590970208985056846878295195553954957993834331146457353045937168380238284012535781896063897182497874794061568394751623608883436027114755092599661249543646119247196141270093402723913169833730099389755916712984886637670258570574940886978394488148235697052717124311861503195182128160566224540090106549308002654353672007550827103668439812301915067783626223409341506561624381957322380751369967169040227461377317371423424245356723835343563771856800337224057817459599142207393548393947456234751755019382773380821635079341447497808818509862009946000899086736038213440451119255584759331197739919786404997718085632833797510590611889317426337564254900904257997907260266575634919149752326510242537991780138178481111289478131679791852489572729620752692945316473304522479449312867529453334756297706266594529423909354911699618661466627496294405132110615447972370069156160692852535918827498222648569263168738631483955125431862435101443732300804804798452433625218232908117344676568746655533276969774703105877673425008522587209271981750124173562795934374032399680499031858203688315559236858536603407071610962338252209506537869208858177412869281668400812596182489343985308986867483125537126870021785704982362041519028411515121568081573028181849471162888620704846600627462191122766943499339219763452704573812267155389432972431416822950451996587534008087612779174395072581262243362985389319975426285295782568551655520562930611236133632287000028558709015893218164481615884139468016542475419905800133028405576272579505846317887885336386626740715331993510222925408681129854377079852352767631379721403788694284649469797879888254164395308274551428386759464910891818665375312963254763975484842380308808292036338500571492863278786655066470934411255033091969118212345491463917211457528866245150798205355101390902018846751694970532861281162491864613827224336866895642671966378780278642434523751708192853587757928571729641481956800575239841920580059963380091456166794399253301801837989459839532878421631770120155135941389756172366627176671159646377808523788916554196623464414924181563900014856867538072942527285543517328724853280420408965419623367324570930744138771128290588698365825124439073127630210948512039749625653031923949885906385330484750239942399800668435283719022951132099293152137856062835452855866439292414851534359129779254918102814416449626332131717328811657273372991711242814169600545782543921217003722380140969370228288265698260576778099122981971585548840773668936288383434257649486803814348217818034884580820495924010846713445844393929798919434576597565584424592100840901101413656624955300023879052562396830321899353723476028879041125326596261307596696213530067350211742895635825525358785717052507287709748016892106601603915353659732797463354509576787980745017123066524849383840560068274550650302001949531100986763786314980888918896239167402669278446661496051589010474967397335793471572917288956908246549655538611376200151591143487649444272698223379059699372317996387038075189721797977429384074318527119748355682620181967641795310917505670753189149951331818191537131838647218624975054580401280739337845314520639333477063523332546438842903538252607634715026670078685135623473761060239721216101559411846600504213590261689217080309736780437868538692556216908593971057426314706859338447114912390331684942313730095815025098101558848985086679894477439921531124552344968554213063911351653518248467532505076374108639443195503890549617548543918505149597852934344053115067746496259384436240637061416826536764407713225231182852449929010039850727174487431985478741336982849987707677802940380622949853663956997601714842325608056194983554344499108867073194809745403592898627954287032875640825127238101095356438261424465820989170432294986304469395368292153336080341855767442603041294830512876017040967872530045864943995806203541341019782535905768621602574265372705795608134347775252330554917475105331621403256093087309196534612231238902642956131762734984389062048463063928878070354988043793604348311863332831761194957116924806478099440206002814495110447380131072830726598553052493928592232631030173722421855825617243877211672560327043958082690719512007265896048297202210138863624307908619250962426280786846435520927642823077909918025739794883197676727947747982880455680082715697473376569942570450967136897179095206993552348088600713002225365103567819359372766667045252105983707211385944619656907178918947436358237194066109965907926968749939938635680589851264683700778254854148586990793682467075445020735081127500224717286284476861785891450119414364133212018928890011924793282911015085954898491573506609491423490469605125600463563805855184388794980769791925354874460615203530733956440001178561486612459099368164222825918802067986824201593024534282618676520220265486878406964695867830622844462919548706495588499042688152689676806292831782106650641074263382407350775174054149559854409432661073743635015421462284074079652639029785474379389094359578832822769676283053866487616666250934211407588319632429864373621403048159570195117163729394943169358604461912098488208064700233099625246413869839860306565053398204604252879336216504257864723661646713292203889355537072986958633201591565142963576470844852125193442147696756146807429010863354900247701952686359993216419942666633522672752672227772559830174686889603537315030448584823437462831140659453176440934078835995406801937004707582098847238826899612959924835303590000649485661463422963723047431344838054934472228829812753326193678986108944114786519006124436731483439115531167928763564285971633790297043472594402791376619369212812301554056827858179348739005207656224712482827713210301912038327680079979460226317822228415655863087673376073321866010320410139167281161870485266187316588855554984421790748881592507048864712419510467117714344878024334169458577855950932104126420489774186864535856779626572430690245852654239774842632416467325140167363650550167206562144636345421363767095999783262743814525493439059619885857840217867996005263728048719818096534120679303032492896979029908075527332549356310689118846698767160015853565535582457289200806039191406707146159890579946888921427975699625484461680547598873957694340900881474600182828610550025705012401001489830421323768806217307252012369172206288622462511240161540025492914990208297138704914425539008505429140119282185475051967346851705433617603259183221045459130030722503105856782631323573235267409970218150467742618381632313035056171494709696999387907867786809296875311355974772487205489658983498393768042269737425906165946453920202662478949233216459029823742178317367158224772854679043912560891738701536164691018311511890846935817718256974990046744762493446134522622905139165909421050786481772512414244076592352033526387447800997194665631411181855855450651488991174321125113476510115045247209524871518293120923401653071881228295065502987963794133283393532511775547737647678979235255085236708449967861685955332117963517735559506436329442670304163870786520364699660453704947153562402817964551295950038992220114543865235266196100892837319674262738046257123138594067358284420346436757592247343978477176836954049883432567514205542650853757539887169887917077423779457627598304748836991003288538409612554872915761256319355416621378603290863455068475227497906040583820559949745767331406856389773864029981151399521293278451705002856849154952905271339645550807295776449597429516689960815738183430133566472904331242107630084356325015168380780703886789613117050540160024185181277120676151472643258384914219378785729286986785037776347798349543100389242413079777750254549236457367778764265371160664842581213097448323464219133170683540228680951799846811461854955309394803660518709474856639203020558539639355908508519759639870175587754079789398551156216613216226140549406599753070369049945090709472907945237751073107634530996962131899993644739836756871378002678809492015605647048751444061986238137333724963333727653716920126883757997827860745935547353435631947140562765397189797451742101357389451854979312698576692942600026530302035789184583346103246330482536445396280730280264782971470762438242215122822470971507709901408765215726409172829467962357077185912090081298338937160047982407979275836162824165209750273115162090022296747626038055265593759111031410610118460582752122563703102066517803990077462223572328661671999818360584166128037075158747380615714353334170673571554711885031225791660659158150241734635254472965711616209151328922361450801650294375560437225414900126429624194402247917099651055607899100092408848468464518240952361994853339021032663658999193185511180306667643395489722287805966200400666086019727228849336002190245306108183895965755579433489265293761336456652030994558104372606317643059580621538965587307437721189071776752594658976877279975216135297150756106080396328853872593094212634024834787533698842061791550575047513461076921502546528878013228596731222834971521357723121624339074321113214031809671115098957117944322928746689833769567349667990787248332178576119008580655676151535380330530820113379326684084630590055055312778105304147363825038518962362568040683405016825246534622730188737448640724473840681880436363805599909793591614244473419192641163488792423676495163872686682238614565136489535416721638429224201379983588184398348688418448671414935885540056289197682364173822398927977742219882473332421224652413875198324102276339608549249736356138995461305762799751969911778502717196499991524888808568526079767041482105022926119983910533132273454858499183405334114925231984390832984945875364780433699237735167902462042898800409701275840632142204440239171113254163746977289051856040691730218897148354238404132740576508710964396121277078606945282216228984496950273291145214183707310286021739505095191256113099277194365402471052664441835845440475314254089861070794410763194773798682219341045472082692741682990301794936028969213580538135752900508894105382138674629957705635921425257874227869433957214266076788397870784038343626806038962006063803684603416642412142442257969292004891093044822551698644961144249951698488450739888613303458519200476669557918657020504897535658221445463122112418740742595941770396019682555050118884397496060790278301104958221735946699934795126653190412529191241048978904665991313034042885953564643421602764166148060884182921414464089301827028759195964644302992966954401753711880138254442113103673747909692095318094234267911278798620606923002566969869314683736491238173855610826435889352546664788972406524471650792587907690265925972620031599650814648570784312215856230141260950773948367690331875244584120804317021142319284765249700087463104817154989031387190744659321012507025129093336232815880801458934038018344150437238150733347760796735824703603708031471493470233306117862034549791217333390090445505299388678918847549835146792404493126551442483474310348512081762221864723409321132652490155621629190388145100690628702429411003078255436693092262110421900800652472457902673839243345823327451385775613145268656441276688785463652753996740425933520961656452983552587325796621960933933868850031344761457886404957395334113911567802095203813202327553581032786037235258175243501642691227436838420758630275875196776883644587805909218192017522103740475564219339903059280083067668411827444218606496903231144509479786287802792744020952510616534320648900688621203705405910621229554013813258715904373882219961387358625926514287075000498920949765452308262014630094180622158790433898542876745057132526647425193266262963193463030826185129863328215723643810099407345442117072299055886598654841242647236330411785406531941393570819255784644862362059666099405956463314157360710811771673886078876523315332103004280667436317498160325181610208913285146135076134241969817001260294108902419941089355464150909755449522822391533997549816690107037511885461824837083276429743236954680119556117234852853927842425711662360997305436348171754437669525356479155476657913317931013412186404870356064978255595287188879726959688844583193408990650933603297120451156894309320608337253682435872674366255399927089935734518244883266973697171421161714429903953614081234756352968959716034561678973668755368496025068800537733031236536625538913008579108309181948195176835983657724230735712749532149095470126588858071387775754342668301920699782367345587353928256159971315957362768595452966207655598594504694932889333563472999557015710001274419564865176440826431942708244307610520747158140636486621310105500358674357443468492947359090525443566344228590639051935695213129489095693401535803154711208202916283804149163676142027324121469335000153547660443522708209423890520802520074769708529975698245864630651193188347745985735776536605024852688681475484136280953770901077798975296644902758884674372023301613594152454589221858051632016617983133145240891659847681976252538698908264892985424168680484692813845863901488585777170795612426008593800351255658393910777294984430458005525811883472274027463419375176479487602181531211867613111192446528177022366474391553015276121010322159438730067599625611695374863364814699093575265007797810942393979594234162609531455290633619093742716463148544533219267285451689093163052293568997581652151092175616259925189839671283279631743185518209971875573783194916625378824800886045240488392002620889657913799138228085679448970402313719161468542961635419740478998291684294418097560674291376919499705436121780186105090437689555509861698100595805840949271145945561349245774581243775852370094193025100279833657623068622530483254822863670589500308402325637673415683468394899170919445775622124960684787664698103629347476860689375130026348460754383039859697207986490371659304443884224056856379553138183280952520950305242478917754272642605456822155789066379144088765123962504599302627332714791564745757787634498848987401410475512964522334463055513363016936358846735390283556057807388805477805794530140227960002999239324529015464384528226150006497473316134459142385166072225232437621536034018774560516327259190328319462053698735788422473268556931461016054720354851110637786038763024703542287199188975040980608431479874165130196255746098697342287780003841536987213531228380478810614745132430550683908398421782258010673028732095698504456662461397816564478722620690273653295408678880702684022048733333823334407182018250026483078215555188445413115956109223301384355023596846193625145841419527942161638826481829080587469941576950211711000391713154132634740691115198770166934149762428751646330081629894762400527728511253147024995386796706119694811402539207951425496672657144137365776043077012926202604931389130576353778658380054970509031009816575160161081337282432726061806897862238276396662951269120454018784776963223207735000512113169116609665547669466719789768262169294576695618191707330142096486869980051996264989403083839047144872768796649403382194442155800220128045542479834809593875533867860296934797642328041688157790822717075237094364949481179383408534053444018228314274852961627794393197486953867291485786291709310504235570820209043754976914409583837054567290744919495149379313616347523843179051480947313934892123057725370270010901083287865579278236936882980762420821076820635824618192266727852061934462452191305546116354551450758226106407694369008026536764459681547938154717651156950398708959775129744171885206951431163867957091449091119405510402378457678954899399170993004712654582058649588763811120099846969241665749546660141087152061683197112934311971953907660097658548981784164388600494201589261252471278890333695048835316741900169309358801905002867518115123514205650608889389716746514399562020884464358322215358386234173111190066378478199862439300377335470516998719004923318856920904897635191124267519657320247628707283808503353568707179501327646584786558668258162822204113979326766679608955837659298137196793050016922221970631382558174557775887451118562323741258025489558740710067904569018893746622449111005809890316333446562510869933150582789691292367245179588909541550492804312595000347097831266206530510690136643842232756987592761172381712310611123297800142310497504034732679394893172811481623761867211939330420152056719190162212571406269097088378546901492007949517284142463597085000976598849579398423223755731784993505275938226591622207238949215635183468182758252462269583996587407487599380440057938553160041803259507999913461345217509764513813891516865156950582969129394770395888218198824189064080302578494415619335334821026205083739370051273312122064769020433119885260656546183916664111230753191670118906311218097094075025476432152700792469270785900819859619213921090654900187207094498441919199184054962337194514221004943190377626280707885736768578933922425008025931774597740454689864340031780139257200828956871117284674670294662803007290352645130492778018876324211394039383565577771916824945603692280437216459662084332867304697008343772716484229241589085165249215937096886654756284277113580075087907738512270455065282327188677210797268365997151834591453289903911786627125667071422640111057333571261843135549110206440479395536374536438886382373391705964921090885076272382724745088811489844470679742243617067182479254779188143768998843965963950227900694754365794672595236517821911066393269521336650094020051681424084502631340631365613763802441777165341532684985149999382166307505153648223731845973606173686074649553209113273667217776962702646818640299449732547561799163878144135424795400194907640145693539810394378883101054614706496292889858882001873591300725880163927277418684046637305114368063094874815851486170029098657118049281988239384518611636838149049240704788517193923592791315914461505144440241500459395671031636041645057734276764265471417848641409100400350169100748286869928341084232260221729286613346104859310932077812849764764647810811662761999948708540350052964903200165220539666375951151143766154501198899073883392926047723872918281251696489905765015570457215123875213011695685165533907901895629474123187881408773837850215387351230787888443821213156443995725386712477466657543068655665717593992145304967641066109733830174735827377506337672355039507006531373782316297294523368426847482501856769854413594179577090778628292330792352548477152488052650137551353835693619765693469437991904232965496301356379424492419678758966014651428607478594343592841940118303991222993914851550830935878752834643034729279116454568715828808572251359713087835152591010505107961215851297288851054120276818625641565547124626287265043393802150123586248452121471829801830379614537166555102849345144456677726241665540074758169767659356232680282247039039989874585864258585749253121566332960038165022307247562685931391866527004543519647898625429954892920110788237792524325388935186005539135720188386438551106597972567629034469310857803279531964091304887434718543525053909980749966988146026056938503327660395733352228229699508494096099511020594584248993354517200846457531736044529426504480767375253570730589267574565388391085522770056904058077762252157221053236815591254390752572234581685141341108415707828465839137322811789980361391373534485680612189856031152277126125802849139837888495279527097638741546577652346051429318495562707654324930450061021862556981597278581069006707210027235270665857739690183536544868706752707874826960831784557314872707935592430970667424773505297508388659359723990625352859557810241791351510801611452768350934944781189501379832926111277672366380852550876317895300260495826485290486573206307511806512988673076052462504984681335548480946692990040817683166153550666182844292663445152395227904820883062863315189718822739730419857415636594596486250229931081892399010783811383644775473469175683305760995411041000405587198231532614643988190898022498417625680073730737952794884147256124379205757035611228387168424774528409186043083784595418038217368478821073826309856693553992269909743969707230564901887178934988839413448076534965053388244189199998113338860500504663391979920015095508287795021826908688728368839237371226385404676511111937983730760916197223061219902097058512588027539500122424300930304933154532254737956170655695764468455127266414068784943946752449580414123532025212547635815787397725358094296885005200294658177984999670205572761740931675185730035928679638672265247971603575481735200718794750819378211479086301802423487063104710716843397582434064015046051021942610056612821351338924478623580989139472393519663121674513500464835649353408551131699705957619459527434311086035132041363763555335954662455676235206105993566095517885964778761439493160078248430101624413104487570875551294554563093849814270800357643948744349498629768963659052456913641158240772002980636312236234649026472803529113836889187603511579289420327361211890095616160132126083593511768645086364659446874551945750878116368043866337131414176172058879118809474760595510677387248457517598531526063412428723607757610755491440967047619294819757058772072837762136645020792648145578165840172618703456205145418651060593057082793217962543219729595465870142292435522213100916129462379854362816291230642871007115067663032662386877386420023724018132767239306256856604330121315991905885874643201264408775083817018838440155006432474273192088785455219117027762529663575145788376951447690405969619422110689274248648634772507274242558572520845987358246913512983745910517697783726034525937548516729498840341523767790399981437742644099292673257251959865049295959282235494547230357184136584580432827505510642785177578703042044988764114108217076742501387547368864938064487809948473603801110894541784600299555085261681393525375482642750296032898263980623165857736578573696002946586345694468464833364333265410566441429764562437042267167624596421526807482910406252829667524064408568458768386459001800248292600953848598449975750222114536484888301412157092877864988731325959968474083300441582512153040338551995075588292779376738258365201165955004113483021756251991181938751707544251977338381427911869834688126579531374101720468680016298959375664413798842673349989848032382427884402120999679148647357029290175652580672728826957789559093930368139088895101819267094398094009823416576628095495540719206777402761468454455274134793633206355500074472181030648796634001886879776819024315423983116673237808380219109094703000503825697094065645933818582669336447304651300522810572898705966907176511238769398762358945254370807387476542966685762152539897157336034701549403640552935427157682614548283080251871566759938257563809199731597037391297893475060083882908810524489736115678842510110289587447848345866105757196066198361393579572894372388198994492635643710772565301957923933412424115058696208122478954484620272907568884811478678904114413411268994603598454757983317009690000877185664998803552846444990647573918125013020816913865611486396506281214037292892298598059734094766643216720241464221520781485364932223475694407746199389159671139509375936054025624714621622235984822660616441009137055337608526694608583441542194700740125286797291778130877625599126308000793149670768379872253490581333682828468755186842446304042589685170629311316259717887775656091734620902707106408064981490943390537440694055890545522278422931663244762507576980907562730251731379666443136251983276491087795894001646207847989100380807856357251363278152969309509185059569231553721688058710320039798192009690222195457459773469045919921570819286081448931146605731936296121239706396689315531782855514944651634620946796504452393678670169297819932483583695037635925792601954842540993466801722766065420013412515914827453352600745498463934019562347216385998241717204213148011829727388847013648016904889470043479074335288679106933667174695522852803356474152999887889336135482813377733426048343625992216074742616482784889759404982544299542352369932600584186774507313871541287874329690425971875802630931793082357395679432112821081475451874885325428137035948637306594219669378063591997845086282064293885492955857749033136457870547909013175713296706052073295012477003202782176551088398277114132311497543130639347199773450048888013562951469873002540073145547274477126265228112814124827619971091349234114568616321641056223741096591970755693281565508591565405629725011347196739848435711035752417538991042255070965636849065298957330561062802809737552779636085310520722952165963444084969447734085553210468406203824245513383944640862817023855874669306376838051198619486799524595237042772746186321825645032538391370518662843511434150961705436268099104412550338736074756318224808189639664123445428720256860233096668982294993951930317614916466014064698351107628404304219643834637183654733422263450153347433190191088679547945469643744127333198676803651891656106624144922502191556508639772828570079256265955942991836377165196580064943548355149429644582229056105494403319328176215560847966098495492632163608639717882220867636117489726209653996296168533250610373340931262047379814641999152276537626982147071603611789921315497433117156737039144785666859108108713494339485689870271583168688294045491634919684985451313079165688061689129994012440636088759314626178460585136937497978487591652989760118761009291040570768754511233322312935861063010679998989152503665038977689389647017329919677061346380365593635524015293318027894404308939991638809425427396971975830268934747885694077744514572543685964145541700368931162456104770710391655151774330663871623678568046292318452861824993390305116180526125598994295376157582722326717473771546564802557710850770473653879300851376316777159243718623719313070232695802491305877788279358835166518567238935373957937733612013133692625345873594397944050460686816054693395910074149782200758294291725694861309331641162947862248487148356289388751316325667306343183836035854042498684005667852364399515375455897305796609938402950125980582500460938108961071825793833882818048950700073723373209661691044313732082743764168362081029778260402150064528451148420323054522420870131005282186175304436737419906085424785895226680847797656437948309910926299667394965036754399292527390872534250044565726172811921738194810471380646380356721598773598114007891535986442431884735994569780426125371300775544759482075937818922719157289682034604651110920440430127822376777698025454339486711518418923352771590348100561038167985917114554853786470732025735317122558481242512925668282773266551740381804303915031435197807135303848290735167501631823153283843576426809922116602640612516146308783190954990651616045710938064295331987942130019857057645533471760782407381518040605865601042804607039919973177323882377985520482645982592154733574452003687295768711737002623766535180897594053230243294892967168194752216620478613649211708685525887758147667562301265390669218221605834551700234326220512291370884300439030733386576589963885887952604163840201412323143270952271331328244622404347035565827502775395760377824382217111337927986857839477694498439447425750480732310262599415765344389140044906096784681046424744487313876421728314833121348942266190065964558451069869479757485763205357665321779881197212674567385595453546915300550421143118722655954497803670636486420742477715472572211619356079999624637132904288741857192533040201285379771795588017668683904061184432357213459684875588202332943278039116977188376765485385520467935369200641069539259701166874769564150232281281814925338464306565351916095070879360101672246913702081640765409084631758931305432252520629997814757639615193202973470810889721212853529463236892121663992481501187528373197535605121843362226638044227909628375585887564849720844071382232845396710454484264830021272170289067155883990074403831647115313204021672702176201753145740607095712310161578880527157913185555595852443877862171972131500117251953409080225812851631652080677399237479551296846972593239502093486820528231422569172137244614559088298106665860067596249956830587383444927975187653872807371794548126017400989358162885799940549327410371482159738717836523365195496887711389787656762165532023487737835601599413012558101281048804612160550310813577238293748918729039079329672014574253788846258062771687326414133170094876009646698018759301522514320838207002471122636164052590161660133112356111785116408680189638558418780293679061281078603473737638175038248438135512583837712493478806019621382483881141592295663174514209669239389945617429126265566797388425628637255691932606220852285726388333006747771950600600449416788664215586138826758253513178505519489560528322830466910553315172717944729069321996920598539466538162227544445783485006739626484303159360775925090221657239772753146542289935502796204247436069472138473851155510560694015499411768536580402605497884775930008083678857927557557134444941812886266135718886783507340822610363472729124334793295582990443779769997649962254776665657956743293060157614802637821126907360590672574169273504337749849304638495366514421546507345449607281612088205976330396606813668105008623913814494959091376692965865824320484031597835071645712757822800684913427041313455884730135092677034088609251904147509478027544092733911954430709322967997207941774682198664885011713169210906641235937690655337657893818873031206846925973160583416185395052753825270336114651334355125301756431400000629879153755991388190568141652695023292791976105067358973215316705036919651752595795563809781741959980503103560874486782416299090585386089317642809054074841119183371757913943088929364074435606553330982863163682124081302449142274506239619765598002894555818664076741930943514218682343371103155386304221001127066174318857802831389188731521699830079311352923043019848620657571904716838812009942574861336548587323904526468861049627125400533155302304867655301426401703265836836610459790024015755353300446348877200191218920919715070318543909602572770087500932062899483168633626120602898503616209210677462629620185079400693470871268083690890424249598398579785531913570429984328121333339354316052578910326995945359031147473940279239745504220480497558083148141207245578248160629484354304722842883379504907187883390618735300388944409076149749772402221646041451064993368955566528453456476911994288914610593441451906840153043239745006010538639470476786405308202644115189177180502252566201971001005959565933007910814911143057730894674404602742537462065009468043165864875638249832483375033302419156504467218457981481166244641910771041960415575235722051206559507868865700774176287078712150914555562144560109830810666333513965697715857520536411202509701192334115499260919753442636416980293262059785825120477390717113725273526910022194090580530717910260084619182979266181835986450850632948971692928979804868563688208119232706914524609243609604710053325289218256112060196616614010089150091002146213035889947179684445201385184791252107826874992214056705450901238187616142249295579420972770886650458634166736260040534526500817704459209445069882248768048676057273188832309067422258644145572517240041892308603546580093775231214819697707982607036009405731164952121771209793586239676021027971519131556564850192321169230589979826231130477186148159458067700271531678486258642177412456637757195305304825116399577466916439617757876556688928794522885102586626794798409261538239044335360386570760711039707596448868236193259308524462284723496881584697778782987831059252628978784431955707810380230206313340069454324809165906714234898180212125060456977697760522373651771322592368220945149560684888778468617351670692735901561983945533218802856052531069870690854690990548991337259335319548598827267900933632602769450154465019310705616583387555392718787122712505563313201939039240611621510908540985615634841252789107469603017052879047059798836467855749036234477411904152556537262193665332012795848455929146899961279996145768782265526008354068505382803100651285236396411631329673906976240462381986137355281642645347904621661587166381200542626368609476415373890983327400988542139109700716636746932693647766738071034079577799426072432124565182949046834049781263768911546602680719281935592468729066840207522875062954578476846851460502156075995338334667961563657406603582240804377125352667522270077346690912740460100665785153633544166518012942599891853636291942685197470024778135231967232041954135958096921065743394479771650497391475098388433753640356622029022808688318755687176530571389650331458711038306127885348221373249340959122793379042828093431424852104720021407691319709999607466876010949424008222861844787565393200668381124079138442171887332897847537294489340332554180317041870440856937376440768491463151462437164849595965030645168676423825344295244328921681599750516428260896184896404438635210438127061263185609331374667101188062615223300026346933039025756833342889993127785454554090622173466237179244640031851296588559555702696997416520536949049890096158166801057131542945174392828047890578882143253648776135344437979827856431955500010958985952884946377537808218033734310642243548206172636626314642490017893143654103379676802299150495215810143665934561649174962349271607385935783701501499239522439292888900179376978621871244643905622145247421779360740092686433519410682980491016865341237920657960385860665405826368176431444575408885526755296682013479151587495178518135310485667145887158544871151074643295418911897740558430910278426678742555632086590670596675079721542356388787880111244649779480964608224352217134644218041439317082649138958520199602596883331918433708154206169917264849015762400215820447169822405927321562233505681679046308880337691683510849155462425097284228681144489070123608975591292303692877795695214630829861555073220696786733573656807916031466303831180886543095861317511147369432878709841171253867579901900258929948840444240006123409501303206369149667632956238178335713633252294738279563418093514321806877575466438158298929600851422686711055703420384024483302118264856210617744383082515123194822135730312980972041479700484531903681799600145682173742913729211869235839448931440580939497817016067038838221886634041125630912745704807523857879120136354051295597836861115122693354271253611856910028310190986563096873980877851809124096747545525516891083057100957750403641803750822319306880810094541835937411331916086338940785084403497502171275443792552242046026304480648172308086582910139434788957672980757987438483679619583629114350197516428242143852891001329607936246282817786271564102632662017123103075161525527916545727191639325451053571658033947695937833539332828544667039218875657068277554165233130837871776891209980638058495090166917510422901197836337364913024316327187410865079439728192163659453546648696088611225010706840250125807381282570641398057288324807088847677944162121640467298751938878343866336943972136641559570934893018191908264142823498243437921472462946563736740798132387277443234242579830192303723070666636500012896718466990313716614757278264756833756414822944269247186782331228133258995339714064705923730397977930042140397272075986697726220738630007692556144688531561237397820284857572110036422417795960255295431163604835988328160178687524668624583677539832230730299872888535152682738513042087249908234278495704319612955178864802261433173786266695724028385320946939123280324421696742916131978236946412484037253352006228664014683752867932519471173828668904089208284087693259577346328703296409065555037837973585933629912116027282208354416125068178458580490686276579281948499202454772180964060921786281081105059894992851520721091797241043310823918974334677617970914383945784724331546878637676284709564326909247486182926317753721051190672650207054108048930095298245425445799427895095387572768842273136214862885595841805756599488304888901075906496085479136859228096996794725416924651050421089699752963138565339095300420866473379594015728140040914146537994057827293838750408203637704075437934711251961095277598758429996485081059217538304847276143916454590647925185453503675907158388722538472035426822153364520528382599306838159794893016987633193828692060588808081662539392232629598527635847880548273199026170773562587014549089216501334091137979112107970374516516975447035028747850880829542051192645750362225882344456319879081428621550285956157960269421680029834786003105928321947385260043816665787464289318038301187033036972049199801218304706549425556757280850912643716774004118476911369573363957914036583919354687917960399638071207777572879531503871862169547303726449523335758372445925079875320558596663578123187588096606128825380691305446766933014269042084902865677474801565240371703836596098725042399025909139519206489777544229203412293243628625058800773130985531103673310531064001387665126439475832215939270428524337067516425774073496517575676909299835978468529685728855116020898931351115790677297610154540112471659505111251129658223309971147293178575196343054804190823816617991286480846406294824903994879134468182670407440138363589486026396294802981300055602060989636544789286699525647542796038760397082237444939580852061081293271742922771348907525151506511645127791891191838256020228136806957711423670551578989575573818489038992885269213449021301984410252823807576812416789957333702428613638883594881360399544583428806224665065436501642665257329188964935245407730645026781107813558147073617487426097771886483725572660623112712095547649245547920797514547543968449416436385497036796911013995400076519315872711347304234124840923723440565110665672335771361652950286602720320938299327154622369318164778033574222140572535345669082613826227059642080218796090637243329220225137128120227977871545252963173121984443008788215021886409610550302959107032116712359905227713152794884860252678936012548502812277770204701230579071375224956941933964183238711912493242759403402558283342453592352222019193778702762049608573437823386376309347408626478658183283248686967347898086589040957740743268952122960493630670430314247317042558242244849686315105941531389357905178788352577194779698542309780276086507300146082864729978172165897475722171911902187673815974142420726233451870837826093461331276951827389654336430330842578056015635580605674930500853561220564633396679749099765045885178256222004067534698099090412255670088888676132989274530955721837308897617589547224660537140508668444096212680560435811588970224950390257145826218867237367789358958567705679643225352633806134696596968893325843909634339693499762425312491700425314949114266688656112743995212770273189364489200966655196522649399803004837196698580450390100806078242049424713706067289879605808517258236278164252459954692287355553473846633764606194100193762551056919582318550773449511989955340286235301508010038749792767022754192972290047950782292674317176383331669455971347390343673267086345276882136676154192824075591406697571444719801232037527108623768692371652892633792152719222057572829559671365075840486275741636999005359200581050378936520839472510193017322665330408036629217865135342719310963417714228936645709250628326620456937626962470227306062642791497727886262322370335272054977100338235858223348529385338426842352242883780757273604770855280609338247138830999446962338129464284375447280673584346324395025331197156516653279949355078502291963002745530045156867231416456617552528426606206293235557870477981831472062333703896062991907018969546151808043284539194242674291612693515759447868338939092999722543670755816567807104998454659675689782242100400283045315284134307651520409236040173709551118099591081011687117939800674818824089639931093475544166374275025588758252811966984998993457490226889968623241212232834699618456133661943189106218939041813946223969304708042694612093108018689141771377124002667288957963598408885403878483836436445483384126532601961623229773578343063408393257315706391377276479151710351280088001133997634365555668619056124181098468882648785526640564341560998828558094461227757078887893985669535707733960211767817011704674434818414705749494771552944411947876361100721882293575695032472499907849759209329749280596402809640397756351556991748738244591532431756056209637106103638651010135611230411133069110404140097738377073066961878625565943935127598473479047987583644901885302274065732867190133769929854392629906500339611316259851739690009880342379063239072040153756686995695097957939572865837480017170098276833116070664514683736180301146433811347608083770261490599014716894179975247411369216852612675251657909127607131645413266877022316292392148490639948430005117616511078282011063522811534416424241637697588773657819965292220778921354942430163115040824490688790483960038464795754857356493138874044225410963637565516056685474698744323420257771546700893112088874941356855371712506334682986526935401227668974496047847635545237204670848453652252167283514974658265526134288343365523796016594194573098369967149870628124111309233684831285396390990793199618589174934427109451618491304627089944691508496831645979915300653784840930192987909699126598232054506462628192852651785390560638184002343276473302520826200554983797420226141722319718867764366855949501047959432574567242012033882756516205325474968917620100864876554492918297929539286887713869678471623867326079911745930981485214808485564167401209112878484019470828226946357076059577014239307248733233631723489145062700625076162529559290523634564706462904768009858529007288700019376334091480623244393172849596506766763296695637405212278633630414240702742137256323081665200665977187941913556706609346205514732472640377182378321669493746136610016678552577816928072857744318809388727758916669784141464762555241413947494410802976289859763184778984677649555579406559152652493395974087922476506483887044829454294016553240632929499401451299424108236949415679710196733634609664388872305007584608353960839982526724433008053509158134790559658032100114399867914226376717701798272917778251793617645903578322086973402389718570028475959054245663218291954053802852118943700137925973898570243980447680994263191368535034625092834511955928353249594646125483032898535943996304280102114626287424433631593310260425566887623274172709843566015929509932499597206327893563198804441829062986169956635629822186912826654374695207752171444895289538343710914413648911022754141279037888312828172430481233374978954101918960309529809896232014967620617703926397986674244031353575341463974555099224070369526004786087007349044396967949957445207056897054750294721972089189995068862089926742659476513792711102813060337111985899839407020489988886164830384484208393907843146329398673267185478383946747540674032723626714950202594931742062070764338211310281033573032533076426566684143648538602064934751789362937750370494782182872265790455650964986926592251529432237907807048967271353974208843307696004680029494884272243559599121033662515710221664755364245389919383690923154981150744946428551326240488586034964512415374944567740159112723292681495837214560589504794862026726638201384696912282142089792632704674173902540387306279539953127177442467254827688656114244047690980070688412600230190587913172777066838711236008726468940470652609182634918800841563476472486244704523894673335753694769582995025515492856229953525942772761496329125502439432584897748932426613717903421253614215395947671812056329072994542553755648288591309496202609333542581728271582310001074138989850936017597395990293937914406980406526167896294448824235387433827076573479254157828868629773443302227226730641220261319701133216941433188247075921366303449644731554013388643539747656794239402940630460110366266821167965191762180572456775978029995425855775480079415937160738428370986601494411934639961108396177218616857408170679464915394018011802056899857702704710255966539973171202853553169526178936152517273225225858390180208938902626791852562186285087239171613243717080321811735103623528048080939523572685021029222814939781195025435400243947750508987252926930080863659095220573477539580013682783664515247643951586394259574543132899408291682055184615179401493872998436580147827485907972905829605800541957355137766829125109516709784876460174919391933680333435401578808356857400174315411570722732563305264737406870836618548190218956209546042425506244201518292809967376773554094679517550283245817601108197681048703702702642044553942534793991304036799468658309130935227008772016651342750759402634113302263801541988947602215616028864321393537451361050160226011360753920324324845186777355229271287022581556379560618922772706047764086700138961550751287773148963012631172933481804856253549988275320395967640151583581188879519134501307080376860669175662657669098933620169642285604518417700863104651879263724244439246213941168520949594575107035148030626757037339831767518251763243341877362890575519203786584226314561953659617355154380063016504469104416080815112457419660653479591451021931081227462184411281783353279005389624339464260735750530866065858185499206184450066111081100856253459508515725536181137199530250019433985808390183236999446518910702127811397561432826224298990196530936748659700192693050319418456788589051410659437054140035740434616385864420529257557978584149454039043835206389080338634602655854354430529901450206451885197585165620699734399247169429438812389886844213374044906015551821449306765072073917783583816462142816798242653117225392493116436448886750938141425410958151259115868891601047606497704409835707709034120423087611727575572970513806888871571958718261213181367485564062148176820985134981872217020606864746786099404894008802152013004244486816943077787389607853955806856238889020440005564523336533931832594121461522921010576566764591563258113592993257403745505150016474887349439756785688827388836019502106127935974851473823052145419172902009494469305246496836607270582572833875850741794575488673366203252775632232564120014546982096036493527771547838462376049550753658391456921783226946956374082356131419579066126118316301649692141526447762710852063965293112341789431556449956891807895587465410430081076036464149397666316006602114116836289910462112982673900439129580429844643558475812583427242027522921852977596938425400795560280868731756584088042944052247499742891659093628735097657558932688385090744417511424557475172313686016192017301548566623016858027852404423883842170649137535784329857044128766220754098302350384111656523801580776386061533499981997406985098899792997484426690629672383863130718696352701696963765543428174011540091264645605744160363575180159430048193687591012316993477585298080761475959099238876221980202159602864435427197840116571366277961288360953576206293493559450902227292344631417811261527718380784702058038019505562351838303304629601898266250273576697286283087606421200980673731942697738105892387449811590199219153333637668567440001412218295894631022031338930392612756829745750307497726301191373507894074708176248028816403973454063465563886690569796736272242921985602150753560255574745962039156057905115277327657806204826202980678419003089721887646023107685604388440148003299857619253636849714901103869575515400391669836270873291048147864008923384499542194104276085404140130182779959850084902216950215954369181945182827261942408228300994878209776049187904285882333280240142987742995505365086777957127699650114555583110096227451016697984750380036868156334258511633657439811500096858225599457801918114119508908362235353549339762312222349453586757137610604333873226010421307173719392697292165974065277866976559130144711064163185397196336451522516504424327949440729920346533131998138854393048426596403424281614431871761388865153107808855746284887277648210828586557754264247215040368303631048646020966597604571498966229271118713906018444651017237377096506328403118705305246916452018207364906653948860544940968382903105478539195531885855393083203124086437040660679783453948156444410258544483066941860145558470539880176460916235837581222831024280025443140464972485619749764509280619442635116274016343075241131826079767545191401574425307754800864008127310307726164695554378616171446862326892752899314009637533561755967764981778563145458819162262810076468842335836572791825555482262551087726909778218540028923903027365177404300199485880049898209450273759669450015268819487676886441980534894525266465170127262004224217581956654278869268880003382872079743633060209946643814344871588230224946759608562411791438307832820192498553037639744464928574313093163996992746369449236381510919443776957043828079854807879058359769696356141336285204695577729347327007699931082439817319321748929325432744391111303334597709527161260920766805804909667821983697411973660434526542850120637869119880962826369923629270844541189317594824252852219603343500893365204411840012465699704135263984642516411401537001946625854622390181265316573007316347579471144708842833276877296953029753660604471891696074416274083622006052827089695672409211788425718133519532217690666272493602528777145168387671699449770591075983906105559146644126192507170476055925024229204557015595079503406377991807550001008831490580547082456163364749967812371637520610727522119806895290249417336339861187018033524677261494011241032420122429858338447404539598936654797794792906864765225920520392908764711590816334954033412224042256127648386557122212615815224130862790305013300299535849264414156849548354376644487542621832898405646978318031526354190896462373336902742750880439384877386799477927720456773070880716097427044046549281743119143504680424509912748609859002964561736239461906847844873981821406844018505382284986107130224444936874935582510020965651331034672594062019641761140661404509938510765703929022129199835305329993051744443033633200224679397692196681263447491555616521583433405977221661087252073741598930209939891396267222003845656973191577446074869364445442435892923918146139208855854795120045512917227040839666000256910827905084710190114033415877023244989437278560399735902930433172661996756783674808557962456250480875442387108614826098953047838166915820259583789525882900405197211023104078697022276588533880977911098876594591070647671297402076368015845912986982069569256429078970646435568789183004625501894490863948423220355903934929282085493205581117852603179769512049006973970040471602836215421120340949114315618523826128486129814190511440057971891677825098094733955131100290845091363048844539255298918642427867026088481772745148896630635257928413529834750254761893081980292698884574266723251832456827018426057943345426567289093457749871750792182769506068593150614156716336677444921197822453618545440509616800182191078827209413773447236096696054404498302158190363266513416032682013610383596785713763237956852809586551742260296170967284956129129326466789545375949306107199488886438562291706019110074904645315557823909836867406567558652106771724090370228014841202734774439862370608118004628176503263915625915573572130453095623229551247009319745601550236824837470474195793515651298818552656986973852292349756279068880077455591804506775927749260834507398360242396609358797975537419700106749703492153968968352442555714822892648835054832288095983878586077330682499329281726062777731037874005721539503513480171480087694872206995070419042222780968959451286917967713410118189140554696390146998442013224513211031762527375420100130537056294658140503075411065403352231919153906728799595002355481864907139737444537349929507295395356627763020422813152720393594522498833113302411643756589588461066620410825560360244795687910973665430586437599769678980931580961533754507635153178172341573522474130977628282268174027019806608743572680992895765073184527633646180280903390989675086414950069588094634565511080455900186507369486968238173615317161214664979633583563037287872675075716689590171193116043275415114739016846014381448687911316623087734870851757697238456732408942005460140752610459350215594536094373268363957052434727313266672444884226443212839485570984707188746612502782698532047435565749834103569363743870599585258528365562383380503873311959926977025882743719822870705106460983133325467303264764389873285203047154517690780048271310447639458050177358059031666818344582644681205123133189614853045105980086944423246126600315614787255301465677020504762608557988583204765831495573894055569977867864647018375188990459906783180686613848889974994466610783149756293369994243275689851857587297225779742619632019856934728093638511189885682198595976030615813014391353374035289365169903842369097189874407130510919625040379288394174980386148312827784182864741145515806542812455416028963249990931905762305947374545949098258502282887999831774046204392167043454297887266122724932109375129535804060706856977888261086467620809364156060407451317256434829597518318213994117439545262689276318101955128348606702014125236630841484859972661336137435012297744971224326295989731796499011084771761390760163488786118985494370843263218642403629838842620478298425910473056703965797032410445264128717251001739405228608696136281829839442243091516101935044502375866388611681318059382160195255004834908633876611278663799095934562130294226715812445047431781172814355631278775125017662308092229178556665289570779815561394820669838089913458391477848918016027264387825106967022261164306450781370941164280658529689134507562964378660086055034197747081464000324341716754611509778666604875675613396086886273399486658065642997244051267184161701102234092528928016723786164784207777455831578990616314966789858885159550109501959676871138155439349339409223365387144851030208214650962793801548453489506122150925285399845972501557395437506830222636711117200225895139604899774242775428253113872653938688417628268872399681077363096862057894540281046948533212791557677699153069004049030217172055635960859952285795707724384459808431232250784585851332930470509320573997699450368843786546235732628065827591482767395176465310555134327961487651511156035031072513271325544255195752426705269209385862713943905485998896341249583893324697172301444932373808980684958629127873594026222909459810127586832838379571368508997328654201584303978214627887725804903330481188575080085092147143592651531369674761090671630620737787239454724288591687083226064493443976573443326322174112334054007058097735305780527120155171008698694742760222407674756015816626791291263006976606868738965636716823005057132618206610775250407051234370972609403073965884274342735767426423767596646753960536349718299153509595322175861879524369182839626161752797300572822271585577165596636251955265429326738760272797777019649598627785906140610465380645598004338942024030363540565132472973315212747526184471755713750919890310167075594769041214580811092344259545668019963118819051873407510360554579283182387715039065933710098873610825717042178353651214649554034079807174432491803562437305257926316324443869716142216460065734979359217263566169069573624970905328663206724394673906092849346007815598586011337357707743860534150217206545970605616908664300208366813021860577682561283714894797990153114942483537447185213358125517101332218963349413449372052189447847734358667788438382361020800470698570983225104418263257575643830367317046216543796189939433542582843945982375170163560334938778354891386383420634645372990733048073299366594639832619179374064448364534893615069942991428874871350939475880376598685093794118853918773288822982299092835533205266294112595013151854060637025849067390853549899556357670420739910340564341835555879975422389509179530540392619563022005796345532076049398864048711806217063636419383874994845331827887399349085273778648864878866430412507412778795757528114837700895882590335022700083360696148934201788626136155602004313988448576461089205868179734084451870088560641692224101961625997771640972515483948719682840176714827433268068203508775485706255083893374791363002941997419358556609158168913268855517135509429003552549766961367958030503242262877641259913411550327092334363289041003333128920402663008159385320751606746289566635683225130107323953171230946539867596278161847018670538750645177686888529600176283181373260560040923621559221551393359842839098334260297520869919941985418479471414990440462795924882944811480637593448538712950156369936003601839360366568767407577519871731395078682351745425859381240367890493171606319479497199203902466393607216694015857601658400484073114948808303268547229587884166137875175372260419978887492404595236315381416780923414990541777702254022412991681467599849325466818466022663930049176330913827933640022091835430684840113827200481150033053651267913569554931246236246389362828848082011819529275415332397450243598647868815787417079181412862044423461726343676078807332549703704962134383363793380394851725452915521539098640817867837181345403353758507922210302245528620809585711547886865949341286703325134651390338729363638335047500080860434160870375673256660935556084855882891493501014551728946317919027833594482401942828150741256611801406741930820832136223584707104077619235419263537193565622996931228219034871548839738350835691288837401924454733335902988023710394848451202697239170619915674622647274133487515839825125075572422866029267503446632649981644616178414985079276919339341263355709324497262651315494888605906910739173525205634611531953273684303156314829878597141693494969001330834663327326124299830822204393525363047098300843786961789235013408713878564590983694163022789349285139048621787566932829343247537622423799844973332971143489788770813644735100735508982564151890107790035021067051255562535261275181930316346492230666263887011523283003821207629957004588667913999913361586804842111283072884104464183403530137089454811399060027094557610787964858284033518868508065072706675741032283101153377629587165276712313822546421852624671618772312729095549651331233940638916677554603449639811765200695672689569766504028488148612416616363571329827971300774827334988010852099064675323056285944889164615076084498860862083201814576193656885809075610588379215318951814595520163440240563630138626343485510769816613347503184798546035574573795869031787580410364253488313793047151084455508298310805459029987913201973008619594523277999658847301609782518376024187245373828083027763592459789547255068545053076467203254709667594461516890105592923421076302788184768059877325542066021164361574804419736841671239907612887730999936196833043017539991870300620408643281025652153011175498031497846777969799884931417718517520580686384489838586286207648706213235527983113307492957544780556499868368520911471734479875334947452821420274489805907965695805916302742708046877695333957330239234151806766503667091125421283269389434188538581768459448667529806660234973667778751407858189398633105791084701313265568139061427386146006727163578223327779018367128206250053161298452997939025165427242401959619005897148761249251511135819143364975791817027116411761595793386621295908181315757097201777888810733955118272078289146222209679635919768703810043990352789323506332921021609886425784479759281497607736224132427315985223565368851645151141247209541136333781173889042796513007515197939657237359285746346262204551696593724133613641264075750398490447044762059740713558852089056790556312895296264938492127541441341001455808123106067855951944038958956576119912833630420801207941878260917823325230444907453523738883584164111291128754574351691876592025320169326589188065436032279406190594205277254518934693162472269623716824300758049999580820025694314500859253481742208666240251375528545025055610337602995391464327062671473732785028730523879269904516214298844137312458274412488171275973490930196414326890055313288905807523374465736611141375278224399993673226583388672150417976556233441953283259730830142046778555783929491525896556535606546560143461688974896497525789582979916110726844293707126371328797838935144819713440959160306988832271853088448236125342373207238639539000500315421466692137246004124668952599994666643450886595396320250845419615724177134995235346535255960455761008892409331284980064667399187075452734627679011769513335536524049889659405720168636965263796346868407867547001104916011175516427580555646937608033939879423627924896727180164830671724084913578214984128517022141109265442672318053497386143372850862622329792651277860033403554927453603504539973053595460423010853536254948326741344710904257056711679184430865644871349560875467670990142485232491016555840280940569024307306827179914914903262680221302358695488926498814964373832165217694393319878375105586112131286228962572879002227534378346112439321863660800471386769341259381638753876517965320696165315818572585226632546838730121765504705198638044088010011251765967825263261906785873987468074971276530039568895941100715195012603696756256458624305493933186049303816526512138556977428868897462790050172522878566069544511971569210702425298684256599983806176921143730849479616138645574657367802900330618907859362041009182961891936173172909913349744790842409081926591870162983930922034726679261195089714384905377465639517239671692703477850611951740090342530368341338852819026057583862471672412253194165947180986012961095699348619882719789009425444354516230288243679362820472113907476259158250932800124871486329433580285200577436474440766191920988540569835707945760148086950634465465927836527586793565222775511710001807941777465424980650514380229345873851089195164871376453993770527915316750007859195984155229041265464488880953997254875262908931275960548110223027055736832444368239845118316870537659964726838719888080933354161730459754421265109766299479268134190838430819714834548342649932270554687352511343380358337223050983774757403907183596597224536364517623699382988139272513244488864967465107943478876045135670198564195321925598815083754772737625225071194425025087823471031488181392472452338626112913084986966674371232822143807408211624852577933440778161365567839075096938919251319161927876577744221616089359018214796045150613291704913560638684673270865527261260267089411370592079004879388859661074526157924241973646412153117419969178235801890111739842713503787061871183176317895127712880781731712414014322080813608312344209960746465779906009282564093521351583025784903443418986067916458393065709626061172257741152306425436185486454509184462625392801354677304589348191528763636449930918824709364140961749516732306927237809641481662637716482707581375107828798143106913363876926996389311621273387252083455958827190724431535926159129412561325211382365579736701192773007661242611881732456519304110918946856549222176982997121771999277232940913429940469925327951990298390727626740300171336950235443510695021901684288952072105857948363832085927130794747982943159100247620213300939964695995841323689168514058062403047784874446720501745880529689585070065925006909487892192152171649853000318590646211341499834283990085636613170002165973176048775944247982338281306839073972132774770279973297957531214281946050592086773699651246112155450156051923010166903799660008058627152530944296783687932588524682078199605275676805295597135731319301625918802512968042010879930458386299313402573792185658001550882841411129191630197342417456578896364276442612128258260696410574500233160055015976677968471876862896970038650535660095729179982096354981134095380716410063501708606481765943590945068935025841565058866701911978265848883989244245410855196647365555838584516912525380572382942177956712951928929354369250916322451689761178249343135848836079318927822922642932531272207984880082343740981673933360839327375980193188975607981415121095767174951033081588279961167121396371254403034947699205476135470218690696356992272977551781084398891715384997246634137148482187895828907606856571004491373019171962272873216392601137325874234158576808706713183103613165124245322551091193059259405093258552692689628832108841222497230165756125592282588100328429391194034900285199692754189285012809762711965999238786325532149816848153345761405039310271468042788852866647636196793969965765251345393416229271676793465968802175224219345734451562957018264454115264280130526916956234726392439427980879414533366018161474105886480243161515165406379089040024861179646671834497075317509674286897499406687255139645785496520744060301519118210873661843471536616977843312844661387485668866541706849875951797002329698648879567671095446619916407664033638564657138301731675061254763483696531845061807074838364363753517147454707838559515632743402875043772113463799333488340960902768947428629202162163356734157604858884719100233492559816741921395492518392312672701713608871544831182091676096480161907193610160489821863540233910205970615666864497611745083687966137927268053175438435421128768875368947792542827259609927607247358315542150551964871190952654603110696036091116856814851713300256777943784975922327140278862479891448675145395618465631201410061883649301314908385420094933521422825614699508975781992370327671749649226749509609805417307425379510441003329765561642209190396323779781686764658213215485621672967236446054281202841034861447315600794038655380989410318949151717675711716024759774196070935895827403794093292386862552559265455857554934928186330267608269692374106386464247727268211412740032317626622602966609258712983872181716417064172100133106386190629036175028373621240466420734586368790072571312629720175563412106817243564210034450075247892309933834210660859376553096464792963104293400308575029187262507501459147058454444110510479369363166146023132258331785111278021730318062414624422102144872046696395330835957382516147079371210001664703843458102390562727426292802552486262249518102978634317322283631340727872216106598580101081980290728504577208886764287760977415035056374974814249020502640182076554666738745771971299998500265146098170678868027347984447760379528636028167371183043378580211367029613367789030413146323047196941492070507882119596925483754366639676384232203912228638501377490061050543441370214559324218511667066299373962375496395837243774392533896271463327946004137220302145911037749086336579424871051031057355919958354463890318212101312164652986011190936291303749413367807569208706406406763579935576574685767734985424729413223765129960249395249377667473785638186797404712571897278878914855014289477144599763250242716273781559119893847089358647549942678648978618949269941874560676766779688257103867466221682534639696030893182157483150132986257386639381839849420881114124935952472000487661058843980063775542022628118656337992263799644069721266048762324177075461480667629631483405707376238408062587313767747145683874774852152030760470289804134319930788949876340563435173959491039085802546836094258517673271073742459925776094086801099205977422908564597005117457839350333402185481087374666859532303259581133082413280489956723964762485585168952691135092792393466294878740506211056292415520245452433158684566499944242314334139284370658454489095460105554596844459402540465424443261701578695461384401393517910450143098385866272177245205504082505541258053904649043314454735061754763294264534252604957415231980791755539965056796211184285131868749408192577688807942476390919708661369121415623460395463220938430655968577523508443637943584877124877336191377252377571341414372279394435750220434208863697113642321599122606544844036949532980757987235924131667623922439872690517572934310849184980699975217011912967011920962478257055252951177365407198587636590318007345596494775041580926551579295664979334449520518755265408339596891427868230153021116465326160123429792501748437325152145031715564257636903697882062282541441489522742205657641733558558318667842073079171119034816395126360665265472006113397097449632215221337846286896135848874801897114732427984409159249999590111925085186683540352139660564648780289625767549253157185472744514779639756936235785557705973800239023393577183826847046708989478560531063528218614108277220199904055213449322383095863905933936895814730612814661210110380330232302008822489942105131335723201781665619828289479043711253158240973056412163756884471429723450331112768854373087043030292016550174141436572817962958254572475309022342076430354562885356131504347895980095518086942688704289698622417280450499271544827598256198671546038503481929471815460821918744696882204542245481698044315807394967753992766944221754945966704823943278928402530502369700025675155413577975468647989971688843641327837746315069812075019166428257467810389529593978468879847498962350171199194513593870128595660589625649874655839486799757075880030719953146522238653906233239992577812486021349144010965851356548178910750730600902898869687230923005214363052801024203902302650003046567985910427133895598764864692751539723244003744779044093130490539659197582978897439805347757009608877634670059173918464192653620926735685897094045792013789103782009845342247851140194241389040118643962442336844280421940255040220550599813384510366257049914601416152589727235743815873205856464308783199249549474293431934588165964425686461181438499351473834144052428947595222636768266882398460460118454827837639234945764192553565568596937914836429986375683636112944340070120684600037020287992162357241485661877022407156116157068866797397496107829281400761643231981805507694864111487136508999027751377319377637271609371368421085487786963590008894817759526514023169935839435994885340390360899650749314352188061172179593269409385662376527773579153598917662205374431243766618065748369735720643256058083689066485574783646739403153036745292143809027930288643112290095462776006739617105566410161025799401177932292483401010829789179916643129960236941628904120963853859750258553856107055401620859313679143717107782395086182314040216052539621547167035046875633389107827415872736447669570128261441204061494772006750983925108944796044120223700371618450593037156016472586320169454740940371032913379042081399639080894733963838980939614677829147663766350794463778399248804597572464163943048160124674953898128955298463034461731401429973175155111870574403860477034515558874909542638467076437993650527948226396696904327695515124401911668027670547007425487731032322815035494914496264487017389740983431804086001254547374253219687350583981939498286313551175829120229567622623454488918459243117118738478903941281680435105841604447592406723146250560846133897146418132540780939823083058202783571275173880580105086623862050013831726763583401622823239325018190218076750071575361461169244578860715801023360325283796972486860391729475612612882919141535943685910070862330336082639012054065347294034710312089637582651467600577169475724686424915453243690396518390084948975905256997357108824680082990941692727212995347128831496759482884749755463558686317187871937342543757434734212915522608325666040298762803987525471981420533128463703767463253698303189514767992667003544496711333469160444129708232683169994332326927335131464648428898157995553261218339228863411311519363120421580322272603521845491651164364372065737497771641449499049125419440005320618838738560050488456131452864760265725706300971771253276591384173871491994597911827920530746682959639030727155814658763701103639900139428751250884334872191945338940340283231140346830849108335085130975061564820641403538138254492395479055438607927481775114522287713045051653429469590700776547557099144251821994407351507789662363663037679421003705742690504878305413944824411336292849096493039136135629337425284871081578936298292982698465800145995141495891153664544668737810193264264570628691003962818014675798797376570379868361411072080124833767388395880020927913948411770364775358369409101069933406759391888816435183507471142983067486586425055191877066811674545122394491524975146767612465502219567978466416875852292873756592937831127314054154011146788425157576570594421008633596812645632904815345682362664168972928911736882662963692686990625786302795125470350605877255488661641023210369438131360004943022259885011044222993815477017030304603679602801831798555300241762172068444442361610020321794474177626420484697132624144713676198456167433737913999259893833055442192110319828825438196664843561627115399562601787938818160786382052844904828133806622482612340484743546206974404814674661920315269368649091029569161177825185806558448181334455466183131835233125953887275599218963111736223006514072635810488090613394122620982281372480583882930799655751135325485291287397625318738843236476345717574324321167537920958835773430698179040208937293518275659034629891425776137033296626810978444570575493449500380630015629853347213386412840340971738821731881756760373833569617429693807860548318306727302578620448262996264682917823279941488873763032100881252165549552646936860977555397669054444583800073032073012238821489841200549358562080930925372099924612901856003285211759322855131391627954014997954268608666802317437582509043951211041772411145711064627953310274277103724031306765347797787441546166574648740588110895346097390864311437956422832579085935073397809556187801373875714452081000651104712655924221476710971472858215654992581897431373218871148252196174760074748753596658550021243740638082658754794011944342889699384203132388771974415018542852614792857212143704317061390327589355300938044751228080558982369547532252672299947612663371867629321480903109507946799878966971457971331373273863840382195401419341891007885665698297917832389115815267738425131664226526026566337753001955634831461886998686167426170625565998587042707800934647149551755400382968032096435147142713017040596479895888424851819893965193224727792660725379984512218262370556819119111528005551257627466045216009484871921861360574726510247218550382994216423354470047438995233606039515528897231384404413399364753585200285478545252172914228523646261720200659689740025235486583171405075540194124001813861566952448814087327168837371189444429863288127231606571589507208652352532594613446954137067059272701846167546033829493283819982219473082935804518884994537169339784427249063062116127424374334788217694525401879557874001139096930675836702845448988679425977757980117776005410403080942845322505233923668047211951684233934602968291616242658797903893026358555149443442309818628407693215469042650221888514661947997905726648413509549625695350193107639737464430658190745217088641720747305948973596154616662226855603678403267509810999318536781627950905512439412707069811123554134420655776890622594517718303500972957661020036722248128149231537181821789191255932426353347545628454457886644137227796873225679304072449607718730737746684135244747311974159018685268976553269186739964098104275948051361483467541975961634604198963818059566057361042853523387268274744814912748613450716667462131064856409886891691151951039718188182486431214818020766193940329004676868664332917122784907442218855369126064886075311602107740804683670450670914885648534310928783157316939654340618596848431451129809722658069729345038553957179842369393684604598302831388881199243466871135142117754244209763654424083401457218449691333226928388967732991745599046575678613294496004501847601768949518969511086692704275918074433957614470680043563148814570544326060926183454240349773580325561212798277514235424942859288528723772639588127300323752616275942879351898256618507493228930241218864076504229272728674978521180429960868112788099842362384862149700996453321235091987767094009719667499337331572330449370750993078611009703746020739413721869945261283713401775223280340115151251416827888126608580499632855744806054664358939431291793763558303270071683893299716583191545291159906944889732774677590953293340640707639424364995129942245826489104298964556480340320637578424493260398043349655611796304843287158260590147368567345094105111146560207952430050524294192316380683914229705806126546026046589364101591108255297212441068970391472821540542226080739165268925001974298642662293474334732131472374797955467304645661107702548910109096038353205827079017405095016292957825258302922614228096659097490137431295527079930846644776338805834334953963193061446549389527588698109403843983372277940456161121072678626272156238977865276915609439946799479687103900046493059896214794136934234721344886029864425296312972705590700909278925412591854313090277836689373840900108635127769871799592660997997617298588650976931244039128938958320754886657173624365436144901888935464708343186593273503990761054137197662413672099719419807442139673856625616049816674645970506579244877336583833225274253089833790926371469658785282628517770028906326980958183642385352589582841543813797138068395965430152005171184159868309582303646734813912118752155692608278332704019853588020081785133511821607792020670713702001543355900869625304551066451240849689564856518405825429102413912942049279789472386858408257302859204966728370431305277488391700576730814658303342288920852504812287739071391843094894832518739711558702453968150999455778880141519590198570902642788473625148347874806118752950168238445080634504253264663267558793109790603501389636108948784534633785232063717436257674519106546122316229593197820086449811865844386288161093187607453752785663265060024220964679491025050363882495574325656997742070421147883447905573147591899073383822491645109450833214613308721526687171054512012764514980338374492550408876858118964338752742170511404503877238568980914026366175705401368333882773179992409309788129206966506631971725047124899515148249210726953147471507905962048692519296583966811594604392790468237053021311132900578053024899596516725572448702981152416219194848569460588958146797623447617785314677032073520042124262024678607963266572267666912538394778233606862812074913372453640632554463372878112769412273508406731944042494720877837870971571697801981784824389795262182661784738259595200752295360004180419071219079849309210453147456796271861546266299995579508290369786180103238582661428594306791954943925773328003986503730066656326501719311404677116816603623700802924063349414647486904325636738144322110043911193326827079539328438189232425027173895175361220173059018549326983374174649771213063284599876607027486411142229390608770864879208125161917928337271811521242493735861931085152803386651084796613300488958343806654225032669923335983310961481761033573918495646022439736620527799262963436575852645225289529230627252585400238171354539151346560489444407079695468725327530321467088142996962855737503602674897133680159501292541749070026325940936050120280274817225436622110299379936219692995071165391880544858009704599641995642770906378691462646775878136246497321269747644842518479802734994946884609444962131582302700611690005025878087918609675680168302909392174347728284184083515129004467467336976631443059801035161070040808578965179076738732096835253989634728524301173934661268916998870237272073151831836531175021278081927109396536093400573949562269093458584355381863112091384024649534974868359662826618056104835551279046589250030456221754321235866640221407011303399909050262381875838180593282850261397630977446063672439847732539202854483643604781477935983335896177729444380716966995367432455778395690127681874872778532089350646400985155886290824203280026492195876855531157685192752785541319620457410894908946473220299484368817962960087108467849652047600417360416262253158814861353951230129901605604859479026606751877940663826144839756859069968208186725152071131050707375365199840192039664976858678400879516752550664910746536959945533063823510422582827336088433679297753416490914534851760292427779822602817241633969819687534162032294640958586419664175977119318824929281926820908578782807998888323607607246704414138767000050782349026069748012559836773248402395732841162362871881107716774015443087621588965362943547481129267782836339293716711292043460972296133846669239980737347003921027110443893122282727482826739463181696690740257744030775279369277102729421415683106800169987788070856038913532363735295354809337545114013353197634366622188465561724899504666932616596388543150885892130127582093899792552460552172102030604320180358700945646437405798237318016766144891466319989814446636514405145323730367916294478671439641246601483857961421809592315855366184546181010000679865119523732503714457726902490267681008311406876421188322874286753518524248120455590755335984807859731729606804931094667755875965025901996468346967585368964537062986470355379368359019652011812684107034951936799386176418452977451450138832100985952606722594869566790187958511435533507470868072251381914062402763600035076710367540002601125983867425136955802335797659639684106040728932973469452962397098016298389417166019611965128483407306030395531201419530628562779124047310290272577714892779390958515876944546839799921077697282899730416515950210833987991108222688659296836333219664222740820551818824260648291567703665212416836303111313091451582392888229084841328467082748021785282366454058209295055418254014993119841383075792310352173116270160476401896110482933293225659541351288439764736020957915540543983187854083076043732349341968590887167398244397540103920178870358611800495492931816989713098123711885716427188887147814245774490734910518856894562036098781459595052949223640390495395172970718567432819593846388222829619405220681312954434850697849614862249853495425454021204868222537031296252967795299574511055234398516263596413290638261599716782881521894117452804698559668003854164212415784557489024128928883300347613701357430319634071388030930469256328077093160318157199961570926685210496910198430462948747618723929153057808701949367118417190885460669367203035841308091640255584008828359996461522703213282913346215672746721544945998000403725848106432484910344225857274568680645051593061803548225500253323819418832457656005117497211003391206135566488099614373710512208018617656492335332481006507265543826722651634404195736946185893330710164147990911241796574227653539782960141151731067364125066348642126697345244854527760786050450540651628307355262004332196107225405560401872824006113816337720639268679080824503014898274208814956271010687704001254921764317128799490175565218585844789448072842179077427982785288449133655054914240754670581047630889057143690680499877417339637633418676990521025792206347430576516401347750533395520395315542742315538259752315721516532987480788564383737901685073034647219010801213785663943806556359045232568278469775939495589832813028247925008523427339409538346281100479486097436649768083567124127907136886668063486777259177611191057603188343507137187117626228836987341961191220133884534806608999041194827299314849940985251237156561608806363788462719170383611440327167269944678933999699534512706604536166746178701190811698826121366770024982674399120659236177818921639024549258934799281910439082192381142632807370426905559222729439352779407056816164265855366018753381923607776493902093661495449095668526351549487960601125120061343313310922730509399884967194958183682607960783890081614193333280958988580715210969487189693704919684391186017955561593717231400898184621157596174219781141055665458452124206201512851908189247161064197982327943815183126897150849366904770785100611806464561397174192032492628144545083706910483010687481712538934865560802646669148558400399617920720051438125844461088880904604826606110631543924031842594065214695853587786878463642891129931092514075361633765460641140359685573249251293082060564954118570850595275553467845714551778512985538438455471251471728859613746963229520821389667081371912183691517088282832093767815207293797676019660538738860818609125257087314958344409677348440166621321969238388821092591743930493142374239410325836511049608955518626730983381317524781796132850238587166396070919720526818586388051457823587653637186357651923199263723968303537643622818960814313539969204450038740848202777363863215031674765888617685324499165610436581465150331553120345641427986568756694777846857937271924546858070994243691064915966795093059263207799952586883331845579069977406053255033457077294616036656114571028794210872784963800334821647001957403700755152135318620555387737373106366391416167930813562780752920308968088894625330547264283409701432580013056579145884939310550489920276747466266943823247061588088561316561979088671119391686979247321918293790452632200642001831480301574859246639943290549731258362237636110827712160608290711062655149276283042340128238759619725697378348552786541520802620036845099802887762982141024794784029950948175257316400722606220174809528016016314078026171958281314518060361394210501872466293458187206487779303427482786916442516646384961850692441322464937420931212005201777471252648225711404186063397245308719477339140270440116641050340187968025505545782146347527030064397411937851552271690839582183386628952763097156189037606535378778235651203331241636834914237593346644055255758904516425643360160252658686265590051543005298683334097848951332128028698464841467464169531064490427488250579427108253414546508764977932633756199043325312867617827495917779904725482045529157324950570423815945167900772246829022844051129964026519395033457266465042368180564358223117935247406309679904216704901121059932689236784205376398402191015799704603674262369984896918948795915619004464864435107958289557899366772393280278702630147661455021179477778215205379073197831452403626636398230484045498329882908817483591858331452277923739136132258855235175147589075705388471115742194786952660524945325207509392476558926556593590654571841540097893477229969606381775114281736038834667061899145998423416402026038471557683333766430904492049160110857400613176199736314056342494891139801414235769010399185830894208242251550896521208756574273932041851431768621830012442666813182877244259903901443813527744267935603970968102081008635455637717064760755905209429534821630749935714443224215968054891887814833639813759621041325839903044674134632736443254417346200686884234115067464045206241276715937117985113143221316589752254362678229334980172602597833431613773329599074869638841258120635411964857381165841674413694710071427700968797889935644595374428090568668421435832582177309404906175808588041575167945422520335441825696536697246727668440767192033176869317901054587958051747221626999228504572919680107246649357975563525065476552554297971571486135152999825147402691669805729729494632122715514398248263095586080128655001239918535776391286297631967477004760487519336427130712226961224643544221438939945002764786174505488182007564460282647935584413521472137780222715683592346659569143391568221695082445099197844135819657047083639291044303673461818030784435006431677642734766088895908582520562363788519408904156973858939109834276036059982589986472338015724686279507423807253649923920112990741469540806614521437344742867140194077864396161397658921922285897758378018164068379610544272375318133327529352434910799000525554002716956269951381788906206972908349943544248441318918499985506407977274745534056091601887665404993605479494078406555857520672970432400494520613894387047672539152490416539588731682576187615694147272782943064142590008966271510738066637568053230543675567317273866576895051189673098226450046437493940562758862265325918014175474140913029430864749365716421452517574933739882762879697871225354385981539924791175758916467111213412374106177882218387619422685110317042213481112536949660953421792781316985712835380666232572898293566698971170105629534414088482635802264576248915453487885954135506864521730584397893677789158291864195163046143054807955055566706670396939675759870423753130868305918811061955178280880345433596690759648622864256337480752962556325424448797716881005738237964484149973669221384932398278297332877480844412526975739438819550179157813760320530390404999495994022496641592672012311322718335568709632984769909652939846126502674611197974988087699945596571972856598670268500607718749024122484193292027624347592013742813768759037760814112523918843223068206278981595918824294274308638349546927942323803247086265282097760666022534996725147307166419720923845819944519298401744422403829150016802703961586221981472928937683929167353188237953474149865826274879187402848332620198864474277121156391406625260453955487460586781985043760069809920396414590360347324430086312967459718840591404845770380730085392655077752191471395976185638198919521516367794980629969297857138509795978581313108425768215202128036798083524586244489349634937956971972142197460729392952380899477951768027623187180494704775124793219642274984464419935578719025181288921315905667785197119278503101836247574716297654692447705727967258568761419825424206717799140101092250408282639926799926947188548964529306844041367974808054026459136120989551411599913106747702659410559024889290933710994143186171622441398789457487112956263598891308924476990313427949740944873636796185973396015130887481599366658395813115365444657489671101928942707985621193266557962279366893906080199521659505891684595148295723024743254980557566826199794294201706638810986610464548104006893797088346834132996590150483684854470065164848714256174456886702234759398571976609590990687920478282906274021795616531525004300595622718005334471003608917938793572246284466987334284629996612730038520987969923851201956689864236500151000559481594061487794808566751140002400968790268433565863670060291185177353341499032616066064128364258742351487806227647276177885903310562921743954608175279504728090136637966046355309478620678074468278938431460559275719804685467825969773288635376465397433545491931357887430230475068216719677550600074736339886205342923659402356759934588686973912320288702035221449289049858562118528367128386075502407351375568590677911600406974532494557702436357304616275873789055794082511642754463791578294652779820047165386266969717493090527793712956443757744775815336732519559230837625295788736000954125309294107107916408784447617980542579804811178336639487289450177852354173483774222391394567633889938730275827234989906544530741360044033505471058749457210780068696928644014261779438572892585316718155993701818885889467910936244580492281259515074655879019507661190826649285828000945890081637119609045837441152117010976473656741860476387297413408673590577629127816950665641635048311689332568976387678721177634028171962420702796853059032774667007425855429428145369803910371684937651700264558972714948830461202548551744836131163012217099123173247150665480021216593908545133441530157117374249948984293499770755599743780615486770415255336972484462038434371916485532835738119121413437662886002358947537308391306079030403257998296034733551330568975040915683004136360129591652300577573416389412037244865177050680436559982204661914434935651063781287836843832579879704861784722828964907427751036242041825465915832206532053244753688102903380593667932524820488206248590365729075585440652913739652973342170779539652221977213399486306143108765752066777779762400523999203620882147244962778021710420277999817126174282734630882871596594064754717152957946063658371978559861216631584068160155780938078756963587934088985748524830844237405476918446091523439832974219973626183834315542696812051656754419057397991958259542729798736248826387791795704405202795638180930346136232243563617885011414435180932361325882731589779650523128971131974799549105782281575260112263531366897050903718071860973791913523349980594608582330294437797022228045456636134604376981072596507066496059912444089106165109061448595600226968969520650261022960551967464424290523066688320207085447884231188640569148053805677618791255364607507738083155941843485934327955294852090009118680743803439596254346868660428051608425390336146843995027594394981409159585086054801067295701153631411133870141169746698666492546168457816218840533736067310796578379999574671428222169810111719453081023748193158407938879993525176570720772773531032106388657567088486697847550493819448431635896660282146708544939052411903264171823676235865637035272833225969767108210177352963886422060658727924233335143506673454704029652065543575166686290320726751738437681322278157496497685577946761952186798496199757473732253071786972769008755030246887334732658005188602086911728043450753504841812643469811538942662457124207705351560590968678474660881251735176038759156360946149454790371749057404426345225151803311326666117199125848045995200167150782020724992810333048713235417830655675444110461632470835084682722875272441836334964872455156404345770955363984296538146995695893129018267406219622105399714292673471854560499165870247934781401547154261862335185448868171152573880975756594286906101020446433538627202829198536377987544306625389608997576720567556953869869342985524195679178945833882198068710214717165031075870455312871633862817155656858350177836805329118069021753068243416053410058645780297533268657432057833465628392646802996528766096890667675427854051925450913329222531374534126233243442318664997937581226146953243691859505773328229860522624175402155247058879224251112172246908215909437212358349598401700431206595704601007392348888313133635068340554798242572954907872447380548120614758566579519774386181368794207390461239726591477666224350234101814589457981857644277252353333704022313954861929037905561271762405375022243904763659961634504526236069969872866376533187303234551253751751523452876268746329521810716944470296712921706006387961190617006012462248906079943414447217607468846318417948561093283356800838482611400960340162096465365641214390407469140126594356805637142430181031035987499347353136547654048599245286067014124929263841447349344985794630162453174107819168128761985324194355948533178516594005066047994313719113872039296526181009768708158374862425256522602845419737294786689639153335667810244573784422742768314716634905635159058947169930320434812741777876683264988371876642744066015760322553081114339142543738330613172365448505897449093266195952353292954398869359380043152847079111743612533124940649554643081526625566952693102330157779658151502543767945772098650406082908001326474826492297135582690331515714087688734094963823509637122456778367150989061437165725976623265676318764811575607382767939104048375439254887269097303748148029482583551717067468973880674027701909687729315144789886949073878061391913322585754290538988244862486163165102942949012885570344396239949509863889811274168172185415484223400650137717801432314140178580061842088987534211537571091761308551562236368417365764884409627690578170435680092944616576896119049585159434055193785227359251899362362449826957602173745133215225069610772990647508684024341739487064061089212878703001142445958214177414260869674991324619747685610569079809940290942674293581671151558691765776318944549912196491672302143538183019365776183953594374377382503001196177302929126494956261029468826125517342316289270698960712579169721641338597162427614705188846491270908409796060503383974029944578133266602319425105083183637865135619041120715983100825630286307514935698158362534937439170976723406990572904686799680309943602885245043213562325449498553647429888764611416695907532415835461741625207510690807771125567444611373474279116662233154312295886738595037104573772922109778716070611561585348441483524532700409242686562370465924838331910087532841747015354207181720428109311958901709270513898972178160269325058735237598856029590209109868392722533761335655397617257560853314582121491503235750704794185475483820150089634165104359072690509437407545259361213780093321051962445055070066740988153716391000869283520309312812587384510029135205743643766537896387853030358810501918399296338441986939352311093096087364301830965515071538665258538267122144104206715143308468080711580995657574880258358993568224482653880267585983071283870078815582704974757297306717035430777340701858550164280248250515817293568208331276828197864949264541523293166981920248207802247784323904130837970168351443090965475556936714443481380444375187917535073126309890154300065754021041945552929320953551838269879988736976050389179584046838960673992229201112879143377938102905859106499028625304035737104939034889937968716697461284411804067774662057949101724312041461551448581802182351854668355208854263173402446271646042746618343275061793005340321638753627754290329400798562552117995084708488413210107030944172542645249303373719852883711555095973029540842049115992678617619610488270784155219135927490157769816546111374431855228746110478568058229180141976020113870362844367418061649917163033232305053142736320051185388813378673591645381199046231471255049164514338107905791331039058892167537420422119427915746495459795144612017390000625888833800780398601034765168865495768858924619856086480383592945951767522855140484298142681163681371431445742540151221649718704435651208234106387650612251268656990953487391147399597665595645955119271279088852200434515905617914633378937324946096853002160617514638489691118752218848107464138262954692631474243932923242481904697559750163051839469718047145935528524827089651712547545807695730501745909546271683487279496104831728212741435039913037188041606206390408269436582403033754197046126088810263219966435836911697657954990752603931092691555481524793745983284812210356369829939712359948150176568893959230590018930800406713310164270607929112655906324412088765581957742067752303630414369662268351470673682802535602355028319210647154637496750137725596139585037653486150453882731164003310833783622470097346116608747160264027424349745050423661479002286475104103349134912486539268406048607478878483547988566934714779553623706201368212447305485791847043322935944174210852018732301286361144624779016205650765633883607272027465130328698371845840647590605558591189822778190584451711352757147681469606118622096663327042216779481246724464586102621137164260688381128626320914722260999899264349746691752626932419452045877066170944367213863447149217190840077231353723518714206361953241754435540418466281017239113508395477627651973553019631547914561444680898693849105536968506652235931657906790455126180871632436587871778380035670612827009079287436708030318196014672309540999704044925971425787707818553107024483564928000776181710702894610676875740061036561729311167899182456452702175244285829324935737303076199187639147816958580980908623248562119317076762731808124184248293225509155263109679546962563365118088144620211559650715935831423394114878170271967776719720200078383357743241287417116247594095646384969916148397593430873348174252805873584819337606324588752404332655139783134660058683325404876814362396772591302894043463158464149588913989107181731311051263946848174409337580896928544706552738444589736111931594494726926935117189262890315465754485804212894703119092259525651824512433886865850712927963538906912466575384791899290209483029571126935119912124281777776556098829339316711651774495700393066759932770662566945577144084967275414559756723669525257291974217712745523892885842052639482938598897043697976754275308322504946637800342970996380673825586014473647108789045769594773957433827316520467029826024147301125758226496709207418586495615719419151916949825382097380420163060088437377029410371448810306698853842427472636980364389406330354992129012496367497469205956996961608257444493575141628307855548854298678844813934749744923208232233207962706522657700883335920062056063024577230783334459683011302239579377032814623774745826103547740634362965376833129057400805285527111122546833001738645127485472089124448176831833702424079879789600220870581181291748318476557144616605136848337767264651550575036652568684061242593536084024606706104210547144519125287676908742550479287939248299637515967717737436699966833821917951852296406195218677014553960172143341442056098180429303304168413490976595296218101238841864997587764276710242230254262239003925081166887998197561063742446144134903740122934173613255449240823580147447115350823300185961042760460835543428494818067617007546673697693008413413340856892828255621971051253458534218744966728567713529672249037457859564575100702075820416206607043238168356214977602971081411471334091310819109434391584497778208632943434624060111615296045688054764925934025336750390073259268776052679227996229101404332044208058576016242997887170097010185942157125537629371999242617915927161163977415750394911414609773603839724265909481704667872407636455573291930793627006651121012483953066797419625133544525518838742662096422394365778331394325120450585324950020021725247456828964655929870003276947734476880000161159405760305487369534084159507860866301918552208599897164438590283337496164904368288292405659267998647837631538571897055615005488062530430698441858517916250643200507027721784346500745424582345412910703854881189314179301212128166291678175905176094993084134583144969424074203622817304620823157363951837334040909054172358191739468853093138918695194361700375817853727991645455808636182147777077692897736432565558380484481217098483882060197466516551049926260041754786190748268562815701115604153162483753648672187117147111276290950872075200364685970851701362418290913525721907610067519518508472184820276804881524179089669235245379103426690638575992842042189197484813549818447268974331993293363456383945104395022485610078927466731165787342198089450096979383775908890212472794054328152552243332487504617055244000851483768931351772277931715406409285264247143793125171400584331751835758898370963174316095821129802435898289010279098295222496853246107918859375453402421366444603650727257058174752213188099354765803117911677749126085967950956361907050979197970599338779713783316851139359368911731019298181969547093390915955534440345195428243536065530242407633160974689144574605173343014705266908507266489903853113459134456853261142620327053677116831352574623033051994849760879669948602100474585001277832209594269157361640218150156454840923712862842868517016474351445030398835320256146443812384838908313598448679072451901868954900918618781060616873967156645213892636674867184364785202430787201267143555954200499127942851421773326590587324330418793951919985360663284130207689354943313442281881391525494639174504287645002854915609672086573424123867931594587474162172315246148126778478597736774730678267954709835358149363423500266778103008884466073683008466357796289452056854698653813405321673851000468557387916330703347564868428771779210973388524922712467258788081176940131260137897670349632017085605386016293745039315584330913966180914919143927958636840528076171257432472795742240870132054282004673874477716338870589296906278422709769132646923776759683533179589770683067093968253594656343961337192622931901844527315205555097632088181038139984661225245083723537810384178759886498696108369370092446918996819730098836980809323105163051037889854706264299369479827959094917993443500822567210255391771837972175469037395791137281392868284492483552317760498702151654649612926852851196760002444671342363658586933530565918163277754662181397061669988815001708941689819119492454196845893108897480798281652783089114970654281642884029163156241891189285113373788652443922576088097940944079191576986572622261288416163584281079678178293639485285598397614192842212948453251096653491409352702043191807832804797463648490512283600049783472259973346759390971279600947685892483260917646868190739144005779574086869678045291285116794570987598613423082576879816080289181208062912921965927383545941410417892205576483433136070647044441304912121339042934555214628598018173073543206195680068314086157437393396306927318524541496747133811593751813291292627366287920491092095811548383110602519750001547899816882036386481062220467360076908211840084324091573605788484272834158716431723509546997004168855339628932116864196053394917022522461542570546547155228338446535895636630377555514437130711431855685684154911093015737052718683236400780039140415874932323138798839293011178104702169738528891711595224224229688392874844232871252666485439788804773588598757625109865721422436811767957585323377226702833192274070441188684213486361531564984094646939931674105568420204470962264960624071675476609711463125882929295583588864367363755739938925884856869320455291943266824012783414675696768448632983774542990740714116245089488217856191907390814854330951362063572937677661253134569573053719479301822542655768335394166477183484639925796533407452137706514684489799380616699289662276628224861842521445110777345450729582993603755245825365670083157602389527478774573613845482542169765255377625008379617762466266261646674346799735381858646473961081242945254277621529487652721893082407049293521159964795598767547328577658240352878908461492113531261522962792759185357102011807627720139914399671642329044531308861275367430656042112242546240747568702516180634194668664490732861815050009725052249506632136524270739403595686262682718100158317662588440435196219165299892898416889060964766356895148918082830974874308532159383383047771357151274103732492887110237726956955605861452840341034489740114992014406678556294359327623031008927706475708001771092866410198672963274918213748918775429753947240052764500883407783860134857743188490707051786667790281180057690728472421424423859305855128179508178360884099113532443802099082420390912793533542220190815869789895380506635846855980450097911329319408493439623926755480246302530581484379262283341326128350314803172658454976147884719700578694809374401354724877503439427810425289209360320997133598486412241507639378963844918625449419592781660127389252196476903199781046574511459174213785323811259172323802047351124667358695202586835714180646885751891923338106980248151553057791511709113909469823365834906245990671954052667973014856652585033679984260160952055049964062795326842326350084293890917254322739588481289718425445310677243804412879405332700812576653407188065081079222047208479844839421682144744430281947563864613273116701149742583649215679943238630469062975866777735283072772289759733403516378808885331230845298569450423863811486701974926786263501364553617836687873825670102628955550894537820723032212464348125365711475918295953090614370407964823439586753750650653061017364355425330586276578243121725732760733381935231609673598883786230721636827276753688114851558392005434080749796440231769019526104993452696303291835824563684563951805175843472599655446144755038066857067218099182462039158240393666076390746933954207119915074262986461297281280817650650946177240595864150815351386260608290059552729080851221405524953620811891426522480701918147809969224997130633561029183809892659386959190504776600835804397308728256440069995867494116883572531697948568122073613000892183649741758882378178386487673610078282607677634663531725564075074602472754536331151642591408022314877757027036725455370983370379684661798168372758239638423499706395006880589507156425502439033231591415643850968894416029996497782507297412082995580498466353373082114416250532013337420836727483885446498818621907116321620495921194736583020509042836498959456171938168378768980054785455654502645686136248292292021345167845015376296349043881572491349051043634881728678649981481467411230613406795409973907707592456078913669747824652756252840085524218648646980065711989660547315975182679712072196545834484130604123234280306572530746126195822745710307225156398052105338379375338362873934136982709299717929712122204570107543589824635136533999140012441905864891711020787532617622803473078567745465455147020166137427766638385383280234519987408805605255428070460119653642901502804558486744754311016720497748544694664102467349853013439738777307305962462841642300541386920496374910349434428195866519221100853588648129017723691575166490781296203604843769228158376950880572783417725710081104348243280533165552305430520234560038654136982838908001750262673654722258408718355220944847886775802372829927017569518244143045786550942482564655951394006836931163171202206678352191413932373982217204576326401268490938373346707795519149048292530816523333314158455448201099535086981823956208960288002736795349206117128723127874175623331003707708397303422865201411594017051964140873503238837803199840488538569757021947506211276629141685146017326884119306382035450692792000753666999316204791927070609628071869520131305809786229934927158112415269413296836235164712004488333713454077043852938282517202756742186542232504457109955016684583610491931371446550126687672662354606304298711706442343218264206251059541875122599082682081718390681409676708947662654699461416876422514200826272159756449941640905878869949761388660464492679034352673944703227237168068884783144415394694837455976394799161571043459036435442195697542081342041861476825700188908848200842950236371789057146673153170677712580141559122398883986290290559928764692105557648077454716254526785435160373059890812275012589001877879239536116169118829083056121014397843592744817227782256685320019121569325797515162636672743825501413480757688455640591657579770588391322956472399994531512018839482127924788941366349159837664215925653442341366529076669617217897023471415249747936741494327443760669223153669247361084383428487123321015853911601258491493241891345084163421836452259783563881165011927116815822730453286641660567787343494141254940709790563802123495725906735672006512686385860940579108737175328390983138778978399445224528414883428191710636284067832017461573566304358975720508367483644879771486269621695367181384754327963749689963306016075986640361329159514864604346996563398036189125045823867191988571338352722355726701075819064763170683322089173447134357041322182453376105013762073726235596872166374770997163996141379601874807081264507501823103061367089231259316174696090885283515298666728736435755135889986404861584765881145308708619375295112610217743759562309698801524066541625327239448378814839525509110456986457532084991466521295448674046440745964500722467801311915362120838729615270601600846586130963590427225116999122769050666196534837489276084090153153814374299311912614687482024085098381931697533208298663095044351308497522810951375964325048779366789087669471557859906471663173346945198609449843257513813979822245953483164172015783981695315890613159057330586967010370186887470470033947991258407260512516115755256281661021963732324219331285303693952187882202777607845545018117592890530944841437449416842903879746991427345430309945648943750199902768232715567432568652223189266714100171490595368306263656290074810594453027253851916251720336004959073275319585932794136417143713324625416614334787554065023659865715758817784090005716112581974524973041500876111658192845296338043594980732974361658339613176502345895705482801773878527537974636852544042121827557339438534502497016944046487659266667334292649212377630735338835641764414756986834224901963988359803327198267315651246700807019616502556587481657544027313066093491425216259446385900782807808821671370774331314164105818414498345952829406517868601256624998134234626618820976615831669770730859505331304883235307092843208855455928152085523798313593204039021674950053081998906422423297032991573936793237584266924469332577677055483320565563215339298539845732454083548025506407670728228414748503778712371383132391123126499638794389528637761482300364515415077539570556237946991927657948723678078648976122257654978266332668386251157319323568867964556679860990366228037211007513095807280187616984957442463595511758683410220598524634313865588345914638256431314533604123121257389396181469447126070497035850808525775319193345297526614482636237471860938620690045712250534687719164917416852690084582286161892356685685971847620749307315067960948468947099862033972881381996456528565565677908256010644480089028541829736914550392832874607375502478700699165011357432100929989345898723929345926385735538972374629955023130249172132135661086602430976254461965192644705194285028252477221712900027827633722972034085617119448234665064218771000785963538224988223516285518348084330613553802128439085955286778579265362197200609387781141800032357422314361411000807893923134196049342059181430766118736077258566935675249603256180537261394968481992142428190173662614823344316272272094287274407316196558391433711636773537490392710089300080300364370416746630030301726465231256893429030028226676899309052878882646279121628899597541141238234790715413899947923537751413358983970667522062008636384052838185004012641469495558799890224474815220603674471636214758787144674883345613904594874444352981703598338854277336265214394588775428526595023009227314771021033133917311906909942162402315894433038709653681812586621904409818044285485116356138917152335297352261096524145399417193846211218958852178623943735892020112413190607062123919567778973968369204903864875935571990183119621208417743514418707247310487531896380246556392796617828354052487419533393022485884079233767612153206465697939412831238890584628587519475206642843458593750324136975004195849648294295822989941326663550941122252104701901198045061010999023293491846084761891457369452505667493126357644901635397001048674567961261537055231335238125664569379357551606801953089973639903556410689512438386974579963240783984406938830478220811785308329415418936705420075435943412369929779512066197234486966836260838144241845753373261573461127746711574495514225341925754158470433266177951352892973909352883941892715642027565327359275668492857394035256155608624078847397943868013328736150962767379508318305478779647166901594662719911973560523995387662819976588873845915740529083415726452393618593872451913789771290698341821492236422063271245620357555452677653136808136307398662023972882831714183478410221443239643390033250224843811357188663078324526860685920463878724690788860886653347054471964811569927934093207183188296521081960562616565160113150776421379605512582087644229171965982978656403212483975016943465080686897227770800491892760915641465692309579785304999388282953142749579474891352282410929953917468168035444224460025153139923463236026764764245728787792111378803815099056648353637299035461998008756332444002318019133268454267648103711706849055912528957504456870846506540337510652207502497935291777910747998030772455852564650526309421279521431159456218260746975897405591205939404774361057952774876161236122746190791639455447680745947782171948604435608468483040032767891266483922762558903915324589839129553369992372528220638333364389188424356642431558763436077580840706558352927485491982473068324879247811201903785807976242637453244857959741697990884220715895622296453186483860726851847785570092840107639559533241528823064309364619177265896002774133211757110585925768707134979560512847635531237294366195345306471992053045859953634199345020767917514504141357228170954723828365753842413669303113998217540419107002969044947043120795451837836838898556076402613901002922892221332230937507341330958112155689591554990860253019615274179381650882471585872967496389738928459770336597176998839560678239580330611609189761383872524389612773642464873464757509565182051857354876290822649119511062223034612427040747936651389320430270079238386438521381571130730561178906658845226874251187346765286661683793643705554625115243587985268338974970554984924563395435237493685206641008556569626311671934371696071641801162024475957344836669743389313661178722410119587378543576222030764063242561487841800852583862373304859940754870304163025979777279552656919539483507146713614440348651624111434005987782912338954279205538953775701427139553807464026251635982147244064553317262603669211754301622328297268229660034047612537844977216110400946730808697363556949346131626378456316505493195496123935517485125618002123281845843599711835249959590501851360172331459571854939008164674524481910203928639612111921029092762096377507362927446390305711738347193141621560100232805852676678482292015156658265377279596290045074144553053717005343313671017408940900164260743556856209489474621493352087936151757668054908121151640122939119943497934400304047127444945656510459101440790338545593251095765295056822951381363201776102470580484641208968827016845889442239961116221281280613277816557306218813211311024218859314917174290074770293230629489247352276405556964578580611345035817101160804244008786749789786986273282720290665162174229916837379757049756868590896125800210611356675096548390675619844876479416497031790891525281732609482975751793801438705299375162538058436603393575486458621065680090879553591630940083077702162763852218506697399706222671955291545193121732226140749617593429403172910515778816912103432497627796542999357040511399488556696629185617950983638338362409585675120121102104623643708615767065710329874751885490354618855446696175533245926970172100345131978042512351462319417788967934254886465488208028710757922958675758041816420606988822538406167834544661322280551840749158937473218535092780513016323255705236167267531824982011153872901223779194122897278676050682336549605953315237733559468294280371240998441736274817696278855142617856805515574610546860727766256116083029111778890881747137945240197858329342034319725239949571156395197171618201352306763598314810084157472495309935515755510246647233467984062256495263191585955057885974231656774581742320554342176866238842111067182919253645076200837051069716871310787406271188408261472433172436205943419527750800286647459205007701964572867237524582701139946924910958185816205278868449569443246987429066996914526545715792486240011822469325986368543416265706634144038183216359287882035362001661459121392720073504941436165664898473579971521915609508974969101294610579115025330541178322221351759816637275624120781983991405639559432677684421674254910827819155383410001984153697324981142174623506630194283979860918179704860500705876765729135775563942663368127366315520061220549387405204222326833010909352265942176499278276217516771432729642069866073520960231919055417636925588481336795394678173496093153824992611995043131569716227756247627297215736622780079358628436603511563918628038816215737008190709034962766874608000282503195276006233854526600818310164620364248241980607036911480639095567111003624236563517018726786421192621979115826965276969712251093306036748177810346231161693479118087264352881539189104805177776650780604878067449143481421982901002174584203219947984810079926954927504807484769329058097952720442850074002956206061823926250254285026022702876670397809659947275954223760868473089336479427963630649401846722072581047527969713271135688598462589245614261773080181163443581441877222196084718605857383522070829055302167214218222267844777367894151066449860032260723572313782217495031622893134895973214116726841831137758853604404261325901522062205097677112293610967766805613609589548824350866551373009025645435493191527328307424220142284151925765315040083301848588702865512885874310488998201462142825250869467933105179479593613799318318009986082663065178849908296390469060942284735753016494613536870843864458905289944020836814880909670895388921695928315612733991227412008788013262813634823232939217239393204872295792645464063666951369455619710536211180771198210208376706902500464749240299228019190741226232651673504919046035118029590769447223475013765075370175344290037904124301615366976604297163001219750593323655907283577474163214720601968609189730718223239291303852707997368180109979797791803458425043345440563163202366713397787007262030881658378699177825025329699012733804213713806497907066194190984380297546692288396417609732260981192813278105712648653936484997260161591560227615678050274740913189518096597099202477498684283959573612560725394579189244771423196305935485922136788121187606182538830269568623563998497527676912689759243803550179983902502983629364078254107874647756806331427034935915444811740447707719261158421649627406590695839124538996774857632429010346481506046192390459385948098784874026254748523775568353371264404347622776736064491867117916768111424804965646358162515377072987039163169460849308339680961790251312162272468028481056963316350834803884924752738349754278499372919857498150438202076999835660380418445625148531849302331842616250120899103941403709835449613900410065704162597232460268546171401441897051737374242004237619026197440126716548899343276704052766956221809646503149151472660832897043798539205193536145018492251463375626842306042823734369053075311962089750770796671822131924490672021630542216635798622635879225692657394508068365850235083019303402711627161307799144257423931163815087237372521062903711702197155360938333105855758105923614517934303712702915947113709710473691887500350327205977978174587593549606476738064567975497509290750147948670736575566980081203277128364960974423762148045394406704971262208181310788290719072433466401569146339329614218531572843733914144288059369921751156549972378219986760066328333301716108353693482850621328876617113310854008818882149366726643546507474650058473387162958531990070415509099115691557686773424177022009185439088009503768268391145931927141552039193613843977371149581889526325393404473833445749373159144431520424208095348180967733412134979379833497434255429758463394335614570575591365299575610204944527350467173535364458381914396450274722525533125572033795109312499678932284887065221452980186237171570942474354293727975184466419865287607589421408415545563305000171447228227206434033634109149583170059608069325828512546838640761682985958492352042152056342187657378850835819355828686942953887951661201547973727338383686833344771385393793837649660215973906738125416740022704607808851971764528865748496929561636824802046552422412534310686760953731475165435369352843660180845980088594187804199575944848566520768071132134376511437699852697264509929474056758757438426245298952932270771077938107721673996425722249484256030520244240779908198808760638462066495443202564159977744147842294871940683050182475571237948435178733397871880589610649718265139044478401088338241662231496347741868196159276531125896027441805913476187934146022263240540075016125328827431561439586733974084759642850528800094373771373518218253746723672726519419643274090013795544191942962400441908883927293507412476014691639048561038619184212698478804460565132011075720069675284709987065096745708180602183740927806227360491622865194053697616994600120607627794613560865358731201562382279292466810117130401936671722707777539947846038035649121858838041241530456987464153547166360446525297482965199212532368175864463565636191022028523549444901426817892863506936887082430628789137414379436833146516373449657888775578313385494441263066263532362246369891192737681666734456043951382455411236812573501968060603787142440532811907022410868489440003881077959690796133163221042500345508926865707563710308465499893672960832584301894742813491734571125749193892067210720930375219488361039964859354749940684647975885531740103194733893964303771030466080538116256294612312724450635026992763392809162181358053628710196015758922428388560121098600039128517959118073220115988569680258095711432279793013189221338074643598924808153510099574942403934282295533899294460187439760493614105345772014747737114679989466353460452304959240080458888179657672473220294077682377880011434152075482958568045351687415925201637792937306405179488389932808718377632241089526626570300052273365459422962265650028079074238469524299958204783447595860299460605119915825545624877886003609875264132309482605105485188534391459008919415473382620739607191264968551394702376530448209800018941007256412267951779317340890165626670856901656166001326332268405608864293227421582408760015056608611890236877548714994064584900364544868878442059657808304484492596000474633867326686976944470212146807488924455807570690024349686650383989422850367107030268057142754765886453318416439747130853772046414074801909696419769761585879087031205011387979074937530829329783334652866880030181723091422504811437114999121233442493864638827732478245803839339254829768741909962159862215093729489302274544980063867836075329205576922657933890691442733417416606083651739663205621676940335678681668074815930850775026670933795048296272346950378679183585698109001988666130755481725713783999865303599110485800352379904113785201275852477168513523347089055969374132269051208587867394173038075705471131593323799765710414843251711960602148312609786170020175905629823176377851371933979276308368706900244189873724006264003451219906775113787545512179391800147258259625128959345805285682463717733886545902128941591869408310321354306181786054680122510951485563549546428984354434115830966088169324587093513047813959347432762079267469379528654520516256543493270214601030735924730136618696006813185699993263112740231397343242956101716171816610905733863667143371965945871008739400025833907720596701025245554596454412545872025691232500621309268321366640509546660858341439096136095514645045969459485873221090133309344963410262881400618324766897433354064064346656620595793990527346261963352050108286821026115637526110053431134034453557339714177182552841183103740232681691338632989121613748737145104528253086956011322651403495367755773340018117340296207290816321755818377057791274034172793429897329857470440980032450709858923128719646067152004173129497555200241569175838138679417262721718756920506105754002044707384194137835991215632053567837921598687552570903020836307065436144546479869060744490855016701963411426131234391246050165624505879484276608465825087961740559610233215545667968361090784157982168510210462524987687871809087877593236276723952096462136906229825005568978361160992014421878867680282631507306796877516387641964397274509205909378448308131282147117731235085569742062644366546868574953420664481749819758074270363361677642290939866358641067373721468124862254482393231048290796217790859731194961665342793418125195493041312748404017764741138517104850876376026541801321621819743404652865072115593511682390077464182666273451698452785629242432658656696888844167235949843480422140026290545542648448042665437324203301262914091272186511504936515224839935803929139173036604997121390747708415399709529890433622341136045363901247208936957229046116308450062717065175189793387639262072584224879775823120493066080077527374232582874301073520656926444557305182722951161150770618554946103569978028415825209837841201212879782338073123811285509873222324289523415757173123650298495776848260081907078858435438086058730399028346607640670468625519422098846896344549268508166057984115926974158630117994131102962867018563205435321737519522938494716999984442729075936669144568669837704059418674184151519920704936966666987168354184623482768854371400973881908440408909750294025501941834690847002234397667637893804203246194800089132670504185731822228823425337442419800348092548736147848203511093941667313840783479385762399996024425762828077844280120914551546561349232064293439240368628743233250517753615914056163799325228136167382174172541535740880050148482822836728617644772583440972416237694402884105419189915309737216397234017821636209544419537474891732247965441295430378679856899654549228267375002299695654613921642469599640566587758487354020844088791938965250050090966058690547388932144531046879129116024681047187440719111669411959607012893061661672512471651502992277842565783347160086374565456217660108764579319501750621056792614477144172465033678376844961790221865697664669457869388705608445625412418415866065779715249755704808659270366013958779566375862803609171689011265099810253963511877741505807729106096128776382473837805904501324186295802167604973095656245327142016249008810153570178330831965796255654561074329196022026866652531446671488242868350748266197566790150594515407648076039364037151100260914284874450120730906604593073352490705497367777642515639440694326596005095455146418886517703716065306924885862755712169973139541595219496662040544160442893341490702400390835168584466988368671666526801413231754119391766226178865786211005273226585442091829294257914122337037376014791788449128140440838637942693264799538471773804921011216431680329757200873202288223405410799236995531161533554843477560905973829933020104585199034360021882258287965375898680788703115397481764700687605748396466231489229801064866734892892894914699648929820354691125315157648477149576352773316976510475955554966526987787835646764947879511472921510525558326499202131848709908891717415169758160564961940376485387752766902427893878256875367791573437111131970337979842712866878864349236219176921808099955684633285045531151064793998958591658577292276633082190146642040242508529333569804886863488797959294299584631896532562213513656859681094408042461597083878400065885161846783119821598625396121852240787904718957957488538143976068472152266613174170121757595716030911219755602713384486320490054313077733240381862192635161396847110813957487063257532336026441171967878019334425236026528203943692921210962401513503868307113266450778912130199470572394176133122585047730720430666178167294406093049557043427136977143742004602037791538964728324426374971039716131714166309952963291484736752524393256038699921804162718203913746083486742074763787927427630284729304682696728755834806635285121479784122123991858126603384607501179436274848037059797532317803568278555962603774660888315408683062094153666892273646639233210838994183310951605505170332963636727132824963914619919889166669752949496069647140315731463478130558418885787982608971481697841884036191915276601119486616524780910771588881773835078499293469136207672858073820933665239606052688652055326187436222066902557428957915219019424389319347888438791650491918910185896144589812572857182074958385031650965400621586261485173284789856302269535998125663872283515133479926457741673036159413192910250196071211747520872201298491997580937865021179569614651784168320240536890912191313281101240663314303006263089101157266336511833003616990613819501190804123118186404356328329230288555737137548690643900836862721781733280749305182650064527474803781756345647292353996929100208403641916623637631103754324440205056043524063158840143506754188450307462860615335130952847370923235532109395725389485013000956816674667008281104225114297115811766290336959256286406866415229176078470616927212642290175231529510850192253685810454327903265669109954431125025216717366742354285517108834473907696359845994298537114092289649398325755136076170181553666626712872821835797904556247633556233333778863768783861540501984152097067324261828953754911482240394166328481371055937041804277914739262634217095211457337319380464885515557224008824810477207083164279510325389435414905322716088702305220978735533594406324676776259538616254850641765188891567618525311429191576524574854296881008728809429393344135889106117287254000081678809655837560159648652596771438166729905936598529402792133918617495142075156178806742168851733805534057665287428763186311061699777026939061002124175783746061676332141186090378773826119648692254519305223756179043281805011025198212976972180478598437844297210965515264484648886358304811539231340653783408349833409903530484270795051044878709199929097827503828505894052616437171911521878146511290750991624773218769859167702317516901788456040158505672489661985987904089704329559082933181930975317046554985998311901198404716797933986896863360192152048775599795035198221635803992278795368797233210399259924045166930179517045911995822034164611213389700078118870618022069072360197421645637632790255494623144590738176112742537182585568283665399344001227020529935429451358551397635018112428362603817847686882105321277650965498313640505941274128073000893996754054684220183769319281395026629437868725243326689408906225571916008439225907954541589649877091220671431901078128284553112185818841625670789854179081480443456670244189791082646621316806711707692122921572213686294507424727686665494699761480179405951237048714173320409710231111041672414096592092537959894602777340751340066813630102546912180674221284547777680275597447155511815356013524989419210619340957736549772627435997405372554022604820469278847105740978246655630138827090555804805956559359396700451627703980086026747418813902096145295221315577176105177219992807792714487657145647099284748467961526465617182701007972220452219543081671565558016235103882586657732372815706482908818158851010476689134720484066831950252290034354227486033853723523800035353593128165023528193634778356188080948138391800144289301832591953996484457976343186400702443280117444709771551207591938628665347976867775270134148136617881997185123334777562090624157550602697807946597858069280865038378085974466569475224590167277895030487638784169605114952892937273272653077622327681197304051415981537516310796425184586979698786641117991765795156311233108620537941089637528616728697959149114541912326899929045640394303341547091819265088638279042869948417157897502117534007376522020133799023746799235627771030743674235140439787559783640749742669086310517733956772721034924048988751626647225735772889028309783509780196917843243490816990420588282440514980269780359471511696089380589423772373175330583512723408073943495844319034360055432571750299328808226940203648002547238657064250325136345328646021028023887371956594368114190308857502186233653921814081981401786658307785060393612599648353278427397177460222404894447645261378610191902073080754860111594003253597968798170604335919738591926584718466597811662905817440742715463479179839333533518835673018040512270965649854795662029509199325756893326832110691715817673868666556668200108691395670420296243758518600096189650336783724938035586347863082736945046971620255000818512561332719091000038874150130712207006001021135030128854712179512359912755541249632058877178155560891269913422237933485238657361754838031262349233955520295746187173960892490897936846559248450054738956402029711418498225108244321185060177844100247260817043015424453823516049851231328705406288002096296622272741035853485532633928495161726191111014546048920519422884314518859315538766104414686847666796399831602618547182105374494273200085758538494194538532070934054155910067751217695700014572205225778051635311306856821396826238702356096268237728477536871656516835209074084345832501827437246870804477663893037062758379421628623651199663008719128643079226580353532561467632791835868696545544830559259574715996198343110180397461590729555805016763133150352996193701484593435171532857364758851857363137834719494762187594196688710850854578247780791877391109760558957108435158087564996426532619418531036542031685761748934648412016158412741830382105941042752255325118786771864722954003041209597627080618950763270140207180495337426126156547757362815775068309676253530745702069349217810692423142706348230106534311040912349525522356308894199005349208734125841209763742441404985392898872839962118615212294929426735893477779003312012086343838230833407576374084789900199194965689041416191428463595342519227687398771222723683382932633203713083146575828713596266306714713349549660420806037202251894350141782781644100653797471920057954377215266159325818072347627550697217540222089899298665294644744548899217453283112437020709255048950937194435704375895302150229263363297110839339791530935669537282460826546397787297563542148850675878488799482000155267549430774385525119945627743686504606505570413498961783024813980639249198827485307269058529826051899801031427163944483324904930073418327273276068142821404240237971430176260479164481179064792789877438795891035649852726616636023187891333585245417299839268925047595521577641759805898542656890138645597883266556086662419885344546919114627792123282029283958334061261346341848733528964712224372770058604117319562973780840562631337689302975471773777362812858638971977230397145851410951010100194775562422179117795052404328519746411206257673520756369997176453584240507494170225808588570333058503951828503035213790204138654448902080750219822810333500305327594038043485207845302283394264785620056482392730224494945481415186521563408320315567605609249376141893419079049797032244247950903396693715491819970078462045098182607196761168510495594629375350872300597656789265793097935701693101476611425907292743626066498281162758370618518002973599430760879522314413142847203640710865793985438950912463056464214409322098317541903500092338581794207772195021881305368954840111690284849090818220387577090137724276980286120076047074105008288023389920727023499431633462245395435655473238612242827494693908888441903679476929432464947532955087788470595393402410298081933743565079445225462532840775245060231960114461513135116896830433858878568911653785782499260686821921068405903424847362596173479292201626357604215292829892538210890424982572488954526452904759859671217088046136039472338431422683755374643993289476554695602473232471238877613728946810401112553105480476854548582247582784060334674693222197116182660323614605445567094124015979716455160866563527975330830650247813499527833832801435163543529475700754401254169113940436438252464021849063622601923947717812906775499812826604381284661143296719743978965260343036970366499829969629909084326400175766051264875556960772331634691666192823740373064196142134338358251223829108267606183913006927040657557493021289939773848400260964713646006269062888478071938773909865027583012388983416575416287534500874465557022478364711686861216051752480734957379675565103930637177760146575576658402209039721549199238949376594794309573271468378588568184315319977018364299768596997624660171938789369711715740234259256693469667884467138616691730566691763455060150532625878447273060523810076354977441531980222259396847531224104094857594435781896889782051510669417046826150940011832182214214751943517283776936740806165563748514172732667242298439377048405339787283182747597988194969684293878988040137531433667213375915086449656558952772557619448199964869991607577628971933315410327158842990470906343804240123798115277727008826800644597100880251707818871070173246635742083667538540741012418398281465440957136093498719154355848442831150117304160304376200677160364521017573337144226806298720553494388542060129345197107709404410350516219977363360896993560280634209103321994195979048016471135679428940913594202743580021463324312073104516046112117124872932436066423631290186818156933860842827290221812094580425447233977798390496131733734454246148283163261469640545103603850844775537813408021008162588429481641105863837291750351014151028912903181452622484889511785749005495492355293177745346426398032518928359104344269141809232938794066561108759291209113775768609794393009839894172355998433370082703543715205609472425320323971171140178125667840940481237888570114642195053929228619827624124275769291091604824904760271674747617881536649909254002980551262476458391256059149483821561352580017756473695483874469560073366704490943101830541030015195689635563758778833198503751778110979206180130094396885291144876888828331116173592294227335382082068650571030522860467350341697192869511858357023370722503434716787167049337119383260997000299998820167489697907806442423141934444918439280820877207146458563187371635831306183547958027471950465954714175066044050438620405328060839719624249640631437360684869449218121837402274406688891630252559292439815649425731034695829707024069497445144745301441417870068153378362428243339926929153979346855378953653256818144196323027637878327859758390426340073502168513430776181128125300916984031298521623501421039034138702782276407461852539691360583554961613125620271287522005920789496541505742040672342209846386183300128160573130017546284998594525424790712479380267839306301678396006570553872456035322964145716524884846046103266544637899949129646864490330249453419840005502980253723866641468350663253622157099284310968121971139514776336793937121507091925756838050520441231630809632079488211569186560448742946406183991392430604803712513332248079226400335075187570472046821720686291469990038226188526201412698478541598431062824697356734762483845626954593818732076312791601463069250682785125924903870696280247783409377688911952627931313883093193406576557043522621101303589203909297170292894078243822570310553213239423133830416574039060943446089847721708535295500885825493601038303627171342393137926626657332616526465514897893575654468176567616675861957359517454680598071632158206718293443573191403579623335511815305869415190761448744371596425083200824644073187187898556454992497425097635001068666819014867849427655519909819299182946830268464499888806927785256277255928678033182283950380706908063052391006925656059855556909667798565364017566885379508209770131017375806772035609301824508490685558166748418742916801322488786369712812959092610519336100303035505931781809814309097768382147865687864360659164719716508696896616060874939521279468083065168819585301729493158212989010146104934245948502861874948166368283863895384913522520480179375408000730740638295291934067160845111567328359841324898135820322999276846630194594455290975153855607052626410438957462770123056931286104276510904944508288491491021474688705327886851040278026516242019485157687426140336243974089381015293615491864217723717462662601465670137785420729850347018281484624130165062264737570165988451711658327482553508280075314106671897066504753988926403313201742418223600910510643977165355564931079926421295446569668168311262831268667652935885861205369477839013563832395295501514383901487059797742730488434546065122781116862192930007944957675677758584782486242806200520844212081743265938689307489519244742615013020165676952923055231085577453472886236967511866166836276005596192357418768248799661669997142850128351536366233018431252059961620265726686732114609211901985429287477516340682263449998706722564661984914520776834997391777273023061580919216281234233349331987960353960599584678239907891609728919132192713227661151319258593532255834166958024608998300182080284001007968143104211442105415633381593047334691463996623753420733709515085083192731996017942506570268599008917597009111621895700201016566571264175490312671990915571245134641635434014531518951568837169097718936112626437794648424306884337969835638844392778515111993354930220227192373823304711674231929806172719581444014980166465998002651014077451261770962293355371404853623379803589648975558648505012611045830814048440517421558578013956086680002573964122400139495873223590894179515882799033488863264939077741883358173420807754761742549736446588564900428028540894845239769545983670653196468589723479688008659420821609054420209829153388016381820104999421476964689644096695389924485937343617941173208320742279501340313159323471951793518417707994507633489222531978180049313171361659890192687318297967781866551623207989410415412701158585836923192867912267951358243153874317324590635911811841148936803781487300811300423395265313923667331541653562999968371098855745550069406965220508992913874189204447990505743216083362602501741894969277326633711990300207383780011604710247784220184245654994528468019142487638100981905893995201586231022505689717408021250933624804074515141793133200472324541281564103878592197629924700083745219191963173320829312272028479765751609839500933884090719019130294339876083037456144987220063911471179540280227511364992870636815575360698124888423342953744836505838484640969973807294689718584494027619067646505291403043559615783379384238641557023700384437016759522769460040166131982782665687234352557458686475576487374438349090872824205952896126035122795570610505928669138073389267543887056838394708521241054716883484698885756470943769818441956301627772218165872687825070654229082236391505006324288988145222483537538558802502907046081489757576772724269453183149773922324661737303459206128562206166532988696640873414718097434400115331934123543288727162358498945356913942402347767317588766364909566057772263242455942901368842776482806662704865633046033196888545680604081868076476213455117871109024773113924515992227334819399654100863816768642380176904111429543006654074173689477924370009798594713866027169312283430083975391589857897031514516494342137600073961109034733201332563386283138773061625641247880283118073347512162338218033182545062231319419008757265678473792690191955100332818391818012921214773215723710014401174733301413525528058895615599746317037345607821501501590436413995122689307368227718880933738576329659290500297068640518680183361736079908495031466789723343872822912529169270836563297673709725827987718217933634926522246597139768892804676095760060710567759581926952596775846450091318517004750934413302253198803384498535797331654950462522833420982324535317470127437944307513759510860304282108611575320491487977533987297576850283349674385207123120700147805835956748124155493586848156033973645168567554508051672967468299182472297781705012051034080103239071588595212414290674060678441144767013654728292999928581880941981205287801288513393148649515837529213864720761509879234587830153005487886278155816397433024955176755659174726619706923193383416461096822565318493531444426685633298625937264254746339734040647934328200176080582960829383742374153355329413890649532694947952954668669997748456204812239892356137197548575110186808455746894865337750444702327777865456389715796663871871592261949997396823892224568924278340668597922516712226016070807896920257965366682058101688937336291808458402197319812485141906155788272467154404206590622412641417112877195783116406897713411877290135700025623599420686469202151948208793200946391585587881516890218754187865220969465740539491601341261392328368177340331566790957887686887844918251678437654640937528585527900272127327182427964257848313276954068669680498096789883812527576783652281789270850311100669816330144571656120267152906557145086780046322756267037501812443951374405020788385794310879566268036885854851648372178854079692548106169721335401116557161419589742654192870464861767253131763133682838827188116134435266883714267873551880247210524737298658938702713115700985571113239115586619643598655789468442855306818137755773629136047508750001974870337764216134564274291473561711553427776654240880993019397225242035662762838587701674968985701391597716983313158257474545832212983507174460654468549555040949331689163199411094761945126012536599775770178250152037325070874865912037543881038438359297542173734760747735764573866387177064339703160602926575294545561809347685551688587709451669219631580782398500358043740132820273503634431840519028829908689105266021403294172752439533429479098230149139872778922430930448492940241898689752781917215106712651196444949181077593252214842358945167110185974767324874254792869667184522277681271814417011171810558085514173071521168998777920261978425221053719039998696561605984073377819326666974713799667756161250918838720464446094275266572073652841202493935729971034277469003193385620119194993231139070434080825766153449672857551179526165201115479602865754897774594484263441376454114559058326364526368892682102908335124384077756925510458102967802509368536643969654950062712567906771323564655869404265701749682904283367520915351749886904884408738790557427645226646038506351688701955717287471470258977755793230819281949211853127539188348507824919884261840965649595842518580362460259393612977569141723547010503316308514863718870876324086411029027666411624466103542815272612883213566581256915838218883698100550781205433337444972718146226168359795601864286422593499130637731790739834108603537662419373652760838073723057719448331062496917571302011491731835454712657875570416342032495897803417263567217212117831955717432937433257777039526842537830913606072186437293212476487508406595127303853980246385613184981019288794150312901603804064101032801367732238475998629855428933324938334212184005414452691603869980503999273320125357736038582591554758691651421253340824842698273047661277888220788478397585217544471592779243102081882745704654760821386292814158683577930907497296169492681353557507863998950667064679009562429533951252288604307589828570487868033463338320823732562877811091467160201422004540073724562945237665267898936318547896703425404308293470192488335604922837467849322075881888664933050268395244516551159314225348460667417509152547544500251584144970277698008094581915853970601948273220729155215290730814628149667436359233433307639593199715475946268698810645815024657078528499808803043435534962443380038192668170473051158694238817463177241621673605712775668549487943980002655367238645855239172695084144587118498289077531413569991749908670304303767224714971050378409118681603494836925040928149742890038637270329503404673366373625886147696652600112573917336617133802214949305064527906187670993882974810213764131044756060266011633093121709522533579170289560089367095587709216187009855152077842380804738287224353087010658112305359819393455304570609268129704684035467734820251366635197476692654806350340593513466907043451412887417661044592202133460411949127634017321904789586152180678341656716899403750551765129179162033439104227194791831986859809781526630553016424958984932676229466217815217593164525806044010059962177485071429221249397186883361785168448081741663084269519019995261763084130777145095725610084600452292929893107197180832947035222299178565951374311404047795294481509274281142197313191623394466541897579978881159722032020347252116050032815787805537899862671199356852839032998197371663840037316628304568287948004441858963867228770604595365538127979813379195048781694857095548229799263309677366526192640046448729279249457887446695084732554004436482793147968804118268257885043674926687264207381001562196206573214636868772109052487466333982240674988390450921110895650296762678756774449822259522510219975948699790764551990398605997086660212661856575780227570630194290588860117724622615686381175549883925058143009357288464591446770618515173818729963204723583763741187845248493284844660501930975754279626392298983581721988296929820307497275272472675592908709480554584377244378722452057003423219943215938494961488909322355427793028759903896387504431809440811823460120637685135270992465533252103734832187564904202307412575624418126989519992851907965002812546884312776396579324111996099395665369158307772421174650655174345496447985197181733425896239101613071157219545182186422864392977195124287904506693956648008660328351340292299783587696013196643479754793313267362852022417227863356092260745197666382722967050481007522039418310480993987412171650571564392212923080999139814716292764041913895886576442678831144743070618972964921624424893131889607654097389463188983779454410732294693645665822643184058492156333458084586658485876722353144111452156385353393551963784608962891546098695982452938902636349304915652949136271186159837336651075366750191465350107827917980532674888075250637630736850657731080201682327641535562970588662890664004122150175755303524624089689835804066078767974768510677962703631042425378646099116243807239921055167817326427297601216168854700750641595160216023260028703114787998656226361319408145809038018442252596827199406949334744694347178090687669702361718863382693827493874181785441311694833850321549976315146110333015390983727405988310239397453155500126355353985727337810825013379561313022307747895018153467543453876131470687133278287775364590492623058301109399880481759915192822921133528222330149461719075588337341799499348887747756810221074698596364284440816752657485103031533106056400878855543876538231783396800275798946415565772880963794837426336239157694649309084813943288510249842082476230140945551498675747985709441806769222677588424956134807142636574183745659574587679356922331593075779940962730266500789685717939617574719192001124557006952115655691731542440071110084662475607683434539222569044008835398604694742462367895312365681315654336897556394397913068373537447842157120970008381291512716983501836115809200459096622941902465882935789193719475782894560673577813742058805211999883968286688303758335222520846099884935325287906405458197044298248937207445555461282846959324863515665644955895461459235724678113353454279961925639328695655981839048255800822308939924194766772607071985748652963484393751330054556291356250975232891743469487599619250048422227029940188413439011237728655277241295763664268550284235300422019137629346365600717645840255402601583079060338715691572399945908605523986991712814196814529219125982789991869966488821166022460868579387358187039828621780281067086983070850975314049348427606822200365908948829020851219680401020280908261982219231734421952768836727539109110295866783167765569426667522698290165020449567747075118873364944484387235521319319304220019974002634472479039099456772354049134343911865567811031853155481262287125116711228527927101539050186048404334239520121373603026295311149433225539262726063599814138753443712282574146124502553616876948294818648053663672603519161431535181902208675910111396663926908464244853758090889719495725834989528002529236429325910717445203192794158368006366426423376509250638171700659793183249381736087990672054658760151844435742642569026816801556811059843868771753731435361838878557386715921927446735694237433006291888335299830068495790476000975990881248855567990286423630626247838979372551355277895699132898531743031655087613193691727393460507015446996366663782392780694884949651831036131554412030104082228594190658371042408646086325235140636771788558218205375716149247841145469263405996703911144335146251641203360605056882235942100969866659308827305560272991637700423614818380233673975419304234235359274754846771544972928767575036046030262581181241873220370810482053603803054043158025569286020108792543114530409503865182646306844679510968864685455969327203768061866831345007308407078860532095193099727450064268563360424030726511301339669189674223440462301096797727793920494937758531247637741270340997895937059309086286089393782875690522521280862342943815014721238281215458031526747987009556366098092454889540984634042563603678901270116620053049137586692776577651427784612285262570577907375755104037586721684720508730523071247830492492557563373141271144043973853791002672913269370864601425845547646721403878710220267545821772850880741369980262304349448098184419859750475519448492386017139545467141677478840474834847596431847018535332109117512050818083188099973649442768426654384981770359843953577882453008628888275817118818065453153461551538339885817029169109889926237507270408999979041941703576137250310088084285250356875552291997470527702952552139987866086888758602477847094594200784740786553418852818708998934308184770524324316328595382142882139721882358014009116064661588393609028372337109359466611865241644047078418601631072179664674700910169107868191730622877476118522235030037703334948201384115303162039947840801944065902806732380184024124380557911127563037714965903327708652392339160642359735278559823468850794264030457144243491583022681048294836701405616027055583259343477960509368969707319198231844513662805680328430372566404643277301247521242947899784673474265439992596481496642139140410884221250761937287068742207410796444374247054458294645470149402693791885801508034250105266515730714777692475554414916754520159022212575695283902780267294043452825270927002157985627169625005307575228533196949795163790071730670952446512813041890684561614827717648483512933396839607147846750349680899537313481613315803265151492292710791122653439301579667187429244996796930938238083859151244738166300973622307524049167814780692078481834760149216425928736430287876511578860679429341543579954309321700184525524486967035428581240910429176911856625565630606053284388377557992158542606051086284737982351566091396519594519502167212599177811866673316436239940701722755767425973194556575414031846580734850704002776165947346752804146447784581500749406121064266670128779890418109775388001034230514320938204894537790532410756146780127720803041887941631910991247096947536756803890042046009460506938313659344864626258765585728634552626567153458654344908467637083624914112346519275571601260465927223984615188709112011706178735483089488450217756286622601139831038704551700997104194948583678369904178117777694200702549293335184491194625496241181635537181947766157714965020946913063285176048979330503593909877045052928856005896447894385093014307384668595012569209889085510025888353598982048940712747401828515090671548860463319130446223640713833492078089303300723485312516651918726329828618809776358537516512997104219822019675336834627776842203339659706503991530726035836287948429833827725574783055193431102350316228844663401853229518244657668950729585742871447700340845316484084341022051688912402971871649659736674317818076382926431293852600035301853719173698220546529566444415192916692254071765600214960932548349099194831376520063522789811261206291101578090571465813267033036250332615966495835890080796203298130076939612356992190935028743626847146594937156473944940884291433462082004533976512016996612903765616399781399860434758646235900003689552586251693605462141798423154948625082366233890292646535382279361315086775598370015127664494686618266073929280145123331935631753240645773669340330396208621519466251364156874955364871915826034890580552848836510370065817325397788940345942772212463447874022285961136199604278441377650377902686354433365392872761050043263634263760717182667605479003312664012324947737011953848075633573800273279500121204277229042696326717703245488407743240954420286334666144842264952835131202796909042813089948505560819402455769340091290031694996563203244864606666656334202351345123293294233458399816279730453861339140228712791839605051041810441571304466994358377820359404114477533323323991360167330904224947873153114604210529866201128026865676125466675901274765828728121736325617948461999370948753914102210016895100703906070107882771855188286733585339900576631058889049725182283250390283356537610478541365755863596338587520968716516525542099638837418575263388932504409559890682636681505456518993366495465511977244967385197282297850757232510800405252980172319067724011955113423018165091206273551797445551867930997722235256123222553120844972592935462765828194000363037692369862608706239649373484298425289537293939397028192526085476991386660701328575916539827854711730176763975067329350275684699271213364424637230125164987878105772885045631358354163721040738869024635035232729041948753209117978875546093950450349270375327971122404005704039090988132832032513899672118278053251347731806109948417716011581008442215168937294767608438878998784224964661548834499255239488763647830591093119207693956040074841964391813916589007190156520916127851822799818554296800687964806888009551275844731023459151406437396876966253840168417676717697826327736237384414209184422933179364279310219146348360236679057206716136487368836704875805178111737472595072268547156338573853597162756806904736374219841451451122867906999002964273585342822571847675972909006367509529914541695745614987570151069706648662614083598690876202899487826397584094747012678593329719553505435537618312121737868732589806848332739397409389491986744278358508919046172378946034259785539318923995071736637955981825819915455009506555770039779972079348064036158953895731969393805060669518872193114756106942595899273874093804639185030704904070617381742540672109561114432162974972669103624947207473843325997156447010208389682308854318815405105689790662976767951113298585575175444069523860636148030213848930034556732996126125194656044184361120311990300694306646155613948469223686116672444642624431151760301987093976186373287995161351355552095280756602832008653513763348502027173259342298452351475192440472515106295699425107363956039420211485312197835276273175843039076624015102221577195829156792961005561868491684962581899669274923316305474378522408798209371969231067163685838151573441207530896668126336078009666801857352720829010407888645054432623585944818442586571080745427977120293720749566540693454563393127902027087678614803733087823767344413086912243523664247507211842038442236369754851760223233612450390896771645983922991370669128626151154015116676900432191670207009018151898668859144050138508505429898900252836863342284709449037511627522398063328774727506078226339734743172659315306815072662768982316494220175510580209361446376155780804167240127228388260671115936044946282872313364204669850499177184509046092949514884043784869754808509152508259334187530878064530107144204741739244449218624983006914132400333700855983496489212419794675782639712307558119984350576511960579508215042403105921437004137994904324183751301921487512290762101545793729935537316220856763297160004364962638575615770386533368070987463289420078692410111452850453477960161438047215016605418221092721623174301198962359658897507143669255290546223802182892187740439511975935288342306397117384605257681256901261735981456835105559277175281168252086388296699657554403650606763616419706742865769604704188196255807921888397818257722714115745850849143656375606199009093657261170893000087591317988461071796419038276348667625409624061388326543743420387443643487600704342060060304467637179220623616459905927070015420772486172192157068459871895657704463456852096373258162612724492555665904509853506801430567707872715350183820359184968959079474819343316197830068862853939860127969106328789622631927748100297232953305084431120472329372850457467774880899116171220163752639953416000988857647562388481716894319260577152390304955153030729175150763586415973573956165170222027593938045619745825637407773733763648042847380948425570116559119499645171849552026025575689034938969291819031018437512621368281867162196278941104044988985173213098508690522637213726503731782315028584780765230739681004911551891909787758148612727302468997435615227764667918386304619763389198306954841971395787728748070645887483644471865542533565859262862899632489170238627387284713472103413423906452881613418324849793279112004648125413519175200905496870220280913618831150651548312682948674092397696689117639969241111290153760851495679510974896397723158881310026771594707069268503008287062826914324264062796588875544258924382883632757092072953734450592448407516023594712475017857058002856751793846403084860955749944808098568113929860202657864078850735220001882061702229213191865966166234756071510100617498642064802774509895248435102717551013603587948018902224356176427051200714382060932020515355487646981066273197461153030644346457146889455491820375462565482152640741064903953613982975909818638433093583070236423328578503989397886927382713951853311727696855441418199113332253236480762286841383783508709112704111356222243331997558451405965570010271628980993641459600425654024711436224784541780026480673782140178418340650860271967271461280110290929976352164443229452068049587778468596421160654730732030454905277001082862399017729448278821669043931105814086672545559659549048217510987383848804771116024872693414151491212889435660207401542812876686387391681850595330693421451923373632350502503857455724637109830537158810346409395091422422332888793049657898906247811724515819664089956429782720592475092319014591382292268305088166007424396529076446136177647232668213941780744806235485361768487850982649169935910005572570585584561624520498859077426390906262459804585324729671466189099357123383453595329125453936747741865689726678036232413202272331364104849228316846566675866961150557992403065973343006574889400934202634355806416638268822675476550344786923703806438856277497732086295049883496859074811724827951377599393458339573828517932000956843306194545567623799204923579141181746054329311473783289774577929799505646663537476745498620758679814410039267267112426730579991142556275554474926545026051986588115934741485281946775395481557824698056466952634508009610902288962887790822742114840491322501141400035556295802563342559342406412498437865686896928836677425178179972180592394427513551998457000885052307893888155609597610865587903383269279175267559241509292748496326643950604216542523499902379542934559044470846765288704960840195847623896624413374008705630194986685960744856546319946338204184325988476879053931199851552364885029813031325507096655233758444000515860056644318734086121339024734759181495554165074496677798559213327103894227421055056540332187761355506562825954396602298440911044002661305504345170362899065707202147944190192934367962088756482852137842471683539025271263112416487942788503728769024138360214032396179806815071567973861171812364993531643561292929440282239920588111591086265846619187106342257442516532339151915874139662187626757184972121504957974950313276131410840900576396287163295791453219759028321287485970110798719546077123701314671272193437850037521364666385984235207973323530016417516153243533138374876799721960608574133503884013745862537792995517846361715183413675043246363110042785373134684262302137255815710768751894924007231982140622166155840011967856431802599530658253550891453794549428997145032844291093973383229330654849750503880521565482247806519057829001072650862141217435474068277214157041023666133268703371666674694410538604221386165507256413346529610744172769656474822753482162360447050573698878408959305419178457608466516057965339404626170876569459394806662262304494329676087423714595923190475830229466237172038029284947666749302816915701916201727718563267057430316404883300404146830829892404748988652308401789877630583830339953053051281445698594581656936120948296427827996588192443534353206398176301637387246101741062402695028590285591916217860507138480721392958725021156547858274818482138792548825719602835597002698717855378502129835554224577325838539750674775540801729035853015268138764778027344829757205278471594843233582363899751718931904195931172952702410931440403283774585593000982253880184570480477440811901749338262402562998754747031667567274706953877323319567350218540531178291432911505258138671703304835777711508039956989185200285434773318111613661249594823901106138351429367775029624304296371615964353263349219455392210788566909287749175152925286815426247367129862510268811554658759139085203799500766236581565855649528185454895149366304181194740486590546076646928778966544154014511389832611821087438553244117856714622708874420208618538491943409862759567231500539831822589479406719973320234281686557311445499968938896342785267543607389286402507675545602936291630535974730626089374746928346288038427093869726238801861444544818035861113835738084145985603218290879237292647017726705492986972313277487563920026211510861336930987719960781560340602940597239164947902711452877897002681750081916630253757153912391071536612366297362224134259695968195695485413241840515146347263644993593172692462179073005548696789412815192694530611836314031335094313492360432357999520688328642791915454694706821370143032982915529214150868371274271151448616500342855295256138901354937086566362430418775611273333925299592508074296962478043518617345936917820472969432959103582016204303925567738931341508055177970173640956731440199953339677230309777928327322961445643941058117051732383617291465712742997619969206976766561029854763035813323346214041468480177073804727786652430067364513341662809746086820320858881806369512738367132293881805703628041873468821302764898899275730245006886759255985495073727472099872968376238922651564237964984790682566941216091271081341452195336670721960503742757719613085394427864267761698521817777803358361452184060014942823676104659475379742661745965092779248892739081658813988047574046227969283518559913281067599458385189243942673536455820737265135833339269704579798713653057053593506828107906511871694004008134983285016148193503371082791603011999266657254372295997121055511547342516924356782449116511679351428506099282953534796643443026723049219628531182703185889456778384161694421153689411060135704294637036284821962891177721059954027321888360067150765752739340287719108635255408814639492889858243380850521363001096686092679783118331150568002899686513204311211812204731061091412571840344260016887929449479348374995604341691762441290418517518516779676417802441238161747501859684529157157865843789804534470175791824080409582028820411939818144885606914358898367153024128938222580935667457239770753193408619450166282068848480018402219009938672730733071336885213719655746097316608963260242599277083057690795637355456860565256189305152470561267056895293643171760684504665405827611119546322197963085868839479213682716322701109501506201244055089398930679721932014409461887589028499672937138625184996669379654873530800139169149844586263962980464655916969411789450871342741446302282722809445585607735779557486039324641959030854412149761899303646915555834635563239701415176697031383643546771309461020719170474520057733778844288171999101056114668055909687313470426064646162949437532564551058547660888368469556047563207218019086649004273723869985260162201124976420145940583958227798605640743748750767566495301514769940876457779764854217021507259931455100058311512823853002716380079637581444160212949795701790425774528376739530111178213756913889736780400247496298305072851417077371589598012913128213139048387432073140531242634134559157017361267160366745127376960907263776696797416379720014676596005999969737221586623174363387981529297098374084487040934769337947021685846098270514684095599767697070217786951949536106505687652428721183178979047779678619854208142837243715011725630323578669859360598621377006355975561016991050451784973413559149973654545579728064391591341042528724486375971107907921661414630285030748006769708087384223735168611708402601570702731964176863103659782825070867892820692207448725011819078929468544989541529114390774183949006334719852543919916657516099434630524583321555676461103350707514220350721767663144465471040945670003586317417600168055402897814286810835748225339269799351720789077943724798477027440403735673392139532005112008752689744603978942858837174980703915653927725240137167161156118480500401516612388524470260533519527739358802060892424586221649075353561065189574456181504222991386522909540700290593832157897281576550327274464725823784790100219292417523850768201512358102174555475282918787278502781886874426459935468944133147277345729284815220740950129917503211089323456973699884885904421257083237826661870155062510841532010107764661735054843408668829499509055648330737086923933305718407128777625812969077786698573434674935365462916504846226001313762202446660896742898425159847314144153428577857223667790351028085381634793885967891949595022811141486329549415159896652042105196609144565830525947322831007111587609578182578671276072844911322770488874838762260536137597173516058749475261936976904010379716145762624660331857450979649005374458854151465925733591073824371349333117750520790074584822321915504913755286111969591140515742852012024616994104445511096352688089411900234164172855863703281285178635755349798735984694633216147501044135535563292035883858296020535404046889140034490992973014061837371477260150953705353035247512332841759739037631021701346517501778263413465418950695303522758628770902822075235030386670937455008714501324960713975623786171512545373414767033761010858507779204260875883539295940239502322796954245153635336223907702866402002393549322309106432891955648062018461981108226908877995518500846683009054582930891489376830497245534500574029409608889994050892322866369808345370360526733035541596930550535738451283103705354903552109766130865753210150383311560606102411431170744463937855530738996723879208563588915455745196104292266771876350383316186510772832119136226211679387353726858199912203551550430350854085250466165629451704856022572974687631443656517280830465278439282908361180730431946053071265248710035077935899483446946131017011617121988275408245566938675850500986205676877924892993167950363130151256553399080964900964441188096031586612307608619593532166784309407898855820588608410554009519892222057778675913833749945833701590714380758640992627764439500215143162853353245756336098248129679859602377736311398398018405827360928779890246978347275780003092733255091685227458858580890636925474666304509435915696599870780228209836226766894127158711508628694480441188221026191059150479947150827074065709093093676427241569723674777372209473991338284997019608164858629276305102992178117690836688198949694643343502849782064136698375369796497460213112818943525119076506419831521782403699399026641413237238478021310536603775416021862148601420552193313985966878523105285321450848849330379750270394885894779742182058155591454693274125441941330419732204441731881226850779729546457092927307382589980068439936041204053752202220505145743667029319775217683134307840646752827210875472686694389445760615788411984141720119050433981305816433352454243136085951305221326189267771671384992195514369487204854616566891492208712023301081767037822983948497592845384036278024478692950517498805009072192361127170357912750847828934433895806874081732011004540753026413562972018480584785866855981039717377782072565450989552106718929535632263016543358133031961999208098015020966618505008895812396453241199567340025012043342789292015822132857804236399821711570381249375894063491016311554170594950079710873342473212193912843268839308378460450722270288937495950888402809647731840820004060262301649566477372575523010314671883554570653370837923907567459936312562714165257498453255972085328091012654292484402656005801868084194368345958735696741372088521607525658787335850228329274771671371176663432483128654990232343500767361725511343691201212372696960210783486262921959934451909539491105329732408980458788509493493832697751233222396241837954879998768858473416030004408739574382262439034870088934945553784964784813264069445485938520090883028641856236757144724593881369292141518455387412981326925754358757295253964226571883201369575998258582559896300824840123955796892759584867171085631033358225292826900541759836058175474064728546232570792669171579294428785283723105965612067556875261596139281222986050508790057424775873066851268823283271579676266475680597432706026375857177730658230185003822477009344362739409547031593487380408624276431201806196326785610173298300520680124068430825933702584587827812098766552660576397498738826785609978398768833699255034192921490190631818169630864325008891996889399613182921446626042975348873304036134048242395702076669214678050551979423786150018442773717794767295579979605750520373531667305316165727567544060108195844238387349263645081460693029895566615758788337609808744530738689315543490226075047316592613686947394676386040493656038867560464655053887961013532341244213123595412712666471130277622279453707760255172058061795318531086570015777693531648860624981088437050175463599581482932148551403289843966664813420273810577838888260614517047692551635253016644385896353225081708719708327798337717171007436723462871290966659462431013965694934241300834634373134268226985124680615242666337488771082917746080848831284187801770305036019739888286999162247793767294916758886333864424320305822378724503122284804392020449244257525328514222574413129020075237416416957907052854580064552920120348314397605720194999435729626368207596148074916823789003016240509079679721836418536202794787791960531859578442994882994759752432809876491241825265449741559419138170879080864143186850221335019792544286247870530994956116785326587204748689684744899339610670275771226407861659513445317873773458622815598732413578547042841562216919519016314602196210168827516927611759125410114435139554872859832694045708836802119542152339685366201078950492689553538530056957300033189365739245311763195326444942356187065577133493401638967135236237643842236999567909684176458147626834633411130910417090482130961204663852360807082603843988686784048941632552779517478163631613637107960184848067424973334858506862654982005472659673626868707370492886680660071049480269082202359859196959083711017320515958374055278848067871355957410578284543706972062070653258146679378018790896284530573089079924828958207135569123412646738167020411186945473963490029974199869062646600857075814865648765271321159946940430065985228435148294875090568150280805189211166976146639594164210303233841780045632617311636809640613140580750528017277104796963665105853012170309748517275358585257709969376475518819603513858969294650473767291945751588052695904402440846711693453069928528453308466272826540504491760190341630158658570748118819261400036455493342967421851379687221078847846625389199049362353970065897728017654981820168228468734265496147885963406426193389892002018764048170791548425757135526228276194195415865442079716613280884504601952211206322693519443781805523693217818081841511428644339765506622292367860140506723602374997732545388022995864212958585958024411438272442828804918072284212045067773668280862840134928119588461818630487476859914445308552473980839826413987359277504458975543356691963971734951663016981006717373258001144442055975747352441965643236023194290045093393696430457025587736138009666501520496075512363292659223661089948581479769571324076740999639583045888586153159468596686775185694014877458834255104270345352860035522028262700366360578969004501310291948443197706755932147176837501934102320997288817493148615025496343590677287225215110730178549943550546639111490316941002925788641647268866976470585832577897961595706755503382007847658366660175931364096009289609315468912307883221764239076701359907890256497252677303709492146135833741236003413545834024886243484906309999431643678502160820238320572903694693403515999178270054191014942512794074118702325222401864645641272778941428201894774563708407214154083604197999205470468380496919554871031109895018430124118952316345237027212674960115998321980369011558839386594808018241352659015925951334082037191271791082545202832323153401039208521637622209494485372148413927038099530321379291013935130895911687874419670031155711736647471964633035294898625576492025901534124825814052944931711870942115805218413014855575782507974228661923462577362733182633548045619723624230093812518476428474141214642870988812919993276255173892460782560289339004183228964732998460990594674834313891834756283527824279495834579111875178404453376146540592311736450299192127946793531098846676817382670044587763348889022837580169318732510987587156496761547737228607549610039472791220310792717523936871162305561991231749533642946081753736913809086422869649228392905070900208553792486892260487072961182988759694811011425253574333286374673835950882894417652578851103610107453320976828325053207789835268177835053178692133393008484081653747205255442504528294560028171651544284844672330435802958226955351900386069054029378898089116972023103684468996128688107607553187202361760675654675491008157874340866876463697257919864602276540138148588319047429771362464259180589096956884578423950310716287771075611261082023134062028540496223464922556818768333808814893465297522390871054508568009842867821387856149249293774625544259637654464293130000664927286575125734766216470522483614285882891809480586098794949269997038289103877153571868342808620229823272077977197842009490332911922760969804374064190782425375110397815434319301445574065379978886544573308656824640933996832411986326208144014986034387290577547818320526509603433591838936836787660631584283166300335977346896446315677821277004302863880161673717623093626719887352342226929521474541634100632125901628556117825463185515720328086308893214946114821575916689667701563714772025269493640066701648866155484034220239339350044921286136797378671301772873070326447736902006298218016773647966491323268166125019785793943628695060357004144634339429768276655672828494705303728476275989787831095509571141890002697781609836933854089274664533735959580475199182065997467850607594945013635146975466799293088316094016348592317467610276625103401123305870397981643528534242484409652483718215307150926415119959969399462993588683507509687295425797163679877373256496139623280487198086816752521817417965241029684693603142972391780142723005599729552551618371937424706872467746346319547962406579004336668697360720022059411890839578150466046365778272512776887413443147205258741326763186974589981460758310603370039107144172449354683710354677049748280713286248359419035451721775402051301521493770084262164395560795290733071167519194256644887283233060753878723482411614068650531571555613767398378744174696584215721828377394030644742540361785002651524211287032479249519788649918408913166308702603369321806875558320283917409107827074620470075418353193264498557155888326642345879633216752263657559815984208881573870530344790509188951155055580352091460393510924935877413218688860797468359973935519321299073064524990449706946548637432488836831296983588693330516126753139659867974183687574848337393237578553999220328805057455756616170425781508047229694750000244546873654405354918633086120898519016190719553388774669809638054811795236185679723392081829615935267321811721683721544149616597714473446658805350297785358042588579507129199047797654282713412195359356233629939518977385467209935081684498531013691103316653125237503292698821095586329773431277914226226695117161186167528497929831913970511732071674123978151196223186580995562808115675925972019358034513091908060945687582382672011423054395253380160317223895169575580090198093923602539200311261227340449090107790833834168958294761918414568901151052732850626791244485157629431065421041870696472313271066226174433780823659784664268605926294125379314069004238619185627023230112120954716706951697954777961808708582175048858779181537741671658539673421844864052675940517961082395500640051043447345526571558459023461166953436138128336910371547731346918995435427330355484477796560721523359681402967427653399766597909340919709562616229966657503707984636758300186884319053681193088338984428345297641838854157842390525864146086868254960158376926651511229501944556756345967001199018045313437916074937687397831301370739873359178942156764003527940461286723189832368165419686164924986295492527119647967014631292090256708202772481969798027576076784647381724500636655626547061564550440168731736128064090463796440256453879837007768623325325361770905746067522722411688478091668373237379314979191360831272424902980607066411958148968975072949135827814873861979597604830777158385400822338911832115054530462708439337531248384533231783577727438600494170387956019548412528777652304106895054279251249592941010627391584334671920206788465795789294178284963112396256304305390445255175911279844015279290652583459444839747026461996977795166949917974908124845003527424456089793809619503251466263709527783909152403775045052643454870026230987767406350949494503227128433861488719151678009628187796657398351626304235059792122157921101632744124900389675978220772159723210354031615802438615331714805608178484660686372192854916068724441838117749395831704477118800963576274775446257058020247742837736162751681312224167771380581418914099266443223266491094374081521018957721123133283787141164089874543875086184853859906295609501776657201598076561055381743210612755355794205186670466951267733428744895730167834644050674566449718188831130577740515146990031527092233917093948970095607102828420790776361670296876036976700216779028277291875772348177722087405208590776574972852985093685717399222262107934347896933918635901357523056937015378569749991641318047230199831676274054969143370483156280934448514388740725059880817056770299643807213878578410992276551166113643872317618699900066052375737604880214225847750970561490660670617823569772864001377385102258920661989464404323405093504179598011435427711483203418259507817383364173988304300797994789396381752441024786754863685123841508926942376727004146592390256690349633722047468999861027273918303518870571325277431346076988800187487589274729363578905209236168830500334364099005071395762408659029875507342311900487663561183449325903375511883777360810014251611341898781938728836850407263032196309817836344646658142894055945309631361205150220908185892494113001286391996867601123384338649820673592831441706335842028207428810714430369261928026583712271454806908540454974796833265282191823700660182364072704906603692323290158715041744373765677629761940990124661643630500406301039314953564636062493391635798480817325899858349572344669123117136815286972069057651430557620241720334782045256201282456948768571971669010266034786768458834727710375874208107503138954289248420281486561821532751175802450521539048435501278659588914320173714204574154305725691995579361135975358639689931186951748142836367367382748160761521075969429673685077783232197138867819107647580694412423538220654201314250232575096402487510244698660183936373135747313155212612014292622042101505567666558520803800122727430074886083539594526151801528668626220719202561553858124031257806399195707479114214628744008530482615813864005900754880070420098933073752389771405602557309438683988861661311620476586762364500064363429179795419763369413710141166343652069321167488781192095446844657358775753211141335554810362785588193645657607057502123462698331993233285291755329711391493932896865161781481880616712703798946183931333148405977298006658850864969979003927063967037208126899368237410660840558218361659958172391282557628902421961407083239549240122218169199502266572013959691664355120360065340829319141797647324680272463207436709039442272779706415243236200453444352165839348266238404974964513224057371721050718790806583056082134839951969989573348084283452892979035787416998047717485241640386281351877725781319389182290457430970899875745898577818428270790891604100341991180443917151141091142586791052103703778544008582466102644876451321661004763113246910579639527033522408748916769086534218120414012635831717151544408454502682185612341312630839582378831015674992084658574174787395222763575141648449416240664584103619392659161034015179468275808779375404037725881152655610788830512854729668328088050868923487178060102909589661582591245726956559153439698707663815515486086475777798994456223443519854858027766799265257092376058966253478421011980191746493052006473971491761695627131147285909733379378755208514141814373691432931773745718781596138842306254727725428444693038078756213776479520632742251922672902280340504805611734880725828910714541725164802088264107724156719585677934215943003678105524349457655674306959919118425366302297129424934030896288194630833817697343284285640139162600703918371130502302143789987201838684360736550114207623888406907420675141274459751054720962953688640755406951152837128752705052335052426015012094338624639469134636841108453763611107404667219978208332153437626202958811464231118391233793576488702145058191115993578530792734464391457298551073682603448963478375665524407275299665298818228262566433202275265226481264967299465236372799222733079612539703377087678882156085004199573881306853769145624507364797866920314788221408688764967354395466103279157603982980359987805450004553863260586689628357536104249321235564395813839641919535900305249218319322372410511713738744619218440092172822482365588310500029489256080756967377568015016835440997576774679759042360454982931265525893646102231696530099315903099966066966874301661404260971819839583740510632483043590657347230822169912754155216288344521505934331563679219803708196082901173101478313877166447498603726385516602363802260561424557930745975562176688353427261862161455421824621012581922719466066109820438021604337129978210212953804578062992773306308095705146661842200366870740554795158386320359566489883284451418675780997176964773562670366475793867782695884551272862152383656971100307866169526575219701112276517709274532280756228974589197891687750365950886109380428431127429519081033920910292160314462633622241723146390853393959223879660258722028087694202340770149615767788660377174874824572118582509189654334367117894554540221846404066204904575254547892706145370706661839779688712015751245316278514672862740640405877368016627482855718947180074568895674941988062632681215861297681664111019558225012775403570462339412450340183528748788407995073564054272546299451387929177852459365251082952491616642005767550968135053666178537461764507354226942250473264194933291976006600651927875812464216168811115856111491058992006285530810779140312611772755392147890286386727472684645678682245299247917496030863790117886472817176493082986412301296095331887044183351717408645266469884005126706564473786077102906029719432574005256247963509607663285892581188164906950331200309922619893566440339334330772470481473638242346118130861879303760553138798365585115558791639331914914055887602990917344520745697858591532447056225379618906749451055077251760074505393126067532868277001100273808196494773219493536413887024372015762284334447982279621825545735270972471420425260006839776539007948698182290288904691931543572854825815357433439443288717896465801791364286603589029977498407755911376611533267103434125438258952121011824007900288301227123060724509360293412658612768402620188909793481069291166032081851004614003393694492164527030523013229070999762489621423763470726645873025748918623707600252564609838180551061965207359081256598177465114763784867377493015318918616920319775728513400777402464614998243254132335221208266261273993939365264174458982017615373855771606945247943798863548160900626819973021174457841467426975324114813628923088554066949056398469347827247874165552097680073424811445151402949824967198323845572909414949743887753486829867264419229920567801228155033655232029519579104962044934073922835927017295356550781435880770309550688294917562143764422685131885516372717983451794483301575609066196943601442493257094767056045538804574666444388566800532961519316942396561818612303634286360865558075156414791533133865462303660325469363982617843409832535149560609853200749413601788847794996012750603378684793484109055144502088007810945274584719181981748565798940473217942174751339553972961406665196500067139707168557303172970227720120133165661469604968719300477924970569974820688904046194530719671908340253798501388208927660663794903114221779764674018361769348467607801501854279209587278043170243794368800932149656257470520655610822731929086092855734357674633059639996290360507459543261094286579302656631953905709468663676200044060688580098693832146216837304237481306210324454998506187440252510714974090939080515761789490955049009726849384622604446004951984114610255459012527531077945941941256610819672014403234214389531390361726180564514888314342520192629730995690628139138452084646321377482778424547208165086588504749832377290109479068323338631466018883914865134246094655206622139307352059739404946954902288805403160335334161631794146188659436282049142411008330630204898671362850296629307697393912383773517376724821677246511369568709630199200272304586672559787708284030436770663381517645607441709651896171555684714653595334613309593592381194568038692076498122291653394877774538286498302394876550905581608814228718199190947443294019903668893723212619710120332550295044157517289599227462535838077887976397911325794077075269302888916213375585860497829504862626320255795160689784423257366555370620761012811321303093610926805658414056998742787746614086147469538922111123494687527929076441799888742515219389077307923691850719354775563460764068615172240125997671156141708939226921021512758557034265659132446689672268741719372195287182631389739887892655660256414649966287381507014235341198417672222200964864055863532738414476219180158716453792217379264752093964573402316720746867469330747061812604721678931359022403569144755586741509207434854945412813248662052897861238855483224812662134323708135574902793428067748167097507880135474047046458613341462927912164976034860645418700458577838509242781583474787818774912437192726944409454194176479519025147502569827030215934330086447590596019198133249543014690517038460337427284845952611430095447233718646425335470728772023209938264689552190351821575726443950466810144339112830798922576373219021804526116726670998068677384546810316581754925811489234202144653249970664048217508369734220575623783249214906386701894553897291682444839748977943203557717392868598430739595494405280445666346630917517633604625789391869708077938728702231314103139157227725017677993696523168724165091628215953329112585189575770611498587784581150620427801328878836339117559772804350084569587966826975063318467997881923344585434513977019265989817648965973280534259085439016935205926603688794387081685583702403600547977260055839789443170180168091403093059653300084121716189928018648212614571837903424543556978821246683457182267460491947625923699593121152377963850403653110379320072595325014087052461447447543739930735104895701461008659967786047891651882148537885145942912469544881440166608229658885686894107798052573795956670683682199791497383520973604331979781272753394188642772896347027320588973917255407710788444199443347301111367558123827655911419555849376198521139006602790016486304941406831084975983502046002270578106303849498887428751638957987380698212759255541540672640630106778252622903055798333986812761241466135252517479027620646714579363756556896139995383241713582974631257070708560657357896062980722859480987598387668218622037755658898230560902215690211518306675400899512665286903849727777576328990929390228086299141024721796644903871310290533889407534083673439640637308523796869166803379399955888701957022251769943658488495900304835708518027930675980399343289417935327353035306957852048741836910099894704417029479417849329274025399436706486770922213317711950252840455133737165449983451915303865165374676219288790013764625124223375532032198041180175704925120525862899533893283613048742502909864039684988843454785179781904508315726936843958181548519907405854604323318374614409390811931109790928087917236642390070141859600752711180195953815974535002510265114421268977781569178116419071913599713715333166927707130832738469362053864643051816760248932971463279164495575094021116493029757117446542527738973580672674102204133239682289559418943250541560003044455865627833055119611586140058122422576708514119565794633836727266727734196926088178699127411379681523572523526957037668733189008613694081232332524002757898841393115607818349421325144991038315928244558330515214236859574465947890266035124072548650827045769188764161482234318528028058959198854692833187513515708935023951402246158019245059949130961234137523227838351036131740396044182769634222379401047181916460830554032861753904390574044338330406613337473543577219399843822449514359838242505677944070499082899352486678941771805049600579258103648246286825473730956749873189225799583261283060684927575572229010572441833403670204022983913985306546396068175901756843978950729721977093028705023058218434540811331288415135902613306209622683618584834110568086771598176558195568675767267622431628014988206367495334285653271059719102326108858982684609697071229609226709933933300668506544215778867928125270549453708944851330221360668313399049652328675155592215632425654059643144059369403903909648880616716046460898695890927864804114664772333122507323009463400763970682894161899257352444821272304697272976740504254813254488386549524932102228526771554300789583353128934726931085940343485880597293980720160816844381775989792065845130536510375467677488342496779231676542739147746518733567166736235928131660578110445678972472968941491149706202078408838059314744248947224734574797373570052064431658197754771303775688694378206050238615430671368017322984743023280291720065468517989969507821522826129579528841377397098071102774517122725640473002080435065905071859188937837571092054353555604257278803332710847529556784203400628784649604687112456992417249712819294623487622772984630770397183111569628169459912965743213401976952032270703994700771750198728250266664470432593410098480149693331024672552912331174604289187573801476722002362130503088961213514389279601725716681896548741855400100308838926715603013565803257606884290303468902794116310224721863202984082888375904919441436943939260025389562374385599528814675688464798211352368629638289128479226002271502624268567335935487036758589752572190355467388742702729228168703984258410112314063988693979748045357765806553594842050476593564009681697052762251240070495031110923169713374250651093217600597617705469940430906823510402810531994336654423277482157862991966801333244634768054002782631602438744761693025377658264715548937133008935784503784365826438001868736810137776444917481914171745834883208877611066130384199969031473210019487205203603987316599172897024965652390358865764371326997745133527320064955592440685054284103633190883440928331119321402592387976619627573074695022965951572530899635782788134520757376392194562967033319886622659444548169858898655602534172711878570111197389079935514345763024544417363849531466711396322031530950571265861912028967676545282429172631444139936045041645002886494690800948883379349587985507526784401809730851185549627917207220937358777603421850357439292675768356726272041092667317454468002239726867788903125534939986042467431904909901906600954595198501072357400995194977982116735962897210455546875340444927757387867934065112865123914461650705843724575602066551548898476784912764081258862452014229122144623956763105093922642723217135129857283788435505194220411704377670737106820752249814497549403063445989061474797821395865839859236469498379829838922309527630177153439711297388238016686635399798972151116354361492632773071597167525663527601274440295007241745923179843423079196935808301348883904522615090786561374220182157824397372770014016225857020221184922243570817992108060522504577245420137802701557795447084223848601570051303428272291611101593387553328875098946311823139294975749191185131731211135291082743308988324706757497468586596166685951868199886312952012252231756937510511902989420145304518243538868725074435376699691999575073246722659120541702256436603323435947492704672765144211174868555417003514842908006076090467336831242946382523148829614692859775256396098866729509891513780744232632101614846831625655138349020398687327588895854903823704195791700470713339748917966815993099220091405448199734801653416958418870877842460058295463454569566967623742883402737493458664250406756413185360881568014344942237080522997966138906788162852087128211301051664564079589266952783007510472511904140339996888201769236690920554320420264582154176185809726486581670020775502846135277441381190588849315000773177015210114220861818792394101038636504809284191034410248399506026044826219437323303954382186198338470137056983662697957663303266261791036085810693886018432091366031367484605731147736939980914100189842248002265934832920513577141374595335123936750746758094691308679874577450852432621124149239697548148645486160520848245734368730037159615868740054628691324395929377350713555754761608398518304006645824065083949091682873011979720084913218307353708539138854427931613633489835501460555953395881529568042473507043196375885594637014550014850622855454414641586098279500595998835761047390580958886976008640735768008086214851687765578093863189103256490142173629405824356522529233456656016925808237626442075321674758691038383363927211458261297710978560337183834834933307797939687951809699256579361116630332704869367945089155723869312728542648679654775580653133634197194871377870309762470064605706816401399002385714780736144138672468567952029429334623546172281280159860907075951473351196116016246979251237306508848927031379729472293720541238340160501931299593330907094728684197641672526658313391683333208204318995825792413173578648563717858388883879609460944947508299524876928894390319636948793728451808457781131584847423091762541594016591712497081055269894069360842015420356654619672857845156468131105317682944386675863974852539064239244719113572012990372161179214328056672404451273398027931761999663901858163859746884159197306187674046516899757015523205670345363803736737862829178065034300407061565096140802225173440313599947778630033595670104090282483460800362469846734605660127790613337015774199162047378595391952799352696065205667925965917698113369216778854163704954492914408885611296129240028569768302298101145762655377644065322621935192362293896093598617689995780476717863948547455767530534767046527862238440895786747500455855959621824194688580647498059364649008777343356139046417415046994312368752489153818441877933779725882583040130074840954013690487706989676113709834758245785622061284550055718771293877946012481215597348065978149922648401718966318503728121259441607782253193948309147310693050785361543315431043319312653697732198119103956509869043874064704720004778850770366345765397189420814830555083407045925793840006895353109045819173446745993979507043984300527261093890976367955736398819228400707776540224015954597986218932236554124555777840894753943092967064899895364081591229358018608800763074521511105506764308043906362183784539301267027903510118246154539521367389842185294699345417330659875874459697559066252706759006271473336348277848876457479507904951287831848332690854550763990257684868349384169254488817838753905988750189389733780835610463248436434645702817393832969127572375037472772385637388379255323306285950291395316516527179023060854281296793892822416625481050160879417451487590413391591590061873479090908395211015751454969619266604991589320857543977661895568511564414942353513020810450113436322288841259602023807334660479381801256037588448610820403497557924041051073643264681281703352301700047115716385709060005482428699756821145095253295835017116104863210323227351055830029240370255936593613102526673168998430770308508135859239935755019672031947626138563119293620775987206043604017169148988492585523702144627642182328419363973571430624287772462715653889809044287740683005256209142715567527770329932059932147688178178945522783133897428289662897594273773398379674157512542142870499758010517754552040836693439109956535933252798362213948487847870444894793680916279895329507088553840655297028578089661515006926754393609786948851624028688724582831796611941717804445542388431975160243118501728836593539952170908042584712363669909507965845961632712311035774908082710444119040655025918162304375598276314732635798882096735798434573751237236841893712334397009883130317501965772413147308038876457817914107391535338226013310487063172268198965856773017076159211768422956829158155658130735347810885522677635366213932677778271776603191781863208344805396530600713229014402985254100615101143842754758507844505248200951701306747705942372345025705435145109458325324892733096910349155522394208336091512175915242395671656890358109306363384226985544663072918832803783302628543303258687129750572264928548767004279038618658296066637182275297882801950820112955000386300515055190203619242431341313303140122440668204989743616722605880469926239623064528823021406967967541113493654227025604480769171169765844028718837854653917421354773645163673502684306327399837228038178554088193217199293596526033888274376738911666408406283732996954742458506790711843841037705369411958292981365567631764177736507541373117405184169391732154521887389208350714513901436435070800456391250299013131881067030258588982099065009238581795641370391976197532738203015705239528415663366523286181344233827816283824695268249472635836963080126840075586103436212713606092807496101448487997691142989461679680495808709360961272790461221762073115066879539360606645028476060250400205439159192231433805248593927027805435012879986712045885206415907972569070323142722947720986198936742027146492499706713772859952654305526892547157878545387773955558331854088409230344882603613571994814367856690415298838758693559093671820544628190756302585120436876089372380812966918874075626281302902471546751558391693675555027592949509211798537724124572005735305556582011575975037431701015501622703982627937099751558993694704689836332659218841971570042583845002739508746625428198510976769683375408154818208626833287236720027829347122450398311455695594583647002741371669851123527662273684530733726651226562709739103993748438737532593029222755178150290493577778248325893583641822300895437695057934419122081382616287603070837819477913404093843854258938694170496544944435880478784788490672015388694231927986665768732876053945292224278767074743919533556141493134728755247125906099977999186360265603063072394341700519966160966392497845877527847519800984924800715181618150239094906696975410199338223588911413459706115022989490547754029225388340198341010376208027744595353483417800204451304646869337275491860930705964284344455473805968714380598069609154593977542581988345248642792303729381698781983055965134736200345164332301170425683567331775721724077703064161509400591085616504805408574026685588015821042454841807564031276191197020779688856642718267329629019454966658701906602798269392677387717850794015774632055037792061452633169465526793582086969616934336668261201914864342865783514969691778797888384159427851785413924662551766752888111467570108344823433420742891048333465963798833823901987924847844022696709048933813270507189567413523667064985863729670398573387942713031550386662984418347880391663995372768122929438699236904525694768381685239259694974510665821391534594061552758446451279720092705464743978540511633038349431808673170764263925465362556291930689358336969500124879519313991274947049587400868100527717394667890544504322436182172115816198047094370469744117758139429222011200559964441516818102631790011477547461086491365748557908629142143144051268096732843513070765062988205431536311707972433264526368014957511675417925286817586163257792292367353838683698847791556984035358667072040520553576702944873280794254427357700968137692597678682445176064153464829185215202843952810199594084550281938185848206043180452862629209064805680971482231617532140884340844341463663326867171524134924728535347514665608504154769990681986163260271123480662929956417754369179318625057179324937768621394886216986829497780895714356206251662878358189577652644156561766393448066680855229499137910315847847347999147409454872930354598679031610642921392323071860369242543487511491428682768782887555193847884848368587651370991007909260554339962666704741954543387909056183346773626245373024318893983962741567499795002954764906586847829816695028509247716781201928069750321727099461381836435646060051593257155340841461545999427141901868087292393581761279646387643368249881565901254006060279880608414039085254715701668793261831744161592147131554526024085622126802059548916409338274651059558543311136233389487116825938461070965949289686619849467074561096808147479730042550652964600929993973160483237977691509852335197716163104941805471741898217174660997383299614389793299353933349691093401777016397186625521644525358278666437802557483647727755477231068720502607575068998833303394151959146856057263592520090424269427303823877068692513808550564711911004988375199091434416993699574229801597628470689520083978000941780221286303890545859678572220076021407445801331948055084485454768276007464074109580592454875574001310110131636640402459717046083489388053300913573668076392775975508878779600664596934640015416338318181627127118023249471237632593405123103001532053088282544853471192419525167430501257650223221373340137482288541331540538034283481346210118196739704770966054849059435228684812312689555706264468049910896356990297698029342307289199320139605068406310918828711621848306642547208377790205862087299194146078196106340492279730720462545705874539299163203176859112632199636430647521644886332629111657720328036572586146311570184412274440588148841575091346801543781852763045139969177236014930587437858267813513426721018339315982298572718351559418195454643500596754361664574931101388603915685136124381697838998411614081933846899120101255981055904320816912399613930365767600762524780226237088768512055286095727172786418417626882123997465441386126942158665677371395623263743111882139707697139227074000127494222466458142666666548350027298188537967563872680481774512125265809300520380506429451584974487413352272498716213856309594279204632903529488853357083595017417708030990429840076925605142428653800614314864549326731618283920950688591085676280282132389328584346108513038769169656169569325464347465564093094655771532889349841381788398388035282275533620842244074433579562153788669844600601771071128056430339112548434234498964553097263896220548051841059454929955362273905437673728501397663314998042080476293814134981564801395721996244635215571733374941087337011424658777368203771065962542833950254930256141683218687081377968282668831513642874455577304074949821132278081265597266741119485619337080489721251308319843530571721001246786378309831677258812978015932578063476073452442511221015535396596766276689025244145648656947707053246759645752488890950456534904431045645757846755730726875224039115858257877521131223428968635746021063738244026699133891040154005138505049933403425718526690349489748339322326158384331008461913448269125011348426415471059070951678660396532904627764159810144268642348391543270345323884421956412339643523829004879080255880821931800727784339059775701437642542333836272445543811429169500190475818893590668927973327528613531257873453639800577615375365030286461047562851894561184673878004517784515158051529437261093076099917368047144672608442091342072834425922125736463482882032870871693033017695827889288627902004599271455704377436077283263242929020513308936375839268144934838067835650669368580117694140895566681491997261821341032148742780054606776168553414917053855904759847104794265011556014597979132403320835453630844498812340292093203196251986141331844763110908690584387273924413566890491239149251528523213028564130762781428847153197316764645944375757535327854531215896754406547463793323302214204227053713354550436684678507653858027295184496935033431636180115986478341287540247206966268384324958740387706256646983838865338872557343706562847087054737237797422865612389291562325834605776301063230661875300793888357821285389652920312368061093197876738306293987075193802634423771487359352938148823850924222653095113367387745754447069102918701563630411965124411281443302023545572253072747807621318257379728541617047502843716668297547866821009742097923437941964877510339137622175727645952118170900535557472405713770381325688975785156106216215748904006002277453944536555770725423625645881240692835901893345294867635913626940139370315213203080050684695268145226718047300549172632035109557710191708742272046355078163448920708516344325122942143188093186135330490935470499395258896875891636867811562184864682937436298796107725078844023996931725017146053474395623092653071786025530028972400161666888379034181127700869624690297577074727240585979193947757784515059388937812680019198601285651542163337451942225085973521662191758366173278094520596255739013336205733649553592885680718798007714335214650439998045053774050476407379028971879861308921958143957390701012191736796952360673584033486157200345203262124542123967815124748281328530577744134020121011924339709837313374399692749092287685898243086707097996109847377183336837496489064242836187052350249978211081879174470922261183227428610189807567474326097586325124411156511796296435280919446019457962837063349178164058623542598771058654561305644381501566274033760857354999628540975654660796669440897346874623582070107317522711401988385945490577401778123976726953554949390043197004845746546167971062395363991578163838467731098569829818446494249169710166468819850595485565013176247501513061100633290248522866041300433102852124022548277121843254281967560376964390934815000661932558583530889345756404781938149003599304214488285388568367193240706479365074404589292654278436631735703865761967021191764475660268364141485142734961324538065182281573774052791904467114135854160323421365773365478627343939055917983745638201647437062329876084725656431917398544024987800813894672698402931661682307288235965518787786728398478588412782370061849169962018996268855790171945511617490244318277950978855788123643686781507647191296907293883535990915178928207224433844081464088639398123373812762721044381944534248650320302726506621475020726542585139560905778079529942067925879958012758727702888761896177644423335374024389054900957446678108988055854692394572243343182952862627393999744299561477942560981897242342143346017301572711228661166686164380652005599381270328806885085845214153396321909056830627284871887051535627535616614941758730268530489298018136206484293225635265340973992056493293650452962406059121449473154622477488206519461522430655825113980766803466411470217032236777318974296314034511301818857363938229138587920263677178779710458826763747162918486723825260300517768655857398950807954835834778376256025260587333064161214039024356601740927234388064294695685994287211297956944160533330235977887138341759251636478438492070203615770346702435661180223951816427571069264530890654759970747087223944952543000086997411827265592140705129750381575661083782289247994606598909089721311213604994448314457255559185266201674704786891503181657141674281637638957442847862918893271823008350529692084397058147603086569188062806158297740028726705348856272980796241794811077781929023122528283132916832148682168032417737103868247612307131106135983887614027390513967413501966804695070532257227547990234208430857059798703010599183196946266877506689502825840152571589241436028998987718090474704985410900178227818218506255203485184399782048467829248842765979652885580298185635662723361060778109896844283527370374544707638657429345260722922040319400051868253924577780000752360935427573799805511436760430187436414969251765462390597363027008535708919817182782796500417430746157761079780031051936071444527203725449454721166293805204998154790669273981846044537351449196150988769707952675188130141091368372605391645476938448711497608126956757478211916933434557747155973980968868700962399022221684197284728592602929494955171169022562949804489306738473861985958575561462797531729393655803990196805112137691271733269505694386899080491280533134801337519919060756447736230906490684568335218871134101747495397920930608043942931252627464232797839695073129847973989851133217479342491223187936005737095814773141440150347369800679220625243632156604160164612107450235132905871380063702690175856899841655213326620209739830586895004265142907848740964597134917468665011896896507619476431234735726723395150962491457251581776103554785094446571082410436071706772046246280596769149728235302912056960718089179477576316737785717671275053962332224899058190527938363861774606796161864954573058090707457881034836085217070937101519256251318831634023437851195444320597191389936998632464939237659300114447268290743446320985191287838081099081585875811543473475170971063597681298364451357785011129909841470470629544742035107364427554574718657732171028183997753788967731761832538924506509124088201582775623394668375904640183641047055120485143380391376189673334149984660377081323826839467910059656532572847745859718926288100673704495130149578302074918986250732938277559178149949816897886552960327300738831480816250935680480963087117030885679212616605939709968932641204808618471335157860670954684083476665529064725658168974256495997623409364839370203748490911000718766830853241849981991217964171690620395649861409937254986864906294205397023297204269357070024937077175386634287789844685028268351004963461650829453425572059081644464939910339752810637330984292905658184759684636256314702585094282889616512605154231864467909430188602568868343765845770932217829882919166638389173653055511459159789131997498767694919225383521590792073457281044533551920686404429279183224766187924160375514142575670580079110205093909779303005440535737982041390202273318392619350827421435359691931173066683566681479148774371963397037704333356654253070506948780064544521288683585736027107688246908286449365293948705803121066842491717805138149670667328475110867229503254615712061915824215128238205333459549153812505336515767300587070535830727055190017688262863567844217090474501764516653715237990183822264529224347868544830685724074306098012545156296060581001313157131376223354032755970701765304118409854284431605081937528873516122823648958551942747811089348924104999543199329231940684286520099645758169070182532066210845430154809932812511600864762129502570849173308200937657637615527060498937766718843410369367280077138861997201278841760315886490918461525600176332080088433566257916586982294484998858494622588736001491064468533229560589748913689922041121282861767370788016556380081487107019011315297305019690393424984221131209587081596450305837516061354640178964042851771348634165638610507802022499983212150604838381106874690913613154218689012739603076934903464334067659779495420221429022225605206725118362967485310351250543636641025196985231948961785889579445602739892736735330449815377360191535614318882397474742998514716114074850166929741553978723462235049096847120048598176948418050723004431152958507331170396532746096447167590486913517222719312685106439577244675249187251436156292756863563107057149190998317057280734916213676090614380224888248592465080283807931991849423200671411618394349282139554594004191949892601476073663177855161818960919405474474258266371095116402490848147174705799603942023972128680621579276317468316139076227507848235951835668441237020397139143651329136183041457767215599784592184931398612971145528940177760469189032614099756337004269445528735959236395015550812126131372231653767848081333131064689945760221487786775223410771832206990174720600066204249689057123801599124017428923206326379822690003034969357811392172433415994635755636997135644586540290351788371671433155644751045162739548607609433502357426253946525722853033404392989398370350130993482918339262487063524683507061782355620536023739268848320483540352526226240554825018607301487397206651909440563336179202904431910416836687301962480773339700161112780364170958738023688734897206666798894676009757517360507348788985592842597625037512682625132287177206163242762034602351054609045236830815461693053838446121945906164265966190502515268947148251034734618282288439294864817180415312504936484397251026649851651919942144084324581188030365666488236505329935780036723453731688395273637382721705710397168578779124503685277411872190928963061242592565436657453347370080028583621844340180935464676823082094785881648521711859426363312116890612252707213844410774294561948465629713532355717283345864092474005710164755392067377494404190518391572009278413884316018096405225143656525734477306098206996485964659042388862463092653493878643429463451566764472948304412257027058704206959716215852342723707000273587885260025574292893328404290374167912734483562551500268912060115344266211497161420936762108481170216397950403964638280743756435918544947673515960939210586434336936896935096874877517585401942118165892997271627939921864696099486198196373766599263226497527082246682505614223369384620941226809487352288827333238340044111107092672120973936519698822747993177296640436680944769690050287245639186046089182189404434634769373944968159774533033298734517900105501125863628995705176190480271355108540916878571470024883198157634770150826162412731670864850251827044666148559024404230310112208224357677154852309914061564249807471439225645452573632971320672364044035642602192966155031004786141928928312289123376072005070104281729152231456659287179071750848320400465227629409726490941497637145105513906767445081238479983748464895726833124664484371166271008259379795092396382131389778202743961165576920601024501861182145668316717598146242742140726232784346329934428969340929902287343056983164146043702502860368415989173173729598929885979848007374760817197582284288658989612212152312566928437291443477503129636864371993423867211751904634483070060827104276968794982472247824436983810221749977641002522308423933491908481473185812588229875797409788007190820610577262431025135739071562777045484526260880379461013101244825408619014600918683493568502497660438209314050785509993642877461629013197068328279708787671900547201697183881610134227458841190457765355205144477997786127470631890310460340076952311415287568904452331799527465602860935912654365129254333874081663394657112802597046834104745783245680970451481111929679062116403708145463714485191586034921982940801245149548935803016309453496751493008981783476603158114932209664198580258119742185394553540711860577745270057099069927477812334940409885240165054934126829681436885613053320284357624068572772626301319398654044559379148656816659578533659390916717382125348178698680199930474013369864685747861246837548600632083986854304636726039565137918142722825711584822078144858508537848147707871471178556398699192175693851206494962079069969623637261026233649491820913718808405062202965552604662597608305925753528304663061198361483199991472364968743728871753261973508116395046292078194947880663744232990772838252080199064243914430623166711957151680837804321193306331985327199587990914287925786975628445152085719964297260885067583413347420411075555580189075582291447811091646561374645250111714614221928446843024108789796579448345673631062097125829774807320212975404812239760636227905344734231213363745027278931040144010085779727863970973594296185241181844617854442380475473435056361473770199435849409576562421986703155987042586111185995422833802096105198351010542180305405660603115648729140777981467694302381335909896926364879703707444333570380784416595026986024560585026678450730901632928414843989161783854585793379767026052625999549528358230351414895287470916439625708058714093169913665218160788284684447998347901317622983399753789762963586629559092345171836168767292652965996310882151582244822639942712055579613231192442769248121488606136151350611822530613591142377376718701020920890944307060458568751922083605860086310870207205020200660553914711179097940545991001302380866182941606774440805021680505540364464043039108389399744481146533421532676327798568337133546423310301532260679500530983396216548412557541250896436947820173725111537417540651315310819102449109277916158785073930918234633840227713628213447535375654908932766218097283329690186107408558142200419455627387562338147107701667570221941226835098021265571230618595107111071353389481239873645575671103957504538315982844912406338031058199789186126705776532413812092514913642214265522097672366959255479858121855047204816163867190800481188857395293988662484433237856628484319375968668629005026026185235816342857753678782120842682480072200377419121553871618594634074779788100108249165841136652960320221589155611193845166866285167856954190087954563874257801271920120573911859811481395841659349831588265640811122931057307767988786947197195856818901192083829189493757641317690289570386761244485978791130182066966561280696390976792969611156392819955672710971860710851017470871618709117905809325346742279743494514417518888383105679748698025961831053762690266712684577629050442341049408382629718936530525340695013439296623117922287534199901039112650446533895722211950560121083402177153390570543909171625639719990331738884250992253988006194609295286477485090239099033247007775781890566381792162174824340566778592083474670231173635385572974214468051673798517312883598220374404646822645379395388491769966796107712613967810135058959136785977736134487666839356882138427595580029802961986415512406519252049168510302102493531904867231113973778180999330971770776613410063148904198099925022276568141712097902934551351684835709839673678062619964063598948699065076250944634320463617936118067066570161935073652363762483818769877854682294001344571799650258911816451042152663580071470879317345043293115602070789164619643729027166383565870377197362171479403459197483641785806563347749472848858800206940900067454330470338775109162627550117327153704439463049681507654358306475773458923501227440151632825482036165460398149549314474456649432664389265994054363007062576388714406307674427357268973012852261957121052384529927472815853078148945309038985405740625753696557145055664880246813536415082455613759917440340486756636545518234712857079830478073301678804249603494580150373752655463107371487104532212478488058333577384973151183029674268691624272595407722321790793777209150817150964173233497635198632794379856893437455979415523368958736799769422097596366559732994934160620758286278475402366789900500884528631728432179478671703577655793301838049760229670320655232591117361751155641666585053360587634398750533037460959999299200771208442973156684695423258021181899746309297411529290899358278958507146088063432410598921865949237647401173254053318064075340600997469546761265012229231025627412614180438257041230673439323465415364568115543882140171016633327452361561361818483572670509711063693730871605342983371843468046452228528683954688193046323052097729971879302808374658840460850231560694219121475158002063664854633278770188686509026747833375231773944512725262632029196261950088586172458496851027449171102396047078462878316225606271424994667685254902052519810540037036864837200618830648027323980090822931071482969153006688653528429003786192699412120517822587286634312975543800857615925811428870337243528766845205434582971361048576007798393135152924226386641262528360409788866949640662002973645185878525864751074660943187767914432614034183856030058562278543857279601052715121896261893255577294581080359063501038168957751410908555163356235165669390940239508045016056375910965171146002930926331167608137966170730377169121577377916693448730774895769563397388267731477300008068184254446815848518359764566945008932598030096414700706469740150834728679516467748093943241298033156538991849768349423202832556960795584487848489513933047189309160177252495644628274607097712498294509728867640098152497046757874503086694641091737847071711612256666315692138774761813065431159290852144062943692825223878599528994875115825435844457168233799132962553903582921062529224838035438053632724675271070106000501179820808389823450067584031884061070213651394270749748093987082520542947719525615884097847259474029154143919674197673157004668143948643109434524004126558226921015080031600297390256775535281800558829730371860625417589828095301803169778655842519291163461225028760871690189232628105294526576504108403455163910261178847515490591763769130235225660418545624836744960168081607489650588541967111083996254779829033456192939394505011550779924633895597833792824537154400226808534562309725781261002057405641241443587848331226818068183130258957684958740389538479970613785024173555447042594881835301802308633039331771307641512231130709891678553962314559047892941533862547322441338823789471618154327833356782075959377528555116607177509183770297792773379646622806563668701933619163457631832142934157469780627873005445152330531631258539505899683080000278790663411516330769322751880874497940322530015363712468882827490851029334783361944277576078652330357823871424049614477803307312094368511819897566759950005167261093887417484345190675101216039242060321734776047225399901349840126029046873129195793251980285652862426767847996070091222659298395580768966796465543913905320899827847266474066539534093557624056381955411903932711702302316952854268627517250362820227184492472228199081603336174019237661909215357627768449136234434949929842812396597935287984988301646889131701466993712325018128134865520458827459318347986109430925148433633958270650213664145051731227051715915378412080067258736274036506930657046009775417835331695909917326976937666021678280888898342745886899189263590222234982050301003696227893524992433430186632601532669261732366661576484409232586387810978124820392676943248440783302201806177552936066986535607582246376200824183737630967536126300204082531443533669163547644487687789999091753912155755827383779934099003126906168508237508150254519166648977604503695638209277949465631946337763965554871895417464945782945487618994057664418301092499569900028994907048794818543324715001508933507756736791483523630953037765615983952465361520875083155955868168719362279116171576189117494246045657734743190649653601202119441467091649331423080668234305247835977570478358907606025589656843274412318203424413508854132906193460784868726319723994624433793615544567764596570591695199275039015566273540099457516266841898319336474373258076054822711133153019014990872104300416033329461304055372073546103103193248251309079413114397348968793647131472440059629643039894378832202450932957624937037799167425491858154423146858556085806149184928050479649640431968580569607124040075771730547238373101896412204073534772016208441746926512997569193098959741605759143091361232681558036303828120820211098009368739040776530024592697012459545501301113840239499685128207657307151988825839766329105826230646271272558887723707423764341696113716434051297540623317212511159817550367508892715601758512795374778623457852115727223878917146417195291622450980618835453275312662667518854007566988941007840652995262297780108779791511941377701167190993079015996080875920872167674237206693828294690306917863500979826152549982449616214021730758265395811839489991913274760238066081938224467347598613157300281830262067176175773060081965512439415718024129197317510126877384524173455814828359521159450228568991076804315305308319470166899419137784049132786253501366083002772850829066321827625164875036929762266698212667448528084918773181624470061130310410895072158921307893807884668169993133240820809848264941901511729266586233405669915575833890369813006805236415636626284390536247963050352112394643616395809019872480753051605183077830324045338793684820696524320911401096548498184200640880922528578071660040616806650220408183818935008482027693988667960075074458916768534482459652675470761094418464663925724932298796075104224168563972110554506104307888582027909731728827262471938591801475797114963317956539855143202205845941807746560310214677243012402573948908805824528895777724575271701356775033718647540832513470023827404881566122529507611065942960677351003037156248785479444444962519962073161996736759626385724932470761776914018979820347502215805749828322690923062860003447288566722140712662097113599776985574903946201505575531689568530683879778188117203489389818164108066308682488584933191674838917739406833526118786507283599814334866513239354233779400479894538436112783182300570561104573440629403552548794171528564038176315271661666921138725234622790457305367257867428881054133245393372942907097707166628362482653774428996271906365544872697465369629113883837287185501066997304450777656114992911684917006005625543818186995219341020550344306071884161013711878964774637650755896469336946250581302471178032231345256918638338027890331588675579869275966284919261922183979243323444099350407566342618552871144521842266710492040249587326735958910040812747453437211714419141675330971654420034925989984441688701748206587581399124038207875336758074214894529803192337705444156101445102866609109719181424702830700655340803455552165664290557725763137007095017472463134492937787436877621035263736777235358097652108019899065327002508971938675796166306666596117668168189953703517058789154081126682436405445896674820455222766751638884178126205120609135092109169386306915882622989520286517052347190828614443228430750403027323611231063590626049840212705512695163953610863866000237393302783923141952482839942307965250034495636292609245548172972133181953109134770261502725559684197934338671645053610921750032553911343815352316143517093653787480464827602364122406377794288948950697238608779931445380669859586551058775404085009158496308424257984492554543936610770029639661928522767768373542471060460943481919594659197898733333833239185649110497826418790056992751749095474044896702419406906726289832357486216750677168001694884313736075881338306821320254540725130540790364665123964682971021063262079256044994771851345000638545124979722670868574944039855405369233666473785671266443295899842695168423543043462180985885108144016056022269682346027548117512597596530359205330729599475371940216608437523689745588246375852595903978781480100796512992968786841098101276490988138886315613575582710249096487715629038855300896703753861325837010717479428446273185348320382319713281319118465961557178769431594340416853900146785329318797823385926257334793122593148770831097466959620283261579895134146033648884484287205285875445375895237996308322365706922987260376978855882099892686692989413648444773222727073260249337796593156759525076799548326341275189055225012030418745910858254220702241154367685620738694015774664334281152485994214606756554436206811218772894496878159141589210547284046626439221359279469713708258509238729819899215779889202287429754278934818071317939512789785559244959594084494381445269280564629539552762469928173356223013580811376970221634313360017188419114818526239637389903702435214437903821661936593058885008346056213266336340143541741749021782581548677620434336018929223703752801608262967749641008310551113436998462723659727932476633642323451379776956932434491203434373700062379271029399332923534308280700835275952253509701307347880780338445190070090806194882007913754828962192692696628435151568361305413795243174721830381631520224666826139414134243036847994891676036200090526136622089681725871785660439057007520636108222424243540184960989499446213186447106454173063701377888033351627473427784795914197874219329454069451970059818333638507158807342452253158677452382589727064919154831086575418288364875906618456980827898536913612093991532313469493857902748932864220164127957579905811125259516244531459233229164822451189995163747033203359578947365532054068809362690954118415477090845560721897696632343082095573129201535590988133885738757008579997948886691240399255249517257757524223399680419524037067571407292866386358589290160903139670158097882053967862710941729305829014102637501215224324455061198549189966667046932477554017784456403347264538429804786506196718313377686123454972410497112214889999847331854921904618147858984733638807079345200635377398679016164487382842709867673052269563544468880055857989794874427204188556905085354087060782007742421502320251135137514562319633939545547630461567060498365383379597446100515823504342464167390126975161652589009786610668793042340062301342191975291719954070731582600232840684509872256248040352130932644930298978645392822520262635400292019251393176792313837248916038470171006360005384782570563811238464995664144385071434934764651233753714060420045019537654655326120095300800560623992253712673479059206745438672021756816455995775629671331963136656237521492436270447751438564095108512107340824182369682340525409422211648528560654893678262212127317833295848572570327380153113527023885808023282964038549505527227518437836144222378207048538778784618659400004775105259893762327730529828658609560834976869473403931555239875535118154755725581804422835462430077671284344118036944522743299101807784539366214048518735196841294444046106032923035515291985882672609877914640877365400510469344712189950302874594397290742124745784604466822486926880459774664027652604650148989028753589830360073689937679719330940363249497752260452064695784255315223766264736717274358647098247789666589460113158064036624311412989321104639843631189230825774014663823156561658052044705187048246007645938863090701531372636840441852623336275554677056947856292956217658956193480857972846506055967056907733587023735176624578595118055436704944887316527105666992144204859298138893026064562492859204901925649431281719241601798047864552601202945741063079720836255487835185611619453683998430990501757229014423768911507203927032562252687811516026725242935320713953598705633863765782064103917230981180321062681771439384144690175253992054265032838583394137469601005380034673828496686645076189354057532746531692715910717378057443911795831756385776531506939584738292172279242355784428839881423424214494405955649976952074332512792975570837575612211960950974395235711159241133174498167252616350820513335837348189709365238634136509065519839451515369082570526460395795197469705106722320025761481053378733764958978770553956843278946981983013745354096518762477610640372944441226412233720323779121846757648849781797684814928125076576268233542403720662549267133768221297276124206966502072131655289243630736095745098514707631299328650508121069206110973700918913627992553684518476926794842104630807613173994064296092995975044364820467264957573383905921569138143331757161216455477045620992013632080666327686022007357023527389765992240961931940441812120905675761194260013572700334316757259454301711269955688618034240917895350788470125862132408085971988643358134070636221474581180119270672705789691834265429136047719032725204893511154908912747940282553850646950821358692781308530365625378414674190984564315887771549831092571309005819851596830651885640436735887452274737024942300091498516958802387558849172086208648590613944273669802623409643668173043733161761763490625267689088525492651757701484094198793238675751526318693135723001160869339473797540234768539615142068309459865558603426563562442925734618119264303412624803360197586184134888153825055768274318998685815456666693738767280769886633109452272059227553282001451946558030976500468428244118557772388338978100783509789858296249795233304524512792911140011593680637039815347668020557124288266322657850620266245130028861171239751020535884972529108454599628843749110340278757270175853853672803277891021159707744629506924281857355256530720393151584494787991657771790514205256402274174748391138261696215840443456671278566738020185012627510032691512589502848603326334514617973225315765217199658186838332481269227972690599768366856134739226393113560938789659764378637489463763248003657603898801249703427886801284002410188339261400672924194961832572868801747447625412007043180012325706841147298886438801767042011562582172305073573398106713430650791005810175708712212688137045485260321699220755857001874745343580088083836139773320839952528853539624724535007153998191628914118014890513549841390690753472628613946395252366046249212935853269036498992015354911551370209434066228753924390961283692781868140984019687442307264477002408785270386338788312649296077683372491628727295684519816330167503822036557869954053918882153934458989617155578778060298201452179849670162932023826811617189463898079772747949911983887776011192945057312137435339133559350054398012828934086793019045357938470941673720215426138124548087592774271514934981013985617377681722509823259569833972798609526255487471391308770708388364766468248697699718260775873602889026791125515946495612181450350375326810120328733494153181303425392342672676641840680574221775482743843548077753512963000269536797301783064792323148266116953336768844084180392338785887098618895636184477722068780643964707505990778418203821453170923146842413702333230093847625910375668917656999688273237025025352910634318504336198593010987021676805516757897362252165909770904393028676434456865003949066723925543122941014946171143868376154907657316821789474298454338856634858718086285997128843678577688189504715175567263167894938648347367518437217062640183095104129117123084973708723370363635104097493387589138899182960730657959240898280450574801517216242289585019022730166525595862952411128005660926734509724147932123105821835750482413839397281750929266594673570728236156442092094448557499053282909586337199146813172759220600405810929302287312303371589093675229775156371903123833341763710030971642349504124202523880544554385394715810185299678140708455874222717837458169292165597659763517251266031884308227157398322724333894973725446544125696777139619921715163922122438965532915003545599468665615919577647218671258881771415064421578942458872164388116075481685329413431865970055589969298554720403060871390213393569012769820020157093375524343137628784262150382057680841769601215053819973951974511111453876117693906334113068120376844537881581164430529361075026113992795361427123143888700438601794886941826974331363257339616657167439154833948311753367971565865414189213795244707259615225999079552879278158205882761159430531637447035410449935074536517646603200422125273545373227285851455889779783755495457260448436459477764007379602938351019067493281818293787639565105145451322303978101304608997907287424064211959651578611391262275966129508681726314115766282041592642483982069316069103605169622059909221969056178084808818467777902279619242221461844049984698841292619752895681553880552570143548768322599900679907251313465137283914168140220574404872490220885435101793727409265045666338242161525110355261006601862207971899828034479482415650249234831768600749031131597430403534954833284237807801135224421836708725327564874912061030323993842957784113840046858742084729869206685487093558214837846704788153516222121898984637814843217225213514594061976266533541608590380541010103095061959041450421447458393477280741249656753003438355687184809804384033478006062846745194989083035448431094206697596689192578211735678111571232223240351277653927343362750694188894874543959789414941287069812502129095570058511272727194420194956946082688870283934482434474167707180765030002753017299046902033476488281134716887199177964905491691388104999844553394998105594800238390942484751010801650945291683783334807528266942855467662319411635993852120249192817585006407226112031202288756851340579873535253184312952086956557465316811787582166532940845543012420116631340639130281382006488971194397896446139480229696646753714989423861972736151414500593806060579712867549675717468844279970165842399963600928801704026963347239310375414601871069458758634420192880868570832664836191627525999367692055499578221573154510159486245515492025986633039539211760286817025425918303055896369981779258021306795774992260023576479390078452111941190868353197447285304111240274914849532768381993483060458902739748388697714311335344690601596295042454954503933540938113796410602310399278878198748682273250284097587955653313752920593641095185267041743087493417473438128042205438001430786886191640585252836953325481926069625355847964229875056228817429225929855413937529728867903378769023063362922707654828070098603579984806383867828918024934783869638905887360271756437695246248380486984507639287067284405162110673219782498691878067251370837202377647308037674826323080024420567224376962370787287813248118173361127811458141621307413656775157916016710101495189923734068334455999322902991679105253336723899261725109579141682793279108889408140531095656720458958521214618522903873107101321227522027283998004637037875068159710618697993949849211259698523125565578688200878247830363756667567679229851453224772601362061947359841854532607568557051064118258916379735568351085215679558256837136241531413937311494482532171547409586823085855069823375183920029335747368136429641066201645742688059839054694159921802250812762284762932371979803026030332902346078384289431342094143218907831741834109536836805870720234468762869539479226771168834358881767588484490473163266217706263626896564580825078358163086053826839649255135499689022058065684181211027623916908689573269881403224243872117011332147833933898095469885201797547745419147939423403312101826205267778493022007063954797027634356396681575434071552574228283824235309998438417068018866250607427194971598351088247988632507225355683757521607010505600216659933616217138473689432580120463850189874930696133105836228421815619293435543539667093147635511107960588364732222909230464576949291552023592310980026567949623478498503222231675510666203757133102231263460106397655531860599620688674620270023430443550742691138546809081059767041740982317073178270025647070632057268389639451117783061014339616135710902424692119099783911736212035193995188786607906970917072763526899501385575130269137469278336359456232757983932667260314131250281351363420105774560992929175749248897298798259797371563393906460225573159711594529094374227243256664691387986511511265976294975034882309900366849509832264252381100205909308483019551330348630676898336678393087616669103250816866900523114261065014052603025131778839192158262104418658633227324912457583676619377779367243280543571936722537889959636597119542079906323402427343910683568369623594264369432268840862584388268728353111123710100222520110292889741420976299554518293976212868110847611534514613003082630162605679293820144356618913167859815960817889416221038415111491953440672472171900810790140351909217795839514906844992041546439623394338917367415656103523009672412566938367589399599385609983246668700452003559011744842885794313336546958828265172787389938341526769131099769450025198942018198477768932625882128282929269669945000639856023706495455790430028652370340944789933222670687807387342481402328864348353318923291797753487079816666964311534712328273761149028955800112808801117756464872081345716890177488972750240258889179702019988905231049736441444258585044231455749522066977715459305768888221165979740746756244532266828259836674364398075654028484573543201705428124759634611624412783924935504063312095663760806838475762982775753065359825618520174918129057028720279739188581671547626202433730910280931449330752985364641583917746798404220538387059886748926533464618958400278370540194955369716219907920724682430267430178089758424111852801734738649313642038269470364800228317749613775890488638012245762509281070340841064743254241462480769503399855657416283770622309890636273466050297416710343982127853116961575818942494684746703093070262306235149283967043323354599560048070118742763945366325025206617846497769609995873496918982971208194089966144911596522659976306370924062956179623994386172114680332548919014776121881425016800365063516978253800379594976691280551683364520769089738035684740152937295568762517622957050940047291259151775025336837569889913785517245426477097840841718566607844609600370929022909311615127713934376920065993902921642079225388645303144190187381551641954185489416127926564700260906706811147851587124580680045478381667475504122059966393772144837293841442536269467024519699419940586667396752333894501223076603657100794681491502846206073965334332125572324578076700076362966942828738604508909636610854344043412253491128395040855173780560626954847709908016217059831946269810048166688105820700188782623484558716261331706551298179157926419558073545572905841009101353289569917417196333630487335405724171180697977053697795697386233948962144781006373214290946113350021422311906968921054869023867565078685724313613193481163336791136101995756856443452804859692641512281023401206286899352538034887700306863562695607355944602956758722196809244881492735149414440981046544469180365904186714304268026684634502987535148037309923084377964020294247528472330221944733930550712623050454284559020408353604700180905773197789639035483574998174216076116164843977123363551989127427019007923296795491688469043404037935756346005948442405202503182255684934681329566416305016069226017228965618709397835208971764028678229398596247403034131250461645628863791310760899930009562999879172079242303890966026648265159731351751623534040562672777983657106573307353115852033358055052251065558691396893395512950797735452024086096742156403697219440730349496241786804260518229389678627788883695423929996488842174377145819502260868641269403121739485737006411119881710510453290453467955196827956489122103520371025790363960905131977605287807189639310326503830758980976792558869003235422149843101366683808003366745304093491060297133743290821068858815045493581574096167409780349986332294141007416389322864793391182864998216314724316525941660363183158967877696746798071353641980035142065130049063354906317461815799018390452589383156392830374246584099016866043248523122235874604422233407760048105976433892702270904268233658662206364289424508361751658084635121145591370062130748224633604077735541320106523323769749362617621365018538226774963467833997273017556407410368567957661666271334537131716959506126927842607317410380733180215730700930715356273103750065485346987450791351498435289097840326403695866362515226908990070709887682226196697471440474631266262749581251081561676722120728590490286188895250377029945399343622013723722018787588077959607952998309588739059495537104939389611691050198403147931436307702532645032960419380865609834711884501134389994372304247322108330056756151120381395106818021462948263699500558764038584947162709411321606929966803339232456430930511263088698290834141491063572879706023360046176033757185052689899637131386583428577108153803871117004817341086013433625216912614883635518471878451710695341134988772660016426269743822935283145165899320608981905366204691733105910155215169575497821709117585435790223291931597504174259967823483452580367222173884625728021950251850349420538555504817129108246550494123484486682988804726003183917249855520509976105967880965470944716111155875733052937587849376714864129219185048738837769373960791410745784838595487876685644255774614437935569519894679002047712518926471147411510785184418379992771888321311196023880725086707100745449033720587383558403680395049940821715335615897006980149836903916514166455982345172513151651187138120726134178765621279959191031550747210807043064702249002616660738673543387899885857566359763063865167677936974176412736468961922729237769820804766226907629100993472679592196672121388320005743440765332101204186341031116887140269106106999083170140392778909166631384147941434562003114838374477903647782466674079715200907704457141149276596642904925461889579610299503233198703059975222974674696463255177792589524048786346311094861115953706303967266086963431460449912252605651295398049713317211669939765192246052811279644477973142912554925476721521207105651241103156057350563092091613941054450595146918030688836622836115914024539945772346651279894984070402865550209677937952778861822233572280635094917071647327654335693867731847425415910735293437194541236617674653114753242268993930871672891040675192207670504897354208971658670286391777957619486206386591347690780972465152810249613553126638330566680443202222154124613432282997226938679855894505554573124727758516238477982154061061628760469835708226114527623012765023870304660957681396841041346090429858409765587423983154865550911027556518804167517261754547177418252248573380956327439256927391826469462638548737224332038927729227142282692248504226256128789559032073830232197552971761901185196601702725105845611634232782548087004877989821110413852071070635593798837958658984425674163653514699360059956999805946669016213380849494429264179412378495803994514626205145269587173081615435135524890604064666328557009142569029338455782423790773677601932240112024186126446828594593736563152921710353869887053117889221806747717039973748802202349188080020959201975813019266961109569931246628071417875439204247452731693431425334753169224738364065181182730808062143022099702522085497047615407090894687018108414582269246398248166355622105396348423165084818970786219003987616235552182709411565266721397541849536834596720580145018222986544540185186315489590445432111120731383784263380213238324975302650744344471118050792724774539338536905672493468816235472866646379403976996083703381647811039028358331164495903366759750838597173076772460164520282629432288419659407952935802269927705271500917287675363338449919077857365456708290563997160253179978441788475030801439568546448477111847481882793165821132990265692738523222414695189733390287957527997814715535402768001522932127843695363513993161344611669525872751422768600250073658805487153943113353844894191986376162925029106328902331969279757227391021960753842258772953690911089312748775019909676469247231911366060898965627045428136898676117928685298795236350874665125849938013573340218366321441143892933396036669208543567418107279652963998737474317729929420346053929024763999372729753747294006678148777066281730291139495038567698437832059074980618838153539360381629587278150650836374766945155638090779420199449852210776406276657202441273473550713690126117388005610663080391008015882812124246319442732480144887263067551995518347619575512293041192383632715836160932963855766807303795867803088145786376658967109307174019225131492641294510653002760578878006920914571514844558933693306917498104617267281661541336392307543978309090079011212017619360959756740450427685416531008675589949539162994411106714143315246676443720145921281383678074918852862731206901283753686509071880910743102075185390969148517767037000177062228126595479115052892219581941345790486996904420235288301276257469887646639148275107055646742165534913827093779371501816322065914667312822140660837510561306377761952573244068921250436269553088153339491687857242192476293769150607497006151368981347688448458193310189146563568743965205727091748129238135806894147225214947076842663459796216486391303503464350619393495005119224621349192869943297498539563247687698799576096863823939696880061777748616358864880175179956011825618332647978152766842672285363067741349335848934616748289060895279029160691685204751057894254905008841503914070403945147407817037215668755597003110576284578782452685211564768484252301785225381833960211997917486310428836923104829954424411730679665276563465259069173367229791209215201995515455364122015819055402160305131798996545133872798789716319647703957112994361365941840859054447507853991884527224218995238614127726773447810211018954184861245904892600779792703055944650946978442613199474285056493159072582926624340130385418368182457059710459465620766942054265210856856090195720100443642754055942961184533151770642282104772307148559897713076228166513344962862970256027459344611407228110147493513430089036461387446533841967345991213607173818412436168631280285604986362203211633365409647501388024147492248254507233675631264952593440643268118297174115749835084596641920597087382604270259001649285611924155557383167396143072101460096731573199897773254881198778829289420239149510994226733925769152459169181179771626110415249284136322301593020846711064359263221424666130760165980757403025410808270230486831779394525433524090888544056801688746206047568519760712919513363409061681573423675164647406571959559544112122883055442294810330769711501534820288589745046747263689316399486551178949417344941930541596002877970683746240305378771205691842709139874752256791884412740849540030476731762778844117241861359105473252160220413889654833193907702332191716813305586600853180626387752530527131705456736975520718792297998843523002235070015749904542084137753992358670432730803565333484525027650705456495004470863939861649705561820105285711956289472510053096360127044465825473160635854449588650992331541669196054356142562980574697350653715243224904931124400583709547131508215065335903371470081975321825078905087516540506381252861043963389437704056053802137721084138770109807256135287843461646627468315921822586058492127846777606760271649923316495238284333192127362828785894012468272859092195793281071077893172552253896365800095173982272862244779986682960885950345804337546954426089214780598489579110154226060621692447948467930153333781919222247004104395732081682409843654811285184991601639175128894751300922222184331788421994321852633968634037479028334921057674652760875467457707775392575704456299405600048900441246669860116320824868977701023164462944954453135126307785035046844780106632075329243862915033031698885033099218796361604077808247091218712680197688361054078720411179761131836832876629946987068550202830830968058742054457916324110928211319277441103731845937144938904570653516488075611580934369780408676713473653993956021373358920223710892856983203994668441272429388008013602337424805974426739743938609778117899211056629750778533546321674194789155966091115160144143376587609618311666703139726448781310042755830000100197942869724244313085380333693100052707131672739949344491857531255196779593664027676187635765368791901319024628645131072257126209099925443305091732641341813290390792118851459470656178072793725971476371541405905912827907630135077083283108063728483343839317368039989773601642153663274449030207328504438407606110541406909675917376224374275108974391888668769489246229131658757819775621741593879790075533051267854887016769322190046506613526854206395804892522959137317033737822224368317340790631352873442152816416218566458818964450576670924398246625907557099776247824518802875255173855585072845032047363042010040198334412581125981025372706559916622136720393877162529954829585470772800640087696728855780339962270768149898015967176000106515474844176944119759399561525808775726226983240823398606817942681162889460134241574567345774568976557904543660766269082086362942923043230044793256519037285650465933779859831731260082409280304094468370698593860819388859426324174945952172395671734898837373276800299464942474540791208921981423103725471276692444920908381216989823742875720511589831257970731346770881903797656377408011235153913655743553129196497637813239228666374555680007983772960916884325690884913352133400732110296981907965227841073025149635076315724484925478117530111972658316350820508827331901321846016837362833792507208599119690073622730378765307036362858088929229533913934091026933736083805723777772283245797007777232023315937864508652583848323649087511731152443165683895832985420753559267174727936990863528984809805818552131894604450156557209467366988061483973714529431193389698356419108572355332146703090767038253293636839464010121992737423478577252394477452668739425297497215080262431043759078043618223677720098327456776620159262320942261046519301082135968005492254160793891550329486688614426732497882147719443554012048432014006357896534656437276426631416716268197219280024081789750392522691534658602529307154677721685885559592798365320602963828898297037725468661918771979650360666280249091750456771520833985842657103907401252488863253032679121474819066414512217604540384352683717030733291151888296588156685093833684490097879662737370554447173208739964384779956077326149160533807949257806385613031762259019836801937879278728337015567106455350564591908581561370117613595337733946216518966992083333386494816343718186283764646641670548557091708480036984195072501741918927190783884013655063256032890579722916308440894308302664843795043171832422404365787615560393586999086659348850071489385922537718197295017220082507433100697768099022134470436185589665754681288704728131063737167228768501286643455567884139155521844133336257830150870913125554684522775310388558317989189372139670015319491788442965873637732573472183832218588607441187448495644655536088531579256470108842504964172895218743515825161139749059528838672583800061290690840767264910676525543260898236483244503953558335369294415304034107569658483743860710998165199324958286926559900296775015559870788168348652380801519972841415080961874806165245080496987868466347025249449393934941227500629739818962281825039893887182682419176987305207861091172701331897713551474489886386644674661218727319565473266552305238464636543425411238933416164597868381473777863474477884820719301573451305611803025825939360238277895014775384565433360350612479818440183801203893695179301399224041064325498223176034397181900481937984340287942079266367535141217270934188752859312990696504061614259189223017124333881954403319165559816936122734539254302167778416055529677565963814730161571006912757960719672295365558181066373908116524770651904538897725940869911570592249927523385624757849836999816475319980195181531898510674516424830019771790413116946162658887564831388223531867538912850652630146466019243873169528353512561070115122784198639824446631995692749783767508800985850901486151434930860668484865867072445630963540751861787329302246105400365414544251642839774618681756600487510739954864618765116472326787369719354641278492834357575609693366519295333439850940287997955762411018539390057572632557598788075508059957815441574591756372372857268594625352266843422744669914726770196172221835326573581626443998557585725960900568772037682199133922471970341836902651839168990049268143595693868342718425932329653688717700578294922510300419660697047407357792957929717343525839268219928286094828781860698310312178756666690263410931445434806038129009862593010263361920678166514954050269704662355160948322744705020501720734289524093000167337253935625688813474043475348362724444877566182950974907191300802836114683781238077908960802335091181092824865689851634534721492184726070334309360525146599882950467003673879873797873519474233106142698372177799977161429221643745650138380284087809703422758198993569255826221850075880129900473594723161490243380543701872375045769213972942580302660439606055688440467189961020812721656508350087946497777301529508581308694046036429208284474593046348686470236313872359713898184798086038537575937680752051814680123418200502234665960550099893694504486306503640840557548149148438315974943551437028802954209343904870160772122857391492030643377777548857040132545528523624663351708261085949437055675598889862516223376226749164310931005434647338647860368220703077709147373609238944011833357632100369472642888767363444564173522500607458009858292784416817543857318459663968506452542804747407644402025265982321158894216925832609438035425692312502307417212779557877442883548297845419341417187443031784876727273601048464820793297335909188084797103413492733524646830961049388370538159203147391728717003108107830161756242849677818335171042863498589298963717799152600080814688537093292952565352437575609808806577601062938794767610187324753143814830931003888755283801931002422894965194509051234300497461119046955125755544874096136392338122993089507009169887120863515559743312658079906357824487070987450531604693680246740754612760576799193922609045419594299076653811470762756349107771725274843385021545389592833834660162215140715276857480779703887300786923751957257639879783414961657785351653082567120367357208627386899956389453079773941178211637281472819411311437723970465013153742607092949319630536636268028265473629609052062355576961087902418616881897312296128366501347004225382483583016941611979558949876702149477921352626078949291233360541963983177731851027828056903071862796898983536754742131366197887565356471246147330310459507354098243997543529210277549037933086598052261563292174800899380029116066716446756198836727811596525861899525477073282552100610242003361805157911411260374202081368956589148172702872165407757029386422976683092553268482633162525401389272389986956835708053533292511939577874195127964415456225876411607781759351767088675703485912987203607357245275806922669226268768564464774725918263753489529947512426285524348291225934792903657086371575593852045369323710014775486533391401322729066515479852400612881375603852525312530696564287048378899460631741703169898157427504815180596081123821822205035344843843274435038343692602594695351871736114868846360644386883897688497932046533353355247203023690869261413072545830768889804987416926522655053329279485733644240060658156288368150390822228079321049935732266190129432024871192692848568379620829301131318565517385262809845806525674956839176634684390753098751075491860312727690945220441362182579333560796794652796998919875087011265369932823813048057450094468814502293027722741596821801154755330690029773164287442050811180150076598475162927644601819736413959532773866287438681192902263336004334084652229917938681577638319258831743005144808195838389340620863506878215905001826122427088861248353177301461154677157279832046735868991940778175755038642688408077186302174975519747804845903086162986761146381495791025527461943072537038042130089171064243704815229297437618135012654155323547512946484584994488988354655936054233621362834510750277809116894487105134426383636495332160473183123473065753301149095974055158898961917784898225100710269428077396574352065502685391365581474464422288879451922378306288066299084331751963969554248094433616606425875303359351470354810460243716549544950741679811183975920588247378714808313700648373003877475798736467711004214320975075811888122008583000007736811223162531505835996427328177976705368823338786457758780931977752954549690636463875698174718785924820976607624421875133325989032043925027832879994950711001369229199151689032347660742420241460011329154846554844214570890406388586308025032565901769727534894302051776015586978061029428243990300789226409143903435162638912957980818275089447021352167669122491824672209595565200527277021575452587059479411549643547263776798833355605191285268655838121191362295231161899585441891910525623778765376375573932191915159140873447235029371995350790590962758071386588286948015584222683083207660794483145143913236039749164840996779594453470027159119414246904113836853061421609603925937352039433727941722274065573696443979509222753068311288463698654384629604327923273523544436008978934617395880176804010465778336081841199357271200467866131572174017208979346904826485918590792605005951437291273771373253166286320103360217499399294530367602898585174521504772336541478171332685184345309580768792813319597023216300884188490775964029765084884735179226796749405310763057193134190482281417792904115338426554414929581819176517206693294467558191023807830481393123547898323318714523998194201377445761158920905065164931041985675364136002875356439406240482896333677366681778435450078130428685648939355629122261725516236449613892162717903698426242706670298144682828193115738945760159155627451431922167959664715200382911342340299143497767267098279439696700560643630701883757781333000781734835632267225406529815593307717609967774132885717107496969527438051872737855689452092198630527016346872349270467658018887229397724708687343413455714032636356373951736351938008185421845006245488073088812227175025863293393013467023649843497208907559642521125582644778478171305599632318541861505122884403734683688818728620610238998664808956791263040471079611001419407100841455447521307180821042073744586527596756611517532379775402235939660245131792025650575318403700956741434779026777967816465618042553589299941764314450737808335063985969446523492158504685689442838055043585881949411571794850988139702809108693820677988387297020798649080594569940707307133815869059770172606162722700201687268476821157252677565127640862168432883017089012226867401477676173879603498336731833284311921489830159626659160455089921676042424426400589897058545909205355844049272201087493044313710621215983801674807696266993654163214670874820970636789236927452440307578814925429976582811343058288235145173094359878128827075193876638468534890598589526825280430274804705925353714356314432844169695308352979405014617703152397273165498380383097503772175900158387305884344553023717625446082925847230875070001353911977721433204704074649018760402361464773413513553097950366531986503327616191532016756047916768532153713797336307153105097194428354215014081591317064688408634361319008311027997547078130846138815058990371847303801608708266272407358446974236705967478622776050434439927581496834461995884962687183559717316432803613417553135435089363312118127347155625709794214843604700390299113581791437395980156467889379126145103370555578142006420275327620600145289575939961180779671357697486924089519646100492720524789905411310195913151380494259304057158659656951743419887572044182196469705581775682641057844838464164430214399426114221790419882736501536615044464897724653076904162192361351326746280677414904785829165978926832730708728811888565081709780125545386357978261588085962348328143925371748293790299280769236202371244128408373023381469203089781045840838075486309001275498727110675228014218411942274781743557435180094364982836653792803329479942435707963480761788288189374010488494111589471695069080270550000940561030357008424554035864215737326850682753649180897301100167170123333041305329192179839817486398995701910306973641298901143262785889831680124272831362942092141268548667505818829965639354266837403120054048166855500425358760479613025408120141770841326275574698140388257786340781845495574059666382620328530230071111027074910161263352462641222838678896376583465447463167937994623948192716425748888669747764697397086601457983584942905954689640556641216318776805489031636993501083581471935072330057749816683274445021241335666361604970506194399159427629271828580763986803845947586392452899083428615969184534053480425857023128098623048948312464059024652525171662776063262700848474420532049241596630819629639872675242708052461801993406885868921263299121074277717626808540318785854965187924639050041892349001365419261625205627167596956009114115321299745055838120447378054199527505856942516522035751589037065971588440027795703744383904321481459967613056291628557813096587151998480236417182244480378542856836166812290652096948396850641980791412149747348763401592572023554531722965346172439778833323940650895683539938631275013836156715506147976649678260583354122795933105532354449465143036248689927277839253183150245148575204062024462567411296765636860542337845215320025246649212937643331208441534233338474626616701575397064213131836398184381199024777673679941354048136619527386004495784883418579418602324146556694831517388295594608079852912091622103365494046125218965004955377907115130788964282160158304283931344663997396638338019783975316109956471367118825153862252720693736808267967042137317926210653058006621428889538797256497619339458270668619097775540128517374878096067197675313321463954424903705689193111620125435649448379275548032291252326532154217748569182334843829028752037869274727208899069278993488870675898512805417706827198012145022355606207787434299736482134146005122264774128126362567497333913101577769370636125745950873395077906656136174887608410656187344109547640509799647409039897991686231430941048804923029415913116320363956390998203446714363047475718301488813241992107200897961508862712797620772079425659799802895038947529559701955601200978225180922297368342043513956378127820758917002459823624056413726151245101335391326720681482902557675638789832731421663526719477539779230296169463877802426174341010911056544514190528423636585996175540199965462096021648430833183021344276415151485686750840252083775319400588873425620048509943086562641348190090345731882211861823999549672796988695845205423705196826788578778713147732395340359483411377390071738804848205959732537019021495516381582324244104005474047982862924501957864767495884246050849991887052502854618960580383066429534643938859918376939537799174498241743301261732977425517636513876285078416547011574099163830699230852867945496688184754700224545340726948847467292785069181536904873509695484170057217214394210398128857475921397463531468599380042042256584344703776452499065643024357043378499450121243451071984668468974562764434811463780180106867773931027239682662510834878894266745464243348518737039091924433149741765142125922282204645789280006987627608532848623301082860877723880828349146330544314013474986333693063351262130218720098141551354408667179526132895336753774869735033573136098568581323979023371262514407918768958109539559922542984973895151355438563656361723531110624104366632496881286800590105812084730147640747002221979675565187810827991968212240652964478829264661502029994871446103248806832411569492013712875710602446926112261342197872511413788825266259829401168682099485969263373804176333234929874358414680195644945224393661972794079237711387889148404906285134187438613304200902519098873668443813176690599161400715307773088452706578046976399101891644885847777180053191658567848243896786504297376396569515403868862879210823014952210675396659339931141850006761577659649315801000765857074470905966666452576013322060063292516211631213144021515021458554727020577153113715164208329398381289958761526894335544414176839106631604984012771704244192399487441723596274231632764138741228983393954141028911659401348299782449392154372027819661295498327160670407441543288741871314703912874594739866441396176917038200134204934613822793839472180833440834161138297698539740213364488219795657123798655858369362937445318900633821128969638818969901628429957058328640200396297472938070230603526394910373212876399101781299317019852881837457989442838252479646723359194493529276521636292105130305700239647022643890367874508232199128224803485269538044408254507153584464384515997246944374719796770609658827280483213603517774953672305586836409502509173043792679339801695269409633940925735680806211644190881217638689151852024710693417083411918267963882609470695707548159811803869681389626373797171840349177030106148741966371940120784185688468385619613867598729751602351587758360277692001762106363461715180955231652797638590951864614713955895456445820107213327030992341899474168200158118445805532706970622966143678779009789823083694433560686145635796452668272005541704923773192777332530919348407399013470708955812450368520624705617430794991041444372846979909580989071182589859216512230438910727235104611691410236127518365613087629872053744249813756271896780092416252983543219248031570019261990668020759484848089328973836295700353832562438631303884825863861346746165213647839640217663884648256072309958135686560447600384012206274427323559184495639370786289497395635961947327489398468782650222951122909057785786005525327975272348750514589149202809893050529355128781228871279168285271935339780107596502348828668076848362161050435226188213823591904664798793002857208865157626827600751458120099957236239501581792343052173900408631461717649128547551429548176304867003944751075150859543229810375238839057094663197017451612026795567752197968154361330338152010976383980943506911029653922878158096130153271513642007237402792530730805215845239852855143489211777378799862809136530180089628074732720815644710769950122707703787390303669143475603486044810835213298405880911169393176099577239511733361218112259772472810351505774810626341164941292026727786198183110858963998438832935370702398478951124424627674140790214538965419855768280744285115332029717487298294180385603297422438976568534609433572999320647773993261775403169123614041005429703986706867305016796697759044899949641511945393941455051892077898920433279087841314612404746766340577703743540719051633891751165058266858370163707674369534085433852132113772171914455114181087276166660964448419963776612370991910959972572415920342512472107542702349941553132964571485643865834969597085601217768832269995493389982498745142604537966416653125290503601124083847447276097082930531496621345164308002984347101814132355075904624049984473421700232967834461562369761660621164488393229129330035534128899953431423618187699892160925217754715199861802636139089177885274719193194604628988843158072535575652962829197864395170760637468690670721478431860118201072046075937786982973145498153188669728392093243080150746513562549469125741503968647652160017480974057822149317134374666476770782250141840816845714858363509370711923122865602779272372459416910752597652769466590784061821550176011321826418186864979410831511748900668590491287349998313709938397745900067655971484990718335204179963684977390430127205072251982872983022115937325226624547157273896369518799702743327124506779436476836463893791325942160766503265032976102845344457637396711000609739766398818272333565169359262192182027760486899705807126782509447107229942824786279030406922121752286501551868693363767473781657828069039294745210451427322622609119359380107046813038459288416119334947560998848735069487815472786220329936259717681425726083097133891873585939700276480810014539317093177442998031841879665728911130947568930611298738467018758111665301442554783174587673178967094065529608026935709682304167936122212516847330046683211379353768428499103199929543784138549750244998882942889855097330545544636671562856358786778479859660579312697037657969918031171700807148850398386051100348683424729365847869960800232768606013517816056583030217294610261216856813357698404160915362348199857747224668604834648134014759971929914639487429318600678966005093493063093904943387921099187350993478505046491986412583437680901619489577090026539048305460478131270178299973245658286282449710060714277990583622561275830850723915937945832705382462870660402026446244752892141178842384274211454233446944494420496490267067586291078512698917868055007656378637531082922799197728305436549140808738813415658228495604572049316116975373534807960039977613680878755508103855191898771874623716085125992455266139920721715890476659183542540590967981461511882411982841255627326086166620667135162108917963200343319382231686702901692983867820022468973220816365845800841849808253252420130556442904510692435482576518829535894638227116635479186059978310109644840383557179065831112840124377037540645512944403380200947557090778193206437264735353100704300556468068306900753460648378170447032223377546703982737375583818465870665289287149929456266223462813103668244475320387444384254372081258844500424321493688166896834217459677056717244286005287980638579998758940837157957566578500078004241316057789432724318532923199143319484917138780510236702362720955264812952538742062594391380332726079737047478308059363510267601098491157702294106659629434096436617657379455535691466644763384953573658586759503644257020106138313830674061095498567058375000011093821970845835904390148060182467994942874394622830511855112948064102782684567456949137979356407850234357971697086809682485265970905782092671239838914574054223599773802076634887454746661531638344589779911944981306484599610505872632792021231410431017743155869821796609501213193634553524652067951056296034548827368330905961926892707990605907185361323918416601219505051176341958825216032998277493901110750357420500386898389055291321328226522617478034571532008689616605460829664713644103080918872933915779342627526816969331411458222017189540428619071833276343003955214838907207044390758578410274744276679363020634891849269193642897872480083323554290211986368411802213036533316673772881990223330550895082309182579176181300959855280634505068258961980178008210024158001568704868077542980419474516397350466578516603752720370932270496915986470653271893916084432340189782868930318847978000508604222136123856885460322089372299365171147317974997972050444188942264255400358966556177996530873524494079991854462667769414316754456792932133754423567966297937263436036860828865725214345637985383876729968376069965561397022538538196883689975994537929166233253547063498018154039312932206249658663795821307196101595533180598634796601155170654964934163265748474655574203570499810976567857663001793008585676709241598911825816684690630558248754195295070394668550228103586428246607450499350457244034753175057732263116090862971832849349714954589023940228563652022373072875446956096469248828880649933736563690444548464929100600754725345243725594797782471110057849502610098818573726622610202578502817590658435376953875486990084337007431376813057621823031833922380368127053543860184949875942027802029926234954536480605008728185363552680279857815579856947894177952390901157396152335216172453556971451720851174168234639677179515919027448861504510758570757981560419210666478979301339287205945674328142715799393001068256301273716088774280564692605314137887511364438286967330868601293281653602952229134460155124095507719778548863765990446536519345528337901103591872174251940556079945819921092567200301665179017211886464708564643151211657139413694389379553454995313639179773222738137359432851334818068618039227374770209912277881021674853539690108544558231697861134242539614553801217446550354556242672209160702920366119662234282423467915969149088785765904649710774291122690878906106561387683350553401244497897019699570710005425761497582048398467563477407691950155753016875589523099433756436725846580072901953770021114088218070747813332686844563144411393370932742101520888499105184931932354018685479635522231181026490231003781569482649948790511890752153677716734556266118568416017843468645635066507415264676927530962858825058487226416261564054060745220508203777978339035908316987089086119958437288296209124239490616959852689539459228665924104507726163127497572037753829516952280794059379061143713057613992277309372865256443735809688512968253393019400445207766267263226526383362409513428708317196079977779353773099341996623807260142606396862281993653741773781309320388404949650098798113539448207319445527965916395748504884584516318118578674846368174839707566521874392224636447467555031561461166279275029617052298724308358351022753146934529560379977461156102778083568844572388159366194803682771908175177539536774869822976668291068958360591186581567128193998747187712345650127546362586202099992266004954967131740760784831838101758615656056948526689959073277699758110652605622901224798509308174572327440170930390211698856155794631985268079954688615098486634067903750797761523813443875600106461858984467371059995898692769220151472465334371313974108752988555101325522552347026242054903815316390209777205258580764496462956854662851429071011490620259110451464811974969349138992926306793380443513817343694956846184981781854146730886751882856319419804688092857539007246056301566782373123632884877121994759121086936211347483962554622169378847572551148345215587217931360369895721028666119038413962479795782366634038561444185196558951273964635126533061357695334850303611855174729068516569387963225320783844934799978464919410446097550496033023033971213676949984208507343496661771977119029768099440098375948215959357052552129883648756108146542293224242599885328539493620006881235577950565224540816445064705939492494724863535106778598921888871530997937476180133089528359896682085115663010938940677591197947282740062981515616908028091225021631289742621129490941282037760488496169664284303472805329520176937940373465025555569372410916715483032337221111508738402457464846306678275295721075862827765015279444067704617354088164495322771055623870558092570683659175763452387862822507533231794457009825157790911204955430836404398217642547300940804707356811352215171104107953444732816075734077685244460688210358036281145065333953609237795453904791393589158212635937079900452881060848018857537171740739130003778050341877832971197775581335117161762633240591723589042787452364865295487388535771233750318092098521361867221097352732554888953345421970668573447269081684032433917994167126834258523506292344757707073330401771817657915886871634117247091028630985426066140500693296333588602045910597290923054472821778124453255983868221117819214400006112525725795627892250078456622013660747566030143266868963724505380346808740690373999270323444166079638933149499562097184763428306942970047640946126732368049379230417458069186594920486713844444128879044705460250997763082334592258566585961716794376576312862304842701286782090851753160061954160950250383738131689367428076567750684861112061430438408230612936843359149106293058243077520001765570471178819346202966636604853936653278761770549093500214460642902200017590841970212592345061780476532264355753733963580362104732605197026772325090025556786516665436877967403716510793366277317310195679171404090212708840361397241203310363957397709810787134739800736510450363071219309183306524776438308032445516571916074580916659374456153551544907447361184181419680813668552878017089641575117982860796208582206844237503548789240254442455494213522392832376822931337638579962689405652940036790673129054622405278557271115411677381862922618809811436942169577111277237462730403390237128719441467981215178776593689070715970852353231628401593402872030765872536334802190083840891540551526592848055754371384845402284657902559556732858148281854612745978755858105018971778599658333677137916924089247974168206992823816471202628894889378148623181820669209925150570584250641653832993588596032958158531651172152009676697383161306030700997254748412446032204997469343331752212567978303891156465186031574028282042144115779348780811158690188271979736184463727977967786967338784470159776008168643657955278561541357698652932043805080936786029177818879831847119451519947794731271580257880031148698524718152017387621460336306791847274438218109676028139873197777294252388212403359991995679181550210462159628041418068260906850128509446733954857791188785025728451285374530311876790050349695866463348422074645748783935835119629047989816311918467500282173213469713525367223790102336299190360369915047829088936500467273606194013908675638404052835251232360237136750047395403374505072630268625122985245150693914280934153116830521170883948573939822041309289708551037449814109108507301076544663392444355002762478316219528541762498160431270493727868972384339481439553659486574971918740244635800234783086873334207071703144478889452110146291146329193256601462272340172867049244225887267897838746857917191876678639071893745039602384057502789258103605594502567228745446993108062502566071061055743387121909431689577577761745244626788849852316246045177704282919680646567962881992842722474056177920049205308550270193926148209281818686612013802295871902836776269920209418380496250140501985947999610406423779944124030550360574164025599166076686948779643483988042969746336860237402405870051171137656195261846003616559080415648414003479800177289664436661668668514515613355762310246952244363429462882822910074516855106601864523885588898631302144882284152789182733066110015510668139066134844163189900895325081887338834549668429111519850797012400870728605041786917937189676671272714817877952491216542262388816376189346404595462177156012471608909216380123190535432009960421965037801415839877689690093414844414119636295453718313776669255584529372954291084236097919023655023880737973285083968838681914314640419522184718801665696262063596524576814811364107576351100975270567570393657476425275435512233833908399555459080472423657005335383738700915188175327112932264596831360327357894771177237743258006281258103185746378996835424679124243919717453901982897751154204639982859499275154577148333899670564517376257029281049313928574272168026772638998116178994722323617079485138869241747485953407498336681630682021832976373673093531203482383420429528916100596820886722767261988689223202207430628153620732855119535766633041062562881613348285108028612925522639221246174213733436082415346428922574507506328300706439115287659038685177489857451170424072406329009473449292577858796911618570778904859489057081114793384723832718886815050672979790938523232497444734577425332862753077465623471606475642449916598522827315897063660108331853249987313730173873257358256708133844775014825461425414631195561384806700052145422858466781335095980775115539090101133568726992741797884235620481003816871730361937305976159396154913274392851154565447697647278096311988858507069720204089815067985972629672034729307004726133025421924872610362109688793910962477009496624325454581880950466366090902478532299845053481619638812115507734838247907971319409483406283294097058460428792584912676102855594373566621057165879435755538842224943951091499991328931803306374705561255878292645615302695976675875410218172836695518475909493370895034477756339503683991321876623322096961309807321546533987925718629320420934829764589594469121337949884272804904592257339448450655726088145376764877293958128083443341598634914771874799347865613278475279888886246366240881003107093507914077818303741097202606637562827657444327158375027212327963628999732719679510433062813052486988938286259122392922402898325515845628887494734057967520937798720013616734385643602187171790571771868178883341255122017079490727741138605413755808035672529835049536674332459683777910185444502745573842401013939739257970044018213321316714331182397284527133482412824311591790488790148313884762368586676401291527797301960113532639014346379967249235928066299176150228163620284500499816621717145414082732317349407050528563904249058763505912019298441437553870937020500781559497608805862821235417651258896845444833649617579742021572437507938052164728452104632890672688496249026598468862152562844224877044657588625859016133664494319107296331484250360680171485752227473244420818455946904517151320206419068500445222973584037800313152222245521776435891829040178196287070286307074755793439354086637962772024552997539060460573661818464325948883509216436817448813150290654190853243583000738916601277454961236104375586126661604135454619253224403920771756537955217712020520614433198241209717231650092762964556133357703954152571881508711691903753907658266220235505845328811979956344833008374001500463629662921989390267439964042008454680773311712771305999910670460864988167808583419745062192165238621459714862035078462575055224312358466225422971509193190381862099513929404325423173875834517497637993396562024801485628432638984755153599684255341619162353942062094796321676745548509312953228397627158490038490105190489000215668866929228376991693170410286702001996988523344645271598405640773574383135532196370492819994532224979129160018643367968649374632396932279900197415332317244409443076162157544796323628993230007238372782740441298158839656199079681563297481142545633033629383954861380926135681734522053258105386709721268189004118168527839409749702923663891908473534930094982783417631905457208024064933911576705440766870371020707832342427239097528822592460742694618839320874916784288802738349120009650381685326662457406452871681666645959684905190201008968961723429791803771143572459030234486279038090866813757015192163022283870024448919162845515445063109619050492524246080666053953439150345243914067142058391691976606473343887169582685043701155217597995874927249223096078922319341914200491697604039725735786179496629608462529977039553986934240824810353338102793637831497861133382046848279620015882730392028572636709883562779478886154476095753426808318213124002466599316034610659217073915947941958195043492209325075680454085317301182297641704455714528629999007303389537651803556134728229551465945019279024639859256920008818134587315949430953949170678156745744984536872801020348789331568886289281058238145719805935211581458420540035033810211308371889728486224120959652154513444253880649746037314370882781140627541638700106847608239296427730105353846871121303419978950068253628066482323986494677686752999613764812274766877703194962429948471020893229424801191401304674510993442942950098841638266309901890773591936759208361698999460080919599665956490692315179595174480744717937128061831953003620217819049266536414749860322685205389807297592281732169632357695394632940193215494764340811776701079565338195034168644830474729606530317116612327812295486347018559511175471188042612008679400363875920265079159497280067325891173725045463176749963678175388120410895757930289795789949517053953252866382425130473655879391641698177689104920534587585510866244208542219782635073001217136488527128752749087029941244105483618098557889055899929848405942167124596853222656597091595257678419813274460053970586292416505903717911325813666760655784558052424589215378348134925650172304328828297174644142370098877993922342478383183890512399745314216124203769434128088606511844472725640279340567109223451631418526722718384036774682927977102959763003508286252190182347055383792757165851091632970404825349399352306610325127119403209362744157522115526024919325689494541616235580871220399548566010345868274288924477825493829096586908308938516355758451484302803527309452995396469169842187930460371417562705218382154728535017985348614193282864027776524879637984076656683174914445299621595612948471413155418778491850443081226367127350084101385972362587749858202384473263753552298902963121349365183899399869648851499612987389328443141046072959106153895006439141739463620489808780396391217779656344411955454593519560882702601031561212110992897468027857853274992737275855293110144180688654806243520575974208830011879821288868036637003640375101959616010060180309285420494876154323715359381258504551623379295574530549921784444240948662162759770795642316723729708144244723987906222239211020116614770993039295586913503417948137039037664662222748742569096198416968865506222001393772833421299031178320651455334757447211338283690563319173521626579019981610468200035868741450575471995953467791157639821767303289820497826641973551439838464438394030337285270679896573546974364023199433857865792807357597307074582425194131063650924111846936779738313348159215435073830618512212481664432174766137023571747854444011074036435142668780759742469057057530448862068745570981329424075899106541683905719707182653364743575148086530745855592591352746890333589605084786350621428537988035579113522329286092349177258699345903746435686467783779222098968182282412026356323059952883450292046887301528063758670341965930668351232134962225081907638702158053278349720038207871115852549919441100539958515397837368962212605424171961975913925701615202876271689449128644583132906022866129368799394274647807269550966669129515219425108650918005634375827032937807260084723683860105694813389022492296231975208457724474763973386692136502040932177929294512673168548658971367213409560809258291773025471663425328765753201628805249466765041048581917980010457031482939730256965344657283409595860123301314418398009872658725337265297312838032651563076727591293493302124688027835011524037915503386049999317338496626027746228746913523978600516691631689717191792356982047553108729873761887861746521134231146215962424783269159597333101898323666436270613643733217928499009059931439042751335058683349931816625547135475135906544263289184635948108087808121568579717503833189226671091579811501507381799058467423405216774509021333435468221041837031861878910270426008041217206688416443850203004070758797979659272409035153150226081937869696314190662843122817861506920800033081571429231004238013827470358357505959301398502541336356004633774332434642743872275315138207222442001260224380952157194124474218361984065327671452055322216080637680357429492228973253242853905358156312386998699827302477987839141108420245016352735661822880027905269173971424715256372226521676850707077412343635184314937425147107078249735428061604451142050154779386829487653664992636784089886919777576076034351551597286839777914115608498392868407453358969850960094413466264299541224902143985808715417668237650907460244962008994523437556466097375858742993144248029456408914168271262140676632382169637897945451656039672080787575048083231383350138873417827964184745322035076441548674951133052903079864909699692099392374845935895761787646079585410919965396883540030277236295543528694207348445024961849403166081535373836048128850972488581251338781211346891369193158481258114714414413244616223280227757752651665564221766427724784789622915315208343279450388329723165323943109630574862716292921779315924785521576363527945243495883847328924275114790302563444367533756724689384024813158249327886764007995059315167901995254248695278355445304484486770283462097796348535795243276296335417159624043730351956668865413215775263178783006429824836326694104263461799397451064153458023218864796348352615799702474234413593273717297280533636996315525476181181926715577223465429769399148951971008565528656076698127570222605887685464631638418399800108044744557124978283203055023981269224142100695704937568480604911114128767607235510084851741011276778810669170578009756767876118680938528605031147550478558233643485533618459984606727604479846649782463186616472546664034904965144191242537854562883765886446314136938662188971065825189152240613097191788237712148048745079142549853589877266751012725025046701394584686915387627867862997063706331635902052280271868653508530915843306295389022546575774640176772024353877522094969424422163309766455617781627522044292682324142019260461420965617911561511709091679925276513686969430513249158308136187407483585965842467039026712287348184880182312673317090711572140157954935373951337115919026172274385128590044573826516224703716754044997057158821555126611451116057821306841899703113941547747657845622844460494180053975791541461194461082294591923272526248736329434189030954068123786745682678812527015406328341194184785929405517346298729329702107726252708520715538026768113359639222779299311208521455635273336332148939444580597888907574915621372441370625327026870148400871633592483269850385207602801205176931298456614728696999371199489896198733573922242614350852225375832514947259789649661215969125079948691376378580818422442025198362291470453356672203514943463895525981138588135914500754742226562322895035670584561511357124930853168608591068846053809825110317864113525757018776850682315821626426861040944372292366365279679761055679548160254392348623409450902654996028462880310478619302343763546925951248978488868305034569073827160311091831112232878186685344190984862995598545549670072491122411836180968717513840667320691138739892489725473438377150340993413593158340560732266563261910802666622876495938497701546142701012586152897917184056709900286823606130686461281362529501862175615652562933126855587236278080288614994377802964090687607533243135508021045368011557163239304889085825910591518797222980705641621093097583896005642105547676027398966996252290830896635620940619004816403268108980393337379724413524522421837630735714221770185595248925386161398648032815379410365317008035668100707315295603940014835232094131303254882275766044420833100735165159757587967474687436152534984697380994848626218336403382668825534694179496040001744960306965670059197370056275687022049710762052625584590044582897971779584989323835831344364555448855248325352749553088297124797001592488873512608691251061341503716826743618382002623802947763403984576321066345749752076609656821854603097028013495168661687384796405000169848722378041368774752673332066631023901536087341534489631322213702142371577831898894549778579737548553761407123017025003464670787502016128173484096975997061678415088815186989087753378631369670470633064538716241961706020824939584517086681569921659846206491965908002378877171335756415950130575471703509370786881993070733356394705029476615901824913654100701388644622187137896011591207725042916796141061601360809860673780219765742907242539802649359210308058202572366724670032631103328368833820315137687273082018980212765170461812996322335012255720630210951618177559363028748747019525269802211623909412525868561848774237033140341221470664094007045949118234929518394950761381481810356762008977234540238903225987301888428130948772927192556202167629001172782793045016677344182478681376007577440252433445761937547433300750669802968666342406646574531115268577903016551471028483181541254743019732667739847735444237171051628731001536059031894294196619142549238945375192244143227911649592671707717970491178172223282949544387715677849299299851563072988364518845430625499483771560581555821005093034902358232581067542198994272453985982490620079675435038305650323897315540973906981728281781923924946577232542007101696531965118392928634789440702898669799538431460190975541189667404395070800416025346449935816177824541811470426139904189952054844524362101663197380500459702041045189522126739186674988753482409650121401314700789743737592893951179013492263495575116071648527028294147586257030485551610679347301538393369834772786920641638915862824224847909638038624455948033484306752457539192282726259849407966230285676106303342517622067211001972636482539700153630926934827952640994739483840036485132227355200968584406432181714486831274319220930056851749144538524674160412280756008233407765890800087456570491625225823665750765096227719220143714465306850997082780855401592588736075593094275285106222567782476201824410212579116091983644696905408096798554954138763615404746818810000820754550836123367828629492295429463689315583059769700730921621678419326994064260714384455356846513415978624402924755839740793859776547264859917600693555606357983833813899126871889791080690482996259377061774449127334666665054802011853448655979414573325805624499966717236049835094682164111052676237434412576449622433050296261193489773281891464076059651503288290401587168177070791073887943112037376158998388196021731980467606989706615077469321453555132203181066092358402881072742434436973843386375516208009125074474641876819283393513906039121053282478908454837679262915248837493358190515764363707659420056373192992531039156206133427350835335048726065047114283858323224388257491602729939277733879338722903449609906755851865074385639024053758344887917410584966412261840850331446799263555585387387752770969492116650842537884425188080375602225540331044224238639934908241524376853545715217367957984175770872587609907474769009478117551716074284104091646749167346576667629595531160304153519218512874383429820164949630225817091213628934995997164330040396514039723863810791810714569309311650781647420000205285073591430435839119657377392408465542855963520414865678706199095685162194278176627209166951753531499281009234215568818644014307674356342423934088045296788651762046959578165608549842849658149120656138253944829290834905414955403685966428780145348006959915868094939271761729217376819054198768236692988277931515368694048046427019239697524539179654634346556483169307272204480705927990495111143898903800856945454676637811787084438009705995945473983159665804545553875935039221339468557438473334434948803994811675166054664280219341278772036374267865784069587038206580577050671080900579692557185146066876666215645382694948042425302197755079688173379011351921182530301822831445124546280512969800301234454176416632988187351808546306620247788228759538463538283807989884142974032958150801503785111656583664116050354650053024124714005293517232863038891822604600813588877610641896642089067705839043614073517791737828109733671215829498949563925879642006065802542811108478414445501584735638437292253657663059533606310681218852260944916827628334310880693167593639181912077923457443299951105652045364055489212528714966399080443883026026829863160044670077996852756868467457391559455341121726515414299885640229730885229818160276681327588873649238688442760802762035011330022236841065590279856831578669036008582023507225543501958573707711762512282106067996241116924672417504122043113980797616783861218689477721998096784087926719783459605396600560181807660467864231772767199621253183696085344189270029463224286505763321491809884336187937416260010886566137594079716873660208357069658848030806505850808648915679202721887042460227679731759082731096683193858277943999720284922899324265999115061456817122266987956887601525940752018525467030316732930253044754558754415292470251147500302868354683641068472105609971758619991081650579632712520195394668597833996764811288072681092160082665427941715843114688845628077647336112086471165839285357466091968800329449159445006822386403794775146959042345113651124916500275845653214541037194625542927017628066382122577369240006352682901950631249652150027948430483194841321089812571455244892477264694961459306514958470713914538253797801281965918375401474271038241389377698074534803268598788179207512460193153171927843735885683099487630092109914442699964032678385487638383933497227942366852888853016546985811408029296496785037297384895963473312940063814375786623330326707195348339139833529264689876868386874655405685434327890804818810015617248274127141338305167915895548257461732250237691419075778529055506227716141695127853994846803902812390862344295515584300106276561538410427230499589019851583899002494860002946360506150564390746249276916621955858155212216056337879070311803559363113188186240879688635285657294385171022520885978982404081171195387115561206366728015127185376651991191519128510530224993940872975070383460508644353552359821946380829878779031533497859100226157138998015610428926782652026773486207951452423580428795212146466226918825165964592847862359073469915612657158107463474608294793512235803092363354005840162527942491857625435719313651901957515820187703472023876314611123445809458417539632552347821027097140428125870455566311660821959580141999754635937285772319728746428700731740077490602480906257358332518343662661185365080496257352400626468207632198994094811239187604183969571482559070376326620243482448250697240179975889582349755615863423396007072136122969356697358718277040309847877839010868641864299382477693225408599710991317900961141360274472808032182292681974048544009876298397939349169672555156307753998652063389806387525097257887636775886933286076533555155902436430985627714815135650080995524353569616427643760489088213837567695987763608990938152738553444286291337725909270687468717733990790610627537443326594247075053719463244219855525453089307950766403122455583492267421747377576850286352875051790682376480461773874307487820985570872081278300672978677559363394429757084824119641534598296450631282071796831844752943650196191043359493398014358431157482229464174035344318847611969290587923894955321601249206781084016288903995783307244425244342716149659485555829495945550816004494658279293959582729058289046025799296121422173816129855545141264733827350691498206851384044195432559569637267962702494691606923007610484819398205908102681172502947140318599234971224941245490035896879467827284351712465522167557024744563414692210684692526569151620569574832400525061397832649829317027854729388284137616058593494788398362163893729636581878925298094774527856359676551286332765619796224239023985382163180193993545295917362622808048143071353608931515131485481865691364698059130236321096185026863833768411213768373507877419876791584423603518601913888161440725352141977924833278384417029230618800122650021720837222135593714426489085335512723768785807525229310357465150447892052394913047319880120177226755721529676070183917535446907658421313305614516150456017223117936712220108659215745237222795193235790145752551288004815907679128953390596129469721852316690029571815778431178474017845806093031929566170056133676611533588811607671011250319789811762653294544332644057941430058429897969712277614359517832511511135547156242977044610529727103893633491389098228068111742759569460369326386974228896389598759701640540672550105115604662124085092466809281022447565045572195301553202027926818705111853031617607304330992316793255892936555609243315716088564288292925298220499712224764876864116942950570760519527524781316553908735243808122293114487967770259077230596058882340704239191765910729946007195048742167077312551066897138964528722360704552150018033208893500253291879267219300567757196860036434950060804387748365933726066284610717672957297599864460123658059164509219948278379724043994627604972541055785619864630787231189200194668635497953151232903704863107767525145568770099673971990658900732749028280112887407143712845028435694569167452710353682162209507758329764127689036211559674924453916044957448098804231100104847857900971971409033952278589348804425663219572209172621809348748009967820005195497537144903277284786326949900093967699027186162144977598613346674550794855006341827595429636803281741442619567436446107853510907589316951205340056412977649608444953575751836760990967149497477054243457398060213478498820673307019205825657316031488656499868675207552644130427436525801185832155979631795097277659622580784286548470618563161061236432242540235394722671295600939708149349255328719296428597360829538934866283128124553213782374771015318241575011605716876190911145328845234710552185619183634972080133005361368249582857592791320398184908673920409620563511551136875224052891059679255732992469820879295859069950489161623235214630150957988851481927127436951064537557010619777644070621383927608820937437083186259167153341490396163313977254019027488527228108075647116716063356533270990181968273045635106002179691642701636140340976716607493341432969760646260933599661218896959326217709296451391899582041844397778107787898659021150547644331968427594675843232908961776744410665749310941487325984497717140326796954130116710749596395465982130978843697504658171127450760627634126794617240206777242078325989408649968800966055113328441052535855139260549794734831754119952728415020894541642839803167971835861479991312811118135647729369271040870404811468385531767672259028718236416550462963624627811859836675442861284301976388717015861766698381862563051239235917887961085350878844934329896962510962378511920342238420717239395154103967837563999357398566594269350917435658421064609243644388914973581319608669728375358092138400739808864872284703865175262824150748998005215670856916225476244037220691732295855296124421779233244259949991747070927255823138749645556805912931932682847450296648768142427395017843524207323935251327932478087232392034705700835479780922330657047415369065500895786800082117052988878983558229411571113147432558139906641685129775504683097904355572569669247193234961796891425469053645989457496204899332203127196045910188900757216338949892825934565675778525958794465378960626877247344096783395259876592572876835377181516267554716927684554196841717150990655813392905040268798488917038197318387068606933683597697502113469459019115136266988510710656956897490983564039366176288413352177205590452197517009831657420723654400684827676311662842916070100232023703366002203718373661424926033196528758856026085966749604745735533406097703625406618778552065490384359716389850043711413241517869784260643918419768541711594946692526874628423067548174224065227558903537514718791633836275064599631786868929107602801164920460097616384945263366152913656081953444462558482995197151358585830842363707726738951717528081313535280951321666641281075187258972013560778409429411649677785864416719818057989893127288740395378406890471684054291124838284947524926320908653094224951115206933960624614011217124194920457367525354018819938549262372824375614927890482485194368929822701857682652733125393374757240701589303253492744437055516245049814191406567731969252465505382130152681166848823701370432066068538797157449497852236898423420173957955602529105428779281318579338796834848815838144009784916602853462144184615451501370804413553969304001771465864991211452077315576584535302694850238181507927392896068670062918354187191707461265115335737425433189463900197560666260581492002228951841483653765908479954653718738538458837660894225863374124138665990063460414353870692823346173918483508121848228187568981883930146473745212290977811336342658818719565960584606797185174395720244556286689778555363989484376343475117589735676965466468425751648720773891366046332154905233287491206633701476302367361904597014310308522670147837369777116363080749055198676145519049468451552619723550826847422203669170524798529934087850205684758887147460297372776750146431152406461715395227232189694391242115004107005332738315296611548858737022407211829014610740164477935072497227348214143009610221491965933812442967905318833264110933578265470848704078547684331650229756704938966382083341323509170010440504111306109206672218866081252399486273915541016552259064538541124703265050964939435745383603056967978103907417834891609751106622874440468379932969724543856519528129202518770582837898335208244470891714758618369300540509789042800531883275946825656354461838022452836205834362919033022685503226586793998830658591859732815046038270062723215234899946983140208560724179630070438636653329017019948481746495785004526684066119494163929549429993391622403129823486493915815004570312953831401118037481394442995381189306673187536889499227074580617470700777092051928260662451556672524179367761557400249401545217353176100915440029084303200827622259934170951737551747194168663800240232409996553891692094177200495155673363998521087218658311255544690128405064638270112633098094574094149961820129241522391492800846061292694005657745755532473784472602699466588429645094348980523162221130870556948317169133658833947011836523776530528376137729799308517647188660028183941246037524475767872554508416776958973837498754954078725661547883406166421624362186670684799150170035098094292315120679120599334074017452997596824944913916048881102377268285846991695367532506753461113805037444070331696164046761777620715475231743428111223428612885567706279210582617481626755429848356758920902600956703394232109710728539352988139198692312402824196318842891852821622106367568600270957662640800325926576281182929258426575092712554610781531807657817836781073244535317869042689550510510121407772611190359632589977305155347323525867245813471968342802400438847673867752285225240164376073779655233006712753618139764550804616950111327544863916738334382481099576270383671575037859633816824418090392798170564498143751464424590289697648379438530779565968058602973654442974769733981294190728016356871808528087506650443436541895390138827561400417589646268386529200372589554320496884350152751982015702080032534297649299832654479039755414521384252382001355572547613599677313593421471854251096698537653006134194698744654936489592302181087243440241565574060056532166248346503322735382849268153430314889361309794932014277533143027894461367682472187370520393964860195588980502196316676273260853168613256956694814454554262297672563284114121526742225353445134052619891747300791146824317666153017375342458711949682285680523658368229323131814507974738276435710718555714901953226482677867102653315289161863795402597482617256274512002532550313188628366382148152608253911318264698497854108515327091963997825676820744677007309190943582740544799348699814538400378466285099372764056960043842802808301707560357439223552330753266629234660294713191603459381434630085503460839660504969826377944601453091734523062317502311079617987090180725095366283504201257852443755538410459255375283744423266311514525520511526482702179931154393563076307253351564144383638894193828451275905713333716757390269521695486146306764220608032438417952902716142497525510320380246435893989401896421499993011557289460235951121408474843114861228421081648855249057198370595317060630715963122432544712066642641289989127325545478146615371493805614101716863627349770631929061563247048441822480560730615035693133941561869659872141682849660201196250568313475814590833299682990689536998227687340647661547336239604516119898290578827989595080075198063695344312423453108358443590685235887508345893071848056364791932196586586961971119712509700286971451452360359639964760485524886053277732653230733357766752950400465713063086441731049981494555935620383923570005915532445602472757442234953452874426676460461460210492893085149681232764424093914650543248268673828076307503539338687530467259367926953899029131066746161742550202510146908271608301045119075937228949189537846682471023723032860017309793075821222793863573231566961139275890386847714738097722775101935646224174835256561582088883677120145676355482940395949915746564263436082520599354618382028181243734090287129161539044806764611262563010730660627039644494040515102250852277731378664762598149853200292401743845286166601409139498847196807795467851727740326300248927084930146886110131243032776407253098911436118367233294693219194135004669661038151060597114134374034034017625620662984237457472026537832950790288232594231071253969981948989156180962882949433133215992979304673023999637535200325221850729099486302395561632505058841499378469432028903061746700006761765303049434663467299789257304107277875864611580522933799154818474279382763643488598085336580671004511059854056189451196347811686884385128353674550459632913944117519003113515388072490245860686488691815622394974157687809595873969793498793425932205385925980077431318318972090121372228408088284065771261703739295300275333195403509488483982070633897432333408400315557079815272474808338184443705513850997993917156534745001182373470658731726013542405486282407260041577877080233804851912147223174228980914339626721884109758958537658103513703281237291890542903458186674813903723085880030589783146658113982791844808501076275233039775284593004106162368054788311976100423790694929990799556059851422242123830056166929758280842912385075286608686233776815197792707605486743469115983073293609699097820199038158614592594869557204115087616423767366838356643646155513612070613895782293982543165016718845316691777006210060316309444107401779477248678837470622187860603844109027441154488676255285159139142262688064299008195986801928018983884217164062623790157437913472075642011976886800600120981386956791369518336052017329918561820837582433054137316497066892698555309699483763687674969842523434640505395310958462366423174062785234367488473599114623923919153469045332214387348362688997213355814830726591749778303956957335146405534153088894896236036053497412879095496636315292965020437303350743722929818022153813302531518946745841450810015946376617199513286973772815265770322300950902928158553828606869199017591315779402986510913932988174693023350556228929364044288183319596791935908043733310914470939367607074001590131661176072291624284947048714531342462277464016059055967174871751224230818642047260420748270714570265011644589665468577098197515248450750101386026923391888774495383283523665798084933112241810464947973013963010677050504328114639814405320371188375352622218573474027932911520932509346801852052956029026380114596445062922364927511447640676796183179352386853157295826805028596167361886927876680457691475469889486343909193745485663858992030758097757924045509866667245639579965892396592165301229182102596969698670597148924022275855511842778636677784859998522431036107098758428853806326919679570222667736916139521183762530781392771827990517966781784233037742934770457278787936504078106045573318091226101950905904847256074322593891286402623300433798507639081904207799094675864737935403951218015664386325077300551699890416695880663871007374794366310234153459771854707256983884647594827582036123114071129807819897355077415484753188866559759638893614335819297377789877391823579559033906845260053118674605891141534896207885014623311946323925436528071670183615428553298145587448930034421069337861927782700390468719065714039127518305592084717089556217395502827049257566514863717502308579054340268030154055408946775789314759127456652584795676801013233715466297272973496820408487152882255509339843587954076974043866429100226561044662378600273491340876204706572067934922914924103962877858895297155776144185615764753818513098529599839663825124242233851604946853877854242730188666688641736791548247844861163847874501712925942033548461417576615225238694722277117167414313756208312800781692815471471680895315124107053294413666677048499027947395186609083390506466030451444370699788722113687711807977685737772204248804909228135494586280835063626330503613179960784408571066204461773123820356936717163145277526577698551140581514365593676932596948332656321603496070768046024025153734027431173506237440288102212260068791122632513163271119874839430798023483444042206661181390108685646693794931576682380673556907968710186760792138161287018570949334704097302119878703397899737152756625517564850581867108509411825120516976756857992246401180037537725637120275227368349759703267239343913700823360184723187325916452440021660643505492728548239917133194662436630279953887898035880171540395652110203314077906855781908173726447435590988668515033666287896056287858522121286654725194992359772084145372152715187769571925838258635482743344401484662980854921941693529071523988647440995551514612131119307090263969500542186804806774299537865580409622658534592091296368067106714332646021610901073646361044610326707733970258199005852176264752196081486841118524431326884401416253676672311189067218541566800140467971503194846387906900245303146300855613987378051292069214026166446976245181780493920158106909665187228827792360350270328996597675276234132743700417692688275160256685663742235611134010863776934185006523244151746149767758403233716472592811399229467931616241217873716950742789104180527386866351099536028001514390717809889853201342795058475605408288552893937453309404031328002455303668195681514300630572555129994336008300596824665140514416801028057331900930048894788905490741271187145701961910590369192947982872537620645879503642873336427664023305913647146524713073831713293007578220047454932716920130717085577153918514592866770544383192233682043476622454872931243376860786057346559743924605592956383341662197562685820372325666459618241800336474646196785902791401588983501078672887357126756772992363722873806299447243741759364437875893114828086943485522592576070163984500119226698544372044485493998126654201128364739309734560299388441824170739835184664585778357571896213336973037303020525729248962448107098635443634970369133373160890049626565849660547528486954014786644997222999988739519606100061851924949797430440985400030373324557476093761740299040161929211954837595652564047544105262817102570788578431892794748140797465823852771345662695690307517594132757833186472705541843525880675916158915546733485978668936250204604425477836320808604115398320959009395462437001753483364870947798030842161992529841749610656477184524686794616933461259328932099916519686728421903363889537512469426276091282095069788345289184628542476017081675927480152497990302983382728377798749603655435914106459239424885055559700219453554418391123526738367537718969965425326640479927931919968458319435719115333585934674221869554011677868144083731088772530529042860757454222112119619431472763261234545049479510319293517455897839322696065065690751207773817065250462692961541553405308005006621900854287214061409492851104611319956354904315877406885654525531963816077867663277285206312058256848963557845822289598911889885280896860267249597524683260525308588247370273296237197819371508520893696751171724120306141957916453543437292146797362690628133517681749810136787621269433924554029747435061155816726209421898731106957977113242537049401654718163516588979909165738115259394711392281801212068745946350631698123463944101031039303516027157055408526232154784839460477396091768253870972370160960226699784815591987891716641430293990222725566590272316311598671019128863994226097418513052285261803658494181715882233153786762749320820495984998990643663403451902374467195685163545020270743082252349312653389118004584679572108671988150357858691351419954961247321447609612428746835131384453883385461837353909593970999682790981578169570035750583746469166003785383139118384403702605428109048497752115198176248408684894628891846649201132834843548726709157097142823610985103785003328599676410127326103623811419918627235155280105883575490527343123865849559766812517967954328503215322453137260592862641442111941594511265379343325532036782409179961368745859974467207603091046412751770625230509406216779055340275216688487094485917901290022565346297150450667019771947425115124328061091503608467443981336571446093472315515844694878375753287577776209417930920633043455355159528553452581434661346916916549669788508037386456549623898013543511299465511860045371771625130717121525333904945813994895761560901342870486439269196761898292804345246785590754997256953685373954853332068451919932877103147469889566457457433749225150167718579570445483631228876494628389922185862244323118080737082116725267381900826685095197913462837292492317925651023294261686300942687084983838054141234310161581393729953642027689352995098091543358351820048039857222379839844775684225944277448061159331940961547094829662527436812628198355821667201905292683790939521352670763583007033941837989229637393778724619780396976739231072085170433969624461053566457162706380209595819620901088206962166372183406148826627142911363840745094861375209046039262713527711625419020120548277371672361731064245945756973913492834177946568063004332455326766035353460544197048849727358391665643696938835422433599953726988661839063041907173445650079086584895255501266628592340746277265293931317929757262859218120738708591618225356678609048337384049425890690064547811604254344599242139839494620921672623667083485220595086214366090311882083097130902373500499877697029934496621194278471874308299408921699581577400861796129997915546453223975222023798570288972190032044651146211478172020153722684827557093622777185386499052604833937291255586239150642228118686728411613055081162488416450566597445042925446427660574415575049834334458358838667237959738157234621575456661433013389052810276923988888117670301150467532194833752613599498633038608241082813499503988862393398830454124952048294297134955465529032784581149362296496235942801225747956831493819551881374644085776020346199536579945511491784050663936775974118059660470306921894159130484680724521622811399361976695087934065028950211355318781329024762593156805276636525639862206360045133516769005095351947497827429479901196300867714889577157143754735859472893397395045779151930985601786056165091987125547341490378861412272127391948863085122607315541988787618167530475986164085080083683675460897319841620313588043323130841642555512043531491871827460931695975564266345978797056718847515390864060562887538121993991974103075999211159803411184986816311620731353004252557646691185915506342786311845741214720099307180716216046699999247969158886941233207671025327277622714524264869082351025496080804005206350304765506262756192186089475077718710383428502908002381473082610189905930749583901598049860507090978220110872687270607323194871126104300647814079199800539369513413617704238732982679902591526497325294364001316037267032444735911044916685366277105559596244343678988840883392787179803502049636458830923289371520906847286415360576084169101609883589061079190561477147996010240303096849312842809399970788730933329290517192576131946305149813685816616949852114498934273312435593162410248685983829066272161231511205144664183371457610196928785337866817328416679557755606516789013755469029503215204776414349965863734863565315882858301945439601452617474863309401345171087275875750741258689585675097700060038131722653259535578755224052377815520744769093782723617886595911195022410307692155498847011025225063150593452876592538538881923281472362313138403726493363882782250810213111928699135003024913414977746155636307747316201267008277173144568367539154809085106331069832121649787674238871729774746551729743826422083760742589507043969363709334227353068714340882943713091859077150071888839110538111663481803021700436895368083988548465935863280987421821898223313662294539181325205739614831519080066523602421699898879904235626886485050456111120991509558162789451042679503630755454675449571596727037467294885819878910495967454128481506290799326150350650090493986417878106759253998545643588998720919319470536527830138393639361463745347613013633518951659881399885686617797292095091856232331052038426035252355974241087524221140344997279898812200999322909980768771707024236103930410014954956186032501208235065767464944440022435837401703009787733789304311117662451033608387534547702670707850707321716648250720881020607059340691289764844181861382284625802265703839255859126485409472745486518043570256866568622125595673915351223361368893684697277581030839004426783840395610442756861710633921758589120912088378073745499800628117962606778998742878587192922510737095488127058669048547483157729361298412091360294626625855851874613439262594606201867868020124213706598312728557243798943836779293161362788551394770104120978281499672182431789345739714523847119749287991044849057180108004643736478440070554612238135936122149016492950492767601094992416478018383419892047335217674538189184793335548735922492224176888472893129206224040103115429881328750999802766762924667994297728403335921082503170865486439642805517688207364993917300079542798116020358180339013441432740820766803739216853171258309014648141627536600186176882233469025040165651786283353204505586231763125371572370540215456670782244328592010300309293318902746302497330043090723058050688950964797520796690482774078340808246454428019326585611143844072836363237326339455103407851731555839741326908868783152311544607725157445208880375389925818712204870352301843905873896363831522494955514712511048879306835029428784468857079200553651329748500331884656907003469348307867336272694265855274790125283087746241099789609843928202230665425797657081772664521538577362338112190251269613880735081663834941259762700695991113019264183408760928112102437700080267068195492531502972426328762239861365354053673091418764761393440069099771004628161812417240309080677915831405317993846148395395706331950440652173671705329141012534333763145113485262176958883899954841420453648268866184174032911707712686348202840078124251437679397824965381437442497623776269095728805333042589777145283987764656498782222517605472556417471115418377248740073359337466562931117579850808134801378090554809503171702915048669591561195590233638287454636949278417155462112570665260671288007472561063059842274146199113384855712810152120614040568613120986169019186047208619441045118769979894078395594679124275562036558533520131929688221769500026807370069281283117528353938866522972441819041351904313125526403145499887805837967663929665107779607404138125490157511125894106845607385472732812436364321099245001260587714057845608598101359939066279974489501619760335190255646718646438637950658850378919677179490393694056548495370215732826372712244927298829518392165194445522436953678625568985459280712141527213981510510506062754721879760427721130815970239507977172643389818228832814898821378377835428132224069849440570086709655959230479091478051150055589739021058937373302250853277166885101457422150915217448648589766611988657372603823610657256515365793949234303180745887659340009549746907287532101698950358007763126328205947332020109685768498277239644826273604580335585418559070243101611418597132995837749407088559587554675801988708915399888086318403029680504696197137922349601365092904445812068265330836367018387730905237778835028794611059040887425874386392862313907388990259124879995329057650006171403345178785281706630682015724163869156515639248586328167085254288146752971015515663109282041282671693199816607687646782088614209236230079341285584905561461953495161645872301948682703524067107385455571381352026120528265032612471192607549025803722479401554177194170392683706357850728284455126663006206546389717325031728272725879671402865393622132249617619838677105843266471092630652493753361959173461249673394284588688569016502196717984133394410118224692549298817327529025255497490766186218032450892889056583502724598581298424420906507220290686550393926842129169089145467106005469171966750594277420301411684041648258206332795841191471165578166925839946918476796678658891646032876000944767879976669519018575183389612026268268241289225957285645731419862152958025233166340156898538737131807876496432800063691106825280390182242109138168082795971613914482510213120719693971873830715352797437843125506290805853591695217830183048967046868517825542778596981381401948814871604506650559806512504721580039749336385855451958682642202235676749439103734651322725940350736158527571210964438625200535905224027813550727467281330135649225239848010196956734919843086823921971696683469247599109061686214498126509665102755110859627373957855638816294471708847536795018756783533127045254025487748653459656980381712548897847292921549925577775107799158128681211539587635846475082935114629081975277226589035128685875987339509995768369422276054086947056844477548628876850752571849937345730657194192404079200193829852328213711685173994289515036661921671659714284479330500398931965854187294296048766294746316640537439456176445303566103992823854252550218512025504922736259364198131583068422403357986171297447491919341439809108728926015382688346666129171101757175364836924718539977105647694590576958121884472057383253253017149195489870368208496162632277090858031421039056555578072766188900289799419872545102391398899717555398983786608297985925416122964082582721529334550461103970748379806135292380063618687107197512554751570513732239049048531299282640103727123240207741817047316151658493418658822719598330656234578697159302987001914973264440512285619799193538286034241297359159102197056246011604709489551959431869800126399123838864811136112448429277435832299307637627144639565620054447078371713395854776481594610216601183394665440248562176546233635533774551536565491612776975480454935130375475169356466536815149982247303313838957735502086999255338026114686634733742836613560985823808592457466832771392379144341639032119359269681063433451730897657525242891926601027451868593316599549949833903171880712753267740532436755521007186269591294420067319355745030208204482668697331204779395515777108590143669542066580052180521452641831319201557483008718162715955728202464197481115677119616691534430921731677523737678193434148902740482160888199080176046810837619490148942396651211507700670262972241566205827217226153893721355998802820443488800064560858717912516320303531495028762276260915342355683992073662557475190327514819737883670969076155666174160654643328508738470597012370626065462210474910224227528539592383464799235907750432149691947081363685215848599792847784213573353843073994030730814726326565183784592639239469165375142634270454063597696389698121697364083428868034452959424300043818210457927225963432420937450582211009930951405459800158130166085695169441129192349864477407707547906455462797099683105186749391361820279655719000687782364813366599893185324615011557484085637710250841046748027030808685600909239557703170795014544754778940299661028464135676728151233185107179644061971350792541414485237459106762098269970208240757000396227040037984362131074244751399176356397176064964854048482305135974224367151781305111942767437371467916346144401277220549224533756957116939225101698226555623859807413578308077058417174894045757061279883979578624736850257962531929227023646320872259387321931262216317707692661104662509803332456069545610310381620946169562359895066891964767721849996170166244143649004910511504039616169173088926481654538325819723738465198377815235722952647421595574575728770537733149091194991692317033721109851810941006284337122710168306116042287441527943272307029406476715823197522020204686416677236867829417835241174703227052023777919667758309672940341171938588451203249280525644316422668995011580878108083982066330558312388763006553798037060444475312263271539051465487821310300192949028560921326439838308167889808816216257310095765404413619118889327031333131203718258325886953701452902281895922183850484739765707117140970150270216688317461880073770363308195482909867538609159526786932266250640378627158734636527295579297394708324040867856570535356341726130070826830697500693064927192037281902258614870420880317471402954771530944007548272563820716691342210811819749866834495005674042688159458588835024168764854999095283720493173100180022540203082266065033166050107548532188057108253093045477045097150047864769358592811192991768698590722889133807663594273682717732545111813621014382859760417376481776058242867642563630473817675214063703523673905700398340787217124133343296604314629533033971294588238634872600610124666071034426109402369984281899236726264646002381748440101750178261572552440121313427417511944949149138557977688924653300353917006847701011956643814025823351716141498272126654742452832119666476569958600178823981879878547632335268211595761857866134918927924622157027282662520409277936412148363542019274493142237721280332566246623186479258776803847207787095050145402517785588073889046670957471363222117753644521477501611086612849458640948447929073232691011814129618225105945439023453714209748898034722375060403622508696054912035128512192442621741058211720357252870388371882532181373725607011735528096695796437283226300736104422767127586643001639520092131261260495701210430778389378880998198368138930555851571295487274404986275339313204810095655567736925872404590560611643851537674994179076089295954035160172249974959160343145904149256428739116411405572048233596993409191908642687036775271527547699400952383146814582176625536913260226791215328059567431264225179512442254008409879877814484759336983205267540048029802833448654146161005989061760857525224643073013229893285469053524978372486517070911023931629884802095483766791595024324383657475437416290697847397825630431188267530620192879899242321413808065947839274284724335385866839543130394314470949842480672846989975901420092223191204515218230601506024359663999638266327032395512435283588540316333995295262224582158945873913669925363521918520018845924296657393537401660124839723821649808505644436120729529189854371846924053326998783700427341419328933992154614513992514862429508970908529242078779241868007225071195775399489705017098904910235619965632816084341760984398947877471425728439895508041714168742858033047305611238816615933422195021071869406186493756126505987409263430573384780584209370445003268037611708273711361862484238194401084598114059661182466185006020255981935587129340635847839602340937871943229157110729530580459932560469439754148553500106274397940923285380153590434167713255467989408599150635521938736371733003233824322324041859304621096932364781413316349712499970550894316828196008191963331481243778682914813816187325347045021588923859888879780473368490991815456174294875850908787151420384246520505802010143508252612045990370481072669858411483764061723136811496538512453707087415328807154786246260222409698627417780767446288576729831461677051865146567149544798934364720716596873330319051564233227310387549986973648171007939419761059227791965741529281664295291590735460376589413109090815469606329150122950064602725778011691992019983649107415906950592289184269353428719480814615386477907813630585756293256956534382527505746733168541791493637204605379791676983172678933448693678620131517186466307824800294146275259766756078591219195587141856915311036299497528777499304462632053433335675100718773648598207186003932446720910041910058525378855803754736656921063853969802281848891994785343574301466491964642669099497092961707539974585112608493192427591898113984486343236647981412461792661408574301085374552257191845201813666136823585986709795099538298622434119789076462651805085660692427516131545193057739566310066784315346515143819346895908657455293894374815623133708814743909798023410380803969264454336168089316250155272102061892705188312438834412687984167422050865843110938083039178442638120044147018735866834827283010100359083875702584269265680739552892925946555245521808782843138420832083961622359059649226771992316779008104751188951469404581584945982281826279774521640972534310976054725753411293912653680910415990806418545540550473621207690972719751385018070524553500635493947523660521727540180197904572478675288244186769560795036129778867780697130205779871883106211047195482557241786251591337732983829085606336530690319967025784247860971103579639362248689091341282044846546450615811427131608705034720091142208146818357395174219016856341362444259599582080138156991116183463002701952967410021939609633980965640223987025160105634823204092001582110942388053292447753024575901777253287930359744088281576125572658038248167182922066426134085589456647245945905929543005324722770753120166257795939515656384193749564973028550494943615995155835950772296515814420365153054996054734997259246226767809294904956869973513473087198805006978735408443647330084471388375550942803963290790353934089725771008695990579269935580040266768891195123533039013084183864823389498102446206837623016437260575206956384858793760538260390201676859509382970190209296628678936593537053258465369945265149306282497668328719650364293737065294118368665044989379945627009210790959700651434319906755251494873377576904273363965704204948329392216866057562668108832696950370254124467973827601705913346919348920955559467200188084508436618093257187278195645807732850818843620776482206862331381072861755511781095701730992865875537833662598783915764782654419597742075831324354000687117799415951641472006052097349512852279532348062130773779535705314530824965306528628890554062560113034897889584632421465234300833880519975114917488635292389021014280268644070807952336354231032514212151498627786198158815019687589795016975615204868233066368965714916833808880938358585585654802837358990473586803740801929161881251260525737307524734353516386015069078231863250970967111658329545620391549212990878850884150035078976754282597429419582717166170345075385545992888476485609529229563568883540260876326495794764061118551163412693022887730707315528392057761688784789794764418864366518248631885144720062630073541198428232718055363156171738974952898105260513701810381511764585672918261088802218928390402988622101308310761871795386515391453275032483765278499034443193793035137367765354798728680414608044286806021071869017580797922013900876547398385574706668037958806492847276085656557350195845775593186005992259344111763955034369439385637024431280578964710646617570910488182221607095907009371668358240514894707768500314802490107030393928468310490111766575725617065727867131923085139843762499262733527462228372666465010141883471761582138970969385394972957386328919468182370928310945006687362474231926325080031319350521619509543200960051960965012505681837069954141911253137181495521128637961899560859391866132831498753053936346439005653524179724253166545554263799572959829517433974223754870102668537749699563452533054241269462911098714585127204934023474237147455504333567066647410981495815404225083755187285884261390771316257722881298114361243761142155050980613763286916155373831894954770283261980116564868027420207427628202365275676801324329466242388181263596910630705131408010368412908147884596657362998197044507671413943451921731758073733563856901456648139844910487790109694732227985596975139365583901922334565234029285703354595279112874949014187179168742226268362814909183599608558110668707887223212826319319688284718153327723096966526492142474434137514821345202790492029119481819864445703286540662989516726074423409586605307707412832451433155732157243553493430864628250595757823961220536789391415883710870233229296013614074014378715328468227995434861688598571420081638244684358131152022311564252008029379361404906463981560613463174879047158853923953408085293155764518893205887926823137809955272597319775790792714482033141505344828490681648255448208621299333324882894213366289732002233503813104801615193639518121993678875326759788074560370297569542215704962204540294893853867061301474133600071081978215479118099872073672373354485794789710720690090107155142557017889282307009784470411899749425220047853007105620372022556810876681180399056015399081750832084560037499837484016586455284791817565363774165562525887130525994208070094229210605479864187791530250001630317468473345438521880658126692174336749202901399157221646645873491125755360415269936929685178119449003831868079537999213448881377813139220865101975250770736617459462392225056959776341570367261720706423349955230061764170133756868348454518147234673718085422429656089189726278470182073755449673248494155989023431104074708419154940102969515651938651553908598900547154249254839410791155531377828643173096107304755821340210757320421635969149642220346696011781744589651044443929654793428751292666756912691454444625817968983003553561427999046890194635522510334943308591814120208850691261751472858710566893984494989553914385688993917820437462421904099959215100940501797988650702938132911841636513373649473555533681826046882996984715574607797106426441123451865285136975571808914613799230336854404190287977727267659611264299142833572223081119038320307917340284516023952012587620896405948744669108085842867387083259048803562756867155365442675771922123394402266497824888782329717135248929705966719074327772652519791775718087917301541456100738101420010472037485215931049069159729207195861332741869298369736641971482850169335096293905746459750530941842802240951630540592887476318869621359562104254684475095970674526042981389447486943057958751966946464479047647691568153463478938118556980941964255972204376958775560423291679491107164619189846723432150087059810285523025986754038902562650907754442880588864636885727752596791724821489994731857611024997860239385914255188439162463289413477904241630872349208073664389226352192210390515664118142773129127415555786549142883343946670608859012531538956205269622979156274195739174631080773274294365897278485506828189212401859817739509236971610982907751433272535763125944180440248046595694488687738418566148764283430467210406369640483559781867477153228129337586532146564958681915679489138030414107525566977547042332861731252418446484228442453515331124671982379647447886040303279523614258206704836986691479178969467008174416033478608685282708969500397740599791518815141972124574966109097184696447627042097584636323243991999910455755150690485479581848943836841158858371671179556335432761132599848995666444884997106862882968055631198093835237048072892858896171619593665915663285154940006667587541910648764254222851739052085668596255740579454991747627318388589390124267881507341525773260708214025592947397858248629689788235608997780010108076683745005854661323169362633249369335222380496637260544416445122705811927298883238948153512074930975569807993285261053973656447461009436456594213529696643885794213985096469658296592466295330467625575455170663971968518633997797746456161756967808846476717180010117129482436242571403436744309589221298935763993902762795657171924183422172784339026741308193788366583693405634393022279916777286875166844085502765847154160456032732829049099270653329908348083452958516627273941717107518181451322313150094454033552340188859026266870574957767781269109292616746364183728149766574577809332357155646579457370298703992691911163061836268087427405725815877276531655139924097207060402599458801679370459282629643783729003321025051285679616661358286003248546240819133547750160394995753383634570491642460296835304269958664691113356174348934504625384297719626495771302830402354542501935563778767832391651547280307484904298451807919223815665088156710394408341722642326308330541203946308851438922230538029071111162565287428441908287659648640307878576647654842385439101623215219110675930662817600001285446237792752098623972456534544415749640830005255079316052455293963870038170560972278982282242081871284134042723790655615895946411124323085034587893928755606565132375963837184358192152149531232536944387664197359530035279065238178381443560708358102014832495458753780827838432017009112918908507271058966866581241845024240751818898347405254107511746462444905806975883686602181854794112754957712749524545875449750610583711096140508013721121265984975362444821493712102050390499533538838627856191158311323787673957439238285313807291238479367092554475646661618587630294762638416424469201914755497717611416021870521287254241455712829113292307341173238182325022022706743578232042425449955955605928150310673825885161469437246197855143350695048459472030572970417413087466198861836265082968576785507291823900068617501841793791873525591091282370095691109640966616828870444797912595348726815151739561193097459125521092430825285177767961468883302589900437535222206430940995231656597227240608098565644803662298999290209382017186177765008913608134591934169946724420716481593127015505935644950719741371670168072102290678630496638132162807383308829393795365583529067132728642365622423335775167595018486420730179784818001584795995481614283187623710353631463717368704658338846831939691355947701878242945670164436659768016509218662063323815917951943684908586848278510226054236646454449241755110190924893387092465483316766813282264267605391372182514599010179760506121972350926830734582865562853067773790677649305959348156325810821127799043329996803799014611727495995561086233555881645923340094053462088181705862600130864416898972702385016381588883531349221440385992971346377958211736070729217258783507927384337650715510991080912919458786493381806542242376775549951949877711096815216080148187873860522130678140913684360045368667164018854781331745930330918430210609908877679002447665058337394671541356989740084784202458839932304375364129448880193943019854580506409410409564746305844977932413349102613134745165942639292425587808764476236669393485432809999531304021933295400005979445264061306009291474751972260032427248150799298570193656166117966986027485808973264074340238086239592820938220962078247514378790916390027030783825692717899882082050900676420995987297169339481664355404131545369002125000538191320595964011121698590096897983242771306946928229654347505384600654880219853644273749696480269513281637907070511522648662963292719594108464130606453787646589784942779500453550944926911630904510309936175806725411848654376258864493899945461697025479968332822329812059249200917280843631065149395527662083222298706403647874035661589513519065534166242294374382195403259582461509349536693130288841557195331255703289242626768935194722919699988181417854612197581704021505403800577827058996611513125895030444623220023943445958926479764243015377693479424635576013477262309707237163062341311499017523742215919036473940494892870408684645373373914831752596139647806757737412241842363056991688255151873021589519776144105706601248356574984018815986047223891036878356546931586346150484856321690043944326929508453349477965112317421018645351630396258929082292483919119080291795633098475026891004747634101466594295647040930817334699650470687628767683795672487160776249551927017414052962120414199507357470422875900945849836441059687105980483225300193611365879204086093313564644524414270874485823273817911609516219678333094872202142463894801546699261150238739334555001165305211600939859787403718375163137851464549443278648896301653933419535366894201273368096227182865505063955829261069506017160831731009082872493827896499334708777104486216911633874475496680114108882235320558206749709202623337678687017838721855954740844395940351788654546947073727584950227283256795641667807052665377846466927126810283123435520738489755996635723325899513614661697543606847197920046574448192182891809625960884577890937475069390331186229865520647325316942101914862393458539654641855234905704713759093390783106927747673490501473813924186207861890951960476535279078979785352326644452323060823180024748694953670693637293497502715632893588322436272320064331597765766501470110875941640743545698336250715479408052478954591836911483689949241145022001362339249487165721110985236126380655845990380812785011436018831532184802085813418866163113885795993284951080124579151474034935327170613123188157277009236407091971097037554954509357761525327008908980193295508040860797925524171157743531021976597116206555957520704388476583357183106661222802567503770408553810899426284710150787384721545655457440917764229429060677615042954508813172645166404542770275002676351623994980608801195814637203621090372416681778623634475136987250405175021627025959465295286509759741542215044130635870490688911582887136015736943400258452088017536439972806749920025735006615424393437774635992217929290099122571571016394471959316994040070774182570329917714067905837268334547992547951879657768642775911632053703711357172743232337841569060088744895197953873907484859403398803633885260502685933224050762817315497580425824185147763891517828583209049521703009188992068124988766085604327819173277690065268410291981385716478721873116884164589642834644030233243686109600296736863144234233130390342717667727589935473503110518278979731758053217799761837385800725561462405386036455471627570524853253683564473069518608831609630280787122445951589093778791264986064269456738069628278691897324884610196642211358017446746817685749083743471100014278570863330480517140271526470464215715295223774606973048980714896771639769850782866101134612564161034410881574695655993045273750033286775388063649716826985986451871505675134819665799901924727417504298767382846340271833717400505428100906490887353849045021721499785995484205980868834954042894612504134224547789102160529561635213890422688805151360434950578507244340862135167972310473568231319886129390095549731539152504721237481962096968080471376268788678440157037469218495769547187283422399422587469543462221942496420145090150957149798281476841783692581002126365422123095790880775423166026399535840142764152379328356691023798227446787091114137228443895652989532639458520972788838233602255924389015839444884109988038082617652332216119088802592675834489697317376597616455499452889567471341113625851939761421297157869387321371233612358116855601498866277979702832673817243510022572714004898420420740026889851883422200772976042563589582710248665303845091456854987389081249447543203886481155144806887442861708523251992757801589389957803652736846040946563384023125919159633034529547558217885494647292537620516591617290489727064659261477911923085518167703243851424232308126653512312829940771832812077090375340211605420982523105450548167331202180085895670791482986379249573389912113239200291316074062968642655645710638494425407585454807609301585655409570526418724250373559661089146276899189292165731180787394092939568971760926266016238460751946814890873289964658657907178235565406689244087956698532422037900051090200520203458052937753528399402512667631162029135042672093114803883746759643201116034721910534069451902346632442751469694421903157546903187994248647988550191136719039026946744999731253786589490966356615827695963715127902119211148456367968435614751246116471013186150257520702523621724992780605047051990808339885184405608707566739521131368639436157006967310197003227267187807341670209955214238119801781146879841022737803708544286263945202329192175136310667967485135573438410966012728473820206546394075184945976826738222947867609757046494299304118511324582222018601194875162426276372729046665332463820826389709549887939827554344357253730678526454041461274270930002760433208093214645393337898177148590410606572322391071186851552909526023454029529381593306223474781987568518886247361764041589371704995949368807004026635794467224764373559376529113631650541819148573359136310995569003353545755284995944084634797123089743769842138442165407653508172672126324889890718784840984317017373368213906255254690350540083335804341336626718696265547875687252836122754409617508310770672366801638328439035411803932468894799041901120100556562882571126410406887730113813812657873691905872213101837228803734305423136429675200856686049878480877598946550998130625549672960381887296187603243121630300417625731446568446188026397170050863085111043531296701428380678520690896669134070156458147375666909909565741867015375960228251934055718752208889503045915951906676706710375418604562732966577667795448963526928943869420109168341251032348233063054641690554388289743890115098098158189209472436916850507303742068921471554832908452616786753300288962562708538745531650070676748660206809987624300415626945451778276801388724909422918350409310206753362458326489813251248677840255519812082621950722783466676489553185639953733061600545292046979549533630412855148727302039359889278160037649382617354483315947894742975102476965754916704439921978932551589933976735469249135991943579119587150044556786767495089188583513516894253471710171745936370723829609766876416514618187660348110389989776268891441838405721216972943820555410017794133378001468849484797437711803851439019200060561261081843725308545855666021009472785507313476243253251093816444708442752527479921746718752911711426809992863151394701355291358883137304093988220499595868327004299905838407762756329841360904717344419236726873176880009365524330970595903658415150389833542910339449245675637978468197706262885638180649863960989338147893019720637903740255468529035395301345903210018766127522612232728327863033718539837035026180512117110199240044429815384310664938883269796327849077759172423511348094109940389966158395442225321824495043590624087230563561090057556453425476213035469097003722682679691386686159871220839592980056857262835891090965313056904125223170149605197878310560241162786877023337745834813144389047100002975895689390207049820200649771245211571402162935917895622392517527352574941348887412073928142183867150484885824381530386796881825335252758962941358308913552024164013920980421629068155954716712493453698288227439209202841048200794225443418786153615696249048084103777471991628224425581385242950689205320210539307253110866944991420327607910903628238977666112222755935090294326939716539314081506070066336177443611422975324080622397152993672488639904791215480213632561785930981600421259929998894188675628279509845519609492605770809995273546903105792861779912138880313895253820025029903267051042868760268180485523173083558112272352118189974202257875431648368171536616222131884027536090892170448123688459884334282876316225584794553898295397535240308600767822221596621277121067551059695025530271478508202648574412489343824910772253479912353908027609531075503186066355923316475172928648381240330156642808621161164243664660605526470986505968397699008121139334377788825326141851927937378831988456029694914365851680325651141441321702700319809168144611878856151383067391729499600780621304484109236659562210734274173307473942988469407268780231284822991782576872382144577987259716942464860391740176846740398499330663260064083580384374625147665949469137031422547439957106795872678588414494135608222300337245785834443476024636707569315870735839298846597294842931213705535266891542888176614769235437628692847639999074347970122787171338894324398760872289023878474014082579488474068511477666201305636646127236676470708033484766185409837647389210892455060980721435338331275097561358109023088952808596278275092817313972845158200802316375687374729218030677611863855255898957186227864865893709023379950853573009770491739484973905163749454654787238768383177669330723659511910871263205721321279222310192421514204008340165792286548811613684387280335872120233265282819107380555690360139547781494636630098298795197593289380760695677736961926242474201200918974088537944081223841077718527345327400781586199377660273758368388795285502677329330745997272708549433472922722403013044191414077828211174803302406432339730462197487145034993637624640438964396186370740489861196836265374377320432702957694043072087738298431929324546832075664946249185323962172591881807714776986423533395486597028075382378953514294025130131130565977746427267356915740213934558951842790028649046960104175876073490893741273190503533558579960055933335051927828319453824959471521944667529248812051657715361218169976743536909755916057470049315990982301299250073527727176650671108998634207052296451608503158031086525150595113338836614148961625873122559488406585135772571380986433837968866903023761945348030340204732784130324477309856581215611524272239301285086138358482613612982815621133288559658456986955418873810525691408260895273638529086373404413485013626111964631804571321229652659669758441559572336805205719055370284094139176486846519389492160639769725675703032869029992201410229596952751541579129464046498824050275233237929156760009435092056032136453924877629725492026760672725460135150795291008790474318020898499082879362006062313899494471754455129110999783751989080345053422974036783343917936890706638926226125107933126921446687309004754599837018687044752693269271689303787789151578209832109061118998864806656920062759637225550240170010173005216758914569009938313253180938699424728084190602788842082917438259865133359291789972233311027847471716148521660641275140054948816961894102447653329662734513251750656225138785011025705003975756188038520618937405064834939971439773905328573314005709424609803364886136676979752120915655446281016785575889692191794007967151617300624052481992688372256932673450417354781681681282182752695234958146653689598433755953697012227391061032574531450419035596838320894523025191611589877741844283186738103973133873169554449561159385681627802858095117208927514159806063390313122596948408944651327001419206458931602138634929355661029444508478740337932791366037164464355653031789500439414732048784696685438838881770865426753996726539929731605561552908833958782252837558570869143272941503782217144288648705222933960614930378699619653930355562578508768964495060214134839850531259380264587370148090258569282560087931406460231396526656353300730302546796800847880685709817401196525896983844850153588125459667456817264651143209747858710683911399596873297394197218815808569724336820336924676795384124542371335121071125102979353507377006653363473443859618156387378634291921772735579741754972165981927673957211682212971708711728844464129413158271254752098609915186806745370438636495379705724534520428757971981648636189496695568888269015342739627178758803640253595835675826981991525457214649375476105444057046944739356182451089886925596780086215251672472728214238512862741659529528413305182823796612586634960646948720424421353859687657021393783598012079039542687780457138612976101291455623524164699198626041449091087547021827888242778514518964098868751972172497214437285967213922350004752996900415858728319257131815896568228329170986853946285080855522015324325340239861725067468366257734153737003498078071725837697003265501978734421284952564372394172022996571319749377614587688110408213513781751096701931810165769718483231679587237792310904949646412659596111405740490846353690691466887814302849507891867305190197703196055741077947490463618994203468079693733781566617453221155304824034036125876839583945146643065653820146842771668314185069701750742759467785593675816981224053644405554368687301316198671501797010074570427998093955138486977379772098163482022208130156219205008733743324119034709944257034841526285884157271845594218765449106108553290727885182160278605921156403128753702522228238846169727691851938367207195011735608749440321045566841954377138074308607820526822099234483491937368097015862616604833382017579959872478579866565942631254883251442812403211989091722730980276931099952642703695459605854959497563094874588745766201962088224137696802284884416961321650430574584723853608841408645872654220605425784971282230610645308907219031637650169282975076051450580951141544810164159173749948942939333288073019940157067987101134989611331584431100294262861831843465332470568742027136428734318140897507753632309301329180422006718458784252733397689454109203329338301791830346582076752619192187608090766759838288446356209139709680483873056491856302687831919211454356978406539083858636929550112792143954181373736762971959951926937520970673046984441712816675623646189154895511102966935728175702334922623493081883024557825537116023303243401067161091827598737002618622379149588498731072528211187518835303750367473507642472458895778637341462045113575305479447630116263050569020365567658689440509044012909842214532571168525033391192555387341706714480328780662477948087832027785127901775091630691910747585162282615044956003416638176946090668169825983293860682554908103115073912828811500401189992520576223719642366177861438086160879348006889261684495031331207046012963906435951034468298271519796401383094579334555458972609723531086981918300254518987549983480525528318673881847940763165053949223846724488691874300116457268045424649135293448221300670771732547391224977629918862582308112575243356380988316195847470965097773260554679147151302929444135055726825389903802829043777342175909326046424076085655018790303202975812002662922450394794809910086345687514585189169441897869318641454865286778239081934501360753858808422858212895080834201816346466481863488505224274314443471033281055227696447476644257610372212774087008051025991643946640398386057142683295940110410681915960602950335920263207514965070933840672348046218380242235620978499208319865812303592432664002331098405281784478333818630565691318223336979852206747082242567657908461922206213202614223404309506140441328184428133350971637490193458128217113970299406029044001305743632945561343846088953358034554464406685108508929055002488372282734516916947393726114906730024708498886453264902377893643385092895173309549950704035986078936324228977070849755329437104876673434228306766222626934199723967396017181881786453913788265672739241525193425965519397791211672146975765138747935698021063132283499348720713844507002063251522049735555085250066466706688541610793321595512001975053770979785690846054340418522680168805875611046224568843817073727347429571315060656856056121310165432032559023757484074766453453800446260680069301342721527233618389740641343022630930113526434317509669332100747725310796009363584915384223446788042503031549655263394333376042510576239470688443625241325530715463274400496767578491858461736414866070130482739799765942981279158289701299285682458428291940441874218422287584510869756456749027471516218725072253191156837140337697161084130593509089257529632145609833187207564744127496728903574592985018912233407971090372650416970930256739057966250760781646261614888062806508411205808897867029493840865071746104764135004953437029892939710552584802521302458226414985514394432470647388477704723919492173704248739578677504063137841703291662381882131447512460570667290835020076402108914750971440897527183237656157631897150247156833927103834365209091797554004918169074124680937642815068440922288301068873032262735562058568154049355500316853579866863952877566345191759335056132636992296056856556924655612307540613807190756622934872918851438834763568458283545159153008706947228256597211704158039294151986175954219437577753594694676712645263559372264612698461223129893821945175147901276047417341508269821621403558330820065367888496195065263924112371105400354588450325482547582632425219034543171531912306769644908159438280680986203436337009043711131312815374443276334184319122840509498765375939280509768279871024495169104667855862768092810337825981286674748484564905648894148546493318128916718935864476499788706102195791520113602618521017144853853085207987959819048541927270325522282753666604291681957784330937740186504349886331164002088114135173871885733318905597389478535837847832367620359823250232339630630841137546256872940008846501630687529715736157011059580778772573560877228719154607285241429483475447181181802989439771699668113659780126421421764863900858367417650327717276391773179131477767475657216154275455802912854094552649862939339299632044400707494495326302820888452101383084867001581966804563592160974291573252383473446440667416669216561364310298459795961397935389027947802249313098182557378208234996360567991757602493380275311625559098422403574564319529302386877758908352420732480630045757916905187898393908032937082682839614238299514696411288231148263811054838853235594294021470126976181015217227043295217996701983211058746217182079985215642163323489640851744999927654833235908834275885739327773194892796129268617003743591871443214644904114952462025269120519441226268348522541431373195639984191061419967793373899196971670211545191378852885864629751675153434604697700277230697857867790627794248924762533528657319591593644051867540713189042476419775312900743672254590265881346112601795226926018632476756583748463378537746066151971551686584480543412064639819869925854143898559699243587328816052991294896237211263149471861489466274472061820953643395704262473793120783574048218616390127262190358155705127878736844162905410744529242740095757859740996495274207113672746169087563849736539089906668633287256709143234703236906314362238659749260286536793867117714729896600209027772699879227236927123901383727912447220063522705730218752629716300257776364291106237436188842038541377665249169732818260443411520675950019342907363354907209897875158748273293465067603967962751365734167500906959770486293563646926863941712697630989595295190527909053348146902884530837983540994525082319902666269140064357704502939809119896960381313930334795057241055301316991922109869264139131445723177215290521685416868533368914305091657694720720732191796092911500570563920400907001008142123715157082097583427052289005039630411330225304894338998568847435047431331624569092902495289525807669680949563081660243800270446485950890388147525395333276618115960836794404046942619591894189230732712305166583908611195997084580764698590770191664255100165573886686110532242167952024907161768428566073918237475259426792814259358224065945613014013596832922367285085023189962944671001522452316069519756290525609815553194305040091291302689799321200968628800716870519478077669720556894605373778084835204870445171582469930566959701693500917125269097808432091987487502402143704259424423746668595318913019816368542457040859828213582781109877035037007208149310854056553999904177651847513590839994521451189354964764669447309985524503267791634224972067245253863295618257129279212284421853613499875287815624429718310307535430498538101384815953547676052716690780769014080390497646406046272868573676879322715143038250501233509972166443371945068631071944644941640716923098175437141883667202920340422196271068953565488840963206303344071775554921250798926118674732470067225687210726481197051094828811929088310448404490837493080125322210279086103967153946092922605310447493366122505172510298271871217327998181841998717324462258602741774505695438025821750942189306161301249920101383945277253652423879422955427148855772815654068790325280044735690259284950039748356234342846372709898089336743339537894048409299502271675666108064063771309623861668008284506158790709301231832097869321916330693646028603147466671607618705385771745003906911526532046949573301281192795824893983958137173408343888829725049046289533923783304976691327438645490413626459782716872615731808427408746825419450926717555937745131425806747772597594705688968705636084552132028113562837507117582779155855149462990569469042129045436431476305847381272797032010335851701555013303729708368631950651148134244588668875524018291774995899086219688589425965465405704973601585082608696256967019971824419859214007940552335231374513719695540390015599860861459929519094545210803069494631923981593474157442661048760391144036576242351852517396337038956629351613756620641383144023706779386478812617890852850133949454273006246217690336412918533279389576790978133740582953089029352469719546453383653845674472986182510717346742956149852431977158449284313429897922690263332906854493829240917188834553831350177572840044884733147920975626333216245627269184517878596875209395529064313323863275838034374098635454325672914997083017945870519805967891063998816842852563892661864651639791719313997666320106278510845316110655443948473220492944369813272352366446866772880590738540723055911224346618424687760267919821009207339836857330899232166077724653383074629984264276891379817591516238308639688142825509137634331821214706456481631604242791917753494338771904209507803359087541815394825460946307237106957640210053508132068365112062160993484783488746374865849740853250605311023984263541356333428210788841252127291123335106309095927096731000144672467809335206728444835336431967260112729740398132797465774467379162595566183539501688358595274335161310881486075704303065438859340990598464398787517268164731898596789240810437531861631064512868196906452676566702053054865159544520571634090488461084585037227039953161169703738405863652653339712190608755835617288294725948176872077247466654979488657246996198097015142611106379440607953910579824272330681255860757780626354615651251083217476778261079863886596824040057645220749252645413316963890283258329694212513420525051190900996476285576092795761308788404341575504288864106382618415047838080287127140673552215941509192542061146669689510413388518650785473332155893605800363432486791941554344023602977885499326283434860760763424437601226578575960440566671769474151112772751316723758649992819316026914841728935464638617347696603874377295399800408543677374096969595617802433729854667206032983763592856870583528731118562546185055726396401457635199876977654811867645829537746884947324255806637542955454069257448678190661379435395466930234376353779984852590253286885072120560604985736590369817159471137273588835274141357544019645744298508018147717503637865822825990540956087702501988875725377943948368634410107376208644609472242843942350677811656164179693949878948665446704923301966240081032668538833783925568929244857658122643657252918588519387800675254343290579761042289929767002180938698042562065640098651099873221145058679360409061328488098566601407858871537364834879209859114587638841503390825282291818910200458282122825635722501925050312542617995581035067356524286254134702018164692035984319354391082903516817525532773228266733156068051495864357865274883149552482755721583565350084763009627088120063654196835438126037867303012488602653701661534770156825921597710297613705135509427610389585254017645753882454388738663587429582385636621058086010418832055366000034025354182396741497602753946697299637138899928958778412256852554397829430910501078158691969428370207208769974012657337404961438352422054701442473821227205194769709322854116477079915757925097301763086723485478425838848062811528252099960538613406843480584790845280045439333721867114344433396240994171622418679768537766479629601832837656228737631005986722975110057038248808950866804866314624429577575224035464192125908494618472765507013577310578254618526638103186608296129368908898921706036996889742689352821767207993835495373496797724554176045721537618167477649909659956794279162857688368605447599024784589238549261704046299994815985316612149094109478423274104983780744099631961961951736783165680933151543149783030413722419172292535585029185803222462734318997279429656163200084419398482035821411239869752178952744508098213862339780231466050371336542509495760346060344715858918942294830662759369770829357714698310862571685790413250761239815931163164062496372799365376821372786339768855084996180681182558990017152242792228708428428401715729670383732747683131500520434997203903387988568867629477462141880580397845798044001776698726268107336219552455843039633394420313602455547494639238836935010536717820776459911161484739095771797342898838992008270323721709799092878963211610177472377109546454467129840054015304841234689981999863718870643897080846835955802405632927338837923181164994034411271395762421694319722424323699772503116320353697630936832112641840828575579643954034094355424688210113689878550170501849379908717370162468533652061012076369404303467351999697089726602634954173013267311048069876349776183346599321607438565075216518700600163514280141011822942331935209354884707513136468673483618189673280654083963080195652639904284306275747893554722938664027201427971355621957248899560879661943594733795614338112435788101921927919632784999159004768252139278440307529608051246762308833422841380466816703204856202415333888275995570561505058885331719009061574504701305478222678930033871275880729329557488107811423869885422106270988761237022016071198289973673042822785244066559762820172648165557707453639301925262304601877298126598622181772299341870102110500576176829360356592481555300592844278149719276672388459483618470259781084707410908472376977503601354632043666719891241223889117422716541929805406610789718653411318726935813407980935083415620947300074902020876052304823535765521090500636255412904936885026751170952413601762370700705454770346508747499412301002886764461170992209592107343479093787920991660277001485364857009859877003143905793685692417644308705559177240624157682360949366431395032536213845351653047654775719714196978772439903345981000431220925055153630995777308065653929054972797613006970073154460637106216191034484427232870734051842181857122031975526741680514356511995170139707301894879060719491374665445545128500120419150479926362022960408832620077859610099041286787006993258322491661489316083579049371435646893035847802216488227484840425896781801986954021733188253736000927348573263910168836819133479451564954397030514846298431747002830510129550413042038374585384977209357061859500766916442397101929185620346740260391010219698105532826471501059705173440462153305022431635916917443432776115487397199741913630639713768519985567108335222785574234888540772898329992230903586526300179448605966012981022775021738712138555224294725381175409247647193528906697170725871824810424153828726820808686462408799473303129555478127300641888494476597530430209616320148853132502113345021360855540444391996043341586587150518852480632869968704947796970106502761403246924936553306548290844112383199730636549590891598095878733341862264876127745044483185474248756855620917874691431349936753208167434916056948302098472528612804930572174754192471341068350685234743464525386057197915426295697795445976918871821592887067861692410558164284025810206259226122592680809763007076143640906533434457549537065890958614925336551582954570468101138260236449191923631275175812831437551313274848106299283239530313952042235854964344481241623898363240141399128994191969839459281402512438486449086972975171179705259217128067696945554352224224164767767930126031857639857353215240021101056903698942540680267129206582862120793126199902230358470395404175686827793808822413817449764995497374922011805098989624829450729788922557803114748045359353093824747847653378785245479052865991510399958693872460533720523704129290119744231630368941843674108370000367769074515958261963226335945727593891335729452034630113557755271923992291684899536908098701588915351363753733976108338147374332845079372704869809121726320461462719342164055179198030468121548256347611302987688195827986919858485378127358818543891441193649011113538710232066544449036882831920952038999079637284731298315798037662136026996423459958882108483989236362030888733727257403439072115731692895859826330848254446655823867414799943254604632219219412579069619647562990913599665306869157362324022518096936464539986272843100440210724315018297167362624496702871582447178605360352313689210457994986665391122643067898415881995469365867754351283923795407391140859334489461284362489098347873267610251378281990129933412416913273015789432006282781831917672401354528458878758235925085484636771643787346463226582365433309048411810509969599385789536664045501369852385431755424191668807075612254785733105993117915529607461206397828234141820319444824612618624165080230843291584304416893279351508590780633096725904668234341103297677959060665501377017157353318940057452033573718504888492235884135588788432365423660728088054005150301143223755958216835132083981099098633227780635572326882736376406731357954406085712226462984762022361323978452769857855260324738472213125912931182916471885669808373883630550245178225447636911391064089268322883477982631845627413005951092752804503032535316836141864771327305702464225952089892842300517778292809741286798319945936964739934166461717284888864841211619062306921620255467511016686375964528356371921656673669521451115826820583893312472555412300325546637013744720019588096809974829459502639797751991686826082883448593686308632661764353370154200058281496797220551261351155270570795858576933396518085847915017545554526300565896301687592783163835569301049208400714977562399796766740490791413947110333087608682456018291733949973318696177798013017637154143656620543637222641740774850590259992541073545838586481395056106568119233133053436878682998657903019423244021290047161860213479321179568602925396742006973313292165744355245064509379957608160563950246928354531798281343622650475811151987045098008414583961559787077489181442444654860009871202638967155556172916278009505205230038458464224255199864884386494462491278363866735649122155891456150813896189810548067246688758422582895303248618988196568482904878780375889519930750050000438761469018382659320036471186048994170462352802487253802133531458963938103055106843403899915900865920788443385360912355287373993041359175855277776052678826307358702767462089954399038380610513554548643848821083559539470440553661549742996743970356300640451648488120720473576525073487123143175173148807992470637838843359206846682802437257322800731087007938174239827533175329079030229914501459728982526485938158830232119060017801928669845005885447464951768656192004638139291457770078022061585068202436860182567856210614967358975976289875071701068627780567243394717741947243229516342014156017256767602534289232486512133818992259302306560717272469866418559586718597803278862772755333888356607362415411554856955363317580035760331708215195308659759781653036405689652030581480797053144751541551684755953563597320732418612415532455163303609583382391665350703516442296068502888678510024414436697958602900503557008798431947339541283876262745427674856494070840250601091923586029020250362944255241884446688904521346881746890278735188178831722627471622700882747044928844052480433001809952541614878417558568383738624464244938670617159449048985777058157857049806775567058180455955417431837266478323995494397624941256484352561366925023625909760135641646842995800565395440962801490356080602574568335147788248210917029135340536786568233476343201161570652837131294547410606858366606676996738391982239702493994968417583974736059779591970474086230720545750874914685701608503729476565308041814807606255215456701022831983564109589731202778572998083336609586912373815657454523173751421428442438907182302253637582797821934206146086027300723987208425729308683759911184403758289870958266951917614962438019002834523356311044823895906437894734628000720143336005348882404946165083159859189539642100554148834282672766421995566827383714533116353460471014624785641528606098173419329690045872862018137791946718638615409881969767877301717817966583018130525205299476324019214252365045734616187188227569167324920662506137871222578779113545818607637791969810076668098404240415538427257305345736812522291881379530045618876480803705220227970346775879442347761306205787940807609376693082489910085950522210332627981140000097887405013736131686540124642826770502746513186453427376155017013751221024620472914976565456839514732627551508383809836534663383391085877417780799623581229847336501209553712170071446860055231434822356976032800512821573181958184310586915783184330116755996004426297569218650263920689958907888418305429678452617365354339192840207108004066501838804081107411284656920877679696490977272345192664055494476896284003403765969548452622298385420213663684670068047655223987787748883796350889435112182359844481322045578297844804976659165644955836159280195128150875402928471384235316581041361296959169986033450963373332257987575642833267012151489278722859196675158872998831913341333091093366912327459372393553190972593402153745814942490019405948513562145652542857543021698166208102743782373067354010496996442517502470565880579710570310693522661557381587252619119232927609452994063593588934431444253182462740442657140093717331020138533408616423004491991510978641592289574854426934845826327407845067445848664302622578201804738131279746384957936697549130103865192843212887729712138711375526924549645933461523911926522571070872852719717653098376699078835867636080976695905972475207654703362793227983404574581095841738378192386618925848214918601342201287434852358924830291280679677436770424220277798837255473789927922423728178996221108654319888703556151246242454792879651840584632516195773911279252889756368745937091001371061696380024783622243538456820052748313381005550789695512429246111446508322550909774070812165285178769086605505399918436814834032274589433827549715829810733185095971905028343774510205467150731205983323922736975784889928000706325225825106134326850646097718333272297921326535885601936988405570876879675343774766304025779301308226747550876522904491591405015421400542835825558392444096166123863527554424899711961077548831118913497082985101701978840199541586588486251424193842597426721169025709185214227469552884270801205831035561043267551713858220142391469576624201080117338520756171353947907765891161260191814707765471191696643766923672318588919420078093166903203897603862533340936868927953951794592981656371854641954125983256695262526037544167746182631913916094542916362693437072712059559434149605564740574825305838229955454587902693505856857763921489054128510182244607707243123764353127189707132284146098278996959429084035479133716127800473974204305568308281423241894878177709474128760999856768384460807317122364574223195723539785950013614869057962747406353842439797143506011477651814373287449990774743323156771032281128291677375110052073605854623739998045342793768108962284528572841435676891226027628816318531801926227063546345065320558922341255354701480844994463247694407436877859431206822765402276715582596397478802770550913808003219596205324036484038541415151417657190191588563015826475695322071114882844866958757149070266087549680673052951400724788736540046357314137506893847834732447482065612082959630252322248385254215239087914356765174332792030293402424776321928995748339071571704159249474083064849670882200539366488137534739717392114740781281921858213857601138510342205506657090515789834337624896718073225232045953771988735497434728839319539105456654485970327760032170831179739041290747382886653180386079330557256536231028277515941916402449945515587774418874734588139217804347917379696674896130777251742363041863938789025884797476406542978459414868889667822010621500847302595125166218610123742266893240648612006523606413182539973690749706258766055661924649949042579695052622530524310473085901056202767875733430599515439376269161204865890724996172754782991497988031569672690283175262890660357572389939481358656542034866097068699703489952116467176948129526470612026881503061269683667541749474447315604261899825084860889703929697862010636498437658421194747331590701863523948289864266806029990262597143777689282421133320912672871830243062794286660317107676753164899051674989893722223458595393479258027576594310984628572076670158656732705103404524750836759151956363491926988040536993214585148435049157901628553467909521117971142392562091387146266524612227432189120207363131775941874627888070037056749276166591253193792518563981285946662219209911518201743907913184217775830072215191591403207889189561012292633759852527420202655253192168486841117032871318439047881938876206980371886944894718774160703304027334954568387733737538037856093436383014912108711046296595801373558577803744500696007521715770836256600634667780931572466275743252855890576725403529842382608714247990840745060781697489945968775769534059923320029943699536698265866242053624787806442177612142510952749407198022788658474897588241097520381904984413480753909621922308794906243695714692075921876210241559353212186011280916234199249380524615885423304070222949510877186877729101335288555977518100578770903012519988659603669014994489714998574800196483154783023011621602931411580361965004190252436918658680645575246168051211340309554634919547666085343148310938143460060219865200039340142635586351106367633922790730319854179025196018445587451880169140025083002297028990362092832208211445318779998738129517527912177208809321015465802060397208908564974295687485766385065995044880944865844486343278267968591197410378098034056928257534684014595804372369573656364929845044134759595136978084498754182095868348604589505378387492678499733577223804999083746046234921263347382440395594147400635981584516592351679541827138269193421237300758057892919036905756371146012322347200213060082922391133066777563925321294163484248671544577267536276536699310792742879637309180960409504640306559018332008347562585463388646824458200604153672199753107710022389361221262357624840631800878502700576304910178455941745952982148520325953823466637653153740496805469771638637925505955931627259263921908859634543839308724273855726716109204960741701750125453053970353285931902263278455964380185021219176512722528530985611337663305548044715631201877156138348636219472662338730295169935483791739939084373135436835321668206553964990909123381484641429891582929715666021656426880613061784371584753708846148235423596504938060032901315865578043047994808699470700692111151799044713192333993326518889014086581732365827335978330447422074845892213985016806446681742077772180362544749864491740032750441654663690444988529809141823415010381150954140376580612936141548840010630566863809911584578782265283861547042130740953253740243446741030389767345732174920223434352383893419768939983431703214200360843341895226718687605022832823740493375591067314994853502064369005453638724516052763630090580188098347068101862078762712136032518694083018899711469584489889695096087434899831660258596191011394552491692837833363456103644155994888022500530349513923595636837941390698317355745981377115936795019462880991137367566317887516111486279687279384176004309664736706251419881651863975105505156259612549356934882662242462343503263801912768591273356485828609605096683198467106684056162555985933681889967903146892981547276489558238129804452459806856420773930574180095521246250459650952479299312174771913733200577133446674418557758957746643012080545845946479029398071808641657760361630551679410896341612709172119756656967430797705820666380613390645858716384763377491277894438555420407938228802559507406520481895854502439135033083800814012352229509607831955569819281279221209856028944442895451671511880179876589564764653455814251687441588545654648181398532257056098188656803653662905563646299442511192102899709258416255731583739156910005113721329819361358568511111561911211600593682497109129324857087142011724043315723390854240626265874441133529962415014346859094652845478722932370872174285975507718153282238464051305591067547951891784561396660140171896658202048683853342107724039162790328092078633820127911582045256185703587029575620851829220851590330070477337806332502455406517998953079747308166330534400709110771897272674116099291903345227915143203773886428064968580138664891299981272503417068263465940514999535390294804319118459469114616998138739635331454406837469913210201088666056013697743320785196058945055805237424924481033019826842597563409940143562357191472990827731064663427246656759066072050712895727907473243565238825815792691045706509166647365769164918565435940685048598573926421790071230065146133067054054667242152548475155297335562631153812379604294499801036200975384149190666862240707806312289934120634638342590004087492805185678133705160762979296716262289942938743023108446663948273003170072120642601251115993049468758754136273640413352141933191014514635049121007888798526313923953976737163934313880722054026138307893707474951105311913986206551269163888517565550489457983221202731687399721114446739091285957795888256449420635999542316248048913985442474733554027980783521623461853730124318929962618807152169329973925848794573565957182315200648428462498966184417385300196943543156692868209982244539795636610516105450667584924315072047095483230274351651994628667812797498055579899049254643452853992252566280445233448666363250785982228024692899084613346079571197927419664800911118868799211526964525614721703390935041892158128040852139412094706652847972118261229646733333079893047177655815794130205869735248891536472067323103859454807097848638165717319576206219037553255685615202669523830299333491039788750016807129319848421463050266391062624295403780172835467966673718366317507114842940278641939910508373855604418548624530597116470870643843315685991282067275247442084315472806165635578291510794047239287520688386157348595412307292694453203308925241807344641395678172251964461024806791840141894470287335937152310198669161649895908435522528531409490799735275289706770131093472260082676790326538600708628072435829887375974772422328037164432369682423821427758583299942403751607696786868189564314810711368703014305963017135801472735402479924468230747539678455317834644400830270840834414806305620802522884001279958353282687749598235513277134518408517436561884420347922786671380089775433035470795205928655909119275834423791989207347526744723968683649198567986455505957151163835970559773813942552949817526803944875689156499220868827660274893915658191126164083759601453502156994633806031429079347631419769542797331568216389077507622871953737074553700276576460104020048345457581203101253330285494734712303869090788227165543510920924690522338787933821443621721261908840024288264817679750561832708578265622793061714248826843631192660589319969341216470789655451344559945904906470332127478303494536992682419871507351510299765374731912986962832419714236124045466021231165153296506923481147776230805775702632369959583915367499110295179103109234481391245934599372505114466276099799896866515696676723449916143625015108596118264943356013557445999001391414565755975828099642373777476155634914129590138445531280057008340504442390998211723506754579074819777398119431879137837563498260850342587580612093524806912641174656076844730204936668954228457392362280379594317052743844032314741446766730492035269829303062141207855595505375409308121851818024400957447661658484204055670074094462005433984366410500579227737260678296166254275690909509329349205794176131535457836770227316805792855438939342493214468042848886469923993259355373948884916261540497725077050397734116222528705661414275345290246898948637349454133329129137837562781705559253774679267142513832780260371134333560890793576399137392482937424923777388430668102296090871700991375813823828004525281387606350823803807176934264631974444371489893143940283769069903569368895999037678977040586267425156823304970692933684018268238580991949546274551090682313777391039866497841607220415886561829857530432372423777440709566778250914680242826705488989588375550366353230444499985007624854972755098821653025090985630471851154353245151810512104107380002918160543335255986897957660309122220719072434709895024723634861389744540055586065788389080995211445761023066205720869457925171098502681784457413965942165518686939044183880035052876246410130999276202052861394355001709924634882374060594345967180545437514628346273574093520643826349751707868284245981886425977484933291120823047826781540750278349311632864548928446955010799966047726597743336618787639812480693659832625595281461319525088613984739647114853828141689858802514076497965708698617121939495550940588402497532118435796187153043113612816963847085192687459673996903977508026237986073655040754795633296887056609536386869229966815050160185731430756589819260410885171329978005108197352546593703826134467528124558681972096759249253421132516029018904885600057579991589520086224346525370867497197570377678673762847420548297342160933973320459546707972645032170767908934145575019999785794073207909613729553104538457758397414246025369514400775908946106433599548838035230507716826373526035257680261835517084530509707159879387457539788801080837726691959346669024439763241756157426252408258411999687221806649740564168273394870916528968759740761260104399024609754579800765461132486041554599771971186090211877995917041886116218856022245673583734363046079383042270097061557509933562930159328606672007895520949740969372192136274476186906592308811839610409099667545333378539005178310961061697798566266620619285653422148272051860376814880351377864859388482421765067159756186346589922622393350983948161181727022216309170621137725765820246255859928944655691174802699884049904592166790865798070246491908652470194751807624212658599516291443437987420370304235833923317410505527471760739820633453644222679465537865229404847999421025808312774922715236398308049414052688722489082608844828799204321664100623127337257971166428014048404708007159423792634137453673698042202141392388506612011954944825563652224440380986163955794264044328822688658708190298853017965918666490110651385149056187407702185459796984534187291404727922693791976371285649766184388237804015548366730953449498403377753447592436921964283173340329538363199842404567614575711440217251965428526483513014022978178426780271904267127842307709743931119154360538694159407359321435601617303955835534729002002185486374582343007901404417437784677599842613607360922260736265362597390175308311673400667761405148870237059363462295988394115228844743191129497370746383933470414145510120721819988344549465557463761120455000570369228035712154445219508816006568731741837744344460227707739061955859915004846540105328047309348219665702604220443160804641354409745927723018460136929882272396346265935421055236818382950683656622245967472626456512471686301533287802978804189013945282229365418226246606197667153812300115403160343062369968609566136484299953912429222568848971791107649928403709358640326413370535908460427101973450379786781587719718548925733371651359511985963803351272901316554939505767781564453980490806619315052371110604947959252998443077518939736125350565554350665258849017918498228006164446529704728258559620161427328311576251205665230513128218387943155681849375934755046005133514947172712538456813521198629607402848656174704887460930988226050109860962031833310545231212347808519612806487374830751462296347853878806907247092796107392241286428107361535789142421600491634166018812903442578548098884023557157148689298135745686564937417585984722447336437869535288861346319658025220211183350868699501676611168437038611380909355200157136253954504217822884846931615097804136669899753195876993617828523132526054217303661700277152231055340263102039326569054912963889569727135325829536463598669890712084815750111848457953719211076664242590440174631613988226438871532698550143972773526215279620240176036134733547081896262306928938490434482666478343276994081063278146672279926493563724058990106970271549245453694029655417229207239761541820309191009813414161838007783082555638360779276790526285076882803205664597568279409150058054301218966156032891533672684268781842459296501690986309143776925085401617654152120566835508621258636712013717618540263725419211041651983498238529157666822487802236763741998019840308555728668773952617836729529640834401814313446445661917534882470351133496219836523255329010162300029307031913952433585855649332913734266638563004602859410341954370850669508466547079185776328273819426902659036436403521313518805759617236369359982292650682654674061049891744750600568232966628054673703198531445417520955657444380694274028652408944941808144640886262375150088433940504763926674767395743496136157334178957728236991990576623141179065885741631604244560455187353294557979063154240441410425138431207552482358794462452638617346148025385716666508820402429895401728822177956936090947861223407771819695524560595839195801906244916461425276237735819212064053564601415735863121817203908233044557269293525109095791320862150693881844936016304182074486480078451810415176306334517342586039549950864562391878364127816601231433006004239621429023256867455641316403711430848647259576975873835827794080747674823870519255835738444375736780984075120996490785796389089609293227996173740712844178581278156443936908034979643992207774055463897963083989828947966193429199619626404202983258299640219723901611027553312363132774980059651221387733637484126635481279261841456397128136825003648265506316940786964827409319718584161644228429370803219330458628569395297026255650113270320687145380512085122154050003963849625594709788101818566321270199113339999255803318090526459711940279304875927242353220196913060430087899844213178780316533641611866024648463459518266110477542760969198937918271347675622585100999523614298399160185851048262433135654224896440418216921841510106467936543383121404691661513741415876029154452027300798553502859337940528167031883587278431356518569589366043848910703769875177836657000812610284991947992056145000765887778015409526427029503497960774380682933204764996013106569738552041018005565680918359677484111744507307722884078719344959872892314616063287999561487581791878593110868765838739332601667181822546429479400091808415690774897061408243695806090744478329986692240288142421680138706442032389399631187164437124287048537312160485065607428492741545007328624445970842105270924679161560131409330575659760153033672170507867672670131823821758012741533824356688468694080389078062241473391179865381559201668187957270544522421195325381464135179075485299029353326588307440375761326699902403693859696844583444364789975658077349744064003585180003996228675018552562659806068567816914005901994514947648334376795705527275172071439200804956590418736618351880714565663972534827288607406916978348982769680438718308385307361369535052567256349611464349391552865235299460504464433981044577594377876382664014816542504493140891469574443549122746708796488355180395882684348706678649510333559884561901806657463034298680440454264053224707763177891057985047321416612004119597686019292524810794968202764739533843024189997319195510050118163771392641645850231738277086440288280747396758755916052530461905536917029308175715685689208634270189515156389466878249955397244898724785827376065286779328170121841721620363895185465312741165134122194172681590700047071854506727762312673847594294346094314798833920838111799095452900531389501206862531710456696139297467740598018610465416137293306596755358417177619286528009239253926881299670078922462311950159407410493996596688697757874473400348123374949049175819037127274555764758190638032263503735861068827383023872016116675990702804449012606563193644171774152771017111560536949925361865281665545111596410552731203977939411978287249893036934385920882901901097954469332912135299078550550580659113030341739804201139547165856466910741751105223819106555526861892106044768634306848769629915979817217690285397127527485393688622131400018475907439036507100687728819230073017679956022316911559873331262088860581969825802376565898980424148943886607762042313807744707078333636598612351465207306979978992445666230078824616980808983570905055397413363859468765984504894887465155422737002851282719268228589582827528752118379867069628472697109638366217364481832589917389329682527089371467359745085965998088227857815755045948761887879336627454902365039274809577187993364354673644606946041557009622622419972342401576302940912417148892464243742447962731006708739253722524048920688807010238178194091726312799415586527014930905468549032520010589489019496628677214825658645373415851821240074770893911921517258839964152112652235520173489625972022835114022367791473349022665418040455193946568881036461090961502337913321486898488275984431730604553180250891581736134743861178155282901590831354979910189863681921478306013023020843366167697241474021666423185676570267641896895956473161980401012983183073813297794686499909120546230096992907397837160611580197586088754714255111121434911227182182073019322383011952630909822193419486086818772250017463983982254196469098644627919339233760945711330921120188762935718756579579947959496021381795556031144051407617010285121651654024512370215514336349127413801273233139549332921940035491527482914746842662279349852498589167106044025485482065080145437472003370126203278277116251522392835438984454101305315822212454051202687671703917261829055948873096141567562347104605803726186568383336463053282692730310412664741888600616965661116742558867728999363167912451749375605752801904121889885832692609679689306518333750312922343030498657287186452615116345253635372315772035887803990962119029012066808684190023214302401758008140194420123132958147893766942459020796233263865477725571854744127065872749857660681225486327630074575098768502184487743701324374705145230855332919273578499275213042600535291039113695381765894567322339783404392328031907320106911503448126097312238237495088832499930865050691623212935148587381417547388687441757726912861113585256921239904232942741083265184887771652255399575646162553666715540789929126438936763336285570501391093804087082525554856410541344479240557129738737406217817899352648161456885818525088073139555618859328218435644140966722800360413188066498029089617621568600231866293736166819317678766703676457743374341305936764913977022069568808540530370456732917185769951289908679514119247922155037457420718633861486963023061490123002539650167059843447715878420385793440159875796170961854625236134198465318963042132370423594505951882634531973139723271560657734057333635308790944763905762327182200380398464384132678409268525915105137817913611462884525277413129142141084414950698794153332484978194310846053509757032434642770506617937153903785695460285886714827233925213866277873538623547344344505228647044271664699522117339736099896528183579467851163514135332230315056600388059573502606078175022034412618658297083321623400540380866619941521116169647877802140118530153739471222734062782486699477426638851612724263286301287127207742253130746160169379421678357800155322297963821575396897198101081494122516617942985054639978563759959539778416207696798658408748964432941548332877995308965195212497437989066774277361561799007743622068134777233269959352280040672837250027299142485920284901477098936105973559707418975225640796531986949470888456530931766599920100994052551350795037063413509001086340923917596614965683531174319765602432393094107267334312179141401839935779005760212966870336835211972815036601685696611860580029512790452065897378951892216175200799908919996048233783061281146029211287731423936522541367991448695778527102447774837956142206925294083255039155996057259284397236313777056074097455843177134671332292834805572609782269257419026657870560227142300118164760764165833468808255408748416475678672174237581904651099794936513932356954668345098211147995690554114258046606365372308517119924763717977805570220498937783433121448803397221741989128302252108925500871768947636943817004662526376501771101177032788695890440261133220813663073396775529345662040792453100859826183245079948617895424862013600051015838411744595704115949962352823562796821531795077884074491807156166276218041745130274588478090456369057063041260108740226240910492977753750337334184901817651792463412433614986009694668604891709927574264688849291112370053048561533808767081771830890188450570706783409502667767640943714163230939334908540177934254172222968576241142855344652845119968679117231979584451159058143437327407507867820610012493104795116476302235612285584232917626486791530427624779084200771812348247987016604745347060780661052362457531081223908521351173491840845110860775160276587921946106857820104682271401398265652499311303912523370428506445110364680926431677984095583300288229538732017711351341790127758678953096593228218517445083736110449391431483010742373709993082425431911750591651076805531929268373644673088729003459739888257402661704668640379732916940110399373338669897968531485757033672430720669775128953812426931523047625177282267016095889155950384729338006330769333707973567501198890286105877879888822343841921554880229948615596866582783231464927884706118750013495356972794011845725368451092026175108338541976355586549804807334734814215939110330186273541897034389774832586967458716547849882374417592205462811987975221410021040135109059250253412941763499037705791261295519279337523406555150149774224939077548110025932686081146332579454881409278377528286529521864990113274372295754577246177190225426756942202841573979855791224626788769655416401409843588717613044181975888337296947663861115555555263809365424516754065011613705174588840867568595462145892179433475150631190444460855924118288777705361303687066633317675351156376719773371107920288382542052461207122667852398089386406554322750041687457214672879442000211368519573327065830652186225393872562046886734393727758317990084987390083128563368043359305846374280478246303865704932313299843342993529479990414075981760602600479639807670302824293794446972212309759612253171642484011039676380625095620143941701064169282891379514027104275349603215114685636781744557633755897090019558007327096347702885773870023137047712590949457094122031962489203118715657424356482877861521240827171088679253410826450992826160550978837156783254186626775872236401269677003445119181234939488246959511180267205318012776717873003927561694872133215065122103010511784186517409177365936075034113536663427836054983173296263201558362732380060962141269094216379650309221905198296659633857367922266814410333379676039767324900790484403837092174731080430327756486612839654739488742221070587488428568974929643423315902571675284353537384007002783906070058305428965627755377081108975414480646368621367985341757867500106966129943068298892032371628982869030679054285786379999959437085928082585796398524748518710052709604795601297691342326198745693935047286687705760589437185115858122573782249511711794176338239656984650525164385796313546855782291593751896411517218808037019851924887128900876678866841150052104463030003642491124812066635145617359912743630528972998459668709688723726678737666131878777592710373718162371854029838482932614967023756200969044538172384829472219162470814632406962378715349194887364984458124657717316809957995715197703520578812173451108358884187490336964246285553816799955914369842068471058040561428369922919002082268660833057368062835316699963296353863072645957400974403092808560385543377713641576255409618494691509199288768222341305325602956338248873645750645661986837720253621408629223649789904654470883643797927906408317928593208625055478275359165329360423371317468220990626609753357123193707769677833752379072250891163104263418280735342316219792322298768205989191040965196363117914256055767233755706223159282636870650778838607133025573500805780298339303351950897850539021095147133416992724423714699225483298040416824874622957703507140163452241141914447860341457758556700851909812945270349928028974748928063654437956663342094345824204590346821493559278182362871590572644783244470373917512180718231656557089521149804636096666118049000902647501831410542171007797055063065060707382243503481067121081530301698487614675346769324110116401119675425571812955501760220888972194510343512586574390096794787888563070098608314863121445205279710071827279494993343665220975046726440326815271817123143709191409566373603284086294077011072280178042773739386972774876495971366634268722978480279817210801258372972834617373418001773442210225260779486514323265269870959975374955855754798268288402044279990257041432556771645180649267082707411931148852371230041677951724419408914874906521793326599992713675317231282350935258004186705187927507259720441131867090724382809064803657652669784585406472514409541133468839466266199151106370588166465548365291767203910507525684973472672631945631197062735745111091041287958900308285422918003897551661681484439356773342851410719120449745262058649158644187411834880664772758082015193167795753969465838638706788839291115652274146592644167734017032016248705979058127307929296071858366203971655609237299573154886200131472982209434800638528028517818958363932631469190146583788195279287258520340038435191714632316524495399464486906191831815504638000184599232458750091258625532302450110053146983258397055145222507060087140719377981266148687572727545050436767396230064829196833696465486238360123839000395248912179407274791356548769790926211510043180688382198239093564587979850558175798318123850152470280592155758567218977517062014680854494102750075594927047952297301917262509971647770387896381667925163563280275521437368548187258442194757863925751744002651391193246119045283931158765443930796673542035945576593960087109716703345993431506003308562623185904900832088312526226341155054744328309299470887854107242042682032519316226817662265367422473105987161427717553548375378941358991588026171855114245302502284726813245783609306648284811823211690111152403119091971488176609187769215898288066466863824355998928537821188188283680380624024514645260245195617647322215334858839529251249968967247907386717697093701420265574587351970351716693825025094649857464688946225333086267661702433212534327707055888210777686235569750026930175741166993687159305746127304529353907759701402298972061155037161385002127281432907470281738093798891744076824794278418284855949537097589432440165833055592822858625666452445974757431122245626789075380137177731538316246952336753254982333240344004204895293752962473395991292968476709884283290059312687747692175859648374998699588139303669868502925676004006165025696982875711750115664449210131331170155808123082901203006927893497046731050460929772042904128131917388011792322394592061904549245127580775475221745360696867284423445207215023899773528136882424709098195269876230957394784049021003453003408146016901570602500494576928619593006440552123243778552840054311574732294307576596843086344565558391092491865200855546675558405091223839445852039276623348797186698608004848079700734498462545025981913921101458696342621955423573387508299602042936809635023831043896438827847365616005106451141931858682942818618696090544731558107040137295672671939944471235773762985169200704646440475850961350432067703030205954046775206860581280598750497655133202201265066075819386037637663693022450828440023242562408839314340265815832483700870144139893345285514809417965521835093358681548874813032487673692920270206970604488945032711319762375417883514212570184922909418773850488354294573212796810946155266339124867218385809328577111892244459243121630068769588470968472436083133609099184529418797558178664965839486537799073008592638961820465262443012941747279312481481259429289695711873124671527357869753452398481768489777815224964620175792754813631399225072643811754464252949056186989959838752211535646085074251530623016739873386950567468752056864868699273654257524591443361505222836666593425999963269920518924720536962300960170471819067637797205520550390628072797087911189173421665568858591924773075335038305501378313083864719200966066109939014259091638229026843550009223259008366351575130357984251835798237996955573394887170818768501901331123398818729852156803359011223057059705998884357457171489532082555429698332189708324027058875312706638809991570629798388790232782626207413373741482167357114046005495651798252374924208295342978875881229929953506624477928170162519925180132172129439154297441031433868135365756991271542998827109120238292005242209745194863545150214841134517660428293603413772516898749946909613518940017936910767124002473716378366301706086606114636313057935768791876349705010830240835388591104835444465905240985262173919884442955296285869787942178095843687436828463128807073995233580622542690140281903114601140425248760192884244207520343509036265913577069629224613887538425297488043423247953323062403914608694945918136272804066053550778556004583185490602634596561109808319369575456489726908915781800839835693614942849069138722339754350721817328362944050501813843580301647361933168989817112359219966741569116421924553585593455599278062586168089640350654427042841082530155035349623721233548399662559945967441563774024557572266968399579565404013738058680899282292813466891993777044164601933517048673720171578333335950209652073789051219477157232889583437933382647332603981160006875672309865758023082462304759331885419330410224444371612237423388012758806049935476806470090777725617578455936306468389331144853881446925696086764030166034925926280715889465691329268029478521490410883929228319726559684214424288487818624090902879507758749319069804867480976721950229604417026248064042782973175121493704526025840651550596188835684620421896329576388247360105311610191766978805034547576994449863336047890340067399534980836123462133032338085645192774855146953938839749402026732626206859364617194556161537311866282671697715175499116992043567946582365030567028618538715322002080038314739638561831202134197598856283270819527950155808839577011754494116787118054084772509665839497127003078180017852050385567142548358490713575143796820619686565820072352634203360031940984863374808469500224934029520685398746626543545758862374103627924377724075491263047804967677552737685915381326065718640784558151963617267229700087658230063838246048304428636247241218724708622277688930911267682686331212385674678646811812143285814611210528259178316447030161371895147154607882514440285567372335358638536735823809333538475986213268268831476823439272627271962529682654540797474299190209930737388399175417477913379745831363953260430595962132589765516425277352730133790451419386436165771619069499165326092839841774368511383815561031723816064709166448901141775437366325852560425715172230742641532873373867283815988795977465160565406957734984474865704779863482847968859153373080669612982319231358175927334084976633420748910716894161699126319409328540450599470698105562296641679151910064683871186568386717408088700744218857631279058977617526465968393546599990081480108141081822834461827754988963820026272410110295078649589384712609279198686692006692296161900068461741729784877239459303177590044783812225541507088194035026229115016570867777615099690653201191364565204558324203698443273020879369373802438766370622077148175807773962118456341496317294052019439757627718270620196788688967682835380240912711154089492409538998624677581177102241542450936874993036461417395385088397617563161545419938641251273751956292546060474648625074758898133047050694298004613013035682411259278469872476555776267396757622802471786935331279597206455384523620727158966735287040834912724603333955519656624515862017223762978843852783503831273362832721054251842301305267837065864365568016025809160607290764656819696819063057084773359811860554881558348458804054416521528910710207080678159282756125147892078817455250354515653899701011563376351388970568039294489871190344223303687538276838453355535347475357378985861097545584774827805829609331359167249813065911554625480326683957868718720229109036975472852164465765684141331718738458846422133916303579078648437417806514767136039155774320086096747685824638786543329235278297639485242483214798530641806207567046774187189835342290180257439383144662051581803416866268936106140322761497355929704168162769430584976301417851542640665373493719153884494651551602611596105278738126312514080433263520124011932996961808042084315718138285034564382349852190401171053095164131002496849953991102955435801606239963636085414367949160911962935354123447818304460116313260580805442159625610299915949103430856223640662505034780845552214936147073019829022478311782086548255576174396831941729142876749085405867006934524179126073996295811129531888989504766091395920770060102605279592548700301393517916535774492481088004662557852349604142182566921072374722901866698579631146751808675669053147588253898097698908061434828104914958495293254931103503203279186199747000486556951482823960832321937721115284430889203378344676520081050992914526721798295752407424473530667043319420709566663940897975217940982974902070991021970824254831355047759838956746227057009105710617425208437506556494028300281624147630657127254156078054234929633580126600122804493316654059511873847452681883047030224738797567352376399653412680601643406902271691484644029202202297821467908813978761271611021033199197636004545332572537088203156810445908001258673344556049369388503959292152823368768197951405549668585594299685016924059607529285855436154309425848752904265477847384487271750686687376446414653417078263846006903894710946624292899783224118767607737796599011478618636774273733284049570641356875044744003942322963131786255990027374626200001347717141533637114883033598349496114709623420051585135400745908103809690595430289883045163997277660742075489949855364195082252724509721373465948610822976896664424941764904473327807210786502688639521720959321540615321565630052734964087045225675170811559150983929627036828281660400217025276293835884008870759226867698793303676673263611753533217175210222801876195525761907554584777619161418873809861899925689173973911755596238663105749545366061174487931256990572313930704485287341824825064660066924757002755770521461196503956792868984722056165256249948052798093366832161978587276882113107827555994170114375977261470374605293584713163247812024970331758841574416317623521962026998127574527873285794735197857093220735730876348039338020782434505578263231356378207404175043915467654782905918933193461327649482697446590998928959963692902368417698211745605030503556430828028555818104279936732074816545799764935930538704566601201368063788617763195524068016460173348536372762161691013071765993981461629724666074138187272317945214101230781203986293124470201123353327494907685338323588297603747752137349985027695905675778396751958024993260692516478879708126256249983885763596145837877872364557559304475952077126760757777351017714355636867088343659451902922198186518396102227459913208070602905614766095176629641863866162267725541582067509357146010375572315823604555345545407159005373060460349828814503277217158860158686243704764079181124571401101614202304610340562916585454154239155303340242066389080056299853001693772783875517582547235614057366702813272074675876688284333012500605263559046360526883927182036870198944500530980916801479586158541245736211515944385714229418326763573140277518684446291328766097006389103561822952471529032306284311093048976041848620155508389215536788101062321487070359806977723654694092979951259013506452308865675001190251900958678173458156662451328724632449548555339468837709561337063116556010623702535154102282685728049838655945961176839135926420609279726326669936810359827574655327741169198891240375163907542542700671067025791394591800798743501389975273858157217411749222801445880458562462690071996281107215611693140638309565918135811659094460550449046318424007472107773070415442367501314790755904309790753284570567958149195268920980965312178685908124122247276583444111944418096894027152285354281076479319469266769804289088902595520332213615374742544282301412743856756943338070679515726802035063885720220962046530093363518147099978944162234246045504358517203064721207213401104112507661429821338931778231455575957047161831697840244105262697599597820620076615919754784149963664453820655763197515414064654171670340286424522499727987199061930729700126147556863475793728466906292878310782557057710003042755038929934543775437570821064548137099516976985051803406225119785936874000772382074486558314019297699320570582331362326637164426792766995598532077210603563504581993634856487676575432250139169170449304277398893653180140017931563192655491556882461526492719170255639471581882432570968592308245584883157492669139995200118351060105169691635316949464134439789851641707784492848042576517131553299964982352701647671671935098590068917897236426208882386068349335636624995011297156523786735129746098779441954673589132308155395932857527030064927685432803760745366880458890683664035795993011934820853503814652205338931352998085431617201419863167828773361276959117151084549365336509675073300449173562047019075385829490972422813293752206920586415767177464686961228940733086991187835961237962033347369461231779877933156467653307700338687374099478361316849245067122429522044901761844819638581112649233410807952174094432081313314762967568293581507070009484350320214936231451525697258891879583165612116105342560933119118639250872841840034596987271396125754087724822414075625288778469318897498388646075508037548939157050910638425603877256957460860573794749363296190431117455610803910278661497068212158329718019209417578136365101279562238773955321088893568757766356872621591603884827667892799853923512709602349202294198079348561740481914155865234245673552824434655140448540894909094007335284161832531162709001413387607937252663109644268455160731104166980317246537429737974009844188287090737815763825787935806566920961302043626885948862884504991341643457988795115041569296934154974924665533251287676694093941799947094970070695965938972571329883853533509518527227309506810288798135267783125722159886008158023677239829427500084979457722113916016218019873538465716597292613047836247477465839908744854983849376173885975150510717297918191971741861613838667970507608289931021844549402947839766716529590190024186370882630010346124801672239659359826668452907927273598223320556782103460199445142592324722903599777909774388168620981548860136372019905830613915750143878200580860671777800923896603885496022893542941765045926818638594885647158187505369991872791115552841743004549084482145565968917160242050655587584110639001014154599418597194730791318575883576336788103085519965880428816280458047790292498238307338321475981813218105106136811279238019326972264336865835956406449682213174400744850264564673777112071809427979869719765902172593706377344705981260101124907951113923134436579433825702311937612500319036110038792347815833538242178311667412615435745721910510428344796321370551987407588584229752762969549430717740445484920270945654135592249928420963754983896881044724350807643059499207893530545455326173404775311231788077556493035453730215101394491950112537902758784441273479904196892281371759166287433430852948645748742522380833064332216625160313024332361875496347775687055332999533565675272431809016099525278621144150146852209179890380623497596630068308228665079940615244758652464943524009769517339288162986457489694149418668776449797085378711635604844644502433619170086654249612024729449406621741856614828972701105647878146331278935196168067365030295231466422168987994289724498640194738574767626895245718439969859845665638840917181748775591766933962155419597790828220262739379833168115884065151507669631796253069687891391529477668894162448809034732218654920321683207635059802204151257956066225079137018631291006550312906935392630227955361030300021454279303053735437328967626787447293381940283044920766528799383515996081151191355334149486010517914496271991433415087453664755960843173915399005632627082433299559767892675321219625727777514815523812961465704729870189869766631791534204573698920407721572116322442665533596009620815081839700557675025328297238330856998862271588877214305668971536270768557370686777934902540337375625435263373615219447346137069188306629181101005372165296333531342922187227931282018496380992568366371178605872712688399196392451520496979887297334463687977176135675024791570909479986505352976773609531417702644567361953745957493996685519599045654738858662173649916058127294745331568821751138039689945988670630702304210839503377145104528643116976038839987000171732886835859674066797191470565485164384821312767416742742929143695890264786433549345790952911907455279230407612156131366219787081549563406441051696977747014171292198326674647613311839865580221795149916813468171311236890989507604447670847139716635645877865964488143288380785141819799392884704553454638326878562474610581380153289749674995710192165394035622708948253316221612194638990846245935021796762991908600876363427923853563449609402911631740749849842010062923383807462881276909224717372072997983648050022408155015902762151738812955292487856405549227987045020921354483140344832826633226484444014269743451060806192233352955111352153421653193473259630685147183343259568379713647021495079292501555394741545513294752401811438082727285636138686982145547788535183241401942319805346707368686091394417795817241353629327509634435817263245320179383794775707307621278804542943307506938880635874153391421929048792240295686378160063125185854855610984428792231886443195732200871088537408859411910431255036491345025803190672091804649918662569983742117258317059205002076953404845424472522299384685552796238121022444509243814833000931555524994827494296792138703340128025871747440099512554193379507925550201631182338024668970524202831785942964739656775032023784147630500722800655290752469081006188956014078385086832090135004351505033710653923679777786838065608236033387370049162241020164898800738361971454505513071993459027139183185805538178854747276164987904095132967415338850106714297552024202975609956999177924605537862532265140447851670986691783102740995612138340830246500638012530417462577121290980149203111918180522042179328032002596146830805748922610131373035292087316173866268370009524224153627425390572136522486407193239627825854716924666710972678597529195782023694788422281677126308159987479597832994474191890055678298443458629364885605136120705408937098013677226671576920178502701192114116315827258183724833536808311674037751684879071395058577555994776970263774822825195539734884209912775190161865880791669662501984418761366695412817617381677898616149608139259328422545612362971219738305382107488346580907571909154254955225424153796061387999754987660419018858026514574385240784361382518180883635561303158180114496059655297584579588397730389771778962486361928210721825682073269284915377782028840148717877312187492172974007964015778543003949562703242526713632943042814966586168609991374310259800630999517428448064466644671587280972462502449453250207231376885272295094874521743075224111095708139070873665642218970462612347080794625179452668090468372799294497043434737090104368946134728231341702735314223066490165798673214606323938578390249373788706288023485868921405822792435864076387359746267990729839634290264819098061184866621788570098196271817227458068887113319216298738700303028359463222843932671345270757573220892032081062671779428581720053141636405299286176752197017725289036671095414863242231077050349105164303561360852122699625918053505050202840983663702204301332134208081461987425764075283411356419037225933111721491413085052189458563189696455117119257767655951909954171855349284239221643939727544753371015751340950802091562078313087349908061404673656166521671225721125701987869423960408446072377894942315922342021687480834857559445869624547043396837612277905987804737415483300631782926414086829869931105584989174998937842885256016548557195540470023474056523381872975299229042503026336472846957726495939284819052283210421274892498524610514716887765596600059072339855031583725333820824762935769997928081385872048294370806349360439538961447173135767479175724182332213573032168029548396604554111377118342896966693119641550137742950869366228431952364263815004895252649368703605550400149873693884449912090664103233527887043771059868016183080669059484306059580250191225327150749154553634629139834530734083976456726518895894235851303566336651951256985325089693478071695013486112430895576638130059504590291944559729364253510199022758176015392538790039607422481241316767780667043439584703992277403528968008184310925684295105822449186723041880519216848717434175409666296476026254905450616285152646417685538543440753788845866657135934929844964795387628524735847305837389167983270370626543177765688606894619355382437871529557617555471026089950074920278478447484963526435182620108079510011849941255265150672069080133001761038943044141736667055183759698851892883934259044542283847121397124101764576860344167377181900803383212287349392449228587035436767036570858982306417629818929098317980291240392764661241059090100276880349197641378305019854029522317139408146899968663355260727088490132428420391946783845453600539930843498795919936926469856036821122314446291963021142454854153124086522405646944097989863735918392897160933327620219333599800560477428082451093864418364609031383943801965798157558494120529131568249472354051612334878323606346408057413847002804130686121987879040286998164418017935883125071109089035221577994981242706523614926660601440951202348338268191756861170541853722735346120205449394072378458511051426205889341386692058617203965544340232364776919423250330307883030904332468997959843102387472156417815254371018520328876435058744777197571989718604909780641581670773643649357264759778126435517124433523790244050322973096842308838928181377965076702650238481504142855891480012077644180938171458510633011676728714574679210600433430667582718603476567303849392188998874742750051558135175597280632270998228307797132450447113917562836389139337974497227423656022052059639819494046285332497634402170875970292279349335103712314022121940671037410738737729454729174012242942831809943767320399386547673754751684232352971143239003293292219883734127555353213858934298829739231257660278211001970543252144025308949004547832952969975254313676944513769366829519685586971900771613868711928897549050358829246056744789616948033837991471644091274125081661011446751509576878017602778957850322175154873107001693292442266946881959031000072068889985117964116342704100487495244903258133050595561990232245067582539880519568784264424200075310842444703620912289320834638884597234885415401525847843554013512034116391804340716852238125646076904360776595248769869645690738417570117766566284532326560744199145946767194707020060073943378245252046106397594192731660830679564793781570650174020032890263154677527551249186474552711747950596698044772056796564950610057493401961969808597930858879155982910203793154513958641430427472594182520980174459799125504419751847260837815783735642165655204860049955617650986541767906859676816028004811418789083044004959052737304618484389575989809048630641097419393680229517939639191084925414084856105706861896070201095712491841135999120691708841286483869565366581354291883057009926419808844794949723200599266455702770722541412640097187028596833829412770507588309681417103183478230778188895834012397806988864254307870221455644569105297840032059034118657456062687915204949098353029411763499841902738027978383511106618362560125872406370464737844707064089080807480626380148159633485930786863774731810474958329703834457879819884977965916741634403049076576307389702039055718935735459333099865449143631859910639710882883909920350628904052565782207025702937898372628754191573165555821490435304334193740900103444408765313549454837243936656061606413700164094837296695829058951161551228193762684211106334080364618272404248596256214998580587234112371275424241028999315903409279242637368529098627317834255833114331285646621222625910960336049342887832428356698084831477509998089799587144867998189008278328044744595480300638219109930359249333743648064296497878961212455411457575525817042288803385005833829628135809197787269462737336419764922708934030003832488169714175929669979694621343863927285605839575289331724923898696114149206171575393047870143873120370075882106617106479884912003223667314005307900980013236020095394201826474295929086923015187378027946168807022733878498383481599560180155089562332306801816836414565744306955515411534612731320450837497773159234307076402900694799465411255536110571255485968482740277450305082706922525512789569274022874860948162906653614042669489339817079806762867833070735406783173897497077928112989861034020176279006186661482219036900630653647045022128906547339446995681935377172618139217551906132355689924173795251983202015761294612309978704745974988998228672136234380972107149078394025656513292478979819794355079587168023956893880163521964806665383602111911735164264497026638685890346971230509146600523585527094304102700279425408082271952646383342740273206597114009440173974755590338501866147524444400564910545616504323309753896533143024979115740194575810937071808426381090815554532026160079953271939518413275731338375081970830175366002644824212303117793170470783383853090882674326019407948099284028878460198439663492758006063217631783382094910903596164121511789754565227424596575609155281332289056824332654623928811465512698838579062470341964001474372511863440072979387236646171813137385560368140907973054428669981307071350935353651585922639526526065546020555122970057712143163237528207840769254463827786483030057320285522917875302021368797709269819940123800732145205621008954731295730070614378763932453364462980040166674081781675287895363352329730902485031063109671349469317504628541052352309403439448968294389652050223883916976981609137343967872115704736793105363421387391653673494348985304451394461569756868559079542668606504350123856057302767570478553286178685483433459886905277010561060033947351431425333060234803381123228697121675437815966803054010634942755402414168304844755686910171142061602290052534136723744327979234248786609710680668461188667099567851795979081007505137700108989576397986323233409927333233715721495274099039548506115774161278506940616267528942596517892677471497618597408376892419535724464980258092074629422418225596299777129956083280232038440322669556008472331762161980561221889196899363360242082019996564614409398396049331385741236254730824611653904546709812085298928111913931588871065914849741030916822515391577218722338284125548470316729631268417974280498630666828018730456625291029402528000635248968182189080707606663588633451837044195200946287467759948686129637394280370546707137284576325432502101419598097581809587843447624439936672203373105814249870876590928364616004197491183224647761661654241826586382342020777131760447194947216982626681660475532473056638053498271373339141532093060708932516911685243143679398217184010545062071696912996970428435764511879586188548727231554206058853094690681073719766938515931549912863541551503036723127788250537375503305356202400935073564578265666342460350896016571514211288079260559928044170915186922333970571718209426329341601483203321108683456928884771884477845548665606182840574981453135790290263522805337701603869559116997098945998890829586317604303318344293683189708221600306474397037001376776151651155376509639298641095699604241339263613264563831980451679155171762308408846498640097904569666306284769584037537532613667296190405692450853979028335700972244320542343941581282199254361591278630427262376340564821130180847576781775925703413192170267162651230984631637058138846556295266617387301240280712004866758825938445049239568999368551663622692692614555612298215361094163830727460243924819397458701630073255828014793572568945969485248605212046195906104949047164948836921867269535963118773843657710951697338553091312944437196959633439597302041228340470636841150999500817196295005319416924988550002624997513226425452939669274813275834812630043691700841512281621008086654385290222327484297683963768077899315460590431813784800169582147631338317562304365483566454702673389114236603917615297402392445326367884849572757105617708785648125061555197402772375437961871152049301161028881150522427706998647462863887081509897002508804542840349603627162345480153560934749046960280871094245496266754076045186327534880964638447116896338878957031773009203882965910309903911776901793702225838650012424557951001174378294115182506825962884051563965085132191218190818677223125093425199492803431667909259930461458858322924868732486501547529435649303186793337287875896877594743350643750820716053321352828875688821431355644674886628413053769219229747196557646622169025755037950331572682890123771753903776973107239681631221011844189833196001613290622036603483380623746108935735701404962373632785190299926578629674001209097125969655337692040229169834325391071841006729603575277430692802105408192697657327895776229541715280889752299357400529984711911869316571837216626873349673683182024920797642981633947217300578981895524923811398672126630920003240910534744446844369441296977594082456757352196042004147174020876644617610773376156955396756153914733238728558158108027334234779114467550299190607941330456333412687376496370201006334666980498209891214718140316864028827940983874541148539069693492938023608807803314644233314605779483135263521535337866462564006966663111116085177247548001068473773170614426657248895989121877875970886651991912144430250748700822315034205372877318972387002114497381900778373548312245988213884454460328667122510726314857828068654228578266467619855581509944298071872770084198150189880817234123908362231388435355439000482415715843075347947934443745246584373484818928261542966376304522527455197080634538201673467296777334890812116236618396988076457644855443585215581271435645386683537170000502295568558616856239080350008700943211169961256985042444827497130683119291783968937661559042656381816420362659435767965449612699918368193041078116677868252732115347171082994223360315211770631971299906461419312364327145054770273870645193986265925056005955575598516059760492058238734307054055912095921170210055533143892090893876623557768947082477571397500113213169843315807972566147299917055078108012707982760792593577409408322084246172625992499399190178796624050986797765147887517247853141356369227827999246906365470243717474688431267287679950776137627776973978756100102434272204565271321592984521602289624959817460652778327471404701898984593497984473297160449458725987486301991070634775039227034461152838488358316709471311626675244433343791263783098918988496306041444458029999198420650335840335420901711608142915650819055952388775971505228002628855879660179106339458827996225115594958618502896085280839249708079686099635138709815970883487164285891944087438652976901180475330724616446481169737744443010366229816269002652778498965299031484309118962883398139239966563179288998302780885242424860866222789388436304675864312721560159888255470391128941505680959044710461610504825548548223525968213088900414478930728551983711143738155566830742323525406888870550353402362983127303309439619578929105063053435942143163405542392906282130532462474703901709025624301750874476452308862999783973790009122451979296778755889363354038635939522587986418300776683881233602107341230256087783964534123945859746381725799053135911927255266156842567304679148619231497547263188993855524749761149873920985861716864449943721491113394190470867358089194345753752289025671596020732791311272049183551024948946552765461553536333476166648002578882998395371540962084011619695225265319579607380203495561132271516621537382726778601215068785931365765817809588294127250587118666504914371284377325640994849246551671577000307726114607473921487633401537965037279575699945387141523810715376190665853349190956923379686108585832839706654174780248018222145399529381093176997158797362525808939501481185180599661234161838719118500743864476985727072055377164747324998104903374841817858179222360216570844644703869828937563608023383452564003346510935280736878584105402343321945785209393120387040518710768977159885118689407045032222818315895549264075547840035889063168046548334269559177995225168318214710501669480047411879605251815035126270083386236257552679533891294750822146494955212637636342556716673270438526859856089677032323557278133389591566922559844684210405462668611872508644938989506480126430338203112081142627490677983576038411170608204953874488821706083145940666904553319620875329441836234113509497924219214979465985771574641886726368606050718624361859856370338220643802409534755897469320831795008804954135430342174998427628257094320743676344162623711304117993351413712132522907047993074324309528851558261508524054168512534412961909609422874218890054246000686314952894299851319990824099332603707057816929719431676619246541878670823239671896501349672173401851972188816551105327405401437973132037269155639540985640380419838019198426085603421733843025726189870833184120767104939429336962142758808570847562869345852233410477321274734759192326767287097631773987398133767544913759226772030778849728686069666387462331563553275595012436396792935703840623805951585308473328877502009750364766980479654387937521119506654280929571356404658169125013205891643706066475161093692483309424934736277127388299454046591843717953066907888406001159043504524707382421273480932493707991567638748496310518162969050711524023823587770976494879805493936444205387709726062563807428571444979202144207975827292232803108030161358744355540429293108256853307436079435360595988979924013428468502900769380533319680107977719913510345311951826519921793041311251151379649807382852007905182202065795780074869134259550175937509773251102128599998181797873766675281163132051959796436793785682223619584872367138258761797177513077852944181744253029563190004235261063303085093410299439957763522256952594156583444306219164099300413162184109012686266562169560236580730021029638458625991610806041059265960499678603458766917488172339235059340481198572350353938102288409224158099632137159243069954777003796029372632395131790461115164338452135102369668585472804323653961226494926846862834093507932028628862704330306168754201542429377482311582042778602642473539881876336967962635234234966636828255352793172823440266011400820957168369514222589310151156872827821576473227065704652491441921481259366701885132412355756203325232909944353755959422317093881313591198840484214051548538960775031423555675357215219334926629489268663393634284714932911589853283997840464779853701561710436267586324962672352756002642441490838830822478793005907804660705154525285258159305433698917827634664685745400872488303227099680928626487105462981172952256409216661222185780486947263925939105686432783667672735026464032752550383633156933112339445203867655544808754743421842486257827251576315289367080004102422658027794346821411921348048259018566916768155873427690785916954371798958866551974371220117163555613417571303062040371929116826827001363974712907103048309217223124651154691816967076961193392456942394130454202952335643344694930389805305867375739809805779331677937430120088700430051064769983389927460820106627629343721637814653413085453788455677101620131142372782374766276617461272387469926719086457549602214174208049710818765739098500986582795185551511256974246957130714538292876996091079552223063809360098233729890710902993539798660404276517556937728020222038941614199636466859818923139213085979637646670726936126156909892366331170590388477228545363281108390092838600585462007427866660536117617136579316116995740024886526954711971057402079982784942487066216792392763808092674011309442650288021769897023297397602465015483094199832070603324320575620263072934063903789396214832209829294336946828851040619352452745982415091880490375627441340496845492226050885684948546453514420422287463900899394403734809540552964673670315896061815965672893936256677046941221796125030134167560287987189015604145214400956899275689092823236857642205917038799485124537875863049657414519252489996244001629989041839091782202688176046107046698847311728009527412424079839916565529746846641302915112915413056337693381297365221667047819683027223693939078866302174238537119262534817297871902515764989430349705629063734383712904879808638812509995424458615407841786155154323780790762312147635130798198724808872435346679898722261451400490366012201490076879133415174426046640022949116426855365753577169355861416394167629868181802549504003086849622838155485595430961589568354990132502901797594100917650307314350722950468312060539930391950761350895050928984563278415132555700316146224536622785103214337851106249403198017751839037905986171436815797508259411496542524645367316693712515091911842110071985292569804017316854605024899620398632192124289268907626316599864493586034817944499146240213173525122814130053478490431696270765703419269718719895936541531125750318773156761324416810017369001187098427415482368052447499061113502961144026251508745512325370480427956579246693935829156933423332851574895468492455099218866201690191828483466121849606192645006590597101073014836790753376854892571490372314330521611140365243505963819791113453581074962834687783653561719106124125257662433863472068056912559322479534079399131499153912842825314570563839792264056956851620608328700506943274118917745703197324089893690425935843009991934601524856886397525320460018877216271807626653400684927304744666366438935105925022322889089147333466453864420350116514076568670871098695698782355788700170742979416804092950960131163153627377055423344551237311348274518380436515983894616230911899598453781653532643535119887135713535180045190291282265750916767009169720143862397289633587056929442812889900050641828665236025601247817333291107063008272096592823592324948303430845363363313599201933080053193280272311468050562073944590893139414877151324196571397615944742765968475186877639095305322512760044009281341691256216297090630865758792343764858990955442446036783730599876979985467624968826204770866937792054677301294395575343896688074384910790265047546275418966404890441435168036734442613114423094657217504100419864949309298634994249206388436278406347554778833388881097865868369245819207871063282921753265228244514530429655535910962334704589188659494531474812622396351796727284946083707566566162632478322439251180299245124194618358406375225748520341384598942299230981283216167452442240049444563652743293376586309795712639728188512021242423847467894369156625650978234474777518956109550621184514211265869185000366078299224366828307857214495954064810823743294950072919041075223874019990598141526478220357535574669394896114921998173053382014213155965044701257763987126730574596137424641801972223318351201624245154474940788155255142622294418091460053683398317722299434806700224404266196585561349546873483532516594262642817254344873777078220586701026593108865393467448427482448588956703214606228830679236518875407376598007336380013298339285067844908730850190603536681502341954102572305914045765410302600928277519395354122653446711337133978715952003691035401860841978316436432891401581774633020046086991599723376778794403014168990491823454142424764924753185062532875589397952681577799266109231266957436377202791513422213919618807994152163564167595258779022231619397277742778022649519118401650023707951623971463951489911952763892911250092245677063091530517376064029121680149504295888729100132465113111476542005277355742411143182464043171170586240648175149010847039840242544236385095786512996317604270211848621023004697996639280541322568816981625441012736588646444077545222217570074273472767441543810826814918709102996110450744332498678580765816407264456105545406619158510089339339551456696011531064996360532116307944993148752454609450655573602338729955519890615744762988424521270018247406783790131173666257012673069156369883591009344128825511829590332680855152126218765608849703904867055043593166402516378832964826151222339617800883727939729283358874831930238155983668643950110665510090718150708961258539762010267336299266442765257458725850986278138748031257778527800447292108375112936505618371863901365120790580404619290791827404335340757122922586550824512642450082755239410509904876791458990675222607135183308722616292309097290858145455081029458223546351942293982313182528810271603189776571527631078256502474141348826797265673467393359129449207104668203503427965503840512969171962385708892087043758096100462896377813238868079702622368005687166014375277490847684894277975013735874744498275916035197260391722306156893508181095891552199836814972101792992179192411715174411500385640520054789830988983061912601847659370108971331973504599113629776968188309048713307679911447808665216929125761780340436530252769961243755415519649575663382150675471432412432374296618302199978648488901723905647830777037559809177318583142828910978105456928666693360929914041240755690408118127161802464632504413464157043650659936101780492027493763601766629303131922809908675923906128653998728555371071527782306795063664518817638865699827966092513251966622532944545077211103608864897871716762846242607442521991781352549722346080667834460536901484629953574990147458541113990344217824216970020586815307839009659745335467844106645695815611966097403718067712084147734463459482858749783742524820972226362408136753575958622237916335112533567288433818361903786036483334943053921868453977491465211006099373956637893552715508608941381763894680267721890567138043973894532394143898515888992135655424088346835024017171134273564547207736965573748479136021897975113828647065218955211513675536877256738578989651624516266320763181868116490255426741831837806956315197051225172831331166330755326137762320145963126799746555982578450625865269689021460130052870337017955305583168799515480082434257497310815641684714311904657838932911582185446037859913377823947024138455644021632491646230816815018298289914350081082408968416762961786461190158461955930626635073917324265781897048712639463312416186764227814800868343773438207315346220868066616792595685936021618545523274259888287333596431376787055917601666578386280408408316783777049029603885622374720464228462609889723809145616961973661984660460884021738667836703894189583089563180793272292760757965148729373456092263174879470974312785011761591586370240700702788356968312030682875177548194711555256601904894804709446610266501720173727469244693153882959901672821295794061928590295208695199228636695190113382123405234309213026223708379821065381858218701981083746867798727368768351312958642157686158723776052328069162615963385913219059398199844510851484092089024472156115872391534012046588452128472899521994481161655175634815008351681116856890569837797284541512025685130581838764019469962325590100412323230559302250894757149381646109543965669340922456051184294503462021983676062671640967288504979118160976650945328505430731996776540297486496949424405880405891946455139112655946285677165181344546277157231586998290100145504998729894595085061848264899083424249123728905134448236275076968156887961188896769934156686581974618856623326602938692555794531570418389132556823006201504376326341707021937114706948899389842726867049170995962533368725387042333857734932161520884492615179148492094439692189363270023119425353737307910217601028593926518732119593039392525580316709581005594518078896434788410786915321127355809266173729346028284674438456876788274269857354483848331327937607534292462580703038367832453699191656672839726413457442794730436547759057561994455419306321298472658302336440632780337666138016646813039796620632295997423446393866917661005001887868495113666291951423943070482337353188265915461529122289819679972591931546466291335696594609041186737591483485398968412902725767828389918433516594918846808458497548396855423856009694957305668696843721634165892907454208115990590166475972871439210695516813346120947726311489578101628667855163709294636940562990662832468298998593402552336230176325366762709445691228561726045595428502457807959666859153127285940955806827717215635348949563684667430509694167443466090253714529022123019937089695232050751317104212706320905755294908992017613717965884365040820149294644841401260615729889346170878793371179437603763156829983117327345976918872540501027290308971304285464076888076473357082897248598040795782610080532740104696665003148878066595809562304402101814353885358649502803931641754405949668680361106563138534998083947770209632589637546734836866689066895025077794448089714589528950020850751534275549525687721694491768555248975187158069734784752285618920975301964784318535678819053422757769788177725450169518424438482067230488518545122330405066992886488375652504632258274789321754844129759203421593096628277920010848512221468572533793275875918087201073897047918799946892276813369593857928240535556444255489872296822481886497757353728761017487802839707997156719253287046134728162380683872207670869283271536893018522806691191670109319122439142498628937770063288168322852912993274943466941328114769133546495358110307447232411956334161555632451233269206867186923987743734409839801464398298072571817521740860997518019712869486836567268704380341331780071841521028388485650401867000423689544383871200780356585876443964228699634887827101918181778719780053783056730369247228863005811801922349689879331221624784587852093030372506830316252129501983298582841087272343472963817011773834138822452075814051709278217266569887635187430461638229991053251508862189974951588072305082130739156474220932194150453081605688675297366990187148658355633456165440666333196279694142251356485744278019680579794711770187421497850406199195645708969188611638535937174901739976079628886864197335783128459471841004824923797016516759504077358197703979855239052790828994176539862562132499928254110860682558818745465342498711408361889325820862657185992713858637073103752143800034681005054528474317272175068680171537112520984922021728864583054522116502549460889616997049372095367044070882804484516287304297667236028514489649470247937418593641712806911129690418011435449466545358457283802576276875002695208011499239288522676859278507995832144340195983186464825122432183813003284613100225332177484276544371986790449751409457550003171689725717534110460679732012089570526485167429848357419887898386060767231042676829757623723995025698495904698708017116263757259870187610850000661395137251426254384413101313863980178214607281954496679450795784713762386411430366175864117149210358279557098600803233278315076238130280281083913600224525512820948025274272484246612921198707308028380084465425662127356666750234916036862064504821176720324121503744446299663236290471901636356302931450395561666609582536698286346516716046736246775865597486321936050563267359112044867792458678441339665315678536199454711374824880414293963826203286541582193269112051225502866336023621800962877716173054647708431922375033176652951534166499202338166671654030864115928661106830157401168843223727800160819913539813419920435362517590328590596508629401630650685850767757554197853981054807503553227653877892767562041486447907678035614077988451668961502958236290466421179025630884498563549538053006556078386022840006703744305779275208327153785493408116686885155958088541760408396298420557815707408835839829768219284508708041401402434645856115161273984195135679512459825656640484466119424875148795267220012938328678475258992217522319759128649805481302481409588882734923518522726143640328974611945848960426660705913120281021980497475336469421004497052419227052455679779111494930937599200282518830730067394461135011315687779238406590731671470271184327486081482850821705911053173541059437095201455321722880650628902230927275171691663011366325991595125366614092455245330880469073532857027057344948300890041809456396520838489495857238623160333843215077608560246488834753714015547368980250700530504688640345776057020520409808461164162998345448831075268706090129516867849003643509162700758636228830583918068996733971379054881806467469970575025033218744660411406485191233253098047995270596815810983896666300774981749915767156024200545997224879355722118745010176284239742583058286690555341108050977661652102241961923726065890747285875166189455692043400933424353288862825488278885860524955463767239912216493098122712883131556358010563269331324435803014394274935297719957331804769095230857776463044449003607023423250790115937745770709233640058298926663800296132239292467020074866682304102520059673807725411925000275809042195349528108005645806127171000167046993284732387026103633513725036757572052165694562146961423476524868868149302292769462065432552986405912549690281579576234831174021446862335444890672366976225249420458371887897857352957389757913887687369580460158971733376141597456535132267657667105559312060070462352517274177803875342464249480032860787029043009122275409287498399873598715267811588743671475287896735026584180574821486161526544520967144955667808827067662516315388766729014417072455824689653257037873365788161827285686532133184448156669492757499941587189678147664529101436587435346558092341839733642599832776895960384922326688069416117721648415959280836147761228397096960799121833332912706372158207548593206088054978652092313305907969892531800510560223493930550343666196085555219378775995306027718430208760702084357163190473948773560535408580893797358039527173299980948053680819126985289555254174191523567574958791359323687228913697765247396866429250746519129457622237872514853756918578575676919937204579558600401326541548953681957918811991139768759655787528425694859133276003929023653403551558803403575190549043332969274179049151129686464907868347331939723843254791325203148029722819631391582303011400694405701617967347801274307628971060841969151828998148296294830918008625690369758831358504676352174672902475820371880765728142652012520331634898967868184206848135757055057763881735887658055706041340562458402719627360646006411172897319782830969224377465774738436101133835004864104427946783434267731025376620900388059295581911114991083419608996405059619727756313468039050288586635348226954241977844329564669153580094737641878649287719777032432033367157292511712771873844491883503500877097790812045188571896252985961657199501978263285567005713196609157361867386088379007355389342336427521740098187295751398819386553828724441161516046428114957981924301389009277711136393829909672821264789245463043368901836383407283448157721898010590076664486545415953003419171395323848968298162683216246927218634594435585537024799224687982857717546641468492324846835556434286934831463227940165851831688166582085334481464580939725914998691918760971610794577679390688246518567681651789723613640580899536485375790395657716666822808292938519273428008822188577054594989526715810582754029027764497737560246212748270834915633098521186407075941646751847672660546201283284457062529960774662944477139164714716798934565740423492991853393196449536230129238056252856986637867524162792698382708582863275517826101020459887909686798068113061411821682259866940359337851168915030556653796361067849828968505679567724167684553008044036969979011089617107582476085305674650202550382502516977738811689154716046119207144306833348375989094967073134906147118717358703468059193394535895614264501698781979086208707553640015689223239169092906916775247215659882551371491249502850400639638379992458296405417285540780984593253604531385421955087058764096452752869550976082411001761531326834438863602641297322457246681502464810114662464015231170011553152843821650088949331849415525904080329584512310161018900524740349684074720393978076075178259425320863904071461347348100317031869645715989847039458152164076022477970778108237037198284710633891470742242360901144335292986354703740980813954087793196174745135879603443999571993100978183846060444605257480388994318395035034424425173762986486403520812326145255380907390735746766191299149105667958797145675695677211213128238121369532433201864612041478748170063893963466559801519605114473712197585409456220150071289356229998798305399930015627470595756123247760642175711071154831345665010348035456021912340212796529378160580920813695896237400982617031535095835649117317045323256770353464751639947632658510397606186023798705341327125841445742585156480916026496346787761698067042398363815808855457595823773900481016880099883032882365695273327673852038855997446206737182391573991697310946693944391270338692603460879229885593478402098392252282151418117625885589795724985693672595756709533764105778038510608930697548694842409809427750524947548273938465672866197665882653051589890723610826825313199166088203536610474709805321238297579449265610200846710203450778585924117231050760737993374220889101656455270815187445479551785288992576713248121769630584174792359323855188695892960192995999422580783292429580177739312706910239880891950228477011645354718740929211719434214599408575906818908977195773820771317880661405582820681640175727436939252286165757806678810145192007504986684704121151809115028770964386127095761007167567686149800817036429605266597248665692422171810563847472444429625606136189631598714809523058141626825327958995532953389352023920118769622041137702483034987962257989449556636578078647626126930342952296033314360498154341555750206076855974815595467831833843622322539436313416486169411532477411827757290530654474595302004191294549698702180310883323955956756372089159784852872919262804792550497306666132231493915976515288224450546317369869482549472274205667119661879710540339489310349793773275645868608661157662518257168688188803398803289262383122543605800161883608323143003868893788040614328396893327406091667748456147342222611817642456238219541415451832602152766978521704787146538655711176758538314850741958750196228482898300404531053307946144186553022607211893745542947302524123338040570204274505547610984899980087608981772591252615917501439877783135392580305120464577979265912897378285273761915322442576560259432827490656662196335405517270046910688560589839938269004059590557685854407242334913673973437996339227624188036273171523020934876981859557303024972880295150423768315851620915723791941527555555326379350309311801625528939231655726479355907515956970996933438968044088067249037566998782576453752436052245726921969361351967434167182201075252221699573823303084823297857063075747182412749876712945582402989629304857973333546294297957765337210912929132377164116394445247579286373647980472329134357501320506859050783667585634087752152580313915684068795464850868058161451682823002268663751106000272338167053700794416494790236297996902154786219091099609972033278403240868441775593522100563347222033515713980080959531054110242502533595738630677876607879385096878049004023223062950459835875331987399783598042439576322235305551504147536135282492207466151240243263968227445396570127608345418356252789059465840221283828808260535835857292262252947828248968782345084838035215244074639481259491743553110976933650916203980729062027066408686275058223564504743845778600465841887738069976481353633959803144164015480120143892166937712279026763167586755741990717047812294819288871354006766093369382803210931305582936183831348769169684801951766200574883420940667535791774050395991931879925344831683460732406884234229291730980132670865705719247944305670219806814441113889148871420925823741723231937460809769864662778948633786290704551796847359800475437091642864312220798616262553990354819844618610506756537244466200522306021689318125377857452610229459070315487566260814610698140028026393215395032952154825913345239552877080106889179559200712041016254352841635326243337344792612335532733042749187026086377222803780449640540563906926894941951329485371616074526500126904673905107957062273755704398017334003610030542122958997027531097550502974163095145860503594418714427197037223516010403917908612135457698474719297037860046590507873833419109651809984362114832012534502093376782399381966326591796862439200797738109349370492074124480292350663207973714975147709029829425546162138514546065046112768510494705077463002110908113964009612240605917520287792364145359358413592072916295779339060074510622767943731532897077669903327770860617294967715271691227207095437902150538915761301650633915669237481994444461643613614858840993537226243858604356636329992036608214344983235227381616075418276867031676401700108565480316799955498733062446872253970410945517143946662985010731345602484829079424880864623287759371773517704301838710179367532932391353813639247006514247092569666606463233546251183718936685291009537753938806647766812184977338778090484620778552949286078592390572267984311966863011929332565873353126718878586630177616170806347981209607593744494811808223890945021694153672269435940249485843940297341409383815429150647263374344145214247727035355577192714869754739021702830058188365244909230980654695322526318029054568999312550625934279692136157282089186818426400045130332482703481043705047752654565926931269886271911926248774359704475368142477368597957343861783204955572486687793970555038364276143022611693319416949666870259059849858475596257498106635523461400982052473363833112978822815424259362574541074182817397919370683252911816095998027991249868085887395187945769534469007688503614134084258545998308301383207394154338714083306384171480485508645121116069316684864631467682443554591609658677560556322160618332559925689138247093511626405116658596911351270777093097722287271659733657625900374187862236242193677222450343580725486592168961042132734211103439636392592234124776641900068501592563510139878057029491540408213473231739732427878447873459176405077007115812313972089831865367596235341782469710359024341129400786048500021885069702538348318556046515994605474229243238843318189277736205195144941506949904037926798701405409131730795016104994167088495276075356652604434935309409259871390688930085967171359360625358415114771101024179709958968224905084617267125427610352301304934148912356379320508321499121174986899788173447678507639878160783122108539818538625165004811230900609311255185134511807161615154798684433019526713697768037248832977518509321623426858986616660835997431985401633952581029817963159306430539981947334908268365187833435629694813953532944830692715370533989023413845274566618974480664190049613201626893632909033403035639518436530210805092398117841998531385006510391920447695742571328888825395428684659142188793344985137467905565280504922617610692512504388928729841888130880569259216277612274805014364857741724592346043627306785321593071270333995842224855209380162825949360598725244538201765031116966561435965597464351013077481819947311783010722273999303104567419609258310419349186339328531867173780201759195756881604629871732874467014425239565466177944062482218880019477699876930451120577778415226895057118841251380687423315041495370158590079204131226500354003875249747068085884713269046833361388429771972589672474276800817622606877026406648575350721459034619244221829390384768697023947707943681783545428929792910743940404862069009873121445184714986591846340885292985950155860238013420220811482196544325642102411333617509247452210654917209329425335523230889369495336899295439380996738256074256788717564031811262064175505843563201790260155950349802999615684272460701971788366368044831855680250397090920112560235314919022305936663622271433186476738102631125505396712019825485452981678441699013765858843864541950620765473828442699781522724532752801802729046408460345072857901371835205192188190859241837696949921823385427441908733570058162227130013906213848657095627817418490243345403085973227597517297100808968551216326721180523124386502648515736139757991294696065333281158721463732192332202756547008931381558218394238731781567596363201365462163683511001877084355389615664615861043062126385065591458457715564200120689909350102856684545911506984976862168757452330678646644662210803356866562479271160645710316375274796265830696899262888061997701623166453858347619144888357835822858886023566471113273917324840494861149138761041210041185639269881895452132378632317091370119278448417348703093027093705106158392973085131277240877864155445155179677825071063658378931304562226970491918050535913567709842354028089494556308376491185689582441727378070150159609174858829505718892232641794390469542255457291613391681446715963121375540458572051862346959357217240151408492971506323532843868395396691316436063453114374370474805414780221983549465183101030515099549500179703579454712041026466860377850883735312920531824393031146256988079650104876328529109604948950188476456914274787050860375964710408910239091007624016974666033928259713740290750428379007490740285508447514480753285791340081374047433935239299947051021055743356136261317024081544936141589309503021958568840607976133968732915439629259645927098673975031480788539676975714817465566633377361184174672213568153521042075935305275089902476893557226910864308747746662072279355791395586191078411946556390690720619800880166838576482251364863449326813153260450336811422907140197172661790740081318861552110123774860928897594975098692516967141283083453410963042602646583086478425440181778732901911597204841895686396290451542390754359557789444393189148222669683551968171903731080788439648102715077654073384653562872135522715082927758182852387843742672525316401046652263876539846083189323722507270467973280730848552744608702870923768219698866571725854316351963178713274521113248630387821696892457242614475159100565926639811834772151850608806333838185875070886040031804655213927615763746911931109042016687626279295850848502706643612091292522505908681037580680558700304359355838955875517356417586123179872020253443591156151490273688422890916667036776402561978119374016220122474095427599214436124114299874993725063260413202985732251842172312774993840586547783166471636861213882434408709852936054254098189759980144356188595114664761434104792140496971333114707976988079808210658163280951513274370884551302499643253170923246150945872862413320078485860394090954297963296759934030334653149945031683834908550215482466926997524971908314940072846186497559771660170560147587632391074006980305509092645588442186670619125562588884102436110305971131898869275356905890182629633300417088876810942260924916654812922568857123177935346794408889586318707089434150663246443885651971827709285101728833745126532599997490344013248048742514144392081255354845854157527890091741331115408330377766483182037614631756436527567281873020218429891014539118782525851214456785202633933356810388003641704086415534251445422576266197953334167703519213860015040676426297390431603568543251624570770173103083821830280870962080241761614960342576831630317210497287693352760728819544359966384084188015918480456300397526203641041273619510074222644179677930313491836577111577556138632906926253402159302120915773596031869790743409657955667149782708008954727610822218892386150047424019553396195744949389220485760525919841253786625184573074342651336598289580617477103765785480728423474159073274450840222866747853926682729084137667218721119813132752929350024170113810003765133366343453520403979251730281054355320480179281584501349295957506974944699363002724482769120655657523997138984896996292124810724702448324900613909967498183247639173860223561505041860018443401714740062259827555993116152219565298079103556461363776925491089104256834179655234078853355688094270110556051151711903788571552897623800425404957999449646929409070285070146363433724961771508466079991003164712870795166052283580803569887930465378351867738105279385898785803138428339201030959827940433405059074184252768721633424162785751641396338679666140967911060393596668145526859424900748443499337722384483649731956048099660475437313806982997974229801528617002084556658253897049946757319064505854207380196306503043173786485424740868897087977482357388076311285042799127370482031668085715833070320858769118451235111890544099935553270377131359567975514221418538830725694937063080837619480873362165724077255858237731162292362712200158747874244329880760670037368184359281021774949074429326160256701207722357655948192759345980486170622321613975532703839279663750761760900322806711661495599554425317301625545896503810686259623726576488874677108988656396915558200529136229513118418723508402097609337340846349135614939135228760305429505558268271902915758200784751582933147359033411551077372545582800435450438793463313651528864153557845004688593863818976969230124459975083303859128061056985876609538395299418866018792499211564548182320188914267269475478639474407074243956305545262485494024923897522802628759734791505171739700180209283214751751712908136887583716868153059153345736471570797120569423901880802052429766729541942172639949943520764114870227274739959134942378085573378646666830634260494892018447718986656361278471541897897145087356451319678858445123563402307184687935642114070214317148878943640995712793947627999371187987411168189692431518914836890344716385851569660311657226779882728251180998901198056893708814528836163617091287755582014603618504235965909610754934373452278390832523743121334691720828945436332973835001702531787477923040219789940339493511485801706358188877799837010710591865268843404966533572537538465668288821818607510179430023162189914007103462494139720495240795328569104616459942723064406041533070428654537725447048412187110304486394728892055973251668819886513518056289525502973489136418670835603282476641350669968891041442021407105430631246409889965446886377260116119729965743877749633767257416220501793678173516810998165598834470367946841791122288939944508432136436914522678252449720952903166889082767906176294325881453694473188196938894645235399565105593545693160039305333920914127302060003088588858292614844071252505995032562610704618199530240900818955497499246990530577559890547355335065975880513498183071818777284168367655732192311393364450280458718358736046566279482319789111328176316312008159255629351024093341179707847614670415161140056101385754806911542980026493448362513995767851435264373050800121530877309332250295737736770347947639721697407227390242989981182254373388398432236451383843856773878379546441508682920817878304735812445421146536798524033495279070327694845530414003907549034245145278801843325690116474867881597577390601067281598406764937219544873117837654715018923795067506634377304848110882395488264408643128192411464482853166216518234349030685076433344363467213835385442892874390086557297102213285458159534304145097759014155338737091993860444445063120391331539971233277618263722194338818546776585303972773023576221767104219120657220457382478203512235680455316768095888575985687747835645032894011127685033874698284593994283472894938483116930698952384234644145342124095731400350069627545506201769421126977237318315039245669876955426099807100609184838064138568539647397341283656720045091773157058087508472320309301625777054631332115304763822402278314459506531986395357235147817480910200319824110002330093239088933866017385773943877134143125252761622438753881136325582119164561608572042476490418781746486834155477863775483580278496394289823402977686316062293481921140252383131335547736518065575165049528421914302984815841726987798501908970379090879680867822389727021651701467945654863257017320426793947018591475683398873974715279177312849931847958561504714560012236049385641097501021482646033450929548298299403962819550954326653300019114313689538658267130735402407247183753332452350746331942828115086344287131008857229185988140336763027667584293208925886431217483029974247339414823799923037227799472954735336698862905147670680039754842803156960134282313290543620305427171265950113203059536560295072785184951516474531977342509320736941806254440503996022816895543230976060281511575805293710149996627098731925607686078781829165019331613292966335337817311096869402090185017565146966602654870719923719305251614043401166163011918499966872451875842910661250324926792833918640959701742945802849562018767578200253937975969916492593976376655958773693794035898805000918235720038482336960501146706520899950256056361334080489559336889672479082791938823495181247786641094336839496253383945805654759443189255144117167699506740299961728175547234901126282153493489100315501825540009350381110980890173486736233946790986940516453542817804984829021392883513566212516196958292814562894724263627324111516604243401055311395493596374196325280031909625993474110236275304428924675538395652693715951220720237456160615393606425822994544372817964239277620172111074913179619463737519175515389741125593799584507269406140603938120522351299007504712029705921019546438362749764016298908136964286169841991866278591063678153463627886119968597343070272371664863492698525646230356698107802034735090120477715993282419859362773139661832469829320476618091708499154994054978999945916033342130994390104824013965069405557929428848462763471905894609220242302902328342419112966190979586172223795667292753210492722174551496091990138320281450522827066660932335211345686880814892144175667453547368612727270814232237174013847757055252723854040600177898731195718734771294641902579968885959419316025540700799154501345025655473881533385359590432605864643777655555445724625634539235243252391445268152878247494325393750282073908038409334652226471449889769813751379840840888590422764799060668889233293045584089448216506986474133242668726051074514942851964461599334979658212565916047227807204142895279786766396446594609495395192426836695892471763237858782358215974747040007897582122295918859943448762674811276939422395156994064250120053611599935178733415059812643825517620872357981207881541714836275998354087173380801513460816870179272684691429033636347002937751162575375547878208225983094897202847368899589047284465039187919912171590685898549513701199542953257393752157554470991217592111287730821793964948067649476895197555972303405223418223746307108340503473791368533366237080549643902671281417733754769833483183869768940007818807688300169306009200294568329373571746996711425527863261957314174964219040228823600624696669219235857553117135860313642053741427717430652229266809726351306314333142411262220212686411644479608548891534812137680839996164537199977524543478918193197703606688975868105451305623298889369503516152742609234975074372925986487487052386791322205132852173903121826348105103247490591566417396770174215328868637055710025842400174968140261906658868822450696123383856004461002003020082750323612250620105935387257591854856075831840562359984691448055829329392371482798934098114055172047895266969677168220627948666591274367607196503179047349664317457427590551076765761522977754568851642111428406919693901477630215317994592220767795563899481396210666370454781720082944693326864135065303811986208517345491841183418835266811008044694523346073931544906387968551141986640302174418834780972577032978381880333970665621957417569813355637116054903017426388968317576496395172067472050814614985208397478760387899972971585667099424578933425297260274457961984724998865607060515789242342612509832062899186050249653212337377678692766561852282389193280756935087014973292710029048199091751214320993614099705606697344998414006534152912215187707617380365313278815902703708946593819373856267143820189768475735353661725543947658325539330365320611663651269021591964202810553027045809813795943106269312273353250988828768411245838429842180819426106904545634917882841871460119970435716153772175540322615366009980654956254338558265319313033197741385571635650704226998650182993718260328235538620381550812465500511840535996912443912814434718457984515807560741996708944671855283606701693999373568330705782552111943884726104604424101441165569371895556568659836159528955182275484450774043502499175250126082901005495304163054561646748461613621350274136214478322278521255761844731046436479117912425462153824075717265276916453549623041655182565205515401540627396988728812879767995839495060250561955200462998774706860614200832549066119090131617322206358190450152686386954529654614008590483038446752966964182117219626427495801922770226997779930222721846992100409638138632155189467334354673852562963048777710122940077469397933707635931054862058414169927998988525919188935250417169342424217431594241309944697864226669986017810517892787436924453112451387960714526925821995344660349272337574946477826232171485311692120261482254262561071476701645548864499668858922006700172200256043808313591870295740030062234468445453697782905249280434901129248588832048930537091309978157883311194770451953571545737246354839208805035370392305584344807694645780893841934184621775373487807771362175464817348961349112288419260665613061253107961913910995151218631449459846019863041267304609165533224269719704726078066291839009654817445970269873488517292607563348806078027006218050487267335630275562525134436623744768167593065023384749103650662001571880991136480160627148005843446305848460115993603448871315218020169002849912583242164994206343929254270287401606017378259801744641411911432403922088272144589244417348389556598732758365126577881416220333250517564385339105087812069763072746694873083086760370372137446746895667243346668396688609484114866187351421858147365631405778441123213199732816485314067193507706112740500921647991240275268224305955695483306910758853348288659250419683643570915760642036535690957772614297572724871223464185041898209518374593068524904839898421433495183535567367348037611227015399488259760254870347889598821043878794442021097336124026916452631725982558901762744470252375114346053264157524055369167141373925819142257429381636353486921530094591056451128592413375503051104723030478111146764214185079341053682574526671578309775663508848247554168781966741781197438169731740774091283711004892432546210368052098825859101971603531819299383428539595780958488018081354648358632766533965169533152651120951606703750529121594421045638745237997941607899006059271393289927491917727497243826819489933572343552499582719913648589137591284708063528273588086760761714483969672406560038964760018675094440938288656223710197186849760746075586535408836299664422630277256099216010851122686169688909575078849975621892020151998332812258815786205443197464711681632113856219892578651995242492438038107165889318249798777552906689737273578719281101116597813752962665587996539526906909121715032718665123283696529572378669482681423531915251070796562686261425373399055557530941201012933795906435951511343126808891869210144112377904830302796775516661727444785958471596190017846835070161200859463324254115575169003411361485459489590712010658846873351656838771467715223175456921409146415373765188769221678018641706935458448000227602522463848159257051032255708294573314053529104996629093313674638843016352484776329948912421434114088275841389559193611842522946025964235562996659146290936330240765323568981260303398737450987749917496157001024641369712161038105194326776869498439032231207927375953086183530639599939466191054772649118851725926599824448711212887654227500332312475521307520887068193366026520106562173536824131937640248022280271843686678954992009073221239314758143295721054965674543774168174777337829854693071317362238135876811526574246211523330129830153111621182990665770899095617860568069466841925267027724472821357895466852167584383748453027613150325222531656764913667733908855952360317940678082669398354132323374586052990491568448874342999133439152953761692775501394701282528660764064949717938250271680362751578769877805280382688009392032392103810870069870420650122816022692415848124399621155322284260355611878173778854553505338750401949444519616424793174223208473134256022018050832284268777325416157686340723944918251089039373643893654163327701419026865201890167954312683592674676647489364672344573666627026722794912601481388470727535245599207601275289259475306253619894149412339162972946296261983156745880333087255208149374683457509195028254955388996423977958546523921186416020422024321340148304875425690904940985050689433333190939970713082394587653436663631947822238168919330030053505271673052315986979509876034246717051175656946408855389742016370781032345198017297170373333574533030480671324112158674731495923165374121912182863791025364810724418147625908646459440106721287593778445416361251018016414558831900590614963140309871185137553188506008951978783562979699165412805574390892041543338518877250825367409969196630474983522929118905089482793586731459168872242686284777398633325029708531807971015009715965691079706580741613994761663475208844269399280571643476790837585247174068819074400712600015768921937254179781366512630478275609858864503948587929950396463033919942655058491228704842882465187115833432479199466163703437216441282948742378785333760837541866544339088490712795188397761927068502901364224459057232894796119119642940955093636470068034001313486155005228958286107464325034808605046873526062124039172751722318573122276745985582408665261787526797628085645352845989331008543766579279264244710548917031340388845427550172411942467028909617455594185909234928793209039701354368437177551418890998290116743348333873159614394033668770567301385017770764811469793868934954275081455354473645260729669311039146703284822384619297152139142933699868906436772410009123962040894630778345670645530989473289963115697769172705880789225163058906344770698214309043748686027716652077831562849318300522142520953044985868825265319834141030576717156261042458150609880920451488204055379954087370059248270269471492713207453250212787384410041995750275733855621194063122391308916998919161721684967782292383030900423045818502021374036778645690741328820847009625384242917942786264880077990599252839788066691378082385186703545644810147140619478704582451821254569722312707889777567516884272315415050960868425265965035278180878193830497644945568466744351350202589790391451120851936357607426266228837434089667241640396084698034964778843114553148364207718245972057462427425197098198913072267668863632472576589900612466821578644734871951075804059845919746020250609048785834191717890131201714726998988510644566081911407881554951261687384911904425252142537250623408856844537331401206198640426527611072715674334499996719960147079436339846466088753290259157391858457293079667978565402926028892588135764852673867573510652611835641531452919705719035961268989381907570406281943741171515434122654976333263341784017131636376660878455463390096207088992863503986556493816182159473737157722620002593799719865167237052343291419464320987782881338702138513319450990076688241299578271969845133829310580593857206574221687615525984202098154596973251119230998191200398959810537947607324624939936152756752171097329414935429670386055221780345293393055740776727200080286513696142579949897843874020676534428148880832254997744187320679347541075772149386649293953693319658598845554121365753872474314565086939416506717353870923189414529081685799365390313099737983826451803533351681736504039866371130580749865369132750216761518114850797229733222469062370735715131144530926143200281401920608525933197425098125129728832489240925258837536880009332664349451455143565314487407109260761148020644244926878327436540763639993246929087357921004677317504129593809217545208505890602543536830158726215870702928662951118273547245341762162895611240521435845898574735067394062873685238203192098540232176372886212037186454795148639459302232912650491468271425503577190810272170481304317110240691882768479418559531933345829916512844852349780883257792653248348278185970507327045720579741715835234967957394241815869504374717808414424737484632548573537968826439278255108988781264046717379962301977379291292444831475688542762737162957633286907017725233925010851144679714921336318669610827371007113178217235546402784733332863056209192894804852559748429829944899017716648584841537212343664069911734151871882470419324658753373949545028414718383870452692317647532968844940298834683893921220046240571451412290779930023628657761537600675090406475977863021157381311626867096263843592094376387367493136457399347024738949845789533114806230305974126568996762241450542585111837618584911424116569331199594223943757725796652757647613238421105136004928520550516623125983267602402097041503387132620281798471357594159095102245690970254015081523613894809752277811107058499466775623840269304532211304380450824902111593925813196745999903939005185103740283017719764622579289334692656256921769369337027532618444397991565110787430719461723129497616181478891896817624857787887036578347772701991006515972471791908785902682473933173889241203277695899084530674808364553957169393002378183186420635407723073258865214478808773791526579325821661996747109772399814810932162399331149903208523609356343854359562753213903343110245844150809433952627232824052657399311753628109685065807844715593742232364802432960046272907443504283518637565689376946520423643096493523491328667425501252950899946408839272350066205785621732646466955598636097174796194355706592069951842619406606029231617006425604363875805994449410240779672570540388996662619726006782069795906043780197161701565163799041914991923975340563265701053882150725064788467341117737014487734137258693792231272231122645750508155853233190225453240959559884310509251272428394871672601830918860357284306827840036047942372414344144453224171520201357686299972813553302246817099653043731851837109154498973482719905128818770903965645196855781991697929501903214976005865996050294385409950720596472341788138541118930846537687215856616330665354393307537552234998584710359550205711970279991377250010259269694252164108953591736509359761104919966038289372221170190698526833578110546791302007981821647806499334080379620316242565981373684714588886548289228907753070630015211855946477313050069527565122084824420519687153620468783808552522918482352692734567259669885034516227396782687253508190791195339654797748899267026066287211070255880024730297477499814539053965443620126301139214165615947138322077572863435084713642249982553227631106692275420407137916863092593826070208174731491450442969776512474015913173498655202226412027655793553106342398001011611419654037880757999146870087597558141331675524443811570256313761435858372101160051031314539300599818624280619260691462470177544976583159691449443922028084493151659200033033683669625222324367253776092579556731425854676321045288689348333766762255762519277357230431130172634698891594357542418908369445928328945142514338110808844656821968040946580035519016851835292005036355970839245204624916259768717602555688528331360624933447158149776864501262342835690445926167999395387052165973433037299322455123376738876553185894708615487506201440757315504409850122062696680533114539457097883242452222992253104498967083298652130927764090822242817079801867497883326826118889656229159003393596221477075683342020234852090941894052136536313724190013690792162460607427535254688386704904730899556895366226138396238537203350057460838591305421051781916202240503311250488665743412730474549243242160739686033915646431421853689587670785638338962287893540995402882329649513536093784532252468446082296931206272892552659764683111315810910645784639796494200182887929238482268984591982199446150155392053657121395280629786704786798666378107517866768137708337209528937728267121350231861641429781991775526168642755743417857679957166265742230611392332316228034346092497037708012735213805334246042871883775632399405659320755099485994649129669392717627160582838806706789203084877411880649269912424206422260875750755487115055518553914605195633689742866835113380642228723519547447876977285497261741932136923328481837806715946909332062732713715208648516882796268086748859881743485269077410397488229547502829070282997778994012860889905338208202524328496469950415111656577813124332290000685247438367930844630503030808712866454712773579050232557519653257095256373742225628620877629911050602597420946421683426443391411171720130297426434342400419288146355213811154612492458854067968844770034019834473913083245488688886712816716491267675042429011260443286141208891252735144047946916951549496100919012811570827327241598557417611488801795304824078791602859910975340678195737947325160764255812862839676252986253093885967375292666937939588079913289946970442169221252864109977565758554860235394764446762968937540037186158750373901038215863835976448768193927602866914900983035590947339980522885325852443986829622999100856580056292357143054166870834670741030396276169680709218743685533146317029944265553070514102145714594018903664132439091427020843422505787396048723200821810488453956391054588317604882744242213829824537083639574978227034741545440391278980395314086110708873772368271058955446162956774559981709552519502994609100328241201064133269170254480586719824140676430775708320843045696774391766831979122332319906967389428880343940328816849219923699588972893285414738160477914543513259642412722061102823545083689797635085152576299486310133393851489789812727181510404557665223539455018273879174827869487614027221794479061338256349090545417620738373597454070323696188525755829173542473232326426744909837885071242683535618597546142970831748212161957116992802466486777195322571223952103162422525986242009625856647776073706142885334865316765182782670248470493601988376998396724407138970117413604338283294972043271494293330171087374268728616411344531156048259622886765528580300109397714653079513823384452675263499749112646691778812104244670254779255119153455027811572621010364317930890286084269919457919339484662055274503076513311038946773987039105395269921684999078043325855631852513735494774923507328847224810249662901591023326193113810841443509848231850381437320010227389266516699870930824410217383576769912329157870592009517366479341449756364748567821794750054069089037136617534540270813311692021303306542575733193131455873801426101260402790957510801073732277324653530474825144441563667682949869815039912283538323233907369652022889333258614545301179289424593411928613008033489722570145356226565609610272212344857214609315376283307541702821908447918339546649457557914172427711101216221296926042635147057472245932149025508128505830664042087989665206810836106267481034066733046450504343586108622218960107179066740170462813803351085682972160930415217562911438904851601243453065657213268533825381258399866270516642495356214226575658126338974144922231549466194822432322264686317516185813291601077186665281854772388087919056246540092255737187550564213816271375729342529789372268966345968616114970822065810219392292497955678135750070990531787499627625853288266638543974098201963260513435128837012070108289906565709308978422057680854382648739040445370629953948570901685085860204982581719384233701843315193948052588205272916224459214105698019558624600636537460940707392178145529634408634030877365411910230252082900276670417421822657114866752871372200872729300095062469082968113975580755745489640467015017964228686552718181499347586552686168603074441775395423661894031779326518668527704822637014135237318789242027566190336501992821022981720347319664646392161237669580942605902646370694720258830335083190867205692077498450242980454333050603009066560061219686117484925328190501100201406133672528846191549280254986735703582877621180406959605835819626449749225054270347577475780640896312581735970163950619277682601098569557792641841107418702665093986509857296611500213362595841486900579674551972088105871236841420425438672677853380513354789942670873128072310607001314947274272305797210988398012942188530301696932878933181288598411240332800788942706018061571093197001173489121740078629657315593160236152359514483688457293336990587446446368660868271583392536384249966132678570374840992075201292218468909322478885403727858125659914207933140543250606649389019678724976701917700010314827098660877478413430923976250122878073614584327165838180650246372829038889692219090210748314391248394201548248395107296482767863038414994627674896082644987516287218955196691559109444135258693093862075371599247078325177685071704643228049842795835519880031699978327068598868148126184211785981336095447381984683260769481760089698800554092103565266222092776053664428383529787571247042997379533226650225072953022016448401650870305350501998013400404135076898293563691266079978580742822209945281901485310395271225104702085822394488550999168250458569424212982216785583452040903216131771322244774458012312287586182604644499066516832654512524775465224248086613793855569567896572469265751291938303928351468249039165748012646859890577830521735306145950543435738658746717843807778299501629549973124057215050878365162744417800306702551982491542900986788217888870251511779936379193862820410273847753813518972654649822367087630421945166581728168299324171425062078007780224178520981847685635143867120130695927290965293908083003221670941260661722602617218034761236679553305975908530007114454240770285224858097107012129199389737676776183085252952162341768391482182970615069541487458710305358029782307244077204437833053904715542144625880570864377980987991383062580129884420096670672051405264307877833087878402976308070571145058691172831513184208352206464642715249691154019371861322538707082000524677910709165745026538238716348769650351869229677754978607744425979838600978609917778430154620126474834783578814327446150762037748772653857747209815683365506855956502891024878945892709837119389006165197676788863181183780914867598722776134133395393277233634719253157212549930701957557745972391700866330645530547168910793292129344915996833707582872591027680547998271419064608056613153143619967432794963312244124907049624120623104154082793770296797041448716740320935835213772337305779526897894355728435947360134050047963164634754594229744331411987993791111798958668784766722397753010014866232230892048331800461163673274343523520359192773721821896478438247943494625383275047718436217537013164817774378641191206817150844572936553831994714526643451166093840930866393228638117818092082265999870962694707201352445840551528850666223546973454139970010921216829314885028053264592825570192406096201137007384772527361988336115100451923412048457242726644458198709293605653235511263525943973328965706444918070438763043789486180565013671818166008665994037057849817199465873324223160334451736329413377405544414439695250684645544140885553088599388281304869728243752730365095325602219505034325697053018166628237386684802193336361729953485784130012543643794357325406543049050476396307897969201328682697151036623628262443088993011680991056532024195930846679142258809717294201199185006862063078293362471782028840487160466002835771300433258179000183536278124751653832867513137532591457778046784968292220724820437926340477726199297946488598446690892784543110609903139041915127268815707807620331163700147291536607295532748602460902302943846074406771056116897015264176948586908635193833585436189329381270462008221302129936988355021574554890428802550777159271309630505698126059496230759192278877585393834375524768182582649771986548889824346792657416269773554830720049062051522055958652388899162964183431476638283086278179980386989653467840232141704771984263862190019684744892351785345886616248177513977800845530154129230377886875046372525299480782281465077685746097785920529886009879336646435202978600898383818665472378312296982089480727042481685336121603340402892200612507694149037103815909622686692096249914750751065323772879960285862349743709783449255564092240431424521900949379689779077443981820740572748309581844512130173172086667679594379058576434262501356723564365139483939898250441840945627875174583959195276118577948840153618187935844247138079347481360167156771798182917374259742463714276024008338137902261081429627796590218362730959009524096000916415251256974442572553628827013643807414678669651801274082683995278599514090922868987640626528875417469686465970361030545889749075919644275141214484683326185185280183339420192894215508827232984358589415518348558946096495687363370752429684033752073436097902370694512954342476911090684570485518367332020536442817361326650156102564465562099679445132507801580378799592252928615577463192450543925364838264868792656205632732652891463581557103612223628459725542849430786925076342319673982289643827384795314419053218561763846830413537369121603778099749987786130648832099693133931910028639682855063740575247889633502357019912234454142443283046746002324281887778242193013247605325831921840348810506702609201757430414606300169432258961552340768171296829704687997772306357951780184319632179912307785373452752146064915493144800015397747065648359833976655712038425181592518619471208069913321094313736493186371900768599226920458456239160213489570656129554799197506856757756816190948169529723918665984423448429763131116300647412952880094214045558186208543784033245090135770901469318264277435054918552109494508854292226472512754880998796062134654074501338738797127605370392780008597869637580863783843443284913235692640659215746925583663641120768368620850774143622590723911475209562593047984644204592349189257042021552960287502447888610293634614981848642092376143648614081257156630392108907339002137823019016472559238080951580956516620677032119645342520324108972824736480863288465339118952204377143599488074170735639838830654570040802688822213450437668337922704100961395473175073904180872680888037416121760634363494047156010764862490661550103276793503065472071355909766091194281906078533465625861991834744934330146989995742699390776486697935839256784525274441080837175755349527491032118940406440479513456112994725549332301098816998085369791366309358495610465101109963791250871527311213865842281641938133624296649476120794624917645919844433365956877036454739158875107381400196489663063371568889126831206611550835752622811474855918255804408754124131556728692424061040986938579218892607607188689237123173374538592276827383333483264604242677329629008929474681358047945116080479471484417105854095190150103491330855259771401772535041467949818148229627151942924903483052223525748523111467897190404586757813038006794476219336607468016406744049776175245132813673661278128996468183598784881243942159714758360865039852471943158165356864517919781749481878462386938014481155966249188634424015263933751995895430174643215822920762658793400484257432667692517741256637481703414215161301446670611282580960603952980677395157825457062839531450979438218286964858318710750615565090349539154322532193377903348043619519144788307284424518077877266534740097704254210555708215927331631088827900802753634909510268738797713307905549397495064156439108362680083485144471360930876424099212564945919887276465025916905804690062471731439560401776280249720872640194157116205134877778175796795091920973912719140340243844040637154212315877581580332005996394809923033830134511829790270992125256115058752764366106976994670076435309385148929678126385838211014218870995823710738268960526346541246753766549522060674574982058893757465377335263098854242067783830617198447928492541665536002021799846454442809959541231045567592836560439908044091414044640754154180158602364543963486450144502495742216326673255083976843048576239655343359057883226739106799869273345069098318783298751018380956595391162648476729435633807740014506686703641461449126277614124720933922136568949616814163086650502965607014162069633385587142783565376785688829304520852061199502118235130808234057394489348338815548738501037672505606144091055478217295958805458859043235475026384355839779003116839232292891703872984616443988031531801879754122231394074650773276100656175827576099357354183942892501040153855821362467753519318174822025181865425807218701748594565518020395448666051747354523415478419220643784582138536102005187451297275373452060028404627190765472352336256776509419813604776785971975911318982324113080585476281711672274844757594848428873313172740399691756505681300664719240278067462233607495657462008223207635564548966934774102650813666906150631590861790936897382243232436899517175680816532958182277937812733259296395320078730499983733300911456932838246292448059216546822908477838435591412190758093409143926981207363200137935244867869879557930753814923093309666226287779401590226773456402958192123114596062446717982562096034049788984833283630804009879973167785247837177347002205798992181125134596601003894569733413091188981892913380207821799577221843893251453513978697357474536867170102650472686680035344080957856125949887393051983410447315007423903392778612628073965548693887420106967741203620761400041554739126741705550136686050913098504073330782282387331522254049013545648033818495586918308309644885508807988802498914670983308367178665805828664133456153241753783507032312954288219152468361548977427437582845361611051848033986158522517037310822041138064213254824145179732328499814931013429395588973434390082036623551335499742374451385203300024646479234284571092075307535718183313669575207793276222420997455767648513817373341005307094922354608314115360275239740028010190595870600897105256498775510702637495349598228656019587572725802530535489420416684766485639939893481377948362403405874202224567604615446038670480867358248187932618616401040240718173864664993036600398743199948610302146458104196863336099768850684530546616662695586345360552934549833276123809278204862376247363983642602158889401849267104363188065449654903032561251886020422329143802815778623153830569594678450025604771431091410591460362776046987481705228483510812123109193025093556967752696369486280336678053087291798384657072072386923983518431647192207506912782077332725647873217037031081899771025224039410880283766945266158232386800719649521706399396749684771631770314376797233182378670053190955613057944183260720014820180223269374924845054645505155426582972401538103682919903861361176829213143722766150930478871066149934392668217698410734489733432974624844809973013098298835543143969693290168558223370136683743211379610091943131700077887552830800488645341310812711547645535758591475889197797449419497512101592527788112338701689672264635414622133545801175013347826931761748835206052080586722899802999685136133166823802737778487497196483120727358228203297534434785657795048768161445074585568459730304457644536914517616225864007572995732174225357076868508593732641012225313784017845386478736421068275102890000294893404081149437605539469558249356682288871771815685748150976568292223184621735994204959129886444841756236068280745234249831268503001372585833719637597751006092811548625268847472361731119741857227915030344273273221031479023969295733658526897743986994298583572602681554894902169986373779889889047003100626767555529711829304155782345136451187208063606980829893436750731464914106262137604029282181388799104588660255650273971673071559456977489329929560786977575035556736599443203107509271518045063141881770572705524798831187885019785480377215701395816857590754952043306174228436292790953214187054272480599796680149981001141019701999245029312293904144263555981859348354976325617651793837579322763506100717438045074916630772851835276968729665302006469849401497618974892997402460204513030449019132514344186930961540343754223276125400848174276270745434014023271485402722806092338158914730424773590285626368636408010470243828164243593891006632815728003789818325769400414262785812261814340214057637035741155426988573338744521819166871044504553090539111016582275584081739390410700065955217162860335141753726068837611050696340703467959651397253521676506976101509643155625831873907027634157436483190808044342927623580242748356044316242503106500782329977501934106699017527534690698269150837678075524439339638271220335609110967651592673143414213616042864401771462519922567241974996065878938786262575827295052508249113336405805036384021168677713012246563036557966602984297998556103810368481798516475649091117939207970433731179965648638057251861205193710062188747497049165037401713791217017974452910118227647932213492212791255626087427282762865278700467264694678268632207039496782549062778467930060352749183772466427180297791777358646006847228114856310657293777653266941288681327974180624515434709430038990455722823773046873207067088818529329174341326717192158432218815670060962505472515007438143444655555826882357628500850830480186485754839994202787530094544350244518673364978169708002920843833164543030689376664141117250551659627984648074757593656254743766669645895419458205766306753687560882893122102953071996434583847646147879134211140995182766853238793921074636730141387015321251806251262671519425194620121583498643543958771609374813223073271897849508866098080333576958981654138844414803237147637631456926580195995446364010692678791256465176130375093841191327586296560818836612694940534342576300879891754665594759489244307153943110930385298949862909568480039797817333069942143169885365212957085546786858988340708294805211794659337258792767354317501415410991571621095412530553032539944672448157155396798307903294179138939712442777014180005623508225210907984839768386609860324850757151962974562921945865253076010812435722673243447247518608011942533504434751178728189222590155901145222625870279334307421167437577333822948000610977596693620803289316128741474130279515349369763361643019261621245985241179639993774718308668295750315845847752916728263126510099359526435572264684490191226845053863232759462910495663353505425791272682120452309441412328888236188528155870262004196076727215177085300755761898686206046386137160841337662479755306559468774213719133847767280590127585353019887774859834635619908335144483946623999161352053987361269859804253815428553390017662791469469408028524822476340954492854549466139180161023880247172602205245149426301707831510573720439909736920477718597806162641155526087658293615226603566607586003712389435499999494134461135480117087255366726317938061670676388595690021692878386795138410380672597631834015877637651467465354042258468290552210754534753815196216839469772008085904269600709124340902924763691364403374451587901038832593564081909675254404572610014146471441393397801391145980507402370954110935838452162353040304628134767788395041403248550083578100818504030060595432837796836517021519201036066091256295101251155749705446390259742297659257934381378256743590267856661635169549153606762493346828422844114493495039810198246919741031442640783168428197765929599698016624271909263771760895396208811941987157619511307026539500906737828187409221399919161855842132574349618010927823626626107387814297204123024764098421488292543455434821869858372757386581920352824492946608423199565689457612324529123234399173067629212866872452260309091270223052422874779368530512032263197656415811972972734726669615075545506674128445747173569688769652018042308317392075687158204322038795397885214024910035806480708654510240664886983304426349961146250763558426627400861153987290207326844135015043455033646061723237106773780381235839277151557872419148182531000327024500483945238304615987806762329061377434474349187574008893621887306968170048320187097020739579973379043234536230973374502394298999934434507023658679531196884197246287620420511462303486482653444315241629622166512311925989767937314306490998680932003284871904532114098761453032957447387249100227826602513248746537224733281677937958072227218453882249079888436709377941975429055860599375454921934771478648001106690705880190526576757557314223425711156962171394003291987527215869976748755554632853875419510521219089276017438865758125501665960783665861515679699713624368156888248038867011754845461012646978078490113797557293652868187345754243002187659424737554600112447735760477164773486613671196731982841909889257038708928203771678918254812797471368124895893024703254482645695889993698637799239543115928661631715522477259599703857573570358548494354161619531901496999164089411423164440260125402388919667443678510977450563960156625383006514373980622144981273121872543732623295332214051899474352989169876224316341630843216862133917352376871289409787596883761872672533057651076842026798848340703332299182575843979950861136517396620199381683332376075446327712455902696428325686932957523481232023742132098446514648768453037003122658240863022664607623277531464924222728158527580202437696841476611816555320856033384017180173750800284462947990299031141256948086275304759808251960422648712875992742659634405644479242643604571241783391384903055537260131357499470256938162058847213143921268039066641914147234858986991057299627459691977229961357919114772642253389940015857965365090643570582822543745409209717595046857135979052762895585380304429164790118981423484798253165875416589116661546593242965020094077473805609387776710471710024272933220199783903130232021479682363656210795596406944847821106221704244580273157003304008721600308960017343621728058896788799594629593544076856187827310890684261190870890421764615615226139766834459576067655112792885128857366573453270417128223370948106733931171369546855371001438612419511917965480150341445953531253959114802119081129690536575127508034645552952442789210152128523398856189479242369286562702360050836294019631722455541436873996838748885820759535489811811657503406511628413573896907014796998909611740321605856135763192021410075023062045265374987283457405759321305377754679997845342124145271159629043122890211575980047111561472728518974697879962596601652397860175642324816902955397143837242440002318334170477239455181641352165383361317031792919959180534266719747850923804827687649034079143726716911718738697331614619954198260262812307412572051088156324733867017757195211892477468155376592153307029255031238857825843662085645876061961899527462228723687296555491281252105937037607714197776216870000620993198761294797023678114949968674432670441593382397345172395069804832589964046557130319418670396770679587259630986889019008652782532124568831053458675518245846257363497987048891623171038960135721103391095834269482632649552363990598686789793935755674481645575393285897919683486048144095697102094467438241012343173984691088661468993579470411385283728505453776486289879143297304674699584332908274746445932468996486940060708740217412808698185560838647204924966668345553959897575549190425222796130755176459003128141131819326470602753120866758737647458569131429302354195487621468548337704282443413557663315315965161269135869530108022477213399052140333025867496357553242201636179872915816982618480812320011549945226043632354086288333132037134667957758387061565800752813335170721687326720002968732336048798203520698188323862036582133475080126269556974421142066210666064980557956134432669341418845437350482099631353271186076401302207490857038179309029254521437454019380559160784137074739632110030192481398383220739110741053958837523414573055723864661507718922802672140017959442459529250710371186505394245790082513950456963814138631787580168016236379781961417884427373633078867857726332549365904660452226563058540684464282052065501534663631005698496567006688580224880454738120302193358083859368727433710746104907204760379250757415611791561366013953877303915163486069634039023119226989080131246932484904250614372769230401293657070660274164606963853489843373089884098663594012889094068715769560910800101781746164264013315493588363779482122294625933310645363031923040517171042376729116394787569053327278084685787553679846735416373319599080816426382319945865222119169611821471348035318919213865090365171641743555827641821977825731632488256541608378680511767362236820272842754454058923563796094261272526783934040833235082811213204578087287936108178556866990279346991370428953659906581892787856083255649243734833465649554938124871510911397503477002712693303403559952648983863237292954066965967483268038315085071889043524979939678401519010646002472575705884182564122003906141207945776701317113336575602799037505641467238866189809951934446076855410668748095598923732515072697696459068362336699662096299369318959211959992598786947877933196910438664589647441385697028330473696618760224179953357583095004477106864757683738277877690408376830428898496552383605206543060056489858525890365681747151227305921946562148099616216389108130441674025911873954906322355218629979029101626202556759209004894055049108012338873303545650161680548795652775439916962933823616160028917447199278692277488258303892869279802875516765414109871389048148363504129875125196420659362611644631015966551507967176539642310125608228889855606929470853033843336949251073355674075204197566675590264979230372829660762768359353883428275439379156913849612546588198316508259385544872237605299309299103109821790737122212328758590852557245770816438713662783812349513127745804178561455498392100530407440125702700787239866606275867512258907862433732350106564125475750689733011735263461939472724097754403326997042521084915814147131463057879414356148698439743633534012378389786496116068507081331448369219434355576039603770406054003275314795416063248632522073593663578100968886284819234137383213041361101041668926031726280825383285891437483465858145094901833542464937210593872422808707984205403216917256652428270812371870265168782183994834827858274630918493121491648536946220333035429999639131294721745571948585922206586302549858504289772388883637108104917330916840718546532566399540944903805914677299901723874474548540333181869317995424434943407136280813092344045572352989790601548753467437456279979235470958534938947412150429737082357502993118791807458527555575859841918252200764878121515647625225665917337463588711244345188671804296521484697146589387905613236708737424497362178398109717901671570003853490413375789896533151736410692547566538925546030560182367972352405392006774797458937186137242700667380237716024556337140861126944352724435996016839587010750868887753751977436541168854642953579674843035933235558516363084078754195865354379248738000029264472885587563231183509659644052039410573341349635674509752568683313170218794796084055218161420603664737302427171792247438657731248196237128722011660812702428972562528794284865383925232166718386396154026224978756766435468931027969125664003429340046467259198830697380775516356839442440887197307676099921305678455787491842003992982833034126743764051166241126444425193982115299033283379607410246219903671367902934357990342978230658263271750818003965950777309942647480867761932237716859268702875047745119271098648680511654487861846173928796960863181196168510592421308412921590158891383263347890591953114461993696573086076654735614185873156494703200749548483225854959996315381514166448316960275145264132523409333315926327966853290690391215873562453031302141361732370516469870453623675332485702537180225368972785276677803423511345773284033221187581173885218062503194121842600067485109502040411853427312652071399655494834553502922937225494090945843865952429623372860219791554160422770858878182935012032995043345653456045288611880622777905897661065301555515457003191941891474907501174642473208014262511748530299674945060463300923877910252254269852867664180594746395586404372614092074638251281688820657464489530661660717527744679758941258035891175049177807373374554075373542069582776145816121181763996561475006665493851539672524178650177918438317825671566643929250082675091169804472253422103403216805387795656881892873832671659136097107123535687661527776338721110687986071348566958582700809634457764731573918909195278236825990582188326336327879456961152030686188262574430412734931424490009425784038850457635439138810595339937471805373701788846571938109885282776277847032172032413723103225305453942189242812644113407043648089575894490493453381841839212766464572494247326017940817829234408535425540490504941677038388358455712175185058519952626942935353070539576025824296136090203358338806835355393478708505678242139607861288117304741699922268069675591360930396735893603431583049990570946578668405969092542270817163193007330841612707028604014495191549736872338055895488633765933084390781412975018070344857707181304000667708095369112613538078330311130343001306322164554643588656323361729167139831847352387804113949259255985423853498681144644951244095902871970355256020530103776510271148368408248568298348055636994370881854531615597551541911181960376617045870689999286793369512458932289125427006744402988175363016213286046108435660702048262390119951561848621294591149111146509347188757138643568610342958139092961953785992603726148599310525699709935577536154491104440572402519262136966271268795240777051348936829219924516594043590506622066891139615121032590549695013116127346222945487501181616995424596293346513394126210954285051955285116818600618063278988133099775771559404232451955397046884391955231008956503766956417826621734476467188510825912354371341137483022610859133932472217611128038882454352975005286024962235271244292522508819632677493638427959169321971545228943965160591508366721569342192055652669341139481544931860447868137694507316756573374621774068381065957071309153519388042609919137983845863835589445173569007289267758550295894679876756205910777655363500685795901201222480704160901381524609090855628429126379975408639844047192824417190898677375773082550082201435260242482389405414626636171038291284726898423503094183228274617877915252845265805616354725192278209796803002681882427335548644033189080957627991936981121654231965862652348616570552521997617093535622816353043100605236997042651290017725231078406153432885590383468839870368747151092576444099100939307345162460678722566728453915178191413409031533800119993258596927003174219301813340021537499607529562867454362693621540411566690103812127631822885879494131817450589413155993646153531585406718612791839527099816795394843749653184136833622828924562895487416721934103150653442546757604616421275590632824988365260292214552814592169349361857741364027263364069013366098691155782190525677817496408654164170676331795256890276987542298915453024976152585331741127557282654941182847636529828000533165327667087270490561997754657332546715277161587589534947085375991744907084256506906929442642430146155816252675311954478296605004401470224578227888524031474199907837978412862402091036900119003173403140315939825651983528958002539484169891995172655707609383097174692727702372374592183007449599597372449641167357153144717022512762924908597210143718594483303410149414705524718437827327436683803590397152111224444539298314159373581948830834011097365314542831513508500727813355507447712357783045954129511567581362363082777219877449056624377708678679133215265796703715813503560299428655161565346841416431552489962248061126600726632423351294054204434660724232142603826715530402739849403494563788483654161960792876440895599572823414459142428432387064156335685284569307488087908081499800125683952846148745438751703469070207904763299590829323193089503966950846927788346176165670469856761931411372139186967308008744408268964329633965993634513683391195407732717275837611165559572370528191405544721402160870919410570392026776513643756551122475958252555623074867777048792889064807091061039357546178819987796120617662395510405203586839113398327877579558035912654948910293989440621766420923154212342719481320307248697863256904324732734059332282059234603041342391085323961411750371659046279103087934424844593201673752450739837526666282441016982735207474693617062847413875540836523645164148752436533533268368598019948899566272000438160309400703062161041779737863512484928959066451062001868866314909759335081428830253500195649632327354635673530664774190950586371131482942473048926824949827071959012745271431652947969794842303693736582288795581222460040758339676844974716334995729878717056884655692007603161463118791784565320508497563276803845332499389552742068875997889569556764537549194582875680261485447663478530161798231926889288337603716419899610890038251571733797792980538678682537671963106327317468928342290871221912512113271361155383784101462424731557313305843790764264400770050176346746600192638918218791193691446658406377758185149997276662541066807312321639152351560463117166417032013670148332397952591271637302444958614144975835609853550852460189059135162825885613882663817381979654117841748140269340757368822138240142215147259077447843506068329393313608600588941402853109902012209527606049596353407750347627853306375362987257525848534976031023009856967332719323730533644856256972733100882389008034767437569827803043156395342891591147334290956838033417019667475205421672488084360277299073958962665334674752307150088799879456310084361203329804844220397165887556566960000250510034796951294040941941548362444638305476677677672417670593990863197640824061739177604743346612600741863745615398161843207639668210675691534789848345495965691233228073137476454203544267784218469951369880649563996968571286205384020497553933768486237639238136158431638342420491109876449588861069789863298517014520493143785268139950699387924291300505983653175823900844925901044076743798375648913842003987109677429032091563932733321403776133543764021539668051356447776773343696248846093237186142441283633125835594123215640436079157590086407845205839491353034700405207645732067033951196613555595633259930290567034147174165332864085700778428211441394853353957731238877490502028089818990899489673091923238026153051393079481996619928252541272460105703009718627649873520377854723795428213980513816194695548521365870101477428394013075506254591490467079716793772525695500003352337470174907409605995432940832341570105905227126696949222609484586226998654633476957077519977963433224127654544394508715746826605386113474840433221392996990993182121143496701228861391037180901410047391167687629290511004976495644249464813534372506681507673291949200491007580032365614838972064967676252333740130656309214004447360603553257726775086565748046972602551188942412393095370489300006663539935955577502465412149680115686877411709418623980402755965989605575646204363119425495924085121840792367037317067564816329353850556458304141760184727513248049098027864719794303294417009049107886173203520672293330520603312693380460311134847295745423693832936657343818471905598306761555225914505576928226443302578830966012720347863355383031953616064680557592564727193389737683902403120090347798712201318798200427150828426688782373908276182948995459861187717098271160322557319853253391803878620634216914832699560098148909224065901066136017487753085152031015884718492494291259001974282011097417401029213198180235672571314010008725385347478643344223740054248557636802099997481492802389643316720547808877888991471165345328948095254662647421987779551923711222635081602784231259231550829453137260376288847277841434690588024340474500718682712961850622282077951053494274062124154978116574296345067912406872624947163591969650518196194467555020527034722853272911132404129805509431118910165118739514588399800339701943900028831927530074998691898128163172261629557481786987541191513563836638524908227858582668525831085958467842680789681361942317199456735296391647193768259276706030633575627653709604766112934682359335418402972323423984598662634218401100088137885783085731985899655596721089436960002388325684407032453658629035901708938515047871194386504640940025445583526081196364677261531761466913562247552819038073154090034252822787547527521076368541139614245274841644982111100792419775478412388176905536349910625643095355791123967454038066572615873337622383300356454972289413646460582951650017550962515275342200655955180400991424808459877936000409965906627386181704397564443160609028859399261009787711909567227851791249597230939012891707400757297242986424963694586549447292414353929849864616873059824156863665453492543148043628864544699605277568814699896532494512115252144205843357074855973383884160215917365428943379208680300938204052320115436540464087742634174363763058677502566831623572991762880925804179412748288864538784574576245484283768076218172407876687822285142996392248024470107854090998883287049670104311953938539317321236125083004922498641643336934792928144739687693840242146907194575854965727914500974745445044872968174583920809869102713396406854698535301985497310470727266350607741193295554427661281317093484451543909060867368858791361025947765066106076568885653847694991116297458895230975223112091627666130337116667948479263048947518244218682621180553840947583191583931315501211579059301262631814925269407316451677532799052714976736329796923609974668724930087050329034387551864810368874366279840106291164693931310159077159659125687861513252077322110654368269487819767994960028151380480085676477252403277213770288185220698411555897716196421784117325153657820209404232087644253227271449762568210012020969206032451440127993399108497125582082457306145897983830243249759066860775688285264050425960102955112050804805385305123958523778890362558473387170157611934674829823680829320208826586032237490820742480423115965552968866711291860717269055555164116060995148248807552418386883977152370529035523688853563314115471648606352393871098165714346620865764043133430081481361923015336934088320262383276807315842075686765168415641948373760088607394567374528099083693671833840469288040291881651962351881726932248594118583896312417507877156474745336732336138267865332829618813158107970365451218106642410879674457212992064540937092741768543539591623391471876924751260282098083107000843410172420951124574107088389096730812707617314915468742765114603155821142535204582736545791754740301905284647689332833139466867691903398555480286843323076388908446361711693541026084388033184025604276116411697934622553480074767537637565198703492141071743020738259109139031793176722603161778594432779859352336053308335721349870854281611608656503929900166321443650888275707029173773714039968864052366594216168565133969017564723277334168639101472684077906047221982475642576225856973502755819142505570055467728894602887616556855968089284657560067772568716685486796272834364005747683341917822114759886950609998759775093307312039908003532703562065253589286556459769419630912186210567627433951692639419572956470122906894004532619265800241049447623616282241922992033616464567273708438961020880278036379799888122430754766735731499750420853551652574537705739968511008237031459449536755318051081061284614022960455257695771338066987919831802106138579822396328596009420412958389410005833854337579177052791498385492188573107703673252046614079594235915122682745545381714585390610402881079071195464614045136271044566260227588818258612716098697903018230039903457501995895112989317728489648284644272427931880861067441295255054682636236439872002891114056877218546803094539261095624849109209289980250496697515466688411447385767779375818411059907276471011357879483422072689329967561959555607063581381905827808536083762457905920832551161458975466055856801937285588579666989715620921720945685920855768562342827415197375291173303313644677362219103330840286616430105693283827789620235753369472743167245632936939346368845295411039119213906796081287386747393039577199384019850937152677808615195405383318539906435778714976828220613671351180590012062384884132363599041782656044965037993302648808544367581220274123453677942181702752313103909465774284374295154616639719544153447449064007509938993255128166531347424369609641000367821764314787623500067135896135246276040653646122526043409820275160162199480118204698126172622841353540723904938090724903321198944935742623554143563054700311484161986906328687434777736408691788877757691472527079929475523456734465917792776494271518765500188211883044356639595500273948029733805701377781973030598480984744403219603668560178450080462730465162995858803817507905020137590992458927653938977092614656003754832520814335376216458677757406077534697932159802822802578022339751254594540599964938114458390957236417362253411415169001902222880831631851373993788850844558044219679395110284899552788667746331766505491469909259108450345031240345989990368172272011135075563592279136000790401654404195894632028305560331982621135689444512062572006583405028082311131485076529597465646133923915698310686683916064303905719879413484553930750473389534449504123394046133819433692763694074871505935513864368524105431803897969373738143918633929028170574667038532220142592477639879677463029184521200834355917270038115620513322952454919068426464357785517192860829564698740701140874507426915519216112648247229924433169488430743268607194902884159237422664227554583587676088441896402696515459706033568173703634089687374669503412855193914511239161480575435686173898040276348789007533826618958952997932757010908621393990422738925465300775462442881870231014353035529460638636547516637921202058926862237179709274123729865490419447164359408528488953586597701284459541561936337136008475483535390709724677435890650792225088529918006398881248450362539530427745305138330268145661647842862365654226408074137708108812337227060630439633074171943294962614350209247440406178535355618743113433962901631733395690196510613821909542469090378711546688543803315630933043137491226973553978286037840106423026775322927820593489619270861871484431779008888353596063564325072068024447367490339229171203262132671798491259253131213399700507892274813005056310779067130068715142961819419393045730899426931802944651862607941903952182583223412248763993387432298485556081995041372882695920210358820035299851742902255775855232923633400098252294437293702828847657699442070427449464377646418827465641632617365072384286195266885374875243307874878037263075939698833901369629258222341579765048506669208800662155712025902594776934077820952498291258846259450882411816521915780508711297170303261225108269959091929649147409046336104762121095461050788875442365488823255741480582994992686889938067285704185217391842033490764734065803818678241106920207781919328125504527403141348664407716730523265016461602333713498610831210635243289924983278894588432230745633878519176347186773054558875149197615375356765807713658487103410876113624483282207938586580507582129492062235328953885217246109618446385976949139172410009445361561810976886612398789145888714603383248649384556062476797768540344801804915328545964573300664898216847609315192719211691763065758616046169997116988088897279405770556138926796793830792874875231443503261586723482102623635932568252667483113228447755951261342515156367546458426893053168891437177583312957018785689728708086328928614819894530477690619918949993669529184836566990357480540215311167335837987634953159498690391887567296642019290733557663185079755320710189901542960989945181923089693694289429402466423889242863101296360380369242953397859035913150409662960453275441628707756244973481069477342140769645853647653639160993870727406307344707972442171439700306006328423779535259643300915793888230614117944581761506300852216166571480885544734840681871472701945431028309008319324575567872517273659520918455101659775249617746338602714821637004138269238108733867668698896573790925313713214535983035731794672977893021972889428631208398430358206748101239924160777828436981021098091058192787851103361177225756257098217555944070131655283252625243825490776198273087108948973503371526140651690817000925080479774629423651836379620895162826583778992839377530396709374733256499300731838664791885901277216137869853042515856408561688245513680088313017743005382143841562734105848442516526114464155479829939226516689705495968994741165678646939496382477127189353092199765947347907576214105851594860378230755704754001007605383652764283872345223539980248008959822939576353303291659603083767915056772793374156327692670554151572668480485288887383410199068669015710938388955082103193915916298280366148102262886770990195128552433730057641989478104287288194952075583931893471601124456791761758362749259355074589264194079339293565915128015497902962488561433058059055101449093642156802507345882116435735615313054464138852588525235872314291076621515509662582576637782108075873557917364161507154349998560586144003347590905900881679315960259102257661769335518533760429453736356444091634954356050237167797801352125732098464646196820469554806436974599987917667113568997294320375448585664102458883784383713298362015431032701193954880445212127341158794889137648022117460584399470885071199227502473238033001133422115730530198676079515549648978848534597037130674482619580044424516901244512973063049326558028552665110936490631013763058189268358664159113134412518542774880500041193114343322924143525616319946819393407553689431567445786007723693617633790825181332582188877759097748798865909378110431738396535175562993088551881880673903076955070320755554782192995892877650523355414334671219136248598992809548430011378651414746024046377837634741563454814846746391456966668335874032270363839653577974551460694610876967099261610881975549345361652512213583050018359911272668692996098574814921410530317143861150316879528928943544673026449030232089369007900762477638758506760167953119777798125171164129560019453140077783249289752130647953173337717836270492170556033208537545796463077684903464988366665381916104405071919984443889640032612132980599811444778812662958087110649747006243798930200552216986098849880316028597425597235448646998464978622505184032534448643479805815391502668007068417434836907686426731289113726672942289392962163389262966468237992907151639678147786367302757357294633066674745834081107707653930211615210398024175440393353083724614176861635718460143400137082627192724101091896966491698457633869929321432060820677658145879030914607941626144549907089766097611051960914179462637879359513396365867189921530769503419080163082422173792531547875942088769330234565459629547880922250137531673242102095929350775749360378239160237418465301122167760712758297934016340268466990760379445520387147681137911497073458681079847164915590353589717534004200710468093760047579961040067227272609133185619614544766544377906808190553774986795888319935771610094097797976749018485835420618054571519860472307697236986524497048417417568937504038544954246957451567089939542524175393369474034349985838490111072348463186251752852187641327496996330210761485899441599537461411868495698446978301997301698436872204477626756378364433221215527573841219602110455277493863403185490209226053654651088820602019031278330317335251408657385404941188873656573683450126011024059749354848988258384150406161618514759524136102822776736663961812533012337176251457825189957818381330356854421851332709045328153320610997521013104680254887641590520916277717571136690841968745910547940308451131849594330124339545346315484436560557229527080682186433728553183333833551312054562016521367827610239421402369907529984949977132843303315065220890260389008791305301391112889052290019757974451230730263463690214582903597784775194200494761148288616996694219702941515184698174267825701969436888635256601219699235650669858588523262058322193433676115881913147875277762371542937210999868427522753128485660334164118929125437783250821696575587651101084720350444328418471191030962555347013981681628661789489939923754815254103987958201197309689930153347475524029128594409073841256720758586714357638005960416233878512371376314696033333301735171544443251045172887302448540645708178261806435456319465448088372266077754892697930594038811074152377449637431716195513559634289062903569447423745488065861701853059338194913694550880117173870652094823226144768690409890163833301872549229626153111118990661242941456272705087993986134391436101350488977156564758358471193552109462260232306235319983876479981996567468404130093259202741024485420724764737110191732444297926141583543991127937508743844402574594028885773865879983319023361174520066881051665717560634231895024683551497063355186003392630706619386535256516948970786012266889486639472247589221662360371090578581085642955191157836698874516707444709319761959452688103989440672119779450343288480771507687152272949459189592274718586818248065742130369909823649327476889356975236450223215946373648804112048130173013325488226366355854858889113407063420084653521745239617538937212354264292822137810433713286015789526456135774040514924718846071791797675736038168267372923316604143629954542208662381710752133365216978360406376994700043231979095740649390868672178827014715877669582662286415230974126680657934939110039282651007382970590738802161601009094545490098603180581321004941565276553909705739488397646152484253384641206181049128047052967141359109569607206183747105125938059492888064343220857913648986838452453677593440296479962950292014703990312039489482960578604043933228603146451282969296899773406458174818044577059532612568654874275065720799941600695581153784476137417033700526700702299454153999502922900656639175820338070330055022919365681843823897236362799825522005572995086863609285849434094456064117736104000972570805577086484615121455631801350694871829851616880108549222571418938723385893261770728647540884358999197358789421801836617476610885639185266021805479644640670043639575299457501250894702839709819825742521334021568978204837041869608912830554081949833439012374922784107581058842016342871069554216871709749010192531771708042408446709817999480856246027376560994359943163259357372981063471564969054361737531406502901562415168102830483289487082869866292076953286057569049400802701137359215648929813671824104280053082053090979511539997863532917067559084759520904990608824989441006674705795547844845751693406010431662457741995498613157192835738325410683593512014135543177207191598135416099844378449120572696744255356876784087457070933185250110681062820764398428396842968029323098059758558312766266106887683054761058871209280441821824377019515850695157465000123167693779688338051991463952282099660519568355621691898534063002849496284905212381720541334388056751520587968965356539079350484417867904292541131983495402386889430469473961977777049072878207968993146990964598465718880974208826224893801237506658538324876373950261422924592918086660288151041923673493448956439795768484997979074605547707688996803698980060267745328450425193815810701068036046731342009986641299240112911734182951614181491186624505534508851965199032421347623864837297501866339267515084608782160973347383241121520977278428975250673349018017038326136128701048460010457022390009006438702603261869540639914156960699359930495153630761441132438964472453760268304718701553557591720446010067232821698983984042544475654936596197556794790994653185367064737287332219349066538957382756358617492854139251052072832798126729294934377984324084017175795569859340769619456319989336995997974786949162579548942891313653047134488580506038770344541432373828120168900816012838645065177977968715117993962134803200660417910348124454780216792048424897592992348051729390673397056968633356282176285582367638876315199663004217579117830949623424783706835859426392467531620845145427172972004099333340111615065146068985140986689035654851749643483113499266497305378788936697940067165393603825385368494848012862251097164331028561676999188519940246173712761581041423029001791330613582351710478762668555569166874649836811641037349795035832664691824371753381608740975960795641731053377600797013974331231382502359053957896162749166640639364116779420504765911358556795198068133947050324237132053757043271594152470173583563771880161125570494571790725762664854927776755607150826247079679684572816499488568795260856476739380128954244600490304469055761954523981713349636947573492097531121594493600097695568046937052076190052405138987071734129444598825130872724299188037483166546982714476629935685749644637226087686813219748464461514674149105176377268867083309626292786872844954597354267466579803888205666603862035850136021895506297049115320380529091096469017393279101505783189109555793562504831879831081605218892565633661755531879314650218495761423738560286670427765890579429599281909248033469680796324059421642498082276737671387976745842383634867769861018864658849152391837364393107745488647958258513475407342801356878359904584012599560460619102530443693535745220099182694475558110667708081857164594852292960313410155747913482958403378369264571226219415786488059175757701199280343722740363967387236622630529859490177427586434417498865968450379207121486281751887691439025074968852329204515417992288315965289662548235376245118975736304578854418445959807336655045283624690387988842513404141632904367079312074998410633409418786174566708960870414412163307924390321904255529301089386816596602727100373404566914681319581100498308746400302245581632052147119563083551136354511304812315855865152302554980523899973500441614950026363379706028750234872327346990972814002352618597120425341296948829946708638365466762721965402914207543513317279015476745952719955266286643923569361472318866496048605583316582795120395563574320126938097928639783838172520431496070214791950577478298895526247925161582850019653152741940827818166016094565164372589760908092812798074669793521199864361115152134521405928638408240129535995844319518986932391811543232806352150844304445188165567760694978809762483154479142879333185810431147481766074865920285492127087303839828072427667809486480131600107528882672365976526992404310813608649303897109279011523510121670786924917075537690967363889690953947573637619471421506341583559327157278630162624682133740278495182800277783967412806125062537790561919300129841717737010450318338468484527506841331004872930939053897222772592727585213258269731785317998635733987371196947305919859498050406893540887926371535247824233459178249141186541019406606173691770149362179403141716516935837119221301944182448921985429941417189447374540062962881550705764424442216482735926359817207708314198889354978729017905277168042633790228920097137743614207959654178497602338934257014269457827937886126823367760298620489364688687233688740904711580490442284744354707656877989335922007977528489843753821550889538332647650581518407568270379618518404039802792635051027024175554508544715709433012517030632478181112497681598819671038948169472198576160980110526892640793012835852829308195137265791731565770272082865185676623423863257342013593885403314491926084621402372826819425511857633726636897961364521863041009437489642878678195460524889499911861671247923785240003836336850688992667534593903788475490917989540300226492074092070380644364766962815176049941670163016089324007430205396121399771933954139716041375298269434779607971363818084581990490904194786607809421339613061377507314330475556906488423324575410813704813813493123291605982202591706684988859377568110321478301291269866234425628136287356236147465737027288216939872786957641950958432550850728887382130258912491163567997465683723280695634848749992322494879684107553701854741899548902514844354415324079772341704439253642136798940636770230278069773888631736269948382454808945964106360555788622358942686604120568630716799914667252678758336702397935338363394985372732640429919303274461339175386341680281159918039571379845050795841382148786265064999036273843922047788973838372209338678492543617543685268256723563531390122044487051517416273347263380244871584392507669097538208119653144635403203519659173633689342104219519133377163293685143599765360426376913023591107873880945506283687456103587463489844924121981976534160581716296075762562101003789716876952425815307797040255097347081770735506641412121055342574782449498866496286618157091540945550885788327442764083194237054610061776825438925309135427360223737261088178409870191446220515429046771253696458010658932691185643194843953491109978342096890553250298009352950811483489340798271960165392038006925863635042402768902661742481694356992578071838730875292950437148199399324912474405820381182528802643669268562630977510000276772283837320386971081871026902162056907300843451462032754001390544061039105049909574028534454094071166883318651578750359486178373001545559767099297062795577466940216633952460307644136046499910381496573192726705929985317077443858624108999502452511233266934638481047654324640000392614404015184476276960510242355602670829129328090325531406437483447387391303685970061625854754530375492664852532178783061591297329781873007216476830550415396572033564107338410349459033083565361696170555781863337093191083658695165445122988585381541534590320950329796221863920680199297605769458128750682465506317392461774540721843673757163027281807007034679644234646182325930328281217750526596503585337611050802678527927681871736460461872963069078688781636555342494039323320620245468693692219701782236965193109644561421304064042860177926859534971594940173032040040695581029620697194665793422048763434509165262922823282779560392323888339252977041552957596628591218867660629371434223657154583123274995325633349670979063630083165961094306191460678285844072594372793877263342962146211682302380803836417302883609862608246193844762379916934805799515652836534097492083454219681563042739994141933358484778936048147330123658688988784668797490413822068386511077002274420027028476488819453069406174884705636837284588813762765716335106317115255585684580375367050758443417471457752236956765084301405867974907162255926664688465360092932975275438340782080805622379046665062809332963690654078428811310105751073445623963014269670135629889862680508222655062982391008664492153102983615397420783488333320607546468814337372808823884761057346251427759623510952409207198676288990200312436441736157953386339720239137024211223969566778179611122181807786865073791375426500422843078267744556185812249976414648618494526912914951360633067041736843971486193860058935360237018851552537562792632443695689679808450852895089424333531499603994418417637735259414249991902355815467878742168870122674267350190634497398217117711014601288849016190157717410009482659483892704352032933681709003052439796411718498233872139403637306099559545132955951526204059100222913076784274530747918803922193999780773758644910515763076683229258774078373937284085670262936014705904915003834182594152739018573781357389253646915051326347049470446078720247260053228730256596168979198471225880913280968299206640779482600022124428468074239395377502545304829671914201761602335593134156123544705582250737832543943439351293121460922878001038239806554359173506040597035547682625809450916207680074333703177236947867666062539265545841241421048110857926805942621458950477358799642540696098985136112101213001442251528754273854264156406249189537083273402405150332719649007152195265440715188115894970855284318662245050533361474131866295380438224653753782193116217701835060362053465473751847268803870717541329682927954229019462122203164565375595602742303888664854913629666336384632730185390395173765017230410324005733681736671363383096064201136751637345070560185157629921282836124755381704220515132479339127438902991337006065599909336251695661557185242208527989318444979369518804532717570289984572801807175159125291378703969028002365833717765062942936377295869213318776900293266403804335010049634904605734049362580543560147132078140060705315364923403311438364667486268250893129165843410596042659744364106354049468000518100269456152048204778647420778817074356315201127789192626541703805712989924961008169126020726728121998773289509536890349419963740090477208693194098727217600254917852757383048550104714766665871951002915701272141579164526302709762358268015507776861294018308207939624460456745924877929448376751537393028933496817287173728508244908205920072696353087354435604032303263563644082036480073492364052217779173015881291882482670385434872022056025578134417224347407669981144134171132456190671228031684574611995356868626743882129600154431936220100195312324488515330259379459785920359589600975027291966083178679282997971659377157441525886830070603894735350865747205986750646285261866570197365368833142440377970741133499635583061080068576624023222378486406163454394076745749733359753244920593257217142282073284612329050462203937143588832078130477489539852040125389957188793493697131119533420621234822855763047028956529899292123670154090054326151499309636907397312482134450392771817144105458296135630250026673758709109606537310973165392516306691445618815538366977692832737348495045145285828261012023972850527955911449720626880216753098081807382673472548437939390864991525401157571369304511177600565428332979483470432089095224456821234932796232432118589224332952911364710802235793584398885799189096569021746122399752298777075092773486144326440124993330050313030588432479134333403922386927342166988177413999362993673892628478533699742725162759200329806572685783719523402643355512052806690972855311470284268796844183274177060034054008079972065492455073868025912567728399363894961431254382341174047713901712094852602629964092447903582021168519605075938990458358410782944243814832933120213745833095790460395215869409033673022218616171414491821192592226431246617475704131470942624285118857399699258705961144957747172086651289263936664795081264407832741901122638816580759344536806133964619829729497415043520572516988866416415080480984206664209305811310837977087334282939778098636693702265427726699766590076453007211753842282736084121958592209755233515953402682441897617328450692957933629239927994579261389750271309903996055173564268985285204496582419908658363592440008905606791138807853317803981539425074675824358488185103048579997792186943028018006629752682220688887816481005100343604903354619029221981995884993783101801201721606277067535085252427152342565646486966550632249692037009114521207369264502132619551119326177006799016698489537454521124437783446733579280337508153312456749338538130331610090385274426309219234505665236499455491066376279140249119625153055676562133849737731743109630870495824307219557223971314036221946334808136706699493270402691375094146646790200056808371415534380035113982320421127217058784371619672640790709716192503279592288481758810010062994161210766187630249353575651907796697925645111657175488204277990361855988933633825342731378123877318857548155084160793166994035059584300854198940273013561447836658987476398965943948308350296372160862327275554516313703274967995861894326797127433002835472589810861061077176821050378947054909125825674000515100485621911909242220983125016092680490583217676306272200513305646313138941124423481818181815834824898634027508065361431218669545100545333397351115635289459801954172273528092980827405267481773487984622648154298975130907641273700037102950039906507855966614377532241869083021501943336392141183534783731929606813991864556862548386333452729212015671546404764635763340987823029209713151651136697621037773486955342307161513653961818079989342068685036799312440855440375157693017495640999449188262895026263921472532392276650398250521252164513008101326741172993851919832097676871975808343643815553827773726349561722879435890343844041672835922375835171349978433903087818079753944429929812143446032090896556498757557901030803866257276551712313688310644977200236170708321250843932476432339126615866381196286497119317217369430247568087755490145681441306397552919755977077123071199111901264654881271458350149732222600153304132473661445618023795556505958492779123792721935425522523588284526582043226206432006263997859114298344230493140572022876366407551533836499080212043824979233131530431530531516595839631386283374462083832965591810062722272541934948763978056014235173978789719524007531372817085623570227420317954624967211461468601310946613269504636956812488830760577990430425381476567819620879298745252401325171996316236950136031380552300861213208177194939550751117863200499408319535350124411800846307179561878170523727831394117599275460251257629578596442794439314286791501111283311177928432586876330939603942004132894573163617626120276170490169190811027084793353114890887028800698347921986658179641133416287559761037977292183648947065243075133665841394464456037155812294307110193256827020018547383616994867920015720621102790995985739862150162983192315594235278998609553324971803236492739280859599534968060781695077452747221566397314871276714724679930173920182597704967853144853232214152889619122260820708355133482297857901038761508617176529359231387235508750063006058618194009625428587428804580107226435359610312991935026950374728361120329259902711633415800407036088968301075604341782170328547220839584430280723075714781217478970161863497056801072618109079630587131923013016464365481470130196347814205822649739547937366343081152382027549501521621309342305049568976016317835902904391234686195205913946377144813614089207914373781682802378740693704823634527941730364876275263792896770329286984978141336556749050561836077418506626174361440739563957238524108403011593999197940130503669788230100662120166700358404667675662161068733161194865411975261038593608770818894611223352076297757143378539741529717316090627369305325178627634112086113787066148353768829613749995285254966815634537012179356066780020980768398757646982540549238558797812408082011624481353655469527139181432909588119667404970323159596189431249666939771184559158548923958711794120886080925359719884168662581844672135585736634512468825975175531762506156004258813098762554226761558078568353357347200538900761926029286144903075105093903223894274975571797491167014049905967288630676644038679369052617198884451715811591216021278541807747019731599254454483009613986488298149584144400093298076849118367640364925648811316599047032591097581802748783485388109160301504339363198988991097329052342949481644931673050418055926340212425908736899349975814969620912964483368299078305706074077629328543201359875318561255593745649239621381062923002097010436743514065143122821804082034775028691453461588526243277120803835167100682467389945166003361466964864088240183158452677655103871971768282093998253965152545902826223663640323199632478432833841131010192092171836604523113334268856960293007029315117936821795845804296459549303525199309755282292511019859205647803906120444823099503026951891706099422075953563924291961226461743441149471349484829489158463858225864167901180026280657931234039359869433974742065845876998859550707672397938497704632829818036092544198500099725060348304458154058223189664233899062636891442648512007686883037379318028507163979501879279057543687468728483801144304593347215836205084295475489647654193573380209954349658470894432115557148315121418080809641159972824749070758699350156842309533561530389955042447353232989869297300265461395818584141088819352855079060263807200649524032091815695237672977558660497686605262695877387462020267793485544038957771491518976586397755541226677828876543038935913402836448745309059392459655678843528890516830989553074553131271346925289601402180577251399173056132725088694517939500556261717411235722954883256769874697074665539093778963730700272722418818371737710256575724213195302156382597117951975063897587465579930935110846426913042155779640073801212672664920027518495410013649799773310680823790168118563551076805078751245076914550439948931922940103610144605529338882525204870512351774806068573348739035301775676818022677727745677921564487039480343638000448699872913458734727931690424595897519754326791524946247699152969370561540645269578188255626417977312059348363584489927181385197026487706316008763959107042285297272026374123871519034606866833036185279840924623822251649753517437636255555699600115594842744452788853443544855615808946041794503151277346635794823083356096481044534722357381785592579336731708348565987283649186312103800164030159865186288724433694013959675768751787829596964562571564415067374619411693578164750443861384801303955112897579271370755566633170513682161703514016142612436363768776693614473767155272313595329486817710822542555895568015746822555989373147742505911699739139293181250990242113895538433498787251709552848432265164788287347264647672218834622860849296101875777665393330649887567933649941848532260473416621627202354746267474898865475945518587420983453796041397472719724299087438164898570550978627000772568571389917676671962140847694698156259615146680712007801516356561593064408171846955175359420186355579068061409967364452969474483801945759422913114729322381392011618752245180570914525766013402162513243888643125163673669369376135730676420602063129220625103671827257119201187870847623801200868647915021712366347101923637267174136862110508582487432866043540520806725488897746541315418758132009078207483430444584149347989755860428420228425791287400091591873929981491984399683156043412433218508393439011126593152245361649661482564801419823010959390403043467046928853505177542386990886965383184355096172693217954766258727007675760211828368107879375826965404683728076628833328216573309843529171337273974064239329477320585823102818418411828752526946818090621125006798488373693528310157673363499779274926383782821881409718317824781255011604008549708955218040292487103365528802020848704906921824878506129848740305568902044763339324006872875142348048251148803347479859984137745754113924097170766855451011890198581093510354489242307057591623749416563302873743734706710412378008841910470378659300305336658162188793410823253631048601390059164824349485359625782936646764009950355635392911288766340980577777981535802100880168993123462349910390010955433842825080659202610912991977875806171679168309844682250907810975355730705495092845609580647975669969705287381828983462503215813809146977327515795071357830425645807295779229584847357269429900796862073365656402905174572250067133155982638365365380159083878206772185453590714695381118750698354663838275253770289424398737825335063226443708460483956077254674501232047977332148460342645317000727748920215081222688438587175491647956203860459330924743310528715557968434207566824244749601577481630058497780143384116863852452936230023007162401089372010432552532927679783222761360277521896408374250973788430739543581175203567997648333678634024023288390738529927485047047811550589869917024354964443067819576260433889193709739491179967702167771398221695033398170374739338081103697390294163021489868420130766583315681314149190059922468772888963611174669069006568998221218312222867807778916602386765401402376336560594558217374658410837737901151710960185272805356674260687726389109488368676671263094018366761250879734818514993545556389634115128831946541868780541445714871022376748028812091639756090732938965928404712709728553089330574990989942258426762052095168790565350870423223253520386512569207960798713045807686108955256027031038630600907955980419997852333051154914049349772651113886755407136782290804441283041697048466525338948771214806088583956115814777417654792765244493885652057887878194567965521114222663851335106058200856013403390431277970928906631322710554312386691982931664306422683507148765547470006313000009605399235101833566675199519317918008236642399560697671254641831599847843217787807430530991880165467581469872691049130323396353233830988415426109852489508249908806109226010379863372412030382226063738853619522602136483558878206456452688295181028346526372848582810687822447065278552638739043942273767002451618711874904156040109217801717285373064358453289969957357558669011578158027269224714387084989687360878443323916413868134859869561329472883682336348387203903252868472001795599220776612909126399981632698214452646061089140521185793144790023350541092767312588536347432907212453563406299728976389821242581572013682105726956888876795793856266422498062595364880898567428554115495680074695393674332206886388191504990072004672231669535900761056064835072491367987409180868716920381908972810446447395657790199008835700561960000616303651675910248023465322184398762937244902126788605392971972180018995322732183182139553786433494403486862726365496774584569659745982056071127749221777563000358195198800226448523644492314231518690132784645095553473531139868585058048372734376300237251006346711202894830001786091288196554615993886817881427636410595897635103734882479725084092027291863097075625199905947904078765631543386850080397784771046103059435774848285599401205737008562223193588576472956746927439088726020388950950989725136131917129693033444453780814811714233048208692774432683709026747791158496834877040044449061770002364952126345687039791024129290026536776372327113208913881210412183714875127034674193782465924480228078984825067130510004524352278605674915777733969863332096829593344989212964396095340641602385124858247970378364224987480972839620411400032313802427040097901950130139282582143381293222220455385910479739214892107791025350317734621559434187536422842677546827079220554714280773613033065379258333130720878396607478221959546791092049848098680105401163611724369008272684424415829259229582250098080174303637187937931867106380985836177894745040229195444865758617734434363629986587984031269363697207062874068218713089021374354777054753700082421944326660434320395797383695930409194987195480309283312723050902321268915670084858898757024094072659166910570533022759285820734419199011569668281377629592925915093052021226441719185607090892646257494277058956262623703296660399782563561770774373530029782788013550575292111709566323984042336931710918792304419334787044318293085836753502693710357547597649239884122068082348243184524220936004515413662496362745427302296469359547225916861581343524279241769122944165150178634712209492992676638045614364096828840030890508096931167188724175642471141450090338896617699360059230992359369873640541922254435119118720640870735312879765301258576382339198801245109501968842729093000850236727932516030746987796748007458900602851499877386179064016943670313057137276474387115208319730066303723641474850967433381374967136477651553531359052175978876095213396872657711588748979124758245156428206233679688740953144529593372865155297150721817211056924095132264125422452804185175816496082529181884219404894122930738372807342907077200689521519779605959456336218267191158363784462096635186700147337497912832010388160290624260668397809107081025362201442206029912552636675256250200330267894249567421517221316381790542271805584064260668784560099273093696697588241971753192468457247647650104502577799790897211033519550015176641898924373491881385175419430493209699172012707088200595629975251893405262337150691974502992242374209057360724760688191781865040093864559125710009158910279231283593038957693490592391938205670035290467138999520373711324753882610173398172404715443481748639643922573722232165456035022962526330730883565827877775966749506981974817655153818754716396909158083469919282789735155731332336010883798806274621110860201071718367809957318182911432678759764663270331400707652407003176331351154067866943725706667056672009638094954175404402370086285078154421772612147720362352169326919229287120833891431075953186847832946501516236327821315911812899065281812131562731093731050654182573433201340974937870082653699811817212398525222512487001474391531046077167029197554465518397310501763002911150180280354163959110889424002252434231800642529313181904861679505211416390495497260146019638428142283795420137427355793933579598494199914100856514433303913534918028761920356017621560657253578471488648262283216061612829013982088486301841166321407233774508431420548729522082571053433667889135845146551883968633761791460010614896405188177274995720203068946059723833298370006994535732707503245645908681807002976874926104199308379597597990199763486415203086730142914036250162207426434852246777129244442872867336309960087654783834491013559874386443487627462586416423490925982549785377929326639756419052942143303823105868058306500358532330272991925131955604343970408528608010351771606230801298470717024583897814649616051283613983024797180463914994971440501820361076185239258598066052052584628075995961224419395605936002573455366820872225743283334678973699156897804280588102138225998704126740235259530663922359427945527466913290363360023642769262634403142349314939513368221228853942452871846028070838826360613068901130532656854457739340343453841081287023937882405662293081315291846187022749560989633639946083315985954463232612551114674810913628731347231514069659984940236907149588326028649701380556076937020982772894075196966696298987786359013132419773493514765497848357754345881433873101083338743338319218840850714828627121674376147702617978301496804463698573558033992753267106972568760418872440361671057475978477482405712786753015159787804018925573321686624967171508611786769099753478218000040292073736829947012325312874585541806858750510246098992941692333048907265227483273632037212802704101394487569417910703823843814554778928100117809455474690695094718130070934600807629875074831732900983762375270440654868871912120432203085284427856296671010854660491653959819125805604149332527003466528766474286505593164266848710645791682106900207748464182387772420720326039555647335068243807680680220207646081333090854773477855448825333106922967738779532870600672089728370554885499449147710383850118272160661108055545134086964634176089052572428658411887091688066309770754866312516306528258986388517845740428530802475385211314885489179620244839701656664955921893614664598507713210343490025550753062226199806410830273879992609685467044417967491113876078131841574864758480563333904535120281247448269966016884947942329132664130074030427759582940255330694000554335559957012119443850155927757114212272415104668867440514327134892689369978147070981403619809059967743235408712142754454010673477199627990945194337769639797679784415659319938052230869578809055735151586695965957906710884096876091225343889850719790113938790143659514983666053501689638394529714929348294357577152575769310200948523777680698242914504544006802646179121739044761051526542078603286637361395726461365211464287308201349842032594161287632020475617047893940025361328572058569093281937252611465045891552716372512889672690022181417039803321316557118793007101802233954668444476949221439136217481312074813395719938852112198186835880041259942592929375711160999821880840041535945318744411912956963304446046679707794418354909060399448097115180598587297992218594742696117026150057895109836946198343062104581113458767515299957024218792357838191637721947080357874454259039926481178126806428943472469972263879945641604162647289977998577089462767831163674040928405744076155408114960325746531868154558657140750015027336033671128509924923162486441223379646802611876061486201833770157105998108226035724399142175324212173427348100771248419810938955737104919423980748824899279861290392500679429461653914133739002953089922497477839293462760072603213424550632561135075863719752513910474937204415921698045423748614174244368595830444017806670733379446319748077434407677182972810681175059314124340501302945868750487935174261474715842088286993205727202573496515935356726432832015553011438857688824241865099087134399229209454984701636118827979447842675914746140065030649581206199149074228214346676988876663958364322355856042080681870989003738072226060974168156196301063240385605990733121367883533169331903895974632261437587736418540564438978713653398425693558589948157329952795653077098482659905146380366928542835923266861739034650548619949705021064651265637770504979136631626288216817588184918458169071806188239741784421918461970972558815773913181984951404992614027540890937248678456057534392235579722938168617538992924569925380418015478613390577982768382015554088289983451275695623024124073556999706013618125582971333707638413650355667971938235397170074656604873645115115154128490532896397150124439372466265227142790757488064823989930830900331767816135293601498218569755232751012844863001866410441690695147313320103880975564912016707074914435845874869362199670717112650010485795703467961359055679039486236305975544132502629972326736854431964156970470790755854837482829198995247985128261591213859910893974288517758084239737875904238765688449018579264837014269762093043593995847682459616263159773938894967272162142891983389877031612040447136191357623459513547522792079315113934546057291863478474014129657594913113087548805262918132869287168393153129035354023148922775418246366450663319094659646034666196996626262616990244571540123159697157825927064216468902383156314224010821471934225799338288452910196549654126965570711384258423580081606893876965765546053298299131198362767332726433113093118757008192101497743518428543233324145348622295878100525167327252730943003978389487299175146650002149554032579876125518632592720180834007579144808466291557132231867119933000034534854846936578211009266650736853978856881781756357729849912728214669598270726539938556095025781563357856488312492898577465256126020141538696718912909225034358556395206060630710180121746103328656101993717217434656984795097738002676761477433074904809782108923738388137418341150607453836954902576216022581181432919429389853720268338215175833620283026578230886744900039074633730409017621930178091869040920536071195091857656134579830195830889690339880818805062522996868681506650186261261711701660648125400646710677518927441514588805520859189376469381838956037891420241467097996250192068564639751229809804265974399241643108158775202535839559299719510432392235663203676595397647235926725164633446030830721496151013063147839698440084734520731011030833571406006533073370034690509610194976400153379645559568505701387606431722850047141582343768062700626622548266952087164835416717392879153695903698762672238595480241608989174417552382709133874252311136904237480598434364128761432816085992142264634385234118794830377931733055958147685547510311045545693991550316110499687593585288937306984012889118275892268711792454835391033992366904666103065059607604172831497964066115044757509573677770814793414788086143882438830658035178070923354310376044101181312653781905641514129742098898110125304825375459723881666858354027300954828906373251716087475529058157430612659878506951182664384736502082158778451234885050038703211939036829581727912421951183459082502354013338982673374341016898964563064561107376304707849848633566823461942432354116557579764044042243855406577953534146027283871568249569731213833617932992140557181055891995053591994014584910429837270412399096287958604522012461301284321678421073604062232470731824200460484058310560177530414760978388480228985280999313147209661322156569156562123355095539685891017244488091424906119926416177784438959442173861552283015056150737022767920997965994091503838676125340414687610285387661951665029924792779250447269924744294045504306020903023558813402960521126787456414893527844471360042726855647515233011159019866512932424062459721034902844145287008644748329996158294099456062084643392844030064986109348580087067893726765955143932404493003858022430563944645851873371082519091348524851756002498057946196816927230575533015436026771851831000718016805082576465495241899147436842843412622049540061853790907244125436122787347281262199263751263505062811566790450984220399209310215472660777430123528513360079603567414740122900658999932277221556399946356253390577864012700789500976598379146602873388368690653658263996581379723457295619072217265567341995924076543601334089745381917353831712591448173248756901759511589461556459749932427684330865829650620938962712141705314915699828995845175849999654502311927976120858415079422677263196393275452170589568453400583089671896137815406404854665550241730969725331753526684291445281511987740252634198511303887493934024985756174274536065454391436811436513194293572478469146387912191348811954612179341879723362153191478920106031858549820141095919945309184695285536380814128933647495553230039930911812437108842525954294254239058396274227616793561539418985825738203586423754347971293266149659797394314167749242296070333103855703768118747733067039818534591688563088487297405629129226244934535453438707480250672251682389180521159912951431138556246854353567271252596767510342897564201573847608916211267867756551350867798913611795020333275602897084834716527123191325929909546605174712623154345922773264669867011805060574376653150217313346506211816241938464701021150997103481151982667589815250989029401530549691987664472651281704179676022668192043164365337385286994583010989424906150929175024773405005408621564491706217064649353528047829306947780900752192101726401746090450617946089703496793722015354436182576800588969975386736696804502116377097634304049178646406286918627499959260516502334022724100635172452689979433633074531037496852591917913197511063777001863960114526703492949601688609168803607184337429389473911464457254603752767855339760984399109613829369870845387626266413827635232865010869244289879597366217229374439132755230430726061387275898965978657286253400502510675182549745347627317142783587696345709708068703963632999551709437643783809066441123341515128638469087043678439477451131409699783171377609707345923377350702063310877833011976406756778343107168799236941108780606060508297581528634933992365116243948157575350670651067758514083392673388887493438435885747933222992503594885418584356139349369431968070869364264624605981344548381043973592014142678405480909851261936597717523889567113700351173593096861546386175470211888743649425203645153619067262839682755348848217280738412575411727916830493354024145282899138931518476483271442273536682161678913026646050013030186963227377597511913930450974504712111169024819544035096492944838492948820289575327714887750018885262379481423740209661305102397727571037026604386371612382975039045667823196245807635068092613656695307507779764624451608684451851126946933670394647473821094801648905316121253435958531376727139995107960675036561481726057592387333281470749613363045679747519901144361391314588193588552563494352812684074941961509142406814144967927679974805628059693886321757892546988133993822456814049893170156236177899917900607741788971196768933102703110371371392949877455819458929058204040764693112705650553868272962525282844157146458586384991993481140305800388770680873235035052976070348248729527701389311144320651959889813580842374660177608559009682256496472833787950600283492886388804955864487253157211531040433266354971464728970626873904618557103223993848640097860226323499636590373614670936307352732861472666518108652940488036929918607892363780219006832147464847836451575446433551228026162375982805039964573687280839917036061171769380037249504033874513621257156741118594074188265881067593532237667403985820431202503064759057988826597213855833358638113292688353776473673561001458147237864294130687108449704406627019902408703673784589150646396654032940978148642828273099639463146345714238673294901343769802837431063229486593060394028416300151665053895604618653303741313398618527925998379104054626247394877114696254882909561577019858488685728682136109657611652903788884545807984788084111243776762943183905481121559398397718074231201573631229725951241508853175503481595689106531267377956519180473809863134895831828497823290685077514408841606345272114254463244295934549681105786810535320860428145457518472921212178752275471453256012612074228755125793666770964359014176953761575809764004847997661214492753387795182300162273726581851380183442389934317235519655978841875259254034097104874484983724057020872073597402961211861469822847762855204693889352746030465723829654974918063825134426772257030778864206149876796155174110077212463781009560740583725170880974149561895740841442745330263399013013723698491932487869484976020361361632787085624847765288987430676932282277977069850596411771857826465088332564519261732109799545562873350465724156081354564979424237339174727742985529991067455800675188350913126236571083738747609421794450168778140014245306017590114628324343857094613692427640006705098764215147507551677475086134838137452953556325055514346713195206021912741870443065627244805305569611830871866569417363731048141303726217009640416560818212499155975900753395230167531598675161804116103374926355548084872750894913700335245977043810118419507078416229485073302876036780165089609749983086976243526322729442813144377964615334429440553363856853728947812700828299605180346706102457661268200032991335103445533764226477870724906705175552078540776853123811331594138951135725970642693573592590795689906701140947842193517902577775985593676501425960403593241079512852129628792839214917079681515782010150767021040947328573918135716997346786253585042035559820339565754056682063411507672657488106504091615249595561541693733108306039076088910386222462478360118771949490326366911551568746672065542208307669312761577913577788108943778520972124222511367873413462899246286036746730474307394847888025436985045080904630306253643168517456924250347786482333882787712215288008560996170806623027571008628483822755426298111325998251949827057303219759602316898395474242181259631471931461125512272898328939735744483525384352595628353787601499449125055902284814939574013886441895081290796380839373922884024307145306330432733097449905858632272856847707359893283658294769083543989576830773259042851999121686146564750701934472849192626146249847128222564728061516129112052791740493230847060423486554157847259064419680322645172763242886349990909181142405984059305858772806215987440736348546897921477844411931931934669038223715927697280456686084017528388982501744883552828862311186046460402869732115683626821368015953159192044511400868883769788025278906410682131473222692314975476073988588823762235527810468799420846065741092758553141770584280909458457570044547081211189517880246712200415678836335587332170154106676875115702693740959149813810588625324017150155105013242014824469576782656392826298936153890813877735340418354180180576698336788968535019697756186585356031367148595902709868781875102133730274151332249876319178823560289279061405784782573222380680092652876507496186728557687761964786783562448500223064595507320312432994533902188009831702344982459810985969334902101304622100806849999537391255404991166035248497965869513550963479738910361007549792641551683863308401901310014479592264301972393290221060407567176530959301644482001013563819346437270503612859432854177461581383139914379666877315334689399605458914521115536343517429574877961989014298788905768744259580680145254980920094926371795427353432356087690983236584880426739595437082919835208297582170456734427902566717062203686883292234497976208089451075097170156866802268789280683441661548775251026570629118463756332003922459221020207473069525376781929586759239568559965828557810702973109073361125049308710264751295598315392638367099764193686511663822458333223482526045052566866108607336672170937280687719152700171874750824490457460062779333918849994777187907994573550397234070578550339897856344698260699490294163186622572158077714225698917839485692378792787052032515712584354965240243158525330760448481573505510254974361409950665905009805424436665960788261163941934444964637177832409661655120109858786566908053031488553317537065292028908977828102577908402361532602529901269685260563735745214261687738567028332600670706588448730972767612857145703594277839159525486117710421230264039007613242470624549703683209367140742726743656909346898849108551089198358750879100724049440696494993515594562744146841779691620431243099075426685971596783360535263584995275532116175298834597843369188706794645250391882521890825768797546377868377413485465340013513244907932128378137240616755090004635536329254718915340198558600291967430629360270728589865422054694694571313808196656713656181194249476916761938178800032607768677549499240093230247051214634021421559589825691301284536046105247064941030435840674968173089507992581923407226288534210871983998803996320726543526166824017079243937313790456023151211653456197189710139071047248407407451391850930063780735138065258737853782017220131564584943303212665078768826146286492454748379776634652686813590116719322012854155252727951696907825708098798783105280655176216198602235220999224308542184771909432599507725410841615291307067066393266844701051549073929946298320157728346930878090252593462133358213227754790445175887422066741943851911740678804371839639809884490075752549764042691264806058196333224061228508186953437430294862397067606075775702523996350508703134754645183079087373702506822015964450830396202473128840432801112842677190044894783085015788361035070182392732646041953878059859400535402609812699689526614065403667626966997766410836640589205331743974455172024547181920089822816958268317739023480992821490477560430941157003778842157210652001362092676791968083272032730845860797840054916453744743211258769013127671229009388800652534826689557465771688657592972157893645165859254769171336798613591706742975985921952822826614738528212788667994215215257871373542621736311148191932673010292668652289004844751104050781670170531131340986016232799207391589907519337850043681111370807676688307463114769996842814961154234200110476576745860243780506611154897537374460165014023203399303753959941201345820389477944036421085940593857795429037109509612034618858336668593500216729233692243803671577440961921969412469598549263676492161574983522200934665328534416818757037687227218420953458259391248247218100065712901482862970898233131831939312184554437056585557456337041068831099686427892864893913880725855301081335285286858931088228788439136758819560471173876422257776905643125161447427589258898953245634563873487690479137169045264625096139054905632734423457443883929565311048345974494636289851662271481962186808930236356207077249509757728514007652747983861727606043202550937860433509882041877817315176258227549282243156268239638673521712901658719951479830717559801586726709787683275486266653223017739444922591037742089651065439367719334657984172090154356697417356812444955960130130110998395370348560290630803197608296728623522444920251367581349689931464914452846277244263730691222414094593191447248314947963326557811998958610647359827795449944394061541660188616268103602782228526507831053019690554424766963713326110651520669628183768789046202778140797365275088157250133741291595420738410630877111247423497738897236197932198575481867851416925250916615752749851527250875426884953351624695564483372594502525434711756613579690357715227219629119138380374749795923964824922273733408617662701571722981237306605635096086255276291782825824366520621655864439935229553384239974502042972927491068496028058839534894807747675680936781407606434220648188210525998714453286347680959977818230539943764222569112704849988745719285253680033685272600680264239402084533093799626648884737615794326007444214532560531984658532946943298548255750057191103856977021755621470857588935269697699000759313009177372845566956596544898486229783093834794724391850897468907312313345316693237811044352650841984360541398265907589456677212470641296703839158985639190490330388134159891032735155645735429794522851462066930747868431420435276109066646190367874486408324391634696076467894737656636812244170296524285882728144167005549195436626700236857156029861840502108367065708212981306051080372573381793133153199509075422432660853286634641079785931448051641667809778872658856615151463143431713710467865240067363687391561362174120636724970973647751108125080958073371275183163186059001059776652867266616553478561675700416626177852665065832172000041820486954466322410838212773154690972646361245138014102031702623443672487195580881837373908115598089500166417988193783640705444125706887685607248798904632062663076218580166488192307661101560378784523508630515301048382159626571846358426361011705418768805338782848317072029708775493545387169052907844520366458564381113173696202356059689134274815090620658930674367988449015139399102559331145813468995915364675583593344167690952046925038971614694597756690858902573583006386973029530299728861746775868171873867290638257240642415877754600784821885078223092112163607589438367359868912971191807440705073843256623796118094900884892072323253978320115259056611027886348556578718218380391664913952861666751679343080147986174604232442809181125023907808013904132366566079445034394184436439931164357826044512104711700036322959231949277177495084714743692946474260086262644077643341167879117405486372812464328798812281700423575828764909711084159449309505536779046077861091055821615900103747312495695149363775553705511306308028786713317580388223156851655600809899125875813074838685104086016765501868454740708798943401563467102423844922693009909059923351316141813951035009163313519608825853287301763702056070925234079690526697409820443736343378168117600954203266692930064948422087611342732244220466315509974681866266844026849570670766932989674715712979850576675907897211619015581882894941611542823805920683850282433555675354340207450654019661253620046363679430375782016029869814503960115074779840604302990277946610591427991301967857230616315169327502500460138380831183161431363559571135455690247016378637921113595059644090666645167924502400516332373554258930069028782841810919163707334260640373493909822225797152988708065047119876383562961030047493072411047038829374579450762886138087658919739712446929855428536698508645047431667428521329592212680466230682082556550786728836543707499530330872360226746862620566547929545241001672337711918646038434055640994471924710374442049215865737865550067826492255382781223049888295303259756874127678517097502617018681280107650442275095974686228095967301379796730364931646182326095253940475956852390153706056907771399040250180933546557853263127870599892464861305962220218985557707437001373453728570354400574893191020646191807870405794343920072244246617614093674016800790039813265866869490703859504608858757452803392932038603025330320406610816976486786977808237598937469338043083793637851038642526479692508760926766767888829917093069631068950108557103085715650115379327343428103609888935507529616343616448023432483113854467364497534298015767653717624968946074543153863328401981418731620895446457015242602490208742044376978328990092932577414285558486569294065335563656459519670997440059009395553854085258918731259645945784627133573068884271304036427777069272108649416627390423302870246952757589111224165106249348002333801975433081179523806709076317213945716397000006389706667453444784779734445556308090982588165294534722469632720091371157597708420825208783995777737255717176824701090090107347376487861398866711771817990454595019047548306411321666830352238982329875852125273098171520131570820075658192909155541270134400673496467742176944134705621753346348154814364453216638746364454410259018912862154903545555037508703948904743878286883009058564594690626889304605786755385889956460950150968198083718433337085232640913704748211431373455541523270696892577839109281869180407209444907755245107522084753152828535058128526740769450203623416030337903212905979173966816362162953723236831534463407767973902115464381288863935377480868798270012856605690624147232387593136143689257488734128596918928523362349271916084833093573358022415366773602986433205383277139262304112966770089279652127531621466913806315724354413340159236465311057142536928659006810213040977178095374319120867300379321116920649564518244655086844344917495515301934373162331746759941022361181191466442263223657412948436789849430546160971436090253270987977262389676119095384337838790713638283276609700296617347094717035851230872316035082801457733942751615444545738916117935034249409155171339887243381855173290018492332779133848245947574230464185404532208612091492774586445354226990499607802762393399875526105749711782745461039141641520075977309301194332102988702336484878742430115673653211042827499476072470804922342453619792037870848704253863424170217047731984528047265044238168102487138629478859606839134149541027369012436689605887258955064316659790668890726085000627611223493140023496784636826377508285424842724497387177304386291282438849640208725022528795974897912699984146826502021533440672429758193902595601302990853676182849959800732717446053126105881899012993666778690501832769158577836131633479333472855669668653611065623195237120690038702864223230775149591279037840050482637835428843512466251448721883315643320658483438668013890733597218989854493869174482339238676740703244730958874760780801364797661881485724254366489138673231802166142703920758735688134576466378588349582629236087278310432012270014057380386510573869000647014002169829238366128745382710372831594392667281579608231381889704657746497636195300203802877330412204330335507260685922253487987622558712987148116846459421431830249614415985988175485386095378368772991135925649297915510804179559139858190135494241968351027453335273078866324730894867013994998794133367398723256493249681934268507319528854875078121639550394394104864030182934940069865169485736500904113269805468237373733290644799956552000465028946527961562802170191146125492168173593848996182510421768369859848466529321551963703296868567147503585459158045137332444498717102191024120159336666254080825853578960093277236533171511056948539814892330987754621570860880816858601261279149595540326384033249021549421471336884085479606016643116205068081281366207779322693653915242056180929391936721397410351923436633095350120394278816739860755931837837918388587921102829425079993848495318673534061916122375349721703522289482193673671172702284923816519746987222326310817569908586144444899869787427693454312881383860648731533830649392119257812004874568630202473760924588717524013465177679795256739539370923478413971745796253689280724920525459998960518835639742612117759478984060722310143509960324321662897746965563798423267388696359691483041941050555339850400162607628601758735715921609138721355557472087276823538865121494702529833992861258234449165571408958307882433689690978576238386299459990205602495216120106752427721110419506893008103947815083280142151656999004651782892819487058019553776755689599698936125879690381351737798476515149401125941120212906917697612337355839032908593328154421207910162536417166053884803303765867662030683120952759994020626454426621504816356815233988810153254829857932841640005925958950410381835389591893686269438068930772402183123487382139946341276000083810826681083701181334987401339856583268530374989132353765882244470099194096208296289879370786670997286900340325245617294970273215789217770476426353202736836083062337347277624424915643309762901936550111728538164409801464575636383338317417540482690916015360032001164336143629809394705720633794881889962379871680277131076861373680349043606037297446010583421870771695556574202636666489647047837305043349670761627957433930332505056692975292677963676305754025666440098274782069315599381442917340871495370338131307145565408127558081064996927945125874377153555636762301263794536199332951452886754631886925588542519821104170332169542434696824806621075324433246157355414244066271553576708159038012891009166917861642232398869708887541174192532979069306185231835064519014492325330371217281564466872383689096807651059906661532073883064897669303919651811077992358614573502974147134396941386807819013396080887918365822480361585551756276937348604048687164119458004447765910264661359914958731035095194842493312335915077485758111659097825955809893850124950903525364017264788876921526822195007157217816989437886870687399807448569149181715470211685044320808738380790234915312617799412219515199390939119016189448090932875917811131704047746288262723350646779226659666360689536855445883108589811703446124537291289377569487714518274252498401453198116005970586366758229955932224100088361473434783057653727530280560921518906170497893582959741794299169172549775741173553866445795539839563672325366253885512868532214326581886214843472161745661992254328224997324081277221105542144364941311989789093766132029765964215663522954353878221393457004420321381933545953849885220971079376556155674978608841381743633601633509833055799916161040053445747001320202287496457822267103980631189310280080991930836685818120605047288365888157844321407562750513160411568887036949797848706462397364483312542662616637878614203035807248743094114073127583142763347732020520736629567657300735026985444839594785233912033046077537237672350863166439928501050895215832807048876831975796540159157523540264483014872936256109881005135384817954759403524217506123674452866283196800450242325654821996598871494088488168093671090413762329141293151686936962517634442908046467576638259835274600355042533245962565680421855461153579532797680252150376834518125562399819594328687888215909796880924788373261059430452123045877691809336344394712089661181968440179005654286042138163793680315387984665200733871135540808722386360309382865853877185612842417623523814787463509350239466766411833225351793440624559392407825711125349814225283603725818482444514843705194864916437467447000977421066432166253867193373921797538906860947629277999143439093639200614762265291158759560317741210932113844332831644688710475473114456376543943649710347945056018490507816724304023619024606594873135478859287996368919876124352799864717481087309997891474891807397318692140237434076473291455113972514807984724829533467830326035404911848504866779739730587505365325949474115311149827832706353212251908244318324528814613060012329652564453800678651851772607730299826918645675874964418299800741177177887995625197063844011562082247109881967106430864164551460801955262420494893803177981616069876034902049021762278122584768549327355192870832361492420336764077356624635135437560564626864771444320148095977016006971826907920582453184185816865315402178471833346376266010958290649388386187424918897341209958495027015637085904467632942339861318161159859940037097900831051860429829486142026810038078167014405088151776068717800361892801173134396709509736388178626495673277264687230568053737903778580654403595718641400408480598021032073448937164882733121712482556890344395382230719246860720821627422108151953954207241213623288439624812015042234659022037307163000430706248568337875610389008770824719924986457261072900750915266513332317027253748452792549095145429520462361726391087014768218111284449021376447830401877663063660412975289552100074634539306997417372922347437559040097086171887102811325476975355740230247682571064462858055442241226063317310712767150568358331429849895618188472697904944885190395863620339897063100597360646671294991098619983265194870546038383604639556382591008808702587376969517711045875329559344853389996383080733184395200627014224929668306174008344080158764429466559062602030687405737627468572238273075098227492808097938837044229348812567699674976321817006168840037364062084518408631787453811653654058114300998787685132535880216112532787706311040675061036912199131335383563063190840470507925372802459507759359138128129245483247359844894534789857956433481383721059695207306584957664748090550229832428073026807326630472777540021703343400519631480322516499781607987065807711475502830569437743149426427923102460902865440081945290870990567070585780335339693083666712633956290101397450356606115540555302267353302978086503070112649921147718582952098332520910623447676486321117368815563788783533482877234647150779439993287997533729172388469269721134403865243981982527330810036280235343844860599160898070171341145643132468719027048059426507112146230632089856993929146171294423717316461464207057628501360877958250523460105132546578094118112954541658255648947137018647350998507024892852914167342419911086484953804413882657276220663819784124603729416764915145959305687363902432668628195210613405133857512828303436023103934171937203031563043024652044359661376538511167432197048195261773508487266242430833937067278889638674570908070467065735440422689491721077112076259364510986516349244097714414137965282748921714867520773065032041511234223504870107127486485678432493104180022150844187313417995995772495798758477277359866254220087378883912963543783108344418208636468452664322850401984403524450082476211869057880860677104686323086204398874351998954262586353204373225328343813072736970443957922598107371395163687685098807585700187646922828529994405071362725722586836073529729425365979691138499499969484361894469005432630559651136203652126573765278825318491767100912383560417670627026453336091890644529506372773785052216812248001098149851993065861787794642221726102899192052468570574548481350551180807244468025548610128094832981804579204576408810626175233176679427233363375419809567075171981882817262016769480565754088486099658481339157230301565548012920761746498674378787370163209647095930710162374441966007981978287565227460435730530232129955483105976125723838994064305454349635431653248016244727015394706091373981352807962346871180776765106960600438679676688819267296127662389373949125860494709915725825796268567430859372489211408927866455178912003333437536442208299676319724744912856919650369998160927864970390478021765181441242703057775426374955845361046203884274228836902833883962343281892621925170233788753314206650028264427179849832656563864820168084497709928021049140220343017571385091192927028831070105345591393555270033705534836845911814237130255549651563004161391810519528595057378522518872745251144402897083845814606126739175248137434867124956315362226272407383933339950801193842022003769215050093378872892810804570903806314210926517793429194267649193276554858808566532431346207883495216910723836462920741833767751293820163666006324862323408519111871530544326046442569922270323503735977461892854416675977213150760359130466152159585980762892487576809883776231159347290915880494207159466565976458268245445172104823927057488970410813105512403528142208811141066476651351162817301423974751088227505815413218815700854005657506214314648606629240480015322279313053095333630614608493539716717086282579093983953835422753492979523737026266975264062034447259339331066717105216191156155654503259240446899925905549143642631162049629666953724708366642548495522484018955150591453199799100395664726712164119682614857819938113968592644350193482373773718516595714360950970939028146221172706153804555316623673501052192094717057225890325649261222298701616774244336795020862043794804192879214610532320973893997172985907281885855702826165712996374943776761294511871691347152389103349319180599633111120408557080253037744542684436145079936152190848160153615291622249824162017978646743693945506303722762207110188564545707918749686485228499703679929269587059884541784009402188395898161906182187284565509630103119927503440418311320921311254125705684547927690070615978992276388335335769593658064742481088990284392555207047403805271729485474088562111058901091971134519520129481489542356677426539899919736422141921566259171236852820752181404895162937085349046812740365995452650481136191076818143872109721471209152557148359389481773701700495605292448854504595267591088119685750371672512605801972152092870801256741317322530086984300953739759208783336919082875640054163659110644675787504353394538384681704487805886351495000629087584196720647400101290417523830302639152609300833068752830513115205070160763896570650814498052550748742347149438440883095281440265242221841209307745786835817925175166695686215731918723937136423507106043353316404498325348444708201477652768826424206489869326222828096106976332696099967772286262205850999988462265031621979140054334472604416867370158551056949992907539849861829378179030709252522713528558292819491839624897675392159950764811757874848870191282462890217134076003905355465424595958145200063072463591311231810151769802977860411455997872650500543940897793500900479344983273348540425450885506734603018656137795356694938405331453502655896875323230653602179262740672580549516831641207618012151803628345941936647389032923182505160957451041043192726792358492248867526054592216359226740352692156599454754782038531504973238091707478594081636219104296258194915849061304352153763465092359271690162468436913701655624704752356948057613805058656071197397614724206777872925370559143376774985852575972496372825966929498290690378465912662098294484511018371318045958379804134260467022225129257445509330798366868903538044407426799368253164461698596697323351229658045734584451321826348954533168481662678595476155525823202144519534482102170270862930594560517355352493509325859863317699877078719764357194738358933231171651278624954049212742641119563260330209049103176776574234001547669740221581977624172294806296017059230682368216104495251839596460617087225599848689749438042022509108681682082362918326980188185519609521127658257573399318564241478151712685156082804836957913568444271183405869848993286693212644119537828543496125894101415439390704148314675261891575989360006860800578311755074863651309383691063542312586753509993343533492984513507336346294802254569408492300379722811678365080210222429158415413209126241188247834525003119904721197853933726055865942235481130088063995435798323019152401676754232034219170115398455858746817895777584156466818587062953909569093771624099324694348078216834235028696697527526628310678660909438680083026547233237691129512886274457966309437270818825673035109578018385225205076047613704584222098340637136843110727376151546664766916227365739262488139556100435838833981082397666944798788251401640576136052336400053032812374693783896790862648950484735959216258762355666216439790005570471023023077163342204035147912899189956591534232546525550651977883319896657216252408336600321465768419900529773776459218956896261885252458688330453396222400739200006259394206086166527089707436480501731764221046673222485961452628820435289560522581289532466314491920582896270030327678733115736365760688637614395584356308210098094806180854138158111532107818073836207833973544778368873535108973200210294512175005217633166993852280325083702228646093739504773820448785567274986382440568698729288631279840345183465376375537116614729964960024662368011368470939717870612860785359109631083470079260730739290505673296875260349684279379517606444092106285736997146681004116698122165657170451397985936655734077146534952646792145859262651549022122699150280408881558035621044137148636070529254332737222868271107632999724335086394802112874648862028175985961579212062469683789584624310711532368131998685699710164827128569097521958651526935644397052307069961171001009619547637847650532410892815427529374677940670625179292749400198578421954740708500187982815325061694520932713620853107081897238778690950114355658823045393182897280430587809494836759237108722749052759910354079854248949227220880316761542673219635455259407084591888113418657808652446115016174845656916158436081726106146595771049430393320836065197296982015706930454229836673999218754977752465698592584915914628854172453786038345109680130025663948433687394475819593385870073648279282277413113802117676251661231415958888981958048613372199117851238781075561111640660572169026811237907558373273741714859619270185975990312427676190380325749064413237070699785311362064690701227854146502453631265227713866715566986766779082681309298511849484557222428034806578390183805022498293188222504466476515644629306428252652304552513689719783257507760748590207010794932628287540801398854893481567360761525141616657333218587069651602758037099598512918037373307514733552728296854315104680050528755314831444144398694477915799625715286892841493638990116846533632911656852274361088558648777917934293220602575472023536400676625328921798960580029785222778145001013118624423615287987832879301214249670879693099819489903226294124766205265741155184020549048918847594686861889469005303234989979565154479507943619413019764326459216953013198098334086991287009174002282827408132498458730527255336022416748695553649234014518710011571018403506238666025106179501575433956944752960538601343217253672137154096707629270572530700620198107993794044528475890430562625172312945858859175475588177327121750152137249521093476529654560631807725849938806619251713010108095715277131911634636518534399118566497220492106719527136297663130365230110986326219370536957304003236578403608756619245224255807950658016664631976975736236598989686927624554691788134309685069318090426508890645467335451871035884555513907915566991998720549904439002940396272207992328754724346493387468924683685605288381467692889010842406232516793968126839163606918626185636941692911308114519245467066818751616051915493710925749901385623013344309818839947000321086652665185503476034362606028668071716104445237555181228299639850023919940320537457135234874563744035170410187994587569895025377889313325759649320171963352693977204352854619221802173951419332597584902899758445039134877490955451030990847966584686007313932211589118219378485399435886389009038968651332875444951690442422360706210259986245951242248685450284260025527205414658073827596372790904769990706689325436463190655255253211256478140344915498955773607470730755351621476805090504671114437266244789815336098003634449414587519332636768844292278644478437926627041541296975111355697779374251073862605573002740285136242757273987630643504766776768770902915420974291632588260248150912171074464596939201426091747410060706301793084054099294393844634363546541496777893926547959296790303863617646994025646546890659318714797507615461209357126717301147811005652425595294630163318981358216900633897332067990831307173476188452967565727167240309057465913138571089881820924593198628471623505672041752860050054672221776330457726069947226144349620473609976437321421349713325866522169963994178493435565847846609250054193035584062165840758723425736858245141212894128665146420268362658721400536939774634469171834577003696597869037475767713810071959157281372395862894978232475735412742494002312078895829549853870499231018766175099981599531751209885162812671280147096346932320171077779516101698685364253592770267024809911705126338209660366377443819583335841766628319993970534417969117785792622926766935675840495717867256291339559555621674951834322908925621835741359283469797142635105001687549901863484384542648250677162877351577523831745387192800216626901569382806038077899279399009047437794631998299272725439653291239740985737488522557323620991985898082092263679504513931122715164428711023297459171610792862184838325787561912332723866744791890128231764995434613799548934153546901660891653995516365569486392502822932998211321114986069660619410869611451427091849739078034400231199698236282672932747341730309822905028696046729044144775233707483947854154980564582304016148892473611845398109908014583016277617912925069017455772462658660606815179996339387247460750407487283820705172530161898193910504193187638729215241194261030013295956246673691823767425546765045800173061797082265672907969066549213977505628992002178598045814776154550527114983762721037993957575106628059393737980471890022565929942248242816617255030757043079181546510408128893338227716131602637792519584991340883527279568179855545075025261073410908226062809764604985017437335431091114007664922249441407478880837367971901525158351858099882776052127981461066755144660492531644422891138174330892427282365885510223875855390011815369969853504320027738880701485910228790645061162162356062674091314501909671787766399603908858167482787769910728055764567930813238772076144810071781837982522281143128588698875797721820928236809112630604878038144120492083297414978415193385913117932597625216571216991686918344809282208479574955868371077644468589569678893906480266883551830645391125637766376679493776668255705965623660084380613222274535404753891626581654820982267760301593528510644524942910558526379945293783903346622713939740560349197166485510689418062765424960488526223326772813124117821956945335514859624743831101198033484845482202870703642466391380559945674300745868398904030149380077255660990777086014497253541352325080942720646259801419263716407205614906426110425389303077693190941328833456089412493413154299901471114519042546893662110039652112283886250259467147343664510324510097678086117790790505188624257167806498218285184763402203021783801878234087286906859910358210945595237852958103292846733493531974683581774057649090116046230554255697852414508168973005079494175619633200845712161818441504555638861516642438328332127811840636002829758758023041696477412573397407245868973625703129588166053937794243627301604553586173905316822176488487108009719041768910224575788147186187794953484489518696017735886092052366289645487675337844104732221805066112145233378940351433079869281719091412862215891134616395021587836535338443726202143843798306641996406675613140642282281577197834619823635203233627146398949261376287116445508328948076181641265959185870118321671390854188245749687132677033637733593788106029970141630535937317669152234347719392526844043840230096129523478438812682527871173613533397623573898525616143911257802595620241080234849596529150793048927784077495989012095299643527287926043432039362021348415349278166904630980331780493090733917788484807214411842563397508533607297372040273161927681025771114670795400344946024904536967873703265126331485773051946493220738513420785493170601959715216561667992539215435185227314371560805249741610607184131785459451071733343514756892579995385083797306368816389089785164605544322298910026870663486692928247014771881687610312791767617167452612049749486499200607856993601643170382114139930075757699001440519111567918389743978833987677114037355976034889928859146331364607991702566746511754797138049158168761185100181592092626867188056746160925559719113853609976292119271478021891187075725803407595688392272862766094110426523949193986598558883525397411764568152800754489533182344147348429296801573249149689252364110135656236179767713150393060754712305850818344331174543462653821740571805656538577671939171278673397891407366316910568505086617261696964913137682623325180322524815564604130690756707314346901759497310150903200090112902796199650627644294570386037768222342113997487175884496340602679306405879467618887871656737286338934974276796422506750526436730018732590693096617605366604233729618327576198347835389060654946535095354678609567332053899990679677822858956690600682255158683317438661884717469836595137064828168288155402105503204696675949285473417249478407904793942605661731137125064717066038276600219927017177889221335048147716849991801510960938129504443624412399993522774099085512829618582934792017361960045245270709941320062029448986177335183929323299536141148315528665874727615095066944776429176709532966131263532371844645720948879029982153482452560222552455736331427176594463255553942267050688156680396753324814311046421438846827503492740547256457742201696192417792290002943019599122353777520733754999333679015169965487987154340685150760372528097975971978374403524601437110202692681760391769216200566281979090004408184055393464770134319504946568661916306988775247126026504016357579581348327913147021916622338385546900498332295839568730681378823340863173835405405402477868353828270420993600146759269875071777261601656855143098769805534764361033431593140488012633218073604230383211978277841161921108400794995180915999899359622822729516644936120081523388266654072775388292652367621024537896397408288307106972852577796620878298843081777681101656946248866966938521168653456224980052035347551359973184445061877041749519252571257656444747168037242836855377919644814471261797534494685399809352304681747595673763815146863837666714166168400433405582721687778941047209295228226123115716973196701225620255650651039347426485557007548985856209976307204087714801531519769544017607327055749144581510432734101889289270251980956102839600555112190275318768375720732671104570183346587739864392818728159364563514133629941269940265613210928949620158077259039009010924629102986325108130296370721834494874747927218151326797574324629035466265305304443041912985570360084232431580310594152575995712095271238392799059368483116640491290752018130207001463461353835732260832344520486250285672707494692958414453652609203063021680542249619140600536982122082555802974288605596329974001238234778743834618071447697718967142993961437155725777121575636171457508850369936378697566632684882186119916628344194670758368143897877189125110470304898382750386080994254793841579198574085594623917527927949637552858537630342451944643388101899622220954709897866809206115065068561496238656340476698727975464002219714013687459886195290335705427007797142074103292099128287661856457612811038718160374700409359949239576063154453527932113448890687923235800633853446434835880383595143976389940836089733405595541531254214295149411998666155397252657067272983749098562771779786319135711738822057829802700941570622376698468704911288807726976135395414490716765250043844036470554674631736463819596046303286916168533654805191259080312517321476936880670688168076009591234297819103574079812220558273924351662167748096159205578448540979088075197427481887017987689332596073083523989597477635919345009643948325689492541073505638545769426327037946623192975778037632497183053699061815539105914276583391877469094000170103105524742095146281206048680873780940213233316493260686995325720094726863301392751354668050468153480208971165181119431186410474100455727876574417294341043536911409259015385233907715932407055577324456262138340559472527773449835093610765614214020904600280687417485402355898024731877754146793584155399228615247795844329843483853283406040746340160372952909289115895419199436761064392303271441390857471758892006255800955911512429615326313415469272013237351823848593348614486400570549372076118765689954855127706829430194831218045905966888549359532780346238812982339314252622757502949998091972998609489035501585443427636045646891975499079722056178211858980995396789267285959226476891040127009192389647971616280693226146913367125126136898101616323094559667538638975707865184735514235146896310810420560004998033451567588252338417086372647769953419774413339179668671972537193001642505455483657394552125602670016530188947655248303114106530571096985455424899700386341283916190435215643484073940177758212797554157836348207249119118318037111684868324757240600690059885472547020759666951201877658133737002453709623777803957882842369839657455072739882812038302101266269969598002446371751253435748660879188500647240817893484407165874650094828292079323044747250260145719767360103697219788135185669141731662723064453660218918497783902618497466375898758167275920694848864706040077254469215915707312682955645931538668537106565983646192438523719400574814655734635943843906802489630842904604501581097399792998320449647448763948295794764225517166512132292553761795583478523234328733915974754913709431963705147041447530216395942114673812266668429252223177290042584918218807777899309924603324518932120523779173553222829203560560856546710314970786705305360471484091386522593725005286249042950920475090924983476163641375072902937092228079949963625097096335260721005411193403171625098355464765338188432606293800014711294875651027016396379317924700052887572259678823888188820744912254529224625986356298774978379865209469484708843690621657304315094972260032786413095782397755176810374135731876506743753600953340949894443252153803030823331849155137620838731856071966143295591760608600549298292449207538603842946353755662893713176365122238767733225381285679116797868661395614791960720401594473504154549101798169946980111388867960659711705447766820594705343595453630464006371959234037391205374509655983356302159602583478852377300633300799138016041563411585876991843566556714454681217159998230719132756999545281487135314251606040770778715643611571185478339822185699130079128926268316918702115654582226216172770300334586592244611019531121682178789738473756731563336488376549851076537396466267128050241838666616565701589842346873190778665844523313609534108324571437841916765390379209073111919119891823216375636928750141876671706555589310454699061681798013944713707453073974306198962685697918825624048092009114984627988187210284304514652819888446035550547454803441748360620733272332684623201900699632811384816740632064982494822948078808347694784221512909812356782299053614548486376420492070341132965241227738367430852177453985934048008165560351422959696727751460389371822942142036022738657342257900350413771017911004485020280009227536913732783030427553033599403596281449878813606094041605372349033921937733575861512514786275167534872293475306090196191285318215333434332107623780174914781418289884991228472438964632580883367077257956817346187971469251113196187913754016663153257711489272181926499026871894322907653320307726774198881239160771927280212037780968397003823268339183815107921120882639705115964844247066348742225402169508658557369021629749667999890875992080033469151893563743532152708919955433492401078965613189697906100823556507715343141698876032971708220373992037479405517942469216296129176979613706656333333514427292491864793102847936611894773008467812667560937881530285103264500793748271396274535016074964095379369142048305449621291461229288750667484343664302253257303449829987349324316462031631825930810600008434569671417388899747549082548124788772080458771216953648618518790261909701109629257289257835536306332247990336321833028764109138330528347155806844796921648000591728865400484823807194202679867368915586292816918627379525511041031039865383523645362419983507096845538856254789291553044170440308320358542504010182655583988536657177959209837111008296984189931428099757305421039792095225304493002876572531247995402867324315413677576035256175756319216248337251941761034628947303019404663713819346256095956900950529273096321375809628765214514672261835117904553980809801331583467658903086908925045320655228072348216414636889922234130226382332399352946543627910233169921052139790824566166631372983377891772605181988510908558168900742243706034361112524920191049300967964923074112209444914849012434860277359368904819804541762614887162379149548495127782326754156871172916136888996652702711415961197297172380147813227163315368067194864468332053685511801772947293574210412814005847710811670179610602969339673149419931091086835373354879755513369585594015229578887171164911773775180931036956667683174398528299449386155753714860420246112012242035910720094915267602126924913290393906493411486044267971972436393304669498617424418004965132106042106629813739789088045173945307866595313863229742606656481400158999357508766082442558012843386223437802496844454428771698818749858087330391603720740627721853509621787619573938135198465781377361473690755906172190464383114441750314831049245601623619465087220571711376186866356725876690923483741971147890520546294343093706021170032318124543760474244138239188564123942756264709638364261421208385867975521914787295282238023326091319616617606659831713431785958397030336116968392375516727334506839315219354540065684611006284752727893294226233058302400466981929721577085385413921229832909004682333562520203913664324098061002530599956705599635980316415459540215950911370969553117108322986792763127714089378630148373315477995525639058861679302090872424960529395427122578444040728762573964822552960221798430917374894889080489967199243792354643854866067346577320297365389083814842369011266602459729369064707161176778696351633387411235588017628521468720187546223516557912024767179251691706471131670402016318962701137592281008453065982166411943345577821071436784338024538451386054116870032475907301221455771559124840548177386622030383726135056760358548945623026158667662964124548874845142474016939998727788200745855595308433271715111498545323132352198348466286223170193846851366512029062542067134701947091106666032902307648805222904960358691405829939204193488954938319782881114797790253466528242347228663885611021618963136122925437778895191881803250941757974017675611132619872808278548548716680599151722879017688193698739402365972355066172218841869074771809735778359524334865338102283924933726903663828085040743640127754248924961868108441779178826373396156285287042271515618930494905682269786012383934150439007301885366347220435789085706828452190383917354079163281980597894768849266262977723529546818809330961937144905726637710212156492572532262662010810513074398405051493148642442004420291448682696089933940989830902892052326134177452831259192806546994242018790592523659461882922394231762938661726303289628698795560644605690173073519815898482692484815560437263733711883989060630089744398953117188264844730243101812328149650583265407664062678549851619073921850080230390250811760315657782546104313227063846097429450759805563633781256931157346930636500244039874784099821514963566588713887666614008741374830857490158933101999874833210635107222005746057320404723030124265997382356422529237357048906067595241029469752812762070738637302715424448725706654939045323274996648535825922300182216287618221773342240345632472089968637537338075533767295724237127480689992837652126811458216522058157581111202549176732480129119491634969046445762114771677848502187491658821394316102456972436272738828080109617819527102092956762392301772126608788901208400928031301200925764609723977290689011109712591244052760520253112156098854582172847970644671625940088116105701533473223138583798697347883882522409706118949772613850416230831390508760806836302588865876716210919022632342229898735818245220706420098679413864884576529248992861063722856965787461300807361483450532444459454656182017962415701882423125714377605134921060736107654761192516966775371645456399804749127725852653158612197986730019186393974821438886952549909562102820480672547947434769553282931561971364198568017236899371511031485375520786328475650949450164097170905415926822037374581608022489298393434315767266291687451221484575968690299934742705230219666123698887086764192760003177605918618973205435899006480937421133990441709610189239507173028580487747924573903853072803604124235268260302456677065010914227197830002668166531353663510983493543909326205725763654670115682328559814430846097205402978831670275246450411949759683715768535779376601997166156622315682358339098644979005760207655331824986838851806379182872562605049872284283413976822995639390780393857902981358954294099430981479327747354531587288892286854333758791228131314828649189137576228299134565411687641238526183741304581408114300702902676697459622233401014705584196931600055609351937932120466193128768032301559079762869880704562357989211479950990177473470122429090890503961245729148551161270651019151988166946497615644078389102306452060288351348320938468026566394666241053972395836649997513148380904109862564904095851127796965722157582426347625205067893089007541831042185714757159861737903500622033808907346503400751367912825792582453739143645057883933636090965108507140727868630093094348518254072000819390942255926440447443222126882633199069617388560821497212745787191137860809573637036484333119370073052692229522314303236400869188889043894676790535181632559931054981626966196521054978866903617440552512520528418553147739118475435452278284768680598756890093362252820721548847147019352246752240910417841161767012870160906997986839510426497458412014855045427387770408978003249248643407240524627769262209321876769975403472351165332323230092029761889071161176517286413372713301863680619910015923727276615345045220955414995580772590892993322269170297020965724241630802786272624457027971196055476771954658353342513977217241454127464678610846229565546121805945065795815741199427277109172000440001124289374641519493989627087208813976330745771355941319166289132404316495008903316410102290094533678870866400156255312004258148419517747032491506944042247878911372053763062525007794810352591930167989367634541168805431331443325010004757903189735891555756201575685899828622206468331285455877478819127237837595786585325513240859935936801802138546913249051022301753233403597114499089695023795870099098767699899211882735600418923389498667511428202845924454323142707184461075746682937187659219206363534208625965293625003135905460775262619225143956570085328377738283643426210070531428577138657787873384500035572243586174507779015615649625224437057308500585159977034262187006164703966031117308887132067891801293202667245564824037682694954419120288722493491441308952197049134240271980415889665685014481200454713300643446446474464739855790060793427208547351623518223228261858018495322436725071589626510525235606999167668801543765641999827672928549357791438365742412774357806335228217895006197234868855224131157480770434797774047774289672375847398604741274682124305538487341708246268295307426169325724135015331496413103085023267023242837277631353949495579044635782589826533441865762456423542883037341432282717712036617542900444709719875077768125091889192590728057322839648872137501621588986424841553505154179590653463346922326692613585270546548213218206115043731138236001839513811226108215018135716280975577999519620420936559859336947401758543685381699542941023213316781967873123228715821773257394775418241475811527024550278179764928708251735434432494260283692165611235662491070775187980843932461771843959445500628397736085105742424371058887601899515201356007401030455126370482037007404575388862158607634657461751701216870810784311400520749998977204820473151541701270357665025067459265079689483884734964002729633053390664493722770040103557344710113843047433807500214910953957321840610160551834839095511675494184426649030001300397248424421412071248566558746951051536275251204817661930870025516386763260339457129162103418061928832406766401708230670362698292012461226887867737245724309920416480522949226678817004624935578002886560209407791182976761835540542259677867037923517563020006952740322927176130744130409735554231394159574981063327914387446999074442469883072620455089231464655078359957369216481685069973552079346842500683180624615006601079033546011529584927290215326611957758735539762132999671904745196420022295653269313432530753097499733954889831290989783253740148181273435330528073345787346535121417372159184065253100115035618883143873086814797206539036065732781936162415267810760981069341979995116311921719583576940131023549388781902020945259447819309692903215033221052741830378789479764963730475825669612778158113179873662322807106778278330827778263980154280638243672057474707635762323487881627659824393539538706996377574659253458541415174476042146972284492683347375179045236596879932453363401348262810761969172488646384264148010558000899696781126685424656980825151864226656058022448099158113410230022741253625567241588306924558554065452920921354855629585107082973961978144216815694831439040961320838708217838972193546661246041149457566948740107205471910715314621201235137215600618649993691532821542527093773698482873182466179936875782407521703983074246166708362427668610211653447835384639196250118981307280206023565038084524634602510216116401061587039191221182899885335189035015666014090873339563454532381552346016289521092219158565254808698266736450194469166546448179091305882169536034626711313575983950203124646983306874676789654277831133748726275221395304816877682322952354901586047618318187082825625986034228802347576076581843848034774852126123777576217855789767739029530071821033392532647235616186865163354606136374083227974091121510425943002467171492328249587694573252660924602115952210832554142516851936989720902369805458545671610628455294813739486993298301423407587025780515264750657248606291745224538444565235700675214156440573961218582021439051022926068889592782981937727601147369845363092574185859680216678341319074077074757268711737942865297462602327053802231420575891586933971267651624301383565616123293968228261772215514374518273505037359485392631447380900783670166828774468984266191643693401653913344258240133086425606215067597301190080288217397193918771848273603991984704914558406610444235084123587630840673872174511349989347404554584985444354105527794483868178252853968297325161831477466996371758822856902329943613152315042195626923379717460006102673397407505853690250146150243114892959757395068186026883124716530088224130919245208825379577460579189734418911838841100884578388587422506330648163154317981057698188299500024778214584208415958181179826547643127253004856820386693976750871663878748881568754314480327050593626475537014153115197234822910512689132230292166342220021681434468284825303312087021433009396137633794836515697432847509928800477463122370654582485723370453566336940378675316357670564751515674788165428998068578806860790629650684491867537952224366477090595376110533764229869127593520252108016566695216948040121113530041005934260969005667017316478241429411112640542109570555462704661951496139111414402813375751314843677432179510493042339654762681295336162189681561860910622522337698975247973095325600046570706226228675953080923305542675019789771197331189377664775894686366568060510624283382019808367269818410781946458589654766448041246420737771619488813698113198332517554034545711375996291860209373437613193012373473987733443263889392928440917709374273862374927364723819132814083144386702830393133954336251339432553546148636756927272295641638443895704783665293494317812779769146085036668098261793005342800057267737645160556894768092773985986692197975050272030020966553972402087672004431236308798560454528639152602922101456945954710265978726465576244102927879021567755450673684356288105207228642293237067423238245666338459783517812929177374499859965767125368017271229543655207382288538976557795548674381187264480768241523620179649265932937412278742824914278672122018144282209637353016488581616208262366805644226110221107758576887079763844242823664817169697588647867177692502137312575438224515408566088529754482100919488649165371955187314391836776478301262807654964833029753228486599111829403053523598878670911544954946311565335961423251054913116967235450670292274686991673918646963327263982820349465854235694861849136151288046465613892952264451477650530884478445116942359006913505762302271861891118245468408026393414373875979279539105364000000926137775682102566277364091627968579836280872230935975231813424091604495384821824597431091078636239532609792903922421274284820631030449254016593043074395370134762234092621967539693572584967117399998078247187025290826704511483733838495007970858922876805058735545003291800139652627895323050105463778257025616009908964002207103330610494887990801858329542455651228623449804923259768849438780552230687529553426466884237390986750849485089557535765721734124782714725998561974040501620053753171240354439202610910980014450274736267387205355598885122726002283449889844698475871417826795759121297067317862703296647869096558033583402640156502994139922977435389816622092725437679619872500473189000806633930007458674907738940226458302780606101818648246177479676424075881024269303777983299415663116792178586017008483612959106106836254481854651886487386465962430148657481682919514477787605856638123440080867379563659952898069455131470578179634133280413328561137443369986270022974140760956111944679909064398810577195715667803442790023526110238148993850927143604042679980093636522594274250788312127241949919475314674384493312215235730692889576855327862489001530781717333603713956103932688359962208299868117656670484104587908424849573764607291826226994815279679788659536750005876563455418743322060071511580691512668846893195477592974598286934371110422392344240455484392938234246305514445784190388344223282582106185525973935477744527815515946766140702457490194318230817200723712171709458238692510917511852994350031349478810665518697430951902730995720841916087001576035202930642397077509289771861724250304923546427951881437133015186142927610636439279201777592301590992671506121195895593477743686003651978307132024195702046679416910885121811244249814274942054589856682357109040848568980566230450919152445809236236397084655209018396132222414478477081975162343570492640127086797692334549287503312379219078139375387324906415530523655034494604342971952079145905195026389846474202563355820254990569521707454033554026194473276273966861725974931122039272570897474635846093323040187355305007622546781750454800023151849132725681297682237087878876831743945595263776531568776404481258237335255063073903412564041816083954453642804424766410785095348547402459056480167776686508448630685293104105293395950706342277255795015133176205686332283390546998907532432300258030395045317213236891854257807145902320559213807098805888754718269105257763318963755509728457244127082833467594221719488248727058471144005583485190947545505926524157188431027802744200098299502348031626354742306266217696196722475588865707739789464591536965375390798166010882223757435344689989232982060495126084037442913370985279607170197223983113570948260315173523583362115760873594999569293466484120494185381515655270982584780577544232558278930016183261853886616902086862456743313609746054669604425667761828438282557065115832220259647886305016988090897327935923757144534897720159767631063041525802605980913206126161956779395389690418178206390571676629258476547278944554875170844810307378463510026830364807299344042198810989463280592533565885305400237679611455665244587321514212206851308735200406724102453133944212927817385683694285039536132866122251173700176505108669591374944540701729592052134840114238386096969377995631683916981095937072144764410492243138498353402137660984117673331704445787770418833947404667713718264077388478181923507254480486434816474235243531192356075646727493087455086699870039470981966231174259161985439232090818594688634065841619244445594632822851204825951223375826953281426277797835844487281492609504094129791296912263336423793687367174348790166133838020167606723700486121162405773702176842096924996544834593948515635584254648546752690349557952731067290854311921693009977850412883981850052743027494987276150586797038190591106080485454992647425051841980144129711457687400836472486661722502140125399951120333608471090048723667644869411940786823582009800740353035298352226460555652249862936914339352886791957043990221752518806144008357915010005775212556020554417678931379447758325914087956185874046779839855906707939798878951183600147220801604306519112876207441724238567250176797695084133876576177469001844823901901731862119237566288563235569899711330597668299745219212540941887107480658598919410947142238050151677307483086803139465384043664655917483709377354094892772606143664547115649933248959954290172611673166926350479517493037928868555206614328428203860967310202144432969185640642011204865307680294568231801703079462182728834434488080715685132386288800415418861944453931203507379076597530636458185478885800876673078255385698385252075762946584568731142802065602703690693297523074478003693516947671260710091059829511381991334771970446431893671514532496331881465954162238152765447707929106277830482023767767642518560927634125063054737731914026851283384008684826910907199600518399529554042605194292003887114918043452423257185685971256778691532068056560381857690153009718625011302474509794977354731295379479955696212259063275729013114572322252010946052502382952662492212820574916104643177360943266222427843908260503520535712127364048424247388227076653718683628617408967728890775425282337421166630849639250852972672554809002923175325110013931851429731055153729151492404094716827452994800034871502563445109347569942689649075692611959166024645329116851155282558954736947488071000371880597294781020921826140604599185070982755835074977136187114544869389653394627772476328793879654428334297410112226437954827496091790377575455334715424835631822342835312919686669806257650132692759112990924976574362476172982539956859473368946712828788450244529228085579028716830517697372472696302914347184252317541512192844105490020433361611462128364184118391832826209239204216869004253162728313191861975709829175544425907772342971188489018870085497418289461359574738706911181874689212273557302635932635504353166525807045322763033926124592462550230198226021240089651248342321916973704920776448014295168525428163276181670482859729379942979645225009490832445109238390832074423051240068563911452111615705724052939544975870931302613318343283092992042839090261038308540944553886504977202733692890972319451628179336402589787758178392651395559756580318044064444920603596926450831242627593237687310081581885924513904891727870254696407710528761775475121929509517397170162505953059231510115141356952798549367360872218408086698501160386106133664596785555359473194418529893872310883158346454930543057017219080486743734316527619048034628031814876778116503064580975634864242669018104594334630101969806601156570481887507144189681314463868962602625969858222346476330392231130443256631569652430662416351997867836373317760893608741283929342720294840258227445128630128796880086210517918868004966935979037898613321509415576335750665507246335319665668646546735854017656546246182768758306904816391627295861325336049739401640466512761436500661117363218076302728155522886145834671526701066739775506478486455979327827114020384780767190552100216696885509433474787112448958721758347266722472983276873708858360328292804266762710662889683464342460392010792689351646037279901140857442241539687399345866811503991645262414491691573184088909731711895195086863937231469980875145301834323396683436368875605699679128757476733181105725535045246463070457529730884117777150781737659157502484804626002912002761254300602027084716459784379434863385576162998512760393073666447533235515375870971405128038334254472036877336965281652662597193933369119915599200662547626360409405825306919715494009696285592555018696390167283317217814828452318622592278950385694373324756761233936149297051019372713145806188639777622417951259717381953475640644022808246829910751240564823379199026290027602478468967195696125090550912589079065073091087737886395546337714583832050536554489997242974398492702070059125920204694292162623878282712392255213537642271270619822295888901762799379426268915729844466618833190640484697399918920253018145542373241913623511237700811486824631967569413827307592245085381646884227071301405665925481273337515478033719716644763122410491159602168623541116075478520514587521251846217675513327391239829103170135885981991343133461124914884117605636235315126856294886351322519426787196390636437533088862363058967315458751814845340952357192700458587026523802693894006546454057512136484320550865769317442935656799733412040475352016828898661786610958491903797944940777345916550116735627525713256193099436672175451803795623648760586445345638272334579298768120489360543535633882668398697679999544643499295603978549833630145975435573053470884641664701751409816527905531680562041702857325657478997430727713237593975724686484576933529588651612545586327658099140057870762642749334212919066535184205095941688903103243336876758582822040513952069286923408748457121913929425817906604294613116595966249290998105780610543496442715622904710775063157523581406972097803618989094103742474250401551944079267435065965529309482020820139914358572782969128808926666664258240609138107686540548954375025735045676399655263110729207526412873983843449735500178030014149430263388989279750515472630443480226521323364212400380129819968046208132749690548284039968855541951594072666900504238703577372857195256971112612842697664193892535363036475308764811595420219802135156273296402193518423369446751569831030521264079962521938817859382789325173843980247876005997823960709387425176857518690460631532748787543653314415630459218789419579982008354550247763737956826294986881786957170476358307041437195617733438862020368329484992377868918894380135102548483642692603101146373512526281930625035415660689732987554650474697888096910702059421474950326216809060620488397911960142037576394010975805774415506051495966525088626799717632234905337591818515988163307186480281218948259065654117969041360149142033563589761399308875643888287861721212758318563374365064642101958608482070853076032597146329789111797899663496951273946275736178498253227149709663480713198557112493901101866289294057636125481736278475342024242844089674429435710404753396982670636936310341500957126165114389298299041649355469985958348236448556772842781018683430736478146159645740423976576514612695340735699223398936983147062658962189208304157609609162664889150733000963921584311370513371296496535727290087044914434401093824771748626720609130010610861560654233321524504910263915680334036999651604579982097046982923742453281867132187834317902689706014898882362820965609036150177409380915437745510324782799575755555482284094826205406860378934359567803685283783239343063857703651179014735905081889897380322636598651016960910267212268323039507460834513458282775175855633908961329319552643965632581441775924778553349160269115269178983337764540050884673599674406223390949895861473595451144348930829718089622452497959402608020257826113261071354361603221196027140775004925190867076210734679158616264756405671648986949819625871781434435979994835801529051672959751372499582948190261496522348730771490449639718921531345995593950231520762756198859539654678210836994464440366560670744156066852608131625034504353348505430680656253616877316676685387812596060055954629240672819508342460509901500962198003823557598300216472459016349476525135589365304922610642097551439826414076678446163657671722473839780547333824928664869615692002695334025367157892536581840150395721708666014883824454126650261852068936387128772683086724862985049659161951414981314611360722166051401200222798840208220334127194745515364684268480415766707032416331422614236638780442563767158299546384103315118223293038057025620366242450254390002734548270606156188428416491537614167912397395499958998982999498204724765602447639614673882661558661024595264472234315824947187756945797128938349283563448959270912692674537973843480921153885229627070676956189763067738508278878221710461436709466899230611373904117095978564282380866047078549400429632262820730523189393260267056493821545316065996385253251441044163258683915245182142271106617831218676191034441561535092275109554441484946793321726400181300584722750126475211331123092329086712478962860270588179315375265880462857315450426015016985889352925307753932031916316511525343794338785009473230729753361095339489227811286152808203597645046385196328722268038063998632353858406795466456132812144790123189739153293357741670078122695910692669660633363397459134882061432717230511362024799857557674144531932323635103889115557478247451622255992450860740569563568131731390860433035119735917991354002634870021001500098092603293557809360253644522387880672618424005499591695387277794491776216253637946330844106506081379093639587136272198335360440341700789210500616379564869677348040589808033447930239101936673071460903063823911606185663865413580138198162896199674394443488409653192969246640409712909287226478817240985149780548299690453924361529702869080696333212277143409549412828716064402986260644431206824300719046107584267946332177766054407960357745950262953811868734263627095642320485864501077210249724812982823153227434101144557487356423161419585197266295786465463016944456400632140421708179356851327010670655881955249611098511915393218330484406380395469439285486012437193179438206706087666525961750292170429650811883873891943036254366811229033656331012560680344892299063397983504577658722382375589321826895073769252681908202274637458208187692650069286318829376351784008793993685712168857652704073022463643058020804316414982854800590572363097991172733485563514985122317154577291504889377972837390585003230729748015604654840943485541863610589226124918723621451825874092344378087168174700110732669140732027920970213779536073488863120186422869170446389400107928809335383325006201081247372378803250478661803813883957871995192295309885875767739300487411207533187208927892073018473100664268527872350175533881775008293334373276677919770232958821472541178283812642504227910457629774635195249248684398822414050920978838313844017590339427901362611233496394822110435897123516948768468994350857872853354982034500467703866787909513455399185098518147097903039209537864699811073667873878101442736150852012817551274685369062744871015824289741592008325047260824285901064724852285083387399467394927071369665217553138171555141207734091715272968572005511597181115958348827973485067258630118346355855704442337705866993936452859774918844639682060851797286113587807408460471355727898378346324309504526092702869280846624399469841493691852216335283878486375614831596953985780584453144950534652639748703065812013500096389866922512754966530250657300135281390409544319468860805264440500522579122252622100187506750440509442623376496615829199019215984244767479658532141890391626721244890855675552640115740422559423302894542855565930768383843006765480073983682015170413846775440360932610575294052660432998268949091853370351986228772742156254312919673812586736540514188719815437327384428076606701689891942838859183493705642187482239564040562215178507828106232695812383715207368967685277882841146984688305771830321590650877311784554721307287267926527573400408932332704573889138153690048692546449762404672166535451866119733777256023126525874432598320548396656565267280391071012476840471345387419653832599674947421778815689536184535028715758218780363078810783630931260247954448358849827053621724491457290453385292306194532984153906432508060888533662272893909163508450887064589172579788435053734966517752511789360030410589773648762163347255903094938977114173780496881377658911452118715872101537289967233723280186008571762551518380828079670843132877995303939460044845688055690054607513357945260050487554455891687074853349143296774054904357216806758545842472581071765339811731515615304915984135133719698890139912950401534534885244502306295931689003002144153088732562722187042899341171515658304219425095558744708321901847141404301092881058601177628112761773916034407894538814035558838656999859222285684583564321660633330549309334839921365666623740566327060682732927477404228748308323279400060256660989712700448283045242313040425527543268488736134704312159109878887604580162661862148446816997982494662935318263444144125239303340848630054425232934952352271486934848316829568062245305492277081033561460718811151662004334360463990592256772988543389795160558199012174733335613354673527752035448976208041231828444300938280893002816781476735508120316333444493846628761766929481515387758911388296271646414083980493670775149392818205972407602590409244178569503920474152769263822820936165547344634703793403525492354794419671910078086925589761745570235381874912834447809879343954951915084822236124741119714441190103694992729280666465330752720982775281271956222162984507228108164789650663279900867127461970112176887019781023189042256643415163229239935571318968601266353435259386712363788646672655752913154546286577201026164448483636259792893351137368669096371595432880701496715182028632753843835596552645386809113035007717428147600627629421350137796260609266779798028235647710978535676592767903522527734415813434640707330418185302036969112937701897224723920582131855370768872037203384724382573569092173139386418447499611564521130744767912284130158142055144242855851262752538116653610522361120546371161066268724516784686586319182937615976406942400151267003265955495508060600856824463710113639870335460274516907676728166817322389938897700497771537733948573516884118738955474022424390299180174703803517092520593742284458977413404455786892245585104685615151282905154262256888549596610121923501910360748684568124693975994418682240284441840391571514852752394385945104647747036813872181890093343146913570366095202466213642899385954490434977049702558354686529404410053033866035903527984107894334082584144257299939922382241952897315862883947890572866848846747107593924920184318830108579208647722903714125080379050587193476430103902895940498458237676680512434556674315014802210944662899799326104110648578893527864058214640559912089406688263485974407468133672119725205755009356534105190220752821608677415543008147389160004074191128130397863860882686297068180768396493372702795198335136351196869173499956168508168081175140427326194660562051529913938421495649242449934373781510874145604519609100483336259465653955764502952358769557578141149873126012980608639620739124111145283438013527021645079388798775716955311618594187544058697266546474814870804447881350853001403572824669200798075183333147937100516465707217077430080712717833750354963201648314114641142229770623701819449861014298452133577470191828037316712913507068273094540811137945417137854186094500855669483810469146069350132817097066063760710577552346997310585088763451196857807529142951038746988597259462710700992278813624671089042633572493542935266779799699034093295465262844525687366148485592438881898154956972765786248495959109407056875472266900574755155484105343485286885138284947799198543844616530472716829742189531174186342781811271417761193277076454771176332328522888563023574119811286698214807111967970143777871112844155237223902415522621302916959414290715429935275731558308656225899221173709951430891406233373489694098697739108584117463644434592499849476214355088266957060326095771284837565133449057930751582018631504471153376675449736167901669758057307721525479458180130696299384850517690695594854030314204861407051514910977718844564805745002666095835915605166401591945473536698508470957353839663846517370775273474862437373529021940841175951728503824159025285332540011145827404540941445035384038596252333146431267496891396916060267353917091384698718754667121754848503217774630070092752700192214894679136641183537447490178781998307750020632751361874774196575711600016347931229856259030651623455196742457618581942088665814767736737696331545082503854527654128120223459549508086879881929313933665361896326472351720128027137611455028648215615969390144025391140301102485941380550696451463468522148730103022372529733370941614199518652175057353932936266773389801422631961192592715548425901014459651782970326306943145987867255190730843084666528681843537289272527155358696375881952783750600924200836635560992942583857897169738585784804716793972633598614481406740062546560584789753580600775195270696259937398477731535169410328747444011044420159928006646785168758771637924254107553988563338507044800873651415827784289190827925417092430306372836198308487459149077982394881107919053798011498732368286451872630810337164292804158533815161201704844701854829529288709596554238900068407931037821800801919965609723877712557718742208564367083633213259637988614878789569335603140617481025223036467205271424193434056663442280527006698216380282305464489843689787807479656466931755242483948155284478871108292031517034012337088979746358306917067179815803439687285827680617509309223239884714901926826274450311693800946958389757010311994958192194037237869753037339316505956052265514206309566577650008875858005692835038384250336648704146824989710496823208035436789924157783154097846176072997632115884193026340365981865044684826363792617413233844442576580420937197776401479207258605969109517105093691097564816124202936661235369638540673136284675266745988388807683067813088760299937921965402060783852397111841914335851399599554489316270494976899618075246893293860023626185448396049253563346522980806354440395233202705090720028597139925234296186402841304003282226253923445946927197239210672517493219700445744640143909177031045369624905377692810854900253304150858257911858185311580757929160987198582258326203123795854337119966417953651418634335881103758486939699749775668678401709519652099522189584521729639676316007788210056035257662937258322302310660291471177508370369315309576811903210345439651416724255516460503259491916349411842686804443914015465599797024706688014120766425301077633287041809986847584582329066718604323452980242453043042058140446338807553154002940634665230086370939790252628776174382127629970933308006365884205923029441625644945221926442202922550747249937878539521963636538452329994836583324125072651192297852706848157178177661329650172368210247491894818522000343377105487998553891077915844187539166862387128026326592810984622353016541651480018885437067132852572839766354402303533172620824810512541791428872429211540637383415367302539607414722836384916956480814352365372839256477939306347238135587298331097701592960930396802138505085812664569802622663990315202116248694853312630987098280114801913091659994967839812342417608178341306082860216526120440370474944157668040477909058334202902780081739632644659883178561505597873587209425323999840655171354515695191824367224650494544800890075891639432327095944389668897342304227255464439251207810605941717245812490227435153847674447744922648530818210609094223866303627907435588077569825081272504615249533526463112142808368870909188023818794710535232041902645287101987337920322158811892017199857619246764220141610487669104827340412949260648545226837352142417759249915193796878835316776748595568387593255702981625905674101973954495990488733362692054316763625923136239865569436432680636199058784802516094784655833197889677305277812923464029637900591727938821498747957330939261424929996012286592925553801773596586684480787633318731961146247388458830460007398000977067587110162362986436580213081047328473862715044128932352495570968499363594305719812527354524105408982761135538585959370665226101581375064155927783569522976697157030188704575474106409059769398370218099459205737198958789155160918383130850368904564291482653615858829320755157558319673444650969744951575822152683476669263439278024612276201743185351351439766719310801087373111249924648617387880021980770938649390314382801010122849059230219297955983045596043863649193984274529998215671012956625835739570725148824255589875136150041414565968712424964430824271177825166506407671880413115889196556640006599470332311540441105511454798359247400413272803683355018845560705522031019828845095250726745382967542122107063976303716781716456701277704633719789945887177621850318787393163627215191480369441399714748508639478426403458603895037292468960684614236045899016915179845104456779004431714428505390418076054695793468062640341890159566008507542255223272414916481901788184479538165188997455356112569687080569807580541990875850140598762948838573750181483085658612599518461669256944514642981810294667401738146028041627653217357861685030496079091044282402787080460817772011033707865806841038520025693085258522905618780101627011324069283801625449455936126302237479717340590816021871546353921303047284332276314750734288609542069523805307016077338967104783781047598672073004234200517542878527348978624379661882394770300324471982505290123553191319790346874254034134620395864556595867473374121497699858212935023559001130328064882424693435937450531524756788942846664655500321164217971789467967632752974999265641587471495747458385690304240002377962482137709885062359956857877850158371095781056479608032054894675182229602932740907860902995279020151321661557028042729020960348482641599954077649316798819681416174633498137385829242278719735020018578362901307069016876520385068187348521227284787509241430978349926506300360881891797790631137780721613920678910726336293535923781730897353454410107239248697960383837407854806546381534765359019927555433659339865297638119214481930834390139281435732530207958945723603550329089985274009316210036807050332098443008093935041737945309407288202360716429008729076446567738280635730330235453465561576383579977864091253326328063971388264598469138009710394889212196123723147614246507451260054557643990292239959072380202168081723499034169431892459276409627007300276426824083063958475921342652883977879400906011446912531450670061336829661932159445672355107081140696324231045783232634826774763181472633352182369096731222447443072691488977416775529340911435546193561629491013536963227810329492896090484450626573842875881734662050052836351595751291222323862441653398789843473264039587442643030900571253622399178685789994279053556048889866580403928235172099934184696290504808567009444807536986387552283339688275562817328550127368213005097447217005088740101978437363246050997517932904867855131405457791487245813725986226720330415752367664417081355625549070920706027050808286386333483824335587472057950197277241305294533694155838335579527957816014038771276439595796801938083598307879137342924513192971917236051364946891829774559138506372559252576546453006667020119490270337800152135270596795292828789001482805914248588373270016055523895329598610064721053072092800501192865667367856953184373886836813245503398580005916407029217552346256519759282407566158186064279600542062927135127233167532521940652820713271859874292502060589325528951858457181011599870067853164400456134688856793926836322872934290393459831491394535232073585880676796699308105991239596039984030656103580438009469747798579441644371765991924236574537367315990765873860953471418545618092110215068926622023609274741670545466162970602322996719575116786535567633750074504824571305669676034352054481284283283289120616802029655202148431732421857381612761000265365995452417287903010720677232443906148343143326410776100939882950871827786680412544190794578467678123361158550787463813876560827092552799158940985660838177714888149448307003562533373205178917774933435526067501680667008061115269210093932701700271914587239628687756910713738257010988688612540096330956522182413932917772191546340311586561822544103184769817540658882926409452178171841173788554989966198227772956532653384646015605283658871457799310607526507905007682529147491049207895156568097534718289103966143129050724154467530503723725959908586871303300612927831756979453689303989995332878417089737778980275262871717078779561284694197612541346512013795374446407563778303845398898122774473472308763770122082804471255508084694769297503871726851893664509205928112508325976022406821786883668862512887931300982880184497057179512525532546465424566502730272366351859074991693523835596646194216484122145842362304343550832800049895403858326246096924464815560079051582227000556374970265218048857590333208064130847556216336595182362279518699309131498182967713975449659913793903210695501375595327485523429611372391054578939047871174632324626439461573629202095694609010641294282520447570947292515229527349452308235004261936067259363103744210011999916920124734274145987933880111012591296561670401210722147083228354851569666926558824741155389732533012915492896524969350074020199709382608554264426719352234554440205954729604499839899332901965811870218666687946515310375439847474051322594972880725378667723031831472680494003305630243743454638387259480263515841352467366338606032738923901022216451250164305506786709049888685840695275902398843852796941719955357244420576873690351822342191343533470783130639563404604734878783763537476693684506019148249198954475758629041209537865605649920881411268185525390721879009178978530712315281413723868112058926362115551276349532402958354540437922004679251117247100434263243025803324985463024173686773011438419622721847650445589264694171947260466188566704755642256163222762880291646350201625680040346759377076541173068460384865917818003265878054973273457013151120173690926624672544367345384194168292066733482632959961089242408085634896675801756089774761025253756970799624738250964223042626826923071613998020093676046974885660014527039156900026659235440384587782284159927174728652876996902057168437718755310562008540310071571001676436848175018247143378150294770453269080249231253228070144707528759569620633726417375904846206571846481580876624191434079942319653743964492876863563369877809288715824618423237937049599931153185759212671476944144444472782034186496185247850083822530413429567862297050357171323034971553156968336759092406145861663749190735189150717272888061475605723976405254651576159142020111372847167727005478221501221068376714000017859593796706646767986569816107225385730052403642944584441254260612222985508230482715324476163569669551826355908220082751036712297644186539675458932793083231971652378539755486706154881915249279019154242803587546239180881650088529574257702562219305943330995755612126735546530031978570813432425265956842828366310194345152690416534107997359008877783239129474021387106829393964347974399994895049224158648108246569298908698124902866428786934370970748514672087173888534648356877050570767978291771493219607051425880423485469437628663010057191245194610616035774162549995377601414376232723637042180935903480797967124275052572376185484309583512939465898300858444835005994581270608794656299785586089041818446992369257597255471553243012071578312848265830469676283747028320121155271181998621473619016927772214645697050241685805025130462974227677292741853729767130594731536096904428228243858202977617126576278629994169889193551870949706266863225470784360582772654958157963489739423545646275808186682064577792739134200431557682146467972027590397367290760173200887563915349169011360861826370290290579381129523382795472467087352244050904293907702520966392022341619716748325694970821252894025734087733651973733976567479549204586012179557306360175547491570996572399898446178394848337705552553597119061566638999720352159821788682174293075725287688445332980232349926663209176760642186092201324317201969413072904974078682721278285093688901397677020139531792429109709675909071144087771872962967710141738554817327735022344472891584915786278211802366263088255939036301186360313149136237070767787281026106630384437427229512771583390323299005676625220869369552120998344265155293435420878534677660420132518232055976112135958664669001794930632924600917590100959978329859153417602358716890277200443972792129412348496755041795986698468380505080755011216562205378094029359516321113724649259771069965782840090290495155707159726472470493032624049408679557064685169529178039316117282954646879966786900802419198001838108499777010114422712011778149056968473334154131096123327066567989302792690565030212944315366530632390608015430218348381823209667962511662892346186502066876500582988608662340229007635684560072210991339384384228952093753655468162005334301449480023321532155974125555830950378369496065582341916142980174592649352809041824560432226700004565676788579106999691727918005924390321095008184073346066574056195205327751793014160935327151154376591104355537191549652902791572629560001970795209123860912598703974991562392497391791670465652322828157691029758482178740797590261952441413787359044708604609294761832876335460940532252866803570080102702076267375970166289483639438581840905729945138067973614946816303338325719850940770512277455220309186247001321722200026133359458610440827574070650011209403212839934878823504542733779578841641445705598200015476858167871960462687927298433853166413629763969451422652642932007488883774952702084020400478185229874909685145471692698584558407104459358264024405817293536162427607406684679607821607639411533365883713858784469471606063954074226074295647584489423073877032921978128212650057679547097513323029846955632571244441435814852207123005365946548018296753719395814433317807251211856175358575777708923639324208259722576668949023403109453705936819140030030957208933802759851270232566535142084493329078987868542031746442616217665248069667164388158587879319581091815320587213307850875507506946898687864466744577102485311382371109144518722531751639487376668017437766921485372146842125398859684840480388483655765529564122022909605492609015828772408569724921871889736320028820325915140406501558094651965363558325694739132435341376524994414410763953790999807905149194918638529311855398540539892346270171462782203633337982531122350548764553939804525829911645975322877310395409780601438305193200387016867977320771209823121481814084390149485260517114476423013855960820674902486705133316162219051539306314007266298962666980374882844069804779578458755078957055788861909158329024521277771653339164830964766106118661445524777141977333144905582424085231260512708311289748402800814073686020346051022288126233192971873591128927461644399361445045596797328237497947235550658590572336845762845987627452598388511429014444459186589604354022297126799203426530712328778437275264867035108688426292289861555154501025490502105514352489802202859206136507694983395045544085073171061385666481546677532724981738153025270828027345001676815162941673116649074948660233427293683913874139133935438064786445236614017851576924864305913438329355052991148687337952946815097587689754219026210026109706955381496356137373484097856554359735252975484640651289072242098431640677223243119029240248782551236475370750835228547105101871878249963948468781590733986481426596725898275599806815788927077148338210749110649244314354208842526006440747283117875109677825293546830733059351878388104922874474406192936263439259464551740470435362501593412577584349915949822068639683418645707967670450796601273655712184581077886431175922052445761713982667952097246732188961890403620713522567352751915415116886984890180457830460730262197777719672647219773405996184787656089326976382224346723592445265005568164170473152707734070121908508453563308695111625617776454292203473665347286841904337135362842131230053633709548408537942320726971800683680707448758778170055646706467037149349390657693390809934198616428737926316441091403048024794179591475746756587789733942114258970145778309110878118473716842372784033896088879265653242706027876413633894831715007889665588499194112479241839338889985528453566682756230491115704130216992207813190082914493914092900975602576738613002479136086336267844545750625302482381646466061204659149214890153352361824116955070743746116392204440993093969528482181527267087177094436750730899362121202299622771710265643276407153558707494326920551821811887677133729341241612658004129719290058262964842580823023440141045960704165468329664067184386087842943255578501891495527229887880493601054240364074749615519157518428451780105918563478112649778605698609885237649132523443185915961421938343455387903170106804106366108021413966884642276924863417956905216075742959906092158120429957435728551847032758291619760886096431467178883459831043717026189361614074055845547893776340508974295853887466070297035055889458086995576515509836769733602539462806223741054966314641913952002265901494667138478970772741052833719920568715992850540532840480206153052969522423958501182301843199949370458848459175207437349277643503964755937927414861910281124775493763057119531571016720489907615578454562095901910124449845865832778907358854110204448140120199708533782138531244208200128559496595663948066732362066836199336573247133507466881590099242221271430768922395992163368803477949621985766928794697265731419216820249304325064262448878627507470035365218142280475238927221964325571064055659733102127814480877800526265311608509626895222939252558817924647829378658320605960233323920117893775748766305917409315614337793194268174652558547332759128343888190136027952361588952575126042840296521803549238165160756686430219197692016138009831872851279032796449958084013105901673271501041421728121410267411885192113662765203977700167247341001828737909250259636863232938472060494672913911687232033172146995927326422825736753963332617990436626587409080202027758713064031231169426543226309379761380133045573775674659991905931935082215797722739334149445155505772643233854072960128454623032840441770551631808771548746650806794110374615846596990058320679485149307104892845450495494832862601374339803070769882403569256681913882419725333848821879369411262630275625896396407764995475648364437266946907205484365234638663838631848118349345059477089352740440922241552505440405089758748009556489419150574349945663076207365190513208660119249585218522480615293624128170983607572210736679161084932597744085333902064002722980084948757651993438286603710890579203782368563180148106774934645476758733886710426589390027306792145834632025812441669931086308341823762469935897340898303715505596967265948665844963905378504726668139290682670731414190482206398255779805338117524915272380781769560429068374472935198036407241588752769543848443281775917357417402664646034861803299568504745280979501179170793693685057451919555211952960510103132865900598228948659309975264726973817933875231371714940470383741817871343315842924736821510042948527125534294665358813747609551839769949272703513458784792575901148663783115677550536033096508091138291506490579777902045521950634813012584131040863187749051420909297869318745751494275831652232832756686600264526649921202456588904955186436400302359475649069480162917132235795752331308214632681801780190487277023566741239290958826018479127875536400178536498487856302424344652402097113687932285213101343910205369837839139384165827061846071201482939158681194731796601569781171234873107915267454692335391758143283058330770643549616865148358617835387096235653161537069565940642504442743690262942073001857931441726952382666184812227590392909093882102921429977945450996265574660590956880909717799900891586041955370396241962405099463883985054166607163950652300358549780765626564919114987075759135108663825544246800632210838705805150861251683759011279703720676934533337994499145204199567456863403598748599001483535734300767399814430471236071362206917978703680554297603113416424520774413526151564387635537619522809219193125674723889592854057258970183566441713108295393650901750234653364716627407556656772107730043789009647254500293440960660514264251827984669011457442271551081492401689585286537943739035371370621317446336932887189810279683643558752764124503899744571160965713492956529644513560202783173623908046997797136467824641112044261782174187580931637133838793370508541727634712674942144586977703370618013101593834685236214347747111060551895593277694067448084003704153305196697757952140827329227080946278295149956113650942030081377820923803972102338875188769792146316022275760584579649277123277834050133927386309751840843960186478820187748596271203609230714689803149041600855066034453627537343073545844207834618160445197500222736216086016947057002426621529487435332552416114383528754853976218207664853672967980470749802524881682307629924011464505151191147660989655288985397457000193880749079657734844841915240099291127470467158892624336914993069725060313376081705870722420671260225846965361075145378197556593640050636749983568960077465117684009870697902710556965889418272197385507598410737611676752651958863384425247615779255302557050679796840625392532001683843093047686975691711331194170856668242362407537544116663498302104154381247634356281767654844970103262412887198467298815903949605630189738426960605578294620805238186320852420650210667958433679416502725180633648299226883997695873448286671668377688282545224383873738545277028627731099499509459650031988375576355531382242226630558187552829662704897713230546459952264519453617583428595187621045052890462991498898178175326574241719014933073942753824283986290167475212564525623478167331117150176679750170410830010126659020957795771031011625119140901901525847865464687635404844053892889167719659942403386133389793731136879755185308297346744650631654925127648770369986712053586894401710727197033704968132074378750442215519724643582815536045905535713795458559567287739877886040138340222397780597577869373623481458398915212831207761919095836779136141602293226441804368607046804074955897884802668242858461392047533981984572911898450027795582748756211133034138331749220675894919639593368451288002630483005845886647041639889154339974439424262247651654838985449729023460378798885825747823621473739416118888206002573878223000895506516001882709567259833762961982027383768942658091851956607600357410704790666605678572453815704265500093821958135867683383278352837162857356488523406942573150995580455636751054233003229372856274051723509994934372497733556037840369721266297028427598502071720344658952566641138375752225619996982152179765816586676451260136730135747242147448992638164499165944165826534044694756365593386260029394513017638835200828623478378791218110913543111782430386321053719674596041505013585153740290589707297433444908090130502301811278834487717803955731390098304197232764088010893209333742778238938564223167253644314449099057326565592269214551700656019232732374898916564130124085236583011354527234565775139769186606541644688369611039894681749716755834975042626491696591658396463452494028449642657636198633657240857752094633137077302936619365062684755630968610394026784910123874180158511891195325239894688871917016562392567899394874196668608537370121417670883476658269538172681412583670112430669757628691273995585645798272766920235106059012457954578057654090199076645667065498258674692438442376300708146544708294474590394284591918783427711865835545441528243685460489161969383205848346296862776057256094348702193395479550429695170495342458586139890607823308592909070944557214437307746966188280359956818815439508490813962829103060285823176595870806402483634620195269658066396627691004806659699260177759863734218016639330310704202999547626132181775015647176067092971906799725138443530776629267464375192021727817481390852628099811902319678294164118220219581512507668898965769030818630056459958921791403122014486956346727138741608287513055658144094473677721350202235671796142700074842305023697846759217885341188939493475083327705669931606771797586501877148293745411435357973731220088195536933266249386853418901996886956530778717573899926861502521041474756192461331222887952532177082950634577473410738326065153314372918370910847783157368857965514013195931681673586660631096213590265508135904791630308414978738270919787648351503353605303984058459788168654231486302223104219855911392205188379360425066164055581220635889426098736280801094469476124675511118050454457030008234637410938422639711686688837073644314731679697309156457658728449854507028010339832509785239679135756980931969279594882646117982436353803863831291931235021290789071695747937935898752238271727076568781903198564523597539904338957579685993924639319286287611410694634155815699173231974445890692565104877707223235926230156706636154064687387042123182834190871504658773141720491960449257101247706271214750683117428164850206898084738524679922056384107997562694936084085470941624442483269924051670240687342809281509037536888672978564767095449467931515188561225145659153241730999849659870580199750975566475678568992198972461743966712802180194893245186502397132785904218388874985635862841382989837476446228354001373758171189992622563803846861519796162911983570484890583346049463536596886656236598194359894632494447138290424720377175639058585282437433483906144142656602802484410876408052574345013208395741577745120016824156051150420086153894991818676640143199675484974987692334591634973341664561316152123152854662984646434777396803546111158534584226025234728286149909847672558668763194436394257208513281562558226729929577502609883312632241465123470718930144596861213601745879479483014642109642424072113080049372079746111855048233462605888508761882742053967971056649809403730063548104696106023910954621529887561103663818029670332973852830067710038726297863457684044274950155439140842726810663410595107477543180256498791325456417363496656742538489495974327364523426430007441521017483601177605299957677105657791833081354819292055952437596307803338810601590341825244698153530312872487830866806735840795439686776154341636383986048113910807119707031470272917738688330193463237853784296024682794985937061357563257321702464051540921383272298160247301269671205143184800712134536184734938572551910118347786962016005588978983527905752639073459331494968783571920936122652389481643832222977749118689309596035704446105186429865617360309409470240874824822506338092481943940023211083109035472195193681769405821723440266070966792471472460990985778936137502504845307257023701863886634578484134682953070585588265734691376869699356146197596641197225631465878249553970461103005971750626330885053844291726976212462035257841399735283094972924975484862172317964864848004503445873629512965799859145710743511345753547538167499617004134989171805625140174113876303391659593075397451524424452850204347440126025071552770142140461814434913882012031847073609348987399563120778340588225172363774744695955620092151661392145080324554502775702632525818311061380391206584529246262535141707933988817889854100236661419572073793015501665886102855581141209853876396258679328209549300024072009591306379068167121606476668812434043441820399988368110278528579752296133702170533184716608481218615814604167053709460205659044508828756991178269320916764350562056775146275131116745824341466453536348593232205027258107686178929905921142250452721297154505492951372772708163700445102269993061353907991588748370768203243024007834340999995109740993305852953012866936425268610911164990146849462148512119640615011671849297168426288120901979044951094676422639792667633121459994365053883828088180363120309115051227535709975744966794776332962708050711476210138139854267903748870088534150042925920724783710240475551631786429514431750309881591440279977464678576907327551118707021658269104467460575613500933615174401748092243681336541369100656212395711434029193571519024892798548745529710439536534306145285010495321256415258708440560182371502482274121410878544070646588266178585965864677282218858433028768581928469825528544277606453397685284226539187225433812384052326200439801840033027508682881456568591315870784983616467810684216315950818200367184944818167909717293453966765792531912184242305180918082854152676604942190204640339644870312612337214463161793427135535091475013813732757130015794968539068986268132206330440840180330304797230998139547603886804780938329246149735758128514754311841232648085938429811185538438846561048845570581624644338850624990599810987237353396360833597676125763655666762995343058643323833289425605296742898013080862937141021656634237252374619018570925663951857425492201158370331565171991250878612339018240498048851010180369757430668719329325065882150504208871194455255867480284643156183005514702451052417636274765340736371239852124285396924642421193293664936637291483352592026952046398617351920507361095912803445879344493086392460656558988980036402483483788848479512649290313261966802908770866522997944710645113482857171767220391973563786468384320329107741753036924677911361290347068117728075706031210443552580440304320405252590110447764952546230006571868765497816186541389834844873643440313206479741903117822288441768303744507770821441686479905891639066236783028004696754766576137754334532600961182543311801261095084566080219847205611395299068630730248871960463719569673260465606492742357394489309032879830095481242205722676478395370847326409049853087308552779831739903027496495111010468681502762082756294425439828808311618032716270090719392922303411307751967688753897598315802397222791020415064549792968042385450527940971419471661681942797336041982726534181683513718072110987851161926280143231609906799882837637510996877145841660235666289824914806438084552254456303226088290540594108066717262198852573834846352490127040783947557056203050115945846183931083901262859935003323422915514317055841020382997952115472309953964428659974536976316455928264352646817353255639165219737291017091845627195628814636745755220986534474688256818195239733092466134346365630434674317197896540677119086051302948434009999555145621641581333113759408306985202438445866053081500806419884031725462679836711768064538005879505512320314879124940684096721473696551324656453014660733715823627534650721123876976294632781149967932167320473141243582574990695253517992014813794256918341195738358988236353069674744134360200877138558426737256696510167915133730352978207791391521012474150306140962816405784067093244169943684367034407297225622606385880300050503547803552231759310365568761380550143244546933385758955926156712329169502814038754326945407869129519795066841290435820251642211144265536544212539169880254522536795927877762656851294748263533195767128203842954507904138447812299800084321192111306041642281328113104320514617571102992151721539706875074317725061851071119850692570753146321693779373197696150391001387613886391257251072986487364334372408972691449751827795172600593387229718714364659921849529511420549553650671098266057042974732107099330779410379643346509354061267105344512569677477120526302367941702022901185007599717441381549825636557734767061941341793333657082396954625637918916475637083610701818428073758160092039392470627833737625260111669679502934313067451247320221958465679597554730411595624103462593774347153033426106130975949671311480663835346588519900544237247804328774005359763666006167902570908095147463282859711445004525767485532773643000085602984817715002689062187193431168538602680254066877663631304220645925370614640119847538881600695882907311283868049344221587837878683731589304852032809389039465105362354785729312940253525089732972408792965337008883038395694123854257564857779208566430594500096131371084457502421338604614000430104845779302307964880655395373202062817334627467728661281762443910230460611497489240690161279258180019087778221509528312009787894744677253933885488910268089490388246598766512692408446504527026017116241609409699426910354715534681857567554124418714344243350399039076961298131790760686253652403405385943273500231010926597389893735792177686284862078430636432877467465435043015344362769751083621795016215116201179956628791873220824243738291553086083325640008319072829902013895328787851665202512769908057200487127875172719932866023320660142572425929958280297830985913757193090576181957178629089461443496574946857179903110149580657528274017973438446627299450031670761118171487535998769260053076119083807624740474140080069587643290355378788801460405681653179697358278437499879497924555123528798141591554273078475384896523673698284302035953483407774490587018767766969581882852399831857196763997432629957697382856096376598509853188206019750178330645297756538375223803057995920317283944843269019793430779953083718878491774550405093345250922578837512993521679777011590586511601642268440125200679490935122839622308060823676912428061726110222274826520245679379544477400208043716637473492969404189122339564793693184497474818575966881803661236074778785099833405423168404577896561882071069852892208419360371697507876503293729456661424833843807105363443922750542318601112941232700998571991418175525742093928962251552900117482612146565652086664616374435237659840211485406679855447826049105852814576291278813752907894204350137355944433290264822451928569490563843530007873265853977610339990600505640646077652299016930200614055402967163893526829593133499720736720117102773108071900005486658238479875175696232984993677429132691847629465465662700540656954215269629864141832977706738208939417098051499867049489462291669635611893153495917482952159353887834632396102847621100353173579159136748681160888735297579283407969368546799896573003291423817802985025300801175197938079337534027076096938031118319861044806721688726929401330383889650792005674563127338005729582961816691747369710535386950418499763782745814649138430243428201317734042560965981754804136915481082251528880827575450436293698496960016404201035728769141337508896025221855874609632809259841069081171733349108524830955957304383859686456214882406524648216465543807575658785515112079705728416120825612622150622138079772558028082014438320313570811508347881842961257195140755053901229977996711124099687329940303439991960713152190255151585149436380975065169252979272696095751015971093282642598136987366977609738724607609245300167034241967275298031028301681356866890086786478035205929031070424413585164488712542049897094058241377109191667144797464547132249167956675621779629049792076816113818225741191141418012971843606769677674447393244055107982707888725822266386826576834931135390181291318951058712904542211871406753969009823687217578307026099390823687911670591391257471955770736897972661061172195361453701452755452819923007149270607383034856933942043650270390682654571784782760611776294696127250389995542744875215549967309081832480929415925117137073414545151135890265658902631464717539968615792058662517868439445606507053715252584340837129883510517693080107477968513523190479309822935477822386693706197875764573825916348247722747245187388315805501708862942099015022081261761111491930248808478340013156678606875140469592864386549919409346593236400360158986886170666063372936538823003847612743779244218782399051778858178396873148607925803851887387821260321944464074735419915643936930398087164999692452393589499383529733105423781638448081381479109448211585595658065047347257261657780814729291912383645331446085173989042586520421096993377740865365195196064955516106044936777811186456941673055789811119213479456137095379245405403480370715309783130262154475572431447329546136445054360458492182359685846548829320689535836641596793506049322364890452579972333563187004010025509433289172155704401282330184480763137989715411072372205464796835307490334210149139323522541163726976447293304317430506613476831487602771416353350104371236546060425701169204625891421787887573229803384365412222637621026150856485515823748987997419306168578141566689345799796258841970518241252788806194555546753696335940543748812384909575706937700677377800268272032506526631510976714549745928339861226957299594654660620071398103890160515454220171464500368185332957889843988249088480297839389892565101876295013393481194407946892428847875563693304484045119171634547019639222077445107343987538234218405003915431780125331775004243804429155330229553041937930386630126808935939975616169600571072678461800986484588499836172619603906120947852114370284813185831789050014704934792065221745420161679117988882249167137216934287479298316779305042717462658311926988554835496595385001378279302098698908986965767298531522185050447379443318953297764375824455729861564779926553994775033446950099965926069257461428963302903833688955274263595740799760779775055308375930992582847256297418747944337422036820465642678585932097955537059990635169927010354525918189076062372749400250112681176184553425434882493244796106045763971807696311267064524394242251686520634065441287215209915133526766954677118892693277918492119580700859186209428065337482086331034665653696266169702503034615175174921878334518929447525219088295565626610351521778265438174170164173741384914456473271348980241693833802435897235949717579294453741254352261647232719872797601846596184887797479903743890009388999463606648228340267187734888536334916191798666895233975300663587478729107166429846676074866034399586690291518727355643359603398501385195941245826100951475083184826615847559293183553504413822646750406587165767317789708662494864970088768557984203993273766331742378178093316136458547447150035782411786460875444152127641954025660646200936229613249701001500126966650663914854129974271681632326921793862592870819103231167168955762722362988569635331444997176987764844895367801908096299649608931777566632985426235436182397001474904571680479412694193711583316522438163083319149224037158372856479748341326684374464976004701400207345227440094417573254090605528024338166455061485363283380396775542229490318547935793800668833743423590008797456808648536345336652249773066908326337938422779340381472384278598543567439891662691425056908989985724274219393859548960334929293078856515670794045964624727857136234768532976872896464063369279517407181950493692443078509994939819269752058868475347818971309030723744151597041012284183167673022365392251419086053728374181085032024735100112173757569856499166695535352411819284273801276642329317044400210308746800525264975349039813502168644111788375593102352851031160493846653591120015282313961951780092733630926911532073720731474726481505649606191702518568878811317319029406917800356757885358256339910480273298533767810994258726945721150592296326590729836898314311602335406696860385052538578350437863816897200818831569188137995094182899141595477230717338991907048988612207961374162732734950655323889226572708892709473547697202110652193866140173180608265393737697050962927388692293280047670541927198078079059101247100037106070976969044834807078025485536875238553565532594868163179702013175923855930589073144733120234928297317824802649945317054922248947676703065359349332258540746382572614354644380484746464384548695151722776425532779397991271045402763126763891774781144793001482637714848573043357113032895252828646217155810500304791001648196980985674541503517584839120142110266122210869661128816341768307526098027283754860554772881994957354750297477340142326126913087684522614132096163712716621092597411663779454544723520954887692816309414547467271551583908460586350626939952544615191474653558938082283495526082435581378561408778811889394117607599720479135864800464953945190754347010946283996867942110059898784345768766514513340634891186755192472513649506663806040019454510198318517111591879277875333916906229919677237161974947618129682605780251712952228616221904070368171449472342918122481307195063246025570757242543527627340231392808707763648384201008080442557750280230419571495475377530605853340589974421493023562831741572520038685712859462415017322972669626067053014816329229847012620379476709605785613395479869735969052255101451173613333080922506471430647578238078633277815239445192537772327551983699014241331531442449641271579131340408269977322773854702032252309116405456600201783132283424115326474397241765548587170981019808139962307705919541277411664094249330810294701967845115701043431730107042661917856302020352229737592562404427144429102801256123421551715744135967366512431448286534251692340138127152696012739538319524397307655966114258643365162345787191503616597696324262445802330275866692608516218716438968032855726923171810919542970121437178376923829703221835924480111296395695106671774119291297822830095955839628783964827017911630330336598245160953060923483822575953258417411503337272041287374008373138902334382023682160622436456180936230625235792550884675852901208898914459903933989658578991993182335498240540584431635870189287706649480367914674984058901821170566552384024981542939505711108567347815316394518129039782888964102855393489887968043375443902008352392694857374442034995422623299785062857105422084467801359271167210782407245623927324040683493260823121842375658882615871992571913505271312028141899068585623985318444698397211019338318272022202611473251996586814970191444295840547886965306688553830646704687532171818207854940178912217563172945494723045163347885235314391006180272016018800021814492499348026444200468589797504967544705882239735825598945822629727396953768153166555435064555817762390628791953567914425054521086559017782920787262385078316409191363695216108445195828040172489765230043872375635154709518532819814962130078882588849191295922517953337567604629494034362814833385533748412527180044986844319405617087053778019757161931720652381374365008159341265514770886766570675372606915150995383064264258657995949150093337542936111440938137561646208722207856737171931004158669880190263809560383669607193298363220960437192704582470069941979578054339857922280162992014299765243296703812869606657482651025338397113772323482400848128457031626119699025783846577489217944400107000624433796134774129785176767569783495030550676454067347968522515040498240552421869403411825794664847881847697967227368970346069502613226810945092098870003713140426470094097381677239169461693251293457310454819357422150011748835672688393177026346135389600768386334402150672292168519871167644843513381498545500894966885032968928634401759114694913675751838386590707390428398505018965593222357645374482200673230012420269696569403775621124090187464431577807878783992265452930060918309498706373759073117777839213345866808541486108425788326505102526003757572625241088780612154670550505217504582281802113079349085700743917247580477165768431872299469392393155705220309559778106607076691157231530949096944991073268878739388678120760812006799875076379437579777600966049338722332402212353814746943352042819203576541466648941735081274222945568338747513524294077632603208811064734368043687275791083353293930654045601595310483942037827454155777334952055407695721502980632017760705332894346098076937237104702327579463442595344004030236958258234476040762088564985996173266380571838530194591155861480008725079369283242879818285771495241759977461155722902218479138610324156724421120884498356345558645737202147668060992268614251344139793956901479810369732452108651455006668502384649875762348958784289384188595841743671389149966772707623872316652025114189626982416162782182949880676444614900134639973117527782351979336909444901390004557719340591035041161444017437385013569756438732919351028446414826794678202415606442843410509497074657025947747621268741599948354753544778287729883513152912442456673038743925257635081990537264647651516710352989563870602237847098745472423747264508872339753250592655864962538434980313442091182691406034354434081690946248600326148849624316870439680190181640503932540248876998594466753213738565747231977278054804069740023508253107051814217245632623912316989896629524934941228711842204277784119428084062036626313492501570408044449242208915488056833545593619977054490333579983481719550879877362519897169416834565284444119004128262541445541927163658898977109217784604972159142197819550917688755694147197224281201603208439334736212488105346990165080049945444942249655217784981639662148277098765196883551726665877176721611596371600500700633503241479117333029724808274386452146996366030304658103485902163717653315592846283435879921487923688389124811567303289724712860201603402379529325721403269601483442330038353259160685967115618890465006965336075754051049647573219381665062583891427504210028479947595468607304640932531872072237048482856389478978293143821806214645889876686113105776989819392717543374822124423297407509695215119590427699872874005128834657432465040386390104008079928872547682457084814270495044260586234365500542616241343293810434524790148737425732916014727927811894139473757129493166428297810932414674963906885344936128064275695248427298768145836300724020414381845978158789275070389199634619478818281060798103051911115164655865656305633883238927727992622345602739972572295717545043969350861040068694641388133590273165807199986085190773534677697657879676784499414852027348265638810766001295951355484304585521941183490115932672190702637523965505832657766754739089208559516505014193886674203730070667378883608394262247604200811560406759381292775857340604513666503502749907527761186207290403904174144572676834026357768009466724865713678313938841346928904313064812516053060988264079511916011533234533958931927599710539919292348275084016616417410627652219562957083114176957905109392801698364304499680755625892211238382259262697399994383824546699904698113432833162485903792597012164963305266776409886944911207926167447107603522583254878602596052234091463297242049705146769206153510052297909150255478386647612711690363014724295478660140521567534459721457727724522980509293870948159530866670416715924009659096080824802468237432928714195187193670360094414015817120787612793953261795390439583133574034322292882866500312264048055365183399839948446875037370510270865512952880903084785781928813004848689645618730219293036128748336482967219276234890861813820719590409566141205125722879806301055045499718473626260979544500570424033618456297227875434506566317700503478117853541037545943106252252686733822545201260797289917806527403427321524187188768353659085150341412793852779894417253519992004433122401786144498854629472916492948710372790940595032267944468000319442727553926940116529999296049789091052672367741534669636745954453990205176389006923848211017489373544475792380352000110545131421180376008825935556702535745227790714458979933964011646399647588212877006422882587002162227346259283912649200444248868868165583571778189413075364381249605678328924525090775610109500104004344370805500405106117165844200506519491360375232860461298139192927166075604239678226085293893243159913511534129899420404829122348511368270951175737836410382555661643575720532053221628619163231439703322642959573992229970432751925948732806220508955747200223848767073241990687059434161942153183645275476767022664241727574919202000763175443645727524516712431128714014775775536117939949616243415630973607761751499458840882417646860326274171007560469613444396537774958126465684096476534086663508653105377973334991046307331002168758166927163936442163780937562510266494481597137369027923953476249426928728167629725409335217534875622058705854378321813647081644750802714124643165688753417891311683400674989914886786189211013455446014360039731013384598900727307020605861430210630962247946103971633831708415001910540737601971643729784934338652795672146158179969060148108730546995997030531366499895079626599503283973130956493214733826687134604907458557024241692479986149215407288521105449476681637374809568498238334540845214215622482554168884823355877933628826915372878178022286929296846350655135611734680488637251359280993495946116863929891120521210780117490858025754309778168503732033474196119700711152228936175163483635840657446414188276504585271276933430768025214788313593604004717398180639935101016720811470518550274828976747133530259345789284704654329563304973728791098430784904703310511869539066282225396109993809815780030773922184017247159492852414037045009139960521849183915332786946818065145198447046961935755535643125739872380803454595966313903492706539749600835855879638075552089216617419324430978306714511457735175764727335270311632677366594372155791155694665608040994242089133667897510733380646351500687782229821287482214960612044427241017224255521399597095880854817163358854467685319016858617810417765429580213524314543556900904354664540490050244668613956820552720152462554471543828811993839026282794817761114008533899076547809879482054497859494857077426899817352903531370771146465481699706629554924217646432367944658588138824527187292383071199480492274895939979499944820338111232509582170460883238628903382448505304504197880504348631670495702168381470548792428329878428938461311232745426249417972024187478591699018493105671744343202447250818033443447315872917364302114353206715569701053036259218763943314254749050562283145089924426810654947651677379233773039705338075199417110957704420078012229746127605340591884092809024620464919910966694698521827290648508265963982218634317499515986355560955928370691990382208226891325516715340231056746685755123767726809627971129361781389161972095880423947461288330307772418483779557634411335984340175771451834235544238804479285576125423595291662409002965596060856220565504948995591373923135985917176683415793217696463553645737280517500099788590935876321763506542984998455396515307608982348187425359447390747673081923690868607981552991253417153597815875535153751152018469128165651205619974368118950461644617342312784753791498795191018972618296097678419849294953961805309031336606021879811161931692018190361474240446538698958782244534542272825662654890801922237462674519548413721323396823897549813045276591155057585480366004051649707277107114054557580944345542598956523582569996002290044755148434188595193169411661928782574736154043996439018176847166757399997440510421307101851790245882850338012193322593316544899000534112615068078803334766355506036495489011282845674264453624254909853005117200482156198254192647494197348298892262744419579151029956056934520284181998538649852044192777004219068605533652893437603579204646000931340574606843682776330681631464125387912791406453326532093900943769319820889355636313803902623035816868622268981984854914590096540840578005986696508951604612859413239850444986563263042590806276598716673901358207688914765043193535808903025156804640248579211029000216861950679378982523927566294390396211000316135321282482831346416218667985206469230939598505323789847344836655685930365023136585893075997004783844049804915565447080790080366317021285043673929175509756797147044582280687364479650939731825297715156078894546066308721344291098249811422149543980611036544281667943644620044482420092828466626305198154573612553284062123155055273377627716841686000450739947765180364214401978754750765121607826659979308912273132913702256123337997136902940842818167204932839189714916032210627108194993784345784521106340997396946490906064650482974391639643404183497344349733942911386095713547469328255182946311584163195054681672553435482954679262360239472865613059342174050031508634371884672424252412305217489591275451588552904067524762089104041238625464056111450720156447856334220892292327054302159131141739215437172316325738490713020454536093934795792949048016996917490873145247386226656327171337372365749193265209024323035059499743702143169795497157933175730640066167885019449429069629073994711773921352764110978570534563531506395991064281266341856076074441048563148696942671309072988894934471168831212690615488243456927716176409849776938990523300742169995010222620901199712051358841075529731787654381839780374383826238702923214335545175687221194501348054726808410285987871738828440187187625396356878687724189294200096790020067416621493309822582647286128797088212480024856276918497438130207439517484539139724496488900869921085897050427371678190097804711583128759399757163980428241121292517675085402446680721346415302589911896287984861173895922592488790676676894136280440276189714692665518828184475019617075751413876459965142885117323071610065772614481261667492133362661909366154043114905375476435677907479024919174877955738929541798115201768325368435361526132131553521750813993857026842386981920636633015052880602719823302352716025162021258921367665157070345421213842357089764749508873813787527695161659979693628213236941833766900227862873301661136053721142094382214082691916662646564636807848210431465135499901163355505795052371900107576798991815036033187438592169443360333260842087855757577919003711381482596863668106803368980302210449272516751063100138842655026894030111720314845705939217887813523506306299391152072380739060266705996049372251986570623062352685888360572236957481487498410261847382339957767402463540417512514669999379046186755544555222331021227961619037159588670158968466589610586677881641790579296900428613152781436050250576227756178252320735824753178096120407954488250716948321861927197490829201814529634118634970103023973214800222962579945971315153736968857092707831721851774706018538192532583929888937038853795168254128057535190566089524455348781763748154881930771184056140161626477030373380153768106096071462009226863729068901757886371590852386818754486533145392857516097427880625643667664046612465788486348467252035202597936548200371199279668102193713613150183490376580330127639341594724740448791329180281682142714545664052953497134677097503918751531432447829542992408260030175599464083526714067642563516831156872994386960696798444686860916657858039730732359519983684733036921989971142170256977352666127676258534610508247207864683295049992539881423582507117954301729335208454552496626030653373817724811516102699312468501649812972224324271146624837024405364840357129395048836280911256761563193280115525580712625185849073488989097356594597323496072824582862166328229628206578293406872927893510675987018218050358786786458124287611466589213239655319206632759384401607727231520427631750978938329848930952485009604953653075386001181347100712539107059551377535696014890922839257723537586883660145960228427667157505153669237170804631522569659637231662089308809621135238516244940884416279877072559279176956577864483070837413503211715969220322136130231843608572498962305780258908098570918555749786791214280935865710074799510411479562686245036464795800113431424999030010234729441824602586369120548377799771099317240858269485455641485377682840329482079555206753473171101498856792576803393099158965803281107301265963514377244556149169036557085298561663646326052748031069145952592503224723901790435740297265755180322496410763547330781527570526706498163384826758833762809764644071620865355542427826482530653347228223310651500301640104116962582985647763794402602667188186149303993987895068400019006114597787045298984176217282149757629919903772028807173362444504758902820464054533247801745124804603350067860538680214271074811463575890191218603243284581387475504873113946869592194001672569330316818661513122399450921945952400141386607693246182044572459633406595450519817231277652655837472710202068174031260121317599462396489829104419332105964422801672034640923543375863690999507500488961705725341973632550315203461599374991087726596879442562810253776434830827755664734968126850364774308703768759947161398489411816469451760077913589896381899872869488732609450962559270037658539814218368087987771253378015631465213736376716208427931445977081762698945433671311378201456000919693672431596148122217521505563972981908060215322706524657735644961842577518973827121250630548656760207131299525692148738209451095128945326679671034787239707550904386177091928051642093512804520281207396172293232425675981243580175263788862687660354249364684926738693020218747305315787181419764589264654754945960400775488111384294053651239840065570385437096744276766329023654303211825277008582863452438952921698255643660378539250457866910666479094937853663458162728344044168572158100431032476462260809415711284499533897215804169051861480663038132308545023521886656468144694734542517762446597282697138710736482704819407327037333391586018201416673604059526661069836505299780981406948452227820214478595562345564503972533998569077766860495588653333939598112029504369283244588138346370656102944273309965891842449540881297592724685373911484700543117093728382225496397049706977252042949912359650732544350145036122365012564450437524194835174884601832306325862891476215764623383075857868597239415502216096250871251484377708910774948947919050429868595804884176264226729247756881769540291369500171454484530917426768875455001612842644207233281563979210061820635368019162734915973956583801398737261816224219984801485769205377213493767493425186096303494199134488908479026978252107842609440126543908682228548306546054162329236229265739175992983630348294715635473692791168789156084720646959318914779277606907925534379380056805034022802605529458603598472083776182523873440603853832516490573081947919581547864052250522554804120465556329932470418036712797778831227876097827605661728925869950544466571405852808267445184379031566857578402580787688737455370210554357720463527155768058943799346833103158030382875767310694071958347039883841692907271698750939480786120006559129419129701321354166529345155391439358148270457567340055558421670639118664706702665719177865468011755472471158643636269037176600465324265432116566559683268630755984672415159282093111242602237814326305883236783534632567636031031078350442471140384518136545838201146313825887909273052446766283080842978517151056326837721076000871150337896494449985868678042060004796778475097215921298051010857103981990077992272683802919923646549938690381528422872492169183388300248734582172028678292157569312916409910935829913041228486966034340713273050929091783107470332474287189058480426519995831022434554179358692252926837948167676107599347259231418236866445842123794662693899107180137763119724704475933803792778307051318123696122942662495221420608333069588493092560389546165338483446432511919187233253679077802490793583346249413073247368121336268248631133364473557495745797734123934044059448385439966125257455100857374642815190607423030755358986748836511916775963464299938974121706979540972751137821264522918543548115080787135608297053574447325321250938210097717272354654983351311320198796557808876977758482637930899095265153151700311900488281934811487760313718331682231881675655171849324629330605991810590809084814125146410645324931583018650551881677820113737269312842506801704323276942194674673422611397516113833801558554101714262506708226777726920075209945868522305166221351094881039026856852131625700812261268044023439588494670052887116765055032660410940624508909530167048958203944233410872677814820146159088480074661167850216994676663777664196874798753294138587421317877699397313029130082005239309907290236409786709074320392614033162526806859045758651665138587858498060530598705735029758579368291433196133086254831779283886962387633520286529175185470541802398744605310655673835063825826209273399051713038680309258730052494124792735394753022315439151332905864135241515297002147155345798411406241150749295945907862967867168642039773497765129632605527295309756035170301312784719285435546754620441107800224768706124573910984574196194753720298725181559837455803115789435618190666407051548214916769862883191230884995868622124529525065871616677862525860615367055673380588925466488402686275845022021477743790373132044253012875749705004476529262152135857487875574925150263204109436915744960982714879469880075699749124627126582281908099023421184857144387552332240587763290698696498586222851885226776878797917070004821657755742679241438374578670888298827175703411190775310478956294977608004105031422916862884640008108682481723860063075891858464411756894402376853342727213730415450090083537322144985789094497715618554799756802087530605555272807913447498546899299522490527512836918976229551571178617105449434077841498131368911933435950854675630085879204655514452646285583896347590370574991165494422933665431373380819840807304041900552775127263963180772945592754161163828695931652123934808256972502074460618876765518066866611785775727148206652679763261455052861369286877953454960768390696609033120056823761533367337354957602687762747681939140161393700513366155101117359706431278834514056637949553618333164598802345325581743313484650835814007813668828128967327729788189208398851080316228818555837313486309240173419323128407433712616610862844881446942454194865855988428297322313149928762162085145802598839081396042009295339107681690126008924023073532532258542968972206285695856252568185734638390383534304143567159415707767893795677001813703917436522000899030514284932182948756974989408506889598647373136483044360077938746060437570553739895939483213945597937420743678806613241529373096330910632721610286515574486169685042553624881919768945479926400676904558360069271332188984152731633903771042707561158701997816360166043461464156829857429477269092295546855663503621582048630654582494053389450064909770151353110508574995169174183674150882806616928509212392231840487969446110400849739317678701674549368654524914091673063094054750159143258963326787142188308419536189843225364707234081184234232455633761603173973373160081886850058585718576960262186762475682199232423089735532804567863292720478335699165751216213547836887507097707332204775108077708720556516433608365074656829227385999663600004962055747196345765885540413199567774286767241434975268433013310540513698729660085760594242752249938502351744647874606827784825552677969017885848891649720663228824494526457022765919365465322843099241489418999527829616998243232826925981222879697218973765131531379025745738491308429996622440151938337761063505465312825307758482527627332661572044532776260064106655908646383615819095138237454938554532121949936380872823321359706370249913485653112757574276195026014696052268306584190048588904926966676555815400519998300609686356389077334659400614885201778329989689967115039024043823585835132945756363567769729792940645872324213373235969687306542239795689380029117167394122493235553767191237495756778429195047090626860445805870699809427116846819020655936725093657425366849931714537515450871175537274598811490015015115773856023173562957358181434125285632898548537682518958868543000072372477140664879559951847670878106307947427193180950820528718443053360726412732563556022250698412027779458719846883808321637491389831274315010475613419360777330241437220683435350911093101636904568618999405315314575740783867140595799942484159696675823170092760692130344378426319462186119801018588789207483342085102311507558111293749834660775035573488875597787041958026492785925929399636345785965496019423506471501000723065957171015513787257677923775897022158401236499476881910624348094225285516330002038265193499301960982256186513354738289222189574625872231742277480958750774714379458875926632178800122181494620327888401886724289329606795294899730007580879130738064280293689696229725272734591221839794091640689013266122461185299699103019720582905127887810058714825198239886232257473531890715162352375377314721068238899075716903600900091329487742971729846904650881683581743053766168625538338435407927260736391034588361724580681490729100729420828320061986130233313944069073136750066406482873580891723563848320977896771359345652361064682181923724208643483748846132692036444286051689181175417979276406242046063069308550549794197685821979589198124855736982641678344758853304582041419067511880690930344542909363476547497868298392506784572325912141333535545974314733748884339786249058882900326812379166643031521910056909072903933737119840148441588875991153461061548147364636636461420889134703813382964354149040587185793706371173178103974232246937730417953833760823058184983268021758386748456295193189526319378355043797515708752745178040384977085620943438010548864997179883211074160895440581642118557244238787323085900861387688231774338650184171360182980968889927204504984507333990390953444732288825462838992892828455543367788512613035580140257396832919867875937535845027935841933937131832797090929696846802361496051391491861059290559230894044651328311813780812130650066212219639684154853935127216138669832700611285848482564172042685625416900878222504140084266463412140340821105850290559212287074657839633129726045364381779325080898333469032990371337533726311022724111042204236352350082382749935820331664168882206970520572175031271443169066642593437823470831952835851545218204768819269426747129367147924720120045724521268556049348415677745163505822205053366136034560013024710434347671957320132783447969366563824679402327947817923028595040418084890325781270790466794999521781476629972057080381606196563232481827575464280500945548231888280366390069190387252324584894840859145376390751579645764634150468399044474206629578118698939948558745305242639671915058860270500984962400673219771712275172880841446626922026785404975794673363697915988540171565888472546488788737972512711271870645335786166717132101783973822056983046557623333870029599474873119423249087317088409501889689200313247463922285943451570630766487635856553355244190295809766235286642256617556242173467293095738091755505221278137834079275957585023517721502492318954791833372833752488743219058265784670596115718624992717375695601510773627568991076103614399360908840841706995262716149419005059353508469593452981684434571865187569384878857123792108428361386569979045691511863634381559041410299239152983058042563533580243808112570420142443673639079851922471082358447513390014680255677921958265994355820598559314168114872155452957746595237435533882729481475827423146982854440497747962305256613603629558189325994386199071515817802476077111169647122558305985225170901795867756237552678608948616545374581521451051129519257416587351490152173290672587780815963419547381355106393203233300453531141992385880927535176562749506529451244173469559898982312372901002311826579179559459144573736873567744081393452104565503378115101078839561202782658344130203452059086787860219588830252411215548798873525598528787211173598313908748493389948616226046806954743793002041236386660717519523946702767248247769591888983424128218354225425380583017322196214507431244661528408357469296684578350050435830846700927041732625981903899913240608299064127128050137025462790365721726240140149278569514753790977726961398336046394766147914086578609119418568617016528259556043286293414116755160292945222204386782991394671022495944373413737794844663415297628539114701483515809682220006315181739010603741845983673753551191481062387489631740263413776703394519599908354863180219573347304118552475191481560895535243852862251889636011865165751164131667928977201752058792312241123594343983580693235668794166831118291821626819004621066724588307220401762014672648313513671783742896047915290262225562891783022872088052754386342476652240966122653609122955456661833602391142371116460884763728717817744320934889333958758916584069094302351236550201725173300008201576931380741283749582661115578186445172562151690370780999763333013287412859971072985421598572439757986002379854758095833825885914011102679990410305113760947500430096776752314165506903207098304596753644270753122629177477655402064308541265255659175833622547549040931894372206372179019850241268548965508850584848591451744794792587548729416986930010434826129476594637347151893660304869699705034517971840150006822590130635211933317590231944186779328307053964327218782879746253057354886340848302108405326439000824507570028309702640589877392847055004805328595445297389748891392733625711401466403783881230410226173163591328270341937004080654816195775605271564422253091991679562573176437061966230220095780510673685125725118324997376083468013595886514765408595917932001222176964334723579498914454716496547090263012058418556388916249700839798190722850542132581550474825311578792115008563154540124671053669793197164713645856891348102524405509823627432304447807034585465945789932801658188758547279107128327211117685117282033888692912779408929350505460397002951648010473389680892093206109160336813089955795844095590448278728392764845434410829964971008708582924523339240427969099306942663347585884255756315561450291052645407792964133710027466745039089628043710959857535807906953184320097678247325991950309182273989908584556138146658142381311025058217774868841892475565839375398548382327955845162783776218547344867069559061211438225642380789760378453011075017198710446263985921263408944598284195247611218951341054715335774780209261336370128582257647619710042597360340817183976759757470957287827289500318117641605213521205514906063933595917224805681894376676936233949900285750870176500950342246609907303213739751225333708284960221555555144433189279014929560445781672370296522721038818552063604645444058106408491790560519871441376381403540629067234897501103465744786881475228741980974355911464707939691604583242879958327273586270240133006101084208744870390580277113414238550747749798674255603420100787397385638979826666462774341563008497130983145745118433306295814368029434336263789023661159513357690447244498706077722632954598513818951834740956675869451086849513517048290918712079240637191612005689821778934862494374814606699127145562590609628215925171408440966098841920216327342547739728821825425807606875671795260881316003182488781297358254782438434694007536663699302077340724043792752011731175941812296684399829415716451313680105461520738763092548252101806100972430946015357785100151908757429396845490777051885257452881679517946947384476310592866770500897401308547596423337900169530894576930016811925374033046645317520048249168058268206901709600588036241634629538769388183808406587442342094628200419082440617990864213057983603409307061349253909803187563126694161850502156228465755801368467290472522577123506285594253996887720028047324324518454315525789240135611974143243212292852217031518259102585963831712303233304977076378426960587520342707227152722049100320786851354862462689360364859971276812172373600899055534788806798901709697755234953063427863423851366190691028184986808848480650019301580684061081373841210490479480394539117499468711903136166311262749578916756327213559502835062690339642114880791959945439840735095126197741986876735385634141122968810233310034686624894731053388943559428795648564534828962521177047756677848156788688568908641262874972154376247881618664669889625949431128516706901806635956251645667873412840350435424075769424719759371031068649919722803577047230209662432263035373519183937114276062721420473780409715153081973614233634339948682641074013472268565161848437013776881569240230000237228369599025362665995611571210361744704879826787491579237503237584195694809951708861481989808081463386755648700783588507011400917871757244903508346321544321071960689339801972196669083765399818141509385647001037175055373104251038744126175229190582888161643693955620527615470587066443043971494326482627117474208888835895329232905340871183747467731111565973138794443771707512600085893578400742302378327397247039517637302040930890608833653442815284938555510068063288457901204297859377144571048906067321514652671098378898664870719510362078374099328476763970522347220764911957678320496068175577094061660077104476322788916301901475536641475317237185184148612502696106604982290073005733626893204130064896404537560861149199168247966262046549649227090989266291265039507808226838142798536261631177232292642814680927366568807230087494232365811522932793654425868490262744378517122980047450902031078365931133745066891149751004367335580577624342810641501385850917658036706634224715530542866227660676470591827003286365357719482609280691046598068728925019563343444259096975108426919223166876019550083312721533925287829859633430954857383762505199619711711229324516692780337404793883394087721842816362571535498413525433407102094188015410440463073438562322080414937756539651745368231615845424769883902783004372458364885870501488782418888319735245474560072336626937706529114766634071824207512145506116428587017028188591046972723196807278447807260050985782720313126062980663085373027214956060721381517358653796380659666354925804895707829672200809500930063431301812728437027003429916247301310086826076796807894868390667706178367705012895377517047806341197487499101567298643688557599550755959037955165320907827472100984125973812529402382610224887259440366694212353532570687180493568754806455351005573204137862284748074781346335331849695476908695886770985580214613874558540585728023303934640438788514068828162709399151653918523813886187170588480484889126328017282882070460222772818273831216731963828906162798985506311133475785034064386608685363501952943016900714707055000535990284547565943668508204855236095699631512621386951511571265587154668777889362501840047099898522486104157032686011732315251804895566374747957325399645049589953824159817064442261751107796350321276905160841292002445686680805146337037742575297831648203053521773018982189309593761226586584482581592128545196934026445560890078418007399356693999231014710456343870330595183949574366693175530927729022904446649736424945533087109330414652234310878989098095120319404465345475425596994514122053610775285103356145485771945419072317175275185448046729550473158894666510670026705500219343918779017055882621602161340910493831463634835704177095905964503257685497513756970915242451749925131337453621188166891791365794248623089961600797993457322225583645398267782109660221321206376970462807222360988219536220593526931110786581083608796409705820757918647050297741489416306473303615916298025050499683510313885956891707660219235287236071950850106318275990153270426853657610755193709636761965240871558593959205715723547876205877614290588713433268130230814728552672065566628009139075323824394350883340960063431141704828474302607419370503213184433021209510972893397963769497174544054848864960985581417892396334139483471675176821297598191318946050484194540236568144133356904660881176147127719816530126293043986831320068725060713206699201863989472887297555612224578679908987899670138983854861652447872717412386437426904626841189455365989231619147272390523062446751977530325583122803510031913398212064364945565274175253997218944318113485986522070347650887522370517353661845657663414073168058580517668249852417219769870899312149164736839692475726793574695662409838614323321775999055397767829274115265157664132787168280003520257484722470018741864228904648124056210406181189694109760840017959879579263519884481926863443116249212739738463537308363936116442699949752423759776930778127484297025483784270287392829307536818320897637343550197152095761553465133691175311127826199424233089157202420017926265192079256082525461421364135953423137435125063002812962247075713064048571742319074883258756053991644949945526898169724180301937940585214553697450078183587600059229837767124671682315150295044225018800935078525587582828555862255605363374732644348345915653526246851249094201260381325418389633914736297677744842345711929606801421505423236447879853280452596976539184408893521316628565087356991467254228435695316386655340768503967530069106925746715317707377013860343672125872300741837832486130941653844651596785796220900669837712776269077383710485884206744058726929792393513451462479311157662970305927655846037821104617744154441670910082520303295594191397767585238821737243180804671002899050049752347261236855477366870804877634642627836775724166591340346260836863120276068683964332730490038305670193838943730083926405389092713418836303919243539013161297416238752892026488822337700690314749589929842134992976360942269105994363630367729125778757663098405399939829878752376676137070695292878498030850826836982272923858431617454231416022995107094502087392484951212150851596854835007988547935543516748251568217822403578070778269588484404045320916923115700679979108401576279420330861952830976781228459395142259110561270669744489457155026330828247825267276918251882156774450208689647345918818779542732005995425823722033286830628668444641198707947385903778710814010055529734013042876578783962030765306277378040827763764947692314113022105855261120754868094437991158454281923566359466520204621125541409154638156485250827261157415993404678884278452998066140960239495204952086446332521431897261468960843431987614423875838660675449514282474180943943187689213493891319320911478383195906572830978008449911017350030880037940345284823921041849268382066362781076364039086908084845309839690651133781649320220839059813487393444430630566615950102706783836449289832835985666905883939071185516629231030449603562353117728811936300359402680678336231080895912344854553293183130522812740620431683261644224927391392455673310914716652490486878464056817058150923961998611536765495265662118894508901336784892766401936444867211950259982439048340273305966449306119616554863605768906638408770629536900778678700804675781035091290798907963679796776014812499868275076460764655521479930501124459556868016538031440948235059442630184612514115690741322897055961723436946711583029251936903525579239603809868671462749880023383256910990757659067850378426698406858990017956058556775683885471913872050813203556026173404960348424085430212868233452469839122836041267153305865699230786234928064438374587402731307308831756236958281691800541590687975837342726529630329338172935987147491094129744637241244357009904353198895879326371566659173942126553085729984213621119254634575203911669590505699282294028242829925362308601179581562658167518172278696295219233565003423480841599140689981941117869775589926166229460031418645741459737109638256725015116284181478160082095029303919598220829134564904976924603575525525708321711203640616061627813241222595908745477262430414327227529426166729591587014879722325689148696946542449757393299186441907929773729936935914034664153705921721287759050934419286013723557534549633412500896586505143821769915005179304878684783153378808493305750101835659988029459738695227383779618686524182839634487842333806989051363421691607998295312890376465265651076616410305793791538884727972572131121557541675077680565590488026303526589731757565115620859978856840204864977095333562381945495007300679989560879571856520190933886085735014243468561595369278086021767148095015246486527082550556652723109646214779744324669992147092431326851198247488007515956824167289160864720905659676646935870509377920063950289420716639095430848741506986688860631450105505651505007359649119312161691303691007750742501553647035754949004886970478365043148595423557321899053654255308939275890921249898302455302612608018325256065823195837238755159762029641680586817894373502577162385827244948884341726967941698346434330960726791324951435153528068573159671967473434055742891505988088943038786345312662558060689131938043223279108762007771050888985010392774551113901555230165334781935542752679099779077029344710730935738732668153391254146178426759216731096927025941327630676807623499193592043102894540489057979502504531830945544451368503962701226354862273013215325980252849573862355837458107815192525873207449844415625823227420810796528253255759321087711032078627412174407760956268612340366996011106937248907319159186783460072223025942887422278478874312406527495030522201104685704687242609028030143124350187646880989217722246069070201175011706796163992294138485735659255501964401619901389035094843618250566776264773985191577995636000738221532526651799094254437183057533055057071378887139044275491052848079496787807008948951425368325544462106283151455743214360712229017190302753749766595586820052573056882752080255633559314506822116120975321144348593574556593286128176950443119789537327704071379668819089879292352362905945728381174390874443711471252723719150703882363185645906290038113019114248835050057828087255573150018695575605176494342289915089159824415951572910126789075782341236776050249399695845046373252444051858062237761511209240701794403654775933560202151981227087287961677255493646800281628204393744808040436951840003348477220460356411149554812002617080517435099142956625094987514747427723589868429036412714904439225549070031785024621016243756481924726410973924167218853157236598105116519681572905634448922516393260292229383548798754200206859849710825954265700414730214284929028305420786136084090623223143047557590605911027852513594902808410881331564850370747191455902892369698085042997287477519691450000762702287918402458936978399789783417508645178717179515308421123562731995213960871903084293724519452210175843260641657801985004027534380735897763558446084412480799447681992799292535122925448841015125610432847785211366586561874908150628662599550976185211763012241107479245685155635611273768653442323986358366327152361737827972555510358010533467481475581023752753294800145691408715835217303957694118508006058095461967646421866339538160717406920554303573224868454836643486997016101797776727215737418548099572818468278825496313592399393280418773698489180925401807184355598453622706178101838806390048536387575721508330198739439799088651271088870975736640468214379652984989855611051653979394569683159125568153958836650721010161726311265812084433067991553767912445251267994347082884516470476122864724002278645159217258377514374964121718979019465674007549195392764216559190467395444926346885507158652582357680102737841123665904148414900003885512287241656912635329911007929244463708470664325379533868043814439858035521768404651623341511191265482007274133452394821087745972979517505027928111474951884001280714215739526282810130175616694235148505195923329399508439088709250698471714699437812500453859319251210302152641638564768245762776272185315783444687883330700936296946654165625000440545598960533653068885053367833829375544841121052093443253909794773497178981415180915428712199455890732633467266911199870990147710822087451364654219867019230534780117442224165978597427972064713206898281331223889656168567900680155892344864748510884276847006002886139728459762980852508479675904807736626897351584249191715335992407391848975243247387160871749041399264181018755238770008782317674186571383526702228332150281038778020899115981154819058030345181387352451738355060916220854167668902267057178634713447472731893757888276362854698496526131049373966418224436070168459607621431054897218587642793726352877088323193370925304806604754334349407307129636549358841904708879620748414733000254450206674497776904402743731501267994653625325688597064144934463476857689013362584183828616403840585625241241423065973543895726247250679774377886279319521183285684610695237869215215960843921714159398719502833051373032936736141878420880403261214024304981882430207550078360850012438320117957445631713017720638102938209246577016762180580213883843925474812870617287189124731632655729304247162235878283472532554731088256111970776006648713201095265691222794565663216691243674584095123818617311517635893617605842897555819339694139583472574680721111254786880813966051642010987931159665219954045040178466465421106997184503583119008241749667987195121888399028036431865939098309432292357881221025198900868996550600066457872213956962768845707135248645515381502252653532891827521910859774048542776608213972054624217192581101936421855776936687499521326439808660028494658694603071596745400898897152210163301885608984647099729166484366846061284413799638222297136276087465403375867711707664277166675082841863904800780526521829290217181719804151009492555458012440508338649663950461959069539212660910188020386637894869255453841354802177929102201957498461330101709408473553208176458034104400154736326658968345397330643401785357524965375675126072528128912044289260848094263218291856391658111443895635246549819958854025625360995598719945424549200303711923051889195571672687348801240711293105932667380546964748324895753924663680779559727124392519890181446407110739439121524206064935477048049546349971798023791158128129151145666056310054276359750485743174917423241956231311623700963017957255404503382361586316535533564936923064318635848625664403116438793873244871229542713796769183435648839295326272928572749024283657344172459401717844037889429088185382477150402682467426317488133193654639597129572516780680013478073658024940105648014090440236038595787632440059067755851458920872378324841777220462486116928160401334318678877782598139252008211454452402303659679937747686532007923319322790719607214968150327176624591472156454598230172051925052087213632990374260282864053747552031071116058330656650948630053217318950156422263251809763879240654646105795114478135118498833175197694048538674914450741544915092113519172511219777411934552039803676682560223374326334496754779324291892412736577662520333247922943347105933465412691828610701408836229844760908515042658645171508902151085757101926298856478530603405675036500998118787929874638327404327182290812196211354753698500912934199259639586888180007884182475765285012279740329552975936275534079553295086634303540592299803279196235773529019731179083729872554160231223635273133972875249338408430747701174236100272232964918118397091761279719943363070359470528324846017935469855528460269051463810667148309882898122069760284053736742444384514020853099166576639370201137252340988267958572508544400131883297069508090974828083635235122969793724013765636698949784858155008690570413251230788966853042672786674764599656504940437027712045923471377744262258827663822811082939794912991379620231706860015051816972608051711822051180357427879135595351267111517290846587373638157515583695073075757541577557267282538762788372591962968882923675595217286144468180332121401192216443569242000197627228062195773052180225743894574434323068951337469838487861496936793378401180975268389795857863312453600651716168620963503081791511847537484529888889903249799324460547239706979031702811478401142476560229919366348327904976941827014623650290309125296070544171806287573217765461191687744283473765378783850046978233065160423582775572043858535903695599278491925147616645532207888529964334430540809673342838534457386275561687748556418907127790729071991581276106010639953819311605189242363716639444901055661028571690534423763871434453163954781185687563079106375055223004636711012644685243767368198992952730472279741690530907373340169310980685480056535314827324698526078012053525931411980907831585474405961447184969299055646937665321147600134239881894822161510946692541575027402115509421066062070054051257134497299489250273066169300591287366736161434845462544559000923789214194094672829540296921625101775090164119144954907580675230012123622099873679211358798068895819475661592913071360463652321151028099039285640036413931470418996645463340980185887739944390647669324935112506119401022670183872708274585719163341670403545496678656447234083379618589617691434320715947034397635849891704446477370512140422876163781547858690357095250624083974654975875753038784427554269572835782043657289867126208757455262462586470085732339756048375999487062647212156518164468264464413384866874919327567132914084331390746158028651539537380005306748269454164860614447332574243754521379344523558209652278519238614372827248650337866417344858170534122878869853408985589710203200643383298895199469805342940263767525854639021993134240010104113470753860107451005295123402774073175426996973338144381485055950605759230122775657665669590971160726537240731733406636013672261631396766676262491502028547919655396886101480670228710798707611134100758260821459704257312778215566179531424081052372682157610018331712344233141380505148557819061937302282326850627665812494982536865238587653282581636294479600141799221213541114736115209317362178549415081479601811290208202735285725230726518110596063400098074591404183738731479586814029979269667566220426125976888237593352052410710040260990494581286545500284783636380433097314903671835675906914679726961987920659992674902116256317890338411594180867588652204492845768097924703576256213554719872803900988986621085903007695853586980459373348348883206690597442193221933433725801752636814476755743011590667834519216799533123729455782268713040747368436126638308014203546076214318406314174160653227589017837187592620920681394639846842587544822269132294557273737346617544585533018373559220801851655752789264138620247963520898455061279017173311872161243181085680706616866488842698539316251376195230354070199121159599182874244817486595792991684848872529203822527185819880396319823705057918240275640427861196546233756087662540533292722218009236900444103225961992512917681159793210871390473752560728788909244968986065434590772626438346175179021362395452766296930655220017246939968524738411479775830180535060301036054238206684300007255024860415146228227538620538013050348844862418255131941018768677544953093126502389681395419655054791552897579451937194539035478845359430982872149638250069972005193929643940577260434104382126234796278816129928755413992292485327579828355900520760474132713274433326319063907430741125381778090503252842033491235537169167574192247006898768457487322111141222746277875970950403847772816548441036786046367753228105761319857413432840415199708530844016857407532384830365322946850408069532524049717350001288381947161910331539201768780423962651427329714063665374233760499241642458899527517448210174627427765063824302168851246563993396701085924496822403288050831000836658231063523965109191528121143226418680085317873284405645263194782433743653374180383847115568222735549756259007752759204257624426838802508387928351770150408228223255763497647931343410493746468431108972290361167142146107646396163275313716328777215124946190298268047509407720214619516044440412265065508323500051363667630898111133871855031055190758998641682276292891713451933229781879687841138513952079925712021397157634209048164196745168729349544247831760513498949227676154287700685545588314371344243736899168224991304591849682404465302944446321298318915613003808871066955427902191408653840696691831265545039589813665352482580823377964364564913238116263696023369875918522361175106175501873133064840356642499493844520556418992012129362001383125920081938673800340964659941393060764445097266184449319431991760003983163453614695022999237019226210941904996094824002187567529382381205879145251399280905770253105140749900867127945448816989842668071390882584892719115775815364267438061129206809145171371780292860018950693388580025652547793415294636725651755214301205887731573075427958572753602999612612490364841111265295904926196134389691656780130854380103148124880152218202992409599544477629089511309698264692653612082261727441576007665038507507886375216589956096548992737392339038568623552025353469168485057364720652451513877056471074928969639085258788545378649618231444172415282108089461442827459083995819842855941051242680928074352534968889319856710963609585603325260090489527722609211951810849906615628119750866995791651522805449604395261436705710208948466755860699148735916308478139250534919309614664519941911838391168035099876235295661556287418956351603646962249104255942857971475210249267386252781434771667103409187375214283057571523670665392177871128225488803063295850454806593489594236838586880733233796610480173623093884154334040585509216621527611741044409768648674499616944416654927854570203679889682082841311327446850997947208865672265792926952482087664029203629585955689085220373551990131871068234036067385969559962675459357307060925581975232950046735766273224252631791112512583531108532308872559808973455729690176642008933104475191752939083237876767920593803513123692754502883864315811918412768463350264418594776183523267964354708020884782124635619246078925486320865935205088967732810489098545937760431135525414428855942904370269208879760130881123450625121556037077020076135524975904919856813214598840360969246271961401051498773010692546955557964372661890919348190695905985906277733562044126593713847011527686852266344907072691327433708519599106187862358104248719873874780999501064859905446085860667423676294484111770765556088852090990584802951817519214468015424694632454791375260094468905559842782464119964548730621614412363729304097834628855742231806174094198738586089211079264700915410563310777494263221719639260805828152460840048150881733341709049192715836818828845565773853301817610700059643981985847164515918306567870223797975555063604430766421512937773200976693616760259672119742422917095834006464355203726030271419203142951874188540834693237192665374035211590934181082410955319853079563797888749330159561956020143113005571199409399996770997398815287171684568164171735760768264908506943658763685232926307893170133976979432969171200688043887236986938471987279506391552554634865954221386054836676414623840100673492693427376190445480657609524802975742835739752915160072136999334641652269344060052022659695944389826549560992649652784154029730016874306006544261989640367953635358923330734412781338148137963026412156763123168232984114608876385071618852974067742949346478921189083594090618738582844459945663866156828848210642364138871802778043987581373223372707574412846736914043045274735422599999486122932653560662368097673670376470149012633563716825010635494362519114185374695497084598043250603400670184996226027808877852456430407356508938722031151010118684246487465353677195772516944898937449042147431947612597079814062429469598142704346359531513800256658891009690571201237881335537118705849993177124800082462812854081963628273399194336810715202552433484718486452889499763290845378881994895742515200232831880684650696456694103192288336371925989316783576650929269786435172179639417848227152534201384821175641793308673764910077860015344340515971326851953421247589790014798522411644844803469075702930817510093030141951346971965158564909465961379162950766689409935395769938299121173296040107294794132558168620601713564445757643011230064811091641665441608397049816440355911616509911617906454665117501117558171460505727818456946154813356337062955443353725951555858256293435076633932442977059471758644498238721207468375232782523641368695000768545965948292086501520397674494413438879818652122186328459191209183629793276901962929548054595423977215286131774366741425096297368878719803091858483033593399683529071685507756886135427293761955662408628132176292955859394289342321033388728981663179640882842348413120067096062908698229321120863786752248084554034948406080644130155232373947348293627439037158023625785699368078978238141800841260722272986445310854767731972793896233589079587475673084751891594199634115289483661348464587358442738222979486002619912854190613910386463053596828900209101723330302506811558152658829430351327012078726996067536650640510460835907773876199329127986936894020535250519683727334035655146962390289166092979264424767589428882719675721858558804156819809373048546884096474708661562512848143191970727915492532647008644627493388755630360137217433203458744188913451436979314881419015941942214998833051513320326060951672289267572071936031764941290040831165489695777674079677590384409701738090225223862573936023968687736306207970235947763968661970736059338205271052463257785607133745871856303856163520517570604822411863058425898698112903875377950087763038113375439082452266199249278659477506663799734547664849216580816906250995663173334562970229439799685016408584457352789510580096661640358801876959604348918877888195558001114878097910059266096703833978665185683119021150966379336728224469294953324379370648489278967294385597124482190499994250208351676977199545697785983343405882523229677375573339347489342591967172115363432705763380465077998795002409721774972140544725108687962481106842377197562113212185029772431520230136763531394463865542037061907919301869455957851671426082313817141536688339937834366183732748462879111959337187672756439065257493666077916274507605992362830463579511678734179997606893606775132379553806893560687774155647407584539303835358438753027672568486113648499676763280898203370878291150071902679499717087985830341821439048051042125582304834717570144545485712138924358736318887432358680103541562733207047180468075584749362987441138736889882568336853803275022420373862899020132331226178773142252396043131529043695347980938317897381379150969879023331640993392384266113329748055284857606509773660728654248169316630211337837957882851265953511602328406905894788370544240533758934120486386132923694877406144934307833522067875692647404534540616451388360630950541712856820633452519263792346542731881851938885022303471363681724252236228045664718626991421884669737551243696256316902281745047188241597546795595783705323952521034877224353739125860007001515665922092526849828957982704508806367248791980121763024283817047445695416746295354174356970211227407225631683075701863110542097429567418746238560450953604489348546456879718285232322685319349786610551405907484542041635598022146332763452729603069160813460808969874499861153193721305315246728547153912884247219463235996523722515094989038446929448542434582412789489338912005620027909797658307098483455352559350676924041357731486084314085153864820909538523244097256553314893059652435841154779815189002670650200968213968394061796796012194065357163138618254834186639843930785447744412179345002075853166887021065759323353173487577694986517774754814011251952339992960726501577948517840822965811826592793270378466800737444109608692834216508364161099008692411278868115836131288046478161377475057155857975207823808648593011489001756531927592813189123776227734408507976547543587511236604589028447680440932057509308033463727821641502421491407628996683342505893062848763244394907439342740095665050895465362665425875898437871356908490821083877609772293906194877015997265499702940237829222330398668119878855585376401471697732449854320350571069628944059742585365034083808664627735015209644868991366847682419187472662195472445468817600730676484418474976518134513714688280851878162831013217451679573039532229404950740606731129078157641684388811991719625772797764000419240400974187442234004517189041630647282983560985150943782051667125027180781082203526448864049763584374440659764241163562835813657049479859146585713467161242398206275841745625892218161208090685217427481466393169918971416580012214137177209500111760919541241266554330762961214788068646770296856588266053722476659848568019031358281731618801577986679342439579982314548182461407712147687461902465979123983715062971819026665500445391931591709628931661237181039549655666326157500549233800152206131328010963550274589820354806487495712882300745657593116130649200885752755285634454657953264373675071824467075586005104932803505004130542148319534601514002417584653715596116930265415445727596797738921783343505418963658426989092281862072668736699762100482681694887775827658219259916307649269044829089676007813357206881505013644742473382774275732954127190084609343019939477196446051028767982025306796458560557289416175512114055151287308025046846398397464092910931952936610302341919292505061806896970960539675703062702483982280197439993521797122436208551263968767222995126337530166482723075003943764967996690508119284638114488933756576573948679879746077999908648446810028152069590449056699934806859863404210453364417752906499962757564856247137629888194231009390046821281678954031678279442234941574751340982375842811709895366612968885141507566504438591589008597891875349743762843217843479760512373044478354249816521524774580777669538666045758385655185962553240876783987914264964436005374074854852828774268732145045155327934481980429930839226176287267102889828211014966319085460833451192481052115100885948948437300630553280333608102367649433703648362868434508980333608486837474527865158634089583732244433609130647494558360157473150957363092239349460846087752524623542022838954402678874471172800232270259123584218222735589258647997318770720952238312268436421074618197332294499687840490040926897939487999226303555060700821277678224583499041974034948970817972557493353078319360410398715921309370119388842724103485766605565357343611630299749415413169265918785119908767938112039011292201784194599227583663658098783007259624685855467562760860324362805932185120042587746384289929800854848864150258880715199594704379724230084408287021633811485477969711761070173569617258849897006361433124542243438816113702139725602973957870286314141127474145584546106723779126414779839200626555630201006692464953766582620309010518019871540214974789883714587592665799968126406988377557125867344720944792805321443854456181448678442147711011674286118808329419514792549131906432424254704871216794804345544364151530463204665747433029786655635757811634444183116491702301665021625700594848507374553763152490182513953891931154679684148709456259078831070334257860533156288424592558568843098387724833544842422463847657989483439550540854080527138579231936580455152076865381191851822044920416482563126803069589204625846182614386307111598429580240440218265375736805527151883935474747551408230535121569975488643593862885581660395509612381324472961606190384634050414572431539643978840879295588815543593914395222036613618830300196069834011061806420626577549703245166564431584969074022112246596701396038262990303830037173542104081424761509059838257892213553605761338184918814165491789244914615287299553294915960542182066328398713745948605348213028363429410416417138792436072080550852347195475955132013280370749071540026030266707775231259047354532678327692299221306313219061359130171796478783668680897988542822323815811862268741272554638784961471138312565754234336001126853988104842676048103662655501860659580618970110068311039397071110902382317262405161560750058596683858290595936110292672150562598866808922263119158731385797422230096243711272672433907442818450724728433731957494622633569442253495323016135280552998538741388064554797022348874095475570818663937031811025044781938924831332845635173136678214301883742736835407868308374494882872959231963637079029694128339791357172840798542565651723273956593313833544965980637977288134258108935103451831169495192359110382547109470825933781373361919227816307422035658208806826819920061545795703045000188279212276673109040822705683233915307623647990121340022074821026095064656516164588786183003744274122043111889356527544577925785726812626827099940006586526401692010457173537368053432925729399238497407224451866835237110323142808675838323821149553360391481260734871925073996594829218098943136552153543352636691298105518159707991886078218394751884368432121109579848067358030801823126841049560206018358852002337917695211108513402359889286996410590702646734419251541719068339769129536049505715218980346899902083294187091999790080071148874774371642239136386029230794058412443481187100501685099060678076878207159232676928586831243070671175945496570449837401922499343831317689970963635153390292180860883413809403524385172062417638811630070131446292904014820322762253792750356923451894368717008503165833511350330292557227941638787485082203952149983901510781697201138224617810856290515883134593419192088605806787173673363838829425817907091502707515387438542817910858533899817550570993704317730104985364877941183790923001877287334907164258773256979696154881711702158891172735646892443281119224389831092597255843084611280045452776472544287171658207970872904702976412193252184087123766178139717131019811311624948022157525705725046905855215224615127914454621445749344817503188930592666439788870057933154542780733683422244641749794281107454560282276145795069192667054308314345476861845780569820130441347091920909639320766985111265875829798784136106571770179904371628446249506717936478535981608687042707273829421633474593589056968234197535136879439785480410215570205620691450054880181639097857792211046370621355808825418008962791177578732087838899231170919020052149063288259410063028912288078915398344946615219296758531674871623505586057803683296796934435002615472135289506386354817875658778954399242782141861117720341381937597841929630959761883460431023865987347571958932916586071231638315046108396134892635201827930187796697103596179176797063727068065955597121004662182035341727790546493361972886921502879167724034430648475111912180622118216474626959276270465600571803276871336228815303295476555909224261397474338584080151142125349297042610775744647980935485792672219354417759951407267991781341072612722790362374334228268233490841252039210357376730778512855837203399137130555770867764943299476478409104191916700301696873625587654602666431383067605699010231491690872781035205959240284588123719945563454819156532939341709969661685843871692461555497629502552946208677286362040494332359859913371505808914966780713222102517520089155647090968994606450190999845230299159820410834326821436132836166827579208618909794832320148051635038027334389031144567356915045232658786585988876464479720751896271506984340167608090789419437405094638884719700080478663534577173759759481297445783257775753129962492852037509672946281752205929297106724484662792319723556956982887035106554228801511783969237233932329804745528154065671552697587725331048739512103024060578991851115223108513735713331814713515945561663489670189190698423811141815691017620554020205758155306065155011980528470421050421383007184765442869302100913037205325629251273473148677193053161489528194677217678509203450527481441779288195784948850228274226110439265762909211207578075394368478044912395418707690902344166155702069622877414771962339979960042756706194616495467799391096796820214563028834281028143580250858162239826035228307663753354362256790236176269208000187831054185571358685658867481697559717281018790575411071133635183848974471384846106619120038305936335283478575269065152623641362469400859112904191658300998804385708026626711745541294016214398713026046567234478589096080721797083564441431297795153864846297294807079276053373491698907538443613857092771565176326051355726923321317659759145970046820572637801585376329657744435314429948456082998096852491788764883286262728308704924313257859968744442556420451873015993900381287627644992165278649512519101027585897646302839508619496836034795526114484140435387979047973455420862033737342402566457110837475369253615073615981051829921071761921918658534566495014012387213624713359815522600402072872231787929632628243760912884608627325801778298434042382423510663547246886824798048327992928313148546054982323866994559694655449465881109689029660804229568027672377775311755559555322552222347631179095051258825746793503907547928110142928129985062196280808341941120276053420229505959538203659858578663499262221926511251691787107714908924629987428515010789056460080720597093480335192227277890992583721868348864062781432205457417063903057419492097049135745836278811495338195488741397519867203603949164286209752118399438038635273462208677642139382840470673371523941023920980188279895495603054196768257565851061143782641957867852208838557889507610301723493227594639796255702171701467244001984176811293116060792863738703232867059700184726684160688185206919627784057119812937510901988150072334253879310659339495420951482940349259511722226229814445667845431066363905155304659601788086680689377166979379569083106231603675383816787125975084395367954025461139238764903187372139981580684389057620338235530998195976995268942582644217484428954218842723911720088863692579055812121634741463598021194821425097550995634445167596808158992453234522267042906582424616191379290340060645621583075703917318186494538200167156770499852644197072526642453826586504189320023838804179609335128924711583353331066134901545668443583797256667065502653346510231288643163967381097528756952726012842215697393086883227686170218700361629348362025917684418963270598761019912868434387773763483237855859909286855226107540169162737627819487151097475319651429051921783345916731847557976542394113145583968052386256192198694577740156036254103358544602392556381099244769093314560540651181782475850351240799773241965551944769266115985339292038973341184753428024666527734368413225414870371438338733090067668930875522814576377558253062354108191525094512662257865039282090996818963404547668003405206501157075795114150443359112140216329835138861090444518136273390350868946177268965012538409964495912699819482337458493680281893668988783426116692436751878208177553834580474095794215961063541615696208720921955795598261387301983638132043724043868615441478502081740262835676609499327329397635304301059612613008625715613914100433634812766202934051016134560710149994715872899794231371776485765460591758573648209356891899103818965160200762274062963922223084856093988276154486592545083859128386663156478848708643688811222325720388672314523647271484575688904506953492295325805293901050690503679191227080917513312760554415711382752735435457964325934252982833669122659166397040939492515575741497947329919233606843545636424575025241236566945839237384633715400030286522502370407666873130567195985787580793345746201995522595880775719216454071561494937192359920279380118241998205016531154283395081941579802756563208367791528918881082806943856283941097913206547834162030119187016799419805441459317313733545390843869789258750668026078284532041980073088859947607400796724546592955713394232397207985622961425146175840655723473527932019685123334755043742018542207016331519858863294433684952302797620316700008045287197280940479529141541651317470987002311651488159581570437537194327410855284350553651817568675526140538660425837608450182570721441168016010954784211321817774670049004497019750085255240120403876255331183412688982473371731471544972430442060927106563733135880367710867693204164493081866177643734325355471059850782900678023755592584739017092294296277904030263498839553472064086795505141505964427612186028284694591181022137855432324110089184377219815237378577013579097867974553465996466036633709447516603847280206603675557047426758572760909792796310784030596646148279899000174789217512579658755742664172614381035154647706635221861227389231715306630774984311323740368013219215439702592671019228208861198851032085540995581801785834018638380712989495133394771342813450523080897375446638956769674218656583054279220326500384482636632450184392831171012772989589249258132759986895690305343684789115211383125274408111880715508996678847167002400996105624590478584949345363541649260007003017633614449266143902066153639204874494981097605288972455704328361814406989647621841428958274181620856988493698835701386832596652345558710265744380986484204411769586949595623076867431315719282309570385127118750804589082684802735709203226937070191909035110247594195242588940663047027744763956934318892841622747704089192359644893787156621342115978977081294896483867444317723858401893010446554863654478298130842113948818438285205164169735474726089197523314977172718275077776191194869647270276898609538844957310256840125354404357201656090464236091076947623014966391805086051157285770584071478289094163236468056411405057622766559678804221712491946097319138008928437492611606661055931876261719974964657371042558212421136610999491451802324071591235249532229806589211716674828771536401602664169937923423430002514457401561096948214281756649767041633176884471786388565053554086981744321380922788492186407698526500915829532845051785262589369243351899441050488036358832790375452347203594647034086026244203665293842367113617705108331148762634152965233243796517947059308538709537637348642905724058580323496238585503563532670330218511521879214084101747053450735136687929657651611649701829746405036443534498657409206138734830626331799626116848847678088307686911030048081782693151692102216460040472247881131742286265224765682081000980217045798655173947813512505632394457628125529216704621621717637019046595655131384479799012458366206345582649332279681485018054886064681316207956070795188052060757084910759058934495436310389619984298382933465119520475837209172625222084596974458131765993501140191338540701300474221732782005332772495507762443622249728679295364791686069877466001118848119128913066386042201977752974804339203917806608194280866227827126146538345871699108124739697159365362991628462556856635387680274578154090958115913284370454796518940543482558792592372218220505385506726007986116828318112550857857348902933368170058727980889345562399907069751550646484219839685488511300991795053589216402856076952775651992051707728538974302689968664463265459590064400991704782243907414975455951633877326566149883740350867340514943977856764995146267381181963315125499577304458570315142033095286472063124296788695900532434046359024689818579305051585854553229944655185780629442716257267913254000112438943978500447436132355346595720785969640064408544549373439485640703642137775353499703249995450546415886507119784830241681102066021125554371556706403545117888769179192910543745365547334163723143136548260864332986118264973624548783244277884028108793219654820928105741343044563503112430714275417915791758394953966883649142919206754695023488086396524138321712593498471651656892306658100690086932804139098569105803065503801950016743345224459389399473574733236604574118411614807050391023026028060355590683668378571186121585773062817661955215905787495561793687421852652144122129572083967756611168053669401275525190298295999240291594627995693824157281026914865094708285273247449703770170596723647612610444333855451354975586261027867575454283481951121519572359075165456233321270596254381503930992739935617016337292840470552865991123752760210287816865066162229023510357783925010024278733568567345647924589813303265365649354965330433431487495220705679859358290855965432382464120021510448942926060733202161845895975344705936827952257763244282463852952262080433957926913449917198641655288181786748175865119273743199402139725783496617537580533607707587249433574385355708830625327917976583429207215773805958950886655006906989237341803241596730780713693883369299382318048633178094802104003271860051446054605702469383781830420428113913993535188376463280839536088250300787078270645278719079288023318259383344605509154837156032930696000757121256431220648633397688562415487423554384506295703043924272326336308845993154042088566398048340429663369185538967350551597840062457533860752178029848470670076212923270857578297249610675478996323681896913612534326081816304594840369143397850822071707316337561104105979654814309576934987208989152846714728906242893313572298755031542754686482524434127565966492013454520783470029720136511352213510644999459668351596545475104286909193282871416572947669563448236442936018709977481346688502225198368882310394979874132632077706786894943150097089254082789097242793120576618882418844506171256025356006311221802472015900729830870246958899723084306639166074574360140419641047908951043806427214264841404718269700011686337316571329106973498911828790524048662863675173507165828396972138374842477620618777136785569505597809593818012821663884199183050085567358863995738799216410872717971660941988690017044685857921364680795728791532313875893072452135704768654047685991419920120241595787308645952138773915345269117474315860106798352880794783579171591594437441885776360567227340682262566491640831870632444711056691897464057079075725161310490240688272585694847553990703068529915392553819711622808642218647635768427146253389170346345657824964401921357078541593903430552394937408618690659665973492233011186292347503672281049950718146278636472525492550911035984737847519310040479806839140239826673065855564532667247045558089686609524466883235670149284247453006459892728443247519960991177157182225017529331820311578058340242015608143944106240525714289636102525226217956114458715975606609025255791601888859838817232916012049629945801057639862247890479359783174714576405005875067005846897048684188694134511347128347752894609374418570558372258534998426046861638996690872572651040518440775457169254255949104737746788610765247432943191621055914273319596774499282340416712707961054955640844109849108341736936700291487795457371424858370355000205029412534699485750621490022115596090026630457088433301096813324949117322446464736477001226747749741043508084524417935877772673637470521273159929480785294629147023749050257327744805938745421343368690861669903990925982131641601375539087997453101433259939786189964286957397193481298464949065134891401834926125806283537003762897526834167879206887791871039147929753812151947081506352310314294200029966246152170808555423620843772990522370112274322310414753916474437059684372343263087886125320309266603290933927221023639368444642049185917402073532011446697653728973092806498102575505988639846244456678028403735367503673831456752259689551165485092790375946362820349002111251607528081273041430387054250218954165855970657974947290016572841484534276342463963009892442843041232009246993106028050230624282708754937899722573062998041238712982696057381444781369384804933284011765934267806751029636820130901141070489378816140676040426640095094343581067699726767754869743586907433976916511984492773739873117261120158268260444644621555238796610980129075308292490109416587980454332035316834246550428250708350893403741420722775338947731395697969177204173565464825116236722278315918124396766572749909410297516517221687673020540197101861137834611025986938450906144770001207138059359072808858862355416944761281282459339919499376502443537767501619233775403920735224678869597354183743870335483796802073828723877768051782556488153540981862784969319683572308031078949892832766950096436694495750922106304155379080384564832549330789117493570629702941006308443630486286993756774192736665369756679802023708404104354813604082722695054628818509950597962290976619823293794509804866079704795409017058944682555799598783674063020476161915804634404265800841678057220936424108326040943930037313510884152368624311151627645592206810950594705817475722645245072929027967678119724808795627307533137457363835976544015990936136517698137852553588876072005827354275642161428846865128459762919826507804473788747704446675119577402567989135311098980292722160243875346414978254982107744308413559610426551469990397310262566262582786757790514709065366872665352060449073848310415823143293451072989657041124356939920603238534900242911226043958836456716034413454878464686955529313479332256941230781608243566327456101718477509894673440547240782450420200839617369334262280187881971403830387292577261632660766914488885609149418606150996273744445612596941935136378511359008547315561925939218552589283628780429818266501046501935455023857388289859467649785654849417722207872151377114012134247574666927610191664964564887112839789241433779616941692927251438013735705362012991755331195437469190295662984844076158652393391541500100342723754245496804555864617098514198078463345707534205960823854600474398626831497240545046039710509595322134852048652083454663221010101182158509143338232502945773663469808461178841439031561808082264095365450297142693480576352149245303525409793000264844724226257973287108133487845862183480051268032116520934597932902872213129897160433533295972057920180043230922124047215718771141265261669441498443363988487408504541877385608757928594807496694343907676802555062494966550331149196858683115132401170692323780339576806441857699507520348605944573277308967996324245396989051899045349842308094987013039224503270341532303528100614744604441528454027333820654852870746232061594402525363944121972004343476803634773860600533807136845256771485443826154027545905795560242037220607904060892284064224626725122361610479656129781964631649277742964902627178127119281033199563052032536602578402530267860821304001068219439634574796263136749708243547363382256347978393252642235411529196582886093203537221534882269949747236574440978834513924052023104912804592949116793609078805127666377219665019560187690897395260882640726491425613363780891721769759318554906474184178557774778978943934977360632202854253706627783578769951760520819262338474256321717813638829384629996051868953746155437927442410267177199696665535368717348286796444748274157411663957422747624010820271783812105116184681637594528282933899657753787296501889092394141194951813999035868317605632996803934366810897606882819628836305448104833634536551532951005307605005909346158205827576292168651802604943647834507093531244078206285907451866905401695658399621818287037020450490891128495158350469184158222757891346842321995933245286765174262144084436782918388824091688218945373859216637915709691774101910966930199113496624692001798473804353407949791535224587287031280175683611549656146880401322191500302850502834414874540764770577757382997625890970007518612001968142461646321500044388431479462824589109420787212389353934474730629257058720541637348766488651420292800157794481866273987880108981383577356320141046700224178351307853890962882932313660577672862366780294918021610447976884741020102771945683086006473048977207289836671825905909403556430941401675232387141539740557528268800021927451969240288490161827801463944831791977622380430227415893451234461069768519904197499560300314441929485387712911935877781851312957616242067146980104806416334288437152322469102580584351627489293972929803456334189588988995397906657132257716280149499892900062457721832499186659880201134723860333493723798467220817626512777928472388676522173219346223444574365692771412039240791190650541290619935431792324857659164480494891260799904239719280790456328681440052663931861859997267320468201291398837524040978036166946642040683133094857335635159920556939802221669878397985890892012546727226057384287333759339082455791656944211884031289131845426164582969208516972180699808808606064077479335453951536746248793561659099668535361699506848572634669447793019817862970898962795969372849602853352618819408345168706151184507475614793342548952513341100342453076836892304195030573783750619026573551440929044028691001514785120577597019575628392890566159845850806698387031983104080428812328059356807383445708969015215501768433838159358380483526759396442451336325112112234606747397498661881260665005310290538982599101159379865057561358083583728604505042521722746574823001738596389986701214088518974998698483047556238916813119683558697320051184173017508170634012060968053043830890901204760157971290509236713492792273076393463268966603821644123942547375667713112869645563361760467557639360953801345499519543051016841255790374884900510430906344341415163167192176336607168356415535788844712390029540487580935376143035452462706332666849521250147868452167324296419582828033335541566115994148983497996137670774144559769487202575724789052508365819508542881458124092821618708320391795764849832231432776526991398793389699215249092432475805419088573273871273029669143428165892861404865496379134532327880833227658069945452860755057700388054345080845765833823610049100370098856018322242477673306935929992227096583703684982864289321338363517139802034098960314446519603655717559933482880701012077595164722196922760539055809984177306400525863202798770918336959496456287976532002921453789797718063293021798504264841959219926854425534460647913704220116105905123558275395855329416782567024302238914583506394677009177946258696657743798336579789976969613275468477308571318380971620676184830047182783833634516957371143626050025232280254183255121873492662476886746095694716730946919922897596836197082202640151007873697919714356820527142881329780021547878130663324295626816197229234947856411389922663708206879786280568848681455353403935120915741387171674917262483411145590174587011244363308003578014735350325251998456252400885325775089490581790790242198698015467638505697738670511969492709481911708517472642764603669100735922478867609887298257550785968116218509372810121949119636526497329168321293888557750118087938236637510512631226698502783179269967005183664485287982542078390185447035251175987712102734714536973742573682977673094556998987072260098387855444789764510525954452870801686754704747905200402619076447527098559369121852437189588248415709408266571176760418741114880327830131982943409371045075040471521947284309984684737750636622943600118279156083503315015669431665599555588623252920856798667590963922045154460038456995977664369655362276414698225502016368494576149957139625307432874938786991625500302490348509517899077034543241843179353944079817305637843826424235340214026540834761862533878198868204921821118816653378085965689951748391896917538321327114401533307943829508507117660680100710993856558639272586504326585587966241400073687361181841463484283059015159540918278087761863246267875693308177002814282883953871588155619163805146317805105766102349877031626918056277025104836963864420136979178942826116150481756119393112317935359954095508088551293460320488390688317325340785457377434208644711052248984483121100852200453825344493042054596674042944658788870944347646663938640399991807533104755024396207052137825059069620427437416660641675726157480196031016460480339315087549120418399525363651311710423715764557917656138151997600985231042460992638196148464175615690302329631905880946210375882258897992322220684409187884843164615674745586067906378826385481407402939022685193775084154039152484042688114769846112202968944763985342494280878773893518980197389117646694228887717634309893268727082832088601101593407464348226651394570468753642342606777465049377761710627670801799137916697749737289980974689503729334135532549207007162683438795997913909243072325005890374875669592571655714071572392992091503373565369295250811178177080492515478789847627163309871864332912884128700205213352255078345428749813729629426283032658524857592696971968941226764492098808910951283278775801493816639833525148211494716327317961828101505071920952386344516447604947886966039703108951247335261553956364974727243647268876680270941907344934924922298977280277958737541494390025438535690134750099808191521561057293377405907945777367872801932400974402756509290005494267729255351286056287596105267240421143340119693911457495804444736221870389119095268293958884789027218433183278557240112244141961707541725198134292245682146899860151338035952226923154534138693197977545148350469106991984332576513245154857573282545046042220461871292105985322683240058288690720539857744652296344482308296924846409199441896607897125238347036471512088232595609527218596120743014363929060033586843551141431930402954295655381932795046856049207098656349676807374380121844617241411294440673371923886241901204674673432116015536541920126719633473625626106082562936847988922188684305045081737467964119684432786077718708735767081552834111603176866823023772162547768045565820302279486374638656727076222871923557366454756893541552045533462431606608923512482405605441006976174267102960529465379424035415671490081196557986348554848783414012212104897390403270257071872898346796836011030566304781320266790849170676281202298944897640204819253678085381282213365803094770393295552163581543445026032032801267143528065208969613381296677990919531262741778590858160395666715189113771880694485295627075048129445914077859231888360039941136210863551865928423931746121539380413507538368439135037331845261398073419123360163694964853028815763538299841447967561157836183911465550558823316037769888515494475215965785883563171905895532372160504815898094044198060678624174967606367976849541534287987869132065043965501478828982729844628410749269275361144396665290895067385953122018116751965275132392107814244508325316388215603979154820098087592266894370018782079281869711992614409840382865686215837337053013386408215215530444159812602990967125502329143287902312395536761152213067097863700194685990726205365748307639863804802626006442658330462545523390942715330120562607264843919873871400773710762545935211641687674630669297184146404410235088396814105953286005168191815899323176021383818348730466039983581573443290742446904572929672301853310641674137926749512397112156199025987682528678917538380072764364766289140296876250080182848732279178351732195451856127235374537330163655411192611402511929428261859870667216709413593423454164571634632824287988040621949356248984674300763786613521002467298735806400402930263619434263959679675809666362462101784042371438701579274307294260565832897871984152875786596269412247427316900121859404266400521923346965687529053279308810938329153985766578399715167590556064418669307951863947814281095818446088749090177954039017700915471122165848051631448143134953867521472786994368917856860054534697648980576010489374626714865310492768961288519654861105707421729784871987055407736417661414437878857057256544543576531128429534681029455038010267502111601199842814720579412652429276299282470319926672913452260664856566316812553331669769430380579904866248647218136258213153503811936955556091962622176915671157906246352187534287310671342750406244683937917930464928787269395158604300898406977028024589323666647343220938341584267527662927387247303757023378712833703394624070405491517068645598714048597364968297025374767696321999290065549723206535030551123299531215167856365531315376595602285167857222930200167357939227658283843916350004611981757446875019280412660560358342845568293809396302577460678218007581074638184122179911853472897434241210302356089412337760124762839433932896077553041672074018479783979960621286075112125349094664621527337958823507417395540314778372627823193739753742864049858482265158737905813147980587917968328715454015534550129273033905494314748357869518046340579828862444602617869460018937714556235673672165097621540305356483186597299093373775648653154477754841244552298348135994597057906029588302557458494051626663349924144339329459326542477215097805198753984816419980267463661108450560126255255697914374665146748469421206620010193619243842934851601846088517161065728042127946591259253883541876733460034308756257255718718188942830772215295229094079933483047148640575869777963980863277021118531771579952465650093394584428345372780463823582392352311920245232068639565994026467479985393417937069148541777548136510554007516153727247473094880875301626617810313949319288052572328415955145918816796544997001731762618457293130444061940857590420233289475132704128793811086029887969123965176116960408676668571400465771817181234304550613354729781678309129196269918197914128825857411282079501977981961517558671326275432810271813223936284564412479971806555308498330922868354106176693318202408777038874137429935778469379436011053661283965330220631284807403329745100878322718205851927869574414515282379606653564381677028681703917384232896585309318412343542378445645304534597464499580343236945482003538649801206756222266609037795016291741334005759613607911275856798897857289886254510176610483534901427998211555967448686443997160965457728713427468648778241395781051622592978087292651104592336728677382691750853856986252459133196705476926762759752813421530334562112296579104703160616984743797277282895382496841544950855132519224021684424794321648907716147823164332284374383321108242372487051144973696914415138025760328070614120409982199329695292206434847072275000946806211466927309002946724850037118812011431753237394691047864385573730558713706858613750320749891809346872773554242655442436489442927886601502757091686707347901234772891537781638280514303788292093598569791255409333912267847923523983010211455367955039487422942240307085499342370124521606135472610135476468690593093882995633507565212088529537330865221331227100668093138786554099776161058961531189897787779256765941289879176285551758948167645643101597872664074280437402521707444481990719581041518308538182986637176471542982746405827808629625471643498997787455297161986940183123378084465688456348710615685539739345695422896713002386117164523939072645256282661094314134156288748039854590124775245399267821545771821752944503323116730581151121847557729305066283384705455474446558306177472130092215416890673495105252934260110796714209427522581588022827362798621536909386759509870077585699375948645746456820464462248652154720762033931233077503364570621848985350140829140290836728734965824050431879530449883296107299903846038821917890664126928994285554548960930321025704631509975500061009954173963117330988059635507935309547423192234828339878121408602409653614850567920896677933871386522290147779628665425671663556420353879703336081113815865783630332566885671005120917709373381996977272530597427125452555615399402851762737154130728018410053667356471949750483451924513139863202936080280325876496564233526962851613815431395253086716169621474626395129302764711629676565673588408001771923535183807757025462181408052327320953152817314220606462697126566110516030167945922718932900185483015390287136820975984281788273398801379529524896851759677781150864819412939977168078917455575939012550528897236700242842349139268127318427884458917330102399761102562068588267660702086697388426550366345156247967710996285243948803784923575132411987822686244257646745115822072241854900788253816773254985397193263452961826214049181499342482895156468775552915228048969732019381761631460438948806958047020515262551927553614907643893767812752776901357527821116594976617875265140598061283661177202332989171597547853527941211944999239924189964047746681177806028740246125783548870555651021431933895838604708962343759010096027777123726549379375945038951629383469349314045666995233742928425209419354140111985116403903596847299323718137321973153378380058521229369108034851065737186409911975879928234183682807254247974358567374904583959560070064927495289525602443344078961898772131793921694333465601967642816069744332105900411332483948326236552578787112748571480475154276448677313426332746451779648353845576646332647198508743400716341231312814889868609367509693349371697769643667866634933053963203748307637900315367803891329538337696650852496435912953461651036385970996597606509983173256679762670551809124585863718897615456696895428179877438218500187343598676742364826110133732548836609343118929167454919240935724441851031316424731357580725649308052967461476243562844820251580324323483291173068030688723733293434346099143968831092463354499528678542523779015806772310754689342236400489471195863703743005732796453881129401601462573010706952373454378969002873028543793412684032122562276518523204799676365745337262910468248325273432266993162001773580294925776038769613221050640741298645242062598740137861210055353078303583614054225364207179713144899704318638672454500284749082120545211942879097436138098507348005558932732303041572512432889666501479941091349649720941920166890854821700020374642508427522117129274966406030988575319306484831682658770478943136086270763035637923260544349771546888720105135656718367090836557833308340291863687979640803666842559188152312697490561495120943512985674275203393268893011726595789271820003761362100807047247504716804922825444530302131705124584431162906180040853907170061901901946322772186379876896922846335803658534723964804515379040511246106041901356418868951855018769959524617164145613668553766588064727702883159827055425120720698011659053939165881274848093379339898431005945449382387751299273443038473145116273972381433344709774265683309279026756191626703494842635253704926276320766097114910919832100403661368280629860673967431588865242568880612439682014831473901851715546426687948474371656536027590301996559446738212788473277971325204299115426978312126518139306687286104267278923034524010645229080414628155794171860512575620604566823829993460180304282807885300086888373365086688185246087710128456752222992186979922668057721341589195410419352815039041054789781109446656967973907736135692259824522828271479840120207084412963156025336292398964231465259997356254959787363628918971066486400669325819167617604088380694694106956220863214804278075194970028165002501317192349237859093144458792385202658836044735433713424157605319778705666766654783196330446909117472754653823080720641116875750091358950577747879137280372286460851678472368806187166496455298395973139390896697199276138430840200836012244323336521466362698201765188273665660632792355413324046092680292971485606310636676063848076305362016123729518408716877755837083015815101468980305660923974855821362909231352232144721573714939757228166458932900294412632032103801081186459323495788872963145305243889450854003062853648279698907149915560740913648550126208653128311259540968938639440023319539016392659841943037765335438060539594166256187990212968920395240651369477388515677504222889187199729524793824396960033202037169490632800931184689069602247208086297183064148351794365299140634974807632000977273338069223442594785068218975596201820357739862822203100108911676492909816152241032446013212387044104634143497145455652814317381008802816057251493936707200286164919085244793216161550829978305506700581948478423913218395430261566843939443546989927312171999455970235264271135646566932643956420963301499595330754252493379187890967661568426168517337528447298016374053453950398352189324690591739351955063637643115052744217384019777236380092992742044412575286500823778313670360266143399851230884849400866693841108378065156450609894240042998769870517488230319814458723205658064764605976052315817815265408856363797407405646900577295502234818975173372098809541675511203746438261291859352813149916909071389339364698109014656310412463795451106842738382684188677998068605934687097707060045260436085930921994006370460389827452200535221866603347198682146944577701539570391109628442701357263365314932327920002007541318731565825113195593634392494144144158617877860209190465520283795641275745319770407824708429011989877902559708156978229799650886460822314367763103692641080465652769582167399086804943675916186432358193001795992783458144673005511073705032613271501748672918593890022252796039109585327750043144190473550659500525734910847202694319864621511659232485310666448028740065511195236762782693956065742183177145693317483569161809732896094314026418994316355356053714399672297936242655074869832499540730720143371249362420307832278897871301484485266114830699671771042313548938437530233531560698452092719673531227460871137405968640747816307326840914423068333164535653722579661056074468466328304601152324224942713721727222937494987668571834387887420473156947653692851777728192563463157930983456666766836701807343487739561513581928086581547101367374052041185999729004647530783049921046704479093665125104133695899935818803893745483269512134304311485276440610864611225327780380590549669972316824176454799811132830828183227115501807494013452613640142872941444294276926934488274374006083857517421422173858821494404156025719406289609395582473486690915824947719909973893323818768761853344328394728849505366629358936831208987378313422869860916248319549290543881784345708345461576032119534758914473716949670564966109446252470671585665798129130582699245000197376617309492315429538972472251477607635169518203412157283840058459953172044713904941871663731238877575243083608017080904824473274823877442319802439283307293057463432780087440985258643400816070698044980541714107700484930699587490315265486094422920591393119717946552039414575459949195297833505128414197397355827953497446143560524155863476801858724274332262958230042448085860062720280391762511968785506450867681481486523209311683089256937698511843447855118795541044072245295917623170565938985552665869643116099245825838850453269292733886322872555971193554087802359404709880693198281652299029796870382970253192753204572169478625698272107154839997948565798047178776626872019812859249938825642561475149826912777791847244954851559933795124453098309197147526295513346408717074865307892863969511910216388979263806386800198277499074578408174572472524793537509126661646164937657158400955121851998710437765656514774969481503221740203376863043764340624935740920269767856168789381193152152488105248862039409799058529219948204194467547931914268723820000260910403457112792238445276693446416955961713398969984843336747566257822725074473216004149573449624395886274326647940422246152814933635182703667381684367719099698400038073239730991095862463092584529328130017177891732465439704384084253701190024664999214366319927251719692762553128137437939081899321196204345330632029909536798849642976808797514493951762068614927466645197121301511880322131664382209909853601448893956311911238575202243510325498402230950371441543738433334129615398476333456911496775615152887068373540547655134812263057754379560363041818594329759018974948717912965649759817929841017101809081664675085206135961935855541388178183273594735561405943384469347032923944123320209408880022618349655613863916423705315129982744863194684719778851414848394148797427194330360416153905257523865260246747915141579995628579575535412307248369907391990215360955502573452919721171546229069980461633876570352573626650909430750944118444402228622987615548189849865925344787314687078281029936277860573385581458011772145579593558823082026591824541277646753800822739521483154539409087826983323921706796074885623221201051868334092540503666682006388216833987931245827680333741764463855294431935268924849271879205577904408669422599545046058581452497994257077381438069858777774742797745284764075159983607977128668339027918339660744642569365400772058265503170121171097902185048981420441630840436523868437479000502652876832668755351890371052253906311551011781395103709191711495669084107782343102085305935881515945615514810245342277827322829516161987218272918312337312990907710437154200331699531062801923786764977604432495283747541399732253164752077458706164495419324302099443255450295514897791112442253713507661490304226252116495100977183689014516338672960103940563364855633846040851105154812953558130862029560566766084191573685134297407538929417227512970625309066581823943566273231850137452170521052468346957303425323300283797323579548019494185172882194667587716077749966115682304282005172260188230191117812120487895421433624964869246583444290246024260264547218053963314593926476681149446256017720596568851672156982481198263155279321934356251800347784323652288147238961922600025880605464369417408566664961695147923778155607359240572903130641593556499152887510248767097345517504107509387987597406468601643033330438187529434665014950782308060152201821446457375243388691293125702451504108221121290365622032251529925836948938799101595299605770726343492704499970168880467675702848339183565581506632028765129900801593780526873711477453114176537820009056169258136592202987194625369695094711575317519275945048218681351657346838647018453482474443754395488608591719542229235012778752819068763296398066666945045591871442123007177846475237244411174950048012949990513578019770538472289973254484939788978482274450396243844628625011227949955517202683681160493392706870877702191483927264382677892743454529141179476228922305914870623277745666626601415619789179899600202556363598063438877530550147126896748148844020676009716930070351800722224161957252638098966943153927717877948901424468991339542526865229400149973784225970025444172544675695772308417496810937097158892114281959188055207304796728964308220046151653926215363729198816026392576488818009836482883882025411309277000487325780819094413687639402970612178987618324467842762174290567517988785826917452603978835823199469300793130892115532442845902523616217237762757880581015873638481546936027357920147203998801027720515786488625877793373863727984627241583042410381877675443383919102313154494195885588122790785528563475030913114907873599824254503107079427047370596199154262919240557027963037819252868560970141949836820834557435774698692758651503935752975246503126219700681250593298177997418004001298285786025354524213123360099736677109334734541260727832705508864100623559410632116024386584516327752828385803397152009552863845013631142971034981124247991612906795158672087381245281287805612446111226703231814058064646737259747013222563282949091007880016717561843634529848510469121909281051913420967678357367337553312163117978280186314347991634508882165050471894648803117491032240662641806505003377656874259533128903913134591551048618030664386112634105034125718168576628383600176528521258849333907628233946128365476046523637796767173257810622002163856126343914453293932011114978150056956088315800150179640591477463983874095103506551708474838368294359188456220132451931792192923080870253231100127600559595224508060287854606264267046216362509704585898040075398681955521458982132888520835308587006030565821592515901180570621233259148019484487214235159440585805474409441482517567513045163124766763082011282280959511497794923041497794295447797935381566110538112212179693404392216579058042006626811920939105758226601466229815514113110448593399638052520366253665726282877060747181929348631359582419074228655488009528105733224631563525018832754667290409052899036912790887923386221057343388989222025083292301316526154406656317545817769764896093770894909626973402875159989350406407000582602317410470332325812938631771579719428056002525841031315267425731248228744726949686254957668442007858604332916584669229833486570409284383671026995019513230445632848873663962694902180617061880800640684440163333551095151387735332372451095394255513572901874133738174556496590878338064342549658154654095863804176402086315273978513846749236643918733772798027407781952009352386367092274288364351844554942615125082370006309666896575006715831045264567830639568018668318077163682101325078048085790042099362726329629644767705835621922634077039971592822075267197332534968222936995824635036284542015538508535780015212733599207516283477966511136098485074655845850460789135530354029773782541682780213396870657057470886146681607134058589509277525131630165722512269648115220883721629517789438707962946453880723624370237866353970782440615876152204702858929042265032447596440835471281865769910142017135150746732106518017541879654370559502527156143701694612872253962659832404388309888962759279604812285653621153215602592790164998902263922523632847455863408015073667610465037463418925090746099629182488304718710993445631720479823339019409064817489115208061258590542480264325568181744947796546172093812520690222687969556444844425252437729563014185601706442525980524980468297329465411418785486336518911433906559371580784079949645379902130519127834704144407356360735544998019930044370016109372892469854558641439155699744870605200660198462415839325284956184249282338187185503691670539844537616817068210403000486102452581738708994703573789149291163479106759621344367761293378857263643031540855277296537016690137869226048827335765280647850522278312673465259819763159091957665998650190344709579433737644009251398410417903190699351228492090649968843147018388729025955180398408911797889763398099056215162964507480762211823981502227258012713029861923336651621874569727107282765404363997392138375333556606832410267855282905820380557531357966953164220294601337250629945356363252676243277999577873828404124293294854591266650864534407120178301941465920635940218930990494158030319845470299564669538283173914497112952011800298178813116149210346202838552748247410096513879149178123527788154401359100861945351384009421176958986485433012033423939362559648021389132732572533515654240639565955679604562528004828141685807508127038890453613779656356214618917862267963966772776911151008719850770871000402852831668810281842406973613582509466312186857833789737506133606939691416391015236776709576723233373780012985872572467213316026031308691418636681694775275017463509154445500830038968274084097837672140817922113347872429099252744719514261167284934503294143732063835622890414050337784800103891126886099286140525488267017488048502649281941508865424072488630219597655566091382457692335006125223943336530462103869850930244877099369372574276150815059057810875979423281388260686572442415324832601103463234419337701182531546672676248140938461562264525134449742298154453252679843567494469954788588668453736563392510091413575421412718510678775227967500671597654606272674929225135830828853625861592418872513332422765594985098785087496123074991148007489226550240423032238719856775490216871339172592691050537885439998964336919949243812369211306074880945140870982724902516292240118915071921111018796283413548215715027893535538484420826961256749907069913554393970150646169218544048470814963325440948449530907014330940175824329031015753574564486939691671692237187061815248819900643636934234955078162085609368323397697819225424720211837283810217530811476053561636025633833807743217079434603328980108327364030909458394812207045685864616777600747271484473262358034346697112621201743325359867128969627478854617294463293321740150622905315943014903252755714537214897167717687407576866629535256513019768053584262070652122667333740347044924624666572452021772254045183037671378463510642405877484598263883440347623121322389246791331493295187522764051367239309593168391619761660122179303247835205135672264590202488877926968228236855270400450503259013757512254500174000365010482518532079447102328280529698414552419740156999601853497761899145060725741600404862620608703034654634309453041599230658076046436395295826989757388355434950961839722510033130143018205370658532769601892544802474014736699170164666665419875116030586798075883416766373476037305554761208515299926123762025406252222769288584337389707726916671005270811956736065677366200257739212772136990150897297352084236969576535686038858379411385118444592481857072708592630957136364866948309359134638164181881086938520118025570727934651191862808389417415404945518781528043422967006844347014674949409971071976454452214274683555855815102902963893198088893029190823513044403273343503267068382438985308673214499909871507132978204403822251360700025178590993994072365983045966283171631315731869238463993662799777332359612757149706318023177892207240574457981559314947514340073473314470409091575252888026979108838135403323791554760496726827649623910976951008550631300296496420401347675913386828858745855143006994702787209821703945000283608283222627311561801289992829062289170897011379736963431306488320823221016298796244870696421260805768132251766430150618137882718760955289178205536976419691435258712223464041908476742135699509065939634743590512585202303053651029713102369203066871817099368121635489717748343985551481426392596694744804076047954516771694988327742339984464182601411242930974383149253499350358776002690925314028114387359087767104447737627996895416611319940686670961974389875391568801733342430614487870286786902010669817543313716407911852066321273803189675000867237818163552538219648533477500255620166946955484319665564678441264264853184581729320106808501934488480038849006041034520234966984652831822600552234269471988343038526793676020730541746830281250607186379894114898136729636086079704058143166708652775031627748182514447892745702032947296460933095824351819995602865851313619731289793531512816217262537494807803226416620250370089837183062408426610983072131947339329317321260697614087666328214329216962800265054746013016401597819436883395134580761809676207632003569551091214993571548953027776091218023173415615768845733139889796568897235980147925875801567366944321728499872381496122344879184512429748512240116284511643623427243096707624139188026593194914661473659031373953935416229116312208097601798545079546390054437837768660959483469853862941462398033171400032721616289528949713004374071524698258516011542442644831129313694856623723830438405661748004726265853980303754038357047869941628480786429676957883844544747445821848876745072670795219990427271959636454474235016303188246519777365036338301595512638445979704994318339181584463425842249060028703128098154484512884655843969978630642732593626206653642579169999891151492038376169552322860438908782509583198297625511094807784209225665158836516442523489209696019550927239690602500918764274762402282324568983467312081019962642293295392157204571120117835067641780917375026242946364404064682265789317407076806078680971074617226709408601376691532907410548065010560844935799097721938570564202068802180616604002630541050419385695767639270519652144932685748286722628988241377891991888078716585366021800253801924196035036256848808702241864221789568673240570147832045952410927586013299779640620531321444636813664324157565559670464392521178557600086572532763185188011852128414460302155658683047138331470112499899948436440943640732259330809050173744764324364124842622295431542653915928503917282492905360661663114707804303200821646481341856523225005711121829840198719171992570402566398790935107829310731841123146312874473930910118393773791729243900896047933478485946130399157529215834282025774460035523927995000895996161984702418527077160446514622975086240355138830861590132661395041156024058105571166591686494575685978115026121359006096575448685171847110171294926191385648376775820420526021243871048832397041577591687042595636047628460515629277807110520013956457305244737204323384053527838964142935754125787131143433850527327866754034479776584751698564080090194166434817678563310678675578979690540169699910857410388539706309116302551953142387586912623446684171267908991077776095154981938446053313013201296417519753821335568840259382403133093964438390102257270250629041171790649994153793637086610550095581397988388500760023859111170993158917039662483647462173527726808479584904053270875366236937293594850573558432144610598149130436189303850693069919540118603787925109442806628975793787031636444153051449669217547455232146771899666279012634982785779673839930198458285098819167256839022306647415633670054004342437752739522535580670532921373563553556159888971895369167049099203621449520543393696934122241309128175635050035659867429613425228500381885540499818669538354025688690496055319625974984745110499531316677696692114429321452471860639500422318941536980668363156578265817378908986269742467148933721439201751365526732810147710921154366707596573851817346277273322978606943045319512233700182111235584506609884573428024116706884637915035366058467329875493493935822616767548902087849495441166043877760991987267307485892713360600465878178239521201545168249831394962171892769483715750801812503107215610539335744453012890204146805707537040566421867617878690192293084867267779203158370702316945849249185893640916781609777444587724309146514451368970495270270858482549609901978975027738852512922854363827682662554283613550410779881126113467405823348041703055122869786361856197738740672543207319077788545037225928433570244259115131597489844837062911412017204538348272689288803592697909254790390550497984779065582381835728161655370414280492342858630419998976888116605765451406972630077291712911967287941970199218519177458807681322520663360147610482096092671147586934454132581904959474985290083301046540214146040429455772156855409898810577030975789189959224694774980997427799238961998794862418072298342337802700583194015303905881905420262119002583600891551446851975503046544952108157373907022614113022707702646600313820508913614351425082527803072389646617006499104061510046979241528921503857655854444600206214629545308287668725974068616187211515580088105385401560922213377878780988821009072971675987097942847399306548510793683628893142945223042713686354781489431954980663041047100090300482769722755910005765058172418409522765701450451544830885817407922520066653433397218523256787300293200673074625652323320005420782240208628093213906808548159293790666908311001348424969160577979144885408080646429615011761752447923045626933828824634605297923628573685320756565381864249676847578834877813370637407864044275174983868537201664831820758752432295113790780256587329461997730656013359075792979458229507160336560666281076998184583032534920742815608507714339537093810612259392322035063814454915505186939653737455257513074298756545013726241990084203909844710563109870494073183578481983325291608513674742197604503636313322496860701275820002940473839359451099648373475028587467199359692927858815870255139308281988843895027691464123417202460657946884260979332981737773455323455345761762969023991063429496551237033583260754872814558660736029467381696731495027848356589938755676640514597642771725313466515914163600332641368105547883106613247216279933642145000118906183134183212755853062353946173381608381934280369000609993568597941993037995193949260456674475459723915511064791676722701608127583517705354613243257174111402236288401908510660821268669018842165377751623805176743427272002623537166872661492588471848657187402633236969042386426948873687618580811680009466946236600529350829625451370534466416605046389984084377486651935764436734601565190746842798556518239532051933492639815263348542133771077109071348570424838961239378732236971029754564994397358413906254095833665039061106792125886148427802697428362798640881420599794321479172157244961553410513191186820587859934102373767679303994264295229812696326947469220622467133141637317029874729271200018219223212258619100086986697155793935459352412780375649739643413829113869112582473489488112903785636278504915557925893134471115362445633600298279406024183163159831075369302920715629500608739773991687964476235172687581416752449774071293952938643257602072260109469389599915155520514248730111140134178409460550794924803851866391525627747699454953020486196117564884922162536150793849341406363014325620799850534782491494777044778755809291149336225928912755440539155243951197059725932635154433721407480642100119742245832642291069727765888813976661149581618109459142434950447878775895454536269409685445610887254264924010766851166396838692152160361653914673620479224150174607684480518179373962614708264045452096728446068976051526066001125837618697995156269879287975968130754816625155983508611760983120144040670308050742512205556488186103940009730907490252786404285852738139699012453387337556090787299867190096157085737858806061791790123408923985588068752184186222347820647504772271859851885825168134597298617120499336537983836674795876188129517560826681008634401191478398132270208103165661974475474061279743133762522485379845407550937341301660991514495229057713529701229675423566910234202663476527835730364432443920863193948051143428180299864191208375979992783763147844328017405928089489389945126497397529173601524600910047378264156293929852519511699336007860907344122276405607593150993403487153125507512553232822569627564774786559505864437407607215016665423771100515478401323834138136642998120638594351953150282774329022799691872387344951391609660332970957916100591036755511983563824562931363401756902060045893352810665681593952161702158801881691755101391971562613692877034072930190212612120169584595372240266475093932330700335090342906756961482917167727394987438268730005079100946989615694363396969913616570679281198638639007290298464542890121065389387975754527597188287487532777107532212863374575756302074632774307906743797307253602281293428980088021077067427382765414580925128991887915081658941464789836591716213811956937979864532289826693954557402247085781214610582201470503751251502442528040570297762670727301309076234706649610094763040578360048058657992580848301726013414923202319651622711345702044903459005023857544955176451368617013892927836549339559682941044854992465883889298924204341333137494283724228272184745703619355906778329088103849522532004048726160166894829601954179805826095198679316031943090902270890958489500502499322908546299602467190600650993330416321593342220398499015527008853261921284478985609847219102641936041391744024944718140410228552094203726857972389794245180673166498542311451920601423026065422231349619379126224952939917693690672226820444808251201317836717261041739864228984760042323322226669108022876071038407647166049490317784432073393511760515060643072261231633215015530541985728785521611150899249665541912159988887661638989699008849486769355631795461575832714075741093555516465708494501918683594889018373872258763456678547069033553868051336429899121363275029377805250884707427615718526247106602994678398283460813038973852436515304286301419820765191634152097945862113429336787281988927041343931038001075021890460198835902155757731805842459291507927456421057401793049406334708135451217758313977010304546588189644680407485112378077529176441838107020707689496629276400497007413272255220511404603865035399424751543205763886660697172605906883845554558772652202177200571194117234454427675951457799305964572589444266940766918113931999420920389023664625665004131291399575345290482716977532077310765582510183024600331230295723764444309061116869464027680033292578842159037153690036341903934014933841823798920697151995091596820934385131372328277567925631433747534200347553333908152091256167301938325116212112337054147447339536326249496375293952504426995980768478842936274615094383528125654570993761997057761768594042345539843542358251912527526712264155206918967938687519297369619918341416430890050584401337775251016466282950662428486493187470144596833378538416630322682693627189994621905561634011184215157392325250276750521626223787532558444470998655352039988996001030902141701364467132074944377021317577892343886721307970961225972075784078403958297499372358112536501411704547979013191646280606570877733586629828360872531160163536564835588354150773501419731041183470583902777451950571805150561811093455824155549146351151916631818808585027284359048370873740249258345754580602144837144923237119176378039189284811953650953074672605762852403338647827601282656387305103946420278272785445122437266909102451704416973112300263121149070278234489760626203525924115454871296063751555055708350383004882439411934257674075188976426269748200447957284116113655252593770344024116255892425702447658812937675175439041788642252040516574695386385328412640236604741637350312066918964439631275742796228956248016957516100204906961537731164608640912404555369507427714816126295100137202041784010859618947736619639755807707219228415736275046250962117668491820566454745656512740310817102136968916843323287415714123420772242421686989105720306451522329975079401544940835701833413359996232496266203950083783444853420370860273279859087046027803332641083236450706853237192462104399298424651606973697690387528636819310896846224509976681862307323948164799156648318413125517131016143964681183769075858763119879012278530623311802853976305985168097457172777297971406021970262944033323981501179680182929882251998318379532427608363964206364361266948935276966859445490117565289029645958332028030834902130712051974644394916290761717384724452948561336720184468310010991640113261740522695036499965506392203208058167767615659752948199282118875841099278696301984946886675231051822603841694148579077456784987689850304988045776489406458650877997740747562807332763221369681215383891134810506323601370703212251764362426885250253532557935740497754865815261878560990768254630008492570957987273001324656540281591107302720810646514580621670152135602210108619056745109795582991446690127249856357897979171737025416967457524496384512712142448445934653792203508178070056288169352665716274666745815259190530890802509161061185484689195553653438453996736739168794153330261953358660498848346477936656503966837670754621512040986719081783775168665367248393831501667823185327839125371891225893717799179487040330274425583009276570600043178274318971017941431910282419132848743981569419916766197216368587323155537816873501478162798912869942550532013750374682132172256999997966634697566137229713193293030212816330590883794502486607452880662745282430412287085905426089934016927187230833154906288151844257580533113044264859470515008713282892592559467668642244206335393954522309477124576594448640583439511805675718746973659884181318464775447478537149156823548190292567578428407882037618148804711281012480152279993279788937586708936277222942748651886078862765912240906866345799461862795205898161485379979991253641367570277083033754456935841741897641423218751623101923602311822120204220657424135816110726620337142386558535288187279982941815408237454820439627895638800985439957611410203798691222396799645113031195647848867075208498004266043771731363883194869008171243937222199723888466210821770423857438712271329395336330590746175293703033962164046862395987557566902461867224453552791844951363055122334697284393026585434387357283816165513984932564701894897503636197229664537534112968182999838105039185984365956134417109664971800358146519216515041468542007719082332814795891157920554877231780618795094336642362372663145186185677349192971897218378604509923222126714442474631316908641927841687691728298866410618803697696949906438621288616133725838115428797854227687367928023919609842376428937336133896312729453387016462125396908654093797005283996477753201557343751369895609781175083867654585029816557216839161159682740853890905846253680087261266589424080313077193986308776992312205883102048874004092927300413350304872806464002739058911552558820231219681107701994956489789904089746241852624126018305436855580360559750405343050050411964113940740860744331137198725271148785359858711545444078897703401765086949171719180813316118743523324147242256337471709174628623493360113513450827082682684746189015203116409211795571940053271184813991925030296629038813149554366595527940842728422051371760771156367442432210743962870970916886194491397185037743531161942197347567311316413085452834721912418584534839767192863825379726966519937996936936790206591506299414187240582341436601896309124066552431364547633721232335506989474521791200297300804549556809617077483118330381105448499309253032131288831719924456164857318147009003889383113228784236434240380493715793909865343128952959834415320507313429511943493465728803381865847046194132760416991821077597138174862192908279824860356503631837113673410586411434613650162325611350995771426251640871929403535159626759453471752565673722859810413985631083369871224804035697544083159692596187001539490359067681128507037761845259787209512967899726248577248082173013585206641562453170948959795776777364640055178587888074270870969171565507889442311563609186511189360396987517502142169939198230587740326779792188083637177116131722185719174215982103373637895435202902424631561000078627734717809072486287755255001765108761313532281998921708328371990016120701011127401726193873033193778215819722024645429964930910153008788393810290138301168614830526837147336016714225468227564570940074433901899961136014749315805834777162653448629925836841215138928343931276597806991491936043952280230817941669048117310733466403953491172565998600263524619120831445151076950240547075610523046033386589125074692246437129235696910687443397119567893958012527255066802191581353541791472707402637992900398190902426272323026081229989248261448889898232950868418741862828978556260820539141896958544236200879821837383111352385495124680156862867685621675030329825969955780283209530867280681038104747420770686684307831653468483041252957786144293933735875858707439711939648230698432721262207794590806894331082512176406604695937652212334810179933356512332108005585503027813578760876924979890901545604429668001015862566710085018744322726395217961582282568953017680692244245186771761034992820768995087636639263356801017364953641655381690905260396678313241689844813612988420251808770586735630424595350631389664169526036894904994090965825479694481386785938340362286657259475490666251535901363554168845669272299946715432362708052828255207928644316805850055151658104448809542657454092293572132833636906264251853346757491378681287418858456238618887796277306933499036433326032147366166660371910876328899165803609060703791707277264316423730993463939633133716583518602384396475370694220052423356381281122704274181912738411236106099697967788752099210186008973551374283550248619201291968724956699565385440577380399181638989886309612076877981638638290187548002211492384541083708008095759445104676384601670889235062940243258590614241857742458727061885319181537554776126016540600581318725278754603128759439231187081222685128440189679647997765370132880054810401122503971677122803984370174971597704969249958807448348991584287440858517043306080847490516177203898371768044169428544258070929620474457376704463744056643955730775016580729601772334004609960965984036204773607616616198312605143733008740217776922495999976058672844632062938436063300470817206278924465669969659733271402689237448809566308193287251991030874632685793490376273687609352149596063668089816023091616985709109400505692416129150658916525225785524541722885396219340559093473090067350008730864642070456720140707611946789920367597658881186931851115960354664663924964856266658273649141669660018059485244745689198812730033871522754658416953816511624548740226074629009838795188262721573145534918452523822972170209399518436910458917715251459473157373414447195468448962784081694709189248694870725456907834853863870065904103273457784122422383046038739077828984098330810855860223082923711498998489260428696366833558259004976751422022884880247465775265623916486951057409994445276326227300984170059900424567365450905550155829051829875317060753326466110863476953984217931355781225626983508997680712079522982664992371175993850875174498234314895066106589511696380652363641852491183447525395116145707444343256542178618787117584542595098246317731943634136150310334293529332414464137532182915567027328916273820067756890306471631350060141981959703257945208098884943576546426390564105110246050055710955455067988719080002168349656856159447545043968543160503184585329255348187809636004387205260018951826169938949643071098099845586550605538008569910053089609573589757289172823057248736274331551764100691064797169509052499625665376346176662865221165790991903998656752773403488648835136544006116672420023287416779741347433332487944859083697997763899133629782755639740226773961190411312379559557259178444999689189699475323899840430509907359743769485377155911804919134301525581671607002976449229873794493949546615487188438060049183834859024250618990852818226921922190105320891163240536970923362415851911571616893940761444248108366060649870149565438879990568558947052483303939250205666652500556183501382837025765166110426830857809096319978419357968360700583061410877508092168120425407785124680459267353737497665391055658237061143365700345622775673700536448557455420843672929109486836913231809889513551235637398768572106788053836700708538364586160599008191504683741987753367061428210047750960718119032703679841119635251879888530753247173424359732580135011153094199734710409646060985109389829184032721712764946158408400395529360460187120654663415256325346018422640563920146366756201092428407028570923076820997523803215297603634971820082273777440544804578835408071703279820141625468302829978514544869207401039625688399654736214287240325004541877243334418184881707254965842636530311802806213772813493870570957303208025320807852785953636056922381970417520251148433232872550912334295330924542950209317721305597113521104300638006608910905109852838049420883246053889187601261393727999150799811127670492861659937369890104878808741547839650740400262962308861328918679325671856235991026351936922783852852053259430681811245220225728925171574141749353312511272668210158276885872080845276490169545782890594175070292116937896887252211390277968001620584120671924400127021683931128337288935086944597922424756132300154128085281346244535426066193997643553255478564215041354466098350320184600664413690486143241022203618326095547099219651307924737521627699485151871428701332682516468620019996782817884181381139016888636899749037527352827197931783567172000707725407487164675193439346125579803430060532990310490548595841442895180310078305175001907046771729726685559286214769514556500210509950060894501238048172303518092289649914387285056195079475060306710201777870728067411882176243163250132717306484986299786204818294801716234270621664042753344622631229882691772416646976038663493651454306981178557498432474997680851028518093926017487332078403777162191144416815115950752613810342466997510269050572945724443397648055196575114004946509939699055776005556177296974510455143238391101994622119265972553818097963318973136785960241025200826769343750376506018578158165447251874121551491411744463652018296613276413120154385593918676988602558957854653271458716177591092757067894659304299933088067093825467302831269778352650966747655932234845154142397503780054673255112346432872205232411775092851145309640935377242497245915816180979647453414264733208502393877529910089162971857913777428333573650330697652665862099250505285102521269226693708883737499167806184945029124098644204579880490709298311037413451079985523121176627341019884009245756624932112372505081353253070769280209638005890011393951856191109450972541033429269181172010722650588799209732531209498704873666216938572135387072856598903136784627199084834724085612914207862786333066317846790294886669970004068040414453376208512841946371040224608316670539306516946265229014165202407300144835191498880092163203861813808868696168873774684770588979022260495251786333210663426943088393203455816476375970708530989498747799628850133200103288161766107320560322885827103925692916192539400937523313476231515772908260321789167874760291419275548874253321498416026830887464464005793511833109776112684392956546670689171321076479556132949579221765790713384452430860461451436625232980686099663416883735450026685055420615147271883538037777404862759824243484869642063637878256262757350530964103606738352013781401115969609894339593097859287171323147312507916657883456446626755630194853964134009105825084476109427573479230418323873755220568786109190908716151397524556394287687792389761230272379225202800399685438132140871076306751803281528600389584149311463856744284999817696897934458386821271572048362933803908738582799155993188961350581242170478933679910175321818970779723606891116496291271048624104351559690403610016799186716435967941433431720272952288939238870734972250322583797453538892847992556097809862621568439572560437266095835573947674426456782863263106412679336326356476379393859309228583464164661786204619168353650982389774357621791066235305597048124221602375411109702069319494617067750388944822353232210071819996789730867400682275790651105283250468806008874796178854886335755903201484338642225151955064262863815860755025246019997077638628048402037336167443050019110023562649479175093837435974653070116863414110735197014778228014970004272358950021281378784583509748633255218972554225375730457728431486504608910989091998984357817980267964102007129459112778900696256369638563616290724247553770602281073668841007901000307289570219648996248535941155210898006163818399360508473055571545454652553725901403954461731478532709032750929710611029015800363221778590290029420638899733785759116701204056999936640250163669545948582286065453606182466822177127642299215414927551012258691167438067776225918290363340873867254750249487487594185001146369535683584403556725588215603084497242299841073928843612243196394531317744180343410920772650319246438676931571198708414825765691796066580614663827146977657562889667366665017279377019636865191881823020939739880255837431077608846155711214774527435792795371370249241271187644315602184149502553408272944033927606641848380519837652445720564065100147947477644873314540356835849256132876970078591886599834246751636850226243882645988558626799889810480717040280721723662663959530824679770409496951328613212811057872797395047096531610005001991611997678273396867788089099493529604851300147773052683595446703152464442437317593429980708707785124500682315973663438461429137252550945817777783074769117043338699641235465543475210831206083506889718674462410080166136306992167545269931232045953543333053468478201100801249267060309729793330310087558931447473831385377657601868617012862678073369363199576698875032346016692494299616430440408322560139834337036104283637699151011273457626859020945461078923405001530618362113217918619253353878288878590357654952124349456813517167756367529228134922504199181915816811966981372489875853466796853726984760409664021216322468848357670083639845231712645891316685242052063113890540080179686404496204692976650343106517867374319213599029647724205589726000747387545171008916427989222129221863248994030711003331904838007828879564766770974003403179292826456554485495538504720340569110341537136501965702662421469183841804783047662058550631660142256153468949070206651882274031438343265886987651833523251868095248291028429877994725480986111868717996987880281702588624516741942021404431882743121405236265103065667790684807110481585205696428095293570797647367259696181892257650905505857768493683366359662984032066483321370929250601045824302849525349889816871995995305039937953604364588227938742211693031937291970200547618809139088328451029600102355741486534795338422285724662213624403930174852417871128782801911247547354758912482949162969761670967629858134893813910811917487574557734246053132536060628212164194642835852621508399553293597640888100821870932387095223768656662005622907555541086227473364336069402284096048730243519762598681925599205912925075198943432309420895620208542870493275992130614493161570627726050138956105052552028247010083251470439630107276240657495151447320292370994621520169433982729053073225804695042317838940812079032639621347195138972821332417560198440449171946008707418519746117449668559651148163183453358112108587826924742772706193015130424263191547799135772342255285466876668515455922072703865023720533010749095909593985074628485557568896302073834399300207337279487428225895297474295255108247971912502515790884775901465815297757405866682062681656780043324250322239362463183723046636470773212337807432891631472237142522605309760048362597571629732094761162031709105298267661712045264413533437331234268291853747309287986327848600895480573382390289758418921167504278510842794192231198281053337952858834947621483749596459142976905778815780979101115136621075841674065183835619859876160563079664954832262540649899538481429109701360295181094518029432547622361932165897696539466620393731211296554906798091813182996243455085651137237844452983146219601715605981290462923317525306992083320116902379392982678970675666448987987336174018375563425231341970119199036617307901953779135369767421224805998008486355458527247506203864229201919549944768271163248367819035660689922923264807014145784862381381036240249641574418719572794981120865189057453445391388620770133427754977365958311864468367595716191124360621622939842861718418401945738323251558329270900887871612509738903031167559931186435585165555870363494869360520754260924613683982592491009948464112967006863801793441389047038674581837683275036462902845885762957540813092571162701175105340291311297188028762316058618338346418107224715371800938051154766329493979699849031609084314140928264261454023726989680352258740367888877323788383746508719955552998496764628389069209891058749860939868754741444022354233820021797343564871054244140321761171427581017014516412105235065119717841222341667889731608841288973918193655272050407114257738043366734654318456855521255008524235136065402236345213836044287704273750193945112141003509774535929541063747945978722979638270828934836121662026530635819111244171713104234012742133342076368341625875298940648256007616985849798648503404603865451871250190052803260140036181910534701455774452593705237982268850495899826446943261965644482899065751056791502413193441165226515046165027758440092085334043063411393537227414225227221235963732455161656946465423328061173216301678074278846540871256273879483214917792259157368712100849053637769340913572562294084125372827867409286310165847376858692185466364377368727917431667700191460829242499760203899543295091341760320474639269072768536349106234699625740270629975839707052208001373463116578217401603340790747892859655310010022973331540376828899819916066575661444565112482589853278984040864920264086028287258013568038179125239271505307917724353069703777528680905663922706123577983900903818119766559392652075398864428057599553227565975794201885318008924349581080087835143609525957522863072091680294339337352702042328595484419793918537811844011099912175205966768464497777825444934615592730179844885723885803232458397332477018579793096487710464455753476410351342185695327137370173085846907205294605797509496228965777176841410429976465526386156825367018799770918999649351479864705603495281771111697166997183143767342060790199540881538329200589197391048500156463419425412718424642126055446334613722396578084009120518977669246400673436747306797229316269150991072004741010988574790090391803914304445955195550113297045764969450775150461369437429302219072999529203593905765713636051093751133287337896531832993794924325843843890898347485846854353288601799501049283249593513167018404289278986932834032592050081199131932584725450645108560768099911407290470085009466743821003675594775847394809006486788600781909687842679912255126595112093250557934194111436329278120557376514669313645007071784529269681172559453806109542264916783754202298174414798084912511752509324783140171456323857734960091904066710527993131223801786825752818644822060008703991565682258223552785512170667786791386940792345961845903043071549197655227608621581099178025639633198473811768366969830948003364137708432870841089919506015452289249562794295889047638022366059756806877270407659054234063125558586928441295516511623528988346001271053391630260907277268039006992642722908972096139056441339708458179151718588864706874312647500585206391939875288782874136321344030653188612532153317524570474412144400038464451219596002076446537123123978860837270434340969759261741820530112581854998312856108598963073765579155334324371353354620479315172906276500605312487432794165391829752977309362573784521761695442428823971481315768767691168861546713701440776044932942356325061547620090174124867411378714652250410238130354967099189263579022055449331485089100254220654741877478088423263836894963232012174604153601008853994843885356299662598562178769180414231387951495720443918161495329538905756505801729951972430466522245944315381307431702741669282558931662959861698692936365269142255543167474552341252838725073250737183708656163073884625022125548575264639043829309386394375921427994230165192307397303956221726252079766036214604275756750457009269174011089417599832566161710291049961519655881411089701803118366581403382772988202621691323217936834999795362471015730365390126662111826331408859236967023463368239658965881060388987783973014261010754609331692062914225812194227877754351892476546687382953999956377854497605500357707662126937159277794573143504102754047960601431210972309254344991543874000656094374449610372403968011653146058983848313770271524795461119279292689610969450474176094586941080688167911621313155040803145775752924736004516908072053373981991781227372318520662948516807844181099966346157337213104311605492964061449718720376539459847046137794204917630420272594618744889904530369370842654935062671005246185985253714749787258996396827899590728125139949507044137039452668984540790907694900456539199134724298492285187172545807740889572942991195580468344997942581707975138675312955749249047177568669801102029621017669333027724365889844429556341287625578473249544714664466172832209392497326698409052514434415787241552771537776932694296667396963563684780099809556946128546519436510921138244679981201153545783253731486069796947673988405241981082304038212511046872167625269686929847460883628840506578776043493924439076863351912513470251970824853332915645428040735706357942197905122549779554714559730914258770308358459267905683393222702651390101826695072560554978636645960532357686751748510379935881469630724985426009938322753635220619691536545741448738289068165345668907388289752267032872776132144560498817517059910516261979665268343466240612007366455961999873067967333333585341161343819176186020906512586298247272392764047964827868299418562699989375702750394867956609496415212221285518061395929506041071358900571943674876189279654129574068978838850042807503341661468342320859070589162548646299338251922345040391589376424518959322970058165915468215922958656294148685588301168346933783692405233209684904752298852572455946099598376800404575762202509888188795581239963387152145048305450300189211676377951652293068624703932252192306344387855366040481606624710549415180746372090241100177031320443912732968181523241097925413621363540279582380346678056404798353178522899503919679389672749390651290829277433942550622252876869953269557275175778341594900120647748745990768695111242059074263754283641851819802600194512714379133743162272676821382396484015855066937493117633187578336170717364448698066042528676521188675490392614360884134643457639016315466413839850105528010869952274873581976105544740085819038730655319511773990797590720560852942641872676245975786752179728517222637056559388070621523896110338948608405530485392856742218621768666650715850623347000839671618794345800568678933186612188607574602357117375184269371802313028606563106059069834980024508684805079074800827232317236768610696122842910420838200413903785401548955869878462826095951718730697941450949320858535766921729687717921957920703315525337597898648708955133198118983723792232837872412673984155555965627823032691598363243232576845001353808557803552925006080948738436565027673451147171420861690288654690262833064538629757118404494999335624727498933720110734792442255175465948277822250580125244931480344007530520347719026072910736432256689329082234422751195640307531105116872177595108342570444678199022924760666467869003995341278854117353245563046927112190448779397823573719495548014145653848520818134458677198114778170654130478575431869594158813205001871142690324637756704350288126737363237917567346885847421300767804014173001130610203493315978232027407734518457141774379436186759259796973583983951756909197908638828480164686867935312464231762723873968762246989897694028381705005699850402807020781980327231315561669648578962038981745693067917778452807720129823328323682639874732653608251748432148256509776768276852648826530867493426866427490997266208863438113498887520843014916816071302181166031441524151594613567597874027155477965987355998848368062615263637116904428936385124335621466710670315648030158295246434725011895993238598518975838778038717962217499144213322861387053747338075822481904335264645124969916734592828332127301424251424839975399756273513313543602697690452564695627869643748490263041536429554118589672510453330823100595687206752829406773130284043286222868647221536485293653852609542002893408716018174621219033689703127878422997448288974085187782848345879882759930235954456888230901577473116542623236990885895621717311751412094828377225781743529936486829849304134661486128042944108470661160545946750544965831557918256662064703355174069746884639151557476561444897758029131662100144243352786022737567886654522184006652115585186013480885904573115481895277700941652071906946861704069392032644763455273359558428744406323827837674739165968989653294911477773815568487360403551924359663328728186252464661904583423021284202383282625810758546104253600191138206360587154314435045272830007303012241259773474948651458547356751995549415322531744880557005324637698405963467628749080773343467426577982871792701236716472145313972514007749623645917235012803878615541809116255155978432840577574503007337254256467609664602393760045217042429144324174881412967034094605835657929957730864972649334833307596951435052239836453036850512926151006464835663639378453013606287757345777037313461640138977056491200932627408695216642132626863226483128476987745455480064866769403810079802630624937433859597358151590276880965951109468620864194162134576465246338101910467194897032384463047349730701857398556122321244915378755234543167777455480806906849255555063682746980991709795538322532375854064623107897434638879017794780959774053657878919013815825860528821474990160488588551766892306434107534484737158200831647007765771361414058995143486623331847616892160316976805332746216204321122981743209689259925968493414139231891371221336297491571936079838241665886032217535951539629181290354284193541384498137090366639235317084427201413255908378604113589420528060398590828947850366133727807387619280064576476447552117872533763049253756395815972419948690404827150273365008791040199083551006090988132803603252643273215796516935745536404048155848910351728830951318520686128735771478016736598011580219887944217399407477807094333341544822281322067795090536045126531495653045826366744620255343476916234122092319999558583383426631367816485083272736331732240407113653703463979838211550774191960418384981814734807566556814272214492138892448915521676286057481751975343334887469418452388077734150679302178645391875675632400211832333993587840048666913325686824532930386204035791845746587997215369966111946413196942208074710141195764025087919896534608747296143595339942577847040809681558513802540940086691877228321124947693455192101227301698657786804802062608691087116282235446134414642813883492116754452945855177877166862551014424989864079242312153772317754261005189752236709358975457922007271132371019716208532833868073959640346984916396847493531946918888374385969451282953832935881045050698524149341144603845588965950781611761044755754011704609793934729922755426652416843001119220718084573747291144195054208341584901080883405294812420781775035983050578195973572074454471804093660596456287959724292926216503282565315345919530811742278841039492221594499404298421266772921608188299786265749604000899510694944730317664876111065592084089291498418837887521113951172206687444886198890089033949547392766080643505442070790772729344196886746832968491875283604965976495400018247034897186227560721411441250890954246147164412879584255695987548845243850997189179996089875405101780064020198216464818035265586860964451475846700968426474940492144051566647617366252920079711607894390893787750425025127928340913962738813439670667081921899281479776599898987335491015226995959970092753560450812937060235530232065141922148565953219098195650859806646797425132474071913030293048604169471944297853086798288690860671767475350251366359917592671406784603011858795394884318788754494967928392258423053733660089007469037472941681329663087828159839214329912461355593021799329263252816062421437833540818416905844819678268833123312801273475178503064082777126947559418946785392966594768822593334030103546432593136192559320973001257234677844313903791232877594977548762363400529514483999997305652878106645219039464995323785228955195670682343133239472083585188724961990921562550760935147524627482236283897666276825746691302980804392453205985230562169429050796369926925699709264457608944407111086733369790095379226975547687196837537252785506730232358822598162641498002211890984227051822703186498299718726403541179613796808734172620299049618186525624028913558490013409315546293323445193763875038592263197265988691824007958039536314060219259240560940855933743706944387496846099291639731014008620906807779209531356940042024089304864085856933795350269711293174887272666463059641901353834451172605373428785319482154494039609801438542720849717951733640423006802433613007745823352741474827340747683852404532891693940092723677798203725369686728551907858554327335066321752194518436234177513152003561735995714203412088342658431051128575077176965211293284329867715558838731724540967594762613249032971362938519501640923201826555989877053118287744383046509059721347044434495746345199709721973758299636670387895355830096495893018381767678900590714295239441210428319116266158151598280489695410095031344999295587490457654246974995338213541049992393387605477409485436701745836894525653247871014579353352381356769539192270823332669687589001812401429407898333840117338789973134533016340986579888756474293004503670501296261648931137089470477426237007444885122641545017821822274880754027122643575506271687425437568108723159113914910028679118073010320605513829224090678846069684217733302303779125300721283263819489881018918810215916863850229367516836714348521156918492392256322618907994344331943198746842214121802123498884045688530136823694153319912575735139195509459664349847948814721804920961849971196455729834185426307486272552029340893192836169641820216607513948911029523047613503341868703197347492685313746479241534965258087601638152127892210545100740669633414759461910518114452818197419081101453944858724691523852169977538812616064456327311431753345531843755267760115330993030815192689445610487048417583621637182863163797792155850425386498165513269302286488489458110969014707420302841356487958640925070551722420469980286357898075244784668677594014176104314680208529155706249432971817625385241260049022848549723052795263410375444865081604217860044506575082498077637205102576968450849212259363652140571721120307775519864553040812826843637502216541643461350493361982989770750309345221168928882847964002104412984278818167467668157046355319924112299453571541284490912007472698161930403963639654785860717818347812095659266084322291015728739718715302694498619777414452475607584675342627416868013807326837272647825842046556834652488117288903196723839195985743418183012064364057079588101832399464364408680903638046682796345056037488264819654413285980749644031871033815464128373060874134274469293338522630943487426661681597053314237639417458804937915756057393374784453847359594522227162400137553704857539151487968086266540931469260295271001729031612853864971471730962444430349729577245999511279497101683626593684819339890228816238260129046890040435473230618758715506107361507082710300552177336327451282368487155004644420440672435886554151457480909146870626620826873808680223186875741558190958903181493366691826253915548249995849541577250193877746011525607547942876438056967103959415720704438728100624494538329676082393387572786528655971753565557282718558817145176926448685784967152472089645104190923630295649788651369583982437904971448360444771425836566063093205458287833559331870696268220295080727549868394461167684885066481048601109142771955273560527893113638976702730943427346313013483751856380436577687908043726162840307936816192774401783542550284022641121000813695285135305031394751582238648888792635934862713630324353339813770863148156278103779978129225062510419934146078347628952574928344633348210570710552327352058248544498538707423368560962046899591186319106969060042431885806740215196576140593398722470715822649252827427693112433234152351674369903646771362451936050793117147273603090419979794647801604974096116217974346560011930927820630245966081226144094641358120235272610505608264459328221164700430482518105909795988934494545947574514044260999209006917113253462701591753500996601827994906900347116076798299491604808868741375100839367852897426651610394560486768578372566226735103424344841127375166243400482668491434714250582707449659670676574629939237264821830368726136905311653033378172777559087395971064213849996302782116163970199864720175358549528617524868513801977988998266738989070304337901396984859856544804368179767269800823595110240662449700875814233792093230181119199035454564114293190525839162821260425434738635076468268317717454748089149843274007547710368366752783705301957160071404080945667669651092528711262033656707205463788710987233756660877865149627848218589004329535480313324191974463317615025105951172107331993338474099571952853400175852581184179975498119388461318009368571886927446117982735907153864666563883265346627370124266487458316628948125260472005869068868170249809077976960495428363734210324041245941427198747597944401395145271986902120170925867683455540298976213767767734362824003021448849602044685856269962996534336422538069116956475715056601247944699778566059353781343782894261282882651884309030688061602130989676591196720421994276174704318944622303602012939120141088596300414066206736017023195140203393987808477893571455551484225158846668500497981827661878100158228846718750446783635651060910165557650753218447431351844995386321602164740386436408966079098318449289927506723178248182212801911567103396670825977013836610218961116369692256300113617885450105807819968237090722770506409131050150639587842712918244267433160340461357994305076790474091171529802573044871970265339079460135896356221302914540725877083745264955134594601648169353843923080915602207579282844693790997453885813263263421969601341207895512847076978655051839453406619562743397600317875725233159531817034688546290479496479390761690195456564947580062820264779358975042891013141436466082472694916808424823539262771528207521140814871111501656755995254313325230788840269332375454571579704779718469500702856559550151782289899319327254650496989967939370513305236530651441849133124928756617575121855439723795058368704557079950829609100314919217305206331087082570553143431172181423775633304537455429255868081020946544106606425551892222096144424229161426670964374454162312738367563482953707303118802302974479737869011626871858260885111313433863317614986224828599872489586028206573083957774363713508786008471304946606550525626572571508867083155582418634570366900150107743913174154781601325067611645668855415938205545940832018261684093906333991769036324952074987584223914681366411572888842342373059038203727097815209975447243068654488411855518634441972623195667363668403708217931324628856554076572710943048878318614849900516168968302590285235328874437882381199519478856620408691284618746330015000538291394702631011700991567197834420074789270621861587960059534840891654509666064648858256728291459762827546268286619626290292910615420547281571413609423858843416786468157974009785762620884961554010417023817110334143714105139855812628021006356632457036234150679362540973580245013232127893919069526656944142532463215223348600670050730981614680106432055912058009699702740641689672906896411575188510585333506393709740440963442915383373021600232155171437953643053908309085475696979972809628565232325746725087044585392703677689717073293986796567565130780030827294998193294225310989707122982437396560926739016195998847675942302222733799730559287859576015481433362102237667989563591809240214455846125932710722223460748312013573512821624465331554290954567481517427866657802594911513135070988942111995122244282854606454064204872540773837462002673677646488801508581842476944942668681729447569707179508611614771428543023054595238403412465043000820698525139910321594024274718148650845912996152497557822677051325789915290703419667393879076558270669061341236701260017718992537805251669987266339106425511126815724286787191868309560944175252533045678910670263853996002250544297089304434956696888997818993491080566444988873167665281107290696812241031996576558991888929483828166525163844365025876631358686148236394060263363972814682419693908815902962961317975935904561693342984050898226267911349796092731249135228353666771247281534073952598904083441613232182792441689149847616993122954655038859207402386529070351468513976673443189173950429984798591127486054122046962594597451713757967593712710897756989055291620758394590847208683479510131301501650559659122053174641953544198705569857277577588880874642851583381994369982391943594530776525306550095840343368933579081766206054470316716213326916450347986061523885323998644605955980152483410208027342209494303099669137346247865950636270754838747049692977989892382930267707576924310269927674382538470697670526832124777369955632069718786765735855920897998912748246961533329206400966284000361343777240469934477048814270283196587577954697917600224768032921865345515910317885389727275906974148234928135670755962428342958993456723097389258315675924875368713862344792774857246475158949552530558091531819776264522766497860615601014008171321982131376311001432036822811827663553895949283201238107427021785282113948550276065878457164353530622805501250352446836497424191042800859691212075452957301604587496123111153733018966720112625957358922131252839253418804754959929054778240365272412413345555340617266633110873248108940953266567058954732634594589296337229066768787035822594570341084109590600116582603192761758296484486728605070988973842954964516761003815640894613137303366361931903798623701681853948524733230227915549485439953701101222941003821980718858321189738252081112524692345719810299119011202893600868699502165754979600370347655233259600075370369569167387678730749861250206328168188734773414638320149303086913518680324958241767740480769965383907153184713334129405736846868226763969346907286665720325760849295835885462752891116231856626858395641637431614130948436864275281388231249335213381698171463398354191164122809587150099532985304001487647041765653158886899704634528110221037386177341441408986449526366187063730831383223506177974698157925754871331260384668310171467895525054682423769029020642408509460345763019323482826170348565796545946669116846908947982528790743465263814017667624905162274279227910000462459478586640128741983774983628346818747990684630017598242904810264045655068003832632526747047796587386912718664565102945807741060595245044974870144198369284915602895283634597993315982893351786678904031205494783115616095027331834551576228566593715557687255604732240521063819817651956507871522543588241287144091150473405212897490984883243000801376389187430594677927789292601425659644691205136636731810200107774295306677574453998555031674641976948425737497902915562024951417992057284281958537075830871358866676625984231195154433718540624688945677411809232320632611745853462515274294628104056840076728024516533744205660236576002926643006726095978578378179548930342917909849150641796111692295790913168804209607447327821510627903225416679864874775598649960502975192520139344977982825147080118471384359877999862163692962790794539967795934393493132244277712562296636611344299946034485604196853601562593444008289176991711927016378942496100586432311554553632427507130986944011622460326610387343091966392511187615865134809659322904424119239967829900861829716738250612798642724220182691075752290403497350981327088150689408603805891407475470919369176750436407296535861386043348571089941954347882240978435203452506177917245450553032572951263299844288956786961123258453458165302127849644779858432134083689583553667208557717250400459342939022218201532240186658008685831704130443531038764186958029152943063405238084512230602040796564269915257399037045674837437739758742113985137925528542697711186922636451546763683490743081016526663262824140193942784440627066630238953870898121820784271690331608943974217665559005104522006299165712494852748786242450819021333293978659621613408549197395715715414492905884271713093451183026142984946405419213530609007696776127101985395009750642718595273396570400992193354497923796069714619105736869937026183113541691847377639519384883917386122856885455047813038481902416189297703582390880662142202152814607733453926697624186692121482185779610620807975056529230748538100544569466957570470476676660415501872077787907682176192859706320941253057612959689575489378150017927343631798817383231851750972486593465904345028937193036864793270606292642465975459349632994724939250895188088302058324312267923243534376067990918708784041497511791598389504328563807222665227977748060696188716636673401194611046584023100879048229235871880005640753199978201826443236469151600609729715642243832193864177324224636271417673765549894861787458905321858724819170758872835162675325534336854103091706546515318258634907502397035742657513604647306411065730198105114271203282612116539270728005296939759793990042368626878019737154729778529381700061024177374084287296145281602367723342855412678721910555497519349064768707302597468626316367253084183895533141986237333244307333461344713231748366066812696494114907620817502814634974114059277732610363737600263488894785274070171687401019996645313654429473998848978467150406022744284780988059784319550555268300940819728657010167433670712302488043943645592737656234892679094078273234522387863239249099693296895248008376767336079476002917217006756239729539254314140765574692272909691198400050352300861062194392526924754935449456277301228157988207840307315865372134030652633751875723997689912191500765113895320095201580820136350867151693356700305703128761395017225500733714324062135274691718830474267759967205437958310991507395980852375092086440503068252830917598662059985729237343888106591076483195655599074781478581320754390689131702389661663645486809468338743972981870540955474404485926040881115412161045969753939798583934088669473495392415608499797285356054131760693463361734554186316372304807847922017099389521229111185151165122016721718763196508586288798317525484964479201752276995062190818472058977175938524751063695033373006715130306706412979724369781127945727622849767178771654526833728620792331049706398155217790793985727306449306174694903246832099641435246305451524349235342878709360495931870188418654973998938435447817148755005903122374370575797408359970704445882843141649180024664066514589777860330001665065726868000283407359184200824011306733743369309645791817037663168583768022724926733979019898757922762012100511387496930073012767471138395122611150432437533747214202958099226600280037232001338006893903479255562925981791959690936846690266849569265077052832981945046500807085586186519129485456252361541970968718444261912004910058506101114512973292950692780388245757089399831898458413848072686540828955967911487403346942040490434387757954296829340312491845754138806716076795894047709753366507923092912627789315292434704597385887471816017645065861921624341651399337269190612547999365984426398261889479700269883601891562874110527935644285967122296622439301580540899228713806201193718111991322909290598386328109624675834105753128473088558422141739815108337374912821632768424832707338319491364701394191333095413679507082749021467081921927036712050411392505507665446485104561983706421345068165417925111809305777642167031676686344369676160054971437861219459216594226932080624764535242125677403252071748705882888351953203874144745435313349597741904148260790491037320813688542748159657579430008777890388948644979138294059866193850630920085126727271768424885981579431586882822369965099442008109365082586911040269516646974358011500715207684313015163495523222005664217883153773675596809121311919707668909300230924703915446343254540974936508059015427538662193167229180034482612445873994635730991387991508756191750931232355007014375208026201297576780925936607355282521760849201597985621176897433645737777033364719638348521625423031651701705812332070545522692577258654410307268297745423122774111569211951950368506035106291872785025796446123316569357882659047588889741535471210178548353553965854198259170876005502631193206252708118949385597173043158681395779683422249770207050331958305771104668002374683443173996235751731420476071765969858827921404574761568563883718988069289951959479299433464543841618072073220755922362664742151211248819711061454438786477227655563427825767829764207549825439519830707705451795495221853139685428998936603365072522951538738793021810642831842098502263778272835665042408239291201262875074910708613650995458634089492215764129931905481089741166444863296829596762043547243172641158369828452215620194528963139556568496101193451674949636288543630266093434802152084881110038998331295411119799265064245229231012605909238069425875606715313893741857769875722255563461979233502050526271017356307990217473985977120464634391182304351069337535728387253453534700234969760025168886706396962710182353980489687255750795917151188341981922196196309761833791374468983852254382182703961533510224826587074346218766997730649909916904945081107962963051965067535119885454397129571227863840262389900306529158653513125613850285576532486290090807703004039575547122518466333425401317535036236554456643084720821264811683835939708507535288940068683036773715151937777356885334499549700308537315844882423579036003240995044388931599701831951888892352791367629647851441840188229926143022312324524437223052224001520108016468579537422350381010979271258639803368680182174296634916119392160879384271248883643993596900272923708420857251296727305909905271680064796064670250943458379144646955507370814288668493380404895087042761016447411830620622260762588774553255478672743012467690097618084092110378321159948921930737822513947776495158220647575156813542504870569674162011199311659039895321367292796385099184300698148594019708995519528062179404948970705322208086010410088000079140663097926995814635096522939660144181050685537925617109996478710084613678991894788767967605280569367437197412962063790179912675412383237474230435783959192815714616909594864121809497502012121034688819492413496912825014538101685888885085041499447105588395193716989784660112109291138254866443381555224356218101883930845386504911858832167237883039678758119656718849106655459748555093326362500769217098851363957876028383976288377654778761730420070450422783030173241145274190327695686981304882819383267782715535231626156378436267529045382458076526192562489105512397954720771300653868674489689241188443135415490400183559831047509839325999880808035375635462665319574600136881730849244939216273224494234443919941845041680740073459466792967459714445224963677540230026025031068314225885567849545284700409227059700496837697125102735092177509727033439795183619397526233449818397548866753899011857141183419544293395867927050070351628732937113285160604757502285874384990898525811782961647472657298281828574512771398015992057899112519777515987829663198819293539524205399266126791364052976853735276461823561351553816775632732750173182654206630316651674871297301844970260306309495611300639679300096312307829870422676508913904862490885966968619468293987478713105172888239941087674235184500264968203132218467087595742915592156887060718640255395797465208041085734050506057178100682375723800319520916853517828333086204712925541894302657611779225574445151430957110113586377100951364106509105728753171125660791768331682862852158083000511687607122177049632837460206514829880699043061198461619078445430377920929615090998432593981167775457490026734515874268751992585366662650724450770915012708598660272105728624112218378131347878333623115974032959689946508348427235401083265484616568973126151181857843867805963899287751147665262093086085228964912547549013085132359793952107101002790987612505251278689275302484857633182705393161075450116512732554532056494455146217330972207233027914871754295743804143118577164598596874570784863584590718351470363367338123036472988220411625981481757105771417940826075536315418818878043674392048528149895288366114711294064500535315858559589122042619321000856496788602983920286597964913307007958265272698053522214632421585737949882765304623726439870214866037447889368739289322462690941226783711968734334103145567487313751612853390512875204600872650588685409296146289059485671295241657332043346242026588445808694346224152078901067251781613801595378121223998317004444516660813662379935878732832975817157691598888100467295110667315656028350066116047426301015605400592200330014826305177099266081266179999808842830431958987229086641116306821066933254891709268588787678811125350275941258345773321822897059142785732674783319755260465994734460476591945986472320606037657158684728160916684911334502239083224731917638038322511221453747435299648917931145639921529735798287967126732210643530683648585331415558219251261965681485560313339524129355453522605294804808224804602440159694694887962233782785501577953716011132922997178683504407412658733288700275929457002324011314162682732658255527902488835697825327797103879996356728364055452638762393717916351680392123808083004020303420603036133850751928999724553211222737606198357482067334452843040565492291060657962559932933101070285052267427888369108614438681813499467195308132699823736824391247571682823778518702182762778129096463422514066879655467318552451403466654541054401015573725471119723753048031377774058881423024014790678949239429846557336531790814508352268864555321876300699431045963367417372684400597538226333499596599253439013572133073218404398289322134346202787436483609527711696716365814188906236877523126860577059785328891406251626786856084238206834620073302644625163797472122053429850442306548392247877052850587745426197809306903848803964929824721450726383912683100131562746757637990259296290341804556247991213481424827674722174295377770144796718285453116255001572344333260661399707703484877180633315859143501360709965429181536152723823602405242497864207908860993573812258619568943509407589200367378614424032763968156615070234566975986849099644991218619155554749052567072440751444908442778889842505552693255581867085174779833398263433067089967143843513613224796155885010796463664005307773804793439317166028382467040599682094203042526455370528129891998104305321998909362708340372288516327919561122077751381980658444802052857027269867351377945299382478727896469940570981188105039766182684451722485734633917360341278527265005063499472169335340080195836984638617429313256762768531800516578735117580081194147443668702792116122600846421038898312986264733831596584676343048310196383960635756065991753911067970457922960556799966961413434598039242310750025096268995503068311223930366090348582181550934868405255504668735573534762295498118758941868202552714164556060657583190267938566905502376795822438353133393355396275268413870160974914627889477952467023406746589432011300226017675368272206207259547923961939094329918579065046245578386445388530251428603690823739847752935910751304962803957048762297470621639805324812146032525560593747310992441037200054371565369919103616964741000333420504550316275905264818532679851846228392583502181208183439886841507792181431369200824486327256595371656048676579803384924978374157819537312833172881159873170620891794617840010123456060625112945587537956099560115558553250849656739128038085134249478633309630060133183939831845281008703026635629655119293624255364358498443973047999862100477405547638909428906086755480675152021892322549824896154621579992408159903486963830161706137790814951957985283057175022386474483645185883849363932724757508039808402490037218934305209351586426203107791912272636904707609392228282759157806846793997063989146985184824942544640203903697635757673286021086092103046479285689618652977692738429276985650933262915875894717527864247425157822054170717587029225255965822894183529326247451255761930941973807065481634977492275083861659729584318953417501323924934247967006108342065824958015522533315075621668899605956338543619474504932780919301808046872896776374757865790552397328577805483635535135492951479007491924579288996866965959166072448064589310955037839327847612154850847182052282388644454047075099503613158792621810476224876871204740821584843292200611929467186278688778939838013229119188069197845853037171267146692842016560908472126915015521406338892089917891311737895022273328603539927244272182552385614280058842584651441925450723578880650385117136466464637404112453469779963841587101088080999860494596876889076430338029501915577532548958976202849226878701448681436289697332865192302880103679153273237100964916486397960033536615015642891455015426020167405209328598643673700356266676433410164118880807486726576249637857721269666707389454974014678269019168211035403681836304486503934997814687888821973197268159716138260861731977545984627673309072170001591413619969926797191471692156552417674166412495806920822167865716053540397349930704392838987692426040592691575626432567578750031346231537776162808023014689084364045131686594771615824230276412604329279978920124813323299094211816500000462396527251698523313495821176789178374958936809164779283938483618144735251310642731442612790893203840257539790361283677197153570686027527683569222433797009146524075135894551459136146859682662060436291576303737231808007947513599085500560853119294136809242881676567762799542358965601507249036674160949833286804709638145763471862140369335898198665919876786096267343416450911314672753634711750725428802218697404802197883687920809873289200775429611341864056941481017944311609533130857100284328594821732213632066323073531171014302160558503620706725507116139041525338530791943278115836950685990845404178321116887230470837117451968896696525570221697531528303345868597077256487804463948805793667931386145753562315033252225933685693106936789467808935426506211563124319487291816986889181883567705557038861382172789741874677402648357195538996684219171151817639045174048848594382308815520238546951321271992055839840725289541578764227234833898323222160067036842218073486205004246029406383465123134932481040484448733165133346439503053873450488692108585607599575506318741035206038799109034283329640333721399721439803738957778308118307529474853154052302717400349116129370107210446147166352141345544509413032165532333054438120082171282935609566436778944546902659369706442266944980826171988925476280818318548571521304656719086078611098547238545678063356187080081570173235019624895970163850626232560618219365150980664605625616315267636441734532115957040593727736885903782801369305583918293258837640629824190014797513938882976922203962689849574939533715218757554675609294406321619344395945029381990510073206966986167953476343241981495076681456828667344406606766657317742142805699832846554350866828919576901147479548285778714554921379244160173887631350292092858444546419430658239042542329721419253373250767089296857701412408590264407067802686647323716959765106902070875765377577128773697197456944847750121093960165305921453996946465987277332436454083235355538935971102038362574428061838541929358951037374743064465473113134836401273138152838163925932322402647947233952387828724993001340132972787174163092057297883915271038376386390518710747392894314447282914714891267216581682117229862002709116874050969463983864798746233248309987063788795516935422332584044454439149357388646899090099957789478563818610792578173034445803533281728019348488311071468060496864190161117817123893164636039110793873066795816573946639386092564025543213622096377933821252833581107127969504760157689781844814093904152652193324607144796105578096167186771466974506725734777572857015019629494417196857724351410160817227953227235042029197074040205160746544368485399139711319128032033556059578934392513938833321678092002725874760192680172615081645947643854039075547705503828159509388248011410424024125544784570049921030265280370493464698692052301585792500985872315281787486143695032661014878246504707995285316835848646225604875242046832484746667048805678435260930063910916608903974491295988880501360059973081489474902016768712725008591944100871273433223240162842921574076568724132720981517365652524931751968030247780513026599175231782126835911937043552788536266041156067443416471751262044853206594866117488717563805271258133593623267977479337127028040341391402264885071280188565383243519903754172586594423014115125310381323778684675261037959192540295383680115833521527358862054227315866219914838138772834311273389077954252860725117413106431480343182070549674732649616717092711539077874158518644050983267957545415583956673810242251449738712190807512780531622641574151946028252355908585327435538244239788821035301047466171656078189145966357475445398832030599508716127442311206992627897298551245345770655999822661852790897835103130888538411364075716633923742540547587369269789345579587688270405707522220797881938688853966221327470387271700889315216055960152167278213770430202783212920549254644984833244421925421412260105841712240294317638797662310353116954019252428321550140440442020288063248247252177095543160078349723765321811697526335010860804048662188637234666560139079544453692060657260989804489254232565105733046250869425341150368715252423517078274065954071969420714934535230246906142521123456202958562479995939013118586238437637504154065478458398991265832286650286737062477328935884665233949829117355257582843474908414391567863350741635920192198775789632532063913441086632253672314997220861400011958196101825403043309209169896638945155264369420437885928695666570391662980340023703520453264906832794360637066899658305875312774977610832716524121455040268337083717221364272379400190297229732539829843771007727206779898416577025771259763890836648480546348142644098068047372145207975591092562205006684805854192003554628755474076892866686836505852772327987183164302767400591061369555383452695416749214437310513428114461953632478165409533921357466140741318654095984299830351546172029999301411314381376276145678453230656874011081751563399648684585353007018061112805116186320724468169550839897763845249397175286782647524409821794991520044544821507906714398214714675502529955692065820731224397214534883043885678218254026446693371614031701239717624014911643501828756544222811615231077274333850975483208436897115483390986172179185408800937090501243227657438055063048350558379895923575458400937976575546684990049543463383728611679798833326679491461591795000893999047806699058811640059073748129155087255261518563264455551757087414036114004697027484177214696502623167988249119623230755061078908105911407743546038133057072654399822572203674902846021875731743544055691794743590626619491025105563274045016552348071768925578260809373276288201986885821612909657038015446676934285608184202541011509122303218462163475819776787123362779703010084663726850937907063898662752261099451296544654230806072920559619593850069953524344026546638380785016790143395751099617992450201099702298850298651374973360329497501834544154986216515463681155023068096540512540348547556359305604233971549055587621182488276330860581635294779722034729105371164000404677949017344280752682891727416662272320433479463795083876577936760063158163322160386217849332024075072627330929016699533853782934635992252930296099893366449539510812391446013582909970488907835124086497173931384136668099348558001674441496833547902774030104813701164289885231210404656193320378912556101912206196439216430351781480568278949049949205353072230619403597161096023120755669472200291236719846019205053770694410392815365950256473696349664028964585422840863461397025636244033703209123215649751462578230105338503925573915870870023626604376388929796149201738273380578083248062094109582970690329114536360979848268055096500168248691482402315942622844401870742438384368874070872758298899108519135051532981516920867243100333639787758532484327269289405268304809312438665774400598573314754547040185901109396643633059445803730722687639291026746367562575244872672210721411691288249028139208562131059900339796069276790124145311218504041417533145426209567160950905643451769227489309999007164349958665379846220150742570456961891015932386962628193867739502859872281171260948528322078111969932027657057014143299472244988363406792417237413646704742347107180770351952554150272307584026084754384426176228275084789227697229069801770791430051066658883219274403024519794202225950153106602957531198923981061465708463122753173937329483108017921382803386581412233544638630648576840145448245301262904607019938415761950280477937814242919222546798811812203515922252402746069096276634559307794286491024517500432100494368361522131192206255438970658297922660462125894789734899627871627839672124495930580774218706086181549075581608028246376857107066681795106544673464458116241819938775840150948064716388221611372186370323096884977594569655197240114907065961883856923321019762568064474248744800360540776275470558309919287456564806478087308930004541985571542451869575649114700488505890842691457040687242058759574158205340600009439582820432924991656949414491743120694201858383515920198974209712615461670645696323968053980765032262203796306465140455081219388807427643125405179585432849569823505467381995931049657470894308197741003718668695417802885183259697692620384437383555065754303052999343895784513232723350928388077600312222415264858995099344276281665798172170470788784586275486997262285653750358281198594851912868721247291429418346267283012989590831992109131455507148863017157503238315051308545116295947421778365884092300849196614125816895409389752257593508849751665464700040309108978866441846628744061388249193045056982894432518434435548528770310343887390304693516680559326044560601458850479212933154923254246015508100557623397173445108559114883282705469978566965621863127410829509010888011509773952580234859812305734588965288522860914426650849006063021303685202572860116717927428156005368056967433219335719208374107582731705864695488993696776039007089708440692104236742655056926212629233947667049710561414710494939923611954488357260788281892940750560887690591541607476640320475199795397422280034005842349581511451967255026859233804836275145517362291756793655212175805423445095773258373222788800081572644315913959558413595704812040706710683910511197415639037854545248336865735483656835967566994239641535854092602802416660299824528538583924300569728921435938594271703499125756197285256769981202920054013837430627795504625324186732172444020163657074643219305509209045288397292908430019462062637792113778220142113811659381424496290646689093536627075348706002920173228148069805355900606469556894225778552854623159019824243958620777364552772042546509125906771145682715955811774161353608920152973756838304002535875351753092574957792103717289834166791165030981113174050642618374594115664892742908163790680178612370293663012394029310926385701070505373684040528984678396309332335526803510275843577602979393780798632603389509109272232158879852353487412220905322705437883799846693186398795347528788526402984604007215762117053399325194973652777800892547357928355335653892171359157004383414677494771523080481643981983712527235238562196036420232679744458075391949515820218532606863976946793069920897679176867511949903631819991896567316727031871927770236643877945102668431936634886257856420214406237572905922423475032129033111972191385136948561784944210564324270971331913822180238384868723540223566810852963755386006117129369578011907455168030996338765025545996712935249836964881850643870598808816436392946580647474780463205894923797588102025048776769353807194607865746929365968769125960648581454384352511346956622326702183053494011263861920090957050927029028237004818786063919808855331050647802902402469767620291559231029481109874062064815020580326756442509961288151848979165128177500897371027853574374136231768555330631466818032679129638637376431903940296611947303660389065868782841887638926569304226917566128248258068852518448600195170708230717586999863319610305698959446975439625201880174766727946929866127774499855299064971254862785520935466367905255693574718384548139815687648106325236436171609667725644069360374546037425178614491866980789441369952457682442852424367202015885405771251891729272486460761090830335370068892368060655525716714426540719205585066224696391013563389445534258678606793941752839456189404063624295483722014569362591996681947891412959556541198960332723958257821385247825327055621335901622414060786268612584657656390062713128718246297036324496079800960763839578153694868493381986793843215326076397194881225171350617869804295386991662793338251279433732959329141456860217372793917217067718168628800264689515487141651433422702986552477244175104106984090562833371765300416784103110474608715769118876961535155382628333607548158670707687419941234665687080434009183011856374212675951419454850727274895508220875773730536573426196563249520532986872552561488284681095613654431438363532047003797204686584891732809000233191347360587008725374078578382798461099171680687325387163326338839666257543625517863626005398629287401886713457445767234056962789664742229411904879512187719751492844975985446555304703241322496917650267093852548357001454817616915610462960867583572078571079927886582962059051754380534542705436463435890780909268936290000363269297741129693611302288903319276939290742314940707797335224287170588479770408723121469887037601771863435073990742445519520294228089176591106613517918079731790376866665395821947833451593426244655232348758413577185366336249187333073917543116241098573470533917308310333018887205914934164532814958947824908496117724394465188750050792200720986734807959715759878615710856869077305711781644762658437343118834807470577842475696920986690718887693257983127911283304393250652887464019225054143080174259309490924695462994394096765546428280492200974260616959421657213928048277556097975092686477478039633467997946937489600015110911812831614756799477898799003296149543100347944176634837435869136281111343645988509979934835149868693808045065215829737964183382709075280959144383871652471321915362662973771625181626668509040642912373773661828281060631880926743229487792968948560707802794289487757888976882798909716399769574428274005939004137192497904229093042778601682230283746669936172753777990929206283725730039950376483534936902828020814461486982156386736392472738007276978756693129202875620975184551127855099586256782177127143887389341469275218620825548538711011110650784851510713501138497023681885436321280939223441462981393590023521046711181259375726563098827843806994256589199105087671350059563748110638822360675444294557834481712407016081239524928944250305209990750729729961894782091582716382530539030400798176204510626459287017082557849618023016406201950302855391945463872207510909556885894229144849393735155730695714922810863722451097463489600686714704781576223037975247123327275258737133459422704778679807425108273228404350275888528474518655055607403118872302705954857552296906952934615508062777550522588675591657316581997686631591836227834224789269735513422798888242273292594189998192742923717595753960168190117116492159641595943213190616393774074070093540455014153137285253495126371003448056374960407751730125781086077517947051731343298006217224049886243911538612925308942849751193455015169995334640669649335606571254131324278910577357408134459243682819407140878939980340385799006394733973727190205276484230942396965003726201829475098920611669984866214571807069011551570781015436052396524231823415924966855375221910894754540933602196598960996054362493100291178276729282321772173316969301656764648062328108227129401766222260462388014751330657449227502165296103579653394889764549549956506844220687758392196489202498370040606327569197646081936052211035656578883967025051622278009106224672392402405549102441874507851707055644872007622469986402046819439498714036148597816001939429713239090081929480318292707393103887250500785303555672700377186311915535303443484247203947722141673051591827646657922909591640439750014757131964437633226960268492858032124786493566219918093638971680034915854000987792222315353302899510714008290120091347329635738169332950371810284467440153434291412439429604460166573222401485766739589829375231335345389684590657463503163561836745769512720768337695795779279630256136740026468808928300263713182923786629151067499412473616742052549409093257377682075540999929512372820264940262583694855698219183209229437406957006809378727604919014844773383888754224773411059907526081175083438176907947850072807352878569393438916421262123347373684307006522642919830849211185062122607107276770392465105107865921135293986329759827247923518497167158062167652519149894923637942695675671672087438049750239444567343014532441070648730839145593751177557811547072416060860215256751687045791905988603519919126660710407533415125636873160927488656516735988254224048589161936677749996342784932267753859942985575218857955777252471047372758951993990244758899026406378120407122129365370305932847865056457556530088312452799329280874704355219969388265791352879617854618400659944073803493031978854004695104868126391736744248889379061205055071691734534343849491201623333543971505674046307983009092994487613028899234497885191974414593082795229487949474925623394875561934832014597039521551921586509483072471656563321150072878833088125118868554739159480194088217395555201451625679487643189875149261813293554112641973452523285257409149427005927399282682868568083524387808609343282227764680160795190979758337711877290818339616268408860446737332639833259493710520020286255574223691182072304029349166108367213376203793408277203892287815240016747924374152985348969357970165482894707413651815593363352151353504386226449917419568279294800124028856903680845888883040474302974889958476642809335869424625692068867320264203268567823789737925545515908888860381887204814776484048248490864006047576164392558800156810767661497210874943689507392590283265861601332834793496266015232308940946958880983872301819447141410083817337955873772963178959090618761439015820123178192219479909269223695089758869225003182194179722197047117379324082752743907450320042034079710204618604845743247497134094263051417923638059090833121749694523806107835084806312024382796283328327620720281152764541245752623635551123496360247527605817776178216750585597215397479514850450111117963210766181327203008752359717673040683148694910026070948591998423013233851982605049468946760785778935361722694632936205501275410679377834509562293185542222037127131784439064150137544755802703040729386374144687189448235396266349609121495177548008673179184610907080830150619102879518056012483879852501743719646304299040967727347653501278168431921413293597545184811745784734120718462879733765331350732979816338215642425423956975625370317404297875658790573233003384535058413000727081257995480420942889926122574334737139281204179536383780710690336353723906894210858240694144893666781527800182528444221862390224968993438142727952409110961067409620627646208306825352922871099681111489175266070626440271636782850144733443653008616334964703103262998838875613811803670375087842033524801839872468007352199261351853294019943254013108989733265119754293919372406848213624735440431169996747330096267319106387417141705310149886332897826466327246756712362313651296683853895760528212789907701181162651830362207508593284631816727707325686318361582905679460162711924756822294783683915450345499415252955472994676917467227484455822102226279608894066898123972027143880534695404437908313436795545858239192849327212696700809364805604846984906975278613066879568472514533518228292428311164129461456009367599739944154509268041623737444015188227510010878501810180939051524232812528822869467765978025976606220960741152147577545257153364662057869008547594304705954763027818169395374316863467796415690856677073471951235121849838801945884271907227740565586344476391435761160122419636497812286678714406465762070389948181302552768922033410090810480562069905451464870572906229437021672676244052758195584006179135311696497816778919327395216359394159229731414087276856277477269246711048946938467149746445221830086323429517524390918284897044148012150382857179288203047148960293483573534513786491029396746578167250343404479388827487785891723904454161576147449770326898882855497059167236675562294140575579894233046423456437933712305966915832882210422691429117422000620427336631469786086582761577535314555457267568801655309906956107658852902125437195483797325363872769490417271339429992664445754029544191726173018374080787959399129611281014876621019381055802199837336402288794776560359640766995993601519001070890206389206438785411351598492934576533826582281363934321084867102484326106766392396432875140993896522268889616043123532094684308368698616837598646908813425551057598496416207540575107450716707611900502665048058730395607346701056303589363647942330894060233914862428166104385628967302410422078184996084844222475287384990479071757921397157366790798835767359507928853977862291609431337328886514698148348067781282275509803135079749032763000817008157176218190436035035088998537215036986564693354189219425280170395019992960303389220508897519733227913196214250246044809505112653761475287423630047219820688264538179899769714970136154304043702410020732742568928574226682992909689823623782460122368414149720586775336111819742897598215499815815790444029510807617151458743119081925443872866282205111074722675322724415367390187523233261113948706537762628785330455694761251890466816280962650279309152773033248251432941990187544157313653876713769077630103487619225341766660556376760812112327261356376268146586237995647883554696935241128418703345877452415720135717246625169624709738531798912386699488729562388820306481042473008217966779210714263887240983248644143891600977033691959930072816042758724510350580375988557923110679773493001632210671794359332790032198877339305135063490511464376561472655599452658167723011614529213231489978089754302993320745905879212796667172254765151577198545172261764090897656749855815458928381251022469760420385954055502244312065619651867715326180591776771714520924481181264651570578524590990756965014271924319709602581778484355368444835955955076539716511445097757306213194956724135529422684878455096648340276508823544823220392400356031118361234898865414419182056332718796623330066144437885919044177371128135390149538387350435830274084560066169456969329369941762437291106901670208833339501980205804412293148703226047816300031231428421045223859979030672722101679333734298685025878257359901173947602195407044324290711836012457175896780701911079493500821129492156020291301341547763448332703805266160023181159266042731161866427436957900278259208689078163932115632023512157817431484668367105395698255266239204589909066443027275222538619994298062352574489338831397226716907116831863742100258071768854398764153312079091871334687332067226646106045813181128993431047233872604105097504268438144235514122290581595226839396926208274484582893412874763289115919925905208784912108072079961789694453800201079677601675538676550420417538008354766325445516610624743313262134737771403345396706025902062412231012734346103369655685175228362309290472562866416037450476849955979557779563771408742687375005688229172980577889406006314149961942714317772389661993293176312820180315327562613358689073386541545357375601366052772286030322339924653628394781766232338217326117121253610425754842080383618331867274127557748269671927857029085324629262835439213982965374663790652904732423308291438357648046692509668220957027608138165586613718443343781402980154473209590482743804975051246317771249266073172118021928859205092835800667167691590875600101906402491865217849474913514612872503967596687331054696561097821781982769963248143550025900111502987402642611468304280621757573183253239814397698371395609250637620720152617342575004673445600000303496389899849923160813637516089211484284218311240608270154114697084179355924216550493728641927019636182293949399122630117231871374162983747204420456365931635202411403567581039188807434223897828055792125816582143909601886299959534850159515578863170766256281275694102402176325148662873648187387467578529623985671228505034651176024942431114684662399116657034968445983792931349659150074995881961599275417197667234104114774867428767435496797981933357408797763934591402999619854947347768625327902802505790251238532197046556986965073626332827570659842262953218147226346044223347614546876778198418861703843093289263106856119193818589246607463812420643034673551542889054661198178807678908346667768549982673191790611934577662627621824752790561518060725407795078986085415984750534907372596372821014689087766913458358031563555220874303087697104004002058946696065511153453392280389508610732014132530741131852608181580852530342521363892285233220266211041215480885737480972705521925061942645234204441710717013466474609774397407808038653770556711103595696288723854238954248753527447681337228141116489690659010548979987196545346595054841182443381135073262863502026678423690669793384760982212377009104395079206592356698150824444393748710279519790826486951978644778397454116221513629342117041389277071098552973427831288948178785282892054213392904456297892733387707120370828644165282878088570056947302549783016279076399236749277728204260592882691425262689662024768723833549401017343788978077341021268418782039425668789369017873452025990519421904809790546499651924703080066670037343172708822547380874958913964208865316273280512695240846817646195241134767132236713723818335646579228726348900105670029773751926629539966020849311891499447467920574682355773654361211738867165140288702750730346713721173949091271138133069917184896747648168989523238988726895269311605221017119937477803973737691827100087598168381248198483089983111293442380969515645621495642871133842895917685241024691585834798753020099959739463895175262846453093470470587062504232246767123283181019428440945150381631104594897340229905477022713636517606457531822865035005797439209127328923674301985374156547633931631811913696009239602796239258911510935116164416062600695903558470593883177693427408519037267941512625517805257875738910215018618299949429894417634805150872459354026963291452547571954631847537883220198570693988959082875747561573136560024210131185565391217808095034415484277154593852621508422056710720904429796828654769440997064621447987779088728708520828468444833445110115268183374751308033245269596904032872596609025825493793387972878914325709530350980606893875180675997019464546044515687423433868847148717174549656127645379653953829965541079970772979195313440797506076452158114365052807166784966164899961279153837292821466217273108377343085128799494262819664741393053379579560459381641946925182897593731466755246500832557608286155503563205623356173190885199613801347823019549005623358122446361474913198282099719207920163042092659827543907020686827029327670223860553111688015047385364280538627178590855595145520441612518020301861760566938487188825501644346924058985450378622738217383555917984623526989924400952230763132311828386608459968633816523054444737958155257326937122212269672404385629857962929334676175699606058135061336564735355367972749736801631164593810046140729699523632970533081837572693481597660860568745751270876799725336723621013842934369664116672936792571776310427583946171268493648589273940144848791463683343870566123794067272068117385083035369598618743811786745938964677681246528542681233822820049678444656197959802036153722162324380087505003339144903555168374169384326130006011336692455237044367811008307568096059360236025280474980098334721340062855365150559959237675082376116204631518721325152965339793380691937674361892901087259433164175216539432474977161130185326029994355900891069193827724045757413854577556903844859352758347712143846133615060541684908560456395671164674724358313314413562112057386305114516897654469786527702789753286717350890620945850605134618191148260853325613418021061142361577278059166570858867017551255052067873486928987599003986871882179374594500867070561395812774916224373413511374075189864918899615433770983152853364002143463261749663677746980529855422021368429551083005350937193972212161552347803342988338267326812480713031809640058259245706475939611002641724914879015787728426610571241371050794669357168644230894573687410515505119073780008113506384455406460452168478650026201719880961741919780056497286871598484021766409097838055111479682913365167260208230640054716558164637793458079207035081154218656556486051269549538735656234339781344230159814173481901145604833181512621576408192496270730682132120420046695576308061674495420201290219104746439226308389309777196756861676983518394791602818624135157230863350854382372709402385557423691287780325744844671822792235172521390240595727874799284810798176222700309125480868651116097223089652271161929633376297198510560468117667793606546931724480691052450108202843459231515540762313383280810131349249834311453934925420313718661906910439985931020379432208870368643080746637796393129935794081070920310310882638550811838532866042591189814023799643563832793734373270279245235085865311825690081333444214590776201320191216672132475729571207220493417060052299563935324589573827701863657407967066099266175105635431917347707328138270825730968574455962898605307333245205792910970991950516213901334016628223395413248226563389737670505513639793283706678543437806150735577445124617170578332906995762409329649606933805708419927034963804431650014445929839359353160142397312383383322913238846347187411899835179246437705918339818637507826782907465979568313525417803454685263763952074330582742534020734598234542881726208014080998573372931950746174566176326700802564019273777888517239735653441845697973017532571556428840280221577465549008260623208337408565042635568811374563360204854617364471546201853815049354565997929927871320272738154716108592423370073696937074419914124621846201154590349485429897695007082169728349505719299772857873456630353437460721641115641642928624835141485097724210306503217368854259300456787038098513784509330339986050008789763635918052088125451996528127619384549706542140609644793393883975997336005969025514104150295958323714895673831356969337291260786081848101135886528845995156511185170911524956323653878506852771435056306571250112103007645433185772752454314624240453082960851696789393505793851412001596971206658383855278697321963927164049143174330056929695450853521019662438095890589280087626597975189075553049600887818227195087528627479771574428364146108355590741801099188637794977335609934721971114015259955015091276463232425951110779890288047519828720910443004284635449548798783350879147454977064408598094543164988054388274330183355977189747857969575525288414924967890270917885442286407580176677670280103300656536685277101529042472820164608491629343078181292406673054318301378611047117116850580569267546331486658621200734465067729169026866376906069518494908296279555543414743952829047884083649858814021464859053927103878692638403027641656161134595932224472663036531837788764067610058630497333452765131186381586863455252390511126042419305465875560904509584741073875480380574595242549984958262847956852244504435950955954986291068346521227283144058185329229922549193114250894336313392863657291908159547984558717756722547753338655528841955994359246534941727650972818577421466311945798648954413772093079536531695185788202181688630821229351679464950909195747899098572267410996642263718612893860249536240944583069792478633798844147105250271208071751293157621522113630763520834667661752164611154411176502594034837130076231906930315629518095830573810639983892294627807848318607035775573420987631101751576197344978798817579029687415265520399170401679626512627029406135661457043213549095269971161244414268993604938673461471658618727214399722747539306648350516938514409927774950758335525441313499066913523176716324810076425142509922245696071387339963224258929254145930159200889927860690258690973657641321436298999100370344421319531733569587536785986226893071925641599208603805914848938748709339797931675338488930206728306625543202241499993267958115099279557458724942605297891221126365750534332298852746767795365626550467700025830225101967151243806335165248437322439762282327613308795600492265927474098847198696681350551532542890379996642995528855588349199033020924630145520501617917591414794475239340082785984313910059454202089515254610448824919356190472673139743168357749851337889685299557430272292443468187960132817557356332288313867293585156771090914904621054521108634728887586660767385540773199326715820296450770356828405153173084043916469649856437325387975354309429976165157471969018727517208357173983095604947183454659155209839710663652619153979977183684777459784696038899459093337320180069719087236944902057281559197537669339028294127506798712189597060939150538426402641679436609110590102316789743190761197636414002228841742067619857914352752732802769413917378051261505517698417360607080156971742503617731738559572073503942880195691163497642887259880620503978556566719342058507043529996136498736072947356956064036389608938058205900346813445010368201896130305330714311370814824667483254626443408738607226242523680475457551473451139544932647121355335921277487040494417565153812369137948472681154207496429773185202305262546800595746428753393509676256229324142486314914685040255888269772410595456902295007023216666094081754365619973142239382643755859827255637105911685685341510223318140136238142393091772928850160240233812527433704311701704804052839657305550595189988530814749008250763304391509847821365538881920831499016590795781779019713412329817223097053140519630457429354206655614481235863477953145244311939929596736253682388003258805737236290235068649475689036578254002426270226337126697442451402358589518766631214557864802752395214492724838514730000975803778031115279299155374577784480803737365127617236779085378312134235259969351935455687963603066403504431427443532589407221949570945223396818227726079149799312321399429061505862509023669542777217990735505408162090624106862619502884958410889917998831679114745962741418806142767100281774454455368396476494529984673609616984983935559126878840435359569523887715764225520243150354870766487405953796597131850502066365862394352402815506638310015649061188849661988208144951281744623450330409106994019867832643780607464332997585565986708955797298313886579200395167805566105075833377919701272044645742533353492761279969418568951812765097472964094450190629708733394534825270734610181034891046542300091332276084316860464952252596897825776184248869983884125205063723670893854501412778782297217012924433062960798318732044613809721760766821334793670503919962993708334664765344299823087608679491060388756774723138930224195273581019642880278249447830764926560182004434631058452518465986747338483588610722703938996845224659030516639586901686400179928554376446093248917837301223274189307803100741881195616346322830268057645720284676211888669414189729538930063739337581748575530013799934301802946417893517986070392052764218427855896000734445416462897273802350931713281935235232762632742992972316939915743972008077187295168758526717273428375786187440379643154334352158973195123393237772991078222567904834639299842421587123657651811701585577847397532210862395608134411150899270892598371665298256621371327762779103372801261049275821433680912690826411791434764891234837150498639425974811100312093300282016887772504215738060528344899110074253086157041950919997812299136047452637283781720972478065641388585110115243925357508519092545850402202480677575258657058671492797974491701587230870109966357416428630287384317903885782489921739868950394066615513069028556568929473960569381849676210614143350962319512290547014006501998270662992751554448141973396429075621662751916522041881493011848611061712508053304694698254357081848732568462534678688627042136800059462707017843691350263836176561733029019380836265151698673723609953060810379237999074085319848633097778034525112093298473565304600851872657392978304798256668107948726549609549158060233051737390763374077735357879703878169900088733650763700507990697216185868634134145404943518377789732801497081713807210632657389682294142983001337463272317020037479732886741420005644101882691430447879951955908029226515924487103054226771941714750226763249309593102416607878565970315298408795253749811467003046619275132249864361215415036295550722259904879794647401128763486501847309648967304623170025350718161217421954489148846941863754151004170979712796041214418811812800660589796834470429917348590238235493343488795403798195505815960415347054295272794144208947031389776011369518726021640066274665256151902630826403120889675967743122113928172352203903978258709825045684197335013223646639842323435376319560102600502665891495629299924193561221848369288119253700601449899966899455408810830596071184268891400232562019759563885867410413766548309007727580425299968370322212924044054146824404059584108357585197360296760793019443610353454032683903166847861145894132328299100328224102424307019053499068889439887383547674344194190065155158273314691471150307782112283635089290539846149362134857893955243164233713543727590355927286483019567561747460221379235599018375419338972962824381934693198766301088901143939688861752105108119409044738292880478467788892227153253943412386261548174874033683390961463406460203722218883499292627092727320982297780763683267740545775153456469232146732311067286885783119678669329657584825602988467815775701300163603812309100425952300296068760432170407185009309808901312520013092060451033260405348033497254788986489235334455619323384043202692249270806988992075472890572534760516352407654352601946411403348188082576563966615283233747970119135652090821617421518035965169695825986929681415824135365153920673445387680590126744201480793196763189949491876960219554687879883657194015492919266487672568077231949421979901001946290340915448210565630501437798576807392424496335472452580866278009715207115357915059255724902305762023068106246282043954930927362392207482500383369828033582131208097126252310399334135521204924892890470049798991758729837002706978386149700252707756494390230039826868648091321539792344400320501673321154240576171954033611187851481285692910953787860451688597825174591061843605996199299336865686928953392064512257490916251625926094851357202753174141453480139081810758280535861633019168857717894182603705460612016992879986500252679799034669740367762586173415640779481011448237775835086040316693942371014593769897414514006172813496843886972712870603576286874849870598419679916084417134843936920826504939149004740373719598481763833423547436349543649727380687479753045548892648303138595403655140037258621312282226873255678146204689962676907520448976072295040831963692873185456082209116702099989672595518595700049559589441818319868578169689979070765421917751003638760355804672316256820327757982630004815452794815275793001349732655378600248306050176835317169548378527139007778571645780722608719072834003094230633866583112095128389189829741878628947546549289018718405271321263482438387710548983607370405075229498281383850427479774584670676834621044047129258499108959792315409025254000716962560523634916218567745609886217692618956974205434716719727032855289225243396529196415988703404958550273108631934849302779528496697014287643880115378996091235481587301434506715605447947785829520162537883981240612816189450870907883813924454108630688500610489605834901622334393535286909334616423380300527080430470589426824058669211584519555095991723224007203438160717414259742709515220292735030728634007468336910002211370822590292829343478604490389786500625367298765686784909559683375013652906075073278625489391056946355050472498729978631358246943147098737776425052841541063171928913335006454604994572675925433605950094163962218305637399044236764385725488166255041474793754950785812539533269728037429682553212394253908001240272052428179933174771912249720461622732362008376124271404693249643055576205252054956349110971594112344012782710949929520572355499878591244418661631541501413376620380278008315418729371288136739929358879674528297717021712076137540177258654895240126975480675337439976477945400391311553421201949287694135767417312468741804653741718260713767262359339486316856126870812077931875497974076855875466706889082593880097790369129418991165759250931009904425122329298021182263718788224359763527952907831142339762760307366116457578765473152421612760524943877013049519861111098802890146852164719326475677041860745402291698738729419481030281550603677297566033057465972141840352555718453118058467361941476730536313903728208717368526967033580956090419703470889597103638533388317515573516883460501821223131988965402063516679899169839353736927626491963086074286123093448070732505157404612498643652801426082623671210902606302989717915872472720056547633193428707972912674849165885286117088581776753533712553877653467658332095216789363435665139464401410635716514482037301247606541987554988341963741212917619133136201390132382159317690526427670589219370777440881520180048626052138469449424329432107272141225958397036304462010754241360948162583929867846162795837188900638903562293548004587299377627213307616165876973575782903284308806838219587544210057263065495434926351665560821854633649051452658107461215289820764204518820971758535451352504969490677853902238936789104361608414144981273017142706668679284215530046587222014081014101644247854746991502879050594308442033666756356766430012058110245337502684749307219261957499233488475383769508138814730462110052318873925660881922189990704033157344677094147148119323311218089388608888255736004059321967990886788034625324650845633532328965124273541172441342920530397635956987452940717835949627509367615467634921952717759328744264787064634464010617043366951018583133682893605859280778960317475111112598208742112215152387791202314951672431940293848942384626000418582561471681015963843777992036698232252345472567054335139959614781974576737015565736896615585934251581531635025724317013885054689377023109040511539677521713921240831875962104251068160472324930065801645654404140986107577532002151817797700880937247984017146768224387257184433424741066102283490388696633988135546716279544055959189120797912989141735388433125401630923679075288439597877335877228808294993110075248794478488296677067912182460651305747256767584454047543042150995821557311284989266742099680405845073005673143578336853092754368485265893098553308945102913632413469788736738507042292671476786366187337455527953540936708541999793988311440577938752042399922209506367786720783417130273999953388566738414067514767611104467374535601450356830277249223737112014493719185826928553194803388876754437227578675669423312164857557007051583963640817453981557911312305746605861673951674996518863378529759139037281586435254766351111788320241676999588185136085207506578037527435925351776239913794980872873009978085951814557804344714398334388215375568326054988812179931174635727348748261598101709060213386453338368398233043435217532160933191246104550571123939282486677038155606623441728553776274429589247815424282615148256669718287316759559783880335526972031136211544066624534403380254082135070424297716112006489482550251411798444676726891607555088347073788482645609830597286297444631797422599172550493593701406463767040800128821729027086192558857892708639798043908991097223926883330545322307638716061302769572318581385874339164485923262264237902249970776734162152257167582186534919597633550830916520434836444183710935174886170924007218303556653235076719344661451340082700064259051955108486296514743298678090074274982785412706780113347988071071224741114282135244041923914604073609055898551060409592925082281230556898886733783302163479312858070580971271499797950287296998004229146733189633510283781333615746040070798088064328719562912062255807546330529680311408430988668227985251699689342138521531504521755868050477512336365955781533048291088461746167978408996840782563804641912960480691315766114099009261247179951082000273453298688302485417480267670653820694119146522460410681321243913088866734052880925047478280599840102540360256023017274824866205539872935284121794350282814901159391902818699262447359114539653094806652390647818462001218679140386327074407318887878869230249645590206022895853374597421681458949926960029804958588596838753936148549902273254328691361984597902230196742004751704821396468479813695821522972000778926852598540727698669268182718762076632676162629972422703285752850090728328571398899507080057569543548279012407992845569032088993335252572395112722369342359134386283691192981705522370504325461903051161081844617697171086826796104320702976315163360001428079220969891943554242051729930466959275174069503199554364395805505001002453286115183895618170884105148441353536078366668322461827409596147846188598179599570234112208289407750223121551608814440355360443157511198102536303021442823446539446049657608844300657180966855118035612356525037981515179837905313626930084221922926866270577619916139332933942539256717253090303760940431698714185001330524549319495348004272436201903608320417936858832263070908429045016608493849425358727286515704874280066386478730420547391961267692279340372774399936971634797435742183945785656439288544428855751521795911051901596573020830601087612117949458229770617375313006097532553061795792021864431429922854629391064950526943751316637240603609075435818026082725007272185636867795534407709468490569927354791644058568353474205303485263481084590445620035611113662052418834446322427419514152317501468278662565098896613436752076643879880624443563486419186343446823351276232987869112242635940919445643058460637481727590476800872224177018785022735846387634515759620985175601462912599565508392220452767275554895251969285628279916379711204691988159779667457272443000854673481097675827525266741436113334653550300813898290089323215733973204124581729816910449467381889140113012741054029034949141756392039485771674334998931007297929402103422817118857955135504597780791053099214322031365151089264146374884581308837297632412610682648837738968159100763332357301120039116662325681654532801961391986062627832521231305641286010335689250480674703576101627456444774835470935985983310713768550595575739252413738359230837778798895357723941090186829750449785698218637760913068484693572771060107485086015841352574946612468045625090735069934752022343200223816048963843855008907988745072813245677774526769511459763680693945167610085167407874222132754483321098343832971090243042708270601586125141892716006575469306341903888467701087719328995819128910834988948088306474604531834748697703254499131779008922745613734156703214333012227557308029588859940590986101869900627743126806968044374664874347526522832664746097028657002879051054564357607520902381341318393641399167747732796094888273818440882883023124846231453915123530838617222844203043210905281715081817807872428039331015641888278066940437482577567188888250782991130343825113433435088793958435413825538533708966927069240992323335541675656665847445458037990109303541177099682860447492715566851108006513242911551453185918749300258873381976574569882437893575330133467143666775321992697408415543682193939660270067857605494016401555100442639886010774687229257670220334119966912532507333692845001237147798759921730054507428763383181215749748159792214063638103884957938908289693502921166956754071100383649354800801920133480547207515884715698622871314292448812203748060109257421823345948120393625876059518467976460641448484981450254247838719292754657732811167130655351076121953186321892890166914999406423079891600258028322442236969671793667495237916862824457092234660693475697682155798515163636350517073169502806093982705890861064311545741009198337584205229242810547736791907090985398250877391447711937586604803613235046861591618351921242977273861756975982427488997370434432135681792059155294220554470345095912640216282896582287880592850159573422923973764480590956420236862441449079452804771032288695351380774031759017562934433438104809844118908455850501204629280922157150469086586555090402796355238523739588209493055637107927788503532283773031781431227741420206815863612885465758361533032500000485847815725491034751536961542029156694391186148978161107909191912708237927095115543119974296756220161034522623527196289242942892234278829127085263519937091478012723734702680200929669505187537475258902100683776272884712693790255495287415241703940231178505336518910838292454064076486704656832824631390449429436839626957720725340742629216073296527270964027034951428674741465435785555665492888096169546340129515203652024451134306149544045826186911446166202413476353592391359862082015710075576198657109486230582010944721231455822580718800242339958283903349379743852077915431347710935019676485449318503327393250249231828176770979257874605757031737820816919856996412146341648687775586951316626641080553647084781151429997189436131737393129304350084520441995073369485338598141428466080931361730804734084143212845755895661007927122133824588034338488302089343468278630932717885313461113125484836975289093017579715092576419326441434483881782692638476716671524997240567296501691156025741032348805838117963471130459314947691182110046500511179946797356315666469581795452230852417816376442500044530382968840478297051705965486190893065762756567286482871005103929278174662871791478994328399634206649716142847249458426973119584841326392349648971430018350143108087112841020278364233085723036849280417888554820954071005696562969233991699214181657522130147655727887420105200856950757708557279081401111416537611309837587869808878977354536216923121368556681479694192355576421675672058515687950647422869434836307852158409916525695893314750768187008495764991951838186126848273185910750748988753925584721934106665421709278777392752252122713799954375529500320937902396058959411741005987969298679104367208468098770546217935879128929894779540343644912970330579077942149511424804009367447902141234946664932228901255455503162544866070416808223474437103748127590809675523951305689506616738285813270229655268583952041018731298853918857271723645040105951555843618302042996574892285479239375908406724649917433951230743302341782818569760171122833081754161934601951430204412473092131943664664251554838692688657792813325326124974028146863088046889191047470008930483406196419916560881332865834217725148064175102895685320563739378622330725072807224540654186568885306741506807270365518265855108589918316559532469981665625817172384238120064980971014114413791995361745957645181225044838151271005354018218131916675116709861303352615254444068351990441168864512156083712774521833154552502789231262312204393687416235345491342701376807891326595413752467023671460308455494209808034432550327470109867611088831174557041726362279135294186036608972555728060210942633081509803822310919919731980620016855742632825541140684331191880524429052862573270784779047876251004101312909656657350746868751115781943122928327313060307382620337885656812497515487222131053677524510356695025490531910078404000333715872850413880608125380920019459172622189781615698406282056662612907203936889936158417296591223600905489226006766679407583073291313295573268956254460809445724797681389393828224339525891827348433265725250935351550666465820238481489666461291379575384710693947860362549506001493701164908002471795896217628484614043811964338943784324332765874523611294940475662430618849784192814322483798659209818478877128580343200395913727594131007419914720772782883951367397930574227926439584357763563913354465412789371577696353319360820973424014358414160455681767348405466806044694868061918947142960004295750930457946604628221308835574954532710548308184335858707816196617260123412150846167203116980143787100934690033601859790488435383555560982856628488757822893420531680368756972558600408925574540202680848823608699901625683288749183736336483095757227170820881043752693337569146070112738905608683005940948896308014651169773029293631696674893894127534914470558099638260429277786776054128149721230348910831431604777035782361931301648041783067532537495387229790045517175375545592313817487044450619372812195939969879544688974182589489582049226164930759409634340876097230319172249497092235729722501047927494901958409547578097697950764967656930117878607902780319290019597845781115954059298388495481549007964023929312464857792388188192826138554969710523648694695514129393259265344836195976752537615700511128385358429450787218012014237726866780468594853604737401309035175182293602155691641853624319524185663156980010962154948139501316757036943672151953949515077254197653322420238795274007824352224124102331372291836410348450153871996435187512298817573099718361965124263067722092819931042051789541111423578973130332333396099886297613589024389823790955923985915494708077374474487825524724040272772232736202619696286012957456173408598239528738347579768666650790115626460977032197622946700497421219929174569612069017798232255305447147929519869525160577428971497041202138567970060384621178987723655306770787221181103822485787091279587533147206020278143658504318372206709360082176009878579131066701294131977369490392705214438085595506258957593961633596119549688421054293164437274952726991829602756917105166805526591566037561422801316308117210071176587678562671743693563218506307300601447341573268357834900810772678492593478635691374337792155824753372165252780344237419685272965461679911722891149517325154307909228831386530450258177430995492460398973322896659582534010825691137831592656156939240396094224761516509273635058373895155391097680064866043635037785145296686579183271857048394613976183913397730796312864789390206442764366045749379788280327767326898637051022855127292707508345129671658760226096161689992624003446273739611101454105160845513455795699443926143779581250823292925937822374996660732531334193279518813775729031343799888261519769964298190139620618466063922434007614382409440350010270681904640333137386221039834705900590257598665089789305264549410169060992361746681565998796705583293711195807285226407050557798174432765583735625944253124039703123967583937304460664777317986488145230459345092472330045683678035532735791501612728220495945908002151024804426222991324123108094923588518088092124665676698125060813298866843136286638804787216207630445888451271916002286033665569473925334332544394561126185006577779329215994263685687080951443724088094380848598525897645911775198115017032938732052078640697892454436891137986429050493048793573342841351203428325040041917655853502994932892297791843547424972488298983006118086579876235882188710885425741218292527037543672063413230468075521743469774328545391290375532302222111756667181365985106505844661486659016948916103415310188641157184516623812113864654140395110840451588538653621646610035030952230309624247558789870948485845450850387356189576774600254178077576622574939365694606291738921268845207483859632734660015839292086436086415778661823729383453818225412112528123893522259271860494406175747907508935217246552536989779149786831881965327114031296327745855279883557886545389887143232417643352539082611737940670645700028244389920876815268128884315319713323009332808208915661078109065364940017330253276550956627656465313235419268251947793486126893180712962923377964206499208567254678401822415760421127231404045757503960229415267698569167884633783896879006034557784877087806700829494547773932220488280052683977059539447535557675664626276070313613329916353600618222094894975173486552378785468089980804911067415088700027126555496365609860804412358585979623212640561566028351037422639625750418297376761953995349867779902627160749359892202680717900609654345617048063591440376083850722516339861520367650092418869328707308219420971164882096351498435755815950527379597191181375565328710819516006581219808933381771516706231211564319192426102516262935366232910145247137422276165088002357257944945348687785182612207981685122837443553884683617336203441434160853653995198592370849245033660154072410359658987567965127793891799682338592641806820712635569507537490970564959317452577109359242829763125242871532547439770464413924709854174270225543608517809327515518983106693799729788479792025084565680568841322759293009887199540049166060369148158776115624942045377545798682744772567726024413874103847459188708163999437151140433636378721359369039028537209654991307687159726750443265003163360282815100721392030784924326605602230799157573994886592600369723115520615578629801740069132809540727275911126525006028249560390132829956116580782549621647379870442405427298816733411182773100260273363623218560051912492143605627736582728598488321197652326113602097732897877395003644336435396468721050201812849307969655222798621344889917098126028107909377997330489256285018671166154087655683327459056571777493335258666118743742278998260309155524664321848794785766179897735566770298629844255853664626794205676598694724180710269439860544999979052000937623713032284477152886577917641136213049614253645812187359099837005847477036971000763151694530024963323727364062529357365718750860534700364515267712264839298856803820549442017937100738213166885173550894067358620395884912263860552811523644166472086638662516030396797105086304729684860753727611800756449657237660366890016257253312056563061406897007671180087340808048459293794218008153836109978936141327446781249587719836446923836821658799887358207401355347906716102834752300592236286144446271426282638826723340447724994730623834759427803644569894775329877788619316974691683077583087843453021619563269420307350290600202032298362884359534122999685715435708990674259476054718006995970841298056074813768413740643131695631677502113952957459503070385346778940376878858993642687299044439402753311625708081490693760137483541933671976457059131415474030082222333008312091620417097674895239516903264505224914586724547713187873986693985056718200781691129415029191820452957748816161127043944096437539111824720653583425117743145355369672274128760523119115730468883099275135865097602070140880644121723460980478823319243369961680923730571167295128448362273472397021569155759177686429409226966986256637372842466190459760343669308532133581389177423127066082721279374964287312151755735961480689117167700460565879669229485856325447821303848679805600677967088459354453605986112815668358836594688293515805605661787334254776490122408580624311133734028626894088156117812503455868184115167148506710521696487267631575973999935539656417622589741323627825811032517701552460400984239719938476382440954298589098664229001300026335224622693692903800147180215823662436974261143323611873469202536494203392974231267257234703986373703274418644182148831145630557846565046743590437311812655548046341557663987893595709532295872128607557694641373516159525373525527174683386429819658203164500924549279399451420262614871758957244545630522739913698471538002278419918471573015408534062855389296867447372512683717710542261884048965245068749926788981766731284359365525156709204991262604310449136293633331212554855995553635558185735419670304060662921666483170580204073147147486325991638199938342123087585785298061878072329997846093243123938586324208264178723742705468100650968621349655973647557352353856602305288618412205602276559330377715390001995743969094091458879728835522115425938335317697232522711261391604686986689111978573303887677176586496707193952624359187138491460912010564439901643198051667791674159156350239060369247402294244699503883314183160350472862513000852931549843836435509510369938608031831390005026261921663812168142984316436203349460048816422468680853984708043959583504873698613086325828122345520304180689004332711935948480242056301545799890503985108088738844124574306780009060196071185584207850390708534605746112234100675460076077348244405486196889589036765183200999321052274006255538441132805403306164054178747344014591120908760286578875145746551445608592281210232141097426641180942608212791211853029604621860780901831153223734826117268476954121649355453444462387103500866053286253661774283114023410141674642740133537225981127867047974443031451325950020512606814693173914190775093083033098952980190549398917478644127008267896188641106966725193846631510578882787861854281501419648977251018915366245197445934618894066070289405523088422281800016370614280514747904601255785866440801240051588459346687549606828892635238487634505789600263067426382968890264260844436707067983972150250101273863685179009733764209096240495726104759186701036866351213794862185207420642713549201608957413107734263097813606867204266465703378863169910866203813462646228027769443099717974101304554562831733948032132028047704166535975117084632547762715122655210949955614295025204592666738296533276199093003673668364523206411124144879086845445799512747722823518101377311192900966878596305957474378660880256666368629327795635250362993440152790371772406324646579714180487312994400755636657750225800810677634877646592089745717716665788733969484721599570628308211081690675745708128458584722720473137825003787597993112653663965200266011892075286368651000032984503385376225000689373794382011338462253687255051883711804894364663990068161262899693431124365625656863490678561548879378653844228151852470285733777226007962958885648051238064150589637337441017187875995596963828496046394798304390155999583082022812526950962461255217097999295281924844177661451163837591909008351637423247404992718305716005955619805101623087928013868071979706039406541628187291854886969107044314222205506498561992905013213296155517445892755705502720195862051274739129396003739338092528244330892285562607465319810564987903487444788341383292534568045378689984257557815956715019192313823431725902888232740533147556649992206034487037295233764855082923279323821622517081777172955739724949565825253067182789895583542728649027565197100225331512807648045527130028753516582322324893104676456977747401818399434779353570184150814905253833637753057838659771845686294727566152354837608675757715883354782722199546482742576012370532826847642809955612032055533831883512019458710047543502293895136072514885010077958553020794308510563669590147896778688190835731408572925777016264731956789238389019984837339224823098536336481470608355398851791083619778064313287481098523642682609178024215243679037651475413474616991158717176419029419513252205162411581156550850225297290451818839030049118441463744227549253081956587889323306393145610847107400416026683933955788322120671909372212316103266397255774740234110553075302138158951152880044554256170862918324109617685377918143735554400867010974259004501492686056004739575207853259474912213337306458381800622065553269325159994941511785992900577203030451185276330020413964284802367024349402315337119691835030180799768769017542394831895294126640344987984637040188879473651066335547670964271282299608279927560755358234720045217589238552884750994760198009917892333794832022347595683307676348839553992607074931425367822201554439583170242769931953300628982956864416263340480512439033706667139491928424627592330006405699374918954496015328904334454561597853273765670043748015339038206417623143633902119284463075618400400148834593885437231420610761672740860741636137099572098894339478597288163861736434695221260556075535380503425764220357343383496097848858982294884113831714162374799155555498688366355284877140192663877400449837295276830277538218980833101601821083969653892269641966022394065861109381047798039493711162293785403853715875528273833734106348920346595163869118607011454175867592371313140947731639953179713908801263884956587065106799345439737213958940733638961715887881663743263441198833321864831429885263434496698521733604130270050105895169011502042898997578201843057144959590635065141495522834995249734950696010202902718353813274491910909501640804528580333756015314696375013681801165800543329974081993409706547591452506399090053857862231208641693539520990797411153791944101507285051983846578118474951319368695496669402746625482455029580596339879947633628942932811465445597806781581897470987758682327552292284891015434969349913481092528044198332942819205989588612610601349838655940484319336369189671230910130230497931585880786311228344484942751433997795363594311389796571970177660957841480060342922396719626547255854906684229767503920178005861101178652880863594801023440425986677000591447910446263305718602847702903116234676311995753504540452131864119729360749749730055909286470023176458040706836652918501861076403804043503682395582146819708226890131714093255337188371581553974329922305155278836007672684166047049777867135880097854059886587235783388986229217775836997168065437404846537539026166800609016595441753064104348370378835249590767995982239336069905614571101818446662952604345585600149739050758604255287150502859592127560141428386963315582650525244529465562178265074431119118887448332415835056954787903782228349030321862720121170719518042349518530904227229907041588032695427151421562270151767361112296671144445415488906235969803755528223286692066792749020602632371971041373162684298461253870360694897889931903693909362735846852973276841287467216092914161339598116671279660214379004697881061347740085046317900346307540497862396656677568616477822075873957322175749566181187463574482347182810242919479129364047300221370793723535651709781328526391539022428462385221059378931680403681606922140666513351450663193115439403625294962335262147949534222112220102215589808632329453294889542441617541701570417812558098977247178246836366622071505074135318244081842712793663657247819024724501783665012683145199741664184922982775209970425695101121894164831902352202841667194562372295750662319768320374758317718214394521575992930158444635849187029129373164442824060678654447874073195381322400105752663094701053540131138818131177915107698264803608785595227242607683332587913802093928022182897829498113728908212057067000766743781186201252832238592435607563442988991841787296599214566142902532321034317505279506414528936995543731340843954373053584617433132589735000534951985583748425796453670208547326122956542981942266279820281488516192316507157651811747634793685643277463341673972900645283020287471148871539192562244292937597310533152206021130419912742007654738254681608201403336366629894069101753817207424800712468499386513145115345559326894598886293589609356609550353647554606832927922862802658820917366746577456709410742402025344882010249517846873328312148393453272852516187286135191018969991643290448385586186727869804058697234303038888111367329931660925206913667626698005514155765352432703029302321764752594149589782293670751905446038944034863751037143435413252467418427979070755209191325257347174020715206885287682223424661738309866794954896716607202729209590714788353529306344219531349699347302332636732748795659660533185272370020503929233622223554490678417877441888319122867282660331825391602236072694573029349124587615606513988356103698788900046683788273591441697398294288684431800840195031530484692736945987643414564939155160547998323196842496385586765242187189002130446457210977116950499847548818183180002295016360773399128650896013416478816754318642864595440729193712486980091664148701210647936616290605294783933672487537282555597606342710344191002841695468747896146123937391026035842619445496600164967926747295625848211554667698641084568159433399898632419805812715462819445360827643777950890613857070401414881954172062872227731554395291231071307352680179655236234855942408239053036812556851488265554324072658525449059644741241031965960733326828909322272452842679503859658836684388236022884859402964780043284809595460362629401086116706315400231704948249932254586217227301825462241361256971929277189240892241741658056614778145786049916190113887761989983437237706108648799480741120021900558597206109090937822315357697943395430961013516313034594462433379130943221960489811538346393653061602768362835377325324739442197061349409647350516171361742846095652326798394011376956101823099223639780540219591251374171583488916581626665568698557695622964277079532989229637815914158806661335368053527244161225734391098233874375377541903044399077682764723779969696593906418532567367003245371270781462775221461632542289639735895829376603792428584767592152396666068386340345264814791157842973417316108361276983840766604907480376838171423776339161521082406982387091704993723583441452143919521742032525747293297734043301621816133364954804487227999347357664033630022177122224538334834535605429563123845737428755892618272113614634044585018040619946838914759413258964757996390757701590392751248716950330472122298020505530673230011528881308209858847136230994764498124334924316801676170403976702509484908482532910198731944709278693079324403356069133877335592667564626078800681096503746168795343554463166399095608544086638654447571032666018438273931103583833958097253273238977584064606472570605682822318275392359804577941035877374611849826598195208474301950708328732583133777155836622978694135843152739841614462046447656834164161877964412635543763184521820401288175996895065874167063337217148813352214960219195930468508710736769592971928790127703516004775720553142915076478529793545063922500552045988838264982640853513875944990019296659587391485133054716054633961192814558144791283885147297163547168270503865475599479019425281670924011672042999612648782474380172253836170641294380039002406125509755895097785572185157093298328129859471380374810589476179073310704971470402893194916613619733939585540305275624238539121783266732302075669255211635280511114944913500890878898745282789479491446241079169739169152330530781496850667989296191526484318281557184810018559137530612510993558206023437402646107330632241933045534437948714506086467061345096630184795694953158126171849934866165881500519218646822420789518980509819278117189182575072337020820106779183592726916017209685297274097391267278242465427545288976980311012746016890223529559991858255569983664695362172199162190932748681406587387155855768078768288899713147035109519762757723605094290807671716098957196254589769252926105707555754170209620773016514822843554501883602016515832809763837519163982715359368156808692087879484549377248680943962699146963393442119764028761866342084652597564467410520597651467696037744292554585160929257653165490166961181410081410541973246621086650867474498741219341429937219036000158760391939333298012621273789088025713458391903550217524915274278950723556077464890128635020738004235726178042804633877878961250856589770630374592752286429844334113870126534423280876087259294307688559352065813890262435839305454884651256243424230187108402214447046329991975412190988833882182710970100326088133061356663759508333586989123867912472409465420176831019189639679680331212381275491418751628184759447832424669798438439048355071373605356815802143748042599427666333091921821609989056567329643497052940769240573500306438085658170586998967368239570486805291006901897030228437167747520558852019515634779012300162338293888817087757749816547087184151543411472589982078493173242605005619701974070888139974503819318218368452727524619871221666616813079646739481954317794797917561373739505980969925184692275405317753307737730828163670768265748272045923732519511148302426456619972281393739516318378361624494566939367003265818265470754555628173981145923127985012212263225306879912079759087038062970562981075715299859757351837385493900122669628893172358997634538281899202362605293835402183549714893881454668326389690955568536991078725801563435806800987747127019940157567633968648531443684247852893382227570500608997573180946807236378270273391562547710587263034128091317907995522745192236350892761141153336406521636140682175319165307664018188263092665755381977885472699140840289985342067521147081832098773868537219786570564133300884738441863418570356839760697937713750409006848850801452919876459448996802874481247339013211851782181473233887200560369626941519787234607711032283344757786144650741417864892426817857817592719436877318383919152343847214233657128156254562737097663674733594840489931935568957925784115864096310267249060488219099629801684709378013384087792354205453846396483837780593312186554076286316059287817446442687070440752005426383582863351159942380677157414018600576975966246400194960510798723139492127249087814782887704257389558055673044854272181669167084042327809247317194775580211605548731753264440251564027073842813756248061265963161098753975276043012187113213952476996072295430807825681073014530860440974136227371467423072830537284092790471436039375740611077793706943768590602956196996297368284604175426078580446109501510571303164819546999422869552724110430126844080143300162935802383146410131248837429230230804346975204475247137614472628585965942830326434951027329667163885216272252205905640302344889786447206514107016436407562590436788199994697544594485516067585602786446099236460124038793960223612753697224046986369870074512117059638092100310931028946149024684366685069645566970900659401642751689517352796828426952401303026026265844982414219110143758949031940188619038258863968218754407739696358656823614173463275216515476693941356859806042355437084198036119770479245718479572273552659098366634046810426415966746077069935745712299846992045720950274919968309498734886837726858833661331556219450607939149360674587718551380859453376041593346165048053179518707259649477483920251804444368756914221241935214485329937444736276977077551273671129001085948250735489782557066035557218844710082962120356716451716969286021233118481436377793015929485140447946617614343720747914459626492484542265169097729453592601625515307341426858334437306575878422545817173818109194645744587724922685543623744864349110416231329471993649409909651538646058078929562499281652285800941415319491533024364642613083443144846743180815085718682406794843829860872499078441053652420947149862870796784953891097789650756784482198857794747522386135914333753254210470578197198383109601135485910944267416679042768494497460060791890255515463919638601186529188996986753087567051103179531521916125248722219823365866307460540213416908287844041633100332064386822121453249308633751907708767019566875060600345752556216198748399002463761314276424964067594022170061418041777861044257753320427292313202703861000713482553294787977227423363771240511647832720675575178655934689676583093091661023841737227025906071938586906085083042486022750436476978752550801344708470806233188097292638135597053317830915533251874815266050788329189596200739018357277408755543088018830534362995552221219642390166081771109295161133330644410957367716462575575519966419508816088507276606580135664673901138160631541861447983952618058244563269807788123614341278355681067502074846304859834682274936988143783119029194075287424667428824882092860928555611631058469862295036044798306959290581668225522429432112287940738422091891814363271778400046329335843559460601415458824336776610480172155802522916495506969722456828590002825510491540115878314604863648715244823269518781803151742471539043650325079135413175674387993424943105232636468632803858649509418521178872693216416735119090462945275956301959705120501682114767125472188893072116674394046406696731786979668712499604733270063893964497199438898098940864592844770934988609745756748389378585021885839392651171108316671766764009652248756806369792670066199813707625897426166416135038030867718724549809716031119143198574195141454289280710069399227046731192191368253820781500514796482040438095542544745280504322290094676997081414455685009028503674333307000230023000574490535362732784436997627327361130027854403393230919161382291231025554262564739780342422896254100583107012718172873652532261909891451178271191564021884049887686561764266681353787766722007229352014521186293584151984738689849849283787398862300486866385359040377511325611021818845019902807734205985360740008772914157617150102342107936557564862980760669782869461284307033018544625199602299481009714920101621356053421660530153073955205903740389776269719138534319253126546014539302391706932024384970467010442230908060499731327199763058594464701679401873880429036512743618964608587267859491202482719668927561096684144466955853296154200232588064346739540754299065973937025779956992936314341408054462369209674618935408577001808629957036086453831353367186448413572761594264511887720965621774981524472541343494006756546211798904950501883538828769962307869602996718115084288884709562128597986246435808540172742716140933204581976957623762826328411091103616512356972503868334656543343553401434939556733083178466937743821545125947162866804549147927096784309069263101357604309951143731295327497512879975977219050822494864782996360668859152178172359424007399960672888181161582724369733707586282731446755322261437424249309838944060485642269151297862720158057472635373295399905330819048460616186603511688840486491951064888175692843301939145207724842755086216249707981217066389058175992456420987198749021664661913464002845825275628280710310706048142523560659858442536046680010899581788593823610223140347256017070517916277902027318100183074743469401895020773805839397620015395851681202699806595232458945120713231621725423603520015749790660961355106842207962372701435898418962900009102984016498042317200000704316465672728351948336311399047220818880443025626122018006592382317780499564577260234142076669164099192607214052276902266607169668972171002380351367119148050009751506036883198981854239225367687688778202309248975768941899954264933497510884358766282473313617164450286878057538151404251823183430708817087267524013764194588730623373592099492432959759151752504208746205415173421207964216941666004688335032055599490773695077465297910282838020797593419209312402742240949378393562376556528882807932148865684085246468343009010483633028311400319286694409220926543167513126445670747833340004875677173119566428777866114651827195947520025182502450144485135141564253841468426262750341092558101831341686004904122757543795645989061004183448160707217574081451319422447690379577445071585990724785996128789625855887581341958744917409847319978229072535259519739391405893217275185195907380668903639471085517926151897538463311294582642764485480274045057138277801546491828924651912067541216033022157339673864336323154620848681036561080367149317186944478052987961521357790909885789507123905014527494740615734024321059363871504287164013489646440553932890104187166697707979442937711021917333527449870107549457187377149033994641695360104679307002962035284846351009769025817451447895006177234742084657515358045640042447405727770489120517480950617029074678186520924159529544620496638057453443335470872133006778873072747633170550095377495360497475429432287687985455356398703046296211485793999471458263923819485092647719291122586968163691907630599447217815014952961062288018223427630369442741366622010157398704656779852003955887938145302229149255469802519645513547105185700790486018551396386795786055057223044362971429591054163804590014901318637973047659610747337805531617926172969453463840158441354227270137191122516056271705238886882714875930654839070933223356128813474396785600334289912537856647525545569294619570960530001673713038660628064790295917516227680522612917662653621101807148832843442287730295734137409256753044921241999573214284279098317038613727609124447484643214162325455501697595914146480390243922026366334792548027704604683500347891281646722796214892915791386092073334992169617495835280507181288137555121193042371454046461178827307018513195947869648875377559291571531438829165167374343755962066906983930072195312357397895180048806322618900299576016275425199453821437947194994664034928031893270175494326298832175979941949848207797968883413474409460744694111916932366828504854837845694477816781031110433737361587774573745466346558089765763877681494194755321069614985638213496649890328263443552271179505962202131312693263531501422110939933774824775106713772713605735459637043649607252626490183407792193110671567335345715368237118610169525296728556926759862021101065292745339064534170846910607189125898682199874642775676705897580762424796741500351928804591462865314770489269217848357883065605996615723966101534629466637906426713026441022032369900358305429159975505683888016185519556421925991030493341521739043589224190928318295039278133462585144563094307469143909338553013110233510754253119458683913076783455871333414634139267598966578684118239641115411865456249950605155261468300485242250737034638838455009787023429739907383868620071054832802717023527522436442296216263499449222174643777395324680056411716160311884808448075548470125971389580199508875624731321606402138918572154719874114608387256843519166545194932125344731484569304553999516702720572850070093001112335298726465839561239053571682185516942508179112925517776745702332360046632998174029713874697857810790774244011067873287358390005797606999486191089048545454780742767822222319384795242818409929199546802739020464745239369563617226467767911763701549434616719312207229578705158999489826043469296576481593584537281952003588642118230585325521168547791253046331462016152877901063359695712521477113010697632130757688798347181512245615362912078240731404742810236494451653226945722805630926100477850797938211956515570830163942143655541197038647566699279240303314002068989812247361034799724271941578798474266556671875806691498337660364346802931135609696606644473161906524592755159625324256803836248358663084706223427880349554367454803304519422420056643553058325187751000363829710679085969623846179741046550051492493068244570169929073073378441534563873306935780874117384552340908003791229592186800657485280454842617333513648025608986488058112013723348270176311689977877904858042544837738185117910331003043192949179528876973202461913769196279358639706289372141321373213756639598616669504047367078004198699690323780557322354068903087487553254477145094591079513168019272949725246821885419121122076015909498965639988339490334661565122701405154316243948919421250392099451726229179123174202096913108072830869487731910984319007172698596291631019794879813483475368254641033931113686977284877210985453585091425168233177492056108299664714488679078376002485367214471538229905216543068703558680513504814339760202700231806431315941712580828978392074591142181333753177670118750718426660926470003417683853412607569154534307989165242452776390884548138085699647257819612332051584148637817804948488636742337851069124622682573868189348251236037876291353225001999322376192589751961171476513895061174753670582913201823390808354564507671077693150098551837053522173665644045300723295618368579648303164301299194614595389216726885572096375781272704045227280347860880738099422783750665264071590006234074237596824610891930391841588681291004436242466738925132697683221193927311765315075297501307105910244126116222200694181795648021212731342100313031394576039399426763170873844491345158383531305562987839798664030372035019780670149366952784024833456063913937636401608108018702886318001261442686562723460012877203007039373969407299046970116339939856917020544071081012126746993029471412607127954637529777593854249650880384224488739414178723767459140887657349501704745422594718993281450547532356144661271236822196683664658771836991169632380581936747122164817599197142205141342395568153187560952941224426565765286288675905779154443348924470619180563119207250794087755064982018278837216714665053012384580091121543779547777321507342270846037505877704988646705648664731683996149608013073437043692911536941668006750139498991254335833215828886477041489256156220125890887008030457798392575649805440014962593582554552415465533163995426577028929604227892837364753884847757514124807136842125091639948405250728912546740679784624130241950463564836753906264300833726733229690418385415309566254039284711684947465497158580216168283361791983099540082112538710067413117943333765720673704053710160513545736608430776955529141381007266366531744069943257782704310366929498146685283162024465492835021322277675939770816026764215049651485229937081317662870822710915607461120293897896192061618681925337762558196662443034564770295094245627076218181983782342646004721609723289417950186880388464288794284724063942436047374599170061550873792719782151182866658023119169641632428717677401218467793757994969383948921207673757870941144182587992794846681676066305553560541872583388763813522838394634916137892575881947738703862897497709728028582039945579088373128947316384655178691936007349786139138687834980825566811567636570613472648405466321042166674534613117379396351233065818076470807772154734836995993537482174280773822993572035899090279651516146687984800802192365892030462927461183170233076897138739125043962660187379711486407668552514550141267074655351518337255122189515410422585137321455886580885511658097327640656308445405262119679989450157327725487516465775905756771274022300634014292359009602358204431415292614182207878892002141716213252048079809610401801865639384454773682232785585839790857273386298967290126313726697726019230250434672496774395682350273639353818802139321989932462981227453033299747240664529348432989631109812977024353929715726702973131607630951614288373895018954933990347960765764016133418121644657184282095814230768494366881824939049907256410216586898868223212984615031384037479236446059135179954336079877340547769818239256665989566373815945334080417743229590451295779021595114845270843024159795664778156958493510193335083442802040109020987333955705767793879313194763855644923751248968424508349720106868763782836319088317008257189441338887483904910138237068275650376955027475162428994703763400997623113609796389267414833127899090272189781506532042029771133338106443868577048043943103211716522411025441728343247228111952164151431434925849822905480504752405301860421036546861563850567407241376277787612465034482115738188905115602474899610595577851895311290197023104800640042406703105199246203319902074346829016653106663255913887857203533856024642597722746890637305402852269930110892124268801088557564542732913323563905834265440803691528573939947373481660470851788412060426479537478929947653162449004648904305547962650360317739812430410654968347892866348151511222988732684799048202743960999268071634404640194286405577891518795146177722497771625752130553716272717738606612126993675501189843860214631736682771114299360674771938493421958311101729034110595486542636378368562927813063163330007675175275408901888367118339623971839271732557195119954642204757482185733681519171184115599810432761020802607076468964433234934150011805417080387585667640620831326738396345938664596415693824523189030019567890368275275701226815100870854812171578893530545599708924011600830247628471809268659703074904013595622720222675348931936974542616432332478166183542513857073212494945811797085084695792728878230085494575016560133234808154204611769783420468620290353307675564272180630899583884289469816186706888939235895737999628136722506682810794797279954312163273194109686571413647891134693060472621442610874623748953275562267842132343070339786006649109220861740600709390238158910623311679117877556679882472466189584564743012940805678930330478181227035627625164353159912858359323141578493113817720879680998594092616735648567420625560659295466653644880330541056758048567520744367547272895712151947455109575847372271837070040811299774101223781719034392836353062756041605880157484561282757497758230760116970640769549091002524463108243019522902364040791977687695884299079158513705864906695947281794724227265446745790744099056349038041022294709663304645010281179231571638181424869205507246850888080330301950156185436677521222573377769068324330833815876191530884627495520234958493026742130253724276716802844560419812928950262362319939758454523340434738929398469546819047808466033334448119534097471058338875134503259475804357197947268917488135654552978277025694389992786947045640277479943189415446399670541111945711965753985240847224530398769903816048762594738033690257709580531000410290058237574052670273646822022850363376794358672472811082586518782314296256189027193158409606035304346851223760418345372267463188736142682808020119712020039851882771984051331556697968286776477901218361447239459401348452996224064066508153989477081547294951656326268317931845338308832185759411957693829015994655053376696373511710145168747983145481860827373697745900602327962864831736115068954518873917425125507031507381660424500128047093063812702682849012495526307276450797130538515461001117479518014703685105900425194192337866468033593680834097549677501139236734714999303119454988988614052526954906830537273954530982094841819606896545500577674666933647455487959254386172275513138394836197571873985615299680722625292826488023830943905733988266073022906710244669816602247945136471759224225646224838643426853449934232130591783184514845061778997481367731459018284189599417191923894051317176997281895242377209200894752704981052990640399391029811030887760606487161678487842445797607038802659247514610741719819195587797310461856021683164838566246946184718247449474541138680470897932153908631064739260746785798461076353158540247934225049572156675268518864761242444732964613818194065955127343623081816135163029828984729302755235740967111320796188283489054540052107984164503835650573170179196946709959397005585958821991171991425149690312765670650670429848113948446562513922304603292226846572465174215859826622083604066257064208614896148027429098071744803419787990488304737839781355782292549696579791170023393904617427095918312739103040471626018955689983773812424105330263024945797698172204066127334374021738573135803156961950842951160929661115427355681057191234195572082357837998169489242946542177854366052605975203379259761093205916532582613544278107307605429494121914724421809678971412225569673792467707206891698828144172445272803268594296977208419566587533357395407384868053438421450499580793670898826679385555558445281810368139958456744495721827137807725336070666892991436836750039501097921219452881370739970084164746902912407896359029541502858881757433626596405144851281614691789980538237044961237444407067484920382871130742936828931043694622076696457570075629957165075410848769503145376453591687357938111764344702052379673117866021019281084576216271959440807667072859536226533622237116440823158001736950020889284730568629811601673859676019134809847727468227956683768306774310649250209460222215309842157435262332741547495408935588351621518241072308568145450114658063676512090330956741827908782814404803360503143435832269066174680345341789986412542140637298590417828272563483895307190137476588940636282879445512407670134673234591257004364144927498505245548224007980129358686514400067190332809587844164110642448383507921591893262242137526253817473512037945626669454834881197230971285071031917152391468560515410926403661573616407664018470018820230256895533649751641613115801389070732803687340721199561977786800234715116769553237878913732782056360707429142986504229624916320188873804486330031939360567922776491227872508536306223035614112943428489076124739642790392160013847208139828653584493466058165147838227661099339513521136171970316362198305822443865897365798029232495966614469292242001833016281442465123613509990269629313211345796663885869111464818509075802682843416506479927021397887149614917064484917183816374027264950012759944824450977530949146394241404682420788699041348083952247863804040105821225512515570751626429529500904175773038086688656458815408860488675542284163161497710789228872590355293304585011220422884900660605874624408681584077165697508176243946159625049302978607249146397851619721980459961771548016237718499138053083626991100806904212284033953041055496463148605951237803263829911081082851963853307356129506987419032139882050626856463085906010304713461977545955373046215701353595804285440606683778023628090818921096844919480917328754748538385317471639933785846168665894308966231604158623863147364592880428020220655407526815565263085032078251763278989556448092432263463122797113992869365085482096446412848044512906595822709799958156037552755168088871729560280102781924148235674871761714598292685825226391255855158297750036913473383890885384159421089128845418032883523625683020486011278128977364748410927156339385010076917810229013589903983817927426296519699920237532570876693329334697829240596060881205901798899879097410399556565521247000683047991959859461603084849768271356084790446633480143316784695416876054075333446411120492470485435632579889698761427593344983217118227047404135599488101075806732701980102796219972299758531850401926926230524068306859582773072102909261182276091796483395935527832925483455704680397305587989191962161954364018122745834615034663113715954952513111232292865268505378286410745329701992648395846149050044278837502159484975259623838825927550752177489663260812452987686480300243413283660990099259058373050422366399406605314254475237527910198349790795913790020134571555451891475494772714369438160855085911439411715962126074454899163283621771038622542914811295057834692110892344284331580835009548659159674480183358623261397292023112896728319310305974245458251633692403562167120667464996371537051414494160963856536878893595922844165845301928930677644591222569054184586914846472764484040930900377849930125726899347740356391535677219035531173314094644138595189370802289522463857796776660409761948894106867230373087594678768249742554759551089537595793905729807404076852777080451868150493904154078457293135886254364761723976445083126684915767759046155127883000558759229826304770624315027286180792168673587386735665340438287323211928580498763413310311351666607338031773794679501370389454789392294498862506287471847517994781714668303423205534498831024705230276629922946326715504901449262765251618102669081059111018950617623574215695154256723584050252993057047503952049022592310365977066991212484207038953872855269082453246694785858331918432595183415924365858377756065477337115750255015157997198026410623309934332710062666414557232427542192259929684464735005510812277880679583263872925282368041218355907465569729291595377940227513010827458170877836215469322965170345629417163159943733161878253920595065074321008492128158120401676740984608924659863184428410258035050915533010415079541781733950723707588602105575435732728964519011631919465087440133181656987643680103560636412395006902397858399723785170390305770313203728129606714560965168583367590143110747270293985188274262978526136897005845333792708075033480500698422611600946848286715336870963509994596669854737345349433416252369568549831724998024278558242168345530018191915833327960954457803860011457487680182297190922346853729055213828146689532541000159515990298530006024582074550191144516970311170319249949423927392237988048297774707658163431301548848323940212528764731482481445576661882175932727099528289754968545505771651076639463345356014509353267943713908979007273045477562552042375184441375162355681458603585681740267676956139423036849228746420916206087290393186628768228098521090470150409698236772326743985374046205418521887616221119108798602474008199064500052619897216866431627226400783686889369741780878536304234173247117430529390772951376024132864878868587802358487557214343933176192060389127479399905134666823299557902149887744382186845014368214140879546263588215606601243584650620944917855410600613734571334794080428265101080209923788488988044994494006416929037802281537094102005997909799369224314751937221637177381015208520343502086814396244203471806149655785450931539189322827450466729194674132683103636970555435695635385307794244155482956362915475605573481988337459580514189183154553885806795014389311820714114154765472999089512785528243301731816056046853767087990553869611464030430363595173986377663044376888421349202650617105240270267560987357251605893031254437193636345545119699154045661841698104494265057261938549713919061599720642585905243166614568523241571228992440270504835959847682103424224144785819031002076852643156468387933188600760471945499034106374596885568423286463391691361597487259548363208172225688205091598125793338167652824415597140995492513088102312673984494041306008342102548028272734881654396837184001156084101256406230630930149654991286956517023811495718703196229865720098908063716960697674921471157749419240803627221875310700714483851934981900114153443622077034835767810720157829327476491226405020135948687090967448504142583371751934028589876959506688825856314292045084844333901289091522087167788921304724948531356974869949350062645058519126023154560400002024259822607861124210111038540462954567174968018460217788607943537124193537741445459923756201976854468118564929190203232387874041607424922695366806975817472568564860389293969258731459073641721354447045016577194893381375794507826134551947857221600837014444307163002030831783554704835062069508152315788203822905180000967120770463429458134617845983596078654872349774093389188131053176727545723921062014876831615998689500239111553227478495876628159589208800287428183503554156651217468201107341099215302064149020657498334368994857054780789977014295846503169131604906084299530140056286182617594231083839015183488295804435822000061486849281260907065390099231903487556179218183609321610157316255375991388719974796017159287225113502339705832970177463074338051228650418927436763873971025453319722174897295096495916939655667612804853472046637742694902259717356207112602665323581043188204081721289883619930364926455135044167305855806101653877613548277468768983246300515937729972707564482953311322813538254611728731738337321190326506135248306385229229321641521179881131608625739156557612357493411516146247693228344889856660550135666995779913853461991997758497118029692080640750376734934904397450955008819908753103182326264937743811588260272911624179878151264885875538078189718074532033647781990639794496513192702648887676538961572243057840047083652771942842918790147243115008483415997228069672244018486935545131167713752126958700549464643113795375254796208827959840740468557708551749672537979010908313833024637738907379671221809621589162250111272363776073123116613158325032077398148544808134243830272630176923587632550700321923701012370553498453337031119552415753414870048559806398340382946211259190587000142276958449253775255634864150620000727147393466061330971588605064696175867386013162724057433801813209248765877956723246515104344264559160909710042213700672557358801775244048241169393078202800069857981877849725847911703718447863187744913041820517993667326145794946738144765301275446539680043757001315384803404992856963193628029285808622356919400556221630321668024991252797129995791950916462582065455579914710300880464773239877842300158158409717705337629275686297510203140165560823765598848829199607211077739813729129804114842902350126601942522574241971894684244475045327819437653491394205043853493237584167127015185217912345961072655737917551496571279746727832879032159103002917885190256724281759302974249890906926199023684738895321636882884781044733189476301667545288880211350415143101156337693957612270975280785220400457626573645420932389545893753878575273824205272250401292253441501561177805596696460885875025705473102955352488763459959510325150110445062702312179243445199641102348527732002969757087259669185292229639310123233078005458882055605480815655969434120555971283784435869846414818261535693121175314349444002245848190273970389551305549674015522816099680062115666022352926803315961018449165299715371897564235956107395145004723441939467384258448550207503936705903027361316268823994553934594734177540393368157251643469916052757344996083112303471813868582572214355784299020408744390904421461694472845014971934910140343645450380126334045486285390892574247069897395764747474078667607234022887127869799135691985098139960944643033968938467160241764585135017034558110156805180081781711532900691564826424451567988938294763213936692547857375798326017626011653806031024498114249385711490547472211359975912131295994233852844561814572676119209256567762264525806472793987052726579559421747386048254805426679840342058472212164453252089561004186799529729008466042988749946788528184806068376242640230911727009527581567259208178599505579037314917547469244730014002201763585979829366410029419391268750960809634116827258690142036204997030647517356841884521846608543063965688166138375921794303084519465023169527580324971099223046315959149105187373439143624954525828845551361245073192162453319338451565274585626955845875234696414049722367846803001382961774426435259985911350055531304360390657284785592429525042107249429240017547672793719401150152684473981711839657297421898083265856576548821973716875172675868626296068521974143171127645152216746898562918450621937136366673639308952258856330688862971264416558556402071260949460430433881148595895883766594937024944323350122276984367349058921525591940135513291495224576855957018146834416551070795058118193439803147541871839324601595732987256047631894552457446582155912009319619484495281143364217428664041733357954610100256211991638639405560168000356347431398959502228861411723184551449882984348117173979022522282512434708125940153947019379328822790393263564859315033773188561982574956653628235737762798007186269852174412494080215569722487813260449816981717303143232174818710740920442416721929317326745528330359613733025007654766519985645062244400841258867418862112958048690050023310932420350108189448009942625055778456048769011914332217772443969034426617077057593694457077136919069542020830636174500887793884908473279536090820134162444264796990017404747855839919361119189456049071707790723035068996423103366896462714514281588810144056286335916124081952516807647379621129456697288999160211686504897582297838510260452976340149326074475347980930968509085823136567921950021512720867440726714371682113610821195701887628099789627209206710739693907300863602361458531667802637574251441666533935983866562617875148270249140072665229740145316204346749593523246752210599714675151401799966172902155189419092685736885591715515656118509313777367195389989358819500167294143581921038692312559281718747337432206550789326408642133082371808584536169469704255950173655775676185975746332041347996449969705389149950932449354733473109554876765913007065786438326875656822025309523317945750255090327566300707639998130036585674529424207327684269021163250423433748261397629067113515581929145735390606264230528812358152680820986109850693610248165158111809684933196360028688227990185568210920104109312374510305563086609340240429113187366771764079203916541236033488649773932318391677746372860040143287486335961085534455417346981799394128976599466532103449115295476880879485028452382162727620098433098430911546902464764665899496634330463468561710941156783818733926773763651077165304287591091852845661345512532429423373142552475085474756947976923461110159303838455794502014375371771749776517786929168044702911551406692390279719394248409305864993429109560132078888663217410896562589036355387809183273251186386061146867346486208055987455344261767636691949330611223631149466391990139881042361419671873396222025819242218325788689058151136009868841637182898361583065252603410855020105704970757824983365003261187528565247547722333724123502733399399457184975127275731408615569000172848718673200941125458518830391742994587395204243367455915191821039027557673172456817828064635473662998948362801923372471468015197681804254657123746002398590383394810186558358511969294488136709422705279717553024900225837596096670571395301816592459129328061587814785226535222992439695654242281649468453422598139141000224183823252481861399805102274521631361603172985908527906369852352004574983229030902327314582567100535102741006436515858285747019640651548106538548102097627214595991079639614812725052013408641290390063523164484136538760545763860915515578255317662779138720696348973979697399413104472415171222614707113573701723078498628698711957162245542585559978355329560303084313572439570375734307769019765456989394746045897437366437323763854415016750013938876923318080476342978176431371986804693725815790907372122191507824539315232151917600810821142401819320518360207541440886284084760093947435945492318520214966788886419146648591215416535863704767379264557945887475401952135085754166463094713761086348121820577256864633052198472500925376890237004885925716597737735619216667711347103927326284431039601389628216402118542982981235702765476671979661817623032373365811323852276863746405134640665503189975444128758623980152905928342769742032475913671237841666814140892390803708934435496024885792023209754096948935244989220456841581261613882092811685701441081961871347111658316445811307495384136694558024270852367121467153577112813189324849488778168019069981554198236167891138563075959641735231766486226856081882101157798604577483000396993617196815702585655531795717751431702416689096214649748954492344131872837902283879991479193918725618579617783326075350251686973702501451355405253963356275325382990020842750039298781899562196444512430555279581295579149381457452473218854664404059839372769918615793051920438461221295834131276038772902557995934637651819681689452690141951972908015644646655734855659146958167055395826562841361650670812961850857831070017950482559040623795542932837977739768423537150659221855945194602194225211187125437739468883160704304896434607111055270308966926723937532115665985409011358055588803162618784143481663938267993970047735885418999521730717940968302535614508529600580850463945216130943066990700441808833116894019096866144200144393343877874331000175835300931251234726815520077556190921354797777586494798717444379460035355495973964961970666558290401651830808710546276596726655518059491822707358072897840086741286608400348820718096215868894312670991073820166661630799056848200914778136674981572495259065924365946727086196322871793831515922249390771117274551168377370317002746275545119743649144323530075500168902965627768419734841382632084858749317351714599745334474219782276933595225885554755596720444819131684551906794896606150685527684296623357437889045432065799436813406316827756240324671013495789832525351653486653731631900109314924225753041357014594567120081381876529673873114614813343114657247067694414959218169592989520045724518766746278073411641400912117227790815627971728709134954702968375079144927318067761998762085071633263833399013945152630984082980094289646908652756429227674788792428261097471843183483758288367979681573633199232977231595427130671978847868513390573902148230996579134018803200848863718914011943371165524117308006855239687524459501169224790721868519776696057364202775530675113929464210218905963985784873438589874142454543264967678096891564056486188458592496854259393992704518052502859059300067252296619875010459572685673184317637167315935030958675631097199591049655321463970772079182293399955229300515095056447215672306007634040968323218072310957844225543278506562853457695457319658767085099911388334761214237761615356345888660293658181263164675060179831531939098966617111548533514929646028747791760808245663294039687466719957352092079694536512303055728881016619397434242874637043881146936592572521998234451958383705924566480987186180894641925960117891015688571269929413627194098458205350276791279166249710674079638149130169314923617878973603457600994834421632626582147212328275728431078055023001283340640497837080216065367871429337751613246665587503201488713894128076667333235057956958748342250951759696819018442843807428944762280921462095142978883131225638599862488095860891497524241693200674903124517633253218231933709600636639451832428539911483830948818743193436360497765803369164042038238917942600122023373095218732675371765523501998311505310049204584340644947822147630652915817736782457613131247877985698316241266831249240564225180237858366159189642566227624778491436209371984828080426446789572212384647889116118625573259817723478034077155085061391685969903142711818661199523956146257263076631763483147267977464767099490450253379486636943096816632953975416837625142702989069864430841364990617577473646659766080733109346402655857783553053951822694518109999107756666437277428626225594212267994747612720909514956274571264126205026355851239037174041853544786909021575279125842937736006621682697149992489851844492306593403772515493513539299078518896424959010977116918627981697256497105371330429092889996403035178234090355525059436783767758086878704827353488044648055824118780037868684296741405581035017014476484410192948011787824205233569088213875179064690076578556889834282490673925583944779485240826331793717568742384604805989099903181386090754616201224471327831264680124217821556140760019903153997265431938155093067321523214041222530138624514202760443665944261407171478419404817005311691323731477838354419852535166822926034678871802582612581290870027526915211908858379944407557846796037623433094467068861451945128350815169532380603404392665941347814556936366546567935652655679282991956023508744913880096409775454806755615508319312719748237468536719011841535634009570296019836199223201933057643912288314416723507732416303368660686911695372278219035359645714669484773436543570647013613603734603973308779314712880337812193451263747946671345294870861651344177447176227408874091263305355993782149989413558199728835908093214812302779353081572905681459510575543907545123265767432667585905744928834054387196935366958778058576879952958844444275788609926472653852451816331061377399542650271699526060357838390153224694984945510830646051450626875078319076980224843049208526130758989392194553656865212860263787377824637363321492514588874877657332108725855875738488725718708379315772537106662817319557729973345394169932594450558346191423247077466007673651262676329115560556882952764787516789242525887994881866066436494514931439425998652632597825644251984051712392812899104513670654407637495125670020267195836504269143281099576880581547580351649309004855394433276149570917217220211559451769241832123421889305267840139744079283227962702483384109848346816747853664689203039879738953997784844577792945664808377148141112105382633250407375257136205639115120753999998993261902991568693158289000344201437103975002091914186815928171573430718601322124898697505090262121498315906299063124384391140025434213326272275938921694637072760865795145628851449029066294782415966529019247633315261134639280920164995282328144202842373442854890097602997870584801636601131311068161853358290023477609524459226286765744716046166165650027547859116770790269365867034688769400430474567074661645930060868964097369669181462919945211121677758485427064653897767042018743695070266881199422794057368972813296453413794351777192245603634802880008571218334006828787393440363891813530658961322012082824038405561940083138621178618491525043545654827927721984948261388480372557636620519772515702820987239382818252203851454731107018503791659322690734201095034023774031395390028889291958850288828541953527612113031639601152121787019228553931780975016479484951267941840619209561585429357370363214061185854916144929470012208417971981167642337409783273849406385090650861364856195731415583187664883603788566739605039126835785753403634066072764185740680866977898017389066046832475290084247524989816000904164159097261311132476618482106530608048900789000039036919393599084296055140124331998533020241858897513197458130958863580153968948079429755492123405974863526542261225810758003457739701918482694212716205941318613149428970486538773357794256390698383473754846388298306172806514003572203919607015599012883812363474342031527180734141476983195475593696669539107238945654389457311346891409953719501205143286581892775908579403477799094921016010205098311350333938410771284689437969334488384347905956929537526210617267213220650808321317009814832976381479105005162675236301429711096890798740298473678174597422489280627266641167610351690576050722528996219677325187821319994191910062652061690052905314690068347202246394703650444755254890837944203473770996787475063147783181321059382419090290248675722976893265216132161151836165448606467703323653879707292554672273958378490556022643407466164383825749793149253504913945455696858833060749790426646784880523162426716013086120363527577823042865266500701082827256051472638871863207983553312939344875009155458407360460551502672184631416346067139134992282620783116145255960894711580507939524069999478466282420438975522406286074336699213692091478047116171741542005169193458412889516846675024644526310711823354368559548609633406563140984714413563607959225249304113523741861939008439041617764805016475313579298918942213776714629208542788724011192594338057183261836287622932377049390131957034800880295246146343964625607499959712104849535735589459713311032611289258861268055960722485779796698955384299872368002733411089369850400188315982742597246957778713321083245805237595140225656512745692937836733935651624304543658342726193298782537202355092762937648105205588592124259064080937040102617189501893849097521090721878506866778891908434416611240281425710097359673785816952182999615791880610702421225394625544951568065541242681837380541046671719294080467391210126052742142684705435577145593785414127087335451218608877215338498537493772219345367076010310660564069056713010661361752515250054557290600697108833818086749691690406990572648260873417883512469471513134311791235769715201230372861309002531375180809912562942630250101359409947132637194266885456752720851350345526941828934550745306097168105316059294197505828315818015884623524121527587343552983927713488032822360825379560171112492743683626000910962642315066697886675779667489191171131174171022436936328178789411897106162854119611102197587508855770014842821660789297561538846318295702889333635897474678259348048361441330470961175905646043526133794400778208968215419389855211287018044413877727653190695276136578735239322873323737180302756073273461624944515227744129019478746244455116837332037690194798546442323482681474742811415880108837918675756694480628360863559228018647673130387203261246245862889332086572631872268968008764952861031178113586373114504130311901632368053127205021214313030331582435461951636918100573881418766261530721716228012872269395615437733553542305358719231512499655961308332938682991599583433896230163423876168117995089679395577677160819900366008763221052842363582954608989220257685943701247949177002113050367328008315939617378097445526448258094236802606074423264151200992314808983930612816476700709268834778597645659519963770076542122402499121830953013989420929588601058139502091014404724292234774682563115896916154097391638366851089318743026564925092163686174283330253262447835663650716506917866965980495765644847762885091026795081544626577530393490664376919281301093646988733275958366612574899032283146171442283635541684650320429480916785004622541925271511262622093678216197294476072085347831827009722418984862781710673370600175532719517595719484978340394948304673095646355652651277797338136533339170264375256090159229629743743342365838597254461768091464769950667886595992445999638384668492408818805063355813064255990063506621256296497964104694714657426142974393631398832514669356620869412116294323519665984822664900407456678079578106542395557926649841592444864124390442970892586774898146985772773419435833964539402635460436201155120075450329594560247881036008578305571656775679017608590568591481139381742490767572381267032495267747603252540566030267396306648015953275579669325712277100657222592986801359920179318135280704089412409172820887310296806925995041809380032647851144592893883078595914257803878253819510025707714391832353037947553751416642858179422284408443395781516628961967004495057428836018539636638787644496575909402876848128096329565294926100298816977384517910484418238729132696470835789901786242732208473872666554512290342891580859758146004365923682625077058283397292849113853237884429787509071866359023873174085180746144125713075698074067362687436619320463314762127222476476387318034877753289867792238252176423051425656487709037960274416505844944222310629011432010740246834664909441723152324006693986521152833363409170700416457303655149140995664214864051802768416967440742541587806659607507272311984958450913934287898917476629560438549844486216951613992570637821224835699272128773174301981502459726692620354945051498279637696108827624421720089466547276217672339315904069048873107707988135594538224832244125758432759437458512792798351816152892751618732806689942555724244561611960648089364109358878428611808962189017499058201593984247206996717727980228532550663889436261719174233476768767244009672003180748938623418749986053107980310410492174399745230835239065964225363716498372569365684599171221872772832436784073264181098005931710260640299878206528107201854750249364122497364684055345295679390794023826075001590796832182748070248654749303715121688104668900547604769720851282484605276251052336829467210155653109489827322558549748635044877924103280886846528854070993192698513616657145298682527843465712291977576227015364699058728704106767222958568740636310364097405834646634897329133784788979516591402851793410412828169742207719144823010104529668349571999895686899211813852362864144309368571511706065485929594060918013204684243808846846064841666544391815117424259493203716336751428974869853387029532082328922173866077487548415287810314835970294128171172359963976560630158755585597252368018338919730645751680189238018453217697661005423536589203732005467840965379330024442109985029894663564513675088106123064241066512605469536748141340869230030402848428748404238581280027250353324893729741110919277355440555403277574886978338367852068731189262731481837400278190308737845262167453113115985701544719087179166835043672066465291634644196787104077861605526971646418790103596847644258702335430597052048607281656581875306230577209390214075771554825384745709120802076758969671174884074382271620299324339704158905936556229464293255824874010050393225189044854478678609700804256773022311101923618706776101028354326363102538373739280770925192407490661386291140327033281591423381276734189090029487692565827484471079025747732471060729872511651822995341800755889347960433836253206525727608088989231702570716386952691329330269710757799065795382131725019850167195233430676561948513442127729126563390084331884459154816805252185398848796747296976297633921306553014991995935005240549546136698419458235315998243666528339083473781468664576645426868888994781595112631985774401627919148383318603473791442330948816893006656200768810636976342063731791986711093466094265619744853159509625671356848522218643869303552135802576596525381306693054050356098763873677989818936337261578458103563913044250823415648764050807305085198549130010669767853383021692440446493263914139812452869150542983682737034244601440145758979616900762225148927316892506981658227784386882578368683823164694223681744082615676116823683626738542973250271500878260937453793882194033306156893896701026345507702584284889195039257580266618695199252825207858449094458478557557146570473064225171689705372210211845896271154956615399253197012570944617159195355298694530750300915665294051560186151146714304784758340474828697217133635423820333801475423941481086624270933725493776887498943353538776899063464224760556804763586567795528421115797773660917001609385823344900746166153998727997487793744576234981063007311502446366633889615607768140128261457538457735084235328316958424022672622874957719864004451422390021512675872554789996936465209971037584588337754303898737071248753026329138452355788975802727296145533376548781122378977035300377740589995847975503250878404999185865629716645382007700594851482546291499234969131729903304394625548300527326283025698422622875392259730638056980997274315312337850112655018710703151277643216534243865094791681827978879111328135392121587875054333021129925705668036901759365303257467349714025178698322785415680796532138820161592025896530345608845464548715244053117616456835728023708236753806921487552225428668434738277410875887885623270754565654832366751937678105340042376773279392186507242847447231732962900915824544306548081023027312360612455994365310086024536167115387103903821360894281246172858329296578085103309358498399220629346005811385270653626058024540893638626938123339452032481603186752620461643254741379526335236183429515071311277602879720172041745579551777133376206648622738035390580347137228821428328277379431840057297981737180375539324149230203799810744637013446272421437268822624238378734725116711228783803174148213269052320441819418671103997207000963583681289366667791210233448628712370771827030619282099586209465209540075009242449102674364405674826348055078012457165404627892096342048457482315741479596266618635728643606735661902044516542034553281078761168869950978291532300110915778914726612747038123182291185671547136330793281271422440329692875557007468274795290123579973034824670353214174276955750561226785566306718338956060280291215157142506822360803211198026790462383849203498671137238109664045297335344735000550363078327692035433344273514772158236151089914317713394911241431883189370642307583717281519667559651190767228422060980931583715041421600018725942695565903797586679767122600191660461596172408090616068016697618209888582026868032065433467035027385869211203403803751119614051947261588927983654732556236581626570698141815545613701126841690401315886480913473515076643990975616950488991143910576539126339018088782489113326279726178191889113485302343561440213429491348204131091827537463861080859639940014560448703298364215629004480679282355591048514733296490394192735843548477985922018450267751339379484249387265589824144768245654707491555014272105876173576634327120899513394246476521974365882061768606891644858611365734185663418346327489420500310637517442992058618244235400689055892272736853615565239169342609501499763989086984490244003460451593685898178445790526601351624307116022194543552906130659458812689739637537015435493710575370385564929125498847322548658275085546333406673643322426891422789372811995260221716270304623275303782331173430419067361829065111462840343775973608044418672497104559909039121241333350788067308365221601387889160739118120084531570659403490448608545918297509581694718928654134085762989114423919840143814159117226729585910747773278371649842584466456900034989487779321432978274645329858981771915545501571778822035236363047478043560630655265366231204907029062243002439391238838805708211750218532083831244106145765762324580213137341972093233692062372846200896657703290777268946768639065302681450783944791129836537480889232639229245998885611967293860478673794901635309358041880320397798539476505426052075168444395080169686446226670015472243223668262896365687186000458740937370226449014712815425384892456212717812668895682393444136471377801378160192219684436543748208082427795159417710381410880472581970105321548701882185644643152507350282419802029926713037650326612248258325381903401519203012030941121015220113789686318919683026848276275345572308866410981088929109280625291270685118797291004254557350826379875182557661348948473799780031103650521699404689898910028114114987741497033576809705204596694976965333451235672788806009308751584241971225590165854430567262035008322603969452272974120253768195030729471441847108516904521417538618444463059718599604608108052580630977904792393933158237609147823491435912621663633393634268401937744146897415337434464182779143421676456081073258154913849175085137508957034358217373650895160981999467890652795399248641439894710527064946728226665498038086527677529695369614578862231751793827608157849690227476676794293721138397995025946960025091097760443925108888955528974686661941873334653299462894899818977815504499107835881563531633814668172094179966856064553196057520693457123920559374497301742930154150534899502473001545689770080785217045473649832594573322946195272775092472679556998680655971088691746863295644988209858631588032878019736965986193350835701414792307203521689124669188430812465518782177247695051239292985086443139698756876096926059979311066991791353979526516771506091169632493557226358865541741567755784200483643990356441370242155574440991629514015451058498373407030334306730580956513824363006514405264783912315195343711548724766150466521544743585276372244854547902094037906658648081456922690814528451047351008861822530847542442064309109483269959160473176620279173136246902827639457928601593656279794161580228466674161437620265010521780401075086428752472397587770444876513084610851918265311598665252015081158718672175677071918417641434702406729773556279127036134364494260230660582093971015959770186115298278031990001552123046050053208395045408896668013803954946697565431855979921874963423174746350360694363360085957082097771301829390718952927080872136922947594925578655876726276815913226879994455918475665080458024756212652740615738688847949691537132149155156243626904457900340777788281179537992619726623130040317175961110334426902213686197486043231144308082684840166383323778015141355159614996143945053618649837823920258744215070804621560732551285726467596770358954601580334088980774438181069178702681689935151553393946693247450569008063297516844668018100155536766082398331754996862596850121582203411586251795846148181046908465114047047048449163335152536348247601497276569313227465208273112952823503936623820014022138490489289869734889012436619056951804618789249716578686246620777871955163705531678745039853608460028392625505429141872156003020435743081487400234070194534050563450400857776511048443748534817990479873129919980507857989258994622653876811339258594208720427221173634511321321096612912596124729930743221273329489838743932666426731984762714747817692471747056571224746731944530170500330769458706674338282621235790495624972742759005901578166466893221007644802873048705645671502678834139095793873103109431317657607299650794034375478256332609069635767152407611551583406091514512433930854472134894670703634547440704106331965784646369238531691135623871822710303370246387434862151477291289548459153383633032570714342366714724590867240076298400312489217374801512185392782173551165471237505521948493763092404597079551041648081926456130235112459319896344344822539896528237480808642278071035463795621593017467637543232180157554739913973936730795971032409530179598729774255667794846323600679297605458467703045320719322390191631861396854981090958108312564679227724480731825967142009998913186547360173124581448555797671939344466286200808946536666005858530632101978922188473069041755018149356562422251524750687306126726640995660695056579337506038475439800979828875817271122731130535200583187552534770616237337751969124793016447141026787896282179013685916434467702385968379841482299345512063974496209003600804675996139369498302299356761056916977109954588671806850241242976511745120293112004808963686154960059301480473105004830107498035414224278545046452792977952269768244788162924966725360231496553969969658499126957712141171818421381896542918640923843596305183921907437373590276030792863435798510352717229900216162404977140874135290596558297170227381459308804945791142477700847823829766509645681708240372280808018777781014170937726745051518566440019444683562563849927500321063973756474791735059856590266078470854194948156748480512481119881907164303119267631529397945393831837508525268056902357096556074128115454345204451117798858145659376719010489310058961914302952498600796789332360980454072685388611061102427081841768838312662999226237913381029265578887095737378736843345155197901302877457126788855662276198666663057843065846844532592041184373694300499664214817620488742410998797340552700693612672957962837392121879939175993402791270460811868456387554048491670031119922018271326844215584360396335490528965071646119537350944611074694121428383399397920573335433082161363892636317029972638873097143219241032044436760356013118981850992425757340219227004375150821258825643021327851153427802273904999786564153442469643570040394668256047587455930217753527212546010711170598207347392574611245529502909618441346012769804392455595771927926801483206080513817238194872895282348531060234575674260683148440556374825882503951772349474724761167660870363803092105514400971318710906031122478446637857508437001237232323784252834257893295902003444404986055962814608544756435997687785109241554406345039611755179642277724800913461385649028997087990994699345670525913533621965377196961456188863136999033658252164344929312183599527330565696102141043462436228771001922410604848754981277854422172350591054771562953043844389272104636969446973071444118717744329158013671283364656408097017373092388733842940156204482126445321609867922527225139048342887272478775442224681032485166834920508221836383288032984956988245153788944028793801664980910675744743331234180788813648379105188161382022601741361908153828467701571121567201251123585029239682543418957908802034169880136771366446472921340099831495022979489988978233795411334900204551897843704853550283214778452372898759215655597373928054672621023732861624808625782480322763390583094840076782281935178503119333149454676902581183245750002943803078732224061449757820272677488321616007074780241195177526154011267918711135105806138856947086221579152520437484258581972110408071768570915603033143087949107734884005446512697894124996152357642669182421322877760979826581286469552339057073348907950312813237260806414744165499121554732510868293633197015007574561444214165191094295875486822573908375180260392085267480688141853183924648362642946560391552584864150168925279690417588492577559474657674953140182139390534096673334627416564989775730937572691677828336778525185478646307163192567172227702423004054780788989082189256385327386974147279931962486554255695127585747795986064075615973955120884354679253489057063499902604554221872384328906180835225405995103630379988022276985820736274678118790169493041971143516840683156947856583337281082994360041692321032277859880146491630515403422530312898685787879211549410533660166584044693342280475613802428666512026057444700198588140459818711157323363330499438574870157645236952886711013902770544730890087021043969449075058603745825721509512222511507153493983053854352055431281511342844154964008071393924823600823044467455650063200042247640856417515532466865038329483715927082128254475700494197570439060312391694482392175743506322362106409405774556043121299979916435799020109277037943319749497316813784515049394414623364139677127733879083169887388442610492219377027279117165515260143533132468695864564211675370643806312119107407254610087807738278870802146862990852691811485918768592689599138865448873557639887189651655831889313861404149335782510626441587259418740735167506889380348743840512413854437197628498759520833137737360747082639888019303988943049417300110253711035013242677639037806033770536056342023918747344691936454832298358105371901927687566286061984201198812871544167965612518584976451823979434126337242255299085760738091966796676079923908161874656705628883327889004114289598628154814902043258703657794266755456051761565970483716737913266298911779193581171661562242159727075876254363337246533029687038848724919657085588030007611123336920954739969149871249549171465467975311996941644249831775356436241677998502145046163799926046147126972627719941923168315552678145224415092832425666598182809171995823051215858720430850541082681587222475978171299870529821632894797665012400022812234477018937050962441707602843714637795609842349483622235701970836887572836724748492624335016285418773698728332216448428028389012942299455326133601302444098535335245407349376447616722629874019962012331583385756648324211883901561253888650595752309859686407487600126451364239383353846010076390711553190433065646713585311513470384351739645148384072652710897145877838045694687211484028711888775807949548859674641690864250269190766211584735772140472214072408278187432545865467106328798463539256489294503883663668619309176000859951074138739081297617998753362557455895922012292733979156389795246329346141277884141072449183238416738268910191921620989827044606274557241809356289245360324458464333558895899791231180613066490717609018270080652091903115463570463160198508933833080512006456803498917757564945916067076054872216524346788830771595339444945447439370250607904301774893041493331019808526425690550663995691185059074450306451178775672347283639963878474288689142055870944431899945128670554264032232003564956709710924977773872748778491800740064092048959132239169683127579417670371503104572916574516233980932897915547050717039991120713138413404330954688427655390174900042071234150663672087089973634041179847319495515177074886099611355943950164111854577086256896169095358084993482659362278032027927489056135035110895435886758387538027062936966295386735451124013779632425688597308922012981071329873073465391866911393676404599779690287619493499126107836532832970231930911240340280385845429482860656041304594197062476347798062181374187676278677235954783924152343694693413514479610556935780845312403123307869264553615433260221612503909804731744140443764772189677108938220005495887200080076840588759314825615545047643084736994894395948277683425274542134004233999637750252340731347227238029613049626295299755794436965091985774807421118449903689184201208817559164418551910886037628265824562186097031371207352262216639483755883728907000436776332483970861861923107449752370956194013597193847891050517908998436192107984310283429535873484969599513698828145804767138537534840550371965747888886632969373123175819660955737210975872194976353562755563755715093470993895342598153707206236941094947264134612649708833290214614645186259551607515434040298624304963748234771360436219386373185294231258661745686809145028371236707863231177273605813563389014327158616967012421580384523867480595752324545725773944263782756278571407771183582220369304892867932079332425815847237106298151908414872282624124451040658381692048530814700224189589990611482751560679299523293594025913291240466728798825333756755182601208177416120217164601473984931159569849221852203008112559746176472590823922190604955016842440768475083852105218266521546343288735952044169404773516239175188084150578228345132946156000520982845294751145649665772530683289682223373313466639966445773160455711147183129048999285541647179910421894768530262371517937746070018389118120597834884076968249395273784804189962488157834842291143281146911743857094778890027534221465572636368129242117907637562050411768770656249997052328927240404783301619823823806924105753564418573090599517244835819618740699276744638592481997069630870759146199224168820463738027342439012537592625286453659123802942344996291485177188938625510351151765782639346489271173292300474734101390573417047845898518733998080836323037217983749614877866280947779914632973493605658972189761618598282848032385296917203807913628187911493865602424346077683158937626199423677964859339379979423875306040991639983814555124143919972139235678253783531069043056882155352367872091857217908267069595135815054325187473400875994844347221584931379884663789436024992210372161746616812492462894651708556923177302439391423443002024992471215942090990826582062641335276943347455513228798269046326977640931169732791462811144908768455646756836703337292372386755501187704640988979010230847709601872204943673911231314158590259732574046144561689667064259069842560755757242773165339167569458252804262446700892411886337666105982760794317131684304952938684119472319211903102512251344645445227425859495735628340208464931124104908021965098657370746218648393656411335972397917913940005576858894024044569486771796089264879474041451108135375597819768570423808562694547327989605093607851500026393807700018226763927233958281047576449388305312351004313758834885205206749622701306133238894428976524822663216284874733649882004449481091915840803711482217608683240300654296274035064747941809091896982812590648845779612083684122957748194412748986070666024604517602302864815366452707373188115720337063126564537481076413664974431738429214765385319063896537545634415415894014256440806682106385676660353330908202142116153177374429632195346287983646991712945346383704738102132890026351974293827432953123283812728054626766797344633295564579649511069744464834490143789980325888441891193374330844558134379688936295061590279081763026576414914245001594208835802701815163660156762860084977057310375053539139241675066772003811252001133866553828811510224028397137165104110201157197807875495509185948401720846101314886320118966131605594063694270929682807626716293671106394431327169447892385322857615453035713181659051623217547644462658182749593832650566047396954270857013884289902031754545614253467945033274258769672334980283399936452222002132464474535136848569156309552989951664375062670914694284656110151439388202827353540437440215150451399750216990657174169998706130158171951990416142874823747862281792342762406794728678113716749484304023310397266021333606832703539950197091691813205762648684608619768326086139041840399867651313279792807615127089415306660021426849459750199786929613668454538440747237716337914182249841173861424654954661867422047918895659745729157041729654460639329489571553823981470320718012137707862961716959841561298939331248777363881603457541175800108044725154608160882368702442013555259852414347415266079782236629879063093165774739812643404329377804261085154932997549655925706596476078832581930401598809989904296665500593036048741815058388479380054206932443098354899778320818174348652798491430565062345342565822230738570110139510088117485741534544132348295171406430081414333926815314032911855211873716366799623758244538932221608358016358229869394036384899364979219153825645891045035554554053554099270838143390698077048574828855225749044131806362735533682675250965462522009683503013197712780413188353263504288229727295465926818855957544237554413595021660040224005226869923695201560470118295750758135831033817498716619802922500955555838769545619503919376800108852634257732737406491446551240444507755073406008213203875253426224875018639630917617683946735522996826130751476763669661462321669009515606961620062753623985942762542993886654551657454456793688957175239583174480481039043068464026153131699418845951870489162683796567695803093806285194232297704249424793701221978151477952614029095864142471271984924492041045532622404834841258725940990989523547511963036936976551031694251202412322976017931073753410003596568143973870333368909079520598956942468888357472149818905789174745408061275869332382545600642354488314953615326683743673670115207927463171067762362447970890618454824273911173548957271259491882417520749466222383771581892422638515612036126607901811646046363974847868405661686058647593342082952116568937411390344237754331678771090036014588854630588371641132280597585066409510460703067348936273308743818836304315473724557374064756807953796255156173709094098387076803271963474181836678117293213008373677860217506396695718585616624179670208567966506281556173022763816405148332883022104263245328224629018479443158456646031600793888888964209427516929966722851854977938750875997511931695744246781434340178868155953935592650011704816861038024523423795429369967885117954838443525451233884643675624402823210546694362663988045305935004822038817920051489673844079159789521094390645245333532614157902222353969438979216353534295672275431515979308210904040751244411531625177050089356460725468443096484714381102890391205496827324978853823363337005063105975771407673936905735302350934212041768398553466576915192854392489664383092355199548516362612721108598802167015951759837097915062905874852980670349508949946672681712941470768654823464571923615549246053440134939598200041034459697140030424350180799539475050002845507614651291898817827958844472450115763900416841620461543423921523782866776921452619336908737754391513318288909724722575958829184863920132456478412733928530168010800672807394218423588368405240512774708384257106835166576946979095930111291886870430402513695229565641737315884632389788269141883049675274117206538791206870401040493144644436768039117298591753440921752224057923023672517076537848158271734176409959703879293338188828823213220113246138347060256521821159212309660140238991136374405758787936068749793817694968220918761136854494797755050404799471918327013577152186056839575372697847371500509872237930004780258752459677481051808231599469330470606398654907740821290074664277645414172428687153712869426325275801840120836279162688126184851658413342179370192459217457042500777947285142520665341738204797658653010440873845505882924077484915017129162130835809670950667153847566998580500366256891246700424975825385838721990968230447336554888462932639660329989284092758253552825881823351793205018053561730362706942692532725857789275568524656803006751465098235388365552452387691260958958192997500680677478568546162060836538356049422026197967431578138735557541390082118310315643245199909944963152202964866235931613408986375358212808883161707513128335571292237840156868426176399073709744280746981235493615641008189541916657249138915359749406049937204688509576835039505640774133546419904124886902571900931173959503465419003180595513810889218077746356183804205931495897208553796712128608468216962687427931209610224967688309680493117413544969414247029720064804802288064108998685953513942500385569943668622670660156136302035271384165804117038233015169984024033035295288290218147245271375214383193292079442548139296691281183181541249095606047964559488772421136279624276222411337748683769677576048234170669925388758514129888020147175194575615439657603963347997068168987887572926878548840585879552603248112474507191034353091432851840466172430637778118204605785033549270604696278069508460781222271596520282621274258251015880934974610398221320226521810011415324428991606847740424711975256713151205177679201465613818200964373204732280778128004566385794040624933121426807924336175632815353106779818635917342953370902971647718796707823375004084658724532504152752893245508808735322308278574450829199551143829182631330443278719381666953091929246001368515578013591166263257501241529398972281533843412100198316800061582275083750984254566924341881842352533672536280563286196312018162006771855251371260824983345107707845159592274891967810584630301391217006781597548698632685496042472417514748503946978528602187376935259017460439260011638578559248922836582270476292099539118150644068622758509938618908240826300728806775876317713556418388420081151191044920026130617356738620261288591011776586755764702889804347451148733476838260843462767511954498141017108409213541765557166360564142942254079644091028164040202657374022134592710380144454388630158642070447709750387820459498539851965892813887107459235621451110062328231859338244398701309096017692011013013236727282560454245317329939002674159011226629237132234976937128976350316142639754425444480378577610612233549669647267672014750544085517245650194704766376934133279492548927127014001540669423711871892535872602202231550815011283391910867920795162623414439405226619082071236068123587885348319945325060278802412535026890024727701521012538413241698296611093636328456829238663989157557212257704795533493265781355043855110993162653001866445304213147809210099528440804920760503033105132636524110141336952645437933398588735784506625343565327817817661282518238819535299972498778815499225788239588674306728105805561025044618459479302028712125790579511250057110040439022137090556799569300502190359256165861846277914872399136419317171053764974405373363965816616984328548002173575795053063197816684108056688130315307919443481387864134914059546308049699570708782265281562767632454812758671083336634199337716465606953344191708112468229429532880807814304800618826907010671847710650040061343909869399960745080798339929761213529154848458898583614363816764397766520734451537044334877296276018704039780596264746433518310982359657699119305516873151365700327257974497574623587555166455802981115289685496840517982825257326408054532370812422843192080472842765654673254081143292169645116743923019506798898410089035212919684172174403887478236748769389240219743976048984789378387518972992450711834709862263239391861579257682180747951723866433120815226846491288713488454382002984385591426028660001015037846707361074543113433872486408111413064975563790762393745984702480987253957599095366401634981728324181470060454758005126957250526632755298317377647404142551500501861281027622910706345802014846134556483285152854532854354046166639678370226012648846767382962025590897756718918480730727925869646929584060980995737958841355370549279960992301327774469458394741305492348263982773189242968213926404171086294959898708405255397052914337311313058804310730621697348560808838244699798276627053133422722811798986086373223388322476642604080005432533321270650917068546612709943486502616858667469424129505628368143440718141007032047279806014689506302661184309246273530329035966555917077595773953224809225105693587237701563419342929130478027538783371956187672303441097524119012028323395685053087808659339794046823574709731912186028608590882625349264357493389222666751625147201015062248707728993512840925760191921659175482841015835873382254344003983289990621163975379357108762617133485812675926997658631948314679509275176267707389020448435025189496849630306715243253016561318112313299732766297291631258168400056175768700745128708261773931383525752680242377898343912048208410812787027140380887337090571067065095254700200860329609085162986387538620422294228146850812242747958094022253654883930717796731596426932637928970033279523485985171304028613617533836111097438047061399085556030682165001735997166629451913936536178696728432169459156742999395389533013301882686418107701898192590413188851563837567360934802253538375585604773963013870251849476173998989689822197791332693083237257054397727613496140815544214505845060680567704457233964931767112746644647138724344448680127278930857638400333046008600353050660536409650717942487764975477405168236258679001828380941470661556689285008493688756790192104338218278038483256226066598326478395166718788180647702421870826977505736774358903317726612144928362377249831107354756159245335983425466319678107607758643858317533324561401306183315256947917665880986889103071483928625862817666966980194354014008189902036526865181231076292245028490333162442112884514060137187642932516036469949642730798525542748867832428825785361983884889828755918563960712614150785495553625990465115658765781545834934411753567974236428357779881789838872308122239839064959769245597878154598821847428089719846414294537527452088093470570270284372867828504836701012772392571992792721508530219495581060889520001403665025383825724377722932465815685738759861033276326874947915696773930521231980563969688831249897984275126579852030711950571477950881448744361974634708558886095927219436977001614449583612078282398685038338117714404723826653781889532498096281905933266820503781528618172311945219563127297755685306430187746772177420016187145408616557128127756235870369949065333733644009207765873642232814359865738024834541158927030471770976199118317921052427422764379647871574135833158983730728009116322524451537942103879405330050501480046243377649391008508071333114841342256015816607884769828859394028796419596497474067769792825925374117604311966095193559372052039980682547401088525927703306315883394228692540222956490581137385644201197673176965077582482157845217923833471279987124455115692688653896335878595256040949819341473675388133575732973873341451684019215414575595159619141641184511434103881729758132595067382717948536606066700055056118488813467040078994424534453614071854274075481416406188424146186857388424160480615788425387137548473330658339796702280910133032449952225329111145142066600960412423446207655998730777092047767402794716539982354288878359213149147669812365857114482265611258552989536869684364394447573855515321818980157500642692176174464290293215359271591250638240413281646747212736321739805329375214880005391830529629368659692042231185008519443494657508772588661455656259578007028963615086398160212300605881509982700802599849846539078215706598594888395620318623315139839181961224458508626951516745072452752658625553727142137806078022536735759841055398287548959338590637341906400744035189123214492299266117000891814142281477179814207672119331920665204030355981726440365632165771893280082658018847914021664851865381917550157353205117930207680183946597599619384273386951373309644253825285728990479027405761129939875280463309306799107117340235513028449367178189114041552883515326814951132182658345488071618001724809256708235578566585957730773846452159885488341211972311668363844709873276390522246761057335155681714609169267551808139854719666899760555439705635006230291023040409058907980758714122922299391139841575807922005076952768944616775397987958705811811924015853347461183295901518220485677156019184367427171787385745412715394611041820071866850101765113131901135240466875811824324953687050644628286884298867317382606818518981041676035363999707036030709523639793150507741812689416982340627352378390735846118077926436755850326324378648763311168051925440903386278884369954631461287821346511872435113843598419678803285467172648860827120804503048481001993800467540338857984989811917811466921960620419302260382520485967033089372450985914673418485428115724518916134802876298651882369309860437203352965495008769620250945462028969739504026815686968925347708849302301809149071333149214020369087851491972032741302255102488945051892887598184566024551959980473554286446534665323237686137164483678063021515068224710808181983672816537319056308407923816227261740443678172532996644343692046682977104408461386140854242825992713707860795281348942623226143992162925332087801540933663669061352345484217422956584226231291666359516464287252884335158194760689154175659550986233002774662573677958938627160556259388147998331718275998469431041885793324196168618651744306022237088421785526035935211006478203235456938347612635681584459766609343957850323556051298520234938793888695151322003620546211831370428829662403223478964628373416428996355056069288991145434290579700433611945541965012509596798307233024610962356741433159934216168027006989191337963811797480006821989227345092544511405418746741216095921074869174898114761330491459218539286549813876034656154048175513292342702102587518630761194951774972966767220613929089559070720131758757056849031986072847115247094910691753105761920524979390244630678630317297659130297637442217086831634848749074989225659100895198377384703289863795615614461984440762977944276951837068349661534137181237510541731905922839442949574505770333899521694422552004519638051570430158289725804012898494229943702175032589044282668751357005891486719291051250006224065543033128201510181747203092516958080611820122028242652176175266639285174671339804892256964303853750039014980050405132922585478293353623092163529487735631175480308402234536367229901986880336242894352295387563520200884550964233849678026856882089368897206337992192542587397883100444222711774724680316468600925073933799185654301863711452590577574420919133784651119735090894940518095858788259263081511041438025861095656811900333969636549012427055298942429996520240420182935345515997282062549872248739382350647886584328181268075756674103174755083990145171449725236738082108982645002693453099016772791304007048667755704774052005710107727499320254111214398585493201839165631346495658529112452000724599916564187820017256475013486905056837323733070517602016812524436141390584341861256190617063778952940994204985573554161132697637674993173982768011148398610900542704251147584691853124086290186760983066446580929942550538596365739188556080827411961191420576980719036183369872248547346429296430879810737303653940673351695297705913454896991598762938072118725331286020222859219183841744535342485411409970638031225830353570099885249683443262940869597249645089421654587509687351277419871633274021699542669068187860402305942486776611589496145308637568348497084141352752170724675728889021602187530420371958546714763343600311869972525321001487662308380721492488545947456310204466452825712387095427477804606146829827477657834398911999215270662757253719045999296346725324601212828229554843108058350261697025892307748061181248248192884669820557917031640580444999019670307159454112303055799594756667748622079578574419062979317122117606897602366932437301677237518454686705789041231607688447635619364970092170530531538009216284297517408689085820539892191518844381627229075125949056716832050159703959707670200907379990348538716483284292936174158262829141480441733713485708774034413487998228957786421880372128066714274202727007953056767704317367104478622340860162939159625158457555748394550598236446530487681434293570769466856249021174521105820637939882396690699353745311349286064010875233809777991702734151252359958334815583299871710121156740575066644105697823893126513512227685588738250589803199798318075730228060226697776584957767768264147489543053255620372038928053510626643920223789225663991486672905125940817557908245389857456795675953716508046530068089341296300140845030128969684615433189189681941228932893847333715465596295359597066702367725531649439765633470396331419695552425290605254746379699961881010001791566530297513594269224711238611225390065471902453510843946861208931839095101961779209361623738822364734201580821932568303743145064118119057951723693494520136549299741385563788996999392672975451983372853777470222880478274216267534899288605267677094631221628180361509825908617769922895061455686956577160274605716425101202295296603799884514763720089758614722045839926173177454499798176123552158130588391428436283259853954131684718439937242419663987475805298499441780997472918708267316460575229850509983228572098766325690244654909508729508825545991279759058245884296068636277536191290868300263187417132898007776808217322937096204532838533614535047717668014259654775310301690098197561754676760210683602867386950918151285170185368425140889514959075664540128856351596306584270553391712019057316990509329789166464077944088501275576686916452480717489055682266059675806208174111536382418269345879830083370904113164277690406177354759582634296725225718258877262388494593139902617898009521627171932506583533341539787333722395162134534691289652398918312226442611987112080323343791360851869658190802798691747997338024238307920672069165343491233384850941685823159820094130408469682329361890542171332219399489368642218787308284407315385625640242262514990754393131181068770081021225018505187414559574207464703156217189185843064531971987630649930016964780834895127387496611410492167482738935906186050667749545756527455175305125241213340405605646992686511916163225572308766963416158930139192965663587540348506441587045946927497467649301400044188011677177463934148385465295655546965172855850179760559583269681949388038533963182842725198068073244956259534324496645933166897257734737678956134965367299828053166476655662951883588906498640178374186673581379704506700611253817718068556276124841966911124943833226437345481692251099430693181031593118770750291500861869617774613920940402733912743656392424722995484968013425350124502777224062988761714166870544748717460612247020903691740742075142813596147820399358842556563480586312292586775226445922399639364265341785252889678581225093841356729293666395337521763945148830999321276164834306873229472691814887225284765139648655060326990134771124238859785390699445956974065297103461095451594528233363271589128658946872749547436179705051931796465270367062952362610497975802695060770582415347021677373928431487622375238352316880362431169856660380631010494385150907033048491757335588190096132809259144818801946840267348107867791967989853453471032732014942201183385660608580709088882259563259637679161401673020192051851466138607101246891331316405802236083665512735644805823935923604600787404807281837935702743648158572036951780029879907095275610539189676070142562144383521876489673168446962108339563542666559839354368728442824021009880605800162418381482567167680657194190043671137326272517696206709928427479648105741486886623374559588454663410646660021758277735705696540957149855894026745581689998467477528580803864578859015437742612731578728461958094883200353639995140105455307411191706194383924945933648062644416571172570838978454176741667776634495542571054896517653462764875646536784576041820866985620606882883712743238488597707604013224622121776700439826283500177797881881537346595167406488195860114099428838132721647131529082520894083225890339916969433606532133824628450627097171976866402492247602201949094844363127589870726136385308282180763721250808781987606057223661993186503318919940941972036501765634833683927753975580081278794196802838788735221324686256035281419101855422428655627402124749905975063654433566634508214533032246119399037141930803779243473650156180153634006512902556296323546875285866694641044012557537949869892107851518215271263751736683443860583091705879767315154703974773331811868783504616160530313773690177252057402329875924420692512897335037536052811052486395031877533818077348288673062070812199379411814387348073277683955019750169256829554141151961440657779515599624441153940654252318826072126876257136876453163152587743559644214183244187366076019309142648964678511244306825142979953349945305910409027976386922897794216604149111891023115409139306724264956187866952466332519388279588110658100659057024918866391345817065511283010740189192436852868480224519669650938906250963572424474679694316372270185354165700286786897941256701209067107022875581689646186919177748520501292492510052176898887692240827682762139109289014291313392564892681983625601300242961456180732601900224996662825649720339310013508724479990408296829418575391386707630019206809018035504992285892200868859474401210471592911248886313587704836953660399614796281029822904582671518632269434912602295725883695191051793387015118087278133186558946935391040199600860635402622999914977189905954992035051989942566162161619328949017635607571122655087299813187327945732365347004369232174983547679878306930574508922038532378313968058278859320209758062435100650377170464834806962784993973093575934304631070481594974583848327914335938153766090937565334175588114387821109360599857983724255658971949631876842826789835441253223793321500310995483720486718825823828866960114426235901835500296434424028870828248988572165525329762110446568853669078652857094761095713519131441882211811710286554446184098765940042650916837071756813124196843127697470468870300948296626555799579899756023107754006078627610257017989098340150241617492937108256185057642579940252883681618160982848764342237782903988309231560269093784357574733458016526252696607048415373459533727845628375084099669818723437500218187081597139315529229019178716514804971361580451459578415067615253445703431220491082798310261738310769459254388875260112202202792175712966671046041161338577529776344454424724105774876253274510102357666885413653428514100936232835556709423806243522595136075111486968800067487709161247832938876005321406855646125713867666853717650443824721654384716903602600846755714409183196927776244767536123568741501168165453802487664001677196429551259576748435397099721435266926126416177941613141431651074435026136880065937190001288835092598268304264717612655879362609419916884693465486833426805737232964471692569677498097941518428659332002347962991457638138592408859229307069079774825976021256303683943018599672934784536827077845762953083625806311458461100772072613558250045277700659636223513433609899256680743366571786350679002830355264844183951663313214344082660270207102252010122550789124390669096517926739031388698568132919304525080672930724661107751996424801930492686301891072612704530369439307409826745343285799034190424557550910291846939293360533554727645800999593339280218677436592676889653280193183175583025799607044162953214168995172797223142653270920812464980726316250243759630539853380782167107026970964260517486260287514459760665052161491003118265187401190224433058755057295924848109055807464807224318433101068239304794186336831433876185061437742009236579498315134209722819698957899906332801507547509780393696863576460344656560353121108709877494334656867556778577256002170050700199719148574556115501015727712411183053375015635704659146823154508721371517992583624284369286389208580114966875793663570403419306970231666852533297533805823942367849948211251306713554476221214201977291279040908078024374328657946156799814727881551353009089242223748766467569951682523298236377266709658610306458154475904298339335219460496416767060157721401591757775159023013631221763633068576088750376997111744803355513080467305253210335490245069132594647138623865696924727644070988458145172921436028163115920267724296903435720491972629112467151269200777793651622160909285748002997672532468227889196062094214514373577806054300686235536352736179979115148530543803294757635822288348439745485629117624336394593507367921041320209469072155887258912215719470171607323694929497937816452790838783174153088191247028228746512471053019041159432951125694077299295940591902859627619278051663915719100729560799109127213877868012753846273309845094883501782278372316819561175312883728654032952791020322054546678322787982667797879714045541657358270173281694534078328351491487069070074737616622826476980569382255449004245069563064294431366883864067902347948465901635168304838418830405345684138285493123310591643325226330983691460165324524795675573268431440728535081226911435959999792160478745888523863119563449308003092033544111703487343323649626253836293608311155826864359282454089587647403712126889640848290952529558495768850767708481320576677627505926718321686647780804791025604935956659904779643621607643001297185004799288823692326654511506083209197041138327083516449384490951982749758335770756283461482003560132483049282472865953160486576150638220673539024029685966483342584242238139683939888927121888170273917729627696702000664117292861205312379981570940614861353164021679090238866760823202808312216971211754211911104617922230000535433786092996858065082869515965886189338007205874999037715657423736053857974201448431994630786306391570307489345981614847626698784271168829430055426897475897703271781506650864681243764039518496520182117685362935584697094983978917900199424930590840872530588599172836203823640569428981678207802986134307959450979527886302002895851185017147020096564233501040965419222978144120743299216201011720242127809585124596159661618887764835669407476616731390733519596968547916209079732312755865282096547858255680893624783915504862897070919556653134586838005164329232298541073761441515139728935509727748255498907126564913028847858003895318495559743132590279703222941016731289957345303060122877314572502378645043415687785350130371492656344286132895125921430741255398750691787091736151308814927326680448632870160898807903860340428050003204439023986642019143560454913789784793175345327299883963960896863395159919360083824097588222538074655051918843787505180173329284702240850629533919258973996395313791660558509943531025016116711327320642046823369018917298396085656997657683512952898115726185075604984373832056286143579214272402036057395631744829442928111573856448646406381714598891590655395045451569587132460782909364884592046061392876635681094106494822493025139703441006391606826032040511270629598903390153956136739880157488526316423536300543887317573568912761499897113816522149259745193879622675116878176105403254319724574666684362399205947383371769342831806503342472601867284035261838164872290682353955181533371083950187364567454444809341464284469039958776190257226533854219127560134019907932250541818540575135822652832179839374010877405457695177533340168793239354086213356896913136620837732537049496847119730432088545945383787200471261362877787830949541359255689647469314960248299470949303399856187209167329549302810134749439675085749364561142418942387709789393849176005782039582166082933762862466547769641773920752549361740308713846491409518765871172196926357859896319882126413355281134431092007301762538760840615114557323305008430385554360170033445973071896536686891996232671836590181311498248028422979190847922329439130669100888981927257296480659183126088950645982806432969653015865750324072799833289791877011464851483152451517638690427149554893393207530020857052242207673882865629037807964471643067922365302534650564215227763841346953643713165760563068782346391289289844498706275248930389471823942676592519314501144688211892537071824026176433014686122889754593759232988086363615493343278296998349965313100335699407445225448415986490784684570442631093224944889895249497499982696229645741178785725033823287203509761347043521542494123639564389809994164917677204126646754785859017656492911823951203131158300247860704304437296841267024210494783453092077383052671394515025032919469899271603574394076882976704420834383578456787342746051738683755419162846929207337223263045756451075138274945029402009252854774635808558506074634837677813170352202686109511561373671055367793438984919276891312126535195794156855976071617041905787405087778345470811586462032242159558554601468709528813998963954427684898212681820243127430857491997748004057152857322209730663947350706676933107623759771083501127651178701207623173883034275424249931929956620504871573196474416057876578584398763090613166407679320800636996776932766120583599122051603393094636325273910561310737261236825329328385724354947743316120946079427883449449221500898618594325310235624141954440253736145595128806839182917903482050608965660466850157737139000569235485920065209936293169364999052672541117533774971173730811242490197727647587399878842540743321167265408066464545363598236826176821762192041787272877521452610213939257976613570661948490687437033792387382077681314375828795569797909927383537167790017870109880610126072250244230616158481229876894058422205077097313185198992834401699567626741394659438463224671259153323518983493946910487085129995477331816619673978673294574376599717305278846792996683019749543176477033140311516131895237748180310848828468628527576175622278317409624928697413450179398837488570103354606643129783185866790536201552380670972419496003763334411065250111722493965594036060135008441835530227626385156295365276719678408168072001623806065979892201070204686024483046402051284990626524414769362028191022775324552659809410628625755478655309208961216003042293002024037364433819096950178692360155886047264972385896730811098472655377142092285307819374840712937433214668869865468286048988651708724536841785292166794487212196974523794793845824605774203235006440958952618880812591003275825436406493200140652925704661241086761062761653710406704750506649566218959811004288348327971071407982483586367871173001276499533252636664571193243183524360493873098600383772347637438774818290321328193889145718765650929965050767083478418237416441151459553698931838162555861695105315712409427580400780556167298101422332722081046963162843950614237441918672967214901804031477929829477844796564778263690773597606693207453965876266155673678746878459025455630530035477204945924445994065673209517346344932232645030730235236526060948920104819192546163591804232428158794052590495106822499798859724850355544931021728617465977618505182019127526194836142457599492333648468311760771131457625817897268321542076729525840528868444016452562551638779147109217611645398413116951489179868987496284354475160269160415005731127033481290818121580289853573866613741040994057931268547518131492109582313207047557452382063735104133992257048867691013600618809339578266958591413349352857424273516789211723116576397084514122587673358892397709466080971499763972423028818819720509610095473662095937106567336457302759951511590921767424737215142887861300096246699192589129913602459207765902559274880832308516377095766317780462130413476025075017561827628250489690735492131867896969747893672762818338672736607326629831587128174027497016943020409048783812021471515156776867503304239855446705918071713239855779706485700632961389716603385078736232625746133272723365997628532124504768568321461611434023133302931833094653455616011698895498496900404546813002982372332460147299622275694369877706618426777496868910709217813065345260799823093586435955722686166518553880972002522387230951604203158668534859788514302530344708389975670641271567447051918410208483724691953244102866572381060821070174271028189781268142481567959689310127353290801763764980563490476186061898431687010829765884659203871917422890543841106807326604678581876845689787870212618845288244251835353278886571708242079630088041728269204356715010678624942370051556341743368379822081399052190458326536898483021838535013353241885136771387814038686298477496304490578690727374111462835808945510564880183155793092562211042515287872590825176334582877446374287503879953641287034465416557242153577596617709218360936725662752249392745412264432289329064895131327801779154838829517283408281099804771203825352342899866048788327609509752651312874124633619342271810414728816216773148309234404017812446257791484616220023531674473160922249516263468443745712892322189883855265195522754860427171127683078377668363163392549874909499364953293527323355274010040729499048108478144946963090022045359300139322979800515125158322204349525235478210290981558239669842702205383431972429087216159589381475803574134480416270244783956796840774680089738106369179274576765942306678587134478244652599372153114771798937838749513448439095490230440920024742711667505196064687167033564639357762520469501143375797310132475943420928907245429128032152772395485669975636125389263491672557328498721268498671115669720829925526016140100014704588328575405523842628357418691212048956630135580071538572576889836734054385277365922559711393626876052211578461053953551209318525376317593453190473541424419908458447050668354701069320030691913342054381704775727706644218457206508277440769795392752570875668733362072298964573657701986168379193942879645851213876551422702428845135587008958817443574317904128408967983313717639693713433243180895058235710689872122957316083152264527319963242184850549403295901973947698257256959195628715988720447253373352137511014625707746581665624603731240630827711278018847603794249706854991943752996529725478064269809370650282375539255397241037004095978269446995917798737723968103691682801933230872892256755475256248053329761465277923586432075470079644450339756182282125881266646253957856056352096230010107041978724322413040826997703617564528216846980793417804363528293755252130693019242317502914888918535239581206058274481433032632686406587409672445033250739902084859826856878158586104786131947473023395321775904854930956542750304250829727512192219714555468386126296077774594727513086115500899307080358747570435878669054956673354333137587300134399844179857919781980845816606480432966994049518121938148637843733696523662049955793015927366662515570963020300493081386387172975341810820327345312853230153380394081823599255012204817904040502950491902462803173218618454683065099460148745211016960290662769687079574434371405521926131947756727519533301155570874142462165719463448251717014652338575816825406261225861103405624957250103456987954707987252224993163346300119129962932516238578274344270255258462769252923056493424720737832342276488274161451666440736371431479526528995967979843798222187460422377958664996576460948375213580146173068064392440421656239594202755878916060354556956689941636002532250404516466264583660846375886239777045714138131295404927045864384603629111876268592692433169317575823074429311420642611908769704385873974394496491736735348544918479706578741598724570983583117970293099969124468531084594149186273420905118790802213372367844792397160633481749769396039044498471879483525942946551920112602073100156122373125665189298618590433931935583035736485708368429911340382059458275909630639292871143302409200960266606639143107564071225418742344562473314737286620333309928761615731927058992054662095362438442762141361092617112533574896438773153027621021152433722581979873083262649848949931511480932072541913809349821745949646028776901182738454169232045773899741575214614410420176082487573497845980661615015685947602374281518174902720779146254577548544040177791580912059109947606868566423339168394842273830507324134202686946194345781683120377205134247234646630962967325529173455175640729288743259423198537826848856107401070032053135821611790333559045792836460597210309535967755222551699669545190985981779375355472810342482747781190188819247202757830554265006927220522744997260647714323545040029036754962299148160272356221851384398735407676686505815786168820794283880796171407773065147361214897799676660278026020536434446266911525531234102111754461870009936021035950610256104557118380123890623602954780171938385472611820458571160363787709723894720609423681359921531560994459708075856915123763628510536199316934453924208852614389502421458635720610791567919888276474482197196881539196489385381774461432317672321513378802901227780126663717314349170273893383947418540122278403962543131228428307124706982230956678949325658421319722920139069762275012693293626546728720297972950397800814979684853027966162354230940140944609017997151000758056576372800142040671880461662171048954250357901722796349061401736018919397356395548408862236690457072888760069626357775120338402396787389424098642108625263503209789777062988851407996742624429022691266153746500895876652272723419650209091641761070711787116624104757356189433411596400972759312200479723127004797560586876960635271222485059506600770156371964355293573258744002318947317411624525939913127611836100853707412001948677653893204442153087445552043965648386165804540047274229195349233212150192035088735324022004364428641173175583369719691437221304809911873637259838042932972390599093813418806689135556229544571655045650399458170393882382471122024714007614334497025375061502036118253208773952475114864320580687076500551296508697398272289085746882492391320370436785817250287384492273251312729875096647670184733132891940198724177534545013197070586760052808785588614987281635385721456936290272683568108809077845031534223539972634622376653108902953864506051574228151766575623462724244137046151607032192136454014860560831891629482972394918446036486356782680345395658523722626694382310942432750591874586565893954966827278717433251965012283661310195686071021814706435106053635802028039776229344205525285689694312439584033985755688311385381452818333125136946379980908192575032546471186547765935730554264860619817666038561990644275926960429330608575971572899484883188045274225231769408187388203973281644696590808182544181138244072216028791092684337185209509944672052349719731459467057964254592025565370638596133189311756192367583105755871853033942278751084540660206617142705762192597874692288516192326150192716416014613725354473337829674022937197668591108539038074886582280591807593419031082119338636015968176734060952337065096379270885672371096340890002283425627630315504780601843529010253190322713662729802904393449264025056890097508018773568835275889277492883452710461565825961536575814675262466833315549933230549545423862415405844597146508552823955600383606056318427581149733731917186411966874010197004480912517262934300459167456395544694842787782163491591811464326923248216847066950147306682172789161708340086854876400213103818151763255375703284256720928423337817062733983222469610958894210896347703099335211380638791359091771963627018370647826399494180214786039002982278299789879276548745323461357834116339457956011271448812189568395134348113971848727231751525073797534650236681579480376425607337583613946255032554130802653035814790745555933023642885707148052504229329114049277499478261284509467667711977828920051998973244465888189643471704534882716304354420558140183480662439756728035917134313960267882907689082926924525787315755156571665037405322893114673245985669764656480943094600125171524150262144006955494210084068579329448485582957655268460408014237473938684074953883930239850282616266926290701150652598656988354622893056015047761918977521340979765172727764558948166314873777255555774751801730835868627087826431226947203493904630957481000793431457387124751056279171362839725081693687062532599446287097100874325702698739919311009546680183259989095070094557229347716950342126685154828698550327380217779817763667738153838071245311708537316082773533426446502826814925647492856201584250554578440071093909680101372761929425755703131385069863621766963733906336303801564223687393486766726963045195785831521878543659847229711904475479917740066437182391347770574439933617065119184116621945686209762557984392038339961369931083819827922642393972120402073432211121646433135666863114116370396853869329348432487850062251713697086381487038348347967132342960280076544959229820119501509080849333334557844905351180232404909855321763515160234619828550006002245780801589267880344692348677717855730595837798833495261427868911070489470199578748688677291523331394227892562053402857878589643971532429008491757750655617423352542735618519521199277709717811813802126090579293325576028787794398896908389364613611727771436778802206987666120134409456350247748443500852716434566944185363423465726102876566171818636158281287991822323991057182221521153458693313542230322973186478168356931601889372392866267828714522385589812183595156347318138706985453241459275844187985567257256482414372425780756277106453787545081286569685043134398411319280031564256181229482988843653942473208992174829260356019955464729926920342012881882136357620955292722155302017453074907157360493005537971242925067007690249051334199654906282941990001761291654929914123013917238072934823481074401778775408994439403243821061731461859165656589553108467640990498259216377213814396114148113496690709936042826797878234644460008447925971773486172849003370406777979996786834667996030562952380032202247238448024827938745325423850100792170366768703819678522090322084740106575732128091258746255599347276754943004693875794581806547226950957669657603595067805535157753764066002922597835325879659922873281032570143928605171980223993856920381142551284795076952518369737407704355496078051483764921464232248671110904996441876236787573423001733325937473127366043582113986270989445593616488161006529693188442836773293272917590460969879397915064838999669139743545433935115966059052992013917003923427418675753803204655706892324177858330167750518348478886297544583818507199231370285741150850299802788188441974651783282358227305237652099480720180725160056467917976873784423767657034680853967836568326084390973310226916536189993223179710527141476853427416365244925475605937590962424962777548292754055119283154365294808345733683758275966908556820066210645740207936078875504694386741887995030747991769462826833396305539395256671807290215547127283830729956426808370391400953913910856030246550036844114344460135362351889804182638198593042705613770640514101962237839178182148996373662655649859306161872290726099886261758838139616286774410552828679532608006547182206269113457999118734784020985550701065270007192298176526198246008178295949602374362676554860022023506505740276615028907033456407222904051904406071547652571318704692678202273356034751995280880610361018140300150026757011027352753943079063355960173605815693965853629423380229161496181228326630818828585260604033538459694829214335027096081438993462190665706431015176036049931278306277073487507008111274289256742234999671717140674504386358931996708761952999311861314601414932451054320017068407429930244845913593939074067811959570263452515411463538288869707156647220629951921611530481007973478997356500630313432938603636459533417016314021417973762894910959427766230528265412938828556395434129115787429248798454511271307449407955258961587024110903575679476083791589964344163174108699503232270401011415710272852876685491862942858569711914354750533141187445073734461475888908968421187177251127762166654994535004044441441505740834618814805410383720137363451215754466277993511432282078759311509904362106420813380610159292557504408389024544280491825283540650814102786341355553855954435141003243365491063410936181406322920386641522892705346720875616504982475095019729640039180598839895313111475715727418239659219286711539060890876139926848298591630654185877661062739485158248887804480023825433779539380711891956151606565325645593026829465959027249432688833462371844854857902788030922546256732608679590234952890109338392220002350950680146461322033986642756240398457544009641655751599192790145306778688992000371627712593363109743774292644562661591816036855767466485955031744996244978279975361847042019034270959336584371065043830898045438074853804131844564145174017196671008409352367877045265980810717718316881410891870258145891437833164752227050639002555448278448393039154071131590671622433651704965571595024590631729716412510084209489431150148169072064989610804697526654727765075471798417021119825241963448493733820765768123182781410566284768264417860117405886319283310639836189921171914031869739519084445258140121407299352097522722354183414478695631649331157098447115681648021966586209062919537261354924351841427150776119755169110784523920935031795431657544899757113071400144724441843320063087600671577967589684544530349493113359854434883451842063066016301759226426476414705748595339584250688172253577226056971311798294869498021306730214371832681292836217519474655329171677364463445992257442112330788711804747931249799059910375076569404710878698666230755440730957019242699049455519893558585127271617519449106899934025233641354945059704212541296256136604020474204002985113226451870101779803724696682392054331419975649762058669915898587226316299503933799767494614418786365054927166201259009357434466146771230027272880540155362145060797055702697524303563520402826723554252443995261684664113695803229294585161451584528229793208610642025418852321588213984295454070392474110300392079914832459959025251892136021782946011784625253620168204448407451206479307987742315520563958486746726268642064804870400999894365611222840484905182309256638727436812902039841883577736435397689118900540364076701691094722446985938981942394604040904085361295215665443081068939684874737597045687754372292795139540693494411116632629516888801110956209567575446003973817438503164589039916711815281007307404874640593865577777543977177790976307002859791953668177085443866062233030931024817295449314665011813461765383651650301836350942847002484839649322393564934243371589265506259459235254469986166099750283881520127088576597044082539282007965662345845499468486051411819286520117685046771410498396483932026663714639068102729135767951372411252973786976516440950522298184391363985338384695251165737298151853199579207936297811895235857944756187423918736000663761837121958062047984996057306473848391014074368633114527011706756915646390638726213826227680833066937163473371096384901261644001795262630183992032647368219921678258373140651646123262114548359044719436620203539382818512967468172647520403944880275699046532966246166811841718415749748952893298281423935484296766347444553613957760389779356147670305075637209892878327559425109303025388569549007798546640928592647876732362580502374825553372581894191909090095357277189680621752549866466718412065390070407126408016061584057093197012806338487114238231113370830506784904161633389693144828502098879114118595716140059480298148025396580462529845887538948989385033871808122474735198518464074313955138471864461175558284243399283698730179247112668842341667189621435893424199382244468547046637171269733243790881972397828182114708123805207387763763723113889398152559370896261532810505564161329975555053366731570997894499098289131044452786696494809836769631605095077825917001812220559016917253009209580803212360125045520995928835824212890362546287896666139234411700909904080172791484797568159521181010107717964760495491064772858995461516946851408017317997363982924775057879411798360313786807344955828813870766530717134144747956815177336067773102880431457753254463001984202807613579115622698779337859747673861540966596147094797344542177646612929674872352902619953783356685092290624919686329433937834900128537129819647412805595941754720211900257496172793647842750752526833025555891086493750728705342967425370326407856099393542585524798062075180863435068307843403730900558707249549376596708853733806385186180563531230658363780633087734024890513626663893584522543718637045856883755122914260132388803440157889493073556414234969391296165041898510798571965195144628988593322312067070762222825962799909052075349830694272611976499972456637778794682448773649459609617337535939430393976109166641928611884673098608909036551755789364656599359114553174485703474566340687835328361213901690659352676084896967366124039729631018286937384130925360845426724206203639001606726628546586254245166502013609005028858687033870056000962982423433400398215461490493519555242856923864711856968313039250909071262210096190514385330343764608126947800706251857093785182047158206760119360412282277573212904365785688613301434849090734260562220500671321511114310748456601382613643205394656091503860467182677187087057452482730553448787509160062611409015128927961131682733058752414273423276314610766444684059654045343735947157017756671453425063922800511675247221725679528682445355722884924750314488423913368950687079772598736475325255299882204970361814552088014232107410905253140202481847214938104817253551024473420130916511527417442378577625278114269305922987631554543526710462023521726981450862061840434169909941322101113375922106597523482167895839984321218184243817056578467565601052848409288367537582655333669223512013972639686616762578346231456221784273282624475859273628932113102428816137532460607759789394085378254516891504557935924207972657346034885575473936356533463700011525953664679432294839322047202975623081598191162936623973096030922953966068852876375046190122101766906198536613224602065835244132378621232411892536483807955972729261200432856648713005261088088462120475599312672316284671696813160617571537188840671826852170596539989094164531014146032422506627548840378497827389303110738970748051911762062101492590697423677213119695495670841423330672340154518888704115137395986789877338140413698946958338622768819856179801612447152060833579857911147040248922967108690328114071645338913442391458635516136740506281291131147154159343877736756630382708026977069058207569599975187968925592933505782916072398867680355182521181182375998638636518661547586922101571463861583498381767922901918266777060268474473764467371665706531575859855011446304137841123727883393083257683774086450696362487638554579351832981433814076784697247699276024233498551655130410850695111639952629443633370427983083717853799398548404158717535396459734820666837415506504944741124270294384162070407952019971964591286586310574841367662637608653235195446711661737478559189926863790902231055165765853092213323367645182951677652176699266527190759706886220311455793555907668838307352975393132673942286936927539253350083287319638378005190811409050137954479623215240937341575950547843065426279310642679505715928169609582015262835950986180369141049733656883410709987620122606881686893686985837776862244186667345331463647497413719108071995307696439549823411187748641502516501389081374673980602901712642840452773829205156452402811607166016892804708530908167995917862466581355802330440522729154458135218091570954168845797856506984267084181929248138109640413268766918094854900912646630962298370338275408713931609431012744813546737401801250597303858006330724796829921979014619164799278256553278370718898725514875948858119746629701625222795315137203181246725883703309983580366293902521315607441464314371395037359967069272453831507198924056441309116899507747372557450423524464323600034492486433946334637114240039125694154872040450004441968097518773898690899473973893010251129430706002466737506532811660710208245973723975367901484042786972150036742955158655434858239317294729453741349990790672583866062269582328462651227857250706655126360602548547726382534894574387826560332822769879447890293058540910888345779687174208240439524044348333445343911873941548614686013759068360884997420015728357480130430966763767017758015539156941743886285014803745116444959462023753243700970398835618521375941471783438300544279984781366253868861916139787950518728009711726557426214588793845620414376848382161893070038101518213557134655436372523199088547049060704032303463344447868625948708703072327852039743242812929177585811235386082586461508501858466278447497285965750316423426692854534688083451218587964722135190993215573083199051615340133660788731194758234365219765274921453132288379708952728154976809408426712191953679391232099066068404037516445240643028308744220223900795411559637976216238538595174797675110436184416733245295794319788159697574317914916914314249796604543320309715734945659130327035718821794303206409751975043431135419084768066401513795552691927299236710718951103961799721986319236092861336654399499087858976928828594669462612942771347509438371431694772468707142803868335186890610322350078797408915771779606436784110008098421968904882542068106026781100249062779961663979634916466005703886123535672824109432164131554775609065476702196323951382245254060574452422208254059563673985316739575432004765789160270610479559172268742698321472234476955118585338312807340824676018983559607534868821726199948438119863522012238325035890472724813974102741511709086777015687617449825847968754050609394088071806120633803087179726351796953739715328893641642731481757197158198781026282826888042243668460237919014105186740887434533419862572401090364912970161490701872601632367810466978980180783132707013616695832045780336072223464245724983232481395223403873342136022701423999731268517126549666595316085548647714457885993393264721568156457060021226573816623879995256799062034242802101370117069019503752615806212192276443270892932523387257697619049640851355757531113132343543140887592636688525907183359168733470065299191058950145012883080327659362865670212375763757476656335754726957774584240965028191574284180588694384192989968698491739402632347855101858002208044630615836872359559139029052276553521537208989542020142607046687462336852151941831886257717488675748892335276651381475042229546113303958987844309350041899561578030991338010149160895861653177342610320717965777136757668966169641917037404035131750103441368817878261403795232200760100392177205823700484116610341949095024394153128299926210331645590178261157885495507450385941813317579537797167624490043881035803984057975579826927304664857440865327518528891633507868312322303231174821825651318263801421146409027389125695112122545368202749211481569909689641880395160375761723372265501175396367022097145827427018358612240781288996200338200710972149949130371567530685619585493409332600289602024903613217775120917032135641735933839496925681106557541302360992665859773752204392780945170509726930873130134907958621325717150669671694711447102050162783190883760659660635487940693445414616932266276257392486408995206703923709060147072277345020246253171259523442834127828714799000520942254266040383272187952187080650518775934651955821342644888218190562119131881641608551993538237764969232173513602234290028889543471773099367174604314335305676237923053901145492365932561677663458140181291739829001114069421826635828798458074519827153571265747513784894265203540875364810322575253593669350550130081920777237110641953752558719325109943740240511457099330647316260944975855202399270729586702055934089586360609431199565389531609431000384580633641023749971311159084058495628849306203786893931832648415638500011243479277959901859313682783368274107962041644853095924195299544745927437013660210892396044653730635583237509304883204262529780280362892164918480219037146835158198521240764802258333685587080293982840704833160812556147838673560235833770668846231102561886423519126888884299751889742906284675430480502920558110647147500819222920681309408805150450809117877193766609652753995155246404025507931561857516204268934716597827580891819492440834427202145089750049195075797585160445027641344426588240924837779158676272741325784489915628590447915712373104865582736113829765344487217097892368277057627809085575102353612456172082964113061347878914595187871276014017221867902035526947149517412325811487570223755236456250781617634717043856611503593283673262938382842868906612246200144692237373452955674591329332444899512197770440732791194451977624072002353092059497022720013906080021366420523881088484979850688081502072188972016114236396835809430444983629385319394260945161929782482388350714947485888067439836682021494594609627544074437443013217054627862944285949619246096546256416085672343890526080869818302730200496745215052446180598864914246520028182800797399326397145173899742030073366276383515910790218094607505696170064948796643428749886266517011422199185400770831707487644925864415214351766042725356728784316316712614036637787789167202928212624703083109869137705228393951725164458090437941016248658030366665092496923320908923176147959346616604391048895442788201517761399609855610138329372617259513864091500050124661297503940357966588314296891972239836539219789084021602463355278371381791523402639999018663303880372583099714868371752114708876758110665101592039605051239156593619690798684242213250816603730389442380585220640958667987646428946862212539450167519381593820698771654178634738965043314621058887132751419667437369179313210610860486581598164635296385189322968081936494018732205932275494123554537285680850547231508117880315633418715248722599479068003463797869053831058631196886203467571080854507019169812281266887287192514780571795250590404726324492715033522372647423782165886354359769042796251450015373651166761681876433436724407380484206465108522219717099423985803927727018877102936279296925326957873223444451354061856710360996088417302870534963385427785786695416332126308995460868984556858739073575544401446994589165684526234552293069257254431433954187759866002963875367409679634576631095056658325674542005514413380241089200236172415383156625335545948929533586794814895745028951424324507149442692735306892004118489093837286501200844869723010867399617348540133644728921931530045714505472283568436068699709976319332532222129757612542850566902010440430154535198643288898705250606871852091277104060268996995510829813643762946055924703036917289553413144205125216017331908610224212857851289098213849988642247060805664711317761858951653748510832051300929695558068591106108904807262769826724012908263941032508930288327715090243237571002528174495210510482614173158033170259987640962854633615431872888707006542442123014755916075166316174317777713371019788987811772448629173594914627789956567222479451360134571829743292054043374215016295108213686032098873716786838153401518347743422872959562798853604689430730861420538240853002157997792227814484891430268407871549197745307607161598683098426486656292574048854889795478048183388743793456624192232298069901207780613493374896144073468007026455911080251794819744256519888218640885852612763211710967906314639791616034946958219587763898086016274546809408446402151772112898792725929768017485330385747886412895221400535465203297560982074439355060947968902453023523935431332095301289378167353665763008198740500983829608835902077160539838845185396642666709621255769013454412345249365469669791273445708135204522385620120541542686895443958450532386835958512989976029195744281115910179289179877830760229993082725093583483729682431523823232760084222000929355899983982728976330983025655966785196546686791433753949771426319809186297365587028043914658161932399473381883433020187278848882646381916081760285818861241956851906062754894665398493444679868708763633891632728210041481275564059239711739200589621373995900020676309654900649023461781054700762172218328518399748871562985326601817680597545690300355324564026428522234168407190185035758792644684825563519518075161475367971206937497488929396059840443274694000701382512072976409203808857860697055537452683553055970280819000819362382578718314553572367756433772487400586591347256254527505175604863081638278373207294492787563946001920992669097755464012521021402473859062890524621539842555850126935338095856552106277733038439105556398741933281729241424073972790919537093702035664906091114377861694068463834678276593116183135209983301401321896026260443527499865313737819046067238188397844174066844363908028320368647178910599062586659719757231834467567683412040737169621741460117344334011106478860350531977593629045613267155835142722252211189145680997559059139554107594810112575168941009873529440823978142903499554822763863038668688612866052711522884470290870871450600475108902810435124736002291184322327615093298001110227052806181225945880145432685528502472344575306501538973539308280825928560761336469190290653581079776742532471068278877916090465190362310946234097629902723190782899339291006402800566512675701307136659607133482151594756567700522769843464303152206206513174346458863226484250582758726371355616075881540433722974250876325038778475019580534072583774146291282622562997886769525061508269674928804209986794049414996646289773350149830066421118980808093157731585687498717856493451323593593338285445786867304380436817366606290033240469919902886126001232353054959273942885541542179290948315951676559553546121070092158641220554605559653124513898968510692385741671272736169473624099291379954737159285401272320931408642548863270442256045157856014692343305888864822290084357003912828042103022365703722583088616534615505221240264076416646198921448237053900302498768165443398969911450646434261780731651965680196781689457222458218393082806418861087115054179916494834824632461584398741527799986073873036808241356371558082986259566296425867984447659604585361303387292077180649582891752775332030052404565043019060624669028789905289146611264348283308485900081705036980172809778307000854774154490259918237801369806078528127392717829130165932103707174450596432771148885561404383682660512962271405696209759981611408558018659757406219027817976884860252563682573054813542860688722890143330295962165409557924769051561165023113784629925859997706337407912287816893381513912060624846787854463867874158026643921398992953627240399665056976664926000935095471105084625824644155197338516442289364879367313997036700692347835763740136437277378520196507671664382120475328780611019817044326137073644657593132489263628415025370764191090001132036503814939298976907253832558070907987277976135217774362033634264643447499919207647783907840004357164181052123766486458314129645976812813345568587562871421226490272593588283707519656206460811733272246007719397337714835208749625940216592689803880247190187230422936678228346970268705320138045832434130495100645472212192796698877074114372845259936185265412320447060792000556519554689939925968604995664219676914266541445385154423726884517697731298101792790096313961377374720742766724386755806891478264189862532237966420481435723133858029042657351332948857296507301569167582976284038441433967894467329945216837325563029127560579466669578673947947235008372327203017821288361998150574189778648072482638353497928225856253103631905011887958064480605944084799253342413474358699315705793347634735015092664701582866225793378768947194872248305065684919773930147821992230627919827761246745173074689089392438755337586945800186463268647673383425046627235395726408036926457826262377900285608514605230896534292599316577367646186148505154568001650504689161663880024715954335266449925344698360436010297850382425215726842411416490263861878877462304011086180221696087637181110964103441117086592431980657927843712474671953476299682183108473052343555671003027830742375708572641459942121741037924429023558275073061478350408500984083743143945528401052446380729653247542892096663100755296975361744882110478371023383779763872589094871465908460056382100477729694201280438425159178392593096535759489014763211629061178429012257663504848548830778516332733686251481538254053038712956845215446589010653648912412246368129616607475982458940445983899586569271618974564287662476907547363254883267489098019229330033744030302113365556210710496866999093712102897487411830926202338486564186959497543159705455311871725116349234938206350098937680723437959904514590782006482040249741522579791188480915970912084576471617139855500885127677540080571068561123765391567639177776735390349562920156777921257656575613077218705786838969169742749975695806562691233155998226619424252820201436561426884895278657991829774103660270496139429383640322478705279737883117589533070784747375276776387925424335711559258504234772301610798518724776598687193008750364193884856377130423554729826505295028517292863877241829266275910266431083694956637309004141358202996436337028515235324676084580060546931882021365905966032443709294460118085382482998350287497207476816712157659909538952923763950867255248505272315624798593464444654691100940212800715899481813516332526760413774522010577858075601792300983772177242597554540610235901227218018148683970286470231666072855954890295611338935747353543990255481833839350890942925785729286300080081839972800979498838846784477797240998639085361966036642939841509359313783463991144552395900387395786196317113216104919117433560319132998160804866062244006248749532192354656285047151567020498529470505636968696505140287549021820523096187952984686447140197948910805797867646909982032817201098575684209964363710099445778984940671338781215673773804210386976397225086036747076828657099004017688076198763739868385274925916922660069393329904855968251377447416429482991919467004136769730126596887118715394377016160218943844751586307685678364706934844643678787677611989224872807789848031719492298854613489056748791409422811119075546469244324323878805826788643313572229511381224663704517310329359564242452149001092924756934687777448374769056524049777842922812738953058593723236470283180234040976255892891577348952287850199537595278009988641018610864023628332658538416368974479171700104348577809431696597830468914662300894267366415581587030910613850174000457222868154276372252020400215459938238529070269334826787834708539876987012805073854687402630701396054179248118878912698863679508618149079963620030394134273466790730599050170020143081536485902186284513272461084325735359185074493089509515163305120678992339572877248830465295431010320259043474572001596790821263067928391463623732277987422015141735548996864279639831779728529850884839881705006282505720605327772180543394544882352833435995588572803876653709627569818425215269477106317693016647037962779896880966881394131542251665615279614349217895788714884306351202438460104797465011014929494074051824375741865967523822079192735993978132270206546855976314846273898824959995493735641300924117384789470261715029605830614641297733304893911105907835339426613491561300708807123005150982713759700716054196422105801543469193909036521208194001658414263234237942732393989909698413001840334170606856949279478747313522514892807566933628548070387204379798274467483729787436483157315231671516184351034271717827978473537620830245501283017241702030931331271521549956409479107965056606364799823337554309593116148992834333322626930825904730024842717042389615297690717244808875810079243431611312204611874052025787954578714393255960579497837095974735536798848029030888625747383842270290251014336917389439945017745801636674839490221865446524941073463539935187521415884697692937453359734372472090535644705640955420097309562958835967755305986274930980329260963599310472321942298934117921130283687043905013886278669578765149986743749422434612883990796896116190988807700427739705964462708661458699906088066380326554261890848185132093651714808133749274725377718140683773293833731566779215718285017091009548650907133565470296377429818071684490804081038541778528449360530693005392095769754059119312599564863614001064801556804658954058793425551181503353471428113013171955920241638504811324206491880487508714929098032017306409338151492607451912764996643592790101873523283715582647354807038642897608769142899582706233251442744613085576936651471787182831572230759316569685125128540283170198197182057150803754271352222121590675471016918679083783292600821232676165411358216948570031409623788636353552660319940730302460715935253420277519886193930780223802252187332645746981939282750028894099076052985611188783548173475160599734045118601218507520050110324908447684865399359292414674904119906764405195052149335056571790016624211335729974825309827333710932120322163380324188633898877667548369230576115203905348799787333275291612600803708746964408851524003082755967268006987773422195705716385467294049537145763646469150271087857854424516108485525844456261878469434440936609272060605480260429409824000398873742837049189295219186694863127269450525637613290167814506416097159966017673851299316989567515679551055876253510051048770229853009328520340809852034191152406759552541112480124232372390293794602477964899853883395807817804048382742166779889937094462779523645171005157823907558803771931867318735953514493063968626221622117685944129171988509019775574691335567285242070156667714146927519863429720486284905446193938940418371256343724121611138237678584412119013910923769324938530366391679530266941021902158865803607714153805860187552291687584163705523844239106882866648140062519748621215882663376388065006354301571131820546428805492769070385018705053106171791291063846252824939151600851410077230059828875429310439672612867342802693393867987170381023844374678897775865584828271931357539581906453118155293106445102275474993975971068077819972337593062839361231297236382885139405435118891415865186010375588613242304603152500853381145557154809536206072171845936679948257379217043939805278194209580313844615079123792244783901446059208353869551557741136414814929374021420822899292957251376128224960780707344738894131402718717311522380441443988769996860404103074413278885213018969320122814921809221883771001462490240215430601209321280387433513222469188827123150366143876510413292685788237223554781048191440017667001474467639197031084895005976137984903713820389934540045883197953226246326669640349530214955004761738575854987679256990938393438364475435067125540114145389112955978051434575233030684954731155897348322648432777790896090472619038716105031445899927317536399682134485745891282347353050216754278395739731648697117164516517742925834982253285957964146825827540621947881725095964491883097541370705458317668503521158258333865271273031095443088602913094957716592445366707779605675518038157205235475421111182950125962255667729086374651462163020846021082639199666539988117912087632342903425036616930437798567603418301040502595875664646641716281093659133796449588789578092935317741213419856691446963740517697889043112415293957058441658652142440899285402575915715252606551640440187434240517198804550995507511197297890526484441189895990775223554077889550124842428246290920745934478533903274390692914930580405931537666266751885737811702649098027170056508166657841269000810876792079268268269405148355250425346792756365010638149249290525193396620259565060926212778477953709074600304158104336327131347253623050705043940647010511298514539200658784548717777764304902753314689471599912566353601964733571224162788516304288925200088859093370510291867551846038192670550760463972763516908503584096622393753755670303835787059867948813133233856095443047074356571892146926289394792943621139697518349079749124973959958747611776750853718312095402793922958516823980292734678996752375811793163366032143404407497300086670930310705941904141040133195238020939941955081057982021821311552799499355031309163263833635128975798098545114606537707598443811183617921107668039964321239015222650780515581388896289550905340512761178235576473100682454896675903017652414491970129803041239015551095626031287630742666443595003054142723048547474982555005621591824871319890051763408166372444627351237286012759373529794208624638072633945657413977293637731874229627325635595700362904438773653541904486057448980107053532906739576239353855240032976169421139497763025626029308145199724545391857255698036958704744923158338383798332740959228131581906713668054566712822216679819759110596810627826287419498359003486087044241237316939787795503055573342456904266478602115100290905712558282294777325270449039925482666908066592720234136362572835512683183825735585900890733813330650035694531067641111560027286253171132242267493670306872264530384947364228757120568852681936735481495285398524704833433258439608426468555607011537052387459386430165190746725604581654431467312301372776911891190891881323231574467685781174846047803348824613196589543236724565910341254968679538502544242102418261922902310886925703691069657433432943897230732859816432380501332685194293666018043422907514187420677141727094829107063051085857128207019400576868544437403913424033171112797445756821967488327255262359142073123011608592130322651480739868268061066512830595304681089804290814886863382367103751233494293883544665726283025656288200736763302491598024029267552873821634305967518490513815610182678089897859024284901365468683438861791653412572268044169584675882132337489858546782214215666397582521570361758174671014387045453566554427972008702937428146143538488860023502578313317418257323752176584323944588194595032243753552756596199392287123424939347011313016608114768310563525104667114931590149418239463244738960331676783174772486574941869359038016505038584652199445496055833744571662532892247463045641834022166938144773445499046248066951077697609572276667803607442734543681638163744126835583082577851058878788858555104420010728266429176898040585458943589005334432265092695267088667476285533016485257400436808153058829672088348191177520738190072281661245317891458207242904827578452032237870212760190418040679863565871275923197855095181974599847199732708376833743219026451913059608008090123777626502121356110891792659349029070497823819627780698783552437316100653931979817118421458644513871997307383944949829031571976451084124263048993336416724440885544079497015823965701670210291926522959835289306061957635310307443872785821991649758137559116444859673987551151861007451852514036992912141280079254097536334731921629293190760550927014481327959926312864070173036597876153705173838558846639993496492324672732753864510661204151170128482798032789471751976233801531384441359654971198134481822016437686150492952239991812750996948936386681308174365685298408351802403661569169769711058019896051575407239771708545254083630266039758374789340995914115417773127784282264530636067884288533909645474482509117379244882468599188901427612884129387493284545401431040547046120109378295507673368140466759033631675230107809344664842926063193011741085485953188047538859869420992237879022293498844324936045880061179645745049409117871049573163671095668734836816446025084871791900744167207703950622901422829382631261267877584318531045321689313502520715895648175368866712339342508608341048832345480918970343504852559398406441007896387048003753942345282422858791140453231750485721140559646484847118999952856956420518524616439239818759114328420832076910504063788004486459152984719719403505141108680025028383393385648769986439828056927673375957937362382476056291535600326069995445140484611128345790233019949454674413316923420829308735869824937878769550190225296038644884270276150059138123921488250513408121719551968108595994278789793461665329374742404541161072079690370635373416705000863658980876053296892852875447623511053309970328030697423037313659571204801118482581810492787935927607065086596919899763528415759150903009767228669326023670445027795753400802655996903752239994128694733642387813570975469800033838070970866313326538791405925327885267174109770590244601465350440923624003993889105024694380997781606261887887035080859705607686262761723155295338728556908514295872732585140386134097830808626127967046533842097820597274017549981554252052081575341944557729072569900159492388659226234324263978682245944059643786925781513072749439550821650304428761623531676508722677150796205645535013583723775325099464844519550360350722512585666043036353624864148003026246286976679184056381593646785890129041217697200133898347616559605488202035998933241146102104955670533562723093878514697942096665214081332008931395692426947759196585565840282021769060199053455712652551021890527981762952843690970641565141066504688848835419406021498874516176547570482982054048593895332237872144029550055587991016049880294732746265360377537520951609327452784439202946191124386916695399548670242031511845852075100600299775095652202691347326591781904177301599215090201658405130021411403368077922100309507643806532690302343348244693474098453091567680817316014059497140379012890930234305976220106192424436867076306755357291583351072126936871657188332446498279545578916266001106972214189031331532217924552973912466883152669920482538018040056531116951617382507003342842615405724037462378009083836405792743506596048665682837390815849986094826087264221487427448436624952367387434865774478795998179674020019827865260709462103248496109914830289138009246831506409588798329434151254132792811865052207612248602446532341980754901467276195479583399742103366590455126384447490890938858482757866971288643810595802614733222506135822074329834611240963314207976410842428907663832520789639376670779681370983771970969613086344473084085172417865951615283663619059805482765642160286190878475454126981432476834963962746866613259047424888032425041292185303745029977066162149531745484043090788225986487190092460975278828233208640112940386049070118459872824000469411154537802903833354645360699901753726294364489870755904532736190568317765956818509982061363612266409167513841433002151584982666977939413105631718112481770435916868856793768212589059156883644320275523728149406522773294020708015328115770217077742967163836593524771831045630125521791518609797840673360035120477347088796397570260816463234506040341559015789379301062778413697796652736903168536615133274536094556126496319442912526665819880189288432095494631790523585962701917925260016211342849236037917558918906365927810576042700695772149837161236741741849091951814506177432006458415404388260274413385340090879234624115959652025726369656019493005120913227641679040990056767084906161086063492358932711440395015523363550836496216582360445983994666288298052433191024828701051650243384878680844913704440434936546167189996028058589140471974367002688652461883121535020483154651422161181102989589125418137156672427422307845178954078656470554768599369221463966431542072670743942906343318193447763709362655462537503936831067495859256925338747165615023481575400245813816432220946007624780181497509217051309291349244406402032446538829491505569423724227858820132004383565705155509081432730629806866834838058303552875843782489643560511101250891998927215185755098048856362247555644355195115614728499798242609035353068851523684104616973633062963445683391387196789838255767524864812664818841849497163031133236378658706893228610505063076297835857730850986407320039111355548491069784952453213594699823272384252975315701343613692173402464427889294673136993924719872035370358453431836226521853741640793317897103073521238141071223047716477833526507008838115669203411729204611783029125459972353268284230452865920053708927562686428729217615891666469217480277389278148541361256478924628859545294238827994655167301739973205515571439874995664003287602178801527254383372703127737432639825823713328456671543293110008038841885898176275314981490589713677279675594162666855884789828820190170963654349453260050577567024969574101181603497791894495796039792972452265175722951043203857985696213689021184409151061565317689841185804788470796994844574213501911090588443099626123148330427321355878672780353855987167483364248309975931163757748830223849880353009345872930345211416308780594620087874292770153500726663160766033626007220058931022134962593790379074714908693625190010880601321638024225464171449816016326120139409605123698086702287937455426309472132966006107624038401417693186885046739906238182582858540243745389726414256348835634920060616715940296817162571621463241210633141549036010983627480845378344240637888394344359491188870714573511697876146152716049784776075632344797837254083463012299951446067622419825313566943807698805720709817750391071053567428842840222686602952820799159011347358576322450207386509317517522556126589326150557252975644474137094485416528145503161514075557714934706579699541043386738650310772988328677187906838993969637038696989283053494896349068304951399367413102253979747017741275982575985987200048048647766410269910720826135004072919757021957087148939055820037691896732062479329943342880270264511426694502223318602002586362430043082280588744418751550906984696685865153882550665971407617361798983877020159391243279646651707399375397804656852633116261661936561911486491382524042911604633244192275549805787920814834025335443251730754519349421177479969224009066307640456573968713872502440268778155261782953290123916466828283888357562754806037354020177145325244119624982364211116830031067683274976255172284166515325283379784573937579207850737803333321905496249490165188538465285241925124416437581329272751525064949257740145952835698274223423487567687124721885293523428876070108650282744433150510391211402734641465663137425427890253295603317941115718849435715020795724860313328842562314058630599812447566674964822466580203880923998866244296209475009641499784679855940075782631813358713505424657275162850224754098199918301670152701367068244967244557891596039535031145224635828640711609368223021761627300095020514379279008332896458908378713632224933373322681665977709804032356708772590175877105233431863169846454295819219896974743376831434000009437878435632072728783059251659243727653211291069295039486006460480196373680375534136942281825493780948942838587255151494859644893164817137231684839186562391518921881732110478686329894170695366291986359569281166119007807153960997295801038809988041756120001724263500275619686269903919113743830426172323320969536572625084663738786846646113871056846926502303289280941523758843849924319037859095823227066194126431309272954400996064503127870269371855526712720966786500256393232851774876299259579635277266070503058142235142952476984915523344538512470060470971932350361370050991808446614217267546953360760251259935691889761706137321166249282643950987411870088450772634593629839012436866821488806744904412583152778737764556848343616228867997288439249900139505899441652017327913176152611799640409029662185185100394411245967966033056947985321219453395730942272805355631410452566366575409545063117253664602979694682381342166004204365699172151912853723918615494321741244968334954978584378817760440802864226647852625937163352953123724708039770186359332380733548024100639968497743431208946702818409757332682478632184911656654274750161943328141818971783807361986705569947127873952725713445777014835511879507395024456910479121651945978258789216181330282529221295386573189404080675277060422578562074951695343760717584466485658850680255946440166830204467079983089533993679668283971419389668387518796647063963672367630620857514656497611088215362918019866480057865816830233776900221926210867825681072608144377541692748182039908694246145956984873641814847984751055900951746152467920352635363068815083170109612815039544901380554439293361400556131250344059658207995583123795105000787211847145410424885168245222762517350051009129414108250249722247616435616138301137942467802006307874327261999118870645809928115885239845443989752783608772202331619715976872936064647701425958461666526695601301717897969759434650704529434481298453538265920204889656738012988802775524560700552686652207304009653314343722112361980396088131450600630091211156504212376555670439135510631355133499616754828334179329270554200933719588247529681168884524462216845645693192609813394003774041866107523891653052555229148173463840731415375182299400984490793823223990086510087167429646599011849567321888036130170570089733751524305036152570114931629272531675869104914268108491562273121702573522773733553563543828737003515446129637147994507156705850594338337832985805176974612673046563698545083812635450756848140467483666459648215948025782205481389185691077574897275919550188318515457112403184962594490795740358090046046802044955686610016442295760109521580351032749206674092617840413962822467913492677047657610447539549011227258613533278964059956791271762924713867456218013260718102751596176025648504019602813422782157484278946180941540518862009630312084112865554405539914865627633189842944149676980141202389087992730330812827310575758964062131329439769033973507328841128468654833987137847731592205815089261478158038851887566160897392032295426826002002763409847678566940075180086272641421055555449402724651855747880069912370392414185697145621082846625176412987856187610098484710057253398218896963846709019629796559228356934533152457160857190967674282133959973231175779779183696531208262965176210004049410971466315139300234557134557159806666249800773531230414113597759034606212418096950347874531137885169553956670866074437085722052861446601942454729427552142225742962170222134703651226749945570815054626386649519804403875690107219164008170286108231077875923856881886841678850460850284437818296486943988393168049892315896171571461599436343808947662041980494015412417946386818753665992415660625060879091028701910425380419281108894128544901374981765635632956366080174324723980679666669817337007564978226180832447714060665440235155994025429098942013390413870289513453274115444056954839663328656436509680547815284803550672693562771929238314844097901770006661379085908685602245657339229177743237940408997777988377399559471534134562662401681196965343632253613862472538070159928520784645021495369214703443079838324434266477941938958325519552621869831433494022448508209989018988165729013400039576265193473468103941419070146106230203087720619830722502354287606058285352160988387407353681178884243371808536210664296122571899162877874822488561335435498991448275466055787394717610255000169064235308785961623943449623864585795695043635489383791600228246228779522863533942852483336668470475599049576576998496316130095173507363759613646559894079413257197999974307804736558963930410321020924640299942112697221598532593023397728800158131197025367693649173649992711056209977836599339793440579895796940762674210199076419200983921026909723085045957271414156288869754069552903294439175912360097397945690271641337223664038492531989225758434174809729682089840226639611614599735440904644154674130511418872550466809755832612736986247915841029560816827072672734698970836098374330312004126929142905205958247385327207632048875136867799130609844137610918818300972505857432263914917572955019219297737271168528173658111503581134162120409558082966232286567348020547418193636132801517560379188885469536585554794723551377104172854678417438861217514664617306073105628812129044366078784330444765918633384461945510227335526279074075406962870392478525860804495041264321324818462069785567794219183074998326275421786650759036554786784413744935449078036000950228903019333095418865336348580462432791539541013000260570516784055285726343262844335909655960922876309450331101151779820207074220894723254558232493220545243586290384930777406032340274045525341154366029403115188500153961975391152296736488318353368768052475138081507357131110267584846755163620814812869496196055819958502345240510923483706959117976706116486268186890853343583189924311123145121999210255970468721385772168065547632987714055450172468915944817970531828536642606929448995711322709814382870117622059081383886704650907531323218034368660246734670129260866263724795334356330171597447981780282740468858287448276686086416241918952739504010268268171370312199146014479950038057576543346906851480002087961936004187494698852562120128974319866476158507386430441165566332546117966817518839973892439221037891136369084163319528943541937672379661909755856226763578939264277379877937980161252702378437268130850696060260573541860856799774935999609761623673430148278194391687695095730121260655401820774639148706753489919115219288096353498356591420784824295379250148784880374804056096003982355354816316645850919377898991238053910662509031372684289336172821757440180657148662719498498335153766794263263281157110442118156771226240473984406134387261957954417312857573127458371865964557078363114765963831508071430559234933020424123451921369401668589666689112031163946654989943598315521047165426238650879555763393668673022824164939963821804222836028696982223801851287369863881143733271578803699047039612001675768786287218476982556903000316177432552723877018953496377838320320454484878423443464141877488889700095088602772806608596050055136746877451551544509737120542610840468050284791088766589288778971370308917292555908732712535552451271410495315968408870890722106381986113563282116247713306411995038441966783013482995378681806024310769945171015024372133935116998497808578996258079473623471001624880698606278140379940731391994551126781451793735564137415657565157804224436765221416694886234077789739974299206659489677582779778833035873951495757477052999262126583788887975159661351138376182713576476219144951518522407687971768451066727227718516859704531258566652516840773373536707722833943680066915170761648793341467931862250285104620401373813021553845999086284525015103238634758747006595758211210179194520817990724053668480411387968173887202218065512232209105684267375800957742019332515255436522522035441605563493821459753740592167606194795092790724904974168843305011624507614042845429157862777040602262598243665239966575279640838764581811593152685770427804149539781089702549266946011705548914182848620664648146584614014431407159326691782556395678252185430790617526913550755141672886990387804123345163898951522317123750821892649456755963829850827883717189799046353025148653196020295622868799227433354888482150332611954616404843770681860796974395255994772682716067621779965333255965725961454762662604057148216317373950031772263302314786750407957881753772262362375695764038850247171533228746441673533294786988246005442610118807178329802527114621367061502955827715266625314846061241934674828565915731842863175005656550222587001546139963337613727448888591642034720647180529772465288902854063923178996886889413652023382507957241280021274121410299785246016969544647640889933203866326149335612678207144332917027654644012271361147545636648649659397693716773518263042426966776769004181900234752070035560327693830407335590406611815480330005268589146001410319861727629941128842505458731379533067612094550597869044259449190118707798441707872848567826352667867394028324060696956436325709948533702849421959813643214665814613502737718302804033599707328046420323946374001016159434203348450749513089604662619926678310762634978440640546189332864689526630434588082063482860826205401050308378810980889786377339993116656146464822663027023518071240158630655967838713654180695662447261836179461037390216741444005005343490580526759555488265734100461495481671387129350061253430273287472266898979980742038341622633253646568533592903818870319472200601032014478262094657147899053353195297143703975839727464248952825179208349683034055223414641033597388587232328153931121772202245190058818728563899944716330982293579855618857398378096663875570533595480847721607628068960275997315883118369001637082616861431906866589185799289249480669305878783349937256401687427614461445437657757623857983382519405833074796842599613440770109907054175560009035739679142754167354894530628092752891012869890133603092814043295372000778166229619987575101776683155817612445838390210630142835037388721906725959024609127383735757246166282653670161383687680173443658845884939320074791040435382242477511543821946795623494001677172036595387017624625313578136193642080443490818048452240336386206828089344337604756903939574343120410508047762580125576573799062762027628633216212839155124888281599768797967173967123027964767040382094415524637890172661289719367747466286506790045584980515730680151304520119257693480688606005164000086419209427586364331453219099957721699922545712499164373719095635994937758836920130012425203722927769336050207310373202931716875743711889219872826447537425902653584774112729200592134686686787606405867445347056835143757491305770725153033520608570662003775692393663941381105694455263138876539120612400048804093274400037793819644931552635840250735595593611836231582465300498191357333663900088045488547777056019598948825134543968278088303549609943536690581565789244850925470370330271241388155256198235608054648252805487666216036162650961126021196473786136996831386968681157073065273772945181868652223422444411136246173088043701723494975812673959539025236249013265364617767656903525702642091608333088988958117346705518280076404989881722646834734572705698783269857312585006535982892087823849431490069038024640493201831964414403567159121960275062416372236501004175972610130711773415192829267000859020750524399380437996529343133383435009594228324651608789608501019738725474574016642698726526510388575324616178443617740623113857318849537994971645781926493362067641935343959243666357496044777532391104395897522976408992535733375178317625754091692842895863420065741853973581941424559701544462183636563827901057444199627506739550043467051217980337569454346202227263093504020593436325177656600886607138080905456719632788204763410238367328421295100491116551852305340726395542953948852551244446453121467190316702699439979045658014082393086106909217665977247225884866727618320745999061874791748617128908101227242946359613926901122798399713803953117398350831316767065698536310092401013655782566201468557131776863067256814020662740127025559243080519279307720447697405402878049603265363223234527835716450034619304619937969248203574195003256525680044642072016326891503618372455273594232610188588631910389506470960544257752179528298988059354876036204990578777461919001596255762729747407220195143566273275095898797261617092280191490013505231796749665365270819222407765801773724126805946596027716317629717491807060271947101335020563662640228526886933255267206384916415724951367052460281868923767337484623845886624321545876271019643011655597412589687773384070267792584705258968104925769295408927562419952049826134463712073817388666611321348050195214071509636182095005741707652384023496205151258809802474698231926113211642858931866110897712761331784762254714537166357247762260846355947653624626757662129839404157582752374932069447362047324053880480175887041761847380946118683224268500298331791230566993243714757756749101808652028286509597137428122547362686969831297400650218995603333812007468983847407412432899363139580714841066040793764886235524047851257497155020757596938423887635591213658341821294142560065868838939566541711075192255415358076180331879718655139818865985336379132888591372838742489460888762849137501059544184941491322220452771321606941047217674225951266215630901886546175020635890492943343026251938757466629871382330185401500102113298781348454756423508780179216626320699792593303224798808560426778704759641343179511330403298017926727156272246459568076847382056545948834681386875950774733135374112972549213740479263536566600612101122789533344838798009821717181609170613524451903358739816441539385304286628111592513399190275158687904124258119854136769680715368753774700567320939257477671010965877094809518005342685902898241284800129395968438191410749511459155055686971714159293324111953419386529746255645373617442678325379353387945965215578886095270807575482105898604873252969895591559116780216876602727895400159688058321951162690831666305212264091026282943612923313689758215788406888220654515866591930271629738330597345629212677200621525936453164999371748584762489311765506179145796438797064685144530325808344176570827455041121743684556134662913627619337711868267768461343313025619021956613363530514759693325132492122619309351417362727786396492908190787658992109924916483567617729392278323478808681980495396278288412275732487408664522857271632420289374929064298707381136393781906617695712374388970219849430326050375935705248541535403199383787649743265342847263160074138462914760657317349072928049529169040455789221661334113915143777428288052217805815771595007978838943208499740052461525496202577518729235384495739531649317662386524412554023634236108289822268708027570992076967951473770884541913604311807711991614216790150484147784407643297008230152800705052603932533730808722743355460601724335218119433599570460213209886637272070460239152761591808510350930532892134932448269040899110374368732438677392923056886859356626838798765893821868953995097593636762149937503088101347068200040969529362295466427461694123448333365201710144815019299533027964110705421207132694598946435616350110208604898108214378998510116315617615570514977545200541358993984177337298378858997617094932520469761875151109133346992220229618325442966216740969151643058984998588148101529907253926554940472337411146659097889277492429703148868206794372757126119961649593222654922470567711707778199658575603350245180023640910160020174947254232120064968773458312552489518986793650121454588082458642499721717172474880299026585881658691487927563823076149791967905032294919621111765477126311804433975833287352158117106107819611511236189550870397036979472661182441855268215677165618013028061035346615691680701152572955001511177098737951022849483293588384719762897799720972272994738799231364671236204763333785846957892544692642559620762508146476972868269933901927486715111615786738027108918968211345481050866206724764442220461586586962097017968610594914917646831258222037123355313171177241302263527651279933550179305974795623611178838589276994501820342551375785241978550824640780124229360566993752801236171836778173582411985421747827822923177633252839805539391012426742236518859706649168516489951198540380275349754241494212031030915708373311401110041842753256182384058619986408946757920575329683134379449050743812692460432756239162378650583378059890826474992665215652223174080563280827529965909560467300971316657443352590059027246961722672565246858514949667518505187303227123352894042623869589887908659874313951898240105550502273900487975261090129699162304130486892007101533759756704134695741143353019321861599420080808681341875374065532417225460226775278174947394774347148453640660182131239123286468459877861944034340082840518606814409012594901617984831142935966141882035570021081059941346375327172575046473291519099222953870518020792728153133598664228888846731924286591733889844030499907908014924164409565499427806818134311527913938760451548580418291975854780806907398511520592905230892849199868264532533984799823026662676472270691304848173176826483734528206484596930398549483988516508693753581609595564067468006638099024707932466309471054317806644848707250235129753571426713967646083407419000734249066152253679079029463893239247991954217527358924144891802332367772004528828069620855445259254709980516538418547669783318718516845318536505250617426824701492718586268938510075785438606804213601651213600890400264535412531171441119030165279966174950748039915361149540049997838967980597100690211813128584223253687928698894853150615637938150768897815616070308909834748495440808375627852212461864133215611381226635735835752145650800322528558674789748650412004833828783936025736240041566674572985816050219006522633613341282457435866078870925574610473643920609707832451051061344335378536887999354113124639371555104327651099763935793673767193993951487765427353585971186310832784581927376767981490122907065111033411989637311610349862168486406150403940560240931321722447844381021644460047806138887320793676602456861289951835604228306557695207506140740658491265043119864181136333167326866354290371063417168545619887927293932773005358219415715217486525495687729535533948576993743855493027301729733029333753251891564624089781987015789700207925615628030578895220465754589166710912576869673801803031979822565099667344862544819855716465640238943837652586787688564122226686908157536233354223952071714683430214291063678314784086429566718401256263882013971979875804573905673443621338608651137865840938127689393216882750685818835057031885100615966629359497016774138660693283329757886371504431904237375988181400857798325973379976811702248380454590931336315741147226895532294548234086445368311841017282431351225241951256923579165094573363864635222915820594330302178000616424826609608509765250061817942728946918052832296470258499465336220009735614911097391574306240470865993591441253533163857396733061544110309926074314631304347936124008337933341612907890717545020242578863774927101981547183214712377527291110554970511164913526589099143597001467348871439750283343747276580351631950429231746751113647262418144670054796585138852045376876538848853828207570829141215699269357755036664850210717561205432846453614797588791973086177121983102200330050362782055763737032830131844615858849955501696787268673665405127254314264494095695221128354652810521763633892887890707976381644809816515903338416544552086594795105567773772243393305434622204962283841236627540186614809824804831213920922234995561938141715664886806115361015686179036154604281359153522083844907487794196659205338023573912638352673318284973031963377436155179721056176186689390866624687372445150554955850726615540039999589052949513055421504496588260661936530091711229720334286043965698545900611753250868986857264064538687726202120700032812433551858636887186411524613699486803516987539337125993632520316599019917992878777798331598791685178342447894774412341048289039173601654371122535379879073588681903268282913254343075244688679520785696993565016832714005987277675257339085527467179743987259853138658708031171826793359941939332623523053337797190097758314097415696303870174129563708284274913355916434302972376024708955494901936668792275000074939566158465246047390984849070659653622967213744062894283999249395022927683160449606364963114724297488694562653488277636445833602022502085640889905660842803353665215667720714420332895242218179616194649382626913160963742212973729857334615669515099691721958542828513866089106348346861986770677096965135069697715904226294334926819159745600384725231021453536537459957230269192956487848414517625329400670266399875283982734787370470025248301037186367782182967221917659548458075041467245167752654383223875727329730253651851595660518829843640462230475415191663564230848231129014854872184116202802115469980601073363751590698030855180147840745763301385827157617657510386256510260434524916773421087194790802003971851664398168392264050225362289918689130558331376830923029376798741835709556911619596330245993099043018252124043611116135209607203985606686603518249914275855259679728417948194023395042419312098303590089509626870421236347008956848287799020832754882045428548024939347381722811640520773518238653725373952451083021518941541746381649788629835002122521248490600744943841723617622512539292159650321010685096029874974908372006217342527598941077977805763878852402603149079171086845337747235767710162903760743003598672330182939954672332428030712020349497636803798265759614812275180395341473044641371826018727946261892646922303202241762164332601028209183125143446906765014412235369249885520927428874776551993335156627371854580238851770211976370219828006865817241139818917682572047442904961500921052157243142900401666728057099610573274895446284849226452928853632455919125295415190665512294737033659127004097971312906951709558622317631951119315457130352556414394986598159345132748052582578358091126126926186363476351866752850727006361363369360742679666721603409056925027831918114473451275425991183484657251622192230913875292890216904525678637405380882716259920877160259126918700908000378052720189842153208251054301462029264727029371951212831974389954698020966457360023922962689479058749653506335199450762765361276282652432067848333376465102528568993498110244900926972118032382261747834179104061625132844411272654302997010202686842574462578369092025078837294957926470803981950032076097584155153378848436723538989145552863913739559854757173416714570420926660839832301884530377732829178777097990242018700191769854246682416938310330272862171155147526457131933526993694101034330243257230274477969200776573020213923600675968240538314899689410627813099618955121265902409268387957433268873587062142442578944346774748037057874900099350650871209422634200122177299925408104966061182532313083331700645241601968841194448004239792966686082847421688356867020889433908378330233803467036322393484721005795971208809535229186795004672354238004753125878579655842464673975257024004441018184708061498064995149371569994494305263164858885033953041104024987990497988678550998873233749992763763128238198302841119587844202961163217872104298268853591283730403027629665107328189608629622413470744414251401848769173451287423421944418180324258514005699982467807617094416609782565279211580736783231142349238972739255703500754781733900535990302917226380653338690945528526562029779295111554966974615334152202125208032539556292628558831593360337880680773421428637519043949614984539291712291825677793315502682884770404015780944452434356092456624735340197520214979318881709394394062610579313092661443470638773975837623060457671407532081419149683563516077831856690454740942411718800131777837058830164778774695534965901347211775699590949871457297216217633297255519657248625205304355939323272928177433208492827956905984922431420991898445009095129806087223738913617392243540349440029218715658464717046839393859975548083775090481976589179247187609303997354473519119778306436881055725733460440992752333534831069254061329344621706294810715045815600164561750955137469593739231287057419850585134770409549088759400742558743508745677772982394176219053185328728581299478714164842072785159782993946007649938194594366448666440557637503389039776351801910051421373712603640205263653069092555085989784561185018324148153063065508709463604305162881808472812566062629020538439310554744280693633141168686616102110158095252030767703769536001323704636760765759399228303866179416813060599468913311519223661574320118861038882788677120457548084482861983188685247121707897113096592632046388552219543175806685287893831413025076857457711041153929859658279661803001279070530857574711153404837747162679488177575586432234745045168067650014454416488371331998344893953818911095896447969909901933926462550683646866279291243583096500426966895719299961836086181248420035471540502446376232939668301604329391499805410411390469060807909835580775624068228519883600839400712348351879112939858896105725718160066959385916291733678331671815391934444653573135882220238589503631572622998013821550631855031123392888017680719081558599227634744241205073574759620848419195158118031991112624332356181037980541240621163279207179084784945444428584009678351467814316627927077333803195885808026669216515801964352552443937573975139921097372810664148020494269674419936498039035039532061555667236535744794426758188853234399238374843992432595649230094697978659794224652176325234040881373694898267965025125420378124562675996987258797758419366559174275397018565156066506828606279680699771157131114698159571803883308131436372497615296296558150910735551836541929510765099054006015147126085858720447606076665791659083662583053232063979195673629399386064334143081619158167588736497221488832450371698426498367345802096943776223390976808665360224586097163802280016241992301232165365910716195633200268174046448487571270795228203930330390791536772835928125395187569818513992835187624725299947843699175164649974629088244381677143286672382826663756966429779317016228838402016249249528284471730349450395013926005316667767540161438750327491240191167770573342748248205730774526833868558371166128927845693734894871508664353522920405015639275284216570776787393280776565063009114998046331956629242013543319345396222690429530988349208659247486480947579541028338964175087042602152564026859927895151118144247239300610130829669500127189889006866762070723364578420192050238965411898239890111649641825863619902582494433437667380641594844678936342722871701096727627634473440389826366693418210609840295289478368837600998409252811740162273178396327015977542461284187660022907214473079448174458663191957109894880461055095732577066528743854614013419779094759048748982211625973954284266109231177480637606347320017820378497175376343644934204067702699949367485692159420555455158220174111538784304214822190084879045540495045362524599239112243721546412020871581144640419125482328812494337523216125236852346418550678740934110285873590620705858487935787629300350094587832318369027327039740741048469104888286556033844079522419890212287946266783436784829186642236600192430215453365302204632727661066577876607092936925538824312245280767643051579838607965150085991200184557238318502556911578625255579904975224098581634719302326639517719868051610225877449495396507426583153625248420329369732127634202920430306383938248062063957605685197283506728128911101412287601002175680376371602700848258623945897483417971124695798120178791840183648794782018660606196858224016418527968060406261009037117350806751108576816433324011026081369872618872846907592625329350707031865245270319201523505961679549892638005070472359251235638496282678385793785629425937026963974993402542702502975326308611526533319061147197812843306884103480551768401855022659726221207688509348796870144242752367055205918867248668401323062729371951320282046332558420938960598978099261747368117760418479062079592576296800291208735853837331941588598923114480480200589826341165214262122125197122831551667525026716562627169432534642198324841669441003827336359844778968751562043206467506578015213086740243641307746059403065265474378681785838591075260464532112890262726429850761722865258920175332396021805343341356151346043643211060672195819796924339401897004909842084624337784080572228593933208029115865016349365196404005511150845904689479067627366590976180188864132561190610895325970740139136407297574543634137701625555514037870402362702414307123895738715499363613193760089008273312414801044513945848082808225064907193164443895933443474694555865768555665989442152360394256249872904841909233736780379424394168904284214907520816762181277306730320495812660789597016849486533429938577635902879620406675096698724299001265367374562052541704760968087853637134607628459256601337057254072316957741643606753985862906270935648626325347598934670793039877450913841536133763201618415380893438366897518854624487890697050874028151489512615315139883621476650282098788050256360827613672907804825666305516390375666900225911874587281371028865277228117905092689018333951091747424526400855683815365353325359584303779211885430789313732765619613536866183447882969371322617431896581460815083371111726697422874124326818656538696938391355805483612315536311092257584741686364214549498713782023115951967029178204516108891508352386002783204390096371121385237656604815678885306866882998691191581139767663578145014529688455302811264570443891275629414179680963594516718536337688986590548002090191208695154701474679407029438728467076628745698678316133713873962652171384047152555899652546549100985351743389833156946710593843487658924184000383091889139253872424153261516051223121978648333471159863927258338035992508971800103143131187405714523748601879481454971941652833868081245975240845156209557400990642776994759360826963352172621737247099897342774604580153726108003943799804817772152075054066897885511419011409048832509617339214061149897074172916830724398566762148005107155532018784921436799299676433780922199187753090765737262122563128738458649283995283379639616799814481171239296624401530451767706007882426053649184066226087270639486465042004202368569755898483537015223144635406398126526039068623901037421273820753347036718079875798206638511688057199353112429197110125207535548780397320611282448324357374628842662626075772335770637578191843540403991647722117553234898160310031751499175158553198023292451323152494862589211851800061840298275528270580100929024344214830001426528580610081596390222645829881733517894314599300111285002328274418822928858724676067281157857213031497227127154931176383661197414109851843119292072834886971815766320014979269425581502565581980147934261430366615760461623417516298700850476857573734748919517601743876983488694504190183694978913722853763085111074804541176543305531672635931936701228842836920414345264810562465742526670904453238330417669074997467264805578984457985568825316287021898301966996918723390313251587635465913990885454856806883652538200572770285438348738646723040919475176603102598668192046356897646026169265668362933756447500200258193432925250085589267325187489469898353140251559175091632558067579044762783664466106830688835591094899482921891955192002337542773205781597806284181727108229741197819351485718781792175245090391077672436464647393010565502896325567076982162475756210918127189651489932803215754979847988817265432818198563861991141859752695707324446464543020340210828487808545162639476167500178368335890867210849800848025283849004502957808969929414250232184766598328350609883435663081390705183485154645841260535178713751594550764327849834229507452596792332526211295875090692499804627136707074655424993816235698121077956407343557918014295112115341727761251532033483415940754786231295969322177199182441944564176755488672319759034548925249967438681003912617029607389238661341431301584641762401254548870373732516288895344235465387618604330604649997860958062948861242947141088662363350926830045630284619316980854904489722850144516942444975347059134389423338831747477954103724488809333316916769286668317727420461276395142097464957565315788137598420240792136059435821827205899645084064521804606101222195029268049809546314883669010558845090812376836869947573136887008036641746871033451058605534233239246684402954997659804218834924151131389392986796329451332088089434667037228433923302480313394305537288854271882682217076659751627102258091957767238480730939982182320121757934932867707132373525551387323534569356399994329057959378134847817791968955418023336740357999951976424239935507349512183461407814368644182015501874411506520080822456785582625863716731889806908684022084479464509578472588319899046750855133834579617147899130786350050912558616499321789375597556051713342190669488268936414139067767412381169797847715965683902415519384734572026778749133489697512867736480039346113287128061335907078123482616269120448033552123411313508295886133376669046642330143213930189999616548660617130752855344956044291227792384270325467297511202574517956812021452603695708595072144886002825834278730746687496161598255890620656140730345111083630614577081101083107550790404521489712971787986399826178301991274143289046977571227746057495224218841960863110848626837683384908223479998419545393836956325207895212175998696388206567450611843962397012172867802692679540245291247140672291523965195434512841303689623481872244883541256642340816183992464849208807283070937083663386968082768579557911511635497340831764955281438704829246169103220640632809579334815102275085452384982384150639085720029402076653283360194295250372987996444336935966674872095063868324527152901350822843105998643073391219207284025718365834087043529041072183701479874535623654478659481504404164415141071796909924658571676391891479454772311618613867384327637192900252862110534065568368202109296948250878357608303152257673055993001908844956419346018999230751464112314786727559297970550989052158798785129096210674216697576296100644079623204016027112476007075924088591075107278586856901135560711523873949896447810563242712282475656872877545799299399084529068546585267698160160886596806253686872158605605657166762682645238387397763707397181909764118717740889218807544577940340968727374258778914502536368995000572652098154502907719284617985461871488978514367805198061068615950386406984273807037084731923108837197930468651569206912053702106824491824923073980099797212294272978512956775901677648513800749492808751424760622480520177505710232070316293992034290430846997919628377890824214650272859815749377346885270700615098095934991708602096607742414176511517351250864414122128747995888928080946462629845263674842599411439860965720726518714487422119229339513017901259887833553546747951035010671105913209698180721700328251031366083040911834592581032495299491003300585995499939236126349975550774370011826859766741784483307464660137927672802234905354166641283762940875495183835964010172525493354968475104144648990275412942867146580187136200838679192669670193510249972396212192181097602181386351993716766657999324707838509835339291040556406999870962117228409244430150470307156809389246393430382501329840559575324804582511044301922019724587197025575332168713223694895639378690300047678076666589180511547425871643101857219207248649768206071081222997498762783096076964902094070775672433970688130065135830943210526435919139571683288114633864952921154340132714959113333001299734320403282937813045311990007993614830294112164201312482431029971163950667577178168692997376725203222646120077935710808109855503647237314267640519513467157604854971915107603370369263933319195904502814739586393201227749643127774189859995038556014911998710089787651107967429510913491800790315099602505616660712041775020671457373909729943050057943669796799436923341434037795484179300187996442232512077980829044874561925860780160168163625623391549035353836618538974088335822803471029952218002492076439772030612702060927990975912273344737344445607265868746301855708035923780813143803733766868253198921573371468948717669754258928223613214212888805160774164112757340395233503904846501744402590733966020428018056619801964299678669025932607078945204698141635861513068126222463856840895557317659980697327796485033213153748631543120935367767087671454858724143073934569138448959637846703502900701712447085840975511324268398232604099215997938621001501757240812864464275974391359562921222124552930937715407940772118207946541080485601235809382221648419649607368955837427137012162874804955190034906018755041967472764490527865162954533791679821589164988315396671971656019590550872341203970253639426159696151048850389193860134821245785996832260908325361332559314776609966170132446944346199415097842744584196264791889464991741092139146960892418006596630518348830761533769835841441107418953924650105453402538838855689089614157813977289201863331797604985074992290486577563598146097249456564486806737568064376024683235631478204008289646583515628920409457736242901597711349712195878924168048332673289693361403834860160680765758888213222014637469608182410827553437170442131061489795168600630009984158540229333082623099401004892158281560713556391262796152208506616844486025825326302228960529593480821803872127969092889593923932846073550752459687278839501498741866812022074534258389666489916710851972747880715753003331673640991547117358980525742178202874811263923861810568011148153029911014863997856912449842770517754895316609399962185611176144586405742396470466244466042569428297849280992767482868375357121867626541680932994158660578934471186469710647544287737020395929850017661122830915723721692539273985588933929681188313750231908402885103611208208603039575797114282962608824131308068017324168002578681359566843558156610048861817887805323197740663065660155899256156017290579470491836579144049668420758464681538059649416556076638236000908859501363624150623121999547164105058986239976569807884960186990754782055204331451466899621573805020732820436526427262348082528877534706049673239164602472109002550879585813123027769953762533216121888019692764177834837530377726428581347459083984518561052856099819538682068583267478701903701570007840248006845516284370322642445532673382896803340375181331244990756737090483826868757401259069676474364421061809514050234856619511496723558127148366675523300232259201223409822220187303965719941762632305279214876913450533246965258537753474220868971890095092345392086231155597708917232450662087382378603458093155643032762875305388386675802461296098288472964547925717391780165426719848645814496109283699974767557295440255245024083244147644642400905835258186761594379882196662859275223614237262608730592511504956628560706613977267572338924732922865907067756902149616520694979617356665611322651765544088936297048322111639389308850092573063560885220091847333912598407880936647738558091169885368734594467984513459516470355052021943204905255574052634404217630074616891054082506682087794889030414466053213872697991171721651923533834210497286945192744680995987357185854008746670877525630248395601863072062152950913881843342625762158387982052577839634125202732739342990495407339115580953361424341646933886902225235368195329503766682398568911231318907802368167538605093440220136311086016039328119276545982505607644249670394467902559174924458118755559025132939674570731274638001550008374112109480139986635676371596010211069495750878620089548161250273410982688839442285241822602677159346087654390186161122287924746011453522073344061351396609881410992111873627327640414971918199753578363529120116484480367178037321747829957735473959729457121101982471631751293430881501229152476123896600973431726615786732045440336019603488015895370777372680555031370326451524318402723111965266028374504265950548308734595801215038436705683034275652331626205874733161793867074756435528324923466381859911689962205591288276415653180688153477647569309594201225960687237162349010523678844951022267570937278744934661337324773411873021572125589455052075699359421669249004169909923503748075514833293933933167714875563354924821000282058379502347912299861595692131573953674251451936948190029593676311842877754629515512178361802014916542445777237640658585027882469283995213377957638201596009088745171099840589514614693075290660722890787386875452054041827716035787213002353964536138016508527315072872110809638554286968825617692462490435585674935549247444257365601958162913173108550486660107366437111008849872830098486794672313730261956884884714537076320337634340763033971803688887154550348856424532874854500453634194407071376729699163460848815758690748570398427134783467473095479150317474788869636416507286048511092098359858633102425025491662508239147596733256814805062907991856102132214706968087904629364420891041255908653888879379843748019825852426036233602284786712410676137458869340494807975207141880149569645187137997653015847119378932735993411062688303265275686114393776921269050655786896068631000376001347433944692612470433830330615829557969253729434857754883937660609431662986934695396899823290507767543635879373660205702131816151373820145314249935695134121667484505904976031901448941771664721680400680452457646060160727600475302495412543324596101913684793000530475437070105395773385720220054649237661171470496381806059183303390597901651454030742806782995356534379386041430862656930009418286389026800367358957673373590763989182768322040191511810425358961190720013049688654641436906358981720376664931665027374866436340834262230261911139141035028876598554076761168031234111270694946929402613913830301852348286630751902157327350864693395612736526647039188764885644291150045454827889963036166604650217536799517893015534056958502736930002322514182800662204778404207274484015693353418594722138179691784673533084198752291559914228956909152736772031352322639296433952000504959345058865412125256052011553961417827058959705688542881179706221332169925237464449776615708236387581797674138892423567983479180119049705847885287832747952108236173658125037091660961505399747183846843553011342367915346378939968655701335498636742241524999975420225125959065721633926114335338262688625844270125230000978265410571462264887017380585366924622533502643244584110359582822039277673547709122622141901257771597407360427132264204480165620897926641169063579175222481613673402113217520607180477192393423093570657422365785215135897660540447268767320349286665274542732368828413126869881204534967772685708393984848411367230912699366580693713740801967193704237449691551831346528353203671591617054389015153928863770755440623561661580005670173018290804060818042676129736787672503328655493007443244138607198219906683239238993204470618504650927529798843952046250241868994367620276022209564278084631828009016159261237668995163573865296370498810792398539459524836007089611893629647359333583377144351757356468719496086888805069196556700547218340870188878710502947154642957153421697412759288885850846582967475954595789736954230159421682547389011899767606093169520304178095728509525340952162134589652763669197223069945669033980142106151995849711772136793898198521847412764965044010911401332096945576695794214001981867091487861048232620513227101248165214355076712118227959931205589759584203325265045433041633452744422818945450556392965788290430247296238175357744723521292171831062111388609657698382778662312157987143066564282416812696673976292118968460517536229183608108782841775248490138578984228290967685197149632991213212746588145455102274959739018595385416355344399541106823329139197599605407410280403514767337719127415744788062263451820594217259100606136767040690633818496234525777368388353442541052426714445065216741499589687730503071594150797371302189586089679515480648647582106365215253124319752073180108838999135553527697416196925152084990094132208292602597525869250481095584595025926069606120323540793374146264699831801053121074743228006816165786275907767788774854610048312355454846196629945375062955279130158399093173223117459526282005724830869628354716375266079541760055744960217750218701510918200036422604339639619218067681142729276026529538523672210097897657294521081161454029671447495473048167296918602033277702252324222839263492413625646147215026054339098191681875454646470090822257938158542316503122593141314514756936981166712977270283292084508011779888196076968824642543201532373761856160949893583800884745344457647924673807252474895177707988202611752820513502333287404725089581755597838692370643623824734617237601671025965295134640910172610268886971749949988033824476750058679040266961097181260687621147864678170192633040987011847278311515896385852912349819338231778594039282191567390364611697446798248219067108339731184782414409847241669908743614524677482157617682823241383635337769764847101605955873468793380219357751732538229727494287728362358304347367103186686427764616870877743101669518989530613533124773279370294740108394131672039549058204419303432789419907022414491175689543891565443191497531396340025284547757638494582933229634957047204994256376053431838096525107845330569458203499003462107548060864921621927368059055580006478580166406366150020834383989851862588253580568176442031385447921509842272442287973154392439467700585903272979821690101513300836759176655471332255703662704454168229214911567210855051316966080396462834374335709947280031410291800657081548279593042604183784735912222904336544844893005518915544049605233357545849947474704567323194494363582995943758662315846822585027188026039380306629629058865122326018097493255050750658736573768830976320809196780442098882486478757200901903210264188370931047216493812658474494207129159987408607928524328067753817659794395160865860745845885229021040547761100053998975932273337558406345607386391428836719171146148231793092146815175178673256298846963049403214072958443469516127427990107679290828264191719899285377387398997313166609121157478651956188416658786048586835190758521656719253643544361990129643863392963720185683847254750992356670422960861348105392469749867643555982331751369890878411112149766269934915766216897502798791821762550657570266399174364454126865780054178637125187299160800125828303310933749260405691523956067505415202711144508478772259201284547564620546607302226962645787110402599174106784344263444812061554630278916212819877230519646568517536925907568344109643999423654598044396774084214269217981091636470028901613510897101479650381883841484426041807261336019202874303818464523076583724670035503193272564221813880494709329572123746073129700243461998617006802318989612597298892071875236686748519344707562560748604384598233060765657913366756673859322078461408813733061087944020349385333916162416800387391050783277787752863613756476219857723626239227414789095253644140514779227798912103211889480823677168594037517676550121918875497545751716822656317281935796978961722654148342776457098585123167953327508280245659357313721364905642432275137719549088956435313475201617847215805414856675618743714594754542287976616573685061168692117619048626416742377831323797539884442567363310872165814661157971064087961695109149378302445891887114366867945958937384851811593211558021096990560549361754786947211496423199200186794081478542009203371528542854735078816812520710734057723245815211252189383775413450179871234170386811980845312596756490333575808841208332526346127191687717355803230149692566399937857288950732101857816493560193055713718659776237067937112900997906558764698492771858494917156284086680926605939089560803757541412738614025163223258604202437062816332464795606062696336724006118054150660510199361330791574781684276111302341283565689212271799392951118026553210275705687407242170570527441076856543529396323334765705932214809031289406088806014864876810690016580695307394143174878474221448778560160616224382461927113577105960645917990965532697123618780816934660037147010033706844841529090372160484991564030430643230657147082589546002360518111862742723749183757264204352211666368149745237800895729810278784452087324703941575230426208417292771281570170473964513497737857095962662727384787783257916965802888683477103719886437767789729724737335573585526808124427126020075830225188470585736675381727911206747643158860423450950033719305904063912622700080282890875348695470233113400856974828072049126689306471983380818184554748485811009287341600229601154309271749640801223601998592894862296241767176330931640036184404273943615839010092497244413719669105934133572359597110612010026905057718630551470633037379869531641535183284630483112133671970000006017132338205350731799323888579511350725153458878713370350457359416798331405046281160900360866316860574488243913128925018124695000993916976382691486263747536832019114109324414887974501889820029767690754676763753209214749838373791747564988633803923864301013507255007570802637754408672221144233561183750291027767224098923611378111226838588112693992200125926749120746638069531220166772558208254336209086987898381462965351782887888529851042045662840674320464814179692001346259700962483497120929946321540263127865132606201755225807666412038859460659884253330184858967300844339383546161751766554953948394133188893040250302350556948432727543521070929517246614810942202622658284575977209492944666920448790019281447229060644542276720047823140196360746698903028030086041864511874731651348808522950292594013013807005177019805177547307853014830994491959708430269493930780595373486529936234184034055415616211947225791707667009091290878254103533039367920357966549997529627042370448409880225690774021091265910395038922746676434126582445657962382780632643180000804781166555572926548075465616164835506715776853755897599119143340949047262197673577458704899281781793153388282012546686877336263765341754555496351224790482055859931091592910065371544705584258647114919146425795572811174110430429691769878172072585915550650379020911716736671059841908467570529914148315889954063042568062205075706187687970141141052860087314940626889036461815345802885008661558912817167306141233286533643406572286637987483243064357931880626934987710154951480570886587920139120032622228620431905876538496025027862202214413234333487495372991393824351999189206917362557334569453639522597907848809935013995195169302484272955997489957169075588149416836196247497315859656635600047741057736716798634725799349965180706659126463709268340584471660224627751702937729811573380690330510555940074890573227714032525285432154607156547738177678798283725839672173189964130701668305312083324513888203116724245220829566238546039250262510885597491565122516371283340598886525832131111612244147927859440490099355856860243234935067311738254534928074752811651374597944553545656343245801998822389539920651496849298656684184198753418306384535966428810171578130405124201639880147294605657248125476262423098462018254859680742424945132548238265691374568179525998769365477590411627338591717457825027932609303039678165001096511216116177015113334971843904740118677898060265045645313084509095439964455925021868588454793391155511091971751130872906406863254914445995272774662626855905101018630383423484346830665990933762989103158106007546719604827892864689674137193992421374297857256621380267743883080653640294167504291524689925017094605825691600254096202879143308552291537602656816501011704363220304234612496515912439637229128448164969805647863474278511255417594629263838354937936110147011116311630214421581921069153098210124268915120223602885943807605005639233842703745886194594092541257167098775557141753641335485281219370187363551406655988909383060569186759402294826075988439172038247191730882677034705538793046379075647254326117387271929980255109449561736805867237686718823367582238223012293121237136896001388623908469888031904478960115186753905562012523805380943808021797700923216741241673427498806299195418543867518012661809188715271752846343247173804918332135448979478854757748767799876793173803679814044092100631746873087118387673142329395180800419665620581468612101524132796775698910579533965285543294244637626639684714479589702457134811459496922200963537669640970947149294535810047846016290790502799480684963919223943028072363725281574705135034128121850554541060351144011215758215686241234972197590248287591658966060519338241387017620047293433861417783766436703506481588561254569548926551011349914333714457652145137681804104606411105233912043033496740102107814031522147238480068240043660174026570450697304374266840021551576894996296945559512983312840684726271120438554124057330780909870248895890628467155044899688626291501098695364893271283770906347277708923203215437076033323238120610677049899824600316819528315502557125787110458076582996543060302386169157713153274726559462514495940801616512399616359064056222811893216961705771381572612534576310516882369783986477749128024885997742237208811592796352735030267331649423919567483880457114336867733520542277311060048071529908401271835084775425323241910957865785014410968027179761582263804610205763625829206754454254362847661519725272151585957805615413060601993712924858699707632514970931265879201050219032538252094697762199861392711547307079562582708936461994367727202011468255154060257925271726986255978684827053884289337075556368248383783276170886195121631119418091494689186519080306202435091937184348474916592542293510095620610591652603097826753968959663958847864376714915445200932511854908109775375966628608022079923729865902788778259908575088756093614257034641991157484323012918254523904671713301126871097367395925004953272466222291120720507293330579443425194900938612277599896535626964481955267383830566157817504797581114860425425318115890518813345494469306159767421040013915956711951996611844901584881290967699607846207157708135547908270035006726059692515697072271596024708170063125715705930841522234381507079457602945536561008959593715877576930569419666248714425634821262444251763373976897608727029117894174979386759746364594727695461179672405662438075883765440925565066498301419591222598469709473968060057738244697184434836296668358760387418930363303766482848055525743670941100896857929680785530137057005798948011350151967179670177766206483735628479462374485983975392564447146746819458792834361814147653455364575069088363617588769633672567357592792760858190531432023072757887391903695288215634707530201562913232217072232505084828173004810077964946619420709477337449138330816875347869144076695333692800463168176636363637898171482877095233953496316849042176748499124735564486455368888773438731660496626836462804453319323871974416576281029438542149308678880284607659241080212395604995486326896395926562200213885894292627025400600373612405991601605558714387797661479966458286156181442514159794414600903093827702091962749727809336586510686106464080112596607854919477309728787147942401764614067158199738898056500741349135479914096992935531650151347024263758945962974266255254014483629365838918407991498677289050066378139777777075196894565034045868048937158235564754572410773082932697515349333411858533736593849242912233818890724490526021729604350028694708487315029744345674372461167702649590517352515991919441612088029850552971920251600414838031749506877158095485130049509835950163045306169324982942990257568920894899771638655636155427158861864017362018139503209004281274515605049717264006110314460171831715742453633639471857440660062515361779168186403822148693214454048671112608985453171172945724820023409152190587765381578474520369336395557832018508897710788282091758076499430022540067514344844278820189929455878068322042192650222830777573590398377636741401738405756787197182940328540115547103598560772749541012960411691489701545918956064508108139259610444000789832223363912837260978387233199891263188198906202866002559436576211613407904293307764024913965357901647760770075724312337482741431679311523359470554955486717032656617766165159874666486288414275831721119934171462896289066318391315571790034078601680648138114033826801441849922801442126289815628943059773808796157224133409232555781153622749708470773028170117838371804105972202171259872995781657197774653338757476336571106811997409132676661918450110477007886130964751141769869985110208122406800594120328243428298721826371501262268798748334140433637394293692872419769555662883447843710200243084659524643617927785708143259108827924971323134391537954474957445115288225178013735624191997155758555546354033115989747056821579626361760117138627538396480663430679649710293709386562965378470193452022877297795246471287903371714218015923638786753129085914026598544816500950624806856305331837960196732671563423499831512260254263841476333349593377019962468450619241064042513778640080208302360229102252688303182690850907110586318948225152018634632911299405723827664209227617464005925969006850043236755201466167683959755582207097191877699741942731155349133637756917676474364814694261724455713860802708227819522437785008619128213398641669824678569468142874958066568969219194470244855557146547618537849944876978606901747138604351246027130850306459682846429210929102086204050755957366000399765455249653446258859617074140604822719971083538847551435828584434150346393826142357042733840881972811784922878515652007834752261338474412209673968762763534106515542969115949198967245119356172535708409964003317765139607223325498320660769793877610346526201603515206993750160656925866991535388942653696559046462197656382311535695365785444183312355350982213187540464962333512913609574424857564574954339473134557488439104716321662189181494009367471084085457868489892781370600839397891126881368074703611228785714265498010635660989847024609833918017879018468474644033581342030083030967308688146266603744872536751591385231161974997862329887706649037723085728314283598572846548421562005001598385455144207512660690043554423829436860125366604959907031117455610368583971781514735573842300257538237022293993354120859317008779120216753068703537992879607754062256789672077655023714377674873840740247513310872409832909131529577019494423361796851659408481774240223112847537322896338685155739605331886713103861797190887478535175359894984113094614359814869256149085469396962124239837186966967672390053288905062404256026678201475627599638813660273621614421361473305254207066558370159156504744792640330663783795507147642008582211521054881422928057250383227389889035052717738744611100124949791155499106000499826751299218186072010298768088954381121855503103858484330094589882645796894600592839598335737755477328221099086455082616078889066634912626987662422779491372309912905929571828906726046302972917954389323927562738906641228461952541887116543473724943353234973199985886108103339476980725525138339243960383077534842036319325140546002819165629473221650850910928535134970202485501895692297356142786136190114150363486671870198172300790461883691984456810265069559554178013109651643164833622920788325602363399891558209169651562774143854465985182188539036397975016858990079405173345527218586250238970830597098881825134504945603059966024514216615613052797062923897286824616834148698245632623076184817198918671051172811647532633252873199112227863814762288163213808384981690057699045020571147090810237669694719471328922731997289662116048221034351842844517578823481437000329747824091353497680087521330665125704516417410547397847463210031188812650400505056813783910867294656437997435247781152278754789740431645053111639024229919756900230743171313463451598434424609845238914767841459231898092163890250570085089521271496596238488320783867534786767818430806776236049864772912413869133233774674746993929487112980447305549793610001582658482135381712540771641026819878555023777423700558474195282137800129750096365256303559623870021992669033274871036488655655503917016235221299765428671335525615199321330583696369221646083253854754903215154263706700325022749775943925864639419153977833297952521320556627248818652416794061516857057317249211047946329292563157044350694231771530985050568074215482659225172684220939128478380311091384099384079305207605315871695183086071331114110868697991846975761392839380609898370683121743094801408938099215104173152439229616373525535688998285890274659200962211213267815507460966867348751120428184540945980928215751114028747727156895615446846879559040181754646030649880910369279225772288126454179235136958411616773694799243655773061366940133025394307109020672309581542906773531075935032007842503523737058076867257940151350511178632619029106149271245376443537208754144969509821032049078492415887831758177297012698409541691256481143151183380194599321718072852613045955459718842101450671861526143655186349027599684870709794077335030642267741571947592991379547411535668636328561023594812599960089053693768487186537622963995312500447332324604067253368106193800611682397108153899185444786816471178522229700328919763177883427443200701069872719516679068044858863913155331606903532559948245085722515287582857665163194893672858434852617956350006781098252572978479734416001796679673742964053689054961405573510344108175332474063573613729323239622347789656815613594946582725199846533693590436494813666530032610398499659644442415044943322530537363068315418517542515205629726738114415872268564759090732370584564813279726591095587530039839851781406223263654479220777582647508236833562723300600477709786638891958202017305873862245987784987528173642459884331541143451103934251965502066022585973554158804819975260509653645474038786493989295891133887204307828566376733049163054182997746398506888679589252247406891879898049590643822593384921190980605691976453764069823924146080493062486250899106688760157869407735303796281596914628717027429729444892293632715697291150186191668800832440922500542523116533551285235054664767994237814896262605469136363067028422604095313075016876216681332900472268689695814176801849470616397316914711885361779723532036677964337361006226247203361273619186755184631496260342381985429876393896016906152885031652155209044613211157231142029292108406488821348848856055675835279530845394129490919836988255502151901007933608646592334558311917937164511022465358092403792175113571487881109901950769952168103409174947868133550778890653139341168192736958772376560514640904671066274496406207251580598023512309052422859856502108236418785110742129351836471545089839211626365241145273368637559559521545947077703978225790143506127783764865342249266163941376705689341188890765624053533221938681617317391924128652633785897233238772815130544283443498853126789000416458948289419674499073722800251274952667574160725731449864835983053533789661773298844747169104834637509816214702995835206873127028496994699913573965899977993923422045910242337360130588350807464941758304638451053257728675823130813634753141629446751677640492051420517830974475876843285312561637573569366599583293019886673326692950155400793908335296828226475077959984862799373327812027970818458076488988982511466640444832571987105418243844561098526796728281474333832729324471621297727437199446982326707070325839511931352856758737418945519435957871410128579277442081633589244653823710093447328273129319020170897774747349676832037015757293145819509091847406074488941610592602766676184782211054625710850549191092880721272371824043780782879647111309538109108895577324382163056984522360691588592681931483259118505820732563149112734056440457750879353013984461861210072954766797554145869217013679648414158054936548905589072639680343533985730059471225937767555504007859919408325352543013324730767031635590879550498838114025928129615265792181963754841761407608766158769368034018610938415677442063598980080777356879619099300795639230227957814193950314672809059805275547594009725906374311678148480477844112511648603701169070618154268152829551440427548063533801870695252683831540406550839204724632577478717399274122127450140285009595829811330754869221681174900465177908553564803048135999671811208694178481718075106973334206605686012091708677191926985287842809730497330007520889749839892038665125330808086711900421177057105432647212681653656377792763944031920198057228872661052763219187459820689611334385332498267463087342560892624047937050849668936445706917380712766305787967064475986065359448544615943616460111935388620016129567827412531552023571634942358123209449453298754483474523522067537690462242716966947607921173251782683293082147805398266408328404100634477879173422284303137781525098966417968193788270149285469237216728573761577410690547738001291511080667475615656399529626394634554267799806839251741475446540424854943402668667592626227990550774265123729944126726919834914379133521149640307830137513121565884768037006314848951240659903783924062277919103529951176457219768593993347522204943638767240793485328501714304472696073883430219921088631907920456975499201949731475122537332713238535527774415104350897642571538303933923628487198475048520595071086907308888949755816673029288121392724609222208005538328577356832648663004352803924080905072404490456115668980825739958861295920208893311484812736966772611953143026360563105893784181127103647919330388056231883991822772906774379296191489365663680322664786800712958716104832607275837767482128315279714699322682046537573123413448860669296859810171282089506051640745283073497536375527414613264762790601281694530771654275905451651743685364073929517896935450567907778863281507096810795835709649876548153770627719807666824555240683576947972146354491038199318566029813499565275494676967954886018910466729786518286039155851048253619188141613421032158108295576881729081807874888538981312553889497568081457472948885228113548404359797720170736823332877505580360194821149830235927733595066164945153620910438733970633425734603040302186048964773860005949113577167852615861074062760324829435423049701181838536905425809728514864242392881693058194592434465761491532891480358542214937520095828454506434030473798393644564384801677732216322047548396409367541997738830424921357680783912969348856182102102787205772071630498790202647739659028509822893552575311350397281643625922349861726424861158674901732844446486893539643687959529804240653254117042656937337164312603244447993652871455357169578909622860928675414103295368499427567567135723551666512902563599426659399655254836112002507935747500739293449869106859714617660040045749152251144237213094517711923219285203548264840379513185349892885451862128633880041937020010236700362679170923893021939507136086794146199404421532866713822718518120703889388058850843988448685836997874558472883517813302439445893409003279867026631400937581444787957750468621343665482352651965768124916084361397938583873847312126103974034934463426204136948691499486025985740375468346264688352769763814961724412224008412125322467121665184141299019647059856191609453531209456049116656973501156372939757976199355076204882811417805095324183922835247449085468035470106980121433399395805933701435650712612930945128034021354714858562991825662760619428420404088483863129520566730864493561913395543424825153625811447670135134491084583653909516895911200768770097959787028299890974737040866940956530326945619015955336411181845042943433987625180844213727068389869572158082562321087116187781910787260176337510800657901042046528006551602787240143810526667945282752947332912989691315081684123029816086696371445691732178194337348450340265692959175766978157029138158699577724521649084614932070291974312137396642036257939632759072175032533044227035950639993978634034906966918869037952219139065209766029822980654101658276063209438017489690832261544149678710171808118118041930353872844923243565800797232770799206939580435029922954717298606891305636544707002854753750271217628000528889777167159174034654506475116378088578803133073071849973065288616875578777950122285197602687561799083902841802134395519222264077249639494109881059879684666308373400254806482906444135093651013205538112227397870930046510544618778527978980472010213381406289824776382328676456808502578196765470311028579455087284316220487999304871132470706207814022160689953412798686178862395189260227517079801396229283165792295264971015824915424138133992795859104167270759321766195213911167801533387738115290571449821717305974546176136620798447196159966278101064453335890886154216763873358813341780009014428778546783730375202372324826401648450666017044320876005572359973806920347065346828178293710758111900183197722435285831292647141587934874762853715120880751833482131348653234667974942271139166471744605446469080099612782036621462862251078579182472986601041850785141141683668596082653198199995479949681851202166983488223042193335184345683509250627814700225795066768220272438801023378031199945351379448642042088759003917963536228079739790131460907721130309665666480386760077074316616512431890023359208059093529066387602438634851617273977966587404297056027705048870745752135983580094984071812144105517204850204670697887642800844135221403368717913386254372656793666819581676376012626231449923922177466867199252094024151508928185186395545515752712067914640071619472857499698810731565476544329369413824433483917818209840470956438549697263871539298606592849821693472941034881021051333316557229714249647494597858577468469535587945390794651240304918690716555123126568616236081942970518441383479538911106635253380656078722658170900010152453602201899472566922861831849005172198665138106947604099741938753463309689043943830628428239029455924313580607614020092979298583236352231766131871572156942783217689386550454953206538587074082567106327753733709218731174324295982627656905209036135251316074053918791375741817438606182257733438673525246491121363847470170384170916910231704704238388942674375430445796101744101499724283855865503518634311641064436198186471802509141778041743463756879715618728109582402373589520427225942029685626856952356018883324469215179816739910525847346097096750421342244936828335361405491579472502785449034937900170586241147915652978582133227795471013673862436724430320841197739837536642400360377936382564235189837107503386218487465820017318680266092748216268409438403103399498164711803815458295770641853186222144857161531112641740109528991665575404008030533917765725671236172291619621393035524382955169628139609594575675590777101667714393599643182103001952096007598153389253056099654132253862653260781044883343472921543996158723120584116455140628401645873379382163792017450120558031982024361377251328426431390242348774641955963238730774954476067753738120909561221074064405258102890035998856122154960536045188806216969623646108563831790017852874654216676163176525154192961450571237668229169400599435107173266335409803525139484568016852586576806573952311408138956198038639721939933381241377364843075134810090044316443348387132555551118476655204458955848715923852220449164917705816682697938579225221411592027560932560668906799321069801159667876422075969122537393777465593252595996091465324324510960840548313082922940989624700474926574610462736254698396376330359661921524774327038904799871847925661576840927731852468621270949830593176681309975090469343252329618581849341486850529597511710887354229778544812666374982346870346275302128536626041485713497433478090664160999351376809673836726730223320449668372560690795828459167239366242802966273637203352458200063896139170753996890759133997526928634318787025433935010158600010768732393019817718439351782087099588427812743559761186644740706999601264760940915627799623565135961376606793689230386834822710252596027304280507582286209257771272126926657118144763743267823979514748311961519126454122067861686105896453225742687421277652327630618814989931287960195223543862731053804988520659644224825558130240055610776810807280742483924049061337729246687155339289493426939208740531687272336085127079902070219670444870046253360582580009747645953598504547907583441747237109557770296183739250956807723282490738736067482954255481594874649384388485880126068497160124422279094170652402374148898573257610169079068964387953285570431844501404292898326831160259667238884688055903387246789583116429347687662414949749356758068958497258030882346491489578803231058048779045779339534035366949885575631021705874912071153427873525001808068037289886206430856142305626610478420777757151831278335772517708672348670269628103809827922437256410277262425102631368074793161719908103732956280198141951383468517043321288638429155400880505043992008958797232075854883500858750417904481467365591974165094750067396204921235427996580031544975506596261103186566157856263784387384408368674240210218417488056517428274920675511582422158601160855903192976604330665913257334645406244750637042683724485331352208239826799114365604651470231175591455235283953270412560769680401818198057069668104387990134031974875049166037576901627152586612075780618183852301890541418000755243453591136163317259754137910217589801107003506832791950062121306076015264004791224723129245741707072836500915270964677291812641912943855135737769390192563756776567754006258507315732432729345381772596780484709909070810981359855482631846687269970265350097802648980809955395162548605107208258236038961980207168268759544002975255972231213313001302215211182503160715607648218823584592371058651223266266477939737614558586205250977842272657245803767847850516049896797180860445176227902787614641391142496132607877948573655359790905063671846553599297775789291058125165611545671859968905345475321913043116996786136040764048910634159402851011597997987598563434690669926872580158326754404393693675437560677847515646207512380629025823428196260682288597453491542597020583171767765498705969503422138552680663120301014732175945143640308830698766772042735753557586961295455043126915867046923162996772998908997897267955471889929489039137497078012200053221665278939505847903141952634203002136987923667168567034774675644096641007231680692787170800325999453322363933563105306048036671978621837406493350760106430686767686763853940410559278828190922501414240056437890722902670056522899169342577906824684844063530900446323176014869120139787222810064585841017901875937387357658145324191802967127307168965949939736907207818022840655198948168391429397091747756855861735845508148367126926764350097932737783515124706489978044982222295641355914674260907043446418349491449790118302779000856419703577385537722304555333443196062322261102325222493178698976878230736206928782421269697632227986499876124797155059523520705382090380511497495905037052295310618273135056081793851428946130224729594735466595617911313191240611763531912864170374781724466584836261317426637346072047704627031700220840213254532768353349284723452903116775728378503078834398268898001098023598548667414720458407044544659449226802190442157980470193767587923495300860613806150566360695286328898302641751825388705562652352934445662759584811444107572680940495267298692171616043127842317495722820877547551537373249491592615699896656105692531620471489560237805416513904905970353012412186441085061168031701271737161841134925877882847302495197036875693949899111596068912777548793827276415232903889774322372758395780649552207596190875736141807201323947443061794730769482209446369920967919013089338905967393723333516980175971650972515881510339370243131060542345646660468376942614666549616939008327765227978633934098829868558689058917564515261571255907181683725252425799582197922618221874099556541711356891484009778932389010541211680711055481881439006849457951887722033978766789561229671982448672060004432860673234176244991681775122358282235486916367635240871102303995804677062129273897190515492719355206517491527569902998148883678759552722436970410391617342388988238460114152475283092988830845603573186174108493623036848748996690094965854335228438732465261927096515570879706454062667234127732935016663305056244086016660255306799013695548039086526215091204156154394084609426301404811192814810396054824970144788651623748159874295112016954167360237989873956313538867115495370247675777795125928424218133259403162346587421449178804666090186445738615329338577647767396914839730784450081751644176927754676815053019436934237317471365727264084854822170744049993908012303396620896565604618057861963687575531812622006720145402569408624168007789154753595625607462508164553997497370576396977810518822111652996880472917269268890417240201946498374130316552233252354139496706764782152193515986078451029734755673022428480206090358662933344640270017327666613869079153365176835370527120438125228951649860347821896186147980182649734684410148788339409427457963899548471978820202072198416231863319475750474732935291101976625908486822662777422825445998360720509641207050699048490519820375219502580840034773155033598462538633702352172328291024741374740062597037663868420368619817708214497831063479854898701220146045455841959625265263765026554905574092235077882638105416209696877368250039674008748286952750928766263548379493700677438907007367640658441639037062348676026381833621262884718166613256727887452625035623158860184272293497548541377384065683307671920231889172809563676756327562302081207401067068437457793268508125116343335756191467602988548852044210135519125957220276768109132468150407131201569356705609516299620400782252181685421927171048530504624631782052169313102609289562241245563603056071105844000116546581274201331931790290298553955719226797500046207521964488475980682132606117573342356125055509284858827801911480848289991531079785876348163498276506434829323448737377562373040154046426894855371763859411866813510236863340611477108043983317374431717572961626254559481045869602381796722187920277843647182482960600871771435754017346471802601384338711556350312300774302558285747749210696770231243123707575774785166812139320633718942151959051415928768978359782763520148100194605059435588436430268710960439544660670325312123699489207624736121909587199972983798053631561956643707948010345222419649628913624934078038795671131750066869062111141697292703219677429789832221215010749459637219880609068255136999448488296419767873252370789980528664079287498130680932042810463606221931927128752929240472735519310465940780853816254629954061708306918115382255415681204897148224810835588174111501849795385113588991608863777257344871584271406524067179497633693119852037195862158337801502466330053862680515361984830653490480799065899346216336053151593239171568178029761724384605807011432174629633753017648094928681089391993417976069759534588568473911673797808519681035664720090780001998658803787040238997119761859267753932660738591570929064920805130575546635177438318919641732951809773398765902628534903551962683787262835751725563756737198992373164428482342204539414571034096650763829178022041798871016427704297506602369463601307712582787990674375896238930757497646455658254621356007405739998313787788377308322913080834943071088880142557058096141740801933835377463464043165572520524559599791154109462894758894086869530193644241239483331308274694604646176085126748228330719187245127973177817802740772851655668160385882498400481377760997475171844407238948831355733258585322954820023687472466448392541996350606706150298452200176414379621040929506422043033793973923793222907904630928465875374433715712674938410758665243041700188795211445808010555597552481757092002272821305585770383659187347643899279123779713125333863603573090858096831086052744446538950039287801831553288384708408575360194270084685653067371680815164960292314431682064486924535223484491850621710622509762869182927297310125082622369523313349367893204875988093417472528786642323590834699057239269457778548532355789140196469885870948133393113144554360752765819346603796933446258003116769390890354221027585897403741387022882492747584845173986294905875594257051645531813269768577989957614374938664250947273766249122682297124036510560449800195622739502404455826587787318229799834499238556156228800616403984045861489875891296019929292681174546418359080704218042750418948467549394824586635001623737124484484113466363864594001854848650448469564544455925435496142086159159117844943648155597761212348055708390173149565242213600871745498797103605802273020525868239988191327644579920656666711381638366461067539443637956133323587132630217408429067242464433201101969904797620240461527799253224609673687618521941123550472997039204143441116780997262216569285938331470477246470847883636568487688598343757550445550110961154680108859037123868230894397587467489107662955760012644128878741003153899085965342779812623998248141788389016420496986260658513032060498019385388816311799098758178549516413440830811659147379621007628452401887724700935834213727718247271841067066465694467179038071508416479158609596100410902183800452114098625443634717096648406653031883319999030841523212943458614702467991547140705443217536326635276672974726370536870295982449588311557954212323677452509210431770404792319848229669200537493595467395428804544690206979038333807810757955583286982185113635342393995131265336433957066157778533307763632154841845624360865041542880737384834238184268824115796548031974097012523216916279313931950638436488998040539301122687868730572095931283542168695378837781541530578385496348836548900489012593084801269134189012241101131861464259066267004520161109855394204825798958301199475176522445029417410896675827719469789409972953838349459402364515394821091355171948760278858919413918760592600726157709221102263187787532457546905933534116764113583065674635259205196185285162441181587642301865486034781622926571528424132069298361307515883351907001735084626623650210977185400494646042298553539738623385613776279685409280276289795315119846606617154818019009412057441133239996398175984389785592800534022532781740099341261261920780207426378741465504768906625326548638368020281681195496758655510926707529180553412154819377957513783034607625267937749400647462244241804196239863088441012666265858509227159929254905599935964332204283837858897468915473086279648648477800759046493626663754003094617168053281152288471894914403856546867215456794800854730324874220518971178758832950590272647327227278267831330148597302878263499424243072606029839353263254041157501158765024694172010723807690197602169569757427699569010911215952229631325540097557748508177133033504405720126014870209297936797617090043192509321886812946855886510200510901370448799885144847854400687684218448431157939426598138841257042203909478857852819502619171910833436222569214224239844398357081418320901106256212357302363856408872368285691661598135184895837482281783431466542579533285899968531446664930289303823135254018462352981575200298494214325807347534686128367549898241248854926613097126696269102407434383707292788434323041453593229332558476446029074335394460735743509520301368253078233541634117943363699383081867114760861074677495286274509426514886597892316282520466886515344841073367906304040005242406454920643021056293445083865558727438870167394181889435426485605548355003677589841325513258962700072382359878561577286481916801575315009582893622584582687133539990480556094801303460012215149549045350065673730509266944440917608125115806827813411796603818467204258183662007624619972870874662973158563142029794629401598963734313233967694942385694794958609300095063644087813354878406906166740653732955379150013037205971724640356365753600324050535544622069969806761103383989412080450499697267731172074084110791859823220905314294673605027263647882561218444072720459919419869726014091249260733166002262997516044058851161262255278882375869537499266015386177486595223636389980726300433518331653716546461415496962333729381242053451575193623418125968418853945884702791765190151221023667710474871785501317372603173985142207714083751880034234100384647476049792737701815253709811459129868146107648436151523282374451552013915771522697055052279460911792729541347138939120181905384368574816227482015637435110109716031374359947731390422326462159129721665986058430975228690905374483781539246768128717990609209055106145474060001680207467034268961371537821192659072535131459566479444050002055917037251530986525237170521965113178576799240803702864495953893709480831889429881663365634904480811326516953598709093991316011332267630285038570612606138226786060543745727196111251352068136707976312342446536709002976348787877229380035851409512786702304774279785052445699209564322475943370423169105676723050709020110003613167347110505532790548191645456434857305735726114746264284493517162623041862508039323674615026300621811614846642577519246154224328953625852862133674266092475636263791219095915026796496713998032935224449213093144487136841827028658200812026521392285093465454365885923569761076328415197021251514299814398129659096622108703337962805159183381941185633067431165078678100161004373704748642145238647260452499961566445862411372928448683180438055077515345301335693001199057712090955453953066827573794040654964640221329790880775407827973094724889682282989652054213168819338998357701323790214000515748824233203095968771832979493525548660214618790572049145922935040218309097267716183699783450464953928616315534216348872122589917870887743044782421967246018505228979507764397764062670458735914625648492916867760307316609888004319270331919633965838677279668133547184309443895270402156357393104338691725128130856211462665926250558427941620951806205869195790368500898162986662304339767529447528379888714365194757943787652782510778747625729915513089937090340110956895351946203272803134867084533972418822056700666914625226551083465134274741520742753771627941143467885904957778914179541555831439824015699239753709248668788443657822044105746094185658685230290915165660995374171343497811649855590631960690310496836519536009749056797740063569017885516736448371895698837638930288285360393492986325773402641183762890589651656143519550054907053764358604085872701514117829688031598231680724041948730022660089199761743318472456210806787303531817845986304269152713647760119889808315566576679685429558437038512372160920589346075400965658963941934189321655989163237750152066200040390828054204280006995125182333907067590868208556897629852325552392885799814160826459460654992008223089663956024958772356012292948343742666335774108985200515906423828753444511786065786893331486166057381511127565920157589848794457139954946426389538603622536957685491643050782571759006823217932392940810014789661359236075952960040245460643599084761122240909597229109982324710587664983496257141318021740752857727140438293577986162313001683139886591760358310602489184005793995490899262357335622298606188605514317773653340133721237867550754995400440060738988507999954761112658774948725530171837994987127272369787109263172537191880147966212213348633295174653118038871442957286986709250159555941518782889662078560308851419682999964864513701553771370211881551439541012145303375310470776087058222753375498813656622879310109749592355025162974433071392319972722032528919093911872778201829491821287551477510309596282522126800491701095054532152810662089912723649651965110630837953788507581236959660048433000668929852467984506067515372220983714421337218817866961027488648268441212693359000285283818125714920338335150145981005945205066323215150014005450185308938195552264944738170395580978735519985205749126721905429579061065113162979643077665918435978221328699846935790023609340269519369630106994595872575500138100021232742224654087293821124448979990060939830491026387660005588190761864117408233775412727203683013205033702371420544561003676619324459037178670856842463086794516965953248926432901072001842488285874064577862036696831283627013387105210524255339443664401322123114252245560413501044892655651097484266587996256932269941821232121536085331976630388776046839405966584430823453238295092118166061806548865926772701188985238232522180143144864187606395370422583419565907429221268339743479129408795566457489130814299264191078710386643053044386347306311054174031847839505885317755785851971158718179154353336681216020074170745961146240308223620223354567031749999227070655462667668064809992976652325532407246051170364453548325900541514891019123125543223312992327141552699290986819886848805891289264270049955401458382890545028134758378826414880787932079466082366753650896695924234274960344825432851193459553201027009521085980390797431820912480599388832066881341320476240971503644388203988538745432996556952472779941222938185225733901718865692307635952739358128392483066386671635020167736183114729886139302954342090733719654584913163678756435776690393702079408245323000219302746570282626311533534882335515250256957743712829843911270973475176708780014740036821120904866373193930957750794371327911205796207165013960620160475678497299831067976636641514041513734976178076691458069540508008081477107441234423551478861980660167008303748715817374655022696727629112319640438916297078626088725502608726418258313939950595896001138788735250110797054342773040349566492327615440575890065080440009252903345377347202319985165183397344214820210545422348737262678099379871395420313007460836758590576394841852151962395611561360370507940454712124335565566276605704890292111813275931937897900081023662465000148434620686597609724680062829653342033575398858729622950805667852436004705925853802003515563805814762555639767234361302086427477313757491118658976647683334202908151164347981569317807264403417569504270673095577512603207944859778896110225801616791975016002541564767452338842816815689655221836701256184085355631832156837076368859705735287681164155539608219091448090231703549231611482965725834947906761063052454705904350511050546225757256564506160565480259801341983511811907166929039090354435181985929462894116649985489725580990825043374026799116915087653277489287069950376761275943150921149035626817159165556689473306504727096616597483024003324521120515256284661919835075253667307386646804130657864149396496508827333480652140725461151408805743916325871872083518304269792800843076572691161768086241976217895716124925817342391188323813217229602637470500283996981904150286954546314128155074647403282816258973628946049250982185470819186188855641960091947249106596044608707667000699864488595012343457710577576542431317515820227290034774803512698145226721525976103474049936945705662130037231763618501040381036440626582355265305330776094890645534035332719200141059180587151410894707485465228074663852203859892643376806042797264399578278596633296513965903115908290555641414488777161943785615704741384487584965866288694850898712105822903729735172510904656721078818290957987211045524072131721792255815644907723648339121231714300028586879668812675049123632555845586302387633971054266397913477728939808948001597655447551755689670906031341638441698228109228279256046314607426538399390639006127372767467181916936910295538751067615451286553590772120978013655762862542782436732238536235714454441350493591278377596265705224558782927753795356744470415287735318737561627814863330403885785503313223378856388680953093691449019778292486533095749377804471003557812412786521756279087393222541244069392663863547217781582718670449925632085100316724211352816911931790499059177404512360791845958432871069857333870209745682522608037856723553255727680502896123471600156662744140653338899765011289393696993486389724455984136271733268507387954022934560488854012060232584612317109503255017165851624368802841917739318797101131055781466054125263341120852037497067864190998573582299109521898517394526989237319974028086465676818625022069359687041541567205814489436173048280364490613109549870219083291810266229214314809963125074748063970311123947255815362078504267192432838650198419267107296315395909278613109933044938341244392540897977590785938629237404585916593332228412034706672274981129613090470454803779998274133547935617508356736569872934034063985359002819849505587544968411266883157227290528818179921509069184569330168931916548683456635816905026073293986041145241256682439145586788074032941304985369305900646412901389193275718307637207476526686938172551185150866366080486350472660432608152130608176667340626356945990330046435693751731238824812221060373287303209651062457395655451800205543708011309426313319535008558041486530795250577304233604272379124591895077788842001947723810029562167626614047322123618330964344723399562046986632296340671865902602999545567076023206751774874451384300533645464116276787666048153373918784342516852473834992117868819948840999293035354500711603009212368791468065949041064799859500429353979745755237846668647789017678610695530954795091005745012836223958652849748883937081022173578142493740568956735045430670032289570582760911193415998742122100296529005741119814211111192022514275711124495666731311247189873293092597368037299376414320178992559128016071029458546143918951577594156823894539739885690875165925852909384576994532182892564800918552598596885959319884846903392052554585658868655135948525017966736875675080965889062757481279434929870528974883214619174138051968520539963228209950839614283930093431457149918030177015240234098863227004196276484812325755499818591835918501689482758502875375750163228625008038945321214301027498228220142337503181159536932385208882610347708261399936437261466186930445555053762399897245788590971325444226507196618653823365651002112534074128805123810080386028847032282582594616444657636197260000516152269821135375147510067953265952419808188827531725449182899647219673282592813258517532820818551444654278331352276207172163581096132242081821712674666650348435376899477751450109448962560985353542881912367240692049072821600076239650106201981748577399048152139540416469154223352552618072790385287901894872125035408814266525938631221148487780111287994998331812556862556121918647555712740149576561418491443009148772649088352389627687187128537645372243576297955565863233516351594300472791759557180010498732843427136535976732000372631359295441235135752286684128294433833546480493360682201370738953565895219221737945818104602706813965811546387850585803724492224619011101113902638145287603204449708364846333634034051161984114178148434273412647354288070842205326563777331483379597796452630491779183598584824880294851370498882729637547317028283353123656300290779961868084471424870765466715786163704385789898105358037320710591412934909848276710944741017780186897334328928954324544904214585669333713628043525486188521102651454719089172322469970127893553588076888102086785483806841694922487794634541183871141471893248740721377385628824911963642891439125026478478835643688145462329370309984259348354051440313513582142906672483094065074961770472875726265991062466561580933735605787401588561914957336930845849733957400541125789868948845867721090054905919078599038798307703633594044662756514348516944611490562611385297879795134720275524349755626966890196202244881751419208361772527127580705400702376997950949927887723842320253665999258986993132346065204036739783498265392195061900624867153052901076922667107817075651824012382159332205456636723933776131236562638917752711573925328029354895806503081032557678632673202202497005945668267317288206901657224519887856840211683112162908624788946166241030688557484485284970933160715536980035428814324722831920962046802640527677778641743230340161469433047818477871139170968690018438715693025896165562127363116145083098162586758016864125215216010722398832587533559344669386028848376207225428667987052079944902737798783242943371057536610783358415862245959552378295652732322476736774198196048755437758119306825530550069985918632981763581604389527591294017568404313475086607455261403049650748269864999259196982618104748120087496704371493870255038692675808199002516130689537529745129968120125693903161956020607825447573310347795155683212655454279936610473696372480424170388639679513370929742765100232253540953754060111563879749554136227775641417092528854235989829620002935528233926057112664748736454278285095286304493315510748897373855147942779734231806855085052940187768860875038295813090189446535205399852431804109926160828225008083172731859855079579041015513598667898072271428464836954512379906952706260182582488750572995037769302461623032241939726268883291037343949463883729930433161435458938350196239611764556763366500446997114694942922955348966394555037718329411298594332952703058581277457633694365549551397698245610021872732259301640219931071007098956891055329562671549558689042619888569912729341344968126994680562005231494202900973987756930085534437289215965362524388215133145155828777155356140233036911464752234888451842721727618400455275975672574264025939108183723752180074870765470312651955766615677155496298429337999480040470475287307201594867876299121436530289378068039249262655809451645225951617413648373571794975779669742178312894449822283908772614062449734818874086208237116001051937297625305515833621366011695782872651403096162211434012826540812484535179324797449699954098225933058495211712203472430650176363942480250943987887744180677309738318017045052811981974701215516351357829292671186172406665039918730852704635688185695857017759733413671462666609646591972062271120723582034133675833517454284462679317648222626434928510137800778680793491506866209779662596953684199550386405504508365194211152652077568585040108239149462093564165170722167793699202095916615001389583782268529359109587491581482176082971060973017001361955543938449000726460481636164447481372610930038756009385936713684009535797213083850658539824133613935017129505708036012646613558526317700526381857888819405606975795699848484516795035701827667935077673901457352215425748786958455884289869320831705879355604315661858257693727212165476656996483537508962988570821077790308036688302547469460760682611217863497663927527915861933416506763695220260279429748957832611456872293972049093994268608718260497232089046076353213954779129450927542077242619943096614782700040117106128775327431925677528790959695258497221872709344539055429054559350726064514293277806825865880835591762057583780229310817913856855668689345773382834115405528093080749603979800096351464208723753939481397306486608382423114620564185567435829020340473317703037272774361575492656050479447226233776808836539758988478344111995445278456419767525919567032870946490170459260441987744211503056718699912146403671835934006756903968052449768515657423911561239120663046776568280208080865034500322703154069609549428962134909398932490709067130593051514803002895024487895740009682872484901674785631126374267238568258101035704537317286493299340806101794498188775434563385782487051034851554676069873842066979638968619026343601598448980988650077869946349113335982534660326203487249764146724183971884116694764532228253252819833712146575580294212923986967361655421014442797116536816316004856343136584175969717710278056191392334300876694595726348800681269208128488874929776212923231648170136692363505354481805700651864638491126323989232445198925585876401629645126962026250398101676016959450903260087248714645008589289031290766837780063995946710330604303837754199437237906770769436676375111352170249478761989148769782394384022756215434102811121812678699472556114697561908124468117521310738401733144662718297764837178754237200128382229168312944772736231187634919328141024050687716424039412162139396385678087489250183287074427649076278983846534691792530238767920941886482873531851515033903188754972308043829913353803678401969872474201429838499279693163916035967714911156937270577697390250212902287611114638586051998171060412736932001102836333238464655526687709073113585850048646448671399817359894500546592050556512600178469138608273753281340045469169989225163034728454832497175665287770034748785569877313814385950924150731940645749317015705132660460841569804379624886462840747383544599922189036860934261162133446015443050530224225499888696583378148705325048971586706612050325659576040107750196158176288026307013237712226007163875141619582287912790383779876646268429132031640187868973117700524315589778689662173370775886971774119876740018556539696734556952938152458092987212675758408708194480263066619980231322795387642053320948017805377528601032107026024826616381979784192220719462873640975387707481125140085835785956841100422807920495285314546086718180632501945869015247432027574749377072688027686658685659667252212738398791285647611813397281164061959879186455252530247855162685722266015373576165481186282649435395443692093756785634344310897605136327040983709096686131789001184658839510791298981466937781132242175206107947545786783626354709794535365834445789538665990380786520998791172731431083674370346051095324053506418428186914746808717557797443740147107373889580446548189021005748237163525318724454287689467639962588913371351905796633050213390437322681304962313918550586333021067812407967858866112253076248222559453948789580092826238213730409428258518426685006294676946337845594324170647254542123920090258700332571587418443201281835762689396014768364421346724178940733934510378128620008506649170685760625615725432355266055113123062274118004506839226914369564347372675123435830497628519786698109365809970675894804165588439994700550448390619286269225574102139251245727626808317332252894215988884588864272258039416741928604527023904562099549985609568493336581153031484447975250427105228497294088222909693728397580466492093639098200996606386900813044277655796379572599502469558597157424293957397685373828579399067222762351222314533513599670863539112333051922961882431004383339345177350380585883503195037378507215811967733728769289773800839847337456949515074891034449898947199107073978183966724871146603049355105330433303314607010953955587167382698715248616567357531805729077957633552483234101891561416025332022933367067925857099144578115729654489434333201131819939612723417284353024660561875716000252646023857277619814588586168614207925133628041796344466382491265146206921624860549697133928507445098235786543567527986483955552507612254852281801392979100833976119414931085800306413810711967627182354068790583587898659624988206588706694120390610176693470670801376692036854511335855672024294681029491135197197737877086781840462188877229169880602078987567189414627003726409650151059813983051546685361100386210478294566548259579403217987353975781371848508721891625487593544236094376113141141002900079109969809394618844967715264486537300190789236318448398259818149357480165073332425464943408912175890792794917597089933214889171443476058645472949132198829528535339376107125251075788131380939532930999706314817061302531343984586321976562686274929753633318896935301457234088600889181135080694382984274319284738964840157930910821845868659395817269691203921187806943613903758128219189359205303839827228554429719816512764603812389626086914598946343802161828221281706570057825054174783225178466474230442978770762382213282541665205427856400318199773028166392695037539255372214115651555688705668180582182360666467740789009339220154006103353505583408105727166005795856373063746251411520745643043316466071399627685535558506445669602331345007631966355399666820997627687084368808794312107734172172759896917822817172176341312716986495478474326862823771717177305591591780914344104461877309843942403692905258298199857131456075826199070061935315766527924757252245821138231854687792084661629343795547223892242569785499017393448889043082962486471743753711677392880405282557624663830804829666886077485300055025006127037826516875359562542717872081883847881062425616723875830768841574641257610015990683122185754181934925593913989942444965313097905667441551450880118196659198931585506578915628339442175621355709942357092787556621135526724294642776026965816029720752743472937390435385868202316660312737335316937759278757898315412298265429250288784242016946096468273533694777563640581054250118130889873101562710435223067879394597618176550468434161881532449232091967564958803806769254496289470487283644313337022471999706324218329454147478531151523472685995199465575729172050403801849862907412561498762991768538396459277765784733311559844087918016752151692836891721946610070733694589724808639832892869962166159648168882542829418443663582537354762127947492655251785497835724396528668614352465718168121053357983219691910909814072954099036891902856053090403363680790897505184121578000812524186753587721011307043779370822049473342030495126720113997785869873674275643237582155837657900771816686057196878111382457366988139205632151478993118433542013832039472929784248807707283954259994036746149482599203691872137170316445985610395563777581282794379605144034425403343300400967839045686419972817380024863243855954681786228838149338728342835630794517136605991438060305234114662730151157842476691552180992606874183523344452514314454564173229982976165144939691137886401371455314306039177257714723113243402681516788816504536618650654145596302695246159676512580806376621082541022237767724480278104244796766405935556458248157782411401118401924984596361174404908800326343182613439622160830348838042219615380563128610272894489393421659333594492314913044571891059490477453066389490622036908642067976334727743224059292140848135317497116866784300167039054737443925764669694742863470992235748573437833796018821172284966948873115880316011466376944214891888789032082251643250938744252944325646611784850935345571073864127960195362869814854255948759493904819239393841347497219993408731649532374143015783024553157986362248370030124424587844201978603952891967394425001777175708068085034626413939868110612553815834349168364365877820005542666273390799485159262475287694522855618378701214726778511135402341294145331878156988785285757726944411685528073926463997012872233227999233684444866090383031702940074624381751516759284899964967006534171667231119990198466514596376651332792088303835085443558300124861844337322247507583722247795760557620820932519823838998424952667832044316971397061249711473065789795825391248072144743287689947043030738919534062691133318431092810132184286569117029799357482711839159250124082650642643431821822572707019629968720216240011679126166737303961765861923256219772746021827014563329553111383220563650726629198970537743214925746154959027151484407665566497166539616021838708655814439452727936958651797941289086018863665546540517226430836238060719397555105617828706135348469179880577669286984383283490500043262313038043296552225148896349103972236507265534547107699222832263881352560017080559866870433517081951447496671144574428201540345388508533347434779447090641400414822923673569179910676087840915463572824698287051424315686924088495374268370392113779055809902741855018172458475857673627553912298172956881724792277184409519857499457282192276951122235815836571400978689956959235348462768328973551951705619621951538534140719765112173892262700640090082529425092139858222609193960438339239834048834840385055441508573780962381421535925407953941561864135195690520124679821731777507366679852416044191588753819932192517782216411452807604118200164478167112973489843096012586119682405355397458139776417605258815800824610510137880773609936046797443930538371048562087764124967666047188351433306003956657849901811009069263908923237175105503309506436258391789800121990161420671392887158131292845026699562432947703915782453689620758954921313394193564087854168582662426959564211251195625473274918261435244769439998511300255380450978601199589108687425747856288003870250757751645991519386389668238216602157303172146933815125552316731152331530000688874636069493328962297120071978056657879646195298879560367583520439187190075760117838672233392231192240070696189735025584773823073339253045691913305196815923574970893852369424817191821975011929797478775300363204899657174480730820296389140668026555982388259660675437460460715180660574410047407710822041763726206206689982045724662472915800005428579197220097317298410839755697329085126861216572373656542635056298124861628265984421344637854444062854223014674991166950783478675410987830345047766453138277806805682723925596296506073333102855774598068353093106633410721768970642194583222470508253094069558469202104940019901338328691047881552930162530177459973201374410406724758143830474312078496289925721654605850054471804562899370818317440295725983583176092081405759850215318282284941077415965984820978772707519584589029292096094522989849145834568469119940914998780735151232342472556833404090278990415012360201936380190965555807691000752462426763479720814404325792185573378245494816727412035696868333678548447359998022940086822941601641033186354113336487572936767582289490164548311368535433660279879353125697014070181390115106186782197091348394614015722359022065484553658135257137202144425670860452221692770905962667400911273602428928186965684926664661920397995495898856189629937357216787641084603249410134692578230455235683402114442661935983300348634826097414920852705702548781407890883915478873922959410699063358783608450642940904551474102224273985849497731676442801348453849601949758482236131806004110181288654694892282010584497125471262615608968973119741547029149542588499714933480131624935608750377687702567001600487352766814012118420757489678664951580813563075533724197673802293718903688632322737722706316528045396143197862602522757891254817820164171495604760442457904242984684138472208035097814356816942944997808679486553794488727912881377950138425760746886512873480709236268799476960944312695944478714805368473682895842015783543926252011276606651084856989250041365357164118951974153871018015462760826484595264330573824942034683945116297016566668897051171733160325269367746079681967906047595111239269292859998123935563024081135373431173413330275577242939479412134227863196482197985727245113058426762056862259179500621558766532996508740133521086475182158092696208253580648698346620762984044203880940936024119639312926208816705755383153614850693003000453999508574976098688995290238767789911817570129205440493671021592942052881423985587579972810874994911623424163244813128735332975192846650862958105327983832129189596666370622031081423531085520781598171165080706973022097993384652617769657278530024477440671909699188489022455492751224013940030186322245726628556226950644135103936748248516965390407215899702507941967880087759404206660364546299332367176040675716931150582317191553552308602195050229953784201893898551327200906881942062750917225811858019486478420968930049274221055184616577775002213265367252086861791832854080603339061741516884306391440430610183460651156358561604095914576869232969089232233711971273421173921768325796261131811335780192350768887774086072186250316669414579151522177753830730222457073400939747755858816915394808313222104761215931560227792402576559216086655629894192408894824511797701393848072499795183094064717482996850014804189691004662186034748993298572295100648772914346316734503446383168298924377865666990996953222810778376545680115739573589665401013255234244823331845553879071927190723935350895737095098932454441271867141984271887365141389213366357027646847967876013099981470885887937512208074414671331797421368161668693308532886950941111850144974431565366931657885702203442347805908038583293766778544765722338014366558431670755582815076119712165070049516000105394297607720753892645871972453179246982482373066537498068566984808852302072156695447507080238099427699146405986330861344964826227504934449910478299760588128919103780790854895227326774154074711995060113305608818678781942323585518099680697172023805736264787114621762939715292038289021066036394069067255701023641809800765989741761912941587852274869739626756162700527721198923085329314337805540705028434724582248039320607396700415803449653572792970014077785499031793661746416380741762542470264904989687772280114596572065862335339499503304696970962624612272519186183104899970132276895904834024022496241640124238369473055612573692624906814142086128916822091140999584064805243404993836966354902263383818872323801304888252539841213946286870019877019605588567385532846733130401613142368562632433348835990228348794570938824113750917949880109001639186749825268266334811446094484305497997997388230437078073499488589219525938742341927167863272312884744457209929705658077174570986616198018037138756079076685833102417456446014589007997460305675986168806052765597073074316424998251059093447657938025952146413824346991300454638881292155497840215617363656553755668201079571920773707398964957809694986126324570642094413898537350257258251161598828691407593848160457636935618648183271539915558249053231765706035019861869507221727159555206828029539663755232319252900475291409954535557218293467702269941454328264439255501623635457361290274193273896495413152100063396384241336629539341522720480319798948665387510293660104360989470605535013128240303165564321291023899630509082138735611211689261970532324696949615345275297442724276898511916400558575272426614339681712311185940225648983795148098445375396779349208923200771695487947271191598358402292893329907591593699374693433589948899894030909505131544093148894248438351222890334183301660097976057879651438251112855308006086689574646623251809818267967275714698083386258930887862156858848175021338132841746182639198106683686503119851366042779529028929099009488744226785727666840511654235443779984182933481368640851613448579452466098146383956052624165746063007630196496023586931006567562681293078264164874034241686035236929030344828971664128522994751410827996393611025538481793846594069456252118512447143222139041991886122288209108711789267575269191619523272710442169475992472330579847646750487850448062807395139293602805401085788782691142474579387347889361265612871338114994451156110405218315474539968980832914809376695718320181868286068500648106093955521668506020051090185140392895654365678755055222511226490862293409036304376308207557946932897468815479019351959011005988666478687033876104787906872911997639879318905933656779692719951192187271064868822300493652132030911407813816772064819306083080513916862064303796290243558411422765613554709898628683962937513728076627587655686602627469556665112889820782639419851036674000519200403029495823858703624240505590969311117092148878225631543461672235363962111188739973038488970862619632021187655777624907170457537444743652299578670852967087860327107935186661490250125383121916573843284888912094537095153440394732363073142939050686245998531142996143951775153739580096406069084958520488531110493942730928982358748348982408833679008393358841859246188416628858528705165645214026445464431319125025447865867866020186758828298472987993312294557512496536197165661802617409056269596396234074919946231063496892522368451172388367287974153227966867576994597293557032675888815189057026459959195007628594485691950127918216272799576735477839454933169085779530723959809405620803346178969513532218845118000016622769650984842499315278264253956314325538400073425087068689095161505244844225100103039433801960775380911352133455060252287446669904795891681493796054986860104597015384340166916226162262572179631812163801080551034851328894817840279075333734752990969880693437768198955867454128317054803150504414237346850899069490812806333882147276125687508102450835080436144207043075517777525900262585644888447175641017350467514896390807758323370969894109830162741954498355797946888316640199960550055248163017706257176311181685513356381062542817740849627954119831714888888300886848735191025335358576231668875176669778379982809534141458814316708356833925467302878411978797233414635375126208754537904368431250020799607868150542331415706777982482865770751201539325837356254768296355078709998301809875954058179316004543451280120609662687639053530943380054431693591189593423375334981022731129150973982084155675826123590904034179944063995159434601831964376308878213648380891190451347987785222414313753420989753647784625251318989057271075872314390355177104689154337839495394453686255120914839414123126063645451146679653689347114903152198420472740615906774010774276537441608610868625306280400655273341171678553745517055772522302022939844695151048683078650323244526620568390011308562241187712747190857195868033461321720345600627250517885974677244285292432013843334578664404297504662904036685681590130723501315945711954242791452449188962119407860317838374913940995038284826010451948284459105224975151870109568217356142337592339044303735000910597223100858205325378023802670544412570586221139815008102369392551194698588521622005666996699158655721492669319292110835543897971658381761700477350854888503458525870736458170665629825321210554818807796114877788763213982184575647382080312517242952545186956443406287687128337532152847740133112705589885641917450566097093750737150261743490603993686835526808933087138125329998811400875462805062319062074434284674854648295123077390532532254574114497053279507811216599271677072229934614763331777943784710821481776809867782635605293268941816038953881144070295208134915772142343655237996696832048277690036618519048726327295490010872564994493214055427755953986529545686773523895792547298581878053484596299979974839072975602211710631595468709602708962333141439521183191459400235594274921877161064583909085870332369747752873775897703995197810436306029886380170861944809114817343764515173228590217179750387001602322180673686848245576571466067236737127963216130055059702477159988995191991860214567258745707199981164124232550431385835908522245492790799959957111399741261074349993273504889866641516839167212132564428813659868379652047877079872353676403399872960942427029169858248188551298003887109728483688577367951125973359337239332787855972613307407794544128696334724445240942613758628377972189318411231899712028049734311097709902050214668850276755072725434002612447418788318561023917350882470409475602051072679306009064476220295052027016241300245420021268913324488513410721268528431292674436778060986955154494767804439861093158640212803873593956271136750065909403887154616070278003406228097607287700131607272043488284599851175915160143451231013521174475798850199659068929647832989418988467429389977381665276977604935607666043534137969697481620031389751257022566484696637496269041355169170358515078810319327160533952039670009308381195353219315868962604165513146300497645029612613368074190154014658995238124242388931435745462202747946286985035320080235457433165216419477345119958132914496649350116939176523326759572044832499258044992175711798724420442257332254330064513899984651881404768594326597561957400148919356169267252038940892896953933650695899687104210716519885857379230741666476384146068940810003802613484270731369638777238859819493064170029691680975926111141386396948211249202659380226008328515640396863959529395531902816644746654313790804969601678635983229110427007165438205516148727368689946295642072189580146316430890621059289609827658678418024764409720671683980287114180206348075657411437186970253298787500879851487785566255160253277878290955020065443285870087384693901606514502196197131213299778839811531550260026410824818880523677206403315553028569901584888384423987597816380444608438018610905001611000622607251137000233533845661943487186107024312574447740951666752691906237936798247624610166474091136037738449876759967014454317633883650534135691601226389331056048112426784832881832520570102264826161914386027382324069776056565771954645311183006641978476683298797507568507769862523832647413112432667285534302539748007897131981481415618425477227670462728798357952986182584889818310669192668779619916790210269810035108678581503331673090772750168218496551634457067633089423434283227863981700650757935650174020461155103603897680381826481773728314997626313475418026103761111417070598384658692445367185939709575187428181123835715210154021499127573399515312192922905893356509475522981067668215836445969589018361893704835928258652804280041867454999209613339879282249674828816520157068755974750419693650349427623846414448444013551675215251679934343613407564469244244380864802644078109157897085984951226488517793788689736055794853536318916103549863773509483552912987050946581797130142111177448497100532991853244998297988094295131725528799164034970528313145826118084802232591426378506179430949315907464306048790363311135083047290672187970779145958643731833677460250186920822914298047381739195615645416955320691670039732236963832953591577242129232148394258706077590212137329343866850416123486400194822090242111021242113680605329228835349861646256415166345231811260288603665615440868930770504499249787318529161155357278074020597474992769101485625346052516099171991578666421111822904166496895875214239455418041613328877771910728689694809139173177230281680884297635091724057369231557495483707833209973699536629145182791508906961773659208404195107187992538346107569608902899381158666019300340453204902922829460131592360690210042057944168150103895006963811052430997844759208246108162018475709074107272726632946618605365333821871381927275516843302638496868304261401957336750470751576797022648920891778287640230345165553601462805208586107264773939124204837429115713985010339347284935125258383141390856982968535798199676243717518468334120233656258633711514023173088078478287272027922020269901172335622470950865505545150277492123770253171947703158233251806476525502028017233394065921200291233852133373119353233144772254496259232128720547352891269828522258079822956134288474242326252638738895605665429361630378350972081225012198333616607873649358189945071870384518745879876394837811904567232808035278149885827078303040929228133144463311815616659960449196528711083739019283597073356349858017394132645524115607134892097533555824059433797957514354417870910921620580128376898494878322770054466322364545343709720745589527560950136376872944931898059749239125174300337681047019984816966122343595279103425416923801592973102565766473144125371153819143890556823809275663234838983496305768511175623518270453403885182442820283405099555736441332254201449767916771696537524491561935802420422637633980851958226176203020268019714389944401223143186445757640142655303978442368283072455443386859937860660375331130615217151498007457612809231189784458915181507919344626747807715839362319949440661980525075520163528914069998278242157890568554339699621631710730755143171693699742156944721601096680659554325925459422830272715771807555466034049497241112996305431780941075878156711266567876562903697828563039417559670459055561181954344170936010282281281174485446725780562816492736836749955736683863686221821736578570633320269866396731775927989911836043987078682856784008907609458205000383732044804318264734727334371815938440798816356226395847239094503385793825749606281849951776836704137741530546499379067237007689596600357957023343014924397142803312344611888583248195435965880108818694420413709746926988811988427161369485008135077018303888148238098520293136813425262733829048366065985885865901920442615917981303234837309762249211809214551981842851458169287001692568936259537985806942316117541145105699957520908695711841645222439844513714509778519877230079729211922930578931781698670675750213400356847145757704359610795115021156801860431135495833237166578924573828669367448249986543362061335954231367908345465425580165712506061666157980648110603637397878878720103855527629914719622908015505363260699308821169984445338847125050902507251411688975259629563391102028314804340521929897800580597616104111914321148290395266518802887983026951270585306591155823145968357342542939905416130251649307001306689671668769220851229386496249687987501828313569750022438454981781676045965653262982163810897122291985624771418734594277535208565662597799366083874801443671417728854768807080687300998757249283836427683018110666055550606527638779666563322131970686655083475673040254163800681280048441480240941274519360829112680174245439748833973009028193506600341787976790953352032465132503173156176788781660179635424523444446640044919780746254375364345460624487038415778014650569225705823577846425603469386882494868024825973598012188302373754893995336240065542954489336829683343285775994901515475486891449181971195706016129627801349381818914157491662507736330628475048573482305436668479267672383722411728436346465477169146804182505243951447957971330231540223807618514000567520094363486245441116838054083793650850573338421709734232925178827764771064529188334040268148511729097979296895107725805779204807117166864112989319186388679564911915333666372112073922867993421184014360125441532895143572994317194525162996526482807499138131901418771197768743833869883851055650218424734055545836318582152013527605669093428129832736156173836347657890242610977714721167181638685865264160730575651758428357721340197162988733519989619113547315691797402243660691977575894234153087450608162622146846598586339276551596032106816924021447517132907968957806567355596221927353868735261867012681161485140586699136945655298577924280842788628789775093009713281678459499970677983336549059528878262123551774464252519967321277508347034752618960129386219774466884476714715936001580112628417293080253053758218479750241430289367736441384415140882419879488763027117495578132229717483489858109124162815453618139298067001655722089598093514623517476348696959166820051854887915786491895976280827154917146262258238278629072853429015939716702475699330030089141395072936439358048224038455365512074141780925908648897153838586290320643872468000984644094173496959484404263387813409556103363798435443377154311191296166222260504040799395392814213865250674769086524892248986285465205311778735089126859966483172383574690578181280718832684101235048963691154043072224688765345586720990250145753933270216837969888482121625351506161176253901003419321135442043500576785953855238642506213197540715518004931780720972143087938386616498323512991546753460291299375867662503917766785880562492428044473746715494701111348219155139355371860147316514281385073144120703512943382191141389836164423797985624012084521357999793535894290369294062631291399625485900177248310234809327774957546389246946885393041923113070171426473988835793667092423150327038604090620237062136785320375111964499857838744842756857766999706155762523263826119615141096158272993600383072080464001622777394049556049666164755759859800277784116285267675438254296656539077849068463202455205895601076310344439557910739188236132831586713237861257052492576484114097067251572961222417519858771476081550321653057552795182453832268518427633123871559759498483888228423315891026778330605545011770940491296521041723604604133142161039699461894899738287685627174464480325872471834811594935264306251271448726920817115748583202856855881311156201089454731835039923742165139032656905355857674460089950879824836209723231931396865063562917602737869843978771407281367110035979604337365844926598721428622751300224803982041999026411721393105744751531563190365442904219100411685845696987718829289355228294398891893878548750821517160486002587859181517904491119018964520160122215444126286135470275241276557306772301941704000804292332760427372988706252186097826463536388000047520991289489335885117123909566810971200353839514601947416400891031425158357789805204357168328481391513243975110115532602865387748403581762845670243422345237190140502807779617143930669440881937581950023565364571781064312136128401613963327724551914012477243427777806703166539703593396505370318132363221105339658794597595540783466634566404988866987709114604094746412040340853994396151772816812502627823086367005222445738418964759072226067860719447255792337882067536094396670625980573326933003052717938612694961785747325488986773794809419921463300012391470696900031151104053264589158522931332816238743297544722065650012851978860601780863627285925643777435311548745778581399537607846086930605027449785487567979796983579751478146537251153784075610987047180719507450277098757922483576354017107136578758390198035318167492813607544300028316439984433522060856405735311215397015044275870466859410560522477743463514726701794126005486536518555977766518288772070972441059952349730930894747017888042157181858309473763445948068725642809045560435192619514385631608323829017671039728479048382725104184711527314879208395439935068219773508782134153831190070913043174931315161235898084416941964266853619395238260558158801680081136530013081701766335596878079030455273955039493155322166273197061407403606487843942040885408638105006308429511996864601197529830945219177850083084084413697435560606589551184041194613244539660776319932680915844275213265365068799162346123169944778734676701528809195346208469554595297919949088419798481576952346796837127281065445866138199938493149101181440057001028131250433493178256889458118564956206746839506231732450035975917941158150716023328205885566531576031624631696825026132804462637025612577969091330650772136976783179772047850846921093869018483446099731776092765420887166978819838108834607935373481713378963364348622703405180131387260877295584728225185833336540748710530343591796000993218585538705398766935248503029982017785289887666677071157190412211949214308287383954088299410238802983379147177101937852226490105684730630500167320153566102168989519827862519115015964045475221841459076073353003046647917794281232909776616649309569138602522046673112840197664095930617317618983846924729950772074294834688483077266690607036679205328104229174942466676830769932551743389769992622470314502868926332367629319365126016231150013186462793054329983731660349034322709895751657897964217216327594972642860718732545175690714176532053006857810071150079282546800194216959152530449268105898678840077734365840240446483288456354602490277589443673273506157343307688743075888838983771394110144087341613205015941088268635833726497691548308464615745783735357740409955704343815633614432594052553682851600790271394289072988870174187956149161234060815960051228485851962161523677243013141495836876228855381842763823801535930499360656174229611834426022518333608353374358604274635593192545078251577825039586042845356046970591942642556257790636738748487523868726355404389263859050290503344261170901672628982580078801335039936801388882301120236867744376094798732992662536605584712942625004836450862970598143411562764923511018356581938251574182784052950461770924366927674919594476957867163706389379134845159475566630266055432708587333713388648883239236382628770137632896846201710573428369089431171441022509829011267348153207200329595921545470618500774090566195679320789751966369708966752798818118848502754505069532902023875877482236503870691574222582447366149096524027598017689954974668854084272604059760333595162565058318559699549262768518134069049818501682738431421887056392920395436903487359631675620350870529450339729119643620355575125468366346940983411507674742716056514046996050298100991912963558866514850702030068680930258981520807753866899504378772082580436624213178967400578254974195134408474979351794966539561547536086594812595480333058215043483501995212514253641008497937898697897565763319080574835409399130061147645008564363386972480273194308425591720425310645818998276783786684058508317548240975557160619218384379851681630997732202385718410729721124341008135527813613346486516956285974806240709796096531886521643886279551479267975577986654997765194678168380875552628864719966976268996412197908408134600263899806710252933531647397105792044805775837354205441999251539806942457417299425849177008995521698372837809976423289215775478898116068150662675381198097047361477640751653808916378795369477303591699588513308884542887172173922540522068852523326147046798474823338945735696125556574981905641544266783984721775591816258011632768768249571836528682067393994363309516589668932268508926019058459370915089096734712242059301876064714132793720036543831776918962007635433597946720788782126899234146003160860731320481940735828308830421918759149610205450027985203754973162190969720580373350101372709762295409015708719459983602327755263974265871618141851254799585854899627677466638882838652724385907021613865329750740876945003719596469078641185471380848976399269984669881825245901751776298998060503806244764328410184994211421813796833176661908276376899983104195328290267574247475338234949239650261750097172746368653683930992508357190122541724162969391928816527150467909062433038609841848249878763452838045119942301589627929155369747616888069293170035882648067411957295907680963165959003737529521125088449141691648185790308268988774606703514817689770896888978601597551094525174058735270718032173930355243601022493156689807857839010395582420714926091650302354987010318145830691706565243683926700147661774037989193030658673559950315063390972695497019266006487871125792737892391555123531366318708374925154904491574455141272270218191772920039793923921417805018137345497572627505440822472000951711457835787065470659576950738756859167904599974199911893635364249250733939395683049747982971658205219832857886987790947628170371446175597606545219999476684589410680005097693604252164120247055418633351970059512977306428973365218230740687798252934064630578673724861537284743305378065118092828088861165666187340744505605283815507816290429490612536877259284165565800782976361935611671152799497011470910976374880253070433014305637489505268069331230739091195722922635240405712580362580197692311118467865359250810538529814170545367501596864466621744825542703171961374855847508797336734617418790570260401034092137885039934388069431332196747467628405529205690867925408574226929852843911475004142760176963625331755781177867806485121899039291765738118619590090313003694811602103860462533376597973708800942747916844859788564010479883664905266754005659173480607854001038673152107848838145614354949805914157519236699520101275618864081997402572807110603499656195019090282763587953153941465785030764903279764221865945985828736296316510823477025436729441454460430167159291608482661240656360143298460307590222909182065106888875994744437905682355757640449905610121660557755461224785714154352630109224600581732749825291641900321814811020981513085867479364421257125500513152519054780362942578508287783310917083602666521862346369111423389297148139800199465226189052068018854957290907044729813374294228114300167214558497983840641595987940116829448567893222556500541701907548373058106661697322368796111965391963000602957127046723937303195384837596108696334744143963568410286887595523433914597603890933435210198117356373588725983319728722311793041352220483392328631032777580775533762728306635105776280287582359764881959675777548519691440848252484712373511181218233255869213543937096021751758558882742262578935915872591697687816373662588890902967863700588531753983920547563887118344922920530901902615509148176479578351867883471899862187749355105147943794846654155358692567740599856104649127308170075926473068671471959566751596594656795259161952562198098015316301550884182170171463387307865795748112486010861963738355261811282413949448013922672959222586404377842543143782805236888275072839150187803425850793234598584404610401494902415148199819746826017769908133901938373104073348675414466363476394540020968957078121201781798593337132565862297851993316953415227639104046376912445912587200606668180939004861935215858563371401217362743963134916515935994532459725582328482301436831603120651017085873381812203836848666009930299328024960732471128961000160428627912991346533242132109446295791421388702420605393327685135059348112294547474666720589186205480968506241835160615267534960166415414705251062343834170054131696061330258084103474058079194525264385541449099290168325278999371963058680934907624513385243438146412963127210404018726544741542862468738685697669770306737861629350445387187371946334747243503515785606063046540105187365114373662487539768314795499316137385439373416949814926607882330384548250802407578464115108348614490158413783274879774620774034860054251635784001623642469451094524422237188873269975390771342707283296537382658242731856907002814000655767759496896020315805904274572477587932310574439422589214048213100021063467826070179513584573577019328540113836201536699514314169140052048946121025693576444488912249459952302307853224023486207536211115262340155905076788892361665287700011105890407709848728465513600088563499234252360069239886140296449393630256755328255893738633566385949630045632536095139701063391382322699768731574671818646696384275930779964890192222362671071353750449193234615387141141008278642193528009065852716421319227137466177168906791778777350157721646215739794041713100160721066723263391644649543286019172355951963357655418333152494333588247171639224875767555291862545708915347859639871765630816257650636585123808094260111312452596360674362129647131503808871704795280998769214201482799758800545892120655301070332596010384798681203161554073577067274242105881285417227672616647188361667905497780483731753758730080524752509848946915620344063582109836467073039630606956369298183101433469471218608417797925932337270559465778812468530472682036446722861528533046799207655617970630754942386032694824797908179942579866673251222547200850986336200044766667788321919763046311556972883747504186115025643061295026630859842674562764567174113776571229074034407362361420848389153182716205987127262592943727867532146813520889425767450372292311344492608103897707307908597848881950138497827435586112142136913753892013134472534759302587763982036753043870756654942468781739229231000587215827479427235016817905621403078277673035843978455570328818174669833554935527637706820741169149220502361428409384221765737365963660795788570105950510169777852982705774789003689658553727180864794633021725688395947332779865133161023707321958560032776459639733879574686153470549780047197707071804791075461381173999174596716975590968616544221982596082777630978877038769879402340906647705986864271260168747954391549337637606690447801518318004805783894354653570276859225178915741877198041319442048297571229293045175710359271806124057053391237047597546914216112518074188068587523043779687635861880014047914878969016057855903632670549689697302847276253261875385792938494533591776210276853599358776307368856176336000991990168244225087172277313765105601045756096802826047711983417946242530700108282755890744048696777215666892402156061512230524239909397967033205858755373925536228254725873493470205418856389865779565759795122724638730737439017581428141991426756899729390691859172267520208653164615806848322308795538473275867697695858808668684834583703093438209647931869857383630236374733941661148038585130037307047143017765231671569898107510088260169570514230931282060550310665837415652091765829243081618419765247938349945106837537319886590459414304196644221402684470331801558446841366237933162370396325015652416458045968531507956978898911242956306216677283030282551707470641353392042914576521065502027691566558834478371380663586591517733071533778501902173119622137046658161602775073496642950223529209517176798284830929515619358434559308302316497627918712152145238568128095847649711269443741583129020754816991977789735110784347892779272986987545895857301720347256577466580397760295910309630079265623532914563565305696748077061642793412450754990193877755388508920981421190386364123797086042264897942526852649094849170323888678274163956631728083389420231666076566890575020060000097191101227060289146381982489967104261176505817728208096763488164301864629007095915280713832742096628129358452551404117839946748408533928986369648135510103038947377665451721988235576212053595778780420166598357180173660742085568763460636112828302877398842063212880851443299235307048479915893319191541367112726424690183938696154029351626451733894303952411581974396099812739270850124620958442315038714484206668343418920426987304796902598713080423625913909984989365226193746604141874966290286677382039051049035721828747590028098369305663618684790989005668106046948442379576192524911825903339706863378613371742797266406177347399497646443619360116547229139884347629535734217811162365622537629075149047506491104146057367550847316384711272378267862207341043370649067117992901756293782951374774301494347174745391896035827206288337641873629080157935372374947094720135010572394166733063296617347566391873512420064633954664655283314601023052470041019224159815793692061918752395644157382272883820220202128491639954583963468188376631992520415088201515814645408310156209953676125636676627877113533545081116408707718192966715478114369223227832751639387954035824997915743527115460555250278995605636518287018123984180802358451354842724160016930564312616769546506283483201630068400262991140789508376599869938416178863055808968774768467534289263534525244788931778371960907313837406500306136124419131497826654575359355060384742268263764784800074569420544924621233773001560182078973205680169487167614733705396022234299011831455167861086601713005887823429110405818676755463961084751223952737463448759331675458360017902094870896761229316754640781525906423884980405256584421667595645374599991639153100488412543680613410061980337419593109273818653987503548407651493211161169447185056752518665563263120234332061208038876692540444250956435295725340110019029029222206501928858813884281331960894655470773995533090343266042316365986991652487305012316415866978635605129610759183326363025221401950108888704930454573376458421756521063688146591776250833847860428582860464945225469545970104342685082385086568983506493601832857363995797104888534226717644384820926328472148179528574038542140098291930931427599309393286564472134342076496986504520299233955814435032123038653598508292555257101888154889279367074477406075155196951474047613788965638177093340983926957073344236048949632295775612986473617220258333095462212569894516713617970522689414672824200283932840813579264358816655701571032680053862558037266463996740987183421506073098509238417315898105506932098458054652526226158639817783653014486739443626535262144795925950465058334301507371074084451650985349388549903006200456981204939846315966505722049014973352171713854364670677731222019764847652097110258710624865839410752837112786828964517302577854684311058352915304442534542147166109907890076714073925405063953365258315517002785946552772592052800083746556172451362849075351796532901498178003044359244132637459917533359220717679808533356262443862893775384000764240366992999937282460989418991247368259748259480633648403163540966038079236187835202731109722419321466801598110366869929929878721687034774523741362886840796358087653540951162232301570501873458371213077508914316440958075213166873632115610129253997709605184916134132523611076732815569706359951340743265291657758060029217397420188481951993860911794299671237903083863559587495138096489624693801062227662854801787769619835846964970774988571839187759169027712543563126060335402042374836570238923464739896830158255317137764534367798405897728656756083889287562119986090250242104837503527525466764526006202653806738577463833469210129684832190911837272738467053992190515425032396371359703788756792089789216024178253216358320159846727882898746172603268397578634604965097702872320958698097494933468852497099507644349906310420049026233419582050014283134124615757281054055296693426321905755194800205417404646325687383094548712653882355915874967671026078679484063306250423830413075668351003973517050397047608751602492418428260285051636370555782953496078453755620819994945205440334501054705191070330790773607370775722466166700723667470313267040016323941061416848146701111110728637562391096897982441509957029572739070006224626883536298474760747774659530233279169068157735864010085852544982015127738970527235929358158396617225957519802899175479725769335269797591684995272347839613579775998008730842019081907489745990712505127084032118570650192416091467124226704724683017372532749597616751377898074694476667726885999408841366139216659777756604788310439807327979268540096114704122463822659259311855179408377085813566756127647096260749955868913828045925161956679673886024377227181743990697577830435583804621091120894654113555329706456383062591102463009037386250863208153335311043324075599100661673546570617871053854329299361516577834383594939378872496958122689768517311950355159991815445657853035384414009743519021338992795165356762283227359475432797143501414478339257020271482975100598171506362739321827936503253154936542282799161474007695685935182984837257086789173658229206966852204740226034860124571855714507832213852045419241917615335359833136524267832791230000734553253533861486758157968222021697290481153042851563343356031018824803410527067547194987241688461484595588729472092835995882146614114719337655060368699291792410129645450769489129245973513448089571053399513221479153627315276248459068511604330682694586271052578488959972645117312017044215943373879856404254993766996692889069314607837511396496631860953099502712403101563397336791644099982844753601571062549225380033960592730935179096568957081835246916821449260861379159461030616584179649941934611729946677531268598642943153699271161790578266164786014227311801402838483615002116007560596443844832093744786652846165519365884908607259527947431172632088665247421950795737539896760726498715742115772506607166431550823077095771834421957141965888583375418015705875715536207281447341459487181709867793468258183898151266443663669171312546315367604152993366882311277524509738650558201123492736598982848794303472336041598045153946573083369537758569049618843025569808960186363279872753704038574217580583609155240183090570894889922174450323837275313318072070236337162163263804150229550107458946270191137097561771379078873691177997759084982469774096472708472881336166611507928772428985182625237331216457191388929292990565184418869421254823673092033238399491167750793075023620731305821166693663437155941141043633863424871166657392846681877542487816138580777855280356915314111566813180277595486319856014293775297624980905957590911408045065863819922354783014003158574341368045920602791292583674985661306675534914060365844529528391622485523307521710013323775376500239516661609991786160288970030502827918686056607279157740424611235735518474018013930175975689979518969629258788773562096160222254539030125884714463909882296841673462996149623407272612365523436080272324267031036786493912783688083220596735899642522219507482383067169704837323521626113069165643509342829558713975975388941893184416082410530701250671136822411702809282781073721735248518121989070070934722428577309955442976877532422106283224740101742381418888258190199807392832896340206357057111121727277599684479011983386399499434647726250197289669986349042025528613810950464684224787247987102623791943234426961286693485604305035964440620728970377443370002196209276244146099282060663834206309289533469446325225226548653336137810742376905391844178078574406380245758449084877842664241984232851538596478452332146914331748374652841837016170847983078861079259595133974106722341160010299282456411431531540364443456592761372602122793795342957556755348189216765700349584366598439898367999796996570547284654018239735988867971966674911466350363012496262557736969826392963612659306846504450234449496021456749325791287484704694884899410792254727689494902669141983161122812181869675824024328516431368807010628372835328851617482908729910581313504709175922758620486631693963356033547068603045144096421054286634779872576258305178010952699679965183369438551764031730328493891524594615987682389211305903561008569054662306054652628166173588890855135686507614391277294334915567226264673043625455648422731178685305730418287156394220066605999916806409908254967253350992517805276325756879150745138855528482906555435848925400682214729473199575497002147732824583307142489734385016149369482365324971456117439332105234091672436504705128326402301062440216675146839452700731619636660629776177150787279336289626209546057855728383435830461204376547116340766499301768413629619291298428513615447901836688114243389079478354388628953478296722744220548847882368053290291918702693147224218031298105517929667952795410154895095747513925844048996756431027179266922078479729944784462856002214270590878011184920167891175861199999391385154606963091667307309684979184912012046188258247012951705108426082910866026102443753678090270829281608965843640697303735675020431682309483467662525126213521579001324716308462723919738085126578967593397336586309471333776600235268968985617855581279068845720421923729968223349103200617277115243919275020207784676814188085077288605351097294514603816643360131284106991450066412543134702735532137613792489311101283784374817794520662750131517662999204828975343386256495546107014603126514688603092746176649045762242173421349273119395269616147194463482697755283909126995833655364416853070931208864710059793193960136180619069605130363516860689093376193522076027647815612730811145327074152159233618999176925026663841938609457244147246421583138044834478119801386904650052263272001473106611138368442869200729304391555295821297731758042723186317556915192801957223716961860240373038840688269039613882921983465864392418472312005138526838808460578981340567007547878979207591328779671798782649334800914537193173891821244689388991979519015849985774182398650973261788938590335201565200170855317497749163735741529707598984265753631275690657742948018742518565809569918345626854514362094820852351867803952446675125327254550916497449582452457729505122937671041886660542113706218699367934419704221990009939821408281895167398467375362164082611940988346601780999998348751222224509443954955376323034756414812468835318180888809776663056074658369784932482912377995307346378092750209705924261114596495389751970051024912591950836221687033118848148028332150795960951904396638011680008034871585459392394172740973239032087045783186427670100785698291333359122650628292073197826109359616128277340373443326890124054496958510385147161903350527275338004390388912799784369256970345423520428198208150466328973898466191464823743541730191874875094572161894134549528674551461853091482302840141047421107749576571906951142974909625027012807181726886909524527938157823661964764451717855374427441883321880761692797703919118200225176873988293152226380413286553448534241986208574486233936079320841829212810808252858868153329696767745284323909930844522736245471617194696188855510596155248125485409893087769781819628012959182834477444923646697113720458601985246871978209866678991783936803994165974990744043097568050348916149546985403545855944892881387157402641030182404941135510171883304819833750871244435723835989332493313512671138633371751063182799463212620782201896834940765852206492380598830956548213355054220662733125895102483428429188477353940641022101916395310049722400865978311770960360441737555472447313025339534746963346689727901948285789763192798635887715201538160812134029227586161090489216339742513482343577600723429424013788094512737397034635654308357582512475777163379886309763679742997373373908294965567047595136576072998313610767470246624532978249424742646267069568423454028258526658462012979725458499614361660779288235537189924821891745704169257323704079727188213554863917064903884109285670235642924421432003954398469078486274297180021191618995536254091568036123854912984200508540717859084688105171046729644347237888287163303322061148616066127191750299493427098022645940745528673227264383836232106219987428089221975332983147367954892863583620356636765360276120743249534873232923364719852925813119130525163863471887491428335631947948227630240786038250764304238100666989535740366421541391706911371344630144010506585604579232422160501152459703487454787418221720425514361601270116429217693609189666057889221938340735835868430162986051436457950122305124006812195917679688869090217204683919301102102590900055363213318777715198271747268855084170470609816730162888568017756595387561830529093802762528335747743033094892314966326304833705906122797055843388050371005635633686083838418767884847382281109793428262146310102392113834411568676404995334324392294489004309341574536282491841164285108950104901446678719103960269251701437745259027257646146543636701324391698897980917667312581060407181514820477953605490364762698843065844667075296669529762531618446977948752355859221441532868764795858066470606293814570310745130126328175984375556645683722797813711221678811594007147596871418097063470813074078671094717251111821122942879166095403348686671298936955990090106639900390957713314448175731103749096257688173100142993400716935423262021292318338045172457735071747932648363413128811589089109133848315404028945876224366578391205260327256210593291996305216157164053512652055385653224801830252154021890967306691701664724415149882146942786863047592173419403111579925968411467254395359584052551990885221941626910524467921598125872726180759484718087426205876518788222311450513236405808127431540029504718191570200846831414733186452715907870767218256605111845738515877097704877994868412275132130134346221423425473101915158829607737501401595167826781419163333399633921629963672799999572262278011908428641946710577290768589135059793795235217451041460824178158988772230092887755060852079348565226560824992248415296346352684612715211766462260328045129053504648527702680054816285869292744471697879756095296024394803798972385593912229455817964165184154334599041567501366757651038962197533939291342741563555037085035707224225550684213564237199534982783832527171852956060293447967727776137607004035399490587741507529407457245638604482985596273153461910780652046963046625952398458386220179592750417035209457918613662326214608300665354173222616787868178855050835385730252815465195174187496668656077616801389572838008553952462970763765576967045307478938808085982830338014037949232581049106296471511480608970934056453299968423040528473357508955747409720219648558409335403421673288153875459427116780794512870975630261311850620259351688003324232699528668572424046456351181785810630935279601639693859427175611168756995399888447565404827385361618903082736685700759570008426153421205536961941457416731340093835552370729611734937852834337956570596810205194072296793579261561597979391203869096962656658664043977810799755485178396931679886140359704411963917942994478122775357535459622593379968433962247453317212205188242100532823783827343638841844231354978668545391036453514752008374413665456628732345091369052282994631971126313675588672886221799566905915779376805666632972757288024281309890187343610274197663152762384289552520566077326978611210899329183545877219707923960529263587744141311382254250000953788685179231319423588848400737933932778531673299014795693255675735483546988575928231165777295562935543346799118573880954198699421443870848922093019947559823682092856115898817796296948882491336118010976625724789651295821181619443520524169440801677503571431980954636501995046369506711674624102555385272315162869954134721055688880976277043310309354399676786053225808338009383426348755843458085143439006875318964400028135952550806646076445932822567563117820908052895765684457312762731897513544332214082296213494699155166262508329720281179029829972520220710530595485173734657292612682739880727648067285272280275166646287769572381847889214261837581072491271814732261866610906505351037397598852494091664416625027360838985938481784060540869985202591713138355860062390887295767558861819442067045408988014549789997060843619598879591095678158611460340605468110686847442515333399989980983934205340018787669410558981176628400217292755369926612985289448477831888979100376352648618313658388583929270977927425945990344275384548305264382956121704650123116421449157492691931866607243228815454184825557658502583439135601485867379771380150766592632601137749376498315428059520207581590880462071145104276935075889976194004779326365847861354093018800894932550511883076839440797487256666820242579234870370688644159090808496694930521947858983037655995344838958052927729852014982656640543263531023424455254886816718575998066517118822823029916333242752888582865321700798813110681343600946706066481613035961838184585269577489208271994292056780344004414156048570412254182618161343084171799148787160519518946412702103001518335272328523770264290755347195199783733268281136230602040394220485377486177863525196356504154638457297205260855466129244607228689115492212508691895770091175645996649260076741174077509245412246054491263744501579048058953597312032014538231280526499805049114175864688627019361531608613975503076027088526450081384071839805855043145837714983979961574949339123015493173580219028141947721486208336858876086056048809620810382770391739293376347405850667627253652577289606771727228006214647890850936710317149972224389982400636572995675612335626731366727324976896070556808692756495303281040975468881771958696197616335781295230153016464803544097188431346522282381313699797570448620771587165971147448760709871922015549646409990633805420745488720258585311688692510943800145308467110115912558305066060888985219501995164118667520109370853996249642152054250448859298121905993737423089012361108731456263518243076776374516148786274004169013513703445661391579104463583163844990839568806927051416974080195776814364270401563817385649921014099437149839596040285203077656292224545349979240782481493563505092187452729681440137361736317219532599417249372920316804297494349674243684436136445647611333345629005260967140630680335115386122469362402625894085166339050769286241706909065369066310418376769532732034873661016731823643144967674391092689726596607640566226700544127931715638541957005280007990752296959392010594136746864774779752472777569212292195504025807500835490053199376132470981006448522192994474987965704649810467885266182749343678742197028804471290317991923179238153231269712205460148666413851973674590688602247830296629467883616447346272102720262520954777751251025286569964024748610537642815949570488162930422025530534163248981719854009378272517598429912000852028777824768355563416378132300491042429120043220433443607905948650297955986559419015001965663374018684508707486536165712562628130289440784664382107265324304006563600117023291711393604858974665426895274145239349622107829311823520259868296702033454677571657403792018129207295583014726043536911208026547859892274648152603881047180627943139870584208583224650614709812996357151094615845383829520510018848784175068148280963963726525491119671390773588300690749843760592167039446446454704126434622651621608892654556624104063420868666818776701128725936540003735681193872611448359846498942798685334602785395375138571576385220575944288896611671902631460344936124609952545358191735984298792090676327154244109845529894110250158630215226298714550967798092023720870439708033003774903353403302446150073731466539648083326773752663220730038792071903952417523645763481301339102911775817106953591092457994484244960586248376624887245313552187949129283851038359187732119976069154663896058989279735221719517539426971981296853797347280502250184203459204462963931554896131361311295203084039594699833160049430421124359325921914582039972124268095090233864538259924683026635501879876250171582692892581888755906471835803074506271052534028927078602492011023593455913165367224325238223011746873100090648087697892391849119554580388140019394009965260339739810412936357689769712624278140506248211640390359061206385606332114179322978597227441236344207877321246712963762201136752889882039027015772183624676589686816404548890685018291448448886374628166394687022686782159005688066527325158042430805976825689631136190332159234007347505556051606246548029194970363441041710939042614686627395781621625493866063496433746751556821489930038345147539982814079070115476333431620219967258647453714901496879889243778526845386386326555160602256231063807673712704921881088854456782688968155631599787851375401498291584496546345235206234001007909833988341083542869589695220593881356212559051040801730722164551415409814990457447000765235175808269710054377003861397324388164715961279613565863834328969530990584068035387415250399335422186523773540293738897358928642818009582692737557724615941860375305348514350726204350542903447010729357908499611748686561537331912801581954386952613444142356002819956820171093127733880629952878233780336870866545159141010073473899493082751439771256148971848922787272429684861059232311781055900224850701870454099981690631812277365468616822719007253784816927138626401005624409164126224051997922937031962473661559039327353463161848533457896772522248208343091373465993195906794742778365386673180297228227670572228224460760288455235761860513763444624719720799093605426922183952438492247424599069946991248676090967376853577541015578162038596038806249130746712108190752427803135105737790209166137878880451400080784739933901453352137254834981505211255398239245089431179845171094284136788545339138333730233254205609124202966441569425459716981050486617574138796316152763686489729217816961508722016457615038855853671310584077529221988195704139321582359867172841120836421605915121668757004195546908204068889250965283555598453090391358723814836892003595527749298590271068304715214861179683792009124304627945000797542470703095047683604401743660778784319897831260499795212969478349012985693651652330112673449371804196955459595912436687039745921149852516725329421155794828664643780940380975771228966176072721935103088824654624928509742371779201522718937480888094887259393273321524242681215060073218790875302208788667874281785218175817132961080287136770733301495555494156251682155752233746795716345516780795297862431716229889123488287314077172272579783022653986020588185683979077433676474697596928377192114298477827403584715466003405892078082416314175816694404729502344080171292254301784654099963646208897139976469379708688377308985531861694183352173127182249995961537313095646926935553294023457218782472285200609897017859260757717996015177579520682921171959955599895899982170514289090578489344040823521134390875089930989926852158271059786524202697559855243515563066404874711904601728636240183795107023733704660168745080774502754125103281165308927892795594260445674147654633804179462811169797667685334995001585285352656820697704959321835264924924180783699100117275737232384241284379577123436771699438002371227256984846491004295417129831459178181444764267502836984457342372236125304026023327614622235590067260711692507493786451948537732337912524092448398563808344478617932223457319064960751881172674643449714971696290873800089704747363865460096555659228723610313648591678601026287229118648199411691935047030111951435380794348948307346634803508737812691870537516140922177404855457855252095681937999531647426045507175554094176450965110037536592951904680758490156895996646377667640871276047185845417877043622492374637751644105291306197488333335073962423546028512000682108625732624804605112372581942549647676600667225475168080269149873652127755654650008925067745846534609743859584648846655442523091861278022415944796181490238614065056738326616816047247621468104399569809458172442116045937030158874101348788422608634286268472086622648859771739731196899428705219409832543106741814741097171001657421213295694462092266897049466149643351654951244372250657834800107700486536152134329653667642803925643349442501862525824872178695510439089761237115214872934791397956578158041417260574242279851547168247297788300159035796228757258203060934269372685364005609354011122513240526927524893439917574623200345420194558743295713698928214955208858071155782212960247443095229920881935490493847794847237933039738441292017858192381677270735985474338421575806387162348006308008256055276444323387154094416727790432104178524075150627032646885458066632894451336870625666379739769956215598543163280856439317185860201024031275361981404750417254881249449944118737076939811135974008751260809201643265232897737122745458550885785669406786516056971151721811531374703442638071280210849272650319409942061433584073288248711270247065366085054061190869993434671061899060787799437472889694517871961524399945291320421982895187820115280551130307156387827867805743502410070355261374460502808038711167092748811202149666294797111423053307944251415691880180208465917230967509972445228459985575844749099868644003092555833306101519804326791731652750813639154248864358000768937354607104010497605814379425147461058242820907191131361850948407071639237145586431862774192186025988235330574782569641432756937566843612549833531330191485759960058961747749624341202985555394069661579547752966587916238743370975110902180623042317233657211556035497784805313665939690226026869816887703394835688763253292284573243944480351618652792920504213895616278878884238309347177904084976801340145783516200669351071834557997673784433629308061279598055350301781660008314443879660544713355146014442021697950602873263804089148991915748377417778907415968030336689773623377959410641556036576005149655503048565875646040396634572756054728910539290375728489252004338789809947291206291508374677305152374273209072805606565615936730079540302992135802563947102570786099634314838927006243710439694618800442034331017484041960955460290424800180550490890657382178763212860009054295129841737993136796836291842694619675666955536076976978632876183366382810975757857184229554864847396941880223477293306555889000420066245223897279113623871644030052763425039534216444552539471676776390774650135663731400135444232018283722031630739928695380958500527009854573249496404009565088343080501970292320192131644133831160960460687554921723818226449975864492031030240765196976449999415164603291785963110369879978204892945356357904360405347958597535546452293636552582785469908155627520023581091099822119965898492118959248161314154601470799209434687418604646595880641212189241445479036901251586737451821454512359885662258124044792041952172554565796815529084650593359770183252223718589676975163865795020805302651736193885639337246511475276830306600379404603011937653036618565059354848694901798679618321234711573187282171740087871929957555359472276159777546492008631808012258298352170430436572151668162117005848920435857799677702640245611770848436744618205258428235075541124680778426230992063466716134742385144610602918140681583064309732927478748404704676510566271921323149389176696453980177487118950579664675789459962908750967356590690069524815550631275407394967635071768426460893515375012107887085628627260820362438564846731627892821665331187190076806641272691426491387739529314911083345396798220181621764515717689833597335083910147198447443027973247421201105570340024897213753159758396746783565667722728806218183590136666081657900241918483872034176178128069267052479230462371364060587639110980632735032857342063095560705644003805532391512810406005012503139495606021254431570525649311079248337449472889214246301121083366835515080804109013102524494865284530427553844359445211776938778899145670589690398272263817489431745733954092826753697053639481958931555113434988365343119031498985281773104117016596629380090931797721742279161313237920280894912608589426640866863485883756273082761496698778807649090196935109890423464055351427056224487369626017590061729984755355796957831186973358709716217942028914378598381755678798031224775651203245350991263763411120355326869376229661722634512309609949608370455452226100710965835893475415459711208299817014804133268162216445056125373523780878873787131102046228712730512448524130638507624869877268628652359317046547322573759134130033230958033691495490021887491495052026796262912071981162177004678627472386227890032152862359757777184594740418377125321812373364417738171306959298161808224888163628017897131348673258408631966149874188315490959940668888097732580234131945133165055701882988888812962773377780121812181456982656817494484981113917158983196023785107431436945760296674505657054183788674533345375775312478990273677406418950804700645929538947571865369626739685764907286901274792464835439841769677414901117627200131321306825689246329548420762140457716711794905390957501303050071967531958858579354004328906666416554949157063692656180657215757416049750058155244247306657855933368200777582913199668750016801486182095459200653077976262317205464229563715510138731355042951410852813867497220019829959613881686973345684899150309588727079284113321151477476189080821490310286029583816195106186583489059421779356609298423292914861938700409043364218258360229945636849889572624323891147627596557117734553771757135535690781329471831253412711391649126732387556043231861981731835793082765688243346840642025934712861589986894845992922520230262195045377919778426154857400240609136922043187753768131252768334063600347339053056312718365927125133178620190987944004787957235524087374289958942960738958421824335140764833408913735381948622454391132359361180344510626069057908307624233488372256296637474796853069694789394464215283294889483524973295122372185841646281811445378419297200684217972107031795527691879736011074414289618276638357302735361061494960044100468514588949021087405756429990756268463760399874982247451182284820459138866280080574783312529152217069934400104334557302685584488645442985649490082868161812420711134203908915951928472419498096329994980485054497013330559034666608701378276468586580694720490630926950220643717373899792127775545994359749615393806645366849919906316803043990135104247603128721000058100326874120594942109287973361844818672938992189374607356246663394991565707750927393060886812865249449005195819447796037403486781346277670388266310187546874538369766258598365245890538782989290119281786427912929560166244699426256034150045717932979568577896053640024823391199104595670477828289634951754250781347032770895896813522320342228188263181096548950480529650442599912906894447232848920586342239445594885465453108634279441227260553604331250030785396889765395144605041515741397467172623767751927267219325471301958176384511640764912520521971263207387415697195332384609622525081422354733848702398007524045092671213767830942778270595231666985804821295028913288079428245816668345413360841958990213835051451700727136276823808398025224421951853146651513323702328754955406405424302176807647703094366875258290573524309421985698481330157199283026093225191823462531557164604108164678847682956928464239394292691297617989573854728012500948695749137506678399062453167479285744318340995230620833085103933576823291292591499646884587229968406672469778979037167832879916988549397708658127231561176840932045207261316563651281162481744848528578269447791831409290452587489464106099550658741473110083598834422050358004998864645367687571972986562569627329591551536700109637333077849797770672614770991619106305505870281658455737506625571413478084851786176390651076483675043337721054636105499921058803737783074975529964420842709668989958568005707042997822798160475403105195391329681550967406855009526463483282390480995980234206220253876060753044382917154315053350201818812317393664556156853444060417905393375390737161229975932933516549107382776476186045707111405564696847034689203307231042537020919972378614171683476685439801808847804906429836758949056743583253743792597231708777726545045047321635570886483813616195532738940329224027890562553418434709918072905715132368280071514069460744031153564394885148292122768692026284269413309948029577286189791782938301769713847542418059424195388031736655820870952046942656869350841311311920379059390028795347197950396096994667486205953170230424765962437161423785296124800164400612128072038473054043608605991257864748697669744483888129126884111090075448476086606987166017585836959056093635797732001011014914180057037163661566670814789073458119148402251283400104968525720609092497567486922869593688521704735096221975643784966699800961349171859090223155783404596356882059158797504584012971345961384848017713755096702256798422272866374461137129451987603834238429750121538651649952430019563063019859619723707625813269367002139809769611446495887638068224598870438903175923905728810856860861104740343655773774424769044110713818336189717650939551504202082607476820124585018480489724294083220502935127432360777202301913000530346366747100987211385369137920870598413160081041930398072900100835858424892840684801173393340454207505763622070820930050666313824568940219067968894218041056973256103290212807104010617148812505318242460604278396333660291913457796864805699382455080558041242527787070432050107461841537618979805290035147163004560397142784030060472582715781632498089845067542336647380401369541994064219611025490244503530443764830780738844956122744858768207773424771898850925191969945796524909136453208539923404253054920481163788528312418354786562850428268176453752565634144663172014936585084785902276256925384105280058263602879509421992341569209872184226703369195687496980114398427999290799131118151461659974030460054917699822552676888194739791085926240672001711234699202353809979261124225952155898022079761766966383465027943793136099344887732338211054323731125895642581714436825049726230043159602952936833952273393730123169109592071780103963008774768938646660543888832249711968996161933390148055573022465111553722272050871853422504943206640353909785444574082452818277909850646338957406176225045796891563355299527984282343439197856245823785087319161729440749582674023595757154632832966569746862526827601146947013980700808745578619409706957262331075510601926541180742502477733222201406378536909233141046958060403199655330434934807143247100109162732978157129481404255975278875034091444505743754683164738698885330715273960500556981019761123155298517705473868950080848669275525658134012850891938626996697310063444710549960405085757311045035398671302325990969750959972128245947147911579641280201141539154643608507599541017695039132296603343428777800036214580734037009382194136533749923090618702588020204162478221125292014578237679328570861035196216412023609260525148768623576799622329723276589286429212183990275049427065195479936954433135327703181728364270058493359839522530274075402234654113958683751264719444662568300826886629113666643017542257114071514987911574638316032635779971638666663000723369776490651730596316019805052345468987128424032723732084765853293052778214920720663053738482021345356349266121174338116232424256726481834664973612204662867689629604146043667965202064862891345481505332421441817709411933471006659227822110699332442852644306685698341789255935557744655289249690226285699712596446395700979354681858031123339123396696189630160573076422747631553922009725688430215471101048401556472960202853835514744467066459313437098199726189852745153239429168442583247383514291811740834154437147907039380376170498315192150215997960322381809620512715491296768355067926229287086302230459348695863132111339288901110316435154467358774192750020750730430290361448807649549060015219476804447646079955460287086537799336856292496559344574882731786687642649979076983744406190617689179921919630834088053306482045847847988539642011267588528018596723064422439415302121816201741160976798797753661404914269129686267681668971938999963148759327929277394168899324311240327217167422730234034052426127260977780895121827774080567528985591790659733382295019564290718010432833815872751659126696692956133193207134847784406634081108918681591393288429051692932716945933077618875783677701401211455744812352929490721114891478671343119324077724754570117559036882494091191151919933391378339771055866962940095861124431797618039963666343359974276812808555725817672355290815123781168796680223536607279975528177649198838564899285960759284468196194637053065918253756296497732706501785554916288509595690705162645102207522594155086755098670301622588373114569224134321937727520327456611983103646237203900345741675252680363934744807742056580597706613756898755282368785472375360155702741022682986162932929932240442500386983719263744294133657344014511097221773931126247904734992415482143090718963874060611926395316061795086474337304605961069903258747422037902284931185889396179873622606881711944213136100752043360776591669389105316303825130769852620511483031239649036649091067619392186476244056280464512580634517594465165796293596041774653257976434506872651148011597823304933132689620596401342617524500810418018785815726065993514607461435894337966134504672276119315249105264402313154727838362717876523919459097751138733882919936475009686758058627499313248213379017019104227933628835083302794320993825634237834517214329177531572030354587511669907311839291529274240097772959128492193646056693454837966326015829090632347385296373414040725085522149655576418066656453310620453645271129336488736249171873770680774081196055084255649740789458578120707568914721513971150052807489744796950315407422267614140903831402102541537627995925858106813528675215817537163660096081306446910451874227467276255727063433058527681143873169561836616941093754852749888261442636368355606477318647878523884390269001277825945911140567078395640800746540473387265218617386031364028653857092432811472078278980658585802244962427141588682800540059936089485375407186360803340127869644370804310179174819089444902705749360271031422709155390335188713772033784505285881878246927010243938802079946601788975057141861398785981036829089541177702507473313831223830793105205409504728245402890237487924538485569959474108146371487796593710063430059558561828652595021395737219191085454594097574153679395915323844038653435071621928054665167213066670576273766989205263124195947096987301964033122970163074019943042519437304141129983741457941679371929007289203417981650521728822942042670750772260730456495082489821188641185315560285602422544909466830303814271550978383387093891646285125001063788325050979341930854374781203293761658824094288315356715674168593756769562346721345174524407672618172659229816138790037928659678947585585893682613976565267659553052521385940573682692968330297567522271732328084313874772105705165366081804619647965986121237512121227914058443257403700369454259731823357663180600546953597666835900769361621182639416676786654031089566564766670079590188522417492030821953935125828452171976529675426453180429738802948484105095870376339366919838167204200075139815475851352498697669332413682483117002133408798934292582525105029360920218576649278797307711296701798103312436091157168379074775868456622446736039063722299370103625261564194630655118379845843427133279452682597125391099928535689161484800751577231110488029037239050638605049152155155123125134905937069054273979633933014124963513776794115831461263460369259018913783919060299325045456510356008077093672021295033446404305884366004057708781211152727742070694376731600070450077422612922282746983106839362379284180820446383643819137622196492743903078125262728243409911653352649255087968124364781847399610268662422355699136038553860683260260068459613122024564893282869619947212164211109306360035240424951300272738453185815961224862958155917651805793559191877432571806840731915767527488996167321640551516646495290819702459330215110942036099734121589233314968927610900781131036501403545238262316797457010513023526727418860643755066484762312593548494646251504762263281711692000184854291263685365478278081958435069155270650374964664115986839818260066449925392383423161368545791303882734534060244223192681521805491453068443608220953003240786766263614090666893750490434947235675219951353590355995872091324824702621127223134984064564417320371806151929390706368876927997790288874449882529626689322848349030046034917260507437347955662352231301519566362401865280394199171723310180881539421321370162917927633002443050269859908189998131297792424044234982033343952159916377280886134290605270624403285316295879806056442214532075808283294168524953762585580947924208541033812828182264053395028478586191263054022901025171071581451719618088590608519233811589051032574620099773202388682136113637675231438072470538115868510907021006302071997158517150529368035511893336432648419826414769489139466585495890174140082282920658746168230636695147500850982967632357396450165786618492228738129559384781601764955610922201025994947308826730035688327982329471734277743749756396001797857383562561308245538674365987984967389127531098420289271170559839346518227111688759200922812534799506379763089730965905143866241882633255025300261486545755794229875279194955102106272108441310479784525149839250337887822815748413422717166537370048569802591927739957063049257164874287830632266105743790322764539012590443963689707746196687441546011462739192728970558968668328103922362538311372520855188693433691740495328432644324847356543517161720964007424773995584689183534067694128108319133919581407136962904022952267398954084404739965777685941269304349437051412492771722966176276558455825530711896333821633324733681831396826883091053007776410106222784954363944380123147891223554753272854361655723961089645387050278708946604486425813782806673432877057863733449998104206782848313478920203076176656690312223418869228703558632516014622221619320057034194433619646217412269988697537685857610357471294008932027875413607898132487615491757469696063010522091648243406092172968901963918166945450377082410699980699842791006173507247048675556345670466597500065314859422288893775285374926870183322095345972065815496868264399120236683949713300825640621420053466575358984303147371727226269720154902486407616488551868233749855626666079518212608948521341322682317479150684552350518709095323679421138039522231402055187851101075817221458839427376600929520679462546027596515733290649916500751329537224732845361661284632144917929886639770023552678447512097176075805666808960666419553458399466288779156506082025995476281665486198505382300076965046283243249122728208147356271988386478396289676926515530418930570609760516636247611604303708002893770321613645353970757008605708070468284567967660868535279228395989431556708405532861493776263044345826795513142134411831976711942423631479898539456252828821830150912341222660947705222482759758020863436182287256780592038899369312359885537392211927693043048580880860955017475981688944138050323616544718146306921427969659996734575767817279226319423914092321653837482545509400681798626795701759234434739561498538001787363065534141216768215808961522269434699724696932019518052783551020798482957279528333689058407908682863311620115599969944562594608507729654201996868744188484775157149760573698363488351436605836114922094528899625794776985563502597570801458413843507527545229332838391551359017109951817208048458094199907020629928872151189560992834155733207227210822127567651051626062330075334217220155604594257530259146559078071440987491658774370778666340252190633734340053971722669253502899873770289988696705196911719991280968237062263355646570555321360464634455998175347101856850337104767959551059087740328030186566661901299827740851167279086335783367723648582813918906760865981121972488471485575448839117334141028514993355405081461047634875918964860264687470048912247806600180685237141236107448805754581515627126653016841810834002133784398304087180780297721596196987778387017197011322750470934681394498037733811407453348421938911798711613720741849119632256740462031981676321400341112805328943682569750988943172382604714605977865823663718867093143828944808101355710660904221066075471593147845874483535259468597298667637420505860573277727361005933251289843341770919922484317684786246574808919286790623786307171669938662020256845878381563213005774642066271451797212694401277817891062019958834318907585569252970276687772227342033546061017282675008752199336503082137011899334439686799443671914119784371999911311849778415476409434431074287535705426468426539933024697767297217344504555003546079052554896766495579922044679927259615817278431930453510006523872848106121234211675593995901463740406523424133219156352838750436855454670802128608975347736125178884781357519569610342176669390364367351588394559119460028993742656886215641547548656440293496321897007339080941770546129648208910392450351374297338493570020022137074661306594741296290930343984310161322635910842218132914900614923734838651866542995638359496670040105536343437684693423593217920430658955514123425528362475443760070674495854568163242077774221300394793314689496571770716613566731409698199079153099205678283572983309105082901611435988206518032015327447172681338238404324971043373031415458043107905325130757545032696770998166848614316953252996679471770859374320234144633258344934356748131985075376037729377940391696616750163169140509308825941942196365172166670189910512758942183347052788199115717548630043971627323529433438205674529225483736129447905484386989819917792257678589548739268507455679585656161994375225492265822624499698271418999116151032037766084807626218005315963908386623580161686486888175625071733956692946942846302381702604699476927258441928762466428254564420875826704402725773439914299339589617476618096928418686206678635743516902629733927191781209441052911297859303485094540385566456341549583809628525642052607434261341601947614228377428268286833769723842872518919134080475321683466572225732630393074906521812277780964596211875812309207632695520728901916505391321426335169919065486938901153072774433270586901412949271393102588299744543637573922779123825491083327659568152007844849658333896362317367869935435657251012325392134244724743832595835655154763778677447433515764209494835746470112694532921708422996616066918739305775079585911542502177220511458920135690266596821234084800151151589182432275232840510034310397957416559794679735920704215473355922116648024394797567051087675452622823985245429540355412258252114750294694945469247505276552276701083887178690631410848684184878160114776974359452142873000867630138637121309591107363885331858367132023094781069365159991887996163489590919989665068081118973671933758798696111791326165193961607995003081099488871867300423516929225817728045407066611993723044887283709357431831756242125324147991440963293059655703375984337073328918960315258093747649331769779009349005137439343107549138106801718485811469908481369699711041849190170452886288849209382249882519070425172681592608867448140106818724455155373527701672256084689475098887571292568004509363973844504179201598154106779233766826321486865263114758962892901564641664278248924501638595858026027236178196585887910457968755011542595694860838574200634973595606000138259807084898054910263945117429571421745135366976244682266697132007335743348913331822686389677873831870770799904450971515225601660967529896571797465108583621442407273254728592237585330698254037776611395123804414388997126119400170787807359996813535763365152836997978564464017681753477480660590223036681424637821960310044619233764802592518617431431611270543102807409494934134364255684319082036914180642330177322218191587606514719049180829134947632868374193735726430498954346936550490589498413808019838993616856807190721808512397308713483103909550645254983664361561918452267995667119971537388838860123300196973280186887854074652255396079571875215583757144321465315907744795088478864930050970742932442890548650517090134666413832913537137831148412432699813866521993883629826392940859630668588433172117296898881682131080712905715140345830246670162604967062441574848682467178496936446560458226250112672829976381689225152975304318097893258214507396233818130089268208050742919759325158811044853598534236206219398928178287927773649564708050176326847278291036020531317935428448652546457123468973828525862053195124111172345372293186650014186322156366185241373731216170556714144782893398456063024342790962238242636351124501597319984112721550544570535901070475890344002823576395561817084757917136782416252054880967601732472151601335371352499943100865940465134695229690392080307514800998994856723173021732343286457053593057949631988379569918681307840373994250863545201529917955981310435479326856754503989431192395131501982305729898740893451684568860494292347612463500132389139387286886562025350271084351404938764979140049692138264842250437557982423810196576659856596648605718020342336206278199063771029755642475066506454591290873687407680984381057254195432225734324418101357581443738548961063448712080292885713566449445561066996043573106465744744222837082629076128926653846669663474192619483030874582193200570325837737147204269549002490974972936434374754050091127074402346966475923125575824640823027848449949405208427556332239027197073435581151400849247234733474671548399575697342013928532582092340823347008089943159602939446580434701109101085278097575327056139264337054914541155076947535337459615234220102266507261105653097542824794304647443641726205420609655370199360459690602852046247620672165875398766522601449491533680698606190916835136338092906131402647173604234686102122631468374115182541308189206013779191965643011317045981938034741808269375627747182224528803207814288368611869485216993451657451822313682419088952619313933663571332936476989056984379584664638532687723958243763013016299408442718266439783657275737157693872255178663047000871349716898599064607077677251209858974170519715837760082903810517679378586906077329260200121441118270700319293605870148900984310499446768863852413259952485123010858171250269038227738615177281571189027831709070670185523469397513335744367977367426203292895695300845133334062690411602276475784063911749349479905800629228837165227141845563476841832949660551322668705508386262973839010643452668501255307514894765904553255921515939503500508620438443757388425031333580071998628018047008663385710979674803972523096898481137387083450468354332619598794616120302156599930642947304922721272724765244589682757215089004384971885425432739081112011002168086136204412289664669351832778320019556899509949732508202324291723748718204136829078784476319773938030800978123811026784196104869862637542951934184371407375734495434127146285790986257561708031655321497150562995737320110626374724447549622337561909671395925437280049317761544066174053543546490088197462416171483422609476671839669895818090270197490974556704873871654267753836113450439887955262361719687575902736788229502796760755125973323305420567654491566862509299066688160843731573673923811278488520701718512181427760040826608926582810711307661230264300200407668395572686935225659848410886527710268498912542596902048421412688448718885910474412097745434923619395059303014843671275803990916428361761473282415865413818686958982239512575381699259906087090370909202596468302865332014537491565859069355712992667651020195740194447955118270008525679225123963716690641126736701131594601535246920469872627296663333827289835843699846092659451743296336346937826655349556406317076212685097326839822485746364718783176144458137643029784304642853846324855437983637720557188472462764122819794681598632529556520359666813987468807592155332412870423765490801247177566238048394700277332068891478589779594811735128410019483972586319102253932192051832420583525161082068426032803070472848238298762058275044829388654580141902476496733641802703726184821593903937791931006019744329520320603640120787622931052832600828604014093582005213557290072930340755604676755973887232225057563473240762149738236118034635019524233216452118685080500465398003177556190602612492342859823352009151964392464640245015875450221968167438372827930216976723375021687088503689676892496446526804057422439993363616838795408898273093875742534434653242290584020012265268188586760335227411271717975770662401521032665837067832332425693447512791916668125424400678651568812426960072356362664805063642143318339488606183991026621610893283020154236011079184365807848806467857114648627650014091770094200389951595095298213483285840234768487836278856527073913753046888941540502841004483200456104791072753109310605249295306651688890081354586167557791701073640421016890561101226454670024295609160744531042058190872425628702606112916642426538182205123053992029688038587932203172389823601249491035611343394751225717648125447130390644525505534416521707859519715544417111256138837539290025714209708300271608860497453519664989494885955882010164873327043722201931467070139174441919247589665461855455818862384735365825961820192943519306510926508195355403695636549805871806111207051072077013190628305040746763333899960979490603499091623799825868721587694168648153666131588201715375447509917993546491662390218152987917968133640913816107197646560313413540396409894108035321111522435183925120317133415671663066951620694055296804700499050578749010014488742108545892895356280170285264400160107062379933312822120135503358651592177588227912363804617512255296551504906483684114913716711785515848743152282683022152148542116380807272576648314743008917256983416891566353396631815158522720016010057302474958737972036864807352647120644296480816879192415289473148383335212837388782651158271234611897855527127499061091435376410986462317509578850040028641209384967514472835925246519106345503700800411868600040933602034653532698145936749739996243963727624306310734970520485627618423349482021130693695549102647837953968237304835546300558099235435900959939501943735858149673078075845049185698720460879609598279588712328687809938834816348782509830064752768440243291674646701301531184406606516775613115906750210886501571026246460186628588082011280956320395022855612181151728894923076082455213692467045400847168763322578729925104588633581013575330054779195598014792323113661345500798668573801853301477890331430296084411377352269346493362835408601711055301442615208048645412627876629562231198639462696344173153917927831441105948954499665118070099180508953701751744376398029601608349223098499125504378518327625791482743051122759097124418370451361872080050391817128409430131953091600228448247064015908949919130208839385532554543987441943403685614951069485727467855548057432809691929130559983359346516172596640788313442308170520624673215396904099028634095940494763639373705415830122196528556509073734656127310014214996694625899110056757807175629138453453021703692523275017457856464257725461233859978497915320457930560036500474782016106051969526146289040413071440992733501622157156976953186250726281713153916671823041229245682876887041255603549444699319479986612545980877896406642124380250201904758274118530262730598784330882611838810631527771465389862104142964351490951844210028981422221796500814620311578730393388027648126087377619809713651668863968277594043161572331290008537327331372650205231036359771977865681154069904873512686688134222829072903487833289503004724309270369191839225076336961721086223827261842350297049140127876025416784546446688650521951855404502095585036606102608420295963193396156261312554331257570391457830717271305343550427701073807822576816045506834432172049972799407026170595599718058658974704678714163945984201998441442010748409572512555196696070628419016807890895951022903051889417444018142382419077391514241991694163786204715474716287449649444570578770107409061753648489638528083132061843979601223483162974827296960718829739855191791514374095199101764512459245280159989549432870474759335262779568029959171505820475470266480598380164824712640805676681172140301820231698674769212944001919876106905065892099629060062917671098770565195617501223048741377449085068355159657981715963619599884243564135262223802649065798415378703072667208118727112651543436421868084710507188886946572030986062130354938282776319381313347153673243482514418438491635144084053737086414117530454946309098421759243940477363534855867635516107414607342505071470898994057617561067781545472518887348928282996210375642564806118074806943945652670372258307435318741073292628329447199797529387632671805699597586990321611195771156646337980864867915099302567257997889328457066141135737946396933710861328700805748425216146679074112223152646519978385101387921012648735020056023483346663631337818277339354572219201522558232701538348244759718861912916095281229709778910328256004489839480165873504894088715449380837981629744605772655731620610586005507199784835190920987150885924088095722654044136321678567661547142630394347724173799977765535321832985205312810453378977832056454670574211796642211139991472249856692099276423653242502477825818689656166190202118866550697398044632413304971125206729793007216825947289745183062776491322883830286595163670928994773957161953778791461624250909989052406850863952439795807706917095570942575778461847844817461098596015645606567052099507461768367827459890785121030251762837970435923275762782849798043095092642742164965247032283014269209274489799569658551303911175408424788886501004860765673203288623408267961657133089857190256173168009826064452628982572341546455371104102513525516810034131191518742313135779369800062141278480290446823092562388117532050001656996801676134987382602734451408745936011214092137888168361633007710290165760873875445890593270724963250605149446957025571693427282868232306065548130349519116389864841210670483662635656078334590976886819331692472688839545730272621475653071164580729727843526381100212767669637537104928710268055515508816101704641487704673740138871662656105756656149560735097705321004264088122107626688432069878291222918261441417241134612840197137771645473789926869379286637143005715576985253730009575971317334151419541549282182505259068363330847559875950713649610601563991613405931557717954782299984190012001891986441411639834031161671670875128868806948277631418707420488340477713741183807800312812643803095826816736448542140448266868097970018759835800665095203647661534136317624393576562239890546631014874894781208766569692400016236055538235604699942557445542530994547282241436661482135559263594985252220507434175647248653753786272117156292157355116770423911168680682666336013115797951559501024530482337849686671629715388776395444432564568512472884618052887665671495692402650481533840427617947130476865479699350682274113509334350639092792932312657690545508911768539868102180119901617256642861197421869068121942067713411475303501259644750975500097800262925415232629126901822176669222040325160034474384274257648533221778093386354648568308819159694466235858184929226188721989897728324527962801189503659476925017897079659492533802214341074346858909594146019670796290627549011751842026013696191026243720681915822394989046254071579190682680808193852220977032848627682300374082419465071887942472494817964185982028185644695358960649794180370633750897189539761259749464064214187211728391410532759688439606203103442820457574682486396659997563787980537997083489682690672743994305986441707913410032866369107077707991643994343593247122056184348162739830201186142554844011498078616859026985750864137571340422831895067062910300571994741808294490493664165881924297322276547312794041351918880321255320184730293364514332801583173535929884471868349799003751332077891457173783362703327584103392943973966595505928546608065071627558837151820811998232954638006993564451524958897083281940322764516447524046391648532546717764164130318692162589012413092406069701272349409741665706820319566757256431413627872722655217280972438080022162625811414161484816877625276100605110393596658858448345474222146309537519382500344436350024344790376907990656464329750309967302465297653283731042438198044109238563633223608969470518944661711675473871773341921669358310619676441796592797549108434226110313926834672110726567507534322592863263855342436402063588521311238040373482664319544826865173517165546425590477227324588625342979712877511936503506189213000548489546513032556912136089397615532165831524683003238201236326135051819334181710846144760745742445279947120956887684908041554348240755648902878098047015144528857974183963364838704355135347464831375387198892558904179702613874780978499480228415199378430119350540902937644038194027571514309624129977713081037656229513550717085094396122391070210770946536279541419364215562453364786344853401980843727544405939317043539762329025944769588229221263391548918334576240559039787256581307065667785179939793519675729657989194111625098477175531170209313950832133641861501468437347135572754948691101021829949142658132650136106071669004938426132555190120594376210603915031614229316321572969763971041193818053041484905362436729667334177827089330531583126617134560165301967747165624036809337364066233055155997452714992705322047123507359841318814778650526221495260938452442248226924072947061487211255187232841229388024068056689964827602242127671487453936167954487939768058198810749080004114797012954205522691273347637821001895655553516964894281936560476747300227747820123250127218050921463622877220938501766401430570826320536357706061976896510496364207864774920058758985384698467597732907249850888491683411880742356963198894470615464100406489433681342990351794329681108922595473522953744297495905883852723843995977451145787875975068367749894647447999249888348155990389607186728790626391816214702085320441638458125640681797908805279317263466928482922812814386215325244157258746594104899301715002333649586442318094848339915255467809927687347300259162723631563851323650418526714070541255137944047121048202602892446966597942395646094854238000191328003896625414430299903550561551040283887142125687854488245962028183277254997549489994768756879407937023615861721421666346453923508539623259945851137549895231644219431106409188886097038982484619677575334051688678055880066472211127702306368838368196042152644696765140170328347297528519491352264002244269762192711953191433845963721959117463548470116862203692496611108134774541940231599830360654232960221384828771367424677147849755793091692091478834042535623936244506140978800474926197754000323643689916059906133126306763569943349863915049414435640208380044387336464821923457055932473148744753675365843816133634567393477703552817064807537129926455206160609400604468300501709572905226676617991078013370933562845965487140051848615655060564837681768357676959224436289329529665172369075898802035867541732310657460935921043761359050517319938332139608546188723663147834999108044163470069117148993344726447169426328101167451414165163497614008476218940098312828023028722863598398023476537244159236279921986987357083390264401592059800768152539428158484552957630618634118582516333149643438238327411037370720851500042633548215412150902660032924083060437792798244914595018550900655902087002227855399006036477574048516547589238039962267619395955690224260115609446075055098303968531487023773117360124646271366782609029590582646196036289253081772620513768249404102691154891253018898834913372200215801590423730720120788108601770538846105743846892141634609924596543909169506920064033042518618084085680236165205756053558721872393512392033659577995428049167155088425140356419777655661555141277658257082679852638873703255712616697156178778170803468545611819119192523966296986740911022385047492484472349352249405147241416672073366571553375295619647375823614299201054717991225015128628674601039235621363172321752320216401273272750314595427044031119857408861978956718604484228018204612716113043548944319348109750191030220660496911336715537937824581049068791773948228841090386704603124850621976024790295073712365912749844570620766011885626012411659154747461178218145731603321955109191866373018418927591486749447403179977516208897825200788796284512768728743342228630921568516065637097130432355983511984001816158505399708842799686814234922263357153218595948914447800534459991274868658698531029150442253246927782649250991781852818649379021328538707058698608731974156624143190995347405518707949602432760602324226789399399819420644692406785654235189496532958605332826215476939456419466317412005568816328719483739782229949345983424081760125622442790615460308969005275524550352193968402307268587629216281254611198069126387336326620463510251965493675385387695136666093047168106008741172030202007801305013420905974597186889443071123989598798074370987905488865654331134896755352190020698810183870797655125002643986630848388289370044118273795535139905457312858348092677296462125477213495474738407073334223608815960431935838186826488659830457708510237069320388199884578202289802359826604944323737321058929064893279021480810676391484192240218931382533919696087682362638665691042223596880252177554833929112289771683643907722797496925928650943612378980883130012232224965655192467056786675021588005632189460614970331159319314718044771783623023730710795189929510361052807008043451886631515236545740314373830829164955180020315000741005094885405393584866644478147482602413189305885742335364433162322270458398941958430528319178348953386486258969580878991635677482151197596549916626091970047434658142022198650955978453369081893248686677256120298446994213604799469206957649454878869349748367526849218186115210215034359359043629339102977837757299259656076028958705165027395631253023878720283631268582872931170622694838324809316008515126251994001394539067230135631697499646722094927965990167316494400930376417879157393267473459381422140184402035886554146025649498010943840410152978497585461489502948739824042482372313250499003206289273465941664523264365773809436100966066736650750737630180405353920949060242270301937259944564544030524359907764582065301338137194890025415045532244259379465346608362329532241288732277226846788613801952847458514617488734309508928144924039558647455155846988452170380833818310138805497639473007252163831619406705866693395756242016692588169404271626771262848950348935764769583796580192214713330228127853125039849290962458466658755428803876981826561430233904420716043624812115308544381577392800023879946784355750694542811643749626526410424249308191170968850537936393380460692855169591467196418358133227666085606049100075482453071718343745522769276812255525936485043546989151360197373601619076197879747210795334868510324492424399304131766647427501110395002336928405622877989397761688517242397861108910996659670236348444696015995714590765713736177347579773297638374552714349429985653844692829103705997518955131284129737034421993624415314118945082482515456946615674255989791186536252745843782070945350939011391854966465448945778345621377421664757784732284842481168082418169628592107088013961912999254004363349050802231610287315638115411587134116036577171785673639548943905763339641412623058150590292636953000016177633162182324124627894684013833398269761601288992489643768277870903649414816779561983323205666397788979331137747054862637870115064472025875766828595165941333476694224707536936734344413216280961780276678305711934567757865163856876104888275483697375986861750450686236165150672197823268990048832603762915722048409888824282369851076063427972184711988690470513075352261415033838842223876118522085288792318402555598602069847870943532938627453553371793649844670128918305278943939071688380326966594341131830131471433180308774438022600316106443376502546802886024522677726378311763511046761714635831698406198212580651130808904593694599678396664820571231061851999200469015477357038010093146063280985210634473756952933320342568471313437274094542313563319133566841969568965154247837346522795446384345707021389729864803195545602472425245205781246459639743275742716484368660100565668167292296612812847721586923904856153862599966426893346714729070640941997353590100337532548657276996885943749041127586713627996035600163170434331093127072434443613259915472374794430143510248690250588399501826015388661936378755413122389026750962276489619041735130501517772054319632179736825389056180410640244961659719783297264971071065990785643281026781683597869683660007610961880749095608232494832711775515357690142437869938148604777666041496673159189265639642538775223557150320052491995672976060079629336200089299207690526705978957779889558921109024950161046939253952386095645136183289847049809590012616093706307120335423801787423162646400184362098139593583151017739952561889377783249950996845479730583909582242431510660316994519494076176657852121890636281945560697067754498204262985737042864322239517016313652775223454267411023848387659280385836452305736007741899296703057608258629673804347585023367490807338640705907032368393655494497161664271182840696625484503655932906341998818796995786960693207487980369920029904441273133522325132451332566789839380816547813843516143311581472679376185467410857690900591211165317642226428548927116864767904079448265675113608729685037462922863741212104916039567806198809051396009120427502393928333431423818678299805244240388414999433242222803132586494804077353446939463568566169705104568593981037967114310703052583894327057284170029729754352617695528877791368071126188895081082348580378979508821532752921127731625106631749561827991203993096493715034137945759974404148250546735495328197486373896928034814894432823918476391802439312439077386223783570036976963937496842633837791604267179077891715621174153778320552109735986959999705078747983361071881871487568268479284750917542743914747377029795496262599878175253371172468719582612305349454235808003912560447943519306059723154534035842426575699915123981181626976353960797970804313937035686581717479232997554765094389646013308495849454849751130006641275706323512941748881879701692586082559159870323329638835923418587748458864254938966584486151266901010964855364667427167986866833038824772280869124341444292405474760279693358066274009990266519110506983758330007533505177602506434336081270659657982348556429374162721373093894019944967787175701538184343758940793744842818620147179051081594830809833760714252168380795272994034223629006571010984133778879694959823421772197118770531523483067828297365864204783531385373422358511370041817696127950316838512113583920961840917113208021108447133858271656841274619780230921429618629989079515179233654366991213611927241612782045231682896713875499637961819394837043323716572230407290904754745817862211550809590368474016306886279534353533998274582137197809098471183580613569028379967129131095015287967417591912107634185847189771126399308578533365924894406630251317160331395651989580245880287532617416496330545157601119179719281280920076570514120829068079392179128679307339080572024609558004803624731578429929893870591025384001123748760830242155232319040613539290616912665477331486941358222068592594977533357984933794747173380404012840903479057127871463563514934711060692065596682473092696888108497722535349141510260665922259702205132506028542182230653766077172925389587223153771315069516870637697078084786193028741450941427760726920789136198544346609888735571414746548592457449833118152483820431701091979596900647692149815970656656299342455328438073800486958198693082552503424546590916685739405351190768334070077474411940295365575123164584979568846589576938637437598264166183102899476003036491846991908309847898761636453917642157663783813371667612541645780505827573456617173643054366270544710277302398994874692137866686221092809299350827823661642209621921904023921542665874318879658451448593302152494164431654238498709672980598709666538580878286866356404244611089042543542058159100085127214596638216398451858171432933129909531998402333068620982900580431378882068851025568121476578699933206702314842268286686820291729698106831935411983469128381780722212370343145825628695187781417144625589426952486957040971518754175095563742451443560363632409421343308803688400655883685415679207102290626548381378296585048623348940915503306698090462081803715630610782396832921798751845742007037163776456581808857404592205668855706371105507849564131830773893363565978276480693669036673002812906606585125413676562537710828445248141940456744664365070510210867717298374689368299887714551653597629059106369591437100066364382160287393442603613636277345475525150553747662495522356445225207679062069061497174018532800175470509052629132119773892543991932745963066338895102890012193398017605154091447652061963812582876441012548708000790377481307388394297642954947575288149531657322916076385452595530576305190465579833754367484910928012207958367991835928743862425805917065348700939208285733501583029511282986317670641922494447062660520164227618638796352912907401032434816884063364101832115667798291455114983106810318460913637709668574743419785911692901347028025578831302643558076153125137535697138170693337964764131402872264055301871732159224877314065562816284471612228844445529931443419457355905137062186849331365823116517170648019636594043844041192539265178403655124922542378504263768209351123465019817389858740317519636672316814233808555332649979753157171640809104506045062025263306333477371066541207981989085844032421612188748833859309242561153380074355794939954239247999685943550617124422931430342574717707378406116214936012100486904865342954272536612344171217658300894063518469822578535892647435066146937085986700244489316396296458258932124671548172728155356693607663164824510066426838607913328991170276402385123250609596277789175173629749733504872224752142722679247043832675711948578241876169744901505736877797922806289611868641299342182510037232968437957472095433447094751307109375141690959976216186198208589091744484224342650459253798247950418614442396313437110187440492516155110573306922307754349942806798864897716601194759316924110423865962801065721076133014488732741181793509065821951702265168610545706215168074069505016758514825591078161608416737090489010863254790811511147341917489181133078578105100537952770312090464922516239824841969838301832337257398967449993934992827706743862139650333616711270497111664155711311698230549610062489193371525155161767041879533646707221820305431259114915442458061056247123024642033262827840189447293851258846431805295276433752624133347864096129807130970741128745228242696824791588370224810364440681607852719855259218491148332255291055039210680879914688327411655013747630573084030650965928164765336365626632434771863550686723985516586374616889422097460381060489584169638447796090125434231099881572085943248355906374876456672034346280082207259700966566038859098599369188697837854345825177802225985552524009290454749276833848614266044714327178161379473197822281799300694763192152246626147040286053747142508016633139587019958714388198188639500434323005115353301981296682462721811636990513408739746982230678140944730548881826813097557410296037859495048304946645658989558445697366807900249712306030617425367831205340380982265662204390273773260621700531483146583134232700577631584582282599079604305055865053474422362603795917094947623400526778880191345783344389590592744335613470128262271686895160274680643760343948327653906793118578100936194561907812670066103021019208552031769732203006137656656579447574414244974261483064156050128345323033221106053533787581726983661091598024179660279604759791879883046460145959003928330352955807033837877300965618454090964210187862920502681130630008989399761919045872404900031660385429045479478824487788684479489775708535585431545073149155948975955928812996656949285281462563029729579490806295718358148350004020734969020825016097703819291956448746240032628066878827656392758945218482265420230246874568884400850111798758479431125791512996365770125371368994880408884141063555780798038442595835304422530012475599073406435087696239911255389967034304185095470685508217324802240201412044435132208287296967863055831806310819430620521129864024186614662708596937137583303346733897945847342973547695882572722653554650607603545708529391395436056067217403277724052531241036456802808354588412315743002151681400844654833355508651950286127185475691726302112838712770604367341476563157079604304501098544268689460144351725564589732866854880660423549645718618509891562749820295007375068401055544005037365197715043853827877971671324211576065248472189522829063362966600557931647645214946191283467895620876424278143494287954539979635208272493334339505114513363412982748509965817367843931324863413931062059553340844443663029847054860315150910180739283782842649484872940126693881460413600853159259914978921871033353692052013065005595416475920349650417573381384623732514224186843088867456122236725473280008247732995190586221407434022392259726335795335539836458447344255429489176260859146568324062478388078015487426980641056942944093218566712939326575585158185785312207329608238238862141386325235585393619268166674738841440845215295258666245210729052795938098866343159630335122423949415004835603466314631769035497171987044190840805597087929617335938619749437141992806514876786640150795892597277601043201899865447590374733945169768025394603894926811564288364508531649739796106194827537468676296103989168745045623799979582968644998605655772971405869921990459330224252647093249936343531805965609727439014492102879083918071842122391269344836552940999416783035886252237189760052042479871232962322308480174743145601895017152215839797424405379869403668365984208905284573459894658016287456061494683338659406288375003383211433062968687998110771344096986050399845243868459810346192280180320716268709223009537577866956139612390100903594131464105526777760896445255003442511584266555550159760686550936062424578986160702537302165188484924519530567984448685978207224271473861951041953144874566043858775274788393678010170857804538911301935549733254247886801208949035014214942513790524654039148536562770536663535413975665186247710260733612415041248062540050541808738661022438681888722738539157839086957503046166224813788063221165861357047617903011812388565376814019147206907995278467761549434546500222151828355310457521576168263053884354321461428272932384618115009551047028118822394891699942154316123189654426369106230306845355610835453693119626593477505047718263644937906920134795355925365055203271789198504242811507973163824503534725582240409199751364656293472251973947612894892518978182203616366089202800641602240241863476869941119958119400896333477233115245474864568328757054423751210186023178667918489971145833040592145953706727780638796015549425537850640758885961875796820731242158066231201870009329289401684517824401642184159717401271824538676309617444836074588304647951527723540407793559340722764850376877311985951127249721942754839301000876352543472911782455912630696887506254294109598757038195027425765592982345781634712544683154577560834929126315475716823480555381581031800575926051282651177818980508797023213931223387271945489557100487089344663897618789387948027176633761953683624616854470098672108896276400220030635094426779900524894521176114109828616634654487475701894409236756788361405290649946427133442995353192850775841347759771237440746814010223010458294395716876183591182616393768523027750623474802204299518501833631075142167446384330511667723011395144326655371941521402830977896436778322080463844243511183015270545020943294783163412276950445988214864555808860673339155802754833406719753656674950325465577577274306793786126730843332132072327930410895510101331119319829770250247723928877287356471236426821359640722665577942817815399700250243545041520801776124514374927299697230217621572379341618595157466038425989687306215359642269576578135103070900843386789393934335531487457602426991914816934872622882764623214734396422107910532968850234337498621953451691524678248485034565672462389279506223672835250515530401904278481934097251400465081580819859335270077221367086636060018842380880274838076387396045844990016744377864769599792651737657313178634871084632474777000074630224588633613933423656153370285142536848464399802264428359893019676898438648698522623216976519191618132118594064056919158655091625973851508043139281806718557020261833169595054400961754628041829474726197913518140331977239052061166376346069089298435394326819566766068361195361935092657046374930962423590551355358410437293399932409396344329471519869890387777230159973917715988429260152286804814221040578799684784735767878030332998914128215518128382572707138835195072169482373363411619003108266386945420733737347894899455801596955586270550130990489931482781332745898635216562785722933116250974515682945680675390116084480972014012291201037478795289632515714525681818892408966954981878777627659768825373487324288778301091097399165721041133402829139036769977286429025847368692988547568893316443111564619509401378860080269461162061825810967078475678927617723597930983894436401587285326624383789295832733069851010008041638209410309518721222246605125658437986011936976488719878082381478884729469008673156568940410787081491820110802358755520117536526617757581361782399999607061029950821803388105960125333308580840176110713458755100812300032456841639059816647039471300086835757036326924578254606045969481677772801659087909655516753732305224396402026708524925266389888623904088332431334528717407049680987173766068566443530621701558109401074910394448981023906691756858057135806442826854952174367757750869969702518679502571164132477068439408327467932658364448627874067377202970054658513465379032549716360781734699645160255880473425373708859023356612938562558014749494735225874017319747270582769166526694719743914707625019550121177062837758810598068877712091485848651741848802882890752879034348825340199080077954581202708949379577187770770761090389498002616033275441110877000660903212200198590281858070659677103503450248662592284194727390389519802795273913371611508110854958618262637553093366848493209543865492736797925143219156983054533195903863899299156629721901105764355731012640691545398051047284489952925692454207474578027853837214893302513467752064753427819891647274052718689098387122200356662736873084513291047232582283383124572417764830760767430669211725666757857232503564436219373842525974088779531131292741544511175708446835707625357036799092580702465296556483469104353939682611674312067146342716857431190689107229612036532822631560335526986252210446582471907048952290680991685560881281774199780529783336418088418428757019508212402185900327640334019757908741933825432095289376911204212791101430852930088147344683676014279135725040264388552609438835353951665645012841655620624298235650097294563813358538097396087532126770428054662886207504633080374427621146503291052332662790003031381133184211756516266795762661209475770198571377308328487160472051646877292307640348007337241453316760775902988668297094492168602901646881329949824140774706464613501113052713999195977990692546700532166031878038828333842837283042037494270963655564452691086044186997153474517951847771524278471803639391072552724821725850631768726130982802637376634936360705769901818006838876870259851370878867831250004229418987350924059534585400680136803031105190564804301291071548729420240603294778953794246332018167314614922473681496930289536627145939232571550081017192590425044620067392504173892591265305139528066012782137203885525631767975471573829356486677446160023583743479175927806639224234400889454338235279371912370387937298539632038579564603190093757444274667332065795771645647239740969536942346817358224333003350893342727695467250686750990451906019993712770629907783159779150029982133729944380336989293139177526426297182692393330030188100682157752923710260514098422768073270143957129872880028777055290657737446462256998094735346278965917176301400462078005300070240456237328346324758276053205677238827323495439485856768787134961848936293382251901029377798318631921256622390328560419018873097278162343950039687768072868821650063327659159841730534286625890213945421056852780653451005695026417248223778713225730875896180769270122582160965085558227608718142489161143263541837227496082974574668478686916864300972536800625819411239834521756426260388936997911363188797686904878409655692984778971547382280231194488810683448021904668360578142802253748886445563588806165420747783766034497999445963649581041437398595956160909484439630790983687969776562385008123245012471895654945820641241844993859787105781904811745359276198240782540695202392364810721077396611857537881015011427214196994300207360722019216058492875733324022448715725188478021483975872069173366467204811307972519666734973002546292006407556259163816969722733331898079571493111856301804106894586349996130359405202505390026116348893473653632275583112878773984723857743248794982266773236490339802869122356122897541071054033321940452070921344489565328105555888793815829403227639012490785761990605667108159749514819072767463276759632982815239944214690867447269637418013765982761618274110547882732392514610774862547303695642040388890345826994950406022587555871293136007905345946617643090751113489116649641235649017712052952302118753367422204953520677461610243206110476313358807936065480044987560142626673439979810965031409913291721447173652444761257812787427595594644381049739720674151906750339512689271682615044300655802886366185999388210809316895147575231771943483136179330451135243098687450553532166640445228403487965426605870087061480831616914839438611703961403909935505203780303547980187545615899405071859261202058159542447734753192439268765718456424664173450684393447259090267753577149407493184729798879879835882955978192466406855515088366851181503671485254908696452276019674472905099523644063806001225775026133341139566943837124656976139177129593530345294509407615886384958342940397973066258250462286542366448552039762597463648554434029123294621633660857407160878744575318203775452994564897662415072516377993305875418011335613224251574050921994278517984744375005323332795582056622613406509499820855797522745947578036543020160571780749163345228348969310163528816833741365802086016963477974179472646078418348958374580028711609100513230679844832108076544669781061685361306826537612484445665443108051577348415313280469675235835679933749485583043182429324547032914386953676742301972776591791495495827381196146125847734532100047808079132904442816631113555906608584995206106272608476715593331480756734903787847245250173425766311794559560531639445511828736807472513369849122850567104104113046915134699929219595387230402650057735812386254511572222710578785980230121301371693862136902036326463611309162252753184252339614031404990595802919729605447599987764968718363488414842940416057767799842221733089512855241801994195579835343026175017565757739666041575221734708170938807868167979687001443558728113385955681505577832796812474786323254557426868226905320876441411474588117554264011125231961699624339761691448005649975558798939689043615913470515193247937084539539293470464580374764490664064132330234399822860186614527374280284088020614491176581727381322546180095695604510319740011092746395988205641218913817051305417434176849104687451746023410276266017534751147573442127814888471597340063305874617109040873028617291467987979962656909544353228476208830635758418879532394498070351456197725347816620689123312233140812272190577269383308387051962652377445322993637560438814601455124383191764258629159609480774000768868246520266673174390472105123965766049378028866031086717256915616599944070282424123678204807933949838146976898356415056530669701998448218771942673545152067249123961550020145965637062645134165613084833945155686802289023976707538184096572767774573593369226945332786729319050217701514702439449518810511758809329609798465423103231389000387669621656332407577778189447005504225921629891902517442633624049261830478133903144706813607170024575311404868754994109431056357571448174466706902289490441097303317971305090892347592160723694834810788706006872345016232223649111989097438717790263610791687380449760348832256973008661273363814917856632242349891478911637995185859299081682363479883283553006807236637946954171576962818173361262727329318058774871862563949944995430416800047037423104839248660250070651238497770426409980101761572131520454218335327815915551521866370513615447003826066385618563777362650017465740640375868602896978955937005778036596952470632583594192891659066536997794716609263982142660418278147092255462450151517025105920832242101337773923549022482860968498095188194421543183392675275353924053838661405672659108636926355065243920299297193033311223601519849988523205351643724458540986240784321239702286183095036583748153382826546761357193051446086111678017481169861334377123816126822550951668230565926169274023146714289727382083642300969949056246619325105543798133545800077410871485705759929849929460453544133357304198903570773905141073337326294596915670457453141644003778193778561529142203968946914572682635846803163249656552897977731551397774939206592908867537065999411166181752826131602383026858442883373069579424678755743621925391730792345186922618945966707542059456488418269565797100756912936418611370263538782682247112231104510219410564420546783622324839393611432651597822503901310755018054438924793175597340294798940466700709111303923092745382224172980926729567677155513783930624131711404159404343090757230990451976512112475163954275512711759873435998507607270214696598814169221543455662719335299477343442987191734566320776758296375542984727394801084463797104917125952591598143970174011481224362623667098619869900120296845101293742564692944639790085854612609315316185216426132910915473873338899860261408829721004378963225497619656001291763270426338138227938821074359052478462241450847176271759988986257747324521678150239186800075696883598663403154516373167418295039456064367469459482048144813635807621744266514189238537643729308907499530718253402851299042550604799291451832777216666348941414689675781443067083670424044829557156280017495971935114872132062706513979871689345493779120017575928926945685140816973728241956159841138271930760905716737292220653829671048247642708769024320186734158776274191565909096846237693986129878509484154249724016629185036007448534995172947337814207351949710834566998931817826014943049805871061003069502472004227359789137290076722712189831119745193969474449960935543432626597186384120196060138083039015638258311242417724132439387352968581180185567928656624572439351026178720722473806467749992427500922125173184709180131507459278121570264738852475492353209991747923333050207418362375805920190616768038199971776717687420320878282470943153477474922021532189844509408906572983189559292608950301946638358076779865057883254893993772694124179689969686691673182754157424734935432986491512830996935646525514558118227189541858496699383828540329542358644268807974557247330623512487717750541568865871529193787025491897159729283324852648644238585276640451073059376780646876300703582634940020204950201032135104949618727493843394413189910088440194322150093221711554872529248813269763641653685362106963097532626691977668897946271115160096648434845204275118267632612998049567004607463699658167080214645591213852166632373428886022872117852746765537060259833997053348932903172940731545051232098615625110712753224500507268137602827792320778058881251489835309820679767226951031988313813073176499090373320367655183878225627944675266397070859553182882226362332383457850406534386814596176336720170896371272357590599086847487454058012008512493231877169801934354485686225327922549643081430226546336387859413698102624657639533616125058683055232319165941184188844826316522600215558709311305713908650761177023640021500486580514157342198358455355781139369585448334203133181157283752042072243393252940882409860386652386896187879716376232869871606728026280728071108863347285905971584877157151080058772825389620714278102023526516897983568475133332682886446942361030356463613211812729613763618202576426037661403010538332695176436162477955271430995650083765321439774736795970915990204817302517721071842458749919920696979891367411961921282821433604023373573901131340234129531888358840201356687476660379686725780261154053687313597303534876828241315105946121896872620682637091611143812594022493774295646157149430746691903824150127032285234015368748939148591350380040304649607811465028902284115760870353307797554010599201992787186939295357468902930035272066036190194307351722277010466201675903969575470960441679848806685348158285758109851298597612652260731771460119481875475946937966318830558428346261198492767038826549709687000254340355028474442257602551591258118946529282376286766853740233534064950620611981102152791154160418768462520050281314582085738620592144862401672831874503519523922708594783582558360245694164585241529762714730059519530703179751861582187602588294667121781480751759217731991884858712809212810542486290832230207538323562730463404371279447429708768188006879483013957785585288433683842403064877441761157062663687170891613653402069340075866461552725021673095680789538864451133752707186517002232528600170700061097855645809428673258094302170347806948776583329774105851349360374651738708713598436229312937629282348527214624109318337325882638522590446153550509127878996666158152214473487941877968896741409464364386157789282586862428374540629114438641697047089360879495364250521982871155435595398826494600709135631978992377670006974841441835621781633483705454572174195021898053248770758190922501876184027334285700847572245340573517689307374819118689283065754385490986349764646351833078743981540461403436040769876152992160963903469665891002496270010110517795383245316204749778179628157860128447844196319023036994451189331030858385529952251492909318367867736024417880086723768320324992615377838920185437167345094364032948510114764672893765785617951221470864854530788058246345507877015889069986462814957449975300075370965855460472337260164454686683676764823323150220928064016748814296036469776331210880407164689662838718701250595935973088192800065681646108845666127335683465713160734716290459565588511989585652299624508311594881071901676931149986123272688815310936615957925226941892973025165392224390235391794194962050947406681392136985142844578977160571283433530938853288630847127801621414285918345658703689020821388236631554822003974347815107486393984853687916951667322891221503894514373255220030351697715468907789333790100965267630803571530485789339410077990161577339805287105243843610416288918226442495651426785196297967286233654395397285490504987241677858791691786680220514077114331648206859548224473876850166594116902002030894579148357203300656485608862250103925263666644050583133389206513273064159882728074750339707822246155481514908407867790660438827176774330090631645394262418024308537313865858895711053778187669861289510442392258581432170704945248147900265486876418418723204818438671266111542134040330427694045371640251500149379980309496384971963362286663332933869158220490902073380793576237140425032978732322778709074444357699131767547141205654412256831504341543529688431747504783249333469600315703278581066763405360889876849021474498041562306753858088411694296598817493247492545914679719532515649098306977676617257562578218415178039055028438668009988281007972816861544593166260362179765465559492342842324810622179862800982976112142147950447466549978202093510126715802005623247655802114703989587951420339133494129529076697565277429927672489440807627160481903319257268421315583654854558032432098581211527865334871650151114836130960682306830017251832175220435627646711093308347677135705775097722905482462386060283505937151790871872925541787493558444187121520216429942020364063477379113801551495952185590300399825120375918285116830336422592492491940941824158776545425159571206371865751566487193958847681232799470617752540368856601522748735406560575890045326704746668461740981611988614793294965905894261703921459264728957040269318372919894511153040710764769755626571089072350185921494552891491301457368840050911888262348361810370587348205021778417953196797407482743167823607844360455586646676007258092227769860251763944343062590530908503224912366297525043557388365082500196263430984652044582272326640671214279301573388608992957670691443410903107601768588856366447694096606104700382445360810407050571855868986808969392415167867617598992046203737657813006347771749678513828204840099142852073467180146021164242304156690287229485777661179155933752598779293923275430514763384021394087733925867624671386379208961395254068582268840431030177220464522505249849374950645462417914546902339309324447820203128029005292841356473271031703545354044338746526759898966397017952167400700989180162997808158203400397236320170626869586285119175173835347587497380690791423194171017591788025082620405364311408508286351057361272081161950098739052662520858863639806931463094330044269046503195197519834517697629425470456913858694282295793872710736423872984006463434286833620948783816262796366668959675771493600240028779818209043353713337835086580583391700005901647499466590905919125571424315886992998934649866026916065273815463449360001988577442260540366660657524487408859593241695194953600596302471025987116010596541569888724816584610732841320309074841542536630110992839792508487735073122827417980786179789971579969083892386052425460503466243280197858677630008778095493416279868298634776590048317530311745024876758845055739370221893510469475101005872443126561953733297533741924348945600934283214235294192276955508885684710585941766069315418933084935780635068583151510873679634234489870326357362714636592428044119603855791504401161032743719673589084115632608507648110085403479755211969730280357099217196745681785497887617451109821932388440237543856021236103838596411737930921551293927319862866980637212322187179264775100463698916224957438816126311012928138150991488701417819642245882857837026997096824212914572328524287263564929029705697815937699941079239885319902559050814482008727734640517478937983397667319765709865243733405912392342138310890666395338238839056171873532192297597713399201049309187391568045113204709925904047065895594430627257544550458593046319080877527632145286611552472874334503489298433408697883111858222882700269330736909747281759224709515474993832816741237348346464964673582560232192734527304854650045137676857023639764201040825849749001988360251207525680260707564017218996853469365358491283965044365041184770436951150870208256975477136040193863045512631877166277424757622005945820126141671501197867655735777144052930303705168658772822958868740233154682694293181547015798878753322979938892404161143380295481832055472608168959231689779760287409643182575978483547379670543530006918455220291817141506378785212711591272132393264583993009749968553921115555292277232232035795653128735843957580729053019420442450808691280026264696316821941089387790966119716896604217358488140696947217519051308018484375107962574512612819270967764397253956230125969578325905838508897945209107280448784689934582293027794546341397431917061108488378478901379463068067832664114140253526329082512104910199428525030008309788656992867237488320838191279450671827174477725576991891213066941961995114819856154888954441046520052933268985414847562332792978446349853013112803661231804598655560458128848419556453987057773175277284290602593981499856381938818605618120645139885102757084080095509952291052527172227104361746448711180802590265592386637334837567456315072106459334510273311768811239479081191236191334132163442814191927593936020604012946873394669489951615374964881983793549940539472467429244965045488540023998773301368417753433677806403713734741149987157517987824993096830466894187901022122647493476054163419452944807027492094644431867420166483772482432772374197251283195005701149582480898591670055716614322676488753410837615532812192814567478522505357705320404371065939678401057548607071553936029329771798751136862591434711393282854633293828588973839713056479931172424164174257729805969939370458812275315738511886166239597641930358517865901007806982176494690158706666564877026458746710898415450063887005076590526531091367952725237814981760355689685687926995462308185910103758682664118339503347607048644339407183100500677735083608202347198616514148330166543548980459800021854369972845774741724848832090700918488304788728124824772687034963051519390027228005477069405885871451531168227256200354279089579358560149356996797894159096800117465152272584521502606181132730583210668479939727721800426146730156540103350941328046052163984476127134194762643709569377661537022364724705790100342480362137607117022190116234345036469758455946265982739230609788390331889939523782107435907859682239371913171489528154222290357245982174839702828513485999657563726359792831382364811331057601299468369843877111617360018875604876783867985390096121758889368788034707182907615032156503089789033872204449456532774044864261520130037084907149337803221062667863457586719055812119595780794319472673733970719227416105972485289009490644231051035416106978712086539396334606655350231748836926484829508496179148414979594320877862771065074113054302522036671261388313543768927782828679725054575595520738250010044945027749705345108646773005680698346108803825373554003306146126560811616240226378319510735410063041808460081522725795890117586769941074201386417514239029392384493289586832018045691341693647215819776696383717846573634003806797474050714238853790156370473319664316436213125089657758031463473603632077542470913705466710607799112472934258153184910056122077538258836791224610327391823591060852833601533774689721440552829448429206135870254438372074298347247370074467486750530758287953494811936373785796770670502017973241435942602304077409652922729026850329254961837519770106430834444254355407851841384982151967995163196659174386126745366920593084244944312593618343844085178740289658596736663503682091881173436361203946829593284047960674113093811833708066523679470575239343887373291809715831412233702221175202999103547269931856524559452710883312289043135028094004666090035356140005163279081406065482935824120890514783755021362722835269222147734455815999825841005620622932180023542943890524633433401191935025906859418933870859888721030638529259574197086515529420924234696518517003775233078824614884338918494414494356125076314544865557554348127397578771379742938308794425379224554445112673083666566782465051164661076384676715341514558906856995970580243559041993870277713835416684961620040868627404853283892735769195933031356295704056771116817440430382507921107894444556675580546805209316824850602887737282514915734823010617429705573511243662455769705837266389457498378284516631195239054649546473581068321412040203531530366886645840976151536245631865258879262220709809666541417819442898112667741010409156046103469290992681897820275538129095735826533510114771677180739458975565436829583510656546908943741451126086976280040180589187019124970535848535845536421248053589860228525415589189232646510393843754686676354900350136301117730725020271918340064821013672530052031619743379639531022416447431140692270990188168836036550006025911879573229384404873074840445602712816469406548242606754758859656912559003054170827755882409993032000082799933461379642271763106360051796796698441161850779331502921718916053155371521066082344355509322843454379167551153365130309949122755518950511578822828892559928295386555931698880290961993365706301112208891202468142782753397872617181624144771703974517818354383675600226964033528861140837047104576667368337491590092493451784262665157306988230496506951776282910473768454691871703190292580398089891417354165709583293757599072278199879484793967231555819505893833453291442736368070263719644521100553761888770549108747200551940590551499175557134521007774992206526325047907439353758144485788769367190933677373273505348714386484020178196499896239518062139059154946650978665981941439207961723356337623928066153700622611073723032533793558549978776938276598789010297546537430167522958496328350612604000307432015740637950799888690513428399990236356010359089246469425413992680980031750177305982758208640100491053921708262351187619877083040324654561530647827566116538301635402163602732967595816285528363752916416981182608005811726812111167091991828427653007660499217343800856104050834716252542058334319269410078594237525922954595249202665445218674063551515073897750244085720723189112217393519678475131074131808062707754081910264643837447135306214538932511617602989508226371667759240602478697994927746787416592285670062085645336377808687295586740326877169898716877954768887161877529849210474851768783801964782320328433947176144695956444985835100344973628211858443512452192334575098079570229796123435583659445530723746869119007330189971312117932811859880603816565082552701549032371435582212400322632807942090691846585136526227018550559103087082202398182228695136239453244139043410386187991214564367446503866087349095467286457540807846816665002519663017639904678643251186398398073109664410178147256014959485409592360571659308952638818855436568099503048857875408339392371376620543909296669583611053755269237424712662461133799766798918862762739666780693007659027010298936193565442307415313318764006241712402155801836298246904504645901746824385011267377820518343230514511426189746436548674858161869351517824227271710228802796339971248838878037362634482523882753248541467831874050638449940645541924205591960487726231062873125042153009324112953184848479867131998599180852732731791054245480704417922470302837729352505071235764967194166504886096428561471779248151415671460767354882735348999686225365043548079485956176891958316947711298225857517087276874592569971131714675060223848408371167922942816348090531865313490028856142854317203431488089131552952218630090620962712316437536761983487066908138021242003537578722429989724835150853244907509140443996638075630691440956637230214187536386013623208130184185161286144608840481342590865238816950140067312369549063218672680205716607459165440027981557911774843740634319617225606126926317685897099649791705409887532352146516458675295600173356074942896378980415757912284960554553416398846222218697969070379537806897555981570294093564574314381322525595375096565425559999823929207383640215866050406551277054359470591362832099914743532549263818190756286754413603926752023144209573802181358598946092382046457146923284834130751048942232601597718610609932925155194734872796587970908246893631660123408939485489242141960898742465860584159460212595843470415294157225859519043482612770707013007591439462468472996544372086897693408324426399038158690490922538557425650308645668154609190198325851854404874319371480402092598991362052863610128487356985352886200205553076506999806683451635862414856899529554796855348234749561174815616511110234229407493928010944700100995133661919580647796712848802133548994258254983095620411253480141659031706063171999834992079390897433218069742360539564534919827310924841553700933412471136118600326081122911647843086148509956785119383510258984872828837561948644168890907113960511560090986655245472515612092505455235941670315365483659806300802364993219173811302373123996767590872090022053114110399153005251137703178825279975234729275739529339158004722273298290806224296187873178879084303193710294881390088264263930638206306872057977589408624780019587808613286750672814708570039019601724667914318771518311088604760605630436087883567246709019087964131141222618013082894585899057958188768121838702209655274291133998007200308699797379147168920850211168784413914700596676408072690338696666935710901118335734032785343814119602852753156599168954342191326736025384895668884784981375219278511448224132278930087472007339816168944020193142873107280513018792232085140046855492294049715519082550245029401899969761918268618076286071739826019738369128010172339849051197283318732494112138344169232287019876766126927404899180886429007685596788470743169569548355253183371054943698775783883488808358492274582791642173537271578113706983869621095866534414934192814960529915872651180112437649839161590359794440485688208428491964661575451080556074534485026218420979752239511201715695484627673230442443630771935685166279430564664962028811402067647988941248639812315058299719123682729856372001890826779031391612037203783498237836775315231932535578182328304785850757847332001327734570525180541926473031748090271635165180892359997082995087570784712875986050070988032509891224933918850188702795541867836122178571997761884026823565920597596302428847176007954958998479113365706719855487500890908573705645793716916504691941841595717001991000166837417530155495191230920062832835530668797209441176558294501226565863740475629053962995292199657899563810151376686003180248384672393880868503980397078483992537992555855609246784547373331289123798521024686923181284660301631033370526590296160338582467624449795318411492686648815390830801504721217374190991033432356707348422572410682459824938246283759685395523789582835336435882262729027869892521669066787245814495002476461606830452687664393980690454311029245540927747261790636956743759727315394147397600442179727980346512982463605597080641564102393504272745984416216889995065816773544725512659774072293427473676450021701760481743962882283143933630328239780826305626562596591329298989641849827301843868473410224415737337117979002455290462747974047914378701378179961879056272522005397538283315655335345177926446123371488874979986612068435135867521291328273593298048306038039565135735784693379007741874324515253949232064395614263413740955981800596409718889187082784134249128963931915909685830092224405629920998277347693959181877845011015203191420619384406371152677710745911389104594109128983307700950044769131346846991774320150216007820388899841846538060832572259379695394546677044332918234850152562246615669292091607224029801643470471553246355221968982874702447172868985152032245308704464450142518457394582751114445121000337934037432779442566682387340693167811775970558153298786562443416604148621663196058019066800697145364591871200181498388869781199384287896940044061705902774129455823257520130375939199397063169438398611113413216918419111280716760005839306014380697887814950176662043077369899344164577484771285943230425751195365757206567793792676615871836859681204018622268819015449614955197631049906557207393520193503530299338615058060993181297073525622007748900105861753832724208042686165984620693782428057427307200469158943257470170423074419882811409802410350098184222192936613971137391873151762865062595738552867973346370349099698757260239453093963769052068440866527989291997819051313180778010428262568848970409376310520766911902876970689898026208342682919120924627340691974901655291463463824836938855532172341987015243311692116075886945702465776010073157956592695504507357103889839254742632357940519644159242399637152759464926123012415780655036676443130659534240124140213330475779329606786528991785343863146861148333281587409948530252305736720973285674353452079662625101172362038302393066622132119006615842469677949015117406395407014933148781205060091826340165833530718211682525203958036533341362810209224612204294333166211764149593681723507787134047920505303830441674871320698626485483309099058944786812177649843279851717134821580043368570080778829717566095259501528418790643961938985200491251261711990636073630050336160405307871358796764721751350955807025066775207596925349143069407266184751360094067667816176307670874823428466095769498646783564719529663028697102845002181627429382402511086591159362348513980290479398974534268547514105367325173983129728212237473561495748622378504559704246540260939226754093739367847125356291130116732514043513121928632933968795951584825736855858830174313720160408647311785828141626440901341629987721241533751205473493326844753550331807457465579622790720492429189128810361328303055452765474149357715083554041991378974552252863288693581941393308761723654237266249501071652097628462262135711724386280218554768830986816559604495013236035654897225948424975132917806507599395189333160842393327937268961910226084551159648961640470125316420580404146149180747266788218324247326170700391358465745474558770794357550200374336801330277210304166880954411490051697977475148178797870367359328810152417846726675336708767089889175003545134233918922460940412010702826240204455760541193181355073218488854485632110978229750558066608778364456821473690534582253187844159209130698388563547786858855299986556591100802186138521036055785163980519592294222129379979864629148117775704812145772168336969752549236643912350110543690692712490411605903523324733766004289068341790955673017571671689074617917686070251900822068143000833792602636860396151711952876327713615973202536830231937333223282362918482523931298766244434605796969742347851513619473741917538142381257142596065758028884335444841507238500902462822127324498199747063992835412255778319619834237026136202264503178151971176803528350741074204870096532310151317334269099048821334639815114615715273676564836810743128385057155444669730380951004955097126234453295628715236947853308174275276649814569385715794269075571440571586318896798675124415596897787500704168025678068420194620249324821274637759104690074315319764015580201724017902759262740537572565489907737815644733391737780274724855999535009539940169276509012554095179557532386329262364548199751356147840538070435633581207196054831307859698431302013867727938795292828972478395158994303525417126639188621355782416652578487804690011656829357471450160772611801514820913981002524729951502395393931648964393494010657628528787057650149855257439042991241097126544369754600822148236518545792460268540823413689076397033683085106706862737064341632670943523274275477934168472112032933375172349869873299345266603424013937779198219319961056539529509745556179299252817786353180196601578315887993171965346835983643151183145917690190836915004403015410999764781458404030245057223818835823256629460807099431720215794164269808245363140556706546204701287899992566860741077652928398762577331649620249003303658180208066912474777906150194192877130853033345923647001892511528957505650743222438838246850317611967460725940932417680367044389655640728442238811411770072542369699575518868894983012005265422872852862590344128335457360245870068377989022698617938880372432957011805193455261004009108777567873556866504709410200769169116084201441523552018044385143923851593773089676368253741395919432925947327706760515391169873433003798968758154276114979585700133103244787786579481523821360831907531476898626096156366167695989702006743531750020331849064582123491312881177158878384805718524284060944194059876084054893528841635981016811097816644142928016418688649739684364247292056655567387397935108926313567399923008908988111722308344533414314703431043073317217043241489776457663983835438940957875638333008270315861253282253074836124348895313658915404004879255401312123523215823163409827326131020800976441835490617162764043604080628292980924127124402985078489605657669975069389141852698202827723052565590087725437082153003330458466463952479220039867886429800977044219381184697146789347562864172124344019456190039827171040756218848266438760581096882109096885761323023103976651879920373293667643995009787585707240900512834697008476838563950033320218182449900515130542638516315777226723121344594733696780403511138592162339126239738528395149021141221744120289566317821606229688855046343386957103957164293647051393735645421240999266828454225618166798044797877785763172876137947799170985056351075785572373943446752245772703144379314613926587775756271763376019213674094237910588512963526154950416581646422734387600273070987262760340290923423196388787179487906797674868689697080889062559876938752173540347702113742322152968585763988002336744695693843982482317246251635517636332156705451899884005541211894562388034586377527529923367038201456054218238459025802502355994135433714758955612656998679817071681273903844870444058442231781688581061249025053142626359259001404593813234178274860821862345487592961292430664760693008995001410468991346542414455076863703401913051360588589413847201365518127003818411000054760700010527085216267655503663558265666142608792527640895666335452216871637748483758901218075535508665731462291136092165769045600301767778064820507424986435293712673543561021096176742783983829085872931791864675035887464115435087824630239746269779535827281909777575031708728802785606376385061946525137903361548445207045979896646328311525541406342760767133895462051398744091513478743369032310152768023408554060643798778572114682544000109647872456479149925072961100947953310972344284866288714484649131973049071549205641676532073050159359287492163538306179144389718909746476886701107784924237620760698277434694451917214529583626102414544317264960492091368480810320001266655042483518351542931791902954564484098816472867775961212232901672285990662675748632227034210198601059673973205228878480159505766764206916601896339105799940082007399702753535562977403928002527928407102085543782099054316414936809340878828352890405074189071755370199011524099064689118687193952651680396433323656371420268263885591019582830111608696818019333543020073639771256920873147166689452497600118633983273464890495961111930373438732906013915280749756704167558307773124118200739921907922024231713533044294591945038650630331694639490274832346212719573990099481223699989440861496500450727781823931038137629061355714693966558078850682620769395404006760750308324013028507177522765015449558562552339771466192293287046524543170103153671181907598886277119606755544314517574338747258500745983084157132461802045665213617111715071309202290903507587633364747225484327036261084130137217949820384555823274461348768052063370391098282989490094835490744552657937734518725227298447824869222968013798916176603980554328759301554125753031796752619358212936002568141747166191079140293556383034105599113680176325465533255327732584850786070452180231145669396047723947429933465463089016694955514424355893420961163518282880306813012945808660010775671584214727781694769920247510131622295096280669568346756118272076884153014321230915159768813419009530250269560360570852262641316926160307894329947939266901696957937740889976426387905922136198294338545601598289780602294713446861313046052107759597654895632432218164571622767763897408069935579393588078039787617336773981946075240517170869958179527267237267307729525481858592492396105672073153723791013221482292513467485115225899491617005734379513466342027257403804503794153371074561344225388566623411086645141609755536882730021267595784396341242155756159180305216976236021440879443302444514211755178785523269182540637518142082933589761430550294326606690178927782023000549480781094645912292896974302093806708298119622779682759075567240894982244471767047946450351904063384927667635968014789714180106757445210738648633133709773119069776374687822780916274150192252403105389478883973907424661797380259503698178522414962799260748037624961077909473945465981111873841398877582762380545007108132883637902425279042357814997771601475852367423822888593237954408367622338431092006999872647017259697853962738397980719388474612925871765577260060633011373063981688203063220565545455716246290269942472539350887315962854479291463140358681842287500023987575601931985517279927948837672678920519135974584378949625470975642021664981808911579212129256631087289883872524307153679406708732646109723589056934228150961915681351765365362549994298941949031835368085747581272291377952963378293829294582942601463488987275793533012535239391686523260855515168726595409891494370557616886169391122571537184701801660801013848251832753508049764234371576609701626701177467148361464925950219291335413802194727861249881058156877168138308449929946337471101079611387578852534083929043601071552727252547113799784758444345093800798816097249494069890610437470690698801282014606205313364366163778657434009856327709205254493411059173004667941693749104656281912644798282986404999099105315736593933371524393655458733053590623747411711252417243388256114566908508030842133957827173418473344731292332442254285143503589829481835703021126872533011233159750176341261128988093841324956064941164367131726897009436739062644292685350711746479182053836435973349133387266425923009126596414256245390160539321640489610750771543805488456814788032387773952736392275418044812199917959751312238956982393476890802983330648269058019619933866639226355433744178465937721936392341769920982500508135113909296729281532172153367906031829125700809224961383567818661372570364899581298959706090082383368748803184486412793120714417559626996273247439832320169160102012917302145019255887859282554505598771706085126484172867912341776032122494679087162631918330381525672372643940409580801774977153373592287176688712622328797200663347412648377387905811043866013020796928867159056076052441909663648412961641903094096356679097105616913661870181071601499638862665340206449373097636060524002738799675635867454443161401171256505936454281801721305901806671107905658735144396429513482028617694562724207308190765357793920249992099179071281899529285314151102977633807436524244718937769123331408003400741293068839888860761990333149010889392365419469363710465434287979212173221446895183083573555299339440016797160398998739356330884345513235099271183887751803278348426996105436706850537561074981178057978900524028033016530748198206749268192569732496751219547175017139632769531135104081518844810416550729946523645319803272497152681813688157734033563116329678286271294100572587151608827012249876362883151852987660041364400587777413219398147463851021944990696330248347474555277015959315560308788449604426618240719108015086536871303585861457919950036729429268915329457123450935099323774078026166922165560074777979414846198508470404811690566971034369679348888229786909529434881346412363125220031853056869198929851608750351811583928377300031045302705108124971293963086694113275942983603722472778616118467720671392749664502855050390849579942388641484836193233902365892532883759419338317759146336230717692069242684450867730223148784124017360197614560603120456071674491886587894943349313547475763874492934908216842876537714469609085426468435381801194445788259386920442929984746712610086354338431805523720073960660462123188687379803161755194736577599277333738741824526436441577953700793120390195854458789992475406533958274986722036927758781098347252669426772169181965954569055103403742093278405364714134046980451514831240352799911038436190629624198166260545036782712999167565867956172782246953034792914408107881745523068845812995649641839273251355689828671102275787281914613201880082918556749022793700727833565116009214673743619111627636187081249784585587870396425718587294646369021425802821956231132961775533376447074935923014535809906931128842923055026865002506696827059490309301129371625923251689024971923569683324097241110736264243129747237744122243103029724623487797349356397694797112763113527774108692410297389483734783484554837546271825272332415671228128526366455838249477512904524943641965706447260997943247624670231450227407555570430950465816573048816490737488051741548135904929838721803377349936924222161110623804834289808022435358289615127516027827970914033518797383603289235919092658707667481036335730081129991770334143296271892129337047061896150555766471109084925846572580145434929533362464127162597657891258388601282181438436912193546498206300444634187131681492605302020327430037346338632944357882799307547057186305441792602010568033437045648374734624144793277636107650366800450318072041638000795966060786668136751039789396363234724688192502061518947846131760143760504930584152936089850910207546654445177766100169742169043789120820167904946994698983172893399083541757982164329490443220732940030658222051160113356696375763914848658977881700078304495385206438422149483986307064114011557921727735222518299296985703264336665973421087940373120662771651126439044801132274107726789982225979024181849453270344491792007685614566010020927217038160026771065979614396981220717045480224375460770197821877886140145962263777331991948766493737178390787601765625127980904466560063430256693842555771733505721873222441570963721610185202062017055870126028164696978502029324638022224534340866471488978868061088889378581388460571603772979219033836602009432393483323767401542632325306361387201455321377772293011978958014583669635059701069168947637493709616717888435853445139993201651840588729150299641448677249738158965728452714072647659583300764068570998995296025029498563349732824810046972829844404555212782694353874018288192642750820661822130310245166946816307919387653944042719569169748286443962604537731957554225210750488064493289890484678935926355012961286641080812317548135030033055678411476942628592325160868498735012380019544537385376009001747698696217225867920751593475948058951300664334532070201412186833038605902501798637218696274581463682758962486259078422173532990006349161277127695074277023527941508801290276441459030162571820213720504749964756276073614466137883611600444301221670261975992827142800011814926537640984949286743472833516119124555360074975766817311416957618540363464539984930728151241772764912622780830501757147338967791117394167817935524948330770694779752980437504382192671283536102937802240490392998704627445523504284903485516857525673099610640926923616088314851364322379381314047624639185646550945955702129304780920889072877432331886063894420052914259300298000739518433053402372794689965758393631616507295582879470143581076356317742348076643862930957022187052964001417745251526326948240983107530242319414867028348452017269981256403242391992602713646914115834971786868445023314540938597963727642005774338309517324261234968565198357251366548789059223575221586987643662291141024895106469812706613691713156950600472503165076895931931153804926541485141524978782093745822908774916787022147972212220740528169647027011750788959245102393380274446741288702627854169482987081901825994175000996779131447812729564398372519895223424645645700389724725108501216538622497323064337221581489584879476347678501221843183736022851130079578611624509098528840287298379859962038524651560195922680579142029914525631223269371330176169186460213372299809582153888142932260550915677352876772589740427969599065926945928578939541477584971352671153755910568481775989740812883110629373072914448633317581045840493910803126425963444235938099404811360002113208380392567473203621380354162708109266467966853118212628553221346598067674654669841979659857890529071219440480883656430835272470132506290559342664732686445457155727542873853911433902694352226821332338182147079810497947958819291578741505372024805518665361405381480228535207230649630518577945642411116215712233082573504755072371236286354419559781370963130787741746524703179617312325570980963349856165637554440882225942640670055649928852578038695054448240215394167214641113988952791198121937946516563567389439993264888234530777924772965848038018707337229972975209253151507698504280551983113671450920729064710581409030693911835188640158412016744538838701444379220373637173635234619393368461926903278130055199840935430672147400516480962814888789047537035371530746873926168960069690411611916518405247414446346731982207561495900603461133641384419794223857120480214258444997575277212765754410618742318432982475232624854736641353059318714793415837159473242222163072808485003649961182959052820555699888686920191955952867991302487561976246333123680995847401214056359707208166011707526672047994750401430275896295164323795742549467434815561521307581208459068681678609403324441527980321908973547128959148597047819183732248213463227014609292135387644430325418358058401898043150036758209588227340512657908499265363997088644288705833843629562395550217120317375488869233629351953049026863054022749671227942911656919367908384799251634386320554480414346005461407912514622265473562135831244371807515247977954993325406004913662932437692199244468704073044951263732553965716263662213757256045514101702047787238856240232593066245361346250407200525553725605249728999828837511261225923005907361037900766734088191108765927160466925399322205957861957150079758392833195727085820887269198188872994938230573995634303346797893097825348469829352029176671147292263677762722928046201825832996397559648607491128175592223118511998461248622060096169532465252062808389441154818667971495567229914901777283479528950932669532567827229496955927888701387743238444109947859898039866601750270932197295664413460898854576333639982784497192361567204058971502133725438182579437162677813706707256498514307315887825294529343608021282759565342584261457242607443585444192489752908721686507559830078441653153638871124214057037581466451693346647149765201266454219528905287391913544177202791098972728166537573730574156957595474635721080902721320476005679100881523164765445701787966281525060015230789151553966180234396639978224227194410964972832394197349887957516231236261981901061954045132391630773669991301207423122759783680379282644322794828788430307534245569755878430986143306353271987477419943285691189018462138232805893115758095800348804556796303198004665260498174667305228596317506688119575022687332221040073218389061774084589524623977148953024527555395012394449947503745470575525975678177301140200808723256052248142353828692700845366855770303890006208711107235442043123095514380750647268905104140684218583949628244577909682407844294068755199083297783650188060296359588583713104188701420148257408877116828792671894446556880140015827589475832919265291153628794693090654736983831154272246948834816986342096949529241803742267924076420183072163215686258524073366860114952458980637511960362629021133455504206736391205160151205279007526329043299263707794574204516216758777047731379021492149953706358660684063129592293391419435522285562480635747453327804972672234498488829256562599770170788717091814570233391464034837787453232145678357536928676916187864768552080604539644249736622174290125897250343890846765246343855903278808329225484370764581420186629401114856242000434391022597341592634642903859024340732937258669664977869546206135992953086817222178025210070537760680195186417063438430923226704260170957755124906542861276236273300916923369352664429214507329838607854516468992217460251783813044120123752802490598347641957415608574282446168324283040679551121979595288953048912427428210758343838811251003790159932730103799110957871475047640652339138437518934607058128590574456735374382726839192192962937176354908208873591133513063352269641327382720497637380097112342142778757461147564090577281692577335426598215888135855514051857425773236089360219650200970302532550046230765167466072094185256265513950855901344215757625206513431773027139302575988298084141013296140794196448546593518257247242345216181630394609753382679098650986108948381311759234820073460104832065203719408637504185656562985189642509916203643655267432528305542228938017279551822852750111250194291272175147358092390856245781135274761495322278304888580047026051811667022944808178137205378681723130793128151980927436537917725177482081065267530723380529526078432919917907869289789701048972132508996410626950500877243890139092438764469665873512495760964218503843443625233116110842873177752387106500868935334513902802450611352778922986977230825885393215593937858386115730996889219769705805327202314382161221236790841099191316720916265586931510996711856287693071267176680763929417125249379590283301714205956036589933995996634734890229287569295901635927933858343715338483905417845944259574838179775874231449779358862300824935374973037191526227497827870844746279155841642579946508480454583895075147296447550097278398596791132652640559625094144147118398081073696833833474568356827725301533144863922578635786075748857605658304462455747448388034952624553469684140727895487447578263895911799258115491355490596227930127114679125978349527407044844645951698726840972629855527975403018009003600333799069559680934646400782537376127467912488957772680176339802547805075003416680841183612015962223477165084845599740994519319035442450344606049262726188169875195961272885890459813833290066083084880305194625618375711286233147014440358811352198338473433659230915720940535755649991183173501011523397584838572466360231744387411467140386365626423832238103694293708641027585414490052867905106465671282616222317606346383216875525509688887528055301035877513497552202066245159185122871084192552128677308333867392896119368315344482221152443037550232380197845220191892963795086930528737707438161295112072457458194480281029188463978954415149125382177872637024055409194911885756839871170211702102193504720843420089509876148848431182641155261340142736433380573470258253635889185713975559949503719010085570711956011291788987344704451006701310900474515121001591990665901074449071055044305560703896980317894609558627525109027676265688846960369786234889118209246569727603413728492177050224518287975187658111226450788967594074245441807143505938834288679626008605070332830215990706282968663716080536625584012036836556346504134993137773817575957550742042613170320264872939145868131586813901595432715343091293031422293529987789120081938583387630344388128955947416744554121569714013109563369229912179736774216991994926248549862706033097582952576419315406327389961974151379917500449922528369977914866520526701397303660450302534939338294682082235509494199065421035579514684366583334228383501491132663384230870484423815195323174209718819275914792210225149512529091972639310776756611931046823589166476412993669136735161221460891411465056168916174033955983682727360052338287551262561004210439468687448838726619286713108577720692632940461574253179128781553147144947903673836493269820419612430718196135749908149968756264036503777220616655022464191459543673459016871805749829318657211584729691169686394916206972802860170309227390414549764093536405661172242601175390702456524026833817152545417183627909615024776309271678556175022242724276399784213611682209124660543543986004136065794245308251220048230834476336861892012148296140890066813437062984135777506973165287018029947556025906526372789037385942984292399622187293465504276961862615565394131272109513182981582295919797750944963245963950083449992285390610567480844418986496347536974892496717198589132487849071417419453093559335888550564301514182868702813205326471889506764218690052715463377873606447700350302734692544013430845783033926871251614536946400398820836054950832598734026176368172727927339809550287785994892986248042590494752930549303006381247501910230565685021999726839494788820508016429672922527749801924208004486719880528978499776386816021102432780560139601941713156765989541036961826013759986104649324012668907755081330927183199659067033120405761296665145827349993022597032732756598038544203083528203273540528488083989097210750231974036176064959178001263330722704595518099616506047719617982353611791240418753996198046626886623043325103619963065626210181550439332009644122540060611572413941531939750389668433042992882793116724290101547350066659672940842688197384837961913970193847730804713607555799550271642618726936717896810273595420716367847081990174294902972422655869633758590100134027468878705457253314701031707337474265388644757266462085238234543901359237760387538801280389588710531014673657256260254453233205705540333718222915520193678037715939335111888681476045016514101176010967802340870005276039043953320846072212330689517723184575719577306321220359540098953784698611345153151060417028923663489536717346388038339361455474551985587787107384295034604753098872069198715921423772263200199358252512050803025993007200042271927539812387473721365121387572683752560057988554833355832153201797055114590216525222163263053934834479883301211732305729700176310523955563066562519038318599882649586298844566838125112649867260639083990764880503128544322240057773276541045101238334124041778756396054521711464921124373672009673524319892013356167976304216531631183804442210353251782991699822645543774478946898677863465754999309467020316097849180647936766244758882860351836026606747514066281684535717628269260175820967728024284818641686841516860926216678418513692309992454073081914124795761514438438051556680060838422425850539665341176203105659033770768708208694359671261528094995744380480602542485055613807608848630803966435208399496944593120275970771225627976844467261210796411984183532047700131252636130032218038267999175715070343958859898802991969169841839092783137784095323921797947995967716158995490067612054092687501314704547292237212810245685947709377780125400856930443395559229734128293191413767415665923839130336894243545718915691515544078583872852842548077263441104548868884339970187489092534983088859279154377587454773452883394716049689146657477081164444540609574991938433602440775778627324369568696509511184395699339543758333265010113348983465340752606876365784979119815281538149653234992235369263126108603172032086613003157219489800118937769048010293943979358997888613006211361964355422386780607988585550218579596572754396394725988985275898449263327571093715380988508305331369601499803674710011527667819285448452813760277001164450281660365032528117400313359385915961327733342876634268486812811491095898836510540888245722041452615578077580557766866372350654442191641216896907905377469563189212819220219664141877376771890792654241899280682830915714299076165112989096813741242109395878841087784492553866437490862724335567215550690666016659237831944832383394826302099056975585104127708376782865598668811922951089170230890206416888001057860693012239117602485240544026759447824180629502521402890267728930606045970107269286911359018997256708289160715052862523143552443531609507229961349839763030495088398383640132313460496871568143747981214477930950148683327287035738783184006357243656019127736416420273703193679940015312688226257358154787287212254227192703722002797329642637682846655137558132028537388404980762177448174173060639052992486726207681317681035487053591117962686793101280801165537252663767401419163887446345328381068551499491124533711738610194895208213007363656614109265467126226378916975631259385931856241143229936076896481619360667272665054362633909201713086797884804970359073677455468857962442590183740735586086683861156932807648316446010315482411667812581185513066822195275172401758706547061006738211676164858473054992621692822096222801812789322100926671407628129511356809896668145162599988000811279745979594235018191262167636389698349794475368720579035547160635510418469010298229239054120726809956661289724834546416272004596297355235721986258647652025328587116125894608120339256518825691725183520624528466924178942053852261908620353463090895097514897373827788838080784503950317054413200726238277295375208554576617999755695733725214530387144837645671055261214107208494441308115971524771898931171568312181930464790272721903883507773853955258746316232478764491356751152085331143527010433481253913132309014687689047803594543557049542301393142921522416591144515100374788423080445963601650649948010307257632543636474691992190680766429071124725368490500093543098991189609012027725502107187818108627136380579344820865184323770318076983628778908178758555962174947988982053049423984082666166557168937385235027826801010268064085404977157622904770821457568195585323574311048900285488903090564306828690412863466776985829475647337451411189430477813512944391364010436805776333893908295533109294799534109389067265784066515546896855643281942234297326779979042792723174347151025343833741506999365332939631325178939881618423163953353739422683861627109011270042440447600120450791040672584950487373732262252848180633852771906400408694370298296053210847023124178151757107894279370031619856699915783741406523790124872619787741339883235380939391138641340544061287214638888560639838294957743518602364049554655277969467422576899718148366309893825060165630384405109642189443449694895603651895205615652490342110454128212069290632747395172130239501559764069395879107413239654637305919366195883002470890398894090285363981636291699319844213365792657130404479318634118846829486225536921119710496024991517216531686751657572436286729633539502072646702551881635348183223336547900649484352357408494389095767911052866840594820207525956924967796319052582081139033109221552164333288037990975277711420854894529253551407018621626780031021874949781869683346486197286983222344867847927207833987794299888484531922637212564185054558556141684883030789938818482264734841189007916508200116090966601231257594073298504580824637359135658552452970568259276698160415156877918677320334312794758889404035732122977934626624878406363236549446403062136516363191308666408773125882367858256527980011862451283137301982574729552859515345858552005244960624545007725953102829858588747694729891849479137467774102875029474740922113210362807446170137446921782615678023319813545540400727240890101766413277933561663524350990621274659558416548339781049709271496052358701994342853060047048202017245015117209083606108578179740647816804916167985023414213267442955767962572934657389124924931247663858715073054514797274369787559220081405344761538696963003376692129292798126628369645251863979631415386588818896047721786391484075252395886238755011573502868045867284729145033763540421828242347482978577350101994200016566551419096140024719012829188115279995670767093733588563385900791794160955962151058212419031591316105569270452583076175293229835729310451859025028528515313566464257650185149619565554307925834697691563509827246916959886913408668972772378441670084592833190101051887723494563608153935514988815799762749910185397816387735052252141323114530541497511238418724653528142252251046085412242262046293282277061113246230986385354079435633491010781389650487384651613546634090809958024907851240153723313404167229030589120956420095731631875748453436075685635175346475585009880158182285476562340611359914589842268705774404367182967694190834376269196917324316102129117135157848653034309753659581104829857337888024222345453839467765216064069623884656456436085980273832827164977320679679724172548330136082514226267539484419489352784335797243158025027226283783742579854655331010206866399869643346040808973555192122968159486723185232191203800256010630845761075903754819202988306023861896653110573657681246916454328206104653276743328418427367600400834160330921793866648048680328989156244953856036371416545065126347219932576491367051651662672116681838267358102413999220940139892725467677068946678793478701598312370150692570497510895858390042877886419666592146918220761250736749512565610730326169412273384115477831288446245092470949185647135731850114138919484056394022971932997122708516426458396361475048512241184941642024926551199392005676471493937438585057350153436836400306941123363287883757818576972145385280027713706405698276509660914755053186009578176787158382338890096596080215132115474315461665667371777835706572412034052233596351631788045828577668560597106881182626270001312862914828251525315198368966463974454225096885692899955438358656655545516990541982533117620716314846483311671414938506404528536900775312419228367508285074958419729055954430523935811787710005717643848941898071373410687217781993831315032144404721181633141204508809626267044219668120385874157196525500079266777714579854513254071908675851434644265388554784887728688439678751543327437197928762314255653824998514277371762017938219071127015448276407800305210744462960183223602281875309958020682865899478536935462143594453730549799334957502965969602216736870549200026660244902863186598183951427239910446535781245572104318902282152734050827009175029458219781816115288331932576717376440011824624882567979998958929172807629565232644435841253402000554829455697414805825538211977364173298288586169686481845475520100839105724608503692706478155890822396368567334578243602160830003489248615340879876302410789360553734415368411359656297378590122592815083809215276582447187453018060085236779662215839183104928369984577858796096815999542892018900070712485875525845624305882480105706692713259120340815946957624768860203451535268907575534324509953890810132935016469271675901777721646461748795472795721553274882849383712887428931915949248558588511389132260866859377032957040884225140956418463229984010165939228025097539897297258213956870179261440246675749290974511650552548307464647812582829011273227642800764000772479475767636861156836503229973906219439336179520170026436467563861483095855767705486408916093923046824303201647573064465902465524116955652961252761113542338714944857907832729876366818054644941271181197051098310853049699125328072346020690244239263114832134605209535841434363791225000375166697651324579395128437923029568397147538316747249244111856452736117647173187685657510952655691926431142328690951040813389524772953126358453321518980385713827081801022085983497998417081704744191829644778034795933425111180262359721650424567157247876863486343375197339889078562883402407902450372312251736761617918964788419060788129303179603695956358025451516133568861249127959375658450746185521009088733179237994939500182100908915472082623700170822493860451320998587580609969430058115968526230020788255185376527446490469389756899649132107312680272456597990851283942405280312961823549933837721082164660493720952831601890946819534207450441422715125570154502009295102032865059275640883157029545136527499132544342345474210664806902620599274284842486696717855679887912747807245853456224556580116335902242277838426172392383375308048710180262090726176375899928025896331223372302334127967638144111810624671969491873982354446469448204016786262724985424883913162417381193939506201178706428978981325023815598264359767064227837607307175058728972573583562324672600408248848739751213925769271969054309440071423586309711518523408501664973144399833281103271660629869962966098341071719495116320998832593516812306352123670161512154885205334535480299872861350595500849603903548295133305920636824188179012152932995565824276663866476159725427044284532546516875220181184636728797934349471216000173255539879895170089436890858852090693577360633439773820384992270770818529859107786052653004332484539113910921365074508227610254929380575732635807157948182384452450577987329993648846019468009013100776455204731883004134638431211650465559736538397342983237726104163392432494953698585510316145462718557222664410518308402359926149502695249587860603489676563287918380234096118374036618408912688647443376764413499962321500304279908890823579155450642958440206909032857747700855000808878775987028474620648306426142824459075275378989461214488581004393049881616267516192645114807980942880497842331343159325796310726501247939914803078659255034303408787809946811581342826193613237505762106975402906204136170689282481739568484020530839696980771209796185938417817607289595957012625455913585519434300016239900708751897109947918166207987731734923271837234617795401813052185189289768467974367153757344053604679174218212599153740322146703908362186082243408989789851934532570221112925331001919171472096373647777030929924615102446096924408288026648613379096501943840723671722362623848129307652409367157310027787262086605685353898840794392017600074062989560652586273693984210743975421151625763793597238357521274090564795437805887987774115308886645572418248754741292237996081114067108300237694008328456776294604353749474616412098675322359101581035229084690909266807452378746849951677816901798571233122209076025544671404526173256357975312287233949683882773537739572323319521234662437879224974677749730346343236019632844089966628809652609425374508415976663881563256718160096317340356487051405199710753453547164530165991950433573649644705465476750805150705707461886080030657048776239443216712327016346557890702775009717190077612915504297677913937414106619158093006930174543490959471032768709442811760919780386402675358736719733077599129944237161538527562793124813869824357938918637296618897344545031282974309863317994425935640571173115314935713380890747844179238536607298897560200357850569966902935948527974458381936330945991817116215483466067992328619965083358101703821418138382428726673896648937482495185123186672248458116879202773434234981241864907552189765638368050217578969340359083580813563834854068226542998618232840280322990735443854738185232528804735095780315378248324423818011722291672955913361518481908988178720137938824533558710648344983211890819569601679221809548166097819719657301138945190111056999529036160573105434759738261057974559567431006578395249465995412636142734021428657372937261045457708333881403163308745183097265769481246055686393289791005655699999342707753858238753923514683917736460521173616050217423887672523518931617608539446927368025010159237503063874077924637128042664880104606982452114365155970418125259999847413949436466376320788452327115395351510521060630664262270083565072594101777793331300406396177062015542639897957457459630856245907153402983570695070875980579934422839744760393963413564559804456929697092289292041421821337197428482283329028613796879149538857957641321361511135197042596896631232421703672039036369597224718205915758874278725530861070644083383769986932223231781572686374511907297006353346334400738549323996115855006440477178702430868111261301714157605438779047182774595884054456305935964983706667316129346814937863624314661163601161999680060995499663981180052357595620220576934965704411792386102063663410007785431652164549487743045932461173033125665677165665046853305337310276074322734671608014307122015378843798198718565012463520754159105838629682118793791373411712289830932718954341466172803507456767773986047490121139897904193169963149273760508255826700263761697848355539598965818512710063256207426833706774957398401892263450074366521681082840167648483978037902561440699853747951743942113547372918317633492167035523408289645683264945609100441430659166874151669658160033246744656690013757037901265380833086314846670610195379873752194974751318387987498376719237008477879384485223164855304019878845619360204730865798489554332084255417387294151046068827019168036280679943455314568248198548988139761923486870686159261390334514229197189315890255056349879713235356750725785727973547383409261134763189586471699704430083925326042698245124947247715853013665621761873542163773046223327446115183409672809001682861208726698909803700850608657682797884851259592093431198860207405717378718961373916246919375102614856141656450542082637300407772914414571842485963693326230957443198862330391560588225245820682436254847470522631422590878003741276349755005242766165889732495501041931306707611446078963683211703984539670256211174981551867190662512584705188456604728624036816418451180378139691813835703041242751379387344026777177461718659238375874672404657040501082959169169120010939020349031241016303825502843620979118367273590769895378662602584434046456726072907751576245715802043044666789466933591549394864790218123838217531600211356641073991715744693807054021654687368076751801846495865422824368787079374146797303416447933486481246439182220687913913311083790345701191504070069587655244059996674329709190962419900136989779875853162831111678591224113961766775718846542140984597300271622568222581829602758793597898247632718367202031570692483010336405282851538352559257056878869747086806368997009993535615236394314003889061905733841528621163552445946834370768005606964114625101201081535206016295223061476095159220204658259368303385722143363375020127487897671712608877294912399491333355122184104187501538942775021915379901323498111677719035075291344004339291716306014552205810791779138006205568746550378340060941527083026395387869603556948605889861168368043728821935281160230250710010427924396358498937574033798472008039870807657178930832627168482700709116664065407657751154316912261007281005552364837737892426504944032295649191741118444752345435720565514148482078455158229241517482637637717937652026527399602891853293025324212828555613021634135153924898712136890552847146301866764146384698443582443543880846708400052696033433601889642150633498396810386059679019774609402335984273361018417673273097765837332671489269667611907084501462773283780813369732723854010332619440800794241544044683767564155372792428214979829189858050724912939042948565638413792516622825946925853363750155679401277253998792458900280788425494968659172653996876230121270392883625375568090853485866980126942041112620305045996601431090127615461673801352579291668998714241723708897067725036539728381212527729918217400536674766310300654581320436703666569704616894620273468055576843589024540763525865639794207855823412621481455183655734042651480127093367633202078870020088054840502114297842520920520151539454465284823307536653680490747041463310064385327138540740369402883710359932608994149957059626538072451432569456560430811136519716705098510144398731095226222228223699577509676853641151155041616383694077471777692486879620426964829319177712431564380951851488256578705962782694611217673604465979831623129278433793094826000074414218160858649684143739907977710425856361117554153808865662859876625408123673793936223763514226647443286632153415844349402661081111682999105452325522094413334979075636072300427063856549078974532781927433509667508676838158677629414902616600450211786181111687882973896296099300748965582656653382102611907724287071290089950841634364278596640590518574887245072332014037021409332075465459111571809882565357549986773707919790899454133282318578800473631189967966415677483684192146259687387823906813935613185454613910309547347909538747174916499206699373997734043287482803200974486190462163527065902158871301157109441521034803505427506595346485822390179470997739088865892483003108434952666509800920994337826212657437126763627681300744730557399020758907515708444325637542395039085327194651554035635240034488948580073653883725431803580226150574113295839660236128231634251166667149330977879647254832194766948221151531630071421222087982649954576185642976395266472527006076665371459647131283465455773146295465374130425539018392967369947851601668320709777263199458290933891368926261273579785209780873473752416934158188337870500633542361065612773428204778722143871524315934466994837734139311602566055626562125403620226379654748654390439075441619607057038680802848421372657061483324982927236821343024457722312215926239168971269077802483523767471360075960889815189017246945217551683420707837498217291404391544827933068916555265399314900508468106948814954675882357803564530223259186229478162972893167969647258382609489020260621173978152567696460662493143705046764939804006800671543374714683630241685643017543956516057609086380572784663093687176963540741018728386521658453469702149649858574115249024265959373727836859837556323502552914205719667848270897350458116785024194218107811055758305183742999555793047661306086785968296854316855834145935516256542571688477014000201795186647497897011801094142721753763141486631080412594518367211357106404933549658705962191569237895700748115892478389371406976878827625766306770246760309856120974105838832111022419208374062923663571086694711746985435310957583799802796408773260312908685774138949855651216733522048426688579557946402171145922262371501163902117119608968633784482472681502316082327768165963107671271114941087532307466643323709670549174661377673709786191244309616324728177169399780331404570155752109052076557140270231534073474609879202346602951022797776325121872616374417206911739182977215481979692822025499640474733700286157476887819535911163933619057286570817466867181720031541512633247709318585313567837435081493014999457163444306011834692176270949143601052735330122695022325898638150597707194985514366263483179861787525092557152120964388259054818472805813150299953010048814064720150776989435202929794341183099533610194500702716567562038464175418557411934521023988453662942138104440623455003443117566944741255312747452087879592306516275047178907925718694941567779576478415727301132555090153717254291605711574999425324707797025763167801778410443020891426456172517387607522602168512758047146280240035867554094563929596585717770846314921135993318291653855710010967811716673679684833471817975937441543241431790912583119254856023643726080837068297216804701390594668608153280155401860938282482584278919052419347674173733546077736649989296749024848155298988664296248397964566831533493993740186755506325148539028951046480625710269824572322620621488745060224750685619213718947433593409907631443926003601241115086656774817691882535714354205037292426070182333050003261368670323681254365385224947846678762911948763965579744061629626673168219301680920132527644325690614600816368404490584701605200349749685629924472895886572557637580224872499050201232726041568526119920104375815155446784536479285207121136167572675657570855123382633657314396426703263748782893067428485084032631078554662733075520500196413192548758298802401887866766017628067393687534388380961538920725250281267816689634615765693485282705941681775713392562166085146168394030095915301326946308054748578694862661933140911281328079423514894346954447860201152174484741374285341463215279024071343909302987043641392901842897564947536782790844076707027766599854992077641277339804201337755701933532130122256793640491256642546756188695436013835391252139720555806399578268558321125815612885876793065642056431879565920871028505660963785379864734752183390863890553908497152992758372316053038780736775505298578211469483204777699538406778032069477951742336977488846330770197054626361053996039129194677929363810544726026625692415226452720043345633519145627466131677963238538629742964186298538546669966073758907848035169425199144003709218691073405108634301050733852031471834911643861558966143217775796491366065700181102005158238737521279908711864979338726398669061345578617582278669428480429095181017695426896977645113016701692214624055166690165591259515794750816560100924696355989751481487453186894781879810132435864857444053538352532638091364626577979469688473084812222203025231770741533954419557406103463141637499752705543070218643943393540770051079021920407970122744490507998994490259033161625842445853877903710009427353626423978114932112519222995599289515519327334175408390315324101344324829371659309071579109350204810308392853353713829674432812978760808864238536944258919340795758516398932028704674026488016362848705953569141735039546380322130506370263540858615345841288754664872454125163899594955559395466125707377719495889058454333049931242276927938760598069836917157062020099035992715485925921455055169167669529015868567888196840434089280072365241141237195827515271036956136104716306785278057522604227426723842955209370594887154268655781006627484796784226732900781103353976538692538454948033535946832611679920290606088574679108273234456020649925625297915883206510733522289893642764321870499044729201684151409644774173122636692903729051495006241550903197313660644070824564393453368009521474544215357232086336486352997118938733189260711512180667923283052759118011874038351919376408944398766818166373418074246919143217585731338206818190536823631733484384664494648203819683839530908865496215483544749211860000473835753370548666319940060335821198719185169714076404268096016454331743667156479754958366211645994313177898423019411561270495343618210318372147976571534152710949904604569852550404842186390952844362522522755928816909085545527770941447893531982877034030079369664938608103100350244828976579422313256121260288699932134445514793169251450454885494720936795006277629720458008209811536464241387246957222980124627775041017026319018757011277842119113317274235647962058242042467948115783380950557605076158119576238259314481046931688264576061737879239175693767080571894900778933740173075027024578446993933270600759169953040402009557513734029459727458311647953405817195472195840705390852806998735136604592969389300217778649799648867074672855943504538315728718024686057710326323337002661871033653056818589138634644692345843000821047818045799860032011299899722143663366661400561964981860661336399380243958414615899582627719736842556627141364708430770371962081394679667596522187243627984131840549512660200125830526015965858682256193753180000433177996312114547171602119495742005027180195492953871159832363319337837770780657549908488263785611370208613688279849790691676674230557551563607267053219365021038057587432447356620635535677619437740657421085052660182690351851453822994391170036848449205363971640625538732635788831716676274796912276904724104891549666160323307800940883104162977975612846716378328310165787439498837572264334902933215433620619822633121023186996694987718983829562638093174301408293097432013216027178300083275111937320356727107072823745254879330757485231814379115058285570819545307524874399016636445709510241377480056642569750603911453003564628932234051448720309724407630728082427493914703492123141373972025898259977077391550906029363022227421314449296764888978960843827310952183077329770170841612939407967692820564555055487588619405486014617468145876870387284247214027122981535280516662538989289658465167424201011348553026376382622283631636672281100823059114234819006036632853080136929187850283646279998627574890899337996206084682889155243051070031765897751118870309901887630359105414703980864415251502871718456470873943385828783694002891165670029052279323664828009252269865672345819237712464616110731864145724250660787137798906487944953167910481265902553358560165020608912633281588032139278809750787595907782842251064992236906183957042502987574517737447814946491103701315450282418981966699126930250188009339245669163505568876932581453567806448068686772799691563971882258136720656988034757428618828526690159213628261390551086006242982884702601002950029370693622286455033161469082763140490404141253158684035699111825820570941021517742554565077375733716653267095164405754684867899102341731120775971490188884836657666072475377167872696629840932157509353929203648145317892636060191620450809500772352981864472821662974286943729203696922519524747159357361373759866297858038787168805414200013309474416325297202070268416263426013816780188403616170127071517050513591912888012835892576602451738322775688728555022130651926182101761622230938316121107472063669120970406886883980656365522989297203078318803833674009155203129030367925596390608737737775174181228442974739355080067119747366143999966000490739865050173593238272549250482858224510007570388123660702364461569638706089175191995116715443514260796143522325729074296492673377584671151132648751522997352859101817841555329463576362828119074985536748493773779126100677777008904431344151677933070974185996292467961769899141122364320301199569052591551089706504684907752945907105306611075866886237324686258517528803594972003728182276054085727648414534035065295003164578442485876324202435686170413690075548811788883027206703395553680227042143931445699935546413425252299724547279809577066137116991052302806759335928797974908526069493257313206419078989246124415196737923964842227436372850723126135575277659389426224658490492594814796615379986380937634562701420611681127810687512187294064959112388740124493447916688421030021390365046244475117553267518029077021083278270076313879182195878289263805432803528159375369852447796705048040356225036172216288940422383728840030484730373984767214420435251656157174328534743888323631467556116277327258822060409247102200574175722287272423237041218486703740013492640779623780160474640294985363127982261955130580519072487457939677398656526761230607883608784835485985796207218037879026586166518204380695750575544194227343638499216963741121379367733227497401104636931062751305997750652287963910727211303750642529976072072199677227767533818224504076733285714866730705371850123834040888831173321841207713964874176017290537960232062150071152656400889079144864230523484446470411285918982036718445884409179696700711560223903825427436852235130819380600195985511148880767299608530220113408292958034758489340967552901838998925327672949011191895320440726110031042084304591724788557763364723946650292117191440502730908570519999276688534123249175026588243148759110859012223476153420583033915480657826798447894146927180051688923551031234431346269482212393668244107833121659071294545816200097409994444455282801901804385979182773225452275874205752002025191838747296751253341207719090875331182115809126688380042042779235932219602126709953812569840689480915518623302772803208000110562464998982477285455587963341924308736842317203993152622155587735813341577074056095531631862789600249522471383663016180335918087792030026365108534131818646174956907506259371433592839159521427780099319521583913783251075499520103543933091935977598581197683717612028871948161389178644047231233883299029573989201262865175907054696858291388797910957647945495405181336068956047901264448664983936810004620204567747020887343873088361947006805976222816396142269799144300776688586870777354589502665768900030141914913228876656750473430340766484155352773367015213827428053743262726882025180935059857372944588726308836009900632003658086525234002573994669229603439066490023015807644319307327321435499647542601793773440806332787663021387353522953386021911503357452026042302571554459287313098604007313286274732495571157780621683909944768102186465168066287517822770123732573059947289004637608026288619099175777769786484570763556475768589511224720183759488894426207380266927478866443042463020404339291094542550087153399549898237644396407806677234043062057719213867192868925990304683846041532435396423607129971348448969062773938381403986908337112934213736719709232052603569444049660001831894350964630481724599604840098427626312510325209625706623601771665054500627371004329593182755029924784642437759231270428952817733448416354874690969799037792673096573673049173808526373567539274683037197812892896449640307697101223246484191669229041454030701575560224991189375203892023518411007344297911035242699910419957033029754168483391656147810058014108116219740384202121678113422473073268189364088047315395112040674289398124741399243711570303357915922958246955007992597467247253189758145789006506734906349748914331656224124645167511723521534608913274767913572773648407246383785964482176516439650362278434562701745636197555626770148868757923027443352677268949310591877529298328092791124470760278485616109704918124999705945978261232744856876492027293167137034093706064292378102529804336002514096185956184116177529261274119992885537148385744343040906265673935484306451652272090794997469561746215680006054516329935737210921185447499725668160041309639204499390973159317474992363213871297724617886262574274330713853403245222456116233334307158268134247494617673882797621651795280769589719641604545202068971457800557623930871721522473398142406988807270145321077601760571326172965766936993546733254118495489745710806473616672732382284048801251730797908065409865270038191575181975597177014905943888902257375267847689367655023551685325776962668044209136295971490443196232387519914838972648870297867810787050260896727525089334980291230862887087876076728225251004120842833197208175468060035584054182272504061649600783878890683258506115975996010886216271652392088210533021629268793555977421764671663672355861794373429659189247057828999298363050280499690482614108705622373962341083076536170501136743610006567682446914234118715460524296071989697915017235305442628088713234989400371039233121324046862355550329314308284892614467246092954236358259095044808801768895297726227246305374221534073804211148391291044113659110282802313860749386407737780431431141380562979874012089074859915288591716184599827399133481039542254335618540125142014268926949709498855011774043230534690060087824272256862680667325684733533927366842388810054886239602483739852643483757808242015041772963384030142639938125367610867099239121948279661377937918133250438285101153671597740442615686806826889089986482765998373534965708727209536730797609923136885677827931467249530913725181043546699670580744392217900542019273959687419744110889500149767921430925713323435059353137754675711032227911916248129819233439132285757990079810664902413397762290076682701543035429753427827900170716657180903089818467215738660514629380058083346915357950226562838724289361277802883504964618741417824605301366942599662139293657794265081040283859171350307986310763927066120192187388955700383604686842423515306117827029922209853219846368020262414169562159494490646653423943808386475473339760754586452975066052288006509108057847852632681652741176402927456119358705314462117009085912481401034645617121944926285507922158431728952960118224081451118056455143980730852510901397868243576684432635330569516507341838038506022439492188390039419109067111066899023944676019060666746564492767002789255230132620214650947570940712801384150780345053548572889190062598967830502931864891573574611898281613965737692519921217994095772187432485317624347352243671571656980562681942316848468523147618718714290428675212013482842324976318687458638602852967496602992537294520299104833530588433974478514180043599244649568139425340066495061680922699648459582661740449935291839894734618288871167927615015811952981421574117592095932189947847896153209729858641079375832312236494479015446435329488596439628587437750976093085734951537785277071760608242893302842075271766048852179392259324267899700765791008999454186722839802894262099875967562508490882804248104571750731984620431167366829659073454843713015667612013115703644516411644542180711773009161115335244058169432142247239038032006374534385394219735511277508471724319650178769694758179653409183377872818691105376875517329766803499096644500967025644864712665524259163758414430446564970980925696114012647322656478950063920220608904434790799682491560819731200925919238194556808295098190068992989665995792797359276369752730857919625057427421776233892687425260034821147627231415280288480164446731443709143830523635373091471258511690540646203818668261352380882363682653377318630767715776820843948434228140760858982837985501494650079016190623965885546791496786419144745735013500531566421211932174297189550811463027566581241794042302326466089308292671573590729830341300262094518080720313518437068398311177756988507888405695870285880667304350716849844048879170608665218999637822769048224651105720875091653565167506380886544348610013420310934227894932738446637320241813818825579660289484865968747079357606407072071473291143205185411278996816086476439441648161446749650399617202991873379707721486037399290825535947031244627052474739701245313021118502185764910955668596091915490580145746010991783426208323155583833855175049095792335733484690852284066191634268757049585473061156475869230451307070635406245814536170815769525421433948169534473184536630162133213349943774968961582250555049623796329982417333303183497333657144603341580488039009517615328852438329040349355798418870690966580298239327391718106673047299185434613836089523649361288307313729332394408216798282525344283786592314247836286475654746331958279448978021484484259421188490188072391744252593291107988164022588223202855110356024107538841986116457805124466620932976815891679777515682277571723811422695122779681182305121809097745408642842533985602037142709344220899906430952084383590558779397940335895847618819723636844823101222476430914442364636567567955319616424387016721429422226504093250824736202010557250693581864084194924279132027048867762917172657742951424907829305729718260228233927557068162688772050342664773542911107861216535930844774388869973795013426435305603689424667531927370003561496269346015107947926981976491064802786240126044303012472072754233153542537867987649424429728171627894252646005655600509128746690767810683467200212143561945495918100027528854536279911583440348025458353890017508837452261341375480382268977222360802870602916930932449655567434889660997405081185984021567502091016787373128502733388022757005097342013995337193888805634822101895122318752633447990134738931616763144801999493700086805179878216206162656645284904831815682012891712367768260455536565492159386258967992127262709158719521206890689151147682829246364901445286984544872566289086185055731827218258532801409257771232639484199117670951645524540833412302256738836554552899949356124723211563683618942853519935035358937819519188161187454783850053571137824754197789071201910592284528147446226014321806738962440531420065692220081696445541924950638533397884702681780787603613379913912122928191324600742899286295048315752754329299098209448091182575061268833795449386556936685402817448680815817397664055595103966522375798642768713161777825443694332965968321436674970559103412334929346350874994900451416759624108996757691101516637278895118069187813162240945874197899683025680842625161288267753018572356608336235794698618858446950712362657536367887525594263811933864939603131781741791799951452627584490063540322054817798989646394848513396895462684385977140355076355231760057060584803453206449054486089150735571923441519512617946070205654976880830201094564227225867351754371889804277820532324200330198124481203275006705301082687593222713627671643153119811282596384635721516809414369860003587768122204941771671760843307216179403325461431899927245885457897441738280005646066084335303855650950546197685652473035204165088196678160758567035693616470753999747823282404830513687849834344211301558798808262902470749110166897671484684354394992345081479496964542953416662849983891208504849129767061928783526100424016061077929389071180913394394367588821788793253429632034188235886600849661282842697824503403682902065876950628204651384297427736081336007342904190063759246851024678603444761108189020617551886355946932652451304512400571185775809210819115715527305370741293277942436100874942724697151491458327452906190054950900630361900918343525841193397791544347918852141821319253931589145578815183544900806030793379235457524972113772818586499684757693779751321824958734973325972248265446234576821749022409687873840691869220795225257841203802438773596016119761753087830800247032999277561313550507742467627922940213869468828639101961689356749975725990235713114378606132262233597409091395928419865491540460051852562606071627434747981815537959013030079264937908066496996884607126925803892356860528213972867273871668422445560530813025141027678726001185504091468520275750800865228459805196483643051175882059229749630424948119978125913165437966646828456483534657500157544898598955178009116320410040111593047706939533993289659296395752021197412184800621229947890118530493475390544388171580100663886034188657070544731940132685601092959738501918152010503675748177097281818387279482584668058157495258677987423030199832282885697212689119257283107062931159898745098481725215777637022050203922936338320219131753482460590347089334340145602373394748067937148908484572464776828656754659250416202571247386242859170813397834808658384513316115238663986910655871205820632597788080090855466830788792371718217430988567108281914907383659701531621020855279223442379597456912090439764313957630982358525032283303355672254608855186565676735301322814920742259739796023806722380794307775963891336795586276118238364705080165243809194933699023428553976060198112719216858697566896293686672295417555617881879610336959734797964622686677018815113895667211476648550413769761086270059758186675280940399040320435199449091854748067661346566652293376920609625619047909626380140285945099250879175643886288981369412699157847076371060518561475570597938627036087873725107296933147919745052611061698373924341542062792112624338337900303804688248315787276952754846807316138319437262832550987002776886942235312046436639899944634679677620407253010764156291554047241304138542786672037616996117468271057118003291833352107057191502930016688825895764178707336458095915719823233319145257748610005537524886378893995610509714055805128376736828274895406015849684543391735937000141207840334108121606944746059015562945052466887873565454700754654345511805104522712005134824266079310688303879162124749610560450226843198576297160882047738277736530601536123570276067002446864986602057181875396234446178481815216465143918937448274146155168031115707101684911583690205477314365682852887003324516680312010923013583094047102343657512725566951503279773980550204946772782544545151722391270969619171683320515955763084882555723782583272149047891749501074027189710362024978252009002329438062659988129967674465619909051780202861829738525226293546553978182308888004088919807069469799698272255042598496728678797136073654685602127515695288596738659539043625682182051052265009968530917321507870517206928538378195162984533008189784732005542385132619687588574828823193278512699320967371602149479017289903667102322344484125808342222035241181521398580645786023259238834028208287650262764623582789271370590463002516101723317012198090625234490417729865167834620000957932221543038643176636679547660704725812593403842472618743843910097205755903995103093188814061898770181228779008402835572197065470648684991772756124455359896506540532987349901595760130165011625847868072402873028503089371221271740429721115518527730107036951237051178308319811456051177936901916874169758779048575911757433698035645626859414622756549448510110883326530879115467723415621257866376538444715175226193536155396323193378672030724441604631009666176443733308922186915098930015665737136462130220417352706155377333005077697050274995674143453463595710488198335101877447321264254644304437105028281988763570787967027482930892326197105232832570489031411939391594784747417331920617750842419159280913805291703790894587530750161315798901030957662851079808063691538946030116043451287975722147478938548470561854769405736747410320209248296336860430856489575736123840613842225011937033501902351572791616368299262805163988804022594527629392523093907595421063154807108993842482299382152271324041549651421842363275351110558120176784502794286227972899437859235401911337382485619433503812342321742238437950854497686835367769284134103569189839648352781128500634597719023167234470977668450850701559409648467302637617134201089963430687821176292401111138124395194013715222154334614093866757182977034795635958971771374458978782605636256393539071797427118281379645523968208157943854402611738870446223086680090356981368400464465110722452466609796955369796058156211732325771015453344299508920291422222177371429784166983708430920051918068305873604614143027425670359922453055451015485144795682533782035001533325253074147219888066531989865065545665442259342521251842989585916367906845423520023462881963176852783591451906169471548620470931093588475408614929832219712920180653366195704166279524568717374102842680481907988660593122837095143610908718668103756524550916051273888839402954404190271130020536546630307950669161987166929094773096142281462222698965537735313530826362632870215004905967734238814812457960959168926903579727154997838962496238633898175371386736939826885733510550313402113170699172787516264983625948603569898317452380267423990824654042502901771558782751118523823398632670036847366146851803419295211977006751378047441313223960301543271297710344781123604703628289391989925167846196094515586834741786019394605762888411201235554717665253299758810084124002707213716002515008012963604932786738929291293201650229015392138657249682364355037603488744888691622085956238239620627641287402223910592394313433828293673179619038547172728826440356625732577414051343193348491961456920837611781710346380537990477133866323323253387501789743887356040849989766353225998545800524862374677583405918959100857315013597005718998522338755107929445412858924333291486985536686357472267131038939017578008681302681458403690738885911325201767051317548694658788126897564971537724467527611867774880781109722788378894641233984547996202832084025558403467591847129930891483252301703593383089946481959570165402469212207811936613462973449804388521381256685042014424855507062035247489906765671880739804565115738299606562306440937165988326884550705959871883023107182810105276153104847966591093139297436696612247050869115765987255805782670670388894760296803027201242596801681916573232461533688151039328736039751850723013130063221154125481199107447976877233923267149283582861290735414162878754353434384069890590715749461869572020475528282597599052893181790409712866112956510729208726466367208142275887021963452881853595854787716748975460609615879060541719064559537946888720215248836757867575552608360271302474746039088809406674751478301618119242287248386191321959312675028927731300365140043458269075672617376368029626664093580947969707239464582158232967031369401068238876771124632619380965291215919966857009747835024995946293529430234188779848777388423552230682166355323901744798109277778564278195892439976167869942126880235502366456657767373955826370770558394949368286835164391047091324338349574623370778859480379420232121445856762819647618038337969190913078250608551059198387156470998301791920933327946688218571138802561308469088560155295014564262183082670490148591264462627870923665382297616368713832150798322963976504042969837261772959208852858099405107233969398804470874973086567634642509387873420576891110550361323819744403931181693195495314669850849143800318569003524202865855495760971942336490432652255545421751959422779564676935981817294032897597373707151963685219509037695196613912398569146356360403346839863918392691954313831320153447493639358016814225964594224921637769580545081840113429327034499944640624569207322584611990159043681453668102416649080082817362641873982102249713224720763147867962757553365765871433648052251434454961626033178623969327250914558922944601381949477937090477497296228329468621695254937377397314680541952660038612843576980476247723060973599136117464824170250120207494837665306762480082906911810905192110117557472491521998341425646068481326455124739683860416297726077099714229474627699514926404871707828147679166199075036222756285510180605330206783869313789734255538928560647110123725532396811105554016525136730939616508729824660493314469305879207965577084604918362493893231019027884449791087551710319517631584660024092565354182966946237738147332755310979097621908404603266451084333989878011922193709112069631268401816990874488336932381860917603204178402973597773114606751200854013944249249376865474885502963321038276408876915583304814251383613275743567082059452247634327037267954467487087887440121531491026893006605559919870057888340854076560730542732724262693109746208267123206789308340572119574416316913791182658772553339445162662504920336903436544240329358341204925838719854029383936308575425138169648781815237617892946104560664326927936895471141144574003094647178642745352035540934808025342895701289765650481081451172331048090566426888232684025804978678589868592900292646852039704232838917722485217607038351355686934405938348819481537567264417644830436721102144585042753899442657322346295509844839462703719201085727250625766794636867656564774317297009681215021703572916865756112908247364754450813383195262900074533371992055563010859490973378113459942630717333584666950770537514536635236224684642749215563386828307679459687262388523060073114927999816413383211728808130486196469342350526771215411660966082142603881316226906467546026325556088510400957389998112898817118035893699563836760059397588240818615504361086948849277000638168021123440132484043246994765380306862471901602901808591994740422738605572195992122913668184639516783075012987174752885143493887270522574128236267213374683682110778776977241402454869485280485407760416936797271937676954727077089799683460488628250765892843411968535926099982328924827547115144615492576683416022333349883741784428404204679773546367081731296042989278263365958471084072325289041386744893033394856095602511021331923707826147875447347309692017422104468496893371384771437884554120513870844373472111303203475447600453869586992032619672393558202580134767341873702984388595334438941635801139659111708527046078446237604311720045051759545865391489305843151250012509955119874674361404983093190961300919971247642538904008727994668922974457883064149729352798490029519500206302199661828983165173831981457913581972546758952368902856304138436884512702273135172748173588104879772743095652251660192021209021442160418124353080497185395101633224709963486008711443832822765875655227560067458636616851243815454247751982418563824286546674322577843347745260468414352549907754496271695653021216337326651998172959888538188049146093431842712380049009453103496588861521415340505543655021951115855178475707509873313963327200327243514594409955928681094342665970917202015613353575601770011556265388504397629940244833308290436980815991869437771885593992399665990599109681753719128152713699532985897726320288457007668432326638682259385200306488143183818710316157948445756632091229360297244920576276238351133112694723494801067618969394837263324672181235198222294778057558139426685272032964625812734036402882942030465550701139924346052761637642664843044671542270569374286312681544697042484582516595471055728215687337568553455812768412977786326869920390263903833594301788712714130707370258666363794387245378059175238024626720148741154616071532329898976021335702717051617695341038370595000401702338863698879186178926904822408357747815389808157026356989782878072733198997172417811725602677579491386219673086557578988793521203293229109179311561228388032959025053946738150753168021036175295939388232292585568881251373143016007202541022667880152741094710340701024418149707653420485219845272709980243333164435115396687847842309938250757734843065716739845806621804852835855875935516608027536606734525505586023632035525521685807802276866330041251552131512266387608740558481630549278179659430313680245774811097721517394853556719603311835439432587866268623108661091675437092016795912312083054956547992727340180587144932935198605914820333756054832981337102748948332664548507954601095424470261304930369003133835121175887677299304806079363526037970642552457637363278934467743233969175599268419809328999917329086531754417199304266273645404401918357385340139000809529566004411523681547210706416270967123383810115127342730762213251963857008896577081470374329208156135841118661761537021763237631689124162637385196069734030922529782797470197051601468623556496823110919442425953058520236877028341034128114679006542669814885733295914840362990284170077986206639539602079141432457209129334133384189396074510824191502800162469104583544314036340199400154789449380761831442718283707838109391724507227987407923367368659262193188688605560740253488749001130340598281705938020622797403314035592881154096008032098913633291233631270995477907826656672075580454298303172208221135255287376961505586328218913440615034279581684922755341865555645065369905429588124238041417865767099447020455463909548796511295016171074395462781681088922620384144425625216494854511266626729214623401023619622696757177753480918587873914995429182955780727543841414200576534377133704533336120126264470172061359631247977366297267429297705105562275840294801406353702721681315984836553253242194193307092068802891308159904485824107448969997589673224792341848924126035490097229174355732613836190951201466580115692737326990360085361058747575482987934310451310871183751824458924263287053989800627738892391972234370183867277464601805234135852778567453775377145738428476818552474327836781636057908659420294032042839801697858364637021528423705511734658495273250314381701058462903278862491548559731406100290605373640058707258074107626848146850584162726263586834671100407409854340916054963048412323154092988190047095454085736182508775005920736357894623966704911361159312349434477600510443266591314462421307427894586655259733187216334689945040526374484596610097600817518010369363652882729757050490944135418624292256109931609836306629443471726558758136621227846535780293123490090009585038479609721281164379353434872433539854570382513952176570153430257384644515914475502229477356222344025538468458280100050340224052061244851489334859734190506689076034355476786421007301466964574373767309137038754831161739617953561286577636418520111311815171931100358796242487300376516210034670400205702109886137454220473339114225432144158340725760839448420860619644051346416177275916411417393752735114584507381883994224923981273979996923613581559644901197047128865127843414663671559195589512903750777732552618176096825397040350706385153403694886521141421269323180328979360535982139793825433513807824714758780757880605858796734578817023641788314940413115481921843490363580109222707026677947643471898262835948896364224353008092827942313673315277891790195145640760408789580081453465881384143713790132664349570099097256228964059505030166782380750157800627557236623477761625739927338657341583207081621007062747687679773867797717984982115185815785915177569793414035865382515542943295625570522775933578602393944234821971291561074795220475922496924603872929158345985661365655816834993184075565662642006417967354472080538544813853902199534823589161063236511460860100620634796463167990636198404526224742098296595371637281437415714178521105283797978960953835113777203654688035618767780609675546622990755039843574334466126146067826846903738272081849593150546991284602445199745379543848012864225388796575471604733087340286477905152339808394274238481570311401723078679596609388898866038411104632795844678126452762501396785332752138467924952922969717278414339529108210398534715761838577826150939535196680685293231149702864687947452304075726497970203737521053621132797672766024271667508772172874332387116914275189841580214249745815656528402679699747184497589061688386881224652348161446145065039981165155800085548998946517813838058834122341307387928047494760564936283641538717380955149982100842581007646844718569365308418433782806370566508224850856744514593210665472550247191486780321578399825091126162780866785532999698925455169736770393320141622805855174197874334124138034653895335970179840008739113584252451278073033806356488001686238084536267757415130585409628669478204127961207871941677254576681421754261907097091582476631452143586427066650262551146295572962541724392694283766409366024264418575299868680454395917597484826524999737852305493642089139302461377122006115656132361594622402929869364152695117188511273872321120519740807171834118053577788288152464898046521174307058345921668249451494673410995428730941128981462783890353259798365189954493065375102197836854059187589496234605005193117522238025919852972464649471338925674431331413578655061479036553924718713149158363428202858567327009968183398679266228979766228899219725610933662328239446216185393774875025075626970429788159025408013098611475557503229332907076569882324869701343812486962014864253772965003598543502637018306921088966588072675900023286566926695659038806003636015845766532706767329074206460582338302923772969653779824654897153916739740725921540612379521258060680991367438859244519704761091888480408689816177146143945573941422627413758912609710626209787129090895906611136894207750624039009790134625596500847701319478703715697523239967185895409837579899687238147731568515201904887692187786148334298413883387922110462974539251178899582513950907121090531375414886019023141412515279743928665186438765709601592454877728071868073519295686418227842532159339115796996825175315738848159999397197714449140556382455892670569713222553404411096224426523254839866527539505879539980135681240305754217974627316709977095267154925785176110252649175192509648919663259224688457623325515198854185611015729603309491770491279907923608370337960923383698897726119700254107782245938235052952148245782004070281486138151722267656535903917288224165105002378786777269803738115157062066514893453288920884357152734868810108731162476435617856322649568325177009498319838333768085027563765386215332079807383786680869507984209207547766018188124665224564942581543644359133760200023378300614950103517096439710414597568910987975811335197447925552420566260261325725638123080148127257438577525189828721543918761394951636713901567127358797382013632547741289531419395081496086432864478662303921881355584435904304338695246601970907214144066754965348061647719954518369984133349083464735457782638145025762726033745336354874462434193739362904079913194464253501853641296314104730743898796895346947750723932427594078224381368676665889060403218666987185559726719779862012026865446197158436706544668809011275166046033530233323702152999350167618968125184627574313127239204529708891038329016803364299460793026389907154775896518706417350779180246181062349759326706187875704237801241422798309987322683111789043843363599513839062605455352965426830687924341813246077729719238792690208186599611648481320174019717543803293676184724224884349689481484577401562312556000108516538381358930753220556419656354248788238454489841650845058242641028674053849265890366437710544805576683618559102852315852680094520878152563608829402280121949506266003852090576197346051756035594003439338613334369051884758164895565548431589087660029141512496600741890174254359744290949296896405031766882953372713113471119901089180181445679921846164796492869562156837933101115685721254392513010463101063403480661871935963052458772894735907726107963118445882817311379970028067426729135880705942387826692264994446284922076426295957612512267387990746141540278630915899301987875237373359078731869438433297643828050718706868634110982640606866780359955193394362785988575274868170368016678296367916199935647245405410902722141207969062616077109444391610454397217778973113192667882929265463209883523291798232400380908079640111747328983526220540698182850658417165012948196705832384735079000002647534181182396076498582131510148220592128181332718324282781121871055845609523167505171225200091842229005332701603798048104464154407015810948284501940456292674427725720973970699305814999788707153624996608625317781034558105430971482259015293213498516516232405415681690406564475113226467472586677814841836935659407962478998363961446363014044446619796164641832208237944440885183226255684788534975778237388027280315313605523937472988780186973558908463742263213196583125208856497800540963076122711950303519299336077318750123141616780162786743759813092644525826686522541805049127989743516845558308487835131791772566311659174115171562004016426321732528827534363482875199422395279489751818064254663602939010149932467282498263300874787920457352188844304492597131161968372117518433569146197082206368510062703253723129077836519777860783652204626647107485605925269129165108535505271914974043606400364353023625547643722173594142903202300861303830370313224090577935785628247569523422451776412737380068205128578240420633315680866082813097238639146814062455808788483361079634987605397963903088195224376448279236426734163577441616727800156361790676112839187125649753797034055045413514887706900214103183220442331394655020918593369285132030522532317138034186513405770209310864128204224899306445232685291351924025436632672170251383971574635392673382462764731353287181130473163832461610405072214250512986929958769514667756703433015725072767158352181856755845903828853607553537532548538736756821878854068787116233125901418402257059325478526016873391298202488747672905665712678393804426685247045787819034836989839177665134209069524993032036440190743392699738047525144556879805027371569183588491444297526858685691341098650271696485979552042082518535906544973345616745051712943435570218739885036129700404387505331945588995009620562882337722898968490670573885274930835053252764078331412805302106598590174970477435506423803078121520294194155795288864837812245041648176932777279935012459789082818314203045716760313072340567070617179649310060973626116485471831310192537607954978601948799333835041260874438600973663198831325128538553985177644235487915152428989476041908096370187678964767188069339522782474338899189988450395611461364135323757239638363103843737660090330178516379595093211478794103960386450101444201495498756792644319545738241917511528536949828416428586442347927920816194128053578019860828525218848390855667842085171310135586649649971162994273530247598614271907287274614689369770044110618283288746984212032982611569042826375397531235563636902834385405786081174017161610922522207888907707328721027508545253808973846325840351623807035204763357493997363072589485644421866775114344303944412320495165448185849202314079026191921582924269172031756368944784433033102021828484525511949213124915946337808191603952408621055581171227565486977607431167112001043775800822023276692102302503362313073826146217484509362350146890895444663347671594627136538752265277969972241960615766368576084508338392472365985643128072059883098714365605200189276643723499488825205532081036520898735931444659285111097481648956210164248665690698387014831237547195259400808523981502524198562508648069639496390801625144518694131736375128366122020437880026321188445758568808555781076306137308762134709311943459636540860120614354093298117427379712428915456350187569001793293219874208527911767258940560316290967286647916396475313298596769028437482112126306017306946462471615685205470533851518079171139266039113717768064632447489518324754648182531284519173228559863289184741780525263438264258536566634646534976351348831395560619101077364158211907977738050781152528660292643603942005053917039784965846783244836328638078911633321658437813394474315475604518694763038191226176922138570476549660703748516977440446236888535719335457764273586445377018462198296271104970964960475768059742212968309203872880649742409631710281958321241949783811678547421791149557974265894183649477060727062527242069308006957460453684481668641024788028809110419840262324291182074478555303726260969978700434387737571660436836505899858013529941399901685051664303137451165671638058234548409485832078151143219687371539718467310976572289214707453582930866670045556466525956972183947497031413421136609267705063848389027528272116206759346795081769031928323086357592386547726022492171374863243988534597884294744671728193091765050735574265057563798541290882003739714177398889578703603891716081431968617385454377245464977509627526220207838603412156880931635501139498485183105475984019767177411317055716039602389150147920490583608347459080251945085360988745892621423254213039182553261063616683137087419401519258613579670236364238433024739805892598553047061372483565332864193570051869165705248722678736373645571154630190486950241620930839253396093873113894564449761039218488893656520801545579928174539965573042714110269286510663793975986501489158749445873559817833016364208543616352595413737587254591371341729151790073694553976807393536661504179417980422601544208953881176670104823836855530758973513301545576811653151384161920788942231657955462403589106189385928983169356110957318659055500628068104799616634656117576678831384553460009572057570397157238063920919225256246685336575877275299616897255129109611209385803404845544141706789397677697874046703617092936966774583260702161310416651084248852264544494459023749249873951400860324315188712596719604216786626985670377832159606500531967946207335247913052538728919860374574909304360366696718168500486297418199307812469142760808760201759746962307734621692250118519891216811408811292180613553681432083226700817229157939047322036187462323259911536414755259694852021215871409347252766563735824515086275356219161357332064988882072331712922942181801837857818417487326927663084804742822758576907741535854060533185203654050364190438179016433024613659094379906044562704692610811913123543551334635966939859172576131834437434381857214780159760001230231083410046424315483508927334604950740044654283527366447441979602825564975676558960934100094626785999745723894083171112599147406985411163021458176494248886388812355691045736335952376147151919582940220379364212257802141634598934887293766193883742713301566597502979918183020442170826751324036630795535928483970233446440317724468077963311783233712945107853033527858897905974977556291768038675726443459957938992419017165764956310379332412267072346335058949131185325520796170497639315760689521660331192573466000407293011254638610597022695213056541777703041488678804545360939842017988378700526042855799060097900165431962731780641331195367543471736104199858656642777529567928242647351306424776159664654758842263427280655178989557378202122131700578203225686872416355558788511064439580129445331476534545342954275432688475451355294728757076685945538796181969582882904601494507031825427406442865469325410056095517261848390875113046947154878947226023284212734133593015002397513459115328296086800136702159710347883477295812948010866807589193580083732989272325253423041350403299313725338322127399741532725256475453026457314947963512018245642060891286790541546036969549619420304956596893167800087861134152118448223024066034227503976485752613726088211171720966066991606373272592821299516749940335765051152433598417159340679530998600400061615171785601845627614456830822023482726510965672246517472454296278238846889797369886351153797608070669184684096263326970817301112326417368916577742709931372796849672869592621489534964907830017250278378356519445512311255242701432037145563265793950339758354070919724645128350804689382285251684092946563515983413061300695597912986917677224163974579482263511022630705375387498527180541450743106723746520063568828145344283539243361446469750212616019450461836537603008007057378450114640191412548214674941695236850506977256155476434528701093237928467700316475106999692546580272745072207964778814165318966289594828832004774211252145876505341201510455142231191783431656050485739997188411552986241869666063559844624544737071142902587570230949458738211002359293327228239427520863197307356715975326456925349602888620638678206146214923457387161424097285651146019002422674248749186047379624525922255233322965443146934717765710362899031595491633831335268219271191489478050825151554307670040368323725386673784424323843774567020328120155865280370159144651740272566787005565997012586435217106051434177529651979813591121706945413198442541754685297978033500298848320621555323118702587307378145341452009530204136757823611122475091103351834246888496721617769399401705976805375145299358487361517089718828100093022386980432070487062541990422045572144165988890959024724868249238471302438360020631059505207834861640923889896709767348998061925098850862955430323006418470701747184548468426071537206556254362246457950229195435536207916041911985328364548738600480853797857140203715447794284186147692353307145849392811677363783925458157494432000215048166110961243903332775804741292891961601984133745297985079161808446960040634451453749453481794176583253534275804998700088532576423806284275007352053780892224718985426383479504235775019374428658848341798531791220949993488011249275702854409647596467330221714526696969479407330712565491713755789332828168221827672530703109671004232412464690759527618031603673123152919521057039366600153089505505414092287444609949206609292440197463830765178215312738421223397965150876802981615477523093015286561939852435571485242134213670803671335134090743140015487649848164194339957168157644684776493560338614459891638548926701585866509113272849545177206057163278625062938774668599265234374655648452450401962922588707022039504492664697272100096430596213573889256317088727327597153776619845242146228499581950089860423667471522237528640057369416535372967190042557721363925341368731923448163795024418189878269399167043622138634296600249016589857777738520975559844078316923016671623467136094382823553774476981204644771937243317435999518700206003585540708511626387950872784600886641963760924456935499734480494412087671701944956429436722289674620364334256340370158654014577907961585412900187261414223612021539168570122611087761118700172545059095464091242610675931605213125116435708628884283637272949260521743112627148874665946779065001498661072498662741769079897467476888938747260966643276457192607069569485736192570428131210458848613169821254103957269360314962992230378091699342955082898124512611866143270051310782124168519998159775162906374190534482118554697290928289909797123430900715304074299963792850918513174205585503532229075969970217496909258940242239645008200398014281421286500219318816077401692936952400699619676161061985564402311357890528463300887885340197240287143847761776443831052705205488045381038222442139593891975045272401176155488195363771039731930458600705565981318018033280536370123692462599550670310541254897374189006346427464028162949122207592463059503631917119189456456797810065962525058895643068571579384088251672439381339875493757505916754943164460572750589310911790192504741387443235224927470609603250579158759485315140278907441819010918068630270505596837334161254420997716891727829651316783120647178268875496462520180973676895774254362164968982059184109894657968371455795255238045708659621463558629619049636862122651510532965284402333791649245123936439941974411321916417984634299573083548266230098497430393000513149433729304009231495332228858316276360297178970618115395800305642637515368963236287591712005037114592912720314503408780404958145976853519983322087045539083373948739788002024333516993215177871599250690578745735031730434762966558732782809255440285510074302969136898015699999258162826444452271573376093089728201061758717079461365627355033474326527624041039916540817955582453633292440611179000271510991641579745649259250503267480417992943227536874928193770322434726300101800619347905558032690008591727035549246101732010285975452635066231057313535328716703659314443656351951057469840669081957591672126273168996752041219238076301954677743589601266222235065263897854612395453242109127251085947665259203461484057655205241905238356226731074311474549718596944421566312144219641939910333763400169103269962360336601622918373831474916486357243140755560339303824190698312243060463954646749375815903270554786595553866789733680466524702292053280953604750703281097713071422624630992941061421710665555297125342191163819251886109170114597114222303830587481788441701778815713158170923024219712391763598294057852081904517561848504787844651861488824654489292303700252927766048618928862614552618449091149650967984249286375864929379688978452495522438421251252657693878883729986123582664395988851408697409748454248482991311057377883468836246675992604300134277484565878936863565829679560485298750396648523539176363494449556125497792596643600600652142342132431762236219908250863895119119940802474730052191099952125841444093634090550382719715950659493295427108628733811692308408710249650487167909175228621884639371402957558838544075342342554592171039078764298032772363378838313864360611682624408001136799657880818557952726328025388505571616341250528443469082558829387949838777072963779256788836984468627520854628604435051772872362187135982635638329374848183765026083813646789967375900051237425210729410689688344278343191304686519548489133153593905062483218178576483872038725774403520951687547150119698279942044151034773523889570715333993772867983854349112381316005281972297969408914438846705794312622583433075001460134300477060180462124219475663025650832021140569349144067263731235756528011233777488143580761222135838019299112782913465366120596048844888100486995787276574749321824018245264671221792855320122219062763531053375714703948099145883985887556261361996916606455273485232448597451129229453744470046546462779044090840041116819986664965276023220417337798694059940326490105519543505955915306474009220376746452050830692475853510132290914211273768198006657893753215048458535804996894883582340765852800122098388936790206166291677568582184096686111539982825433610890696448323136516114697953237812740269689371023870351768236014573955251420473855566619438311392831223375726438786877497504776425997305221851607633754164568313075410740546634192798729262934821711468852988919706784996795229143243133541422839844053543048048205380036095933775229142992323538470794673193234696660635008893761431118424715808034723115965185204172742516285275922638084764596862008729036281539606296091719394630996657967037785996024066916490130600717071781576217713831887838565262364617552378278403601577388245426109402425699014572986796263284764349821343937934130994021058754785342373950487356654813513688720729444461470340984391837423338487261120184747329790810414583204104209009338460455589939880651045387620846430350090653671946457954805019872737361849181119009200639138768256809915583601532099247604109735022544976587874772080807900672405258380227697014089713408983898258183812781939219871279985740532674076922130026582909497379577676176170458422993208099435254481568814147107300485531404625633390783982246471765500992124756174102060884999558563323212888864778776022384599187203907128612832564054379210645404984468421324698146116495736598003345781478169982586821882473084910125375979369193438458596206032817887260744515120972802731101800765600665037506618272704977202565907857596859808856296567935815207064747763690425760693512682596702970466549782459901922809516815548465746084119270173718956548852130261031498683486350403838885378331230373689044916421517123746146593847984659338215526986170455486010708862063581484962430113942362680954998869459600751533378768591851199049453275516172341664800312919216359753400644333658334899349595645509576871876888316117149732574650580661484253746845073993076645731574959563540187710535949574134472088323427418646949745455441420462546851068935020250969856245838334051580877511923048808952508983816663557530921780287654159618224311871516445961753177850010700363255717231574135823571419855924538382485906341243026059556450752818037913599677978481648956448596499023611546001183592279877673039178980587369295268129325740131862946704041286476445561162468101626404408861701496483762545559478425257024513894055064071625659072171322192480177418574196438312625561575615301422329858173894110326157528055443098175488785730598463695379352043573935706152612666008003866301641539161054325217225990697499439870535127994155273459207955020569368019658483539659935578567322036119233689925003642329961755791863813102993965457653152189929947570583056320260920732838593212201856433364992585741744014585364449782521101726084768509005175461151807428987595870205491494479293182108232930324505599277480371260745763985814703413637814750686817890648696128072342610439164379597926704284122104814998559751793032764164452024734775109282660233261774377627863464094619808136513744635029994270492076443707236562114805116676948669440271960619036720819817247112536855972704577658859917104594173915736083926599869891095003140415533600086205392455409757401565425167357300282940931894922746639931128808318149227615508639177424041224287602844781700176739175324609725158372606301813219855713373381645115764793341941454958200318672456201753245849667114178239266448698162794978510101137060328210516799774398020492512278332012548631849937265432232725058448425400860390942318523900807484576216495999817064666334695650463675557641690260500956138404361501889815398897843471693538120469310265678122067718197484932901990620344062192908724387556939129035146123609611154077096496343652412315387066552404465567733791283102926062865694431437049165035459531614258255458310444180703540010340014494262259867569379948583243209457194126128116923409880755756350905729186623218312997983658126042049208508045568853768957631838664640398231211435673330752639474039623572824718133998613529116887473147868984866725793211755945408896079184146455286934556825644663931626430198213966340674045249264117265856945903976064851697019021353322786854122517548086833728489150569150501864427221710188117274581293836943549127518617816083159848751473320749469033079994517103378732662575022884057276369321531277450257443162774628632171657608454208738291050705979756062522341679182903253792967292599868255843459749625532859280672193672205652069188406572149526777376907788828783573040191517066151779839633049581161732703667092204866220341177221091964863289499739669264791543779971899330454624552644003134749184038669164299723173643289629425754811824536714337681089251937274618697174532337848894022360495793527704025267490638785321522917172024408725860642665058669499500181561325729271023104291351522521492020376695171061068244874798851723148825655095804757465112032477730405030203105167337009248016390497248993735352453626592013781560575030684426246732677268666259899054444111946063580961503281354518804021013462265774508562044341908430349205813322828373738536257532326815030378206704586404895283615713145039239227172268534088879725311248416571653332210779635988158341173992255623627325645601542225741816926269300252148800956157348707458366021073030096112354001075949051874234814952169784945788462495343977093205659762686161182033077251440804447671418423055488879387565950976476879939705877358586425359710244632244729441992584721225293058396524129733379562746670969363642542385444691626238293453374061631948418074763825399640717856707141784900557543753709440231167942911182131370361250870263578240688408620888271477889234960816558302497961223802276001229559546560886381849017287080375684507252677200442209818351773135247717455400805783533078984441367572165319494094634468418648822444646119587379800551903890199583705014627777277836816470604340019784095553244436424289677844777793903288632767200384414203015495219563412296567093353733029682473103997831202316589765121734462509620710154097445477336733892551779213986539208672226929977064105798923808220149665120308706128348771540236647756337485231223948410689618889155516255182888572026202524933903408446188310978557853972256820298736433277802965408799325252539608999072146556557308650968275470288292350474628760040568615406299541014114985401420881515819781842202742579793975258659067553637573279429356710744343107666263315392393127772004889381024495487504073582936037139252215541548535457707908617021214574288872853134687236408888920260837291580567227265767825717001870432284325305616061729465414995290284405767221840550387151962087820995108500016625738165202580709586340079628430807921418347897458477796440833175650344703400695453699664331121232008944268810465857961302941892614703137751332646804693263592684971146578538893195529647451389660602035132783331744299655827258838513565982696433179031427725519173860664136283640239003158613797398154016000156473605404825684748520551660135470457995014427746701156330550747567882442768377713302821100951024026609845285521609727381047364025891658971619001506170372085775192270597912799654573759315181521669169075442643726475468396928366360296484378793788154357991514787270427796268839366787829119126744042222915573663022125845858442612369818072931561857131733917510227655560232180405580746443452121871949034027987895057117814588572219889621414613343993601235147636870751355928493287269478404154147668000894286416041912220242377663354097501263725680662760099361624290056263459340311459999423795263007310421561200824867758483251660250792847640714056352626569183514662194836089424018707772498054473803492943703547345413070426314449515295370321788005252074981629122246978556717049681007061089530265143515013702746461826526953018554877014026825460727462325701014514996915235672598596558757826663458981194044364155884064562173692783583868074737097005442186982733200175853730015306839345592436865699458353768587688443190096715420321610480028161176887170420723595207408874409060525167610720568694339640732806877806833702800577449817264723908747338769515096291935062706066908132772258925174152103344137443504218508509106929307752114966097252911140883593769170705683790382881995013523395689173600751060654895612456745276626057540862667059022095481864874873845012346563464344862913152849777323031079438354134950857212928270228739321313274114433742031157396807713662252918228877098840914528411424314923513016957335110491866929860721958223434458114145091163435741456720642425914983923566306625834899511331939053832163965257034413111628145744415219974997297493858020199380961259410362422445897225256080444807546582332469893864369754919345411621128004239387098880657111375774148951985568873916414801911307624105763246162640637272553340404503136506905911155637720591075103512899771374629968743396463657274099958210370729764656925378860023019377337556395055984182644071953419762591684052814293200047869675691949369619402722602801266520198424476981727689917637677709747327384192058751753997651226271049328516516990172351498886401588199765000660399707799260862841560065834166725589049542671360236004064112141440142730665310071223501283410299108317924311032011040907935034576683736929860698707182139866660862895435622845797406468239267075337698879530471415505857655408828029882058829093863215804118556799364205361546291588113851810510968237283323859373846802999153662706639960213348976827425237099243972943834596359529274318374451992221434703677588378084742679670048717931844630563182654468150572678702457197688110505596080882223879863341408985709532160674957361487176646653287771753003106250664508467617197640515299681785894823187201003961559312986004367374104760995212006432199256465846333373689274706274310581374861860281668775904879494269231646549010051367491870865622893807717019354190720284756379129226619790024222276681202842239670227159778284692879460972366105650983001364439589097783617351611513262966610211825807586551481745173076269837785986694551347613481568673362002622112047568300172793321094641812288447280597491304344725204645113276876565673054794057503986766470380606724651707582648980415447440432558799305104438590189868093518095654468811557756750069532640630209181496959438636831463320459630947299965813375409199944998143360676340161171923766655367154746035693376403317410440714105993738826781449984336735612111600627196056959324824127169438118698184673729018959536354195401760319929614295760211893127749548827484347002650594317986608635600935326271228654017528533202940017186129064719401919009519540116268578015742875786857990338547019097572943778377209147616964930115349020393725893104133964595989567196894182528779670898127082101217425702170955258674206294705236982711660113857029701558837709916576612021108662599385573287343482810977247750636761709827739834093730454471406264198805302426590884101836106656619495324483775375489882679063548675297184171732935285047823025179398703336826197495795497454667075683765897318607894585657620329761506866550543452635275816159678675345195664603849778898579378825683825321523249094751383454560322875705617428901909752161591503648128489227048399631270812670513316131910046182156928437038055275179048989062063704829226584627593460582668496042720030439424567793695502223674380330785068090142857187985156438130777105830302404820931484561002412186233661582288201931399336121122799768138972461908468830872426684216949246282362709717705232355651161363521709701621007626757721314833682755037047836053826474070168349850915512632415211513951515433480131710977409170534355395058856621599340839767170292069636969576390369721660391263960895366690150711843428356388416243721751325789293496714362521592287022313219624588116777102435740496631982309490374011453099529235330804239629521610920236694421140462633258975700225397315009506837187526569970926092597145973630734814585125442135361327773786154890023629507654353454668027608292222423875004039833842852815633342575915567814093927933724418985640632266855622423389954087198642729600843988466478024397091130929006840381776754611290479719831269738911209221404648539589671418677627266964202825006592430232317933184887751845585021036262301140097729613003612933647441704685415221229531945381013558238777121064781548042829567667107166636769905700291627275656542014053216920502902943389314298543456743594406806152038313422432291370880477116559606410224479825841866850330164378059674705834331964775495240808776022824087611865644667489079185852410474720544203485001833101518881278945591965059821652543100965718872716510993347279468701414011181158495138287085670458846537933358796417178263613461293033036363726540168174683968496761834716382298880730832054439470243233767079976434971990026965911687660569192046618993434645515495919084286641597171672409144653254561741491825502429899047193260442500590088795105300989843613699232345720493717222644136007100831898081871092035042868262141790589150225833721231866975294004554945253253642174534978884516051214968195390205494455921125293520078439809156015953594387811554663037043613269703036479068919173366224991771973993999352323731771757853047078607112339557496101034809613112334467937495105478794394461487636589073376142152672929902011372899144573322793246642508381418437389059623624856810362991346380796019515950342157307893704806448055279319352831204029668623228828989616046289387664133713538203508541692385468335746156709387526428155510596806909131213212532883149929228943768616618799100605283780297470658608703996262857602636988480001151048641643996013182065037801660347398669232599615585966751932558256476138046930228690438092376680327170661539387610863171978948344498487488882174855746205164323852572204769791562155511083228506585745850901791033264226506004974539790738817354958723817060158587293198641636091175093212896649042637085311320813950655662023300111418127732087962950168245506017634693540174758571140191086992402609818392098263297816150437320062861398536791292342706425757369816492756238995747660399553201558297520657948844194476876594313577101970669261039581910144389516313666643335779048556663125319332103331803539212919323584601104051285054502644385860761021112671959377679922424619542759903740507686623328774391919708998144267539362270402160329981080121006375035009939017822310728524902261753457558670051029249678820385202559601873010734920706287501951711796453610037066075072886263017127931815106556089671663678049136081660343633999398147235157199308942132241423552020890431419798411585135923552875535891119798721997647660259145292422370581667174113831617101870460226204009248128286586231503164177041763607897301806949658657843087395803541773032889061343300151254207271404508300604715037246716225547182990703436629696320535161837446285510002283682824013153726417439759919241525868770309632956808165754805937568036484128074278940919120950528633351023126740865119730122635096982819662027099617988435765412139949955675102669827568693336255438806020734365850939962619438467867438132238285686360613932568748828627059140485915967102408674616404178979503196780357093626222973407353141832854673892187704995999822512462041612238700805599681578284694557902238741642647895827114693980646218842570119810042878085447262798429380696330110771412247331372978884788395010006515569915858259980236065361075061489842212838108619513488783906010937714783699112829867356232227957370009453966511965847958195463731462956819869038042259486512722991997594739784328433575854129631192019541783850847074583762744074050421598929754685941786083905653833643993370121498618578805277033267333769281176731395787959588954988279319239302683463685423464875159537854606291482320071026484039691374366350196127480409343307679123202325872971367426793057354054417988635142022512113680243029892529550709474094081531074626443414942432916946523740037663180973658079115098056042999739158891189044009393714902577766321105976562223198700042313966532365312411152993815208684301665133585146425180697169197916506506990769677983052376206253674918219540102417311018600932539444101758465502902912759338045081036115366432191854683474800082884142812000610748081245522151955174905334155127021389050931014924399550456783175864217869497778256364266137384724441066086511259922742469435013937245784961759126485919667243765650310782027907939808160109476846237757688488605808322881801029567751981180542852977534856376190648924451519832346625218349250011964639251907528825253540257966125439208086997929516505312464292497283336521520827316294526893059606240357008665739228661045838511819573781618046604625637963768424695454585556939862706806990902881162117324898206230048531837982460143327679404520318636368839393259821185050755013821007850429825641369024073695371377465960127333058810881016238347671095528388419452018500273420758745315134811376875088876866604367519087612556512423022363696220148340350320983845394470338165979449752984486701119291340462668368773409171674783718720746667071126662078913325562444746900487159735826010538792395332410608056221614369044851037670517246430863411346311383868224135931051389155483655625385171621337166541577059471140982033340861994629463169780535479628161035529038306906401367981054442813043108347339523974339178017506192673235234452646219799727828253274682081605572447810782517003879276633024577496979049372141226860404634268490622220946974271487303333149776814159612380650124729960451875539153320595692111271889036859981880033481031912581420882109906110066282643608951843876324165909436796858585910939287617409983676659426101215207410435807078291592712744214739348998074584382680275504421354859403672820241231471034872292220344481895159785555711488380185610909613881079949554637732250993433098454652974451823803612897989922231746429309788730388943542537521251564102985200131127778966496416956569918012538840435648800557766060204239319225059245399186103522064354313561814147138046455534540923187033999217480644907933900539074415542731293289982668164134613858026657122289635959989334582255154561980554981246160217612327496680619959654827128989976815766904785853215438817676532328275997011132774015156245122191734512095151988611434386291436427664941084449218803864156094445034279719804192625299461848309318276472187689457683444256171176752235416520610792974627154295544985214549408852710203608672001277870990318867545710448933897644446678672925896402978227031861789514091696728312959310360612349353819034367392368423593900277221636031290103253473853736937651821574308169657787408602262987431246380658539401118202761134953963035500071711934505436041483071848845492522998335275312370831492599793838686601613985984600788227663146024405600821025671328304163550703269642528055117208714559450019439368845174044607943621741298763171103453296093286275488357375202266049304511844754556365546720854351584184489810266987807374519517010537310295044770696772296537982527812367873161667362826734640987652822555244359820883666950606522281195393337361437398383621801215715322415059358299548191856700597061407232377002615619754413247478666856078134244804124027251453201108491903352013821562846830811205810703919617313457813886551976725727103615489133876754776569858069295205951683692877081143264253039283889991015560783286801342011286829130681434602140553832521215780534849249315460260301521224179326506352497975260516441349317853870601684158718727347756110638864115544189684722327512065929981421073647448678647681256438002980710864757990807683017921766157104609386961586856671871780951661472522490833521922160615780091715058588894070797606456968637055191715774603317606369554716062547787705560693531433207868714957470713362232434750836819916247201344930771766237600967900782328888245591851160414666092362879484113851377841849518175649046795951698097414489968691280132913204980299299565070895674026739082482703739969469908147997531617560084967796259039564973001026541804781051085797065342906626816836454212247113142780719889203813168869510727160468809465086716206192780048465164656442962199273154595865022211314844384735947120190077475887588307731016914366405421059144028499150293975981552237507519426096949814175571123299744058795068857933635187067488422808355941707787173336461101782711012223704379993631363789984035172947022251209411129655236746824963728002591375326963771358729289193753560021412083692081276884329046464154485664981496074619879675889264141813875160594787678958289968763624862157945864383365003256817475491033969367046095551433324371504942590323735830393363654691225141692197324229117933860071536991919887865609281719176248844682876865596216181178843330869006166810694121259189055216325206651110255318221019225411337038269186610197195926000016841649333639339479436323823291202448698837804896150961284247207992816479530500310517038413134080837503652832908047539079185249380816267414362692345176903998366791156407391740059253745050110756274733742643919979735796914104879671245766926047895839470061275833937152903143317869439772340657173377653356069370199686524554830698598891768677173599297656878963869716085921452573352038945409813935112770628759050823276255236948535316591630471253835847023827912199557443634316047751266139948170624320093606561095383918489362771929285553042725482610314321047255957137722229268885980508356469706440305503555735112084664096456876305407741283810401068896520728965404609230548709804357630113769445619024004069982429607059459450222567000687016431995652328807932352833557852158560536079386418125925168026345202046154590248288618552557054572412016817739832215260708075280571887457813299977290162500503287025211111729874631468950037966671241957605937047081644445279185016425479366812438139143075800263013153050649395315038022833691523689961441199856097706285058219901373087307904505145516324447454517146126037601458355904641272072131973804999342960798384374580463615550431985607575576520059141888229241091149240295896005315621338351152811065357243517308647075484427644110013744503481007781871493462115469710362894097749503614271957529089096608948022659560524671697694866229308577453626652280236023529389117755291222622753278667655415855326115996433332130729855456519621528077883890325146255702434348800694701921677363168687041361452039109782928986882630201747079136209361592132947127121913212461448995868889902367485467608092709811964938710693738186235495417542566699767324428871802504382165160052119142701032103987151971975266243184463116459572428828150068094093490039195214947684042177504165094792698943285859967313117528459180919466450294089602467068229032228665839477442508575008172098871100236088382390130939726605119052365809967788111431873551529229141889638026888481268195180710163517073640446057305452584971731034786198664107667969806015941228046901125276676761815145518822907879010191289867890624994684952601462639226715743259176236074541946802957120742728745312848420035342089629450816357284987188489862846349137683227477796860642750652411467076886716990729846763502730238174677280953409766217162501758629164089990372527309018437676846079745570113744577733958917682276409991730844362218347740303568716684689296280685456424526242390197735171952606919553950201753634411177703583300354752708307554418367112566004391057955627912492460009282223435288906564168448488156910443616566862547252004039124868683825643174243622670085053077405641755982317384263350201907316939511876191295389004094348568714664249206239629109490464333156454312972905837950556268074389212397457489077140768003400854244115297843058596684359480028921411568752140760307985388026326135723189907726515699186204247178977304987519269205808136560995373860269939845456526756301041203277702558657836561596602257892191217343475314541265749575998501416661207589870411442252555429415750982077943410451590987133824838057676536446287370800468721235583862892979705885956768744621010776943506000754457892763090526599840176194001228305070154102541321542775324043266906091279600128010767495311380711794348871907481993435337536542751606535679466543819382746388401069855859924372456076242191187323799401486478958100307683771529319049688719811310119532855608522752634682273018199312425565607704584306752803573983395235669607735275273999854025192053161099663794315735721708707725569915393606868395726945033104481618971396354718537777385694435412419475983652803761155710600304770393541174030333276043344353535249347808252457940861820086584169421485487648234002446793201396850645040692346056998407403609090933454695065934129821368779985525329748772574764033654761410780666120043087907595108128630311210764755306488382024852472335508625063194904078221659722060384708614369718409617407441965867947956975683300845737775776315327656610255975657241892178827880079299102987883282636944746274315244224037503062660102473236919643555784645474698500677340130420609809102979174116505109437079797131146517257070251074096904224969091742880887863002562799066106979279533222515360971534642408056199162376588788471887472857631973918618436467790787274598379586812974537285019321362726100995927463966135643678383997586821059284907552647551787934358583028271016920689652468613891428172022382656367967141983820628429339437147188641723101824756171589571841190346952041972247017364480434955793212357997773020447996622856314402998842962438504177202706614472722849245135169622842092304462018487380225387088532824594939708228195034855734523180679368386791590831808085530459296963054004391105034663536249698607323213969981298038858264896301066698511723505709098159035730126249791756297700977157648351960281271651304087443904063208699134155352108463085708877178910493934541145340401653455956854414774291061412843713253993031269986312921820376575567352206255628765173530174043394643681494158172519502913791473757918661371033396453372000589287117035242325947288702913950024532613747058139049002025241070393613453450671590475078248592092972194659658110598518917425596121304478666491078454615424725979454914204203574811627446764805445700166915729508551378706922419001615133129192011941239841547687320130431379085408830807313771667570468218677929425859770021310627242139542806609108855877284694356446040339252324825691705741630759130192430287313367548386462924881180544240469502558507916805660492263154630814685774854211986668222726741523689860970607570199238438805221350701265178676186796747894881958731634081126809057783527275561734412243223929333809629061513975736033218190493129620246587231874333241524408555828580725860126387633699482407143109635456064446102757404793109259451585194134259241787842048795587799937168973741660333383878093658606802377678241153515930749359719192327287541645449175560532536595512193325651518840715854242221544739083705026463019332070074331073759772219901089054457058374767850248614221511422390184394651892033713251572956747092886800127016288893027581271251872444841848492240663511632860226707261873961055898851339383709787815004272432227412638044469760485207497268297916576767623481758793789458924632650077134876417632659274171712426294083222699876215857717219488658357550499751736172415630891981214798472294656012287777879618057561756106146964207914522720555353506175086548491419026917696119494618608993396702547403150340315894740419811226842024434835015380588414394027090568624423425976711396532387746817631304999657294967985336473621572381513538810643508541273159600069221334945313223228437317532233143170817286160725688794191655734853158382138886640066922582912501575055882861196420124075149949137280705828521643923750900528293868265845848260280918165350729439645067065024645705357394202262015448906007270151346984922494666510247929783614762975700455336941184955880149489657168770806900231575453809721188243657381185225126854253379075734721535408189453110029414100727241876494827361032697977606482724326346504854815680324006193097426978541392223887658068604150451972711091719280049934558136362881540067435300521445598118103035327625221093235030280098173833090051619713725545241209037134529701305286729462272723522015659125817091018607094130369175435846431196670311474451157516482487235852577953561930207733697793406209889035237345712837917203771998185215692588428221156965029728594425740068187393750249887972696106584062520577177246306813435694752685979722708055033243205243539521856953660952794312328593800961062639998071913283891630438626539317932414166784810480277518143646714210209438456619047991803973620606356794976254850226240094767580735200894819263561313254552493640277359658006437812957095362770364564882524397477289694331350605009586390517300017513447269107865951826212753969712909477881098891473062497351146039178475710716592600644233244913389022896093900671586049138554435236412006358779382042497584418023557014861240212116352725856398247464895025692941820365969690402353235347461047551112974399831102963880216033037681020065656164450581898550567252962271046374888556921033180164801581591074851178990119920417420422211769040200797492233191800816325762902650598045091035644325725981808447583174006860938156161186556660463388814451567915889584143878359490565741977191670930853207600711571914840667290556548521705474295157039054298210127969095352717930034769715152287976379185556816524026464591439623201776630388697435850241371393487690624414359857043323699544068217539089670485517121408662361688670318067414522790234146499806355405396419272396491819180176187397993469316226247951032723888722834927587650373103187480926482044351245345067994063211249503515719053749299463102279168905982821652008623794375011995943892273617938155031104963383292618366873258275193266519599796150916342535023233339857329566164061283502120179117438450107694797130800765334844444100071878957049926496329480353015296603339730439461508261409892076582231719594552036019901214795387110487032711447486304544576807197506800584676555763565515356749855722237940678415969892347750236258942831711986608400091410470313525487935736716236837156881207064577426606198269819167077165249582972806170744424004258365029128992210447158477616968563825744588250965448464807192877903859711990188771788511957661451261397862701708631418439471956368043699536357926295543983793398444396583489278920256542381120122487491223597657310015049244248372986962369768188375761612835758343087857801357865985256223237767001714712629365755212609169688860243608059018516878147725515601539740078423511778173974912882020605772933060326747787854463595049146012883953674262103121962025966955323274592581806483007362775583588290956974943140497523048111915969566849681550801000340467635667683652270768804795120283262638622148685851452312074962111940030762860099337064600983153314987571076237093096042210054353543941302035394013181789531684623576552821640219276150713909035901825814282850941594172042300469598031852027714271263962129247318174316829868375179112814692031269905866956445265534061227745686667646299696206780687246459839586448384913150462274068013803821994163000669105473712726762542196321089894313720261296652416526243438599677376156720562640730724403316527616651441245808885577520549098914899289021934060464052255361855612075975050670593673465285168643554343288290949500394975433077787208647264191351707334847106509005341214667354898935907100023432150730723012965532677028510963733706663195784796538782829806912634041083000592766836824289093814763536670518672763461866156806520965409822947268966534249851394350880271616204919095850876117699143251448961194478071202844308522514786992569740675772447434291246417198025110223981769673124751942121074854300153304992956665632931637380274488191362854151696001491574931419083484943314278994853107635073062527316015095665237925906947843423090703297434115725536102909237260354834467198629777114587051540510525203402295538691948076848043082777999197178862388725534474695015485013899454008706372571678034072917384401644865428008444307885172096309658375282658584813029828606232536148823774143933841869394179328910957661846880383556071422330213406331862555301127458755851707578688207937717535661213016010470550202679639593812367132971937497595273619982336132984821239498910579083818934664026569078725650873377535348088127704169243972345844305129145731727651837678937315138606559806920197757462013243455933329546655732624960323738548642795563346022345788289753555589341409230848513681551022747298390225335653693566008120299793815299301126986145600677880475351575547292813478264376537576608041482467308538663435376162313808160558033270194443670531282562529244101424431005346479478931971913470801264129786642248612532921251480578821049642939964343172574164256267744088054585772770759361663493724390547822905021494361246920412419475105183951942487526397541631013900604075206025622691379271348461719831998227330567056483846512595615596135654793780126343571513799925656296401370375694107985414501165206679258293397368186975263285180353415399719439990942033067328083262489967754672971778508776809111507922152196266185584638401177101019271069320616475028940417365995996646224358911762189221022786340426905813090823307984592480800281880823305311709048239892772193692546817789569677467883817782620591276055097867513434350543761544356934896808519295140413185945867317657639935125358098784095573132189047835658329220198704967179226273003447160754011332708923644545570602647598041452028670745174507901507521150106986206198423902368947408712494884745985923867711624499449892290688560148404453820528471069111100528525377503040327949831836421523052947741374064827471661891515258352188965920466933111372784921183075541232171878986034737892901604325036711031881828638753748905659833013577414183970220390435195276747106596242781937788430865006316620271718302633883768281141183872511197081316407214808387525823991903298540133621132716515950739711909049376239899264950913408786424643320729859323492085630760020256825109403374688543865723438300093884534170728281536280881675491485066142728694306930064148322670703960482867209857233367155186515590897078990640822972235576268781949089636857198169542658357588710764165618244555441534252384207467140646171417572027688890183115665854352971239917110198462872378418746313690307495927928664216047042585245920296995113274407274260421092879257861895464073016655558930679936568043427355193558976445321468037552682147439025260951215519228611456606165632770987362509030216235718039661067024121118888110154407558910177882773540995811882745852026592366190747285909936253841250834388438232805655834621301961868974589994080824179280452374003722556998023925347761034777915108786119525327061041825873606653813986091446562867965721268014321099898450659088403143333483963158930386226473926906203134603359264569194522417251191805312209600449479773186312241520925827195065573723848505817055408059307469635676141742950755793142198045408688768173842130024797159960453963463568954831196643081386234375896265444873746592148853083125259452231901459938527007527904782450322380140934415567513313855936676852959748158008040395212067929399711046444877360689919390760013163353992002872932518509301519916530505565935628493544129812272047581463279942348325634806274251550444594284377460634610853502675063515879065535529262408480465534070351473184090852324867127579499110598859941911010282921377309367126430949849482178560212076575857788315803218231045268810439740313443745577576309073500117197492923260726878228317517452581683286459707147405743496161052151529061419218418937067417398875022566920337383981050777290547240396373514312289521517593721137832555833686697071984474913435396282939149743629169854876607648218525175350162468222824044367444632206216668764097275786029505733541685831690984497465650761731649144104054321998461049107177728284208069514306128156908027604829364421205748498335357777358114736538671200894928209499777113478529946528008335475567120740259956375772309642657479018381857277725711741922919810808525801764092335508999219448475811763181236010856446225149970374621995920936490909506537491109492329317959418489963752211673368196104340374366296311950858767198575855779915553018521343581434598032391733236887540493234689418556545568913110634718202884335656496209448114789213699312379497725852928374606920347760257029153845465094398831416261906365487583188590832328330568534476618486407011341299120316195226618123437703080742141716198615374783647512688333216413990794002513332128414166978408581491470997359986071112307885425643210572826169858215952355120698661219102395236074299114699834156758738088360682827454911205036348532524881063835066555207753328162976613391938734702532083796033217226333513421414538772191155506148232409653472322901415735013939131281167661896287144288669272653135373363048651584982350843212839112177334072267737002121967519879253875549578937034992154090225260069696546291314486817442150600486947220723548746171592774242203145155583414326726287349188470283753531674556888834388425436740398401608730592963916654555584602616239591797549714442921288237869208179442152485665502690297599041084140990837231535851345128890807359298948442243451405731831739482183132392465634876812611883477496324471382951739529567997414390745698610540460343498069098719929540524398017468484880456826148327921736271505490690112753237107231568955954249357227581246122204573003670959071226049553210894076306346853933243513282337798018995856627437075675695055683086328353511724393271828398275690822727727635530829082326942358918136537772189974937307760211796008714706424793101268318833565352042950632413209349969510189102049965032875935969608283370030355334706736504184847045923327140649032646323869789780277052482777107214486826140991848129138472379351489883848207464619531101699197722588911644862597780793636461886557343293711597488710755214134557957137591710085368676674706729170602939520212042070897556303893940953027455695308986794430934658808978296971788369450614172096620494844850961812985336124737492123645129563334954905958182491403039709531518396946985145688194693071147115818655061629456513973580460647786642979065830237152345092966242404016258805768092011454158746110383797702841860597706675814566163644651785925819922905122996388825622441626049529546437701473736246580014467981942030817310819660470130154192130065438314304931734511978186811927168192242261251152779149098980917162764056440242485989490684709377949403886506089601685611304973530446838860750581019401418227508542283710390174101282693572565334108663709873840949917113680183691387795255762724158357210497407923281859656235850479046381344907709362085829411670822756171264928211347741070064452270986131997526475829594749416204361936159261386461801416505932588587329392677032179402353249518068399429922840044199981886621611681224160378177583559772010859914885159298771106088084548619825820873657116037400822353159012788471197122896305302070324911421831367790220904917774701656332420458791630094593727614420049050012798010945378555389862723047034186352386553063578339510477054619238513417746647829768469829054883598821754091983506448954730230364003300225912041174685023707045490640756983816853088365721776754637083393462969979809179534883830683877587650306708192882087410916118556514349373336802314722254547235878856282254658553958543248559691227181436086327945943733394936125611070712213098806982573318014417349398825652992045189206630135677431634157832386701822791858984457862072448273013792111411420867251916387665064670197318036517672495324410530355806624958225742658559861494050336305674181355689379934941687383070753367937651139275494548486748065374682162056848102937307764578730219753580113027685758808896165906627615422257747662778468708317673241824702247899454997127405011587271514882269077761234188332878496261103844177977300851022043267351827575013102590611245880303930570261640897578953333745169845118717196746233586482059623197050909216873621094995917124166683196406381269079897227914555638622356201163553339965888406383186065572646702127775557854186858366936408378742170812478543702096243623563000870748451821222894769457400268707655687545510688025404206631402682039791331299316588738419795486599166816668086434044014822952681228934987860090971504660545400893054599705162512356906030443443347722380979518071388605300528592211232383884256694117080505266073114725018319890055031749198625069954781481061613936448851404219761395603881953620294146314998742464660479520056334899607348654058903323067338993570782093608950483217290368621390136148023893142065022725428363797923972830238546799528010224727642872458668516597376663826583137370736940173812078689518359530394318954687444272638434877311756966757912806888338746112365378804302018921678962652641621899398764940200471836460260242195956776088075034910064124021029058195597810617391074114062258563303316063597986401948768600451061136033600819926300978236575714661167821797366464261968291207802539093006549442077998399255416187565046239953777689772562761310002411707597979044823945823796628506856837962125108309520181828250360609589917095711061656071161992287040376685055548181780790604263116726708857536701511076839929508980878921890723015661379296558192496639145699525471941688612155601892484097469465708704375190235082645132895198478590588442468908304715570767834781749429952773030221939370092704564356602440366691066510356421418968534904049489381091414659229162508865833043477202055985056049183375068611344695382347680317928576157264848357836155792376607266261114849651236816654016025927994564895284573696729982819505514398589545062077656349732342622161257678535092611505635510836542295373654483882855458730330048380938728142984096699263912941431493246532717302092502753414142466522755386021682691752783440249957128155620106235324139787455096956484148975620876330870310951195599235509612620549830386621230246504084122798412116746088378628788580545277071938432422858757772281639762227687053286494196271868932692769569130460753050829193851043891100661400734900883309654178363197308765507922049630084792065776964330696697678046719695969560390131321730743547713352672233400695988055175394208000658008606297856356802105568940022217154959876448049106607381344600277910690996939664109395256117872606212620052372081192926522298984820223323440892799603178805513332262705086243569159514584690919312794728204919357419819852728568806575166443383914259509356137252823848589220158977194874370309489806026624919188089338639374949528380646137683944351029251686767407142310497813306574836198128332957881191728553548452466683050808678326225757079712149881740504671806254092526189637573369060303862724249715631604312585940969654027828927161917308939078100058752263234879632783183683197875119661533260799802173249954239738005413151927401083197876207927330865304580412370731118289775934142224967728577110545385500396601427261372810680314217366082713717344245779312697722161859726594215743807019354904229299729083597608804375234929716027284990626689056184722215044964481980608456045105529316208233528989701305021139219030021575186723121835170817476390348618604637295035417171172388904705808185772524215934084696830570973573536998400715383925046244957849075430196782743059599606098692936429533760478092220681660989534860414286677775492899903803458899286113873231945913511302578526829555201311471928460919989478515604597677848763730277498430017707733318760061767249503539986691688273766091794001761768785877995076636453224265423377180065608328792221318119275991521968198950494830671105428477786321959325432306092347444036052318537757198135762558459958796053577859381043794818295106170497584899588283013180241614956492958569074986883930043706344953105004719941674140926559109353468556289746030350505714604050784346514496402709303531399898309163895938950937738004610685130938995680158652854636365194685971743204117244177740284505751298271802981747715289546143939748674528110870015447872529338296238484213804568978867517979996466156628451867611646542819961472168840351095707950000389736608817348473210302374454168514781700864439791345261257292180112065585605488039338633518407621733670502584520947202755557927486413011632289487844745686915770740096639986763097729072733645752687895668166935716678850818984157621261196285081609942424155456118134453010243830191487288515058206314335367023553654320757934306774283999592855246593897383782843007726713441085450143742234667360755228699964177682502720495637306776294784100382497582547235959595008340413335740659200911573322556587941186301309288109125718612815687284172331705908733156513799216420929805525234264727979550225404806027242414807271914779458155702981412191668343888628832916824043007382257125880294258361666127913617104555466730324488995076225192208316653934296275332471870885941722584056780493724871522543958679919454513364290005267288403237951899397117384381662492275125607286740836849843975461321776623724718015483636790288415153259052123974739652608838640570813201528972921868549905024520839845296103985841419675943758555276578265011255397735884485673593707914897783618072959227638491871727156376723202229330250027578355073648123750901309215348326866485958212647080471150020094208766588596897072043232980592695191502626530044975033265103808420815655703107225358068995681711870441251928063398869406868346971427876233656089273304937170945386754971470404723747949601059519982711585633977725932594193354709659527645788023516504661466269131873161660946432147274205777347707355879963758935771180540253251486713042464242164452388700798651942412533904894299904014936136459963833576627926101466186408754496274915386837740500331205700573740599649147651216218415075129960186641845005433360710549192739640166849670773655990232362569166037809448253655137431698901077622202908784527124200695953750483697184632118121832296138161975477137855686672047939598233893287581689385123917543655849511554620179579428083170265977431221549425690943774334168555095963575254932173586009504801373975886150804100379112757768570931895604591972168950610624786576252098914681643378190125181438727678033966036311953631904909318310036991811264235657538319654173899446858189774788090377869424518947387618466091019289650457803442932278069895127306104992479701935648261427272897579780156338449545546907714662602249778626202503325487722443922352425155842851795094187671623052529656722399355511057653921560513635235483775366359953647516790231661066438533806586217415155307444476413652197855919532036500285680139472478401979785892582592153398408678394551728529265212589573518715007027477329380623207559862255606165102742208391915306205588191743606219447073175831814624559585794405787190968252705203650343805768026691191586438679755509148794095469166207935354090027887222030755297403291239826844277464685046351546716502745166380349025549531694313512269884604516960614697693861452790130691703109324678562643484728498012459673546786474405886432237146052569021289289704365507138590931390186344679320675257798527346937776155066991358915444899387838501436175164475410518068355452852501659480332609843188330033158791339985866378483436112456899096162719730898316219849224793792951137455586278792975232961470643427383782598432311440704595473621922981290289813875889501413448332908507523591694880384602500142477720063669112136921008784364615092545375005006597956514185088543003477980495188790028507447718226371784362268804586529202104487400719879952400923974890678831407919892535374598877344429412943116589980367454054323665948438581170801478075412242810964000340512957971503806690736161497559021550928997763476815650560731616263459498629704486702272001082942720981279111772966678569253266108050893402343395447441267496954147066731366828370390846247504206902825540316757900132355309998072043643805774849963822798173673687526006750717260466229320198406005604890787917393269963484141082171520640788600843840776322461874731217488532968854621746799873331205453874035313816106644210821023600716867770137856363807122082882591097224426067076068411341429086473186733328090636146220255617931152834829747221232434521861880253187484687331216156283280503001476060005435374111352343934001948875992174796607178858501854806843558587597109974600342317745665318889604321249801531549989524931251533325432088665536979770447809538445818707652925605423189349193495231804128693871261298049120476572612487195644446401555387300607200983858253704433316410821727331804455777534322573026198854091128705240440093067293764970578342215729270263485509275066368110093832568369786285924826319972651358436976554738050045469902601317962475122995714089253566740894796873957434035610907647354657769776550466817733132061098717403546350262291382084470123238700858921941810458490314933170335674270602551249043898346600296423811014729637662757300357760613020208570845885744242011987808122823137646330555327491182436248355447352689016369727568863862411192549482426355417286934950389581887118689163171843199503269085475170813568624279864490492807569143271048103603501738357234811303662193180347868020982768238682311671339993728097603034633976592661801050822130150339969073326915944496117699552068179832670329870111233379085170733979234353400316043101246760484461412103764186891857237122043854818532646448873159410449086705606728116724855425932870311498170930243105748385306250583096245568575665492353190312034080285064160069464307961360330321287494973124455462697126771227949656374465149850408573500938430725218045337439260820866241813281280571684935142427547458718097041844647181593278037003872160901056877112633322190612717617467563667746112676965685277393746392975883662310223410590052177924459532691574994958579084943381349866325406678392612364869132477102109066681058518985551719975444882076954627609800684273927307209440559426648242213090549164447953228087565028045218228617093433307092317080798301562081369965920923065530432296186707990303762857748255635486926199751021530875183403867303851924381988425229007892509551233670448883849795773426286869628320494974490232018396369190423846091557586177286724808958485147252539316309853565581474702673048970609269406263395471332265905559869169793198952475511391168566641355964828268813825210698595192017672677847164416523055260645747467266020371632762905088266867873959017728818106997635130262060042111162298090629574739520516075915499193929871605631104636683488599582764164062609335343309644949926844011524359896382756017394442012918490794101898816088337622319941688003454269096728415772295219821390006201629876522159584465306043087831036816820650034474319075861851948792083518168654536616821926899387026473579787269576399634633236440285197486727674951513020438039458109852025632263499244869954241854799248117270842848865096198302660380378726893914858079103103488873216638403115418522143637945482347682770187293956176168973300574702783624482752751572282909854463766350016977098436583521231179953102854993310077565189469296266626365720196991192179064617917935691538387980369565800513097490082694270773007841363728555200293806472311324020445934836371028980512318707469872415579256346094527758434764062444251973766708926864255361851917174431695840343834496646438092001382738646171393354148079184118063833179973836013993523178300133732101095029152955041542266788612987942855171551109284700257148734236281877574674484181183323164840863810291475979514447315650170833841038891662375665898795691747968346876145977833620602493290528525885379900262569764573425447332778254338492159711938940686327153745438616521265217631371316467658005954964772907736790775556282302955331959776620202378028447481888737793163335887276113703540664706815300549115359543136635310291915218040490897066373952708258293321545283001918568500884747487801294932535113518600169243027931722406384225781910616859189881396253483731390065974061019439021323411582819985840879234081595148778822946296840164034924040157520287591923197879648352427770063415633652289533181769353790482744868120243826697362190393481784883202930931485557508951304389421779348965513898367023669884501523382240288254945917272674402975347458050355744456527585039452363418547703256433142042241471625539157261267370536072596984190270883470808553031557522023204530462748310232249558734507718556541746504471455057809978797570473726799436227927701716819108085369425383234990714305100257380075070061971495288847900625879868091130387845456088766663353884966399647909453696732691082437447899966121937322016737993242381859795518985192051029560151321215106917833303217740367867753349263945694083562037521675737483503367965640113128817170759244528683196407533706118509237727168572881472656463674493781203605326469638392827841638842645325926328944455934596802018168026394556829905090623602523848593042396890843558107839534656216519496249391314965775466430494900012241835885487502973582502705557501422856494888483615846326835715719334690127500895319142931597075887829309538822690339990338554407820994065643094561900717083537296571592306188910186664613451295347385631679811110681257571187240393476423466784804117980929706868688913924150697629793209016354533900956554203431100323053161337576751817702266342722959815862885964702790231524370019444481042626983025416437125937783813786483023099556548431877705195763120138213420741360013294160957062628290599992812610242676163646895406114745137109633699255447272426461393204682366778745399607648657169556052569636536607333562457621463911727884035314550855442069804247343782973702058499234357104084221289817986100131636925271737284079805524385402619853869029937487785619679558875105207804188058009745877781642142701660811044751663204822901426204941347938190914885769505532841178757061176548747565320018424953706934420372498492925001667078114891630907059771091594564996564718856798011117224424075547137685198599304290598467499889998195570309269035946782245976727490065216251780588954935841915633237163876597134494123552772098275453903791258975191969555485110397125608488595154686476345245097078369595231119759151689200236869825017030949242586170476317735640411869118320650657981019188613222035966459973937842010260681622412913106400976225622751466970715433629383030618355126228078444471065162234031728302720843103690499621458208802186536092868023756046758993263807830841870219798203189825134369777835169293228911827501680932348743984790694121879786326123104798076280609614247911476988841041648104461167687956626962898561410742098582065721577992492744937667065265168416562879620671866667659124148210500707548901338568404791150060544602494545143400865070547478948668438644805400545757079965692135307636736394739158727151031808929350651772440778058958447979553754187094993512182843327285366726767374408904016222454168980598660017192619566492046251936998630639836719042257764898043325701685189899303597774269732269478556406762190481425963230055335013706065053886331254645328198531510902424865315331622522610424201423179832654850609580636226923418198977081970029976071559657783284003434935202425729153706898904343324747573303397870839484690550744746370335520623138923683043895818073267695526403279845694032099287282133832253482556065782423728396436441768204718926307521802213790964342688703140159293929722799533439083937286568332655790273386698161023386367429319953890523247212143605405134220205833684794905587223702800198561691451336819534414518971689872855812846026366968162665898568135966077935333271943809476543664569667075373334606407030345550983974437106904248940485151606799651686830457201930852100134224049873911479395061962029274868767187131633009446255472060574984926657068493684965096815439161105770571142937602824409396825825057871969311684189123770945863483571650218576509418103433813745070114529156208695302517753947865963945125720308526835718726491651055700289155490823413849390129375715982767078728079106517446991491548516312571450569071795846273287584935570955039202533508660724998015477497202631714206572056688931991140969336731340510152517817648615870663544875383237693534658333406396811073914199956166489721870957020036974106793313696452736552023732287157488386502950338700170406321785280315338890750395941613991101244945792431684971790209825300637078388392364114857680427029332336289879803367837414242814866149468808371398312788863630539049109730327886687524655025461380352423349718809092047864264546414082184178301966682080564647670057244007800171368509104966378233829838244988785499581577598543195652338256822569294079148030642371420378731275568397038612234527060046339927124951198280972854451124432456791754542347739534219563990812892268269554177999296835098151851428006568882640941670952172387699945315068695368670800811845486772463238457559179491095232472123649466696597752421573425984794414615844411460382767597765250998339694215502238335813359080966973200516521920080672530017927241968116461955179605491681800730220459770815258335882064660918746856235551601508354415046691336473731387575374252947122775651344939799453879652543358665572037364528805618113470837601251062188711383605371677214724415366864005016275588034785567074730850061263059752279301929477765651385201124026373239849410538394279066097009162668385174604033851210612637785617714134816321512894400313484286480064221383752799633708482550534279026098503274468836339515371299873534142110371123436569272888228557614368349152650927773121860866430120122172627548135629247902685413698042864700816369774175976578855843499337418479921225853366146365677399483246217680936006454535685821172293380954745132195966822381059053042854530038750167005055007717438503801657038008141335492646940299148698174589012885576711212478923637818227099959956781472843313401676468986234229547114723690477919520170919045531021780944234990043478062832759479693616637241379450586738090064011735339770224209418064664968848226277726406780726835936566351612095008446489699444370033015882003725307145904784524374249027578377184552436379393572787198192085788639271492771055093628020386870433109047842414049541859014956611196960141474504920232385881824248530681666188327072830395183988139315090179625543014028208864498179783299380552768007812834197470684169865984693676214715949854240313126172631594287134172204653821591041704743774707305732317649619717876475920944857037202801949128068382867164465162636139372874634170100680305972650741851986474644661546904074996990133274584836251394524139324826252795357290910296990372309171600209601554919218721917327388786134442453524795485712351930715039826965572079083110539785861509786166017094660209805952574710701710561251237588149603679235249690514962956658726646638905931651432563218432636874041842133736428424238437885720484650775588198654097935781065423621163181632162168489933804929629319774944285204291649951637887510800993156169392743205037152293311244998136289965511761885595937443771838994803684033392585744725392682068209921159955243652079469940504225008147059292136824871270256482108902024804109168458317061142258549653751634756296553252063674339382248811272137062786894228278367384477213657903891610009772542505654698929442237059498166984744944910141267781886350627569596923323405048943677717421769681615224427740674945445709287201637595746449459862580756333548222659911296926553319805872496119493746322332154153551299030787946050193702557310037698728862611524114543438156236477091776235459175950205197899794507004823890444294617788324491484194509451273375387768210492471224884478505201089746135819619146964493223332744522725377661795113204726895874905249296868694480320344751866239016076996796653451194366249359418273034636475375793816863888532572305025845023070527959054998749890717450377309509344867392346845044923064720839838440027127742576079940848855917652041521374116188772034473179591790362873494401394361142320786101816857833979249949775525543050690088536759261104438913493293470042593330453720863724588661752925872068013521701326057266933333997911885689490730671483213695058045890917774768235285852465147793283676824076131708837850035972914947895375373237047326096763331376064753402806867024163404515657650447499041263151132112533104155543200914547714992696447432563993558003062326758561394758225398635674950814510942953345597816971323051214213052461973358672104297476398815314433642046061719499954403231562910466005071962503256467693764431304790049385721112751110005835953893606698634996396040747302850477860427536599115800053755211897228088490077480861567248508559068252924167442858792290572648855978383057851259756162392455517187443071541148960806014954560848167341301397216505909864875939302350565732489025982831424091086126394629575786436876153521642592281932661979647301783669850471070125573091135550836520720569333580764242183371513138292921583811757623648592629084249433311096273404669467604390606019957502741440165999714477949248201559379291994728248995986235803014871130718670183348578784953232715816407813519180147420655700226432413978577255641604677912678165222941600382239536087054611253696412506842521901103412182723426644463649127098333055863539319447552692033349573470493737708619970659879639692536632429588808821570529744884386607706801065889853194946112990663112789427491192276517081845414793660786379396057419268693744466955388190417401844644229392504337079108651991752086394365391819371495470686781350724799098128824732700641555692624819600074825740262267063556753117548104994466940506557078499616949402215061427843979511408639412765552833987604554063864184305710232439862416563433912437551107905539658690761579275048439812224126708305332221423657493944124355101447883750362025938809358864758799856689358355269691595830808217642262222807474765865693469671524269678666558191625875611606720993107357122130573826672941026250400992806556726232218125671030789661461951779860659864939825547638228475365366699575580424508445824303854219874555903068785488081592747196332751529678398491903165244056105898587980282713549902686476554978246979183183434483767774601218965319053983700230212240059588440178395836639099041170890059055193572216399238030505665942817544893375940108273204797562552655804456932260377496507983438553816694630502691091083918236357140193228172752677240899742548549138937015927285775038844651984313160423104977082547989781083518342144293891970483030121907739644254959700523786059478250509769517284689195087432889137869461206164399914326895053333136644249064826596013884095519670357858073128891345888136158029704840748752175270939749648216557593528379484436549176510593027696758946767273711075558060677070557106619642091416138676963033021265206096073537139885770921706589552083673136123195555505884511166377301046301340960597745285595759308855438453866266055888105870522855761332476123035794237103399242009683764941836824678632240102655825142405429036437409869837790551875928788890643498822821190897944171238132022542588757248165526535147952924532763918574744157872609200989691835155820194249168154331683415034114009940664614287330071738231725620949790138061586592345908875622722072080155475112576081605834969648061621378947736614595799591337776522371767262318364020074140369186045601114218150496417944933755822239126208659086691546706405509487264416616719725519138307192527914054180637034663353028764441798204298423328360554756619890762679168100160943739263807628577735288196260142522114925022272015583579311591675368210782929153822858330981569907858940923491903045796055677074134256876663918915259476860172195220646030375118526559507586901816922790061434349405689628358820324318057132629986017857038938047941597810007518689667266834133669169149663519998466335713590115878171313685355794976439752348654657529145002329550696435577507250782276945302104841370607654205327952498331294681943342008404965811554798916172028919171395613121301549129511980048943816468333069097881371804854146333706065318775440464343747703139228159608481192803925561709860402177161695269219279095795502872879453406431687713750042934182249907704041003504705276249241741985214155651673281556980654360582549269114616367188128546106773189261850142082498866302129645808272433554786920091772514968944714805192636957064536457454003098532149618370927468232875450823296261680975516714135521973409285298813010723496413338812360997088580700810665102669122522653304134684308915276609284090112068091836925314295183726811880405216390296966797785667211404394072485944143176915025248849702092966654691776558273675459605889070907007682424279888380909239494334106590491820984313172082231446279127319769618921840132365505527166563223606979538569958975819001273792652319239131321178419531037451556306352455223385410797881854903304714136162131053522052116958877614839287085059861665393053284533357524056924462995147552344550009735619317033658900920314581900403262209539840084657031829946583443469274028990204720806655990847487100758745664686661846469602054322206715506284648008389989430845799734455386441092017405513198122819855617895028606213581880158377296185544402040198156623907971749347203710992252589939326981494703405271907553095815890616309132662809052390002761796787205764599223243463746788392428466220733059306212734042428217550452240830780180581572523222191873517233516527246244509406415624348557905395889530757535554061067309917158939877863626482178949270343681760761738091613207723374901837388464941415085198295531781784394290721387615248091057261387774920431019685819176810824301858009653749645473397106635807977911180229285759457592551905915286200331380746577933265467906232725302383809068453521588914320083366777455104956519548965312451113467281357261007690959666386485700576303604696322284243638602724063770526811315722829709250714486625572161254318525141381951408006835912182922477880206651514277650505256964586473044727286134134321264043741901781766500079239847270317415661868221538162514080142996745535604724170262429343652019097970663552061322761181100872991238817069704245126557799835622070796309963710321237959709176516897715518027045597813686325912033015141243138582431124231159855965565268211758961129049401544480790632307764763418559310933890587497378103539423912342334471578125698866403302696668426705552584516943307949751804463500448257410249460236881198510171500372897355575538563724870586012540041364301582415910392210321329741548665702785097093166468945298576128193172908155342120691414148722763703436973940233574818360521266928238984389202587278461037111309330980922894630048817472376187846575989236232290011202083203913941005090196505866158232369304762738757029253950055064089172946030960367921243588488506304064840646136660263558180696251679690413387167455020891139122204424820512707057043471821929054074807056658714114612787465159580905844539323850723928872831137859821982095967784897872250158657844738696468723911671204147084719003548660957287821230410561353414782141195141865694402156348166459754557740377942549850276675796141079333296619220737824125276718435657756707454737810528463164640447044505168609849792964560678824021763111299397515333119459020414357001282440993620336572339590801129397771761075798359981552327225109765204025680389899920515188577346302853711233770823924093544198531915488639602666053408331366595494221528865623560278556014892548389497446739282526469581900009789187286713422309443555681252717899494754975480494921285619836712419028020140755995637181437831380009559720131774309739856130788108767662853158209498444837297256464209473688363374109290199086587763006993348683887947997798184927920214222220193976623516694073888313368153371769040354710964362281525566979145932852978059054301649224110373109663509422140954554056806452889584596328366676204752043344159643561862207832508306582813534290404017839370844410033922169287276794482367539983633387123641731465622756918023403853225146199956521421750294677438592801649729492413615463740015889147992202260930448103299816522954176122062337649562888046988605154444475026354827826476646186472596812140424984972254390183098298130677639311427077250068743187784795347414891928028606037730810747653698232029526312649384384617528330966491255731721733577619514112456059076906977518721564739721502980243909377453498264099410702763224808966854933169690960141660602697077112907719416037426662118554423933483524379744327396564475770784442060371547015592057529749973447404953456178039074030352694675965404747004735515946192708412258195502071420490271817623287500225137120737608648267957800804997585176900330581448781613539241198591586220899000766704166127710533502782692869548882040724620212261799440078679761656937506631673335305689564047376567923662350870376482433375712917902464319839820401237429338479402590605125295587151790143460620773830108216800355214143232372748582806918873888484731911537459876338058884900838788198096380353934609777767831524355502509474615457679015620109053268073594064376236322692489096787361314388628717231699446910888691793140198840121760739932129536693171649656311594889805630410545361668039200155954680354276217617752221101242945284340769828147621257566662897742867036554509532817422691533470374515322230686345992418332887650213206087180136205475502176655328638513937453220550224756114725376646383936664654885251868689439189544311978967714548040682776174350736902507781806098287675532980023378732205412915999478964622486698458526568069167193378366842633958543810868105128896502223921729203070736107296261404727294513476371160678126998489032952177890633702960242745924366140925363022400885920532260568740178524384937358044452572644016254737065880213421000934612189720021404980693088623522468384158540334412107256762825498199126182540663215876551782914513254044494897005333164323052102670718974584882349517582360085419657591623210838739265482831893671583647753948629739005714173013640111363205611521027131745193697155571261491027158354883201775231900373820974410319502021687469813380631740326381314116901572388522336038356904111586328846028104830238276968455857961162234636498012218854521027203557237223372975537069397146131268241558687392762306020527651692370223470732385420924814466917839702055393544190613360230529918242145805004512783280284161604649577706658848702542302161534488285485046894251883356359526563033769923608188954821481438620227228967210664783422159985439631415764633293650077754084826565287836210031942127025331956013310955231036363273421295580117566065557291026028086387073449363309019261664668517462233573332521542702953011983938018486174151535290695483796730250765939722995041458721284014539417404366698666243089511645484244870553669609219907005229980928380572194928263494648639572042586503314543449719707794179159828753744420452596226887659875953465445449720834614001447266526837981081570954306446160975464668479629211824804602454294787201766671103417666115800403155349898600111620185600697566493252549297818013656581007913661739312531688671857477933770673939969195928414241123280042633031392690918106188081544692168382814906397139260581200455426919224497447889370481697285473987459988982426894949082507195199937805034553297331231954297574468964392414082948829918812332100791900328057038067311893099873520549847925496958943408422880429513862397115335554823884949986503994867372200389083528160600095467217472997390574509586640507906315505316679809464202145081082746890939346860684574518981468102258643277043450407170524750311767277655627622517327133680375574605350302423291321754169262495059115458433312636658516247399655077893420000478722308046577148004614628152377327721150585558176409810742297492455844021166532617550269611444999663682309575349345270014057270108993497935516543598866153398248935240297616277910383917910719209351287608383751104608290208200740637923323361723864422202958230090108958758107716530782691711518124187967718915781007517115185321226635962977416261313067409036074088448167319585368410728341672622457903716138183645338522629094505454806207025888076213282167265621608818906540773368956196512323370254939125604378885410712137546835446331560406737406995174406673226530661422168452664637018369111830227777178976733161865521277923138536959417499678457707854890656380966984303774580699452138987242257388934890047623211041067969191281176033214684797075271769403379364132414606538531614340768246433178846794180937746578847309920309074373033231881621672898974645888868852062660761654264329068166935649279626693208319944171228084182725156720558687276022071825504606908656023477616856130644848960097025915747366627282267228639675316042540844155971153724334991142434940216869943130551566058176515990734552037682444939081388111895113297509553658518326487129104776540855381863778636057264211876086452127932827082591914761463589587943321471518698452511503561938435597324705493729089471179723563613830236583897132965182994626309468483685690396265773061514137358510230410367212831805267366516004169782149281565388801190865816224268996992847404021713285663769921275864654382631249646785013187181004076406453287894653453874612490069389705209913829889225962804146640263743172745563999131113880213162751110268300685471698244737289143847151935192798483861546169634206520554292473764809223172513974208559413565772500972123761295590535052004038255140463576683058390648115052605769397418905993756998375095795798790178169214358085632576785595533262334716983907775342803298718172455595959407616556764999082029251773799029874582057231068461632893127066579326063354000244454788898296558397092774595432223124447881313414463392220392805403010054101363053425883093471961435152435996954530728404022055347321171433797833369546423002071596220294786254858579833138443265120264527929611720555033664671949248086420740504054334682424390874421574512200823011045394190955753904477993515127396370237128319311793878790275472514064551065652289628474505963940450090952502495726101542369973930019694530720230145278407158918955612207245507481855994556628692175523601830902871498393822797152214543500105337619163278426407388975933505342630169007313312312512029215604344158937265381070139951994001617742956487253030725707535364499626989094212727447644766127001518100503159216157066657121462942972418973269616055084810808336922907282473261138504960515639741348438728209255316486873053283332566614297532329927156672497697929375436518860230926675827987562608085637468969340616819062722835877617401777668326239086322848485541240776964315355704569081873687079779334268999606446655393123841930589737639301033823782776692000794754102357999622570288893249138821411691254283640394592711980130238269662544571709988866339203115062708085968070238690304213463181019731057509554228021935979229535897508495868013965262932850492095108863165800636647231074391746604669742356570248463063236970842931978713675368410126059956920751554990320977357022812131222475385753948346975646322348937520902703801572028606026239126842361826689350406147382021221271357557785514686706743163091039912722269708446685190211888318778863097383286915537199533283199760931865787758674638300282205001869834115999043254317447311654472200059388747508279979059690290804028078000618718404752532506169132470163659756675240793362878778047333057278255445382056564786113477571477060269217141048445647748102795599116831148627472054333962648519111110140867137569369805000982467582537819821530391463180663759717770161547864687166931506966025783194670154176799877045162047369290040570732693820722732387951617104043424563721588345347456337289859826835659410535563876359795018233293555965172722993768971073923560685844474386297837554350075484355820957771027866240742496284081396145230811551906104861561488230679047774916827715262749303887553529348405286991592874559443106788656393928564249235912227317151492535619679730209784312940726668199951184142733557493346133801288650555491707775386797392289569808837320455737849422617659432622477168574052991781411130269090160106614983148129622154381955134323773329436681003968588405324229935596499288286886781553922304741781364841260838696014281858558523922218888486367404820793326604848485463123595802531826028587741541160168688130731986586769718865691452248638481836864587072881870425754162149325718589200886205994649051056732019035123193967510993597721078094182112007097677924946696375802440224337691598589105917743383440452512657238304512739921385587861743227580332906558654736215880324615418692004313193539830832557265739982145479213359228831910954901063578944678196633754438737768415028332630443579403832867312388100826928012871232983118889349529243241154502173372376435113207212286517095026512893201370500065909613030901691161903748289021271138151486818158089139136642086306821091379678476840619416498107985519413628112629806506271448176324388666211105899218804325817814098513212139836494838880468954080373971974614579998110016481580861969738310975754714303363268553236256356425077493648980724188811420218493889731894040236004484049770099395350012253563698858012957737728721428114445975558810136124592146776564162929338164890438883510353465307585295693290447150708515304122496728729745358009965869009120566723335272614604941017182023422482751559634032977780488295100433041221726195086375538269067344680852407736744696688900013251364695523952824216319529369107013321828935005139846043867784118151475560156581033733236009069253935841139751655480347281443030988222123402839997748496020075287105224775195011919211956733862831168049871987917986420462998922707197101421142281164008309693131647131345350608536685758658187798601102425410680331525473920834203125929833450386051351264952798579692691295461929941391348734180172431467091856323765490761593851304047860364126066725929745033108015533987076610290513200092079456724495716373977933479438111876155967705082044423302448720169667798783053425585630086147186858137242284512672128760989656916639588435722796333584965867581541762052639186942119844149966000073963791443810561608787951888097072942969600134290979526165036448861979956149441591792447203530864158373486098966496739653518459578571527429959047711626774739283532526743776941826475904670966342879267106957940114656282981858245381622058468530571123091902121646464777736741301398683205778129437169279846303088281875317318447159588785794025069116703547932101516204303177385577510760646683455803054208554395710856094018586373958824410052071217445255440648772063973079103464754726827486667878248344367906884827520211607700426132654971120271887365191630794954663897963515401103799039740178973123312712655719139677866987788648405468474613047969857850663723576252881561958326589416876497511064693772501704493186909586677116540497679328295573635839150309390555381870222771797171249211176945573205022559033441319156796401311090550615173252745447124744540212754490375040098030677045017794979232476709450561358597589628492646640585213287348522245887525473029820737570763695229342641501064856969972045216643833174037356970403895832280013463059465708501468864260674578323574508035786782175434715567423950211153497001345422169117178742822873820647743396765072311358586245394043474273958670608190138929591090652061783791345225063774093605280604277057137910627957978399247943949782004697411641021344915125530379894448422859291752271842976513930529147447154626009469085546985795102124824903943401226562588164740754806575492546834957667295041836499858294401890698410984004342230714519156407765434933285493189377800353148706265465986725548680666510615734493386854322885330106025993735716123824923675160605316918922071256080941180546741650650088483971746388531389177846845983731182008295279345932086611742133099643020939000889833617599863528793949768809721709460880380340088222569716203910636653180456998098417038934292289010525151416643054732872332642188760832733413735781113959991964778513314345802368519771741431261009752933383717328463234023247329592115671907925525319216418290447895752471556457620426811940134022469763953388724059336544519387992471614701672374723120213699186077848223461840609100016853261417155303240999362031380572296363360216048341655796833062328315079929280481544405024871313325125645191543944476453921560712052036373964975428702219059635236209615952097913230494067907707762242294152323298477121136968688317638292544749436521876625574846373383260649276278181464516617868236190539892795602935774770599529041479038811619086271759946188739940517612558461530300359373673754043018304914205751012143945541635726819175161008181107314107149085432421735224029223657343827480822941595537645981938526203825934156266277181952043104051402164016843454617526783603552796256795506837632468136899499817907671855825503812278552522524566517080584721736729699702406055807176837803975313106466892070955356565178104263238668195299173847375565114305405219264359079348116692868345976430721208598437406179148845474127792907791681446850956429198547393237483098242968900033211967075309316037564476186130599167034341061294020145400675779764628430372037970363576073755792436167019614417512182014929255293503542772938087923048174042725702518392646158089841116104449631292163676816785170804643970774126166079823556132004753792584798113644118503459550796343204342148490969947121019396265176983226123182347306306399372673668954535903655779442470381544573465349512617770654586638586728165174321127312009362364544939411054423005325217361165416091890545018049636162308412276417873562456157636067359489289536348162650439266690188088157440912456949963973074423567446405391567770471948000330686125780365014855065194003159723150309388352497729227274159561286200249481641686356927604538419099330414667758020340709974670117630616252346437519801251122267350892543920026381941914169380653922471672014783259553396222721448322169450075446421442234439713722482926921390862070931685151214244140908398644178258439576356546570356115319228834324866105624694467127023878263762428846751147678733476257318738505480450043170796818266151772324575684056622202967141450095198230591221431541503572197299434065747550223455658304307272822356978992271862581628710057687793172057514103728000765721688509393861558903570499047051307130762924664191615628770315878566878104217129819587194095692211677368625416160253057046166130506841805792937555588180796642073337014231679542954689400187527359796220862416472375067952383402220912253025220089711047886279773828604539852376671743830573921653261057754401520786781478084496210313595789758554375641648994933370620687389750168825394382534779955865295280752507940521926368703282318342219629761209483087088130731499739931789605522387050046694258543269545931669284939643113228021535941937669864741665724367102702630042354141537441883221023522183886839414159977848962514922188198652109803022965960012063820321396156490692767613844908168258761618068609471169791936292805356919748749432294121993511839546722572550066125092917304413343730968625613217292878236806743682871459277995559630852843874464163328123180771252747002591859484288452092842456505448390826846425645220967739134650545189712512594452071214251801123983142343599091914345286950457213216372752213786122427388775775087434181773077137546542835632887225381669017165894426880495193914859387693463130418803025298417764815488530754052046462663735012977431734769103497105420902476863290502174209184751303184917211422018539420398499590902920162150929901987297461014099075881086568068457527075207818156181945960551785718235651487519397993658297327753431990239944532063736243934098303059187286885046396550454389760108513984913507384694177589292739212245940601601956013568062818082005983211425529867000122008454703439148728019608761853074694238052947802816571175671016664200510137689216903942118803308863092081195375876350608958810105063591386867879763007829145542455766782535038991863041572001703084635265506794844870629011317631015653437408353110499914452933979344973042195845711345692455537382458590830417764097074381399401803516063024265881017212893464847539119724197509223972493583899734320111760908790346238908705891889873424962179006449797450648622448059682083817436369771293879647615561640637413437544709275879412924851920366389143876973783692139557561231028948539560791689192132928848227831241576498958316066161638904016756318422759580876881820981048584328502271349725166060430031994110840811202632686658660807345107199263591845603358956407482146480963526002412673163466977080363697599310418571985580046102842011550519799509730075598666125118787439638163906837742542822060894583496122190354477851782626222957087245414304608493294167417953729744187754160161726916743556916619118454089773775600907424825422224241416066859533554172614577577274449390759361691775476888466721756012643200462745884973455149373946711954135227892377842250191907992420502779759990199017229763526229631127749327153455319066298147846310555580327283911110317338969958664540684400657370386406688992795291646774004172924893169995748660360413267055070669896949421819105294031306131757289180652815961115046635157708752966483359361063449834645958104462905552008727296794499374740200855647404075756528994312264028645788671595425623713362531415795854533573424474200445189146337423473970062913275547225684836936586203670670668966157085098474206480408909848313174181923989571600849049651780199890516339739035049208137733223193193442398245283194085085116998500199354758970534118804031731120658082448479318225260647272148334564810977594610019222739472204569559429742754202751529626739608947345529414372287262839671103689926382416566035350639355428144854870946511082196959928037805489657575531242468850800745564769362662411699032708000473200175531329443920427525548050062907529372917852625098076182867901518638129195014214038164559717047233948260519123438181439059278116979971411658522825701219219359872100271143371075433449284692387454145184756179426833093322494804110238892727045386681394866653746652596176876629090480700932691157218110974078458276179952954087530713182375324580388074969211101689435044541967666241976823701354420561997517809898658249753661790253133005856548421557056132075272038543611358798064046163092086353014039722058694927794811240162887361287666302756713496802532573073038713003303027016726494520113422267980143854722624249306276268387315270641044991860843697199784176505522461252679648316895630473498632758417642510511710418790701691842956985047450338742728275964820307708032364346281031548001151735946226395199740466231074996280211829010363798785346660834009690124763454918421082139450248513902677596314823339559698849182694933277813457461595980460443475744641332741608278114361368813891860428441136751220894667977153146741553531361828233487915597212957285356955133253866048052102609144467205820527498869857702087041218620865359700889527393083949875681618585562622055345173006574830343889625278625373094047539323516710847664706721316828764777862228133919024790837745026590152002907530852224684935039148679032826064848166490497165974366230391341638512585523864840158910256414782157292027326211442828912432220123614460715003988877603149655045756682719382726016834785761219371163634529198787876598402533626494993717101636180320125684403976469035870646082232974978452156198070012147634210837180476269456965542244359707906514378509259208456062674829756293432846219343133963877134776181937422452200173470360679886575596872533792166697369049351757785931643044441048112437954765568336371797416998932801743706015168168047107699882418485334541622512960466077991572022925482590421791441226353294837620381143451876202750430137354994534181173330570680225977749397256403115406966180774675868055690568621237258789139451369509435438148835984686567281414411044854511652759348099007259763515627084012177585289332995655794439163886444864520880737911554628724606776643416328273510320379759081146189414482756303280254056688771891863168997596689983187380157975119720086634842105739097444276626535570115180108060395205778896539675088487368977353192701755216521708009670060630350284564710664486039695717954572858923884426155221649725612239027332795707990254105812002451487529913079570130236014162866245331682087583258597726904221501185481084197014375110347285032919465713754549207124690771174621133476832003124280576347638033838729658884523527750779239747424232288726989357616933369644803228701880744761590468316145145114098911610930703120461172406080356257552231220819584890998283843569788524108828722839128017696941988826696445627877849021578764380673186850306831881146656862860778018751468773989094016957161568327735677547122792177693558761197137017770047614306732426496275931138251334103308683502364082684933321036890671399287699193787432088667035592486580710310471685823768803176067816414384916675956565671172142554579069170143873583483822636497624254043981598452285307252304852559455322797132461993740968735792155843409638487711541684588883976611577706138690604492851687988757042720250551897167678190896435197232622762386691361826809182595405109411775622147890417325653557238186738418205600531889057516855979675615011463087805602410223658456870254776461129747322171886815129847796922548289223710044238528405027119984471256041996999463716061984620626151081912434787030864126778776836052834530360107471214638373673844231949484232313771155293973013754653222469351287368384500949892340841634979173653826913607540282278155930561212697991303586094452522960109199958408690771967511029406800343647640404369467957949209061413688055550026031795775901309826550967503671833183117387748756167088167087793110085464293870922369999821362476557748667302927996543614208087982974033146247235340613194436284628306939036788890509292570589526227344698023319047813462271188610024032218520077596995690224492133532573701994085417354315795378800610316009313594121174713176147205677183887647885508894196838103629363486739238297117572176841501730060144672700286662084445051880844311338054923642634274607835007483553101672524615207651737818898668076954794419710910250101419387138698131555297565858023274470031910732297083970378864087248275552180927870374705458377922020805351178598721128951204667495540146554206580340445290696903986561854270410720580188270737678018479592142739023115489491983913779592066329402319295725738235136134796454785882901178545017016221891599544184794899175141749664420147022483125766013568499164836048386664556204811634932104060233503385273633614136683308494911911104590888357294384540857175790402431468391761949475629788969452861578172866749023889894925559157448138728782737096916403118211599940992227179199493094424982466092566657307073047149464965869569244905704472873708354233158483329109638823717713447886439153227577151821307684705975845147099165772039745950147298564694051380223051690959853758797620698319290396187839771873396188080867530509826953535416012765223977604918778293625046284474181497657445934729604024332900604901751723423565573562256273378362902546815475500399212705230580862659185341301540274829532618165125288590915591283681991061827196983401386826318907760913075291772451619754721982468896191012849210874113522276338526284527136742890981717384208037712305325053554914460099482115359003374066007920099079653907201878574671902439462897936891622234587109897345434856677950015367670587836754264870801983460376030994957618428521814893601411978581551310463040199851831338322872337483772557712065413389295894364729112343646668665432738790750396032069546975144005352914087806313985910697770713244170228949956946328934551773376489023860405637009078379952439408271669548956321346548047607680117734515442077850625382530400555132570490209838590391799292361660444141040662052271315470398867439502068083615023102604847910757540667875704583599762145564115107638116189943727982697126605437433805175901339532601102609468891093550265271537668867885023178129245112473899875252405112211292748586368150447829934551064021174450296612261450033310772611931930445054487322536869932529373676732329731276278122803514108814390597339031429055001792442219545794158275560858080749374652438413913700662619305666975526500836723398343323716883741110296682052113600036814835429795271059315682241033832033487207041997280455377652286011815507290503771496260493653577739373043970680924529420052495800867744059706742132443697662800158279459082034080719439568065634252989146988415431385311135686014786391022804233317518468283857215485392232190466795878332467085289640717465616266481052132724108596609076097546401947593606041148924036885444543422450518104955665795509797550319200220654525431445553421736378768667000449173916815348249403068923516950713299253480985114678657919746002872438860279879092232278871872755734888145519576734655624119848248279718459556030313453444692738093628815626822574511232975432526141931050516121702301310767494391502609496184726614093470964333198685550303202499299658786227222377631812880811676320545149657194144232761201600279949654623968329309037360057741517576231853297352155708223594362411427128160720838775142020514128676427729134732737269004515143184102282091616804444600056795366136585752417857672754567239505033694737178418575146878745459042936280867660521089504920218290470823906910770068454342651493847062461884594453172620209474744848510037707757375898341388521348550734716717943770203639130186283750067153847353349233545850785504339082966229786772699862478384558409050574826433639673608066769872696411750073743954886447268844440352548754000046308994203795089280867774585165906528192098130815555680725665101379885863443938093394191117425967999746451773782547905766126601364553937721199363642734207320093844975200521793890099287036229346502042393608207990231081658407429632129207428408259527322749126452980273310332034556207115948822484588132510271048769098945480497897858042966666666815806719520186073381587120024279239004144057164657562710848701711985182229300323853487736932446758238127665293673037333326699008571069590592824334383793281852623330646130915303416003984606915503073254877991740386051877313447796712036660164513623928052698495846424087307084714742122924220538756449552580323083193367565267260957211624953465630360073593841061170027333025876092250041435626116676218972107002443519425477507608556530412517884412256722768251612917911125498302054096659949724737295381139594620811202090468537824255339257536517999791542273457668355215936977456488819284811655171120838561055659299447732781025597224713910321756045419834087129837391220050717201924070902161990414219751477811289584165832308871795785899716171478378618391611722255235689671558389405765183454759602729612508725588598080224934132988948311247164245541187782315531127272354036841322815448741519320363135775826811672475340863339974502382266331331375975842744686538543766624098753669012363821836644204495285978445709686628990434333081275824057043101389062903476581404602051419057336919124993041464184911850062217168187655255273514555824899424781314438499803000873868412473110806554748433707131825023302704210908139397433804903596278953935536109297638514835942217391969868130783283241953916854099995160421182092480039625011592013636623312406431000856918444171015668559440655308783009026710085196987175269859523161102886156938140693831006561301296297615066260843249803856398056843184377028359023920085786289025648217068310418562170304883133802029716926477577718667114036037512075670124714864777384393036925327691976432084203754631542959538924664571110050471888623608553112553808992908945054159846567560926872627870908584050311297970275161555877093677187366558773199455368675120096493509733061056303867360306231452120550694297901588342632540520306015503427974423609142126754502795503963711074814556447365262220908854079865412172604944955843962537251484674395814712285730301805335987551220279255203348521852997166409007184526606375002488476081521416498969890312455491659210400142557329298549438415356539120891302624972238057797924557742547085586273552661179070985531281231549916902246841721806318197400745871313300870868972060951247237268057466119805761659435386073773727500699435388454852407217452546914262733803939392349171058389006210116142036486300548159831349407238238747569337187174985014391746996274051928653079098551557792348296814783405887361375308234162009228924689791434838523723975744481646176352393944028489430534860082178036559710638157339209588569781234549981458881909808978206047737169697564965732015567885260718596221935043129495438402462928433778353622194886941272351286348295830077327572299516434833552981145169139975968910504968493864928216735891360843218042725352275541680088543048167098084137045442128991299529355018628221929563743146041264239208834260664643016259232840694918917893810164093351039449153508627202927314779879346802689665092120522231939293450111378976676979909650794344002979736801940706067452642579469757932496847135569584215687461725046476393281685640139262097445785735809072216034943551582130992078651264765313590132131686539230968807063639876534804381723825011102718018317124721691840083887918918769389258837265944298875679045820350390007505651920663717338165952485966359939898554481943943056411036338701670964286959999284014034705889574137023046704848714544328275566727591981687538872358533004592917871846336514284304794858640522586648273223629506073986505980795377048284201892572890420852865776671812329754382136981015539914495499746155625748279438058505862137689464981374993725785808810403183476055255751872257262946000278661009452810174506125906449648244543974921123370427391558639934577423002648770952054362224614293756424525174972937684929327774800505208589580179062932054770831631676133823386021897929360234782958721542807146481378371922890520227701444951054628568200725790410539620859100379220600011684363503567684980093992923254423892384559688781806800126372851644457484037224533266136379368447715218046438782204259244891061213661021658567312306186926082598097815925817093499792524638840435970060404260432189347267601972605785601632865335281338653628746110615286409416580727140950691589651140615950593753573800439573124734888278363769913063171451354597441265652051093625448380205925568361786845202457319886451833422259083158050603986811279444791905960490729397827924332048248427027515103846518550434869132399582162571917571076136887309957866652297491954230764549216199140684293117134344085468457915404949629609649287269444577275609705921258010271447629673885100757713453128165691894693420664526051470209035505250997962294592914207829700846337410694080443736025205628731803798881999084906280668733541407913936850942130256953294960181194334664545641025970055505633224475352310450364293108140583846950359343218380280478068264965361411714745903891818129539082188980960650846481313228099404426951446892570719878367240054013344920394489875766961064199814418083143049158334608912690873180032749063542182005405861976053192957501274844137501144140288635240615786784596699376155779834008047698746100862106445303084742863656554372691997441403044575399324873077813709917478536123995212757466502653993294270448976150549972187539081705558452016184013572870418614585535627153717046762407132114456580328060466497664284115848400000693819306137441988027844173609388270150085662910645917376280588635818323867089525913990005433794252782666205892182820899085679558897934915289954269137353124712873403098434578623333709305386197502199442115423950097674773827978579942547629223529216699409339892038847856172005716478279248623710267891263093996176203643889645730479977699735681704710827424755267492106348681754310366792519911486664037936273615970248952534576627554106474040607069964028091522745509377584808651769336132883730075801284243904058822248651411610265401447960748895087456811845599158192587144516473107957951627014857721362794538355482632520929328608074274450416139148750775872726645633767037271600718279447782833469707243670448813238628145310828452839193504565482829042586977069256893731479692255603017671974702560720560138602354383825256216952145062952105478105769236021351128465743511113756818063396252472631197717536291934851296942908899951546633034810388325179078212412148309306781800169168534075691455049553587106114390322598589241708750166483967805180227437153021365336541674553980972502093700605668154891713370143440649474999224613663232295285069775458421383386636615823075873456417200494655008075184634814917523348720221651811920997716397590657191032337132164531236624957099972170490364194919393701266826879622553098652275912914910402887521652734795690120993834875417411153603336329406945340947881425431334319476207434787719382228816564072825924258690547973949161962894643580018931816605020664003443759421518725315452108669012091437144304605207171607004018282039079143069359542764292429429451023065759458048585981973696295832140630000046170338119091483752913625979108700599027390293304472523627305804022139936100123530521222380283034035434314863062268457878370868894551133035396853250279699786740520248724211601891021600011430477156641006044877812675250486813184947556517053779523727295889066309691329242014603397935865808552056113156154471596454363052917357319018390495350671726912859128992185708619307021911254022960419356068546466193678930367743921372447624318379882733008036668054128798476801397118535175262097545467637348620214097760834369069370205935385202756063265577530131287473287644891441610468399549516527989505168785075127740607581842802914255431486577436581348929547352611427999104523310929300357933894536787413184247031432854387009065739341578200506091245632362151030915752536044606242034586421016816861217190979194792926660322038669565104713990779828544770443659325268105420653610201614408660133156677393337940256346778604352924800915521031590148650366511887744442157350494796538661442517056515421177468405773066380690871161998975520242489826524934079978070492364960635967253661466968883153469617601206962490748167724830001831213101875632574449530845056293740380134110695180895554083019202534112604900016018260960272904223045519246197933927675184686566094356877858670235325992229939118155272104666983084626161281620536712575662448274260036394855985023895670423879257843665461880117137849524961032226011152344677701454704927295102150642189074019201048977213644338783605155859202019617688091938896437041546138516741957697212518680647071878681102437081867842700627182289106771187966313132838822413594243311540961335422278707570708793236583004948532565788104120100676648665649816976693864540558823230913090762013471261668257305000447787731706710991358584690788166971562501619043466081719971738929943674155812598600900452814440108178154870714549432339160570853558258385541374752134943137468434414589497885543914503145370373002466776808296019537963579973245739913074233299202575004335274828160639451939721421391192971934594731070825207955289758982961283102995176055815463653580252110515579414729368371712104277482717175412158508045124143501378158243702429948442709760355429667978549805385913014326681672285026545760066574666993035895314868439490135876000076813377870676363459154156689508276744149066456262400603002391086242875360367408726136515446692606374879727539802199629149125647386759536857032445415840710708835524034994454726254531862831429887814674389304894074154131462040917256226556508313468133410857761484562105487789329352561578009734027002987059971386972618849462698411972228178494628031172827923105517705794937560186133941877130173914689765168881219290317838209622009576727320210607489945000154473285701540104423934688373190085361524313337473589152632936160784277304416692111222283978556675416033062145759083335971954477278259592918107796368940607263962002608886737776016522195280805272386456405118053065576666052431588066277306919144656881176664593565540494454506920461901083101185462696286763800667743127657267545525289499526981636187894787525892671043839154082926971927031732248111194929304763516089632194955210438089619634025541424188500616492843387080082954141090607138271989013919134985321829127630520479628191431454652473637595446719448474983274008859429391739976150238124410943153702154006564297659757618355546947298453884386364729298509826334508133175384124027162650765597299615318779434369502473006733328925846552448246237617616936238209571441717830090630891379150947278576406339273355719595665057023878744619207216963886885621540012335506313178762224751784754311127767221363718973641485121891934209533625346851616568088715700699889411746849656642286956401522515508154263209013369772947726663221251517512589309490162250197975423911804745084734539889782904755801758266200391140834910811914186764291962992522773043787791127719912272083000125416385513345124749336768140198188277062559385715790418492191893171318583533523293906953458603779537308522371296092856243123636926267341473700470207411980703066217138188680271071388099760342449780101674714991295820948318633880324379191681298635630153920164713721284078269372990492675523867723642098277492689222398635727208016295043067154351436877178382436461902872389529552290783790831752637486787541812942103146065661155858129972757636698237949864187301819754215929538959363893343544666442851908992595674612699792510192956832426801560258495814182582760541926061871603977656291446328440412206856179069602292228593356423154797556232154028378685953056930645369142225205535597594833352367919735179224580098894286533011832290690996331048474300474220665176968905437090509336930412382078883638138508863521527189330216857184987671631328097952918558705334247725263770531796491312103465866807802294393768522721651808423679657412711520637621530891078274485299054522251129378489740769546000336277014888593625067297685544669780886028082768014704421394622837662657164101813024797911248202148531332728633784505532007231137239531690176629484382731164733355800767969746577341449142078124610960045499079317284436658924602276972911349802980447689119152662547536813262985415269130456612783988233262821943165243183977175988821073656778319380791561773287686562862410159644552552349475407480000146949422036079934453981055822377003644483152756306131690076492619961228821451168184489527614683261058422552186605389263576678288570625496483645952344309479852896594954140555290616699533778719822820890406636615191419983788459094642269107629969756010864638938307868823808785287585262123271978662967983568599699177819333950042561453205977953691614094819836525436539322140198572546379805072487835275323857138361094876844974893989028476648640664527708751289382554773904832748824017126689648550381562131489593289196503245240842170514024751183870084174612080059039700989123414367646567884615115752837740900970434672284847428647649784916619064157793809895508809926273602330479556579873539791160636713516276022582266338708916068578309701900265325776579622728452295842209279420691107941389058654669911863947739107429072824199581698879970744559484985584257949414875444683039598377232093836374531379868248751426297229651042869074892747126928977663677994116010468897571552258379903079152913594086169682574634294324202236281474281895845220186044977640828574701628059955488107244625183850687556520413049409711223599189644001662190803654037693350860251675329978198916013404670637805050250058612141088576533743790587679868086361479381067329018448375539504203748187270406940075834216757926639539597287371905984202830528220734487337309374930826598718825871440916747582196949912715367582568483442002475212530514939245308594389395531015786905513364362868306638298119830375777486353515662935381799102856553984978509799460676484838293623743486869342910300540731298964922656072033671802484726979949173393330921033661716797327613820999616986079227066002282283237698982436107060079421112223970096956470597566266354870659553387058222570830057350938479843799645106897259879058757492114154410734708007146023234631687403889080564445409733169448583139764628192851907653976959110470174939640849962669176501021957000213444471322199320086623188787317966443741295770350575565877611797408631002118465389817271163122419819672844418632005499545331496511813390590314734497542053415800643050053696912781596510431817652585330457950563607350802860250943807854453756271182231455378127632830960947135106001440422175962087190781676962428317075364644913583460607071383924485926503518072646249049070629056404833891302869433709833270891919428542694330343481884978057039979212356535809941974715174729134778181522370567567431480810106621149137020851477526911115327814634321560106071785703151913525190498488922227508233035922027761293246243669279548047511793321606614647055419644152604272440416894005282273156094816693051823252078503197069438384638924689226620400149990024383825908429599188383130255352928975160177160747972121857961743762562413903965931515319915151001100635309210899488741194425716885877463517757500865432305831449219253355801889191018424213128965298119425305054927712603066166639824254878316353655920528811084495318741599245264089700037653188172157778101810770807406554372099449430180395104333451137565474822242453141053951452865528663433481098253923432787151958434818095439947013946451218546053841087369886622885965049694962163431417026394763758063750090082748295149712219261938580019663294983896634790125242444914451662099977939422894957212536383575216498934035602353393565682342469927012597965825008190191669294716231578992733989389514260250454652428365015996966923756786107135206037077599916334072846369537500148050209255989973119496246079141839139189560420686398350577088944243189813575435826951127573282842246151173562749119666474758397687288713267090438436365855913745559750780505756539659842165853074866337649356279614259761248215924000269312293199356859623787164654080673313945800842572781474985799838983362552204770818038468020962104792230426796956519265229050561230435697308830670658740325573655114563434283570690901368566765003948881569537228225099729753169782279701018163326160416906091436019648531075729484728420560374177728502797390822992640555019584560134487925714087717032569583030695359876250050860366556968373396409033166257760724839107030138163123556944803183514123640524395751678118953666222449946351510718469440746330273773748909221895008743764599605935764259621933347438544129382448358114303321624629765933847148330828141244746701968588983660483014229198537869088057733765603725181332683903167504431472716868438478307957355091273772311748699800282030541819050539484939132242366807911900635269330708732449103182257603108876314154433768728232483180694439737113844998232125254997590601486518353459954533487489026107705192237884950301797579928171938560336786123245104064706740134237281233670885446627382749003333836100899364921259874711950442436826431355163143719071952376406198658028114077637985327919807251677158280263984714471810890493864537885002014554139570055970674354739417122720563152487989744614981378008344684066149424302646931374852164881175043782306872170522437840299023435733008211536738586931266368572100779817401154090656906436529648308067005590834715839910105240843337975818861502156619070482746963156259488912130750369107866470599582922793756598219866251269170717037284592844178846356298206401991048573541886869235769163683263404202191319958952027944919034925445817566488619655564890671313519546240914963622257540898898112519453368657156015035168878936357234315947203177408101205657199031340355641543562084599917175404338753813181800379733029451644101171025467280594403502973429431215260872449684876228204426119101504937965257774796476299422568773932952833838665678536182801548607536466677970518933651766551893139456942333698501752652000847270662590202234587559101088332640911474219676184202520413646059036209778896115965406660395341122695116373731558280908909344808358780333807271892236082611166361470644680820019286174890753045850027853014433717221038501941369308507487784697685413496456244837211239307547518097978823119612138537875588833055254859360114440145511259535496858190627618678137529625084504185059019384661362525903104494617944682083444345592648531106255858453488659813177191973979648837875318279138525495729865744242967542985164622163467715997957027932969916873736709069722898232549605089049289422675900471037717748120542520520416400136685328628293076202538255216013725361623325565560162920008313526349732623618092473625415307642050559021923209868963688896373745287160219631477812392835151204037506317060571229164443808212037195204743936133491638246016750257405793074155464135891032900136130114219885978912725220900735868378406528174273797043600577773449864414255203996703591776386335864934302880683390262365303184517554250194608810247917749619909874241916099266785410510127828659035987077511600455294960477826491011922519551841111750075071101584419324865744681323835601734815569322144829414810725356723582766575267451530056690984287842438080177068759185594007142727648555616191356874959387184412559837484962602762865290639519344107658445082600685312325735811992322569134553504283152413385515762436303542943486807114184957763974237845714208464284860793667424811708440644982529808637691100382238730736769202526313810003335656916689487265706646641953442476204301276514104466223025552670222967801916047648028959563577188096037613476025720546719193807604040222245991575685971801835392922816622541198045578255437156510736371109823596736614125283934654536241290661738099563527110250754887737995742663519483792606291916284903564399461248332340940237156669905659762919610028671504605600584157433456920197687704560939989298108435749573356658554124307583144214219622796221754008116655155491182666067295915214255852734526868012887237553598169118716457829997711734874849093645669238439963697200272007730535324501732515081262855033184313865799969460090331713721900290042062493329775007291372329625659457007111110345036014412451257117261129111079107838642697904451122325598155334633874842195952300035477270189679469539094316475690546195798266039637183656585038244887405216086361611640856467424026418120804844069433335569801902678663599878798203074902323601605695420974219850779432087280603517001877147672640380675117575738685011768220980810702682672587292185375149526237559690745069408640661647421162850930750810409361473329841975329214594084210262152750002475326994991136047012688399819570680709486819456003671166983255693084839335289836276480834248921978213701443882601333149246784278780236770289462959749408349091708839190149742171701310696954697576498217477244552725874748264393226155668920774180793421882305828188910933107453482602856086457061728278443959012286475313850157287686697180558019306107361943147908183237017519910181992171576127008883058639481236352213428353067456311191118967627701495957357490916146250174057688934120565967633980283473721313952284764146807442953595107192707299566721276739902330152796448549878491299685471293970368554863349360642782679698634473959003606316892722752489383039421540189501727205974827628371980587159848189263325808697667016979329149020054957874331785461303662449352751752166982218822154099396514571510354722553167301587128504460673816107127546023435394279315581288456376840950872418684684571578735852251808185643104503867827098168034997688847408227843726308409017385927594431652183991725173024113477056625456611725249626600218654744898609067821273218510787991866056108641674925963894011926685357261712443875629110884217517393807546661607118609122375430001146576842719849078443109377514525003042239741481617974082997204755433989151117172529316276765731218960529041614278829937164858995002216908675534575834312299502465455480075436329336183025942852453113334172133876925924796372658386316891929619069327963805384519434789583205583936546146439562105087299651470970692293189117402277075641565648712397407491891265780149151756866154380659872750819208465126693517974855796537644478314814321053027307057461983909171856037459977934542267684373147977252119601351275497114739328837472047913750472322666922942594654621286687037102398382293119050540415319211199037579600011296833445869456521484090885391214642792494389436671042751795803480940270774064410283468812024312267360207526261865662310741112588613824954522774191300153241373159208646911897875586423164107675082525331528148362888555607961355206394652568811560470186472559464426586807612185380951458976820887803188636656917518800263912817075134956400968390381535732311037056622390742304287870211351393087989504008281528148690298552655136604518726834478818297814146838635719355802676598281062574432885650567801348972849180078065195518955344058412257850901014059182128079983053721454246183797892348695864339526514112521733585285857532536203618871467179208995511614012088995121858863783974342903898240973817786692993542283161606731782232175836775358167422567809309308287210468323437757403714903822345183504308976585178405858009590563408488452070818893569983940854557592441475052443833635103782058343113896295112509143930233764073135802264625247249053418063494922578641556292354376272627461680625836451243608947040578350459588976554597085628080675002983504528490715496771796172396579298206134215148592918329599109418343861435449763260353956027207995225828442171377894654399501840526422260975205679526942385658331005636615081179797730581142165020382205940298138811352087665077174369841818704360245387812568148132963350352397163880508544614236405399125906202036486734087687401161717933925133267502853376321676393535584613810491023552372021116815479873689236672305005113882680646002790089949575542163745165711102727184647757150080347043357703100214861670035181961842070733252947499384005795911421270633027476414631415951751522438103651495539615878252492865193826817691720456789418040859440613226704349502681971637612153042745094351330569062247391396771440893483343068072601485640493168592687877877437133652782232957601854563423926023406549470785549862614750926032842720440243295885849721411774105407365907121711469399258544171480546566747483163137109793476445053429656827423030497732006692579083469427629832296105043645029806823330843915640692166086636809301290437886170913877366542825361857837931861913050161512946720872560603988904187936359307153730555858302555445892160757497919680506982690250447474127605758445070105309455573394822688008381222781662675002367404581290584641635624811069037418399667949963891743676857897608457656701374495062297402194499843589528134649600979658517686101559178406159913233322210423612321334771718226401242127509259747524702636388114874464582595523303023095267258296723097056249529656781485565329333904484322244832600947452385913404870513888269515742193887040420272261983740713405533046734686490364602038328668988812883568589044929353714256556687917878209039371035908341268374203182491360890048828776735414023873102337078828159535190368722103670399330356526619709954657030405765484259946991471289683079838777519927127095193723185896428752254686239210387543206292367211697802959601318118579545053825690161259565101510476156414030050350247978866430691876308382971840855297016836308395483729500558170892901419634441194333933378990125616710506730425271844654124326733776750621970260330661761759372563766942636724594977645544037060037999006556776273409246903794722236128579506694381660153265545930959154014649318423098984342824563346864383499010609861321331694878591001021053967634871045824861234152293392724304574967375174872475587071261987284343571602272559727536666474107331684544421963272438221458356410799037442721975598101797644387077320694394580742739745988475080331517114566555992696106227458571019316567107161573788612897234466808552871080626629264893971241316681952140705056204542403402637265719886981377409300174561855012800216941294372667715952009305342200140052578778346594449219820853365335991354695505611519602749751339420083380394530777451769254155294016771288508552103908316037903053498812271131763767009494455986349485568413315800028111766439398812474912174461595980746990509627191012165986363457346395579582800931342530119423830705757565314536050025897410934790357153410646602690351302820417318005490669276353986980088231348869878404096488548210617640606820313601753110721151544270584893531766441392156523176517855436886597281360037791427112777705864126607242770740302532855119218880842900699825598367989798980310756188861798455517040918438385872373127087452827074471953209808018145477128552070437442257844394812296472042378972809725924010156139563794881430156953629659063170119313726616930383344151220022370237643436490550009878778747474036025851142316193023362953155591825310097617147319365069566175887154424781879473634795397369854650616574288016208093849855907311994153557000011370645498621697951815400847890675914946230993515188258457130893588778946227013591708623497367558020253336258494710039544783497466430450273687928328448992187828358672331612616606357248851094571643433207065167572642284049396805992010786529741072871715016771368294405295545985563902620188629296012103181251580099569071899096526871432560402855459040003384024459876751602821319411681483475760307698604613323894870358609760396376455451955362300510166063758912947533062765109904450065710046078742244796631752417407624554333786220236885408299537442066987756946336631693122585188535084921058228482321765331928879393496542005958388073485634771784395830983975831552242546715126389150269347105097263292437886906543987282723452945248623399619530442952777825623972110803354067198253636234779251444309711200914517182126262188908518182349104779892234035413227317337544528600563712544730435585556937247080934046504633537088262411125533601670073390584242941448387263078731082641957363449968589840436718091757619433241956646555550604024591636982940831181308216868032905343797264518302905416990972157101176147689944351791255483246615347719246623073211409835161933534090637873790159638837107478627628077661119644549498508696689762775360636566769507852003235476984057363465870753269094148927055240115101162068206404937071769909875900336838478160422883171359108702067716897676373626200815561663126204170542828370578722220239928124255158774007703898918263310856836141421277746025897871052461777538752007267718208448742066564109337482650203516225577535337893985984010283109043886631008205665541177726618190301543080902377993933366677128339335260909945512458071856014083280578286862821248599696948196374044269363789863873411553938610441144549951034665040186365610069888672708005430049318739812114033298238913958345527858383127669005955260928549944914412138251940509729661588665626494539494646536307932146135598951166757787484159980432939699486304803821964695415712416438824896151009759300520633585674241169513136324056114112213252787714696600676081227036213691849363283745649968458253478840665575399959028001795755945340235332765323018638078897873198130344223729815413117301317151019153766320826945270431111063829467554089462631961695534607841460894202047778152317235506533184405074040797863056253430177050562212211959811823386757217758559527749275368972556777479631506160385783883385399749927428435341952084144911464745680303532038245049126840447589710573725272671454781058086487561146462746350731682428753983264224566593617550909150090860036036934419956817174925423477657102933414989573742158836665064591370024338597109368042615083769515545428151494465740464956727336411956889504863569442452523007375638092138107118538296025419961415368076448771459290961274851860090513608512334036785806982784640241950000491763623828079287508140224464921773934605303887987957137701659293711700255302362025377138830822620569723036422151585198359891930834309228169176166418465091721226970403821028653876417666784697863963448055488308804055221241623453038619333384121119087205308909326067136237133646828029694570968768158737723717562295790207608631033327981633219335653679905415247656500186028246476056538614046576047865339690496555901124553715620840623297060857447490464011402124262306362628904207293737358920557271573587210004507836563984028364912194766819678423396120709503694878005801572393846769098347085916796059431920331483329571042311777221780186807156627916109237842315351608430388377902486299023816205629795053293352254468488748507234789824826127631824423750397657334603056396530484680840688562236742915511311565006857100610730117431173967632438837356311042318283651795859332353241442206518756320395078222564832290559321966543165554784033042797694726975556612330671192494605451852832890772743641686600382968576071998290584430193237863968368202404576817433074755167763220118943256541298690101743559368386058200774712096466955248687937942750735712882887682869550993019778097947702822832776502108981696218297814241274108347618365852271073035531107765761541516545977880528530723574147296740896497374031852330183185129155270710761520892361107027427842622482676978546619487501946107777483971603088386795607705996690468714450766071914263306664913391652178840376454575614074631358718473325686831876629937781645111704882551545888074627932377762730620819343147372051837830855787445262589550747719015943720630889416727983730312592483313071915034898302493663050602339407145156235649462634507657531573342945144951176980401428720103423432713275901267233261738725258506443153403666592032150567023917208698676256484005099091182312032605182584424959513938890872793395280533993782386182233062817628417887214704081154740000522238133174232068957031905557263553944358264025827927113921955506752301613748154546438955171384280688515892062921729369361491370130252354134628421161464626959419506128508754115197780451881912894703729545631004182180512100051228509518140966772638623087096836942182723841808268627661040795580649094116915661268862280637314908387837281539562158894566395420448022150738338566949324102912791251100067895217741881513582583249542774248594604716392232541545757582838572586558367096647695004239101411100033143679005220298975183200252967100141950772113363833795119273251815357192250609629165957579158197248034774619017602539184146948237579735064719726094383859393245821913746040501165415909033627963531193303797357272230957268977657438944022448911587652462110483359218456667642121804924582744158976953184748980025582299126598074125164784582904817519449005720298360584423788308253170748583232948411714107002955158537342972227931878179220255759098047254403557227927809491363900479380266395858483749557739324089734973126179728873849817082436690409120384421931529346785580804007310951928333871574312264632059142223497723467436041262912381356121251691637200018777688770480453772206255504289272258384913206208990581608156365895290392211751151472240657978635473896619840954613299878288717611862935464702792730869059910871969550179294490655220213017394922834730095697954855486687949755401368737188075285965178297654263458421293971095303149572420796703410883939463033369996584897584893926031050223597131257867469610810939277987683733103135728787271900975505375119097737028553345386089169823839494220705246076382027093129715065152430052283182176595537559881659100041555648092001676369876614541050800229617611543506106417632513750943204008005535009463273090926362119291457230328591125167078881654031141991045033605897762656812893042214068652446844701202359352212252976693890213578646353708368725585167306506005516046726308343516454200015942683800496261432912767583777781966771864077043471493217010043849153270612430666237588746864823810578522907594130009473270978021910449752519595213850756345845132502833077773303175467114046959801173681839597184162215168228106370504720750387909260004870670859365130030271148233104894695805816195809959393869998471406218760644673019806818105577690258019044959531403261468079541699720808538311349277251981627762152564048444721424539597279910157796136282867741031759259474296793812754304067517761168525449655074494237803615327079308930500363445854241531033205437079496095041408048535196892073789347986730646197870173356022584079829055244002073173905722669541130561236518655158820188462727614246174568189358514181343780438705538697843577494520696075089795991933639969404934108946099783153182439556669109632169050996873646018111305700310167205751950053207876163115500882309829512474094217194202620745030208276159816821883442651130707086095779637622021295995611891710582592311905484767629766889762535384590400158236291665228005377276162010090179446803045416528028361797786187851582090494636243678599584253026119895263314008820127818815185658215261589845112694086768821720890722457941352267311487760048469942583711023544534793197325357414453368094409754201230387158358136299249093160237178834397136436628758358489635553310257582798922927166559693483836827363779649359675174447532996299959752625549032054346707293180681485133677916447769365780419218779497993178341049179616503461786719725235435069369032011733575144329482605030287107393945785070199256580966995761993886994030075981665226699881279627416713879489374269346154393044286420541637685104825226010097357003276888824265652220392731458440706055053217358578543334240177502241288267607902193497118495628675346643056602801916644334806023922270021342741248934236524860465733953713991106830702825362288970612984785272220705592354874094438023657464431141799926682397017920571815466556577973710984234739030584469861623238145901993119089759726570098344752053023299493894280960663556501183554141637230878778834895321477620731675490762029123890748202668771606861235737867498532431978291010384086811683431336912197452648936019403089877274231325851974078312805079274349909481162165000983681927879737365016623416793836265013451950526034804417343379428561463796399925668539535668703395835546556435940316196688680188409156993936993956192600810706923362776860971357632199343744743439107631669089346564001771682335934641575440665083235839025167580883173062262290443671611740516104638627029464528232151190810165690560498411197780936003734205920107857727930362754361231606687878374294938370064521159529149145735247856575937345456660822363215770267268913317578674829107331507063332076302710001130875288520261991465143494420399291487751727181200764272285462624376610064024271214934161072369036675102960827121596264508824866020722556369058694949088925567540505422035548951444657215378498459448929746560603913379335085475800744895664031312514441112583263601559815761031167696693073657001851403021554187609328528693583568041548601969107259562157682121540009039707264328835728393616187000791337819857207478319694828588730464702641286996367696275892405083759423519538312127096173085566544698247547109992863638147572868786701028557245374068171759820567886063210606271066829038270157288768431953523048509971610050166938083645612888178134589178415425085495902010002701793998938672944045257015035721314780187849925299506638157961390164501047460390238480260852735240366210345270746915506437648456189063858535286586606033809771796408968231927298865081830917835234488855390686806611799327640701352033378199880003889268910813865952059659577533321153688713974117497037435900757826206861532002496871944016895663329852957792976331629371015497413660155960927549012588213776638819966333428442653821847812688959985371316470248419538607153090098413250010722627354540346115722977544090692352035190196334726365391236273612885490901253219288926636714301393862370576887716389975514155683718340756904383186143437870514070410420013973838601158608697642969742345639621663642051095099025544012073710900528107451312041120759457351911323283369793692420302988190289300998341427281620948328460577568421963186624340565474417292545731057281767687830686093681759194977821558440039204536683778966489986524849588839354764061431561444693740414784590120677874365282687636874727233297096092499012949047176923575061221037866670646592853564044314533232326398991402837013651812748966995468022692343735365809950103604141726189199938231451079489166810017843309758124773280068557087566734104263282530481948046946312204284452381787725556744692850188332877547131889281397499671989629147231482834263259402794495054791569968081708239289513255364076037830052899099347172947480537467392580867655779315134094536818867344783617262999425589501197538698056019041110429851965349912036602782831870744679506876808625589932740507874822276965288083337677949501661718275283396915942058599233917282730995258319988017256574204676465457617146451964129453474759861331709315553343284010316891349815341672109722340144582755871449941114327882281824287932587412410577574630932422600332868961612978346532090417395868920891178382582747353145187493510966153531866533811904355352666404225557965667838896242795445916105120611051736539690183787584724395925259949233070213538820998829354989830650745095932207040593487928667998089106268410879254422759915809375406740488963979007610010751129584347683655383357588884410531941700354722644415795709489062263621861825375309619843227135852812637831897123303231796226730015023335458560235773107950222917257762691202913684283567910022920293323885270198265227296465886235708674391158248428933521622084424343194931798289324131883844305110791128898021046781046058701413156560652547685917957877748186600774233432716731972580108048780108024788043772294444796110824776295952754015665511877986997779425725539471984856052962839125473940279735964699470011654015585630460832738998993310537105846413929417592488131982086968033472428567148248788914181303044628650727233061121609686374371472757669129634017619896904586756645729518346241351274312111084477241953446468201828063141172598369889786158422498960635630618931092127681208288957160118990914604825773728495778736455291404443950862818821265397808783049539640884337424186635563891063427778024358186630639228962479350553775099833385306167132821743852766720802906995374859964185949262680631319768728539041198076603965323649214931544140693531460076757055964661704186391868774504609721513537016528187038887405994663915648818634048537995263426239306675847943985430458376070925478459645361214998099780491305474717569436531402107515868730707051968182871801995670464120769986753193179217012422389779445384963492155147118477595255588613237066731057504465934909968691420631722517275111129621949319661150004876738832879910550163186774027831133790702907506249784879928085563880956828244732145151111093765934346906909771351548195959135016962247796262304581731328989917344287977745177346930342097631413054246494046746625850008525436565165515486076475671882994887596176254969161570050904538540566713932195585531450368859955041074751591471808902490426796453797466827281445914122522647018647853308095963806433034252575907246383141665351224149278306327487778904869279524425560814644179765817218946773089722113392373122137905591418204153520697601429800346417106430660066964987825568761277466964840747599653104203366832351256777246040985232737612181210098573626994571617845889383790454505768363847868360318829023106570430386099990435426263421574023201015028719934986646613534425201756152171894728378551622148867936127591683944391946503666413369557851808818272499793654774828744031545206903394058787515120403281060995579978145047780609386308231914375254317693295958597375387240265839293668102066177329751762472000110277504904717678091426108480593524207825467876167517406603194560653304504576416936900591295728559822882398081701101016049186564549247749167814715297193347845256739782609478117380752950102349413612654634197638200386643203469735052783937113617171001864217768029246383783330879768197302772354057584013410369384571549341670723032930427575795873869724573019198099257511835926202516240942543296404896623493458480377906611554075212066733094148094058685906282051352894299817865859820772135760221716326444297299883083581417034891201357575487304642855076424351458049302558296518637168734505271709130444889038868577423892136197458272049197841777052902982826826661152790592418466065168066437025525723995596399960534582266623380732642964429962753656257201737294049650533538687522417354582566407380674353743519196484998499181473765058482163322362180067111170304236867227288304666241446260805321534986263337988310420215939132503842450052409901990372162400087516420701137579280797403821989597443240306586188126870497179719085042811544164132578647701717222999519072601964359531819155633272705814154279702544664670383460538636920961431471039709882793248046236613940152524705340457001393043205390837872108793215893244963324278676857855745193396495943787783331112224941657338540735415081832690839179227817022568305577955252128807049551142990944850806041641155756835028255760485366723687286734188052282955897608816726774939854248574573948550904088271634300809704120638958047938836630958464881413161385587890187644250647268195575058657641205136191173856215214317695650569045197884113187756716067860634328371123606346118190859219913564930984625553639043801022213462430609205800043955637532793016490584625897166742823762525104529730860364045981483500109726488613192434237429760571405791330543227110264976210786631676327868091227318537707232325930482935095158196958807215949776759227246187220145308748807873519644562324450697921042061505467084246445820375191217183397881492780974375697047764321921154830245157679597162316614500561762628489062086969251791690316013528353004719412469491739464450329984650195614711883785959487339287517797323489078559366682164086365467690761694541039202005547717622735719031915847031720630535293557098383433010174154721749999310829449537223764290927369937997706263511871868197143879917071587173539295215845123619614718026893532862565331890398302418275747685548650521571557637947186339422784331887282347768772883850487968504968523659720843318781747498712807723956491631387020955035288071607760676649909354045422791962437048718969434964112148977334715067107219129983569071171783382925347704321062703081742679247379040180175200592955033939382324292450745044726115965444179258037051969038122347948990547124913556888406676633348770511981959666229531304482996597064537614163861796653945200419970223583573353866787040204994046220927711661380603513105094997223605847951295809411296218498789700490660930875061715714294224032208755103975152626489705339856960042390474285205190473322923595256936763736829326822737206131937452576898161380923853978277361193571302084003349683384233744002389157889175627136228843903410110597404400658847421416466677473392829736591975234343556235381756903531645828943319786007509861352565043940344026434879312832856842165461545733182587530505365382383231456433987883258315723935950497589426826147764112542383216613024290873752761794249473992321990813305121850887501489777739595797860391918445774778580226558473965369547979712291633898027886391224420861774629201371754746614842533608888193010046326713339720086716274626600322787456095294397541985236661333169372103066239332788762120926850407638721936957393579599360106505888545690027602359268442511875276943101096678042945277029671050178905650604129963371482700550871551588948324532012360266445754739440538094884731859230357469374287064194571075726508784790571366612320583279243454384429261435484370405243133487834217721601960025365159403747834709077000504899443826965371084127996779919261665236514641223342823119201301842510353495990286270396791140957613871571706921636538691176952427507528587424660534962578792541483050436304559856487263791257795498328733249147351708188597749898986597619167890000149982776258523281241310929452055940881144190538208111974413214003390161376299292176366251289541827334448636599272624856133654825997116122011056745662261140859954410128919016109061329644371651608583157973140203927849307521685117640641647171588081695008265738395166691117368329399308292073219950148995359317024949018665296764875292557399345277992788820588817531376541024823617473882883719834201954322469256891174220392731497319465055926194196852581132399916334858811440468703402227983268847907758664654873304137834473210591004283499578361074950850766342342414822382275587015818538469360043440058445610606531031835607759127040681576544030534120939486485567851411027482395620315621595087593815456979946579663346804440922277378382118217047957487959713976668721440422805142536887349837064643022866987568592949948357675063981879906771082261848427272870822013899593223583140471470443275994166507538405331052176636290548951016767388123743902704316877193576097101664280340196578339155964230956123439148455223277130237419070487233434896255500196340607518548863123628030449592178418744633583398124769740090559796362293410746567681281931703664268174497658357215934544754898363107018644131048475568898920801480946706151227021256906960075583352955798245028716624381498575487588045134001156840436056634569967212425776130563198625917204871134455450107514507657155410649206029672862583834642722626864406606670999968396265954017297956816529113718598641073891698022055590448776504141981992897482047859444335815988325909718883668911568553587958795574577237995350409414433999811051953349047149412747042336002705742259318667126952943220326217337721214387644924635189165273668517727555453634028927181754758277832051148128302222613699711886054846375234959195828312425310592091595009753176212953576393952318082263502005433103604821074786938786900121232175607412455508600308172169654218633306190011924225101273611345226387390902325463749201064983865148481765195972270986412295200771029907462785476557458745469352203018113348823492924499588505295375305169912554789727380529673607208340926113334789404994094099173615123334178644712210806488345716207345660818159810610503682532092700219278980795802684187404424307646625308574384088561350035502555339036668693849011189415800852814588837730859526272070954305865393851216750342000795255819870805986809433885773301704152870125333592153021480093760915073204591862066716020640597759036275171983447663426649190100900121660219092545889302714962579152022822676376438243663866065982932642152038985813338467858230904693875464775414412777208468342082757379091922697926941814352119577347952197978460754055212983441738322400297287584576264865962392944989924128541223840278277120326805545688500325938866083762502896075743583633841445406427452463487245372877114672980562998764153245131146221785939776722316910949077627979871326817406102043160120273625033352714493509717531044871463615204609600495409504053390258244201501387922410829651655021602952506489618965498819503251890457967523326660451182857094083852136594210572929975508998434644137904643288452571995245816111644288465734524960765042835849332360726863030829990210830475443492378454737476597770013421080759978052490833890513607494593514170938313152916693328458122381212899634180279825305869426540429009492205999425958705831684889815192643057572366390063049571483115408793929268344440652396104758769946707949768575474804184065549031838289798671879475444291417029510429564024832912241993755962509557934725011670438738095096746872637622241180443050064803943356585927533591890073317264028960621258455776065837295276526531926218538137600535905130130213576931692568245912937472507861135430907746289556845643867274944730089059990695885906363367986090118966875465672208754939033252054917341609015781002570497467197567054919964732588782716613896763299766200703615408295956113708410147865536934328103409448382131835930190981323097478240689612571750706939743002821885217794890862176769838463904344683867204754887182104286611028345916201515032653930608901972110540090315846605473474187006682102685748454071979519921452891994869289854117177090291983936879748465549091941472588762193277328550316060810534695424015258603699848040047446680626386727278881694683300558609980771501930157130133131928497035957856764579389527729762093428226332492012467805081997049755664171967471837118284908198433522697646558413533781999545905040243497088288047357659523682853619542636442492497011106664348233725910411517947337882242854129400852786796462505481607917013251060736081234369936755976138714155815497676736591813446216341855275620452071192154402958991018043688776060176565312041313774185993262698104466093210487162678391741640300781515898972972412937547832186187588729376253615159011634646946698597093061321909524575145002837386305986682813325303306715882479573345096923730959415411490431361666805565321902381169280280427106100991777004854605992024336520949000167576641415167383550786688571016843500790806800010150783693553310934233767664249198059480180412686834447431516540336540901635271476763185371692311008191321989989259760490997812662776664036130863454964682420429020811957146605246853446441573829384814154905916756962842039964613060767733700204371848547145849422518566624022048927371113187288292520408409752004530531455302764059290273121924204022642055471082030864366020850805519890659662163376695645745296860203567695091027468879970323535044647738931469877458008180679633593798514683436800782819434674741552765050939608801512612485975966620387295943228547682429839612986842904185766999475731826588521717307246942000585097350684159143944352361857245510040675123712977174371065638567207632174975530141197629887626559508473678828990894898271242052641430713646447454810391329129022947754218157092582786083350596973092418054369538894268441785784545420969166936398782718855712547930244854095766777426169193536029443746384133816218025463049888469987289310180914653633915481615538420234787354289654803544947914407251766623430836376440587075005981916463652603990965994963259166177172624737229102062301090978713876544882591929593119669811247947430638700601771912159258198921872166945579084030944236091323297257676346310464125918155001343806905825775617448307194932480998795801885830824969611199739340822374088269091559336766681669681149086579651712622475613630628747947095038806489531757926943422565003258088152729794979034272875427328468367032994744986128818608648837162849422609467490438062145455613523264845344897792022350394087804313143343689630509436721767397774029367905429545358869223553809523773288851999482261318423641705793021811080809134439862042010321510103838069325229409293679242894012147866648781655504850851792424138568956881450378230652696883702657465534568022085117154375009169140618380234371252667509787495995231667215864782995156110160802764678288501675461125892864091641651356184007462670239481882969884754272616647007819358538594094779592378605465155700379637122365712992332895366138945187880102923291298877987363821435697421214403195861130271416516754604633205517749264503281971343534287290934020876741965563851869211024505876511187960519367091392186990168049772585627318825609744071035632175090946487572343441253859210460850608084224309741418252761579946940326195758110717165323796035274559012523001204300340564430228409585945481334574382212721495526810835869799789133032962081913862719103456946815419232671918343195180066304388812381970339298517617115588839705568034982780713419854475567995877932519234941228415380278531660138482883043946901140070565698857765496436650197408047330847965298773850058932527281215807346578411293788737667333886628167188748768513970934304592522051214174842153185245749009629607501405591523629222950598877071177175519523741002748622007229272394948265638688577678145370457451658477744690617441087055779232187781755351021719570574848019739472609769478228500306409823633538114189740212972026502384862804441473963926027800825133849774350621798169231080579740508266549439320141727575723726960119725992202187603489264773576061244300443772804639388241091786013812641826706673453758816171764807659553689806744085616022181806897355766599049695795852541187267764374103495903844588854678315217398669319586998565874024807113168235673046484864244001285246983040200899692312107627356066894504117889169516874316778695269021150990131177141993886537197329511122344635184390146906993639710915080427187332489372733974993378840112544998285397484402830426232858777816101459949694038218776355751792177484756639585667226753115262791896925018470863332940973051894678710086372622624588928931961511211897055035630974232136523501083553187986523717765067808380118088233765993249411891339996763080862871155680131704488483063482821534906668071738110387565076789261182170269027129052581744762674225425888269654198587068166681511200412157360627625738493672207730173938808807619235709213619110773584256241508670902210349147839968787802583656959186269555965321358048857085672993948606807785191622005273821033380730829250701799882728809075641922707598733089773541654126619587579429816851662095024178049019206433003359651475693110279332132943829347055237684666473866086497458257222760668314954389085480668178869165114919623853564375233550244246590475642291632078083083511685803972635458878067728437542558562357520397167573263679084443505979098771374823373842442093168162495382040943961657534193091397113563037312737604228284825938713573219794394127544689942318530674438510759332105895635527215941907724408296018689955070448390467461610544536354822904048468210950916446911168679548126849091906795377139845595284821980068058545174243606993459310061030756825427227504002949156574005327277644461549633390043686803113893385650063561640921551949066144636094154954736190394686456010225949004237956697904736380171274789976999053217853931990596436713659153314077546237176208325104955177470997942306546465294773039760677371880422944399506780062631626840379814526290782076798399952464383623887567091793377927767991717839684964197603150499099837538717268776334680990523445529603123561462199790142178265618222581191067102180836338083602555332936453006056287151855884788337753944512082092624504650897849610460124886760496582937413881092941259736615458174829275216106143901772370500106378099233652468678553787843714273860078303480616235762307301563612733576637851070206130598288774927825774171561920252397956644238977415059886872187757289539623322569625584179080836707326189849876001320520044356003170915700231794180602664682574495911149406425584306028758988221433981017824829775030226682559326776276995671016703962122734501945971732688115878307596368720881835662572471504337664253558473182020549944398939841940230413953338717696778339034107259779770246119516334024544294392910864943950567012634301564084889020467249008847072287308276729183625553502243116675986934452002817468930161025863175830166404882291948742007424978632111353374747558225904004507758558403415957267848817969963116775035246169044676484989759198498354780128893155896155536131247602553052214565791234135019648167187708711346250407288138419715079177494337492691664160586555985652376330306004361165306157543311239152580155296000764165896132779962621151597091165650450095422921743782690509470080568920644878159938116709504087051931167163386012500635483102679019206749552334024553750619792505752242556851389886925877637269699972060839169922788261585974419331090159362185353377469060962746096054569973873513480291293429841492450745767223149668049591530975269320206315892972422463631614248073689641121180557226959042856506415687838432430290106369279183834861308013910999892557461981812086378509399993935080227262760948105711489241653525670931282379717367639331209629280564446660293612282245642887695118661398871313028721841921685002223393470771073105272271912567130071039190885093418866656163842721985035743647393215754629520928186295395960307386966736456725056057710545821516561819018314534652136155941629840710312045694166383386075480590250146717029771055324258817190949410823121182354817899642731977378337226362203356987447877614676504587225184736890680616086398820143649535069102088471994135039058592599567448059277377310133789825663767795642015409648614166047354034633503588188513458884062078260212279094239025638602641378675563685939013598616751728849954608640594920245594966060824753081257119595073523241272906429375573224164426606887107189045977676039847770402700166167610575773276453147367110056000592698238142344514564229168380952866585082605129098829360471719427245570105671058716778630024765447863122745597971992461747400800717389427969749013053334005975502454369620072745629248071881772874571895740406027537013394547189996129125241695878319717899188456593941492257450092027262122582715912768570976986196233772424110617246216952141974878591733976613461467743814025840366942969846363938072897528208256782792904539705396468279928770915179481401248534190954833583385570664288841905954698914581818358748538717042636085882830443692135369833195653923774647686718379156155021570320331925103688383781264594046090546943596368721325800164214497636631284232201189920447256706322902064149472999244386966069490217894329715970206936293607712545260267035854113528156678750669131350812825394879997236216488877517143031710789274317255936955485451011835722143301654931744282052746103660670734346069882862726087565752037255793860175203898245649378550395047701514285983688825569255740206516205626004896880741194218680068907890892510847675243536320150102612724729682506718205068382444148642744423571823219450623792408105821739833436897363420999819491566058724144905390296605823123891181257488783644454374336689697727810413791051537308111934666384866085004684786415065673214937951264074039602598151413997265785358941059600097462663172905242974661662578744696440266074125365588801213533465666325779760717013855002610643217833855746514878396242149875361029925265444728732419029275909986379712027491934728925619420633556134582378802500895520741536269567148030467899420701537945339258879070196990709963514570965176182520869827073764842448884661288383215141838434876890532295749989455846459934619734712441577585894220925727843603807164156657161508096556000920602982097449361046036098793743377859013268458403283461682905927060288706778683626380681688449362271522414328619397410540893328335917574627854350102759732356339132604992802586299228896300492728768868316361658674051774120552773139212041652593022111104744499094835911992007323468076180586618931836903922375596662906982830111404843854432708916791736814426104952697794283683028342955389373532635685821223615081329600509389681548419378614052512702303487976977508071625014622696353987556385375462517309413412620409174081925446351143900133723999226215429676565426007532739110176056593858593666553893359742214664836233772149311731844630485459199981594887997884505761117039994673452179363096635764219740971816554483990694585200074683217014978152217317471802324921395420238870154411406772255633211613045272515691155350628780980306911321661270040555870801378329640680496128162896465070046629438182929978529563166219347738537558761709317835244515703199752232500022898398624825963861491370993400172590163921013433800122829912931390418493879177606764367404659443856182481382113178344704725201519180896361417847808478308411279978735697826622017958209679564053582963665815014217927097438313130073190093702559992321269127644810540277614410299409834558893516588367411066319921796295910656458644037176939100756193123417008332175310638295411098990437188557127428316757534254429477294883636305088483622778064283803144929073946409622353182926613332113592500598031584526015799430826554591919048226841861568106738097501886009776274780153182522211626283127122407773951457702387064206433821197995079686628588269322861478350779278618405244014214926397025782808726291229538740339678026824773770173225163773608039010958310274539614547161569039848515263327805364557685306332178773137505013732458004417749252672677208347730535825447872010662080962921830219911223785066591884788150543699914475704756513544052738657806276377674994556270650822109692498368531833947203718102130207703702213089983285860016593183925827432418184681544209840674679565066599816322371653303964729709388374353706108567990081388337668850522729628933688023742316163994309274848676569121873065459650203407200987862168024140786536789270629860114886621156697569561988860193476991261035690441310717617141093938178887279748166676715290427568156573095939567578166152933882448018936960035545406568177936949688424392894792841511836207730018494809754951210184878053220225908204095389156013672900963561301595253456007095456394381129698312154468627789621019507613445138414659373043036148189555019352912870021679117548251870163809896644299325502124838027659515394429306817941727151444483159514933581125414484250234626607536860111458809922029455526064432413584752367984997287173654242507599697426181907094547283607287137081991215696282901650399518444909073030405849272695732789962638839640451563573801552114567099271750632634791577320488502753632872181239759709135813438569349469400062826833758847461521266125253746593228723627085658616250460299203057831385622472391108272938147085230795121207704394698465744998286575326998449357897727416463751748406698263807399080725859448152848148568251528011372955663213861452812799205286113953467462847101046977086700866927579846465581901530413471849390914848786096336667618060817991004406124976932470930369500623520136890445655261165779479995387082370149486804397259584483025729571683358023030441111884827629257040898092134072712409492656902683067443252798607172888003450511420152405421224154313350992104538199565294602064464738528700601498527620040691336521468413591353167723044154955505912595088592329344856812652886057970163678852784029153103586825729148163420871106203731046614298767441137037483079446435463916559327166669661463801255271434929731833153472008606273182822280304051830186601624997210204409255661018042332697063380457997247468592359727032978984305119602541347917130415565367496735782258906708858236127768422265547562750748303192836005536037208943660961748192104792045603381593894757453956758435108890936872214763562585825136301263484334199036094185148068126006983907409491974578388739874539777315082461297380620464259167010564906571773619324889864718506737657186415197647739225638772208019034058563360858707670486672977284704700673896084820759182042511110659578935891482447313763785338467989119822056866712487053635244069348436964011367540778422149720399882001304707611326434041399510187723953361406434132851144943054570608633828479887212338645446625508990034032473456059249356096411093002093203082405322512530924040481595395349266814908022801732533417502165262526385935657579786382311851169682106038156495234866381890796971432484366033720518466794948928202781625943251360326004875509136805860176186176838014001281699757847759877996357466835026391701842684235808147941901178409157446272958210705361772091661889778952310898075350005999030017387334710363830496051065715361191293508395539568076814591691115655172858718531528932178772336690694973432499463458307396258235466939957890282191654092433862865674708075303039727792304183630605210356982219225715345685471357773536117399907303542304850018310144166289326528726198454540613325389945717834156623076883385465865280494190894945517499030616641400329966326092254595837038702965252987223044749043189431930960743557566672483747459403498282752618393201198382123895148804308973220756886072578407353144089075359577902674275005398831869663709681652556783039424779215558721754875747483372533860605139944187192638686198433074360399231016546642722417107255969360251247293000794427274215152173654111467244975252808817908401942580056332389819707971227296159486424344913817472839820846164287678528735810527984511419396626823817408331939478953815171996871115538730069526523753511353225800329215739740364520408876478897064997289121614922926831744609818030380258236113646976736381384490709229905051466330850221893365699028887055286896201075476199617320506149358991912885082868517677820899289628040121357067023614840396285968250551675028525224822829108289876212503026031475891678276264145341199333761802144150564995024777014750675683474049862728287496531202650967274424322311763791819364934783795866241606295362686198561312255969396674635728519241826386900035387154388417966114928660102098829094089011802424869534496132683943004099856851102707571807627409751389225984225068985871221582880660900992437629560381037638063069713446684293930275977273390986370938464687220380024916106188985540378363750874582295389875406317796114922835530645376675174687515937879701635812232247869094757146622113801496783304472350006231070699878162950134942255968201511866374957007026824560679204018591226703371060342689157615487322371701055811132891328042193217391771432071171705935344536672122438616919871794342707390815057724845684253969500346947201236465979893379880638478849727440358199974868408236509454669684042253322357981821173872636300384924045110544520651081424583455989284503518164148272611396918499490605913672098707441541805641520524800684688665277633480308433893383627691864520838202892239494352057130562126121803680966283531602993795174611031635219282165541129557445578546454850670364472059583787128198008315738391985407446595488321867734379060485535395104754227219381209782963501276758995894748137637334048486851939915672458082060067506763426673533504751381997919862909393932460359256171903713498391616149816147355793523892997415847117524489730182907199293634730723289929662816869681713054831979227313148461088957441094200796934486454589069744487611186218708488006266844353796253001718195254250580862636360955010225132281238447419731303288776484151934362252465445785143132802987535831379385459034718420662335415279812568220106888716029194755854820743890014634956060944152340639187015873593763893450006229811132038912725119565883160172293289278315370171771636136650099752547613444090992310644128245663067801946047955105825000146279115942314781842550666381786137483113928968789737397267675144944934991553091475398033289931812248602258504323959342140835647899720748872218952798296389694336202533584048582889437006744100124035352936374776304699758323286913345272252618567510955414250782989370242274170612840172332499045494283374856407470598325606622206171673170168839426562163008756711138636176199941836657430313668536154773171610094092728601960247357867546086776057438298729312494694995356301090249495828566863534134954802231393144987682089783327954163474641513256435356064106421615786528196660318437341098471033661445547479929374364618390913589871294764512294687737935259708541675978678897138764800137524634977345640344955559330273676079883587968805366868218747344992889307072598065512865826461612286263809465051101041435847384324821607124302111084690260893018441880515781788882000220301276607594164999474626608549645303647989296162992982723335926160730906035110905504423554111937893429788365788276103066962393256516581619194544240916819347870463491572183140538544158443344789917973780011796892477592944304674498183525659979337531950372247282898346770217476427006666118703228014400337350055349907103061989864103041398896767987636429122129619094990632562215276058880109859759790570442173290728301044564235069485086975194851265220540079035665371409244353736875160846530531402926105806968444227550926048095166866592720986376692581088291660063173924743287127559335611308841241557578487191380177649833062075887494597863109088256510430841656980747484434249518910779436063585461439311554964515932503798381262511870012564404898880490646031078238209568600883248473508922936003386764332506383729120625879095758313210571085049114147296909434817368167517767438856049791247077967742460031889742461256872007817846053069897855017069612155928819726043597711673157675452162192374892359257228300334851038300986799588071607005895645303208625719781248549306184322654766581735114430594727137260361299482331247398041672493031481135198458967953947094608098466727811279414222597400149294688570040464135241957187400470929152478289461516678830661636995691759818933693835127171379849002854540865803173948139399537516956475761995139582744576544606835142870626909641456004710137657100559181404748800832493596695943648338754474774724287447065975110582034907812405888317142358286613533078170874388338686597061055720415960674019138335539564604844201641893193575230222015282040297532692101978138327059958771283315179788965215346863610855994806423067102795231162411394348565688146365284718212408819527790627370610070084543878915974973099244283245730752253702359461876918299521095040042469136990268413693113660917107760632813459933949930011774807311129679112082123688129210127163358230363999976851033012877606713124139807457026762505303354794012312137789727164729596048879186760081727564301363597083382818160012575037812328065777078600227676982128207086439939474449578754375245387861866095031854954675831895519740519936418848493466882522864711023592089743763013941775174535165663436985743963775920711243413968708037713053073648417469226948996297644647207814334392119532156557953269773793507026454059249045071891389346417585438486938617181598983413918638493764793597898076995895589386549644269914099376704195246793949341419011366179816203486545697896565732047499740733042586540431627375087043228841876825627078752380537886202103090350578560054058514690714924848269971325080211957256627255609658218708864641100423194658534678011696976065662194615254096934883217539155023863437380670348646546682484301104215972352798792535541276084012578961199233605340683203339165644939095092084298865767758472554371642042432411731975581552615976568900744729969180785262800595428902947436499615453794822298454267166501478027249100408557719631900168658874470626444321235061133896585086232881382444205923317862258524397195454978404755461239577847949362622509261377979981478035169259046440028407056746800202805191119309510658504153555828351848054022373970625995893797856825695070881103282960454429376362273880925215201829275654487257748432926923284495169117593018747542000501926654706502790656757818978850955984333198130226780619791346750014878616039412365601949441752633820318110301432334554437548313799083581884870546209808770756915741384440869204730585306002651042243240510039114966854003421347337353286319658034974070715439747805022183086128677400903248352623584430148842117318391946015920920090292073569442199251466234183601999613305098281799844139184274477972459104599222953246108915632089410049228422036300812299963714404195166503145348467754193172213783494157686975564575702545840098592573689933287535617812718223306724606523966001007224567034189308614598741466689455516654817505300146733262937899990817118401590866687239943372814284828372298626171212218326545771222654565599347078463126275440162133672986387167874598340209401534012382688700343423007018150334988178402378512898071739194433079853172240274619624689946250589092529442263230800195903223417695246821120898400817709889031178435629657988940845823208799466120446975841087970426935213345254222758977002464316902778360130529593779452006964855695125514865002187215230541612765100544007692500541510715478328189865688170374214532172487245475897189820878723988123075374349126869033380266667075337222591519142053441735840629137706551032727929168817621270939129630263849498039861525662342195073357601982616795649175957693416229982215588727516593443273490085860286084951203060770660778835512998654323519415978197771600628657643771362089426679620829807114621215982299416071868071820742045171140088819301310511355689502320992874356047790101422428213659065787725398345432946891174305010188493677687796163476498563073207152553678884946915819516910467593984004527815828997831878439068354532305177671867935830365285222647957538820597688721042758458792262936019903155188725365321425907277801052322530391229632160685964361648336137625677456228464973398935654491268100434900418514195457142645111195955334825545683058413001079797776399782263291282220639271344185797592146332467228955980637440215961574128626716340723186167002684923743144346345893842790222799080125656744405734391579313782294250152076590734345103330818516373343609367967902062464053803801605419457085370565557962454915128444314751772469678198454187877218489657084507738868301929943188909442004054451860050799344197271028444680645889083756372449954638666483284079685243312178379935584465094321927336649567939050200442621175820685757508750089315245088416302824496244388549144639382935546140053841385974667462008723041953099768813338440290593031187821772023176088426675797447609410490380193155657643304157424274255270586926819160172996439996423368935897429392028424192063181590527521020708737413501555471846722188034279466899582521567881507574029372304544558670451491581935904640932477759095184835725910093147545430456939469257203253668639981988996148659871764516413938137157614809098807327555685273625334416393721797441081258352333575019542168765808262778206111243853527465485627611410492382068834237709329750099656848356134983733865037086644992135058209810957847691013915712926811429333321463422222823574631936768693956742023120619219426933831773924687797819440971698966599833912610510868858657768271651058370337158136699056920341590841898406838861505511723608642570423910234768228365314660410931622949334657676990751926125823350897700668435189752857099552294738063395355839928548781121837520151299738642185863560141566870723697594473733427375764219221778544018674277241238071341620488354225032689039196435624978536857336227032304276045779526269790004158029821786890919097089925876503156841162535512168333306869607710799255766584250237770776137093011457242213480854127906273822837600460012040448800120349553996177002520544561226617982715652804627205113703006324563793872100903493239886330700869806399158108901385145991148573116540482312824220036860994613430814003798585573866620313795759832706349712673959798843011117871842250307415109346364869142275657319312180227872441076651200330816204400858507322981798469070309076364699640328079131632946276129470198792783560276525593635523008825623786319849014349129680897100700920786406732191479411126656314908509905556532791549991080115336797013084082375647598072563503895308045708834331285405706518992816154230768216037572717131965470688240498835970922231557778032582234443719587813745208883729103899201052439684349148387126768839424126432355140591593015056993964589525951963572342979618659410126843228207792010190800910953715749182431223295994389448998842952825423698422833151931652430373049584120386238445703649267698347912459969530281724220054899583561792144687850057860611277480368704876986747879594653404568095788593607633010291622899409134937497346630072651264820018133731423683872029640216593121253368229944930117573372108249341747792368425791723342289213868024144576479759050561449211410818068256202262697084923077934075157963089291877064134636150218204026386377803434863627153844936541943130438198148297675732342874319152605732714927823294152610275030928236377753304798563158832845000374893026030554602844976660042937749451726144026102053646822027306267255529601546435486887935047612839762593709418203878042595984854224248515343446017900675562804497955200387579723903989608264028982591438460229630616268240966630878087720307333241105363235752901020000494184863095673274469505424863035156868201700352216033808873539484778594718347764922905197867911899005374883909458957742434072459124811378839148458366162154943958407572494074824938848459534774870063753986189658409890134100450320626368496761456382318263565650310782826673885144025786584033093005764261966255315134521056375896240373200470875957090363901167997130359045818793759677463530007790003649559488171917751478523751667882076484478240185284176983292183797205153061952663866332542128820176988876194010099071983494294252028982570622960249412471622646492028048085750842532047967107910633319856292275467636149382599203538532889476943963063928870462803653349754353503801547766219116684487120017388294338371925565809149213007879519217238853651656504472586092769018444395057983990735034922512826048774646544285880730654092930671097090770663837112778954332100070784806633025992383555677587832530998874565254580779402976069432134729211006181338570276913363941744303899648533625719156274558107692115759791119074758951034526632692416121336193485592794244679472967013658129303504444913992060205464755902023750380765941921771681027332602761239431205347886794916952374898252002511668873210753841396777736473069451969079743142450571454058275889338006825752231605268773671398230335509990749440491402938330797817694977475052682944499766779553501736451311224803537049720188681725273872862907098615232904390309720201704938999531830512057388285124891258826286115567735174103296384018315268577684615198087588569472741371804220306551537563871142770844165434820135626206421331900314622723116815729965957957772576381840427035578102269876191843407490651142111008298598622399994683617999394822382061683250786498955841778693811564291944677851246010798259535432188077986112503516397291688029650249807283953245791358758234872959901064069532929298113007521683629654058032696052951975401303711182016551843164943041805786350014325735336701401112485662893259170498827454031761941305521043568881830252338360837027861786128262596963444527487248696679471207049035564589149618767191517250881432082876651275866801305301454034707448166238041495651135807936178773866819814831069491281787839448714660399358359062178886461275617666896514608713461849666781884795331830782950657663125423423693783162423650801912397111155561677738420273860617795489871066799777039918325035972268367744055176215736964957231671807817410968873092373366847416886989219962065627700038528254890854149002094317721353022131053535504316628557002072586257306807972238348444090461585193934509713024479860724212538005405691386741884703476147947454768933453358028167339095495421261689476483290516376693528909978263431721286921431796432005513374170017060080198797784639456254459698959525699769324273075713580142070705499282910164257038878509845040770963545611364078485529750953834451327637506256001350169691707577518018132541071470879195491607169256946157596005827694502380033256848295939370983711811502607775781269585217628084696880902476592595878863512002335537955689706486159036674030947635092393652535247310145467870285170374790687486964160226099245573258210979338755502877338007333378965989862903171514383450372783520404599055889235720219713462273314445746709626501506811156911470453997194739694748900490397211671582999361106209418454014695482315092714486085342075247240694272187757706425417762117892937968252197847186766037386087183661013105365154859804415173521220384017757665194985495065742416569551737084686093056271237449298156702798359043791550210518260229886699427294100838059414968668538298479646533475681371514910534494336751409473761192345398797297535493793472896597100563843145632066385449493483876441749494433976349901068104747469435109747203625807644916323718297485798201684556494607035726588404768139466013017560425619466438845886470187919011814520432337103660736344964594152871594174186385903697830486094319169690973859304952973218055809109342720749898576818212389661528381708318901339903396086581369927402323151307408034022514983625203683589815370461272675085825992793793430732151766516266002167499773252083255589399190624827988653033759264304917465951502215509381880839464546060953661374926748870152742854280185944567573079883695219920532942794821010964607128302797171462644764191677099746090791682394095998492677938530393874160572643137072203914475445295258925260593478518994757414092225822061020669604809292909819162847138721347867584161615898705805208951616573542239860213923125043641521268300928426214108292719248133770477532324959537587404122173998317688631509561225312595823247017444576040533355766404709103771265060469722609121714039238360031644690166534781855854699613306098209414437341080379945803510759098199850353520210551290212620312274268963921055849283475733505331308848868024828576336877921557676299753637501260752984772919006150456004085877401103761606385900123084911259166856112024673198667046678760066371597323470838021649416519897835610579520734080255816558992779877062923405970864367712984736449864035466485968072958673445487952976448468608397392296446075086797857087302948254417621547624954315649543597491156890093420023307329650556514986679787311881985022554194705999343088368853574785719077291887560784204646504573274528075744811767385680230099421640632693018018491358615829893200114464240347315279380646122973357265794091451342036678262307349814454336064404021729804007067618565152901364447650526923593543370400322598119918779238929521011458753474026226351640881502549449105481762222387376219857842507913001131370409221489920129951657600075321715001352622783942970159266820360260197395735351970784286350181070776432648332600584972767613520101344827981198466136865875388342239461591440641068776667734714046095027724440466579985192442814458805474549744683203853964277353152682336975524584267763919377630243781565659462240775249820717390037332552369585598711597231637370436933179224705311959169170724656755855468575927736338940088973197027182350728347226008274609628031121844152729943780895205735678009820777060547055403021565900232736601110457400676614776588669368404409490230805760314050197031949055125436781907764868931785065702436967812115728958665607440989901174984578655623270701392212756447091150180555694944633527114004983835974767243916864110865198595505680677792945260257299258070244094152807297918882334972415470539009119749764800903725967449266960857524637331574903512226631151701516239386808327813117295037292526548483545618652507717486547632303324673950801055560667719484911437007595941085783028782235072250739967635443627490209044772013947400570192162102785164844603060680906977812450797182963330779369526150412048787205418441777640956531198638480282437205587386869661579847421217006047557108218739387022073264984107892601908025960604174465777206056903586994324784713327800858086322059226846195435060401604468947277742735143386757126752716411956036485333758398783674638585136418579137468975747748722263657825538827742164849203591422720646011731084126422540043292454817752465068618717264150904018818305376453261953795322618551620482113937892185878702379138601560707260144006369027714017601907403686678653107226998506437731860216465565024244514387357819644064861332899502907491790972871718504306415560977471259329160069229016788796318280026090721477971162751634358307154375927142221728936067137851358899107476444313498695025907658493055118703505948268530053428819428144821216874469461421055511301691320959679490912862220035106217738080887834783267906960133868667470371233046616169663766579507560493623405516939128095482955023732492759698057687324182955435848320083822764674024127036387924940007500637558138572821282566183459688983532827886531770241928286319055367927773860687565746064236319703343781679411696621839606203512450049162610449851989134528973410053015558492238436316801248809059708603295152476185489702355398689313597974249989997644172907567694227741803987174736686279208263247873383216095457524823870013122604457288086558860182772540966983270046983816818227556693204429958476990696095767134179334040901682133858221372978744635315438929522612364138505370449121855586937431732141935085955614451625934305322510137030030591261672723526774103378611525244505131216201374483793432302276733513366834198167668768577984487899698842681486021554418246093699641959730813936941107902870283004335983833460259863611036268218351232513165831820082519693718444040059024866663971401950614510605328823763111997596311409143528641560054530461380838074289023750132898549857855149205403211016407192280449080761366733672850296795149494371488325006702111589668090934228812970081892172256761223684938104350665041663366571568367393975850416504221928527031810366647402058460010079519734364105163410716189335987930788482266320374585276429316149317229880416741066581120737219002741044364930031161434496744876330634651459689110679706714840337650046677455318066983422347908939850541037418958182610683751245680022266762608810772557474172549366180600550370529309707141290944459373893762678039391151096905909670991381943385601770589814091338846423137159669007134322743846812552520804846342306770903820300360425497569858603493716963533899148522224274572084607215383319324247764728648522597950768019349715983629494764777125796591951754663287499450364208391716585995266621590040438955243103042244439384648596615203204755193901391269681046266658057713379817753513062781773370119499075891103191002278233597966680477253872624799421584946436383393123111433464852677352294978762238534899426381111283484006758198505255270072607005534543604227261968804344972001240273635349469490199704644429125678893052286424495172138182864346386266061441755923014857514456785847754668013877718288658542478159334382202327969425986340440108375446629439988551848922725112317513275478004172599082744519439339175909578934813946171711250404567711453489087526017981959115892030673454618161540317349627508542141690024241629737902489208697396437697167606627800997108782691620539069850473337464126282969811589384444126873150699324699722784804224113478370086384894235131622344733256856203628110338558276501013946291781520034313670033260869514375200874984356019846063284177571258646415774873801962492133117117145978851168653338705443277190804839990430381975403121191587612816630438272125918685677163860218056212380618339864263067769982915717052224555117917339774450863558530303537471622477357989776668189586169130270895756923910937150034301755255912862460077907610208197849467769412303942711857781104000757196089193174965886404650858756090748601970353047428337985637610155328344077862824281906689295709085175334514926940899134580368883904984003406564018334345788574908047735844338817370075459143521106005099581258385932066657022721552884220338247735448175575180065146659574863058168165396052420149790387477536812700275705423999224276397548162731047283395318585326061100230252711458562165683125804661453353470098221585352724853657721888396156521356737237266670910406888723931451322551323527126110370545618613809043507599400336377784337453314461968617742717620789089964461602603841724286853035249918092813312407047311054518424734130625771316107537512340048142473736378396798344835214895566966675897362701255817137869662736817239180759285403971506739540861019629535893264816234130652352178848434190201330751999965869193404496783031511673702151403274851685753486735617546734984261840060397156049890261787071276953976869791914977659457819375581203810077886519283098931858204215605581207953187520051046384706476892411179739009124806884059850390920073024742598993066048311608144351138931781841016644777833460014085768665607243061632525199409307067577544905887790382901906882378410496785693940519694178453861220157866784753047745287385015451619515435951778389176583937567600262796569255592737195355881710756930334721620729362862051249830109862706750257093050076173523734573418029414931308619474924642921138607824547688789279399774706745574856448894208296672738050203306860659402396893995024173821002253819622481756923245535238929792349914243634770697964525061991695470208145959851236923718222541280221384175461527885871861660197796600599359666938472818946127298348257083599516072240305537868577337376326343975578352502024805032949192527328760148954811584174567379178171304814432945070097892192503589202651956730626879490472394906504740328710353289189371492066086009517935040221277147543851148875835602104028513354416530879023144728663849627395292170911105544701657446417464225893722663051015623380471109936934131997051609116632447121665600608161856474724189241902005087507665757329534921062006768769413434676267507837446654889528906531892064400828467558085763520031978007634067893904037248016876442102196931964039050295631418344276772578779255704399702565366502231174804237812492421959840284591226559826587431251910040431431399655298412106328078134755810666356521105450710928072751172867385987308973410781229304633920562434170145642727503759946013220676792686617618460275438686694030799962539976996248558960291864282492310090586190540982793712796770545811423031554066837579615340775533048102824070183060188689492296252871449178320722297895092361608245473002890386208134646015763778713544976956203741491897724874078300830807304977662406566038696552303797182109498623628691286571175450627595140487556113016432325246373704892478537423699004675947001108006187202439331730936370856776437309854535069765467759459546562736443647767228714249681118397964146095641866800620558997417453472589362255950113687680955078152852707144480564184624663996207897140035294754149044139720532739430746564876563009575869371429413537662949101233066733129188928260504085494073264975911781094417648225106851272256036998572861245902217168141196878934087125986522948203812059503386816687342396894524607568311918271697963673249493792028944244991173017597992866387753639183566978916837935050659646690289374489281671064595693968333238536951802435964536569771215097438253565755993178809738469985945612805779386128816445920256200103858645130867348790439864589576518746625029587647164715554578486202184933024597653007682409459961650409114713077208188396940701355899487065539175255231959725732519638509138955407294156735998037034681194251060540569724339324773553526918678147116168544669253550238351556692067382459713880384453212656482751921664717668459265127153769341151541579763362651424398934599893577430651300828128106289680085158025692269605034892627209699940633681198304733128930275969466684157030577321976379184178727869176445451568036484881906626187613862564263210399168701857525223316497686016569101224163859963965641350559666287417152899986321976262963444778876452230238602838595481082427993157614257357281342868448536220792707888591631513639856133368388008883189123391685278031660831085398372937694578573377787000014743937147209664640476544487532012664193973475898022186465900421784498978297650800904230161518150238962076883295957989390287647847094773887227406543293026010073421956916833996799284478677356027020180970357970821163928496410627787951853004791425495561867804336669335292272461899173313755231860218329509071453528971394948149940669519429084492681084079351872872677784197304015944573719899825605982598484897808938138237133384362849729429873848531772372444288538559693147005684928309457619779013481362131010900274499715233671962061001136155551595329375971386809957872067093647827771329662350213163103612343690985016436958442028547388863429953424802919088952361706929587436616113177878501594269823268127391822903221689726765583781462202761335012089430651934110705832847781349183012507268067830999689743370667629399633417295838624616500012800415283282275466894334889597031391586732661306326637246728380695033879435763794657972603987521573500643017144034939841156470453527215201570084282161948426219073348526737193143032929626303869082637285559694259536516896855265356944844381639403905722606436219515899055699228867750775039486795289840343911262200168358159895625224449816974136940837766069214485870513563281872016961519779931023808490734266111554304341275376767244727236252437364817300204006002274750630513617241569408225441538630037363335143961453598705165678265005027671702498232223438514479299693606275000562738068109699316357601031897982962389151993654328000457696629095918054288587429525120317797402235071449874507499845177895726821108686201150716567236109030686510121820637119305570071717688039790116119298836574948613580859777017372472664045527288904940061480024464125165508561850222345781490621921526499246251134601977595325863433604199404253159415920930631003943542996641368496501788389026117686229930881882582805409004481379126670654367314584735710707803828123591536221105906613896533408875541913278123565350689039864115611977630351675596998320362467616603173197118920049759419277614403287569390484060311027766292191118994530639969897127418561313612350436020613272814156181791243260775377779899092543667000610971371050116641736289037479076507194798775406431831864843205440632944778492912438122677587918544179937088110305923368806063228755457659060886212412406828772619210876652602909549203961830835376226513302581167035567283287628521504610016011208749931325254225852775308527651743397014255410233699064645015190806063816639807022658234566566837853398580459102012587863099247696890526233662495051523419169115199093151960103750002607671920749938469267554425235462784517456884937344692832355626653106312807962485977001172793437726279979509890537715220365420991849861638879355104837795130323156697877517659142534030129035720108844669987793579750726284590076912893410325710240397593464136761986834438307948065769950264184094508318677959694753373775372085790683223560888240251024910695298056770153018369559579624569892686500715585600143778404158857365199747049768118412113750525998308182054145135661242975850026730168346134653916428508265521147964469336331727799914324950782447819702438143712285858489524959818976636134766491700195392266025097356767236964824010847960691036848663485756152656896660843011962858888265391988375359680074906447204612062391386385525887056452575390562322387721065362459584250936276786791033080360199317721607878981112927288378360679291594772452043501307516362905486047548326022977218111830480437259822864446169003623346950369530179536006867950984591307219040447809877887171173226750748003509852744553427345350826798452916531111927765581679381152996125453545439471340040462310759552471676256557402378242362602465204651402364988929025199223483824794315446539490074756168455434301952723277345638201814460025558720550785081542705675246866522308112673465797357379232082637278626418418432302702923971107443445064691084712477576348855129182442184599247540884366830115187299387807263217887547913300269673461970572941442369071563770297576676913295395214008617029774851763113784502037001729096126920026933322165806437799673630569179898979355983173235125700622090158063716849567568449635635608292131736462494510602067323681394125279174419523525039869646175527849394511017149728835970002136672371828351508189632866991607959872496354522853271109107323994944284041693264369438183453331252552001230350000996886565874721618284540008026301546458026454192116904094143287262165336121827920463420610040903711470657569277602993154845314062064600931806435003838820787663033931839906051546947331888131094109187652333419125260416969651648671328242017391549123981603360917461491954173386915303524393588398439760747135706710964574958544036228957518770512565872331772225818018464941900218398672066027567844780828163594516952924392131004372053154601122726832477783014255869181989295268295450420203873026778115734992088562215087912718095589134053115916678100295704472679598069504968444459671712451861171067791226190581641150105989134394071207680309884410931315593343223467363733587911934777561245545686519138044585194093250490660894651521766770895395894938581302635257262577968131809075443594536960697190612238861433458531937695949184261466982041366474153271659004915762973036023128207071118252386679811568866561422697057576827046958474709748565058649432419755722780388425257286277422048189556116452824593182828486886255154728528593743542486465963451003117032020678703849878914632242635471278218002363113543663091273870031684482050510157945595720720022463688725135744687060590417131195936550366483724520262177837004897843209515665816714624729605469055329255931311613679324436521404269578390627389562500105556430041573865967645687289306213584340208334288640414772982098632662944761718071089341646910318583159490373261002334305456980441023086062785840552479279970622597916656855147992899649089975955413620327450155501640612447707761900555077112999185607109930598530586899068751141547571457012800008759145931344670226859691957562311330809147860085971798302317467645186283815344192486428734156948531419377234088412684650134046419851301289698176879315662181085798124248795057816979531082853227147770553859624089808271078267241003667267428657093416659453088975848776961828126141344981326608439763658338373647884440389616274700187325267507272914000035189372817191539539061618559195589257064454620345579805671505918110304988648819959471535231722611313647939833406546039460618760417390782285622114140988992007945421808417174890096072200783950197139757489669751301483164322289078284698244414105784256402187621312718660247909946972362064571959005653609380105021391175080415702276518503327808373837950446086548490166073011712422096245547095420786947464560955741270944208174007299793090814595798173551065929143577887912770379761224864069702836042154086758683002292491385878608496044782915665886490925053449429450201520790213929979358132886131100349551304789466783234871000133957857436338603688268065128418929153358631108171187588445058114180427004950920224663628016790908294383095519750157395346341441035084199861913510935331100851713557825234627401190882632704925913876665240818100162979385805624139142165119441478998767847646412103138341852697966526962687315694786435557963279429439903115140208349157516567357368824482746423586675562932181797875879042955862408533057004917358654065562961354928801686832464434073484977290807245011727676863837028293558771689089834301786359736132154478184234476178232395242126906546381220631221480365703964009622392785358134117414338285180573130942336665850566627042108525853888962215332883454584954848423856394230189271015568987749820648731120535517086237404307306489821786480448976223085568235831468236347261040644845359244670262124396540004064732715800155158149224635315742109354100349094805626679035238487398654842430175424646610568416985098295628738297185694265566727699795867339618203912901902164842144530549026843664638548457104300902907124730015906300269825846995824437908447577183325194415820244031126953704248320993632438880738372036630686048964411668896154644226322804814263019644570691744010263649611876425938385026141308683973280240264496969055207118221779665890921200517336346696739056634264844455604092673944172004881953764943277015498318745054135194717117660306380536602247006611718490625726118524567509091876063995836446167033432521495119596449216930627678966444085047516211513499306629847407558091043572147834215445877676548633497300484223472981385999595894346586833723507332627564707270330302937473317344490677693506769703096534365150471354061842926672470321076887900193151419300988375808888457474781962827769980868621943804783715358047223677859047335547998608017277639997057377483725551143393842657593012320235319946208650010709019687781358874024905941731631349254758160767566489889462723256745610911056189828155498507858157305893505279750741148164972794515989562601248228861035625505786155130797679762212545825072020063734158542375600762051297884033697635130966547870065933027249588159994929974479545719318158838650226778909151378327983771625936379335075253248569011885650899441218593170147433305720140840663298210739870122705915350372780975517298417668650703803912491914156324440171823078030415635059148641485907168891639122611364249750766078954023369911946060738974938062347184135027174687542876475784136193966170140912010836876357469851048479015866047295337995976588909200820974853899701378057561763984625007844423425565316056728418916951827603785231322277495586235190755492543810549007251603012730364352479114000559512759796886375868526474110766975405305546234167047469387349527667850321794114748191407898823516273021431122540032296010812467615603523735861221006797010540544878732343033461777591359360765296976182126388387777570244063515405269921629260572053114873964714601613515809274540735809744869404798744765229565062468287097029079489572803269553209018669130036513460432133757337138387819444591982117880823001892216008450730521700840319477268621352098067378850741903658139129629391441090618805276718637850739825080677592647357091845644887117593353339812804038782357711418413638439816524772806051587465210846129451551641231816346981856772661640305992210120704627511368916733990152929773441792158117231743325327946669221070071913394489639086650721209454387053495995523643649297120482265822803010857592349451770026111155870237439743812824961283053255386420495246513277321607858928139693232959137493199802476836663926372038101982672769947214080773778390577900882608824679055039954028819683534047486224049064270257922536132424750003913138928384605316930134917126011642573000662551212367190783486516057470093327373814424591016285682298744696661781072276489446714317408224715068307658424591548309933015983698568399774217469392801790242902949648585911188146791999682218529245519424809377397248766954653299385995908791589996103976756473050861525867281749598596850032954715038607740339624979442123336977514615577990030236454069989514797160402813448217350122111730555756143331817099487631030340283064104987214863720535575777103518584267464750521906563483587358780457922374621024019181246893650455652845981021535093683974404416160844108437262016127960073247326339729186390677039248986427482498921685361251791410562780181336497409097581386072825938944381762824227815010039002606866358325852683083872059296721134232195490157712648919473781978963041849517702735161774287354734903484355611478302814394383666451013305654953388686861499794563760737990434224371752080785640139418161852005353214158604708738817966022375152196952045298866239340698374746743073711352595514426943277310093718638959952519426143711593088445462835165286181787880494365867689906710570327221732920621347159447405108726428434411767539218114865840005306541303903219191820459269516290283395405083331510048977905349197758297460476791336966710674244525823683724555697053724701512977337654798058439503311734022179950317047132052898342674653870947918727512574853602527073930268719006824657730792102478079352443822881317233757121203831504951610483421523859873389539033530425118603295671044224113071386942155448343405283858993054183824645558148803220600323463978491531893898168769247455713995721101284080136270987480246309959867940102501502488650284697952071125108199607103609660424090223436824757171040204958847464679819044634551536889263617159457527977949421843845974458966867800033178876156923751086090392600376335316842232332143518534087182891622628900969891709080867146216804356419099165909613421817438018821936902704348392237297700500286583185383854863066484557193754781377550526673832190072725662397093701909175226518095086784037169937297139800475356971715105462204915307400323321891260428243688390469459448643640191081299146778701290805782041361973210712958516957140123348774110883106851087766903420950510180921563659718224795113723250142435369385334123222658287188963080869203222115486701873609192560641716720595524874737707557185127819965967163724364038391018691303960220791385287619427628221472741724027519869397106714364435976645776473248481435175246946677400609950742673371355923609587714725925339514674741658692059735946670332058090664137845340106486986205857654627829820519197875481155298521768982427534981617294282031161101263878504606868426007078729321097744113082597425945948175195379041731317455589734169043479439341823041764077831046524547478915960164533357773085332325885380782799446402332093587983784878580735736319589881254604016515269328434264660550099801036280839043547213743644956869535562883243249728872924228177336778668978692338387925373077983753073140426441788477348382808373703277810042971409264302296866536306576670006789383851901922938945128249558921076516075902531561986819384735060310621950212445284733624878638937895949227254239217143382778127861256415503002615422441284133135416665296373061170711654187916891746107046040231173764228006090581360952771518632178858794227706893274105334048182693313753175155882512481677648991722770738642152773503865846903582266301730899660104282552656053256196920832837231525780102361438182791543887063574997635315472183722991966121395778360690544229921523125818782582783930614524574417022914961062185390505417184352441443328534882245728269001813452848228218371735308896302036457020784435557641850168626772627855314150423635649049659907319662580065419838260393906933169975820651913032882480033192238819022158965085721499122507157619030501893579835958136622029490215868369776783900292057821100339903056095400440661619806567487507044286026728761872220329112132259802384306231457103130502776908815671538040696669938480495368230074508970637358813087201294465313594720962628199792591324379567011439205933189029337233306986139463555422543693691006558581287471332189395099687124541202247423697952644546393613662192116397548104159222788042145331714621957849615406140623988785159115866687601279088404553046537889910991789327256951561714343170955514244484809335170835809131848169241847586699162010414329079107254807028595371707723636226971526837433478925559582495861702557589232424321455956814397014569583601272322290627352927374535332763454769021226786503726403068070468222240163185929883393426019933107204086866998144742347435468127720288764136215112965422441977934762700486918573594228148297087998278778508004246871449326438373517234848247144299486009669247445296796248599367577837791286846481793837248462072622761704647847617884329794730711055556728459989275039796897071412602996775263425010702795015729593415603187753914515606865229508407096728179478441751447151600560866177621855593833241914054312563609970276554597684565796319216226351047676821966163230418928110685160720581629164661717545044276352368645401762418468721776923777610472305336548407473335635728306401627465586451533530010569930951402049820847771425405870161391666198970285145755962272690404544578177233345623848650336220962265277167105495599827995120945900476079649455341744406260904955274780343402565893091838213833850728882436336118828466860967086214425518408211706459864891354158221618299019133536023826485551390951517625118254858234438923087472587233603683137792191512838495561415255283511395647298205194782726864413412216806005127379863043592308401978662171542550236378735046060134336011920599119359767256958677937552085197490834236726925488123856921911788371396619794789626374642754703774784967235511948490075793474636454349956653459741342483642403938402046745374814474014616595778481638311477264316053669195816867855837387327957320222730084900657468417172159876730975602220406011303772104850892042043189085828582295867935935960567637798169980998639333442431963546859118547134289056234169894895658235139628860054447671472185383852280415857762366952374499075880084427180036591001026440853368549929960220069414463167664311364634566991333007007566337308001589337043044940406253038794593310604409428663893813601535815120920768434136138435615787329459363508201351681254725919356363093787911893303891330789088099685755571808215938544397433480293900850335802971058497607348504705943845486105038945666888010860613957309028179291885166088965022015780286269175922119418046333754571877514840191041809750589771474663371794095584772559584015191446176975159904421612320564652530053155372638336182799221469360720541613005576012324737217951465369403165167901285680385810758880425027731239278931161994307039928827342239040499853549010730542678314712683023353621650664352922341989263197078164730671157257633058663655340458653305457399169501438849250652409860283716888391663159691451623015942272600406913338733384808354879546967305080859260865177043723169657541436266957080011808408550609853012968695390174102604187111131978618747513833813099766627745361762065712445213000434899488168772527386640891789126601024835133951782081780399576592204736059188836311018456434231988627604129042358163486770914391638566852198004386611194017646999413412523893412080702517803585490545933712228206771785334137528387043368444851524753500403824567772411268898799748873030645399475480376475481242658698631830361365778149125802600265099551707369280339648129790516258571900338597240790296390938613845100448928365857692489086995345705408752710800400588289897454850493940706275070035100596083326423042443606202898012111503054634244914519054796237087082859871738286717877121668196241391301949249481841547854827779965158772442832123895189151506515752945170269459424279478552049092126116267872049580048404544334610064389464853940081534741850656371955339537161826015413374486856000846829388641944788492009591569609130184151741845731400888101452075078114323240866760559424689722631253268276362575604309822727440308648604367839727183279722691010349440195483098328872328468860428508796791103184403554243777942756984535247597686385866257948225525493066265109579253646101640801163001090143105622240589730106992891210472938614828599083979656246274956022412610195415750757321918387306231945409282363505148471379560134121511968356881418222560473000572076396745031903362479711883182607060392572267323245327634254378176784752545537049371051416488689870667378320718531330476451460809858713978580988790557283297689129813975420199320088765135001302044586370940075214750757285947314769014464765671602552302974191118788926281332830524826546198226903777852096363707243445412744385057029988005170430507751152260045716504891772420440918913846178101728756911916499945950264510249408970761877862230349218714032016131162004057182065827425834849793918119727987728654797352352546561735561545554895080686755561347801016374901133368512440800038824165352180314206217053279619401706302197058761444040448250364284794115660288562367312382382835187769849175508321839539353113529299839095104990903835961573484431196694859110363983954398557156880287888826399651970301154659217911431856159029491257249386518924876343769561398148511914133552220749942744933141015015356209577657189437484763885736271079657642535875925481988521935651619448519967421677837306709545337055213027548389676687085486825099392095872880275274141644834544324312805089455914437407126978987818956283377297196062016900298568401461575986772854071517141349026462993856754759966012144620731955677989282971751764932016527832233386283493746347227455392844044658431059062363930069731976502770296171332485446680786571034504059733168643893908380861190005560694850111150739567431903782881846649189891607523330459703193829510616746725530148248979239866719467447814324816695383762014614990920066177996363826365015589478455195941864393135048097808899466114165054061984262993439754345950443104456050737206050321663624230953372964887183804476776527024630539466890098297117275494384220985123298782641388211770229611105760988995117456527264965844624304992866551917118260475751504862232250666522005215829879258266852031086724732292898503978428029236206276579907581686248783374687076254947868742417954018009562017921103178945401817512695348452370175603131145674007948076070598624587411604994519183109113401761822107493598830747744585911759880299071377170998007707121489884276597717311900082106687928355131255171561561139241374875649132683977414390833205944360229252001008903503294197223397464598177999000798403977895123531766074987668892641351553405536151750073027865552484183316568198757783609344287355415177983754950355240794928885888864145678536953223511149136634597969218263050340621499269724371613992044964287004682061114240227186712326334058486991942419565314791921024926305255576509387807828296457618017344433458146707352691919112029957080538603649647512497066974876849913205792874206711686285374842250837209513660266640004021633350949350822790342110686643128517432592388481926303203449158011403127776882647274760765800112938368140207296890475725889356265801734308518445284548979879515171121053286787286179327312920351913951994264254809748152798865747129544311151280421146537429335380710329288070101670803421744892951931357351003177701511557874453820624874661349917232500175376287445110992528460979327200919057478648028133561492359745839393028876376641317365726087493245114417396786480780301801622243932406553008028700584003979331258522269305981824930650868535274074053405800367204250947810421420593638614376131041869030033870090617122711424336705520636781224056291371073954884151797691244776842829602820599871616001231388433666024167304578410168179622515265856686137046012242553694276631412877913703689512813977279767592353798885900861771326814425235467722858195322456042102932290155482617939170845852565279135966145080986712932301390846598401814689134282131209462911316618975249467490083257912894481857294900013796371440522280878941824760774836523636722793878921865706482189373806201641276669288383802103476179002000507791925845953656072477518823691466865926342365353639714811230347443070086911308277327695823081478151160314536625697019925899170382666657820395369141925357716619054196243180336347423963999075376921207597277415472464535446949737597164407830499178593704487439919119155836660228223461897654967887034457163084874224247740072243766479517172025886832998868585130890540226936561209318887073551089479761531335113187962293791352375509798552862075495961223953369013196376887794449562912299662538446790484698695177858900596303298159662763359233665222019497872087537029854357448415959166684957391819511371984888124269840271512173411822649102236516221269258460663950429751536134905533467687121106789142762561403765111031781681667451470494241255633899256289006125374830790035505865366066488144550013778991615078936743490659274931860236928051729795985775237989061582599520019329847461826852831085163521801354274113718382316512179959071457718716619605065924232527502783544166641836671284809413400983505878196611321029121074447285095559544270544036721523622472069836407888605850046751919758983283552154247786610370553935482995772541584254292584919948289763235565559747937579812561567204179779790061640650410557291878482396237526053779140478059499230953974194118476377217857710274031574446297777691851909963038592572489228194659148984826632295602619912060505360112032044994151783354851136114076378844433134771165206359585812103212914223639918287844834790074376448164151854542036699572852739134822654230081359448281813244345082345319277844400667502108990886295441792759094910044029011539911062331791589170870157546150605295581368992644912905956328011727576339096889892058040304631066091623348721542498744997098322478254025502566023936430094480811971395213849424450292617935595388312717379734754995391331458276983851886786658252506728662616712540498406120680550120528542327414765617228477877231946357059550920983278190363258404062746170975198551399433370779755026472539705067292987505184435778329747163336738934178321472436489704073177796135324600543873962628299818999365231434374753077177546644418447646227605082881781559443014516274836692576420024670029879103246749759184295080572466193283507975831490372999529196138062429334704791445469554626780582010442304594364397730678571009826361352549321588211974002478552100617741753830075881259465081269762442682557075060141990044612609484287428862627652384999045849618583130822517114450176321390743074043132258484791192249028429006030004777893106316590564690657164723259314502526717650916364367425307065838694776983605039213245225802692582317976290994748329718756485807154376007930528469452227111781961463751342775740810595228159926987583190735683988596548429967225397478636712062323064725097176140582596334420709796463106532675561692609668058807941403274583008516347916639111746381933634066249252706649167971295708145414903920518511575811740130822531252115279296736693956191365283916509321215901807196231315909759953213800746707408134179360029717649661196689677604555329441813506156465847657332173109161286665340626513022252827401870068675392679095112052153640315286637718835301643460758903951762067053190073541067490975891776123036289124401752079490160050226114567194352335869177311610241762229440863621460748167637425765562849932902413049093953359588047591582983518167560432307292515348665689226456692103256611974060873575433548569578381592626057510956012532684546070457700480698476562030454073736996170765759811673131172681902524122570082862353239385392524695705322394396246378440312707804806264040660367056538711789526147088529191441383124056162451642146171661254958294371226223562766499630935779449724090329311057254760177104336133925241699118844969312718032625930919307850968642899321121845830031583120115352264278764889855764477992865468722637732026705182138242379107410543253796297857876359429280996691179085998965020638235009616968364513335377610495269914842159272165667189281195784030757415634903405637511792135410263940434220298621299088276869753325082699823466250379250412900630574599974001055835568234450494147891932670295820617513794738090187212433564958990810888597946308156311869794824021369065300782567706733179485581529695750693177055100082584331683422665623247549437309418121983361624429508590714803129368360910841192682274631007206740904009501207748760006409981553349403123896100252877848231615667860638202170808060082828356299463181099001825510887542021195228359238032452537463120040828899490083064352219245029842829804832756660928351289264169835973511909476989726398594613260350821987279424176322315414520901154487541056572026319575390037866679312777285975031785682386984036930764958637245605489742670894815314977229385913170208658224776952692637371381335632734289033951352102235735925137346320344976753739260345194104089037534179171571348134431052633432255358776625597070021050413814075738804619166606896468190557990905089328374465181778699336315835023414531436335311096893011167636588982197063112700068319461973446341999936545832382739717169273815323893424118921923606574405433055472878970898071128751983215255132535993759314606363648049043485300389324602370540250093885112897499476154333600562899330965793305554312495773084693449496468667656568132012903111698751148457433119138097658999742265112153047093559254376992405448914580789502261801329607799104734321074680803740305502760917209691025359435263507446420263156952787877944891148016215037283106160552435397664383717633532337151997252149613854787378630140542201024511887898060953680911575709026924836675460485194531000473007223794245426720313530355040580221721563486725930982470078999281225817011416613648103820267543241541469863619952215510654685559164584443998038436225470078185651159504668677877685286107058270210021844181763597806164568337031793517566903855618190855844653800765439289837912523514871779019595762164418844589844381175894782052347989636815560140658078921119989702353766013930595876010037804954705008253957080197579347997070152561425018439843432819538723331828970559979357715427190842970468335235435596193354628872988756291961624009779269172312366859497692224340203951791702225818571434006851105753640194044980820851835577543497259450394848367047040304530480850713034955028387813675046373062015053327805945195166083643056482341154214796946724695771590577092840312234526981189170278162639319059628107458594611971613554142598549288379563337127172623194480728729275674522611787772142677366038355140909880953501359085446894045823593824698835045682721514255418074664604364687221813489108970284377324535877473156150218761076689370997971480512199690693642123893384530779463796924628381859759758290715170258750122300955073291203215843922068672463060644273857930168979550196493501380151443026502079012936507852593012401134395724637046089780334847049321244440905041979740206064581300690377534962257572419448027283615231683482639431070926319656569082790080728866970753834574024274626337046018327278034722394991631080483425243380550567173270080130946965074310337895088764697607806880294816445071314393324138503385025086190598886816199474737354173055470551555590302907276657956749651201369589009720498973318045370059269952158398371142252118081846186751419629211061151105884311258994185408788576193573013814822463574986276199978672945519707363655716205891374362241927834169025914444157193896863109554371211642062422652286335440898036993771183802015330991708237752271659861659864213588474427526580315970768135184166959203159098948270883453563225673062733637581030146685201792096573621502424364126916253704153856644953690633336852750345027036767673795802796846215778220519677973183741500767741722270771689178323920925925044777161027121600337970713321134484618740780298030213177388022316081728813846975639329199612055299023597355700794339066336619937102310819557574883921544667734643092393738927154324386888231160853753663836515634369887175666674642201321682896510587121339114955856284513936558434233661886415556760301851821301246360905544130408610810673960180752383328270477739487863146499447722844377239589114441464863841433965533290545185283267321521713534681454440668850234344081803506490178228716976807498308819686476510268412606239383024715689358259857629250572481895283420707723095128919530744381612451805538359220525337418486773416849595515815764308876005402483120914879378086232247827339476486419625520382604294210555725188331257391958991751283751301129413779767063661439857647202853880819763902289638283700904761793501572439864605856561218705543151544876627788917549548493785792099009919306348412301007146291815139228259601861862235207161448748560170680270260296637969599258908582416290195409910197989632185522338238352881383924498636240730118924048527405281433017316213678044240627034051552408054348714556586554009708185551414633457661231678077635536268589709553197288624637113579497239424373466758145159179753875257101829437310863407559630710302363681219842358958412334461344145517350311492870681600695237777085532455229579371975012707140520625566044022887993133979389544600940302086480544365991047993748514371556489984887488555893683808621389912038164850403720889959579631889809855157094704845232218406208129978360457990815714719886309813611764614437908570516195583183649527801503672690287496756021570149236294148979496738586939739593098173330305174882312505105328065524088060052917050042607307262459337606196039227641514521629694462903834721529904547720125589393425142359504101238420087061094222237759144476915288072883032819259622860082422764619435161611611474432359154218512910820868290862858890839088121388172462399602728054611994764101484900931061191773082646882799162342300279970444403092414693216342513987580404222441398349593469522913972139362550517047106345111052074641921946315804219419824535610833010156146153298454623050563119587878519378460162200277065718566820586620676286977467904796475774967160691283402707838677042344337454780902487390036944198223844894677086724176388156033955241790338399430391492601249779645093301762831809804602355161493658094854494403005083047556623916111780199866796739417287333808558211762766843008487806980001082249190711082868351105874634945380380410587023992724153083886118386513664897474018568963360041780643814749424749276845139070117998486904650214383370973419769630780857104219811135874010381804892169228599560301246956114311909648981219039853325161233005810593047775541818397957647527067682556785603939963367183596286925769084545141867357520350148608299567728677146357228866455395222114669934376769497198201169393730430382588081475410377587634971183812783343586017227397145481722503374736453914611164253537693460811653400252345664454199479963614190570417109535049777755343152058214466290602302704018759577260419795635903515562376700132283652947887970067392069631104928732007571207583191278053717042114903232010497048902590411756364169513828812424995771994600315159155325044739777641565010281341393389437458529394238544399752024889226564036428791831524257224917349666281953922967454485081348302852350514215493407171313683463765455085774171981827781689098242608721494757208026181115947214107790701729621073294955760828027523771220679150089066700466504740721193151237295636897346900950125306836554672407871199449648006253689137020541618651256756812432149640763821490742326724344251718740085963602167774425976465316809042923958551158828111381777161438597139991868383827582913948337879544651744651745656895899937900308754181058978023820667679042899458093598952436868756327562697441359916893701098169714258179038226184605954478300782953510852091550233641163038571143998002808287679593335047592947354748434607868574718761374100142032774110285012857528132824041475585627846528517272316385851366710691175883684939825924129556855424485673937361233833788237325895126526678581756630252411984029089659691861069454073821311492986285756560523102869620696832869733094678607307497423097831243919863003875409958041951547697110092067297992956329967865250010655687378693729673501192539320252144128988783032219866938641255802503121656225988772376100360202705691564688141612860219158994686640383707919610314415558651709890298171169545034364375183043097226074012071440902497866533646017180570720668931489273483373606650033009943171906768044879255343294438900505054000120788950915444090493558980206924698415800679909020620995217032549449993918887980863368151193200732115720710621536811802558073310511179330995498656811968747605656743616109378066127662793936718930292793915237217688539885899365642238296780167701745642963840571090170009453215721250230893291758514996525007392772430290546503237661778201093764977273232553826969958053455084741401437404935026505797684008350717783107550583085466921310685323413821016075754765078554874102100037261111157864971630986369763547943589310258128188683685123000099158092694767133570404420226711427760706764044254112498428858320159620602720630850361413792216856525849295232024661879109067772002213381113126751597686245300220668421376314736201131934712111326960660507286739529251673891004034635974150982479421714656976222126358091473215035171418853246515294905304331744026164920540973819824306790257254395959533731377617486268907499111569223432379827148599613058939766561585515026643511050292631957556932973405951325363823598354930162816007584721837631178171536785845181540904149591696204850356606807299567975525719695001037897862090635507307191186196633157426821437183423947776832389775296112272484051714913072093914910531139477833948421106925664885216728706333070881487860752344913515242693541744998995422830256836778801760550082119465397694232423373066266940045165943021219750951993411960196444075586968535781157480514559536956289411864386790887483910701679534567073047619272481839622677609002380721028187189436389714589870969171595215585113455516373323543170274024895829257933713109276307262993426397255467280696600743024480525735220100605547537421492464171830981371685674287234316466889246144069842938415106554733480749339700573244154655356228290714459704737791377992666562381587266850620660941140625437767584269185155372042855011312177888226008662190781953116530496090311480405341005392206715907734651824309544462899512485094422259831230324057913181047349877560837811794830206594475848098319641400349164333368533433189312331622275839785660751251559366646239516404159200835222216492489631970912653705694802063256019822217974388326014942607671933275774155268455420365279923082367056941944137143504813906536419580812879059824902071665607535275278603887440488517675359813761487712178815958066934034896150404589750230669860014090952853964006333343102382459839737993395633271269048413724567281865176553777442808255246230969011891598816800579105286286782010938878954625314834251677221782281420863357046118644467918935760293191699211224022123209037948080828546298408850587927105754125228419391250762420894144136380363001958073490634496463699196550687818478235199015945765980257135869950108274780150326657326889184080265558008559543158826481981110303050075459484867460400321650381032800294778014700169441743782034017339892077841954824819682273486009636088762783874431614444129555345704572602973777605034782714585795990114728163155621057399342311612479144504773785139130657120128978531467661878339675245239416024311853171283101594835735572153663743313026766977422913501685408053376678366370001376659835358854353063821781724802074334089913124794706807587608724015516756146762376116525701275392510552295122911262109783853301135340340557649818798541517163892059551353210593825939895543423251832268187048560635793638974114218225823143655824661967450208822564971697370630880571508278794592612626460709058363257479695438484610501495293674260385654439359971827269261591008950540283557088107783344031037485489790594674564920900205605230561676755284367277943062220501714843467263612483968571360084987660407924903073965836850551474995924544735790354391362683863309637710066912992834121896617048391892805464371879822444728179523190117558075094986146405619133408833637636129678401981984981489358451991719660974571140973986769829587921937646071131857871351182313448060342915495891590096804750322476261910462848000040360837257046355489582599373278313804108100853038445766500665445890927521454719925983844821674174655810965267361221139942791708733003939752719451069976101854029723889252914103535379517692627930521806600490735874501844439491680893286445460547609840673801001744563665355435253810301967873824856219942596093637334375970012068135069126230053705956830747098464706884479213743932592624225700897360194009417292751146807660201180268849494716704514425419356697380003053464087162434336945747973087254964985029533585305140037957842160328218570249605004224560199846937271098322451182968033998792054732610771129560977081320487044106285386406856128102138590758448812753282923020455772388995659287286705565578653620276150569582948173193888822220813703352081742136278419105786691768250278586781049980833037745096569155654915232735892891785981144188175027626339041710557672482424495667993957117015792249432478091398001999732812743464250783940143315222165685605578115915921538948608872290716370798444731260514363094249127730168731767528896232837959503188907831360967689384245626101834593859035865525836922788669649102559493638458152579752023239877891204929252875120135446983881048462883300465353929135928871003087110295835825564774642565279047377072539303730842206297840268455594198320762199203050634831487787696689819965797036465950199814821199780073693878216195739694786030522873099182058942250471585304297772199946629033092065260408821429155907474070534508700954182884722412327446108363243496124003588208114831710939320230135362414730984716478285669518186819449304678483095996308222922648088262438357423268671978492320871703668239244834792908401519980827575501013605944296999898184808422608719302738999592800404158469061327638654395098041788913211896958471931944915079305283425934398577796629774618100761153012102750434499452422539831437663028329348683032435809987878615147365054831490726930047241599220831664859725871853053902251489441442037840278309520200125649285180778563711106166765395272249772048143255633622646459996517792817034279058806103630000694633216263884269510368432143445337400132462619754069177454692942585016448819389604859073257824972447418527360767035857548183948712000382971666939681433521663216167745623791701059865611809389959703229000955259041664095371300645539391325141886557812049848388350352101483076614107180363560911332074941557136625185521810969808784877094027924316632473103605757376398181085946724480926489494731266590447110513542762391408990851662073659340721276308764393904278007192567901778098618659750790135178135838903116790236382321692714598256149542794656683527194633075488483657222941806539857093185624353212236214274871370617836364421960988363149752277004985539048233495369524781297890891052250104983158814198111914676236292864093099213957321316584638027254035355454348173476475133771358682627996288170986337237067728278744041283733257969448231201293818544450872655644742136848212236008484736185721300158329786339895662201425011219609399709392297758140696900740760728304371816636290102358079381947990540231143486004648640708553683457717925401508454951516954155912217404108041221719757227848365063625075584522931939883121040245144362352517774224027724788809787347649659200124563102041648386065211038614880371084851314227614700957711878856012362691967411690985940803894837284954719750051373664639422134827618967534122227422560746529734065886196434525069648983057899050867144950353812286657950245424066048009502438654403129072141497755758825876749984213520445072111920386547369850081746710585379951293727269470103975189714019310154161180664269660760683423000107761722938037744440483911686808962097218817936140849476637091785668466509361039390081756435783519073440923754631770035406744058857423914998384393582403881526049166654503653372877607409736193356130912163374579842468963092865784637340658658500664781849892103886587531514922150322097240495776379153770044832568904295661167909040430852347817218463299535222133519239291066309305820597777437400375865227650707873741759672476983732328404289420581804501603772631737859934522555886165389367038940562901584234296490058260068823170375262344247957684331748646618774107874316647551447203252240476930670251427348202135083541985016594522991978606041020159639067779988007835215530365723553096551968472275379527336300185595031958889140890051688805193838731277104862280608575126916596425230369062455076718028015836922707248370611298468186919356135421569208721176923223204053805771003626393617665581940205826772575010904641446968187275985930991229178834351276838886273086918664284686653044100929119991238026707490672779360086644286426312822100745315004932656716541819965861692196776689079429237473382924333629190499241194936942346644379011266247977477918979918319587121020650042687076767084730255633925997143883833206967896552708301992190394327206604031991945479073347213297490354592035356520976422489026715284350590328315343295356662993517508316208621843335152243701650765222995381197487967727541575364704022036217265723246947232011050644828715508944372244746409788136126894144428930122592069972919888790250401504920496333892783679416296858311393682154597881105995721666112384356796545557966109118584991283451734273991142791448480502553799107403748338609785437718477846385772489715532799524759185886016983042370209338364415396589077179108999624392839701749650609982169978161895035063494841079816829213035151707409999951139040597396408624183480909477931371197931827629993779266996165670710167865533464026010794187929938454580009209001029674380950859390540183023146431475464972858950950589466899968581435067762481756008599411101757963141905015373146509992319238504085122854535376133543249481918256848086583938821053580716859769147411050972955260997347862854107704039062402651030990357979311586651315890925501556831845234674175280910552634588641154388116308269734686917945618374926423005809108892851371301262649773435569914110113443663182524604799339075823088628592603461759370667007090097853493489745719620631314135809086571783569453893921784897061128096144869003403997014770564395479666942189753946928814278577015322062338749041176180827980799387905522783050249447885752351387391046615089872838984115049778355123040773377312177344376036919380164964603611140424252263248821173350166457624748054037818098858460576288225091561377480719476748764813726904429775640528210935621193365503630021799591737052068802661313714103837434168809520695352486588288437724111064458750704489517182905241295538124650819473340449279201442473648090342474700572670243720231926743597552280877085812241352252861122515452148271490200884613631001201251147291243288658232824857309068592985801299990843065538169483325893422081208114182683841231533194651899110020447849236896484661527162634664944622278656219425558343019511909552937601022728835952243928812285581903837747533602908310015887904314174780629574556134902947629292040921035752714227570602408277864820916962874762364590256094776220995542680392777077016349656832048056621064531042013550386132471980018113424955272727547005273377469307199743867426914519351257780483399071932660132783578907660981987816704025996078162111489221764727847637171097672268261936923060446653502818874665170188013365594286956068883017995991529439918512274144714449128349101643660152633804423630051915064633797447150256159288837257339178762815563327010623381602126095887677658897366279968745245927282777017885361236532042303875274911464951025718551904241492658012077800315260407583356817623197921447420727620832092757817433034304817026362829507581420557110800244526153160652205504049338195712988400132406288020004847316936873361214982952733324399577347409822356819824235730517737370937356160097246474364749766073873337000056140149159120964400524360793750659163890957977315574146118625368914518894142825470351564728273727985758900400869910824816785805163011366498196211194948937868220627143965198418375700411844589813565625345073788415031345532930400286117365659618819913540745283350210553692417906218612449185098763555480271704082308054362410993606599828330164662464055688491438780624695844576878651282401989267043192178120169148937056489525267335440858044106145211586805771464317295117048619644370887402786093356174187274627360959919705212604744998926957298381024181412527515435902283802421821252269132655697588942807540770732523517064706045063867876614687462947744262531819776057403162166509133844181824343152294091159973744034957330269067309335309160758139531710804992290243474341514004406987818754264415344794931711936922836615377566936012856082200550605753586675751505342719364200086822690269453375299259960744733977138402816071850562048476272463315213863137944818808157952327889641300578725553200147743666304422793643505352535431691226815015325694634068769614481437603486543571211173237032232595961970773680394810057489512660633008610824262522857338574711287694116297312127098870878085495266509995466344103732128524471008892081012644725285546568873090962141001519356143439698124193866818488056944704234889202695434332858453637972835761936122572365591745154293619099897203764789372592818499320029488074041962657464351233021043058855511071125207899790848667762686590460325176562968231063897657030822863053590977053894124838721962388899028883344862325413694970736194892910795916212423542463474167689382390827883917434981153658201633860749296513619191113091410706886250684969796288538228475629007779980372539329930557725640144800586093059121700494518490737983410979505085440450004555732930103540826197763476488177733759817080829709552396233879809100171491911729275786272107257911867645552251876497415125410442076924292501037218992222447916865747248892356502601433472534688939628065560626682381215933000141917202264335099187104412978380017447866301987148513389172953636466998840565811445518535016212394395246250804599374329416509389945528831275703665283723522774868504089898990507675732236606135813233285669306587326083871529590214424795873458709606445457200643803999261506360637322851778603771994215683171463728205671856098388091631045105611155859182591815176149403601236867378829087058916016876623486459903242559334463015664681952344342941987691824151251162363502409041695542328154354593511982939521641891952110573048849373180782615697313909381402916572362054281613629286937552043542944603555059528519467859157783066400587976863315112594112457430356772465372071611457038194790709726024043777027249678764417719630049799080915311018100855679406729146813463558921828486326386570873482822891074007091127961814992399432951452295438328183867394513322116397926242883887022740175077223579434977636701996409327229244663484352694173470585213024455495422307842858527142959456321591576704858723694712978357961285785326431626249367685440946314903793466156144388278075771068092205640425456929437937942106180359276155567019419852069565546219528568362405686334617956809541852360441631798861020556401730338606637585196957758257642810527719019428129839123222922181360459577931145769297251942835501545494916302599555183243792123195342780172130830038907528446280401085204755625974229992792418416352935264230362979020048991180439020018905882754605265318129947769358923302790395860730414780701865073858712322756306329420174812182045898859680019650505334116293054346017871509637191707887425290164454872221236087693681184146276196402774045142179611195199740701796210801420506430965839835904576794594624709637405867553299698817673813898735849133561069926515461685076461600378339509303045022003167126211676514031794500868923498648965007475508185206521810465027258634929928336417328452249813592557937590053923346479826481453993579537069240890089502519221807593691685328156868882744842096527138031471760144242133990174360350781614999215623908013722949131983719970986118512852735951548917021565182526898779388028172015691359300460579213162292791584455166519152030277789283927687958670365487630716830825912931006341687210646368939800136428696484022253859290977790943385293509437638359415502538308786236564592945340505887523481594206160524693719073098149772193407703695101082380804000992191932570061261376472767146321397798945324940579571796827681818845672613461077494390570632635630411435023504720938352287127446752666004266127214844071412394185704577912810415359199198095319859593763793823381180522125927641247307510310677133599603698024655296631980706190491335792533297492766183938135104259513934064702288251008875516795351526928457578474044855445502985052943466011226105265100695541357697433385781152802935763397283928483586558701569527843458582671650465988478751866591892223587724329643248197862055408344699946672279215965219980833617515404010343574753301767927694575311915804613575185435243710408700538657664870592022117273200270027875731591222226413848137517750664215497266496438973076430157511604936139562309714099488598995005743227797509752493191945696549023625560719246039416008720615935486762048021433747747584557476471154354213359959465259838413276915250368118108097993696003794738455659471023033279113424146198564234758210155801163593010246412880500096562154068832548814236273754412715185286751088445327520312968598710863003326850502395715478181345332096173543361149852898339052377241548320034819112210892663542471725314676940663425466194780548738966128585150907229447370720967973932636449449932445823995511103098094061360635105020856868700022780566547004761766103056962049317432931022461229196626262215658284557875230877244108037267186095076515797740598584363491450771612867429829978211581867910943160043158864122184475762203749080684170462744954990194185308470227011051348714742267949057476609352864848400844177485473917724570967886577417202426891757227384374003694845520554407586726926736889742791302365905880511100349765725331829513737219340744999616066170106865142716250178582071207370421242743748670598618685138504120964712568948011586072194942742365000873460988568509621662014532609723359381975425355434840482483945731917680489524987188812551418895488685162837808576606790424560400410156594805359244059840333455417433358706060227735800177370639260263316792410292359886213589658497251222987639760733366683449014552614222280253584520742012102882234372652229719660970719406748940965927712783729133905329795075872187708812483005150847756190702876671977343477251427256420578281155783229611772728744098249536710821493949105179370647894749141894986582197208022310525571439776500353216067815220347378557715035972732716292243264078252845007623600717215023939813508787405262927687930169959416251358184176318292057965936104033854292102716407024120828391087891367448593332743047097502835835170160136842732439563500270082650518000210670184517385748266668591682269829091602218789069698976671211500242538236253171408481910462170364921534384817673942865918760934734364182986498278086124464027805364476062338846879058626549191042278767412414896095540080362821766943958787557453118639255936805387877293317007730900393522534673789828049264602148091694368669616999678414347178679476842759154089452854007466321778372324186833447726046232554410652178884447801367248807711340458759771411072497707072190318083074182855436538039177266970301478695155950881576618722374147922984672395736799555604076848066008543079383355737598525507798729435872475008965117680680172454809181221027529023993234636071432982474164251840786798094352485320851137153073692811679725091933051851546138739643990724049819675643604620486760904605069485520922072205045550427565582246213596475679677881924403811798557006536574569988177715864033551477721714578977925237352332597128253937992443698844843313460387683101155346943008444555806038061762109986042591637423459171525336297310604599474008785431622736500559329618771399328361280436478474558818166284338562847681975015890888874946777943055744090485484443838553044635173034913324174839437980485584323492234879278841744120014677824128153434026816921815168172840148929498703908776231425306490562706904446588499126890206378586555107173236040214440002879569076623817398248414822628872326423526126204799523429736254573720821171189009709600797628693560193305325623981720087843852900457587945923706064730677159468994898186840352084654633232574015907620513009215248522740482196657452107869799405170937580675685366451793007009919486931680205840218297670610152609114586542630834658542296864156257006526822774169276745165160205977761444781037965774975814691545720720873061648276840892887443377294556655674325140873294690315436407042341887899223471150565289865218845962258652305121930163422397506195492698488168338625580500965899526308982473497950448524651092410054964678819670659014440828368491618573214788142533557940664330371342526375300144457286050202156602736575459339511608356785358601400037945729195241152516767836293667194542041961504686737822985350335055525170269595727936553097147619984714991520546721029426363740007959529785997345153588319954960680042638954373644947911524215699035092795159397990096760744278241302985401714035017585231969058242995996722942645315351770801537418368191890871300633956043073212125151061468853612713227583993316000689640375135617688256162706977611897259962145760211476602109824400635493393472926987367762427453716274351709553626437393705963544547443490429189446935858035532488006423057211681430871510155974435592401120524392097780731637543960123921350348426291347758653123140559967909373561759586040156531262965736280867097709173531984867486329970664958059272297106740787558772821849927200643027245596397921740306566668582706601873114225198381671742129072629232960590784861127925131276749852370541443939052599790012196714375463994267889401320050993081259851018533585856805436107879346700237925507618829922980354650209121590099012839314010838223877632123012387340640342717979821488973920120427542932703196385400247094614084880400609250253943811510384513004474660947607181589401398910110769497590789516088225729997778613807081246229968579227621048684801530762054590056028264315953595026982831143425351015340181188551918949737200480247830336352587547379435505914576286125242197797215869098246138796686154912001233149714972629685886316745033716377637897683647346311057223321543066809969776314913104797226994825148481199127991181258351064978775219967194056851883063435037206482413486731275078709171983468259525099426024719628224080069335702495737418215806038227444454534226716268173967690089916161666056280825847999395101282188705714486645320451336177280886749836017269507541137355541086824066766086933365748148306270507393922016995987551351278833116270629993402770111761855927179786625189193821664674721603795869950710012374813595857164384571889650472522804268149815688048446373158412685013660394392827109292876571140770554978295493871088273468953913047962005757538660188745421615207901047254233388725494210836182198506274981808333077571134065266324338978022936924732743139264050962244695094860443793732600311646546247663833227364977243853106109742045331461936799697385239466440253718236217563220395742588372091478325248376284192844515324995400716503890056083881112178915766909378318128112347970473320366861705297284701382171154785640485297101021958856634998325965574221642405624781255917556918328582654342809217117993933584890179061681878490116177868323572481901922143217415597548876884911962438655412654256622882158844887889317163459534722417515793664967176270140077791251628034933152840631688299549331358277306021493509680006123627525445084396910474015923421040463482877563070611952521631837042811254807701332956741951027989790292966236698368590911548504850360166786879698223548637335939868883525382280753846035391247352104486768536778043170713066382903841163500546456624079349986852462752210892020531551637684297361651199712376818304511470522317716448550770416075227641178062672196194542309856128440740643998611105807580293992767292511656905345815312690345716015400110364683013003195280435621844904228145049324271413825163418884504907002031824587929583708641601038438293215423683480230915777666200296477311843785089042892207245789808256890267318712319163404502411294058981592407205487708372162328015981530775921642602016800927356806435065845835407998502662287071983607807422172366100924271799973552456195742347082121247067151872890827711695832789471694681200919938698215616055625200278291995364404824045801001605794301577414825995332611742568787135598348490851845959751209627265175773621303087128456456515132935750108572355131872638894259276225561121316337588065135867856105060044838552301067811577689415809007821571147939029101354815550964148623030409386593071663524443173519001033488622447529101788883055255400099288002243687999333789073706940690545228275324074381601793117384461468462680090821715447719842794992546956866844777452691808101056352028723557999974242947236882276720396257887553479956360174743544538879744610217764711731455127666691650096209685183457334159315525513242764820816652430373391665873329967587618673973983056514332467483791178452275900986532350425607509727823354339363486682885068206048725050222986432776746035376544691362341995507179265100322340018235013295059894219112293314469121026320683356073562315261924578400254181521101008184460002365505311250967887653453920121696580891189872784359444587455256612166732103668439907046010565385590597895619174772175548617656553998335045024186934123548945968162752205606986682902941168081434148872786599337557334823344221305024798989778626615590436083869696231365357114494450548930883845001863438923760807314028318950593123812101032055741150152185327661665711681296219631260935414832342009811995168630142642072480725062818307352090644880080305791913410874225107480151487432375228707613011887975165641288177047648173048123256153883338780181857708293209440056440328578229729718711831130031206919108448604465963280115197238132393544160653565258891041532918340749958464563332238682804161691133544118829151622616312210216923402253384169025727196609176879335169264506879122251979114564889872150589320198752005376267398815610228848749492823321317926312891743690371912876088764327340027643098200529884249171038941829617495692407451445043847084303407989741924470712672767427421620003635018721006693484387543427164832186056805799387801210391162716674336005813516415421541755491458553545291877033695234382975072529085939585044898371435936729348813133734126038583998132379789520502024122291185599903840795194360592283683876343490190923100875191254035918899501557001022561709531122998580485392798574923903448249918798788257591690864925537306119222704985688719783756216637990699233582432405293313605088457900381009124463487950114519128973727728509263815590955110013036469620219529905019635817915468318174916341271845486642391208984898493498493606140748893381088468093483875291458790774190591672913672746405360090415713767248214079671975601268359444999454474205489894273989605358222565810639872681197503104788846741461133498302120299402516663735113130665110987456762722796470672495912442266601170273371124139005748489106967352143239959542815360389257641324718079367350819923688091119513099256697737052401978108802206506081096076701479957231938232033805912268139531627605063665460786422459783763725044930718450632975800623252634517069308340476833006373305183835963501559397188282221159876914699131610335946941539977228025102104571232476970988016147881389282006028406932653707305266729938635025168168399608430590714371394873442897705476148555799352270863441264889610601559613827103979685295831909359998074653284285981943629578922375531303906341208563484589351326893416489729142413756179110235636986907823106897711525565907258237864321819827269919723758253488304981998711505364639413371554845041133173646068740089437857749597965259844705454258990036211439966728204816781195946815874803142126098475624134360853278818511818425116596586166694130578602174571176552386823788914864172136013542947634647684676517719345108761513387949824051439283528391293465015023249901938070593431961008329789077173941658727507818708763465407258178349540663633444959435333270105323057821851052090954623800049594081802999130889370704509611778542812319929767884874327755470385110961121853052097972392036263255731820295620764289179782398007811913680549150473773787368979513437850217452081189201490715511501875850594530999674037687925028668749817618807730770362209851829728090595889284041297607812974743954787940219396457375798725188656328279534580872272984092766345664853370726959881707880046761823840196262838748055890698182944708796041807593514267233574513713023251240685912693442601851035283631934866688036071738980631949295379134783066925083327318528602942805598496283505350128597355718222153547446276085742058775969417095990706322539354224074452300472604988458570545386641238364777849774119484413557138352907429041809126950324865687856287046809318767882585621200579270348575056205015771961085172670286222310750008830523329729431956047677069931853902500486873155312249492462768186306668568934882628468526849894032604081804363340345948599260777128165482534212478526965139856519262553702961973165115188607024411843370353914289462627396017440436353661843914588021359413013457140712199103121020264067936809059157312914121771988143408376371013060508880746990511303893689279531390988110606879932254671707596116620903567594446707414176064755679244761627011802953525181936781412747897473175963901524770108258572868920035574122485347573621635601653938646772200751592836548109885437109271923691446355184963152272062141818759965977978971991992374290536765717944065473190115850209827713706316108108259510510532596850786385998823554648394761725020200822566775832823630428677191852623163533612055343958880294783987608022207101218758194922872707347204632794146595143911774682332407554402286223617265872688922964983676584954893689564154965376823456091300200865871641077836937518461072154799260536992852048925269980029492284077070294149567858846814661423034556679776760381498807466804297165140802696384969088810396641256931349059439905054926712394601280768971414910740345326521494667604126404127841145566412446065179036761769082328211325198323320684954820755107003201723452969756169074255368552025360676802974358987981038680112510488996942324607303637849679914801632086808534425566667956414813617940247243678882031354570322136582737873581660537958694499375945157494865621982003353453750994590749383087887603718437124783905339999948986961873558228092142625173501233357480509917464204876392004359529221771342956252319754659686404454797729760992206593175372483773611762426572481257010886950498686305720155511682160159559355272292644576094636919326446662153433129632699481686593608896441132433707424237849593241892175773829263144325632676496068213269893156426592889565492984412637882979076089441866970703789345632314791989621948484362096896169841932310705806224450925566051466252068432306379528380988442593321874779918683658286952344804196552431906640137074710107813170672652731591974475427164606502850431564456676123072986372452332448687938171931958111938365957969256088400721005502068854408340753499435037856639389839845313528930100007294483024019224629860672841728715015778366896569396765770514446863734114079191469187973465332324467179564963444225846561472828016690314194617554037907291150350254522378684635612950698628999640007058477070498151051519655688447884874010313217491968994040018364940063579846387889556656591389943971889211157387167541982778375132041206522320956030942750669743607853971467925137570180926467965829167424183566189059301674870860942581749926953272726441426965958732050034374485685279698246247275530598435142441289080257946367755933609057455684947236395010049904948750417360528646571342803642736179793967196427880470168360247416836033783616956256100584974595631365273390347837242552038670854427836765539838780187075235016021972063841182422494884330255014747867983085115853385136065013936433968285617449473585139134483149275044148406013377253065026595283358325737090249520339988850665846014380976592921058664351543245292554531969880458729915659423828845452198598042264210477394785802633271111722140237300814092101024773908789505159223721570445554321795966415272914588312303502041459884667154582923255984518966862126179127991980024486091940001742162086912576242060626543889498669354903015265248846701230383177435310741973684218110288428839469712981567166373155265574960329794439106423341381585283239321451398429163202811869062019343721716288091263796213917028538890877044202412789122761373493465602727546122848931630275302806133327738384755565039745592165202915502159394605132360077687105256391163528414481982093973507032906864102022309777240717078355978370495811944892773476923771683052166971385117497280067437666993536993427762380782257443981763497201116517043928040002180521029376539117769514701855179439878348114787940441613851834746459717628088116970332214009387087296250239137174711040817076044961800231764667133302506418348754824364331140418624715374514029711076172481040562097468795605976170360085355670416627730656120852528751256220249111909910537960530478014007804344730074482537428705490530338578184493725511140798583115410115733512722842662303184234904591004998980769718586974146621085667996453604180520292225908960229659576257453498776196044860621195748503970769908608998340477222023414020991717729599669655860251051098986333624490140987593962371918419996354199334233405824779478429248697109733445134286243040872034021218513074323183858132429981446390292922544553850110926071036990160765088336212569400108475773902502589873442998867538115181282994093670619976151940102863265713442263373115108985733680121581674310737441021578535892472847447059217857792239943126849068076704889740816327936166679311042301319845649943959487800346665921396433271359065586274752897279846958312773918812823487250449645021960266430279199800522304528444404934171298439771654080016364688799064066322522353015403953203092479766340248635660871900971425071675188878138755435458787597218404879431710777507598773484166106838113752160233523373714051567413183594081364043934056200877585966482335284525557983047371501624761952970305692712159066028115090607891013339565234214996859527185644888335163588367654442569951092225349642910755304916247524786781052349625204692392522692680599773334062317012285364236402444331444621641963449732483758290816949708264890601390980436440031921107363551617220414371122536051454881477472186022296247925537341837682195729898731607956399809330149684587855038561461646197203589978902716540278411842230653641133160298901750458652404369001816245895792256346471399507081757563922727319088721033715940469689235965609182063566911636178766356551357214077477326797560584549533277403109714685163404784331172836630929952354476848311110148745952304366059301676132040088391977294572751659378634674792085563413721672106478296769045151438772505409773278693831381225486725694678625195153243919108543528755088010507779469324313910638967758467725481891427559265553559515773142984583568398905804077301353195618928442745158066215209784373698923659655527637016860695567460300345580114054290363936877129285106067983652216746749015302032779674820011798188140124220054337844807709376324344041355445811552550697464660106843413089461698586523444964781184752710990964062715066096566927717715299670184776924463908573098101156699189113847920438563280150660696570081133704553971539015939602616815428565806138555353721791581798897995123910522228231955608964672486839798587477985321868869472086080460099776704705809757426500422197924223944116055693173274870535631032171576813746865773139450394441733612959378102529894382332030307277352791385815437140039626439940859435982984022040064455128086829489229373536308267780540537798450194149880970401783975618058946704837172196436783406724072685281535857554731951321644075189841332444868511740437119220614056528669334215278994186617550758672633033994646821311692355143687236442198874070903274159579338759530396281266655865668672967407050376878208956152188408967137304673587318870011774463913047514223115912897802312854726895147384709977257123460991088407236385763257910121097468221343033708888435509327796674568687505650323000117560859718516983368706870109946522583221102887774638578286294405342530399309314665557595541058569035198357300698173587967615030089388049677261401601663238599791608355121558772862613030775177190943405891134552126601296165690364853138008732884576555769906926821685027822462152482553406504666695141181117905342337779598249299082702644606932547645370358712507840179464749548805216894923798394581301202623541380437060184136948709419130412991352269111369501578390987759887478159539336430691981664390045224940974555925942335641643685269494675924007436729124856663349977820454536432072345163935131619246666031294971288043469135090907191938841814591759590065730671807490991756520758495234241141846239298887375750304395088702041536942903293457211458461480962246697229487789443665458449930759035653167788276399891113782729518236768956675418444903495770278184714092702787792750556255259070315347819782983538905463084761167778181552682272142288635726844274881186657062854079303438541705648106937331035825637514096757139071486768884198723826931584824664250716144306559321678668592388967744988373781222158718773563805085103573163441129239251228975472021327338906216938991496837608657834909764991324884922868969673719915262269103433389016384173736904832354916300704929996056345814704053121591898713781004217023911517184260375382324809546355515115665906365034127232968324510724946740109582177389054263795831424468077261229809147232930939904537405085754242682322833252745050925815306483276588394196502240574850647260469979517505379738452779419973906060009020849627108550873553757113044943318462947324469853044581699522494749736380301403604649168579569461026439777697510117228878055020066573602507923456639951465158100812249449161260215608806062184853392652234342559804223492402899319653576767443606113630841996752522121369329434684614138459501057935359664036473787511575560698922569726477705217043639419296711897647119418548311150447897430592510664759762110600795491293207236687391834389489868358125685791877521184197320041258015243081214285791686865045912621703525193143352340518250185811413513051661176866322545671194957503762041671730789621619207084466209585684343823094444222398744579890949418302692387120209595299408232336122936138704385260218165190805834820193092879720960024062322828040700909780342901234902665982998140832726153641711570745928639474039657205123010218185521516553304405932977116984806929657500511740826074562202956484003220280221138250180247361857847909550788419007240802225191061938693765975617857227997001967857004808997489689795193311359607782573392355903541093862854915564489456899356487339554271505663317390553382254784630029286694735793110622402476994590636171910520657108834245145799590773020059746422557103053043134058211730556268828777843470810416029359881441651945898854028288084103879779700896911160998942715394264812832635104535065404865706293681653320126069661689724224663959146853394443657478625056427341760732943217842471206532380909199912103224485967298333899193767489287537659877886389853652455891070975826940155223917934686237502812280132938484086455484062910457387252719761018162238758880914541806813810566140688728048805026437743791126442387618947626894568286375168465618382116098741014506353013203889562802209729204637026773643790724629902675735079478002054105735263201181576672973203313219657422358059829566359617673021306501965165409570316159183097384639232191721552040220702551929037332321807902454149288919110694865431320164163154597804798337476754724937044372401355073868262339265096073624708454014253236666425658965299825745323605569266044601355854341442281398951013971801272780066962700375165496291122440267305717686976550081050760520328972091490810609620692085002238822501346782910197951288277567527236344314442014677002622174393045350529551705896874132271352740683147505550824351526255899336251382671047012211681533211320323859595441270192282936516696465619982534430719814038859155804884206747455086615699034647016499861763572600969093700222499327251416875405153290471420565138470381179146732090316707402419713287006777792003908930808918411018658685624883592531314000136706238786475480401206337988962270827696131170651408705161199129617873493998367262806711048386933646822368246791728267974896039754057939475755537808655619842730867928115567517180397182585006857946342156290644594026487645796168952609313109556188960264276093721058638496688952569785110144798781569736545183649215830038770367824075014285647223323722820768060583821090885528736509554741746110669359279473250208065152402007703683740013124615605619628327939137015163773555517059042805496057434946461881717884597772382510895798499631165160685841133015967912643719603128768681763100397892563379499253400342117149513547106990360374718364875793012508529760006659378617322700206611012865105696273292838249627224005796994182847417230315864533488648949936477081319154463512490676550288845264846336239233675042300908277132556262647560956660633076818417053771891230496618863624670144137311826049423715429950079003346488764320237276901748868939504252953808136536188136323424033899731235405060973188534912086549203622352642110367144156493721324583887005104575865730093006889699170217755898690707388929830308420494727306645933736501576332425887074151351456155777510355290580201367242530134547497064897916058778205013160734412735477170304574733710249922928139606619213395347161247103039221510969767708005712375424251207768832815961112274913695437965288276424562531687782933268403400140572463197585027750049608866216798883699590441037554710611882849947419471436355187350239049976027481735552416534004970378460020361909974766250479921573294627742707315518194852058366836611205047891180374261475898328378931197099475736218725353266536101766304832065715222610287293321085902206963430891634288280904253402837414037435870600787387504401888648364333397484384183823578713427435198754109049501448008330224365740340809617452092493059833229437590324595740624626805425883589876821478763972799343752603934746580984606581452522664970903877482048933231937928700752016778580543895844930284416247330841815133613920071140158080995311449182398289750038769408190352107877301472327076984631504997181682415535860521444912933728629123718891913715348069816913373773600936307269353933989048418514119157186816625519486325912676767476812805150317446128277935773984093242299306649008082440977437117055558374127777100751108669277612100577148675637816084479044313501485772548243468748944556162042160037051753898024917444767463135155596305528467698153589302141327960164573447724058941328449013345368196311775239161407666244092008210594473156427704788102535648029097035333275827729752668923246059140069361187107232567712216672104183738997827532847345821237578844816367186353038212590317916037333887205039056724135854957348159423704825837934047823360027858188615954688805789538027271867069338302203529177341207956447743489214518938037207931860602868259573835789231194092672306579745128171936750954567108116578471718199809788255285585837160822723938620231371425308993579538857543805271965733899409419584644293997607423372582109501413540089255492537560403054610398544758658386077354331083289099319067577556914577849480523903131050154932822220185402639693306795992787428029422901431899512724358703515846915805975692705937875277091430059210598334955224635101371922142261263632573150160727576845321786348569662213871681989446604146907249056922252527001500291271324099293655229654736524229350598254650265233933730638051872221926674893012343653661594156930398807551517530994271318970790052550309019699647962543599428429537667513779691247059936923518851869158522571652040832123824382293685253838785477152970192005138327253519172204699793120863937638864828789707087420847995151836180473675791042266225344451839660948286459767900156244905458151126435056095496101710778784692564185912932821156292676365682084433965337995889951926667518881110656305641737418895908806693304193446825269710837506025971114921846225107529154768598227192515564245330788359004679049686501430087254801721647240820494815645497048523016145735682595827369365344564695809621575214568129600110105185366191099529061885875164453750891746544181556820853649504107438660110501638477410047803868978467949598328512582841023811204488219388778922172442823716567556972098773386163711426879536785297647610689655161390468215705283849716089507116382976236663308067120201745600373135281892925985439835013066461972325244893404521043741898420127913512791129302042969725984701347671179181310555821088031017146126319145141417306498320172340076097959191204481403072035406126358550550969286147025762873109638553040277218762285291103265981189929782297045436779546385818575228335973717618258027246357484345678403108767988132069363794015198451327936161903317764299450693365369977169635536432896951146472851676329442541043899611755217495961988649990112919432663663344394277585384205608108144078536232188449840493613957443855519162673950764181879883514208644568335679103813363185455060414478122657139735987380159825932841553155939638689117979842646306581425789546040918133658580084812073173090274282676300948927507408508892766044581013389794422791042426068720629309529910797523002344103679954683960803289486608323438337856095190909803270368224540647723101292654769017532379693967817449846467143353460378995925447774391348382854037459085802362173194257419922318601578445268833649755086109848393796528048071660843341470264447251441060182544899304484561013155455612675631461987208353790484941563818600636055625096266922098562113887481991622341513859066809998547817242144479999920130544499664307432651743039610097969207201746136387669257240293451819296507268958725947552360002434881033238645809205039523459105035484532471642745568794146152155659038444339452279996617827204232395710894658836497921766853013630759934713029674463798714497632722402016964070846535120261396834315485936500136047960045089480836020138877800559974638042756619744344093795753591274143728961308545344518184064158380328051283638269499261457364044902395554009002272849127845825170853223699691522885730472202618477627309828890439085763897135158377284209513909001866741094019281673938686960605612026214568268385958900088977418818210199624103835973096686641632658649923821048474436846796593413235300688694583738105987234002050401540320854398130658830055275305446319005786621112076030957470937436380602207978917368127565266976624521041464433067778674753920981779904720724059012780469697179774083065221193598306316039112124139657362800451947343310354886469392534377009618946674861023963460670702104793499636817710118352730972763890175718293137621933324143859581481326160852496124613204392489423416372067435736174680038035698593840390967183099356887679927344002279051071405342185011830510088369510501514853572923886512266888483226861826600160793419709887277086007210511275542377388873974670467500411372929064539645368613595332906237828256092771175623174626958380257538442601393328428858319484261352335767165293066310956685942401332719567927285519564167354168788588216379949227272515792433112273388255460084206797227457271339292320111772650765270349092270723437404698626224775242602688138563185818397612626659175631173760270556465353502486362140218414105432695852079578367816396011343622444020307041615958424616588171413465953638888360588184699423330651642846746386501394190954153191404311042848979133698198860823405176543942173652633195066052667090862384302977377006992104418696420213336280202384567052406501969458719095891686420319191861182589593397987897212026486129601644053657030338956547779635154129041867474423877754781172359094453400638623732510039479190876341050342803423026421411141584428595383903032802494700243818861715981161674399641782278576251501027936051193099407236572708607279713481613563125175933061965258912599224955699966774791758426817535140089787778147364170441948807974797173668619668680349625509313820336677557173475343525874797595370128980821957090718271860778958419678549008043270212810799554913391333752262286325276126475749012201971644382896908347384708958067255896910473113887522659660279732288822159481332751364790525190970135468197778713811333629397081827740466923250318952124806428810003466984322270944751194699617383713058908311866878216621448880022150096282180126611279128893310180960867123861703493345674231671387721066139808455198539836558335275059999486585272375794508856344163610376204617835944508010082886833672341750128473537632697134755323731168692312138002941058335153149584324400810760614839054712963156826514759748868598466884844330692227549902322265473785548051869616073138693570070078950440728393893475144645151502471595124537921284843500987114470255120997058610184615223557044260954449220549936346962421777487669969491836669153741513659685129058180327281602822609057803960955408725479281099710524604264105396419562821600718815477736353503429009529563653844795044118887442647775917675651337936381451177554989840425954607822647586243840262985306811339581015781837145927774000006383082706308947842956206361125582987778282337617428680882759230711046576755152930226530907270324121125468007191039615690914708006220380661432780053766708084217296011199367182437117365553267142384073318210036953208959392211927847150380645290558497648576016109695473955243848508438427571881192998776936649991764285586221066442198529525023518806460944464491911611132105781783676229789446992820459845764806711447016067502340737181963836698669970951237622552285243401260296005061022736003524657780958700103598517979228404480642173934039754669016965060893061460889249365904786957410216419379435514616668156259450825371971916776041957152229681769410585321048501378065321800847811653701025524981568069221083119376216256277950801697144018383142836008576845494376255550574118205553929748241211635165748422724385574284904296344318565084611832807161019942665782141099800138436505768812280059771392734917235103520455451331386667228872429919892393930088418239222448986703586838879263529561858905799847538326166339086491023715027127662386259549193130737318053960628908385722781272764121443771284135369730051424999665206480397646767627204267837227296565436572295234383302386064571475330880647450863550436791088573604539185341224271896194976637245295563590712322645060310659983742325715244951668907012316926420067194097501191150456977017694137835734162840387047144773381250844974139506958814550220159513466401389851521649908821397151878118319333776660358946760601528755010737232003662252267447383470638569668870168135534566209877294109362701176103769084023014019793484006961389099043718037581085172726902936775118316839016152224285527300593377117950406617293105187255380279089005508452843196212304548685973407389219106697754945861402119727235471163675750150137571788412511691044901869885427767259045044617722923394499407810912595622586808170131214800183580885481814708903326306089146900885681245340659515523253772838895545626737027197976485289389490662185168184510990637565471843576487397684833034121167556045737066520635988979825847261143459469779595656360102894677560119098829779466794085686315521319158500403348272768917783006032009561816503902653402211890214773434989784855398506390527193162700677229453067920018404578721943711742893561378882651138629700288557434459178696586655736902582412456305041387191695629964704485496934673583341766788331288304984429074188678520468729432566851048939449733565979097594276945093770517475165445288842603476763171223256554297062722606871975905846855239737580079221106870164030949909166333282874814634904241513576538463258970600464607183192702418362271693853558286808073034082915939697395293038381862364120266604003402394360229448728286244531878102052704956480592556741111363767164471434480678258928444074960795169008407040215972059218447082838018728791952779534902240143239839365321575775374535288986784555682418996704248431560356039984693747157156323507612580082657560525684840720417366329924916598542947226777709280326296945788825101393093040083109541320097051892749006782236947726342360782166546067628372783857892916580391793293262330211113571003277692965604514497767210018430504648763130349361826908179542206637664210246094596329841911946365355525744754422550471193942810800418364579413660756316365051310621081595444020967168074738322377899758749686313491250975244599648356348423011585637237132153041763902161575387141353692579687076892612948918687091647236242818797167593395769799354403030590312670157813759310640876036458509296499271212136451174126680350015068207464017271582881325993579839639421804969897152984563442731750631952067928914899241146695181993359646017503301291948757291086682130265091099453047870148184745705802442733507849715463619112722820073600715213112898281666497915867390906321983237574365181061447189648085227067078886254924194404116197156538188407283227639271557782098583770674408161836331496488628404914824315878709475524647578657988174615062394898652584297970959300520852162287508940937251757729433885289097899756947139771560267889064498127631283025828746951844802691308885557531249173386219865712503672877806407933238526436331419616387317605282393295072147652571362614693502222196271337428599079991948779624392371238979145882110651546520833244803944896210658661245595078629856338306127642788817038796285428115927946644459240767181414386213378875854506928716432716615483863461955510475144475987538497149477294566633401655841570134920395210872329856650063247089193280593754086473740713973370081899010023286397230019162457521146559162923619824070501733441854508973551996935790499024238650194723455659254791865072111653086659980714180028041249036247168474058597730920242685796240990117729314280422397360836984248304527370608582998999749646114571941170422193806968343065913298230568436668759721098804702583027947401593521478388440456636381107311628416966897340501774811925538463375468089889249588587228692427528600714479070242667323671368619565957161847775146871441394512795767940781642331945367673136064631459261827145344894211892248858873491666857115294364965883544560487586107563103503561117966697836172167440445992753298664212874013738521517615037296577831164413226158480333393230080762327097205595154169265730547572112944349372790250255441428113431406185717462056263193352370272167775465354039947609914442696414563577220542626516768544898926510236043097311531204464097073812210716615777503363745926965007682176051446004689651309801902692526859450919555020927908299025794569127600679099997290130036706126567491077745542860916089108403601569206830443692982210964326089591002543064253670925064279373703430373592020798354997583070315552163645827747340292751435350886835021290916369011767983720984180218083887077344227703914864762679941485446876908163873375211715100448340402148360570453726707873250015306782342864384931687605049470303102731606119771964294288011776547343736863373564714932044525521878938357831532495929397750283622170914158986928219539101590868431231022670358481300932760263242313986149934330968533520272199479915157222049495002973496038284563235249186373015927693625772934764500537848262667379718236941878696664738934574865693867207929236631726056116997722061472008244560225215099989144587014736674607920833899199786897182093323605596042212056344580416042421061299428378080835321340939269239340595443655069686073541710959771341492551628045887739940783005896828131592780440251937205560867897489805907155919955894644688383050563434321571007598112171311942570574185751444438978753149144873600803166917955578107918163158664688543670518002037579389687004061257531606606532054456224758737961883135681208901297997995796112925641778052826787946930335988446827308730499336116567234016300178396776633585394395867987483200494882468939817124923175008914888142007246879710186255195507911734579095532247027972098218686203821452262894409419861233111634693260649019304003622984392956405437628672276218291026209434831103740401311369970569872429867286126687800605786150744223041399063156415549404261859945175617503437809658754797130136703382551841752488981673715429960854345390954492622948123294948653392690317485208733658970806050793225419893157863305408165509833807180336262091616709513414294023981608586879546027562978897266012626600500295131981255916803016907217613275708946092640668659360624222933324793213456099955853752670047216513370588489764077514357582510528180440509634743464704736236066140475798371916218233595066814030000097913505791888949966277681140251013187327670684119970401476023195101245063334734322540102727411499727146088058737498476605642126638008042350171698908703794975859031250180166013850507924867951898648325862828808868676769121680661782862211470683618766731250065647151890630750989244792341259371023747414252316578437069396307725085125729589958520609948209517951617317215020973153729855315258311197441419545311675287681402015588217883949210512786354598961923814488217630989805107904431897082282013826072717538589714025404487999596083185576989322126620043563716489001482106161068588809190534749771304891535791490426982006361790316840370998057857823972675415125181393254565857572302241378775461182274960765287344605903404677555013570703154874897266935550883725271089188554177165788971436170709572258951677675900380664806516053059688404612260868630136165154571733409929666484287554222909582547824167401695059896127475006143826503334703285517939598006874925236187028245635743326607362939150519254420234406845473893205715691226422944264386609269458746346883196686317873426550203385766266903431180892936295644433670585104062127547323337737175191648491026064049192059044174336701528536577449782694374540022994498451445785209643711403328991937282938185017501134404100755282370014613996543203466912043126314294584922815108273563632819699788969513341867212379257874507996019515026721186945861260357209591954347752404246619502048001615494404923954338724483427207933949838938987019718079174487207513632138227128469838427042115750304159163053978246890116862258377034105227843432429461502950192525108681297113569321509025081100637779688015744770632549345560106420620763774475612155589262521870000694241673349711713080018351055943411380056494082220708295080956847720136316626856478943272165970881104365557071252873135546300549315354380174932638635254904602540480199103768328763355689916008526087516922399778050962449340601866393904803856892958492053193807447485055870719780200714973571955259120749110291638270179424230598023058422074765538223958281215249091074141687986561591431776566941055595801820963678268849198774408734570802110697366312909074133221924328009672527648699834596934810915494688439638650311468671718214717909622473770508406006952635854382610215969739608272098119378278337975599225086906605224802995482525629105478077278352702802894081022129240573851228978222326121309387739348734733693025728279324768328942899894288272047679014593636179564177171666706959273839743710173621353098187907386586673654494814463093377079571209372994299591031158448156442245799710600247873818147187942229027492815536514307858702568068176480500790256763025584952077781900982469858480234438253513222241323462486011506367765891584000579704816583813834967453952173070093933763446160489809605281516477959767946796486945549150988026139056401814943363459577889022412462662337069259406621059514478158802761778468456908321275013859228542995281819114928019972010832806914192114925634778537722644967650979865502283048092633013623802672082249682113324125646333153648179368641431726307065796685136936457246405980541887322232313871979606568566997699277071283424954094585829318556803941327756797548039976096512342540040558735273476581133641087182406931782456416732459774788128392788265283187675715722656042818508951678475618550439204214890569532447506747967796193830478923252492130637279676483722398416765620763717863701967474923413446262486602098522541076854339224764968979427436396004018578210067451193024242382672221277486603864629290586928235790775092356878452011292930782612529991270452714086367168853161215230443292865299629993907682303053040745486522537270218705601149014654769173852786308378369197872059463658148805169922200636861742374735252597343887833656955464737852217578959344369908631658064146641706322470180639520049364254501490997444174423141233037066228788188102271743409608521215495164512705883657005594994912550760725346267254643049107456394110378687104979131573057526816689530355088470559755696345347341958581769786789526862576725526878578598974349172183964648094298203505041358054266154558885327997545955004739378702528599216537098788274119962200383601514858085855793450297344396643395008209505665381558900943367485941320681345572756392607079544760373814226615742180628064859411613958353727123653545085397669577710219587934161141911449823434876531385112467818026882422589128684808812722482790154586488437051447932570361996334746238071656516849850182748940603742481982899753769611025658589962018354803274727779353208321703574584167423463355024138973137172648170402791465582844635166730410756921900538898725792709634133535013267365114288410576305425531676124006729036179428287286242688512550714436896100715928213432736812595136529316413091956604156608544231688620516993222663321612925667757875234637920630199655757479299548879441823308523341745961188333382978366073278921860807036627798202224187733344259205750883306121037031154369218089240087911827940434857083031292550213351852709521209377147483006962170665551985578260676823356311622421239439326292053292562245535667191768450468004926593306092655665330238951196736563885819132719242150791238070819660269423655503199603768672572325197451614144287871491846591300381788156542750915232689545657337694494158019999785142568811902178164814617915468793974619017184373432833865434009583241091453818980972464118476672568090909249312249459985634618202365638784599031589947998024068556104177368618549241787839985023845173709175376731594489158673395993477846105355966196171301515975233752131434778148901263624529645778985547691551954255280011053939361625570204341068554266334380576497332579750965964886063775103966588605816857195063881407305700412220309010367418702540241362876765806001661738337221793874815360274523801137671554817705692624032608073321168145281358174128645418900804350341432859651205887485568310605352607281146417847710529485884029807313114625781798832517515776726096805654130484593421450420225424644407284772349980400840539977860366093539158210342820573199108840499458038132324231661724456118886340746648744842420747557819510402719136490062951652957227509146228999374562477186223877758772380129096128188745833828642369838892420123958990790935871531274423322953527966297866277173709371932473283605088035435560999517174322336180551504445662773472955297551061267710396322491899936857833123033731291680948130647172850118013653082641760672852174435018139888763387302551395787425493808883568124746520320207578636886591272327235728228569815323384146210519182938492667897973275957713017818537151595862530345343613515136525814442469947945359302188549710114787688805280214812830636335534392460986585042063273296805140401562842217370598128341392387498562457191346751490647868472151312016524491009593331834382778833240641598189707297921985295564902930031607548131768964487944628899834123828889982601917095774519712933587094194662032538771635983219263635068681460314067768165829200131334536994897997503801276282834177559094331521050546567857380916410383093230006466745928297381738279329462093792626673475723388670282616589498642894594320644791246461960048171369858091496003252741270307612596360680071536112373858325091024285694980561278375629058889973711769045301996992471798021418353775181263765713884029710625435392709444177678267256322772749039055538448575034008275603840611868248079766192719546260304995116022271694085762080489542788327792668046672192874071885800829250338317510656215213693810677637828755624709043512545885052491690280175389204471804062785811969008682716795035071657081858397388430749497407328483091000876865544435833759826993111854888627001406703765873439887976979994817882265114868008919862703479774039126275511021507066092530073323543317851053220422425040205183542544670336916919830508837217973570691043411161792359590352946568415990375299631334070692878931221212031934518335014082088273905946541657615033476730514224306737740411084754362463529992688262716490918267253105307881264265632587791610452702314143365495276022969776973257931995882155929407863502502458821093157234338963096543998275448394309448894627501916596845505807448144594731408431152146853486284527027662907855568421907890011683293042283578498946885885719520026182462572233467823487584024783454108653993346888345418308000889991361579474874949274293603584334036159592371413445544727578744528421328273064613859774433209467246755988569525611272406796196561076513830352470051681250934845147818084860796199764475615684006957444564180679963736831655937605681977025251500392740158322593987565727273985182856767226810350815501341287079659143073150320834439882916624719125493235183322163877577132357128881500250162628619763564343983428898093661809374738773859534602768864553444953082878470997248401355845092741932768305964356770761750462158753875076529832341678544980591058105852917797962372177559874861528242830511446742882925647920072272273465087137239131035576350012906272870635074371936057195216446020119604182079825528869301966004436112086778673348925484580278276356026703663051629477394787450421665413444495306937558690246572151677958102901952884971992642314530596731960631970638091721155569472441847270548950155532662756046329703991357194282216711192375936415830660553348910285138250187462970338369834854872406807201171504774503683655002174951054180014189904918446152986290855459066634258488417965696038466860414846167647143425357960203659588337971745926714630513876566726151165219174984574555795185220606361730084990382401965744847000108588751839744574653598025302919896005937492038170261939389873009943460760902579364850139197423667911502800155002206017670285607031647259370984258320556057645783715907961087521568304648931860795023458559406732455015423542153136947816101769208384727730131978880314063378688806020985843853433248512595857503373855833014576493047192074465410707029282471777035372324441368239111216738778990536724067813089565127308973581319729054508122909128988406533087987914328803380527342707972625675243169251715366176829130147823252793229939858027529103845691769841151026720800504777400522838692143634572019534960549426410142046334065192159724291683778917998292290138649562187031905595981548932581078563467359685866345757969302541663799805523468053772001710049860760989584670184821083878539819276140647663296086856386102635387610357922254603077092688500468152405996592369295628230358220511891017407746601534225274907818322571577863116019635170832154070341016107393407740129421860771202058265086443222298433852742763175037440240123424633474743210674888952726085340820715437125832124947992770604076938530939076774979607573786793539359675502376693711141099253175832639823423116890572907095063377272737484518146176632805755589352034465915157158622498986855165475024779499498413298782243430803035866387207715213807698344304441997743649130241697795165762856636252230085646701611496193135265008768087709260891239137325191351547937436862490721550980066445272737826268610894807899968811893082742144199801628590096932610557556904506957649994997637974373211621149088264969513431065063093660906979172666856944454583530716839391331830464039022980749929641774611387224779022721492692959689318706864281718668674759124403191520160172228725483943947070032976479230142654259991081847705425858271778432981570449179769390555863201483000353895433577408229247728132596327101647417954602556337079292124600416918904033336032430943140996920810008747483404456239578009590874570197863277278152094982404522565465961775430689964542185977666246719743059308351800398036295023875245492908376156392813775541361761137912905848002420148357163445320332611292064494076651449704659266540500721841010962492465098105876116252174766792262910901716427980339812418775471208675477511448577216961443572510685460371748923347834436413658943507149802314901619078124554032105222171752876944836790638876074873650982917478636297487955540971275875256457043079034664364707198943879779331713054539102779637677650313026962025307879475198209267704010447627624527295905175369337782706826500922366007390264270569606741551380006302851120228830749702784560616384718511013954095972819257204851547554712625057091770100447066757313194663521036788249245605563691460564401353897806167580994069705644750527451524402624950880666389973776999031489034716149832015818151872606795590795278823061491141558375373484116657838614799189458136521729736111777741479672820655384986548454812197159779067955811241075019260014997744312488051103520663120082473630270684801459403980041692111993616123091638456912294184965910233649406077929179164504984292871226822256088236223775295011181513340853251979241327267252823046815949476845127581636708306102560090086268265030520097209290181753606038566563899854771309422824646954307916560695568609119166270020211130282561971178298494487333552615670086877508655759331340256070977959511328797732745794791517664224204761228171006619251727692012627074690280706438122500183419994141167146453385386594567245008719345865309716976006310325555511999204333429940514284247016345204917595428566129287387218230482518504246123933665823648620646182419750507197339674755979609204344180805167945393224583564585069581267905642753703939128832585441490334412185557445677076280611376382195200437361379922282857479876285193150663369956766254563343837295449076730580520468207752222333995832734434198051510567830380160979958925641950654123724153694201839315663119693146103988657952175395357473632234654292037381916590405668443771839502373577530263633898883601430915443518038678529239275704543672173769917224556868774910462815099375066909765366437376429020020254563562977725390008620769101933484013314379188058528725935531613342830383929607661807992362605397352804784991165099312367994548263070880555592921175506265808954974898813536293429658067338111237433239082553028061419390091621000060980974748797373203869847120004070935635112525272231765126156118349222165142447961482951915405774012122525506152509710904952855373520609051639517941697789113781395412860041943390931530269317353504660725774599972784444138783973779822981009624338233492603697386131965456859594360497658128554549688107040485112798514404244535633334750237806056369655395747926978015919671378196374542762007995369061561711691984186984741860502120852620530028472312308550487220412158594200377882808604702580667109584874287888085494438624876853284508555161210731295523535596133271141081412730227625643144208083956316662916977224672508158061470832719963095140897302666290009114228573111299531554945767729749432559221705333968982036094630300087841794565590130305641258568628471349122798675202318235561049091578836229495006538868625006822058676380530084223963884757710520863715405434553513744071385196625121776326470650137132601294220307227845760406611992081154498656259250787851480822591590648303825043441557763238332570090230761877012361112030235496259495741899438984834056331877410425352738110837495941282117838100696250137062753392484089242834127683948877148257438486759428804419542888195062191074916028725007042342914924387688797682782596276955274859041427666362019132347053935447356295671746148868066340394552636410180490672336111901591507167261203957242116061838509476180128901922432122386345668785091641871409731218299916987155714145501582873232702648907110322985450710996561359376917307982455380908431671067464359042656548835198677582398087192895470182246083649155900016548136053085281091263099137193482352959371867166686858825960698603126770955995739232489050388605330520560028359369954558304023430378924876116250079315892604738732719784709370866813318750715084994087821776027434587528413868098484400475720961397189057135519328162467005645353417812889738465626281473864318301619535028152753645023521737167957885150162641571414793909080775067123412585088689751412185962900493621085659763735440720729418440510395578966248856233425094789303857838350416601106337536618921193132427013026608267168810475075026879262339068148102314546197582337435070245977468913148448624284473710085661862636408681205512814047491301489401743329779457861070027469687550714857814176455260174172374842024334881472310896986989799805334274908288283652262152333202438285087805728125289482582297525537432904282226103449366162193887528419185516247252768784051892862332439243907165811959635169117407486791475126387008149486743838069545344081160524298220981904021140393211530834901001043559992346211531208061289171371432573747572923753737304595590398550136904793048914367009821842770145639888849661974866949300204393257503758537584634526427033152983875264510023084445579447692457567755887324204590501241005180346767910960154440262548858864436209322391451644198044412415441141998190332500985653967804235745661085966987918665542734271973914570528489863074856704159808489992121783833514778135444453859636529165855093888837067975507377793628516360205317193238636296783614938824116478734052887231174458430608042802138461068240652939125578496104243053687094683859559079197319531894199108135940339066045117828182495161382153534363281482980604056698602284302486625288079427321249847184113504396211881732822899203919040296217428432932832872447836139125226763982637716009629193596464748094170767206316885900460817956797820354920311650326196925251003098228673613198446099077418341066557882137670378101296294014526422962663543789948915789365710380909681112080512572343637590469698869665076641213673325039311890006142667659601259955369976611658221099522599098611674918295430306544572971727505967757802352285837500626702818713593629451737390456035494181822271948509754968329141738768732840510343703043181677617230978844866454552161455911550284721189140435724005314055979617281559130334395054217460231568318359671220716334426082541368311749425833004407346621681342304423024922739491420750767325576959654974208633254154716357754105959137147040946787950435499800161304948160422491211987066734347284264492071986851039988317335305655938961068429340793048501281117178371381969019366215079887311747123754772922569854058227773802672515262062513359866893738449226709706077909547349356764383463866342375345263812920789536417626121705515999965505625441683256349459171807309447564211528159671628382541854726310498360193372532379658284582529571889992360934496671203051993631983002574728516083018756107961909542979236399734294153789184227504142441436656101966431071059322895099851576029498112821853470426754463239810137094234237956153039299990596206116069892359379996374632548729566628982565707860628403769946285784454082071535566385292426393011594693864681394592664802753024856432864328499037867905336143488616643285774029098951655849306688558587938580805092512532184236569800028550071517846365659293421463340270612119294157698098405030511489093530568208325227705280254949435226291866613079443702269567191275293219271868798965208171716079339701338122718486193461831663854853574567890436379728438495300407023758252070936236105813820039575668255712514683917968237817892640591785973761858524725336298520702696740989659988958622299049544631626384101516007461308315874102203446449023774134311925932229258436512375970450496481454317396670695784080772803048849299692615711246973795457700639181568677725036919621134120701054742484077193714352559268887060662526480754621539444831071972466145328534462331832491948963987138303183589605152150884429118018735493628193684931761588462364249975924633474172941771146747717440878540024492476161119514637103969590422741928413524312793246927968771505494991538196656250259452953146110955287786547020168728650927884530730720212486660187755057019138656371221307903620745401737748678024713800232109704080332958628620293901846332015246951233555318168400670185474010406537949201678437276286214836356185292214839490049003733797135059247375575531852623534523402857629536393945830152564179584367121393341979813628459334940382091226088654770001723818136565012453179015861224872466005660342523089398760951458568279874799371273839090408495829302316217018462409930128213657002341896183750802955100630974726177401766215947361928767804390740597699018079552999052038713855702128310386697505079516705704633164060840221771697583847661423923503500703766088526765333421342469932019180338090635162358678233924162213583039823094939656116497684048918993620209141196845260897689255276318251225519372866184911974909325265593325513155499278223777001304186281131175939322626117850220341669039531837108166972326130314526616398207690274267683646968944915199274332344000771013034141662252809752136103468518995087823245762791193959461107857182313380158524960512729697551061218847793523030904989070614485251022946859837137063760009831432687060762922812026891396497628654528791428482323620226533270381385681672191712640557549206380641402526141692957908816169666467854939300120933671946450657380597121269623550526894862599200635163921786225282788207800480242113752029598337016523351424632461640500691363489599293080681220197152952722391370397572773045349928598941590235234531134351479745755896116125117424125200466278082778850445833026519261358634668561060197552659576165379669707282788745786416619600078427447955021011613735824396234069499287009767107466376249327070073611285084140505754584362603724585863862305333776719032728034077436824944905084834537784962399700132066230707398445101077219360968420030124322828454500031221150163611439740426606512915060357571640397925744439803990834668844807449171764016152945904815955109093913598354686435613563445522757637464068159972310136952528191207273020440037422527133933255760463370380034767107216839535128978626388776869827089693273873910398685506453721097770881757581894225308168273837276290067871333853447184247410712213142208934375630777630821056348807570135658538026765291483961614034995465857112073981696761874804669883591781831680197664602658796525667847284927099798630190732152039993193815000028116222642841931606082370927647216076577385070556900003017505040630512134532920834543550179957597333706994960830523951632612651200051919245692448502287020171631233769284517633657403267327513761531122836594659870846679276137244340343724716893165354960046786111427937643400103053731890791750844640425223593074733044320182665073916891967591022340389343809458027871905726328075088943559454730291818615551534233761178213027817888319281949561723831305890406632028206437537070390524016393479364127430451125385456841969291287694385044011600725804825065459504834024688920445949540904537807770044816172214870403055712781345427758154467832039715710623561145460665978556229833201982555244517891587796114746194247715570577436753339897273824216567174825869088054537052470536876200684404978655790530317391107927918117442131598435910636058552299898826739280412849985172773294872379428080513432736504751651453637874095875693443094993620671952621613875053901239109138793744370520435693471241935490278087563798893177494560681177986695636243687171145554384613655941146731094288729819296525232418358376382648699877787828582588327846466368693589573657615429287024024060234400295216087405774474653807321824412618707514512501757486117892363422389941924607767151509293118610551189629009343424651310734125303922162631482813311990650811835880114716602729901314617462935398006522776256137167890657866077581710130600255448010442478922824665792623611021414936852467053974125999489882372564263401930287869578162364593748770999882227459351689270351287692450009688605871115345668151768414082730094595338314801569733020396264104276943556365488489319957417147014740992022534023670915713311183559076360927729336100643531870858435083787510786002862813816058304854395157169679214481082856086690047584256468843862421092867735277448278699922969841252566138314656177762035378957295039087615149144701309613866755219845326979739689608834746651855766060433638935441142190949939480437221182325474231923819326801754052809219324567692547581506155912654323094616181483322633702205474125082612599730328943617003190008859832179713619890810872123918745868976598775464935403564467639733567925024088775579849368499061738076569487615807262538249675187376026165083488222524468476680485136627889906175039808160021144020583977355187880366310853560379515492972847787158030735150022770997937055843597041346137527708332773041839665004956928124100254539831488596096143429752257959331184298286772148073763734455148908665490369739136139982444636280554400342272842866001359410511201589550602588545270458262512773539450995954979785931126902360945267420239629096345462620333527567384252005943499747484009254692320515397678410689908919260918838505584589646233526928823946829645069685554438942306434844840507640675524160848754583183730229276794135335822388241479326558396840401977907075639807892715337853970806826849322792339590459533994020965454130158113966010411599743023572915694599022229522727336855247784362649634291029083820183795553732053001893910229573325235408115648355097745991767267843701312541939429501609646742030065304001855445744355142452495912155649362890120857611676492203444060330584120602727166013185985119762165459594858909971370150303341156354082565937444532499553870198371592913538277307208017991066481796563521498841007525617230731225238310434019935264370754946537720146034080586853314233439235397961334090485466318724411818184433946578207580682540181605353208919976106544497146177877450782799361293531845602565723942281354618178594195747937550670394131107306233532097711302690526211335773018628009134268103833382841523480417374551348115864418232173904942138587092290829508791757079172046395233548314754860877434422450369836779291721597481445369422276661180244845834814074255893568783610454370390255916580494034288565421033101316476234788691185084530056989506692458104614076097863716632726691221591117328051829405309151035008771261686323129976968073573576416141421985159979799038693468137061546377151449376658716763571836169322942688338796303046884676853255476028866921563930051889039830232117619537352570060654004295949861296295023048237704351251121922707829768081107548119980109446174569892601294403828739185365877140059944919142356043507843059819632975023634035750557103423278507090706498434409871808742824068524914116843733441864971365970898427974155224961410295045350713580695290492188914667105395859911822262679076141617073834033775326827694015892952938680589312776937837890029922023868376944298588236091018045196565517750172221562656436913511616120353751313620167202925726404532348137199691978992513263856571895980412792476608812966631575415209163482389967002413484323248552750285330615496564173888658518911940972118672821378469688737472997272761879721313251317187321909027153095402599716983459490412877505518110391418732740398997153353919817196216488866764487305366091642900460947720642771355926665302791362430224469478946407010669463452239276981482617162215265358747771263376600599776736339295979514369508631395255213666992423158765683505831989627762315687340597455520830396186951688277186088103168753440756811039074566466901696509048573738415468165685113894906265328769397780123859289962469488810004200898002803900964186414264438991498870613175593946926932409479786332468417856734977213209578760820870969519599396482272763063971235904887025603724265871781465199090808188086158957695240092217740152824564389876081251121248259285591495207186175530003642262278651656771718484304616818326145989770758866972830100279009238378183857623961697868678614581999857586892131503430754116861860244806041922606885426108902994956485606762241532401089059803820418313015375148837692466586910640017224944604532019137146902766204042814997089906054724116594036144018050995342854105306987582432259047987460677227343225349548840486149338405682278837093764524555168692799969668332736715488477674162658039878109150496641519243737581027685481119840076306647037622433286458316386271702111747200517787657567493483639545504737556209698434726526472596154985028977280294254413247205821430829273554081881369441751008876141192358926108824975402748980051062444115945833294729319930591244011539245184574663523704736001235195121665384739605138832966233332737017402477846788146825730029390312845739475407183664170438961629665994707504254804850396278115671485079779579557789541174050625205037648092335387683685321829517205719082383264142890880577896464398034285688443761900058664970435016266014281679384562056480426452443997714002995548744507060926854732384176901305138671773609635897555584875667275505862157467413842838002999065182159700427523775334914812041362981665294056367582305668745480726765355737975322910247544343627099327235950564627436062797702834972725148588485416765959860132982642127626421322357786794497522374086630218114036660046712979931888970974201335161513185215654699459530127006687888685693413765395892972809883354915052710850597365342027748847152257513279146133546874961829451344175613371988928387633731390548461140519629612879466507220169541016508330712334362758912147903228681937880117015197401703237292270062607358771616798042848933124042235364980783141213616473307186206925252817735677867327457508665143310938607540965487101125427712693654699190469056857407664628574515813322129028715439239950359615051965802540518072212195949707417255569259415765479107618846639989553193139109253638819068912966020915366124687816265563617419395098836736821228587449188105264196906651569402201924958577198071044358790888332414994949211053041744207287959120825483391554650348502620488744899346884884280951151526324608815350995774353587466619172346249077752506182554324643410277992881409640456840457986644143506715676310606462576869427774685918920765255786462930373712738571820999664120462949707563474075461858370475098075708830436062702254304295677818155156896759816779092496879093845769396748400757963001118664114030481184687963277039599458947210183598884543742790223473342534622569892523889512977652437061442578620577214382293897268330525743757238338443051525432614988488980418300353719839275456750810701766081079720618193363748105701026028318995063306845066600951090307190001461605921143226961827438825939760294280225507093622992643568734501754795806492717374335314912732042510891705165811074954396629727331320809243912736822428816848955522185841320108821609609069436260796596333723812209070024434509684354952913932462271250644183930498451203571621118560808183624572907179468195166294369145181520005414699526904132754541654263409689151340160482561067955513709361245851216299104713633348466174563204559638686467675371302986727051421558947635430929345613566801774829627228418126249735591682841152808869123531027766056761682126322745295184248245418906065975619422085748459014228519872640480781108501949451476226604389492231855630168621992239015354750583916347199671735494521843235634669450170953949824517117846069323995645484183574805387513393075922714504132246480542055427046627218902126999966393047994580595259903960055798365295322751672601648609660940502127249851450211991393643299464698447192384107714683395091140793183173297414295539942501953558283106150059418124786403573668946778748455585057924011548866793253098459202712057299214447269415282474690507431265823585214486607609510797105899155553407631056823263378528962615199275231921220194211635385782278616567281000735343925107516952196888094048530906160845270187516661796205796488363979883165788672714348521618152985101012268231126693026311647581974047744252259296896167707101753989728855660928810999346312294291823664689022424939850582701586111616108476343330994666569254426366330357206331553492510792513044349505022229858114802529965957085086832609409568089203745884246650530705495382213436078814236778630075876965781647084603149414251585884419372015844097376456604394720480014396038080928448812022759707120781429761014545593337570569240240826717013393984532160560916478846709016193609687869726472883739194903082709761246121268851046715125275871711069106772629775138907645894673164461569642094640869904442091073618329222413822861109988097043702399862608745886929676637029127017170060718844455271560030858852199674408797345846873482864658088639256854469925490767167026192743637971846947321941638340490384803104377339700201559714627440982536746150510192641221946047376530380868523846477424034487137356001899633660968661708110804234667249849518100250980547220331996801996983547127766495794340019847363123827269035779372272937860055822026672626135037328260161873106799026612320912773620555718157643993565241733476371864507828435040184546081613000786904455338160588416795193000241686528626876138359127406535461555682132261647067213026418641498551012786404369338531876572889115359533526166447999667538064075032527982025060838309018471100722507660750482289613835003838025822069208707318516634343036899439452409081452492819481323414083950972661000177349109200311833984152800007044863947354852476938640251296808327337200188087376679811353943787751800336562098058078392376920539538353560775372121967357020375111186496133866705770267820682774563836535036966709326249016627944433465986351661798440709134011232245075870671376756862912118516623770708365356576419663503142625974798541801325845563731275806323956035293130864733896860113855296967617839653179506784730052493041277806845425672017280178181284530936605331095518184480937625669617169165806376748591615711692501431832737782705879783236901248792413924888955386724697090066582654776672248650018084316417967742138807476277458533419304892543097225492615236279373343333644553352536397960594898199464972161663640221904132246237602451028106236662811954403496202813635114866134566711112688083116563894655408594893821943545073967610834109686046482233934367486806709033253662922849970767662245845721290590763532924874460520436772221484531332471730483200128815195226081484104489143629809517718805816223347321948113355260193754789231846440913748843643448923846084453766939721657849808906500669331084232760476555248018396312922569275873412558422154948106766376792289101630908881897353667531632418533973352055802965763044882039284436481680849363795454054233286739977462599296849455029196788348187537161463161474895328248322421658328406611904795808755676526543939842305037716505822118731397348773123783264453705126310474389584439422946543390756014720594975414536927239450503601013210862491644605953901472126837082107597304219675899215807031102826660591981663574695397771106017299420543795455798350688282169686983064017630788030994945142374458467541355504940445013376260951431749294212266365154873391983075511936867619902562689359515337620792744560021201516820650498936047132467048899295072953953331031225288237802806576940348829338070181843373366890719763725313297690204097410307730626159766352558116233731204324725122498246276834439315866745051780735002554615865003583868654410717622800319062246681138514175268954050319775597967867919456457987394274642003891143747690900251722112294802814758727656227993172963463326277401288618988822340701761467831691100368002600577667962804955471227240266304775352594195399768955185622971604806964664456865193443470262553152264507368372453294558844814227284354419129563347734596642594504974675576438038112078181738317192620826798909190964371794539037988899792795458631535533011645293307179194609049782130493182472012870571249415011489861494006733881674946161811630380103058393802906858453311083815840395418115448719666090891194175315547485048007384038639836301712681041451066527812695950346287771975456369698915995832662753800872618374556438252846478996101073863917177381475577500998483669729333895852462360688092827758534956899076072032682505827605085166042680578669836540629034456023139410542955444164374813474596487786737098784221222549031994772464996678515644827381014924468757714834341844825917917894786414755072441919786133243701349589425185953473863456402868702745572564434293321059700296883890796850060218165973724270677717950648642730786065862489347406184730597434381184381802561642798380602873756231470765065522793829487765050493293962953623299119939785768929112521579247536340964209764842725976547949584088995315593218746836331673687349313400403462819177079861948350678422230018489131140335073833280935515157151857885367660178511428159519781057681039591706340081605366164688401026163862247086671507819693887576332568724638190188687503697617385714984510503047470687835295103322959648341581743368900512787260070869747929293819875226741419562013672621308267109221976225030721823448063579197841464988970969641557330132232719004376299226884964430710299262283961500165478629075267281316695848565262266898394422365488728661614552531902935317572435109623670560215922715854559898415373967844230294368452346105828002294663969078535070441104402053159539843826129469591546791199119121494109785412143123107547699020588994225471231139669387759535310623307006210685145956468439409007375408226351227730194370525170774884958292022644168028256511035313941375359640840939154458265773303364062211483501122381098821095456939312393377085900962228469943015808779705189174154486025976301641248054311945278543227443758013863595198118059546544520222884183119532080314206884910502484047374059157409765865959872953551518414958388953777890885835223590390261039443164044498678953072417743781893010246505617984704527238188352045351427380187150910135632871770906444782502571522701065945481800031241914084056461926139000251854888136485450938997770036470125126243618464880344573089677028254357029919585299414967158369932001621485830820997547054171143819849640672411220784099723601933819560993691329363460191729358338659347519626248512164104978801895916727933871845350209913736603546118978872183045308528289258488628327837574298817869800237784203881994092916336915352527992786757239615576713389335210328249369626426530253610536328706630272537070023475646790512209467192111125517757681295708010019256291649122283775739442704454040022679549463797379027337621576571326053421676335534361443405361937084504722190415724420187756097588689562424584503175735709575066765500649144096360613510233240489899423014121389210371895054572932674337228882650739866936201352514259710384395631310627656308387461562360172387540798329244456092845615772153482367536865697124825552800247357722802593021973066266509889469535674689107239593368284099154155399900613571181745037566465855887001279580473734674804397988634435379780633420898525496925453099876794020742014202986216437844256017795217385692725603277411611696298141486284720257402976931222841296803437850914538375145878849363089705136812066656192087054341645570301773083944550216862443862480461773448283945759785593955225582656538676220951709818763191694625605263936471947854082821585396581683943188829226911349155723926687741372480010105421164784131265687360292405747323699833893713277134102840456215724487391106365109378351185404433351751460334710212248502633516645846991631447840830801022677659902205935346743504377822778898574080165575624017032430237000567123279755691267463147500261463552785334423235959994004292691940511300184263814270585703506648164889609136364816277329749771648055516777889892529369514255820622799320550396043962687797991878078791219772855099260626907139995658194861925070979521441997219222823717465538754527752240938107722895409327495866212830112899352446632522215294791931754232092350009902248554429075827178409972100777466143449588187082629364545834829155027262857305312113425791065441391096025257109633300593270507589406958370192637907967898901849107977415336196713881006736033657583108592595948555902953360065194410494408074297401364404539534919457875169003940618417816385441420535619893051778966401578068929017959006213724067900251941939170578863379839638078802747157735226958362588463772924080204419366983834132276226880849342940158891003361515215017432491378110158390024684002871900554998560729444830704301367553460320096626540495381834407889978548919205703953304355193232588499536378367539532151546731803042723832515190192932606630187886067947022471291902343058568389945760428257162664109414945617258763869672855447567055656675445266909808292570889829177876328682679119699502972830499328030197690733058950832305480483657567185119376247928416868487504413106725315430394952466661576800101724760204375147601657726408986403247256121873191076298856413905753616828436970307756984409767880765703399854382374746986600343119992056366466587370253936645130096557291738857153737349717736889730353227275841316702728147247570763501958110397011131836358095218012738989385726268160232075451964867635846478240053972260106075301603477772038287407597734675319446504544550908181992315193048520280633259924077880285765463636334915706718241560063091503253378010386339914998568676223369205458887456569399878185958861823058454313565102117995655139066870809901310998061395359778449348222454709950882828737700507051030227413546892119040598966251507966000969783052096282352554356481499529869056517756090584274600098645532343862405340779481460870991847665070158507822948179413418814023411795451829760932712890234638132774013247557789740760434222871629982248198391445328848759807197708167760704106125464224722588352962662787124059089334783857723914562807109559679411605892317359715132369800819535272764264293891405642557428811650510497361672524629512052370710664891002658522100833866320676701990182390286779316481419723708730297639006982857462425699089343188702482135439504491333898658642674977721867553846587238992373590174236562313993516532943281201657442386851282818936924921091216704087196669172911153596110141493015816136661981987037308474956704084593242378499060865582994613096530270773521005069308958256218948756080220666349412191065443838032133360275305783108957362017060759690509870131482350759239314747067862614194542443875291513163919695078969229040621836845195400318153967782571289642857915748514577984928807820076423807064673496471697194069478820904243496350260402449090296661623891364844831362021248445735972174092777402506469763711771530925278480046090568410284340503346426869058936103044859474980107474313956561391157069883355133803444873954592519605305717286985098702329496849016957651044099853059632878147634207486080024594666816651987311105842286386795512232722801230569025354752751628553675561092598700521149102073924006872119086378022081578154596998735799107453346973741001694168460734303469630441018789212191305232573140838245329507098782369029537370648435384765500442474936661302968062386696951030185566550012459713850521755426610928296621920255280934992150246888796976596526477043048821104442799846905823588164387104317949601935204870840225255439255211793401848377802816366745201939194752038965665661554199399302943056411044203550034616131677025350488569702412005834210792137720933581945369909953234332480309785939847879207372889517212741954859384293229775982802376303623089526940028159757449880899878172037342316348443564602184758867527093607432914334945799975640470209670035123862712455197418482925636298896823859925171280462410524473167749802446954168020285077514744754607513748441555443982225689234753568489305222646571282957912731079658807990376817730277727441788240025759829109337788285756691493765758705990931535998546857940095945380939159005536937039237502437591247433191720839271205401169338715562056142161092442301971421114071735915782689069550648612575214533216260474480125612146075656104800990649855331997076876798573665232465675055473019143208236956996769626858938467534853981209803037352606841552897922451405023966480284637157450227976527207941324765041049399914581334445494793741799416210750923594268446016641881818962740994261088364128454202312529780472519265024307317328958356571333612900159421610032404122952176705435804693767204086975846546713873894997549762185312947578325836967611073684091191371141627287508052790804319606714914562955303086324274473368361883221986414579807244682711258248252572901977191443755317055393842584986386982174723980034669585058962560366434469516751606792761662588801115227935469829885327076578184882076004969902626679939338005756944524901149672566946519310807762075635380949576557905574302930195716657941462091398469045001416594875686970910258635596181871325482657903912142634874423209586857101409825307490751140370971783184627668297556805911401251522344765432851751897744416424500087688012414954395178704094821138770774291762859203136613307034046164892487616756266647960797178698428859226002654926643833879744362981648666722746344664338890710254229746796939835942431677238304974722293005419117028140596613566953863375717433460087534399699979159461333057634259052234386082736818246166812211519194997247901539623392762174075711707724107348097396380983117362318349063826743547708781130981988429408601574425324601692656762588029597988178329909677431596200835590225133035824935835828128399997985628358369693216446667197489994256367112037812643460137025145623693444331973577100293225634814755480500120825930947949922886874097705145777150926079590136293209653177873031299812538475669043222941827498206943811900086049943066990947305276274133362819028485905204231339100991403676082781779636747333731326757113835502764767156848725742825494953639746629784359852517246051225902737070281370987737629148899892634106884462281726455296730181320672621980579557009674892658031936132107590395933927878555298160395002464796434949098532487997058164882205521907658940554025792947716439124790022520121416020303395387632389766983925263767858707107452930481199645471437607823395713177136117194894101736586771367970813395801213021824436162476643305039239724879237317767544015151499203565342897357619259407592948779221936032115532112711644237468879501183920855669552665577937847410564096677777712298053286073573861642512359049397264298410890700910459620215478039732809840131114512957251071198389553416989764608737809773017468205220643912342989976978962439193290122280095247395503645791348261675698927617450230627341196883323457357796389964951982036154918729714474654927867652158501567311940626788154696270870828290935993793219971985835964507273018749145191309144225890556331516838031637213499955486244633468973256510428139438171242657490826156568724872196475025565901131966572265290615711053640440694091916731966792553056853772089825973896066213292276738908139639357320226044274534894927404819497060162082299093277224864116668672897660001404798426841167540285799588626679834607663541775469801933116215225324597073347179637097382591696603342131350294176463601249512319325276853385054126301628979855048060209933442497216561541947310608374275707970851180787394271665344654687200733037316650297055594460685620771687544563733494679281017099539154019647229793416577287305412721624620425461553557007521934260455400240599589635261395741236347385502590164863402431331334752809049268554404776912306829692854089110360992701260239197832803901611603188101463782728577360929145382332623427350358697909805126014807826582744825166680407645004155901025971776715783413735316728055650180226226002773996212280213372515651867626068223833390029786077886305308793801229733997453092819735446203525374903818081066750401078384982566324422542258923221901405011275100228037910876549837274542245754859945370227147931512616534014058367613349762509698975110170426930552061672707856130190279634851169786382910595412431444656309468238929177839608774137735508344508127163857967061109688350647404733173208709932439124487522945398629300897985673783151650477511003050594876327773986408415027417974874414612932077896042712421314092680543552465552769237006482383635842773998572614998518926028727499109418475790511339639669560217622789357122692540724903599709725267210311179440130317264736603294758678296536782642263052616803275610108799308131770180668331794070549987501824579540948427705595041957502383723754613268085213421959098778415582257847420160149433221543282105296703316011452957250715684484246572150078911395957024613427178268922306040485678767106699134857512932808813753396516556504717842799890639023360333242106814136307995749563375538088758295583549986413991056253265089808559961421975218591356253768704130420524675464264666489875770381980931727008484174197102391215265593487272683282548284175533007433866540511855207082070359409888358561955146458045027627025500861015859040880211324234165948970016502595860670843153527870143178220956558284666070935895079174972268216039555410661274030284699875598840787781990554468593356542974415733542697946919114764827120633227807491765458104015726475902063830688481417699660354712898825406605197571994748204545532791282256039958166611903768260127876307734456354300573568392597176941878408850158883226616420655367075459368587987313615908814850579501526043121190316963409059377745772867432114058946229405762178080833742573756152771617022675227858246391564317739847841421211214779111919073474016227936132992804510029955659023085226760925072615286062753843861384840706040396467373634844522058561639783062211268788733216421467138251022044905026328146746610213934897843828207883250449483666550997793659251287548849975518067386553974023450759833540220714448676630383390472383482414804474545604314967986661444969291032126288723579676268169315795135891336049603297367295876103268726236244960198600279085486293148090002256842211553364167539811228576380570356458759324690099498130839897840599945360074589096164867932995291279909977128441668233069799367695669732309582854181825312283402881324532932931506771122609021636258351213013384811316154139058118955178693253156411222934066819947003002589834806997619319493649410396166475776134078977702183012195562426215998923399749770564370598564288629953849993441361705839137735845048386152199201345578289183504599715951199325024022121918406601660571529556450078329393562394387051846891277097435265848061129445305227407265897351499982264944794086103706078697065715550019938736929346152364184234333107681650185584382984987757064339166430481909206245428007257531315759645154569966622574651637532695137855790485982714144710487332219184947817762090776526043366124406734168616924338940500891151018251239404689412900810222517548461968034240196591157234920822458953800224609649531303362604098806479226973340818619845534571997503629043799990119454906432281011576222314076167405274347629646746438106942320539624576483389373610880341899204534961290181592090663319500480346925450919301564115395481128977179326554492841690229558963777088252553818869614577587228288289085943162711598493180701485064412197404333752267351562785643888223808627758328409941287537978477903072151678611169312087892271773722515042076891783728177458769027413844920439586532564711451712782702411847085581231134800810884102639186270996555052971547368534886352865851051534866203950983567507026768465083111839645044373790183678878442803275591276795768309998078035240296042299337903001226928171103481866091467223499974787391162612324023918257138166593418411892762345470248798664798569998691700632992039181466120613884024294064925997849631291934241030174542563047096484478105448039806908641203355115003517059189022630298553087613247383753865083260528389799568260034371912666789674001844304423550404670817128771719495897444390415978977962954479507653105119095434350040165515359060878384792415825360603660731979550081309744433034779496003309909511130985700075393164379802545773010143011183734742236472774136586215463803819254809535759305163232234267807947726176495717648748331866767805247102369038235279949192019081807719665339773889582444066237433771721351648029589552255878165936321252368438409422725156887914045796645772085167153015297373962611703013919639284633807832220987052080387136267335716195178220763697116819182389393858034535080292831288906119001834754097928421690222682854090808756996921944210191791998276116740325150091291204322482024407653871081255003334410024093164832746206785340328213167644947244650343889669956107192394088622072974738492054321917162565948596147741107465633087097695823449074015103293878951511854907023079056477733112778953140965168291008311371486434553532097571370839055765006998899457592500120025372445990249058957504228445254335567324962929053608973122296187189104967541287317564187923428898609646912543919704613459042737883342219083404623652553828125468051100942377550098295875201527920474369790249384058975325251174735774385542081969194664060047544288224894174714452290859547719500478276029489642079495808784451962651652043297530913962653699282807870520722744985259513920333733873052787309442958774600813377199675950570575310249735366728090337290108532107633081093826734880928976299152723195948117011444415042435815785218055129601720778648263412841930824519576961125142123689060205297644750738476306945477987808025590509451166949380931984565905236829570920474131226059925384281778697897538913673991330881642631077592561216255557290705897477646160722294097957404424197276045567906440619814647526127351626550715242258746288823373597319520308562918869283676382534802488981699534031017013757558923877015398865558987783804852951791185173042743499978241980083316165524743982605358788942167381425852695826285530869595294421574113180206569525455611466319738188433474498537678408279713478726135384826200638669657163064889840001560383255294755321543402800932805148625441185053389755903129816025589165896220425833830171367310129659298764597165570523263987021732661685993966721755104222059507896616328939565937730925359576590693755733466327261552297545249727901844926518610225685018488289939671581531458242741015921816256901220986695874044108988347617340034367604212059314688462855471028046674841903804059597326619700903302959711546439551214959391343253267557109770443216540309221079223301854332914598061148946139510920905665608673404770963291064788223016597801823219606725995229164002702446617447319879600037077083099455868014353954402758023936309931790975876116029194726303804295547710272006159050320317562475841030585950735018752128785623520029755801245286174289655704709560143176480387890896514243696292255120996038194269897157606579163593683976935602168135720531790934273224887321686288824181966440457495039433837542234819282429112146157422645378468945580128015450495075903439859416055477611452148636901742047406920167382256084659336825945067638352262246975746518085195897841635715062237195074480333634436977752367350754046463582016645739159615516769410973127208422332793801554474328550905074493765345491792877886749077153106041105508900013962463442207788424587339652158684982329906197176422059369083939903817756853360121011042336718526382750497377879764552202553371501342734678700587201265353924678184843153541353937458302711227037556381167391422156646678206018167958908168141692833670130786489186929008907785273866835000415764899204626253415466335038493714544235321887037209296745959533449936761862351997477870558045361943867524854772375388655769240912486920911205709354925674152197609139617398674058054274392281347717387722866907634161209225949361728214906711401537954466813528629706663381992962226022824882553248931112141365241083094349324048451158779418511391869982302177155861760546582995245551718560133174697953910892613012955385279780571916807622926320430228782656686737212585150429592776692022482990564056961304799790104075914797227796374627163421616749449980713619720230731216508452643917689761223459182844673913629736770155992178754194764484949192112211610593852601890876556119954611606832318300099705901560087072830539782394245616969866368619551417341476187545361576151004989753286683408095978514480946300393901624709010834787601460505421643630983756873558955524372961421287322204686079191016072594016259362679448729709039898200159765133994940072439856501590551857921082186629531348039738361891710194110666654413876433992992378609008040485755436245146401571569070061803753402386921782895287436801009092369666562486446135772715280930564522420042464232441063214268511140315509871342746112900510313782397267448886600626702321313756539053083590714309073395139008096880711341084103403748230756462170532973721596399616569994134260230802789956964458587913100509546599634438788608750085964256148133473653015314263754227295011261499084732928408049077567258223651976705156880116697577559211186183713823171355566508102969391974850500869233248179652770999405434045970446610400837538662626423506299996520546306498146183444295531313113838079250818853820557886495575031438109947781998846605505638659766339537171004717089302720143001645113530121267953417694210071099653660345065518833759260435568350854259804591558054218815367208968423988843266176997976473659463123611537369475992174840123627887775693711769075979292791819561286562651524375940672874595523086699973881351127162806796452617879250158709069131660864625838614667948717161404896524982374986867636416155093047703645315125986313153773530825839807606094502409155340926313246061372542615835111471422919393814843545375669131915810704897698713382570286022328054694404212558750473701832314871628880962606856138112939099981739621115303669025631206556215844719604657873699517847807887801803393348477008121218576108382215739215961435913892931527867363141424774281410654015012157938997114437164111789117561926097894756398542212177377848908228569685350647219936470183203708898047659142421091603783932216516529454724453989541421203438253401511438375854939924432165941182486982033168152021380940940698164102941310823231375872729744965945864049844718206197581118056372378549624170973796234194532007689611018794051938238256363870565413708169624557255705208126755391060528912104174097780607807775870770102404020612987350421889442603522533484693765352488506918151544163999877174377361823661386380332062458388602216014054879167770483158431226989038381744734071793643898541790553999485664530037606811219083007580190854559051019094610662031637953008412123251985190391239346547412498186365632197566370782049162762123130777710718351963712236402071333557773698864860448710674974698148536205587535969176496116618707373010431875370670434268104287118473628605225436994235045371906391076420146172429895536417057234496724924596963158206332918699487320925583838493403688374711899397293215654844158279452700814329845606419984952500251417383268361976504746287398480121219754827049059819950744990762173242197448695897036797139262882829868162706121245656629739015199666421724372237444313866608766385023309536420227821493586588496419902613364683540468465714394011322659258240597898989658144972948743056428073302064732718675892212870220868378866162518826463434525067275753539010069125485437613297566226078340920575975312431939805153249459866003277741226874037126804852023053221469266915981671717029335633922420043666090030387831734917350715950847760718124027283825923837086231523216796725618507393945490332068484044732499534959413246223887396844927295668671965576565085762387108527214678685366617571387016537658790313191522485332166032845297792991143677865973903018296905474089524202336542542438937409755260138461829451725194002126799944155380016487625953398641359923849038337170052699918218237117992268907183096769027895305716064435981794812773150158923872224457193841824813705050463320983995786695642413980434665309713657053180831654048612193092924981659028995061071599556067530696982791001049039380847325645021097802446840190242642088708968664565162452518385605157450905971626080751306622656512866953522295601778835832875284017884102088203072293598322803248636693922326147733456660481105523661230206183057515022028033135826293536870098193569646515110752665470141331546475976431387138530432756177539954786005403960708350874264366608515394081127209800892421198923210923878012231843301360456842177049561284890985290537834426804820779178490845527483489271147617477167519718876236487841124588099240231863043054178807070614237711238244677680083770507931244446052369052619166224471986447704782705881472041788213243986671275493190857103685058007770535674905761437751091426270067275550681996731788735330269286578739365476984880821836936021223372905083368568498076181151958559158403617585851424285025729519358367400163135140962129088686993451716003305325122728805262608805302250391511170018711904544082924415110432897590053562494472929293588152232914975369353131135256255437984722639724960785866042928477023102343723700369287614081133011504137709815982242577912525169327177978155177526566582291750108741196951370940136052079505912581737187381332306279548263323205426203441266319861637567755871954015005926910168626440883258217065182661986824358123756492290210889748132296030720056427392670937380018304729540125452203138100881171705772624408620986983705112666044061068609253888423106387008985008745150341861414414430163412894571075988221756905677456253643308325790967490497255575096721601690986468413500996593850507050225022732310012440339212137185521819040825558080549231113510648525620911096334195927996021088862626300617249655980165089134572717880119246465436237411404187852755280064588136311758366313029787030672116884652258146058032644152998698410229420587771572270164864424935975607637406413564141940856458270718328311596907628873777903391080022320981881606393563131605861691153325848903480717186435220009188075945323253035853109968695444671701982698907379415593953484523886111427744355470935128869784939426933084708303419570357170049138698311182220077015038597751181429326833510819113357206664410501075930137060547415708898887373255083053426862359070764204966981434321713392720266292756958606745155680915824982743059275933689539614119893726755560132302899470589903076784501406685701889155913272493433755441263261114022726138374203027808112384291412583096666730144555671939634839926972265186381940327111528143945467731618942406527684986620132071423549826146838478686411441605510600633825650550566670743709082499172169405246986079297235525995178238882874068315845794281199228847875072135104882496902669951307444006607062085730866194061411173996454881108100889206918532256305225196810605410154229228049489308082085410406364840260608537603540359421439536240503262814021925087111736816412334212197879766036602704062086830234320269910866590216102474215765468310043275903310807700585422692330229451520058236433822203254639628320649109128834947706552523641591994307923473626635920957048066485129927587367470271734337279317200628535813963333725374521558294887328895382880906366481280105322638678902525250528013350856240665708532357112698323358415043839768530856074136523378681361713324830425851883388961855177423487888838381166988952047814926620531235910102085788647175662423788366157730607004364495010729997390120029126793676077353544720794178345167010384707506025970649299789853037716199388728992985122159514786368646481262728812716142767184222198562499777387557375047942983818532153350135794529252110154854302863830425129827281640403440810314613568739216589848081231435095661454316810939700287198924864303075964303258426165643843438960143553348754591053008183602962898314469005999321465860076058656111439169108439404935866970869115836710357552214080916315127079411092160912798496993296912437311920136590876015263384818289598106994022286092407037201284251221000696845019383952888782926889812764286302835643929041846972091831239951107347857514424733741443329801379003695605927970802850833460563219596220960510539980089488894935281575423373650896814087610018277763611607219939304767436293726434548880544801043910684949788678270728199789986988331287077152295299066594364708016746446771100960339831654516117425871785640510796295816253806248828210985300495446875683476747852166853632428717933590708667781340727724180800084714723765411065539849469953206701400050946674186864252762302578034086260456900561872234629510918422034909065316518604849195989276365374734474259820237836420394099390126872502201798624288784153849699854997894865146577461967339882288869286549380782432293742541722508545087461714000899629170893959777298960234167627316547434485601453825072541029524308354957215887049824731663267706080148558621734634474080547271980463292716298187998987742490535219704994542529743660262760776423243245351487991357285485281182998971390006752128291662288826327671322589164215185633522752750424454733256782945616317948548332049337443363049799723161726934001854311149283289688052848662019768531617511374991129573915497378582628879367053345593104393907810464886717100416528616335730519860601679330717728293657349970974193796404447206076080054370445618029486174450835025352016322771650387905661882558897178417380377204140802153243587614089766398101355575895690666427873100644820032077815786161031788927239648894655185920037175429707261228851952372586900494952856226380013223176278696876836072216116989690616727947466319467621042079643618577558736723760475167460701117374315483271970538445466097171492868211059751331266309015182788751492982907532172248640402884539980505485745162272280155175346696697250061062737162323151835292881829336089245980500484808045853210201481093333678906152331363695832072347956180534900234213811583050196228745276215149223252359854304034892434011185739949082588676085256672733274492450371210186587119564060147173986349844964397897199126920279976067646842035819435542629037881306646886481083090153411766547207575695769926029740271239982451563197230626608995728836661672235219635773295469093592338327572757923259018462433511835712743256872605444500880300205508482849700231726164580575911151445291274432640595407711192640474489338235838779602143846437095641011954928229698832810420620678120975431856610017136075074629569592057104727613270738922448796390143583508713478652769868475368347083936388300768837891267245492719833134067013579512333146614778437075055105702504716759536238258232729624310062254837325016275357582675542351848914892228550774143828609491808891870050571752889757005293404587934986958363958887128974855574206540175355336168834779636496241662860925045409758535799434014932306701162531364090752392633749675507119713700605909330020483370612837484096638190351049342436656825591548390890373875492340061233893539814912374350525124173021584788034480892599703566174379251922600477782060967081436891809829531758071818840128242965787918206031500973820690231535411127671523906865971380166209077572972197141899028063273437373368238331763017869143488199209666244844639110858493441304878910938010555414649664470531359342356937881844405388255890711452514327919288174368636091931395615936937529985500836222085813789549868303754168195565571297213344752692078017069361297026320029362855728224020394140477510359932948211943233592300112844795160626649005267668527802500402287377564039284007543123923959805528398210925059039548630744454800023814002658810114533853627177064061312578895133658457549403627028450940177898904038233958489070186904455876305841713259317377456313766156633435725837102408433390067119779526243151151500512226618156939157600771484685301017818184003684589000429520861977076543451290722233266479884767272034353721827392422081350458766273916894826631066481525908861371426326451793891180086360248534248056102316784471365666441246162343213939652194124252616037608242948446934336872403750367071249908779060848425591244656966683221728049977056952468747375075860479096771346604099580188406314055532077064858363282819411709693589937408616432462555041120777025076741784629424967037382036756784041378710068091294560443196499212072687451183004573347768243280627667123073763298557957147701018440638478964210151842469378488657163755620919515851747232587476997776630824728307005357959346843427380753045373889628299782384523005828325797729949399457383839333840270520917998497471343509794876191886283689543474038517882390851608133542929883900795761965996952582809157392462823281393932169676220174382927544965968988864700017945132196377186041350414181571581811181277664172777858542356514664519713040553275861573940702520042455634546148593456843864335841819163534860092785087423605053853268534672410026356203216532402250512054823387553577406195891009217748918811319951011308100510219947120966811502026182523524222672790631090735532424565030784314266635903670521726742619148553308041711215243106293194453495014006300536772383674232432470577327602807906307084380689803877458206038875870662709961494291647778877701830744909234723962122267258246084833424345515406780080401071377207203185621350313582759482860943018977683858624658840508283172042585598954773211828498180286617028860584158300930173126847866982581627480735015067271601457734703779759365710172029684159692069235824403824192182928904947717179465434997136030208984617328374177402159033983238141847376727222658611100019131934218231721988434398647259128817177256053346034003960595487192138366077356554976296774126441684020233722866120838442383514467957771564406999292968228136950155844723589622650364058172165778764780526876509762612172219573242075128323899233664513363461548146089894601623961184511425937575255113107128507913806471456199962100386701469202274639794919229520169635611279285924693071934002972960513842464758845160899307051319759630531580835125589107608365699433357943721205332109474369031401480108621588012281546765081603549424305380760594572246589284283319116733915247201839058577479320419504520795282041998064403671701516782902645829765293307721270527382253694463437615624928092081147844761302649351976570919456432374355713562887621878401231836616466642486173218256786214122597905392654313168599174982477052144438927030379907122256319284766296537813032834500973569694707072670109210683223772522189233866531620151916052177626741006917617096111862125507672479527039472231672326355528981234134290067009062860813882007753917861605598000013594405928673938474169859431321539554229663251389305043514065279252794116809405227901486669386296703439520096733012742955971120454205810978447953831598532529045382884808645270337199659608860674513125230126900413177662033382229185630792543941095547773516812721227338666096866736857657733015042361639561017807208207496026591939413001837275759468089238529393324416616359291735227883510116392598182150722010331368979093940939772258498525491402430183640481518758566766588022990768877056616853523237354157618979453590337284177407873688212178298732241152788457140971143189291320599617641913054974052512925465570887973177704041828279691933518918509189419309450126057598411013178234576587839961053593646349607818568104801858290413450583383151456848551881301826488918498320306988088640865745548141730648070496734348833770687642551586237592186796073734801292131659487314655583313057448958801900850855045869667813719579060537031298163711590271905773219093282355753633703063977427056222129146639972083851728826871383764659264468992809420865420229014460926939915134662919754018677645442013267065147037762515907526745842739136755681353823088146436280917206409529006839853049445773965294714624507637855328492525032503785740113527199104398346941796936800341474546744184385522711040540150586498222908270638935068188920910116095869575690520944993534516510177505836829329689628257369147790467837092175140414125613237346362306551203559129987910490210175515427679075594843537910893260437702035728444009975677652242604811001724136229940723365720483087264241102324327868546151345144365924262416442516813097201775999773856104879727239303687891916221383462839947195607646500263238447793930568999497770905784335909535114880604347761099945762674104313046103369271001621842591938400748160265560513048226364605729115559934134513833554532908476441303952101519686651681530289055956881792644969784591096396101182559181359078730064086853923337949913085537489398471469966833568942357143544624530618803886795389266200555419112169486461387266850636457894143125350406475050159474614190739491675159087273764583929775605608572223500792134684694725445209229888284536897117875314159904716419219271773616747368972514562551708347635932185619639351625944601148942896230533243484443792299420189804554893654820451568310319661310752951051514040704854984317583593156064522759692427249733515938536359941318720778300711406671829787592982620521697742922123035890048248159142215768080284687078878908085687035455936741902149631010623502432382493237371844077896780950249554085418827783273747378310358650915322441305625531767676268303466681933794848319174823763480627841995870756381827612218788717636729629089826665047240090666380469288228778826973623678623880905561863973661270665593134531417041804099771993365139180322952518428126153855949958261082028179955299682837283306981762231037032461025664212234840823798209318648667572854965681829271902006816096898729604353215243088013014312030440208272024304967258505701895374394921120412616740248017820865030861916319617450644079573897296189135573593369478172021985781584523934933633173702239359940289079731399974509645625937313421537783476032346107754384423893149664880100694582323525788092608026197107627627424339252677856609090805848306927147097881324080887370800228084466613768535986399426927679713355713462734263661942418794203324068838326687857325172906457605809391647616097094539470127392481290682691155080341293216211926571827797795530989676045479534700842070250137470437745831955849980300204388479545457740418798629564252218932817077888038911497857692989606172447320269370773165363052069476275668168424840387348846439695115885242444270819496598338857965212100843234470035699518491371267067418121950671113710069987818680489358072753373499768297565117896702196102392665429723959944658450605042472819326705735591432608879682207276441405568397556305454621749598560580780660297141134331276345504653467009173029601842433995142547209913357654051740994886042331927589193722537808977048516917916291802836638334601739496846594414450562883365086463141275069375599830288411323543487700913901850007742635982841672784522363176828542000606599738024501289330829555656807823766356027495013940704610657498415602101652818557335875833303638937786690502020676285702935216894190307598541919854522746390009603910332114989275392887794502026962940777408933196750103883700775313946529933815437041549804145337960870023097802126235191614255107618916273329514092929073551013577299090969708605027437373931204685824587803487203467444953898077522797459785102096944221799102841637180242975252056036576905357545241434052294593906996502610843068180284582119481456823154040866101035691094385423395610740337125732818096366635849257051798078842105222967687190510915960931206645201850931696568891935261663222092834731083129140379782332817407974272319557170787036061294718912955807828825456902011028460519698913736105386934497436851275117693018057396808805513306543387584205027843278187128437909433707869559570184840580547608872658302271644417136365342043210276820201197548711523054368320300018083464750672311494280115211526858314571930169831498246509003183453003784661460616585133184828076902602811283243105108693678975752163546994359722038178213214371389767221230488120412876557015308219947566252034660386001929076828544534164425876079107863149327726507837625741421511170462751850834036558609027356039118543247264132836799418720088768954310229344637460442665569540075326256369916543612628490657573629540816886678688906043824394794367293866552573091151288102327170300747615724129766042022354964325597028496687285776352023165951276438580475175053624361317462609370263929631778607406361614069952118576105303274905328235392191548809209493855465424485310691099063240660549000697778515039794448585592593521424958387563808034702149020436033952460024154064303534009052758507966632282572413917308637666238929144431159276381883467462421593483752310269529078295001191265462582310939230145458474882049284376860582209790399601913864920484614393527873263528835793778131756783457209605103515043956158051738588411187131498894419328892419295298438803895377415151456898255429994005755666818711609574575524891262985028192403572373397755710816242269041845226651096744152840467737830559096461069626168510774016522374874369939172505514936624478759379552140969447702527994594075819871347797590233166049195687835368439297857097347652041353280560777694025153826570069013512469734474066592787648602546516454194369636616045941808416759599959613649522973513628137287431743840635551578031436856946772661745253262761311258678960745044801163045507760889668290241428959060184424974363172804555751593368564887880030072301784149705403257978810112721359364001896830374429285883386909506433961294948337165636082927168630902459279813051636575782584505529734150594465697822372732406910751632578534216296368942066076834330279509136993692524052178447657520558249267111439486273444565237278383713582003186907483197980997675327342009161237393998532742785432614048628480795010883684591965624721524969640924206591154410417583690245263081737943157386441675666068816394094343080020368247225475983963380974675601189303542693682482324590802773011139147711512230541372216083591860681090830496094937503441029348414665610434117081349702502099777995226823418402766109507529549708204739654790590452901587345518921057350025640927909193349374930279708394435592472260347283199555014595019856043096339587939155334003658694165039280592041618639293021369673711904687062492704254779031805822723927175077126735757419792664138262513048808245554582705015896738489381688352401696537145602029949324521082128625365440757646420637232170286439239135738424093621178168144010498867295138494612886869832094356653117793664720833588940425571217421439459546359570123480025839189036733811982525362353068657266837015547214767831836931357440757451304831790215793314290356121524311798240464124696627169927013185848335071002626257698193694300260050479243089358678545639433669411504574066510473462278637095052136390083573179748995118458282766257828337741191872874816295506961147280377673257212208353125800672702377751932577291399521924283147735634022871872190606858440319772310272450716291457162656898079499141587952491144103673177600631181432096267175894142765413225855337177584212558408365074592144055569810635037975590728501554112028041290494643684873677046957373068929692938691327656472397886023953658465383606078306874079110788485203691038484976766064423585139401155348306579766021264756050644238446964936420112186838992876762769184071445769370180762594229597143241636227332242379795667648373909135594603940475868753930597018213147853377367025471260616572709350281848316243395673514282472775245887101671242920777615092433935972489863699102447568743687771329303054672354920477852498278441434226607259947653222579007441161397681678698647812346840604929413156405562608089813247913528697200712292099982092204080160889678197246536322998314297849543152174515236925044495382474820230197560442332801892841779397795142077609052689220261778525779395314421271077037492564618408317601036635139895608697508184861255212585462785882192335506657988318916661090291154614781374335349311947470731688543723288727331294867030917057849249264774011554757267557768494131026161802580909600108694582744263791874686750688568604998475973225099851740092790897306227433678594094444678501002976716197713917637192051703475615096919208934101486834720979160077546469540129990039266377990480875681476723159152948339466505932255892412710151687670264232714360017851048464239053143715299570077548801611390963020451233656062157333580459998059900205840042970262632464805611685486628594833005638923070667707631912737157894567960730432970150340386101011652766074300885463492940681817590183733034881673197351939747441084366113942781924701409180914880979673270319274278767050112766461701571448793876300105548421387696609888442199557919207270790381269471640296350612423607660420103358015906409535010245472237945618797929955149086513957044615810837771375220073431877860898714373512598198240960291384259605518575692010223867416799334637625864314916971719098548655924763500986166368575477356682418562940608985857710443087925424909004211158018213691704034677730098557213501374581889061791865054275755717684451540868062197670023253462320411422804673899340413672890984780434202133389812901887303312020980081334620387319926803798748676542132239842291944588800553447071694023911858671290249018022039728236833669210134692383934546541426941064489573236807805612602292852034544809223431722652952735743669549784264286701526118687422981166039358270512876088489704852679206063136352794958610567537577966885573073327478343346417306354945136670160346036301484947119497600449858312926382387460471005255799900907893697504758823754145425867984101557602419979635547444426343262445977444328286217127631696230249972447030975215622812861804749800117556363857010397230068979886676835292536531707046467055769534211265733064706269634433230401753757124661201286194079822203753886521231581274607569298089487828150392444531205780755460308059534350137270755184897344676084032402286275287975944446374942145240991723854696346491909682570201515859766694754340843531913180685023417480936399973471125416565524505292067866496300403260034371803547099025091348011583886208115115595731225966451027377650132089494983300242409904531170990087211099997633213594374671776885985443896047788977214899099148012397659196591482311938839587451437738819689260688954336880882608064375701535729925303433616975017997195504082187721242443955261896061064502237214094843520424059313444492509877137411115118258175924360440580254823570635447002207200021768259979348462806767700263435184730014966476108107840219771580208221724216746754687289503659370712154712329272622781280657292436423667763146596551047343200994409116560399010483278441751805069040339125163481458943983708356520485406454062452072362088786560468656062740151827152645275559597165556719562057291709093050043678641995015391196949609968512238534402141380924519767615970319994802452670054736569575498371416931655226790735603126850320635607442696651554552052678400279644938994719718825478219307453696248454536594712656795217969150960301931450562228481022451580252509057370812984494387263865384866554603634665411643410924388382797800574013180283463646999846787445053093066964712615394966153777181795804007405628746628734783926270262412537517244268065496849545816269903734333685772332844571062177485420213469351914821871987944491577049090154007591204448622467815533055207460396030191520624151181374335006439032215416850937007767152517446059484839883643179351389620378775269378523824233210092888658146959439388989692788464738958945561136863724975185877445947252897774914634751940977441611215578823655298022008546080013403115147129587706202159015859876799872549564346731884606270901785586571583016793944644362760831678537599225031510035972731750297824092656792996098437903208268108753889139008797356244528750086205706941184902740603114928640580320396359802588060014443988369988198461242410650286263902225728871151686322215372264736342916158416431327415504772066575153981945439287638549259157518393117412173300537976901603701754353399663235800064711275360096767586870545886766886865723586514299490860523057454746209788367427382049283465606729272793636116078286846014394328034211145036654883139033151600100376622772869294170399013730035083902260349484276350918371971798709600226490053949307147143425972935918181639085685918430327119212783479061600293892826999851609048017388992043371904235750862887176943681268450196489018105284645010079782384855407305088528630781595722287733849821876131530799628549583005063584032512045829612627025362619589669590168282646151017295662142448697254825461090870989112618419929943014306837963029879548628152306085021749318587365508146087007029425479601886496186067128680110152031230437797096584641250644831907613458742441176817237645224286454536861228812555348493503380527190085735487751236805793428575795831300289767827884868556922922229680456729626454367251469734035594219592667180665742034711581763701727479302289504423195743603799179783830380373662038801644901587497454199506760929128416092698109755457251500022227181949135807717082559051549389449683417341640312492336139517450353087389635983862378151824383255576673908331117714971555409532122987004219547961962439131609062300003339598478011065783960036781011273311870122391318941709757580744525855820316203081322262046247621124977759235325912088686936489542520123158310011491726676508961689022033673107791085712137411128505593104225020694085525571905981264098051404490850723826210410364078246044134729633763898872924048844575317568863482217507124654303692779207231828861829145727525536537827675486952706835639937178530085026786678647706895063774693371039454363710945263701778348193673990106559666811566249138397805176539634598110334673695590402580049272023559095882872372603272932436664845106492790058403397021796655627697953520516622813110620811517773662425075665425423912580342706462519746984471727066973008306825208092649392794711120071405910367257705204620470185116199227285103351334716649885173946240945969792068062297331816796074608421666362354698043295091000452116050713835435550039703693323795778562493944258661917331879020688415090445858437960437797671259232861378601866834873007555598834280499112992436260645948534275627732336002188863371177194837744339904009650238505126980301456670474890666160763398286274158022308672214728852643858112563296683868981715838796956555905869959808385435283995216192748043634422514398859320083667588704350167901845002587886885452760805149656995905759238401566201474579070049380601674998761687058004812230431294997871543054469168695949707458127238207768117801395044054895532697048865234487138171595676626381484349327521939908565323126189934245628266377889065584354996787745167394820504862143706142474833359051519830169709940380111734553854524057839963773443695676986791378374089754263752183125737499924067549708873452906611837441855396659982353746563371885814191127240336852241123428012079791067134773408990583007837483487295969525423882483078430622820526893094486754163389831880458978480869001097791011815974692104976553700388324652281816983712634810076208120318444650882899714596131944835273276365100560564089439947192715294878495635006428613464530203229186721796259532795581221304903719027459763148476463085175082546247408637409547050181548926096911469923673029157417317714259920491935849830563498565425707050538565517923393471298909283216092190495113774474519964076791170204976439553491115196471412296922475607750132822577256465480374429749899140377734547818343730420922589775222156837700655810166321083906352139112092698464233177716241924894903865838504299786636125689137789265264545220551799503723736288494103651309766778377494509775284998871609505343711011357470300964946431903148826141419618989011180363983888314058251406376705982841521905407943254420687313467607467406698676336556045516340664744096005307360818311852922156404927308682021910443303478239671411908347673503342720706363976354513279355019235331622643079660045671823913733650034817722620245278288140046143297295955634806703114790434475628834368812462215923695508794122156596348086336848264917432794677828111960733673419248636993137960832560709410288487635727116145127503538970226512613694681638197507124503309663276794311501222040519167087305418553196210886944250358388711053863501751500215765556318266946292708451982550529751917699945173864722359107395758966950731965211696339609640520752156064045206824255607877864807469659113271398029191829973135316200179082271811277453403661236845535794626492991104982203067204827763334216722971031265311045663247125009528549916729364161189051209973915327028405255761683847782867565838540111848414704990458443401773232868711225297819978050679746942238919903217648221821742953096665093182397051032290824650768449394399406623763458161606070348316647736971390108480252858252351332246283065152745881430900106234372669115005773701783217914179340616356785953563936353238508040607216515220065616446772597638389582939450332435237911055616984613593533961730031256475251042110811229838005738985262698916873785790666522857763816427320833926670358003887714710525374917592411605449838329564953848500523407415239431826485103065686237420448689211722591955318208384102764579665460925042436758827760904452164913070806052588159481340799913465637690514107112970480437369290780280610564932143977072378885611202521528337095720115961388268468545881131789213758887260182833134274420267521358248693165331361089466805898846285121688363983853812246436782630283192995554347726041820877097650408491995460444641359833012305485855116820507267446121621834462517243669714201829601361390733966679484431315318354298678269257900142945025476187182529823970718329747659627849633510639218038156134800008054515672692837402845767555063711380764383231987133877908852519909264442441019508644651978104481124999714562365959412067601651620874486283469349164343202637643202863625746281552124592972834289191300237277618461276408567888858157216172372782525688675029850524795581691908088988404112016632906230673710959353899624358911251759515450586090678195118667989877350862900060578376153197944716373679090475243750910841543795971324685821602330658388020757618784545692645135508827801824452065042517050748174324202629238762979016735440667985561042109342001990201214612227259647496480017342712732266774410985684042214098192338236257163633846870658164583318424966733321326928039472677784770162792487458394883914995822633181062187918216075563905696015526859631179405832985349029061430338754284882608849579448468911033843757567770689890852397136392813213571736793380884392135577986385985110259290195499992724244255269984899577642807921331431067179842777978896856888618751042356209265177312451244768677285881881632936382211408275705147826629161027175136101855037127447897217913785458392473797885577738253323897440333390597917207323716965379042445764190459150205203898300795727927252418799911539374307110176575463647783313520031666229854697892705216335456636495849177696052016144290639869268300242162869358036638103338507769260249768464827251612248640715059333431904013440611466441772942807785978358459789311004007585946144587128547924400498563998258909134861515516400205562293759860084541545614955275654100762277171259304683724277718602342724734024776412799861112370912897168043607763530705706268821325801386906970938628049960380394027617513972943250893939486277931089608211003094801778231985003331088363217878587723075990587300606131645665713746920197311295818504807099417937221947285264541984974125264573092238401974748582244856594553417531956757595235644449077933412069308533486167356170789677572308699543526707459056179656626449256679768758911087618419207166420718218229789491114323416898180450107856352911469175514408943770075398498348193399321023444187879311175898251103473719784666865011635599819584702629782490332954187030400012051008180667652301635486738516291261906369979307781566665900855230587117655182266455182209969564104994743905801593958976864772624197769542528584720668113362427948668789829302813050203405113012443402207278297294258594256474126370933715814701333995712969962997246512935621202944835777066417058400776199698563688052182703511230245700849759349566152190713799247457003354138946960826068305120292944254113861593960037844463391971191941163203741031665871497006256820279712259353767691555760838680143065619333579069534749036906130981063320995408313780350454197339010558637327968720678930357113081504021346953140929810009128215043926539749066324718472201671289058326079726355477078507075366055734207169065086781293846711515519371945627028032417025000725429255939085371715860883954388520825995993599981297502196713091469784065845810042473087295367041022326904226952466727543685980583411011678015691444532782210913756768984043873176260761128395193257029691422233133238561455376914957146885370597146557440530851579286098347598523148840509796348335919252372521831494060925646225225421836294321595210487418662706377351068013542170864898787333509201253483505114950767439493191069614603679068000007697931054635791820641598140849928597306185940719617089750348394090396326916992320277952291833938570486188797836097566470521764814749376899482407387823914749546860859736683417581792788088428196765583566307438890345302245486161852189896315161517926246464674358300274790465747029605090537933565882748986795125902326175789751802000178091613843457932657066085051140905404262529191135173299122185965734120256732585141828458536090805382299275304438288861461351478086935784486808503538323207800212538863474419253294159597636321936862433762534168696985532502794358073952944917989354022355046251293511629102386809832123851523941219071592928626407583263788660084573837315881913347265806457732053608887404472645982311265207857157678165127905475418278865750358393532900566681724947377276074898527938446501941455276756920013308244331506774667521534569763513320583901483985822286229130373551718297822143045692861407354462229139170180258824567121903501191760791757502687850773445324060118078420504079490953907151662525440316684131444918662964793062461951538381829136556187919672820700818869988175671009154399771749802423476955543116879238684351607422667965956062562336678576727625815618418912091172793458719836529319286526279694804443001188383483035681510215994298641420168693072261686395238377460566212327217194966722076902734116865386870760081910447755255358454186907214768370573898574784788294026525852930065708900622029294707129041805211225995770371641188845555182342554949172140070054073394661755661053020939907111941722637736488567853675794222819184581233057183947766125774483681341736350089737217077075997342257302872776395558683947578511046081469865268147763969047789575869996239109093252634689770899063004720254766971808911990278473721055543613039388219093036501573519790920015746421529959948802417496482068453615097937375992598842177460784995163100963314693573592002867685360024986259540648867288302000087213949967356872182330380748693654429626546784944722046547103196662185642750941622000547527533992723686801789055529139688324169459475157199549226179814436475288484180069982577033624672834553162021645458246174344387996755244668277881175934905242585252205884648572825360439628825782293786185043046633674564384701325973839464442493205126759648914240818542682554208285769977810694187304356338442270222507597129380327642110168337395596635716241992276458299853669297400643200703282925145762353069367410619096861942590961716534003203078011092189092450506974519767009201408898336528326628090039889999124019433416093471522349065346353107223684287334452462509122232191626135288375261539958848319195652159212243268138484858676140435229237336559725071374174344562272446660887741767087821095310550610763487005485629360896071160404254970054820585154262103991968763620146497810241556272380180310618178995746015248636120870102229147332691854865223391549203724184366658578237676377272998975103858616977203061431983389796134212643496538595153949380360668290762008739563786587380125860299852575332324124416119566601402595789739549139196409549467764305620555738476993730661873886510692576388012626050173773067328986570172865637166955223402011950980796408608556599059447554884732283942357756706545545100937479817735743908218822148454653618403361293391695136264742759230956323457535326081674221892848545773587881477954140451563643704430525209257962849785575884589155899983414188528217989900630281242148192359165799253817592193442485550374135220112159064854427565976870121039710315380841606266778674147093095391669353651996953393968894114822273133485461184067938277562393924805856547633334825050967942574627054605405118266641371051195258517356072518497574501385535760304627797422337382498854155824242008935850177364924654001733900768546260737016884348938355168679685172103720632952225310100981086195869617992948863770495102356226120972117278396309986408872242264102670125220825634021404710434670675392083273399110031106169115829278752636241942954489454828122471773226745070331191253794417216902223526958059998640697311796639818712430336629331707417106096978242185650397197709177172003462472836947680151146558882030549824757773041388978527572447178778781830411159911807322438424406962602987876621386292980252265849527765245669912329096208653472543826396742022037579978605240982568636667137755617452152944390338291342838584696371861484794952455637007665406059821842816903637858627539631445565797078368805020016007543975650089944864321786975435784897505874366298076354754794424430027042129199190918861798943098567115375005708167090186778285427232440612575995399599052123012646963299197404318167462392618501630220951156427781404906879705440882903926775145820457807066332584006289216810101312915930250728781725721564164900313809420373740883326664322458581691888303584787578612859909678775657215661102113660607992985171010649922170373289186439385211957620271546449869385236982923329654954004755532722799103510646365254044247200484301935750424691388703285784446346486504010591507249909385245133863001961440670048891962118765333207304818395636792530008570551141401822743489609320145426416929558168766009295305669593872943772484046550874710811285519094695608186064496324522522769108875650436832607393670782970574656984261746454683254942638445790025844531193789884112746761378018260179807594580607444427146583690779151523012702987300053202162353915016862507682214084880572571150529896429713548352778154897949437763540248342923038656931803567020040928165035728815420258809753614051903347438802853708138058897622272792045897479903574289108657376190734972057011719058424467055176328163896147772905452959998976263335757429893754277824851297739349274093706483779914009356873789038316215987448952617823460757976579787324593224847692211703772845757262239880911301533887611463177494319189832280431578348594921071922632781749919647828336324576653741392639130717786340077126867612850275331070957719559955032461798010711966376617020992959828416283664864620759165460095321816212926741049706457201953805656330517184277586427405924674858593196377189472428614889236163605356706667717801945273185997621541666128393908093199718854610195273631387243912784149580264484431019504327348741524185718201784701098143237919461468740206092197013767456659840621433839617657730593422803982323250230153231172637371015517247651199996625384807698533020023080154238186729103464662288748953066285099289169795331691001357664626844943317271905552551314526733899412160391681086201553270934127718265074195173929801259190542209170556381032171555381289812159993811130963058843282264544224576427262490231212399533775198504511800986149682578613119313096917908280849247237075826595487480675918056760637650062554363777686661514961125857862715216777418403263200822635956084703931831729519459722784215488799116728333764429333931595885832301572336420349064316672810494733465979541035662247618099273831328385154409343094321496541610690793607735411591234535201838257117793941433878622905270350109588831814621173465262536344809605614030424526794209566500467738486530018985789543439389417708334915953448161978346794592371765540732394720245442948829995212596930179558573423562225418107729334456092261052963702983751755780342287389091860249848420457332585253022074106859220653952500080657067790907506573781371801771659733198367667323867702528302399296485227472672291394447843149985631740638411144787959031429275618293350730231371506317357895530164611661080952774875983362328504157943653950320358812133749725691374932511776963099252437415432565021630240258146450370077708190677115156028893688053116823569254339302392207052163949229568771861889894483939811254181205088362352322909046218264585825744743672185529849429791521863991615774488987293833490391300279424858852814090048501276341210087729046963652353635646311730157043800883834511877115827491451816151218376029186426002234165018252711321780310984529859635799937881023134561270489621671224203819080542880606271697612109754128130482491433162825662136455694423260689158438231547514319059798495625698434939521145098555025330480078933158024120511588209844936788461537132857114875381540589933383044630660705694460481873980647475726986479890947662654100125004011917163998080641278907991086384915540347165591419280828800238717288867999220034601064367843369279277607168914510012866275689679823304942419146168543087656010437059468888730408145136617934125180612883860368689282288161871753835060379720265667018425961711915726079627032984947129122610646248365166239831968367948416957726202912962880272373276605818507143705968492530761371485834344874914040238370243681468752759345301378402515565739475117724674804811194142720338428263476461154760139286797350968692785301919713195573779177606017951436614029650479645954728625118011845936412438362420594538916489074958738343303808664876289070918132776029170640752115978769866426209911829923263791880316106190074938395381760575224664072244947665690216401258999289423542832880816366589611528897198343003788009629902666784945023154609694880799322890154752669885818421104627167597583820616247787450517619052979474167646733431627174690857627661280207014573451259849954691549274723718178594652997119078055825279053760381832828218034763704500269331992237870790746660305180279372797554647488542882908476160943217258236489063494417809093146824692242607780794731533164394081264832299690410620675577547153051472266680927040481626856664792238429981938291562845918841247856224940468067287502858341082925566570562187066361475210354354673148773203822252889224854631112641734369988484964832085854859141232454570134568327667908085401158740341018770497838339507446182464889756767334688804889362323427712966778264302739560694222994949565692819810342372804614728399549170947531572172640529390192084066562704552648679291083183960529692912955256637665398742249792678950348937735256923101119407260229181586705895742874877787309002001118277227020394562162238276640610591997079379572903612777906306619981273986771244897124515894979335103669557450059784613330718894316311253050122503857525595392861157318243831600439099034524685012190695882783091256876198748495511871956253974210596377663972950951363477096036909698906974553248876748834703836985161982374167019163201214845262815270427969655281702266774326457688813050692076896312840297029418458868276398984064423637233764292832919700913796966609424243397601416246466490998160144093694381265478737531603512360451907486652668533750564501317275302378866630468603175305463536163704461459121941678965724797809988489407595618074910442473220130898749046967389407496298993728888889386295269793708621164229388428040565145427251125940784618634688394128178253807563895568221565687310464100497078789957850094792704427655542166383823816524114096551769797115806806451525376579437779788666483196637209118474354286570253566240186576041854331094547882473529501717463196221082812743710788417159399622697408846521374299134670502806157969600095602583514462490228728008645014046973052144983710448071935364817082422969322118439886579562320396210732390346950028945364914489945576416870193975964311334492034682816524230858354044913215164965178950943361934712959899858253487381197253698720860004477524550150005041017574529289610687056236393439134502529283660147048404472558542287329334542030978376656044963506238483480344399935038334475750779538932157415120461056051107480743970949799664494085324503901718381611578034360210919544380296237064581978742179135526297177818532885620255788581975046971299086840881724621100892025433098576128184311881650236692535459048415311827325994229247454590170004878214236085453224453370255995800585142501876835158468729521571571882081821942095824435672262122751526506360377109788928793956779571644256076980233003728318467187681550438615430513148390697048887245034675873341145010621947606224330188996121660948600153995577624091103056458049112468305166809260013997828193662547105024313358609026561425008486914732083970724807434143514043220527850679253197272507520167933614039428841738563799622155146602175197772364997435903082285259986635620956173646295780768901039925515245273742714854052899375592791387875679057775672907577334160457294769123900957726588149638649522456199842629308806499048366662219371435392166805096915780553508169126089396683347568634195129043514071629116320710191588289467516947905544852624879194980103180281051438110226450288199505684475489500020241838578208090292533723518627335940750126831352643861378745375839637814753088802844890362732444281198586423456181583787092466811394295944394443954791528629745788158195527396151871166755688170106472294081604686816634630027946599768631319408356323233396473473591608303662572325530460025139515493803891788519266272948982911258470634349035298675802755436681395359955995310095716162035146570986059951811591637582943779709638649584132708640674099787459483840464024833573524521544855253691721178714762674377097634008294050595884074049593961535647674182890234264793288932995447716919028067137901873582340426160364498326377119539032775855054208746152321781195740958929816370180131839853157631581569202239398483333471337987095018953709584262480622443894308417720599806324904268916077413646710355771450738841874772852460272356843837742533798051403499882721840981102651423409728303757886211419714360261832657264778711463546106244438744422627133709431229173529178565812148937635257959322860723624727953095462143133171220342349472415248802131935736485826100791365854437841527212524023214652884154754392117251067054743141416326688530032779398678503977281589200377417045618955313004828917840878175768741011356926454565146284782750646825011480486000312107052605118720430963135159846778245209029248234574609896853643921010259940338228086378962391624435487001532336080711272071508998742134827229186899120432853855661694506297112672431740091818922637113512608904230095107531245669494660337857168197424039285451173533471280849917079677818175326569416209764022342177823441015042155800520842224985444971543932600107282379960541217074974004293371959218390563500799575623344102716910499055111194080265101224538005950102111943276526593764948756016315027309900026229891943578228729011653243398368198269878931532041430989770315362584798653043423436280719695970077634517034453316854421351280684988082118460684991019576700713983694916097687486214626319950000382269482676265217458350019679199283372065399891762859583509172079799180436236754628678687589329881945808301149314737440160530852392494949277760655902136824348382904125066298539762789161480525218899730909540388713163989235054929948954500270716068827722322421594062244517585066081139900724493084872837000431372848947947627775008603211073165267876696062036675126080052059613381472157578196551703855499783578570939740476015667904002485743441111331143963647833153984177523639850041130883333482663642345416802817292823979230266217844670479525525692368669196014048623001452299695786697002308317859639872247593336818500141191856060479550943953843361757664267872683011202503381418504043434488309949449074484533990839431630652937248150926569652532783077785919668212423553650232970430943431485076876473974050337644350530782611141115074259756756843302511002639971401038673877001097807232156379923109817808691328882926451004632941770133093868777946569538176112921463912425306901671843812764067102768502848041851039586379465190204182411852494437639486916455233321805121085626194632186978493395924577284055102514606913239663989312923030684295394563028286133905348008236753629520706379672258620277883512338588538739536717868483000588748435808523477659368310172917006024564117590101599093222825308109686115075119976301730823847516480925065447802771710576666827397914864201725344226742246013400184851514800638974672469765250656802222411142271675360195574085739147493421580739247614410316827143182774730145420334816505110385068045533722799968957524382731276099700830525986106329993862769379898624766487524346709448866407002226013750858811549077810444304286583472800036924279297948968854721378311803580716467967819259058957003705163712012931438592247622050360422792447157570315530321316392120364962868952721997808671475493808555604521270036957126959350736810151979342011166089267983720470141332497919574916646173390286893087661798111197120100671520935464929599400686882630020045772323673165971152413053611280771577358568373552826013232260088882469317214015267000583032776824780173631248811966015392045305853115638013741396541901736639653044004973343037330210248905389531337837736943711692537048214770014157462770483783430714572802669899660494837969143173244609017472192431668868604621203595367525960107361470756515786220560475225515281679567906579789616440397807459700624408319625305058261124505650654813696378433606285931746147438113083659495588165328272274820665801137185727349886916562837493891306633343920669714041946154905646912538306755156374357234687855098286071774671476510376880826245682324391588694605471038821780676088507411816396599068838842931775118653231421950467330473520440577929554996216228753578943564085946171154654693889690696962104061274429382527651886806705030927246378787822211155187977070801888059534276285554389455346882520400732082284172678726501568696318096720677216620694881463698862757084034523889172555046478943800727215338038569865656308468316707253283417301461026656491842321842144548428361127278854986072642065911245189118164969352246417302274930134601671751461900445789428511202887585615586276844192778974115422169789070127463063446954940497879715199445707758101289468396342218994022386507321773898379351758992219377347332496248700963261652936813111164276136129940281079890423132913413639417603434976512596271083975378165177589268936243364209340239421674952892535864163462997229454606743508580137715636493899105566477681974359485940163032706685926713174474266646355787849914869220909610983519887033268190175209400803212908839383302613983078740217449042359472329526725630884838414929401343258345660819487801223817667952143664409518704747123413301912766588300176811834676072078924047478058259503336419585396195865439004523092871517832355750605193555770248278440987261695262313247271986257945942085858738877515179796539242210129110094963318358517205169286201341422371894374993835089540108181269109156495720552255026655224015306114614699562343930011413353036083154285891903058259651095248244101533947487398355341409631810958222793127330548851801176196789054651747212756032525427932005803487040688464444876592859544354871876436064649134944766230881679203810191520171374290908929137274046449951174015035544573632794583946498941002622874699994343418233330761525601093891302152752917426528465022364942242870651468635667149116196480233098365813729935633192564928650181345363041508952616298911376784983635388401987035268518136651228981556202577069576890168365190828300767503931468964645067838658547024067519307946285292694308651308539074183326532320763032830090190990872606007958566207111888684720153333308937922826849753679250931072366043082023999199136796570870238556868253638071057771678134180236614390830792553946709255879698169141701056164035267400249506432648585380311477967805496042442109302115709510961330779832129849514285988367938287391917916856984432880408680148841324806409861425801002507497415443891700205358036547065042648114154807798805678100815834712319412009323207414472920450253311556437406244513609924748162073512714480504692057093642022525734198446372085839568903254938036149210609968796186425121913060836028861508405309192379825696920832965374225771760096372114323003237413381947636573239469296484794921113321178549415938370024413564687757897982735541109828956891391705840495825064492627365609699750834688603414113725685364402502936374288433017205283388320739577017949329139915068532388113764520719012670509833351276962972202347613312075299180830981302732787982024794283455314010686903956618921509542465439349539740844314878482103263924531690990637197065941999385576054189598661767498164682574438704961488415468075967656324704875052294116268915387160289142611016207671104021401208732071488308302243776412563836008681219702646105455623815084326428666649824487908095555427927808427682610476277758097274931202986972493389920020253547464322682649035044068130624842841253188682824199109620360600760027555170154607990444772257800748120251253144602372759184990838291808951065006559768098148139771468527658122361130406396137573648471186249515131689359694010794220511196227913962607588753565080438757869324626357293357338927165011821017337418574140180560406557040490407830297791946132857067350938230749542079111759769630747582542538573950246013241582562566318244372718798465367358225553676468906631892387279916647690131916670660586316370955323721705763470919340242520046070164567771566148055975071937242539422479388776404673299555408391282400831906490415087324201073505054401480766377815858282526097666764020753846664910692410266269528776734261240122085566537748163409823964676448643626935528565435044536873510916065165680743336962097075666122554689975158119921285605354164443339726193399873282995375477136505726218584694340201723196740145683865754753417479770118101138140537639987331505204230765379834593525164431945838292088445999506130893117068858050317334849139686697353747339941511915334029329710879423081984955165489316426704213853376007247892881797276809440628951749410449879617202766520887130534699984721230457704306337767741692689018397008930691115790540181485148797323854400561719370064267711162109056513989073870218673417981061854289702730598643119853001623889911690872716266071455895398680871973836229973855808491463001051843180823066580897740999644535215617745893033504910745122823501332404637750828477700833906375400032631612714946253559420573947058034233618487525175933704099554929152356276863802482666282182107226553501110377769323965435410596591133581960339087800232405107195501074099068166377413919287785329506175344366946145951724639794712321567095096782804650648705073569026573213613988770201651547393407650094058353002155902129140417094271816510521275897701600027033769459848831854244542454528604882825383307355837713748754287834487640370491304344634540023056160947911006990299224819096139611124992423738312483724995282064345784057386891327642832531258757692714367592111764180653787305930773007997028044568545989107906136773953380071581038046416867202356580843294435056916208693978345093817472351347344521008276377671973258970305139856343374172738393582982414226965295105891368569510155078475145726177842167891304256310282049805809143699789579826465628181711402796754857160642411773709809772695960875558908639431292811260729383623042677484326127473161794295526121401551498430005466042232140920319916338135192298065527371498703359869023514898186303681068126396586892260965143596834841178566070667048611810268454645120882842407906056066669774389084679318248199082446073940554655912400375965240589688353247379090326802980463448721753071300193335380283322996127121949782776501738236332894190153953054073948931556040748294901234305479984304535512581690690891996494048763224496378749557746727276142540470274228026392374173384515261437269334642758357746431870020391501236027638256888424883608239684997983748956237609985746904956107712011822689443509171169291579640308555481876197691755271802014812798953027652220259193113024223001773835055553272343814258825767126349627110225887627829617323578323983744888645962266628672468559326117956455963223243317772898337956649832545004977117999691769146462668140538987393747978398722765234011606739211122855174737754304862785934673361825295009785838992217297098621078619934290807147999346856317743343547637271255084702910671473006567340382688846065180339683513251589604019109759626798976020045758084738101329492596177971711260859207247221561985805967513574863198913210456808873446592879322918398956473390820673195610863361377999552219500237594362666876177706342168706669420834015631166568524591557684689408964675990066407435345592791609132453548529996930219570041084341378743003621369942206744174412040479899047946351653889425598492780736755191401678939308329911178752406076463314588988963956517207905830518459398916333345898100274632836654899336770011555312495868707064944632526790650500827185714858284361581842815217977541596395611556306236907434862530290835139875356804718039296712967057535600185407301328013819008763074830338083762503227461885356630555449385606361707363389486648618393349927390621153341883721820182632699178528297020757750865078783786275437257850314480597984143191587610207674362633023156389243954766885118340334184969096987746048042522542979495947745022057378278991434927563211261708266260761647248935691162324584808098533937225228535672703842529128717962407533437365627400705280177613962413623992151316641183610547525009518585100402677282342589846695337443171154067442718182064475714703390818438511546671762756074569238088581158841279718387771983926846436111416812269306552650093342096060258454881076487826024062042008916603251467340387762844176668855046721783160657330890020981316430933827041526938995681989350223507122836749806987575137637419020967909933921034250389337163911943946687502983583709658696376012890864232079089579977199119000187294170269736454524636450191161430113490756419867688310416277018936881412919614135614163882577945555521266858326214122308749171091990702360565502684013482498458562664720040501273028035049880548800526575317281626298493848971900755907428080272271963666224033292345280415005819812799308323955262317139412097062219457184424165977902805800293916060719773413569979398559474227850274354050916932024710791161278627181001657630137219882812749447423744589943534590408579450539815440342534959867317808010920472622921979855564389349785138827915458176126960280972253848445179240955759716596983613266875014661520012455973855305922687120649904168290564333218117558737534023522902274997986636303249060847335441562814228593925647291300851952682712748507745622779130907775338007624758947758456123312365914974705969195454056419575119114479452810406707931376114605612758312452940035682430191560606275597094154487423700829577761076567283280407596464695187151033855508222074199936472629707041574982152786899784339849478580277666891351451137853822935372113117217404123453432039144004860701869027436279020762869230798385927426626295544411734330915813754990162918565421683358873987820458835128994923402716423841292782026160081461805923609196728620154336662605378526143125474884989308652800906827782652088441395006750853693299264922772630450934233810315938244783271158637096888649390318844811939745537771934805289898765114444308481454511304249450234961234220069557939029300864897709280331470363048114134983878350563012680847155785100826973850609004221195001649335616918476364770760782842770409616639375602089741757455811135927786175506967729250801809384687462665593327145456692736097650333750971324225129913840717837449608228679217954213708481961053004094018200064651922065386622620734782309661955819584837797826050081190482980564692292537279727981649973073335389653618227175229970992647778142750728825432373679715061224879150211909835641986096968646362468103365341853087100392880642240201157454847203958480008903205151089827331432890411196804998710734632334501782131713023612777648911847038105853647495156060158253908309063458482873970998109377494228057737287085398354064311636973369117958378074248316901053519770957118766225584943806382364255229376197222331240576898922312360273687698592429836321873714435217222844442331175291210770109742775174446257879371625751446252329448946920024077974007855717233807297682918339939393001174487985495841527953579217988838807931275837566436695497562247898214699556269251754235805606260819729759017155979685734982203433403574047260093785241381423041015617791165395304620727049718292337036996007623010887718101454676580442870699230195605070002935840640330860653637845092810882153762716417953007188999046105924584118481168053652003704371183982087385414205355661544652815312056757261005092577113254490011057895117397916380602273764324555989517376428727928010600107947932645255556661949892889866872101551108837857664636978307850009590357925871257578655316717809871513010950890980327626383919944374098763534108272011819124004657041056915895048442298120712743652498027102068932097189344613826050160262138632020503161549340654993338952751802144517766649902582970830416076714297584937499584891000406122740802673138177303578936587483388032604540690133514605019629129448162744359628515143288948372127161987040806991948004431481007350880754131252174961285564490892980707025687288992177168653853113286464380362138670197163219946067017780633243220901012649552923765158568892486976879070326213949859982853131608157139167004039667515137745916620933990634770895448822000174476103279725766621738110281260912191641072176677042072818531847025330778403274025318572482133490717026117104769584498357262953462383570732785949521568089660611403867118358698498791280563187431428118928406595956037012822027564447834039039431230113514987810537884596985283816454341901908723121457061642042800822221156382196024894726331875025252901427647764068826540506809524248016379608043022836544340661894155483633301589717373093059082322477093588679679279669420118090633927734527714793252557316596078843036599188075065318439632582232502833734226185896691403606523651139120042059192534658185025249111800393996399443469459651114589764000505391452574780400038680675255149766524988058239194125770283240976658554694619780359457463559219343710937156589254236851605008214691176925113614680081934401965503431543590446391348795094362042336861518534026974929650658912388654592925885666103829916250578368163712431470770061210015646774291316972481848142579671890686172059941580127495102166514684416015704430924965551910688338636591858441982754244737726498404517142671189072871863241280698822313362943550817370159736023259569047859756167987928300278972780610669457043090358849470513336084511505537893603627389581675709936628769794108658132953953036281135674524086833217955497000516081015627770310010795294046237980172987652209528301730405815962248123775062602247030390769842422393387911259400705948540005985119680401307989281519858300241801366608779155257471062630985192479008683552776307314736171913100393755775415474042240871041366305881759158488523543343548570120274816625069905645144053305538112249118793170266948367895729991290354827308558378842712459855818841986903843033710262913253995767826757201944705249116943824901846073930899834473847026795121348640936246641430238752928773546385660811874110547267552570972045460721556715360233509596370657618836227006140126665587160289652480874935170417610156829173489067233408399676701438990128122266162622373539425477531738788026359620752301222245637607838599029077429966058074906963156495603695200145662623942345461760483628277237235476467151876975786562351085297259346428617998483380349039353933564115757733801542278632595657642941139447054204580699120789906280999667922691978144353193775097820681485306582499110957720051180243771547937415364400814830722145337585308370103149993189210128640783232627728959410659964038938958255330608669370457134072271936430440840174726800001822838713040070854435835267168611714266309150743071401015419582796007622123681446518407200572108463167182169346793165807002146247649313163994066756462411513011148679310857948118880682108502363519916811631655473727980205172268843620953988016125994504689647595085464355983830372288146379905986868015030949368663094092037375278076078486494053210703536846015465871036312409172909343229800893550405589086434466061138907907395886514156052091258260021109570970960848034627235527405946779399377465050606214344811090665555458572801987435343760821961968133617506928021148474575349876298578250378354556357174041983795965890108184749108202706200608429103537024437702510617496333238706422835656539999639073811172452520589324330616140326361139783102198108014815145564232256255399744191784530667579775281624579024561940062550189143059079417469119458977007941508003571026535645787318562721835604492335551347572165350125912464187397910632231192586997366119159025989235775873164642821923093211463550536115272894056931261793997239077557183679466042973371945203702462355177872031596978142087171268048459981580473993663524099530981663133849532070726821647283903821164757590969281232050215479944079303335609049569746344015622817154778195298175631472117013479558439228146837240737113094094539415504556969333908938510138153397299047897040222982324136936384971787685697769464923015208088001680271283888671283091074710318458771727969492022118297247932575958100339578148389217461155295278316131229005752539431944384812689429474235893457082087194291026303588406995401902491398234536795938290414362347810295613462522302252564633048346303863890050490339501954274582442321080109173739416258923082703816084957502240024855367980262384504175711570338169304708944668276869994613751244463144615920928378367912638192965761016872103515548623699793781042022256788792618145630712810944221500815021691297665040207527242944116966543199842098017048585877888108831955797082323790078052269284196307747336393123181677231547165988300083786136046441056624426890324484850491295425337822058162987223283144489122227526401291732214042700698274508391425154218608076257170055449279773053830235715363290861844907316025903970829228942483317849180564528225427299177643924240722914760275995631825958728616259399362110819508824505799423760817147543626990072316749398701207321063267140204098043997398006523374086976114179991272910776179207258445439416372427057481680268927835287783323090585524623353911778866107493866646312846357004461900790205206633041819945646640289079868043030830903527779238183243441888209242203928374490077594194165765823369422946195470566044022286902384637930961168243484165202355297843987256897270800428558662184257694377228260713968945608580194680382753296967912041027432358550965746396317379563894110453952171190898342662583989345038640972020843439194973669922291557746834695697429614405075783193817979927064348423807771848144662106879150212137552566778349511852524170711588376113076274411173973721664660755907190027820509559877317844610285096201748452563926773958326462280106193116151600679559166975584978718068781903292745109899549177808445346127210140675644263496780868635952610501634767311874312183414246396021326785722997980037691441434394286188321208244631580826788717125135407901083744334210027794019622796098251585375325827864423096101655963557747118838698556608572285767756407739343947886478771213518386617757521669658377925236267822591456113312964067981749061490122636382961103119544672882709981641264913643113372859497365822630074828268613224764006876882668447398535383261386147681699626139595087472678003096814020858701079354546458822675397202552904598812702779835382273102388328142258140075240760309959223316603764825183679731229707625174775778203274731989146704542587125622109051575647913929745990536271945526538552394654860986934269088690278208864373510543377934558457303389342253981826764641407384498244907902768006053440636267537533828407952950321099044988367721199582936242949681871509958785873558818884000590158262069054652650390050892502715512481089092621622576624790613140521147687952427017063271141496015066356979121508840620006990896221815909686707941104589112356466930973904824105728998892939706380837974117708798942671141238056862975852098308422176401755064802162965938890057502683360417619866332960382173104021897974817910211863186733491404984221896639704610265856673181699894864509108203261629176530655970010569487228324329669250824338792533589237661583673596087734545167055722441999569645276081379911006396889652847975356402186170199649357821251404436004128910678646526089387949508603003661486864965766806486492549118508511943356710027760541691117468193288827327607028216783875889090178632925803198269687099741458969858383167149250584061668479081742095986332664700257245107169356642824274313080776115552538283302924732261767680225569997524859373603909747828747464990673370641830373068664523810221876273732573180610323637990468556680736163757434919430252976491282404467441410290333384556405259650411108131050708361305285142600499583285015989796187232903908085193014318123961680448559842932125295312719713246477863324639657234858131022761321026183145465206782551521020937383860184197090252801397949514926935908087682782540104378435907580892183643066084041681527818256662414846307268742715262146166913494579277159205908787846544870464290402853512076234973259360183426753129622008570803316887741938027033118175517666255895533305859927398231631579772216506083532932427903517831188339056634640049162665145853830237528930317904465942315426927312579854304404037688449726057677104712902395818489792963179840765987843530308939483199414692867992604735990263018466187467946094479719072579593800166254982484513612963945998988405943052505447996807498114290781062316052228504584908069472170447078049986725927379818729951513623815508661323296246742808757275118367250325157972390820850730651256795590987232586248608626617074429059226879710619888408083715685626840597390235124274573920249859798663505657394390424114977026294887627339092163087854651327132425293413181822743355078108822964130935728845443244535389414435488745764475774611856830467759536204091372116920448992838646856145815298284020263422856145034268663594524159229381507241909713570855746409103876163894971616004248265910993157811738993046579255361018428587507895177787902792074381813587768876409521402645242108338033964707550189119935443484318822864383018550156226993670351536244679517444824064006467780867637469363909104405966178181067235587495814269584848375816576811121060786018947633201953285934239706597392874405636447944518781900871052707316161408641076580347271831729699384483088134529662031719820369472568982637850698039514113415018272207898688486985651265225609877555918826968866068756738040180625903206584764262367782142546398388078654353338773539664014437881915506488046129648074495353528515242839758635093546022961122932373774059962888592137599659724935620463358317091727143377452612853415630648554327896439881025972130057155536826261516933524707562086735907290495845510084406135720644032897838916667992591921383382176179297606809061986340727590085505343732471164526132096498124573451046078179249950158069561667707307584078090747347891322532560951687888454239658945146578567918640603387849115017549950277292387633684652699273790714271996539673185002858349131638948834233985867082677648135792015580420454519948813947054929976704450353514401512689041482262683145783015754071601883986138848169918269737137563369254614135988958327437270819264963483033872663550141988506248667277987563280875582011616834767056558541511790532423926030763603015647061036846924345475570779212841289544852982512803667138281172769998815688941725209773517325588905719302281891104515775761964112496001913480932167452000060271584721893546814345086680011230496373297450581794988237467662949853393235151127750119029131857285437581173851075330822724723891254781978246169269885434267935487324457851313176496925081408786219064774378081028564850572663447459208823465001502519423637467374908329931742951999183470959690701437810778052839673117219882150669331220801497177022103695264101900916921952556364274969824966242055019253419931098500051998951776918392888719195664502816629250272412638680477211712007695272476247253028019959670138012133528662497099448046664161863015524567728026332714421096327927092611745433596812980009660903882765738763859876111879296201445079299970348267891408728756449230941842346308182927284361770560309804219284802638821516824555707591421540924582253762033630582966577902075058630426236806461050823416692385358175842887609574153452790513332487159253409896680123362685564138381102506499750482572211687317342194009695258727433742085540546970845796671016573607373037214713615363860463733291258951556169526602358007127108613895025321640077327499184421505381746076696053885918707860746251609541621598914103708287310007449655382695147741467642668729296187136876750307412235078399259529629864051712385160709974533122045794362477604115667789290969487006986455278216242116302559684599330134023977206482469758164865529625615327489203888454366418014684901220005202674267904221820243284204252749792904310617622502808475363888934918631883592231760911388494960694881105693446994470790748314012893365278364496076986027072972165073087583237021842895754248793337060991615308397864385635466409208058549770548344753127203439406134186826235582052831072549289673326327300575599621180494704274340930946042004144978552361275125214632914131575203116704040348490272432033174208134312130567833432251133022301115976684902326245968345300593366404083295672157964526444403646306639440449913898377962780944181127167015948544513461768194634974068277798953801174669519631548900583797453258360824210330616817243130264586007949489036127199511132106685570624699587148616577803089658150051458501494339952735494550984023018863611600530972118311133727107960881121851225948171108345322541661525859258627291716889373659846823999733922231731145630775760617638574674408611039132797466757324051126854713537956189117746840591124837946492045910903999148036744818031724475832296734325513786173147043822230521691966661232484159962112685068736614168558321359824391635073717776661714194482791518429752629112449296099601934207016608098065292565916897525895721361181457611032879539015977888539713274309510934112107977674192824436647187485409832329537138416375329473452652563947129859612549964686287536403140501466663299612107628359568770453928945884190345850593365691608646213918781434829397562117128481719526276096313538481065693310031807680392431092219323832870873666675918919691207555998676167495099804894758461167039430318828371467516437512289131913253845303699574871131823729021693948569075920342065163423018348212511358352460770088164197140858300036021217464598169997119918808780521355615947139830516369739067561711243222129816466567616293404383165608231145758222940253914531403004225752381497532274771179988381604029380403953752482000646996819384035163791889376792717039417687301028965770899868504451955713502645136551045817031687428073833259592372870209706180508425086606900595100935640365332515160585720912025654369187766717306688806383677944984733653580451363516768324579063389455627882332130978093613956493212027571511584802481510221898423057477450563837736457975822059316084019694693779065320757734090568553046403007449075833397349144314153874270423987702018831759103269027760695881060202734603216533272516979484070772243031672532123417047384838060209827406292951408936551681329548012149787935874454284471585738782963242684163669740099148328666954196452420409865192168645743574690858692331421097593646079267101712751516533567155554243600690449141050066786067873743656584630914293820856213586417024310710273278687971584558348179936106935178497992859959134146598851918825793519324534993130221625874906885769578855360892978583955515139374790460014765243143673909381965053524418115740861788909195291635279726151324910598073036889401494251157698956906419189392806404037092727358510257680617950870140773221529488522193419107171123114474530505696589976077910766319925399896814668479863672516423288569124959995034305559453744114313308811749068293583590817416878669007603317285680975380811320018168351607892666351061454140972230883391565468530083650638144675648799621180449025482492583711304813797377396578355654394104285780320466984798880595499494305325517276381091642942453269519012210120115921097262431605376804225481806669717672059626846883453119542803746092139984700740723194050862153641432106286650789520571229127571230963025482140075388218417673710904863713879036849813410563833478359844852516708603291304034540602905567075126651000265800041523805552387353622158801757420872401113310579371327544751949724611350129900475985368556459524467243967736896952679290380604390498547342303254864247826195412537813450384448367168730302993838758427145130386918576023243245188020601001999590935836469657836095332150131346774205922091537820490251547267127487846840913920741931619001025770305121099547253132143526720929641712769535984514471872305655561756967756330781806954571415238527902190537352827631809372394639904237108502614002649450534734596245899675519177531044214596177216228163104216539638057546946766269508652727835502796128236102131090704426870997399910279212826457924819614955954665015581732661740640612188386497650079631425763491677448153781749090537073713650835788673414294002303143873210912193281034644206377671486147575541306906684804678695005019601710747497327203144082580870094442781108432793804101151972390778610601066687919679832138898408927520665238450371269483075006523876721937136612090277311157339724604789747405928853958382031861675053563726720888905193709998160231358440585476211539404636109406657258430262685798722360183603598354989442975076484179105271389651764698366864138178521958322513454002241668610496439482799674353881846895741260233791591066160754547117747892776527372259440314482617159768629246935472906543273386050396670969700531553610690598228886732464305817897595640871881135521886560053015373069392486868702232875774081004808098113819452703782082601331006443175150958986695185836617454065174982506733376220979985067824332593550432586629874108096974504651243376725497842012368058883759100267539738002931636059907017712010315689927872392234108629770109039559207562580602789415367158320302022267273934477045767326979318944817524150612923684863996302422632586148458459824456448061031370600255548736840870176372192767825540388814095671407336344226178280649470217915213608042314375904109052195651667607750858176611279366551562229257062111421251626882164087486792837545318427711445893234815189518753663712750432115013845925736370792697664746469531064608664116860212421583465066960785989371372438259329598220562976971617872963156173125173622225967729859477802146304760660996988957053513725734963364160536551247285331097682910122634264215215799047265449556941274930980720487288434280919286920589607571682707390697472133106000442254996573424838968021671022092500344361083544248636688612103035360465590033754265705837106945178056924077846919356858072998765995016861145352866595192789239964253918610217122750857208360346659011751804021737196628777920544059064395232637042459717620551629999611628673944894015092225658663060303258201537846253340711070967874474021411417644352778281452535269698478418973525946837831339858691175670831489801094225513463382195434043040069701759078727290772584714440957822980856154532624335527563224121202741653614399770984069027459057572009225723443307987612062723860911845583471090510011882366115602851341229380501337260444428024999235094201209531795268467715017801059885967534432202445417456170259105906591916791539518014797779288551419942952461353602986788737501912954433268711933062490169100172287228156866119859223717466110658328277526760411692464113429474075785189989374755622482642250884194324397831399322942864767085185932936196533351051901143419038971094010971909406569700815274271189423764214381510415964950485247035606182458557648257227725862305158086656045073226650597381572667640590654762929892637371016613397640182980249939092505424396193131858686233299457423367991312427096151616018467047246969292679273091192344612110742010418175949410472898961184390937797430120548779287738069732387044280951108345010711686799889884944172539532444007553858550005349552719066836368690599235000670593525687934331492329157303434442387375238623243567116702727263938944491469601427883415490799316426348855513877540449925938387194859051731700820057346635358841943607236870887868014533842217266623665828326350330534921259764724899387037243502950743301200105853751439228892107012495588515222227920743454773089618768127166142122232660228615616451332771352251904063190744470143553612229958351200457930056303345549915908703285289991966163951735028259595730745586277300525581553549349659138426270095555496935833357391343333356442623847855355884786675545214625212999877999906474432905382040756919371846601240927380963621550130086102210660293724778395295635654520349273393204355950967668806481042234057920365082140235255288765101585756605208306672709675325062502452250757150113545646580066756314683294489566392079868152384104429927471103282899063632418669248416155581661163590968962195143358601044333059878441228847223804276342392077547333954819354048321362789399977011622569343899011412579590843125295059466577694541914812318264274357564115363356656039211116910646001857560511873366927861623979429558135339237075938245440368470643900719835578030027788715830714998262883739875060077377412138082112482624616185972810715770878234310726542687361738983949537195646840927245566145165125499525717444679026312157567251581540569521881068744453478017665958236814922346487714428197965389039124301545651071931645726673245194456933502150643966556629831367345703439709253554072651596041638717738443057316158640197200782190310477383090534133824703673111762992809472662887585966787652440595945491537693217483037406346100410474613959453982750305799612376679349794758557736256530677603414397859385707523456481447714119132036765479296174904436385232324828962949877606153972460982093901892116481821121634950100730968053882551978684506459453499784583517056272206851924233182434771065344706264900522894548777177395588966804508327251583123557326046174810941301423216265411436990272477525846378056817648727408091539059065482630058365872013684386819755103541937439097088549661860014493376544858354771733426681104726019135707605413617991295803523548967970737771028882294279867727033538239098318853411338270240852656237172259177933637142793583968694648882426085751807261844961714832419745663786139199192224224788461552846940028737022081691807757362912777315257246942473568600904013349809901666811568053240293844112759321159341716872337501228558272736390205053158999005201670369376935376649087526588881325443498871966629212162952353821635834484853537971807611910048524213741154030634575031063098562418235360656121953946383885710524280506437486242362440141737951207700882478127156588326357878551871261201655308737390417756629220415702486114936948395169950812511508789102071023784396884913848524485609077200967363886655787375577171467004194213935908889998028690369939244991365100564446306299914550291640903298263729040455179375172336276838657728515095770640363599465462379493432353295592196570057316175772073832720509224131790043318941464410687526018111176785118694065012422548537420520784678008247280460111212144264522390285639182976399306876795718177307795464467744751996887513615838999824103690658148800237870000930910275434394023628371475791097443705820052394713970632909182707172607257763224197396847587772491627156700357952474329492880758056051168612058409941378951756097080052708038804786032418082865525367685688141313122212902083343597489421480181904901685743228113528365563820516855580094140408656822974485344599647750303969515874890318882292820180363361701486670959021859732678546648509149871299179179330425658420121633611162842447410304928396586152172085287431709260456948782655819858569094831356619907337971677312966810785324242709197934327359090425262658117187726826398573224543786266898954614627050077285183486666443768809061758302420627938289884547088887735049112113495339453746166879302818582377861452860034004996053741228793696975716962173244282407957761535816308107495801388815771952702143114471609087223393625472451909298379212165182062875144725648966045207617930578908075321452481482834761425546015847492369165735645977026761093035963541885356547564531823579924265967530085449613041012809001227347063477465361822825291740894953821219017085525978123931680491682971269554159114065665443572011227324447312272809686932574531811911931104487002100265502071431401974441434834019844200832715324082077984634767617862700052195375347649069227402543277545562086592115049637963083148352348197145050995947841945581757322733994533513420283433791115703847325757105668296728991001263018499737571492611063707886347057175324064805647415980355907019614224552529925600405934710113240100416807507928414052288217222175577628890342904961191302200834353665625757649291590176807189224362541577095229445054372094047816462969010160971241310796466092193859812161353583214170587273661110211542644908240137397869489244331536424159733067407856507510965485855445885545285388745988527303334910566461405952241031141076641787237694803384829589426447976730729657662285508785273594152275363374068304823578063725190192348923125210436414792074015039521961239320859766610098006626262967443097287528801819710011723681122049718107407586237515027966375877765772647968703798915430731741303971292811457891595397239831237588873057142401178499792559326876114025408003566292062903051475538666362098423962064236649905005238804340151229164185435124742643135537015567339226411992899112015975084122690898265896467757489093315417116872517966649876977551435023473688552449404725848242450190332040589804681846779374755322580270130967074432842979777756557748768300790953681987977126379767495088613461474862353224502089185719037471779383812586284084419395751088105675768241748222756031996690639101034024701453895145520448098167071878346784542336889125408049056613611897745142795615549808174161359999794556442793611301664673867302311677658469285454275444772243343411263674364187850011889847175910226778753691848617893221489739976353781085354105346487699671531830148669221849824964957633776761431345039773562558548422540906307231603217582832868663537451478300441016137388376677549415218977740631946228250369658392097404761498834799825923489750823321367959771723988559128664364748298429835869593517785609551745665538415884820904061083370397038315066000992272727578809009506325399565163421829335910861206684727553059173822168433084160264977801519265169469193497950260863740217284237003889478179052876509818652404511485557497811978608110291981392359719143173430328988547794412859057260923073293834784169051055878000818605164670984815007350386090706107252007128414816875862912223325314458223675803955491729662207762809991302589890574130036724123711041550535076255933655395603827029786532409568775147486768211607540389230497367245850844715274448667341667930825400741398706859877045247281999745079246390772934066436857496737164828748131364695371650145171734191554135807203276280596388215099657597459548637545878460636257219883526301152899149075691749198427694797936838683496151963609546581492530949536820335494930591751372546887927954951172167401316691797258018293247271790308735042996305607236912333670526209668006728931973943088743833000396717074552883060331047628556922755207737234291819831608534860883885902625381839234525347094124505355392455899356088649411123026236090232432493165957243204191144217153768160589354999768350323886605616802797772611924978283811240593011821933855285492624143193467865956184835275518006227622598809356821325510446071021147708551949381711338355232470999389603944050384217099119584183451141982384596070036280877352027468643317781680722897543820158042125544860378836451278248173233064647294535132393250380081351634031316025171066801358553130003026357508624829581706368131278181220428671709096875042357262576998136036989002719211998578454729781944820198210510037414377380683705962495284610376618609424815077812043504761979332604604516654311412294711050268534608330887908354302821794351217549062661282028220633070912195739576729625912807875117970100190276970122108435362748045129098661677838261732958696537793004943753489608207447222300080348881121066686154431273128579724083007853456216318205674447790327593578064448094985807858815572409383268987045548796559077822334328849534418543344199248788909979745127468661674041920933693835833849112844902034295142831484405691428159431767100344146934114718058933677862901744905544472113923925806135755096821104894067756848522685189096561867355232744851678106233196804584295552586726870459261552027813240265842004961157092136955719986441468086396035560151031170292001518437245524268673054537614567963576110974809162374390729430569954369888028000844876504735659926261513130810627609126789288886425928394169853345254702915657417982363527100006475969904191242132542315126984730210001097585474853351478325690575891390256463193188367745563553153769938445278783746724019886551462405037562142475284320797785521856037271571379774627215154923241550929999139920123440760326838773715613024637736169800700115113802124168460646639807476711999565808157378802869634894568260592692845812121870951100889920639996383257528245715884563916756754492704795548574978592274952346326615237689049399128193799090616834849740931465222079962516080120186150897555028749244546486687591017999447239800924070866766949740718834547706696896644891410180212951953894055575784963418964619947934612635752075586828330547249015072897889446835120860581048365787919888261554548825239719145128234062653666879747352840418006545661025968910012112495720068497056951927885530743492269897200607121330976753194971659123301767799281327786579277021194567466503734418510391374167918856746772402348739494392271251885170470519156960893049225850025963006820677764866221903895560759650565424677113397931528147378445246074917168066183340275741869892468151479085120982826738586261641217155944031385895454456846726327909590507203564295503952529180207346540825317702243543276984433169933609877765914955806684902429371056654847775973762607361508564309240956082561059731609384169177887910439512956724731268052639258644684269135363349807109512413092063961444629052600427562618465032290350333076478797429445392677358181043774295385652355646808959818317193586794500336798800622550767474553671914754592943250116477071319644241417101432443122837821724582718013067412043461209932806242489026052992805537675948896505864118414065986400010120182227261015591102332724809483699067038470810638095575682961323506626070563402636883724366634036243466343100352107448553583087461184264871497630491020060910574454155889387531114538539196190659219313817018444097817076480640186987537011979772460881882962190689860561905327961249280481905040460118796969700760806482277722229079585234371837300552143461887903482960615491437912892225270251195480457598069842376924303383224298359810079580739057807350594572069642685553672661716223632964489803374411821308854042042640770060916321739749451868688230086565681883582916429310495758643426605309220734063054971384415422298027321758210099895484658815219403878209290348183528786214525775988301686845296870204942908183765837584845183264425330546256089148031292076601249364206551945210197998832396326929909432860957102856476808169088366953957387142648971566671727415012135422512760987006932898593033081838476719272570147751826292964604924088148902966951524175644959019448198277635317704965194687972308311936341752912818368094369334874665192627741361683528142629124488087468605126902116813072497520440173253513678531239749502523434447374915308071760213493802543675967127215232892436345027683699842272201804755384484373870324428544267888373386296954557350546728358522032747238785559866623229248161192223130100631059873360141731000712314677919389753521041001759634101198286750362928498904414263767091241982145769431335209302857941979856562948357303179954516641547679022333238343163937726936306724024373205449952218913572950284866064613879438356719891967885096613029129074963022444919077307983156417214838714330231978986718905539610235864285585031178253607977356921060534078444878952659353765438457790421973295079915960622414331592443594073896814717631492306988704455732905331159396879209575697431352244103090215279768665124196322418403556955980206175751833693884186933956669952062083582428724540978851851718917856700269371089203824361645632877905284556865364222436413218365274523261431676800225691739619699124600145712117945456433298317926162182326694286592156886072537248199668029859961027066977099207144716698763443782712000265865457187636046521338025969855203097658630606067260003290664180539376533828882626260675263985078898739616384303051906125276723769332220192233848442420450621093535766489167295745789982056534763608659378121613377357151212485904853055619623522058614060729852281284708597179533869781896774315997732075384382690034498896113270806081846974463846371215553628542557145576776174645860917314541082378262764194774493582233744209277486624817291176506732094225536170544434829261165762308131109884184950513750358640377319087366946639490699398851988847322143239065379395375925455272603529752867523847066240933108567768087829602979062191672943796105167156225955804304203617364496530865161591969903054944812784129414908308025903455838283653673605567859078177248178583436542751222956006451907002858429821125240221459177431200829062521653553861790858939289123726863588695241934220869963559091221517792997787147000190663887371563970982282800169849073551798906185093627619281530722174469176560606624307286288475058626309503736455691063786216151527970277268567771391364455053466522450528040893648200161432379378819687416444734865927431698166626538771294563522086736661218158559419698568127133356320507026475766422384730697090838901749015211067201890738494467051007883733174412894947390465286847343353225823380470438980028247417724793786293386588077566805754047249225056642212767081365808652812552423370053984616367962283201698970888517894593601202646165878624098617182000781824663421692081020260264097420432393796315882080332430192805743285454495400998246869524910454097098101595617320713206626390420819114686829356269474726146724876484198075213147179099330709660915803266959060190888963148850576232036645680986626815274418743234616216674264178787170498875819619275142850317259559407200763802590964463619141608548757456413869680817055985939959920862436538880478033924567429850091282087063988105061322846902774089325515804677536046371234152581701930030665964404825590877495021750552513315685098304270246131858309074100223791174315451239884648747709020009677880777627685660185446682448991101009679073794460926361003449398192176474458049188284636159468451570456514088136447793627270052140959780375978851187099516829290562239653111426742954938435036366822610434277153264707334842771097827676603962947879103533781918009624762739010439992205316033886717674551669486291219012149021088918262170201472021161394702550307214238221306648017605855538945292159844762209535254315061360521360907993151686871266567236009807339443300475939870907302724103346802689381010873644557272265631955304900874758094944910090762694513671520537370184922417397307715803283225913331528762935766528096573944174039235367761835252776545963313754804687777571239443925397988602490340235808503912281802381306353951122903804682057671716770412147592455729882096049214014004385396312004083996004144529826663508771995728049780721132459331765656552276101091371435548219462168958951858576457273852900089978557720053955292612854765946827460933232826926467980093954159059626060812374596360584424347868613483088157658611568332326105607417229477197899887583713675160281174333636130835688002252949295202737645665582825879525198300190581375212751605789683145142571502691326282933389208413461533367543901442629705170084131494731859520919969469248034756801177080878994847515766284940984916971939144394450195086420782937781676273632829291607313982747936697012178644557297376240030981177067315134989754933293864831363917576343203540284563320411470253669449199087540820999973557261580769982306476605702976819508493000346318919202700824710782105765641172220861090447761879274341368240974686006513432809410459407254677157433790470919289941191862144657498868993633994323088176960425318541967857107070723550580341013377049576396176818636321600477562743678410597279563097106933277704828784436730375584484168084154283582517258069723441058203162184402944148089145853936727600945084293257874256580248679808152955413430178396616283076009373494575483104369087559647861135827522964530423353041698728734744522731131317608311474174736442307871062244741327696007234566584213720527924964706275185552889834855228577546922972279902950753649978528657479103427546176565554821501699578641084399752655569056386256831558833664570256700367921125764686520687047680746882151203919514863528908375467392995752674730427405440416010367533088716871326585435713225817742425133397930153825159508654761250466661138809577233582777925311747090825991451453966279166796614426303820782654381088677153320927646902343527072880808612723259573162307097549947652632575950396970289168141692197955134900475981143577454735439258890742292428392137173021892359192979320765284565412231833047831447966782654726233387566135441117630938543063773658896813028648882923789325670933001251932664346301104068039406764530566281931379367540746370553900543196712786721452631029226358163826950881165703628589343789590376236660033735170128014265481469995393405199921303904048069185618529159555313149341340389340415399172559322454535355585219805761089952420102825196018506559826918403323653306239562469969607582247179557627369381330647460690435291106147020882334485123462559959842437149080517541078415397348873631852261949917275349641211861964861685912174577667964157232760607701886008828450495019975817036127086315195040033182517939383535726661657988614611440888801486563863738895248178979170983704664172080044862617721397715534085528699394375869987274084376029395297838445427574773023023148678532175829162754776879234524817169895340383125122897257288320455152307025384618833259346643343591233478869238683609356285409340912634585790539193739910168588525350857367199143228339841654221049879222133606954505023676550964823663377441594865541286501210265373136880940782760956970600408362866751232710172444958723574492473559382574240813654828363580440286087802136068331629485291929621665502851774062744502635055483542535118733503385762851578812363430815992487744526753373017934434752000805255202073203025460843841554483259669797864500957936942468488079013735470973343112914185914717627240039719456664603958530085081972278222365470752825730743072034498387044762792491887530431240013864345257709281426946060527277179148033058037257698278984867528840965190682480006132493202048132551886727997049706816267170719367873631847485067772832656593576289537553681986883230041110534378190075176629740316660650274708537141100470590721629497592941805228907019251453956224545571230184978962217365079859880267804523531207294989204577151580194010689753911943870764097583904755826831095824292278814659765024526570325866030990647735560435575183469249862694953925800446576812044216944725732703737869022444174708691750585526969216874117109281263908917197838523285673537253996392803749502901367942981748824916815439291717794532395939443619451256896690487793752092514596184144086740909458031855505132336822520753684357966708006317450205389993386622520478042084571856731881948768295545742894680593693473643116121113017930667992067114784736929199165471070495693859650213351131237929572100256778409421587377923252060022716909184039280938433414433709022270846847635601964640812732451982892691188535285299903095657421243370830135874611184111558538231119881438101588739658653105993983564241310683939124056661435875886035738738116751099860244448004307261918220216047940677461456359459450793153425215481763641174482008258697163033197929128929045333530942713557686388595401167329917917081990895152520709283499139093681231135038597604690276432046679340248969046780029732421245591910506387874986167059126447267563500681738589218448042223582501076758259485551678255155334045932870739380040463612301942136474232263443183621423111091158549368294203468706785438729667257890528102008567768795173177366953797231425958066484420431456643842078515640285794930034919378928394063657360414337606589389286928167134733488427039063995350726012990987420395163016870363764552705543378825514635963396500638626227250242852637606162884127304599651843107603051995362604741837462288210932199185868781990753206362174983714294432199626795155770408988971791378858717458824931865759194312561342932697102363504033252907940026101174809608239796866481311740721373327478773404621573043613614814866310033640432710585565711641862173080397610415637306684226745863880716431133780457575773757328516124329009363782455289560906211965655472990745198722837578587423883187741376142737947662451795071222335768042015542892896561038702411982523174952287754567884433221331847136654745979410016211642550250047719249670459363093215413390069402602644969958719100012881293870460242985031463881504626918637732215364770674562721311402802061984068067232618500467167051869417374009245213646360004960032245421245468535272122759275644225694216495359610988576008819227511028504181159869372287344838022012430854981468317576534137458232207776682471504844282826477103064151797544986016034722369366691701373387757566445427237087562792844595665808270929579341156646463968521628996325088378954032770658760826714425998770074151500114157471841106834402222050219548820733635567140107319945164089407417104724196875761294831157745566390197097922876980818596754409930981015326664964657921591092599784699994251663401275251427876203823036246250738429776633596630340388527160521770241592470687051252622828545712087170680619269994272024130156037016859577596137000715312798552629976668432992511581855093983716595396368059938522082467163714036688327975596966687253422456352182876510815489142153860845263923697122317584454608721506678721112083013761501960254096725380800114574839544861896299315501403593490801761306628233079546906375788458691849503675065199193365785815985889246917830225071587080251224017571982034360592162037363710492162441530931502496294771146096162594476844520975499295284924656881400771975460701060067370314239198331589680229783083270523273118024396549716791250892876030723972114645139418068326992844711254892858110942694439704418196989841245316337769821160087997817639557492059874320176341637232296520381296294290881814241180378380801025433004626891239699313042799397691455889368259787867195011903670185529008615922537295785465692832223862672291116814127456183591447896394269876289503115217059855117800380007431714929008446642513779923462174761051654565249764599283266944491132290633480558553592309988764178937291198224045899883958685194363614861113188665830140521960218915514157016438362956435781045425445525978230315303376755904322224437044592951022655372846562498085801083382703345988183852884778542870814525101747008658395563941847734447514964557405889149950965302414089721951735135682832709326853848524379372304142984165033316647058590442667885821776812455285357536249860751794785534561651545770572865493903402446063754621487100073401582210425117131994575322474052225563479571813186940409869830231834959640944542026343021823180953185089667801259676927531301307416150183362661595895514590563303608806553711756648052525667850561613070229888966722966351151221405484459391679333775514825811737409011981461050456528571145995307707116409724785593637222339701580018284226706335635549575842175312254168667581632166900348047673090039009919131369998313361508117030135496256086839843720946492820190937998053594592120298364270218154376627224157499504139689996519401675375356442969700576696776885944997424202254824691024876378271151532013925645144845840738148777023981131986791413659933149686671594729872221875244717935862800667985232147053350565284459157643372595593539860559779021302179719928322212549837907372828177288801300042595712520452507831858001921143168455133452037107432207691871314959297632950846487594510014445931111070355003647234115462705401221701794931742788817121821053561380399201130535520589021880183395065274485413589980676320329988223520891658870671906481621776161435203478664368775211750344247186222414436922598816450973684983035794102168622407051134784228828843474396231421931932689769103828504389072883513471681008170015810186061781293243108278147433388892369101834390072320260100719868912211575158543874906107749379514083313113670038137029185195385693053638178928687955155409260731424654317472718115585305678581261124252326071064348104010418590726550549779706692628508652615944029363349998744824583075378588533750870807269068458645148999036694362582073821602864808779383225641221681402973622466768806195028255202888278038657836167166016359235192222525798233214049257489246916646730169349565266956960309121930572697780954148212235058380484819217730487464288629443950560950157127632376274565863651108644804691185480320852902967307370981772545150386418190522946168973185015830796445410987714819898384050853119972976200237509293378600469883583198839191580573593530949618990733005307052935011159436181522383047113073515504699364998780145321177757443314436020095067288332246218576136387143601001651449599291093217722051019724551840419143155561732664023501227677794637416096421398909536085853289093502312010196363069468380706593551695613507868197787532270855464682159987434718090755402635891056666410125460848883521820964991531998785763183944027261108153295113653344523205195068808264457739169916005166643923930780898624436092701648328758380037180928909481354824982818882263528662805233157152824594276398095955494296067096543970683508189745101742297808969098919103215536443281801042744747446085105955291266133430648273503044191786707748361730929225306363724243161958624519581432140195560481527436147777397937742981853635574691144847913559486620697396875474706713871174055489804131993308858651822582076445917970541276512772336274626590514775607216055902580677929698432901146356743135055465746504143918791856594623002777774529022169237000357601491328417757403529887870369603369984540971160785665149766648903402970252943901484313928653322082419583025587046073574094575464240402579015362797365833100432987585209478038660859011997392050418330794682510298684349602400335785598142309058199120098642687989284386244740307282841187118369914903626002819748964583113899890538911222577543927793285663110845826565108754793762069310210883443065040128333142837572129707763830905122968742106955182681410878800431233695975908893965530289504499134484141414182931532340688921948637431935202300547152097482425301804911863126136687275831109051803888466668704309362815903760385215567134075145675737995841690882661114708446413248601837314070011688376454501084167872426912937648346514300694633759956803863500241733141160036394701793890250585953183154931260333159016550039694989408777071182022977471779294250295757196954421698832629823923284763097340793148805823259837579855241848403760530968653931247238174094648078995081214392385148376922658368928544040373350926479049330600340045703759449738567032455510742426786999470531132978255321679629056000441369758207825039903669770253774538939623128389185468767044300632574970680881430460284346065534736142083654900511291137874923477247397604065643223813799704376428077247581758773178640289250332241407681341953582365922774122998261565634968525009836220539183647624521268227269065167613128009114715601402354841788476295371794839764905452366700336930943477594620179176239147545686130222256937449285029952149231521024729733616957951410427857140190466387712701564418385614066971223483838294533197567575265173878923470161720219008895247215161105375041041785823909598394041757370463483326815090525879380103717819116158158848464646819353323400178597529342036925174568090930062224628470976678759359590411916275100826959252506267951501889001288435654162741026370997447127966862554351608564932792386982147647990096621039509288776612993686762707732745323243749032664916934593590324701470121874016150815573746873371063753798359439038251995272825028333737376296138312317081523053322213421398126394974214147159199405644077329622439503973058156258088106753141681995249244889460170884285025582081185262689002994938783348177955553628310179999797953256731102038897266044840608658154311225714886436256112206677095180077444002876812021717867805150732609267997608383175390067143209147728363607614945621553822604497286938079743444335799649816414637684121707007050604471740131212337384217169648114784348209451304228084235612399517015104246753524669403259600138523973807085242056926919109543247616007029513457286616216946646831332970418215787416135661095951640083364692242784329403318128453452593790558842214003709151718647461143625291625841929725101211113875598157019914624055799864513431966638912678125777506985258326140596349614092798893417778226972436045899165599047588280918384695472817307639902711814562003480015545535566201855707509153491356308468191582627616865511977098266002228042632732538550082243325253037565426105989813130111767532606049091931206643324584067446043975856573254047109210795663500145879960383734729914218156287617897919314033921390288538629160701919001987680194318949960436467096987405780690521134367939768201747614736747894366567148884683437146938635009814086012434188602281971897378697563558974707303434788838061369374085406180184194171240287394998916373518430717483876529254023997257669083281373899819431636138690002392316464502841680792061241469667629275438970049047193206793333303778291973060978308851197992879627464232121981239044541090662115482565551466228994625596783674376688500606069994350697790380831616913697122170900744755819523878305989420536230620432304752164333583178550974869683346844114757737577064016626150509143972574733725738887826534409147447410989343671589957507272565392113857053434231541593242727836466711110135885322213156807740982816424344643845044158774701103501907892227198664787658763563169330002949621859807637877064652255679233940886323499674182935979715135718888319468176921839474423923567550307515260852727007964505665765876189646848583207555965034277908601321578220549919239863719947784446021579731782725016360547183878933571480705130986800651223131401856160225420033973146782870672458354530486384176659883899407227074661841241637366177489392205182504566468262925410961061434713840275190771756370933712416802987640812604959678407837183403440098691817673248949389850332373638931846408084242080425243921382748148619409377616577068511100824947697353977785429164989923767522336600735160539777953466062535587901304691347249958080880764603193318578776948968094196122955019412109199033331274425873836508097000026290341272248880601508449707446939311852890892388764205864626398202214302783216943440435598150514226608240900931061233347947616475969585265404322814090379059507109501672840858950299339682844126684568844232131190107687830781094776064115093043686507320712282450826961906980104410418793174238784656005753644330568974662978633021785118313708108215471065948230712447652652054464961494510592491985331632675910503055963498476938425377515202465204419600728474601105396043514335459442351437158215580031336512101875011486427636282324112254949486244208737569256102341592964396352219589717488497465969749563251443965137527642011044167753241136242803717177028762757016917935442215535129700422710037950804135983192890551563755129308585708280700605849486855494434841114871383317949238845269090431279706284921478779194783951741048831177397003115070169992599163161560316746205512126351463130206761723679297333837231449006565077052882179225426713686416965613148644887035490738457892443939237047935582437728740033788879980831357819355932923967867532073196327226681607255124808256744881909031707924766768573680769141631385860241816236141615235493797164929148706414598410802657200920849107609723665446295082320954734168968483633666144891484532647456745469789185460875757082196154427897798928011807871794633234208227392694277139756312329574968735526355770093854530475684071946797433966623421796869563746708948673265731646562387397206430253162958927379078909805495434944706685272603830744990347981974580272803459107497477210790257392813669823025140540063718948573766519403923577510863049452334903817810030576243477025567218728148602766660421880519329248872657763424831784795796185901722527020775217074180624654208132283216939404272351262093416925877480782926832709285740038431412530691228823965290074364048684050938423150103582365433417777160241455006078329641596758527335171098088482658256381136854792342401598934926512728285510030094696451415874303137021922756259896897326274226096050009341868658554145898388540362252175305384750660435197568378761885273395520250372258498749100769566272525844122120744519027768617402813927372477169572523468500385988965717242876432992645492997675482954116028215898520402017515799715826702619248447015903201115446338201747461441000485942339971963864330545724873399094808932585445272382962905714918270982381258298943956120492016176697503208554338566704119310700718623380745358356184179211050697627250342338283870029680396560877730819566441728777429040515767430605184086700147446921185542669213036936129455072246071364859371060631819626470093236302143278518862966001262703783990559524357107580480692290282171620475387296739940614818803028103332076743517682230101882947205205666331083424408719274671395322213692832061691061392836980880686395278205953790604593672051429874976860563944674389072246018996765469505743590966450126891222663416054057691637975168922804077039823407902138847822807322568205094104373213917412729398643579113748591709467051393323902292349445519142745498524518707275757827185586839064854599456983287054908884443045743779164022254619464575294668515208130089390869007283936522816328493105411475255961952284176068407043893346488477064702080053076522270248563480678584434758016383149484905308068274226006019642009480167769555480783467521489218046519767540625870716376228104872044937836430153126994801669292067949624546445219787522543474302966226578286353333366152147402320205051103633314037988915684697025030373293431996597017756746693575079552830262242032914801092527690924399812353184141300647234523149639729156455140137915242026441499397347997561961925551310988209005272625128823416026164508178743582320512107592726913887457402905061286521069138268468831111618036235507434987141017578533861229675847528918346952211514473938085231465492241997609593618619526378359702165037041200425795475730041889625022692840002741935434010302443661714903789718922380144920871342329719264864279482731912970669499104741715176398609246647683474149400623965117116445916401254187834424707653930231464673892059896075108660490741187291686880027629891441477967404844718839693034948359690524915294038697857261413571580378579048022186673227152709229179686049205831357216170970692192557656300983859475464355925421869319565797935508188990750956732676953276307026901460348952088130582285379761836638763629733546745111105181984431752425271208357428737588831763163811146645451297579437998862586450507987893209044793445925317978757946007376356304315663154342135816927659788799711328638167645637150046838930418548876943419707816591111762973430977529030348556095526643587648623089831477991028574649044196124147297562326104538556493557441957128597817363642062537654930817559483418243799741093842095196514733463944883907395876068046953934550911279051044974305149854623253039621413494047156965221824001421042731217995445543453320032468497295152683040041827874847677146073766962733348836050645717453219619047003601789225084769913608742175198467920086748552431689665773527326918268507469231917830638813680370667219668113950783008773342015919028719880347903177004132893410476225747897081159369897295991459860412636942631914897272701941243635777451419931693438900325882830842143413635566405607691413458661374176057266673714315324191207311079814970550108721637659313848498696318682153673180885492602754321744468156457865359992016276589073835975518615421212829392857234723166832627514231724042859641424152285909161951520423878019825371281019474305183203092347931228267246308413257514319901203290541449977993996901838219612699165246844460889587820757023145223482330548735338724988197754540769879657115184635644702893086204416798349082126453733969992692315697174183293808077138586244650906888517630248126308491918915487577034097213600327101357111255447571335800379400124190206353647603375604182854144560226079958685951307426087953873726220793357885341718616364519293328958469406676497431772603622482242224605168811435484611430009549110551367903230558453555875164304392831452129625576525300495236499194386421526480533257607802644313088364216416346668766014864016018490135864703624973533979535310776530670813883860071728206414390422212855476737728723145764506791697291657218219475966211752971122495903212860287003883297363249436087478441733611617615928616588893904846681858510610937163791792862144087751515653423232974656891877599315424383262039336066443104863869471033551541749381223309791038154210603674355563703157361557101005594863371377280366295292307863815013949956183391952847012512086770198505572368633234804578514760943901846344727247595413414627280526717713845934440146972874609624882726331944931931495422106837014787511546626476202590849419820881448066937716855902107765020309541462219253045184786716948667973484455465369086931701438694488358840942241864046770029925874435308689384228454202653526674939428567719100022290503832697998512150541918673989253771172511898002182433750148796061349635904536803786049263921574848606520894365415455283571725366001570745602311697921321184269429600556936638057811289935136381048787910627130678590023960167987612551976107860996275861520877382657153381844173419143048093770364926735805157165677828550607011648983084006540265683865395440208896150438669638527184169737044610735103320553773354823761308718705960329559656115589296801628807398977470826380100774675793558261894420016971378850419505371589052790229112164522206213250325897905552911045972498918576644818090020174384520801976974587722018419156847759372997236669504046162197264447299632693845706781107374412546320360436264078179548915511481158525271457134989179010402997781586013956030287711968737556135221767884148349733468636100593319497551183569076916750070627263327550161508320817046689048221284523769450262910667184456944519060223774381915867366477796821508347821361770493799778119844512163802436422494693041684356916152800594098888978337884587139207661866679520285712262672148220357749269499533767964915645263281501625765905751409510552106924644532802139914973507901079272046317520929902851729867463497974503216034656296247333040991727595309184476087069196368635291680520678448146012897739577108297944151207982865626030590991850501607348398317933483764107236410149418311324603533376184387749429527449637965537090983464609830930776329899099771478132455473753987859886689339976988384371254814691755232833303906845018717303704473931227337717287895206065686688922235652480874948506000060701320967339179005875001864970912481146520771495370113272836818815693082181709250659040464552460894766045744371091019236731648022769586789782975250930753995564927931811928654510324180404633414691978213482367578851724400854039716676003758561460392890037272724121056695225268772423837278608956982079982391329582762517539727928284038319942407012342381244272053628233514616532825361000432583685425537310250847622483177410676087979766242599814401289658566015953658962957538182884392612850600281700474522508226038739771217933080129365791171860581378424159694075052394865983629310177305016055908780945246915363766529353333161035415449888130677796306271024428642644251017618498586080770972711362272862481046668044828565630234843178966001184790662915900821936557916865273701345220363892518984281700752098103539409293595286835581535276065214007905096299070413969916626433864909418911535032725513212050995839983168528377483212891812768568511101046298158928188147237416510739290565450197376046014036774966660761366574891060170198636339544871416632034562724493216098383698348431448776645611940639225348708536449424000434516584509881409112849459118435561752534281051744116811440434080883717915125013268654433838392952988965428997317968999546347369491008237357584567578975580437556928924823576462559639958806204915548688606696636095632731927096750218992793395521050064764976616631538559711042605200673513426636866351209463766680594395908329730635177495727239038025737737369305766439608182543649389231084110830345134702871792852665329159682241312570215929164882124587061780718584393071594106365983894817229407785785829440677274336838667915720134300807186881240676218523964678101265441932078148246741138691207329478747893788522312528031088102920811160704000715369327437645665165930774868052228129449479882173045375758388275635748046780652812992992232769525388591363446862917662508333765916338593384411641645646748774820050780211686763999293891811734801477367301854904389430611155453659149775781376531316430290793684855158442787318018770570264161815050825432721200932524550246586856867460643217823098470116077261276529703087599573409732887369176968362580497102395730789170753492493074771666445253988426610780272875826428363870164927501925627955099452761417302563723373575094525359265562328661993836313792587009616741504870696403654486927290558981336868887529978950378769963991759071777436721873983348471751248678731604384748223884383748307952092945344869966911447004544533642725480425606967699209185094828016905499487944451161148417495174246726076395804426607554095740532646123784640342580148404657928532816935726708869876202447626766531623330895060731918668221979954630074141796827996579405586146776510363825260527041196339107153844663566486918638106651013750112481719120612745390111532757492616163692874504805026588122992738726590787030940669761316216884091020351938792355192707667555341702464441225730532718365570108175049829577799980887519150601939703835596784066785762446605376028523269205391066133703761558245579954166709927248890355603811581552634735224069142419607964349741040671215442433545910875426733029530019629538716377414025786710022342112931541683723761513700536582755839403433779981090145840228202548570618637527656313195568358736642296558304159904478174215993247636635331210945929821228584316102088216301703324244937305361264175665652406851587257779883738406158411633411585044517003350647330795744626638025940063070685143122935683590916720427694357252618112152651643419982093647022922686217637071166226728121003385968367913448197491277512600731295543026220331099462943633193891884195497281429110192835808285488856874243256029343678924781178033514160595503632096838516219791285573063333898729999953154012309074457827989806876482524968084169937829290748746251664730661703228474596123371528923191818795199708736816968688664286739157394127781817331383490692765383556836321177779935676255599798055522523557439116985797045343849485388788674622056345103008537735789760440876505180128194976923719710944460113881124966008954479291475985560553960888164996079782525780882612866223807518764929005858985272407871418706306421902313513895669300657717187339767145748687999493473867027215156478176005631945146234160042695411290949260801486176000106118103200589459771167242032051664737912345753173620540769999105949162644585337017692735878107856993952527298999618597805915714836598861528973398897493882084502501108138738495899854334730924205711746621285746898303711949143535688159018512417774900147240525104045261645154108949608593516546314067862157406501687859882383459214707994999996595945967256904998805902120333376511047619653789940593890435231257245947832862073873448089442017450545850689443239923697691837002783852438632341192732690594972157059139511350216592232665758548568911952184095025067245914141641388165954405335021525125198160429114237566456073998362780910737913770976084594605063819774112381089847022233420122093883505325172925608393872570729095888038847855888695538390094601111001082525517431036643499983807599734471116262843233659383258190342728850687552271749187274918332451310900796095335760328677140256499930378281254069584879694874722928956807130899866794731424833345539510126218085006126173545099194910526010269164161617509665952404383881920699247587693428071194231433236474357899256109824069149048014049053333691464182111421760499985602119517845130120966953405957892723346154884147127610104075969257794057091696589403782929486014147580558723163084224510372330712969262329625367475022248373692988084785844668008386654835730844095310464731479834451837207848688285876387058082304869701357873029408357885287277846229973370003527846337270502878129740464859308884864751092426489464639384566887711934738835907871024766537358334993931160209275867486185159803060121308212811937106045184713351543578908894040621503702456030920759725419062715402000377479584182521034321715764021116455181599379662007408750039769635472389451329191551089185693233137488659353754025185569131216105165567662110696579965401412767870709660056389388953380243332285244364597564621531463372183001178835664294433435159327845578846130919888933352953167537587061973707720828557295207456655146649751718437351379085916656591805042807050666427276462608809443364648034270107217235919871610422965581222393173470112490997938027005787477564380373632011706239192528129035403776608089364637586471178734063066646920604976538167984874269582638463937466468669705742388613305558764631308001864297145974572369299413084036768141201663899520415470344792824863698580793884276714740643142484451367506866259052951019067336386750555069499153050576431976846125429813356603590291256541936796573271801931699727872346509848899731208725435499609040162475179784629953207352991275757425324050070837709850003505641682325971511050461718716899648174846341591078351477056985504246466186915790865881800380166609909369416060242544749916178197579625188383924883697901599417964115349375605031565700916595590883367548092430520200299653719051512465365721950646618533348802428730381554441327330569176892201747718542619374492515628167216744992495547447450269529572258937192796610744156596695096959439045404058512610870367697534314424899087486014800212427713431513664921826463438742629115122329563600299968328146182399156151433079780702844456834701792132597728442138614815647016662685719902006070798887692831802294501795509688071106976942564349406527395790641400946146338138770972850088210167164337784594485869050444916640050704274346945454863796586529908533863685294630046521317998429635834943190605010804604241465907087628244669352793634003926759707202292568236849224762142103615698782981107540163676578880911837410802214849465792057390463801415036179046422830201236705846210987513369047342894949495017851412963760140914155095950910340109603743333775955704926708792618209002477235734402455461818087093132476544455458407680661574108503636947869844372475422989013852233059327874331163604431382924731189625168169783175704055030732218844976592686037723953423203220511048863608544812306603756573417271689447674604028104089616540638067126571622492368979067336939502490164993264975729607804592876908530593826532139410775640640233134649057489930735703434455773940870478797128976717761011766035753155398549096787413408365755506122260619864109334181871473571657263978463932215200761860019678139292419625621049187118907784148936485465285396741311626051333991025794287617912011552482489818310114415720112049748102183168612692372908187059113658152893263878982526657734191981217099392899424172780643871608210759302244539679819163292341978433587533571196071155751334864692217817478120367601100967453427550832978729872676738375044320453438510202797815364380127105116211676763407410259354251290369669015108047748631459745930500423683305964352587311863857427697952115201343228837415739985832787539571599046382772378786184767589526232617237484992606732028448342858270889176240242520985027794899865379199863954944868197534232967539091750978692670276471035707581376895320028867009758845920872176971267990293365231783002611896577655003730033223853197549587603997714977818414258705445678281934887350007153177137448563209280752941741019259775601397770101073659609491932429016740081732405209291594966660847935439823323409861376260520073299978243073296214268603328876863674636710267691612730038977084303767534999451018127215994757231172085406577900874866871043445814902223195748982768720116887517423627146749863740772900857710230234103408147305242162650439249615929417671161259284237962913592943916868892105509335808193690018496135510622727014213668277311840783125160151668195321749946659746661094014322724419433911547979934915556382169116951563687486168876983524024596458121308856858425389050642249000207736017938337816500731131008201258405004997437759413965553326309519817451020870017895106388264971305413181276823048371365216406448625964963972820954272767038646308858407160028190230144500393091747563354493959236183751192833921761610653328175920208070174389909225913840017584432266469076207065725778249463670271037476044403529263892787838305714695734606356935465993197948521208292818783209871757232746924425796691476023862878361880358383901933547192757480878209926613870963205231063393422405823023026950191409061251224946184085081729316726363451489377807540559120908528078064054554547550482918392765118052926545689969994571914863450150040068400787225162595270612593825197482338198322388503447927792654348742753409972667029127304968275851772602661909007303444651806707454628740728304363335546776687566589422435576830941724747997579380143628493075903374604578057137042402058003968386729615172740422778790673638966431217036321168451374184932566533975074210091124149288499269765110986364129880838388574417450291793952606540205749232668774182851040407685124075490302060794360930316719514554600542513535587406552894036434043173983600790054654396055922018486810534399326370566655501258412164206003051256814299132789616130600460272755602542681783506231905721776413240133516663162879664638265564312589753600244308744055632224366651712589782146660984945462468861455511909835968288350603061307685471867724563880194029782955942113588938467439717623286327734641313127582953385157251111223380570992698405949849317412749616128932110966813163517932628446869303739018025272802305082036153356356262705884018762178707083151029836277925351039734770578604749702832769045538481094935004353890245681079967482328196648469093642116204794199943395394324786544911418271214744858304982422655296346810728047500702825481632176158628275635248419431019497790813660368350631009995087949654755892161833784293444419664646597023937014170622041199299868326996530736127180420284200888050323790008510389156062573658841930528681734974708035174062581630257074549400715357901387846027326897071070557775498791834183055762522814117986652027169232296713481865649608642829600095660954968233895801360515806972208054908264539868432048403473637843008444240961807879770595465453530199330642806886972659052515946324495664786903145838364950466104937854241123702624068882418492181339492677250448077756366355018735223322359873287577885467444516178770478836596747063634593555214624193365772314029744413730875795963044897423883671063457318171674243490968423110133512272012052550708975584237823546693367455120251326829470349220494208719135702585777744415207834319555320470414431011081285154568576406295788183231334468223828268900511168057717102605825501840294136012365788298942888204434128064569936383968024263185907769893267693466317341082408985062530561581028046830510635879364775987363432302304460630999971008561624042779217358228408641720077535372478700737975807109182654549106796433583290620462888678731083518491699457537313314572311512840162915116438679657688776912623642632086296941892196277819498559004162960108076723937733459230034737447345227769719621765853482571300464803563742752963430817388696692771031465679577922550706154375819988049475900220204376016226986825500557926646127645426282764610525461587785531748641412209011550770706061655122899432197139782969172467732378658022476825128164513254023547306791474916857057617354728609579767346421124228819328951593012866584892353292799963770086963232940824237969323310168274245825718805011272015914280860986597860962116805889290717338257379183326043298179858758907016818200010050764259969102409489453736103914635908057453085315072210314447478778637106754424480335051172332755683792909352033466689790111840956004477109029990844674557419480874188617752777778865648049074935768062745035551244716707608696721821070968411823726620747708357482616928748256995673117455170932479991226746094154500137842883321943926474658082344199855172229727231861743480197568162007170679242264259580422274438083226401738957687990267119848379563816259600663887177553855848870434949240526994679469587855788866905464097029374009944901734357518382838207518272551334824167673774099409644749612966095017259551269311532119860601635277266974055071231332598567030418752332510838879235499067984548613696696522885314480396810307786474691920256824903580553999267886839823795832059534878288380348912592468119458890621304947805952918852470882129407467780827449962415043802639101665465199241344128019973312265115722226242508993906215484409575594426536822570429911458426941487480053300679882742144825349816658109832534930506828302640977236103913119346879536463294643357534489724641389565117949355561915134701425573667671309811819275318404452800949310913851616847533266921397680635727000174663553908323582808482163156487762226068731303528483061092741933325768438413242847853079929075728168628235035724920389522514146073132765626814689527265185554722310768062860217671087665485483792796653017003827551207564403338011513403725726526215597326989501159818299658644311400455076495879091105243539651482329813097428045595397335191063981796996203906030551623376942643436493045746790933287057480040526124145567093174972998488090858529319257184250981928355314481323271664211521163022036733366516820257785208146219141047018046028646784189781960859332050628935152073324939411616121101866810744028012803782960732973666592185171599245403518860576397867497624719337776445951172842268858215815395495038412157644787173493975779930395828088952693941574358203930677719233783549448376474616101014209342693101953098769576938763162871604286746761240037792904618046896493786356279361739236379710252194798449484508600512705244233795788366809965170716335522187225859247323965167552323721466492584134841645673860321277436649496724609413475596759694337806136722968214663833896758829086395036937072071479972464146089036277589017148043731239957971916652767426801744923967653967505393853304752758509545788450435474879533829993326596531360548474936905565221475008826875517385447165636034420130012884476254253591523546625508586845848421015936818845681663368862188820387881216269323301430400609436410889479144546356540969489996594165453848715577807974874856258846487680145694394899856375811689510897885809382659845325599365029131342716111784109867653830298015486613265703358364451038138040050787174162932215695326624673429967722059060830289571833220613959239430370241667427769680404099267072276191906018904231700036535107934619668574769515599784817636858730348176165306919344107071271070058636693711736929502762623811741112594301525912732600807021647171735234690829853031584462557747969893344578379413849194237271329091811943014265122505206695957675036201344520954804838312714304824019729780307509195967614169033275968843982909153655968134584176010375030525053111524019550522643633663118492060823621932644055905596493450383973983159337062274148186096919797897732826681638891494903011966236702599578112763120149138727355777047057710143662059353121140622817280570091219934043453008244248482920405551323226697075048770091377428540284805039427699353530860093386165398757849895435087297118506075933422439226071719995443413895604845928697995982180905395937173291358322631245517587535185963837279079654042899730209973999657236722212015355854836649242780754439560063893614312771054284053374914971452286390857624921915839428350271980138724673256643804542786858708828097867257528120371015956146794102805423202523536808980564060562241870817615383405925082438416926508710802951215807997065567906500288041932598048908234096641305173151698337979833991565114969418492514130253762180836963403461750222741208629533936294951161962719411968618223563045950298390104598862246172888561068866454775521148082503056615095085600341441776242488003422226937107648253547870064721274779625362214828192925388209359613305584170914320145301555845706100284845616710696977285222071463449079991151536890976627986040785270588033266623868003886303435350754711731928582483916420060867276447709709891492954764566575141442274379708154971723523507174682004448864789979731893927221372418227763723872213995130216262072204844560708640140707597462866336629866756338183973740130497855041285485629732833765005874905575706477060146459469134770721853000705530258090424887061099883859256200929499214042062305077763619277022234117403829727663546901595783458547183650488018135528116299018339101878880919039843909209348376456862123573373958456898129330574421545338885877533271492950810188522931684180247061695085703234364485297370841126655265943460547447661085241132865834043932489786621591173977209756847674206333569370894735600551477945986966121468482430089390149650682519943427954668123339710095154935040617723171002843997849666317529432132773086965820367733130009533970363385259524358256782956131330759564645503317986707436519337383706930627582314704758258456081005405086964128702017430260578237497077848387146741396877298780883256773497688771908879224374141797883029990221689069319286300090440913540170206895776894550616710790781304038883215815047687088021757021603753047908249900530537299499861093098183223391615955462869987668860347125775854730821831052810609671752378522214561750044215010610984784654448575274774086873976061510499291998141859879328646913696208917446912131266060669190875785619184563083910636254707939296303794029147675461741128513150202165726723518919708760760222422791126954682373898070526472775227291562660285519229814953456804660397712904362990711367820119545614812640139751986343944591980701366977627806455163224905612639300396790328675243669030587253373144216830241259474928058829357507452469351224965285842493994159040316388278707314590038349096594476193922119222250150182569835312282726437771741151423978686876778392110228387467353031856599746374920788763107459098647833446913175839177069287501887188641825606974835166755065060165152539448020864522436246254433837501355986152964260914270631231591032401495293432109305715601588749272331804237461475089012334343181799922361205517231717194795059573298205007131718656655820892321050062087717286773457105162543671948004326133599490929845484128725947776001750065791135067806429595328061949686429439567536182544715362251889974056924280108321820488501560194486175542171237850051883947546363708900167838046961625375997214178331733799907968507191265644501865120868749147732089064586498171092764468917369212286140121746453646861554308746201891988245498841787001156194079175515925160134156237716318150085171592591332935636307976818320836678867611183996539839972694844192765497434425446405760579901760773883386081563053490155289238998922313725140862744835007147992559924947943234449682829454882930601220468438240435540566685376590716873329941810312605609261552857275728525657008409181312411999940743459755666461169330655710308697740730205471000913918809350088156317817340493007541562258412422334688250490243008731361749827146360733301954695583463940217285844868758678132429646125936750429158624543939581840153315035254870710873450700753888849144143544995373306654058591818296853759610921829692944087207885654210828576222022412472131843526236060678138059539612018830137672303536845537978605277198905604206477891017729664387819497710778942468570148300943421403150540667960977337132979977283446892866401968125807127654174142361311892401348721312897528055367713527191972365245560041723423950440282581541346157495104815473246241855213992002525597895975708535816846474650021515744095105595944823043265758354127074817743849987851030606333171775428001301707818456544229520351618132006436179441914833542995492257726439983413281695275741638342051958112036382276083999427891359530387250936957017888854857163552379799969778253325210562268136676225111383783511095576639327933323932679732908539447638687223488142774998520360653370289351411049485751152983968025278653154185324233434077913716796339470608790617986373854193044230991379213703095339863964253864201843489429757542631946672432051634936317013834686681055212172294237928817526502741841552667494075348757280210304183588998548211296466028712156140403729375607021622949948967655654360078933630374485657013624442428555502077795936605834228366257731771268761015945774238598201442676172212743162258300126906458802168992186925787646328886831901658450257839698580016778303380414931830287722270515446229444033732076398835312808304409433806975599165963647612061901215329268776367094670792975278032132165871142572511606674446170116939747501005523702616067268420283028257774855074965907219092940470550103056614534154315352778742260945860086326838418891342083709127567293792226807926934200048419180480322034571589906937773847597036865766421632959440226781281911825018745062717266336292097340292632831155255424623895706707368205218693054820632327462226659023378936786688283710067310612452460506341406754695808092725769811878906121040327724107414638746034868731917053192000365481029854996647189275791362903425857611786582108185438227263722987408492998803543738798976776207127230233671021863879810069808131011705814897490318234722030506685296839770901348357935965744553834240738153035400396765649010064256817856335912811312199759328395367856650460855998663630741562484478444789733941564574760210064044440446341600453291882767190872195668756176559040543012369505592172606312391175893538359691557361929270012692161655174239316982474561779364408609450465575396619373370628020763047760404871433284659886196128859247480453563315379115527476555036562046336389044638689574143435073995576768050582225105027378958755752128017793354755016984035132697667459759519846418099639495966959542228994476545063307571735322476537360600163950049887876491386146349976894912402272117558141431286896457858880013191869712955368202317347110569949847505563994020024634972142166874701981697335252631906959422248171210921524425264271235387238151109515530943557535149355291617056392043068048010105865154732796328059709799403138601674882189971820889452446117222628348175140250436952780655540986551919627800818041992975343188073345233724921996827082676398974361128602801564416332493570167992303048229929976514033575450963642099933711126120412486471112128565040627564018273144216437580619955691013477588312528158341963999634808530439729724566015852307120853913133035728213958381189750890485582593684053170669587011940821887667125020999772892325515881674895102837726148545803102826314815263689659998777177920459975170736720209319700844384178085437269428982584703741345103740008811829787760202222232358169679922871066129307021586395384626628911063502540330515519411137526574852007747946688868443174006740402282195106794032194373061185038835674407052630953252971836245600016608622984314673325719537422243390876681472947503186254624099150693015460928466082855560360960612434294428781778301440860896611435925819063793974352514112974091410167516287858198117879210411140210387013935120584484374238808593424490982529791194518935207485834448465065286669312618155385317218668757219898173842286725041773498843646948991459064958814954624408743078451248778146009618256352640942734882509077926622527176181534798133858680586789688361251167343508261957793109355965425563611572979402182905256863670690144073741416988910164265748347567560639802204644853352715388999658309951209712738787059950882659831667723167213525137087015381827967995979556131382150488047602156007866961204627218385346832825854569295593452695536270463333252040612074252946253783036503900588473921472499202809348070531062101317332296062521410422234585921660010307474667322665725024225539626474873914172755311699795733410586551584956968084921908879113171229870784170354609308986241041569715234536947163415513249480384383057405075419090321324187915827014055496074800955257244476162718825174091006674724123039612310996425633394924945049179065978656412999258522311880291370417847242423022999485205382025612224925049555102100209173872998355828809529008463414170134013501438541613723940839530596451699958646907514462441208076407400610992647942917968931213680479635310655319011509822775983649677867836162984946227274494920713688926661590363207453789837537088536048376763781050970244699326383449235931933809298795527108533966742584884445834226633469748628698268758921061359867681354016665880745320111369541023878041055437964875894851188112266834895228839610689534440234778888412038992841750421297815290070497120082062724276297374758655679178809178316314518437048794000746855018460175773311291366518666698133659719428199195691816097687616928889133859136068957723596658392120847194433641209963162534011981903652403884195937090937323777350608335649790970748432326164970750859552941329184685693702426910000155238997873707173026364438859961298651571466696546282980357510007165289666291009185720345400973905705675487981422201666599544508263333838312307080319178538724022790970440074600951957342751416617159179250601455410269167666550438361328109467142327389316836213021625802396821499902604661163813856011202147196247695692168434175404309985791575184904257657354682132470288145461517066302902352636844219504986536186651432788275184005948125625363576831883975356852706400376341792810772280663376846767302541392043293102882084998817750386769719351457655360950480278830476104773819053615472829266251014895361188307173457420989203066726251452830423724614333174606966065735756642761747732137374896849769399278708825682075371377067285723783580329267531751069321070285192772455033499382636152517043043612837271538987283822686297782471323353640832920093376499717626465737267267382680661237137298153203821673463131728796393328393055598778665765814585382615261572608046525318906237331847127600004417647554767117667098986506984740661975605173553785689935551020820220035036847631259460791212525850532631796107269842799566258789130386507532655694170950620995119893253770749317068418149711940583931104914999934870518094718603599826401038978162168140686569765967820310143338246392837262151244795937884165557110128057663252453557015364160228762081221946271377078596154799921263054851046097900404204973120919038879381352487058843830113930676270972120910400737438635735500355155468180207632495242025333436973545858226392059279387472198043067629658973386183525808861840528518177266903048484849456376557300408924505280156109625701141313051572016842949641024064027199736140382546367035274588306013810082016823501989865812644850486842450235065462974083134168867293961130649994895914098391247205897046255002012470806980618200406230703315422100925479717001664056813439551555528417941727805191365694604539984584199778676980687382353161802306008951741141544705719179592009555435559620303650028271789978534919899268530810120846713414118083830961092348523814766020597987471112664947354550766866266868147766697666452387437564999069883776201851015139787413644336979715453152685896528991894587761698768946397482016354021570815267800107453851447769502307521381636389467553327293915028171856988604030540639446830433467085625679529812239404399688959069048787896623174096783336631711665012613482325789093192118531608803157775899204633800894458107287869203172049088319981274788884087112190374879118024623223253021481215414084240199967003230912186423098418576139395710035431758045551536103083035107281575133544324126535778179069414193024449303976068606110720388858173146293437304664210835390739881098353810556100033889906246525939418891047892869959120128602124431712578727364836416045852949593426729211251018101569713908147545499327024417305047545919661978766842892633177680390681749958396181788681812757389986901359231614969348554370733043638699863602205348607405267929843892529082537188179283710615400667590007329504583406218873999089723554229521420703180045762167088030825531347668457917675916425641767783893315655786728067290282731700358713184990683193295291603547903520690141784267864827955398042457075644986818877729910740247238774573405295212975696452473009198832270821833240896505912082800986689346784252533922418619392813882342546436498164566015559882995747126831913485016587439928382396007764648176459814528660557037351722702160979283068705887679687576041767333094838541213236850377927978012588443597979183196639212101727576036462879622717147122163328109995569096230762562424379285232519488551446984709330417706995623888042218837109659875867422619912947126040636682324593692205224965251110349268127272813258353843346836948843510237078636504374124295589971224173041114979880022407939323971337082594593648787450563762211288375615175915315242735745388682957451296220908030057045136892417749543298669286001295633292609737701374343943760761155679617261846279106248972114895230855201819846159319912625531660881537769882118354894496278384351893795192709696429484591750772244432725400695706134226248498025020589018215925555920593770255765595184696894583887860518317200700765592128854395602265637392361792567483904100128048611619753036574002355580606824355527581670638731239526844630630045849019996003447769359565223866012725837301746042627046462921251961549956550448386903289934316299810011450082868034435606448475454791153124656284800105944582864909938265092653416417275981304370841057087663222599347800605059889891100796613586515459680018385630277531831835290294928015827544230303377382098760439017978908676275463547960890888925648173395273745909714659155796525216202900257524747901699712929353403175840344973878336589838381233578385472099995359239239845813324735266113800600182501964552947023287766878643304691311752616105699793278272977862143354715576391478536745280007523843842073306421399206824432225434065817339904390139195737074031571030416575580419991045585796669951569218816813676238511455568386015043884103750988678276446845088910103613114237108573852817808590377941334685454185138138889529387629588536776026463089964069452963170030871650295783975635039669814854492237900939504670127312841699068723739274708594970894764834300127289177919426860362557391075098026491487172635576450782964224175112675813760160414310967219067660183896281691748195151641686979704422669945417256938229006327519876407596703993447378735986968093817754376126645785075667936478340945976842645890506260048547293613059575905176328801613457918099518420344884881492596466224116009930309059200472979772719194545397082523976615122688149883788305962763994438140301913294615414928485812261973264062863843987764974439646006286920467703445197146097906217144977127295215872561214754935567957567176104122913709057206526130472244732351713132913937830307201036769794169048420195132991754249472391293274574372445605590008292938027310755938297207187153471681174112983703421110110861906585139158625652479342020130802881546476436183285173704903398264316193073593598323101368246052926498373070582437353941494737794989803573178950350453850686477931607650627087553658952729417690461895600402386687421704335010505656799180576444856374278220778417714352165004408677114653873504446003191778156417597706378092331369807140914046649998095261846898932033567824511270782448981315225429014308629210150993075999065432797335924308785503435938049490977205236567962504457171834873478770297163600186702075008903493153380883990440811495318240335778981347965490143857371210606719664482335278249132900361649241233431816357832385868423048560733583843215741779717009535400555577039962435110364852409113824091800707972406186306129080489315639897024404488393587920823890370380776230525904350517621055951910213762552680615820544966908208286600649726254725188243320218303918004129920967639699753479922141674746384265601045482607565597222391163033734445655662450782056376287614190027458870007512285489627479085510691853723548115291119176356649899613854193010822467525776580110319447086901901527870030406190857556525119996856374536336346250857759115790374349402136271382466754554540893496384540845586117850684087159679683867045116119708256300550347942080915521493168074255522487928621998463088580835952411553395561286449572462789154743217912368925194078238773801194840323745147130260712201301379918997072104172939827351946745144948474645096035341479968622477242329791385801741889260601108398952073885827137260096801344865714595892712574357982305132227072067765300419664707970484057309295893431280599834538259092125787332871798386341341871443479570002275386930617983172539336593883594037063890362196579105463538470253408857461904193270657856097104884932437218575081020892707672117829466640053214348990901641924040546844919309763899061033107879291819815264355158874718161975864939883964124007254763515053983322866503653307452657105427963409486466131441700396612545207324515459762588266926909429514983966829509282030027811848397908394400580876479442728972757349478185665886892140740205752058530650372887613780738389518414683119779514138542010262778293732295457748184448494383322622282254520998835190133698123246538081104929146592196336454499835651986264862234034498403356559292115674181891843551726108302127466463090114291410875339714225382338712335851261704116046401665071081878702341949235768149954905322049630369940180072455242182380978141019473722839416293819321371428484601826515466950594221163292503328959364227705538455120000398966533430125094919489823079837853569462042726068530157789069111020684769426072753578162095274920708600336751421061541819356144043597582514667733641823625275292323924320746452930216062249503241144132256149085044185547356759345202181636034670344140451777158895199196005999470310616968413686145170139783975406649424619537771341500079805770857803316808659331525525058137260442643589404799319635195921511958793107133974801416634539632772217129353603171685162533131628195962424304130496439495821501260574599717645488344381819543123172349715925229278415300697038495470884266909898507847334409906391761774999762908349365881618909768415220482783833623502017786416456737849981171590999057051470874099217171216768980905876737361264523007948626221173616467187227565172220880177537619616682998392606775986744197396606256465072578415001437962077929673745977333252564586676303508240439323232070623051662995751100425960361292200990214351289743649482849864017817169604094206470627617381741414098417520003594046193351005738152649818775909579704940447678154233714845984776556135563113935760951566992191439285651912275435062360755609968297045608521610381521502727946540927454113216462423428603356351063982208977787941654975801397968297238985015722260176997672374291302757281514952503595803907287148192327609393254048946120486877566859922831763224824124237946049061637405935709406690916335823468887452551766088442556237618343602625587054064381221043322920987916241452682767943709922452670395858788694228883600027529618949305149676901408782582728770634698833630198608071542875819883053133708455781223963975899835681869487394470016601956344777183639663118550064954462119774165061484916794468939417297674579282024551980069048302681974252068275362011673902119795853482306584266911225614198287480334107354780011308953157320283638374450011039658609776510557679343861557193921812336285366864118671440826949703079614312379754839408445378575613411676506925932164327287400846414967947937265506680492882573635108595288560599992249913687322449520484357716490996422627146157966976265843267896812549604926750009481174371769456198264378074524986751985067001033343609398010748058362950911037419606566597976272913554892407977483675820332063565254759564174639800814533770141961077605088056986524583056796328372665167847855344388225473756230396892861126032841606362334987407908654610628840568552952026327939581819763866539695011708315702427966291679103852721166690657996047991185594429883743312418951159098247359018036759384064628156738301991846862782049860858264848091165966215975215716202757090266782680741512558509034784711568679185295193460057074108579686304395373502059980403543307931042975533058452908883914532796242561416740239329143772956716646937754695302593021054910114332962152634872525254053431880375537910830289363357673232565142412467775067297521106082072498929629976588674364908051794021312099391974253927017547061372726820180133586470083479485094632218642222324456717733210163436642441876431776434189586564971004838908258682010692623562469658218696913260834389511469009790350796407671890783866969440647554317940831912552912085749439058053050504746554428672048593224837892138220353013599942085375647624803519696609575413145547557927520776472292745347767424573877364413562258010996286042975464643928378672802182205714714599686591304559458145775260650535787942421537830858468302531925571512819114256400635200240980160015700567245166868993183373867086721060515406037473569355838073485733559549439382761723946778914627627610733209457733782543298618005675965410603502166508148509989115931759795019078976771248566666641168626325088315488702487767432095639121892711103862158502690148921719323559191573709588873219347866443224029436167671069778352304905389509765686437086857325016770434566382602254342660909631756341608901006481734882853033324289123648889806752007665973512016441793423328712145133902627341065383686345755740281118791699716772384444638876584125484665320779500227136613182900349436109541079087449594043162838681351514487901220390518480721300309177029082639204414646736449187177444164777503566657527360034040804594078034658281349470841513384336472277881655135134437739174584838635034060503738625523325684992747978549467180528726546111831053113429515200065079968297211223953692509431168295892534266397142961399537372777003028862151129489084082153308993566565770492300485521429724053578926820053216205166456506259832516245931717626273646334704664261542619022156089995402247801292371944714482569039308170200839374985313682655131958302395793654637418383971144558516688246623184497853110150756235201322870648896289419169898757578809717025652555074230731387876077410319457841457214534131091783399676364701284375993982686899390829773123066031771570370626230425205681457589615838213919296782970360390403966893249903710379709415670466822142324087792271428760738280846380148608836531165942600595165026516335589424476721621012531270237386232751903468527215980620653298179801616743652172344209105486080549600579774142607921868289329218919786723380138799337657349110708380204058232714890360614964426360838267739646225762632198893662056353045750379313258623011422544568313070097688353601304623356159178343109436907851806331178000334566002788988174446588173516336022765539719899978788746346245845110627747890018895636125523354376119296321931306980545175512313746029200148503270041575311109850306386669795800796034210509060471295249616466043125433210997125847387698427764095452927136120679402181657642370935181906312913344709712122232315164614923289722337618484900294338783522529501493063288701956624892159512532156093565925891856896618085080975390297044196233207209896902747560806967126993454587813609055436200491731384801374152689741986238416843273262414670974200345992623163127064271722586439560753832305877740773954627482961523725411481607323846122763102546183831740173766504066639547652503235747228156322816138529518673738165954954885458669880090072741324212212748600096757747670977931864847005713049073751262097180745564565364123753282803122247892525320349340599909182122629617059630585837962395339667001609930538601020843727582593928462041555389718824294899662603976985630727875220716854580814676182567040548957917462184352213905209436025895102890822543664841224528688874047092129128226719758240293764279804018656849660702095226639993545939959378141117953549916488229156345864683748092171918594069004681705754368667446479054417410753554502446089856558821981825333916500479624624191412214934048094090735356483578987614179237545250460693603562470615343394224734454641382731488184466080777555898808717002637351073127247697551962899729803614572885850094764800562872684307758216131513705687664846898732873784971202097251391035348020055719319605735729419849986983045785597260304384619418019457760110429541095704806990349596665630645642836051205267172702428436356880454012420378331261655069294778232418899298916714265945337979787424659685200319368284285710979566927107764372033879842577339139984304388994577134743501997003070160226609786816501771064918589558653353567325500160324991607901626995273502098303028030137653782603086840150307508244886216654012982361002754831790641009521321710282138008439614413717325169979014331665754440894224508316211276931433839693474034444240455117637217610962375813640740555863866272183114715595195584394612806822552412728719659240219488344009719917577483756927745362525418016709582837819066830911147969044908076637621009698115021714204942238190831978730074364434869425707051654327829136412664909628499844572985030592447325362650262732083159334799053097832651532071872863802942945565019690002949402664484224312753511282304305779719222499563769841126551871253268100233690489204192056413648922625349899624370223150408191247066837113451353830270037001621172065063108557206954826899474414956724203778205185066507841304422127575072555864540841970755611241164375826596532050644932750069695480524466401036888360540759558202472937373199301084288498520847925734827086730567212604520915486315426500471903748630380436869462276903512176033883691494407791425863392876293809880158393290851948565686176892656487942496911843439852311397447546668617008493430890190474879210366808052190075422452188743692381873547731815993969967608223890243834250287732389330265271875149863038782092107042672960743224576906238512150313942330236053827103359816188121222692492690118296572022913223972741026662761773326571982827588110102610627566363323405752315181398276026559289066613500902037419752532457714244987616178393560162262336655245599693826454473690315631108018899917073155195671122278525477070325081298873823275600776822402848801667768246578325780959335376353724064023636411256152158374345139614515538272257791102754232311650505224678075337502637069152017806827114213809334770863295777579839990467788399767088743222268275990029451467469297753557729353330710796156204821948707434233035535821196127788923078952013059738172449684305796180157475829741637318273058252871478248580517853742073032044472835339775064998423791343911480871885837786149418734087010761324694846135666156171194998345509956209202854468340223077128377559803137103488132316825336702541840364508642497488111211039405750078214873586150082992297298150606405245744390118908169038828579779390182157780402002569558446293840208634691455807393655056810055143960784031704874501288486756316120660595652584722017405439364130347792806311064856205498715033963527008307472065660152981991951670277245684255731041786532866847939242618095711940429649467638982576768256246629484298606698506216858803151694262701693584823854903567377440875812471897057268610759281226776446922061981136745175002334263797676051661794372067913877083474360529287741475640617276472037652584849295410212394192292222977804006809057775115417559241666764370811176353750506687139302141414963926285155658289906934427792269828839073442671357326481131051443504121029504357830443510478678967351975676479837043617361906440024692331287093137218366904176527757486379906441481040745975130513749248805865013612202706582405338059482455075111704033208951998622101564682630510348097202734960315876865080545930740945512139289626419852526678581526471440694344753827425412563896627475120653962791668073332077585096756890395628281757434808413309305628425790244395473702309897696421558852840205884815672605659290014405067548668418563316325696657450016207610599353025321058176470395167652578640195172995196029509756909604568945475916142453210380161320228359252623445092415331791102094415268146819068174674675436618349205048482523601974345567957622083606779899996651586146445240774818496307077410104165515920918432239374514809325674089821490748404724570814039657757663721909606377277554112829492849679299178243100472797351363008261717343036070230236055153516970368399886113611672425934936783711469985683738880195203397261939362548895826648173355257858399498482230502016496156245558987571447287971058063976205911389288752474311417637563080852168599437452434882772006183938319527126053148912631157819006226042304129512548957209212511829026484863586104164366903745523421312342751480096594987730159050194878501029681123896608315879852732077011544960018181912596639072407470496912190448971976404096370072125509611659419069778634393833267969181141522585194618269278701825932322432259315334083848836711269587766719001296439720474175570438265650387452312356186475720853755835562569502207413902026785665210447299899342082901729675678595630367630313652766600568591425690645675797569231503323964696950374048337484847141967836979169899972713651302903409271150795453210921263658511350765637856873366168856292537269400754145597295442512578374021161311432351924764230234043305748641025927511748287802509583181634860005869984873586499975595259459773241911390388425909154548928116163445609367220290054819862811308564923299120611817189390016113326057636408622137910314535377873149642887690180724947718084432598647756181002476821931175482644052615500527470270322207649636130269421786277869263454506949530491594130059035424012531318191302959066624292851462643406626672708018260613866826507344695464131900601568397150278290686361693027865325146566498435564880617437745227439151937691044157108732987831214436660265748034150530800256177516428600262246463343383332669715106578478002193307953885117559901524936080996886374788022565779598312332243640982489279855965942775860781058988941862480664992019176272151393418529805460295408220524761749740709257038732208821216691046085589508281703170359028120493653963547875433444693550652778067415408705307249120253949879363291173904824759571645751787606033570790593295420480758829813936388885367138566531523499280034043933719895073094683357470376266250365720685382550653340779454905059219944344211149383950199753145374638959098681756967384609394654229341463242991260186447126645671607002335333633988260003573040709472399256490746577087172786556794678473107126504150840011756061228881585472589389311595466316810762011098886345035273641341494657472144013063432199373885676733691643962330905657605547963382209949624325311236608084838076043946994882499131646531513014551296511730117244073730550872523762867630141143629686894708521612829910974858081521227353326763295063959229373733806115946210399714764067271286777837686684153319709032114202020406908954830104000742288193575049144548747649559492368694893842398445725719471995230240656188284414673108112933361960421051423140916442259070654650751718965367427372522048225102228752719303578771498553209908485512651159273193463140601233017124171477443047101482913608464615856337347008005627050170435546900818652718071565046033662846796598838434967038186759471067996838283732050610172630796273298422498288229464952193704994737016537342073198220485154468953227644363785494183365473847478735767723498088607616858811494454085619593562369627309840234091808344076086579575573194722810702125757238566779380366756895630089274340127165999915902188880538386948393966658616917067566965328621338951259514630939558637338528823616326068814174966453620625911791799796877838081208547797596509122325285957766535133638825486448108711888885460705935881112636982977397009268961198796482790507384249936756636086139050059755326585344892068218531885109492147852835364017806672881954708625383260731933238980190348119488720844411884700072257318175153795286457485792105136697709786966446251129809286589242824174763331032555832951822329037871325263750402572833151615991388207540910766344665075446313364019204577378361375235704660614333200362290687391356187722380644423339948579352652199177509933008645321342501717191228441520589549075602479905372416422230296393388825711428654723231787053366017863155236765082910721292221812868634762765095549566210341059532906112445875602910974121446287513951099229782094919834594712526208120018175826915813819798102971807488927510819173658702259045636342093727837634310393593331396581640684832829692123012500501072811816365171476394894168026174198632788812824249004556991071179096053401117060533415802450456884159151068150824501452147283006136655454925164014393956679680877040261927487005440025277152733685708908148306614448110161185068934733211141948833916552981704834049686890078828541141249692345374365059354978145909693535241470961940337050694528934970332814438491542872488232684742956553496803729464975712313799306728679804037414470745175636764336995106682935656632771827095373835182004111065331529661220501903189186802288042116866125008908582331934852003982475374837606445515067564084527732876146835686591834031667458149241565300989174055558448445789679576681398486055817865970204124436593568273108609746793202953579338702762793458071625683964935565852245842689533390969093076935868082918907397275713005651033102613356285968217657857161547528375330930062211256718703983993400065934045873605839173599170028291353632775259415980945199597720894432237378648636916472573677543709743326725419186448448135716295700857570901097043471655197190700592796865952000002163411202425838454346204823179690765035336710518752877917030485274179395926173040396086743895257552161596148618019854777038440256385440790446598476159795177186205514512282141176076404655350776940547482808444886172887503811490488724204119725285776401345953701716345842224414656709111953308326078349226526401624285051810388497747113470374128962830371571618868102516090248004183208841277082039982620012721412021384733510516308833579224360008177997862516639355673912914994529971604941341173711944255291208349129268704617556684748056639595089209796639538774389189986831693951638113171126426378495258360058015343501017104797449971266617885772131695309898979511388460884042274468239596240725010033592618913416788942995760808503523192278948340999814469703710210332326513186629524724108461170720182616477314526089278026077837474651196287017260386425614197937359014297408146822312258935686667472171682345199530430256600973689211581608976660311593972515689771939636268166563460393282431714106315913835408004471323572842215279772065649391099447608708560175839686648389379343876512539254520111827702749855894992751714665813713122588016109137080723005075017638771478615649333115388086918696777520127278132101439405496234031829183139485386838522547111324350006565435298299137452009355629915034301292640255615846956064801342548159459085993930236879484895958659195530774388254699396014255713531505440302814101335989075975905432068130298089218040124089909375613564672349740422422349047975373242480534751671457707998015689500308862030165226711605467254553142048284307669367500383928774958472058970386738102334044282328328993333897078563822612526670294055407181365934917212445358210507833021928173983966009331340985405800498027267462223249756805520205685681027368588389273117563957525786960613915780186323598223020879815038922484613132298085195262179200459480084111658316820222803181121976738064116723447125089582841315539505191720235433702034250666643797519557951324917968651772170227475310927567430211976651608483041494224893706903321919450676143193515300591662822938877986620250420938417018071780800836347288474572632147664500180438105266154257722259802689870364390294158804077159179798285497898471087340453936426243353824462332215817959647207633735440120118224306572188995129117221309865057725765762110930199731822802369012293261581771267024825028295035348269008754487416025727916547567538640890654986250527792016770321963815954638696438038133823007809948016031320264122549449635321834113937141289457803887686890267091956675391737693086336620948376140376601613771744768324084396773060162259215990891956433422306490399474447517000338711021326098484304156431817819693208907615057440097740071161155727431394172558194942464072820037554799661021739611613395359284500586088872319600989312273983802609570397772692110947126348694418267838771347325263973219618830882456694480793215169201826515719227408575694203253773710754239513388180763259768427265115712388838220634799356950492010437670315964740600521522094099281692786286822759647641865287019819976031090305401132706860857114927304226669271637323457701735313508510013949726821178018468219696976544800500823861393156550615253413411424388172184179496826385203498175577320775821327643860363292607604098234647448849184854283590652409550704924288125246759523445888741173091346545774290510478657133227596294865315243956245340564726587409417655313226280037735865179210727427361465373538050506347559278136003597456059653742363460674884512099609641231844962225692208918161025511916084524060697014304332449573395235635152336268502331581787385640718053579122868892512850583069946267710671853986360335956158422554990099739226274287435943173245559127277777721162344961962696075573944727781910826102853278238165652034110023297104860006583380804866761517598709728130749406244896843090189449990121252954863952144654850265284849753564512700066147169412832168133755280489416358212661262252856592563705233112311348135557974623794305047465936467967957307702470166772735732184011352170685978724988136331577634347862134761135987612726237664744585233028382456505446090284647624995960579946882505449066753645123072286780849344103105410274433527395519411859064375550529453994150498921686541356171133805431441812847603404120917456844294498878269379023629522155474419179108585105892376055144216062852503151777999103581324395314367735495298684525415978746599132306665035230734246351410430656795427119230604827587950050732127816588240614209646776449334815134305951023565603034863094449871539940482576898454018897018554174274564620781768245878425919068974035720311199808693326868205446838256946093740218678146363609726377433614864803186919410045872095637534220108057723334964079467100049707950923859113264023249701905092551471572536653328232656731805568446610283510130013775599441589736413859573467727153318042286375840139396260174668931733222477937042170521633368737242511367722911342000034151236872576629796457050250248617980224590732182442495553397970938844178586106037623845662754102305563441251934581417334299265789111934419606137952438633446038051001379646725790909568920331237908922297464365146841411217707936398764680949738983999786165687914893648053324036461316883349274649691607736479979293030233111146458884247946543929526264460720331783117923692580004837915562431322900388840969388412771214133957826967912748740214896954361302421863303536701161976931188770780173227112441350141007738244220945483636028961600553781923753717156281191659788257048605388326355203995116929266368819165380204801792434940427440074188090126182047997346498448752940646176427048376614166458462166394166166431845654413032878220472461651142806046682123473728689277308238181169298488892053392865437675829256362953324301957939617256700600745033533049507440167080304879347204056509996148296656005803511076167768915444263636621571361638702556150748944044556748386318344735835859351773238184987496486177385157252651307252627615240798138902621360640927150871418071641873528157910587931143936022549758974839626057819247832777813701363901889125700403263786269699167899085483812169766412324108365165390177872832673010451969023283050132438052111070311295819035905465357642121427179650486080517814340360462034505447613252832192383071455451020967819477824507135501654340726984122942947268903464991984492020341313580276364366600239013711771035092168105129269025091653674754237085083866558357406636052613227823867418800439111459403368142401578507234735221519832834713150019259989176657388612386327649771091044549766456474107963892851854092521684794364134636316695470183294179159056815560801324907198765701404489007873963743870609238823613035237879083865732720020717020178469742823624402753793510556715450777103367963215148873249851872226268560204574276580359483562663361010953082543616792154668944892642379184338485209330907813655626868587210569943143051005795546283617361963701067478269586322224784101582114005421701710147042110537063267396455138842093397996006357913228340318721391186783845318099195110367955248404387343329907096007458815067515708070025128789801152981686650333390745550064461679111851711412485063057104989382453269423548824136821804575183816454783363014696531356985863145954949270353153117441373609864876496283093524114437508783874551595074983765704125823066330882979867298582014318631861358955802150220765440510901216947923166323802301316981921785810228919307366202927364760872921465358447339426628895356083883313413258260324992956723343136643064963992187784452576947527064106889260961025903078178549870622025102007816056432971162175170313342265085068778259848458078911828387642379730360258528023418711922402749552604839208149527324144862319685721928740247473739847085494658957167915630459148296700628176255088681335508810243410395711786616716282671629646961703179351490027481029029636168711132334702429584819685543902459070376150048197832166995857477269952501543656357617760874769867618555787419051473524275955006745658119491818562109744096174280231510286279841836242045398215502554390225322707285085944803623655695681107211996823414924490270811161515092471146464417842965841646201447252547740465251946821021131037563196869251106296243887480970787425664568696085766055777278529200762303961576395710305845409495531454476902679399424732964798902076680459618909119292440166467190518515265246200318878307326306118178394011407593473728276719034148055639220188665806919412439664203835570795892409667043574337755678277846707910637640612730000376832049077523480260173176535070062295662008791683007063392287770788405444801583428647723612548953855642565565576533684238423152436017021445811870466771766625572975031221984621095529413245388198288228428401175716160558089413427297179852462092321711345246201731504772884582244311065606002192019854245608888327320612101738234686551242143579831063607782848732645796730049970940657697164256780664314476475475823108257660427393613207559099114896785610050167934348310725854247701827896114971262903435452725766087368017479739016685609038840646301052117372893244601997715555833823369549357985650888687950132245756396703866710244952431853513924211753198297776589274986881708027560475209445493091081122744100870383633928709686816774659583602679836684785049013946515762497395835921748764271847733877864552887091445301765270140939374546113086482372089652604141154361835881547593003599773165712229093402453666160127922703131492607990244360518174969794434529064850782699251959877666448808085986798824063167582950204848644005674074337158979896151635185694088835336696071357447683915216352015581381859513667479040429423958036804708107856728297260861895077893847764055371156461555474122830718752065732574351164976961967038127403310113768914930033403163552426812531011951143467483515794165978563388930009266826801833668686953066986694112475906309095299336844721461955066473161098067527282666686323830445997499693422629527872196557024250267359761953572500182391474025155256566530756418278313950980213962070528391019557548966809931551091416575068357048568316114475085418635610999190734323984023522834503556685513037591586134622708929559191473062852954160373831809384416503062691033728532696828421108466543651187911934153572040468933704921811636756056392075357066908580749678983160254194690959294083863136577672988770608574115226325348363291241226651565709785934500369721633229251876347316806427915159435087539603740873320826231342506331406407935514465006900485380663512442407040838322321422465131623958198276450458222058851262546221631341133084623831553151373584245317968839724593903447120846741417692211475725962105584290733708680893415959650233699857981071786048175663526661375910416766456332699635067775498410274462756594166037545347462318069806331290946687935515849992549368549953838741672925113981356256428198325439931042190078449956850535661006242415272515833561916557177003948249252055075236569386632115003347622831963492410287234131170912907369492595135785692952613399469257731731745638005978924196668774314540747820900820337959996626430676663869203573717580816029613269878662431170108725912577663076660110047247345631619435733399160631173207718584003590132254255934868272153513150552526723923807651823038158374570649151243394520589654607012284352431023969410165906622174856269657560926743310660203071864648585609911707242774827588496214505185323381029318212194239092623515308313401019818840865478351879108949143279759306421200242541116977204158492172559774643896280116871031498321359015384588697182074797633705306770611677518077518657160154152163094085094687163807625962743799899979820415460135916040344925108893067939267227737039809893278935219199903131245995660609993741536202594395211605758812370948541944902965339155192930489229608804260820498502832804698394037844154325618775400636473303444968513592248478125784419325076268901898073009341081054777315583435580975120544347603055500680503698745371067582372649921460984859932111456183533131617815783283412407153822583817683043779094986664074412704648009612690342802139678299096133025004525472805644885522561855976499786816242620879123445649216563174149735564359806280403608316388900810072061993013873231561589606134842286752743360690177922118671537522120189276463507233207284693414184642015742743573283532060474775035281728921793767204831122507333958719693286914952597230956643226866933503522187894593520580013072746987334555707194042373211964763093211090700407884256137160611866653427563775335164324518565734526460315463008478334825991265036542945340138462001835711861815555308545075970523988202792850538373469144250707738410029242549589292664497246915948259604602040575678587545385890947003742996970043935648794466262012135467960617171829566812132975284829267109984551806061885974485358059694167227071566065006365856288095572768961081565057544185404580961228389627101862988857133189482037948269150540393590111017283486466553489882375999531275164623291720302981511431397914636113727330334817272857422079298746091807374886797077215815162574208563036186063482338344895952481888151909404880872433490846826156388784245382920504468120184695848352699938832792016968513708746044020838904002053659986116057109633592673039127186545077430897941753437625432339625046578853441498907632321034666382068457569738559252268363368923950131492678323751227963758831886331899195977032605661010807862487860053463217123493261908294874920673871360054079716976713097275682640224364237219581220692347229969586244938401613708302749828883161457314013077332766782473605268758779305038672807816585702549973034126769042428324391170539817621078064852277837048526883123856438204369838885742817646687779609437354328546520765873010946837656272527138957533241608244366619075551923377394844919920064599508649358884378978401794820661719425115796782734889307694035262250777262346127037391077396962524546494415844996040837654453229257936929721949685088474364609051285678295734604631013483914695259641691887192782966060439805274544010209849326688842229518773147134140631591250766641181074099470687639093578438930427695084958178138522546802034735110336614793031456493449320225236383165233606962607301717847398003325390895700302011771227647051505775076335578968815030998800428507401264682554971911920413193179397245566600608717513885589794315261454660579709819474322989119411644883885415280348438113750704816574554028575242828714738916195396214984614686401475148891965262749076358186341167195139195843713818449263069234524605978522535381174534894067010111222372008284287108809853412344007987004606027808828147450081550206758890043184877693891223073818404512562470964814540044706786144914375914862422196680583264054182140000997566342156215049221423223703815309871566734584407738248913440325570318704502947953783567234799511392437991153655697238360795553725560845989196699055033925762748969530702436905407175718453221007588375361078215427105581224463236394945008486734014474673956974097374496914666245259875032608643980211869082700553035518138522333822841111017520586410882820845412091798924231708027055316694538736720736389474082811594781762557936250616437865747568542902929976235728096989988236480767534441666935664427451127361671904327383781688159111927496900754343772033260024813054120264271014217599124502425602982881973707564636682797735660368895676873027853404434868829676526358390962202136149202161678417065716193471009330941571761355297729489719393664494190881973901234003680894774946772135016949064914898423939495037980480527831744041684594761684944278459095654186432888426592284536152497454268106708509988013829480478662987550982942798784392953541906083306302939789886206434385724484882910885600666163732233069673665972298011859373412162462476000393959590673255518096764827231995331778669502934755998770983027233211762428177692582637037395890367656744125337152350958745369624419699735879569301093763997268046681493371638077342618288250488056636125303740795716704566363987732568834752075820014197585018881104420595725197512419734404715741086844402488494808888602770836351880224568562367025212111315944415634275267033712400943729123813954190156467992964440410134334949088900582036521401068246435488194403144847214771799150283491359242819666610118049021554350967277683248118910799178941374427751091628256483340709425316082483999079005373100694461369459500968163443470809391285980293855852478668865941375384755692488652609640438150460392607702177195977305095477360901331528140742582640460734204889075828324705814758306980465418205883667636026922758806812353918266159550238411609406110741093266775416824771419941314560795308640549305080340801677305472008919616929704163273947726590732499718738724410485490389460665846263421090584517060747230920503244326192890337293696447539835578400083327819865037172123421233871828041383960245392071150464039744902378123807875943264355174533015410657306189154125508086423343085972806043634477785697992988324123498325822683703684284382610261743853405430056988480262052868446120132180255943507018033250814904838426374727495267285047425601153475757894936736654931393870280882496401168884163359786547074861462845920989562492433887612880800696350783512189686739451738960801719270642512036667660581198996648397953777719119171521298858432385312340496653622737332017492240304757702287855732425887191075869883570248273794847750579227202804994396072150619415967080774892033075267924271024627082203545948378580411482485474947059460984119511601520323898004113464472343314226799237451629664665876746936745972693062367772567946084150145783462301935393474557690112808943716645865894581294864484334273175473801686536902451843945745384183018528245556910794085924605839811619395150341977082662984400402322172283224353172876711862539556990511885797254272580784081688321196859863684706118948279646620468530887643115148896172610546405703557291086690522449077749290393972960971869732398714905067022783582543584392470967730309107291988115849137262012974673998852499184873800565867108679714238535826541591416455532173671833496260327070017073455068336739541377713834015843124686192289421702335401452692177820758946001356226723469721800861684400577550853014740884490621792559210048680915741986747726980896117055206919914073470944099769357735975635043939229943167142977866100148485147562815519269711151006120590805801518602624405889869836933609626867886221660354463581035193201409257915022290601909923999497364432486109838870087770712725328377263247145659049280011628968537433358507887169782145936557607035515298109252542668992941196199960299392202858109021058483045581485688139339480248234830558105629204427658661241007155270075194295836892007901197849131387958982536738069995707609306213566615951003628016869593671953041324517596503293025107013011537153713797161895433720282292845498370052510150463040664170009430612733106592467963842684963161624455678840212396924131206667384045246639586517928180917850030554121800725228895197126442379704561109846298602708312547033122429489139621504566866165795632532665490312422544298352522158496389463721009163922418011147423131011038230895928998319633505934438235320796491869760957789120535945138410807572865692535591170508864666018107105606464654756382898285543075253033540231807814245176422811266371317945788266411086423159638473959602858057880964809686685110168244530359249220873257382193408469766671637721577855288190723422217044977122367597826968447817155350841402085596622876374164863692385330246715502109944806559571576607238430183309155124193629709945877552148033278159435284358889767421354626426787826556297513624307514858389897666848751303450844849635219296204326204233093715881100235216306543855958889379188325656409900582311086812291483548288120232914571637254391052596791419106909749283766659078300906840351964349212529180354708311483776678423100911716957926522502217460273072401802485738631466652889328157910400913692114484886722819268945623370269960455571464582341593756579138010889218307447591173821736684573083463128093881077147225205373566845137757987372112373354249285997169012705086351436168720526779840889953613850215383337983529243823652161079910871609108728846575329049895358876428190420807090825065910984333569367329917250021943248901204394717425231175800930219512382234718395501076815775297284300572832279507807154216997447991845207480851550112094877748874163976443725251870351234630542105433257444776343081252819639056566487093714309503347917407454557929756380445440342725850265790843229194601896849686104876677283822269335066915526415437936891186725144218855659215705843438059795153600478442342617986595159181030462515621139245779678919155654292705845147477776593443115445629330309709466476726336175286648012268752330404946758252546688728571668060895818332741638081490497575862457341510065739998412909969034053529136045737522354822949888109596766204721227099268850072415372209299589516473799236477226338498758311853925480214106849810559142553622951063399428252817028291328135364842443194027213652966887007160499569115694593067197572751156867174560619508221694177381069680332381499215467727348392067452120847079964750378936472669083241321610048406590690197092209076492725231172653050825312436431149866903043924278464312933201877195895795778157998116147095308541829243192841148629886710154738404870084915872107353886112090632954409407855712310894820630745436663184218779179632798903053484667856640658908987433633591218193027106836301019417157225409802208273244784045776188234148625899196600027514162859005327789753419495036264060954257452254651590822453483849918342170686133469975059651197354250140617827722580113267398261503455905334944331395439452422725922411925432680481308171056808057714412624312413094965837763352700471550992230418240840214414393445543985572129148763975076541207357449518895326420151947876391542937826417239376320863423790092742173708745028158044977465412115989814089918224351968109973290521068146852832043259742625554429681098911727724568724235629736905313511561755165745419097052055361075225834646807938843420195789529124628746727097245499988700109924248604429099645679633974614120379812998326381328888604572800620311873458092006219042311542449180230437515422699262275410598940226965503942628877116465245341227676553735616212846336170352359194466507698677176453384442777259761334575850358207291945038549742154808315048659838581962664664973509982279536734207436477346492762744804582259647158262390829020591375119764758965939415526601544565102717999268810860422335927081662068591049810641352587678596542015745033543424432407744818164348047461773085400595961331067528971781406709894077015412251196279683756244174838074885711794247535468854964356971862140346060561560982653548724899873508548532247256636510029112147728125410056082413526575182913490316369449809718885236511414975449479765341834518052132379883148405640791040268987559337764540093061605731874694807772295823991931727502707549486761494738216593226606363188398659177264272124966043734687154005408916921778906176808228219083254967029681830279176930751510079623000802547484817258858076910952335135417005835856302693387373233841489073660529176784323311069959479406127948826970181412811764194480888157094763047483623742173194421427592324337724859820650606916317069682446890293350621206523587974545144001784658207819685623872111055076853566268886517112441889645443973860931821354625712876467342894452219950959728634052460395004914224674126817709316048168773176894830921666607060407049514168825781973987754404667643230181288525361835034208355716396064920190521645985966586689338752121370868801877913612524006551941882181865783084083219049468002610225518680516169938726781805695024505359358603816348651538898496588040096891052243696914715286262439238731365994724182730788665904450931526515538958945685712339714638688734185626540677044426905021670652331795117754186756764473253142732810488759267949361382376111286607074538427847434009002294709894649990915799941120485818025661333807061892245772596789025738899889578576833737698579452607082015800327742157476067914730018745315323091481738682285942880768766497380579535083302684805563564254208575017510081543912287389293877424942431260334691867415850480908201350520814300816777184882624544733027707125650598678896615960133851774226784088097691685887237031959544232939197896945948210272926113988071445350348715385260855234164687136530400456897865619981397228855990009545952821568881723910221691721534472819785737948728688557709245824803517150717718240079300366309845605629985650448019326026357024755915051548491585435987811204388382124506373107318850170164443957535929796564475863066447481122358963512490216561016098779354579340124715630862324906955355097440572112670317615608613637591301770345694306489557507014650645647110182671141330605510129723290091940981190705517945306192946748694778547378283366749773143092934452381075015840775133422072657743299483674866806816433886413746294624591966524786232282616049477276939209951056352723905111403036435639890003132245452010681113506660874772123718330557435983037400929678864342963547912745235518082890256853772305727482494488625053157420895718372377705080990574891281117979088803332057498124203934234849770523092304310850856278020939051005230679026757905918377230967190906218037383138711124170063112083258979015545299503102423562410072602036547149544033132503352924863588722573653700703916538352137479916114727569187257487065798174113166539643093764297382472228146118100546481830298399934332801935873513884209153295372363305761519547850478387827950476298290913654729023595585302856233264148298547888276214587019620908953510624957345658385854371444815059058784046520163525480637529624153630780918519492629905518081711700800323595749044661953669037389999012140633467947720174386525462442929916815764611728802669683189901510338268224184635493664624615605275781744435304937838813373998850614544691409679495464516356442020019472015799129184216765511477864024595289588752925206424620389992681448111205214794357667424163794868670388933218690583419123355551634439737337735603451951398642715995873886852852432099903953747465942651508466920155601022807371325517226574408650330626755245910705293088210263463611057631609515580028030608342308345274350600031855918286379036459859821000457104245843828932021179754265830334756270534919092929700278597722536463177013789690682125245965309081155954271979622005879999775548329608104008108512694717133690310067476363827115643365708337052650727554781522195767832569447448887535461381413789277837340986657297583198474823351316810103769706493434355022953589073432213140027107739908446150605750989983417258966333931299573464038010909879480733212921905887782184871604706146735552253765605093756057088027538723027335089712063196272886087996837674649584191912697441912169662046893600500424256927595039021254668563611728232041695126066917846909088103502901330915220920968903613779643055109272691231926028469379964988614668594486960294095665126659709089636100938431665660526117181557508027254938985433916500196225288818840835421721862088002578321800402597601692284026623437226717457381965435243373383934660198623880644528094160963437112595975609170243028570990809619427608603369394613617715373125581930109746952011049548429496700725886335633654804780380546210872018613285934848251299706004863867610215062061096383822972877879015771938438607112952195736397177246490962253631734026440507857721161241318197096856333852085182602248735460572712928037847972890871549447447516789738185756746960963706386384359874590630737912504899102305875013700713926248084178512160529662360990821885314448055542836488420158637265306259966087739666169743553029633175698997574171153022797532225537733028958828554093863765026171705961545563450973305480368107829557987754357289048862273136676278613064986968108704444515977822648779945362340614449396268516857373683794002262226396591691417797668086572987858196442057788781142943082597349909069679399282413696217528619738015254671324115544087384590014457456831983946563659907764679943344179438465864854412373026736794908259806726647059918133883265258102066476102724952578211524816595435256644603250882187500662902206733806315076743271979429861478645994211390739261286654977719247259021207108341302088827890533993339061396631532014764566799342599559314112959469026251732638446956050591681337190865108915130284347271189965310174705733102516665360804618389604689074504331073230686379774928211501259003625003606372060940026838721962371862186484990719608124865963061007280399452096442507793126046257866931681154852439027931409915167283559384117845820362159268994222298818063922741846442331423810331112396771237358350839260552322044804774678854560832854000538001263447832689199831617270694560837410023685304462274938895434754430243946808076793329413745920787450640856223083034809711016935465905182328216732784694935912462262146031073349597697276189551108294281850877050505060493198412886064015365323164800890834610584245327867104568002334138559431564806437331067521563094801933179867849361474055753492518215753378978518200552927053328500660147171463708574032524709877810901124348690894250179920389314267701504094769637991144937392285802314811751521992552068021308458394942154393484686645566783228294804028127558855210341297094983274176887892287280976132569182760358614814559350422304974989307162089602872459179951526589244622291809971291556502101471740041536559071126497127389571956812922413730075755997745784939292983135871449163289144230542262748193227101974508946794679472973043774079379089177152240719015657888724652019296450964728485882966157676592192397388431910754544738623453106094073173520914293696978220054795363411771907407128652898913935619340832974558021375727534605379306691685655130291602043903115368235121391991856441969293686168026493463195476325371645117218734426097561363384155877095132834164808822103728068280299141555986965102943610064272946374899301390844363404263386294601920482291300799629514972987014439505931065860548450581013334201263734177658666936180570319671607545743824160217298926641516205203570226972124004479284416836143515386750983158790880659409175055800937217076604452091034860556587398346294852207788091251133594011969203583201240077369015636129630735579773433773058232294758841002316977811708664440908201533822568519220324267807550879371588905418243181964018001588617003368456197340164994102934110129376414879311798274243809980389315878470369946194188524111393113484848438873738399806895094260538023514776727734203805776059455835045882350092387851495131251744746176005662473282220406598934894930546646406514662133528061018361912905846650687451887596094036578658637043302792824507009311439925008468268119968979088695086392881413901003714286600384095006012674478678430460518405229017775451953365736716888518885185737921251674416630274021513413427834026450171673241580329795157293283595539621838635419973659592719544881369212506096388460663534011325197712707381021747425862056054190551471945607113904505829088401252382361454532202466150992217509091347918494380163590177385252921066201711607629045751022479515667977819223625007803092327351610051779358804355165662218714687963468527821127753882977709534676802012866573483817770699588676229067373052235386472520753673635780761504128463019662309771503842312771101335125337737655665757266398033028515063487100063783318000389686846827570815935623947530664836756782133827040664378683208492574907257976659668129900748802707530884958739040832508557415237280266023761591049392658344200807482215157620235046777257285434354076738356979284343118033727263341243982719466804964925323094538329528450898555909298112315075430281760177997449098377499308701124559754484667904034942278464960478906640943449146520618803582893626306451896483466011826394068790804414282744283010863732936618177711808809660586045647449888493237769988909562939859070018599831336579698181826465507673624703731084037199252997589743069683756841628496103692032175883338227840183364300190524430480885085168437185806731994763320453928959631215431020876861727390298855006817377982863329478417241518586626870997490525705132561621289256741608223903622732591325355049915283571525132266194360000275587343296659217938864563353903619000974813398949612464507743333507345136332572882675702647549829692300344607082055728456780691594058273385358478965228928954380847613240249234588303230846952164965455778302057230300925026530664082279312535160475529835104885740468543984109321363202873497918831945777679351710823983020062239886078149537473601330424654334276548903698052587369965103926771357931262428256103212519245288461903372243999395369717324034225200322711022096698456061614676794718025726985191785429100394608532772776076370250906486544591130095324890341054839263819136256314112606031916651580091022983524375597843783726093142060299090835550680937272443309279433346929971938669999858156134326431398046019433309968233041353091087384566389671247968473831436958339324102804351034057779281601817338573579262138407664064880947252832124432457095726335184492328553310342883735611568818632336825730167628098471592508540332588676128070766814006100918411082800597986873182593319056109931519181767843814887110405976331677473856583204653662542793565814149316336075054979223870346586570205589190899155985849295007300553371591363006532094792404432868516921202887973012497791871220747318697144203349784728247431024933864549615177079440850293107781624807419257741886558879723395933496245307933697127632453901299264455593386271818568329194384713645949753239074127114093538642221455933086058043585663971863634260499713424150501900982633970932113190298434325194601065966780192726151975188395745289637298365368769234511794001585117489466648590646563571463088151804988558739710226975548964277814126356813324664708287274234288689868144675443278844351283952337766642603874941762982514046713969756997395674757426075167289181881583721688843861050200097060382968260824324811109590543021915934491872208981309805551086683595588151513310872648208227633164725790439952994638817676960918199263689922108765301881782283702653993175790600436579129082616510604238110926792585184155600353076572968640095571499716786143586718386458582352803236806219790090982052543665113046733266708890073813326479831861185660697366358591200255113384597825456618392764941014598278671278523823997573847252896848721288378413187001847722708599459370089792250856794485108854722976891300635366190516855289182328574900602361889921298173044833537589978648598862496105051012347088381829909755432628514610825562312408756718877030827826048924953307144915506704500953764977464633698908688351958501756839025742695244077268421702334251615919275499520413919062384769788806494101934861867353322871847399311050258672318733890029135517343490315110113981030666633322594899385621601005417123702452922245707021576258043065002610585925894453105778192542686182406643942915964149538666168265126579081292904417054501659171166120599534260206735176167194536924070427932827354886359802286427777445336305664556649973018442005417012904074602953461716787869650083947280521718213845578248340272109203611889093846825449304773340004956378687952103313203891449768402993083904048455262811830080364922389461205472033086506492519308869980221742586898544775416737993672775451896568166787302968437119743378123233710039151255276501296778501969836758576227222510533550197789249430326502115441270636482498343528075010954936605540428765734376452102603603376210681011737661931005399793475770046457159298130617865825337866503481921596443554878259429097586194098416724894489486679927018599167283572646477519178612116461032813923735043387440212028431846593253409910112855130244066645955210501005680163481295359071576747517354764021078754526858239632303608099374780186851658809222949148260390168899499270933606780185850176882616862367460763279912288514420282078456422071215754035862033763302189787493929897567209458544012199884593856411054983775970673971177013373008954840668556422049131567201989352112666361884873423254680992507061845761604753507087500618147071418324283695492909937944773787041352730272068978188534539686633676093052109997820866796292394297701544886692180901830841462709467709110538937395254898198889131247912506603644206060207995600796690110659600291324599296837347571350682715894452426195400584496085442524814071949832759975051490622078793036925481599429024327338679695961585552363439611954538517935286731165513550734864168585076583305635374761741965529838345861777327910450523109496110154214078012482785914121945794885156504992456951916722142517941105472971125712036874316963338798707669558760448290677909781175037493849737408175684382052025372058476813188104315802464645558957658851524478574679225589928205964032585469878415068437392314334025870075601569685655478828381575885433549134072535306058203733550771114863906880960583351101778741510430956137028777650288120391531035517587603270176591851890734391319247820243396527982734677858525968716889140308747489433704630605434346072506689169098380738677458621750366543697030460919409288005453388560614601794764521248538288711864217803418302357110444998820516791387942767830843702578365784863360071557491024830806304836055292379021061615200408002503404153109966501955859198632438632354242617192979904605004526112079663011619076063832480945431224771917140034145794323364397889736448106228206505619700854734294323481243715350973884101177148406361123865452541744807307519129726078327864049466259619624046741708597006655411101568745827040838127524169190762330899530463038079673602513622018513505081421312791718647884081150107615177136297831690322951273925748317724306176792083711601820605447385328461320094899387093875425000723892830628228007834282787791217830677090880918873980919468240256157668937378500175564007132797920522103241507098349946213011255771402962598092543293777028579760758797822009522125842277409594552306013744161095251379527523325132611082169125965516112331263027840858613109863926942928205988065047218399625767673163179406238911385322160881723198831662282326302853351860919068713549136259641223164583694560897824143878473035830328496071092417124951183391005546556632957121558681597548550287573680771398481305279534498342664578172922725235738160408786408307559844759743141251821551438028406554788414205626340309588388336138719491551485340846345260242849231328619368733595232532235052929680361817686651790801871289187797202885088469297195295418272217612518574615908289302810972099923286783124464349597406245568999223963446538069917613640291315418395513587274654853531996895474355575160679375125085498517210433706856450575922432688800087223134612553179123971043805395280801196541448606852857736491591760079075996234855574884448232469330299535469606491123632857968086786837630197915577965776184146546697684623777109621897597166637187376280209875003724566509701935774250693316739758242155593986228142486056978513772425850238761878427391225849229777891015835783980949677293242483121524340704911363182448809852365052068491428334894143259489104292097930345132794153627471554799395078057650885326214264031838792430712268222630715711334659199469859508322224118300145754130464085119868820890297173329350932192903693701723919637119445018446034496216803640959054099924897548918496924107119461324181459532913033414015026377146160530573317751863759419506251274837211501038405693380375578400362936098565181811103041467381695216274744974717120349202706987729405610581236951757426088879187417943190584248798611029455487292886066529009707303060404729364737683731576128102517675377042667077871333085735524140733108108221604769209179536545122045645318643648369298061846240684623394990817350327292054336840222550917246068060113005730286775619505106437440011389758968542559440745503258273748439218748320312906537769474005287342467620810654550412713529045703081929709662995428170242448166861740704795918425790339301609334843243176970167028079130060439648585651229541341945903876400721896867168898710869406943653733369390724887704543466910509605246091041045619177443810376843974784272875638349009265489464746007053474295847469073387971108554081904048931230201485967838967200335441188698615187954046631666481735726075516678927767122913344491606378042853981690243097417461821152901461670874291570436158714171303150449899839307574497318914659324544115554890654850519589313594297706227636256580986018631174461488619855014236135342527970561330051597772449929911005102540566766894821780429464303435386773414601639450705789373406163712851084833330621599283415886897931060808181094092147394516496690850650707645973633524425285596069313234020801377538307985620766686352596398189934224985375479214130667195429971540716745243757386467601166730985395759763422312927792447652160925568334454894032584253460580841428458035895114918928481001930255844154029760165840968760150244769093942047028528694112663435286969521252086691764079311152146060696671872925285396859726830649354067075934484185072576377247331289105469878344224972847283618646202682420149043993260312004147413300129809833492937182908937301385411977115244880282762582166676182586958160707571019830433119837767271033972781376709303814651244980069248457166926740098871366847582924269164036167509844249142082431560148329867801285207395960302269996722358540298133817719290387932616313566115345368645778464904892348299241576830033339845783219809806937531060627364177791170132577021000886215978516211819883961781039030426047868414772673309647979442987660121762948653759988191074506019532577145369794669042028719125042636315775039793021798638139835332950579979361731341312172805360856059958109419954281012813372202466498576430339039530620910782528932977300945838342854436792497084526904715119864794492510681995249315638855614875638973398415094269512233542094695983524341812945338018697014772455973108355050288626161493178170335454853869951441582303071907642897382387389512644961463260586604115020857719256162879730663900459868058986832646300617555954857985436469252817571882336241879096235511669022577505690309838483996922517544791200316932867753757564252342021517938307172886131716346200981237392946877226134692786354322981535083401459513894507474013718098786098573586048807673788358831868846591376445456332759049375135823275613945729613419480395663562474060984367287804458340367253688532063402420772884425157628759226659771621262694368024319380901200424320126291865854265785700891319288930484244616410327151314240731591507375413016096635147579710984179919129346398056109014171568116299984789227134838252780098802117165371986370480568457360138897350170060884051330486588242796023975070652376733709207058169171023660878809775548094689780084958845250667754655627995197221856193756811888664600351100811492212720330431510219433519099860719166639131014004035588443223142970437211361815486588339427165686052090580780628585491252574212712056143112159613145716286381758284969238451291422460094089087215361161698762504231661219836085409869541138283628755062074175625416463911497169864323321729046324064734289518329029592081869677013298491457685451146738831854368599821488257288861941643229481522642701052179433814957119107826276419204590555172722868073336611293723799724123651680124625867513907996880352517592863154264098867498281093032079078690585523660018487267185145602498594602875002386717062701501671655648802183124043420640885821420196623108458507631294001828733182456153586825839894332165297049025811814662787962005600865573734499592337276171451208147890543028466748388871877653253936759050626379594524105921873541159965342991306235775290693191739672086912693245847735150899531797622461151930282981471561373964408317861731004459620673188418649839940677627593081271047996523020675052104370952215329541051798549143633615116641960573790542167822854800255494295365743597529145402030317761634452561586244839507625878086476496738292786719110228500694578449661248501016988317086421260900622854764196226181241629432132845652973320205694736549151430035434451213929522822102637545683874477959153499000862491647538709888258791315337962647435968840614145194139737566157994084107475406297788534300219094206481220845463893681545105842755897126245482876121032052162184203198261438064200418887527213003388667322999710891631962252437154873530690547964919078980114410597554413536593347959702251578355568039577979628131837348184427809051543503162543672992265241435206586710975037054075876384091620320553753470808379959109802968901185520115134327748855679691114773696467136162476167355758583705220468486320353525795777912818765771321329010344155316949677402754843315031584779463086967524067298116310531197706439016231633377247579016910893370700674740197734808401687522815254333006201062759456402435472889744217741118910907108134556931389030375285758831058944201133182937419545751142937493598780575481810858131153566103203179062433521573097082484912976395285600035631653525028217426389003238243276290364676686182023064201139684361675604282080236828235743403248503987761516877183914723560772039901194510562824220706911311941814336023474701874664613443840507905721540106253366159477518211675145799676159815490211981772209756163156603379198410933165358733509222450169039070811825207147066270479750781451541865650904194322024968072851539708348556828347592377887434991096630617371967768282670966058260337756756725806169426352504944157730078205794637239971046750063627591354791628789503026280967038698652939748751984247413196464871348682713277391729014901427362189888229206665348551812606298118487956957112899188051775596757606578685988021782765831869510510813965473668311825492996999974222462098358127855647092235879832332824638340361562039904251652801765487766934515951005086949072771947074874469650623546700297245618792890253823742036535449131735998749885400821426059481181634613918458956068032515273765324121295601625563233354476718318422378994748981913919365161624000033742119635494511346195303320179998185291718899025299447296558251948521333511023475033937201596397801215123195557313351819908997180089174475489606808415282646451672097662292499860752183374713555030144310575073552506125379839897983488238108054881236096460553826338243230816932903300445507128182560905628826424152027284169435591239597740716434684732236364552908730673786186258455762643364290874439441109227261575791998641209583586930091509464440672501290800903948807634044366229893271128414216373029708566270229290852301635051980157476254952744268942365981577449681733274514926369339572459286548210507862505262493689384396395842065352830070764694979061757329239460749853683180994022604129662398198047574340346097706916568104788081347116037449364645546205111170167674037308063614523227039031891066365116268084256595109828016021533004595418338568457508718746259681111255679469155307588350134760860120108850515568651146677078688417921080821196174956713991928722029270734375207239535151265605061351559392937809483698688346094772586320141057842785156369847399821036804721572583975943634788696177161201205076653834860629571893436046950577408859106789375529076704182368037387465933026843031859232367789273749297877566512509612402120611722460051651961768647808534946420078221706072334305301716453909785215060019036471468096034420867694908070574946615884057061918591046684613276347607950850117851336428270034441637280250520732584035634839229581346719507092463077847948630901892509255727221928903295284253759089221653673264953421850514002726220802329119514989247880034835237279348794492446995185132989541465662002169813743733571368765772007512534971304751141756381309575421977199018004863085574613339065300014905878903341861376151782479674350161071806575441924307570990615697139607573961758276891438868777458768894549664098979771551989798586139767118262052576537583076170179485179401101839315372945907057659465553347871188071387154902417427547738759395876979546667786284888537615147374521510824114876513817981366561414937146133056112584359670279424601026503388687838777635456742714079630373906101457929853117414382856207736441001427462547935785155820575521084648674882782621751108365288223790408306148346422679311358922576691215619358748854500271968374233892364854997926512357073055000209620033491031859961368491012807734365664963614874161064604167670292075112872561552796967592422592671656746921146433453913202976367332078652300725232862460905009572927777319403859679142699018624813880032769369035869719488916015891292546433772263726717040986215283569705463262577802811782763160407948012063776374377310574138487093590076736964013879076212841359683700417905178829568356417098365645280638293408282840257240294917344191852059169877687973914636140302770728211283034845460831206807439594693179595468699846711201362288899709734835010265557494610137056812546935169408709097840980081942550101710412070280629098460517806630243943514190004075318580324854735387195341285455350674490404389497939084712213912225284068426637475816247873365679807885688413735452762696254926489792298063072417422918044531651143061498527032407124194098045860398399044578914067819762105465038954188279751761313921739930769752683400700710413969932637811493841704499590220406045289603077316186805994581732877132315673673212543726774582167830649580595860868394156617348561139804521301656328851579039649314585819752506598361911503092917026840027485331336872336015066338485280828103718117001111192113603659801969551357422040460003454681904854176786590208365573736470182233722268055033930627167009885950573271227335197487608738369767709119640265814255859637315325403701313939831890569479056544181991735509322788548895218313415846237501142492679462754841240074200782293827196316568637043141335162834821483712243834961815128372770292800852291200029303381232172394372688510077730949932854031942850971235126069598996760557590690322979712688780540569946361772325543556980875238315206358783146733908148675006812362818445493967972225069295483773656190425731891559363320187163882759338505254450880878767459732639757826386292167159384706082189935973989248109317738269190867976877603451149439108435439650113354499876658646514853410346368751151564474442819090122109091264788491270588364675589629999643009342262507507163314585115570502599123275711295237064200869990455299524544696306519945872663721389553745398936459115111670788582222651612224173063615132187705539234230486506039361464649767355830841021774809206695371795037716397354124409940725735228939905272001243008469463989416293732343553773274914198768663703731079782097047637942963969673466690452949559645381425707835730786914362167630666959556765826012548216189774810810241718000913027485183786739302976120198495885773711651281910213461888911879970936516226729234499327890269888348965467767549744061743766399149154951283538591110141423979125103023019147508194719175665179574274052949429241021761063094218201920469231440779305542281981484914889770864742310995157637939979947651917868786997793715079890449845147547049973662297584821380236067784773508896073249637538550717386294719688768864538088580999778638391189906743472448127556002321879119617579368748986927902581896672821370213666924425406026762677034603756427644698243848409064727356096605906780842805347721720219796960824874730300497673759256359256276484238539329513275325524933553692459736043852469586408162451250881917427557102251177329317068112620521597219557743459627414109091807810121151362135577593152334580749163132343032341395029543976409216251117665432071430828151596673400845848292914432767416458214558493704235866039824370511405899409640231323052145733416483676026654423277897497413284090869762898247858362411453677230279119474996815561457279672594884986294414741451040442318975177854832030861479537086635039981450971540517459537939374749508292795238229297002909386922552697271029410197702999990866845275741648477188370371611537012551512349224872250336746746534229687178471064543775256848850102694076535346827093551097971582415184745267203836212612438361957880053048050708910210573310863644382786241766477740235075605073031019327833330448424455644450897239249583776922104135695438933886843375068033061178656603337105310825202207054766696217008543397843148504735331438732271114315732004469427767361006898359656428184634766190042585938259289530364667715014767759769103231181453439310280902625982225416696532969637258546941204566298238964867052198206456457522621581509970483977378401747973936997138162024505234944862361062089748510543309301784823821224854170086187355357901948139153401741051661276295934888585176983436524491889243046645895281442500842441432717727478114632912667557009419935459722889988117978332845739157221772335888981434971872413709267912291677459768182710276052017320231069136079897707799933892415072831585813709826927151530896962736783764995782997799884938839813665246005819396323920027226058001885798266421007282456396762389984754258447422472968899195542404886161725736025827631592951919049611719076525677019569157798296659469352579254519362720521011716168714542294890423287872127612873542803737102434573702473015568758716903064001314239550185901453524165910907456023929344580069884767510310415665258111812790109947764402660269270201539479883760603566314161720689810061206439320486713276351692114335467468255183276987241401696969814004885447205537737088838167983207594431684870309339614904292928510432253139567207528756278349931044685974404610467928316560040845543842024354183187226268224434054086150650736920090886677058778279125359384441273773486106965980632681520631305838870158195917065524363068402583649564772675891921971112364370379917591902471664474766853717759176132542472553537133970071211882411351252854221072337265980376626445940978803953727280117377266267970879313631845718693267548637356439857521501867463402743944028808413352015037856509740373095030848834931248562930709841966581737989956646340628851971942924928493251213388557362118028124675108551199943218903012784053912599658268831735168271502417036544967737735314825233530629230308114628105636898166636577336770575214608116007526583898045902887087304350993323167539664600637221211811890327118512846490053832993993678230901249347792044324435930727800794652802483088292775458721684303553224280849302131767590240967769378533462675338525380514504911857182731332122863850481449239679415644571883852550723312122667112442799612042249654483186595725148076515560436979164112829515566759493278670223265848632229347421814418019836271612751136961767615415169916964210131052149154050522693296992729608592464707261987725966611993196610284085762479494418947602497372603218240834650436338441215628771581495943598690953295835138365997688642489524199691115395656474770923138936743472870825008596040445456141470853669281011556754101720343343015330603562628757450687019542604146632291472876860433724224824960146568909128989097663985533172339524064497835802793014426645690633986935805193507633076634791584680504792041606512394007710421188066846901799659546662816790590402665945382683318792343323096523917017807335812957477275315617778052090696942145007184345363698815037075044739930537066413747948787578821757902699008920402819480142935639989864600675594948331117704067603740367543092332089592629422575121891174188154639604480289883732051644533197972896005285421092337612817320972397170951023222958763497329095620320283480572218542101377157544348424316529752603281367569468953660965209176960011056373815405296864920011274983703919128078437213058169314905274442514682979059759586052512264415947775448819928205589037303967257538709990466028891795606230216211988589594557544289423860686873709318732373584084921998399122885131523786600886039453106749809391938125075381942778544097182257421336580078617256416560182195397322725719026586066777428128514306038838482339795997503806971761438175873963771628479225526972055444694934767374767492639895598281001507198085225218567007085398926856974347197407927640503840100810852185285458073508174168930734460052794008348551280919104313133712245600174609914212753939264090945577950918307802394588644359448308719067811562241633728920226446407746671706744117022190215003566772689476988985867100543994112546713404014007514712676681957626536696502642013259167465910715403278011131487239816210955819195178673161292256809093292881300254271452211417336727841687837728915395321145048634962795897759969912847281104490539207320114304278328912991957229325560807011662822818116619901296316649741977968711955977138112992658193349622188467558441564020862459488815515285675906878434708516231892970394659713264927328476509930513693759438004315630037176016925985566184611083969956839854158678349126334426081760896630735124041967057904718124432924618947609696704183454827264871452820423417911043507015664306573851150299164768850018424504130311958299659050199830572640621937310769123709883774824092818121585919415083689661585972267949306420003401730838675795643138108017041922065067849041285701355471143329654369864433025969042702449399391719280990265429931270068970184745472481844694104671018073594890632373610569836592483809869698736059454119888018472321128093695007659467081057421492837961072688848243700290918688488836245263370582593824042394757003253576410415256469471899023513919755822124609305043975192479475505890634305668594248765158526370291330373619986818809762921788587367582829772717663886987611956975863046777761872192474143517432450572074651046749054432041596673925943565820864588007578540587387200628917696542852549697026294933929553077620153821241040440375502965787909152830787529872796595828027221909397565996383429313095958224770823151979201328103021793965668784500935701677386258175409272388979777844471247251649886396803459112449991252993644651429812311298288821812521231349655329577946249731496078591278436825219780185490533525810984636317487293589978193683084702217750456950666178318122036080163546477210553946978562854886771857339064220946315272482037885435275038773912915101402880348576271592188521402014088192979133300133742670229697266456657497091694220048570287766657674156474519209065918829963008570830259064241691314698191559829490692128669842173109135632772216362785899263136757554669121275503218336817487281589802493642223696163111305547325337246867359498302635247621655958792360609617010971241661330933599788185400488789488250115177236657986639435619816352361331345410368858770764569145426997871724426336537554014067818506106589429298661288935583779218526197353047286593892878380499039901247004498371171819731209124370480610495308907734967939361889199972250232456372795979709429661415335233401239384572967122141346580826831111506957571939616507132177543039105181180256056638485334037445957409051459069707665260589486932857570917612169786475033534313957085675296553827057035819577377591238327652210466654403394338100178555469398329000002893660538443670719805793093633825401844170358526823867639897950651673971306088107499310417579380886833242958139346231824156134025354343706730667145515142591295021817177475430022846754352172190082450113376802094790830537957788842599646880632565029889872938665860882701986070132865384599395251839285950522368791227217722095055625655933570721413593724509104753134158714196680454682328462800059301245590715459366561194478846396567326801129909981441328483819846348260429168491634663534624763563633622894884047234893926875976928928376839149122741892958412799043591707219245240028006523582142366880425690469313591907438392124775401665531415254668408413702700683347394618564493008047609931821074664778254329478528059568444360659028710661676684022405894944476593539308527025080423893454802849956811368399441755686191861005778382329890280446155898615329833793154027888494845973315722444960343913666035079712065919171483359364617704786400020215352312895138800888297755219842429771158566958384431594136213034174182015876649752729216402970933092189142492864828780628292315354591009794525972207716836126259781199400214240206507242653128411225107360495455462099133549559490292242884096924473958630995823976140066299908730455871939685412983748872546368676441128065720732745610558488154494550109474486470599732200641104831576107403462518876236304858287858846569460066238992266734115561656003265790418819558297712404823553067419750515277405804674971614174220327755933222483333775096088531940192368230895491833770539571545736636406943486417749799851507099542852271754821188435115088285194101160821784033009905929516780742079041121985313278731241166013723543327176177691690388424121332912448246355621684431967237764028680981562566828709918073329938694681223217612184841159476389436095447703672667822422204277376043295047087778573463340200224368030487398979853994909478499098770938201011917528751534292084959508508677961062365958435368452976259798500182725103611228577520594687462396164293814453897832670002198967275684275803072908477894351512022983536992828120449137867495606299087977506017804044889674569131004236194915286049616944641472150176575202251073670068973816685931842502328291929797629284699657364101682729155533199006296024741241125222515991231183969555706717083699750340997193144563822521525680608609235125131400094445180201399363073253489070999575061247243328311772491695203652400833645477288758393429927929976270765340229955581770822738240834403777902663015752903854052348341243899150597845972461704684764184007223841728210074574518718565190090959828954296231054484322871234052773529219898367856545260673855801458008766167942818221321104105717431113911592041779311421767817761987665985367427816374186887879603892380056556477328787031197626646315272029008798091298427994250969365007378108747529569696015539319999395895822928241575365950735171710748145286261820141538420277786959979797526231329645273280818045959955333280259319209528792532956736324549910501345539095921799543167960968219496034790469239903944635356516750659260124694512316112967025151849808794859149324486190001312774439129995837122238365720547956250022134942524125521770300386681665334116033102458421944826062682941728042826673940564275714787657726610400607838995511191642547306829987306853343875154973829270918515060589334596029899793028674597568832998079903299657490523008673465001572689186953012693590369049027039288278755489074391863731513364921932101310364399293042496587152422427012370932794767583879838655006710318789921309857276572194920155246577671873080917587524743451623459969552298497846606359480434798008645278717613085466232698675113230102955409152774286617063028406715039424496610494115435207080665397810529070354328833084929669693285789161920153992174473127434823007732304018796625396437633723692316457497188545426862855254493055123114379769413064204642159070470270664856794101490657053362042557805207913031909204617257922833457704373729086497555864066916501560237416916496430257939518128127390431247899896467666744822726470233749332169315495304181519026656262210784626765393904744897622431085287655762668579217896846766190377664512442238106125652190729773185979842264099856592669333227094179703732803256774470784898268946836098514584894578241029877343714852637546603647992651843502699436928338317121481308410503788916121193879431036837825431314340280432471083484427486950597754997418326644987162741311762922127565045589607564959850578832208983224940454040041823531082850471752968313064804061499310862357128423055810586042941847194668952325240591460637895203832963089479323184824320836428621487939531257650719747964423669148361264515197255055226331357219502880948997119240566539584623795348405984366513028353286220413432615202781392410157358549838363122369627542128716473352073744458360190088447398389866406176890621678140360081186865275141138930420247327725323374895256332331631259771627555857389290199668744765580123800349640692570713618851797669841490626223888443754404286131689631904078867091094311999994513955719333276088227609448724539681337047164670698697147769034487984338071513951142834972705706820599085726639965139291271605361307765162937618558681006797100862900721368041963868074641253796586256203863766510147580741312094140532909601697833137580468965025163138838047560889590126279557811318894132800458240849924983575557795149237025218291675180421467396306797068049662747528300863503778981529039552271385312500863505658687154931039415296194541519164520278169921194604317076854540937051089359826799859394324454307714562302052886649156518881178988176935671815183692654980595430431008198578923371898768616701154589033413713901459551487681148487083408230291660451438370481851064550898513097090802182378377630970195204597008757236392611381065727173574528192381565241015709189846446357086594528230928329613935333282107029642337810889711159235211549827675544997374739845763246950398924109179993769120456772160854477658544228386008135335300620064249175256614853340626464452861290709851621570908786632912672450076976585538612037997245988499387638382017789653868226903304613168274237427449999095612102704693672708924074629813743677038407301180589825218959599951261025344421104370156605804577194776493869460419765579814776156256183845425760848657869603544616566242142394713995759513759585488033418440313081248070652016765860684072842857479108764149643981295186512417105508736113810746228083192059410327289964220741844217105023610884555246677816177893968739940854326162705590753737331048532931637506959631308693469564559507573381237293095938366233764836722019656468211782688347173382096597526902954007772817793100251620848662321354100281545706941590455170646212112354224806122059737203138273463661002576079641629090325366074969394984003879689688604441472118448152809109682618631844684990471596078072506412003123606794536333375489073073427399678408736893663092757553502839703588485906020329818895512127750909262498503411346115668329502100062461457570308073432870887757595317759292783312604660577896143076369776967732329322277590235626605608248694028109086886885087937222255704589009116008910913243346262759518891534051957804231853050114099508028858007536183461193013260603532049426962958098847119272012709460807763620578676026387637518552794482665546301009343508158252113226250239627557295539529892142103773953646513379924378058613591200425423856148639526550918507817996779571765393375194178238026376121289914563318552346136252813875980389780870767178198656766451783280608909568094576729881195644005308257931130683434417923526560488759267827859698490762280060418339238978769059910236535266453857217154447348142217567009033415560348437251230425238659110135091859515773864984971600646096252260437550401896988592592124727368018070395991951043483673573347168513100376500262795772756023465483061078840319097162870769064409915419657372565957720422950734805399492275021729344423103167610857650436487912601650856356502474125889382119668809775005070334986455684003848023092750543418311810800993638035454497036278837495519787699871766140077873330856164468492681316176005392185837398290563501983349277066575879242546788202657496593685680518296919933323144789700701040046447988620120203728674171491777856433191520166005586501409898505708222801019754480329507700400132459609646394715474121061753906131981614019349847860955871687409204820260468393700948462363970002769473602989355203261409109483786214588624595220691623273070563903643244232334022237619705923412862462450154043698148660989753492361295766503934762360292248116997785691482145589487563728121390322129134081828860773221442166140358851590878745676273745117377223740002352680974033519609184193216355774513122646127871266444929013687231341153332363882109558447673246460382970935429036326343180031666987107176421738129559147113387828581038868729127028132492778979507490781167044668608855578959070863307326941809847078502039107150170028033311890360684349222537464794864138986286387342015093551067895742364002708297442548989234894077983640804140254798946813171336779946810252345613085751288913253931774341826022119662485689371965020826424160203229304796880499814736669465560641554624570534532311788344469484305874767675228936251521782579799257229877764627306481773188075188438659056648502367524686235037780416857190537006247738085686302502939253827759717123272372427368074557781291876168034772220556930243148544631972874998132920201458114255351472248256603829782677785399129336570442780550972753953879629821748968842932705377423504450270499053004998574542116717620258698314658451979904284448579866892464845370423269111524482281619435756823863605006177317286600103235959431606065934585557766613622614751004390081279547993896644920522550904083723728669063232401502671466112155534667759161097818668658278837593806770367662973180750176420291588022811572722087456416175600765608732044058870593171476600614852449287519904795077706297747776329428739856005168005732508819149078938973205078649927729514103525718377393365806631178311465784592229951166974414954296086652929584378835973711526932643927251061456603142203762289785388347594892396461026310716623346420909841878437479011855232854926063357339078317162503480979326512727118917726758647402423490071109514235314127569840129333028477022071868763486517845453313836889820760891968943306776097534284591770200617073235821535100668473551000778401534985668412890856217956180607286185264736589413605470772135533548871319380970842964078109701081444342382435062606316353386742349601542180826316436563095896176198007120148661280148285596894112177170722669581138706539813314054953956066229071756786778584307571266727154855623116808737092187898101541599459032548853262575957727232391601645177191484800835737009183596028742438871035069689762766239492280764348087256006496834540782400961080930101355629299490933840812521114762425485368841924559220603281081189953551114568093938670546124496851416183358688296006737180338366357627289380769538368955387838524403945187777823688503661882978846520590420861041768778543459698761994596630794313441408004560893814489039953248642725385103770079640359754993894302804205758198225261300813084382109845869212985610453636040610592408094901419800095117248760942412874734882300804588203435064120825029432225027582968187541821571383010610285989865016324121639812644962954645012928038246127465095830756866132357828043132056181486936781504087425525897566436210950400896614916174209509873966364186192362586706554110373735415621450273470975343185635379497227950446937684400104243841683817426727681109850852086190729707925584039428981572409645715076514887793245584856315948350226558412220044601907160940104308889496963362096293659102079371353675770597123085836865322537546614800342545676311355311458825627370498226720234085513520260236521687545339438502167057863688205664803929524963495167488081284889852750220623546214064788989034273138102625126201711561634397976399330996676371594549085775303843201352903413518769174749063568755568965395920803818612935419821500033102431961046231589353973220782495981617722872986514866758859232399056711870471742846073407344308398522715371840201244116028611534046052509473229728680685368832401496425375736714441007132417712401587460339622655226390734076090082865248271056341199813864609580918039311368784137711059455069718525602429931250267812882255206759601300166278956089842854624881514679417708485066467897442244958258655289029107292804184303531897443174529967284446527670702142300001063995302784474502030892277770902646013257889796527545218420343333956558738127472288402854591404774950897697864060314558853356844918504663338444311130137274498900881555475602198828837225724274760890181841607845736197915423298013810129978699599308075323353572547519720491968516640970981035175452475844444780598902643295321657157000182381582833797799729173828593321390680381668807761784949195415178758678197723285566173646642284913456879823235669305307741680623229333599467424662572970199857691084347378008695262084604000425556484112059242492496166801728247227293389052678885912635529386009555271002594358947854832948748128726662158264389201164410671281072049227760461435316843675735006542909707673110522489593981274873519739351732330914400801302239332642436688762312519166332000317694389343758807333500995964677869826866017641721089614211066921442399350064499580656558523175228052638793597835423101882017078888954586666163430695739844208258319553779500019227358209002131822469283239471209598127454913533336496429981582619229275212725348381847252908979676956665321180005394565816369806794936863363136024686521016486990211506280268600689673943507279729665623508053493489944740557677605282052528220186957023625026867298126280147179399116958172745106715550359869356226974582388587558486582998067698977794973488954018042923947124723406624666262000704994651052642696746738724138978469345722549752916506943655572282190908071265345350982931922233740411199753324637691468630629241290200597450527177248523186373062222522673321882300264877039476790770448682945607536529115571951413115465105187895414519507424436217215804063829001566917487632787057736002233068667893722761143398267569044922878633768939336257819801939747830122330563963677484897662849985856054795087299562666390708143162549155025612047656822527541602951417735212267738940603788803476151611713922008569061311919986700791066165225793298607652213026360546457688380892252729757215301003770084395640430371425461932476558366681299403132020631252329262986686989566598293501860307023022854927984950888438848947284118052951236101875634035388963077594883148812824867702321431505813403865101885043274228364348631318696290071951361338686786017006943852727223431662601406500739804877700456833815878748163068044404016381234366288492461299960319261157171335852462385460294514479989012386471510193030295326304027143816528503642115664297702051356936221775689144547691749431060623972086999925203592884406999298567050068852843693737704572459987243144435331861100196645358049437344594014731422027083389798219860449259520285180405707700622226729267711287573751968972966552363890096660847824100631686688205758677097502822518872976446399252554761034215834434390152863023356888403011675251682680344342479353346157604108703903202076224964739155614013786366910818406748338741208359929885687628950674518046209888923238967621792911549159913456313086113207312149949634247423308373109723858022869550416756919734630585966108947903662408855462125599211780990308377443581168507369360954858388510297594647276030182604239143924871561109201503922483892945686407115390853736882193451610330102269821075916948459624090367831015004205416332924866614070758600076882945948775629767825637964659000159689019950560401953833888495434521936790054120132735769883830658675186237548182812340685341104318302326992448852331199547328704651853646344302508800374787279030840733419959030298924391154481002608900892286050037116513564545822085358580258832689919053348742699883472651371961542586163001132747308830372246512986327814212654271377091133105360347643432797470041085552433101098132139855502617667153216389820657089221785570508262062217618675266551182371197948308142196310090369944005147315578714017046228719956023865073235432717963767584687620864479936436886116132752080621531324823608498649574238597679120800991107929459221420556901520033293050742015959432555053313311913751032427398345500357301654051517140739836880125691832782765166858922540091262511750948589262648918239646794653085561876002624880123269285529606599116234616717190826792574331630409549370764921835600654205151811230687067188228733178352590305470811539880544199150561967081434250544100991565250505214001215843905329823907374145984093853376401822486914254084631957123137043652164486401506388719137257903523545035760465234353216362722587319866112848995845784263534147572917456593289069808137235547896293558580435949159542781594766795332470099057784507686460446117301820756675610062827424335045239914951956351674610249402953320700508606104344629865253265783250623166110507293079741833510935749865683760268929735401749757851765122845884643634416689207657829463991666351448529345745627219354552010863035827564253822291382051834218421789792266332195064790423310604835550014762752101702761397630774023647355811413222900808750381277391125582730463570040862879777662038700706315201379400241954041714625133159672789813141271052924840350928201076046196257089826994487449009931845196367681633840493455462509776768486437709501334257096149489647758870075836174327496337086161324235083842288653366497684693475602751560854072960938209368615332921428723438827622296663717809652090843328771405083960145415101722249156863936928199041921544404848429614401564878917818186395301895832283092661243413691031725263683417109878301505397209377836132204764758907854085367913238638451664333234215447476432167943222522869231231664524463551489888097086078862349091911933311267924561415006435753474366966615036532215009135038183239708961147969385285548752957681681874264209035938549635514235005989208716067451905998126649532820119989202111529549518337106685728181389481072274486797165171015156127163626782609942927197280264871436999321267568198239086662107964044812181285087396475822959100255367022328580389146567389034132330694715578186421872517607539444829491315749203619542510686426176278852646759812360980409963694057283048641450399828016325891857535137268038344943072732303429936200022009533963907638667835557802382594343944099174242033133830952443677999713388433048676763443841423294292063974979611631966973941452563496210340073573243514160297154870091113502090233175058017815311586361732943088310225738540746170818576081542105939993205709396944024131588938555275599806154239957551033185121119060573429041109095594264666982290865369727080144185642773082670671179508053335735681348007729563884038062224630457390168037139253299816180167525942038606189640994214929112005629585197067673608031830509208599009618828605985283321122166490005457417128161255611431248839230557416159243318986240675598908829034417520381010623031452680052450834902316642936402564829558302325266318593864589993400872099257526474640979480111197099350538234629806856044134115487979569107180932362278350343602867734744736568082740061819972074831992861566472527053717998932495440953160195253343554612313740371736602054454739907344284334280147809165398720077120522173894757991003004475067941428652286896254431409711882151523173360825569269716697029074721575166416954417064719117653672454120216121934336021892560803081911154938590598002157012615403016046957615413349785820314320260646093392274266210662315888509143753901116804907474732761482787700557899061710959011983576207411823653543230415254745918827951597728455626393118322537372471367193910736255757530147907722839341825631608725991859048860583713503332424860851375957331690343729180791984358004478064650984810542572265038296627307945628520028221660503115461947179854547165098149466875214789411480547829536421986074826204653634170280972735457282776189281867168900018208646533073204266904720531577108444755506094065272826137840757848469142084358761867456115654291431310416320729396703664407642874959631116879238306680764230185927370762686488631610685065715551617688032983053945818518954319758666689900284076594913852642454464826448225511263543379159705638409092086692289615206658789350557981486159756336585967528679280267182608969291179328759236177444384754530152259320062050014003455344567140493581798198091514506489838698462288168803744166309785968494680049700721280010619501646574359205375895406260646482348422242461299888398252722367582365379890495571914321873588345014325035362889176047293400522741012632072019469488085212802982678559776366183838695577323188811555799645228554343147405386346824317589349782117059835513740597542871518128695625124640803522033402164261118444703811494489800916734184997082805903929995064661655209051853656188089053072756995930306177704521208664911210175130851172472632343640395462168530109434410379777581669503611385440908571073854600608410141246815047789686428628494917765884720189060918975995150259414116285429999901576496669865152015333153766811460049042663426597738545377711988582979748863169952515057770942253829665616409971036869466541552879694153843058786469812002990152870015971704082630397368915664985545623245728109152013009551744104197029333910543333618124694242325568279299778888641643236327200688252610960175587481938075988950303626131997889459592878172234137553161276066312542444293058100559140418985262889453110820593515490220983706867658969236984456398312021446935196490177665370305327947616114987198074402182386395365285931291389511470418331655961710626492627159148913030027391849463197098828202812906028935734263472819709746009602366185082838412655035032100664756060763992974027438235688094492517094917609163118135248855153375887998076184559306381809963234390867467027528878106515012490499770775821371989829203159157272674577304618596162058929092801170655005787008847065894864164218436115188691262281963231711269065436945463914487956339053771349111987768726427374066682051647192491371223111786346134787713796968393058217567730919759287719427828060338341494678118185486846151900615939283321117338034323195508279217384236344620068380516167121825177361494294288532041565748872396959572699037775349123509504113705478787061269789685608071204838745535990722793539997431945681448729829756365273568295854907455689274164700789304308300428556864398220050672447910487099669331271624651343373898625999445058291518215441138421436642057641699252368152330745103802157352128282701948643548972039523934802648694769944312877611253359054858977645218720392965635694831266013236478641067639080969150878920733419254656070492277084510973356657967848375209243982973684707144145201310995191637203229135912493799526794648038928642417592588704285301351445287128760704758403659906203878962668038445828559388382133077893818610412777817146787330292063337191968625312460651050245678367551325219999263951640156744442038138684674218457279984460987797763132739901068012205472918668969398225705948104742614545683703864449489740079178616308315824861024540012054465305480628325592299283433909823057891027052826508956588453089916430664603219947756454352201695225044695177565649058868686130502032705223865739989354257902823638155726050556176725677996435743313534993454510332584736444603569787177204327907236335964177020131822521382696235327787671344126270616913441583947155164582719570536982604423369420572107433893369876111160660755612458305851237400206802706424874681134247827061637882081641696017023916287567865660650832730921620845941149770422216961900915595597279836964922188225653757200910785473835350680322555945287870372192211706476170175167953818319688092535357283815147957807333958726156531937073612192409753510663619905992101416016570409877388626920617531046577995058583268637386143820095182834037206336695961983166218985446080649863930938126961205087148051278739293404053969889338659066203305982832461582477213084205486669475061581891096254845572225040514868529452598607626570009649130273459627844932678740693429421591944619935450937333379445028490422673353631504050432048790284477230871580820497708373797916474767618098916506805876398137397460425438464882432990706396826893319785215511839458764710824002229700270166185820992393247588399884885208849760591892448046716423959563882956670577338092102689649066131835356758458312485116979563861630061002610082632045455163950873890017055245386263628751819839730088791886070799215713946402990908398669835393568385741218773254687829359092005051036230038192244134554669690139825804162514919745426244206054799537849811900113916951737716955189997605595149250213945288385564481153748570565886685785414096414727070778980879863004162586011607313323194819577368084133924101915556380800448049350414467677654355938044219386858727054083733239337372549013851156016730305355589266739816807263548109456334490716855744482516286517197909061879786307294334268732315532651929375689159363575984281053191403641370415138889532888714539026561939010040482929168653399578508052501164515331363995966288394912041708541211748997372158008806046524197646868496515970241543241462965982926695126070356393054101213220790612435940916888874499893286867096091250888151924253475163668874582575673006546789124772379367038683040684249084331872033953329780987025678226872436863350579280675124394555492152751422024483936480094916039463120743708452504618532084350444987746190064708246634033154980848069573759105092803581623845859704083776926515643364332828179001962152147085650182494956369481754822737013669036185894275290679072197777875972195785231843625580037826768430053622410579725996765075991811257561897704568310122040418497194791450010991127885222091295239213753466299523249411480773894336256785363969738588518222214745420342744993224906696208512277499068709385622474933970527795786105368970691717545272350589145526026040590309866434515366725811498172789774397032976091857942436986027533297691698276471957049444060151598474853431139324846842873637881930858111711160229365676728810802555809208547225376827594083535613577594224731619015523800152821841915365033462194125397139911920695338001388737236526439946170653118338182010468150111425667949168525326235759403491718168979639831633838722954035189211701932686591527923535442330962842903638562161830829106278161173984496808239982347346846606618356747602501048804992810438258208239017454401823252458867267033094269586722754766110568635619394184474816117015769783753199402912464971270882774421490028029124012196631797021941225418580874309444875803250055698938372328258713505196978619961093219638189904383608900997242273884455879679784594979520693778782637743956107232722995542366499772695445962481295872104038794770124570842087526881252298306827413124775169043682698021092142230851783134723675204240812741197422020218604914230775370446386611483222407166679198803247399445479287740447169393501721077764316041830153667977666281449486390496646649490109307650629442785152049619943448156564322677753456506408521482948602690522122560352897752743034722428746920656855617532659107402863278498169603101221323712735089482652267917802010471902585896020383997873021761498792591724089892117944502985444479260195880802437990990435035013270420855319880259753730592703373117268662694378216487344767434558805076039838162957519629186355045274229114167034157261010602720331426526787522285339842764243910863293889909426589156922545539897980106825369219475873921296065352316451308785936155813641588339194428758234275054694638794467822171443102866584268665656635517613054950507316942546570077773786208715399450256602716875086863402108853869153466779371276593115364632960963680143530916956169613905856230264562928936123987517395709487999476787691188461700247310598736336054731232211199259419499511012431583007078039334728743183413935663462758272718675548065564030541780245106276333003067197047349191020961502868194920077652652153352369370272576705507365353631113279577174589909453315612875914969216285226595985204503958636162017274892824993084609008203723695794112034411980212275031095291613949270988884757483992926874587396509154088593757981515146358785490953810612018526691907705477426377798680216331597932423405908507341384936318898233109749173908268270650560183356095975570198122922159718658070628443918837314033067411230107122444851075434340218087993047051219306461317624429209162357057986719955798912605882908904753811143073571923570841999227996512571577244408215096435597505401510928020544403925387811474767101354339947282080898143845459211940247585433747161358496562964894574766983489574144031999945169391653903815459141667492287018781541156029940441439884660523582313223992084332218618840197933750531284083842011349265811526091792339669031496563776194321073817918761691805211145128346262906585752036937843594600909411780101107761135352892943586512207480982172158521194311326219386286266869894055848995159648930797018911356030188889310857252741624525017091299411453296219110415393037561696276892927102272333082372037894361168413761259772398256955040888583406625223316539591162146342026060386682995982395584637914784399696349822485811339614275147455132674564760078556342825149518675287295308656952492311453481972105179247037796851356230699837688944527860370070866461111668729046425395271561010264807727357172730742158696205673289818300848186753882138959282750506657198391705199334814788736759635523857122555901245535773585900213997592819122306922989815608713875144726398641771802039646861273724325548206760141988111961947729267859810562488011128668869847770557806313383129958198481148779667514225058521773085488149350991021528328154098263758164789207050967616088044554194137520668734527599745559458292211147229334041315209418583410660510780001529419336634171970840173442563236150424939341130579835485050523754676617130594635542442072660286630790962384426810825793681762266162527783443576372425933608014847133299487003528703278988511903022979643533553931767261441236442776314933027786864185196918218348949099666857260068598839581771778591529364673191310443550701650096186383323902451248285895052202374764679847264591247038009807787536817588383224668681780633090809991825315272416963240504956815152194634591713432212455430649168329712375741705509185902090873184230780937479684193312236631286497475591466439607389303845986026323554890476551383848803026424078806366303967313757137221068363456168727285926482523065448689485414356295297085881147678237154572752899228584618935297997431283531511073754555712808393495342000281660184605160791161686950846592453443418855848106867249983244263872896522636675573590028486817260732513231412405929895917583207872556088908186877964863907280761159009130777082691400829878916774458205018981528889846106808698071368061287603950749645482871577563792235701008126772065666034683290944561583007310655766753847506759461082236912070521950472272742945091289386903125807080819722889612333211187431635497632858317701950524027232036995027371424740968914155797361747797139530433807959243040327332288402403264574479395787723258853543464129118961663706489995285979708261478055070566129084309098888845889680049035809710864638964807660055478618303862155009495812881008384220740470544105809591082780205834199955839180421763704564921231622763992101434854161320326383719781037990520035687917458945977212550017054572921384989400890164576379393077625650339401167679353719768391022538094757959891395381612826432943482425668390614530466615972147111852796587546782556967441232031048910481551302842573889971628159677843864442339550688175850695213904099414876623975813666696338186218226249925748217035921925958824199836838738811983847163126727018982075464886858156456870372439452964291756302770081703727007992969831935107890184166787616780864295681085461024973827576555493834697864178465926180520550035784743611404003099273564500805591091405281946778177672766811526836604896054400781979317253342325324169368005872992787791988183377652247753801207965478834591302531767717652179730048247258571696406327177099770597003292858093437798516180958499117542301022931971473092059353908878622450784441309730795089008944335979047972492476695862565013843741317309419558928583738651674829052459134613387577331843481048724501028785308208655782646938293731809363488326922098947497332798240713586495055834192773223358571681028079768747213442733419366436969909355847263192934806984599125647113461363680165591601924871621349559084555931951412302553756490697731471057378788310211925308149521987022934650957664420793650058659709857024852311287880575080599154541655899470820034086205850082852524028916845055925876696260929839175602768046905481517932490745002017824613100924900541202781234481978799089775197523709366570485052501799845751326386287651111571609060015772097121595216842748129252587869258440095943657487248179495903112334266742240234886370585724220126120245456593633904726838756517710957650429589387383492784376027547501683970510330490958861330577645705037070622758234090195231611462457013767152340975091422752411891266305035049788884216521262699544815761366351774147312341776480517191741756213690700514101855372264975710181437544729133685272153368548336865776872727767607081687175753218178636132628507807142882731096377671262826134330286654994815449019373559323856742838824491978694825255088378355288548018766465763760152442246518982539049372950853831144601652140053433584872937655068132678879891689060926577635111066305815515558337689202598091240098718515488252313781640080362333559742441138169137364424521949419188166444924315616647451457118599460626109694962416781429847645274968558489551249770353511497639453891791820826756008759353883016240300666713752889658439305290292429360663766444408767349212380399056377332029335507607059369937181315398049450659825892806756054005958427774038870550076047692810110708342870125268530932812137514716157207251618895696809477713335946960630499683070259091051755829206331614239790526001240133538027136410405580486996519398062054290854600747008261278353336801510970304098758625836820159699574841230572071896129976595581983041556271713298676617797095984694375735731861934725611782791274458507375217844816867953064966590923691318489198163419876386189843818535990161764527424754307032865745622557773570302421796098651060646954763656940802067767926863392194620180709085117525884000756061955695679754732251740613746990523757662137918011370520217031992897772191313132169520148949494824806269143093467706667422742971700934267180529987191321247807464072190495567624430421485196873282105940467956210027263454365936137784319038910202330861528503164142213872447271353724507793390934268249136834320180889541174769294931436877156846588409195288617552930046262384962289507603054031049996947447367155328678221220221304556740550237393592562023575601507529514976430422023673284262614366039451645197453096187857930689152726119947608902206577161145684669412006581360673980110438542164198090787516366021749947558623966530145049923169937449678228220958304673897977199254458986563211540077432769297471937588467927889788477078789373581996958059473093072194747547466952478479871495918880079239011508285058761801682020653195130716812830544284283727337219545944401235416421341284422871450112257215440281181517740985596095667784108405967624318063402342524023123609991389824500737809902369158752687297510406202935073580438920523574683608005479553785566123432786800015655911893585918379013314112880538663826596256461387485850730407415050660959868531627245574444135338535279648474797665013914624919516051427204603261063471253853600975965836029215205927685341605687699984941360535376342241592378739455034603539997564164754692334625935218913572970338741884978092608754055129795568504424661916195907776290266511498057389848254414172823194811202987597481535838444693200035028618510548856685711713185747970975288304779681676074549613543464791073809491140647490660688505638542945888804706158621498899857483257887989138962693002137325240307094963810857201895784905489043745690095941736615019666036468392757569137705579659458523211948641810248219381170948584825541735062638386496517871660668854859048860898583883028442300398231055051639681974767872152585686655785345116267367968358271462152978691895014853683028009838763288470880615579533128073492215539624557341012606076463443544189411550299969196190306796341935440353414332030355639094624922872868330285917105841615134652272798379570465849218586578237541932845800319399002902183292360239157390880280302519733354734857802522006637351211477066686903539919095032457554905430026303430480500550814037198753274400845852560590212193797162194469017749315652454496023510690439931281415340321148565499552618892484340338349233863348531953292015860200800065374677867378149659250801546030096866450021822607725052952128778355523918722696773728066197576297219062482139407238909230876204967089056754362992811564721096002365996985444216450649402209190108656817823633132034913116417351423962218540031647365256069062895010139195865584757643426016434719218492997150289236474261624774119519343324466060796202683792194597146668949097779900528489359551812625379452793874886675769905595345640950558796137472188642293820815930717588241140001682250888474664037950120923885560741489492721951935951557449042238172945872406210930274800390246305672299737007019850471873316646556986243163974099541399627756813356961384348509914593568156197542760682053921337498769173791242050239058465991617256367804245131946108793497849658156879507693576389160936129904103753650680646622462535460416702340122775543067131932209361793123641842981161673524757168759715181769145574848951807789612617169602915892407705601846624194265175966624345408323946294088141881642592217456829436595947146721115417083325185234546083462764623827775122878857770006462721423221358618159231335219145908209113209433385407190094600766995760595685556590715816544058452336066430182266563140025124817396229638275003553259927281393140567486117462928670559177411901180297057503988099194142914844882368118740775811222505165006435996659409831627894804561963341261819681703768207135354519117554363625266234491520776492935730832097241368620646127814427193769959430456538982029266658966759519173495320225653721789120261792378795757265865868455242764645201437757254802480863040475586113933001087392540750962808800040849717143573694130985912894504945887897970682219068954391772820823438810117220323312009468715777387272973935965394816618679472382949075196704631965698858049691340574555883085800779562451899858358277011234236554679979292888292273967783001046332090079773401069182166284309343860917197062830485729942709216559511110015893886489568779695371453759006756167772909287303611411434439147412866429681562717091653424661811965957596576660134335606153435529135137828476694890867513638530281584462250379854305741813777534568854958648064798010357014527899111369815970362597186154589268092166061658970690692176004959618750090434014286720649177566348886074700286654088966104263863834560214585563032859843064549063482430500530265287696024495275771254656025285989149309427281456036599960512898515967367168326217110961288518895564355848247517545753983147957934704354626921547149945133324633827517708192344071213881228155372936925989283550023622266059301737841976216662497475352437226411883300834665620619668057176484794376294362259692723847332309403063379619694505579631087446842455473513164134579169864549548661240990834370921473146351552842552854537606992488613243784750749838093207634911240285058496189266216344219575517720457762921778402023738265349140225278421861262181171210052995841207351086691651578352595916805782396841513863303952012753059921254552632401648101898171960997891447003428617215869080119407456519130443601008185090905897604624567753570946302864857349224743894669912958089877002132324131277330467824576536268688222460059091472875819315225116510778634117006080093854481221916991808146001762094193648030889114100095631524482670936618794480301878213172102068919914598096875509944693480826043823782515632673770186718143394668757164891846359429508954437353303839367343729638130419619743590232302430302613452725513647298116987591958007334737052673287193394316542259091434364010421307864642950721112711997139634711229833082239530062271731034917855382188574000262660929838657035718486109695193547692023756572460861474136270669356069098466792500806486735282976609238447164643630156101084715497362575619181410747143856318908515142358425645512841766431080698106442783529913084235495531736185560406656794529595360458686335778803809650103016892234380620493985480864225307801519408528838852939688274271307075074774881920221351136143412050085176670321291651184051978652913596421194982590823804727106026174024555299699851637149841809830791914813950325819327472197138836909333624768512360144564937179580989631373519884419211301484800028396431454837660078141037137238119809615757325249921238268235880036775356963383824959128415070775045951951869989336659822190508365593976726398034067415160081863138897977627976012920126073734695618070713924366506773237729506406584982061660738027945411886831987236285393165653415655808615419287226723710979084467111005142468831205722135294297778786464470587831499408857176837938829656550140409818928881288409017286415586429965927063727448021186771303295052830753303793461441627233605855582504959522715653705713966257473405366459168174244066048128267019957063178683650325108571608370789432688599140250587205000675597240379281893402214851021168241938848958239083878346501073851373287058777826919709924063083059002897797147010730747970108433557281120220234112911556654093351049695179260181863997735717726322502368248768756858579861701128836417443385615509300677841909841893045001561734278079926051770486104063851589278713671977736845596325467834782480559105447664045978102786920778816235392292837013787847705212008587037138532394375920238500654125005766361109577564115422111232374353759649561662781337703676538106993257445779319009849413255011191649111839514682843587789866326832211954988997166043294150275552744538563022593382360991711323759896144713819537434103606393260284434551134162558184129207613772278295251552652626945283247574669438479766407307770122766992670020671246609365880881355506091698747121742451215000728195681607085485835672975422047670255254701378810028145131388988253627925358600007153896170543421739188994031649304829043113767527860067444299822020878775223843590682779777756314223547631049731215064195653091456950591583914010800536975052224682647626730469494078834062324309530450052521868462142356046562540367329453192223361254264397318468632370876051101219826719852393933206965179880241991739719014778317196481790595854966144925360139812439539677499972617533183395363279531148194396207002032836111050913236980056430594491984189511817692854385412224317180578881403404372521401141639733513527476980521563880144970185945179810152177236059473387512313622141568983697264923370692692382767494521177386324600731095839521668227268458554781313239318420977254036963450165636945028278536253051888929423904353083769264435506856744979749558696922542889044208778626496732951928784824606086035516272557598265904942555909668393469357485252998913206221494143990793565418695741824354440839731419258726371682180917043078291834657043963671155478235701681492948757132979372928366994985015723927415618201203094473847779353163002217004570148348377677655533450984831342656539632907791119568840392908069912039123459104551736230463126655632047686748412175499245304187451823506314947649176944251658674946994940286774198619728278660245344041346247905180563582467820565332687662261157171979413652247453952702699519322473838757866239353594887071030607726724107721265218297700544700568956812688841334227599233356807897914740754695402111900594599487216703455455925806798846712658461803984648057845407019839440950029301952101054432376804914961313830103804956744022774388317131325530065681288870593197552349784511064544712022237383939261072857816243087850073746451357229434852017145297204737058028097517008688169503492877722174022526868795268781849353594893988055686110345855373680161573660567294879836376329987656781766927073177344737083154742708741079585923203444747881869086809086073937784821201530930601321346383289663413788777915430109045234997000742406072464781426790235583393782983524232857644951120609554993037083534318455425020485140865355683133740490931827957129163078806612690149131374485501326512633172930061051815284853341877028225029107058053193272604708443242131181462404941835170362613672787841003963860592392395413030661475336187742222633525103382362024445161294533923174498713292200866189909515422786360422920395570129291275550291556871937259945689690769943360084723892758734536765089500384609328959320750239070954435973481751615149524197927631373581504409228317804415097348990718188545731971252768956569286850761707497194704293076196273903737989017818525943095520178415961900011196212903043842303740164071391682737973921953800898476711193623985943753327608065997938640743114852161239097669453831044140049469702889377602988382000692703317192928157228792888954270384051976046583859669645303261591713509953203325598729623935302042872399517505610777611878012370884238546619684296017407334460469068002238131468723849831599162057164522355954506024794161631777627303955915080765487884311531247709340419571599295949456006186162117162371843591312975413383409909080977406062000386210405432867224157401349808148532609004497793932753364865345970451570932971010735479028954325690235345237597157362354859269946273991423929231276382952758769324854490322918463693242453226824665543342279287146691133860866817540621152898617786794609280129071792358265729254399927387201514882655342899003013116395477777270708413364347979264374731597302172065492818357790309765573992241288266364728517682541287526843724367253947015395524824921598053158192343352204914432089737804329029890607131525196710616685843039346310188209368439709435462370696081756057063479204356478275581324613960971715854793177732311289461067822453713586490470379718043989765919383340029392531322375064371338246906416058228559248876418424551797913889991305555365759176416891299057045262570695767760061749904242883631723237673903152445864604547808647105055182766982228357327784361623421403159732481160638869315146927778660996069307152573645641755951335612073922211525537028686199705293949172164181144347193814064677893166735778048855817472899796564838807975043162992520994795219025382497984135152924822275896202109207605665411372764466975444628043986776215487871900550568225242908500030740350947031847413157013627289563072462386112914767123619387821167557738675168837316725066364135831828422963510541259108877067720752284240716833988077643494671640506737971667263022827358309482112825625023435681394559704634042019922249753487793227654486629474459547849610350535517081110010401232088307618754190979494886176206707494924841745931461471040686165958728760393422013759956190180015052604836847175284812525636248051340321781088269950613302238278085512121777324633952417370538854866364698940663142871749014744473143892082968322139415315341868836422469155986521257129724822849578083681557483769112821059351985954233260911842077903777112472453797714014078487789917119489627431766104860704034835713164213623318383884235025230031191690522671134272811065534081016626919546909912488909699749953609020114543229662946115881815564342322547210889035740113025260802881934054051649411035727586084333864006055439609700763768885461981989980524679546050169469231590900688638249833670338505697534103234823993188773445606358512627726768891664173795952832090209626858989972245488250375942103321682076264112414266262561492322451817378903050612984904171270161293824503616567642290227552555495977903459642063250583909819854067074835846435821290193472034392968357071379848188149054163706910333141772048246003295048444508946035008504749373575067727347910041839609691769917267959899497960248205686406384126549461722830106162676902363293856196781688203641190160710563887962872813881155157385518610520522246778854317754761321429944047838995482054357255848182025122130109662371815667825965986532895407405694093496134096599101519227624416564564630606485826358442169531018568635986224904511294762315448967801372487093682181233348258750297372969023570625056451821722426914728900178992964888529435621430916904618972722016523794832305770756744349278981789368268798634555754304859171907920001009007564792868052065957100023350490256014999221049574770616167047590679288758618656134881031067996160682792149897707629877483154859384040038377147323529461468080937196292658168047216232343037216512796670486882751749442398345563327861601709769689116735323276512117972426508539835709158462124076574518939341406540014794218295784746272148472935447443634744615526966756752636474956625773908983802841839922235913476234686078313389863492769463302364382863019348501110805309368773839244900281157779970419699511568761123206141285628282573221270843313822021808730726913583678688309062091386597527245474251623027914194925268481088763668297071756816447457921506582194162438703409274427470134737944787041175922827678549085150031223506612442326685499941961792029280735293459489592420690771538950493743015347924915161494767486525089582099613965894233828922962803362994714646273669190098405628742199605060971013147744671252022822934535147281103756947578371975629124432373524934391939420301026451477053452703366725321162587537844960930966444163956993546040909754048450038471775703230568111437266154580136782225716343526100674186199311019686257384876625831940766162706362718929688321006804940972460499321904082670814450238992311122959482823658171890234275638259334390085516321287374204211140600362938720825689159691794749650981049118015596260741688397800860124513794175121162173734678616877157296151067622792471811170069888099175062768725192883839899010483279607281184042936432739706298301505619851875537934602000601607339764647090061449645086101042837393251080211563108349527279374648254863545785210360171167001945947172504125052890741895995950345198818913188287942456574275540991298834051732497003400083223435855692682445104507835171833942605334061962048189261823516142089039631206282873844121227773501334372144719002275775386018507809086747013983874931131325649095719080193277941855112646371061689515771558386052877646073130440909176306742371966838482537900468928251969639345783289828377032745675385563028998547658695841298591426432106413997511436017436127121601060446840442768501211433657085859927618751013604277968050336187784538928057404883258373683336496432253042758865418788906890181150074723114467220289009850034156517129053126264669830993723877705421402447202514779246180141647907464095601492267915069120725092644262438121737988824013759901252572801503653317497552897652326672377089360499634962340365514225597864147167800031241002614743585678684989451054223655057126256954234157425055057246442574196982674004378454295360305791046318738256233305931102082486811702642954389059323837360782024218712261960562844334533288094061987790942013864342962905028015876774341205158323698792043995177705565888265531887389308290426346926432620476720948457771616510924945458270140460448381615627552875859598755272331064778530568093427715052924528427232353084298788166952610506052362466821097938772903825257195582101323987095399212608978635345706440108397884557946105658754393128684782422895660847262871101862556414816260132726851317107342778738189641571674230330691187285843279464916110958490466609596510674436620131685210115686006665865720564186388900240275553507509869308847705629476552730086829137197382890749605138997721697530435935250412256985679564707798642815633951066684606012419979749417609577452672927330061217175667138195575808129447186893700805821005554317850392219838689458465684034071561676054809020156675213394311996794745129680254995280253608527576900231642973660476599589783677402612811539824939812010191494217453493069302021075367506852637421950449010633842331172357919511430648607061037897971309559069537305495618068712978767847659173918801381208758960521004695445211254092301054536406145940901382985438892542967241002369118403970240505617073659021628715252065936648879887447536632236452158137119409225582804340389232703919971408508975655307970364886201162625787181990468715397693439127292553321096257008038085131304895584573191945326702989295954401431123712840123274837772687409075026883668323280825017108625990869079820803255253699719357533755008517188986708498791003774393766028064123484544374599516604317830042583431240422389257095772344913402226514523106163797633397127305578815263066209749490880414579625400671539206830264493967486193124312641070875976552529772876959911146329755444334681459464703033084687385789908770642126447285404386826894963979992798952657164787410172236831631418304889653970123258789798751850833200620427665014850422284797447468969966321685750692218334632595939214974388737808310662925706389284745851645347029727932935190717451007513280539248668421963277563714314431614763820230312228698084685385797038086732042759320582236424429531416296721278358851531040787481488134636534346029492959541692556957205933161288301087315027572541464781626325355744010443171135653197696021906609762151971199992144309850418326451687244934858853604824240834640521970382037260243246108647633224027928449598019067474293708724485162377668684728293656119463977891574685208821158883405340686018624585887302601743936494543859817104832854619637415243393517409225118458144217686615119714363743421526087563395355117326221527437607744110663168894782989397738423660819238300283994328781729568308134724297371931568981939112340179266576935702796742973574247130001101167217883904703210645996187323308636171926180324817281628316132362192495930135639555375635615325687108918584145353904539798726517420665463911722165548905931982608678257077296115581686613994570823143104831356797976851735075718675915147695046306019515202927868844442154708406592312003934552606912560821487485906746526836625141925688099789289925893522915151972322373289379207023010925093263529423399868138699438829301421148235661405464458646231719682539454084336417972175220533716016215829438256861965239597644650267555525367099333094375319754048468143410040448901170069289734680448631825314663046785098103928883505120093106398305806233441607604317419335476945095530464340758024585249542077527724485708258950292071899923115908733601922923787735726122433635665355022341464270382563578991277525396974980245348370329247419562902367627342270809816188950580476866593146981939989054505548774567665636412461406391524949344135796212227561390569397851740041324074516250075624261541012897665904403873691449061830920477127580500712439668161001140831456245444722290681482487390148789034247687924503646910045505307889302389834386324477432666212107606815560684603457109533580331376988463835160217797792418317369397059879423249503142828239858457521508376885148979258405758405147496834829562096053127357076134764245688048907472461814578204059915640689363683908300635335675560404283310568970242542936499308340267234421117075177567665824861017062040613022513345254071506987596376058534609703513740532720657276252108559657849842830073359865664237393851552170938058775172373880939327163241448921332131717746978967044262286181928868982162072706589859938450903706520224759632836685100674811654974194711677715716740712873457670131815723820083823663800403691402822206736888026004425254443119110888226114185117886801437801955946938905391849110694807107359042479853988942314004639595246235354447795970218856673219446228915760413364484797239115459432471192070086079388087720219307373999150610660852467905181659642409870137623990725013379068973148971178929713017798259145686644408036898801998981046032052051720765626059293614393245545758641148508790966162134369436558029944143356521511114855994783956105773049657775003026840087753019103473116456879176863319357534798362553625013639697455340828089214984725953420448438810527473157127624488240174957560530899629337450939189369112912105323905552466662667768338395477876334940985705999444253560973582261131945629886728866705434775275424319745848872776668600784879305494297458242445519370113847290399801891187588005394396063379872826584738777360719721491598740492914824923838114865780357002331839905494703789935028160343013072729803226629716188489422522233708095357763179179343372042535467902506850033562658296667007099973994994373073772588560301894260269058342240840776815877943316040584417202688284438269315640177806823849007077033713877362432266220942728814457475950836179783634713944410513013471876704395299667288760777708470505690640086033943704179991988453850326689892440872862796793152758829328652931762677075974770309846038527686392821706268782826502654494179975030501616186241936478513934029893336298578030974772674511211302978299047905019339890701808656588787241815549912698666606653478796142080391959025084833756214581861185791313794672454638835108055138323768619042522023536320966395925120448336769835567271339136767004583997816906655876354196789929696131796061423959686694039575134056750002080218545593952655127936600780050488836292467394071396859257854019709575042217262351024441088589507005431290169049148447864833392621443987858845712006799083697429824731776460154654885909126411637268391257258007136365376767886676917792559614632359149685658423572054079437373398237817381991275692838424954166261774491114809820241749207552671298043749309001447568471264880617915438636671993318812552357454060439925621160210598252924015817169644385676516925868935284461122762882498512350489562322716424453340739075728506772285587490852139526006824495977310073900692280033487747879376595612734425498701321377128971622504272739779282942752475932362238162641750278619171523038265495598045558854913979389133849519082769333281212806524451796668916255084812595358676840198330949081882114253732751247413524335396425524326771158542266719122519488442361205422085700825960316344490118631851581544493757864071119683353263767747752260066803673768998666595819901328697676355339040160332972581796233652039173634570972769945470183627180763496009261657317389520818906013778107682558869403832199595372185717308474167642159688669541192732354120604383361531114757916851001853342653380698235087550969730273176617969161936723370192323341602000620542785861803542572472368429194141904165494696127414160289662084389658609136180077512896710991785188544620840710617033832658096662103100538431005455290625186739558781257471173878480596076316294721015046122462230585901489875989369006618748022094782920775296770814210156787382180611489536960640269977510664305087250946871929311153057786783764701551284475596578013538494677677028267632369734720544006995668083591533187322776051495024930349377335259204465921789003817766478140093406713831203308202697420778693816006370885730004147575935573878663935921217848198998527638309078598178134748227668436767270951862582118013377007754661867247314970812134624853767441422357736388658660519144744579978954867165454372431071021286244632735134483437016272654506436547417301501359400044073990490821854212399541356952923269104092417870966173226823555963573330885003954181981529610018978186957889506164192357549362326751664389541859441154927561746273108573659489115900187810862791903028932705637450189738806537028912882023893541169430016922201605295404794218197398584499976709039436183584089354192193642217283167499130917017008906294670523802545724844527597658005347201907462717571912882861429662015928529360559686650109832632250192447586605729578818871602016719012131796955351949281175387540632353540381235864154987245986364306884928576718712548234361706852423508662752651899973130171499160052177275598355218805632616309982368426636975457357542500763404516962225090784612833184677299838777190243106834732153993312899502532837324941992331363401089073864672673861867540313498290640704390804478420746218215390092898203527957386318201624275277031602572361000869642659159672628436286152145341182041287206772400369223444272380768007478639972407109922176307396244546819652812427100553527942092887989708923113438774713749186622356118296218004726878930144346443475346560149264937410285645487600528118964729128725755440176304128672548817598880367940885336672625057872820832490075137805332647527725994201409860798803631495803514781923337076657264057568809469434115466661777956766989929163031028228383565118006314359759823510471720684354201397565790918984306080871529798294656876276627153640230191625312708368763248367624950084885862771806258342103010064905617044350026020317689376441929040524432290729143259621111706463207900309968427794877834888262738962504290403704961213707650636519782530395731230418571894674267470049729395869761659256265376595443231541383751466963738310875273195526163818303235541133392061336382679646184000993050244811663311772923666992139353033985533215538254798829963180743727073006336600135376781230724616329670641357006917312460887662206432956206684700691283986737598762092772744055178393274128206419220106910353238943141704218010087068391376998746656582162151538033735884181743309940753311343030406821112657411048402981685468127296624026354815295438016966708883673870355584401044448136503477521721924788380466714186740768158279227447057429314051363174125926495897763220003237780122391264008328243677471841859697208095243388482783448758386695514415919393913081717243840627177165091099520448135392076075294705818264905687996449091524236962481842592953863487421371734571231689771948756498480237301463870675344805852233807108805134064254218887038277671509420689102045426746219520377318077691388360933744377911644930996880120714212078210392088294532002759206084322595809826175103188453598737480780440187944959036825695439904175351479524611551896264274931429904226380850973668551623056761807012219261946052408295801658168225993736166700703370518095146878078228625774087375639736888365635432373532743584917366231489143011762901876905885678522535144688180461399407142925786043840749621461029895940854278304532209183688850297676891129908232182402644906010160603592684084540539917445731369320300080330371116945164921500848588898594660138296780706314597684659269463279579032883700387433372804212639532924490059158135474137669209611435634905195196037782537746575683014083179314244106531020570844662004892382865495501052193308289817183707895655831388184131500249411323342924850726473505564576461597513239018182417135819847051814890820173218450267967181633075519064170504881171099324248184901797298904431298037686769859671696279234814127466050115298354433848381467964202328075780899139690265074989150405509691421427290185293855610449270800662382185099618940498584446878464268039184114996464643654356299118431992675310882102074681095648137714830902502292826466494478382384846986839646071913575138633927740751679624889868076332205813191302501826147193234569299462874777021021734246601433015008789323849019720943281607595946284065334645069411686213314303529423148537394801495920178974095512503094830048708370780627545061750448208350210645395999435233213305323522104449800936421003791876947920051463039643127600391324528293212704922357335225058163578727976777596909836989667566704079928817101782960852294400639973752215623019540231887571727307858564868220603596676235891946633508116740551228245947311268059553175068509350743077379526146105077367446099519789396215357897097560573382152795293677399676759502939454465731251510579431627271809916824203934744090857085237215938306191360448405436913921607395619553929701603549095553148936111922259459235633609334045396852834900714234347229319471506684655398525864046365252412081044959010023258026117288153643623734046723139576769438007920612910988981702912523936377420485577176506254147324431677554862110937212184606450931670982338348551452457374741218639957068883669596336159332334705108442955167148962458531795767603318445336019358983736294027515414804634585037296015062357632332008006222912068287557793528637887315593937327613581541937197660420095382700040290761401476711306372734357421999678052756216632051828218187779611296452568780254800394873133469882354789612729770735981752624516031774413318776044957762125838055705022430806954402926167990126499439227922156204234704393297280680975154652793993043101999551551923792430448346097525508524406244089969378677594945803859731618118674531656673011639696466631283615858388582603324966121763325620013496309950248583162062358646667149190304714577191279314333179964590517691825272807418789986883193209136736697895650540974708960908209554932182597164195285999093238502076915939174512958504438693318434368489226834507296597874740267011974012591628825072753614315871590800652072230889906535965692602172733310238879299562751358412901889326475353753461452387983478157988508599912829671936864463889655140388064065556589772981188465003906659096293603658115436649495288533197962120561220743583298073562738441690738288291036081017793753915307498740576422668084704998207576338843376583641884945330733648018352312333249545814079745970158035518057920242167854490478982275896446150409948164749867843103426422911901681601028169529552624744614219834740452628233639160173815406089003997251434231570411651678557426046071783188546871928037704815179429565867896159742898729139592798832767404080333959465948604342291616713047613254274716347047010305592095168291495477680673155576272648402582829198214220098307897376195901719640617240651534413900169838394209101780574304433720906268944338777969830414490235853585391372337864555777710827619634412804896228076439747547506093891149415006897197166627820032355122770824796700153761642288370142048208593127041262756427578217074753909042085200702337087692611832253534967886235768349266443115739086594094754931964710377053931578433177761235462106320969599408190184282656531463248897190677761214111841609236015622727010286591332464167516343820991557050111098342499363304827136112486236324517045275870176631893192370144201985053523539850525887689296208924441388607251233293684747600356264571803656518262238903857043748823562236526805380597146724296632712247379275838971903635818630238527827458935662153282176110731079797521913301291124469557285473517705491401103946970352794206266366571059571852588479603097322282311925350118021080564578738394240119347903120964638225308412190090167619316302536557853510384894293946515616384690797814925581972403499034822254911316848559550876642269029640935482293323116104867464273452069017873014251391630266105151932703080638739843176992324880993465879398808568181467549324966169052634975362928726517540741036181130567909206607766237868271932343005735038491141291328217499194778165751747643624903933816247785455629726789720295043305897254341214351523939700340438817000889120003372686943236687262410231195338504007473609452265217321136054735787739528037926475977239114731188999700615436137546386797749191416589460234215786276256316620697059257910717110346791554829505917150651426320162068508339102943938557290728537513237221899322072740591390545607500077757146118570192393018356555889658484875784956201294098413054802658810411162729320839111805495970934850657437992334177137834838298543801255340207609267205628526592933628827161064025489088436328886815018724550681792707878640988309790501582206369801275473751733709148130846653826166247228180368857977223425463987480928361947866162273912433204051879824382031740098460909555166924284607531468743182740733010087080755134104344603359461018217386978063544889112281800305911740239030970639149196498559430402075752452997190829114727037307606569545262722905479490226725014748586169612335096801636528242840026810216173801054393269924797177841938347783143490363462710239057425833088604422873752650589387652102703244596695468754008662025317976716029385844946451965167271381958969143853876494748649036998996035351630868174502448503057595280733295552682607000072821859158054347419284636986846418687800906421245102966795875221076432296529889475614638410310093819638740705279341106017008817787674744887027244821153900143617324490317851344200765859422229721463225352799577304122219414139293328603234065675155836955743560938343119080256497080110041586256472929472754787775901285735891909199755529181877477236441932657805174351584556356346804182593924420881620699115195106425485052106607205581137488131940804914765475860071912143033119469740487427154482230910435284429324622997221376650169711372817613125757632411942590495943812293741037213122327540530866984265446447647143763153986069478206105072187615783397104972315670548976734602967174666134524403264833034524374106763797942742569995293983198628212726969599101096672253699279835493520026614086265926625380472459940684941609346942267973165392842377974072542327672325079847335906858602621493989409135875952720763009869896350801954318964764563120122632522212069013139747626961314834275987767303215964563516262741032987865804236989512462770575716730671657443070520045039381783715949914498508080637424042991226854914165855849013400027254687786919297367244888249506049182729069108285773463589697277866092083164659454234333415143487109773014243431872692970009213544530982805032776783521792405361019636518261393294643142776478589076018925515352049065598395717028562235174998308131390022191442466399421954268847671512936449541737007826080555479740699385021770809584715661981245875214028731892958997332862961778842254834046810794441270611001705603811454561890156375419716101745442471461800012801188481974415192317198182510149173644594737858745895967273456006195967647881477365152606235702583826996788287892362508610457482241558450814876768325238487802441402947307167064246251564532926331212358488917922403382732566186490857142060554957988591215847830062365092621034270711592785815536897797977485080147356453162191530795775984326208258944205778362827056222184991722703417452837998751995206073073381543608719603770254442990473488556525008126166692572381695525648839573292400164496280452358572696037202079320518875563236800522696591392000740010137661227130640376849456958145921587746385590200111680211851321695888683095114018255545194152659561702294452367415526394595541743467073951772110677682776769267507245367026312491307786219789500883539152092337183718485454722959523200548567613632336035437084380739214684941668732549965979591769273322773231720147151794340978708393512789115886407743116657382168732626479493258282959855705660485217542592385092297841473206481954518465278615074918475951237192533423816499227578148927863814241041119980704859511717760761813144893237014741446751571351326049143750042440318532298447692950694981453105483584866249336134495802345375798586794364947877561833399510498048787424137798199798796274967851773344173710518094993918724745882824417003026621436211288575625458172978138217544749110881128075025378954768179473021535929255552577111082052912846687600300879090150228872857944438262729480654602131084507311707290959112078222591078691605406749336029569538829843416053010389475826117944215693899475369558359814029109983429108200877463129260700062904572149901903808827137038951966648581345768258956555286658156951607412018393386734488694090527345272085279581823043005910159340551646083698605556461774899481355755620169388292555568997527605467876276793153354366495737595908608382617924068987721909058528880174117417466972262025621503523154395559196105677002473700102167646885489782267662632267712882588664966077830679731366411321878573832732614619173627395910893462646632331373924635955901355908786962904734630797429215762412174647351388524326629726561980627083454817796461948830539265692253489852053764967036635019360515275092887036291271134638608146930174623361751178144569770114080583693259776333741930600392148497354713028568008245504003699464786406995364095921414140589135702981162216865865317319922159772733791411903487877363267560144973858749791975834656863827582377747662250061629641230219806332100292597941681829217061812078748088140289375621070731616301745509592961926293893347013322993936823351288919218096864603298025701235480809145926398638453607997191843588731341669463323028193956089300959089673704669789355899602361077588658983835542767790461895915983589100806366781260077936416094722237944732738288323550565525800737191466443715908701442477234348762858539327681458009238567145118603736523108629028339558572079242289726120312596514747364444919830856864063048540919062400610745446897044032536518185220785392706236563460528940820031166948227849123408949800529314689801818358852706366526317473092484685463794381989187902668522336981559695623762369288626208197540790866479162690797522035030386883409905399255548722520671782505075744842013408855038744080883985761964048924293510274919969938251811168957738203279925813891258893834138618631101665410593711892884777597294306711413105510602733603746231518812452301139937535678205211436583783323399898789533820306459802645106701411335718155645481558177054664456890512805814923239249857815086287712816881213649576708178851631585049577163888053625638179394427764749988186529342818257199230025365319520421637706473633581906731440920637396209091564690842114397024500710844369005378106415116928143315167630898651114602676978961082685054108022704580946508943872908128511116700596790973933809199661937047005440228778823368201221054699407357887910813136611307838899662832531478161043071832600686344120223834840349064783069076638825698433660003743399062725947653386485741542063018111925215898728941661435974768287760174318208562266883815626481084112416152360679624741692708111632857076924027095351723024214310615150356909967086545661491238717945306770736653901125564376111443404178366898052316707599741713907722249001404427772709235651614457023094579455277245662637824190650264518390068677296075570715379493552722241076228632206217307285400897028780785277362903676977839697547451107560252102039598486734325253658786436287148888684446703510707354373396685965599142569323439640183408535934496406509052023905099214403662504794400453899701423281647727936999149027891996344354878139210042452251950782392109605227309761838965938577106186873463455765653343936133026086367029597418237557562954466340201785686440457548403349859738462196526889666701796753735953719377429899168593175069046410225626797367294500164755363852216988649044305555167184444993243177110257099376500923648946915725982514142623733383363981577992164387029340933538851946924749516363799677444717486760288553037602651752863957790851252581160252835254644681717345617246766424755692390059803126869881390397128952519406616517027088118555035473997187402455088116613054852515017789222690369871749925981075507043507094660908923256894660750470175512405188601801136197694314225451805897228160753292434250422899975870714600636666357480972465143350936166478753931718018116510878953710063559650778471342449529299350019945711191714132806597708604467683759617358760531913988432352144067300334822874639213479629354852162775205391018186815987293611789593332933642393148846069655573930144924448917679614710577963962330119102900733717391369485240648813189143369726606719973319592019487886611274282340914558799528989444242222202977561417454271197313857559712736452094999054466661671086220029561409620708111827249252339969186195225979002156455203100372988301298527434936389919305062659365436074667712415176233256029231308888970043190898090860259778607969166054102439326238342544055465996623267938232693379656976058260159907895608945650155458193627794898018073513580219169592568381644122834981423676895648358896358820969932217785625728862302462957677662878493542429407302286395713218160707307398068050191628576651992650206265977325601506616125488273983622472994835145727588850639988076425707601602734749157463033642498469827686328812472589841276483468124859529481637593639665772874719730631278600533798007813810861415002339837873475920179177958394719129106231290214931908246260965269050344644962692081795808894264271121349888508445412430133336824379230652615789096956900510667254830609424242620917844193686414158930015456154471181612620983267377204064606798020597451184070532122628755013957149741351631318630930883653111881165706440361926501303963277506529089181759306379431777888406343307541611385013514359002720110530356010465824204585801768813698043661884350046691141707394659638310830262305322051370648156224133097836992777174506317596838813087335073586516284048121076317926564940892690512814533469330039613123773517513895188642967194364199485122251901966604359469961874601746590086006336979291940892789160603298412714027020355586919031272615269228940524782430053690335820758627878454176305525020261192271365523043421309030536664317499865728605767738048316514599460564797151620766129889284819292854991033250508167511125855363086328471170411229927441276441674158618489829254455322831993779454737281851035462275822669179986363846750340312061512875040734399475121734293791681744674817021935206759968591983670929405836486852995703550784250109784672385523418525879537380706336210319373727217264242345463720014912058862428404294420856796867784474524331202091172870036298478058666426478274997882320517981255433309168596090571026889314308933462076484519836596514596959461074292115250222580515791422667892955723660999709305134245104088974529031006043378117127802342946647375271591246435904373189044188365127504345286723331123330288880144906808955134375955807993957957268948910921527150694216534915298286575741375847277948120148708841837436841096610248493585195726136858254857252473516489819494702877877067229779675771001134129301558907858482451526779595862428889595385302120234368164754108245431703001330230209750787050238466283404854215290744227325708875664978273071053316824760145344280572526736522050186635649679745101827547542496179280316336625795849074088198446175829729176612743693530304037549719179522295093447144914857785468922891205539542353478129576941694447363333647698659691766781068758695460276663811693356742077593183395026735799604281297491036048429250520352277107567816709010581075856572410737986161907994486848327089417975618780774958629366319689226766328738669728742701749720354108893890949830841479383432403060853336679855692193254541656689696875013367215908616219206452570782241472010913815986431844692850909127893363977925923256931162056124291628936424754422999726232692382808164850548735679021055827953058749975001879572100871737470804226090511124609784483098381887176120124802178768229005286119177505429870085821192727054912271208806316025631004038268932721165778786135727646575192763917024952729776764607014105825196777445048482955791231684478252279859962361409121256461844065358038041806634344216247512540396847292162259896473624143404213326590486544140143114122774992235735104956067742050318424362707256112835421974589143556503943998186183612872470306017690921514022221914051183852754543433892175807252827177779677146348403085467175549305352017317693710256241017210861196338002742779864837211754646857453343626197145751294011362157183298516148118981818987937484642899061491450293129007725612582901091024857676489766215922780340814166978752683255295935434987576930275546200898228260980636554879172992943088026867487213792432218170769696187472678234988576087756652332876879693250643118519297389589708584304955713178496058880260323344515929075564383277997647414854532474289250374797245078139479418283951254192808878903113163753883615517651015995422473313457632185817749432232631638334367777737530511853353224033849354718316131063610993394832826315064371526220408019546366972279910325814288732028206992831458585346441981496359984316730886031993108836641461819552207445925487499558267454718788956635388804687487963277910869110480593428566858855836542689904181090600319675198889088829598149401018006350652379418119418709047560204334843736706714773229917777344170402029823196763360109623821462397493794000287431874206973535505541145713434933455485481872535332001369988817519312736343484750302350397746834661779591852616806465454174644570068989468624372958130126147420626411732812841279782031077951729677245793873593128603626683014287423399554383106706019139419256413294186125654666813228909502915395045273993185262972617156062968711768938094621709730902492943615291263664132659318061904355054089755780799006741466212092523811552206089505556425690349775208067042322249655922655385695025675141250359307567465920210451977806984786921046917694023560808344239198306456640441571794257435457073487566692888743199525577217058167113144500174462030786504558497452697772586246060990512032483587858818270040339669220067003338553544099357183936602430263587763153545535126964697315750087971410012855422137006419523850100677872310659829485973605375729366604061714132268442923005337040047777419757363319198023647790707475002633324506420001756806660048130958305202551867225187023869171522108501922093629236944453105853271853077083460352998707932166837679139641771633123052468267984033835105258579638641549079111033729313286493421800104929480849948969070470343910707211470305987115432564298388462885997079885071583046875174039973557484289939048018726495510847237111990754996788157506509970082004122934337512471366814543628045297403614342053301045373473172084213262590571755794055076563800599962443564051818908174963882919195814358674744882345274366775275713661667842735839176975610412789485681857547131913732745858585899305076108915453788294546403324630767386304125126811041344364051939045526462253957421801689931591059455982110016831064505589651858178884945346427739326340748751297820916837166690989510947323792958307514334376875380907835851784289026814828295580508026524277844706472766619849694324103706716511106674496051599073502953741935290283694315330065876852686878673470443187521206784941160576690413084653421129920552005052143513782562753317308882013562542158138230301774511460756876821462825625124969321382631900695493200464556179126268640065590731385893960974684012803937758986289559865461462650634494701862268248712965967817768953314667973480558036907694352794199037778441263157889434516802259357881535468822675755092927707992640374386184426956891593662577645932357027348274047550552264921225666382214709145906472604564969529735785496665816613645866443907337708397052288655689341977822298808966692653386155848897897746085762337924800865307441742860766078829971581456351701265811899976777896398776165690071627995112111615757268965963202369347109728873556320540741482823580109027882423702704127758884807098990202896477178799831786335018054109053791192140938056367365589771508482663536997016181070820436952403231755240614869009247590086695750950132322709773798510124990076637691732113174806094520776401742859171734548684467030723816115509705928218643426539552324992374288214139403321685548420685350062461256097759584375738925347704776569613085645635535867517953265459405444702069668201786335595401676535767311650516928357290967723046466484977409309557496748778574098938275132262120992535979426686201365397987426385214224357572779148072600387972421305969240998849640607654517954574590900423765389065236383081780847670581855631071792557929795376392655876235062235437389754089848824617859256931359694147596601610354273199494305875799775226811121567148218359033050953343990887019162672609566631750535021665683676889794245198174770957500319058026722030936816798935185575620364477752400495605917282800591842475550324839856513143641797138016258823940308124113473443863980522059653434942199193400005550958405528938618146152240062929339714430837676224582008106756174369163287851261551883609821631678472735564541169475255787621955147376606508815339267507437587790268737921500271700278038053218031787765692876314040323964728884435089347838385055286293115368082417407695516376258351553261971693097024643094418409935177046088165171131823133019451666420471716542290241228737832899414479281442089080906594884087112885481067850399446540655971866990462346587220296846060938227409639117213622263654871291724321699867399850472278978098752013171315458218126283979476220062094932467653623922012504520354904391490533119783994191200993933609314080554958704128385867713284447796323878987495704121064729073284958103961440993666734751313960452930450722306255024966605194532276021982287256914528975871615308871805628718558539228859145849766280605316352696430397428728304991764188981085812737046095821952212346568649608255188925673644767540975694088439069051682749756524671859587995331454088634598465181366929688845444306278277800031037509528534543070649850685513873144182035368604089165127095678462658400257175297931500218795067672729172981114469657867409277393828781072975213254387380302934294359374843344418338602697536685479479067169425878375618093169913735432584067389933077554246110469794453205011426893757427331262648308750988050912134286990467055858484124510227450050710037333012154220407019699494103125496247758917307916734219783894629571071996402921183654971399181466709961536515423126265107949696322974590385643337533032880388815742405239157138939898437018579904558518595190665517891766959771870818357267954843407686426842707547795336792069853495441014205409637785764097725598598125183966082032976198776617691398069957619799455509164896012777919160645570579354165520084315714507198624681125022616478586155550642712678107508946867497831598535694424442664179241367527094909407998659033669365940659122692023236501163557350261109880907845568942869680094489749366547424253065425728983995055360289585294709703130288462716046670897477542617851089694665461289902683982537646376671328653146735920166233398577244744240108547639599891241858040634403436901067777472397830259492316436759690749441972684208375263071436902838094592487546062461874527017462744622778976520449565774915829093181184792512825134429256091787042324402779877756746794445983959177448217702946403186408774519425564648076038870894898468687063808545214599144792573071152456337619041803486891345193808932715619118670541216954920833302998559350049255779595859721693432560703981320157017358476036132531743725855207214348972812153483849881693853677943976443590035826062592877781482605734557802869090824898315324549122943804563424705612640706148025332805664707838145226037630204049061569479153829196972333448670030973316668963081536622801603177092964642040499261871604700310662807782600517263220087797837259341299197373851729595298651290767871384873784588260122137124986871792245720128829328228516919498700937271856743041398373799910681667654876670840328546750096476324217535936541524391951514680689892779978863047580950641941669229114685403460690291872160355087288069113812219063124516198611531405555680493189091770644833401532481733001879645826134592581653553311632939461981153790207625825652054096056991709692435783388956333743285510989379742851643316509939690145562499634627700017701811700859404618906655523424020688553674201084193898859489123602020072193945084853737843803143273036977661535713590427472564479605976357365373932994911541721202684517034001336790517500547497224829045880109993228996858570293088385096407135715725745039102905768520484424658404459596708290966515684178274848940815484678272001562475959887769230550245249219753834133770425838379421946153335541591706062843146280126048161266454191089321339013688677918625485344064872778652599840459997770701810192805304477574586035710800740780651834283107498429534145343339310755512525011529755640458077857140222584692724100086463993575037854808466114265929511413969787023651209386108527700996565295670019274748516688935469456072251797801724454450850846334996135532364010408618909645855733463758565713708267097004938890908083659126909928121513603443080508426342564151039143238299520253122002188224087461866382828304289386148614488465688972744374328104770872953646074207082888155776191759806000572920765467867733265014724011360207112443573864722027401991989697414543174660938787054205993495142256525388578547450803617317900537848055292653298907172853553384401619984554437599405023013099099174320532414213189830976494655253609581779203302895037040705890880815860872563307763355449690378670213140482258960796053207973646343781378919337830957301842851027121575414815325443263907952768556537168196611607298688832985147416966921168315089122070074007148571663307331216933392602919773038231208054383911820206336243165584301932487265254600378604765140867099889712353326566860958754498492265838101208189087036881756073326039139421750417268623471098814247993027207396898238676581151083055192144913569638459636198788080912354691338320748526634205797414111466571267717378407540456365633226451697530312154142380984738162804656288549697715211060954133115145334920405960072808922306017825137451568136612848899579498019988978396250685049785552906260558518896705788766627297368227165080231968200576640665141929724608237965287112323592407713628673960101699934699630243156421904223405710929452733384961866777366547236539476332774014955555641854866863511916889580206912467249798675102322974384266013448101734743994143334784441300584489621907164175781456106016010418738515535177170760385134561693977513624380001480453078536483425235635940273375916592379782246576872154495581930204638207329958492850004656967809809480337296316879407853806618781614212108699979223101193516040851965082377894961192339477120159845656401504320596670548792257444310126158936733521178185408522217626373062163580093091009008236896455272081850695067357656219304916410564409499955454472427232925352456483654767131981861247914210806333495011555734685318288414857391971062685720801276770390786385493589155431838397950653099478764548952823608447208515848784525356855462258349966227361429793699954498842031973652054650494991750550520013584665664930689126939085119728713821638538364957945340168249860348733038794170196287221815742423418593421526776299172961576285551312942232164933831470443741176798878480103707469268929348022075984120174185925471641930254116813494345604015725174651642953645617216244012779859859195642411497167742772501506417940528175192376298214825938655609926356506243402292183328349109935581878125437955207714326543081211710475858738008552164977688036154552844886081868913543592557665111534963201681646842946550098719424371140449558660485050137553292962747860539948435800717539618202606131827490300799505599026063063416367584155717861393580774929951166585879031246721492455519867544157715682334345858219921072713666478439053544257509544877001576812232395049498639769814586627016936717208966958500924965037584706320750930982451877612275918534210444901833207335735393017878694863269485869884507777890104874260849062103162805850887232545107751788881942572750302615203069579463473246095177109069200899580009312747189423006815393281461594943891855377173563809357718979368873300318198431138620286510625524380067620559197175327890108884936617773803948881370279988646961965418842990319369749354391972980237723629181757293165564766068999311090650514630398835889128966776859271088517491798664378754610308058267974429124979172354524748641802973591169344836533443313479171353621323248230909190473534131413793771188418445250268759135810889984161083099407570964200368837681873831098275711303308118939780175508684214820161885247699116610247672996369463936378755788234195602138120035177876929855505506468846222768068729800799993667505899640493171404905168495119399613706817746361887777767009093646484705326779186239941439878730309564757921512019368316451714107464809687477075724988686365971393058161143184115136946057575206256349493447055933069362541095997375719323665828440848402869642607050351397540360785888885339541960170076979517265747928311794991535165250697893021341279392988022023691799796230662862246845756016926948755250657849269039611299024437024371670003128112284335302000636859265510034636886612349240621233965386615282157845050487466129252776311292597579318926286089658112713197637392024343948776731339182630861245841006254622369881381816344275535705474550828294925698325518673775228214693788846235807768151444741262010621880348112646509719754186916554737901686547098476610950316892292580184025556759672385326332015417500883788728646266340821472905687618003029163198725142673264174293929976367903705097043550831681372003260096693187917492642437071774622851433079757174587001013362033645662027226826999268188232897982991848166243789697733570379134676069733637340019452022367490264768857543632093053972959622490986645214351052723713622965026076571845153623246022002858976465333982987536563889173431775506129562073442399460408538404436128083839493779337567376843092915121197896577037914713919645105330189393052526192249496966352627410165179727582156950281237735121282646812522309403397509414590412838761620570932589554791817713482364883869026311017825663283296978622931412090109736324646129856131826425224538216165137849555516361599606321176480117117295771902275093601960288929498229148037487676809169621516355310438856881522455509067366308734929057235631104660231213182200729419554838650722949923452744997889306332080432674980639899288732922563772874681404605466319973877524468537359529740028238916729975905543698704102571231489317779497169790334056860433451403466002421516954653721581674207214698518849581631374071555270082687476775498962204047213157590953875559928435609709970841329668379996314502374461402187044296342687666985932339943382748174672126393125186625554994214790284338820016064754072519082130543616668240396055762455970086907940712385148017219322999607858774371928131327106863858923105989040017918638920730450071922392621555228643523093043311461075587279900302760783942873198875181711903621786282301126213815284541488760524185472630482827864052949334102005713962321681661879090888366765841897708951400344264567248630730560044391369613261268039716513635178558056278158060424411523123283127392390303991903173716820306029007635548424590359983044981685407547303434420414926056049670425721911762982170779969397803322766278391779756286862191907732215603020385830038958530457398146483822437290252167571848717395056897378417925822003009462702497236766533479705872997542792215485634977369118437236967791586709925915724016110281957171207761062759364029067447915285894130270040563199579093262551275944069465268333101527024675004204199272317032493120337142541201552330919166531080117402359406999888823184311139098144217076816584958058730375315354787410414157104496440199204838290912801987316285467564376397968935801805903653337898813056867687361131807108328038667244605460832067807676330378485904686959161620095785144559707222952996427947878434774734407097299870782812019488131925040148828375625565154400237811932727602762438223009765040349941851479638915435929585442882215621536187833967642922746959054658552996592994647953922726470541787646556565655962687793233340624633421334388452844074927047856558433023112937467609273786178104311465171478381224836993481741881083742418579814831330660059617689432581516550365536292642899641557482534670018124569360305822569696234174438252716556257907098066767363978931403839016553608008292554667491818226826300214168759743008087110656658769843636055491051211906573923222652436683332101283557915440234164202093019899523836673662595511430831122250544899346162166081152655234690100295172052200876132021622670604215340557540001911785260028527455477950404787110476846760720003365932014878491747573239128697851233668568548424748124119154826426862174098679590530386671357695072474855674474837823474914140695199772222246494274419207220491564026718638939935874074458249235915577861116094416724010731315623930656222009957375163556973317382190100990171529005460299966332914253642531965728661408262187445660164840299651241956757976206641949388354411743280731893631909726210656528039764588013752188316024997425806441603391875362845482418573689891068770886918668238784025547763414133722735350944818165880315584806252622216501606496638477746749938977026790504826603513078210557168959234214896819216860730699779131540750550519324752573563886950749417637186420508117728610551869522338336588633153513182401597709370451323223543792788422832913250410610359977222599738695952601181918089600355746374238132880412058238939306006798214097333059827490930502128499927643059114550301091492581990390123887279221572654359618549387653996363667029673991619728381760826874313666571427896387347504696652683610648366869340291674927623239656850019258618436477768165111160937208121631985666195450979418450545372735579209980054526118904148313657735278104659975830501528144822782020232153635501960127230844935687212648080591030166906057155379298866619397077936657911043996114186303815887901761356851331628144100540551662749561587994095272759027229570434803083737319495514777094070665598196480423136916273099119040061823749994703703670381226888279008020987182802758436470689644696280656180246703880575390064448677298614520144111752769318993417561719482225329993271311160419124903220741892167335482203304260257665123487795364001349083389632834448067789384835964773450957758467284877477729528727624075879564162417406358368452560068054347770723650758335698187979620576189113394011579033564416617469563126768056356910002310386215229643629332823954561408788510878760390379239653600963027520396867672780687632402876968720110528489404967478657998412046172274192869685587464941001818533685213484047985016968487412158949433629263525802481904520339758949712593607753834520835079501075990380599076683968570915706556532766426780801437082379247205265527741000497405161630877562015442195063910855888095196446418259914462917422522843579246810967665126032492767917841359691252359277772608162506432592331517873675724933084740464917498551640380171581408829292777120472756264394388183442852572459280177227400966104734972754323982340875970100613210534174721045412066255852213283935487946311033703729874978668057888682295091899113848409079791813187883839548315440623137825621931974177158851950262745086040044197233320497564769894146971703911915781050461882994476417775604764462028711249684545634255853283746070079997815828061771347195723875600383080360459029320954525494450003553454782280641454828682522742753852534532035364666710950221450222288825079238813514437093457480186915289482918556531419238976687575135713794383256303380279658382408269228737444791613111593896559721316744400367518798830080077582519521777786922398939580423949550333979040318443962686087139359892785413887908782663408408127624432097217284776324178818711591997169552981666018649329517344226726907139305211618943296448390601818032350540214009586141779808569733023318529610960047377196499493189930131550270945563960640841585546536349287001118472624627840576830146481832528481473583854970135041588592069247389507506477663616082071708324389392255995224639885524463852091767320969636804474352850053055430272973069240029482467371233429530766472608021650447569408988438691389466938585830964639209576413293994531689567441043651097535675134449175085616961870750850563870368023873698320191447473969831513952168290621841987689910814933564672295861349013817071615857881773760860936949733898787966403986083802544350834906951276177704300085707545215398113710212093741844567671308455277864504889964432196308285977645531267712320921465430242901842907243817922326912891133993964879594386512330318115857860114751563859537460972841140027313808005231005235637913469695763557714119467319661151295816942946027734793307641920017148696904139383472172862465152714910847466155306006763281513774498728979869703889984402028346549812330866570981406314792587104252553634212295592392031492824623443322957115885769218661931293229575886097432288569236476833586667059366024630408803290517863357279140334556824334803164333263292841417710879773995072852519920528164353811225574575621945006482790116414894766255490749967980264028053886152729597301155009306965515591652636877365312929521829588483748555404360864197850870829334192648852937530976667554050401837192596757592255807398481768657885054414633603811684669076589346922453032643839634180231826656176488900237464008750143104188469412081175047426975216981489396649038415378927547551203941528971401917528419716761015879157967488599332981185771455814285403105212633488143664170975594685723394375277507027287289706308852085336990776467557720937102411014338021044058554301292461765302012299218002388510511614580733562410443838444915262992385571402391866133893532277157340888996190023644605328697964258160306865037177466094292681171980958197219703309297171264287452876438767001851090733920637972997667596689817986155715256147075482213112030089740883547920999866770073270362386683780171584041783062143934268105552207316995333689379895001886866451085019840766524321001907114539083539353178584208043802213408110348865052572704580347154279858591882154882877843929082193165166741905226400148701742317897730561611072957153074062890793413590603377205624266358367345454522134994839417854517854838047699374396566191387975838074251483995748453085925629196187275148523321628391986735052633415888430544421219320018281632186491897398685824974499487464522771649303228562281521382806264718208764123472798271538996247816154231964877674706988429356962425557362494928326843307286470981596785852676937913308164588978148887136420437712181383265359828502255795149316207834923695967590436178121362546144026473879406296048588322173104435723923071964476373000115973933268984457914132592978053195223955607661726411839214099974415589904838476849713733500533462687397888844584370077965341117408121875304689919104396333570446551072536241929354883322648584371269112809316510691966642717859684058547531289366750170153783258847705736306123903491154277617860868263116054950997994767561875096434813647825790511291776147086733098409221387107402059897749021517270360984617451486563565765930407586684000369304061063533776296630489043274773385651293506127912222319846161433505946971946384833289051515350215891622243029886380676034138446532702189433400298871104418326449914189006695546306551457217112326704086008961158034134842273936397114489224339008711106267356492294641431073815983165658636782908031693801357730760517467425069912796413839591889219328582601791033392289113805955826804357464006449922935118393422033428586310742538659564073917408213943069702146560876515446508064376731291415149019125062039106017614142658862760982659588835052615114177979622642412297753403506808745259373814423497133584174255726308765420316171191521047152635827590486651135671741516440404078488884466066720917657059821768280278628616765955127149177244755016753603696528750372486890912683701397928406551352112125600539961623852235434632369129640400072914543732662769729034107992701871293505723502525374693695185307501535369618973831887991952395965458974044961769033831457117194069987964813818505548122807935870782510660022294274504406883516286823392817548186577502629945659388042251435378100315995387462339318709891718528356847673908736290165974113484742345022009384829527443850093677133452755952403590972264705194983975139252028848480988358155989626217496927341682463615454925614632944659304794303311493578190659182229566871336490604517608872621793105441934717648720371469953296160518053662720896218419382745316271278754135423524996425012583128366430753948994788823300053878974309156976449931240839070395987087264600218745513512912997590459995976687944586965378470580899522314258672467521830225740713499627589098035448217984697949385976463001184084229064417355058031882759944448380260617336740861482962453256589292637527541011611852337271488691560238355082824934675347521792500158059912852440574345717270718864328441558249051735166350446667580393513223249135058245368957919497226549439317114925337049268927816114812146746520912492069582709712086860465450795280292616742107410004729186523372788444217629036426264902318594434467821491380423011244248790630157213686457074442060669494638247769959479813698313456660227766459516684063520036890321164615475603045693071675064033031081563865914434280282942960838518269052730321699371129460692908701057563158184521141094010924212205561287187697510216339968633767439359752494795830635048521852543980017976649790901978881903417771157856044881491516396302036330247797986029657402075274090158706962542456120711401001269955606873979231464996038245662484305838320966120742223257006524603377786942224806518070650742825073072430835584198735012572802457039819297102419183527561273207164861067022251803441733853992506791241882060073171165697573442728548927850159988326529583475130390125773677192538310188742194610629004532899752514550478245478134053312364314386416380463993974512058207468492143259656035365055570930474435916676280807032440346365237039184189703589186516347509893798918091285748274511109121817174522810374475517319115321967350427087589906728287615277134719249957731535719363615991548876265919434081516630049976336600784812534614517057107335217488303869002321698408384435062792286518044249514335263662733367229975561366574087985689322678833316000960252687223068612203676981921673430728585867419224483288698017802852420593470665781429957305561458332148698698317618088235966413461318831353190067342533335909930360105866064939648783483156185765216835488627261067331226862131904499612050825502249102742684725731794373933034989828540890344519267724525372458934415910289337346718577030072180998006895077102148545806603998866765512355537951278470073136511705184719262066912433711625364538503808625120805553943594291177203432491074866828007702424126277325431769266870753494293058860232132797918520695480184913466543533370699975209339644845964237562506746416482779540235907405977693803234674171278222930645668421141026457093563026286463632840695352065698949471714432980958666105478838783958401766085181025005504940644826746378422406374555359365689464642124179604237016796505644250008072416181034824025526756301963936584363057390885469010574636483968085422002283681800377592747726486223320921615302550149802446674997147986307448227643435325758165023438874699828667396519570122291412029679510786031742612770789398890724804278967863544303347182191865730084195463881587370810576493895290440607187441261765162895643969465784325560294618201788759276765577635927281480139325178000455202435838652179520225210044694672162391394653163289214958437164779512426599912763717719349153433335198799766369650817056004409849259495924114045708615940568531449129692877308064306560893311413729365847267436587216795856832603073805219056873562585975401758185461486334797259903620918833749799687260222569106815790110867283885057013344795643107583719485078310039853190329517666464702333290156575599508609519116900120006227466206421747319498838378746853739243702636220829407819874638269608997297148678222562962127005153610307536760822350944420072815107596556250732127322844125401674620204408339193585644855524718577867086662089361389760216826693788484879648500908974289752216537149526627930980672914489350794903496848620207100540102238044578821398132420503740313681501552419868541161363117197427050310484611970102684242498106639492836874389794370065775513383124335687120466671432852944084812990889373963955560895666094564586098757398955412330512850644013668771758377401982399103145170991924242014954440158104323868011784211054378202902116765396346766672028038920991847698741974741112135778657946530516428797594615371437111483534535686139968506795399675780724765736220330226580692542598234006917387247572921269439105777758204905961139957488017688566496688923002407875680036507844436399611583218902375645617140982314810315097061586079010664512117553712722096367486055603382053938229653701706658166745210022941438980348632090340766428172700176652877623103535522355964255657102497723774758240489889610836066325005565368280974580329876267099090620372531199283013781019552120565518452574827365337688666419650368048387710422679943473398731538416453400569265988351054825868684329375954579546641242874242585394521117447516983876446052999573782421360900716396122228889181024792969575167902686071020839371349955805301760551627849980874209251914220669394278097959115167537237056914853184921026648323481118427646164825727895860567709375091018523874736082546440796641358798343701676428977642887580055389755188354589748741677838506764340453046621076507864886468598948607793509465854877347106793713101652864837161039877700664157967355675550328321858435013029927663070960030562184817523695968800510105276696336673076604197356541629484239991377797879001546840929547713191369507014802725180421631700890021005748562202749614098979429436500769085220159775198945608243253117775806515568353248901266602384733919186841772076317096877812615544769783781522849041695232435804969898376830061888938813736652753254001641413628758393111061049599313947127189429853709101295340290936328699431296295301729185432861449780509854618792416108513391171620275359397560495772639283096073844639698140322587678988416577566764400968850667016943607412688932999613913082526515694676177165883496024603508777128965443993167419090608597465498361164405140058942982063626580401590517477658660367086548544794595205006816772243151173388602368310343704095935060922056823104861470516676427805800361673900914409573740057511836933045428470797180218393956340154272791122333481557175437874586632017756123539907739541620377586492569118038629695800963480031619533861697867645076886726648474170720553404875829544138068197097551586194452712161121075556241612200495695290873684585835486558712150210328343797988130444823842637274753687380225061321534802840822121279795461767168141123059299362735304900085660799379476695454975000858403998249924234175336468973280746660679812231301708020260675054795190732306185065381128231620366861364587792707330482949990749609480354509007313387429368505367172540458450991739394203059121974522254403527916256302292040930319404335072044958809219995788253514226310289767533477581135474175732222621753891539499412685106733246314809281750862764362690961895873683310866393004906533660866788228960257866039404459416750750866132673414667202601645867126979574992149194092259448237968595664204797771614638967998953283475095155396829329716527316948021739416957518893261912779223182972203172033795022122172160630641229162118289299087383698601075364285632594789036932940022045228718772184156039160793205565377110580864282738024860431180792443085443061556537391653485835038364825643286989379905656579010307849142351508657866374516953667593166139393274684294897564947913600117574490825639402707667202520210262035095772745736529027528957568203240917334955709273239658237950711045742561783023058710679620902950527307294284817696696503369770581377524543773997265425646729318768419953208802654104699540082941746786899704338802314435592899802976480132272776514147040881001202945033759105557075106911787498571996259304156823300873810756916199301279927931159245815066093772134970955517099221788061909188549355741530111146530676983598987912095377307357252316979586531091777938522645291299956550402292347013572256131458638077107901474422642121438610689006539958021246248926537924893745549683938780774100363221821688301126934497349288234465674415336530972297100565029458863997820060019925044429802034737346289113637021338555035467735881320263570690956248279864294280348312589129700691352615578722082010766908317003974261153019203327816207995746552410651707854258130254078764572429408941468900485998984073942779698380061003700177107966828251989158650682734733831309724739574459946015436379542546959659503953200925398161204723951446807396115900983738385833800684076430586325802003117841301806192354247672201474304254763507483240706812571515191669560672433361874827488982862848802189323624486045010687440687385028771644803738505620710422387857967482668108081300984142085724821196539329728850097485537043123355812878719519626202449796150846771224345862792498999873322210416850406130504466428882708903154117889667110590906256014527532031061479592882889591408214527929421950585922000093855613114138032859609629047529514191282612580469614650091638647729174775807140522937026655551077724872926946879907704395457176591348182745104528326842021105790741598413938437231806923586764689723704430182102510276176947961770467260228585294830638541161489020915883212909422126096169557550889528527311752963959676153037054649293212205427739547124278372131441900811352508910085034314228103058965566020351400055616230994247354964127371969807691325243844490333821074615984657012431080777689313749723450132293172779219649855172599534164594310674674356292937768663473899313285513182685132456363722855599398197117322808308715989739335872663779725966368603214731446271295971930900474595394679084620306262788796311478746435345018071062964111925038308245941176665301195567443113414103898660233332199059753692582156203181590461823662521776103310791642191529319383221573406209983289688069318452095801336972692383451521744320041392071034450720217504782756571824187833185794205827987848041579724429945873287574917987133130568133383224984321518400388844357406305464843594030542875731003838537511081939854764334059096432702728924843682619312021104014576809034360574579255616296059855076194783472797206618310810955131594565946150346781216494564912291732571434511933023308721100127442274985127986320942634428918471254776463744832300382228412787286488839388158933990853829585110512340540874388235980811273539877199609403363024879129498395131634465103767265630111709932681212574373613455331113726739853303302861756830670979165494760651609125885685382211548504544655003066596403977118989844490994924404241978739831557736649385984256976741385505414736599013178960222295036015896381687909894868191499211168876923491022483629547372079070973831798152625246922654796947408972102401197036238602564515096128316236485234951684607588213869062788229253537866146199186043040151936092358881682158462018969844724207477035812675983177602583248713341303952563971015594767929938093803017319530298313170811581350422710502283218538394224368090272267816166584958021171622012757766959653440720060607478465314142635060769337498947293661484350106084232011354546865122652308662099147990432980409382686335782788140529119363130205232051472261583763684096740807530942532589592515758363563116532479819155194233263778043519393307324699194854269318952726189092763833163466390673689750187712071437509785575921975914859287792480850576668836548672500103373392933702975663157020415952075057052719112643622090639399642896964912990361583489465037185062685312499451835234702400499582748491692311626890977762897282543730803415240817810145498783521291675173190542801226376525542165963760198477044607189161654730631309889035808171723127441456227098196164147104884947280066992019292359420745962776010882657977730807771385195792509733051578793666129581829486302310922304353361033681659516238699912591084357842485201554927216063349894707774840754470984369739018886396939465079094272090939537429772306115851003260650905608259749364071865399913867977657554960761609452088501494686025425604904023523867398860132079100238836693346663359126569484726402734376721305550130889265828399664038794494560327248997513623337096213328582624490468491034048402165020379314864177707553969621112496714671808602200850299031276728859740051281411383015602590775673351471655696929703266218968357794766235105177604532340410293697823180312788058158340263762814573833770499360659878091767628630980746258467817864737284318623213397255072155567890604694341108725683796707665134809704896450431921692973972643718699718824813191121826737246086283935623263960426417135483921119034925134044715874876942710669288486801620400718882931917722281740127610061176391926028130671073023980156869442533774640872934065596697214712773066221187239998312759131208478158267630993703991036861695147635042771148404899215552507812158722171968643829985529130493754604502559774001804583362047601801742879176661856673312945400716775931774388760298821618826344693211378340915034748911607903858176536835356234796787396045129222763344971184675476270753236912753938421924968313619048395432205452592433087783098108340085751328522583970085895052848325987796480658338220805433788568102698888427195646893958397040318894111702123952012897266950941805689627807418978161256708504416019471361531645891684193405772371551522014586164326162768144157684680465559101022743427026257184098963181053331173443913504019652565068047259912529950120633063480839836071023468540431176383276060168917508176538136653937929741266485313142003806298201242942597121848587719436264240317407722591943463792424271164738827024606011202732678779527679685593427579026381300134809777524413261584822556255836977020233410146644592922944793059275102619440718156628042000122326255233180301585577364290973179748953772823907332189607633127188111381633691528364177392228258564701200648390310414696563503421951387208586406240217090563172575976114621907536426519860489879310771828157388275923100879240643692928841194400095477892972510482367496479931741458392204819948576772247130630742952401111335174756020513242258198845972645448399170412072307785154782562430858264816855077849774557342101605060474259986069826024640321414598520336291226867716684751053675067920174812198304618034713725594866465923709416689266267288191719944947962409473552170873437633762942262539588294563567876010550943154007249962308097654228355548395768769526591270248631331344594650414847303836255415212598509180355775217362228135384973919574671064126984727625785559532422411373184149917545208173218387297579198540752441843295894027294245427935380059417748401244085721276321338812003172883599463559117870351455490439733734023742411112332702063467732019311949488821330520892593038760370268018685202665019920031280407394606105030524679598844671064212727217520046272219093938301918267415841161094130574326401864624449323024296324593921651832061604607032107973063646046716642126239945581513809956041439338842400904941675138755298777362494578194681378676570281095622629255565511340660360150349211384921467355416579446924881817664727300865778155377245571160634561282417153934926751451453335789919614872702899504887134653578464968270612808823112459988423662182631009213122106977265566477210209411457856696049717875845305587837881460745275259209348307490986232505253666217886329224574534229486043015653033944957929316875584641215340111646877397574889554675939369354000413782130181932488255242413839071018569178741951432615090604615262460467713210301384791366309421788713037162713807958163680438977317591288887364270499188165872020300044350543083605894054969906626559528942895154799606836114136188254826425477825589070772968101770732149322702092605766843908235836752838565282190303269174042328234248913799145894939550388970534738540377133860599341215535913157950308639971591367852602006540399803073495967639219484232221990150506486024198270663650537128560168485906313911761898164734001965824664899451726821686066877247217562621416937548655811398138474198692259961382354762826554486956319468227789346859374304231941015516037757399997744128953263350504644755804601803272200482737915781348648513700904216634812584427607641536775374650955041532551892318171844443469111573663051050135167921812629090008471068515803150683433452057058940544971839225714454463570963331179711676058855192095691822052681960511062551972723020665546223571731763012003647489615182657454857370342044312975500894362639279556410554560779915384030010611174682175794447479652528992252790366594304667943867344137396344135794091889677092458907925845154387162229809508068882253433583159569293738375379397461919868458850168402722781075271974740320269015920380979546185493756052244149669622115904646157802215728957787966024232692027155173787103059954285973277519734320564530326513132485219328139881214636156347406758895341218128833536608647836684173795005030964328468341911654839399774977837670361724655816849262016138911435579355800017202944372344588026366825185967959305186519788748636138044404990863348013892091928257855399952261899370075040226832003291740137176676185082168640900319732384709348167060372549964949561161258549836155557374059798852737672658273684543552036382063134028405703844817505504012396236580709134270139066063615320442048755471297650624055962566236937867207279619784461114129955844501729165754054153735197726607841316067107898370703951093535942239119347996117347691342046336528960100713147188528444770826982888822663237655958853356817400645140462036759688833880347998888782395996779570404927717666198741399800237909729642308261002493773946839957237868313507403860313729860243170840717549405879090116715847236287178390654801120868663317736415055434232931243541718957181875779318295549519205763706793439078993077900135560896830721472772722599342645052867687647573591130979997944150362024360905816496690808878124452644211484383603384514305054485974237154107259872720670642907469563628242151212885460092606532770938900605366751868616335118784007215860156271005366653215577590684114875517313809495300672800914075502473318288749738760665741374813154461788148051815794346756141148054076947126842669343205065614245952437220433519761958038600179791655100145996777471501264901296556126018817978488516000607884943769600050265325859008482750552546084177976591066532482054439226008850285606146840610877199745778506913130579018686223724450497621140983968327485484664805001946740110808733978227215897546329205520562911673829980184667826177323975305808427846958331333024645919198464591387515246599493409031239755769247437560706109214349652671784191563811211932077105168627199095564962627611137713435133935489390883579573482346833554949636112948941418693533672597976765060716431641694705071815464663327291026459516822634742002893360014639023248344034179809313389497198313740103702962511893738916516133158800608324387921051594839563233456669864488507668105297027073985393631655197660383222902445977810676415079566073416900576392070957004176706360370402935033227317441625835247357632720040411211920674701357574892368993153896826490033100950395122050800921284233458429120079829789768182213891738407016047666832324402089388656133013750698923062474113793867783031174144927615474935529338474274205187866365844671783028980277730929821030062506246529232182137531663076875389393814578248728049815910601468891949457750098201760806306245075604021148863645483096153826773572821322580312902710380314885347453918038119088333921459238798713716691617138389779709999191916934885539304591163027703401040678178478691708328951670306939645225241214282614554471469109857982098029422107029785603863572464096655975419726897835611307599723434425805045037911718249123230047416228683045780427893905316756409707315704424139488736505960113787591000346822042567285553284519056711218816465921963359657190533357013728393398803233140248702308140434064964823027014620052910852044982102967820312069047197820056066076338031217549867040431393113253181216971653223163801432256863117424922131336936509627432628086002179003554465058865656559995677337347201019760247429931897980101111501026133327981618551922302995431786547615868814367804001267691268866432067123411775983434659862204205034510293012533119042181375899049843154536999778615382265591391864609095242634080048861579706993249040251475069495881034185932899409178508279205794442920704497135107908017786479777929513207157162791881417480686880830564011552765640389989186227388297799056171577237750846767132913719070905272596961524189444533254140803277525185038471332333866035521871062733159719925363119327410384661904261544059056932763997312506269960496038664431845940448862435947926807655397778541350303400800642316352842827494204321007647226106083573400712304756813801048378885937716300984680194070127386989483123095737555682928980755979814781788274151874615906493703059519250520932216444300579532837215384329057433826720349110094762402229404276108933041281149927201893074674751363556429551524658409910879176864894614991205009543779120011068935671715273612067471395384986985495544573537234152352628753263961847782061894676922443518778210078201121360472035221706231894355987630813471883415846487497013492112324366707858163071651963857552701361333334318441119391034839119603945822497227343626149768423458201607384793843094647192123257219938199734786707774915709247405996869126270217300287236255264541206795162959195871142697569268463409909066073127274573916014060333018515423517873103106956502189619805914547662584269862966803912231985800637390334084190090961772347434769246202395230474241770558999573695490399230517936078496565964230408002877835322561806102246765608165899136948680052589988117995190239490969730603672054657429850156761007531484492475192471495220740821074556369667498100418122196366695388672085491532332690510018502028855668177032518365132880962596418680734595242744755656004550028564215102544891607947357085319187253576111883628400203685596214060776852506018378938869358748418978672647997597831361686381683642129547964126372979786202355331909666248271375915787457290951456327017913050095569671986434025544904728980240604284724764635817499078476927873209522257297721243271041669550027896192272593322962021070639081225079013766854669066196961167274833426629398018816057091493746436142918427413898474354303666245358117487907322004805929550960762024040893151401344236364715204419878001569080639874300828755265278247796226441048021053819792634792233068594797846685059429863011264261114907105067255017579826351312974838037420567296164247942724350479098936129832858337634549236250806905951720456101765747303752239279245315844869377767411961329673573198319837277217581373519892766293419417762793045673373033468482385076136137518314101334313398561336240700031454326658009816658571042084348141903713602227742831356848446176305814651259479147933343264923081777678488599791719968691841727946911684099225967911767583747199291564737674415615162018998832307263097641143122734951276252846969114809437540706172593021723830629522166513473229808546097924558499770344183852441667861469561650185793455755373761520841652128006494974597677334010921864627231195465590886277154637698398614455354987852669803414396730533675493734777328422129153618077177405545322207008248755688912762487531413829117717596903349723150767955709384302606972541356576969586468040663402244844756449478721493658969275722831755575940517982125079121474864154978560764868161861028607798076426329710236685949569043985135540650410947570011305821635259638170481238529817733738404764695328457240076885762676361701751333113867126754662712784041516890693763876331108077415736651618770608758340759873658788359013948576917073425582766991464555676752248818053102054271832309739997087341785209038394506492550944995382900741429317366016073834508824725797056204852120331832746703388745658970008364022414837366620553755784653638902104649596328406120760223921029114111145757618491592417834294753216493491465438093405575334473527357041424704765953844764256911554379057563205761682337711236625738071703847728132702367311677989486452546044288737857726436199169416401324687028756699967111485889690087231068904169363448648243189016675034515337251948776146915062213477235004181064605422645192787878046898025514846066305807305063213062630660304446152645176699649041332104920563461082619702812381312934993846967821340699989146951431890774873456708838603121751431167156750492217632800817789086263149130809779877065824148783315277352808551642268931102462916482572830565681369570476337593061725545457545825153760619385905078290549089273334323016576380870994762100466086697262409328751388229427033457158443044227968908476285515108398053426252975120787136705690203244148714348219852762783142800983158568860795375549849247144103630505193036570978445953611841608498730493100879132435986180369972134078772906339294336631637787065342315094264081763479970066081648982193282852087994631011557777633063773411926773276608258912427800926033817819191303903240612997030250732212020063643726981736244388618571500114387430451519758973023111060647736711828578949705755580151928402420486928084023940211361383846293631728302394079950902187438170956237640681255825842735922307474302491194371976358003463048486141629169138308290543192443816999754935356929817238667074202997929122971799843825673057751820611738487177283692171570447963129081938390455511906787681704022899388791624136113364790751270973657282499620074146824050742278843100416517154724735994585561313456521210353872792857664622676533287703276357127850151364565787975869745023047561411772437956482342276238175889563408715128721350220190926760448366121245821148001817276480170555859692467217919159152669241463388792434856919827226535586575806835560953906619074947231018214083413044344149129516141505524936812670909074558416941074258245176788968869349137792195346673545737145267276445952935181092224155134503977497752427375301477996043270581076046600242055338293150387925616237420045542915577346828353709754329802110298714373220713631755764707259675110546085568487663079128390333181111943646807258645430294075413982005918127191283709300601810124922343214731788470633858953378490253755599089771274933998295569401188508733471564411327343040879128933049342750524192436797625298485598315749441339652117197446381540670700732426701044108416272771301448074876378060397243992890978046491804548255022384160502499492617322924007288218635192774350836670926600780529583985354164286448555427698098124699224051027259780979095506735085763234289663375937300513503252678111424753686393539507347980366334062682796223949247538993054756192149375877948429549448288194809373154690963000423163321670782669186298721266586012980271814206245527964403586238787327874230702053571771178066379588285773769236471579916545511395188040352080283969958829808453429092593446297106047635105100164506982815901369716672358201631261267016066442477401981467788018313526931696172040345432438989627827906689255829505973766851073002807927337043368577117541761595358744383110219395504481560981260784568302822450477395780751371429082867492451530143482306115600959608795818391415741819171659368858881970875160007117751979977712389954853026599615725346779426382785619246041417648686048401670437296866450765127277065804781787506134395227826081389994674929006627714069862347118450297221239181777119297743820011829595254557756338390237772781099422450089676744383108273038715467573430123455200947391094697356968231738186516679411129856481605901393974179300090310621644262034739693398043295406262451160136795287278984814013637148091717470152481220655237563774944039978472601772374610025508319137491063260265123797020946431882617262576162045391227574640016541511854928181949325926009149528679160132890929393135603481260186102465495839228000544852783893488124446842050160340296222346733809788534249356864804024899197302136959497064512921407396176607424831678922262823575026933329301180901055531746092040308010605325185814809629264237991930932613631816486111616191421822790352331167061664251752163040817088298764148593800845687817117854996573452922422941744539791732659684636780390677123359641531432935693263108386589946391187832107154292228261944834643969826778183257816192519509999284562673558941728985126125334310816185258025558632733470659130829984509675141007564901409337486147998101149498966616597965378264216457612181333389447200606262671976805665778123231179941247235359270916902043497099373676066504040684028818815362785070910789879857544762437355951687948627702391835683329579245541493302188593457151484557811953187108447427572833457205529758311966947016194269155207043384520601263653969053230639242783359104084201978051671081855697165792143788044968588681040147692663376679177757839280213885499135115905153567904968632774587416384069379116921005867043523902199602709986427879148470007356152855744061302628204544798041314915012865178633782822221498257029178562221806524065067318824731749682648089011218744009661802927663577278835364782476289770500313764406471017159957477042834681171462734859344485984624406830075299281457225142395887273735042211682636804156891041754437612839502628128414263314168350047826776381694798614643171229497324400678000647719599039791085586101093240598167521963084160031560886289227632503959849110959841984950322800313876102085078550245949887342225346732379622895258221234050595856436316469284006812070762748362718078919321518256584356602715823374828850452000937758867228054367459173098777056923600361364554194255609151578616464923852969749667247550120540514357256312530799695167123226286936588440496813802142198651099801828453982913216868177281041095174935010978367195003529188031824165294168118402674050338267907139363245447291985405466416992099322054914859159755397621059421143313500627350252605509523118539956472420053417376200659780467822734150863180838487246861869604215814585434889182447771241163871709889630612507552725249722745443791154704359389999752786409772070415187243439832031807543978540242823666449412204543189800663739217054065077441158059727398179884682015197820024876545591650453928605038348770466616087481326881722425183572008503292769040473795008250291556320741809722262986126500309629849633824224925030408366409468710410032316942794119630635212204081699394505444882540944962001936136034547786983599261324000984013680747428237122199951164674033648541432863149094309063310456830054765650350076074648591103240807805952687289095163042400989745861318925740723986355889373428172220935258790311963233820706938819530718177555111214048246857620740130600746727262694385631368336954391211192428822844114328073520378625293861528084381327373179824948345728929342724358397277075146754154865645660986371258023782851469406158817080661494225732702367846164832039061298872973841956330793442410658437525970605560824081788048424335637555658389094322274204285342620472784701631134546123171208424204287762189998753373421433708244749352622391943403382699580196242475693832458660204991466841545389673054919036332498695756416530114670002088484479522018001372690096261452036470368214952024072569187842869036510412562692281237205597294543073395377355902886061957292382856342941354894112027246873678751025137452247181313125702724950704635520881778162292846278968574898881418163252349842889068449002244382940414203939948207852446036022568980475006924957284955875498239665264534063856489030380866626424172648046464970440534709715317447938141769630499325348148911704979174094605564129904045282394251392571804600064381080565209245509144438042922967461418598092423624087666451310976861072347317319602515262650409802083226520432197226214625754330820195904814196048952212208667440489485371088994794096992421971279410838174262828801160304346989971962770917389184766427506021112768809788021231583273467646273238083501000527672931752152590648343172724043875158864890038521458169392811050185516964645274555749915104855859584042407779582864157015542290216344813318453407882021932755001003011082272572234033716682748965647580166271765514435374646556871846236126391802995237935855939987815926319303429543135550554659816394285757797594284429648637615426362484345535606991266575215629353425784809298812287536224331709840548566569044322642736508270239403357240844938288441407604549811201138183171262935382022346615474562514641336192717054093589204072214464390157191652190242467506460635635129013625635794846963192500665795695756040267409740463699579406146349807135381095934784691870284067552802616828243976418576210788145297484955970988787195008835720874855537168228887531328480426261898705158228993621326196864965347650374643390709618798829049845018364056677172854481331086007670606659310664594137394953540925996209308972006195813589354882588856167104765442296634127757765734230707717936717534680407224747646881797709175949316921282566098285047237855324556375262175727565230759064840853233985983589205876900811197267898675294835336716338103346272041538507158541795567510497414196508954006766480129461030422576488672957985931268710783277183305620800723967182073566650503293118303726368601056901332481818428671756020471996882431701087950595956619902124591222081465959410484594719260155966142973187278083645038809113528869115782044203521228343445908394689401989010502695641937531236979702682045214403081586802060281522091301275548564157271011509232632133558718312668645592274260760266460794435160626619303556135700574331972786521740837980185617081905812786160628305783363780049774284390413080298371912878249465525408414840095865092676514935083970214402164476090545367977326833809869022721340616153556544050934243332794454034844309465521584565814516517913827116655022739146499907879697934769453511916312616349654168216252799171073052077037365024384717969281084139576811462540259464420465368641999325554342428356557644410560563235882673373205317414503258411596637790002072858384655033606755109020379974169661358579242027972751316287730468677144188536235738526261253139001212114344479244104114702720085699599605479225171799859500027414513198708970136321447368827608868971667696148996741863141358431349686430829401417523031320985864002580586901401726558704324243455089305145248766269497129691981639595927994230771626055939813908257540729836111207352923244489701907092584899124439340147947841199393076294480688746836687702181351830015144775124634374641546700174672338702386323179900848210278728967170503003258539557947933813005659286403351019099032060768566584696271991674308266831378188519253613587199198309622222437419104728084646393820297415739018540725094383619907453735801580416450334042220662307768831256296422910530619356178018238968934116725201753137279944236044214250474007275135201548321610298932320777243076585148893233249987861100589220470778755998755721407627072851961965738377945873538342017532572976908813105460591011949499967414079339815816931548583572226756820298857068600891405462588657003002140996941766147262321683602232183533955022286573035734005842965546628286182644562841918594079661402944170571707584537127916753160363059631846982201250898995949860202216545441490816217693614308757616321074536957962000690948012021065285081528958461774821357390643248020507646825204182731183750370659422362912530090827277274938987553010703182374966794007205171834917653229826143199590185967220769664022859001336857228543111670198412267372348485078424136956796461168182789148521373679259873143603084883874797021084998116956494658629385919646904618008657129900137908379869262347332289862597853471898915295272855399755960640539472581968647428487980835526273115030511038615640720952727493620800062984812110290219885653426567762756356169773924061276324061966503230365786006626125153581639880070713086003875753228531967083646756913878886928558261578082592043936581492648630023154662873461975744516706135834297412230973695222806872898652250122584413902302890959067196173534326692459597899165292288670276986248123115475510244916428745470422328573054410067368508841198677357685014119927712982331417599220741678891222068182886595109581331150011214973306559890519698013335763066176398129624790637245762606117671300213540199477661038777913866121073642688446681845177371776257376889002776101504384281878453102273953955602948492727345039534697187752330303293313898433983007991566793090467714076816586491989855087774523670708004582676171495724543427621564976492571509896394187023869135955948322606484115911453998227647463981719440677349097196516928068446942921477073685092305271402608905387112481032984134536612808540686887919317544073331301619294126855548006594858243926518597833382473362508521294566727843932782934706227159186525388368824338173685292814590567241066656253899786868638285354899151796935793777798904836221066468951621656280454558061921602092992731266527653865211314481854573928763744151247191716354162667495525779335145521462179503163082836083655331856566210762843903160050081399224700387003041978827526607862897275973046113074168223119967272721750325465296296983321963276668829247339489840725171941571190040921577358777110509677370177707469896064436091598769909290814487288611445937633143721073919578505061168645303353986926600828983208363038452983339790330111917216710974880452480301966536808276537853892413148311124994055692207261097897594895576531918202993080771148144750489387176818355467108872460667653962403149360049543147302690544197902201298638209707932035083570628647345327093241563397565477232053611117812847668922229190355543307654431760779703819288436813484933914257606688155263945345774493509271771691259239772550410275424817465785914108486629305889681297807790142255598137455509166624216683444625053624165619539678028307452947291894053168644660075049757121355671380830430485692605221748236750806210938849711612337401289412387224729380038229841850923327407669662280873009061041638075196767171812537215178953799169002498237307440776382615541241497403275301351178417159874166467826618387299196014381401782404798795286859691492315926596155224273453703081354980645047381062506580875047153018683209220409769242413554534103016377977559296229544811939774546692844080470871093332271532929393466875353638338545915434875812014891481660625066775419265353458543126671096990370128119592581246774809512191421489333420771026000472191867835907939533580716446102026044102309541422125835000524997628297627435149209816097596326427679586347683743698837144945682587042850148627899217239236569266865021780438152136119038374924076823122882972207453274546446760066827160382296915901268940764230810464910039419851288263035497698351963033055943318502869265302571670831917724629919544245183186608684786905159424837480684096998456220116072212633091988382770928968610027514698787000379773145837260389029158260317001140151658007960929598114372518010652599709486707143982291787572589854941512572544602245472671680640183215674025987381568115282803736617155277568896550066250036796292401191505624959570484196294494682413720382925759053815003367837185099353437821184412522584049653805298644141041331412706314600067601298060488270561092664075255461285456830900671633188621500602635591691437510742734099604116775745127410515311875578762607988107558447986068496724577944105591812060904007399085515067945310633377103812778048095473731118473863745657866855706382968743621835666263398073939767367290819238397930978683496946212489895160592056361989190280444749452553955186972610806813809306191587878711059681836611900815264051714215596761902778519739393772213393365997877993562450122885361593489555068916964877101851969041012035024425621131382347501292867073728166115191469249123258730717542586254364249257806560855235052234712022268829021108846905002344025331079241168256757184008976126890618445792814877629292410813766019697644556287960447532865485195292613693667277295097186802604945031218638390501390251116876215932153963798559548580137413281864398186556655705975567028210435417509256239217794272156801774163575881250105524416703925493052568527646645642043627837362712632337568513835938052466070713020492232291317243230138496934102434153063583730608838794702095609274410698297707262024110153421908024301609798248865884376809582261878869118558902565711514242927911781190335597990400590001573378422390141903164034863391968870352187979783166170922572731898302752045838211161007785507099589132906007628879926093110213745258828808428784213644648508590350263104735332459931983553668222487774739533137532202100551831862864017345508512246950820178778258834888830494658169504635967551917267904616927636413909635585423751211918174817223577812845438763227948104132735184832435473355575437444463723970231731508192371708813923954373364220987767693784586971451126777765096521549307619131116685566327256091643896566141990158635916398500615415565721790897250952190813222733733944073052936493507636908925902218238637892363718048260004555982913361555691958521406481977658803604390274062020381769828378636694273055851646576776150726635005973433843030954901592643386868076063235129434941431074140481546444925552502213679436625775899058824170745523941540401054141075032663266670980677737377448184842156177527453457348640770680047445090520164595092567516994454903200421826463481120553841805723066087723350242789709990911676797195925435207356673240509776308297572314882356158679971263449830634417018694336995916386825602146140919477790522472326736709941886435563799061704200480596797307056560060548108063054012638386467219731517939015092838684239655137246725865552958693049352305504631137779585652148370462127544928421019257319058218601845540822742022501228754458249898060662590002575278345794034799378533822308175266529829192441406692421001991461107895247963427431951274265825046539117525415501452030896526632348770269266928317551101382202553546023544837070989855009350852690008080583729523526811741283284932939062401072414251063841744305765827365671015216307346169700872121483382818979567587971702025976319618562843992480019957507469500575422160619028709595094381247093029302114796007706244351450990843045422330658478422132834457009014332376094886031594056931945037477393376139458780074142679367303787193313596047192773307240035628501912853485244650467039172239760656252506075978576148168485001536808093103854566714258467368378485191911787282546139126637455982378120893296629641579839366391023478532078910366956055796140661613974122705574910479037121721652122458033715603019487404822335563592145729419422794619338107711180138851771971257659897282623593088604012330393617178023902481145840677527619917412638086069427660809664011942846300884736291053719415668737264276694119511267249190645928226375405989360129208352758744118126967781458347797196474171445196799237944207666946891727499151312788225126130448104381970533055989194018541443798502354756919903868207122056037771848929765965483327553777409561096981704852464944405661728525178519920715370354457007175267275221162391788291303110101059755258922729163236203157334409235854183926990166410508334858644591713886683460621043659815862986378733652841354319103330564363714658815697714323264028028980846743453187945054428625359275757981591436218342695154442081264324818737586306951536519914984845360538945424301615622019642128383479089843203501931367396967049376933236056251510754484077871495168514799704109966803391413263607135669024436437585559694089723003544270467702063380422555134658639212579103078739684273507297823617244168881343797786168332257346536534434849658494819173047308934612590144743835994925859935298550291977976692772498221041126008772041363483078634896306144406285381392097090158919516556497162122231540934028450008543016432708198650349413132287588610918924027250698325018974894044739640933409682034994741486639326193340456751170902317344028422510117525850829115945147126606443623093907766113518357105019310522426515758286331424562935539284597765371216446183061851811808721781140836284826272317848430025009465802146524990296757880665857234647991412841150573763470723840332433308020203217880398891847571615378219827587477197732551934001520333240073181969599570230737546923406501310029643951730347220515932914980436200543276581553578991803669039274390277030769152976405338106660273263187479658892228084892389535286370598380803647256314860744648680915760968658507745595607512212187365231622469682169744191646648428578638073478405880971355548419517930561916669038682997669345268441954863635435248865441445967063780271046719852465857110608897429979996520776826239050923974254175735490201124852476958744246215207385413759826984327740202082905384385973557183464324380084059167031352482526888572404726937236643294744128437218826938328046034453816728743523071282826848727729783025814180542745727038799762183929190677800847737436637799409647183883497721693056850139769299717604920869810141481471723315158663917180169127462799560952764211515026518914652254543835551513680928585717837124084232906594824098909981454646288037850930590235454902416325589872699166419902641877674820286498118810775814358922633541291524991166871757534594869176197877300941002164642617500077449978671312443637867425294840300009167072974015502007746282514192256459600018537920734918956014894012180591303702369293035840232106000744224607422248570762826523773441374256893984132228888112453578116990269122066408935592270214450121364922881114113476819842831208091714955210400258263562121864265332538716737157048836522396213450937990316672941849571130992777976042888040045807966391533863120662885567992666942047140858082767261338761247720001592266401980289640069876193084419939397245311800808709207330533661513390012539457976074789119574210857945688544588897796900332920814395945425712649488117113429714048907942334089109960914387348570506574880080555408488900730942146155118703768130858175858605373610376932090608314328390638243523601786993270795210141066851056324085462787319057681842024155119673433325825194932079302877766424197336019081478920564484145077808383433577406502236447272644479782974335014733066204113157521461218776122163209928989110602653870982863955411077654105884421971110711725575726656181876686073031502483417429889282348325289346342322073121130152337982831503570277984931080091278667534548962752957878481921554532928985935874877889721143709707828072531886333817544469932526612227140508489342106132756238304933341886221465605892167067015878000466067154652453795829413707749674564031531386203387999367904527840438503193641078496578277570895830663568174769531673093518967158076611185370474016079398471099279029363789029404438381416885848036396500380798209750148541171591644361325227233342216080879851554994691406643857731647302425797058124646006960844591293572881223617998175516936211067754272267428080611145247885674250933301194398621328001450859072466936700102928254978288062436471655423897131199888446350192823512316368260569852186908839854551404408228104482345642911931475026466861120783115390865253582399409726580859455128818306942814744270102394391577993469578913879714635367518707198816187143886387327095324714505022005310763971744306278722212497596793114771252856159101275765731663681475666126593897104107677568550390530178889315863642786411004384526084523642588866985874832814888757941765858857177628212251018296231150883240692995966645426528654445330972748138458406323552258811367652426249594457790928002467792977124661166545897528543504126924021723513342655294791336030498931602241900513404770891515616478785063286425523454863986686470407878244033991124083466186952347708858298841255194476987201666524520166997607387090543375516705920994489969697509210403818813340673320907498449390748344475894823226155749735321270517544414817001156910387469406576992803061427044221767088603605900425662056242011945242310665879512248067824963549874118226833774762379702418999572996367630932175391898449635246134254350124697036525923206015583623268976201744918113629715902322187129111191475523275302828446729308766406957581706331200591780630085531805405242439584897311513221102822102282998492968132363854334585465866127021569171890673005678582534333292500160201307551612287980526422247171402994490254165695381866849589994399041266037883357513723346094499981196801560390951109556542303525540297675035577808577487604133031778209828109150441204596683261912206596644859344484999851296124192706476580995479809492790770094168232823976004959192169647614978287562648353211980471588817824085943609711463752587545790234632074534289984969826703079487900923759492929127400619909501291256384400741654831648965351910135264891439539981334748935843020641596766009895959384536459696367140840107239335939448164899378994260154740512776188184079650390484309777480012186936098731342427581218443941887918731367853024459119811234572990119828999472247393565020030310231379422782201250976029645895993088631711881428745569421694335877034017451516670427460389917988588078981120516109447196687298687900998918059242098111088905382077037525883080451755652457176747712144861495058506987907461950189715746902257824733564909225180989339342697611098527288846452575846604495509813918973101828075934707152893280105849077204292329577451394476046081599176493569592054670651019192861642448644907454570414954675210044370882029603828472023823296749963941488101396855616275332263051858614469182342250240747076186976720573495326880189831370324287297767594169656688144084333971157258639525206546146034632749648764349911753002677734246571430170780917876481402668868790102116331391217906287160335839689703294222202082599541414255614331870528384974113910747478307805881548501504981780946794650284215061702489320245574903784110186664892947254628649526921756540706736571089504562825034717749406170843095799959420410331526622310060681735106206129537191102199748438065768107299532010651595045419954110306241393024238547556211180168463789886214680510366685500088219224829609475792504668088678578683442559719312196654885751387722940616821031010799108717612206592340705560942926106741020642953214591683039973004430282874688180740943565128030040815093251047233009260330210377352760480770248576324838565509763045274535117775692439039201230891084765826799482325520295749974105757431708583164856029497320884942120680710125384520566174091830390899108542723874509939709301389865422590640022241911729147538307878111163445472573395302653080923419481044779278508094914410500973635898745517510075102394517449903413498241584472250067645788835824654646291140542874794138072322494111962676741938923797336874494354867083483332360289575817864444190851187769381423350812473784218223008994181255344284012292593359177961126031901153419857617877627857179500125365595138464950478832436617934206453379398985225584848537753979196143846979861975021629437776631606704976949785784783571274730583757227801343605010279607392745539668049568606693609254033917335985258112829550510646146318257051566738828582874631959280636122537767404947071205352669457245376482451345541557471584452352880083827124899603612581355051046065858792120022822262454020456708145987259269036401159951334633275235985680114521186451651448689525082780093373914977289348654932092287981050787764124558691424661404751978992800129795563485742066905075911567841792191941201418003335909329810866039952492498406776179878186903477156528533517406234782330333676949506966731543621593754172304443037352665399168436830896630326909785679831001819441496782445092969610029503374624355107216475975615094180489702838087659535045077242464738229487945013353338258038284034305471033403815990204908662250897717716808553729326786949821596178683810138831099759568828212838226640101465349045615499478955437439229167922005632484032776273702271588946315561913705456282720723145953711485998973510693163698932197280212553281499777763178973122140305710881066221832965385135879084566546874968302207375295427331115512882582577848856193246796471172703421001271815703008790183657843748906842823422058535847903185899032550352834967369358562978305283475858053084535875677645236421684856608287202692946120902419760268809135412664894033607956083959676078811113418468462149730650613131996448788959021973778792367653649654091888098374169875232002669428474700790034466021016237443343987476323328110149989753736818773813255925208656926281309505679160650028765605962303371406974959464475186298738687877230824223850031594579243112728680052056958559738787465867850385656153042121465381288479114839071413124992748504510053664076941180944207020579361072489840351231076602301596904100056034074859996838640836495595126392570338728223728788555569499185046171214252490831220959882113147445874064578383033615405046376287477822837552475252848635119285780854642860182514671643977046109566294605892167954378934545684491766811303215797635740474232573112465903678836118538924116073553757350310916932373300570241882895031507930958630438252394660615865893644057409942248748264341109171733019353506985870230140762638911666888319426616205622005764406222728185511865834583074963161114101035582669676100810359099302685897454749064882072291997059068325989387541739890392455573304253837329390695373763616786075315554648454992126093836884392131425663342182584311301694614447888251479985165651814170258289355087829794861226451660189497433037889447069912845720710714467809637234752878507411231329519074936775699058177070534779056432476469047229044660190021554212425170259401319450315432417732340507637208092944116375979968457272460648212352989928135158817108327835867076056726407059187135370174688182721008587710528256265805904383084362814227652325719522749966695113261290916498222927393517377612135294873460804284515736334951037313358344067513765658214242966197722974029109657718427052374422160247241217908063342967604673984306928509818312106045178567083062761198536587905298006530784359871796494701245180123312303483583225503853048082588257346523140232251760937300467975024976750319537297611724174414988362268442773669319236551235152526681887598473707247050414085391300375047469403591269316527066724461842632024790542687996365290270903003296594138614304321762569723033766236299769317072633699962922393583514093454964807519046530216730837166093483101996717456651320776401192903767748649523257056598221843138008777859104851233012947707459338423135095441600952081621368422776670312362636384823931501862560392826381289124301992401811885701324379407662307047581521420869297986127699473472502464817213632590955802266160475314690501535786452043082539516268639976359755816559416464433227141569958697824349499310173410920673059408557148382965122028754861653285469025376813823850671675081356979892681823919810583177115408659488011118070313919889432446245203193623739805380346304092767856827591704629269045487783065292985886291131985367595616345752768802290478824159455168711608301620562835262633038874884012290391765802639433553583117041871541650072504815032255335882070137102730178100489653770924035464181503723970434436031015344872084923726953798189957987164301318029020953403923265202587161337215415472975456332206071953542627816945701953659688051756633167252724263849483060469603890207694833833946794152864897090117461268436769063550398363699123809470879815750512010367642555921862613209622911403917184627043088633994025011369592039859613879436388504507178067692262580561700249196614932357611415096846220172657300522418269699986134722333090112679711613231060091046189725191746064859306122666746630408409429327758857203151697496651338397503813901882012877269665471462841684536702153541628677124007941032952756046382341974175673704037797243426293125640123369281046588449124335804184310178650479098302227851014939973640369235479925618213563219886134467804850392451446172016443905639918495170500623149317584878458873074482935032874704208091610412849011662136213400377327981774665507509436053794994630221021966989096580589024985950313686021890454305585007278943110588099819215574398174438052735825727133914217416587522042567790889342268237801547648551756338096292107748199916275936716082746206772741041396980180785267832003493434485935750148705066233880546570358468869251203581587468721451777933323970673129013488242116708874911167790586363066001918074691818729479419758198037284887032711645364001100894092300515516387991705267250285898291737018288893628392838829926102829324094745838960419456391997139605832587673011918366130487496299576827225916383261425817827486693936370936543322829361792061577787021209589395063537561342059371929627678466685318260958475103072253778822449801041104229831590852404549128545713093043074069738966657074193145332159835052342104517095502075943967873268829893950971790359842328681578261549850013488795140598775381492108961792086793246852600676650828700418160702108031905495726725328707531409004347891089977566021525067240682682584579942258333498470941407392143445480382066436969483138896134298812632220485220511137792483691106198413888131583807968444744958617604970522876256553909135229074153827530424702291547918889387695764690978926302234885792055834541755625133893138529439395646478746175651174012952892699235745345102071537987161842863170275966273278198026687135299135509872297075733502941838119176822816690694358723107125405516096990383185271391677693710103751474091896624928291734466524116411822444750213985562604466990993659845989250698258936401937437060777887044474212035163395403539801346328318003528263953198987990536101702020246274786731373241327054577104194798687249153070051975041395263911953703904164928199805837600432540505594771332052914744507017006695234962299195096777724354046214567269747001284240106214933619198599127365482970451959099734334847998485941530943181156458957803811935605676205856698766737030199240639967869901566787168058333159931595682159479107739487552932580289083855998988786396137525360020654375215417682139369127601030097840314198886365461977964394391578748600359912116860488952555396679300147182088109419528683294189505349064776957496431994105200063109177791099142325172534835181383995440594150332402316733685567035714141590559551171528108147123106105747911990100132619220126769717380236797773306192400888760918348611566976188562997148566428038348398025275081519855457993238893653003662903120350413056175987637107604581894768288759011900146427234545698548240630680833761998174218190050138439378291513995783582359990767671603648593099255800213397686200677557624394412289136980361837846031593648111798685515139072351369071047438162935061450893515211316033779102856771539980731990413406165906582099424017949744169131940604380731647134187641739863829046606431660218693125547813366988376654510768951030059243654386364499245909653588095860970222092248549715977531594934289527783135329592025665237446729344628973431479944296492767144976478796444809658908549237522166897891137567467894924417930108659650843590830841238749847898931977991783658257553515235426831367728635799479077233565590519033542270826586086459117441287632250053425981734555367885958937624728241781745263896372520205920806423436676206890696482950250019022310334229709542455088037621588506052167511764843280486846193770245441701959478335205515736343204313658260627708800155079713899032281389096449724642572163222847247993259514776632559719556202333564930917895965292010184315713363179557899281004036192337999050432902748701696501726066864992093215943625823214734197881277747319076916345075734535120966938535796614093048484122083390540359554147350692043752373727619402858789393770514905044063136868070952144196606340967476179233919413203804106450741036569020363381534365131846794356667142558702833683076828142797695606980559393418470181822758469174114107452869624430879639071768344099789340568662176276550188972463338078062488069888262344602953505532316800549780708241681705357833197700924037650676635700090375198660029763962749559079955832929961127606662513947037560806886822206094976557908302516148205546386453009901122165299594539288083526571870287561996780127032660895769009075470538037333602488190030988624086694357465111431292638902576600657248987039656643058832141897841422505107465084729452219333978028342538944917979741571306723095721014027788107524858941771167962911660017213452479020119134831273428127062992852983096863746301053731387202129207236553791089251915045389220345988687673609886368196595781942825178134566718076711724035499094089152966761086844870779815052456556452708304367202515457339188293227241988133870390374570387779866985829066549779550834716812023612857629679004567589162579846183363484969535552242617710267452978169666245353480819384492695408979051404016149624654928341228948465383095169199490233066590201377941334586524626353056744034946568647184213392519596839487040410734660523862135623677442733924750282574422416925558435609885042511221527549949359660241817715755753280409413900822564963846813414683119545559105393828290259750607396588653687671082574394631596761506057320845460956972538053670419364793095047058742236694123302379089085141895836954005803151702179328715140628109315798751227198918454977695992761166645735654923056635447565253929000424648765899713038664689886782311227733352707610107460006179401385382980335231968163492117676259369279360449975528666260483077154053769129520763756072553174483456000322043099973718888521459752940274467932992359895552558816156827326364733439844260068595674451192855394805667960858680881069344421120032676835858184775816740521574253644767158265072504166163134766376235986364313751335317700734468625387406435447448724274673758322316653551274884171831439891608535450448635817068878391896777246957991253560637373181834794962173093362142477741571775065628127867882221105368081260996627251624180201457966147486035880555904413996182122898445606383243249310399249866297397918142123734177625872086425498286490001338157845595530992237636757072535361610875134231752601068809530532432725343692949481270750171095810226739341311234617913244821062834249335979458164021382900356014242378737219842094510399054721908078266790938495411766667075015023465191407007993416509828998125704335943612925047248479162548929031560251971093305389267643066115235318604210561117465337091769552522282563504316963636810118115931837396014193059989800862625193184483979698542782771230471290225597639757439670225787971795437906093008439764972812054378060777697831457733349887432329040865429678911273862028301804471160137939570203830334528319241878025831258179272875344842997231104036050438406026293151852288344175616618652392625971156121946095121591532584515544929438583794409115336860233255985549425543752093944563484605842834796620421219033922668259656705741416700123467880583874107988140476651245539372943247227060769476286786033827928462802280233384465669097984438155220957677222328091001979376239021171623879870694741207869543246219536442442911982365870270728260959161031953008361179884248046050360789687224162732311274777385916269538675611311590813291419259157069030341831083568534094279996590954343944050890785493867319105412312844544433197718575475842386751614939146421032424931026661659459836592393390224497803194082447001418106299205368864168687764796181114005282381616155760808926759153956968363740061242289526865492889617151571242622410738942256077466726338964163635010919032412127483446416289291131755131167860593081048512885569588312733662425775751387780576283426131357862877696450167699708232776437196134601098500603153706890735073090993100848399306238768497293818159703201677676552756441070364340958126978171471190909438058319072795826039909082864930005850956250344228827949548381321199873794945196169923739683009679320542642296552103930885341914260612435902047084467022449941260356168100927710494287441538157756206485035788610769987314050007659353053916932373770742644830992711712175482025008213193187649708407627488189804184325763677474159299302881183640102035272270976746886195279828558361919323237686687387359059964109813705361395415953673384567649585566552029782606797785974529458501135165996959751713567962182828150458977372723692099139367004364754861043892856911616755907914452474868197935319820966855450586940952782021185359867233585275754947744630293384796928880074643073977759551230560813756851806449171886833691157225221458756757596361542994607269322657210349197088731823892813632798198756489978671827304317964166821355725643497464569255329644000587470382063973471735023042579212619305564678722726235216412391215343786324371250436477285648381542517073842458715784872619975666344853500273348109216421467266685544430637303171696475246779631742486804472871049156768093288361675484249540313101156225353624304818701895578907878652805884690686121302083060105334162118353101883702470729470463718156787079776858101261916863715634201781211078687075181959313274117421420409764032804001230773998356292280880514462238122361295494920950347766644271904196457439858642547669579031385099328229993165542676422041796041891122598668385586122432477489208526380553233995312376841560993458515477974369100198454146961625111113771299545661270436795784260596912919711947072237191637922402769598930528433245891967330367991327816724600534092356299510322264361794745291240987986098835612232305947837568519604581323354362383041945688031731755918858657387522385931715211393817214932365416292518277269898516538713387589028514810510096242801780967493456283868897290403002562150452106117574440117769102282650727015199603654790556734392230486937683923816977472161194395043518887334303613257069138514441406641753037741895913994378976702204152723088017262750972193995784233426540368875473539917751862390545707784746911545872918969730299142448959406208171669064132153808510344060608368138583166656700063099421501629938921313576680433603844017074051459488482034715140341579978478495102419384250975408464688126280235810421382713767812072353791132757066319563352396169198134793494549196892895725386430035396989662638710315104654966039020865869292001650418251716406888570362639962724077064503575219318508648254752466200491044775031132999084430063711483392684713019219364510492306335441628769098850084712732610970006466252043205923233170133159384710320447005166150065637797098422101320175005254192282799838515947623930990825992749984476869469369458264840622356070995033364937127923287313406756295951194299128344765273670519597118988542402562440295291860036789534785624300286715362213959167863768234020058152966663502229301617096406872105538974388650714569393958533112267082559853153638665842112100165535079055372518407762548694472645045099983025913121117990382617598204121070456071612620881147965789813439701540735964139053229741421580265956970101530894371785281114727810277537326517757889868940722136260579397710183903275521619476438847745345317351939333195913476754512854707918517256534608133821655119169446623088676324176111218655387636407463576247122196583293004630882203429081465186436205961034166240757236343275348171875782707585041516994911969849238949355425279487632510634613455838183007382291264239569463590808563118325135452412126016788119142683307458132408721570152026679626347196248194351620129967618567088974413791245778746770322273203055272187142934892797246730744009796952580188183201415026887614520152793300198792048793089767724672245514536395494222248562821212618881331193669771436547492854748643692881247620804669689141987043653306216685877374984279154967144144994706331278017858176699644470907187129733855143148966027504662408553795384646625810502498266845836118621867900954468405518895652734788510474424714803321209795662195233180891129669576266453577244837001772161166378104243032557259741240729476839815174639337580565586380659582703630241606452755765537289482100704513223829644811570873750013952035826648409422211095514217441310663278035602785040555457487301149059498484898380124324376300389252755553831118949611129598446836190656129504675307727834244763724188570829234898066649225579968423731303590735913999391048562508187051867726762452045624499842043043357451423383524519016286664248418124241546059116249800210319366750304966273368889690807007937817633195722888555220208841146541422067273807034674037824478619930794956100817100930077088243165912441207510104467731804872393114646266091555744035843769950331966936098546394889989440039599105496187298543310919119488569572913288259210835417753415386566541445513473742326856946970370540392273043144439047819587865357962969765887847005909563879754069186520617722874587590940374441820811075102086499141387580452060958106043862123208747619344397396157032853159877981364437932868878962390141039482258771584746220756677301240380287159445820069217953045041166891065366565653691561438150838113308873784919745881712564185012714264975626035416340830084678900933177455961839568395504260053899010018136133126265570485999275249397630341742588847110011985028618125574009021347744898993333940439493436496844102958768369675702418762939831632318361540713660688894015634327871436752720629869599322382193062431847023933384737925003424639770673597253635989399887817396845431664841014679834611688838972263485459225822503604517420630072948639794469270507192767245706725768206370833271258746625182417047659064700897121845320639718699533653538973530615605082998165281712072130629485890933329888579094295459361188745374769045495810620458142608033424625796712260518298885478508411372555221746097808479488729428840031135021336603770790778606175679807977057200272627146999434484848063141123397039954529243005081969448853857978428815538646559307312284779255029322682187589697492607795042300947216566606325508778148429613690641007966587708317584018142416675018933414635129095504016685954020616607657448737408554737570469838912403918875220446196710077395633399244914714680196404974956550432161820392254695191851735254247170809640229201970921666033952885616944163088432350549546912242194953222965672518228235556635874509972148096088131649440224480931070722212629071659781719683136189703419404793855267962723893148511753321479656050055680002776912243907691739779872358233358151149656154174807659071455922850998719638627950415533156887622531456595363994009253791356540235507274762006156167686109547732860219737735430684564763280307904802290253183643143825768068527621986688349024567116100265236392274956092259383862210077761577348970060157865195095898073977921986322468783870143867627680340675053688995233416158245144136912854032467746363193881428030226825673812030220855433631704107527169525399243424398831674066810149667039588574277003150037246090913190714461840076926037231739026911908245926564060125016090456220806028775834284707027226983473968561780512269716615749439988859973458412262448945848165766665223413492975661477226949277963938384102259005406050051823812711495818187086498942931394437036271942055562014345369747870134757565316541999857515879056565555755594343709712196598633550352801698606234188673346247563937051385018890383034895157439529915983310974575098001987088236612807233388869637445139306812051046884751796300537387785931534633053225437152934253197243019338211625968757843680690294017481879385526053516155312385194367207580802168514169127047093064116679810839739306535466389481764746875388385124495485053838262271995612381513171636303662846320716743206332750730587045981593273390736504907053749276524968013131608717659482739684334443990539135038065276894677623322658997985026476909973045647768905207790880142746120209286636693457325767626845735874498836321396855565213545141337714140651572791257142894765051330472382692007938246270938848138268594755198217062500014377438921420740004018879650418061603173756511941178334989211437099219584560852791543750462363582702845912996435426677459442867072788954707286971963591153308483902378340207675189512253906487183128958666583012799281881992424315339857702856310000509123928765130961802753811089156805202797480769080601745363837941323064952328151204545106058206511834134811482359601796139139594801925085781007282752146349280001967877230099112236436841558858108247417569661682646287473285275092534896651127509392063710413481153347113417245409678844908881908073492836925208802237061794584988701449958203268651695704945963002177272647293821155423134325390303824567052123611464901291673111722580134228516309977385843403252111010077189216525779865557516765244203822135039976983265844748896959191751995109679811816217587042181323157499267418552697781544341357331819467898040672786145008314484468340539848226179501955794085635508018508265711541582193198305980508323845660945165413373530062961865807843668898765191971503709720544355957150758246983199772577874318573388045897750992932083104422716953578288625629337731865128509425587457766463581575560117351363231767846054614141895445553021153136761788762856681660771595258328749220779722301901619633625484438215642760776101085433469448592917422188436639305533127277564138688982219572297275920094583418562896681831973578822926464678891190168510068758216656145449758475726701541393253241350871889336818648368258631200893733254344983846960101123643156963808415326856572056049549556357049262280844392619796060692236528505683874934800086898679094948906741435809572966209804273440583439909346554534785128329175029573165874080342914107020568829305278401232277265701238593568811598909426532096282371725342555802488502783326893289100492264368761148610734402295331649259392777696245125863398345984170152577218827738426280971003256686421114447698807375671118349614323749159564268093351361610495177381516258200109961817246277066867984676970805808125758201689872715873074634276302691374404783873919275533196373737056204416007279184865945712110643528746834283755200263626483442708329012220474315200243168221924320407905444411048566259235489001017345719432905331325437958562534276193093099982967367603467296994204733697913980388479073173108006797381364391893026246788162716471587137716312878624314541353096418332222715584538749585906612411018498906336532081174528207696437150892637341172286103013493180841317363657413192869987892785647561705479108393606274876108251133039252264472249043966751321699268153357946802544467322818758357098880416250511711686906692202908353807710123610021408114389136725504254269982964565062101551084918626527942086017174136833367768138839100652954446646080459971519144983942519362264106240929215822390569561448102141604884428490122562676299668371545560318180096779918312728612459470204769733615865382096367486558838233368105555215331832558464336410879570870919655880401819616483098341275171763931749416497978694566567378456355096878497068121737230879804718411553473384453221627536723767523353687511743994198826056446316673447290852720136930951003259244991942939529640481060762944318753254396809266183915305137431376894275560254558098383035044400632273788299945227224267488131407013634434220566193845069616984351750902678396903550878021233603429203049725162620508959958711938949870693177185682212128124611469348262044958711083252860737746509642342642105800211416118201015845083689690768597893597643770883081717244013303134090389167461937503866745231049827429830615750606826667998929769647507555606215959915696452133604751722731886586766699629393236267309818011471641235267920071828137830886420660913823232544265901822432842458322039818398492528540347396394759658050792833848278559985751484725030665852675007377944290393623342553336945673659528142886510841422541566523182896743166646362614286977563720835089389516303535185716804569683609693282803257844161084691454132653071155849064942912343551219543289936930093470401245731802825959149508715312147274959969662657608364707544003399951682101491596397997196589916025904679799044987257331350257648071335288686626723676484866847361154208442260329476598540939498399254736979501361679865601466330212548753016746928159621199418180376535451871866646571956864553221350733375432105913011303167716347026419098923684335599881513343077042329030522418842977300341749744244011985685260297251633575362617680419512453342619302260472358584433050182419401173043644383401849924515590858321546098839417382977866727153223398143134938393405593704044376806230356812287738414225879683721013610991282553242542803018617715260927174354546946443460937933838208949412439589261550721303898501240175191839858697174274492562028970678113771852348946862188729439147982126482334372485431956559332141136550359197252855292094630846452865613813745112079542837924260686594960463335064586737420046032197893116123949481023974212514314686266144466833932008600438486747402793397404388997373394036037675564151079474945423941596333483536403899058785738012910970957920622025298510967491456177332608201620509003241295659661985478030598196612021111406378040693859287478047106354933023468779966716973157247862587247858486943217435768392126302885910911142792136241339816330274457330283616147372913815876877237714800290650643053488471043318732505216552253048080577429644363319050860918101775452683485580757591003868510393576515096011693979524676694863879277539646561860429236111271825512103370484758512451705379305325665252061888045070843431797184290387398685477995920160984151887004524644745097644938183772037077847156137735459975303436511955886635672098627835036585010925896766088775168771045736872791320801720223588920915264850635336109116215535541695632447854554375439124881604598789193258544267538966152267545040806341544087843968485199749344289526923441397522866903783650335739464111814206274905149905150150256837746954435366890395719073742335591592957741407879710638929058668672502586192467714538187276575313187444110663133679329042196721703507806398327100569441685880993587548839542552719936341852332236647860422992421287120742043447534852866868962318782818222375046897970978919772436866643524265660291572034402477366914269534457600142297049158072991734241259509678531138048536442984387619602185183472647813911486923336385384563079557001892674877172205451598489380085766887419452720286690652624165559607656004768582457251096408223666644102688132262360802747649051047796504360755277846955567167622481234166806631958743200005820418849706531166694586836535718205670252119764669324029766607551723376182449131634502892457151685248378697383463653384725239348636572795490315978872211391705690436105459714317599363601505557846297001454577521043160896543880297875814770921178203327068469026911413887639989915903284123543375750348431328279790744266566798338427302437195849947454612195245640407555124938241606526800281719950685424263748460255685686523629306665620350852142104706640969233884821185767828613394621797085750356794835186416154877353282723712322897611586487238128789458349933935814294474010667942288448935639953406371777385677262406860148671342389125434951210110626960035658572339034817771773835329558002521999567390189816040148091134063383798959023283696071656139648166102444789560196871652531817199374968649689678768859480617378314709042304420063327718965535844258932365908408030764601617468021620020822223675744663538397041420084515243547709075418679163095948035753018749692821978204376363201443806278335687917560600632848090210554298476625256824885657778911170652369090067291355845888504776171393310650271178124442941613499497821927361067338903291272273850040601427949163701030874392103770677906452547980046955435954252777310654070457194883996099455797963677466766653208487766322601510003677815453007179727799453911692464402625507875979004080705631054234931482909379519944033443323508094857072644413281381258125771762997218604744483552357677613942627453039923540686473304934766462583493902174650066491232797714924133408143632807409803591942694154386035374831710759087923946364032656078764659065556760621489863506336822087061409807421169105322713755697126430220838940728819435169610762922705257534622880531878504029947121771188382389852794817678063987632527362600887481990039412349206578445384098042007137001731029738902152500237639667919988350718027781439314406634278563389289457241255857209838124623623122375939412126679740003426613750029091910967817562972718036680469258556016430488559995700454924927911579708456906722675291319538739698873895991213982759144214599513664405424527384657974671867685701209028372410868976659855763376064447290743827500839244354437058900015406173168135726399004562668273770935830680206227751579659028399829052667928839176094391372960058408842314185215753129147917510670460527484431234128574154645187309577601546249457473094342744851369880130999644803495916544813329812558315764457833619581812050227862016808103995692155595058689982286996401844138051342488830786641877391775906246035028535255025850464745928689728008166345399268202555214661789997547351837623010644574655666815047153019870675772589867727940949242492825641090260615200930257017460210904469976543765551929549105821191873869468354974773285188289801381078873125731165146249848357514666881691684454096592779577331818439898194338140860496359639448270788277226657860265268391712731305198232652886336306962767399322017076632009261814472041512303465785040330694709726859001944872666783165156273428990137713750624187068509268538340397991151058878603085351532199551798391596141497961797060374887754277644457291032911066478102633834365232472379741385144406841060538159230696358576472316500089862574537124445447853196423368622467610510540004594370991164587077752465112047872462396652304639157195820653925639909721737576249383801360241817718646964597375194470131716493075301900440278579378807950256421729953289339927739895514748082623999108657022006286691895221076550208506531659638520159223093403095984168366355226162896155572943553801607697670955619574699441460590808666320206284834054004588679338919259446952088395990623255526766897352002845293399229803673682450499200666762305192287555580349153686542478141630384033253558284413578972452165630146634780550630954637134149494424976709298074984351751686413366617004765339746004085855578102593466543249245417384439361112888344443289973766095098578458302111797356976120162199932295930330737766228391948850008892975809004910572821734554680652894705575070198819465545048448697347520519297570868314419214999827221009300054822129907646591525657160537739254524177213585207610807504659650306353201730867171708080407896291128722954187270304074155287571204478842821560918307624916320977587407023766835669449070073348919751158657651576980519850776400673950255425777904690228149113268996169652075686383985714198053310176674159764898215375097950783393803074872210123496914356672326592868929904455620737124439772528891004218673677154189714645490984643477265823092577715850723345978441358627909462093588046012827813379036173508263888627652465257990935441426481194848874678072293639979299175624425464066767387681071586851050064612072355412845604586003906090411022840169307216566600622309840139064265156214120112365775819718461449582632639302135579816595083628311807438089217052928023948414243667912505231182475971622929981531978772540548156245723815414027082095046934242122203062455103359610969370063329800369394526888773378325764125036490458282642356120251607152986203964731178077797624131784251309975298679059083659435724459061069967619931666643987161924662729950806634670309595951021661561375689376274594566641425538721271710953444374353314634502349233682657888186414103666342014141432672727853035266879543118019078429200927231968866057770274825869490246656599538682982556818932567192577882770210158309497486260944683332124781780270238961934865539448743922078634192359043595647423386809236885360746224181101832480771297867519102753462708744149109127321784054349670119578511742840573537989471666800000148693077056304382922421252511621762556689590653621061588812710881141605975854277882604609048089940069846829389893572167433156732997269907653136127408975962403949453170348828426404626406855095418249982157439031675943955106886030670528982710900992627469457311419330748053445913386201740578753970956709518575450770107514373032663420339994621501001874216780316734176604929912438381062090922019904602562620195643330054101337751672006723864021200461344209701199561008501931026220764558888582718101868080952882416041507908945737468267611270532199440165532763840605638386085788994558211321150757484292586765931493093655822876022805199633839096136551805846076537911871050653254477087611051312054389877122799456881723972470807239019444320888837601224865833591187208985126317653846467661487259351636054669559402580781191232151470500471820172745776251940853884752885137733998155393925237139390982527506045811453003838334402415554086564314745106907034828278551751825962397648000910766917909636040319379169422521867829730844828614246901753182504536174954463237730957791570936376458910393628850216076912127373978132865947937533493226518639357606133231771951776181683574039597589150708785789857123424788963945583654048475067537214575019092963171231971876596174685412228814829887031176279922361118287541260308597201360553318750879842946008876363916010067937091033732801925993459343910861093311538615807968805479140960314284518553491233492926914693616750724487363539706893244059118145220273281371420566972151699158103506296620487161014351179049044632318393804500649376985111197528502917888090556413127012901750983055789607484578555295634643126038081500473962134155559134653135610312473339020921417122822007303606894327796961843994610789656745189960328760393815804640753192166304826552199784457600367925705978806619980160205969093440240259023246856615345247881457596439659964809935728377997116073298512335913532742665954486361765306071068974524641855257285637999210708735632550526054751368299048031586627267812311390759698956172058746655712771394845800783400712757545011012861378811594448153682125754096439450681055389596655379355807688155361809574489384363940724159336489074367718224985160229016317182142822655869442909697550399957541693963334390782128363241673688408963255978716214390944446735962663032386419522081834503449891684367048614440148436676989095300265959757805331742809866465381266147298732545736004831879899002357322490610514505211533470850119602324533333550824065862916731220766870980794336151748774923456869861552172738128943979377892960591305295318963732455120571228715651499395638156828516900178957769740886347626987337466055578940066978573355450887764349276854021149478225624173087234984466728521911628598867106773374232446845479414437258908308554585474902491813502975780427279268620140505555050872821394861444647191762995172445135626174753540547441547528327368660457703690549224958444739051040931064319191571501374888284757437893536254888535132608173202898925552923281569378631829389363998759037337493315623558147873545578660442578104524330920065733977208691588568272421506928838720426912910183199682730704913807499757283196691805283480201591480812146392017494261176528985056869768778700246027243695235073889472142932922427484051207444121270136057307237059756004677354733579884054682230615294930076687810659538463464277943168617085260141383094059727380360445734218061545729170740502100931329602689344251859067824088248752446011740778470068702366852176403013602747149227522927498429973488992028283089188522856626472758483946164173630241402068740007306983309397999143259225792746952196212956121600135123165125206813854060020301689685077250449123288504363733516202794273827120096520978956532068320056365857469997084349678450323099757058952784650531757190641293067762290195140619260247292355427283353222112257359296831480647922028988800160611545742750250060731692157183483450848365433713419593668671145860164762951092119300348014441612021468203605709162428353359585184398271376881094705833413203299305971723752637457106348699785703069989680634450379851709108089327667170699814615434732503425853480616548173734620901933424970478937031546950683269634431677982427035126763521752705398104687066210408351625365351579142366477137644962587075967130474399905898384363247713565203948997400668724145317285144124787529307588131545260683320639353516833925445166485699471708084641032443389439248784188104562294255983252928138467417552002174745102039820258397569955023318600571628148711183008874710668732702954931335910377624681202245598871834795001432947062206081741711861689876485445403228937782847702203238445236006585361984345926578379754100625043307980172148198658935362304532835113985637508024353760400361921406744724738967024790967704773629592807347667365517540310980835413831630456295347642926017463601066696843741774823007407565580532377440704536002114631814698711306832421447306943512128210916772047629484265917429657928260126517016778401146241479532943824638662447714973957422688627207892693653755220101118109379861030144703267648700212837419082775033710601073432015496256057384086114477047845312348918584106334757533330133326045106413164232784869441291868448734195635378962954889285382929486695832340149644658245700037210655327232454222453662258017635146048256878681998808073037510378160595571498495837965567056799569337943460654841478275045641798108435183663849431347568393907812127075248313862989423750897215406027291192915918173031221534810955354433128723043156646083982399353735813926403805756126299372590330601340520371675183589194200897266064309877837789841336939611239600389462398804895583614952707562750231069014285059799010669668477506659180164156246403990765177513452752080372180436839254174429265503927184183262408437129594401044135605600945269476822464518600541244326091752747112009722898773212387551791973928324240996978376993616540461422782783558694570822778403493363577970890783515056405920945007679808782709547075467162107748319410360995474840394532429749887536185243150561016768878613016002041731201699321040410182180987496029166049357926628146308675968780194881461527273242153746174309134195965436114852045294134060870327761459616357193331209615996815014592409501091018657497824858362222109851770906120623268360739801765271266712585823956551542682904741355497935585475296855311850770409057720414184840275339989140441031889233533277095077967385182993778892944113335213202319120168408890556786476799308189290808599851593337030030627850660626052306853804026284325796397374624940853509726691697444916040440574741439770717077838074673449414085978748220140482538772710979190296806167056963405163674781531806117215534648486489428896669972355510351789522196139494914321624758173369738510425057244157984559175005078776553374009051429737497461019691079665365336900159826446466586451227846342836226467297052118543262170479077556790119920471290860146311816681642558812904727251836489106678792587243948616175781461182412500060360931484706254854460309380745589795257175292029771334191897947752467101702414149399970833770772640174072482420366094965654772988189019754278525304381351485252317999547835999030241793442067364629398669156466080703993219016925405016261446213410416756040554119728705196545845343731452491247231555231855642898123767180147505960956261583342720498269667018877783368220540894023638993307988335905977311513832338027456225705634067007886638538497780066470736568793702553841002835978114035084173550035162258090879247700408541005328972180682891174622431684200365206486881611361798359576126870491853049708962754149682527368540156040806376927870071825891362745730705738661675538177886614527600032112255289705689380437178100731907538882295566306078536624462256870350098829319205384891894016423249538708291900231297691768092500323410273405222018495016244545746186759474444886099342115084349490256963961748620895444346860907308992494553641617354779637460899066140427966181964972436576102570397532935057595671311431102591666106842616913753104464614727980742395051438679915845762880011951470333229657883759577035306315756038038942400610297572840248425315519384945545296300589299376624594052052368814548216642989267392504571035629104295944754685075677521935736265231983503026520358676463237628018495461723167666882696349043536543732150242522375519808968632590952477179521015807385271223585573824904982423428684532115946344877638806481648004920997697508538182788970012913700597635282322461624081728046424856808928659007117690770440684270050275361889129929189491353796003796806863326257642462020280944421131860062558663554856650126378241282304929015922412095378830043662209645142009842237123673470511560598406887022048953898253448334180637125885938991044659494015364544443319713178255515446709480276383384076808509955401052001693934279843508541036892330863270561425407886762419756317223302290363988280920291433920266502814172379964129163944196644332819091103501811472068062862886958468070424061431702013172508207448905528667334424367239125807363867050936017954210065241755537680834936763826138379750099586598586279730301413252721791759900157775027426414490395720864439901550441760546073375221930152422362838855742511786977124780164147677730158969571698045985510145291173898022856673455435758101220362799558520394131933337457388283963073976991761127927556699661840352986966753161063130342965663429751523459602788780879069238434170247992929119088711418016684020018795134208376306497852081081860903140678900581257859978901959110157494897632500829166498870605696833656136249349976371749440682316819939770712409543035938206151016840032982449432696759588570789882390122625793011830717432390742274439524341951720862234495600081197405431796293562953927370220812471903506825829229841256898396510314285488681418942315148173684320500027089216357890302278659002634729526631479833675416263293503847813124897671401861664944758557225156286418437225582174206069568621106581173832825655431983410589624050655382469560472529942797131644118470605707731466648430673120464644603244390883364733777404510389051036019886079870759362541271092744383846194281505532759220884171027509594930153860541845002049448415891319276781197517412569415815791636555431828017322423001770395574266262238579065339766013444433319167424110122403846771076288251494244389706652642766209508908835401111144366729956521381592386456100730926014629618895973281256369571959027121824395111569567067623308722272751747066277861894506905464815562726715268572831155081620733694426775583226621286355891209720429997278629028958624671108621033671475867976548651141607520454169730549550950811327364767615908168661073421174914126640762917027173037384225930628089697819755847562980296196130273893167825272935729689510465632004230338393632472700589833501367000942721717195243352124589449881852405066063821459858151667537672132285970817148017461964475123008321196235858501473490945146610622124629457087223371919928896934769348701255429362073823532384897391395160101285338388570825841819896495607131210847462778339644288295638495265261141874922466201834839541422280678893703123769588026254722252714258564875014592634646474342637867484054520178894216608608257945844979559422026250356568266372547232595468595431597870626840299833690528101247721188457550384608663411279280628061449389333866710589975994143010090474029175854597524948711191002150395468011400069651060863964241301995664904634429149125422410250254751504967731320762361599772842828845164680433067779674142797505441676732747252895252405522271082872714368364330824125753510519778454511727492107456141422994477491530040987751069769831028019369651175241281599498803042673950924187681575020620268418553268456798090429788958521336969775824055567725616765885456491726383493160117805274874519399051245011150567330417468548338593155773482143107701304519594177934248313235417846726221507242876339595865660434489857580773608440944131532150548501246485530779862166963658862584489988963882878969249804334802886925444042978064095590643973804854363087366596964055299372413009063654951912775567653496700030456004883896722396475325977771484762877462215624087998510294641538503031238409890362989115467407826784334306406986714177738020888992016722932824379561192578951415119706686575444265052416121363596665872355474479139282989227986250498934983728178780177218117823095679374941378996098308225047729136557987989101858235592988722050824287708178986195925427887649389741041259852854033431362260430669109345684278080441317942320187461609880490722103684003343566010133604339570878692765156277936262236492803438441234075266725224268271313331128670505538149684077668699867867966626659873921668384876677953594959762250578431568339850249109676293174603081792147801898220150611415910755295352501244554701013410736111825943878764793399173021150977587753889045523959084910476514764070672886402021299400356939340693053081490092102239110493158442911002047617550619486930714372348246597311300326673149797224103393260719003770317762026827128873027471814666937115685490373615742701663182091658308686359023478907302216742043050343175789680781655175136703891836683102423411906276640923736669678494271824736876810435652655828083753691928020407033709375934711421342840285781468133972560903323009786725538159069013618334441724583952317276402840638625923626080484803822512985962298182182829822081949088204023127726370999520561976932584611784386932222490867294944640035162959053338337445472100678444090449443053996042923030032413639747383055002317298686094157487642463380017783822169302280785498688190068334939610657629341990018306155081087425042990072459608110892689802438437094321215540123783122243741743511780592218797177755691687177198545138620891649252052001531660000452557430576038510659469651687966400998411732697953442330308629047969851887588043200861096983271433696216152462886283480724835892693114837631496479458440254915673406088753970001308204402228142873038534103339385206418546547931108392407894796248096821687279974743573348624097546388184233729153707126496382063983873501727894326091618928117186134060703790341447327715929599710252609049267947015840274662450628513000557996480269917519422300582575505804017669868003551949504036202515878374727701862105276699475538741785004081595618398717774214453525848258493317214707727523730544208805561947627890645793993915934085984686940150003819337672604839680420553610854727851894869666786667802650006768881807242364409569830273706979945808714480870590467252719956354996130806979735934267512170765313814277743123445340232720754417002661609402726847597856864748222250140818668386476131413504289768274247820764228915677669617820630150948130490394908008313816565852868658827874685606604231974906454115258613124235821580299247233071988444267615837875892706958685933156598072614506009113366717665303160952027757030527117450576309597929228133951602863906294043438267592277251493094594374538595843870961014821824594990059814599953986229370677360636415631268350342680908475818405413104393911623190892732583648316719343756286278427163693347412623575347819563045942610096205136410708165671324220894239023447517156086110688004499347521613074485542795561247131468835067372335084308507947242952750574359652025586235007094179610069317248140961125057956064175782837113196593342466222782043632513947875522269547141023338669812439146482303744123513315602102806332036660764961806019846120214721499850530721163085486762662529100482723747295904033118388865398959673885406896425936710059493864558670985697723104098873025298013792785610569113190894697142606032178818376106458754837929554843226458099930109351064533091679996311944257544690954031095322873064843481120870767736159919466515183704726937591103296349166253415277103609309775092206938338946548291152884320585961138076493840115495796972325332222336751094535215541261539375325163904972648912696166605882625130965413251289864583648158624719616318779467895484849269073792442350855088809771089250902006806029502798085431865432103037117513418971230627861197278363717451113472778007871569610219213308566128273744198891652252041945954157054037018512492769008479788058646503977854068696888003593799356284832741704563511175507326491824538155906893817670743318438784273782224704724567733465708775182085199584642632463310674765935138175419290851571598141690008173098702548438220911501356535706470729095324677622441070673934510140292298984746920343304279525939480630959581313967828609677553984314628932366527900244911297634008484435253721574635677642074080494490315657192027932166506680984561004369442386767708883157356339109017723004626332018836164774452590197552134584080109068490844364125493873747682494008450090329586550321513678181360135589647352908955169185737223419932057973451103405725921812582675072085978519631014673191151439351163109090447774220780122573098752663750815135919014485488638548399789820570766012835415437935637204829184280280261610675529600039959490422763546866752562758743272277177400389057472421071494569143926978227231910580638269935078706335780988077000921622007404439324485473741962552728345878968743813743396259136850654223053630009775136026085053416367760975456813900715065274531267167398435197350189186226349612435598977748266686584165474456697019491710381711188843005863661189390126319905131859805366027479989002399175806395519188183689345043846599456820578754184711216100512492681525889120934937649600325219940799626389625235492820633013626717750185803073001409988870726170284110493195495304303449585947688124824005099115736753694115187714625928326304135655686761722192648426250700515009859513175979339282128316464110807617834858987262669318166600689345985930089071377667406073603862604454082421411656035609807883199039225694349728326557559013055995632656277412668335334966259453295505589727536841347995245418335052536694964960282633201380417354465637365188366089583499710639711379981060255526965890050301954375701687485469790348339095638458742163522184680952363300718236067560528979075197256218368567044471475094200603495066559477798140741720268835670798270914253752072530523370834847760954385328012145574466627662538427986335572131023796504985587576790146453924907992992897302032470042976678099950512994910043637888108721177790677309415309335098232971672443742296231422896509210263180751252266796862925716819870556489456164175725835146207794490543031044900331290024609406888697208608458382100770806995595251693860343956219587365585426553737722053067104436171570865811322676853356696356688554311667811609740612823115900510394592685743862530623874927236893402146985108501458480308469979156199645365997753038326565209785910620635319508023379175267842845221804795766290867508344795078817557068325052523985819799505765795590639424035873356437082804599185128319700619663218330057405762646538157171075643438076624712540210327817641763417642545184363455493795281916859568629705301953213626560592650850760608832721869532222092915797861434660025526433574038830432772658986652548376113926018127932942827082699853100133062507904725121008882905781143084152373607151224687254361375325232191715112151639146142833131564278718855397530525936383135357979826041228867342806575629996323268263092379889115161993618244034261899893052844879785857938158001513457670953040580936768461740669990459150696315537798931005788143415052774923324271037764473523371241046204958476497517803219008348481650929862445190195108012916545170964386318011838592406544836940815578664382545920077348014793200352991588259577226521341916880348421140325281214088690172174418262078689559873766820102294560530757515697340403996695505228622245115265339234851683027126790646460511023605907487393657160340557913525011362004739314335725222760995194895709008944719734889217570522616313386383611758534105250841397380879747186040487029762697598675819596328628692699571871305012303016613933923309255488715025448875169431215622444125569130760197926564565536509426870184511736473783726312559912638917571782214719358789009526603118831306700900476036244888589251407887846780825060893706780493949435003070618944753658127599554325825638478137431522755831691533203487399316089457730166952203194422527793085928928388765177808659285896332809494184945307693314729174187571212571391157814133467043070307989643890981013037910178617681947338716277323487045682991860061704502989283605804888516512978541597501969850302050586419272115933988261176100594035617520820189107943992249719209128567688751899146267592492559497994192173256860856554845809244115013863402119839476176644335219296436570327453335115736071188758009753227591697089036177139982416076222143715655710825165193732828702374099760550874007218895752415670919010666221321644219664886487350144734566175627518983807096808930330445527920871075077945994391766197287890754862954393850873949638311159123714407559330296346016220238571900868936929482264963757398787054310575758824114922885390778400123859788381019444124089792221790743995712430087949697984758919721376162418474775867724637935832721332104958263442284759860665438888343591698677568997971745288950543315662623138510569730069700635322126352875110926985043322449473003736435997994077445903260059859474346576688440370607621859197481128651495443787586335654670135214050331440483047827496206371038921496958417084657885738131921314349148686818026688448939208241754999365582739024675964545842973281279389886988184862362584708323893780443746309695139923899904161749908743521912199619173420690204006522461472888703329790209549585422030303797372017581805464998744302375566615076383574771707377867853224255868036076961352717195689566343750268942418012195071273584558124187604537656531228388599090817225262642574160881630474817952348874619417353470630479264094854374781840880699648002571455546746276631470304338448301356145790067759956987808230849532583984706837743353537556478281603707871202061340480391961262525786904487928609899934452836606849656183680937492782720506855940372800408277781384517278954140342578344153301823966704665534975678408317561249751617927646349807327633601695124757560317538224055385895993260801437124159722692640190635038811858420150214861722898802019474047936536287637718777170974097187539448806665491528107130449815783710999109524957438663408159810014060193261355615014823119917325241170875611773270648684000416699412460205038695594730917315182004450288191981359090906684794124447640293925936518594088850019394016612232804307910207622402019308685082941611396681536018918609961109480998067318994899311585057391491572163316964435977057827359347535804451418098330018388804224639894540862200289779872249272675265818809983631040962867762950863563758478689144586361067389441179110264011044816049577883710453215272837402470285896963181345799477461946784318177900922286222210277315121387311238018049628500684316699832608616078177731664016152968008257703062747637395573687214927131642172763848081853011403601585717073562241292155959477278561482617493549305067814156193126829756691411748838858943516859035470158668154596737418898340155048655877288133587309845381631695226165494446438059611165717630201193801854375746754919131048724345699178160533766474439117562993955275489685138625478252657035833905087143463135220856529337394789993262523492495329525111242265561497558083068823280974107492010584338555480457091650695868317427322618806653899954169693542049046035004274092729153200327610718740635640517776192141699387345969800356307998234479448022835081617571314296381788178449364757530027826656523074787774428715901566557998680155462090129322291246065634402901969340123423926608557998923203306743345649944857183139846883729340654517753387403729877282702322015081507775499545711593606827743731543537499585941731108957159545765586753143000413990628954923434350778283319758964483438395004300611148353439920656377222464323202775524991926121784552511758866954026797432034079833744534329058081183123751138547059067477771333888807537811836940266806964461456661871795433922094292697552724437641765160612737688586049329056719439068088524085201707661178881801960627950084719675253816779453978842067725049842761129356717566650438618869720616699993881601719475741695354353653371935014395519136800899344001548887812650619393601964315572516798951749309245759354960898558727926065748406895362643713365005649034979166927465113110014372998833645114220325086724823967335132296452749804434510814394943608089690110631853370596178200749337354356485898806972582786399328486287213557912699138937309145080360079489708036091157697873209405564521665032293849451559083935716150047079486651726760543522076294451340388285649491510978559304136411789536855036758788623606349069462192213236932830890326599419102116206205749223730546238158109011021685288734109099147504188000548429042946892134224665156839524593492416848680232658095430818008613665953585376445133055159838176875555403940788800934105632387704978338812844766265379562081068821390059134938373933865318509221374642186747809301950007808054106619935001560866616219948239977350708698632606745138881721195230036857712882997969499904163813537679694851918183733154806463782084067960353992231031172014977601298017514245547471556664349841383596845884184873797311373765371545557423160377111606216563108509740836796258687208349475961190277731665882313791500209636076321592379550798523643495464671846589792292206296028144557043719974435547492454764974666556779659742104231262837800740558675105167980746067835890278826143406752047922485722068372642983450446728516195620128474198831063080835413356189661401633298998885345898842729440312247160081476381349833693159006744709235280780358243539679467664160793994225857273013929608369514862436227412972489950217993971123019524359961917753191628096404912227390254037477107391074688566595196932468570320654382634461082485759281039964066622626836215577030963089068409715269086320053173193737100218512661246566496600439702080611070918778982761261913534957512564933700894725939595587616828048068735473641043675464891298001561668859314226915061495642798826945474598928370126789221147953914960478537632360410331321869710901271908847293406582330275511645307676998594957171330089570429011931389265868130308584764522231728449484229368304484841954285228245689511359857289127468811622004127027426943276864428400707042113717160005069960080039128685012994465424649161746601267921261720584973527938330517401829096824734241162131079965480463795722588402336822438635941216045075377437493339981725742333492018015160206013809008103492433673903364735059450569800554660788157687302793253000552604891807712944228923534499034419276597474708791970106695482889607103631293687709893582145985130053594975085540686768947604996565176140245790021850734050461205803388634513622630507652167386130160814113085278752463448460858496952403925625932549752925761626743541455233450528874792359335880811782220333775510120604362323719185296626326733830587535636122860828891331255292210124521634349821662483326120844379172135251203657699147283209153702245671900361364288756456127028574253446159052629593685662547962564512978445037370622795712919531740134118524237445799873926073762501571171967641503947973624434311710711178489430516950648672638442925153769474335679664117294636613559538098368798461276374474985473543196843683886064431612337783427778444400575241602763044407197152198696433823769563681481602898721451172833760470432937557577861429852163728965064986568351919811907817222989529735295820847717623696949538118796736364531042266348234450145176824622281340589968701278007989358303117286094722152854995391775599662460044425817977408155960602590594843700485242211973668345961510861901147287774565330493097878889175413032449800198892050604173958395400264310396276963149089082960447209530077309649213635702669845987978168090410179250337455137194298347949581993913025714640501486891078338257175646160060429830265079843986835148237258509183844899284792760577896624228860196313838763973979417882275340469050637356941723831679378301505028508467810940195256952907603943460445242528912147780789409238310872361557363289158133134586162494930797513224759768385272113892373880154864069782175324710083017050249598863654562803862349413362964373190588126056897519770888775997283548888608650993782387594487499822851712287816013308812916313056950370467105522779319858197580274808370956747483441196689098289401562403797746300212542153983296923025259903694724445352664031988554410997201313676773737663145988278453239909715635039581727770828427519989541240953170124379682794256771271454391968070367597296685861992534584358294600139328605160960052859689927180156043536229782324196845030304724538422744473428744512116429941273166985448714172488655776506395179449554263246778991943350662684417850328782694469048489685903957138469025709874945267939334634103091376316912472443126444308244093720608137774990809352760144733101111777537083646162079799416003484181879769620013280908383932881557117295817422638728784620917519178620627799840747695867923861560796062746888336708219713606539542046445256666635831845934847861680922703058594706803157962014512777656963654297076920733788160827223083545636049892964755083241486289417566310469715996233973197259906088537701900044187218695922107191094544096358345474315142947272577917865471213862222708065516605286889210631457758510442436236776645064632637339082536209271904509779042845046487356377019297959247915509239713788941851667939662764748302941992721275841283501070439052149074432087097749086949731553094252234199769362677575699063145489117069788229725921482170850204968186787790619240248934359997909541511162384513318488170263377614467425973705267220174399641931834618144624057032031554198177073311685702881910971662859896999842094123414495817648953030285667057605936845174554298286756501847228083123184004012330829670031471762652112817415265883558972370936845467072004234593660663442515675020777452128306247392970212835908568018426204480659730186315038478763303114202619563247726786146921146542974728720385949752916953356717835323674021064932925206493968321566078186096700216918729860208253374597617401156810693455362137658314615251172721131399649590353256201901346900949083029178912354245452957752331901436417869783163981964999817248744225534776958456698948438503119036419494279239521334416759172380708232013266919603255168072632010664116850048025512120280135649809289369945406271672648813996638664627489093978295996772926324476598052990716688894326873540286407713399289964785131272070255931968199717845221447185889550547480267196314934935604721130034926288836253229831194563416514652508194698916486375403258166706599356682309227003362954829838091305169252706324764465122592372642193216675114736558840682647305099322379599754522005966828131747788230678786284796819789556974489607732772035303843761535755531590867595582395787509360627907286960927396350785860407684510628401275245772005562394111039362427698700866199683917493739195188917421255360932470559173574728896916692038502082833368394528642189247517794747740525254679122608588594829288316893938459144606444097743532159106725551998955407089059343986215336598193509586596793521616777527900060474304855540480222901868191256618896957743534156736267269421330710586396935196974333506307364974286505255252749222417109998879249592789900477277053577558402715098017754076442631145815656248662026394564121043793252495202739351308927857608162129791548099982086902894283441217533146262719615482447796977559774623434649114787071236292246279110865063086642794645994378027082321891534214882738767658259863269595554926848335949731935121524776516630992851021664071890731561223196384968267242705363607639710126579977599281470860127190554652518526773144809258732886566956075034350822237505199982785170903056272714023172778594195333687221010642105559586235282722344742676917533727670063118838797370116089257418846992817723535762318466508454388142955331643493603128008577593226509019480921937527060323154597051719210959259825159657673334825172380309350107862759985135914486582354811392733607194001229408122235900210328562961362240053107663379402917499728680922034482711371685956205953890893137287637170506529432364748290639408241947841661581781840772937015914136754300072750253510023706356957669881553300884285319271103623872764651843355511247636969920728488708411801142843063875106080453753738475946881540435151868924557907817368079720984735539681320692802898687188112227172241504429998239278806296782605756570243281504440070171621218285213107764985314257339516173201463658915551561017128377866158071498516377075693525606846341536572237286486965944377059048822431385666271730265221249296346303363905318450484280751749266796440587470569940860435799183161461218819416568615045689405378887899251701362970965164074663364529968616889012973055758320396536434841001261310872275037500077351360883554827890570068616440068341771915566313872531789343126745680062748002043716542565807821756226928289574557665742433208763105077385245032168500351754730205157954605841228723449930572477190042414509039903025009633589085576768271366031330001241349506019121914326251007515374779506409587251219478357952134955076465312065618308343803170581661378045320966375515035463867938276691727108845431825225432271243724118296315521292562139449737816767662047338201552422322101854571818626278656302939778259159576162302592180398994486469040880792863338104873210631196428582845849126142350590826291481581759436855447666050604327811896736385070166185402929263974261208632986736824936950275460561616359433244654234740900655795122448127808498108751354833733206026622183615601815520468139091029131650284390936253074084994591736557890105689886223950032109911673237225906783917548965210943656394683958955958269429762685675549287392808083819236985947885818604019160134111168110365208712205681537951491259765188265437759736817909960426296973059366665432701252131464739602823047007091974365667753175797329300111622004375915891977813334923960092360685678342653124076320616502646298020350487732887606503632030801354060395086282509053366827817751840817528562686235709423918720916805698398779449230800139667420998911527252153419139554199902878428412034488332919892320952212424474159352722519636589437086229300751040636221480594893793384811330470699884532036869612832609024800519445432325173411149693684862239558195914290185814639390703605102825104010533395885160667115735410394551012870167630774530227832202363909769480316931630971998178347812978693402465319580559712824800050123025370802287458553687498115301257645050612638716357201525425688563550312925491491717233426804445964846360613687283039955019836538072826360296086181349245895128994935403979269204761892992543099175887434595194495505782772711417214082421943279241178337816269311123900713477827106240481922462280864902855501690321143300287133108929819762703446738326942440762159300635490307056399621701417504805935637423795199510542302319300471147381052737870521543231610186122021053212277707327009024765128801447655170914540424653109466192224665555193727044443322505917430686958460091828675612680419812102698411090736867089772207345293167114702046986328154213518312926890255737987487438840704522928690179300111711008491307893109516119731364235189461097143858465803582914715104477009204551082905510145623803073976049894383220098984868183280129138329950953228821943239586499201708558295939079492295955108495037589631106609975364612498735952412235376524007313963323538493322750411395379960010938127396474489041416391460923273493068067855153120145831590723468839604714118551287876137516296862930450559447141641932294240488273134852419321374300598627813083718151846608666250844425856521133724362855453717438543970035436634618333812963282341229381441880308622774107090736520695487046922368765175988821540097082870996895254776523655182868985587432987591498240949882259977178010296896436305818982811137437225087518047492443786701061731915277554281915344142429782482445619850960701399046071414967819694091124554116916663291510500324462815873037051011936576529094879804792170809280427161580139867556894138982948956992070424457116427115314209234037310179683370723468128439432609823854307371650395553771028973601850674515277945837172424830389978377788655850879933747635002480400547218385236049843813669478645259104303221596179362728128355324289652257353225291942117147282157003693077899430853920553330862265889319411887250339320510441683918034130780098726367931176851268214592678481800657033112227480881830319337231546788253791842548802465154210575010518320097967148270486019625477483605622387364412471889019994182652405418539343303029173925939182641204136485858870580196975853154049470902819173408654729631814664636772120439821066572269572555229948192820843696498880266276213268847053501432672737086623042877018461515858383778864184507357047797406420195974211321762496113580291956038541487389342696675312537763877664429941378358212327135102576099031546568617467030206901297618126114730647968140611432514756002137926412985486753326315403660055851591186488746410346180873606752855414221263121076788050668229057114513071425022518102063978070615812517601252094924249496159095703068948256346519343879402764860078380009901422998361684099803158603483999413471327033791992960879252491165807307187350645105299104821628692052552115069204258378027873978639375670857387691931411243261981612078748045208995402285434744919409935571786711977896966040094569981107376809069123178641465759367342005091215992113649752895268843635836598926148417375084217707624402880750425438902937604508520596861810520110680702883851892228938178942463772357365578259813240378929803024167770864822516702919675387416799019055857306746814824146044657465004273281609378816473412257764334637003934781610253912713840838015039941985079609147769814032904882303883973642276619366244463245255851731861725173442729440172423537300956593762112822173202498840991228588927549918182541017343904743412325782903141686433803129021913459343160045702106062821855298535777828645860918579322287404203988743780429422127347679410102826258701562186591820096618825353506488318333018366638171754503150649647103030461630634760869562520907088586461867354486844398501307927955261458558250881591677179001735380961875705233557626415204752439708932952764576115707977301831219412662127229143981683756369427870120913670125795100219205108801614334446945631792956601000120201883387425103937980900440700751230132998173400490312097060407097813735558993227379653141358913050088061356596055889906798305412724930194011762025404314189377708221492197497963226852485245419030595953101780228560775607559552770304044757470818916246480139912258457642486764594803431084393619047506098485748835599443449459714370108287823408737128110425470647007856338528831141794172657947587498578288832155061158870730061434372576353914321973393251799278157097553307883255328466473091909924403658739706574375743421577823053951008299864621374869401093736172504101528035873660163689103594406317295924730431291669051767748432936563005488048073303830224447272545949513681588830275935528783648811933082395068104353670249390253448240180305134739946892354070271934343908509400014513321234547302833503175668837549820728407955716049538986868136035042694493029003804571524264558958034524739656726584924967901727097150721048165688604799619601790745024742560856377653621492013025569200592362894461041695965126680835842032604153296184571082748239338581877055494294507827194528452692910403897853996126071679273381453549002633319147830767607345089084251372128002927407149528015178061056834566759062133053873114117807789898895577499966740166180075333810144748477436086463399164609114243838419020904799744089810273218437203751716459938144347363584477392943205917402778064518077471747192321868504216999166137810680087913878624428173922096714922938106070664564594263909762083577119725989401603988573311147345524926266535174400550057036517698624697900794143215004513884208640939421612477214004846249411166399577646873583354403228406611766199087442236473145592316528705937422757382500052128067608209388948754131754797060682773731131404014804619813885327427611271043922800162615797997904128369396167886925493364923850225022473385621756438653481882746980426520442867535336905931813502044888578989258586982827651524990868387113584565548609317752179994104842276447595941819540983778507787428418802745471022260104807081853409413916145333104571595370024426353686110912750154887688956148503963492380897826851918919328993123306660081825816241510298956269322541089169094383157405135963524881073489185755104902849476836954466126736295793568460780267066108268032105955250802537243427172390785366489848802379695599261956041312371289988291134229911466480737306537628053156408921215226295057475636781063789581484651925193035056592875237120950595655884263450377720884214546442389984773622210897233360047225965056105712477765356926760551074351380825774858346709119033419726020493350114793382256098578798369684969119633053719796981033055950650800532297192618747306190890415726897637822111010232211131166487317153236481381034847063692961127237271010817972738405695925809735604482117509553255346384676531292753227365079571423912511209018868654898090136564345337755617292070506278226681846545630811279266490011157171741554931839755417943363273852771270897949381395698981716616275559925859879486610460364669376546110902441849877596951138075576441465838811557717322447662351963107452424976762728325119170827394988353967708325570452704531785534273015411666818288830988863166951419030603988368194523300727306625916191537724729370946483931873885180808373843065192898788063871315619390128891418104629689164242377295540677363523661524692295966493189847713515007334632158599256488187626140114349960427667244811128379799055071233951329019837749612361173884125558638858198737956685469318069743751209789073373295644783075927311476385218507828864298209785063065407498092104582104719169429070016070416132248152016498323065832586761530855908231746101731764682850289651812260750491642553063156897466560762754958011105055995170174492466166222646543121132736957223153044065235976323192745060588218594983389013570505883802791614841084522351611204510395224318751664961413931486213252348555585730496459872207650246182043455634937871905822771711351100001295614616962652383948374046591308202896734435649811180449180418373642207834145816736236510884942048146827419787418692614111202653222070528736873123844533124971242724749140749075007369155386762191446418351192373235258457822772077018570719297695649108020732833491818290852754175087983513976656598484300262129706926814948895893947137841408358284068438913463309350998755614001000410009377409072596332883783259038472021916940076656312808728811972185341564002499272731573621854310703795057503935247131464401973515753479630089857728165181938570408892383076049395107231547838552115471120168185060165765083978619559480126382692860458127386788938653386249262266246933867072336083848485335267697308029115326361565618307705076296198479060427309251051549797881533737110944479657007328453965571377866652453291184489398017099118619185935361037737641219367728970574620844312109997796200804138265583744567433914366946330955640747743688466597497145512441752982343265957269219262553395747825552866602916184927809179183229445319815563244160711166219703858542012021204349444088903909560685012306525944758527775517668001579140239384483127591217980686908027617203157776736355282033130517243588690149354245877507827946477655447456343745056634104035652645563678834757406496982259718151338953062073474207314638596623908352151293810922091093579441098776660633212350604254708488508676189188049880451050506818441094865694524261126246431250749619076119603798533775423197108358050155964115634581175250453515600258147034949066789550177798634852319754100954106525593403746973693728269138498571138643046039980844562093117643851422078123396136933844874756159060448026496568466949178502333959720814551480135721402148234113339267980945117193914145971183009636452565202903142777096402305402010458648932797656841711450504375703210381789273019637612028737777242397779450123191664423678855036561960250559753570407601121596718731562559664982646531507877263982535118511942344321289828841304721244295846745367374320866827534817842169065115484478345736998875876581420771629262157545470409185171649804470075033564188568940622650663180907587588567062840924860138447082735048105071518028942200925000373299085220095892911676701532216829106611762521662814991013814961288159334847044830686826856243207189126716358409805342204078773327972692653982856648083859960403752377996573558973853780865538653653491242521915214577086215558404302986763928102477262052671654000958543819572388444088080307488444332045772170293863229303789712613916866582905033895927128201135248314512104097435633649582286055493475808243939746743617793586700191749542674200632257010545010276609473027739272765260638125333631318172907437302584879716965731658581267341606724736722372243841897021916541583236684737719725583217738985341787186851832121717631090695245969717508618683305995001930387662295276707887381365073196695883296266199999159885718095154722465184303617205936676161511356796525665020384617457096105337867388702188628314256202100389430685161830921182507657169254356710713383481638939434342584126006255318316667169040785831463859147782667164520213674319691580579988610741389038664811569155719072736333570381913084882082872739914534711169373064273093006443446207027889281215187887102489782442506415102059446102084938106278794013446361244683318756410559250990993800691852715784404856695200521404628036404825943048753075424871794115414581211335220001077207567394159218005658422491624781560831096628985540923763294422927748025534446909575953055648869459601973913469320282295977251760135630898247969466510589128174548940527866171438663026290402752567805936808275845026033553071390913483205980004821916185288985507811892619422643651299060118516425745278645627924123826961998723799506471376810473599171013186165499504825556252614562052144182256860209565902992676234162196575233204740423363865985676200806016432176248293249954405907355344812077423582502414217207874901267885957194341248263468407131132774835896192208028819683099119653434101253882493607114197630504506337845286551350743193983765683260724709667614986258044024142944747264971783981162463036082980003694855552266685992418353526548004146619434320751259401695001065938641646657705499059026531642016334165604412147446035125532340334020664859408749330888317456111024448272004474621458352331058241786435556292200206637422758609590731460935116110708953296228984178949132001064843049341761734245621735525272462282856027024613620055872629712511132256595297222538538600596437292751014161224007721125489985943610427132468745022390378138655429951882216041487085831614638793210141382527228102634618086398020405706158853881818857634318534322013660363787953452157824975995511917764081832454785436041412412808318270411001222723175032793951870164262101885720666203000964604986246360401138431276448916614556715017078488498718902941815391675475671680397523254906442090342194070982347210214232138810837493381832221429016802721217883460516615069486299476314179004899612881227868599312759660046729409450058765362636902456979426024028461888518261500916268286313958602884493527300600537528943053221825695125922599907906412728532945892829715527887131105385635239490790913286531623046440996129921325663423373115713010800870104451681587337903069462620343232464931695468159597815067753501620905760843776831529514128473574628381776797210537349299671895991443546869253932115229171664020799354394814764908641263206476828509931041857319014732862217357814788576464568715317900996173321079816729889391474190805883099494539222623012459267184046256304841688724170782634169339978844964393450105824794022946119922861718707570257394725724040984390463516299529523680964996365172562491138500612352165674046104986378974013926425570945224672460986291707362769356310230714518760836504922921429780649274388758736579734044110815566307758885350014444990391971478840037937415869153853204827667004348211717281536255540685154574470457970670945250632641635317519303246154085001893300355732580969739210484353673769791727574077425831749244389511927629259947470510138759475919933548774462757439644936546455120363698424951092077654046892755160985725689506713749915681085537382158685763763533488915044385879606686993429769794013562379912785629974451395116341333469661922178796855518853548001523156023068243451978674307335522189173528777595990737008159673670575422808198933910848013205603436369039203817178215600931610719347157705369857779400876722409575622441918807871275671434249055304263927738100823208941375963014106553764674105595162997539605072912214382080466624268309377899116678842967091873909334317773063475650858898434965098350601709818754963006687277114503976431885752817457579722959993799728699623780067444343888162973702504231129261376330951712668906789099092669955590196943958397765475078624196267342727822911828258776927939820590686615984728347080211056574210678413544344595514135504473480824969361140623046727732379407226030214373162415879403556712347566819869398326195137891408786960924846191439853675577597377183382471554430432695047249793263210805608733014522255061107157684285509742105417467544512000242336305946064409277479740331960917297081291385130021454504713026586803589132677678839481861557873152986798164033438125357245760294446868315260783802979795868083269697080444616782462312864023044655138106518171669020893381466299504421714031298741062419541606727277615855755219082550686561337393902605351836569736815306119214724077497922125487866053742289406250970659445499319054480839243496343109840503659136897018475957669923307392580991517982259680341448865684078912539723167719452425119884728205764939112489312672480645028849168819776042032891453520977924517160813714377203346275682286881534377222760600218860417570623092026291437045992156703340241768271700562341655434539221820507123250336716256620141074948913369562607334324203813623910808265613014488529384067034896191965809680144663494446240037563987933360353457334300229287589810029154930565321298401392647904731273676037151279325907722299284914931705922779183329505487135825654189118249275008050641781426911806902608762383169097429199111803967844259256847027479029924869444545438136500545285063709441190399292108070428754148232913736330771200265996521475303533400470067489762242619504778868852499924050613706592124827338997354768241334873350035766390854579263376500077485374399890093696748294545000547048966865132254602719952562904486600195347142736370558989076917965938634952018418090573020491402153560904413547040248933920814440970834073936860816321450931774209993527746658586067847231503537054827320098575709603233057225458790024885724115280622807346459982489289201463909958674581208781145805388602616897781581635644196045922161280942911169688700646007897152950287138629522159367617959350332036108888086670747171687656718871857836720882203384509236401861560542531273334020272468680988749469114946517046661802950828890906127164504810018196523853459132885577478299809828804147351530575381996262442516233066099786833411409928455841534914706725339307307425929431695671639858541855418824561911979218595626006894292000788294387138287776926925717870837211227459316355719415780028070925919064301489515232369273992341659300867945319209019188130194601292205015732679658884929987379553728247056749945112100318143527994755617112359013878581803611183257125796581535790085112478919363919970630989435819189678474992936160805570617145583310207313984268927273494156563985641647217142867746367365041867489677728653850813026429874207335816771654139817417113043604772208516627056979615877548229497371933914327369727496086854919886484054753334271586261802307402357970013081694654460591309374205992391901306332723452340070843215226316809897908060606724147422295679353845586077002425096417545630860508460623670528201901424724101328184234843364290543020218593244711664554209630314634891421248567360275023247202740592874583804837629760878730675363835888479822240304234051334947540524966035134878415855627613485330528241696860963865563169861601295859790543385683492174921070210934678866751458410202091873607513842824163790321173236864024746485804781098611823598069683861010185017740141172959679381540400996136982308210569639909505340274051989279799654916190204690048474870780419144856681197681835354781953747947454144920230461163574697211647732606901466579250901953560847545183155580232054636519828082121513030214101917694042337632083115005604965654509435202807582605854985987338204349323946841823563369603570837417670913261189195717215702540562296012411700714141212426677224750109507287589023458093677359609125549925030139298495428902961032183845155704103878431073111258246191101016931328028041670136546703648836992721451574928186389795605934137532136425725650372619524039393109181316668326383564274259897110392267134049484656614921787511551139724924507721655302260995225733243372240763853888866999496045442645740806701938499286575587948425850137459344898816294796017260932344466909123859904338538056811344399194133841638241212230846158140889114601793109653526351368035901079197135114978452375222648301192107161951522718528721572113115286737531795868095247517175572557010161309737905243096149961408484079837490702962149834748609795861658345187651063904117523671123178334443780753222782449798632690392992646257298542240933433550762594427604312391395148443194425124238478804028350103903225477383766342411322591803010336161509684918298712798644876449229483724142354374750392095058706728711683864838379967415996536888971901151338745851248551539432438406096662636078762582970561909430795708680891499863138903982189872758716240465659721408458140218364202808455253348340334087455917252786299079009826888622972166863020273884402326035056848513014869264062967112367409262311524082315134707039854674439471763265563520318049572829471654888890514043731989923038056542123825822930930680356335804617971074546889238440672102034811766650479058243440961502740578727584354100089774140755682428773233839799871283717841981059585723173159206980765132441768794416218659881898641749328594769997397208203992813889838757770305090511897361706050771857698935224034544707205407097671149921798350815168383268540613176450850619316734171988445803240730350457350856713914431346028093373184137781968929274670947715197061990252749126686475178776651563629968211867136244338820978865107716910169580893390566866242687769198981581319224128526495281525791037244186907212357339789863155732167509946599086205184605406249408950217302003319729456803459551387670406506734714167141973811662785039617121923669374111697235223908700752222840428817228836538174763936689092862381191333362969501464832041679796084985017941222244124641061755214682862144985417050378253866894863381714578188175278256113331881591565276737539415958174785704990117562090232553828140434288149390583633819987293245168444150363734841948709768306687922904342336708694856777860518369966818188552431587083300401728989353125734141891198835311540194518297176897054319088373892762114727726937627788624816611483205732301424509879114876435199104683991852010799591623656373408185814677308813714718801459577422985933974074691929823902168570783488163706864881154171202950360566214531087813506084616348537028995648571556020439596709024404462197292893453590747610844908115042318174177303299865604595343629990741300862667358086061463348208276422853349870987694876948478606069310523309221367732301030674835189184318941017695913217102164059707611990821621704442149174551838658598308514671185202624460391703509709100983120524911110848592688737189913602597536570842982999696310764242343159084280614964472068673847561867646134274810965628733426574534718003955155856382126307376374437023352714924880593708370870074938261359330332886165269266567303749590537456228999299413956646941761211894932975889343770678164755476352907436973049214163539933864280060225791617211706847184672292131906515598573093109734270899573096267474813865085312175210555551405071054074136635955359711785705265592197072858601095144806283751181341002817297248930286945447892874945580526077499941373929751518756083741763330279082270756566331150458172026869364341580653893906984385013633175075836478895638130206283242176422964578914099536148088714690282012233997982711356843012671235817618356895195910735681633924353990804766355160126285119247519640179586224954271467478007919186021030293404590610307803217202862603286471897234276232565530446373319574513118535303960302455667511019373622262843675358053620159596965430702979559333014916499637270845774584525794337049390181292136287972318539823941685464802320122746437037386297507351534351465734798203824210323818245949466118677726224943004541759782032463275086971895882004464980977029488592291518179423816011650360319359931221582026148032353409104024618252210391687910204725123220909032865490000461039702907119527706555461649576044153097974465182042093149182427656923692408415245935413354643792747393510494299840721485838308333053811741307062318109273785765528754275665353304474301797746583659326498589762251297359201663611649239203898277323128918734872581099125253270513249487247166572602920703477069869738164621974817258812497841837602259541062917858188409154070576499221916813714060265228609034845055737279225185266353104148936507209518252631210144149804921079679798280579798745919389148904139428309851786902368515812122110474106318932472911668706648527718537634534965116151363756407377018604098276118671471210147845233996015027028606911976726788088198746853104682941994110018828836045213760578935612105036413149445689734809844738483000962376511730934641575380626330049483001236570915228529831728621213507001750473712135433392674490773519528363073902937635309625096318640442560120596748036919512867167346289537780632272874624026526351672288684612573541675718741612476627221480137621642121142680553933023125037871215952030925288438535652010988974235367463220441125147223703553060578837734099099121108140047629608037174145354372147222679570708669217535473564593230898093310884099391379437314286029042747961088494881169994111584797009019693649412196407092205828044019730669633768097839321871458146138531281417308188067286950273072392939368643943512354834692809092656415986541490877309566633210657876250526985057185122505403574864260080033545319437973860296705052492082133497439822945883880264145140769059396275113709995635891662266217438717333655389078695556141308250056510238886213219426131160294025102070903013157318015434766526095267826512471017784796458360025801865486680078691361271198720723140501906054260729551026705259932999096097879990369508650552987336379470681826131172562762470777219969513599643355013390856959649552017178443474090798771274515397623461520331238732084399983034228404450128721094009874959799007626798519412566980586348189998781875307549458938157654237672439809131117102744837893752143053598337591945436763169137146356289072189056284001291223914272531808078535421401361299786058159773356632909689200688424755281016199381267426316886488073166663043579850991268105752938940031966393288808192245157638760602900523569924397390483224056409573102935036423985649022584929981954730015037837024446454045283057582862509460089983478129010512493207023250597087690915162624836824622755070844752299780004386547055187919721590787028253160259230932238567747301125557233761827246363216579931781592312107316184759592319990812351407727363194821657390493190553233300191193294659944731021219109780539748516693488338517528401383361984844400698734536269306025624201617699914073395435179995629568358283155420081509792156185775407802525069606719736119412734048551483615414390891972483504878043898186985695586892573015712058777574270615597741297134849601849313154654941889048876732193671320962385969720032438654693971319236590186687551985343470479119689965095161702972416954914998732379740108870129536612052558635841776685156868252962827326758462814644433023764839735671621929218912212138070426850543295938224647792066677282176490060711556696299007987140794405655803590588138008566288634948021504400837950055814409732474661707172714205597273906646305915619989359577723287940211971273955812332506041607973438253025883781181841174352277321208413335960019792063718387930937048100921748895745763800968843268116117123673194497555315871416446957521864760183368101313447120811305953549348385496793008605533760288201914343023345564848217160711294693910922505766036062660535516066085410353930780998268662431097577056596874998983380011976333955909355026319744332874160445205540594126264438739782006208465680904158117051401840928963878142743829169433198993376428577515455685506114825120766359890464478948663573155160635911103457477828488122295138728114976980916315246642334327117086983926621727236912793227170471472950244529012154370252215906488034758658536693745560407559026825481897991870361291658902440417435284184306954569918187451486638980276848724781081429303896113115921653300124405317407189060636238549796117812590767046001511484750696647698378688689810184424294517907653820896244095410391210228537322818961250479715524182308376009810952186668656798111413309666996364748756306752550494888029410997025932099539948231782089633687114370658301043768581795947308705636841534479904925284083328214204313462816004287411670599756087844839160237058662597746458850410486870664004439935264871798840703966338881306173797797338550949097547060586558618189030060372330822446701851595618717127565793438802205635663674576029537972615367629782537493547598726650524436245731617795529968627919259964465736073204453341864393191244536298499513608287408720150959114035417494260051274564183337763376892250992639917175806374108561643126277421190227252824847554084970168218130240780179351197516486627518828566725254359427336752558304630085642376292657885131137510379371673358308647995672094975139964439049923121924164201205721128359520991009636842985589784287737411365694440678897556978456915750029268184997510881443365103068135666669973029006668650360478099997842037025353679299234591068993293824409014125452269252181521873318474024259222131447568715855633790417472706406594144366594035509211547850897833477802674469115171069595802812581237895604045576145069982322963239581101438966874336376290991813630343862961162934315757090418264662379792010517693433493630941532991593421578200600079311248840605460928500421145688050896632736453069893703551108316251152545303028697835462607363788831845606379696098971473073229754876203154239918635139917064406270459757975482114023747545685338439760379151277671811593739455343569209517916604672959334772501914605196983948141789113405216166520937047141308006000918855310450172172531134988111598692564963729728951592028317557116025813849823514010090578119600763165428086664933939308050299754469101057525450503832266176499598276976938112729288304522826758930173407994824046488891147244407732792714327127230111451846978956142053123194526939486112074981615537051569034867309076059077615812327136885773535352645657495486153863250584685028678927340500709079035868042760102638391902852490657599498794237147878581591092591174961384940506265035758617997807556674135096237999623122522323307453473272281420776749616082714360716431649008117331683360240391162040656158411130297247373456632209112281179057526507146651167557751356035717085843376230182796085003182925936764049140867146340151760449113018845230327845546266857050404908148811108823978434132989730155679813146499037153067639083146385984930699473073833347478645728364876162410413255521368541354403770547645992434335154530468379625671691765010485954693102202164643227825656727142718323677873518404490447053036465799858943683299520048515407867038104522084579185165350316698132412714078474444507004301767214828739192903765776836587795105112516862418304073533500181429478591894292747614351765880138128397856071507133270167275828276836281906670332499520939555528155883950100197340930542113709377863620663941275476572754866828382994182191841496083758038511542631113116220084991890238545308073404092590881425288522570371235788159662634803486659183694511190147273390124570916898812443194201064310469494665728241403426579476394491454584844015410002524981030290356904037852207631778828587256985802451553026748088072661716377396884923551924955793769671760971929044251857629660527922822441651255217508389792356564733340966748656471614890850309683372341865872330760830313635523070246375841741354904469098295723182198073711257806707126566839503291705812102102624073069912054912865513945596956138978746084994376353928954261883337896495274024975030332932186201180454027100985645709695831473348612316705596187074237952025097807114032908935227328074187071221376237422184161180408526693398148233215161152445152540693500102502560226373262573100443205717948661717064353133427612659582223875764164405521986397925227200545951097892145115744729027647762984118148653055122062799328060472864166023644882832757592758781731125736809613245695152565324130149111325848429462675721480469950981249496570622925697481905490576644729955095168667765344480354945707704815107357544856281693735684277860221437554917721712464826987501584453637460019500000696453279508353524691677219716869582255000135009004535111267286835022150479662507054903507961134868252039407686748156770505353148040371879227472787024978199967341832415808084492742266001895757628895170604922904154034681320225027010386069483765357077719266203287167102831058599153310455554177150582794756329209387342926301954280465930869967137345999855516315199642369399174711857020553564855698630801133361842263038205954938043720629860112753943772374460431714026540063648449239559874317391504069770357274929998550989127128580498976649994809482303603719767044089136604920913706756780737816321820425206232734148643820518436023556054260465815609534414599429921906982758811340673618845948309212148663506697926349361999065714994594385589165852572622373922714198533606643795221573765210871042762037094890065521308350846678577407787662607137764716320409370677058882560971802342557523384351930139578149528337829979452267549835359129001948622432730438297726056651421558250936315339898897087976625672475362679178987661598531000060831732843257248478848196493358385232273472356284951745412064655748235744580373781387143383079347609520672918161744778046049945951127295678694794199254808439987828521629437891176488722832383724679523874450473815712295489283476923834285357692000899313329163222439784877544041766353485933757514549669387392194249086231303198346845314850978575718279498959545459872601132407724543446459098736008218586625221747022267889112870642083668614732458063114475001686390912968109152544727461442393948108338362366634655181611223623633102523982625836662012674788911722204013673567193393874794199815260081414120455647077697188520989242555798572936811156339697029312417755140722358233587926531737875311638824854100961570490395478930384393579873500041388576288807526835952557054928854701860884339633394907132575651258198641947846813955009796576540665795257374912843030717761035445013307263331997430297710001392903962331920850609475164068843918530484458746636765605855051778307425234604613058444653834636809918841309508277300927382764587526567264031275037950151046359692567579648868419961600435019541832211251945118579020379846940507315215743408038796966490770313670662247195307652098187580605559611353287317077512069188061744621137228613154951425843049824685187729208618412146636540454840763742642391427025992136721319327449223155548713084597305864580255364622374566352059540569225607585433472818581631266206306472501305994215843591848785367686864622614880698918182773003920847637374172038098475002027398675067489769186617716631061134951962807627872638580583379998417274020551029569369641911122761016190249749670306364983150459337148024401749707386791850358285671536378564237327833343959984958759443124733360808596228883309970119982018515886884155535444253458818671618243723382664929835270099806646983514718787258794154062336617856579188164470317807918704719033089868761841929467123424690882858422003443732301197759884201976189716291780627502909900009452403896858179062711792936994870244978664119207079819134181335818469602808803181768777190748991764377943971789967171913500968693689396435151273254324981010749444748117794988697035190411956967441355620599290204865647800533970736635273274700821469598177065862409591074086519001159603557127164027596133911604655750979041309382551261064144975188269331809830313791936431505521952556023268441579832610920680426239046123881529035712587518801427466049397018678776719233377836465641462366900682129923768782663304853383610942495510137824876220336664516902530921428990970537278188714681427552877819315920706231701382459034261974161540142821954393772165584874465478635019624642029170512078820312690854164031703584402709621490640755658601233002061792226702570094218180400410771187852391189735341384096782721268842642643075002775978436511250792287894648655494206240432109694766154879205934174389280435076583637233710138420816668872842055203683320592463126989041344492786017762980209870436074282650708277088396585793839597126207313856473742136364214298384104297066412943902258443145852877067658789328591006402094016948360998272429680241118034164661599415093785999180865181131634172923084048517285597915508995158132451497650778807102632970017779385700921497801886709156176486019769980485374616267446332050127026180567584176664044732578197760281861078511168284857811680694310601533387477529881833433580075950176302479066109430361200601757785054240045393324810058370838462106919735990590916899190224482460389532861081334819606525245393389903222221684822353269937558302885639465430201679969308984277469703017580515510713948861064710847081581340396439842447143663866297162566721616777941312406969442793582096497837788206523003925261610472263276131634952568723841968269384373517298367343046173560256587490620625951575061662384999528071135881821365996583389543632395068148646409439996284142560677978276208712245413261216820713383156718541963387659427899079809039988212678125317994109460751651860852799563933508581855111761981217362184730040680230699154568352532796366063530862759439743856336819263237119320489078878789530476934110212422715789588780838640455532598100670070581561324892561547996434505765315414638424409011701273306430271527140913620496192604534039277199064222277661395488785963827631520562440789062399270803459399730132428044044958985975465930136645309300395086562199365102412766476483404969552388224435492885696818480684339697103054182936553581318435483703947118345811207687381208849998489971448225476663225750325117049095972352265284959375005747142971030611715599038857237698458422982992564923047577031008989767626502716528302260598376744346015787031217281789177871545569310929232419984279135720155666902886613207671965167630599477061471912792358395396819342738247070331722498452610538452668459961009823103166198010172330793420064546141563645288013206016229291109139691746669492573578682259787090398259846211838003006513849207988558730904818152923668932880474460403730377419677464847118616526477013405150663754925625793342962383623446958707383062344448401071902617592866077455790857828459755821078349649042291566274768269730251592398842804567300610109351132120118496020765830153808632328277034035461568009484214897605344368309353143333776083145717459865478872319540441689962268945885652163603742157083386736750538713396129364954411969840861911250423360912666401559258725711561070571540905764743770081869718973907260425086196721007645962883061598243766131835327357164459623715697243964979471755223580007403119732111296812760483670553441794193669002450803079320548011931207749625120009576812579135527945830754814267044196313786249111845134891145696921632146701220457765618203903263918559252234567350211817940707246181186124694754265695681751664027740005334027928131285692838780146523859000152627519725628001147569903836731259870637100950458904867987500973777269895378560952323369699789309169222830924732457876896912281289080586054151884947700949709390390511105218463889481512643457645213176223983789828853687957478462156970845671074092904509443193329520627043480064183470821018115643248322892023874416719076869305619340430297401105256923804296827122789322391033383259862412313556239355329943875206642530678241698838312512084210969431103540974430920160816511734206533853383271727905538894297378572188197529968274918617813065711659733288312481286190470727691660221155895806995661885596834957791934962934740380019956196809374618987945765674750044324586680815935974628090989156532931035122356615144224440325383317780017535759903295240724475015161338371986920012774613141618388815131275871011767371943427512293978325037141311191857157216663245092694180042327773901820795210457683001291368909603978188998946731206449908453345848129035468624062754565159659382178771580105804491913499891618798056705508735848718265059597337863721475032868916667065324771456778465057427435271870728021104050302400968456545633132345813196155473073821326647298108634723256944383949360254730923010113872335297379594545691166277490439828040366265822993490018651832244374578216164322144030029603898670935378753952475163159317438125529667306103402549563534651824405153677955629521702016449955281105628914478443435390081910790010756082800394725542378018121011685647603807603677997797131065299097955735798661636064831988852101745149680311559820029119210011186178269845103221154234055272512652741106357048305186869373918496414601066562448671356440308364875880024264422540562759486615705669522339567944104925554844508004906664491566303805914530406752358628433752931792427020551823546262783145464048940056667924898098230091700228932918191013253461799728886086322142354584767436076094751891202165137413274021023472926232491862801126436305374822071416734445793382796712441298666350351941454540684658385287880924070629983196038625813284554059886358700448123882208876854971452986474321366321012927038030560043435427148938237788148494384198444148339194986557136129369702180865669669869419112990218784571225260801837651982840134224883742406643456987316951358646243975568828121882338620821015226588140208140919931701663142426705139689593711164330298145092067651694247644663036651914655950419769341350074390459657950512033237547873881318259335963465351647496956498611044034891119419737687320638383677490673298338359120236133290847097063824278633706798553201795798838373126644838197368988247198162097007708292280927118491855389530971008811382931125293979703293091888861366373943870654734741292825925674441224126749063012413682451239250587595993293870901950960815711978203735536522867026734003645215748142304614410371248382091245318689802476878541636564005159642113865300001052375085537103392105151170344152940463640512224879097869619536225056802758244385052796329962609707673493108346296373662373757679879825512562786966944275715170209374770075268407680553960001949095229520497452502207521463963470340536987479490192284064610397180764631604395027944894977680998639318534594823787767503058716905207475093844056120070619839019225388394117942147331772808331055258429368042640957917212382504617550605893814279899240242891554760532303214192701587040255278689520290381033723687313498849549794587605758575718366294940585798956013984503372869163611601118725015723587890606789490858193699761975920388430680976329597161817859497403975283101572463472950135598439421070740577588855127547400048262830425308412793103149867666960634029809857615641177638885953397363998228612625833853680148585841305864523079050983062813750987203113872324640049219355580680180495176603229670671788077404080355412683283166688698160370511838961796618142846162492679386774758322092321905972208017703706401861265531587584268705029821799831773416048732117375517097792590866147436273281773605144426331232328127106523698297934619377145942630266174991297776321433406754649387405823719425795797782210546035331871656311985579249861316426588704052668454405297879228505696687651716751086329548824500879767115030029247193707214054119441109631575576307147829951095753710231296278361857300331352003083352027189171302251292868162422100518231258905836655335282219561625037042484928354321177778668302552067049849197834340158347749785244268861830060847398426393244604517958972229480084927740065251518067919814901462782033329293701980381035126161311232893571282099710512380659641267352446418916946573758948708961400880799014029007845865510242292622316855763529766371968912848544482027417256016449109968894650459405358926531741408628378629198321215799838187126145794135143171519325121052006377428450932988269379087288842897892793754056096955844306397320302026649541506267242523771309411065297892944241509503086166031383024670084068260765895971471916944155706426611254532171044893972901131553075712599013759182304323020282679294162777626233537947010201825582961679303109693195720522856183785793782794359039935068021831431488741890863387310668095518051003230049424281007961392909300348772405082791921665398346786858373534313886807035550738657662293500662825723386061417001499209728034559681188487952303118238809154321549293469881491015958531782339981455690174204723257067912553368203831936868702174431949248198556771984091972042313054656608908378371026146120270001249970702087181525401195379273487222248345837115269401579201585824977498753630839565631052487274634556099200114506607630781618757225832705220491981684910605792227128128375805035164067940827869246087985673781222193360143850317793529883854272227466290175096572729011515450495449446299842535158631724929746759917921400653822492342193665611825369444720705503494016636708858923342903516608485223168221373916185927879272993726208514900340093709999068994356968907533878184808138097332061813770210874844569388566883291730289815752111348199967961823273317332937152612175737354849983102015800813810606471182826445789794410642979997746131499245255075160486723403659092629540780030276702249672687303877795898086932132909380071776431778205337529956130056298005766221862563209311999665199999943653101571915309347762903095568587799349335457835601815978612431789962032250943429745799133314070427697402289249935916941814173631935001179158628239592057453846032899694800756200739029288910104809131568861461692473820596776219013858775865027632164968988278001959091769196238483946669173398876605298081387408350088692987576064766044274521981656527017627625137656355419315810726887258659410376472158104155335199640668501526192158921304057322413141919243007186222209386277071872094903235729947878387572819812198661399848833415843504394699065597923722059982666522763694417795806480085395914462357784440790884789308700544227297951982751530990118465338455468987975207313627726633243164333637843665160526717199590953361459195886680071340315066395294281139445270593283047528810045024527992126940647003739378469228649786251318331930161417497069903122087385603346842806901554428788013621642099874334841573993409122248732416027424431282440510783206999654936817265511207442480044539674480939048119485971240628172943049280718982127357286675346192505252243437508244274746799894205383326569853466605610624993272475053518684724772423306646092751830839235146986398323995124334195671855585240997383864909714634387151852332815778041646749551859938861460248485804714792286077900693237075844352777424230827536284640203917569134519255457071057538135556362996524075550791091183099791213714654536685068412802091565021683579554418810434923685291098129678154257539640515449450839033689920104981271443880922684414513722917433870495260280627305300143296944803298056347950494540620833178061718760470297899500431760375120829170626036273891196161684128728832923410890955654405170382389780556609376634931782299717895022718506654709041317567818371700610338921259478817868350467030247529409633953203051372866251594133972179444446622418009326002493096954890287389986843448721344254006601602171175257641604539771212101208378876210641197770432727515064691852614071136703368162091844729868266182635567880951282091497466442657899968139716155344633146488892847789734368228979803668907848118758860673187052217377569239645844351817256096340262119665384936242413042002617145537434827892107838666793741766526319046942522659295173290302786856698191732064283835831265692439325731296349371452177423404283378085222339962068175381925480894485192444975342303749744962682422708603513944145266916232896398487452213344185752178437236202488446789229510424797635845914376874340015129726787133399237787378628101767316929263962639415962961369137309448977159196022828410639338892272514721807610564448214999714423049769242147710791556294408108990473684135074903143675707136464681038176919528143909974177114362875397641965188466537469203031787163981069872850363416471569429717189121540013982877303756655608924072888005749272366303095641898909026618256385819178637633867183742702449918262517025341824304983873125085971024049782111868842194587295896793751359454931257919494368209336442817504677426508565118668004053049110587857021129170840918324261433318430922618444039894188451552944718900541568129138603913473620661163457705995926286519642881077150554543050271207890754691286030278086629783268885971551655651130997422120269225069398805119640428830777746400007294130576487304777052367926290627220583932802182791650595653586224540917279174358662655699479436324022213487955247925841499437266081254241068140603614588834225914705873575705066056357974984628048623721260603790194556533757367320467629037112950012773176425676045394839828812571869989804362109153840088647395287022064279622162175430736734926233479654454463792973324191094802323513753415656748427941594713982275696119646503095296988169986556679525150650579810351895841682049503481896000411704590922392086704169237905933255938107524082990548403666253137964915651047306232826098729319862691923696077340036464846204713296372592185455834676738215164934508238998979870824850685879450187741711146883837390551030467590431273076328371975693913868571126606013688603347564796703637818001440078840914148421300355809952571930599401764624905454702311011632168888697528262048397507096218615642565556040248280626261525843160102125382550030450883323252405050564171843606677553885605376231446685117707583466781472859928752116959999091212372381097534646576984888790340478865114452436210781498751032060662135332867762018404617286621429831252535917677831056623995459413164096980939063224475943655623840419657600454707034872187994984947323081330202455934607067553768024138756397374519327943208131791581624471932015203933944449344506878081405776421422278446237256978350580424452877871121878748833861546719674170503487541607040941225447542941738371825459729366515338604098763732798434997140933978838663554616947824052863082316186726214379723215507240105711547435943831602773695264857956069460849814431461974191392732894722333608557788758720684369758014356018988678910620008740725630924367074170882032717727605147792871226387445147143306527714583782142470627160546441378417238921263636114975096741822911862560049350265956857979840467675137817620198819919507026287961659756642300812914604807998468519117468991962191238949135057169156679071451401102795101167923214136896260637213065607767694254269603586990365407250868124794668105945317535550708214783339765757785097854239071262910882623844728292955780116307502964400579444749226930713712192835495330344089048279472723404825181199102967738435308855891619159487865678703715049985344107406287199646862133744709184603759842722909265251250483787051499984350151083105356694739586501493765856493004929772659054095634143934965774018128978077485618480131630518437607044061203605200689056247884026725002847127988162374731135280711193979985735176158864358646435834111276789747741050506166205795754112581970143518783635390785302162392821899620404620048728883240249290114425802358681708927854567895208475635312600610972152511436496517149984530911019339941770166952571212215383275826024186481277724702559080304610184216365587725658359041268393312960458315271512637897427974861562339638335840433534928542181361333477466785252640205502544752747387793270681456864455951808307043163909672600422927544994188035907324610922149699802832448115970581487472324438331696072766342214129894187023505181524078790568205454762305869038089236118591533496471607449153115231367315167842236035329491227462608595279150969988934402220494936069300922074319873181807959079452042890109983683465090929909993249073085464475748392417494188584109245140621839599906469799930802614183046245149049088354082464065996333442655813978193780367317343238017293037219499668399185222773821168642856929881432477604144685301323220588304467041495789343014110034538903564122418856787826939577774542142858577779236089320543134137622408308248603940252580336874185026643640330235717948359216885120189130867120810312629259666745097459407153553618437673279211192018867217045336316157398621760202372150669932925855183931328750006524961716092682783784995683839465424058192021052295290005046107532425870653197619780603257280063723640659390481189745561470834574511034408147121923035316705939385441814281916100472184014900841487587855339621652209766404005642477606358412230092168089289784555835671328113244128256937319028994736123016580352512416394880559521898156131713210046150383549363777537753613917478884594873532058816714341547884777550121521793631405240601098968853699167573180115675136314737842307557580435125315404957582853496720284197876293955180462547766777580685350317461214872807085582458878170762283924835944527434589814912851860350340085175388677705721288984233561846928654604722039291113501925392275845104745863821376831343412588096336201400274248519040670209185832373837541770860455022562652317567602423868525865394554354410003332454297436279719308372613411422730918215947087751901306956536601047302482855874788393199675730704050749685303517318264774274702208437932810379133867108353285271071441503443194088981710014877168255492627552023682240367969063755930625707653161590965170046371619787505020153566854062748086584310238141824575512685906036652066245357595494721161490859012829776706733652014757346395890419515158471992564556831846058458858203658965622547484472530997267312811455124756302147720899085177347056935266700353584700839623570772473093041705026774791817168675541604552787220997945813953565969175099969931977776934363928726097340440602186518235272551941449919937872775850273145558070958087016193924217046321303365083026489894051561636763805478755449912203262272219635293857911629834827518367958686344675568371478500901917477439321675722967107642329010973219065218529596115646828343305110882599738721802482062451595571030747423658023566476564562736170423589709706135472610030200575560290113053544861898225677983095891566510790559511344429448539756415416986511778876628432405180187736828486183360068767936520856578538781431954589812988660536748851513592655045797723273224616978089420450893299994541292612173743183117721171045445757532954908986747373253203908673524749282434471044249147048477721507622949798163040478343503496301760904918999565397836838669449500222758269109401840091341682271378065051751670925259260505969114612850927021887019436985177625328852792404660623648074071918551034247202403910975182377910153200921936502970913764586380211353616555333244564922101354934349783044420196894761787714963644128446472464794382413376999447022431230820656658803575798299094445748075553016858711023849968176833630648571445020934415097520441891306637865635680616528473265771613238782398772551927594378048883331024330497805653005528747569318173833287799942612350034333587515464823978270987848187816648693894397264232072046526866446471491948750914070074396211464716745924383954265008055695787223047574192360459120702140497830798039279159748815221856027184481142131840000570027409934258798436875217475103002449848749783411310522465149234012196728001811827338194967877830057236342572900640563874813377441652141933146846143900500921573496313076344288788127147216389888453743177435864944449667153210679062592064537638196916180103535596250100605877168089459375126781511889546065069988081482053170888068559408443476206055801379296171030780599749639698392018200528303206076137380293489281597862563184839790293126193464123405345381587476394495003665866156639248722049674039299624153134270542569464357802248370657771573490317333910853845517958922351769088624264651765913443581679115871051950216952856518053938814650376062359261587382846725469282755894953682292084491536168371299197934881673985230301120804144284016601383539647525463252748229101285670223688879780409462543041381124131527908272606368873592362683331539293255561375111118190919557366982466584681943257642628743542884105959348183951076949990875574926164669366169475608368807414664222610731619687875423956746033924046843509459667531688353513279695746610664064467037045941278475074260234088731254454852762869907764223496327912187023455917579179021919644136203381696719530705196169729063685687384737791654737948303909215293856026193344084177326167808917819970429171004056403751831933932022557708641050603171491610653528725732094550602350783482946614439912514157296216728707097025265718726680014885907450406180180052642183885401151016491918393128532317105428112856603361771866767951420149931513925882718251746435723750273020810736668658615725596358905670215125016974898227059151527514543852083548672440901634981906890080168532819331970437831798197925315137092431595681126911631660745852592803839271135859438324089968604289288629522532574478432919838162526017621259974384039574813268956827712695650237309080865604657246767130581377356677424106502790298650988767709007534474244382739524609194412894778381684479329521544950086541363575811186997582516876567316029276216314610829075969160894897290200230872171228662126071935301390689706844881288980116548975302151515019061210708890571820377449974606527923530845025931098975322713025206056856110571356133730244683135624118543395918257179500758073794529386743416040162742882021144771568410532328628456630135545877002914236100963814475277919596595838271056153762749088289208234708348178542995439992688574658097209271279855379016526337575681012668451779367579358795966632341406710105352726177681504116557987532234430887065847090206168722679564825101669127479224002703778115888325665450520460101669789527194720639042190319718200757982081050382217467190138210006484776987380531945059859775689241339996465573489384933790564883523137391676161143450034814899988317013724838727336533843826464140458575265949336507267455383383870531985262400660957162868678746981470383893621322652534559502830112614436755601950098149996713673157025476364759975143265627372326833897358895480921121693205551742237793344816943447801585009221788259358083061968581734651453483071627510615315322250179516137568139003287719703890564683192389178852226061176840355944664964419564174895246118949905692678608533069904703918296514006146695075508516955290266448949284565511353779440951492519257991945972977399921577366068279979256342678479120771736112754021513834790134419527135741599897434666528837834378742130487088162149134208355100029393286185834421275713361252064323982323145713556653308853372930082320926452176866887678329641903357465228106876491856822165238453611901768129745551366437731668693132094746656651681002103840648393582809606749809289843879449859966343766689191864786015888040589418082066019675702274831182249266663941411444390143736194643933465496978408270425266617637917449947796920153489076316364316588335300977399536381689881842776537250548618048336381997428535933428990577426382869095985426141696631508178748988263840313807359638549320110727890222482615000130198848239781897697643671484260124688104126063416788706597973176114106318420927302488284897365169371938639043466903971362606815300121576176721902994018402286243410168025136732568979128960672323724290253505706162976181803030153559179328467585188706991556630453162228668814319427748284993186010064823883049478961404642088791011075117435204805586535308319313184088916621563046658005203470922099773169351162300401896984408196543201169362436621152746466466046983981380166623972831557165314362885120061371331969449697730466795689832465883509649249060813216306367451448854267383869903600836688356369198121046877023661405152357372425926459806673001327615485384853358569597030440894153648208940608166048820789584216335409172669825938574694678695663706630449919360673242020158757296408690468683542761883931372954743738446782074978685336905134401931769303606908282717967439193201886941867337805724233338818379575568091510259041831955626567396324656016946954872163256688581763424935714418188593460528081470026586082620159699375683423813038980167317981871601395299916026237751434226117685987350808909534944116056281196614825955980834148395072862549633405841627430515782591438372937203694834482596560182978668532244879613943723408291367048998853504797887879881005077141313632425880794186849605030550659364935234560397135179075743894617854628687616043787734360428714335906591058527292716600504601517462873271588562250355319793482801181160492911067505870064505109272231959678583504614435769105328834605769792148774789186168631240460804102059954777768413357494835356317433556298792927136922492394395395496917242138430584059301303038589517730602128498862500246164420629146224741554358244715515462310477190208244620236379441129289502085421824721676789644538948674567070995736685359373217099771487125223141175263726041888133280615808993429684236976215518346582199274813271727152865321848199665563160198050994099824705351110976626844907829222342048651105147932332435917061627001238054744663162828338004186571928972445946702173866413968607453438053565788034214485401480111825672821232426735031446417532330715694587517027565749028806023434137064493509368047142934331808527119366471769194081611653000930550982507405230541544565313412590402312797821940587954437413343470183667779142803285894489606009500161905841487042634229268914416915819013453238757766609582188331516267554599907677229245631073737727048504963806494449463540732693738926221546906671112072220354558809905086801818557875247758247316339587874861763796768054486511727183584533772285077230040079065753512331626860711181620856552781144255305481245059182886543433092011287865539949936036990024042959487882610883912146168479280421713182695914479571971677850772259128923541243443463711906117784755409142038980268756350250633853242439335889836016844615154860115382332514960882747184918210977688382508569289814410618251421010322284506799704805684951953207058439031269548403307970090527174804784841167352912163968008636597472311629823559470332848270539639609746306094724866986451885622073574616730070960860576018344434036175580063134040102190841373631028506363241722560966549764756397996232079915892455536762710266702552401383688412359909656449597984359003177293793461285073506643785386762795274175074617816970534587023588734091977805842762241894900962072461008861915153575547252912643504757097572206323444576037196603111501827381564253701404702504149226386527468125800674901858095267998895664823325520897876452473001624251586901899016990667754260045173645822733155478228277205563369657520522333478185217954962153369136730346126144349608749342719286939874308672052323343689073541649166870577644777549692194152606022198264538248997471321254824965037292562525787903786856076452993415976387124831105236620882835450188293772016983174776506733274873135155477760630541761876110881990190524259654846736632680330688914610445945585821381822629913090101399682684581271741377440769747854402134392701446569953902401239860095342212549519531670554565930152614280759626332685723446415696671455508788525726384414801110560181248413928172961359442409606384394576305847396575893079122383554360285015346999889233067644081094053877755551189216892096424015796664279343243327439539033522839157909325028222099027117580868314867395039990474724077455075552163161292004483784584477811553981952731647750865973209030321233491268750533426032230638102500055868124012134907551146975182633792634051944044981759942099241629023916500591828740493746295032019164040162002547220651758392370756861364062934503826870969588645010151917859865337939126999662302649725656642353050222718787915982111420809240478207919969451561240372547308603679705318910873184096827781137544389855832104426056911820249211646575070428017074812840298595196443887444667302581497908135787201444211884181197566351776708298931488139319938373835371248919731395284302819064168004119726634117486625126564975227688880435078547796787517826199223156179444278045205910453300812894940973900194194993804501623948124415369472666714195487530972348175591228516369654651085571327795062704624223789780192783546306323065829483566632637195097763692862419629022588050607433070401166107170736937333017390943607452946670490789848297748248290799556731008947883294467937886262335199947759835561132585504539727473062536210787058354520708779346105665653951797364732529718560648128349681205823805655937152631972612261134194519024398619991277174508625340107503619633794163654384369831202446907158073584912412567255663941237677817674151438166576037422724441817957614563073079230929613541402389234065127962385488547772275397907337580293373819238692549135225242111044466849331489676978349482518658858224005712213747775128283059931193516902047542886624917279126122089825847264779361013021421187058194340034269117553692507139415276960400060836254425314676878545288275651157952600885869129173519326339532263603581715998321898342054011023080610484159792967460581187045182430501696368229155082113803185977879416341688855153665187779019248021155993578674039563297213873545273549514349173437109761308963913436350744519514959736837006546907905231491578678825508400532108944224320092759809410131107446819158836666499113903666830929675399187261425044049427545026047846925236019413742636380061630719150129192110826816068371733688144847063689847624751294263734246172730745635551948904657530637629329198617497202371736990652855380946259530892654812150634870492448913545849326354174645659066748470924391960788383129476368119235830882446121798911267991663403999292203364604094479303925560693895764967554442749154707206871633873210216576048755743132073242501197586301917500300815979830431816864453016541542411688276665853477520972282678165469415701065677520923725676707915573091125154045341011470614911625562006148576052298149520725648928628034222498463616955041960054507194116019238004770935915851911844006045541797802543609859729157604371697607254330762068967657594855508252931462930622284907851250012767989068205313318161569543502973536746405820404400770457828526858099694732841556482529404288818609529349735570287432399493523733187175196526638089291234023312516268976903895012288076156211250460838964930786549854887276336558195270569203748692685388975073783931878339036512809561707986192402014870428313914447390633309805507061950639332541607318481074624623668134866291866470123526299997795887687050968675633934931937460147146007543666503234766742381100967748407227610468553364423383894092496313343401751048017916273697133557811954525916312604409770783675442011972408970202734408029400434885273988339803318925648525471457840092644527271236486203724651788618013846276224383874939947047720181015098957866483002991104212170157088739731278172064759630231201138744786858924545645846318499576771815370558742687750763954928505706368449485106765822984163207187471518396820006699674116842195533632286578273650346093950363222972289843998934368656052759891001837996933846803467154740271208793237711017824216669307235396865124983324653152307768600566742959178168727794509382739484889650756004030676111951848702202249956622657731053357251560641582701613031675710982009183759431410146200024614151594838755887828113385850501582080222626588912677711722982200799689657273024805028626394330576939225459212622156629965494001476480447375308671924806288235081627062712673139153713338991850611007113584526243081592460066627099788680523457172995932891803307348050142299459637768443342002912997774009581726147721793190301631808615594608267949335658704930072319263241689810152624603173233503391160257480775853031254757028571653058508996781097067075851772569969355826821906239416618720003075814157336634414497159363412136327134844938842102837819994047685952991785948578694799015928377307674732643259299056028389782993538143351730558737261133531687362873749750943196887558356013652805361074893287931955067377365662726978977545188701443989827054295659838219580643086598744122889813464562011092883577674237772520412202251842349537688664288807311691552688069535349688585018562705688851785413544907374705654738416289066507914850100060500218757463241233640179758384357829856740813754239248759282735225868491167346031253982654027082676962016568615118839397469831401691749193314507076600515057875534427835653370647276521513346713961958223016486534888801897495697560343711885539286285549940544141011905665933948629203265462730663473466153170521329177441827828711048435040111195428674364250803020051292190891675526454927882541685593877465994828034619591285490114008942905662965516082160868608759430100586972013195729765851334748883383455900472954662254152609877849810314037952675591510562165335134983294187084427907158840486972373777574622514436624577241933159112176941220253091723591556479853872008199244386422177401477029637561991043183040377005069831569863355544502591740728025870019346420485704750473769185985606244576800902823659764229010784331360408707100019041757747782527826271790078590627943876768909431744107425611154393856976818349817008478235919367306703727085466773660547117162400101124207978997736299663263492084297424911103833609063073336842775725025483256583738417959102943480549411558042036458685866230413914609305323515363855083541006790029264779809108648372581095214017128024077561716153398140742228055478475590943868299307833989445939626445311190049402935601851319646186483537546040622643984315822166200832349818054606679186685733795718675120391721215463869147869314277617033593675167305603608462434634900944500580020298419070665119139644021393531835186345709682780022067405394265420617854763259824919670074640732160983076748712291166336710953125329757800844457838689113921006923658714608075152638509859950862037992434820090042613187607462560551851815377292281703440132654337043995819274788294902966779574706481653481616634479201449442147904147822329589923416120265014110104122994231108276373187753129025615240658975641916711896694018778119335084422099777050030135669445407772021406841747182417384508196664944788937599414889214800709762996077344393574900742123556198601493318876984197408263617058359077984222386302268683530675219323592135909716607886046253554848277814046378424025615281834711361457512071757978093592377337511410670125646113547967440848440571676098623673294337329037472561759547577266153929349194770839009860967145118189364536511304689448497366801515127497414291386178944842890210284122752869207715023814503931107120442252664898879617549067390220620608569273350679123654610677963884775412230716055521059456027052528508763714696122454248714163648679403762538528391796221037176968665151680244677421307563014555417225288284439524103212805130292746050115366552170380447110820661176510606793587184395995063130210492860498021810012158619656043844234808006352893178248546334219927917226014887595880164830972097603944712722310321803564161966693547474668222005605549594389600430922191920825645933953038677868783731033113201761676079606832820950424720008583938482588229564903192795688412711151764726202522363503920129622824271052322814122436410735318132810347908680056428856393926082580522789365707036993473480345813343771655562437552443651304067694709100126988030057817805839003752148665522883466764211333731398746571781163850886117262533457676546188829562833308656645871869193514177293303448645203123078420994254115556770434911787711509257981563583556558665722275591886758982993949588291177129650481755196725779333927751744591196766572797054138912212555554788091800524568267629201780516759458997389674651004685025242372473186804523363459876511805056675572636140434935925083224540157880035133488670070693333972870341300927367793179710969694115108410755364044232079905520944650759483259617739700100359116421840501568122040029686605284829519566798789260182996014118334831418022148596291212357544152748554055374860034282475226053201043250945570616862008504385674491991104285156182031760696375832018454123038082295299727432112343010736145091573883442033564204155231299109015337135849238221556336071514493442658633535844419797309323029978675340445250617023396498651437218898340964505954642203190305371068883995128302707352350767998467478514040040516802324790512911280312659612997707368904341621617736322112100845699580608684554687133560668495735745309968110731898172922026767414603481865158287729687699475309142472880837664031514138507094730165597544381236133219371513063974874117672098311965734559216486873386614566645959262216974173908292499979649577981541452061606060131313161949181603246136923465680707399209756302190115906862720870895806124670292995645871161277369531074987233423111359220362009643992851680153545352964679673753630338400905837695471558339412640916566232090641349897378127485190490720093233578546718823655413212780516077359077518189551173553640714596663349336674929298803600730515472486665762936873777346127236828798128687856568205436283142706344478327177920953123501290362699687492491655216784561002733748051961832872194858777861934182835519569496423601042476564780041255705147188994964669789539542771079041951419373677868887757084276013119304547834590857772488201292068626109939580478344239311909410529538603381429776398826341733995045763882080651496031347729596598256286289534240820280757335472143899458517941446500127706879840319817144694494027549778825731408216641885491532076850011587711964314355546521900930572657316235340294189110592964122902361326818069555614063879338475810364061980361375033708156664570928960445394999329039866861295411080999086579138870263717223638166667996992762571445540200291811713376316853107350640224725390175050716141664682942381990054516347668447560101563236721658216845718490953431197681363086661511415212263177664159148057819737865031458221149850206692238189149136401356158669774028664473102650469523678975540979723730273253592527051512908885162809347249386082920489195215036523556296627004681694195929801304311371432893839938800145680227811117187250582142287554374342671743040021431339342854987934109471521959817136280259769591836062580718680374110437254971269393277704812232900528245998604510580602487618676591979176851275146193385051820258004403809750099523900134495224408110533559013813044339135254588521607219169724302483284335055248689318135066868859683876989745880093936729989033797363209762367707584370647542020631094344692438423393015369234983689484397420237659891602648652938176990501802005314985787106815736020898326283994577565968207547456962433725524627466627882971512750136890221561270246348428046411533027835398455312093797992048701329189482315009792793333252684042464508659103357647018118810867570404053988285615474175316862638349093120268410335344658093402938609918517114028975419450496027462655857648961319355010283173336107267500436238482572787423799499922884846133790267299237019154710960934047463906029404209514435076040674165675930549403638280844459910066483322460058961819610590253234699871332305888682958639537030836576650705421243381015047983796333086153781435845529681279089204677828790041919654994108164105694877566794909122000727253949887076915254267393263199622229798071600698914605708880715190874480490990989591921748707231877555165381065511454153319988200183532169053673254136664373030171851081937936461099228639114915566534044318801057878783874074398155664149459566564006188224951274198341466448041721337065290299812379496705681938068774527678851433254384076155338656535933872849467008914196475349977553301444080396400581419003718498287773130403325913332124186329305112362222202328468608786460333086615857371199842498205203136431910833821011959245792039916508040719475353858005416389142577766318564772063086770314838283407542026029708695669299595093700739089480421395395350355175958035909862121326789841806215653187301941617412369795801630701892784059185141231092008990906087502475586458714768399877184688177989924023871489199604805396941531289128471734178619148118520037753710962828996699022912036962332179812315955394318000542507726415956151061108871936770814856198699536613671939985628732544473936266190694723174765365848265679393931689336823516186674726457112422235307453489102719757258984275896633688940542524124710849611311209018142803821381771122034255281092842500869996066052796202252025930114629456059261168935996924942836469849394054188775162193835084093040374012202085353997471878761174427116626055866549006381704000040544273704200339819997130750925883154928885521512737073443279345960302483481274984065178000663120429081054648834570858955236051984661255917700242621723537470672697932526925737302790441963888779259719173055874537048054596656955503736687381260919448241250165605583498474092338112022384010739872857421735269399115519820790030995800232834016011793896441042448727524766174319812706468207359088811559345194630857269388036642725374743855383165625948496479764160040516436311582542795985801075187650283840377175507366521067505344063508248641024721142591934322009613797884893535503368259384042843987732956093983682359536328907823039455255669212619075933726773471282084910477703165440155774148008765289182048107751004946973996509676435125353396447482246155293877367758187305877800092715802017070987248499795235163263836720376426626951194535270591742751400421399318385229876823296781388866157886157690627003640100651806147252721249475521412818899891859157017862810037928072823016404656482206964292084355578977368144147534038526398586457052917283172034746136428126334970953030651482179477194162820423625617205726671573570236635499393950623117936140959958965781599594906914679135641372716748364383957475043230549284625876236983205051307881534551872479311874670838911835985349159458878911206139716881056963022251313105071656140194259983436196580303649823412338048332554067143579214870803108111598808476350460255509604173155666260832361717453433548700239477224060089718190472607225390697154108928100468465863999090697914465408775005696747953348909747973035251178543282276367163362214890732815027090504301363402183914216465753757984428578890007813094470732000268318836836745663634059841103501842796417353595825862042104373082274282929923081538471155318444771952677985907614922636460548614576927300900526909999011043318446382229751398261916251460913960127994878305070741538856470658278450985612680839835947592312602673366575726479460046664762631059137368031128330269309041738099274132175991916017477036066619254587176309088749127902287426986482530091181818480520181337100654673662392853653313172373343938295832381923370649673824993435623634246501188673038531776250518725630657041522779833069756567985425371583315642182895900238689439654556187459045156069870775061550992913335661269050212771390922864758650066017240161351053273228176824969893793931241117670773383444698992080830454212586224932775742867726946577842725648856456718920228663103085198718798126397054912245007036348182134807770916462119026579514497610924160345770878890150123052892618703396106899738093529357776976451520419581582698902890687653923025622273047713064902476225159765795485043416238573948420848197965198283435374136046372789269006638322453379376161340460531772180267620539802796707849080273162139357449803793900230234395558598898111415546115476881131595917801530202043393707124962786091353883497460037929086504929525597713339823013977000015221902560146422680312927890353387183195296301697209363722235868443495839404101293472669476154329125211240362615133983757586750611415748250299847700231989769137656298027135949553306619858651381424959453784675693651779029202667164882598258393754965718681261818495840528405677882439316070245168044303223243942050058602781302214225761945056976687191371995173864266010092874246209010759460647490011640978540369208642307228003368321742651249456586144451324097366242934232070276385109435830743898936257198945292887629434871428364323120966346216463513456377745900150233131915759621333349201853268761236299923360230457854130375557395645665370339631967231223615991463915494299221950567832226277023262247243240108914347364154109381071458865215582856048191144380417172998939208087836960683929874591743804168969130356181826830224825253580308590478327850841717695484710099371888296905897259279847378256101561410996458054668208265847029629732075931739023139450171203724675467562420195684908431002759140553404560791987552964130255739519525901073341541244228638035575767844123652061351527810746770141919027213255132427845378952694625492760832983930169265805080124296858628625308260977230611776378832330166654340514341740585775044411511961793590862856844760223595645617870728842842546519865977585569977833117762263657245085643705738562928512228517711576277483098401672884344694788383402538166126741954681065511950102476246850895475901395505163705773346212601909511237323486357392801897049415344590914289912740455314584850683200379479768408340716469412633232469154929215527834426841553958525546868708411411521366032904903867314648288051649871814817926616275743386816164847617294189208157368198769761851518157996746981391906102908194009419456205408975018272772277208178361182970905517710681281112772976461001535721838958286100929474761615658214773348476297987977021713576994173157806978903435312542962859121150058551471535626839552190287141570993339969602774941256870851490239833245253389974996918714874136310269350731982649503309723640046114786433898568105806777339766632530835629373457069475376810842197535768149569787547678371159872946066748433883543524413153731314699157004333066119654502594945744079022622434799703596923501802589695071569030758286809482279900242148713423484065153206974935659461717109179033187531420223933654060382121616809321309920647505555814595528138762627114304631381080789503954219955323006220255408403840184432750002223423722521881613818465717237153215965982244014385178248044691995769567435239963840067430789689550360318625898552751501503331954972209602333179679110949440282186839148812854952006031550184281741755563712249082707519800322237635824412035373925275502295225187399577854070365422086368047422591811926409845623038869319966978168286907398311382930918849812130019086246525096507734940769488781242939922973711378980709765020175532522891618072410900799725154020394399891495116435617515144025382412640790969085985298143931480484065120613189005200151205030129227839256842283672785131578491981722053385343945950943837607576364536360989694998368267406736705877610615597084784834271125774339701110631616562053120353811457575167541499543319248058809126042979450087975531127415060667402958157484799288139276744279288167754868131998451823955102800580738132752012083452392513390294403721162742970806312042617635002447885172909849477946006733173297853878056708687977156233560922957613321689287262372005411506765558608772454679600641205071528742567253983964913683794298349845738720219372423018503660697128232388533035746033472208718850356747744665954103701289262160112353504534508998660401419942930580022349153294292630527472281954044921524977819870847660769985843925103826568072897175828671552592556302138686971704665011402349279031236356944783526896762536409651215016821232394993142369979392776619684331290247857168919376786234993349731387015962384977466549709679198093138109342172729288658346643612486551569611049377664624080827759621741792906118293778674671617379791928379568740989623392386709970844009827636790661480026739260810692315703250425823851700617956794887112688145361294633905617861733617507239330054284349766515537117950552275978901609984544796997331447336182870551593268000512543555806819174560560415073174304767528803652111404124775232096216304104366914194770040734959090854170327469134411500591832836658184986240330342753185063096731327665859219738604279220707602190844328258448811040631764277597002781021841118183469842541349378779062196260045375337654594190824859255391543366416358334100113202695847243534699808529822922733181700640182857292941566859692861735539514909494351479211573738968158438765591328783118462127148633513357022300690030552776335432008616464552959466776898314718243631767784670965149861322398280688951149813195552984275172419808022223890983200719342931888622413514748748379692893496528952755737856268126423224815174668913020767450387161864677302249239765515175052741612671782521991191757062674108504494326108854487055139692573474300709759210146627938242010160855738552858153186712543387028374653185671193520525449277390300693632172001023961127064185770857765066132119727098431165826433415879795323356375357508932382682739128525941034770967713540611536704474140006058843302410474583151066083446187876394075295286983184712496531431568459615706555200953741525812599551140807993179252105412356898819156957102771020098312868620580473536992296730324773433192744642457452554462769911259136534950357675174268678514940156664151031172913777717766830129163390863299205958139298192844103136409991477460430131637738711247061344317978460320991574748692823761316233036432963043469780006057367843228416113143831606605480469901853943936032294360880600108548789201555042384997798427475109254694781455539793425884288934752559032028288927023518543476696942772608445191020654604807288197448834663065001863420262051964367987373085455715702259231579931260601508493299382597585008653803345883506409329506914220948539439887111711631954626115226141528728232095853297358157669259442650878870300310479309763919280472534707844736579035463842498821359545896227323824109869520319850120916278904561875347604475110773350545309956535868354159533909542619723954540636714603769624966344045369221181294079186092762008695995514443063880926165253995925138622038607958335922600675986896153576720998629799373318852572803687599992008939657150926561001157254569461458470537220615311175999220315595363211759422886388024955232099311054304530138659162544811804825011451487197146462534173421939331254154012125552782403029582339832981717552972474477616986631319178206582899437116450273211092786065598449862008604390095826262913694758865755325932627777806777484685060169235775012917061250965976981847516554079293723430055658429405340978847278357968533805013271132110013099668391074189340976975660131772716169810011504359424036277426919935132492721680801273533218043914582519360520085111961782793050316915081221057175429771586369110144108307878352498150874214475534184975634883588910426288022283632616900363335024852252803443064378572388934460568981782377937661508474987304776994534042094826121767134588692386883527057038856284061816255525228631006551865975712013941997502232658330053725356039984338952890742436180276524996429921582039997431133976930591480546162200789330350830021838161284896987860424565055971376340551266535325237037506817156631141096303026298946724488161777196055604059896971298476819135039616185017981936003299753513451532403290075339192001283081862727551990186521529150432623969915543448039971539964710276817206286731082999357321766417337147549340167302276147502497542989348457952540067930672646793236465028495109592070002797706305893388874831532203262959815959918527639762671837924937990278246087993527148517447578270022959377581567566046294866813932998522301999841947775842170086063713217804721678920627105594243491223832261256113824946276966415600403176054835277286096080885053151268297260064616886036150674909025229510222031832247153536401285447656976140374846654058530777727383380772409532897611601846044917207684610280033219221493170707814750125173613108576034690376033524232146835553926877186674244195955954248676852851410462129990831331128693790842252022959081155402745153878989656337115093587263058909628144040089685503110913587184940657017247392277605978192612064413700323486830603651622378555141193426859759281957015573896830009184479931641764075595581144862744184403955690250963117611284016676836523629520065992220120552799975361255787044561315133198775985532163404250127347612148634020238081577360121256681618036407246247059437731414408314405917097143472065688590694370987058001711259165239602039057697381116494619633747513981928560068195913195080451160555928346238260619786180192977694727434317903593204251679117429012497660395376493462990443843130198831697067824279069968031993855528753513292786911582349420711619966391645793312750619734167331694280880646888992551995866528543049245652796138045241412662646983191984012639896873494456113573321570456184434196978120272893463110116971242335620621673514440346891424918110657778191532113857739197550789803095952050677516520695028600144596660137358279243182316293917465821918492951578643029918233765124426364246030273734877145975340351243565776664709188035611860848484707614419802640766786905197112734422490416311702167459756491873396616935113562261371230317286469504357437933367360400957857321563038612890491353243050988746228179546075932772017763540258749891037820532446704591794825832014255643166566848602953419049548316415203261375749708851732230904384767944964495513618279400086630310051672115146693885931367067688203381751487988132054774049378912413303589453358431290251050694174014086444963759451284446969736695291554731996547865430203988406608311417317060193905552967467891145574034302511206195550558409952847228204352897097386447514330837073776939392039810429294059118537086714702195450381055092681481128581706452299715394519576024711998812502676447793162643595937551194873438072185771237100819828358773376871658677747183485261672982332747835426862030346764710134292688321826378253085908462097497143739022963938763482122438743788228655868767440133362425968142914743791708219874204604524606814174269783206468469786944779529571621022952213410112517371741935364264027806658174798310311732409362838297111403679208322789893287249455685279523013116956605688391417914885414027781305094290646719766954243208983976842663842380336245893290224450079426766506208573486234931066394807383998073537069092085296478622897206472918354941781645698476851911825914041104253867559486852969843303967733279589581463719061263098955663612532356769686739569407296190605682393699584876857040256829381464759972139808857996850252101533582593641068774506765704107680918716533620046708957660885961745493784873546119821491792807381245308227397686370136051316539620959898915172123341487718482018295152982305230913739547621259488484222521175857732668454317751146921422852448473183164898423538112542926134259448581533526686193939176534218258770710208715417274792145650079812775139786661606191835428503333406470727365031421707977841162506572333314900471376118939028894597425367898542985130227430595084446966113638042908613295951991679638947796490414568952447075832456544269031291646919734496126022870483673910221263175274787940728452033344030297854921363612694965925396605033432450963914119882779904677671803822595172713252303879988768648247763119107210022159461925066746961142156455868639500635483781951234152444474126920113743870044457218152908467344740622593354430649403499714396140341656387691854386592592654001268361953344883887634485935781163468407203652104337386645456725747676383389525032689959027250927962145118205782376864216466318014627951804027578322387193964782698906063403518582178545613653762302983707349719259507961834007320355305288019092383745649179514437400333297121248430299359297501639327960036237678579382285837006939195452728336552771190694902473380179291658385822808958317769199199525531884399107139231642227970909521137126201246482943835898492714149962359125602035235933166760176463874415403794785214956228349322197260782796510467827915961708352649522496451694646175548816545223537683637268897395961882283177082519817820651034337955245902298784799086828572663419419587023256010574739689112603608528611849970298797205452123802132535264716499573242266184731104884441355449981360593964586574008628649999262513117705094781326281786231227635035969886069878847490258795295873966534463760581354944059595415494880583771395478297203401177193174933184186179915739413522443025071481897555149764161586893707357883660340461548147917078669303879301179870528147867285396945953459836445081113302591106196687553561416408384951017233437721472423530819866762068278292225001763759009959231577766118949236645540677128544654939656177187806932905384161742798125070701017195957199811971460305488740356356157575390220352948269912592985713575436123262703525552854886057117433611301128562057788038235734477795271335955101000224878127657132456280103703596157307003328973040095201106460942082478685582486742156880325135177630484641125981218656815065352450802257067894579178684822442100773030151284356798324862655102095670239480199324957643198811907465842080711348515986419040553193077408176355205766633220663449492758614832279354293620500580550973241942781292532433772743903476722609486658820900397792475774097439156476066698678672212001350377443394001099979070518691799571987900022131636551498524550645365512516388310136423452517178804277252325065217885845648250071170243885544545561889681783817058958058261535335978931389704482897142203953795622736369694312270317244219060720652370651396471738083713950709896205810667870831467954883361446084453544113943956570159212448656497282570119338450873914973822971585783666527549891854406413313061095299397047945066279574980947303437358869689382461767405287070110955311996584307097541046813647396079672679245788821569454909571821291048313271001810696450216852357938024808762848294651609031341633134001712593111311431775307902474717560856948531045813054528246013913481418796614910676988007275403467988696456129008960722827563572128645091668465147092909512372358353240931680367488726113040564954993194336315793363734467533389120473603598942221158378837274758785736937985544563975919598988542276987464415213703649007837790917585041214790036491151248265521207649586586972802712631455960594832248241534358781420306459013976662488178797984756184784747957395007834819940491183932317263370285111261593878436533045347920752974742070103606521317923715731727302300940565206097522496738364678736342552751721025253543458938122262736467644942551044506152110026770577172428488915001329303067903420852370865908862244028372847907752339027121648997463869745970674825349414946721829007432218272921946983040343633987909145700207762517953030982103123047166419780924409677864412681225951144853308348751085935997316397692467034060517949178896764894352623658789365476011071905674415501351451127452716781272043521758419434782268394894814624375122002150750637985699277904509070674216778670727519495353050758664250886238084050058166183047000453872604204129999173463666551307936762469961075894563621676021688744560782885838871260642859168941459646863216547889136141866421279120506912862487834261585022533580045334628940894161448626814583797684891877622996071779191791539420154245832769008873834001327226469509999467725472477403468694061957002473758458621239475102426484098500845500421858227368717377117583923929134782787416531459530537521636007186799551020113559079507226994377149368190479184157330045300042602872201039547219241788316224453604400250127055103431294171674395197930265461336563878769768783012971262410466362629098374529574540621650485726586013139737686578809008246804308361143747719609700108676701070202004884502678858926919632444339351507614370371970209005617992401163486583563725862846205637436925611307409922609186141923582144961204689453322813836049143741622140311638438492532964188909914870145781047860787472682224609236952275389320030429420497350154857086979812458318048349901416860887650499250806887793210097064474542524210888600994738135067758993266182649781409929246694458534842048859224711165690069700304122116734301581079932843302085001024553429370454659868457881763629386089102527958803494938294566292422017693810003152806499471224489322387360888370478567532026102566477859373544686862865520051547066953479303896850245732331227751517542393978713315414108704839765772022715897182584308423886663212885965635293368129078234691509153606468730303643896579404546004483334769511447429088897154231839423146858795269669139288125694303098277302040595085293857955781859044634279255127070934151583612487851358949886079353250603216121633910334440892085409918773504625679645815977847906942821231331926049557736592690545807614851115824374517256131447360740636888834008259661424841937539844687070302368033051741421160565887063729553580662779849867530746214346469568428336998555814785831467487933172341502498894202280506565429019742136981457207414085554746043105862475233288370961886018718051873999642164111687776140858254766928738296015751070937551991567318282019598963210174667202624420938009256617409610260921666601128825422103669821299518350213950090517114224332081441687443286257384348285880794398542202854074997372811638912542228854724226671222570328229569922323314331376116300430566868311367137919444552899463481292912644953622513483309465070887963830417089648305155130879195939366084875089373669855278998243733954929331690041353905586586792347816939832371164831457770182626148230557713425197335678307836474833500620764652891478665739908207058767823346995423025976102605488908230954375498578379978735024557193073421768854839797831025122705644945875737791167080090972798542300586185352073329759605888825768557273589797889120126155263576074278607601750018506266628240307486544781456775853197010084398782598491022804797409595101662312797654368488700986807250009554517931865339219422578409759144674501301992571193533368597815413150603749274699105896169410092356512413037686202167871517634183784406522686457938230616980752411309459747324395796058790943427800774999445581106408948597574546261160039619427174611770142675469524374252274435075708011379849352263506826412310348753114048683503220459495964647482541173502988390921183596749957086484577568817398312596336490526123335255735272037843452685148636898241200183183424516311582809869121327777725432190512215471685717741339285078818809705651233495096537059848567467376819279105764645621224490898324562718474769229796091050696740607741426459079233259967822121849970991288891508293183739813376546804442131400005479165607351802049887660171560447675945751928662904377838311353457243694479813711786306400928324598654662185568585637492296869616154911357345750752334952439486577893981255581666093111116443676339010826505172935794926934628614504755845873577288640759863387865606846204024030949305495105927786411033121297808966857983124769723229233867819155453617569690209998560847431227577906131173398865881766717025851836013902450682179411320410575816441071472965672031676272071606807960165077909802183640249977584407796860090232092518347864595217019515721362336293024758572288149288396691917262040987935163585497643071992212079747445680976765112807671273781633845704752514822344171512464206243825821335660506736186976624709410064696393005157878342256476218679364693418924710204549123801170735687282539365509108845459211395421865333656203260435132925436149266328778560141153968043218248560698616978175437045404075567652865458884028859100522629135375952124459324055224534870537407540007028154348419092453155104707160694869651159431154181463364705056605859445818655419139216512547243616514894991229547563554507917566696331220938850030434021965701639193545156002166490909572492175482204011931387516338387647839618099330363242706649143693197705664901073364212218786620110087185978032675915361114999225335613467096371944252799306100044291879788648288628973059346672431969313555343209077342865339465230050096295070456974009912315930090013766810979571553457277480161489018371564117280090569601371430003915161213723989418148687540080466696400509509973707789958245106136908456168930621501477125618460278544731809515824577889574153117254559424428832061786182120805175369552474776601313086371009865987749352259517927749140173012783912276860749766231808244624150031472159841891655865014748690411365470718256586456743498708207938527480152286706114845298033237163365224854679785579591330485680426803745095881620800030803303735114841289226805879622309780121509447658568322802114173467825770562994412418216272680938690432935188265242198523684541851185577309160585402627816603718331940547872479736832222884686178298125199614519669812367950915312016043909172198922002078281764687578063191254886801630755947934970107276097309591008990684490237396056363842350503076521938407903108207092963696434919588915994345562279156676044923352115738989244706665269535537951072217645088066611214630564111999549827230854693280263071957558270544704016926262902199324468609637640351671383648819817891135304842060961349181987952626394482861918000328379897573094210734307742841741689049582900999932638872499787925845292997580799386909585304566953044669684830599286718246945993979845031025471786180732397534231346342014247433647551541643468009493878174497763873730409032763822420844332948371189170687860968818091330212049155043120507995871484688747669685597285970974629397633489675083661501070749957112707059330409118872620418109464786510818617029622004416657556274051079391967938203552894416367218566264769768543353716605060233387451762314430126504074925470700353183361035162963629635985827776115042081565090879126360830222064796260045317659024849264574790404781789355929909882279218761210936459615379883990163751305759075392386021505626752778926356319930439577005903145172988632008014705614388438292968180930587742429835375119343707354900254740670196344013982801588189663522055214722407932112465451590827313684678230280542397665545457335032345201251566874921576117664423886248194834669415041649027049803488040063124031704998994679010656063270557580997495141624570732485519939796573114204800023671832947383695633897146275543463344843041478851223860686651186674255375107041233520978472876060772801781194192953855219843376810440337143460529517236292373134401695898262649538831344414748349471423198859528273911939501626261565131629016197416948801813444111535094540589205650266706910750459873026203291419193464120820250759998833902970578737866098168800041857414847435018152012208788529758186325404912037533773697300466894700153934703490805297125372238889960305651468544040570566604575874023626597538557558803774608247816708996643260565792601741845929766722489783846728496952180354138322233875881559659093560723834537723920484129832679754728378446491647470475677045953603753278395708290994060358273442806986331668512102684996312317245322193388316077613526481987105426366530983023159880355115965035699597861837147007298557328697921887626588375331124451488379958511167305900864964450618249228380444098406766169003156127495732649662172882332469326781715086497518935498214420774919826167324600002623766275818601160446551153770942244379825370988348858264246403683269485746438165920379192526821578653674328907234252330373703065797662010505325649199222576853875032332933700285255911587216830804134504201079665590780455371810264615054803520884261607481737928211520468913436518527274138587591411869088715286484009262686242117467991715231334585598401476117415678077864685332725486912430637675141924415113842449453056911171859332458843959630241355741829636590699264295331498534790842778365679876614983943375903151593363771106736894722047607492602298650918274192608858416443664108531078458271590271871663476627327038761228441093582669175649131557961315081914612126867735410569118616851700009154162204834758905097766454534973318818287206489217188618467755019175568764719200913848976416299001333642731425094312620761906330276744958862838218534458821252143249503936473428001452672314304695165042607566160148552136957145219905879093912539811342482568491562301571369532508132013670842017733957816015525750115994888020415243401176869167869233640982338879151511897661254009168465247455927082525097066392579010746519039418612857672875634178138113225533513381104385867473176719228484139697493849535882572030358103320122133291716672432640257265928158945033231973757228272178408125408150986755919855390623321000776840355492009494102668729543958544866061962394281201195489148776133713977533846092024135552711801513430414996458578527228086980485254974175756442302352950161445848543951509978327924137792218572224790783002822263257472836900692554142225397044215018651801672061636958937756552754208184058013048904667111492906526604588055259863781283399814032058151518992315443233991243493076962445954097821022415182289172775463890142615047293779948196593935906539163199823250757299350910693553959265443394445961002952610817720888685824479266662964579410232426439310958456928059820348429243709058711465329475829233926682632110275794056754117652177533161155089950241995121646599924821289257241222155466323043223785408446604605489383433393389531688248626411919579028366449624148820484604410234624452720472470558831049424213668734362126402934115952500422589621977884232812094680990743216260971616364524537398621649210910324200225997424030939500644629497423697561142606701560694669670258890364926149466460686532501632351967833073789047699890946521347213216822091983180745428341669234961573156848184065956260293816114333847063327627186707770483788959001615198439085088021003648885196205341885285854970470962744460784767996924760260462001210817912051101666350375902309660665090925647968988158858326408652401440946089805277840974712330937180773482895099212363264474635935458108492123779092902640670783692864012281666316038458965418521568885934909978469881054839215210918573075877705389529974610629798616985900439996368008607374548647894727891663016251275685317444582399579779001164211133208320173718631896155863117525379501744944566138804914233892213201746566741494288996375256586356983300464357998139590580931169693870929248070429245872784546283963131472852781255196122055765735320166703799114615616567599235012560493669816751943672272129029447960872188575794938401041749234282663753678966817722415188480483229115648343906871615780709045000149249472035622382050498985462369243114536114124699846951329724355179022286965851239027416609823148333110050005609607646651939411129081950831321359720783271261342647213216724358236979542644957519008199849111459235733329874062550795383649718440097688067855890934386196839124582087769485915410548391709146406477021314447018995574470429767955543819501886742528026053633633652433690128112296568175721243951525452276025880828221317608284781755075617197026081754722255293080975673070666370683657394535267911736659232527635136242355796146601158220657012475639200859042815146507755070466388470526928251260033377236405195032502067481279803104217834500312290247618438058210256418132458489405910575417254832078135590215099373482790087437394932270972558864602019278563590268226464785280953543485768688831411971145168705584113204312155255772577765127365744834566884357483057128044092063669159133099951784091176338467248281666436171439649637608522198143568345573795619525798756602005565783719512279022234457208188960427922400239532649085372629738258492988452933644502312028469432104510009677913754781501987360180083706412132745125684946355423084295642446280876436852366745144796738732028066946432652907058299745579944941248165777340294231106588418975884143170163129443316447028525875909606049988125422751917343641373725559885471357940702536678512910538051852314981450355524173843179915552113803477673046798607064951088772810290104777727129671839311507725352656387742103767520749714460848986493452147649456857580424043394761725455123190343685566454842340569164562391021446621620082809405972694385925961580230640681710208350072832726161680048608879543787067568673984268901865200622426288770805412019546350469432914943189622144848986191001881850284407036338750265400000265934154281643242041402686617137706192615370682797417844429594753839266541048804571263145794699433483174936538816443548448645252866745683692830710880616114460955742439998022633875669915260932931683967891759273501632957090698945987766762537305545890598551329845868616399346655168500060086034650528813757322720014604199930174762549738469032118047698913918440784873701755862684695333546912776936307568894291141126749651665895210196349337925558038769244429797820209874681196947273451482537674307124960330206854934407777510686064223227553177821851210906019234562559415175562643893489464403740314536111678212653150813226782739981115716874327129893843443269701113139397982992401975551699588976260852042809564526778823829285819852576564519374477704196716306318079785385464281915532185119539517469468880019867100534332425323226435828626984921567702926930850300710374033794398596260231268777028267076009196624091319843001217210263265540787598841997484365569806193693879334324685962682323361547538838785773511844173010463230077229692607558380544421517904342789617364211455494472456725029167551331560286382988167566321171583241980040453302369092935475983309792341844067075517246507047748152800479451574138155521280270128151876652355366713200379684551170479424926686557272257453503451524977682366751913546376328832422496421071244783688262770683361192887314664666620323812580458151748772770851018762855976211020047129214193181973813072942188636517666918215318864801238803135724872024432923970013095214976740901817697588985482263389676844015653692277611996040155703384342573428228083084939894408082689986628055802134170226536420169291203211974442826095838911247504937905068920443257738493258543844914098484811636825404590424058990958920150842497207965803950221711759139879290673532199119349694841472489144848161460581024512192289633937187194036368978075467161658985079653896638912295632375718523657181582301542882958830459450367279869769775314655223385700799749738589183788492052366861280281265144731439323288248436696798777971688769276060849643627921870583633977175392517344339094197179759647071411064382848646258130895045394319220234716009312206161160651334044694671542284952057770363463231110614579842411527936601556168528105634354193514108318018966605733976160351907528571514351308063910144157610866120775610052571285164397646836656414770056285219327674695663338970856916311425691610002463865292278373575725614609736371037244677287085399692879576405746159122865151554619408329369509526384740831693728140477279739863378917728423630289078161807490334338368014427281959551781528558503966360945376383942969729078534149355284483392141278829499903749122442184967456502824217740378868023145848070162773913991206625203203120708014742950968731530235942330889288545482450501084603727389776537316385737737619383566473379639199402178873359810693492525449385996306196969593860945509111155498173785480991442519330815248817850874294726729342682026159255673860360424247485515774254108857356951118207032609802895612630006321977279052330168587878731701644010018998371377829704788669655889642923677880574757004355790110322618295104609257419596002839249084186854570159530140371491296432693300274092351890580649195112792622838024501550222620132419891282320487588709277820425800753671571409225520217051481649955151274769746916599205855858434365679472048275980813629577250653078453698941481712726583078350206831146965602983394179413169158226369580048249865891929303163607539948285477183123709029890407989851176960595497187530437280654923394627568926310205363972383362209934139520015447367094464031361977155958748921545228159572328044428937733460920566487192606291085494307256147421732664414003721749183878025328687232809167662525427558253416025982914442950056298374163647403056664890060058899154640325325075183586326774670565760955860703656322969287581141283874630506466740008482776082142257298420560851744422065021270546590678413972705784936398332368260637961993226596947096062389283131080390840331026648347010234596151129007203486648268997204926359929651980410908016840387488196078036129682258754551980409749462754850907819301027877805858668696682784866169197453596222852761280390545114181236918099208676586331627505041147687330298611714003335488424253382771789213668429377966736236497417575292662632433862830248976702635226637903730690353800441311681104210329441839290454091390874557237029586320621412904492779548507265048894741360426391244187048671024603701035193264292039815117414650608309022569447910947831050669567355524717224212438305008936940885947548515495110909356992894790873448873264943901142450015298884417318693235715389185103346533734113969427242703892128705209178489947538742528015000334510285900987021139167091717751783795244223975191987105990817257316850579869750294685107982661932958197496290547503372644531538149542935235619989670472291099378869673652462795630014370767748005487317765170424677124350669855511021415356395253023142838541813240265084411937012070600498211404214613368169839330540353155754399479826526126954985881824063329853585646846049008231805026911970485790056540522367936565818809582838161158199374014434027746304362938018598747881542257754902259773026852263471872900003204135624481111032995455189157828263507987259251715887301136662068054003639386643373468032275665100335738201265262100118390721407352887968526921065322779430668546301875011131513005578547015660348707299086018392062939848397742012129651346461942130916768714263395898986152837872285013276600349132803021561657412279752480949791965661658442025097059280801559406954224868615774442413090459678613151615048425531392021838921488703691257534262947666813925618061540017294221718710259284439719053977031430972030733672212352672281575450925181562121879067479318560712647485155761113035617993926960842638081081315100459450924823191369505635355994902354369240981387440360671931169301891074090131732802244757353101544896259976982437359318525158829632163651752206650362310168774532482626339247397441724749466976229468118092387881438914285755795948229100403620869465070428779169791828141980125872891749171195427611709507409287615976078432587539348721793538675857293459441260776091381261303436368262943226194550425246233104319501203138692980117142349537242937939419669290069699182225951997611565076219052506945308379509610224709645572490318181038102340047510372893127945250608971095465317101612260307746302553473273985737296023501272012080738626045367477965312765039680709875925437586404178600976592527992122267673541152771148913483392059858225255614186143198009608691034033315112101425237097890957758889091351059743612279636308799545685624449827445865675037749432195791750929696311242623158712145042207620556165824047516583427230776764112961740622459190749893570561573608036258450551435767157608280008375068188587631613578077491379811738376887801701565085899835222660782955107591852828828972944724597061757803563955760330804937764859477137455911865880831727917681153773617321095695652562600331394028390966110735143031456594771195396870722263215845864495344057268322187297729134431609344759044931143298725921766548862874555092503836518603103434260099319312948903398915719494611259451371571708328780307350873600596795215934031940497947564259278206445136366729621488638939714206597106252535665554050486465034085183940999522139702182158157178492058288417338887907884657707612612001881431928390067405767865281594730292587948553708175178152437689036894295829030682877534107246225385739221132203680387043325167803923923046169316262575763132101614500665549391218308831463644937710203779434590137316748865735119920307839043539687385796622673890325917238316789617097916961942963321682805564528465505160574329913978049718576283013887476994107411865582803885908903299823751348820311628485556947552548448961433162155092033764248256158326808358299897703657912879426269070014659269690880114132722843581774372937541296974973409523980240898061764350806048470831374037123118902131089844401539510012260493434785473462317926888613991011174663001208611953483692295992138569374185904307744980801598643314511639235767334869825027460957914759876307086785603387221971262397239214172276070543322415584052781245268836675082881394955170133712711043973722494247730101950601906006040584908445978457448709854243115757751689849167333331024947307304926123543199350043810243430695148413042618740890436160030150658026702493436538454044201774963709843455727531656256819952334348926135071307437176199057911908796151346476232997315597708376645815191005183596958260173840462315736537971358983022851023390000598984450321783134850458459760800293014566458850998155997280587616385073577376951504515686318970745948140893647615036257870007607885687564895818370783377667547101625800178539513623127861020702327021353116242326494389430193553031824534477191452016625698605257322943712555944503779590844341966057753506644915620988717459324843631288416004857472536586149456113545594845259548716036736789484974583599898072245388753326527153870543535912577823605821573005531684349520736931217077254949644705663698979584576838995769668023528313054389834291980829039225755225964631883267202124390514166980452108520899690717623354030697570555665768513804408033145175910102906302002019180863824964835447124658417453097725584616670109747020302349313670785110663749702833041940416999867756823508602157228676705850172236159827695997950102887771607313203622626142804941367672389160666857084260073948638227655251899723341054968506305674052357289563278093683602004437313757579051557017073292050467957283439441069188661033171923435871114456204550007603403345427458046296886529048884441789568849833419181770422042115915703340017932153117707379573371086959234641274886326913769821460936788901131609894559406228797348809742019413757697818612851349881073765780957242350882807198222615941289794420412433438209356776095501394689623830008969836251515467348339106877404496606559729434332900193372842099728065732760252400718287660175001236100975668337813510974840659451655931646373283282350283056547792414658136847437782498181254493469685529606773042378140054991855206188857296006319850857837310237136034051268307608223076845241878480676773875833426273842952557785095439776982752040876256656362795621091249223866472172244807950021332375840402369904919361625096976096231354857663101186945127485187577004598396791468998530516208463688861392696358036142804431583228636224028719186360027941945885975900271000720828295109721699410315419119951798508796352921918678294025719566936539301542322627859943610906853606522073975249946689504489475641587381815527587939876248971494147636573313073016158819139199978225767254500440792382937659554225125714408072640007256093404578288948145190357023055938742550525680097901905512338577177876010601861876785577686314868341318904808884032241287486388913590203379467490406084702153275607812223925205817322336417864724169927021165288258480087944938196468130316992969827914526602564138674485431308044463796764364957017862981582526168241997260555351832114656202880167088336293035957314291114570871535948398057512511252619915575938386572221524884594438495842981532993794607178710116664336570860945052866822927622082212282788731132642381497200945555506576718631264367314796676082583441656435046263765492002153238247748195716119268469249506195906029343512896319480167601538754450760966737416688566290616406840852101889989829321046134889682796803954298259321059115409099260321785150812806586086106434878058137144448260863664350287174916439638279169092056165606874831218063800506753579752865375184497720908661525525172918705242502144964155438613103069576916914054124402844729379981994165622783799463369903477813883942210161255863460471304203812382734121304878128299969827762111467317963477194148035311225364001759608447476024420704633636904923860263710553413366511517618808179187244309648611578443509449114740238192892330130432893226015921999074485196416887251838323605653117214164952944604503657630127985188095940783649119337557227785120202499042374095294071843091140299721445334431396522762098158378201864948572987605073869918135223330621934508732988529233874151439692883452309906808315850876018549057868490038875030548361028137371794734799852993220370149712606562691716940870958541297151388098515918811439486427747557046593796917138170773243235144095927444294259134468890595766255529929275269460859153786901142690009752641279458509127882999069035603295914772367546885747559489648559742330714838245681121861838090283901061743316287183115092357765002351427559398504268566795313540608602715475692133904397361032009271947172044677824309427688979378345400073593574773431650211823696917293228567210064387453922205993808305862701208240385375262202649022429973563000524700681047741453159985652726394198039221205571515647791663730819436539604871367175320146149983611276307655197682222749782115293115872411771461178393058491221862193235255249606790248904100207794987258317364386730044852244338270542254307358594134999769396713265483069254740720854364680317985328537734864433573789088742539983194237276260702533427440609284408019205119365527005999201046531550655758886603877992948095381994652054488800043340332575504633756010125414988732814341580363474532813527399142971290562185295286245871964187022961437552345216920415563347544706787682794115509321964371912401268999066734568847581746600015061209279851403984872765964057236975384322001862569787053023053666614405551336533313303142595058010149441758580496838400126532961697121434145703991681269104203312161362488314894567157754500342931447984098140889980563810769580623564728345608124660231560518928968248484268470664518100354198526069227261413892148181938686542825230153893932370148341686568541733224475259184206821090553676419429556264174254047542130475615354004545072797462187460470838519601539574209253424078510281545620626561536528984875877512524784101413269826756329097381421340126706872883364784051885082483511869186804040500462320741924033033524303169750023229006649968703308333411633343430618642887856222009009920830409703433190131335093043145851693941339808030818036836150324768608204195453394509799227231994697960102080993969166997632469100735130727503313321368906130141879172820998985614410568257862950801063645029275637733969077438629783644479788671247135517753101653988253706090843814867829339268644969151523427442085618677573128831537912693500594235798905616363874634252923001482911935928435406476001832172629097553100381463137418029427409558626608742924547301608241093395538286541188302706236719588006274098845188756141451595745051267813027810687417426755785256701400310672906399904084997966972450936786447565073751161887379762419187981161877981741815340703948730396820371421777570213737530720715979167677139714940143671794852442568934065615041181215961607068995773376286773840349951543142288464865796002829319615302690643686953284565628275544879239795918348327601258914063285703706512420754239874098659842095546222187903365588298688311406907809472228435629297585854960836306447130106923770636454191235603877225188257458105317494761545052667360722417871490826997262891860913021837358588308013439193824207823114510281463795024661337611198110247824865112513497755980813861154511042060014871177024757629380289674919170008919283970184128396481361398140563729975703242296062151158594585201526134938721572147604894570136963444925429551832001717267765726538920609514907628451911097017102468771403769255506963354737724894228606350064558404512788282187122534582677022949520145810560872622747688965713689634932054462203119734849995928152088562990077329495873655896942938087017299304386814166958552801512894327412218178529372767874832831192885747331639675696292349652741756948011014109467261049061948507714173374611441015878057135903994085333555148895646626223372716743097518818066579434641661035859389282853721152378341161408662051024878361890899537526489961491206988024537250154679267672438150132645300094719905769842480494666378228712459923592179099800562854031740394056305847404048395486402355904767229033274778342151811341334402972654911113124508739542388974089092388290986784218892464493165928458418666202151130400389717520027981725815242029711978396803655194857451667465224879409770552339699323044894109391774323467409152667119592896303565287884693866788377935993505736234812748826334679643391112835000975589355790136104617541337250591160137915811925013751881278676670006252995367311417060284924182824871251585415016007907128811037722385412709753302900406952513129949217862021533611052018086359093468692185921440928576093780071448525325408683061732930681145070286030134105892041785203674315239370609496848631571902571778986905839194541184818394298661081780425044630460359789754786039829447211204773038031219151603281389123414012852105673830873238915284656301533912561229641116638917523519432139156427592233854044292698506497446936492674706026322052780971997577836416046382559162872068352304373678319798922093478031367812245615307806541614595453429916921244930003442589756768891192918119170172279531139759329779180265610815414691478587814496589188563034884090918207184779955012088698843387478223860108244229046911271462551650138615852955497509945204586612428391130981147306478355207398295302256134552725357388067926011307381426465900131420054760547073357551868335779651939432072251123460571653729603884692494488224776550052894026788632073684126755158609033401149212928668199691495320851773775809415100241872877859574820571220380136789568144126801919909986685090003776528348166055752698379939794634412166869152111447761121256934630870909463625294368249194395137030696415456401218330981010188696538148177908531214033805983146752872023730381011104653603194984513617073479914932899704509547670337908590442522533058070044236184744219810237647823981544631552791281936269339029683974276650142667025382220080659462825632050490351812248198264576636982772950735111333568495836466724160916492527044536656735726554146296284189603565863657277957543054284986486444008889478854926055806996016902092552457706897765127989090835624664140427964558819457378793835590913164426738265106094515790636326599199693826349566523289420369169842789174110427781764812051089555752960675599052128055089929501766969204140307729467453143987993923722205729279654644057999913126490913265201043553728326024945328186854915580137227720490073185643091884506816506753824452108478289885165055611478756160192189505158318304366838334945672212689647787306941661647714847474627343146324286618778533239403427743785033070834832033552096031170826123501673516851120444111082872962045439924462880103991206686810674366528706866526975855237755268772994112183116277897534635462095863358383931756855543489075657237806190855661210696571458321994842228275523723621333972389626502794809892197208162204001810574872459688388819699136007162031505036860048320267508319481567757846970053765538481225242241913376512109076329076112268201958525796239278296827816233576255426161611938686039326314662035414770561338438648857269863934423401410535162799368186941469525514007016211726294048940256372189519317058225331019813388816864643051377583636011521643246985105000675582484732454410396632997709574043664980614437288655857931676459527431971258179257490975864137079736182470545921825578478225980944825950880425962603133876115267608265658969446138160422313635073254843983979390511423957939706552474523425038520323538035744009619363711890599763869716186152463132071151820157170916967447255722069063433822323695651566741688183448457192571727603064611703044928512390777186175253260614448801908399699673052511245794518385626859294088577092257628956649751461258083347500314838588967098429304579887474253951895664195845592542926143563482583639611637388793388339166362777958506326008065256063850908052277037391780884265926942756938216021692352101558100433738882504404533979083136507797653846903570758794082390451297837879269415358596453869407288968473111856277622174470358275799288010651867494891674426649193864303255174281820319591459823059953666746629362816951811355480180100355220276055650489194944136379021744419268174495631821150010205526118856637191760843116892951162660566439204478667928996950091816457184385046573584984472675376873829726703729283960736317633868222438646322611691834039914685478925605130422086204098654642656281805553507558489002330277704768538504996513910457459196707276131942596980822960631461614174611957054353224907007254507774587210414521121569510878397255389638580791165567491160226801080332349007999189613688878507395940468407647027058892457045588586892794105974843468272432351356142346374749762456250095834433464460599533853960542537467802206601569070694925502837935538476471005903575019648546717853616032556864442561978794917678630597511749767985270555816195884157092414687681772019015586995662942607590300369257367809839445440617822172449972859271311962426893202054413449490714867673682886969917673956866449897017654630825641392392948403587369353851876230401269359366272876666322089692946633979730200492496998519548008978369198621185647794310465398280382891733576962541760546796664908975683815641923010640734088617142078391540113960164475118692839152257609122400537285776483717017625709979519155256777292064327121908588725470044650718018592038188407045483399640938487607315220008634369725998472369427371915494664793030356507645640658908238219246989809992429622831626300910445524363401628063825525708749298171912581553484150168365570801828252900818211814500200323802778115756789748665093822679213864203842274040742008830243436228987840203576687640453181686126647652929271965154175056795428309822358178160053819023778549374499703104674649248182633870075783698388808566427152215650738595604896113788115383967293126061825546702188655710381380446892373618864151453765861130730503945689556193927302099789316250053005603236107022414911073934757690869867805308544625034077057425740489548433951321284864385994821536430169916420319145324148409255440840344287674399859218374951215265192064415416469447611167827447235369335550160099544625316494569191313753433030792828247867662314075232596359113511156474072382177169990000293154981218508012967579803078194558112204567035937553204813455585676615479584292208051700361081616387115691706754391073732172771189849439557307907099330801796322877156576126957560168089857684885345354827522686700788327035997956587435781014815964336917957390414905685783376430927416104354309087655242940770345465071532379169436168081029573447269127047656214108519316597449552292721048305945552360367815229250036866833388401662343612120867327736212998301760227369066371364695980361773679556797849278303915323167781420069238824600801869520297183616232653208200103759571598084560088556203212328930807708275491050833292017263922552176542357720875447333237194714448871486330505753866386699424534973614089695715972706140281099243069667740147503113333500684373890941256856982738136819413751488105514962683429009216747513294726666113146350746687578745101462795528793986815481969426304775596563841661915868795388709240366876303862601431844646461307031865701301564642702791273364096113047382125756466007701986923014896691281007453247197551168128783992634176972991167817058450637738115947942038523049451105931431292783535789156161618651186234573220896230050929579530023451114695453966044376680023016324973525904370719367466775802351483479103490058488755433778314959322620889927879741098902566217041937743831997360637931075933403712450797025619144638439310709342442636350392745858270742996377059725307287212496439843414959738420897740259147776239086580217051020390199153746418218408655898112376799817688611577988181415590185834010322732213762913726556619390386000353744978838363225716215380646801533550683398223003890209427711459566922507682267003444809647283576360548204456905300625046703806248624686449401891332983326311625832684169213426442680493473926805944447404836415329224332714614736525352721900640741333209489553237274409957269003281469649224709703778392204557221321433163980198774091453127740395156910872896814373668672860571704103977797975835455947689249572849058731666886754604346175566706234699055466916797075377144589118968612436266880887255700190032346465807061467102420986589078568936036295773320071742670157330184601971613412590486429313770650875534512691793517162776589471270218486684960434464377342015091035979726772399870125509855474994267887010284022707695422115218521962402543022262776167285761741709246276755186765144085627591818806793218559161142891311061380734802800525670021033248707622608952435283689274851372402425649935366915693284315867996052829176359427323566325576040064981426994911992939038838816587788240048701151466888687494480741337625239582574968779500378557654719841401449734685121615510105084314590965578431392857547238599732591914836122419204628791038124101176868242555296765709600947483644327148751498697513617993840787868063006639003046581252762131123288838346787415090690528137687046776622803324170601062221832967947162586568227325340814851213183192242022289133733697099941593711111462842798311776500187847877044132482656260633678676077044817796096571648402010056635339167734673674895027008955412326936980236277854236005114879356530424596651139654098738547339943499147936564350679866091542759113122795411339013941374455403531423237465327123284863215290004323635240931473585566411252647330715923108280840269354856028326704385909815453808219019342676907726890521053303491750348147758321527055248391025017530060911345608098389958358862951609930703706381050354521453313218303455277137586341010071397613688420402053893191580561311864846437412169863215680996084411243361832838538106833832456479887083681442773974340620806949796194443492163952718599678364556231230097947908575161483058963884162048707311449428366009263885278468108112666174149574970903943695370421195032505028189414502877956703967730493146513230109247151900958581149732661642324259822169985208621700277889043887226787983673226769255664096808169750372205540700819819660251288220583234099678328818923535480263552526011547161986139764757650176355531889926583930418343008991427078583719801802296188129928961458133224378391578034655544388629951292037803584535626899180202195924891740465000286444454663479745361313026629836184442849636933979325105812032194410899782487156010634823513692622489315098804852674915189956917802787662469824882824869777586964980044478252838493796424491432498709323316244633881716234022409786603587441980173564100507865484277466956442240898421926804272937573919787913564183820584146640184900876391576244489493060445253034393129400254956141052069017272386260760966685734416526050443540773296364190607160764838167925069125230048659743703512018214640407407727630156060822437132962052802574336835788371045107512406553576462170397503890579919724431999700386587600301730216694090491033758746460668967311321645877544303560191678532733119234470339401594387162349494971376813177117338366860343668556828306213208734904971734920904101305592556049203616572255945638959437092660415299684868308839010299336982232132503257997157524489538705040276667793695063882026648101273940731843921554060145021653450765107954770791578707537908987797837776168077276128576885727818657639557219758816959215440360700140568853989936777162211785070076736398965406325352846687546369941564773286506204731288051931509608208392233740761377319200493835810440060339934748212515107147590746070318603354917155455234536627815277120086276973586901309041342806108900843046644767307072897346665525564536761630492894167937522943907072156255056084047038237938461092984272783063252806246912638450957902802016461558989647331092176174535665818753238962359469357689096202163979156134978435357237860583015097345296064128816599564309520848528820774473995385277362818979833953636820327558356207632775496326981769512417854493317068951847384163215169568289786531070129375913716012808552136717490306725066104412885872158284144452514848542471874349121414594647373823650424695320279652588233259728185583364197354136974103753496634524043756363882220322290014385865630936903249445073744946625481013332091952354665368455297649469540130882934380093713324675797349825302031639584041762746505712148546980336361146006803428644736861882704625893209175727300296435724928800616812592085220963703838825006286900668844913268026400211938831800252227124454163942280284221013123671156570208701651008666242332304823583177298673289292478270312669191449678800127203912824412478005371388366118347149389336977152824652547118321110971189760738853732226845549650796254437214232028644620875124166777504269449176832857736240151219408935664247139694298012070472193228905063413495382470875053623169097080551140398576861108438143069850163606516957137973669910437418676374162555981160726040041513858417638291157158524773576102452202822751538508888618718425482706100097431477449968657546902926807557062066263428985268862144117709248149901815312654338337035956567134555240766156300602542729088301661101988657466288046120095319492459192383273148350423131599496428520763413987816584869544205197796786599652749839083572205608027372063556048985877283612860292909131820790124694279148904896562780487787471654859859892740774698936336658073994811901695234751351162837600355833053957810172044943421960327142686595065961228930542606483137908173018778310111934788812051149096239976795394118638263573840453137971273184299952770067144445011728023020565973803870164995814545996249957475051960934456180877695700849022895393325648387711020254482365992585911602099188850452399905740825610830706790950080648803079556523186674045367189777966879807039764316142197232308072544768977249475143932987260864616007910468959227342738697742093908687970112460416290235174930619073906371916376416064603396748978004639916444004556303271954426407991423842043004956162722346350970915474310029424374496689571519186206021744692360467697426204604216938985542000212646620630397558223759320528529880872266235938592800338414826903456216472634353461718801319881295226969789489952459664301707301627513985409850139343173059547026350676265683698463949340127606807638696115519971957481987671386629841102792237123036987080214313165591168441628294813479550923935406533150911130372775514226564374240378597990290592664040039346881228592255472015800510197137233701647278073135845903087899775905414819238996897702957762285903958801670252180740722122022485343630992039673355283704371540813857581713260115359088059381208214557745340127307288841793376397167104623453471156427215809858375763769842893034300273507782338190091090220131326497677609468832599970734135177379278613535504772876748327577383971978757348014251932880380976884369022768786102098586679508143169786856846256467843934228943001371739470893325086947514769016476668498140245043853896459894997858086369191491431438896392906015705584069947274431311103401421134501522660225235496844181621149521875942559821419487705846294111370892326873067993513847433701406017860185615327921353543335448921982346771033973486491322407533560743442274663150013613824007757510100151655048867689968944652362262028677734386310713730924977457994524243706756533367885239596608609260778633046515976829966340070725734547768687314396293465268279434128404520806949065307186121341186702136071083917476613168504798892117074211096446955414368098627401351167537806474634043461624369029786015574859714869484755764410900672442776872452476836924888508614359964344920602358234032724610786293587272815853102519737107453352302866239107395446465077993359572050749943419219896403164259980319735152118157885255805745300253527308212230253976181352226603197409824043167611188894880455205958623530505045756268121746721716951488717605954446701932113465367773712383805424482906048505650552207447443175562909559038204232464563945962992220787877133217086931670769205251651525567393649522972176656997071675734936986583140504064438285161823378098382551063169768850943283993531801044177561244079884751864760003892896215923577498960252054334347736094254090239848091774294526374604877376904679086619198164555722281479484909709488488776760981919794359249274272675302026881502061400192689430312649783364205336126876133281641591357383528187887837828045893684369992600757575562742847173915681248072117235389419243811045061696642515510190234210706775069366039184494917063743028207558695279076125280537571735577974290234113757941035008943937372536844031709307629998256323383594672897739531751255782023845166398073866812845869372778505384172700850100194203358860554086130426344701394994229038876653152426743757368878393995821369883703782634162592216284887294884813568449447660617384623333543658000452367767377615846478642918076626571268209038634762437622480778039955812975093462051584946219192888406695487844029116306824608824873227636229797376367690325046343891990071190756006610433147430387491644985831838636402466418260804514140579130372039102632956402281134010046264886780170982974299483431818699630519560589571408687449744514586153844760347387924413585277442374729564956516939585666929356319602907260661487552010506322981413418221080279998184578860714545095664317044878524750738884281451598360031810658394148681400870116151577687414831428801107945620525887901135037276165611530049113048967293190258685727302984371733473869170382886408073801727325434850788684714514811714232944664171395015865354259972714934529843290153526675153125201094329623099213193747814584595409496136425269547868729230079666107701898154951055950718458649409937686501239441199244912238905225866524663255750070199976500629868213997184571374443854946521583918911296188720579497811036906561835057542516587266577794115545478660864800186686479324308252204258656651578361477413242761111512339738479987712156293153382676747056703470087307504914295084764734745847461315094876533195533794080242168437757139749883531183493540523338005408515972485238572409662925864674880193935300379808701947443613356827345947569514501367877431791683941235062644638306944647157906389130970100063573346685894597770799523408539261738488146961779367319467835946005886617942081796880174926017057536395766848780359364865046720900170131496362413150734167494165276663997129874683478809432477817398589659255922462947391709399035646355696850760168922226602612857877351191285856805626801845267664255677612147653638108452927684945984860480808818013167670919425721093670123455081630243014420209931199703859140116238165951807426427917106960985837295522562126799843221752565018187289383200068909032579331407968515491124290633120712470202303087240491569119638447087330570637073880165897142748548851393806365700624628153205942221576639118022661467786155187413041796117503169090809653612442881581327896241352455729749708357002041706271749801790352653995990023891550022930673871126018823815384764815854495758676935739048347884728161698759947944322653032387747866059067264083833791172969265954127693798455769637269425846960702259264869652597171135339098352787108709579473193748503945059938522413061355963104656817093835671686807317459232167911141494790917199462312005474950315799579254468624975384015452463972580471169933940211442261083630338347676304173432603297133132766216557523922236635051406825519389156144966771266059340535508262522924802681394444498596925743750358515472716730025543371136250150279145672754844117297045365518529577459242833677506512480115511085990966599642163774103486095186918600404202977274567881825048066452905444372358057368665157373731167328085528579714366518800825680265791276881514765724849858706235945903198293588660902862056917287644596248831480876237820905033762628747985199081526311221517810289160586620093480236991916511306071890984837314511318750461561377007943409364069833389782361341282831976692222545600382084548818201950310092859818664404428469814620228281289661663148835997537103985753595674666487407515993171078444997585801955963695988813248796708419050894393554246095020590653928674105452234244952151615990108992689444501025068292408023370370331520723284768459453604323443926794193907890500420097720376079260771489400286611884658565747285056016241345126150930518042605914105525390454017599613310150801193656346781497818783976047579592917414045834628950957506558859403176365131743284751526574895457674744280078339191696516965888458804713893904756799222054420591076010820003331349993191737061078903577271419115483288173982196164058330102915568010688931000116974699528473014618063347239393854497393221500610890509165717208197074077802818094517103038797172923453714620474626888662037072037495494130261320934242745326692502616052711924982317245103601437635534990567739303788984560974839121216825578478569205750080025803097568408960792846432503777440489839491398083927034048284352574714211532950373336075183543863055765598053992524479956680117138541292861967644033513563056869013096291145779525140598205283529204226395742582123035276690833982699941932179066044982659815756990163039049439992410171910146192561419035983979577810268761496214985728430565177182395900414520170967466577084548504253347322550258533064844198790373293028519724462179066662219603849197105234420303112169575408814386107971061288828439438856568582658415301060460534852417148256247677991241387037814124006528374395661657901811537675599541921696822054983386631445031943397060789707840857968183654369561653825616836290707680133201164393110440871545270540288351609069268474944557922461059653104152311987984870876202783071967594219229876056800080511982480464516921511144525590368114304214320779955635241665826393697302741522035442062073274708548004936945355667652870928150049626047263755150935357364338856185135008647683094387348932259555874092500709589112469957007557126101489294643879546944190108294308753141899364213016902419373974243195978174394363527259378023327473723556178293699769111856947370042529696319036851657883078775256615263193443624446410954112339261230218698335014126041474700133240798257174989956169230313502666848960413404628671851885505522660982579913739738669894255132189430338618575353023504504291194083265863539398047952266886150058196470528007937407983109963096542938794030222375445572695114706501361123188789614745768319001432450463624290437341605810407321745772629378374170410768164517777251025911826064875255390703371090542877693067755494997885151719477796840069272957831075292070475911215523696406892478406325496488711056621426156998082786508361997007797333778547435199824167466768743948625688849549517978440508531001112708843162456556504348382786898453033137108191926084110537047845793512152284177634974682337971993873151186367240590775457478639107333253827862060876311565941038719304787420351062560910109778651057520043398730113112605075359817774981814888484228516298581946022188063195426619073543451904735075425339861705152513453004130820052369171255002371365577449796751312444384282048458601316042350512725994475370277101467988877079645248800669409747097550730561870241411898749249697658135736915350327670683484417329395832738375421750150851895985472250474291115407774141673040451825721911350433868469982389274188804074126901151143998555150695530198209840526204230454210160893310611960689583432112874577932743760869176338470448763486701810354514062727250023013395767019758978655234216740599180516944987749035497804546116431601113839467580862866502442134001908552807078000862124531671525489314189928407977941498197647767059693540529528923862212503683517990325201244243705262299871935500954254564548274345763349424643146799022348783245255324087553484377419981124960824729546896439490798339598430042163317896838538419750188877646809678680543160294830175071104082013965568323499740841854567132226334712594388133322764937485055008828403435304097483146924598519683288347890219715709058939793345962546328183727008061509032062969099034512993978138267851250167265877118340520729150644842127126923887936903159709686003794974078196021689064464600509220322967694781110813799542375681892606688076126059633855506924242157771509640395618296347828381941639823807523719252277704565169694437391608815438042405683623602116966782453236852415497448292057813848437739369544639267336182886436498058747330328325156139081165002968958421839632812238464793030981317152469377805274440210173103464668529059846835884556596174851610550245340765290036648222261630046837104449742366232259916278470240117198562225136547963746740061971258786581966356707263082378244858158981809746068439199184974540330164713275984474464115736982373704342572802645776899006763703097991702732082137501606492199487239041664030948624243882005374089936008830760933405864464500657248514530424097886818082913731124353017388217495645367436531960962292956331788895345232769207913213415877691878845497742654808355141675883301959252411663769553813113173754130824098131627807810141544361415911914131036268942732730200428435549666957748634519829363854307810038999681967261958846662084215877960804405003165364195454649843540281366220114158529112078211376936210669280730398457213251300100962365095306680798685394335697612943431413365857229500691353748320855127831794196001692056514737903505839905700140377430256490940267282026213790791316428636480747916684838149642543117140502264038849916376325890859024410946965272015391566818758110258188078049454140666932342077928855659836058254139296227604460196039221323677211350564137588736119851547806871429408106943615391963935880033154087032488740476632505232271424039081727632461327514656141409496060462236140957673473694557868339012655417501821549153914816907135843149422435904843394641612667648579967018468738692468311643535146599397268470498175568769908690794864966714137325533257036556030506017415085236309522845956434581138788245227462096997646329483592595779942062075748621743368210827933028764738786418762041087095819311837962900106684947657104075969716061643586154268667314514458803303120333858983173556359352107423931620467265081639664394361684483625561790111847426448536364793802900562142004990007600049268129815748687958779670532318025305004134683233525685036470591741741747731916972858251647649775165767827137881226661907060952097154093066814706497237857431312755180266024742937336975258882512908456180488730004247124744638835369696685696808015270478581561489390078048472278796923193701323976478314139970375257953523306322150568559101772493035660211286115911779896527593060395017945192448729266862453023635117547524363179107296921233778943856227533527730027713854533968886082434133697162495194013901621531689853614261501269519341377857057443731330619807575585303653784251832109801799999359974842511676499868857612731522843597816483509274931340741469466753578631904560140962136486657682012768145536057571336597835026169192159609831541126369035489620941251976158745919394321892604819510138698637193322290910709609922332554958623167253057760082848553086019611573336419052813600514215371097968632797550241208777390175148122120896591359632762161692381738076639095006723455921550516015112725050450522210384502676465971677705350677775106191127922293581756470524777423475492482221324151234501091441094285051099327617568896822202442365268883430412945256428981763104661470540759650122611896985340653694292853317572434595977208141025993823807038185977194415084609636391699092149036439860770690565616023067547693513615583721401646478650157041790127496756509547479098915140929576472343128444301018933677829310081157051147944464387064358523414078262930501970885167499407866607608393989427464521710217337029827072942454534603611619994751138473897368746747003119734662061237675827013357646672538121463586454588552490829376313412404379467611315961004404588646397495246008921417546793452907401512856316475687091360420678028019832857720593078509935729435551374307846822605144206623584573019432505793403952922527580230357324558546326136180664058066426773500793754914252424709208081340881854727607133396706504060751605639158490270408301632958675947620169990632438876057280055410726106554263748059594425644399394859267697518276145632225765162710219653514739970441312904264893112347033981479710169156561990796591569198371999009347186723589238399142662203810568917754281639443786851856345884169214285539827445065078331939550825004556940979476188084521070451808575011857810659214955540641580871167212653851156149081744771111473902942563428328588759063659775321273738806869393330200963226269703573353986447185660717378776514538891222320660397282162303752578109457865928004707103663971363504178154504288707896315336290454273070914722644272836979685644928616433830219281468796013240257109630041727747514233981820685028078105004950029345557588465478899267923143644925696201568925839700349832878605170959007819744662630022875558790076410031131935299097030230738013312416283632174593517954324748348723158413632474247236857454698896851129782803588699760340845992727912510565012949177713741955704630820969616330837258050774012839401606236894940605233089848443107662781931859481223500545697272107768848038954174879109361467393627687701627453528730724373067193556712760863903185031322747821454386837828757889937865385865940063407345578157324113853023675518247388496467097918438460583823170421657184060714759394218895617995741266368018352089005008013981026640319168261475609993210421712195631628165917041183240921865717953729793746468475401733095842675505711070015647267710081301076124855596077984814047411714930117758442305060930692021862098776978844407608682269066716763430412777563833867742415516408519585277007893962340637008832777516127264959863198213289974272695039277086525516892224572655660233830224738065831273041423847502847419265712706956959058302485516588555897193329205957826928267887349555047750775710018372449461994502760446721817001862342708752289319333393943531984634103799050539595657066013601151300395225404956111692730913739296898036329221396081729066768073565328801225407581273079048722694437450530969822834094231684038173166472386032267992274454015943159760443381966119608932521923252813974621118185439037943410083824696358181231052720018744890700152132725022084794484192725496305811030089084230296675941434532883138332593994424694530346068647089863318088638610376367745221216267750013481501788279029751743350569073222549325575981036598051413148797000792755293776809532596516924283038113078850503332844922735013572259429772553124684358082414233583456553893561219284710012810201613714941835110077026665386150351724866084490758175352797598127196379658494455871788235602469127752197950897626274412950205535648977472414652736876417164579003706767296765624235749813531212401167408807485317031726089965083084316274841161428669110246856287491897090400763643082645686916242877051722247856988954874255875800580475243915394327648491248449634122786348583248308115633262876132353225358858585883807320629897820942895902006528530641992885298003292954733498789898174644623016635351736030703068410061825024874755840790868872928154581528203188916052165579882648811804135620026892433944154016890735806838733205770490572710574462577864949134857870366152887374652245401949305513187983407516096042301520947003876954775265118444047814794128788918026184044974035918566211112569900515209776495384596426914026330348657382470869381341848778177737388955371490353708871920053833404074072002808492675947281605646452726266455339641869872446428448992799788601243886098655974499754082874137270443760891461569669542947135352329867329350759276685555854159615321460616867429847456767236824044129991490853219819177163064961104484139645896499602223865893077958194156559960847588009963638775292395699222399928575900139983201793453938223127562862213089408877503878775709820610736515461643497329773943776126658112222636045347324973506031337108871738768327141520114941787146095342835440088955985816940435574733705287890723525341245717458643357442396003397827604686711500719392931450081221100838080848512231798193632177603669801430848702709724403177463863093098596374159892787679298821620149167950109453813811655826928766374305096582877509888857769884027784776050458291065541245760890705112113598604700205357481279471122886112243069443017747816344605514308225346827362261115521876912871039654225469153971884564103597776688599367864841644467723717381408108497905913076236698399465311181915408753493046036475880222209162359629203339587780854598820419742586062018575387608810439928938098040005459613783866261742938963657601303851767491936688042426585864872557285025800268479379915177750055610446214741742438123433338027033625451450109330209144323286958386939544323171271260524538153751923700364455073100692290725089606769439445452482962667952902069699808164309200323738418193836068930879250848479410412098078962586293674259634211718978176642349093289828065699896967862839514304812495742858290624455599955939738354267126580511195250775724061649562715645749659798143410886022143005522796170068128423585601791468539600833597053330397527723655746124579205920008904340956705120551359720122007945308797983404143826483232869697224538301624012055642998794066038866378114522328301272947129299795940261379759052028314720627109892010930801203543717039148101641230176347488327488079154399703570156789364274476898572425565000182730501034954256429230602033336064344881145583198111271546387441621562308620640668425556694791299238428289370816686985932062760924528352103521713991640569867665134738547270985795172402766976669877444157458400408760830562190099029488073300181855538223689726070432117001663693449626257595512332442940528467611099908970769843587612162720602098901564504059641942910342513022803742836982278866794403813630311835706943323445586587003343749006116204688686778030727064041168367330413756726842291601169556577139611684389780354919349386816072931386097813947808230795773347087099248526774785050277051852783710421241285911134389459919786096986860601849237267371680944458052969860262941954337892640382937561191402545489689699742303798403170824095585033189374163981522045127347010857348667728956625013050424351217498297105807069187180117903554575904423377722229361381551954823748806287210257115583666213484995021610449753427358699328965325746419584461155470951393101855116298542310946963819271929107683459730708598282785757664781758950720892297826027429788505501431743593758479423182971443298541446302736338079996317961906682172916278982596553116413722207618204018448438869565250656070109509567555664944677149468253363162592132925351860197482772016720449952352567597716984346471637744732568791486660228193814282439850836932269207663737345821540596228952707640550836824108246252051960437347947318492665825038342659350662493126924831700035183520875708398250218203542712270620256774628910662707989749358624561616787776250774499072902644148513965610952595967794404864867090807235850602218224776964431027768701257302517568716008582709703813181259759016414006021441208009022231051981645637806425285712698869863016335929087104715886767139517151762560528855772330743966366319264037185586072753759062846147271674912762600630721092761794250268507474303497642618539351164385266750541121129360212817802391617476215567487985386102955925083730548838038139952193519166803695006080282832406898497314259146156374869907231276613125228434714361303018104495076290033846175670592398137220793120390989884912342870490744890707193036990295230210475389386170432617952713967018570305838323605329780947369775106197119156417642086817423949562191499348799987545772620860567802461400951019419559420979564401179200856652161052689089217589904923709969608846471419807144624537221181586060494864392387684605444172466739128595831767533764483477229068604531196862506793585360434388495945669327149425841916315999904203085569699224594240760749605401316455458228327821577996218860537366851133894513241616767879062462241779569555319586123187181587441694563147219130203564810041248247592354656375807401595929122875397506212348088362869722496800144274918028325456415850074134475667351755473951115024594635349133060721683778700292549977205675076401016302838143120210125424882602224108240141983708956326058214501060403811292092662274586036837617173367336537508030118544954871706814822920532931393588412765509366657500484277636012086017952085749088524887695838236224900837611215933920433061234734035491334291090547745138224737883844033146496792671747049980942944428458988819838701075575969402360573099832483857509565636482049621228269587460783842535673261017939956083583777511894276901186383994800789617098449568277256926000770536517192917410805924558110295668281425977041033973388968586912650913984728244728274033645319079021143280876046757898195118244469730514505363716944441416569501570136030203872723203873957568930217954649016749377560546587269359052502682620803695464798476462235100544331283904285382335428848714663307550356866484183658545608904210637150934316496860920092380715886043914805209544221771767443900893689414138767477447984574124012369818012415920531226602049586389902305547349234646128190658254118225787373173834377212661715157498192862698244802491500048972706745236071324771720005191088519717025765293560683910051852127815323912142728425827918395609143095523412502805515425054774723858051504802841058651117698725786410921475993498294324607917298734183766081591901107582125813052125920690961853260997914297970981903728869231276891540013597990798250568850640498922432461783377998486860892865521608990724745116210274234190348106275607264469581281312763049572360768120629627110344181968201730422518944097959465877387619636213619438132060280011724251817052359095994468477284156843850125727401567719809558283264287236557221640328064020009245432175750536000665206447464931128869431109853800325293958070858440254080750787440144519848971795520575000459976113168241160145305167974008475145472445118952664091943194191578252633494151451192132647854101043955981098989466768102313566055462145365417306251880005263342001445231216303474706957485569506400404792949188455033629685254681369302594130244910563403277380191029718371818916760198093951972526980909790463854376547413780616799946722497553634486835000614663816736309774743816748761257897414390839611545614095290948930132636335235565852437036951585289718694343427681915454660070844098849152409981788143666809633925945345411265094217816427237873448942756369373054739216033111086720638946049470652159270430996822532133776540646926945941158590234082521762352492831840180761818603292877722315665312749075987636728874017597294028527468771394418454970107282750699403974091176603618924680405500364650165565734789447134454881319362688677186747811019619395222172652583973316568616434707883396523411112038162416864289787832501284890690422900463469510848898352345182528645222860264311438602082635518276668120589032982379622857847309824755727132818652420738162433068077756114225288071931792462010435890720157035761158729894914480007022003686609720274554652494955229876338591105546035074855254240607876690026736985690716501118055535219220257837684702458875241603540635055987385052370157619126045645567294190723509584535018633992928767376097414684942978408395639348854626883089626263951901479676784230043887589858878758472180892272232387351489947147430569072911153868411869020986542577868379500239983944013770742931221185227203444394822904590116137970694731576674423897213480414482438443436771497206915602697043928985486216071400437721327169914859620685717646735491389653494811735616364539595899415987073300815531839089081961089778566691367766945154334683994576678925740984414856111087741787218096325158720777186635844673948586719280280394140764404345278727654194762596092911933257103015803450875945527207449139866235256744820394508253769706118890051471184415275035174145064698479780089933452535156784426903177441376483873349583002183130163558740567196183154920933736480163735136237823713967971398248846160156584763238850243178752690713744431113861874600880711806971845650182876871200718475868356938626049079966223622945979397151960886737507232843386554009318238026195628973662243066755174439962838965162886611347176177885820397712452017161255641546667959203592472089750293431644063074383430105765973021587148886032098753127739496127616723061746972655524398442135674809845527621922541406640073844347915776396002292580843246547474965971700691235019484042308171458787245034821611035285549264228649360559439879467559342179693146917828323036752076803214787273065335838302472955600267974959566542307540560614344562010749073443698445186479891485803640463646433212351419188157210932789673565018898839420014022384462251443009114332897890302203976704457976241074714520404466922712481039327024135599632302610540085558773417712588077488215846863895636288816514633111323033590294762420291005128230139356960690294027035749602302154958033655079970324314070008795553548935591673476260463218099556025140999431944646577883672282884807639981770976441586619382471552540459267790468635788355030371873421522327815961111616694921494401723169374729858048013185817284102927999909726743903577848225588426589735218162746894551508896188065970956095297154592497388302104000956609795057563204064207694650300577969355174391823075066240117432120234979384182768530221505530369464747226577985821296062937078500636743878619025751445642977621301162266111795928744096681716820629981040202668903218044111885665831416280205234513956792508674127681457116487891209910976621888320852704219592882165095183652713147274058338757924679595774619831177669932046071888875303344800210510223238098634793418731013533812629620012635293656390107129468137788308364602283505406507223505284639853704486407853966919887362313177470344779731500344904427660815668786103069476569890467390272119465216638796769562160434421235704580027907539978031747435333962439140989822898346691933655291525471484993451231956617030395734994411757675106567356967520571964843029939828800321717956715500743048471769975531707311671071361416346031918079799565407130026033401200806855698847495692069808990565356768042467533087630551571442383069409516879559660693380429820167553238257898468559720874405818877268144785899527580666717901121970973228723644589408879581113353330673933806444040839363122990117188211985229900437607277368943982057075165068742150301779469396454049788823290350503182593029875104034715925208449287063286643655793230646325207094801417953855242904921934386524369461223636819244643612705226720290913488957031497854677416758114628885290124032278040588443378723805560531392934655049426813249173095019877956427710431240795655117810676717158695564408620173970855855017247992790246799736310604319025240752969272796638784065559619103190194859600056571262957006780617221156597185108494082412927048568513631924822579538513852247302664238729401711991832093788142978435976938100056500968927090625765682906273560310710908843524794746218190550600886630351668307965591733845435581339046130252479830023175892914646327126983132803185418637059377495177390379630709525025333724388901722395298759415311897807934694577144207584514722687848689279382557337554132086964475582044927598856141640345836250506146996163945793126029145028126325498179512103589219967326827288942018470771186865616496918763716962506892747271438070600176111945497567415570360155499702819692665419496406674111653771605533771986581986784536690710216456098873723610794085156613808648676448482110155466442987370101417929079377396759041708957195897008137153201352952493021998779699647928734435439682536818975050856394992393053306594736010353871935446436148282594529004427513668270655568317086844404343014505957748603026235953973641185013026369910048622236251404177374376908275854575358515361331400226343955600098338834833742634635121315416713285392228738237324554760435190322742621631115797685293262601355036747626197880656725982254367125526006507884386935776802800211193588829471880306540550285174531522970691327824415759446512803449461252179008750621982195095378127600591651697964410404032633023072082173949672652767837710539553511280426861423839069330875116340086258296063317987202017044652669263894351366099599002495572180043665418970744394083168041915281846313979331392143425510834051409181738426161912294770105401799019092244554504555783970816873244056437568097610567108714100781482228590806030941484079887252983651411869979403133837145297753947514243078786747070504952409250343762114923442292106942234271205499622029045870827835145564789532270519348750713314496248337792298686845635592154062525167133272480290612779705614154149202818755536271460795364233403124026821886768833595350485392607484663098070496479404602223270825371239725587474103861858350478163170339405429624508070381985376754367169876413842042620975601543813180595291029077923320767866508478447896697924470758892408388125823391663776366540991519164623565600167562498367032626581289675145096331499162576255634723325556930299899862894642209489927059533143048271692225343308447901820941185136173286718350659797545741480515774288389984895916572907658426183243344578187852043179912016044597177151776495726234430819952573642741521500604428898968015458139119761854941180854698706330907387478990731680165304862726360784240935805717790083674090806745891785723567563175313577711642947171974605760144870270306990657751961096641853717338294781424347866663381299799816620269954347384443498706394905668392598180047354196583310173141987376884442681063463320024421802708170096858287224358636445317238664055987198837724001146832865362735074794499755572065179354734289195678225268883665889261703103687702736923730178118619981633356711415336832084406524270283847986731777123388264718173932277851578919348424309897207443922158638922316215530151754593050126716774042207217279462316433840525192081431317644972990237537767649612193709201651477361143923175061193427632276677825123546362113618312755305705982090991646996616195911079820507563490031196703296838420565315237757146972737691421798767347689688907689377709925625276439357483108865360605885321047776121495565641257668237721363809279179674289671061913600729980641734805696491961585784623404314904085714821338944731962598321193696295472174465832255847460498136636990004534104198842991912698759261837481986635957289508847307624505512938645900077372311036419792004943570602734747756649810591092046288547138393854513007243461598758442586461811733972537697398074059380438893472980449470226742700807780593333440729276072323589462923216541997113518536923101949361127690287288220948124610404520253771281633863364531724867604846951519672907457257173959278932302388348701549321506281970848570540546095598226053612696512958327134012340045571057163666402428318493100162303850825282185308961005322924276141691637701271206669629361841419716526164589748047501696847729465190900085713915000849436305988478010000586386415222007672753156599454096640555683471613184912267352997622866525240443834238072727706026193554574106407158753461748613636839346246156183980134655201631105312963293939342579307242907888829155111143566013796710068534287998603517620555143586389490222815129238787947948350949483115740567282113975578115886375370737059107056614309006614929061973934850590346189710938624368979533079516634577810936292402554474538551845810101323323481429807730294950912808569442318074936687661938724833219947818555469288612942509064482167528542799468959004698057461645059934443545977912704287324634535973438426231423348496861707032648851319842336160848585932984327860453841430598657989532378780414726208807544225387854237936600879712388629494649381977388409800753217564400672111278215024880675236864501857124148233374884645778806201538635855714594907516815615178811908741327345090216492387047195481169600876881763312767535432822086755228311979020402357318723767151375427212789482672782704501563736004069627312841200520682658699591163917021443829860717608395717137509259237221428117778914682528055521059958661567627985419747916661452632729511835981446532938043844802777890104725900067082291172966406636050570982425955744202540729419797174966786787402262116158218793979783850347999650062620617490117426219019772310729076651607586290108392913780552129665292909966917708588378790129477781237911737320341908438094839010754140950632888149535938736329562788822267480093389076162693861857022353735123145273913533252551591313804347296340455923855932622028545517051422005146997933282519435725791591905557019743600471651310299153547923585397062024362731826303484286055036173090343931131497589395985314585053732114210699846473894211268303149551949837303545136476121526867116593211764421308731305657818714218891043098863881356381427096070090478618826782829733141394956247087573190741934229706257418332247806883528932440829608205576737383644287241897806618091002957078870006944209541261403291337053346595150179762977412104126239028913858304877195720181958618381901908337284617616286906859896276255820978844351724801324339042469949973366783930460215711079830834706769042142895095812985240361203097811356590509010347032237803642427138897575953713852568971359615933164175956569820762493717906499582873952476506019884874508291098125648992237435067043334440227962124758879578810310261282850778126995293871255081148831896530103163428024842579603674657560722713311517170574706330577507135789097974320204389587834882905939975919604098856940663576459738528899176883518521185205079653555345886018344226243480014155650200228638236017089799812132408357879678363687343898233070374704072998301712150781767542221150315164476411241599541088441163939844680440941360510722048708224961334015057844488507191632704814678771992960025090714200185585789024970681975019270910958545466078445379229807627041779451466986744125511794039958234938877903002620236255902794146347468011899955452965698316015838645590822871033797206972615619615035363418033436700065438333210697950755616511753070226049663311206300279715029026143281941206282596456273268521963225608701431907835052266853984139276958212832309776588798487488903981869327016471295654823719796620170159491863361383741593813306915875623618443147384325779652435075859930404454273429882947029907333579568639575872099819385447688631151543399322626978634147651407988632291484549788635607485966755597121624788751130498695451899292174940178036673126050227878602009089359252303977767395505986911281910686520792150926300922441931674649568248643529554210048394240114769958223915928402176561852583253816372931803667516032612608683219265790179141253054269864853159790309746581764241009369088466976871598484231576386533456839534819945603852625088932469542721464142172793322818683752351147798380539087558073434384671732620240084019952569322708541711383188327001412590297301550362976082283189387423820811044728241823183413142827500447116429441579086499790581364611631220929493799498596555679749372889142635636126788969446172980166379708490449049090167560551481709065747330935602099557823957099433068108827328028476276827266968129210384027616396337571112557473795942257586257756210395967425812133391496055417501561376584000519927539328728646563168398671164156069363648800166874672905397108306033155161042079739689640395554119255285401979572681510667746782272195616174296507230802921539087915175286628677221031667082570199820077493495335105962709874767261257244686217442407272412640748482223345255867269291611821239279586705966622289010222505789821480062851109285660272320783369564918116708184153588611815586639793180562328561829497112656400311936726831770485674195799987595851245614284778495424036908240860441910609532797696446172350554505846025135079843859414313401355200222471449927968678871904268064413137810692502166496246816296690767047161892847705727215968178549832551303377122628152136405109216749140556144021351964168769478878067132862264422084740595563626466351522884896367367980219754799294366766905644664574979545655000804526578295808731444410133570264810087202796941139498532350815105265213526048370484116654555773190655991650833575572223652928800991604852576344109537871106400311797357568301455764244372931638939428451215350394779405463879941909586902331218082939395140832532422666589323902762083698881398454578866060206036174174805280381305298564395561771979055415807716157212967581174143045161757096250626613428576397730840251699313152219035879666952053463767043464065245155694136736095755437533943057207950863358494590538707835329280173939350271727452308300034730335854882905274165440019599866838328342302542996507564468959510400779255342974559625976107624627704141335722192487029219140775983321935365576092945856001106381598194687919819873796903703903670612040631640648449573318528376889111904074101577887481066365892257815272654202572004428266541563589572189976959321316909351527757363315318983248066328650109968184345448408718984581494628879274672474372288573526615787177874695276025889422924286611104511249079766564691439321835224974453791056397360518908378899068088720938462708037092784642757990276545670198658409723592736534173440795912561705830853663134128405865488215632073876495673879202647321605735873261663232062475338178763067279646498209354876749006023530486327341213416860478933292716371667810142932700923659799475520273967541501071697328317147812442532378677444267768570094521998198435047838586169982581731997884863868160082108728269904461094748652416703771660000701234155783470005659473166209704783993366426720423723529319540249731598051018105665336603142238011363244593811748854960567126337725239706108357336281580353245044111097331613321998524595363471932585530447716277623049086499351452932377196347872245034864190448793637394248542287969722260576295642924043563779731886898996052560550171070949745499253928369057506607986489153659078304376804946890463600009257050520236725553823255492307226610001443255329346695711470590884274484517865059885147170161482612315642091439253015253725771228113018178885517683769335880622035552060784350393476193522018241218983096428072666955610122461636568096764044858120937364399650079796923763650244795171047569012967322247040794913845629348556556960484740220823498920303004100734124160724597419197487242308470991798101221738494410337835855239908348046089840978401999876630333885985184773402037895360454368112440556108970154668135682125176806517582499527405010836615527482912234315796893365900677471592948770633772396276952428489057648938843359819587873677216997594534199271387802167395981239524181155496555609263491825517611860393289654567748076278683732995928349590197968954444816682082400490131088247261978664579770735879479442221335450843409954288012931681651691166500610402952665421363149086811139149448336948590844012288625758876104720019106975057047235970093957138064744888366916942317560596238923898765014698153256666486007726102496161900031898087077176737021311273723442270127675502188827111548285604681268875709087500811996051741292661421841529141036737068385972425378001124096825161697779178163878398250767210139151482141006170584185701883399245989998854675611736644713254492150349175362642669585741242644455465814960438034607352993966251802795787192671388012629172992227481820819287449229931027787723110388253193374064767696319202746655377486705041688543209757120094749880577648709320003937250006715239047589332399268445145530586252409352985096632469793864568077669214078936239186984439320365850619786040474501106744303108277201146873048740006467501975430888764700665102676499274196996393494698236793837939689745386925561640936220889263303856964871109183728500082356992530924991153161795462098703795464140630827485309353627582154635682462298279606216560068811129902362827150399557981297978420338316794188485813292399029497649103116272896100408469937989850710154232368934083358060922526300628085930976304151190135197043660862021684312039420433087429690700817932546823910058514160728867042495345987549187364532584407264162187767078722519384576034183620344791712129355498493470773202632633218375747658414280512918853408448228220124045107802693775857959908952344113583449143650807454319049851264224486316381149540915720586489710104992672337395523626091824849658539118088324212910995430883933367701510277726862808896267891448506575638729007690664271791563718610406386430744868528771892475709599481153876912734922099037994025194440810976954960392938947143360031070850275893114681969781099831634291591978950592026744036082873520797076501364588686434912921330172304264903502942803651124495368255148967769920848830380083586092829377247832615784985450762872401355569296536302003040152648390553127866580690189611965184909860416979443911317233641955371231302427622174621264793449963170589734533885121015108607950236770469148400937156140054973801884923899675845032355337450309752511083840324116721968965277520375227924509060485434296052655446883365277027279782059418378105944769491973408602723078262903191035521314812767323808558156017481902965518210146759189769861605009399056017074211338860240350039570791744519556035133999300428486354874826971311762933930626777211770337473119418250485834524241108949757349593096447501238245870900565533049629777364132337770136793547830669954263222989634503029887087116354082940321263651756216674583099564343531882621395299958333273692015132237107401683375296580118291389368934980685945889868545135645528852189297147010868725762793151783349701088372135759395245872682571718987669739513054264499183932343627593985198681392043826055185107598480870293053108722482166953814007970222037019484305065872942394260240984919732140549714272004413724833069667583581753059545686528136229693191628716209588446820648900161696070081310001359106021653683332050608793446085252786774142720262370594264622484355984307886650377319399298683861637933105259014134608451800788538474767387301998150968036355127101085503416983676176193893407655787587871870898205159555814768683362350467862821072335237612541076617461845963966019749468260559780863901126459809847275073393801296170308740749962259253497065573504052470520868595727908576465819140184507438707935175105045721282489007134401123492793937673020683480356306351858921811388266467919624269987561294362094752859929882553476525966626308260199493866497753791457286355371609185277658117121245870564355408098384225125445257907766915843670033815307226594794900537826919601224115604541237961065068648716251613140619394501028724650649976181751946575746307298900471730674510014152939330553283059207254620343400009947351526788664128489972213012967500033282565002371562517297678001105992927208220441798204110440698632253885881677568109796007863458091024895070510519041640928478532051333401745139627652749683814237821433939576897960447861793899315779273686014468745893224678986350285897181195314564702031400640770624561519522540720235142763515712023517775592899186553474889085513516970048381596245439931167240183334797804389214508238000897658498367754598170488071591339458252473059008329527238136819925506447714041634792191912787127179925271752262297718896698457788455971013176885178608247578111901732116249773150932724670906007714056209489062211761293795659692249062807447023801422857208687806973003392598137814120140538027362363164657518320333623666187304398624987483822533048932246938585319496804064047906655004676430689697156939444804401303268285861337629542789978852730651156780870681383307107045593212366336635995877560242717419518017016220713948557121217749689022780615523905212499988167619110963849248370146394757256377774944200017381721256713092811076886041280486988143909618396403781276267621055128901520552477669141867288836846846713009563209435356261754907657407666330752144040517026894379837623212320284550791220696124899835929146903473932442234506511734635490351289910767242789888361581260047539518954128852868121935717168718571765138742973851951996652426391667239222902003798554183357958303214470790609339406674070224946266888517055461835746683891786904993257894546570238653987513241322828522112124380059285938675365885568734784227507696687102635258408142760694724580450735000725431148654433008804701505161986027849275504774900089353534950924819938407474325852248797072482562285670599082936662498570597453308004273891447545174235933121196905665517095018131172296769210816244189768829532822211203390976755398748564157573390072884155843412723175736253269623890437592120507508863696286810555774820492683400142547372988381836038352238602754264480201129242431974387374675486525810795617388226392261265855465400487874831234492801667285763050964160086927965536235704190590793273056801406302501844559499741586458039548266598018629157030922354370555042621458957472893326585463527906749161763381529833885667883522817569606894713269798866548904058600458601996793288970531906198341546366472433903102949877391238227659799699345043624081753475681952753221245806030786293284694489330972413646416227033788797447629636347956030416905415055765960170484796910865798943103929542264894735639258199818913529708026165745369887426857204491011495307118843937130718365124736445864903607739086694997970686422099647955959076047348893801468567040645159205365313174542938353828535485113223126921914105781677775823610889260369772572201095321848878817765790260024705571448114349876253987968659737267301218461394592747983753675945854650059050207069635381480859474081720592730278756955156563669944538806496402173253519814363320578049692913799656276781695893428132680540312275160486738111117703157076342423707976229382169231126975853870566979672599243555429518058500477832539064337707749927668062343534191826849675644622198504433548611057446604826442172479935645278046334100936677906559909983509500887624548369875859268529064041877993656972951266729748097006232278024641695802619118086291243901148922202439648172345695410197444553942671849970203914617312589221111127762112705251727960491488086256218800206503077983230819587419615143364886116854737271952120892743583568251515181994062076295981945361233680180961470657427616517769715493151884154325994343398033129659298852228635202473916247967834098324875097141478238315471582311524477106722929553492106627665464818840256075735571159431350907380871354530757490131258651485426428121927136588528755697846164079449829631395815865451981812386297476368571604851265212389755126219231715682750126805956088736856717095066691790200178363244651539487518935582074077523696523232781223092260969104026732000246794127882119916792676808011016024866762772909399467886420017557844636069746740727894604929148197895628879815376059358875738356221245670127142175947895567053266688749176054692637409192921167041818462878375490534820102273259569181433412296666772165158314132208670740532451357514374537377676472126028437333864020033577796304394442868957937105634001692134341974091424565278807791027693442158925468262004605908676941910814654421119371093019964001975176962792608777644702793334806085249448601204228868196760014936358832144625311903645093272099134102358773145090962855033588714184830581560759846109366269006388972936677247835177193081621643734397633528895929981728377639769571987851373358613142589906289957036636594865099419156455363723576747664988292635038518375875412560244368992622124040309724532374352685454818679080569630727902090336132473559465786988905545336319874705540977229131025681416238205833515690879410298434033381054196673639492336368950179531998877873606432052681263335752665838822718605805758196416661130567071941264794275670276127041419889679554663533578234700452564277527492234396201489312866642224794752924234887231355765587193358414623763370098652263362837680342163086366719839210913296203130320350329117213540795798146058266941898190015905245853979593757858767052256752789524856953162405830346096855874043169849220319287316067732135600330462222415511443024353015428799163835457030854161108167006405770418843965531150104143469840605623746506578862259835271711940831446820295341933210446197123509663628611948153197073417751336971517147070810446658913792773602485669618133159704322941984616236187391686501024503425059399082840546494215757834262346779387746051017373933127370871471471616623877541704728254415548473896769071009558702604648399371017826907726155666647869882793927437862126081652180578564996088881016766892990012876202525428586109074758500826696775597163208321890246754916347084669044568648544754073568784201819519514212738830966077235410462522787539011052485920882426081648273954039349675022500760665112060707952578195017529560040121161573420692642626228605630759574105884131359212333559321677067925918320215101692084691398814836602118990069828058909457523086682480516851367602050759986615413891545299071318406085943198417904663873280433831039451401556915996852840835490532523587867080717406885182675664599925950753277542531293276613986667556979586107587727603342885639178028121205149093496176066421588451166961898447076767333015266602641528495781851786038436979111378546875246821780211924223668068558573615374305806247262639009858917597258204446038043338178386008643186782657428517697489590956061344129120605295406715139786636410645228460282790903288904184177494562263939809667940740535874132311778892520628986499414434396987445123297458926506878069373399431688135006299716286116566140271044069080409556077075975990802463190305259821225875245874562490075004623844018212816342055515728210353395689261740482190811863510302693556188449727745610332106675656507753432040112824025950540102629770568396010486766442981119167973150201403199765849118643640242208147053674869450775824854173812729629848439202917740473571374286357938615343754487755439259006194081443220161442936999309910622770530286437778533756167420361672189952939493530230440138824266649119477810010783573449121722310095920829899783282092490602973723522403210206551268000890800103938541996059515857754798795157758793963576123976165852758807509248272479271473685389482241564958462980508874754958444861423738953309119231456990216269529491246098259054739075692892435897279473863961701913585468350800039914478234156323799516077377080389731780636981502439610503364356088228941257528776748248801013394958637906530497643092276678284374025650620410987288110947611405621308991053084621525308733739299919812781640329665001233817833422389653572215218791881166579485897172396670039870161223476418722022912116605953668225693944324399796794435392689535354322779615969439560954604935957390955100035696710807115627860687086641247772885607419366630040477195256957347479623203107089637493547264522818154973873557429871696750088261123822462636284754585312250387384462915156978599705234798979040269416911478470743358884247769359612565259200088553896996192036789980936001656164727625464205768465730675000002543674324005130533094605649979502693088182936069383691278241343706348926904523628541872631270022388437985996986011013327512791315592473072088928327911142888358755264456348992431294396406449785984161918562734778451260247274249688501927680461796065737943458328123365304212827700004449123331777073418585461305306590537348309618534685893475447123452929326293655429836886534782868257200382450726106648583220019973730109138414429854090658917469747002416624993163234923852130323577803973014537640068684201091529635171099535222895014775148326777461944259893607458409152440965826742180764335813535670087264558379392347390591545029347676595657264101109031707027867240256957387409790193741189588301565429593366597094291421657483078057329491142743398491335090025489924639814958877376704488263361330881954598403086847884145662033649336315833913123207716669213106216214125302391665722709784632920463270279968975968131617454535323815562199273105196968541749246252772518140205585075438445486074824181244212161415650789928802374307166116848804043356101913392807496064881450181293353866413297648098591357038721291129483514076956239523187240835498423603968015967811445336416022351774196039082458962807665828778367148830321568227812066951244364370087137580790048279970640659895991490523932354202422720028800034190807918444579406552737304788913589124493203419613483390105609978820425106397839064796453908048594669641205758254795753179006263242878152145618378213434945530253491978050637312226879418674549096421973257606545365036097544031125471199191933431045969572715432305309759998435810007473296846266055255671856298330020284277270116385487110161733577581110788695883963122666231212992428112355274957270778272329281141800824924921521687848272227832309385363271929822488398680089821121054374926932349625669606214348657645819831337338226811210143103589983556844942836470020235334214729619104473448180485553493290914910636541505845169588093736686356010631646407256871175901551260868237083228924694155430127946574489741272455101164205695420155520074701851310120236672989472511832470566365598846442904973832273682860136689696359512332418677257957652917112929868394649587957777217602398884316307322374695843353605324060217903057145409496257895759808927533509321149693997275440623471901486159335371265353511844731300531934139310993293412817087473511834357349961166809249479859893197330481374530952880813808837851797824845681804888383014134727595039699912295286809188114999989767734109810348827055961983286444153081733211660795086750731262201130501099590791154505040384744360400485151051435973535255116515042202088086148617557687410319807281863124878663241115659480582424782164862600461705478617652948508762163768521248750631681832370682105580509451276848006403922831202918664356079971156284632173275186411894473576017310998639360316838094818083882124535803413619208481422988440504949590639782541772490321366760263767596484080049840938587900260229087252167520696501005598462320385368186404743052259148279275812965339209112251059646526804653936568465417385697064653421457626035900637499682434145903904899945325718940169601112132543891354793373920584500735015726902064241336056816741268978225040013768430955981647749347501537641347258443660389326158373361759135379337393960527094616256786414106979472257345087643644530726250364357037055683738076164954293508238957966840801532030556449174466995868365319459843805780139168657587025216204678124925497497624216638332209021951714004427452958756977638482705211451779471118350554940460612718611332893001169491259271275817005583642385129847891461081909649340124759592435692438313712526808932447511161866483383173583485528509083972665614279624848706704422276560770853202568620243071081742948750653983896382996292064076412314115697107986407649882353926575982955416187268802918971904764033221380760595793592226416790721536959749405921899463125506475628290380289266104759299960320988586647649059274412252798234299455361355080481141450681834575857913172596211053999419455540334978178574098755719939710935454378920144756082720103535786456076257014593777848654580138707382722506368050065585067127259864243423322804383538294872622448128659780402321389602474275404506195801274614474462483767021771408511151069092552842028021028788100720807320954473037550813153918734747873885124591156528068881366205363033554020270532555173288154760215376961079065665303008550825555887536301587144022671917875212894031621895402499776219056317805632822475534684485078728505326950482796181092867091232908650858705132273167528468802268239157574869599538881876260658032025367507316183118275500175464089675748470492474615541532971427032468383526968234486859071921961999080936732657387287967114685226446235886428214548676951661048192293330364677620521995095915218170654613011689129901203318590766965235811473682325588909589494680006639977202299709086393238504045813133821044414994210159333044314799474006060044086136588368849642648799450124840419550082167392759102268874648062853373551748851516998613963001798708718127335016663013961957455596465870687096473745563155747602080348023287658409832752177107156509183278138415069477316899835415658425446751611941704749921845095301091612168120746445454642654836741246144276633356038642975704110861707582491643642886355465547830508235523242671510565210298968058073538124165981108448585772961087892086658001435638284883861461235738876591059600154176480701799807024361303633000221885606872153965986282191344054448967562250292631354146690659508705754493697343394170367600140963527816811955222592809559547197112093538953688720923905751919420061785058895720840993351273224071625986047982828843143461509602874854068190277075303221407391285415033033609906705847870584093584380527762939538645122391926166824524095822188294102902617257904707691636020071473195756420574584720053639447958157505902267980115667966307395029204512962822241928416970838366039703636955700477551106813319266590663370813105218414643083306140926360728323233757102948693520883378295447884726949043363423646154228303956541904416721735363310194299299204408422726293490513527234183932562559142363859376043041143265018026208754093031751310853736344902963616217195326341449593092977785271032072723155512763122482252476607759021696138670213291996247472839628025157745905139107883650968951541341200958900195040488328154121159749932729238724333318568988507145975008301426071461956514895371197897088084858982204927484907863416914926450835102157721669857659621921985254574303827706516881243232426222919464439879189514096365201958295263062083311716693197718422233737325145954388428587028329298873715130605935133321300898810137538111141452296623406075023413904921783632813645476937571261657658740771306074648682474291145310954504143817225619462280079361809723279931943455919382686860051833095698896494254979194859263024048918373890995033681212950121040331202106135657998072454185761841655219426029961700269650949453653191304451215944240219011508316112364114802147006145054696496061011959119337501897524047385216765269476773559631206903850635557515398890951797261515923719558657096447946631688380857360297583122913664183526392605469471515682449125026230191946453942223887422859172701024988096796485821036885361961595839199588961434749138268306445930281677025660752604832739237829396579495351228786457111997676816304942760389519668530662657336957369215867154000105705082521822872787682347679741376639689791327483555907448686021210047407951703219885235834448338179855015635749858731246706403801692921792324538446895867885721396188028563342304542178524040767032614806820844543577931088575865454744525382416711005930462546355507597271903933449312592428965674360208492760261733753824362372762899048051233781340007812062899274040493601539357595377625358716682267426830737914843065174095315293637662080839341717989858299964810367250159443768294027177108784423521393300365310897989816090530536163232232004235852855138317508662924547488747300342500024013830413504189039457923411339708804243294416082350096079999337789840875642238870712991131101573051152265030188283533911407659498331761808317201253064772423647276297034740673875651333599461454608275397351621210926080996337970789886088413013703139483392886039196808538902662001282840942199198776521610910897844384540263950215743998370595431899395976559297807818673554000394426340811393925879516384905791680041327659593206507274161640558861571609638461138312108992130086957593514146335699295412274614861017913519233732100356936510659904615565877438970727015683541045849922818989120003612475575918837288820708727016945953297474070535336451132188010420173945903255197261676474024816097677933377480247386482255281389965083175718498834393633927791350029708502344588373686277915784870749838023936191681809905401376028110788085875937139084125306726343108367800408584114098201172040994587403595648144889055742420078725197688547641288919968984053181891769320919933226632032718213787228696180692895496480297645587568261181323181503891542944942478147465215515791672906721038372105460049468405270985666122268015843987182785051187850121138569780259470409861792827749411570439550085299097650987555997753068503443356425901233626113078753903775201689213484045460979279702019867966773300961861007469748487873573389081543597963727731839417247521731334592637072728363854136907145642183923208852589506128164840865613870687309755944626945294607698181175266203366693029925718215804361824712328928276190754163885369138620795917343743796902645064831921547843412378057206519285653331166382805909616979084705502611279760925728869303624164818176541951982671928181179107289045221383397338007997861084321842939888359199068398109592238574532147993094995067712044518299514358891362979292081440823471992902525611445129170168267241919343911066431522615805892035886716202682597103799494277779838415230209217313915424621688020491427645330119538893034333162164967472368013261296349483034899646914260422017516894921145298462673445241698569318799907125538345326614120959723164574300463562248654020810359980925001769960983409842165576531138692004633464091137472161429757802864510083763120988071956745132926534399615738584042672432851289892023844045906457359820253535479608135199048995784967898971903297081829166040320433099273029769418440025729067345145465588713847571985622817294885210242099994792073551042426460099126572668026036352282463319224172068614902840732177430548283122937949078775001928716349322545145069625053699146418763435032617139190059716216429888760053648764025051234226812493881442083266308550817276870078795778951916239115758777783414726631331391772161492304182749505909665310396270156234949459091883554907819273786816046859759325809690832562153986202334150596067506618461559926809535440912247443280316735859513817767228800367753035536825258227763798094250783290923619074850540837279221241000796673754652922915748225106711799372837826794721984524992468522398379351375303236610076875180547659804781574284297385260401823759047128885692893450438801113244409400303252439796423560231649539328148121615786476638123465365012263238297920444185553632313101439874573361206976315475168619937751418631337375089978546991153833218520354220081655941637481580693054423711734618038480117287208833963778736526416017570865883181258668778146974193271939335978269463254054415914437619836502436900749435722674770108986699063162353784930103989291521874383403947104955805804218645511329706896844996157758808444691382927155277241681515817377371915335790795875501819853693578671611034893471037315139570466713778387112300678002251001935553275312038910373418875408024359381246594531440675147459526130717522444742126974577543184728925410241470297565904964735189651906674247219325897621413966956520219397443847550914785886178655521178874279640163167808396443116054165975313809020567473434913264166980160989681895587651850390226763225672682399291510476577563821593406652294256917622157390776824959047230546897385473540228601195812386713931172012724077469428025536774563660160609687267618601192040343410355918714069567617468021169415997538165428873867098761530854769088754322396386480042763445876061734353738073892394792678504863731814032836759431190528101415856967780941146346539125841044802552705050991861236718789883572297909882432562460714113253784564083775121798148025929429930881632482766035261519263302342444394421890996316323691836513233505334990419925235022786873019354956547261857640647760936981966341166128392850699011978894276269074138339351835080514567484627163612477447216652012880461378003621974513965072349834470056303021773204549085250884533660200677339055076112529089627516571129288343136580093656057528501422325014001790682362791670563441781562211507277549290592567207325146934832436001060127401238526377621065725467533903510762115958102357950162235741844796858380546997922778304399218909920911510203880962554813132047190573598253799108014667973069341017226040282281327346534629183553190087785207340057781580318701246715220961437305826964790455384083429703470034022179495590352573249220129286672695008741122665914761137437142256259880421895924210943873764379235305217796943526174078755540206064927593921683112773883393084114826149032521330598938558745441054741202095019446043858489037814119112844082943446298819315784211682325288805101626081865829437995975432449136852396318863194638996793528143929216014857155112171858587231918695847378775153517713133089791015795121157864397750700180131959814553297770975048943168250760564952728246252259652499555317009083489305173388599198820374057370016628329241139892867018045954308377927260498986094134509042281796644011360582341549832732673455874742646542102078976736598549006969145742238306580933169979305941361915071189650531515679540288607927155525160999024152638100615918786852913354679699041536142977923156195362444848452532031167316024501302834984144614289339554302776709130456491448815085692864351601024761304326965148275640408062705096336235499590777815334284972607276532364747966204298956368733500628766679758573079623447723171001411936813903222054558609753154670811781364917785882921119400091791822178534351377003627846874783043050367145962981814630642889970131935919538357477936215658441080424270077359480594010776929049763778800314128636808652766804709472325806996218570783348960110722658269856834698630681679913566796982758455635813050536470877098575718684637246989876931612682835579477093800260461099925642112550896503153726356413734444070304968283491801833359572198655217530704554253511910801740218161106566155095952706890544197415819678606690478809452375971314394871325229389843571072435196672292729464946095504503833454791544793072988178375403666106382718997580396858302577983494406153737386596534749479260895690864865534566526784878303295791358787156648942532662847228384991588852216470573473100427361557059162296055019852905236830709355774558743021701870714443518078463084587510373223667361214057862378708115682124374092842325539926112534221002460429960844896129596490937852139833121316014172332439422716165588346471957424333092472349711906596630695597473957481237725791780875247445509337017749099947305660002509393651822709571433645251225038820249760712080592151843668468372375632873907081200425389287968677003429338906240088015759027285355141708648912757090974875405405092786879928698425169076931372242999007347163915113167689025509219382133148411911924036422579654918293999352542282549384719763184377073002061729675781351214545488783829516135297513168194632148976427616148596449083270470689985341757612858649150002401401941270228808948467771182224017559491282952276089114563747035973913249077754765656999109026120452872133836141335283595689848523533018354537833641945412229145046131108574164877552261728927754312210235922424749400218223759942450334095095693288119406646416524632003547651245597362286086468662126171499481946341105580029112322635912719719672077190477728036486297005609622895889482167772231606913208254773630246894230191798596062571623312730884703039332555636053956570040772822480437113227276880765417852872315607784569271784995751606261946980257281697015453330236194754838530262130458419845767627397779269023908709467030049226544392801964821799704397027389176769723270572948846244040916249052781800699865463720682770976469492173704258515764823055604264944944847158785781021519559282371992692107371021016343337050339324051994214802550378362026789870222407716311150063056147577024605990054822657079592829374843909918648966369774377746438432128037879375454137548897300830409173672500931810589588921964603614791677046601464022107503459536197946790187919926120822089711421761611036595442042005549017353661346845411898456896418226916735041010253362521197206939976028139675319250655161600287458740344756167594559079146858117580756669670534020190437706539042970805744003395340515533725337986552061567970968797417696228829376998696471678310690885576125297646120245787562460624629467927326581192680019590951447167589788911437382491773618508972848056517850541175086647746848998230724522554508424367926539711451218796882857450119407370023603066471436270388741640853988191867284166676345641147946098089462624420355747138616548222104408596797610007015602695995050051262902560770115508118488201546673953371269254064278103064810149606241005338570911701283981547757567620868059874976668089298773445289164722508740041771514141688805325091405580135337287479240119369359946372578577083669527133062808752997806484476268944714467251776491938646520022271580309205849995222618390910840422164894314113414478528202341992853486624340685959238917435437270512417839547207545601682212869621009508379398327600085689976753584643061604429936789475077210136937677551928702130388879485321106816373048986896199518746222349418357759349711290032395586868560165506156677921008500086137485026386697174283301644718346583174101226938380481732185408758583321008280928187079036610458821048350697389289597564552751173561966597163601831922023631833960146700393548669964739071403518137099365045536349236023972481272192889631176577590623011606026951897533333514729724322965917507082202714011770834815039706300623093424553508307997009434729748814396596047841268492903050599918236599163538235736762792441995022095449828592632546546429922036705379915556275185795756975155571736782502249139308325900671811536707658033396280310063129525464771190642466268954509048188320791071954516459162773109337678453302501140578849369576629426881565038703010997314751506962906171678488501302937915891004849778296829908677813100928890928613928554377080724747888694755065373002529339570293361599024906970239684371249646711301794524726831767885466896187253909280105062655157268043659602467694937020172307043015940092071737242724607126879256750851792355423428399432397285263338704527495110681379346099129741321682739987298803398030547727917515527650795248189873283945159543222990537260704721622841561477556555857671484719254955764657036638389036122658664321084982634211008433398231139195460488292690377312794022710908907153417605143462296651076238198420342634601386988730856809497717195009782246862243043907783925173616323887070138823518086164561479876549902232202020703906878125870810063952085156933413980582766631465066229444583537169016738560245638910377229752471838031226526204307742110509105695703871258106508043650454437570714926623136720758898090497785637681060199285775610097860657963966920545734738608400628792495973319136984715379254554955279346744729802332903964606389602706241210198897520363952943959290022105992087744583031168542517991940778881582514446987372019013834905552302483286703779134600095399512650378165277481332788486674433922099515948044055418270148382058827672036469130924447817144253034161747052355744766988022415477375131765076362769229370513498498937219022105647891466125129074815930324808338323645806995106554816591486874984030333506634391365777926491496964862981812863117517297541119608280636366658221843442044861583362103149077035353201892742494366956310527908189474808244114223367042430872763611972456867757350679654292518212015226717263696163682100742139830218925975209687500052610263329711378181400452772701363306278673934916057090274665112508888163596491770985842633435315895600283696045331660103655890153329335127934266005742262182157856833990871307214247939564096962005110650292385766846742222128672637662868097704883976296499749134872477874369134248160063290429479847803190029789645109453570829500794657013306837863299869886310811535208297745145405705073756076062956289980231176002152281357255088841938095916600581772090815618534804275554843232741051245039940993922041070957043635403500017888327088245031995535524981972023999853650488710570377379345539561425057804783496375853524537694891307069843114827492677809510563502361698274845179185945788292472732034650349647711431731702177051036849449985185902943733105262319579200860956798563952332129320231457848086295737105997462646354395854990226463095906146566289500126227685536654652242136328090865939796811441758700992577713733073010452251243948833680124680186119554034611295392611302452608973917589917487727086764087690354498499386688994435281908155315052730524165800575172663821786842279942286270940409597119281621136411855459961680832435933251029823740565232834612167139577263847431663060502838062897433446577734695690070187835719932454148768359894300701674027827123827249019194971286822933680695129390716147395677257704023338791975548232454810861089130792384209820095054103912113869981590086923576771644498964266763633381489544084796331966000303044608432429009013042309706055522745378152888069779020171955996573911064859559104601237861753596916932539319729661923072179038361248018467001469649935487415160655866215998253965507464296302865263613749337536153546490403758670140052845864272442488060447186656770545591385623850932981268339672623320166848113557590193697480854087627231499015834020179820597920284311325759076834601811711952526507897372003182987459614999607172283216183720930871763253561398227152994949664757000183235855234070735172716342921394191953547396678696721862063854832449923476575295855811098055548363568531295974248596176736955238899103655738559974481932706462184295316983082922292720999367672764080687602986544521484498184354335442695066395328214300598351538864311529000048800789482830924151012792813369832917992448548492139169200012854335810489495277409898450476533449701339653622692392506516938702663243053274324733425981792666492638374305353328822940910819522184458554381210875955326847534050239239255165652150846528078286242773384218139624581790385769890520351746910409713291818894580733548257462912691636440613745135336297909654831088992553189945930761631734923648986142507419672918742845126943175114677535644882233485721063386367025425069675760802989792601166722982875419228078134570724654866768851327453633795590316095116489927619511197197798203731078686724882139381191272596489595739938041321511370029321295593412876720506578403169133581086244628057902121959898631024425461520310700134179399093777589355888075391407585334835748535356938566141304146475629142376990712283633500351849477658656659946432338195341848960768685236697501277086117969507835200893670961872308653952515433988782026137631294279056287286188075339864545709647049928418708179251874209158818356037470338174598041968098003222377870913465796701802238942736797129197658965063592853595782423218488743318764187720491649712404955022932909194690590373735217713921271657199924127240756202967395661395878157953227098159332455985757098297037387489170577662751084325886794040204012031600093206705257938195970905293016590036624950542997702213773501373399832850519558978626468049018241549322075021059834786771778723203045955020717978646120464129518336875465082489881957923091880119107621478535216008786094987573591150426232217759914725682284331197607168120728858765963487942539176468039716161427011239562445180042634427910398454279383728099588794424719865281538925323237786364988123621810530550264838519547823412523998132871669127661659191549182123833059724652433831187608190390747868051688298392461663664755999865731927953044591513621721844894497606696581828116758503495825721074460885043371511167800753570745248099225672596195809903377168258777522102141141141744475175737703093252490018324685812355837816453433509394327815475495849263066793775766578982733060660839176126614154276292519158135024846480678765098309135881810423228572291668514491277967709864768426382655819263541232938181420009914141218736614329413586048331757979472254481667898304452033886294691660038429074797424990172175646849180049211303402839001954834934299944104981234621530865517977036220229008225002087825926936732993077672566125607917676831350539518249103349047921328957013710742774148442112744587434740142148560845315136088483860087363105647244172183735695767106653563807043718682894192189879485983990670316973973448225703336765386100600508161969116418259254241765976661801120380493352679298195968531598168186811470660366963143491552838450693293493820489529784609803865826416869336047398338091136462516855286046718545622941159846020835086618040900307172622501314078052969670929792009532013533493321689671911892854912653314715724461877505449904418492601514642178498583468079190924325843617192725652035370165735803715198309832000803310288207845516305444608675219651076446201246177545638098455871984880971621848844773753321745517313169482923629725909050598499393383678804960781392119701405856120810175853829875444493827321803633783640571939192744568916797922378656614631291132061788170694028275595966973059427382089641442508418254064840573392937530511808825073237274906285409764463664636280082466313632671697443520955366721088463617296397824491723386889487416814040724854823738626082944223869536671973830009056530963100693440224812652839858941732170824046435882286273404671223012902214750975604034231433295317431145390292169607497540605694301315241764594438390381894706489820595509690618295452267207354704753630591984930962748364603868643566018310480930522383596496532573065584355071799403174611974682261154718083732605014221337574723678094664568535729280666247632207066749658432914564097867342289442765991453437544404011971278359698438478824144099650414920262714397415007543636931983157949105387544734095057958244353284351717174260524697801594821604006393211969310300337382036700586824594050290938255315473654472108391777528842559164260607537638367847320444157131840824903729834865699884671784388169433955384297250808797201538916961132350480642664188451906809807396986175781511443585045391586178958312104082847217242171895896516530363556346357315996693658314835002888335698037987699652128323833377849744426419554877022477446916534417426453928174617258863863544473433495060188744622066062969417880336303297881211072071430607480609598449663048016025081866031846625795317180217238431784629108969496907483584100326758121330023892140481286422888433980282608375198999767275880501803374002024723679795493559799844456291087460896730305368255927009984914469553832151843101236630167693563883130974456858838212379080821706311086600834523853105848463346282437645961110611593620153986810357814121413492751161689727263595615235098655613380417056716040408265579590149211510669923947296980412792211946790398288051363764409909184574266775843048343954678829895627969864885941161565806226458252503037528040407179401360324702287976884003747530711139308080451094643191295900336264820068380219504555885453653039800791515712411727943481748156435652193662314741724131408581676662746305908869684566528196690585864765551486133106445742942822782008566426501127545522406070025718305209048038693064814164931813907841841536460867136084607095038938767232912757483721496828210905780422162280476826227763339500900041925560636509158453685389382640756385271221536903503977751863585656169688682215978967570117210561053193322639372810699651949411797437424978921409017647962515078842539605700007875790319890586106823019535479387645295584052706895291891212130488465877418010506887619252950000607139734056332128610260968932385815764613241442186808141488028514615940646361434552386467529972458590407771215898006174179616904951924697917900138361346656042653299262205106213964825119598097826428837542834948713286954053347208293393426398646279176154327542469454097326427470886057849173596437782612576232818030742136280323122302432176151882443268783712954412528518073207401489833648257022601223709911460272934204088158376381643797366898108225957974771407692641630800829220942545307980268209379008117726314041699137506910991513811613906182683250458054976418797381066464161946673671880897938289113831500381033467691326159057382639610548188475784990830076565126482816616719482577003752337227757844220311446774810280161073807061061850287956631724007739126214378866938010577169383399903647187074963994882982988252339536494869417453734971563145778820237699427390712572729949459736849013747532131774377662108139883422060204077475540253705677679209749270406023948491627906538420226673971660363144301770177720909672142711095304123616375421408899123095975499500151832694793542510633005582110282153290271001306525453577629551553106847677417946835837077972697399604775914402542716525903264831752418327735189744871539198521714702143687058706103077080708115032021143328262185273736133826240665570223065030852622653817693016053030901416832454825358815409827176988098810198796264124430841462274266610225554692320914131585254922240690459993127783780746858718579833456099744217311147669669997921028734973466007603789225227885430495370056695930071800677722229221988527394464100314411829630478639646751262458574149675709690594656593454577036472464818720271335987721297845005737647015192983525308339524870482883730989400209699536204091360107739502133339580334891479777472222649457957583387646913513707119003510928817165261308082160156282594506315944319053224241191740217885548426169645459722952443372926891487525279452388492464499271927604763051824879076187779642475743719366208278949454284460488731962318893622093313543660868556225282598716885942927389395013922721100511669549298656070764065023102574419654979350278608093474358589029241849490004467508684418276916912688823549856485180177787057961853989683747094518603619170496683095303487476695387459056718402214311376837149289560195526401346970054553382060717002285103475028785116174881310136985785349432086441991577593489754092086533777982020563545348852536032925617264855387369122808735933222345797697363054348865448121972592258527344702628711106628981494657077716918425968997409477960015951604212538876523804978634262815827358565758448683796055455781900410072227540268610757437717318269757877879590095935078308198241898668692135703560886572841996392161540986391250316653168082709864651476054925072098223532694613348627824801841673513738500984915063627472641359284499794723720982072063707447781245409719694587473697718687472329296571942230956520126028179316502626408621579393727268997483595598145918399566062028314361843152272138131030896184606547077869241586914496223404984860385687101990050703845788351119750502462070095584357948149330501593255027367547787059068640703557181079397970372428456541306590023840129229525097015744479576503486626183541395448060466972522495309016530280624559926681635039012261885829147662073972032290044887469944445837799377878946579271702432997382697772362350403065866208055521132685726081592288218568781817828133164689783928439986292696782684371579115610637252834328016027869969199312054879862354282662173442517423531543733242000900657826854528784029969358629319181335642939236232616662136587911632170761083877408805103193528644540149007948626307713535916230220981224636887429107831478912176959653845312976218152959967183855878340527652147820210699099351730804981958578600248450922778782381224340536207736573457950199597296353922679026516093821930740359850719344159283131340571921849748774601392840679823136638745594158211928653506372789333178490557916271993711622341901349609237088424872068745735566401650749252407654495940796565157758729950732417684566824505635431824259753669642245778271757461792569103948482932913231486450327278062667274181873412364568849365040460325143522782301218322557060868904791084630928384477494148442562795303507550028582416714667116625323415567310694010343820816878871518060849916237070432381023925859886440776262285671531887881858024418747616313546570870550294287108115472794689234938370006155013819494393091444224806848636936233953356610932151999662783604812492511462253367301128191339974722206381655214603047755816295862024806294206516374338477975650911674453584478338624964768661292906565878704431257184926880884100505266363428600913509138740388110370931223705825528388541089565654259204415221979675580859097581784770477412363371047212647916565608848053182329719237782775649908266994098218270106921878354755399864660865999433044400490195543924220418268420864527393363857194621231975431918166577742046800431581242412501118089409267321148765683014919022645197621299787629837472980019886244337765444779257789352852239492536496980042131298209592271292707375605212927238569084777941910437225911207950705502996383621199823890331787184103253620680223428046363950106841578536816869616992748483916350157961859108997254033256004442898802097931711003618974029101579161911187201146515625058810189570038943439368597062841045907411381153116246392932659101422916782656850829047529359137667834330753105058901172061946235514985351769223757430211904559675164778489930202017341505829255945816536196970560585705661018331726971627211588902872013916467676421695122522253707575502414069949574042386231244178622505128010863835365522374265142150618458917440191683000030505205785591138454196938429963949545715201692584016737772808826384648421346191475578325027538425726323558056733559047012958457149580080532149211646894585403666898571756151545660173575463126234756621857226077590151694703306870404075803785352767951598358307104432215953924983314645869370202128083676725091383144806724461792252791908212045766251339150382838203175824214564076927782721987538017895526152627333329000257428327078805105269322952046457370685713660257193893457553430502779580284419995380975619972990727276266975681579516625768856745823157426589476178337142111739359125249017736746121611376883246206355469238136350036096826483085708735092859724095822846126295235896136472604345172355540454017603245441564510219092287632178389907714623980287170932281224322530419232593191187938153858789343429289926344975007740438876545710136357885668106199314421494838432377987793989822123281199199218717110341670121462608760503046733867227499870644837575145524183826499716643457432267132632233645693831927691512934013122028304763287224502400483397702535836939457576573248749631874514919000570277581799826827249389436404730292164619167911721229987406959363802620054374744846444504249814764343807496449341478874318951884375741069320655675362867106362136629842045379626237745911866176181849675427214918330474021721684770457647874430632273333778315508847666769205620573106287707917283193182061339861083510222658945061628045501734001877974666719383223269237654314360698127174494725591054523361273005564717003837742210327668527090182894252709775202136534297590413672544382669717721157441605755267434125350717606141067902566280653858316404908507435243305742428698972421327170541066982746524104161511507133327909221841588470554651001829980002344858486663487574388266453310616976391732510838145936716054985933399854002494696739027054655432680179150386434696952894880662878964846423763680888466509454968453628786712382677431863703781449507152392740813511356986035238220356125979300247065555072585472943324349363798748815084326202572062113661652873635816121652563550835942865020873243448381633449976296418934035356800658198044158977233601966593811430422557191480032870549256169690601512092848325413483861488336505979718579410748130992628496207539402114295551894945211683938184905047040082477424315853318769523562181624239599008143125006342165923396590201999817104893867650317392429519658958937395118234242552352606289313300782923212812892008589825706050560807659124203303691085538428910022798388312723672976723293954618381336423185794934512925241154459255224357031136340062503478388862605439945853486920237348645335218430557484680548544514124530021125106491305036738896868092208341226464295720085360735034087272615769794521429773310956953109044487388844895171515747320279640456926176922028679594311464320644932375488254840795751854647483725316256238929618881527320510638615494321717880189716164278991906560747187043242943952534566413951858556367650903166996534090538500652015329199131652240141263494810158833384842393611485074731332892191048903342571014761652106842502940151052872469939058411454223872695888340321008252217705688970927053143358406189154053232737947749077611689871199636908409380921686347343688682332100898456055333482168831178372438521399797134155785352141262396795255509443005384029033565978276951023572806784193141015154429107322800805615226661218165404615488973761678032529165194544275961279496610816770720588470282395372762840706821508986893789781398226969657701589191012024707755993877652456734295692261416619082470064504146803495462489354694315623881712758357603524545807090526768974052770467979606824238840844786820750341959624614453593256847927745852950730006472468827169922559836694723131936135060862004225220775212173906991417153836124650666380891206939645519666421347090382831055515563273067571317362366963376825926662554039317206199205455751798757167334484214434346576527000108737977425804283169147664829413698392937387627095320549604712234087119645579041442177034891087768089377626567198354968740108741578092638366631755126427978758801962192157224746818647482002843353105122749235438944256632211561630759496408487882562562700617228416071111187630887906673456308143893603825551109104215587012135838847975129512967437468750372077205541876671721136785687316033429087116746350635265583699386222214042272387142548980276699086050948020726602319724352820793179422117419023543683340173265914547946082046449047586504676082561870297879515362078183587576369993234663020504694205444569085390856106239014230997905287671364107870244111788463107513284964368839506048412844366363898769505503002337670109663626952557476760767844220877489398781770649361415518501389681612032457324482362348420158258440196584219600021684471475551232012831080040731937047128638389331199568418908582118731517378133650897606005953366348353314615140378659850941506362414356211347784986552885716368970945156651459913179588821104468832199049399761483292799948380119055190581523356708378452354772497991625505888678915297179969496438975154838952483051165491053161718684193014578518374632547669151570760487985141066462775967568945732171750405150139801888140192365146092311803881922574153904455507846980611574613258743487370788987240702436554266913794733803870656501401507838329823067795455903266424514301940470503617513094364074071234012413449081110483702612475305088769890534838564305595843578614602367777805972103273345382564420399987970629113678883140482462273616719328437110122174513536681492838631706535041254064411238164102931524735100093308408187579375460501252272544867447210026235330263887753072968432547356409411823964586887481737535743943220143166871556708170858955970703860444359838793834062382509291664916250947641860548203387732224221927804334697442873605336068948114804757939180289330635637939984283268828071620350487775300916764362992803903434095647695957024650386621222314998029100820911858956039408161653170692341200871186266264325762434528414880963829131909072563547548296559802207026778080222037967514844096946744461786051329617074059914360688284233826189071125873906425943522959837416564749748633402881726486402671594196190653147600188776749475198260688127009067296146903271179717941155183986385293592169114641466065297682499253336224698776369153372292522822148125452812437537237392141413049917792947437621169500347258013828268018476089887046886504042579882345313544299633916822824052592475790644029459131809276392651336782987717413777448484212053486176424400774416432717927019794140435199155473457847810233636152791702079511207411968146901981544884829128737135561621434729447978322273670892152820370196021500741289411910520813560240633976236682063331878012454372826788170656885570290717305347040115296163014591866035913301421604641500879636144904780684358119180093106711742774320183106135132707018766777429363227047318411357806314185714000863055925674189083158124746637892028932313704983600719686613006518015403614975833033000153990063129331138739293366467747198057406011539161192507861854252141020407295879964517798287514887805785457288081915942004061880543032041327585383235560802161167109229398154978751912321873778077171638723866422069444524928730877183151712592856161316686107333477945475908299651906247924465704825424044802961277155733776018098086821370347886931540642494699864548484235826433089508895243917550969993673197125108619586639182270761323561144572767633536094589314162860442910023038339441104216445005552502180569433162634705232430179830200736421373788238925750300830275992588680193807044546045717784864068449023686238062118248169139568493717065190842612119908320656439075354066221480038322208920742741195955968926725887332012086398365842804477550601109508202491089785043347759807112747992550585321318374738851274960442575568553397881011221208234231160257517878408431812701117694717578125453550329167143013489968345466994797559652622825868420134428569517150843428848717945218745892712775852521807321858412174389549547651743759455557779670732297945577726969205498910113578758287764673967656671215199496164514646825490449034290221959497208560723888655161160898370466997150985409193946685000342120060968241544867095988844091560468166155423227579734282875070697514562624332319355378255867282526282912738530730470198823461299957587174685115314393465832511027375940780562336823422047965574820299964250407356777571150539367207190893954081907546411871544055241529426179174842766421929381867891253877216036700381947867606979294366796543551961239528573571836174251523555968039996991908776018210706114804910193633563974945450262939725352949143033212382404693914772871342296359412896075459948261817933904779675875899450217622819137641303666478713659627187469627220709885707311906740746467998132669568905489035407100413678896421401640571262366122832726457210104613452512307039685777654819054751930535797405670596968402570038294233396490203211036222943842750419835430030543323603117998212310673617700377354370262010784163671202175500861544039656393255664269431131182378484581028473578154985661218493743263294999625330387730808008932382844112665163189653606529246350021184627905566372854322195672921825595657313538609462257930746086442364837228274958973602369458527003743456548516451593143787742135722347240289807535676196049603930686734303578921733740518442143557690155520351365883465382816454426765484916398862465959095108512445316101975437147440755468751752240712914834442169690093703513571963657448386592041731071997074560214172493375084234726809538356644196652546117398657030422582680734527829330620669617004800291429661619734584819123494801318928562487223438862584973232744196508202856107368071096225437761418120117506286560105910320523067880007458141833155289338393279229912755537624999770711377746548815634426996191116002170309514239250033415602583145599208514074439068540289819721783843543623939752781415005470707852025178169440409948221315482386302085052487737602214217305438789672478942726282360351673295625147242614495133543601374044236301862067678389984508353508572258410522116619499668749767273078812931399546390070486430217979169321931158131185627622194421419774962629883373536712920123580433786321812144735427436820767913824377788402662938888712514509874564195471662867942100139142712056711673658180628896413873969706560571242940405258962198113065871868333556526727654711466392276983424938909380647087143768957216210146890299502249832777961619867320872113062720408834652876726409574039374933658412654327093655018342413265095540470862862644855299917619258257065587593367978442174624940913017461208462791056556858366199448734573139119360284006807524954194470248686079403544893468575741305427331115974828790657927319728037192158848916009554343640427332041855595016825612468158387046070083134765027856186931241430918616215616901562494543705602678931940427628026787674710323694962412917460974738499802767804481001293014050789767243363608705860287229168142388295579621891773835148489627239855537779995694437256692402678612004246500171117984819110772089175850285235627148523417334836357728367523923507026535423687043382897849602573295639121238845380929018367474155137684315652709443655991397904540086384334451653437701398470311850813269735457831396775808497323803673524921421007139650956997563731991275507655879692986191781107518295457990917677988879518788013408288585770356143652912401928679427635740610019869598676549591816809661613807853760664640375262403661443426898899036288171646315765997550249497405827202379164877483839104843570997114860351375358160571509399365293951984460984700712291662528206888787449316928760728441162192282315053078899162342789981339114814385498943932160224755617154315540300268233351144478021443324828772866225794620713144474871931032652874463084317939200487197647792619496370570580981995619022807470888021815011309463702153578527418986158753276251353682154956773718856528312947467001130515752482040068795468971356368550975601500769552113537867107432427525047154119397667961361266227938824167269472025919225415461991826570446643657575788490269131394206695358762160383133178246244493135357857862780632783032857980510833471806086370989580780793114805799155435945722815089848975005587440545271489440986414305164982649762000383318888429681634646811387142364863029154233587107692820743994535120930872624838985895217878019559610486576868462495000970750713654830679286914216680409751729903212994998195728082424211648560850393735632154225496479594042095595784421946938910569255330547991398511840002940324189615247460276445043955117842966642470575100270585847007524654471564229968883676392870308493479183510768327224470472933949553631738763808748575624051093572437271818393818104545468823333351619170495725119516453593406991905656561571351568199717972023321848139298364442790482016719565188345281019720671457025648691733571637948319984296505165577766460001903511212544787761366606337496279057014019228475744543194274806859573851196413565740520995832819376012714545199988711546664442214406474906506273554831830680640647873600392884180117096938554254138557062850160333975507011545309521511898266735537332599992209703007679359497831067868813416411389559696776507435214241888342870319023326791175578491954601257623518640057098283013012207830730330836861134434742151381209612188174339247435282559781905701006490049198178143004361957092475773974488537289801271136004688960001482858442477944435688935256473873254022904415517822568442337213884060013126186905065721500583327614746247057009324262703414636472635313752941061988592921210165307747497674200072193916904053162261598727135214224206040797159671281628143778965673554821927150068638365380752294952747401248099225235117890298123128663501248058315007007099572117181338033181413130444635909416635257446020312344325348510759337222501190099225854203936392544404130261301413397461155715543939129850886422819202128272938759634911425453701855554487627813370894617117569331559851596753975701969107259970309937717504541763769700932967001674596836189739266850578478224521253934447269397599113048829540988910130503481061271640047091425469827658249438428209529562221403477408206684127050299600145644123705812828682478082603700460830722536153709241384745235855984054216921401427708223129927477833380091941234891142536849529227044570487229855083344720234336757114885550991087742608636034336829863044342744762357441005780844254245818755768907435376911419160237513491365971079064997042599629223962313596430164313525163755071685563517225042535973857454484064010894353539452887365988425143693032585823256222440229041519951254909131781154356895515667483896489655261643469431648779628195634075487695469561883338645678099935838875940878215888238280115739533187620387419540327667755015570314276151002450489554452654053899072776433609173589667151281512766603968356554464170609813949743457194142676504904282524057946090254702512679441125846500475183410370098672950930357146487304171668716950019862754849205983730108379375949316073378383198426714137917244053181857282907144025868586686408530620509816223845577158288171281360410717098540513552144246619344827029300555514650758881365910384344798778388340537602232532968464065478224590464218815218156802575396651198733969035762208287895804131582924373063283373489944771568926980260324487582603572451064762844101880634744772161448082892059800918000680319912091961993117137406780551994063241148523105343388675597399968134399534289545951947938336178584097513357226720377100510458136466175392090544869531963646546860070777337652103504930600624331953134413053880117069749015413540982467091435733229478989282221774511470156497755332667367276969578337629924990133924201857895534578792288676075764934258019303069877536271702878298737598720723598969375170473309446534611401382440855158481274567930485693538187249949653747213256714627654945741416548478475070153487349506469814151670696310912871384549723824322833346383652515225815260281387832578826286959164189984926001438438751916945089948742199577978808984577576531871690139236892965273688014797275084677751966518796135008738295745263364931036297199559599968158629500720763860900490298437906345465861251578306229068584529518104089681380297460442742960384565737172357456298153218399275255618669581312047327906830804899083361165871334395836314226236502701331896847015530734273475456004066561218670588147710719741582860304743304438829194239171244962457392921891807243236758053047634161570931729233722656706587894920155858467123220471807070441495675661815836773231330884778157340606581709670139772975097507701193677930615782987640257157293752057036119279939183689418954979292903867114465427971903627339924372363761899622135216350998826733738437139257616210704330721828311581274018546192659475770713365644451256774970632612686545751786192078004168265626622285431801505822339081340901626466189668999312619323504682006699097452345869746997165077565734383820724182103865952591880242656092009464491030721524609466198116253217154177024843877525787998790621068296134257186416538038678565177310995145128000505673939280173326164857176252944477673800818331660976145871864611445937217405191500639231550998284220929965020207737021913629839319690595400431676055561506259001131361865030973250402876440341407702400350982389434498554921426976382409008937634574162809904259246205898268212558045850844063666099881590673882039297860288757792338854819996902386887070504261360531549386398607335058064733603167840231947612547956262426285813844669851367133415095235012070447191457883822313559995488260610447243757435719996926642143740386132627114374267354578674256734656546651591438739738206145530395888765269270185905051034357138091391810259272011907448977832089491497837008977698133509251809072693899995168152058494511712092811934051359838144055203718395336988098830024092919075478696676353403178926885444764821018870826356149188849850029922537248510867734995430421498211764000991627680857871474759147128079161958871121202956557962675854040083619734494560556739397347675882482131935789496304135782755187797278682007830845825475295490270719958556423257173769033647570185517269163655283597234926212661518300658623559047761593857443763668853489070227913154039067019510872208689231601171157056125470721516338648521764038383781084986831680185364968244479640517987241492618473619550732099915480766272969734093721916866080720771634407320252212390826129517097444373487841246591988160159925674939100180861319086195593869840209070539682020375334507553224451119545367822972136404737819508029102947526409454488061022664681822659616557171983306960138063931577512763208276826729256611078524394405385173817270227703582581552307751832776270084513287031805962674794429859989012782737783533652699010692045069856755088773063801193393968819177248699991078992306722971773073322524763425382734561383654603435191987127732014726662805798855505671774567258585258534227708146648639132837747114687554598998561890237751425907249532106139685700444535682795058832444458971144333020765092683871357550304904484308163155941353566624009048318451310033747843781207859709200055042389759452054047560973369614264902823317818008401489039960475004096513574038192153512141879501198633564872163361861724413198703002037593929874622929344072110545021501237359922236731277893091824047695880085767300194970922012022413044922826278777682362620498718632217911004557852411545462680176448912981867258513672397537822734615742512374949882295896544006904041937879791114582423831471468937222724467130857678153921129035678514617697772588642911262764901821809291564801137288187030454749451661278838865945078234555993052851379853201864253642061718962292713379433329335663045553044838981623100570911128478494243435078206463960717990041764671579470436905351654132516724950466505093578754971925282740968203331476810776624295457305677039815572606694133126453885076222722863753455539230760892227063163730375335348496546549237965697931525299263606682963727914210025346777973809980236855715812341467190807563144825787915391665677360985474710463592788400060294047234812866128396818678243108232408673092220832058249600400257776556191786992210692446852582840439778853290263878312640995333682918242254608208447209023354556658191262573918608842814379182620003418779896145976372710772516140161244911288598542060198256238219640590315852719477984795802642114350857839158324806946769280284674398027561692275400040275446418823104746434449966602218453963505352075872470893631459767152384874194980908556258746426605493171761122645548668368175851522054471630828112357520336156693874921802001929539900898598538193195721347828670596569518320386939595986460414187876751761201183259753165657630280780015296726946624522315920949810250016829117641509418662938200536946829986702738350166972036931150835249213182420155289929493282836543670503596776030629841924441956848158910906791904782405234642190440541313610138047737391245988555801375647805761522659801648072892340312884123088794063803662194426264277279640260441102583257833809865804702676457864827979410344778956553403843971207125858159392200080254237136745229903973949401651739150698551630694144102957317352944072475229025287487076417073653068612179709030902554433293925920536941032644344439565305089675286209677566174240887977692486624736548793254377932673467800079219734929661707519210308604358798603678445410357665774829174670521990986982814194078894810395234585461834851699985788450718760879017179568884889609030803943336981693697603073682572515850442914888025401971854030506271107555262493370772439193357983226667271056259188996593084379364846554604754479711093627608739818465705883891535408930377822862479067932943932783773855875470560074989631847102317492612327225279578359146053005861038204460284278162259491275895504195994363497315679819781093778508893444789713720353659227905022931304582691787307402980838474036080520237057928603943416397950746601180868881813724640218878074395253246503354965873574785752275615812110841227623848243018778758048913888520292319060391191405452212785078152767210340388424598561807856842608759230870469433826011244804776342654623201203962276378129985142427566907066283487088563874007666721723137770560054031871632066196973834531361775146564653880821620354601438889416675521648656100219880615057669713562152564527488299321821079278628520703444954086660308294950666135437538953286609593275092756469211660903131348644789519795466104078410864019448047536639381633814940402096574099425955037117633470194912975164506118552170586629665779037534487559374490015394144714057881620794634930013865902679156643130889203203727015880857242195661783885001589585729241754230727782905182693899442903697275852984777502562162805416337859807645345122686158432117133996322921824616244242615564713673484385173346520257321023844629429362720439672448635878634463334709050338383483199866569258884812860069749785347867132566388662370143861293464755190682600665641858782248342300062038405550529641996586350541596913675979465042368830736123920514361403814878126414240389834863710913939715541205485976993139394614619535273937431891917999547675257503740236312241459916989508595655655390920624119912978170084863870024891642063351318559525303145189745972884427828444975076275203909592455966965412757640313092481485838905509956226843468998807031577585072513491744277213997724961077512314219784785941951539049907292419561730858166707338789628846855309214835340228920865942775975784419944775594282909671237237727780939634781592197269752715224335281795810594218908161290497500509255524973921699677153431332266309486337970002977940821142226423767781214410574903101449172514025075091739833168097355425692901238152201047954925027510301649234549576684363918513263312712901369558776315267151340241798956078056828008814268895799317528066449877314061184229523460382963302645929187475159340361043700069918411493165411534026314204682493706308471023948944879641064488598711182994796401273865938056577879176899250753125259136151354213210790687331642430163164860953925735112870431235168232781695400845879458860016845977281974726063182867966865190230636487472445271065365110127442568130447485132092960267181717248140283967943548715509320764201124888352904151639261122792034513165689804169751236553190360787376567818119163923502795648346842739892292870278355323855731440756649469942987363866390412378508967876686710803830464673675520562072769488736049131676249149558206065164418624804916300667677753431847105314919910572724622605238613358920983455755703639762212726365459809114024823624632146054543355209473370883805759147451653521708058551684871174912559721714069507200749421991811891174069223953530693984148267310954338489026561582818012437822779245072198357373719424497889448977441100481390238732020636953339133759354342701479077732890968391561908036104567974044668657597420080266078051673519862802372129715082245220968830780347893798587217206638910732185914793106379750299463003384011037982355143898472119753590318604483237075677306412101578181322669068364804125720741130441310591586510715903280727316182193151153724512728942885439255786263057885983623999048457896027632445442704384720519872627253263422496067962684956457546841978644544135426956253308804400393101348223912650542315758498606146053363898544484752335951658516959407507597630501207182296445810771666871314928866873685780333496931972999261762854953833580356741301711151522337952190535676569790351335572899963758247468395625285903379428885766742517928512637991357910049682906748275900041008302431292739207937233891855066946859593842023348722892138744171625223851467012219611278433925727314914860367590563073653868582528567864129860499758600538393169945721150053155543284660788888147034135576922915259639340624713531654206965595114889998453571993919931932598489487979073754194306342772449849522574597117138942181619833918940258655630599740365434853365395425389340674665451462233046979890419108992387840974976924206547865161699537572453138959594858218873729628347631211608929650994770864972220563727945534293013107835183350384996358808292277632610476787991037820378324916993629921817114398382272647077205583872120495123601771191401718330390045878523948364507215725286290335556649100942540158834703806105848369833660075457864786524164087888769968504075518951293443738684168486079969904541087810568645896135343716332756066796189590043990669230601068370579898817870464902819683119386006174909060209157674074340189111654019573390608611004135290033110183424981777773318546836353776759339940866121559199164569385277817521681060199799555133208038075884150089693026116369989675166802356729351472552644818372944572957614566659987633978303908794987702523398759288488754511390856947104244779948969018033937210454721521300287512511662418613767745355993692246170537961137767183095658321025492516803316527808321084971149764554802026330574828919853128186785551146661077722625443298449839141276061149927800543094803627710748454025728702976934259648308668489645437179644490732906493926794901393559237599547778985009153622274525662770035436114445924771081097352866785758160115486685205993299227257695719822456215496998075916220528218701667812246799000918208643587434526146666245362068488668567667893151752930246919346597759390254283803387265066730425731099021323415055530520921538601725370015974372667724760340473443093586915478432533952909438184538086359900379530679000010322471891610428792646486027048197601993862470834890262290322584094925340694780578992376843760219691386258271621183411015179249466352669434266390991638832529660763776975013926340332567018116858523031158621123350415238092853107743660873751533904810712355978830555354811339460450361563344538880056818668945824885763556672981680206599612542361038884108063867664246739809508838783130738812599172122019491409293383192639980205921412321075488051879261894118763127332657253600524878148244234376273914989634734040617153413960764904086091686349206488411561062177905413849384429073523168591633270853705729221206261417562241905310650626236246499786519846246222840851955785688156462924898286773406750847043459192518919309339403021844801428953861608119450350447069650555435495883180528459449692267139111794063190795176155722291913502524699365967154236461452902327899464946711526082933049131075721619185819132908272857017310781322336343421722415643605187504370233073830938829663308051404903367728059449916183518017606316670211917426494198526905668880493354789428239989950408829545331546920763309590193038554212909913546222904500320652179482834415202439481319484762627653462516669244827663476813958377291229564049247285247791631603258525573294601727236422398749927862644601489742719135195366377602375525794405728655922015430159397362156802996972189988740268290669787749873495693755964272838011937216059678947237539096958874859521955397873525672406355233267914968570039130520640620941362243675505891530031392539293601615470043346373772852647532475321188475745231309267780511831946122960683403295636745431876290080136928616227268568376495664571693544443846950395574644779962471793976593659464692581273603402970070064978523167893196506382789164941240719481035926865035449555882786067524861002570776161287813808662696987334863713172607270897880530006291107717372541880862119907418369952309118952001340475268431948997742576800494339510573990056906805316797880336871602809680376013578676023693148886906230772482840050950331463042703684747406411137421892238865038973379994015837934776129440659851748251922247695355548082259919488055394752823546937929426779279172059440577483183550494029996870764029997040561723494776859268979040389608885796420340586083440239150689083266320168882377653987897488573245684082480754060875147945636092719330478046655855132579948320322360438272087853772280579062773069680458706220071627135599936123213962696230586519100367201042723333321141341998850406346184391831767537808694148864056466114155292582565448329456574005218989341176086510354771314141045119251161057497217554175054375362123976303229474674855167152489186932194863454970419660615177937188406248330954744688938749841809836522109508290883587706611789719825082226785690584182369924766002845506649982437233876212984579909087378564003338334954312582271488493898056369887592380169239719217738296806856670010414897274813050488774204418044031581526674535086299341223518366961791689175401036555544961564132126622909917556918925487202093461886701478265966542978411145915951838920338160296171479034620058991535538792271017842437065313030614765797397974601463392209902257556808888670298980857095118615232018792775424597420856152418477586984265813534594722390664966393972364708955940256484226028272014079869027039618491496996474032787759949322230187745016698676458091543120682410455093000378728099253796438519757230238680614447335924832389020940210100314736468421186298965689020677405956052406002444299757031769016942875315412356502487393010800723497782296118255768805752426108647912864546984887584950896359216774073452677473546171257916290432900112645583251681463911966813896350097496989110419574363024076224424008251052966563114520742724429468042877361681804720322722448898405211042208739070476677228581209616425977209053131062082014769716422547385323307331096786648305392174418676974834654732972379412834941678122781901596023304325325577955072581910103788359506697798394893289883373743642388936784492478784105999123190110192428018832210209291040081646578089655042490658664179205152295394691956748673199771077846593069447638975321666306947424656369552315561175104345225350626839185157746917861018060845837304200775299956550467373942215797835371619143915691340031710097462107961097310444404767641227804927639342239944362422178180849335886501277050096473220773002473411418173013976165986718208852870441794198371000658677112015645728077033299447105416344790038290714717616695231959112069756371779022357380935159415654029505110052956358744953745308356718296715594294705596206101758958484338667778040578651357168499758572528056563998406995851389131406087886356351414946706822294337026170214386056559890727610715571307564204209884126080166500590431696120166469401380227622366841528230720319165757478656741163994519442509968769554741247382813264419123574033267949983670248827485297752369676329476708738132056312994082688697320006775931240948216384911953699726495049109607614286593826804260138026800905054852991985967194639075420563258006487668286930155232752683199987820758523129337447926536426023950014999023221169641126203267756208364869913757040715449583714607371438455533497510051584256133912719410426766231028101802189140159429843656130764663608260385534817787106354367974734068010673400980520163180416187651174076744560941321682070694990491978878904577916441260027245191137239812013856209914494742745572298272670843200836787334152832023563851834971815853339410598193963495582669558644246122481648482476148569718300245941852390407242562674457691621714267167255355477154995673872519701144617392581520972143921785506332707928464768600178375810616922353958458452708333836398420165837537778595095882592858646409975769975260636698598867064816033712292350411558590937194871842798382220699669398925467572775962760105853142602237126104801538666987584408797254890307951308801967778630695010805045040935520645821035489768993743469396823407580840803363192019232842885538430308714060011543413155275677996952692459485349702163335708831772568146563075962090138885771891083774589788489551352973908923509163315477775959223525132496260611551810750604467567087461196450063993678846102156509686395055438677338369413487486487342147488354816576363370509639137564094419983593412805141911442941565245123966987435848026809755970820019304532417176175790456039973471653091036186172940574857353116428024051121977739892686437233956507452239913401109775033903680299493939223644518999415830388968690424693024077075190682634399425668576195886493799909581301989736946313056356054791282262715188894893776637581189633056241439789662888300887915135325927565188849412808883891610763427149077509647508083900001600345900850734338972929779729749326018571325357695454685041734378752422147334323714179723185368059979696186762904086706885659036822916525748557958971563116865140903509497633787252317715458919462926256169549619626567377019996253114371489941679255274455467224216395011173827438837993987231872263987686140892875606454070678981597687178283396399568385097901262726136572765930792915511774211935490762357991374936520784821564532668015972487247766698411287292284749873585915513544956056978454431399978597650167092219170048221786391089056529801004098700569001746423560074490024326781363596260705387061043458866128469347125489218263801230617995651659408878129526839735600997811688728940799939895280382301825499090672640338070281749928833484760748470464905616188665700706041206687148499742414376191476284976971132475516894325946825369616427365641451809338052566779814630269645507684560406614437032711242609294827319142454497191421163459864302109617487829483873118012422506411154616087808011919678902416540838669370603212822807350534658221103881178582787750500818931254413424577716279975099063077682892269761532700421983480647400313642024404470368683767173737141302388143677655624271471635102874232633450112820751319823345810092499063728693304114730217186625005222515793352364880631518811545459593556760201357428529303206665765122255682983277643301833951184364249592009113354623373611386359735878227370159257512986642374188961446808377669722069575891876643921094023784783127297322593946650141090254865800000732684706570910966139307106656575216187889350792153472242778385463291586676834485254381761386526778781497188232717076520754440658328787628101923623548060146199546252725940710973422949446329262632067073942620130247234017378257309501767327864195766726349463287147556924930495017323579523355177576718564656397984632951277113685020971510431771229100905237959174779875422325453070277424349227328428013447211691393359173051399226132546494919758628791052101175409937488874652928833302105530477882308068167632836873772910528833714146708667241133110616423866343413973113074630200379184116823098765537706099233240080323344426399500291346730653621073728403536676578847579828877960890705812595664188248259151312432633552043325484595274490980158127120369088336670990606313072999908412027143374521701956412227547217441503064472507912010741332602707044255105161217157784058082222617546349767954539146152728435626948264143656668896676181015412594865982837867610846745680434503495375608903750064653017613200615897851352018292756024890461902654302429231039152766802899505799710108611508778335706164284113671685793477044292031508128965174984811314682589649012603037120741240939273252977224805033156677672216110840863754115834641013332196050380184648262884735694814515850805267904792436905034964493055950389186305787577259636335340279717641694405062942940584247516892940941883647071461308735970608171985229783861554733716431424447837724181893111037647565134778876666417240328846548073986252092649815453938236239219905447339976212288566799075449177619952853652335513682527857010568318590485147905446053294271207936062149943997867595448326925974119196375154673743873172747372502563751907997594102814055219507230448829237958017625666800695491553559671186060081123963658913861352712341348615012546959346378780765216484186220626016241750072593304731017191257314919517284169978213731748876451252453216582031399250971125961940360264833697109710239495795919116341175346257373496525657538006172531904129459696708414201145856708244709980092149490798264213355036480766471913673721681629717330178199241283630062283264142165717766215970261221797645801966059705106244857503946542863584387905821330649256932023518435791067135682613633604845700075473502538460605365381318776644699447201704890616239076867494745723966280090228874332356196392709493319817833624366244452027339786878648617937916959544385502075188771171279602112597556368854880153926198518342537706774099893717363598660121223123177993934268671900955973633815377243454757348752272359812079252151234936031892792421159648279667843712692804006311425484487783767112652837942146351988407837157443273908169664224491429341895618729872962845782077747485878423231213258174152515029907685656565993928557659057663441127035434598789014660616415592255685806538781530648954214410636314583229510881001666728757631088787014093883917000329115112355560568741726957002776579523332258464447349360499525935013081610838606783696507792307635860069763620587524335994962699552423659523090804667712015721331713718830572594071850101586183084321052349796158145965840512661964847017720359500622975102732219351992895445969261354900864002267795954737864069429907773548439247669599052793414127333853127453211133218916024026664539912389827082166892570578527977985278757464597620049962023557928142715328247508154325700905429218183266320665283823412767124983441155497457076833433317585285181388483285327882722859518342963524979353356221688409188003306884342154062573950431366998046826936955243109066862551332081707672805924227189022425333163668605866896345066031660017529393143774034350808396016212509885586157079620329373797611163859415764863827426946414869646954298562263810672630934974698287145708804860265137417059465628958584959282880838787172421297176155382342233437701172585368706587658550672129086990768115421591527797257368793062871804381386810108132992246273467416727325127952633576224955733535607200614469134546705060451762522041653487446425583281335253249411652972837553584733097265255976725691319622307689424682987176444651831563478958915629466241488655642473010290189044957659937815229096101614670262323390758435928856544199682796124994925468976387671296955544868357436037680490511146282549148424832324397760620289021534441454809725597335820750616908208097722324272862671903778947336923659746548059300529853575375902134210116157142891945658921123544764776507075838171824393005897598654035873182981469602035918488224142457954788172858345729744965606486739597253358912286987799756170295316280173246736698064287964161585567608462244739830206197290652037160049067027782961088676526315556857485820480621448781759962095553666202708939465755109802606025789228918007954429434725997748321175644666332386652270998817291402766566339451016295256179307062888557691584482060510862742650133087559329437557904024018675245242006176772964235452703043854249006692608760608856054770043901077965685269135727450483546352757565932682049168984431419985001693353013145270402338259758620010681920777592341938854614619654898397534319917419855772812054865491138786590214020570208841973654239120901000037217082360677855018843421878159821562790092404389385994222746360041346220820404685245250544060700369507899425643638225112166245168775314453177001525211762830185633771214279600815662596911140771675497929460163362832484083743763883388751708481416036595125578012424372322523014901044831214137455792339608667776170611297552430115940581248894946065779465394195526146429903733774316127559649219176990155088679550590380164012153908545565119034892545639854885885240254629940644207693963090052841965065838343829902163645003991055364823022794480631632044723753827403419367013992440093667146937701688639637821952019253200413101201303341085149778003742076502809128489296466044522671445536411809187933891355726100209935844114500933651596906341358897283166941365718563945854638719416161193355212500357949870850529332226785131732903932445696498397701939522379857459795936811022949169411217643485350742370527220491495095808692911172915987772968809953736773661579971597188070779182071639663718214509620533562714749729970579752159518070349872164307343459932368972379171290920223285250640433436257652638503604240328275658591395526151386937502940359176141477965698338607011724066887136694148195942908757853852585921339546569252140165011611165022391255246927367508218070653051078191358150598869613938393683403268797027412961808761575296658748493948171150442872416133312977414328261664649479822766540470024587846122138549086374030718478451523294933324802618894388124937602516364628884338336974221712832594815562354553558107543075932323167416238925835452036583992891965627228839843213779880598464235923848840407412743616606051183761947556386066316693105062917603252789301242368340662962976106365393088660351172245664717917001742578900911218493058148575090643222943896127599761041311022546715401304834440018720326521003368312893066985215953441583780719744321707254135070057016291587865424698412964903280834420094161471938619472489925609282185803568277814710322778969260652931855429343739597182949477103275637160729005732417844533762623375787396651395664734988775365592899433793442706654583642482828365231539845658948761963762940468587367687044094485116620540034831234616198727089206722030179063427913910967571426628892376849127291374062181856594149962298509359962178818621914323704033505945618273037392978427714477287498330154577425848246414054841559192910295832311502705161858919281033803868680604284945371826228173629228807740411156208881307226029517416022950710095923576730524313217862590756678951026881185165045072520616851291768370946481296138303360366219529632452642957153920373634078700361594709502463238089597026314044790190421512169227470114068985543557268797428398575662777081217921341043355185767070461291040422395084467453210213869045476288016123130138834245127834883510821702433316552550653561624296496439755802336911323153089785346549935014488903869214734176326581647192936079385149748174018057726131477389487750977041411921003493258567415196290957250855887434938129740333085095725379933946699663935851000985709915768613748988916246312389416869318162860186674649991949222708330020060522206564977616157482312497637463844403053653845491876512856134046481307029369065542394923799749240085922320596696214684834156390245211431617920738712849200537838416731739648486910266727610015620112062209799944842884674312302993935680894861498357313855696685597285708378692002486254364474502019764258392815585859833793525984066302659196623528650147465142581263276839083367686914601304953510555931334297815862699404762488174670378411123747484423473880842118024631277417173016572893048273920509166199673602294187290386558682676745156941064816519250239154594265190160796927753197732773012718103808346793120767409680093303833143549196296714127198498065360152785802409255883355629253871449540743773972156098474721667933501035357032713169005447040910737668923761539948965623273621091849579995080205107008613229762418582825717356043138089693849094660068295944462712427210656178987681253097124372065126223869197968875049437747903383969465551482849170837232588503207765623618216219074407019089986308358282109014997664479627688861595118885030239136890596925790460881563831715347632815122833932044166705754860980149765766833380450190044684872931920849408804426913998881479950793345877337123833344401989434679870720095521604026973090224010882397342607575563532668675178035310922057092976573183097869458091974758285308298217413153208512049806637803248925529762371627742441205092194161429576691850765099842078992953349091055453199391332722717115728742093150956076960899795892853603542258054592170335196121467664844608735256309900834820972418775564856713426870753479545379102404045392021369712993222677863926508846091867298764861850465617327581719993012743679288111299419152407261011213230657379958953682567003013482491321637270906542033698354161338313841048392464038396836063587889132434001833799787380344177998946148557242007540671893521145669744224087144357818437202115736166169808478673755204840644976856529954389618894124200446535903853351287402240894228109041268800396112921762953075373926357722821746811330516842682407220571233628088184394777753941850653696963527994697533013389745249173266915110611995390450297526755572340541307757469735449377647498321179700588813086179476140410962186964665138642851075864477819602503856940169837628068265174132926804961746691455057766237662568805297945104982574956843226497539683264715973378255480396331432996390557046108492566439750840009901895944015055637515243783392084831721523139319530275828810620512972208229386598404286803512673205747790488964766922551083242575204479175959672024193667937790194583018972143299597576051601522927022725167628016723923836607503380538657512340531947495211303558765189295512703691905298021853011461552738467127262217668425714380699757029656790500697441944347571751494465108572518354913656874346099782394784708289330720701795104547147278604707436999086653213852207687954354769902286569544757142800883688898256928523008040243371991695566899499105051373865544445385149589141270703831600407910214023777136398115494925627150868476603634781535381706819924366984462100331428430275364051883938616210889374963807286558756719557174376516359524018643354816631258563516922288515247354834323149147664515033326475524755884813282110681235445030656126211084074245257997035862774678894222285823760390581452905964755743014296232324957953715490710792478367297656929899780049519371288921691850476817749073482281661062715192687393009577607032797718064483755126067494920276408115947391235267689676483007326405170312744059120388452345168763308367724261719418446828640817874580451250293745065476139865871866086837507006566239396568387450695339629132120541510325509880094765500813033234268427908346294054014494960099969021910463721161057439662269088066063857270731605829996758873754120538459096416342027914639874523299697696125926859125968796612009101803749368141156514419219836084328773883960922240064308876257318442773713448765426545134693987704678254964460258747942652963249145679306671431172936541831532657532128058716756933317758699142955492353650821633459410661154215075863215263398984695148757524977090251009673394133688601510906468438350015388269507193857138350831889016489343696332101746165958066487206903773108181480060760049571474608358293441366105241739938156110801442060913859391728541701215030837385462627517940079320670332913927956817246099484254896156894458794189781125530722564623031233306985344662040958428059716307964830803690540198862179570197989117289597565278065396934346394291942028684697681835427039691504133233153030576417216506738498429185191688072699022663401180175220751666657558973765059560614465874389674327494421341593188718217219748333892412793312142195702840466294964412479477499052049172634294007395420177934342942227753122068457451580992556132239721540532398111815027876933339287052560640039865469935261932384145294630158847150079185551168288309589606877114423002090758597788510987916587130418481304348056396894533482944037630386863106320034870575031713732421177162092655156886158407877549692155048763875306478711379875162435580935415899480982941938643619397289465127083586391965726809401024808587180053643274212313530638407621564106740560375856597488504324665139389167126091648644850643620534179667782243617528331060420116498398548580334256039216040796867752142037993680825919508181465912861899696470833412068257284246645521141607043460957251453911608023761067687964211715744756168277760973420383496015010445536986511917595736798364013264915881109805987286158299362760224102862765782105470257906292793343612000550202360367303552134884498523258448419164068415377055945085408145123271508724023045757260990313135290985532180114754597832744246937246831917369937041818300884082336363266289213385298567778373682588309664674415836350069406375062644680840252714128216568086018522954549657928321630029774886116383906826837542219842809252238598362612975628390191054612454752413504773487168129542091086949186341477311487641500983226061900069193182140483135969831216493171667613769204265189514352627491368139103927588807476764282285577612645689015007410979595798025226728857503100961979854089028213515641138228292701019844366482716693784390340940668144620590643637678640631907625839950482576989209696646666191848463646074860706448818559597563579959477143790054015849518532700710727324907259470670503458997183229531236195234134424951571455334922240195346496713653336821254565125569953471251970089485830877011806574473390639989057608557353765228587892863988297289228993476155878558538426769055138661456430233013211857455884155442972624077856154794212936059208439369384749564771080256020905187465352965582544350068221313380019355275595773591249215516866078433415884897865472960718206054158733589802672264690395564340542720892441813137560388301654225485172996083014584492069330609390131977888801000345756883140581226362116007713907462580258396916854036866884024554826859020341476847972028485525826771833777466350622370902199409624914626857276793929832633446079231683762306041751070182578693883831526746638252021297367204773284002860693711200700570468614809000968414441600858371659604456139129938679636585904284660399133006575944609180441422862234222590054005743220529527361825526956953410955355154671921756498161897972145891967125040989022144832406200472663858166064479874642627815196032664479642533011196911927123811641268108984693873898914060211280249718823953140069158418746745202629677089572520055401482931419070963434350889665059806407422607377728678739901380751990648287239295597291304457312886674223987078953367040031854492569011422516750371657054572714462389459366792517119551184894634799976669478715046809906181315328029097083493102013643917919109276081249968675426877355473004434935996636246130485816771767129879528600473886579705501813937083639739822443052863713304862138684730022447818424399824840598794517965169311329070359353687968855463246243098010763608783618248792843831165764039765602962439379145723704334115008660363962071819308783791647648360635890958995547003301284487510588006705403411088211382090869581466809511261894509565976493260212446838932435139560393563014016499273316669256174394806760545498994307374854463664791343949611144221356215355406289945506041496449408486383879134959222745064153444092928621327300102415971432591773063317473262648267804354870597088943834057609357864087025372994556251604892884923384275269786320007505689997520906598976867205995370300732405019783907116885215665666266176918587268759002995289456581593842700492218231470191355310513542665054270865643638703364232659038554260537664259733502873199759991683570513886045171607788813572516279584146251365198490257377424655667783686329502798420633640783077128077250533244944722651279620340457548506963750419817247252057306139610652825371497347427640771649477858520677011180709191854858518985257513754210240731369415904705889923996370889887094674836420451375700671629647143152276530672167862237069057881675826046899558545918618233745054521714703839430390618749380058529374747542199625113880025380220870279159188742287599760781094263852516504637627449478352053729742676763355673943035442066437449027959109559200595048650692052934775238070523269014343767742738948145721605052997254056231154624339956046709487631897258064243118269771388071985982142978038261221422436101646701000047644039676131413026892095876624393408970422773570412568220231435939107696700510525914699972978088815134791237757913611896944388685663568488561876377534307606186881938578691209306275733026128915168891791740193417925284862064949029514287751459402414129584234648247327867970618966130339209779393431640247001125905895154759984087576088815040045990735802828972260194051200089939938463462979292189360713124239942644763211139355282051522741117873688219335130541605738439239825449233296363997493601942146592818734067133918135240269145506672993855095074068084923395999497339652653639560835902420153757019437770178885677765984478591141945022159511120041266679102297270796909674896864039556803142473131923883886785603063976847728841273269304685999650086406477978218222243176170840425408796472770987404762437680793801066894960440853021154927350761508788528102755554145919325160699322514495059411833415222864366175395938686148018887641870037428942860192080330636977071038022375231563774859312093154989815348712733369595459648765021415059135740716920698703394862537136228408170808679942178004263795569307710257246596946491247576274949061213301735827527891792531374212097869657449847940243693157632788461782629768908768662104317477913861866556288592377303859628375420092592588102395750609018152681037388104169727026594539972364150341373710493610686465341339931576423179433788092352520642396181699714330698411554608385112887990558286968919630113325403995639141377308621354122784751804650855140202650549696596798216051422394600312788280136871100025171289414385897012668186785970501145986691355339717103577037138272071698790137685409408027224624256147146521046575612696073242864052075367825094381307826953223077938725038436262709219784850460682424588483216677075877748936275604859197824846895923812317738171356942102888515429698528017198571007614854442270632594477200472047990747497493395996257657042100695101223108826330882721805094432248950715472859828675209174344102356879577157743885274015057097967482121680707029166543952497345125901757484224973587552517573299755567211667590118825160698622097163598190610383307336897370803590384306969170485895010882128355486073810386399935351182179720336394189158152927035378822899706683968886286435281072028795724350872551779225895772456618566066887705868220869807406618078467767965631182959803503100824307882362652736794352074109730304172662245848214074819894898347910990794969076221346495238429706085591491580229803921419790308636776214863269380165638076003360784887819426305028922898841225590171583113689968059468408722625370205791374320671658111691219810558252489868219901534895709175744253189063689661296185525716372414079534792333180609255333525362511645603579782163216682806174361700356999190253884574782667420530625583424622553881932411818720817427135904605546640607200577368780929549249237170047846646360489086585891208288108801395983401141592970696397158101077389568905753574754700562436336335655984348504381978649762617874518907104358074343789756326866867567648557053547591707225287508694665698816440716025186867209528699186261723331537772673723677654540197834130879453561880441878038877673766318126874217105228630427758051572627346989397286252471591213289259046000333144581873909667750738984767103751832237149472942833753769240304257203477592955438632083746579626384076697076378533203952423844206610931949280307954548866769533294158230252755310498608221368697933857908366945429615665077032561540173232858639171970148852692435861880500529134463760405737544833495093775699762197953461764419274568436505120578391990199651150982064347273472160544247795767462714225966939194388680587928201514305511877811102627865162587953214180483649521249704683877810340456152682440519949224951117192188468740405284688981357126303956602523880184637271588637272761102024732848106039520215454866391282703570467644513491985252749193583047265386644856688458803062949816687934074806691372033887664419887945561489851576618864308720677201173844527502595170196346597975442287326945887872397086192109015324745554205474717716167098211473838141891088960066297945679101854477495093786014019777993024421543719291999674043727608340999967663194668918191579899611701763418784541899304955201639908642506325119085841855269613951303604695191080361747810695605066063695317623318584510733105037104342852424069613256501419705743698955516764867372442649564213311945170207423095860829927644101395012890176439494497244626932448722411757792210818043620082976850000998135161057661376128063412290937143708922569279135440018718728010217385490042766067402461919173947675260159438715927092987490508176257666948274530424095891348751053779646944451731968658601689043592572919493763057137528209124566670770013336450520520969748016465053297386944067826615576772817487089853406328620573581794731298846789493551608434895427835831132005785887436608954769654303020269573128243485317512373899787033898075636240426401000015644833387168448820187760849966204465283230981895122417362885742728731336006755088910239091739489238649653957383147933648559998471340112582990843645768128628543675268915075765084409377909921244513239672773992928964204880592147395175660479059946924077380975901892224434980857286305733756818046164527511918177857829224331739943732418479002287205974618453120392147108503058325528393827772629374151088635115871997218900142485163312175980128108466725890255496420334298480085759837842790084871674937072050181976908707457903974691717157070270048572701660445293103343689040328924066398262458065928365311659657610556066077938994679364892191964994597551001878563541115717474563468149915718540962783062990534526698361815317832606445280185529496676523996615272674581764517797797277714823854162665752910930387608512924940224319284433804223685319299288973163682884164393213863164123836967463469373223200609457749951185031827343111854567191520864607794847911006830890247838571888553791040892889872333647001914436509954239806721399451039959754424328205596618417662165018511680581205665695206498685260094187051604283925092395278075250467775422206456382743867494879930294714991024585437569639748853640763855618945853876657048303566968909799042489979978938610829522032335037798461202365789257882227219440574001115658346722540602938687780184648575062458108739732355849767743629169465707897280770813547253903373597593252918691849961086842065898888423179835347059015033365974370189379962453722941601661779706721187040593779013607295369548059890092536319011730037151256516552292329365102562316869879555611201737802620959911356774200532109159653846230179352380428039593868272090116922400019865697541711392708043410813746141352914342766973018402674173336603349282596661024354254059462223636263435441954554000949853254463326616670726734396075087957583593747643356620766025268200549082507130034603473374496262673797049566918284497456331699076983058580515285711203062088645764128579410827396715125111925344778629588925676503419670837283853512127321099236451218545562675977958897884148893316043606065949557029367431810647708470784463621588148107927533583745659503232779220189534451274151630355019773648352334140049373208537992092702168606376916703429414173680638518192048395960443736886288000020481927471236512545987641042954940022516263610432592285861462728968130430838614472690475597545838656310193075367156552427631889990661028600745996145719794813515637486480127412039217186280679499352614409193509761517251243721089574329862398464629661287342906860427893718862817277635798529022400179336433427682126141704664182522432628305493896021001751646053699575880796798348460392849640164849803243853595765152798948475402948670488951912170743681502335790481901340401406426672257840302600403159668364991478791456552402024510502814414651034760215701817249190274608828567620289100452904148902476673333893009376415420998082410144168465943471097762746860847159174533576149188525875793084898368763880958576294890920783666394751329454122491471428747673568900681357893473012029502065142785871669457758515982889000959715174766044430723521599657121687554723538540383582898472166985843611493897189057962942258407231024945682873502691455258237940964178826896287386109597579202089134791656267199452122923050039910466020645108256141331786895209885795762246346880702881690064497093371017726809800203880416419544340840426065408235976580866481756061128452314729016134008642938008153229094025387536540343487192399954119828676060871621843379113097424244010418188828507743401884297683133179762359776177626297320930876489592040269370811514312794647045817120769390126722994771798545377822585692769407208059291528627366782210354162310713828921710903850638354136608634532804640044422145068149890481963601179489575954160751195443846103510761441222001159792441592436761684820404965800584280289991110734525402231679526322394951947759152466168434248039584177960466972253610236470932724773409111674759204618704737733302245355271205623652577200961676508212138776403820162600421835209836721526058699558176828921116461085615187713645593024900419066704938633570670443157301184641196532329534978908407776863411592705358560063296160398227328487734566275342885511954915606594033561180962864226109414291080959181306375060470372897635887448001249312185220581908754289154346735153754709497734801708004206955098294242498477277709977702677958755080883741648343762858336843775369498048068335493200198200521439470576753230931421735257203178593168298896171961235204788602574016611674316022088015190397746783155072945168250851677191309192981628924416473411798451073893164987679359617644647178796642147556997389630208453653418773474567199943662418712510361341518924194891387151436240838402119937521612502544827340335839642344985735165596217220963161772693095808855744594556238662103140783844056099796230253072891825905946161129769253568159809657925795595055661974628736569943444537127198310912260153340889339220470154330567269906407548627690895482580801097176702557852290497252124642919649806746476719625025004356381552760183168017448599794765783746445741164714833538140246445041208319720579923540692195118987596623884282749655403902983088600631432840872868848028505553708395495208163243088730552674774354433444484169765978885564718997482701734134864553688684389971956006514854348554019184930948485961809097390086769698800837109883703467709691093544881088924627626810385284621362189397551295000936601666408257769398493039532739309460468791278511213886114992877029708163399886627511242358567597970071752249117920324539897160330025824524222716774841239473063890268361889765245628094012672161030859951198595816448490729725191977216678495973345382837716049300457468217759534858835831342633777822405487183735004947351056033005051674139948225837295389510231640366770406071004037255729232724514653744599159658120707632698822307525686174005378172284148278682844302875603884500285234842291096079386048415909559674014023826491776725454125626817700095095392903086911062382887219416536391251541779677985338274759048029644938093257785013005653644019952098276751498508579849473017710063226705415546949297856275101322340193396588626480542649166009922128982035893852942480325048598692653037024087927267084490725376698322301910050773476061100853245124977228937780014220123898620384169663741580241976503639833531759859631282868545238525850660911500117917840080122975473976495459628812739156393310533625102625823125184584868270168051547226928931893268788569707576774348762821949037898778273090601933562460786212804662652003217914770512877259059982969848875945701659485104556444789534262244705597295466001858080251393568553118951384639136887230354607765080571474229388440228345920169874538388783885774662986251119965298866061501459287836013635926324768166077680174541231511614398738653619251828576703067312265032164821898076997643482872929365572797250185191763401968879752575808168050319179776132274292572919284314723148038878004795087956783800527286745087880543862301866705993956145686321960089791670659168493388291390580850711646842017868262623229177101763502186888830667090174070855779402140379472556062047282686029374070363594741168418787557528831168435396764398781634719014217622942261747628913361961800140528518360161215016207297204849325481508609789941624424108758742987180944863860236976942764798570027982782149922870701625978329988031498723252890016071348292991607744468113064929689807474940763167277030426362328090975620494858431188678029011872437236360317567796900406699607201736569035709897930360017354672716712779163166394036531431525038162725760074496779772826113429186939802936554371718633598239041107196683251714011223592116672758410727634523293552376752219083179820983670824978224712856670966336174104765688193219665946945328215384356067032875830675794622514473563997790303445119224378675014204974906744685970628510578276312343480347103487282494415531526482346542145167679008248098616384262466919376259224035621666392514235381064044102298843494306391078415084139018320489534598625424498756074262538559336422602314691216823164409158998766226031133278662169530346544164158498704419519384407400113060697457303428476378495215992364229478012531882230409428994870192845666548099672829899233901780903655392634917684435467951236429591583187643778302949906405158865619882921679812262767458224722262801567186062363137108031918010089426278014857392861522067469921740462934993944371602033792011437060779053393377681817820973876718634659343294686067173785328129489511208797280918203023486658643568560394872681948294394924049015592605299921909079030600082238008799153846453243045332674327081654095409556680498146663727137364311321410596930200450976672985417299730908006743075050763501165696483275881263761468782915583838502927874418938023858840532637538525464519466177589399768188359364278703072191187682520605766360484430058849631119904942284859329195737816127000133482214593205762018523111886484131754803088978384180172250398489923865231754132070013167169891058001296907689536855769260859170423668026515763726805393686829423712141406773699280939439550243102201447535267798001327227823739303577462718213624952262217005094867685700057131711054173621832961269530898494068370792871657263246588344300913613817612813611595078813070210666621636452551250132288138976285203022692735478897611707794021435065127786761438359913287950595935123337682433672315505100740235434012577680454340400314622482017114952844497409145932633181253862911183520977786999738839128435650538931548329919739867528244466414030667427175100015357412799346751700361396741610902299681031973050073498129345699075175877645231218069910056242212092826290375834436446679351669730842556508695877040809583860325046851750457387855848669386345031567335274690708485507414471830505495454226814707396206207869308800122662809731231793159312221469595825083451857504355670071131074442781016039436581558122988324788519597509377129640432245990313951397096497314056384949571574517855036723819035863434953295482571886406470420289606329951437752269387276415141552047306062087458557779910081578092568853409283823416548723349394981907175283894916909218989607075164992579503956965164312339531487966186333205561026788876222763359993492018543527449663576250505801313951668341205054262113419783010129810041285401729292332862395096388494016727009652690912817502338852846033128419604181449425562828927997754414978261485274605081953828111567301577028472194918044602833924936596751759271472807817675023582270312528209868135436107265550349325387854313718088815743813644707814620603162811045090748502994572582588994310942402158318409447422099972145870907652415521691252142926068746612174158705809696496354413094258339300865862834146087325942684124004086574996584509144432723430773317011664670701366749565470474041659611754430115838970725300391731340634353788963607923522741112889018728267819923029186967187180416432531195332827245382611459916240619355025330478991181190085206433709512013077780023686382406862840522458392511929953894563596119451515541180870623217947179506002204524837565639363220575465941455578194401249216471063370213827695385474391039999704739633262057368813569590099701147252466152940247393455581509259316365443917608594342819366869494170920676850793962220005432379343652251830291332890813026610568639200383814189646698497495911075454325145950157452998330477768728355773515440418738412422385136304133901173640141035020524592347759232081802613180128902938088781370600719398347131748544184376662875521534440410879077955035754577818888224015888203810736006264226216483904990710997253753049679569999440448077513234800598106220221733831805899535881790230688484856066432919462298099777400842132464234870906638761913979469035165478623970188547378733927198620647984198473094328672665640198141699910306070256579101084874202241522910991479171677562320755666909435197494742079543021292377803956017796850836598038692634999925772664610923219699831007036170413040800417224957765433132601722505077530856324820683816381789612496906399425240662042921512882772097341617570041994431335303619195692171649542680948261441390360372846486306197332649425715223945299248700706959762458431572223877387352713956543101702120825510660842364766883735721834365509731568638483526867579810808365805388374245037295329389850020375940976647637131147537363348866232799329250569302615480707828411218608369341812792036885076493987408631098600249526536682398194867361452749845911028285358187727662859420889972395931480596059155888211774661425781826900730379441608778023140321055972204880848948138463472820176261146511966006446694825052878925855543367349997360620935765242335456251501108820008971021874129859324613039629952656039151771261090102329462191043995500549701679639178069315480039353391975499708538921963364954701859604745826906539361480950492765592594487232885962552507925258564411150120897942263923393201650711560691728265191506379569723535798840365617973831606360963954206568418379840906260625312211726105081259522579402478244300017885061858084151066471658605476581373120439140183323015388448098528196485329623667982343078439021300656420067729015787259675655001515056957299307345738397468463172636649920629102526340696241672231475930788086983876869815766159844794565057222442806854061209050494823262405812314948429003754897617213904695190732720151012506092080723990109048564807396811082919011822072957199821263783524934700130227241158324974921933385943878101639019776955194603810947262424867472683739229314933277385242189759399256696462827310779895026186779650652911435920945097154859153010410303511523594195208300716630165315962890941027567868181755802098207966300719545398998940607455420654301551489580230256978882631193998926875792916668799497485331636612679674645142856985944496953406635434444543890802851029399095333707970255414386042370083423571064694107778342667085324082258646249446328263111556086415230116810245039032418507250841291719744881052843190931519832191019598835698694517148130916778188453425077291430960530420496599185239006577559812590140758402174077569098100907874879051492475403616654624059064181173657997319570485953610715402145367147919499224390691041065469177302500857449066534605179206128655082526966408936061864807573024048842303591414279505311862873143819835170412667990317051700803481144700811325783873900071371543484455704994334455191696176259073633541478338459149115022341482751646531021533070671410810769477733105858536475552988943741641222381305709133576595520525029524738523168289393420081176777228345843240505536513223112831879887751574679525247810108641863402729537804019956166732300074870760981022026240123783878161122607289092488184676791468281229902621919621572678195630960881870523651922870252674170751600622165631749320266058253522229566343961718589210043934230364800977624586409141634172660265173880348198971547375133019132153560211814493155232964585873048909861646910893965739274594260750300385889250178962627085712405102782633635529060103619694983238992336005378074619414395751832670263096782908995620563550382083413669457363658069787365738299356458410146826562042852628523283894056947644927202682611851791319619200784961591025305727672713457670805086261855606450259918882261103971873023951856446251047770801009993598846661396614893149548658089685680246557736125250692234665367046761848999964572806031430096438097840386624677416109277480130059675104228846806133307754947831339384295556138359485926536463573163607273864519556059691340805805322647591256434792780295571234145950941162033878520590448121476343244669198069316478084626114155416024090458767733842812826995485975399979870356465012999446141093771702211285218507006620735455454003465150668788444589515595604748465788651026814791097774000260636797351399874672457547170096682141621012557947779774605413999356857941868215862586134706313802800733705585638169374877285060364917793902757691132694326372887817080081874964356344490628171714301285481852008751206778164614583373313963377877692315903624740501049349246393219256600717551772070161348516979245504375425605606783092347279767620417991856426027534646301618892760180765175519599613745803215938318280432543001216868091280178166010419287756311673924148819397652684893742497755083985514009172941569796147244620150041538139720455758253141516212680498284360828584480196517155574313615450380027005748459706898326207356451148643377366922472933751213203948742969768198117300924914764965909603353557021219355401648310741326313542429496928176725612512393890805935610351216769444656406329135519052740006682552183392586466079262818565293386747877639073210419991358844122565378361049169574550351543494641482713735753719383501205736305383985826327554892233737924732726973294860259533125822899260967109916965474489493640113039890496187872221989001570540791103131479203176695560300299396024282040312672780010286908285993599542470711648666369857255626034597099132418343621874607563081060970333661982977733028382494808360041134700150848640685133499191379466166040702719523018775527922378356993759562549754186412879566013399181392150213074923527433463182042417012997546589459867007426186419305495124026852171964751853305819166983514289981247778052568895893641079055375826009434164384662991698352888268273424668153704681309282241503598256605245827221174019232885795775214140022203051878581244821915769979294942899205721173889730296464235644759264772957338007618591093946892229920213183698467931130707709621925780156433839653570364021169427638690180889243886644963812780640490646844678184847189888874257296050879219762683632814647625105652947018831546202916484218828528415046995033561117583796722363466382996805052856786137751738789294068983724358503963843950306413080543797732152293681051178644526606556457373213104214884880490367857693987518437894862168304358492228317332056752761215708992827825982541368619140368024859307236209281814741793763261701930754847058672112693791717914016633268885253974580264890060385453733017868885583752769027477390386826029499648487485055315718791711392416504341864067310211494617227076905473392265811232290530046327398211106789990814586520575066584894311275272819586196103577931013803696606521395734234363845726252004700708049551628705957918558601794616009313081924219026182873714592479797332993170692086736698668887421868495309020304143382875837144878138556222670498156257108795594096502934436643406556753309007901813693921060352258765658483915932721738452059655054907575812174003564007219097808037670931092339323709128180753347673128279962324946603217259663836390024829229378812282211876982462438766337367924407782317717603685644756124480883255133446294704413062743446836667693829934705850878028159369879441433888167878638506364491026005633807478618588434471220597913854675377971209809102933591367282205066731833498478275781126692889069057880083317047234183371668628386632264454670397864930702094966184585039129074959060030403854309110226423696291358357555982564318562808787194660809440817741646100574575074993791241703420985620419582641621484113704698832503380135939220581087263714462179635563597388301360008388442314650622787888025190875101431430578784413986606242470707388886113582467823468598020242403418336114630492394855760744493272424012273944264567078260653928178380263624667807725193584565361124077954413978602346932534060050325741273710565316869304982306800404277865356321060574088797518418562845452876083719933802510536527914905584909110133414760220756328769552091567843289999013664690182123098990599913652032504517938967084987151196830057085926028190125121621152506432176483156052307684975173969419718160038635392324311148774523680379967642623070574799985080703822115862620809521953607257539932728444505469150650551101989106276639232129872419062584398057816150519527720919771030130359128527791244103060713487029006914555256952213982848606976784224210013566409437905332938586151454762331785523529576256330689568112474843879503120313188781614737396255855142826012609350770742060867969235200831312746969318062556021280272969664829315663177673763599457847357330841921152980271626254292166234971081459588759323017120207325294515065040774618832042400681827991303744437015843550204296005267168980659506575870145611370475529738427480923556148908144041975624243461641372044048421419129585738097178144825782216609285165657772193103259086026946736637301935091923409084407400952406122513180813931319831056887767924907919005590960754185443458318454660657424554581729891793616800411293829847535150884671734300302336240699712241166505270938245284897717443303105843054296335447616484884946197512295841001928135237916273503324336850335882099067752981553658983449274190965960253946598674396918456314058758387220763546223569554329747962149390100869723481537385115367096037692962236165123010393102951274377237670666097784318806701249453819504022038639754189908280003433340517508443278295259701466507694108824171419775240098981628374424351980082381821594034271918226123314568683837945012194413211000079703834815989479620804650730014131316528013713244675968977476123346180694231345902092654828434248002022150050590039456325058300845197810091100467629405157259005969162817661637368721400352778788576792165892513155654014299353887907250098600250199589350170173302603960510932146104414175142949742187102993249691937619336391071854858898054854959799939996349801437351083178181086339279465348766878368437748225501459044723856168941299413073134873732813950677298455757141062125234074436293421192095338210196207830003191032598689971804826271028732755281354605347518980830317183072294302534621727569911863167074485438566003731267039165208225435054888022689938018932156412000733084813009580109275902989990936793699786093600205954410812687725648309737362008294731124393938179333781615207857368479238387662192884165909685809103299808364000481913590834806761394877061059722824932069385865597654618640846109706906964341795911886032074180931220950418364126718175727608168519815893101080553255152476013225451239810063627449056934971173999343286196644396759645318308422981149257784598250084181477424420977457969624170365337720666823184140838405034589009992937894026327127598607621809151334734096808019534497882807075800603069136204407122912955902326324425725059071088021535312229965342046292675462927755533609275442216495393362029717515099300776206927033989894498025574251054028003130322040397878893768970286626515985828816638209060939610753125573855555812436288695096450536142049280043834744358886884960675328178171750965465097295779510093367994262126623115511294295525776451760223365029491289003677263235977923644978453397473070520866859455077817737407055155771814100077512122200057090160754077792236067533773060562243563994112820165307693333425325859959467211261378517651671970690357232004213058042236261609569095799752234048257299644048855196340563308989532179450869895466377913642072406382566440668589130001755393832034508001933339966632031485955464144371584110172897430545841301540386949512334341983863547799677931271513820754433226994346610295537203289311296410603403677378169908541631479711161253138977901791225544593149085904839436124001656561172823288392124681468391078137838410320880417853764078398202454646361224755789228956495037439438611377320376955130692474556833446180560770568356597719390781328999224560686713712366759294569379642064475511128879307403859472392548508940285674941275907352945508177852542222316718537921824559977203096185852946469376582105615667968084486890776352162338100395833135480042519529423475132018653103724556773229041224172584074331296608461301750353710885716071186534542247826387034491739050598880202852270992992957271254494740006454580489038705726868670802069727829094625389210845941351713081696785544460714287676806779334877548540085795293893115564501995927028662526869386675095261603381320565755144771532079977079304160422182908335116803380979744949230051332150845498361591623247946425954765866016682875514563913769958165025398451812903981877844660725953072315665397113926434496347312996468835009104985735022708467360137234222741291683477955480577353240570145453972702696772771424219351925434006645129191158162998075149825289295531247229352501135522530538730924803017486210488341861561647090659159427557845791804179237223143963201734715271659942273745587312604335286915895640526720535609131250029671660973025450400891900450644832697495221659053346613636658052767242878978294714063186225750728975801020424931555975359751434837434309794108856885112486732578134217408735608932256209406663189361299787522316110628824744551464122777402773935907313910860868844408296450306220784882157238748387102375442590818827121550704873360881704263052965419277822623455485215925644467679461152808677610987710374615681105889226503215162316877180408874097327740803926470982844288764480552950680808023679736219827670474080287723940258764558293801615891151330216704269963604764393930587492498952601937349947960859100015162924869315706836818997884030390666202395937924998588221997521145926178022684141298507143419726119723914916769474183572218704413476990284199372022481928822773294421774381134462269536840251918973910543197960544947837263360781022772084596056432779675352808444313006348187313954751696977459086704194134802161054446927297107764940979024678595568150343413754644109039249864692033221761951781529248538566704945726811031702914917526091803793083925782339081881541177780350464868675129330815169007378556303663961573085199988644767532336517761153676988698271627575336345454829226820888643349590900741274947980504455656655102634872369962893804328296110912827138859196734046518883017437585504350843561649056450196210455561540852400257590764268637238366959405766273726994797382857128290110510524418275214789961590436911901280744785397060183855851753458782074898657308163584104150655559164728520428065201823439494062473704179930027414741415745934162210575720250720697674671907686170272775411961431025203531296134248542455293465078771662699605915122565396075149267937866143039192847791214489333388840768563470258771244559143351025547870450092392074120524247862725879901071639325003585584771713153708363292135631773518557883306757557644605277895161472233339912827187623840901584041928023527497566427940182230215068412481323753217625977627991360320748781160417356943180329146951945450583390112028340708333118417236499139570946578342544284540493793899530706276942076736580906392083823027800281212628548250531801983971774201228182471807308813802762549324579463008382809702017837943769138734640400297238485155478798900337087998994714476181586810054571989484763089090308099291584245398948493731994670420935313390151169821701868013979169894779910229795623353315995221850063302736945162964839029146031063982984496925230269487958708924023148428542016182280143421723841971792671490010919845973316765233684311097765268313886974104625002100109487223237358538974990809837735612542613774004425699157948755181155136306366660698452946906751686721316166045630008025098073616090790114030545679561472161236525408393944247316738164707351575849248898036020443881281325718373154218785709438026000422949130630086593615245482446334230490699763937748758652903884183358928152425851785101418593778645370418272721606582648289956546336058521505011354982103041771548996234960745001169569790107884933905701614111333986819197006307937933953018307380573469919492005477586969600325835493543452476627149310525440340760986055474914104958891772315467711003907296066487639886539592887840116056914487511278445240555738006860794759089736177983027984205430456813510724336527534909988318980800079342686918293424055176876083681908056847788392635620722685065491483255520695991525965847682554929059229852692150774388864644868143518286134536921596453875476893576734346004968852766024689456595748283165969450496375037198534901341126807934310369542589849988899857433691583467255423448854890943532985081700342776164188269269134818624208624515654612062056454565326673413662364130736223844705605009127658670228488001913611114264435782203776607773380429883261879376810331759869646510140117288477548321777667664546749298133805911800972431175009715447941682446034635640314637057792138331994962825583043568691220142508832013563558062137681721612063696576298772011878107132862030923236058660166914466970539405437403233221455346072388301716337146142119420031010006124787929582700366495159409847680525335150051207269735546588885806052111464068450068209133172545863802506483933453726790974328039124287589144732354380965071501338083190248406412196053301492950867866963457788532686043841992200684093595749153802468007344620656782854307723226647329264256411625546287424364256523474854967511829099223556203351274249241595019503367023723509732892074100340974322342542687860202779495485621001000357009869835995659608306195557327326070800710615026968626883798727709098377243645321993865005990139632698201680539196451704432233315345255173450032114527871494177867475996546431755352538440615004315925730626713029260211627885522735650439173722324966712483010893132556245054853249421980869554121620345511394632108927383627844491142026610595992158582419363988843703936895281853682184663371273985503587249727075209301304819458705097017013908875647667417515894015079324978108709108787817312033774545809290137512887885835780330366299855605294191613552487543649435528872198530734522812712740702190640886786164489530085499858056548959349361487354103308045487373775374862606723477808648236832136323863084681738827466291348888813299216260260964159006081961711056555269739374661265790023716882770226003279224593385173811250189981441110423119845945671445058514499672155133263116811898264880308811602373919280168935289551312027593831770858818796611546173326224736327212795776449080143685599351186357365382002313785107611517909573920405631402539431209568090884191174081843500689043294493926713096990007085551387429979326329827724451086128717949188726686514013446830239668631157995008924001391598154783690032503461960502093001210726043999353894836520498584060360101214608209299595012600644182224637280594669319222758917047294785139160128921485561007273386122146140261545459096165064986962788624642512587854023000980897363756073137545744345711913584827043446777778104025481616819482646156048705490300048136138586980048063862042153304013361315184610787847701837795044221713131217346069313075133790128923827060717908863862256194908938357756013780602683902269588410033546715575725688738896319018608668073774157374715175232182782057115636966821133801045448790717678757965027916342927955705311146742180850934770967533883826334292231860487060640121838371552703638718791874815875241582336205342070280069854038217963165422415783152594563872685804305486587934824577952880112984774115486800180474348771603603900145845153289556878868674432458475927591611998094032049475276686114247440411306690792512755272589390290446977889727576483581968314961888030101967845141410135825908906158477731675973713974732806725314920664791722346293784878501050578743554744389998848640960988982023762972285547241377962634838769132616636101546202221411358967786553851774570869388132294722664218976110834466421273822834864526510486841846388464116062760099771938767791336274106101929802883745532901061905650907085653846930448191909817336729566805969528547678670923716853887291461298532840229401263281584003893659084365410069019472496981971151914224140419632465801635574023266480108979405937546636241883009020706405706918294124734106737564678240390075879552106324296641488050631908389753783614036240607741491259029086061188778952066194071476016509204316775375560619513218290857466455602906958527404735020310224847377078519259159366190696272431135572902125568325221754230510794891559376649161500259176532568091320854707729206770310509553729036793236372524992173578693826745101019283189351814021907340843796935402075118073263232630531794394186704185693259842659498124055152260897685718170974159478759539240037805315457207243348808073197589139154330620474364246536774669416293770719320133687876150298025083933450401319361655971591786454239708179085810188725086424153400323522667987009296794729900331104375553600297380194407828085008247364804575667457516173202288908342066311088129857335794257616641809090802923127942428437610207502534523747545322031980935434843224410378157498879815599577562987772577888088004671449896109033824043193252239279528411566717270851951291157567183114723000642533198408117244239272724800863702784540303504954687862158868090130638244745235149898060643259075990577719001870613897858021323179755889935821833003954949758216165431777662803597492532067206892104620723241847746098328763098722487085669334150571305434909847073594948550663975456293341211260681740950370204262776609311928925629849265102558688954129732182386119538783603077575170446337421388114799796347962255261720089133566841813721144242942543419954760477030767568466263925780253373939538619152795816390892538664806792717535836363625624030351435045974707008406301290507340411574020263661001628218558302829526598984454125760692951931620027601780124570074163643806420014801085826066503890009022039864420502726121240928985703114717057669900946155215622324950279755665727970837876784892180656710451475380566642402164382132176746444926451170626958254784740549725158894843731848695630847482771482959994927855336659940810966610601717473518714668871045267261947036104403516950446446474734737304123091707149099640919898842451225842003777641099919371855073569623523250942604653430636341271072348207873101205058395113573538597225880849251522291708788477529064788613495800987203538587453808318262405931547267413348176171875461383607621699076755167627746529176654910499352890836580473781239040988696152025356178631074214096915055476751952257771236805317557861947172110886950894656994480434321040230590835669519910163082162977073567565963468800215947995789453118400758551947597446064470816262579114012522059783117008905061867161897233561468772062569759799898884746086402032170001509300452757226280591776259021947164865650637419552839302066418388736297512850450844739909853423765673838064067162298445601125372825185629054081700158608218136073228703466235646380163295030757407996507193271256821793331294151510432085433701751838762579942757934867048286890777219131566737178238447801369906420956465572457670165824052681649347897412304414219745954593929146262001609314790349898594912521473159956391278059414532450367401480282811581448015614234172703623064780479653431462183504949530068935296548874716114812833444540586860260790623025402450202343967963419441978420008523930235018621154547579573980314518644373945354672824258783238627235170526288408183154617808961116108755512867193637613725786798449627112874826645085094265359922883654137136746899580773128039902432606644760156066136360808095335201257643940510229301836508655965621664681078264571538405245004060980736500944339928498227853322044666680259383785507498319942854159439074938115220795062124410927802958188563626622077109639533176227043440347546521943294144252871093673732068135433587770706212115281885888099611125538753877094686521309418104643044840901280808860383446298300161075007485564566725441255925805964143419330817732636333421057824014942906044372028868573752396435382369587624830325123853500491581988266943292220049180232162942232801820759652691733378839501835416195964030364573940729928841671847662444712719354197467127348110748970892345985437232362358179892324994842862376323605816635504626326298303195483170552984527156182621847801295088279915929526911882686616037920026319771444419217656103411819821592937647579247868671409996377978549911653928761001754402923313918979150024736518212552316936543224280786471201360544628242237836419534673834988389150827636205020047432918956606032284383988249884964111872148237755152546200620856699005948288496095885504789258117496988051670612679242734081954435591027720833593070313165805704663942926670698184675006481228470643615872028390527654454615287411476812718670763220094464835427037798513165053104698469076259045118719944064632179247126219925103820745672593991841745404301931613951498223125442982598635022793053881815548527182626349194854346868810051840782226141722898561978316867087614604243467528605575566295797533014578493541165789881663650903640509171072990352063408646222277831296353515476818185734879594395585260511611441131720477250255517439224032047328054060043886081771912145865829945189680572601241362168288411396720216615658023421068974027393552153271930865468757542121459023482715899100335529401429560703915904537041447984715934843836546020649441504608624750967413809212430592958207881064693724414153606574454516711322402866475281016102731463287016203785003966724425822766626907301167272132241781626892585113389515323959907318503158981835337430455114695139716009212793178165620905301743155312741014962636949762391821515710957134183248557008492340887496077452818349418128348731828865642993683443467274351563418209823125638311426696789634286118538503603747393268268278964952200647284126315595126039037928940823938696356997832681597716398206811611002731001057916606082826831209688698263132654034418842089275335558376601467719357690779676469835104982640130463115851296316510832719330965937216730203818716386112794944985220166962736237667843603041533981603576950661853094334332547004044946106891871327779382183931605876772237234081419053865351844856914700884216978221583959723421891909563598890549741312719999698451953019518742275635190606650445248699251011800672777529932780822207548038438082386086714005628601449798645686849554689683792856652028905640019122550505993341030329917273945306629034476575845737676086394888497629974010485918896727941088080923993863671330287426718535163156022047739664247436444577748802661969938060125302043789999849355874516575179217426670588663790900193064544310464528080949180951318886692088542617311965934715279430835575051729352798411578097233286707282056284165181522468138882189843730502849986005412825898494178314029331866928268102389232401662992430879040407935277646758100632077446694424383508926383397271122744021353304971981575113920226991640557168230142023720516660030690321172846624098409908182923783819475546853794274153798574117433102245539606339851193625257196266417641513533768986637506165047211285373051472959115903166063906983395842573031003267858255836052410286471649813989069734843014140370429888546531666982717513906254879026584206695211157384749467325349359871785233611655512242836927155331838548687211934052287566359559866937597233605978162084992424946511285707691245288311742154515866210988446139355003736110433611904432711852061991970332326121866417280104110222728685725332747181589477517419722347991170008225284324040867172551941276866735733667059835172721089369251011059683682077456391876353871101395828062771227881092432328600103218433090362985836294850840597073260064395364244689604313152787345899071576820557189272634541254318436464216003939684167563678341289654145679516464941311061220565462738571494186955562988483041536778815362173476105698590598263906894567340223716619479182465527354929755278200119581971351905441974568018551468298849840797478433402868344079428640633301067427090073764386321836289707918115669043123247829766330369941232495084908106716085107558601139596885922864684205755825665307223396246193657507323922728027866037141274036850182961898106812770170599262419941350928912122968947833422423312499948406410313815895805021290406879304337092888692752835963230440948121988295719989841969270651077438729007600811454832517571571076052103412723887249494234027281282783317175097490364449377316105981333520856744630990274448823809890853860011328561808647697733427538280916369547647041854847037937563914013514586594443288979405863477683204205799692298376908197015364591403000553023536542977473604707145261730650915382362313561108941744301994215506661862174303406423675100174646374533806378445488676407781642190555961845348589854864866418072749454648619271666809200492733978564243260879531691614909478973046943719444350607684355660709330045491716884946579708553768082636204276752828430602726973556334007220017520015050907567108334073656330655553671126647056828868036803090519740013463389706346564681539564575000683877498057377525424491124918940433513320756697830690917632468603909572727733942138421485177858394799264599154560728110397432701929972660963130025737487917164172830086574634114973689429620838274933323289796867109088310030529545900296321629491383884128147400370725665838981293980533160726606954570895021863177660934902478270068995750105301051173246441079084025808734316545122277165057610867139906635676602903936377019444947841860158939097611581400731186353466882317841417852748849166620195531813842218380427984470189547169531714010165794191874630665098510785018768617583854228927684436731538325371280259661825504052606705789686896755875351434968496713623190248718404229861201100918341828649642176290299395799590272556507653706300505157757935368815155826645277975146556621591841047444439559028579460305498795558781629646051427567875969266039383091042251164521199966306586508155615695099037196810822991837767631005730905945200966779918419093555272731945735783150681883537097660903780105796725367898286614634578603442699988973707842931598125490842038473955983734227360162103043732961638824609400344575348689658759871019616448860755695483079242920997686791123525740109883599155992136175677801957437851045585577138315301847574373361686939946184681905702371743617273879333929563217043088897788519281065060658241186171580749927486267895268930736039195160377002380265130782403723438753616734337070749545583688261285348110559464417008605038124295083983553409660150837371927160902264765911836437768270964121148008844983828679221209839570442914085404793496089715285357115037653663227715960537215988896825495419757282874148263829478326326891398568571202888692888319066023418934484222357039878397855463069506216309164905128682706231825190178535329889626543296005194695108092770471138775121728201481254975462398699680098192459911440060596326348634136882487185289348367697612788069175736851701917482380273466060807373674845762790597621711120573432682502983568596786613814290251273049282592682179628541573237395701117908632702599909812732671627146599540636815787895802118970561776006688740996818681359870741469124131341619785898243976703210473723194957301137191629619230495548029168536693332145864508947671523908918753514539244887261354452176604882721076424489645093642834964032891871215964594185174839157511465363179975217955160509305670032401639185877511361627351094312004114769858677560026206977209118765667833927672149996147533242355854600155468245416935078751311070059585191838807220010522634228726575025495656436643897309259663944043138710170488091797910857278968930102012481597097738112764304358529200050915564297505807578503984222820440377366553823517844875774842854525395954821546774915482567586848827087400059175484191496630939899511209941767688858315166802566258718799867211782194589203842127895099931355755861937661351539807415848230878050045238580778354359411686668064032067088149008170956910682692137033604966693253322608329794182177384462951186216313901704040550001087890393544624040304954539771003054544868056327944841863544236900612951405727375407984550219896424807078707422083930627506618306714066282306055698577318054362444384273907518384437979903149404479550116862509561311970945656815573534000283918024995561602176159743933679863162775996656670835311983312739233079910116785537871482863502823621713881029324959566144813209974976085778025318446924642280684380750473266382035246680388552800032344462566182601886592633184423664839700343991538337698175393049806013936660346915029221780811451488056634179565056569844892296300581798406724223336246253455430450930767651664043007646536612123903445998664143076892832527707208675832064147176448944952616598474989274404264816162191859877301892422822236347947412486733597958102406262685803471817592107694085852492147217062568552282955293447577686638990700291133801844364937438868014240552318849289191386331346403528264742569702815968032502267593139337328025341439386611891128177703158405116937867931643484404497715623967860921586271270728445841831386863125005799588371707420793162562011048185984866841401861183141360219634308260935469107871337709273291640707894844430950197287188278161569700427192805416563952138680836656727579647055700914856205266294099231292803394428233187009009578627665510976399431631637453312333382421382939487597794059924853604307567725693103096474547310145701958542595664740854883790082676530594889532458251651725350421857179749748985132140804601032450852513750102580305935882149082546749085690970633606156217936930734485803576232044822428818329392311353941616714690245908334356705769968366811106351858234636493914337998313176539608987772581942581830238698632141977614321118143027715467802436509739085737484121719027006529139247101163384952904595778603543401290964407985631421120146995443407252499630789874928198732937043105046983693825006585757481602262979111308969539712007419015165303208425924441346733414053240057365115595268232484016117904825686695210025412582651948478252603598093616609440459195618371216685095179413548421726834649421655141364759220447444239195533977853075526261350017843269597126710673446017327440924222476175876360585874701538046453188499336237186649422252138370448830708516042315047968748909976222926300294075527193858955840619677180337007136557424777009836739102779426554275537428473341382353297494512005297798612279667139254960469289101415611449663195959320390118939932877487153576296943946549628944662233434024000417560254356436752737499219323575672196790712381359269912403759477780281282454535505717368092746937179067634100133596398870870203595506789328825716607192715091810047036104191077702911234978597620483715419492084367332035721188807268704616939815451207505442819797139742113877927255946775205955669504202886858842795652613881319732227089998012023971459715539543525742688842033600145780316620624949639572343679360873690719158488068941349211921422949128144069433434418071055843526340623765914464623583869788234014196359006612411820354558251663807146388232308988648015780944695107112955148636464708880862257805993754931106879469890758597745816398311354231358058116822705051064580955919132711958810711021524995066354134045219138905950913025815826663656947653708345584233451666598760577051602469054791585514724169023578665188971938733608381396462000424916954127597134443541029575944738762512001059775550069335276032542919292380980910065984870212461863311700189240498502954025472357064995024379186139930823686967819992360963916991074048445274333974019666888068515694321550002323853497582294105421970705280827921036707752239570310664535113353598445495123798660087957275242601484282275303797276169399440450074213306527411557777723899981021886485110495479530891442831085541093612895791638056882038858106200238177813366861905070285948910542907545596440892192980042411782532622379839012698643347830278228520011067776261746120450847595924028582638791137284946368477687142020522904357602067862138887620857861641478030284880737418608748601515195942012823859747709812225231806973904877439900433682908295998522273303059127296394568963416203050510134963957113146253983233971277832251707453795115596811146989146089572587596715393771373893073289209638653456904292312271377396487679746633892539650488573035272735329666606352264334774667869932321527144806691835771974977326491028740613087670487896402785347983109614862939152747663397076558342828530427710053797640134641386153887098541971048135583083409709330246965684244181957253619988805917467342248589513951722359218834242579670082240830419163125416938573376716028144633778630167060478333618050744211959951575693732958158650199190591324445748491297395383038391887772604940194924588736184216466817904217733670012972771331219767637240061325995083170615518388673369603500547916520231963516317823850302555493631723344073894940798999522122337630010797628159917190992241365851954028869726480336099257646518364659233705209067853938930609164278248844678271195830841769192969342355705829180913342567599139619347592137964005464165586750113338623554256103452120555813594992635210753063152506149762848824526958946478694367319685023413445396569894597614440427132606043047690979339166097483188756577653239821276665339729438866169188815945523030831675163891354568548774377712076463771066038449497452965797205858543121154059106676201982960789920861572245605321062463477296786533003201990459813847790476114334890140274713926610841571726399735392098465650753327804725039763656181596931744343209258485652291404642417926657988912424141188097048755658816564059562959322776388333558738463368438619636777430465188934882991950428824168594515002792395677202487467531425826072571289793771464019686389659319571959194733612710491444270245898578609659929871286139130809756623519342788808354204388587980004615073882640285868171965247238791422522900666378112624497042042350385041728331449496435250793960076649860310497184628105885167668707815003099759371608921095437429882919870128954814681458258487858842555918830807010815114916133580561478455202400835283546180468129480382692341652998664054985184973561880429863974665560604716019181967931435653007090257116306373620461690525971444686414078941968268651014154610668463007686268158370197732314584352315802165534207337334738105935570696472919638328670911674324455151916537114275165209922127493454354101518098711814229713593762483317646193882640273214042917516853196173264218289319943979661262957685420625218183195937939011173454930233426192537949798421770865880481656971832189407280748037292222930177400504610156930061291669053130376516866937500301903551124727185033859677694092573642817289381674874109107591874795008241965215874045675747992891054784219315646056693443304690318241552241439939072691968619888707055306792824789213127664010558505762443461213116334069406398371019396570363633519057006088777473079137241034061750855156124575289052780013612536084011177051921687432760607404909954509115408652191049618544803314524683218330549083216739523228395123757221300014497901620726490750366000233646488503198352871415235811848220609758534184034148770115812764686244904819196560812959634482612140943298585365743775508315329896398271673236170805888155732207925122241667804940642466036916219180035235011794549103782172964342345158121432590623809096090386069483309163214074430046701936148864263758910471414999453083367807382576226627690306823202699418484126335300675262246145467285651361989524387919550222388705014791380169644609634469253819564150337272537592064451127190048404126211112005603753957063603759118671972188035463780311226710658590939491554331666438236329223572292459523096422947911100495062324555553023431690765799149680434842332947162635136756480267148615586850399087671516977941737774921265640057877040019534648669000891505449392769227348657781174857113165242025359859108001553298278140975112266516531331301985455394002905779768853566431610052666312756054787704628956608367091894320149392721661038720784627912317838371209557288929122215646639388438073724073505927997669328017926664863000815270695797236759566274570314057637339766605484771160876562039588930564796494591734668767753926442010383635849437289395357067339025222463907835375262655773885839167081152461277001367942324848340119726868301946098552744858017627706904836123698764082472933288908120242915196716269341010012268594871019379348375720067761790521763322122149641242087082452820614333542968185443668561407145453900023037702418966398577480435548224234815221716482644618256571600967825059351749509970290061154153462821366543610463415655091648663148404962704319260042927763046166553902765901592263763734901481643901560672721050045277062704421459517842672019146906728330327084771204722211451449364981625273032198219233716806085855045312880526331297341924584611448750042542684944394914603224307760822966857212772574062326128637514963389606759540747968052342281748369575805443081647483074208159024516117302486627662811698816850887959083902313117330456594361661653373604302089747677549679180010222136846044783955688084048949002686943844558076969641070574771018395273093957817678847656271304841164267575548762948170984381341567721882331586388437744411428411733418504779497835394145232896748256900342433551862946730903145732466581874014096638797590460200875302088985504970847579137033481933477986252499692960344141520474129404022037030695751031955411875817951160719979916666630515124715469234646741973001341414285383334894172366507570595451679449276898557678350989685317652482337258047486863757761888453288471257149425705921992721900869128772273714777219492080109509770825578902002326181391080665901930379953121065394084761022077124883417150707458093773640769086012974796910822216620498948537199156022334786402110768167510835935707211581135270799295772759430803654823284067125247271213483968067824195410276639868236718960284604949955276357226497239212325001642122181833502424392231227874025614864657286840264097266539623696559989096138470281976607248539611878533738842203156745181270356489564007361237290355086833567896386379506399013277062318637983554424244174359712018167274301858368011732747882101142714106787595328631304969175437008692441987094007991748723770471488351439572130306940462164692064411848446978774175954393639789845360648533366085888923124596512401510776183372349085762649998874652799315883073580807542031523231459406313637601998030058899570789348196633584897371984458811951995028236119951339417181487922867316182222671761811804930989489795861394585420445905657397810307588690485371309674108851704226239826909557977768692041345476775591005408425669754884114231094180284860847921569797211702741757625565282119385437471974351532786320515974372066842433297413783755941170389530241253431558212599161492210570313953657017256579219822206604701367534699315486566149151898829764196891603405342067153930623673678401290817163693462315695938113060028073479299053176271192106037877103156903694038285586838426001669045719735912371563259314117052490623900691780472867014981783713407243499193270836975446794283333433144822045646629644462127312872491572195323224601121924581896308561017905993538592390748660580686061356863941966760339128024361212914283994686466258593953851682752323830054029529429229833258206324423779231616271103289075169179825648611802471571058568085125715776700348699729506034537402515524217534878323537968961972100435017915200513058789370377149938945689630080435686668928432816116161390320515557320131985038160656263680519761531368683022457476189029886582706718169758286672694194501486859577233143419659332643120558669876718660786972417232742322960538937842707527605377320461582440080609528402571652193455588096310788451527872932613772872141865357137403459685519023304006604002550348714453122054716928940377808130232862034248563558352170087392433121729279346005466680524138951018011693254430802647532174549176786768852754550364721949906225960559059081572038440238000696012175597386824514428784497238694004956758899675881664972176850611115691399605015879880884390337609496832501902193109788996505440498614702229012187220849341261745056128550225398721084461234157929362466524575673628975628822770098939777288453003418134119971225919013485058868483422643289587390540789870016465819224007553746144483244086245073957544672397633454273610051234932914385978545424943627980865457357679249772262489809045958525095235492406560243555717980414623454793017862990388931087677605328450049633800022122127404349532614694471140288500312599552307215448025115546637766066371082721493804540448554709214333021019579974039899507330301242494909351836269062343073252906484793741094871443234448026479204455085710413794953088025064581908029143320043990652153452026304116582065878793197263498633876724197622097492599543824526054319664640955071555344409890406593076101395293126853058014195197370253574278243268848514351985537997604779321274926380518976705193537241064306056080208388728224408139540562015946691831090653597791512601902165199654735885726109021939808631994806492297681672762216684215330313119501964461902560424811504831346931952828686329873782051343059910166750597733102102591223547262473567446777217650365919590721515616686746793757218715692512912837570616390123598144783257097650828721568617873729046787212990427396133131357836070855884369469163245357600820728039306196954005530890000138945705265441476261337845920462350998152455992305102589234047499915294903810490020503630916649948845390789282340806113136582039521568412845658677113545902252824866198283225962471453850604097231323954953601265148203556139809140098274543454109362946857297641949444474317634119643500952706272986990506101921572385095894315019635145868926169066490123766929453067055295626232854628720102914380618650739124197877429401924244427539969607277352875818954710976916927314967610164461975903040112669588910095978948588071228217894846957592994998360216347370982520198599601981211464917313073604004301839704712067252531911981115584715307924746669435167833457089636912184281262739423356837758940064404557118662168334933015619721498372331852692990718052753136472721751770373005927579635838276309238285648139007580758134608420299025513003757879003132010252608590588939739946572729210788216869226022092772238993045305907331239292532299941299210072451075077157611700608042222650623254077412722460027634341237065041924574966114827809698392904883945570694507028843172643589486966585995213611857809434300682183846975673134466150707980184436994998752532585303068977136831924634807542445250546924006094234205268055446586916272480269928265749444578121623554702755234998519668362644404819176881242836981722021413228241676433518559038165037101567780642544491731512327885625458292558412013714181303763109711983547670199609859357080329410563768182416266541588027907852068414675352890666549708572839271000323344178262428476015758153626033706356648784658457243351454527171009020279054082131762031765583847685764493297290144912249711068493314605839743098899489904527862098263787816173709023391859958826082035713088454280769629661593990093731837918047484824447400327768867729596478548117842869002664269741897747763500206733121198218595124274731063297463833540124167982852920079736216289076507913311704738192183229032640888513410695641892875125588493358224555006664997099614244869563349323843869944603886878651667795516550065289499510937914986503420696763246577305491143908302536851501360682294044075398843749835797653111008612580990220830106078744079397858789664051491434621670393236845458351261213021413687256627303833769321190001502804671921381251257612416367914313837017671290676647131695176635463668515657009108742979435226257531900936557695520190757836350157464361875362410799937449028265148675810633419826328767653094133075284980500829907477550917247693769006417776517115496098957350235541504990041950693556973872065490666774527592672408759885718999698159616396041209734553036820961201464729535853367306395036666495814090320487677010214007439321640989178794847938787511143081581623716907603800485904094234325975395397720448983588336593817331834781588222016888881940813469654481626129003708519960415658143025708541578265079358143043327001291681345317876223575496340223552478012985355398801370532762600668730245855847800394039965978921778216955875501798253277294692539681810311167728005747631630778087714701456984588785484850289146312491430544152684923453464044470007099311100168694838402308227809041745113628742409026668209150630470644848568140852249962318432148417419019626423575944856831926699818908960989691772257047458420110272958527417126372698488477038501601084474869925129292079252997819883480307160734757053254136321267390881805396263721231732162667566607666483177198064943804984206681542094800554111969157684316738175749116417500214946630927389788948952546696378830763573049360334656827339097826480833684731342295858978942496391040653638077726634137754427482418705234087523435789920930476947382752222034688207457602946349041417825071252875759475784781255743972189388894758551903634868243995476582588879874327719522700243818674956585098797094649784204167512594347143546854199445872481841877490909925341000990319762925835576827013823704839498000602300302122578163707038379327804976153977233690931671267768557833770308993422645141789933139877106510351083222523616003481577743338240989154303984228287708349000850797063730597221166269147491902547053785726121882035512446275087146896534796654052571622356931826454081132199375019894261855220116396537431998684190069414201962535301927880957753217539237623407817056500867523342692826845048155430899125074342537875384980309659837455652341737737065323991986461235430176013925928577301411479670369049177292462927098173310114192411804970713763539625908453491648219994219633448295662590618676263097517444321687914563451204285906267060325270992822243301650505018043364193839762176261787297093649555997137280687672304191214513860226849430077719606681927760771932513767965011237484740969506214057859048797297947271782429829104586392389208633892649977718411811225393156976123310005828779115049518382368979588800061732018092321770694559517792513731485031124884286982345941229214112746476892645058416701430366509247709297859403226096781278723973626194693978634882888453683898022562868532620188698534347139196668823055397518617850042060092037786013992024434468361906559235667976108166733489724853130155615922425781528904681975265516781159296651181606832589356005527345168542618850277444718773561377853730138386065596935378958533598089873615816563222575971797236984605855799138215928523657705904759599006968763508433102866388430650240555201639853315987321822896911568997239016735288369319791515810000861678925314772235761555065373381198981880474865269548200551694961276542194474545770921078632247770404186533116053579307346643520811765852802202334515060101848736818460138640516796074479457121797605938998440583888136705617259890170765221536361760627832285588126419969733214029187040876747499704595523122831809619576537883803652695493129329593096682312457072924292467131469573395141116717404121928072603864339968410245596701674451386277490981178154920716802214306657700633495167541178289642055312943646666333747040132527615177273475426459665861834465362471651410121657978871875047180242597114851672488582344563971326922691299129275653223398990366899989796026645499926529760926605670779132009819404273882234931984113809530724417018124856037076044248722955812910496863673806286487042178076369741157249735323292901750299399924342330073649780777320804188049002966592762206509051126274595426469426295154299920688215397283238047077858895693301449181961179478905040048695511894006152008659444613362654615409970724722915549119190857824330683982975296604463267149033305516120865066421690241266281370738924486142419559412795777144162715097050185481027000209378718493272711962641726707597754432323399866158029470820164104815573121724428241644878388166075925754618108917726045226865803437036734235459188141287307704360861361429498390507233644560406913014576063081282224100445767357000237309229615233005626678098285499903695287012806888676727583611306384587305974330375383009790742650336580215878388082031454686889276400128161178289258563263054345219756475549672291801997093966276704239393290473305558377823561217448210474157420180983113141505042339040838099813568293633763308898478429865854887227027618386778569744485135835062344073460122993400796577286058267429119843504752305821213348539338213894509891539587960010013172707539190596968611091041127611692510717769547223795912523260482571268156571436283116384419956210525339403273820959755118811745152601308021605488732155370616823673571512505657307201468476528859857201674597638064603309914753683961598375632410684090647339491395986106162886329417559532551285073369639639637859353933566490417505630665304845607014060178134910272067219030726240486739357386131576790576877339543759050190435407105975111886486170273386590147092987955859910647184674029554414977756105918169530216277383048498691397610614113091997625033789732458244684901945030450397095358389574437656905552646990333314863135862540899012315222464931213501606175164327090214990353729358874089600761118869422816366337447688996664862989952430513026092884454131672108758012438689022998620824289152554294927530721043089099597312224882170647001352033190689929313710171897173965868671212235178948639665575169930071991113747205292287182595176516172572990895759505498688414314569963612795023281969119124411822903414483916742063489173813017981998315011058546720566318472483356890503041214456701192308791823677888634881525220305895442869803876581487248104170035383387771371170569892396092265855293994861095861524570917262417856606002713971556092157538785220837154164939533125965610236819307273149978620999894665006137960688844281839235410792903703441044834664974258087973078450980214045459600848753393498371630150777606462411560347536072674599111716801242250342048451363208816364511630012808966244344757464345131424963898287461489098322423972105732625178447659754390787975091452403961651370069504681165710778822815521534369966157182959028746477612063931942180364645087245555071466909513003373096641237861240169015904035040724171983891956716629031424742720392766599461745083859816218953579355715960850627220466733939240206142120949520312926913276291370554933157906528874319713494681485577166497397820183405592641588262331595624703250459336520935209953498615318784786807942074711565961026763862638915294144593344352167037205906925434418302530120041068255319164017873904824807105381998909687094925091734749122330930696472122111739187160852281197472760733918184889913065319993647154729685688062618517508807051621948122919458184281279754453594356494084452856978500365443115295157905956182765394080408786298517887493112636003451010000410716155449350958978700448264546466251843471469349763714269988885836961703674470031552647254376761938818487483737512593336250041678403472464617850197810516998938733137572984236229899138754237037152156804708031020178414477234528732890257322208191020650389307272643497726835519487978016246364151769410326792170663447731267371404672898655250143037258787755555661287814942062631568948737671564271912980720514994874137374048931182202412725318922430699689472692269025295370576588571841545708444310218235987387831445432009868615621010166971458336489386268272745057868487666606885710383739701290357719003462624630552556242318079080944194926726034861030410760241446383579444539844548832581240666152444023818891880053947265853969093511942850369641774301066179861384193489703398199332875371081686017738738725244592704000231391561648408491882847959483138025991674129722981062114582662576732012691517771353302656502125155699415660002734503865990118803721788040549887129025610057215837414200551591645826097211541687873777185199989484705335123107581110178608080536653784958302500018729806717971817141575410605415901967709279462043137948804322317561104432942643950520890629351940195732785068602713887593569814393055164618819014889149148984970774474666467480902067169135712707702993256671412783343024358161132890281642151367539998749597762164318332865292380780424615573288369130339334782507586791240510945315819547796240054206153189269926174849483633764486932881356631493056963814588807572578645852745994825937994291309899425948196682408515644874221251060096773309784941580993345267338452953535812739050949965339848461032614265453589416844335954574660235013484273984160005728000228066161987083176991698662828980352012885666013932216312775899458484112836327476230333197565320635924545952703097627043914531881893530673769501079509645830758726649347654564164476934757260149002069106000869841493868940735257758978195207567180158067428683487325445934064657854725563219646630402296579493603009210782710529603326609356447607970017247034776444347312196838247915449696627280974860206636348526511051967991856191473647263556154289920606346763341225990786476719827050441880791841861217999504588539375168428399741785631703405178682943943610963435134337990257008451760197648718729430344636186706878763142534183430647210474998318068426833889696009641046162387765934735196872739383495163816643930647852361794855846403062334892390721882151238731546080517215997592959808233799010548425363779900376129127366024388882799560369655528040299895530556378222656281233295129350491549208507054763477260194289260388429167679796576480813093860341322627262985354272765653682458650166994650989530242721254167723538185763531829599730945092470440421491908723423261919230651825646463044658195524159299875511645418127700201859892045824183694684571192762272434730244144653345764406357981071344341867853751481550603134693258631925477285511970378913491986845612582456313703008815929519738092714229799421413340119716189868038642742764299735339330495201484870778888893639027406909543415455167032115839504626066013617469465598335123189448358496615201591831634833594098272713213283480618821469973379610036306529334188828431458056741192601957732641136395333068326649547680229459102628680153257899343645243352137552897944899396706093404465542111497076189443842288494770774091128934354406510522346574065129073930514522707964244163738432464996676614076870999778404385987833865531836566202076612616630695252383309475141399689018183321047287435462681364104231799858670884927767760918695673789903962588169420615475672177522828588763103817779270645735699234808325427301730002983962311390059687803495111274629568518111739268854080537526035863172884667812258503752089323157034274471529619727434349964182312225836969959501670963501562598182776568442323739865498791768464584868642371013842918442520330966152183999226203006610591575880579180747575448199267006362589982785902668125933874310598745371918514364018201277045865593139343647512964148281804830715760747008774323700071304576255272711461567076355536259118368404841870836687646962616382344303492066311661890854308400570643377786904424409191714158870494141139503636950002638092763066560996793653164041937386071696043754843630084308634710877434288400849491595891756744737089023662364877971525325443054111868939298038739428779955256539527079613312756928322392645890943788785057093351101957342082746102669215546964431467169606195995091676296399749648095005609835689536690703169718419083579785949875385127806733560645294632136175363338086757418318848985188601325400821009074643659963605952994842015234082344697174799531067435174140119971647586990837499690040150968111801271956538899653119020726130006484112868574410627163921892474048935746889446807936009981911117041513221945113047259784093568489104294562669035721685906043762150489270632041896381349989913196316419503320258912163020492424334789326894563601188907221231045273143839511494408749821497551178771216102308978642611435711402583812152326509614763514589765372266358935060066551324762966919037795824537681194321168161068894722002583104557827674004429548462708487994149073535947805297205689576287188449584138358041736823764950425930075352864073023510922527827805039282109466171483500676323603874910623132712880423221998763323593057113389916304666652971099895472366712820287350714732249731562168301268696986752627235950626868416714687087956100578058811801436171118642376809293627729178993759933192923422575740164153753111703357434831433483977959101909399493592917332110623297332498320913471722858902631674340560326644972851751544652806997667147003197187251387974018810308563931937439356187656439747945347502195619623560809350838663428804685631879175033321961244003215325073566523559521003404200859219881211274746959202489459549453214998130907874197887845060944769053573236167728893020482610985156279879239524756150170768445460257911286028852130253902699971312042293273301854467423350596957734126104221316450240502266193140002309429995567547212724114474867653144696426066361560414242037589735551340574532807901205488974485279680777176507538460460839505173015383511463850865420380352887472735322335767148182453575568992373022591717136901240793609724423788654593111748635247136657961972874976952540879316419889683027860887003360030666652512809673147224484478752156564210610852536394601959040934938152055380229549931538025668077752317647214475671659139077725077873728612671377346461181730468515902092180447925303729992035175405763520853899804829271350821883541703326754200281217910920960166929053908914256460523110613878020656862384979432077662502809018399817184651918880581836656120093874505566266885735800330085711530038536037275374737865428669465205877335760589624543643513802850321345848993288302808200021094757394559794843909670367866668803874958813718963898852466103482660295313143885102187373266918192017494679186260977859396494768512808706777076592075128612844813566599045405778133775185296901622458449892502274365476819418488529197441497449919221080351833504057794544077384886409163127308528666952743922916668189600893577659418166240721648962152518760994242811720340944296039945617036980186655951391155195484299414566514328239230059882193511937862809259332087740678825575458959604014928460861684516417500840581555765283050534095111246840800792869456439103621799440004813214760179090949893926188162794428084047511409546503504456689806148185179501839872994962794746949755555009339964096387498050975517812775349096030364426668733880968589705117478921646508643048699879705767451625674919295626383450804214932580552215401994565099530385474734462269768819878053780849640195716056220268054975200736619311582820126549218598901521201983643269268214736105340247932336997953590195763138193707066408410791127475096636698850757566991426656931966646718788144505514202406523897394000732445573714606625148351784195201557597853707368302267748196451341672689240706298875043887808839600442467940351279799937778079663891486898095733934156240841963270335988615267017065192791580709014360358218729861787958860951429396357874098762167481321636939452704642047686155304797389805174387248642141566834917132056568384930094349563202669824477222465353613996872251813289066683659358517250240043796140013547717117616856273136796793391935368407576403207157817777377214440408909376353216632166634318294162926030402858855403896959341053376050333863355528446737716359701347654843664787678395152564100253205183605594096736759481792223619724786839827178240114401344008233495774406436924311915485871056183673328324668112755446219797729313705354631331317980450294847849865356031409180143849644091273612930548021592923878312161220275707330330932097502870450725581383969498886128034010937784786060278076209780449415319808188065949100650355019208034366951311086398808492708849985061834351641759620999891419111044598451379400556658729507612503281667465874488449036728708910306023577395623390349615844642202843852631640888243231069886687783490423380440824506502728822328823344941260992030919596897789463757632703366033596109489194141165385379018631602546653377742778774961176499194814457566093583247175758145810316502619331589329070018152614033797234834015894428371082412540952358811518461681596336778316092294503498815031588845698902902566405086401033983131038115935055956755056605164013179175077847846887631654914740625528461850937535273441235100229950599222366266653543541774383453249619152648192592139110817674417252032947866255525235630609063727688658945646618106034609637132862459698612655217698204285532760924010259192297215348933980014413896077388744331822148695998111246896469481723473584531157125592013100924770058067481246373710357387937866435876693966088535954355812828281951135868607666616957859050520334416595986806361582530440893004813825469334201967790742408854652469822131398274185643922256979885552341474456542238015057376491357796411307861368218150513125117938598630135634734476951647366420802257393808719246139152286778528513141475963498734774613978102050709485429272066784697305651124794731869908497997735639097223528303595809609664005388513408436260676670764120386144671996231648892768409221551240023318017360602573593856104902467566079685141926713257624108186003752346198328602294083320381513937188085288548494533700972451011455570781254080561368308739424602303702236082237503640181851313504487073841394026435138424364956855323586752961401067527027706102775156352384025881422922936617400262952973898662691709332936786984743463719389195385029738791590688818260466951367224096827186621053544815324327609236255815197867382795704766874566076277807268564961343500920862507217652976953922802643787101073312655959781098499291708013891078571066629133089736952522013717575468124058454551206921352423782096495416079973537528500800766836553658937220101907581772595727110316539718042210517613624938469254814017383022637797862155572690888324633304856972911000432034215552376342946663102212817405500808958653114084825359009197347309336237809534699784847460957302810067719137228110724395658640947170862880176844865087798547085789234407371416732471725732911474435821973100948282403238253424301860841518264588712697390839074730222086993989542700496971193841680491260279516223750198208185695112685229450353997766315365729824489768449727571369636218305457139616368500743430719791645056427832193137518562804481287921585705346093741439321187041071661322487997871758671380920548549824992879235702928069230386238403518935010156288658692932633251032356564007552148054729227603646585049382508251552554306293634746064065318490227041686912813164548651112113993489723186691566875589120588181788890675908981060673330287948943777173719397616707844518533060950027394480531162316421767096780414104064977915231371496597303503313581211365357268605726827516138962364093235811806028333605851343074560913148530941467070978105430359155268412537262479417801919022251085638548077860003671634648233559748179176035346409172188157559733170445893047772634506600950341629514712232359341089160338064437987995062810237958307043437165895704210739783151774533464576439955827485251448728100664019173594395693174644153712138703133132877674251544623466542796468013836685199530471074464044730968973644307340414113363305917519831370556866720729685708322883494145129152250341473586251804034787408582831199978086573016122033948343408617818324860431025516558506950091791405477312533491665670864259580923058566729609001355625495840266867222396636118882658960657758088650025166687940224055711604978732977644225834825456088845552007827375615017811798110767356861188513145170251399343714043172010227610500604712083332359838505336316751540385665524773582716923075655196378045805050332313061015599032682978941366303852681832278726059874903849586029463931263194385162148714643392708280613526729335326046973081042214017915177723534022804986351793748424522737910559010068170983081183551716897027299513935239901342409223484067313092622399384366380970914648172338796754752987559347682116030158289642973926121025486216991327079152159748177152242856695361674217810502102545941542267517856969922792680001419656646333699695059095830540196582248591124588400408121470159819109028414739681772342801536597223950882424786039555258049215415585274093432175957463410404153656776326735960686751299486332790823823081379784018722844597314199106073150117567918221211096674222845376139284190898647116009014157968112539679072993374976670263702246098845585118164814966361584820768224453560915624878088515107199539115732989676081117847168217147214398253097043115653339652015801624192567685758039664580936614484476143759641344323002594590661542604905587520882966603789842352881124158998759880592211425410161293471009867332914187938710776304763003791557890945304798589793059753800746887301802703641294419590736017482224174015517135516539524305201412391724766413719188624021434706795584835631043369488243953155786895657857540750871011968130393456588765131093165279441870339240502967198647180103701421608599536649369271466838470592529226251840306636648907607563399433716723296818112061983988521290983962268076831614663412557553789267811255552892992662779666801462225941789686142433690970487651885496886206453206766783751722707484737800345360961573026930392062590881245434126191545714478439641213682738336218608173312217965508812973131444119665813590681833446484135647152097460943389610520103516915266030199540075333901386331437388622313069397372674546014616336178783018312047725525092882020141984739639171320376382072454167609598413701562975296533333873235676843279329301043410074582854221477227482833201731307419425937438907406602347907356860803619909905162465465232277560846416117224365518196633642883932150437233950750996460188300164309537422058664979306444369757767021799678650402217802038947847537808945862240842528873711279284487055733940787658990328131983963685531156925948040204914347808956982709658450631428724458848689773968808204374649453030266507393382279438793448581879881914969331559051696899249621185630606110454521080929608227405691277809590010859470377447812566069188244555778681887504004530493681269538378068021406354497156317345477881128241902345384617491965995871698525402618721053910065681338452719596711344908509569149440157845221605423728052537191493032506995804891215961054754017587938827229921575168672935216887014369446317441923534406500017960413600270169247941325759902431394983243918109831151441177922948748713260299395545781051435884252326840250302750503836321546755824723931989748093293700060064816216167743817295726735878541222190752505945232193060628711319685237464553575424525126112730680894228084497261138501300566850811846414057346591229820348171042045686810515033359637164927998230132349045028115262087183611163736033332538959333444007315824851328092291958333563776730307929696248193515672759244725228829848790095781861797398311078413773955403400372378867078378439273175486480634114551512765977790453810343902656298401691132184988936578460435394991480834529490068067099131357152210364627231748204287820212136083189710946895529433070099662314185612640463299457901372164715302812750880705436528419681664226235444504440742251522152032882860960027399448364750481049147978748578592755201474091079052267215136612419827908135644703490410438590208031632278865928485781494677707126172612506782496544300122360692783037963176688583075880914196064596630824406465130780625214217683924887555010408043650121627049828480165461577761630001298140245215356374190440380461576137344534560895598038410061348137949461827464847292436243610224794763990304923601876970950840723039615292089153321388140166555517098848342649625954025720801918934942326185595825979586344975542822289302890447379994308407380696221370915726931943853150364583142548430622148515581092346962942037102273600291051364470308209134143199235894081327158030758528290381481701208757681451261075769334136272339143797269497100039412006421645893019885225144063138096935816211213046836319013679834338835057221323690146832081768710853866443941797794684474061977997002178422696747069593367273032400822245137578033852898741798626143599786165379041884279834007618844495359629506524167230979302217506728176526074586337044905259250484639585642087534144373609277461564864606157463237769543325776477922624151788588218858833904270579929720964233820267865614293252918772699876539115718774174775272580059723226843652508475765387208647597983508678079402508696022021542992284125794759166625473170748715248213398994949106867743308309438534520723558520293118995700351950509915556539257522530026273920754242327207730985166828538588980744633945196072951336399497264468258857713609448950660390675558010621327848791230632751773947290453883499311332535460637326489415709649655981534156563127674201836420496975968474903212971165922745775417997041875631755511264563078073855682212574635660399989067241839443329752475635854492669843234871344763777632076202894794922340186355055755139268090529146750144953105366380622031066499267245246923302725200281107497690814790658581871443348626889242726110620982198953681672956869687179987400674092477404286401964809540842761678213961681490544990831979712484492286225336854715995084859447797481481817546893416798217650981039199442212364603504361987987587059698433709338199243215178049104778946871178813678750872489945809405523848156014906874431798632489092371989333650383364543959908697034476497800624256959955485692170386202612745576816252581002526022957344036836859604994479027134700945159996125422542405073043059712652882329294915281726860749622970032313147365763307783953848511345852654579690968007011519424073741283731061717780253537167807346588442234168193782282188004322776702512768183446629785919031981744750492340988911600384513305910161711990947497600756644495549761594998664135603232424259920882961411394980912837789293483039691869906734564447464540300326925225994315040446192520039191143538239398354401565987871336736053981387802131154612302139742417990157298887180714032640980918869961314110351206109091249265302974611416696791841416165755172748692690574152474002411075466714759001803436513569982865676548022710111341233348289729119742180081275281814175915439202992301373929600675647377983273316895331637165477313882881744954032857361758215964287783185783716018121692848965337877528862324943027577427683855083725427387353656783016763610600874509088604704365659885572190265080639006053412789168260952740016136407919161232162922637657058104274640221024647304576039800782325801147650637278894903913289194284844740999626243772078887180930069604280988252447407971834314076129708907455045357552642843856607500265237277661502659649841152773837265448881064605888086689236481710088963964275422248143598635888584312477029277032781311945387329969675595798215712746795626842589738071063751382736516785777361991529909492339799986152300435269809114048402750270598155188029499020009393007511253020201446290038630773672946630753149705948079234474367261554011127928057483813297043351682325418172462812105486977213051510325663030985427916251652801747577031631967162241022760464209330745674210492287322744453329026175481618002739598666484711854370455183316251513964676655608320342942273547565946782641626403106907614871383513863696387367576664260050645988589196650648980295993301533997174432392796060677918283811350474249347450714642033460850385071791629832842247076597562800961710022515279378664935455323766322253571045765702368295784120240325353570174937058497180647765565468916242889878591525764160282685532541701109332317632180268507431845208201846250059376491363008553361159698926831917402051423817590321190649375399158198878557585334012729015251392145033679090288056319879636118508489548048378185397880587346481382416855775387080493152228976091734364597792259291371580351127215502039164613534244584353706587467659026870032159158938059211707579397866574421679574973928139867292227060017680749632349384780551483777926552356439876885100722342479715641262987509582570592694028340021861391266159068115955800382476643698289931628758117584104957973967310811346566718975733641255210958005111288303600212371392224562634379898133080559222243198417033932422913743330058488831973968763832361385060704922670961332534968460749223663336728949157433102339865947899604523869875445864845719408561575900461359257277157882520397838930016548136727915830232540995232366139161763719461521465731688913366100545956221475199309821553930124093712448790752958130889349151817878904301754216751021918783143424449130991737828980732777911177806608947526678301904851472279326255659117461793553475468958538637146575290892546693357419959458274041902773509361114100971717155742162803467743130282132229570936705559008635975541958067894606652148075405206524788528216256599667330593742491202969037835032067935527007032494679022332459088450793083237048943390930419485484034498405245117684960778172588310386737248680154331371561657372261250035163928142114286307447603628717784336444202642739003317085576000847066548342804035202485105889152070075829274041038496468101871167160113068389137812534279140473068045848229888914022320041363056891885206951745791515036847763758177846010992302214868122846002069719326973676579945885849281201571015529849150352376832558257230243769830908703484637087433982606328561904057471359305351275770874318141830768239733375589875374811808906104038815988554542414853656779601306839859690506077952889272324730774892015350979508123946889587356175203075670558349321457813614479915673939630947220708622702065077301381706616125199402241554818713246201730452202999484352814430708352928361343674516599279897543462744347240510239083924685241510008244681844236162736687248766141205002561823961049350097697697468906377490266418048838422309665612526588843130990781947651826852178784012660326927938892140953928185667246188700874672263157046269393614430899274105691095421257385498566545171282113114740420915683316824181060643522117126665042732297333585772576928968889787425430886234670039193152424837461697220537621296352982556076436439307431040389096477414146391018644609412123462695938015236529263344853360388462414390099544821300857437226226462031779033903339379474563633292625149233164536797743855514501651039951853722401421783624723923186911168423720575814235099497999848289481715084875821447753064624554060237287345492577390937338607479199558803936308672903263738977351623895091938746377215762653734758123180601776685329154318547458112157550551416892407573076021953386517169435651335732652030520281889583879180698517607993769922524478206843544566375242888476865502814300166563398883432466965223362919059564615909979810044968941502038953042321074568053541298384692705168383046019670593984640141391150490568131438813308137579978782668166286301945216438503304466743781830611222212446815249150709677684962955612609045039050485088773684490425940595641903562577749220959583879405368268759151360996402419236161425716653482508896807136523817726361773634947597517667632057017566752774714906579406394451017574269497633511699985952655779870688730225220652572759446971417935858709705263871540580627400115838741963901646467366848886082588630700912375485171019570473212881395002843381480257697294184241775390266314818148993027450170567582858155672628648304877045005608918616241213509242480114034724952944563790315718016877561833417747084516712689238966276989922450203065268676069699444594923317165494241469910413577991921040069205091916001358244253963262124656282611719912785015894127123850698468815386323763149001659741776891257003481373640598120438148626635568607353784740349818026362681599454645318597580862968422639965717481982563711393525818228099802149774516759424955201135775303559895141408541112978063338452980806599375394248634735786092904976746725322161753120717039577146404567310700817149379218235212516264832752329505431698615614926668676376523501071360421748926725940503427781721294315124544150730634530034283168065231997181841055737286214207286217022233663904859287839863450489224185109779557406041977762413999233345738094243063210036298905206007852198393858678119933053841539841680802989804566579123506785919846817420364360516956542628438323602379669439556920925038550868248919944039821781601377384088487566744233473790785700451434390833634585992485550291281881916142481692318661183681483140222378877119690659762579171962821236945821978104748626908274915580033787779508897672619855459688830968720808372371361442593056244744710903822508573114301946908975897815144198580716093164040133577661739034775429217826918467115747240471160052545116020087722031348540501837742597529688813823309886426306767591527330828011389993041982459094980298187794141258057465335967079399852476155531665324567349664000450814303708810766323794471053644842487147716066077144577568716812075099615958369808996184390207340240829511639259806088543258230260135536109771763175465562598241744486632506068360431728230369495702040727551289040066615226545894172811707904561021987771787539831020881992652059484744980100100977977397083969115789935932293578871617871748134863020302988496123618080396132346717698493120825260559028041392859604464126650459118777439675483360687242509938152558923317382986733332732549324307876895501184248449859522509479507871465697809005752588276189457157045636217354389404258595219536185090876783097596646677727195333128362201935312167986089919941888956204216768776430787852898092212924623243297619546787882236360017378768800613879753758828752322682030715078337442032023553770343027430918735390079908179237754715490166678535108897714199525277995083428584799055508677158972237282828571969228166244941613621439864417871002426744119740946313900141784350392363006246242596857897844555582052250589553366528925593463104964713952626814222250792983073013822796109667062943850382007865709445639345231998731276728528186622720006807866831328102691264056415430649804990648568811027638983724436412945223604766458384775675495361682209560804251161311216989397185495478394065019771509072382778565235532419068038040541969496940014032024290199023501459436687500529822444092815970762421356445378666493038429215129686985097423504835719808982223381077319528648266363862052178006801625605896920313966586632136928807786022410341803751212199286136313149785418642845468192008802245237864614271273539186659894792524267540828883454116292341432345052533457841242571493868735259705378555620906796736655692181350165472436325646375943180024908981263657926311424305688904354807048589505576539036266164021511023647272652669083582480839979148590542516789566228298346315101143451407006504553099247891111934745522234608021398940530846958933238972649239938987793592036665890047558727939009235463502488580655093355211528830229949693911426387820072209260292574310086093729462368662454339835475824179478946888675262474341514528199326729672053528282685336072983964686731343342996419399080468332330729856206563053094419889399206886710446328272325274909302099611391952483213142888155967786658017952570868290624804948463288173397666593180637192475838747550081760494411603994076088090243247647647578527263461807607928672963709474017851449087826490786703805391401839068299074101458000962528840076876414756973090791015820049284591659205396894475581398285408307104613343647190231770586017736229097493260134042405554261212904674870817132835409419977928146254393224767442168003668824488208357859097526680423111902713295387366979924756373666243919166245793690026216067436556754532000775194033235647900431513865701664351536107980152977048648749748742777963992457536111803295856656640892621450385123533368399500596974142629995596470599390447761052935934510584961380735396235276943937333709025454977325075972289010097204926359697706885074912517288829032300200517882742725674068100333860528962533200537021578101568948660289394129651837417971902284206142043136570473648022326619043481269240335805679536888355309439848368148527336099234537726895319313400986259095557466044097993120305892567664076944929392332765048208403626652170195249202499309881172544263226681514234293936276221567375666025715749573231471856598758719655047126554507129756481010719283412567313686578331976232658679704789481722651646681952815288849011572828642152478811147642403976616912282494231419448785169871584595676778534684455777228639563207960020107820539370061942120972639015428564411991927579804773290407119779072609218810075990434632233348851916550018644095774678783313704100473761505984425161429907275499776405323811121562697812366447032483043395189109796905085291971632437536522118883245666520938382153970182244569548299585402579291535699470437244260297795325450762880431968155900638878574923802886922739081010061015636700630822996751559368263142172901488730732555537921565786337606212675897711145944867600583150201271707801816178399213607613953945863722904185636368350657089980226139382822525497729112020105756832400054700507475297680575613788236348148843421319920973414176596786614114345086569437820781494926116621918928344394263131808169535208102733654049456921476513970715249918105252642497711868254986532482719139103840492917974354852752125435674594615910438492597217598523934982521199113260555015724245823426617852808265041159596706634322351557798490758432927336287622056027629849018906084168189969166186413541267440184506382901424748370168367265795897814945431093306077983212761668096507827415546864063957871923491562668264223334290598220093690025598089903412430151991587173903922107180342296135736685987951803055972237045735901348975301364727778906433814843657920485638569142890840529758941592771302058866457093949824965648526628295803159461404886311977122698243110045197060252711388349684697682375060977446176738150290887262903245932548320931704539179570712629638216033323461671109879606954019126976403179639977680618504355523290812337252551150949462708559081517670903779373190841449686720646121493345371078659656170233178678331783629722028673764543247068256208824616210239557401013008245913279542312894067471044206025675109359145669252806858685713706500337228540932793936511616347044144705173037351661177149718595502947232234633333806509311450452400464513193078257314201371575263516374016005604163862884756131186325838478257068847266439074970103222855327367530160693267387260105569080309053702019073350859055089982797061004659641915357946563089924189057562115915434589389477434995638720008231240659866053636988424296064265508737524958197551588100936034155737543152088523799599491453889529138849779289490223250106533502294520183866172070888946127378666918610581699930039683556212135664343369661510131683193532281243106741913083597984770266212353608831005821675152283440641488389851109753258588947875252825392263532815676866940126968761443640617315960103221856233386714699845512334203321956796980215024400284665616410432618568411772234683658322864207034226042823122447066319805476240172819992417897315483776611202357380988252319495056147196427787794839207383992279639268180486355665488224780242034934498405850696594394996258792880977249574548392117294073538262101465558481512832066635225455057507657068268904574220192480069867878589664570425562546808213761499343550973812682738343633521244284840043737470251129815459864018394828939291894000324879350634658031694076963352297228773245329541804990816219218700441706564374679591276039590588860758128032164906003384880029174178947540146547147954783249197437126605517514353719539914286158449369704059838037055639947501926032041953824554003983389614426177096512109680875983923435162345188025262744670950854115615287552110785109782810139703346142387115456683915755501091654688902736096090495288436472513870274241683444316039577838473041522080302167584447420513966160583811630085740933646506236771347830013446392064625565627025218721972564402301173516107567629063402801871366320647739846446563179123665849078952096457761141509121558378849709812924453925493196883051804334020340673565409532732346316366620675523749151475718753207835295711120627808132117890826295530428424783871211383488338821109203668516486963502034781425389704096024510647641630961660854592254929345920192183881198227019959808045382456300528260263801932291155803439634784866474404964564588389347323624565578404211678685795242222437301134884287418715345210890801028708077792871922104718310092503851928471156466239133295068781360475485790543077827939069395324957009372594457235292141512545281871124872683707847918029572723631350157765355845844711460422656818713182697273128536886235080341709533783449109379498567826687282273317987371705807598515405280596878291381410843058447729513427736023843062325734965630190500460575376854454045046072960279653467170071683478317593959049676061887934418212536109427484774720203908398294026544596226093678235885460058892503781833373308286004674410781634922102860904105926709070141756475587222852650327421802670853041870922125111869874481906819919127800156762445137580291016402330670140177040060227499989537877973947029607490624236294736054430277387054165841932233910599231010651534008389757702698716111835476045877645010856545389683805351192609623642284785565216359692997118485278777494608710661542950102340994384446047030858663598272505673693069045876880430954177041109501175457011613552558291219241938442005907265790680026794853589585388455480824474111179303893411365019954331405299719390815287635237719782080874885367038480252416117746880882925690550505814047076809576647858705891975463745631215513444380827598379992224276895894111165966759538468077755744318888989109147961086866088196178903627069937531041622557277499315483259026608707474854228853198578281024159500303173277567696522367893907334773732892351411355118754493362098029020146060418682846382903525633416764417632887050453424449121454977549582932107802314101396254900535834434700856288368265846684240267527731032468273668907771287942487272896930810694890540887810116480553776854468315616747813231762772819519063707547970915296595129816716759718960827231002978923971757066699551761618502514043122646767868721510856780542507912429729113488974090993753172003405677360054781032348587581440975572338730752015160936117516648088066376956418144329505736242209557518822870265097609758529677578484912209178270420127159361357246546530648722019357224660948117187094534933929113069170227700495467184276818104327916906475006021485443274897328918709523971686505220051528812696208280796540271200769216932684382960704705454438730832411022433111502983806965131302988367323294204940269558582848252087124326436683847477065919019049939120824764198221154781670889836980237871226822684842353491099942933314931062182700411343203404800813820668816516962834466732512782360825323095198890379697926385747057990903325407454150298848862017911694860331046632712925710870108524765769649179139934650690004912588971322758148096152994756500380232690862475795376344641555371946932139989384213491333112926958238329118986942408944352454914019465930651669603943046468742234702027093877965477986933723854049754782917798915994474375220443273772943706866946506869057703981478202344867811992650060301205137375177143684385768924091132396671313201795130816999323662003558822806978311357255826521234889005954828553540847666987931264621170936066804593816633546050899943746413847044252579120423052062334998812637748059589224378681137400877893818714248064631817434597895042095968927116504076875126424443247140319737983655048894514708534369742841921257817789795216782900304788380091015866044098093974293723034569306133693618501902725368212715031744755525984585075408262302471902133460777851987460708549177507012923635595211814978886501491265090717003704692155558076938355941260046587075732382880475393991416046349224680387597434508291043280177359709771312429452530318559225528354521026046505628100078701876535780411444724480222839493572933132378833465849569489604180906713357529124599430682873157254119021916785161723875669814881576589065912511036101531979054263492935828773620991603824235744494722683184543659503278670595480305438621857072986497386357273650362511682407969773919735056882398933231074983737495025105539699348924583475900041377583992144148961051006906483808045268655197905408357045275379754046273583792456883067723049685429451381781365272077592013811099517046529490312796901461084158771528785465363738413306050277717487000868622295125093257329961160540034531118951426414166048099996466320946229896272294337225896370946838394578335161072052913040181762507250718215322452054161010694288220870952863786684812276457195959598541283384943562384940798458346922726750763890547057123793664731010226827007414811750569801803271713272960353327204682587330159279790496965066994450393243867454136765252975976974074921776419207603656840278846394365160958333462645505670145716738564959642135330997878813756593574482306267342051593688645691445046559296571005087297629265991940782771473918295001938656007913260400887583749600768772678595524510610427117650213701291300813751313169373748245153611245189113896795520503961698669760202059429703214803043765755989869948012986262286474366090122803565241430199408714441941371967825041664210196593263397069304019976406549434996397819296808507979668716994497895203418739662176378075976518604267497297628711402271524461552857769120047134479335257513915583597045630747915067079272408770854478845948882622595318180478082221253938355801824004697468373109900279277247255922262937663439201944724042264163370130741432522783011268371850718315610762622527910945046851168707725142956572967264229105878574883984482457979839954228627379388798934148988564005165229299766341988780107794552292439658315504856437375556661779688794020090278084377966460773320269350199715267056975392105089124595145593665635361711360241353373494262480352448999686540061284512972763566094561642260517346779685783148846980664798725529655041581050374550121409090653175989170447722163065418276087440270348235717798611252538683530453601299855797153702189695324769830141218069238999427593551148763720981815706545412504401282494049051336696510549287049687225803833865601753252382566423017331415044149687815642883158055540630433849827652402740180587794218317805322040438976545479295498434207444094346120309032452144502182569593367376622997707566356492883607230588646031378794768734444966054726130410284565265401021809965934420069951038374206861930311136658967575806301697267202549896299193371617543015023135635157080665741487876014679453069501634747563584782949879923716207588850247755896194522687397564641596110200486287928780851713216044917039042092010824886608207696760495610745564362796501489796073894752546496009849631517626688843182714092953109877888451344960224315769846443930766611912404443362012480636201055395807786301438432253311257642484183497279673391358071553792529859073763765035721916489220889923553107900777925692570885896248339826754275356947470033333335126108053635318214096084700434375312301170122455968738264622498531581032967233258381261508862451754463590559556704196378334026895891610985491203317716540908072018048258784491548209125704267662471119815632800151945408801339848243197513390887677756151417471991675866451059934959236188113949271324132688680339997620387696462170359453586561894348533546884526356668147358067293195120052500176406830665541557386059317478204728068544408105821843998152301357300563004826341779906946663889894144515916713655504106696275624994792177552904055523977685100899953274437597429519501784920127691279796698937201057760943593527903354781297147093908503727338201511256688021858579459538555380576412800630894536468529246850447709345165169814283324616319853782707302032010734869212152851678707760220933242430094306981578467836112143420711677062294755717964193003929520220125176564906960368848795953367342310628653006701661626800710508584324715650779242059712658815231284302582842348580142528250038800159271875015290424833683369292434160649176616958387558680369340781870082137582080570428417933792060776690173626855429589226397114775215769347029499093083633903516307339765542513264267184088314865984453955322752508875031482783616016161157612266719634039555482403876349975961730274426767951769604875315269666462803036271125818263540944857825303095157324716768711960145847024910106037163165589926733689410229516622797685991878065356846415109001665906476942831095175971763982771100652835098018543941515188479086641871524131825195174411531731781773360094412484938420995323668792047291433436642057325383699556225611879664875981882973081423045899060018960319210972177879482265259757165357152309023894139582264630772863802605096200672985688361039088724462415919674769447406759043161611934443791453273978555641333428906905275882227046630600392867766027281943052860861626695762101859807308515909237955672755047722912833235264380544901470842439589319873381498112061050307342885301035679030078620361433943436568338395550916625352967732492374317579137200514288543500377525778720141263763041628195221660046308958186520725722931371626470344199780348781658757517532035090363307883123441223589218881437190418519415561066453984587524967796507797403435733274300388917550407381990635198218372184109320648659141150743617410911045992788875637980995686730499749440117840416151200114851790087622557139012244255465480091747613285599605915220658516306837956646229465413619369632598122273554118438309102494420054848086810165801107121043244428409465824632657343497794498234205122449947571264296091733634968941719855660601379476844233399448063607277821369098921987804011242396718532712698980817784824793330408206688826512384240267544872255316394231953174885953887731432695283657844454492098110017315182125552964905495351767660748687879682296461659876820842030722344633616165084069507640702183967415142693978115897324451134826552289131910902576507094699849878261327747720313290153222161428929348619875328748387167064266979350739026144664236149319001235711509407382244825989440288726366204315009405746312268259804989125282452028591305781664244815077935585192531884401762914245949237140849367184612274264371586502567672460155579780970602445649403476469059410354553799961858879185424193537689173705663221331170401719366999903033330532976065466510468229989136363844626688180919078210169129444519383462501757206505206412863008230436341416080650170997994429597507897736160852899552490044362875134470125905731757769889652019072714537826641454246543770152644336366560160739554407095511117665791264862596485865452641671528997513917943916130799005348598468896327324032479548864773603104137335184631723116337731798595718472886484521822730552247508733984296771403651599206889034821977072899792520292913713789423454481624115793331714555834361201020879019394422011429447446151303730391087266686413592543099842170819071580270436679317437507446491312925846211517020908708268169541705290416344066601921015684950900362213933883731820513361422088989856137070153142216853599273155589963029299532724063853783278813017618372954367097042170058520135168813248281569550552836664640014726933714864836744811079504170894074153973914014975286029923604317867962109036113570887243119619649465668375636594970342702194092059399090534862762368332982179125935325825926315245017481595266693413439580654196119354225333032167948672415714052886322857930782270885514162141748181229836705179727960179734634281238601106569020266431839314524350506779792569361027632965882923576732907657112392126762583857461315589530232557763470952920325127764053768533033315788314398745859167778976870025416691427220819322651235746877879574391779874113460004118617864822663682292868171022451289107790826314008045280824367365435316044659541360704841883393329646122510385619119761521798097523347957527942499782881845562847345339842766260176494739500074589932887261404165484544633509367616226187719046076946685505105593359430390159628546618223955061166401724758730872145765896859281174676091604228691434100238821279630440647852879137188762399143380685955628244451725508974030642943444168415547284823971114375432746092902373116509998292974018806808881462379282726224453070619564028397093220911582089261965975930218990423892715487609379568416986493307394547164530490968969519806758702919719366611435659817160237053111773566617365801672729067968327407147224071959752999099723901597500630659476939202373200230869544794279487898026197851938595765213905031139171311674064988432327374085426417815586916555337992640674420007331229600018309045213704903536779630223546117157638139153259716443283902105620575122155174178193443361590191998408819470481979937034559286224073755664223087391520631399795223322890271638234916053433260562755516231748174173720389753390874351760616822406272730247317907097372938120251638685746156119554929981799460179066117253774010123506572527151988959417756707988629422643378880598693753257949571684472689923537625425970563967019603229091565553608671711739715069715371699113444320315069550624808491852876512979287687541207113854838573052381551775657744944011190309737678697583634474360954494409651390501327571449892374406244519448238851555129923392830812127302619877280237147719362442468507484926447468760206065337067689444133693222214478453713565474263253826999733994904918069266786486533507794062915848709658111121341845227632437706373946463458369506126169329745048094833446456275354093234418871563713975954602354958446311965922221720037082770102951128816311467327138322775774048854554173492832764554839390380398858927868553484916644182730060503969465301801658596055906685684442434612594219191552887408458091280220649671140839658675746589851835212573171389901610137346108962940404163915119035390836403907976198043613947246898811278033724586561471398528706824084846729527398301596583381816256220821795459734668131616264750134958942527312502928372100079318465471389657283860026263194102975437176273997227117718058519461844431608955962095991274617701071781326054312580261462979100489570829910709462063826613378934048610480581506336269297228829477440392568768847862033464752458236538435687013698483323572335988943161096713368028664484624004263692256515890970480522124701868585621259523584829156444655800789706980824985097400951572579810813588859886186942844636100802235437144105635870437870525488968627733394700392363439963176652064306098544181515420348792982687263930808255065783383716414383680536316419130277174408120876685976630286837960897543642878221550724258470744082474669299200327201482612449170482537033987601449595828144517953588951782960496671753487900481469974318025698466415440433407495398318000339975821842113354724746592084259756661454502499186067006221210233244351957001458482630217218346100567848035901196657167764111944883323649207569222879037343699166168762775754040647062687573415238917819074548379597903309727832320966112945842410351180423734403534331124057529840979829590341246483472624467098454938320791063652628788608773517649376488105658446638354945388537988396427648376746659867812730755449903362910613292454116487363184510442321949083727264267148887429717309536594150509677555001228895550553866799501900315431053271233427971350900736364964492026523411923023590349806848955556470051719997193533832084219816644463462470224503118963342703446544656223828039854533188000882962939783833146628876367579292120178213905014225718256536490037459723660453768532011983142408276392722522324182027798441558898416728267302664626138492128214582325687453737780255497565569176123303855323651457375570239657440349020829568082692165870689388224626598891320565139103265062479405816776434272988291344552502522602847871329319211403881262745187748780061237494955304709398577567596308632069439702122387053496691405773815207309403679592164879820365672703490303258091948202997176080714659606149612298124730670286077980727207920631610439006484486625502178016316203909880727252997893886641641824240254971345973187618735193399964023751713791132088395362357989910356191944585111777225564930678073906622757654793617130803841821262682764996762294318530834914070840396967623537239457377288698114642584526258506123425943210398087966018663566803198598080502569016537175805278451746685845874253463723599489096287061513218152692509542680793696043312140243073030977361848241075041345947503227415584930257146586608377909650189033652070672632151739355894118643133211645622144781785681015311585637641866809434715986460006365893065656346687279916419233469426134312905989536515860197349742326541635755362879476386330380821015021737786952746299877997049890304306011135023108495523560138345432010256487173335395524579644995724016350730161307714768615372337980265708713393428073663227335443503887054173347375682551411132992898343894091977146114450489936722483353742301282709499499081913314649052914186861006216045525436516151494806678007900038169978718480352260688072985563765727562277526846822517786023313779790707028014302358165942207685007275614588899801775412734640034631407978017775496775248181618844544408981171835532551089600974940301725308096752785269993348512633207465133203510734970919358102405676183162211087768877752083080676093765996117815818817870467666959766998593660043239423253890996978752087506844797919056233636613996774767660826436274120435088700422347291240775960175684568124604381952137641132056783582224789938500852938759625347638506052013063664432563410889828749907862491405638924759407330340334686832427515446458239933683220305824981073166688037388114795692548857549109268736919386810183692252173286539041565757478020296702363828249268804929085650634511912331961060903347527746508312655295945185644694069359250281066400887518291837241050458526863019434585661353492883920878425710930671746955597510055690137856790695801993618007926032980686593070692773472729939830983208487512187633199896397924557595111575969118005151681032054959744171410434413334553017877537138767669147821538760824440531789051254968800629539639357042357751256729130617497184660459964480894739929417789433366929011759060203078596986378250584681543196932697335560478750552108517274372008878947135206159365613404921660519738405025724545675655038860671118358576711158037760439455956411734643829514922296534376519525292385551057858524638700041413728532642012175491004948303509420511616549529293707312204191544473029191993963065322962042587034452052274462787243233974525359678347015321752082774645133373505802655118657019485326861507388288900764118516462065379482091825368951285855033547731058144328725368785614028862269017059672504827164407335416103627381555088492402217941512671677135740224571890149587503738031264287477117815266035643020057824911820367432508199246142296445807281462656304675448885493780607278771792723909520860287316400522832431357476912269981158587868676597112953908802389140812888684238558370265160204877602372423299093043907646078081839357433318278657968551470933647864909814489525287593770457169719797700330932948464789494873306680894167931437684629296804405991967549812432309671216797139619604232744307677409728196418268845450299411561120086849156652819038847886435837095071508078854913179461834732915094792761833750651135156782077182547259065791268897702385816283340103705309652104146314313011768805485569530827800194225324156716327112630979678885863880087791301861096926098901337888738101248857638996352523244124337725472517002457023419560332327464189639788687203615910851446065102081597354735201498771432051093865090991740398848155957081380618777600792508548979485336098839807183752171720100149429514838402174827233592193434237970397919560779665137201830862451009323753934681016110003045726004657038141364144359731536173333333910637337778625931354511815416028897770490043042733207726257909943054115837755750329212273804276802109990760477401046773507042323890082207924470166247390021535343533585410017021221062460725831814267325620180106473346241475188128221356300648563968088476226559683561252525566341368048839636518757183822416870272470386127789748835914936074164429730080341764327160624861023824884251542481039343026119991903809650271661198716353055955364999641151390345858650669858406440968653435898701249406769467397173012881494951365560427827223407270143811846639176458951575687236267646511035091557339143661238699431101281106385942251260929586409716503183779489952396287841129313121987164937513003647078055559808592795965485966654444739088946196479248500614944314798590542168251504114769669071192660588525155817893853850458287906713690115161477942965816692615659383507709738855654982319140963765934843776743323142230603017771447886268555491873924556376688777276192979203222639863791990093024613145789250120928629425173189063742413966569341448135964056336111412063559641028976629563170873204603224835767879644803026586509689568215833913862027329521191231805562497135866362755916651326270720317878131851794969299935250753589283622537108506207287988230412176914546897898619679065613928102103427681508321756219743528168266376728351486912599703286095078688987728774849130483098263385584691826885691305016516502298400123243318110943074988814570007668976500184606350997974181611993977025641046437741454750328788158185908207319418850363082158971332482521806193732442460652919235356492982703463525878383435469333284269523006278907850604278206071157693391651582376452868235615574252719791413704976217902743683918084091196273605787943415668688269054922915178372760939593616742176623054136203433871239445422732542695482754727257021389652477944747007761635847199053485361016054361025658372417378863568489306107841390721305732620481932768027101012848300918692906412499220598068395821950102743117897103766652181032265342506843805591559857406035692589651682206019676656061746398469320678643373579468436084452580598021732676492901143326983456884711261999744071182510990682357433474653445584229039337517139831594870711002519462836778412803435514346038519255208860689663817946955061247143573925481125431570488678273394219700109504834199659246104094345017919255603074916349342766471384201899894533915012120905990924635117006017172682476733193728294607194263309797126134353595328782607713041822724539030011139997542507043741369407109810477004720047492110536171707513018202303025950939293685446633893025611525448515418779566527710054451511911921697827551957253220201771003134879903788868238313274695033821570143916410673117183376172332606846872512993834519913224556145164065680870979380350214650255962379215739847021762279033129030296472131626859003381252638545023084533369755144787498130204061603482212114659214795039398578616253547075947008142586894648467119820609234058817979869339769342593997052373538393050305688064817263838369603276278716159282401290073999465974040584784432398570528112287804341698264892861663926255406479117310364220215920723333435785126789163457946440806305146685125379002981891908985759625963917953166935209745955855973314881138829112307143616223069844941548680141532783002057840597679414679390476332261907123143071381096899051153326064107028898975703514675300228774703989460812673540401821218276891404278491014094875774096437216250756181256969311788017971122886133457854041083933571450274681815752424004715814706178866331994464989857971163418600774716795195057786670285407310845618250289068769174461693498633255377225860431177447613246130686727731653180170800717905220288527112592912801845017289898317378028552339982534443989351037034130592954884143858819310860835808049335867792204246478039532099149971460235416248125840142768623236200233643176177371484111740964265796002172107574655544679441812511988488735330164035455774825869849857345315878687353232497047080923087231444121322900196472527609447560740262934344785750961957914127567592748759651433546193395708587070654321780663099767952860260816647914536152176029018115512351141613716996762200454642591953764409532582438311802756448381682635313316893937989789621691492097032757244807053525940664741617677862412859112513473320464558495975927449081889238422517223499232197908104135050721986903603877662334506461829034566806157336462625569083655881602234328429488960844846112210802913767555200750446721232319844854451137480824617658064007062901461210892466297807669850728602983181519950966337670783867636623235294128664499702527859152276430791671966343913348642102557165570586234851309789282611196366608392926870627697314169279192041481665234425805453688904473913297287909797935319687952828078117396418013868394871417517903793122065816058618055475239792663614827355809424785336950980911265376778418645892228168216780178825766324515421750613801337183512090011007773876459588090347792773935622728369706258168565786905515040116796448105217423057133507325077688036136139485524751226837579421625840203530472565223983886489224611051424932551386405009878474128591902466385705491409465085041940628055299539056667095618424287285282290557938063515224157695420698028831384905452723304996041240115508402642760632501026529805716218869329865739072208473945533717187155215495660675052330084610850817474196176750021114246663081225551414729017962791997016624283223022590581387730872587522265072789772192532724414149813217268124126248936021668838519936777751864209795118892700141053785924092983425436244290955842813006311042359823066899431780482428637522593330004821236409143305590003650613205373146943305703456047886134458362635561019708352599762109918436297555025416806761403759644435943944024752798275680317279537682077206083412989842328449038540076959755294845034905878839184705313584759215085418307157182304450609621785503038852629004417611707156202327329642843508471636652575303589473343839272973879982794657719895295518805778912218688985617681329032994966325009301495112416872990800543198836423696357134714598670022354241726174200871509356123682894017120259129442709558445528978399200567226181533287122913828603564882661209610175381630406399949913229843244196661155995926012408792699255658219746207655952784199173729318744442901403569556787964520431850002009837132155671042003123659346763240408297785567681918353159405679607908631239741612183253080419739922858687842060554437996816557126397128870190020146674856806799828008697534946730627459646234034675162844115079344139914284706381416333864213997543049571422035144426491427242803179858153166790781782337825903442555576332349997318943846615943374511361895257683525651774196930054366978206184036884551245023969746632428902740462938538214244005067814029189068120724816014517892055927884821472038539250491543753440244125851200338799709054758135227624886967333352437899954424678051816900297256379659110149181109351747028698287495416798403636842605320298770105797387531784345676687690385412846437943454966707572243837043185882249411618433115596976782556143646267839503703062841222810346360172934218334678664364739423953509932217473721976263049759583299011280403640717461209374452912457489629697597813509779091460264010093623092811865283555240425508981289063233223775764835299449249286585565383798649929035319574270561520573261367850779831450351524064935088962217314572079244130078947147308366092400401147255869812658998514714028425482159094603374760314287126781934893420211803803044829533005683026338068535401753323725011256091833882203865981440885474875583066228609218631287114352572477136905301411795256671165198500631498803528279895601343638078180318564219801318409112928649313009925863070903952768813506126691165034916301365617923818553130955388835497844132619087178774682279646944733606095031270914631428204327683884280731506047450656913412857239676392537693392887891685120925669643943981209473260264146991742448935914877024009363817276163515400275480344530995183719678122039259016956667431198790788375116098430359129928996723479778555902259810081901940319818966828298009363201535975601217726411449420399495606840866770536294749547860349055660980163334920452885129765023090859110352485056261826946509984762288818683154757487044039908876231062085879408202965765366181654761870381197250084546656937183491135826024371457911070543264347268284431436917542866993403207755319313302367994625013644997256495545608740640981136017030238772762612392516163926633041458976898348623756462795604593584626603519460604304409286774846798983812205001568187360315799321512484412930408881450669042863909681102797695366335465465247406768802162132474584407865907643101642180812122930650346832389032842618492693757272419179882236887282353985741730799867167748423340907799451494258477984830787334188970887004883725138625761906208275835570011816949261060389454980475790818170597276423209231371976280667517193027094266931708841017453438226010747816038797651898668212853687820848172839234356895506571691514313754001226024026992287965611431983630059726568059975978344681398404833633941323990825637697471687301418296896412568208926898356780380633202559994819747362153404861489063604424321617627362720293672743818736636320772819703561450929843814218772938468259417957711163310567885347346888122840814872226085492035914788078500997422748715244017746551223288232265277754510628887766260457827182850219232351249244696417184245946808186977166694373884411500200533306095880257427668738265144306190798314098942828806907773020020201597420329813259989335462502615749982000836266215830488805452275390282158589998446872122927720478004714260580502260908101096920315624580271405348704149921447750756498204899726246739203238877460852620713843565509198734884850917098373395095200333797259493878489496114297084580896246821508205868054934857897611369919859472217624136118613721655967776932790189437516841568411822735977934758214290725924508282345615462030696226307882540168761058013340814897611232326085029949254356331506207159144086099849978505188159346714165280372177849003245230178372245682784472334584809934919085327117676498912723103195355393578840584251321684001730394006362259438934187788218106412814529859047098428458184226676805606713652329570219970610394199840777251439641958308934179405944602107807404877768044749493556585027097981120232455961515931645224219277183471247702528622641795787864781508715571787979481280413020109514098156456380840219005683671777542660342755154413959300421250630038767705335975548800399884565427163172223077304246447836887711053983352704693657826398134644183554462868155502684476038925240341408179055963348349102649784297083536314177563516567600898985000422053213950328554952383590043021029171970927037786459383146464437661411537688587188979003433630041066328834921567198307255252468069206165060385816063992138995347867291657290279803650992921469052616630433811665751597855450002836220975569389165425316997782553458725745192323948982164359764055721868798525625594522810539540247470691497315808249120667503670758497955052559626785778159673696881951574406460565360046397660286859803548549463153198011203056439819044720626823313294784235006616681776707360914251318660441839960023469783960795605020291462008164849109322629366127371570008345518003711161683242532987805259329704736421780972108842606483950798086724555494717837234501416311238182826750307568388953028070685427502748302455120592065459533075273043413960115661843764457502872319473361267153598589146472881095436668386836850457405650616260319960744555484397683198236510700965060505288259889149789371331237889200854478728558295821256829513554637748641876508714588009725710226461626675667846226052921127578180960237141160675406221108932184021162678070094571889224389636664557542483237702654107737306035298531901073824777509078161350152012059304873893059680397722467561971425333940381613310025765263128731682758388048921036811435783979819690942151312198696705597967788229923508455817282747580561118137307544996884535108144307419982741159998675016917818500012559615658147701021611764776547364536370544721270696271600765768290521708625382630479177338330811403292888176977386221299430413005999400351053053027195730376962686332106094947454100859937784437595158037406278498108662854717224585776102727752473669664963271743783268442962301418601206992496215890208060294107290866341196921131605755499719570984883925139385983617776076155137160240948209064376500955788328281722585590168654004800137528660833804166664963109768608480632507534476305180389557180234427235227156585782232698672708807110496985593034642404495995835785968651490811950324178264536405242539333695473166649326988616897498186741857724843977175808801708809737518317051177123960000976501553714236629884293339316488004828391774046154240901427701146869463949994471752084640530938806201889475216220281189548867701148422000540375471112043210176465843005809851712155430332178441455989927071779027012982655923854511164953978659767539163942537905345578662012610232636534838634095964808859001384279602720436562253082274937347348914078060710455274787959040149033322733689715579484095986473482686637190568148794677192383785278307398276605046626571925416007187236621405249462089265463505353962523821433126081564582127994626359921088513083538709920974178060373770791667518540658070000620881788326952250526906570805291703710075945294370358873026168757106474347338325862302064139346153771063405725869156725088187318431393397183940685453945735684313881142900328671055632982512750740393634590653287054682548349136195076149247491840667043024158891071242064041250767789233402809941880314742972126898959649229884843101168083173262978466825089508455273325705685367398079430181104908320277412414974982797678856138186741933360663843833049637686731879020690546049710438859726951161327342553147589797066484723049751186902293688526711684497144110616048529570894200020042763423376441353092017997385374775830866587310764006734166920831795498013412083882489927778889040306170399195940780472541807175715503771974505971241996618097353121209920745671714979729453593152331249439959703674365010253754075040266069773424541929461920625764746947240704385353207517921344415772534695567829659625059857381990173994291888710440983874287141875596505554540546743828455865584351028616386957551744724559297918280493966880881545106270861163608648560097548140074879653289197244810017484787038628205993123329577084367471084403760190429778892818950498998722915415963918916462544349707747591647083741176731857367368716434724400912082948285823359081896046462572559814833278885681494817782139878151371367004364449087382011697650130241409839274062525752545145054686644124204955108420495666305770946540420357677281139895809113561384151735128808311068606918746068557485268568257810852191395908005941386565883857534091124425461754851979406976850980781391565414702976183760554745079042582394452661359698680341174826466572563964210847704875449717102538203223171603101954348958707248590380074545092556912028412532209832612370646206134846285764716497547071835679444260547864450470185585054410499597379788634487926419215635922046791094246070506965398787671887258452404000493657741602542099816173221564081373437175180128179385259796618864677242115223786026874933113969770301938599280027969705471250057717685248586199273920442693212659295111841721639708414194752687092438515776955033620084083586777456354546237740424602998828397188103961769065207447644999823329071238853423719925109631442561631957910944411026388030219334921231116913716605128798313583553083974937692005625980680718500653830169998828675077113861943568037862933849657892405917977242317073939264201818333148687641207832643975881145502823702966266346440535004769248507330960101107667237074654142866413685395818342055647644530043176000580730993200680136528584990338878799356644014934612329898262962390221248043802704054464486010281522085544345430331297482270825519533299027914769182478347564304742021533976399915614551150301590319743534369480694495473717351076380280388446158224154930858676148486462951548188075988030946238400457454265121182660793045470382501778942180695513884560707384878192718267722527258894972824451170888784908642997285126904057933380902496286475111060940555990777550752323884213430841046038425133265185762102176012259370144697393809072127076398599889457764622034098499190971173741290861608090210273552290629464184024379284299654947406516392329885642197126289465904562620880497235903079089928995695945090592393850288341755903123097850417777102799035280370240967676544569400248549253189194396358365905322583055996990291096683718123222991686575087001066072166098409904177392850546180423994663345850796063022052932516718260129593220175435231577913198636995632661718224146619343505604952799138144537731731347457462469892797026522696913020611590828332098725372947785755188016994837719587432087226932068082222398530690263520681758992727726223562920828689790331796645577498268795980680359013544907027503711575028693780588353061962477758653563167129399202230201260458712756396093591230186403565389897371183163671334983513008743186573222648868662481169673271659439683661933549666267757258372089726888536067247070987069640639498704711461316232580119593593198942097218573952289697570972582254550934889311251411285260139690157529304443436696217070426487862212960853599718513688809820642315911201611042349120639483536739059683860781679474931973827645061826847406858029544983254460212329727582125516742350432053086449366024015271248659909662726987984161797507723989922534903519097349526442499293868164731691164070755854922509403867596942832791357251789922720447507074892591072708203031393205219728192088840731158626344603199320591850587803603026878287128641610350329240722197267982877933922617429082022231696320424296721453368246535785542910124940503425812268525493481804187791190889096984986742505194246456089899301252310268280907347105738135312742410535560214013016736657541994802808026048779924111070367308031457903640164452758907185476309209851437015233158972953318508755337054341225863183268089204265981869569511874931340998619864565793005729005088015708277145911765479180701987626452577360847833796995468153945784700568743617103922172076327327038727175975936131769272098897760870133040156075042500546550617623740894583547196404563299365307705285303142930535736000938015068658055455899849878091250131049865431591655667284416292535401196004777562079483442366464557656946567762846378756246817180939703723564136913821474628899730044914413093616989173782457073263689054185676578883806831177852224561020676704509124074307766157488921487145778354280004379503273617828687168666518678137401907092831691980509592548576280478573223288726246049229627072540957210719922777601240583147198887429118583725312693602805717758175945284385615386026491695824997190052060372169193355232583855402399106406970581848411441622829983804407556998306831270932169565915117220448225458828509160050526861014063072909515274074296429786763124423983420644915734442232424145637911847212134923798870520653213454515010895265065137078880887045368910225814766303069885840729107899586007676533790152420364396881264908318000328671541019352433040850530252837724180812054256093213899156892195486894467270718411791940127193683440659829325363766828132978226815920021185744232673382367171394669798797130673159064395173255797183688722141836585729746769389135406113049280297704739812175517658408697212828388093240363557947894769407286218756725491829634467810527862505888325898392104376419597794232449084984668589607071531444301575287120373319293875904616143885172790047106404299496645707712363814121951660627768013931425928488961761784126156864307642335340489651714200394543134532830596878388531835664502827728753601349129774075781861775792899169242290532673915059619352567348175227069409610659063790074586063052735949781788082683445016353909105891065926561728540210443271701779025012556712707062926758407455770100592295610431825644406432953332396466088776326031967720207191126007879221142803583592686801413709798501434724951985483823176219711329189634261583663782190294932623713575841499169956342975200625339287034314542948485032089618471188191280829643097595986400504085740288388957634479034519699778995791239066098043492615542208639984916476324233413599558590633194122360048208372606033882990147649774263613996374706820567031205300655889444969587166068429309328920132398413593498073538934962336962458285997199790257027092188187481723977499292374306070502968229505957053911679338501568928410298956156337788127074226242717465862888101500530756975833679545217326921536995151666438444200927813320124148351991615415234431412195268785964379322568814227608234136240679251632567287368040143156156890016758605190659137585552444036531470306366522214864992453178656221910842678849137061297465915417507610485551815840380898222225695232151533239708525576217267138630782805735719433818257954501435122053830448901732890372435501553543695255646343511414894370203132212213796397431911600241862049294471644770132971457979058121301881961504652826879180929855684236875474646447838880465914857966497449032665955609433571406365092171243083339321067293401702456156957323457403854924549858327660322311305216252991747782857012195336301710419903216552962836694338891969664084800607257178185879250767197502433070700142952663774742350740739529244164640265572992828273573401072357287323311556966167842398050445771829180443224693700612812058806526835237870967910464754534148059829221735602976347112655562669634445335392775828613997725746462621066983034965454387880926604008347212015727948853187637241056292094216945346422448704521840370909478670957423439837089967641245622391806932379455917053229938842709375015495655328009734744521561078894434415958138553413306030532607068427658876261233936640399754277243520576296540914483680383893346186981817280722713809567178609953022994311168921685003573261276830945993152353116448728890157968699650085448058975340137509949512892715475842109493469263027931297173151352455332894063374216153672034562511804348395986787634639063726456919655957114283932388985415101705894156830433529686705349987504856092019107131881579758021638908038828989167039032013148718419686252776718973363363775572241611748030145205504959359271605528081428343142327353899716411007278538702392768484616513614235598130227845439567796555239290898992362911142336560065922781373708873626632829001199352608278990164341953482521046985561193248488584595033445960125801925187028853877758090313559304348952446507736178261614249775083866483261254376457978447526011826613277019870722090200185317178622724081357331707364835775057832380194121425099350711958963676577974368530504922619902307161466738942341409964187286703185375742788888815749888315731521439606859640075324661087843343574373192084052834868311564039346175982770439008291181298770873861065994722542246318312899304810450206343325713111253713456600115417839936562905980099413176507416042560536983587762628111638315909855828599997507893062862527355384145898718363214149581448802572412358403273065750832097319702430251634941837054520526747411693244717171094770205142815271709862264247588273410436310717631022074836341894200163492020101916157029773736267455421157780406176408303527073177189676978251267285085109683480455203561812063329648747247314349156615793104469398476754221492996471241917931323647475959993217842723408963217288999903164685874025439924004752372390467952855327432477712298241817117332090262719756952219529467988727016756931009556360310339469755592371787022849587555801049031342604087062974086774286131364581775199185093763837602350233951958434107636545165593811580553663670374290387133530687563274020560120646172023717302383679671606213371031645605352833797346634188267560952847528721057691596394949434421380558777393614140342439353214013182798723052195940365080007024326613147464986411667327164164342790352312755331127424334550539073746284239002314482600121379837066367946994245759655108500170455368764446892437287723083008139882966558385177776814366758752668696668175116254058966392670932762723958991847605887581636699296790530630331477754324182254870099724460521665638477677910225378194520165421541873089647753908661715599178783565938756891850886683819265764543077445348966974534814299760576722416569828700134577546993118113537433953542344152705565428397052023806941717370215419149141993130884985980087288970047625303340336466776267220824400476129895930854224903105234847311018589163004648587116791192634016055529331972595319257162777871301452182261239265929652387501809507905916409011309194306268360990870065680413933872216084283644051968488087810193140152160656373340252604362713000599462539563742705655635083920158701325709228878133616554470822780311775437066954849381577301001634224416398376497462281383636601907258629592310674327330211266506076386722723350239380746778444541867807489866938012135551706584464347370298955487538668973304173914883645218082838725113493938891791906807261856351022778886905865287049635123805999446970426881645613067144188900356531001559789313259609484393017493985203557774032875387483179108245685499757172239803145973236324424516444290014642468337468558398999597030139673422503367188184002859342757011777615856900011757667277694571460509935487987494915198384508019585389891234241435285087381489802179716339227732419548372740123918054235887961120627533922929560490426440107091861942456823696201055010929277446385727753804237930628330542933434728651958803058880006298292301807589330690317801738715701455907241697533073184791607404779608564348535683214949854969032418570354077471332081496109609637157613948065991179964918498424920497873209461760022179242929609751066331079739473786061906588461260619134779551365936017792106557897084584316433350701085504049951480090101368336473085292183196452134920169491308037237684120110100085821634193351419044181912267554848990387822505051247339346156819325311362701042214601989369736923714863535070551122117162722550704654682679935960303745620025930494623157559194015955905862309845536193006732140599397451277230773255739472745225137634911884853621080733112446626324104642036661938080941249992497680092727649461022270657414824533666016061099844660135928317339448370796378378477493222546788089943992061230793669133444704236819579732529245199309632751172389120614722285909818364345910870729766722925950310285990483169873086310470854500232711872074911588504706696157248147786218484640351576212968597691702239011782516024127700188269125853630621647076938541763912087017748835482584014725496624432271319355765055450252784460882469941002410208541037281095764267509201824023912041994900591300126255332931053779530781358881368098243706723288553304995404047452442954344594392309780303652653404252074725673381648429076092448452057819265651690200722222560652135535806667582802143631044350985292524601869795153538554945459877638303700373113225139071361608772885470531770119700918879607330088078074089342451279445835905368611936332132900316532848288287963881388766727215021758916248771342362605578257066044043099911121120692512604711941916260348025742087895733002457692141344624215461928018888842113485063713390941760427694319022604844989896888158757326092715872566362729973359078622381228804717412688375613163941042294710935145915553390561717125359645624204054530833262097073191514224161553408981209014877830601190115759755202618038018762998013745208903596490236569395465682940673729927278598346250665295373628851450816884415279963206898339187608927439160494581127029801959578231285000479375674570543915398814320315961761596558276393078247751980769954726374330973321519807705261031174501640508241436601540971637940874346520037136717932309607937531990413530618969169264650569168059296932713014538782381223733249920032399066888633642812926889961225411853327259431545091389310280526667546465232198165057747995160972820360964221059081571077237216849874232172984534987256542893877359477484536929836176335130105765867454479746295094672768212699382523316008541175841404505746431569808258005467032604313198305060093993962215769790334557236060845871436566651083625862310749197972521066565826579184776743727754081336240514444004217636788735064624040097906605878287450529880085740881904496607375869098794837997546871746726153306866977179066915582184812193865365741116986224876513950147781445165246323110613212143573802514755454494858882414194973416056192433562626979141299305561263690853885568005118953349440306625310910275918794835157699616530230223171956185663830341467371424632483368954593371131965653590922752540963241849796886402631020176747098898162579615767327777804805636315997084447573171387586688586706720651771035520618820894902478572079068208537834026973926864485549596465185469446476831766634123900233763696058874072311886674200680385789667531974489708631619663827785539930402686489107757486859063488630832609033980233065806894716916754938808240481003966769681042880085607607288167680555262364078420810458941637628557245972157577111312994834851279927087030441247392603285288193176044639900341351688388765152025426097534137744932250767715897585350068361848036085402310845523634480433513688169321187829515933591860441441578359224914511040126748203441015876936160629485872615842379771319045270514534465405670830864416819116671252506946402831384472016917885259384767391214951048383826585650564712464089375840812469658392983842378722196170714158113153655718858895221832888441405914310756045678372767046752664097770648713322360515538781425961498086732645499515245493194260219100429483795243082071707380861092672399850465567889427371925723481417200773546357034387960434381222513200055365562278836549354531873490336799501843819416681346875979014847247470629248489321111372207914031945321371417380853033396229240511641411930535279575306005778944994157524399754873354961280084818017189310410407473271924782199523770682937551821197066855252286535906174697604091856640482749865211116949844996808018668463937692761665263591351592321111475902152819801866118304448517508856551352577652267224292164021189007099872263522050012299331312752172836973359975145669770531863501684906858740354186563288054518884575482069583733857324950798030075603724340814387667490198152056024421392833722062662094431849098541561449183201027313716252805403259000410164090856165412660653986772744490029125961360657223173878125194502576538376462982722156107651806284121979177128689057998284233234608939314989263395158788903335566258459820408341619546665008812549357012918643901568771676141250372482936052321308587581337703506367154340578447203602241328539861071395553925814334525888779782014489808727009381621499697186242414380744192312069024010388824905707948361072352325271397830580099915823147993909728679028813383104445157686812860704721086261800674173633246736387096411463707794607346012260164890847915286715868742229988070632682399836325210572295953003340739441738802333585374943163840026855508374951572591292878908259627773732083638348835941519555717888082772291608306105640263006761987588465913850984815769815090325313894998353620931069029816329359727923057062284674201485517141457147595651914428247322890483911415797367259860679457259325071611329836719542620309968125501342616881333520639991045713084393357088515496403929423489672508379594934329483145621141552521125282308159354569126592850838740349069522949857456027757379914057223045382699273108299252132535554338691961484912955391702821574935233891961901063309209972989745940390599344227567222505407667697399732417920421079321441414720167485156605506703145321236842927239898148341829655832556386865140594526055402855503975761807905133690908078302754405290142143819186180666020581803890567668666630032436275176741316523621701434319761751151091536929307575576732138571024216035718235696881194158914779468666919092868007646949932092414544746422037257398464339884065990169585082593079343186952693521983589824417339405217712218858243985873315707160912347046515194438066629951552433967786376523174400094687267595590996613052887274669543761676854807255686521445079268631540827844046193221867622793480764847398647406184965497986811805585959295114172680864755883843781488456429026745268753226789455844675999123697570317316985836870778506234469664511241950144698305707884461481629731755161764115807775903595299933513107736685609988613360801423765149743362719813146040406744266752729769255642747673699758260272424222529537558003184937634689733152264865533473016699722668613601778113215406433717259492505797863956213690592754444801241851279482700399540164614493953287267958911508047334926769634113378418983360809697172735453673678187454764729626815354786119850544389759059866712151813709432389018586924895649275799320020365621684572692055209336471691982973245606104572105532196943952587759914919031072654896811401329926867053712452757987718044990427305286646495475510834577560919672903309461037491227336728433703698808345693633675712743856000161914105894156037388239942766457570920951837141654333440860206480119983798136887624685001998326648545295376508827500470599985460718035071375089507525061722696585329486240401683253605816470179006467654379740735699213967450431456128840208838172698215220592927020875218326042824618439902528770245393286590872750611634598165717583274520592791926634933367944825889321821381002768052781901681352756922025083096665148736924043030590589047081602351123822823597891153257974980774071444891241297365047457211263763468917759112636283846326280461365567130060530152250587166714953278399924706554513885335680362070658679110307502272339091420487540251792949608954047765037186316999526594688678643547722554177327168738728168607159572357969511597007785750566878129781408108326408146766292481938764138112715632218774226247698893488597797962562819367066122362675195966333806827384954202064016415642160625162916997662835027942330796457520518382297964429693231224914384343296348068006353084508549842348617946480644479466423647046842127446037080899821508532202751425880360708214822753452038078757170977852450828261187385672833888154904950028129653971360192507790592109577060878627456552172741401362785567977154145953668300168625084427947283756152698886763749970123980808051814249005853647352829760504595181971853237418585843297312596577220677940140085434112108679956939580465182352133296106154697780693356555256215970683560037010289218237859805283567701587020166376722940796102275487422599001174719506598988370408407369492937143959279327672756039755265480147761831833127919684440309829703619152291792758888052093695810675651678939883560896694072331798044436425897283538173641918874492783480065657973318167744509264545588490988934539400031174858300223489067699023332696030108430833298488146236956086142240013905920994666334397884811347892354064147927142068242950902680689867895835524707111894514662194534284444003808397195083709628422137895092210452173467291195118186128782209365598208634414302819653939926152165876195144540540489992587136193345371916261989652160759522896390819936148670347652196537053811883900648835178151419372541850061136477381251637533741915015418705109178507861513914555141578646159922033033746992656753653011881453472472003595203971264492346936424340277517623095261825878394696468159178360825600040460464152708797247513299142056657454899513808329940056778143516219256690863258504116018838289230738389965966916945618998995786805292881165220443421869777670064283255498592465878578740884006734319531541378738049459588132614792920928240542963366452386929759703937706811184980830572048477147798629834298753852084980791262846607789717523802775435649658106635383342577324966399038669682726162833357694122193861383473359027881160198489686037177505201700628958613409181380454858085189257819865034496310038161058334756143464561563748674805660846564830213952022098876042135603069140005650679910930751386446874824570541004544361541105123704684301204605992149822001550909923695904830461066916418857699250083803375581171612862566882120592735352104194674073049966882421630893770241963937439480661086715321423851317401338065147006355081570425222270879366766172981184985992961836324605379622777340272192006061640038131862231065333590345899983880925598080304149068406081081251073091409773197316167092976265694089548179790921081620107099949173610888662404565317992217802980689327574998187104087666531086319357210601126305103332919808390670687236579597492959661377776955426828463956372614724160705031649626008733445062546473098916613187595695627455757108992319570812526003457393567120579414473104295814102479255830282307342638026399348269172219547803891762149846118645972614573764384719263960596741530737373459346826870469748706662025764960354534157894504963813217483941889192060815468079541060645196367434129591399697133996435117820058322459381879534094139302697312700374524359910559121898480891709861795136193120281623628105034975868750016301079214467295888186031091063969792885145632947310604296301074179322452553220889131297026911614530042100550171817773226204183309594356633371950492705395584928457274663424552775393041932035122403876918377538399562585525528192655010695903703312384974285886792235904352381498592844113887076754580055297704345765358372562771598359879474652637763434936016601112564312945330706352119290485931972309747113581557034286914948858141665093030142944412329001858641128613888472769922353651353420668165804368039500476621629241875314837811022118858576895860363618949266250183283003941190271027280138019400433087355644761767235301373148007156590505862169705392733540208854954261630111701291631199283283350031728664688541307186786984108880229047730250422972060519867417866144012878369149348497765464522583843495592018114507177661037760345167300516292115961104347757709985137075611818330471155989050932468217401971616244340246622088587053102796320705443423329104292649855227303731338768650634824223277364213135946370149956345350266431171445302812178994043773264433625358567739227537753524253751575617431460521702159255290515509897441514256133535812274051119132766532730698486314562764536304576524028649595870749624678946763274224321661126893612245728879945205795653855728520027499529654151925461148287477034914554037738512225097142324325516340056560309615422702303642402909417567665122699338555643624946743743104399479290605121953527036179325049748408076314965920250462375345943014995592421577638474079227997806219756550374711189749375618307861772395367659889730024203571806631935459499658035541937219967557032553107179993708134148585755263370204675680397119676545300310118737060898580300836170503010561043634778630568207451467562084724949989594802536314240747540676243872279549939361324344924056629680716832909959239345453622908272258086212621113128701328518541768674658138307842408345469795381214210768984264070620435581914871568936061494913232263936336599173777859975429985552115924571144988391807306061789426707513638839114099124101579443025164721166197725252551130572677924448885614490593121130971648629159747071607435502602889384954624122723417983884591095215400290437393607563281189951196069722415498390664621826037202283599168036946367966959956124378900172748610075687067778954296582343250723751558382646930280422336887219687324772475462078322225467787407039016276764995619594938931221021619084051959500391090826725598617016045195694327367008994055094108372216804523118331337101215403908921869776292477795422064767396568625623500718415442460828575932349152396630650931750345301816687833454514143479598509569408650899547711772325862175122285574854540950784713738649820748094170576044962413466549369012636864694908892429553414941438179424320171911825310222024575151145326161066586157743670597500601329116769991263877717472229864981049930978325160546452383213793476821581296130203578042961800474715492602924103949901389987779142656364990639498575993975626845502553265871066872072024562747563786712826646301493575773125246860170149793492459488790474236080200531261059674193187293171761997276635614085116904215059556897963447690125937500186393374017982298057650413206147335314773411872126090950128805522100521440986870954285404327102534425646468867072257426899926023030641315283819647839896232225202932159069995627055741798245482238189038554720334898720311996105173120870826650893537372033905020150778940936817441816551568479765132007844853867418642857260301136542522819860991735523912421556413384346371484493981751202001085415214493518935302355828837057123241711285174884200182155929071896624604807159939561279840940358974713303111360407145625931367735260287760462581987997666741423551938420618243737322776208093442145305730296678379106981668105466946859723779949630448476100635399491074446812465286075115588434471822480002495784154649849900418332263296382598578260754237484954105439580680432508619814321022295793601231940965600273385926489466560286730248345658654092636312600169689488228580057164731583747992795958173883151509865473384732429336572074613503581670798132825171674757567111150058039150677089769532332489942306359532621532117975466984882233180221199509271195083140550133802778276444037322742985750659762832383199465939600780327656908229382748587543753068897284945949959460275312099467094795212265795591745073115769876990134239576112107376407751907761646763547215932866331177485347591473130585908052540945489885475341406190327375612475762859970516112446434859104210669974976763444320001316125872696772425695190479735610431730952838498565044512606128979507660696178773500599684210276116806054075057036373503810431215589690204352936378092403433699681852495206072639066693357307633616569242234633945835036078436021267881756505295070628575907247546009679751700802482705607538935315501331100285416892296750728487801075881054338645837368992612096544852431128864200420078270107422843479673475214116095288953955597364344693875911649873370802115735760863214019829387283064804557000322716393115227710187377684140799863397127778336236113551070410627515008801132580511749459620369796264813079507547191197256189957367915354791316386773911161888376900350867048276650393980618969509487171418413309341907331549738944294235296943255253066109994816896340755685701639915684260317935502094801701464451565133630174843870292455454624273067356962962818097862895698900093223074513670494221581185410399041581036713458900011621561354886845541166415311583292016620747148416124986583134510517195150760907369695980964708786854752414392499826395755305664227554691499682171925143482579851909580738994846171357054995927562077517223754896713910214117632008709661210560313311795405458278284199090532543204163001440723613181258127104479614232993093723214193026540128631616590048364461720368994150614616653486253303616096560760878243778547749771348929128806011835932196617786911287205475071316945879174719756950991779358135340662099269151480117837925737020530710191668271247623008142395314623431585000532470370965657666818123577465631278346220361775550847709503572987256054904094148487525450372826308047826812938572452194245427323901140910449961409624543317693126027163989515712713055656472872424876818114550674488963550974048844096310347252397624858176820103131807491968090104624392971713141263380231858143019232679944755043427289701141676135939597611299081527520118040350932733882385690683921243283648845296123159830052144167914120065785825858568485454716557233938481249572627121082700765662360804991481814406237238528103686777135059154976119073719168924931732095304630362390237455933882292911049407447643857087566446694399661143833741180475919363746995115275478297302456273732149439759804767840143264526619191836014855986381479628293713775534548481635514999566535189204309324667287680952826937890877100822639595611517097252080678060910163128013345253583895432372425951348578590015134680464926488906381192429312332307352299779595201566623269992076658023652187176846073719235580246459170401972991766642624864523352358408188391248076754441505927934634941157953242207530616545668106369299618268571026999155770592442972741887598204018605992950118588359022213534284008645936209477548272931971271633273322803639258640265788675195777891597446500696832616866506259332595780028415821948069888930520699395540965015948456997563463886515222880482974869730586986101697521983456721035272562811214839109011457871355972364251193522611198753811332554544366000486185432989979493527353567732915311675830027942261381075413578816390320980397650536742170325086062822077512474043142637577828974204710794276857838544036217306244960107082976272673907912254431841090132772957690021240512016892985157239243033427680808170667344669054739144111720294713650223883246758914360346432477864048369590408113953772074382441290088448828159285953856293517591855353147046200992291316714596849561773841026731556260657149487049165662170717041814692751999707641322800508476998656540176454469643776603102469320918388428680688465782103977985188237851916059292168471514516908426777674508361772525915681367608134053107296245090936453392053128983674700270789072953305833977351181967258148827233887243873591517053845391258108072623050290630646215787191680084303702420530436096778992550967768134702358736812691715129683298128729992261172097231288883787510674334536175150145973927942058512797641877940768231992076988307403266427562303684163369660038312064436952229637913934628548521213946331164325697055473724819153263571700604448598011027242244083534621434792334585470664753644401320155288790103633570512625312597630037409740249765913586367133353251147344291753971110232543981792059351916893998205633560861020420656976577344505356899112924629992252415855588697046977645086858659697908907986058155901517082570464956742068266766029378360901786084708979838037540563564295742238996051228184874068308756471299319794908084067040861715840325210082069351847928447362768947992689836235531828644020998611956537758632101441599771524455705784385596595621603429171595469313897217938554659662286650076729129965443078635017906093245037340659656060408682189706716237400208561912848626304352541097351870207703249645514663095461710219379134947322326034287355024247761721261542037325206707428478178209514017772424720792956893014817824348765727370732992664174547193808662098110031598408222097665390360214496502515661328161223304760097150758047491002462681437154096738901797527962834783490578588243890833555626475276061477671668501757189759601419473072201421761163616579533060929897207832602730334572621287611593064306518086910092057939235915559522370207739550678067710713177199685486383482095598754832706124027178101551445100238970604764665826511521638135904798578120134287775285262374537625794811814162888919053762124390582883372803408128130768502484988993117687531306524394240284075712415805433898181611528897666100125879093004410270654290184840288978456487016978514620980068167230806084808474272041482512045872790584902393096898916115700947014913461985659692913198899700117183285030230120823462608421813020035571317382918186332971074633281843264373981436920082534103779141069480033413975666066572011030940061040593217323522600011378204497505651809152068385553336871769415488678242255903976071273780831061152442237394703029368476572545798113055889331538456102274955964733110533683235788181249330967466863217025403768798186683626537395421553780796623307952603176186376443489522012016491163521729006745836626422517792654542004637941960741720902135268889179743360513389473599428742943667987049663769390273373906929436585199900472740012999093136382444340596833178628830356939299005677716816421224784581251215372971716421421483777268103332192647422827619049492577927701276319693251316008045305441576677126074727480792721696859365558051415226353779743380744511248862417599086309677720732096316685064865590094551634701723317372095147893902263019352883758292098980601045744596352619342463995660585739186562711860884208953598924874595622742616170319641521682673091995398965838472867462114050668080425422455967297569484219164705033646006834550783290841891043177058274072029583649311851857717420656651852678012281920079927822902963228635372962267455688513413413619366807717520132355676500000256093085039334651923855839940258208248090580689610359656476290003749733736263637229621934340772259578938521250112090955544133976251063965224723367269556381112444617096440757651308136154502611050624400831766771152389450084476013197800840736794303356408014704037060632881434063315053357505267416982957216371683611698433449967308310524688694380032052591456724216100111896619844870079404026924324002158896167713018092696518141066956735160004688817403937294204139222773234775876039634384936816318292504572239764674793095762385281546165509276813840837429570891991948228480558593959338369241487715516163457774806587429200331455378086155773276425608447418733482297164735990008501757016523514028236267344186258058584544689341199855554707602296052111028923378569287671402878949655041458793595938245190491704316189076150964861643294387508215208942363469626170408579186873821657317871390458457333606467123773551299074795269150295108470966046535358676796462161178551909506626538880629634147430275080727834163685774704638584185186832421832910809571600193245332671169864519737250229919272043119483305412125577988756194412452252684230448003933851947171389462390737977169153624103609321047297079609754309647409195201542650242598791304233504792767970081491387076969704332995188694828764005790516020921518216415673065600454282890963759826637783869277187948475004102211946122799556932433472341109465455218778911170509653211030390888577466778212169868036038380672618922535853693727764833262330226645218015943470072535672769516243413037078121758666740519415444294207795655368282099478321296381565826514639828708484721654006434601399631168375316864477953323669487693969743009572816474874120282758268883011176501801102380312254640048474721069481886285756353145771829283198645682220713782308765908883342601719340094071211209201950359629587335942618507706912132428856498797671090985066275736063771370105411597421943945775637379066889224370117456845311636489359886699432288302101952788861971112409874451968231799771244231339766559712928333675309359535539083730706874720458027748847391270606294427532513894815646481302441551515558080605725616165936973395627778655581912538498675020521191293644974052344635144358511746586428617070038617801100766828053828261697575858210170752770776812237262726170088292729446756896784368004106283179227449281132959763071602007362039561027850386580431533538303029095655469796758411072069970910964183516354000697154958987398198100443976519044201156213869975598677597549954823079318060657825270956367307471184737653938468031606274925383752287644019044624648303004462308788279870306617263018625813545021599786209255925872609917694136649263104907995994322667927272857322114796446759878348299771756133749945645864523178140339339092396060762169138994623187308805359448158199631384269939235624313631455622234542715346645148761209528807149655170957393313320029597883911225053747916732664973974027403733578962501463996037633266456226774724110224932012704092478201112727659752186883897573104050848818974634727163461277746002675486636131946164464375079071283408421032431630033478003658685522260848953349651646584591056592031740541562424779355750392689695995551617656766458822444034987266168640109847822209700476879023941623811015615111956256010778958106595012239538499162375210043118433315333346465676113556078226073318256580733922741857012435759685311391025914831195181394290447066882586893338163301121970265298358110850082603915104150051101371100664556933031505860971372304852376812718728098200886549502748791138451656970427293532905768962662091549973140121020365802616005116678919446935613042599059829549215458542241891331741663083613747091777278730843245637473118836312340219050162579497124249570191461142646830902380711088231457776212430871732030609154490327924045109827546392061858131097123751499169034122462497102322439038630871483187780024138801819008504091084949476847491998968292069177463414903083236405618003757603622887952404717241936282384984457668276356474206636956934917384022737746287148351599624577976884767842246179182267443737755498279433719118543432092756194768626956850886300050049249813840041006890430312803807907672259624593678014306891427715543054410391161582718668665788017980220429718857902251396186869812335800278969266196702319143107448904086484527921534256702911410306236455900952884970179104772095922347818828016092713067794478033306752916653222394646538993489179332941046149463932369200081167272411156708119494713068305925263263184174655462530134601503901972585610862677911895788324807734680338582418393596459837275635698588693714599896511572979049609391579887123955441445346219692654119582946008453234846687401308492104403912756519646809262762067440706084344061034838527191995878682184581719964581836155047890533319602754473650482130214145181333668778749622949635273794518689670586811291469788954025178834487816848748512631226470129282340558487335898105290061924068938213539219024177026433845693249064448763707329449309681759887249523868386781820660681566046044596279767463895455692097181245004332957896335210189990177307839932957278015142281878549040026228817989861391871425599986340302051258433267792724205072021808301713025600438472905206990577499212490941218223615124337467920717628535489762927343584449410775650798107561993628722831739918233116302475149751888353166945997581521913877071466556972318912218578390534163786904246756405329434839996049578379055837830826131463543239670317867343048187439259054791890188724734130708565137808904596712512193044727401454227874358641227268683907729258992691990087518641228851343157904757466254251297342099017362005717799134665117240716689460443948601663330770969588423796476506554876146196257610038212388318193357245801269296400021093903310753982011712536569082509904810258869500278038861824373398125212614076581417205138096122883949334169816792008384690617654459288773225054996463125946501496036661916504124699846960001823607484870519800398271388816406187090290725771061665466975756719614886992173886914314117348787076449205523368922187354688592082942569332246521970288935593854386522217691175935328040265238679862877126513371711181544057854439424134482311872003785908961450848398393682661337721427890265360477767834775927197845212456804693230246691880150439701933582271960242166437809072932055015481770037802265262837054355834939130641531308610786384682648735634045317205613518895000972657146228729580336908311902350352671392251490947671247905976131670663401745604353535025585829178859351379976473755062790532812908997588539108974192064209646531133947899415178470565120844579150231717285822829977382414298867900088148656861698563030049399219675338061495342765362917141436202940778271922852899586950455573683222744936129565992586285966496604637705098498789616596027873181198889871298631079689971179846543369492315417757007060201158160350055303297927739791473662137659852040260012647997365500840963892383955321422078856964979609726892149876692597281591818942326107227280516948571134461422090240782706843907109504512497681153128176868240310181262055314445859053731608566517574395950998334098428994552880844855751208151717040227486115534029882745748464115560549312336221659101010869831883736399483681294069732059508409333703722810860501098754900003436115147999914978192445927757994355677512401879771117958607946809668589139256627230498227408340627054544048109779127018897718647274798198848559001321455755234455785700247717410044872317020642782617995853215707324326887785773599268482848416204723710839724387364808216219214796971486661322651948416230532053335163777073446221965937471144901474087019615452740302400414192229119189555939761072804846993757070770367964241094706211730503485753120800843347834565048365990455989959658769731247427493660917317322798362692276195432069727706276062279887147255552190610091665475546283501024707265022730392319534752857209879413785310078364331033370034143755785160032852240389336773357132745797763535249587478203148079756115719654716988041625469289129879040683534679703738756575014572295222750998488640910817065154013042838356478347630316854379134998393228538652179052895381184471134809883015089470907273502617212085885971269343589615181160758177387077277072572602426574745650513588327271885890216890621314110339675421806014624004089442745510834588101363369586766522370448493321688415619158264183350425372943496106351151335455117768226797125976428893184663903642614325280707238476359898212598081571643497923825145398719426527868774103420952913120741255686611899473984981468330429272726944322934789250042017223880549546126183191764412765075204828229874253414695362590413643958206745712917009827310269564531768945769876127293963976434689069997325292824606621369690067004488486300674214298205343260927388248810701123252366277021240506529075571254879658647237892787125538605340327848861665709854459577917717458187046261381980149237366328855169766800780565678028090963932760370972863273079850270877185149256786302417522833067872228076399036770741091757840514990343715307574159034106253428660550457751675782642813795591645029367651441115824292686589984550173000641527100800423589664844653959887943066260916172644357512286968689990632054520028892866742138357425303566353674507044052003999923111486751825931399292832408750660867488290104066360402640132924539376013976003790828720599068014530957655396587399010833036264400011213386444009975126773094490562757465612995553893619833478410731981302577938496460563700418692066859653662452283889962057809140438732575551940035069902614797880944679817086644069848777495297661508387513465383973869440136316535765826138984186130453193794295190249480357670035392940316492864730602985258442088165096264103735470300254203970544283286764507440100589061231764142982825006229786931054343197308186276423583347391534458334993400275385838533606127014023557205589314390943277575808998540706750150503077558397992471048841114918445356774994630866279904248811298532696960611971283461421091899405970693255748768406845429240297452892004162282929389126937668668129013645739980623217022625136870659383841995426683805679908495576215530136744341564823135768636088406136319872244080576764493501454264194979897333611160430859289667172526179182997018677405751969276578686761613871630522333825893066817921571585940150550498736434589887660438684103629140806470777801814285885188368373226914273676038000369109375491128232079899371891507410837172606382054050741035129519472100376456828335815267549937175803359177578660569141731407197926756090954825769620738696396329015457090469219498621396511912193106891416367323514749618151559252439770603607722552444213114169063876588241180041235638694031640425508572066974451489205162719060152367819701909979030815667960882773730989343259808340157862927336141992538858590922401847134121360092463682858725017652127862488593105004409074157142149214891423250363783752380356623639810963574763804317436527680659853295959614728639653053269693979786731802077264831804589638474166087039131599088724796586311429920853156084261415494539952794227518045414648451872091368859388007858271447202971365277653664885727628866161189907370626069826723369357156602580493750485819746406173411699555074929177093076073815727533213073066433401192564820035287257881631973306895915094839459292799658718194720690527123408663352157745304481150426386878981187842978910211483916208238970408765957332966150981327084130034765768034895685724521692706826186804302679000775161408945814906669948900424543285934257535850928825326551646166394443726273719796473301848191427143522597391139705020839145889305934758080939428166711214619817461429126249772777817880524253205145743340145887012493344095259249830493963728108937803227352186259977980644813564764362168471146918122665099324612496205378927105969016644588838042412246322338079396038176117286545181508170154225010318798965558682826687846185450262862305178740960720935226013123692981916463118557786843252969837708505742216355874141623168822642939015993920007985699863887681295057169095279155542421732670738085327298927316546575977328021772449759837384585528823404555050714224616058542660656220798336302003232892646108148834247731951644947725234147756290005991959390994110769175329912509936705399411876140709896058033064728732201542584579706898698374346167055134396972275785837635878427374585467953775444738818956543068250865368106245618595412193456689083792021623126545658291572372115938474235169916015510656772283219808307897841226030346224255003689140214853406278120249431250476922744455823490271941444220978148314305552093084306962839741241915009635813948267584629040218994121611283830159639673804015972371933631622169430252196614008580826910406358483354659747945857612915756741671727501370731141234357666914024770254607526223318551528442983603460738572840626994691489216956311440218492228653639971340433178390790609196310724136968285036467703321209177337212454152684901718339819353343617169896130207025125527805769606338949288094778155006852035841811592379806955962242198770585008655794916429044686316376884783819671975314096318318774239614035579103509011289701502984742146108449277168172620503305986584301608538176222566334677322573739250493610550693621045209412309513871826092876292615452736025117237485749512239302595895999942716580636701053215700665139571022498753304035114299338120536090118928936614446644106340477896347367010811692070808397136285630769473840222722154815012633644024490585619545986811690362532960737546953889487689584452482142294070227987692748407621841210301195882771580867432645357596286318885543373510035368378033288713884520546351955807301694875847417482944138505044026648525956609249042943688606671946686218459040202295378007925721547240994383965295089681393618107148355859533594724487069749434803050389190089922677924724464079676794094324429668364635403326537625919767682909425374870763560604530300984952882874211027007904286746058627213870931170425922298331098251398103163534558992949147473123569394328641356202483149335979125634599086602117943206678423629924872371320471253972696984819255644140294150536915813654314064316598322423597682647454008607821571305579381804666759292238202504684242212204054996702263820231165206059709941185941178968700479823901565988676826742357414958387359739600102236377050672693382658691242790697047744110218959862792662044993035882582979710575391545620870624686703584028734472782713721204255822707948514274416992301651107955948650192827107780266214593628731629830269274165820570783736296250400164499429287645119239051689389220940362328938560885270471164356756516503173765033825453032719388188000858300021693739740473891169031045917068871963402345323853871940667692152011732108224085965003465275606550702329478523132646711238264233211202884564475647855445493121244426232498386223280155727538170463599745839426848612943262514088332374066250910981588212792614208893052735416374943481370119393494995196044388834419705872018448707257099022751439207950551155842594348255790033698990373057747746749645721950788932348675345453920204527638220069259767997819609415877238348866020103743376687607445825394966626833522586529225255462934764487899445626457318593199856129760901941727527511311063520626113127935578968689199745104327340426881047701992463040732445873948051659392001710654752958602470405913250280990777705029175429206327458837887635023908347950969394237738886001565593608386152776851391560680624765165160054197476589563527175592753713658551855218190080829280727802510841341126261324891833157927623883209313426214283614367145998823404066977131696507437264954121526414777941265046957867770970323938605699978541231423941398374739816296431026561951685140099221135252637572740230386839683059683428782131156709900067949035974724472615570609870857997064964605489863139184994466709558080094674614009519707100103131238253604603813219204752657220408450122795731898824885048829052399622944835136678211727264937018004209767036854469853444261065267302380059398332927530367639852659498518809435607142320958978886344731549192163342175516465274246985634515324664675474690669917515192611004277380833066164442162355181719818223851064465970858600281375247470292898106687686533765982705447140180895369470652099101313011528003934176891680992388270836493905764641843833418364969881622239856211207123538756161103790250083921226545791557458433245742262448120102345289167733137140475730933515394097351531225375375177410946110934252014420136898239136735376874935815897046745490328962634093640869233108940758711194602285273697845411938072913433548120113542083350436334915683020152476112245180722325062573903052312215939496104809039098313943844562962940083176331889768429743074160041323388607717912755201339479135302515054022295751363091071091406944992903952710144719616249476179291900305218042133239074682743284661000234083479148831997109287162974376945919955996284219839280585474792925667213800850146409339399913623143949944864811217118183715598476696518298198768900733082388390983736830657680344974028016057808175045411834565674265881619177062941638279068482906301098675227980611093571800561560388915755895255883677624770956638164419088922500446491732619552586505649192732873411419774052855865635502142907263650847893665537778328627273764757317682091414479590795344598485539592373654455130576077694693113869573355741676025508230613881750853490198005940920728679080524605580751387993242492146618276533680097914844020082915835468311897716852752621333540474251424829095552701370334228443895367263750725247293873893912850104664420700255634218152507097905143297493765718759914490333217263019223478896299619734317080522932278999787482565904587833218600794468020630659033738711306992655839728691838571862618051899346529431305921272164304769771010244849025124891765741836617876696595791090781513898180657304683849118360590921536845626595381432155726433129510225723234763873563435476219104952975136832008021630468843753974249958433788206170593147715638407200623660550048367634813716431239914528671876546176210241864546998187325932311539670593117572723807166994814300399635880851111103899812535435552489791532129285468041285709366110760162260963973153639775577525991383079605130069568807008920668349340569635903126067768535450218096013365519538717960782068732443444499384715500152549822399523791946383067605694788727927681964585132681749179202211374571501848320938461336088632826832555267593195993116764259265426624169594741413339314834294028443410673256722840807478118101618552389173915517663296886669517764121302171927180772281314682508520513896422684804038710566059607633956476193250739640360606524305286064580909220460589115715788284125970031455290131142718051098086184394174120313178222516815205564040582451774662518893500980744088787462194966138669428365268378533391469821661125216846970374463194461867445690543331260729122675488724241971321780466815963583934453981718070773273845512285272782584135376310606323744983747265444718618558942842279608076944022922611055070534111822046188289192378074293479810912864108660304374876535632003890833103776677835435599492671473143746364213544131482764909838065164219923306341114388705530144639941691026917275541651635713575682858909932336057816796679001486851515661087276583736293340202727027199642981610039602834905419748234760908737066660251581339972091332873177942453093279958369283706035614380914991203539272586350957006741368374968094710510027428741205166048395812683522068948535269591212802067844981097113682079290431824887722208049146694400461656992514516394462132565809414456340253189638654950371105367661221136319626768555533175413033903785237864768781349993866393624123092954815760034646221144177871893519194353206793436045757369537525127228123420635306004566017304439624773524178231712558073665398303850945026803513494811116549635828429612826459227723141910081677234859733656126990538304233884575032283314191045656353941141116490956557192224723048888972647347859477815883490073905365583087147581404691819889159342002848954599637732276029714793127215663761830245483346935694172011842204429731413589184569544276222513811925016686196168628313411048961905107045422166484578626352524200042107412657792474113008731048209324706624061438178990535705617436403511576688117556778090183796980049819870902974678277129659685344848442162065712464167979011479667186961751602579115612203773465334714907094047521112777185743947424295797129741454530157676690660637104205663548610657809051143133766285559700417781467433986386142009119137495254802976045007579250018075369308831785783076145902529672737220973760399597893952739310035475053831260773909750318447832416886401221270855059329061243318776947052345882605492871940509307666003156644774976613138678300093942482718890694313438086752315605932482101126371590513125037702204835226761762409668302376375927607192965397653271281325777517721610167034280561250914155543091169658666949054572695770767084979881313070472398081912351032730699943418395202139301836563939452658130473731683092761150098871888242084015176813630964337296169632243232265606117633090977928882522662321686600899949856982333059207467257074674288053551371676803918470050270396063016160391222406005782417731426462113950405452677739689869563959194171593608319561381632547576359809491863701313571488182075420973504380535568342356925276218378526770544964955235579917946828886073250118054915932926780911962913725347372999218867738366161986012938970882635255548627682072103999999710659143345311627074900853201303001305765896028969357551816770545307522575732849523817774501920897666209113590584983663918437527914193448229949492985923327153598115166455917116804220670926173415680498107312986375550268961978717026080618503474007565543766118465018808233067791015067444868709939733188192986688749000158946298249489820563731116897614396539471341712826127218348079090938903848291501203220341763397560201744369091159949039824534558046609793206999678794216329695989125767261598299788158658041851351955164885448825232384737401406337921227564304255314927695286251730113389946083661240167427238979231621858249164859945436592091673902356306318736526957871235801083380856715072438669697083023921077967397491658093694800857594744449773183880985693273861359115826131927223494678834169207799261846962527963635194692618996802654292675834577041159081033818660797562301282962998628478357213126888418487771538075322553797055066725106382396216867765602201822531333312044024607467141997721739160356730516191082850761933274405020699660995984687855666807375359920942819497737812313816459191907637696559280335583130946017839694748626567737043331495247636848600950207573312194702068530655598344182587605767398200140942487019161555696438045937628751532988570937485970344980876322751317496633118820992769518293627691177690595892361723785814706146812671843422027477410284686570489912272069143717556642381356806544599105749191427905417262554933261976740492272336540770910410359797587435747308257682253875110956429203945811893401170778579054291695564810448278046145553833136510194397348319194928183991557784676834739339527011026696551435806371938801359105556832757979991710395616562406629163790951852908457379919623127752132294012272340455262531583678488182691108802806083590274816470187685374933133437365258554084215600474505939000302841836499445894236982249048730879694943652453712941895481305219362944428612664033353264837476219179110544773407801190801963750049164086033689185736362889522655296330518170187593490170605232668811275856246579351422990959709573893626172808568023833827317051427236694910474646643394005853541229130988658799377754812986532293951117155581100009889829196028449318091752331723535924969455571853033790468608612200915008119336517409039850792295439829734456077988537003233269832283937174380662195054347864542796411480981596940616917540618297424755503075339806373169897690125191547494574524608135585981432737502658902725120388634899460922649630721493186755084839544645514383663313630728221309903057672578307576059357986711853856831565036366058356404952099023048993304853643550801925127122716283931718130961979398044332378794415847858345039430673292361054387337856062232623902157723991568094431321314174645847438695070326760480882820190010084220731006613686350986227108785445243655281013806859604573222135228430803851078894427589882244722634024466200120971892706400359200088661695667939972036774473620924269624685057381785293822274363168520928331319170787981152819476693741465176947008399093794560225430925342271769943792999614765977801873357592941185987047898759323769127064696875606366107380008678924466146125562777748487747779206567851511902194955686896507896493058296106008882159640181117443250956834439142693562637606124289450485173339952421082038500188453825979060656371710418837953592796976362429396660392357131683868711374986736115115687178666468114007474638633889717391877894535515938320431242318631796856810985533486244691305883979114686245405656323060886239995709663702775796510916147680982702135541845881969216285176395726532518794781299493343447219223898129607640678669632532307688052600149540751733027915476073041092904645350540482503759386029621593818277507712553743911593751442184982411468277224462031391949104350900831311440737517190872133317387740634489471976872017825715909100660703612406984266088284168039454231711079746472351408601138348258399147397667073155039458362528125001115189195781723857465979612477060830580046888496090218494997855534509146401858868123509465794970226604807787630185865252516171161079111143851483613638606055183667807683903095148848189874089386821587205006025549579501154559009845968384405356950329506384344646905610230925025905439096126370218934844625887917787210508207558121674442384504404566368970644469987327091141776081274363398944504741177009010437058182127183045958053055992566653893730256547525043774754569589193633891055506123425862984477216976994520478717098177883164119927195736446917678278526839110767475643812496703324115075632182629875358766260672161678839204516876289897617797185554863239367667409215805510587628760682054218944850245759089728301862763028160046912337178172393305832464101934635802020448869733326785135851640512873885726900441380968833988719966991165402204955712693289003420965404320956839386380922075463755035050180223460286795236779979934370385447462430364186771280712457926499839167385313768694921616483194890074983406240054796465713460642939589706454335704054457727775154752121519236045351717141391744391082685404904684996439278164547576402572288495261747629136755974443734692535224593698579201719772161407077315742515604959427977489471834262147699559572985163647918338687943981116519262466193453026421780397558676595176990991332854224850885410967010204974213140890643385703577603309913528947482828913787327712929788024982305697318669116456312740662329665252258154227223627823752658209630314915148671001773381752340098086114044946361141048666101857740494431206156033988116247082138199818077367574462124481926822197603705725103052464303673536540940969160946889637411825532269613862615519486445390123063033912940495323352875779616559115300775144298535685617538166390468383641451196823457520258451230333774482352501087450767793012469377507223401598485173115265362854493839281066441713167325700074709540144404193448341805430137757989284801872219564482312157338407149327653769377011340680454654043089456863303365928445870367572777190267473648358692389053979022032822759137194598445426011413826785463238552700233149825679806914233998802926386011180423735882834668485033291329763671064656880020793866716457761598475855631304322543111958793467921349003482217900480399195760913650623344626996507804612593291991512394607685880654072694405688422549201875978411459537087643300497899927228544034649502792887900881528370103984526652956642352434856374306501983752067981885884144877626248403341028461708416994278810195891925966231027074670297949491868260017229237872482255308513111100116615373058325767838045746421352195171655963172997290842001402407963669211956639263136642368207415386024422923424535665906845404856180868230998470056868052811273743644397732546269425890127602466359609666472108555668858155672506121272171111915910643714615759940287907982474296503940522816494559021751624349249316902659292468595117870199637864229316118992444237764692008337888722507415466950795371692186688350132721727506056264398135623205311822277445857427776068304665636866170587733945499756520683908530914141118971076920730964941937558296511356846618672433537569214448377271855858110642440614451306323117158200695280074342531395612500144293341039096539455818119980237555095367730216133320918294471299010723366755582942426246983847241082600636660810289575453202162995587893099010217076975783793861370169342234388697525335849069612217191160627281051344221954758377135585921836955303034801036392240795926711991983486796715812427635713355035284167462934117194010234516977924928782358137115604490105351682039925022149233497583760432713076073973200017767966022056968447725582275245001511222366595245857979176639307177273504779686718833908879250841993304663843452121080041396887034866130887948073583331001167474639217119773043663083887453983589587998080894990022452403110672246807252369759366849374207885203261435668532480140215127168675885509631481615658743768937619572534745300665603383525908174760071437400364364569260114029603036710982104740341434701236947559405288166698801084711487132687627681709608222052030734571780221376509173991086043998889339001312689738140350849890115346963127816590403693676746304172725838599177630028385925803828611256653435171907411949696261735478133684782734432897386628548919272493768387509279597558751692342783322832709030201205873621489969427628523218238776558935095180325839568086276989994314455630378178429057834546235520221708608569513240808799916855789390309593069884653939355523100048566612170109295673146856382943108569314045626413613459558491778398770705269501027173160903029470006366976475702207318287259805526141761885685265105196271977192408879832032729877409517087281750303408539269021308366473523627765449924483814355188928969757628449175689152031448903705697968018905732092456220982768960738368207310896861586965991828252853877661139071959600574415084952307749517264466732321684848617766840440162189077647910885905593671429379532308000232220651943188296812759582497300611310413281279643347726314385131245602343749110562788484258796642831165520613957438670568966929703353599215511607036257981458649367121461438885295440844435918258616235544775442436599834954366323106822723643451181694396390532618976417099216373724923052573341882452873014735457713134096402391222915242574005977487385605934988489230710991841931918655004771275301076984579402383708276245325196334870781897403468366707429796695039556884008585611725392745666932464739889879087477954529696765000903168112827777837552226607605520998193971792077139315283478181284942634085263540928090822844025707904881892028907271733217698541196765025280776112068783676805332858676526496983337093095752407896024192953887444474734713594648739581802153938192246187503979059121273610789682378606238707703783754564884263164223539920420562509178438311538586005380490652207342515962500695795684306490156330407649038028377725114845046294234382126819141490347078140355953801881907530683835998729269746156733771085189945322433466728750677554118742796611927945629097585402841920548500873213355165992160180859439353396486208946229229340792570883365482143114003721634272936592342351751042917547157720427620018915915581744339988540661752781499439907720987018853050829935396898174839821805310603075538299576007662051267235078874038172945756596376522533427250065059184328551461024200110066855894655151260987211155042024831794966142700683476211683629654670447551443875346135823942013695045806871008146117131648357737831041539680236533513775954362037529093994662838191600224765564138605975296384662273303425140383912288928075003596676900220148231182679293531486094109153435641032125640961773640325866162724628746615816383326705841380849882312852321962447187404819271406111756072601560120371924427235130118960174142988522246131957829591617421532743068117777391104989972591509283565884574189366976419886278640136350051545556393737062522604863736192820704819385853046576858355899254896015160569417359861048403273483869310578238936612704829994905508239540385072485461000723809852166862400623471597741136668605896178903816597944295327030579722451090393972360076417223666021048105803479744124000399886227017748703180157507935941581051662461054584618148121568797812336607194987073727171277831048725441222565341831902546167391698132532791273486114721405085761306909556250907526676305003766916852463360345867814451113695360023017503308994777867303924225981416149480528134015720893010475206119608093036787055076589451449744945266641346013835524059709739668807487885685498321711950635066357193063358776142165197201314045890362022463824861812687601030550451653964556236129130840723353492338016785466061356094045919717818343380191688226151639790588696890393076573314958786903693524243983041672428421540504181917668556854888721164438988746066782428122706552910889060568322304185713944332565175080437935031491679504519703227772655002898917651184564573196732282275252955860753956114524392244623337551138891916515655004881670996037587644592568659743408004884453352852554201420734704678339867889519607595126595210462371166222078793352169402219318903086007702124236924056860644484501283631257104120370998409271122692627882718446472910925527160536652394060502824400605400096030429142004811026840409557509790095835324123616645792285364845863261937326894846733310746210893438961091167051072387891913035212379491183767587207582500174035054773669085258221980638951016657683707695390811737537500138220345962202639239591372982749700930565594993054760894226029284672453593076017284932132640805786983133957737256446311054096955066901596078609747242003334188265971634535222729734392305238996864813251195688261759229758342024136847097518385439205381787482504215892041113031286617754179264984859019706464744846094851677928405211699483402797796766174562599646716802931803969287554603771965376299292874631292961773447652520411439184143256432015991972476512576894680556851751933324582187773313591704083654365696501206541400081145107358940809259157996308957796662745172884088834498900133630716798784063324989729708852705908624987025731399565632454565251745704830349386089080124154422513185208518413623589183756082688661247644113570824562269443324153193714158372255430964356815961764493661522273714375888357826820418415220571842553301579520531107806885661807620535266109316287074437049450981071653538608446356451393255396034844208547737131911853745642657746597804826177766440826376235688295668177646537390423580050117698965877056610347337622405982542472615340111241068382577476333471715841562432505962559594107027301631201255725646559300928741470621421121894972475100060629931433955965692318559887608985207507910194443680516731648895532718850624542490845315354347284279552283406446360271899085713771832332432266099102777333750327493985137502131243637680826300145497541169919660424259659080694708790434656851985745241047983951708720338215606125806620375463560301386635048643560860106284880944724598885338344799431525910835936747668267745796669433442660652361685704556514329852813856713149019221612765618242176720257865796907842819191182398405245088348080857800759704934052583187275904443977022687536951286360408717481011190724004897695188244488287643575260360141117207436820969340253821023111793439615838645798977416671790912534139417384104877320361484119258434727223428120553076132729612371759604247677514160430257527279909169435709002113201313824236068491426550320682703394799622867319510539698261613283404532925027892337939747710446808643276551743938278119429190292179300839482911783094971060055877282766953708675006429793956562186737674395959460119413194206092756064742462349271322287817584473177239643364286553960751265740038389254040892622841509298614514991293348467063825848173291840616107341544219734980948839210848916760520040451392070938535726200774507737807991053864324492391849675141686579742261518710829941899921271303705919437317456886578190699086270476765176206414470730881457423268696909881018639731301564523015954648562039706841382479750770168255010303452186443099992651935232096492111152835693305315899741247033754342826433677937504799509231551610350554532803265704188612588768810305919974993549879977835861522820219136077539373144511985457625769272004159678224952244203530556821236767438039802422259597254323227724881583051948873638487816110232089868509393545040116092660653172931079574551252038242746322294000300861394030327394692745212131058038690187712152834014460437951057927508864102523257605680750683802618516514888215908294762345841100953186338652352931018641932092991678178700745013606473015082393584599640379586359503574227037950371250887534641410247682285054282693195189954999709473536383520430777191514963152789990473620008112220761693408908664266696157542345499386228545469793992391021992793782190379674425887419383603917108722018509812321793027791977779131125931519395750464326586450723298788310730378586359478473111885114427024356205465829150492151446352516765614908252584394289356808682396756767992369402966084547642204106378424983048031910541244164033057191111197262476379070257357820517408638259903344107002940886667601271623485435226867858907822944037064304394194545230974787614250271327683897422171534729072436395422316894001304793034626506433659035324233505940845881513176440280744613950694529605223355936620440177103627511339870186574285542237931326882221773389667973737747818907683722170557012778311529389374324583864140617062540734538049765076597953582717193765452221589341575954049193184001288286275146628792520860324900926987883270430637338773767481248674336805361997858154080830838510150902196077438077457774850904347748475830787246527763733660218528576007148379527786088121209381744180590561466377839853738910199497507971455931062949583158097139890995636482159493151807238097644723848111520172414363793297487519096259232735449207756840416008894694883640818966501213101900490521616836491455108798694589777839598668236150487381812241673026582701997034724706250240681352214022692023817243742270576430833027712313858880996979947042120654211591532063997648137007113990405492643902925424163039381143177559981117355615033289607032868737670272084804703228845311308284485027644657717662819398879470213092639452914936986977084861335955408493398665268252225714800217566871326180471975704729885306929942561733671902553067659417711785288112273922326719876742103190780593215445610225759801044232950028341420432597878477320389661504710302468885209966278081993366553992304334206867972764297428884728740170308871529569743906345473892860714077950948124362101087128773738297912513114362801645533454838953143366705901725366412295716390072645949069179632924114150782637075561598311230211571361085880503122843310226317711717507706075642227509004967849728895547745166226906364061384785838808248677230702826656494160754846687940176696173764490902484437601305054008548578733990317803986932163454494767604111663573542995695503156088214846591360802337334864691651820463150790015070139529440677806398278837856702153161920410452270905736290432802022984091908322280951221483677536334583369453157187999557865369609236658516333787090186713122346084879377589257019968866813009263801193980626019854468550721828139884630619543099375215172213802730006650461135333824653662802939232371286900471078867499089431398735509469714721167843170617638244105933851605677313957994755727415822366505879508344278826677382811801115983439432393141560408971855627439455891549656520310077574695001296551409076288206647616300695191294134459683531895646650326476061194808065794185230647282123869112228142181318949314548256230959425957261434165039612828322988630017564602622779383301369026451372658589548434404194646126611881813834268591631132011079486054258762001645518665521766873457164527370063554657749203733648807974155574510303795710229642238829977515237796935162488055202173686822297934321464613203372260023714589296721904556706306228830295977536657599817748978655634346203317038230579112278031405921247093939640102517296378194264727707009635317989101236509497717019160692128860287495950813732041091049755822047328403942625839141068006596183562845710867880215075447416646795788540327244153367964451063842034310528901666503102350582382322107165106144404378059892192587251500572098308426508456042433155283842694094882480870803529511644502365620045520136853718475600356322902168767337335454228117070874396160315925688903048248821743069875963950568419122007320507394791611992990113156348893183980583280807851150633695531524422832715715160344632207023755016246830832815666390617200358121703471165861227174066656807497735816637388071294315489945105521203676292882485441077141111636505777357984706096160810259425068453251323471583284087824897911633869870027480592187189243091253874072501276945919827651688996860823373072436969817153094943705481762595049913657805944784149393784536607688827924836611502214633529955207237255672452170446896852052434023345637755312989693507128195719964296160575036434573088493370525277287299789776681010314331330256755956321413797093233443121819353555969371355183469992359333842518402307559501403728931144693113032950624138936310812401407842013640943767674713424912146462655573262216369354690005043588732954993435079055811712597387315201856566649875718844298949642739308182757538030302873898657383810161815865427054539029084223437329823622860373906895276632842669192813907333763975327453954446299494016769085030020502670470265960258802153642591906309234268217497490600201988618826785289522851748866225680115784372390612984309013359185013035454326336185720200563069425485044212308738077322149202381111586698264760755988710125276538145872140247195714278468945274393964597178375092677356921991678469033612628817655253955023297548853142933534678664393133871397278036225122837812148292633273182596523781587038407382601722452169445647227684677712720120173939523420634394792372664830585296986882754105368999096283008788594645392434061738671223457247084048017508969209197800992411398402377712968439488852923017177136684189819386097525629657317438748528418587615588218405695762216359994876786398193478287876178079601816244670569321232289696856938174366370164668103857830326006473421573893261002919577640742185618662328263607121349293294260339234061642066067638040990130687511429085921967680282098812492086773143643316700381583333418104091093814510603705128401540678110520336430271652031655523752481326488890123447130692605995096513019975665141322114627045887545700688790256649694991393460507974647887678794324546767232414952163354173201956668076916271931845122796391521735811835394858024885549489144397136264496978218612819713579697875244869613296279300540843225572019873837585657914149330370785782847693916590671713391272560506342784236111752693820348877189749031724670630849087723106148213813296426463528147263960339968033102329419229843303880377416708559731913187155370503147714419116446879051401931136913368417951572325978435886833955014591855968496224884532297544181404284963525420753147437630836070079655781989208948342416505267584545768924078339006428524285976968923147096946969183734746210161270413609068969119984233267718132024717624527683584017703108671015747501755122734929954338720929087766135660347627956406437937134490582009221043930216844320624215353166751592675078902867057858800056315212963910107246495630538414428499359304316345602812897659399564410965500237117137470688471634525596983685797838215017603664656401205866116328675802822119348515560751264365241476887311281181783939117486616632348694908469471746107597709965897580352323713149056819947922764696327930270525645132444163540617816007695448528138556181194700111583939265640279118375976977375259195513011743293750440381234439166501996457717636017355772486494253887032124983931880706399697611281159944081319802110919813232927657594985226403470312746453891911894249694446945412996605081215837323898347263880613877920304551631525592779247301853820287050360057600448989105701188046538994771630288860408184753603277920046677439779322769642777681897110218716285222564140715241197235804839193300405278667421016625886316309687569562177848439928976125534341487488149553084919637962847423212104624853507198825536466248068584274156722085357489235898899006483065482948482803720718701360771705576185726524701056692493516653336779079292793837558602960779217563694298357553836456336085611415432699492164231532239381023331247842967868216132361082011124459102598988349689641807717331227449240402887155084893090935780054990966279646749895993161848000440342850884361037585430364517319276683249019396835884717498439124829223445352886302699517825456957846849740168565937403972876818267273314219820105900893463435438785750313390922877290609828220900965323922884476720840664377725349863573514348797253694847246706444777355472743893100767438997354589383491593230257590574353331085075386796232764480078590139118255383516248994491890502081294198186193078690809841501177571555644841753847508441522557404602392216142796464420384039749054982184740447875739744612203135466267936303769510635598553752397984122783585503670146820602390549806764349387352335613367133411634849048964991546297098679187863345394792070148248388189632102404781687612059472993362048795289027068253348414893663545570017131785201637686813772760464837850171165785572964150311433088732324952985843571375013565779414470055346777979634849289241706956704197694783123858640063014552486625540520347409436791299819685046310037533464375179606385004092034743589973944229310221967058786191276103260542972205828121765180602662369152531490694948662011072452321308497231530171874563519314710352477000491565858818696966558105500151902354484184763246378185696997153378060539826867692186216833383049197176032128613481785148912670504006524875453738904273556873799418173562962191290667252469549828393530980610453376613230757788217698715694937889546070820685775782786614048256166037947747377362607258495296305340898128631355222097046536324875328581857166738210492084463382637276802449828288463789803036331821020500079855779484808952156459787277030949511912858403295743485641562360571908422360841655895392007209226240246574333092426381929585737670962641732731618691656330343352373702460546963052593242605981756626704481229425474930671429180339055567162860395178340451153437250561895057733027755989554986896954554718531505499043938089248133361263556621832453417084693677795998648387923692540640181423309289592983183307907966569272425248622717042530390768437357607378503791382323623529966984772375178611044841915439553972581432349469331172623793852794531516852999387605666280169536972843342872268346643609751777456708735177800462049103380156955523555526636768771737243056217529454417552962898815633304317132830970347924739004891194881883153579040870408867398826397533409836919582175076841059315198677010439963575350856425618291761937383292804542828713659356793733243197774441966175793897780555884775883571071543905849841744993780631888152285738408655967375601908361931464187407790137510607338364460778941785265164897800821569051093675714821501192389948693556288588190621286681441337859663982848660090223641190667794082472647822793872904136195546373396511879909341923212101412656505487220524329211953176334546913448955830575835912448647711483946122838052054767990400868302115619262801199022813979162727944531371740700855874622716039830102392436044720875691755291495042677944021481276574763553753269548571959028772157580086772362356721386716641583586753595501166070237128243202186187019848343440011973740881030617460510747721033224115366159700209805501553201610755065238619089950600740603864978121816553863299802414908814783759336439771370455471050768221613506202188611073108607278794574622680384460746799466419140825007991336125401385945799392062317092439357506891188180236811724915526667171046788015670371666154754299650394772605519969004022994731016825467574728958908438701766337100683869164038771554923554988123353760216898699813589775614328623988619877301858961253664368642299498148943627987231305037792459856391987250666638546594242358230355482918958155801084792427193339469921754205339146832131086101189879889737867152450430387719694462037000554786423135176143785759951836890195527984291625279524426860723753120684848179316209619088075189963615612897996541378383521174070846635470146679215720146022680265838253330853476917393335309901405381895879020702453156562823948138228581594554878704522169956518356820591161254523564098518585830144444092369624062866582243044243120285850803960288713968870556580371391487841723347910127911545737614373913443499955470090325943929924851527785080324109606254276822752471646014087088766828249758068026050947621490948776290070775851052402863734912291806400108753447795991388886463031326586819546675937941064428876804480686965083712381730239923663755173045723895801085062721672551392066380259993233698001404875385565622773979387362338497517073941052224665849321137945872540605492448045881054808590886611504837095193860574105308280335585958469793896098533343299971488042965935318556041594040973712533650294978271315168245578683988797886947098486141294198150185095795171751191527540027578559067262996275498580606601843105896621998630441814604022264644007191394495956400893513680723765977802853519360315062864926501356901433796174100977229141525240781522277258876568183799612196234661825509529822899617261384094630279524530019681923770153609648719457803125909375088234276450817318162111714911488541454613221896611276663769360909795755656417261340862759748463587564627694188368863589143299039556119192819811379903706999450788065697346171281333338434734961762116393260438518558921446043951697648558220159637158421421346387196446795849214336708068163336656186699118541678342913378939652432136467946992315203843069220603014524741522174755092111494480736673331784867156566053663767004680074573787493744993184224571161148094052444878791467009792696293285458480826906616002900489253088863139607036541331827856925399783691848638494061930954835074828514763628313462045188188344532094836446088273940864290518097133864052551370704519077705638559568084853762843712047255514065405616751411075275733456247656414143994571480476348870161433941999255339032158844894127137881080072131512263970677156127522407437956580878321491666010353854525734776137359236735876783617051149769485023389630713140245298686735079684522063000092158656298781448393261771146299833986516801633734851374606106085583750402553245420471186239858316820370880751467956457983357109865541652830248430977052032135353093866730610288447576844331768585173090746139928921432410946603178389241076380152000182170792148938621785024407884024436632765142628544453234564665341521773926401196354901863111638800885445659246338059823861273177329272399857465097413538743382167005815101721127549621461517913153090803545427464844381584530878195930311198683564617640948755842667530922475893133733378086598619802871040132340073668605611577739113539866352614974066337128966809465961259778474951642472246406495333948940370375870773659882739539728589621631605154480071812077989557358937490831947976593319493329986799627221053744948168043741633885448866136909825884184205330816312966618401553725690445373047479100648882620597606129453476735149907009959389318507156432632877600702878266887375926905905092318397900122622842150916786239611024598279396680028233029210757541640699081456544420416669026248638720906506010617738469626372157138031165862116712253873779221992045871674855113334512131269832414945459449414812049053051817642713876134699405382005800624035535176850239201778515273013296535277599342690139106086955760093991827711769033157564943287358068830230361551224986423292959573459489490052122931388045711351090215444259763229858752305828222199236686877562964053813934436651784385441851604378562245719838546676834556431958929695535629707442690747734468804963615607813369904344075243841161809931508349472003547848276990096427984137372317210757913654605692484374419429804837831600084626472638258114853961689197616648477376044873532476645208183242602988727939886914472972345680765063452800844338972436216368193761032676680204499494357891041829330615912061899962227227985474312718202412484854341290074846331185311374967539145954303695347277227048654873995232485104490148281122712735107125045276865418886725260350633408214219889399180089938061697721527485746940492392340504151136995348876354348006295718662186169928301848872003110439681954808823235960058991553232770478860983954654975125072557736301725501591573255560088360333925797389182367232227705934904830251212269025327228960440734756535852431945356802423681223293310173336988111339116633260745523453629736184773380962368248455124984461559057197497033029476691143189759347286813551608171741857569426693965956127467012164994700293391469217334635256115622448806773683383944428098836958105810857404793865335469931044042161850368584942961308259379075656399503878449592294048968592314579484575443739551286135250353807339382703299934838527412224690090264087733432606527416086630003894004409773777208799221393445284847379403551462371565701288654800471679139374601845934766609789751731932857697116936658110275166157233648162814765128438338069343034534428558803395725066110466921413935760873170214927731577750133597381255454958834337861926864739441283529064244827801963742678701293181731806267521441909915631112870350159126194065642617572763103151411114597140954493528668346540821375305651611510180208362406995208732993957005311332388202578750042144576455558055479846818885633095190521963927245353548949634350382381397916588581823137778291627194788597355264566819930003900746106213357606867488737693652477412582224115421133179931169895423898918033055241064498474398309135213204964821649500751870276514426916146706881390099483708088634037763871835933492547090871755816523043290248336125823239829289831818417937677381752562003394563258351867457226831355370642119557266133172676469032395392725303765398234073006153486974142969935736691374080405515221626126361447949448350565309908928960386361481336868943674487901910204066109957697517241129994757419576196597186594820785840179789439403313357333072085480987416823750267112799046555170139605692013006956317877536864802249242622579675215007898526298093002749922150548441148276457552550831321628023839892839539704623616564242454035983856715135317931430393284789000827766345188062580905873389488241896801964078558790117067390270193543111219934520754519748490567816720597548910701252245489260591733398726663732146637194836999641065129597400650612291521766574842192801313670064926938573351205299471955775821463201579603641418824489233708016658160154609238139929761433187547733480597136852965598646371467789649771813380518880984541544133980694259956774696558942241180603162902228151881299256140330372331731809674026250199761986328197469480738187403635328594033322502983763355647525593048398606781844297907077484511834592632363270704915110459665464581874198959971152150340026239331042877188390404654988386294040055884483026270582043197974100827162840513969116629732133058420559336480798354911835960854667911270416967053983896426187810242051181989760491233656761439523665867341145948766534513843330130140808120573324421252610542117782996799732425902245307086341069059440844699285878457531671104795675911711276281961915462292868643453914503760066031811487658342041539744148021732077099500099925448299012447531175427545743735773444000346450030419169912300619105745933417103282762674459583984768605790713594621312450474342394638197516652029923122358360177708509097603328941128241130552994912087041485655270621410526102939686937426392142338800178153827133590394487685351411556961227034750390941187993436929184490448276518046173819346332187300434583888640913488092019122807306401839090412374401354102597830667789151822986761893961281226877626633322746974635669481743557637527468810880389405407125984508659381068192055264763569554965289521985052321770781419065847785468493947908043911597197996687200297612857535108332922722984842717266859269280732174934699955589869228581416052684975930025275260192016333542030798245369724355731134520240095293191999379830505453880189817701093058447919185478047874165952972759638942249033452687324419445322377832946649662492363677598100605686094797163311925249179985864096542752612688882152519161814980155975242066540706958008221478376542486232138132618368719272913776879308709121446744529242663826937297940752586760652359088364790867869799171689263250438340801650433678131355907644074235171805374592568995969333858762978746073167801512631232679422909395752330298625157318913288701231721096414034056632019900165786348714439680768206528997301905476771669622873351194519883590730737457584261090634482001173173280335145870177860855930725774907589202356277941461188432784186884180011388469576720601544672600018991614471195877408329172593714756059605768881868565062075700973148046361006133428082738544706157286862331307943145179348662850948881299481847248625528708657740404582872721341836913078368795050922368167041402525423583593128235044060208473688080942944411244360610445991409094154048702483607950597051542046268096108007916340520445630275863981049542577661996022023096691389584398938568067563844058222124932928107240910030054007886890776680934668794800483192347189191425826461616528112413635311294252152837240226815453650494507153827747992652779699488596564885005771389426320954833040974543655522790490325603914823675786422092168673534887028394861188448247395557126118601722609345575162174960534105569841288575222463924489069111066192896252115167255701332992589473523704790326831239062925336929600654009927281177047646029562884125868879158353518415267159689873157297884086149788194364343307456077035739344417839713819200507845870954587066791026274399013199536597029855096890915565549933309203102943756535157643138210698727572922071899998637055581529605329202118530779104663917486948735752642682314063256112841769501723382367170964170763140892611792944345785623886236358202834842303628844560447588124546944539561361512449246941254317740454571362139806331543155447797026503098294742588283363195725685539710670151829066535173528271893821091965044284385302302307595015837632792378181510816733839599751042441260430152517416593653715624669011328708820162551483009024268347611405365352695073364651169099453318448795142833989429144059676126697242849238652454845049875372397136847224917861350835989643599640836417667464551027933540596293707889888200790233382710861094876198553332426485589770018019685325257436112003401379666235760728345483595154089356151050396832709020922579525244414554357128975781697496955574097123821221896913438233436913915735925609157140545148125606548289843080854693229479383811152647455597642566621209697788150382432748158615456146838210067039385702028888929351250910107181306949310318913466799089576177767257486182340199637276603573817033939841149351879435801738553897273005655007471388966661541366039541235341219876139045252161865419575011080820883980111425137750351182348410611611556330297100412975354042070461331686374922149949318352425965327496373298074672753841239886505600991693880055935908577615408441488684526561339817754147780248613573890367579327073495848027038929633678042170227073516089538131558799989299100576027121829451348550074245397898947009560344680535641606317837294533249079410003699524347220426520047637781420471964768022028651838673182067927060546854493436722198321064538512020869802354568277256250452218295232854320202787904342207649987050921502715614396795042096466161893825935986369097698737529853225839149499353300352400411363920493607495119391255596474368787651354164125547635033088474517062286878081526799842612205101753930431672867459203619813049889723427120392581354904311798391924218062936582150565519210924972352641430082933236315077475606869679541552232300292308411886483231632978351017044601687402551942281736552224394869842583979083942389326264727975950960487073348800559764992172990067646162664453903383535281534638098650918381973631734619601027650418011435878168626543709830834841432194092443783961713955819427076309193837917170178477631736996488807479716794743928730040788004992895371382119672525688363738730700429776724856300542477361782368503508203495853058526145187928086563723995787961713495865169637032092838971241489742506616458121466194543237959431833744080331628018103660131607388513775499351990784863862859379797129382600711465137861851739699530651384134168191568470112791497440503838931042303543164690611434959835882664828759610285890796382936716839496706086219585327773944419640565522463246318877459532570395554596546938835792364099149411424032832922161429799160367473509234505535380661545882998922512514429530545191309919727447284194605502628815907680273512962197098977461790695873423867779051677300266690116584322280222739972921731970337763621057511674363930130366591583690729425474471644959261794770835993668089976901515163214073194305943081355107250499184819337864834325770890859715953247443108355555313766581260145175471607843332228332195936772637630804765188615022194372090101342814885280800262490279711180529581689862183052739590115449579402300385494432735430081451308162338641582481595840864991380030254853665953818619165174886736858602369092985529811311745363696793317767106424070256966941034490186180054719131271840075575128228907730958003375099510845091449732182660482611924054283383703154362436735751980487440159800977392832935538158362246156006179838124131828386715888379793806447249528364693541560812109163036659607915235338047061212192217824194068739639742267734225304062269584050822025618801029168804915944142893142232642955060859458318075786273589534532896076650847455720925707863311996990667847469560464592555662989810724117648914296922755727764891014488019595172279702704682596692701915761064057176557813193067508099685784426330904608990828510286807797261422817190064117469180444001468868535213281196472698254698949566994626602489948192774689903788333741191752540995963043443935304113371897285770277909705363909564911864226200912209354880426488772730233276829154039082447220034243398563122883398460056006890314482102937301766615112094296475158313849190412627839896214519316349759113251974701713872750190185045576333977490525082994426057988000855900079519689452631759337507794823618019630401790226501189875749095518429185972609032110458664707918587313447067482225220212276141019815757213126363462459918047733285228396766224444053338940589287638372213241176408108129115149759977362516824411035694149856601679223671118979136294568425998402521073680250810450778840012708307142637889077892063368430475414435198866061105803364617780056096747167909008066023628927788222781154574270546642816944133143841546733196264045597567331706839429081289578502686504140061608751330992925574893742166018007215348337868822387181468814830487187097131573702368763716935553334102023449577091163580264284671953516570443905589774171011248297297239857207812031052809982474994468657746882687087281828440478609198234971752793756470485940693661548617704253389036565383143335178757622585599563128135797497167666937118126083275510516859019503009681995826406809622824038208086344281502712410527794034190381692240620501060415569084875752902670627299658719952224145426038610841227348368266592358978453862733268486713647153972542527235921165022681861073902324310585194875557876435834446496312607909113954583875724168610674633317174689837392420837237297168370841335839505320022193830218663616940999719780559308357566349019696054309781314157525391246152683005040636475834533488952778713595631499690909056227362979397839357168927769214501014646432469294230028445448656837733150689899916635961020584360592095777415719663483523575233603743917461460840171227215423915420181914714744596809678766790961986281369473254532061070802453937707831667486140752684967731323594434064830785921186752546585089654030340963363267384654339306226962039588628478565056913757120282712165839945950371615762016343637101727949735043783291333635847665669537286474117584354996806770454717581701192193361738558948614405066251597618656310139019668557558049563622488306279341678730449148649997740271398981360410595750093351924326868244688018376342339022315830019778904914458225886871355187992807483573909864184744301705189385662089299139452140079883008466472566071496697750530700659862860230798141678316938193354429177251763649788493869458602349314440980556934308317942948250781373540638628977764106177596224948815237030382963361707728294803978045909447642986263349636385699072051558912441986692650076089552636235866967153965757929965562480452103997212140655925277931638719054208261923176636607202183227504059411002694659474543894142117400285532473002813855469020425766623294663326828216563663670768692472981020179084451311649842042235931051495486904334310430484312826761786959064179057190535805376687406194308273351355110685649796016686987327589383403853346883700951228338299628607765788653914932707400609399192142871035691415072881027586454005752476814685299322285986198257739519404675006073171184237187021361464388554843523063547920332910971815947624500681005528822219481027431383501760367629186316204547338494935139101677417734910768073193904811554358811633334865967419259227923925420310281229266175041983483288172254052376191535100334518300265837921191182026848500665743672819054800659962638431369573254450736614637865717250947597652891630142945994403024319842575991242470911607128755527168488791435599722937273276457381126372483122516570125157296151656187445343601021087098556678766895206955615833244877879357159233564168144354563424839481366998087381487879598893591071735558442705106187934786407185894346416786416182911484589215842396240747194604526403028451681372556095099745981050142274903965372814652074663456251133571983255594657041179010909876090862713838838793238201996215579501155272280929757412920971246696336810119071454724463901026442556613978774047763033569280779238240514981309496201528508207020776050231790321436716291763680214619623665958032148132126840402074493937715787370960525907618053952989706666265669002274608806537626390822606392877658503585093504203908493814778323892157513784351123863322859281417380023830688559096669135007712663280103446927341430621469022391123196502613065396160597829141613721491173266370162431632212068789758572933311651648687914322265255083638879928606703636296043413003051428748423677349288824244246981808874870992585059397268553717677719979792997228523184194401694178479693976978471710515968027398703344598222980540771543103398031935197373032056612825549620935225351342070657353946131016188259594286808658779195758444403855693835535252695778888367094656875296334244589513859146493226142114955290866310646028653809445921042274056695171432329388172887713230695921987607439105320683973825483007816940060383681708531864886267383251112044258331918344543570396413692873569300891890000626004706444400139529405096743178352080017496478891365680622912192467949634106819692874884616563990343537835928570376227254114175038198139455660646601831406666068051416906350969620673144710672653562683438907848050460984233677093937715696831904120659142142344782612124480195456379265736617090685202756448453334151569078286424481915856746936305967528443490859448525786295630837602724649806672165084084124545596003450287324809379322617930117777824590059498821116802585918578735918273826648745525959297968114992799563352583067846742940808780180488900991759770389058045065187296045832668590160636014517536564576545067343197116371584144438263440667415284695381878199616826990639747813017552737770877178915524274450537500319681284013165869549180185105158589082496048954545542966531680504955294359175101151668895895428677885570897845250299614984977456068235741716314835461705417849523690254885024535027434891918773740015325624202116109632186354626357916999965589716696260756893141035189590617077180987359344154479947221849099329117870434046253513537272611850194780315264949875556619674592543651563100519081217425241414350126126996471735753804947532190582867299862930467632600606069093965151000706267803725290231725197209053376178644867842023422528597820410382376480783137674571455681132875999055007070174641939162412901251524108519032477339966789272451806435561619751371662708504655096053896806633925254713017144840663636760816874816771165872266340546072875981569093495266140181280375234992391001316099291755818006900534638282422164114399932982901898987904995543311611868832099710413694233916158223017343880545214634009409301153170327345538667486500925946759668208753514729141409740093056087162431997685243244248093646891073490827498128247333563856092717815332164525970101049224656080104214667338755225910407987927915343319169126493784186294178621803576712746606321679006311612713391711694615831560557896499617913011716102038108156627731290224176795078645369887488559579667736125417820341153148754494621359561910308908911934332032767388148512576389631887755694192036027889522654937412888990361721012564519084200794414752642021030703241627732811994181051415706173227347404451474447953853667290487699627332577773698451180071678132704721805432529722811618957430049646197829502115253714831439572800932066234298947819706986558798688093815728692690026012502079009188515525035507337198629580317404072378188369613108802010801729236788908103799478467495708181549981992538134197076044745290489496796045793577526407998994170569869152134246634589927491463262456432175791473862429390555731077688607202998388412370735625287322215253475202280312700310832488565970585565463602306283158659714871879582898039495765552144053133581207968859494274427790530429707231190722268527463942724575762431364483195100131552577667260546629433556546057223878413875368239233271693939181787805425353268314255086174141332548249798728560165813623980094780222809411899715129344359088007040146129104090418683520272815634373262097317205082957470130753045250816865110802032478083812728643592572350329452333115519687457216500130435953703488168151681016091638600319740889593259240899062230576841856611810097003333860628927747729459108662918996273389438479830353140587800524730497132960160127314462599621383420234986397300461752906493009083555264715308122216458039517359763053873891649601192995137989135455572387266208435919146895485453537962744368696150686743941562670215095107512616871977634316329781961319773267021074779795112171406580743703980876133340743593158924233788477178547475779522842079776398930906028015958410502513004583268878492818449183542533796907326901063851406132459219263877506881121854782001479839270772745336330590454157210799242700321553764119140916526537783140832175292323542207288974902111259663745903944773845478138426177478072208594037723747245362843447062069363202128868733316934105386948312570451332694058671156873294740331750568280717107838855392162603819008207109110414577042139452041176190885673950752907796425044231135483699229264692870412250917220517131804659439568689832297766596200423541565985962607732216643433699312462527740850452158134559936192861020560705502972721516641627912665227522678045666526780457976113165067762128160566988689634387785977078782450472141488098918839492452151271034198498567276329366584452043494013814873762255981302322579107554584680995146305618231160945756713615721977901568290320065458717909922645701448508674572707963747832372072116619923666127931678442720803536462019478928271440075247393213788066856646228418237166079264847428803340693332057041883700780050038740533740775707775002348369765077180193115042084323017789734784323171751895449329669239403394299534691760320060716673339617241024683218582524433174047114641301642022203355618423994005547911615562133308154579297562669459465288092013652973319753100001853924822863746288277912003734854386133645174200916326059389007615859626371078351586729399157323356175656426957372346978133399257572759327780102168736565376376355294733458277086800523380312991241359840203724318005445668743198531934795553518232876774271427203398295000415179998661655347421628564081609275854530853396874310335526661316041420668723301235742349116291860715571549668816407652223487606970848584338121453036226181781287196048137476532404772079817448459586482467511547225118228887297348848232244358339297980142484475494715557693225323768040771246869065065213358908795429422378477403748563594369436253636124260733960336255559510052991701945867795297022539692962307959382384980222571277361363266310137125171768650955188736359234287145361703035990685186499872866318316368599403454789818991774034214297046169857964259352700306921784891377638496541367332502607381128473527258825391286071535125576787700480772349751639130776510199046858629885197443181675604612872384972233848370976285874409126759483320694867675291906425163046953436573316495815806544417511673550709746110559753341099808586039568301139132633779769744317843727432573990368995997436838660419693815754019173961875336458817325209460537791321392877124937528612176151592571221946022312916384894454191848171594529450615946210648880234672400866066800938921730564716721182802203414255925236498595789140020363594140905772318991563224336295213441357098541988181156758039046467039463120512501953328461507696777565467530391965443257831770315796586538611159183597989982396726498326468118369426666429029558528688775178918262366213971321579989047695974077251731839280288348116771433519528180300910481278721447184723871817844903270825140436403132743651712784295484705553988034312462342465475436771170598850469494064497853951530332237329865616694029575346842220353608193528306074570197311762955871213404375993200042616608806557567991924121021167982539544560220965385442202551880666974337135615264768717172551136266807273716248569810627406750947866903483966738557956251861345306831622358125474491736858227494121748862835796802163412565779181848968932468958520113901936814159872736503782998669497408377760927958042813388065925780335272742677359983295475715144813461726329325692878240602113677108733447558950511172010699351301072803697092518919998330559235624788297518666527697889617159690639110595135323758180725681723320970573910424167699569257113624833539515806968300693499832152807706970780566056157838617008070038913414799313780905465552518146017018409235509484961753153674923333828178106800092418897794614866587331502462551843153459740533130517388430744098669401389649401815332347606362987202197333132490242738449797230582051043898092405844763009688937612943972875058842871071807735065166090084940678863385085479945635963371987231758968487787151196090950424272078305162137013820583180202875756401803268995578604300393949312834104980652948871399724729640076384578708726800195388684214309729354667963492042389682324209372916342616627591522043161065861137361105316704839505689549800971234593443856328257416880332499761614715296101141113973301126465480414136432617212996685626370498178059695127847400008762678231342662105624529164817604907124030715213709437373238203436377619920937153626036362145962905483855146346290313612921078680619644468857695260938035430317417834510383798406415608820808829092775698517316026411334698386831123170445769660075895450980306219457442235650472945107154305437150498956506646853381917863655619974553749331165818596561614606140491397010064220625248669629611846622644199569913748972158181084905567430081814528233797062937387949594390599431718408113827951608695845969698837520212468766907395405979608159459383021412473787272565509818732258499578684324198942489174647593527283976724889467609746729657459174471002502592752881378901804522406708036865218591997208047512735556849286103720901705093460318722500196365210795706610122859742352213369651843935583336665840369643019629298740848590774698665370130772845979634494995761219945129856435974023187677716385825355211156813242418460487749801142945572879642123170867926034173425680578542862816729198239781904635030032736788421293921815231002231187587048032223244372230762812318451346645046868982949693068238685325034450610500516473968915754950585568225255587272515252908937002745156274556076623961475297261527038577614116479948194537181910981899293661760894203291114492920689074211723739118319702911310783093382402221289588474040221692551227610905453085500175550939919621081064349729391149617175829762808155432873958656162058130054023329854189257419997948127302412619980442663908751292989007529801800999676174712114425984329587301289870838013659384029959102261813237933363343872833584917583545897625642699806557892553824495623306893580521157603526240889758103018823220138584856650773814150474738264002361955963072473261498679001111604122995452300249183312903604761916280330991134608764630712085000029704866954363109002314244329577750058458461288511770398071239553320831224683543458299351590769244503134165800562363459156267164053947541896530432972811049764132283175368711946203084856622756421102471211514480848412046392337029732391635026981540905764181893760028753921334244572197567857899014349884444543267479543744709621014266263579174450231401910660021081383588788743110571831544622408675912067952943177669188282123151461287103578398252662227038263417360829476077247415456176151475301993945514842506955121136366322408317872674308980366030310531742970399436586389534702835373642480293522824233626478784723852699222978889636977883723742642932699056152003777771307697962425496687325447587698968385261861118133151793082315263253189704563883907543580857159431115906954423372252858128483767134614249115725733283562092640643417018275533973813273907444921368526418880192773624747328687492110885892696616482703778882823942858407880497353693449094309563066584954491302636737448163621898898301408350979306118620271661461908336917083755823598831035535869705305565765797117123770474285509896405489828445032148409232410410500329778560566452328594964373338031680978221940150907692003021967279462227111307433930128027377357928173850941956125917569036204129524417789445132561834235524311166691407305992814981877600547505946465913963327685821149390471829255095623918698733431689313446430579182334939243452418282743991139889631967157041502345948202828228689681288603001189450030715539620834874702006901747952801950328249913373621699920090753315286135024713899642981919232442728922465547336606987768302251688363773380159210988656107106183013914253069217130110547344999062951044131553767153127965877661111605781826482029809907835419127386248123338957756556039064348179912790986086351072082993176975497035140361314897011939225611535889983896635459849050895801722272275913232323077777463844990833587762042953918017012436383353247635362343852522491408755570532572067017095673767787714199856413836873642271299293082280059834470696561825084750202181502147876017421329573107651908834609819556367038727577754505193026716549784324092979923325155892586667890899853844613566296961111015934072797519391374009255146573309614139780297303494528660368990958495227989746212581528893565801396904718873282143552169808751352208884313173312750540650467120646982673935322031749278235384308931182475652271828735489442491430699610217077303790763630903315710139791874767555963831418928200276775009160269264486006446285613671809492724758222644685462037821467912498698900692222929718341260572224927496661780500310138691580998651261302309853120343081582417194485411273537633371276351002219557868402855072335845476642289673616839376276971390574377923739531541191604675532801240689235917361250402908903433374486918362790532597731096010443705822948365172820820330675575060276667464139431045454428146096397519091068369725294412345167123083783217314196998105397975004850084138567953236797501853272454752935925320161629380143457635731929137117943912519623978317413813975981574844162371343276854974324066348852581308012571587743598598028155416243966579647093145481171559749763423902918758271871590602557573357304722569438209460776567199040352281123290063048849430005979233520161589155018162099381606581922377892520967247062318999126689125508381311502365295713600475853169116486120595498155375654058490384981122960612447344335494520412584681189976520132367195905197546839853844144740097627347452648723604982959744491685024700221181111781158051356385763306151256710035094108467304380361837906532084159570895803867567906306944139348117856978360968152943728455635481107751602417188932638658045184284251427605139389558231807765366728691837972313927912909750651453377609454727616924624016984337904203494867247720130134329572628696394803216794123967851868066313801282453978608133596160474091113061663243822949983667643360503832321045888301582876540637524232316840275989892916166927419384898926855931941788852218798331566117667739711263200680532950864732019939740403459616037169621471608724239367396673040712382122072340449100827500178031932637214162822743535277689806402118825592047734048553117337925852580490567784940348975252605046401787913634841437964198301742437628779275131225806043118325173259790634883705370014118980920191439077139309793660329317888753102182653997750022222820092631116854616921814021080537124218315938381014425118321758118935174457978522721333919475687521738827537349958137553770645141665380352936542643523848146608939420170303409002673164581804008057600208470822516386696813466673697037140233969001589967284285222763963407819191599751724841939310271123730730752118110970964082915081796882768441074164274440890122943898411918507466376187354728791169270395111126896487853125118082591050346760199010239375199955279222796590476140136518590742067054207338489037062165956721235528491163127503300166031382075650194603521325134935386090365710194408764711251239737078275865966848757915874234870764752498645395851641263881437571573503761709446484135442614450458710952138222438040571463987946595427940430349339537106246119558505498328340100724721614168422495268759896795220831917259126136782540338332798446046009906416211701834246183022611585017833939799247301075237723151592419199521149143471295938020412391809421843329342446305345771510873099674276056484267438619669772210647730465881556054190107172827957620085018250365051647781114893223913275166118588636477822903776610579401754358928390311194495899287018230199647070894845991602811198043387305584924958315236645133704447505135007190965882207722486702996910684479975164287761176995357993961963747590003308316290346153413016893423415015714777062714564923217882931774779903621548452956478489475954753995796789683257184577615329154477815302220843537958533456337944451318494843477065659467301519127284875937491454505537087908204889900054954934338000437632672168878703625493254837006501263614625585855862405433045033010266939302412969046469030580570800651938996266024126004394460132734537933709715858843007781210606865279787681271180390836696733590986364605539014126329051830392009488197845700259486144018382881599326488299128053148816087337122864547662810908090916948855997896997245844899245405597417052627510422411953792313070808128769982893823143626820161359248844004695049919748621241781462748881112284190227399231380138255259806195973663471119562602897272263728831954883536703406896314880529344514919842566031501587593991852497926232186441307128250354703839084356644127310708066214556342361072716770558133773715192306828177297769224037989240937987278854956334672838638727518619211805317971038124642529219013420174216400174502601966084166698101587194511347470712179855385106567380630505975650302532595552763846325227153366091894966713129336524942604827404615907733661410168107470677224214886132395654793334670288297896373266283681310707834803427107910903050962204114477099360811589250100214613422319733587428321587755365949677901130314162050234065536795651330269304492089622555862742144894650026722618027490125215491645637542650864817615228511915666894044627180394420168484872754977540657751459450982199786262086073739027116529729846170467302762658039055868541147862868926394867172161842665787939657134266386643192230265109750566698914974331965669574235368548759953742927411840412033915417391986822882399993644468287156761591482993585970757079126550343446382336815626156331159911780804312116193269144203980873121973657529616986405701025541558527664248279040327690496247746804108927101306123850326521806809671745470573502299185700814854837969828229380602022540762370448155317352529873869205451306714921952445967394427388290857455080026888732818239071483065209052564590795465990632623692643016032535790911859817790305120481959854231677223113403296485884834088502985361885376222265307155080012092964905415185946095858884328096861163107263261668117209980305071739408931587336086934044054141684280832342772336594173161556523862179956821031529367879401060752876599546393041431401825998516078445227092866235592754398159739683112822993331467857578816450673556279172887619562689413771350053287953809766128609083415444403482404911497405628152107018706958460330054060690538579222588756070501005982617517579000104589803862358069468776428416389367470184435882741036857655501608256779445379134359836450163766999757953249809332985519204362722020976846919073211541461898342424309748169204945540524104434523134845582691983387294535262001771175658803903117391115092365146266811869037585801401058323224743291431988218240600789482792637270193422756954343698644578306005368108316366012069980683884087658511877100979604979555766300931705935133711275290944195075021998961519380550540808120019853435735710362172046877337838672587392922128027406318954894356011708109677418966334151958277745148142192314667818160763671372580892182513726884398935797382367394961969371238276314509219183199295092130547412038724609549352873677393550099412560838390363097129313134282920817527871358302968189382715131753087090355511364213556931367399596412952312222460781484751273862621834641713187835749297427125011839496886103670602360934556052594658040358004341916647732726222091903143035383838421574307108924167377471246983842179636968686198676729233771103415290817644681117493125602342794555660618929739511898420282815254039354273450402921721637973426559516653779047540987587204423519530687826870178828646034145537808528609161909024349855708796434318096414583282134644070259943068952662772683187140525529497835598318557403493030138363644063253856152804697712188517478500418115886665180541566285445647863060265447344223094782015845139243626506604244480735749377929680726613351860144348334052388851473274987306233469166727193187284461613072539658460953197558564919977185096439050881230475292935214533581561897844057163544778319441482761594465013830374136313121728933126324914201941190432970920674518439925697082636981211690857368418651278847400905845414213222042315075687566868204275998226386469070466522667976239315479014881419203828109159954085255663149277709404770229681290451732098722558361926081364795039067826268867015774808513724752925397169355290259109014214558040540860619081094022750397070563777289384572579615554415897145877412703919775430182658289554782427370360256692737463904365295042719308287617001631412340548347301252580792436952260639701506627524684659751550804448843079857806179296020999158750238655843560071113989108889339928023864593588575310676861109184172241636269130867084578870797811244967221494887408649554644704979151826515391750602628324702765523441859208090724167410711254522141457375556153465890713120680015661735438810505529273624367637653073915837886087206298946448926950361463547969269534533142523149311628562459619242989338733184666022422645354429584182289611201852334425334545511883694050766856471734046503800291837577359604326616273280124001107834064273412482949511702975051215918784149141528829616907171391215582956459250819634154659609371908151628169937104380165110047439360718416316482237861662197565578309061435527456814979245945483261301097334100292887997280016499274054555172093082080133086063020336405730567766244652872842689347155046255282135350043195161039666189108194129130249044080500201130823331189007010418423084299890595999203112278391200539327405327331174426164445761397514262400796780132577887787399465923838031189199819819561894560310565961106887208122420318286698378886875360010426997963535205539632609329187412783878451457617309179261992543676125589877067884011725504153145582215884377169482780583869614084382576819337373143998292735342159492151586246870585515686349605899536708069867620967983740094740757852808070434516584978339676527532055119347703499947661240744518922976860376544557880563156691214844083723844076425222478045567275326590411441420158082872941888319458172984433217039627857220249003395974673508004795548318990551279480717917580614963578528198665932269100845674299239945159669981432362841004996325227790082528467323033462517403308661361624476144765641183608601902810491765618735306324474747298603328101025351416981012099694605044456203132313825319146594865106717361600425484047883635134910371408308579264931403091060777747243808638908833708034173665147025667060619892023381665554936970761500069119828250289828948107561273415270968630710154823033841235507413284876803964585781002146373349022969982031055146291612736162751035467891271064281909678668734321044944748166683706166880136627190119012544321460301008860488634237361990553111780267015214865619828214387225471641376338890745077189376196323340352022058085411789137626522248585096854526463942624664212077692745269319917933421792118978593381192073379697170004781548880864705392314692359079645616623273916964598151448814989129033321380918807677632419744338487983440354043474060466840099888504475610324997511073889045449489203544098255480876650608550434287729905080877645897736726359855983935954499529719184304513132957195983156648288745134042978773477754912847751776929503047649199880605834136095222571615811209630563331076627104193531625313969632171261321269427636178676269910785510639379858838609313194173931594974161580320279762718073589884642215371146799977728779199329907220764926358952836516556309083007650505244514845094821966926246076679650997516368421885056571321801383352602245924153106940966091356772423931349449181553089104467643077906413327745946524260163165112161988397461236591008796137978629005926931984884998946958698298225098023281615996189441870795857842709728084867273614460188535141196365623097079309360800696640443476301576785343764871974218895400615601553780763662608121802944598469399139987230164579581830658075608868564268183797322772644851077089348565298793702695056010600809266661226927904148003659137052226728430634400461451408503937446458469776112306044977381041421147267845524731346170877869359819546806062227476961298383444041991897502640254134641138908494708888032812594292891164656184465116470426244060696205129158281592550874890850265284410217032111600137452237299535308248936107441665153845624796323911975574664812870693972180383125841664161095653179969551837232866169183375432483969997242038759737591070762513348549132438137954593456002950241421207246508771722760981610524153922562252874582920697422966150583304109852512788931698399682489446377211923986528323665822331747681190716935427804748405002187777810982106334045470443995040753323695247920390670447527256578779333539567840864908569041907178264908427803370954685669878736383484587585335755358987215016370134899818894385439187942829640937809831972488516355686452521021103837423218795028095870571167579062060023623096457909464428083925540991819544327512904390392162549801962225035304364137141091846397552100073939394677246945362594177561733070351583837922565891079491642122977683089982395155954038285596264326955224432762923587103736834435775801234744750122214261576387573881612721125561853145227814484562721043915637090491873807615723882364125795655275005601097580553711143077786383372506737527436207781100512369951307431291498259988300685452961069597706713382959912169840976839552790338162846948132478584862843655980538591933734161664904264872669380132709894919973585638083669455053435256385809124392063748620466534417385231256394888044558523067543686779735012101354229494204206696655120759920661113786873552201873035628915773375313403176968921022814781311042280521268447949590141030391338882314629251130174759284948200995169611817729424967230311247144335716772207608735501321193051876546410309014347843573235623874148492129274914799734375787562029719415517408770426542840088312765219972505467643097911187537693137940109565776735017898145698302623757157579078063126529692964265495973329213639277420389941689778207270973462698845903751881928502360718177369116643883574153638154026700180326296759634509921360903384160819737010525007261221602427857250549419553865601756487703015563556912034857080170421856780983171481944312841006144913176988049402125486274520973590361340765891852091865132885709855586384333802257548763290385178067026778864657047820945223578090799001146780005138164451858103416914003955465034824301187954712247676116286693028324597443685262529717397549503857958138878852206078318278377327165706773734127765301414024414513642661825488119446276752512798469129857351467576426541425273458310441436976847774676445386766696692035747319775189848767021855210969803624940881049940968789955353199488558084673891620484183778396438275003235469318000426973188310054491147460075129704564077429192232457953125699178943825287879141774018849473838878033502546233884851930686888625649565694144337996863935288273849914825088697875776168034690578684298530320124596564636939975031652861918646055593132025395589563259835713544718848562744371121828158631273532275376550232494292647011258855050417652750284499586333311506704311988926844440217778015393674344783997752076765025500858850452488933276972260748188807397354342033170144827404634541781898493889511584568524276225788445304351514577957433692087357645351591695062039339297467802360043432615424914376060118306289546675156741249550532873945244535171612496091965311946120269568266691709104673474216925981580470007173956154386024676860026327902880215890492659551257470382002166907743340320515718192869350342010266096991110248382833868945833853722286820922732418829107830386121966355759639653675294881416572035579634170697123715648710849570525158295051493116778590216679670402390117081148067166085163734089104411070141737513031445532753553463148863245723429463805814438458321390834052441320459113062185138393491431966480388656419325124096935995945973209535992924459370817655780805020340879242676785204952151740945426401096934729849338207243154116769498654765518545368082157809854923763828217870127055158632796902613379046086216518407862348826194037011576651095032705036132541647935089520789373632552430989020031628763910226897174587029607683412043515920368163041502527038003691223639977445379776337929199649792165615516948385965379011654080676064468393204036992761164064846591376745335393574983392506140789934831116002382124884695239862791656439304286034296922974562548425694239149689512947528231146810950308582438632435085569643016195336809591094675693841745888886824986644029726273811779750012774931607752059243842169910170589860367372700289104765639028389376722331328283932130669268692911669759895043902658270399329318027987295159564381398696550064023915228093573345829075869797958480704579462298988231139194328378699160598024361904755437606933339406354051719309173719926688259845629260979953667788344079678028153528087551539669657039032292528722431240140434128353017939164037932295001861286072270360902629535413436906843795250430225079244190074039582428188406218330890276063373760576233661722545275104786066515783159785755427238887671278332083285391267182641174684339182042127892452069568516245280571731229971787586738213974635618765463268021204835658036415596471470530783918211735460754543362184974260947729758616119847019478032920502795046456617945087150175420810945080083885391179215241168809867982587461824887553892361462942015561376759408767143270405085618528863064027492435681316201332143994448965839616939729073262120518762201162047649606467899033535005603917466974955352361887381314285026328082646981195398723239261147370215796890764396097666435145290234935791035214628853149275755647217847875477196501489307039623332790442587638753967969040613855980817600465675722889672377425801512177408252167375592920063643230462076512532310384889803045004908200713406279390773965265086175772270988803627534222511848642305694727247309875314603237990981493262241391052773459871370835783901725602224175310516090998146750018930204508731924946491853148478644937408083997551831125898228945226329060532103000066975963047018478435460770806279080219052723200411016170849613357420980985875147630311775219928888519825735344821882770274603807112643325343826008625901189720555759966115067721868306198399929433522050418015600174300358121641357274250034259770767105347563666356589427251544539154678821456018736088121017412076838933843595259113164000485888582412432584198395532645938989627005428507537413698368840714399512373330544511208780732924946393330028583888758056273747968029387640021267944691440621777472267777223430037681818485109521898312129433416118864814287752773607928416881683818495069005429346799834748017055152189302787171378025782605087716390518813057697666763195384241614829414676655810885977814094151476574734676475150621308636566499386543268457452620079302738464124639377608058374966069428674983053648005963485638982037429759266048562020064362049869131584587841701954509470826736277961175231323631369288913099420910206082934599056193556338513581722391395743848685274664043032349911792845070717533484534031610810497570757264838891640093663646448417782592804380932268103757140808478564987186439942747123670140495408104757090286566827509428254997904834537381843133156342380090822693288776642827229277501181919686093066512592008513685834947146675147716108957108677561660989544761508992531975877354041992548152942318086986297688708351990562971638868458276823124335877291360196994697490103119651189548968584339620251242621686839625210480909220401589186542610149231220709985614049980646831770694802480252411488192887213283742857856645342204041680455264164654524971233156602955948126123389545363368682092522123841389403562770939059587860183946227286964758195639888604437461365094716393086105276359036807458767878109163663635546997158950736428461196797793552396408141244068203939484772864523562230802883468973542162380490608035292209527379389306164001256559383981900412624961634822308815310503673151738152406671943467848445314433344373876777159301058275010765155069395757941985826629041454328868651324169091575304738357299517925488545751622662570342774161132665768190438834807758776997457537519584644343111004482667444726340003138843979610661084337648812373180987381890642845456634103816341870298959721259655612832043242603627936003320093645069416303061577663218644409985059738004560350971582109675696945876473356670824568734023680673489918819374414724948875563174093459918045840792890672289591104493552928256945350367090980939509551803472187794074196653177445917328765571589196406626116462478641809843580146775910399404754495842930463150534148448722964939549747292641980987917453067220094311377004906927670733884734044244389393768223562971603314220912530143595875458198330257282817967196759328669655897842883836045199102438631637047724179066786702349127202676279413589127803566162027725293081163843030269475297266242812554444052782458864214333081592714613143326028965632717458490572786127154852896282559936872582546126679342962033748024004607245346271627896159814591425583868934430684049850826670615415663836413442660927934160998896062495162630936567237568621107992518987842029073916809628839535181081257897163490989496499310312535317869304872067921878910272663247726206853537351859340071237918898293265765353662374577034232497146372288951011090652144725540153980584528544060520481756610198365548147197288990109066041673472226553307807664361177173902680085238805885657447009188598974287408012536921956183829322037931384377369880299909186941176120680696627133377678899319934803702678775139767545753926886875938409116699396924451576385415763009644607586740941117483323773724522261164552295765732620334574793749993144590123565013685174153965404304604612889556078676074056810844683465877624074918463019997603797165394271346233878290471323996488755669023496441499638741377558133443549346530673670949015922923300194931386812072518880423070984749103336977668889926477322599751502213977590093599195800053780801764850593438222130475716377333783943349784463428652660544151831480046908037040747878197383664128543942755930998858731466621402418313856392637195558888551533075196126285844038142208397735005304131666244416416056382304737594104692398351052914264710110808362184554949269250550811996258951867801508037343102337369105067054667999713974789373549233152866663572528586158422424063373926448546971667212728009759407134376426729170779205882299653087052447597270921302485032330456179449688573522744210483649556236537006730448205950172961038033239519811239434733028410637243759192339534019021260686866215726194974966822874892490343228610217633011824409465509763270217971626829195819747479147314453381089461501717093705580302306715244203049280769625440049568253210605362736167969142808798668167108433708227837571251179987399555534334820475648009084439269045710111187821962789433588117685287120463646708648798320277556536763572911829364897787421891574165765733549274830856308861827912903628708468237992264033778144603738691354359690467038629321334944303979275607336903903220142452438932178837802783219796552316096204417955615864185751602680389687055128760772386587326042177713913473498932301593505073893413504588467571827677864542340286257684677340762289788252814478568052879417879905102068984574654445314331730755294560663884917596608943905163938046553245713165613047160441180708884205449537767667045174423111710683031264727055821221033818488839902555320434577479131330392753749454741143920877964068341909128320369490905915991069113873418581895907675611546297339620530015563286746872241718030519909713506724717272853507790168541545287954957989350871120338147780783075158380931256413007854586514570356324318112351294074813232413321451489635648314888445696715619519406377700302889415703029884041779318099948204231697276151460326017922093379425166324580822475377184296143590876781083622095094992002297022557127360624011125540964468292048547456396735892908557609739684123745138808575196482450791216435907797219274821063170961432154863240582789788246056133598359888453278663297923542078828429600637896474177558692144632942898939652034542009536766860857204222323791666149573096527064569434030640001423587366034133659214837663889082820162032599307316687652009822076088852161349428065330162828526324499177585235348755130130971875239185681375419961688871860124039407333835508433080704432309000665608273877656274655816554565583390105207399985068897632367691916107635290181693590484288082130864505983574463644003217879402134174989464860583883235680012321039666488315439496438597856283989481588639394534568346904812822260598998669279387222016798340972786543564307600800658789932749871553278887517063246443823124951025506602298506872790842049322235471433648609280754124300642589060184734334683019437190794260357455836287483323282200358889006913458388441012092689371493726144925891569097349074709920793487249405962029631475944503804089998007959222152900576658605217348168569761788391198564246257950535954011526892670500830435686270168247375805308241599014012681029312881841405422946372817967878067673679985682641739238808133768708878863170065586737891940649585786203129137541849120222616515044131135200625091362784217087978027212576304511866227494439500855685567023216896670649349653781154514339919495349075946162270704190156656836810971708771960882486008754179463086502474289214978393445788054057814085920963942262645005382295113935686867299365208691318750921479206987972328371041248955681306076447051198805252567173759045301906821458253340229266015964274078651593937755686305317968485551937684536924624469648094167098518631050718822745128680682688344657496693738734640182141881794997587890049195062923760964774269420089804561398794824147808758330898977916135232466659224313637597240320437425282203817453115725216734193707945690421598328800643727201826801614572565757223641162162247989813111193825494432892250778925177903888421603199627360010075564893449873978364083133616997381621386699203028031574951749602570586532780268640082446584348339698401143982097647502946629744315317948866972341869158393880435829120107037523158818968080876158296830305835152354329592406676321612258568622861767963104936143238405591606129449319180151957659203613540625019153022942354972284628872339535967340970776696052445715304230264410281783093849481575068358424145273825993427239837175911198712684966420333484125210694227199179450406887189871155780917042499107968429483648152101461608636531757515186013694158217255949076795016062342502254679987286370510390003680314590838869907617664646719680913702270751495973543070304368050623577437943636798111517715338638958682741746925629013189051137484135120651702634750599384157629851889946015468253748311815487253626871584569038167528892116592260582145274204385984142066049345826268107596398825711144660976031903546489623701624175289842360890873408825738620498340185244143287907042469945228634030415653787336922720443983940498083752800922400907955566708881381232658788152009218134111905924408289331626622915278818651810853465974458061470088495426909960539695517779486282541544572637474614036396078547807907122962567245112106461662596990397767069163580343516015409819539388162647920199215722445954732837322263890844897316470831452213963214847235354353522833861006845719078739539192987204759363021852009913889852174311339654552536346957483343192630221057036435555656032849664356608140843118687758577709438451607489992504654007785695828982965262986909683735547643916431966282880167568435757763937755360003398035075267623526143254806305793774661621487117174575324697051545031278506976852936908567191053373509170039541806604167017338388297848882325551474544322825606051704138387596380694580103497737002907659608167562137996894129150204137416297814234165716758436261356985288508170155298614115913456654286958557145190449280053648177431710889932942389905550265950640960478085484504531387245725669515240198336185777830115714088784104679648289876156344194601837351357063173870223944283248779919457419202992522616866638068504387383987027608093877747824081592014514865032672234383175090152362884473194145742785465763180383238429919621254735054644269514967343965878263028367982373438612866935559461377647220938199838105443842392287767718512706438318962858067834963370298212693759865738426054692480616252058353358467420794105001769674345702988423151189585784356269673622792738537982983816318285926607100879774019480345343178592762518632987036374253106305508095919779854384566984820829271375303874878102618896814603228243436906907997392020270137680515243083950911481059331381422056897317540527020454364700242829004605736111769514065556992488168799747416600706362301619523710355389473187823186548669741510962766542609776249857433426876261596032634287451403506271212923981214732709388826012415368564255977636272368214419755041179821475920273342276762844200659696549522620264956404138994128809091961168763771168017912325721543194753793553586944531061345170441764885054459498643342865421360682779484716639304650466745662800272844677917099754881698330512723849083870312599977196057664555497724438137215166695712149394075853935064353098499071719896562816466983041943847974084575807249638667739690071467908663515762453957478825402687909464541658311090276168008927885883915682068254295694270947345510301040452701278212207532422154585373599670612813573340704193531349404879237818111051713752838686321033512116395164166494869531776021639054654480278964713799216927202531029859004624629611237708791535685735450563872518567394018863929651636029780555831143145780724386217403014287297444342211435781356806662552317458786357734775144503310343160329171832459089617121697284025560423669245353293035332049884215048331065704645008162921569477717999800726621746839110155149174858279677154173504493827466153172531944715047963080716626138096811413611465563467687800800798366512734680793339513132496636499545577460778895325194029015957714995976175616593850958807489446226020971129262158090453815719114300744436674172539304582077676184716906294469526315268715550318272857399960682767266027967618908766348579754185807588080656011478660430169101751320232657536873328906721507201211804547412803635278846492166732805482086509284022293440044769919901278651995366533010208038787075243248059365008163706963978199040658813793683247912618030113203279434397539842399512892496929261840656518121841036442031397805642560606506259571318581452977352520967293831776814847475698075826112378773604680498495763687607502366996922712936625539853721009875401352515627997620852178399740497218961518786875366095862171054144916238518073512332042203525161040884075583519602888207070052839420210038969720904422596279772310948226084751872411827216285115772936706564541463596751648288373907564375239129904924978418996056422299995948899577877176442748225207223870139050331494692243912588742182801495000020931435013711438447389017537091664016074073489823841597722356001049855075382506963542748950744515223319374467265372755324978209715671259062548558463767964577888646397177949135038046090253592065928025955072123229922190140503887835936661488012154738968200020519269671899680230329040638779761450100646768803982057017019392236323358290603337648060993086391638534370657512183092098450132894289433662192994007457365699972660057089182341867649877689009462317416362765089576353391212101630144416524290714762576115035570973660298789269856037532508134859467248455210059017993203657815765226269827784356726333489407358566552920883564125073494185371068363614586286289378903963105927539042855879574378455269030348564103395573388134145757904311392125757423619045522416493983543573930059058487318319728741169768726402936366286524223956464561209580798043469690488508723819986039815311740122498295922876986564487796038724746101379575294098908915542091687173097260371866849900147179101973788008837845870728490461614282522747593158379748540352567191878759269844473679520511167549120583250823921768808298435899148438575786860755010811521307163611351141581574144240050684943288529756515830355023269730025368732449721450007491418663670132349669305726276705253851737786092892264110765462426427140718337788181206640154716691427053869044782310572896727099167658850025814625083326648482842313927006046612755742276233708826475320482556910050404238068756146204304597046774498659027575675335616272859463922541969583736769478333709180117242383782680745759482085780164522543763274627651823644492665550976352201189405415141774651803906306880175603334682619956866851810186973522265956993006105519185904618356676477458936191288596101660743776448402016569146673531485419849649012592703233895175107719805054105190512667655105210221475094019876748779138137631513434160534163847187166058130742080600832047434777163135477266027304943681218100868929475896078524954880627373809065939621488709277058866309313384383276476040174120287459128650053969783957325335368149187880130703130231249032963796814031543147571059814876072761776701736969923491936820043413059529439522621147834050679338439124632007871360230686906505856035947380698523019852531980842802291802984008817697160317566268184703848956823565414266201372716680236668231147612834613838144455973764154330435174018865815859143771583642536486660404165101962032181641540349704681615328983036550067688948732786606497423855130893762206547196904478092411270769551054699149642896438983012710173406142849620232694268620047964152595088982193208127309244040685352865428413562006158012470135559117111725560965717494427576530249706131432899871796986231340657224104523240089871304860232376963160415825728776062198702083721364015152930095948414395630932477363958185094418178229163218102844217620388833187175290163739193088994971588249408903824915686841037126216384220580722647039383641824766759966161306766650885541708917684685319503209026292759533210626934593140220980857369088524115388760466301875623945694932260138130442185026914178503440413113210595960217320324170327604340705377851121593403572597168372888503221365486348715479742926716721098565501258587117961172748267873736494293867154968004667590825873058282487271137420536422240200858721426116731805231124609591675952268317073017537848651770631308287423233650416756058012446652150323434185142748892513357940605531959387551093918132497019994171287799386528061127066448859161293269978677070213649679102362183802666269976737431397390427267385379069896188749307014114078690425149389655404666989147572799737816112773283910058966598211073232783727906854810800433812209670571432217923887722914754275815998326928116647041582501705297328335133541273348158250051531043685437828147042940246248225041891927292857377031966012211380832870923375989340695572968437522306107213606995618677860287843015127184552915767844771310661481816907763993204562931258456249670148955667236110693597313530589361496156537121224997381971465689075476580753076047391116089041267812612714117463772756681539445202517161085227475768912565268286043958955922629103647623747350478876831580056354518300135502327984608605515156926517446521582106357076009057963955204363620708712591131364280058407460555387412679220961657529744072151765105073293211854256791554302823994190188087115016841369208556384880282014249727962834728560387056506052053698522469007310473634151388505924598909447498229495790511894936728831803860263928313298014376410033553998580805444584018636065380879252294390929413801399952800300258203164346575244883054885212643954213262331695155971047453992000928181331401449527054349147537352080140033580090817684851243587049477805441256140121248820835316988916720692206522505520702003097712616347834742634604734020224844266150963025392998890465596543014839231956909100652242415987779716650586209682441334437821608348084462053224589629702968335786873526178835418846380005584045654090466134568147873072721452003324456526069997315144094051058026288136780574268328240562336952002520805308325905702115735717626109046455842948883836476930158184626413606230476300308802477937027085318623555284434907013207600029168650847125936657644810106861928633609234744097600361815807045724788443305460311231708867977214777916070329346748197772247717861116603096343954137412769590774382778374231360963193671232396927743487190978061951539811838053020528039403326511553273008779915573933887111411782928625560737182430396604042521114340536021828375392918042444916023362310208237731754842278825018718566599078263857474713725787975933173478504098511648351362818992505461712973896039757218788497429307858498900819206071820697498112295689672347497572003866265174416701703729082214950379395181922435405312183105918835870619440669759086925425268439715577330114129942086839649317486216839819586260138406544099018395877883521522422756116630118792816725652483414983422211386905137919619592273577961313903769230531422057124519989234954915160146683519886871010160527317868492922912593570027381566101208631810042916171760329659973104941061993620795451617315043270366516955800956538326995717329673373482386829221174299315667850750660764202568606100881345425627267822511267076224974291854786430351759853208431673199023353090936094734689322196246111084488283388821878070826113873079824822304617051187394421601929905508750808780025253063607622124797544908969466931723141887723489293068589928629548289133475455445572244236597201203546788521932523559761966759558825208662928588343436540650089332924471065342284425777565231614140730088366650785350610372731635732181715512708570349445099720281167015670324162080939497922939133389456399176131503954764635876491751768670404694103328450044215395346931406661174980790052359466629475080069290984486197959705641260145585360096297062809615323069671645247568037802068484785608682879015927946357610456831170603410344183402572527716906894872073399425611279887784623607235943613259517959803298015060661023447183349838969193074113671200170161807432748859224584558806220547843424240317932527995368801178125623693180832091453836836695228663364920606724156290222260228445296048426068380903121376136237770394865289347211066541748707841129383423383543508903537459153622462977564742607475602800629480812481153717220641361089558199665116565542427214485498975618757938913515919613963931280617998280090006269261176189825574851990267321540049164173510026367598816215694608800834560098465586810840583464190283000872378638598391508125533452581948884287059504161263724943338576172430852222746278329035288551899382668238464394080046561125775208262707863796583492540997442600325496257476260558511381656385367567857992281192785088301139615248875765631124446046237887984328681597453736439276602130656580601082862760006854054880806145034212847725252454763777092486954129110094846438960852791479773560669920152381863730935057492039516220614984321669358209613522511399033209224682577639511167517306779968464703381201684814352034045444909567626092491622608786243562529120660608268649316490472602583047935528131680163792205736945163181443001201913406708689152471706449684527946485840964312792746712771158932227449208038273171458578644731716790499882433509121410861581239864404692603715100690091615954993575876296750631987525328351049476870138962195099663701461662834110181663157354716194879061142541751392951684608079953571960264918036762633643534214047666824988649810188971750265278085912586124601465893379832920311220177007083312726228176848965226360436278733804738369354169743298663114950060350702083493524742261033637927170896601316531036621442103860230863363343101802157542206604993911566556571938181476749965439839833673180691638799900161579136149649092292287900407844200839752831051446272421309917462679481162235085363330556505780721226418410760444862748329317934302050417929148326921561591927982181093588412853090253766751939902955622490958152037320833311294753855731128883176086294611399246358381258019125283811955457526364476234163690496708273804741539099070524468017762653419479937270357196621920123370013226505620527906819382357936332225500594067823205651850106467173158505225368079103333884681861497989997082580797932394050322489786596737218303284885223860202761570154565865152113919006587812663904950041561488142849646801082971604495508459133403999819764745762916598717637588641406073344633370163668510545315039633261825102793194232546585988562005041015780913253864777285559965972838601419499207505856105246801847637532509162761094413114815685222852608334903621274678823032947246476661761944354820132920841086136717093452515940479733090016323954647029682133636371929603859101455135695266234634944066200079385084207758456215598101285531190144177045183254653402255196325940263192365118935918404729063961294636631424923205029663959172687704955805801747615145740626693794224181970222469001604309047365353527655841956141778832739061532750601412356473120329636343000340395486846117077602073309049002783388782254587775397158270449055802455878220569120157599704155258998795994123186693098923165774872129071336354717135748467308928901175195919012109953522957929394873638860568562848632728723207149369372883287507695631896842147532784307412707408207387973570894118945133588381929466045561332286189278332729806162777848621711995064094252188422491289324912886648425115719453307490040938718493434352991910809987742700553039954874616744017505017793285399054942587569034835645270845502545439860658728603039620011307594929041674101671624454248388379616558544874813377222321942475298376785674394924894997236739518653810634283141207903203394319201521470381453227043637398561168098868895966744288897348987595657111453908138826981947400568758070206717285763348143064027188049897599547585372060114421917771825236497359629268319227511751414975646089348406406399115072038805489902160894880280735996687583809420096518073364757920416164743214562644261240929700897071491948488102825092414036593615586037382980453416213941755525535639798533094669006325527513582813784339574586534255741805954154362625152785151132534927752579950572426319250831491020877426860080108754923643947474802207872094088835752493645436724585425002773971360294047021971566961821185619709398631608875213944579222652960591691991052291228453742149274889651086777385133053944390724064338112294901783851916122038874880706418021105838654008510720682987946680246553538552855099913301523782614425798202664110560920967350702865187572940289050138745165257439417186813661249843937431586050373759798421277167930435596218714357089190539992998062322024761235993508888633407254034413994015484382181879779526420426414652764666399191432116969410709123072756793162139483477458037641119542598182100743715487190908356514767124706788103466259993278364637385212752215408793773252892847601057040233183620807443927182932170107320272663605247820407297120678511026938924529816198678582366355580178954339208073517387541628939334425967425980425278826878276965298110389310378035289170764810458843148019308769979207606783501759592789073654045020438985341066744120980103953158979579644554306010932114004253676090904584070347531745007760712593458386492987751508062503102843084484153969021993418065182989678886715953549624279807285074952441173872896296530273937053055886557836730144463251136109720180004959569443175438834689489970958701491062501162364312196937579256347523546986256479184194671484107846967775116896648581003726192955529919622261359408158756353732360800130816626862746856162078920660538751809794820784839666470627671852843643556540820834596312388786645823372581756917770461564282974444193294062516608979812974402747104604961080496059130668794152729107825141628994171099697378824920107334433387427213994052382699063509840336518623155333693806275234710561153533030432995293590151947836904179252417165909791661256374942908819891230102175127526386149665941012662769043859800173457788317835611696220847648527023968268061563293849008715018073395603037282890655664665238039602646138828757984594687257904548951455284611037540108650900129697438715796832535182785603004190130933068986559810220016122644061056966772782822384209632312891028351578066351429481451258233912034702064893638238490366841899933035570019454589744393141845596402082564505266748502109105175375381273773228845088172916179882533330044198864311335776867534915443079822459656025377570335048050502842543297814503561858420288627381717867302353180198511100887802368988708556727975141405078001800438574141536766665048340503630101214268481007370019517406711327744534578901853139594823354040351497214936137148942884580604114548812845128532002894028702690976676579715637384627448734254304201817785221897702386859075524860683967453133414838692020192194002740170440600871460910703829090281668397539093947780232983157697486093112901330021634834419170108251519965536794757683521609389756942981882449747525375187885827381294734569118012067789317802824983593508191649810106212019889258097650048200244789476026162636224758799806846226032454618352491544832879448816055267228226398743608352713795016623510562895819039794949478575919528986127757838709473637240476075882950257118305296952213793551249166707654042479457117822670314835262570971091643731610910866779165765826434610486855008245209541334165111820954778897834581416811711061822138326251057324378297460484263613802380728056076927101002288213896574530993050452150537720179875166358693542393573688024558690471515941799581168374090702876170894511408291663627100117830546786617603883506249035993803041137357713162163001675663675928137180317474837520726520998180837028533995341354507012668787361827139325326888872788088148097783873555600128414063986701970016129330431687773806005760287581543063357500787836040203156063897074611583470088852049383252814984689120477818945956248893713527962208723139178974452892028005202838507261032109584156445335615767984831341588002407048225999302702806400774582506433454314995250332051861328012215537733403993738560291316849615366262510517354829450402309738019386691592782561965068124318679759880829584495428778660175534964201521492482247917841860602787970214917971684138312454042933798516941095737972500151902989602775614192594576332477065186260501106873931267922128040141682705317565862178279421986291327803887055760775036326270111175441404011026539873555516713056576556698434861996399654751267660518240749660355903611251763083993910141877814936759159283786775617828544608932400976630494351804193847866414102363775316549395499781344256042061549856266808585830432767757300492658976756125222723491639580755261209732147130898543010160248301406069424322337017570653787273430424258894760169996035576948503792220873695439010729866966008200592649105512018286755484195921922320298776015921213492838496418826700800025315890494186046278657333052812459337589443621242147463529503525591049139148087865096237032778272109495797710311054406645350330074026292625042521948249803267477828041574139720638831627847359191131235942396225582740951974291787527454150932570794685559825849222315463459122103519988862432396892158025969631401254372840383557243747222973107084610472504026794429681532757217352153988888133633644580971171920859728036925803986055824723188974531179199706291849509471060752463289475319915526269801296405532782837714317914139164202030188860644278199456229977472978178372547211529183715101902429484582292032841197913771676564334186495065150096555927927794626794975935336462509128198248281501218997993197481252989992004707143445217501499163392843358045180045108634910207006671868675100370704473848001860450556161787905620506821837515526148792208686413628049226883405780450984593380296456346894561586071685188666948035256349234735830051292252030891080453062196407115633190848984331388193382204626423145827714614948499993690776205543339773140067292757615538353181177586402111536730855207113368372198353465855036909093487499613088297289352913445869447935094666392552331905984170851627923697722416015223348104424211884808905966322435839873825520763096175008654138165427244855018821535382428483183362242443041219319563451333668284343901063150289126024415120728305800490125958604359850003606011082480196878991881549900410490194034000664225779031141884405083117548868773168234108176283197137292983660147744506005494928139342030108253156312314367587774562672835642489660443041802082778644055738002040256881526979115453902840500925903871317968045848560395837203685703190345469388366794496459241658242393893752994669729549444938090353658109395746895206798959574021858719026078700475228222680727631939349463462677882587777744551892398520342919849437967645223669965417102820657409062019038586311918739651576143537632579657369589912179580522322702611408618962063994016444980275895111191935910007569104862646989063898862711484791115165833331682946451486033276509982095584559858495327590972975807446478598383154682806014016826647579323806986531328896158576076354412934183139414487591868780688000188714447610649980476796157733058564895118392804257620901332034018325637412404567227472651939720942377697336330180287840845152777692959055607454749878312992922509918562365972629048544184131529959338270471676574595528074707876516205295888972262754909823045569245862707570639296920595542857675427178048062850195118782573553888344408522290437033729697648494689230284234350634516099912766044824844544936706210053164522489804173273698355459195109329416194405270615750520475662227721720582888434509367416914168768194922933226315303029777269956683743411327850191135650111497666909691258035053070040559561221599992508183500498814293771459607312182249574876700389040609867540160741270245534852636713824268575903830808781484824681669472615010675973896339470327757263412993389108738832751279988500366319806767284406405636722010742960021487524785723014421042553434004262110498147953704947943426663205243571040425507808251832108653560950087980508680241788928337659237398802360897856480043875556077999377158648999809799990319902300345752713343702956823705507453246183398097427112426753767224134826808075076755033227215193760431419838555880151237510208249896263345407294822165805685797817027765233956860475590951006244726835980072082801828022962253234247832791619732805093846822910628724215188371113333729206961543106038468690952531899093991100461147054450145245407613349004059662601251071395499785830897191290482688134349554559983819522228234534547498238548726263559431268318253429304548435450396439945257096806245890452852890594796103823005946558774828077023831019701309224727826238844909154628133651562359618063253529189576819156894523655011167914824764972549741795476256969122940508094193785153339444433790873677779829192954529885855420242582404709488498385104046946780320799263769447179281608056088739193906790448144853169295568188514648091946188168661557966314032395900622733526995759652455426540944391849843362482115060663719329727328379967995071720172623082638807265658916674439639603007711078164954152561272545712316726148399248855446119112575630429646130203820885961909073507731699743838950143155313035096821995175100730996347474159591743308774573274082895500551977223525083050632881171438829824780957632785569781833939183360716884254528711526029800410534807717741232470864486441062570807314270622787487970375465334924690561681172424861007127295652093519948930028190894839593414490652615815503857960015993529867651627957413159292129151061194594896100245805861576345618741136865888851742314223587418553355878330040436853353886598583236337965685921299331911092097460547045175387881899536026757613044070694724771007902733926031019382358940083274010921061993274075212034175067576421016221781834915109292231346752253311974229922823059791392508013485934395369343890309336671780318447498448876591306449940859734447987278356358129453933585825901443489521054007025515505562399901339881691736797379349218431521559318842453983763101158241819276379178999072779333364744432996049098053350256986877423707164755871587458032441677098001355598958417321845535796575076943188430913290214734511049606186962703510828557138827097808871967622219023778432776971538363118812448184483317186323462047831904951801302344129701608887030375654084857470020941004974673100229575554779027387090009532863683210818464460391833963328061677502439638763558817221429944684939631088661106153120712575818637089518371764026892917876067196446886589205888360432669430099495717788059276729018147090502693422465525914020960188614166189228388992274298514834138950502428844562502502330359381031314447920860387928894440404314358075905509442509578817364936276553376335634780797667671117999996732976177581260903056828993809443929621645989175854819185468929127655875310050722082011331923711476708397731928277141488101415903632784363565000164789674324732866212534563192652626767145437354518098573273231677195894611576206882235950586704163782316762566101896238807698652063965967875145592599863357327872996433130674704252113008217939471781265992017311689631009069094024615206720702717145096524979093584331673879103583496411026262606474544288666393707005754916184309131986794753254713081332483202658209423395170129979639593749823532197644747715561117331058364788992897117322040716322930779608644983492079068977631380811793906349874144191627363221459479476349508961869344059531245139103270687349250667333957329230483045518985064013624149320680920089217484673549705338684493589393411236920462903238522148850135441777541957984041939514810366932438989172381735158217647645103794496980329417343730513748865419993903350767213915141398098492090997226626122031199660173049316054423618606816947674216873940697663396302943952347712916413987533902371500713209938685070101275807247884176993488784319865330534280342080256721579733545007688246103216393963387687827478406201215329732331910260574492755821049659499392761484019974070863568088230195678827621017478755787180389282071816232520564379266429386366196566657444742275231534847987417158167654386951840124466516425955756068445366184442460340258167551410221970752145934435754835142630408879170905640657887278148643717197081362726824119991970144572401175131950867394422705206235916482712191780524275079300194870942078722740251268615127841641206917072900122916595367222073715094852848118577967126504115188792929838144102784203832020385247863946197405828295622214951449616900654762189631665923238438758941248106775322622967534885120682952558960089353756566450440231831058266852653400767681674329670365563442940585586011003889274523719467315097029058541381776991480207119056072238432682704946122630071358812436744491582157942813504525255538145178715039502556152559690622918184073137590624947262696543146283169606230242851914134408589739194494079483195421155161570475679016529927610999987244913923871038210911564793645932127761231200582154858345003813643185448451192948005310779789382118285006462092302553409273640747892560967878325004112332533417167214497710146264906771487501598358211317135317257739965948461773380908298212857368819710395383815206655033830050463472516322186342540381082812186862678554389995382544942502537185859262480375818744673888204639918305344037375312019792604411127262571743842486966306691126282423553102821967879513130844807934200403463827919539169886689526469833018301997438571084562791106072426870890281619197542089115503910899702280595008793527204890135127635423587755351603276088862744958311851381412935379619170621719765321767962136520530510728574141628466710125746440184206412918831463385785491199583053718376625315424696461425789923550720669849213625943356729826167092835117245163941259241037117822575794107108491384120997236933893951848106107807458907710751123060487440841054452244883758248072195292762273359776553948896755747073600247975037837950710408937083495930743974113406047278256718546918912995792382546445571217094986253140214159692331725856333104480973017344433425514752628336060799341635655646514916967459197490285176491587990255993885380476280376464824154206435028884399216050353052320919090646362305551442065858076456613667871600670388749321855282624849027045210457839767711213773409298223094059965064940225171497062527510825840099849278201605609613019556632541714028446322162181317964141978320880191358518139744318678528383250139086413293208727238084568076884332314458839812861974666817063999785342148357058598568244531646427355661247783136814668849037058349811543087712845605731285394914105074021544301178518415045235167687937657757516367110752678379736328871874592140248696664699786725017023411103679981106081185361855464510484384379543075349993161992436259353078474875464197794458971476763199715169462408071730491933107333972643783541374666116375275167112612690723635994790147303159465009574902333921642864278196482377520116117117616130789932484427569722416614857623527893256479620754066402547542962483608922660887218902394450526989774910634353860909716776984934061016132027923605584528459053542634520041048381895119620777577060396467760691922028993359391718861997669348670833586945986135352769068812462006840002763734625777936593355517583140843381746394959427216116697150665172406323551378779931657982709927028423918919613123209573220988519986658488784025337587947431410200604301926951726482022585437476157325630176916660483967218012624605710750327285424563184435010860219278672359836782511124544864265985833395402000594430470594029956451681245429878266614795804383933153400038909907142456065757195469462120766877784592779410770762979005339097971073943492475225506497238526720029775344402400595264077688665908263856897103174652227379985160893575422613067317987195049078901287863549634419639849463726103841225816343183386343704219774153365915387230938037019000830557728122818588537422912434357345767834291730861343843388598986099480890521671829801270853943956973621546341823278210916061274566931678728027125702848502654764858611463101446040810379525595173146820502035495802565827300725903222977090859454917870614934551639791149869358942295774303786991787170490865725063239440273875897740722938685910439072026328957056249328429595377931811968571749471899593623026210399292295054873717040824790705734258862840054319177909133720861234863733171344223889938330379709645743078947502481497903469993574527027136342186118566230553718975498165781320417587986503718990801484247533702737962520500712441315067707538700481018929525997475617535170078380540367492737564549888105185883005768077070349250788757971463514188373589114224930345119892735225959826470458962164313771379403372201930085433043451557180375875734602654304491884803803358228955346688277662781799158971461883355411804612673703769697951139273335110694028590108227050160627177481527411261808350759706886284383984439830318204681946404277641974830226342771148426381153112178131473539831220837465951771055789178305197933275539647934584239700137250710086946593143599099340605357711880376258616194604703784824440020290444253827460466273751886265249828556868593710144935917164613269252752596381196289947887956997388097619759614972502508920115868529029756388899472730621467271484658473957534502000200791223111804192486814605569985843087598369423151564234125354011627584276331224734895802107360864117611973010182676670811106832899140418034867476196837798603756532043402383593804990715056463967450370909187311258484968368079087792256800624246338152172448253449650037234523201976767304133910928548701777896336961308515027241487143566884117428801526453958291994498726935585270660138163266139708200216598032538670213960845705802821031688338213064866973415513764841236997299884251213750319143685504241471548329634881766032962216107874853236653993571471404577630084788859232292153807962044250056651491601348261782679874165693820106400255847284708470786624679008803157913429543443613854756794106412276521421001859713831516811377243613779571945273365867718002177015509271360480125759734941036431605487717751981802219812985579234321798742340480862860222681703184893783190520820969614234612108813021979936714477175963930529271782923744939962460870325861352170824595283898247576449024309678225737335429057026277469867638146173361148202056552187503380615427678253664830561810497972994327302887826059021201441682316946798568427432760452056456618046183302414828892442220209243591919829730173463371350033499768351731258929970995853495937761647868308855317482513882333809201165103224535451546634390590691752625749241724389914009776185870710317590151919901296485245494587352581908779981440632927141501206747024272074427613698801936841529697115381093079893644182894670471167993425562764084786879365796431856326497187861687646687452920152251643135031593579497093370168363647741296933245833836621289986541719481341059092451521171897199454643715986206848929747626123704912585373079247712047867959683136314917811800721850842413612451594926880732276836376614879643269841899634691760486171103698091771378968670450467486924354854680972273791384288437867887331804003577173520572565560806577981227280254323999977965225175545783914265844498282477543070688144326741717468745697528883749251554213126710128242668653247423092221835353055690414590970379839531231614847653979427343511481131276304767474171298663803763070381273917622765147431501864247547587957010708170681789402954296939375188396266625392442524807560262020968522100522507682731439577260405242201536186516627311822691752772182533816466091661973219343624481452119066961959519611384243590015945305642608051903974425036789270473234182699520070453129463262312200595167875005796084391709253431938687540627002489447989808097205352462516693516533114628881091257645077261323783278944161936489222163381173196564006563651153681596461652680584926158505305821149081237023273463950126491610259001064482167495385132995570759438203873674844022354664038525897539961985281892005285231183863692626481942146170187062099246564990416029616972962846955231821491427261218186272882587345670543994661946211812290221527929457949149409339137892515676717589948600627093221342267041914355204940360897156366637182680920465678102731056841079951681314585410144978203110820065054712592044816637687610814486465861566987301368166659167925527699073817940364039257888972528834797213497946325416694979955874217177145651012692087942699294160273065352300533131726931837669214201301154133079920851053053864081600299475460015275958165267219295569325761050022448597690921699409606767990673856149089144990041563332128571594090754745724537057576871727475555193987974460428332617981705837672328637204214972855851504353123168772745879373958856389970926525028089930678555932596153325138025427431913762781298274460082161542857482509079341623057532978194135051359170510405914335384318772831473140697741321887758217637627194441005159816132709949465563377879270696771340675310084922456179013166765548775814905169401179028050724607484983620582192119772030375368302484575305943397138217885860576926305000687417757304946751484377094681539394076661794134317046756948412094998141233744083777468765450914476705951398250893612735118229911732313992277905446592324814361161278661228612470184312441754666824106027244754304894395103070624060610435429082587496693176181432447849827610741017218757294039298537100326509561207913271554484569822306271270207011798598830775791720876235470252028802465581126525877460238132074475145838041377608776184070018259368006362226941705898695928149551507320589731577577820479628167996956531106776000717155383371743437229461540515490733045514639700611806188519039070908626136761967204588098685230716314399995574249275750320466981298929183667900270330024595703193550250302780938588740831131831894831522678538422062581606171918714274727021289422202217006812867421902319092519017307000638640944746097166637874516706702013262962924526203524862424661819004743383657559563545017197369426505357411907949370657267756842136970382974023929445766116804639900552609591343596095549191233684206081879072135748920330947051654013556893777934369181279040681640735173929892058331908415766991793565002364888333364220317176987357379260277289130813694309287129629845168254970664926116720332869922312642143498995833438670586094916326415682690742983501338670927561589116226455849657720661932986076385057040701461705219206493661971040619837791940070978121951478911962473577069169349091246887444211585814733755838837429330328309138123495799522939804118389300616997747168537438161256790029101825498828158923516507376119513662777572285299311094014699199189255933876979629265463834707922873634629553310096052057111012103965744127765982567963567279480812738304804500396616397910299013792405193212222234848144619052791349129907634006853150423976788773974964597326561652172897748619211667892214905333846423781769671428509334905712207276783790385893308620532144727690180915423099648600027581940202491996333254824064574733529106290372809678458747052088448410430139674981433006581553804863082397914928287297521429109311113213605237349703211687387573548403454929438026221524305575871720580057723131271179046657981057719158862096855036669080533048292633429537076608303088780102612103846706742727400319757154259783452415064719289338442328450990434994655874181299672268214025089133644309737305750877893535555181919278378728127113134139434182743244866969335470879851782404778787069393119895167420117733883667992287812304227757666342675187050500313770662338705857003420893905742979722901163017371376298661054200844183619906716111848594291717313265253647024903395900973675515064514066948840095203691848297177095028466534781006369324218386788715765000751077395485648845871547934443911228539176064307576949379467093428245488768110610665866140742484954368446001003311926434932156366313534670116012635054687604113739163915213078895136234353928208936241939989006465088095286131047744439434785132104425536665698537917710665887442040760024018775514033651046398678595962224614130678449680849867693829496475952841239985417427454713960023514843942867831837316572807254320940900537209906119548868639890654368792537516284157033873382626612187201352973580594981274335733583292684199225440762790167861671493462562619553635089306878702833477974654115479536712118502726480416499416680618992071824566877869737727009855255324289010273125535983718336115432320105097886396203492600850334105840140594502231727111499389823439787030561896293042814405178856654371422247458928845415953221889397068119908072653978314035664314330875953301697666879803871956936072391353572263172271110686758813100734891911042213560062739871286127099186311242496119752984708170035556105951275000869185885617457762522143364200248992344944828054447381512341393668479313139799632254013452453037754380597372546150450218517783105586634828561044611866582246168353324883942268615413498333510358793383246421626372775117755604049297426296640936241399597166947907234379792159026544441841546418070971444554392561425416148729127996129175936758051135253618660323530140278962014967794472163677554458006942124200487902287508397695768936925376112206829856022696857256929333959673267377761764983928332966307796695291269248242262582628454891280086773162584724763839980151322262213734450331081404885881050575362832563250677650324361759018589311253569742145481151478672416005658586298787250148333812578046587320957512351966597098307951540736260731120372171486611352071454513167319254773728193960505277175097186932321574198154867604557513143036328576043537005421497969210374232570960009803342676513884840282346235214799760503213934123964843719116292141183188000108349732299059780420414227053997874598818570620449147701193572163731415448543629405974598156494592658984029369718865328765600901761864361610811797579636836445960019469779856579549654226327770389298169335252258244804114266547140522927991360116749683828304909648381737517192681204088223449138446602844288906441102138974006670394453730678700996338845343964205314763461116292055797497080422451014201131541351318883485042467467759061937378234860034909622002548177962151419275808336890545410119134639276130541682278860934462391594577856872383792074757250470929800923260190197172210799143148316338038590069271732408685154698862127361388773978082208098175353042792384772097424082576289327042015309799709609374051523304904924250748248501016969549386042356786953151246499982802116160828122701454907261017306024089568678866256353151618580685531372906187246989447743983775936725245731337894938332906318794392995159605406702281831665358065698494204174770004776617452649355315237107010962157920975793033342179125823695493647981315606673905084684404079432967225322197338402608926313872660875094857161357056811649051311741934005377913614752481450517572291347897297237959031154441041457319046298247509355462172850751669684455859301004728935857322130944070452602533737849418581547471314123544574112659463190773757802536463892483802912365976016476605378736234944932811585142595910602045210537222246158995977115169582514459376305277913763995759161981952457265606832062759255566067416362944993432164787932718420466244485641934063134296645494873368421015941282064975304087055148130361373986473826269521139795941308520729089998779851939433451671864152043546231298940963308336187744030293790243243386105946131745535862337762857747500249876488585294906434029696776375031759828905783399296010059067872301151975239957820269700315436078469318496291862594695701918161414458487823329205223967103110205506563282996095061792025799438069854651898279902238469672924418518770045124568180669060479457762540524841868265572778828772144497325931466245797666584317357089068941855551327435115443910519351351615055789981178944510071493331800606695052281575165544911000118398685701962642014041337672216269710965215443907818045686344301218867618879832410385091436058747059180047083632799495393780246838428734263478028008295194723656444786773269829003589428330678855628384524528955924534082217808491828501384384076970042657170086660198875565171626979367505626331186022073326577586781495915615310305274689692929596606177256041489037966605757778420495322698272957702034607216367167404556030076555184272693858107353345309763676696445500220829711275306903385945466944570483574714658149335436147026007241260734646337511899974200058414561293171416750198157768948186886666477838484221484122682108234492608726401079747023150524876139319007952640847445745360449564004682625025868362813100549408392800736049689431501883333691669976498259728638331418817240527326546562142139778685091046720639640712743196251445509640851550264301811415280551595882999694450789781451021864302116207409833939224096895420355028023161763884179661501302234360568414363328681562920934900255132135154925330982321685176766695480041072471768387954178102222476157958044873935949767097229317659283467617710233016785462357247694306515935579720009673785665635035294030502263168093570521131819121327442253510064242564546702196134305013870379328472392644307851762593462895961396080821421293546892706643675172279957181944590323226027391732907535756185938242061601677512743896548319901662086477486315319117888208446182092924722202608737993599261767540641533717067336694771959476181941243804201457609299615191649878809124788907609948048062777190510157775158695449722124893161354204506977860492952421127456720863501134512372336230687410907179250843141359184747182864091387117383541809708410835017708101732122537554644847516673026885274914185448972808366859300896142067406544228241966980476217618695449374033532716804658284774219052008675687027608489949980369077829991815545235389651135888218067603831531641133663762295143798683847550278809543103095044153512036550648178925357358985971731996251600328348689501361672343899662211264527824733202612140522720407777187916219511262646425961871338151889515377487031271945591030462962349288516254347858126985580568052200402585115119575158916869714104064404917697891954000146709848129734433433340386433947953839750710316954602581973981533094595928290478839803639990194291153269102234985408508836404624819953991464840434640599286580600443812376729369536146492588800873200846397268123722140261302353257566980006990971743755915271966252208399788205488315157882531909673839675146931460995465514226007216722134499256060434054253336686471624837593049300407351400325597133932601406060094712632216707851138275590617257520851349437702724505338252075833111061029036460189681676913145771252595864585323792293080253067339203039900105067200278698972093925822533955786596738435028189317711246228095144488149088388802056161756732378919737526635227615142616132042323651035379209833840934884353005737037355840742650937922774369565197296781141790943346593752712162776788397843882188354599959591369365161431735602595510133218428482354654815681334357696151522664714704444848457999144024967068000830968138904270146289229600177079564535314541062796502391708912630078503284196878108572926936066354993834992449578083519919359337035939011450029476099303273693527164252079913824631069216030733802502819078404980892078709782732223039369575312242275091446177364873859043534568475896874055375821721080823349448410350475671649371734218345989857655803186160706962979893776901299395176985095593588845916934354392328230130245524655045194972278147521710805866313381932876933790621804273887773875998087194418786532516034471127181198414809704032993894931090948143502298087903344563092617839492872536135043410772267755288510931341149149228790230523695865869553249932250965110406227671763849793654362607627095755428674444056867391593770834528492070331043531710062981180250965035473957348280069449245055103806220664839645238784558833447686277327900158346489855312604632793057416403632004953250348454000962374647385917599274317771071439889609697451397201603928360063443238624133171044059588766757886431533794830376379242402604816274574056185725079816530363373722917780289425879068706113329833830930719826868615981654469483090730629549670433606198398986221733494321022287560111491031466624084391857301893652562467387351513595099272964090543798010885158108332531495205718371437810745905065754127756890321875388228591967348950739192179018834467805690454227422086856569110992905916156600306549153269864808353403516610528187638158643892927828018693971168801887348841987480053228755715434741932734720882161311710663973811371097321512480899351777265420880531787175748018572527864222126421175132316070335705695641998426764175942956871762649661038021318559856538497135778975684373943725821480943433191155926316575967472397487105962776921305550103933342495123932200891289010730999568713820458336016905868313152942378245085662658853038761741269476098237189808547447885273659559085693744107204224053540525820934127424637721127902289550694571165353948519231884332068559680878969750297773341650052992065978095544836694388099904440236375365641901631724786679292172765055143931051812446485274779101510465021970745721823994599576093572644808279145098962698722609663632183322777336639532313560833383766069708947329291647945558969560949489021623812162353556726764484692621818838684664985382843736139297857095143357418418863464369322965782708106005361331228469734164796959304017321312538916659417049042380653518152239149879129202488115126509058069806051753157407371951726063678208652173307036920105697665032995955097947737142081997283888634563435067272358247703411694853041562473651833308193887197738810567800744002473708723466181578125241704934173384407121385731510689343841651335046229604304644061181793803285578674517439494068948030257452337539433511310806166181250112993327451290881629830587522388167056433730683377286499038449468403234186597714197256835843451366042580549794959088744981857543919206551120545940003075739508908317183303732500117412040160709985094189952358009625104458323160465770748422521699892031303071784806833593253232548495624746043908094611581986439377237393188427078853745340220737700216139383813975167417069889134688410959398343328360293531532193817315780860431820900101636295991747204030765907495735559661599041947053536517001145620265863064990874671603881413586178211988554077143072016357504911289365809438568347634665985860303778297980866305042251408853811288884265330598798569823122037055936691773226492487698961222648382858369485510251150835402788757428876227699479434925129596917425472833796227938262574576759812896357812645355008339588249186086519069145454937784532655968496363762361066963832034282482014458482228703643344885526493922658080518936388945445393491086097247953278893113722740847898360296661704975519138431022903762549807172698003864450981319469155574314376244352106637016665299161487461312040966626469301146710502880390517768148169228706096955702306444182848413457472358839714942580654782838374202113431577645532236802316855624094294958613106573686462549307161201497983554038601215987112059242545629514798901417537205394488540312011634916913431703490888173790561087664986802383114241956584964934036327177619905723400755742180027016478873135505968690514950455095375711762851349363726908616012022969436101909709961107510548953746204863721905063237630786199381130708112347466118906090296082829249989916135005813106317731725724405587141503724478524499039415294124496398012160440373629466589209692941163866300015617169255156391790816261870431036643412410697899601928697093633439082021297952241303095663363439461946778410500686567077261875319215401125136011119880931806638618877815416734028378351157347355366539704303453316066149169621793053553834574804063982104557036321861537077759957143577181719013855121173505053725585512557712153234500650475292973280302108237399671878109501139814211108374083792482115086229499078611599803714838435257846001127195968512841961844844215571674160884679171404028083951227270125563064370929386572326748001374744801018771888299209355250130813983462402555678128078446599959246709866479110406260546864220112940898875906587104684928105477045001958736443728830441316284332310467932887799935752435629822184813125450983917535738198243260015395206116827552519252836305894786098156977715699789729975074179051177775151868406747222663114122119286118537828818644510375363050154326218359910381985691670908735579044928662961639528978827865694524594682800179323403187352303427144714508161645129032873794509685576370989406708098669606953068355058860802618483957166273327834968054628229305910183687417602057871804920004449380204586186447821811045438504346471078283346712152957634419196819765391770183933433469210547676642723421674247855183680861782479520950089434691473559438978962140549260647902608323227918618582167311798758233916663425922683160637943074091178266964673598719894180067430495777790253185840297647270927423498529895061347710833763126304863934303789463271901515379070310140524029237872485399451598561743285440766353215658440372922477873042449823435094834616768617864876923092139357643609181741415713800420346025754560098597446372950946782860536895190157812658183411978657460931989200323377596239929516697560622210368615904153501422985493743196247035036683164806878952665291730182519347984458873112661625422119670327239054131346145606508288391093334638818826579100195300984920491648155044478431174632572364926330635120383956346648825773601024503791906173534341014722951772234258534064968248735439690456304281405183447060344698660980199295085257018489612039046922757183595999587024169807460261113101570367764967929067313971245706550147856201237716649645992456006087911633326912350628987420638373101974507778001152494887797819508813676757201120585671028012878396655312732894781397000951800227241166100335388825898950563384391135656232215062925377495517477079894178969242764719765150848095554145478636955652889924354118403365330879635788720658260942761783277050341985623163433221698405259082504362475720782863103748056536918961680842698459636305253021035650779054695425437799792469637602396261026914891248474201009761657784146693385861612754147082000086278643339389599843377686451516620166998697915022911930991577281165127880809224727623916758217659579233577038743491742631403764106284184483543063718663807008579047054508932110295131972256908576958488836702645726796102521328251732915270439193763706833158681255181570174330133190815421350436763329751433400114146931689112385366313325266205617319354637363568290329358555909396176484044404785084964099461712910046710589363806909051804888696177337473282077155926192122767489917151900265405428183834088047247207508823932265172787237124584521768476919301283884904786817497341400877127158554187984121226343914661286657692614111866897099769406740723153958073235309310900912691616867314596642875293451723934450400965873373832980068254465642005533545823083976987262923172875753341245046695200737867727536299857229102592935984889697472697533790379450064884496099234414192040235669255412532740905279434987696048277561435636711056852599162597158887758103112621864171163222563548249444442440315756017559217026274274086464598576044571812567690684194090588316960795286298166996579944156495382596808515650834702432374810613723977505280135277896025206370605699763771736802757708038421518350543815328436587958219717800058942580520912986200935228792510555303857035020685402837683145629853418141248962503232887274622252190444537037946019601103646068515764009905355214168440464511933968367338989618683806586593145010407017441030204941742673166974485461351909875628174742262180792404874651744612222158123024644920448454690352546270450516793273925023061333996434451072607092005769459048591280064172992438043905023804882477262797544447088629248195046685914955013107478282228787653114246379014908691119421250672398097911236829763555479347783171530604842417211123863945110017634170140127280952923571982466984376539551757814809938213188918274814848659416761209374793413628070740228259115713900126923360801960797330001402380015879391768038204541290022452956007643164724538427867788975153169132837465725238783177426712823883910125806701187591670043856588244023698975447011134976308565534166168922414503251151714295992335814662223317823414705972313091443325454988191285930613888806127914849744607285285407155481211299641762768095049590882342659879614015751234843458339068288197081935668152159964465033843936564935017697286611552220628692468195399822518928410442701801854307230671224646273437319888675389306383148967584577341474425403577695468744710795875924366958248335516148288317289433068218090602815123905249941325651498760036714930305735473081957185235639781214781056097698819488690146630503133619917906860023263072691886788675605925029759718027160901689650794101227843332935555820627173169372888627243375503924518237315436074309655596302862412794800647403304553456752529950672674818375584641410716294719325990926831855178046382892594913364092556294696670182119312491773802683042855394924878822475641797259450078367157960400242514039713514800085381009640078617874146017018488571397787924012572935531354044773020632993657439190162497449699269695340015300037429527740112735816090532810915428820030260606609090254996674325881020829249151757973164296579255571153878346821357042340989852637857781826875998317591787361704994378270512047428328390970687294404790096810422780573010250455523571208433235698920127416327817233844293972323032059891961264860438197129792630618638755185798832580363167061798257760044236488732456050903472829407221612167976696581469198316689820434997782542041335792905159061940992400133095938075523234192094624404457466215930050181403686674843359158802221652918057228505242248053953994489366319342142872906274210729900980352194273360668158935273629636479246311809211499707089184193705102303597965844298360391788506737800322988540849397893693848639911549803070505652332706896201605578108898415913141399104363936135073612150069711336184572212034720959220092972960988593610979399342021138303175982928826084947296416920623821119822624993215347693222244334630843008684019321680604703014293614447724879482316575920884072757154529932841121816014701595745847129359590464522596092646450604854479344687623909724811494161470812583008234136625466705633228245981504729483479857952135815246138079224451916540637121481447217788564844415251336889277946528748417771136161817643434375301405025512306679354376709975638878638616307586956537357690908176333548826770986316772696588968697927540931376789299403330184161484153430665155276836288086128017056530176717967061498092094230890410263927603482947306210287665358925040921823803120376140981573873350804213682111788644653985919079143082451947531604785033980930929731860235733211054023598629826896590340355180304091214875103139698793134207139000236633433445450839971111909711396200243889750043558859270616733313998775109679757528440470100412011352514563132365640677516870190141939130011947653652318724445587353341028519036791514845211923208352710520105709127153461800858732737365796534813794384022456633148554733956447081260707630993903460319541912725094099490039169721207052736504766808288533134540145354420967251834415649584070220360152311978765581504628670440647918376255136430171394357098297763398746379392308725510642782126401189349839304584316829225501865717789929652427323925554655129653836728904776260612690831442574989428584969520264547917585816034668709714266052890208592448386891667668145414123428732893182979636568455011107792379180658139762349658146553099326742545179047918387196641127026346270153190368527448006165532644226473395144063989834959051814193904833320410951557597403569111042342417745359651173894237770284312586123116456273004220276604795476611279608405292880115784085519094187359732042897999472181059864401104844273141120817460324347139257729409543609503502192009030702972292333451544596699172528264865637818190961210974802403059099997307684413719097666260637579821920220228674835650867550923484665690429751954913413104731759700197340431919249798407871533530240449851735293630016185042002969991534137225003672412034217657629479375370189833669861853753014950875283789120537282292795869288920283740176459379453919638980507313691609540208905090556714768589002778263866945466118722409206726049934227521890135603889217469186862312101991698888945155575757869991946635752169204907996135285173359530633099281854749617923837357956605423627968273862464458644768505292382104345595970249139004823603914501218740610032281882157427573875562870428223938772614067252540527639413590441136331877154692664471066985592959230434448577764878541643986613017804886223971264299651385404412832226937637182601662566815343708556836966251996222524069114875480621004980545927380725077464911594214770499561568952422321079105806824121887104717940641787208121504155080124246729845594133523534111221155501049754058885924980540264078881764924035796754918033231691232069479258237004117207213220817864106978346008119259073375781823150613267580238183971961737069141888038751024362615646633624728906112572698097247741804810030579005464456484750514460011064608296515280790622134691679047796491000704943442917709922084344560096493755090777020574163923092507635235677527380168163434197932763250866672178696971250108556424913656542530886147500176311910310291887859482315256904497420102586813753319254406630414974991462918387197225793305001024748998114326630925415540809995912853573561654768767552915259745516798494172395319594329817519713575312780889401501767195473601186130685039669676541118192574791204380115974608840141945849888660112896116360104280428971424967498095187895975961588190850895978194818118991498153755381982896239825369327770676023005777744983770331204183816896561065331587987230965554531846715463424973988507233189012607785982598223845605276322294518371657729699556510722944590176838810198676333739953665820071462653276703879795204335432689622101051105455459011175612833473051336782413074378582797768542195605178887368204791773089680506600691221309604604284659085489373048012060690899118085808225690573274472320415700369546324987809203530454549400733439497040725433790850126400620519414124153986147652105315473791783917468268579727184349889372216626260292770947845445906094495908519096840173205544537785094568542809606809272506843760015497736602529830797653169044605595602818581635235694595116616132880236016180344920912500571793617726235108999397647903673795723203317505680589425400759430833631583773390741108721681620413720943303896769108159810450211104607997091205776113544764319889937281685331957635368203242192502819446275321898815179921986886753805019660311485706256626032180494980982688714432795222251055379787965871663112553845731146000001427571121383548032184750689580896055342686177704857805861561344623314335839840178785907088318261439229300399107142355443511560877639364582622178866463220286700352168383834745112085038588384024177705847263874970377574922815468608562386397866276303701288046758453572430115210684338999571898019185454046267077024089652998998063175746774242956961304635151166763124909357772414044771042930630262228733734645764877116917388443938137503856125978013854891709254060388365764191929087103648604421596981498792339639842043019297252440061681260222058865560342245267328269398713680380527900820375045499060107763553392764313679209014936558360158218960033184006660598599490970933273679880266068981087960465605866705038903717701383853713406330525290995901271022934008169599147222574206783962111814207584099810451840258378979909704396916966122767293943745601627271349986675320584852577346968951201044017955720983719443000479300477254314023187317978235426872482532303698538973060623127262643362289310940733501274321608670165916950021915681246839667870529478191080700371671931515016292197835901265442893682078322936648235440036600263516380276412535044328072727364803886280227877379032114004314759250428964112708111376701400460619335005361533708492122260514175011354953838432550841452584142939412166306978097870246063620763411557177652739939504388349529685876117792223504752420702542245770579133501888776191188452334453870297280100951104109834942234093204961728229596104242430971260918457731792839991097032862258050602043340839964988643134258004347257346120133184059914792855171746611669936585607228829371740038739272638764930276066473958276921905451131869848041882039387789189070893835192590915356794646203680593551932601676184148224930851636641633020836840271115823519678116944002180862167438278373520100207515439880351592862228938301192483650649934415130392988121334809012841263809631848276519263645344582775912173798636099959288636058595590689974462370922048478144426243708743850269958726167497212887214584172817315401557295294159175940995114343864066583193329129254025358271960647818436386617358925433647530984415769343044840781221093146450762727790565072995707273729815909050113950291318545490807728617961315332451150897915096118613810680553959183417952339158131012772174038897994078956172914471620181891099871554394872324286236186657434158285408778525980720434119011485753786020108489260392210709730290263331605161602967729442838501742396521195823629450662782504173103449552942180271311005087169462055746542267278962886679672342533987254311220272622266642419684702652227098925492208019542062657915072941183064962858970660740455763065628194397218438494175517069356548044639282932223624445953813180515124082458451529744184936120765454032825454124274877422713737666168809176526023003037749894882084614015665288794144490629211093150822678911769647502361282615020443061810488248513504903703608737031896425513595966858906815801825814432543614216004354250248990992701268965064312948120385095138298022665731435392444088701546744826805674544682398227344906493869676231131580483378707711860948332662263387392319592235298988013797816469652175744669290236803144381023366381587422247058442594533124633466994540209070879148954900286590666325343820467349544801900234570763407877428913411974977831061482243018844722417446490169676383301408474756888990158426400688351871541759273867690151164403803868469379786120700667748131233972535514532487637630090147534740233279187908711314081911263973882325927402702668574113961787544849430737466455558195516717684140104368280472597593248804718115740899335367158814819609366775190619104885743638060142709398143786290130379716040171667444842623627559149481394176815429200194341686021457537486043527132287377450469808093507472476601068637359600989929797724685993377430419184576814604126711632041201658152582796044109553225592022297891143401863707966573251044839538885206294557894751737721241487697517469608405043969514827633433510189730685808201817368299409148910661741016778396318709714906309068404958258677749850623522218434252506277722162479665619856983907355385544353059093713809874208806654637724446014589944060649898511743713354192169098269091043479067356132528516305233189140077237066976585175329495009343015274557434343360172124252748214053175715593075923893639744368873551587705465789117042033435870801426556707883034916670465320019343185637712353650008062336879995374305940671981656739569608507569600035338553804763344197190226113640204635804262976464466796497952409245593644862382802028510554007132920079986638077971745447826743551782948116289702756023580437712813797831770343433008082250362127020599749844537780999016560946498471435656991775440317709679313692427993632382182973998983197675174841107741921715743955995653320253492307621580932271112911796304098258869568004820028662898273332256234686637555673583260077455515718111585924309519619228754037560224697109435337428603217802444153317808814595441392538416891168716558686561130112129571962611347023052620768772135425084150940295734098205471038049345064426353434380964401593832733149270257369101955639597644055068701367405158463614185951129037919811113284818066891008890249324964414414892830525483904862409885488600948326590822085687079136774833910020287141232331001386681829019072489852370061671775467318881280218677767687582191374361210428358126376332816447186485585597108471434557386633365855361360373143867168762866946362140848345739699638093008639901356760579387076844803611691611316327210866905176593250576572370345073751395024821618616916227726843867465117920370139192943993604566485459107785605121815978467475899830618161256260421037347628696877455111265312986268094862279380906746089789043997285554881476496393076077226239681979426614458497983759649637795140353756638215986384719657986297594138535029142889892561599534957479181912718202029365485226405208181931567817808633897063832040705425898884289695594378509165444425664680135630175059495313324361833205949464726731162209411252101866942980289228112648763252002101823702864051105182754888557149597063121055203498912669828950968007090027296347431841285362433143511912516240750382904190896747398302171904035563719064171319827425384021908406351649985518673886566254006360994890595740604920093684749388196857328186637991023876793008282281867344523524226667397947454178513974138094018114254071523553856631699441515497295594242910442240875244629005505799485363570105876386271908908871426137457013559963828166257870389490325905638867840818152872167693900085396046752574195462740323903220660510325005820216713792639505815265043233386231069474510672305614122571215202658898147367908246716840375100449301577555347604244400936652580132209996430737081461268937358525961600912380768642241356239536824487612928288227140207597552925413908499385166761688786522406405853137303439088717334675990619424348884796369525664194661535446650107913985156284544358461119254957953222934211880878737495213819553899583744539764212579561622897949525134666256986148881921135101245877159971212546382802273937884242730533832798128503495896095810473299761260705235036319733750955426856794487098969494470687073141985157995816455260368815044385418247612616869696615178181332943629251857950764170241410410098667913700418320194757517430745003359972470602759261145381199655784794998614604287398777169798585847650779661205755638947925141014970706577566031423949601773724281312811553067457028074492699401276871961207142028870915996574025675356813799656638861563695442754239712699237799651461986902322091695623766150700763076265203268951113681524761009297398024295906494797067092736667815723592281777890649627830888480808778157992473676215850444503261227153478023267556494279455921361277889247298752324882061730708060690942096835381423429268188521034030950428565394364443145770303597605338560323035491658923668141612910249337956735677452108565986724158362188161875313662591507655542185451566063225830155554140545623557526440286893681978893816354141568549535954811296518290615648876164544921532399354297580876178900903888272748257608154164522629400332802064678104013182622228861339269182576176364481046027203208696991342034570362216277656537549499056920720004229717713635215746392983810429422966685503348600879298499801681247876834229972631852620435213922544524932876222849007209228370841927120735308223930227461940151115468847876519529834522299712759572001889933033968966116024334126344062513115192651051325964772094660306016713028253476329731740117649706293201099241787112837551851764493704922840017082362977859551927748985105965629138346169193232098722187045461028634601114401702872055376233788870512644792623521915667257173356873236114685576834187920460623955753107091051980327145339248765804005170460964152757459181043830685063839400419534165383882369777024862191828878691823599548726983598982573153474684635347973815061676534826004370962375008073452244552091460407162661127179427213033649284896023692296485533110640588078337199869496856467737125782595356241352836332243051739522014022664688373269944295398460719017651750401523840771409101530806354177010694369178884140147884368097656364686983458400861948353017180119212926647832716775144940814975713122132345513175277143771991745657365017863628568010666157781364412081147160086114174612450893969293781664193290974891328566900968446430701988551733869411968608213414171972580375509609515071493665613330172999986321714761795114645076504011662261884998901364160989382219362182968576906690428420437629154142296771496915724270119102958742562501615126377353598345431195607190952050342505442273365048261891945734272163211163325958283148770726594944197681768716685186674273006060238330134671719241866409260742387964712320715177922690990911504490346430603605298437813723744849121096149371073498855710998909128244401959187467158293500236540978077684369953225282503320370091647994892174517548483569549494483066609445438081993113758456159261300215361555103618910748605348623504953914517327175002094278797219573484035131185766388446830466993513884775069361539373370008317535432735522702794496445416481490106066549262155043919035858359192097997340751673856522524003210731022597644906096018700713477833494228571272122962968062789387569559464880573138967001510358726228309105141875526816630883210167105303464738519290810902541510848492563802281592273406742166521392350559680111830423313983468734122070669299576841196489045638174586213182665777261961127883959697831982771457009687213191625966548419706603566912355511452456289502469958386766348661696568441658459648822485717842645522340283521136149278505549470818827613959950723699702698245934854981434790830040808075760002862322493955843749201834891027662250056033165260460820874691316728652369625124330716842591592149524080232800575886666164683843399758828337193014583707299381133126231082190251454619667579900321132069401809344305258929734405299805477845779615086341009486732376422424816532383161805409256735202203000752762965812700691657118269192223214598399597369952699353525122896362933230594234559130788327389331729807669942787443913681129483643386855555242854183038108414157182810698893051595670735801213742124707333183605480263807734060607944629690978145634042315700924650316570562262995140784629333172626557043195461287388967785472799920332561750362910424456092499555347364657832776324433271193083337239010109138275717815505391448358529788913141412930392963020059304690184364939845890593913089131458697610638783099410414857868542898489114356968275832169842712885722139503388146851036222506806001717187706899793591848332976746823833811732520386135496818997859639802550304790342646899265725155240180581218061459002968283157915312791935272573566057533794239300877385129790166887274972986717660864523295716098706718087664447237791952787100266682658208388989125767752712198803806069390253157103265179133631880732141927943202805908274922967001831466253413172719396303219826867460973126585878157503012911415797882680582696651195982132032942930672324420257577553622141783646308559391745463328390201717014317210733504292341631489872017208083834949038053980044267521941343742090226933982968400535560371689150249253041351327763532816176136600265861383659728634230148026560236623888935986488658581994195430664454558962472439117049193341014708663948021703633427046840663103588812849185150241304401423313840268848019117890844525091144861936284548124490615863631333355400355545020740536410521816118789245756999443229129931398081765806823837824960285607696827015761654946641645900808799976065782217046839885449172609728038844399179700193405994806193889727115148758575933550309150724420251836363062552757358017027920043123343233527090603469034965183055915084261737904340845481142416534527763550367229667299889106650592536203277088049601915827268601945033605258952749335032265321861405886570597100820477382182660209850304959104500329974850649110408319072770617411113670586383546500074857834678841891207863716491159334426880389775034910886698777821826684796514898976939027951209670534669757088079485871468355389325094784884064021952899204050958589236067877076942540779575473755382438068823804235692640778083406575316886847609739023742053366220162142966298593323127292340806337623402192280690360439371895290146326121670563810188098048568013845956664525421120830807190001176976927999588779295237932664472953716362681590855101736336529116723448637072356433293418216552421840869663365441457919119620845438505855919538833277583408011820389251604376735992898255581871046208838395936164811379958000004598662822790059996897047685602892028607156019055764289665062420709523332215237653574027648458590456964439339626858981926896971166518709243945128798665019402526167360881559306293051800691501684556932348693214708265335811657977889979375433597924446527707177571288460255282789714084902991085749230578396854914042982559441916547293738710930649678934713870738773489521337220999146564830576192877499619277905643027252489925471595750123243316007672641321056501755314538055142896053745929250077274588145354358934672127012013729308781019440277889028931362905102164900351684772839298430333563618231846099069203773022586482103744461406130210198760132416351419763720783405281025770027441806988428406012235958311360138544329768044915028618599155681886154887104156838964788929070910002891309742825886277100895702891075225169943988475191080375941219024771573604742723089497709579306574666759234064458677298216409407933553775213254275457119969376599195865965537685168515651126303823681214148608793235912187562821972390830301590543483531449403303381214184712679788330476926072407931792054005547116982785226513729341590984002557736412714352968216220329852299881086764156694799996616062147528146007411453791094836069406340414078150969274800468558045627068123380256232715027784801141307639862831613533424396823485083365765331314455523176209460124753613004165800696121543216187815786643514734808052783886553591420188163495189454771760447718484084355646248381875723648096251837011897663109591958685334629484789977940509052713739883960797941109375876621639142278091851605804244036062179541815433535459735415497192744133538071027834615755376613224785785953816798025002349440889026725170092152130156289573424456428355520322945336821227950708551331649643147288670113927347994549814186701495309071841372519419155525499158557728444453341910147932951399363134305847288655901691161749532537875740064738286683485922183339860690657318705420222522130455399242509846970029364745643382251538342920595684282259531683737202502336529105819339843223484000742951903904738314600620728782347450396911366972666355605382678986493093757286684970855865445712435663536571081865323814324842558483970600262772691567221931558104022194069206515849792357903779416599718092761248597339978972343916845890335633827350460770458756060679330057640941018612148121983125005093574433350944393042914083264364110076082776751337208170853082190048321028454039883535494857907039816371516023828250666555698970000993130348029738702368809942089159061283065301654366605614994861915431556712170417041638946118941268022248320514565083096310399304527486779157485434039645580067159654118212721707123715758142324686033835786673912452067577910458368576926262894406072001115640753924467535599546440489451053646594098788969978181194695109133242774693817403916317115764415145261897270773526340701142348545315523074160609792828191578306172974820462826456108777059349559655899481632921930653725396834775556046053651071313122458344443915475263429931059768784985759618052710484948769138910987640212523214199917504758740918531547498253981168090577381183551163310848245076637147665700733442346133758217236423578151352108681033442225076143847777175916838703831348618914786326539012519028011133374013945035862122035816458397769353180353232380382582342303337058904976547347672007072465865471398511312701328853303825504099925378813939803858437797602251204316801767257848543203740224972330539534837592862973375018277072143627313148010054458515576731342282720038192325238166053626573179253337470866240053298748944448909235837924204678918944962818408056733669554043262566095605687024543640560269446237637963562162428047029504129545404376473763983666081795500131427163800383924519374924636000962694751271073584633193112720299442809164962908868263772464521366144159384500403975930592840382278322332330863063800522736098977567212890490781558212228374237739723022116507680204415346282755834881640647942016460415086795338869414828001218127305134257491471826718747090893282095364090901166442215211426085844165346853122052643846271106124382808461170852033546225642022751580059687357985673397275593291983392585350744862948565435958587804930916252957913761489701877375980982012825326857782074666338799778413923387724795914114468088327121301207330417978542036145283040409090155528639987153799635172196155037539766780320494087625160427291394887574151815296237214037782673442047464755047526891566579749884292400347449109813940607412853891292765977160887085590283107196135868708387254524645473800801839348723884876825132673707418529172383220507962034197103217794244387396883028426144827361799644794411534742225601330814295180190247295821261046273698785569282453782182622565099385606319022898851367968002606526791103979103179443528993836941345598672154127633770157192094892261104423925590467694286748316913939700952185369267859136176790550225861171124186453216337078620743255088062601272795422742428043700599561316762533749043753860995628906925440552777780547634509610200831104057963177982218005134406296296402690992411563285880774551080891352649125398846732622896081765785714281505709737986999769399027531477000353942507426416514923487051068351497919957927366135883340945195878281566313038463969188061994872117570490127358150491581391574524018167411490453821058679658872848042187977297152067292837048812695655981672725006205465036094148948851110316011552827835502973006910246799261846460222050545809696062921245840805141385370507804434326306328603570284130470365829238009898525540014273357961344084937817076230153529913994985420022676276640932572360020414514385264359085358025039523266106679654755314905746182397721872354571664955825220581859863974425082967421628681940602995161848424455412683101264405663128235699766933842038201891259072964986615868459923389134594481719333626115956983343354543391265171855724931322299163718260873750694959669211625039630415282617464194422005967854077010168820613310109571949462306014005975384226394135032699782150639035199526470133651805163234307055746273082829079278620712298705377217041052007155808351339854927412652020282356153557593982553550317263514753038047285143612676990185838661315746626515103731256369124707848430971633534298398742537587803939467142366835312819496176054370367353542908178479147202479894949283465065362736992710725846160867897972535687473541973240259571211728625086193714793228562657387128941395443255431230105895562044993192595630116003635906763755254560917763138223172316063818874272591257918532066394834454410740422811229642891085508521035725858147049251247754038520481757757293547443164287780244279632276649734395803674282893099745262647332240972937905777773705131861103418484791500319172014756336635464286148784848874939961912819911018141321161784316418038174429767191634404732058925426550665711852631409358259591355505363212114383794629818403054363011674064973519784250937574633823823458982321803800866310968303784584906946436008339686637055459769555090252236138626945661083344552506936518081281350724525265442779083024717726809526431594978908996005229190893319394831362133852381664892077911217498400251394690219562453731013750795955055768430362149485331342923416327659021509132199904452754671464938422806146475374931060089240276906747006835778890679123252709356367200859311767194867456101446446718447510003534219191776728861510833660652224988696014521148798297934347388733751536329739256048949249085053475575584502176772757552795499645289433273545570247332324327996958360581617107787125718399157020869437586974386129716795122198417299351208412460782583007132565248113593553740544006717609361660057111038092550375648951855671306927383462121511547738240291271946712244702990088506606811069691144465778930076804830323889475304831374394254130348596058965146026189720532110379905062725100824612439709469253109525798264452103721971765131121117573331583554931798650842083854497638827152963364299353846353245163330213173725673863246321939334687762662327146019786835566529740119633590430892069166300174894211744029408402612901964672270556067976477416365243915611823603943424969626619365562522783775222850873227882214428433016897323789962215008241721250230636377683994284270107324289958518644991459288604098199065977912210085913358139150491984217870249619915296281472447294583580874295188034502571944972290998297356796850905701005493614047069245968359257009939980017305763303159023632984995553659022273273805711791345883862628942002070269827297930300435028898364397318594940485711511767368359707997505683922281025910261204063534785716482319338833753247562800172542352818413851358574373428201085522487708539640409712745853744963858439941190329069584539302696886279811285261458790508017240573502127354372084461631569060098477848622261752313759152304691337066412135226706939316342715928178380987035555121706298515602122087600747082686961932159240921188551248472014267539196271716495667526991481886377149426571885694610097115308510101412554676715665614529969344411465581165783203765962739432204041898630544637926783967343522637161087238796469222694567296324401534717181620261136349644227143791992898301490525712216410640298438132317798695436271968501997595223317449003084856193157803391224842508552874582498592586381977212440800534170172255260192351038453846472659150024152247913363076625220925751011053815036227609119658694011369137036363794456752464686743751668896653225585850533932728632872823523050265702838071526540431060237358660792037736447723908991376497201343707626604660684981760380506714871843886245271458780432167914983865907811433596995146514220607474271164135727977283238354273886341633282376466095936197467157570300118500075462381333861945484858271270429147989243694339278160441754615381157176967024872831156453041281737084381811412484225288397166771870978840972295328245819256357668256207255647670324635418928782871825580216109997515165741867357124513104087435773209805787164709924913486394149168415434725798447368843877298576135725238109311805094169271415170311995174106880003604147192509000538193261245566694405460506388530533062978040323249221386181531442967698379252001010255818392642392219615759884647699420457227647602694224511165302970476788500235840723736266509623062505361747679880105467148667913394192807008005543852566119244100587300577194525511688460530553103491198570780148979848133557439453748295664748525092803655927528533855283878285664804379913781200937462064604393290185846604576701161272247811739675574952487451907421931277974128900116615389284230716374108572915511979183577746039126105814968706151849877118281282968609019797254710375081226134768587398055640730179731638307587738591941120645393769890956982002354509303526616451830506066128207299164107670902300954190962655639894064685404116134944876599724769514132634283102354392585816298169296631044559956369716892332801309644454822236997108216127493340322143766936284938226857220581436022127975720547026374820767794067438693443146354469631026291826118833407343735188304443611609695372283000572382491739936407483589748138785613955735410219656130496199424546372834847474448414744716066544407132691457648640668437163798893164448940057205608692761377047326686544245937340841636196536768435103050920067848080661818840090811942649444245517077626567164942770616004701843819612159610086252204223903970462924242933633571312424425869438426991445646472343639095321471663978663702640109491887429736547447968152317419118502010964153066654228478720026259861910322284928699879835126167969448580185236353988250950437570994939754152882987605337967411631836294080840302284204663663046639366412601832786337160647676991183663591192674526776580185291233930861491906114960330414180853564016416848978891913430764781052438369534224599236978096794247561331139137509846586699813248187139278598115711531175228342085890113083977183928663121847125397735832334832883357724918590537319304883610178421137283555563356248475817075522787343358945333730618678751800153305614345440828063491608758621332118761929608230188100071041434297227867648010415200800084708244884456597538622043995269428960936072901839892662660807630594035194724854451440828732859623909975121783128879293416600288086012596334747208810122012773533613437010768386384431828849010551227627445579783676738627744600877789008637832649041513044106413330419597746036073333038930926227358066012593679058339475712273670828753931007622503001474180503728357039147569590394127344049744940814698650451814044278642839759572362687631813748490856534189457946108408433520219388445955386004098078274016424314022152912611881135041878260118703379696686284552776112521290871416735257200520519634863245113763586764512708680406284199161552673038837413942287638650325941614917606546310130454793250066628169110100760327424926947102274213218518854858118863925023899398864401608258885094819673663012482048217578701703953250251777881951286670788243824420492426855689833777488927414325316615271919148282368850759973898843035572095356788992637031495895080759632690325451444249339917549470937624572747758150993292873871713555479235453668911392368036259643386875796878092394821572092060530726031304856296575728966842560979098397928992953025072653844661454645459619764159760643900070516817248894211158635710333779458176237297892613683953970166625997939747795773229969907764553895742865643040867789843815418747474218262900796321126243380858493606603760059975834005719982972665577046827668191074283033062681039024883901375310875636149545260121979772457863491174909777289033215756576065219752369422381644378938731457542174588436539682550533097842474382581302865726861341868442462784627086253321449809917808504838648934076317726481041597174190319026749060776268063592406150225394214277617303156776587738623137873449558049230199547134183762951998380975482250251575608362565500848260389917790368191243818479873044974443405580765489458295477968191390474214057217941926259711451978134406471236383015993113029021179650460662600317254793343567925966192970289625418426171185806373964803228203804659076786948947600302899476529124155445663109076912856058725026441306906661136671797741536049365033921141149053382011684791515483489594645113931379505441845696875466626964401771263763046112701613707728143268408644847533094492145491332653251070641806851861816315447789741661516799206103439219684712483992825824885877980758114656448889505779066116714684883943074142196256867220806706581959939480717705043897521279576520493028016846482816065849557022448312642414501148135285041495217085233130221549276637391146982839417056754490108829267938850491318727765569983476348464988815855062751460447881071329007135240404824624400593977861417976342231093449341412939910436049624415262294112918907130300689467788373391776560653287795290125875308648614821664454130904135558893204394691540362564010998394950645949905005503571779516061171934725384514235038807887636510462412238881750716862554122874745768528082572613374574497735677945571732289952455997179201209575957406870592267971772487261646871453345840007430601301626860207038410035109118276847923070939309902904687290323520317577241345210410442546640276305670810450035402207810788712892714024772366042006470177391369962019218765326589726422289026331154028993986446257290571631416270721547804949174429703163095180676396828345169471348709977239177348928755267490926880165802751444938449822713330489276775058779641195708616150588345004237952132431119258055934226907281049475317395284459108882037025002023169662819097243474768930919632571571940778780981007798591228810005724901455990312416408718844212518779131810772824994495679882214376697500524420439518560631614425521557468012314527466009979178066294841981864610903893855457050275075851941382375010206657857485491924604535697534126454402080367602639615318034224238567766472647611522468170838111060267075439742822103319001641683170529449449731266133828912048941472407423366942471063559623829399296503985167350422390680492938769417931790860576585755231675007277851023147175753413026957179783409434429923364877588338789847696092326241874503118730870781376566378129666297816835763392410560371146835517381169157087551975274552248847033830639678542462598064470399927826866013189181493281735859179414374470207359249157940884360219039736597663595368904642569654398006511868502998782626009616308660924199082100976879540399380698852445146059889518520835087163836418363555266243414382985747336648560232545295532988984632331298127274152882482364772354872552031321959906792743639024103600748496749379984629691732158689413259238959078966156293893096356660108094546353606689644068856172630964230154854300944908941230398428805125509400276891770498586024723629130906814073701901584258377524398091326704335342194752784790488230356207618244486290122706841858365909056563783692091259427483979145541222369335766507237316054567831737094530384330771605558825827526891054615103734487134275168920387803789218240589111959642436893470094478088461664116512152728931733467609219357268754694278158690847752193740749648952102852164640614405151488057531465019997287219233003474444362662510097548656694799223287686811975640438843318709735381503771130424256580101377564687118072582965642548934847584608750934544257843782365067567559879023621147622511320044353409868301077505109722673417766157601551799967267319717216320613460917796950381878213696621742431902810518930971101113577159082545242510585953331723323848148200075319963523222953467987775590844175517899898695354303368740744861249750503058985407301041805993507851828826119301877598200470988798352350691166096261080423976384623489128060178355939250824870009826448779164242954323292944570862359468747734438612057200896364224128753201083653217924287363643705945749501673422693877953384522151866842002833347038814766936636704551743195520159479825506120440730201987077018390101086764337300848061988998103625849337029875576274394097986562775498655283714400515843945563963752979847781291349680706418497052894768171282405368445829705746987254484998056704618870440050864060267878213088064897676679553122700473897264620564440491158417626225397702970236319715798299784053084075991022620161662258606440947694933695562116055558227264770584316508177348767500634921377432423549933023115573537385871226038506027506317415936083073884956813768642381368975869501988080332743058391537516154763837496419675859184019902139659063795143830668742736817110983983707763040009080527793041156711911286342594789335856221689852496763883308152949645097444681178083754136057580580290859653105134158751019274192689349924780064000972199584086477829401495461701903234492787785766955963394478158340426041602651644094483441622873925103503529434240953058335197827026923914475505982937971570169860298590703902326566489655097182325356852749745639731975948801328634495798120460887308495269580047167331716851582486223588560931209608127558651675111425822412615764729291420021401312460907487636706252971318343401104165821647213324606466333000310208584130329588966169753130498415860481294771729611792647949123608388026979208265970516776324806201699260459732904428170713356436026258781849841159783993462240895432611303077158080234166662911865055907583512373269619136866662308108913033747387875427545708811036581327855510638409578685563832208453747828099716183228049262962277151774212406315452100018509873074451390239583894938958186622325698009841862456616346192806470846565579931341991003356222954915407097995565188534335357872298377739955594978268565607775886822801590511534660589130730718640266630494806289210875936724908451156509971068482264857590351620111054368285882962379297703338317523657291800578855726989857622032136182559505083098421616057010250328133260990413820095619899529321919935644294481239190123420934989168924413987212145347813890646077898893616088415843227475069576279839190885643704710986731321913538550019222842829542179881279654858503827042769795521638312089419345065320458676651744201460620985448946248520086775747230350743800117744063367245118725828251847589472483625439816439627434713321576099247156664939036779120063131083999032794860091854744888810705479810362021380124784703168327875376023154179409067997443834655527424182753897595311733611168525972890170505742827319285184485820314990403942982800689451519830075222610949998974616101860376357008287823378422068092552062478070270081864888679657420875854350798532365655910642903824254198389870586910711050696413259666084074634239382476601222465419681639754882353723291319089341451764669903243256964061312636631661086155849391795271213556378280999881111315636863825047392507499208908952431618890883642969593522449274917876734119588084818256497182354261065329453315693290635721105163319896937166665175556042795695103558907292220985547963616945892529184772781131945353136781802947446541357088853004783328930496681073027351793766665303201709121039322842579591006805860777542629533188742796768928468564738963312784684827720242712890423788616207069938228166882515005683271474804761748636105846339086969109205146569639263470572507189880454905041711738069314790601664325534340592544232503125697422247414835895788814938102894196841588240899548371317938657170034521435309029667687575030865303773855071117542600612499731244751469460250383095109886239460989243170958496151043294000529905218260624549687250161283523622672001799147764576277057636294059984125486611024380140909391815513809039080477074377833681280305685252240296114415411810520568442439309073150567337594102998611002151214831795039259368622526885640832259731265269496703244464171945874705085542907987034093402009435785679733776293746515511325149142778443822769681529488950616283392913716030284247057551935135150711327214014281195734277233311231959310375120221983950984065888245480152048840037611938651951981766426572456946697964869801611361256559475258281329194732012304866904404511806882897628865450473295300002477200041172380865938000928712804913020172444668359810102556173791516686179690922325897800985321787308032637580168031380436445969275006948308400376621817558807980907794614172055476471547832100097427153666857012339348873013759983405121141256354407363383201619024083841134911716688190670144527629085609893189120923640289542158517636465681792127379364513075979942730575744670589306729467708124757570073523404604413688701372863062443960992290690499283093038285610157816685122090382993239618951019556291117725384921252553544745189475166874153015146169504967604570066564701305792860145518822095032444968838729667184802067905005212100975106162563971169574969921269444137830836281594530892874895880062194224343528142320363812546762096426698703985634006034100357294224754734676486544192829234984980785973160098734188974201925120660163923525340103242060746653422302920161061703339732118260901500167118815276608624180223317414607636817250930109331991000618541374110612837332829317187596777680330469698684204760051243458513021857296371832832204168317839743192191482890618799582520061233021081113645712644028944095325872199039906369191278730046428529279861667022471901185507915418195825389439479756394903887599648098893389754815971963067551745812339701766619499268273162996067076575870651996630985059577940586382484786227562414414276196110542116530283895374460546388543340550744840750812358408714980580974277534132911718637174193818066454652251010617164221679544378330581475397444551181123058863045263651432186889542058644704432874633487787202228779428342749125601448557079031190811182521707857507147080595507611491850750286720166709464818640794733341640211305155666164029990941195185681188025012145015965126309964771246616651093742121054154402751766353274755167936710102324968937759793383822837390422884930554208098258651041048823730776737538765607073093138304471619981510805143676333420563040144189539664762796601116020765873592804085554240704888562294763118599725660132479009718188569804534282363406915523265475178592182841791193018616277092823619635462924061061326884238610713705417025931470625837374716029417696619615282489254448105974285226341383381080621056771488514928414330207648073818358358221401384960316074400417208349389745793065811527517054368914043012098845126517778575678888991041480409216495482596051003551460635454194462069519262189217854937934287810834740353514564575322767599811302623208114594826286490044610982503575727005334415836580906317191488822378573516409311085114248599460125071745612668643966063278407190762909093676131049480493921209699352980560901507767737379765824124696214145376029162765087078461432845283533759668221614507155411208498659255129399931830919880038917225905811429877752071145681250126233487131101738204504866504528601767327858825230143422095268202918988910326234297969610054325118712982275640539370087431452763602271358125399172663590236529047514818360528995931796842822381052069450259215937415406053241486108239724796252100332790431759692299353632419017314175346695786072527295557481150261284934935964652657631635372896224964973237400696547051327574062490683374194981019359607033941972265798474938865466266987803479674721892041649259887443843142937973195067777092819517704939163732647871467219887097391334487237662082112021946567611043195745247256518575135387083661338649164435655138581928031459663112755968833339783083913592866721588129580254110536728220390697422115350689380018301763539676962453528145467146268834494425856756445716659925394056074662991806504793140480052358091515017298859569980672597603587331650106257838453501762119100859285811123398507328455735911133749413324879495172661711412225219488267382405725883863285050011094510123896685721565174496439905355590980599866813066068930942105651898555254664071794100855833233004302809960238381568803445799992606985500315275723338385220575779567207501721283283262892441446588552189527140096981612921108161028525579663509920386677752301823993600318703929813775159757690107946988239512940749584331246411752185188244106137363218013941190489412258951609874828807833636277814912297275744503680269588685509388000927097114206155769870243178946949425169733941595395936488379854201910291428182727234130159572825213997557996286120960173455272761152639763926982825479553876811345434259773849944294359477405353650425646907000371655449681881708360240817503372276440521033536137835993949338758067899622511220337061626625335201119989867282117409789316780578888734917441946142095593761154099463392237051599388426005346535748250534567082618794206785324881878098153542301057250997965673003243470908645322325957452527661460415345713212023813682803430892574056047468157188887532262379006050123587323482544472641047751835600626386264941071445396770502017634772427770942532959067153531461174532638885473236888310870440026931499423982841943919830861796753843728280448331439854496812189184081593795446077969202628664881901317859240688417142886623249282545678882101790771654893963760078195142577443662490560680502556263143668103899517035331961815328741071449035818843014388440164354314154847440391016183223957533130930225745880295271995090113932476135722883619089558417552135727090194317873482218013806209275529411764913273719248166254646043847845118827428525945400639107799692185030210932494073059256554743853454509117212240024848799967266694376748343927068636846520999879668271376375961046299058151671003762018390543990270160952733547059325354813201153874641383482309283679688342823472280073263752553155333254155056927367374459007938679030638815152696544509835569823115348321870905286951945312397550291538342021009590177271339378994232024436719015063172588936592221724880476055558940986677105983929216493300941640035117591682820389840936687751516546018989230119541243434423730743277817385349058162856548259213611769003368639628966801188241306079601344921087585575434400734773702807655621896778797516159265485382344061355718424767861514653217116315135332255322937466637115206807087175614265463065934862913330606406016801480359773410960911873073626181293803359491980659230535754458802999110463285389312792871633896462142892069726438699203622428323562025362293845495418026156089997458224835789640411130208917240421795177974413635867550984844989335672372255500159937948134627539580983724867364120138322110975752575705926468566372890862308776554233008840820277987229918353653502891525768313098193270389631871942935503020962031747953453453828589783846789900862594501296609524839128072945970700397471578850148000611911730673387758405032203423853170188549133915437568059618947418056071124313614188338862446576134299990441743389737238216196107090297184796961446370333874178954067750487769746342427500272354782800441034996247653210318145649053185631751920956144336897609419019610331960270580247091803706437877258230174378928984509141937621032861230044806387386659980642139731992970341648580781597494260339532773847540799567228633258010887382411092563173738910759336332694575685614384674579645182447114550503451972470525569896469511879398577582045325060012672124757061481335775492202651919306857123735380831454507692279144884114286878704638746208204346857928552940875838083351540931288228052152304137278771404389565050010556245721700131974559711258196833207605403242531911661961235194724714014851261095225652259060360265358887635485378891258769449868425781222794042008190723287666105907810620752736489540978222014519144634350323763783544471392190965760865276006654017026904213331456474956404639917791148549396195263801349376482481567679583484162800751776488295263161773719474533592315142246309292731524559963015522170126284798735913875967002868200895007391074351617205516018196236198992814439537356336976224242421730206012925385789622371250238445890161587329544376428220332594471280239241432668971837691030409690779262209515519261683591068261875192138721936521706306984969673859656187701573566047944460196816909446952818342287023988931662487616578984433689789965283859273039333184378865447847012175426145776174854382596772040644479407406976072821765585645071003897899312016501952689214858084361132755008427952948761796929516777186726015072950910295639417922015781039060385333895379888608273830375308520973709926244741541494787964921785836528711415704009533239367872104796782770416232274432265487201995934950233836839671919164891557897186789536797661400031298973776403476644404777946946118910399480239514427600606500458511059666014095309651401776432766307724249615908843265716721578684982792554253888228395217086728162725795452268825840410758170739889155821435854025552716860382263002274366270436701675129147860829356511803508077402609815886147638541655162030805607563867374276340158499263146708090933604715504599943165305211218673077294189691595391467671036242163582382226057561268717904884136410140538617677153723406611269376842527839419929369871569517813549793400947355919439894332614260565413350259743189094464378061100686235545794863406368214684056696887159803354943479646988476320036841387279560042489010635833866881859726689960465180003030260924963427216642260002940249946894844610374246830971603549722786805683654594172385533881590659695663934624820772408149584068816371392277496369197822279453119867826825010243495749682996359414662283072958691468478839305470930257437558895483682146953160082815581399953953862446837380428948554951204366545506305868083293032683149511647009048695835852154469557192224125105814967723277212113747106820687722252310457714152503238684889878489612699029354353937467335281191139299665187818623985323244419844248148284248288833578028091487815743877742837460630526146030100428406478034311716316625492061765969742098405674414358814463611365672867562633001300153886938418937043194766687573092191179408807014608880652473862858452274996100486799390925927292488051981706222151619274836144983509410524087055688428685520613185541315307746078870014311323867376896001741267239012454826257241215636221526188641408953060200188983905445316023141084147062610278384301850670009068579098180053923125133759612454269579829196973996287185600300613649812822911247761643535208114729287086712993354459732358339150017917747842957852536905887948790661347129104998338117464786812272773393586874260829532478166936196754212619919733328616709687196896480021393132691238449283935192086286165397738403861050705890691449684466979413311952493835216822284112162574221964645326690443830277445061675384318547549529134179067484206952694439181517911973555603740730651432128469029400649467294830712105746187683104235365381344054655954057531098587695971434955093929735358961815662208545410933658096725187945449801221347653662386830140378852300383566105339233230756397447643553642649252192838874891441286528960004998805636428959177402597234677501109580708703817072593526669333019189097871666261455644469806786720211045325480337829871268374404800116911522240479525196760436102913888194873048171896850535421239559113479770077068225476898137872734903163489259185679283682926792551420213567225791280434008177956131537722489149931594716354746826254841213869847719368755226540776629812613586537484607557543263316505873900659075287184009001976136959223216041713971913341059149721942097856259514438778316943522416830787673599495536263292625540635030939095612009031528330807453509128616989138754244772929153662528408856678387057962287416243056457509671295158528182238722496717726757795564911727133441343560685734599329068569961665090498821634107313222514074800314858523694563070466525638159609962673366145410326625773725993570571565515697090166242668727712361157226313182639645653008905774135249297733939834483392981664551799013266666045737317832461046012078898779227164426790267793777511087223889589636707145490418286639282480352232897213186165454926143510458299971169594696687173405202266366842207635520734405928489348582019707779209084951691416179937829491564248763071575150954575218776023608275011616414281101838458122052299392829287967427667525900943730749103103755297562633606786487019846726651327075055367068088826393530297867516058225945707142614369363290568734139146158916826080151987149545095031369852285966422546230946843712077815419398995679372832399046219250205361067027119222397891165774111368576820483998155262391364639432121541641051145050324755287179262352857824417388355247192330785167695114962216283856600880830507532409496163069028731195138131259498672453058433429638333277565247564297065925741526899213184538826866033034797929667202459565886521784309872657775312141001256392557838226024044578063243148587723354357214823981216283568270451896961279842461890501691504221592118897973379360365418497004462820356734510521487196222847717730553171346815506764131664170541181357614737890513488434561959328147490383470549078322733273705934453693627715615868769715571855062583797809677934366559179876329932374314894796352965525074089371676467778193283707053517700983965276176534794243160960930843418751942987978090127707598798260323313784308840890878227030686841305873090376018207749440893623354312975209835004933544322132335123683942501398070902507642990879397849371209786667233063022964590680272295319723801002062251440367438853868031546054126847922773891157127130064751610673248177510977066952876012531457303717535677361591456154336750767719993722409583787886637608729500258625797851861553116960723840282856977535496156740479768937792787194848799282300456381121001945040932295860690590203304539838943264489879688374620586455979016265072903069889485843854773599596545740548938060645464658209738946853399673585885186907295085739902305501850760596427974584483070768302041654009498017026022525785927865151382184887539807198922635356523421416381397905118910815505760951794346760133767353073573503462415653570768637841066441285086722292691929329326646285526996237070222910397121085751230053442395385800584548448584187888091857725830040487085430738485104196789902679463590635240175769474093877263569730665922421729972810157489657391837253590619539851321974916156866968972122137946977675589951056332248469774310182811270511245218659477169275043285436048416207853104081302401065184531569152114229342672954362722767749526966260285996711232610220919902785007397434231178183036362802647636471011827081007871784998965313387132298971015467503987016921244744757557413071549181005386795999711997465176256524808405611388051892607000746552856850816256791650487474238046655702614274263690609505830845024073838214195405584849843985176735231034557357894614313483320037549174274806141115567546649165106874914277628924282731820863579263571715165188086256882224943730712597449343337893982982937970555448016679031805782433591244028141165599487969915341681625410774071335875177078814305095687163960489543234890401666276733306752984257476881774852082407921724443438812243613322292531120552859784495697525941791771021541577374953987291581832889370582272828504243586492980984021233321199281503555659849553661647229129578274270012255397247294879154936501101455533070024994854339270392559488538174293829996580751232736393730049585201327785943164940637932901476053210079163705269258823542277271939510743864470565047482086069390411422943637038468492483413217285529496509381118189727625461645961821134389894681582121654699234397767072437667170412014321445852494031217529724193721393385939868068022043399423441000668441891341974112300228763375151600580902217392936829358710460621562340764802970589216158193591447079427954433387514361297304937128601078276954681282421272662564214845837614000673385162100661391177566470214200346063729600070923969942424455827826872227463303583629909015540766932974209248137674175929824300924747773097262550773670567392997003044784988341710063566540503069471094317793867896855180199884252898482850726551229543138106119446123291546627949881215761421205825317101871645162389602315250130440493543628934377546060663804918467508082191864621650071376935574253231133339759029646787833867044715353021849460777301756220956350774326850026325846287525265193347717756845912295965797754583746149347437296000121666106367760172684176358259175457087101249720835208645568710040015518435207652993254506605678884607548376835304995958854491138556165587419676656011667428330685126008174191542267101161111204543262583846587674745484414846729655697712494509669899294084928655342226573181812527200222782949356909408028266342591820274645203840000632563648665274087490035109890805299215515299593461045147411989325389024017418462625513436102451549528358053765764945993552407169552876188144383092750366348237905761256416843323967489602732315915178161717705684238686322488951674428361835584126220842342140058362354301761772309349389357706758336177011975750601216076537976794264111017638774912732000772344510587218800074049470175162017447627193857600687727975785455416265877911942408652217359868594232208841968286047003241698757439592353537273457542040011592880508791387342403935683992564077774541557452775371283316550008002344938442332209592223303203546127084812028458585352149037092963931240661280170843361695515291033099427943287376177519632711335253831492447212672351460878152896517258868613636791791097303511174545779389077462323882245039057823571550048829932197202058747474153122291245968036125415851686231569171320366345401747959441571321069266311210667364042029813295611862358146210208088753044221901955131599127361298927924399572987433336895244777122297815511988770806855357272696807539069125202633486777526889276984303751749967674484081891942103896281798521409061497719793631206220880326751797903149460170637353633612053209993350937651041833998031485522388457571151838053999639004721215271912312381256182047499162798959096115916480492988137310239699363299175940103306392985223762009319007093693091598262785612957533322423522610388272633085676293118614665369680857804124773213911444597596703709643471539132105792823786808258263811790114760170393914241482607973349265661360340327587047648296127838188042529135454857862393368693916230507682940043968199291525856910842349904606081096658452413283756443120012425747085251794908323270735355860618660279726205868914512802457629220384422153421058752477475889859134363187872924516474759875623667279218500941155104687751830438542403103666564440341394311704607199076686031204421497628320585571434381040432008412112514229349481173479072635940005211861753597335060988415306296904514834842276787261308654906850640245367404265839210715444810904845725084010705765943788673000899357169736578744906101286241311045660777272449466317099505774758996449116806243078534412232674052843953629333194681707354234317369910012281020274262207702736737317767658157178184808697281482220421615992330134589919188210710375202310691995448311559100805201570216845099691665112951227162418060787932405034821754769673162680815963096658136042200821055510614847399482099786353630946436178192075183780720589785990616061243638548623063997604647383205808256482262868692447419890786993098715233554288102892574537590822319747803889566374857235434187614111064106565146763482371537881298653132010345253843670577989835117334295655535906698235937501154455664930252193617235241872262666710618891278352301099296559619434439413599210202745750945030345617532981767143863059394671967021626883975435475181991397818800939927479160224076541520967517219515239578642299130703546994612556660629371354427124375793957485664504422839003646304325414477564253626995672038879875621190560740934259940391370789722856429780289909445980105218337681207173328597765485811336965532378243615407680112542280237602008871005687092696750505595428502679845660294216935992917169807810494917919010799929823126009577321418999472974263584390324711918676495630849968345952857321359448909468772093014168086170256141774418274278166112378345612042855797730736094995498117482435422730633378806800776660178261160097638804582481812567577131107578196324372351632631835843974985564399026774469564140601207248055989183251325321027200461311360836899693035854485425614213303131196946271351280671074258614207134658565497685501634533794079747240803323390921828094661907609153438070364474686949171127265235364095704910640305382365178357843688862661588696615038662015253840233015929975397641162194822658403381050911286393497872285855551686085785710309085239253970926990173268906633714699351217849596589569947493740514685279997765110097939961388317910160326081077546601550733409511518789269011433716557511310930353685737191122439589906109305633775964968924676039675033913793039090677485033899480495059350129243989835666771001376812881867565299273557088975068941228498719674186532941467522230509458426135781787719513959721062608286113220766175894428041806438705924426107310161106407369858963687966352267474994464119112581513917711922151530504754519396787313968486399293076719944098675951814355777795127329465218168385620475334580611898916086289423823852153995673528649901819745865091169550629874204831984863575597246234480514849714614806615533142896229167012285884296913428482783164840941625107034252700036458197141228081607440878700980682821601439860417478075528397451182871734414125126452276210760322088020758036879057327908137550884579744065904234940178705476782740866765452208762896611814181310498155951870483904714196720070407548842583141800378582327074143084961206612824764766982320990134018254222937791864143689547563248010057370335080646417708142639168650034155151836346410321962642548939921565853559725851566097049542353281495837766570601482682844445275833031956503880112238178157612646452739501462332494126592330965122212601227398272558528665782702725753839819725669831556025806661498369862856024894103154844368687040915549303004321077328139481779108018081821122174058023780098355116540717107290681997862779448967426018563867024938200516963577856458681556448450921355429517071698348756376109738636639844898315733571466374321611434118525980514501698138889041029431834695634701914160224965811667140801756605214441128392618736755721811825466264217402101555404227400918236120802557080548698411399361073121648994414704548618314089521643729385011393878434104335293076935819869122341554247907344355379643223782314732861655244135281401208397235454733056107430032751688885103119726018654154124996043672608749820085149742675786214484244594117905957645864155810012169132526259826301599274477783447596326648737539304774231600883995865925530070822648606140230991751145175755672087060308472579381780222292103596094416274359261014522013043471001855689341221419202627326735940910251737228407015652144223903644697641142850384812619718644373718296017440090979245602263192233280944009084704839718193958828555746255306416500207101395787660518685549505754335554916462274965959539310725242912762037555851229360475835707047043205811566440147820866227485022139018395417608277301071515158185636996984876299088664631185249323170779082160891333669953946089764742121276303678641828039852561125448380214276496488771456843901541191733966317376716658849565404144260263165305812968115521687157587848159404481451783251383115344611289873740105954575536068069194225904023469362175300460363410076834585670042117180320662486170030743683180890878653288067358934983792637037322487365384908431062524355016259500584041264057951106112233813422787884322125998508526333255094814398943407691364380926882239179892298688290577661794476400087422367150717478274230521775807510672721865115092610721093921875445244893274951614330687383807641032655232630367214727061630634865699745515684232106349694303336781837531683971976191644234062825237420948801004714462185099226967527237361862651464273578516069324323739945544756706148138847654134609845515996692413167781735713192115062898217104431603246489145083965989857403651028413977700187121041210681482184567638473127191319343861695478905472991836933670010879256168054404071923677465993592612258263449293019441627602413631556451201927748053002695727918697664249329160778808566445643951425827573362801449938868568225126855051682430350216344985006490986510047789982660375874053821741442721573486649997510130094676881122992057280885915356624573624575706206369734067875825136330170849975039169214928010275415960045433318208774685985144103469145497171846379075243194712355028995280234034875348370466909353190345408195911677874123634835239505130530749365540289459407775238020282911884737778653487172221791304192777650919107682711117883113748423157228646994736754136129484882354533267315663927958958866249683991574453048376084190757044558347285562226093988058667111459580922280189214746576576703014032300698739858188034756479434404875248240765068521985652137523202294567227835683161194325102378215496733812249218196400490799391336909501844480618379831047424171829552871817930290692044004987248199923391889104710461403861536632017023147153606582752927037950514065804592581988889420980869580194587274460177676538293212422173126338828235796596717479178933902537081173664726689137231676770756493069446863261983851229574407397974889530426368287269840008819507974397535993706064353235651873149466044779410564025357814481658322285280133450127183420488687441487422393594192707618520432243211938887086631284070609541981679861823871136164780511872161170933363440701302696219056542385075690389200703086727185376784986515143276661259429293113115829879200111355387322146942511953877007895363124487312995408018316437891904341445139920149309271490645111082004363610466894150916449862839796102860370999148427504997506912961778297758671653918927067185794526433629870488372087158798558846380804350449068721997801236055718130971164797117514986020478521802381381508311105325639245122652060495988877145519631097115323430942718222091517103142187940598663191983814636634093120269303773932228729894001276691769939250443347666940808355477309247894629251171071274284842540499791858767458276627234519237979400226481119513907739539729185615368719695392607558400447321547900554578563489950881043892049025862157643823328162809562003324684184000224601468941549786197353002354090046396941880776208577152725313794170695498958822778153588407788191802080046450703423268918864643659936343023915577976374473800494686608010083796378520532207163891679512200775457363309183461645301066617993193375568224631847150139252689283865877808463764845858745065029553983661940525951780274105288518604954738522246259200774480161307455195348330266552115465483005536769953679430807691212459594105457660189427934148409061703706528238830611741897497360498192635152399643798960185168973374085673198331506170494660292573561534632572861956879418208789137420161514604226619589951089251966716959937326887449424660873224612735150871671682388578392119976787472848862325510263620090481056966014872711617318858380174994742092339275115966184595877915329499254534908796638989413142966389729990673214329260393337835164775875271684316857366536365372481587530952229982803934869251826088236736975554053534936306961064555652466294106446565227387801509251230435149829214562767831634485316909714359445428854076039788758384667011699676042674174522400056148592213919158784608178916365842187103894474119682130372611502530150737650428626465598293503054260380720841769354363434765936247385165200451859851148941732927618468852722799942032354497721785687177707585279105317632766999559249872628248610880562676855933173191205624822098915066251118691557746814920205843305156134194814818293845078868214139639705491697762733441491427549980463962633149753476314222807314609040099027233582640454695622773469067025792038208460729110785301613498484386369887626158852361342248846540797936620616685459773366335602786731874413681793329366546254720095881780352612920146750110032614724506969267575332407675342540870001441950030182712923477193115860450731993427932747180311217441969592776172340267355023195913353341472723050489616386948512783970111359694906165254388551958453923131571705683167601203794830689280256883659159432520259166873811527888787339813512129502043651209025236882455358054251050808856932906574720000200161106933373319797631908454712267386232405206729670292830468752914042299442642559171505272839074273692260905258338894501756921502365406975356738678994720328754781942786216714952442290376655156429115848983428694619931386607812691445780020028633691740782498428820063105442887182050485536741087320505526623222913933630129905128169252831977306685146092732981901891303578020725018872772195529841057601116159409918301983905842924946667251927940458998045095670788786614705404169840949910454352617524110526085997448828538149685802897483921308448158743255801244467350207373198972811788021789289278044908511190592257130114787819533567976711226886877412740153437197049349572258175044295673969596107654949319240814195949079109182667745570254207733205946651759485950598255704590659839682664619202412801702445311588754984354873899449737159705094561424658927802517930838743332637985548102107396266360109108246984926084718521629741149364159559532148076386538640938259128085279832072801066115304775491700303043215981987245939748130366285644172471655846352310373043764344770279459858076637327149623817186633829201248549436526226990868877180501085816970827165564096712431076226140146186888111230599598305199363606611151678105161374841238622650060073843354303799081805374371893594492105159851287579981597592572969043438586772495580091176825067255765538623964728630164356439141610909134045793982005052732562214814222063385421856207311156713105360270933799025285140209075408321339501300341144208889367664766206427823881993460244836534608735167580437336985920740277827712390473875775494369968365661828488299879621783090567975561452506920399101859197711976499258022762089509905524853302855025748204227465838804825990155167255699287402806160986013344126412846136332418788045624816110077278466733883775354149142004646708726605520364539609208867166125713526390927864618220985816405212113213853338604038437730831369297559606945761431261183976161444081192653563355744198008276506582704205781862765540108458710013756600551251902467745669287495564461802602442173565441392163634445749298961367625853703177088908954806066559589388479181513338808879536775936468951584590108086172261555175387942841988366091354889973493042165374112792128136805184092218561458725826341010562060721650164121849605497108493232172484421986603399030505873029823877417335329524918772195214792694558363175114746583846733474212518265920250361055614761654560873126022492735377103012429925610579666931453094961137311011496495738793146187272964079081683994077600968205199031547180537582423939499020642486097338747854365038288837289934274843164023469915085377943351326113393699769183046334023959434546599317801902364589730591578871646377381268865141747406247047127462357343035397375949223889610698789357442507785634412025680942814063305142111371868894280497351688822617087634742508186244225631730362242456343637180278780491305084471493362060186864873656597078579606777838656835437085879939536168152091313759334237434676556219569877627879652834475158578449178128521587472620398112285148693611495669695504122767016200262634041892974195224257340109697480137316108827189457603672082474581179590618382738197315174605329256047276549199255719238731408437831702886129414326924171251717100590639474542277221344413892136584835189848878286456476154171773420537392727563023168233204261006414038883077864562696619287596561853274433171906746120304821404166167672008255065955960086810470829436740471199397934047323109114265831774638596389431688873191177909372283005074986413372942777328023988838989175504637395726015444982981408128883762668972856574664354773238678547324908249274102240816327831299270105942851480634800587608020908124976423391261129107382524527091239873099793250788779164197913157612308708305060029688170173760213668340395520459769427485938588433660764653114690070473235114577158164475463969688475268895013492071782252656330668407865395024987818065486381050645360839284748648120301912199848166968150215703020774130625357338482954335344647847220161184583519379172916809223044522139998097564382997902769212582702384722704120931345160884577421521444353742370952035754195424150877545677538869127054217805835990380174112234278713323550807045647398181135071996770597066041248219281365565809951092586022855003507416083610300125625347710671628417157159766231900417036438256950552310056667256848333457659137261718137661898469622312524310752518556182276518639727833247381787435661498956980420223331003171816807049919494663117224453381466795885011307136793999746789104296498066087020418233521407353471753335936764062841124603835352873576524765170816983906021642504189434944856307459067637432917094763541282293583512311108606148812771248930866474884822453023204292945558235536813510292980206164323906012245963209526396152564439232724688351885653227892777062772391633002111726564827320436860041349457190695297267259898903838078659689117845644076848273984754966559054258896817562495846071737199583912484271816257001267231141055668738212817128687988816671652880518550155741330532049059282755969630974239179770812584932944334405084629627329931036177066538969679822708770811402669725847243135196873021921129292125904760434019864253574824163506873132092533831479310140544023277420172187297393103909253984578008948353494923777540074433652545447838661177440440834457958161014853465066927993553052225333196831306394341583164418620971698188039915391801771217565498732494080450876465450939402804927967060432306746503343732806999716686865997567170819373505613825566614439281665888225344203812157982351519417939972155077745540585362933683529738137347015004635404242837396972701606047775140458387130654194197828578132167750389492284173667372499690938327741748462844565526226931884811275362460291523975453773345709830544246530731130604847887200357384384960245182384335130980800813442506161733500050039974939749151244746284862214717999265005147699338335534381661911497262172775749247901234717469864453436197794701591897402083666995235409615747321801567472790297576320112848715001761063649375630030528197247373971297939158660431642939094653217727701735516814740073289898052815297937738346675623024862299570911321698351946754457917523772688417188396786957984853902072011052723680348793764023701892758601965711705393854044348153655638511326493065433872005734329119281798706497747608837574141323717457570296978148910862828233106782037408755420754687864782241420627421688668128001254371890493427332599824503817332866315221934629925255038378660082317051352613145125238381267098999709593751946933142408003539611159238638844995302365246352219393894512980083570516122292144846757992532783668503955715877763098083000361898558276367840780166979896828170763368271873543416370611129200090965990747953934501841350170207270832937657465735930984726339480804027106802772220949066432223631231465401781672572707510831676061915430579856719617911225779122756566932570204496976131138043397632343379943300763405457954237865367287073135698585096169944891060775226240413520736799002608106260654024633857528557584838281022992648943899570904820672631577346675311844186588456922285223950804460906697309765657450065374163745110185139078696541099796546486356878722798459956002795806560758132591090102621748327667525175559769834818793513145908967069920667937567169783540610677538251265758135271361861313224170212169346945780101916402621342256584007394301825977257079829694695758788652665566212188038802316397650421954530802719243962379408674998343278218440956582493785899989557885674441405529804145664464616913924468157742230659052566684672280998274621316209579695729821515722934163870566153674835464638479782508836785871752930415110434185518835398005217602350437440909135118647937336505544875237019281527892032104715018092487718433747274394612651071117341606251257110794101059800254033174079876066217443190361367899463759053455711378819903754878918125652637978223274439908839282834009971255291083507736866041228363212428092155633332655247628222409939617349965908081759671213952272299411936757457514716717326957120877792276413960720322994898826801777625949319986784223369826751184738708531953884047508000908480413663568614871894131060461493897822184671483069502279563471474283605207647098681424782307873588759796101483712751528526505873807520850950434212798758488171213891925669340959503003397147699563148824756351179301126697186160978565078176901844511762861080665545644359024241317476137383199014745615320979667986923478180446223510464196259580056432648225335022565135218600429675674761249811023223236627216222928800209605291776981975959738198267218829979931752088910420132844732640845622078964884096986410536560845794874196355319451056271893288512668685980187493170638408434262583901547130983224489702622999089332496623764359271787384294482341093815626810950144823189683686806060173008131651917537228708548093656984449939936921089276405628204440142338324240637543082632053846700278866724507994972686616134879415982647769497932330391351035683097699658193402593585979460914764215101492610007352977937145103182149975917711689284622836065379412160412193585317481230432608948422164072507722778591976089875528700639609665869480515498072538000911599470275473841725627981646783670338640916350585086525431096599622915862934835743118883764415430321422707282076305232779698924929223089182143518041583577976158673457503251715297921958847634786213076534254340044151843614458361093851568910385343636804568743053910881819654662535654821318510466759295052204762029900942718387892205744529554555684132811886521443274943775681993837891281983479280534202070942037089847360252836194232435384173989944048362436516030143186064146146313703793472803379475678340844478134753384791875254514204154811290427396741672424454100498072525767171009790795049989451688537905659135548289690902511714799040618776731952728070820988951025307827728084119967807318541188969785637422634183481401836331997959864326486802386143705852192726888786396473257102071593445284871398794687052916817106709262434093140620977822542835724683538990223958914314815498173517698152558276143422761962533840112408701740999980737799104265041398361249728363849078421666966198846594605388214351568835037977579405881887745535504310662110137510788169962134016326576728402457622409518688197607495278238357081104241060539297743936203798411846369497684025841527828468344509690393595479418193493440009678006210929858136467637312605505185883890854697150655173910008897511610466017389952113692729902285646664124340978415120316802246966603497184058070803446267815867855216454481030541775216766463790376786140464640494302779970910426061749749001580654864113779055573657881966758511163715282789007532340089523115498554902275017263761225454265354201525675618727398620581445470065310835075940890490065867573894744734139595468407120989964732850741369286527664055435633638369877793391492368621686765073566200750443941241325268777489931565583250011595410631299909868985790895494844754670803955432145480948717912694394352379503911301351767083926614112059064247276431828285566267273801899380616050620047595372387874917520271959723344229217067425346742719105570827179719869175569488448601927935511353905655949443578311346634561244660058868128675474673942363284083103691532454808315545142181198237328480888633594672686524520164485844348795884259494456396764861556529296801311834878137866979604879237989468880750369220058658171678818687982316524629069447960877352746728347707942281063236726224275556537940337406043033446230871603237710988283900855607043576435858957131688110293372331876046213110293693532422943238376123414573722708844534828523828235681844748864452922581977150034870796115522424074331344211484608581535077940390506701609849836270109239740877326803029109558948797744912401205014453795032422608168618626428487686589311384496874400842529651748436991912324636457963035761527010907405300896152476120144815369327167076886889195935869504822069424457517336625105548689746760075213005921441862691028363710302242468446633003658656494746839186817244674722262114930132925702764751999453260700345155316152627385805524283940747071216448221052237688570473162174245663052414266805891151859411101358501827341482461469997620408595276893178521723496667191741875745746973303899861704552050082961239007228705287416870431325212926164332401140742934063015365349704579260231377852248845552340843213531448079646999893912071609929374714764022809543882024632121402321164732150005139056368740252482126794501043596508422161996708176206952688233361127721622990555487643225835876379261672538333301339263883643379880432220573011072581255978375172347503286472310503881240600470805053511537497920633778644259798844811983170881693216896459153581051717853409318554451764390294988093443303424941650244766103205810592115411966697426090806336850990225608304053347607568445652413147205615462836960709150781963688218053875238977898789759687107767939435954674933997333980414210411039583766447248545282880566029711836419157152196529846252571586874153233557691879737723824778109386347145975235634895046059731591962320888066578620535988237371128290444463808086263560690172240626204134989751027846082841177326440024203096225035383563664862070337602622290760040214043123983689576082441073082255048490448312888898427340523741994882310681845185246463783724222897755224713504133530785789755762153105573844011676099851506221843829734605302330194048248228755632980718532718288964507454901349305225352272615003121426265559007608802400924559475470137263864057324988361928158696632594679109354135532301821341909371902400788537014495332350689369060378449850956378810101057364264152559378123446285977845694374241078884627199926285263579580971624736479476596901750631919719224614751604854653560981416178468672968891859263247144011181036827721247573734980414039901996116398359566956365898079225017380420458114972642849174249900103291002210606263363739998148289101091458866651992853565342047118295593794416986424648746110214929468751756125193385989410127552086889863522892422554553010465889524247632087807133857777423833077261041985400429371798307290804099771470835963627712730044950767422230154817027539689977236478962409066090333713093987711647086966174467168739755407831664901497586026605082018961596457566763359695686880625033464246119768924850065525900713742615978031094260339886730508773370014730556744611923392059707859069088975494613473085611188127394333522077595130276009782809503114764891834912316594471595302989171877127647257026757857881802397822358847317555996366912601021535640618942047680942768578177415325929953818660278606463064627020208077115691900563209933611994840162211025199307949307554742408087321014458645596435624332520665341353009125869749158577696381960871470617198983951565215695948808111971142787326018875924353647794550384045415841211021473926481351113771830796866854912499367453756469915087364904771927056934919044890585312966322570787408451037815411973618648369982886290481734327855584227001264662816412083403610969154971608098023833045754330459614363311317383578952566239085712311529855960322640275518224502207041695481574977535480940175553682142607282485166069064939136553078447863574196319632024815241204337277554347447814424509893959463914112770665186349850354702681636559928928013457310237493945908727142423494876176596767561290563876445289930034673781281112449313165311566528601401156348794474057599029876714076474088885212008976001450328274808816615587649026933947826600348246131390352379877092881331418221642469723090755431965971095030549166521105879056153177981548285939853123436457101088000197555612579090712572836736433763635053450130562354786411683174333838061275532923887692514685406435294559428615711087855933564859778250555511947668118057708594863580868797198798246348522873335047494410703237977980910936630710584790039008169805903020102721108986259249116417140863375249340888687206789262079461166095215510339259738808941251457400879307445955421811696727625141691573477140368525237097218826311169857339728867622416192501989301417163941638202901776947422612043447353734369893548113038014280549397195055136213872648634760324214449636182915785998036321781071838670524820362024400892723528062383045550892835132871715464586175821849802636181344961136905052792537528401501024726809699424872409309108655244363553238651260640316853514311691825050605298062888255538482451818567974234648719459903771789558872435964756990487690447593462090706263184610412873318198716038477594802025618300660166073851116582277985684174890943960558894183063450872010755497117691235895760703410267373438109772658586587313862160994593233725012388267540857297773724585833214234723029358515074276488397076545530281340962352922958891237760211603078279453829573378376044764468892398301875216940132577701135017132665557077978417523152005519868023176581001075368962929817836943384963280707014249196227178054831036884506745728322968103421004438007614895436373690666214277748642241656348515156456324996225745299532360293757606890931863411371503913923277417932464575266070332603927096639270184004403422096322159685775213141455570372085218775671981014082723059355082134784311176147143691989961169145832781824516169262108600493704899392351558220861610650109177630575776837276346368204718178752733125307958650281166508819048746113919397584566567781281679469947969322243245181007358579843049672854490578624020819339541679735708390728262489685932257431250503313913674261071751596923518562527790057812674737976343077074789507255471471345256218251209656266216085010592004928140511355140653699609885976433341466676572295509694700530936427007386164586263969162857238965570437547734135851042867381755111023800633060125348151032159923567305214738117968267735100593150146186327429003903301566526767024500420555841012525389485443206596007427573348466489688669950216647952584366965467699608939584067553571717492409787307952376996980441832814021923404349654228258570860932441513876667028479034425255091322827147907677333576763093972313273777346163930572772725883662724229101655649070317011740327153431623797189049599783821835278663999297310857883202748290190651240170764274374971947784277667907933476971255704295462814154276440409073682559054742026696002110160641143633349826070151785672505430947225120558074671515358605442499977824376584113383496030462221369036515946980495720258101227818702664830155068818831095353313719597541690798081037599556262773649780383131288752780596298144141579782486188020170432424244337049262611305326972628678147515709601034124788039875354394339049568410213376448867339213850491261472760007151289811972233599083960564583557221798718913003402124126144730341241427503873731378024919696108004481281010439093660639434626542329316851038618727474122542816072795015000010959636786234283638476323101924381215399229284040495446508329496685816949698958573336974416492671955962689926291190992218242629718976271968012671505926883920370038634365293601683865529331017966355380118035410485769615935287664943686236732159588743146958769044215287878633648024855229617908995748122351494615093187863711886723216838610107341701546361468091625293090831321155929814285404134367833162856651253127427801250810915881210232715536354288605991113050581868530079217861854471849817747605228116233249155115336745260779145338615645420918424406909882225344722729449482649409519584335709865788417770374479010656598219624856981070920912401162812036411111005241382874692775138445480127916859127263993401050969745247049914464154154072681938507807509751495057970700031542106717796052287546639953783412639696123910117058785509518636994281226532734652496364616493332010602734255023813036931918400621162470988309615995270993138207813059029408800917803783991800107169684733709375976225791527953781229037965308886231150850678803224106293420786476123735251803233353775698089455345505723442210769744779125293140959256022935335741522440599699409146414246004509075254401761121054560759931012604200330241502745478444719557970907146428244971762461724537291032336120911365932535005527105969039052260467526546601455737373078706526979095183170708849858539674768195345714121088071038430096889290210531565262395177008418703867570808743009647316782562498841553333334256496554614612720448789803200473368909171343693546647849818344365419156916406232856816080045087330295093843215453177543755506667346901685081031280074591905444700512709949778054840367765614370462494128554030420408602720799289645001297423014607075527165619613252249614409703478074480298080312984981891202212489874952278129854791914759124594216175555147942697829264881481221882507944625628246278862788182643294329231551887815527596171821207814053880253216126462772384617932152804623917657878352652496562645945332914124118150333111137766501616073082826795018184478809873086710487711973315634199509387288203372310853311899809877048004600204371337560690625664397295273356606448674689792122466564924219961334206958987426413106087309991400692597759527084992094451788032187605225396561927097438956862941982742579441580799258192366185954572935481947127368881923284157107121861758484991724619142572636247405894835826273914899148196915902994727951703151077565569936661110971596233908039248018318265265683469020338620866504895617338001567767231188909232278883389730220075688416126160813290166706233848690283306720745486838242731261914134652891397349591181383127908805105797185958815055086126399539996775333339694916205811887240309645361105482041819874804326800362679895509781414928180358594442330969848190529099320223301723254125775828074059759979055312739473164372353094282156822625013574375591116064580652253451320424679945995098236994924400558863166012417489568033713190373223213474016184983907987203361877578797367710688843908592736537570222903107103580542278284375847718351859090843074550225224177703078314782844453062294253636050105312308905845722835136495069193193774018870770427429149952787594191072476823858627375196516556615492945393689629449351961554588982411492080021660620885060449767864224863383960084268650943406521118496866457660872149301064118190543775583661247575186014075266535656010634082022212594119948774685953705567003244212745013096934478971396419991729983200509440143080597963269925204912805788912714900032985207840634133248311869479195285739260614096812371476025848646488713369303295547023539656632617201659439974002614803573466098350845529154715515436557664682392220124328544848782425893206542735069657831243542519722205397297935163955163899769318847219529744444906527301897661664692647983890417441087651339434609122145827970703269949383096581259172095846068415852662338706771813593205513402304365480027640867243860416742962904701270743551203934700104745259293297536410058318550843818304850193117847397335827962821097518611196989495749296817295776680706716980459709884018404050265728547165365045561656905948577886075081079384211528239521364679843047570340485946768074406453019607954054876369318693158870764895367360743713921543367653217500155327440385951293927521211800135253548757559056495010085945006583480646208879946039928433341462968370683281339034699540863867947496449105813258484303516856417246972366915622821409138702027091181870248730569784781645347503203544815467746523060312125692534626542944123038762666470759760672944849557070216302614298389777485897043013989102811316147874647424105789183598497314344169165576551815388670883276649713706518547867812242159275163242052401320440547579475598186434025723054009596313309725779978484045048723455003054053538690134145653430489454958788383442190617266828526198514421564141821128207591090195973494093958173614979523877218559939817447049318686683125005745771050259331226501107295279023181131469605775842130109528948069836210737458984057727987011359852467878256168579174852968334757797008742431450508276993439376619231160760347728459900537462540958453004345764314144309701605377503802887323008130504303800401085910522120610572576556856938286625913975626579514065822664111767262458415269648563543173560752665855903433384180662153324148285228135448044537043849555480764809941594223491155455283266290863211929031555340451376915793358980024420397344441964140692754402329795813633590773492479988658411553522860240906085009154184612296800362332302549182540708565782499757337677103475368907345218980257895211486892625835322781655722023088529038991619282732393851619940068059176733212827045054124515109438782298352946832722979451657603714506924268524037207779977993719772492373855708917363855832108403156761299347190906507682278976913327769079306480586799988625651262117128724795545781947459444923707659173580336559434908772528115990142071321896957255978407978475593023544731356457840589472419334140661833324791934955421137518624595776234698066785353242458671019201904628932414516089668089484241337134183201704290765693820815822048538682017949297328795530905727090302105418825854493167321926206356582484680632714835180818555168372022253148513102593793770862112353114152725369545718936015155148199521041301429834652357818961595168991320278715134855543944663448186350836198944501054415395237929911803140568098445552368085979325313868162665200825214561745432523153627138915149453568342719096457026079444752219132797716738245539252682899467726723591044650441048438994742769495674556426701371517525293191502772101305424282210956145151923076278348966301085981359002039868971731226111111135221696399473946102088094147012978866433820726499083768391657567032351037113765112442250880578514511746887625516716525660076162476790581813382180590481106517178368764969348656405426876427496849272262125573093230508194974629822508576745506464966174757005353340405952173199376378238434547681057259425002914253104150909344626672564983996089053959661964184493789542627599182044632118866138310430881357757826361275298216038189221947181343038218691090146119653301711099458287904499282161059407100697768905460172934293253350650434065565097190036216018155601145196250620520116388260899025470443929619848965546165591739817913105987248677428063130160891945306049707455736560437172608946361154505621832703756751338231221166545597276599272711062448939005690863618011089011193060775008454233089020798397948681403707136421512966926659325591931386303706293926527110334797450322923665305718330246174203619756533500893328424245898384835719561978377194585973560736849758193406625687452522231305405469136451751385867782087551889874430694156852854437561939696499127323245868818981219355795865898037621093807186041983915547309383940997025518444312515622834640833468833894981460004839040079329665416457544644540574447066179201604519157507911330045078187072580380095912932282962947231001708494341490157902326681887564975516481538859935240599725327290811787559575326436333431565720022226967519057121612126467239487415447697402123658064777060401850760496500453363269288265795353420919845423766350057289663455507559225344989931478672629448546008069089849384392651778247418437543113530974490179688222388496023958262359521912127355645297834501745268426292695097495238967463922413519404852958420348294305712294635828362927759003352804888338329250709628724240800272658633926132363240545553669629078737332335356016668284435579209799925468508667622874124106988259577891723232776050669275367931440562542099800623564524976800293969127628956087719121947528971025235848624574187481871599229148705337793006377797615025450591290207557657862074091275117139582618347613586011771235621990338246048832979441543115787177700769274080342943962032865362594892965893644088725926753436168575561320153479903286458997323967104381690300543688330349584930459723356291726775635377821995563938805438575686152004280674539135480864330689959320908739166527333372298149856725703729557146472895027290563456207637596586943648159034200668055090651364362268262864428929006563417062650644069686966160056709012208880779911182994964609358954600451070636680888344486003627334644037170499947387089927466672034622230805883854103898892391053841556974885111695131404904585926957495777941763117469381469284749864140093322771282947528154059349946223184001706108454968741270058406047905640256578020611878914362659479927171999550720555321318381462338562180977074515918738544454208077082017324116924968220333114510803890365693008517078015045864124195782584314971071110147663414305513824329919459466644082499936870293658012568881858699237183696231530043091512700080612198215933389089857799836454043544287264540147540059858806676942382582917790808703000313972695969021227888773847356873354074928548192598608518766146981072068977626426923942487737212346201993292240127901552436386419675834164816010813421077205530393932132644627247908326716836090407652741973633955681474854492728465910556245932113276632415996833747334170374279571523471852546445557875226431636124072504618013629436486862180698207338597137062569181243993044071827024356208930322821760041791976930580324015698143104148185085271137018516146592464131099217389433860002323264140466700007942528120365028328512434075459407510663344076658711435131666702177269863420790072555895770376991963805999095175057049364494539908954291585031867987996829823500139626581449517918113444020996972625885722040497346721081874778874365756372494078377863317109311772332484292604664240832219812461407875957957526443746823831900220777821589240562189172434051485116487979973155330753669278631650831167132818335468719496107834057736967374299531171868813900221523434260530864548983547309535897748894245365319151042048643040975412826760693233961066746993775627472625877878477920659070696180658089057502374981693367010142539917666526602057306431032717839453533059211911581351667990612633522608736658187017542798648570340531094612373974087102799368802128329100896385163559859669267149185490139996650794528294390184411779603442889149415176434783386611892906847733330955680800149978313888466314054143294892012895101749743044448176146687527297814914569328980306825205786257731707200968196435308278096937299115558691935013255707512229753712052407833728336393320363276111578024803245245480641306979233592071235741560603920268852509593766453301247724579271497710495691201976686017292934058099058910003181305195974295051490727750278970198896893235484707456963879304623539701334582767477094874822989963604449930091951320191561322211520723718994640541313077203242018465748282731288636188253238862414507700104052072294523799344103979797083389077575595052167482933830513358120724874691031619406513494724455975535926608147091722397641887260524237076421796838848385818717666872728033515690971650145162089204760396020548503426082693068514226750246017206073163724778152798969998273264206609794702165643980539917281611187795960808829175861499593775318763728095910059149763797076570937457086879721194140472291563730976026043591378871561839764723038208579580775427471143272236481630067852200201809483867294805301171391200915764819461940143780889796443152282663855415021801619289970673501916203964206317472539888453558272598103073461448768965325002972512577123485578540041845258510027752559138655859262177514811059783095859408532360175717547628398167832200561861213223872242070298710021267675901921185231738754921387783798401114387537208189436813720369124818124660126774092386948942208638795483838820507901876084799141135624270720636589818471033790944640510962477913557387422381627843094698203453122015227931773801413557809894250623984405042595870271889010323579713658062122283590789409202868159228929507464224144512230333469027839015109403676239073448613526818445891301675112449049879520874150814449014148311309502236493531903083053274013316229206195493245629755773244488537336735997441566011957194910762604386305498699911385903011093357585020646007319923684437753259492722562711188968835136652549355442272449385720963947184867550304544920041450010559311058505391235481935446529681367731918893341688555359609274517707067932069868072490035179311196252150319870244569834632324596705896322754540351860451064574346092981029370608455647531056989582449577895239842484010564439043099565850368129925162113974491782714652058841231513964765958309360546840107269326148646683167689277417138984578820306331807113041514302414742901618501679526628053146762395716167201927349494362186901141061707056587950055303121241529060755107789404235754234703487257827903692357851207254223246572104448390736882148779859059612174708302612039017184240952511920670412472055389834437509552382565515789943328675780174437841733757734643525730415734362636525870870836687178480594675275158658306030024087411693972015633642355696947094996498030922342454661609919031028527336446905015288284849675487218611494309618413206816769906721529833502845233950991724212320905038063070559267239305063561464367728921588106622408048724557574307985001081521848287150860125455443774960427210490588580852240905481792714689854459352666827072488354661008877151562751765265781360217840678313138592710397834605198144266922632370307613106731197323162966674947291720478934788998805167392321728778405897320287325778021396949348616588648446041235300570569260818224943847429745704897846320658915593583064914311876182268860585226561087594623335932185620764567359864009691829482114582151244803576820162989484394081482876186071171949060975181717000579801991945088790495323376197184498965739164505454847253313840365938522235850260878645214378635107287451073370475604248083500901902113423667344653652808269478400229212029944181455848842919831020759151663009152111834995265057481489512883207050269206406707762004278912839852545994974872110826094235616589176033740796420429929412383742414969500092548259828747011226642971285818436303003729219012325293085027219800638430998973407661090810073614053409756763878629329872530099532611907284217760474122335637459715616701760670790139730852255163294081205867470552990369012567514736795692622310720014009907271357219516430342198290029921177951834329726698584099255958152186519808236474272045478672634115898413031599920100602288127384052009336566744574369646431468880369859097454642630383839012297430389474321923623936267514834413037665353924759531364116393525553524815990688696310179484928813340880714610354706612754468729384855796138872227861762665143730118247424680233081197691658094929644543961280498064134714051764622511059597425966523971073722766438728390983169319586621383937916655146423287581843164947385341633298457577232848180378333058252463647306958831481999569180129763667958721486354759492554542983363277590173097289977835101334618318154071421560110347404104753225952009941172801598673893275757330610555824290602421303392190223573237194309006251297984650481630689157749629948776995171979752934732981276583420910050644554874802713690147297366410543159974160795045124444333127656050060876528234141826162566377739259471070567900976569761181753228437456528286342930142822427046382260677407182341970487865478091151062960145983379702928994359891572352197732182009380677983698833615590969061561574988262670654643362541883995101208419152832642126767365716386355767880780546747734002569335294957619865026046076872218084943507356697291678087937735248375512757658198250205046690373381398904965565071090512841938490506016259587481494996370235072250649076801370609041577077026861168199887643549358368143480439101875584508641028691565748066950755447703656190820178623765449696003992452309989302307385865456583155197685668496354153033154662205419354000978865581966541241950382923879882731825354330052370254187102924548697808119095990262476295137710569367827504751679219603305526538282879703510187458586504031591111955251177080984539170171935084825175782678615050581749865568049998034374417265486560871027559991552955308572040930382588217491942578476440128969705418426416452132161199341873568730939855823753717019517218644451768102562939833411030424281805916308293940454782093868562200855025960088837536585255351558111274089630576994858927806665482037220394230608205916312009381927156867785628869104339497448884984318791671969202871256813499454463679632169582408005832046175357929770552932466499589261734619651559936739689319362824054820706005373984190284523867804278598701730072445948689417070721273952280524351644120631914994266961039320419389067201974573151797200923885835067402984083831396196028067571399021338168468090638362806730346825310569862505098959640036347359099905570467939490016514517821068597529490110300546500319016375506570935200744579927727263605670685363817057199274267407275225121638906841413709120481312834150992546330963876355651668279144940536668550373371777759298405425918682021979944799359958198652721369773749827085590743754569945895849917987681821482153517904755181874007952977882795338709448697592221386828089287166915763844218127300174461367804075081538004561108805873207338920055991241643114804642885153369614387416609790851685121429501484346820678205961735352175686415923139583547175911547491995897547120194734315353968727678107117571673699921087668999588316833676303268213055125144526756715661862614400505162420485496332285155727812357733594337659543457916374846373082781124744934105080536495934050780938007281757778985077686800072621956932228033515538090230587928517807846342424290349940326501779898846617847162295740994973837340850730571883821887907486529430865850298040724886797538709342392642436897241014612970509981714735510982551885123267548701150506357946788754385384098483417027599094880581251929303965200541521665658214514379924741596340897742095029642742409590308987801052469203689568853602518648170625550909898912427819653178411934425965992664710133826281570041892816581384388408038493602841280077584138611248051711068878612900901420263571723483788021812194978536234976146018455027905802830022998968739078919280587988988882453883606501897494930631788924754559229050553050945639954900731617300409932228738703451992223910282153675156438767167720311496945665999773755836389421248878849221647462766849786897191946626892151045477146364744674045964683917960823142755054145011015746241149867867946511823207749932744835286717347844451874836709259919409146326225307629350186610245023263929237100521632126335995893579430616096614345874390331909135233329354625185021835931774428386230775226965401065317131888393559253286114296653025232739431434795296206789438350741760261796027249790512782262740221969461869943845271848458584761893035369931923195818973940787722270350668519384431140541582643482173903298679865223854280121432954005279301834716419056752591029014619963167216043361015901623123917896359199978560271192323953041261030354269309467488735496621939583650513496672166576883035648044605638781120998395204895983618390094700905162232426665970427587558997564234484401968960751660610557318778486516048020261787931576130816707246888037193257792236900501727209801893512968456999680691019703378644624712059325384362265383788378772465851926504320056440735748759568413819948802357977702962060708128071680366924418038114843742081491554130593127876896779887946816166699957531206352735888825780207176004478885718006456787391077276328686233741711520159219382326484141715841574008661131481610905308280363638578695744073051899289938983091059623462216199612901053766857041664198644126678828075966527707797106501475406463197306086318450600462003094470393332782873403608152409389657234559304267565152612284918835902503379997086566850568876840533403894618223620162695494319653486570010008314008075048340980299421180331227918068040469413071649622699780927415101631232391830141634068354764606117854633305095137768247128440110444860064586403813929801314357467470161348732154373333699563078368699363735270401150583088084695156891896957549288738144426743272123562382840277786336557258514639985082742703588624315627182900037205995139197431014347373189329612178336665705382463086747916766314558637206726439955196800944207989304102905149195470616362013258707272931185085036278935679809422007292619969537651083980656290884793305306938317128660745593356669904043006903192306616176655227562162090977466486771235697378076123940023332960623994556305570768635595942037928965838313808727599423527432752524669486258033227265494953848368225484192964064852301290715905466938977387658859469925572955783985380575742624077842627889416671632040516956220631306600986816646501342961051393491136197449994293824435316665183499823376259794457745284789131820157581157790977161647516940756502126151971692705064254878857281273453273434137182548995586755080465420074403955024623020476194054499038295846435230177139361630989338740096050094845269187279337250917604149779795611699475337971315189364920252899449684358023967929585110862142886809189579850269296008739975220679986659557661179920336933932404241213573634286130694020603363848472159035042883484272149394834917758081175623794448433563437300105562413467405331538828463129047686793678883880704919783012005713777764097359000088256208592141211054604642374735020701517687037179474377516984941676470342592542635039677426809933168114469476535413896882229330279430532578971810622338418735423299770949993037434667059186866866328869433954530356579094532559714126882067943451271930750910629239217945122815209361586689171042707311161909414094885782852753291164031966563556870201511584440088770713049847494254839313793357523475414570497163868751533820325564148119048119893990552662833206655981744011586314853555096826285688573917553522984328845687124700023418777682216796060603509350104637590975239350458386752839028949933683343894158287376621492044291070708795996661318898719302331125891425764902468283083313897920853017467652385228383871502022547721167052229971346731462360273375554638642843560943373132813119407944092162661597327879398839944747248348295843483892208345558566857619772106892857475478141986916860909128494835522576374480571056599276970614728477780927846700294402238450434223539876652952046558172858999917344726618048065624437027720217927572532398343342749666258563725203711064283736241666808862356537399597152675952990032834307874659551565681060182545627844353612392754543157894787985236586624602611600170446371923897639213022504296901309153014222949665144582198770795613303082611000853707931964181386255248016747884113916227644159279114705735525454359042988987774894763656288250071599973046401161570283951284608212102776537175359991863981148121263408300115591777993689213183926096023463133261031191801214511451558232340781651786733547459537952613238865199223498653698344954997583264540615142752062914194470428221587807122096677577992543030186023561295438808294934149751821651244406245013949189827690585234071582023902496147776267141683861225372011912533629129419783122222036095387180469750442762133952233384735743972594624080994699189070012495709547974910528045026434613681394393593983200138920684293401483124121420328900259741914204154110876441455482844169955664567622356141934106756405649531703960203518160092259746976942100904301594772232405654802433309285617140534315974256332816117905270425681263249064101434566402057239053801765125850740755002470479571453202827399236241995544328492216164959804161918761002991738789358802540097629760476030349012646942969198759178268308538736689141550508941871580924881075729637742994532807942622900063548734060289944551818249235728012712209832739067070918046301759340968402152281812911739230701320021242915547848861917643482321022113846384162905250303638814623113233102227333987902187517969833396598030503547813840117102713968434899908143695572353402892308642790188377685263837218776164699463794457438828453632788447755285359044010913695610715360440051453483805509606619631707611531121358352317421688372316617216590165461417058624353306205605473057296761443323399733608366912849260321241544118283880363337766942301137782257772025520345352965060289323681013143820455272185298589779933908060567057333719751844414472111199719625407565608970037124104660140392448049275583462265395587224833740740998453534076771954093303667224053454641317805834107947675038834788636264718943788974428178857196415416308822086123236979531719523248806464604100768349204030339932856363714166242753642599458768283098998530177768225749409391982211717009924827607394975287703428672470915446118408308623309151397022907581693300739873093158713201793105983336804857514674043230958029947940086981373860863766331149333472987675398348057932048043751809200211381788373380893295819495844559669856617675601321044201520387364725564779934645948553822918427208898007076823076168701887689277242154695411319778081399959931505100030442653311870981469837825182257606730990312302230428520758126293008166077056386241070693165950079981562449161188170785119485410702116659942812755419024308322668916025967574144908169813133745585077448408649219602090354340033137921920531698236188171205915482257349703783643721877647089105606032119738859596745066622728444152837772231927756867704633901708892615203934203298354133514812554509380597384288635839426426681811821798126060401152663503422624984735791604272678761411950782488786983367426603751885884765304475023592922289822737686286836243693073594479232794352364013364153815133516471619104451679314187861563453884435922001100889286151936570567068155317941664094109560618033710771665005953455836100673627232469189570799527186706230243059952241694269778984860840051881158652562202610590783673934480394386020216727521756440654483212307178976983761638318802331083465484862554672263504116913775347927579958616555713802099910148890633865390516435701472908060949061834540083069455545556322242264128104968752355967830329409951587899272571387191902774420752589975529727336590032685200616795229979776643292992488282932256797614404541144711523483683119156886768915219864212827439909326383205154573864490502545863920158807725685198111263886871259213266451692496227196662551889113426506228084530022602101038867664900586392278185588352341555102303241977257667943306126870139503297554777830166754768059575278121838325340903599527768984376729296565309966979809505771315749761612504555372896296930609587304192419700507046665224715388795860226601042515116674049467446647993060866033718546139452447893617968930027318607600020352928599354475435399513135484151497791117932470982795180676636049478546540130277937549177085041660924928142662629540373863836083756671497846444676717328267161738161026773183967467238396280540983660086672884959022045179788506506617539801767918822582027865099089082542119127970128137455440138761068546400650653641285622344204802370159216896515981080199883847234351200172272430814379286589019127409497633033881299101849271577256458573785346605719653130497516238312715588948310501326932281662389756597974054807864444268312574200399096288802249410958241934291880133220409554615010119065698814836038917386648901110491743311688990459406864222181593743226350333014594627819716720956330033897015288562651355307138355735963737717845372000194519299476031015001158720810794417185414133565870566625469507136472465551432077906251817316963603515146671407994132079070946383084555473141157517838669409763828050474173960550263443716350769196827672181353033251691978075343390710579871266622156722224286326026049188323345157593828868773644282325313101305029404110842535359195811465866122982492497103764646310622024841398095731216437271923517279817147323014868781738813718226740005130559777163201297728932656324648827801956702073960614882786941979476598695486630160402630654519830940301504605121412353600451595440572291888404844099068745276763785421116307442106665019508360308112041147909781632890467704648707335584870035527555985778774661372238488710443609322191623564962439433834014049619668644342874173621525908865037314643804548651698612323069430810548712866579263623783591317778886848289759527105074981776062881923026687988666347639342889611478331239878765899267703319321569173538470954087010550126219791584820580749689471421115075911132311434238080978700152023062616649341075445826171379684065220954054338856512789219127143959179031862923421336871255628091110707915234226505662654353089522521072889958314624668700135261925081352724068189955435415016993494788740634381961752450256754357642396205777287558460638064206827177070369130630600914284524140874075331981494418815301896703363493234183940212349092832863254012634369670134422794580297623223170724072590225255429109180618279827576959494495994618918372626119378193905954367721410570140167829892511292136480467990192913350912271510219130760589846638422612034340677611857876831830228879340250877976352534696894863830609558224124756546635912114164777744096717310149639220818754896849694757380508970408417484415266008670539186979515875261938999302959937712330002139001990770732195832263683792381893788979630092571140898422053897042642094579392206102374642921125590281736553494558986095456549079866014644534091419131865175138767585009590255746708416035745377823807217340298971982397472859825797443503632479753771435861287607130572255602498653813568662290567905846972214911003760256926991542786280496292214631186503457692932888547255323425497532607358396013018475978254928487609054770762456521363293691382157453538071154035218001914606417488207999826699789553915978268902584697810042148468614593294705800210123317009098786421736798150378860967503638920627963632422548079970610306329534977500315762808263081268708197359776688272198920220997914929868454149129240401118054023738285347924408013005696293329608712927631468946000875760249551278163683931722462110094279617536070706426648072014277517554603307650081727011302598489878667598923222666811000576243025885265105475703866655830411713506829638474993912100457673192546292631852143619914791953918800454110248700041463743685015788321422434307193043747444150090242044468757682327603613326343599971068913594682384465578720169567695677199218476056602335997214877092203486985367750282591898389061999649431606543880725926074676230199079655428780478325592931219567452300193451311621839790420685619917187470234756593472553378027716422014920861047115622844259844018620127637078423652915839623142526937950927427264788239473698083728441247030547532070774953329835579390375726363602534570964085098632579867701253984681058742935941929752054491218263215716542597739534101624724350148700064319310834856521676142571114287905239620650029835262036893004964035300878519714841556141444754555351621118057961807214296252135845239607811840085646254814127484320294205158229280086657841241098419080855712830231847946472176834479235236567014967508429580202251022499263781629416163384936100728548411182982479121769332883072125818842533426390248101374152956820290005680940946287660317849622847176034555582017828136774997793077416002818269226046436805909412265316466301784051739751526271316134165907218544755698790905151843978177285152004408208528263013987826745329680210508296617430133886091479183248360312250728445824562085637820543602810977135514384863167066183285616104323373599848837237954194298574861648376299773701962548071342506367398372627532869048424449794550371119915469479389871576696050947125259081529951883546491829057749836572264635057997991287955537382115828328870067838710641919205111227659408285912480425371383849289043239376198377937943172371436086786594134131015520025278250727862820419659343152406094482736553348367537030114372205465954554849226594415178185603862854424474177845647829265761576442391442706960187208275400882018498522965154604059523016324517192868183913352652116486795502645380321096569766809851211366310331897743498852799853673619326449187867769529071620564661280692065477527833588672803669987165454955189865885523164277380680767089114484213786826420379160124854332866828408893680193412721879107812336074885547332753478639567398579375318971321463108300771584631532452903128171711594389043479805593859414243930617022440639103259362798583246621481540070604748026531308688823837801856792384972967754826510121958128743131310612816755228370693031364390299473619601546904734829034276401836527014537904482912478599509193957058871189563408751471936493660467285997018131008930245101873466656934315583014101835581838123662404932872297219494109287781259472968148764993930586468011920736143106033825292121610701555826196353164758085123395036164004205777019314132304448334954671460878038038226131426783349040754597525599570678835446254989282156652066619217530503285544933982902454324943784928468958646486686996403421303363277642278737487112527665980270042471598803993546671157799142577350929748593232157985585457388379454398275458119642525040069569627428549767504268926924338800728610201392355630865141332985248334823706798126466279734842116868878574811366271946658950532524056606332723231775585062051309631068675595405336291473254705181045578689142079461506615597183711516458390876470674335818400680327024370500941912989203828249403356629384060391199469614815026743334383628429821913799321826140764287554611080868466444520683274718663199487729979993879024944725837292111502977184261351880093206856667667903724266843915874166599918256343447488722881215365455072098201564348963019654831650716611338672163701722237686410289929673446411681766447423079114608792172770115418637531076575038256712941097279230688179938347963024495075965626974063191567164963512060041914038866365812838921500985978985882080670423863290717519754186366559730940566242465968882546266813933214463986096297584112265611914621960420205720851590557764333135063242329459040915862099626663210563426881293847288582241047536515620683812776943508904089575576178817041975087241785416679828247215424526920603186854182187180869504058584077236987631075487967701498534652565129093021908181260987069586257551314636776455712925805250466598929976015457678947878265151460249568553915066268172429738795289105587005360395215054833904754775029296453668854798832896963736658308961391813300056546596494183603057009982195339726252359062098650613283853424785706957953595409080552199379901247638659575832663856457117615924456782703555843168785057189035715028892424045277989219213321152427507111305346112161247383931034043118675288963912322347341230993044395789490640911397596791897573350132989924711271809885271017066229485300071894264630509840649056150415449324129369870114959576379828805609736554483698259510227937086700934836309749857887165661924259350058184173200244342335294626068799796231914494421596068634255959768200540527279033163483466584301205103977932545726979397838072473880118823869611116729529839304460669301961717500923227177120567939006143410772399698303662118576524650716492610073408693220125593068747040323735997971156227571800582553079661742114350725555635069124124423185255299726051075462007610371014772247533718179383364744189556195794876147144366559592574018016613492464089192473276733741918867303926901294290451194650873860532176738229124305538808058534290652557403168552000363346792111655118994962715647139748889268453341377071227735382004895291980000429201640381375872643470563961393878179534733873673378859247950359593338294616858107452325733356511783987025462652204787057718223868073672187514710618870760121242336522077910447065347881008228078286726126736807436257433553050108535344313857019351133792422870384520364233297434838941363959850334855514550232644320395276829319222031779486044790968089991423174183835972655761193389386650781488003750896542489023886737386105174423893904514792760574402769269809894542478219877961107174753219074769715289119756443607316507623238197390160851162450415554881891134601298198236260632083487553015829058985462227590938953790162101542203491216299597050650384226867153921059392562275243356182748240296694876915508096141532142425342967201440443558395390960667022530760323520519682091597206558793967186164408851055166193423204486330862400121307820941015973000409774052890941083631498376450639085350747053761078646009629503626040025428277310012776585336537826892604432424775214297222371376188947191359427946968535514090129289990923715133038189997077499120123609205317717224009582019802553609512028560893011195056377207943056964104745609753063435280610355530206958505984670865295576351820667225524373047675559063562042048512357068914424445975088226177151266632018146643004743347051561288420151832578128624365279880980134547314830672212660180020646847400659510701189077992182488099697921067303431631785879450998472223114489591743333180397399373395062070393136738362508250609416382296039264288924441950378950157814774603305884537224555003218577900576096132607799851216211501617033366412579243192674729426579512413813787758280680430452349512181341494165121104217845347868354103912402655818476204299099162443395162850895397609793246377716832941210522043628610253663236652941475664805972698188712624759105513349662616033837343752127745215157867197633892793639630837084965433628470299445351086784186885366899436386627012000458913995510882925698398761767162383126528473525624836800196691675721761567335508783440670614923195785130861596092753138019443413867676894115699812808497044412150677001513072237153806691646852492098886289811249434791866742143518358076923408869235322786663988703936522778317449734972182064251652000601056929067843637694689622040780011797221106487640191039618320190818941838681178029394973808549345385855876458521810334208565651125846216175542034111954495532105715558065219502729671757024051524737250208183641016254344578432731471844639622614220262800878119658104867523444547855005846901595858050240587219181726653364493664229699674724609898220373808298874426350973070615604705068011627395294949354497433289677207568014992475608411604652489731184114959237399183510123062437729295788233539568385151902717709811346937399078556161403434499449339287384262056085032652487762673140475057760049124153087698541117653871280623930842947670720040236485540381799562649929548723003286323006678134250443674283225832675604504748764580386700080390031562331490075021830683632995454171850222244941365482549284217842000661199563400591516344603082888923699737591854306953389469503219984167505940647520237707673169032900934673625088712580236026248902552226985839805817229613280246008978883684896904579293365982778643541303372580391172184152473185900826159316424880288287606593713376433039613545295766277215651121911632845623766170607485694598760404431053086563112735445857272088700291952559918751254691400745586515552163554244273564571184319521354461158374983337459827558612065077560790437979685319708029472753287067443057272437651792906554229269260550893625393116696446576522692955171076397406870955773116141334249170193282630370557212982050210285007657392308666160004775216511253091146277184078982858739611662896816541410497932535257711193894141864335259658141772729931843254673239606479552047018773219173924103401988380458464386615954418357967002155791352096028710409015984115191566077339642782997751874325737082629854029483419886070735980680543023960947311908576518892426079683302392931049422393263025571644827414198775996532655619667760142771699212506859814705567435441106117286507422206188741311060238897078811771928243042003716986161752984041646333926549018304888287606103660159044536806424284413579149487065560498282221467531659839534670714498171605321085474041585449539237522407522431031149513919052768702286641765151227293594282288361909306910241949213372094744510531460213670530488652518744103295129135441323686310590802671005190840520868809777154087150226878002275125510605852186261509708882869817234005466981310386922798029786911045161334920860099522868795188745955696021403785312997994131858274414469411412101562505066624024006154634688625165345844524588401054915566740818005922989518560480209314938860193959648413515838423898805667849275148779130779254816731618970994847303981977073363732820915565186757738067349780498824223567841237490591647947044500143087640178747861821750752983041398805351138576674550455676538435844261531138465894898343516895350979399851524889311171449828459498641445469297928071415651352533206626105131500656426681518591989046547816409579404505793093770330136044854459331304699637336958302937008711430258496585768318968310769969759164776420641356985367350714964272465581799977606072185940006062278468251546250533623780051365495939343664174444812401891220498341147209301836517590519474115270375530809338564143572751132588571742745352002587827811605309686085856729253146412203556822818047612542243878371826585775442597605109855142120701016244659145641861792956551507679709146090642095509953771025946894422692064959889443549555460308242561438627520954110594949468292532891981397531800273300682956536019319010690317731065592577987788497409528018657366421485903557647073047478956672227412728873143786062915497740801173344744679879781209580901065277524088190916975535920619494628742935062920889970314241097437400032371101070434297602191928707914665317680108447964259417388731201203603553179154782043548347236634946299940315770754450329339406427438943135353116406774399525248753107922210547525023248946120354677687155588226011699233308409795072303120124959909117031385972176771563119018591567198385036224576072731732408815436306618797345953383283630315466290594790204213386490453457458026494913404666996033082247216032218386698517659274152366995071221985752072366553207506089411556664479539615819114332762456683033396928445159495387155390920571284644931613489927957544245520392794557105973771141255171356049251734432854044667338854726060039660074468094457857374897067813117540606189972820443447852714031595415801013784256650053120450998129554803552073781226454097628461682178191535169195982087148606655343697616408484352436797513743491395151742810871100587608627188503181688144918628448190957929503933900568603931633552172252223710434683160791338125726222565004974917405811518112271450595954922310560493874672744702891378740395541228396543690135031309403825793774302125046600912610348893699605230002348257314055426860900799557841631017048732359476517298712574498390974475339685399899727190883370511334714450022374251316462301809387987566016694333016257563390131656543047705996219598714634477574212730971677479493190638279448292816712703406329016762688982104375659564767064695610378621486883962711821961803416232566663309332283141361899338542407444471128640489889810832100330406536991817634023529534977996750748807231307796279422722895317349505002755419673641336024926636977615913504118038873124786212174586548376641710136247591969329529938595785371337534393450323665796589392775907093782078319472544673363325038055858815793641625668878484186706926800539145222277347459069345475740932482894303698359756575059767773106439693167579274077701818860538817371102936935327454543501795014901065737759434770057345743208479883999283665828746168977802837854212869711821862083880186873844735583398235919235192604512143787096372854112521211909108194953023259424960572917534808315881612310136729914140626748238450922289255504909855694209771707830063020645874386108181870681415632889268407081800270854015570648309334067388003531749124278643595067001130820683991984203142928503904905146452590438797666519102575233191616479596801458974456285212958398925043506768862887858623539284405374352476444041702508215551687483580423558247648448373299188049997121180123177608761901297666477372581081013577485334718194340497691779877314526113729550554509186520887026191399235166118393005479602896646491718881731475350303069498570491391164531280923202096087195791140441713022282468507195968439748993254059316459812788327709474669796488680091980582939382334504503814497014472685835449782735665171336944904801456866765495626007489463216352311918762808959951157984010639642171707789544806622661067195293989483919054165261299259932288125194820586545370132520061266482618183300934443150222870565492725299997870035604734677246896641249668447767091999935760181478276364582004195257573271005582469542828697593520745430777033695564056789908560253822886720656325651506033055744958935902353827164964991620852419712348201730526036211609146288567640418949321223751468629383936930074277071321338330421071026327261657504766544127206134508409244324635046972679461216232449985786034721985352050504725517457739535342184439751058307479447875555447602571993696744916522643687459623730177877932022746824874057664702811445313479269779567681734793588193349350588533583129195514734038335596691561887017118658969021114631042867609149389647124378402967806412559907320795187253873527765050331807916813467770840999123191303702205399837927813727431180591605305529320572718757725143615679281678844223390120499047209625716081202037670472227629602178430516563746209777949416650085478628116321658830041629422556390312870463957428404477718323820406251388625766918289512240128392694052418471690242960158294491115474162770308854378695869759343925693798216622245725539433116383396690035015756592536443363590043631454630910329228894819309306920645577606387663121102953352229475965515792113587999839644135934462259675078357474825698087290581213447861119866653338177938941675955694241407925124882376036970449358554354755266342192671645998481064467795065510497886108329197167558390203994387368462240081276774288186359294828383787921247085373148740205670380020620095831227416319022338478035304909846145226949261270550432015060886718259042157562737754183987830625964215249621563140307962645937933335269123178385738404007847085004290943360323833330712157403287107986015737711222821999485423074796473202546090746391368328489529537318742487684648890920611377227205935165839000465658370805912531835857249156268069286596502742383593445203660083706251179656512386871155675067517525368193375869753925710042779801242600725802356834094692357948995704472652273421787548383296888478822992674356075698104075444769456154594335003665151395978000931936873929347361746019417423915085336695551524194717931855651329265701506478040446803053642105078093452592529795138797367865587966608733003492450297122495273129784273090654550256124597666113456308012411736901588127012936345223698410699943845471115224926242328331340866490187197663145192133746939540987418383595471143991287283174187984492014738271775210851250359430203060878442491475516740674681585578756228802836557577825276530011606980383618134069415541644040429208136634296595532548563295912044861417536349848024369092001918137601661751741729173590994440374208792231150025455522018158143473742650532233118989962832051978482337269797852678834064783279382045968533219667264040254181254034821455303706086378532518435317227553605672981435968612389586299000595398743476713201067740586953513269122045848151613956115028665063413897788849144283209652758427830366592974151254446517842038893210371816120828637237089348763216860566849007596657216050198943494100837838647339243041304566981237914095285307102674971442079694616280415849887028185388038369974830992266199930351879521583958720416245048061539634891863368341239839392112852117508107499306260090249355720097660414725684888365679537656948368631400323716995029536128191356774609442090493618144097335421765174299300321824873936899518009484111367539097449394284377152665978195142317610794108000296988747532140416864014909090285820850701035368336378381266650253873656359232566215179539334136442361972155794129571850454939342275036653286459813711818763761858039296907999049670728263380307753017368588546308978764035311580569157769291257654884885982107907401890074477598522981914142195022887414328588771225231330653620859199467557114684114428294339746720473078054855634171909396370315684671856306182175584974398488130405596523677939545135447902394276822657267236019375117752846423959463348556494681624772048229973455049426690783502778604395603840640985367895411583460627124941256259815184596910573384581752701598638435277712542712014701692106352505413358136041149982651815800356915055563891657766042898976452433684305114068742280294575456136983919579198603859557145152978161959668668855434473837458007108808648309921057323538819669929625578317659415721122854800074174536592538427473975576222861811494851316535591776186401485610262949459591579539789044501147778341555922941640153289616692545871828744760677340576728545968179836752589208722243931369967552538534458381194215892449501255448197965524359459262585168246685463360586579645543429878716552865576148177087551648749027734220410007808418738699174262393020392714310968674604408395638018371969752231304279675005430889398044524774784396680247816959431603188448870084963488397151596356454319685802448702744869650950846657206861116171223820352997146355450221861976906099660417369954503095178626908092667508069573543737651380855786287706308639924954549350971505705838247684184913247786420090028414436416551358692508293055471934277300594618845605744052012044417687506162141707624269324549405911525529624087292246005677029637206258898796894289129414176161351986079870045192680537164090267977781708165248798353509671657874996364503801465223816712439391757279865264140492456620077782879428847186086787294112662762035895809339150947238342165864589109903378393136592234747282510273060113504109589257072146184632505499241078696921651950635078235580258837071500722992896408700628458896864966423127315262645371801527165678010944654483084876990760340445252695809481725515172506893867147145677164533327098147295861180681481062491627583687422945037496620658656394044264709745208626506194873794571677624955164143784430715506844778274121850201737901954432839652531969303769633952908965771791444489264496410015403418430358237998656194272206377293583324063916020209131125259734248404164691343772799702471553291393522533631156926236439799036167635469029126291333938105509178489383163203522128844515378371573663666486796338173545382556299851751883528369763359643435356625227745980336973470013762698442024323779985443076562747860289235823916158752037505941573207175677761904252678863992640741103002580671087911399839685096889911263832446521517905427231941015251537995771056417969850121390669033519279734398368273767129570899418041603450113529035760727117388157013486539881572187369289981487268561878725387573250557044350167694562643787394235489716363344033008752125030567693786434567908039123803533713604678900020721090232259565289041665341771749927987360804787219046189646699681758281795931902538194409061829188071089105372886000860771304452848741400988544428573673603135490501830796767543517422461746164646855154536969554380456629173999156730171723093708703076215181684178051668079446012204435096422494759343263376869087918830303718629938315447610626246370788471628746680153253140953282164152245221237053963096619011971706227405651367291257806108475545672212686681010599394062595592093566328394528731574892272645522891480390981390952389556699020218803313861420504387836478752264343624197687498601195572240190621882501903590891201666438830314638515466918881451266389497547465764158864653123491428308698123013739214830934723339907485798503600984379437448553433648110674633351955842529911809608708975484954885756607088948197452399693674269269862362221297854071721756002309513570493054191621372921499773860490061842559277868249958022324030492553728258020874739754374545198772940149712263789282186355391104700993940400762927337986460713830742221508571080071122679151832738712931509726603040531955119985591302216833617495702376306562769710774358605047692885317257416256032043953904310157806387735210333485991801550358322927119706411115982008188980854762728710454562910506163971939867557453451577832949848975923711626113839663157682255053274645084470673692667829768938073310523618316863598643831449443903208672616382688882849208172440136898230095176333140933056761080422353906054753309674955946204009615771644501969901087641551536777944428922058442978475607557792049845079148312604009988083765624669274987781685779030149615861972488098725713864210988704251528623088253785255627800277230797837431051568637144209820758383481032275646373547950951269738149555251479248258935498708297238295850178352630091251895913474877718558529761823475411851264594734562197918132558186938194893567226545110295595356282360279745694943450880107338862188625562126156131491619288309503993859703756040525575812374316826102139937122411870415861162120946057288136896869985809518431527767115421367647102949141633196372816111290491714841824802654245543049828060370823689787760487272677415285427270704502892687968066782273006376417431813826468623937211717168319036845371281918267380295521803652970047843154784194220097252407868325079324698969785535075940979087152261848350582255992222060456606089574900306882045943709468990811490383299512406158673414406625661141780439793444353947858631220084035212172298177634343535705772104224242151633505740727038230080729178373269342467963605394896941188628385829469117409140176397256767395061131210584617869259695474369622704523559229919037807055673113718511826187511119373789957240985725879253247825897561220957102078033364238532328486496850857311278012449209726234989969958934151471512041497644488331748293895315202128060165506555985259988179706994183202891794953531517040338136419842534729231738973856107803313575839844552563833985514306039593973221223895809855616113498718750050676060619190469626893043974276175981455456742500342373651127409113122511336600953731881870673762849775419788060951576597889190647746701171913617423117482528683877940025276280885283234371174464969732581752798234555450648446965393578717257568679421684939322116871462436533254710427060975407052247451917242270137135824847754425660396722502226047715050445448424439221920702438316255313913680249001637093178423726226337480945329384484176071118480205127112312430845488669267554140351703785858546851409507811383868934200367612689266227165651631884365140579235582990907970155822247517280162576771014606175250375731670958914714913818343005717613695265985410848501996380819908965676639098530173087739756322859134360065959023969335830516802713735067135484611982867912064328538441209870194405701310205968726555836708705429277556146596131681880908310467163763186182421820088633684281951482248547146359410667293061340174592097649052854082101023997041003298040684763811478917855945061508698564261094204650124124348241297827583850044135403666879745223814224710665763446729121713621325782911610141275111795994976168577933892023018081588779460371659448669528383444587956658887648523473194775610234644465856866548252157214791230022549749695463239004985946140848473610348911749327913495554395086863551194802423064750179472561258712921585985811144581241319040538890796685627381936081576278576888779200224187952220037873014591676711764529180537945078339610770888746317342909319441142326385773345810971365430078748187473864351754434971170600862667878942495313682045757569884420818897173331824475844499065561601953763622969347976038442254772170652930536508305992693791639777783779426710157855039521154768566578505672495383481757355651057181296508736758613306030611129196678702942048228782573025303526209752050836005400755798675623977304702064622563345225628138923084996070381894183412520878295540654166717151930513191870730181438436664534360092618640497274402919240490523499162433060256320147957605100240700651320373520315100726144880648044327199805295234784397896690365450274037042464841298379679530161324152382690819826143519135434510813816555539450260939679987748858719281690820663502190726220826863910531322422196121080335517857882408248464866109435117294406336916142343398974024320052391450980709398223649326049374445926001386826652959283912602696235890125554294594799148066608300758280067827355767869490463893830198411007092835484286783417935928184109737520924102721117833319487739556856788746786457004752444513570894326629945225819802308449915457988525958812448485702115991675656977177813656014331535401681304838680654580176638842915204697990267119112955828269966840363937415443612124094892393691956349789987661374363174648017029892883186749978495245764082589136416643428564406051166193642271574289790699838037622171383743039584456906659980271390765140585234755439285304466740462433705847994860282697753272613826393898386378570983927474316952605051261565598992846658385182853942668171388600591615600695960424216491140817873886701866318519615365618514058355348691658618812633476155152319073819081357557798138414369699684645298821965859053067815027242828343582696599640604769587226616567650534717144253467026188942846110685821822903769384330299894106801974653270132963352249737330737242501158608347381149731416636976028118722143752999297631217369681674435029353783249914302442755240141119603951628326277544109745161514686509457638705549858049009219709359085352235483813016816808032640707594717309478306919823395594744433380905794901735311309500832503464749462930567623359747888584213601260788173441640778451059029607260675583806277279724586008358996257235577230047838455446369548631982130902574899771578572312590726563284246189284327104286058694225035015470135989196637280283210134931617139729703905303527575299841640124872381005817864821327406164904941756954144571086485810757963326501511421388602634021533142853098761409634830517720331194287539326307723156956886352723092713336681287631890514800216518700215794898629852025086276904530986036546544765543185865601399026339185003664507349616489083755725843337710922953489944287482543918452900007665711244864191031109783048894432549520883246328755297929141188042281618791004498971849194983753618088322263675672304385872139894952646302913051186033473033780712676514066497525059116985449832376340152390254006893657912757181841892240214504943294880487030867377997503099170428406993705549205833048381454974470380867977039260665274625578322178854579877788203428344859225598104795644499447963305470903972740494688486128927897719831553805149397034653478611504137095154915374891277546483259993347788204218884356318755876053971977219605307578562459825566334146761010115949823977676294052152638901121719267898844935346991387112480546589915510050993735094924974784119337034785426297530477006817798995774683085099074294361438266464590626555303674209597802265170056266717164108471334126078922010577773143309612587294959517904754831395651643070400362461769695919938126484286282575894135244691996833263830341539255875125855691605344168523885448397517030175781285816049249017754628510264865000509774289737048124072143380497395239718376454631818179694377050210413870466416114229317548761939408367790321117547834610762323419159970011522395328638121979851643378297567862426830070747217292275626773611793207943406083504501810914314887422732583418658366990081697308638768100237529148503145053933823116303511143570555732222000936666939129646653352705184451046152534875812374990131582848912567024762446515940453965163663986704544156609143176923663339187396530477537342139061963857003275565373596377987711026487745097731437169921144979277886980356932382298881809013608753231860257827536698750196085175026280103120176338605321907742301556997945904486277899565849204282864547979813096359607183430757187429054814323291015028926421395919204375260928160391586905453968873310239604325676142922266689225281131154901220531402803220227855405795442974209607971778080756335366239273828274966910205804533510208651891514455717146250988823924613551310388081074515954177867138559762742655734770680408310730391783673641900006558452336225077753718244493137508115693815182741598735487329917506903290560554362552584388879339745677313870707493931441546937362916230984067572988529725931821561589650579887706047188750641513406031635913502485366346160867857998524218978598103107115876513988703990250593519453108925946244025629965452956053294571399204895868689077185224136300876627540686864152442048155514862403982999615810041193097552167372036293737450440356592590618368719017739422171752766230932143875644877277640054889141867304582472450669757118289938951083153679466200304013263833926394824441931963860911906492682602335088924122822303022049960029323950047943620989339558326252670776369860499298818452231875725304725182803322166721502187229835788883942437437864911931008235186428314960568180766230063054939381808269437383090764106555241099205493651206509665273765862246273105194750793942582307062972013994990656260227424738807307482607785603646184772940367432263294343442634766955071149922462331541334746459715248283942551581233167037800988757725707846214725255617447556747568483889872508045219215461063792217241954508408074535703154050828095044539070266927198458063429769755885454746993484876328704772119090213188002417963659238681167168921629247172375061514235095984146135960441009014991699369110607575375853333287787978642056379152149441391853314707483627760460318228196304622754454415585984886639624661752467962678042748419362576651049104015087976457914444106726855588331736509532197628676622552875740178800061783961870684272405625079737426422891044213115553412697507689973953488235273577439001244136372917090030788452040853621983137801655005656379854728928207422001545731860508527363103684171570448982956813885021250097855761023373116440208416605091596234137374254241819303223854378812479601678696497824937103889360897561808302424132879274379335417758353726910870120715562461678753992212999050731146127726745199960978527920271713326014442058633672227232970724015467677258002852684000246789858447262134286280818846082943537773135865333700315600637398373020932858052983457823614009620358612876070354859735474365424951996041183684700510138764091956732467474113785348560224529605645441222248947032929932472644147501350649107560951685958918837662446595984239679181641060758449044116799834625579436493096867682540838790922779638348933964359039607469047074437721776900825140455667002233304975221403285447705759915871642728267845121564987279621900868982349250767015830180303660422189781307855440189188598669227729097360155920860483890036743381461803637934091907599889767694049728147800850612492178278553204740123294631631788173830667717368999975040021875685679374193808933020937194876180181686750893881245965456055845446740609648983410980331584780014316031225728836512377099319523243375501054776761300351447062163574748823310619846792163649385596226423164938203804588333085656417746117498062037533861642770170585060630259547644477112050189620086737240636768673845388019928566883120996864969662735460751178081517603088104668043462673879649476597810996178740242896513161398402114732297680403633002091526263268151228922926693771636367326632443724309892666707758573092682256875959362740226325576924747512467853169822117181636722861556753865754971411613820819500853419304229930533215161681004070781759312663086675642534193368951383769092111644697345472931441439435709019500635949499044978303383520640773035505468898158643493008857790714387214669152986304592138062414931529583240384484634651128599623265094882540436837716371237704165903254313844219110059762588703707417039701961919404587863361540360036402450881401630821440544175109958508487484750517286365204963372448072963200102955300336474903331521369961905241564629149144303542881121863524391010210599799982097839882712780132231479003951699087328997791851679398617767059758386082640506182177005314616352776257602902529657850880326281653404012691410558265033890435552006085609604164916105421170908958495714995987370895538540047859316208746279061417243697416675232010427837566893543203588572367034207875031974368808693358383281694044151931875649172972488528696361576622707785405289225456835370623758008196233894234432067247460513863557002584722785101597700960795222935394479163259333186501817724562216874941329099360908367961102969009803463686161649470577227790637876295058501833088539042292392631802300331702703421752042685949273918264689958316256143779186801896587368732663552386184496859111195850235878456823778913198470027014159344260743677905020575846461291709000657490489944228353305038606465022031807645777371772087608056110059671465034791133067223124481352470483518972007925171654291675588139416862822671075916780085608113638932661560799151269232572335371530642722425213305473747866920628171170400802382561596237133748488654539743702036617300055185127415885899807666861091424630967642900087587897997671314337159319023158819302281895139144080235927044500180379817887602607075094902028354040922582958791179465623251275484162839091276492017641869911773937911138378551433642611850847790299459367474760468634249554977011091090485968804045833412874809044434398430643096116200886320080208051709603633079318920594987486693080730236119224176304660255611756165467722255855312251732024594630800556878682120178566609118244073830519600359839803866926154041290720287029681644878179412679449532069877175446736887474355730803996084784681795610511855077686335944734441186197959552640045800314286873167310637178697475788367014555588188284790242677788766353182013334366910905643241783632159337650305595797707823932315681178387350227951975705445874108045350217915611298385494457373349462701094603048207387625276010122782306477183406486255961208959961796682459048162969150622182409719994835768736028748170559046820544382108035683960161460925766677666215588602488167670205125355759722802873099485911081018386831053388725578890936452436622817874639063989313323840267813124596340445317681662533451755618436616515777363611707283037956123619517915206255990143662604382138207688110505932047175693733679923761524440518706830011840084430342888359752910029974504677594520025491001760694647169389464739684589461437732195253918315778267219465827981601857084041994354898497190047238064656737599719947646993599753097032452390481938055070276039750562172832954912537355202206412717982157759693248182799980066306000547078719128337722679301372493541741440065632935347785631925260260913973033419246579556717887475096573967685057115226344800719572026642684884980113979584540045367451228398762361954364629603067694691786017306246751471182231368519483478886433125171012346240211946921907724082312445085512787079530008533407562804521373634535097265806008665798835814184238528287948985471235256407265338312166363682234670703194122189355879665773568437757332558451170755359240604311233566008754476909528025299181527283268819009674500025437480685660794423262329756394600461088480601339868430151564405267671669753977825366501103400839546089126730869021091625050079527299454516757497378943367809401551045668858246351079523684421671705728208545596857606849795842320175690308896075257623067386679104377963496564576448208844773580023763624000613976552532812974560794001181256811980191576949494050347523128616792953728169996106192392062127362167363461381650326181371825625171504350760047743358906995889576311989149426582499562505701614867225067047742305884281091577570402872873964569356293039004524756818692005039399694176816036264117109446189697937598794392626999428267109187907753599738082536596640917437105543010761701683980382245621728157913546319628597051250893092629480838643377355450092562303091166689824376021619409764679293968115494217246302545260458441498870976718642185022232125078563556645046730950825280203881818078874535921704657366201212859757625643433453020605959166657746185472538743526371066762042342469471771069525924625023557685486850724078941216818096153995473412312953842741485960729466683010131352344095049326236185821182518543609789960356379235039455226085556432457865294045738583370476301469407793446546983008955761234352176644137065682194135625864026856371374304393381163346878529654303092043453848066093750387599906887223285436704500766116230148686622594776330611512848758422316075056666383667856251270948990968257817614808270267886522740542709438437436164418351080140146599602299776882577345179452003590998358489830720926409920247621025463728740943961173950039205522221067535067646278431465514034001302421524944990643363723152612866400392620035741680700300091087689791789437284745370065967908093850119426300100262397351943272216981684246799906621256595591814731807123931854772332020972306973898083433278368056141598215161800222592811779844993798725922389714907671366385491381128480684640616017731196854458085944044488692139990707600549673908661027907499076318446507079026827751055592490320302572425694966078582914106655650505354546727812584668871953176409311485643211803103513915969064412239446022416132272169134985447486619154972307553824477173327835183969314474121638620051680430653295692353983646879760572179230328898562310529183125437638931752584914347979004792914824569153049655259285192478028228454537858215020318451510557821145358122765048476803869574365377523888466003972255710041169666429941915423580050478116524745754636293117594553803719875601172058340308292452867684818361395737414164662518232385626949575223881397021782489136056994328279208130170245895459880800650495947259206315955441353381020345250126167044267726217549873553415996405611550634470907259010364140288908811474976706031106866128053524951460484639092793601651576346007763789314851898424088099481658079832397489921898059173560175041310601449199925093011593455103771456932134049571242350719506731322319636567604651159691313450387205183687499182533783912414979805204806064582116745369865711478742027443996119766646010888512716276319120194637467914597050852567821965574320118807871337234294558899365712088744606496854941980296424359510528084986155400339391910728529850388337236875555545946671134943461738158240158834764564181672367006521777416728660630679826025085792285681755654910365439809734094650213306537126064142936346322386827779242120812501638993324757737166046062355437398964297364529710662819021356596728502352729195112641162177337583950919671596648352283600156511433961940185854732228247000281259860017917128668631083561200471168851783754182067970742764903173839781806219304970475047261155779161150242418217770375388656119511371697964278822037422438302060857297120769251067222493932832963936360735775476275292031771458131791594779890500242458279989857236465695601023823948239807134800352331106358418368437794310958494441648307255780216865216358332597917976637708200893450998164762716486022562174400326484289638966425015680699647036759256787350482692341289857099841828737625726489216038981749856439780378046457895656123040962196010214411065269865804374487161459731499648331351644248763024138017457639481780543666022074164955583152760248910504171896178495235399448195342974820042766636418064954150768029618402321444114231428932955579617158403273729496652694538366481118352702815834272599245745652936448727952873744770832868893169259562618522218564589329155090637112514450401958033814284326786227842965900232682148067439339623516052573055214028493525665762628808415354168224233286374343955028207523678129381711191284584211879222014683676972524058673909558600179481619294320921619665221841833490729136566936489417492543670376811224503863370216994977981825726458608310274541599474482172203311303170350530550530335996101454861222604760477455827596934081397441126546385210084536251149639702166718805928294365095347336892256636991213409946203885269330940154259211249983412580919771613305908765832985690766615802256064066958700250445505040416020964496702919876684716841330128028965222934250830169386185114209459305632674720620318343821993349687451000303293520114638947401911107437364652331711437389445163162982705363072181596963046988917729665825298514613490694536880114215829298018156470994345910075318782026308449933247739992081597253686186918918479956669568343375238664891815066177496870758416304195638987527772345984693606619161941957725388375876302142196149730349324575478144231334249024607296843763333540902844507311831293416048358973037572146298234366380197417041926390541167199432277928289720953259603461749230138759136187077109021399307933006628449032600945176278953071769667046554995832762403051243402056024889395128893847687869918072092389609800465412486635392787939628451630909356234861123648748996038961999216354945721312678931816705794651542246556887571161656419944730616194471827216446580981304355984792959252730097735902646801017516500366325295096779630597370414142299080475192175476556526344301245766209318111179155840191430232541784953010619081787200361837156426561939503862943694541358855914770590051395419937555199618282835780844425660362850956054552186961617017889248173009823997375605330875434319680279226629654964299384121045808957221220421282679880933673849712808622713374376286965580334629503508591536815579364923904703900634791685267934189694964398461932425062293928411246513911123117260439426633274412927953166201650936994821095791427603914029405051217844192822374304788409283424526475876816146829902837153426944888608075598532177642078250294814355473330952169617350294805658530167339321999688635162474365263860308291100428832077964772117381329984173201225746144911568640840865329355597447252061895698058794774680955298270015350193381898950796866631658289989710718564705256819518067536224315453418809606380723743347472502516073541733271939849988217511901851870574684160323582664388662396662154781787733737812199525430860837881820717313566768381289289913293462310385474089873212891251830913697630723947083910835109657553080795933031186751824492967067963881605758125267835223473617585862452645652892184823132006163784791181670905318096513369919422367446683075004728642239995453504923033119509993136153424060089993927822629377075219872263792002545556620980778238674501580616807362448526166102594718775094365439932435466645854656281631782336606026541207696062176554557272318388018570584514831351559530522045446471697954181582707078099786005527970633153851661947342177040672398400768198318218211880054189691732708116172267631361297850026195773522617391236615184466200870185378498336193826127460868690585904605771014257658660136092502425585959247001904916471724968138721795160329272467029149013896330661043225618855967943512658595143539029435216048071000961427198483128740434745889993559108281726465182330267738322946728529326253246605852257466171521087819809828097974951527126371916958038054185002635428691519601094559164538029921929541927021156806659196104863444971991719471236333968165970504093109849189193529965933838154158036141946886784879246133731424010959138198020683633304766690433626439902555282450304777838507279588037697035842171708022025952393738490221896491344322745799749219054436059601276358376373350905019158120172794011191385138442184593966861345406998246421712521340599246481684422351979365982344831077938378748242910885372032196542277188108783823677209407766587877813703601559256607029688762151520451599263295042453185668494581370622660137161043237183732845583264630797921272608918410032383620268530020563233194589802785153932000256367977775654909036574899950645616763414747598378202473132569074689179271821704018144346919828699674833607790676648502780433303548879171780198686282900288947655999170533248350957431246566541835608095280942070157909313139766884201336532864045382970043685902866389545622397930576170984608155946232353132537182725101241125201802234925190277881737492673053941502205886453451921544227592179541911556872734739031725341438168680842516566382234905614107997115895900484529789570725907357586298574138965422693309036498106165367810156722457649195882800916875045815717181628514751176412666525584140749139725334001186689535899868350766901045188200272285203560553319365261840931052657807620221022035384145955221182820949483301096273289705046604090834240274464145113486066286918138702681216644413712401084293434358715408398169087094515179508422033699290901801442065806790347088219526145551976265049430145824556840916465095401550431192094016398873123206234547953871082802574726175000206310042121456489796824296710240710710429768242435194444803315335428071999027188579714122499191519699869796793791819303841139111419763199189718554147501656536599646836782769880491431088210479623300971453284690197620672365795920068959967024705966324007811230125607005561042286539968411189026195823210299346200622067054523429535451819455088549063425756228387181999071026713204638169575157831897576432774762254833146572985537438625224878809352800348928982865005194215760915402797816772785713498706247018966628783564483295303778047487805945874978400996129099900380327512407702087888713752468069569733799994930311868988288744584267522658933462584768109002900418755661141872244057819019230682518917320175559880363122763710178651965137698373422782836204884374978527422670711410302878568191323077771099198393135355717513259943159542781703544765804410965938002644868716635773990149354014847077168491594784578207674108032604864304564963430295908739426108262056052205922853145064596998406158506085480856387452367839953508803448589758076213305411267816759247168061192584526607276839628954315821100939322110240450877466506700339236756324948825423379472612423250791982882719458091810368369364698842512992387956949070278361187377002486824817461682027543371772396831909093461918899327687637184334272890928384709056888265882398665284061669052495898699932411146964076835622847469412737159423372206674689632141908230067416437624044688668120385504976331907502021421468651998909681510712329924645940166340156730767695168899434217978781525691773967824324096339873403551788914651833363017458813298660598816383378281808882687867835362748211644118173404216872720780917516195349637089044222722027221350138078039442340407625791752158834267177682813900725959318647464364417845931942697738524371633097466679088230485803176675775435377367193118297601105359412031938146148638131309207609612385218215104880012207508705399936857603180690481611504476277200079037800867560296503776456614898995428300192139444845513867505218868536031076026658879140400139122399051846546701502888977987107447652930812410103443487144514977376229384595319046207697614197729275070326033765887593592641137863442394973894510695309717663428182219371885949013681911307793086482785248438136679131176382219780064123926651178477866483888066643464760628448326792543690025921294805202627963721295830487259690986944011010865710366702956540598501569712228620910047687699631588160393929791675079030008227870492107912325939609830777118095915632120105211364152965955722859120716517482243934818406532321264381026985153302176752891808079099972935763188431997396109506375782656141297362461624815975910168607990026220823322938197475272837644734279215223430088877986411994869039018865461555058599240600875073287462258278847272458789227788314979319887477241955478367248959107471815106430978472884049438903788134388292403285322350085051822297106346836482550359701538348622707340056293657073337138368764699493454500177793913757613670581687198343827094752903434852212553620300826066736657275652060743528784774249276774078286423224582092548511979359819411232174657068079190812813131199187216161641673669548976422549616869611914238110836608208406678281321182273335361785160198083428662121398828224494862940637850988582460563992328846051134726708169750377333717686078523781520154765926601009985257367810237783036602650653419661226628936082601485230647247986860866801966108846759261616280684406884417835357456348527082278156769864859560564006580779563418581036275994051964065060405346073175637913617516124407900734948561489729489018644934058150647430617674984335795574433576799977265753821310438209073640176545677025470489518328702357282808552109760724994980157616594297532306289467339877279809096113153612888749654572385079925712017451175727881458745959190517754936936334823899155673716471653767014158555675761349073532093389321983563905891274563337937949468402083242516449640011030497916785809636655939932700042418450126883494930473175275232632347420279102073221804606135096043324018006529755881543589537863385165001058510011695975549984595457167682420995115322406559105230824262074528028451089400212741265481306641580581021304176104520758322881829219764481834987208528631819195516382005551179067067216209799428845912707785983636099643609684980211141620696490841598513854693139399766662190440842315842306114867652462457086921800981482752345641433578595099750890132353688523394730160454851539474460874176573542973742440726335919999657921521696568876496504594761118357556324274863292585437618486893879496644968639292701682683246214670734767335004165298305673701501696449154635279077729511822170849456588569520668506961472646925240105188815780009463567690375621875351858819881140333517094032434874311325540864948167090219074582632647832937312490387686748044415203992885320572717655515762977043912891578900723191826535677886631528768168702644074038105168755306557459281912508808625647122039074139150764479522720793491672580644939452575178871490498540393626729803745015435417031705974617363401562881353748757951523652589229189758111689046385972806839130123571093841872286986318437152381720975489960282676802846834874941951063472554379755562428658704945912960972383403767275707870881583727630826981522389775860221719330436572652031241589544113724945904174772180368667096377364694711024981519357649129457686201430115779489529335036059711748014380775926565466094086449702827498744116496537326745132603587895715991937181435497207850517658323898067574087635264728112688524061297757938289589802215235327152482758092170869908653039708103376270214376940582283182838761897727600192857214839841428537244659741599551301364193660982722171129347569579126363897056067292219496429260936547055964278571048900975162238430015912757626204042984356653325305589001712195145466871566387803742029768383438402488649351066032867798769255887188014677416083293761257248764785926789587677492104502233511249249064176189497162925552772148832741517391185975530565201905101841879869418231450592196739509391608375144110689110313675730104587663831325864280525762702189355779518491785943411313575373884496081328256392791349793196296283591020051671379047861568470863291280071385500781193281255749683078807816034876495183146632952930589269002379530533788493699185141043850514744554313144285242899705435223410234415531149607425567914387169384480025768138696833430664250214013028906647244957525182305516541014210723684293298999698086333508114331617867407302709856136389333845996630595310057470018039809613959423728239578078769970723162052430240519954330612880935744114440084259617100424632048588383415519490772107527837754785866419869922234558242585288008545995948635102200415767140722278984034253062701329083901874022316390199871089271713173325846792963863982722624397367707884890165597450740911944732170799732045934032206633515839561478668427320588193407622828415801473604343212603446212085347459051618249113664708522739311194576430750380094194312779816420348410991703286413040553367796892179726060911684829556834028740636540079301709003415892842390611236752032325790193624793867822778692304625365131523464529352931400873016304471113766582580077295371319417863138031298104793888617272810711501505912058231133846646721378483229386924923653720269902224637925049451833809484103044295375872542154999656495013544106136896598158250608493370766650089161752111587351670157700188755466003057527579131724714958728847078267660565945573153153835068262228334570227170532667953472123027208988263528791539900345351895111315915762936958278432619766505594531271749489413571133233201657446223222279185316007363833037478654869741747688301270452754274498031254178707206556079387114373004753426277822472005692379273193425608069632928937752086110478091053711920269767576259711815249967359964986059063816797812988436175658808632417751368648989067547811907428823248552214871485285287325160643249714075854650186718243633729692514775725053489479025991555913052536173033963219199533726896813533452783062430505533670754189257213336940351053782212525167472146421631002168837590292113111341113056388843189722080245637617671338426379865373974843848458548786448439454922756325615783572193973255529697163452625220706851302518944580288368652765946241648003442239727919790980629207646106642542844623919579432844246860371580424412139037023376394260847989308770810387055766640869423463472139956417257111265247425370462970952508356277617903559143364621253472103466204736466354788855531790622842909800797759853643402404089412457575468873816516997526489224019017154248233279396186871606908103018849427407891259825091023494963183797501707658294837004191573946987877601932609213664482906240948800029193336274209703978278781166081977364059279686832781371351309212738579314079718927301065674309021745718663590444936056131975365930484542237283469918225001492508048144125682287739179934669710004626102294987671054665659468957854828006158435418123617902473581506277271072603467799742194236577527069681540449527933386722791336696474020926748177827539477186977782436026537147214409526853035912479634497962575093201624875803891651922710074777294452011302870538248770523384285276492085557949334723807029385840748389602215424289075160842410562783365850970478530804010421016101558354318132232715190573614433076784288851786077859767268001553586790373458095115454359550757872348201523628036387776546683502787025241598097321575693760373069815546636992339241376424663461934237315677716953957937147432386352016610727566588509145112367318682180908708548092387106948994780079268634329480466207102522258989176326268293528184185473832259758028334816398199343103118187896203512287906826622955265871894732784240220784861793344517691821278364938630083731387407007241326780231389943494836596888794660453754829315884897090346908655048462410102553343375629799907624322119581039402798332685468678761437356919682873890002388201655091548879273855957388715379653598006504637855414770632122877919257655966538734687230115189028418007645617249589134981977382585818788300251173752427082314667975052472967941090729342166912727270372721169230935620780020586306573821625451779764958995771192095843249289796008571037498572851493858701745932470370958864453875135593450308001242379964728179029067952376684988088412662839950843683087783944818471640037839509216530519109791815054206521589180216066245308921726177482646425027275427893329965528783363483694916775313045297123016421289111722170931583029670399492005358486214257405662331641447064494894554035036851864647871793494423451955813666056852849545631201140542418669021488273624288482211849129589698737778864441829497531200262472301439674466733761559221255530058080009169555012686983467536193413632207074250869816080022034161669793601781752733907259470946032949138871154637311485774145588895204351957259548442038496828777438233168437455112037716611644323002351197357621968497826636155219115188770570997494952650620359756883819300127350292267439628817506479063080480414331102804460085930632754710273759642538126007252851695801788593277983095199037564456480958872363242853056391199462512627941571784460487641748560469629188926848868313800885825702692530928851357761689084602092328228403663816941311773292470125965187257878416650556180849382427458081189215091716293478874898572986049836624319791356909938718226013247944482277589370719163878754603609018897132861269746443314885064149817112450505548827441892552395010338407377660966066968330739096635877224046296753967414817688831270986954456461908101852180792654131589617495967154177448508125912272686987994913742000811304625267100990947740253864061914102101326429223463399158169566410411083982839450455176009022184235805833786100992420585001871657282356370103088755560561321864857644022945504551422178732319988420042350968778751345549664935056732948544135941682010295323455259136180493483374509657792929468448020988091043729408004724965147923683518231089556422656922161804806212925109112989583459642649029444195433586381614853786073680650260243458324722602016710557421654104464891605336183474078143535484697339114674492609215437552633213468441067053266691766359081240921021847467488273316171026665812246445663989169805777277934040978074744098204315539212570689806843027888579956029512165640730114414503930680097286344377789453054773322734014206921839678055458216494958400904842701386431830371138845477117535361575514196648262888435029065295017091511148765102712213116220001524294597177635555080358887871206278386784348319542547252541663482523079838635219650374250491233325240200727827960869321200470310730925258094770371044641270553753978788802696050020729237025715531849046096798177273853847108042399039708653515002605650271684586350070498452883198664109388498761047529204805466774502103954919463669918139984010670781293845545849117199130867657555771608432465838295877783933491876405066312396019225590859553810866148005318322689938158685161154599517002747594058023917045650822351953387869816184993840419183947285451586364829369394008441702696958882123485030177506938813559800369188363789109735010696262459280759397311592872780313087161324923006652896296274875268373501709931553974641562993969661692362916275767249247969165749155418853070529161062573276346403984914044840731199856196151319934307095439103284298473018861676783235700175820094295121286636050538708321540495364260803440566842206265794883160226180778559453492728750002564411698124455878377315526523776704047390403312692617393392631780996821365809609867607128848170829515534408462271309133520464117482019044870061175070567695687418699586842672087565866815035170134659088857859366755454870910875627572210419586320754713360682609338845806064338295498560699718678408007286074688824112144416874208497680383634324968215534498774928891828911530517881951998896561213526800820678062710334261908206384473679688992776036940409183566460159430828802735584519252282018855548867955126319503205414577968335699467382661248498774236858333376847203820564539418462044110618095771214971234408643435049647925624930968390357927811780049556386433074511969215286112904874964364249928322161940059402768744847454438288770136373951424044717688225919454804405839195556310953021480902420288122484415216676385908841166344504871345456822602659420272653609546824878133466239721562440247827054710099710413092871367258812308994162558171187722514511649380062422163354805427427252363767978757441168571236427423134119983727272524961557955392229118623226634751169706268458795374280604420406422010267643989053329568867017442873464166664864730822743393450212386145574050350912639717118258770969157897129678407228203835992900211004368847637591547807693271171842130736883706220773060833637410351862514138439023091657758313629175159889219185801501216485602908462461544475137323292679915460973700025758491618041052250828478702379739031956035541849360963982731945285429561521934725580770736862408787538836105909558958696883575560385803852753568703077628759710291784054440507498559807256505878659570235872504093910986332958514203410912767625296223804458854330229546808527091842067659141573640510824491379295586751546064882496702719143097894008061579281931902453172147019490386341972115059328435219287448495098668393204411355640493392640091715396169472850916933908002302489330511639536626070594263847526229054873485021032881874325383158289125630220890873397380561224737030728169668019981576459964830306528080932051136558027296688356769051893477228824399325794549344346300456075175620028559814523592134248424563400038362310537890094351592236261621425617449341480051102609724739161287237722170257488981306431912930601706180856579547029697051047190619495862609070123357785074108686964386904344971762681504365188969781966230270340914934226839114006280593557391245826658708116962820668739579942893569770491727258229363978321065006221431452155392553562365233432028479921710322959864030722084428847737710486909099426187123044611322861305276963933788571511238337955073188316147890725520281457797744565534527067143334431127569191667183705061539353767330319661780709490301067391245230041755136377104336961708494742608843945047663016714183650823213227893803982406332026832373048377549271702948105612192174890528297234198973218215534721596116707929402828664914319719310445628647135398878633670574101741781842250461286789130352159217633795432371473088176641613060817196289426644226291608656598215037514418418918546597129629129469875043284792899778866918191663876689893013208129107847304922000485684057327515921248118836342907668173335215490669267262141224467255981633583632566561635151023339939542725569055342011978576816753414402616549381626793083683669662816833143123774768614057279938182724909525224438441493232837972222109705672002755566042817768620010189712958422120782142304845355556580123211442049387046036458656166428710959527491056544402565543184822081393687249286071598927588559969230001076063258782371154173605279555597874515597055857719512750026197610085306013584772730952923649951400183360489680852251874834079614918430583455302309423917397469495565216625605085209227522314639535250835344590408714618185821086732730340966728885613418243634223599934747964391997867426923960510715068025164266945428426885982862012561289029776529727031845176465255901802308703794217176482372726489755817549115773452435323310811026074949374028523164183931511776316864187335566583868653565372548340650500399335685764155638109888588140400448573835287219437392836578730556042929713308427240595452883620510765397452753444426077014398970804295484366253635918604381675894386415390904028108998115643545224180983469367811301647321848044703907232745718789045211798409898447476070487777756359819026580053503482330031454544388102824405135233160894655171051163443681083527560587466314733524386236816957459289660864598204560383704889275976992896884925772389147263118839346495501925019190898470304299934607772738343778760288614861528833687145905637888493344483812143021195393196839357686945981826575801372112772218769700306797817909728595327710352886805627050710587922022062914061551625659120364521799734885118080074375699648413655070070043132856601224334687778360206576184168044014029566309332619381323240898390747566975451582985783399656029429784017705596224376214021794762605594000632444124302878295310204153072490766198300714972430122695171345555714742339155458306826304772486430736601172383847235103455018251255932706243455481037685666290664546598034948514070548834390395625846586046644723144832893212282403854878056131512030004004855603125119088852485302506000633500905252014759157231245622387039122703618899344677272550675002914721226157283438412329016870605548644238697961202928470569473830425578194508887751265918399408159472280767811597986277176126508161513181155442329361143989063638929165227942087902473643387545629147671643189895710179021590807956197040840161083905776349667741413036037132010844982420085655082587725833816873070766827185129665892471787758235203676927134063838264168810293896804444191515389600753945374170748455784634048073345021695873055607607002722532067877793845461841492296526887429144063816281340057874242920387182842504388580837285657980102852651893338525644498056741756942064315646160472461721012469784025598455180692775672964669989158013023680955936541572824317949768221002045938800089548492650597254965800068259862641145091719068587022807535383698197524090781002392698428225711383742261337799120259053151582029774031658235690339539460713010383474842823905892505106776065192974069223757196657450322955402851189455510703779990442120493661813971101520193877913173787436050678525854757389187108793773886757214413471923022988550854912422703939299947706917030033712449683101692940575770281265986801347348976014699339722141534768682056325549875555643156636818284205584176679486446599236610407537247824561602826751372408892271472720552363962500026678450217591830835319441775915405510622428010417105674139920691948566070955156773170348891190113844792713795842053733686705701382573852253035853617668644590843581872312003764043983865017624313673729493543937442359681227407496909273471197450254752430138517857074362422631524070375125638348579366895484425686922242236840972066931206478796489757496632791283158719317766112794178387352731094025440213182883725218716107893630353260456817040324404851971815136781086412492323105673432609887357803782887390918572111986396817079587308357660016585237871038134515943139464554044163787301426645594134010701737691753031887440790380691019174210192326227993501919163531637604191386123877730826011050737440648652244792308355108883710548084673588993509910291311603205806577161116033035378282797454200172146129392097232352659604432099842403827884017960975962835810860235209241120605195598196271646752094228722872244561082648940622249704558053066802160295728497190170433752197339144189725150416476295649573226746119470078852840327386632621768819468463074743285823522111484191203059651462127774554188190492723012234256562720923646552211098432026860733888125882392390814804797622394699350123445823732176870208894091774887620095081862011862614091656986050263139323066975576092855868335658679909498059913435463016945733916352435929290016632327760252268874876483717493903854988266329247827226994691443816793904110141164375664995971238072673384128765416753754709584028464117386693638002062555904540961103212513091011895294291883228379758031496907602979275589099733529029893517144204563676934332536038595051429804390081327921097703859715450230281156601379184256513930996032125662558588713564846743945296696520818962577010920043165905113161900461711472628540952312243636952311699942481473454773452044618683991338703736521979722688979570712202056245250124332028608360542619624697704028868181837969679074996980545493435218525500727538683841499702533954797013623512695329498747971983334049781660251435383794337776376226984938181641006154950379850314362522540065035181323034668179612166677542903657496096789341468927731560829103749555558667027121074649692066049579478033871104623063908872285193109698057010259497177605053163328837066198816098828303747460049140732700981526984122263534749062686381407135898044607594548841991820088945104368104032392235601878964962435457540199378135551722088451301014803298006727388184135427646177057224241797164265003138863820248721815768203273903062575386363353892624334254138877603549869418628023099026381070713849947304912561032123441091447354195667212766014165921528679833419868682829659049661265485335245168259571961037349404667543187389232879920463998762237183636622780209967343597587876280298133681367574378309541991574080914720416243650868546410277904243743635437803745149722175336358515069159322739510524470355818428462813486445214786970065872327309487927045026724713247333423507901587829885162698151436330615254403932719877548164477693928791834620499216523047311003677967981792758031340722001314806420711131280392008349953902684359627599902649150887940781554150776365641875980309835703377102539037477113818848528905072746337188082366096951616410737346955245847184485313195313348042740659713029015280495315471929132842482121926749658348344295701010693464150059735885900009680967928638734968777414248888300971153083324002363190746554141934687850236859502426100802486648575813077106284497736217268289778212827428036514404593411606218284334775025025814134635309723359541373426593925262655560757143520870900157629932095722349916528896697346763256866568831811753983573798874971634373790683265244906941406532702075622761170303068077136887289798736030522226908441099822755438526590995949015484957575271324742160278613254189602515555562663603482557986766996676659927994677185753214938749151032787696399366800150898375514105064410657507309736298443583373216627583198829784234780353599707309646060586142671515226212691790645594174247988732548015203722791720094716071263808530283702208570764133931710255577825305825305798664435290454506094777560560946194439745181387954012334292240879436172268408716528661841872234172063874495829776942336737424229558416746124993853718879701406188301044874329429287035280430082105552232089943896111067261097827456359145574219683527099089358644337190523772289486051881761631393137700685407134395795631404393733055581891688964155028047118406072036453569746194543786316252820454830960122393467524731328838708861957588870066928022276409716361577170601540389177380371493551242320169364206851177747808161063627916730476413402622597814045737423053550044418070847592329873152086516029661968898641937901033023220721502739434266030812344170730050851478446041655026281314214985895788951865461460207755453799109455169388929543548555601892569350270543619716074203940966871446982770700029337272375181610498476083618992967267494700916296146578724089525185959516282825584924489545222556618055709379171449346298925052413457338228185838756376909095272870346087271315665976316494342390914241653195699759459795469469154538722707638064877539346055175137759395880765133614913609553717129608253119555053456963576762489737124349621891268204324870291741843657877788306041636762652969774473778376606794698469711471828292649359581551285160456271984011427414268363580452867843109244340469718018832913169699359801468890490496693155353059991963423586150007883829428583837495669273632903326076445781128615608793941420341648804447180478015196753138772507448544757258058831116325336352789662708418951474518217092863094601180885221910153641098403193663783895412102351588932156893052339426940158586970062119488747949582230277012986663071967781868072480472312049321594323959327633095640677125952502966609151218738867213794825685610533603560263281121923096018421189733574560280166512241181466294696038271902021764566734080724954629009365740382738520574941327972495179091607379720884208983800508869603232433251204532093285676683540149345730324735536056024104541398215381299631567705312514183569312030602226473674401722207417748917236776739274464540497080215576372530896612456055165946157338102160510611132421379933128070352801244740888992568723869457250870777863448157430573630411004804980774027137340313341718953257471883945588003454385584096079945957092800775118983108842001151559338579404601438220044705684406653443117144586851972985318121639543607062249192920727299182519602511369454733412684333970151117846847842674355040877918622704667879776981223354703148228796392722943295092867884789800814557273211388294182255541271537358265673699197954082226572210996744740959725558645506464619607056311700169629374833427530263867539278293604396818387526262821354268772530446988827253162592029165915418986295412679536321643586298716300304181956712883780808848051451360863597263379925638195547795572525752318124701162526835973096843703337738721805671114955827092738107270826009720932893599558083623779526596210193037298231956711588826042683134156167887693731455445660736148911895659725786764126421986331523214444320770280731149185515728626668029353406978318229914651117807353699066804221398379716692102398972773130389004647603023850103058634357320899519842921697325299572177480062786021932673944116379039320051738545505134013447410638171743564663308391389213510113048087664957453464288601221040612816706123287902920808696457754701675456000083281002199491739973909719101373430278341376160858131011029132147767013449300367497918583225408540751104870942600674206598860976224980162149938595524664565205722832798475513547647534327071746809703933483497127043231226724577663790380769486370311973631137433018690051443961579650903486215995702953876752157083478701545316185873942081810697501265662173083423866296006318346225377764750350051116392591585996533871597146236079974235309934528945410537238100177626047953534664070024773102936427517972118836708152454177159725485344200196374762988009076736004044050779916376564837350589269658604611471395827738136640950018550122356244106949743872763895220409614555892523761130408596917071039092150836345277905638953355009918209059182808887383082922858510254748331697322398860488900459037700238704673451225155363441596496246198100546358724898505327031875624919222056595197506299387759613283768598772382623054593941511664705743496621752113113280060287683189551094239568691934693367213808529126635341936070134370364395216418775514304561694405962480924697358398775395484988560307326265597234953591845306214090347467014918110885929621855397153899999677023799367740278647989720051347633453588153994086100595260549771840455200850699383974940149492951283197349275541313742868494309058820150402896537482031933145676045378528287609317826815480989760251165676138976777908625557581200802568585574749064686526722816632165842501328617966295494196814734535727923139393573590735104191382787940223515469981375627130159893888454382324208183377078284837023213676163887188592470030138002612463441393145781470961474386679710195980663403045843005286302476311731805877427063167013160210554347230392701908032507804623202030094561586500550420154909690243975792997232030938889395280028236299004229787396712356828226764581555589778743569428792329677865097034202821807553761462173293143017845771090354516071674971283298512094054801087507760692044051122950501519066349824603308201204152943316104877691730499056337518327832264710129333396859990570549886168123445135349741352914522170457883384323277134582186216931029157307247417685512826070165041564870948281910380763511430957241025938632633599585594432300534851670339507242483968111534401690434023434322477157945412979737490618487845316931661571088077613868962744207343637295122804193001621536073343189972311505008852231383163792876779278467548401869147191120632123686540428010083030722075402061048770104763824282780526232566764411749319154265617026191815690139475546567227789920855854223879869113056580966397646745937477912521732702307137520220165016800000002658823449948622827769070285039517314132765493455314471594815309221675429708055357778837335198765413778301807312460149547425912539601973469134382727650853222298671086618731418508729290390039550938712241740071937121554952786517471768312426601997748112919410970025925512379133026846263866062675049527259324269697223157736379465047196904877287495362376835720361751876395335019033314261218028850311315020055858674957718858850119348663740035471038686933096354340840276245001484729422418563387700850760111476363120453732160910731340202323666139985739513622578802775519071680791463770054687697729424527298266877311542673273687176004062352852038453012647300935623943265816973023298218670643389196712724568647658482058592084039677591249753034215452886185512159391867595456468762640656284543597339730917635121915294240451875602877739030059894432011230287448011300754158936262688280595843123119021492319314166303224131930463745626618664467994466990006293018128409634484696521260921644342418436094245829551803930344471156027564469644142313858564010991287417292045067167718647269631341583798905799726149489047220155977769767745206352089067253772448439592874301804890301897054059285528318499582904321452216908179095818483816671163004357405063004468017134216354166419728797021955006563596300300869190327128737174319088301914483928999289000722822313782176515807352146520367462807509767506211603283724924396766246697251690806843784989342403198955357771490231899460000664577465135961429500545448018579111369488952240228762307671868365063794656630507991873466772507636041937991211314013614234946667108265158899564700573457012730248749137527148278210641104227886634449646669758022402545453005725788866317280060354325327702661101098103708131918757874785489594921264559021285653636092641222539481632435988488839232585706718560744975540645093755770261748209985059341845095591005307379415905788021329843089282228646039660824778074336754599211271025947725741667163409551886067424654176800257115029494225464573508493709709930999665269099153638213144642347834528870970396846654619127467351768463672221446287073071328737912790926745537041533333748345973038215565728046173576643724113733000182778836231669699442628288584919290330457656056157060734820817196497923078211637197304978510799459570299682188318335886505649852353854174508852548317094187992096611209706432120976589305708017478035541762842275004759812993310817777831092961049959550678257588874416064103632262606292584417157659690734235130359107140668865233368459595530493565100734394740496670534600782469420872125739424062325283051564428364381744394830565470055475896703077414911295943820186193580087486650401841452926256324635289652657855514343139961687893721173605722754386011411886999721074744361697559189884380634849402105608060304529606864496054090393935259764619468911506610783940078172274763016481619305548623000507347211168550136042104365802276349635344142444678072403458000401670734732626443488787238793899235495258787693281748341632161684792818136903362034370480614252428789430089014303589470472142194383478748426281785505056091461785444572130518712089430273902818608963714316287761838009154681057480085976657737189301703969516668641661942517326205785238766581401936993929828122201925943713166176558183898468550064771964632009322776190946022036500594363353854711593529612605093558037587377673690389282623272318566984302381285132412600399044437359857880023987053710529353905147097094481003510347775297960516197802678379436407934937643611527409420361348587016798563871449944463512186941210621463619349496668645908522639707123269843898252696740627666010435399157457573667431965919945484856850891437705445467736442574831161386003550908705822677083309809803828232663843397960574120042385856912808024201154798632517011025328877795769104333732772909364516992074312870139021246640705423512767837918292204342966538216968164454492804015836234048569696634901927884007134769191306599334151197852224807519274824063986504891593901240343752458151369997378463920713841888855659287554784696614957236424048740128064725232399101269293743741074418877447130300578178970003099942594465005941321500925167627116218402784040108303079197538392563961624330524949122270481540779817723657561416626904783392192926954433152489282023097470900569937265803538348250120170569308631079732200645017661254873247045830837741964283274530248807520220447922850006657876234688231760439085879198038333697997805874357633671487183302132000300079990420042695017132938066758059281983491599125113903589654779812110696493731845631300437369508042590632077570143283085306536375396567185383375082010305035096578496215049560503624147239762975860271320061305483870220253125531720449572530140945933902781141683098531978562843380089129893026876227089908351118689394965555767720678733982771152620273082713442943618760113746988719995916776051780288545036692221500754998297259775011540186322681513339850326679012518211885810998372480798660090042376857766136587001335730307136161703037463013077326028751218528005820585834033035890229235611477853269718270607218210176481370692238204996558655372132533773497023675632493173952923764257220743228323695065512597312063918729744493248189813385313376638822252337479856243706474235846825163075420854675847504605584871249253442554034601127112811260209455233477415240052961734035885935262764015332923713834270322429488721196738353455338087722505159591254031995910018182765918342963201112427985586852369183537254792208380444399359926757552749666930479417759041618904108866404027911860661975975687888948202923173773664235888312599415825036830256588193537323661611808953562406663291252270933319897030545645183876522645799312073227312949825789255923291408918946649689698265738269852791109916866028955335688668140940292966788155063834408624144712952336598834535348766761434559814118225651786900346625828233969296388451649228050210984864459592812028316274877508143631231279373453857433386141134270028255087236347126100774176182073520905817078882074266003044942880219229553901843976808605387543774918676342497553797565977751870900799693930041417338821492141110228897612655959878278083948163355697299183751744256926541207702610692067736706191757678490987483609749585206228746616118956911053446068370328637846367661321459155037446595803372881715518505253455995552635271846748211111580666178653524816110984194635427119618181787726048339382314597497521481091354245103397186731063428485398843454346168092084735001971840129301737826214782021184572271850339712120220267530444802921990836667738715595352401472232250195547341255098135800731478049726707382875370299389500692173774320368683673586907756107957054085963962807181555575888266262001425904155550798613731877665583971483399273210229310386519068823000467057866236886373658709513113941757913011344219974614817157077910166146781180908918583944090727780131485743793965201014859993038162701901246929117140616666529352968544056357670980986977409955226034165485274282378843956497210393962832480409523192410299968420544893242817874313293750433503514200367706397090342065505184384557930585086596285287769157119339760573550321844019092819763547605896894476657628157143336235179114216047606854290787556859353334351425480474202493648345364073370161826496141056028703813471572987830038261443927526601219741880746937381343631783695161089769815577544066565192653131421912529660797395644885849961391614821689455229546707854153352247843828090073535858044359277572511474492091275105305308471757369904332668546912422378708075854805241587923376468238385000984386058037049369060807169807095703395506773566409893360001910048299971794713354103688335969071226221705610779142525395274150172029085858854677197785654214022077894057309266929486854995251742784342251519489902932545868561898452146659326730397263165739107143992488120058215327396752185186553398354510999707410565094673823438460396645440851601229438518905645667349403681909180639453941299750309509690980188531911440818660139952361300297716175217130977100761347431597958697018263264544024270372968226670695745648686660026060083958784980984087017796949321953012710001433389637107740414057110523451990457075996088349160940324529982828117374700621037507252481983787783414210055007621262289630424609284482897489755712541264645161537479341138963704277102172690640236345381437501348560537877260536503674510166691783429052031442781170380761684513480732555431370894391959532919127570040860160329466136453179333480812621611901946366129142762833239147735665669760350267815732747129201796577558359495282520885864515457310938378395109425320349388236811413569805060323818105748584070007801038452475855758234318879617072965959066610612406161045367137634720522444787886410445175435075416654320562956098421073801364905552051195394318734428042730248715465845015134866778049927344299731765259055262035253448586713201024045803090803523303840310944840859846238249205580102867463953642717078815807126094385506127148171893249937554335235258808854394135714143542749755054619139819120441149086280403389303319669223726550238675251396972060949865507078551915318061874801575219582416023120116573584294292379968839587717657354252383728049248284268105146206283271128120275934874910696063732946385189153030039430416048957838432078479632204393175304230210601048923208509485065663413421532007439137257241906866794200468313615047759326336438718296681945332915854821832335574884835579554343753509007317514918595346153670253813098869960717915529922644282695428434869395885316011043973781827010548834801891816614129137580661810913798626077691007375452416383454020548503111737288078096972730878410988088631378094063938209074072610855918665787451840475861494255945350737166444072629468148500884612449115871186767914245797812278722522190110456973165922648256381849433376517238505374588838522789396409066214845331538180926372800041163917156115566805529746156578367224788035137999329814972674043929535214705995093410787086051225603753072205155326571889511014391843890464283274211579885477218988708059191614170260079124726472435004220507142302624139732809946192903987746818674876597359141855023359166909359065629754130470716048803725188062774305848059489782031260707195600315941099857424868348111306870250193929105151060496421791121115480565356910703000960476247266858102263888489740777758333119767138604160013618576700917596972851075145081297063776629377735610066790901222555603247566236813805368118674439362353338921349063353352009843397114915783988233967468242242855263215060385098634275891710243259918253989928636139066966462429108637789754187494085151209181674589664662462967714271874913889802121576442714150265355048855222276097621842427295628405082264709510336389617996580671203041693968537787184340306369919875615925660333895166513802564462716270628297418162613160601985477925856998541035405470669655104623275056720966478949087263687776142393204602899067266402766626878289032025014582208963222359669641727232703563204297638024552304694162910871484150259887046410785148007141417984129265758143873845980092416000477453650262352870387142533620114661890458987361146508396289165535365839961678542433397575198952880812247468044414248915997358043386844901303598454107919594701299639276880410810343861306211162200432753781416509631303423583627450832556312747612130574684093759459192406373404584574588764714307921093168096783846341316579872692801987373028654881862613104815322545443050864202482278333476224394295405879273255580351933540466307979949427156742068484599208630149735069599086909735841141936189029381949585091594751789626107718524939552762847489713182121541902268578017908860489667999454349290634412505147750150094377344275791401758703936941858372559775113304901958323725426608824579675416189525869859119593090813887519717643079199850149393927246462049298743173006679012214984208636033118795778594672838206244617754707110636552824815023344712529382304186155307060138337773710629907459656980903570774595375509061626362558787089844028481520989205282787856903660264926520958719875896215441971186497476896263696796351332913731224287766982324064316598270716651915479836409901658049737350832097926503529226072753321544289570302904976073892912788779908950213252926992185194196263669438629812386207014443073046143189026202892523053237997793594838148045620166742636479008426857343079878868148645817744967266103362192308819415506495344680749285930209621415067013502212688039914284173592458277493245400707526100898844479162447121920763441299481714094632479276857962604349878066440635080752227441639963148374000465208493325636196845962606455011037932301218294070193406849010936265255959347105080586240980354742806533024717037139261010242688503972417702217679454376796696616078657864283213945972278771112519369305551408494895209650188936245130537517573327167610111919628874099795574947182424425502054197882525003086805547423221082356689087758445652897490240867366371320754269683339292590833263397470368843026444037394567072995038388934552008459096247613712300554994312129283446447452077151088449983800054274233178075741186445313825226718269711953127316209818720365129604428353292266915924939152905322278882930564056984508761807830856406750134797923748264764760251306022334997750692760349506643395932447031406198315527501397204096973276779246746072747318342752526177750874661507163556710163766332178212645103584419110756184517916494585816273491964357304963091998880662464114566706821196507991281819181895754417439982561340696375830731979139624340092821040580486997995512912491503629407143775614214075605609343370833698459108096222936390448507921590337444064807087514070343259086772742519491037322351617722732208612193549756796523704592123705193518105536196273637180523348983476794489485315123442052613848960991684639392687946714979519007000176701448660129050841589779578689811704738650237380454141486655478307269099161508085502141539474401491186092698759134514619983809930456635553451375355211938238428984246492991171101021889180538624585834758759595319763797456111779796273127760630716801281214756739375593269848939810382116297804574246178019103994584830234370633126862071123924002523154404064434248105958513048988708854790358386866917541188182980246484498197849748416009401377553955801181961060965585705629058270389332805143631203835732158980387066996750364849374749153618013785925449696906793844119471002218307626085232938661630516851209709270750113971382126928739080037071144980836519230445884117236280473450415243384466332630740367567482630322227631044400277397537263737369875854912137836832642621500842452101298087503866515944685761833026725018679823328120689632819295435910036139659936292629609059127241752524764974598170733206159558812352906306932339655153199863126431539646297912577783554170898334351659953094636391336099581051602250809651983327441746007298416186280369681556619823947214923915524614436098044636285600247600277441719202856841037791709677046577711429958002452845098209338402236802532757362850681767351774756832902950879095291707154918113514868995769853395975234357148723087613932992076618226683787331426697751469159219323818795463678234980704019855054896264281094428090822065537988978697912558777512733444640795479871567389153213368416420237439446450777889989318106665857954972550808634548835591525161535496776701953537805843322033105907327447207628447572753203309712075245549970710203848215681746721694662177733364628099941487181863825644226858906285554630642974341667742159829437957515385632609686917480745583239322381889758706313758513654379490523044225852574256418846130097972012583279046100593184627059028620028489820026409466053457960957116574892943705243597206893276703553628585962185189359844913331552443036386584541056640720113661411237323874695931713436171357627248284229791044395602876717298497981482590718179301923333689334075610433924283019922636781963637680181454941851548687258725979782357314002065424350319935370785896997307679739129704731546211928300672763865283756664596898205250118806450175156675573584108428649042951272221339033937444568918717670432290451278712812720437697004425832165136196826742624669024153151798540963836258644176184129079955901085637629223938632856968384828987601493842394948429113672548525079815014043281605430129631062889572612700094536138568112380890127779860686650913442492419894030128696673032589582137469321552286560901674994280576577033627137992152456057101205949390763488194138862481374371285867733260124255375774177351102714078313187956351367817689140249138804092003611069542965189124779345660337114328783453281710382086155270672539936922461764802047251513091322865138303826822173663561227021829740468309318253076661582655673017535262392113316776979999072328152565823539424139355960594875387509444961769516829381622387753097088740435605156254888449287492840044151529777069513012786307169352048610185627669663377472376605729116241965289672564814281456791661136146108733780654632308664654545692666706709844318785056428036312511988355131343685200151745094588972135512479830157248310302209873156298262275562304360698540011713084017919767675226249637250584129348045521187991081685877878290658145138022192500782428377414156142275752893714658404300852258441802852824094812552092974648752449922799447234738221111197011450084700466109552099442719806898375994727014460093203359134049676740267588207075025889304322954289633750661821326955585310399397716963856929299775482609049005515676291190123067730269571826024752910375339254681601513047902988854883177348323948048434256715410269642571300396581167820488934324327186390930199487493929363371256414250003710917912246554364436223569495988412967553408672091076208798386307797808629532981838466426107657222077251332367292144875534415850403255354272197624178636466037379604781140824588875112426629065819756283614722959645437283619829550382657774224282085430738489521884267487453897198744970360618185422456248220602986524106920691382396305538868300232449850604846136400077134136123286359075401397607382546972602627955903766874869167114610581421841345888854228856465781862591517730543848856442794970878409692398235956505442776234182026588155577938335236318991454973150653855851588643946152667374284350316079789359318789307089097045789059219665247302381300920939970906614594546471722820864044583077934231693987730354043823640191140894222496305622587748992099155942712074437866587955040929320307642324982198151295740377403073563307195246008908777610998457484781429099636362755051830617850005159903908639280871328198167134435996594913811634229339239318223852939338706261590594339669248613817101544803654740317945099018759921693880555326025057504600442357494265638996873108075611966432146951202151189941476227707320372120169044355354287563952650054213269818501016485410774478460339523135139237870541810594353773830903883320189000859881523813643665419911893928499244125125164045552477303034834712183719957875803222395816059870532021415986380569529767584792007536327243566869322008021729482619246151887745448720981255864126723075481417510986253761323502311109498732066218726633481471595115294991869432632506988843859139016715227327683475900672671470301370377256864933641842494592630233276021269944907905821657126660018913257408970279177146152981707838883272297739228913897890550731457133529235303179047654401259390999272872594530571672297689155273909602681468943948360698461224254310736180571697085851637593700367410963619738219789847825216705780105257030280225621144126122156070102258248913851228648629012406225813145965755634397060365459558100515244679276554203131617008615198690672741541327452197355101204764638056233264363741675704952779493947579588547991611241704849396841277682934907891255663290392601098035636373024114994047031834443721431509865668945988853472713812494429898598970010352736287801940559119818515340181719437440333243988676902376575693129763968690161885867215895516810452199174333907809378526420754571548779453935399505521276256352362408577014914835227883252018756348059593071903785385498244502303165970736409524392406440700216546528698797176170596011149582147341048791624494465493572422195043508544796664189512578563542965432503266044955196790434052483012032202519420208970218530172136420639616030223547380546935913137184905534378427284693385876835073881234494694882571766177406392345705238049439844643694911400558939488396274740119719539268507463603923111512610498063904958546509395982797898400606802645502661230777680117161387846794822301528104031988219606920953316196791273942965089198911541849254994944329391449888313106507300705857181289437308503290386154972340907433500843517418486510689175569103743818509466930162385277469774609662805648553079765062169271119997703928854693779103160938894030374444832368570360404313593513054618257507518282775823624984902377074830374051523155967878838743443108293426791942525744929704939115809573451124689798607753747495664892855157241331820820602496959040062443284865163686345903925848948470579774757322981713087194668176600483013613756094456437951981240977090510700153747148290294886281014206489506258574098114963699472584684006010133255308347004811126247988641007865870016565246754953146442011607357222197299843218379037406670181521542802017407294912209969216177619121804001858508502348735238689903452474976551221058134446474162007827213681215378935369122973206906011504264385665926671900071636923039668612855623605513967080637266354935984469766027098601367670303416266817890017098516357805809723614201934339470724537200119267257587178971157996609796925890193221718632070868563233827629529928817689335557062504144078545864745721970934088562262338203692679572132203499992194309785111215795199840298634261767244102646271043147653885546415590525511923376669540546302813572364151344457139124628956787129148631641737741071160017150352516196868742321920253521662916130387536496173049570197582228980503998570276347594472991216794538903857826178785763254553940712456238486439937472531927467354009061289964594749811391118930499926203538415133446626400054613122088971945265445755594583063365828771227669867604495420286537371941614428999409423550685324896638293778371057870900006443366098114090693722881675645502089823953894660624083230464521223842405784789817744601561311969325070857568339698166957841387904503448529808374981084506374310458641144853129764977095309473677142827130794885466339696838082800329110694950607410707950131660557569863512566583674508445368050915759231454051972306402694995633514884474279335341503264347209291685253945879903353883285832124669269655142848851122272621304017812256089044694767414674670222848161012921954918227383983476314599264053316700945069079945591643547211936995156568375550013566635094731730560407901915638222511072814865005214106399451919789159549894395818485698729745515297862526197347690050804058227684812962546996679676256859199999413232166201518067764342359820249791632025662832810925122988554479320691425396376591749433284485025388908536480400965308082560047964489067855756840355850325122974905164182237614245556167854806141003625181496917798106423186699039447269363115596961975458475608412611999505241804845670758673182132788200051359683435860033886933713431925556795658197309216599660294782037681630833919972321649519558082406676556258769641829333594762289415062350871465673500411211562075927494703178347923974144471671199066473095177292657172211326779974272597914755940457912442500690771365177938497548809848157713721487502601816147393680710709651028790165600306178344154654040240659927381726726615432624219613642411198675166512886141558109305168175179628223689763600595678317894622937523172134584475691926156520735143375180643730635369782393067105701963554172200010262626488444456528711460557281277976774995407086501434125953206124181653485546145289165476872685315624541268843214747064441967764295385144190240836865992155343347565224695140196043164191354709533439145529354340694998823571951758438179308797550572414675656559628075799272515806714524893231460425973385228812731775878819432376017896336347143895016498402717200826694484387973844630253818449399488550014676832408218272495316412391127404499902570065109756807833915375123529744581479897097811787479723947310229338909979089559538065466693648982588043401526038400405414320754474372746495642917048231849435145643279440710397099262634607400335299331515338911554103415651931160374951206341699920108655543230263606672556204871263674304740478666620355211476976387473800166476190095078717600810367026087562232175102707286244205711863255934149701381035780980582965595284162608585423498849451714268537626838965996968102182386417856883801185970749262764825158644966528061357965753581723631222307937258497703844091109676387389634873304264872860817336824734049773411335783505756647588701279296802420319353729336449138167790775752606696202636663726735434017106532416915015122452136362771636660391229472176628269533799974550611543564484807267074610917775555429242145079709364311385353096444749442096425183597645940158658745530432642898016078828636352459032906807034662072615768671640570749415996158382056662670907045027687131303106677588473072860625913845587870396717181282745689911822883035952476827953325777460666755976051086463130370170632793201878613424987225465663779219161196997267477886253460736737035539588005293436333302531581034027036229476860966975502633982507909021805018531711417003837713376558571778418182201454878655923584090269111580558865926488456509033724019900708138440559139134867024093621669280878683286428183251846663955182383936424586814783007342618208379368584197949596924993687776370583934622668338500569661041764027150468222766378560274699498272434348938947270572986350297082712852386687177367805758197052332692057513150558191087553811590972558634453787620390929243550443068818301475669480139830467408515917566991698439613540023846903095951788538706019437662992919733949002799467119992039085160326005335153685672123276728299965710544735746464175004354734838332095985849579787365547766429584082674077450213062714617982852600507700226726280497529925195004618045006997369725384614473138334063711417945724113784225625769786645474520458370914734412645892671727804248317056111445777486263092555919960857869138584911415926172540455815631088206261568035695702741949492291859302019492072335430314271434977541142746838086363174709652272252120784633219580634159886527575337248723842846844417949317615795388090026834969282138497269792661940501141261077226292047651754293888132888281632156425880452167609629641897910188226756892569984956207195649914413026486707400505921341314710674598751205751735332945775114613252519896102073423764144843464728761254924648529599842776774825622941606130748214308093187415150602215728432027055302132173818911475456995120754968247836049044353606611333465960895826074382220554224010709119233909596506005628436303042605306341057325562046342788438613314587922308423879626475537781101378710260657421231426311540940061227577433662095547754904133656804185774052514558724295036939499799150302232724021294648631116858687978668238421089756330810386130614080626247873745007865285867926121088719476778004417822577088682742168168191479198079398671167408268355867776166353883515129211963070012657345958402922027983165597998249031190728080948934917479357837160180553144819195274605764805592615326627436026247019882065435052861279356907500434978890477524859714497683631873182615134492918647965941242368108797007713285625152326734022242167591397273534550980625402704078795425148813591311684917364224510455001454401318082247134742617527722136850000144583669433088529471779923038177020925455572756876870371779011435121309317096092699098364619981649231778255431403449639888866548650805160958421670918728578355781682756143794185217278072508745217746555124884527916422806115135486394829116370435107553135408785708131898408892002502131709836367956742024692513085470371113119706919884571866752370872089397217924823904191505536231591115986577803241029106310819071866446353534233933311812311266562352620505663211215461485158783702572126629729172856558434885496438634873237720639673886376322123831740631690590124994566931718953188801620334498243357584529199725912281046459649483886320266363534267670108120329324526054477398130535780159228281952158655835629914831713204392440414148370710799996662510894550396600801945424839549521928759682402893967654919023697739300171866983439555789568644010063653481520702155974197743428979345470340100889021589774072487084948062144632249777248333015973034192638938191396365262395289621046472658727165765481317370462306314627895235314395191310310283121748078711778979202772037251187887548283380686679577659425196642394301997100882206519709523093878653185233368065902946879818507473253754585277312796401175969582345531055148384413770072363587275865829006381977893942094506772712950605420435258288043493617739297966547356327539879863899982114122899241512047742246029693129087032478628369841959196083699925393033750506656592052226946768076894983762819064096379754500423301175919392669375498602092085080855305981390218501571940560547509414974845287949607912559082344988675815791464325854506467020856081702360150588996006782152389123337512366005728160775218407241608161617223083331103385346582621593601425217317867184068923149786111843709033380999075248282056131681390168940885922979237147620428868282181320345861717636793390017571243957832335033063738926303038288607687376535258446224207640577154194624647263374941023204105333336279684327289638090439736655338748249373547613036989570355051228771702462634198528263658697419329875073072429666679556448919040367251593556884408571558127713605855167318690837843473738180098812570991553346492192570704005056205002924502602202978903210397027560746854645597904961515332281102101867865185890022389396127531248069707059031728923603940421898671243851322810577472232153961085281815008096951620661459475229577423154288303398812289965501916373205596393752603275813500327437562941902192072678803241266466923775256579442315183667513586044698841167316732237110374139460744358118542836283319610004515162870361222711504353897420084048224189087881272469318482389954503101195613795376088393767419922040859803746934039076039396276096795822806600775913291865441140384760586238929894207921959518402150723577038897089728774823049996924599731536143126055123910427190666439988197520742303946485283486949705409593275068004369864837488166929167040438343157702371577171806944143662229796071830707937869806620463390142254465385977670465794094510999020463512937430643977028248164338743076950751873670339566952046093184515753510354707350858201917873949412213987400588080281287865117360197529164964586018313677515981664844276948895822652481663021117713418815152153892485908819847695187175145842506980273023707799532539445042670710880498103158592610622930566612292370037528288161052376420144022954845084936405441055971629170484302681955400123864768367800884219765031639717143242928056305589392338816458737636579888925996293480800196339829764028643758406278730432781106872673711752683414012403755958434394643957403558211226691845987242894840889269781803629740315243874700226474964249362554403232239561342170307565184282272510583633167266657090921456754319779959136146805901345693931838898589677754985184159304569955545032251810956503018281992509574603783337654121631865756252531227704076821064112861879234428313501392998782500278673006619663519317300304754056189928264058770961714610486005940807747464301884620194672656130914336606898886962202182143792948959036411889475349923651056793938355417248713615347195999577308374757947492568907043030284033802542854185587433218541724925465634228021841223889674255525533925530245485475699786402931391422830375085188846348073462724620608460040608995893014751790086268096484552406857140580612669735184483531909415855596919146732861320729714103484016306590092482481736925911052717445260453389702350377436959458638588665039053867546686809039884481359642457704506069333311291140587963928661017049861998143784170533161137948348696032123537518748662958950822677969937770949195708615735902535497528585887396353225102396141960775863132720028772028766562197126658538855086959295591350029033904389269493235365571994769916247586142799032301105777699678533296536680601276359223820617087992168445586709443806564598808161605479261449506423593165050805013969838813637407891000860373112419880769886924504395469175694659731354264071641668948817124166667756504400587483149211846941297500973935233671247653589078134448991308885994274823551490017531021955223746044141526741611440507783645052134751718454423252807833448857899335570796229604275513433911540755331461575415517766714479928512235721238677668585939971681408632694293014546048836174798153316208010637841320152620164649258415578737525383872936561098667847111659277712972227977283523305992884579253125776039095197926307725448346761679966204455902637942073219749086126661042811331545322792384150123072858189752890306594243444863662670189433540226450687745223851716870006640712804244599382329714295608295737357934199309293793328243478537756719996395170369065798533417713861908237170301652475451623310806846841008771630143054307236589101799350601223453863726014553005257424632608299559541836969986492870889966402761850022351629022714535937057459930731136682697716038883801757472167107578117875105822129251787457479480296239615911145419505723553042920093408764805695605302225237128332661367055447065540112311834621123985800680201861342676369157146156988120819575276783006356174409661788095339755329017621226840683371382813855400394844861033210130121919396751324770423203051786327905769582845077317636183886071801961854799921345410313461805844514845815861898459781435197763076602297632493551796788801694517524198872800117628803008303919442570477775382117640642252071134928275846358989261370293489745284941763130386568455095086772071849244143842096777275441590712769442462776239237954793098845761224133742060622124015545654973644501334217039853648872594935408988311240041120634423168790944428383989962207424714640751587660880802662860234960416682422989956836434247213371452079198783514690781557374267292283397454905615535986765583848669594341741308744552135859728170348323699611985364647122267239746440656158816092129686964000720919698276087753527523447574977266760120125786828204371549306625192967674654751060645870484279971491917054107860657520427933933983978440059481992229909942969729274524183116970646469777078572005516480304507745967670730740315900653498662407876609086619459850201740697595240873568109220912914271093821936299565375402484288661760402803696707586453092161002706086708787498903968437202725648174656164082028799460408133472336835882880805857378901272498834513864858372073807200697542107511462789074986574247625883425552801842264023490578850430377569106508037317830740408162649433490265257081997007379456833730514333326320960260439654358018429786628270375777949079575676464520082143740171156645807771598834726846499640179194052537997434023447322174088969436122455035631028855378075099073421058906442611112326721316028995829295251084078647627730992930901547071950936876706239668048787344798524123597913523660873040756051980319381105788772795262269267768990777735553163074425105033016633293729909024030279877940170118055381347722677990124586635112893812361700624146048000180672920663857672060059456511936060439703870984650036158724027470486061922465343289999548356174887614794403910274810782750423900725722376785254296153368515637664543190793000022356328541442078710674398210491831124209483236905447580571000620190523177719514516272897125352257408759967939334906894866961227220838307999389903214525732431791886044157599994580104352037920080236141928510331714671558338393525444514036288975014086103848940288001859126219167489922718860310005877989822984984865423576066487429431204861770038809514141576440048192451602284821888047759673527127808236771578391174988040571869298121598335741588546875205199112188124986166963472215735428654522894517619705979594661525913546787092585138159750363188728032450837586365520141544165431417114981505963611011150973999001945993399410213632112039312589579222875417840332178417566924578414021425739606497629373460805746841115831477886890602582617407004738558435727149061515178209862433585669601244277419421176626848105915461508887735850746912578986896048293084766191158443607577060542902951856034332803157965283600442999339056916592897155428524355511431434087791235769806718169270340357572757849645626276957165021869408967474295223810119145705182450961131083029498419494905739025051797760961385856721556140191546037190826815446563859115908572769939364795392106902824457261937864427850687619039880582816764607413265224450355663582183770388796541782580993344805411244949780318230628868196653311483483956433710031260419502662536249146433458068349367122180688696473043137113591498290876570232241385129377378512100171833410529828442155665972789772513899436820234620091668614742215678586096532477380921609807470477032619343732635499058002168627412977028998294480561841181621992736484641740479981091401350071057710142906573972143328565094917233779342572829177455404958913216358860961972868081698441766009655960215921266775131308167195477258073972873214546392935346644313387350070968753682215964729281217587160496519660872843124563803692603280390072966471547820584523605507980580382676058261988673101756211432820710859303321416488921846318343894963875095880696202635142264166368256092022074613363513870357136364238696253656276548879323443814570120617230330173439243342234437206625114261061571478385344377893730586507876762067775386304098231307532914953647236014229467824243104651386418153659738037744927326555881482958976405804273155747598710656901104243991050894957803466474020986734747739105737021008367714371282896826468051182583617369695822686385048929398228401164983294251838644081497337516157340478499808301592299893982424140529018650962421251847055380472832571648265540130555636953304835265448560841391973634466225672301281635206882698313536321767122450908491850448443283191153670316098960802413731927849198785235572581108983087019270674815326905600604871372722641387530531076333147543055713749647726803782569066362981565839990577947752431833096692839870754608375034369885311569481127788210182603743189329831900398155631671398550464858080467741331296789189609649142472600260342847148661900403542197820638740670482994248578611589327401185617109339897020957682019005901948107889333234498594912304495960336499758153377638580286475062149185697976870278016822232039553202525225917192059321167466304977317833729172485022413799579651647176630194654747092132216842502929955276792909637489379554226209271073537396164087006550507937967069233370388686730003344703456689699992055701970037826392470356637092143346628130199628428434002120442071844397988139055716099849283175487331382814304853901384115322388846196782379528579827145415231821446545257387302097238835445975484579045836856985281121495362339077159880625371179277826400922823237912424630111299039118751676470971575975117431515348537524553708223527588032016724862471042463248777243821285623482305304924778286494538210216122777624083428367660048880827549878741377561742493743530306430712361173034438990780572980428314825380279379049668974168026409119680739436241784378484649520245713016215500411853082804989732478489071415251525558578858798061389496409536841419450099039766375271361100687048083334684907923712305229150144675945819078795077504335769540017855902186361197278120947258073727285038668872904590172681301104149768139478371706282381346475951425261326498457809597227129874636149003018737285017845988604161254427992303868572474270063075740896835807637345803466103931515352852946978675702229148174384512591587819323166827915929605413768608315977955123314257966955558795113591905430426164180209939435086307087913921599800378014367665296108858174581253622966542068884134252057178943141903712672249391017088178309028612730720873626050128103337899872878129602526460625953701177337336234634516772515881708771504209200212006582068351726768541353289254555190138821868589555946357529471755488675723780073271904757892524167821690318784736168256658708222047519770380694463890223428955953702625572180375366187458932878234151931965172963198980526752525966241876655420052387644404806178344559463244066102316272889149508492548190786349530874478844927874112575294384436360356688894327990598348213204604947030106047081400219939728457166010543717508767947502878163824398426437281378090904082514003135202388650090622381976359494286139009255840848630007196792846605758128580011695483371188596194036602636249226859505212319286740876294852681495360369802950863918390758534020146292745568731617245333557435495149779106930867716494208232291494109808895763596319126182782341600734806838578117868653798539032316491877021261305652119769330200668793501010404966948436515867103021594651224197316686800586832893281536353032258095939050194469596248841798553797693904119038279118837919124898758190302379103243321007706469514300559190453765370780238633755297598017354117354962527573409355470610146671324704438898299263148097707057076054073632421647930704950766843360899734889557371252280257058887090499885997233139832243424555032324717037694061314417248563824596698332610817834817170133450984294354508433091846659985255231328636748717754036823811852662835335303608500934129703208763067882259171153089572410310886102003771468842552654586503904781038188387981286455723166981344183589595247441662063818749934256297260226888288244187596962609959438429942786846922883849838844516892757836522277431765603172840462343523934029222660254926811276778805974714247254719944976429306967765903355543593470096361792572615880364051514753880920562353118872569059696010397339353681123448886928116575628453361202551058483775697875191840946075972884354387518424859092085051163032322381736798150663897181083674153149893199323717039410115142695220462554067287011884314794168281628498605839290722322793244744894058035676671693295987932907503851543488808000905779803615696031533792374090303942665127706255105707819621072521487263078390371564449947062009837838751023235111383452200009567770212129516912723820772947154670194069521966886065065516536838775319069824333810615436410634139929174052975835515573770420592553959116862559955381207662646963482126724383821658979787789007450295680272878722941616560292814533785192078309051550304502996922909721462211768851509827658899907396307589226518891964443701491262510481563971570885781783526184127879071427076992781350446362950326172398954888832572386465048599919627575864179138402498006788882566015245736087085403782463898543934878752681150614177163979666558633526986618110360584808862849716097555522315909089212006238420549593661672748154012413651110246732574623089093695670046816028021192289748611986236992632487027490131829723078929431307735150196402617485231994672058397982343606206719272683984730706558560588108139089454897950781941507640364397119510482329258854456249777048719906760281820929130463004546080405852441238455298296549894982052792303523427912591675745802118830593774074166278205822538518566221132766628210983358686148122161752705068655076971306700783067635198786876585833268502507351104491765999607437057598673023741542764525882793387337840350717521835984738388737586857663184162923213319540145440406018735498387029923418444672558738575519436161100420302584431709181964151760633331260460896869631370401653160834599921961493327675758295110822786933776423335061650061775261714987823068527559650473691279741683760618217954732808203668785025372615323696277602493146476710567317563923388175507889732245310509977284406315558519547781649881597335521133137197401192183015406505413559237563768197378758367941552308554054429237680862044289268640322245750685401048366406547779438984076583926108253634730355263008043881474395571598735414157934637197889811647673750552105351911018389835165811306269913068240565495505843696489390439033304561559065087556553805457282966823259704504018182652457929546266807126751498257090828520844412837465853581891278312473525218004290028217425433059727523069853529526153893503008378670731987746439303480289788514293057398776782868044555410046642552408563649640451401755719790933566587198746455317363908068785691997463134521056098820789113033997667876611068439243265363143448171191050991173048279752030000492291027775282614447158708834599016724773847116131324448696209729342318751919660434736055547314676569456743186023269975551654538304978980676684196288612232128979139357884247676955962526857173076771153398522727587759647791509058127205371092051188876642057691024146557070450046875564755594304716912977296703319621016588687168179803957331445052750170622556669921505903661949530774032282806342449487019769578752077235191528495540023364765703327830440351400487991960348119992794424645940250529248464084115941980520851072229151086825734238912882439291423673195566458793713151598413531671442629546423921060641604958880011574562658916470794817078248196406448649335547800750189220474442497114793926725505996137293808171345021278887147743926100182452152996636726678889335131110671951139494010561262356091585531883324974656288290922249475037900315809373488687942742081488372603545726310087614082795029487299699558030646327850762536095594004761018566447072908491758892822748152908618081726598697972417969272309977156709746107195278181827490273377780505637076575846301399804197570762896920401218718630888111673807877380342659442300532282861024553531752466429634403816260793649378674659508571529255225832734893649445267832647905550015525030574929970964012177498716522943152459798459075126153180930120506862370635441671730312064741656440233257881799935752990130678254828462656264680841555517333599896368136368380620972416457206677554623520915622886211132021312807327261407779630527108818675905959058993503305306620976954464276772347903507447320889783020035166280554318147875841838485729381340631013920038508812672912523484338908272054553627269189369779646241794918820491016989766482007623717346404869425530414837907602659296804547190362947225082630432386196875354099837637843345334037141046673895623601983641733688910175568554209301348428027860327688957788656493865570605095816254577645529672971571945834297125239594690096781248618109551471795918907400239997839786417021546993703219081967598482217606428350611673379053629524986361627417381153481561076668873981595932348171282967395676518113406146010960319879858206682461861783825819556215269533875634289791074248019590078055433151756599812784100909341543604836912053011010054567047239759450615476174624601443532832623731546025764223411188785781114578451801090621733793191710572274878379643212410604820434671539162285867780467913890522026533113608295796832598098877098040394699549808569213668022947176448932380488865843341633689145508842593341511851536822454054031433853891643630284949074768343376860561030065548794279268557672163444474667056039488503016847745342253241076483873403860732047069792183992715110166327714587536655837766443708117385559463304619232361385769242064316878563465240402492514734612801995904446137168832790610159639285146283607618329457600253013805550073967343393567835510865833996991717028314763468410897174161185345356523132973143730024210412454394711170800484321199147559775398365324299797873374167410453345409425751803064052675032482091272775739321931447239648133644893303787394936919464652744549968221909613840836742898081102024456470631775740547878649516139288163276671670542507471186702662076117582685821603108643320522515712703519521258378171982140082939879901310650200468520782315872972409070601936094962354938480720900470956461883842386200579176496968962377724529862796238965482225475889352490907244705326809218366442031699934645274370653934767709174181600189486766658960583340629415766704582216714472084124813029881161918859826315417637503736445871161859900053024707772651024604892303542903313473996620744965915495645564953530355189067760217527795615538978153793941237685567744028656169061727237285594137519412338255980930796560109286373904235528540839779205236631177047410989257539154531279209493048620319725921375971203757447480877684778306117943732982374833217440094353407652848571338256226158682333179065360883303393386534605967490375190424419976064150525004670253063433478938908826010333255634688078261434368295704722931484532637535955288729230600951099981798203005494526520453413310494067212827224131165669641806547792181585835343682495080183570504158720583860458594267602743404620158260015938206339455220074175958181032191796595386270403858436958905753565499063660497726656140311095593422689916615904044576696560631524433499892407346053906454092843643471771284143293315485855515998124959354423384442231611238975968217210188954812819112516770209234676311856435668190649902394470794619916581773625507428778998903410311015717398408448502515687113685630380598121001582283533625217386757188803549466339844157476228581233110136623299674657842318484748129475008036450618822087223869072810732404735302237506160955221201538342528251609562947969378139003536933485344413190766391749620421420364843387246656402533339861807928501131299257095030609740031271984186495506152853722946757485110574370571240269538730329715063002076356609242022698013599559631322535245156835242166995055120170308654449274545117666707291894376960618530806067145518057184611690139469470408115017591137832966646093749861676874554918043796042647164460241344932813472159030102950324051235598287371780483041657223911824127802661902686257453055528516097813112025577594531351555479183847175353449625683536187209414448381078857001759989729823667322889098761500189791281527459816363457774605105073430871220373502219572001096293199633858784520951612221945671046315613729451950505109534108542870999796834129559687156223642712614891237214077201707188309457209786703020992016808001712323140357727698798717176889087856016840260298214469336039277306577231033877465211849982447113320490996722629601598939404529867683998052414582660682620088061348993354473225538358381766366923598664343974961392502069940718141173889323289010836108747614401994678818714966936741460659331280455477610720697962995398945626617477727546096046271293259211831639621230010122641253597020213014687175778343711792998415963346694805838152274978658277612678668810954413676624386283726579780023461998465378857210370504547520084714817117801902892587013199393791529837263900961650041746682513859430687899773606834774469671909379255351073953367298173207145246603101962071248928184847422211551103641103322624954519573156291848597180842154099499035669034739477354649036606681874566363597225723179141608626857560797863651235423771131071125926590321914767302041321610848804590650753460500547708304646786099616862314184765983501617157280199103955733517889101115033975115172194208083053054189907919004632888087576472326883578415793561604356243605629042164450422891812169404482570049401322498381914363081797959759408517696144013282225482442827271242847678239811489389735613013444523753424999671654469753303948541096731557928342857521894444628199940749218189543534981159255139445831105328249243683279434485516209086267374382527899695597559184204830899970897437560564217481903023717971424132196476155110295766250008196132541533286980403352864419342963896019678616454772493547127526285175049639394198722940956681756086751843064377085071838714028220810678338654021065926277476046819686394503462968922919616718278403045128091600093555131880004038551588378107946543340605159847977294269524824677201057698636685592854669155484360307256400717589244105778573166489053707778994924045368187786663127815081035924377014974683677458139601684689666602741325861893343479279354701991436028141853447920159088870635327074348116483339909095876317496713015106396266208705121218304964446308811056289843160342773309060935747012510207343578812359847060718448007392158692575189298322611872681878125362346456223016785918990065390955991912230956542097322651079263870340511871469335655644113358685839903414838814310746126044306722023923722977248928878129405887436405190130037450236675052228471374197270691497118888457559969597252561359617531695694509718092443746828977731427886303758701316533729036765984575706441004612099094392535637500062902433134585560931083201168426749994599215868662455081334231061211163803179254823906624471703366667222011092267756730356236456377187044626174096017506086054745550175427738759676883738772241157447572506270362494578007561417080764509579769314085087771722895327724723543500615593181378125968980953857180453156881558550558813464438918293051110339167329770317521957562054122927672254206446044201710811253822838524543730924052012102211214851171971223383315054585374471640507879593929981032766636132807786211453146356185127248649552763641858717444818339290528911760406217946606086788087131628693641791424592658327454160460242331894380640993441667067690242445388625470270275726146317127887152638098319271878540089704048562810325270917747781399329035699615139969762398652305002329115752646044112673049152417994317955538211711058459850957187188657199226997948660990580905192300879676256672723107927845853213324053741823715462249627054811240777429534923635536548099568645423704186090138620343604113518900255757305589732555844704877367838601845870920039598443267101804226814394410191011860670994198498106763534559451607711159283402253354028943838640483230870142297194870736774188839180238990802027907603757074118643547545025593042216828291864836793611653898964089975740357017308072308700451844511701188152570419191237065138960388089380368163308855487963399492519552838414023364958404617047111803482221129349903870559577921438607682200423099454820769280291835682747340537777007839736065891945460253258766639742974019635402998282721255416884080818498555882449581173094246463526121784684300673043633849089702034809594547790681498748122304185767646186068435010378450927493472809534410986373559803640410541844574999890218449186538857677749201945537701336373178454255077898321205792226714682277963439691428796286277467687937168921958255973953506907455905566645540726444686279952252972678408533863920964967053873532058924385439909560086608949191844985746111145983194240087949867451019326366971392829384682244877666245353820801186670048691843636800423582680293528797714292151381620499631148787436968859601811760312207628222048774917524742213392284532104522305707889037723242635524339502709190679320519680374941185269950871562193847015824282121142005428842876928176130940643251939923214497397719172905554107122104592567612536566641105483498516629498121470437833459171570044987232830747270885571868160454426110982575503433985449858924446842618921303787232150523877358206990876756140219039964594529907975751732726840442539151206871898116210066906697514399657547532396102154337461384414043125229395974829825669776145549757971293186977878075638600521865819587190018445725279669931853380188911587768454213294434354237379937889401432754160939686805904590165618623749448865779163217902422134264426973355731263483822410390623146055375277293210270424876097023688632793904032491664400913739712924993592405137693793347702399510161117009653651396320116750254762695101181643942932815331287866290570631760431864203010069021624741106595655025895512337336602398430983455197947673579144810025630591646036003535866878023960306915128959206539337322446140630791165473737909021105458904326806595331473002788711230372713074648464687672030102624454794469626691045726365506554358845233446827245182900569039074068009141316947677379108088386068542183061754721853641058172584452631216451872717092610403631618288430476435941636582924337680134504397125902921284858033951738792192738769798648331895706138578903203141037847697220478396289725778898465973074843607798379354310974552067270516374068507982077221107680087494532573287751192908693720875129541589627297969808746803223305205266933682357197179478888881101936844932459541021507045270911379083745009657897787012418305970405179987692404832578292661483312262505648071696819327379501155657986840882691195964423698097492692367737029772558866859535854436427433662930848839011285533328739043771545741363565099126178071679658261438199527624012543519267259732606682869607876613373923305777682420297258276622480551190323443948218047636121508985534689019556755102690622755908799982833517068116092590733542173349188838985866239125713254480475299056564522637241241101935578759035807790171983140516824419341035643617091999869433839925378779605427131133085044912506720218217570327211168006377774191491399896996325366000421558248972769969552364875773658904531464708724923677652181176192911508312715063450541167008501090297148997353321269592878024853442382432982258339462734574461227351622354842060325107624181986273549316901972021212259224325047880343336148704207864979683812809400331280774907197661698733031881936105466773693998692958740801493106193815133519335666195941198145967381548806085107415569346994438245239242664929168329409552778710541731809488886016503295086119506493225592319198986473488344867827030360146947124836840778573195057330279036054739947399764420451803715815665564818114066855218326741993216491012221912936424431451780076864846157712369600394610761595262558748405537253890688383953141177022814596873077696192098686121527663156664397785181059785087639865947831698442690345730804568743502120257138541440387229583416711778645298044397634890980839431477368104265466354033040731260998359296148208957839945400558412656948160552744345982757121138809319600224462796242615412094724942528930578594815643151421793692231135722629916845527718143451844689736047147074932655388240461572980132716962169473774753363840717807908357606721236027424682799616111742381466812396425259207645754641106312146268277701397491056402238000911184351708144018832635698681301924755663428323564677828859679892802476861962248529257792062217163063457749886315537872256663978561823848032147770592028398316396084078534055511189857543856812682287820195685402867090961414210945951885776750533844806846105313638121531182730732444234058776461608461769074785870351663273354080149891531442525826750096027439534661142241995403023469290593805998373693845456380672787627748241394682537328392934646403559809950962667428749916672692713428636570499458733391295025748486562821429943753078608022136261467445828346037765644282275495131513589125753394448450470171184727159316830450093379705194214005188822541841332366286660599577389401040371318437050654523705290044444269208663090434880237375399189756808395714787128924896840195133121171045017992172236714201345876863480314972008644610838039589743824589015278580999064446443903737801446607525394558575596536807831417117310383592901563615507154734373507481363365131527326948671419855184334123515678139906507451598500104199307416496715890985485754467919777391087571428276379946995244606125200034764088389834149919163121360358574455414813300542646752650074307270255683415588213583705153001933044122553156193263231487716726155665893734586213753565513494020028890182323489747029692533099717274198572552888888267599593452732969873983594446343129964149796887722542391581237599669311767627237834734257614974265148264165028991647291838010959416089739578613734823123201799874119609989446514931296775197923351855316334572961085616576236489587163506390493096911794523082320226364509431122298014038651490234323104194606223283261247852292323431932928203363897817342722131560200149547779088129152413196765543943232311537669769718863810861109868595069262851330523349553176397727747835118873666908244418003055785875869965672579571443878201745735558901322841219935524120553572188132520129760032991335475532101961706013155330271504900039194929989268045666491322603291633338399622668169855193765322093789239644989026902947611927302185983554732172427615596111919890247901512438711034195941016726653861861390853828195271108643557083748135899402661845129691401490018935042014969579514819198805748050225105092281909489453942276305890660894756710370328836010874636122198135348454973618699481731164453715478059142175364291466534725963141222596901192223011303927611085485089386530378284238591349739950965794835378776911768118859095277057902051120743598075222013519538672089714780636024766421295779355653697723842007816992022539960223856541103594021531492890952005445914129191603340542896233947878387020726852493403895360689391239896808243756718626800828197359736317334881107127291438064997613329486069142230308550568366726157015270187601090617293650979297291776783544089702600804028645721620742497453442065766723817236788392753652634020731577792825985532855227053584346289253119810093536113597300413275323167147134633773627058178650008601255853327539570352840047265556753296596159312597768873935590109398410505969523750630437396793168937029715037976944595044489116529963354357608231667694568201412849071738724165161773746526064469239492873534086149501789730260925079194678574875493210020144252939974107972572148536587894341583910272831020426229550582125373063892736793934826627633783627272990210655108548063120553072136797138883123328713686901846404536401526337830503771496628974806018257516448227988283488748322688689228204775906135393824333081446656867356538773780750304817992900599362449414247396838481471775385134783231572410660723860619184115538546550123142553569251498817876199408366261340862956340629121464890302211428572488368815924852899574945057999326277972756178690167927148197054035337333175238279620684049614242152375772426901564310322301510903972207449199634770597686701874539541020725869137081479639087338953473709503189297642813742576298077397056195878187915428530933760944531221808691618210061207281334588011341282219496394331052480066598104128728766478861784028511267870702190669944855290493376028274512132505868309176650692600057003419714581351288529208470899908099896225386901642609926260637391734988771355124098467492134182521621583196015176445819231260575575042702783550880450061751946541610254697073489898651057918120418998374279906805247354914728126035673895808582294656993189523358451468451812524426421353288733051598240282460008494470266198840498822693766210032005977544435694555029391830117272982670529064141120030070516228323211524278939231490775308523212569529646551240059726898330965627792485858972807197951980836342823849435937241977870816496283230778835030658933384311212311865634132291827722757307119413511062111585988801547261664049350926742480187136903761744881709532329976841104760587618477402201019161071888998344179267597277792095064974144347352880303703355615839554033582119403923744456272172157719273529015549483396404837113943989421616937704498000280533936278466659668619419519583732791981297157880743324110985535548974759126160617175013254312783795701691805270850365264766790946945165623037902760584836061268228391588545156306198240023431880435550492085135717120500100139325208104580643241183017502595354625568579760205510675101284544879327359324749758903423915348197986504370694603128059369920635224686477889053849331272021231552212413283027356949120280599108291928891540196392577056191324775277201017158900768157361798277244996127137331589924450512831066613303057996984143311355437462487725501580383652852107076783849112646357301290838771504128040310148734313246702724027791034029677847963569448310276906147175246583994052629095367632195508014243762287860583078937123322626536227314398915571869721761332636532288745166449205111053022636734866652053313667581260258175329867209324273838793007295850696302521259825185258077575711904768948604216133821835664235995243704368832741529067851624895209350005491396772538540756115518189403355569912212176357808387334354201141523461634551828177182255695714633854251924024603731068109256106154145556226680512393660497382391237459145927260307838828397131976710928974639161918097654815830427447716377571498800742597812382278506087035973955902375871393466106839275817761017388378095874870581836893533666715562041558832083056489649782783902447892809283969620732259093835740286629291661469092836862798240740986377303667816426765485945546212602266813497189555679341284265778036505958653065899212640219760447204477692049202206936154085705124863081878286859737967159214242755109645947191181558030270300895704207203863127543943479613228624491225123336565753414612951120210439119611287366740806440140690060452379917475624658164599517334858706949433848773632528612312115528141118482858609670311762640445327653174692628021772360179225336443051635562037285402412981974280299284273924372848895610531039085228193792111616021012889749078839889189962989120316558111234215383118625187601680471827099902330879144641884628681997979285660479968658130349730420106661916472471769636576484151541819719373849853042503489363864611412185516349319465438891351260310615365181882072940083935668706024728835353483696950896650319382560070485913799552911408627487343287691619408910925460504020717177503403878014330259930858485308134165408437818190350135940988186484502269694076651772145057543341561042355790436248164202221223841255203648224085944072518722687233138400730228456589644785017067458693856585828299175170459219763597461325225327675679224051608490285905366374282190597065941226832144913337971045609737425730258398847531618147462511705180737463568403607507820336320066679066293784629227412830795779627540303532347390261650678555836700409590131535929876067278115712172738557132264852767797104982811161472384583736125996064506335429352659456250978399738370003967717229808178690275494195352745960032445452953807743877658498371942233989033227926235984124745144759109815030481769301199843374482172422018958375084474556787831172818338019528103038135518199877810120892012300241276642077714706536478501111512776689748296512573306985016851023703214338717719651071470054788834768087960606135281285479754052012693958860502690901951946836597122479621401422471418871742210062113737337977242314023264761936855007880486689558154031824053018103080139352927813294402625141433028174825224444755598272229102495115347892390578623888530594623374243652626589965087054760877150990632205839549886958625675096513104021999050507573583723213896620538549665854181098112170374634147468536434380177344545622243938142711880162826885042658419706117863142124746258529720821879121351499363187353557121325740936159345457483975846166565839605404822441721160451410945248275211010333360292160015327197314218513647430066051010697741357148760500646693744651999176121646439608746939821105816851475963036377407723730216555285127800606780586753404971297018541586836962788145774678482520279326054646668292265486460985227242021589779305995852250964342381157758285494486212314621295909518830888982959652409987196025904069331267220560125715140098597546486695732548740227174057088055591043068490059592427424015939537402602520840130914426089431676194079906788474834761419108946941101199725880596514764444585396370247949485715356849120245036795959590781324913313020045389573443363937603834436117644496050444080500265992663971533483235546946132614591088524725375156764655861423796087272741121320329856067256478042996194700594337302507732102681239504643491005878940667670213723431190388971509671611139184968192895739878133055312150711277273845609071567062170898612912376116883227733389979862673912486836705119329232710837957862684500889391233217331618730888457060888998761157168383757912374826558796632559510324636913932736294707850888951735107473173909017127377546393924257010779591319635356720094961626463556085283720826426126097774374864629050746797591922516367109389011576762694517159801007448999563969889503564277333941368283675225426226905836788991089698279659998443938948753674628520434819688290923576499177817804108018768106460318581236241911525836216462566121197341471541033399595007168393638788126319624608997351357881116526803053902067402668823349447386855062356195135215487568966270690787717972177589825161927674591405100898753361284244570641344418608170615956152683945713874945446320224191431264846173043207729229582676016526478935666414792301054428549059203832994482583384180760248891839930166011610662907894755174757254059751016982702391681247377763351636970185667111980452445930854205653436559322485640353271009561334696899523543013684753291518627655937431755926992338884604257920226055873354886056082817345312843341173628237408837243268732078810552908550356648066440099581972652345543451115731186115817801158289042525515937066805817733331414183453382195134166053448040096061223719151302626614739772796104800701785360053774259755969280483549614338981180182580462481839295516450522252072138032916277792061677770205037467174530783769421976341456425415570720493696593616815477507056717689814635246883456688826270953926951702164088227040839950484098593482669382760727132412536836483164829029906745342300192509497146183201944944155575845158392209806414404446050668749388156481711236150135565132323185545374006026883512034610473223461113245261218813603526439611063219144989486331148490297946901847016016239708974209654002536761230500636941759943746007867791648378965568362684826289909523746207348540099613575222346511714957895188011906713079471668907748397051753296214166128029232644784342324957086939306328461419164456789888858059340198549509302484409879893400140571003979769396510558281206428174744465737557692973459929075717692631613612015718826171000507521732756760009410932683344604151328559276507739742315389571805172882556038830524815936010013991795008021560861244193992533699640201423526092118609058886332298165521297562330075110312907556549718779207583714984709477345537602174090175313430861005146177724728406098447883847598743431927543462121669581202116428767224162504947622489857935235882618095449106928790339540751489895502621941665060070195330621599126621677890861961046085036537705821841581672096234280221309973061164157991284449713429918499284657709967960128356794296042153690450484441724720482823586642232836414842798441006757215529756950600906829272172464434434670723949131173492042489763989884013793646453786810528774527858817605595668988828227208886716896846654729627092757594930017022515124707499555714420727569448928379818033250169139964552669181602652492324220779042110390524476119679571998794937634251399171495612717165556558155600179343067932202580704659600614868542852436825280192147392159458088144903509847885382853496498664790421766827184901754936709476487009369528082544300763645898613104789233616539360447541659432928715253107167042194834913720496646481379437813043871398803450307899093046916952380800772740790139183959369803292464567320579814064212078210012828131200746932877625874499397550844233265013469352233140147436882223626223396199270979604713654123453621705554750499988841929258655861510412410795508565193339949715400523088989951365019640077630014302717794889214436313141980021461647582722236020957220387699998442979379624535110732529254420777927962073866794412891035545191269903485656735762961241999558589410328001391126515242084337917874299656509971585286967153971753397045562634135548857136700379975533683912729899346256109437313526441762860101185280973531681844129835657655642582812705359354897280621348127276372018101532711771854207638581627272843096631833369457030087364258091997054107514422207255284751276628884409976085679643871295619429714103961329544247654253511313458806491280804470591335034702649042114530246765447829757707620612045883970132270380275306952752125935887586243507969960396212471357808006402591410466526641857306393588228623971003727790738768183254990776617506445536791185909395889589427264652384287702521270391661814316640502923178813282988961076370709441284940434293624416101690423898515680053679434492336979947181528611646334593893600965072824321833114180857860180813725097789455100265027093174800117948618301520545755341580112305639675077927719854222300296782667955474482841288422734482249468070838213506540149154711981689929211823928179396532358225624228197297517214284925539496234001970425937732148478570866391825919983022740698049213555147389691308947521097058364338119884517853269026774656096767430312442105510023168577777450270842701604539369478619005549802579829437694164358992138415674458447196606358400599702557127152430324011399779558188534718062424520387952387665721468560012918663456836063864468014891737218222297135962991751553720556896952042976464631141912183587990479527209590811197374117439682577964990104021180523328896006968128227542945341721530706230001915015794202001898171537693977914978421010794541520400088085719634850119146092312241649876918147923315737041674935512938743366360212594624772187692128980314241968108772433124895512275570850022026811696627139323336106920164878443281396646843060555131500106574876627832383411590141787590489056138733702396630872717093394427188088125135453204201682435773229886087230831652057442071496170013675510172494581816234780891808079370121067026115457477235414403857602497779831890147776266209751334511980934002859619372100213367993237139551986500128360727128732110315842704808133064679213944369602488524435095572656338891130936082908691330360613295337809190859550542693623388358768030261420242346407208920889873769167616824821129064382520537029309985141292455001728012521724883501529034470549174600270732166319107119589796486065658373543328791953139101885113848158802449941005926559165558120957814872636497900577591177704446831498099937464927289426347661122583067486168500063748804096178803116677575378459662288134985855952156332514818819744189869181424372911648672183149522524088577481945099379356011315099206381857909447256099251473046961211181923160398546635336295707902442697762607864210819641814940118364821436772367562325632616814710125961465662384167593035432525162224001651023795587990594198341582068976307152215155655163385805777861481256115818685269594964575723687500697839295308635796547296158728212080795063714643762819378019368578976782277832142660199381299893841394666547643790429393784336912455363468572923563590901697395687616808184785895773153693516601529728932076948096797167211797403257768010413272554459765360126827891902607788120597755801101036929500060819690829883333698619849142123373817093646879222283798191403205788040317629462579883574350584673297310625820766463973007050518371768575102059276943963815339798681708189907737849077875806471757453282627496197499963021481353091852173886219744096379772759321535191959941285107994487094569123317026967772164230543123303114554345157708790254978796948192790575608931909790710831497202271542259095646427257815741190458900166895553647414499447991497781496879652304821848628201432789092651280847845516806339191258075264870735599977745506692848088843527635880164835248593071083866430952245218335654415879451345642490815825490758518187479317098820013221738538960977356255512120847776241696214080982336999790227685687748050255415374866569266979270815403285287744924527185067430615957833501274586303435851901521984898309578047917427747289819337761284188829522342033658826132338352583099853053416585116602314169850939509806533997886676218804867695636873954384634971781917450280560119280527208920140704197672702877206897507816903441563700436857040842753466668295342165640133965997422261106913170522279308253148995332487178383786538920663096950763017531429347120835656455618825076995369784719611011351991713820584399200846826873863800450631754311910510219294525451684392753456450582438150011217161920759547748765577890466702687629893172683314787927082324385888001861225364698678355817125720516199340397968766508697835993410834086603878829188291158148090177929797958792924375704353158598493742143997187490448724172165234856926789530276996730426628507960900661917289781876435053958121650639529895791884211299118927056468402757690315773172441894116580698970091281307924252015165862443763371700414912154342635004958356259646995286767085446505789997188796806836566320793534835653535972655752193473273922489306168695577170146290369354668235118995122053941271308774182862892048749006117931941962294213356015435111031433114769857810530058450998520051120048179775054154118095776754586959312152331478166920320316997081144527727802347518436745374202557563649222466230527281931715554390571386840172043913084989001138525900966351097898025073888599709765989654896533089823489746571309351928943906864762954334210148390966015659052324775357660556832838269486903850574239646086710119382977507204239956847575529824935213729178181355824229127789427783365004493510561722498959619752500305805083869946169263502643999288510494694602402388691999053270737150095700269980084576797971970523235936321533069893661372873080068512928873680739153549598134619977853115481021528480385045787150448411698853623742621257850327639861274458228938299635994034412997929757327815406683244730303721756615217195771247641423175977189008930973849974314603872015384871788287107163214975728070803489987214132747073280613360984643183775658033701802977705532488121908964466271871718613466621177370164442628593874328294746852277299626437801802767228288344796717859985532902762571208409271031226420871533714735128793475959372654870037724473322879794453759668367512554159620548441984500312605328848628491145640071329980523740201562089998141962299417693141898642478194977836049638168825455208555270025262152854029797274613593038598596232743125996809057626309755056195392731324184301496022328305710324306099443100757378211942345798110889582298730347583917068387500523180910224785498028475578278517613336155544646997431331333620498546719560175405827192588372073808378588674162299213739209741109017820316140684455789943912744895408686789872407519951492150250865837181653878265215426308237727145467370133552289733865173714007375482363674554407533195202833142705073251307658944145715074336110028121397045120002735557710522416013511919844101692710037292643109117260797983141731384718888722528806584155097012836871074767521962808860960906510357046806449682452682405660724726213709955950762664071328517373090028212748267232618166119566783439038914739567854247042104620160847152861398925529727866161433035717332689735312979744909025944882523492353286642212977729957177842156219569325348835984557297024291771777669172166868054292148064484020435104542188377695893018120719464151215306673472542322673806830538755573881999176859536553664377927544960556691027999007348324993143855771803767807491980744459980794758685640547455268961183341593820689255848373161145616613889414684009561539608665734776566759772444106007710544585598017035380768270492253016559170555128407254601799082098948241408772677105187606596566250384989889249255454502778339833427925665637921794093348204182122559668451866349512049812655170445716719028423652048644505575344906140065946195580766195911038720291462684653263774238497902488287700596869368889504288022808840233683046438009894170965464364757141374486655525902167488871497513196496592373099492825604016185880647989915767702837533766242646617911796007604172322359020213218826286145453544562049788688609585118710624796084589720515096616134805893115364573093380628831853049157516672427698538189706252646005083056335569286322705227927036898563404460387035234651027508191691746470563457954903724971626074712965474552391277390940041746477996076763140238231377881735259029432605888912253508341626481986860645673557097938809103918655689734866056809067404681468706524732039326231046053909989830716063172716562398178711672189557412960137618277143657926427814420949463276255804542924703738940502281962827467470562047364361993589515865398489420202052693758677369790951447806817159286522943985081850411016229759515610914606055783228966302148403526561443233850492278065764567462876274729693285483580213254798775461421072748890117699568447710472910311251054326543042548410587094250801188162774768846718451263629578172698050179879390225177123931666082364035525030438480515137289151949606776752423770540192058956921343558620870512772731688659574319812370001004129107630665712535620802453840350630429400949050250771823174411539347367276474054359992389562051647538214687098808679757839504263508999137788809422151839490394442250565638964057406337641895464229272694027272248746510966904469800286394290740522551648053016485485088506019807769177620070898981029271779841154894850094736593717725286417344215706688790203105734432451642464519324571424288517965524992435864325767602078050208968030690177262077351804757039137322678761379725201248289887982267559151987863456249428201534769370917761855833035329583287516780174653201137618384067368603824481161671952605745528620773085305341874722241119999403270119269541678623053621331711696245200648294355878993740765787002438133235209405019379783242329065829818072745330250499820599207233066783506459267856926336915437639664237534086701936614131484877462665473827016596460063868152023814266748885371916950850419918369202202628884124066707686010848164747553288479875793590302326414363071313664759391443363677647236168881838423457691504239369057494756379027497895268381840344654416085952786823295855749564229515462860186367234850706117661254296056937646637782628124541945782600977678255622644783148167463557223977569539979798774088162124449184776586031580044601388808749076089894898615710856412332465018431238657532662105514019895636793789803765382616199221967595136555161837138821409149325849550206435693098555245274610932101429489385970700692256358140291873309047472174543036732010483979782619065122515395487714139183226012161107098128340343187940162173120524482400144604459569684019269770465501724046460115340454790203472840349546931232327830846087979558009109648932634373629076704162940939495682228658695975152233049993986954389462399042778818804868416900753426851487091593350311049040319180141457528799290690869800101786765968390171889429853557979125718066535021890396649896318876167276934447963655296410961770893252853600005246315476766063156319152834224286506825043582066262191481577306727822812288076157870722829373000004552657181380408995734864173926406469262957177925322367739289233257314591180083665551184131123705175917714800477292980679521015973882951362444988612973336970432707350989383418824520387146313465866340442136437378123681670610799623161322210770749743611397028033186660151192588294992822119887365283085307569169181467564898896525570885204495271779603974520889039642815349256155690526891492867992217720818821652202073975859516119935850672623227577645323475873724259098296220890002135926107248637638681540282839783855995457599128976081562804962005910120110008932610738197548513983985040961623998482126414069808657772739419961380089178120318149900781227396444784159164458265385500140736238892003441736421448063611991337176967737277614057841788154209385754892226052606798935514256093975769148284701897671564033476727242495521572464727040449464897453902446767000592290163707068344150640334378047662883389851838460336432915027917974216066589626398457309412638167075811682325796705103764189133171573080441130137410801507732676859325543941864938326798891692915576663028142051321477782727938649836795710665889971319631387921326509509815383975213613714241451036184229979675069369436949100380005304432056114462537252331381399730650384166719024937626302868225518713028038556210150506460826823689991924969111253240186370508373037003705575838949083947878776243239200720823835962461342474500895282965053429168806817622111927317447668912760739104574866564953771501412343225691306764195431763453630003022703928311592975416931572639248348104826838910966084498979573722227171144781555174828733734984520650452087621966779548844799139265595612229404754911810000580492247861304269727027943054964052430795351084500523979223375162486710300400305610079028223805401861755794641317430685647551847525852171061906756097965476168918685412345640235477186943398258030092263414862105761006118631709415503293008242955250722667007521588553233612315374505075415808135768230298918891986406418601515858954431138145719393130809792939292609877376983053446963486347105309901660291611366831878895959777311760774171224492863437118274833726312403760174541342164650198528819923631729549556831883003216627917422012745199953418232047424751338266610767360751522888989964386197486552278863565809761899577902303574378586821090938971670372315899174024803752222434168491998328660591425876017780724745820128459900316065307812360787332516670169421339128878999866968680534660567617262846016384498502972491218486628409538050722902211266111378057529761753355838491627155990696623203382817274102602342046284087443875869061927746805305139724615802965202495976035919788316859490477243008235546239726908294662059200416776439366966152342629239750245699289865318550513908013365685259041599248733981920840985835637667491108333448526107184095412047714930829843476472705489175957185357909980267409703808547688807853530136529230825055799290141001827371114928198873215728683322720434168484922929714000470537744394555520910742322575437193455974089755561379956099555827902123759758404495022325934747948321690772051800255044559432532238490506805776991030485884730402868549223725794817221374330173333893955202868372831689295393104033539424354348510217031100333853189750218275941377887361407140767408395648851147094177210687277418432231574454822138491027508516702476211307473530698043815233123215147605058419626384804259158829787474048740795895891210153344786964053589654705885158654800913818322896771877966823133951285317339771078359520594043863047915106045297699988202286045426171041436756593254590740351691532033537958306799372010415098444530080339393237204469696429806982013760874129394661554645039871682014793043662876878786849842077830774142469905967686007809438060091240665191697554901579579783718722541403567365262632235763072992610158373884354680784895399565749078466765124357745574900848454115962539295337317136793788471809319459926169062387079953753415252676830606431249279590785850811916709798586546743675167763539660126091975250009652825752385649105822237866868008479633618210955168064033397710387640467960517750660553263604638601933194280817811265076969639862998817737373372208306767120248464599947925457664135476133826745101237142873157791715920749337652604868033067552487556944545703460598146514367100227581076989578815639914181088169583982226435527686329501127319324169384752460187475925030823533506585566200939712639155442076438248150394791745854839846962405418313991439626664759183858714792359168073181969934841144174502629156181408065970402817383372354367833327548086072957973209424868322970296566072797753115722160165945303581069937265235436649362775151082984912603513023495169671358670536119098769770696192236978573233378744199880323900344095596674167781695046957829494606751289911862814384172770036393436964281554076562620614575027106702366480047602847990535482412920687740384002827961921222708448411828817433654652916204628863438801421654423819874598075895202991243046271577473327764809640022534446362258029560304795469896452462224454826422143360727226279301055251741378928967626241731052578406196476430453536095777640216837217596801513522310002622121352382761303118049143296684954076237299570002256135789654077952866215361725748404039441349898027313887752538751961035202171029555475878111707054653649852075734286861843204886366041896690931858079651050196757960615887311312777501974610491712645578550803229331394944361614375195024693396413996278672971978595351649780143053614350843188738687483438357952773941423218243625380751845757017864186492713572525719220055322092707342372361956462790300867506688104325052528703160718893431843070239576467445659508761832749643312540675541295261414137464204489991475574037829701541323102213567787585659140901137797787362909934368246564215551666473159882110326869199170835051441640800846996701586350437718104946338485166671736761936097700535179589012055694572964540146617621412153179970257553226598313904461609421967306947855814685088543063746004494629382691655741819524016613369907817424990738196853128963692485177360652583883941637222338926041483589210233406846614510663890573740241956855807769587845621497136989181332062196135741344522359497357829199385361966335155328238318398732738201951661201837965372712519383095162651276679297842809980493831384985404449918434837828334096437945000978666224198169806264349573120690498541478262209944543596788371948572787037533620114848349293663791193405244973554686569967753490975331540081948285236292475729870604970334093746478529132225700302733685381811695644427753792943875544349674802165141619806466232873002530748518859824146371868620986807091986239283979887320166522259655780936492588687452349127586656637548131180133078340036018155006339074933901308074557761923059600270265383845297780141842931436086382934873654110087123786514492464560021984969506008790922394327263608194297074447058754919989751969713399901275839316482748459395226626275561145070669770611103416272728218043122743885429273302859187213610113999075182376164461792015091948502601936988219468716533889715545398380041761495427522047683395226282399468226520501493121573944162204867765159239223591119350213429951251797237600023187051375085010546199459520103087763840558020238419479621318675244204111750622560560381828467964820682630870673720119139531896362309791508938207087448879927124924626120986741112794597782463671134637520034183855692248617943534203278660597544412670086699170405246764037620393194557663924002253761054308343325453117659191339963772574146727317566299975279036366599818036382968098674621675152242677178382665950495460794636016633329098947686758913692641331511980498993066741800535107410084916786348981619233945376640883736683769114351378851993664671532091873306310724197386437415185731286146115943079906871823798222408438953655846917713087041396281034414978632936544721128316327172285311910237167837264941270534018213814276862687739409943987590386161773359689943117542479483403298130927777265972196937198445604160108503046908510546514241756426302793725870411658982361427165062773757450126761438661900436855377481536357405419821987024323927785107436890587465491197298595744088123749389531855313029666727379540179786731625595690500809887097504576438192378905867352868147166388929225055668463473078370202238928391393978701844341641780840805991275340416590884234370928046793710771484482779561503057753184923784020540545362848913518393719448187307734966218848635362387534850569145121537818030301322772321558038137683930288781662935553894537749717293669915353774636543476662474381465853334354425370595011787371161277874757861288406221262161423241503021926752209465911254648025439399915616639887316696060659576426582234086805306301132962873664211868321828501853411286846729815006201261807048455739291668177037221443824822560116666434052340109409533763224380361338764325379872484485264143825412462322730873347730605367083799445667482958973390658466471668302668141505463884132809980582448629926019423574821311971997904037696582388777224960657685496959672631921770374514677902457755034317061072615259959085917240884295200089648092614387394941734824492474081753732444088492976199273483980534182052524782981836225541808653443916501811005997450631420036823811457438163710398077884149807799981290016085859268564769256567174199805868123948674534790805130490939866359342819905834650223223151384442142319219231062973122303769820891261123685907874995463646525300745082098657949849337131802481731298431941469040345764893261144953427441728785892066901966468746080591589694557351396172513967010619688850281869479001577790932936634625885415843357347105050876889955124255514825527642019553365107933457058252810194977232337209015661509452365733673081128765893176268845465568659927523694392840413413913769006856948616794491231146559870599808072818010852572047524388134847299106083126009756164816958975357487286938404925815168480702309614596676284339129166491607509062135541686900641042153315345315932205906763546872084003281513908544644119378620880496949139353318394377943974300412852472060802095864780006849405748947780179029978547972670840308527963029728022294717132478198025248460574415907376573023648970556543423239214416720457310024021274383505636211277744374228107572949437429637922728072498222257737147193928198739771246333412983029939383717966474402139319914401884963434934279592660179233083045536737546320249373992780456767430717597955804394052491453106757963731312650218917727117182726303371862925373403740494089076122370413836631708226219674155362602586691434010155312503270863271435746039899321033086236093833119921074256040861803350299916005761520180864633300739140540313745550146881603204087171047827817868397851105479717157846836375642380654184198068440071568245108163850291414184056139580778693557534193420762950238714483569725439602093039224190011877346443645266020882224083685488690208831512966813530105814057300179227564900776571707900941942760526563364411363261884383270006709966594052484809383648093901096974140350780028747963799396800417478335748352645654009365808786887086009505713415202976191381820471656985423742580856007633686654629869404818984017162019322678278882455835748980292637436853194913660907186242787761985868999217630474903785541095732277814737158713108686242926664743534480300656584270502290678040062448883759103473106538861778665930896839278728912811800224347965012104200118468979126387562823621810713634362586581908891083268293401620124900716371083228049567854115916486447050431064199336380941108595815372278155633067002147152505993193122149900948448477645128514588494207110209470957068023715308217098029544301487030320624717439911446673341388743334529356453644867131059361538494457730457235465776670746666872459596375107880102936409067653177344987955388352705819979785252394311328171785256916242450889301366226774371394813752880987053141468425806041859864521864511982372193309004713516378709721077651261240605147813153868921809656628289172433861238582808490528650872565047087213770896329304576780037115492907611280202379859500691716538509974575321609249797125922540459731030163178823298305804157784143070893022394530113591463965435882974946675256802600514753468940724762451154321909363766392451550773993643294153566213023041722617881413880145152088059062079833628977176806872987843542726951483042100773965540801215656651867834066431559871993863498058702777356532518389359476454868926882885894030508513033015629502341114790924870114088106897707249315246258451716285769689724841301639190362149306121745439068516719605472447901691043693335447007687181930179644612361005472449952789734573005856715612026296257752653844575217407683446151681104074272995345056556108693237735585873495570365287271879350054305027614399292170464915159957500879418603864280239818432796870235300301280806762927727496729200351763061066732438451389951478068324039117315987319828892012424572134037912446835015776552225481630987188750237064527371438515584174165605421415832187499796862406543566741374272518569963275173701400252893642235644063076527408557380527762724154412119616148409919293731392243287929233344986437268707460558757547066845628871515051686607539675231580195322997822491506775944929173151108069618639223424310229346981862740659260878527048566656990620825126370483442068202755219404412790786681684693809654552012350893001721727597617114383719664087056066903148159315048284305269746598671755957260624847445803361868201311013526912640389130993735492360751962970263253381104187356482467342084494218809621185428563073927757728538830367694254061439347639530113775180005724909215481097916360888534885185455922651546036174481189125904285169082562780501462557415803864480044137465351647705911624827935206847486938623116556002611509950893506746021016474317705789448574771196303163254932487297090087844281100670270807338167069744673007082214123482038203465552906902872261926080315716227818754528711760629749189408242389175748189757220152325747225721491547769872561117330671956548662662657719109599227258147110109563934938149742824987374892615125938582021467565593605294779112651408545767642293726345004416441564402429694497557564400287239598360181844550153096094452196913159357805920888471356772409045376337137298727575079187681656979016510475520194747399206565772260360640566622937836273264695432093507266202070284039263953209584197526271507200029907737658410475201484157136879664819741157635228140172476011578576437911738915755552625173402610880268224962981546337998399822958841296127982754375528820924161224347457364121985153286980424434758035406829189717753551969304430782008780333810364515609331911276418809507811495188005773038431025166051180155686302300045693675914714818016639625477005533289953721798509658397060544701314644064341038119466419010431401114767580862327538192796363284913588054483386610849517983930936759555416736022401821718626364242876754704966042860489980877508326415070387472327501592096057161231391165551316034941376237419712008172236752037470159038908429106137064171581200834736874473996803916515136065882101700288117973427608655448495641908348395640867886854028492853025427740845557538662872288539428127127766655358226325861546532680066982432856823127428711354825243626507032261736126289623732140655810568831989575369704199857428396126947120693562128463487294389332539905064306504142014638534569548064525878628075629788697937822652625152271188069889852848315418466844228818570686017466225336234871705542902563452813935728870720365407290912181377908943731930431182666118367093271300759048131904661468967422335933150583631793333717984303506073104514959166758148128874306356377094694329177368653779695484855503004384964658876616138046207332422608782641623672188314295727265198374033891958170860521128529000045461994276588650486121041801677862083716685018224798026728645782313375118064450017214883319142329090039544240773485620496703970761069117029330333848299606876611294357268279818029059271854187569038975810692750261843536153078864349268551898150232786424459483376062368216621343786879721543782691212211158747769844113265500483052542673259089129844097283880617037117345067437320080860945103554591038294965480282633850026605498059297120938574886197036615826483985166199571068816195609766825375904095017295191405087846599778084317666135996780183342137790090453502472190302909835617958747176088725089148733028811178274003126466101531360323941153985864257494763934637844542903433628876024756300196432589399341531008723496596343772838546589665743489478515853718852690284797568958768116317270400027636750007429592842620599757279855305672023364043444658303711727713278008349546442851887980602168569442940011233029908615814756939466521527339185256801372945611604219122823810876239115845740825845449994181446729065293016842651965714625346283852341845278552681481869457424796219983721549143897199845415995865004543323538068331838974859356082116538549426607365678211524753179357832715461913615507776424116730636587895601908939622313196989069585094201619230427475486753091850112083437182751973095207166509121608582152265228033932123468233008507642610198476504234974541910696208581257556868564252700934248525164450120608522846675843352328849139314352935329254010145230733896579126314813992073209025685383232903093603983629692895042969503383390448800500496061566055296873201569958841047826989377732594539141956966585084262354358287459696050439254712465494270712208889487788318829803280436372371631126782048913567093041160602431028301512098790249339703010680478754897225324634622755379098802785779023022726946807316358411058545155927177300474217420658907542037923442934850860646604432696755052100993020088494612662312713765494960656105954013067906813741927088143398560427490899381215784188438178000031336036622443996263982171183301578807738640683890978170242665904457964857987448528247917485318810208075748262933076117101030142926343691155286755543910004401337594248165641278451806956337442072930645988800277205788768514017350194547398473787682976763428122677666736716941195650708716089336477354507696814576067536785176127433364709341470822392783684277281980812246670088722234243926295488407452224575635032392073934654683906405470030161948627186990769196672930289271801125562655065142933155784582465066382007557376451674864657367424701121089717191905063514571524220024639873118303005754931928551802678976472818108280622077566863989458985300857026934126246581294267353578643113925128157944736104453937527550348213758742384881990550052847755157599078021041625864768890883185059964469763418661078994051460057479101927986887103551236674048082843294117688719950803348848245948087517645901580980514660981710463101082971370452471316973002869369625905207984656437161498205585991018907747012538879036899316622633683233702046267933509841884578111179213136958144500585823362882532695274992679264666399542802390662928957430591815312125021724990922326399208620305051742482637254186031113369399625800429647305576992448602951615868138022812889428357607890819918219385216758147513657705334061675621392801668345596298978864076186788907938910088657590389256544547489121092306991426941807234426920574880202813890398876537249621049665423747666576692894792851324170733569289034018465966164769155706217189751776035472623473813127391109760073482893762025010694402117052309858129103379148631261298515533108026590402456379312950361989917013735039871253785562338169787727775772576638906326572601634338193190492298088351565517545080648812373072828369825977322561552214813044980915779726961703580415858086191753529971151490265227763802349468503393996335742313529718300834929216113861185305390243611539927898768861489207284098793805240687222668779753289982427279837130211866373496261718630107723646435716084389127282107914595729562596425460276729207344451622353314951883688175138648363364071930485689173429021338919474265744673579757989121557972685863522353548053320270123346405817403632989894797682735950606296896170894684402924377126558025931813183682275537178029964597479904012877728698661048550295328556897496563048740074617527010103911275414990641961058117422252624667366696607824654750021865638625424063980239991993209322447907583016500367318446616292844851019964672089398941137206536739526851083966107050683399751920489643704794942355856842383210702815407079168205195349011177790019230500232841732922621851239020254876678502747984846894934679827873470124936760664816061676236062905790046485403923866413010640246184294452826783154468482586095158466012647414688889675734228018618005250005509328875734509671783821216503592212186218780611352276460315560439718682037478316140613735169579306516721801340814063715086896372371619892558344810193445787044681739163395241227257856534756228964530922095230039368289905095914334174438402540417387852376615858976297397072094524691120435299386118301040357845663594934125849787688180731997243298408035884271125371833428744028187048942788400762332461980112692429817217391509017505655616229301591198840506701791577951840466822266309463103816685013147336125734192250495529697490183162367269577709740305697638345795773817523613642318515410461259146764524544550906369428128433885177858602124775527841738553148212961555557666705886391617420437460886239711159720022451852108317749257442955064876198173521585307375038594287601916329369016463567364709929544986252368386444251586591504031337297940471218221455775663618217156796653293228737794446499497430781731963038692907578054238647608665486683189653945181756131998079162368673044769180037705867532995376330222692574530996418337148859972078375675153165202781093946675356449139231817781155079350229007713592068146501679894116616856004184804292198067814209493373614600574591877458904793993193098554783898220444830217251370974800198704683473469398879314125691406767195869190134982993364027219391946329000556747214500675746866243108746488648973737414131015022595433884700750563329768862251937672887081842397840694230582329097061552668873901192744371245960760421444408436925286464761721173387601964955283154885199461363372219999106074648448616938902782335193503680798663241730233346242109991063995817495033260076292778356578455908874847345177550632609468829154100077849992496941402414936469097683582738483504818913771981716937683814501082230733707431871080462774259915196425221745128922949492126464288927518735558587549654837643137016952190546358111351590995055767993654750796844967423436758804919945104861440172525847540166868138073032388695918728754373778136036168167098551001203915541299090004578424587768321025569868340202376198255608838897331908069763137838756468262904936284967586149656026692613556273506465264482572468208798544306205926068318794977260167098421456625418371248635452796190150900113181656167604705982417417229931870971538663763009470287394941000807133430498452277015944328251580037275724719082553096814182260233351330002129421280067764504353282191516124911721337173567864449178900753718663425136435711176284343182722554418136132748023875779086347185959936633061630861156446560491503816919042451473406652913853420785376505426022361987900197910300069368249578393561070018178610493190256296950398684263116952779006752305963289232814182577739578925466856266506225997204652769364463829343421069776263519643548095410931100058115045539452012987023481568178791899201358623214563155126482879098102569425146417225164953248882798079017256611971346632584975555623717087162293563417920383483860692604585838385777668928568236160887986479292998448780702566003797331542992231678104586390762876284114191566604810569356345261336167501898512383988798418492802483196399135746927501572313555952893776223577749449559329889526738027466676622857682047019935529787285986157099453478602018284512416370573897115657427600956791111897243961073690103435820806273547176297239411853403741069276180169617279771142807700869618868249980397855017235951383507650056701813591243640453828806707543535927474661070287615489804484601418532117032993402353504210592218302619519847346495971662469447502917118814232537977099811153444635328323219431956385575354353885783689263093875624726514207829394477491847324683391577135765741032948710098307225060357378665894740403184254518216738318699379701258540087292747103376512730931584884409358211590983253542344456583546268905972213032328622724116811744905350895893824653442519597089100737140436899639212219431977020601078065793319891353773146883634538841198236887384517745494942471176934939624640802603916617582736025625035187138571322930537282595384905346183328307846536954304443725249757424750498619816039681890400609929450504238400782647603018310509683894897867395014795106657000931596985474770234030997598192439951379207162510661891858135307292026817516194608939671501893340029154944436542056274140077772166871246937892721964387376925556579342987270334246009888154749504953443688768213173698574633406770564099112613006754324115113322216958450043198834881272402165903337831090113127725920948440105967849042682408691518899628117305233152976517648156515865168939334483917631796050599611959923046168087850317642488518777702861021935324405525923812329707701934368725502391389036765636297133837876702008387543359483004234394213509288998537582550319211071265255014526671415385957553852199489560276060172967809805245226115240314431074350039703608881715209117269433049836931371538407259778635673775327795153978251519299419962707167048650792656550475229320710401405641360210479352969862469046291740285811668999106213742838762089778687429776879096725226166993739864038075702357651481060343860813348037075917556703018488408189076940693797139673647215257783492069178252922638637235272016125782259541050620770277557600828250024728860670988071660910817885028076015591536935694839647337890068019093053110499658922816172516471499528001336584520286436913289415811825399857647726078067833579183573205747203572919123806259490803561270615914828559733031149853585324848998226991053590995010115419306133487548802933122965981552911897526576400016863090510762523202936832827824281701740144604461972713103555427739700413751434593781014613266919284285212294634985750961290462328283406690327215523951041522607445146942942909736857053442787941515927546575379358742910838555851478332273641239432649287124892233054390666338094227922966478128813584224292718693907566792423369568024271835143335149725108636318154688376738493978363643389671733082360586555966762538445176594926725092397788153547262424227373442818015670302412102730015596688270742187420486940977015864237235239538067676781462460524750485487625431431477471950663456010148003533171732083776154409621534429508149486300119750822138325883078310846829878423650594773006011990169447462075430882358469034186107224484720897608337614344009032948439605173562065315743074499785950864968527821420762901844062428713078216237004062457018489802012092039414232124748026856767184444442909355414784623089200757642688920711469960582463736351390541767596165811238039984234648832618344546542361678598650789521526252171070926962251970129956579764567836911553217184675562320177031569571488477790428301618038181315774693464692812515241411366678757989848020247898977544855729763462830853399806032960133282535637984376320347115671934070718733082608307088562992875211032724788640284029139398993884948883979117137319732584217015042297461295489549062020788930318912177470426793754579802011986502137019154497870538810026140495785111001370801856553378146084200011420903203615650297359272997685447791083465395770589353071814707042676640572206887255161222837672757023991092205568244314873034917860048515357506568035264934516834569604919249054256673408936579289214061517928641808640672974335701150580894890368688846781042715269424824421962313661362772255215201817288473777607220282107606197988283116831161952761618207382123783304036499488039313317137069478888024396109858716539303120966448443453983807871390404396390931668053926772539158327119973246023305974914554746897246488447975786195921440226010697267585786214097638512439524805628126923937024708717196774778309221576418283591432077911526240245398472619430497131123952253895917059195532971474764915195862917060467551938394752699024515565376831000655095896006206501627683926976999353965688738097838410286016159294611625328083582249473948161211081088643838366873356754695311998728899907270070097778337553726817345549714274609991573083573360185992895077076375192767572870405828773033366656451172983238107575498672166551454585519717555531503640956471853330619332192091272065033136739450811758329554042336472843785567935246834710933451845969664922830007167693480986496674029597529380954823872765013228011965806336326466995617774125257595467863123483856044936205718507214654562254275250571643327164182710891842512147863934707558311910714999893518919665103755156750064767627012546768110370725539814446549666197341514922832309124982600788465732184622644592050066307835482686346496446658440484560157915295209006782755924533012072677949925491721708072272708774411792132072281723205071635320036168287931890809858221839165456119621048154914555297170967351664679996831687953437952046752986938113474341828301703457511500773538702231234710736826719951859044096605534685897861824765092376129275271915052064688722958373629312355371591270922416331910912001737043738323440869166930514124948834726863956667030037233613133451297616839865830569478629730387107282764714159789504993181814615474256237469983688254834412567571334929975561883112297698712455225703769949021888983983232727031184798248577720287107069575016430380257807386129506804128845047264453657435910801439781413322173009830594795134621097201764199297153276767909921298905490859996360819174896392618973548081927469565843672994018761286365175297267006991430264579632268897931639447823588083459630723246859039354626111044388879018960877002097443713753211917275894921885234643052351978287848688277930880855591047892047066967993337491023553478302334906036825639845251153276656243702505679543377332113240726392178422235563335504958803922532841602771428463026417662905265247763785696662233367471127448519614879150073459053811492885322468778625901400560946152253598322099231182200055689916183302997108714008186185853179048316838678853506371137318906229166268203627765665316278791099301832143756110671910459062381318381889137347477473112589959047200959432528362074449351711195061290740066320327858030816138966561638097214423346527737757196615763206268169419764119297551194774607852271029079829972769995916123090797488644145870002230246601359618665267660536391441555478448175237732902591029001015777095772436715514895991364543691529017699379584289494422344727192391336953636953249455120193986540834560876900737917214740047098741932446154209442701678751654056580246771122843025726364139649854267945998383133652478250922874970419097896841641309406246520525990351743276687770371585962753337237300061903404176557704491306705353080432548662254260769688490987806533771023781662659504330381600658557899759307653868015025673502024739333071796388210911238047740496167785439958435379088212260389539539836030427248157468781994379867091132068070877856686894349272147240522507803541811999914088161694572904845084220297670914809605510307531718265730441075596592691297698902587045815133123026244972994824402515551892024542428034937730943111221794271655621665605150747806865453119452605879314730984570661825857532648292447286018322055483301591699744951063640768789388194855924038433182591282256045885356625535688975778183642448516474126601764429065064384589972730337635555702329000296597323812877131534750239833772101679217995833325125237881200251108312029819212136141352763000995785715147094665477364512139675113552392615457495878506579122263679201288152044243470313190580700481899239510008185909269884129600206563597790258012754071472895746091204209516133948089982233284733786610641381811414043678744679780105335050973939501729048870372814046587746350200656603753784215445738926819259107229753894041923594470119350506482030276064749301156111576204079912883740944880403244785148076630729715236376171847385192148321889009678613153306879502301795700278145165923180728040982598667951954523902181668391158617169209002629321325097460905813437365488868377825374206948669601871062570217384799799371015420733547319920469831592981761880245872695051162524054670937136618194690536664788030351447464396493876438206875434943157560355379089891464882744993674896473783849280902907346651248020402763085422780573353572054722001736885354712440186514195083482553263759620427530405427463131255669726179862320146957696527792979360751966717726735022466965286665902735136748988116173347177219269179919264365219316071854153877026097942300491519032236743370733178082250414873278743233215952104475990217844100466200011165503253068649894849563447581671091528255124555452540051909123987392871083307283289968340761941540708650625949600296729257217854516306318141087493605472940868431919803839123900659135466133253544696291212690557637271701987477012475686449980904202825144720140294743272397588785399891616442973222829856067599713718371406165840087388900322063418009709628456404474428687723675544114913753547174183138771240986187650338332211874441635513944971531117922494735934841847586395344239169781470405925866634168307723315536011895699891593378570879088067820039334133837677048874943125208718032742473703650182367158714119613107287339791481874097892996992499299183721181673279020698658579737604703498409442943464844376957871424250157299062667399263926315707547872440069551708831182641304150144907963311913095714918706368656699615990561052385264856788404009618816186652188570735906540669850830861163377358650384098433993247079958325121148928252555718143935033008242159684516070999088965071440080127936312769995856993899390256336512463041617561382903184950541110630565814793087264421327084442826431716861835249798682878295959767944000312337744285627982495420195283657963996358220795020666157991114899498541894748449791517568363407083146296498492021707462700756504005521222516618846905380770206946653063792266732184636187474735058504553585727627746783086078746873041846265292578539000100563838564400622633369278161970733904838057288479088367753361874810442393488341382567500348234852539836996001973895505849837482085744788674287987636946209872589222978164318950692439350590250666138703319763478432470377786769888650987583676384393550090143292188825560744980448898686242417803025143908418361211086151668784876727944008762637040535299408439578285930734675772223946216463645626404613827348813262209382063344470453309380535868341400123570308039803277397863477417199643339025930260464145319200281457595046655618668680616659949766978648149438976711587153056057930751123654433504725377915441963807083359820129312010971879617233838414504695715141138220825607207344710491223438630345025636147517241545488720601763403488309960033695437592659967718068748754060680632224677500071749053817808018467972594110877244834268335084592819636156106134958142895192417532686296366276405156647241198967739486644574037169407824233741327395361683192867298732265483365972439253584520078151103100641429709892347216471596710431587274121558455773462908619522535390683747586319917468837187955404707211985710689730299105536552498063203061956494736931889504627863428712755754212242649365046392939580044660616342614792855805757117864915895139498726375449295716851104864949352605005688287819125066319370001909439133772963428141482413146702353035364915001409173112457474967793876104835834189766352879767960121851118003311040386480893906628680324471742445123794285683340121777610426762905818634392378705544827148865002226937839271206313221470348709229268308266919436354568923989929444945381167861699738945916790325489552314779796412339241350145020411687746107196564782741710690264307409745559771702151403960331432680018037769742008561971846039719345725989030389171786543517851593051115655486275275717555083082701505501520338685222533327828018071962336772018763397088618669305792150707321747406140207900683788517644087440217845477108435543499531549227882339323028427003549251894361273227397710500798400759270823613860939929289243839993105876474601374323126798046118764017964150061372441263176471711543764484557075966064395148534514918906018790840671137474878749755422113674795395003715394871397126473162154252402050317783399129147189286402322862568553186556270961815689045145010426019019597129941703685048882796012754861396151014190603234962624289922045891028757649840948162970267102758245132261683817361639534198132408523987711076124926179946358524854973681854348915885246344180911999182951349403111954567015203024410304806588616280334141028477289334425993851835720433369143797693106193171106679451257119305864283156635541206167698791662104966028877165631816059996927921775393470830351503789850659359216529235924162374631676276191981726095797092477389165491293307101803773961860332043648173941243482784555535824171528481502922738004570330006136812825636884278261882660455819572538225083972767850524618246066270363211089198807296968918599407897824629639521197162544361567726770509769837121684478283128465372489410286734455647892920856703864519155095461486763723737547405774651993917682378578482860672118651417892319808840969199038672293849166618187776467625458108598008822850543302930994829354211619557330918724667776878725762608322349762463274055131573140726729533073255182391629710943628281906784782302800728501002862061244220682045757150356608096030399904688018793576255423409525340164073646957531507975563929728671066913564764255167640105114640728281727934785972463468707818120899229423321672648061822038888987137656123544801051758387497213226008644743752331909746496074655221184986914518776876250303180638381510213528046541891491333925725570894791031213464626457960526784439030964353789292065983524428769301429629221846365207552767016110371984420451794087707974660276645982949309337891480156028199692304188453592192040315491391466606130711407178804657213295740486699887239859873199653726993558183156213789911342412036428285909908060058185007352958792330439889962609602222699448038105642183770988472007196030852140016600087979966581906923592637586246842226835745261029506504971711652972311108449939984229679810266588889655718525637287186879724948417073641485952552845148824735616559108499973583594325482209295204250742638495761389994166181175235625259317583028410126710529695080352404389557653909008850873891360129013331520339836734086666391506381365723609245367667881727022635524546845082397864761033917134801661995991764818110469476867018363059447877606504896675900233931871578827693700885849118947461628359526680400608085004110595732004998601629944589473830004825802907401123596865330891439338011355720465347566305421261962494051063718527343570111411997255892486814267767505534520634671906648634787813605952411861154356390255527737821874377391449556813946946642111581904061496434544871082697875630718018489305641826182974379000466867840055622009631318188325659547143479764233681798694469688699580569038575708390793879990499113019722810436974510926386379663158021387493358947563889859473789523691399423359236081740265600261103940418185555393839569333484879912014233807895086813626992466295934185426091245566585931812103314483116543013110055766108519224013207021309155849053428663403736749452857398189086123262549878074055532549931061351877048562389771093609269682312838657192252464746664885927579429755305180308197984910993678175681342869718662753521263560231737160116839419473960174767368927140480503143628123731254882753304288274226874036384758419950249968426556330747273019618660982066285007699116578157700618213386320132934939954539922308001612051813200996984451257612823199723258611355384694884637438083289017152498701835735086084433421880038028336358520844952744095805500554668194706961952406450635123724723469987279042920220033199211177094332026075307832549777264329799911500835304392029741128536670571461002644954937261562325801538563767223260427309198873422400262338658466252480387718786052525346875075316530459577731106983872291728017510873823667335668676868881323405446570655833149713743372420493673026415661698713197205525930255883487769705797259661865551538223878306328801232100885680412211395096127419977782040350864709316685247319734762971401454005551814291153172685820346266559566133142292331660537161788934243319879539049493734489120821215789065559899340971270916223422635617144763735355515376815512632858887911053674874307505322047075853604262359513932566355626971611276769126102731516414695183463756793450764661922953064152808498817044511669245063847026643007258937039239459710387525457200906668056592704336668737369153395408063659474034369036503459590909001806803125426202902617252240457423381770666433600978314342048619972080139147205292310039622250596710477011912858111722311567534287141696304861784849994475110966016477413928038729306442897646910343404369319566655934575255098100551695731031445536021323012212535182837939876621262021466248059114551508183370532714789779022975763466063928735151974255246135454388497317692090138318054183721039756782678261295663171413568974821916094641488008853098887039169469387181458388953883759390636612674366512418117899383593437890369364301189569047098743282895984916292874321328710303779305370849951775370769065413829409748052694754094609711229551931472840526299922508142176104192105888779901762418404195047718350754031920891931532112632366303478064884278822121879549546968513466197290193593746595309690124272574480937168747867494937845524361701853424613214078110986517675804567000826564457255474664511170236326679127068325487928627312172852439743829970993251612254136292049703054119352578579955029556659529282920331203445681573433275789788941175206869896310490712769408199454891187576764612007497351347507522632561832322924700042115952190216304144298521351759999661178822975437996621380406368953414696566352141762879378009239845948300699384084379611280912757632341658270943955048676574255483621675662355380153081647354722292558432068745788670829491344452819608354193948560692027235454826954176022112378890419869952553207342567321231185831499501932538574132582226011980264488442811583529782335677245892005712969423853118224620878850861094552007178818970406145209999286492658277258844879055425334895820611926117447594634425294978057290378824861051758679590255689830628028312210145181366216820634015566427923208625181436634630267828845489892435901506648257316155994306356076029938975485689812261155326946861103282365497533877946121597199454492371597785966230173736429088743484565956967985877601382706983073523048283303682824367387097585513577609296652814823401663439197766204819883414103558717437515494228947520686528704263850100703066425619649142251243472753862636749630626943795917313200070066197647568251634676745639987701138231065269539924371608516925599755619963289711168031300811461476092492896300993431742441369955395124426678090083355161151069662034839409073992783091003867895415779245248661922384792604276023360212326836083460153744883748950603029814398413598647078157005290755694266270041516699470416862871230113721828312518320912440737395560424717256909912580114129472565952782393905021686114578759603107523829115594179583610031036651505370322361874859087000212140224102730822956139994302436463472101810155775819988926660275993429267333512140267511777885480854649522986101273394238455258875247229864369191263190607154225474681432263946531760370156760594213327647190081132783422583220409802868751680040005428390702967956203317805129595466621429554325585080772425348830273242412425350641485117856664465178877558333887605099380989478381597598960142566896533846095363480776567878790970286634520634954387937085379997603187669792635228934511526337882509790478422243145126846017355321232411925940961303184308254676929632378885263863692723068161481158888621693577309381648441802802103454222203008493951889585715768208886886622439283172715526700274552331693201411735374066882404444538203895166617514793795318788959764898287188823519674752025984633440504458126212755214184872462359306316965411400206657093071849440188067587266612434706400377241409904806991967162902136707238819106852862948657979433884886028022138177076207205073904804187295168571264576743696985939982912844313372058801166886702205871842178286122735208666828377950582493701586737380116942965403918861517484745173990030650047577289948529796999965121324612804600650843310648438560748944372673450372632166733804410152925668991706916062184931697546157913933455952337910897087095107730276096885538635405019917657158124684783924805235062894510963979399439739397243065219339255124195235084450858745872550822605237903210653238826082955835414228629850966659750840293182763912127935453687278742034337315606114725381742133664567914790181003092031575787257613410307536418515292037077657556028126501082196851981991119285029105625788120718866153013249281115291354693058553280399293064992737027062550906875635144352728967691225540266512767206267708599708887165765068740199365233678637988792192628295633662625231206992399368986644372347730763228444250522908979142692964541025406337063872141230423300037415882212973904025873825162350411685396062207263817778956860557721275904180421561587488327051053440912137746520062409580227019603094423375147700915052477173331243944247718138046253734783765275971699782899906057915354976141478998822345387107030653586392332981670926484490875677432382105786241480623241368340353308958768425105940268216268234410737969927844372459151830411143203891626271152385281637230529536442592746648436335208635381644595466848273325082328868180918533450943454871809894855411217237189229017753237097553842725551815120852520698537241529713119603946350042746085280516035540975910888347327438212310660155575218316733720049176763243737274019067966478895717596419722055036236910337602875466875215095886985060474378138262396721415752707635606068827407218808458063936829224519011008362360777253706388006484926719560706409773477938316605059020016315311893529216766633809060873999682607945281206726086695644716781088714399599499999834711650334498209580648348905700344456010948210045700399033092329165744506708065342711960559035697422382350386082674445680685116010550182031405192864661638057901577182999764973855156344610062560941581444639706598670598935625151964677163733185235136589948918636593939894427369695933954405017708203199891629351486933915550328321723921727986818725427470978674571543166185645028867133403983331699891726797631096996398511790641156565819182521914059990082015459780281269941946085369117495579443078133703699771093066144718265946961134164549091490805220273505196701673443022625918972608284352048831084822013492801413366601338583609504237247352494109055389909213474074174791875639044327666000171583929887855040977261213855756853298840709300701682681048331750211411779958657923100980741492848192141793696466800697495759841933933316880272608776593202177303400308912802878104776211337489724218844419503315134002303282117451332791016474879438139092275558267535050808370462274421245323174768978050878336456735340395665807654119337755163292009578033113504023016675730891431033270213450149786512402665185905346878413119413632596149330709707010778989481702785825541710735128217380695120577331483084613405993302003195155519499557471290435548289980302099643070056155214529845193522695456377824621818264460426819541162857534655278393161532040437035508185396530553416939413553393396429307215342152784216978123347872720784026306306610533151138613420515610313771863254768785895356091616804844066150417041432836052831846612299409424032022646061056698777274384598266304674395926060974240224983495096199486728665767534624560532423994775060584227525648618482199828434970271521551194567093650761244489097391088779358499752551721411995207173078273555571904824870124842967596575139758653747749112763048233515312782196112711658127386022842192563545478507370348114215729920065693472989160953128489736307318083497704956860542394951312543919201438085101099106117236826946503477215772227469849138600272108097614972044632830053831598359566558726807505159322125143954567906685127973973322734365641852550144600335327622513003452430012620531495399913653121034160663494958638675119632865234440599615225467047532316286807415196519851737021720539728019256074606914734524322298270124656805918507152151071113324606121846971063840017398692316320214678390352641629144514317563812501892535202731561811921298311289121186105043456785241042422416040648184044282144554794000050613767234138123781562546161317447845156977963414552307315537168952777188144407882720913255436579570578302119235723678699001860678906691468091966920252953808267771703701828747173007598982691616128203173275014037347961509812350618627030060312944246198733303231872790100118691298124258247850167978108247446820660116321964425973443835964135499117410047759389874736484650476865465097727462146706475799894874340199058543575814451443028598931199220459882657410245632669366111958689470738687089793432683715423611387408558298183505591310430706404002781349593499109484778716002165992170340715477241565218898276082662205346336057163515568143845895069089912244963327960791051578996427144907749505033032286766510874838567440958364341768166975563253524069291412101042178383508350750049062065058218249973515417080448909132184903306775030507710157132711278111782822968210810800507758129271604825756743794947436202245238714573524931892604470611462580381559386305160439521353139304771256639330411792741448476716429715047163000970076293392477965499299121102964144354227801014729522293414964252879291604066564064980483551651891973626594592586777335033345283344569252974526481798422127032957895168561943166438538286600106018455534421939303587470473566642288627852211110799761911474339905529655635202443541589387687828518741036584005714953508395084135093094024881960559131563711375591051757016974156513351807209177365780577770161920396513288703832134367849195514064362874251406299606693627676501026397269098752069086084557546234949290092369849297349704657702878670159845150618137934814562263334384245128827960103614151966178035920814949310369778592218088205256477372507617806214870715427703922322480178231790703215384094741315753339766653462898381513151079712559730374711456107616583871242715224937095225371058843658312409937963509765469428699243339430323077233779331503617438140878627324347293353023965647468533707348702322688260474179024238316429886686268175540660278571130748871701394293906616392261184685356311362941498261140034000129328358010042654764583740251787354889569259183860669227537357731294212132489727151844978910444020208756676605664571251560616659680711983553566095278480445704110713754800550739980990842236491140062323080295745427598770097757283678926087093400342364020846934304784520116146038169243782596468977888966728633833148271404617007879993971252513992693365039259261138854795728734685802685322380524409299285138628643474661815994046352044431443373390028562043210239823002852572200457576618976730985127674681661129417459522712634097081944842773024074742746403857636802301618957119573768949803726807175446211294667431639503489506665099918199342839185604458109505301320246226499408662559051079908592233509317892619612188307911692504905787313804179333522102796475762855472195688822919517871883127158201532702286097733595861567004176711708029898744235028154866581608563500315707075430451035282076789207395974550610485154315777962150073351747905344715938619740837551071264874323472223077710129616979815738742133038060720752360624565103562103671119884129560481999898254830841991225970664820738536236471302358985536595768363279154009120012821043374403498223551053385777147603761302430002281592820310341053406142008542429499322606554946510768112649028427958173311961350679194448488595960739536935452365002561404279721810364999930778404388306161823609669423827429260709718304686990430463994378087667659052220741893767345315103641722171781049955048146333812969449051711224560941314691039268305388881396773066751302710347194781852082219767798770634703397326227881455173785821079747702922792271084557048054731155264016340276616513812908705256678128749001920808744848639259597237968923457116804289173263619012570298847751586320910931759065886452107602227922232466747933482641741631153846684786049566338267653042688648168050069334874266113615083537951487614972592738685641678489613366936479159878050222439359865975306653421050021959559876215051433669002065317897955260304408210516580884102082895651700733361088775693162735349157259644569587459668997637668258013747156603818137828574915915373743119358804335577114171408718128731702864357490234217901306402294210325381072071704904765685466094054688898067631103491461821942690014471849132872700939528117324554165275905947040798678134529974128023502628034776490292287609001088239154776177364775801911208433941027530947294661834296196814022658491647146343859963053090919232612630206502670813091292528033662250690008455333461505626417008837124916400049297624976312699959721651594892319265034634286615851969269505306241819092353601450169353363551552186109139405750385270339256617486114404038549703235031957935405250007685451363781457278415960006893048453302402317207139093721314887400190174642866592365920841164275657941151002828550954479475816864143976816076557580627796510407396501764731151418354295680404957622186699869250775155641201225906064105987076897496525522865603187517236825302071611916975028669039592081373493908224349756958077239217660243887880427966402690655747301142264866894508974679501143576219937723353630482114252833851302190724687938431337152631116687770235481153008459799150785908772633929062275940387376711050229334439797777593498902739691759962412612314708375840425368502421548884294096412646767890384045172760898280158171570062129867815507147838873081268283704274706355962986360384364979312589508481894051944875668202729050520740367506064957330013638578856963474639167260427435114765785999385077220675339413847855202181614691121009440271992570487254557922749830912761548287470289819850848950009262912321970871010023142896059510226330960191016355789320516652259245726714226442725255265129773770654635795337996986430872415841086847029072471355867919576383730640192295623317980686852405165258012742766230750073881781535732720208724207456564556912152590426250988408416913317974629929867003398003017654336810080025173850884155280028800187813450127651143719690774570519522706037012263239940702017233476007523538720288595042076735988373730667851736916511183218675917697882280529637960643021387411715768219199329705701099302605098903932251804389783859341483433519374956487857730149820597143307605648811703590345819382488494988114435989619398435704001298061209731268131913234079612938583749210539337903006639176359750562012197322259621762314949524814169136219914987797922269306642658338586902507212734812746509048610705491183371632055561888768766129415778838465342957001224793026079494302389042399595690436731785991152326483806249849829079659635452370189158466970453850108876829276023340072324117348954381573557669686974211264249171801209443271140126196306415589927909945452291067331891556088281091981545466501188075145344341237669214770396046825631190481267286044597635755940690934878450946086277637176039587486214392621493229525885493335029097340210796203669674630660848024474631125744268106203162650710843392353481135695099709444094639989316225996987430814181559473783950966414694574191932264512567503762859073923057608403759004520931279994531577096470914718465474552538819173321376274534922311358065575607182834213603184493187035934941805581606567680868086003181103266765133840631523097573115087117693559028008293007145573162423342635095258973336638438082357891544313829772482556312102699241366895012745013953620244806827067742353294051554249653330142237841786504002080827429196707423413150281918269083457444263797281503939054002598770224724041669155288472035655140299810491741223354326736544657626202104249848174557215847540774311297195092338409389611762957200968037411588121003040139567593386684335877330320240394071046101828150265863929576168347343105362770504674922483009590072589338156381819785125106040666639894713187714398183868278146894350400459635310820100072886872202007213135303816706923911641268417939414678291417885740559465460457404205145009885947334538229649415933417907415459059370812064671329649384949268593644816567374021909649479569135794410350603655815498449905964725204910966647521519566314726418174626832978461323089609337044978567606118492420749244365080154291577927661009105286142730949859995318761937397059938198598278500169394955873703990417653989378076426750953876333464918717151436988897612047136695487890925395539233651045924578180710591315900845168339737079401806830562492636905880800179146109705543433305247223221570704005737000777187878378684917403267621163186711585886751681038991948421337038550190110580602279532046329083126067680218716457898888055270784875844197074694870219407566298920236380426838728392198548808058429465085861532485590808744850160020381018647722086136723351417773689208611658552719715669127121006591953986814727920417651006197507024420048840273899455532426681197599498436426867308087183969248396065942521842854147245309781847964494727984876848023808944343286075545691260969570706586753965256086348177109748310029845484839041902613323698902127098359194864379327465655429218211193180159002527760956301335922152976502318576348357390332729688264271765957039325759197140833599043699327866074298621910101593227161845730346844260145059350029418700039435489809789940910817123977745729802017063469956193493790895612890746634010683157259616123703314582267059367035342209256130147248674564075759813818362601869745024559938535174254617763520345154710611440016102416981120604866566072757916348553843958038254223904790655715827707109219851735741284568329497873972673461678541224261637963588044926042849361523432192661808631736336237666689492940334759074473615779449547843346604468850976944031733417775665904609447114686987951978725656913908359857107918566383573258565677590293195681877275607266462849895870755077728209441303741326846632547454163363784224495372568811397181618506248212897110717307120301041667830466526901623041533436054915037598879113651005740714253640879032229150362229945576962428746051317498786794506508911787745481799421062664761153537789939801487018165135579408151830365949793810607837142833182678590376460135086754550167739428248958455583189576765416549971937973021856525957508416300525029445131671669295642791178172121764510197377056991969436441461707574081807877768614155598639050444937023708073401342268935873781827618809041805215861632300861983221019484315895812320289358190273006603957277536957302702063902753647338001766137957503243340696305419502153427062960723279184469094983344024488392860750857211257597680195876696640465853626154519243076094921552912668239363541979234556891047683575619575104233131600108988601278330351754322902495506012251342134088290898568314945989930703875970797422778364019282751412599724607352234316939819670341486319842585154212334112041669250535273019775885126250384682583721266891876263894880837637077194755493529574660520322378579858594633010707122429472323631135558437371812025499709466844845087681212011445431371340063546476262325252227386977579174494131530930827635726558995645894297818018987206209312858704039603247569380915665950355354627532755777134434096999943317421524358581197249054884561319460656605054811760135237083472168258654702983641781990698728114954879150045339600973613705743161541170497477269737140573085334129103654215985947761167977653841290971836854993674857174449267776803013092053895823954609293790175700578251550399514374116824926711103299778600271813908159189388630441536326777377624298765790212155073113693470116057740420578644547675676443038701579055833417382272611590298017939523878900832916349959606383785723212278566610390837707799189142157079824608645842498346958709347534363909691053747579711198635833559759940028874020236935974126836386269549861088338933807406250869338758416900945158950943966064604557712778485590521546549394951488373864924290573557399036983774807234509877713407398990730638748431541547314186984396478078617118306821369579220926345389654201114136447458579997999378621470880031000622252321547634830375857302085023086904226033169736328830882542875137758621170148536274047032222987768305355024169209024652561482472206020221446589920338724366627181203774014354583959799452504679436841411277833400348690367794827665252289354116279267266383674023671957685929926633170850898629912852693783353984489437989290036836767573172498608759081129149620717710763832199477562456365204688898456517942841066412736021220784546442306253818164618818231533866883142669977420856085820613700658892288578819484518226546519601236503390984333566845800728935062699353873218991380145327036463690987967997057094983369099532435630033280756576848510992360330464383367006209990514375469641393051826122562755927985137703483132044885244702992556426523332757663125339272272421736609884928543390204809583317487487575802268779642390997407621981661702226281421719386759700358295160981898294635012728176014478660309513489434516039230505488405405735184572597532440798134207378179027817493128690470301773748339561184664937330067431444620043677934634387579814334629829777078390361102943875767190829154589196765383503883648895470500104175817840895805794649740012225864103850024918015043673989528068377225850100545821390622024987606144821538782033909985046746427906739623951883845536222460493525627358364244423700124988871394940900305675703132595339990155928952677100505233900018399209760032354714599201878792117844610538586313074380829159528181225101252728931883538464529289918101144431762295252993439440463370026459916752183440676595860441561129902376658301253966977484574246078342925893025922511675825573177611794461711694439542532528376356352242676644499087176687411510147620498137734070137031478565336372486820119952887167694316105966498551721466272836345652233899740918941911048576482903796624429979724428826155382636987461060561206476767162339277148740402132367167450147370597034333552638727898110466778374633189023007208155493551785698729945801869367434047682132588911832981921885309103236819706013724937181817287414780813642718104736433659974329930803815020350137728645237220455388527912071884038287790942835382479259281196849447809604672167548025761343179612959997867439766191775235296430844714309897425125838626205495957210052687231105336760211456983697040592947864237019642940624192545737734701278140614902788386895703575931600343473396769181527005151304170101045990007584851840443583806354405993169005996953104488867942563547951307099555495417354677616063920264738107585813223714006856064344521990920593551333185525710913111376035467142680440115810336806626653584473560098321680370723613706060090283157880296127951952383263757129369415703124615717957459001259776313598308869747092318105955610329261492486960925358696986884200234846896519318172050596769334170820212668127446312577508461187953367345493912785467228417955148269710802220028733640393602603665198400320818877328466942143301532900538788766859419062632963364148095726660801819947722537934790367629579514148769941961678379199371170409619909669060633373220530368458549273101380013247907523421619131702776934307206199700574747935238995442312717261249945467925232561827499905331730578622183863923242233566127069139123409863559306726761789934499883781757674485263579912484564308722958355383809614921926288432584821752213099462739767594065130503498684604355381995596460194829920120323760885679802980968496078052286620166297386188716740630092109308752064925587294764712627200023314659159972087833881641158975028811207856285889201631432753781127007852328389233521069288835511938466384400517385529289396411472940320364853206581854918406070612279980100919032250634139837203287491876699121090425654642033085490722721146379851045858251560904389357854594362740736455537297811480716822338393415447689850328459252291659976613941641410109822091841594455114810205636617166257794398737878710501473307818519001487720800095191416515989596054209064378724386439599447336929069351292045109187611186685137572534999366883213181134674354677123398377243103103631053711962558351864667410717140822045969443092980549240670433242962789625122325810413347039822041609074835789954238163151417562941384231790948401162061318475616632107219847087640121988679566098121904765783255823586076961957579277591172736035179357573012808208920260794680863211744226283963687174777196582265917474161898951930756765933404932983859700582530433889199748521660266079735642709071161693975703854147035431578354541156382975199877383124215753316561735758398173102472568039331996050026674504499700228561137816212235984944246140648770624772058022104207380148017808696137584028564621652036340043595064454933016256795515584626075147564123582109521803593874811616675013180693359774561991817673090252937512004523186624294076033055419608286894668212198802407152036393685488755664324569709494752632792274818690856921543907348988780561343312415127387450216793805848442264735709352342858096556552430422330067623361599254656732436785665649430317358164477973958285487774068365094313757016766595418994129329479696275979595881322346746586392488490344002970486470776448768361585869852151757973266616910851539070328671344081292707083254974770875218764498139493549915090003545109059392099732263907333113207867729944480380671060695330480923956444980138705703709531886939032855848829699218928300811996289024756431589397115304306520444074714371775710276407991435572062442569994758074884985246517363667034465963683963957437150411893045291848730298539721942823564514573657061405389707728595215542292703473495335856525930565930368512783876330154021834272598681521199673655383401648412771549765086810752933291486999992685957580014719111080099972818716140807242475717329152561575056860121622107359968321889277706428092660757170414482156405207790769593252764275475729661747253180788184524198313335684214676288926191099861769851060025491571258335196504219056297086372849953552841267137732703655002567944463854002410537333147602374655919566287660570749641018042117100616306457194645615477521109488944274567302596984622874103090979044351725749496643304881046175406244113621840278567109304942342778790889061233448030475104164422162898655920109937831394134052703499942884312252780765822253387768204460476860251455686442642525676676438883281829213631439672827796118481637467275643077836438121940116844385854059251442178441511042527855664962629305726455296639651733285864217357819301350696103927789634574664618285473760993113864328491884085842004355944892766367356263787149179629208462413648897769670524901108023729423638600250310377918959247338565390591544721525809905128156374945388781952110245062002986776312016306055124211744589941414403148765296822489431821544778559384324535878549527294845771487026322718529729225738230665881336381239205506927545201101866347562043366397171957476799078510370119199319136997227981483949345850099605249908247024131414996952431140416661552095891680314025751568010236354042679380453704546072770990099679556929272601105228953460238912804307619526125796058526377570663324453555152210712006086270643043530544570052165152706699845849080557625036129409194971432101086953382718769560496396372189944889864550394558193480649695632344632441448381776456391635241413315725421919825696026883990095405525858840899583120827891828579469060832449693869533177801631497937435521760355687181720984315079225545467931568067990399403009528413062718435174526571688500641272271445517692001254866567242093295176627857521003443102553676100121901149112385173940357129596860637601827175272754957064560553519222354424953020398376811830376515469112439777001638728173782830844894064822298608994283902804891644388990392929621394000158596951226569852697513709375099679015464754828240874569436829725570715874687263251016239236445653297316728854437203360808854853923588449841257103680396312140368536431817639121186986230760576707681627725677028367056446391251164006997866920412002571869750052549112271827025025942878720365710547781842314839572470992614909227602650230754787243548556086082037368418673800907352426058943773181153238363781846194195666043195180634913047589340428232756709737295904375712653520435968658399644765666894447583113318528593235913334332370122152273540325553396203817321054332634788188425668198106835725273214505992728117143181714592832396014568733756762584512735857582240774870461093802080098149054715942251811128511220265880596291354025322038383887877635721172155409528658545971948965619577895889007950359973101963118658907526960969942602038125031112496657250588927621440419630689842981979136878586310235704771877917464969378643898014872393326402025847092962419707048675724887370106514174176781782704757513968176054177191692049539566720793011903491730347857339351318012386248008540879730874822873574875669013106384120233740845084184197825304546512326368796068368464323505319467968624080885617908488661953354306931795980810931014137936710945476065122809603917170352494061727887462763970356697062262348934974275309659309741527053268398438613677820988276005049236447854033635742416182191999337501833650419827911008048961137273293932630152955839646018529956414726698787602146701509817155357066040080668522353252659701227597423148321083895731890874002661519099676951322759753899731780043438691361380269257603194259497445155442083005815593929071025173236720688671849629264657799474689187310323190630789261067902534387703614900687536869441914092282956955229544816933270207637761290787439712972814123062726487163927348526896950691671493054892920712278541765588812604578313793679775043183619170584860718881726622712926411076351127759766449114935513605703934902654523295805792998192879570228889902076393114491424713675206820306370539652180435961958315231213077132916508162866017622220049251059652620796870071240842247056046303743455317730938276245989367856261891119584273885764414280447934852838048609038697833200422142766554520759455315326154068873660473646628036831944514620219558503291487251470125493437074751411045706172611672073094911903898787556502148682889054411605138074992657786896248839000904826150060739961201172336198701044631681562739510675240901956274511248401693069561854516022668760422127248433258389017147349550721283221791022246534621112234190804131236874604491607128508923593677772125850616829049964518229705234961795507705924319569293344528164825103891842186093305727168115551484879562918864042200792127899509963511194548308114144625320644134559269288981543916253880095230799233277070869421533310709876738096648122172480478117105941018229237612858834125775781633929660500248547044371996986691419651379617798470337165581613865690700496773651632457884770133729247827544515139198002949599579490017753010011920253423446531908200012715769069058017735995905715035951365441517661929763758986177599396837597673698962769530515854235235666131274587658268438818676764222089403607316537555788111360058682919281396620341382262006119530315982709767617960909335766997605694012477914488240091864790508167982600412609102911392210005491720726692218952235790992180719515099788380125533664838718272448472659516233901808509933780630699139754479776344803662084993220173191246913298464420933257536528358838253890979717386660584304105617522634965575160296201873058633587984905817880794085440906142650943409592661323266127350952758012668968353763304958254232637677995778152080000082228837528285785424994736386685498128875270725256215119324674419369503513190446216276694392030502768708609902458003337768109982995807712897297244708950530641696073175745801312310620700748463050557836090241761871579073016631500058630345437957983727940559718785741822374976173763143474375509171074432796720392086148120591655625117602145809337535395542380559839176587708779566781473427238935051874835090526159769095134814887897414277047062523606299322584063232403361307407660585691941089936746619247844571931811822415584224968842939971265891557521279641120531349094470727082066353207684901925443543538469115756678013284147528290473779066787140945742722368129894724631226421678718095855748978743492503123117110270797351156443893704627068882196750321705850983319903405991725255626853993385157540998020013835837966684817105105185187078223996414054857975203387018231811139323518826734705374877357133911411634055739821817935771253482902615170718185964439015829958234289074948695281724304674119589914000094806281911904454247029574750129172364580602136483358063878372512219865318092137595540316677096657840512680512627760596398191104392021020219193668036677479641412974676803453286570008441609572219947026520213627363737768363988808704229039870913407782880035576123101926604299413847641922209506433478846825936455302969377736433995142115975391881948229567336081019249556396796889879086277628738957414029744414659321342069323098268139748942887716602003700557857327703844838441380665407646216555396671493895423424273232274372089305617257448951156188379113923085353275266356065831990095321927433460033443056789374418172647018212788441818295218646296769373980488387937587971162323507834800048027316295096409396772589179766132979610072399005704290406860245107336423570928796214407220372505009435986463210159297204461108439807538850873167518453281313333769922913310644926468022541255277932558294502580997100540937575052060026815035795305197635748386156749211970957893974945988797659583942435412965742450910520433841741320336397992497422520218368477266484366304540155931557484203665648163363561768311561115056621720140167920837180557903534808939435842382577445217649280084804641125245474349809381913204995056830074904944259777987916628771983422888360177998747712113971408201430908712505833416520302455685611274240762302312987574220247076832458119143955702452465138733106762891497380481585428384196142659198652850920207268736934881249345480529387197507076057182404782849178798697667061032783472363553608467534488947867497704534388927993312350970043042607588547567881267854274893339086933365098113276245847538231943935586246383743369936646837975769445665009875827947771505823465367510953691512518104380612350831161404287160338346797702224194322047316348211944190578546436741234987398081664054371797363352993926683254942473969887181316465577632949401402669900303683293064721904934253159717277146195450479039977294841998069126102303252276107858390771967583045017725657227401603155822375681325854616955037545512108826971155876020991148022717107940732859835562095194835509051358498685270927600905297876285896355250831304451395334868842375175117540949231173370339261507302264589081501961510819436326915002495550997689523531759488839301719310525653801700241820364890939999817375681734117990201720061442623695689957690804264770600074964118445878443099891291017871508410390427358133441823502209723553391231265529792655693823726517851205990540760546245482015199464669920162106584404897741448289791318753004595282467689957794850577095975980961242737380681509983860431360501035498405577411585845362805179311440627143225289578966229685870107964036221175640198938250500858499190011396566495965052431686914818482510610541166903431818091229370062466076584238727407232423142869301649351578771457238811956660065291911927120839881276579901760843281566871009197517232193297591417746071039866012980184898671307919207283025963266413775297213351252574154812321703367207399946017148437080079509318240704860262876835422119568119183169750747075893737833846751192367451726750777621206312468350343756360232117755508243253179363895676959390891352702609161341031905724878906271180955245233450062245094819472392863131187295314633731668648740215859820149242066366338689194743837086345845218520449890693151939961013693518538107038368845468700636134265168551703115115179207797319428254179822981706947246900044038164182560846917954284735064861939313944641370293600960011471341288018230600357200564593925731295647192830952526294396270660103997830139414209417895051818322672033309661237972303477842110111359356818345234378429894140422781645588790086242174592037275190298963905456981232252335718922552189211582814694454718909646352478272799112082502797379045778951418034521705944162931991130697382800460556839146574114798074867906879313396154088825106402297843107898448916318695820386028620469831898439504772144782083148679239658699666004976750036170257803106929555768754112114154088088707527586840522211110768965328780359825338553039452285889514082138992135270519518127843555455513849859933230722187933059849663690527810689704197811624173477253008501897104450925907001798878978630547500087403049009452391605596356205955123957141539721701881410317522308495128243171955378923497630909035020562603331927310738398542458193126479265825145015269411964757266974478157240430781654374466933162582520007328070804497683998315206220373373320060051487758502527267800341451742466446363039756848859964969574204856878198214932719065277530327834823277075896521236961998813376115823133487929721299490207217206329721079666732881576132427639880768741441906159334370750926244414174652739668892325391307905503421089355664987483368148611814301794793027404578273887627117127356310749034033751126575237663068301773592927050147078604098897948041173282282381042921189694057252449800879573105021194009371874248839668825794354831279079904656200088400346903366543803800954129004658866406652215297243288504215073686666968076613594244199432417165038637656381180836063062959904269223539647145264112110779094969247530247637779867446803694184000068102944058217421403668318532293755138879626368009705034284871533747617099206814608757071200784628746786547712083753471972125581660842879454386107731463023898337133717864441123465165975932552185161389386167557558692544631985508523693485738308751614580653996837801341464924253271632867468679832354960957360075607051429120978125791047941614749842014110218545618229475206744351424556512996150242173127891597355259827805935771854804378026164040332512683899875402218941955417680609571267013094622818336973957833292793872464227557979327132829362519134313300223446147730820449755674956364399453791976355512458189403270501720890358590115654754961051893264485220722677867009842327144019814199717122447470934582765274519756626771703677841400384801774726702055100424114427913737924519519412865984947758782160614729072930958444644812965528267255958921285669589932149104176628863117914994633460243375506893576431935092249193542617250219319981944072595422192392933323989960815021867256773027869840548168210228734285765987053026222959167485727159125972740172954694094265876580044930134997995328003857512168966666220144212865239879763142115714587010333793970194290378540979507852223926720084632108305208826579837633892115249092990212950460030591941072003167687141960269797792864072203391303227696734387203990818969136114055235857608599468156352222091657542411611728054719773674094796139067030336086100221783932020624671602782258347992917020029646806970033288954001274109374909087660021288498499557700959079418103525129531469123946049947741530389560099473651212575141939247648132935429084686083290446215486713656656274553139049978736754477777022271623180423540072542115392133202625622959923562599935516571422127437449240327179239190443719184011675436596586036571583622213647525847698732287999516850789438610856955283574416230239551008509297159550594054895180165487513151289864599554887708034276581832247762322060140213228376624157304207385330932478117847704216926768299403341773386130834814656450493455605634366866390178706386681415084836419283764942868914232780773461285278867147409577852336694886813623977042529002375499298772242055360654740442514380906965736056512070437235224507745786231052927645588187504475280364781980844552848761784725541873571525775977247414817752202197048385765124650284644139915290755401495680064279749083093645500257280145343771871067939291095451865857375422038813716581347782799723623870061384231075689901037112360843301047273447229053777925495103819515649320490850643138646281695977467242953424713681901744481710894011998911998217525817646888475044765380152693334007719338035567730114114594305762236823473977389682658109763745781403861652107236328739672297965781844044668740152145759320120815709751908992282621656045601627129700308870277233735461641953113349164703537136141135692494747403126229493262479755222791741445646362705556795488390363361630492089555977167819714853743798517837868632212110725871705955374917534161966230056640079041148923689790685294556852260317698498303513264602243975814703929301063085426096819600822656876647574656211944942981147903213769310959748082537136495613463065433751482076951285905062250805514765956522092922085916483902249582307802434629614176015662427125885679493234523586027808149551773083009078264200858967147452877834401122223940148481074672580380074622214541934230888516545835063104303878021588911493115086440013640745111509565519037320651412831470203021440082389263105123384348151091478060383165830330935048291160323029895579072589854567976732359040910295074041870751499525821497991085163749695977243188758509465976257752571042020300573103482864463437530861845784590359441842741866157322575607896365010447634618013097264102553675894861990630650860162468249637220472736146731152662128682637270033656378997104165970840853352122116650491208062943049322604333196553044151445780052265974198745564332315248530136131169729424038377856212076174885016459703066307423226979910264408252007732226411862083469288385283590119295448484638289311887724869539447083900192567245510082294827934965199259692961462654049256951816295732485800577979065152497254213559794118201299897759555013271760056682871902475906093815866362344781755350196815103982856735767273054320350458384811246679595570734353032582367684629153253123942179188583471789662207878598914149905227827731473295471703687479697155010219391136024900896988203705479102661812420059217493264006550019740799217619652000122313484106446033139630330765850377728102728979255009112856817525982621446367278266170542809041082148841283039611699970769686988613053794105540037560508850803887516691681577154594873898835983274888253755012946917162610572470872171655785831989510911254059415534243539316043988361714063619261816541107663160124366765188247306511730946749761983916216959409370262799253366924827027974154787293631370405397960315123362651468739674246231417086732925106369573641461330948305523589171555368128395127568791855195873101691034149373902548746525564849551606243418743002245235213885419018284787210413872478228664034352812568356544083577414763302011044375470666807490110877193444223542286228370482445088318533613637787912545284433526288555675415543423478496225826051720818961088401636708057068816855497650631998350236411108014730953107609282966361962436546970761191924963833058507424513884527559882744743315173070726193997185018344169589993337642864913970106070857044258255781248449545560854170635232799035958495718470234624734450484891019102891044766718612962791979820007390023317327830373227817445068615776116676609213276339921170141224514603615409905481553231948541746210080350692519230322930469058524777882755575368787383816412765315876220467093471191658870207148398780773938521285623627517154070144410290143211450295338094116027878381153348300334525281007412631755615890800790035112801120635221262769326506305969208456025080027510975284349360097247319884579407721749254010150414681846996352918327628454285835929012000349550918964561357051814380397269724392092087521151393493089980064158600552335557654717622443538073587636011702230993901128788944782064925312735082540588916718751549847718400154471297615393935533685960865691792610999374459542056669934829846359267847291410072377114626877137029485990451009053549185294467794590140523370790522751850331014195048805939668141484341016576629072296646731048334667596469518988106974365590972183053452007126465589417046143365696530021404565003523917987273662758904113624665332358158619639945246242195927823180438579651796785015675955962791134756852602351571496923582537779576363054886841878518824522888552612603774735651412815716161290594572578896914538221082153776573437796534662493193610973374104068232577682811357764063274216716149187139790734092735900246486386847615125057879170791788418445069507179282805986141125666782339305508673225362591588633852963005102825901631712306889849903003891728755897925534475403669770133067466137751616018844548986626405926725753033703962693325911562781118648518245885210357805281018769110234211030498990950655540267516640169829353011018159188989967491702681162090656040549638134219222757137286589313487796517283717697212213434473185533102470680780978222050648411243440706616806804172665888810530284412915104337972885990949847292722888044088694466584421914361951902604583761069036435830106333527239501894047591964408261395715192665617100612048535087785001693353855481227787673197498756435337340261982947009720915085022824539108679633594459405618749262881161240307850806020652187471482293338576474807213070288301130842278533625702763055921437379834916828282979895129888350854061729502823664655978216080964543805995104496223821829632339282610055286645738697467949918093224159548588202421288255750911620964527525884702294348579093283039553242956751893968958679593060190876701249703378537661112523269457290299161788823733856378078701028369088402382088070813765391928147351751100729967619554351870337148912365872095411201642640994070528926588287115432957164747792445837316332879933762789037227938043803619797907562659264384045937736169577892160360875978362446789213709796405388673365144011350638394507456187658814765042507074206467976238861727674693433386715765222446978395035311133875334489292006393661646635732937672415942088794198958501394459324711580822608148905893626817396990452200003562879126841661730114482529679009020324700970629879450239865113012213442651870932732428545326402693050516574340422021142584913784144077547623625071775366462802635905342663065953287742187699646924806358570613949879688476475228170727669389406614969238587341052798433991304606431187400745542583884648413306709356865889041359619178249384776376270262782186548508508676392506413515967802185150084442226285855906513251727261636019649429047236213304437193272518325965033951170446683027828411172144929619159307815095322385435795834890028181600266535535103228396704756415643691506325093597327651783168190352624249387074182704236363939933282332361313999335348231733817000413820274611912967738366094596123397102589067887346278547127240150302006327343023176468881276073352805513525757783016386723783971861876809805498081858153944370838400750421142031804759037775844899120702260727277577132210539192828774424807864647875569759487511376410580408631259413729195335387024114257480385496162923417199231249249375663103585550463670560903222422093130114618647435463803399247945324782725713815066322573999511683387930909055971267366747504865033851592995097127820760434331356600482492224330016213232841207787092510005555868350526786448130964648428050587149145393111749350798594928603295721942813141984867836927245978912026082870141657954673870290223945015795220650848698462440212758391113218592246007313921215491706059077243286712986982989384312657858972419760570697126068071772763253119925146642570707495283934735259753905927852441563544900013053246827113570203338726609946187847940053355726733228032328812095293331705162582613107676008610569246324202482054818064047105674242814534731922219239995223488340937030031566148586625461815913872885638377559519553602560562894303946782259875108285391884878508641213944590961217161381948919712513478070661497235248019956696275715531391264806595215982089759957696537814011950048795700458370666432800566628446615583022783359222847140870775407863218199228003526703274280339656165023213801112517474453937778047795796828347327528751921499135730269526732148565580471007036881297459241667529588306603060365675198574364457777273418868533260500909416493436335182301754478746449146594277145491220691256962781547787914379129668116115327499992635963564053319344220464852561527029029474971031324051209305653916578754984946887632561784513176929326815443766584013473047918788216315070377055376267491125002199757129995745582680400143319448026082584278766080434268811164197621987406017805803697823357864304317803616225615592820531304821642312683746767286737121046840683986996660724070593245679944621527241121922280920947253572712036898780622694880990192396959634032903627966044507607001259638665303590245760210876501484244107853116772312201829879489984825861294656098405628411767328957828662306326933762933711589331302792978523913750392680161376916048616804841951439833124863446959159650816055238682788524134817874227780614993215828766380005928898113637001716986407934194851417175946400951074361056023581101767401624211126029246991593456724348183266278976450948267458111810764520235678951918122290980454045552657390211795789250551604086736327118156042222733241647710057126197533417885589863617898978993425824573603081224550345981544351469115380089465701388711149486388293993150402320320146540164834085070988572939163035174368831647413213561660914953252595903248748125983189690128888324153469024450525493232761031939348021904033353935956580019366822544901471530402715598456653892996623205192500606056945905976701284591090207476434161102537714901975815882146916045190327311092487389933562256504125692196801598385750987247386260635290320612668692280621773080117996746251540832008231990376754955427412652852089492226604436068314626842870137861203906229936044835346317317967102339136869702478372588539239867715636910779641183244788641605884704476390045920779739944721425724731131081688506794570898237530656963800709631554373826266654917795998360903951074042087489424061718457023240010352524579863764122395172660839346134168133629561685569127392124462685016948693540683132152178059144509655766477768981825614790817126053931872166462667486400487604921001277204466146775262781942036430722486784492532496786028489421384699426004842858333773566571551284191601435960929055758586605567054640825661807855325916671298628402489291854621610938945106976839090691831479940178403143374022171742167462115846676536445439306478007409036509550196470528465763552259388576305176702122998519757786523525691072652130552123402153216556064359111745372427498082474021643486190254273769737633626630430686888274245190764449686481216500687664483110017548571211855300298244903401585513130530330526477887621499872001461039928227031877807575501482626196327173818186927886693620879514366924509656022700691414628238001654956428522202601336631227209624346340625547968258273703891473918255054733091403466812546498378519407374017321142143396693549812266485823818138895740399689647653055381050468907609353081522484279895612521692860144061269611966219426340795734513989333255250318559785137353658330478302376954000951981826661135579969331472774644429091968587526700504910838664078930374703140325713789453702244901953208123595735776304876342063707789144422651351914975898052119910360071709070638314324844105158337554131965268498239499472504371310908449336380001806103422570843958895789803975430612602958784176815601838338424925034758323115210103160464160157368211571929563596662699987112208278182480778813708158043884943714938639801342302599113692223468914635603141035486753794578048477150483336844009885624152129651544269238442840986818301656655788552158419509884931865433407157678096546794826023201314177553658660955513219815589267571776413653977439842322353862919052280901391331322031263965241952449353748539807577663507029867211481532386190598933076093168860103782841795328141240458011443149702036311510382471700171681932220936084355845596457719674144656746542946270108199284536179242186742446620739677139131509185585324975520545521504300635421642736670331898078971360146704121770724523421236291407046386241577049600248851484528031047603548239767556838627426473276807846143300872104812879814611319579147892477718512724538392297337686198173568528921340095636052306070169197484987579134414640311608742608346714411719750744192574561733719314532663128822539743933531860295611588253379268706761238355747762900454470527133231372967651447716709781391277970094145548883783465948107414244886177582398468658933541619932056067026101644652568880353745253220320580534645492071218882588287543561048778591281590329598256208043493962558490144872019841020741914308268528822329085566322575790899085325448893035701350507421505958661296570700354273886180267010395717282220443461795286806943184964806106184453270711622514240689052262654815793827197048800337874518521227553582575487271385140930759366030188074156880154504259526735772751927689682727544785320842588518439613346482962158113193600933312254625934418065610509812827962326469582071382958701442480853591392147115034185194972285699646295294015997822887486027996204440782282802135534645902108181037856245875480387908700020109235478066027778148176849857859697684674463440932445147524244211100308488410582301523780948727446685111852589215279382098284658297906614456452692600216373195843063041252891888297899795101352484599826721840224668274365111358259764031007691367452398205440469609915138627316034940227407230501258224822779987778029795007317282323324611512206080815513907685653166520105324630213600762788540234356523053593860769941441656689066136871957297704634799083222629679286727303118936261148577750561148531779254690772854150290178995364712911544636727778732604928677428999892026102188721876255933655764018762808729483705987682816594263692580342100612110024031528467034377717198996681543937451472731637951653470183646044117022637101898699744904602242704037855054241229333131168622846118779758935835456202710145934007591796735888414045016577603570376268366829878142635003364634515049362183865285943062737206297250936061878588882968300384863018638412980793627212742363141426495371562334733274456588739961936935968510104856018745597700757612041844372275007698230439979462050462737800140172456336041044720993156899229253032448151276470430361487761165694780861856325635105743811224514181371904070311022448171167934687870708746596887451341957938644566189679240266117416680689136668694475360756773124476169097501325414984123017199772248240391877013667967625416045227726827005942666741900582800271609858348488591196782901626191555045114890477673292534789399959618237473058307862729229443884512038447569849887497262918970259628722039416878739233192353457914730707004076521364324414885939273831113612851533133822557701145362906475097863884572176864939661273729971897634851418312394104029057671639581666444082573860600764252513519143670869303182486337808186905992017313689621054134303933787527099697618903628098667092836572609213362915146828114257991914255131399546022420681679363547998344937475595169167206906284787986922222981047437229422761793514838610244499594653013682151203666936795329638787511142320797550598714318092347466003786415913705786396024055375506282085294380420494214213565011003675324209100791337820691840746734981618029131629919742126255355158071552944320350706921731957932398939359737107207578725046382628236174946571880260559583406082503549436813949105410927259649392540630662621167318938922719654387090630260374403262519005111422461427486691432877612472367043765969423005409477847976777521149897794446400987898117207212055650195358948263157413530038388059140007639539274523231982513831418057017632610899534270420176005394947928405839727379066566304458762426118558402555908642762993782173088078400354485224277686487020257913621324266238215523994884187897634048147774494293227889580059633903732941369451138102272705496528406537794316554061325379335953866410814151191913499285006017085672264893039334974476797806075457952993970956982536660466683480314599470684212858479576375369146520322176816526099473647986322164135779420714258454694422016835264884158028093388911778008780034716824983729165036812226598546075996532372794916079654455377608549200255565633643996961073499234276087177498945203529587601628405561514587171440239557511943763812804351893092039453194579582516487895316812763268105377238822065409168614033853063419532193783078704658215282904406407565821744176262070162356163755289083436701813885656695757146142452593638092812930782761621371870634625379810982733967052176202220290043177266947433873298666203840272280791002046263667942223961990732435032736533019397825111180930385555057577138208380690051336205629380330483359978971534535275136690105291575417384975709343436686860491943526745217786505134408894224437233230227760723196769030157814278943408044996157756074338684426724706462173303584781180921292911462610221390553979989285083606201641091961252882932178199140732320253805297820379821471154367465860458213793565383598790196655101181399949914764179601748074007598948383311213017680171536746290723999565600252506944208077835916025002862722700127471265885219147882653144532280942833891347214132952834574490342469090724984211671577961620855987272283069419467836273850138606917602821218909075804586638822971821341907712148051263994735110525736281771508813717916690232551334897649101303418647503603361046380184552683761257499758720355832889523695130385602441179392829066200092055381613482508592891317416068498643739516736991851016783800798297316775457651905438206874416899274243941963449379128199177759964652514578310366931577978296724979363575295974137370005805486668057069474509024071972888632999341752315698104242390747563430276671957320052694932600771795931193147447329583839562750395132009356773288675712939226364568502786094679314059746789716276094113137590778039259652098880470806227232234621910694627427928193918543715355643711397675576655937840159442539942057335440357989770061112367640174685745543650787428131890741650332971748375721882711441511875305099243143765942593652690092609640226357736476127999017641580775401450721702292148904891330215012468624140185686501935040578372729881711915361114835714462394801861025657537927624328350056384418869745096972533408213693256340652805798122482294435120087682105959941169685143385673925287502549502072120398398905287665962260447698784751822896858452674145765981123113319445026122052990308901053429576261479159155431683319248070701360251885518762340600232070176928841934314533750256521540721940127553352916902747606689312213189232744832541667481136573499181764310551665471955904165982695935622268579774446874317080275890676161246937008037717915742469485355707061663677916099964352295631433118506686082030760447073202509163786879865354238786293887422057825320712464809558106869979852811630955050672970336682825925040094889574565986388221463320645065523394509239432472005498979923241207232093224347223850616966255409174546435170508827850033657009682196604261845730468960993019362002013666443439985004653679181973321603892356619285908805497334771945906981909206388989109815344359551657446118081254846814123416168988655179971657916149466849880755033359343528980479193968581876903273057035994378583543430172449684571620193906498208689600078128946613433501069268828200436078907361249400465244285496598390837256572954666129803614643286996681872769018305116155491852223969320761788556479444152132488256682676267511610727782914642760920324836713442700212411074787037156567666084244072680827684077663984248233420213333040838839066458327448120612272809653865445892262918584684630654720329886108737077483022571868381416939680684649513422131647640300301971644200205340108755879774089822125812482654314503196014478609419731936174326791757711964026031085350755520253902410976048526829442329662060137484468245660187536209829943645548274971135760246203740882068217430526616778244313997439178906852133599372672224752243842789601404725245120301009028240559509429691687111215641616991486128095104628564829423466281896150150033276282205078862755802512372610155982903784522187130120451223437174189928702490445231376756226124283272175766208195187541664235223742143890873413538457790661794925150390740100625031604736547716756571532974964887869195881273799253202318805145044323869716693488189873921635760049207523977319668184509799811790143206787050528065905341298063137849038339024019193281527391071785966252236423273963671134965138864733790574228055405555227309057387015162261725285544240026156434579404078699593759167057330014755070061441295906083794021614200852750454487964444036767166454101117089587246780669627912215348826293622048616167058930782017491519516568868586622314758960330668505536061944460206661415472090712030034888305890247937286911663110532109306049969197170710310925166873083558168043283654532517574149828061426642238272640797561348575927787061431317833196985978218705036024018670774225422824770281449790055618833967743044249316592619551569322582210455635597816024246180559951160514995894888806256773717776925781241630065532077719921846041547945921093451773301807984671708167764741807495279332494881771430387208660456766751264695506242853122661249505089456537012730297997561565210123909878611002635535248137905430421110609122275298189467387777455810397324723737981307089247733298270736791027611016340027498626463380254047125173039021565936256480455007275427537917216623008354303791910252209684049585707406695551626288171240788136155443848880724758688209230891104213240837991793758581668841929490259529085899664509851770787799047932127817448834419444263740065392433248014094286966529594052333831721285915586114663729188557439304056851257831424740832465422485176362772241971117499905006195971182294912961566850229934757623897530745118494412183242486512356095721686292088526034228278136763989054983818931171227299551490068396156355508798174286470340412559691433615012732851667508678805484716035982027222263339095168627198603764917499590810323570880744845975001103244407298526000241105423758824327769329804974976815019371163871828475367227651669938063971597773196845505945482794410611768211059842523897539748573921997957569682185474946557262613746634593179960532101911715142771885021891252882853636282383556551581579513348041572147632135645153568741476499477152263184164508704969376115119530270908067253565382808100428984022317490709667561188490851648975967332668238375195981090027777965036464423161535642188828013803590521444527933376049717204538694616651841023961804556697813560216662665862288235857258549982252085170815642090396299509926175255018775747021646370270794571892673535359158136040425403510978174586168841781509883449662561783777689343963538644564386147516291685786213877370371582779576344184860291396282492560244587201709836828807680239029203501805437951008571606916808714339727533178162638085492097839201397086266058174960139201344748261553002501603040455363662240445819674710466928682401278690979125854282293414538547025270171281661758982492901317378979596706528275332391311085293093429972310756647321927057129153938990796925816289576207714256272271377215304522210194008557645124764158486133619186422109007623603108126309540226555506543741660103605314969344549585848310209023899952662200016198598926520367522621618170289908363973029616275998392949969586191281148216825314369910424378044935039338798234396175998175052136869967705893711020240830142803343712524759336451304398107972551078807122798363724646545248336655806808818539392842257344289016730983618376583709310727461167279026244648108120437799369615130650997880420895704694763168641057721236619095802948048067778020899063348345313071959617802699837631404055291326082340923476751169519133147844710408981022619178236364792308417832260335773287315970717319187229998122833941872745337592812909873296789452987209394745092472665690809222067119019499949933994496334620914887663540460620350629616022019587510685815236428592720182098152123137307710324258605762417817418632135210514010490778508253495367607301727509729246042758087222000231583338580736151810080659134910973595792059375810723647162634449415737748272156839121355297786797742697357787397712746460726841416305686166000416847445673054388678321622479694369749790870926583462849126163417728050007268605811392523710236981214871750869940045111949489692309574723426957348173678533491228082344756257464917114120351177865334962780425813548005682847456195448574519860977464629853460184754087735865826919396588273578327671770236421604443875625349235161873674495474662482093213029281550648389714670144853327238772349195569342523039391266747946738629859028811471100136959748467046400997401109408184136825746015686387487399133985313545649079457848926258678933796724419526300566182440044318430480574750314280485739190347313634257295662432142071120655658570342526053507711073406817925132374698606421315909242363352927570180705354043586506314928881070837727383501126858181178196316865297902475922776076696428386436353446411558981007309847101586744754651401246127632918249532469934464011254534729163522844469786141258482400390847325213630169366286058811083983712215715627674064692360001569130365143715391616909320064386942298882560202970504243342768055606185921985097471959188087862443890152716143767654732727372039026518463840136045338879695533530810614300035472134998267796454287044910882722100950025547359087575040462814965135402365013983163048542914933275602797899954463456030959819366510732464400306914218396843277448719174354650817787163317774323562527840512654101053873658479930524795236056628122329517051623098500784064563079259800807837423352306555353159996325065137397778198589669855783979832739736231674334681037302151559365526751999697686764411557495795166443345638835194466993151035221265401582144779585538340423516788376717919016778263025897172089062045342918890995533351822687352197269749986067320152907888855834071249484849115413731837554796632423642935379291270249123304391910717808352470915592706365342319193670262327859617678987634126555993469491268533294608951709373789602554933214597960141742192630929107813681765612003098969641475275357740646065473028020048351699723942275797473856049200643602500900038440450008573796798832048982796420868911299860257015422321990506745693563703885077784045771690092497076335115225178442956722341133200039017190583838699562357363343270260672661355689650258884548531995960588659667675536629994606128375844553930115973416208688089075422850872178176944089807047944665926295743561795031791996448377896144099660993867756342459144366153505920095225460241644969526127609572146761623401238827623005948009746481775094717381096579650923011344782636793729763102290844645560456426732571508128590035000999727548327311000872314386839283195964343979793842643550463092621279165698207319070196241039199533857704099600160196919644608777500385495708991432167645998183849434137741829406088550521523646752842146301356745235824868881527432763061625600891177659358352601352074189517646888335652812831920049899104440885002162902016189250391669703809575338493478588829980094194793965794998509962305508484895598546537929920530570813787602275744738779195222828491117699670143186708686112177998763085778462439417372751428029906277078839443676194770297704185650567211996028130375832494783333191685719404854137912640755076130272460157193808495912065581783915096809705807892571417166703803010516858808735728656895944772355831532200330598919417223089564584087036930273845591953918187466607903431206349141333190595215531425024345997446401830918885154937375446081252497400577509575750915895048985541415867205647978888663640265087266741166971682961958677215079556189530542514965185920906995015167045003610747460859388915248338442620024860383510444973936826804437669267761278154880027502992688084397258827983561710990295495340856011487406188470494440120914652018291198752097092493159346709343716284010002715977135098850516072198094925139735564832512163945287229176556079520534891297824110021561711030757752282641718809687978586055043197288544719417285191377709078188225091324835773170110320607990312119771179949068027908975796784131733921305866827669002610134378373402793618056254586059941330969236296441355333940547314816518312225671825220165440937246339390090686234481222671898265910245230620533638838910820275932617991385623296230672716356409808945799682890425652968489197191393725125342875937696146503079831050390704113132965918696782624131595807330816645361757824352390592986404814444170399780541165454811106767151483270622358853018196844713165211516531246899165342597177878473965001772595934614233220468801762289175355286575028310948062893741029162133536079914564060111037115787705942695513883541905627553443905947490875696410726863445143091000860402847225546298165220310192235202875447986698664920310597080742967164524248575216721081855616276632162226480389634730511552536961864441115205198202677036790933840864444748678543301457803384374210274009914868208693381470846052118847008004406593792652093184435988361762639873883378706452684285241820805241897101496724051787290123422112800441854559956731110388464422685992521765004627706176292162013306682861768019585571817523865580252593589864683122976931900671279536837331981573798991724466058500592454452970965803956912167384718629046411502965926671889027811472438387408713486977276786089601677495581914089833901677437106945017172341876449321114493901681502814433875857285568990047549238297410540538304871682649312520953813750672722237777967084263419097045369603526007857430155365153765313027035252314285653759828143289124412522180501619097523109916086421141844781513596344239448072752883008983899410129851853727825905595602741527619178542805774665772470327491089386775076135212299697778280792208462331009664141254151280024056426653491064108629068188505561598116576231242265374687668053628801174589075227910621483722774049697922982164922838268391091620224458776534491026733199286897585821727457091676447235889673308924790978562088088296977878433877380966727778984298470756500303512175963183314468871158392391290760642691859050736624683260109845340825955381496621053753409608400557916701683563093170760981232535261829057752177330539212009243279975593103608892551457145937027123465519735529070502957364258171153789417239673811220234779190784006927991305734409815721855819810935822401736964931351393894770862301277269365932172600530755398735788692132067375284229001554685523869907416945481461624590921811666498026030405913240856832844751418762846104756066269299500469113676120488705438598355700899070555036549908391780541502576738801741547319557846936831883348642199105451686261122715802005691394151828347557626843518916038973069068892395436362229893855447711099219727469364053250452848273880790837318629484404466602608094343270221734320955943645904938530655265817291274781807956889562815006131700292007450798928947463225046544951118109298854739162371387929153273124739584635683161376565066721800291678082510724539533180257953826825956942805254781338852089244213125402761744999872365357301762377796374064956598607194193111342781457202257441693064293139106611687081210481267003437798573035678010925304679580807515762826146945047358367534090785500265878777978447750469776451441680239040380925666769511742494312537861779635160725570678961322842370241175703893414627679247218002905738042385832413568887644757371812363168439260454708302232362716391132150563926432371931814195098096315591262356153075760565640689254421044393156157136547243595684348918508724918238642818442105464180781340008961572850600933140663182549954426216349411461776694525500003560351515120494100088820218055131640445785641699344524055409486267607035280659431183431918686548882485038238308875183506256943727026176922453559497426800069873494191236877370367159839924655544631900569045845910502426370886115512273605537096225921762018031966788150898852911315522529236072321835175718508895009609874902955474651289798178711912517157734122628827752245465290160528437527761216049970475779037924326545603237482068472311153599344074931997227075573018754429531648767226476355363387398147040288161898634427361424451429064455951411410266674656558369806576112919684854670043842865135825861594333115686489805214920751478395351552685502877888612025397146995928495381998871555662448044165648290080028897210574283969445480589910443480772485969170247571130884939526017445324326720520304746696970259441131874163606104102654248361135380908544065805786972673383068359053872566507211555869039715704967195413674014642826574481996542571136959502197978503764023457564635324632402317390896468881538379558728275556295969250518246719583217252918526841214393534659391042684836356915360648164351192344270484921190126413114794121472945359961757254989198266216543184306771728499598548862577218237478442076297269731526152529248063473169502579280501618816167036836611315971705661110990226139649140450670123505737287500200558048442787759184037072488421066141045170331035529871386036886894709067330450558863840472776233087118550208419660523600012213278795563643543490750618042576901760413333264359470047680934662979276501280908090607170341619649728403999670846550776440315024914522367763784885051529168997398259425796048226474557161868765340225881786828966649472815465041533633344265159287474496318842395654730841161601887727188293139184302795256527712155870036179280258619084319884754424431488365803406033908405998029779899797470867619117363328795331314476810817667048934335041127371099655076250240351082638391059398300855756652736396831511293592728642742708765094240706090602155269706205174640288319451688908110222075817129461421286471019045371726262460727724861987319588273622516908437516055203660042387565596445741440482124455036285307256727642601424370191674638037813201762339635392081274567073987826737845409370056654364026445312101454712733859893484987882213363674189588452042502371613523797733367290539744679168227639506280248124063246950072572487913285549548942987722030211461836294219526692541465051874221238663402839395378687128002911303366087740250648569302712901053755836225341054222820877373092241249845507269406903197507136852787659442566913695365911382784728075484764772387455067451686737707121108188235888916216339815418276998442278595701790276941532236638095927254748856275718336715038211694511299373792171747866252472884851540563982033963124426885529412979600184850708427136603567448317104661173692646814017206602968157324469859250000916754962253539952143578076984475794272958871098635943024933454486952920501375203322646705446005661267581954332788092846782303016752459279527100663633737440862646129617117027339835647531336624122365257119478013476216286947300801607976366397965484393755340273927337865793500541379022211697742289808144228115546610777686210024146307763097138061617236373957682896157062527900264009450071675177330425707981282180119796402970805715387209946824965609351145639459262192935858313254349973145162609106612015492150014407782447894025763480182843906021805983759984518270338742234898513952848038186992497683168827144257461064588274648037026765952604519304589809656210225546727073542966242701675952696818932154554433452865492082001692533831404679656797119429713100891704374128519997690485091628189469647060670785434082760722065420819204596441053848965508013540011292554562374389164673541924146915814096779760906115010519832654178016936331788649816763287939980297760602006279949296766144409287584488611113254315623663189356451715808049144682158710534748986794248159119076823570609224197994642959432146242139254137901708300853477714673621925360564085986460191957962223761453288725866347271434295824552826333111568849781601636411604247651937365029304458923947065318747574641374939572749086311624228251551788653122281267380145525312226769716130952346468918881833258958965508610744523968423298203112032599257625661900028610880668355465796312871408989664665371108335677668188939004851261481173903303329022351817849904929691738238968050917419492502464947749666633334162142676506297491080877688193769740872840621116634418908045101444240166867098387130138077061302663328395468456190642099886903329432061461895867991674348626974030014899783920211486044895235550165013432439773566872097410655708170566563433264661475542881193898547436323940504774505470584809617714332263156361298925884860707761258629115659094916469761585328089535901840033183712583819119502609943197369436001119419802728362846537906119278354980753881634391216669575865007797676531888126437661520086478284104496680832973768742570787091759998829214266294414844581760359783018039062688533809605865816011477478907210961833443336168529957340800864950413060973039030343189892876303345830087114445664803621288965163998528967686456527201039922598870037856400656302475156168964551240495743040687242731076521034785152281506963402837279147730343327530530571844657361074782299673250184853225207712268957397294049374483840285472438584568088997546358074852279279721939706607125446475197501041538832380384793342715052179251865827429512568277925065469362184388798030116582556089247728057789455314473720380633427074337050362874702764300551375279618787885019698417662405591332987862898483961735720336541002268347183056338039675817787394820836515275595578650100085527185135726928168373897637127268559200109719417546461036901163600508414321320206524479802689860482975602357881309280475000802032784112292307381672291434440602349100962530204757979750744171942550956873097426221592747087156986495121900797476696965245900861841756621865261310481641399244195946989419778834312591703282918288102565501647315208344016381934804329629171648926696556963146997220272237294364257598515898636602192777398608643697629837943604060736779162294287764394864475288885375239428024832789159260405522376672910886433869232374846125586923213689400584101950817582163137065370445470303833441218512097892175472019485371719050094008159463351020811777024314021013394210898471756038773203717816040360800398351468358353533878482262570014855895689714835537710126222957252934822405798649604496273078012941118782089298698745283181417891271476952589834544458419458886902867567370577755844598429116365730554577954063677497824078976785355351976410520869160276496880874771316266832359914129344002342412924921971475970444270077050470804239401519423064889083255915018378208029888450152164741597513475973083455205729795682827299267641775399321837003668806835898623751759960204663473608569244958924217472516949784869312464519541229341057016248934328358858127454674679911276929670529806013227931489955469364073168493081328488542419714704061404622433576030426994803705396334992844766691790975100852319305921553276137869645944573700325965998394701986427598400619161498188122294940342544223084687429218398775018797182094148411258436032314543535928229980839403769701864907062609297508765457452559951978510115303403868414602107234138371962430871045096015452069308938869785865311687670035068106352433500074422988209072309134803767212425761024300403136517729570581208053162575030365329425684830356414763624376378273640964749379711966693956356411122112178370692829161697592237545410636707855566970275775687861022527042583641878323008735246838381443036060598173459097475754771076858662236310592482642764056202878894424570837726951946260864481915664443876824836661724896582376605865201794036944663296380218633154636354369905012558776154842941844494851658504778922181452538050091184777568128037561984835915020110011794883731990934901872664894894318793865763729636269103745295257127673415572956623205680018426031645178016328927613067393477691665252832023780872108827261509044253740493473838212901934061126435201607638088432575848910965866776527028702318605408181170723420448851244980492524476868299570543566746049870742411009880773401242182178550642963211388591991186900185975626496800596794532035210708338355623241205164875381273851560603048021024516134549850334014392304473690464382013606040857704394892307761095663201848571991837027799651403510292518144934757559403908054988620034569198130916086873633545596815183271209603433579762735443312247054005507212222035975311593382513019206605804299461269323622013078284636045548615256664459796403609058070885507394621051352502085125056367973565703127593103929266604876891915145862368443593999497027030459062679304715678495916649467610897534519073838223177666344846294765047993479629105100634988250008303242265241913905308700398176574613074097688036369253104941994272077049217512902504279098716272229654889736195519955758955838816670986581487083606026973860527648927654602844808189435751867147500722379784939722344048376733247367153297108152342890193436392013749233532396483572767893477793061915828619772587487238711836385351027076206717758121787128691105226107589874823977525988007503086896963100007345983636241265613456116252431372315782430942664868589432589575441525604840264711979769436079693191417207156707595602783362231893798063162089990109014180807281367370579353050375927254633800686038502912111394488182849482847101988141119430286199611840896148630792274885467321200874797213988855395511336140313821865564358061500231157642960127758984443497335314841490949747191994499734414332797344038801143689423150134225359152615065792039208022358025453828046491153770556343611951912202531940617079183877542549367926107529348443680947607218338953211742520827118246134198847492161703711889045799268269194833479532314114626240555503741437610882811075727417598059434990217314705837861542483493309000836270169244364890478116644098832520085235150266604032845300475113994746824021660894512707026880666203416338081839099494056115722548011978535537979187037536275107068519846412962123861476700407351795497023980450324725070229981116211503844523596617263298912555288026396039739185351670917160604804862224394491178308457960792302533853876604621471520348294594854644109898758222875956218691089110470413636374189787815476634428655411173029639514379356603644592477341689226379661501501327388662539130040390881605300523837775289522918609989131818636218090297713194568515118227668164275987062380019837878025638029078224630488904691337233223645605419465710890300612463240446917957065216362199581371270537285261793804704239099911588335476396327351815074750289615839998372135248863295867832235353111145401184353843629495338055031055597440099053428176211054750407882282664745020008127442104501920647848810733600181331955431916703668875336522361982446263652485550531272226511182930827156007363569551674407594574259187785572952297161712582994652662041428778694719168550886072603864502675903222743778435055767835474513771633800569842084114373210343342112196247639191324617998225134766351033951697114836602289876530543975391623030433339452537966245780623883877350436364627134743274245135644371600148711888645770073602162724791242743094153990587464772664934435220600111100527762087496161418515622515905018683149135836754468139943589523686272429304534587745325355825364292958890785568476994283583127921060324103061563503128346151198160193758184958625800865250863730961095273084388203262359715936117841492144140447071359299857242157445361284783424627396121831330844368000082784521741016349355128281286096164167174401014147885062946024583393111847352385236515173190655948311246095811922040946743776159553182250401780833680540108102813851815435570127257732543893410746097684376310370674130896051820525779696604341219174875556827520298736379682311829525219073451793734596875239347725955479011182607655924118555403598452744760514698480735226952207086835641923631987184174639915691344933354323127603657195992071527914318237454522088898019446869858338518681764349959440424449562248597788712040842465540306039939172936770289716963655740729390600315063189093799969806527058245756324997680539843587175660504430679910167062067807991169158752407146226257608693017699067447829751599810873888704489280934805575303545629731896772748652167533030649816295288926877295040303111700399242850982867833209571447875425375921132959242312258131260201449436637348974969901649894158326754441045473806589466981973425265352574544625586162631691205503073785231155626646094559969465720411686358949461005279391263131818214830763824356093243290587111217814162208389336969164067019132875363062171445784971520188815123127818793326630481475380818363986154519252988038361319744768806779150776119852315885054080151855483078639937732501971626275112495764325251266761206935529469192762291523792850602250569276456292982178088813017316493556080301559645364207631993107479472826138486621698055331965350685948319701761950022725263376432866786897927284795225479460125013025951874322942194641596916563516255382950927746091416261353756607304456161474941483636860961912550042205009257283762784239086120062992054364712213013410441835886449426251365572579474046728806764467281794751487676586980684728685939023074639867292462898604541000429655673636526145241436239844609694093320078034436264953198443148953299325458403250059164252764842677189864484578337690600424500933365495793007377638678960415061022315341476275264492366500723640021438680983870038784534644808986575008677013664148416919522256817978444893170650996277891624994021251137553505347011930439936179682095615398487155948632391709630355725261879893122351093648324934955563428246328286180170683955877728763830328495021145261221610063974513776850823613578671978083798711974443614391674671568568680031916263407106630911683524197208693899378144784396768211098080685787984441511043279337579552255739560958776192994412590069593733921244108018717366227274035037079523434729210520303478204933692025852060064303566492532712998207201250895400256885250312736718433676058226745157107010980170576801323665262252512052935022140612157469701401678603829660158326260639118241902906500158757962372418652283538474325769056724291445393358248616544397871156617367084888866190684766409266254548161227571990919869168983521265273846461482700774674829335224900198504259905831979908263758594891643484701005119211452497946174536644537886992499246875863299766368702010382930547064928909397583348826633201938095942657166344399375171482635215381625747407951892946537555423646417824686731240163993405426817142126829585017814399018764313998718646815308548940595574200401941771683180489154406920860007606838193898911579339473755515836001315961338055000438345607825068348034981287424981697692656606593223874481375738318252800757945732280233617473359482922522643618284193258061043295171886658589826495294790511722529085508456417352938444403441219067371538520633847118921717700307919705999305853514958766678704332930790499966899810000186226959630047116836479770588819557876065620692015311247775873419176381879702562415536993619673829735219325563589658010748219924434503627752083813962851395851727164040909096043967684099255330555346852911659476862465669403359848680165816431642538436773119878401950729011149631472749624744772875472909714087866660090962532725953838539843869644860455409656497121052443880177361613580889840052027017499817319730002341488425319829870581558911104008216886231546924791979012056330511709452413376903425618893509428241222212713867245261539874165363988106602899990276915889070837572292586425786785044760560243717589454387356109416952323489377380077746422528303149485975473922904515210801248020959154355619812724964221541180244738270890129567236293118655371523054529698056453349618478666523543935177624495354215356507928378352121801848461825640227761153993655749418691279351554622898261464899938903544729344452455940922286213386650211678264009097805633057045456040383648128511593636416927975046972253062372849198452928753063286617687491090409531912166992635566865989570989433959811062698380967885354644992808050460731041961374850926350733021410500175084334462592431161522926967143471724731187379338362180775033877539647461322717829036745223721853603410107447241327916422527550075396328057696112276790717694074402732140869310165034092773895311189076856483721873696998448751094509747425038969133562415149757062250787955055715648532840899169660364013861601748926487684081478839858003948270057443343375448327446146984354237110595286892526492159427526980252691165712037413425746950600943435153484426412340110705685200961530669756471772658992283788477539635329445776238852202107470910355785153792997394873504227697468506667814615006169250867195532037675027658272521790011881180702572694235513934814858954400432406958859761613481278755210605721307538167940026022820395220783383054355069741893772375107493217840231078006123687145270641465086420860215895889539609323350027785553603520630814273477690295873390623749756301123076076549526322343382048258089905379430179188185555636483419720325043320883817252961215898605629029164881876148229616591112664173546029878612246570894438665835661906978279298401905697960092953124506581637172977345032027441257123505326922199480750288711543774882896850204093575652529331288161113739878418496020853271649752669647073826699914477471443418659754172077845949470500422338619579868948187854448734751927507912260559781268935643543607820184323786020645901362149154414953524257265892542117531872770387507294376841433726588791471367222873445662089713705414867479267372756443669213079770878931842938828712368981765333949618856524964249834606648176672222520962531388001029568304969138517299618842277397016477522979110112973564182874334058074253068031802405473391172050620973380044213062134520053397936002895095639538331755000704066722251718016808846478666094899027482434553583447835819288095117086923714942371166667519395738663948758487715858707518705587280333855307881086398872871381428462209978290047894153541510488314569889773453990000667083650233034056924345961182123126038157653655357786741805425369764878421041018273900365243157070570683944941418471231973413620838992249409735814925838884174429905736057505459410107865282876353475952702583998210880150433684156869888739106950343075353296020168691459100755805100068960426119302923901806153248253129502429288404106233097924969583053161478687961395574364277508428483630304125229305494313074427179119466452566175134146629341977359536360934672264349739857221454837759527318334592545412202590556453036328571846270139838011344375339205936004455415856870096432815264712191269413236826433431468619406147608126408152190817167802235123772235866519809011772853601707122977949925184987263848593509187645281939095000289414605860057452395349396398377912351343705847122353496003737910951920196378469315173100318499079472224382110139799020829842470889777874642559648627939474528986773102647930667111439554719452682622764087177625579309422668935635552756263362793698045388781853433310997378126473174351866334053522109636853117041283520186426750908619342985374339317105061852770215802445408280315039233629085706794972859709659832229984398392220339068985878322914581753360286521852859476282343596651224043406454869951950919537020419110647287563695526642118889018278933734353385704750325173571562171378069052276698274437210909597024768850858258748815791412094338580818146953381129138148552420122100043787741324271660907531389833900607746081638967670813140464220856419461540243801898472766814757130235504800550661490500972930758044306140551039692448290281801709792959886786686511548057044625682845229733736163479269762983568674470777529948565288922323241434862640647979644820657556002077609868392722870364735648951504685895545240898953088095471693241496215258134305356662581492731898822974217409647892830084089877705476709908611582519133707484624339379138140199684905761619973037691926613995817643887381052377057046331935221982726928482505727648399430026167767459279855861686028283957420609380895844065563587754017236254305187037362122441614468477654286794245971429982813257781016754045647377223939026529078474788513887860910956084951427388605576551285069867276233212006944844095710737251163662549753411573292059409101965470633204932178170633185785927177252756597677822349460809407276649818761993427684522329236999814077647309703604040932335420861331233880239867847614026861700837646897122155814573057044731927934338703081530301048156368903035893624016584613303330692797969506943895474886536755130728906089524759172449841365333129219060777188911889403963360870243310595681631734164735519897966579215117544077081498748588339902441611852331086927076305677591675967086634166209763924602410327328829648901739375518369904657502224406874291500273119978998304937296910553913450614524852499060196132443424850349576080879981669310846318423798884753943659405854754577606281519939062960681447793972066940219029357625451276759258695077186038456941902284940161833876197949707594835262886410479404109447111414784042664912408073643656668257181096211071840187055106010938647154475707366466102407376213146992435967131336133946725880084978369721110440169000333125169628903992765133354125243457776837878554362421372292433473223430080876345621779115742489925114642374401308467541730310913810925133180191510740845980110699672536224632528072411118322632190068054504135011299215160448716896151213644072347564806248021891940229335327827090611846067167082767231197692878934260572615864514109648608823466317212747169916661945769623907954656034113809542194033995602019361724645501818787083376087156025781253478197801580048495633018689349396297668386530935488979176132776096971713843619418761803817522254676912101586936742826882676935662237292408237083343545334335837455724526630752773096737199377068143002515584281842433758250379215317226815302672229624996679969732427980676547405905447877622625786035687723486445847029165117516565471612018365861391303859115917824991904291586558164655053730972504599146284268754716366360321379972719963489835732118451863386912996075365987161388608645030482817162189476357421866023105905090311962424498325979977071353816152100347802457998451338951066449524166685257309676570186132258426805725809624935989835396195351669511486584059678652995296845579375159061727232498362489407868752076029852526297791297200673088899843549217954734562921164994232925532115271049313471505426491673663129375894511627364589960869371430509451636389190256748604565661086058738504544528332935395095479881515586545101584519222982070765204352012507420310690472233527901110739051413315715184053100901325616068713792433487449313423593995554718975274533370099460780919227062924578349375511943101252695806856724923111287833472418563776291076456557987573834725252153056757109924589488587594175056809538530701786567965087757899926728209271493889350121249913939639567384108217358424852770869914404969383682410226043390505081784910243015417832798656078688036526908221965120112972531423555053185629785409000225260274430566881265909025905123560576290251926950554812057754157364809956878514646261797222506808098457673860630060374314199597440206624688586830312463188394069163242580412486644251680715967958018887070873595563732114247382509880496018754346781055931177400217811722048733741802439034546018352886771664275886336764776949497650786574945873916861829529313657446574815235659301579395587120539896498678892479308122652277621780093686370429257136263297131224701973948372818279719685109470144253829343932564347884858272108810947966857186983471685235088711554055957460458171769328149578457476411593748618762382380419869508376707391593677859602909820374551739281115384270318822029564930946348095162594117901783581580812842111399568983996109997771074465324186420033913330599242755831994943573311329215582360083487449713026528487565151426899407600821270549439376211433075180135473874279248981837102833884834172431852338876944739342280829398102466088946291178091204845891710306374074569582776539723160009705434541704445561056800023535244708168478263879919048053637377532648269533138615999026893684596198838408343238798724254666711366481791358859807022172802265701312825868297096841433837943435044085039782564470695911241094825439025360087885608081558979209170811999279108434880165101029508563419319500573197833183881379059584375242436222187807149657395147189998065515270667733483156204526648635218725135434753230674916359529566955410724478963488810643603835539330365211944705086309765413083422273308046294832817694983671900999693633912153867555073405321230174974601751284841390425417284884588772437116094055043150599332482761176801865984649418526990886284714308064546745532991775386460962081274036886355715819922644685825991465990262452255410593152386337916586093754188437568387843746940377584244059984871488608533996974037196228562727328470895947343671613820352941015250781909653705116315695972925395345076081877465737159515326984491750419190303816376851503755786512607414401539804008347974526618248384480874101404736676086074595297800967369741600604051243983925917805768906012943018205139893815934045121771703492591979452160396665434027167256378159620900940848005478522697019202959830246400805510161394277294997162594697094002194766603827589799970255991749743742015950638235556029793933891222787722265533869469142529120480266228762622143553191314541066908194226223286703035527207690884226598457007853886643296623479649122748670742122153836817741641500275577275999955085566392344827380691433174478066779298229301797861523126023625440956778896343810191547765254947723375256046423614546166372187103513581570705861876480839445896393553539571456780274970624219102959627119721264145543586988918204944170365221276301481608129482053979747606313651982696998518606633942062266377250413696076968915142843038052516570911123340503609172816679816077833269297706700600004800350385104932838540694062616066333110491068196556238787997018994012044298152828539403954777107455311608353265445323926153281468221016689141807594773473471256399790272099661834946329122560783143624831777422159592570899177623476097616297417528223255129483817485976675252578333508512356153981148673841859131273500767516734769212167117749187937518958372276773540611519412049341959510277245319947471941108790690076288928922831958817071507374896683016070544652017651650820583172707086900983218525911763383751882701332483124116119077439900430763649029437695354255152344786191691135844625669473196206873354343937068602455692093754798690549763079898891271146100326877803402591917733788222863825144969111775319907513002005126550683988795301240864176077975112980893429303670899501906293951700202394791036269682430659208941685539313000249880117588999565768002039309530074377295411163261097076695445980372635097374137366316890285489656044359501204356862003911568762016349218963984713400348646990450664746549275438431628547085782414677830521808055249808212328945283020183621791451740078441468549965410386168960450212620242706179825307375549366440769968844158920608317115974361353071837937575454439067711594552008846823495364182738891805564774954214348508827947991157213103108883008581067189002072462315584198393309010894206147021335915965295838160158348988255719723902483153263350447418098390651270728952241781902369501608432909699033687077032086244482553295646101177095364200363497390377932344302075527909862684983114794452098382270387678707472443039116167382039193656383909215784259884328587487190619965933112717792418630133661421091659142716663825820435686879571834294449294069923119602101910904681970746249459043316925374067576173558604909807675876366564439261626963135171998856577964258510003115371669591491166766830468499326522561604356904699430363350854638508171876149793647303602877373992366046968732824061455936048472991324266042291267422909300265679052070840492698556686908654776455766275748358551989490053733695762430945238151581428770305032697100106134755019861245651038543209386616018338533265169319269668387517700245952463351156757839971262196862722580386838666037005896379768756603624298675714215224418249857042782854799686815335274945734739010062701120482207224800507273623855687102452436912459963149150757967412687610435016151488705734341648019809294123027247207811236448701323908647257619407966362638259694079273403755053777176669633470069484879363527123349783568824628213334985976456912705755694984394855658902321659255475341856758632605608544523458609722561566894188737065110871542806045098481378628772447697558168822418712242034178972523714258179406448168177524484236645283741696582447984569353436384677722642608926384767382323289534553696927770693882959821818407646846873348622807694000158834507565352262853790461030036331599915631295460739928369528927325727081402031127156644215569793217123540511963181533303139873609581498718645907431283971087245092552282671575621887551989388057459074351419548175498354751950419853288877311440041682333777862646201921080333733345295626194235059611842686514797539190078681161665470113550088244584938850324107372341230093541832075216420480868584827150448079585453303654432984394987827701914183230190019913766834306251292321099853230524159671158749294646182409802619463859115143157540970976031487899843039074650565149469740457654053078722692991504097785105396760124927067917827380800136956136968045516893412870504546888499561598687914063530673982130232788123204764733064223610922922047429436208293592586972262244155977243556519360750691921295038903869211995928546720438519705528046519612941723468358295009656141112658944251420334968911842999794546112209210135625134191713961554282614649665003405503535492681177562723815929997739195205241437522057566131205732213525650198384780825887905976335424226350277499227322147830940036752114704710203376222907922784195225970996006654114758969633260184493122237284648620462715262351254131050672178008324448858433688437314699030635332603822173553823850711457842438269485380459533758042289319513893568463983441994438678694267025566277263767077182517609169670628640081167252613083355206955468856066158172314436861515424702072498055236706866228963602052655736976861813311404178717755363636901832710262725100143623293257347857649539253397015531556117460139572730620336974031376414026511213801025871231848369634389443486889231949278234631680329393689706015091175235372103774036438815455573056948416095808485759133676743801298838908328864880383812252626771990609250087651726029742081365976776773386092724667104516620909844864951809104287317332322060054996264037694354860502635951594806553345470095462215073454166150554161529333158656228664677587686295492771871617284548613130665588632926501979841128379863372739261935416728871810047570805404327917902505117611739707407564423468446583494093992041796924459144098878344361176881874196500383467107439988764811185283475996300493372937155160385954237497642607740574382098281294174372156853254050905275287050303885942739130945475213006718390731351149121342559918329370675699367118625620689259187637194334430948266661544402606895498144450066125855800165570890020588535445158470157279022614723728941866466754776973328890401910050310133306440028218740008391958338071864643158122109153603328077148533914569903591593944946777487113991387600372265167532082886736236457270240333601686806905857577897815222885149778476305684381976530350147745143611491477609809483145812113688571355920048587392294252153007202240193744128364935511802255322911635271053915694354961316281353252599006502391756157803681328738973522267989988516507879692619009643527988721786657845916025943066237440388539400648930269602297945955226337732732885904324458440201739528640385102891363707259487671553771376327850173729058292607183091043442332013245357640045699841829120145020694402996570254519033962629719638804428187086748841393657098399686736311872686551185715857138475709276991407494579242846103818923766411126227715835579656095541859506703847562518526573310894880545008191583004381200030927134614275112762675451447257636321343240894249772170800217731245134650562649004159748770145586464146333495147889398100968275841885196198008983461286356873834917345493760551096507051155699533588746257500393915610732640386714258241319545069772209354787703176275259314367464088613407674507476659966569645674175516406396296275526705391538954074362288235765031977632073910235346179876463900804407168268283232956254289785758184335905583769195385755729865217252721968643138615126012209727684040061602082229954162376790050982945283949207179793772565929565377032753175695799964641483287258757466009302428746890620267588723120154190266082953749807189468054127132593982307672092135967175321057977564132361786642580654090014823864613355859962123938404883317025634110650104462816494146011076561772156363130086993848676162463801614902698857267012703673659776959276649783819278687672038493451394897453686064572351577458733729996809409905693655324761365741498444919461518348502113657439834376357414872324243108502398515697881843292853532460632048909783290313525410038887534833850409297406513957954823937759662785472414654853247807231195774544215306623657578190584380173256636682949322249774266519904862172236183028715404741122332593186867792514578022428371649898882302988384933669257163711727797474568068497788094325714171228832476368725378169080682258225966831416886891711204964533971519177929951330413576688264866774575478784307427297425409672774305364974613033023510116231679196672166343372542091413480957076409034107807239195524223606708870003295895406319840743734401633175535490791729436010084132700945792584097235466407217479211777958769191450027688824479163168379233704218351625741188642686433594283834247383083473902847796406614869805442889520808258059747137604805184692429532382651059595286018461470865194306276399289361119242998263150175110316382904760791269250170502675287006301007408094374730845102002887983902418968888760393317136425290879769138597305648700112518962905684127238025606244936256742585469477500947574079881980301925533836854213619008225849552181329998008425846924058133027655277102746087667445298655847992552347875462615863390921035880248182944488202848122729372531886765597284347538832659129698933617312491905667902902816467711772754459761830613959105133341374965496411890925739041297415583422207071287441458033231247624718359384177064060714295290568416920707097775927760857688622977801625274639600744512252644596677825391000217960200171769581197007045817472441933264032808151703306638386430370803588869254342713253433270537888379844622975261205393969277980439766325662720337655453180170115878059861683841022252713963992007105580914534273466868011303300237928453287236501216460157849826113915211099639768392476692792222174733645588415131112456369761555932242937928585002569494140352393279474784518044473769654861488572760093320713179700337446769526903785917602057513797710033396802463237357500986305672798798426394341737130499585093534030729743735898858332962150580744126690165478691073512956341485616686349208114456999073424734320841428969269982834133144605641717743542823832012716244419995859976559547544178425303353265845013865686592074324876724976527065385428866718727294444609708583203915667937768652757380331209943071638116750231646339596765762370889146286111286010805601936453768997534870978623543121799694688010606826042540180458619302747806983948714086292507173448246773027018064102891008812407792107662711410238376064759470597963579209525121362011208597147106498956219660949776421405848603981894421683196216226281671874033137709106744982768993907920222931348243348812223104864859614138689028285559319426541631916245678390517491139935019063481782215780031562492640004992823003971048447109243166849309428395354920830752101109486732029734643535998831168407473184690877282905309565489122623907899052259611258465481233519508546667996673683676976387276921355445773295704374632284906481454315438380281893678467015696217922021054121880844087058561351254236189834449744336486088603039027227904617834611606495456717248397907501609541777312161383185944055501988739295546558160338779915364541415026557572284383850195457697352386675292485454144084999889296701537179227636224467446496816320906306771827841761124449793088778696893592214490726908451354988711794665787414913151232543608952134747338862146492756968993466467087922545928919745108086237799625946624848261111540783931379040190763174342010185635588619895672325362941432435821090957883191178017534987423906943425226559736800921239541193331904532356086478996050374507081369062613949323551775667438068470175247174157222910381790088727047872249880012897647622191300038749874070794635319246405916888393267020426637061906965447786011387605836744914140154850927504338342348862524904548295714262449359507977906126960562369286689512534678608839487403172729778390667395554252484064537219584030708410255721249961814924104128249911421058319043579785448429473758833428684764455140589581558283139257016743341145017927029007418207615186747473211535096755501922742411330845765533815850968614172529514430343448229127540138353152556131958264328122985413867454853785456879283913036632354384962343250755857315835060213608983975479712971454972261866171931334806737378669269218164772521093422310986792788852381243238964273131573260454179330157447306646331019759458358717935660325506917882443550066154001290550209773774479603375742720311922124761061477722678524304710556389455338450336682568834253746817759270813186996534662854572575379471998085306068530002161793808289313653959167571161715371881294830206516566457204131192489455020472972020479101415026962400183722022976582981052639720284715886715958951048501830595946507772629212718649310318383681379522121983353396142120510583664126470423982249841237542708597779684263793630586420768215281536083502743816069560974408195921027820895152315312746364490917822961000621143288594670615818257477965165469988655032274907399940606449016038762393186040847748721900027600275270726591425716924401115360388723156545644055539030971507792965612270705849827029404351415335894184578870002806175558697240085776227732396668723152056143600291036956362055836352864099844300177384455992186593222068131311729920119895656925369024120788311324341553503800669043368178587478442238795964308988467857890932741406483016486129018846713631295673000222746698849351167182426061850397926378519544298257929457431506922819822267505376118481202619894780774485436408077808402770287620094545287347355390882910959509282802495299693674990925158942188575568163595412127437416431532790026386516560301128070642785308344712610433404868943109687613143017477944235216531153053405438477068070566954517739888135897754891178219816004795485591734880964838979615538588258447334210453423803396229951772677535104779426713896164418832480887385326703491524203890126457938249095586693280785384242933088761649015056692479075450426254726014140667013403052395383851879184723478648554530962411775793468969836328929958708459010369944063582716999120183216152371438307527047922352235849962087476153201254639383814544046098354531530716972402936754243315202975507315659738693345127452662617141591150901150581875528689502386744706033195294316420293214908372604330872505433493581078990935398037484347715702649912154814508451314353577409296080693581329481972715680132539996174713896520351113781958878768773088299853103176188064868420151141042869981164017247913527706481798314814239222710850184487171947419560600257197742155559498401815653215654725749633821786105604694923010808003881105702028498399091413062761506604424155754118724538642957309298644020159470837382461206240969868186543997286760479726409586424303598624564835227193244988844230385750200976717313333456890913337608285819311834884599850666029583039596843774772762808427219936838083531269751894662501399965969246407252782303211554638180213165197509086388345870669300837944784126688213681715427087833188842082533607032233051902260797041697960081000011838126032468444975884295811623200992190466174726885175447782519754881000722006392274083107090707172177143966121470680107716372104418948497112676470710398266700874488867187502802097712480052513425582370178630024792183100581320977435047850926733719771898882873995515156537043287679008061025832296584937109641160946874495549479704435406210082512282277998662514344106677346027560178407138952878593586928416307866913165076977864838717382133253210805422525175258622081508742142283072297483187318004530402844776458193153267211645086508565942345176491535278090909350376818651903892737967598086659971686622008622167629930278282947202904241396536706469535873686722121615037987063469268226057528456455056660995763613712885584207233792615068043588510508203264186614971985090190216295232880328347485497323862351065379475923654174747537838040983356387197789492385673174120263796117417226737662774867437104792910645295622107503554131273995475017467418438180274211375156811914244289275109474635710677999043590878746282129829132283997602526739859464916064340742681898299394315624231094193990994331832755509123679117818796190101421391260659475280296912319544271610753771750633876714002762867680569853135880181320486421805852341245895097902290396998476776526991999792957910448319232193649313427988757479197519627232312063134968422277378164697817217703804260653342765048043593656587886797535744034167462430974764139894638163573874502967257995156377694784211949949488382824494884184165222874304107377527890029296524757743050432390332751708468824304112637277188274130967373866145905707302644431298797242070064952801655971706275914421772708540096710707332829424043954567434391766094561985281044816148408661224351198433250785442998073179550365985767496159653890002183085545308567528495096619194929775805186034897925383421381312959011504683760754021690371876484017790014824262305051215339104525296570340905971096623825203344046540395809922193543389538995558573194227965813653807361566690888798238843062825001866492849239321175837999526852889514209310567289885930969964525536587394235503833487394922740400009020601406583342512463598923910189589604931397025470683547412729202332895709600084042938165997061727060428127171793605585401882666945150604526683004153030411222213289192825464145578127681500189762044822804280737326245870505181999171747908917582040302353721967259764718181664564117878536295417033222570058008524237777733377920492923512069811200471586376570956203039588393249141902322162663615210970020905481189284876819727249713582588654994548620071892811771474369722206917051440786066755636749405613909623832453991706692484436856401229948444541886335187280839034374448584322515295059590655315673635392848834843766183473773780843651438201994010777890467344482248117129090774136388672128313065860366029983909622432803847893407981542893536288106037220786568143683331806361533423253718180945061116422618749991176058588401862898474846541547785066031701889817905381765661268531522601211484743882179849376698062759114030924949153578431734915590797754016345757415810696276526179605377697396011766892184694620096106530422464797331351511313723453639728546895141255057959958703263770241275293033584274608821517333699358217310680644384191480787294942124558710806901733847583759174191394647729285735757543550591949543354617544399748567423480512761324709123973999031378617961687081438811519440097271411850310169540929155054297518923795497721809400967658292218176266906818897775718088921004237160073314808612552903899453806379396565344200157547132758766041444776281085757386187772798965069587051880825487270948952816699472304779739626977690010942683497470630129154716855781432274523715364590669253022267173364822898370710363440062343241818388062616495432333615671556812692901661347745953133592240114538592454346388537611441979014249537861165515794549484642923038141426012609034686580208341003982818844287329316877684664294036808289755062757281857765653218468269067162389175813093205804364197146525283304475155000005612725837909458468702561798623119209116498767705702740403413114622372713037916729420378507709268621225701022250055178174292723054164393822296517124093419867660209259599522059511444404882442055797262971604132914963261227589382675298824920306532822885827953873186212886942800690600801130378733751590597774646249681617394305425845162776808436072422883271426008257062488459319635857684607052653133060873565259207225943799548381123336798914399949831093870812266476463268528855482922853715295721118079594229505023577081545806850884446595776752586955944660983910557993923851762431292360885123042921372986278908002028574456909587198436580349852194872283249192641785353054473208831894718981572846285782302421118311641132700166558848121954864479550777840634223980637897331224338250254337487029795274624102523009234525817270489875467295462550492656350745107530465621461949553841178725094778314836657565217444322346425958690185164251991086389188534686855629014149233131443084643440360076838999366828729240862068080291713157298340886767764959311351913487073117203990227772699494277606132038632579211560461409080280648892471133711530139869815162666184501303863257882124021785766042807852140614157065029774824689527641100261556084574456440286971869857344598526448074783975053909587964047291519108608574777692100092760998294273683902737235293189240820619010603642991718174822907328883714073650525364399367012056197113369263719777291722049131817967089379123531224920335294864589062730173263168884170195246303197798107037764265753364941218226678177687029849144196657002123627163903328389068424264326288007632794074994538281995733053190295882905978221664333201791730203037075084740493921381766050052645700509728716773302733921666282412607792598366739110122565909679697059856225055737971705714967056563393299489404241083467500327345730758186470177410502805392745663408151973067355133718565305747136228180885739493670727493588912322262790753261031744594332656339962039089367578625651949028372232185255120759789545757206076587206226699315770942766356999409456764051301688397412640209875502334846836019894835176801089784880586871503277152164637104791294663610413072985917306211592844675281918563332969267665218448138814861608615335426997720762538670907951941483924380332395293564059219610668169211032573716398430341130174649540380860344803213011661251439905627796305070714632507452566249408380296289723732805769342857131245239772485812144144429017310512086484268914643085309509828886152773283692238057697087339324309646988130363447760084199904292260756606701140651742056859958158896323711396683399558318925188120764285203442613248129458634940384172606616079790403975803962226695066465944859328238432057927845450027770460438905521853068603830253856593780445187133427213149031423285328323146839736420613157145756026933694736110262322464608081413245864863848954164414977479011066560289024608708850192435638325339216512632106078172822393353002476564426915820901317452359207804476784787013239860029936092926159559730635638755319283728617868362984548742080992699900456240420166524661658277218060557147484265733409549603234474782740092158739694627230689197120817541175212404469307040081456742246797327754817384272729618300141363020997287705837747746653668357329100627196925066178111058909864790786037597978357094205174279424478808181197552928945386666979107654311932031706230958157721287182162703563499569278235356805511556429793020747057268393152721837259193253639158933262609948205161466597429822638053546659427434557209106139319387611660837128490586555610566019136687045092400171033360446791043923058441700182131135886184299317961409794747779263518928333024348620800998967069569194756474112393272365791576766848932590527465923513445376501926910484184468467779765346699153319664223303990096640537947032440666160777421301218328702477995443152676084669752373533437863589975332823762124796024309345533974068994664209850601098843640183538895584462418822776151955379862060617533233099100637353695984222986155046380515545398912523634637781010668774095926067323931081775383191557050972161399316510309174014856957871309015630288208215829458953240112656946194401634586021055510511456916305340068520958563132574060351545863899172971131052531646723524256338675547505171007394785961555236620521196179583063568360462331088187504858999997888920727384888988362153165561678283988622449883643874533624509807616580008496863141780371730736707735905352927396783246775953279618143196580583673678743640028063625396136268556541388556728315939128482072674639618246004539045838568573837496298644918961291843618927502015277432783931189502279011205369829513673876511729344721496255005693872755494933258484485086018066503217757620516835146817906591302670235345007566212981385710804679621881995592250870505246023476035430670890283543425741420758705497722112605223013190707080783154592563011292232483097537203626918414710786437617106737565618090754886569204278476761997400085574657313177596818082600975334971232523387667618602438443740387259841691701997091943578873535069923514025603078617308497109764460983079328745096715798026307322804851666999683824543152638262538689901881504593011008680032964068239713720569437207072326756119719138971850279799201889488613304929335237822210644400677487051264715390092044902115635284595575021578929719905652382966786070993429947795537506594522348346083238295019014143148228273557469450108622176930849626318945219164952758925637110022620845652907638872935390053247398228206980635345427032839014052425711112261736512235327147871774754510854673492020130396525023461390991396080819335905831200642902307881827080792625920080250457985588874366119919995283916336802397446259558188782689562547678727099894142931278478969636821762913810220230615807840283484359339333213528322100195336645469613713628590590554862621087345584177195459153779932728866141345478218219412578073726060579033433915091250355287161050955973608261625714517680005410816045132401297867439418536454469476358168946165014611893575539983074208592311715182049473947314684726511333768275996532768012605345252541279511754488425320671236458328540612395997044169120770533923471809169430923243664798536159462325035898317568488487143731053087313618494569850598577181854365073411713760156384521805188461062990121729763898748229953792455685145964814308253271714964846774723677747466523343246264256981798944891894909946676014170480880485693558819875268844079225178691133577827027891376972738197683745438806021408007781357125345788386964333896242133508254955821406591854689911065443802764648109402665080777553657628204089315202944017690493433447748789636037037852278111182360490524758813664383444533433335628676805656593073771828058417754156477665877437560265532902985981775591526579249966645723239765311757232203312782705448341027256441206668928458373043531858912593913671520738848733097222819169497638750379094143981570264718998736846478108481020693672855159075274522618940091571201233976193013058032554018175977143233743010962583395996117401020897474682212129584910224886046995929114919843608714715887998713050292865113307956952561627460564375314370600219641608896549693012722749353403858406900771929161792231688915864865144175875689720013437639011723402618371250682820165160948929001850403427243320471766441307577074444079993202526275608666495833485226376118639926324142215210041224082609048425233316796875154212923426180280023297880170640776770015997365058411443513367968852500182207280066492621274459862297662576372722020122618541079099835403514487930929577068969725887692338660841047778686395877320643770626938507560037132375511670808244573521074186791278848081191501517660273996835514093952846570188173145431413995794266695884053258919241904607894426735590141212463643267739280410072153828636482064447363858314572433785887837145953271858818444613405554191892877987607331360297764358990395935210129187007372559274475618681652207723020349863481399297131903019459532954365264049889504602057353259943024439364937618769804698892296135497767019790614155202250593475311285716535507559180845500191848884038744500138616145336480428906672640373464011913553755304819038829712530709756512056580369911979442478252468599924315552302785566269337766506077256966077969631238257452269643935825776286510926683444571224043924795900260466317839053232484932462532946204559176088093918840349628735897342033792850148152988985991121192782771630963029904755487595728550200548119378743950252932902462290849396622168228284685188344647830262721462448751153289726329916892497504116929630312425628864849843834963559520650134826548678100297062509380131761761812703223950042821609135283004267406859217374116890967346788731003068541776002410904017365746259169278529181196847016148380995255857272695258505983421458805675493233078204255403080119218909888801171137414849971921548602802826502820502499851944805338978695693712487542094932811059433459464441146639693688897149185981042186796369615719718693373227185807575549562917627272361289344659448490561080202930656797508595426170557086661969161628543776723658630648441817009135407965430691283877597701154495777582928898513065298931229407743394872549318462492590115392320170183531789320666657800433351753140034060206642638291547905408404461514213224419642228831547145523856960421607246239006825284769842454199113993149952983041679382649426977219306712896360284905821237404158088910757613938007382306473311172438069860785915782831202496151983315299018240475122487178142012824918119295283029312409893019351818753164020397068279854202681614032654891201145395165570916683832400211173251519073880852831691567439523901761936506584348532799343239445688893155384825358119055334925961046076045926506480673611788795913244272275632152337124050111962298312376984478602732322685117970825732545055641252769846814027226237500869834292308708576328024970346791439707088198320518001821091061293399792931238039595536840071796332771051713803428421539278318258357712051343255161530437582510250390533234130706311085606925497381322632389902180149721510682709882631615321646852416373842914418924881413875908733293788726735098655512032742750355603626536558323912613118129608504622531201966524027695475044332498767323773667902986570539015360909602288758000803798647996526343831081253291185117459480925913038635700594784513698769719450652172221974131064361295580067220052544905835482636052289480285449242114089752807066420916668865365696528558630164310742893472726391213973249817355801349350477234872278913576508074645997855109216286734047112803572515272353248269622780126417961445651941439103504105705079103617829406865344346101164742813349899455366532207129910370594732937227883647363448088003740761479164054841398175666465316005290509793609826857219156812238927792969215201314952833901907128967056473588905585380368735026227950904583457429872577468657771428132020992738138792433710945429247270031351056481975049173394797663117851689535046868708743629069480658375169411261728629300549208822854420924372280430978408218229464519175582006622286865524648932608870396021310548885122818257734184134594930672901038081653566684987784931927340290752842996201154240587096611633974983635940864713369352095622836793689802374747119740639323737462095786525910267376522249819320471807650030124724547233027628188878296930987389107560406126303848740560035419707163301807159143658200464291771996454120164441213924338738717576547546274885763384435892967190705512981531005871239445782380453850320351281169245744448387663420393464324073631967791662786451311898530821482151719724466660934395705295011751146884213887471281533374066396866125609060507546571516876362885081937047523051007029127982077766322802343315341471934263539700485319771028763303583834501733497298486714586968943484449251223085755482116824707304617537741522299369555368873531749680388190699651185119064791473705454882341170523969040966862878841732497992471012560667036589033421278770991245520767254945508215064285526816922671556103585821518425565632788312998153576573527281908659145350925621087835127264107949070733719937179909128303577546554669634554748253844369288612908670761116975537139767515578525225734550913872425121099623554523361583450453091612965790979025768573322680191864244612575995695092329279637738377748992774519198194626520381450510227208766918528400440921550409674517689268519855738345047791836373878579709442985842577831305242788548907973399512363384445055454731816569895227481841734696421631580557026303960515891761875233393317257491357457515561761237633316403521420903040403295275860287992321445680715080149414577145855363805782048340597616543685112851240745235448667374252455741936037351855070014113409383169760774634273718094239930238454368311914746995544003645199227572051339213623768978125777229144468038583881303077604786392299737887847185662472591760579718995737877363078144296364406982009792668460904223958250556476477783600924027420914834714634003805211808550246587005323893994041182126588210259444560558967750909994040132685726420625370571256806116904813243854316530527541249347425893213991928813130246226769377745269069911442681022473313515356580462676045881047761964554270239767535522748478129860320069558242559936890992664938986206184434246636605848338023900762009071162865915740010250195122646177656047349823972493331898995012591933821044670052082156592847234273107376540022207712915011283683448117042542371314954630637881597549412113548754465510819303471884412098288733549622686331861657941298686281689767141775190668646690141815044782986173518931868465563925954617298946497563531335714626469372317637651434724246731604703747340607030364548236880591855910212060362516066609396247265547408517900247590922670391048171587373736110772685781578331529729522591833494610988713002687782073311882338031332396859536952303707282724464369331324904222324211621265943536928205092380057073601315496342434841386211114843115200093919679708772634655251048363727574556671278749076372300851902920385109027894276218962195098700964352135265568137355735746749365517736539717254059386892309793305837004371833424959809112855497359061309624965723226282884677030909053881238724805471562035344308010836805060956942791906609649121187684205789206844018244621858733315156256945053817178938664933378213960137753536448618184371163657171533061918312886623977667858288886301549753736872168332198679825609132066566468693078449771319652676351947112762023255418475110799268729791603223405600481546416021412500811147918371203004579283072510051625046254337263377561141762735319785227679741439383929300812271127425709568942075175862771677439495957425545225587687167990960366492412015410425098876733261696904384480401389262098605592218514290827860613121710663210222895490530457190032081841789120413985408525612550448146991262703644607832288933550376906895055947964067088908013209668267285009940733890394655902006198619096454213030530886653916380600143932956119836599271713104192142032092218032515675455175436526582782565799898198616471864924880338986379513199162620488480516474156034050719071728910430597206361059106290711350556815812118801401112534836422524770842693171557876043731278986339665158334729552157023908191907788397773064036271086950465005351980299920027711673963309120676175623453081470739368157996746879143816444464266083139149897992879006317045347999144760757230398176032178989663812864449782362215973960095743866851723957130981437369402250789284636963758443076547869633014762987913888165036991991166510252592084500761923553371213428130965014274559891311678642562596001067252139214510404798583659198415636579792490298086903805286697967255003647775895032005973942721435533653680357919185855884420931050252182230604628129044919802371350592187036224199346528799752351832934352365012831707325497174154066405005524679461986454705603984105676330367665730657895216161624396398622182453673220221833588032029063001001087971056963522771970498847911813770204295460114192186898264694461404528441162985588552778866630454155329757216079514586947058782464860011186868795728253008838098815735842265611524883066965984310328905044480239824692770965547234018026760563515606115171222708347921189949948103513816812322865205533169498597556076290043060576256038857133443879299492123200101470417966353014376897627943019618154030355469524101882814972992215903080369542013780577196368155845446268905895941636595713129169023717871501386564169934973846934617655833918948220670749865276093344989141029597538401576920023975178707252918845371628227349943043178697646947715460605476903960396390599528212628402000692734500435403756550908672731243790142944069912125357816993034726333271913031821817082199075935320840940108509204892991635086372072437337769533732196591297515209324834961426366168133288496970948881597138633165133535210044902230320939939627217311662909004369326054494198761919020792490710047891146351456883041379502668274648591686387218856008517499960697894735990052671025542747519046686736855367489998400060280727705079325289394445916404065627418842302322060987534684714679798429735840481048047031172915123210575556668398684982761155655632224983676256691250783388458567059401780360666628885416517534675834451760603008586271116179861166396188229991787960281677689243670277504223366446455181022556249183308014784256092821800731230265163414384594407912208172141256270476846139905736865697963255960207527417688482114988337140263413346350823274074381572123130126343893713576119544088777996940228149047075053170931304457543875329468609685863541779176004418543684371829377766779990051788759508973564499577428155803650686339573454796855016452949977397338521775571713469818116322896644680541445141157842248528389554086659501607494459210860220726194472896675735274014682288220977654788243237081684423902556673277497738144618489300151813707620696965014227836150595011238841820863422675367579396793076829960300634959145113927016794915148096677512150684901850672738167452066933052934894796858153036596323105762672119566510478371957693688539410514365663314524623728968472327759282369589618486813307605855797125979842709959270072543389081728570468065710673600628046496656611672586089196716514669775182990939036417852755097993055929626894193197329201938986105852320483904568194899246499748853690664491305202906893699410858640318280288474115574275683051405391023173064139069672289702964483275694196649534674252428072016864011678815149756672515743301511054886304969146922586609149656777368456893713676428093497844458011967918071281150014838510100133056212649417535352150804365102925059559798759128756956260060839911961972647596842071698018746656630537020054408763193057232354346941803290511293803812817259665895940275139784240628497553826203612043457737330914340981313009417193042022487045201715512647775145203110410833458011781875398472928548919073926328719040688215655615146211550577923357788052303546753708809006483861428735107745324628410499479843537702913669375992243553136643693687117546962690768034962719898859265028552516632927006161667810901580972911593269647206752455603370911815842395892706688162224271762778596782794397652115523886152337550090216921766748261506125988403452967647546952454527212201616549333781977225513429073858736439627790751598534803834145891018569821858724144782984043355771707068797772680520168691945666334378889788409865532977068057336649907887941368743671637080908144255246336000078755228950819139418512706396447325581450385301510325615003296774305129088194661652830679302360743873263853201996725300772871008147895151739199057418180574423286382100816008554238126395657500556101094494983682941810999813708194679489814233050480882717358290272865625214531444309769624235923199971980306250164241561928851641435030398713155206807398534423719004204357796089096529909366544866273354099889807121049638034889374025155702957753997372464579601633321289545067178652063370816197162040398391289006189352245346268705768816591850139045418709212991840463812688082898618523739992260272807490560932575520458915065004912815118315236679516321680115344864770541332928320363957643191117328600264465399811432883091505883385772680128461930044518795654781857817846034252147985714238100606681516194313554529321897962509182848818151049860259467459408545538266342317118755855217806211810976855821738949900595667220868566151871948448493170239324019283547680175029476333579284110381743108112819088434142841958031981460531049739049619652446947576520088262337061663147964225954921260869511776054282765319300703376490706215750493986838721260849912356269108858535372028694267644599776294520973820461704225643837138688794453614363416686360352423162982081310596508543866670094673631376365458468974426650175213096590457544363981990404785847298279854976554898591394049554562006453242716989144303249940149513128753764235810425970169352923635307244691442243536420227119501686394516046144742365694399132245230194916329782654440011431069198553572618193822589089445214773201501469923960445656201537824423770746374391930727918346346248348339507407809092130154674385292436142599121038953176028470032570708192490275390446386693006187156123545760874793374576841190555783610914199913381869264590962866462745410374794263010192327685686809829149232196614597315840265300650429560092210512164748453218669768387018038200530261941282339668350720716847554341025999724057136921805105558832570986974402571770868686555445605173065393197741877408311820121442521910470727282784842048546506005731584782745721682716181370710516203819138282767513216838990163923826863361809900050114452941342460529598209446962645990654244642246360467000151624004558039973539477439169825501428608845703754127989564493622396288397893524321512390599041393949689584999115959170978006469171943896886144465048317661406692545432696075948482051844736186207370381780906204605649855218398923877916158768031563730710492552264557538138545806537534880590949011180714973032554661045118098915727348267030498968583725725811210710724872797186476498044804083290046940306112619610598448162967493216727066947486931273061631581223509357998545948810134304367513796481645911045342822248840625693797884216827600548021563435544707578849081425050343276799916209972685514603178935379094482578008993525077274814556683035978968468390243647833751757858649363210529802216183027510130441201495355539836951020689405105818201571269620944360093114199500249804145933818848088231380277054385293014968235813456903715641364208302772101287566543825205100093432914174967027588502199356848170847776809636167751426690399565842902007850588695743145606644807229714748196440260113091747993897556170315413242644620166974153184187505390638790870353834849303528647182397185704541224200923751586104789970447506803002064833278646404538920238106936586868275664289834863292789453580377859930282239769525362732508265805011995625875759382381007758637721031846481115849256162912564072003057870834690774692584290141956056244657259271456888314165951360071015939259370084572978865700724693372352000801937049005028634296636052185366767724417477871795135562614739936954788729654762231912221603522236835459135775533649701286352451202594902295449602175196661161605883315421226692825487997395458526537956164405892502258145564395427378726121132080057430698938505642042107978217000078136674718484933584194350999173751211334073830315214505690804602230413826410198746157281031221735096429102093443970515660098248162479375882030884272617699754445700418455671239210556710669436991609085561842789061057020685932491507640523434472861626913655566547890349659000210568978430311835707834032972235843587665409523383204520090856323750261057676136903456964156083011980026142601022836012936768620426947855779437838940729958437824738676538233255688670074416179829167520397009947964806201279920016071604829262806814158069100844655938412875082209839444952874891713306638851040883606582116747380531295154343142436325031192116630119121489412240971059893605738804109329749037071642087986059604374441152553934853661136441461443204945006376829124136575022654344540638915818552662698455733222639376438010568416135985472032895686971577687491001483574926962815222999097895566506137967629712811313159078913530484276895648081763513817902338936502708954930543627233795399148550742894804925747022325109985624042386385491806770174294307221767272917205373157645250441068019681088199677149088786292675292982430096885029082003383249817596845004759505872747684074131605539223847186410555564299382521393291423886636936492042353549862555203834139098893005274818349521806981836078097171021497946168297062617019436067108604505216299289196007032565124131738695479855047567442916447129691842467994674930150106607861372139166341239078383136278016258036048538473818088773255506263882999595095143663935281326937155348081212759948498228974079400044804622498583526884518476152996821482116009778570821066333564917785031901755564729400805942796187127464311801071940826326970525240452600749458710200796014555262324530232117201363545751194763213124449297107241919037198483363755877512409654679921710565628688319254493687935437737657598271399699850393940696495463069379605762351254148970479685710606182976471615540817399308286043710500634965292633701566664059536404955856389099635603366364854312421352574795485419323981025948763536406518786687432747257198059306199062962638972308098029804716386697599646197596020824015409663310823088895564092790016995381275722767862173028112490635142110930525788106872481549742688887012406906559866498693088243172167217917799004201172741390907068195105084669232966091510900313600851319466884483895187484268723706031244865274357797185383344770516491132327728580769057103358227645820679532244429080387738237238112661287674100534872372728367312136150477960709645033221269399430221776175856739272657614754912032672173840012694218369679576168662583653711885420786008240794322307314741781991365256670071404794428405650941578016833552136569877426651542803405173875130351989970183664846382370670035679076904197351212268857563033684290346786028674377818401816552167333712818596969627547430418795651543204051397443854990225138189693310927341532735552369627197375718513879387520490150596352276169732861912493279417144553005910357574744911874386557678964405575086524476501569458721967907133576047323683878789838296183132237093636877866018409522732898741942359507424199216600731096139431706574019811503724994818256840863284884602618109287052946655605207473091153768045373237193914795484123157270221858258093990646927695782960965158636907603511051199783355484470705305654900461867280427125630456404441227308155483154155641965758590994430467074322955519553981925742385040386629900186923227828808090004753402693264172867643125608264046801632674424128285809946436098187840606869628046893712852285584833440208676226381401283441030673267048552616148304978666582524220499841754162073454735360678258349762645942597709971332323422224037850215512541246767536960744268399045712601232464547779452876567032775763323396137822848740524077804528959120606726145553989936273564481853334121126967573659393723162433709347115313131576247518291216800873383552066838424114280817029852262080011821107547684011842677816950169760723256466511253567504561097636325863734473916381140352966484817632337843448118056254934547147204328689774371727420135502181487734605689402099938549001174757290797129506679912973702181632100593495587484922367343331962628306972069664731555239939657257489888647756122723358381320818232869195561065758818503566273926306096979875925176163106039476097677955474620367637883212974788453980578851641115258947893419080725507752227188178550233545047122892153768153204729513528770477121976004172564323514119188075527249267793097317277727286235547799977110929356611750803041776450362918788185188941387715744359711336213722439110937717418888667717932962029071595854567981773789966175695327466643029000740971361990916788835957042525544055008188493197784329797882531617811350081488752557642056655550313477132890101178081124203394231510640336956195578941132591696673364860530689037189320504261611602741930740724802277067180701018475642420053397176435528740888844349471494622222629019288874451019533646222504772607333450458370413503542948452644311963969856621778578943110409199393310707762532224007993794543658668482816669664785828870538065582634937074252239236203912962595664485782535828992698054234256239557099014982599589301010853977621338985814891437780158039907650205450715367169074279670708406197498906141609851775238498126400164751008306126729474062981240777964951077075241300850688628249603223923835705247283397312097527168642253393396046259741163786590622273348849148340704359154349803522345937817279977722305680626237874098025156365793088973009853518538894240325949293331147083319221687450068003746187841803308137022617682876476833225606079627107309257242722993815493098939512666980034527329443542118551772843754468934243687106341086040582351533626170711678945902553593691824948303789765204271321307530406535181797763282245627692220693614667699337768720606453196384160501281344812354573459501880653591197147088862476291166143649347913668511640866014513547187364364963391671366678576753390683431866868970788128257323166158971347920552505527399938052171816848193050564880363750266798478628736727581161838692352257826081096785671044295214679763723864631163595494288491985291395850115174513546383191356653405242769714092494090689878459128458857347613379419399503458977425456430494800915670678307541939495858094150822575101162656799465350132246110165178302923308462065340458503211844105759233150479306404321686827029499417318632607613781469169090284381500887774537637565512823215354946867479935528350049735538615733020143683939124734373747775643172650615380587659258255707506630684002987053082021631977380384721145132388410028050334153611411856226409087839705487153736463069359842941766898815872975440378556584685935808003618127855667621614116997685171940304270578764577707046015000979767991957819899051496895417563662607092008230900845218001470264690639108044509932469256928447257421772213206379582863096660061927407950094627233731323833239709726045049399622376371749797907940018633640363618743695474823949624399026248311522859059346667846621719934914416504872880061760583637305447760228901633627422519766726287824592008271511271053033366482696465831468011317656664191913010566692594516641603430898974811304292908148183129829163866379134194338942139136510821344000694333654136023927609195685551908509672195353539933788458097561910001741344538212826121215893686589366075647482277850997786709747287849867672112055986616366347406885977698285860333224056510274251060570604048244433563603396924978552062808753021468847820895801602190470690262141098057020598251903324371431972687629385152490760495349214601664937217043716793535614506333654151049064403548731401768384057173965924503504409006837584391279261461296930230869750327687075357243742798714037272656659455730059294317397814687351954540967413589781190688042475060952430541700610313148850567162901974741271043164498622388722207162504958517931371361373716470164030237994363719619139333260924823831038607802848362610582230840385175908944459245877773499671695177193176351194352219216449787146348722136423813439521100090845920448778732902988861727582445445166941060116970303351679212163368734963606503012036150796099234524262579215160330247386488381836906194904802037551840356611352965515000209600693260903905345408004371400634307293617124744322898728025879498559209262095854284723635506298742000581710506945973948942821909359962553765692016179846574745366415417542532755618635632483330573300633141368645517522910926649066337748441693726474919422010545022633866753160309290259547558642268839018021979241426789343547662179660799593251749068250414836568172168468325280763938179919744166663440007534832708378994959914084948898624863850975117426712169543539667143717706298830860154682632782892227575599914648292679690741278379026955759436685818229696752803075060332798723658592909476602803171685645925917941271406404740163251645861941981989478829347307281837338221215779676335205298163147824417950074255525642690272409736505440090501934836359377310959893704978982439969004774776027478140417081121244439726741967334061245795603499193044494226444815958457369167390729287686696873420095011108712808775665976823903017348403549799871314272687607259554824418703661476104822544937540647764902269822865384209274238447542661754483615013779646484707876645414419797650921677296806429356593239854182906875531228482298468647129194337745303925705532700333047582961671898413855890866667723090677706981289194864543553500721265841642850239991695983427771794682338704417084242922787432227040247744650808978391410736289005645002076199853500815442232780999494734320193489502345392273749255862361090800540626677114279734004280652781358547296471231709081071598858157639814650792638494577825929226480374919191177256093869685001188173484853251100844315711230227065943850174681758260941639484931897254595045088741394302817926294977048240312798636540585605881631445231240092320385724571512177109120450213384116271079036011677651259704137001453765156869427478424991232707217140036626718155677847226415666918895318527239779529896611452489770746479570374817964526144057956733888532157278876603327165050746576525388750138281425913759021717637052297862710084786216107363688178614142007921443378699040550731798587654966217970213008416983679447430297695033408907014248275629388640363383788426550435619535730303540520467890027264351752184325609694872433642149047550104163683073696265405597752216592395117885735722336808966861873397070900209823013110584014050579820181752097169640990986278550716340366253971197666281347556580018155079899677430638263739554447958172801269840043306815069757580268737908066385297659008329079479126488121221744622593057290117555936197937562627408437463541848271692308974671400497638816177805684409925719263886893984608298779245480059818234834718939716354221608994223536754030052007766881502407617791160183587152521533365824087937965228474936360553227781060318513720470732868963352326446679745072410156942072596826425137195698264779158654631303737978014974217279120476683862276735291570777553425987831372014502989313869867149658217447566122320519271616974630121623624115829534872458844791465659388904533610727232907352323151398310409480466112795626216633578287334206315737664637278292966452131025964875627273277055689425348016310267734095645641666661694667581116265278288228347952949014512886921379729238963482118125479676170384192552682108521504392073098974999311713252350436406729291280148225962522904031632036143833100541779767353347564918316208939081519785492068439847009001962130768987771237171690021352182470530786818752563392428044817510265638917837551822832292168846583276671399804716525180579768333432161321696983699476115623587830040862723761049357453708265615226474560604152638016015448471235551207582167732118815243488432828193348277153666026552744334502364268836896250905307807973661602744398805560439265426062684560608692903024047797089935663482701181863451092299366828122084828837487449307593045355342461275935490747504295153878963568311977870271953335306799686866614217833458372430308983256446162171811738371483706522570546338602855514044126827079729166464709680694404817205603883150862490447250334923741002125104210195087394854419378252819619996127949413908364539561796348566411033388494329307209705586012835595317074980864985209886006341558826431389652914212859026627273955422120676841010712657917612023135577655166461286549269915599437639146803837812169095629365791151936303425173204280321731513163104478998138116658538242559768970073997249517505102429484634791199835338214584292379649549224992384142347117580079387831932545600257596696827944657923312954197615251069408738643590025357572914150154286040596176594551285500266486791953449437142849251438490830964434425372179722389956557052822368332759212182034277954196432102237444432021059311189101900988767343972689343436919458529404125090600340734923177352430935264825329264113282752857386353028731985188313603829934035032619426239206206401153230082550316527086006511181041534644113364330154110257770180033246378502555731818364922835860541526103177671705975093301254437990125226743455894400515970831046505337911976943176839797686025621179102948855339050652892025651752539416243570158687153499006586498911743518932111136627259080280203327221521590109527733301232276693978874895528389797406214941449025637675240830211257683042443533969460422714943094756957777210901632736313973013106298186817412295248555787848118830763476822465785320891220861860751276895472463720546521843370480247490764847001800133179170594402718373567285421617800380050527973122142497643780095599264085028853102776515613021889652802243993562015519213618662441522946292018925859979455561480722575934621516516059438674814418459835705438052590489109804779250571883229996382515728053963158616296466862244482182596384469345792418508084857719443000380517888230184929535153070554637675879663777464746793258767037389316620766672325030468101559929384705216207551760761736702689886041302367683398802392291278564917652873428170991764637897733516706533428893032759013897268274913315842135412521914383587888156899637754053819889523497724770464867093893887398819376233559507559009246857805533424437498931976908373214220639167242031669601151576731458164024420632865767837092458838397645532145717461779891785866010235374288937298042168043911297759046995590904767052029810827339932733116880303717696851286971277269388730064183423249710119251585431978878938941501233483129349083880929901891770872799700228221563894603733515635109421631315650905748925641811110620499507276498474323364239097766945614566776114605116985885784228604141864692205086382318789305295173546078876879659046270452974951724193790556872981183413897024031342551286625018674083987673666236731453689367406179075211955465990242884277318656289906425354448703003481877912391014348004650039355785027165149652116350079358624171010848775151621682399023669315920178409759038140269063921949396272885493722569781567194174440838965775481619696324874366313239769736193797399426629602642971977093163127150777579150266129796628504837781338090197697656556837526605247980610176121742268147304912544816885475279087215703345015919324821746593913855405204539844311857080347741624089554782978177079136641869170207749461895115529635933885471621972226742069364469215206791969843286458772868395342228098810143438706177321010072616887321330680897054257436107111804347399811029116201646582314047808957070927956819633670076755286637683555264786534477134367779015583085688839284630627738314276978797133224407252560471543170876464352757094333332924708189903295920016166754962675251510653878914940729016693764219106215165749718484127745747604524473766301823187954161516164121399593915832067516966232112542858936095569176698529788979194226764649322278564514331072911946788792268832429233578284634663837980321618876218397493004479736748062678465915015376378844344417958394324062817574555442207192523172402974868638515728914762256214379288297738438968226300142693141370306778786933066319298671392534502666212478063140853811113975422280267521257522231094074787931574665149366598293731577980583093445636935130261569912534975087535149520186221696037439628545633755226916534076687572469303139576096649006403662052198767377299761341910395547109362704918879175607154522829838989581059204629359744746188301471728013683737772436937329742674299370609071982997304811047706355943221775263628780181641127070913144858956519892186451342208511093127173690133887861391267817244997075618038462912995720536365504097862364157188958630895619961334809483195315392325462963186597096594665704648823687977115234753585947897978028722106703858475128398491684318425679130493890770829244205677730063224187535543229360807129390926847869923573247590497076781759392939197852274047694881546520221416245648007968450306032266606118012999029122727281115010179788687742592976269285494263318137359762998417657263603532109062810362927729854493209309814419523973152380456775672843642707282396359809303571466118445760553498651841047138319741634834626186458798008654348960693781208269282758753874085997044166490876326304759777587222816460465841420237697324645070816332158923565932469199291646624870758864118079618428944887113135811944201665206406587332908493041603763987919025687527596822324330397239609154386025138140619624018313317382095169128696607592444494177615569117569053310637114689700731981412930429623127589045684522087382343625394148331870711362647979365788107904670603811764212571847519524727240901596864584737035285547305941786243553980540861358654905534911870484195504009826894766026734285524106169505149619251730224686396558385418191625735396000568849376647311797760518968507949694374232423252038947604454567732488774815117597013513878998482531973694339438902490996767016778833693991376055551946834609490677288985763740474636193581048281638127623974849994935530741813682721847020365859564179526692447218167507552685286187793054233090277938738210161857867837189207094687816105083493545674565215994297887491446303786051066260342589686542652200195171415509020469744973045875266689891779498587069574130463317019967808202046156580298871557993869713943671504937293845731542319166995918988364916580416904008129324348857787408456352374000695668969207383682338794248595431573339240219318941057364586763060811339925921466351658373159458105424660347991823741074315927287221812303351969979228878312573950594854074508852743433822019279585685272715123259587397546009036567896445941085488066447941095312747759436754820801288027034359178247758593708328455832038700842882691748602643883860387907018374785535702240123135201672300052452685262048840893656869861173603085925075144778891144041269501883276186271645241980185127989986640937451861776473633962421264376950704614751303972645801146296815037846559076667349402764268675679956965465987346425966457291601618264722464767924424754808590454966189987440697966297773450023520513560215003866993175869653378591542059796096411222930386677735912712617220864050018560082846884364453447883752110214228330599963600149888555261244861288650762006380817716232345142677918378345656936376521313805045035760396026564190871593889640687512978193125316242163546326574969621915796582229293632802979162357890324008507204888861619402642606604845862797788615470712265604215765781712900017102343775019853994203157141713508263396102013992985207709640670845552359596528521047108634309192294009287320226617770260291946269774710771986394710821806497537879018770448112216659382528089681972598827482815545580413294887260194288450349542346710318705202400399210185100656241101195457514865248355984634841355639057437889638779445681141219196102458075352982831419964064927586114419821064947770267367837607608776222705450592290996418850315769561758464129844271666495008058175595828723697521830039273849514158323231740783795774246756000600585386513600724992547733390627453919842073225285606013037982751490351955190812076613777488614239873141144056092971449874845342814223264571921890918355463044541305677285878545250653484096121605618011954377522334643859024072013282042492918026403673594188351999704325645896912105543864067422585292850410729572954436017191779924281604881073231810979812237475720254065966137250800277197440221571148447131185459265763819437708822329308998024263406020873914991895539758372870975169451178420185544019292556466808792482898648548905939672089533384657502153816407720284210500235845515123778930250135710645688392859258679473761307812741445981391096721242177719555049638961661915108042605354743245063093413059356504826678157919540938957306444070846772508695281088055714032843808774905492666183681221192848815595577951642171251942898413234848970498606240850573740986111676578404938792135212260625937007404569720719682232650313208910186213219109323443221717246627874608400030220097346078677484724708205589110299453290438231075565678971537729908833345382852879849044123909532364231022242277558502182073840600992477262774817432011370407747950217244759570273694734771560219981299786695428109364717141012564434978057382813345847105600772135363845406765935198613370796579440397775599663314488910178302885550906899706486798830153345204343530147163823773442032812782414810671003441778217208835067340681672877582667029487117908335258553477811568839230550275441626441388774811054272002504100593062158964171521820528514982710492613342037471385852884310334867272408887343051895088495772913818342554197765448272030880932985287556862694769779376844775076638245926120667162104828086805061687844962957809887322359608234081225290671055378380824522490900736106701352048545042946780539622531768152768800755096535625031483462298399818039954072550307398420637707675199462662963383215540325813118770978135895710523671421651204676190419619114043142914645902271835316352205892412590749077200747513725547865906693251405992066911860087874068619400305165032967478517129497966302104558176138264924888378280480966553091629871968698894523944090039304926299872381826225884001369897796213787369316993125526787889616964619065795137087220977957438419691975448580190076497569349715694865268396796250925122075349106416797644728050615650062892795067558205312614525640897467320231056343504955244204092420101576221427902082682483003793886113289603147816217636482484274651987907531188440551854581210205819934953355425679468083526944708219478823675478436549052137499821659378871790373071713250530678857646507949325635408567304760390277349480326265134580479622073948299948128517848980893026830344470836441249658003060007105338862706212957038540033235220486167112743563067715340874503311362767237340759936516795991876707983893529617429753147684943525653777108062420052445381750400739047083465110635758005575729177413115219295105431304497022517147163065510892049560046387558009887528222639054417255227491827856239514612407811019242393780979430214517115010654867342270935832455422469579598364208418267313625157758148473358830511843384500649457864143569873215091986271250689089987022067793951792417715570874722274928021407559485890699375456680346654966740594730633577033287821179113244435032486782701164997333304766067629486300791149284820995653330115585826510758387200469835369882468551585308921272297881687497141724091628426232923319338707477135940842993791068757507060828001808518122583929747232350603934458270234128186710678711450015797620255881975902290649047162731081908847812870148150903444294660155311538227499702892228444364900285661111143969193401484569291529486578900403478130115762432107910420322508218735606004161682802225528091763760755597127488074829372893199856709942318525790736483818695311561800304791834914168749433523093822210646352764481207475087763907910546019645224350170538459755260123852256611129567042332537117351968970785180371060101242151650203072077291739331559174576438161982372866007472499527858193482907577585707168645272379226254076589962987612751301607084867091647686927026664405202199504753658044034915897492004292146068965527267358097882683435315392062121253950914967277974445820676089242347091084050875645923743346823306679780723850860911654567516318500662485706166983108687230458360926038089487309821932499630801636818586392582964465478587070673093998242062552455871619216356646229613261743251217512426939163033222591187997987361253482624072222704365982760446117283219568887336774833714214148483211528238216284217475252513355964917178477830220294962433060939917669193827709194445755004371268987291540887487707590538215646482514782407659343079177938722257814369853399710139542863560609697759836556066419401903374716398338964269321117690089288005002897758770379168438963230311583648995270662918807440200915861227407209517776392716155659225641097873586233523312258389782492347269892193656803325358340113780925828731186848763137215867004839609255294699545165573361694292613657164243318372403335346105097397091649074265207294788989607796236661231674232681540914669520809257238531608660365040749723888281101530328735320010317866534327907044456979037192486680982223270921069466667106304622742944655090995417120481288881900684305678638157318687149436164120961810881299363094112471831917740608161903454639006350248191553321072368130351725168257451044142802426685371607395823586610549415439596128019384471383735525885183552330097455736018745866025316633809888815681407753825577366115685929654279057583539262362760428681296672485337694362321144784274861780809944636532577464697624872715526964024739474949059836392323519088065313819122633471943296117329072000180202741676256184670870792957107109297225018700765165537123559699231937325320823738922206150451695128026709114438909255156681924396156514595063981539489725630275105789339398000315379492649585432340552173313676912253941994261602081789829690736766598663579520421714514598903284172069981191362868560943635643115213194963086031117448882347329365159800778728014895477183721575188075828407784343521482780289074873619200392715054556398563481909011243856988311848213436257896091621665242981324479497830471679384795803196984849337112605671831999873150924562944327938273021643799843396764333294307059663732668641666294829911051852209307544025832050537213623201090772638595479640143106556447468986278805009450887642142716637457972488861484748740685624678797647172398674247125818905195255497351959064527484121003188396399288760491277861595289854426918637828687377822913586262075126334697507792566597668004811425286550741648663627235882466952899307045732007519407092642048767053347966178153017045015275594298286906733295492745686734566006706996399813398471254275351423020567681016531916224655926728836453187443395987015876279619647376482188696375796557669157585696307321973790419859937851123689978654300727468193553720507328753800149628187823221915800834663459316849844826304958071027766933707203753321055516485001734671947348684994959464182813657972847440096135000417640614213995390265550623428073640894663835646014549874086495117181199017429708166592201714128302991848208882572972319885027888573437652291067420619649446238019049126394220155022184968553550643902078590219442354025806105057468542596973099076288916729617452949126756627789049748018220787395728053229621099104516494164162432447477922803253796177321834581491608396439638518735000987395877520244875625677030820497676151865934917039897662071614709348905449268584061039128874348213133877638934673423649902831747173896737865175387638443467030842896302890982050916291869034332060308029098282356465017026861639083406288049127047649675254059271468075801077363886954145789783299592095030173183794117165608939784564198266358173847208120692154840273720236859644624828646445441881132047374326860116222383070698709968844533832669160769453509726995247919030649793949982341664386115586445991161932573931946787262696680988928420269685715142817741093123419087908931553097855165650477239114357745013507671746145019768498856990100750612815272334432600682009753993169915617013776174981814144554283562570640169134823042275080193642986363766175086894394210615967168448806620972280105228207856526327812691383280140644701508348238452661728648979181361055783604738715800910105575216621649395151204067687701705058129644484048240854087242033166497273750428724287659456512467300032204255394297723292049437719990572787424002898361180656994238835290135662335112221539742099412570146914466204373223467746564894517297743110183114833619202784662871629130274497906369670586159690796362643551728721698373037551322174439334413507817131248294035758866701282221724251775566948135061002440031008220552570672411889746367519616881142354048805066522729110876961297599556067069900978603460877708507777903635363945659622095830928366203903738748539599537824098263151449509771013521888732391561508600228883047648898714390222002717391288885405540774236796553552388541392983429484151638930734241193320124064776513575578028711472835173039851590202686975227599513352663407583059867994452181837284946574285939101354163637257296147788355994526463104407016094778163757424449043081901714627850467621468739118460835123587605389031892740840456005753208525013644286798688706428594993348983815879702050720262016025853426657119759382983502218177054077615162680545757596294263970939701603691510066503539808976546954474918087580414708054183260924505567823425679288883462725487522857317790325808239453761911754272992170300502968060732138711053672962434119233799422460528635750087918150757736380045766607924665322714745940383608944601447761351872089649764329315312260445778899306745321160003759316561736458250716814296680574520336124298608905670132145328181628674916412804399728488567062381336850547921388433390218010528515899029706180149838925756090459947485583968276550630793845530338268161425315351105713359751207480648375122948670183444466448510397379858646585722847623729804726754638837666704609117804062980640858313783187313771358563589606983545473944973283794295640690056922012577351995253606062437616249394011913424877166465500943958584783275795345030772051872506327152748703659504953116139371150307453359244396654753533940810908857796175388320006431803939680325712108950337461482303508996078352903007796160181257318621362239110978046285889041417065830874777850235265553126703872332544291273833817907247303393664023974210630182806513805679764830127229540185639158393046911258247281684855710808056175176867464206179952865974783183816944812133240222689493072662441243827663224159595578155644815905970912028953608657342473272712613415801245696674868826005940876978271311811870244796197627538015287794864389571847349533445847792190843061175840493667161495138421972987811117440056447599764659337518902552195335193727847706149892077275491766414958827363809270727526477666821285825320631919262885542945359183767947528965652182175127023959874580137422717802634531742216652922422780906151229954674688800257998400054380563643138764213622175211363433824442734032361407590649986362664085335630432128938837823569173309521370815314548461288751553660846193656799649484085050377013447717314624164543823748411097107782257433354911506606458231123306640402028491442498794984381029445032971550119298881190789511066902002317764627784788203583093688647593878779267728318756570450947696567799729028768636244219829992650710974429379894777707329818991625595188714442769414191360320176267053798853740897712116259933859150586184064409853637004481330523003654347812348102031163382417508128171555813548272181515289507779202276020913143960796922191714863543969361184795803165856349188692121792224148254200592932970780094028264298501732571003027405573940423537875157503152875625889550366821113277071451795755175258247067789627558406745658903669246221069864819350022521740552578680919358028190118347456162147041523755096920395330576610679401329817156077483853868596461013864540937287287064895159576386775829598432310171856036479806703985931461869168965611766495181211085100089567931340290445045449926274484847127405545178900173505992158539003144248086933080778195026550106377298091615087304163251400771193508538641176456685960632632504272258779576710789723106206834675610557861195680089466586527619838435239721706533305232968403411211480353565524629007130410556158717396985186614703278450323109916129221874377818725078390342433762068128445451205320284203783539103464966870501529417811098548442416199844565347813392279135373805585254941690423830571156203356408978375594335467185122144433693421150747029083680604986524509352419840867036487756282579290286444833491990110576559751498662789153406233616933488897772598620049615616701304719412387607622144804196487300009331353875928010244707354886032036055784260104197285732062935982159748706383685188110331087558292454429282782607014275864940602245283159261101372279861388731456377593077563975537115217199982902113165440546715647148988707741787510747054856390748984872248678596782059352084936514692009000626570603017736367039098479772021572931710432132565205573233074814945608297604099024707074356181708481946734192790245542000478859543004633721690625136313680037990329750205444009528159283209829398746944740307804163588135581286950086591313775470378116023518419316702375702294302388215925150447145903142313693044838881383794670576953955126188582849600998690279880476669327368228763655103568139700425373080795840963184036495889209734282610519088565821130134436535876899830847711398845015697630317873214672619210717125498558091361339737361203570568465927327686723902379895780265662163536154085772139970396506642818325241606875595807575761288746733864647107738787490560192176145492799046487112880869750596304699472816235193724087773990378482910806993788786764100109042475471796786130954285787310525318998181395951376439703548075838369703884030949495979660895891049849261912652412138883016360398361933050208759865808755697195417413994356429140720377206362877920231558967363402692142768568405605543883041490048289028321962822807838023410569069641210768028237726461777014979920397879874048411067073491820793224503396125334343040626137656674243062247053146031895505939915004078823753453093965600896846311251661116173886815283828698123421755000960769064874331306860135680628078168386063365548588271906688714680145989023508585892269959993811577672044150721585150827610520129038240750900921388167103174227404386292044600403657320347107080656033998962212480217088133548586088919427677930247342978468327649563192276248857183073548121690900135074236835091302653272119093217049763070176650294053207315613861107778961546629565836035701990866791986810547170988188335442146110173326301452687984082144395070906367478154470858836667677150405706385959198364156404324793340076975706743333431714508517127056893937374468200867780425795970603742024196029472735567290324934950606680062825842697396988319392428237816572657284243135678295184851251793423671859718956748111439548768887962531477651021010971659990818961525898433635029976247140351004675775455227449679954864661150166872113980309525648372615473131836068139290327201874996169308965542103074525534918579324824995974496719471336124071978457480124697953594411382909447664888553070237806756032188568850090931224373199232834891402509992818086425243684835280055749012902406018134071926679363945678457743564316132388565045119064741066310503124440924582335553435150685301251647833381144615098975755795295363563674604107543096867663925512602449981421234943326192425649907615413260237472348988184987392759508795677039553788078457541718511726061310970071527039224878000915982599222556554587160196424865547929246853199292146892148940836292623116864778270587607718617921928377951360793459000081124938126579315081953529432596046881281463848656885434299238772836870073968667095640709570198178446895846856661883206158638037477454003497735875747493351702883635278148812285188580277892331581545692410227047041581698839883381493917138220920225028246059719460239149116897417946568872862766745949516257170489289823271087206943686076293160017911497997479448574763675226280053412742467254634853792261709880976333201083851360455906597989590100914950204640531028768532884182377428291859908920307779317682866582571110528502079071615908454368460460866425749444825112592715285837362000295151435710954380182391868565908385247046127596079970683647202305097415630824373250771089701676738488586171931770066568387132828755878998791706302309896520312850421716585953957698466864759546462586362946852485510494389116723930163256654660619630923234081594296245289707162977023598022802131106578065248732995215594204790500652289386518876070063169289969788449414496543024229304030585196884968105866781354286302509103593093600117001595841383025195518832866628233994267674773004946638190994829542216750369209874662259947916232289377522783261761782268850921732737426565299266706323367209122835782532553562187081016824901662067361416650867604517326360284838876635605592174763208757901964511724425750215250676667553568056409264440080817678463969720723324642468966759885926831085316381846364809645414223899402152282223814064721433917991642187901292377913437155172679319268106896608560246077915825710195370965043925155157326468514959129148334476305645403722689104572217694373769947623472131180095582451764080517067662447361181057091900413327343226442797484373962189264511572468303612922085598788288349550263413074381473538616424624244723451151083651146349819691020558673174397116246452002708198079078161642992848456569843748218433371870487539462710330537127211051947255870200658587053489306086399896255688156317383074339143615982298355069718111077446748271552749676263542450381989779216272370739505887242980407677956121577277307112844375301983245661642324228659684289369513177595530776319203682598098889473235663292229837615891846852321790714270691370027111034436948849244148026099681277501830706934641981182959423428758086064907173254221278777065484610491468264178663624951353046751420541189455651748114138399360950799133896786797775539010154180345990275415970866448185951786889553820437164137349390859164283856291673800534091914903043074643526915745752465919769500202981615038222145226070994911432676610268320899178411870277934702273006459553512716499481144264899165388131439173501537057353804084510228240592627862934331764435479782335913257211168712279367946768233492565928188500759895360486723675269069514585505102116351877513849263373631860389468233955670741329093487997553459813599822684690043261619603789084889855038575437794285074524484150662639935940392217479297594806104649515112097279819989775915731065140144175819534520335144639792810549264233753480907106919815050293350717892317942901479355030421913624821093811630793971069538535220001054717562796460452532430938900375092704498431929742932606092034869917826619347243636555305038530703380593248649153067915082072148095122048424695089971021445002845299803835602672105162803034125615785283595911046742382761230572498596606604011869609782617068856501268236078754635495630036836065437798716198047718775277659767124003833583997724307308146772406686753070278323384548204492380950229930436292112748268722056641032833366909471732356072380374334183444157734502545561799596303093437376527065420219296374079207980272670814695889664898556278026876757567835797123896467728107200549462640917963304443330414361799894842643548300936765527446485463850226378045031725030209335612268002664356187315204076719777678942595596318989929098183552598948835356667796537932976745607376339718779564690115668094897955572965831880581656688565487029810445303728711236395784853652753036845754043023543767218050496302030042492363763123742337036449951510716694153986135101852149759290542808877019859224312591824357977006277780793492050685232673248211134678594430015703171528429645510446760196763501696416743640159836865591457631361339996311139980132018129722722270450459529750521713168418066898798022787668150898000566851611396596339074122265801457633518338280634669880004183646921610915452267343254840011248146181314117650745790842730924681150154954435712626744225274806265665824047989494773113166378887582095830271402278119904006859413589358306965603662062631634439181939654849667157852635320820231743209608747272023876232733338893437305734175428891959051545286755528380967940645440750765539950916070515596969937326176925333675939322285456427357797961596294418794596518489781299214114996055165114315607221726984856999169373895104768600460648636209336076823446767133302187167057590599703965756147021174290702887946471275222312830750748758262256267450707253717532934510947632093048755640332278759278996638080128297695777152121471367502847644759069089032133138023474771340799350135274578170736846727554235819793378520749456568602206839430176372169388392730462152183184397594777219470550635453287019340163399141370659746596539706089289553067453405126693922770284911922820407320667187382443102432820707909217044023179841221353557418407313914927283906288447359575222567612505081616187478116501159902213360612263217205921959647481999105433777290003183418598320447403514782252865325351781137621065997041646038729085292949170578018668175968646547893498030648944073309542488961393752840538885790399224649534344997308352196064414692643479310780224799607972472794069421696682299080668957474559702909282277270302781661305580606894773725854838953033143058993338242264522097863662253427348938256665795413643936657435920461860213566990961009891421849719295316646497318491954391372910807921877127330891021434668708756560638515023000063146101350737673068671142752886990382230254818046537635187624092621045800502463630249623320831457182861302195381282734210541681697422654156866925289788115993540516973863786658049839537794694896074636058745604306941664302837999599567840326192635983504890428398789521391165656049831251038669020012194025788431916810182912915986285520668545882486144230564050219523548015418146687485402154934944269794728567470060680320927029190901759866246646205481040637432730843201424626444094447516368025592885874456058237586278163431901005027413087231083862888818660471716624010670039118704104254538639258147481922405236460268477535400659511758592536215954902208900540673130605591962185320625776755020633605201558873145703350860718095489329220758480058025064490385378737242182349803561768545770485105860659347757259108039912746732935406785239767075717699126631693264567175512531016567301978148095456626480801958983163869225688950096756557870189942345548445429866306153430214664238548113609313975576094872324399900696083657911836703621782744025676109106315270204211329174729201438560883026132980325411569105786630659594627863737088654833399895417836124463833112751509058853899873237356264021147573613006533850957870158885475586409447183225245324795818889556147263052570411846794759246244866018080203090299230936516906123407313172709057511573321857207198120228593166842133350637174133947312775613649127649366838871924744625192225310172962766384636726358876198219491894269523190499992577825927196117738856528171522417188967609881018066158004030928162562479645251653736815820572752579575829257513036072173920632738096949900780481579134941866331207408929541750150221327857944468750893475000157917576508622022434602010209423903821052805993954666144666621086958359060257886674254237277909408181534312911546121776085660644263171564284627443605396581191547785033040152362667782475408710903372326011169681614858705262121745112646352033962749863973157365491268370278643979017757991641201193023928524399977933900163856283961490193920523374173596762141460135986662011194280552980369270799255628487283779950686033210994093112759062050044314420941863027183318154236549630393009294519780048381357101526532246761293058608633747523261758006055333378337124315925733413029705741280224298852122651173996854777928081660653182722062875194796388092679014763349776746248656997794601617428731854569684645738942744094055495285735669617721418823488541890999962048547906207180021913241998445627057073742615450735313696952218080022526327796137903550810092062031464053960815529820166035774324803746140900085570295493726987526586722099257649413246139797680509351979096423811695888950135448240098084880088452276628735847715018309117446230964875793926767676076077557071500792029207054802075792760795794218604667606782055121131327733990419539082498652981178213197446703557487635080929980190500672531807092711081111275759649141492102153648170334974816304479624205068621540386977999657416015239509555085743533070268848730410895358657383540726843958502262193757117689807957359461114870083170871320395884789429017001695408186759910737345409916909634602558085910105984155705863389996303563024562521683049848953648785326888607137636937300230543153924791254021640950451573553120950608941275400704465424881760139297185471619181255733116812910007257593930617604146918721018466412063702472841356845586880734839871951570367666996008777549676444857981125729547483757143693438305180104387586092983620874444128042813426143534325453304037013579709616080823746833016214175041769694778822389025261545646708292364679309391664818670616046183108597812253754621896729485312977067146909740426504203768827349647112843961718201352122610706275552732825060191811505801174767496217502468883364358507395444758942717166283712862838282895523336413998747199047388586854178914916198915644085280506875489957026389677390405973802642728166190002715949234538588154159872789087885084273701977097705075059887099601829429810175711382041865508377510002323606606862471311569649662077228165456081200260269354649471677454584748102470950663713218012262934505025913184874521274910648851579653553169355926738333022419031768446042436497672411034325755985367243264370582650159615316776632116395783709767122694427506703908752719736501814341363104242260940141684710250370079546756436661494384636899341776232486798233562533877866130431662658562477679398930366721213385135342503135265109649927916034637072175356556114374000649299225395816796880806552745347040580798181555393619138813881128716139256972625319672778102985501450170794393503710408200550286108234588508091857411386544424198248595353239499960714274070481087754504777394935553411374166733475578520060909564765550850746507198038747867492761898323196431628290066928671787415625750050917343241704435733834855791049406214854309504259284820777362719687494079269742760638944622308421575844655094058586267233892346420527794769800153252734717614580897959484791550952622694227124176507978589743366312139782149060240095314235032322098571433992223644609325515783820789126587364845516536104719711492068018288239860156721721435376863565058211957154047587650543775362595793279800346273687945615189446433978329280142520849830544376548179636239805340179539706277650323263743757625517418480933054090844609287866819703006417337095090269486126121884943052851702501413839168255615323098093997407264447080053429514123529335799935810873293523559345635935134985281860895987585631620109977829469260064501725313845178782823246536195734398809529896695622941388243059738660943682400200638735849487404415729126398327847804302620968795744054556084820131147288250696373962240294265770181870265204920997409600185723396115702939694104776686260023702779301748097245483980382913073124945351147373983131201495266576689537326284246145436726741925740901258943995872123130983124499359740768384817936951346897243483233826245420607245740357129934121853648752805783194754672419984284167119671396274333168362755782933590478442037188590576175380945207434293414670696610347002163178460096407219565745148457642469264112038642746597057203143605998969741783621679153409703738184676668753696185099211308007435230916970677896809615044479857545170553082347289564312545194656818280279446940553383051909010638292994156003549857004034549688039659136711045237941566916847743920709870819133144769931959912766271239622195850462875601889422330579750845002414195102395704101705380024618774324994977177597945687934477442666337220978655222952553298997067416017358719822334399626467999367742644586638846398372864937411170207706645026396051055864143249914372651480871778458788055530930375302006602253606075994120745267274451313094219293988179960427062646301270459149571405240321014222879240509655383321197734834891107039078144073162146329512257515883324711095327549493370066650728733661918871971415406981860427648651466710661558127273591491710039120168375606255657856020822526349514118791639041091929033657692163901969687595422195634604381144318933537184986519740893726648591019379879450850214472955191453040851507835316294535661875943909433467622018430597585130282834601499637621053442998714308592069962813473029397112405015900663059782150359013354450027809257435289808092146068029456381233962905374663277525140717509012315484525254537610746209315822838642798503367021720695965018002336191933741421849773291107959555967585430968230164103825380847193409451077975177223470711406585138223931587650972957683869138292801314951047242066998762176274774650482884744427918605228624765680718046581177460021188371135497624384869434702443202342133865128550836708263286356494058761564488745982141041205814512736201192633504885389806857468414187877842394334389623957864960348916116604396597156194396269833816184909156792908632695388929360578768198051345041562758877684003717822416221759192917165451088761920199409179641853515517739653910876125890547947186587778130370696615539584216005703337153682358676915254446450148198904841736136194338604693374995393148446711057968899576466217940450178581837153161036273183461873301155225219030585268457429673346624475680918410378602696572465714259751281050960300981048268369657546560006036857659513286596976055201682881063636271413398923570842174922904920357807669920923952450118872976776337900900797816173695633739694457594360950618762928723064129491263210135110838552289725315053763991681199916830028493763505730637591549850005994532472830849511067957159882855291484342416956123817407775723258225984260479992387401055654350989385061926463829480680062822996018302740512318386196706005666980317531128903220308422377015349104768541024036481210952235373176130663214346437949029635059132937978656104749583296243320470436712983902220285322879436511953873007318864052894005699149574151267016797323404404373509400450873778227432221454584837294317801130350727185447863132159769534259828026243561069267637676126728384523679655379790192150185934252026207977775289573433092532924321863885339097723939351550081731388054423313172883111885231447016909201048817915347276250824810408229795633111407123137597004350951859075254696888954901899416553771045120913883297108090417997492446976549976041780179603498654361225283318413237618675602308420947984374898207736452274732248836651760913887453457849012548948576972536698566875493706374514217247880413277545661320506491531444110974459619295095642892358071780726076792481827086758464011221155328785770835280371318348360640712051143241650773155334869011641420037173074871323942923446401498050717210157309710459280628334582342795231810698864629910817037216854120762726584592518244399457437875087436324621512823986365708763672966804364953802929420231939109697548412123574133886073073870812024769265484155305428359740844036813648700422937877957008536494411675353163997480036057593322055505485040078573127435140687870513980206742163450643115910379437160828537996519469119709541607753057552136854638731179541140696632562965884482873945988168542335612130286945666720277320295621926984983333654005108691487429443560308492950712072705697387730915848876273911314828035392813122446908610321912080346635129074754372546003468304886960999890234859676581637447488560862394331762739374261867389049769405897391950302486197759655150772892253402263813873733797308006691087568868540891981504795291013028560395133306348361182785487224921426427321533333642019117924043602576500078471124201775540950765805099313679683749254618401105945963488985784184575049228982130589087930656652848059236316297638329168937468622143493730187722030789163380470851065110192795846343039333748980135343534279427316871741008220183686167569334004961176682829373854612877265434959281631664510202590217495671204570689731473367083568073211149991758373069829219461991684086282912036485442770970827227864324694166515918959403792564073292800538493328450768418476467067286318229709766232706358623150006078972188683895816482884645551447293120175472835296534940054364951547244623734375209136038944627872682688470652228287233298131133499594870579016180874989995157039459460146227641274634626773263344361987976191773361540121664860212194517740923426742500131168738938205519999112839695525711049118019559516750733134593315565340598950677950573970293148910950834854025643195069217032698008519244036820519291850096963520532283674866952361229054945952075830854133665748046125091867947718728337913150480321194615091458250121796676043166295414883518372000330932803676644564824222222140025089438903435109936759632575224305278392566216312701811009864489518349557227290975355251523421427587625682249412655789398904969848021659202508381592562656506566026533438638036615380322046288497880881693090234556355172299318416935045822660413269718444236591601455874121824738037963625596964219754951586154804098544697936882320524034737029300247073476418746519807122719568085836599175170083453486743114353783673720952349767143009227739508433233073392834540528230700576147473972526122725140041526662729367671686268018020547600128583391171822822414415526428830856090382458426785228918051507863492449037844695059690191577154002905018567618051719146279145706008959832649808382691499944918828297216407493337044870586043732688670155846560914344272396967104415469263578941337513522753485081273099662274454969896466681078581498693299505279486094865320227419142730978335147839196028527109376323732685025729700137354158451509898267838338260115789643239817515336888068075998036942036301833188551214128539547524747752088363779787747133389150409062546565415274028564478794982915041129923701370915508571611078527829652984041605085798186497396691508830885083685534921229184611582838220588406378005237439313998418893829716366124664231750967847822645206079365055667267689082858371094642248769976034724035462565587347356779467927260518979994275044229170400437966364604874946413599005060264592266944179005274376195375758388728867685647567407735109265278133829652766916270486890026959337361858655758784680379485618463913925787804727171511741578657080088525632983532589852861656078961311095885164397464208652306412155889004465547687857806209203719544547185827138514129319301583912726032568828524202790023443741058481719527938802119121761401036990333884442535016054581673587328420297159109633953908620828007717871488775700638428547305827191979432889095451094693488304788904269710493732054413203982252080677107416513121650328191696151992734278595090109150641361543341870389224443865111369048750908372305805649815516237635322813069120837687967267733764409555139329369318458983236726736231845181801362827089118871803235202406436041496653156201917364153639227230408913835206661384070068456094508410440253020838591938888221643161202653484412175859719516140693258972167188726754287575706498155399854487538113385380607128198141115102224950129419171896587334100941600309373985224711188498239381760024173215075939583995081917959390399784544135557988261412614814344104779836240788348621542515835027203910093715567853702242719710356195050820093780893571504950947822481809674152888357918778345024699398286083893889964407351480174876214146052256578507262709227196063786552280570063689885604326187996439907597959071186660240844732125960164587922840368706355701868545797079630182530430669056679719649977274879903939969566129928797860363354673320539313449458711739403110238028906832061630076503626253022511373246715079140638523474081216223063513547769893359079818108946502557261660278533139056980810672215536702402980056868008445300440541087520119175573745980127399034888160285178623257039261440053807335366200508875686796268125350545565002249775392599404002223921290331090371897167633255920622559011591350384508293366113425250690978718589515119822562405903869386418243832152319424027645264233882309150098059711730667288210272077180781599964757410084597948137559722328225578982589786258281716157980691034519542373802389626640968230740496494458779092644571054119604051648022088200887866569284262954132287508861046532357544964014482753502626439240204797223666861886868654157612030247540661770231633829531492444218826011849103121242212466515973586366434677145813249790022765002508160978524452824049862244115186557583308476772714741644000193369357478235692510126044879084535900749144793611873957863440489353519979189586991007270308261199612890672145697769548051005083711120419924689438258417486171945635505209897757477786453236332763381708161771245194752003008943741032586478735212667077533374171954102454663567166245538013770251821576627793472781977894010707792509854156238649959786791454358481094046702708734841621363720709679695726926719104200478264887689417130682338063873829747520688223919717918831187442277984343536808567557467628415768313033538949109016654187165243475728213525832882017397308337097172724380396856197921847487656545289126686454539442329276515033480465027305979087363178098227916928924814961607703859324183761488700489728188764530546210485138343746793070353214401674056375608033616771269151515383586035051014297424668857699609811804043634184448687546415319360371813048393946857207148448224257270956922176673298441979208785543499495880280588640136125239500680087294859409129426103331866163674079103372466923370265212664227866377264084636478570319348211509846983014986069766469151305598395400796781452603104607811045293126623515398716868066305557769411806556594851168743207734142388155312180579745518405603847951809588709083155260159832291358623592578414356058389732643949243220092806706163315870390655897037781890137156044247175080647359488006848425795823310592899500640673794855455402314972888733438338949059697136581479504629434760434001697678278191491676339657211831109092549444735024438089896196720717595792857049468497475860530736415836250411800929291340386692552746321420158717762988675968095931135184181998033373583109056847708142670475966937656659500989077120702644703118401556861228979408384054868153802465794875362245253714298593317228387221850632452051230428245093056069841849630787668638708382999396993393259814906215460657967695787028930407129993615531320654152289769725363856883344655744213196214690294249455591247497153069650076630959797442073703992530815446314413340022175831823933378433505168002315118261296859182541813154962677062014105839245830293033274090388684639856719521729129564828380189461538254303911406815309023711568040037313303280099621945216980346439148156573729507100764469426581581414605756506130470867936023105199534036544611996289220755302055390984920009216365474159319649454507388153972645906986834330488304977548351381495553538775993416022228267804620223792035568795678186490686934617764259400842124739421637505285154940795847202304192081736851948693645769262969181084167908112756477868126935062869967241416207696545375411209438591911693843165937119206647795854637973695963598194267691318615334203992961542203871597843613683608249462090957839174866012562906328485349050642212193801753544098810466272117465399921759360363577142343579187183884564194429957382906192245489467782596555685042406211907431313282648949787564503035584835994121695587123533654685704774208002746757244603486733610505957478573260066470892746835833114023505269881999784267962001810456011873860876485091868651496483653174452724382101481126413352578657843291435727507706109944171919316814305747700909444623545940221539521434673976418330626212231943411372098603507093110406494580534961060212182551007255205443444947885894926742375943775566713167897929197926494475512232945900590665040430171607572953962051144665290719608599985948374615339262081303395480479306128872259331389639964375747616458972304244843295549612864202171189183516772071854261636584870452901825753955290529828857838593495671883212650042224628419449637237189814559963347715343138130930994013151845635022911884302830962034117993303888783530042654015378389213788865203065780483560401255057469524819073909785204552030882097276773063774745621621347742900298546142454252359583843888929332837661212521760766486560137031442347738647104469543419902765151721161063536834196098484593700006752564217702032383597686915799260392537510687137773039425508670035401300263071657042350330431164179315057781909001411785632083576064782998535618267552841591621919189540111371800937617456240324796334462841733981285244227156436090770849044912379466914975131233000820676592298737404982269666307991497415823286554962112434089506813267822558951906921529931665957228656028797361570171178756953179382251445672562953040142325730381198964864044517846643175627436874517111124384273354487523625606742314966387075967378142447591752083960303920393025543927898593147418252097639915637969170164505768189332058734778547454664351266441424618391420281155971685765257349868307842679351355305017567025234085841024445991552956344757762389353676116439727543181422799836937793888988509678336094401429419119986980621505524368326771508811232019336006914868730694796792897897178480053763005849877961419874469907449713481437095587640488040908223682600288471219337501292739329262182629416135763166305593126009495466298256953802224704443172444157475080055816012911972649033022613732810089522352414673118443767328050578351253633527350446800268412157225348160342285690695544798948584343511737614930586917000878701335931137962869563729616985813877542876704636865707675718320551970170907605597660252980212607327169394249899104625918729448610713814005605623688162135039523829697826130525328735536960148087269274571502595212040342603151015965698536954129705157243452497127742302724870812851375392052490345703361755407637688633345271124829322304729622398429717940071281113609393111320260537104046689391121650220153716584266166252042657529809561497405837080427266438219461608636667180892875101559714820154309655918746757488679630932370626902147583087422178071883086325017611531764219663221919732546297188528851730493861345069422550278422261942980316664745246990140858495538935722624268257970563977758708193788802706002554899982771638609710003524684423107495299834414753886557878170249946906132941125671578258096045901400869825131689874785002309051900948992473167620660511252795180383379144390332518875439780831755401173153234913265021447430470992986661862290283528595587192592763301801427348023020220169721549863169144708251695006899355171539740259606766270503454983403088726749808733795651431672866621694733397621022519735069649022899506719875826710550547293386264073264558380410499445678669603165567326266268053704787281725605774954929293935785632084737748675636803840527627318097858307356971140305438220009531341767190608334239890294148658570406124813590660365861889471241004505038594570569489582510584886819705896765109497932212365019772416730985133107651959678201481101842893287100185009618495913120650961234538459900568457828603666240065706644885416746697040080152387751395916869628697946790106589976726096641476944691845314964216487281921219157293773111727774695979947239207136344332829611025319773018181890206956914085590340107011793504900894473921411660038247953955560324794171940767831650815733912416158686291367357895148309563987971702539356975059105462283797456116678645693247158261701248359368566979617736866574434489548630898853906142268823315503133169931543052172910089202030324084767787158673867774720957458205709943239333431223143214881342519019464380959266944572478965645686450304072855291441612277873661337306925558273622228500630538417394378966772714731930507355388982074179264880645024308846149976530574387118492277407382461219794023436259383030849793052785316845938848348846106552049861803186622252112778668712364752034227462007034914470733684890538913633087011193749233546063006035221344479942215304932312492397117904067658593364122556549202950270642606041334371664005982074434178951879658813016752593356326022076906462324405448670390090202224108557399741353873825393576239960435138218417610617986127365578229367151556981091565732315653613307836942884993060049346434561968153850451550232190506246516078662196562183119537497784012714517311622100152591218083963917222961090164301489400392165585742698452074827575944802972634649379597599930171860513819759971897185311137507568134598150899509982348390846854217793375926996911818739998983712567769963468034299556978131946132795168778579188120350351686626333376628633118237238655308691882615474679796535793790325899577971366733181947940515531744243278067193831667655575845410013633469912493068534974856426033933643629269946729511402473276698708649727081289390207962357552537140759842026771116954365503862404798171666474183204318355888624689250867747990816541053364561379921296624784037843151397891104010359283658938021980955060945113370840148869612993977484684044203868017000842701301189532590250515385429385335992158848614356795259733783269423936422982301493913996381969853688714260116853041573573480983300963324102060238263570204460370074144767263186064181102574369131065803088221352236470347762014327473464735414578829582715044921324419212007556012645940669898347861345352079440081061461736091040211870450806368791256228259210117140581932823493106575969052285235624326767070834787647514245724810658263318972086432980649760510658521918108261576294172740363476461457104683763397563290389778288315682897395761164719219855421533164200547815835643759934178821388514074829702622912914915840455430971839806163098552311156902287317494067882049616214071731129968883683661023830231535328036844886312123508854430648931698534613858900178829059260450410617133156138517148246917156897546380841003145593896329951963614817280720281421688521232932713214431630764105500949632342585333858327183596800832083171563372427893662086616959115619045435689436512196990435087976966679232361709449216968402046947926064400944414720533702757179220611898458357297041482204080383985521141420511936650238874140004110510306223758491644476810436516443274965317302276574064233564696211660189067300422261510113576312432120391498132882038412140141397551603380014628045559083030979841629886245262393896764521506637932556664506703445657271605761680081566940571878415220430972945040384365310072760400138197192705549262394940327465076411118015918441220221563472122282611291064839050839781707879785885446208553520902474927389234920339492782155242895431205621337712132133205044599151640561881785724319182555983690060175362573460512261412711113051976016489732804861880141894542783115600339124959977422496566085725605602792743664172455074526855798176230756155890703309780359764893219994679033300652782562575038632402739626851025082540265143257261685381314328850675716177902810328040211781597720249567186863853332039281150582362805972504377874307489478117303708189370584722507693760198710837314352362242323509694525413551181491225758846737815184345533661653883698979768872537034353425696517696490001772092457679686022452546119110863469275377292952515809936968960775910795728157850008800452583619624353871611956480009344053599242526549847403714140253658984034044450652920646621232320553322146789199628283768264505730136172253553427651531781523400117426986257370464831164633651349750604216736247218414842096342360490108648593896111588547521758021069017917239302867118915387357210154664385939797788475947726369461578358429081767327753450248973440370729522135632546643227406755137329347664465988121245281558224175541927931654065817670368820133633489636189021520741767429563747796918969351942961271584004979890162729658021778740306993010419450798829123373841804578511565882812856927975060680762321868377051500739460999023605554003233221174836517845843872637926052758984803608366611957676130302339790617956378730800325265135216397373867971459836683256778507660083597176352288125602851361283315953734729023794723614095329810384486810806113558107823482456788475950738660147334647559211709369876408790996732911440779542261750047430340312732853445938851231277216507440800642258155248822057904475745071151532842043826851139908342196921074967907287616645263282912568836109310588439627119354920844812309836221775152029308005747988366239025504588219229603750612765331310782892425849917159898561545676513132191902842503630047493282129612378944202386815597789637940755591077873681793956374226672814052825504449743068277054173841881228188120410287038799325580317725674896346362187615036016633613767515690956023009298131053432114059440418218447824598240743000498050955877546334966480566196162981027290603221596583713376457899296093983471344360586234167627573241958389180197739086203815100389257326097821203736484485046854413175952681535797948931780604335644486350712075206679858660956636970447187369964813493157996721806910817121330594531929948658799497854862479964818833645583031384838118340961614572901833342376694798440628800176739121864322016591119239378418855670092299793417811505936834528655999425118657969100874224085349610853627870949915541924098049916909084588762212650173527983607881899368939139041140115789471395131472853242956764995994226877626267386418891956751110585286469013326169390749075333842721948375993657504001515571063979828924536778905054034646703203832799329493699968716616170706514379698777711458406925429514951837198912627357351956066443227082596191534892033129740017437015346474199552036706062971318060248685723265035727424168819255608556024632484967931075556281098826029986451998276177049831529196597292851206877636396375127747988829893471332989440322706928931246435524694881144699508075667830755112696860808385524764157633663195681278513447483884132010553305607730794818885549539567968684196619472615621151276098110766290538793750759780991594099484349527073274113044666393881540809840786120957941576920311624171496807582487301220209174322029552672595115421629318496802445276600490956320638711982942702967150946742167311357251995258313591486476990782164569590401799911685761363813213440305628142353889345300005936086211980900928765409679312329644967524420015012652903565694605126048168675399996279048160334709655668869696959267059222048865501376569607000518785052004233389063583486156428002612356934709115879751959733218041004751547347553395407878330874041412509242811503589917058942392428400184197556774308970942277278357100939808951554322238401175086374808400243219624058324986946643084585977504989176410605759848840766849971821544953918210010899265446215100764651884261243873152177822667781495746253146068967133039231233841772787301643118092043671206925510365881996083986124154603170098402640786353315005829134813173382929422548360798598152038976888336839374038554909445750365602674018689015320154179131783283476771707183191548444263722552945920614193523947685656474610694720320249208985931762924419625579770209717338063893840258941621270077372392109031701007190994991841407344849975792557232887895720768929659219380893400292250016832056119527911983193061796247823670786382969493466223002934673220103097790036246743282283365189183850164349802436901824161112034656184097466349752439170498772589542037407259431675737335677709189076984261254752089747457147215061060193679409262087995827051214449038081707319814979797634515962978431682940012822009465121514827291234547582406094502228960293091732875866847245438007395619716656145525570052040106686307721274232889363207256817008625414174595853603953830305712687800402042490264898305995204014833413490011667397383204940385914125738303982965728871910893929785373534571311060144693321456882098162276412141613721701015328730342963581401876304979047993827149299485317060860969067169155256650192720447843373290245056768028963892232344420549977321676913863204952410103596901499087168959023342613225927908063444917121944838644212579349350751105435848780712759419432836440503234622522535887487819959304412971724609456345513388119349542110262900456795678053038919852546577835331758168441628932555826730440637969713624631600752178429797541857312383015336869615735054919737041301832422761933783638449633790818339519420162843876044130472235225947907649900824080990330330879316147040228217667655682686579229766727678414887841355606367641826563430734525012207649905664260769252098528736387621929783714288387047020864808215910635106055883703014968374178147671402968204271571773659678348330391522337595687302055660197344287562019339524161873042344912390107912317805664283941015721890176770771609434702841510062560091490895855170244453996563626488798187467220298783828008370204872403866424547189336994667101338761101961149946451334851533520392285165853334591390790885330837025111376513456800943226085223495526640904079525561598017078113471903091976128097712961487189519953550449984104639357867792512214621676025358619301250928714814432077755994315313357308954936353624845669372911478286513895256899055649481766713160029963474503319732023043723566822180986092183623208945431766227794090344150446381718667144540344976451883482540061714350366664505925283746398298822906206201523679545587502339605020834730006822397848365309757711550230580152331591426626520350119544232427793983696361292900142325950715742724824918766382268243264438883544928362148445063793619139253917511383631289575374759691928701004134678234025339589858217212362664702360300706665437015668274456058249513569157411272650720774061785541439363501414593825251261726185866849030579887497054738287475573029283844050037279612248718703394675750806845241420445643616059390715850032361638517248805142415690581542773097794575140601193029892022096435995185026721828805610011096072373541749670832033761555618916724451363490481543665021118052208514222684193359306583208436664435296588432920369575393608821023224512978407796987981783292348241764918052392355067917156269203901124111188568142673160618855303035739279219158259347363569144929897200147406564901361974930469751620602214507439635845652413157521667037603406936659303358025371735209728777239201553634691905718978005390003639127530776171487963863992810169566788907338722975464986773764789435366274001661186760012114459235135771666385906564102433863026123793184839929790563308029212538697962201065834844360811286670715065645124890510729729892896838812357704396792668287991932894661962271602426010289499903715751501433192379248697214101208260600707001600576531257205035276026104564707396672526396407519504979891430370310841688112416637925870740119998319688212134243245716777186193537611996088552537460279509868111014997817981498765203733654926610483170979406948618012967310736711673449312051736924387055362486680348958121662763968572537838911264758114196462465961902371798868841285830591154670657486113294221863265124526169388677089194521347294705049060437002218882697555457944819709466395516903901650984441200543692083166439714339629334756636063434047459825104405382124784032113891571083794121960019639543482087646757576872433268702865728934877425926889116301500527050077839456364671676573126382376860113774977630113110233814014753041336377085803054897710764169840913470052570220642167146401833787910002805031044440586261119979857916918800368522000388015541572892669288363685406320396599251122117752241221176328117586469446968170684447383859022985712646792207217626505103734325970730455100088799142679294506597913102831163860951252736512171767001758847346642986579682268482080721302529960359534105127800369697962708383224008554420336182435814944859898175794506317294744458470389467475927427384911604165702660064956206283335068139801397020337333387154558621332879752302345386081616857546054422469363147405566820624734030542004272275056055861491522530480944984959506197779259959599784823266715756960385550281004516543795884827259057553201885463424661245310407306119837027403759374367395985331679043392337804841000984360114338467853952436429352340511279283908559440242308756695445915878303739583067962566708197544046985166918211954103634625437391037721410025503909839601468646582037508892245820927379623884641328905452839577084616721339527531687944240849247727803296455194932989374903520837324125652745101960921840888643178636248112918538925032546063802866963338024136860544514676053295132365048540874621070630360875329596764412828043161715281827562830164385461875625946320805516254660104009299762849772824609308699764436295823094844169311703460518460384575888665848618928945822742512310803571163959019058589984647349184309312873529696908819878458231774333744984743399579782063180943892611559847494062176375064290453501943193324733402161938354585344959043209798291867619538907333354011215008941072586095676507784090446566454752540721262937658252323732948257990380027610051689200688039114046705407629729346562656051709168660437283126698380859641647762117248846798993841977764314509042161044442647883831084721119713677618496544137038769295125373111130181978979356111530276501035766829592919864259810025445753809128358363587855601732068683752901082191285946450570248544886042978206449295604871699697488264292804585681570258547056543347006920291078167196572905297277121702290447322082516629426308028374800938647298228297521937625444743756965510776788771614974078636287277990144822577652219056335502788965778037336274263397893933463728810737381086971589835275161970378363221191986707900992317513302177358126870622113152982384618570733857493407497696461386375381684566509093675556417985860366855667930128588421361573963803971832619975517796294426937501708232816880795500629021678476273693597748506057716087600276601426468989475807358022740476677505891396640749856019296322551574991507890406622762024829720114968770506381636105548641637118123390686241426299604588506370201562930419324855012781264390288553449541927411208455720244471656910942387688692873189432857901564924527748030662808859345078745429183565004831026251584563157488091556055253486643443064325097946191126708183472870240791618103467754944514848370728135188551424610558912836592566314300480573978767373665077487547294044640305248342794421985701784125571898368104499095728831312287245591067765170511652154406835027696304663382440484107478240340513120673653114853674694859617000864403937621346319368071372635941817615560783592305702033070942199222251753110434555342551536952463961086750344888391546262128234471834516696086193968019687384406370989561262358740479814751757098191762025430677119085476149716748676256748724258260551491226127722064214278045146572942106962862778593581656827148852603174859996280341889780907772983292919693827127385076503643739676231024131066642548439916622779736146136850967538882667585967851944395586550943511122768864902048306907844595879406562238836933874756666999506810536198141763858575195511100863601547892226678418465478316876452364660365216245845203403266914220723540147054151682591555588673261567158997312283720476987826427673538823970666372605903331240061312770247372766658642442539441996524787652867627211201823309581947431187949821209783654713025863888421549786680776035532873005540762605221815748024114251282301799499930273291866197086538447040640119953606651601747488442429025896955179812731241080847738095334576036960132773561802688355803467127308968340216450248624959539830595776720143060300263365102087436380005576601699385039346023967444455018634453160502607808477760115004786584185806788161411766967514921546602881725222697021367058773127132964394423698259505809235995850453552608002759388620003659903339594968772935132846273117608553450370791938196945765781064703918865045580466560038571030629829996445011950915850713272405726048865062124981537008729960280515378035788943428689362504326381197388682827409962695170884117130469997045917061756497937819318526342546464157909659032103681762195727296612832957386040415660653975599412159503025947307837820357441950063010495828278510656026885684119685473092090624620475774421582396799482378851874512235260443939966623648028116155561683433871055939625348237294030869533035541075999052117240311459443776782682473865646645181208216834211744503938207523089350149001444743618278782301317391328881095988342107052585501635853923472736785120826095346023945878606452993000079433922780617972737270693216478126713405207916766362722313622252872131322742487157464906918758205678814039898215004129472191436495727365276950670858103759888194823080775197043887910056188696429907229798098495736095394448814866510841824693381037339199173557470281509187619082024958858860720969761958628188511504681648410460650742024863047084090979509274162375302992488017825658104965173593174715200467621230947215770317202180060214538676153863832576410953718274977244459221365159914595464369142148149380326056088052091213062289067564607592372702076941305585624968143684272765437357460007843252477230587568657065395702253242141361381396022342207879690422824071584392682310324449919853908031315386168582299956564236445248666196348253511896676679039545127826405247790399734090119553976548069372225976478289779054898619889985403572965412277860233193697170531713767798482600653165708650094297117103629488936122696058613864485888662106838405179574307090806115982125190293755596838527461680980811806272827590502122341782287435837988847338561140829406141305754875354919631659714872446252614694778536297290582200030474924724616966431003570885057508143064510854386774037988178477898016257807935779815825029553723318857047368698527672054079866210708172674353068978760650952420360916816928840605011556330290501251422492801665516836588618973582633124386206700549192904228317533839739942545322564616599318528786909840231399217518497687196634272730481775661354497978311512079097616059015595077230351437727608194543590941490073434686014202053425126306277666660367325859725277652800502135503021014322268575494994645907883398078167324543922653920030466880543948666106674937693191429235792368308024855569036074768969722249708857723751707772800508473881711641953270780768732004712262967238790598015089428514340117103178157351952126813867529774648391280582480500652569953975301892127904400241620649571273334519053279677472054497775193105846530824085302063591916984743884214537060136208784414328963428711153448460175889404401979148401385533808034358651359727566585809105269404388056819267303101180031715664498957478938001239143584727558185197375962541550932088715824962691892326921364541129008632446465060109921641409200544610204961872585570517559098616877236378571345322790154089258847497419026125364483739520349948907578704227112302928016983297546036336148760496014908978004484089723739253669938183015528789223804291110184614004334109774821933153477229611019061339162680005188621999311908759236711309083615883109655962699710105129657656057737908939859250248877199834367338800121504869826686249281396242669339272034699192327989611405444076527881460932647397938264326433547054137668109363030655709403363482813238166793355778716766747785487294893662661763219192853493810564408556922663682012227569350346800958981292877214580984229073020172158669243452248405597879316117234504864301502734187158398681166043926080234909856657611975029722140750218609727666159970946463454423760526604083259127864741299198657775276332639042554845052135081876502147779306087274268449156739671272630073827323586597552272640245297965538303091699606972418212058117746461751139287812232258549404609305608616318467819145412591678897752568925183852254498723390529282853787525055044947252770156042690881702196784329454337594858237800226204289854209273797397179442145738272662876385712271175630074535597070152703078117853687684069454298081254262520879298376167944234655962900056544795877579090777808450660172005613689511876176550343561349077614229701942613381755929727906751803318497479115475928760961673736031206142776395984162050623908540265289950989856199357253865135701212131789403031737339757340145669691789571867491057138854535140795633229486948132045040707532203397257494765366015442395610686048144967243723018061996925470844601009858444042970301089804525849720142322382750362333901738847188676589950878720018704551062639068099255879673837498744940735386941725540591066504067347284301735784045460953815261199245728086427137009068942028146745847440450939948619732852131258599313859940523523757237895177676330779325413165006353263714767227665840893168135325927576882700254721480256348039377639631173595423478812477893903897389696931673650209557330114200701367035838056687890818951280032394526195608754182048836795014419559134949797509836491212346977027285661682340536197670983748885951959630473632850154946590178600884603789837254140685392932010881615811782719567540287182526566680415322296344445058791123494366390872475700721602683573219471176661023602063402534678721727017317790509243395039613992429869091657694020348310895934921091767212404484551640849765931451161394229041520975006973370499062810314624565302051613925659720357689695227982126119071676215832886848478326364064956885912832735052787514141448227222431648354901696175187580061187166940891376989007274474130465117666935107829227482461446469205834997755556548671020481723407310924830710523356090357921131155390192150096361665182571455583740820446522105430043763718197151143782320447876981217702033525947539552033527057842192409537757956688812103590589168382738958243568077852003040264265249033318727629291354421497423642547866547390371498704433696885098485880849137871751812104229596768896606794126345636782309184589343421343420032677865641173906625317847242812999286812374545747941101564144650293019473717906474006516659097350403566697070173646487691578901313339956177615276672444955889332577497197189915675105871172401775106562490688900194328559168974733526372555874873245825305439270141149605012221960481035174558561149825870762706282509459452773189908966418916559676869186854858479556982662899387567297434153605897947771575616009614446887844204973236438987666249523931849171828341630539919539020375765864399699004489991261204376099630546550638143302580713251360511088849832162857263417942491424968510553745252317305261208336670994907072729945172883707647671827920489669688569675630944230276577135115460094070640910970331816820402456373485362754019332417613838070076377998500821429091851153782584893654904371886020416313880527624225725036315488826182107312258878317624212030172230735440244470227023016307970640194336225697182674011955663495270117937603995016945230598052482247260080209357105032399868767573166559416947644269637334999068982680190745560592741804847180532675104737427706967519283591196456079046519959426166253215675191262558290152544380448841933116545499358403670219748266577534100384669335329216446831618471838188210612478256519130189877213819608880026844546429374788946880172839672400393178202236161563122344019448964854520108049657390760821351582891521080495560657273549491108436058417173243225483138012887634913077202105305567940244803805031326767054630438933292101885576721483786658926730290350480617737720995600927117875797944860748606295707803328773932950118125379965311228258090891156905183576974320252370232159897576377410121798796414119306215919433054795094790739246984867790871710077982198647457900070291632860555570463832843698335364552833815115508268469657447259155731079109354429696547455106925634385447088231986162749301744567782236994284835893590882630575300103099153922616124311798152232444627223283738716967594202101764705581781518049090862944559148013889479965505152857782610713842840012384283309677903432424131223439359281429856996197297793621676196958867945938779796727131961339280427752814622927619652937716322737115231271155139422554829457624951601551636807024211136962475521047047484277081805846799318606679832526581508619200868287217153617902466480685785336868904253430330290909254782155406445019993808466587374286925043267553244790340292034423136410599574655834494808217212618773397078900610234095475322545098148415703146820494198819364121600941154880650437705135676793759737864798563967914775166045178446677610017443617885160753469518828830670343418484005482021374876677995107144479822290792953456032453349387792774879147679310453189461209760916626162475499456255072269956106175511551486782327178827652544902483063343303363665871631472462863027015607685826919293573811994057942699227235728941573582759117357492815922978180970402045986818020883838504459962397717634563420092512828125782875903033043914053728627791995723451465635784428890394196732609725828913143713421422246354126983926553964951271605308663426368596555710778083888170112067745443344875559601723517205522576733617329338970823485228131139570510110693577008418547149806555923032017534764627946998715784404212535346278120377856990668855523712234437826185388990867647421273020842664860647053887414690646123032724365916231643190140465983940390589300518041746334813014145044784263202007758049649561534393794791095602488093636629108488177072624092144651123954450356614124501963282704970664476904821309477855302160791558882156757293464559381797643757677963797108200115242889448728226975354611374773692013588824915993276140128359580746414399981210415624352871787985619134545848904020501490798960451421697644699641395799255168456522141697971301865571535618294844597468975146473880368382689625484532830438741827575069979843394271571670181461962304545625087971746892443920996391335841800729502476891640370181332766112142707906134916016699241863240562072706229743771753832716225100811520330522402261541110249788705315577595256509704882430091047050931001250831843669202566749891021723725573655281131028706407475715517180464473505309863458939296363029881001833632388440583873850381896486485489550439420488757031258952746270728569385083962821230228074199143899836864744165267929050788712700051356815186481464722615061977952767113276268630588286419190759373502190432008042119066121333375919677030509725441204835278857407600531886613556794196173416928037449642240804822169496074176092725703716603654964812436226082544109506503114889638128587890372383188675736688468437397415666724253051923740977997297055733136870279275333041723854833575249198519293105795877570868637896663205191365571198307609579002176405839022188897709650435582673367961526234342583387728476963591865666589413108780238793123919267390725701244081325096354774373924506385082189438341114646998574854414050840758942766011907104598231272167640759539138427809235205196552203955575268843651441966916679840805906835453049215123943875042788609527432382514560630273909150584915870601211451257718110173907124910402305723129873095202484441466148557811166020262074581295042877096593494115017051057144763607132201273492700528973707685421188452642892870129098206409360294101123482515543054958327750179174971070787934859693359087404681794524458409720265065875713978437216226212499445656463381038718207095063234189316208525214361535052778995401600697435660356126932568930249667849831135292307927799282231572884986720146605767656237685145338870304688349150147614164858044317075440467392414613976718496269049837152392721179629793197229874939311757430625430803338750301620879566754792484514713036288676761726277832799691722779946247516459539780532672765987352220464799745614838749177951038952628305271879057921105302270164325435056546660714694325212695458283612079803220908741203735048351219589284200151189720170304568621204723669580826405982896845385347258675062759416757047354506759730489003293213606377353491323658533613250113913915334721650939612919130188059172726912523920873565491661331471527413178440397248603992480567520887909121229375276907202192911526164444132483877602882371672735713324503124700956154058299358824388108853371389374938591415813442044743657164924375229974847635001416082608816881828889377804932512430339765672297427712578932781090132044211241601981858333778419185813672494874747249299652360206315699579165075811475414166114099291596009967389071149438712178895467090789499053420797425773458819552127364980218976926099829099260197960765438621643027424111398344449920105370300204842508885095884817284927980291114751552829574924519693834430695584276638945290563813138044740482780555073704046470290518108795953892932442035521473478879292322602895342776302747083736985455996008861877888277303073253237423348914136542021349547389838176170627919790740735356413943554568442124443988397194568819693235628559125105356694066376595627359109159899831133941316377778063598676640107485064954354208018123915485959352024534358938873584656687442957197022820192440573913835127737212927074791662222487553471727028105780891401237861997980645183955430352630343052227614926064827191590335396802596206369931322913256622448713297100761876109413748485059742604936765097096214249108774931684135015675297763766509517489121934587169215484079753189468888956936509559507060033025650076955417197888839150627176063252297213322276373626158841166668054511716772176039181456941626124629290456386377678462356690345087332765182706828209984901442735684861091392505991191902983004712171201754362352510558562880644813880731033533508502355690253305880868834284571713722639920203011196331305009989049098468631561215303930507595643917912163868421400668648901825609669310040282644995493828666550623765952460750858824141221361370133852598371025358115228792047433943908966313663389997451516750655444890864656462925159348363506963319129574202995311767115240255817824517302597427333417431097786054866833464939240697063497566447437525667651344217681455248027727574108734640850355091175856246407951849781860232373769459945131565836461884132162187635341562104958691536223113178123851192768500875929066879440522783658927397635117949484073495394390851204108648580945488057117214183827327928836620066083935326060196055268611647191112283991784319316809012852421420430164666774025813757901056905543580025597039221083521219142076782264518680828101989730823356615459731112214157263318116817790449536537833806049077561345177480686010443206639803594044136753819218002460884614152578604964664204740035633333252510829098435675890550258404662542518743142345559709257649381108943816473012277743570027417669958706068564788017970111426082906089770918492544037695862944463678582302332070070148220925828326015357090818967606374028722005136036899256980048831308328443231975478746026920432280039615891414829171357046498533551073709116405996098214852679671346734802032259778089643814767531686635934034913816465594604647533605728171584529355608668967864028022960518791592721475571254418605852103089132762583649450392256862790896827733210649816113620325650928824603262288025049247493248129767946806280458709448405540746073003821173715415034530834273370066166504309516107384787634008113435701155077050697560484835569912506611076746894882979462580759223499564657615837409986834241384383279376558091414430226007690092075984168232026808541692773380335963091622950942430192319105424556888666452373409012102888008195917384849190318485214155179168198615609476202819121893967946726579800244650449357144688966738508875868276518593619586583143168593789867257246777303877520321946549078411903985859567192500434116291080237105687221125795104390605829533094586468753673046195988055846643931549668939497794869739302484996584448180782646724695851244576776756574823295955837316299652550374402563768509504488934734637772620330995322565383936357070208377932887762068336231150299688334643000198359189748572504794661011220099776427350452575819947620629221522518394354290118015892147780891574904190859337101055136417237325823401273494721027812021225982515490628786107319535628850472889392727068025255806110110997059673193386294161781616172924810544246710337315542917669115091936862478933542726802499465212290706139019421732416999495877786459366793948439700612679836671097199686014467511326187240406487821876871988190180251759637852480895115875166383688236091211613540868297713758840697455309800936264699926789069232569696701953042254057085019234362900527085541177751361188653970930389636715726267867826544188119942335539583012071407997422001952288200827441971634687201524825847652976551637526551215692301203818658066492326782595573444353192773631602347968684355181525297865088952039224927555244090606754340922271557151116026673434764580640097210494380335313532402139627941626983397476326008449402886973948606278640476947791463297128020176511068402680127093346715275031489814942969786901071065251142557072524921202944021385466090552309355173996913759164473605342028513988959694091554470097045027949171358197073140796975349229945396543401130545069566638891030414514152106146694752677755660126264090769583086430032438825599924323240904496164387144732715011143473240616407504760289318697259771472677187906783997753908620965119375971064845089421006041660727562180154365921076831337595493047203322232955746289717954743713287430598964242776018649672697201027584125687279558319474167089897473521091828897271783614364243154931429870430926064166420753815392511643130229578315485719872960026128119952346601864722941636998514231153342425192558902864210424133960260116350438665545962604582374135031538231075686265423113460614567181620017841243808510132228245744324878502635795154064805533355108721361486999388814075918355831890734930058861794753608213979507092473177439801912703113839372639377152059747637266492866328829341680118697230511118787652099762986453761355229970413154079377326946306744688278184341799503082056939968664340025522205984252287414933920776596785964455464002521534327227579501218319001995024783452541522991947988554532680367396702071347518887335425732423536902627168879226446569813238544474715615134081171841762030542061823267850735400930004958742131806373336358691803691113780715232907161046841112025140567583473435703259939326684631858480340254484448961546583926207737361363493186026131472916033723286775414668016053596172125420875473375871271226526142474404739853434389733894091669348948166930701293938998147771456730064837455826235936071064505354459568524372549713194680362080422781228701982524033259087767031264598420255713322304040896156284302406074532140653446467838679940684518069462245590924021330668425397026894415320235223462535781865259463137642057749884843433001867308121720677869432509707065080652415602278590134418518914822027645375662240879455367798579815655234406648658314642775236350920266334309716049763170851922008136316490943168877771584478839506060778208186693742682904503993670854542768303304065098250320272684858806092884021268291038408620319661692334678609886839862518074530289767360095798093524247066505053312490216070227749524979432615139836033168253731917856791025363765607801833289603582399381591177303220207966244640417207788257888044993645913649447821925108695804350001987523326683722331176749069662018301482749209148629047804691616791054474910639874055093812917133966856652923087977789664175138379056719811478398736651556023598933148313826934018459134965212593619384964933170751727120401237601081510112154878698676111728844312733915443889337293078439932218398290065506702979940752097149113005755562109051881908677061776666542520200071478610425647640558559112727103027084853821796516999251253894755755929656805561707465916512849271993201822393720643512588530725024095623619348552510919616199716608631139127084538349634748543365362983047199110587148472725733436397683219574119077826334898652439723632139853269472917796226303824458910683098363503557099396574334943375791702873520388747112548212323621903954561918679432900502862836885167232468440808988808420302509310503328595172371621311531206785993637114500302720157670396038876130876015325819350050356261440337211607802105291266689488967952033372760093672926622343767766288414418777833763847331574908114553515111581575210476723888959101390327441434073420363876100944880288332876042838769537986233741745636587587325763198459950943753899029139540069861540623943574330930644604296706389249032983422456970908446463054798203277515649232946415766749245678300847306250073921394752104633557358564133605140754199849857610447358236710576654646012231775347018847762938920642133144279076731186262950598992393195124343555846203068622624272812312449306212467669397028685716732587794013479325850581574676721730979971004210702326381784864891751070776567672604657237600318598819034881854991482801049877514853669795269107546201719091166847014612189548677889811236290489030800842356062048372306523516373945995202996672127562368077516229952409665743955983382493950085205932589521927440722009506627963710836138363824152605448974783083781160597560992864890764191357584816630371060727401503187423995744121584581224849660269153506551269978374616415561003457580714895597161393759917356855859182605671981807397508936960625477023136584911640100720532744577795508339384111779827295834993821536621007997021700717123975540297763881637651567094819383859950308170619842620289244403415324346507073252970136653498048462020239804319763314259277131283881398162417324571973532547388521762617934395270889982523806100594962875947965637987945425577727339067711864257673528207575758444191323025238821655465452758136819094855442583815768947140774374638288402288276859991067430582600553686045360429830072876026381679025054164437477686198295109858114392500549569796433838276070775893588673829489665305516876929127059357756286428214508198188741947666168127040840931412394794658045404903016589550007947195696549027609959178280451093476788361962120551230544215501184463676977571587194844556363542329834176222580155536030691825885550884093273218606792731343830417292775823044032448484642926083196565564685952543930939428172026666845994015278641249910584398510400631227873168255769054567831591187570384613247950422096791390674779551492496508847864074258730932072391041866210382365236459181457693419039126304047918944514654533656113838927241526612187033259894469273888264872669098317821580390851188529274290113824544003087050535931901649168298837564504295835821327838641986894261307299342183318872788156820960418708267669597140703956112519341296950887832288848295679590949563579925109814324299086145471970679414600292911010949054193254794373802990485473489534478262352674315253466347964529205046330522067219222501078949517344948463624999852185511708378379384432853868278417829617189978285298721374114136500176121268727191381216965446194806424210871919257829740951272128233748360571062223873989204067456035389854473836611493564554223517566552951437054441233264477684245552545473439631041776400782184383672881044588884490385229432085358774741572981983090276976589272852144119166293367001350495837464395917798423036802665451986967037900698702003299363064761995020254575469348745676476037572437899420845649474562993433712972192960747165486495079745379751828000373314788538884028220506620960591971602459978317145769031983904685119370297323409249065793982474709026153520528469261835826557524880684834865981260557463016853784846351511750079408650907444535707324840080560960360261021306017988162196147627004742864861027841511692364713858659651345212519712192064781941933115917854175338749394864704564031244079423459289917132517545611041605599802468485946410700040028380642510010910116173052055713888049942450587694796331753599913147924518709141898197374595956318258867484318154611823709939485324445559713623225430220058850665797632623365091382055435434885771721917092038656781962576756140663164241474814570211683489943094907850760062665364846428709295186396955792802733392541024636724033278960564641489566137313037252693588445982522242791762706949606370722270563832768077408755233529556978513168811464505384019257955202089182683748562093352736829859210666540228730316874075934843552859151360035155379786346027933155731489549488116735411046301142118437937546356935732870366957632379844359057548136683642622410906364459810291063408882436745312148681858196004918718225518063019768180432293251990302330002889548876434794379669087934177887635504136329524175486092921523468606204027489787769001396918841571308016180792449064971164204388414258093285240945356625967033672596774146248596331008851805777013765246514167080484638390809803324517383082310626822659651278777138666532167730700561555219495806466445575187479486617377265236144369743189621419738382774771168008159184621013554286208714606355724606713850791917579318212831580182545839469280080353335407043460897789831150917416221550693554760911651377111101454946229193058438467902581462493729954066239156756090635873027790210664832157462961498165459483156819496857524174471081982681976121480571504269138697578004630954433972269340909059055340125272956808105387919120527254324193940290997567940181589237213574569156061606168192507849969689269403013579925510397091676684265279530787164948407837005169868592991714066105177228516917113840105385002881700430096226320834937136250484650675381644981385579834108347245124868400019415767925031882424902920478887252024468569383342957426823871610900532583956389693008117109849830112441322091382413312811706742787793630948197389442523923222804593944496300357447537831706452894249775922226722817268874793767335737780647913404091792280323829683619109281399287584735913306122531267936953576395785549606773426818594562622466029061890288148322517272169880546799972632380234125781862833602902036096993052942253255131081569101492160974723342705569742434989282207751819133130816893899950512971001812734242762073174297032607688536331168339131375286349154276312063633603653450706457186358129951344721237164028484143174917094477386218723098403301808437840071205289743185440598204205445382284899853131681914381041695015149073114976785374720205472696838788437918935076103315151694926529400889095912098707941969518808510060154171868408452558041848944903563954847919701523393208149007843087750708286225078149000625677936466916077489764196023034598472425075533962393107503579952510219426663169075795634600400570015842895833673704795992519630318270590379489828366835026008786269474841151302638836074183019986715740239859051009530465012399916488935116368403851538533368961881378149469109387476856112721278764882584744804340099871666863267363038270070199826428751150315929875669962583103174308312179836235553094140677893817734205790714470843945876430749160134778485106089373147877365260724158690923374454221278647156914102670676011008115930884836152238567210942232733081692956954609679027894958759730046285784448692311101590184313858542787995764471114654464163118975645227207411724752872853769474340595083922949364735731324181076226478861397197792504361891152829340575230960100910498144930339757027369851995699249362828572721636500816302700614153374280802460838143743642311882666633929557897617544213051731132924567795803511875000669563243561495246565435358816040513296849930278978396166417332154441502914343443625814933187713513369952058632689101863226229412607154166699191401094975031659046704794955919545916986691981863322295333053770553098700574381141573724908256872474046110962044698613626562669907758713263794785391511429080817400406488616944506350239214820352107312903003424792058352198245444837511473242873390516455690897089906477146040190165816515558746167546043943953548378237057860016224486723368864340774972926163045071329017825315305703002753555772688411521134034909623980851216211005092220509465492970008397936627010543875366196354509129820463825236693368087995312221609958826779105719515839584166878032093371596466769343893634685146330233076998765025798373982325604984512764556032934868020134059834139713645150880389602335616391089449070233253102233857644238864448627002398846269300496275846261395963580630023989091018519537154846968053826700623861075502471060811938485303390975422424142649050432243166267005961823583738823491483828209446051738158906114998476884171584916261719559608705418430975955832288527493471243554890572186110442026681327671974448365554561263851351120103041601102863954989843879369816765677824237827804698922733002750495292261506733248541506661357954535314305449754390658408960249735730789539806475573840868706193212680381114363723948427865768155663946959299670350649736870871228869886935401078658137233625743271422890419669747532480531900831453824471792098274679547013559029425455273371516767994210317917038332346721464311519490533309329120078040843939832423869371516489732900512498678625599430361097297228759751705072616177651688516576256371691624857920182189724121755536505340349744104133144399688224764293696931979126366619649410644958785053324683996000765031991006230830326923899297631972090020920271835244337081149169252689819816515095416507964616951526662566194444223095068189626431544659213435766003578879000546187161663521285976122730440188780062843349303083449041589357245603487792552204298712941095124877121121974429355268174585551669397127070982656406171483739421270329966728342058620893395740693023365434850161457013135740377631126952609677423247622484620046314881620357791609296153087476101648895879614255038867972330056673357742065708782435102254681731480997856927028240500504822695255173950298557073803275542341817154703980945995174149211297230167641625571290120012068449307226441359507827763685333534269381488313878915331556392125603668274484544610035528849492437215942086954409041850882710682994556478371311204075795657895485511830145488466183437917359779925170918608351814475045802139667743586945687466410232693270541761462347642819765312351329724272015581987721424917045602779123775031458474999352163356855206319706585175268763677377127096003755501627135249578644294872325142058968486688239094696505425523924420104245677369697265642436898186178625438907067224796206018822778803250728315969297619010708418624569888449327259708412379316727039652396120315674037792387479003925299134434554748009306332193188215649847068126279372760517150946910974124858282116012551538607822375950513058419232784182044961543491284415816830346230748691391513777473086910412282523363671143172999961584482759014841504442646361573576833371922205151168605021555512280577561963308326929825040576524831002966453541083386629556758184722950386043704263986586145829405095554104706638535442973296778619278586642931641436026588417990846346646154002212576468566528103923433745815052401141352176652349069344538218554037403635539084149152155165333995134739836224028073226312297745075684799733271424157213807813297216924760889350408643012385749479118030858822040380846056311059735528054315822121441155640245756316601215773450277639317691670658477997500948679064469165902798588825089957446649027724484782896775475597645995195758807851835111178192555967908857491413665002489898450972549748954617955853118096297481149615154650633315841204688320342325126066373552518519389535479983404829368711675376763855612956022444237112956529097380517361761412312650294129707548573982178167763363593827028733639937050558459512374644200506612951234413895451917378184125807949224610287039731668071792428816868139492749406379654257697813396793250514789152490028572674424234058997974646932180407408279975189392416437943816413144055067984588334545408106410327810755014512909195484363413144666639753502721710127351216587280095406135626961435049157565825776494800850020281964222704203522357219852412895218499709988140382193247752845005253645430793894874107714171112094580579399592347941820897329649713049011057713777999956959429348998644228569601694917581066032869644793484642557331329606590411526693289039175576826287917032261972939683344938232730228545481851515817138521087595833535351488929608545206582527149755340773615446650903956350462903556806681076661321346334780659251905506532647372877599836384831224204369033498726018865925979704650990689262232660639133486964470701532780793960164779552301419756819748362458874456914163023717570143963263929023263767382195967087364244122317234863071179649904929419138564755756398584220729666129241639336101784805884731123902829944943821915365100326308967708914479489122159446025218267609259817217322990800718643741541355159394192581503997944661799438397170200524589613203330952556220311018406669345030408137577890213321975160705108853068444303808039519737941067072435437770806135512104431230959319743022696913598401615882731826718608850622739770493040680173727718656989724721846500982488169812507990776144367144808970449406370995915312483278135303672768177184173661240011419051800988964410618594853127699778534082476509838470807113974808822679267992190371046160202536219332807390688659728980372835372856187280906067694452169639157694008289577655488448040014226706102028029395817109734057185159776240929370899153310713408740297960029049836366378971532283077927194278857062248436028410726344930519273887149791886815928202177060056635534826525349556493699766956339592435421370483854687245474880317989100351131101164126987275408148545784071373143262511166175804457226279207608467704178698820839844815756485759762997108815183905178304622242253776686706441436092804970575788231165790676269337237998120998464242493917490037345835660002331867073310102052134173909872486599573424694803633920018044756155258014125940915667178142957387657599508167682057677341781454260418429551794606051762806036319351147857763551046935954739900378380042377311697137256906479794525467940194264552006045329524905429216761495015359370490013833468650891888197578795134483174899098271441864619172782749312210482798172145445480139271337216819037357247407288881078320162728981310049885946123624423389574837390381311712572352888285958278426673625480437495573891471001382894124329266297320513479700063861019573178103815340545027886632583866404638191593196695100599312056154327796506180284466745822975440351644466880931473631755871616012292926643951068800195978518158072576605558489248884342691610860956729446136692635534506484122618151085894915762415546111974306683907443195093314724875683813045408424035640183427866950871917263881337092674768199913803957507173101322748097118002903031349362404031301025727497052973835862305416108692519786440906706849793123135207735822286882541132002007303682505629747524771192285631909812298897674931517685615697239250971601867721348744148627069168444070377754284059884372889771177166190786139708928369994513024135729385871052702293263300245954807578756961570712202614887532669394421896384956842283992751117883695032772617337418760027941184393906861424035107125314108388901845377115978087559572253477034158246725266941840342768054998027740923063961531172378085192895231103884050834250391317122353159873243450985190335256475559183064664090177912740263055707786186524471584932764237842153533563534321869170723520584021370390226311306345630029939046076961082687225256261766592462142070043997325017675775251684974585878484706542938748654953015244694111322449130825342945497714893288334322962190781352286738113750687582280363367417089551035427686916878008209273532710084422371221106082525693124915924766011832017815159616714209476967686751352179615808369032612268776408371214194656728981295148929663450262687199252288604035111504687406566153399235961667912997966160161554690567667289524887391751469594673677174023880382203041225488045057791175706123369384013658394870178354515303522647031469541957430204365165692121904280873380689546989423589824773680742051866872524750850873751565741558186330897571515704107266100265742272042370396257510220704169140225619830918078004222249200797372135532827855634282419136511239720055059684938399898294734496313389787716816343546288789306766145670152714610087057183339077578376763860512491667308267597605471410478546084568438093819022508833521993108003306725155833073360032151901259899483433067058767145322076056087422791786773011156757641492572852404101395734099048028138673686789053803089424117869638615702236066887556670025876939047344327976359985163190601909435370263445955941623856192289446293460530831474032437748151282064505398058235330830788505668933550381276584896214612800451706997696063011764958510729797964418912139095850242434462600990529727466620040789035056789825516965915981535853259014251109344833591710941869360819416881845057333640106295625838426868548204752102415614936084951159885812887436503254780384481757911492819248841386328557103562178852633225001048665431445002257391470374941978855514315501107332074367442288270228381119479082672448462157991973229433462091163961655980982470834354939933470290475418596998225051510474869679441072237562887304801160484995168178134289788661844524933955348390863283131089486661097763022017344965009945568411447686228178308462885032645148946992292875044330179267491304013725021161263582559905651520907540033570907358127428232943559112287248232652956340001436184884203196738997905122492861499993860664234146686366622577071085923621801743104750325388917557049654828603036162638454208117757497904394095504422468060395092898577897406392854904825181303297803070039172577613987508957537597299108083224912164727046430853156008333546693149253857533370124567417229066208983391993680130798478513924959932660134582734851389619630600156809521149078348699645719810365259854285482982247460167221272052060860847487311050114526363797163806866125856217485586530568052041116297897542833353994006245010100037860729956575486020721710514733151075716219269216398413206887685432562500309624573685750447754381402670023256974149171671028186618612364591713514760479879806912464621729273259989317594842518237744500097318716194899087110955842308772036464754253261367939717788205273960253457048496623156524750773305270388236021354907900756672453688148516422939376094763291115218392289816299548104155776408060493832723206637904216062506700008634591920584322885372854428887593705591844125675398948751398969606191879599971479015411729937850536135784276060963307891261426135944300447444889182988628447991870617732696152194874515261902129163467911878313441316361175332023287012348376715772863854754005445847063996444059111199172838322350044156476343721416137718695082654929264590246773347331187926689284060886667721613405899903226991440131816746191033939042406560042917843490990673783338564326359554835443237067227344915954659113366001362549901280136149348356408666616142702250799692214060719252742654612386100325160688930265861912283853925567169565390057109352434297720448554270835219253890684730162734268246788419696923378959310914862259016126933858716870610088184474675539793097537185997968988551886667102333820164348755238044762420021093614678823137942172290920588242095388298665463962615762916334343221821120298447991044856574893541406686652091840504303576412402308359112234135942256624736761960785875976424476224134502121093314530179804679790675679081117298168147363761091887824771919623101401755580691819881699876300540223087342760658819671885469093110557052144922251104559342373170993688251997557376390348545784562186471871048780801507695733059136733221648335650687383350227785662384874632571710347918414383316881440424637333817708234242647326268727507641964890054075250824325642886029332518792802355087469451625963613708516530454578800152679852443686339935329358459640169273607145062079469274197734975929859434759606222849706179460286918212623476188503603790953921836167956256319001780386210887676907939515325793903946808578456601877438566313099587314334328384997906032295482359858603587537483661833288056348721993166654293885113939924264397342982013960386095104854710543881341330369084853450689632140196402707845945170817693392432349616730249262353837370034975866573203679271302844347156330177169501787747385189092177423810372823187358773677094711176284301552251033278882876807891369917839150681156453480393116053055030916544469330687431849181140789947149030757450168369249901840884541267993939297305561195005049372742157764675184017829411142429233995402542923737745713450083913884044584963674681688705731162855115423919646236385791077954105071489729863957777802970910037089814979169313270890599062644272753723147527000228795635058027608983654094081161548399954563402185769226253505660360995834808455134158879881589027449357867024321631319819435012514160715020802997731673145850774347040093584218505740083870316880942376113130688937641319277040356878344436464261248200880775982354312592936682710475000659438256842311100726146041455072380538331229186107631551254030869263548660375932214291079661895845804420922510634839396544834048645183553906545724302678380520866807113317028065640596824755688448037440091559983035966615965407575427801726011771243114455584600807699022428127566088158296931316453977751145102303006399547234711335373234691394866612594682163565260752042836705422619367565595527801180682882949708016450718476039409008199416181310951884271628098108886271567706822539094564879706345439329567480431305770352380197007833910654094167734035424333804206497647058300672702618286642854080720538424337555562879800128793844520871841960150700161442737777855075400938593797812803661945500444307779133072554292163750191661297696694744732846029879668796939886532711294986772170638800430284669720643093276987053836915380775035609132022196459296949887473921794417321762849376213358811518101451081345510074808520260599818451176550345230161837313782750528297573373961864658535162890431851617163994502834616623545077551212485473016512800274339870368042916013318537789551416338890224720163254779689654790967110098118743840920419471659256989202208173913354014497501810277834647963449073263657280889917609927627872021583801184481711496317455900847042130910235623258095965037342443268068087861392444155877499451687343551189729036252864166711121704960464237422246595944723340576780948055289104484093543881679007699752110644297924046967658558064781240606367816242192686694163897038727414067914224546141660161318160021685700442354658812384728263231061857436545434222529443893163194927952789061475360754771493329369797950237196429702457656929812946678721565177936804714305680352718344431627422479762525277040118459552680870409428295664336386342961375592807436178649959680635620461988262517784245225929491268074495750548361861938424068459196600618896992979360090399146785664310178249511204812279947119628915204852453485207699540227580841971128137411484969327729434011238287817866606674674491128691001274874763396959120005626143481198241571853183856563357308851518799692122572700286370793860402713541923167022660387874463308073889808147551315324075739212698157352177915517487760083149506912416662507524799516464998911168821723880083528796231210839605069508665670151982361692913806828013816850902009718814294997681473880955195569871016370190537397128156739437123773550821670385643477796193617674774283695478373048170275819824832854613421409074360183693190786510804504770674114755390147045609583214587476259303341857238758692048674655716444545883817544812859334683662643244290044531755501923682452466807490660738628324475614546172749460940972980372717916735884136149592745621584917557288417331245428333027413940985819499324624700231571230762861175143260899088394249474220999211689914075094735567842499296619446704180648652861180107767488618614511206921769672104128511465393909789231756707100343052745436218923624717677068118808988643593740855705492519538930100725140438216909610783942028680904569388393235957694414383101859557263350841711861812471784093208459349592862906645495653137187495358287978236665326514906321293639761759426890993052707713382099157578273155020060320491800779366206546464777603091013150109547463236870461609904897247226257408722349579181066901571303623702509720416229724735499861604249432423955861945764269119886220894760932780372846705026180540968472427863963295199799181986448892201453568570599425077182909610575034361936385529786925077469032525199256555284583394256085662486621843566624608852194236861706399471607931962882004720979348582576788413663543188237191707296071037344819077906728706055185923647965290454243911200148401245595015458112175986793453759895814126516799138022396735044463911258619725168071959024066669303483140830217128507233707711285731450025817396105879225008553597168470565322881048503752135500371940814287979068333802926441929830263531457385526104817150246038767708881918067619682772029422204331790664374754771216168451973836925640054117265206020968315005569376006298820037348206712401412575694621814209979164911838783496333687839085289134666338925789965106675985323910996274555900402886467757676256785136418976105295407772317663024748543791571753729997395045419072269438949942699764861788725903437985587478090983546178977878922644588730875285768419631368085468435996249397932929423309801550942992005991628628293519107036877865096621008259952786983530695822639072911406226605335887694136477031214190812178127065572118267285645374125546015932558597291367293929024355311697024226828840751097145951578821184437614460591785922290931628476700040713782079447039150594735892731409967221212404101055953080303141822749852080712676772925711910732936311350876800955769803973582901627582853518641494131697750133014564085808291026784824651838977481685723323145498876693761694981689950231838989506656560063593764972906068700253499122188167807268950698364987481109842892678308391205750452164895368172896873099716224218569656546001969441847470843162566507611650303394465384371650611730045375405102629075320956120767663106290493840036877192359987467471570276172728922234286870279870010793614928280291512492404808527261590007390030786022544458968988435018288543530233859263501537585712993026629108694196417124726441784857716028122779805558743397794128554442970794892545766230532406444332238613530968856150966429633687405097191459745963475253137966502978802075332943293711597644697349878295953949078144287355787552104965157167974028913987104247842844424762384557438249492966668290386810505538360695111632234353306940901631155616180525530430618066800917283691415157090342085942288967650271721362508520892551479967908395671575671836557238673683153920167749466089985343085988768512638651787858226995027606197106001590145307036773011637728559846001231439068843373644325766394746626343638015988679655723789852179917131182989162035835735610808813121046143925536145295987244813548269746517354614912819320268169869332315958296777035099183379753703601263098238605610365543384080915394021868501838357260604183526175495615185546940849526311261861199472501300978369959396360077646642560791624050691861338780182399152682688910105378249142093047588831886958640329006629886540493683530698869838886709564249911695521656181160591355242513782270494220559100629635321067454127986012542894287025216371553615732543533756355779059260643797176663249005302715032530510122062911499970243246200129683932608037689660683332916763933632964698577121827457412217891917280797900312453725453578658005568050845035446173964475280218476961220422254154456609329163748153579712186637789377748488655980504640914477389786847771559118896114096373451841641680107813506527923019805099205069170778724679710747197996859742729230312650794765416707455710542571469296488823363211656898026133056216260792535225590332924114695406879285609848496980370046499263602459760931079705705483060306033994155990173975181095018851265489831101418050782190565852856730533527887987591063288184114740484489075755795299756900341958405390227151946953465908226258788882820844612220142655175665450373231044771707797809461005383969179281304335232741181056914203281752039158766112349081034338798587093980313068556457659063751498043736871656224639773316092827456483783724516011149016887919719949012878093525432850176851967611893523733156254668499999795097116715804596469637556573714597166780882882256161139553862066419102176189710879510873914154339025043503070585181971234064948851206516765299224189295109252140215372526189880435365453615178129219505762417222268032564485965580447282985148078998597015583658231856964470557054861544166312316205931994863196354475300781907079160685931520992128691803442005056117625101333827684500930976597486983351434386526224307038038456222183069559819972720105423858708731438681897804515964263925066997703626290666937967004573526600811122623969128568150518560376905712291654619726867866995744230534626631686928602908423283646561901655570452601236244645800847324407797474936849616661813427913950203154263119748049663989514966247878698034760478020211349441038889472087310358430464481789045167000373011347541000415082202204688053418809481786287363110617357462026180271689497696324786498908320795371930718775701901177577458858020449800744742091085372432583380049371349573863360816606116827330987963424951572050697976893059354068869350050455758661216039982587400117950661869603766686185935266834094341225235694859776821078874560349286920713579107686053229001800623783924107724970898656994475838840663866163602047879860906971407353084455254961034105847131847365282811875067130393434521304890917741094898160320717751281151836630530296848220335646222203927524855149702234372995834529963492676869707868163126891249791631400440252792442520513974920820046255795216409376793214999120641241307994574277143536428804729042747454941022887410049950130348009994893722654100167982017815083971985052757461020269803838422308243388472022046065110693675582521035082959823795564608362148280596138124476955829727199570725983566262670887090198843582197385172019108475433452270869736485475056609833372235581059472911368927548839460765282266292125421707275274084293281440528175470008127719266126876333917305061807924949959448525874243362053831420700118491046660046418559735994902189409753317292623068691789475556082677791689806124073975372009265045108246027943202473237219674185362157210326673321148509852781823008617943555947424968381678607971274538917241208963891609235828053284407491979509152852292231974286005681987817377618096021034407807522996892127876136798399550845782315331177761894660226061332190137982010421546023551844063554212088513402096933460332571750142479179810087547584379605931927086220074098234744316667871507824873331274954406001751402376779001360456678162207755903128865076838123756674465336788972856189936980977389170916371330606226340582207834115325569643262774644345038245051625527823208999060316685188609557694628292197112438493820716480935047846480242994718849125717879937592369481352909093329132223550484166125126027075887734739985046315242979535767430691951892585689430598906640525997291616711530014393609070626687255964192700272106204012864472741059469103226547301073821934623191243030658624950431596195496273048668515156219166871571971278594324186295396492218715065814313474303536842028728442502873512657098111973477664832505781485698982341169678518678176223471805280771006169785869128857643744079393472005844197319039710114486669771054291413573774970247615945574539817248565308976138615150229412027821344239325455060813802312283227662612415856782319602303738948821821608663232417026561999001055187244779501055387367757158257430637466921763121378719215424119710224346547917067863409224259497548251438540485693522590514247618177389220295270927759517553646071790106288556087081692332868529545439147716308886083473555468824130921529629950772799711499064161382263644102497445360025851344611422236265125283268903361337837309290325867199050528770678586571174890092860302551347853628140320235867264694988626360053017813107154716433907770852190874230331878170454004696729955028071041984732777492818930726043340015283477169494785147123996268470712143169996222773663636144371256423374751002440026962000025378273854465255629010986808464416980623515971433190283335903409195423165028262776224410043956527392666308952644155110711404010309240725558129847048808068116421354205201556423040890087935855667577257739285829413138103286045992884352603507446499226221852053455151207210007325517674744213653051035688248664041543095688452006862578053500436357846554395613721402809631664143913594197103626337594850620028760811762589482002753909023799624400311186683737586952581162009539379256419519122380104300351569278445244517590648240198596943472187363937812701054057174965985945556627348558590711361186305303923767283652693952155352870063639654763873083433039024318802993603634450898611834202819156379250109908203534472777946020447451992658498628349363718854693669071100918912569655362363289225125555598712504332160536852472933089848413909820985099320374281424857358799393471526318702257285853991235200614590073328694370167964652960192343030502866730251878142698038790704035758750792095173038361757488028857003867538037957658721754901957877251971520520640611583419553975387522508592690851409666997636744538108812636904329918797085398477834627740464429062039137614138118587066040117494841115849576929926675686848859897170765935452504185770572048147829651700881217771130641765901039069954681266564116998024648366785819727702531945901829130815926296741721496448348240362908764182403542398473408799538599021356881371951799485550567338270047889094425837124852455181980807088396398996892956558859136063326080715189713904805605954325433453791987640054975849351318877117507641728487646700796143680715840372439017449048539275478523609709783474439865560513492710282625162556200038536827180183928522433001791198238578271369931857280025920379350222110570526881950702495321591382577226638964724598947700579330260187677125761717713218602261295134825473684244979746890795981738331469994193413843147942111314098109128711330896108844595850673863450403758317760059001826902477205882249181729520868780337461532810812469718049443213279569528195752159752794191823605641651735851689743246228450797268840893547565667738988067350163612107892214395789701069954331652666879466583139165436225502915869534106706176750703075641688972167623147497030998909276792661863995979532643534758948133584198238611204677237424158851745397980797894324597719819487461162633959062441282021730741630804150460262756852312003319261520939189063539626318122563509664149830394768996135217338088514691131694834018994230325709577083618500440059002039253981433684113800645118408735765236035586057830612093229818703894683158645857598911769784042910882672119379387504288072485418224944417716903224714348934496653567717353707728304220885614338433712834491652492522126667960052102760911704966534369154775793785562576328373646020250798731420692747269859616943605192619470135987731204866991416234113909358742133280904197946388451722141920039858863342483702004575313542489899964443337800618619663570141935794310143347042093281224243173292784248548512088572303989022075029417481769181871725184949098935818258854121485780014995646894549227814310011886978633659064385292279165797903395792006934100509945991310898699580572838454876106715133589932201356091447802592922338609485443919035697046430388721700600435822372289441144435134107439280307239340213770739794550289516633844195503267339149582760823074896328387570761006187530980189219354658194266655036847497665786208048271716705994304354956337632372497630665889126612630054783923931264716034657017199390067778549408915055681419010204952608411906650866220946303868568941325387353775450822252384953050330682088161323590319222741758198108467063964160814308907050057011119568948712479042258086661612240528338006226182278731177528688068218904778646857945491874000340850107659568717830115006973186661475031409191054992549302693334925213381896950752959866273295094733567509064783496835793393169834818848044225012968961894141711986710244150440211327266551692149899081333027548261114429605507610282757373295452044671230537798221113466288457701477925472913317064723265700129904008702624279553692042971127476459718310174454367480461696247015397502175240401411635585442698529449570515237707740420577472774506851568340576173326355702890061415112547245190982332409690231681698464060718429823752821978674815753535513616865026273456460370066143227073653820973729904019500981684119027510900910384062210664244223438871647671870774657531834782432941531407962299501301525161063327167713965747550126469274387361034231874869482900354036102760048735322915131382964544331117355154560078007865822414848780189932464500497070459797221369609610125972399435272905569811725664328413257175547927755259602896496519762700063916518880305575664521796457838275362613970871523379753159242753893899655634595238260353175258719432356232199020451887476161426012215198033921053457549505964300495864256840665066735922154423809905450390005304206984295507904695042509325152098327163280640821288454591411314258383905541096211177747800374870391968322638445460552521136891015223056720705035539841718260068882697634842631279457383156637916193829057278110194249179361885629635377600323770368646466106805106362266067532274345357860938445837828519385800566034195912275209322015859544592049748911137048152732444335815739069579302599026577512317160290560359321082843969220737970362433723072697790524007697721319706963224239191742008666052068074053691240720787906740425770553884197827117339787466579138316868587024629093908207742088067520470925625967777962675201740578901093250584551131075993589298377321167672304100689247729851554868116848404908504039262417670179407157246951411892039189923183339039943241820493193833214008908061556231260978337337975795174066331562928302099912047811282265400828361107889194071184821098310353724575075577577619644540462073243989814997893226912547092613497697399402456637107187488141364131060763519679787450418725862753002243866247763461202259667750186194445386121701358024587812049589183079424529887603973922442236803965972630909280952130458067633011800914754217823955315045439788961185783606465632540802412445525676142398163637767045010334057414176779838809844009682173439516174600337646465616888276702499629211132120023899797536540316976924291048601565412872126258139136621079129564709817010261654836557378583138041924476396712082779096239337891845847665705708121616274547166541885325768054676581058265819492316889194889984580257150960057992281261546535230756892805910236304758281829495471470015073882370949147514060422950619794450289590760579428514692071814966596428108426894596814640924612674940141223741607777398198809115311742751382746485987362428869772604421329103843880063173714412333847592338817814772556487408883597559843562316656821495169763874970184627488013423099668668188797970361290349278456358979071339550093947374524831199549458705221618313249341958889509393758787020429045712320354773913183610434380093253916437852510538670679055628121349486667024304681553874131886162665741443831501236488262736121212201170902995622420090876143299937454695499854794136775110902420893038634182126701222144821154285410754247790867657966008597606947664614975786597575302591255302286076116980565625917687015742481206949755855122084730712075066924583303827672680832202382088058284977698260434755526890112843669866125190584834646603830940836955887715788640600074922519126809452503652915653717867857418895020377880575592898627112055076820306346180451523188724140070643774687141418422206738837154586706612793179077022835434081317145307396889169296711466036929229109351189514096567089385792962222637958130458773561825190453497910807369390177861104445685614281640329597872701228680104706807472695587962115239839925129762432132636086101415798762872241188431900377454568806921202940070733418504505707692450565576827609917936353282433416115791832569304940313456500748718091935651664254596495378289244948227327865780509692155888182895588890192457560379282609576973681571899482101815185088176828429514327683090689422741295022574606364850495910591274970066794937453534302845333327477295215887645247927657227874715511052100382940455280089815149115056654379723759378986433794904682804951396702325206903719068155024837841108734684592692302150888038833282374366086252138453363796909422665047678565461135970328683433383279836693266116602455421229010874056025171504022069781292125114513166093139150931670489271545146908368068590306751295881041486692095756187906008141226519297319868656704095578444810309705100831969247821810617182820167614498630981242414918430077903554046230820902505898540225455961495944010278495491434542386577401341201257485131538858836645793691449278879866609295495456619540168809899798670946396478600544799858533774826519155825754251909338126247922776642606541784689328094286573735299070203887017927207659011681138273100490874744638613510169647645121060842270632597092291355495087893619552527278054955882561285295140714387298998553591843748846304010135867029970542068512167032162561761358556648667713462066359978739928080871847218962995383609010996499180501152495896852955908175637927799297731416018521361891524102429276187216820853848033925361358350743249969929269553421927827127964147101888301008130691343716568515193529712413995983255397847021967467485429842290290328840888168696623144562548036274068108168954697152978361671774597536755588247201191255901873559295993056287208895423444402377963795131304763127431907848585301280745668924461068564295516302175430798713958944663498464200379069080359295940559286317685024873717502079004394062220884233221019121978429551799573723066387303403855155167982209893991560778315183927533292983884645328238324497893447531980465673722777188400938756908092268904700254424565940975199295508053079547069272948581580876319764518556037531873479682122633809933720311832440946680917861544958520427408910734883065371813366655608640309412913587811459641743333707538414485116565495078696855193721499602239469635901365635167781089892428512937510449450121972768571287924773798437647898115023225375875984327403487786347431462595631022657490910841411613180942006795011753101971556569775408678882313430984859463286683073934065404853240070002135749507028120810269856094197891807830101186629621268463240930583634389054325665431257061599726117415591718080424388943096585179841440101340279145101762174702258677285802813715852687876617001368436120392903755575090361778966385093285540450338130693646075840008737187102098559178274605596677054814731089379237369095949299032718571916996283790838400227954733501020283481383616695504597854421227270456950463495898968516024040568108305702370331601482794624449390286122135877172139966710482935310110658227085643721020877586462432374431259995438121969700496173943289065607117695591521693291633456504490580370472852721302236362255038286997173711457752474679959145471620908875974487327387834570099837484359794164797462449853012297530447236953087375781279504851230973716985772616911649710668343400749521335348724515451043127522974324441469068636882328753078395976144141115279323489599749500553201440739385063757406605058628353036863203358133538958276091740986876091655772321260525951125914962852299028305941224798941833083454325569238530511545973213935074831868749295360709192633673020830353460677541968013879293151320315778557893301515127716893497414902089870721362060768674978168934174619049315341281075840400736524871466887985777764600390845025935723286541647757557670763193433918199301013907839499032529062820002194635035629509507080408576298748237353958991210462235962394053184685079761591495588173300297212310580584882284813295733588197168047139175148644506985363199630317865461820483382924231198744626928108391492012256641351009097778520355177066394690796952786254736310226298873680888223404500954688516225360219838281063165887274720227042044284772305869601502391779516609013579160659964221612021599351029919962667777971478087047239951067488964245251490006567128382212787755335640843825006432783572080495514469574117614679693450687132255124567931256943342177804155406289751725479670712503906802857015478624336030877478259015790950757936552274617911273806405623964819947795766760267380169709467790453446350224871325430978436939275002851863641180600125141968341218460818780690490165042368822728593232770162657445277059843348164357695818133923703604477605034819559767944652247036477990952299448494764289272145151002661036667048575684541886736335423108993976841446837495948655868714575644686694966585568859863109642646107429582774696534484919157700477287715095941135558334110619337435172040017877765619539976932098461168000921328856135616062054770796134069350228378782174460669862075734753611564928160612671413621794948805104504711335487664311822965461234652724612751929799407081562724333189939298585553355293928064166305656853945433674712200877899951210658048425361155878077669396302763196622782689718679647613240213388485584812876037039239902291452142919061614038229602447057327413362873941830480709388842214943650004377539158196128313186635299727414553723903757061686044156925663460939177797173050643094516740645446845008804116532545944110676858222544345969622926263729524942955065036400393427696981569687433663503354689340734895358226488925712129455154263476227849472058662951803072873931000905822598211590834819353751244274412796632376603650536546712539892883180636491187315689154225676806587350247226289858043748030084064370347477306739767180268963450913805253284495825972604687696534980275565919617446047958274553506162451638781601046442312145776397034935642034359859901072488643296128045114679047632519681609190340119039762338854905073141861078923819562595699730935189930072085915396467113136908831678892158415835825358258423009669911511880177806065444179333358929776213863056962235048722036524551109669084799085370474517952520799696684656530601258381038643973548281799969102291440095574965759940028722788985242464295385705579336095308624612675325037882638113532908511993202977918522895343331378995359407363244053961543792025438458460397887435845451302118780362607870613541027829762215149164949055490127945444372899167237843296375116487427231621512492957296781963942249083043385225245733152453878807989624701358047230361251552407016579678127913286884141786555629720822474060121061411706712645655503539400636386513560610611657679511475855100151811205031120530031130172384684791482257177812096687332696784528173199308564390361956443470099000869485379327806490063155681205522945888663858596028567328464025338528707643664921755220059860745578887794906899014964649530992547728387621143791947114342268611733395167032184221599586531624772121538233651860793156591419730788568593927868475447224161364453315773853618296291292327704264119456856948823957702700431927026556658378868911775034431109450139271702306834640117633498960539885852222205460777085145970152709530127119506924874291999211482454141293272023974926945478973538691961769376947640195736989881386478152493794940749975814717892755683711853425203041058020973304378145202218752576004522852767598537122055036148165616967925929605985654822358516062493309430576763304082234436333140418899206652938829246689593978878870598847042611230636506209765160959203393090479331824036462903479021422664548525111994398451004724395765570994907380161694733290690642263969526122487466164520127036716790245379439197258790891090983237669773508292966886707575009041991810720313572510202967389687433484776465492969290186023832443228835821691947971539636598920341554016012578933900513719263503567843278804540502147567780632404631681018195549964784900813680211746034395482958737923387543643519397560726856854951354940676135965882300011357426668525368366762879481264390045875779972854182923120272209936657137907530820892970261690746049159451316418393712301390366661683954116629902303886868987790141328548593153695570847582441641765093607855395982412015207408129733909384787795118688535164962408209129401256058467855924748431171528152723052576560485305595231984833240688645910758736610594444699013097289899622853887581223641579934009471957481823476358827685199129020779735744514413760632520271331639663452739968680548109171376049871814494523183561492896496125152107339386950392839152920340147296206647143224550601468613355604212894123316911194590983380897134048527979203670800620947937203745783215154877089341196176724451510317990192250406789661238006637125268708481513576333230457441117670634180213066052493617549590108998483699157298461754296119102932200904276398281283354194660393529676928027246130856609347871758730791145437731866923441147719842470939039321217057089544342653555989420539171555024495299186805295485799228744581861923655383484433571447918832354629391544149320990012347337589372298760753294114135926912510698172538289435356370188334026965412829836645304678806774104742855632000619467882858238503605047108721862586834259743706200309611992853996880677686387188351860524172539467698050453676968506786206978667665277671786485840621353792297774410166345228492262163534817926380409098837630664283964388989768560716876752605552728075894850808684496481071306608448866131137213564970638912394190521337956721629101413598549117712384610831344151728922271888029930872577285867026986480752424252421439289735784879981136859849325427204928800397929348859451344839211792961761086200406921136185531785495271665638477532739245768907319078329421276890928057687928900866513860710023261622728114352066791219038993505848804641367642624926178074140981844499676556462542829794991018940492006818480578542089688918361381198043236669267677297962695077654131852961694881998667132442323890942492022988501704807594665992444158288599768814880609992075213729126628419570539566459399807772187736198631469323916663415624681636135448485234182690945418977029658093576925310440857208868440455323527811069204014982727918854139077938620501282481379054344690127259492552738193747121039049726208099395741637909130002497076746243271188758883737409149895724230726358356963604177845977066338395196721573890064137585996392581757404161615879892387033049764865907491637985542368655328417766141524908832169634828651535322003622889265554139731784147080955674823840532899024525483349366231760284254700508816358323209369168596679474347349384614140875547392705236531843253921965878955957504325272155308089587212880473283240662828056337835713930378034242219813542676921392000325137096746806890257175983461244844822968615392041346743886437761111475511900188518317785651825773616545938828338895757485361904074214623493719191598982556295852663967734773003672547514773437869691184662636499726444423126816668060853736411509808468809615809326611291921868203456017235872069485880750963931023554907443929712726316658309549366269291049441218375158588622403615789846668898715108690930903172602459087889083280839672447120655781494968017668988040838948256668864294695688025802635522758873713277519788294662974262177607839055567049325678242084347848290736335383027993292058774716299109714825897117153314566226755658769866744712640595686653508059381686945486941371000674147372220332026935957285912371470727948755108645541631722695695108739483858039796564846412503191009866204657600721243232925062171630145606949854356213047282879999451580436434169460365069907269963995336814310696683281918661044729017185845817280378501197180963074245544086129855450349993845120497071103973643526798616157241601833391991650856410938885428672163401563743146962551659620209356967030556783410030393813951783847098750519571482699024948369529582719956554183669500466612320954617532915680674043401335861693220914291607676479079108396835411172219170623895212219640535436649818422375021231674068607953574298192821604262183706651963227886607670903582846714404298454481397923453285195670398107893954373950834885139899242991428682370613918415694544116985685640642263661775486609904234639864921197865519941001478929360237448643893876361011374160563292760464102805278137381632936165612467115008817228264470981377598846451568283044856686789777815483941013958602428664024583342542316087631612727433395055155729638904981192599045506932594556589536747856887987423803674112793605443037791210059869262298680123408107709627743988401364786457198300484426607024650257090153619561966232388546332730513954791468974425192498714569555049344197978457198730259745091193967541556148018370934185900374216030053080112134508797797455951088763943774654369315030505692442645250264511779628607408309136798954929889304031027333991599620973729518071781206443511900457238310564668913484997773725682201340653224767191962247762960967746311007791017283294737051191863950178051164964807741990389190636355110143539296091191517928767093502598111655893459638999999138351105784659709448071578995464438150893706103526359148027178084774995909682751453378335687596694828194983178262330515010271889727554881488805912884097497935967676914176833677250420300758575136477782858332728806636540577108257386065160098814094607941142114831401103371994276628883092288037750443468276692983954900277081536232047139114477999038929969327561759216961097599593824390206214128028473786930373671145053382842446480481963793968920042250377998687506200279761308057972142125131841410857976168476314854610319166073157549426654663115529853697041609412096044335277114818045238068982350134032714460861969826693988019247104652897791306217819571042088637832057023596189530520934203318055230588737973246957099404186513042812836740091002371910983969967677068970746014213710844249867823448960530607933338872816780500557098855449188911768896873979667537415053368214055073665314734642285730640245207072276913833757014011487605959603369724973099527519286471088197237050073996089411492355488059000157217593531242968501595205914054798287028137400271272285305361492223979996104615654826927642079611185505543381110867851093066308163183674152439202263865449737516935259385529382089609554171168117375798607800693996739011165612961693432133799260180413066915781679118968890212685259094391104549398763129704570148330735633990852357696299658579351793872058551031478681247384335366738453032047171476846604380792780536711114050817711602096918816011075669535141096088620780713280598750321103871971035549797220967103577718777452958354552112641342992556681246355173833766679746738080332522001286504073013150652371219424941832282854812011678434581418155305464944829939039975344895826081103339773557671092935187496856044529080600806301254766487439218648056670260468466084161902081525367948424686936074308795884217412201151936906843589684759032426406848458816202674954119305444612000538177162746048085939391484779403501857644714804958242073467482163090050912776440179890720820785314282333438884417277333473427126112435314911621492245214016745875320883265602841761318904796505569505925423468829695156650475705251365420339360009592467877602396401185004457840916504687407918207861446550501120811164614399192194765750989327253718753761111118246868812602333651356036633297782840997998814702261534445563604129006841205363040286668512569303930329360474135194593281221489727086727000162538343554897886166538836156494035990024671066698887798696764295512392713028493063087795661926084229236235790406444415241317067770964293527630867627142291585291294962669639685073303232792949549749438780433232244230192818927481397570750934644481400607364758745465290908048683073656926397947046018354413004065838503281894114509182361767319387057442666721196562114110972898543416054169006400789184561900612010194482354795100552879380954755326439667509632743870283167552005567309136917638534615804509291160773822402092964005264706674619082495799165297293674715533257465729614020726016364334972727358050689030761090071157408523468418523570975324049857808195059557377833291710900498574085830494092380184106710747876701194408839254752225558037711620513652540738577987855394698346823012419263090144681483928513270189013697041869291979897005086915035695456698521273799897726188295796880966446766737886290507435261061874633127159475890458174353179369581758392240103395753555666221417289036359056520512543763945017927857294981289409228246115416885134790790649092439729458335006162914752352286048371448971557835901055786012828784793275762239902909071775701087948089874155973597667755893681605152281657942272196701103359197531083806099157090488302909119389698481403244306233198662697790926959635841104057593193268450276592174219805669544766639126656367472488944466255813736953112645834020552764083064722186010634900278040931788169938508549565991768249574626424844925761094329935813542346510757920988222235940214547923995041885294726028874180639370929320259943095396711807762973811429122049954836361530655000475339233306030606000112976880651173908504838982291576676083046510468590388435107668318200587082732240133910206979862152843151721957933985540735211613391326686390250507886705134151181619142349890828601854330772024720606822889670899495535703759764872989714733557348281176571185094631930598724984498671812873282731628011202650845302144968599687391657370300130337738427412161703391998878190647592785222548190120786922398941262446593077593970457215788575821289730127816934972419903563827396733265251015179603384831342058453255921699307566719294873271207627391124035122212135882440026878210622951576467370840724978948683872354059361472126863731064508176599883252420487075923955615314728584042716211787863257477915603051909852786413154300241907219293388052152979673178774122625593916993406258285589425612402229367552498506466117017965801207015110144011582630249435391632061854793104882605719484878797716066257746913579672452497158725453178804710397445334458349359203569362396903619781659262671979368872265690499540857514729865412347289754320475869807077645607308682727253958495291379881344380662679068007823166296175067316407290460429002245234066178799217121814105411235713511626176291915562186631185929579976879641344406740030520024112242837377380292250637464944111053514128487781084402644250497039263919302278028301218798966026018476815604617027035889195003675317851410070311209882676900248431093231565378396450127790943104561329777273566582798181256006721186101093257724545039663544341487743273666442119075332531993024781647389299449317572408936845534777572354185112997435428373145537897676389192368024476680827588982164051894804010192275615985781335995469428293390286428083236524234112802240656927471135258456598676689874794177010957600835574408180163952461206501722399636167361695038130808238114084997629234736632619634184335954068615025920372023659914997947347700008396302139390087308417958635324919336971234688810606318163294676555428199883366223097961039450239717080054511233646790793899161274696381903484218752862049123980722796071698374713934447374789390965888410161898415899805158582419401428692971719587780388569292773169533528757493692951155954358731429976907536661984330316070608037823012696667006668003177959576761841159727186889944567884558284294330236949939291446103134110709212715791996264686382206094873022768518270883895072524575682937979016623289693581615659983822973210600653618146426587518115316342651193032371808396528806781203641510140611766031353439360460675701459617855624675057132468840436058266763424266648698057324212976405417474467326912194125746845948836504731393239747143538792643873719778021270700037122646180938686297185209252684768515742155992553444756986393927354759598871994840222374811682963180907953920485449510967133381241363814653456018238466099800672780971573967070266280165076083777404278572694237432342633870465164729651383129077709821491114680788913328515841109956132660129342275992806922203388969548675878621025361116351992980475665339476790453550023115580490502428155085109084977287875247902803440212858172097575165227582503009437673386190008957013127831187666045918507421881142615879855414543340810424830206714164315060185973637187924753882488451093780266735266500988473186283639590537070260927417543967906451896293163733740522359259881590743766958278284304531014575871445768982802591807669813181592813778359126084543936980997981897555421304981901365357962812492854859777826339112309420671292872805895990092599095799160918544920500600185928519572853318701794614259331009374003101406503310927994096490296267927014774926735655601201560470626396098787396203035271155033159588036176973763882221872074077862708808156288226968027835635122115192783090598199924533507768771611835398029708084960421002518919266488792619524214425007763593156184781240017283409962105634314556048576455500669867151733297874688741785742027329083495175809560763027760692471663371905369323682365126124026316389161392600125706508545315845710003300716489093821586052038794656192233094355040443396100490043472054670991597720026753872963897551136561663624558865616484287550821943324546129593550443915475850229043320070711424018782965919363541738858730213330790975791529300806647292177050095005561636905307242023397040050195267648624216374382383796622371281786222536243607444596804121648636936819500604920134639324100076482032118116902752315401019677212466544346976945606905251668804984102020049926702045022234988024218363721675062161886794202335340449843317120489098118398823219844762322132754190955807451662800408870716536768673885745708075713419378328264195468180825856135171317565272042373526230913399195348495837093965889060280028985367072286187290703967877222943462305748539336846029165266184692031296712272667363727406871320332385431991096989930179330884846572145367150550201675961145581177793083833729829534636986281523823018519361246744521527787085973001533152313909950937647080141712900198157427372996859094075662742748734885055725824434776724667049875753219713664362441802247194193812053860962417781286902082618725376349003435958828368064063873445406536823943169083225740642967919835379084554396438616803980786553038650620918442301380970140674041614220239403974583231131863011697817806880671663350822487696870398688847544158727149995661662098915337267375157230586005954097046723342630787588410104927835973516968145503106202057028112474273607518011044864400936171373590617791661076739409881892939308622449529543133820995466812386720668836701625951999884273293675510942189255257405416757577610315447307528559905223720048579638839584312924216681543985632642479408011714853019551905013968353945411127828904306789777147871695261494695329736685047362361843085805866426787921801512374304453957572096634484862074091977506844610006258537147502180511973580498732442882952179492353817963952622318000238726276988947404080079878525624395914795030832917028540667650870240135541952703901306171892610728958458667199621231233509385075291746644265878922585376398751676146776555756730729674259958942231095451960226539444771704389929606072849451998017518547229891113284771256273023679452199386003950484101737850473369431688888431835667082046436162966246704932401753541278587318967229892569442985512013144413919696406712855003921098646515330462789046114044166592119458091123960849839835127541645718333298947474941257921094442767026155555489471679852677699176929807972920251486116399063989092440665127203362134665137895959791129578943567610537342466808108740132908888109453263804258595495750641778962371399551243718388534747636037444698726763368362228931285941958071933001778673724666775677935832195698825446256626120409510298308305335461735024780953829199392469724876557609262103583231149696986584858030137954404466458621326717355356478757400092457877205241615222787808230382598850894230381879547306584423941283441706690885216376724885651169441427695959212776195784187115504833705135469780819038552861124683131325871234638983356317980062869604113785345548772380780124027708429149056142401403207794660224879634370401850263446934440955907854699643506878853945714521634151171575529406353092180134161053987970411295642126807074475893799632938227054078894828230348228141429820645518155789088415728629236592648111243117074146043322683649453272982061879205911115465913636236190459853661436300329624305112371416358661555321529907099220541131091249334725320051722875947358511917043150496222893609976329767835524906243288472796962590743533639389528774623698537303665971562757566376655814613790624262251528769620466442258616893240460235667165737700533654026628794878998785115601707143900022737552660045041502465673609129732641609426153861266382851016870808830601030630944753943056676128868181761471694536797051907399791887961159294526686101221097361426163047001051604827376028577793461822607829488748639546464263947836127123754981316535080007391954371667295157973195978531252504037275542026636488683770565091228834311591875779904410413672639849200704887749188372983008115927130740739843073179937204725632085719890039138134298682486038328707067424708058094900374891062025791108096827883479012238824070179397167846629382645988388049333022071298083098343372958157448820293097024262249800559467512633503454440425178065158116328093175755244642197858700897404535795964775942485342192203100410229464473963460825060080383805486745351220669335422977944289665810426203096621469624883027748401222299068194971889356437098935581408422451589892771179224222093343855513416284770389204751358917751139470470537000858386075684623627437292199942789037728652409519336377810141038696134235158294164020809164242734836388149328755150358585127922474851665157062284976636435365102977525572540886830161407628824728516926413969391409010464759333922753187341005472069817972291184514616445647078178186787187724303382047904511793498927155041754961675113091823290213694580524802798472900914532472872184391435871064528066448267057506959237740711649543881501426079054749794950043670347545236857641351554444274072168292167456349636693300484289575568747798596361391575981085738214693933987411940621359672950393690935432650582081119550455344083418525718714857944555727985305123360265052627023714426708664479719780309550010125318889609390183054057425280166496262199363597894356525677864345426757770653077534749361964483399062011029625998100870220165082837437056851163761051536019812149832818572706514685374725759506412572684536446949763656744089184801017200411945304594010192878602238278764173438130830296731110985129472796178797592539522888023007310610177544871074542893420120980276875760414756422974199081018208517595932255544622473225774824125912568734694422509126080358756454629964435784739487554760995771981894645334970909755520502087168456310051470499708091742720763834281854906400676176690390814718600035728104213078720619363272320676056629954916217313531454452261467589984195697365228407169007536574399229046567550488295975151122126557133849032719633884824200508812600353078400955046018999110295378886807050729154902033354573365941246464888277730638928674161140828355362462682239262916606886820527107250189318856893168776014527351728290779050672293711670335523872776057788949181757831753481757384438258253006562257023121197033496153598035945392280649956094877744958398411294354963704516931819945864469757862192203893701911949838171470281162745779573767220798700384281129963992970535863124562019124516855471337536139709581573065277023699572605569636320607104266706040238725916254699984144588969307082658250149547626017869133412093501382917913861846242423744751446339331939506541634628397103645866555893601723218362522747401867515436594572305678018473001716840835628347252135383321403203975676172073084797630698566072599477612945082506144697328135240709378301472071312910206275253120302862617280582642884668955390988397266335588990059637194737183805365453895446409470812588772987014414704027223920933314402897579865520334087597672917916141570888902942878007335011294916531945865370856968446430319139885693036155829068275110672075886925776207673837606846741085609345192960596780799712346256652740922821452466871817995846627172138422242582523481905426991918484917470648947102450020479657188265543540521323390355163647663380652349145247716897324147488358751803594379700654186435189948309219665880635768693120997358486378701420559219489702469539841751110892290938506031598404148677223448687840145209617660188234339655331839216428594672263446122677653370378117636661097801781912836604414328327720461530042256736135821008268970338892502903315165958641870544696335536213862625021075798997465800055902988031051213445219518013478379598160675550986571232889381474430122182971000086680761493447648872968644046291574346034162517001637688979368769129431021996832795842524076108845990067734988514333299955096771437617079045253503350207953895180272992115390408806033358099427672868697147981724028641832234306983350486911392625710620204084591675843822351013848510539478840913859047509716154566516511167776800517606785143166844793323147212601397198709295140735616901232468067718221147263736890204923982323154904169758470198915617287905128723835584735834725592095208419760619343838505972362959364749039698358508939432777824918534326299895280814994681964031982861041174255812230651008955106347975907530502134378086095726969785278467093417388350099902376542326151744559083631799783187173181797507875595973837424546151165305744377640173670211521899716189144482357811451120001574033947917613968044606538957233794945151307119411110918970416181883932398204551235061005953296957719554076542977258762191239211877238714585028413689846137909931427180725472365500876072483410086814839811422087939404349354182693693275510641125074498757350274035664638577970766876266947183659210953856680614220159135398236719409541177127112940342314889624855017992852510036830475475611023832935022723528326442645964805293580928482533939011848885061538663355557753630544883304968134780564785989219150088957410343426685351315825917941280965176168494055852756368242601006787245504960285824094304848323053588499385562056339969079881291733562770178651498311447842587055105949047780413992176282942311465013315611360234095982942415671505178555508510237977172935115312889017769710207634943180978954776709955324628052424038128677141176451427187231811476374048263297561008762302903369916609110146537644285981075169481957926935007577962893781955953558057613221819569406085632781813636719049572511843836741064195317065596170917250405457925948922942815504332147985227932794317000520490684364240340547394987164376279971978849956089798186949647679444985007159487798242974368003300361793988862079861891609454331932386781741168997410031992893406331878867504863023316443126829626267581230797863246307710835856439598173790488615843158746062667675224709294031174141552438083293887104189407078322779894943504163800147779381517173583141521148858015438451994718199495583989611471206894394027616270733604181865903377934249706727267943288981369259098562898068813420781834087679577836892824318987500209622076786105562911327035973861278353532806855776139639848685036004068850135841043852137861472448061830663034293142067818732060962480100869613760792394505789324003878409758091418938473794534333424161992138801682880195050178807735893906075691751750972745141058961015826724958195939176180451049020157911325256408229453485328348816199523183904564297595614032886067460629207166826445574428632527803327386728491928270664611139491238636476472415239286093211498932363528535146119594131173779709831964656977622442905215748542255522570680285874950692612543039131475377741692475916268497173050189569057333318346481327079359477010493304306964545331927856318406378405598551509105565129343217288643726047042124908675934015512310335096932189837296498576180357798132941869583121021002214875828642032081627432443856469853103728944178072859773412438495729765052468122775624718250552274678052851589811003846865708169438722871728842006866494019997188913535167263744654054773036761853146817302306110766111127589628452152252538024068031207785032519208558928005106457323182516759724784951078439486045025049118171312598102826041582604196606221292944158782981406750267477180199568992208938558358007373521040554366991265894632068571538666815950258055095720266437749882604531294672358558886833486541262688173427036808806737662029681604272746085816958845504606350656395756122064358896385331107088871185495992877031287297874532046555412631284824271398358852302463600953756148401297964341938206996714221965234457509393179263457440017585490651241094135380051333024412319561165845212605373894023214286841821276785130218889368363205530441467039778417895723470178855283848094943087100054427896252185594637349399816123473801459403567665585959806785105747440148086414243710667879438001230906026932889683055934764560912999753357813874928142065414044811843509453834193903912436793858848619000323819501344935486053667135457096691923491299753620504960275318471551663555491038661126602154907350636962469128288708560488732224268749547873405178433514237107479836402836143814338865136720921261560377405416545395305617851867336608405830366163132281006353647089355227820489837631047138877618114051329666460532940594569236519586467259920697594182682516124541246230099279584573943383989933001017403647443839565142849155601538569794324116769618675844573060990791734338187106981547703068256565007417486702519137134615316163420971929091734878177820893927787745645466225778508960542315141942360230361595785470202819654255199156687818212704310643803628464295247593260814076327496471901140096066433516878144826313619182999365248263002345655401975855635397423108684901855382884336803289688029506887096967944240181464086070086053962610572264863848987680206668676863973008563551017437923373977602069666236916774200383792739554390753575348862852727180467620043169773306728405229586668804768473089495971472909042538076473529672640523508465339370873125837781299791011155802468795103766345146610156066185925821200304768130687539069648620279598553938743822721837008793903345547067102423226055054340706849181505334615778192252776603948934162235830576033502550366941472629192062287452289459196616397949310526717315391016518710614798422004910802128158578051500478728942426661258572003783199334519333854885485260255801860805380538108568400378525388626016168500944008461678207873441613954679818120085620676880905857351895403583885771796018849317300805977590508164266040612027147042231194783127767449821995598009475214554518307945177693742619713051623021488627407438661562947354530447379130422411325668836189735278207887476927975193494487857727263303395949814546522216257030879189746593530644550500922605493634426898658241345524336039960861699392468880675978830782849924107562680936790100967135356184298096460067412738830290245309658990713091927864973630999001256572447967610919138543710579673187073931272189643736864920554214136782331179313062727385855349955918361981690234014480614279585345930452658778453460175466470637906246132297958003123238551986161812981600737620057655899016068210260933896830264618009291137360026379725928087418689947896451751184233288974942156386956383772234256977814084790881293660694124374858380563808987009398976057908164049626313379836090418182754340414509749352856424176868307440622608304200625611788047827858776782236870021781829347366733014401884775041929994312873707421362509156212988732991720527823497526325699375575492162213152098727224309683688143771888675698752369579159138766503104471378782611132531068545994477769288606612022092699106503428547563896451761140026416746296817506837923564494964552589354501111736087208698846826019489702386100489254869988746298970251736636488608440648645764964542647306584198650726679504406210807894871961424536667130071338375815349832399404746393235315055130285094294196747551237922173453611155755781751371840619450920342251868143758644040387857075600780979950228929602768844761682547721170061728470739400558555883845170293469920744882814434565339590917557203733655579366565202062196173889779174337979560037850071592433126747122390153101444182465575855525429963417815788894682501969947933361748175080997473273445941251516129952059163356929921933753667469076349547535284380383071997075412495785155316526261592168962922267111828264196437950187983451342908590188099656678352242975604507401079443292145202923762335205064623967402924313248365286436624614268352628935029005439626408630219784089353885743475010712043147998060500909154075423960984167821628667840793233702158345366368883493542676440808115429710373145071413409499441600866878506424498199966414294187614083550553097828946717466572164451130220513542133633000880485024808941815413618428080625839977675994284316740856075469716550331216346320373675636391742207324557507341014533138906840540545386494966833104238769448064701390428297350216304856960251671374707295563475123103417422162169248439506848283821464667256582035577028280218290223485458681819630832084972809534558326973785328472762727257494450043705349528498891393754572456901538898330515689335735867840670921690787360982599993414103518711063056853657618479601392048448517336174425904367521645523328363430944362340974509249233670114048908570118291957232766360701071349283320648726292145617491758331864415515056029252029190338499654645602887429260608005077959762263390525346079164445875769590498339898833060120351448103784093236090573758544203252928463933879037088687546313171318535628956962244228013008784640760817106682834604219683088553604688612334021078886783373274961076177067940208435416273570302337142231693997533542391980748980230951939622597413514964102978237356117748747559284217042928212293313465765624841470957986561662175616083394171879971466299495276180722781879728197999390804711578907031812721897914952406614281052443413905480364564489511841375887144122993818511781391116881157227815388410967246517165246418922277784022515476291433508006890930960015546265967486618384271707845815248027244466385798872671497860029402010610776941649791159683561845658369658253056882135629642795374955744122456127035576648909354925593374066927335948059580776430603047300836928282186815508975311054829066375572544673995723618090247140060208866167107346435331605741752402316162474964436806088237302201199364736765063050259380011419272720595274947108374221404671036962702841079674289465813503238841946438422990885658002650042470572589446320926969168461728416770597282641101589834590146558962024630077222953600407350419565372800206004633667792268466673591949727808196367049189391082720617593242440010253088984299167906886876609910502340904248457928091718228212871924601199953478118378362021519930079439287861700894057349030535343749267468008362195332656199620767099860768787478968301228042644407832518478234445754981999768723866061654871852148339672178299603054596515730151487282427620207385690881673849786234309057887447152406245337948541943254604467069471898080553777329699124225291516976609591903963699061873114580222148893281692834269643063220616840174929138892560900407362294022853683463887137061584994969104863165789523411743739083681704090241148838283767646111201089560447602576661736770312511149896624028236919166656757498129646483326770008768161404699011389515345431761875765816556880112160327973293158527069298214602644655394295981874660644657789055158347011636277314984376688729056104210108090546359579310204527437408490240246325102240532007014083992615392457928686702713905770892368562727106428460677862378494019246119974694888513786724040384432390128323256655919824596661477075982574171997398735742273557844202712837527260038702043497647492865781740966762569329122015976162642549321585719081141268140011472609274225333042394922735845841282335054728289918805653852817847022786899951641092644917994263601086204580258356097923882128428654671843105172033079476154764746831180177361133907322432319581068493405434079622504861604859257336935133304441241281927621822432757660866942628625492212138864013342906306429351085661955455236442215381792521841861609085893776879099010631941973829196041512154348429023725859603100271648483467246426026656727434102976562165964055228056953678046900551872713647771806328938321363851685083013415678426118409160849757331207887517721198132840587214046983966273876597364880737063162267881228395186071636367647993489254897342320643001119476691920153956671247686011554743905855186403648155407099152615992355286025815653746737400280960695770621949353160663218164105846618700843182338499523035856246221427126964035392023549169441946717753256816584212356873220525909616995194058055057000577869666285236063941429447252627738240611371453401209729210037356768363682945349259382875340279435682584874268258536444519421364168564169275986075069744378076667960076999527311656993675479258079055916423667028301796747010649028583918654217791368427970016549431133860704974438814184095705639506451782450787841472693534111380175606868055243555621593467474769484960750163576960353262598737644176548262227299165136052065578343334978333291594697901465372958037405727257147002393825892749864581261337501098961438284249660059856453244103401613523037232306346135154648648477378829826879075766094786160497573737443510462239224367954549545498277226511228026923816879041643991124511828221860897028585277209555217990777433837159958982612896031536823283270046517822632376685452607571243619649453649793303652423770493219274543703344617025506990094311206996638948589032766301774088532187636673866000528107491295621752292533509775857461986800251826523626751649067370335889405887804360737723263596120130685693380926746384400061744877625538747185249220267231659848419976666366733234664343900302005511624229912451332854668127937068933242891398208398254402098582323897685221017655402943623380577946314726202484715934579917626181045341129717304920139632458261272015555322474095853951656362141621732570326042252711174562610504124750406733396001472998332702945684358926665693932111373109674711131014849598624173865237282733203197866685701904780089106606156976708471056989102930405416308327515401238355626664675267815535731016356913190785048436640996189026260719872395702249098505177908771199222476014804911705933121493950190771708996773071847481382262373602399282018046446972271053950406162928191901442578611964947305875165431569235798817806712570778155526231061062028449093993607432004817809163283591006564918893441287583390669956074993995793193859179855084321490766719961699277884634407049380010017131020106918882253362577788641219862285458895198057960052877145348865302450710625726901960500081250366539339476263102465227086160696071653102900151866479460536179876990254197184471207319664277310389661704311448168017951093106107363581113935123328562130521965366176807785646912510810230483697361961163078191989650343665793898685092860250015854660808924413572854519771502886306543597148386960514663939966843581340412121639214619880799668890106987952205528331276764442391617224710480403019628292381614975349746559285590707907287065139505162415937310742500826714808771209082575081521750383106125413261592190164517752930618753693395714043006781655017363195118600452937070354224355548132209315622436388438192155881951962071942836904606192782463401956110158613017978966902546529743582745769632110853120028075304069506253794176432852755777308393147973512111259220877435934946259879487854900392473402923268739499396848544802714841129927978570173406711531489003628348468829989992072982895629116147172601654242930974471486014660819475582218131687545474110935654168815102798495568893606412694575584728758310728908033180907479236480110355535516933930540493627995360328814085528618039512386137295412718636946161276351748991736511965729593082433397379237165078989169396881327487014786556353058631009958408669942640806771733320344154712649785642959456381006654214763909898278193504997145902817798264340344674618570209113542929263807590689536642629714045354661406290765468789349014024492404013246249095178622248547785559498038901104565898435379576499130459421743070820229382592601668665640893380179151695049219451564251082786196219628363030054728588401346421931898077980770836740686761406811874202573386269266464430014768691809737318956610856775096410107013087381006620760636932071531070519517439247302648333820397328547763897202396485534538780903469497178342621407442712254673385606755972158079466803243088356845874013854257583788525811176062161092268967224660329813654168352051326498577315242178145462959525666028336894035737128425966929122066012160428126585274582258834701299728789664886139824561050149992468908384626181980718020847832038257160537068633688109026827725985162747794268593925055471403734213207954751146590115112922081092140092148566849777401913360685488861972267172679312652991419052583943674742078429510267371199073986620916658381299905513464206731430568854121079850708264534212365809768176173417910142849766949125667427600619364957790991411014395707519695483297964333602279042345120962048057070529438451129249478228139021874031088066759325783092188150325461708829773571113991321973742373086072711175901421956639205081923406286466703602403735806954269013369512491766713573860941551213465432714595381351313740840073676519320923319265889313429106966488536998253248780247028821817379143507862041886802560058376484862327625247397338820572273418185444472969589535311347873376743317290553493691377285628922132783304412943832601567031720176611998659142574070655998536673940726121907317328896754587771565850162203651728814420759275938630390616740461093218017794990100981198839031064698472273286525357203501932982441836826165746579963262953295038915380795002042627462123721590154080142492573097943603077359584711921714694526698605747631343951410076306775186774410736761660688955284728808837825910837845074103146748287403505158714517939161918546774596286614579621100783677993067041619992797676972928858993668780008661278319693305385379508694997008766370776609425760640686997451914992664555019931068514184705652597359254691793891577435984564744656727206904695197681274336590071406402622978671848029547323074224513743031257941859035662631696714139062077485354092291672227603655166736659459933890587779444257582091192492656819027026252333449830272350765398658435163738141194574102106472360552453176688559621619698381929830465758949804259764806434208582133222073450311592030813266225402792249898269945635420463932042339177745928019618436489985908106384058167259015393658461753666476493521245947061687263230086959216866327172994604572495078223986534625471796274799410934582986207142081131141620979365106396454008725805923102178221982258285944341732615259602706237020894582870649063081958151553357726312128635938775193158891527552217087203898637529192637455129919427518258764928435835931486462985924007289036222209334343265396806340617678702751592565557975529883619919639086820326591596514874570294071234495944525657916727116624986171105681882739610783090050311784687583621944501994521274444794900988261854829024307987365370915437396357998848108553950567468901563846649530060331220195804236046630518221063175371054567261005469831054629470919137782097773736473199461614607359927115991137059429659591427469404161496852080966366416096359510317346078654472363148742949894120250247349617238084800614812498608584059168505414924209629450273316697162126222024857849451024963136127409833791889586262352681171447014365224309043157896702726420473895100947078369761199031186103684977629940354627667508532950030601515337205452244297170804108131738043972140611894866189353744020215341156488698628756959144718652296446290018599131442724884849771249810117858755478811248448994693365269812458275910147746062057235052038560083767956736192695972895716045150938814421687840648325683121612454596936165898611865301459115303858379104317386189126085762409877491536012258531564654161127609856162249652552091077720344592241243296859409582572950828767659110966360052913767734214816570875326655383027790204508439178729849711960481041171893324072633584380435807411575364767782356131517555577028943613678806264862855484433308718390714117791756291183592806802616920344300239285021985130226342268215690464481188661666862154272861504432420250778132976321881700117767127390899404449507334989683006755193823068575802848123294522403274482039812806634557193533085759583380386798964446644626266922508915817030648412732182170814055653763269999071679885064249045488421766853427071012468618074423339040781104681365653217309370383234914492001965720349582127353533894921586855109072481792774966408143553242340863028725497896094013164480953205896419099052590268201509929449834140244334446094223587923302438497112786344976283288185818573516641189586484215043551591271642423753736399143718606931172784399507297279582209276551275996621233658555676729009597901854961845957113892769523464977973518242892494047639270805119657389082728732682629786598692989053429090562858056125936370442693521997113362651778288593387832941712584006497394660371941927391653024906868740491549345096079927215815841400013410440816527278726719874480015693046970958923247975773388402983109030748544876890068347477412138464100104485344244899751523800596185932681443582314890770301674749614040154689984350032396141922069349674703701242566801826264239965728624995174766855627863498154071035084509291848061168090219342294625980389019934878964248941469652242751082949161068319340401495228295582598029350530722253490171919428632825440211716765040626500672375899304834173413634596080607241149140855099148096903936777117697173036840755456458375635048985578283010186959663021182247403589886926175915031971036575290746948673881061069413345367508245595644272540546133735221022208020340165399314959939517823256748939677388650929177484877029309344859282505107518264187381220711996296916067839671568002568152491031033382630244412461104115476688148451963157905250886742725566791429464166106797229091564288385819279017326462597371882031924167184834159495151957456028604336556840036857224193872297455862394198602784574257069828836538442187037343353117713406381905577487874663553079010086576413813805259512941925844954057645242051170486186720620570084270057290121883766118439526982942956890346367080344192535858759686039210276947732359784810969674283226364211471902234125675643976265733883867505299350463232975366204487321086189010023066494394359795416847153326812217898082283685617275446114946350115630280585585274010147258356405112198381865485897821210411567543063819973891268889056199483518719483333575920448017673377563348282865014758250126001965492564376058068511788912290494712628150784613474389318604284454490921121584627642139672653211704637555309274147437761616217182374446452077950567267670513751918007244573714807138851777965527153584343727540489262673371445629815953305608109223743013299712140989862910637995310412047695609170306006304560581818924338405795959309992372917753250870291418796857306194478562172310562666342840316473743187751031123407214377756273979819309496035972773838782874170398535129483059495259247526588179352768755026933949467244236663057208316588496758064219369636212915665757392832674084521751275299952268809683772674435412501175822918360836711488677989089791468318004096213520499119381626763131717270815815283862869757810750030375349095749981529544026381291760148683376842781356144512806094173425082792107820596253394147260686449835773547811749236330329386634619051212914126375273550167177263909285675490293983506287453039878979347800911453024127285697862160279785658084577082058753988947728897899050878344888942379392935196899083883448347734704454225641348903041854599958499729357429874130163977927408424560271853702290040386029573288233617964866710805781263777193391236456221108911366079950838965710382497336993670855472129573426754448244524703006139099880763438790111068874621310918982842585706756778877140335693733111432875081290259685139167881109517620365398654920867079928931781707990713225682582016793616909403057198980574922578650114608984483341040238541280698725173075410098514663385152920132858424925789913544214110998098138705369429710368035469967520575922318135463090356222674950156973229479561668467000502180115449163392195719544508373306027205650599263324800505265853571800389561662506439429392226790906785065746706275238520966812421066151179979055996202512206268096172608433452237562143068916889188473227734434828962774809978980161230717760308078946154477288667354651645218214159783465274131001396486743406907054463342972483313009341951272879353035419477658972946518264310459022242028028955543921400961846032001441276907524005312404373966371321118583927475936125821831981668978309603139090165921123908867252801445865008551857310982856936409761639303032723728410068100333910664150573787196609741482796311584084547600487745490901115167044319417739783357706177343776778325272166794377688871352875627802794611625386891789248084742439555463538789123973599371806992252196329353806579214261150498079747218796419924778800256633363192608743207248994639826045193819068291729926274204962216320182283687216503879815142698136867321361193156372144639678420958529203186681543196825856649121704730750898037323195855909502036833707703228315218210019241953946949185021629036618116309419061062234933345717272746259412439263054402449936656905289124942714856072673113963708946030755044173247703902041116512895240705448355650883660391436825927862762799725501295487566326154929805944065988242440110370389398697937454603433287934768797842909169702378585243930894828294303221193351955369996892489637030706358450334119723788883644766950177278079330005638941569525775987753333013373650468468539737023320439391572066662059073146945272441467365880603943906399597223882808759367882297642091899382007620028819635090548915247765910810860039018767870163749295831842977014424638131381566049489361607634695927449730609832722506723841227273743400503223564748060102097818447558168637481761238219323998145928057048524365170817923448027247837630781784050794359155395450498365939485220440267716815621994045327071464732648302174824383074578823900142462582051325995889297518543787297509979036011747022675551063717746948451338923803434198691579589716813001230561401721102537791943316385569553269760525926604734622709764871202015485826665818053634562307990890511002600269151171251322701932189228671821902778288754972139789778866338941707326304238178839857277462035436877197790763955092286080844482394613474356988783731628662721839488985587484550733533908981038789215983290065624650246639478715465344566173851946463143035320086694229390621336521543289809782500759206734055789527869320134213343746172621526172249407895282575106539767055879826722718565196484343808033843896598349256427096806238705223082368028553833079168004103091239873024052689905775052188626353538453999686297965570714963102609724612905613620380510039084224584777936927457232770424495418156446357269475394831945666588551800926081613073790646733833750150463830097038961762337778480062264063524327231479128804514761220140308842760023111562798033707346197285388067225094736284471236100249479232285314602857383235478546452451333111559281772241290203598310479769362341311689983343796907275545494497356004747792003984137435025822288372371988635251193087376916993613653509496795785136031441928453131497595520740375357091226267592584735904546943296443002401220203906971614339258758329589437947919892624169294404214665724961977951436401981814154887772880852014198118377002969764771080016558056151528929653177535032831329841159007665483852758578901715451514725491424773265350203952063858692058547600675208537815743949763732604707512037668340571628603861299571072022147568308478150610824392607421193536478432980312528370411678849962550101998838126958525411414801452775687298333724504771896018189810704381587063673633392402104498614806866912443872067641078192253907088503530009429066436736343734764704038926030268398845688019020918935613962276312597993754124901872662801847053756565301941663865604910322247346211210946508796798940601646611770668214609979111196344253480944886132171494866706970817353276704114394664704168433609925840891684866562616765315508670648894569462119690982655390588802259132252584597550925597822275940306817479431764098525004983922153282836698348363561999071804603955653899447960047491022632347659011888432629483158758264395749271719461005658639787536123291909400513137943562179134945931037267703622845884624236064540087989517413146096891090328933863996943049334980551932379949041738367518471190584609005379688599607403838455008678191949900025144326105292417108920073872202759298907267978346595415310604556479601498828407516365408256509675636405401459905836996224057648258293595401312085535947706076537451569295938086888925322501334872442641433553055627302887264948267157460316824681735072388388183392539080757742347169865143603315470398089891986681835768693628003959182113609839431135538763307356832798077414006820217268526694752031547067163572801701095285333137396686183904292335665607454396456399780574577588898317754494603599004187279880413364925711604111414804084382980638774335382178893472823482405329612823379839630605693358074951594388024035487712684238639876401695912414891016672322196397293259396229998504968027805815202490864395464351023681439100038357037341187031188844269761238171308142857269419955802229419918887767119627313877863103176176543282955120469509878350011962337710238137369980553589339137258719387044857337425724654669721500972423261713502889570522518475415494691445259054050012122137426487836035401866991073149508760734915628145415790838251055625240198077383321620058387327197587407053487262403739332314416604983790713787382476050744287657805317128691478109187123289460980584713411159753625782309979533865232725142570112013621445193423718576295251284877318456084708771887375766229216558836556280746664867475256198689004012614251770297140907530557068678320425055237950531403013903902588246153184965994046255658360005811464304789611454346532831541498173147511642392774216048985160715363658997012118205334371965251182081686247211665148342597149142326274078234054698644317828453099229587892670374836013784355581629597382208546375627439442492393220766539832635553773073683186016753066270348651792541645369696118830068116402483542412828596374002141713336537202994890635497539091419534805070408407713874201789124356596107275327214558964843488230731554840893046886285410041519381406363643420977528473970559655083333565974244583160044484495606765115126162482967189474747450462925709213223106825772270135628275548871542965060164508338232043509764926873029374851073632450039935839659757544748462246321127093037829592100541429742798038263385373565417123162084345597759612521655362578532946413798492759201808234015861517075051778677458384635153786914013266976587875530766437683598585383539473588140085264446730728290698565660597648943401467449203159606823117587958474841013979011466380668241429638068879386614696158618949337831798652654557920614267933262389133655106418559098880674454290312021860309437182566083457678897287406416335091080707074899129643720033010037311010725537328668452431589460955902829320928853159643939412696859411363861804330050502133737257932285235639622676699685543682419107717362960718396989343899828072322443412148151875165933264112421680060624752829380368581813189762170370875098320799716382354388270707609986082427015842412324608429138451333105883079259778506281638278104037812226379386379593091782309875973558759268508467940109982839073694521969698746158804142849781552254888616095830140464900214270833417525969797878879014880823380970705941955273491324639572726586382429243174651464624717384484988552372606593943121061795184891144881394059966699103385580291740254342361392427531260323819324536728513878602928673388178228254625077829005524381657400033735158638265688005768017112861357756069236049005186798897224068701335227199190842953941953795734615310778693270333162690004439431365348481009515157471404372249473561063670988018825005992890795849031522392098269329254663779455550843143344477706945581297353369941082165673199398836539282844602945576091071095019578022232063285752651187299107618999038284563821220677501635725013474846827566793462460341534768143116649356783075230900258454892698664820567476687995377618098819342908255462733573245721168994176257208907804883214697335278126208656754008330751956707561535771709619867228108922643066847443159288699784642865008306417664155609534246389829727310473473006582059276272257064089078389534370132866691763313780555111054225511767930899004623118169438660131196302069059632190975831054721027872668710714470200292004142647177669655241203717909248224777906463226994789431158377708396190084816014172801756825814904531275665266945087969638644085158219307728762332952014233786768456960762433127993978428161983689711872142030063447641206369184491130141849805190795079637634192474317848770535779209601221182422874998672518266440949218735797680279917126938536047722664175575061501069730625611542176563703654533302648181102214534708037133264037913501005504892812022556479732571373123214756324885862819015002575059028354839946454223190276739740595038100608801545070217092130146694966043469592117188601589846819287007607740171587035252543825839117547917092507814925882676344215469230080156227822705043366299844015714956871390040104908596325509288311947576262452377764106792595894997842800847164143783805704493930844560749005038724083173518254534033432141853666502680837325910984051075083119449548650301049054222566808932933692972538774932328809959353974916859067903608883653234033069989402589195063947575455166367665596386391783022011700410315674962320094053551104686030784473121214208460178278049406881666147251826956819238531034733327212408772211522727423195774983536693673831311831684281982015141080923546835222242220398300211052630128807128838302047938019520425335913637229911439578482427120001396343615626708551728338209374068566059253051234531831089027226701071785386114709979892955852271847715527831721272451910291912796861022958859858729895366953760636240939680804356277960030075535901790823960689723496883528474986849134774468034058032536392580240968572520531363248573435315856410710856025515825643739905426927014223971674960046820507540356117833398410388202636935480408526268344767903188868455535510862892522357812956901105113244180126639248052755150763096974523738458124168934985148927014971208552026672436783884790715123844489557527122746200979762242996910375447716884411238120493470606894535418895459436447674275283471823774892696694445716740770270009148249366810849609625037129697058977112767743726628241412295404924332666598909751775335164882975678351461666859518791314973048853631024056947588348545748973069752269361879804369465194097395100283636122985355147666443352896492317562100446303186196689242155734216584505913467493132144593705663327407584791138994230378146104661320493668922254124254311947662357295189808083710565533259274113889386858001294069334195141803901125648592193133210703250640963005666864663103085852847189466086535736239525652182608604771854489229914906424830633469075252425574497023210363830607168617152328780986076703476345437235198213854035269438032660644205663741943183023524989297396637343860520026358562274423525698782929954758983108836511863295852895715703991012985903731271103101917919853838938178671259160103425585391593505458031838371471222835500386762139540137976734655723875978829450655853877298872410944041057290761873198975624350272989213845376226716693434916890591555410809863506980200713134698256989478366444867543439211484581639886200407884590286542329930020811734678195274321903154191720938692870384118366061672425742597663977481527685218772562792345197592198647575906116585490666345600118715234201221108691667784006521398529193927688594104669629173533633455391024741404819628587145914197336619085215919200417970557038046761088049484041181916101141129305422194817800225322733438018933192190462087870003410782523508032840239904015577913770506696354776048130569720684929571789103278139539340149089021175824550870521043868668947103265652611291461447478245600753718235578016523065849571540659902312138962713001783482495586386329621719364233910007269547528530729090030500630770782489868589908378518612999114332536031494292989303457382463986257581698272931916204971948971530106188031088425238380281702869218397711528169120990351482078294585291533747242235301563198248859573658976458099175062952170490949303048070901482884682023582873509504467029052070997157178598685939162522498378209940753946742325039309261528523615512904900962098369999171663553306759225405338366244710383862689334818113316703038908501007697149533316487177892239556616349955900800289031403881253711485506579249567492136172266545151214930408356604236460461590004666469749536625239855546176782484818421364896158917694206055653156892292117167236546797368121521460728464103414102064082326875167381252470833078693791752116000096787641062254072573635281044973468974531127191349613962689350887373813383607048924355083607864008779918705470698200656116764234464672761960542981375682321235992063798318492581379849722296727179343862963937660411404899557057518057641176775198000539242518600365005550353903939614563745777114948089749244454506664405492056997318015465425714697781881021815332205455933623918295542955570023852093339138777315096829859390787704780186442970565870393023172449140999897466621230920245560619208041570754051737693607795934555084044442601835931751356068579383739878137783727026195047526387259947228075043530481095877372374297869441950727955235565037596865435749142297619024986960882631413646207319468829054603707921781943218303786394236468398498650074950877053462831591522711398616645334837871346467073382666706373183642521684896105440010196543499268709983822099982276141349749844832050063582276507544701923433366816781876671759028969290281562292198903406817861861355666256426251853012583909630862384714070865782445266874494592617045926569515744169227924872000369487882275685112333978641649143490855714261337735040891570933045732990372171704943407176941481619779379705978349932836062492064790393593656707263853875487176094876269036639851979581837725736778860739055055192547729724691841517229047846940842573900166101285695415723867010980798961599724263717319574460783755235721012464226751638587214735328548800299725440857657839321955057774742083571673179131531372212965609853733971844199981343527789328686886926506341297467689046628422837180634503715970243615408493237648320784999215245683913596154782401262769609371750067353872162463327269718772329271881293177492015194971194233420018656052568840227188362019346161629320897293301696561170960715487151835626325321772357782056887349818417785470357125259869690359797157879257247977621546432724271240519950733227244150038733717015604515166603300581798469889381268106172262712437322565109899147592323927549292337626822481371079519440620854950113376239151205273369723453860168592585090327524521122663702856166781603205255684735676257193789640830127494058527889527613524671713209747075852448347756114104649986283501476361528648670512768442372426712248365190496763951638393853182347079267179087510290727282254136787614671369008231732997802185763827323170960476914640868413409999356238425208096906985729906006345916642423719689228918757115248798741975120584367474536994893243174728238268175785708921299015793643537265613538087472077570595726425483948131489307144517532585413297987509508200873850189530972246265832069689559655021246512247304199756369598500419128708133046876287064243446391131106147244726946046967972661007535165563096948280062231208865148211160301188866818727611869965548280645400053754262714979551257893238590431355407266038445642257025864227688135597738404068492450361159552731388642397640745302381187029336638247604555703253364072996002345969643404732651430475545595480203997988882134551453930197251661986196559653202750734093813063810892094159510196569323506855919562786764575800941815562611806151460364354321768974479350003419695269624896441804122219441589741995313957934853385437468584588253559540140145270321580572038104395903655736570921809717668656402300995137938997045911841166303743007306295157680359817201478599647412231537279460986260485628045935630632018698691619831972107316582835810839127068980077594068720989304514241612648947192149203673741486873357674786866983958876096891832058932822469961998071725345020957330927254076485113351133134391958967553762795898117121994254977604583472460758819899942258977106510345112542231560905229501855377236423009389024444807572481969533554001609846259772200015207412689261516185732675241745561690206772625907645173749838547281047456476921642515887522550277763836055776898629181104755466916048986294307716298154198218188065185112582685667832129457418109561062332994933822422545806629160409095351293785654556894275781524960513614464333512272428016846142469332204056887661899096802430464576900016275076338249210982414659532211935353495331984829712448725825406785906220210836989928465846030727676827232973877789912753244021068065813305900383934449808226527609055976977570902663101202576243945304613451563209540140758791106880183418904840271268774145051106193313245255356702150492643862440666355627040805882356685163468637713256329128080586049647557266338692868158676516077132607507501701790757348903342025792148189402848445890158386996568785834066908942536514540627529060451208496770320857404727176013287042775440896058643326069955292579960639308431844559679543680700980982330886048976280409053610679169751072762536062701126698418781048450442831617260772034383024917024624996746270235142134508830624296073111561152386095548292307848968537009382481688839112338005232158969678306718292731155810577264534504073508543170299500778666917433529975270332138136074231092201490763845568874366875979994567085257915416228698935494016019248438292847988577920689467656447965797491295168524539990319023358862043177633990329454587663185457733908750922974291947217669223647943435601567730031694575002774154764051292166154564266527753676870805198260508619745014358872523306537263330927181669258223314344404568722400976639445234409276383169552178895915798352287003453754266229632744964577431485367771661556358059861872018026334490510120508294292395143681807590133472254140009771941952108841039340289150892768249680444219433639153030815016189759385731617131025933455184595639349275228639194769954978539290990536481057449292907464048865112177478692835962578605019621821783834677079162618647427385521999946438170462838059345817187746991157663133269537317605302974972461873930478717494499578347978460064545265184560128663504913027165635769841068796060332862542594032205609372501886895950622768502620552987138751617246194145207564511057868752911315492997276910557998336212677624305256260496904183109279483348953207879910545019021411561649205983999780420158190910110062444539845819768123633253917804682837132310022559962287749466064878572114133986060799951790176662828171154896140605481709272200041502439762806833011882289516329851252740118014775398927184156120598893843405737485452007600644726752899793264901942934285313153373003753461418161797665302278916369729014816647848616576629403154145186588811759594826038743195420501722873097304386554070681063092021223807450621433282399257445700383696508842661927592401706444895033327983975795078132690075180485897035692284865796268245976232077251684334339941641439374118240507849355560310175611071653347377607423425958085518051303404467739522757528034717548942281438087330092605257244501357622005899953850172703296321864584834576634089367334146091232883227990871879235857008131493430735756663228099437881194897043330768441057308106218646680678435444645048999017441581667434279267581565637400617743423044606423038505120311782157990774326030650347409794151300106638907050733844987615254967971523188026804126070138212892621119148412916706801436487711636864769743089963246147075240460985248242671943257170269882476250523648228162535153554065388665966680481197357539572622075831352041999809255850512100240647139564606385708024157751565169330419554364106461451743087984597143573017608343876538438549744724732532628393271706603572119764105653214182739102774365727661526279395526494793029382461623200505509903466322561206540856992976272369557641374705893848439104891775840358064503045568688553199961144628856011458021533711973779166188110155421615845382260994634892341614208286946979197237678380140775812579436615635343942337937833356474961415357887820471970051472531592854498106712185979050015230612597773960608364293108891934004796208533827968308631263817639031298735938913904698843096692483315934903956604219358201875912983038275903338748408363537971716249511754758866188256280545787199204123294886111663633174312428349668348470166133536071948056717518741879017525367275641223164365392466176288785921454407311678492070865070427187360848685130088487188857697853437182728840304837825518500540152191257203767790111789617949486618197746811234298362196866072962587435179344914797216721527791910017259635873880168397690307553484043390331368269809916897106319449593158031167702044247569460006708765147807433249817500799555436341908972711267400732128760581418846268254404715270520769718828694256990369267822051163560238637821346547486559760007047876260044383409646939181047040846588128980076507351670817102198765717035041217506417247698378932993989013121803567330212829332321553286186709395102002132144112606704328291926604675166133209094518693463100881200802301709487011974389577341636536340119128880847867380571762367811684464404696652308007084391915758949970748401077186781064091409851656314418925941716117533923983196878125744689071187302253581993758276647598811232572470898731042383407570328978673773716190074663598473091475543448249985373001871382956665123233975820573190838347137742392442140704794660884983698846604060705039683782399968373591325168315875010855313406980767131525850088796022103205141603889786965442486751181650277805622765516749751229989791581109465017174151237309443132028157969002491229304685270872376469754902517681777182044744971802281247040446191767128502183802837265852922090355543666308646179019120367292137842162977586692631249704495132982065906940830920828400811607795075039092981783136746228564679656842187697480678078748086327254925302975925512440141751602421043546767488622716979604120825740100742455859133621933265535521843692398861495473406504004391355235132750157089958171692192628411437234574496789257766557306876451859177875909621658091774629236491438971636011211236859532406423466795481228116472941774436577517579702468349188019578374941920067585072370053447477181433535033431602884807467300507131808006477366412170591576964394492831944671684267686444177703300840659655460558175800038703810298082452936122194004593567279444682189758565473346962602248459797304137041319131282964513442841766573960818907850789104704114591701101052282223875441632454739737287820741559169761874978926431066696708009165295385280281959515526327452396701015071964478435557806237012113593399238964478468782087821912635862826194132089691350178168812624639934049959854627408426480151150794545348142996518789829205551077801791460749046040167917605333454430411251169034759322347838485764069580990316357562956604320795406310928074203265355803602693858550537198411831522353052999838697881798634089730633478180660015223716900621762007775754181118943469235850277125380301340293770891727274272562892616241633739669594548636416913558442833549239756347373608188424827591565720405408806182123313794100452867055043861459788357422250063288504221273448885343890081393228411210808037593384305678240178656831291183702795348078834443413980084076630151309360776365521686630699305192040804516658787898095583659173117643600530396489177119247112856115481772828184098857153143589337859527633097174548440436300693099888619301947187552230662068034845182327345303785107775893753979128780363208531069178552004605914784716690840787711685333202313900699380237082255435692153136818917035831111972324360506365935763361362084518140864981399121334940900018487122095441951337159049747316805154271136829855863762540229161584473708551507685167598269371289983221058019383461816370510996827112579826497871571004210365941020034549366982134754719796969223931483243719738433109854295160914017963554707097373892974134948228980921445908745859837041520739801690377789780645151100770852131910320636815570114338448135638862854688770634679433656026709736672572884879476846936322581486001673591905400281511234684961043053738847020567607846895710972955671157285856992989923492102093235625231341084219837383642659360693467977449486771322083949809406733398059080212573464281239413673075461148789041185126466678735942250641088641441153788164463865558467859765450371483661071178707161589483376847278440878233165673789572683742665163476831715568747847761827176748063753263085854979456696949653452405254588737132749772503617641146572523193815548619131034969368358999718168829323990812987130888937639643171849162561022864968701557912438963126850567202602662897986737965147112978710862686291296183690397660363693937512729316087997375402172267365911594223834316160677222022841966631830939117304337189409784992283695346891442122219364196960139429973607210005891686530049793205684035030229718185077741704119676030064438667807422032090590939710198971859412519958834325632904697745788144952573603751042648793931026809815650183371522739161571809410946526447694098821917959098140465723636757430445215827696912734144088874892710893541837182214298598656355693648604056639969072973028869662580135917216412872093571296253166285756194799935595040313678990500117595907745955537951398179406666751727422524112573831422983352168785775183918587103056422793703122859293350754561952740268784500733641244337208794717349928362588395359752818373338464344029959022597492169577147752382431571165003581382520474909368302111057257040398963899392231158671642763516568559583171818762835091117610613752494484066181334850262549197266278904643259385324748762351692804898797294616878773360082863950802392444753877315774277976086432302808098682797318159210429852249016434403135437011225793054638720544915121860690827029913087922309236985340040409678800832534480289099231041830452125127511087099873739176609951301897668639892549507642616726157319059736007121607008024540117966286347072738653832190735548028557318350302835758093027126593884622495043857553787798827231901721075282536230186581290847356582432658423534763021329430494183696288471718067614642059524528946352539508352454564085375279790174796066812479270125735504707513539756115015901359475923321426587869522953704927868817453796656394581534566394682830602250283718732842957337641997392582718747809525466550350938072014323208406190239574231556733371181098092473914221334203469943684878732378843351412767479646395049151610369164327313805827506835090131532355149091335292002927037309719075609312091859456054884457399166518628470988410863195808597523558426637105733832319484105396503509652377135397888931400089721011806623434911042668580937295826727643072412257512810739430884475259621773335765608169606249815140986147660663510704753960039732818539833660907191538687782602595526013286697577284592697067985785922900715461548036068862762321061356706480647981778206405249989681561797481107955564239427606464751348384773649172744272006392793778028369887572634321432539307888412018811575196655882819782408538603631333720824645796732563865102295458966403834149616175152821686321867053910402917158599874202198219171222573305406289781365362765933195025461294699501305885671364083711402125081627857351117300640262038947230403201255173063779635791700026115718375476549709880575528488170672622426806203176913234505405877531341188750973288287910042961502019642255098580399268432100268815437325416961325819363378329657754165579812883086185117291904588748257267150290889390022256000860700857564197940978122260001450822848376419925831003763691474594130390235456179953835925183940889293350798775647674989725191502251447319170772093929039204086211070655349707721692202673461550189078735354928635917432340298218280908271451742540632617434099388843098842074322864605577241229877765998666779523541662949197608292501815263425468666930913085703596378128330080844384928413816999188875371013709673974549480837186198303069409847536114261309808384484053194914255793319377784170598628256982778413652746743148912039485894668576683812468261898787331735473309081590363750437763355574296428316066458725677537248858170833259039160693807747527737696030091089655251767229188257784622008293534443946001258938090956003975094645840887856756889910847191464387089400524346459567781753170781846586516769357131210321800300010373667259121940196896496339109460809441707141332963567171527523728162586988116836420913142614740110049354026063126441011060692355940199675460550658050690097336607623635022698282598022219382941674157599479660655741772103565749413238838427586493429568791010804781772796601570067494723868469271505298711576968955798524310629858522185013707498036828242628939235638864643314243219357622639011056713001724231483243144502518118961811383792618076588091631305275321065670653302976653296672188510321142035430454032250285264265463910401743908872056813639819904818617121004206243740377045947755407847076253967035136356749511018811169434080803822195540699137752311584396854675292029637233681997476242472613081709742286058333404163277816345080845146862606301545902737019919325145005213501615700488953943195225927843949538670343824346867095666744857714938198000280933245653311728785412462806196250666235638650339780028513843454352198475316631304742197686001431067021709700068554914603724817062265568556468104623752110210412836417058514053877152472715002001342147409092942150400393044675992421977105932023094451426634094239313369636552178290622742398393569460742596441345673516455795612735028200259449792612955978721701932501075118913277781657420599142857906508403002185337741045414895412790925056790216472010709847894317293253219064446479024923888244524783484835762827918143507096804573512086076742897834724809358057498925629355762921497234175642912311691524998938048763189191613762576743092143633009262908790303492425697956119630259740923808024199698550376817613472452290634507543706745694411312638734937628997685302670924872641436673485649535100982454920046569123451903334504540665934751552316469596583338751494772235111724316232113148629696786315003513325175767985146020214656844194107094589501907392418672504081200495195601060047268775509598433884772264043636096213869036066833610273847366123169863501611462425764587831141449260696186290654033610914559109172375636997734425700327964763102264410098949771762280069807916554224782704936065621970913673833204820914994434725633385008861126947667687943477196099394172499895832319144465603455726889557465093502667360311510239845089228691114608575128732884557749724624708204299176964834297823754289866546839344949728612042623992126029788215910497651794797107473263534575626029251639112347839122597629159404082033963271388201675343296944686775243502945140093624977565197602261847035591077927781981689814401654831083942866821402251821041232900741823090567735469208820336052847509009460841337644301592656072664430249519608142111372172877127979356607868407030686029735003287492976514488268124033070301795050242705460817568851127671635168702951882295116296875467682056694606725902205738094256436814878624587589793090760283259637985058518309166887561035811238257766680693018915257494706547999631882496823805294618159662286707311303374968845031062006354027381593687210430376949028620172017129110772330750116464548988096186188350551360689277637493049138329671054383498478858621374858888517870018557898728892945010766607740069420617004336942552665417468032841324437658675702323523886201633712132219328360715544809253128119527372210272851267065484115422966920638069786307401682769665675855048952187036479372320594009460830019687964759408656740772434290314899660912505646948361611459071322303013402613053934844962021851567406682552432189868986678951028045834239951102538837198701724206163591434333983146903510862659990293266905873553709612257945891460696210323157031532422110596481476835753279182417814490471206736000224728567329646328852031785787675851466399827215010527944311766284975863272119362097597526438407846367459742415520697503940089656566221383737437441158272985205068051203714336190920637470391789373758226693400723294377909803355264936469619888918392240484455040509978591440331044219139925379282751868055604332037836191094978110173555742729661517845654620016008200915492927993328760360516891913340021839154791320979056004386337093381614426591991628051819151947728891148067336659708024207543397399347443133538259727282444183871815407908467403740504406904882624961220002916064689078601907571364686497188392149027687834217684486805670665515455875353851739992592336072953696440740470325042247050047869389414608555338209293113832826335923978349058457076503501883762803787471720015358867640660851250050188846089225399168753204858455185107997566198504916790475906268525404913249857036533843048155817115855479056584340707240256115122055455422325649395271277561384370833404579290475036023205173132874974318858000565413828241115963212028072089825777013764889637048104843664887062445122877050054067764958307848099721029595663429064657386066804420900562308340519839253437216234769214629421772001300811484349307371349619124171932251513347901260345207451772941132035012352350172138630620200037165488517901769944287371064022922743545668439258500114764390298304884463263256006856668779777259131298740954499937605835110263778142888973124158447396272617980177882282937163739378720671833283422758876788529504481804224052047273471213556624374287430109110317137356771884613700867065842570870236675625657157849836320888303707334018195720581478379798154426744758069808538207983420861364550152449516170817930982918097009163379839895209100337187305627195285435086661365228367647434769061282163827636490068793450829669311495693175056631585405086710063306916305866378511855098777424885665436949292476290327190357690992653043549457150114590303344057479807332974264064393350518258972076688954310847630332693972858613041323401918212319016514112169767005961284195941091508182797764307542588293520536791382440991859160021261465403825189222131113825462245529383488757167371230014333915072798440574726530396292213029425782663501840254830885928136125618303445273325964599784513755304206732557383781793151013152118172558928675630431812459770023138047106666457066485737991157769125440619577286949038559242497060142060101446274444557919707371825546250864439810489888506196361404132207030540232407895274260707509329274403948262125730616618592839669045818095118741375103911057795050850337298647069189664108808608578732424889605407370999590303129670242183219058642628348041543018741807851856792827887513436431884919111920044588755016099600275974591076519593172292508940273889328648928444354650107627790629703029112630410931772708727005503449268573955558627166937846857548552111763467995912734070761809012628476796013466266020393701295756698978227390396751502778825024810238453983033702808081654384790776777101152692107989748902893686493928520909197122659857061137190589626029976003358820821742350918597304743373677143005036678369525784952972340669697978276631042155184894285895290608867627786645695190198767673272554322892241224063388615268811275841440808253663707316211092482189509745874571413605664413898113011553898133007624841131516154491244420900085810543346252500412060546756446355475784219899519762700400985467197020299095581903470814955745121211948181282135886183742047597572291494227754578676096912140552056417726593932092892824108983235422933072670632306181022451697537310880213453863538217673831282464971954228335238254988901520683252048883534582841662182786388687753619793980148880995851978200189131587745924952210561232941157148758985346816694927267200495027718313511654047372711474134867255302139894778971412713170066262112569043596565433883122274395688781962121987624325352468503921487331389292324106741823363705657054587547106487841715174364082208021061812028371465276792139621853579605542197926835449355397344674203921197308499746969552722984102898991807707537066465932843015290817682400091103809605822341568295871366275223668185516398967417692280103094385081281221698248593347684849900631004328294067900109967211926993559427583564266361740095816591197781977935742553028532343139534458767589143259917194774924292189188511561687539985828080123758346010292698719671140711509878059836660289966396233415103418371742944177433219779873570659178200921309905657958920208750235103671613655153749952483142192030412474895182010365773605410725063827710784843939084681242472194059888367709547143317803673744502105103106876252206116133617106886975998489428108815732139095237880754577572140668946890073464208484810147474406788059676933402256351423907544312003325469237303529052797192704653899136450218573936381692100463404656435672441628981915766811576316450931145019914547927752158039915431498640695056980295171403221404799320797766059709386916909564659984443866183328478668652430105697638412336014600912023245735615483470593862750315123238726634677538939824090418656543342764548641178110404992048811900192730903182142428930223974736649348487167288296726963529586299677151856366182226346535654796563149073730900985393907469617920901438366009312715031716524074160100219984164486341695149523697719739273150277460224783856344423053547757365095339508244327273615716617798423769292687343550701645475853093399081061078038225930457344955797762781109819019632463088044122307433071988764937409959278189333108157104182039119136671204987896113078505653443754518718908705205708070306533309663779157765364131544748400559086426545039029164498149479861165676180249550814655311928090896722964147678057260265307168597554133489679337112285596085638209085416218874292128277872962823830077116122083877924838739019333514810942346132324361123875169727502156198296260404186992916495604644603178574863216452876057010808945130577020931591699753790581658805089462140306046165097424834798459796913961342077992164181190408875671333110948860618370387596303166328060208983699340608716877002111630701893348911947264985359242443138585404146012828540109101758962526515800306456121704481644957906792083343836574716264878783069364253947746801579679071451825751919021304598517647012675633283726551973295421954009667534295144622667978847497415231477603390112819420343257461425174874399447302721295797097083665903212851680713305538059971085763066265320019651342539479997477755511537605715075080422862881013915353894376058932451519954393502574758844056061612630215556083995188993830365414844679469091926557526254549689787054179313530120456084283368161516178991766388930965890357351535617597391268660474692031857742467832847611648943250979392047479585843709863317926452331061962644765224671845256167496612227885068763171713279703692796159931981297618029458549256148162967242692054678286967078990807362694819524733529326086440200958480650226417202949717088791434455976189399407151814863252610521125340184879875426098745827098552422104747214657020230924410706619103614465569693469377799329318891932886410336901171214478762234498908071311248882348284326364294997160644320754017494205035980199776932708503284806459615068514012454139322997534537542297614182416222928390095974914829462770238558450974027254029597241412884602064430101403012826933987409856762172273614935611979344087722373185339929383824893483063575132820432703043068476360891190565940234660403816278405217463431851011995971846907319777948954335723625265921594521516500896509558033477987060081564092666521520387836613445769506581091818269807647960811823200743500178611902863096329974747245724770070074970794712694667061987545739469298775900478066779396171085940325695239532916188720230757313792772674358418459859112375891820107198354260626538841840084775149811832390079521493358896321607845104397025062112249333637520616862835438966024059454019071208302300114300245992213720808286097086181526378888592149708989625815081200455839357215658844856377943798919629260793388214797737922238482948241347922070727892475143397769041060780168314696502582802005596791191496894509392111141726272124562864474155233660897238715781135014864095399581566992586853775460432074042694915774959304668866707476719239989220248837967776180448165169172079445331317162534979625124204633190843423500612213548527299058052689905095080671551518222259827180298723481549937736464305449042988930680254802572590857601977884043231685453531566554476315606061645904149776937578020751649981823100752547240569387555292656498992670333845477611346342284361966240315436000101270705970718397322647888577155258131250124084593693877662427433626477244723790914647146303394518969290691490570699393124832670493788224238888267910913782359667949275850832091839116940471684417591796149772334106764347787461238663980825074216692431432450606818344579761895003194650584298836675576548132792492742640013891658533613736791585783720310068035694823142801619555819874073812322120413387975168897762362119274636793446033628172941106276052490109225153561535323198131249573526034430988489463232272032289404740145770754255203212748935338373543469914255995438300100360852264215801417830788078325238795872866276538264253724829011658556286259688096131533976344674176690848252764870742275647394317391206551863015918021928924140482804684590247432343766729307367989155876991321168102677827453260158244428155854176630526869487760047431855903046301233449414653930891623394869599923489321006272539425150367725431274468062052584413681657013523034700292885225246168761438159075202154964879146807953520222400704739765344448915155663464129598390821052089357665091643869655461209700887781029541845310850571829744183940665284241963224179603000866271948710508155563399423054186792387988847176922754152667199050806518867396104800152539769894508158519926416078120301424606562517491099504581941121113157034255113859961639582336580611775659343122679689116206046102456982059982692335015672521558110805212807462688042560501469153797398546811674073434282879699649301280135007505250034523103713706249937905791159650871734418827218746565391531517343280747248829483675868458465870433273899607407625301172626329992991316247370796224686388290716010740069435465096260861251649142321515862589758142729676506312563567399943833341672752222734011875181211603418200496497680499606691293703728172676798804885649975226731479558360559297990243277743387164871589585420470216208516159880755938200337325911471473309857232229785744020846032162682969946751990857817916959382177004887937513780950921320683526751232829386363339371322545049841171053567787229125607472644547987369492289812853332910300821524454500962677823971114961779767516416729621736622305303632215906346876390545627985282779846033255241303740631407851094923640175862848866581255111283122447856619163896926596872580423906626937734214853840013089880432992806655887864860972945951225868680651255228796168289473766551815944135655686282108130160538279774716825898992120642777618437748725659251980917093393757565703590155292492901047087116889640547749973591769058306982998989288230769427876865001904511901228394570541152497646150983522990147068109976381456554400545608060850350940273707826402734535200916549197995929848007877303732131703973871629055761396251117824832683276157625695308410517010070012019793983735409751767310826433587370493988281243873532903185385030939666952035625751768779540412948441182182726392447744134180713677119428576063951769790535360974652700755733051891337847575765733450240612451945728192163589448022771806225631301043879301991744204599042466501191372501385352282296655629940419587190382199906291350091841609067629632319851032869047822930918831137764100062667937779384956064013956212718010008622355667409296294935835016795130617625447930971505315966197950690071173647257964470655557757418770614775818543733711766174599889736413648089166191864939952297285281623604869165714025887785506979771106845456456048271229748756819514556558820292027936441022675028545338480081795370746889960781676869280599148460963158684702860499950641502482608725075362181714262816727741722954881927988968319262922322211933899729010117133979200333744087851507439825914805727659622649548513662431831461337823235559572378443302807911612788949889553100915360285871895492699953676726194310151239040005615407471844871591972355252846153345707000291987438281103150957473421227481538681827352564502010065723005186661349916391938648266804704468959473450947663219909566371533461290423090486868738862750181551522267769341106507433014625453616428658409087576081402822176633714055683129691066598919222567458549732315338060959511271248750686800109921069862914394445096005125501280837061981863947638256381355963797811217152226703007172053379671848785382774471081632627770098789995269522606874391295180031003833433732617274728855022287745180691854941083432927935896798983551796647936813015929887738718029087469103061616116048242421897316133514115228682232170524197488798267277131591079304200790714329752871122215781900317392157199599087151914827692565989009499818799198669244319525334944965940300169585212765424940327326911765630390734648474175416084330301875009878666781254970609583391985018092867560047792776534584180352347448605498568099610574046504560311891802408446827116704358380734223332740263122152756965448057728301963531050393712151686777247617015357356858781015973343233855467315572210375757500603948833306042822316101704276056915734692956314629079696256458759640459626939913787225147548397663225368057535832856977298656701303755997709445587545080822324765434156383314543975799147401805298708692860742395765812110964985024545276287602313369530970381212228367182085096809514476200884654694952502181866175970051631054795047697276600076200508806466107306125455424329698925366541995434342208054349651166523177594630822247904638243057001491761004125361649892679502176272035768667797777381797932835682367657269947146645874793972342798031796440781102148364297282788013385575795414270694844508044662530540938131673641149954509894230320140949042236637365921706385682189249817710328887738615177597677143956416638489132007012961882166859760743471951073275907355094269562427696343892581948342767674520294794173205459532083015430289490053234798868297891587798996026637141853433990102164875452595839428744640386585722933175509040209715416119352114552014118007935823205010245100706285684691454916993893595382174761556535857002475767578475162601641646464803993002403866701159979211354697184403492237491550593987011200577266328353258401758795640111012433313137273011530158196839623888961458511262192800832287019886868578565848864861609434732262167490134822185501202346738948509983095779951256468111406657439571876253361352004498724703651496768637478259072268654092944213523304261787972480402676153702587643895356656842891498812726837159724018536427833425508971820145552212033425879970231164026049086273292700160145418111749852102710226678293447427931809421131851447167862406502701088487782885118733540569390129520171882262892644170050850375014156127722875299075633567538959790607031521034913614543740971683449217581181207434924410136044408762208242838051537516427496580580847945909774781148914992795464775687317679061467142868959099993093419426406009840234891720810053320400794338078605186669462480804806620607789193561684910571714849399108047756855212078494100444188738057609249853655115285172301198596444583133514026958587104268326799513087397641533702833459205698165713156726068419636802360347054965823502832360669549163104685950352368760295392019954260452036097633457643251647845720350555862440667390467700548516301923911100078898187279161602029358363027761360206547409645550190606855890882397342593558160180627102635362411298897232413304250484777614283102314665907559116874071961064280459018926430688053779051634176444353726370821516165154997367264997174681534493115188415044063589742014564724675708708524454329409823692110356523639682439837107820433570173638141988544638222815839652510682323241424145937020999117267882719152884190017257132929710249101073440390019875863665394490964584654791329710418253890447893170916454137611704972924517755260255175607158235718374752017811904313970952807253652578152306543988575818013886981951002139856413494815724078503188023097010842526684535024706537406184495247245721736899929039052265441637106272065334857222070255942441497236685943283049921650160185360261773267484748181343571260279484760650140697659488557653208595656100391127382814723577280932164471008828872958695543487686071479491956367571522618843759320044014828854134738627077673045985146220647072694188504525990142131231963035704681293082203071122195264223646023087474758993581681522317426787008363548456149025494869324482876368231183794576447158138269604128568767093774423796800492485660546813447012384577920208401231191170990958295804992948611802788397078584139812346205856027154615320877837439624506695774254908150924721578800751195657964578047061949127619696959274180715122709605293032423022803606560381700742329523049934950671309456867525672223927155384985956589518890940027271478836683795814349607795448388079144208695502026092291593779955980658194001631069259501643290756588879981321706878262661971047600851202330053469936439970433213978580811265085076336829368928696926195424241068795480264062517953735411784581815927488229929527764135364334034005745785500597918063140020309390535766720744991557116186757803010670334535592876046016382319959696726666336172399921523008513729498219905438904091207880102447619367967845014446936726499911021969662130750102553840730934047840894949050025802719501384004346109525604392891111082678871767853985583706539167057310582923421636465096927472822398255463128680872639964942392987508303868068171904316466731137620378600418818504706640078768855288099047247720995323975064709610545087187674027028773414118771759939743573762757971147278879025387515869335664782116855426088334664022157205180026006592558993420605309521961255186239055030925985613821718343975110703861213895010287781197849794791304404035565379615234113241986504325579406110229320139954799824906230771045465225779851056028388535197292887251397626983290831047445294078737361025337804390452327045946467987933769029994878208941181940570859491356543734322752788046016298426563757034517123712303679798142052738545519443761360806848636409713823791998054798493870804568491805541384413342385201209547883205069515646013045538928856083464652264796756464545014714265221974453248686872178540368252068330560295237420688454915471932083167059521214592947609928952208116663229730560713244576851815235571641651771287374933380469195637703799324027714170706415746991945908302232970716218157121345319844420393645333325670550629186509325320094409850336603353515885216682235855688493903176669012923899802127275359127850032840244626053480819254287043790881876187911313604734136073788831992561431235026955473404782009163943536108522702976755751721290505499523261749643947784290578890174219331036011939049456998957340081964801906394451153812821406634507851447259453569783434372803315704329069665385486195394031950528640431135002775177486727087919671302721343305224102661094476293363751730182323798966101816869904381255922436097163499100370523469775079297609870253792657670592276994347067022153573637721073038356888082470020888605490642251459249338149274449392325112458809407629835462241356318151551851717661783644164484385088135055209776187214990001723055222808783026181851577840234702356227093203330354786633015162523732279481216752193939254980543253389416138506182685439143268229656218509120899908939283941307433357754748138682413690416011832178322798561363825128839223205535005208992185247312548247807417262801249791802295700372512731688507004615686051484373769258158568841718414821341000118314213085120812189637663507138416040093162551750419878455810022985022635470926457090750331409987299330913641669185796277457625154600462191656231328120500360353256665450499998834000374804908293983152981271991358812447586752972639015247444368825188502798104909615381322145734024280485180305013384266337787011525438347890951379483886283000596376264096503337700552155859150603249121955190922215653085274726921423921322264273168535467432204108427910013284899269462602941025011105125513969176642381764844229839479547845120929081075762738201729038901516629074090937894978642197734783251473359642086846977029873123746041015515606169925856702341935500069138581704965610230614763817218092627704467816313187464984447947507062034412538572745079211224754948536487365855268483641023040919852790997441352496433366533583042932058710781682724733432699374172909364052443195436960935975836590562494614687669447869236800711971197064858905273164474029929289552246010903961893179907894967140170038412287760139223539751772547046494222682100386257088192699802221489539239295244377384653034207655419398060212983430466748056463385016086128125182827574978054674092175424484251521953578350896820412182078946824125476981541234624558609851857681276678368851599056613635630157231906968541632205433414819745792983489209374447506992037244300648897020121392405370623558375676516111371042310453092078052753118642673624697906651302871857773306641775506023981279988858253064590742475964061313727353226705055005460532592007599556187436861404547055821144429987173456254316620925636843131288599939937261718444764524498956980727932136163468869793283021412669891183488680466916297874004074583875827678012705442604855034647266851592374438384242923498713308266701736857629980389841736632444266454176753808730147352722967454356975306197059736004330551030229980606384538514212618280969278249195907151684602838007273517407174508104776260508224043216614901723943070044685921761817042397603539236246183955382493491536774317258060820784645458416931006550280761357305427778651955376618086340381235708355088962054225311047621612256137053224446317221315215723428837149642943298449815060240406960742617595470966545823251407357164379344794740058195412871333871305268661449518667130957314756154901424445822072527793717351615675572862917797976627806871473272803303848470943579170302780764711227496432132877772637711106714369569828111176364692561899722555013440676842780947774914306072585133416010998647357988376050302965403419760394979877985169000706275427098125932147121684621762745113893421465673228163329007224044663076619849020195230825604329840222405617974063091992906456466451753773846626010624994095282719120501090947858881532166807785439740802490072954203777521769813160560351317569571500447188279489555015085074842328731949726929356203458093754244993189911697701349414621389878118271066317289070107402598630799635305723947020173967230915628661399242990817539028330450935746136191266074046593863008900253228007136249862267901550586183110566903305301555938302801090995281347332517660104248877060242613856898858361025470828713439405830009049305207899503238137383224567586104899996903145643466456070524619157201954227553995436045686452798160113406713871647783135637602860442878688495425475024939481335569036080473395773410464695440192701250751774819393514568052154742277928336460705226569810393549876321113027256587429652607532560689767112962654670976217075996349372669895726487522374609199695291327086910446966842028448714338292615361097324223044812781233463117447204592700128203153155635349629643100789360420921267823832167118212124107794610039121847004765825739888531132481909388791387945273925687979714375281512115559493812988664747768854182519029775397867637694559486501647876048223476663052102739827624667637684555246038346676826432519328056729495478367195092620847347974377911042951130994202687823551221501924260429493477639506047669732754257675545616464480049422601561693139508838098716144162457082448815627711364478758974361959952017939151534729305070182917142996091844427906987951833750867197057770762454098557924543032075074974217094605954306913695137485487688929671351616163535276833467871478153088679551399368766292151040804931623584649758763961129542262896599013519087274381546727410325578431616119876734931797292932155737077723744803610359150721810469576462482199367499598759169700352345354741869032468801935134592283815514515351060181127260869705245241435822682416720190121128173612889562247742377775007015261976095423840518888192203346176709523214926072472565720317180786627443199240216545119856270334524640543746579383671759268537769316907807964508142230538381121458979137310789122770245583799054583039889615193136833767748859321995946824222393309083632254060275157251615312233312900909942246855593451293759591524497176282355132571059799514677705883590886737198644663199194932867782119714722287227863296395505488128976625033290803398807192402506984403364902878757902594732907851434867651147172963738942615906022772625228389329014989980454103970103686059686437709638163625980179046140835209234400375149524786351463910563217827485710446756554704326521870208735904905643324588749285456238380740249888606575098919498608705940904986037380198167886241281544812653102386179967985355051918441999597730000163733012759975526462180712283197720233845723185263171054276412060432937526871451042267765397312990931357286132282041172081621809227284991014094479508264101878771337063883170290199622987584145834502740048907978652072519381603721853269999301287330548360685021110132340854591971939327899256112813164503838314434712097846539994352278129794452708027154496565282272548257838650172504919965228369701292528411979491100968844378342448948672651667843891800868712442095256549667082594794306274462184386392308117125320240266102716689036247360749775135874987123295851852528971464127209412097387791317287855969182773011825987079958293910604178634671395228151923530297241349635571299217423623784475661810944266539954126917882911977938776243664234189316576625381925606395001190202750524094792390070244894352242129714451450425437183805193442760929992289857627310349532074149093058331828834894181353494340415455032712419753604040542154546517224710529757787314476351941503880811862406220077081706858637404606425416446119308734274630916742702454891133049160303715960680416696233099231617094926217181991892724171108308204692117658776947238214005956917464941267564154098744059927414019050064878417335490878615974862379954587075697023471790156207838307067620609999694521517614829527756208599990708353427416650538784193272374263501536457052172988533097837764295519691640738867837354936779599122019310642112370770869877956801613601007428074845145216132399649509604376321947255316575070305787980266541050545169431978785312729311978826017494576961828647491130693073536142645350860536165365620925367349261631721229581814157545898900179962356145461502903684705985238324318909498006978254190132443610781093100295914978619648299357341501858967258254421012247051005174851351388029617232211220968372926694319942890211160643543600512942582543919943795630335246130419700051864446235622805470508896077022599448369823278576830494431636301421305585160191180365872128803198398207949569516473849951087070540609078694437580092230065521532616577148591954448566236752490851258950239643050010058794297236619767573036605455448348101215606492392373168924176049921542048438666419072938270790403117064911467823045886226781182040388431820271485574305419028087063822168420881632315161341051550409640973674358845324109916525504801876625159492777520893611995592581236260423183655344877559787139126867646114911842443213422665939903429748174889977806793448592318586313087004147833742629578982162921911288034047420248113506493982387342085509528753819129655353468299030443111768026890201316671278832086767653484254093043723824243232236853093059318929443174942794950883086953129540312095323345042531580700333916342744521392870031839010111954833649098839321795807222398454863078786385501037327463952333985485767454105946363552769250545590090417716939348671631947526824921717659562735152961180904473197894178420450257339749431076111048919122823986319289071083064530275052178928531551769826534965117324361191638639587893110580902393564176837245426110137875950272025880819948253114445755963736007458090994502886929004074044970768159361588146073880484487574390508912143778026397838347505190092343176971204616599891686243585215185532498639006585820025335541578557064938912046831746545235198761979778178003507734390188522056157208409662297720431968610398903381207789175900864685860042150788398240061482465594599946796553876767313226336506541581374656581036956747276278574393864766194481014483167953732524417985190868790912203414531299968861750113032165098293793031839056232591717156609802291613350627011905786900183153702806735747660544220656123893513634133799063150751391080314722209855156405256510627580741268234050400266120045460358137014637539348620613400560891889369984509012347011026498771455032242040079035060073604001852466601046073845243782002467179535096168260861373611174329846503860848928789315780978333545033786534035050723978259769527249522824779653929778538235530742027240275302856289693572261128576775296672564759907607516093137948772545995843363278216989659782571352294212297259870448428089753115340007221341066743069073957595259989641860256264808376132981979700738037472163824955955930832221448964257001962233664376814413515959725924341125209590582689261352932266540652232960981854275623048906069651581296237349459037589280407006694337696609703171881275957316586196449562097052774521262149776760241116872496634862824442550802777417427126283135303132448382589976748359206307604536793208267971160410034678577946677322674330438509750977024830332970302906362737180252566665569051896241405485152736870411084812094473913040339115540993629313321309180003963850602196408598454699967107035144083369149992307071708874096466781737524009083452234020926959447357857641691186395116637185991034612030356046489768786771460789455300116029419397173983731656035646758146442011642097892965256079344064962180374209731065568483386262317373209099800673137001704826570981022533948962563060063798646331515869437663559719251906973598010865678470683908297971607242524441917710378866131187863856319555570622950061943035291237757805217784155997609483378206010266378407352184920804935136725631313350565658184831230517314451097391404364654344282953213325908097143897219980895031604111820368928309901739306588145305887038124826581381121911941676000744687806000572911731212767653287389368515303395860881693592225944113165365869190517553203921605771468967534548243701008702543905638513350797343953865572125997318883992409126408969837201510735863254909849958165571128761963917987706142607403121897015563094549305107693090978043529130190404528446996897195493880285327661583414922699461488714094380787589572672628483547396721669204374419349991515026247404739982604419631956720038983106245660345496539852161131248847138719445695738324071672674630487710302623546517070452014357770635114813175508657452816115509234560944605574738423230343200908764847059195145663869927759598722755313765880019566937848929269887231926620590823684518279454025957066173470124152506436721992298020088461649417812440328008639786836949264644155250551699880962784305911341805356472332469867397979681289133736900195524864590736074325303868235583883699492663290956892110730929628815745871364357961823939374939308928417222132023044619468382665703021496212906610335929145955791437764618799441695606607954007530738392237488372426498991990192141895074409452844895785459796457031203161130085581992566781794596841860274605975413848403530505436055962058287455809206929849021645640701551687358687935804816292792671728957089344755609927150976403387088427897140441895671879362953453707428401072764071569795207054459770787614481550594518895977402936958148331579280569454180243267291193503653044945339942892612058960288844491753792505517835583591053581740487214326168042908427787283614968511263732745427586807974186298107232069693533221580541780522256338578043997780674651313672995882373668127006202085612339469999641413307032321555306743250295123034304389932847160772337421997064262868257961518937064026711120399763170358659253742596373122570445687768807001988918500104144443585025248157495626579410368591368902454619573365525834271738703935757553602284659365835321457058935583457243154554401459301826678193517364215768224722326476427207266134556975085086213733620979231186368126455002101433729815615326630518453517502946689374153548540957287085644401307178985656528462088422214446304953504242909318093268857778463934116501772092264024621724084614999754417192887282569344114411057877121220651439013048852206862295086048632124645236674486722602416091191432237773365673645280124972410699494782542899853452475475850018673283414232745762165748616672116071436173925997258171725696631842052097423314846769649699071058192028552935719297018796771262111988128762592358285319352155897649881155774121890395486724477724432761832614058073151725262213444853512528394786759106316395094670282477631673075465565049422841402453560921450700703717201401991380797047947523544376744148436072377235904401444491961218610285223780267209406592182616049717146202193887215175244581689992627292521412541907782845946894152125046873711458303024243077908338829836871262572915622641471548137690747245692805770880781059086184780102811510495555437790830084774975457335493203884721119099366552083579145460310523934358962761875613125596049684019794890124552927872976954670857629612418673661334697459201659580566570738230861091787865411057842351649212822375132045532484508550909323310848766414314220548324703678440081936495504234697734313989542269480868822240056166112269088919357400547719002728124837078073712440447166931777303474487003780379167475640410657977553260400820578583845938322218732088066512311822874974210576870772820390914957672701813472359126404697493176241112613410630405956682281406671979669236321476804843668805365397655029683724164629687507686709044827229943217933026306747379213603496967620939021096105942344707632583439410373023030860564674737118947214360286297044020540832794124882927996477905766090302408720043699304580768876055978518458169468499951278754454361410091717411797614246969147691998474100523772356260109619698344651655717986013193008706871800068310423230658763453368332865527051125136309729223919342297544166869671509088286299910763474204167908658962318106562851389865050285323324024017627865623801909499064021224152855311350183858245723404049357795676841672210101338837789911065315448564875307702789331574217117334223566827918383433573000018195061106821010173581909899784641051962849729493500290573995357124812427557817148090954987789731381584353169681532671702028859051686134165190298409476559499474414782672766235106436744299924259909505078851135186572139606448576925134561757309779054880215683063853572920748722740492326248308767260653188994025805685220245655327311541142739535715192188386913653640592615609044630851298918471227406765981328152395713577082328909586497236403189492606338471968741856065785054646471783613868325233061492390082641463654734025609595107869759084339117543983926665889798833048867291151982656316228075284752568547331831044936032896422597371005892551065578900622016310745338436067718523829741314371666415266138980135930063944280493888446190563022085730761129621618388629212450780854365449814261062088074943593932288724944035501706922110635853509819384480129896560816817842951669730340369968579721735510705750964309213234009607356557201941706665778299680648718424229096756036284402711255961769021245656310282329798554905508335640633240811504886667773701075570820039974879383379651256598688039357325570426804655876191672205124466345814400502781032280232914118648229925024908727450213509233599980403494125377120906759980484765075870346883406478707155385400417579230464787796299602745906931843148528933178690741695128868878733878670095381354466425948898727958033786976359647751939279249149019224493051377200359722198568020588333520571253392037457665799754820365422427278495535149046688186589180860829065038671501695809746796293886594936400801214675779471584307280208841895689447624101773283583314909451195202501047033732202945462986651236911366870773068217937402777457282112707692625687707150507207890979600571392986610486393954658713615892007857891469251093887218289348370353874666110936930156111560351983417180201323726918106845857583193135343109163639016911545869504992294563349217480694947472333546206656890941887787653386981094900319634424868068755818028855271272060477207167311844490942601408202442414020656126335959110446688273638694470264141464267153525017072701505977416246442938652531862096724802374668867984863372231053749247520473053864568412242772422348874400954467362376983473699552055420744149917322972574762415050214981327524074639635385973699614528227250127280855948240154747115637847884567094943785922694722707170223041349105926917445691950105718578013929083659722416971273748212280473604490702370242493847604402258906602419787664556722810694399738851622151324324545702519101043648609710600942827679061399610793389979126698586555225136209796618758883311937557489032291173150450275236612451633775830817080377091362949578035946648298304013078172213144692724565701233418834131798773253587959127705935348767731682253622568904643095116749428817743010998592185912366635699783025861011216456357295322647830436103230892495076410717751662098935919216908811108538597141727704051754723520596723054775872107586601878846383757994307476967806995604432681336833748750662148891018585616461046182839620490307696797186434987125689694609130077637733698748978926530347555905595220450840233494613898836331515570177300059860123435913090958838635117383230526216488249213868048844196594053349894881958684650179217706404706979393122050897009885710804924657718985345086147234424951300467849509054499847762640967615272641616175482719783086924324841463253832712572790219809258662722404969915370746086561237884960075537757790507974298406073622564761396001552117337641220357876119864666036855076594026150781345109571337615607261375083644358515004458289676035054319916921378790558977862217311982589043457040716386297520812394183391306975609765135052833385743903623177815522688093185136895185276319791388953270031490381218531430925305456627299604340133049675937903703803915785240355452369653876843216851958246762491788572415335455804374126418252140408295426819688434187393754922678943379284112831483881035132666931088644124426763375053400212865384083259686456671989915838395836818497757287980499092053415798865514920991433406315271418173085922161068574054652205031318293058393624759211093744693537220171935632592783251471198982550080208118643072229285356016263748727163348250049629024972816860601634552851909564804230429589102740919213758110784412441425556928623884786628070240314069030326278120441528798447155162382454962562374310034964680608754634189431282120808305828432322285661540587394212226811206333056101885265188634448082141303506270233140366322072127622287611975460922018972207658257350527447099794570921340477420260774836599779513065446262913607099252748170614574165413955287642234540013461814291143568921551304051726024420861738862501551793643103516450257948769379647820860167911821442135555773883899572313153713709386694108558055459871383069442168871706441252097038401732240856376314948600883228193021653786549164424923481544553320904697622838595950122144569261444064323348625279651589052947951892532240031198658305988355741478731390832482924727622999493315952826628690883500211118584968418569385949277880143568564244141687657579314868061424806504290540251791502265294092657734783432774860055866332744264508473372180261550739450651778093263983843131959769808800336385763489238946638962974654004205614002306230846503738860855428575038732313267570030236496380181630104247030872686651327440236651723206627984278880982931646233590562571790255194978459490386163953041935007224696404852308241712479528242643976296450757945096645122798639605950962624727248822162162253062934051396904658240716606929900040220057562989468448674699234725968188252749309205500296068591630760728535680392456214834213772374736096271845304367337405306127435327779400773864502079134903073811552331452897136209311057206019096541077135275099498825814946309008696323095550688359450713182127877830046405241517925733462713698712019823577966011582432356161315085418689188615778224156469332467461786316234997119094763184760248056342703038893437329733563648170059844797770428361116365909611364426493459165295472862125390856882669946250815120506341325571369677065129229402447581810682515003773019424155153218300510129523880771505604962879138742455304288693169838126880981725264131253573607178926295042283951457983672925917061540258314769196444822399475823988671921258273356990383049820698365707248667179594231294273776496863261851619353823583598303751272791886304879371961213309877330123479950771635251930398107685932743910879128740401728331792548053602385435537254268858661444133790926075703554552423787156055628404949089963377535189901476180616481428747658498757700975755596030076554704354455125525524011300002307785660228132023856243202681230661620577678010520175047076833324781244340451248586946629760812879434608115618993551596978916297414361043416825580939884074635791818962325730027814487961243541701828686453272043727047974545165453781243035927681742714637409282699499101217495201120310452900212241042082735002467187192597238429560226533614073744644247799775875626971186691320182139255732267715632793516886800285682898858330213067144172941324314976261578734045391269709608845958635438369379722702143525909894250874155635654325305201241506203357747079560392735661068100990864987958670574498770176443800088266819001445437308501424643721484823458997141018467157831754083847875473219428903908952783016364957570108890025309271331462986639887706335688947169829402626902124300618139701442316664434470757005830007857372089453805711574880660573917228310668400620054969696427813849309128280194648347685133932048635737243298142073256915748416141732514834288303240896262958021892608916731024967143628986908620253761515487109299872131271163332167811311249771253348443045104105974979068455759743034220412386278228264948168796867408537541324108545882478969380181041547086953190851973867185670642635240059215064031216018196223370303771801067555358350346898407975153526513872329999948376395618111762255990565975494782397746836003000244088313501529193642657717553312165043816593881764661651885580309582786677652320478453905406521321941745087067729294757955693282278325947141089070978551314131003124644633058497501962581340104368953680460090296321938752538754926672333284197062397703134262918069395039443491602043588473684907085172766862482341254409427182544348625050391755099057262311289244467968585711833074763245810480939723127160154358353747244013742762783783203133646176065805685325149866256743341721154110724165879948508050978048520887491962376951477235475832243464390820571297830410172792992276958980055207717061382527837718731979042160674508885131323252610929206420408069260945010646437306976689528693912370980640971497219613436341257416243929276250257186699780983474299441383250820849493873904794227987465376382668775180809211327876978023196253017235581536983859831554711571349740112433047998206124326743685167012213964983637444071268093898498017793165256003004604294381659017793003962740448100411972172734619016527931610359783681946639133028617125221141596918010038229039417145955211258862181665777849304080189363620689959443925579529908672756097445419472087907452390837462395619112001496433247150669796222956156233588782761143131677069764417784826857915501615477829876566880463603081940981194360241626587112507036526459443381404164580332619022786649578281578085068337656489556120345336011075465016419804064230706617261132030932918627187384302095672582884800793248677055280909691316788996964803702172279374398636135122021615259085014284440345511069330694025866472820602338733416076466526767880876777768369202711995565082373485089768211677003575517326240577005733717694001567566262820358485792257304359333452719842731554973344536494471492207402271688367915017865034664103988523904038668174949500859835078446101175110027195076131242280675930331206275278655244312599582621041372267203499179572407565697968991245861220965931397902307894389960661802157595763919317685983569448720026661347917737521817338086842084013970123615830987111313489185198924356153590724040712570745494944325409718153653662151733478685859494984082980115098892046115916940748089440276873765282960271733540071175549138721269536796056526616641237376189018274303644259250691348644438330915452429004547541069778424464393969677264693564943840949073932092545311140909492995374515094460539697037841137250181135288377491288003160752488094785566460660718487256274214281385684692404545077639530603522780894599098128304524568552324285691620513217257180728890469424257771502828999091274342595305615777855671687611568890525062162471524323992138035166921470366517436237284256837853870641732524228796019176945717948347232360601702304030182610287095757535650083902105779582470045562073546065230318190920849135035420126530313146182383894646218484665058894805255707336018531533106935134095850174394522270587156182411021062068197508666489742875011064349617304059958312609102049388043313699063580281301889314267947528154313128396631111986424376881430738263303234091948217171737291687506358625810223770790014826359438949259736667870510506561903053490043138439638204118971795015937833205855182947525616009347178207583336872528142208594739154405364978632521506668212882254937881362317541904115415993822099713766995603779210155913231757346840953741571566949724052622907361367721437695403435989729962611171846406972442677923968519414131431379658683251120501957455883786302818891369507411959238518864869804706178809484387390361930683960073129127292953409766147308049132457409443244808757568961477224281141019762466088878938373304506002012043231388028622053958401080205202950515985204241363354236780318266720101592248315749009761191512766788043129308523743324874504643970012741634598611269511703543493226045563111754171625172167460438760787667755754246227346032535013644986050408099379332388541476417573413349640750947329967605626649291373927437634687154610113667059439330080239257437612307829042950423037114715421501091069190360014631866598623028567716704600228239997538692479351118308207623842992709185082885808810123847769823255422028065904404979129560416901883215409293255412577245100712788191629388205828138090388933863233183903081596056483288449747224236947777523522650499771797366061422298181606487204631203236696687378965586692166991884132691988030971179963442358646826085228096064244535438673196642797145106692066573359988685449107211322964351331647324824356148335789510527916007203920609417509009644178042477399942352960653967076106145542196667781995113893718216033735277442993648151070088661421715057279206136464476094694244333043445627643630416689016410091645395818804155782063920697513334499027460535158725093440236567753237937828179251410062378352119942549244442714834471758688838896887094096586156612695655046208955472945983564884070285393256674208196240719423474747023484879568973708661918562019846060796701218435689612167942407124713535103755462344058833441092810593826371063076745414146716214507222902315137476615926997094710131055575774900303569033854253020724671304308752515677435363123723596608720937957004679739441630915562989967619722886163817562162036050452128293397052003725897719911919504771780238576698770273832364868187830802342524842246829664603841295095963628242502665084552411192043938164847020770934168649126790996544067940516916268000442403386452721944274601209692548067357503370855023127533552081368934219654281580333869098738755897099673138060436119371206681178756390836332064517904301011951859911955380774223916824132905952047193562609480411758917537597328496699905829619921062175128761673294077941042686441265296870257119788524503270176013177318501342143403483829770626471192164203078100335577183274191532584320066744122113601781145751306155855526670024468618842702923218724884217179709977677863787989838092124296556067309859315400202941174054363962498340931585192991872591407976142452894721415892589925044181356497989541328936595542872772879453401531274669900066706137903178252970119594161806644090574068684433759545514459832943597980425148356462418456159351303579241069948935069945943552298269680461482083950351139417088416533923346615150310762498702663335522639832400475746616128447167336539130129525879989387340593624374204771305644667212076364648344710112230683461231034937161918502088008011060069363392481002210866627235092715937175196955908503145253599302411071662747223209216455619172718620745861161802559936490677847364995054766335269043211815845805393996777306230593410004500152812050747483705607344958933446357458108281191754298615719908018260271057135116350740307575871048373129482875034155321269339639925501386478210141943124282795183575518745528773981371447092386580221999873631638109002788655167614811122463071480050570960761664983585869129271221547733611157075067907077478933028290439303874466831757680618472101639948525287959945404815338329275503619878907590097449327887778225154550838628433959866710805722184173874033677766826278378297780239380867138131055987852295754481660777642953601380279169724872924649248212745676541961940221410671638144248686269286033315351409359216686017454520296957862728839248164796454814804302471513559326525935028452373361303474573573421725718940926633738638641515407598135677780676445675807345649173883183689729319187101644133056838392628468974367578864278149202900091743403775924285466508164878805934419383962061191442153876748456666930025310087138221695539469971532386645376467041013124646921113614608703608171996766354911810025740970489111615095804369827549674889194221419861617956310519571248977949682253783513426183083037024751033446744222697549518701586752956129463495890556253008717601564992992268971970430827072779339180285886121937491281844415198648166768895361037810118074064546032239739242108162755926303115754048601319360385318119925442814868676516630403572436897285316444205111595416473920862023770259266761773026831046178770663188645256771089138700468897899490400118980625712386749024727967804720470106736149796231313564653114092349812727366548218419628591392313120387984382554261099626900738843756730478251996817720116743741333142285369771091390606492032082362432569896903252621901477750408341001334603942963867041607763235301039790397245580503677077736229133279701268703356709834067069250918708076313972280447130074849427009144395695083310751642377213544647365238569033367740049456994370307073790116098966732899285518781930298193410970055190565352057371059207351368118389411991486638615294485511271344088570813534743397788058814409119996935940474730319380331595149598943026988795702624143391470382715583213676480367453735870564525227743692125289639712700386312698666785416550997034176538759944523849569451803593043137388489448388998639811456619831218486297149682363352624233066787523870110220337572400269008578436627202635326096100409230351824748873508462743024379909603295568500562827437162771094568818803252935100037134406888918398539774225720435685669941362898381304723389576858018635420196498802652709402573142524209518400901682133549166550000090825116640480842383058156965545643228541690067360351642367524800317279677228245996893912811253270264123608038669148695815021817700967108006368606956569108921434806556510860752286843133312724791051593142943069913705317456190070262750956654021194812501630706890542101949650237548492751377549666804904830194825931411084778954138482243690898226114526082535130145031390216169482669661876530921743447813398868826804823368112947797668781417358586247019737649787980676210512063564774821480102029269336350347871020697010924775989681969220801889474498561154368050856406869336115751303925623885989377341056295579700076314487796121474238701348840892064253427739684883090704433799443158077505356624893904501365058445725226118831657963355317029400023930744060334502812463862331242697674139469251789063479550269474034984206370868740407893035948665106088420668943932333887776609864756937003177225481192314578529299907665371740715156657557280590764788152173905041962080341160477090322065328403551245897798523253047577330299649414852243903069586639410646028273779381581559594220236561198231702647875509405747816740168419519072185645368528173891256275894406105959475380613409352396816955784048444094118090999208076496165005435134638620272345146666424592190646784829503436652344487495686398559576018616825191154002499955604293813108240860372321187604428312817783502557293625054763929061889139860956303838240977462497319405443473102914919959554194762786919650385500917912974812555698417341142031651369935297952143046654621836975824900619956273125012896554003321374222094843264640809346371412843198028510521263004474189984298897226189057058252058237532443331018334908099888769741895243186013193094182454101130467014206039288520347503946628677066943075041079633134395085134248585928471407501123879701025536444215174476442960491871255066498405681153433115198134428334563190430423842197264614090253119896811344975067007592468971102189689468468553511225593670388463056377207712678867360450107641778753377520595964594313388153754049023954626900365245153080508037552553902095005949827492602146597309288762858974536292391683977340389944024746801436852081698284237749970092202789224243367213227996150099940673848400322203954205642061236310222709835423348161604381736640931687574901696524798098275033818463760025580584207133939397355493928874794168550074574800418943016724028641941470889668234865627688272427637625141317282433741631228510683264210777944555712564300999504759692367185369694021876524161284190020682251822212520776130836088057125242344489174909409202766275663190425138067153271188475477838265912045227751175951002419887236826382375857055539356356386930462627184151432422312521256256398444699519863439322543981746561050738754197805512582976402965521688859275409349666703614000840093134321700090563021150686645951445916481814788510402972958713531012218212521936277412919444146474535122554935983227166501676985287041907723161301629417973259807976734759955905069977980599467685959107432928916445364761865559177357526064421782876120210188741508926206633903831349240992610914727236749784461623412245092880738585771515685331875319100612301400198924043742360675764180577325955351175828317203548035312112971410722393498861077535248821355471794086844781124755866159120750623533316885066995599268837479441649052997691656269551300117408149715695886976249459176746166472813464192805499878008605132819064316766194804496322702198544380718753238721446107804930747265284344542536826848559254983300377798610404252994270804762166654309370495436695494657625391399622131704849164428833280499325428558371345541191987909868706348954732389264096873123186303411005523977013712406204790547024140797722166022291405910202122285207012896696066600935759822147714794719003531301881723691179978794397608697332700058442101791461835051341928105489092494053182200535425281959842272967013046246786227757519985508017250060949867518153845799754411300506230956485826900569877278062578941537429004697690080830898372764939849781887047551522820600995493951782097445525797707627140715306405024274838177957679220655572543256409469796756265015102931149579025023470191520742353297405337606474541118902037123962081543726081780354576888691969381849337969860872614582820788131742319594217212069638560730007450530084647742719527340193434240213422406956713841815337681200424661388848687194031179793052090317352683505487575247863129935985383888179804402882881265433261935464649529153805374496718516770477442941689604863643002393838329134217923409530103386083425393511371304963092854149084824171577337278252750271145540348963384246274561625363211652099621531681333477161355827540908678774493438484487348974480213641490037409493286098566119301975248543369302834130944510880408377080598781407410661500278895163519334919525175950453585799561716001334983246073453968449826958060210702168735244840448532825508364058092379612123803324890107256664019324970144005629840187859437542653586431479320381520478800503178376775653874653041295214316029614868989749773649637035719413923372689648791560481021975541509474166785172960403086315956023771669502393840021046040308939607124347186364441905674231027849454989384879146352963354944686946321982198128501442846615017376834466759871826720187786978097694276822754731432949462493973788646519115494168149610463506685139346154733776023224119233958812025165931019918906862598690430421430353771301703478806848395302233231220857555722372085507378457159898378748528812806179601729418888715830021781939398820140306636176073962972533785511918855654985523185298284201175081064276327093825459466765598054131910345763914812555367756927152783381334171990298377348780958747483166081142683191721781150462207927717036082980607064740614246409253986274911924634605278364421994490078305687973084484802705114718173304001475864717082223841651546840158016084560632343471668027617540706709011524274156872438482173173628018595186916425323893516579044903446488044923034653968733152129917597609325157880506644609490223021129292337482384893442334380228900147524221565961768069083067640846175262014633616642720544695706180576494755362961239659965035101685671050735948065402062064840192966300793207889629011176522770572463178726890600094603488775738062394600691421304074132267797622607169106561530498860664207107092946807603511464933235908314065326294328388129890645096843208749856236061561617894866967343943225343342376028094561116357459351813671811338637002540231632568577198007189617641862949880414741161046320133246589012520497171073306156080859141461365689803388654931295564963869235147227462017075785503349737534557482203428924517035008856011528828193602994602939032807296967807548044760155585207951163307255075274350124606290733672452273968566601595463445642490736032204804811546342214035450254774981528638657904894752095270988468876540265866295089380945790083303710960298593678614426364469457488777753424409186071304621119731596972592849086499055870067598119529867587529460644598806182140318802096789124494914636227989236184164860869595346137014626559624561011325824442814159392120353331866596694918549293124983945487674116451131970088797771765660074579038710218917674204635969308834474656786623970615777160150011339769511785537814369529814369831706556013849521600895693987302493762046907160402585420018387789524309022434993751165607075198734374806814111386381419109746767755118873642483033091903105759351828129031938924715763366711725218854462176943866100337429367735306129707282608292731306444057045813264621890394409384592845699546972231606423960823111451735954714303138215134255049258424679515159659672935575730506236127019529769913451714074589151089315772870660469658675395933324996276199409596215117300310115731936323553770980434508896814163886771740641072205613592020218138219678830621927524015099133396453415101972939699249306785748304899434583441596629425837159310010938602200605271179777007088239300666263156627910231931619081992145925806102387376323661062678912546084824024350547798691576087727748243594528537790319060111594950722393102218460975625573356141209103413008131422606238617940938434460207681358129340728444574958595965337243328004908409781114417887004112390738018206277784630784039159694014070348297706258348172643663581310803967270274148048731397467333777725800410252878226598897102975757315233312104307542305161437365122763302223058400497597602531280741198969406427430546725378857083601535724847058067297914776111640417145116837204716939168886114452502041222201084858941381673617298829130112719089612905240939241827095418306759200851295691865567137401277353616786042973524972695812145137075966566960567263669549822972438598360168256360668701543324191848075910583755677335959784008299663847507400649059092921901982360914619731248229594906936958590655511930684489125334852820068683324708353792332915452183593797966679377017813428783334706156512059477704773353566110390190767020050158533574230502533172091236171396810261810721484399026410620143984330597550623580438607627446253319518628011214267145032366611090286436281161445228192953449391356716170413273975818014391754119869233121744391682146403937841213949850665698226411592088900854849371994277205854942213727349168450310964138502906356732998229020948332080556757154594696898114046014515279961509689091018618801628601536671799774059711778281943994146622104969979827327465115878988789628328408767383126885720472830459303530163344225199813186258040643202169678879985976192079236403957610560823006413192577122163875153253773327863399598603625649230765746366908660888515993822638587563994888055825147931871104765360486901387894353637333264043472383590501499028609990216304265005411016383814173759609622471807428739201046290479956428042119735318188741865491885445993929666219175027827560278615899664416489252474520563627574963127808347709156006953962862377593015090081988339016108900611603322760416598262228597735305421645858309152790452051165914129832100774272913264903592170815596770600443321175297110715200099290106238223555484115938158737484973696929284188416268656589075515500113598745791879668776168248501747280415679820043758645579559982648843398225837613992222013094060022699221771804929131514419948582874836155966962760280070396113087492253040384734578373439497061001096958864236890629137979294146144555301276366235773499545871599939129004240438087050533966371717701919883706084488124797491744632710911708370405189625918751454299189790557979095298598312870032122796307064454470719037065929060478765554122208137781101343367152982067538036510149792421390008290479371573045906416987463154243494929743288885192384669500511715438757034119148508440621052671356599036910736835986439456553677453261537157101793354283313640469580791403159804915529908592907062700974162371899183560203553861525605793829514048314158910367034405906803480818037777928863758747832270941367061619783500652593104501491513088755705787259747276272161415721651653704051831611790261397573268212277143347751116773091634562878735029868679919589248473635552005087135370673684404359833303410722867716630390190682253414484082734734724853222957078729470649046934624861378946107475798410831828529829939631380272784473273853390974838904142117688609755046249360121151546745530954550719717462582674429296680067046078929233142923826093542463717543811086176197117436587991014161139167558311585916870114936680289861857945130326058977755667693686451578958555887282384340839135833679639316527777490747425307610723956063962131675959267951215434019569495815758216835112235130030731860213339295471909868283350686865134153714659702629264820219039992735986393576408810975396395276806518242327903790747746447893229392440065259559714059829875327187848626740999415517826575241555680779136630494103658050176119568973386801363805694565544364785414509128350398410400882645741726095027814865149594427003230746435704295697370534418378956536967477469723941594999462419175130812943905097722958299203211284624983415893458766646119008837834369507529306235788919156027524780122375461203711559553798815867823412835321761135374420011342222903028629666958509390833649754218868612200648112145533222632038312759801658335540664250668618398681066993483000149054594047415420624514048352931518993066686246185414223251905317493544393704000277021064479712697582083610733620746908791242003944900964233039880591032753654176877342566468928786497845899058678002529841803585601647521283650702030137336428086636216918782921620508215408126602759680988442682700893611838027163921720189170739856045340807214382406041662663783493321948448347284900141362161305230699272519144510663251897542969855070474592413248962133756653455516960196039757670363882556679144590544365978331836472712637985363412053998018681361101558330066992617789797936774413884668038050924786906324637009812377378549126630537644663021109911949656278606962718339938895534806361214630526039478355793128741872834790747362359441238969605125474547365283110497215277079321367391817014675993729063830814944467701876752154906297096067104106160332753319095563351894276140357789073932374147347679354986405945326016616545999503072977330747351217328914070239422966849061349748978770998352800039942121883133160963465092803814845550841658769847028899155175847096194365098497346433970570568416522510287115854402071033845792236327857850756641147564555019776607290880091646100049712061347128259086627903239649242458163207763281039219792092503737896771185730832603502826330803892834846299928948681611663174218293106299116896395799234474887342990286116494716412414772588318450318037001134197230695071673088080242414572905178196763569598963304061055920397408064732353248748209327781201034093091025893018366478559088187362229912204225434266561511928013289755989339960741681871708113638171334177018763791093566316123211465283562791962756491056756356617188720546291349349727309801457809485320203767875721915993863130182519822119091342409125772269837796906463993296211676199320082704359383410858972997808217416878086220128342306838018867834094272562073754441580370476260965896860076083302176412881083451957215510444219647337254596053930637203701550993631216693795756364486372447559379938668725862384106513407981594021864658676065812062508879688905482190285599306596893030618830523823847769042648117070559572640346944117600877475064554834817256176617038967014364927309656979541658188510651907837248064054973852430451213233015617771208919594853666826531049204715640336897997555337006902027404593330599636877517127386836729117556682909254774280570130058715256398581177139099210095986163590285647214067330624564354239493033067113774629782722577901610131145588386255503225308184536250375618257707555833778419937545041744761697831006007196262308148725847839648737707783085347889971340648187528105443794095889251014207815770548708100604563618421955789825233204440052092574885155178981306886948533187433299060359333004640875305361699901757920470565048320737300782397721579441286853752650001250933678903710806345311462796429072896711786025359142740655912102765617625391738113267793224142917321701631252133749866033911015202396941345486394815501617539707419443732974211471068170773189508285485934452985136279874828302678490991240445560779730426407803236006967465123847988919711820886343183732384872665049387735541147081709394855100443485051737552319341189325363987403302268752123732201005983620818412544977314015594362706712518467908475099063069170146741921300869974874860343434498831399456978920214380751507950936524136877628816309686409177567819404556934523676460380042970460409671874524626537752206250851834025917302769228828919766093822106887088389289196956280648573127332796008071724578235017881368585884713727219372293655118277309993728197609650940992010189450529190661225229701060168927608260739163908115864149354710317378808812739036330384289578939838711043071648463388689502026302360552580617486183909061745945278873893256814511175632177229160965288831053376869144024753985859929749179771679808792135080963983957513951607569016169439576321487775321138306592448207959870110148477719904628142223045709469629268040554995070646901663708177032209328408247572215231759833481584878099337314183063376134450349783458276300746964295688375492748389297008814871420861441565281383881223443570410975389327361699541089289423735091792559475432089744604903524459269951405800472904911559369590477786405385953978667661714717659060453621895754287124394187446425333786340218640116858374648021130304132089732972039348866333154355126785683472262768091924533285356510921441543913831328587463197521700615208879885279611422469345521023087683307896805942501002366111189115799644191388831332242182815614732246705705210640878430719674257068761844912646188352558977431758770402143589787349309519371848735263391712181818027572333670966262558638747907986528518187006035776701008500102474360797512396305008557324022133943732046774973080503944903779973121775571478284343600895848345010409671425271488735337459683938306108808073967491702792018347229398528690100563205573361091172723617695820229923979451156718750182004674244464351312923843692558952255922306664492728014659271579946718570041162368246647828248120524417145154078907092441625021947868765522040954786652808672710232122181131175516381361656041625272663461599424404990508782809748054276018416175375876374586002650813592017394755684985250246667105135269926913256251257393379715929760288577514678050769719112497634239556885406805856785115106771823331788289339588968309887778106605952777267603243093683250898147105775825038528047454680286322512945396806460417389717366965956538570369601243586016085343071442673505457814173923757309598881298785682105949256449220709510040040593255327685772736730485400208714723249917515888135453182095901685277487573012386083728993797300944839211940736519298749387006348390930318138757633897768682890583944566341117424220088696656790525781410909028954383292576599191083880061509632154014306730942064620159356578457912438419571009074146612740266837090484486460317327455445462504809889337157882120284331379221960259645415166706072613805034289889903604150328585156774414473393107448334586350351444889428172491233920610902596247944126690746366480830738751052213933392529884728055136928332693850353739133937660287398457470200635187275680617388651481802986168652456537813109227254189228221103547359943957156761956288468759664879270736360197278822250106382753137014751276374294488949040658710634559461341956269551491327362821622330232885624370774103815000881195060292439057104401689382098146482239070464986384198845885588427248560129383641544267166391330957388507553699941949091291793589331486039898906430302586199081841772381448374783477098190404441973624770673486855946824539174804539444551632921002466540839601576380304658719837741916061021324882678785378042876010371945706377226247799163666030603458157689938173173946007561541137348582042035816192467969826601399121502793409105590011163685333274111466055760315538065166290819671268039957262798217545257608422528423380966671426462805975694916036192587519061340404994849975761835540251448841072522199725767185696216517895311710306483461730955106103562290210646859772510558118598301466787911358749353482905705262424173728131152699841974757580709030966634487456670611940139387675692156202348596022573246215706489081647442090723292273854540934143215074314758995167335032703059556079575428818860780506745213842046623525949023272958373518606015525599784459977202619626757497966274186219127393104013215874564883815732597309631717604035447057364769244597744238774511527586191864457322410095397176516246670588163468040851814276702713512418960029469803050366244586474655689752118506501669509833753013733396183458927032133293866319060726155552086448501559780316305539169365744547115617470539617928542787924155522089761844286288417279611582246587703360168020589273849685882775750650947170396226649924180339863815427831598919865979864675403983155487674394653103751321780339404335117783284735927823343542318115108998164095127786058942288135385608743462989728185381182429815537385237613656206917092217426665816228680783241279073648575779063308443341794080248194164663591521666943962476172875193632883781202721304404542394736010478640402546442108341932441077484542621350575021604284849413431250523269090642348810119405090519198656170510817611917842258156757766545294855897068789445975016019784482167463877185677013462028104252323315270916853576144025870675104959865117036739653785369941116289661516383355750677080942326465308491763366019631395294014736673724325553077307238499628794371919016934170014784120922731548264047967560016664184623077466806350729351276248914794705368781360588812210881940225392093678755567670313047656684497460640713560163383431484283722819175763472005676769634997936631166887321150777492300747351716219198520570885061716700244075139577360931855363370141392114519459264041338429838116518400529626195747969057894052452564364894513998788047954756760112465602632941198495582988463710354224885623092209654393656136767682674230064840058004547565617711775160259224697582565183513860432835616314428822772863243638600726540946788457362060966221161834910679680852287072189896710459110123989905988296335791796393363051849561331749426976393792683217842662896636591738101495117008181100949024894405570724064404535699910495400169336463765572086246897094355032546174082832181125003043883192069019478562061053055771492649714894541246270688718882619649637422679557247964008078962781786454711653083867967861984988560694559806033587530484562210948601060533822603149314541078722811850500735581302548940096944443809355297447636703871995956698083314770253221408719682594758846611769727615604994573373714749840614485733322556926764780750022517291651295492131550319437586966757488094199596147733295914953739679462713650556573285950170412896567055382819884774969284597572691007950184653854979536057576849196938836491465603378786683092897851179944435764983793297243974861192218600639030077719352155853123634514895708724064773239511783180559433171436300425805393396779487622376545511621802734576447085175781119246541409569512183420686275272825396169410721917207024318374486395747678204797032437528864184882802638652427447829328059796146601857243277735123464038782338871912427513616920616777235377775435137578022936520907040157994587768233167336593911015626340090629506036480540913080019703936472739405655245030807548596518801920614634541571323020288209395510515736251693902948552177199733066321057919076173667838424319562868026950796307801604789818065334544624221772002715336054743188169154843463300387982578109706142752070353904276134803761895271551362454735829767964676065764010105582021710282039411272734959575447320034956991050039076712566034616997738280298570125129071779998813594247455784190733409758952355725017361550692356918990931478672436896196755921230084802073907734611403212890271283902409638826876116280723680729399367172376875007980263031483405380338549772476551421656905788163328285446314746947576313266413620647490735298815744070717490343495294676876063708702707869209767971455853052962868000717617936096413465087447651954238894558354068702073612898078711883796258450892632182838049229967982411442453801789888545210462597373789182324916543048103516082624110583646707165342710276566189486384441040742157989356134340165296676929489801265432672513939700347790230033593325572145166807244732976567376762097814722543079942522275072900455350631506118166169627514861438705642948922339980805088514465498116114841021097238438964227331376133189029811298117108138492456424318663027849171416161358744328691375419862582371516582752369992761825169825892095729402049679206999555898896229234484824203958314505012431742989077812899598286306377553644211463676147896783381007693471581133161472953873513725992759200781164919749487008451985112826294999956615092976326482908124336526069452053623712140828417590843554659759564968180917559607553268771201129243653659029510650318643934540496914394879356068140149862926444468843952877889688742349722049003842269896303417342285302169445509597993077001570118759147017689798202523611175021819970883813778662542628467465102456641231966214512780481546256229246836294454620657503883152354782455577888293301796157495093704567462966605513634066838461697767106248470629333128734771720787834938187968984726762114293516985455854988609157955054538337292904836320747006424119159910012968002941935801778143488000661691861705832678784481822964157100984092411920478078150948504289169941663679032772256510671625109121529604540346424355777268129454985577256366803736334954882092698748751456407347263690219296288769908470364903778670162752060816404263104120195112373190806972261523978020639937639102452827445652629406497295634617223648335099064619705496936560276185710003932519656008277286639455443370593016458945380035676704282167309579489655557898774718892104307794651897706231679181686666315885352832756159446333305224177964765702434618626302614015297136471563912772637952466486824511682275024222116571133348320480744906107422019029853661316910847723871619482458614204139964551970278563821363699304592046789319341358917933170441118440289518032605265196047326190086051761984493736933912581528791739327790326001176799569547752064673392859718091601873810984765104527871889361601224384463657740955452258334599434684465266205238297141900763222270782619381811435573686860737602648556790011142458603248699773371751515349289945996968702521063781506226621261836781274554382891169516376968899013119113716582111146808068359690885683154925968503753950604771817623175837666499024361962312377824186142846798054010475792954886390902804652829004298722685214514838524018974911812507038253065927134467191786732108205210174315862704625490608120987184923533771973552328337654626225389621712959848782023844638412595308115651389792679385929835817286350291150693585632210648633296726309962720198501749925654185625381795411069878617042506155422051709725496700694170052265680710401801566509030665279133593381067404637916050454987030325275610832867729311815727997670376863258071747270843457811562683868049744404981169677296474970639382931109216497091185277943454677883597483662843030653630508735745639080651352181989628735723246867223817431525690577383760892788909374430858611338140647574995034094553402774542926647727731069438033838928682529728028831036824614198338193397688392739902474105930179046264988250311718238125038406515998193359251432077541751986221336928937666539259587804038131361094475218222778710550103224737610928935168044789447123200473984092333484769507840653531431704583977009797066599295006373568607724969209278883451442383556524306272032934261723968392336996637254356992729172626688422111670575265080120619663841028377737911713005840572758252848441328584649965833134272302643629890608707873044241411705622204275441090856576939553934341053316070021062846029225896430550979942781345751646058699971955736780759298152215595098500293845418572528444476846752602257633715329574041916675814834170389124034829004912166000435153701130052927793283410986884836118040500686629825260088063287138772522011579414666043986168106879472569394891883587865567280418785577788165823545718992816941508668998733005339137947258762139742683928484767547454159593973922101497331314637526102904180731039220018226622000542281241435543822505146490100678860160496551766809849892286908866277819776768411669584654497815684090932778225987256133189014243951271735486367847138828115722337310290164488052237052486098065440816485386976819060721566825344775735528452874683159302457768828858954793385185030289157941905143984145343493170941964746903608302279973015816036610200212911611887850624166972392042093079774591863271514380018881505852701052831233497293551071540159759363892253496214970113458872678519175661328793574748655957904575462154135117165921546521720770257816139223377774992897703840178960309606401840118089438574504748798752626284963560894071774195543341378981164837727470800575362251959481653458490292533323713369134372531093188204892995178229002016180361028281772072603013597393207076993872574016804666079737312667199087630459820366414067628083957808858245760130661200723275095019178509410083761085099868894422604035069754355776918605769012846756728364656647067816508259611902079490494827458038601576994012217770232770648189103759957423474271596114852567568182233119014068130994748301603953813686106739587929795348119166644773333870444654084216751890118637540781355120632535629546304949755597210761370542559325098981948472169887508064449162030326246897328390665883271450456288713571827792192150470999669083262092491197712564731210781231499141489607297265954792864094453679246545878886421161845935551111082817426677995090064759316103273590566446517892339652645552650583970291024615158329772631580377278265050959861805005306150989888172910267744640692834654346645909525937209725124717094620608677749552980219498386866166593872963822487625962291453202942958352662099861949333557443133953914046436493077782636925311186243904829987368465765343431945478282020015249445262081576294801829725647214640103908890009918759036087094380769802507886149541693936360697918782331344474111497653493172306403961179925265613680491392335179879324363967821078247709311425416654454463167160727029469612752022233780985932196841118770260992941074426812777379574468737719335248622324901861986001240868251715043418561765860282020741976599344836878027281000214494306382970150184316791597655859023091229949263412864846609689013317433046299901491764515367560402144898086419574305223617230162614186704246065000272525707473130858154618954231639541347906486947506435595209745962670842220402446177251144417144929988192881034690849869161934189687258610481527067746533320940902549369293271688627401070601061126325860815016418802689211378993004115529093462736784298192141911169229067882961920833558617821846632400208018047485948650525823645361447591534953605633414337805384066710813945877790679215909005846193329488986341965355461396450299219837730540422879144661571605125933051813334461354273537708364305286007485572601825368832542688855934576010969362370451251859667673359369644007894184146312296610545427794919083765320546441746920359129955203715628325878737872888819179727601460498444670445768221845722074931657934695160361605267707276910696558084735548108192845037771315876634711493750313042388847232372088898964023101279126955694598333744203483354656482358333921966155677042026113696542978795130091539077286328186803989863915508302387905172001063840931575855573984335257722032230745386717028263062391421702475284410637646352148351690256729430776518754055327693816511271146588606019709861547830244652071956851589127199269014601622412732600766181702472825317074573799032475191927452860652598854420997812014494232417999815021930055250116445441923616898302093118122466332955878007239808212820336562104103578660244428589307303840885191756181227545341165195265678072984359372054838386811806886015683478673086130818960374181313255883074695271792676233668899321452295971928430248180501918308085938884983810470505670465132640187384617776918066432377353949832626533314117287933599123662980056116522980916897425974069000627462557857098439698306139856178186684786512281870044017316887399313181559335506660552078123364927360667672976842439035744704089950352584607015009277517216683631923864567970963185882912464034630656192709049652505892139217868972711870278932138706480336420325000098235862734470689390315239480958027264315879090353383890164139725899771189886351610197994830831193077841219374557793305674368227334869721417023584329974485633620687738977267038720008850397879882860194050397668216919790707937315034320399282863320470136039743698363029637742041170701301887317718686449888639579830788641959701517537508703293131657637051184990121657628901658090966316219852016682964876938914706089869924663691983628859228367306921008192020796301451942005230143827758464223784118050351090750858889624150418994378187978707922923757691944579528027466216603556022098709441234907879326326895811827546426724464647578238514327384671213901937437366789186636787907958997779693189378288626922886115180289792621787455687576017562721912484561866217706255999095670070603053169880447008441346906674440023095378148253539388135342876442506452506718982558025785996359737306491177961356458495204782611745006918758970505638617828635160839995594196077969893159059305720597227982050795527801587829555973765087624081288604970548005031663400030074862911251173954645505811317804361411124901289924234737032028688645591119049087201071534712740844470234513562218429508585512037387731484660828839396201752005371195217689208680702574808778595811862537447689655548485648812294932318696153769092434768655521021556442457423901320571597040701372386396609020792909147807980608643131258215736461756822601867681360376797691361944409588050791402100105342614717830296395228918554248020421870623214550136456358403039090090391286275517519247668627447019136379401858892426196487008302755970353337218811098308900482198909514007210644438306156071600624891808301684600022351620279736826261347634108341456740117850753472189446062785002129253634186892319143520186646255465706343787680359206009404683214605884188959798717739010807454647614085759480207332146891422492564448591762585059114959861081599664046580627628600530050107123809071557447543433981712751786133887290725355210454913179281820745224526515516731667861862779838927695614822650229079797959909070007984340574404004756691369699961045380402920525284993460746289735044416235406006512267743706279303707133233041946539348318575112655667279916366507023319113841539560674248482157781930879564891436793308156265910606925025966336032830209117111922969945071070012792498188056643257727466066624454648490024876869545021712816151949714273793338277880247362956223225909238751707608833453452242890406711056340515951307075903215254102635502628259755768747543017450442029267459457231876624374183930337154734975856939274382120502308643839498620053178678209948655559702775073393345417397278515491968484572979603837517669376771532656466809917042074576440632833977424255938197964692249306152711059663291405267678303101672647547488026991410909519563559367728543052653133355723031998673762758331064303934065177956879676963930632082103216157830968623877028593986947364910589476715144897615909763217788493240274876435816845427014485107891253586971470374564440794397044878513115542450253180677456445756833979532839279906466414162587836837264599265388443532376788599863700101182103946708152002067045602681582253068581026370877421856388979542998094497916780188665665515428593993362259400587265588917206411937163144512548158838410291296863725531805407652854953231314072972879795102140913739525699505278129997350044740043643462240752088800237891336372511358133547232775407479274703014473860015093950136169818904817250348416158486620600964685180947285435144353644667556582039518954480545701697784233816764235945392971157879095993687168175314808240269655691692298726172004687554481499305435357910816701422490648467685543158473609050078758711307532071666474719224772480683115431450167563510951739079317043378992529579777429516098194618901705230771078863313799211280807259514835155848418484590951893898462749723811688991789772182100962086115022453656184889743706464555968818765045067900783388114700744825571940641355329773517009711361184831016998483346215273472889847130371834053786859612766952649434072652621625206696385610148494161397588863564710669140555416944194455229404401106252583248993401837626235341961202134745372977251089835033035885612324631117969871722020999617291619525563532392224122079362384455237612771792525610011737441073785656828939093483323844872132367407082038553625333106998223180296364625276174644873271225959286060731588778129722767609745246702313959966111373723246669007560951848547660946567684680408794521818764526166011210233914676560992803806612872775173834361634453366715811298986466199325968832369879738007379456630914629956245276357872538854558467154365598519514310671555746453030794752204349391781491892406472595030554905396621102485307320381757052325880571056217602308195189654221798600028656109011729384351706462857780099096190053671226396495384764558239350618710136599791784663346097588275134499212074466158759384679037877625220861605087026437001118901671540573570856556650702552194650413219714622937969178714426784247793925326022319447853330198374521267555576780116185686479792128179987983224588382303591911335114350855055861370235031432862507471619886419203714130356077269195572315052279080731803990690753023390140140763809308041549275138780505510723086202461555754437692342101645553014995695311011940127758263271995178653714100897770734748719321918768579437929319337481900801119568037007561311257432923667123011539704618290696373264042105070179961930331489656730675958052123967829028720262976529887078766828159761003255457141817124885360416568932887073308869805316101181214453772888899144682830712298690969088177645517417472598446079080557506442968459542587787954423545338080522382119894089467412076805339786077935748223150897254355087800776990073274796612438419813200616818196918515838263121072582850052065473662673773943975135050547083331364391647363037182905446177777228027163032416257534615064476077154775661134701375804172981935080341151659090075658016951277155657142011266148765795548970087094625724700576607994564101843251363349131798535697403778778063723413779126188622376099420630369702449878961802438915668889390685131126667907951071192825885241113788208880325547300969927627743319345812646738124359008385230550914935330742223106157686899521599486659683692739422436739945724010911469700467471110485183743817008771744479886656159567302441409076296620440358406871684586312134690318114843785670858661388183147801734342911582750901819344834327735715699210931981194289678138993103705357500731726114906032280751563853632867880929919793038669258969369175304464982407285508868078060903199546160823284162593071388058970186614745226092898935054049305533338182827408994718658668099876624911888031858250415431270125337929287255195088350397459389763878246013496787393661611996115642139529787467414104487329086802592048391254507720675847100571689897591730525831518730141334660574895465090344070994020270998380551848595009352841812579443496818615469777018625516130748255428398371663155594913583311029591226414096112666110237660667093521077170467261777322038051458107657784629616294079846833942858648646947570617637906271793136525880627194338094844402697209487970312892495995096332359047717554100358388995066581862832751446179701004732038601854541150168194193766230605394599566662626041773699363617795268526444446257784296094854331609433821326983903158257293245431544408853598453993269604689931105464330546275806346480102375436630963094803755299675036135704192245633897141228888341578769781278537775419513634180272308984795706469489875160132213365141128740755600052580150978203959151028647041177735748613034128528963303899566598294528582394816000307326508571585609308404890162918391414346466461356125554582920750507603069339140629771604351271214457683587241758732953078919498317847808705706963238462437454625509741901253634067940945700939572188694958495837252424053705782990346561744408047594634925489875321298288360750665965909173358570753357424070801449460225629587270689449368835392517085640117119433949007147798069225171562192556285772305361491658212679674557854528831515557449680168055675262135883515335617297894423136525605710389609098843783789557051848951814497320483459623854588854680238914205184099466583515924448601421206131324694255395107479446898408829905678539710543692067468297245117550720939758560599581464984124670968111021451545886191138574983938462622642827839178557393747315771891634824089075571389477482403188671134366519648116226377247124004878586455591755586504007629429107538928810015560512512812761088250286718556019993156742191145377989138221928602279592981306893303485656551704768181087625464084084872111526033911805763267525698195292414833273399127323547422682200722210442811392349182755201984178973704019260041632419203655177471972314910750138404108060106146670057040502516314280405083236365385556781068149017898950355883076145707591828339466113263374981482595804393926791981118942859683530862995734423475188379888589051350889343395098480478866757088991099229406424096369065569973296432676039353841376599606900202721456200332031727004022873432427885896879392437545838019105037404152446276126094075759760160258534375715769874899514002657111829363345311887228983988602028371548469359090885744563306378474051705473176236447118704765655159100949257570775816555026207447766863149260106862099952897656722820914718137971972387410407596731828674501001068637895376764531591128906912289673419402744251887740039064173979763081708904014795640180010991066543320814468493991628858610219786017993639341348137736415702881762476645566988907694767502854903666740443566668516932337431424494684680209816902551308220418641275291124650572067339566529764814895870586235096249273069835388304082041607598321376555338925529742318342776089932388490121567590467568129474704719751814132518019449691282720987175770742961082645804815005443818770557824394390206418881632831127512094104830683581466496782062433359075064026257550806263136747522946477490370238986168582694067918245131446974478611782181249262992761747542404230228051277965938968050595705675492157189043457271431877237785328658226206406090710512760426576754328176795881299519496746569464195978987611772509083771765245343429314603496467705020964975267919891413437620194251062437903620776963098518959547682766168610069964221743407919448312365049942096343205113505235525364999054780112624293139379050667397784263569751066594007711073588552736128401139866849098272308637643845531034657460025419835568086845284060618507147807373410315088332085246593060948927839180695125520125556429095369032016674061819293754494727218514960470746940897246369107075968764476270421731236006550253970054243459179674594009231769666518384195426376755177915518570338243974510435412357474997470201761765326045972518483697387532218317808597610067117194850528244199276403615361174207610683552307863445966692932162087963722746586702878690639371651577588757631756889220900149636687716611027378574805473706947615406664375746865792918367970400871377991468390350194436149368368061309266330632464360778889691965324543216182506268105690139641165154082624457226084772942579616891319083458268187400593486763145847934145525285663705393749993586789711430970823139360109108737709845049659890792720538475127415873857295536268724987951417974464711657104435096098200463231312928894822745079305343789782067819050678558153376654601157164017358021733645708317694382718357485958948890615759136611384419088599724707530558587247343307112201728027409035209652373863132739927058844003347393332428827641206977936791330807068959363471301378589534118919903850511955816587006055702659007140310652018046732735621336590033783337781834709142504645895970106845158943250163276481344869763321693297130454743893219984612625883824177538779125697752463843601374206771100572137429985721012040187133268969119938167158999836081263546909193931220559972544647117629915238872317136309990209790276869715411931109287651547348134688148937818637415144209177065719074212067897844507891145503861879768318064352906320733022496616839788322211840266940776776831023122084781674795581269360969206384842871730586742540960498975820149966446003103025538362050701258294802565996106916209357258275339732925921883794431666923535898982423575287584296500405662867811547094127293647641315241470005783612847370215858552885128889075903183086471473639147078166004281786517058125874649343655784902067786398742940824775687074262983488397550981002249778780109781627336850831487752345919781433218849739214202921087297177608867874380794548376176642931333192734422310832483688731706130119421972492205059679872116923057668945809929766945319157381353700096073517187078320101560778208645529693630029361126595050503795261599509334646134090826306288009049411787568341522617562782954986058863154441651045114797123804291695106064219802140172997438208899325309591270596020942699672264372981835819959486315216054774829466557312429502788798770669928911307499666250671103139466624801944391753087186453304424213438885239739900119429275597226306154511626646209652320517893708673160954149441255586624480660946329603157968607683965876088625448481269348896927002878651273422590997678784899978914613266802375993656400925893359022086382538305341968787217536089005954917540690797582862561859666743194556376299307984456124316131659551012828064475611318258503689255772915162453963439711336193381596492801731851814835276083858162926905348524854706605598268915676866061805310076872296404531321008317973030754329792189284291554265790222358793626227233722485844306241485500430743627546930238314575127486894660710380619575096230050993774477845154358424164584494955067656135517448089397276660602225108715120179736800785536671481789134890546784390182619603555383792660631339201930095833453512352719120896232426903741425992866334365049765810368352974513119311705946558682652966159866773405672353976002369591475989772434025368878891636974837981788302011764130099777546354798094952967678322282125993783886092210967208572217793053517494229679246454131017102465376156388313687249527519692420953823673448504770988991377042660613601894468725898463565443671966738438993575004138336718280841286220726390217655775666435893671174792863854221988237221652842026623944748569632875900082608896572426748255685953942193854337746188046218197047651408950675030829436833109789341718808482874505663846348875579893221654555805719910543080856172059756605833432932899869826008257597233818733320588933921031540117826607534785012732744679663696734924852946953279936798395401169832146238472885339970612852569983423423825351477444380853123554271935251232507729142017283811181426104754386916224876453129051811021924894470348240463905352081723742791914356444069577746117403404507738645134403653717705149686698022235809797548821014611426687955353502346768001133511304361454668933187688735154872748123513433549852722456449427831447490455780796202864846887572315682162870089897088154961758488595828782760544497829047914794746891999240876151292633289782366449071492946146692836651147448951895490262744685257924902107541521157652638998135751375995518895487875835820624689210399666349430842327360870591976397276681145347011599312181816482416408497484717685170406570104526166015520130523476568127329348311463603104642852898068285219254882893501747190775791129692574431668058658178171641379294242379051766775045668762157705070235126838729107477891159174269885391333196049049840397119303356669582388495302727062343888550323934895758537893346750525465557186931284880210300302122493737421057602804559242236932259812285365387400906942811807792556600829477207170438372047535319327405656479039432665843144304138686833056267144481783049864263267645318634382377248221234437985858583335482484112695269719737482683385688544564661542604692504593824648060581139319419414476982143109487021192641877399329600627863393505648795698901765313122928205863434659365720216401482612855782938912614877510482662439302064562164073105065341249960277309787151996049551219318978623060374043989779009037821425002742317726287766741388531909528101971506730570750772638738780774416719365275412189920656087839285483758028010993259839803615822141965398902853828954033603251453612405435633166153717731243555733139524109190402388804381441975399482030953230486514596969789968686958286748801145662003450077706077040273451699956907734197484910320016212502969519070211105527438851554301453973531336688038532107746007731523335385152895343078951060562022195999564770103743249485856578370561835842859441509118221011709365248941603609931110969549124887955692498165006556366245636275356595884684055505355512281575058556510149357237321177734767522609155553654281995505097098367009633331796545495899273519900859008312907247639906176602775195555872095031344416260730281667315258708804967241516647274967190399539296965337511944849801485974861351120533596108432926857183926981469247668403042677713433237834727470723256011586257555053965933600225945788078133406773468113484804612038069470753758573114767184344312026758187274600276361176712731313068594202040589429286307388044358478763202695311727696449127247165874419233097015691930091515523743467446817170072231883878964814723478951222202427019790555188208336422744430449152303412170185081673190731076371036115668311567834472637184691001666462379797629697435081022433240430525156867792624655878861604870847867024443958611757177379582533626070560104276249766316930429476093225955568867146902142140653396355411406974303645186177932763662111736278946143635547436802875683568925698397102904534195544202646108472670988053953816309549249880571370346398058674110679489447692179170015725375587873617505811876725689272587867787665342600399751703212976683360919947454807874260145033014229533966323885985728859597086396015799104000533804151144579449786365717823430514605230996587423442499516835505013151929711145520163996988767351485648565826113019317760471675332441001874217282236031008788863835416050757587842986707490135781377033584713225192261303043301896933681341774582995188032690302562885635921268550369432813822485083982128657434723653171655214781726704006463725725178621895490725816333380039365495778834229493084483473033182563029450205821456686859315343799101758646278604160436060981999072367289551406327205825274420533374594895601950005434150751855716260446326047061942653836270509959312423833318137478194203223367900098419382437993608865896179261692938301571656554871286457646124945977418203817678207884788812208673156953409060230314598290219702207169764642840374194030697540857775059144996584546179447414525158427785501238713633662592927941077902247909875230350748467118978006648867031198101137516224161609550605919618739403107709931987203036830296300594384537835532665122759105623540441361881417877936218799942445874162716062778073856671872894975244015127490271032350883616659565918150049825268314016160692979698898648516280314704964436956736709759975690026779367427188526557353144542504931148158749191978700751965146177490817445526629371833064138003379159804497577561203768316360483539285489797818823815660383755170652118686950870142843942261123958353241110641704694430446442614335337605129591300134532950003186505962578241098110671632217649354297570310032534408380129229348092248754274340658184590715769642400993927678384026847670089559853805321864695038846755936969818718276253232935117189013921934259432893728301693016375587097655119860446727330665814812924440191634305963485995718003869022918733512736648339196064038005397939736129263915896204534536371673919016336760048844318913773908889911781286347961687691958204628699695034933008708041735833109072357396418186444051036769058089975630267754788802770163738868165584823790080066317537342213343192872786223443960755803636053137111492218550703479320120076701425843794401377575937100468918897167761488708700136691642501974289059336125304650936754728050430589564911934614896811923289079362231344224976881398185489990071460314532437451524494777495338106431987569729668027259992483042356319851488642185278421165181397832285952948690951858965362169580636376059153448035093850804460479731186710576878213195694973358922377960082909546351513498270170565216509505271828802203674696387558959326301521368239699308267150323202357521793321448040926077157376703963396482808587504945623313446625089956289977864912723593409583418844022403069457055966345514515195993888438703183032739261703128201746159444236746006678875481128513207913528422154026778235392178551996705227829286040971078335445147018830705374977729762730377685671521640644716885178988724188149204227312349990281732915001453541956252178415440771682190213934337768079986175125104450916491704052844597136038892326758014623425369883161635755470117468749196180413453710382518079849722774882589441621675408107882616880821053618757650933295285080332780689096472729147704911902561868219931329686678166370505157606939641849296349880249807326466788956793621218164914465354891554751847934841971649283940753977497413385771719407909480395992886181319070797549978243845238812231523416694064178056025448981896579415440439126468864988956621512618741254549094509074208834275407322667581358959054120538698301990105740207576125005025529447154670074330792387375884551605490656901597127012670505832751442557122060773481010395467731179216628044830168937494525837884121134280380610029524805315439751061250231214038202112019316160402417530941709791515601892673426818828767297924065763410139610839318953990579698942151873230995609328310615734072651885160312710270504651782021904593647311074884245028232069814943418213684963052839062916237536108829026543737592778006860102064438020523103664800861066988569102663726265912608059956295975118049118889341548908042924077344584873015918157710707636110213364584815052403631006958069886436603630184192205190849360825843075444092122817612663086211825066043901923708883454038313922278283636044274037402982049383153895436788447210529818090144022958963405107977027412137240952177104103079563960887675646608624003209651732997040106404798499832753774244540628684181176701545508888040321773284271744338704798070732356969765181293379435382919381008248191690310196923923227293619809667713108996299902684976517119275349117074783875076568861690975731200611621259888822262321533641139633180313513464988612800461991138767988764081062223728958238600102399278639004561887687827489257238012172956418000043977643170249182985017882150207998889221830653576828003685617235096137647830345842967297672074071464890155992619885304767210275661316209575023578837202684949565119123201581136361230307910343402041136673239497852665806694137243987575506876589941421691421237089457423292748787069580496118972060355200146101342919246897175762222101178949137421394559789407472195170327286701607299867089289068215827291277379924213569407473143212303977494670327466613960729574882979132413873425845462901530659081927594296283737607103532494631054907595337246953788277428847882465887439232967669117441753780847228369488021298120498616346045679955838425477544310218689932901346647896259506455327751192994813301582418411658033973680047082212175980047905552090627907120465720139521040410083219571834069057892204856795812406242711615869762865348597254021997673141894425499644653125849160578552625209537649062667647547579029263053878776527557022882629191471016147296205921097126052114081795686255656280654764104924063997849897279679224794505004273496522837574118031155369578091207555504252046128389480714018387777443086691438602641779015971689876795664658816120801034380565849363470631664099586994231997593372225446954682002740410290632386843255409387841993345239377597902934148600455882546545704007410321223386396226691856808712067536712719639386679175678136020721088539380959218050317797155750057504007998665793342952452176746359115343098075021602633754831602488762254199288701280098214047803306841274295712577997574259980824819098966653535387222732679745548123009777649207744524287920314127510684349261171505223440767612638873255275378334927698541856006594362109592751975682601247173389197101965392964463931916691191211121138444490334095781316715537137179853263441747711490634781054991098963888238671972520426610242985507422844538474069831399084237673743627543767979888721756866852652950664147349388951183388842678052669964753251744499180469528560854979022875488635923793426138421001078505877827572593305010484984715633246955673150370289821428888171620701941291470986320453041685413010372146812526606434309228564911136664285622476105551767879814298246820579239760980521829271730252858209714254274472959928817790667383139663989798503509262016079677495969771251406617349745745950977046331114660819030548780455674656006079752956673816665918417610813515171726988399340957153266174042502898378406094876990716133718149247417629194918150345588396063509998139144993267208649343885585158031214175924505121395122638642240905530438407403203088703303503406906346996981057092829592900775636605720215384745687057267471202506818883347408459020646362520262155760520248248447884598452264936383881505365433916734399314234630939653375852021613241447784045401123934220800175643870553541849969206881819032881422514909874350857265119713886734708052326420221584382945870533114733931444250354704697439379443946006172903759315135648409758575698663965633936410754700285227595790353816760364835766355410911176172789263485367945657827985691104335747975196284797570297180509369880305686172708358878020621540111420731203647413266523550916423217251582677487555414846138266546919722334995638656622810874673293883528083063326113602277974628059066911825435796814386254920053400630592012864266383074128052895892924720962409278715041923916452458106097558891133088363133656841883383351993872560684390743588361458860445118016727665975286986091231810708735103102094678229955340882188213523958849554912771859207014251025730047347568534318402016303427366046599866481205473097616583569008948775696980292915766979467505779275194424999636559008799471488061920559320938824468897604404523022728948278138374245028676618540742049206951100177236820264387825651715413984703539018932308754466672170059591052828348055919215082680651496582370759333517681263168612809398152774600613120218009760467788609626935675188486988700041451041043415746104227855231360570956029852125649290323382916543889855700855465275622550580131554841566730368602395967226591362970639693024013886478704122005932552169424355414781285167065238351847948766334199802684808829180902671075655866574285148881487442965626407756322447846355996678985118186315781353158298191955741478003807392606884808320292805865030504373247752759914129718300611644914991386594553290247510240177398296267799155781235058952681920402148063743604710431099821953404058344078397864719635406490962189898678368193970594689710664927865979149741700995623527731047226704439221714223254773041971996538856896608619266151565492163997614329323606665664042535813436556247499040895341221210308194684744942401029771582783999196445693775819751064179231674896522214620947802381366179459307647790386265378096399071693491482741688285834389652957118201972450471623143008345135800192537083704417666131798256633110669458280642751907329131125616249690382143469267812687533425850204340761076741861962034563544929900033596759845921201002965102825281683472324521155869314723712832723185874227316445441248962914619772903717283672107411318890375894774953567828039203536589982866583734025613905503182562750496910343455934325614348303359787816493191678972415204134661559105103047814548635316794416054279644118973994963885528719311424419975786180606626693089951206254655705038750208004300788175500335952622155814970960697511391173941987495124706672461572121375294243094268114511438908029357919770296365472251449365844051572943771156206236620440886292387466664547533178151059283238313824758831332320940671458713842374792380604865209125196650619948384343820033005496343102272719611197403770528343235213548398364719209365376142543286832917880924660236904319599676718807354609301884184486984640343521396180833761907531954854667916436324143704333550895961335261906416957639206812544166295086126854386144709364792299417318604874593969390583929222317466191280309483747207832436213875603716723185081305627968321750269955245539462116802760979304580070693948141801343170425309500044807405587332067395430598211432702315851672202451954192711447854793243831670887973356900910277945613365412869629416606846195003841966837495770021941310987588170038175054107595077791462910109691663455133383901326656228631765367795158564895068725944236856148890876005984966869148855816442524960107932185220904705487650745346109959000744327237087869882082701826333041696336872009478370404640020991244515617660857756224951476346313209733892139904565027407777735051689465470394864156020571941944951755785796802430503289502005927431760495121651014812601015744205445314566085489367599887495489726797369033751866895062122135817828753639555983750698305421391209210167875296816461162001613841545782867085089249777349768366256306319056272500012122797916137642765494001461857033164582975694805767477246322657498889495628921539462946095282632983550064200508431486455012337623949414131975805169814533349208925931406128620366890373931140573665070569710370983485681837622432692463082806665498987254596977654015647158411913848021648351856879405920370580864814837818557964347304127354532604914919329342591747490433437497587361356419054363995477768055984039786446064216117372987272897806009363981585804180163206872956151774107203769808314477558573994914721625947438164933666382367564004893313326453579580114543574968917283115600072780776577880291789276032056203549924417647018527586612019682733519206522442016073364630171373031620164206766554447033178234877403953048971780564718461862177070292820474606939139596013834436135785638973722801781400834562493227921985217789547811391832982254353262060428332317586813610305686902182843428225259825410807152288319223311229135684996954651498959570867629565897868013105244226263358407227179265552802680866035398180574661572603938122013953295729848387638467882639589936629275272673948154536520472835246031801505364124228213513757524100275265151859493553556333291808322457119609408416463988574359898906510380617230720698078618724564409589286792734178022817240752095709166158562775569494510220501247257492528225689282420416152522500434024643806597504080310695314241670022920185357149348317822877446896062587683382790465833489909997367565002730103367635103217184558356351040126389357066002301433866537744139767772703570364877200915411921187147944486759020803207034510395825582411194510996607201230285390058719997292428802496260124799436963773760692438176534576596734196032894691082137466922957476650933045978344604842845559161508885096917102429419382460816812074888628088191058089839321927579268945237626280167898850027430340770397850580802934260903045615523228038608170884123845067795491975048171667129401031134525437445496716090439375668076391636029263698428490124832528950417064840914146843105732824478473334844408916069752341962289214403284636856408951077346704964428943633208401717812256109983885413638827737243124192845421635667702721020846143885757014469491715778019504513369500830030303319783955794100609047907049354150730959882947687523829815832064271818283539118349682255164666451966667791833356598295179549208059450835755083347409691616669092306193353577098708842870252065163074102156050209790080209873299604214197176402610642704263928365325721687957890070862343994867864181052124568082704633727528436598112028521082365398498748412201786316225051882449472360833705578907438949476315139907454689672831615260556801930937979512909656733969245664356151890411081401918424748267494853080176955511647372608441980924972696445718520198579219886113444540805674609439845435310467230204132214085079134867460665461943470184218935600282203394859402023435814177059494994436596656420359959922032417625504211569077102133258926492259929278160960330979572377372100040667671805673040148054837070668205560173745383032057841773141045857314817035603986566656493739940562873415262063546192403188837424113635074148647290518584356725904858493029148457668703169976586594010011162032250363179246580614316615885013418016167889093271875190383193824664349857582210930418105785950805040398031793556280512918693870602602229157165179945847827394920269313348520784967126515425329492195403892296491302761098666430231513650535248878879452792453994957464924073516746418305235238754575140432131256596397332016805330314822309593884357474054824491651231038456313187768420383384433034579889494942048766136873094706253235688725383327178433541755485260333371479968489647385518692013574510686335935835590908930503864720200761318278880431815077144406908167847895704156387048813367942037589526305176992589312753533814647645198372462224828526242485479723658216828748935522946150338078713544897456860432137180689528999675273497868557236773708157526255384131655022339639210747452166963011339588003514934744277146553181784422466850268940371650398258029586733940898428109693824461958724354972369077713971580736788110370007499370647943650705052097839096832430512455770187483882217506968119809184311909913416350514847367716445662322482955946667453628978661313306980440786536417750214738472498928107865818774713311730580579482787816628790765107986983029181627659231938007433438853027145012288555317160901855151547836914802617433613837992175909309028773200365004987080342140352249036295058845796004527622710365093147777293263652730975067144787017909903628408548970507413293591350693759026578474930148154634039579219818741206807917084356374456316288356074994173069188372806313246218009516789504367288386989702617284457926339405839775214725633738262904901491740989351918831686322225680114072860519938005738015356540692898325227837196652783127787715435747838421738721436994401085869844407989713273632760156992803806893389573584223345426883927993575613435598698078491516516309252244841420520167940544051021723946046554541376784950810040258296803372109956687479422077225266418036335253531585803506721747708560419625676030662105013698151003525987205668733462355772505922984002900823937566053019478893940608958461352508091338773581908911179636388454526523780022420589140800526102136709161279450766268357931820372386984724722593266295007346973552342308388862298511402363331364598925075046538590166783766685583778029486783283014924847541670256525002817209719672949330159911430350555236978386396737858040822874031416693074754424094547988279467848445293326658232513851312559769732146402678928024348244079610052456751558024007395177592253477708793655457962736957912269983473665073609946032305632097914097403347261600939348596355933384819738075443596142985239941762837942133553690385591785927571642278206291972043652269543270481270810390963960161653333016846125284401193876619661369030016783784038588614257910932238117659791609499372100678302371468672130125720935588494455192188681439321356087916173398007432066092982960428076339805341017322347339644606415885668801888795467470941860929787261696475295117224086830011665725433305801160405342588768993999242920329132288329957970046541389323015824876266050252479597338495306156401824296066623003112903978518624730820225198145993305357961307724091694411329606491243565766304241532491309590270421281169216756752854011629567442589380375283025631991615308842176476306806541782827956181396514709440546252496329835910447127873097999775199392056512519399322002044371251913149203444314759940572970908945808465289017098124424774281613706878741392733473213426800696342997813894269633948335328107695911886789855394631248048730213154713710948659911408403234046385875987003939555404176950074193486660833628184935495432039282680068788596646861047050188617983400897883559017695518132042182193520174305172189212145858922485947021855400093856702200599481651517288993725703424870498053458453885466488741994942506371258446180196511557928370603905900613710031126354304257388994644972014326313717954940407239865314935127806618649874033978226631249291195565706825909729279919941519982739093002523877220681683200880075479136235112939196770137760817225235196532390745025162862994120879246711622892326607730725227188844829210586490159805851582833301288979406255137418054060106443158520768285665004006583941987118293763966352304303825420775482639850765824100543809116417928422154210010252328441013826202753362340676578825765076107385281321470898948759054965921944707190882358143257131552922528386759608866451055644525175008235721971631379852579415102121523021830671759012747288156020954354669700164651549001336756655736355680911417570188656049748400881525926039668455479932335721038708010090662201499450590329097549991150984811901635032966506449695382384292455291506316840781033681598864977782010953437090460015664613899594048194995892028368136183454933487886403978023450176025856074281612006864436514181877787109314121243036290087234453212472883275398935039430250983064010925175262160722257551488693091011340338950836102802908373017736029316060895858793107955648444267060402063637181701461382088286032247118743552775786684392326493869236690273154629124316900981015062381495888004813935807759112473930244602738095279071793472047320294397869110129615842751616384135769842872221669891459341552143557564742208045016322925158224433589329458650891744100335265751995124240729620485798074651996205928712687502966376204947522593918188547358862761897889536364045003673408134044966304811244344262074904606974834576720041855316521750278496068445747083847520252723737044880980560706575261621523530037270943068064707926950396601038876492619543986057822364160673177184966054409881435128365401340650292244558502181036383147971374747109595748270010835731301711944362345128229186627510202739520970069782825658265898572455265207123844207822556255207451981094185902472306982076932383144177650573479311940708479315998385539618691120537507276159629936952945515816287062808409333600998236406159639985462436615235567118059128835397409018673098161673862116799442197699696564638068809791017459998848882263789733046057062114464565469675211166537548642541813462437027262568531693759602529928175682571301735099343427731575239173806334021673699780892871571394307028815430354231999514416140464840065294691914906902352970280329784430677710934626005694919755216636411867868177108317055086906529745889020597099921029358764364280107528340964636877212510112883660008380821467051487153436555926754989313580626807391068913957304384409602818804060775969148722742528043909017354552961912341778920577828190218363794833186957144152394373263085193889249012232026597949196644610863337344239806905413247758880167355648621563823440842239422702981235028290678374495988883906794380308218675067799644423525621509856577540490066731136632500831398096190869161174079371042491763398582622119486481166975656165237475773178369022861355237284140207446626602742590075399787520880532406053178081185726616998569272101178723301692471677987338108667494748473507236927012722157768407699582671322048202414521944568979127332926750971422884505191311337665433228586837128563264878321444109787503101314347558524700820639102183301452896671661919029799545923323634876020178338022575253255699517383247440481924736783280214568624069787199909278954950938104687892683024007899367963969012137259457472515581846357469726383473359714817715889608638162466326844758210885677152603626918588785349581848377433818388814773360764697415004819242986943086195031037673155474615320337575480197971500804715625615566664488618026000425147838247529143344279368380185204728407450018747941104524350850912713318251258630885746656649112318443487564074853691507170797942166179955757280144457627291560468878361209193572867585269885560180004753712146237975063545532484216212458129827408039645210245554710173080748633609919332936074291638296115292333493451265974129433822943104642855228501947695337939915465738144849357615244763224011511325931678759092341313006052345321055888810597551244499343993442416617940821541476997758824665954521186806614561459704625268379627283730440245043925540529949874024858056927195915495671460193080295373487833853426160072392647327013018265157715085462642743424889707774706471951013687510020045815043675402590823267396892368834108338440772917099963129070844288100119671565401611835466824222204702316995843534635721010064663968082427360746687609050078860835150116863149562404885311708897896024286291123812505447941541743331786574622667685610639037155210647872628224955712868192321430353781160897911248494255432138732331615386701621846258987376388887019929631263829094359653543435981587680860683993935284325806440711223967813062614409340401496969995448826784257830641610466280266405923058330697859486511608091333463506248066854797856109810879883139905602159128136096421248863998668140289286054513419525595367169477713084715739662862131027942445430735307550031969521433710100922660485525307982545694051653298821710945993804019075230773407169096399289877615245193640899008657558937320754732080901131337063683153944130551744961765311312628099369746963253733714770524038494033297461728909847494920342933493825423189917365129920630314415115278567660752543166985554147641762622255470869036436330048701095873466851278104686849979846035275430259980377513750487226618362546898124415674877715476021117438236120736880563259950941773379579916091784112121543695519575964055411720790650083556784966753087130710224509134418472314097428907265088179469315859453073305495620939406233890737691074436204718228900756832097172870665731666594812496231732751978950772581065066999196075507727945108387031968928773018491097677742078403952633677814171736136392721785112783314273201932107501447093286799622031634941323212554620258164464081718756302331551969570132518862518923507130900511910231490137149031140147135287491917000077936477426132526165340182515952837593535921007190711595528393294885833413443880025899762306559183771985188923021854043701814646778089789048866503974895751696433743763119298915278874241367643710806818832812356813257331721777018844016600133006915960982773655935454285219396848811244602539520296902739605426177123709534812933858059385252967116777830400448101560408274064123133744673780912422106348007962648910400247749156742426786841698150470105436239475737117358303667920797391433416697106067419509014246012532574133575394310937689362112063637057910704123979993537859433823843968383507588467800553761842682641414507233639561477732372094266535314260312519597277791265268931880419456538677403761302257960815733750105625479150448814854993044889382314050732309918672389759139794126181435670118900119667602572559177177557436415391022351114801209064438776561409699279386846515903245256397054322645993093113623313902847731831121087335924997081272730984354180871515152230421070754978458761779270131010156977408584978894764404389827143112944002954088961971588586327246514153331497686377128972558975332873160353522742201463975799073453375667784954665105058807414003117211150890269765089624709545864862903418880968201744203958065447625172859970756202717856805483430360804793549227272061247184022379713261322962593428606378431582368889930471239262859595183481973751853272037913269974047298683586072675921591356424270219938138753683267743079507823616730837527207323077699629912796726737624729778992516186041504923021160843206365139819530463719575400143962654171211313344710170296219124211337435354295056332698338534713947076664156923233399134820066659713060183152514698157634569515784231706815934667348760253320356483508044767024760575584438642351056368597066897935759313093747346636008029133590339097699868303237458824367428095455264018848081292018083449837251951087487218434519238584314517074510949654608550876429361305851567648155265579768387440889002179189012209438258682697677120515145687874016740678030198662023749665717995640130348046550747139249875007895847443194768842250803607863691280249605379953466123033415610387351463185740085189626160975805774554910380426145052896549552910744266231111539854155956194549784418749746520093735885376585134205072372693058898292038773431589624502358896019837185090093987518844829708864203361156162969080284794217483857626240586328200819354197195708705283796270599611662218514197639566120524574449351638243969972863521153722733036097971518292579460313926944939435328829590644325228744151141043094520880857260401853521811668774054660085617673753477760772136679954674809636226881903336752853093085383106672359562851550616857912729600419434028104459882521124913414080846504772878698805863351533531605368007957019584842727875647997157803886109086925770266740141764593605239358913277056182747298209047664191550496974716026212761954028022154399703962495380699118718145185051048686097652800786036693340557322884932889746681986860913441751440113284010487564922555088173032001229910420542348917457067803304422276842966172601493818870319700315040019711340110898392153623744214187233112055321901046994248098638792170713937517642108703669205573936928664989501129931088996782166439526960535422987899541412629100171747889301349553793111507130646543103639011148632371406882031225497643568860364114362996710506639087717821936406834305753878081331352463869868799285785219059748973218601707887237818044387207955441196698892447710920828089109005933584244518931418392656093874981391115374525935350622996949632362828610520844994901873947923160432748334214800702737344154648834299686574419248331203241755244428985275355113955158225921847960493722582597660222813252767707837479618351810719064328525875869930584502414698914165067948651384811852886107444212819669812302584902052618494682488048880227572119578550520066076084669075445977449458018414529610979486258391625200726917927311132690969420324771844575918274214620768992974943586317017874225572172066429540937271771904515809801697778040236186823326253599249145477682386582678584355587335727116828932534901895250946419816793940438027673864975346701352165370150890669032214876695805776639215515867780459665256419989506006747760252213488811130163747555964028497715364631470266281598209448042246996014286724760227187702440847143439820143604743981021495636338359140048760689614937111280156770294705579786991189134106857703807405588447751422720533322408624082558775934202978528002468716364967540606419554114553307397991974325392522197661399978661395841901473070758914658874347521832100961435067522468783806767268772848241903166418247440987750958276121687274946670484627776370769190993837567497830299657990503724260344989347564176579517070692463078094707602486276728800282814038159871040049467957845638270841077181343119059269715902674701904806734053548857085704075229041824993113240667364776729371904660489735872844585411535224190601321977759538787560748819177504764348858451063007413635507136060151439984902527809779558092375964782109845770709858730139152157089290633357100063519599967912368524990128367067423197314976916159984966649527387345502054413251109557763876320887558379257938704895871299506603108896832621379327010615729096466674901773994534977958000026833945373168409381797353656964425389762461913037398517764970795407559281194201142385991471669689116255116294255307665525497642978891937162504823156637210911242912485498800718211613660149179928576648528342980398205278933510898662618078270010038156770714786927114542947433227519451440640491021035064223782089160718335551091783739218923535222704117350122114894070390279800363720285195994365113378299368874737365230945806601054848138969356844257503391812421905315012837692836635237891381277182373007390748481332650773031292982419384645771353281125962163292358733044270740166112111160447167315564610627730293165685078974993206342941240917669805267480975285120451350735520369317090996030174254496084213291342501180367078677794422373312700738912573798675067499087604284679781104071645638152016002596089089446813694019778564795850935551139807033968424890191250742640053873273171473684406186524906907030068143961120270991351835798205873350407103123765794127928239451499746702272013797715535511647631782968457855911049468845567500079763546309973182525265215409302315896983136808669904549998368302389529393249309962443103181474325058679445640517363791655842391796947224869514818674825166313585804886874841528061909015105785516978978671421379717583015862701739166633388878475535166168114237881836609631931936836226479356962898417421917934442480143340799093631103812107378018621193166041894546367755756954887530552452457491915718979081234840489094142155799820938793609102888250695061860101166385876313978440880436435992448547472757291439355047096588748057593711744159018316622836070335990123520159659538565266980339889929071140232917382807170490977461944575051986812160243555416402621131544289526587425761096312143508514504405076350157932224244296426144428401890008565558961658828809999957362453216166892654799783491340194622600783142317613568138381547565470122010215475375111300221148968497572650614398038166570382154779056086914538171557896009371714993491041014236826437611513666114971000424734279490999605006149656541087660711194616149636573395908173654609667485618443550935931657764232599196277523217997399508324039931991357643557238463777150431431406082618097770552333085099670146646297448229174365748289995299831196575761640833688002964179256014173562622348773075587091542856776778399360657220803853903003611792678252449685941566112257680924575671805280592194737912599903319179282469870176130535155910612595716577823013435417979172781258887481150977385290131489860427600613844569774019010449684291933426546679937144645286954255271216264531044950374822004842232995418270603167735498986560303249723593586459318809689839913123927838059234844546779681004527749499342495089909926850501485780413200934209501750140909223880404625703268476866658440311009421595570908386345513767107656802475756434353172726791382872196626298905993110449134659538211280166257394384880754011146912646389305317946182138742958032487658619527533963790970520615222833420257808733965733692625153005406357704097037903248674417889386992650695080083223123531004111504721796235773916636488555089652045276646365569987425943442641107301933181575911231484349620546636200010848302808990417889334656082537207953663526599102552841141273983731084587968849168644888029901355397910987468881106691377408290824646989317624066898031301616357167243243844450492669985029178474859633975205991298006338914701484884558376497735003419696240120082023063468698162580064349934266040545879789130865040496302293124578685122854936413280729999562899616582728975948513323165036905945750440834827325673819268584132047679843978084154140087629635629812667461685867644547851984293844116441846322388409625915454954370388429254480835854022736294358837404076776500599463730793108223325937024824437844891256045935885399740463770616968159358271999197073591581455127394792444785293323972635388265102027290244850360802013333229340680607166019265043967537688925389819605372314583872231357371261968054906571770123286737243120001795609851925226316747555606217399096631720877226949697949690350390052111338859647143786220022244275696873224651591530080347144789821459498417670782862768210066364303017639322558075910082477093154928784853927555093122317938191351708414348439868566580949123799379490355396946076304949732517340695598410979115896236315316586300289058184433030633518971259866316194227524833667064210046439760907000331359418079551095345998092813366133626946036482297639250276405691004277756464475625920126253678396765815847192065818233690123298322608988415609502361495111061805078680914342875745032483248737149726365263372015497611002228779721442457262141271308681080150350772465469470442022334554375891404799038567735822398351447561997055811517886576365320752052614450187615457135693397346436565251005990736217336475849986205333377865314190885136281016435171323110275737523241188512623089531336188113270887213821560427304501645841674734708075975058186789054561086226998546936195316521270540204453336571038452995089388171161706258600089035765602543703257258129309742427490138339402896030528847624469702028139461553801610391589197598047381862681754489566636039738357556619245290357769869255849607777860551382968513415905271569403152890607417225845273164055428990419680600191433039470819126071666606249322704130969400941941019678978501724998204568639614522128151870342181535346047477999729982456739590372559897346303464298823399175463330392534154155460727460144414724135632742289996776421420490174617839917299288756886277157815716568399314076510490122338804048331987772135543787518216810914368482625669931330038406204512028801943030681301238970934628440909896218938080720577840457319046079751244705712070041656757240876162828697903799270044005879440902857463943500539375561528276751978056283056337054229789536350114048430075238898575518103928249278302049680030677859420376448708082684821793282384380323156905174832341316357695367040724541091432415578988580870534208372971304763729863291751624227915535966916275390217230234929694190338331149160310702715164802146380783571778364518671259172840751495847435908948506864479786056088599257716466385936071444664133614013152939864705006140530680362355065086310391356518550977179005172339150381290801854374407184548823031810846217381204576245660567005296361232716547436174785597786136828766549673471876268207788655320686433548570894164428059505295608343810024672423358239828008646242794382410014073197608188551049210862494392711648388274370189644185661908214365660030467043208726968108848468822737857999518172109271536389148333491620391803641143643590834595878123675679407520825840179437729128888924442659271333282663689402224937291252494847166467468065068169838784769589510099687151236451891574032231284148808637481669643427408055663517701671025617916302643096660609351552700653177145601731570423445544641523797345153945997259550113531164713867258523088891955872807594955331483478894131951502805038903134344978111648616440136035961515603843456849779979378274007362255059576826550580509327902687817003511104974190118835993340352177314050720523607540989901472575650489433950473661322177855760652629054815522975637705597751592294376390687477792494845696658228444894155440807151367542383412195195398143100238774179888403535003145475352543243355960823282752000946528554885822847848554346174283092616045540275910498968201384577967800590144281465724272747147153217643794698136852990057464156919583750151675889036133802505699168381932786527302957019004427032757807572730474771967561618736089173801960888477100089449225270028829047762689324889915273105770085017650028437320487556577594387004463176947759486049444704601859582753800020958619631319727886999279718944391480295722988153986942091477880868451648350029754748981989717074788302914252296226583941943683115137396873064984572800365974423675162103140417737429788657961312723857697329296608098667611984525810005317225989631738198823547732493072450756796301181768466463116059124039020888086637860518474393056885617971480331759810730737377218760420659067467400138822618128019715358060762706717120964680990852726084060147266096066990754662856021387262991580280548300445781594660820961970998276472728624697802619637451293661655774672635670524918135537405379857160764564292798410267508300613584749110511460078178221253869795803457310768364180874700249339126289112520769295486131804221057679088498180445981439947602375623696304897692461507437043752903323893559881747830996523120868689601108890855363178410622302772859499696448744420670394458176862983075673181342235229459855513344296101202821848281179736605370294924590600692540882544362885546663615606032200018751059039277360614129654361158474040860838279930663222716757714430459292274513576361421813687681338074006436728675839419565945613988355865383465583534058734830227750655775498658603820071535347317281603468898538215780503385933070877559320706695505559245455329340096028645387908561203354791162505917496443291223832028964944518142331868617555178697224541734440291399741557789643825244236158963059046116359035832922842640803191407730836927414991895875660699426851905487693060947433671670737932118178113233592049355628901917788809647838605544568293869348356364699298514829913850868354068843058998772702474502602702752692211520670238713378239262166845232598484740312729824408481296994161655076900666240867011400879102821772125786205734988127884725158961494935022655492830534427425822029419408428680297496087136844900905461432879596641070929078834049806122861066541019766819073425297741171635570429062094493705030952889717578035014955951863048549107779453993055212947123764796604334727726718607523274003176934205572868124815167375451594658663443844194530613229652129903757430640188046375517162650526422910605435961796047086681633729431741436276634803380756715831226943311438228654127718880369093400792508763657147563623495099428616910156187371578007259983239170512109128849636598273876597289758950417355906423419692693513454803088260526975982289342823285025284143188102669505925143404959690615690364909934559644744137535948135751598662407239351589312425168328195677404959227257819377723450564928105737542485869776490058508612177692605438944158789029394383432706415783488389306951720759902439995086154046634458511185212477198188805977169594314504977183076146384629718198963891877838788735874076368340469690667109082258460442281513096302323979472373013983950700794325656926295969575762000989140370181718367015356032577507944169076689601079614877719815283316337641341279515136233176005154497877590142839554276363291931511484421095657152013746602362966237936525035721721026065878896928272942181942505450972915566209246586264919335873781874532571632845959048277015322196144707566429446011700275764180749123628893825151500772141875417015144321105792591815760710252666834300784174605017452474556772000117530693900934464781988129863590427242521136775993018677602750867707087165023729607193399073780063549954346587889564840845537960543817857561585548365248924343081989625583357421235383386890510298001172141044839485738906931371667419061416895698607300585087356732417552088722194254913944100743213984631216796897534248260399890617344275022417745092425821436428944360852456956702629675114073788365138614070473323952799453789345897858062535123653927372664146801378371464423506699624038393238910281903059597806760754074279934204879208856070329241763657479084928887005294551623268465653156300012496464488713139086062995268046005578629828123642633121929948715017862559545686932473587948504646816248285165642706151009355391065254261066045572149320579537017436569218584932624613895515086217135543401329589030571519535350627064937565083495903888268165100512864733048205542619950692689018779498335864322278384191587076857354726340829762957580767087484850208634316672342249504109911550581475225034628433929656887414573937839688061331718454876578955379021608280604698337220327205667223946812316184808492767628518045290168735035860814110873888031283360765067636427294299801412163217130477802483289920941922654354474318844195313688315293019394764032211046026236195546136620948503733035498367342432102788985087043854692187012542920044603891496500318956598087768454482466186157526176033939990758389148024766768535371763647494386388428492385459530358171848981907775671221017625702874902362983276685776522450392551055019677067399645707880758983147377481484349415148726261453252164038817864305536720702065670429806733669572572610924959528926306775735145158969338275350780549264051750345680794882524512537214900859202891578234509073766594546821342081195894130436974990583876609193053935400557499103730729856893194088544325636345906468958480212082146068660340025530532404353866111880795162111138191937413076658463283627323732320868214146341819724330962241285600630693666268371281101427112582433622110972505288935529061394648927231865729591942095594004189291784617251881420566842930426115822648863796096936996291920012075162897134452693279332090701233125791008117334294346944064111969468335709111705788129062862960294172412922765684558266684744482077452357992639280720600598208900243752914522564430671326105158983421693123309044303799830778126339994879261573492927495581018371086712835794522688541231844189817570561248037791488653871662512977037484932336762917631174353841450877119677175104033536671113788201349441017606725809252894484502133256156290577640861511699554874019174448583078607452665353150391826655815946255835193725432791421861219959778878083862633611017238545608784398606081545844084787060704327655538965938763960058887624010253427194108579251151421074941154079023877312310159668282731582455955086293661902516030605778851871502100268832270781057388895351166583369159313062006249326422459984618651014069959566000526413774166520239352643011004325245727631290920336883426188937889530626592631499720081671147774591373187229047310596091837810580088487400479700495149484071677143532367360135958532024688353415318280258478791780943461456900513171686139974903803139773795219836398930620192798054624200506503441900166547072592973315749325443281948246162686814802543868870170976192236776945022505031897682817351353388752437570505118829235407556557902844991667437277723160858590273075983325404055090393880384469132289456959075427632181467983280279806003786381807683959068771212997022911728998557434229020318539143055409045189875782266994513360010444121688229432849541359515689807888728471097109209977436183898274080871507003303090382444101098043190464663440365324720256220037663576757790138800222901939275445676107613617262418969946656914457044894810557272702431609362049033676713437732706844047917196362384994933926405950051523219784651183498334398319601568884211335362616523166220180342799603639236044609024511963245144217863417775285483029753220261018823868214398669218709806356479388500230524808337797918958211438311618609024724614163097922938058332618269527926415668441381977889555837381318601605711301757052698579595677835264337854193135607609789754806637107255820025954229233136990231726226098623833844536595278261988094234613080997449730421396621661867903985094203864421843236789162839927888958765256723012618564107090833325433534979543146398291444257267815619935394320892961269603945020223730236566720086515987984085082317785440963498702289923053760821990754858419935896965839647146395826360175494446487108337852433196363912041560855777963034229714909666790433418138835534377141415698845500904411944360727232154185240593609970532679646236309661059487912838232272907711406549249088463653033408449877828375153001627768493174039384586775065460764311614024158840335994280572588017068473259352148784254194928962752208358903404927587518672999135462234242636790741981088239778398270836603802867294916079309115735707685618372231574528641068556060697276548834605200893728007573411252910649318175539914314638551602400505958003832383582268348807369488195685442008446382651121091214114458590468257949706631473662558454669670482895737808209589761374741674652729295813440229901506882456946052245089985156615086034530618864323698819331829857907214843622720998944669335510355735348651217402739857013962952489117508087549295256696317035174579130559295560102254607207654018760271828349515605030075814149076511283572125323384632863352675770498584796709080460034568942956747509235560494977795749696241333405115648005122733762819516902318400092656924023479325437832178230405622966427130210062030169294253025542074944234350781934402535842874683626801145343865937499625646861637790918117242545756652417484323123909797086038488367960738001942263160833406867031262323339651127120527262024171691738644496615360678292752997702922345880757051193408971988127138920952031350174415543388730563854057124319876407046208926469570269796096626927069148076597024998385241536704157763964582645255247339902501200137291025676064349199290407053800610350822773925211624738456624533672302313468293933161093582181109608696838163113571639413280993898619695132862205713988561618835763387852404467775129089585453930941916801955702118565028090754009783112691517548355616137392294577445765652715032366483275904649985478007756974101415205448015427033242464303804766395023698144984644242957663180668218174503376257769428883290553388798434087448678983566981131244776549337764915318151078330364418920590795608919608825560777471013442222826269282903286649186297923812810605134162319923755498025456683931092982001899947907040342484511028699490121522087005664917409738271061723411972955143634447862710898020883891340389071615462786295955272755655244202088421075944417164450340684348021295322175569332006651057317469676665341414353969961802940686226895955383262070962061490738780605433217562408048425989870474982771586309817549650012047801598194314966621136447212138153642204206228141699377293361468078179143652598226823378294753600354859525424658186870331029514556591151755076325542778340426722172918879941436967503264381852378660115618313248849400905732893713072413878712603622978021192798145537638099921923417204222884066517810871617881028609309974983854396552385710441774058852250095835224252656184319266441372701848998209603420867433804371146996545527510124879054473145488407690478940770285417952342528946168382907198183060248737204041467204614220575819504451599371225320158844757578423658531902486424991593672725829438755430449127897403033176510711265866016130429286101578718913853452067194001723166035966640193465760555015168113869062314395584081914497034428316993381576667980963147629290994879717045402091540647191495208232183123183143822997729335308207464676649550448024155178389022332065283099912144698700738459559721244532821674332209225465083329531491257778326744798791477779749436399870516722976276783154895796298406864804951616327111866949495396428982567456829503967656438066047622179538175948865770633098294482130942467980762801997161219205178767819954376674210279000664291892246601476446701089297198424954671981225022586324865592283713759085843134959379768619468607042130124953154852556825788336696766551299300322959138907972419799658468854025451708122206378863125532142841182324350376193424811345341995144759121267018324517091480428242944462121354109125820476074164517963372985697749704454137332783529774633339928625265071697556826891013827683194387834137652875477594212999190246285731510330771620648725216863852605641919971032925059749017542461251663634443534665060999177954694258086347214492179279792715739192243416198459756003047225412078735626147586146013304345549076859906758258978690111244684136823006403943689050609399377574884948644421813602841246695668605426413316244347237563123727317927158789469756902036555604784934085955370462106429322585877518381874675211246983122457720426824536753878911941734209667077648293245471458275232124502528359242073869006833109161086468450759456861778694587541430211857725947221366545205111703201474412762881513176085283544396926894908432797086628304917698902899041391053006618788247889043124743259137424385512682171092197483989587051859736881725764137110805409085399686811502970418454807423244204442611912973165759702188614596603349887574290206329334931177910403393658060376779592483341477078397634084601802175256384088861140675441310299177877814781856463160091957634787765215686091570628785363490677812790216009097058946653972153208743495907664634730324163633251362095055284038333131839427751160751500804296939125784751626253961374253318550213079802081522736836800062697115291152662958141680949685196174452284356581400765360821715998870755036571624155284620166454822816538267864595964219360162578626546082364336373846092934280339584790674479806504793252853552186049390560510389886531399505767406749979047822648743030819618031072901660590114866126986242780319592291688471451470953508927625863494706211990778493063612435729020746579885220519989366869058248762672773917919365444596517376586361827333450513938693261425233678715889639496001770346556294081614597230792725938750887940978485625800759810886807777571918853886141954227240982250625959946519160730118620474058169240924794422557615278789917495745072040729384628593812718756734191832755325006086466987160402110064616199338175330940008002887788199002974187407127063396962448723192502870376643325130616714322802631878103122685637799044712690771291745886925132506570043870584030625644230689763207134266057527591789674642437819167441313603412794863417667958546765514606268032204462852784098414125400867367749606215616961730428593649761391894634759644005970466847889384789363022059845164835418732144257303079291006196652123957548113764478424678647899940407920624659619397427329897504087514271364912001072231411294627656140692602499859176867898976044242648378986472621669623736778422879253011632988819339061984069637578247602908704065199940996625987767101934371812640885609766057060467549017307773672777578856342308462804248201075721571044717920017311279136804801695515652979236131851845241650285004102248225057571417015349611951809340925483288926130752682079371771927992981389252456400192984469141017244420884904988545546574918512431521384094480304825980020632511378538858143619152166751875653410150925001031772869334559021787695256621621084895725371766048861354835427664898924028012259215534572940068693269099166572383837910352918219751860613662809214868855375221781130413455878765075042950808309092279762358318141736077876278805080828411415628697413546514999170627610873504283498747702661401138808833739510225470598698288809479631253329056874439573661505604972697582074344923946581657549034577221833958438371978870825696257296259277720581615764825716676544621228035229879708273635297016719699724760979837065492968342658557403520449225321579318264144327894908950846989000387035692779164921550475850861639184531903529937351647600409654388537725976039384656827415945571603125001382174249491302059732143636019380416087923121800147558490296075030731503703848881740149788312071894361683627661215309985542222017076655398242691804954670603311150792027573435327289428728910723333507619785195000138333119105282987124798066587190835373466771526555916558283863405544856634701509059265351837221175589777156945844714241391299839914652057032564598178540098531387004478261522246106296748187764909122519898766596556834443187043485640928294635457038522286478338622707479295912629026677004563230104309722105272844355358635440403829516280913067896660086545742743683749871374412093208260604474293882274711229002424303947642797216460412189467861088186088791837457250414515008954080240421610256180874160055472782903702601067369623335526738028252939602903500246347796681064154867391190216252433679034665560160077784133753723929794154074689849612105227192875563987378558443080061857969254156285899679287750534185884160082102031001493370465443852978173267039358965786180110828383984913077528981638917493917287267596324930045371565205550545550105103434197078582855691509316309190539137454612096011634946652966803120704621913015452360708670331302426810815896075965548517785194961819171109839257142308360528543721494556528910748351427942956463428011926465868126613109473409112888057323079422653604468447076421458672396350920523295345713096463073867088610820044042986173232151316034747944155968384027139754499657340134538677713049479351511410461851261883657986144457868531856423753172829170397319310791317414163898912469964898845699391500509517789721864902254230737257555656062138181217528113536973672071658959242678904400010492245753999899076214145332946216631280228787310070813449692073123666775599919545545690127460098733487511369222619600250601101323393516198740150697575508398418136382592724363341748836908830975412749554989965599578210511211859954976590666409051974798532963515835859753126139920626128362063021562526156113846728020511444811195355888507819131585891768727314298283184393735710582471556815226380942850710108075208032690607283636796575549585888384338553663253046177677665751546456023518935013592584467895935994431008550766967306607899403356504962602397810295415731753335875746929794508545555812876653767257451768725832503749540522160828765560670798191601234717349522547006749972788684929722668940563791268583900991080101789731834792518026985743810137424237830625408343485592145036941113939745881383589090325710587855926864501663154756179250385216462845439610620757142959973053770539912014853390803685682639646616594745341520945432647626874713833565417720868982631124410389333865976234783858696761392043809394466489714520312576341578063825466107593199310125065028597018246801308700550222144789865778225878938080517620183606326505391505035800263824958819011855529475170425087548501776318605445864869017213006636331826090603546220591226119769949986642380220793392960265642501762445558293320152458934278521196011180382764784738380041740330122944549388757494785689504845501018095330733237537959309194260799625265111363655312338518582560910762685909083083426147430969568125363418647102996246775935034105564949556031344662830627646836663483350892871254170534854592139833076391182080541793750388092122822026469288785841744274650106855107396920290892567679724230797627640567166979415053931499425559206321306946354336685883788252405294487382146664899385985271672099326650496714302283162253349460526706719331713788808825194806331645697293817788356019522311967875017116514071357628172449887624064009888744884077371031745787296454937831651673548592209934638409275482438801861174233803789553865598506869958735591234539781073857809760354414514981566655242824978352433652101315211969817966779518759640525120575657102070132368394243799356073343106210776877358455640643392999547039565571327590798010563747128932204027852703703029349963193465369399605280003088665524824089488758146660636037925795541270792098051673876561298992465567432471334258017637749135404165606821599711279720640680255588367426510305503145006468629954970247059209143549649628136716327310187850798723762672329812742283962705907719316575516596686862826517217382678123534880932634855623313630384938545034409580023692552733895799944534059791940572792312067140153560460542275377553102821468381332041898497048722759811171932696812215337724815956595747146424082358503076511423129278066090573066182173238743956403456784751925233086551292375414333888363968556459484091104403576759307714931815963114045096258598325833920673058779705479391871080876944199848916874440638435930362560686257824952281119026050605166420927876100294639764340331213402257131287983493925050411855034537936737446684787390794320720529369785156938876667537730589659075977919335831200340966963666323656600873281823635627253710771505282571434196069754525536493359023983963078944140443095867594279730474705921405661378243631939551534370759388596378474672805330206466352929539745740461508119964773367515889390164599221278502099785714120610458395059646310495162199043721752744734768400583367753106244845332716126019794592489058452472306440706866057444868943064809664101924027162683571178931228718278877922946521843667489423480810095159875180017484962320759557623630597377034277687924664580364870431133556121543733536593960829111483454169834657959154820800970727889176740826039890845496744412346546796803898918911416709401822256894923102647421281820345821627298963629439568701548539525606299523399078916641790238425696631160369186285829046056805578891492807507802440744427895692249610180276570832173234241134823787795779031974773201533932878806959553182925221368935669847007822282207352101233286886636133964170249521052001662020753347430787001138595001869960653087349275330888574643224199467743009027196027313034920658366646781618216422069266305991380405842660336923650576081897856001554511418117617699151609312558872403397746832488226339826098275984304549886039351308200164226685007789974666434503104764611878371814470525548271775615747444871163735390782157550376376867871753495228730539975317787292255182514771721895113310972124616091762658440430736936858174816538089117860997549707107907335743588749016217192895526198265878029000525204763026717357476861667970806655712171101154054422352608970047393854693869621638987468016572858337684121330901198171262106417236881204192028981718554020498219887513045467533757434232614275490384049301645925762092349307836477784211752999790559597106273381934185091888377965495259782088492410385902304669468643563730887634826785097503944328578579660986236954975941805510296759592626647458283007605323369410829753091617550288898568406234350379199539863422055320572672183183282318896889947341397835709252257719836847373271521042512974920072983194454450329665278734605854469721986920673916587285712453804060736237416557592020464111314158515968902793835389821125735442924881129448841201753735687921181067250166515633821072702042384118509217291437434611618036832094418215484320033560284165394343832925827385153445879594937311390590025039960807905955092626204229814413338422691763078531513300034970986918419091898822831864927552573291846796611333830770119619193752731693219506009513800750397815631809920089238858778722943874332806066442925280360463948832379460225069557059962773261653461721221907358211877906155400823070099189968417299768384169065075328735887950896650312396484011569343801414487257493080968862961948138458079744680026897083178562348108554164772465311917256708007297326030400501620405125355001030294294818568680607133649119146826096366612385557052343092401419564260484031041426174815448791676431625521159788608174504559629636193485993734840906088133216364337428680121887274215219409197646062270357806233681374950182142236205116086848576713060509643562779807408979431776539769599641703868194508482531339854873512859745297227966262372429683818609132468210940461487411009762509445488751632254768955850000453875579975386034529493165561409955751631467207297658429808316978095814766035739305367952048511148992424318670890699368702829624096467350991859180642460320742887133089802148055574391392009618183914327780400081938942983105988012837138318487327749858409247809048560113585064064443318449882962813379976010342205430109611017816415433008470454492154118891026698119384261395036296283689415499976150498964299243765772760396597537751798433752776079040071620096517173250357477574364373451708156120876672270160629533728603575887107203856108737947354731271295800153420422098302857423618167034086832979515801250269910441370607382765531706084971348168494178794932893203642504881597164525214643987639096364428640408597475748814783746999847725644980813532999366840991743500666902223195351756124350531465583064099503485902517912999656947796004312581199388374589318005875013749915014017131050460068144755270295539317123090421944024140692185674163724663152903536887453875721234886692921409891939660807809714167028373021734202883208075373748401157135056220738358963925559917095158006139186442442070588976138920329456559270990306710527174379034672616819763346954936131995567806573985031806191247653325594060918991145540659656633355413337355181964507742370693442322032496411345086212633378563476485532474729346735044651293216614512292322978682423605333720005983670744755382921397358213886079856148598235219957907620672635865436323089174949716177715739661438580399777672049532197838599530596977604150366866815043758103204654882531292880477678081693358728542572976197178854520518548133388626012056664970960437167830317551310964613018249203310466984110223567335897971908642875081324225398312905454383579874357380920041620653115702926546956298708655539175555478596948507489898291574169573507081326543275609485982547779853644047318486710089243718357033462669720141359341049397596504784713069367478496397146633043536325462601820770821087183275703560560934100804253095981575761066383302946732569051968827460330262628538324929994810759051984325919581150322960661108559175307318956417245431705146676929038614422943724400574932296107489773682432032961296150811095094048720077211397976319956375243086257001913785231141201308774067037535286854519547518227711141707682352033158667105554795159039163661289468104853534438509370665697910044068869895718579556954039095742416218504514310955307188838085152609600834792444563384835266634491773856275294120392885609336670576853337938639963342044250877969866616631212460407270833189711498130768621261741670684176347575582251193136949955874320990435180217449211349284183052636863658123195906152342246807795084985790582643645250114121501394721545155551601963375657021199446363921640238488876351580043105113988806636359996759899360309421863652926951813301683099619108517794725559098580787750076281731694441660274658719053148874410768849487367043227059799253694978323129493577013903188448980813752703266730369910217890334041567631167722007744590506148100100994064385159443456629981719039960540875294105867568760389011435168135911614344981081784440398506779857618463795173979431763484203688651700989574039093372287962717900968738937470286061947620656196548411499761715436905445891789831417858600335314640787503196657656291389274582929871593257070772159932632468880274548843114197261959377320483096399403034477355512320121279834293228452131419392692073119854773141025381594903596747019582477164666722067140474497766494706733562991930460091818077737716872527220879753660536976394967059908502542097476062719220572162767927478330271898702395088025791451925184886420945628217353830346480647853431183414791326251502948639233391004440239966408014679203574550283699641926669664649664923976585250955398071721844561827873410477324575836475644419276606802730000682272189791617994840054876763420583027402784218413382912099855686833111986209539716331124022814294239966882871697156723583483042719039611290568771761167652288959796385279761585474202712419436279562984303411802357163596795798839295065588244987038842271431728487898908124511319027837187946292462550526750946862566378363726305915021391614276063041782976512428541632771132442457360348238220503082436797700593992296191459950214426044702453858204577806214018008474174246900359174395011795034016985634287596381717478834998681760696767151232526138184724441335883203458085599775860143219378204322835353961671532238583545056107542812792310882447616727477832809122351233767915517566533919491860304289483308564865405557586922221364162028573890277063457276347208265972996443231934614010302095395869832428452096805921015846935076624044002952182500000683667560873955552954145828953612168510267732896238793242647809166735044138869634207991034401513359697714064148712618041078711346461129545497233657475301198599929041431015902357685620666427868210122900879679244691724401040259070192108799711790582762066982128199047559820876998255651833724002480628097260076381818622448117674322288208147424778005507862397361494935006746520042408451107606076332043855661255098274375336577489235704575259577648184814462429956316848448956904718848977698125749963608496034795274318455821641011084852113704924927308846921520026386465300648831153882115836543020659276682170860006795409301142426005610206293228799675339956197278207600565672872322789341845124840891551417415799358985072763627976856964176195970906167583609558957810285898760099540513934967682918204587443539629109771676202938752920621533906353318158436541446612181594025661380750761191115105545030636813297967934743070238745893048686563270858952195584049376498976545649712533793709464590073383028675960137986843368560868611515997866748939504371607181971465406145888218978886773706158572659427883346842592955135181617505571169407530942503004682568151220445657246878746404083392448463963373435260732846829781190143863345101076810266140284346611784945715974429593895385114399642063577685219211936636663435131098180768998797547136947340043460789115686570690367178033564481752504866135996703388790400357709082631264207393430560541888362175669534038692303956831096687019432453390781272080155737447833304114050336577777945157993708381569376597649001517863275650629640859616947363151443244442429924195951264765574118691166188047203246591692334852193838548504509482876924662350060061345611705929835441915773309088200900417473420817812926256697923296183310148092530865791189607164440854213215814970957038083302899143368343907468093553597672250219928892640963711654462208847556675779201017394673590557100785409998011305004152059901355925436004287520294041370203993153245394914358984058483499551303700259429047795121523243709936965425269185612085639270921058920470400021085748302480604204435242988142504859985491188397497733145791219701633672860624835493684012495943123751189992624106532384936636376027821015627314134618658409449070703820303545210147609378088942342763956262609082593615105652081461017567277963504136265192347106220483889237852870148036384264624499770202806689088833847912984478231651226607172245729554535368984913421096313079670113714037186516389684590610646659286539794864169434426302662509993731534283320603678752628646088946402489953857295092636412025991029380816925850813696857104124083210421029871136678845056763380804012578837589784243961760512118958227992608334116608381988650288232411631345971626590866934109185934291218555945682839347069741648456260691888245564740877013231528816702161638038131433328858466577619209564392352561846702570740883329082548586271420758294883602174543761426502655908701389177648032059032385414887729431271798137652789697559038452420335057607989323977584594642989911443752714376961489107215261947906473845945498268030977878235263874255934596265453682968963278462106710737770713256949982897611381667194789909809555550044622169281638341637648843843776930920182818526715214086235124558334411051753701095581945223444897376124204015509220023502805238954329799397383172363716246636896499299756877799343928823590951683032022518824317001852183644917523377908183089574770532331964611021630435206757430872197695767775672607079616475319139015352321163096189227888315198926978159897390001795908171980972116978445762936840112217236594255346002435197438889325764700255270784380315249908625202371626223918892565814321576933176034309259659237208709888569093085000714552057174933779922070024070983401200098222327175902858229010936208187915110287215589027413942733560058724887600844747978047314035914873935506065104141071194578570217119728173346566058508473025685041595309673336843028023762064361453833449607261596520376518951446884397717445864586103760770769611064509942181213586364136091278669898078953346330232491654871651943935827637951877479893361774481731624744344395556930569852151360593061413383909389202866529864369134906765397613625635120114661749102457621914426116482226892567768729314574009041936296139896189815191515452650645295108934344833342665689282067548683813435708003035445644981488996414482253667837995853248132960502159183025631097382255341716409959975747174394845615482113296447524451642539457123218250921524083061929500727409555584621667473765447420603202490066691760445015365096909872018715765245107007667940359995841623778675439910268606435459409024036596482119354246138917962030705674679102676449606503596680830353291808219129964687901891400697338236090656451895350905909023633813975359511789557596505883254194702626421047743555472251267244351408791133019291398851033655959761023557061151189892577989094513423023938405227130494301004839529937672732832639274771635696195910100770525077800531517707783090852054830607269179412522350372431092605792425611838959358045089703092573256265312977326323763651609302799629440529988698328890145872038408667728634409227284157280692042051720796833395449720201300460775618799582694387011984858042264179101729707403208686239620067418834211291348298381430227530837650648405051190521117342573529217488608786123703195155959374232758326487815066087960782642390229346726812243165310878012324075056569636879388556779033018079495619528640112921479380034148574452028538325198370729413533227871419407121619849697130208177698094906419032762922151077078926007331832432724149518634045770933544364048740120056952448807826523979776088067538401279026587629628560971148078786984500406575167987569896424304953890452932760287488576648269628228274861877432426800485641547041081525948374034118110078983535947022271810272507568960739851507519506360901332357652430165778055390645092972152325194372257198738842235974539385909807873644940918549604696877483805855204620582174276541065816665520762158356371494953372819329162930290187572100099608009366987627003352856198647024638937251495944504381086009246883004974590666639880486474196203519277924851194754549612178974548745489094690915587863333937137618197659095792783987071609824429340440659264210172371972181951959244342646914492753381286208552457981755922019766592039700886497884517415123409451075596003675853089260458564356289488186438381587695923291709068305215058734008092525583073073576459409002336225698072060602599589803564642530307079542608457544542744114905124487345928146922208272732487942271692605169066787650167057165880953316630602380714867063410410278325265510372904386638140311219170598423915611563600480400512403913798496929002510228343946297686655020645810190257161811473578201951918281992163743626400614142050408958798016397050812671118208768485237901421639088546119906348696148947999912130084986302128594833347180674538199721237517679775377347715113896318769887971571306547595067417294307043205723760452641025770569992177989380805639449021873657687367372537498747491983208311909363136140984652359299056910278486404191505900355812881491117600119595139962479335180457316205441984745900976758061829076909666331709231755312940533558893150920005056262545251569331425712635472198114805530588453134749357239799108113463723952954342629262939394568116100020185589962308199300033067872079934127665479996604038503389731264638290950810495118793280815594982724159945917682757784526191979790868577692173334143002608439961326231979543953679924703219332707228674629824890005652028024764985245911383269512313753712117158390005333354350227157588868318228046804276821339069805697681784523534891469177463195642430366644584040331194006206964102492769924746438667516603082506232733348002488503725119239922968389458842966044890616667340072686355577330562908274246310667734793548235385892262756546078278015894814776138169008403900213555295070036331834820894953930049175576007022998520954347851307120948319726684745837290757846389435434517260419174215391045828451531216353909135562866027488404956787710473271827730754964164593308165025404647763518692657609629793102558321907451333699085627269156590382284662372561529473170438249251366224555228723757170189267908510335177405028586892739362242318339178516907894546762988221279362088847491928259241544563576002069747877988540816247319644546241131396219813057766759101544936904690205221431298109720996023169478431791359451287156897801420899506852518128256749523290552880959260245244814942506973234015177984329855599195930084336507027613314286360242645823273582122105859939875870645399471724301366503364326647730523224266337384368848205395940365394828061405074314809547844185971176388599323770519096262013075162183348897594470683392355403945034225148772272520492596056896166255257250456596046486150720070544479191610557484744173155343646936410292670945047589246854151714779353733343108225958223992635845381360047215263983703103534792993317530843820841403453572387537219385865579453720757086697699996273561518887561657520671480034934950362021501875657920342502823567312026029876514181650896465263892358039106863520999544493084682009345403236020963209547897615140554790738266140410596014974385857344277672470232740575010483287340585136128159352187958140423993342957111411311897574676667665012925345706020542035292230681224052480941439371036060332412977616441226956052982949438541673177991992674385786780663616148753694738604757868875156241923017657242673540354561985150645351834955181054032390123024033700163543452241464617267101567163155762074891976995542298398404968322616049117722420785981842182023036511185634578955032048362002997416670808390718491611681386990924258803378016527483585584950544246037854408485275736397112185900990491139606835050355065536340735280404728035846470193463529298298852023085949915282723751781524965046365549170301506232448243388882990589292825639326572186855857806927289123311776093651401046238299690283582391790612780628592701425720187024776743969657171187379977781530750751283096124125031354689417664759371980021132541439339487353505943308281107163169883696686166580896859283621729744400990512560836878964744101229647607377478688589333255115503610360181992519764019678782542475333282209501064969040758693283736798069651170119070850071837214441865163323263075079047707825889248106993050541608881938592114526306732875833512645979892541204988461765463906137120710346428732780992628981420573517521127396500067425438104712637511593939540963045620852116434006243371826002859932875035880235603755266631588635095948638839709659123257040874518292733064650503547064431200061500874956647711800611081298772977710201125834540797173387925420061063302767184257358962272472540974037482155640897766441178827855747782603345064338052625535800702819261918736033112662426923084088887208096732411059447762968600116561623939537836785291221997788182668320124309756161309792342415952840509533408424464232684445549414663351987769206566807917467140227072748436807148350032570260683595964246686893298410134636160057962105775463749603529712404920404970652454697470307825231018066648629964108052116542687623735105443415439657151223843928938212266307718547670962158873450619066302135925580582737593236017957718697407696785559725557458685706585697725289159248662401611353449485616496834840510260533587765004810949751806202086110516909295583554166586804033257882061545745786944600479322458288935336407335218603810963254127067221008442511613598642058392016042300558618560148241504742147420554376849295839136869126494276508372387068340495626243457270180447571383434656625891795511103861114284075898266315596914710207978154241380978083769492505405248349379657165856686478860469807434819533470463269556379976454874720273725993697547777087031659520915320312167418751069595683934977519612413753956169238491449974639943702368672238577276076318376968175767015131677740758464334882481358697807031994090732958091129452139556240306284771307795958339676698831732892438068983173580654047606790909941011549389706856371324006509830341391843268347007594639578841674489228298558220310137806774521133524436508951503684068403833113482371953720849463661997896281274423655273788011150396966971624515999286753158603486445720299159566461644189933043108514048379571817734829487500558289797299543513107287930108202680009078065875490069575198103315227220359098983503034383811647193423456488995281944881920421656567262052226103092250632013717027017259725354988561482653011494831394578439874109607935237558749744428571612679521901184306433169670032906906451291553469963128833854476546735932252135258792701737069784989142881833722364381446901086280149000152989461484782292936724310964496184879153314490703931775463880340160155179709021127162678571011109213993246130410259817070632494740765820386041567068823298321943006386475418129895171583690949628430391069781316092801250856540894207278999459000218640784422878114026663507631247428898531922193754288692711119051855869993433588832008737738974325360254013304223299903179331132453085566219390915076093029461781088945037794960316346486860514573705785200454192393799803624184277115483377668793286977162858045453825782744307912594279673929923714946090537584066935262057118265039522263696922271839850634372897418090814703125084501821931765662308212270632186937735994106322600816546291740746794635491060010969601462820462433606198576622899347090524202964283473181006420955189147115224542710334801372727619788706637310374956218562201660373601276028784123495161342727794378073030357202460023441317581818234393744514097930602949711478112764992436837747301288317100105523051378447924150098665193561748446223892598482673964124322728733166766449159338721239711415895149084148899707137790698741955718564323717057350627239044818158729210410497366524909577518600574282697231133645600118730062946548647396538293704518942199623298250879938363908584769620032616993604105388212212815650692089329744214895832736062090727312080615924433210128540551496457805051223889195286793559403305652728757558912332596496400034068710317142147690764032168380340426062485040190142771868140033998198734198763743035468807251674802690119720161027166821743853713216992246308954536882459439107864632344573355630432752673897025449179219568476808600344776185029669415890320375435563586502273089472796720622573573955308321353525911634531651846083201731618392972064630339272847749742646963083843580238529680737949890230451544273396821878857371470755142534619090500447781644201844989917740969739416946228199433641889273891856336958995331377146630271880928637364687843332711883049080374579430318623355285322693231722968856559244201090985964916223312739848196300185767514037710517897697800853792533608817368907909573907084952839853656083144290591998477768383228646823584968753353883924990991049286812170860011587464038655197058019918310700568178271200909156186008664622961323660521591194846633663625217520598106592802352647589340564735397797960347662905570088222219916085776657430702874897491797752589619270937215419462195410959368804498772184730188931317790632936682203790029833241082130537921704994173534160612345521888501907146606890850370723629594005931112979744554364114186651245661015823075747841625954461926588568867083476355378839406437831501747956625679349565081610178897780622008101901765273210495393882311507507415607874568497049020619006641221111859505157807388742031692632305962860378032654144167825694161640752638443930095652041208711665792169937526839306251634042197717913736147217437842684368286591838326023880458758420743214069555191375263248829214088079340595512935429583370152891583867346974996124997049583988960789396615642744369418184753126900471072044388354128292273809019907661407772841861479167212646438199631232051381280782779005472761718462055540794306237374121819347460929373517182701129667525035978756684964999622913283636211163660511272928806490517870502240987835104091558633060738103716959542592200061420992743670275532263617625729546239309855000844014642497941563622088549930265044643384367339453936795121700883827588350909597852811745013348390000949895132029251781233684654124632246890695620275685303976546299357144980831962231357124025244027921906241841978516773952587500433231045946168515030792328913604064175513768829647811443511728421407570000015322057986081557441312174209111951890141205762994989069778788050429346726050534264454717874576381094632607210775796221532792123282726935535613725081608778176429212664313195066739541537105390886061021133830318553658190326067800609507648183492360476064869526650875419059465008009026589295881600751805545454167820224082954180825059244843327356407568604763650707295622164863657951017454009662633964587047160751257400937080205587661230356124071835124174368040230080167878235044583790032135968536274814655377550643513218204926363078822002581819001887315223849421201998088709162288537867518722551358446583876302468562217844566828254899934516392720171639268517293800440365220251355633439516255315859836926795564560393572548390127580062489519434504617801798053400969059819339951334328524415741861047658572484811743172406774018616332917817146780172308879410463901682452761296223873211479657601333525127842170352836310474377296965689446098243076802183337217206656422888649143227736389497667951756595978881383667825497622116491457853739301546846890687676130319266362477510150510031625575048455900340561214424882106749396248198614968869187630688453798925004681236494627417972115414319440880410356177505538284550914130759243344135242023242804564274799715716683736786750664090424335144732360064792881073788721984241353513646096741009574864877007319922028094035540964977983576780841325012041312657641825730927151597156112204713910597785217557895696276713581782237674180039993531421278275100562161234751729406185097970855631761241809114452696959057908343091021373967861668836795653709564391756180529466431508557979837701691501215996154118118961496475388840216360152950571989557249296480043446680840984713830117350335767438713907371458080727333975208092521593707665531647493708005287414904454135239602759330726402329771575817260445880476478851245493997084918394071217531307862091337442843805051165321951397771613756631051689357464915818570879065641427654961484369680147742980938336213816815058444667059154279947135819158450730047489884524150703593813758112539574506296820647750223335125122063030411906848780271454449235804066304873466255828221487313367281851660227975202726412343121220716420694825573064117686658331940167325855207169018861330907332157796371551604381810408018944781324969182289796117248330530933997833340832358785212887226492390936009273367786426204334723418264555353018227789279589725093089753978469797276147380616185055659025844188789233776471203637310159080601201835522695935237608930988632451803143413179842436134991739396010274793884825552714265854981672002590207010229710055918026078633627244007217467160612139330069210020726331693638237216784281187593928541868493756119632820537031229307473111075308385818261380748754093408090666689578528386246689405469553803208072607906497278037156687324080417597949115975573594023976927751137376579072215001125073089505375093337979287307558020868464348657960947995679617283360801454116652117393533377216275122905611732134115251673255397244724212116462175891640878326401663523532949167120984775246480292898187535273047186347655077179509612012398106576092258172506405894607041742870744103137908373500302533538789967542007278734613975374259576498376259082488123970734512619959018123566478169112892258160029872324486014268265920438243779804580181422137877882592316454213032702803189928692825560280599622536681119780363532887774935479513208971995987583283521450476287236999697667866325102528224224072820626227087720918885316030001814342835555367466023368941860216202381472880184603000171050854600655309782184934007347983746142551015058447741388651582432344276701861120460117420023464775768353739245251753867777574300313487487735863078091313238588239606029354593853679434289368152725679064698381964945769925737695243739941311973496826524004044439702290689281707260102502031144472789916854795033929639222562653468946569160418710123522226826812334884261708272501294473992419099207541254374075471989388797626291237967182625590687948616525413774695376679052470257842666510953389708819163210444292175587022544930501613957210104905416303543871535963063645159536432156010949809529637341485837509090446038656251339187873559826929037132459519283285632786256485876967806144302161319702857454965171299514979490948458816892439009342135297964936168629992750175503966018287780822687352161626737490261009824110049457324217806995917011057837163820491603051924848479714793648725934418572169370176731295168479680476002232429161955871706695588966706042626074597377080127689515331213943130412666611967590215835486140526503542517326904033260923468472848804256352320631147246528213185719906815653348602726657599408251406128093480133358373051118533036944285516217472147793553564287235535086727154619366910982622267590526063996485469487458181438255727260894306808185788607137917770452626461950899978523452716772100320109506425635910663574816682491099960005950917510416320926950998014378616395225062256873605996986037140114884223509155565578799353103290892850834979387215826726663873647834456957577509946192184588479998569143400308340282709907186335083936773911653823253683020848299548408597670109427065964864164466231829383651865149731746061509182616872912573442430524137026568392825883087314883887026733027548646848179837692713581563404927046948823313317483549240175126353680526270777197903966923034970416540110444577576787879660607005740455869969497183872954848406998000753128084195861847479997173940486126178023524991429953968058680070156669537989010988679749361322888424089005807951477018189969611005084957511066155586476377142514914056835598028590231222250293618999718261292841095356808107133012538151563335746280194504198492765188639776955519898105559721378079194369908434980781113720242503206368174056628100295800887101268502779783695487637898499527175757275558841125580744800082918181226235505283661945498819126251940245147962643068313224511712236123819848311919248275639921859318885961788237030090886555341559106262805604663890593337432423137557164250171021081380900951117196974983360951398757279349426453241001335698922849180100398608141224921668492347789959478411607580439763062338964152034243233632928708297756250946297715295711374006770791437180098649561701712418090386752303178331367623740235480587577187027473432606372192801861798382057559394248082374145993111874055461408904184969899558233784317740434678107290185378987140021634140197477688609950600612631643570486349269888927746257942866673253549295714577633318727031151731009852587394131292797834368151851194788913336046625326227363467014703047020452644718233774195155392671948191840330781038798458171193790219337460627354568296122277330854570479492715473474722053571186564530415275179030582823964179246837548172221989627098805237595122033980456928834358961841959617140859725911410660309638917743052430897752809865524524515966112413603912139182103870511643262279652166484891407328263342772375936167783536591056875633050283732964884565306632220740048417168761303033560643939463433388441809608156455952995950898194456140696988478890761095148307877759255498560709207105440634871283366549373242465552164506222488433484264349092390115572861214457233427904416405525534991442477998843392106250343473472422369294069250258381007567812377210225019925457399208065145819337519666465749939969012476064682488348984599081566962307095415500579795814738246967462672479852464165918659884629402368967260891566033326111415328381297051910052244893228107049703802779295180098375719710967490957712009182146996750236812614974142948598720720499502703892162151192540254545914649285103427966879391407898387807714256812652020579549518442380882955602775842769735609737983446180645116540673457756248338640053439701242200681302218574057744957693153897081350682318683251610722435119763842820300416258849684126723207632720886817839850419252837317501355586349922710436707557432666242229583384458522379028206298728622263172939065061855397256791574316637829971122708052708189800948443767241347317899553419462400758436784044043234496064084478605741668468555736903670127507740776592849881048932405444434435767612013687166659639716963563406439218133786689441229236210055369980386183103804309525971064825882012584414440936579880311960267345868345164002060623154279965761026806037573017740165792270685353068429605643216733067899604587914193973439116781429930975630604042990972581618647311655159941807024269134348969217643621500333297824708547724155711908663039627431316918928741540043844429866900411001543712877841135948691149210692544412986216936638961929198406105936404554130869414659573434794872355347708248567787039778316251625431159081064658633662477597270331109378055514014946241128155351167939979462392543092168112057474959790137397487497321264993944875570954542992871016853839959219106598829696004984837965993222677127553649689587668105393239381833234290843335419936592354599590073825850353190261013244310975224165574967567394050686017503228461032310893745667852857176579139718806532163874175917271067383101926835304248927184854998754134168532485423836837201410148629788560417686629692540092973345871621245835745446064559463958585700552983515535465541201703972301342699992862488792333404843393737421950003733427069898137906887201064039128243224988012263037920061519468255758388873202354901178723500648102890478241987545727087773441472324174537454578430459562359154138718902885838357581387166640948646238052819871148879798943083887236577135652412797587299853582702152846497980337919181076203932447734600221524369582451990151557156554573233827415350263800700662070469670013108160592955770848577876319735666231011002257270639650263061040892630248481196846769018459394746377614917705204256555280446219098881892686342234139387097533392180183779258177018574700045897792410490658861739680056798325292401560061103324400368729571039866137854818634228355674226517746137236838374068381275722827693392081185054402706859180426224610905318669460419427374391870644788188506051991595932712294820216987013899235111204797022832210277933648176493837682547928768971119315802900297382288355679594801521608163607421630095594985356092918215409440225759058897864741672268019274823300197946753961578813449346359509325753533069102456386878936636439522069995235177881423076566805476170453463900803465581576677153338340243556465825589062110246499658863926392093096361215500918013012205029110885597685144091259542248816304711044622686485077350933314957824140867916275458400103419912580918701051981197765546415634340061512134484697200980402602563692971898936012455162907915197063259234810136764866457631823217430472329214120849975518461641847059165758236644061881619622769981803479758355543668296517512310134405566455614814699636990441034153049623389158220525585097002314996479555069202559102280317023076059395378834970485356233785821753762898056836365105253493320560811865690611464399227984469125707804037536196286031411203894459087584794427906424927853791606869581654059076846359272783865257969656971532487628608910395399448759245870012075212823538057617947435586148448612695255449634646169861787058518541954068903873963187882125055058641350750607562622534965433010716791744975207972677468026286391092748123910208257316543992330023013855200219416982367394837153170132752708577247870607715528474348623766714193834777425231773575845107569708442935717087717991579742219920550275204934035623140029008784658933271348384765486972361394087983374865456689974979576611647297450647557579449269345214627765181602611368679654377985029301223831871021700795583689559609461876084243767768464266682402400397099159473793637654699408727700652197731705104563918075212980768613747647584848895681373950188069527803489478524296586940938364335445458147713064614251995887008243595547224619812476272324450140447059115722399767120467363442744401719086616727489180958593621016987485616863477444577922701288735267477866132659332124067430955683246190120677957670467798475081811288410003194918380975318693523690313184996079954873012695795542008599045778887743149675479846501282799158093971936547452082215560834953925128258480296575019341380036905911031325739374908801160178431851315100390103001543926974985184323724710836399443379508619991530014743482773444976906438658278961508090044191496922182920209666900585274446955796863552304622497595780692479395402129147135164290699882627174171054568314868379526938467521773458007966836419129336629836606130276244178437825224439004238132863618130836301668032708123535747115691052048751074896359071290531378695688979794170129838547931817455059046880253687432312523373203596349033694450377137244018203096128024517882323755881220640252165515993293113797800518962082295608117035721962618531963453137941629324795893222581246972407584135930764484159758578353056166177199112881511374556976802361601908044369551202575353960755231019486476919362259333689805119428176459072039992958701989379352028112969319232077245080312564250972934112460137640641739284882232054614288331446255196834513573213483872799903854828549185963131174733568339536675707858200981323825193293709757071306382221983837120304913270090918802669054096737490035865914162970028521678599501891761711305733696116835886455747868624095430159734738697487907115909531668366491583757204712491573827464477707533551087199668179271063256751124831152209615958153663794895923277907045093800955689320214832650998097018518730674441004869068344376699561110743651953185212633608879977558969190598223528284350392180630672688276857856680307672415029819272589323836467138210682203869225240422358190576883127331709215317989730101949107155834049198836019819191120274293552134262755549702080093271706451651540131548434817524233885119152800982847260060773752085836246759910042753222558177654052119154273364075347702385205670625118188307540989031466453917751207275214308887042631715662591531395977803972160648724631284804635405991705258823872448613163868756257579702702167217202694946472142117769828007330705066745669639910600480359780370131094425501904138032150292742481923347919957585669244488102316078690774185453126341280209647062496604299198449216343718473686881121970349949695949563353936184643457408784140187907552140920978527828985985590598868335280922162262208765945915305225704920220584903315529526153478478780036563833514964884256950775070236249524668520695697698501412192798951406344645066264496111318307262392927521554543533879294372935013772974686190348754526601011473371670120804936646962343221589866174113533650916609728295863910454649901585372723655420114503746131582765770056766585859691262223444586738588249331255992752385250184682258612661611511536609351043406849392840778977310444354313397119126076220021042843433000692932117820628578952532415750267966433960126423518118724896013861185381654372566381588326624129034986632174301495045878847012283494080053058955535862211728117321019808552716600147247961489476721866307973131372829861308672771346393203364868476216596575482095513822510512274669327419607413238540924964095821190486297326192552996502034541829146182455677256921682519709778235337914350552417634675417667566325595710691513029156831765904381999903006696618357029925942304620174895372429840545392898617459625084351893789051876749153611493154555897381857544469001866073897170671460328075746090614040618686758502719493535103089067448370688008565472687100823551714679194811711279974018113158657760572550382780800425884825325037991272679524601410279255199390454912220539068864176571545841072301893540125637026520180054919398223976125398888288835916871784914400828651753249055481676159789400108481505301170746373178693951743210273850509163117376015087743384940727017742666865091104681940652060677941248473483234656823696948787859607288539758574043368472643342954275129498465986080507725013013857872237487380685124869519531780911246913434555900393073394794025797098661351545339954320243899164853850169160530927272454687077086333289197196100685534557459059710925048378234406495531173542096114843565426265700248372622459481056562631623041671014606997056526596850886953287475461204561977839511109569989471584943896097303288321514904207220793811178179445411297821047889689996030552196003406502548765794852109583223846618646009523671808647429349689221052458685450585951229220327347002069555051933441421066313287502806368621292123548856403715797809125610142110984135418800927729940293541643763318345321962034159612580158900650063621138608118580305199750335987524850377156279020541625534700884512898547373180018950167780014218816643915809164877056951992932488134591624051354275381484795200080321272770332796304255039965792759588531373384895228028522495486956001003336203024879883245335195099036496698204490969136195507051946165765748863337351495448922604944763281743122254748386000865454780676288333319442200695052712051646194417636543656857325265516592065983232107070724624064850535908452180688459605235034961918389311276098696946165947602406737725485725976288359380009678760279243927332400003297992417279799018939250544469206059832974585415460224605218413550338993971864874173779762943659909886051626401082251994313147887924346989135087429874249778898601352811351547026423909509684417708165155054045777660715036659225524253212598453391291998623557591492669012548747963866469966811139207074506789113076751714240229262982765512922053860870210518004048253602932858088943540772179671233445084460359591855582705954582299591199102284342239916109698235922059506504583853350929393246489638160529793918477477410010530799140733136802782597868866127427422369108661364336409298144857033188334865001699123009281168515882257275865609000625691617437371309913669217580697643517260185699406973647749617982033045006784112578957436659182139951217053412907097727888158573297216274840266488071612966035314535268095644844956668960240613405780257912818353435882612640114677620222746153725547044703297268244141284014517155287337714514023206266355463794490438705673263709768912285334720538273958608351164787908599543606244295814611096368598309288293371841677408092965169331042926217506230884141101481136718561697835333025407557219703369728635943119032785173018507916524843540661713352669850969044942461669634186787769786426936900094564677519800173493065112037281073935172877520611696409216232587506186595145594849063873686462663890117306140710652757304887348032418127514667310100116640131714711655243466662266905564285284574217901537824654777871234846152592713715796687303430001311197671843630400862771791447646374478404779585801379116774073116393190158594890384840546789488954664959660066275097197052125338176033063610362990772294006574127524771234526458435559942143479416179300228195462513591726920902532345781260182994853332034009683816392860452520471038135290830396086383723691503697835951852228374156228463249043542314288388601504192877102201003870675220809240224300037055465166744295487211613196825388935350840105629401510455346796278380619018686650343940396277186693103631546934407076370523373022710665318964715038988211793669320625557091613319718185789857131104173438418108458281459452243671555938441061705917060363550927297523393624143818883376069316404845758899952645898276118579793061277584519655125528032900504572532379041232401423210156086456720924642241573247665589130648130692766418789191428229304840490619115691000919628899654043168412783874441681454268915568069952828909530756439599343606965287017888484354842077642630237237215214944978279132889821509244341876861888482293396093000452884465268049552971744321772888876156969378438804672717876067910633773259011075313992106927039204897831226753344347684637288006210886330347485970122859234320390758505385811245929489033233118898272231550960505005444196075240003833236275763883158894529853552416690886979820112553137272599164147484871653936485585357449300108621871854438375760745027775825803593167152172963648985862682976712630405090706490783257357483538309991290962139565877424313511557369558649938379870754373187512223411492901321619823040629527836525161560116782754634074423918914758753480250394053878515998841785837118769610862577819405175401556779671145576292969119994215251185528959145395070483019139168655041501066559346249641476485091483428075790273804257538070094582097604452705382774640782050997884015686408152752560283719976739198444598751042860582768229254201377947756321236294930460008363533235059333634668324512246974317459895077720752959864811800829746004707672512531569462639033642156374284887346951622190993541676009496767044566407854730890607975828024371495040062621275297795996212949610552307847673860863482956986391035057140366068108412926277577716091047995579214429290813940344948949948233236766352436750125845785385651562969689640857487708043249584162231893158944960994077865767205675119228305010060003833421157986923860269896349182371021591182766377955063188585590200186772664317459663891366528334137782361161916594562977353284930752661218714229383456221094272338087271099438727669261422270697445059003713030685352763434046777482006082245042025320165049540234208515351066364214014775366486646330099311601521148624025316046893434273791261507132167036472675962613970416449112712461848942148169127978188190510178032291328453513165395898007969230183051489437505283797611979177576336661161181553202409606058152262824079252604382667656748608232004308642184216792843486463088334172862682368235243548895908429561197384323831251980250487220897861926335567328207861477749434511319874397629745482399715445583379749836059269244516048033776197023640159292825548519185128124627697555450793142497872938769610963586537380396528257759679843684914336384475534665007163983836385190082355076853043767910332824762402360553223843086226994450079820550878310537582024131446027523211529547554667084604635386201220977691664488158920067656968862659439504374362525989940911910577849383939938130529642919279998926828556337472849769006566932742914283248803590514592968254583876599173572385804162169493646090464460108396158441544498797972922691278826891286100184822016681523867073860465934407681211795458794488623165381152169427247724234167978672570492026044661125776945027052835520992728479597548548573093821204153911900335399366706828835200431556558167103997797072338567942798751243527825337675987018284947667938831823735168509020245611171828897126427080359623462864032122015336054164009195406241826571646852958651555109106981971788269797541071575381194236355906043789029961298621196554267634141737720990643507934504909999953879156645055238302812576960399495204322505066696402079106904741811807824974172753297537947651231814099467836218365517949620097919850375497803374987915287871940561867646020053839149433044758399276383247253687793297520737924041221812442543109366483907734474377425059750707413392526039738778941659113898081985706034278924524099634986615915933306884300097941438291452155405294377990532005907967907293289476476651698551196212097997071184685761254129404294090661353154228466667140976721751496144540862310899236355160770120440841256349350311940314449695621714165206659632864742082195000797649806717348247640288306611212364894860729061913465199044644770075412183338305247624060788869742026491295703930702578304751702805474383693246597916369749985791833308898444386760216552989356242617852482616470906296945950231629362191015568127477493645089665459528726983067479116446935930763168176087775266593884539050378357863757339687357561010695051440293671643727702021257251060094575979929859358930881671513025500449238545073823502125766611218249464896481729493832016719779123783217842272498010329952843876938310371162508808776770964685275675181465436878860717733952504676106802783637231910972625328565502329707196543244656044894426566448390475884025261953838562159617281200721653325594829186829854860544533000203247042122402666114402726398186265299197781584676440910622647026790499920234232311447239300790154651296024190211337355178930849339419191271024298424891903852691082658253888944966073869401466897659417573744585925794704443775159409676319429005315632098617955388583228408711396638691405338314526904343614029227871096301309733879052484911204834333255239751642477872827204016106815176000735585332167842687066840984541944520001729168993663347814416872111661270443809686528010165685262403963416329870552644159447552691096918624029026466249690824806898012711036505458685735055845900949741543831029358563309873320988211377902022330332491917619902003803165087695987879582974867156188134071686853758337959504507019598733302405566350123935507959556226108863532574325100331055464829398841985569706827894481248755992662030167422277419855668972659454442996578637806152079269500418117272321598211125731009716229541983461229748051103573859452704616758024555231869163374746340737097931728045577300926643982893046667960981651664765615573488028907805084447811893030155684380862629350079547975785117109535239007370619314009669335966279232114729722973339837113955062269430481695747681637441396812471611414542548964618245862323010697723012742678897984851893792005542967177844377961556178823772737368336866009089888367664664762517052669492020516788316492807665638771848954393063806051947780356791396922224501825731985838155436885017043414823156384366595221315024785926996600079689940283992660172978928652072534529534904651928730052063624976894806106492611010789652056420225172012005679919709933844738622679663927724033075454093056489454476377739178833448102898629093418991732320810780193261862253502745986373255673212607696492408330133653608996953842907764470738747991421208080932833756767538900594596029096120318566293811264255578597195128490461992406098641808991452803977146537464555378769708051009857930429736996871153078167214881645841392882465286068151970256322168399122093748004225008325686029819757276968522864073418418168828497419980119762570629074609799420734420808218367322418674472041794579769801488162651825475817953277248190089537719511379838669051753136107170015235815983358445805424685102783354168053835437711170798174476753393781592975869536449045196943936962849840595812999832403877683342298118095000766201956691042836335640375707984131515215340163827671793623330392698781189820166122330328918701066869025506556410278454083397804258131773361367847722750699340668683782192061722470434657781739025092705261570706313072372987820533456932446645912451284680682700292812774841562374463720595971150157378435157372277747575260946481606818307222687006168678191172239319239805552451108816883676174161692734893042059636062988830804391791381766002358182952765086274675987412168649782092218609387899640182946123386696092521138641425708900149661945768181530368532551858812842757547722350499828711836160015664832201776066330463846675684024674581101538734063473013863858920388799004304914563766475682560355923843218989943964533332843175332419238561592086316299399000100184929024184326723975539391398047748367871818676803785724714625278592883331245641500907629486312071609674725022333803131569844686270936292691806377903958698218880855039864640921638818921626404799470454397901927442966400020374799231891865771484669624746551830372922793577282986340091835432420854743308047404402018314344071532496689916371098509147071141328971582512554226686404505456360752198785005752070915275389671289147588813670489516358909422959628154168596240404440628871396724224888040559206040934396658810670798690694926006897155784185762629440766380594970248166086692887865797647381482188425769792824699629237895140183678711696462494431143113562466268546175180205726179942959790544901956217710847199601097661793537469066272432712127297239531055450478273168444114243498460004280948968983460261616774204223325128342070534107278032202143279594057130186421648065240035842334591637533843056895699617706631278229112712335941607306526561372155475357471804887505251117222752230855587602337111116696241648322590262328260850721169995193044226713244005885339369233289122712162267238706315119334458956352358085334544523819963943473963122650522417026568656857446495031195875718784741752551427461702393711283284233487822939093635347151084185639935911378629927252249634725428891457905609794532585806827667990599079047127034392027187394463731004809132317122890137216125185287043344299738410233896176010726501101444781047520675584775664091890590799551272210866420442388134088558247717906604872139036890603916680587454597157901743697150604737342983793951121909651633496730700669501573442752626980769925384475750534157478549070097334569632967609308712590327383989483316544134574430271098688375646908528063354393109488551252661626569542618864632768843888056848755665490987398606900872005158735145184295962793822111272499560577640539420845237995927126604254358819532547164066515205598337452333390111990352968270361617810773514562515832948425635390462693834700914206404806216152191370864269249831610466936191168618142708363509542781511701096110864885368051754774135822316403583912357328797252793186922150170843431266292486271693101041826460480409207680583592217975801828604657362515533455060399313263380725453070784116674249106008016889067386758804051360193568632960560454983996225482170761051394968046080476595404937143747967181097246363338011157798888310202673240870853314711219750057188380472444000127184314225310441453577097880265610900363748665120658664576028511727864642092396875777512225961010421603434382023110851689770133993350777142410031315467950407908230662516144330377111666823034706374840288529647801788470080658701950033656866731281225219516107135550281789234847749812955663332332810581982642229496217291392588609148433116689790046333341922311012402751451956819698808427054728298847713604219267201212199144281297025425610524966199555242159933046084217849757470001985624751745178603782397628091050102943901580639022524214248018727504497041970359776607526683811456302336243797041519745584673875519801955955128265024694942913694179211231157568859160568807570204946066693796101249428312771869576936858431308954483557994521847165901126690170503495756560140969297503638604309998617323656873094351714271756107824072594169910425947378860281217829799318115797211777742667788964296770834403705910011455981803015759676003657536095741975133938760209017876529547542266964671273938823547993433837112052443025451596053323411335475513458057553925532830404578704867506209043841614372113231634137140340281111786001021221159521588476447114744520975851165835947253562073898860214125514874080444213947923035784285380964459423084584992726320682505839861873730443733735198994340351024614722065240801447998134508351130709146073714569920784182598199845152704684218779341146952811961369103232900956794250840158151100616144431678224539305875321511095411891515149894965590181818403278810311535899709555289569319767308085875297631859259078373078413989006503565791539023913813560254810045266055555755689131234307187545676588301997031363841828238445144088329072368360490510273020637272866214971516283541094070546440875209244274068372544435980726048188410962347040859278896319497097376294848413571188088255693585905847252519486330370536441615787121825040694854374958410509689484562557319731954600052162282251611114659317284758909578877336736640332000572094398645987045002612404827810341648343735681650852843829238636286497020811445461070192778611095279568100049176611401161499562015981809254926919241015032416837944114198592651738361618565834075945859795316337211250824381789436579607645165333532177752986072472431379605483233674935153187151754214949273751556744669178505538574118685919904628396961693549994494759330842301383157541766575999124284964432437786598095510469272110915385844607236133262657030276205175287773239821466721652354259664914083247889463686986919695822890243923502865631493508323456594233173717569908389911463961478024630925517518070664359929777402418373494280815504639566797828109661918912248297809391176113108293340119636260037405951412369089819855449687799714324305092384487171417552365288908276215415894228429629061283910771631047684737938046317959112349930379990974234980985233083146599149635221706586778103785490841345027915443543420402410064882255660024931857332083100223381023711505877406123164973318760088488783185141806488059600132377818088303965398074177613802560589844571354383894720082714163978730280192720627505992715624404044795119200117494927122532481311801736351339658193715856883759972465255181263372185639702142088344732801659988452917323024314826955825403958095965053946733074486393874839404501314597554830197933472662116054636132673898837265030392119766646604859472466134400317339906497825970971459938049183234090917248977298216156119370575176739780870418135873193180590999120221533907507591913262330480787482881585462449729591223622816034157286479300872035774404160529108554189343470381863506216527355551592742343894873414314023883135196327308406257379442681335734455004643095974230508197526615262485407839308410905859938475857896230450240275181445573021401097025084809841408414912331580797441208357671613529111501998843689667940894241984158612164376598387190953422090937679325582196578492778827761682319699873005012742449720351876189347138368216244970797935218171195283512967577927280777989800116399774625327217399974944944145836856377081868226332186420300799114955515323095873399115913137254830301668565481923663132554802978840402750033877722069079274142165038059640611450625717354912935716216447580928101670501400846254737226127319170105131999859968934989677830306009700877550358636521415183035484451275451757580238814604117637172641466284449171771144963174418974258474936105486412867239922726897409225266371173292337683842193058872497172044910959974660290003197889355891253185894502423829165965127740208824731888948297624946347799842116869060660642556841218892787743133022008059761737259494460854043456348454280446122338102345176679077787492392490025843120210426793986052284835299763424800077970401830779381865916675078950379243368803843784841912006750377219421294425316042979715646164704962880780479845224002101976064920263629304892502972853377168488288860299185125495075900526081217178809414724000875626464291887199363960119033816341570064829693195111121212036943517652980079214731961656476029895158180867412093413573914806318696834736968026933926743920015057317771305481199302602221171296982305448381587572251291694998088143951971934358052604443877265752297673654870416434069975373425863767437296737431614695662772905864973015453225794209328966412506844791433573847003261922970426515347778753840015143141685380976948047238287288090240235414662042469028045863828415917859788761263094542995460484802337576863074279606042172131850750988081708576103357739017401011773324241641547153704808562404889682895767060124749744499221910485950551679596725818108127972804868783842895517275508088845512775399920903291841082401301730107108849011011045228780320127119540209989962692853164206951130355732182313466376398330920415121462496877476671963852211833475522756668900564627189088145621219148107480867188038217028956479847966002985447075797750306163026935525445795328607295786720571280750812057535096354574342120991481970534509087113241956078957056112895783772341675842051521089187568245587439066633098881345662722050640414389174448365031075349968432564396775933881988647276061909948106752297764088009636206916322860247523523804862658472168693336988920820207956764638226694796722092044877148078322238790822897055650336756024706228397846883443416014288578989965263081563163863806562168105193910224850912910540564214449599779134286770782601554397060779208501100344312871083133720547636353934189488582192899390224222751296475307556904899802775281637785128573754815849358260226977414401114468589343531886333373561044327539473079220229998644907985431574978385742707498033222757837558859730182010936575621497699654496770381025017190117951536112144333879899592104941923851749172910772360269394480737178956288634556017023190445646085236988437249312976619416293576179054454217187441801764740017047078396244784770885428452197283153386610615799014774745954713034897426824308174610924040748485182655349341938427800085711205855790526517297025768579214915194025086926982184926856341991689202514840569196492652493526511769395637813983398339426093166838738184213784570521681778358514201303091481941745836012538501366045974203317117394260925323923725304206319685997836584670471379275606278757904798510950713068073698188010676906849574891364648995458558983211947113719518740316543086718326237856075569550820536665881624950270326347234695501198305775913438564344020267370462358507576543610849712485645616618641286254057497529180244846575825613912797808843778443448225809546575599576153112785549962394587251315746113314824347357752216215968894674989199371746422403720551207082863476528163101094756120853113426447832423852748775536883037621116190546693680017127499672719343856166245445063763768740957124342190780580857285189385581199276122590077424313151393534972142010443067163749734778731551128543607658726111826748534329069337469478024373517760328705592249556266069481311524162080996374966320124063175687565859285385950710108231487029677504808393675635015288452196389860379229697859206791813932834070588822311051300054144878228031341754028702112642092714104954635136248766370663793874825720820375147593590655246155640877417022676595663651083888006037670386477178395579951063162753010451935907207807025013760071285168320747556652273938052682964848104765152058520370052076786534797827110156101464311328725876746864549758979049740252070106404864296628542771642038867422924314450986912216211450209272927884918877688482889646492420464980666922629230209845860960299906101477901081079750435545495067037432301443472997077330251501032241597547764163044086149040587427764087950772704276193872602070376890421336891125810473555162293790541088056822096654389058180899144084815814787493702049241131796699100778136645593116398657290267669480602785882000155699146076313682089438715331328983861082610071529191052790650391972513424325624047972118057240783465434007329243514431269990126537864654091999729229818581010643115717053795717728470842668861879767493728808560746906713294114210493887692788896177670233247077394235059772720919013646396824012601070343616671038464848393038541282383299251826894991514400005924215642525192705802575880036431457505584062893562565452395402790911645240659147442213517245537015460074714508575632700248189048515907389478582336235767635364693366188931917561352867762701618120000332356474403544504293424962267472395204828424769800789406748634913596520614150024460598650058441336462898437661787464746230551028086042795395777443427819599763654707377078283288425764536976690772242099709297210550677500236360149036018058801778730057094619607871571569413632925524485171007363690900027136710357532887422999960504512120826599104879655922518584734310298579475884705724962564371734440358418693011464259736906345809847526660276037876092877941241834539269799345951211242045635819553045969504230002176164914469393416793889186951137473262175789866555074701493006766241843558555461476183453800632021296058371781275529084734243225519522431262884857782614891132674727050599765283833229377197302807669116586180419416485394914921845339524055508105552278192754585967617146292636273637185635644573155464840720951356943387480160181220942643825825345066353151135693381888659134704708931709809249881370772510208890422472440410357359089347964296581233686294484409470155659563454066829273899166934932719994880912786450434292517412958468793056900557356752737299609591072557291415460981973996887624977080509209426308200766886413416059763600532244007821715656302323436432711352872694911509860428248295399270491688754846148474103523494288899343357552432191857201044960335601681104450540111534108947404964786388734811996866849590464974836143283240352585843087329344923036362093247628923110260197146092447357906140063769732656516182434105199474909392655040389270069075034949020151226443081063916036212127870360407441295911549025236489406463113020345356376387955481799201360167801071122980602531725459541345710602859945056575746802754414727465866412124343249466282959845842221030089185786480652899352956568035264555995856626859020695571384961605379035471475823995235093891389684922684956899002951303195269967393618476690481947401232805573360271392343098311252528908220317109204326086193931767852963684501618736317559143944773259129134127966393736516339959454509935680042688889794736584431666803863838340680536306095130843478723327021750622820569868194432466966115910389552810409678689391457259529006764463453005597754406336685009054711690707612813873389769942690760851131549752107274568116133537067593607487573728520523522467388503701457158022845595129760280386472639361756453932266696393459282427671075023498290120444868593247812867489158140537227788525089624762499465171873290086782559269899130426850094449060634947552977807120072026629651619635983741253230416821224688270464648607751932086782792423685923542618245563327899057954943084921018482017343995063804575029820672015991968334051076072886080675725787269942446634398898115685685214211248103005353361070187850324055172395872305130540682749260102935906496523237524791939225461691078787132094084387261449968668477065594073121004681133429892310588773336282018996122565590545624321716806546704145775436736548212355491083731499222541804082363068400112302646111198667569203453495419748976982355011358605184499038014944174211953137699777832506785369102556396771727154815683147369323495132809233104016869322943032883027521968826422892184110969098168170501845123759131357886624434202639373645606134109914320197168162414682408794044432347383497677553172268126185129234353878495353349638725806811850272264204516289454054390149070100168980802634411586452140837725108059767347555217307766505017427717865560570259724455093160862240128766253912191042769846494625528316606531534991665475916983925097094232344253231819546550319384456555819311651433794867829512885228212782822001089294746958959916492210083296758726314745451266987428252950858915996213725226216330679317335854650725838246790818842981517119156995013579349626122750927528782592270023437648972607537137629778816189750888883957779356818587874324503408881346234959587447065188255348712022536939518765994350922847000148145682215644165464592787425056793340554885068442204683999979104504275491898325565113424481552358670452641511660015586357910833482491742604612032541154338025163888563199347745537144728273528641986690699805398728239224467587919536701443036907543350065257267740723310497905396303651353991278735562960193788404518285841855228333745179983559176686263734472245415220654951916333913087281942124158203004521274274126027550283008960216037550592106029914462019332939382859647401377665783606620180217214898618782030206231276976620086736774080352401441172501031150519960093607975520512825988603780875961705673127645530578521868989676850382789643080656883856507833536187577055343211988994945278101008716305569076345881087634487231326487056573629315125331893419019576109218740290976358490143246472791665310180198221583274557696548173028662917380263793797590967374181614029571918390719208531889343216248718415522182880159714241774666800878511117484692204390113804947560529615658625414994706324028987589464985872238465007633247169103404213023921604118054485384462805202258470679237649664745568837121479986874482606304003560929188048583158119390609176931010279111960926532685307061100376482159204454493802029332333926675466754987053276102132790839807893552761812650482977134547303327787661910048475607616324082177916934135232159445069832339558803581420176679510128273911264447198757229554640988057760504262259280080254936104643778767070928002816456563025749687248464466958990882496703970817502511665829626905608936889636786898148893218287103310505415003462463864007461732269005605507812336205653317438306101979418323322181567449537278566680470677823511615384679617009389783647846064759158715835826221121198720927151036164425041871080608357578425888763480295597161041900823733938307150221557239993960138729365767647569572731719240385549249689972905314155154233607508917371402326727128164747624767377512813509263255349096517479947286058917506089418767111503158695031184482155582613256707347012408651819893206644954236305743934017807108765416466922507736283819096708773672020781765875125060369386217935498146077778203490777415915497264565826768303448716934872766681504703534520160692548604306799170995919386063871187315938307346819211258307955808337155216906066674544780495905028571105926524177358604111659543936898145532749967987701833563482120162581502321603845447776028857968697368465330882546013546321066713557501242015850237899202054427363249224063706653513753446681438800342280045033016946385394937569060573161725785657005639793536528584915678581670868383675509287142606769958194409473542957848798824053911742410787598267674484260199363027647186082463827307226321570384627936604752888901401724248598347815655098818935417351701211779867638803380637307032764607731264027614340196549909672785691800879525358401481432050756066536471375594878352607778996698875730722769259173561654426206946305247508493045814790176986220246339253898977405981354500576135263064402486030949588815323948961927603904146174371995547569236440726548602513357717333707546936575812933446719697475610301857546944041218832728641006678209294609394914158067831394462967000732597703327870380364360503216846512360759203533336055222793697599909014613392334875159112112998242198807222263363570427028470809517878521214915482139857629341756580868320558199762265465549496756519639489630198401542839684877937165608579928488487196494050663634941899317247890672350268891674660987736352544871675718865408043942876994004726818678605019132360606267728680800789079473686966433514586449084280886300512759923362529750786367097435023496966231030904598783742679643233923288343792778200720535620569539641676198021900148415903665855913095432617614087027916012767832107902500249250239422474184227123653687411401929160022673525781397499847780860137740536198369582945320743066929655790461626086045344034345217145662964908857228876977642762338533239895658259991173844194607802471022772151423855147791240485779179952913184733397171425057229074704965322168563131213171407225658549171713481436753140449121735558501636375834069371000901583317041447228331760979141895159599169910800012026017827615631554115113107459008455376979050694240025567965075726951629908178381209257378729976790851242465187997734451781236002462563484126151987093773165208989723045811788662524408256937754434816116704891935763096381944321199802415292735382303358042429966476612793649420885580477449394032469918373762701074636461122212591661698823046305673512471832513045823917700495564279050774401863951628715549941886521219526281837897737104583727720172668405914310208351618996333438969887988239112638588857704045421857810692690817742801260579464789529186840153990897392269266342427570211979342333188212601085352881393133009451813396341462233980682426683699309474640665723166440402884645288523236802800032489068123156453164439808547382535248174401983300753865997549604442259006790208502218320552217177163965064019102672255549521177691509201850258590622177472811751237146708883091879934631895069969828856533916839067649855362773391196484203057917436742240870646553529796446575793384606146844257492727939399234260923741730014940782695099461550251059055484426221635834163580294807895813278582261948181678990095046705177504718165842310004158807140627854736329228576357845192080217694086246968460009428709036273221990271323704464514451180039571571566670063879772054887734416387920751115649026954194635950334828504417208132584346707996754462542683242123559641216485748577402332779387383897234306010370418515355971219556887446289083546299615289676659653751402794227708977510386309749740024147808788588609777732870362156517489103410736596567973732946301113541229740935763472251886424465212002016673565530634814161154167472947222691552224555184932184852160869233814807565146833733169397291395369515655836315756444433546379114339743185540831170168119399562209087286492054022967276857602325512843699682674335089415036110954876561490583866994502529309399055085777147287026349810477707081889111276072508469687876901882890026438157663853136252706539439835198512495872515019279208084263054467381657057169666616740456317066222631864576396825944447112009603867485245505805436816997482830042054256615130368179293239934162421103889763373924432094643464547186003954865600200581060461128550244305038526677880229983552749954973280622946925699211937011219090623831181720787969468387595212855320963903290859846146723354256745152908093990080676722801618926530123653657163792383565310496968593987946182550450130134165960182181661484453362064520781464192041716158474610522694501029178326125121901900389240862774624386219491676079265779982748572148723576081503734099365645322372693118565439208026664145240817573152328715338414742439343399882695095553927904000568736897986393223480619643437638458436448266143599644408298974366508794607305145644358013200795635735565727163713780776325014182320367291991066527148582778607031442394218291682248819091601156681308015366006685776672448681062136509482454608675777833408428297592069127079241621637968282234023487567753112505286362270275878163788819399480320216520983632464163135726747922332676786802220197694687180665294602884817653834625741417186812487174094651922416416735817285756664705995016291986363740755033227872475574546257653515020081282094292049689603522629691457188042594882372943652454343275087767323407058819494953756608304952604849676299045501368142286486079700918807565576424243721454534577359013450032114087868840802189398595637320599461911652922656751756949020471220778005400582504276285883154553813454093269278560361129264710016382935657154857097282600121792740202848523824406484645614419560351838990599364264725959480660488197214463765333397671149451276602982915094091167839829786752677476332098023719339200308811368462519317020171797640503735039595756438837568204537534377453061193191448417460194681008859862599530827930945378781050729375889185122410390528785802084974729876442243996996276448458079349199020096803504606636548444190599840101193585814570910701066690296585193497913409125813643791102971515454868619882643614873507033421896935902209819387026408295552553884010090916868388205082722004525416606035657725492215075333877218154504030323210617300797525444370330245458601972447608703201477557784692324382559288917424390159198541714494149887703350436294917147704570738976817184612686693356876636176406338862588162789129761040503190677716232066508051876797242222153925840393190076880374604492585349511915736472286047604961025982990068699722871466794014313809699207967856251829796924141470439914452451680281525468103047211691994004477419519597118389482220222075815556524096698755888175229013599018367609716828996191320381388165897870456320943373159957482761044824917920347356181217051784499015350088080683547051396582280452062116758314056689303699690096630009875514385496907725703500704966511997847814000899912447322731859986749429799905794048200280804705044005280109243656850559150697156542527717630288639421052145182136859984721106362306111567330500865084370723366768857302470202930361095074957528912263820922784277034268708716614530515800202796177704065948640978698148723047866264414964145913643689172310342155926054267950575501976067703355813795740585220331588654763494848193956719367818058052193516996765614111068441250019511851610690080600031407338151397909007608356094995807866907364437591119685848734309667072495013981154111884161368867304423761671038197902062509713323255468443089587232582327018710355912083116835381904275812749425521558686026882078905742891214131977979520022213438217561727535192229331836176312289031488767442444651893698234163655440845187963284024633361869072062229629901908137485387873869806058410870502028034683804981611626242088465014966113812656378917856704919721478302293336156957843964960216191609081937463505717399269661808560545249542909078089687676972581136517499941566873294915072837024692900621781899625505715256543403454249267193575296759814821662724097376398823645253959823248261587557915427025377409788370460239750947500479221685489763520356242043042176095582074978845755038369189649512908356028187163705118635147213753192823863562979900372074522137639984943630041077451539539165707494200449087285007868047097765945094915011277888438720423551749402988810374152922269935677053193432951496308812433028057025073578566220035463648087318550082725358950954853304040603604921109700253329849713968552038026169211705651673545692463741000909300621490558795027367680545508274429193392913823205550182975820217534072058393162100145274343230163236414236787317074288832869333470235432217636852793262481372342202581227428122203850916315230428123052964116532069016687920191342691510410172706677560282918751129751661552348372982781659924775993394825021761142915689025545228279265604192512534996831622721272991698697831184764188255951850294943292613571413595466392832245316433411123907172569832107945803849323416653393793212769544234274497521928769348113108200353541943690602865834734740930034863616590062631120080251153897283560642409770932204023244977707604869074820457890557331618864677609844425575060717161763801078570254391642074213803704048856730812524302853385869239654683212685891492677936049182659203250227404289474426161195624466086956515678157534126087164288384007563895028600589259792145816050185499605862805423381918049450084153070982733100421068010934754608011856588112527874684127139743135311589016325205668290127836149509316639522615280074640286320879595904953187607260486855226776660017583296355475346766131509091667531115596038458660537520403018786751980245045086543617552386955030614481463589008889596872638057129616437305591299481930026206973645485460394263395559995457741389723406405471078914494783928590705788252037567359095591671954027205891903986911280018864019753312198384341574259793039553193233005165260236378176717408540052405020733263228703504557812590650816753666058924435124778252646691900606440873644425724776450662811961367577241631592015129735849142841548731841580154711607223451763754611721896638820068010593944492225424971461050857750159419837572253643479557457815938678545901299877995002849561349498644330583442178993629483308934270614675610359884805423690358215546236045918811047462617160825520210910787524576350835543996460957659034947474512139911028137616076011741778348454039912541344768492677958877862700898780434588344105854440564000430980779941209065283231595491465972711447205358922953976994358708062612866736709436441494333423542180364750706783195654579295632073901635706418759298480573824595264004054956225018477899966700569114145070678530720032274217233445718046337157127732308022790553814784352517014380877158871100802472490973780940085780545767755324433269741981767142766058742734746469874835924613125319866594047374627863813440666335681822842208203061351697909108739641527338311986438752105445877522063491519269261186197302421778647999767781227204692833392260935696610358246345786464642545957707045439399966845388322671786450698165603401447442663583967674597414437720752161876634391767836484545476642896479008471396671711690611486375118538899586769840983529346242756764336378571414393759467179631728024185559862292363933867783194095634319267972679546706303657200545143281118903712761794845296443762427273999980652601142993107266737896820814180478187415863495420941722932444998841552372885573782691695573309647688720284063751876916199218291912621234369018522509478580072132519700163998830848076053926733263292233830714104997733122751910075282418774696275047401903663891290026558438662255923245674922452579129642602363813793000074918034014015866707317742562631932551392552049504815566334755636234490198929730478530061535923380912407380523569738306475718237508639546033765181896886830499539279264080584261259866235816223104393759070512901057470726412931368758242385748446046302524870530624036198422393029940150484378845537752738935950010798447276078288377364201982645952448156142440099124526718110127238484281238862176582196991491821998116550242757275874135359620356528095506724569787442778119527299534109059578929393763815297230055676358443468058369200417099599966112833140953880756505612173196368213632292613894957016048796555492244158960631027422930438072932405773542991861675224868358943855592781656666145686846280017855497354421675625091186780051459774146583742987944342193341065904626013018408608583550079420202204845173885560845236883840749876448288895443844853369979197359844949898948799143188964196958051134454724978940126675435743983700157703051513979822874599955751627966528161897113130396495358951849194119975183513023098499510466115748924266460860252429759332979799311566061252936121696569463376329827092607084750077610188295239292103436644431252115538205479150649886586619289355417481705657399085009511606911203851435307745506547174954599311092725048755511895438334827362152391486456218141810204523446139542990450004751062760353247673733474750539681520620198275481117496620756083602423869186292714309885815699710901273410007187478160762559477369504918827874410504519488040156258619897110024618071939355003397491051198650475970314715319637092413988362957490567443399589623264821048023377020367731060878665349456756218569587685137044193320748291455844320224978612679194060223353775725459061029636589533960892489477297034840964131027692492387952823292523225801785277077273214447186488662606575286600754560005918439158169385903025729988766840728336030936414259730833970299035704284267868310043687904989554515768051288251272017104037847991406630630575055982848820322366298830050880786873495934111351294197767189462113672331353345055313360423137508717116805102263081210376487145159117461347495019975087956867769119689272475861561392934537998103475734266874507067386187823056980632067328011254346816920974898255434896115485534030552628265987404553028104841773035091464868329954553333691117638222437195404387380270915179927085052905919520185568981245923929146472470657435339074543157218743576450142227690314066541430898883132113709721471110468318762307542259501688977332292715982713644518542440271579656117181494420646778241924546544546818691536542627861303276864972273183743893922245704058293445181029814421467174762183446615057228539073697421364778055786981663991892636541978628153624715384038897482140322043216153764738870917165153388712795236109304858610618303512164843955978670268910910323195684586523870741151090268127618095866510033557358947622752790653390197751622592415187750060304379063471983228450909871967519002092834288550804012463798005221375557180928933115009115873289522865162943640653028082647415081905862645087790187075536605972639452417603009951956626598404122771593128429174194748849834675322099523876270426471702770466637704309384933519072854227946369972992011255320644149518486274240693452471997417157845725444486446801224932743801628175716157032027677466013756208312306611330525957077019438137889715460872468629981833004891324026062887341199936411969990571058467458548078811473111812458782678662315373186241640538949790625729909214381458927180695648609630734722279578102333068122439090207754714398525471497504263036680492891137623247949091615053015443485602966025469737754390473037869478680142425001099307617118950361867837215120810242168005444119477352336043678736028291736383603961262660551113384320200279440176949773320145760351223114146137778835346623286849834591683980316090965365834316112844719460394062204759751551762068373331161209792042501182011810922108509478344719316865762644142790581003201180237366628921252218609158194254648759932142797397738299130058454719069158597992329646620537473051460906335390432146764320157782480361856297136766244541993910564148199382566611666199399329066969911426330843505328857538472412493176964917531010099451278061974105401649878283272351811126306318065539782492679637182042274099175468117339735294575182007587738133301156518695693007608008679385925508470344923782390551520873242950791507815369385605965538177446432624516003420909771020104508060409921085239715756069618099861196793710385242109621369066770939287174743558923551347554402831670518281737088780014119184631403605244889159547708972953294539498407655656333330280042108981728982489289451967103451243486174455846596299319278052809070429437353836438625234541080518441442378053835658233525676005606320286699142369403030721991395008190957774856889660308936054468135902201085402791549090409069737843333671840851338508440683319966382322874805853542987745203586256821075568925775517250035678028806798635397352556035558226505468356088588256933180013330902355500866212295727512713604400338970300170962532316819184401145818191138377319825379315704205970106016684649295003574477491747180119469401717752395810138603553349511238493858003273562668979915238533217947305065646250776297247200897959712230989373730184915790448324495091334203239790018076071393742300213458036669142977875844838922428084827646741365782457577072600439182539574801469672959614158476984571621790939991962274608366844320043774091553013237944681269419188180535597418505831040043196324172220782041710913477473325034661498041886675461443179707705803396337591656175329222291071201620680486596398069077838127891836430681108298551721139010636537904868571469572353980655864251161448688157005253932603032833837704022012650615245904573283214080221536753876875685926491258521195544570328471501817446560260189875077205299382031697512609001591041708552312673068274910009875959362875401338723204196957360557353885884663667581997232403706141480266117252037365058189914160357013352025753810268215997035423689076629150745855240792570892464915967675878914676798170508242299451532866905723617468498252648524370431841435382919979953112875757708420169027238421480913302803424401435790086607686366045186000008764451792408657541164525018969163582469546432868831538358879612220433845950339506232261921985864281187331385566149407348617069037586621748450277293743136737880709827002952564589903981712975006693891523799445434466907604746648584739777695253871561402330902626260181342915151653568246023959083500925386922490358631371936633314842420139657862582133597682026479337215892022344331346942942603797266650695410862667375474562781491875730484538749815365065709178397517688052019666474853112667256157048922855745590896273384182804206016241368306011469641378385725865192066515028485312482252780302078658327127502726405625411569265947786684108797050571563247175954428511340116856342844766478845901191757103241853751243479214671188631356785079408184287808656335079304355983319982218943211614021664721527215085771052007488922761113411780044797273366678683865367939540331279946484805784543261435830577794376265738679533875834340076961281491197778121862506030845173032576433062838995194979920482950063212425316863857995343349390099140818983430620653968375377092730063140334004951598993449296621726530639850506133778346560591174502079513104786154324600538669118154983201984180468399746329228586206682584608924639895743966891991771525848328729978708794581034469100327144090447102078327737087914724270483773303116766145431799890367565420451880461641813054505336465618135682694586036164359885539148206457886522004642044487825240030799426951922990155146144953792455649789219732335669748847959478346538353448741023410742119491061385056023533841611497415561364523773524432183532154021881403976861147192355385522162984663473492442230197606938851338168607666887150600653068856844172894741136460695198030872842506650872986839846239016350371984734967715316653015846778364735317200183694156851061382870488470897867939452475018065314604664885866451640418473136351878968492835168984028038020326740250273143399311590857574718257494779991312403639598524638916719148440887479543062430894493642303312275400561373593692458482566906176951386583346152544610641805566283953057969289718683071215659265632093294822394509707235058137924151122173804849908249521281777055846719792694345887770548260364162378892537251169803984547410230769126099459658535426168981110172377449995995425468572202621282985164859977262362988600598913654498425680198113044246306665186603801559488109633460106193400622606876074869099377503533961313104961808824817926575870218396402379650648842040033070152697142825106701671165240356215378017572897424220547041520431349092746243773295492918831174398801410249434167407673384463665650775949379075880580357185734906799197813280152291996175502953178715984882229508993085940611026043560279035057199784249821165071888156783945198331927627554250550185056968318503363467860199341215050752727645796122265841561489272389633062484630124930941879960141104984488149087944705621937471918917319352228403298892023911258284585998364870305658451234971805847759335767648587557404763297549722305637656812856286747896018454206885601554923038012915040483622849019836582743011182952175090381079715412489941889510531000415627511896105046788344816985396584563191873490398600994004177264232311376804439096624219313366093046155672805983272983409396712436125994517334224752519047226781769862713650367150297852288832428283568148893208072419190369818060810937805801166263945843120488352453784825341914447429668971619662259211880480575121814222124077323500622454467383047481521390166712377365539546012569493637862508491045429480943644108559754954885387825368493629810339482298495728675422541300695757874547087541557521202247616244210183214282056931227388564218003433841584660347240647169964744369332507464371498316834924339854422804925805346651503702195851854017518567179352730787063353875726535758818486339457942211369693282265015909530127013053168890340460907718713003886401565203579265640616373534575203519113274117212619153361415346626250970436159948129861621958721604683415256838504141480300728780633027567699136992100870680935514822309079451995424432483349356016223379711221223011103698836744949181751062440093894710028718222848657752379241614507088298362251659083933093148502194277005073847670326176492371479359239529894459877127790827499969582425325910427251602515356848446049107282781424916950660873403180821319004686738269327693453424286033490118386431360719807806881820086490965202315329893740561624561783236940713583450571770381848383431435474533074011117439028846154749467176894659262839235981854698175577930675137293813780198791413767389324704191468557288175942620660820426955078944806454419035696614034901963826755612838165375981956988494586611019297384326334139152739274498282468622930378904702773500395247499612885246478164641109590332558315265214356244571388362516162364259415898828559693997984098523117345228922747274348855583415601439935908730883508437712850855199089751589487772792059551274522869265743177603636981128272631861160663966219597783593781085612378742149904104714071056699386733047181028652855085252156573309903503920930839567230572488507170190104903811269334896130409340076902406811163218861246810951126252994979443807563636883684319661303448264724164560373128579796565088901318052969303684298061279060734199420734215834703684634361848264713413262050763410010234458721025707354795783260619975102487554806510829464905144139465765984309441556602143060435807634679108049769017415190352612605763463605192909060480951762676620160460472965043700036191577531512926558062845468997633120793962312958890228756855911360156409612657109842846646587604722755231193211166626234228260854674684476336567041592894050013293767841346906743790512901825051679517970335054737089674374766182781426717513578442425282983002191027099805202632409051934249559562606281434831724574780761077398308481626819393703912309697343525475414858826894834845908158102064365725632772518909193611832257944330214915438352225881777714363432042732294442740714634826774498121714157127788387469649357253428392328708143418789552285005914249434081921412116356029226132676208241908106859605092776974786029793459711640347361039761011924273596882080399757423179477826284291684894384017860559314406850357005107054392500546487370175348703724451673527679648572993455022805745125667025993445266326926224433652547591112731447187724591199085257682225040851933864554522215714132341108363152877970185747574349047259155117163519278386714595499849767823048750931909055308833868901923792755634518704778044570596899185774736301772696185896195881334416186063441864821917928962518936489745817434397378466539562882306379374590782783623959881821633170506294790560489762416041555102383282643883883653475130784279242663887302472005636527742628284186697872877952298983173699709519492776996391757046341927315429463594841681247739243253767702971226636832718456375672808069247708255665108314481287515791722217955134917797345020632296552202593108581423427163846829446686733647378249338360552001223525766752179049190206984967453853152521807704109156647325442693591346694071697377855443996904867176367793971933449300314593791910923476665467008716815482389272698639782320207802895449703681875993651168203531706142207490208250396865349185213463933855097821438112401265319461604716342207915131588708389504191165241261845761173476870821288820857881919266575126494815410743549965868356871884963234714725608012434669753873094590490923190713872641544283171969965921761790587696423780909496610660917975938949389047713762908039714731425300340961711050433067033176217750221067298455012040315604621309497767983894821552032947165670852344951405989604563761613333525129382931449077940245025456852432233459774839821775879428937794621455910467512707875864842305332292732980541490471762426605916761425684866795179948824078862598952273166516022248161806438590491907794253975081024377801163261647787662552179330132950112450533282585465053048379383983622949134227236097830709555184374600470344977912300120179139688778187135436901058938308283337392351158609813565284886211252390254534348634309870523066394434176425670477959042501194462768420359092300762259081447217158072741827499613861455860997178026223361563823265069645680289073351220227095955344083222280114439735512728322949274748940519789291577198429461550318629775287766846836886440908823105756022927119268947448898158450751997118106571732257282329803539107975439626821155433507348485730134982307862582779286749689415767637141597979711038443189753234796312741874345619607963549351044364701719383453777270606088492112986294872513371026407715271921871280979656479726721510532760788655559838365576449562284435269447259822129200189430412628075944222753252794274187637772201830809100420001724272249685691878461315703975819888901371529421531959156741577599019534819379170248607359156782647482444398501444897502175000596391302571063474515591607049595207208220753074768644175277036063816327602921118195062698463176603566472113357168171601241609312278448451726654250536157165291724356077259024811283279199142630015886666656091744263338739932490709472074855400866547180443685138682792650657080723824546733094117506393934766613634206344896973415533268225136035239096747514068298020428166280131712346722808363092996035178928058043956470629754602833704198270782838420329216625570138754946934424712081091907135489570590206236987679920732521738466971984916892146346259994868248883489761675505110551253005090475019163258089476968325558129594772090813006142091935598709258255449872349767469006636207343317600872356688442687072788437784591756290505812581485906392248581150347061346073587368622837326576689320986355939254297366475169762087833942263555979272480682270741485854982062117882369405828022965259037260232703102238896543746815804903599031757128445933640917951143280412476550254125044654199211523321886958723191988269808683909314448743468029250377543304736200754205872813374768890710850802174587757649186130227969726789729641314954003582927331920209555339159049136676861692773446167699260072392880650318606925628923512306486153500109309239755954185139456878598741049160349478065267959053470500569575865581110075810342305735865060724866442455501028848337332094106309799703585178765708212246587792029603572259213957745637045615618327653265662544002325862253700160540070297270459213051815560823974172657647740298334001083910232162475707294457366455964860133487883730515543626377783312387523747289781712497936854547853629672755815834827543772890733393660212230797780695572583145613607773395092078433408792718543215521357173517672910597648776576549001314644884293147042280420453310394431164805453423988984605342014666679087076828402721819771821820297076595209102996247969522567023916412086769508937328003371058444445073421452534311055198807009934420718621147353803873993537815006437305886631387008722528498561580467879692329721733442852558343899383391852804060987270816996460478475425379375756996382274680898114437359032095937441802792035196922511974285601340303862290986495798957072628720531182894759081592581825974420519599526270739879109602885828795935391919646144672421872269968751790106589263620398949861644962916618907052172584358338522282022642934406041145082223902646508508338948416074382249996358379677535767620721156497288224285507464826666825635187357423646810792693652647892983527146008710325537403657083835735333457484963162062237409686431704374656570469050099932360023432045950298281326570045444495007970987605998737197746770950159456995129619473377327982643569354481781998772051617701629818885939446751798511293583994351301926511090809431389162610970936669643324080423530794684534364506641142781066120858711488403284153813537796697049514750305596078745331255683128277704337284094872354701186643977777028558660338651994191257670809140375638797580861295174293270304002752263569733304688082822727282054057658571992084437329554371477699862952888354328936872987271831177061365423147334582581126612905990479056764988798470275602265980449479095507280569674082806174176129730859967236622880811334400243932794913138825796690421511281601775573582605795590695677335321957013198981454549077730572721820605892667741688587285246816242219718770749360497882099950300324343590888455407264241812263263176713076056294028649744025212000094829358922436757483011697088489902133228947195715115354850179553000141114845047925424005056120727857133160403776261042683655284381785436944596255776806386794959864676456947739832895428344839384993386772659071012227146864892789624480785229254044042053046132645997899990133146963201109822619617321854578908387800235591724167391692420988532190563270542454490218155789852126064710942731450489788086904709525550022645582747589062783305345701092127834652764396711323567102660535784878636989766393823710856134732569373324537977394708980704231046231237103695603280539404529777907434884296453104092572527380997859182013906124780243153490919676811065965181861787193487080550352362083967271989494489344378224652331324289111934818352178081062157849696400735376489936919832278319067475671982444011769244090864734416005431723576297247940363520191063250073490734272644621015888710929689979557294702895119787983534289033714715822064226114211140274826627050946845358963526078047447171509937721542447335931102345842164691158964952786569043059225277501485344913799066429278649265448432064091617180217229342905938107875860609645366693157976979697408852891521214425342607829273550318402394257792626173070900482053634631206071257937137189893224282199939655154631251122536635857542777167495603854842524805093952681937591171984816448164518536831205076700321213260688531474419796020050578471210474426370303340475926324193539367284405460003484330891835771094486741329252716892805516885114556101137961273042700125565985802154366522838051102645107762515336050381171387823695478045019328096518141463051831327379286210229280946633887123220085893979976254813951792284485943947902486233181524780749839799366116018584448672526030143257430989903906029903462539732220494781844466082183911232371995377816386907985787316532795524395502528600597169565634570826812271971204687771063839305191179805712435600312994176685341317485637639453498887726306791853669695396853358972354334869860234896073451179604710021518939466720421801876301557763027856065055614498786821219707135111237442272743582350942391128926803555053713928262405793853123270808713067310078780503757432205396009691278510140886227066226598794581564521502279471404061281064408858576922612837664844638833644789905627035059147644966370841000935192580832171665324791274776199713538194315725006593094651897848017464018031364592851973988205368529875502087991393997607666315345013773231119606429450795602096352591102782242449463279381788485235920703145335722043874410282417111904265589194385048884401160659686371103303053183843323392606289174096786227202442106220751400584390687019417331258028087740189869987106121768739871358976604426989311057355579014597829608335846578951068500542538988191062953749087432769336630571095714824004996494976582771594721080097761876567113585300251648833612315984942985338867970859953724115099219103861624107019600220778473908601108565457362739321334773236886578290719360071995714330018406600149328165456591985850443312608957249648061202650358827060170013335160131158114988020409630353595736246567168164958559426480791337026641976891742119423275558367267015283786899064173167184561264266011197130134500510043678836835593774204789940917565050221406394565413565174765944817978533386888735071583825504317105612922397224324104507980047525460148076178244190631190197773731280233311104167626653495810133165717851720250168227977805401558937893901849067716159158709037129497870867668195981773432637462560786831112796095138675143049867377750863842000052452585035450534882272130129340425404739627966717029511119939265517391678308215610863547564910493998964643769661830321742545773786685768962994916279937911771948667192795344947445587640594009569824405199594546340476657208657241096944746667388420823105267164876561639855072453048650671201499937760435955607193180239567876854735611761370565912740116984552474467075271995491067773585145805064928945494762576552170664015443151680106669630365614606863864922964095077633144322451400724578702812579134730937056556211495129051086979316952542503661290051335022582269380183570869489655803621193915361214219546398150716443023221443716649745748370391868663652361931409650833830704489102405822519920674024643342809156547522982633688250809405218261240447414881826448868593465044125756700969953641338552224284008724180578192448614557788642401911142645796464084545636179689706922661297613936003899919974062305432583375098261858725529163865252074633301518955072289282267509910652283833322988599016016791039869600123707800666364500359084345965160958412800534500705196665753730732765163555923485748487950244033917020647366746599158404312465631127914265443987520926400703381849601408652129287192735076845835228466942829435143837791335079142009523212307757241044370390142470313210687852112504675181526072192323173535127340647353075320416812452701060628709093773611547800643388369204292996017954699523968240309563853914200380062740253153501632675429067923303877467956676069345229240642108505537801818113105938435876571068200829951237884727547693221537891174124887701187409858607943746565670777513695626616633132025770975780536653101478732233916224338902026227292944793054266122611538289249417572147743456038476622239479715777452105049134853005953886256372575280784234753748981449842814832449374567296412861060986580098242608241221670622175479200626885187282628402672323444795304270791891108817647788654662776162068934655478076475074252994180592352689949279478272979907167366255512494426535957885034041462977023696392875249298469231314941017013085484173572052258543494631927528938651361654753157743841243785457378570650088374990825685664396633975563413546884903192451904819097930858666399543121256001320622413255065828646807609889833622972105352408655406872449289048699760334958397055533487557562043456520372707555085022256737815575857162720956858283002996272637118504476715730716063105016733225968262270453774344145171869003646072030266610814585053522369381951606914767770331379562892903433033487839765643500789073695341614342933919225673092072665681348445237936938625278644279096067613730951896524063096452104039457926289151690900357914226306397451631646032743956332322948816080840420541393500076645064167605654745807769647681962115548788464748823169883610075249344236557376085478218546806971406184077468858958345842788490109610242235163361997056025916690153921749812029395972592741740166682679316873892237581056871054851621293589945956232992674746069534206885818075017468805679382308802414465224422450801836906225181244343599509748751302694212353109027537049521497112248686974896390407402596690153691225820120820567462860460512799937568288655501521090308922109835714735413229669484729020914383324261433172400704073216435838945505575901865523900197057293436686462749344338949761709381103902601054910469818436879990042082691545152651885016709843589338672577177724851521436989953410280645933102362056377068928452729462024105178350704227396794046089293220886836902046574416862708556658622883921377758357086416388274909650807455602881646426954124936773461114735264311472384854360699032836900296098606202891068546019072314298583254617793091423509380874669779815561901566767121231187202188222593324500901310617223230065184510849480268732918218217416433892914546357188182080653218398795980436114970369731144773249844458245139695308724629035327468658299301383461561096681947037501729058630303693836864845821986573846923432173817537559761558009509323016823073492531707748905008551511893752354322803008399540434132129297652988888614049120772438808271848062859872534268145257830465720387111521369195905460953451128949523012539681272137790822912170669432630565842977949895042803924660061164567021499623497942827094357573697319323527377886909627759288143006894746805948715844610112427958440765928579067672773232527350153971064660770120973073650486349473702362432693506949109110438307187004865611728914100849364601143341323843085488705068497374959961239344398499972453206463342464815196694663555533327674399123614715088522226779423385166648242200361122276398000285682597232784184008199760864827876224497854848682956899076025197375225214411338256793611696082582245258543613588770054142181420666939306911291939508674215706055548029264874573729359969930879870445413773397409262117708694429622450425252745430998932751003978836732791986259659171432511479998713238874250885840769765892355884027295693781938655050145882384121884401075687362825582624376720121661039175275284608603998177500867158661005969398867104547403534858391612356158255826348762339416464316597203223727336793383713038140103737027879396792980687885618531372026259694692076699932096535105001108250926988724847343069936578803180388221706054340577703925114071654158535763316622631908735835830520019784420557914119531629543528922704921889242765004404161231727525643761070425283937808645918744262763461837379998510326707427054253682334796650780233812498434299893587896811378613580958249305380085723649686978896933485283982198414580264755762813108455738506389589453406766039225319726811738476819001080128525651558864927400623968958823880768697550892097050358014954617893991700386749294734959399761816914375004490706926293775301189744324284825459614383093491649592311417853917807274787060842037853975154879486803219196125978044130987370076750607087655449021421935316049282976994195455356482790079548754797825584313090297652003021196893397126182641215025590376014563258291608018163228179507422062621951923215630939019954796271236147055959909053580918963836041708796955179422313116018173804464203821159322571043472329935154371528957183424258969626808877880169097608632617151526434896179440328386708923900273960258719561556597118154115482603025703998846381556957057225216526315459945335835008193180556922583674807910909801771341541200131293604589404183903007228238621211842631040079683467889152999641558246564813651344922627095863468955161172517456221858434420088497120251918449266614326389392623222729463395417345369854593526540678897012698015910444588723561542189507502859975012852575470237001249354357073098116351405972092368343529910300396807423644670996107554460250835527709276514290209988717064603774491092110879349440888376140508312390218008562141802313123904575284268257233756531897719282931435160025390260756606625032109444411404524178250225126626372363487099768472989105490679133825186120663503107893345072216530007635229191983782824577019151214687154129673562378967885826733995262686702732012555824251456142402896314807372696952800706945288346608545113044528553574930146326570512165822699034709227216986520578190967754733409004641208899134372124974034167800819816079233664217747774616361326046784034892163199950030291821785132052398345723400300651605156357897990323920578172348637421049021892573288733429920396059363813498847436135903574247034003881824841419782771808785407433430148751834276673569353616631255616334396133202785862248716166495006963943210490188555767008739740870473249199095342778629559542755080882773704900665341394038860731494276535201750650998778128840481740009936315920366506232617568991988271886362089951888640142884685465077909359424980618832332352795537926178764332811917184871991223971471574101376828938633193267068881531154068407816273289778097329283424724554270739918318597489113812783833821302749947133560334624568956262113728121880849295325671619299433414076821655385435461588601954334340320610815448455841171488651991255546753749442594820337406423776608533826443888482807457562096547856713687435171339475465019188522730014558791191418145308093747309874747253913165878006017810926406257276980176414069002429030946306850213381161713344179770360884542647794396707198510403464122260395228060273983326511613936580693055560764967557458520734777253695237928793711566108126849484061395653313264795344264620888580783389814283047456512373923282400098598573421303246023034461390869314370056567484429128862387643057690739756102181430801051768074866822063346581482499153552733091910410629226324280109636727642357067123865047958840253962993973374704456556282268532919083871653597807013503275260200508508410840497161750645183968395421446023806390911038960144770772028770289397830064857362735835941853880475187463862954357796691690645396654155882841049982561547725881673068834442458524906083430653983081050869796130375302147333899356855829087118656025027477729090141731812999595523608927222047107732703640381986981544321144939775585070451208425669032623842563782632622390314235521527321642272308340905772539671266421575859704554768803577582328275789701897282452286546962565508128659826086012461543812778747359804678034460619563506810183299488702543264677160582945959291876016880019820398280346110929324336572479847600295508417427739768021769552671666508770728502527277531867188806686226964952733142704907853866485566000502360777823108536292640213595980529217909961694886917612883340765815907330183244148137076617263627983006326429018578534780603342478815420322183400433365688053273317957497742578312744411684213127993384301352913293656427325247481801419542020794631840055766703045186073406886995553936375588617990326156020342649050288550426888637252666077539306853764952703770524715690322731854537859633597323228260402510003974191584271166197737296472030689143620007489160105133118321338556513693545905437416788122341558784046980516894290346280249136703973170430613052796488206641735311880624446018217720080301707453396644845844709561170507548146172383369640800273350991874863691877274076866289195290790046233927781336731839019367241811145306888207794001169959406651271141090949825027100858407963983604507554983976716297392657693949068025191892899831669579397743168193238779968510693957315832634446784364374071947181907679217494272611084300748447032656436928263848187349446231025910476628112205697209246781265527137656956273855069437587090356303041309125385982621018577190453322465858308150099304460415768213261666743700771593332173452131945899372499971292371973782888771519341036910848711045770734011818519567335213579805589575108858209103633755717841306626252050966225998033081699738279217315707195295390118283734646179252411059378420398495314801857884029580105339876708757639025586248290052103315248945197910744105506928780897789915128823777863917987474409370416534847679851994713748516918321284876802573630820567439999896187032775868277304555759716688088960739830021130716163643159777041946788387461060448527446344696169807777255851853399045028489866383729245317693964075544703966975837758500794159247153403381861453297487358345382966345718759439358886658424714671827904984504607523478324784701308576563689101540062882544015035280140260589833566697319774522765698751819035646076920803584541814939155796443939065789299986360333313145715726607217984355738005920984989580023551082863185739487047397561844076830652988612531497210744283784430146370369420362804142126452668611391916840668957633713252470649422631063554432681884899912859699567088283456344858588399998179100719478525030454544916231948694427723406497897860203904842478768758715283726693524202741310755664666697206390495073787993950970945079911611559601233188731493191091737501853729061369487823805324044511531875230156352667482987599487857384273495807946256875660634230295718616261185866582878344230842425499211525444165313936548236333883074685748343053569442969131729971565480769099741097623968645531787682787325730820924664410043567483428155044146342221974025220518588056488239963191510284953157035483492449461036704519600309493023131710374419238800423691188927375744156920489770931854443512816652500101918736155054693707882191093871595810549715677525913907681496622545533183329953882984529012790681151201218922696810357231054506468310097879647053052823668400293662622901648043017521682818884645034845811748496412149676679716717016857469455065594486511571160232013234243307245243199010899874441320883257115074143190826805395796090261193664212911894706569124140905126431539388702947785661501552700711684697676943108076387133624990153079596709819144773775042456613925159080161263038599238158500765048507332547366246065814306939580236657609725755352457374490965401980936089489304294696814464992053960891999711955861470048121847122744306517240134834012173108615615428840504193832315498612295651612433117605003017691951143142785816722954421874644850511124938385801134653277953018924156413952176932882364647403352699863255932254612535542356323889476752920037358410292543730642749770464549636445231923901853028353371368517018303727844972285973200555845360514330674247413801870331607799301350004603087619165904575234293092987603599756181654191053445432363580498059602920850287379549402477018531833798051350183389853304424268099269918131793435619511362225737499894797391935306656698579386071501896269061020171265677956815507583375588410815495790283502242031769586533153149435295606794552770998389240684429870898064917091993714930593488845300587052537769092246726857278023009756139025553689151044334825592209566466103764474096661403945555074340258443396565752247398160709186508699041221374192734997640922720334403272063687187641860699921694449533473562713745705140093264886154587868145920086594290472314344760847158500745536205481796955459256291205854863003845807918496755930068291140155162823273706147659424386541589242212178819621590632470389138239419969586806572863185469510328377703843487106841755537322628062798258048920411648806887752061782301084181203623657755334261638061054781816423401990069084101116046176194483343864710831025474205768329928505681141981435993130475828138757886587360982463715233366665736884066764309535913568902043655442195745072513599591323772655615520507633148098424190977543220621948461338581318000666600546729965608183115180155239098689973848657717758787218301591447425721609171224367919167267378631176632890428101659662951266877161092388407378106605165144994759162445471381064863838824230668047112648123137615904637821591410184974844963577606106537624907049908646119003360363680034487854194221816584228380134305999011626130866976677944483643930537885218853148632694556376211448510837960082261365604271027120318864585773111764464936354431197893552208264229659752674449314068972093254532228174214077171938771499026594671449129174267643140789689701875383987880711491660747343293596348149795524437350671438413130232644704117865776293230580446451958974965389669460409370057509082680774539718568231223044037002176931700108164805788211649620110030820603243971247647727727618125197911639323419607044395976910376547854912833463332873302103870938206648413855934890864218484844979845155114800830745055505070892393574780786943119838321452495639684306387918523254613397223488495212175048555329102759391881465971363923505963365674483562666228916099577943617916558917660368019805161822640595691631117781333780912657720762595896693292217136210601905907673152099632296382632838849755379724581213875638389253408631876271267161568127038144465568043603763945141414605050134922222044915239518515099091528715195065174103253011388837871107474600030548454505878671305248196560406068085137618400465285238817192955960311009837206983305595505618177909065830800113515915887550733180699433722413945016565913869609988120679867246654188861165428432140258763433892731574953676452300559466947798441651273513495391072347869614699519697846409434789174550913757489860758614320487698120601019943973756334642906348517994727674710341262530694357460915051292786452188746033719831020131120366601793141762226158478665592545660057642359568416688468226776059321004953525062354562537508740224488979340430425334547037512003635665204484827852900517772293876258865686359307821996347744345245332393863092846629276798879483465879040340217283230305146521210691797456380246669282160782535474738916139547909822074280367085874872569294486669744500425976295389630856195847445102132694324682150299546338784610255124735707454869589878980933432598288804759085090323805517495723373725324286041648770681557887567846182048618187585259486898197541090701918514058392104806871775507955891694157258212903226386551680457146827421257371009101311407765481785712106668588403389589495108209858198592774990412864893010796535467307975914331753401868953126273029611693423558365822414072910663398398825920705813507520725353693082403331721750496418393265176200447959043041819328892744195994208681459893537529336615535422134154525128654699220060729135924471295501570348494660092742165300905315743968984293728377310534052206900855327057932381352314843558191812234403280360499004289947598315868774659597524878088965031929140073017341179188911499054821821087139440879956797912258695510176348944769037758237639246830780389608169001763862585726259766211792795206272204242595178306043980684458655112401199550622519913841551154769808372916443394642538383109273536286679115314998310440693529278515424517466698535986426103503322651284547350948039209486324975415904463708544131178244792707440897515950107626903508346217135227245211806361148085805035077390658567740093691264178133988317314621252199008988566025272579522531792604762360924388259964743865649222832946225581410411037080037408875239789144427983225397285875384885491422754691037252263188374303008435822335633198958503442949410942824946179762132626496720758033369559164025869320004646628718206001568068691118183535137092326259776601978002599071993776274828942315295339554229729336849607977374405070310500489282207205207210309215805079601058554271741781105121073896379561627969346791061634267011768011579577617858311550297227455907046693783974888092557280039668727879955020042073382636267615916368588351953193027606525704400225116556861999859294673899151105332924018988995681843293236985803249368450322140430582748816767704038306495493147713644379771111456285234229653995070645407608455066544051391297354703726218773113779189244474084348128034319625163407731659491789725602706510192065985966752403583643239311379881350552796146949681358356330005713460621619410462973147970164566417127781875641779939497612531112451637515784230502317741860827658026498625202733557538498025222124833561014172562751797814894370779943997142697910827156092792333951865005904200374530346822095161731041799304553348120517232648469619437601350080446571985709502748149722980414020738722264538075551013321746737430969732600731074936890502289101453639798268233072224583604536571548252029894574902877783410178027941482777705718437756925654537247513502072980373189012220585987362569266078609493815990365748261284284011790220707451904539429779666967307987694824961920512934951131203004527186284314737569379675041485907282485316862718473499863213620448423634873833315612831546496360391827459780213535621818365300387354723213978693690568776051992767000657062451390618650672289610822105875362619846582343030694673638201935323319547391837291934620207754812220825360845556924723965215829477992583263473489475651039907769707857334401373444155067611619837772933824335078434446319690235326678343271374653276626849779392993210243949863603009619135743369252976543878698477925432897937262727346234424561289386911115183571513357886531241287885059850619736179583598179710133098782258242281628631792137377606869055494594556767499728092613122180828133086961215212615418110264913377334481190882777173344042024862284059480152133872937855367660169971270211053173108076806191273775950289086885066267856501767677297952219406895420851557569700478017330277225538687148317101842789707027962010765772385578969471877204690180180094179562219801992795308686201759011603435864462099163419278741628298303104133889036611686091871305205524722955460689624146509647021143509470209210763984959154804502070137030761725709127168416085198236193526854937270423716764177249440368182926919382614458814648918172779440097174530971653534862278543555473110010988640188534028403765605466141791747706388484055505088589253775793897718165991187812717602107402264946321575327917585638997375542452076249665843350849186875435591646635667605883402045127545630487886903798745506521807434662281386819913262979851310747182484147613047588960181308082784898765346353633338759774415994305214124248833731550060776406885595430358928211383179016098732035949076618613714136231023728873366433263026594999195606657163235103964079674113453166440755128926448197073913626257520271321216852813401171331333365603288152849436534590919932655571134499555618070704932339489760457720813567173153854819802109714615304853002768445196643532930739951765572651239956083088571667385982053266986813748969034330749218075035011431985704297287157474260109689536006687520042720719999614026342534335362471944956324992487144548160443247461045752848570530447420125175351183488462654896286586447020536365680724548070032351324360126382369228583707105518849787963769493587420040789861732061569023814774632005827729488804697250809856013652731560782337819790003021612908381513442822534998728544495476048367582597488489051497346606525120091204855342311491793095204193673138603497696078523213898348772545724577140273266001981769918896020815571151785188026666274661022643370021169530630620649220715839412689703571243273188662864870463430177159016110804280778995047977575616040240680100852722901650129584937491630328725716249234421614531984947432334910751030158422933241362411253664030783935994996944913106715404764964189284789759807888457962491507036498511097557507688928002703868620242380183932743309382851415305240048358853549736956646648926815926663635869106097307526657947685363911119469757102809953537953696237005001467799256531720383777348242162630135931863763111122943668241262266774500738774009030287631897282248167018699913903372970058399876460613877740260373942706804128781928909522769041394373529592691857637066932471390309305127922504688170363263577991329795063649326456540535922918224883812727541021302893695171245797820701045944783651149268745036998774153666642956810504258221460178917408898152118841294516686435702445096353929657415907133285204901413530952970556184191174241602901833747012646068239876812253501838832552484932784112657572623437661404696283858118914751679759527323107565299338071152360402892508174612015348546538596076029935262690701423329330276234763959460543934733912692685616297025886149665297611694955314871364771666078572670160645020708440902131823171006142798292248634121863259360054053157679943565727563003973337031885202615481148554262206335499804280578165066775769907337642617020125381685406858240905594261664861125344502904355104806362860696127034902790321604287879780710692467343842743810897528817367762906146647278637338198208421239249027919572185389342895740461782189180862298840550589545746570604914312467139603671472912632148603905104585746646029974756346960401604683984177403499984765614792379161468480626651660265589595468563037990445736085108054609991615093012999522421658255887354008639269212366814283956358191842802705238430115192977491727302725824872855541667062311859013528187698880668265377759931157590907015569262949318076461781740485437356960281131750986790870303788452296969055926239449012377163900420477875598375767533179530147257475741510444729994841197654283438593155477953099061709703707619032114668646968754106094816061338140684601236587215424727850313387721118424185905612847158172049521669274075489420392964122595427348325936475590816667494157146901119546235450552284511815547718522591183850925356381226248240999518157053328166075971254819124494583775641179047207954438969820515357730727118351033877085975576658731259515128343248722422355721874290236934569076825674923539893685693454673050958631648536273129295082546111232406680560018444738631470229311129243790353779889841513012340776745314604117268639159753137876022289304737007855816265667685511464885160509945999294396414742403148742153790504239689587115847895279876312734807310584865307355441811098882212525155273261162627247380493486129476844022545329314086310493347903614478714417996740437529160156707893903449184753969229327764741315937831178628501321573159820171606718884184824406932542371877223928214881146240086080275248246207753890378364208937012599174670980091543611221227257406983051908768042775901248268861854363562942786999922286686413842061212155457535501602611242898869588318432539930412013839616361020266525587426089723421687567809404822966684123989563165144724477047497561858201903062610134124551693683813407502361271596674104415122576680982914549595509402965121937687031659345284341652943709115437411463395748125948968129602832158233184848949939153996968118497958451621297750541968205643440701322735380214302259026869874192146747720634852168663636805603815339755251809866985343911413033265186652265779421343297203232472660583626557780717187301992052270492390820262840252110773694602158195061691548527819536282169688820804740317572794781869978371463437122504621266687884019938400331535532822038770481169557550174862518068084946452517353894304135371018525290263640053956528520233866596382753805177469464986031631759777428091631486464351023975335768016446533911596905692772845370956925195561001109298854461491136091106511997822375542949421548498466212966608159478690963706296121807772936208227986024860204156723560766458333532349751549154807425293221437376363269632817852922399514456403584384085738930328766352631680513144706200575871597091678294725684786946955372417163469890013595391184054151845099487656124279713694763304001385144809828668392488035814949856995580500253896112975033348781277026940468445690712288153508833564521557732630402213025943583745057182030105442397897612545920567245903824137716278953903115897342878420544763636694138749125516599639029290902855980104510599343834303660105357073709710895985648015791362688033838814430174048523902715382310399040102825051598311642238324527141172316806575292019173883136981904185956052422125614512501751823247066271336272702578342212945246412132698710559695224271692393555498218599113558181423737305467130664969192401380612027785841027882893505136833167890977178454565367873775076014672820898202222807242238166731331386143981078391507015226165602945796646034663371297843109677641309217365347658153454238636197803503924271536634438249188725839934934640704819946059442011525235523642630147138142596685066260554594428445904523510323889744998426203311370570315667794416431061981856717840541557391176488707068938261982387983625401496672125096479438671219869779298950010630649735783839113859469907180321073773949316062750094267920619652706882581523758120690914824551551399156625588647492590567637254740933429913317481922494411649643585207583640491669323078107804779521480325666471724719102488997179338953000339896073864407470411818941823407731741792308973457252564015235883347993362360203150814200428561647034153283549494947741392454910690340732161702787039436886769344178316209683802545244408292027149156522102101777317243156566537087771996753815480192686842394311198836391431537831271631650785915099201114259008648809426832645958047266121117922122911123237257091679641978867156076994750571686702996760421429699875227598723116320163666884828809944438046113449696010410334679415465960119887972380282951876407203918477137798974324507435052226219760958722218324730714890322203725213914138176520666066453935850126176412773897850475683027092924031294482234620250453466291505902884994788830757238765957631823386707296100574399428305574213352435472389762213813131466515739039622122065431394057598386782982559621838018890656536748755759649950452707817578731966648651093958126601824853947806755387427095358246966876688967616712653854356179498742006925535759549872724408822403384076836554515478545464448376486270676990908474468526926160574037758485907774547460553444068960506707850112336538100691185696565708887499478323691358923836020566575496710462891671334930680040623775850159326285614115654368389818954101350203962664153133529396889988694255473381572967780175418079588842778486067353199166907626447931259343603098686399325873629270369986899980808439708056230122723851811432508126152446298624345657093270781851353921977727196652402158204628200882980764793383906875448907712427754255504625183731199398016626733285977591099753925761509488766359636956640866536207567762510036763820419254930769654025244003515409247811842690250913110380663589022790304258746981020753305209320935759517706554191986463226277406380534940639930329366057938350627139438540592175627754657010537722399967055868663036183534290575807894929672210518989726236074212830033388519230400907704010688272911889306882385121351027112979312720599540222503732128873586538298695057076587978155390141199194483853803398957155277691829914393192234142611288479079672658642045733724199968486960885296660966031482689186986942002309250830937413876723074847910133372099297771984675855146596778237038250070249193758445851470437758960456158984513744876487439078332976991424925069098177327309431348632672712189387043074645966870382691707806918972311386101653019264500044009136741882627955787650117893090003080456513029241615061723287470259907411668877327645712447900181125348332373371181380185707499249433194711102416367773393707923198257494015464485121355212667400027504150361566165868021517753523972707007803917729796738346516325506518872051357557841010509097790242284111686039268942071798857887335375718593175620180402356489019025702489068842450787412356410895836888064269395017074445817988942472756935432253018706167078034155735295775263840078068607471570100832481879292708056108330687541593551681018009144158745453340066459723345699339888665021225614950652631548133163779923096124603925052837469074051295265101923499588850627452613412400432047683926429890002799658131891731307530654815339796869958373180419212319655761016269080254866079023174483736283139871486484430356706154480302455924796892112708943226497301577397423254377525969574985022078944321939088468042234478413136515299031407615058335532404662935341920775574396225660564981757648243232236587115473788465944245038578930642185197462070567282994352810033797782345980194682258836050981531158821140989836623326009184419982138590450862326781870190973991744456707594813789828860437992367068603966094045899116870213005109979004189894978904480124010854913125594552526780461479275128819233102178349512389114323820170904130599695979146482846632977854205891202056268024388616926639847863102176040761918328004516513850953611753210100309499392963014673728947154131871872900031075219774068146738637602933568650750562110675810591077998605232179202077482946490588506313574975108657512459265522949627578246883923439475304920724992876271184770565635175009156051957900299171456461381522928756509078943667310338030913472601455910034178639284020422767118114833969369568603052362824405045919618770628665865214401725945618531546254755410400008856430049254301607743307914434194091347698476061521768839756541240752548368402511681824142461626037287591749062994218394524420550154687389970511667349552284273012807435702657818201925082506446317673661797758772027223885197285594009366759224860306417858038355346477371685917908048889578153650520440881137353920971819935117855518508217427171914288847286948983156938448712474581102844847620090035239988711011146037030601959969995116244477230021540679040975923013745703249314201157327535979094149188634035778458835006455000856499727031282292420362782748472073048365722103339265312633535199690845261393612497780465407206951245597155260670043730506037709531805770345040584833330848818939344166061838395606167009512158234360148244280079916437582962543367371982630986407165606869736341336450758695976068814536246824597953560440201932072909349454837514460052772187832877317200290616976345337391952902231334705130435653383380527949991212126283442404835157906868728285784314045720126535215652923836753786169485168539136551007127531307304546631777072863505829256709488933473721244061454058289478452459881088868914546634657782745890579651435812398876229227245591485522563600663262277310604383117123041914322379162382994233614165588686037361289501492399451322349699864899503816112028025478837786056500580875101696019250408501818229776581452592819406647747048610469952913942533418783911592250916902908561147293010962426246337255686026780035479988796766656013814409896849631101476465898066708241398247449820606361293069809891712055494854030994234969002302786837060509617106802680241427903931746542129344924537760708265436441235817884450535183628246511530095659059216758333527507674315895956764915515184605019735397771791195191995820333732162980229626692462796831702224373327983323736966836951553678014296672761074840292592193847453693411682582345160486251050099322086158100556483884418374179868113684446984552104652973494680917926031362938785617290623048861925300301990377251002946578759584926493689328424627683320064551710194212500474099282736385054623363979553842056386535550702781568740265261383212725589276442909502334124597678241423664065365155498807479006485318173278310605587936914278855826029670563332682127921620513071831732814776483394316258842013613713773366744934040954625146553336013884476168556813404195118784917469853753445520633659122549303939025147656815284141136927271108060472614054403855217160183379466971659873757076053384553205192342849296557885167682738426999820639439696096006285880685058246313100207743710582474195004441132990575614707090569535305017546213228531632328341860631139685130303939541928223739569806737160159447888298022086263828141964441924083645462034136020906176825504727926947831474002602816110834194093632378089010857437461012867814078814195518279649277979874726824163034424259520494864779495453933108502044590781116187090099385178616891746063324329262114382514618007103630466881350714212606128193166614983851955346148356130817290756333772977906010276051969352859317264527734228261865048521275388363360152330576511454902403179374139824868582565097102974347641400017049776138828577760056225705270173270708934271850284167183499794187081134182421388636887167356070644809186445574115953168693582098238860314593552035233629916614354069875631206133903145399835409157371754385466676371285638630499749421451165751496993579844866700146519435325253313128171621671725876081088884417203878015171759203689680322217565407371927972447009571316623103270865555303599911226414242631264616153245445023271887395203714553585425250113025055290543351750793901249038743346514452631015539171697423317237523801788348443589362281824673885375956454057173418392577430659490877969064967399101231383068949756290610975939526758100297687137015281582546153455421317865798779126351655248628036546877578238505747022083676364918512969848157453854427082573423561807007085860182359318100591983444227067829507485050524008489798043629746472269931176502822588540366805011680720260408650803866417139026993735077758462653241455321563632547209828278865272419878877090715650651801309384585487627885416707532039431354181684305743783327730757740222441086548493397087223379107659098473382961943967336999604201806507223712012950343023632178534097005029422217180070533034080746194237207412744692958057095524295182329901803580002492371705553158813337950199599873822042129736369286689742343916491549087920786624949536555930751980313854634016745034023416681142158486658590669073640797470631571119472675685743183948274568531556022289457121100105114342736552110921204485526134019487234896877102365510179344590222909365203645992530888296268677974852269308420177450480411999682505134307769022361933889940301743796649884534466658301008711870386885265535142274037450816744260298016067064191494362426890941867936809833822924817764153327102656157642889247992883161641751820911702517976609353713412885866639509944725082257370466635649396013814542256559933839431308454541033601964307725259202526366295707689866446600298998757587293835154535833368354646436832817423998906354505088635586168576362493117351814925739531421317619916325746707338300323335940592753985559199317434738053767734770561216223455023921005199031168433230774511655959760991659484171685534359172703179530754772847142177065910169782085447628986349056322760962337424587243290588515611049987969556792244266031307002407796880328439182271314845954729679740683195050735340309081445581201724975405449018209424310614676035500984154816334400395684197519657935708457484575830934786323951765289235410736889278148201179108564992318089687041640251192639208015541987725049736690885125536109267710389995889090205704457821769555772806428142776857361142317915367902003656448021740118560865809628125896519990468945833668831722952727657122580682597975506236965601351790186363937695106064360400848893479543082384919281225158561826903590374350274949723056860483068702122038501902029039553422981591365407392064274557585445048442397478327899905741726728675764970399263698843333647693891210794430233987230173099379775785243540386033351927555432515275174595839557411031945062828833386948510988749420669811641738934288755070558230927663144266764617256785215656389852814206422534854314471587459887325259338741893559082497160627179977765561231678298624310591461500874141922989531659764926039028705217200688993016417067171742739649829491607754094873885958259585604225101659759623762139923171960895429529642499308534908889045836669113852362991445070779106210226098059163582359949698331586917774867258844066092484981030918431850794741622271626800499693437893899620055828642507897314289293480810200229540125797240765818413219245051865362792430958918886492547502811794848083640488072771621966413459688401299438190459258297755835156292682271574625391219643259936716896373019552764655920330305665646962356642773290147043154314953543066895755832925008007180959663533429449692076713869783508607167182277994811769902435051377548593254063523120137442804660996670042926185022822148550681219041938436514793327468421688693303635327889186803838006812973720059734293787213870134637899256030126584889673650353834866240023106789374456559230718624262042261911515541716765449163527421511137387217790452726231688554950427192987546683765885427655562759512737363801310192308604091862854378082744426157510988346942739860342397298038767144858836908616992365621247512136765815368667421638569565533380594797768042757665178139955025124692446525956562873199531816463704877888531787575497452653999397485524716905744505992706664721055311324428737584727757486476447701999015629554114924627441347003378516645925983967696149482629574112979493890135794208493852413229151558005447769423071897280516313609861444395931496475885524527760082956908669136093677764451299562350052695960159467705889870956895636769713265099908304902570854321546961650946306992871206224598531089864115094068752717322639334630346697799460031960439369201769474990923986688632773091608929075307501987557869766253063511892643730361583908290954298096831119009585787850085084894582216265842466570700699665172963659635075395466454913506808165719237686110226462878152481128270804717457802417714962619477175731519531810232118042381400270732600829541432977319415862717830651002143126164503172641294272869523102115121010101368856414204395680276276049318510930354409027031586653080612070187749071184739865874339486157675501515921030334365925701273989791562488012054685746290184722970458524615883631073187103787460176333308309394496455721897104572259591982055647312375383880577483648804981990529074471150084667026155124193326969686852373954643982241964334705710040372730377521656869094565491164678198969379543076577446316027742529227018588977845934033763951461794911345035546292200000515915735074799774075409509638534780368807927259020382164532327963860953461227422958064728919020967499129295108132056294965170884980700065766182145253864422698283143057363520925118723026322335679952078282070505876737148842195451657792751050305488816094977379044869622835448864708043153173615731024738708722984050831039585645135044981372168814770668549356938055071696488358856659111721832205607520054009576598387313164699797712232339251687793462870962879007635110943244189943744885213724821731779855069744222846099900508317756722608278082460089661118840143810814449396382194330039348413544670815221541821334763457192806659157024891131322476029068908942316631133564904506118355993316295739345295768861337433865300721382443220078614160783860036219525107598085795811810575385388986853231611575315827029405689266058849705435242612709959231053697313483176694614836166230394254868402296538209038071458881835858480228430596273224613763123731473073944934346066265708179799860051191719768841039414103832285625562900224780874517945167386845697524875405863230390396965025745725493579624976211415023976129134550107731440064151634837692864447670156099830128044497394573424220270144583392442395749857874488592363126545276675687019763569017740412227430446855375743290139281004612362708392584742857671253528731328840842666221877049266520358655718091721663170608391431960867763862826054590138720604298357762303211103904219960040106704484729510421907960249061361459571245678666475411472118210716227889686475814650657131833412476143742208348089841326613795737562398743193603994346152539779631129422156859321021395048027049874461831665147624849538037903636464104444670570637053649684504305525752489808828655365379444319039750242960761535247022664505129392713948129926845778604221775515697999765056814742756688796620459984944742797023622313202604888130354450750334886552173904341337298982022372739554341023605009164658702969554713991293356542032280082447414699885891684044958653558502560789454115553419534352126520293644014890797763862561359731835532525680248333287678114052923035018412291029840107353399105389206341682147046820280689831469176981945688814273922035958373902795446472097912977937704273344834609748388376380826505993319569810993875629843164488558854365614989526199110906004644664558623518931931785549848315865676395892968841567768914483549025051761893439454472760454507852213460394213217272356405374749456677686702326746269987688675834918694832939244930370878001389870157399559380454860317839794544930756680453476083259795038641770510141365661332223701860891797525194774882606233614487821780600371266211669805151831175424862738599999080773378350552094704169739854942400934477525663151287372220140420259250831474648826449095075388448259554405424987400640103676331878165063359897469840792097022513435422353659433820932131687946077355779936871609091942970699838622767765502795722048283982642325870036894278164125083239496328965586009945791603534054181196679498455046070070905071638129703117961416966372247699777722969385897511654123536233831039421390656052315657103028206763128677688575452510548289882384462226435268068600953276554605662571242919185505460936468461754681922014252324089908693348759487536335715914673436132479078993672892687731973642473273230470950157071497129566269907487903913097953580335150963588203056758107251135226208384808721960808359122394875668416326243285678470272744516589948969703856546948593136951472669358194780715357752371733243034329727560526925477797982485291239508083515927546945386761658067888265878570280591644690941917600281119540979665660674428919350965962227708502263687236369076197819917029747096004885857598104358776957010545883994321012040492836244238599646797601529484665443727478809759464014670352447716576270870204553895699209265788288860596572362657283601497196308769426713293937748991563505349900753742745686679335379352070113400597014727240501626781446261160241931573678383343482429352452629806411698128677748474999586701188326426476899129507853100601228171045573877832490421350682392183064223942262255456966369687376907096669999995234373240604024117017867541789447860676342525533756645471413209981497902311222924512966299895474716713954662755292093094959152718048107678996096882991177842759907059532141133483989554310185919827369094411008392809535800639801439359471110282581089553162638036383215160070246656964501073880828301085090795292638501496557874647967810076452719975515766378254287570759264745553839430042245133545838653140177232762245707996868690147492359458934238886706715226938074144785969759218505821773685023524778162217807004361720473020180996427275301798903910608947262413663791360814499702574134109722014887532230915278132269257625625211465260129685269908296910877961551748030466844791090243385356241165973482683495917460161169388466414170568915119673647438330388602305370957875049875803375787411766463126999985920994630747692309873899802843949346745537961047436289082381188809720082465451695878255211619040134502418717881278931088863045137235095801946414723135811858539152348839747151168135960301787478246410094187654349491389240897437542785352448653483408705466808913238875738305885684707491226338570820266046321921307639629713950150955258799282673757626475583928024951017995625460242365050893729975944662348566727789323944590857565007941643849703251000635418906860639435843745051076491320732678322129887961736872900976097392143242986141067840919210563994616067276115400071665814548839744106124929757378692972906910559336163343383488597113961299413698059550896084563683124789919620543529557102818402071823948062927752848152070633530116420249594202672021436144369553010299717526054917324066791203478313079189446601209126652598261858543499090890593431828310005965247533803775945709047004716817438758923757619091935188493471615065216957261842821379008052297667565999532984729951621605840983934470274753468373606353572594444088368888671745254197565351059766250229954049353806772376747921819367503640168748540697131119510159461929586281725436358287567757355879939299760990391598827886909458610374867358910884480153318444018713579447995734845382054542111684877955409238756879626729932237603636430193300450378191081649731945787963301028419678351622933272764430169358876784334868933153291981627223600372143486314702834964937965681101055264789668169291001768255212650056516356710684204708987604311614529176649103849492405440753806189583926943588917867438545147034996943383847504623244014958213272785283991942011985385672025460880403667793748791783955880385089185461676133529853625070136922528670072216006235061466714095912993508582001223255332585912762472179943013053614081659977011346085770346941325559011993677886052704865725895551962763272753178231826360805910540776532389065376435993587309342489435227321801433296062054917061444761599243377742183722410416146759191949659996558870999157238730102656861440762788029204380240569843433003025291046183824146380423148157238140686296321437526931584208489833752415949613649264568582412598975262708572671381292762855097436294501163167044770345350682953403158086253880844107593459461351504384236021480426061185338561006194771768916869910044844262058443109558949261442550384574805843429059856586385922716953927928224211734456703161005464878118978626061306848572147950677563811250772699929602005345617613289846150620073787497134996591872394450993539950209865871121076548104608022341330447509006350477301781179948466049600327759812170530271361231051260816906239268821814642174437333287697558197382646355079115482779515525302319965564033633956137526730124438396764409233057444676635625215676748274834182216121819893686819525731832280052952881110954642503277709574448526766522246535086273404415111339021286660294078592997762652520106332574406092538807131390003260256725933143968754537089920622066337717189499494679053246974068163479706316943802171291953291849822424551462302596711216342992098285168541370237794946802105037432652830936581948376476226673260935729447508386592295164344507977315981485125577246371606773159258868449672323329325080004357413724258456843916067188049068233910725621144947919525758298827328939788172248408965348221148309014856223869396915095241426378715092430113837082296356287435698129377657160911466159803304715393949630388716307432052163099177075750261464172161620095794320181038157675619436248308658568063494514545668374093545806087310384126433506223773681200965788131608147553344205334498805047683342903232280622887525327905028729323399364058458019765407722219461955387478074046832699517535626499910823465752800287746575146093798950380701686495961762699640240620593714139670638502875593282615323005518242402862013690012491536544885142228581643622789447432783316783178209355896754937680074795585704826460429252191827940895096586206063192470746032784544846428295636154589088013215508365709567978268978424221893175770453992076920152455288042416143156042700381885558120859060332434705701924939186867587132978558425071669128624668155630202762688313261567693318335572253626478392590500514075313337535027028342071240140787453042434067611772112094720742691321881758792756147613833275538462717601555573258144045638404019903556768878885853832895137243895248069395647894519711345190830268783193673682559373811597226646555462774994491252971200852952839877013391669244398042614703933743549133763276896824974030688841970813941411256844833404234909986655067077836047629832949101002420190337471633725465535540269321383698122821430160226347711178523207274627342785521219583611569224187777035793306675735749866419375568247984386805188322880650858684571284446863782059594239135078850736450261715088726116684681851672350236043066482893914774110700330488627022984058790944180461914206743972163943990430484952898494228670026956154379157560099862868791179281843357951821358446294671365044324478902717303609001119462951423240523990349970289213441423322793489713900821952379582691005559391086683430887943535975365025623053389234018604120625100269324925881833476294072661848152714349424175279222426432301414852352770668158054301074130047778344504445034073339355939549233452041520125627147317972159233956077505496409314593953826602999575707875846905074456291151007315618435000094703821054517494410309519385431470184459842929078207336934481333753284767695779517044979253440343103441342915793571322656826683047709966897703912713464488589933986304549686023189308529435469957307672807203897762661352661723832108616775587040241620186758871187233876248534992620396549776450817910730538344691449799717599552240329172888814300531306861000668231068729221289446142806122678874116536232266292617524333168778560429462482785814953382488432853567867345039810661528320799572313194673872264176236322600465919371564108219689238056035864153489308255160171622548797615751268255803831172579302582322410595150878194851756008237781920402400670141674931258819622937780764435589743350061307863499679769573653379461556373352806765882957718008937336240893585698510763704301482081878140562274753320381244631304825358387278471332686117606610885649811472747043216108173600284706288310624535104873390694674438695925685614670468720857626890308128567423699170538611644374561937486943228155629547090326732186869539802215592568554742463186063676959354167288580655115253432610018871452246466960087309514889235875394024721033178925458077462873381427084933229744875233011060698807649428180230807734583901473800748914578834735736357656983795177358915026947543450086003673007238456648021361543146380259763299179787011612440820458204089129703227342051358451748409273753265463785920348184652257033203234348367534180216457400167744216440722823382443905825881536099526739054831355665189379893570153034039795941616076363741555147470477870583060571149002422143792940648328498644051967034543673409094965376781084812482654617891737856085982967949530979661336886745403265390244467856580486040087602229243572278917702913485403432360082598643168187410705471794096396749460449219090768483231468919369171254371489567198546608607564857881668094570834478297988929549966656095274406231575734338689753274214218350661551764652289233333303034189386931947658731845517438657859371968443315175889550924395823133459162957371877589713436116575584005544287610017159242922338651595250487940768050956013222342197491859755047757146290826988986154840059150366861628068081116301819589939374172966989757207396954996767433892230267259667930358910127850696936125754627065183189899917739285251879838091230610652534871349375792545848218368828849762977260994010742296714907989495759596913858608674061714236990672173858388493198661324409531349013710641479198119359384206267989266508407645371807200336122598476364081715601439398253458780154342941523971776842967342354381738080958294441432955600536214127391885615130881851000932532231625916630730165417643655861188905594533555928867111432547727006966912805737592018721286539216555521388954289684098701899144440602402987084174190629758439069449945388441024748599477182112480575458967250192062516359449502464097570799551073655186956030677128884455869500645501374410886421562187111611335182788062270478856593874583907928465305387732571375664318038517360915116956171334628451936695927985505761394392362969360313645756952532684913287023068251277129297274406994926646233957045082091414333292747688727348930595633696741974383218598929475998471467649532233162151094762919424279677410407604604232222656872391847402316663413053625104710003205355340761036503599867764722222994881240140811410758958592628900267948672745998161087397267739049956190211861588265530441647158283120699475104612050876525622032388905498896198129824042218601403869323015840534028104020804996304113687247867081228805757311303590565542062736017995447410054386032103704400716910883604770714040524473088731260999952809094730105488049875118530944642484086476540988157268659768800063308923340324299944724525507564730745811212083467915974776458639906798321950059357260404693441618749233073636209284587509989996314775108609476836452202166782125360497590177108138439299005412159961674570933619968483767883409680776324502705267552178444839825426835908520038078131694419372075804995732636722270917251398510316009792488724213845671910412270654063462113760284431637180637492704528286516587917720502397751218391585803337043414665092886624348460947283042219143830740144319408131406007503651808806489513095823491965349389089945979370652649128744603669222368175120480269477381140538959560446564591054404762275326462991455812896446527018236055619939493928788859584142697655845746727984883843063643350495058356644688986916546068006255222042870506530521974640939972553791108896840640101143408800098405857628673987781228103930497955582331841564180261354055287625345447650809223872373862268821332713367735195290882940367656685040798756515952980277577567930614669753164458027479443716749950589341225969816646616850930835792462397295220274301780245749498269577072409898335175352222069717304762440894014310880738540171811868701601631927974206770030498714674469822002090790244935717463563277313817355396085436179432230795141874096556713654088906971952825744418519084373080708939221349134873538045518823886428923046945274497159303454576927528854794728356079067416091728854247237757162760766766098183472126416272559513575204776062370318629979267347494352659766416149262115976303552808090698061152234129759964958989361202602759802737156432341938168279286465451468029912114886302609654353335501857481123112542102941084192243948946192957448971000082913185734604929390828184157059818401359806373833573548889058979807027550992274982696823646569521289177324624955590234475513678246168980472413949981774423326729163981867368048819866626100469173814598571422499758382360222755673384773599204647188752782607755984644416772385881680910633984507534418377245494832272056557372975185815111684664196618766813389121964755499727008303637837407860301319709249881861442375866969033663875649309847463774492281998907733818360794459777056445317470762377279070735529609773799634541582898373521022418710115460286418194544394169272602111288558347979366128196498452459670671629553608928220343459612720263141744273570247622398741275890670694625758946758932760013155524299328664431450516924711906733804818407837459606138594157528642672093927275151346504050115014017261185172857671137198930749244455850200684633999687133625756366573632975818805697545745460368929359234192869761561082810435548496272602161239094749944085255429578066994384171015999197963072510483301612048608854271023058445124812011120011739394669622397354837200545408034354649574171023436661513700877536443060019550520120171779854811218763543872647911126046526098365433278266172963090013320847908546219954473824728315591515700266318651832109876942427112495798188332223615391724597432224592497467836552252285275771313070437999709159167138870594784689033816352592547685093574957415597856079848941836997958299071082146459831061112310924346861182931635650099411881516047205785771327340616109708776553873506581406416805997625287456188524346078039687045401036462558911436980062538613886477461753703965902463816519934852277246877385500093538315404894856528430529142114849422333479870040653014685622431825711517926471844889764858547114981434185898842986483159018529557676467003044715249263743050798380613709221881629146550125778792609393314164542607597107071277750241111491927813683235522350418685543536905506728618174354288297239507437107441352523378584273488521074295689960252529771727459635720917705000598607021690685713668837824945802989733014773187670324357915169705472676202633962711821108460598682398463052925457060253847607215655372122755594233395529590258074102350717088137127652388134902230964425153968428050778596327897637507872414961082267793085060366146156255369623642791991622802810182612592124566362020664088872168880672723994223651489237967527506294330681191853950090846364313905361044183919505303318920490514111472276567710273042578972938732958783223278818883591370459845367320561907426552771206048061259327510512074683425647647574020923897316514992784703954043221069499312809022752459944865909329230836094601815018283228548387192609674352051219443607702012919517262259033309083561531098001873865113986327065782250031663440019480674764898764462530643950336368275244890338198892114799666529827886698499019872404503932562101493488805765656335741736122070234943623535658536625102886067745755798910214389766657259946118229372752125756153797711321743576396513701660073204346106971598384549666822780609133133827492221187505741230796127859007886332723860904633066008453265340741514033993140510656052250449723739878562693155294474819543494857413122304086398727822793938921903782654727742634106918730869490972479017570890246088398902360963803190082391938668047785009070285409043328342637891440545196793513564072501517751726272574995764298372214191147455214925762500235709629755999460034078229210374619573852626081010176156178862882578240311500284585390596706580205616847539185709806522635559985577504720253943836964685023939297642858717996809399101265185973157156094082310307084088450020120275920558365389455179140469529181362915560460998922602691706686258563852328378104984183917579543065615216075381562277775981012546734396005599809800321295331298625483190620823495010832382317652353194250287772746879312960265807482368638270771871060636334029121214988569039263950393821327768373071185164196625611078070630633660807641422178666045738123618391125498989248193739905484651123575245414449880477428625493218261561351078174503882425580908750360596740170487734078085620489311859557239526484123553956390126586045079068228064731546066526428185334760574199188814336964388875210248644296905172913225366952612524826541016042609624694262231091440819906932677577501334112209986137967882472095913794939808681109726339315348996317440799074169804160710879207411652768575433620434239741513545702952109946079957150650455375471131078641038234603587109706639452096962413325057838691825474237656409972623867362543798248322070910866532077613191512246029149608819713781372591434396695464482371911736729395607609241724246952217581038422327562780482585430342128605427217481935078609948284923277568336922767849663519494367646812376647843111470248352978714410969988919469476022430177621794326603738570790985930317431761425015691734103948408174786752805880386898498374717065024143926107246949137958094669055963134569391017961303296313923769094269793607961843644039852489655242927758566618393459116124913606790302270569597517947444653020046481634141457805901592287257286968107158519135168553319461400969656878367728154967516740088905409715351037463118555598379832014391647596768999374152231297577972472974962241077955644218907662018041814325515847060102232351060179381578649402960916412934950809601888693535412654557870521562375071032277126106364616611796137271519436507057094190739894696257832154710135718945308464894292290693587376914001160481103532068089079895743809487699675826054633327061901558618059491084342376310140557929788753942757714703466532669106680260780971564581892536141194360249151274519706319846635863079954643264510131959126805071345053852413500560731394613392743996678097940384490600832399711404467973972089527217244100933879028645490186395072789859013830143577788714142546237041883215587868987314737510891083742177711638655823565479523448067111111539135492539106256330724386014761398456120951238320101025907397079925879089799987757880812262562219541072666456795536457117794115198348567881103650113028594941719871785939894434652072894136733220940375195949601118228577841866088057860563567404825481568199912423688915471067998476757664416949577967906113595148996511790087775656861508693291607211328156039766677549210729123513639352758820390068237187542643204279210922483329847749263361676679772310115901189615062058172932196445020475955935630674274730394329983488634359920575249160783918122037644746185853350481563839559253468054712612283393901424746274498020589158837239189214583243764228662336223452561969683161032002145084483253076380148144837992862400916186188273459152621191642769407502212238429871527890589212027401642427906606349888832746523341649441043222752656328080902717887370848533227801628671821555770669793968395111439545416610530706975365313223910972424869010672331688055680203275961280102155785239252653416312803600190979871304703730757487057294728840157183001710736219747864925980257984373456915143286204255085436876765094257478526421877277408762416107116329956779802614179422768699170478954032890264069207002731393624413653704471224341525332092207558971920492696675009632736728309182674708914035269352396345222684686992089200355368370309444626337048907200846260128997046605838510784330218369086669079119009154442763242083416684417552781210673349372524629035258338795005285830348392193244168394861779826718170929293398805541568501011959108162038229275001908603462352970945807795040935590569583009705215556372753884146732689044582925988547367530726824004542663306592780228086500237180715315426143384103736635394660683163542476163384687799665008259440120393753612349058133137254510235177754175673954141869030692401694443503061901778486019318139687915502465651693962320059984768171838918401067943368695751896889247766979493258852414968946431169887357523778567064756728341114870777326864827440610315386828234355164181198372114079347046758399532778138846028281627226339762498556489435017477560681235020888691942593580606885659277303735124558754198613273424249995488198884632144310532009296283763098368228288548124057408621630776040871994944329436257615816024795983558509708534527961382888565263706843731683502709702564766059010941165750217492551967049316571922672419402142787213510939632206212514076726442667029836710188338962037731412488986541918013647261098285347913192722764282647172435015716174994653722230496819677543361651518823854145300575459164486537803865292111117854302781095564336798817688273662576761622339756669785866020140422268785566328529181064479941566671869250703946979499528955241925824832948008246899407220072535665040289594215750879751143046770134062307713710096442101638318183955729798263969265667592130203602337111813087823492414694630374441814678522159141144991493757320220275476425974167780289316801700612643243921296654680012801385093022986528516592418545173847487321156231664021614544019109511883888244106306152742714694961598405738936272060845304574425623434196879110385644869687579990633930778908115070708444086055558699313842630371541844119190958523344691296810294979267845403275376842978744225990858733737966093867435038403686249938725054480020867635948641231061976258898054577676547299269679633574432494470598210081696908996251083589513561037306462813264015253571558272416945771896049348762390709144935392453590131309496456035511968263592599830116585990713518111442541528208813988708370130256372133522995431782640192095696054656962849735320973020844509910822323399328337747198713390953968508756794255264785011588197154118352040102310164890695200520881714129671870497468816325506348130311187627038237307476196137578787317226920653826104615202842735243554157297514481404033456074173594806965345776142896855461836840758346913614581370515511457704263346767320047054487257183543140722345742440329824719675001900269754520212792765194153700588574726423409809497094779041179891739905678444809666541888316530745499890975106857524418529691236158044217252196144584940674168333353721607919245783704855639373444788986454542306739516796318458386136070647760691248298138399783128905101407826569891539869974495844779307121060503940926762408910639152710653681280850458228307183270915644369329385851628764688371345218079776950518417677758941355707312662515017581404668715671129234958772022092451131195509925505300343717413897340739340275480902272309816401508237355572419415612938718234901799403295443681472607465973740890999855717232245826644673152751426869831311061679880697509838486556348117116124585589908380648012238261444078520637872691417881334176165444712283124740892735667072162794464793706592848339750209839421379083215632048287698932758674556535784569708464282847294381287954057459590919515533428682091773015630810918377531393541271025645315354264430121924590208869185095157150822619010951149591010466081183200024517901413160352574807520077416516126305902938351776371400118386281574393209537012210159757002089821346557847698124554126769533240551299753218664792787734563253702698578536498216246617646417990759015009711363561466509185152817845924368088491326349707009144007732042608302027459714266389181424449844611311266141037412699508681241794524623187796903287926322300576274131635104324392553661608038905547070983086034739977561901712496054429160720123987472297261294372704062125501015794281060120200962980909934557250809428596294141562258100845930321095877201875445243230294385935272974965863536693919723707943119763024798985625748350726393018394744259740789222584581069560644603491083262938059258574955472085580873920634666657482709046635930553744295418237739638599404734787683892719290880977463227559177544923872752040676754213017529211966179841983171586179764868656426270740638838221302177851974533710963203043209289400867383275318085526877589176955524766405305669399390362785337837293080345120745201859567502706583715492148860252322482353988893308199974408102321634700277371749577882162834601008625155847502980991456331337339847079825821631091388231891509883743414685125376179905406508628053836085077298784495440471869421297377917798315241825179709216171712635045248340357041126767614693441632458342823004022520703190322766878432161668465616652987142147768327949428292846189856569486887058096484500426802105578944174485048317973400572591769573155444414209471623259472756119860652027361408258367060063688029591436888194309045686773409960853589733541511441544437154680524920307870466172760567815271527588069939061922412695699822529343395602036211151341098541840360740421105192396138162365447825434423419072915159758876054248889714868844828536111326404170525523550682800505123346615213546286351402122319635890460939112304666240571673798409589284775557891482302478045763964280979091934450351314638370891783395423595390451583681540733571270323608887968025900572547314421201215219317911310060200973493536650480502066997463533800714563622229861923684281958682737175477443152558201942989200207137543333017251808703786564510995957941988754982132476069163479943131351807287853250395613874964996372685206295003697281207573860242929857729736468033596008204298403411523700459756144025518026294980853537510353136268610625191588984772471244256737967955697069379994338657124318624468380268780704697379720908601235455284920925070709156898927764624933239422339179646900134996105642488246771606790378503589963379203486121398938832538870884021468168039786245503729482734946591607658086179219872993423353467748065143293011296360338185472705689483373313998295010578071461021153452419821562890525274679415544563955246895923814105405438836570094725639038248780225340371286187232267557431681226875819355254659141612964447596703141254827948185951386691554647109268758902912745844266883029433604294728156506016530015138658410103618811251362742370966247008888787537238729818352875263497247554281923256039171396493440178285075469293457149009054944202090222732518926026123468907932640132480811625885184198653492534350765224164510540451597007502557083835111239523187980015237197247057464513170927319183219480598392878825884436935898364601843537395306072089226847485275224596539752156245594073468252020493528504339434639046545279341095955633404191035517389592071039053949437866363379071823955563787761912811773218145180616539766810442673065859009681370767053168471902016860210756332894960527374514605861959909999226842803739659065153660531997688058098597932832158508168366075537033460684131365881485937187219211191420836423778940614816126801824258302200295679313403860857206796352455997588420943596772395010761366279845931556529079359343411400032719051488733006962939287534054461823191099546925665493571967368643294334544180452710983501329057700392888897404692815496293043488335180662140130565377840774139748941810000776474720798647315759884656175050466996401579898994399468794031840244568860381774398492970986439390902377786988569460775878572037515395861916867196782405071092682246367611077444202733753218518616084849666808106465249126916289892723619367389414151783764252275805112063950737011273684726595814048403632744056119999598180168191101611796921406685998970503347439635384773277760286447309719453170832318341854510189000467620885806021590589261723455540865759724423739809809318959179470697607954871420606464396433949597657467415372135284911282072606498408117454711689919370421176027742730759513384304689383439507691800912586024901349074668154782673166409951219430999965585666897099538804212861674969394108183740865702488402061573637176668828576139600477889272937322689669158515584693683228032757783956186882476599538789959182654333734938647258711455953655548673287544283285548242031742890933029316307475593135115849207826393838967358583085761015377119612240727761925317588505932485187638119787591218754420637397025231641671553748843652319589747076645271609381248315594663791212570479090981041889417061380651195931799880079048005648626803888872219193600271237749291338101928222087233164274183507074434155546857271490513702794461873223130154838640038904647067848408437209379361726781060953302947819963646526340677384144699275377580891905179781299047318361908530028708800075146667431596621886741881861089389313136242734292243423177842154465068848750428408783184657521838143443187409838595106611159616210706614096056663101977704405676631918418746543615169367289602755647875843974332561534122362254699909527891522830223541945772489435626480945953177223160488693328474933925258398686485049905062597400197279402996281257267753802806628231542225948236370646873535875989646049947580009968603205121304341640386929334049350709282982286357119740781720461678787744980304047961891150077694597290862624371270533339751553102135966877705754660447607477729154059462897400242395728928405363611916272845979014953168651448077065432046782589648969416109157754058401518751917483341138831758263075439254781250395596886499223242118664998136906545934389198660880929572037241946080166172049973519659237422144772995354270099107617293612520329420633338960333569398041449278600955565307006986901201630437962450909482025685768681947678100245851426268149911822153444224457241242318358332767945371384826127310739304460674571334451745771247821343555021423447271934665430541093578894859552165205742721334092003998589140293891611555914037243376227719806410117347054745148473032856198188513450453312823909580865536991937991496295000558715139307636277331289453167097657918889801461215943537548021494604631088630357898376593322770097815900929940470825778728103079409600029823957832053653461246110758016518318650440193812728643372654206282804729651236744942583194834459506214185815748613234406911710481469066713713112199341292366494477256548822919177261437022209591883352251272161759108616441908661072941105482901536702587755888410687333939767188967063142153756564400010556991536099996915893821519452279314604870506772424407359423132999338372196582673322457993339492900187721958459234464707904503710398980955110935577076796583433820360170931340747232747583391389916824818766728969830359514171049461165693063432627741549855758186108709459820495080314831095087230077526633844886119138703530699767283420564697611709106217934834461455535483419837358499602017516924816927678795483924139435636587608322704034225036528081915801445094638055772412035809368693583027804677180503255846831032234488217965447582559582479311120240779538332949589725427148894674752670875969145298741935789165725713672114383249009759622921062858788464247529987600788701314548026112703597501999527799199734276356308234587248200324508407175946222502485729283535712007129609306335989760434038063009189972225432090202818455670083061393067968665329047742485583913672012436597652038663476285554036932209595970325376335106518833686741230057682075647534252497633743592361573704653963521702565087745784481962623628013717929534157769552416690426000393014247526330561610826102439224477099474383112325160956597623073135741240026229027377196535415074668759944385752851083185255632882169023698532004748641015687526781766967976115608594829197147431656920472752192895001916669971099810711642519369859470793413382010373387741672626348977275418366164150246017686825113978641328901023760542518460092264122010565044706456275904991586826461718511566250894913306306089071928903262880446966125329354869934813867962958643957254639274239574764401487203321417715980132549778233892961229473863435289494798669897132336029368779364997742679773608815770173735644305514295258609642896653808276373149444883953473061282184834229488027651492314663414876090420136846385570718191919939773736114265116713198864515042477018794258977232263968800782238197179819187956411115316675558994008505293455684802746995493722871484409679764507614159127203518328039368919022463148219371726707259930655090366346824947968110015489158463758053674517691584671133045633042442222081124111650159594821115570617055713002041264177883466069676214541906918641219763091302726461884277788805093203458306759211258621070232279842218738561866191573231990226658157470216811481403864835476609508928389217735186064269206560781095340702063904023301152192494108976964750177911977968919325634260003840835819456003181403387518269833706920610794492795695486201066246359778830751908994911721892982520116044364950753411991190981900114272273467810261782159318275886945054162344933251927593659155548936924070034480939056012227117894388967918960449614686280220625671457913486948052674835328966370317359615502725973035573030630058811225800022833636508961517644784859479636959687150917933552090202851208526700464719128459409851002946001075186554360040482785275441724123240711163297905755350954481189885894437226862276012497077842827146821502936207583723093947803054025955685119348506599020855968586025909863995726194668410379551704512214978755960704431290612099445892347533736126749692363333437694322004120436374839164317527748714534611949550687723617237401535907703309147454009764221929389515186281591164100069963093235116235942328716579432127711609782936943282719513328094919028146094944523522561582223225943526460009419343078833911278243864531887021742982892182038223714978092966659094031580842476166279764389002767037169959762541789269486372563940447952304706446580280872091296499605254375791486321440873580839126171888577298553406540659259010239431774714047415418012086234679922034558301231257208150651934628498952409518188391376979692550440851381361575362242275987790430594472170491393687332804798971517739498680905920995983843958148207993982214225077528834710445073135767345611928955086500624259988729759664686622773656309221539309435320275677732329612616320026342300122088930963323798042068163308950472188077414604671767619072975884943893972859648657064173595002218982000810445695421545516274821334392615023951318119355274412092875202299093166464472951723547015870599630823984959287085130598242966973658158342970706985878189042781510470736499642615443531357721589323836549544471854002950695461222299075111224099916737268065427173961947164303687421306702914781116458221225032250687800473629685356895044317262077213684350004240288626012731038549901954387517584382989920436067600483664828585445945842220433800840146371498551378158430596470585403430383399426580681671167427745377619947665301070412811317754491684542151040916935977177295181805010444035870591323887840586336405693712033642775084964557314406241276596222094130579068027288991684295964695838831869570916148536511694886213892527251913645975159300727947962726911871625202491482752405519052603688650297088963468856975284453508982976897233934221122413057814265037966877734648985028179333033859968051722933268822696366864590762489612400090477678480535495323909948092660927192783021490385443011692926821718032782429798460617593247734469731810482351510036173504179308423459412255738665144940217050701727598320068881935068129614534472971774338135320998876216294954438984095966802365835473061573095529288393120388596506998526812026471244611718177619200981937223869905798869764693335618376261764827969753468555670327564303990357745550284275693997451970372902913055552553715645161569352414805398198832688405834444395898262594591412440247899046561612569322086657352167696771704352817356969210392206511840740819094951318149684942247988226833493518243045385974397671544202472783035077609257925074867002595079235906660303408553608746440819005233728543261157787763824392388087283226462771547494912770985216451092672131682001199965086863014001345652486785875845158191578762760135059376699544052370349262376049429607295513485910028573770440565593702816107960843753967913876823236735937996750585518799283598780449782364802020358675095806932788363693404718770172776525050458566528769651682255003128847853946099471943154137054781552476037557760495381729486750544595935102060735942372154699896771493791267486392288339040565483072758454947899439242945167769895592957882097169333530324376275113233562451843395740083336152086769787989018365924964504290262523546571089489939537748126034337087952950481229643772472210251966507326978595927645832154461354269747057248491552667092824120049903254374122019010658465443654824213016073005607945657073321690474703323530296530588573261149151169308115345228133003637908166137407956562748316455137216040665015750513758275410749476747348914077165713752258490168927440219238542265176357417850279812344758904895200859991540740413207424809990532244479153381403639338805729146908702441447106055171292606198174945750680065456380229113977826049245374722548836213899632788938055920810776206357012746834167759280969371105882760247947344176538340465121538811981146540550799340753820191641439436096568490964567874800525932252167322155683759008297162480186839404036896094688285441290351844649481904687033704200021942091222092758042972428275165970887950999939460504316228156091337417211780715858939678450715198546821276818167759155410262522659447251617802476274226536587508458732872143375872933937759877562169613470566994550821874545437646968261776352228740019553291203060353686929282695753243178994841393695136813772096221174152485175173838751628822160429097162090074643042662145864062354389574208583538090571696766805379474622978513085163742232592110686801167303697683294379351354820939588773419020545251769725023095337089563491723163146619011348003167158804752221289919648192576594052824716739729741713345037776580355728689521358148654020696455350884036279615643661549433516114308121495755417288170432722351923171593796288249185631271338402192492401157281359346387600487297236805651259393520324736555631460344009171728552619354171408717121734249902889500001629704200700564964260654554162285562931844482711139527385552850530583926825212448545570391721454050588899187655422678015489400827463516550167822356146450513651274265197509885285766805972718773235372285754373935680268243838632241548243938978831209702899161135259044758688780165812763652507802875096451847235040200271282971240284688447699955455109009101972689397367705724808661782829956032764549537042074723625755036454395748866707278585326226320769619520110174763113500989440374595367291479680751786479357939693032826947282452393081719542668596142605394025518920028395134540898061938264263390133445357828246006032130803796502662121125379537447400462127392026537014235565110386730503421044557263405118069229606607419988928955525201128483490366525103138656085116916668673919602526170701032956403972568927925471856828420547805640195833005343950823363013329043592670941927451572088765960074364372555279452061963202613038053237101477385556418117723420687151278737133476667772302418740206005732444670943569662426752002366536983731313095481698772290129001679910604980600660672608873278171365476912483073911379463579194476966128539458530849488046046268465921345604138111187169785782293420585447998765574491730481156294442015005071198104381984456211647852809955904671243778313907448077626936396440749647541518645842951927343664670113585264031455583887693753295315977733278342122161423651756423122429482611257214267646036575237687814077739038068731774157099551929475780781335636125846747753560513977298562051523810976987089189831466384136084737275018402552372800051480958546302383081435062266529851337535154680835707985136666954569033414671007669256131178268391424027479240016742008244994766913042602956014384591121484690324270878185775752001640041183294385165270469038647255799813432546288439759475918930764848740596567896191686960877766580655834992478208736109655377358695619893100911104916775320492672555732848226092335759473536755246915043911131967267838972652749778024672861961514228515004278762874811500859545213356147304862730342176308868735834327710587277414682208006872310967447264817136738620267840572643514455026991189949878467464744455420524462218738974094767624279152849075713314902438654133039969649962913261108182670613428885478106414567076090352511741328049436120807659229332279546679830056271586985812232174538832478165240377361258876361869591133582174412070496914517374684308459195654527997227468257611392602892401651296400584814231046800341822631415814185057099222819185612434494254570529439689142604204404558505885304714631709928764830086938947696369370257604144678815405171286849419732157816909672229596035954143393717926021229315133833335633356957337898264354892201611271501035095191442253216275752376236664557948835124849855806337778646264529562115449634686014878043615400827243931283994350831536742920986265170403901421248000869769633020125273205844679559466565186464620200099059251416055436290659113185239080755461452016395744811908629159780841897191404668417628878184569475565643489862885146297350041168165998994082111453839253993959354771722410158006929274697595113201351188575287365431491105269194953311157277275640820719114840288095317228800753017401695178487474975948223832698134429181866703279487916989992828225847427476942461615571912126003059019017147423719877085866838418025120806948986382776324272903716939323671012784134108326483930018702715472516469717731525840574929326885288491459648781748985492151081130853963843985281453157144466883556616651289275806108248036102374047690044978076097390980109689656684967026047304397915434130612885271744252382974784007244023713357935528078110527600778019709757593794546967284106899783937665912130262693380098236663335518169818813546892180505268946010853816163536372770373477761744506340695565545627425686322219085695427444116262122916947013483791776892383515841952301376305734787985690886997203009446593314962430487648932470507881560944818461303264834680531626201386533883831826882131969534812397147028772071874208081520655379896973004461147178942376075362527847293098246304314683470210009081931135251282521029069937892762325827345998985585866156599579291031467026546692943826509011659834710159954525926459963986650804076948366000174606650256549679567140079137807648591864356616763807061984359509999731251275720761439387620835473076202622138629620676945567705844896329329655645187105464950791481455166932964061751198389682810819025816035054352972698162657172076317767165838647013881048459833608055428051848308071493975907664938609258143017047039711468174815394819507183108030325211270831220885453821256517574978606060999548331089068077163651818558222753705120279341303020792144627074554978940657177214285013860020384101710212067493633299492043674719814506883045687722982326133083983067739960238036112338004601699629546911529495783099137326753574581858289811058264892098201223621734481307609998249036516877004711116688979304386864208682708197439945086657087151898589673948550032063331480701668156927954780514221999381368524464933732192546023379681078483092495406912749554701726757557350361502728663161777202845331270929879625192815080674765553309935655843049066402948361859900346566411468343953558977176751922937922381159884939474934174915171279903963857049638566702968870415870580243336503451543398217970182797397028633830414154717389750673884793545134719371202202319599632738670509094877257123671132829247763402016280558456979152724257313823126980503957550037877886644165267442953176651383524456323560028066238952667849673540647112388676374367427277081953946584575683824529538423179448195940732722062045230544277445291873321496684800558655515845822936548981227229303023019451333566129662816804164598216875328593349747301338216987816237747238119487599460773852038241783302912773883002445996046653321898512598267019536268964642749146140994861024758230089739587448964850323347654704781732452546491185017656929829627488510958160365410726841117165756698614907487522741310185777778337084910086267331894106855370109536987115039597455033632412415543658559901043351540160814419606466077966267458763680453965712661082875213283418237604975712521113922906796125643100558369041191390424634037639555575398216920852352461790700907832811247679905634469960113738355925690816293066211071999882896030040415769491867518024886765504016782079676919550826523215404091539758765398240020067035536774480426947901761896669084707620892850314331955793311470842937317480122698016696504796454526568244782067222499341845196279384718193087042846018046497921966638564841829027126839025604899144631539458032523282226022089863279969479312007598910256171909603008907147619441181262139423908569818128043908714453735035507816069928015038524677058692107203429790006667587906612274442865425575628127075318541059382939677748769560263627502111043555709456163314155140040208662782488974997507307685585677853697209286548272154392049795552050442415373777536947444355462574855400087192045689240484186910834204526677492375417168640372761263597791887407766993337192561918058432003869829603144909946863487771502199045428223011179090700528304149396451905829664095610615794046811484870317585085270617584041371355980048403172810910486558678660429577693111988368950227162242384251006137620014600206079234896893131354470169521408098906001844940249778509529022933399427629402253667842035725741086806840321297912597732925500177514870001883225413437068726126861644107055013528428338497632389134419059842367452796124089367170309699165982232026992833078255945882096223310465576027686531127757644650405324624963426717517351784318493762288413406708537485459773183816666183277694990863525907154943137727015124781258302445166973613128981470686937234171224338756919450535204312253159288860081557113839087519475220547848356490999703037253883818060628083118142535478934440170701278515190219848520823986443863084728371751117930079032404399633022094617367797002831319781513484983601518099953004201454852378968681857785386532702309222165418101129231066055118058404018287880622466080858128796379113463917385778575490630332724902086499177511217269230882767291628493911922848195918448583261063557385705567428489730976757075854132824847792215677723310731309619260132988730997094473301306793041906643822490883253711891029003714864506058473368759355753426843441857969221293266862052194642316570360744902209572474751056390969399539578232997262423443371205520802587513506528171568960762861489274643959691212095793077267281323460035311416758608978306484928900771020521947228747879913916025397264314913933645169316727827762286297241000732206341238991676216667093117529173080382776900162439654233507489538513831430217446510862719092832062222567486361390507231368008456363819292160525710380501488010601339972331255351310677516979828951644846301749233867992792045200133719180267505941889936071883026247857073816673535054956646348566193564177388176511329280504039084195109628157647330028602491175403239905361267660667986531134856063805480621280973339324688511189872855564822739302360552548244062808341429778440291401949836035849669469110835150830576922931128474477254591610114329123572441023022316345230128773386244178688126551030494374072085114209100128445833379122697800463965175445256861359873732959317610793556441308697563594024811050307607321649665761042800988624532884967961008351696110109428501032128188032495283430256066844937190753625270240983657585515621285296580562512314984106415856134476414920266075785796082719359445387110549373727761357987643803028982166044382983062484070001850421103456219188828783906151123336307855539701609550958223413538712016080583477502703975820808304401956821772676021955531288440179191243497328177329143094953644937573623391929748167189900595635916844203670628455281705859530782164135073929626550382614626202890596589335703310827630212456870545773713998975395055071555749914788515614390392917935934444849067855939886324914150410514066763406897882599429218974473780803667418407534975392978743885618256853557195993392794951553669202004426151039272599486578827763720674920901244483802663691709245449818363730924449093446634486767339896185318030053459672986133026807160014152088728304069140052152648266104497253775964853141238424440732904879279441075605834216553887846486060710763199941933625599608853033103483477312646367007258997102095209436194814024600794292641909137526103362450431220932010566728723727206747477891647597050301528407943713447923501669389090856968168503330426323415024649001288241106470718965537078136560565873683193712104733814564197112838773382695165847578027697206505079327163335164260600457445447462629470734963770784372218895001337302529843600126677098146508446919321549346378926125573148031932410761888678006825008825756399953066277705815110898198851074320878441612655606826435472779491648215025823270779233386796773160555737427689864845605553734703465324221861554843148730956486220816019749142887687486621216790226214279328883344315388148860429065322863846786854695787694467949783511756521247960671506009837838755973950977964552680689793140330048325100197436883525714213366670709018443159914605099775223133051597626474813118745185850894227473179829008315350456575030439815873630124562069141010498694244520257654488519857471330296677421567732088743387881010961834861923352231385418031381347036145655478361270966860415984322096108357535545248440143510698627523173800468913383079962673875996971195239108666828563637391926416376450166106158948757577123780990162767936666922051325488167471617457396720720458657698311802407408474900801874697782331006891833586463340471499622446862881832662726262608397144549349004075769114492689843236253882838982127722645095320018013452403762208236225179594717243314416294896315639688530622644159875811712325564717977080894909305477944145532748702582383580506681856806119296347113692904273584148672098438914084814133494857943290235879882881229721664881964913436779033097046601661113597726999139122611820214808790228184216028839794761296740438274774317733512207093858961291782301345706988254045859382620005336648046009841552759141025988685863354583218817847211922722636607771534650740570737267913851859524529810740695853633763665826814321276968492624573012772314940831849446388078590467023498450884409612883548798751154828573619338976972541620459081357287198356693306898179962737772548669936132633911796433122593252112157708805446907929442699287016278937464176824218566735058460781847475758409485583773328701060395585553867274018972354591939954534079457306957614370647057899751390425409752310946596571880558477363713616295397473147865857661392563516448909806295195329313995314397868512477051586690222067174354037430143593271774724366175523997477175298309536429314602518715335275301282513864568110854365646980823958985749787598332191573568551441890783029066783054698030906229908487321988936852814199791011284424727434053587183630004627372495737031280335675795666866507500156915009289418158394720627470866742501725323351400540990346307808566012510361366044351655560784150442731181674382740852859886506045670740855114471447189520612450652700978846154246947880488832760776822855476007103904131446924257460233265420137998010199125994119367111115989742697339227792510288568777858912629160213791658525457970268188790884288797390882460788428654619412551468809214921066788555002191356969919458244420254306920623937649261727051345908888867163446334080170856556664518718396570874630740747253312544301184621995531894650243256675160840810107293035288083531487672018648517439920819525326512065302101702102585387792688521109707426348147276812347582769125299237605534472917014411248719956830951384544037581412518282518799199948983256760848526313029063852486699456027555457063348979197881845417565698602795938867456457291436145905047986881505289093635762892244028934797895544236291204490213098477248157807049655246405585023105197631530882480884869482482282695490706439504902646993358068399386915637560292770857966592109248365143916430419923767781637213083170494730289586094163780167633714861037924723024682579802840257775823283477269621974675456228592063080845455792667831206194315642935171934957402978839224412257698522570568448057632676063473886340107361426579139410659933296770318158097582746186373889224894375196241937367969891218473387515768087576909480852916345995342239923849625882680948579442900294755205923572746697954738166563292434912213313166571420926803414809346448475061694131341493731491497441852785138532829804081128830607326363346036105377937933815151396715719773257008482101858432635000770863704659990941124260791629487624491153697189400251481752352672033967007123961998173578950060250506576637212854953221396437322928728065647918008868725560763933530193838178353783389807032152736778143457331898204367978967745181871550721927465120654048599836492741042911273011941334987652037112314239994930596073402618697260956467184038738703277739069948719663022184998191293618620639334991442142673353915794059423089534359535111494129431998482882199117206028308881487239399138561532393576591190563922814432439107386219741272098973182294090931782803107733330491078592851787437379449639500692899798565548245299610061133664839358747818988443637834762306971581413092077000811170148944709640662139010353225248792501418221013307308635924150069737641094526498381989533214729507390178673629044898837906573328885601732722557860277077346233676001800225049719369043207126144264112480843160113341404716899894567690764801714511973239643839055941640674476677992852025799790285070527016633026004815776600461939203158604885434926250700092591715656350614088296021560299193108773955944398121612685962057654022143110162484969683117796465552367409770085408553306780547030253689001173446710289571376544797961294808297167388417627554788353008833678046649745836903635940893531783696988792987267063844545150606045752752539341649269120278935556210493355838860881607399748656819383092385204637645295344945333506062021203394606155687868602820096645492111941510601558375788335950973213337954183399796434534282193580484527834212513744529754837042024088871763173798209374623007451066603976916696193351355661041491479234633002856975514817872454634610234836269087573653532675201811807026252268494188850738213970528645227451773005078554553084739637714218854884920055280579443986210910724431470139047623396260139029570109410868445521213511631035226419103397451846792240015870659318301966981551748329458551018781719881638584767504034336038385253168274261931751346953171220797356357098159558830751726164564339368917689153620937641855445059194411911305999099681445665635539798110844675953516783294841683917456619125666357682150735165351127828048484128357924637506806256929255489051482797521139344719872397680351475147207897028912766380280442397753429714192014385574121766057485141606568174795723171397637777645037965210666132851959928956782071374356351628204490415790961900448354665517033193334007285383508558267605341316750269303393285574107077764431625769086300486419438949462602436530223458068562953950801284378681175113759069773789629063754860425495485052884012729638998601427831869039985967567619434398339433686001268713231609011625336538155042913324641517982441112154053768773435765880588040048497844355049215466620362546000043581082096806822394868940923213226752613610399095682455256385360464731352052995028574779538890560133922684339166652585099593978601369531887187633825210382981999991819492593797269737869728948192731276414594820642296207583499358794677994149244710128446670370499799922457087818257223971279585351061490313173736557893731020300655144853228728073668745939177977847745419209128350954626447700828444121961474791407134583295271236625547871897054487557907456030419821456693896330216794008035959072412777366337588826309245524491359115873652242534502424902673996423252114701893163473456463690313426314100275091037247901292823977135829592800935077816180420534244099002326327138388770846484352113806348233536438271069773994993918922677012410971981440958459404527197604545572311983146917372912537152203846628407960727376692065135490999854360585729744520464904634604801287021054751708826672450627240092853075081923291590875712838030511373202181536119019332987804424302169345036137159669021148343433704451285048407299689306375288184173594597828060542898540765077255271163572901274709550081564336609997989502801283972700544824551917996312671023368084298221977358945369063869905736318806740938567660489347565756149637567368627686054518374585741021977534078240703458105915023812948704394297735717888648413205380845946671404350469232945144794525145134716339152541045276778649937925198680275040533105892962250769601035685111360752613560111744734525490247356874508415769001270677061905452094702588579955800977065889637748135302117595143058589009269700043756534242496343029657230798779242349606455234076433352368004378242768941298195551268831910539325488079361977399491360498364343269319667887869850812548701785151494552940211585064694452787154545885638395613672662227377281200400322170305549568010849080337373107077534028736617627947167070318925272714172467792902496436066409625224137394621508402772188446605704530114460467518768167984958638561137955627115491250145331194510664919311245343087362038961388408050974610953955546463064192420868775251810819573180539542567383354796965234855957512377721611587712139570228062177017845584332268789654003006399264781726271426936066161337418218629616382229963272221866935345820921923155090398331145597428149356970043857088402350253962912974349710348422630426063112790365489362830566921249276134410195402580517539074808871257624785195133518736808249997323467021627561930290630611195750758202163394728215041657053851859653563048697140839010839231854831206456597851586604142709077490107054627509803799172695997974328908534930788777283748982040996132150710466931671183790082360198187021242134563956350109810035595207966179974238195127880395147869308818967425987662044028871969860347068320688693071983458516180449594993929239353780907894447685842937144993553883249171923215264316056803534125164059371889898571357568272066172279534270520835104242543617325785312201834694149324137690859990461890257789290670256430591008569108281730624934888923422186850307302385830140839566249360275840656952636109475667665930242931505882015447916328659734586833281373070222146855161606994968225575826547681488243871151989960003587044789052613447206001018183288475564518735689203352053586480854111110738994819653572192425671003445935627201612039476670136038585892904084581869666461696461731295239863771323865011822364475198306375365665384412547523075021876231995987247712821671680285805135757049086523192518151644864791565099456042139436418950018318240831572814367485934895434754430601664228564953101191621821733586013336799283539965678394347169074243972211277968937568621584849764960284115346568458158966674855521800077750964490958079656936435496112009430748521187417222111487469746368676448679562120219955116619776467791441015829280529005585580956078716820936810258085100538505828875122704544910519074090764170180167524043828564730640838386435624012474157161342153976007293749656461234212836698963587634324061794338700809577095757569997910497207427057417234848281539889082527452067898740176253679359271751878347917140816614098508913019713242925763549168990977804743909000491155583667238355506512120484809755446451485969553942208562746255644592482445128077093129998474362452111139493795569723546519606911474214478762802137828932221873558086402244831752474210575186690767444161704174086537795850618578170696001998870069445002042369511662552023700910109414283793177833214832262358871052105739631152976357978639085759200472420993119496998371624162379649578372013739713693893012074489475158366517784558340646028672970854475094759218618931417624000751667859530879859073364172736932318597006506714716232268986048380627964219640364648527186146915852149533056178514878688766777021978897050999968532074393121055251796134912611008624763342806674271424257473817756873389832956636392003374862569444179159539261217356162938638562073784464608473662139768433304170944084850863152963836604155921698427769822671539873056810441782958215958992665593604681707774142764144363865627076081709224156318488368095600732722460444655401044405626099066291543528434648346036674717645265736072004224824295705223499767849284652956364903542328569894706407722035526091494666243919013405258784789082591093980809389088908848611407689336041082505513258762173817335181511689520204712573893122991157240181836271328384434855774346925102363950458989735779857955981669602073279859995689316720043294525756310650505711274439346015019089410626171983173120715846889369243905871438109951798730307848937009051323372768631311734194156660651466080390187372585541650939133295412941450871491255483184736564929862210770275988702230325923358840137454713327822743526702701020551407433077906701055885482848047656632285335444150514411824865919841642715820608733546925490993977130765954507260233554472129253477459130145939249591306777089693366239947735712985967428777635690723154086803084007805263345881275668637929276791815922099146402554675842509831289175575439924834343718126509465050294903809655507718711678217899338335527551373816056003554631556986285741160243058437204007398453748908480131528880767162988480393673154421158563796015146756023706042206171601503529184183496716767696148120599617160909013924487832128371694344019999859799844534916565626111149407160561086627463609687720850942975693968195221768966940559348865250961728122543727860888978921508438513452412507241389302394867458448630223972581871081046144809027535172587795195256197791006030661087261472655865998058617896598805282127381740189960472927662655566745031826838898867124205164539696232354867405613781974167941244356543975274834924891077981363040375098526540118501213347256581029454456773554319093351941660904744444901360080020572462170983147230457516704554751381270795240075254337996962614958114735493733211946094763373992109179774418028861008966733707597891028878374449446010564402446641281228138951715655166771768460700975866315816044915291407010783453484115526664172929512563316943647518306543261493662263199013327595744424973582612747770588953718354727228773044088025203091779801792034869888534738541163004508103229035591279408433049886750087379478124356460513814344549432389640567010326417217034985327918400895284485326954571688063429452917391810988640523634492756237871481284169120642775157495423718607593147622949416012768264543327046044469828129276679361425407248171354682681777585299049858435145072595799823542762462914008315885081621627657014423358856077490305947306127565637811732486222396421864841623020129468314372225951764184025766968679780423300167711490556887444818279787398622960372438445175361359892427114708041655232262752158894920439091463263587630613355244619163255199006416838689518882828562064487268796741671516105965656156262282151133772867774674158919418526659538742119228340106762187812233617544375423146522118956365222040744308066041713233088049176359426823104554256841609566457255169840166700519615149706740888760337672431838355122215981689347133363294961203107008865517547186830602398981924408268587015992765463365356111488432935581662756425816831156872619663508134262392378463235380711732817924039365118771338309138486449299045603560622714484388590935101321615674996418283315645083685386623297260793335165810714154396342571564899187770050514181846858396558975458642524731196745605869435330837516747003034857056896873430150738108102532812890231788835685925178219031295339427883880584375128610026019083938795092347114297150171377490243546084590706394567389911254818620429914287054152430962713652615427840333142446140518122646614222131425861966264040294509750340118876753706627266746704159498472738486305774112338906008145390232426073581858418515205168537037570258931801585512718051251302326903225648557683538586272588690890998192328978295296051329572490360912602319112584035313127962176904884322214623436209064528503097533529839063841057279051310197757225756203027805892285908093719865507531170622797992969992756707296129627906108511962374750911993401159714013058567262770359158518748436919324946866897195098388933760846676278306367718770725899623648622736865418100244436583338012011101068686903712645328277557880145613508826702004884649822771321828557098362493273283651427826642407202525202525172877772078511350099159131068330349371583072128443831527227381843666433362649935168276691128856319492396248990231246340397127797988313188838686448319986972475472326694472444400338082688682043079640659462027788844549674125152670352421119880557399511805770836654318647131070646016650487972947831410732293231400082877917904641717838970145126038924058426293800150549465663385782084112144754023762413646217280694111337184430080524944968793631641753366065236218867308545888230378023383868541137414216839997143526937827265813784235302025946129016902864128937993658742992364310322712458357348041078596099410858155453519932646708209913448005417799980400106713067208307935132083172914514480378533233262945049206045703123735406273152420835464024730425813150736084286506009742282734746327343348446212185651701246196148286247337893391597352256793093866849834207927752809117402826153391522935023134890727718789882489939097123627888557351136437004884683115101762378064163150117187648407578844246587995340913583294522542851468275958398816361701988202760394806825209472192093560050510893794072326866933418127606568181874426621577759273918624715648985401481391552355440037412498936708561078621488414525391016637186646190900413205635786675565933190919315219287211552334454728308848152935956547952100703094100750755685974889535512672379682203462537783491945361617401322511108445542128292379588197306150128580095086163064172229763721442184547910598696436231781086676085623813087982993302111496625902195984286416441853673904893901542703546099297965195402840907931649631088505338387994228416369524500269329583681389462547536620335514940123049934588882169530759960359990156571530474305093518372943935849636463311546070995706713825297454894826609780727443186437791282174125665914029564458802080106832919793568811686244514968671129346696305521585540416860831220972539338159222801093603976765612888834290288276057588668978717099873569106909452944114197153555739069815045965935513432816449869208012746791729219969710682955080433325825028936797330856004143993671483661332927720918495899014955080996897248065300063670326311034619445159650076940519860775473400220291015189654014447132947606435184727999326236334535021290739919560655167410364823344983228047945266585185377151004631832308168568728347883594138991069231289701833727760379794920109374614182979006588319408002102036202100196621167586136299172146441049351983802097788426071046465846010180598795947036004744994299600366201296133104346791649742904690651823560172412211290075735310435653573245215272505279422776261254188316441575712888986696806438146182555978869989601821791831913024311420555115401069246872183777433503768158605054710200652402336130746839555007965515927549958252337736802552778635904528147152205591435978966194288878333907416407010086180027071622140028308174529426741405843081583295164986946147288249348636939863966994501985562672208999388266670971929576910447834198580727726773625441852888196885965650914898868372179355148081991870851313148706428428813705771405473865343945807598248448035226340473523889442053872520259737821848991703214728986343713762811454373198446921818015316087628614123098937559081165318417864101005295948005684916120289670599178309405240375191230311774713172935644032065999688509211469673230000719889474888389974856970024190793369690748813284602510085562903252133514824802018092600420341576509665638392168887733204172171314016336761143625414643456201643925188921403510786102553409354199566441504260081215074769781854509092451799249010789666284942495847936625831695817530440736144679448656631166365173860506237523130187354182251120545122003060702607199946942089792746364518407318117607314863549653306305669318162196742355458217538093740001144172873649837730740438483200007957818606481232528285358913429988323177801209526559690604730309872906369360116656478413780160935636258558545969331693540097243490010754053864274790780668794976263115186516314872757599991949690169273739331630330673456735559081828968682681318078885257489163833229580188337467007359363411421282749452433891768752373044036972515577186939127504129626122210078663357307451998282260891684694938730083625826852633317360249231935870085781401214999599254263203707507985912045805125233452104286872540746785061143328375246234419570596639028611850272803338708802646015277296490862512486405391637364761889803381276347075194271076935261639704364266235847020664714529401861322507180001341440169636339419837167416856842323887942837012551424640076564982411218176331186334518473712611507166971245497432535400897002081939359062846281676851929471777108641704581813103902901001660362347592156817320959149028933363738920015372058852935792566540626742492313990725899507046837669427253625419708818600906208097295869627669965668180241128039504679727446894466691782169003383756708198163844275316465924443676906083961372781077001233446953432498096693142984518910913100812451952975838022870143710502568412105025084438949800757075733843093451837777559508463293028471122743082594554355588427736188598988541731281083026837052367600883947116569750197885602235785310059096887048192384429925300042668359218368997087886397297468452640775599786435123330549161493508095940790171587831031428945164787697113215109275769733129583833010806999282851191326160834088813173902050332347121432197283641089513265414626209300625271429296396542230870515818285287289257057812629256555846985387676632784150437254162215503356832979669680086960582543028951961231911207011891152057857390142455852382423092712875688867147446784674550701619560208446464554814419876860816300898033922815101708591771057804524388031948660172852278538166118238679087786611616734335443756734901809444211815818341089355070638443911953635220521104053503449668874173917291905494538820401692483126638172111056523744617296795496720104866924536446805711301059294763992292676879480336511630412004647925922376967985450712037170349585714583605423796377877497024991439609512131348329211383913228107423150193756057998170270380011308066775286104225453675278228853129435330956425181932762670094838597131349577933407654176789961063446059063786917835345855573130278848051421710228497470142267517391891495987385834998519570941348435481262305717364050522242697330653007201492492992408941654644215516169300367083293830098653359387531213134543637130968983112571946133323659915899385484213888499181956192791299365012753582001760649564026509396497186650169682124775822419551338828780860903054008797547344040067092314265685074213190739307843007982692560501251367402103652071230378457589212331993611394237609543467202764399229549568163295883503409040975646023889573209780203394015717003610318326114371532898845020537409450084658434057239902734885955082937347038743737074246979457840067873340856050282526135737500752181296574457770241567381153304931726610489310443047754268279858736457893037813512206036437166519785108266460337179373418376264687405484300188512952800563328665436710535202774927342568860753198625104353373517951917221661191596475090843116509877487320350281468217898621352362851574002515474636679173258080043199629505396248417779835385660279113279176529275041717966939766941568364002806300099340227856900188360737403151151137618913127590745503540289362870527901299893823364020057739953731141704268029071553006272935719685415443661859229968726047238523243104434069709658256653099800893159654466427882910250352895327697071980685104660649063461787830414205543508223041505262550476146738434751778371546737485150770044176130769080243939364856279742651180794488385775247978225745424583161553899222892400266986496491226136321781307002039174430266050314704788674640694730081943290680875996626482892082609062986120494035785287880022161645353482807865480538576713262039511656599443556020082048747958396085517858587166960937424110366462661835279928616964831501333939436549625610583288811882799992896073306305935584156289408116279919253922972046617033265978140282816868646637414888205518087348022735353195775028051355510447130895846303511263624019009171802750862229928188302189304032533584011065671386058335106986509839006362368150833140685802675511385895950150333835707933007039363493826802617896183305840561071670848686944067404778125305211326411321285528221880199241978332988369030719395778954236591539612160751584692430071033520309646795304134046565467119286249790731386594907904857815004706034702166178577323535419117022054877867805798706571721039969648355031382324757820252075736609787914173141083364141909837658335989973879186948599198053998406048083693883537195104977007131006947359558056035146024138823590213816472169919613947197857553085021532687954027513664256214970582376402132136439412059816838894587906170694839729609822908029096946793244890994686470762088760189809309252368538887608215984078991503600843293178536622587175688920809175089450287210266272225946563255394671691560908753468556210892678805860259117137420739759512901514712698059076903055137586447076314553777206706596714451400217861497293602010203622174375109416585135109743935316575017798182361446269126613234631944125001428923930845430122846674276521040877258018152623048419800693127509369322048355076974421405220151830731500590925321778116874381726516618211535048039267094329613085685734924439635650297732413133346370156819524988878351394785859720093473096079021303573382070040512824119812892002417557508471040601415828814820847980941855232304440119283907672013843646002589812807343938320999787085218405970091761332447599526841764609975598985972150800617271979689855833825715943985760524205313929349721685761218428426912179946053214517023709238727475136910815749627973642077652966616443598784029900623583344489558963078510379701822137829362791208921938838568380633019961202384801214376254999637680069174512547192995584361343442359544444581839604970902053290954054444583440962962236861509185414453650282702872251366141002440711308784952478408252953401773951306501920077768635531511133507053976909044953796360014615480271422814095779020010002133883373739103758814331264865693799913632960384118530635699450662051381265137808338678323778031187010735390170026944648408249749951266557354800877069479190583440920356299973874236819484148429490018509488424147409451940837542073692318467989402413796275854149459718533457433169093033777083774253831868025535091499677691843883605154906303876340908209347092261896394284586062206287741624565959060549027782439975507379610559742881688312830316555761416810981825417815170344575132798979646511383242469969984088520492717982607650255372013697421828013457518791211550750934007671734087121344166656051903537784646270508435119888366350916863738721244235339701840185020899674807185390846169426342946839006246301452375923870578170490885839503758661714088849484909334665326026340094988594015361637247589548500302741195264689138646557553777327484128774015912087375358146879592375723727288124772722077624437748772907358337305260379620900923109062530859148651775282229150638168580566437977180419818757845396114671912398256023266065416098331123316304656983406244987776663538851657364092396114973192417801858518265779408977887428395946357161379504367145126551331524499043379160158929965764836849134470812905992147192692253114238346879803443633464298414505580433635491827164665512131918844868786875194198188544970247110270027497386198239484281050905829176089017946048272987000665125734291383103874475692445524722158956636031986187652605795362466483689534096287981578910719850588180496220086545956667754312487502882500709176311716846183951909239888476353013608288061087681769605183721868320574774609623131042751922474282696837387483724218828801974654593586050314245594887141417075425562372580124790486791745153281349526579846044998249130385799761598473213514255229191081468507349873842947006587947202745129775486988545578427917773406217811914592220554653649314638653633156567915340799245824387985065796961652790010403044522005376729574931662843512901613762804343026874339219979112166459624752694034216538664545958366759767065884692724543532473373986152234364495591393887810834656189795454588128126283054327675398579312643735961754273084168306270604620730912936257112698121478430645235388313613199914572254757699552962112808259870600968788248807998724363168060137148006389768974577689226490258460016269004214500564253439343904526995482319279613681311168119027784506825889337403046603057572168707595176638208096160256461074456871760789058640853089344512666274255995825480081035182435813782780040306713984287695478902128429917295372887466648625056511376802211073291758320792078007798601021004565893755454668522591147588258164538426134539387937458852280481254631526128477887793777046807345779281899734281066621672733271835096497559905212546178743620811328613260185448538018079160332677354247609633247143695969690081688164955992069155544621318436135286225933685202592142370479698405833389849344435959584726071937614589607936167434264199334372165714929265562975816788090975768564018192449909709664846297604988337152470714389049460061139339234959061400367288400637226497851347151977688919200960643191623802813352385341780922664089766371800226867473459848194682775999986901853351759131281615194507249939617769904158784474879020263817381781099440954068779971228744277488871801201053245865505023017997383019848975970282599079362938461737370717918370143611782422444990400441663677849602756493341786591242403958114441946146390506338416364358084513155595618277158700784793600993272168203838161375654507650967762436241727253962663833802400385669582894059398132314879490401716516096208670172589747868303882337310254519074668026192612944655808347637165175388338124841672775352900084715875303252023490943366821166938271861209408885834703233445200785243139166778232497722961772397094846312038512215488575262310510933601496677741715077729796278958242172528905058680899419204151195851859183685397231785247329518940541571363035790457865639162745058806553722424959906580563330008887563401847393581354145387667821782567331830510671552582734306174939176268121227865541547776571710622996632112579215420922314198955458159342816840457426651834602399822758788503897366499350577844605799036161177645779820789249273108799513438183931677500960738150676897144063545750311544271725206627383171726267002657914183715804472474014259643035808158734715574475035516988219681714824410389564741006261406197478860806192907747758762699930106479290061666228221838632861615752385779420223270851145480323076930812760260214880471904130241914528544862669177384578186087239661297367580852043833754994135271081718779040654963904407222427261183415131881000852853765848266180709639270362331366422348078262843512128635587380317327115753647600889901609107745714175297034324875702624845195524349655320305754009350162746249000954585132809013674620204475136992560556063873942753437478070048285291082347412321186134885288722784120549656506066702860250836712350068490572643877904114989997140808994953005039643832509492514208132361496525027737290427331326215646746969147505253633495849330439088565671387260539583030426656332523262236060874866080150312794756342382829200509098100754208516870750570877760477431498194608462264249688855225009769814538060482722129182005237130443654006430763081703096509341885216188227372329758706405579695434360393066780135255648745239236327545640978578346664853190170183770363668989949730699910976154310800712981116170378137232210764032415504268200724987517302314476774742277947057571580396012953298775559688985398318933916288996288801984898922262730420732244658833306854523468348686744101269404280116058103719273115425259217987651312698958738933145511252672177921018072568682812079765576812921594875995307872242145728033213975393518850920837583392933526988965719771552772505727098647927971268726498420275806664215686086035018471876326494378316474224948626892395924710840260341776847543180877402281829959646939677178008234853423915142434112962227799023438169094658913046015940956921960509761919978953447445062874070152954173611542437288696486144863199434300891052985907010430645853491586912862576062527540356960936130462705433786093442639568823283133571855587224907200152966140327857101476790693180478560645777508458973490913317791815964593650690310522179222996053033925367174724363694580257552293872034882689518945591704232688524289377823276442292479739663138549083853368718159354772601706931944042882304337141675581139100993547079709669647143331362092097811070526145129452726860327099703409021198599037247785549892851723308630876741142823384020697662545404862849367688208040334030903431739762600516020730537089856125999426984525907653875359452203430606572468565465410358138539082278319141034868040357777177110400788396995330115321054022840907331503741247610487962597885157046953230332600831349347410682048231549264831028020099264752221022352543153536085000988951242491793581110316480927488417274180039904369284039481589718232667054288493043618831231832047136352541441898699861842578166534603222999186349589302991709101746599231348692478515717331339325081892686044343129977959011987748180755056788896144368029016175195450145105818637275981728301631230332415508041181460712922359443785569370698280030799696810122450091514389791078043968262251921546966551384025608321594205230846454770053311033899720436183451234039171430029322214549123484255506396710228090632994682473043448706028473215458263689304984009925663240472864860599123261377051402822077926114289255339674752831875005747448946073405273527570198904463797207220434141279388315065259850252860196343750530310590548538766320764704484742520708827786972930889022619201777599120978154655929380575684989158414845567481461544235976557104288705064700862555768631194244358545208381788746233113887845949328183651046836842355941890812848759710297879645866964308004802219535691933957710529328145873507679112513372013692984749652426000640458873715838149189519139966081255165314495294570117059814515317691113195076131748105409311915159796929989294532134599086217657005328642051534163807701588362166130600745240173265633405600433204332523802825828728080570675981414718520807189636783679380722927675242928608772895823441036342529279426224597486111055141302491367704437085420415845869683636703184324624906689616931976288655008327494150350359266185073407567011120952021027909573907351020567791771983802269050072888218891994364159592585725029230188340549573718477019463571103117238390075972741404935337610753378428836871684369366584591548218140635998741876620790798279704419375853469952132731689167456410556069083100740887639317000964786095646745348734014854969760494309480400447984547788960673727080415197472356107149112231354630904276976445939519713298005380451135163857162485616310991809115835610258639437741147059168880773833553342872952824879897893313019515283837416325240751768793119954729659831284672074304713214992688215821778340248442936570064711217069364422758283594246641440978000283428953814885239200795644267866337513298227058676757905012350927381975367452125297961244975135634538107511400266179332033953506409735923508007144496793689306177893278104243318422986239789042234234886638345537646047076433011380409050154687257562841381617721059739160591905458185437269308304996951414091943359260492778388752041275833582089983755976673469760468204033453446908572594848995637823496625476015662719345943235239090968068260411341200370530827675502927620737186503130948544423274867392961319410306051365226383867811381482224537875711474307213995311639351875729726522404123928941366146295238366243382130043628869291058756887609548300892108481893490780226000457194168332167110704125952855225705135767528841538338462311804792797418245666913509962365962197549378151381079899926778631956003094931886972379985218924856035762450592146675603350325458804934456847489116243296656231993427010781402207219568457991496780033480963782271328638711453131736415614258443371664731150281183603468527819769504826617032102455815741772319741198825158447767427047395915453967180225775620829081168367115605549086778572555647111106360749929779914166542171872387977203875495483792870050305915130430730590727451494465314156697725075403659318471782422406624980632708549183227418617542976347782382578000176124364163406873793086284683065370658659420181678172491576597010139919040498944304098909162029248237468519198431315483106019824943624855240789729225244629314177945695400753619588142337543907444445616941139922974713028982142049990467280973740453396793267831998896218342998446498230442555931296185690674504511548596938452690001899118654323376659280256460500002580562812722931617402588249134753024863949314539920177457475377399650396642826302518946083146188626409373370229301798419851151603728072958303257593946122414899498928426197939446593358170053496458904892575291388898716013819881326640735387870025938922513341018579991114818511875458260264878512594641786197795522860706382730777545895140636190546669647702511080788273340693994154176266353839018185749112286493166596675699252811798219138826770843705309818742714137878911338505363338925853605604044155606042252173159462191676842752752290516669288434997994665184027625216799919765765991320178568925913270924021896271249319896817336161695267508352785580853668156224715986924791797462310968081327433918367263782504573606331479152059840241574230392814884742875341102189170906021755998439637045382562668499315558134183720847334700181704456353562877582796713723946149149030052339030310087969371235072050403441526710221920981446654685907624169872324615211071615413619163787353328540986462919546784688067159684002657441182403962125173818505084720613336751842569631469776101017387270257939222022959098220891940857287108049811084702711239859889694292839900261096704655334523680310891246869380052472323268214827959202867856897883717506305249695482165714062206091187819645180396314231165555953731987494540191474846789846522506196444332816138957518633225376498637622178832317126580614467899408459468936169805311196684911983502214722527771573856166356169066986427941084076821679617170390037851347290566335729771276463641298204180832201501693699199929320169379582311338497782105091940350889541490169696255942206360629417842518622920256500971939687585348567558009168059749107526756316324889638592122955557820454197130039197725019588008490481502626704322520427144561974857158660758887153637453285746017868618048630723712950943601930876108464460143277747389248110136060918569355694334900744014794898970014534943763439306610431957081921219590484702858411558371512236091249548442893050789869650614479582906313750199540894045852431002883084564324101858070504606260793993695942521588612249923149722965228423265432683276867278261497600399458305270217131831058656982113085116563095955689732010264956174262826690712365100532691915402226600441238484785959712767922730580938257814116550354457544479736884604839813138118140165346092107282336727842893700466417441581705631870274504147745787767848470048668099116802108768784013307575181426556732917674127942814179918911216724329737025913753236105848093414409615392006444780429033978330561526976753222592125174712079449299779907726040117801503204568684745544036163904270182059146360080265160718122677882973574445953932917386875577591494965989148458698869092722099546820136438530559414716916833730517963606245235824812652713031155275567789031779764901727981857074907993519443850478997651850523771835649675478976940361391312564869152291956370380871034667242252702576953262257786688311694685011516791798291250310849280656138090573276914823088091668714461105422032253001767949764498871060883553187264435317928435161608213544036594465520416344968985757444309195202433233223244281608422173881472137701101356735002399638844803237550062077005732823577036521322395810126327849816574374373369055398919078514796245291725177263309640467976402672492647704026101796968401799782964836311518503948757492581429495661561515973958581445816068384794685746148287794270558218570203271159127249175213697894199354332796861083095437691391245965584377699388969719661256083829542656204382286919837362975846934783874943334359484166099805262447940783972204902422677638948422567066345351142058396756499602140575315561109345090038411830977655020646134605082104631506682609454511567228975600139684656315769064776013779252171160315952493917249646743831657272935746537702000277488503177500110307702904417187362785551976748229986955736832090399374217512939514388397714383702934156899940759345102235853799069768088641050816216142298873681069449997379433558373858844407158123167659539870582628191151212987281189859797914818549179563885310934164343301363750231909906516845309838466579733871978207534953599360182015854434619722767164284608789236600032015849474127430559082198258911125094730339772908971491990515964470203092257164452520342748463981089003020679443355026930679628724542806134488916892161071182523824818471563580030262852088813324735153105225508464212078938793252378754304619453705523435430604144941422489740733317257682154941666245439133685811306414647008516108801361008251570349508315542225788402119739562936890529647887208761457920644337905126064262156682357827618365695061395924271121384332494324766905942021318336295199936274332287457592875624225552726121470901054682022183570284302444633016369182790650690218991277635709697574447197027394027675467828293717876000788780855613330154424004859720881922616504701879514481717627375918065884027488926281028853674749152294993055727943721783887272053190667057628781330638377439300700531851554935567870211980320822635028157624708488139029356377953683939586370083462003531150295806185236098302677317012740999833553828135841819031883672983462596236109947379824738115373374644902137570516616370890694094915308509816803064469507705930286077452253324625620717936689715993070919027282016193129128951678289109081426159319998758511519617799647096856287539961037502852502524682394308255565311106325052848519028995295969218844940804237972117189408941766800236846167739023154592751403480656557182112728988377113002295806296220452834570512499345684286940207879180696899945031107242990449760474254954712203731346934333248338421403635483291571938061209779197639167766619573359264413852889078476015097133789372377542070125534621031690426911274664368808721396480881963166911947899165015853452313552326564964553946216409326323944012314182070796719582130625573609676733918682823734605903219283575155425356057456086650189536049681102953177864535542874904890671774359284746228556126879089361526303060374764278432311030381924395895782168675409268061823428778300669401928981208801648704603028883966710674748452473565772649604232957753772249662682394487545608570655883339675938083183412177532444183243696378872711346829594158817451129354525623156897849365533451958429508947420189743142034527469019136606476983991160005476935349016901422739589417893788329250222860037358425587707014069432567304360065869309620597475819822148027006455880250496017778874355669332579722838606811022410148487840726304532223781470907903090823869144591223089287032432708139721800304646146269344448118181639173317819010920188805402956749748159340873445046787984597211453557114951121899349588954255829913823479982587787667372852230735725941043670790399897680068114370667242839301416275825391971308893609015447728188250335473142147190342493167183511042955207251843573767144929655854212830094925281906996002605939783013490457385381683243587994768096661109251188330496879532536171923725479622785866725452392724895170376313744241153938385837993077971845777850934827387241721423928586578382689963827810775526934013409296929257262489763490064896988275611340931202954195079069483679759763808746630416149366203980080086089767067235221040659279975489515241257875678222768326727554973195617878299261974624550231924097548724945572608727803494477545005888925219385809539839842650643785578319380043765775920793581490389931593849054306825324008882119915214992756498804811863311194547150168862346038217714811499372521681977764625081617600236788445721202364403091781928970698812023003092717333780524512133795197576355966071194035327550574881891201188678545906631182202669037297834563501307699631200850503375594615450672081444494124672682690175590447585716830496241700197631766253130216979685180926054399922611547029918018690707780470815563800418694782055471672115127959606674668779707070437838222586178189924208147189127143192686996239364309494941465311091710003038611812839790839873896902015009515249585943797181165691210273854021704452956232618395202926037442737818532439423366910531263823185057872876341804163028916212179731698137765428542419858652986434146903461757467193343468247188170076038838059966408604404838039141507173925005179893813810355856053653065436576599847156391375924168096865215532971451059888513536529973178055994527538521806335949310588945427638513034744012161689338837339602000252632162444721179002780390855208588222595152686498543967359411784317506631871262727324783003836928064359162402797740587476191001352417316775851456762696667915521122183548452992705605466861157249837014876855746378695466473528880458812584731842988537678973611286255027570579139620708767628424926685955140808093079150906955311761527035168605859089247525016967943453391326363623421869798331769775339759278476275704825776801067113806330338680820495237319488459351868883746727869264659655209964563870980750865157300058938051322382110776510691820958470017841529674569919264283638337956354481063635894132983747916461084596194320551842867579063817411681520452208316994299570801079109294993748946514645565282902510906740358799617844810247641399630338432378379989838340068795865843642208662077887818001775668099642720284909251702153395240068592893567563807483351374758287782230723713814226525419303875062204137846166223225541149463811566462575674269208587454044733065866420997999940985956074458772780918093590976159884666368588809756230651037171770571049623106772688917398209010202609523605446351068592510160144420118329426977205121449011925947126514363599445292252294648511229722764120262208483026814184917532490265725964101757187653556698601979921752888382676961220748510921836469655142072825064365777652685396477518697522344513355962214861601941763927112360049500541383212678259356910617611086644800460958244249373097003379463985636126169993713986481106772476623807060578085579432928970255760378239131181486216257370741330342787796126646358748557331056239500527127717088199440822117996009669568386815377205043137739781265045568108211180106481073496564960287115839950535777632585441224317923403244251458684192935724848105067896947537569391021596845218899314320086697595692291732325825554207146592523046478813972185644432168453334414588903443772914280366451851485126140434314471982790139162887856331140902221174924779961351346274784568693610760823721273400582894576604295902761759138658842297987646284830806636630565741280663635872379648400593357751935760888709808660645961287610932136946120980686366272252936537963210895405641521261359711875291079305416438125124673787744832404112141798912151892562279619157634629936913075263941382227965891853350348717129753477566153571566255718703439788554291248637245547623645028887361640536610174959894285736503681142552298640384803509896582484189622586106403585037990159032533339492989013640917288376486932530778751528759681158407923429218922090426910511489497238139440171068127537599418253517751553519150696848128862507830654652380886383408811529102971075797511993987368765831805727617375076083017284571831760843848024768168312464625431298585058727959648641253629425113298257763394855348331787175343651894591246351667853075700910866306587962948558988376281572960009420659955898720703912496945798811888944503672556456472151837650564026348927839724279882174498742654101658711191683062484656392664358264284538741504474672874084252139506596450689966126628657466709914817714813774455384463119270134427441591936408700420049051882756832160677031327841049722641560395879853748662424975922328320457325152051093899159002427757239427030034539197628247937674642001259946448683007362967013775143875303547570534734522527547400925699895072567171389979193864828273297879869820701852175438542227505396792565048437393349122452215949213742121685967891789978970367742333823585110306227028411409332877510969777127551495850729160893250237319927808701009059079322241650644328020367524226553747410079957943904839197659265161258972880655497456099950162294858467121174538590789573631313115265076268730454036084985680760442898694796199869512293791465445205526039979415406247567583228344510861167277439154764151566152794099826662818423276654609926298643610718401213494476411593047245297001693015485885074499421158176685231556004979921568839424963435716088512398312432911691614028871622038089272946684469904517593209271328872658608794866910420181141922793015772848100085363732780187349624221537048496315755792123918146525214965520576816742450023413963207910320320544345936365217179773641932739742737933125697419442575397041527355751887403575573770650664827954411046706739512340731439092267999949980750158979694222514253162656160193037657874810357591531719027667940166949711014539760003811650106515212023374689912226422353052449195663052513480521836424351714044160192286952125683391639982734706107834637845016269758655351395753757930194385389648671155981210489575238638414858082643712187299822472930884931860443591451360977924455538514486576818635559766468711425662758110120124598009459447525929643427232111844783308058606567778287498337225833140369806444429918159856581044682544320356904023115215243391283010425283308601991397369590846816967256024821704578696216570948038510722715612819176270073169670772375600672593925222356717230002896925779992764381918725238586648836756031812987497031995028404387575204860110131011777457492805820271833409061560876666143275467533209757034765861402660439764971479301961282893825271154401314379103021538103826924613903127259072512936665277221098903502827852827931337172890644247648640001601593752924061023099751564051218373757291625259530194412422458824985405128773318069076659291425672547575260870143776763870611733093731047892633469439921904560963406480751920177757228060344078372262246286717232853387193401777500222928763139779601163662059625214073462685513157206841196951245864693039619492845828971808224856059083930264606991461342765118763396105570227302516757405862605747483804924553563791611074790675439806933911778944347591806850246079915205401842607411570016450304721441533982908104771070902743514475122176316200997523585516983064032620526491896288602259428773965209312775790165248285006327469021556128738132485368536875779540766542693946080301605813514464951015124673177004337586827620660573313183850257478104038945631997863031830213642283212052519261408854098719123672355707182410444395346918531605702203646705541423888414306759718938981408770399556107162224387303931684139177357948550925437856739635542237471245337534457954543956116855613172828652780390494716469415718210298003573546837721165441764758861943272999999869263937489325674248627348346944244157937425951437351706622302913594160914030662481303453988382094896532325089535733534617673204787183707508487301007869186054384617450709298329727903669576555852197852074760320283170079920976194023748466069784212618283517746293303241142284112513193603830864090384895564047417724055173895875720163317477655647088570487042927513525787672189091256883792542773501855636848357848895074082736749604079024024060449235578607972577202571461324403242432369042243994413055868934602186392477973349217974507015173002812248535978767890833121309853896936128280974216541909109613386832938336839014392621021307382940262457919499305849949270217207438000555151477468502789982436317783106651505649271021905012259692149551040348151820699826950270618125361280553774586184188397121182910584182172496641777994615247103715761605985353933724304261855682045183688367075992235466733387050477121002217018379305407110884108823236747704228858043145366731861721366094006600627915542186504373078316522275343089894064552508793104659795147312878451281348865267502582627616457422399168401519956105619390638808836204182556431933674065842073027061452610848342275935546842274178178588070821354480438316664441887143549559445093739144336668604713680705665698805769174649575178770637092068759805127262916982861488473754339324946153263977267563806094716072275915355887434981795547519284311391114215843737666941762781001813471061517715600738992445348350491313420981269357987606159381748722274874818676204689247500043058627418772058197551296652295018830373597481321955273164840160228554230071092735262781895403072183708921328578052398679140808789067718076764492327024083863557949943390494793523633233666047874103039610762607109035545787298523755334910902742780994474747257332457045204470983408556328158375831876064712332425293036458942022820668306029491261516716687866886640918837565707550209885491375620488852345369701875749830741914871912107809390051729227968148059296659085174387632953131951103379558361765972201523379983026160271433366558749343045373330779335810321821532907194347382446762969903760829717417820932430712272422427141406388693066250592696808029159550772996758691960932606743461439331338974228797076209689393773740886795002448007120063455997350395379500773733687148004812143354943209763787171427803587799920792497617000916728428431428847605408127095053674979551357600011600107336725873970022897425705295715842677499359677083631825937500498881024706090335788679821439397287849655551257513817345947818429242924793056020505898704429481157406426560485302895644186295138441107041880984157046849570215369659213843512479183947681908452690206756752696062637204275666821441666841031501784912212572190325964859602676201999161476943906518284872632233539573010771716656999325483354303482246779267528653909174573393001476442069301675021161922203836674184360087545427218446598758809898365839164240123299880157436002768441422934676137183627936516758893569595227827874574354842746541359079052305148669399346748298937151089091003538027522237513342177523932638329532284037768864734229411036096350334108661631351730592600745839315710100376154345193108569401307547341503316476184714774476237069702699189360873734069967484852545529968377001880862493888621857424610402775092340466527880975640222660305983440646400245165890073549560501910569833385614932146671666903527369802229610071291389512181742900113769316020626455102088094538393840565007296532394704084502605197609353393642470710077275038603117879396316404559807266516189331861726530198519523528012745076454141927174014620348681098423161363491568472020799932186302903068604949251274596285328842779441914702786234964590038274120681434256652627374207535659451531104418030725288825884165134456436380968600504106627365439530685087697552116737742225746298682381977571045978777603039886725601249662541642359754794924745578804079378334399213776769323395385704134389814355736147433471093926025050122549691751900565166302975826735497925358548807961203320284758571765541979017105535230783991197405509243526540736558056040396318359000950081444137599398856701110728550611959822300443770935057406202250809466408012361421216142722217226279943104264830017252688276653196453161961396060374637165703344172139879773690889862482545254777806806324771433429914457179776779000660673299974844527088846737986049919296910598287897197755763976553915500868569207323941762391501867223253283535997990733602459750596341081360759511890719613246253070739529138472348290417537853311289834359579512859511925316435554719881821054137583137474492469058514487559552949544116905945571281974945070550512904938312676085168887625097776112314708633803271281215178635814465376390814769565398323571022916807076642682168798397930976605149062254103450537399396145757439335130313440113368718262112315430038413038523388547380485571101365645275664457993697066209533659052112675964648269805774729636666649376259417861274226725200490412308597266051467947480785270522682416493558662759651537275730969066384233833906710364947676969471500768308193410208565505995728545286924604264891206318690361546721455054501137031771848227387289131027543737822601582585824757582203870598096007823102852435158570298494583252889747326582962783780420346266202469832149551390965197090980263033365482684174467337993565400847308788307026222911638039956157402305124939789694539745942940894072092046734328716720375085993389513843364629264587071269290065177171575763834913236913769962097554129290761074223396399998137067409450457177488106531203477603114087215925670861704542679071022299613328196451168404847454212666523731059127341160320375785253461439236502595114999946379774092675077314187876131213589871503840150060911008265421700721546840059411622874543553224736201820671421269057811112825772755230705248517268455369624295234158240397511699983673436263616101757747259626305677857581861469692287585902799806278546732834550947781202434867889812611603290538041377643520708652533698102770209496968717619225853704562315527648281425978638530964781044033695537274553976674715383539750653315432047206579413123951040148171467917367844123540334835931532801712442556477656936156311571993305012994396627331023561975775225146977213410669200340028316359999357352222016882569571672188023509740078614023594516861710743038951084481853855511007743411879785917778082857915956809277951575896251885586987741743761192222410232161581972360125103293724145956673940995752093660484167351673345668316193338278489764658260909161775747798624378595903325172959951480768270553559755876073517422155456994955929214265820238065770258124981424178565898240878913919947359068931415706911546512790466156223368099986467601150452740829371799051898890776212517379777226625245207092431058749198292844904281708320319683968013464482339286636297981084036563110669368852317598499398095759915068692342352643335250615186910903825961970379600266679181944246706150730305507724637713006867591469270377557932013860529080130920622530469545831305071950352461563943570044662292865741322418459511044463905838478843800903093227954609087612707030167498111281410055343996083331840978673443039889790755348892326930492641393337274880225843393362035595713486694776467915981522102055965830558883577255629135047613102269671574524109525643581361824396852750291905325751380810641125093731749584059789005790752291608438561038761109731498457721255618174890996795845340959787329282193551362291302719909705824941112535101133426023206621679123615656092187029241259138786864618440518419456812504480725975977731731770831764032181870364626569940003332946765899283067862361549737219311328097869496476096824475061787499317089780154145931287201978000477448415067080876169760597855727535226081298634039051486671201707842366478402135811689279385534808109868446869927418993864811891356745317790797361499731017610847916529860161108914208404663062630138672797706934844667561386118002808558968884172087781479580686138175316197145650320662728666446642697091704497153762904650301373129180519757478892673656171170673491326742045406088596350537085240975964084979355429078243260914102234390530672077749353395089987430376433531193444465591619749091965840862664510409360334680185877784725600483107292406960896383727509835315551483345476677929873988535369676086298660669038608608194243043153416710525530484653611708935349573264987595539517034134606552484385192237825420990824666836519363513049269940305432359013812747476603089473234448418054754634599779914248939810111061351669979370896392912113613987873152809318739703165195682840037319666116274469740699168975358175202478245369376011222313653596182785406130549586548879622229835826287709202440659564072356701265918903376144804747688369011876655653428887971100965975005227443252508055181526294334667096305737689886749119474668908844135562797012598997514587308979012107018766381106540368158487285548461123010594938385426705010859111493981775285753022296146202211345085572775404637744092317364956667225393329445543117167980290321099718310016716038054020603417196092294768975784730747843836224110846020827439304512680779963391297582645024444060383688582798741965027945425575448822111226344550779322726060848284474531154944086185932292637077171210196563037474773738655169608922676392130812936663798507920112634715978926860307036913650993164950225299717213849580349827973675491650495537956098070472189503102851950609738694323530151929150508520374216185201355428986271943255090700016210612749326840374767810353467134799660652345942519667925391017271846036209947747339307233143899612781697041724930861450557780528050720451326256510806766292725023108837913434428369210927686826990392877049352637986328760940435638375591708979147242756656555443411993974529441752692522255001213446271233887095302579542056938599658094779086966220960868064879039428455591242681733398232202886932796130535599961809285560531711993670257138510596209053381489553332238448105091777994351757646154809218991186072336298706374035083912741456297335300816328399177288521259564396946096542010508720456652401504181714578574397283480813427750945884741174117650877422492057021358582003803562313412706960911600591560093703555732251369126586854617192895201390503701418008598674131767801542975649544172167474821269060151145260678710484083474107105462007606903002007632839037680072685553477290419428541771526913623997335711811911935946340878176868426999440005675209241074384016481283100673604627629500561540202609656534218708059871125221772211038570630518203807989237982652164865401539298982338259756961281612559281530160306381803204786395558238740875557353053013440420075592047421842664117423470282745012449386176861263418145661791180228036794991846301696828712349431445995995322747202788125043347980510095383299909889873736328272341340163390545546313139062526057207321740048083367884904178301929843567676411713325950061372750280680672438316014077679191375411054366785253270389404669411000047555971139161463177729493598978712697582965639128900714531309271850695429218848951134573933024705627472674376462721381813321571114944438686005498764643081055091893073222516374993992048486290199034383573631593690401043316825203809071553367788628957383218856461508776316879780415758117016067411176431617389416467669407816741090695300216247529098714601287236215805573103291249027574744956700777236347148607111357770183375002958281896549272902529207981256270538740957364829673553567049311325601605088477169701490000356123194265163243104064865743152852776118804125967362706849416910269964415489169193542058100763510424604475034759578582331496084853380587221235419828862812187433062336548759503702431282517578018617362777098965145245468566661500927172096908216483717531239302799614121433324765903279770217641808493355749806055236828923574409874224213820925530523588390249443501558113549211413581071904552137438330916415114120913371992831859882262308374787197032575514514259187383401929029797952851834249525964394498297797877493738453951116860767202217040847522392391703107629078357861907505326928891192808356187025190263215367875051798287417760754813202928708213390700269017830312915444065699941532274637199028168059691189815871407158560265510317104352904800179239719464437113230691710371649638716682766289957684045786131720549905291202848089029501968773993936447131763338752098507887907774030132549848789922175486465409738448537744108950972013719447697461353936683575178779177874824192117051097666310647839643526239213475180185762400728692353920375201041078182301212895010845468264328900694373980231580515843878952843134793330259448486288909590461928726692707928990016877156930151895940826752288363119350091913519961572415986771821082345256935474085809547932435933814737526697124228290322605960279058623351209169197693686548488245258075982922015386016107075327855563056531654548956886633274945169394449555366012018305889493330397281042668905860854490026131381471189275607598635145571175673123489198709763369273072947357396264720184151308596590803591517887652940189978225655705481895800900536494225532417604116610703484848729446646004124497166298379165478930683145635886258588205005160367106542276726505119339252354823218021566788152032754957781576298055300708791365925949359016088394444376136929195206975367606716829153859255779130410984028940999901671171954251430012653418297640468862528767854431933215504886762608304428372542443835959446905183541229197534290600408076047112680857719804404878312504911345944055920256060883366616975587344413980745130684078249847279396903634507349448977448960335232985885187208576961555363228885255168699048184498803935423092673037911316267446326470560897219029074775041847973562012235749821279981901338841694022558560352100486257352797508483829845872300399964753173268235612598575752245988671457430804370551410004772654666370556358925756163992764186937901146091465717230058584976221854835419431937707517688803993016635193908121694044058903239952788567704915047198798303429474021478835293495253128798308650293897924867412946594560685973076464600753491097995474544610824139732384198510321911750941296586047800721117605183899111106094897583648479912261155572711150181780668626469193589211675880710387073893028951049746522009090869222283091942031166331176804293100214389201603090700506621752285792654637392654814880281633606467150325863271615129223598287499676735488180911193390659448665463979096645055386602791809991254061248661692530601927551851442641665227348092258422439006381671943785108033096130744152243827339955233152731466502862952410714450057247757313707429251465241257774485756517608546719755762578587201620424111265814766757204798441068789930819109719625636017952815879655437658064064155886453203057628744370572246660885954236440699304545684298201804497146299371512194448336689025916455650794243706434569172634458135866919829659564626438664866640219263904626774255596132911545502837247662127204118395204781456325239757150601264658583159678754627961270428017691163780023489148705479248829970689013608579461947448476985189912484061225377445257649649546213457070700035801023923087111245417133124970713954068072527494172778099041417463286824517961004528509430185317062814156970057767677603968666289474279991454969603514460796248457279220369966905218551062195776312829355565313118070260065422538329248672614421131133128699168974161180327359924830808836558406475196004051953614221823917441899059593064917172627108697697838893435488968999287023647778416331018670394862988328747061507971131644519545133014829172739628491855500913065042164159552965571946294096216784159525715000321805773315656075722478470741917775182265967805733923184189677115794998153141354115754963957102447382641324149392531546950144273420693671155949689921041114010570108705099266274181901170799327903398001026377676479249574650664419747268796166885998368608594456899870760946641011816510004126125325893323189295049357319139947237328810971694655881927302863770115632175032262965855739121676065611569163222492208762774119215816566789311406465330662919670219053993849030293827009167233948961469554325716322061836803614841405883192829877011290713791114821653585423106923075486312144003764118500134782404568646840845382512903801718785358785824858199557775809363849400859370390191202693448203294369567444730912161704579018626746824690184862848069957768535742346765004091090004671795333024985618154180842266379897771989090128705483770090439395557611941991168598377894222906079275591960206760385810661753544947860875974297053097382087622564078919438731628677416324387542769489968289744458402542002188118305880401188120662395368245863910298247153924709624625556866010358379969427728150415539941066485137002195094213569174162397807403670263072783080850041882306388590272462649468454007568896479525058826241575722567863807414280138800133014812382689264005822746356138058575154274255293873699719114798762460996431006245958043430796698473839376757186403591924546861983957926051618400410850925101605924166447688880981542155149971836815820070647481914033371096627307766442646001296649103875497083088293593743240771430292345259915133441616084176213356591212010867626910080967990877913014875804061927442211293870197887699547819928229342836709685048295882773221809816839616619307371341291340051572480150866719567320759355248954911066147938301386134007725859531755353381867947279834447948417711112528994481395516729584232173024979461271599722505531660212296890318147483922602907469233326498353147021348422386274055411126170723611481698448064052590202099510162508909170036267590441653430903013165790261614525252749296479040599579536988143899926078792794257583820837428338849361198775663209186444642165966060347744169100083494176547893468065781328963921708432289336819521117874977134683815746306892247858926519693593796146780625521273566226321509674337810275110004628976530054328366206127050246744699654997568193626957966281138551889111349502021031630329797976184949635971692492803183015229409820684242065260781479235106671551698163311497853565759612402161242753542365033494239511001973108242556753957925940005714346787216616884233652332023530437283487908520701482453232834246559550701629781214806800131067472303332248961537274891826919383914490473613224014200452201658456385737967397077222064043148597415627001625452501471707914642755584279476910919516884029372323388150983645375483899701529864791057229347927027231465596355041052986751955098126783894267165063446158418464226162466220463144980031276859546990063958824864567280569188168014066661597496742477748748130391934524793539703661532453819022602268800442522460887814720123600857275002084306841351885286895323114811255501570121849264048743761758557447208529992073989777772094233781296120299729271794137860061852287637521322268633374341100557045781299200301187701814387771444370274256980770259688952110220456913605194890659287836596874477640166022401587921508621754041967463089163849769456089571165871961748923001411437537756279047398399836263469172309010374757437347580528833552818598315672574674683884760513157574734034171236688744565935462705701574803159779843181727518604195961312250146831349460500991291526007753855165647511894800374809187201715584237856380586829804579293004300737091274193077585495174387642630438835927255431472775703088579815200935793566176871828411648503660601021714751229468245757994908240312277259036598168749696620372244091003180580614474482339714952699087974403857325967821999336619286641063595820968066288986274424139237321872314399817143740555263577487066421319547956424532123396965551480544312769023306298180731071064244743218884697417060659923915355846547642857766740682228832672589976839872451806414673304005729522491173053133394532004808603017281259866299983970820124282400656839987157647110184269940568888999324311487509586407138020148994291460018233235990792592035578368320874666745781993300167021278384331203452622905520649375733938588881106123092094483393032462038716282190861219710744981619912121439811566597151622360030203339825569130600172980423524657006525968844850806783793615259331767698964938472236383268362320916509149173527025363613028981532205807915561866010870915099983198394301080824915897383033038355163170438260910747219797803263080298131985763297373500992230571123879954337382863692426254513064350244443833129051475004917735134460433090395770177985143606764814532049656151089925844655958101447369462509808201725335693229876424943468772664211610565797368899491489587711902575807938156512503467080502266235812543474000332817456851569148464107340661704706628655634793226555426436555830150634143223170505466866534794352374704458426702907142885533386393904697094223553830390522311029421698753481239716683485990840465218750097365266730837527209091850889948688023422988656701648076233015570994310814499854128522819569200750718611286912587486130221566927667501214098729665359317462884347931197233787093313111584246940524986951756447040332228241868272999003383088179687277963941251537683467887053003855704233441262731219957007128897208763709133954472183568217394042760901063820012392683069280545070504008843509362321078604035459773832585470367091282236059523999304554332376515823022069817875259563273762352356320130122214930890047926195270468909875726457512823409758218297425030891041572997935311611560688570599052971672890413293096182099884699983808590270259231241486580858297540038909202786721966317387782310668665485104977772268269263487186132133501097083320918784805179443372974787802614095760948161262301941444976905556706898329690002963639495335901927535298280191906076350464770199769208877609692202738751074371067756560158138027761401092962754263726463877075596488288792152968779280662674581957059667470275957329949966407625069056095379580042927558050427099504500813109153831053895639770071287158921046471678308287766980283196761009684524642560803140012886675392160892245399433768130782133314690810744706549624107263514004527822982934279548099533080610358236879434929940402737348853350623100823738014441243003476555625843621577589139905788284132474436220580199207638250903982375815484558699024447755112767249007382082414719507296320703786774704179944431879192236855251368222083411190998391919807012252081988026085001115469818461756111561041509510488165530480330690213990305100025619879712632702182460955225554936505311422771818854597681609396364438233571797416473534704441834820464278354692978536793405226710682723961144498196266703669690666513758010467473389313524567428780426243580608386554722161733251428596856447940095430679908733538153558917692408243607146065314769773431187109419138904546520450445334026310051158779100318783998744138739990688241687087064294081218795831201107728917904172066817687273018946153380858475048698008615203187508140318669718438958481976170298461595135586838720208073930244608551886438929850310994291403011044374622638551824545832812401788232589196546646294418194561933451525023994916373743299604194247837413631114395388350234827970846790009449765106438718857986383691935667979161286875812869491909726230124374044729908981253632419936442444804353188125895472656194886639737398458086751720652127769689872346040218663253089939761327627543848977638591265530178770805390043201172779614100060423485343162056060227282614553672134119329166182158099636018407521484183979805750983380343383283211628743293077374757822418634665641986313578198061908044228817514858470321582064536800549084245772061262879805052022756999953025684839736337668121876322667451349923768008535910432119796088982919031256027524907470466497693855732631335955546362980785869316046381668479810444798107491837077105365007579049821923375035475164860822317473513500513786178690853601851347955526067310258417419302268660562188282456780213163973313319730700490492869999777082592013536312544759919123383054879422573334223444554288984630187608874933718749262720589306434060747353982932567165909553284429168392757875361495943769923402970009456005159375645667996665630105855075076909286330691238000107011157095045202326600488504285261450250594501499522529463051105831387393368685033971644422159292963054017473646570222301962270845653968803247472406340171197949570841832806561545016651603111479234489796130138543504904254863452796292974426065008749445888061658510383623615360377724982888278872490896214252805788534762612777779191366055832702526685896607185590881949060089327218918164517597503235588579065693328157915600785259412323284581804048364362089789049295782946731366144866121075663098269569024762463760846760547984793750354086983936251950151543432509329694604393864774480160291139347834359217096717474840641000687493934830196036708754876958155352532298513865303982690731699590419748147723677895812048371249683919861530508045246902291241709211078652471222084032997144240065889434124584085160138259522451156691058215366451549734003488475643270126809589128068450179771717148699407479386752522362171657492482261438751257019074620310374031871245742345812869062979350328774209270247149212310897924970774788204990896599421049162517088503148476554462588833479009775822624854755683337361745844434441142229116677235255170703504389680449645955052872147640032850265625138581822957251124973596804586193732357736030366135934978945115379008463397111473237984287608266677348406008901414384943710248677579303552413955357292535450317820423579602204019636763154871236133467765560445924309634046905088210641974500206724633804076780339796272803645414773258220453724334419422478605753785409399840443565262607708718437769109779423416756961616409221523432435873777008476624247714061799171765948260723268076385603624201261487089912544021330381284132039979962152131202896381650960488412673782799325948577664428828742947718001250907178544418823740158289123883799275259758468299164059221048124869524103773144209530667632437089423055277394108690410637843657066853888452024458234719562560532063458621059880041960370284928747684848459396685996382643274844744724995067560694028831451471372479889185409448921653098406181573183082062210920792190652920396627578192243851505217949773109509302127181985100451151751408740697729203541963291399400878960531629642951173003526600120315884163469963205447037049711707481541549422129146646065225563308585771388239725095922112248704565307633099244143083982714428335326527342142132398935536898101608079031252308612059003256115730037531824570977567631839087604117910214452242064452465807722723507036944723783354765459080151649007007239382892827437395499152843848706751007504171534962840533447607283764335392584515068516192717638844658645158645267099696640863225574891073405784547454648198450490703030862874695058860426445120040913768677176933936408963936517189917928699088124960061582929266555161116331320956536820585497175962981713942653507555460545964931613087981099994739032556738144297390188274550392579692682534830535349774421569351408413914957171056707659767057632078756033292039617759935794485184800219919708977926858068953913639287546808891671551821506439887123440156815767868826887409146836877761212046977980754329790670346370355178867227967387574878891750076784266728168792653317705669710464343749314034415543061642172834115705095927249017628098483154563321708482277886097531687829677527135234275182181869219422541865775649951616660367756774484598987138112796121481535910349717543582111928879574002565659618893803854091484129413797470456986028451589886922729524817935032029697196624325954937208863711231066781821534457138549059686062928048487354844771695379970769119240518190213243395798761616121892255884575597777348825022756921045801227242809842059866583132658484149020481776460695807027588061025283752816554436177703125969254369682961003279629414064833575168436389975756371145574031848368873840452051425990455175403695189058907962438803013710852566656419356191039782249053525419066356699121347614945187274310531593045002352781150668978763011968532722371771674356665187914340151081788590015163191977591162102786600572357971734749614321018898920374651363789141104460237525599946327180035185042489799625242244239830388351340320633150599417220133098398944038977197157645556729914851748302141495461245869712439925395028568363912182312850535291487425954882308500566535215239407533061586658131344394448422592033105065220399200032080655260600331627313562990840081111399649285757514168084958478764505447589275802658703379235663012800628053670889364000609279262076533603930965859519404510575160559072925277768414377602619759980271179877424536756219025610149849645819192241298526146929716301102097773000835266513893031110664710398201419068297997857911000039730847415439080341532392556463282657276002942237844016530500045283672756813952492360429711776755741246122371833821003166670655105654216436775124638472012258833410149941478741851175276131981814549245916490853809747759220227624059335037132530199375655982751248601002666934211760572369449687477873648707872895307502799363640266927706342671973366020398262005341839735124048593433517429264261775924917208565862941030163141665514345790360827666296814344199858513599300919668657908728273119059129766299671017113378294896628022396801779118012022131997663319268468369085142072846424280993161270327412845194856171726320408153606580026521858869033547541715922183087802846039716284840508146722195270222495521813933541133162604796692627246592920046669005579367519483042614248960317635958447564918759069098870470031925949160429385072121342888407872854895960573921853429757746443471184098298210588974557530005086679465167211991047441563357225313741732598087457403004928077641015132899904919661673913687068677332455224455851543271851913094773067904805516522576129149042078060755692049129135380598818521118586739985989727466440255406148771372105609981070675403305572393761915577923306215756295825501472779977774254550355526658710006407809591251397774026039974126795016561301144903526954960309711753430104852904968456089824388086559361633341981691496203908661139658441654276832930837486088955814105764124690557158153600933793337217652713638000008738986071507898086426674995347924046483281531174746300499127537246646117651857298474583591062274907046965459483388562758706778743552177516946653974676399598542094202942087386198423308343655502452411422956641406487316965959681715296963114961636142311718005088127528819140538000025401860605357126125143040203286466198103528106579387662489744070571460110202193452318960107411780287380515390671621269747820343124653326368143205151388777803312242800375463574199615019206857408930795785050405030920970360965732324070929478517938156248170644192761271154981387318479124295976471894483043925610710800841187456458392712604907700171904856672883249011790559701606896595171444771749279525052617934600616627792913818346960506631464561851398562912844280240274180967220024962699537655974138456281323609640374497463832891940361406826031077476003718223242757392673860176789335404151829690312495843403757386055181866912009608974674735929607741138145675669672997657823815325114395007205334606911947636837287076392110827873145949154993779537122122097364294698249422229064492775452443353876099529212332117862196047125443018173890865639545833817936425904447438359087944042369517000337876331460434781200846167065041433548201826862129592766560841165636966299016706328727963664509890209397433571966695199009927010480125266748743514342114631204452198671642850781015769482287884694901882793011270347682247420045880076650768941173340437591372466840774628637787999844176922159991631673695610879163560762510394131785740113868446642564316849885534907120542360607400242101158078668579593779958348924411636666076017292377298191627335186567463392669330519735046858323212364486008512665470122293722173550140180093645731408885622418452701870020759495992155463235621354634161475647292193908595193907005055064597196805715443740165165849741657578527719593619918563549793165402825938288570906525876222574787562786497722032976465172334858594019552997648704691445928681365255367952913492125875769447640700687124879413278101161481299143691735609670352207237218306107163305674089167967225348440943734349509403802889364598507476827178533305661413965444002481959762770173020697653117905853942646244648768700693990484392112994246056633301023627228418366757141624361030956243552045330999131843279993381952704081954983108655662731232831612920868436351375420055977616914049363704412261002983632929566878498993545327071463730156781451457349196463576084750942985351542038828553769916122927470282216315366871537693273771889005696870185064746592693820947897761800734732984037061489999846654780386715899819265246130929148087967942309071520753094024278595066120156005208512007591160850811384164025710856296792215032194124009614259796487901681309443966292784329297186847851434720305659156783546325645523451901405049985276917936335473582285821100827481598144760364335983046431261589758672463254027050035291124592718997430860753041474882401060269727375401694009636834996168391532788638087188524735653509046861064632744756046012345205452027125916540456276150999716959473630172259777310793125890951825152464914644137366659774354238869649206258500763059795905712065119804147903815820077861988263900456105521398461766821477699256847326919127684899691608074164292290445818542456027504849763391196402374215529477078998691016952475757502428826377103246777105574805942771398383322532373112561116594275688557603490926297837328452411202449526870336910916215767849231504131093659491336207710959934985601996087523183104765513458746064594314550521641569324081287362188538871367978681573599955397904723660851291378869508348763558466620664059766697439718400894193762542239278543906144952894347780838587788704347813614828729550020839452647702418116808887667381040721605458907269904554697599655452833215580784043022606605787817704941867040733866919218477523163916088556406002362184274379097869881560335644900957977525374151896435484662844111908504404048816778590078625437596833385216892689950033566220020552055663472870475502935747929015003898480753756048206017612480716576331529968004161063634652328054187300038995937446385805166231563591682518669041118495847876215229541168274159068206894801855010777256847653514140142326911866186153925542894095300164525755766231714538188786968960833582445394267535501225723441073076933021696052682682136547415218064817774729177997687679592188032359552132773941036200065537324761032946082295216739473789473587352459375498286141510586918385192736563719631516495798212147170639359359865424845072570345273016567637746293747349822395932745067820713561053787514320895426327387892816450526080799880963567167875928822019516333166908295164064021589462063205840423399705001992898116503468180159001952965314739098473180494539230594166852317576528120450171362790085354554074565073287202059119295051664949280086400961608584026806258449314026757021527368188696319915045757260100665041177707603377358015904063636482827306179642367066222021078633830847918767631733771412042146239017953586490495859995018627693068332143827232862714708130664093892525200546061297342397447398738989697709268420023507640611987433229229483808160895912436267653590778373454572978906225520703612074213540607125073521437173402250654753368490483310355101748390546459569604430796263796962002793792148359292406159189402261621689762731131298869054299797854263180750674132736577972853015866262506439763569886156499554717013658654211837602147762676797918982594736343398365933060439856414091503378287274661200760635615333694673637882806767994894339918535147852026572518738762845524931338844088184971696057204651194198287570421157645386054422631712075999904459579618393136289700472901036296709903211345195574886990468606643725430757918842346859291738873820026635882059827978695706497552341609132550858351737228169665670158538711541704991458644570131865589053489166898255371700416119112860702796061824932917197998842089559397252359065358243408609275632601896384161578256603820250867506647200794191515485204851400402190738275720718094696524971292382013924907806168131977806803629731919316890861097795884343534607918485125009440137002484251419471433122416589161661364931602507304673766137038881630231644207539582251240366094077429424066787827198857192515329213980495287788764196472867604219864607188925066959996582009701278570331337391464655239508879995927141709183150921210639492143295777199434928123074269269484518738307583662012447663840082684893965226263240921146249649796694164896157144540219955838596024851200521479120692098288025380039932691138727869369683060070287499499962041913802932054612374558533108165983255127840308107454382857049637209507420557591939042122095859304183255220318550693254383582197481716052346509131225138227733565764769678948763757399042594602875096049294507604835243771502061180485881692219446090723775227944795225134221317180721774940968213729705214626173784016641609262164418708964191243732561932249991023511586032872392905122107835830349836674101638484798283226205252077713756698260044262803575940152386816544837555584979566591278141879878930846897367633446642082618458804520157172776472825947924074850068742023107653811692898165756050830722505333807776884962868890409177845994304521705941014803401776949557173189925745459998733253796262066248480865091622333007722175183146695911680570231172206178411153967308334314201990431104383099380176333753281919069358616399993325696471254367660452142113145894793271300409264204306726059658633421626472561904404380536470215717591046028075942921816892422257798227824908479938983161845101104088598910605075885140565140004025654567642371149257638633284841462697349586298723672225633926382298471283875838228580546034723954348601299626118314514726957500059246633023029119983864283075095764317071034897054452962826272356369205460716678338214422788605153209330162035527846645770231418322116630520223333630401990953792895003435586907993365295775925058412000890471839618072754035887889517960539259404849588142058793829928782176173838860268828644617710186476037377236185609613240634541536963609006453060151816252350408045569995770799933593972469398582274113844647540317976547863132570359900028950386462028022385462207201522684951463036436544176371542868122699658456661331914526867427304978084774942477351792822109777395543787984759079404070479427725986909323611485504746565418651501062640424946827523663427217255576282234293232831621138471528000898866872352307145131043189903365455025112213715705847710529477139609276558088394533600648874691223362964838635186137745007998887440396724311142063138869690994652623199566613924495840366722840856131962956402713938186222602585205866480674581329316517729966736485106306942522291750274565508439047174759890536781186129248292593055506859137673785939375615761583727365514648233778046676200830336144992430335885029054360859099963436683601361482111189332858974262517382776819553933824147812629384414388598947914174862379614514915255537819919924795144388834003791051948293640532788270028925384478853770242010184841314644147406038500379780804537605207758148078821404288417344411109123137304862420666808200587580274909549074012374734179123058579364386544383186044872784852693728988463622200597745443789406951757726155301578775034324164029723557493564283700531591897102732895139726337204948923821625799951232666417763402985007629958258069406295748056419900495376668936732117795744865951884017896563646503794179568134959509801257700789062715849953260208681987287527714979870244487692728561347931572015342995834585846673895751103933149629086927224758258331389921962405490403105198019624956877767485952402343995337557440777109122869133061875579145566372216562995555564022781044503597963382227367642851345087130170627444564705219472264434606144158793227335122596528801180222532090782055150584145820403204088805406898388380258274355224790066803987864568819373241967794963400090558120153106008734618836579869968348788431251532765402019272173832868562108811946499921995675262329392091130194072755322547834238998200787047241997865279036863381893605381369448105482949633036141591266049496123396958771387866289651142605112032019819055339933912064445413181847409484642324740203936173799785678675293718755241337348129990033817127065972446064211984489674872591332778568926126178293002919003647747869612397481183125662569838856757016864580833246747190628246813509676180338338597564350968601396960912392745245102999752952405526202013722107938908766063967260343360917169514787347385577382766969757008857289224335828462226475543634339443904758493101435465390317107469671090932419434623770501131538632321393685145379482903696664305825790636485654434257220118395562197524567484118259431605738362837423116368446456975682869499245537108325732897471009707391989555948568695577608024600182410802442890453070480848005832145739105586078580849230406333833180947336763188127587326746631321524448378492300291856530163403150018071966672903858833062027799972638115919643418932938289723418494249577033268325392296912277582732780805640080978593009868338094706333142313036744195300812634440138817298648633253989082969342372876879865620175902403729959590127368743923062616877470706829174897809444079720866941307248815999361954213184705518069070939269814155327796744827252304656577592071289191344015060100575992023900807054064573866648476484997795900946129754087423347046583472455491860235240396467087620236585012605742259502477200062268928035201409598949506132248666370847192223957745683829066696736693019279898288178021006965395374460416966406122480130231167248240758268641496128028030452289151097820690279575940199934107498502543101466764287098728692490934263470690861601374453908702886588699814697996154529824924738266958621514918365791380811873503148332737891361538052429764745077807214684995633242756653919982995909977307341786388751352605456048199518299478642971477632781726189732067286615007108349301366453958604346464562268798905608622965744871573168842408736289425476115537006565990644668502292661111815183901678770456700377575331865400290253001704526548936854904318114024810334993288338794759756579505471716363748262129265920006762494915133180325790708786342487745648243095879188489579988648273422689328491473977582552394473533009750944371615104176755764912276799221087367806419590365200356767515619202634795627846515480506388308065662134235125947732407007985879140007265970958058760517093416566127908420986083870987391746113339408528882378771064472566719471539184314963810764432099650079116552147464495224969722600551183906657820271529747636927077380944064951883636107536574960707587996626298838933478833122393712197295226099061289127044268619413853779151279104821350677498416346985450577064733645972643729233625625536430006290128912102140959460883844838087467865257641511376906106595007984476332117022267781702733657301351176161137303140126335754910344028809901587327121753908474306597526209690861111693749438893775260100306604637264017044917757693717552133913423284347405081708509676132656986162075542001859101906826530786232984303123242476509053611699134853583144744580156650033512537756380384224619103991418106114319311363363919333871317317101362422620023170099596414182173683458198001681468724559569671242252495094537969883524980191345512865675452411077095555309316796779511476166661542042984211396958660645440584690225215871544568831109589320293090277863751279412357493627518806147056090819593268564730503662900860240018992457763920130937393727852140349936383413715038118177017137916402488710780346318789837010690916351031193261825158191675670158866902514967318032130594886901939946194203447576347405784647210858187947724323838425259057316980309987843155837608668805577122020541287575185906959408142749522055027430181662291166915743347148421098481832754541289330398531896935112433079827793106942631539079729964595536941563174128517734122032225946415398037804299439111790825042217537608830163604686054141717802120081451206286202810512236689000743717504389531816513369281216325425681680637133707808532819059145405667655607809370909360445056343722938722911531990995344837642467589006304686332805384967968136356954871791885072450919460861694896074376986154298272482374020850141420371564795244897048381473122151591527684815948387127701399250221276305556823498091428716862302366509455933164175425315008794124779748657156835446997521147795574856787910264204669091668492692134637617994953987496656433127277320808833754528896713879553636797240434661659533029273328087363120700078346018974625478857031560617445548002228912530749323669248313622986393961227802308173167818249541791416738083616197181442647513030750646844063399499732954996544978706360308731723693743505093395002368597307600711692356068379707204282656558137374096207012776889306129272010492044203631816684072186884450388175387620784037493752664034391336166593622184582474893948778059461955139690023919928385204001492032307487773483493336635956341590325390872441050293828639882665544255844468925158079992814186633900531147219114924661218431615784882361539530268980641399028626306267982391758044988254074558341937637045767615711913618255678702076855091908998084620579481291024329467968986817008095515026342149922839822019678731041645411438327743875459018086008689845979562764572657834185472442935314044070556234430461343085445628685456582120274985729226214250866211682804955942789276691764130249914042427995845404022235680806536654197113403479021631445628419098595131235714580851523345407462836781964015564080059301513970501936043965418551416125861790863432729720971650707363977171997195816689082817584416900446249204634990246971715123284377767282025399015035801746902384773218757674154420481341194058704952801829533101223926356371307227360339018208767293435378371080017478117469923802352750108068019312892558967664715372592817063968029602079645214263755012405781513433078071373971051403450498326603088156604884934394907453978108548157056739601697949842233810220521403602086633360083500876008798698972510825711401196855333918399602472952168148627011527015603925288400334986043476239642052921976369326768716867778860738148789737679742268582033844644196460106175068970731726072202294279749467645187403439018491686390166075334360621102001829898597042988581235726402383947615308378781425622556364044071518607665928339339911942074163051572840751308257221590422121282586715706526477821939306977404272982572033602661213611279790178906130415687006878483968294161184208061145980993313596040822772498314981095637219358515905091379385662862858761195960120493501223981486144687814120857466927847777725597108009110109563099478487116098056394948139868890607054400076609417006963715488985437342710160742868329166594517287953773455943808283765806150825938488104323817500402918916649379901908921987693912287519205970165124655947591140887728687403815277899027827128274038337986990494298079466807588823662412488843074124623863148753510621481229088009813445902507610249567374444338082061415684244443709816405613707986911699694338950357168381361394979266149396413427067938816842865323905168722055658062103868524106833138347815572890547107677786788555448527325228289927808252822566559726486627204800088142511712339617581258772128781194701120553791070269540214303356381779734031299651515407711250837708323328066173636182641203541365996450164755191150011099753388470748825450212466601561856308855585143994573266293154922410266858866261596193659345169184382615640720614090901212479810729756276541714972807060162985991371032922974189608433719513694727101378535669657555095046207358835254773609592822166909407075976019947811047253228684040405368187896971077079266178110640552277794286410985057145567797802654317929138820600739094470717513836186658246277823722220764164754885451162371842575884292602212657544916789274990656792495637421780777648094192555506024911281871906810769784078681400404342037831196274982173644268036684315362359044165708333784648760084974519960895078108035626711275517038035257784522356314940376948894736988165476063998754232826487688065069853860372042503511446191123690905033174419691965157647468554825827717708718413910429529711425679314347659694636871154113411171918992954583161990901262900397370511240527405751931221873237740722572773686059511503077435175326952076523258399304603570965279842159283513960699954315586311815927002554932364408737511139461597800869080280461707786719859304709811015937906832608794446664619349338666835432031861828329421468033065913053457823306741049408740056322472260992884911380738614404340147483260341120291243070441349747289589140090993883978127439576598145714959021085462152925140458490282683869865723289100580808431727432380106029601733288610088340415274378998320212811716763371882499665675263559573841749597679859164853756404244806118237480366328789780977564036644545192368677912817186083052999484991193909431726737089149435629070609875989863752536301269326115460794164465034206476616277865197731256489853028028743987604077156744043052856958240314045183810339126244527411775633973053937260932259383759661911077589507643588248299085395120765123221428398119020920035289195570040746956375690858150774418063791008173635814416120278416520108395161392105836264613624866468635030187435603996085663441086384977787446251142955399446057485949620310559434676472763992231485653896310921285341670304706398046461377618874804267320340594497067436155753118282493113193397110515500339755045387053668948018826111041201398300853900846047834867003826836883369565579724331171140896445293058864033121269856374713693925050861617222750579590694874754949706730888253866880413390359036432800993717494313607200345963465235187762399456380415783061381574808759830530749654231493347678178842137910405483725280317534600820793750690382850329838794017136609167413038896049737598899993618576841413473760025829282419427416194703905770966851395626039704706757620552638322948531159521213850794716406919561282244079337999956673625078742992996142698596107610609157587146779003978224848364745310466733442672879868912748020399901052433007060877588467502148019950759625525904960026582849771234276387005623270291674091710977479227883128429494412999455259038606312841353291622570279342388795712103571572195257816982869924969350263760408636508711962370442384450354166075655188552126598449043206025607401190776508831669133403438071225305658442472630631369660434832853694162312074929403060143164627945707050788194612767322911499792341779075752061171572433237195427426740525279615523925309647789994741032767648619874670967831388297933967535924217675551262175903260984754416974126566370070381718412146538418908457966680143656788749061409598908836632918476077306378196953876096031572801627998487279043834525852495963522242471418756857870112143521698905066520451085060075421262209177884742359586390131355129326080244542365763423779771783072806304650467919176866995955159222214553532786889059048206840682086557428793442326664821642898858208364112686819288132497473055522645580935875500039474690551739162023100484170201891191589195595491197596477449296523344088406654775347641669716927559806730840499801409457091630949825960337458957766446711527438760241797705441572179481236567145864654828567215054313158731668140038740040822971264687010724003639043935747992178975592079447405941345147462521746114563127758959090402973019457162632718137232913426196427172997829502108199706339117311491639242287440666147708230039533868881047234863239438936780055683808787797514949943264476910203727006015114967673899708110709014654217707336884279718916418020986176560223582310781612843716054320307726307098854690434212336339977327160966613902883930165576095659298799599311106227532331676380178533736495587643590338875252667085648227247042853363653771254222952711162978851152210914183996736768038365935124016493388112691628651895287161863209915224268699381689895358879905703180876242499476151467527490491296694289989962165098933169216246291736382523211981462347811069846585951863774196464206112510873823783996225346914625735547728588986426628927682026857179339371058347966121104011710571389868080510471853743956869131012611275572458741913148263801192137910984567552998730239043508254641791237994805280877084516283314472713293260907665246565485679760565803920135577680746261745652316621981503376035578687179668340891253384519052983688335809172882892549624459193206647371959901379839832773579972579850450791274920693295900770592774623290269529440589140057188289626649257664977711767994790869218781836999533719753656730080811577014334794068431347985771370912237241407018239412019797185203810562719264094972249763071228516276801182510725980760476486028884099291075332453853229036267234471949615613737815411768014895043500338094851571041840755974633294190521197231410918592541145101737242623878472206946556115706219502008294903203157134638851943307118716485274121565562827791740035857003471338055069866121849001394479689633865156055811417064911643220792052634252384425733116510397883466982715139493260018899087282880283455572087006651424609435848632994656225552127498593626318116963531983628193967928948962143174183113146227484770987854289794142514242270768298436367388971490650453120166884274287439331823383826375286909753216269600869564602925239887450939687049921543752058351387631847673991676682686487929017792261777611385422156674777461973000172103797010444129187465218012268947529746807154654233702372317484912817760092467349334634102946571590830210232043951850505976100806718316859711409157581137932004930968497266053521891728880404539483625523521014690175504855351388653069562529574295254032217035217539970888374778609220548586307444482527159676540901187465519753480863430941279795921355591979334013373389243084315896563091725994259696346340321944500946657261536503818120167223673868308608083988195661084486067182935221497703768755456479492559435964397317790556630980676311464152127673478607221507410488141440651041983561474109158149726644072186868136925135658926760327750159324693166829924286791959796093388555659504379575947673126456994622726646651288415253149161215398489924125496253306637273838017697864054902469494684910237800728417716885193904062409243392068055313159522151495397386152498348579480672308650761298786506015787832478730946464181859016448097662263105745489205682243817804854998254252172708470217929627933061583846635198529057764305386903331405574727505163390913370656121004551739882406894771621474972194813364616350997156314383762578612783470921783674965289899798832927413690573251760349669169810128662763972318883604425895462666188921571998129555829679913476530676002155500095962905063873305272075035303524072093874578895615342563986867723484275640877566922839272103512272552122931664518954737580945637184510528152389591020976395527039601292920909569177708553769001114779052769415546846134246272478044914662548692120842385441106129881620152545735147114182221692074786371552037941772664241493729340514664135568669662719771660431770163304162640062244028354457777003051696588548158083453330822951028106695635289153875689267250061624883028985469696531594635620864978855592594478377013470746878018554174796448719575302114593753803489581291708481125864009032368373562460598947942341454061868308388185051496401698690315651506649837169675421188417388081018109368733084064230417973142499768053117101574409861457563302098646257191010317796341892080240455456060558108300182527979129943908466460791385835072944091340245611991954894332496379140119754123116408849690199558295303970438065233522932797384048528175488383735981379144032276462233067938143906110340396675319408695334130288323507265990357002069914143706392456312663691662115489819699703264055495438342758700175101576646731798226754848836921168226862882789121261641521034614817200530941728569484447417857271003507178315327373183311327871927634223820241452132556683104383585225404948961931383575753153797312004855980337150835835807952258910963912141955968312668756946604978201205472186950918413263883924485761535776942600582706587232729521409342044615177170204165046484698724408516895259783877634078691246151289788185485567759414631697874334142993911109375587075815445787402723183300592665443706028651151898956320722486026182345833710369994920065863382983881460003718885305340277803391898410302054913336469057175876149600238114157232284552480700469247617392375973373594468906159518094600876949614227751655264134624765994841691346187027607283168852436412807402472160541967315922091919164700342992724209719958319326834981298892130455670610787867088601115412168278831921423369542644561175849948030505633564771835717831020995274367361321159634523100310424059059987060391174190968885886183848624266237379238663191001634099828216165036932737040640065587166499305631511369333772945945175928694722837499752980319151356302756419102166740152095444126636685722678159146039095618379566626660226600291748358697997221564655998448922387269691782938475715460638189032763053341387221932980576310666842128506992652131702737731215247989492230561626669934662051918267269879867587283891085976631621736958430959526342943969486202095611202652117840344775854694645858387345728268120458144314160057747626714571599759779218653932999013560979999932477651813017817023916444865498357713294887635154228929776644352429598693715387375284566912059055785544934712291967982168548425714485857500452599696022310415973013282609908206345447697304410982127723414975482572298273913263079891456377622933681981132729640476097175493994475150648518086399281340313564882365272953313710425541347321021453738936558938852736524202395374103493380875964187279711229772753371682975282586424872971147183783988247872140489279850104540492753946398166170646822104990870418794853461334134149970515446408133733928463509322381923388855805512264402628422184102625442146827226251170634603003064615165646291769331054979944999541105793048855087969444551424711265976792157893222000018197299239384908262223120508989260301557138416641715629696227317032695123403402880457517732373208386231580126354247023818568903318855492385645099537382645302202388574862636703901647392153197100867709422022908151384362972794612666561554872935066290112302757451675790483432699236556472666023251796070907860974485471588975932337076480936827200824571842643704556738124804786932684044052686995726699020433993014407529542529112933669727346660102439531658976943624555753650783127155406816970308465370656711319995231797917251679153103035756975159438752706286135704327231783066713666951823997072672025695352581922584549386810159143711240088527137130344056574144172994465430084460864761032968791271054559725253837690807699531276693386894789669900492726587216183909990490551717273157181107419155785966464317565924342258095579978367556997206939867563491227639023408333985047769637049917974436963832063446058922872231047921209697679347127731157423203334251796711608409030736789861832913992395449025607071222919115160564655258129937141581084009639796891640232093475539357224925579398465596180839573673102227528058746813582608489112584569411137502693594148514481374674701011542044143060902079760033188708907913683151362144798961340055981989397898172682620495667468180089469267196918307353117802705738539008510633790229875335300182482376993703019674135251104446531900263665472262961942088866790499393096617457452340103368871445649903277795958353679337883705495709057711014522861463407370257081188026234427226642211346814039883065487072864968542984978131928463848753828975884769017545314259400393488289916143901717565790571819512063857677135789278977312971470190003517799901672335847570659241859408571061913218015885093618551009344359353962184233416541207383195524436579434006973867126188094334329246658082610406090565849155335592250531618251102585128928823030919245107627714061258108184556695331133063292676400592933341502258947125300139458618090633878728070731077225201763418459460492473782366449143896091327526709494398745236685101608315673802776850796535874789313868741127727879433560656712276682736019129907947211556895509539057261678855499407804772409762374530139595602853573532372302446482705246324527671788631583248460808765490057240953326811112658587815780553287830216457177521891234075763491232053632939641665248817529731590760361751091709234357636085659749612413527980549216013293724909860231424618116460434901567008246283673178065019598737717228045321454462973680812641515652173038351637198165584322185325933522397949968198697044699550000732337468438161465939970304361988423061006008550831148790087501710461995955633514824992031750456376960580068785454587736870983761889590732072109890001513923046559238350943705224283399261521020419471452221531045459098585896013231706527916149751698479234037537902594582533275509173240655120131614156211590712483535910759469168561049144422479143544813731931590679702921384219207487480119432555290687545352761326622982909861561985710577653074321438624074853012644465685542224102698607669607725931049559533429102175283117457663895313191541257489250318339959720910115833683412431807928949552805248991913733713154593849777044411760075085030349076524128772577273710459152880943049604108317571288858013766709458337210826072969399000473425787197345583654623797606059706614882050217412233817208782683001746511728794852736663321470961010430568329096271267933629984352527767313598992530090000001629823529045553795234036560322636125985676033044102463729986112501045890401322358689520570052371968216235061817398692141068760677415046792277962871289574640536274924024392938614300027610440156850838843691944835241360116252726442246562778766361052727500012617660054995412647901393989458437110196910029723430808947730009527371472811130246451739811148872857802615871036518953923390890087916122873844199456894713183006081079781991216431560866158764915964088454797477754664490259066419498358427181904720435041802449656958980171074638803892488656670479207351007751853529793138247955889925578975243078784465069194239074856963524872962668979804940438952844351343595695742275928136865623887266467729909645805810494885881436560545832972401752349441778514718952546242259518087802507881241303880636620168876332623953113535106036586506497768930531913608159030338750209753417283802492427050087113612574447068308667535699969830921418668844855080566418834543951494905156548387638072071072901864874203664730332959733367694473264369294011566880309078554473179727763851684262161507555240922987847452284916357196365418216623172377587858534654046374826540204940421295016011200979059047269222477224111679901358993820842811914979610146372841759199189106752761362961799876518748852376063321143774644740446835989923800384100576800500715554572146796824269275076440276894899235304537887504185432435702323422277055996020660216347331658473342447213108150064082717436412448758540516150764736962765788974621561704886013978000844923917750499638053441926858230804472724374062686698583098760800962429210274831790092100999099185008949122637206687538868788500608366946435822008900210257629016882738630329291844151232363926391110878289353454974669515230349877538899703858945897053909258411500006270188551285160655873227168254215366973128008877135983923649240540017478261418158581224837559392026126131479059039997678469154873874420451857616255770886732827102030092036885842481032040227334173281166065889788972166860484013083273354790498343437163809802431855158684923988552222035980399474527046576778014731600784070862183158933595720619791121596008859669147106786568194286078716868929059851580120856434279239173189210831667219359893974940379254695982277947461796931412623047168498719268979323505093662616992836586663337764400511338626467988745838626914298662122394926987103243452470102599729720819742622073060159248409002904990635800430739532979315092262104397953065208099381868045968953146545628767467239809716389833107178670152776219806657345326207267066269078766202943249623011900872863895400286941377066110306564996766321350293846129078816345503528833850819531832653156334149513730373762107809173462204998131200848683275429439633224922459393177542549115778868229795552179457100078726132456780203089127682890324635851722670836619823078734524480800939197555915334902812567225075598707542382659455436587790392248262680384130242360693218414105715808573500259590072278239940892778955611812203368072854021222016846093327074853659103182043448633902221005530545966853703179531073841775385279992748144672149585211414231072327167511052432598236048399882060228294861509054451009217366815258459345753270923583874501371423236374544252356492054911129124245597574098137983674635485559854449141673747428653725781435119056281084260746112956537279249670675282354560415514220434368949332227220934553838799604314956462127662604467669036173620122992136684938106510451600547953820227846954602591919110148280030207705944224234777926811442623991270795155460321067001381018848947502183228078004712220333362073941013523778721529213378488543651838313427657005468382445069982510770820787781770619396009113180014400569279189152994889346272772082953936063582671786001794876960882460962697837608754006489038554069130152889447118057980082326931990739409547550256114099585355443516807222130194982927977042598014953232687143000500552505638759850636944783454687140312221150761984303828613864335036867739187498415880594397928066503740610762137329516658001229134515973406767374496554273044669052974362243133718264849200242185226795243730441298808516425036903032210370659387726977353001000777239710784867562836760039166829862827528276311181127932429627393821143305586091129513889662232067957026963117923914951425666337368569616652007708000491078394627729257928869827533980919026941533793629004842147332334803423289658890317935400645516912822620931177273291198086054242844818142762157159884942738378671305527506880958206772990623002271204888837398302227446500686976572374135551464983452774191990963978782229347246604454197871524264346774393957737639793555668460633097603481497184139456440651028418946766825243213656991759545864888795480668463763667837653532782264019135133738248396322748563788530960579580227308984622484445245254498232987825448807966534052330692089036334048092854507486714262753095141368470034842452786010251901388389521254728398436236613443087479840401257151814769663827485741548370439529542447206804235696946823272278110815992946141726002434265311813904977011497499533683285536432244671863036500374250179896089973009221141832170122041791558995317147186519231317831536965033853268982061318250020259378697350965428171778270615316032949592142204169351877064409979353468586709163941163807366005519110196350607521465674886892213939825544015805864395206448935912954605872860469590987073274624586172596536252981020754640291287381598888094383425024769977202476354115448484604847933086796372567383529067884875667053442624778267771003381197384921658559911968391483272025184789793765297547787665207589467114406138571952381565587974473848439341699745744294238037418976828510424278682528422733650134031773541494015210054011228902455031582631750876071548303956044850332658638931290689156728484330131472071622635623828714176684315870405071556187282102517803958967745231284871705111963171669697341284427015188389409958031111962882160340692152319257913858390606221858282736201372435168432484125266691350572875267385395131927770671571867353502098041489514758938238554068697096850922026843500304180682899769759003780864621365792925420743301171144042727594642171067636160280103465677807879751968957432526327713659894692354567718593367681386275564856326564119740684779401625674165806020908651571398437874782987456173764025281919220458821778900178591741635985052501993894068994791207144526158195325943675250109881802692235266363529565173337244158177719988989295271769405177178007030292024728046780633033197096080884556160753414019795228287525062374041350999238056783068000654077639406213813821391641478317341630943615632272707052496650647613692383272191146950968550093664402202237266915177903278918717480799753165443806845695925358020631493344150419442507046871011377098744177094092595795404413846034604175726659807205320949475284366787660382984368019760477735217018595656657423753185665044892993831760034282030335786758800904541815868582935177609288754035605223031105042363479013292966003515718708044951754650926658600695399994083000970899987220755634643591085184878009210917830361508460020817390599437436223426494179414780791931186676720812872123853371454013168349061137815668615157700342646172121655845800653440560982712462851252856741859605655161297110361975870361166270099992865927470604007586064290184315007483741081656107529955462878460966006583248595935652130948010691469607921835119795043694720726061390586961246109422092738787042229184686691835519812737702501850046233089881865784346699078185255144424467151259612446372096471416265076126640483595090584970892859955547002910616318852422503274517369062739641848791091462073197613126499033400596996583317225239763452616272866148953444993543245699967805118024656697827881147282737253374994459467561769942031404117971482510494917354254809847239173956949429225365212472728828061552913038417956579539754732254404106092072710986081280768441573202331756642282434846343908348414622234841904149045857321587660622865772894388187837754007171408176018740117943578873677156708620203705086050458843631359839774038361250584774421905009354984786549176707384735429916244148499763136533057627150703297969901199575726870463407607191754034765826058021286454582771941382552337443812678304597424896990424873257814657701166155331707095352966114395755508688338592592273791806605685394912475747317385534064988432519887269615399780749956382378878675828486516598089461480303984874180783954309467338517135627027395931757413075218877543669999669172047668411031107185668323025723319301168849167496108332220421199625905620050671029496131778606538617245262426236840051259021466367504225604206527071214871537013590557773906904484221478565389532674827181611350130673593035780726999915270678707198565958896792825229664473779810543371602932924825486737020485568419107644806276349009159768249009781294722130242702071274149990995635878085612254729307916429063068127561641572821121581151139071571787936000587150470874179626829600714056652332242921203488533855730060337720167205232926974022910596583037938495656218250755222650198192357168149711320076904288713743326527227317958581016454953927762249070015215229716074344000254924099005547576060986053869031055526972648149102025368625459357931516339333194687416729663006823316232116248587891514230840992713180117721820578271979278493260624173395196674467116744852640310470445072873247125258990518008047428980762654533415871289143485587913051219540731736167801093767938736708929264083319198608500982086363667375843034341426201193741666647362246081004482078172526227730364739085455113949107878253565774858182947893300042858182946907137665708711800525123748495257137952647424528717702403049161819974713296682481781444516842761403304285031003100104344417327233444728654874357970762172925076520244647209198652038414268927394427189847054938448160944737105727587184308992722860315046024664945611881663314530285940572293533982753874258902710892948342967450216635878000598059151736373186343482535397036969213747538702887430797319850631816307049823011450092466510586722180679878281451017540835133450748399457275488800567678704244174696475640547986400553690356365056709387390343744093726632319741181964449993890055349227180206742365132449756150088387330464742667090404726986054726111939438865738894969517329499492836254583844918943224195085669221495329559702199785440454824372111026224582164489905871484755842769678045471125104798862398851255714355489249858826815528421667660335954812906328602154434351198429121077347109225486250152043196246527377361027728718810411754398043053408746020105724849407249968185392200164804978721623662822806362668517259349090620784131231659340762071057866027874444216824166588780018587218679324298319414681778576234765148755061477589542077323103475875954969350985614109432699190188005945689332706178854876394746643886350286886269818303555862846209787463305239357034208406176465638489411329006661156234454591072095015204964512121268635901172499871303442595639495485401969597173465984982958405494142637002611160764351509891967251780719882670240399873618139008659788570051949119861077236772590422738365960269237182558165571531485505856418220108833521444155792412001857213025516792526904205649625228155366348136924539435980754438440554940289133344495016347662304872016677984261928301720726012935258866571485623082531384079846688022976694820478993098792467207602976866629351850481439932764037862298868799000327418592191561133204198685100030296532551911385931614650356850269477278276914595834256602908534403868185107679809180806595344381913876136959268443861716053446748561151149925302870430262124328083474684322927381235674437947425578985410755484164314724157687592196377836453469783873321858623590451080850686757674081915477470134166563399742280589014297614594327331247962989850453467175312159216280182515333401320986105866355602342112242617266341825831861696871616196022927721526858734679875128017523530576263080638104196144672689613412220314162185031120456195984506012674167322729323213701474279613686121305210152538414920110901473355549686452993098997894401385461771519438936647860803743746732723785959683367232728787502274837579166353638156778175340919717425137408384751643229540969362210377839678419755240795600239535415100069876619513683825450954633616663020904225632347754070240867537594806885957114820041042404573374275751518116741945669260013460358240161476645753735235658300038888880043597028820109698410043655823597415567290792823648150160409219271297764322032636346320110821035330322361534158385343623152918693371566303758068381317270607598855052546260727823887007833903048321483789880007228530582527298942214721526139766692909628081826374461970273626272299365481318538371713042073249576391699368954035784023846345674480825604132804024671512582540599741031052022029977004506552835579958485990996862662271826031886158069526375764690944871176473155757189295395670546042011317065814700710660641508982954920990214484011600337997933578386789440963983486075810433451647515330554674711538212824603549941276636554951319485008831385781835059133829561507747466903562991716251126906265586306618447550504729942082969463897030278076558902764978120251312700537392142984003687934603120150259587835949947397758059644982470832102313657668286793916346306828490144832937620555564647108147727918950048889905045048961458015569794548245069868721351861550787739106634582178247124135787188125132361996972798014825759067634896988431160975355744643009313520896360218000241844749953347986785075539674165675990848199332303130188992171870318223701736063353733338247352184407551472314347399090035822903769703560409062882114391813905724753587152323019595204807677753192690103007172516226205530645129436174116620735638090742350104927052694751995578382509909345665130036269208069942967371240705084216639770825044610142137264769314964794419737763362382702161286141990706951877413547105721738583748749394257177405276533384467544980431707049320768710941567311002964132037823365549894662981182058523421619172985063084159584571591711974508658410770737382305845424068813945793155217976743481956823027899786304843022952218856371075478910402370936652662985116354877664468554064910625304227898704608367940490521431665392457741553150330254319151999050139826151008714393722619032275425504290886304582932904457114131303959329848697381121167313212745062708649423188114916622707038424374928237105117638385385428458745322967091177061998902715743501577984912737611861137926947956508566753841504308054686980089493245896543390912728454649163276602432370538531417903823525065511398061506123317902112568075536157050480350624180793074181680247848791418234642833841990993690714750249269383562057541625380439802946072261070965129082277067853569338184987523788089472499987241145740281635524602065832633700241214021501106225995210313078559155168441546182947641231366754252227600023203604417651488246806947117082137725244255991595581325486202945358882051991654568756263841168945968531184961064528164901750919325610428593024477006382887874433286414308717682542036660913325539875591454188505709853857862329271067306949718474302670128945837150466910014626872929211366096357510118980851940988988135439374241731271198243310881402804871725867967863011777472387889993525633272928954344115948811356445299556429624845151132349959907297244255910538264011532801197110132178348044704822444121650847076287639008362164932571506858993162043804507748408324024883933213200130149007824502247509375218089005735584586201514805773489633290730533182387623825083865089139517978915130237688903851716559979616417843413974970389964347015259062026628070293326234617485803076579257325361270844632105603256294360999394654493702379995239458740965209035851688313742434299743763588331537228781767649037649704777699579710799562339746071536228632024572529163352032424174285981857151199841870805473410550389744199700479399409909421402545268137072145458804102952605235660984300057057903050804972326860728423770876498941123005810899708837116463739328036658287282199524337722256274570104088116547262732391613768060592900406843503777534215287023837864762566686661031263120703590616976117963506561950851507585164870772361492434664271177693228395191599469790455191445189843731011876582797853340967191011495221155163322800890424619067733703565543882401716318763316783497499380363834978178487919935594108144608933215017528858232161370796022561607260878703395483391142783061374048752538503790762810840943221505324232940737165067048349812535818413317016904412899515011856072790538960429878057891572423826487740599162111940674494788603551954733981466862824179871682037379826570304590982624726087500828998303664565505903819568065943004491775651560970675361683698606852367902229998103484287586582322133251865753271964305340057727357392072491121048345703411778281872223476118721528996888534712008430310453438141534036489247055783947353968638154159051690932252494088448665431318816101192778882467509126072261881292253928181867539423162814726363497553303030700800505901904828653879440179143473002191446747417452973550818363722491176335306333169695779835324808492585654657075196998839374326688104524917997498558488275768348193363222493952457272864954612139030228939174105826075651834452164245254053718345183417880072010451150910758599590353460484128194771146754411821486590718854093782208598007017989562190845251832971921049887234600672679543613526197451116248561371797488690886591106409030321719156275373795708800660394234748838878410615620656283088047223287534725020061583413795227603378184864400397615204466588867684684324548667925495573453881189034532768021354166225961601427107984243898453338341414203874863775479953664377377444098822235923522398011311788238712677715580370795346944811186783454006908515381164574255141293019961647346082875976933794165753818470139287625283982166071790587687159748467650021191576609233355785772874188780609221464548926410819180887844941057985759046013960521962775479365843958947581513354983102297833485055974030115665396918761095233858322290538552970212188581684522492003170143323349107433885672223348397964643097431714328788482656912431233726864048791319705982394576032664706105504423151752808135842565246916236473149203449818245521822952692970907974755780297192820959979779049949216601423966620855771482505882551449276459268338741280614589736337026789288817310593611382837107892273365481772933697369193612167022546180767723801517204927875511117765008389734236791263801002254911957430836926894766031217447064578906901696927981283956653696793677357513722979118968589370225434311452640740010420551778602236272478378037852985080073725279671642314085967823149024324407606576570373136221462181175896255489269071203384983919007865821567082996746361951644992001201121472164802805620311388770218693549265622271886319486449845657263534535177633541153202688973129334865433137217810408477379733772220965825406061707287259512203843150687401072634774829096096058256188176961093802506457590125563790735616275116532393829136898081384588212778654771629171082882347478434951947012921907994858253074929399323119651112042430237830098884696793184848970728427492186147473323947027082872415520689166124745280074557841709234444603029364100731970054899269563810242186475645083885998330234850689310599404546414775422568956842372754910844877389298585200245250759888910181690236718429383842286621972680064114196881686210298773664557435346418606152385250821567776399960269825875263337628938076568278313089699636150084704139590122663484074057810732612377863001375357772191356699382753743424795179691200386038331597844041544867778099641110360874356704620889737080620521428475380792936078803739990109628085661329711624957425402210960415553600030363088620928261174782469221768182335032699331429981000298000090921255755143321735338124744286376187033650449092981679277524437907721786478643665961619974689211379047325665323833263810090657612627312702859340475771479155532029639383786891699309074852293675011782625837714057283644467461180379199492153476206095567938815983411034931830731029592093660961484863298351938208068173492948276488374529633662284586356951708713458280954656019576428912566765752928584257294610269487096758601566930979663420540210390750681436698299889929713349796394752239628875661566331140444236759841200780055217513428638850510431364240611818070065527801310931303811531153936592973046556427820852288159643653499452085068040605656006456606220395654359848372214226519898203635848041276927143351139778519288163759979482395751314880443512459145510160976455741336483588512251801967202411426469199339486769869407796045375946709555542039721166225469658458260451667850698738992479320686465497539386556373619587373282588712736521969247597120137604343345841876698647507728316563544636782542505457501461862108809231033718521242871134558800136909364343237048575036215948608400185014889219609654436727217151279286135774142918595183319848809717172919103666871043331215104521794880684668481402096669405432866214617007875920019163911950038865110178905107148900625056143119699747993786756497569281946148941890683491320746056472250331451912975135550690919814869175790861554521622910402338253434641932064323483396242775411169020370066786368819069958918860599035154001673548503420010907442838502514345341120817759779519821642913884648010172743942587279054453205419640434596281634220160587380861057781638729210050489445771078454897142815721406878641945528914055135395108315676438401155908160801667698279942201683065659032220185107544214091870958711529763963224571142762721891526308444001345821085000432350608933027382030557512813760097514340209555599035675771500922093962827563818182180262068259584660780240600106939842180937787411393861115843300555559252893212298299443596203636159754180369204266861775253797006819384309296430418002805199345250709717517215881172605460731370521033451119169421314289662873485044338283785603380866877231038403718389142221392198948978193602309181215758382718850638444439683805270070197921638448743586699979132614625826917508956670636460108922473998298568541408232116539657631092267325122812279381523920262064185157259133915112551673583494852759052772137159857937447061810978778749703297694581696383241499208423019627439107463716127979468519258332138275311421226850574710648832750481287194222729127961709663811468690473120667297055466366985634174530509539937688468271726217547801604195859828292164309812305574844144551281313859818014615986616371842625056923667399574286917679973565362935621905572585045340288836206108243891268873916688615377841315563943029016191781471142544889446512330994874228504259234529037147292224528813511971554259137320783511749982227578712401812586228798218891337649425403712017856425275279093621810317249707584034100007961700116102102662598245369118697647553993446763678035580179332368467298633778169388392269895908640464016563483774074111842719251188000714006867757553784902793987920479108430812126959430864636697288645922870444485274198294254286743487234381000306071654025253898006525352421236975180186149773063001376018291765310295528361911996499694596262047445607671949215737787281093916527380289978253286383079012884838086583252865036449404798501386769120891007240721064249803092337036698426183904327234200441396143988864811826228910976122370090110770935422794013298203254772149283071267320304549259337689609183959368638620828781176557372842438287160929262199946468080401822518227662659053576226095693558856784889344001339822969508094355860134869352677124436616079371703829858051449642632185319942723147851314764319139569460810325413206756683461725627879630875020358747443212863303948589110798718926116617504178765896087610512129011814991145850916832428755085412543672961693140968813300609533781638752555197654003977703971145388282860012684932427899433805170582534421444541511227207058481393946365624436966707135695575196452910048109272490858778276735322424037485738299378526794181598531128785851217596017786588085169606732317195965692983381015268509947943140445457554010554484265385991156612957278549576127069729107875113450359786643379891155214369054223321919074004371899452318707558338177815222443757807421458084551136100648488272959247835083165506424714694710074774167341482700425853548052581506634285686410437374220324156711898945542218057335117332178241768331021752448437474876734634044187193957331150182272781677442558346174739075396196522550014566267103667878854668091337936758969864434688781430993101923105840330271652093161783485928041714129296915311910632996770240706682799650982993043533704005959694578591478929554159224352848943734111814552794072530675251299296520110395828889736130709983753221537063950670362049249472492995312063959061091114524856024464160881530632086245831293865714713631725953680581200909835617805713590617415689135511733413697581394348978044250421470307609370240613703907349156198448912698343741148273118291479049381208635797335680098284446937308738640526465175634801017044425057454138831473986503666790294726377531196760803903545423133240781531558647639746304468807901063375384714508741554042187471761800145731886266202470217682330601570125215564159632641620214377046642035763443489633241227234480726931171751117161206846407592875518554639690409424013943982097241240265276128436682010476200199471376691720605837553251870710953410111811997683421283282856216793421932232156567035257554210012220180977445039957163117656544167863942827684329702556517518860381838664547965597384306792639117937629312752036902980840096885629926644454034062887798506248380280136373524718588258913000709225039291653419372903125264569826024652677797138484293440508512631725548705645007365598766542634031594503685323044954105224153014761801067767038905622726034111072380420761395434838355088211204702315203970088230556864927036955833814132058967082362420989618477823379089076167810679869450034242779528396362469820513434851864953894161488256329106330096315910781149830987769711165470702722285413919800175812142374658142350499364085398419328751754129348493890996519126349200279289510214970334847428243197936312023731456966733243366046624804554042299461080822054158511355326611003515526901851888732640104338348965301699297441752374530861199096620466220793622754093068129271372412995974815149280622719166368690712526808297356329479654694474273849069557474079970563648746567922881544811246244472824759928964514870942065586990903302303471827615223670283074156994028290308406637315562320628945408546916352073787471273292126366610672679369943310607490904151307482780205246747907249037045585935857547721155618687901525179850345864138272144185354280234000503107955753599836182946160022963591914837394569445541604629477511911550896236347784105488282972819351856829233591991042515752588725607610097544184020855584995881551975353499736624700006671434780354374266872595921535193027627076852318089275881408214039302186804280167014353893200912685048294253862538281595255350510273899848514367174173216638351569724227288371449041174771363504630602211981714976223562833631237698019502727232627345125195926126013430355980338146623989517164875287899717368210094331029240348408765947492410857782099944126419771488648543047964173679000180390536577878701406152489128947509583123390055933488107931057685944949379892917858430822618154147681959821427102822824549078227822095148580070215492959084649496834450457994320901163014136564224036282519176890297411637347707085828040057438730142406078836408811560607219099495994791970352073478245154348684218224539256607676790268164326028538542131069134167187658957444281390650095433553087891865284569871361452482328021112710799542056750492473874581711490157320278209912451073244192314423611777208279544969558645362562889172914534498553075035352512718299211922882184401512424349361437425849345994229596497332542859457971038179502673563127577109055773965398130832886416127537226722058452805871890139887504687240973593479923032592400553014383987729146332399391448820678694266267784040819316250661763650525484816026139735226261242590814201013843104885948995712944021667680987960118807614148230388112315138585323217082613532321210040205521994691877647533249889595555048113454993376486936843041409989321038847894022551730090247889293339828425010187289663907270886723569239063579050400412571386053161518397473609404885579250115778202668849713304888727765088444547211606976054544006899374532323417287844498752427092398034546760263386220718241447572373861759615192645311264523915225598749569337636354963335038811962085964590402365929019038619486842118705106510813153386502955259386888902160198451406733388915443993158970245793181880476829953608285318210397258345256645058611891700814635313399750537207905538844907609604274818212907670277138156419963227506119868758393778573943030285043653696328370493529074025937494890218986643097116877007025507940713779065608965531443893367259140964847063108901612358918059198845017157180723200130555671988865407637423760556799694591877413553391543394621567064544751820698922783372792045648466051577077342577726852825077318259777965292305714676182405916391632725607846022385349959056803428638178497060551901846465440411701279204887858769414349177111520500423754067054948322452004527606802186399408126375565664544829040561592285511360218615722926716984382622356341810737467844294398748554928147874147928025242483769554422429420824929286153431584751307280828265474058079577538592902734444391009280755089658707530659710936756368653073025690883723809895989671384761431791533493256265705932739551439870874114540447205204352952154424236436178746513369219366870553888153955684445816644985058489592696790871381993626637806399344418953885015961747479212346423380696577559444170997754715102025885818063404467847212569697177584568862163578472458078638172624779820088604098556747250644839238129667451225075997737646587762891291534395491928718735389510962598135599591306538442332510908940563388760787079950176346737797221398477895538891805918063451180402595659731961562438593836889724191174132958792838643022658646650099145568178156611985508253995971677551776984130050450159822529791157016922666798375917794553936566674247349957359705801603768196586093516093118664452839722499320184591883744293957839575656577059400645211712630192969702129668073684423663839517692871717063838272508792911305502472251013208896018770083106050769912815567707746369506534461740824016689849911267449789632844916448434280740113702121769699516353262148661021483269238621397170208001568013418594045582079443283477314167767965481969536359623710910705729228956067422876403915580424551088300740610220686664221115259940451056033437781834618871240910812699653751222772793490789787768645749563578507896975239624828560332788674065079039239449851207323578447182508093405952524086509554990751442253549732281269995586612274100220292643487818944871084329285919047065882068222878421309491768216826843527844894128886046076904501529199078879900780283223869276859299814478528956121241871853861592005618194486298555788974498476258805558774055259001955871234055709611089581815703697004393039101089855087733098885046857142198738712139874629854277422463187401176199339692278784038374480317682781729975341479028269968714344106430222103596383768780125338403223159314929039223125519107392154484160610128684692294500375779371438632163881113553075262549232231872128156455922102227444258871961502612594100014013021172309077151472239583239065247580991174573121052532011298875455438494764468185608596805703878244552067313772893482824532172273274604797683573365321182777181031188345198660969163973569206169145688755278486263381665553636875938046323816402745463187127344983948652919955059425876205125106556112735977479254617986359125771311285016171929310931844967537082444917548027605428257502022593167226883339524001452137414056524377893300044935893961299954570935016278357091019123310744044466710574353591478880963935602220128284796274746460123876572986726276511350887951867175532112432413522192280507597346184764587283023878834039949392420975225960949649545366206362449306110130220460896021735156531105464560616745964467809950267568361509647672222781816010589052349603651070637412485849134855167536358069298313593097350757936774928715385017187085771872728814792069260735538272244665814414147704220215757082604429503774322713583947365730479115923475005852560696155587232610043833765134873388171148551813617007441282138366266828855648398356942813379092082370634359503681108115877894968665740046565687729715142134107651304680790340641170150597865978691881319666508329191866882619128294257691136334236178956572831274437924047424378561833242756787530211741063820992968771987674615606178336212837959118160166457014099837650531482656062713309064330687761922989017074493636011936031757106119311389433719607556537941849489209666256557266254931609664290184980338200680645388076333789342158567793896983221044940928073108381547847159112319072486196573825870091569602681943671679962028553569782953729765027045931121135269993446826985254655456302852759577295070108305197045479390329126416064155617619959331408341984986912578275349662041833197470211507412508340026740915588405614276605962014810337155255228062560432991573527366458965486527846459644181548650329322970381970218430088734084824407116504192395349807433935166938936803418237756242179304503932230216101312495415943686747837451879141392169524318368620336815536234020506685481568741638114799080573982255691915772832445179175156604746335016065466187238422974170789919711970362501249832247529979682755682383191031351351437262149303390302352735473095670052063590852806513835980340350345621446383754717508592027667172797218227475943809507553132711782513450480637536201575188314191583167454984327383736957240226054416999433042128130502621186238147527678513726006782041022133614444806650226784040614769063689615374042531578600063706610280936383411610685450141694406744143689453779028499978583224420029006157261097380001073386894761758346646653772776916009525812988885624966234926823388171648359546325695671979341586683063184098673185235016111511041354999355323265578414725915492051795988546646205186635689621519143583380970058166013539782263264292824983865131915960504564408941545350842578348806258827309450712701862379145577428671878954783448341621576082847555882625645019394548922838460202926407812111366739358357403564976114394120932549393973786220385525745439263284942913323201439399188874628276084619764163747307772686951503688230526252009466359782564999689851360509454809141562573247761095172821064048446496603992209820950951548206164995233767955765064353906497965375193108235111940768434144866616094221888501666139282158246758378244481265719052372849244943982766885029229404176638977065551776238931562517589331863907317593087569734092046789603130187381033010473358529240141640162893877012788696473978095869169211444092472007445989053767784756029618816373903745107004287577096272680623337783762946315120885851482091977660409095374276569583397536964089235249843883357446789487261879768325931903292332496019932248968477844832970319210745962978420549332694204114792876235614540835775006307388214096073016733539924620108417845155034258192809365135100679126782564307566616955469443925282608884490858432738694296490122372717026570595577528087757571645521986200778153187735361223598882568536363189134019884900958926003045926651673057961205074593576103188188875626908199774140808706353643902689334797162395848076446447517758822430943182288024206949910240705160132573811074640062514247627900288706982239778231886409710489799648531873129578025418425364301751927346973173090075418079968383704158319088523937371221607717885130932807861046951432181117675992366187341492618949292664154508718440146668254453626525069998036659858172083888675086527683475073425645476830101339896745842115562814553984142684545920806034436910880664734588021054779234884924541269901350332228418671672557400571055391498878989528138441658926770062540521768660196267931379489395224457294600255995370213706699305481066928143178821949059219354403396574844830825267649647962235649396233434548552277762289905716431896985321516524292666083975864203810058670130639156032428671633072542311254199518687762347056074675459583338644986152500416845096736431000455012241766297508779003084800930598297261067500843556822513811950145119905777854925345957345578733226848719642875614264242941981262999418671478342657369979242336981485555248251068869260701522852900901355652032489122178301093315437767783618793458500534531259824910550099815594631211388357775037320044386219627803080084944138596920361774377122160005983463306954599131097426554585639655602866882809178567799580216590644741553621534026796686180906357679223527695939178005553110134363304976883675832173388126196924181086450350383151502717153091086809863463703762177157528118952788501181706785155757391764587448129887783626818274865645955750144570383836780356252496327108580629652862074963904113282404384235729664515882596810807804253640375099627962316298684363333907670348492552839834075093556352323284133748748104563514098891760888026365175854831473804876878649274145795987755011243767836682863552711993114016079092243790013767776101672449309539462718675809180535255406963525126633864079145413450013338262900756579959213714146424735276042799391800672972241042361457853813330559720537080009380294705898956939713487230898018760300217413435122623428084590039459687748558302906210416359832423383686838462991804943770918719030129885881405266194945679709328583327692579115980543860950095012924168987646240457007252622090488820763769463599877175734455732076180429311377922399000145455444785056360667964590270001468260201724057626694556928639162969116555751933313882009805313659760789237227296041960817351280290242871793082059585661277661888789006521524240026307737797363914122609455314703247279613278918536255581709865754551043236199491313437967436193459782443004431874315461383036476888923958843170254222268219117057235613605122395094992348292173367587290453908229890129471603781042002694373769829286818835553442615371076658026423019528244072974629910369708845497819734827519372254849470723399336406803428070658608531930051577860042664145650743750897352584734905414004439726963695927467286297884891067005366823301647731215726266682499915396601167470476443827019808140225404598009645173870882919612022647274960272982980093462945964066981823723435820841446067446546080278933929644850987992251244624499630387811422887658141413818909104952299632225717608788207425331249553945947657088350650890257511183518321648220927999997940077098834000700757328899694887192992681676389069844025811104802417160553433876666188313113236870828981358969251123231701213149514924963755864042195775659277140646568903768468940676880449357662533751808709767400630971400570527179553698681353162421852348689430673753811750312805022038354076792374952152493742068590922519610823341947925754356608592992339340292006233927135294248350906064509973231820748806754355313851939578799166591953645068204647673960705480833802116391596560946299377272582357594220586174701672067255291445326318049106883186989729309703072561612200759177193378854574685189970051706844740879980182430138415216905093030548473619621061142057914880509677341970724936783079328904767148725665947518501104253495275214762305023586700990089149818319094268771808664338611473823118928188619374007246112295348053366576026540114233712996807678420452901305980386382991194505699740640382232850953484972426247040053076066743896938895875404424947144915769966846864237785551070424738202732455279786229933801807060803373704690716341486920795712248199203099102209216875862250185449027626423696378793029743352587536978078331324305613671610635281570333295768677435676702472459051503618430790802001825220172065417699049786347359747579906882970769162989678703069026806808659270315207179945362986295935329226801539603963099622261969502404071769415072082324903990514940441162983980692410020792380294860263411453017718284479457042129479224252799037592856127868574877718566593337074985771431119701879546410991772716455685375246741907529611686148534571478442275399381722839650427305875980032002822571344457945807290688381994790731618251188072372304278523424393895844715973417501168767764463665693049145703398054181600245586471232961277807832150296760765399073671795687369529685754759320495215561567872408679020715669717709898444042717191105941928029091504061260944879947208725738102793464988720788738604179015633976204279010773383953239164606123682748618499542129754626600499714929034231159396307501461458600725836699834645440950986934965725468681488315412460713703252549672949904928989099151217806092961079644568697350891198005115553096174123756632826164983722696659845378152219291680172663280441993037030317056905204222233804350298678645849174630953292983286647463693570288570426082829025348149090943044163878263654392216606595678146813143874932676657924245653776243741438489083280170083538270570827106689697800234961080420628925207331912881571201966289715523251310302961460964940315714506604501590644468531126177122477726634238945702770819220603545715595174770084916392527810004776630058482896249147210653507467609307953450962511875726927936337150031495575460480129610413723652944413417737818194754533701978667424993370850138517285060702218077486629243164108535111122708901293728831510119626372940761215587540954464101846089062549663171361536468745795182547111332915841564625267160916857090818927946144552137248326700501516756330812062696654510507880320715835457497905716683666747932345184667249421529289172211334166489332226695620754530704771889437764015221478062203902134826825919861099702953472058739210663800190896654360354820912597475460948744516467300645655588544840432140023896260972689367116255418728795730607631864721276806629934392981652239432041412745029360113702499965076137296825421256737915955607053868399376656377169291998601643695296610279797162751046406628913062070107976219788046568006382532416625793690368155843770790149378937025629200900996095690012398133665370604649262716235500062210838056666854155104474369354603746558640451254273327389822494433152858461869055303520039828899807655073855309930511124681687028851757852498648123197058147568988258700233213139316362993614062918813293659999475719120772519340835233321951337012068987167961728744398690105826851745832592245295229036450402293333442030260073145582293509804141463196382179404865181443109411953507361534462132010294740067420319280798770527463226401637612215606098071322614521546561923073872715387989673498137687344177718596512100885010476339330916925004018570574984276329011591838809957221883679119326222756865141294003303833980972496721324036888087681355749658272363595256040267904593449533194717251357727079258977983979832799919346537939407163019233278037121694738947564935441706806735911343294199980216094111728274758541323882520609299231010952910282625962256907558419192224730323028800508054804542328433421949412703548421770181726755327122676308696682709344232389535368545371152699908371548954594777483227275167228159754698612892267499750655501034147221666941918028415423884585789413621908059996781389837685459041036264078906941053575133225552243879993941776749329931309571677644632012183860436250719626201024651925459825791015770672999347053309258883818436171034015672472225955252960719084960198781136584093132923137477971791751326745440733308525053843399524638713388454283942618300974250588380286637335207323311252038768511947436404035652093049797284641947791595302504899624304425812773163269381666699654357848694524543884520259080005376084293407951624228981861003133555679891353703745097637717660134305141203699602125458930085743715583833468752789752003962814779227126434667285922199691579199633242738207373403504511330034175689373632560142774077617338571556725408335989436370188409774265483056414104084484101970455839043168668435335257298197427623721481220904110689988542707835623088696016308381413487805925366415600892231858556561745249651992588016718562285924438293885557377417276743958258801414434628442452271592770919875789063080835580830562022876306939104673365822263271850462703577593325048098824949085565700767373610240257596127047181132360058426258721585062392869522862581161536498744241365791523510933444987009839701495608464369364197142844881281812977499101551968624516158277110106501920966897334443241597909902410015339416007861687463434241972611299318529991862885092073636000628284121641716478779464670135815042294552399021803503185718718800671791811862160249362065626334368736158538301207950445394807961272729646428572112842464700371270511899489605439805906368237916398684004417286118877087139283476861162923860596534173920158386711670187950579432551015631718914427185462138738597376989131739333593585697772370195772617180492176761986795995112300963662069258079449034633189562772604137693196987250373849711072777959185059060746472438037931429707810150133033162072586572415617173178561246548006379802857989378604653679530081260597703863213128030000302291078659021121683445009972500303439843593659830779128383699915408489055119625792333261265358947248120748562392374062082253050421846742393498078998123827615676987297511340795805707960137758846044963381534499471281749959168506411261589123665017096090157383289785090909543181613167905121450787337139471810317461251560548518961500183200135541517875091663151563116176998175205458218221965188947593100861563083932197439875694879160185846183883755716252919425055574720127099971425624910137941219518120243216211528457428758218790614416739715945376779327347991472480970891991110760122259070365464125869242606231671973190912160201058260729881173852270647472413738639737145480890551502136462246473859470875895677811154555430722229427203236661008765500622605422881848156285117581393013893050418892691712299126851068482968466343674918842114996143791915779699544559903906221584139138353380791108990918802584563035501188453626327888107132969462775551360074249916113597960976880476685788157066464850694988598632053877617682723890436800837627368360142451905826582670738493537881454319621615854484677861054488442846299269476197200816595987441172411345715575606868559722944605719861035396280568906572804048391393383871448882589289523979825728131294533027132313562573520406757760994147520864705694805679769330850248746259653869310193463759591422838354515114042928065278559634487981214656545689590839636145466224960219671790064285272757733987479461579049956206844665412814598412648793738222657957492611274402984032331627175781422417059336938316978612568222294238413159391992751278321241188347783170378176943274170144282748405065919104371246763576011080003872949929237325532943115304299546309294049835886475866311942871051997177482625169551282311222695987122053670198645114274713665572260336737835714765726057616725279602002589080547937480530766010334352511808003703958583121596010825361723499267537464507469552270349743976087721976410748602861874374388295781742736569527318093343499523542777527838831812310591892652381497606857249596888735766188126068179938662562754816469616806072025491226577393563047305020836042019943577655180073665617283599819478323573326158581124995647349716877687541698967477569806704841458052975507967438226031887007381555304946742438502663855276418481083165880103055323956041815419864721658023844930147786784831117342279545806421490488526962626971389317441370303171608721220335368969286980208871149846348583518126499530840118789404615349053727863927542015257262264993114962883057065900936649222189575793981498367302936688658996663093855397870346390663076986625888905363613938431706725231040802176909975390366919520695739365967634069481797392515829370247052949150750958194043711338860756892153742329336056010847488139857840490271555201670355848117081597056292189435770103387684007975903591555534830464007349268058830501266531448508836386413165292450632826176552188674891179617945036532841615392012680966038198719689302813231687797971383954662043567782412822855112473428344385954289023564359190743365586015825622188736437269712328704510807620960923550336637944450940135110100702684388883263426515389036400642598426706222980090332971699647498320192639009393479806711979735656407393425654893711343142222384710559855031720064846215869122841537188650353701557085898055749781221835702524211981508740250741873971600268483671785470366894876442752848848243861773279224959567612399885482957054380140675537432579523422915044630660642330509609018192178974479041185739780905434894745774473719861370675859243389322435669256870382942543884820694417189746684627016682565165008854994865374566451481702211469714298915728510400024406662641764749088825503029871304829007631738265590292155542241424502981286743422796407451429428418906656158231847746214894656005824855578122496055828948222766125389410546213755271572730591505240149964465732843440916331465060847177118227372515046611801927574947965088684439819902874304364210227641598859306950844673772093884697822324943607841804740758692953015261746439190178294470900108915789207854736612568027526449525441154964232859161258814655892833308585119674673034458020471349446235702440663174713476177791162380754736847865642596673154909642426166387896543905997821866383255698088177139774184812259508779675052836174544211357246752384024779677965303093963972680143958532241894748370861129448008901484868278133146836788934763245459716214641408513645886170465176784285671421786425589524578191992290579445822758490107080505056332792101130059073799308696817471023258166344491499188173298755651619681554563967764481669226765969944565993984983374214395662987789243480384703050372929538255386591701346326477531773476285580909838619679967558274056371964979016117655044545435122085262002536664515283577676718802919394953977343313005548027082204808121581594855692328615953289846449829231929086590597585656990499371113314165086178734315029296159802891762530951896535853655797852867816095772968345507900713883585263553902597104223850286830548739143656115266698270601711533631933261717242763223717217604375619269345634865303496077715027730603647152540535159739382057633854857109840673861864265768677557981771697473070642856866006278805960515873543058762794059915517535749406341701732931958990190577148083731735120012210031390112269338357719945851890200674279194283717842918801511974872228814276441606843676189865890129267222130584280546077031999132621806857809607982693606519326105153080699249695951710138960522241615762501661885267320018789935924879391862552866471254658619249210244307594723340834416053790433778104531876769335694016595180320569586537417290314296395581464372565193298483089679855802230294552430499344071311160251924735287448832377226643095108971457589959681889734342436434567921808313767597859687955602314757470703892826129615665061941760455130708533146328720910083240510007653905752519672777009093364782380167274475603774939827829745596406386658784392769753765425583306909562135985434254791750425286463762321854490026552677534266155312522787897569780996016899812891832473282653233666651013646482131181107276170794139477485468574000457481541473610355462602660230119669692276224658132692369416885938824374175639965399168290314913500649539555245315241432013433651558651578702522414027646222170812338878551568099621372245593810091126695337891182535104442784396651428695963414110613127138463387271176525134999325061622223487579019795603490291954386138973689422221499205038863103210596203862148507042301320324007656551299769175310384442871667159897431500438150661891842485574905303547678895777230221593796721604019627187531559973101216927768459138533631455865955384332711370114783059530691244343044372472132585761483376745859909420925247602838566577982654734772344463143154094657645197783665227523320473138445894990657365361562955308200976778859332772555791803235706410640956171671873310578425626657432438839479286944796370751265623270323186278796283047131515788456347736917509935217135769773696900641634977945058619624508466415138556303052698470708128893106301756898288822238505807038640886925385051551596335880333981267864749525040316686502834767284404021476627867937554344856160470372142824346098657157386251470324228691619691847835609715666798307259435446087179146104608461605235507765743420716028511060733584663650472716961277483228804582687238305864352116073932179843526813537382358772329054301599943230865992797061540917813150524895423640751255651097573133254641089783339697238609237266867539346402268298950988095924309810741248597806650732187294924706572380581300759432912541650709098426252550529977166359442458021881974406979214209561589288801837657600723949791293643168997383590909033839902725619566023831949740774319666185258135684327509131996795181727642959061153161864907057915646794701947559388187424949138793590726443119945902652142198511288156594729452943800574155722887076135212919510236258320152049582889285203104289388063584519299008189010034535550177747094303760307824677296482523313657771654274538533013734536649130994105980813786824867625906138163101078142689145725319600295978040161206424521674991553674848142227064470808288876577442228291230672147221619658565981104547997259256852453407269320569824560023139333862777834802624781228004385822260595370464610328272783025700625333393348592458604572538651179920506463228869873082077133824688048954923837525097446053120946061217427669317758249920243026681921620105555001657994298482428407290758093771640122885628784729635829978758026075473230160492765413119240141539722560403045648570715676060116255961297566837168885839692197009623824289360087555902017895780674733922473306424851294385046236488016762619779613023296555030697891833594009259408805632674642051338649239073927362107399681077125487160105216751381126458546408754428540053114607889807470315876178887497990539528526029171055119489746564214243082556085034175947422735862524042412269059817475100190701913948275455149751736968315580884779043052522758822393568754172154545540847474566546833031055031147489331876589214840657599694518245454055564912393942397320397871722400937753657789730073442920675395381687337979125187837595541662576977315787904225411497001389856109544806744227799473270887204051732862713297180714337649324849106273049493231287954496711787201068090159109328940632773669765377552354708207868372522456878885912586843034051238587604818541687723382794314307825659200984380302552357759155062165895360299703794530732302036485112147655333215740005590202102878264483896906671426510021687529069809066546943751864209813969506931100255002824252176917052580122917898556899096767268580723834994384119836917547621289782616751274867820410087794596010297141882653214116842471143444478446475716312687151326088243852936839555032416768018616015893495254105474487882433414588704237913861972474585451924808110781799546840186257818462881971903185567559502266125866887240087672837988312190703392735723841629669985640485899443142007935741122394590813993884550934771846973709285758335471908330966376343969462790846048448567182423254907886835701279856586227719993000994598922655009990413524880190662965586334001456818551913835370828760974695320575192736301338375781636722769777979382118939237451083126742869583202002349841756720160796628969431782471515145085834126843203694270844210371355605240708336441390598924100301966881719540367454711017527461617184761822370256683792262765639200435123093133605313129782173413043442927299611158722179265197041865346006351196104953081232206075142627121454595910582259122572124865872625863466440859978779927095446782536737364797257312624892202673960276446399278798352973224604602507215790995906253828758724574917952928286112627457662859531790875503006779850314499589097580332110568114811326142934032055758404662667541974625542077831183083929300130583416561083828418972377157924398081400157491628551208948193671610354848596824889513870049649655567795655239166198761905456807478702391613410465381168462938086599875915977965992017618414789360829319069350946707978222393623979815062318730596739811638681347659088286026095158397578187951413309008728194029308554250974697856199695587562260651150895526317402190621725706223789825250841095122186888010857397970396315572555395332545634707043330938711678248055518627853145579666428969930336540655783468714878570158074088418160912680137534250793529395693370298903926028723955933914982672336711541653123450853603511792568342199308996479759912164067671120016740387977472591107606932731269664412323169480001807352912775475926797906314521257480887628865136215669880312041865566392877614774156733520642640778864156886839588421698883840234461092658378610423764976623861088506434237516531286791363454045616929228727016396383104673116565086882766378048347627488137936919643183563790618744531343944161002579637989835056868006380601179617824033441695156445564050358788466618759499330168111523846544827217444313337694797688027422039281252156543325147329857696186908320915066155866689847575235278597609379490291595046320382990344448307670465971460289956911104148838451704179069683686235653592930352100793105814567838629538393887082516132574695995395251838683801247015385187253824016241414261979209247442547820996972616504308244513351774638911693507019395638743078751744937135344894853166224756763978504124494330655613747408530582830836029859320201654122134844234855046241050158011465444036047687081436094583527248850726246081933207577816845718557386918717067087504538547652024274653757959624724873698346072464441913385509908890714013823597048433165814523255343061177277999327095748307206504059929520783597615052612686211713472333444492418396672247320839261040292782073715064832600758493122154999153332009258274418923066328508882295989678551179605512936222459137664426039046938853106318106313095991672496235986495728936902025458577313483573382594697507060885424701528030251600239650772057665666837481386571308710282433354711779882320471008614171198583372566548925600892250120026548683304136677579262588933793473821020170748492938282267098323427224362589225700766633574504837696304791603835194924870097384758563798835847686463044436173149467538795278724357394405224614661385307812941754856490910166520688069537053231883415554037703574348892277734383740722343002495791102623927865147356907749210103196697102257285846995309093404458645933916724249300957099060259576429058710698700564466372582110493182661165069885495288202140184334580489671580945053790292301957456526598477958223459497684145188765930517807069709346988615850780323517587369921881142760846034519977991316138493280801240010998481188025879976354369050052067398404699907405408058324076074176677981281594943261186536064516342039327424050462922682614955531567523847361178278352898516961263924167144129615268128511023415057683483719369709815549788736848139451962089797047704039323146665506057108423507444277207186847445814197536755475562212754547161696235611749286000099558409559269206923084006118995542755997297795934141426529406499834730328590324472445650028188261854019844666299756855790497329898036833491324892912801834705543711970940060866784533327156078790820046990571879351922794503457163959306136098354298780486928086860600135103365923733431120875052368181915300882013844519186457456284708505521305555849123967294918536787882906730797012994979951719245026288016320254059552408672695870213773525400367058120615873406560587566331559073728457068674569333821269533480588825786715111184851214162991472046817977603911503438326984567316476004558823740904525682814061349997465662348044252247006770866454187080884075287215222716142909255863039742531682136961454023676525184052319849632320246322850647078418541182410694956238813968947696566331321037699812175317320531378814447524834376725347804198225836041611331307273019648763396679913230540112383924972607398927559123429174984937201547581656465195812710959403285863984194427096658652699875616778582332763389434489457570095221754164117322015359617462001386970687725515522658866229839371019941158191378017125937789032913770871075927525380734095698625562167510385297915397190745070973954891145564285811467805015234007169304184370276362937877301531559258730711245976194996089927016493248632897910723597071774208990503374590205042657549652622487575671864600524159554428023079964442273037624732480465081263712258503580808452297432523039246442726376391211416573833755609372387517918297760071363899044657916340576978790266698801880117321656817539453601252913495403498137773393677727826831959526102410987009868956197510873480160092727641563170624125270465479693062655316281833153929151076523434254859682098324567925536337354422553327165932797665787355315446962772598480654081498520328389386965563094313344203795295142629599007780767049392159775731932924648771085419403787044837511747114458854858560580868353765176729380427475690054071569709970785356605376456670633855744863085457966772544680742455357910184436815123639466989193937861576471404697980374546158185912277013225499105120907410204514357924335917990161794968684659969499819121698446751853321000517167670100810853232199516072234586726916763924784179769984838195483500997344166943621019308196604319734669937471885261719528324020033820561233383427494584754782996977123381268070430425346000314040913349841427698674420607563664755972601558766458908961332403369580375511279129833393341237406625513696690294434983400860242942331419572960849303194544276146229782258120293258404076080583157703315450968205624286882901181310810333855298924166289210977378350853869737692041726097954175249210372499223790957979771527572393933173846597541468276384812260016617354483296483473462690035105652366776752980111253466772409180586631856768335259507453983326786245335220267340372620970639426960938219996669925851196648917712371049650716322530968726165808277873250192499981645221272934048474521174606323393846112702886020711446694586304256833234476559101899030451803839206766747905744076409180508733128322385447649980454548347861792236811474417685227703158623535193315775746688664521472423236803976588131564380740595616336275197819750422374617366012076175812275883314325223311799331719299466088258147770501977927619208174565583822083001744687459263023526884460302086330884365549130839807666694101560006806261502232535168799120834356160523952962781519854231532299055547792804615895540006116651056921195425674228064875570284792344125026761572243467274260513547842907882603923012813671829587366203718655545733772959983862120486185872069173554713863558346655120088185927398276081205205119593453049863625445675279094997581731591668953779654249372999319599797812134374600324268805511017627220765059931457729644500660544608286949153501580527722825439077871257877959837101262135846554342915715144888261686337181544591469680825818952066548797658671116976243686292881139986408707190914225765122961930513758291064213395139508051763000392797082566667045977826146538226738961910182553709561997842364656735559612722304615004429311163842023988747428495299441536223215980436137161945185570337606347580869211016846731945869330310529437901730667506869762660119834694127255300893444389511464218708693421098156284658861887187827886053338180884508194388517636908086899174891865277990590435546887380406139967624695728308883526502425614406147491158891714084367925843550734987569899224858950699404947048011397765055746252767428107233902173726287098051550795398414233374791370488241358773059669470822990846730925146119936233900742748410555681706874059762590373768022856191428429606184604862591123960736381127284548995339621810100437251261055957650359279029934203016443120351338109002278122777913032266350222657233984633657096461607043734486786853538265601602867039990593951240611674173473871815663635700685875518208241681180725936741080740378335777404462259306150797817292618691016892514560825135457613333264470991252853156639054645757839918282958989497435686792562373793847967542407512079518819569778576512427175530967741476038713833129926623352651239645834919591569655854169594557605510113767202196495585307520509440672480319767546857391299566221251670276835389140972954067376440939806251613239658135930957149662047860421977184668787762323203253621493665074682019529582475209002836048712280991792232835580088216900413143148013296737664147560845180539734507317097037911047615120721262817693655957554439569710800088018872291960421098322142861834143781740757158064540837077332147434257730464352961135936255556544577996460658508513953266760012124230419711548929937666230899608522127229844642813606798094806287439721769053156806568194238531962550898982504819544507139661401595534276094905262954538288468724653940977448515898499845550235112513042157870872574407755773939754540157954835734372525009168344576415414398608749801923590402521155218923202685756552046789517448801078423778888436047992244908204325232803829782707932352028096391793438949776919106850846916023284426575518228976849395256009928553440635890772995264797307539886000782135672928226100826486200542213795219610428315009752342069350620403464523115349827383377510001265405334097061375380637065093196935492070198888237209640351058902594626161496238465861868656514013356792370631248254005520543059450995413706735959238868986596743412839703720150730255671991133189381342377967338480203886071456928558374033191266812519316825903864620819291658927227161478533489600381862036165278107120385962651714030221823590983925353254225827309618740981473655351839113769957319651885946509308477953710977797576717214496394676259813593088072959161603983981677536054438432328535004063434198834859372868119628436448062703301956078675922591997479549650611980456087439348914469424985766813431192245475771789518514823765288408185636791717468882135504413125191333035561273266796821368282778573182324786756078947490027877912296614216972184203560949298335507282993857787149291134335739106468311516498731507721090298148564106907659951665040497156936030207996527793865940292462178231397607573608579742258762619072824922094543988967991740403185594194449770769003654393098565815138039963119336661128310479624343013489094663036716962527935911397478276072196514227559419821879193304476216729779029794277894118553166040416838705991336643315208568896283757137568170412249981436421607625300874449222556560955538507674980393054103911028972727057330205125627159026394260027580356524618479702828534525984637477982563799064267901028088231748624175016006409343336942238310819175041637600242622727813772992038725357118817982481729144566914154854522809577424184355242305612010431044086733763208460159126718723619516753440813999165012072644107848418676161606538137373037276685497327617327302452267751125805744883778241176386752755556773932931861430816717176173046310188697365923330308553712665388696839434780011878788765553498772440351931367989213186741456157384151200252210753778423170988387419260801002470373050044008832198951498894360997480467640020680881880614775010987684379640706437135507803665266251406892382341791704953945602404021674313574908896602683352816474723432346007921297073491831170990523615847424176990454983018127915750900206365746707961555866980867630322067089900335083774266519398204402105450688713641578036345777895681932050894777536311421906222256453017577184948682679294514277714772631320465841602470295701789185215090693140889817559489358701605417686664187867638863995860692674034173956310180164901752187024634152092411434888684247772344580952420723641729707934425807615370792520024849345697822902469050031652916819042948890114002739157848161238826673305414757572986084330502253794549738963665393397925992466637487409323423825683613383826720643502456010959393024217364001555643957623828811842289985721358338652849740859374116487715212202136276827814224232726543259331103705370117500533931811043746412826409638356598268419320142950697804470430050753076615725742301820891515941475068371493926952539740318673588053286336946870927000536997712101091708154991454992393244775746630256800911985659358876259924308423527923445617499855813689286824137731365405007812598956754890709118327832338564563657244155994697490066398166959621483763616640488518121082555518107430160413870829573089852006799360260753614719684307809522057538699753018848874375302959847824253873651841968821046005197970812122838961235329371406506106546716647057050092082600849111915536797023432107034232995420114724134496802112010468702820583044746032106758884602914277348001417892315474995608849942090587057462414285429839299170858325562390579344713060963619023820356240038073350604820509425723310065045063999791425894219954412526528364021584926008364948992805355990566468634204660707669744762071983427773368294602532333790363796849112424170481946579846982464352372868099287686694636767232588058366898333711898321419222836966736916267461580085313845197594329813339536886196793136014562237269128000681017583021371727467920404285902548603789577772145525219352720900703359219353864767896635660996962368316623729144995103321219892343802564391427233525260414426666226759149906151055894161484261067245618601248828428354864364855086223919466030989179966180509995283963409919741163598075713864019379231767513871518676906418827606675220213377227799113471487458904487880801151130438940494168738375916808820999214017334715658301462573651135068153479556822085105442959502231974169267972573180313782610849580794515441377563086588062029006943410373758749897825549288507364400528061428494368248467028007553226042440279065402675188383822616938886587212601595805539068380167061338563393198853088531050300633012198217274990296096894726672556094828820057393937594083586819709295664204629363476541234060790614162287845389987889930061113845634262094744121518950988136294912292151854228419607717517672887702616667489003345405913284200645031395478961961874750541548358017865239055623789703858424006178757690809182404822463552051473807254895933204225103089534718381453593997310884597410936884496548396051999203956048415368242241989905240526922174268430948196921053589918203637827855737649741696894523652615685017780770990910998348920566049879180497837421318801909912328112845301213784615146325953073714885733393091443397936735136439772582981537913056304887545152226014637715386119427040286421869945386356270066653740624421540807555831590887966173289749131322715893803480221245141627515121266235576139004154265385316887360437906315360508797751928757169158313595559364343311922092673569392262198059503850018972764016243888140834908911455548860980675215394103240242436742802871461113496530461928261528293793089225715240541364864475644209934782289658808970272658995301767083877187405430432553035758900981170720990997412948185663244072036531693928019979013968237718416920221572750655934406746799725841006796118498591507718995097797269130948002868069079841864389857689946481254092252399656925212060039770953021787188888303045511004592697530578988000334908961582113829797486422522423916700602573623383508141497628638733438180617330339168089701775026441368099397336440349799101944131107836409436932186748517684649222425028716902416503616148512818184322476532462239878451764085963685159772956040698879914654673105326118703601714826569102418226479833761995520631175314529643640000329039143083447873776666448577087382732600381522499388855271861306184759037657303543839376491086489263786112048791660546303147058858599096423688881023645071164344608790114614765677928178252684560390499469548593441934561618101117938543584919865421140398654329724971418243213360247638724776746134183465942024264028356177849557084469464825711534859861436190444936791049950743386040742066759147715502326141502991150989684349703981547999629626057021166667980924683725377021433965833750967524630185526368922414989778631116747751373367218302402259503942121480205397096316704778731596312166701050056824549758113785239839034507863666897416897030576299704655790617097100029032068248137064716801934879568517722244644797542980991762591385907151722607078603886469296834500359775601967813556431785866734161489795625249462676140812379410616043761222659024664446527525410701242616945080651232550359927406678685431469208766654952418689517978036271426614592160689876456379520574766214700783969364167872058780586209344570503083069592688286976300886020406201070535092778892348634570486302013496507936665642946614477279428323870984271218134085688105179727586212438656821033993441601910448537884188110646511936765255025090639447933263552147519513901559336711834925769225209899949946447279975233646703903375239389072745193195225696718030342680996018913151495707464587089054080658981405424235233478165808395298702276772657793904431207811285413800121723519043904448453019670138395890016426414121217571038508209854813094480853691526341587785617940885892226576073862258974974611671251739757431129859078340591503234898177544744946165499054310063162249881392066900679010945629415672580858096178970061964139058688274498906360179180446938456716443738048179597718912988362542252032610092427767069644344575765710277631093120233598062375760721910734466466924985262207348921342779649132992838736984337758194872215332005441727170097907135539112928502329865311820203464448275608807713584003893300447152942895921210924192218615031076192956192354790481478211242633429823878125161627733044060472266432103081557827351603245697159427022233837721496275370355217912415923894267521291038859777970567841210510378054469348475471223824831254833938905600789892646878813490336686987476398721678374092811877284667423255845944860472497852840480439939947862376147367430562158583564733155567891435004594659255836420870878354081927629004912437470700264133112385310231385565962574492613022321042247026343154073418957500755929514348166630129786017650809094186915386173304987129241028329135035935444001210496925766068343529260288204791536001920974514890995345146499514406817207355129516366659184178811310056908794097310431169669716458343328028570504919473699046955958035133590654585001619310657786185802177579168318583956970583332138944184338078981200108750635712504890846248699828120218135273308704847981297356205028141923002183396847003694931620125086515956136602448666430898215254129188048037660325426103210017276804851034288029578721673597876051421125307532044686976532378791318623125657509997552375324665812870760272229055701642890288179163644561791287518405595958476037109951646710179167362291715958584018944928807721454465310021620789005699518297693653945167512701428352581986510083782046973134135201271856413787494311102296472459464980705242773114066346138418399049653248092465680725250205575740606383018186839082304630027515142624235258681590924770196021011343846369436241351165774965335046645416604288878955425348241968489306088608684061857231635861237411510068537581831320319907602247663124856953470306172893091213318136929549148987427329567956165495639922091659113104764625654741572052057696115370349070269335118899958732608296004276806604593677923648065701799062641540741704167984818387448386221968649062451719942797551139708075163685217287510970192433746568817402042934696746267227465912304032263771190616679919743984248474830565330110470288726662941871341708293153636739641323350738729030700826217842524825473916795611182412361673500279754990836125775897249879738867900653615532633022799038790993363957607129126733092125810442452146411617494630050648319281270979510780312762209632744429841865008493330619124693268569208263494068471295906928461844756761379587060201207617357255066842341323299733674722861868670275952576017762219072196479664600692347443596007129685885910856820716400708100916582208500474088564817830495778640212790606609701093387713140557842994497653777810011499824014154102358234544464635967302700122574445909761564884338453630797011570967073986293460721079219311515836675459477111210702898015935265910700679172439976562278826698454192036642824421680104836661603481640831446245251202646122872258249168788215672638151327991575455968402751252565199504655560967558303447484543993784559045907806536103242795730638087519474942868647126727699346351141390360827912227705835572301710768689250301009800105617438022143804232256290747209155772515682712334130280187523552696348747624022906107606137505994257831865624994189530780085597799548203640389639098433717385222735675913561820847533032853708455340141324027793314960557518043178432465567495859179769641913897317025283630350088719705388585542341487776578065048205036477899133478712687410807492885238220286080755404786173406768689899888925789279262058878147224262618525518337939121841585761413343597332537803340281935450654603469938788263824570577135939217841199027856715269690716892094260236862013041201137111986460861723282389194464259550760558099406492325076565787233671127108243066266350578887601547590526153396011609217751566757797670530193376698223536175050026227402258818613186074586793064175696478932876161893612415312919984300799359109293847897259136575243123128406615598149034733846597170604892049919873877997416131947202301682657166905123499652907399537728973616740242267953178036787407554268799181086853363724929864770592742678853533016408873958031711162047240947179156657670516037271913973782768291765148021587338320263686412612699545481365243223977329087040616403884635250019139876687454677402218180788040470458361943611698650287294342509568977272145479099151442090587595637005809318434902449302752562676867325671548627287737404613977361760877489784089491435620862726540257291899167276490655916528182503721428904117275913416460449105173571447770413919097696802660135013151639800553456744115088390568408382120481713969163822728361242589205421538066951357718256604526062055801377830868954377237013104647819748518819637865365111192708236384913374227618628262978289594511498060436864967087018186801679004206997296590506773690343517568771306895643776376895767236926625605664447612797374004132254665806505746710817629968803236959591477379479594515129267387647945910088915791256081038426048793071060374976139907211610630278548515117770352615026634361333001627637747439252505586327681933962638045455318565864076649216313946904375459052027489829604228280004238351060082799171945874468366917110899047293582289486913983661644009181401455323433379525346969621295458434571567664111392988514199378523653022251362509515663828840320929525279086861820806043573574427550968825624060194426147350620848400318512192226512169759463169518335420086642989055095510865760904266248311515136423825109581567774166590250499403766692119477485241815812563698583734674652293093319724951971414813324658122582538311432623844593521298078007991688570526450780807330837646134269891620612322088415207846076531814176176581694142611231037969832874990794936678708012620424857428494029391029232154552410370185161921781999684732262531037975902393731047701187075255683342768333415852803915407015627275745090755183113117945723380643243765731297525420620491988832108776846256763365533510800629785245741536572702173900898798141759388478277994310838139771146627822348650753002568941959159174160679144970194924060934166495433996041656278663541231082434740633105498097446681513660549649411377143471181788080994553848002382467713874974774067527814753708963805160354627677761478860716848758501642234461414256199481800846432127244265531684090208118010006101634491751836604828473087712907467291648114057805780782218763340008798462059556449367734143581226064232397078239759585647895036212788897686420426834831477194049039779486303927765074540929882396261750615943586505697601724264526565107609285329012144767717354139824338632261498241186840884619800772430401010205492043657681455613969932226460842514666704288749675925964501007721142292843780703093518929925936606180504026048570568245710843004388033295451211654954895866025737581452984609220396325532210577993847156385247576910842022490508524427738068001397305490944990247768783775652894798362291760287540002103775832746330050425090134243258201894491397545838796718023000149523342573888214631031888266733568204284548592402439332058266526041017055015339619321758976232799807818381180722738380412426861732405113521461066828038418363033030747721637046261292089452235528727628043612558267645320565582217441511770107990275739486466699982039961945615333806478338686771921503491608845581560185560931922197506605140194853946608632285875643625394728885808742318893746782229121078136049358329957251956579257640638349696661018722721338836873787202567541473580376361837431128621250314739419147660919851275989070288513280138097892356363453964336570260611441902038789279873834203444441879100673888846544502090416251163870580915304004409704735668229697343972798881218014379386178158230098965707445722894639596717932947346600306458851533700284250038712162540906141070106993309934435299182607505704638259512968279892266244390018906287959082994185150830552027952951321850976883269041980708766876633074380275751082608721127397903839224999715118219457241686346436108760493459717646089847087411952415233247161932196068850887413667515002492525190710321958299436422376052266498232907590890217487023557235635306367924292936706363440392117641189110423024916181850016777845097778378957787751778434915866497456402519570787242069718406924774603818724563167378453181483282241959009947377556569766645796131072752274163392845872150640111790155742097208119879120211853372768711281843128256044429372802142088796255326750735773121918300157464770004034896272446177386808801495487065301737073723674823276618279972003574068588648601043076721514885026882211516229635071365296256178509634571304469808462177847792350870215013321605131322240676167871163841962508298033776368296437657996743279124765116080918731581672062389366131147622535494170343638448897822821051614079334560539239047054480639795815478795337647916506506942908692465092551524588070221320771937178462601533305402129203676509958200957126938505168185140619844707335244380286906737069483292714416545730206135810216884939288788165502347847444635254528309421226918001593236694809653919219157789252105456297166778005814931442114057252584900775148998065224585580147410892919024157112371918766910879005243492874804920039703024327039258709660965121544572841795318865546255162379603495566180416785230939588188873803856308933470464947928556964594682602279495365932296343974408282592446072014600702723204112797802910355408853735128751490360197276991084353605196700352523937371305818766381029466943176625047435075072811510896754105644121528365629687421945229751527839704306091214176272182912646459390044319409202012315028595914948532629062565102994709261000107025234539207799703845562893974280984366611789731414096172369608012242530202272408700214479841583657348336951620187241146668430909753929381470414737983483456532544814813271541584059687989877531273612814402842897436763514533320599181887637328562028059777328757878362362027676902672925493607589833473534519602406411347067759446360488204031274746611137513913874073032246567157582346795044246636271519524727392282854094886834645237820621049869242281324838825998149274423688925852295958279377007342200694998814673903421905185003102362937246236337928031152056668544266744049857481268816464235424275183723834004390123460749575211216283399195263542261696292870581189614175323604406197572747771358711752610720206144504867066397730047750057791801711292978240361611932423883317817217875893052702680498995609325686555044941815230322363680546645478989139305784630876443560726899978393351126224478208497314773788986878555472469003780223970891227077316921216945791855920485381622291798777050603868029681494552337992110064420104865748715390608930427035747127786986783352864133858920728576679510003161562183275953407375300433617705392149439691890141419891146816817010333624504454802136084125448248635916038575063883555730087110060937922735491590955067378129723257747133408271276700758278892768132406773748903049403286011749038184092317416165006142883376070461422334494509148751334914553332409767566810634987928910583859628146377343587320340837816047813793961726648636992454453227542726044678856383374520536186447578492986594324266848612186606122597686744524351551218877193039370143932890454925896291723944348032745326054279381143448042925873216773689472371277862825786034425621161056400589144749645762100778512168483728635292554271212961241823886398748471148628256256432855979632399340689304179129060920281112940353440481475491138834253961948526713353729678781716378200386146251394971578334515660975913609225129372868080539238656634966370181202218831172468489230363567299657387261471648226027241523184757510197289761701530826434292680396524084793536051815035680286672040925197252095684924515024463239801835836988027365547103977784983251790550930305171799778536072249595620916110682249297841140283427928016390604907510903991332127484547115028281416237185383714139725508179421530117793463849719003391075319711198553427737126038898577395808230904180945677632684736583784787397542144137742414914695373134554823397510982913174206437259999496409328039425060563937369427920662779071206600498762493514634072011123711298975754110787184175007017464300432161592126381719597870843994268302415189368568510719900777159261601928848251416020369599729339732519446014525153858455706641225559550942229619919704481629040052706385068496547469993054833688494463807984142001543613338282607711807789655260387679383906526458363576270598548722883501899884461112490083835329988200774472725369749483867079340155650199264057706039285371331958048891355818076234270031859473131751314065774094627554994290180834156132769702664923071654191254398234658116684973791510189019359502530541576823242334340229865292006345993223740140006031664729923733280039500227881675400922856947560355876979144000830210062804877756917055637298572412913165237258510052864436428511762655475250197746328498420676075435978958258625575177629371790481752770557770348671048174105448888794187178710961412543047372677302911326713144953916981023771728063086977825857583575510233935823504001865089377491291493268667302262776881643095742251715399494208863166332090801330518710975612207241833876986092291413254569452750062555373484259422935307666755802043221333792204686880884605495773221501646112237967885895822996421317674931462738843036144451743458135305322891928796956297961907054244507729666510234569538080695434196194123582096972290140105568379691919498230546747242131391124833113996823439864768325571828321452841068851040234349103166757437583887150002095681658195066579558077086633291522689005699350367742980905660628755175397883885151260990465811140640180872041504612628882418589523794566119943049659238448509788459989819238033029860727322359385515379300641174952035616746840252463649689668630552667173420030115326797973254216636877271382294075489113298662897386367476449631260399819705809978171697792648813739869401874481272780023050356168145316947688738037270037871923178145719219851893726318790577125573347180186855066311566633387394343500000590723675719859549788930529305910039514793503765977305216198529695759092279820284526881208989239380348428288374330419950933060502683613246541140909405126337084161115813096885465497277170819223745738481291156364888205230384782790231110416345538087764480768515926283992385623970586429882697891575845712393007443191713725887014598054072364597470070776250330639379363784497141720708232483524411872901742016444883148063664722596779773032398317553251586219833502417181556088184654709608225762316118842471431934332440686759954906742320643365620137043278692913116002926730063071681522219312440109677998554200955584336154730199094602134317220572610613163007449243349042903722508112521696380995009558281769087693739214758642534834268525640493909363039305650830811543663769632400712437831389663441645081808177339793334504596891258977681644790095193245153093773608809110443292880165118123251457613467896543000185097433839167214619396912328519336286000395368356284698649605895655778646708300371008076171597140448923239699769304801038403372058543189557337467894269979772605769841620331262491571493441645121779207462239506509373690993523669806153345046915572014019513614358503810865759066823184132169833766897533082446521058391217821393704981175271550354147361191966329746407304060334383179337670339346977141624514329603172715011236482498655103979388400872364251293899166486815077943550739536367884365808675603481775930106311668815985323829727056113537608163108536127762704758563899217764160785111923990529067251793063735641529397016296406490557543835115720043412551202266524795268658160070327662855630786510316225023308426506209523043028878646456225330068374036806654904848431631583233317008865629211147544901472551026396718680461028189512740452353603377490292603419876324404114657170793942658990699519454188481814240280912499865484943517206130855242017603865535051518085850918025636412511895972523703177283122639187912073307264566640211121366607581068525165925523863862815206340299535141724414448037241361927689392116059932869948212112925054571514236411629705392096062031897418062098713151978979366204611091040265993948129605236726417524606197753609400069390380153929156607697772924132228860065471539494781232769999988712586011500061518515354518903728071258709458029718036040959682299394071412320717953072816624201650575650904450951551480629064641049314357224662480675707942831589160966208967152520020623712821088679992763805059725470032647684930568128537166095223084909120165541279389642150151208065844528416730266324396450773900187763510580901165103615371341911156781283252505880157275661665263904017486950592340280700522371059940603538557013751195259837540463685465681263238437350597852490826774883991433073337406664427333946228200863660534064457954175879325019771049336053627774722356897469482022904727890444605635552890859588808397498095904062997019103678216616616270871228194320808061239224443043560861458022475209440409254835823728510757923731050256860269942174658901973939575979396995851194592426164309741694374063907633072131770203247739025265486455683517634797144279792021317341092007280311870590447564055226083217896277225094199315001491699642895333748115922767537862477889030799839087704594752605907539601714823632773037044895423272692200757521186893974248911273542349936274171612002012695267941230378893615021581353702725066424448245828295651450334111706799374806160961182015550656159284464599993407972653875440137055096366771346712583117545181790341849395102474046112589324624114156131048359507564261580223785894434429454529056027115170442189538456236333643906664950513297570798577442509870732763117465145445653115236071904115489068828965565660256933499043302099769532203591655920520606284734755325119731376035944707378870883552716702834894442063898071291567176969318865144760768521117476950853434789321655048321333370012339958716291900946764712759187496427799470157876679183716049315082945091098340854851845395977082466224522815295962192506726929251501474930652617030800423063087759559160637422966410703412146629213685691949916684579009502491448883955406062768860617281383442530783815093599048042948139959609410320943735419023872028386831190425345117257847253738796926396040282816913737374420442723283641371437961723014776429035372640198610491252435119422473552441138334932807569710142329860968917539124946197773670097721785765781236926289851486327085637598144085177022027822178315611029738555616962716336358251362148586035801348300645823163211419662438220816255260135409600488563767916636894348272709656798924473680742397248517669079679812574943965549145630039065784913068606841395500478985919147164350049491548892642231580121492178305031664334518926057259957966887658521829257095394270351855725829659960702143798292595994706386284849283960885099172597338323285549697567194555075652546620438846522081837230216401168778030122195693008643161518237739898244391270866353300890736030048747277422498473204288718079389935736075067197569050708841818036701058242019000714639210264885505533663296054645844308456447471672583960650197865076575978847547590868101902406498759885756012461078172831398696719057102490648360455303504412764126383803005000875746954661801479432213188723600433268338289436523230631655065633683914343681007076750624846999262353839825344283352968101274006792312663451822944894950675059299403316970916586663561229157314125650145853961146575083937086796227507707992674250979762614711527018277118795723536937860347357460198372873049692682361526919647318225494895983618674719725438012171625419304675594664849028475199219884554131538408928035512248829231785859916258992533247745033370729540619245149507946870738754271276239018703630521123039020587373049688383137383901917496629205714531871115684757026507034532171779854885201845989047385357456316329489469038202095156242125674545965851757158213061051088469994773692102399680242292894327470630769576223051940164312985514394069529934132405567075056617111272311350273257722024667999374611918616719165365269201777784979943247336765509487024601791978856525167196898774528871767462149233181463448005527476243059687994287828883344054544974669841802844226572309045540283287072516558583306594254583915384267650773647673091053551279072200010736750541947720904619765888191806196536160636787254013604157028345937256600994410823209041279445826100728921495153929094847373268823874507922934338335061700211794174390229281440572449612193926441030941883925827176630554302197346331288767235330694077785390439430118234548741168552843988557911300115895814481054419604361819338892328755234326781960164402463383812692612293701470744183592028984570190708660954408332239629701089827341089530174552700690527636178135480815745245579339168504939367493571876416494798951173365552808878769491447500687089559967657845409161076656779821868309553922765731385375920132689002686689727995578576290174590057282630374492179953851233768498537795469784381670372266302237399135953380617417883067401727120422028397566126162611381466462404233799198684682954569859457564374231317560753699080062600377277651190848356133337754099027491198891782346191542254997363215136885175952963092193069254109879146505405051074133048138854612328078676188811287049749420021809063964488676430544664690616555895167148008127142331311366640278830291752148881886334816374519658175693608858597129976936005526749601063370090331285790121993878603972043492566318079823558615320290269590887505948886904419077088242462335445964541800722443488587931967035901627259410704858653730804054084400920347871096089386954924331710874563284411650960165691957406781946647814612865598005038719647377488935163696900456019280450939020909881546003272194698277888692711253788422305400500588644470607299787536445124816023411864821250320815468943902657249629552418544869713451430768207987772926972848257967408437929279757814069591747495028610290799681339693499621732917498566134923114503478218203591360968119111701685027057898853180644882646265403610903631620997100467101696870345831259178439471327112208019274996016406511283739296157719172250166013141611483476017154655679967312741122159352059706418927274247198412742427274800561484396028312557265522892004347142281151583537751813261045363698610647640316352191237009851012945465019924154843387997068940647922895401719601433403411050561529953066359462725777908448818468534222055841265861939330362732137657204427886512132256308578345793276291148981907009751815759833792851189949373030875223585664420653191171281704858111049789660220730116692802406046414674345423770150183250184581035289414788374263083107299200651813445871046258736319014456256520665255952171361223367106716145587682027612228934047962069424956708912381172913330219682239663451673720628457102202410027555161404057878261558751226406107066659341561944597961798359604275258803691034766351811907619260036436894327780640339833126715912732502065034858451798618998060568315061977135021456406686663033131497127536070482937879437199790892162415806046921731487556828761064291522643249087565441272950816874880374243177559968013362280035407454560658816893966524209598799960922458103188543805562355839709127580350548265822468477036215201136858801372481604255020743664298862543667070137768463059207244331802207301957576698856268327534278209607854922514635105166492863583776709973933552934647727943048810105937811081109756633169374919436177235259398011146946189492843580012490723260553134203634064574652375015860163613117148384372580778567339895784887057930421766963843889017310674587284461008294795596875616174554228707525477136052959802421580548302923177158735483661873889951354016887182110399009178244405321324193493894594788176139529684483157646822032126700859032175794374583268552505229077631842174031877523367239264007897276088812953113700065027877245348651732718219085167078325533846237059985653660882988201678482820152607928997903597399431608830992721389346647504995869142543334195160708300976731300805084919392266938652407773199630244680874928641900867359048802435657508570750018864660584241002868803892829571546234511856081159156351549753027321930402602446261071846828374705121166209140359811681764343789359049483018949819837668867456984334303566238368078830492051295743444009269103571636100225478533225110248712595539988702441542541597607336843933530514976107040253768307637487322041042371034958367970066806627533472153540521743328710315718730187252649283147979225872559610296998174750130555695239078161644067624867571206299923000809841508030681246882784395007799485521739893604673634336157677125490928247815950998075665518691188624330571223026792464181164987036371564566058517584721656150434949863815100314865260505163482631510368933042185164325078438794883229496670023840377053978244815750981537000140509345541984662992883033690367795360981644344796670352653928157408807801797589737957240457510155670654218293338853133811659823207195634898363903382379742129521013715812404055841030952959415900606768841875120608366615196504906551417323576755265443468237917926740876026600440241626290045735686154267439445478040934204702466749614483203160999968481925166171331579436649479606564868501195496394127348247980247195337720392913705691055963471227756024873755259193489956860433699157132146245459273913943981368705574691226270726597653553157176662068617165588219017837898154938669082317615927941483231018464476071827670350984531447778141241392775554231190351360821096532959830564467372273413927276084750178883784383584673749838406978515844839365610016581901549667100795039066150304766003069662670263378987714948677344505109156127293820059028911725122253856187729182333005650438992654022196728795429333880844011791038591652148239658412901925326934389371623164383951197995143199436232844458617675987058971526735019564222306357142410204008403475042277031520236630788299227414471431092337539461415468050184221161953735842892794380978202405748479358598942544204527478703235385218699368070194009065504337726708160371365136008411562268698262015770382321525271594673173987093464683340448904700722313303300802834682792961921713252680579015658329027315654955023117828686396907445119928138307128697014306342066709562865700876410877822204112604093301552886370444764107577141581027995704560079356761650602495337510327322797406858859957256675273839885632603415517681094523369783656721689872529175801005001128352151410704990425081922443570619165305959771962844298918986271915959561430645503915904028240091101792892128232033068723434870874980053675598789281473875921361847119590487243008354222544014821963579148174299273551219084678057921700209454416292726317172746515709475652796290795578868023912457877962030424517901983934530200888059825704222089780735727402284620283772556908048993684512846516294739085950594048186471630792516303097414960678481691332545990985976521251087433333368773045275042613583635118984387553588139448465745127644039786610497470146102036359279399407064562685806000490128619312677945094345824013075710653641848347108724299695074302907566574928758187271888932902640159219867190031788096755297672938472396974064564014485322546670110243397312746682138439315659650161231392951635074751660300918751076941055891916900690040941149432769007406785358122673239005610388101697344840221955409633286907452330355661106359859192542149682288515300216454803398629423370036064571698790312145706363294083858916311772958017370571118837106443537582926541528490758282224432119465569427072792157310607321818000254638536123172179596447065468849999734149385241618892155967229307386487898645407258114919845586895106880035215105250891768446058975556752633244280044472560025614020923886846368840156976577657566361818769013506695537421812087950001504758818968121765269640020640334523458557118581246384141130471989663386169123898718200241248401466130271495838146160232449431004572272781719393686917962559333539419046955542683789650080463906228779955570559764829084521166253207778066664290545282539070332736520004023781049392822883264534140363405548355096712063327276853924058516766874120919792147779258235558564001974104832704557428543960996321291288580003028514260743927916313920116113836761063501536174331342422208776655830639838254678875883121639323941516482513659812066797172745459490679458672728456630504419836013158614367599724362836629222664458793394375227535606876830857232983239143314636686976484681686853573106445269413510550443842786380792348168372632132133989655811685096455753953695417608068196213574861834788463218606957709985567125350046552877183838205989644597295034416955429215118861924524411156420952169166567551688067850142512909184652880154325364252821134192623018826247302866388366447998615604385641928547544328792352982081019741602002942769438488967581556842422275596360313586329092163086468887484831954986327157338700706415615053066167247450146471206810534091580811933758847931441283295103042043124714668887654288116118551981613982114060132286792865736048562520312380795953594838567106896683321746840620917595172508329876076699634504730344821775989913483252577086612558751083428846778288947886823827381005996741856625520234912407398461369001909578865081437838314260533724375425672962233095078150971313883000124830493073865388452101928572926001720089755457067113489962503211894495134928893533722132124057617128897230882614339152347019181870200549917989934086262487555537998495900539570833391174521567139766039295228391192438846669460135252375085922181973403340559048168237724763573452159482879468523300872357051363286550402362760715338553493625052738142608658739106326161964237626071540536700311162239354567788959669716057412284672948563273186541558168567068143911269066418093525687391852546993718269249330402319145760571110269060682862928956491377840449270290130488216093139163059560004972992739217320566383678584590868469972777971494204440990802409154820648715519441311868140558976546192495996982135825118853771896157145137871695234587193036469024289363504213371240578040240379668280730373663058905985063683042775215846376043348867770411469480512786923380718275943505985459543608438829873899670465534795943069375371829510420320550708339333198678429659854159976392150161664805775450900920648234683869313905017153243201020839549224133158900891498515208283554830159964197237803995714214480054129273341440714343708402434839529321727586791058533150786129864689241926518723361892268041552318675558619257085890342782705094468035288284116593496897216341171705159003782936105991409977737274526032659723091864485451780141593471470617758498035509006021729383926713444375029451046350866663361865479378558169193338158547852945622162746822471581062618419296438679053089275942940978472844555188266048677510981319505384536541885613559254631469922031124969303162076920109047145920880461113161594671409683835278191706476145388288426996498863132410420697250628018079028104651910094964701641972417388367535062206020906031990332418710787313201312313095486517841080230296077176782369522989971286413072245264880767090532531871414281131187186615452358826254310702726299335952484225876386074846316793878660697521364760815314184149435992589926127294845281413848385120383675780901898361536210276299231785058887064377630609633060867685344489505523275561279730776216849338474927880217539481895263003568108565049570978631698208327195948629564487635695539132660073541111876293482754871733161302636015866765562796280696962827600972169926543683923026087311621345975489922872230279349430290777651271747090412245010236825679724961271875921645565122247809936434736401931575978133229199613774956461135235979938269402914617720974645858463240059842907240902865341120958476133825715712304973728110815473555005820595250285817708336121185454681391951164299951655919076319587450878263533362666932922181968506434739407727471552327093921518743120670386078469248177894039622183680308785572425384066386196223351893058724859905760666608762663865468421626177910683656107747308456620953507953853346618160705863660103636345614275664368544756777747117334071525544474739661034336277548444812818281966103690837552668913480102378412061410783049055183076265099827970827621372882452652495976309378271465518457512068083150056999201060810291558834339528038879723340310282130550102963976882604810560506603450392362393275132752509624920937150280751093517114179830882511537167861781736213693845175342231251853660903007362137725965172942768151800595691412124894996078829476435919006223126196123165249985091665324485320456893746663418283774580050448919931637543228537230760130633920307191091031054434486260159693315441812301014872239807682540488412966223036472414048417782558007942493746172992225502789986026066615410768079770532928972359378342886864241670142824481802711662792689498511398077578297932061070161006715943018610352139117787639524528373742390988079912352395084555650117570769522169725947275292678896592424366443013290101779291294346114512001871795577043853939443502526315538061877825563065658154254186307253530845376594375637743746454793334389727821237779361763424529465644746541403752328860169411666141611119658942535093378258583165619201409150343995237110187451398118317439414242451479909789891458728649175626656719236700914265477939294764580354243331253528477591606664901006035607778739877505742662697041395021239706298077535648026453974279229701388399359762090756776225230756279395528071289057020317900811757589812453863166099516778012746352934177511046850020889316448869997583847815963177035111272689918187604333150825531092576952163754185353949983019515670965747025349868226920990983357690003851151462272057239484472645451840132474446471878119231648393084382853599792486482494924319996375064607343558716340260016321909861275748349312000906949676846706366757872961164200870683640370321235959964322585381046961730760489804863671311181704039380326532850929256266667763292849441145308571934377019323628804102290808912979113638611548216354646749478595588268407556086744340831836253802363287172705528123331411384073786585676037222048877267846457347214095111500823799479690318383402250884299930016756415342676645273382176583297965630894499134784834994681389643149524866489213588093359801316209518686031766912328396880175075783780568868891647241815950815755834188096714108877996501832382552605318641842260846999548124439082667721639838993157934799125956860503508473039671048889550438460754238273938528444762783545744736474318873811647739819287228272711214414991060743945053853964180198142861506085124336863156599799802635157522638485044774567114213340079361849977491445537174085660453683411483285886643930959317729765799614436859292804792011911885570098440404684581113511321399836308776699111731029026381736085262262592436334893745456662019443815344978413889544634694831807862959241744229893421995794470349564637782952089688969674621193052707866595903334496157088887912594046155237976506026882797081835586715783404516961518150928768615708265825358844410451442081552469627792375330470216807596772538208828514102100722458061423211127373531871993404042688942785262029936904614786340834444271922620632563766926816487502334082557718595357004156498319238414748296766652384917484628703350533815352982585036568948853926040303391204387557310853275964276555696568757645792101980505400570457484012757331448144753532858362349834766299586327250380115781085415530884745915548891558846415248301298655877784208385562460707346562828930435386875549819595141785015826048917433242052733853856941361686489788754634291842244775496839802231538239996640472423466316212275942019225480568081761169787358339485644015827502130555461483135643720893461236485911910425494482588466698429173500029692566231634136411025339450556001839853919542110931353538412441972979147808190299738125410669722902297108544019909715796713397051618912553806186258934577499768407537265063427921889856455182449573980826394686677912215607510514433598270353709456471829857449960163106424806080421384140501452763968588228841666308758406702151511553547569853285570609758098538026429357829333409340726367842010467231568114182476992680629598969429147204552003984879839033485945668588203282686054417032822778794746175003950164314941399180844487738074845516024182684139120908840359531623539260621185009232960882910633754240858360963447054157902692423024219514490651803193872324078094928655390292852185575395612884402209159199412600074498672125207467138903709076942246735213594401814686833635469074515818251314309460209411856593400637965927751790729668908297293426694784823827429342980668523510246565256883908869860577754227166585124660324991375644290016207918079448625140593898295846522196486633347147841938112903982254287510812406399811377141329432430777255065188888324475227818367767158867124063283656538979598045356183976222527091762969245732848879511297721593746782461128929863677081241960670265255151538415911522582514056809638878854876839788890277379823007309905915365866717731031639933408068171530501402806034337252109826456466047961972190679353665424283611944700892725851696265495679156644480272664853183595352501000949616590507347450139390781912340077004015535153318731628564599482333608422458271744579936592141470038790107668993874199696508176003908177302145367878555074024407785226937818119413154560687014935385254379712156901943403836153340219107851897658212433286996836278353350865801835790423838269240773569511371217984468092283121555150010553246217955250518494136107504474145355085081910316213329212650450252636447554266607675151807053359224218876641943339255130541820259935135049174265337502219690737320893579806992395905573587548103064145929887686934952300737319453205030086619884204971089390415557223618260810357652137348459653317721541147825133283853089976448078016196253903086705497246377925819156409220285291865368244698178808153826047440438372163396205742956511316932497459493448384923440555976225497602980784755227271735242993920745182739861035210904911741690030997632417637875410559075558276783292463998192359689980939082523660637818770288034070113586985361587077726251682900502839495366742556631618682103476160902816847027105625232523603228343614106092109034161533652719454360340818483771674343286407343905538285871351976435048182406330310769372634254972634219657538401191906897379560552011308215639839218247217189812185161641661655621860544908812600901906454593430169486829694935033806294881770303618774737191309773617280598447644569559762782101391334656459822053173972447968296398773026486564299823038378348611632594813915618913138970676550599779546179588705460359991498742336288250194626589571370357485167424049153602785022032403539331730882280443484343552464711960601479465269099863906684551130907861542566128314473116691678867181624965271930329582777246971865219572670006812269772806157402555684151473779710177811633256488219102859831537700161503321824699150297146831131915142433720540822842541379263780529158631084271284458851432412281923569454420701146925275864051336514463936137322884402206724367724225854258763485624585269604911616314339536203739137575625066473282060140488825272747304277542032381984723232818271315068367730403421761337255128811417056838658242257615920233351928861718466211396363163277069722885897609669956544915663401225367192659814186595001272029991281200251601018300839863169424271120360254690805723536209138503638395987316720229080822660148767008450094370323621433417877593962345697281135587386379997350164409666678257270589740762460560112374410539398957146414810810147978323165361534118437313994803169209508272160338360043995835450601317128030803971798110511557131382482605324705767747402295369800572999915828029307006265699466212246379931652007579231638274670860479580479921019547307816946655612279312837104008408452572971891104399513988372939346850521147254390330061336066181501748984728697258752157971598529868438795760547331819772466271713871168177134036809256312879552201070126514057445804211953032601609590357775087547504537558214847039475921048987839761114459319505080905672497207738460421793619172885793445222506398958529031093857633665598642838268003007861063001607845555513504266722713576238475893405948054735820184292250726947241561688262761192484701201432807823786379361487069770675238661652704316502352721696131594944930665491877838762536132906450004346852599235539868415114026847956363412714645110475868772714766006650368063964529494311787221026459993322202729854707891656327628916657388482090869989333004728145092784206702712619026746437579391739366030256579322873816589607658273039412943653492918622850616498730681282137419423609490274048756414328738539707593889327131226926424427317441168704438295438228862889632669959364083157771798964659607883951829512626608458779816115247831503884261798261760643991852485427268201890366414599020005600481470634145902577506462708268913866895372570571107352903211583738684179764755745999733224124426331468305860211414897879770090748312494530217307215361959611420823906373632375245944239728176978097616029349873826970794190246140772224700247952167582079862900205731011854750628735760538912697316167025334633053896672531179860856286731479920049112822327089123988903615971762285579024017271263558222219124957343984754699437958536239901403353941355870707948379456829078898617937111882473262058964839486001400629714110038165211672206188799829061628700629668850178068320029293999871241399485224994121160851606711395453945254430728954794090197955011768763107185986748535886782892779055530556113951494996500338552367921405272740252767726191895138447110871272122641528139447179619355562372395383305050896144106893557523428369582484596862929793056610810023616479113763707819943008736946966851704781048457911476578972374450699180447426576025083838533203572195269249699481617342466477291685560767551224264292328234374922116240951987317470838325008908186401142493973349112963599380605286453063906980649603281496442195957344194481747779885411725550533347960242195031130623880429244721851502104440986167254134962554376298997526040928357731008985762570962633344187324212935487486112928795261817556352224205297470909761584541120618943120401468259936787550583214064438858748655406426762874490829506014535418607825596274707949828726640983985836806982190531553257695161881217827419487286273149442341268614982500520153764397470352366521134264974188675160820542214377209267569008842631797228631441565384238451670090809097710990966542555123287953821273376796732747224393886574756352374114320829005139202366106852423069174878663574540574805868819538649445258139587591426021660590908685736411179837782402806316029078116216696062487238002851304042512194700300384286669315325012957879417388766605375212582526263603224682741105515877340878883238639666818308949607596711876921305833308463945642319608425372769885020935672994004570831499655391977261694003106165863613691476375043523902122893776299391824950387428776537670566905562694124344992450010092701947620323960567477650620348193030093415065713043969486833692219808760321716594599766275848920817838995002778904155148214835964131110850196983067265663817376682417972710599407130133937561551949150207009396222574782354087855329023566306167239285887918340558731926800032842932192223640708695362823446333015659334702361810113006393494637359642179456464554489269575538374687442622788252369525689520573478962791106529235860576104306313158785612305957451051182896134273137119734679444951414698673552679353399615243607715047351179123037920423933730465608123830961881702832711741230041773513252962480370700506132258615685702822100413066872799032604585662424651260118000339744843286002684254589813492302453273182693883888444586729098692441861922880509559305577621283149420193545811125237880746398876888903241659817911813371600292017172635386902256722134339666500654679017642553418883038333625890420285607179934775000644381483463404054658049686820203968413323954043189245471745181227005229316899022005731017099365251318200524148478656569046941963957330084372093578574840779292348612515641141467640421485056987603498698795246400427962702908306367328496760566911776871658717820505928934076130018754286322006951467392247339194799356702077835179073859762064629654760412810403148079343822613635557128806015481726333048997873788071299352763120471218404168481404798878822318257669897367918482066703444925053894949957757106108870913692099525075950795806410205168362124153050923480192273529801445818220073302867104010551792656006814129578713794725472686177127369477045240229433353207404373580662944685100553299848183339807005742232925044942083069462863254827190604583658592338844315030868728355945414193579995551880898400640031891633078854490256487008109909715643848467990991974701849683943869863831472945497248949579691528390366951040316325605823292458949277452666873803975574683874619705374809448622051046566836907037445617594005754609319051567658249946168806952180448440718085937476126680742065292531028045052336366191419225469536524509978648148954330665440339275506932611622394989171190381470697051159624641671687647512249364439213617640987740657316288827550739559192059777687308626433114284957782780790101903285056378592046304582247357005482759158437080893364088814486249817575237297628039443009499141512298606244102785839437780669426077212087676386905360235483008069828736117030323821979484048549876083347009830860234133858029867078363757578094040088652096877450042407132839230866979769070340312650039940154298994903088345146509010104240049946766389817058102266737620562513792335056942253984334492549968309490673692466472066195909412112829802920740694789810167279411316932519413453090483909869642403682311429880092879074908041290499957262286730883900083252667662212145586475347148898543881521819769571738326839248985014455540071295559625068767700352496854882491796552611239439377973242629339226544140739269944081352706388578465794564041283104728653082274922237240528918576948028897176118511418195702440035599441166342363944348744329835237978780221269789386476639403233037122049434921189347100199892288899128356563090308391207467796063257049393509897289046387229329550663574158666661220945267974631774070591222981134210112595186040421447259663620669834131149538569622566557932780996221183641797561724912264278971407592106099276848764405302026411757706188396696310240486348263328205048580981643824555112066195166328258883819287317591211471878799525976683244171056686337252886208353126077169254302110701689072019362754217279484368634684487280020315405094823353227354206884598909224451329151173218023107722756875801140413036348047741647349878436091459915628859991833399584828300668636288053723677125016333117073408238361036292669978923966858552271184491961162712184553225446266146381381982697171461700742161011279441334594138990916566177725272074134066922068892848317074059147798512937835429172703508679551957105596020752193934099007056316753834661226863857352086002088447491620356709389769386778579412197417204424997316002248486864323704108999687485420863572241785507133401185104267002099090401754874777864249420432209647162068709591582792570979497170688310206553761827438254240929959190299639747164362232061455360606138810326680213700622755255850420798291558674584013429053784204056546277740104415379627883796722661186662803794583018799515029158530688778761672410265958637763421547771970701973761537760752898943645385192290008360201976817804447591712526422974002436560316626020154782345721293738163881138044634552541836855503872121285954762020341877764502837817944374251042464372134643058029232958786456957694380340362822455192531953516486885430870549655454990836021602533408454301626536447812786852429840371177958145209058986444052065708965538249754212893672808471067449131420237885038393889360229823349663210048576301976760407095620071635332809904504456630650703623995417125216733886711656640999266561072535483801039443823185021543039219684603345174261474860780917607886303842597204478274691139327918700999470163489457036308471915003591944242727372422804335677172668447574597312234626985494046216012901205149479624025866077568267596153841363172823588335085019313963647036949632701462718539364862328686722461477274567156169720162493043498562751451194602469835925536350007922026974690541947178266518027969988647125008447884851244768781230216902463317991673215580596676917337439322595659498224959272354503760416316592804949973371287233527551934520167673186032397004457869240888708632728493507516568067363472765870573021325738824042643541005303175490854890788296810687503720502913445653104172721588827320664963415309265950372074516089779004474329313015690276851396005421135231353998747036962235651017253920060231368591190008045701222816548764123693168149208685380572977413941398655920260102930198589049071785273549386406088572764318026543966044387597423534879405762765516848548205286969067980073162215120048267535872510314896928562791355902483160139003319283732096531249952360924904047430130362525357133100432296375026877163546192015071862827228807351960858840247172200025201624040800617153787686548198425265827739612651282480168425819737384208235323507522450886127522859016312621656523055087289155142276542935649119443596757131651976767538466956138928614843599398708312703900443838436742987176474416911436144789216239599238094422687673686616901895574039920094420523675901390544677341029891759110627818154391132268878940356074539415289837920676027728331187291241507715726964032165982046150785650940982698175260685284148974430768499860355423162033401235102041630711379820222857131811033518070438636514129547651849299305226573172766334375437227602109651529712880428162054190036614422187690251394764874395032612671672784782167650588679574735891351232331447346186676588916778411347102129002148041245164104725378607375554862441263191050300283105675998025643401226497615538007557826432391058347692146294534977657384446775251051957673013946238639318183484796475764552116038943897641694065476342023398642137086183686288680058185617383192705778256672187286207109952190368955321079742573586025139903242145566136321060453668015282991869526329222617864696286396108081263142844371523435223277414427718158300654572438101513279675721863600306145029088458129094741985163536888107139651060532489882959313168088286726431739266356527414789533041218247186257574751842585191078054524863665704892211630245920210876719394800098013313752573713260692932387669864501920679157552804437812149630118478049310992195104101552920409569360247036808544541659505733087773816061058204168020738658209030160215395176252509955705102936034036591958611698824164046039415829257012413092185174918051417121931639725868174867855464122960955861566876926671620923843643010714197842529583549515074201707927684587943350877188780767532968740283127208516260170772914046514984838386883470201275889246541767482865470656962012634517078006546741102625781518464566736584319948151530412000842714758532137861618921706508684278999084661354206897570222998888132470171858991267388968785026855782730488477165805183449655817601507939344845316993645947395600441451500986133419084795000390127574711180165652903676823322105390503091606422184242144276557423192448383061319776400357266484797113827544646361438749066789535144483941670624411309328100359919756065936782401401782715816675867681446699940298091333419223462514169316920488082774180838817840740523422213517589004764450348564605177207552349905281678931753156275317561381317565605309103338816998017269980089263425517193036619398202434125634942819210958603033515635333142950992403056115980861781689455935138977442235108572606464466637436472604653967895509105245220142698298023135276644165894908640172919704637206821499937927284595743150437713392552140833618922798300574909609552392576300518430862009811246060210411730990179719942916198917601285027063397407469221431657049994965536332379056875401207013396036084940429478261143521998692400303789859028349898682834729558946288155116175415660045151135966581652479179541820720031528388243726635944047059699370867284873884949050191174731702212667172362021359154472205303376365423366675875706790163639024917139593919427442827025712443321997578427909993427241317981366565672608443641570146030817271355384431773734858376571863067106984647040463219525179041821919955925859254837945793383216219817035367024313203044585577082830359753588997468262347022382639713984209586269632824528684286204918912021853322399530888664343717326024136217085171887151292432285627434786703596185821782613578651686606273862669882639307854764610675113530452744098897398201007494337170139917552414376850794162352119813641993665464935509351263340815110411433667411835981267292444409857224415713826216192430268808005623096707052583689144204426370905218041069136700882513632131169327391873827022095871613784732262677120432187135752407562134292518941419190920068661168718935083483772869579969649269151476905042814307205239477309257734616110781180798255546497968123683626325496286882394042379485952891757078955672025995946144838612954094332217579877776592354026789037199377060057789867296810558003743200690390679450221988508379731774659521357618812927193829947849042201988855664316623126868086577440547256699111874734920606849757823471860706766447215567960778138661957641796519224484129574695241772156661683909534861583955051708726204343408203861586430511758034183146793235120624983389452101826172809392045629722435835051866051681231321193983724450507799883370420427032153455417016324200149258277052166921213196895115993137669750828800257388298204867509046896107996222373731891535418475008629538017443228505775459071417777761752479647900482314786184253612180958126188780726613711392806959732633284988349420667972542926372104719253540451627241748679691936483832658633714963050388038792571734426950281273155775240736310296471999768942232676268545359895885615130101555780128006688645930776507683238783489719574249243572001753383592160146640327150034416062922469448487201989601532726657471344008212853914487554393378683860292517815197235133216821377247840750114710158261969933474466367673286562211160598662240920883831030237886188766058884485723706666131993340910012784505209381665004122063717696751514862173199063045215373063394967166988121154923717222445067838724935849673837625883678283485567338440935387334432708145614201954558092752852153215097797246962516473607995358381078443974303476011682647317761486576910329935673543559394864949345955070394961449132582305214107691461853622377561914476569876112665367057116986840198130490563266194676141916886104501442609499977404637643934031433036799176463549973423903207224587107765269476422315299182103190751239394654646530889436560200294114202029729626727384921039498188786096557620720032958277192316794309409953614729484022361259161708402181410876854357442986508752707581821026850611347042977727088640991492100727594190918016625936204537004059966576180070627232512998634851678041648432420413026131856165384632943427115877552551357992144256484072048411164762177595287472086829853702958169575820102284036636084889690796909341341500694114255595615282453809761196810170222024395991289779764512845899075320280411578837085407791052133249201411535987218465717509186602052804998037605188144634054978061374151290235854713625722248405872699101390502513610115133436959087926700537356308721019274838425580723253775224175023756399640122073294322609787901674158667888823478543590169480603176251170314462068654671125414235315531604880094109628453596329713082450765407609453550478733326182454291836652899910254922320570295295052621711235744137964767278543103113759443182832233835923708057804794255124434399939627429429198183809034317001646731352387830859200810251333413050066063673578489748452005832695810289482600475895631779683945695491000665971189168486016139907485600796328920384853051815606996895446223709461421084037980007035219160911416062205977185133849141346574402649336405396978539430797523297328910462717250901919102889169082435012396831173123544009334205585940586958208388105989882114381555687274513535174115749205299440689182166834105043571365973729183793931046057529011211317711084717085070147903701320992070120105007804565259273408518524866927963919848433980706739999631568087478165535171786865248714885143348369071778931436318381403142844018395940896487367193165223596769063238784803056838141453851051957427384353072276263690521903368233057272872332470868142134522817804214500349325720317129616131303107804398242028129654437680932904294511295126234939671166537237373512759307380037759055518355236129587475015370436379866973799521880517547234745987845111112667020284874703834452115367339858076417977013537566488304867414666330745605375737601986110692150081773574679115418471711809902747454495820478389603167163045794608143236867091022894588415533683211142143749619518885016864930937817619253533979619404303154631007315029702655050590974297923897060365018074670747876372164365729963618979443299013110576321736322930161724798960374022701438797370856164953533571986697835026172811435655339307534532192292931530903840008485453010591493664561908090665097179046711614674498867125602352344763441698850644021097078891405055641329715819978415584606545656526971843552649251662146569506753203682501138243245323465008319104193925601498987017977781383720986552804360678389752986305050406282015678623901968151973415252337290227261090124879972461976037951907152413014532027855854466284791842104588318896686253010213786586695889130313625975046745314722245874708329457855453264941531126797958235101340158905770925846854343114141115527087929984165232948880769736338293027133718359027578818492746159355110360451359123017163486912029764013931051122224180841388328413684950915677220171229263800087688147277330798842085120402169740513419447321997898227638613661171385139377689652784704283407918975704198219200484533479659904636803715590448790710908854772221209955174891959279375030399691981265302958438741938733730028029837041424822133745788261247468928948085446845917360106060591013693114022080679864488133456203659738439649619466209937377137955283930961118281077289531528250552666077849053849301529258327054336658552557581348009043522190823228907497052997046158471720503873770858469210394495399224930405731746572759174941908836029555611130500672954535485052063732149834973143516023494450592468346994351569793608240278287853176813569386299047303149834478543586843583947935090138519334338734625645074494306686816907256301344165912458745371075278232402247123224161475215068045236882298248033023169582873965441002619618738561393246363953118169657997790505682191385366032645035431153137418868779763735572993845000037079764496216934081591891576403180363985435221448290665390873743762652327195036846546419388158549324567741024125078261966488962066490506315126190800645246390926909183665354965171396549517369502440652000900138624173535343168872854789423608803763768864041501428945001841841639987572532389658949467727588479848629560110879773038220906993720777823767199096740341367550267271943749669898266930694222769340977676572696922520868459405864348940976790268757143171326609856712670331631784304059812266986545103162839567217536664295323602283371524740718320932650987001386446163028268250375779830146258685512975127287692273824629052539112887200474730687560498713159593514431187765768732325660712255305227355475734290517710573608450838159079140689753850481366508882271201141850487353207259836741117233371940932678202112241022295825650542531336730671821267570807529143022815059532148917275513485774045306114739474855049343633737636316109297987880737346061808008055439186874241484759291139421367362730588681289370491091438179299507407297406537436501312662103391602014794985714905337528208571718471342168119130677578916257245908853547675919610909625071305335225360243182564493833178716708772249786756558898324234322747475021232394489567197746722988209287581199572279129552822003211021492048727990473297809023180723299870220256464575422057319472708915500462960774008090516020355468805050513075305310727743037999159993283722915972756862205242461912781896443497634692710473340616307631488013383742535017991711407342097956650397784981136401762617281817852476682041975571213464766459812983451165761964724709564225919620969365185975780141693711175842975487100716911896167439445374532813786804236794881204562189723637008889158824463491655111909632658000154549747879071773601914672658980555432877661381847260336982261078308962279017735917226332726917773835038599854936160125979139597308056850685978759376025194877057483135877490408078811887154698525743404278313102635641550532153289697966921473181075924372932548287231144741793067287532590854918842219766733018874047580552456646020003260828909874793963622438302307625810179789191820447272589002313554034770439270772878879739992981311571936018295238593332399638875803974165754712543543883639607826409878147910098905400476506307984668957340169898500088813390220889141609993466183548517717424088755042308486784396489403595503137899606259559329818286494273112991119450804085270800820708021626782124023553939599465022428323477756332531875519274401298710964878342798914750459202362545937396857976514598282120600951300714108634121629472832250330433499610875344650795441687954349127171776360684205317054216366831375498995683148674507351443587796097565149068199964882951446901832501482033860592866720867533445317945338353780208980633328185317207946387435406417084056534093329759171364704382827053557444849167839014297529744352490202493686398871792008358986903590691190571824305706506313565685242334200517576353610760867228903576025679513838797716999630514510359669310999683606122827933453005960650699287308607501514758720173055294495472503293042319501250908181780159285401422310844249164081735495438011755827625086401313186487352110632984577473139147341071710036185254766119203039818956588828181944117117616893602039049854731595122343901343912842509755975065619311836922924385305668763044059312212632441671978220415977100874954489678988501047963408938712633418449807838839355566065332526123691386604993100815871492897987267697392442718922377980081964747229902225034267931911161509779606258551437393632245909505235894576136381971346030669158280240925813708383919428284415383275279910536866046586897036933290294091330618157510985838246846828087445640478022587584970550027818014733502939327025247234941487873756649471455022257417780112085188316758501892465764615796313153007678802523218064301347961161139818814046518424581111104897415087578608766601854376534345461232176377044516348224233678003543297113219707525894785068610778836506934629468729256340977270373795242409824321928795017095294968525575768187454725838164436300474155567200322452429867303423429264939990672401677268762356995840123369868280506789062605135473438398671817027923402294171453998558010239898625344476489366242305428560483298417571240494241169003501291357108142700991001771424241814234632737722542897747218933586479901571593756452331719958199889123950782400304074215928958989974939384623431345919097453824477420108338545098647118304700580930030248937731118428008004285963721569950920668296319174701223585251707106330188461798298405232060932933612349297979239272446709714244474935295185326335583776414306893045698750329644584393255204639737510328138168984976247426512589002696994609883641784917031591879735849995618121361799760138292844322673481549764279061732544515925301913648378433912458067696779104233912309222490387426149398991410821251989662237751949243362983525215830572514312516466247255471734140168553409162025973286985571520825356644395299892519080806143698571867638978664869544727866011856646548949950018557447853763178030109424170204099474249148455269474866479059320364464018096343091999926030554726742584971958212043576241924736333602293540175390051046733013353097844588963144879320256994200375038024651195405297236332945669647649906303367318161908985378264016604929834380590853810405133432508349129840752429241199146824216008052335270743276921813909151797649298812468062758807193751723038325183548609234432996470364467959701031989195668754648490259515441446759723588134905391769130050904742134528763759098380560009140975155497973165641404657068423452962509289687062609008323226790847047773323069310109164996673516491396191167716956216742137042805722694557688011108422504628739723596847052060416977798305452925636385198341890401170983943970629989032016958807710279933583638563226971079349974393062373535048266707791728179361274956976227733429883987217942935484728775385321675708894667422730501915348263818172331760571812044098446066682818191199961793775389162010734472283055571458315397617962487719930869729035880438269128666428831883670838502315207793913925812991423856672032933540248535117135301419915204374742750247047813088420896201204862574091566678174084995284381366373162482006178701304964644803717238596984426286027164912229621320627710088423214384648327297949222651886761124622280831359041426775101060042708159400928222014175917552002442826357277293523842314296727910446664363606082305023090095694224578093474816381205958726166066947650278914057556001311013880418805956565290839562856438424064227897957665183987440998572053348769326816939805449210941188163642129855607358990984372338693460542524289933448565384349217310414033778100313228516198328061643076807091004852291644500106724007111133639690818552317459811575368390580710041290499787403750264281838946693827009746564586004384249382433550977197794597489868831622021603316722828170036288462931378708674110796128190327999806664152540635462191298677756242371430779749933917246481501877776057795072157753857263999525726410917043140146567204420876692539550308848717365455155536889741310921002590482121470225116606383667275076068635553031810162557000168594813045850294993657435573810452823709779317648358863619527961264521134578785449550259609108520915429040366147150374846048333254743284863902091359766337510622367679982188759631677481039688852671147348805587827269407653412881655555131680627344201806231951112277234514388518483694717361664866938563649389661173597377024720135022620321828731159352504000142181896395808165528776263381763020564889759069837315221661003389294535142048301346093424347194188732753430216264904664829211150646879743644300261542764190835248031583795588715891773196300306246168578164098846171676397982361719769040967025762845349166113929681917566264271665048834217586285360880382149854859794897771681004318944737948074947038058997346984023025260251956510739914723965686467512556850119705139928196908621929573668015087675958447163327969803014195826207044023164105500790286259667663300612769680120296224919810992698580234041403651986980321212680599530543567570708378708458244357235254276093957670334251760935666526815632883455589643814423939357259209800603962928672266269902751580747106360270981005451755584911136938056866589497393504214411646637203052246337671164037080753238615044537312612594174042914117402130998408953058410590713322552940188091687146903313703758783471324290061469468287355959534802303926853161089124012819601067232822795640837906075426765454343813361648781628764731588078592336250600370506633703103002967367210948288909212074574747395539058905240298669013195389915720148658870645820322782060574476654219169338090447813889763765817242595205618404151392993216967464960985853421866992773285236591081512845403325881738746577103685309636014158076827131738786079163266255541931130965191571321644566272913184208511281854291892788074725611245895662351391953133574951921120867486308346256493933325606055058784270903123217659065778322013872504978724660235183940219074173860436233949600736906323173324255725193222734451381169470409545772519753138301723410069533388225466625341384363873736806314806268296145159352244589551390198689893613032829718663384985223745554570788076784575050840989698174514129965383064049826192236966529781363654179117758697825520374488215430071140673247305032431031848414156239145025267024136392489309262453168009845430207590849319655425162819721262560553228887883938892485280249930579587453841537534313120813075678874447745781929823701087221252818956172288698249511079187202928104451920885848730622332989130039146318338138562606344497519118518105933193745697940718358525983963187808880382455223851983623648227334468714157565195162298431719098561347386895209878934700098557455010254342680625133948525247263330499976414909526581885556371133593286858639542279280450956972004230985291616179378890819038040335861043790442557663400140403521036070182345016349769705373051950671779628751869825309742438328359967094559250250159478791544956846421015446742898679045337159620829007225086532265319687677763290245099391655010914106672767737487737356778098316540288673473624941908343354933497178975809689721561370624636414337176526359391165433975380835703172819788377534618293326975260899151156558038506312554160791041410059561358555643479070224065790661948899355746431192459437046626813282868534121285287006740842242666676879144260428003868531259245774037033976864406960747280322574264917336769240117285248202021625110826918180262008928318913816580743336448321736873298640275673944704694486078850961424473980576542670028762487151405117938382070765998094111552897107646780159463326616431717255881732820059937862690574488190688021177256573232055777050292639789378015253222816281106202405001689363870151390537207695576493792242430099601433063846803682041213930346019949115721854021499604798261260147974741895171689696356784498129534775411222754600594521897561507666850514952053480978595419743475974662172013078517736617627977287728000181654456140076312804283161903776269272215430204589953900342810277398799033267528822689514952943927003500287661794062032327754349513232261323578520779429766431418792400762315037277645592235247866885883874589754187641230740596640551196829275311846155798598443519128360590335403863385035895944899057347801856071891462640598594736364182208219953269940950522750280512296388159521358313969142133932753217189441258162087140441627039859508263711928197665273742706842656834300006310776265531620364196286936662457732959372316870479851938196264993659034005365133555242108612895838572933504580360764617734960689086675565955062351472998903066624820677354995485506057090632110494012155203379755217683675699426955538625711551592838315626552084582138261522906418363491103206996343100140946132823341498403544208115869955035321297049153648064865198480328590423595814568357768648061676795104155742802729846441175735289594367393547984104526299855342136014338472706295461426858983701851003735364390261564187157392409222768868533522627493697580029399484111105231775092036513632722180134175854031698992027036898071016870169621807824209624251876226530151559068530808658884003361954059670545277729460386249489923487799793369784047855201876770840389213523485145762659622821838831943986753866050957280800455621428390961971147719189503621279009599635390854666767623010895814890972645895870258358645332864990190368095484962911904212196621661012682743736453828478481844654540961367066887532729155010407899961822618780226059688686753146007361093888519672231888102445843981628884000247620898956263635798888027422203150410957088342873959329965026786037077081955642205943294913473902719325096314210869157058701191044390420499617728823024022195916329970225462717232547489411268033319807758356107570178489056336118895461353039245726893396455581977835346064733467210070363201912548898239663047233756248185260746590879918939365613081006566322505307283504829161841555824083383653452481430731313998443283544359689732893336954087350726542369475992394414113709130224675063293845724105824047248421392794520293599460485137507429456228144939836796500542446572227473503764680007625412937088435108139498723614079542392638759655427122790055106055693453642007209704746105214384211906705681488556912634455792757565966230817327064201269802189793316737429074184100004947035063801138620152500803645630670464193851739451179069318505678465574962230976035960377030715191848930320928219139197981427426358105856495237504000279186096773871864092221479838986995482522610657329450263493150344827621273715817277263772675531614775672296557409233345949717382116176587768738757303309778561307163902985569557323031553752308221924998321898408709788321789577631260301072853591960180910863821399792248201846775170940877524048320434717888257706200311408401115477626175018792074060397860499805012595234680175265382288660685288520390684455827822475246004623034804242615089039165827741871397263328773312105112399996283685649058494329019635196427466864186155659006937158649672530967668569097072862637326194848594020166742039941270726863068115598268809890678321123139057565402843471077727701443518189657135382157636905257686819828024350831163337028137373604619869727837118088695244038486860065039322403646574028188103074941938404398321702821373046932124629652747214762688498214343463472255030048221642199737012422174664100086090482907410639278376150443869602119772593923403172080862775254459719390486044442768760529749708209951985598092717260754526739658371661909591766873275589342951487866992475418906543613292814133144089926328860346130545967929762686615855209923490690002801660944706489265705221302941308035255574912308424333947196735600690525925863948332502322027331482119935241057825219237068543218111960343537943653048158172982834611718955641084628841444192092842971692415429045424339489327910183561355583024539111904376697327555841456098257376602535915982290247474083392393195644028191742804157843158092245790262415418905322870715483928786787859683320845642730110510682561612071877950113045163361719264189558929175663236043672908055999883168045017238772606478147520651030495231486395762609043225205161134894033479721033368385798132538970140251145478988946371879398979230522319890391004658248594482696623246854085617923821679011726261665206356481734957024299411427140836746645555896290964348332823339781463311948934728737671913855120522228272726660843182818033863610457906455447640773249694571590579909889648009662347184896527330565626923605268951576186227493362479630479938032190653208291225558455586065426775818790471333997865601485221981758913910458042766473822673625769114970961850987400782670042812149222884503186111079007729531293048117352443698799315684761168326363266636871613955277312727690322654461136442689360461933288668695042145873678653975665440223940544897804760762366791312267391194093674135511518845920194489554734076431418491725182060986967046938116928551639432039926819334296254284813136827163437060968142529293929897426394913472217523635408590127214952428727535941356877201357183979954149081764238741359792034821111222930713810723144919165179750332476242958253290141087361657766073353493702570054029727198500040740070786396235270569320906273250296169876231202847640806784240054231018834678088892136530622730937457352446905022876237220517880052955319864157255414418221915376091402513271543433282397905955597470927099770273142886655847474854059740462610015443724758689138241178401164135145058531967295103434198505921773523859614384603695974387348260026315671588073900216359939324723105824426133524133500276699871016522806757805147065058136646535872696089236903148673748278680223439207362320865819569335578968427644129724444445773536369533096949636293502138189257052630111034815785274932006302682701560951115588170103651302484689881107082463992308578399197107839137765085601309212535268225033452711909455743582036613071612153634809425923398239252070612728660329504764800143028064576404035329078852087689785931331777626006450922666396932197812104114609896440839673761260548197285199700683029379010161388546324367584511299836235835811773215422928655660722242364596633012046108313865098110561292962758437459474738640371835680585110125882548526307718092195063500035812502793072525985961633503220646783019134485646197957082486320310411131512822588819079569926916930414994072767878904273060788666556120419837561174372189928752841230242629334341799772316524739453889124722954388301585989581436576320655527376367682668273674930559896789402624407627353446943755837010093871508530001986122429714516836472406293203705849055794775346418123365917194101951893377506411484240919401442044859650325561567302151729924681359341582520236886395261906739536701444931034186135903541388638471113264644969925955541122573964423970534822417106041026054235491484832959947198813642333193603814444146465013836129718815293608235265363242033384940922629524287001411737358359573751125148535885946646940570016808357150748948298858016083429588886244985724029816561590518144298877178801610783456483765444730734339329861594468582216176457864449574798529029433716839742076575120833483167942146880052960453633752488397603725681021222391414804629903992399748934805814448360866413852458232029839027943964208963462767542823458054356777240902352374185083524464773697659638779058626253553824066715074910152812982327961767918966866779097845112545575943157725543417424778948712036395483358951563882778520510062102082862174229423827394599332509699772770387032503823369517719733371294212700058179015938215430335497444390390075871401105540488296622352121904781654858965419538331025976807407547381627256764730657229623159746539453596115119454675930867703584165441156168195013771184547481347460770959036665716535585942849266144748443196599532643969145406353434744947315615663094427154171853725783031207433466390903676725921467503960701505980986142372527142523962885030847146283384093238292478824139486776469235091521776064371848431958579980146057806568016674461168520060281103575180593437883953361901413267790693599024573313122568882718394899603674635588452984967249472923861533718145634884862633107857941331346842072394536207359163850330894801414550793413333483956793635918744910571986155246424480308425275327171532743338571521402050165557715200099918957804713596288526411420979939316148023141665890753615550560705046713148800563226305863081691533700258124964153262624599682009733527935153803166800991340624169605950259757224341703455126236627934515396453632406606152012077483137705311777276223270231865795664942212229961247270321172478132962818459396491877030993637350048422217798951694396548369215128995579650007805591335414738802063365487223063638975133352473171759649032294660616400143299216675814752101514289515374087170388637163638752754345589746460170727544358172802766623461937099069251502613329875419044775284874124251701763477499562491426717957601971940704570038493417865869940530564820710015513111504801767912371792510989203457304842056319271182172032660932413218373386050476000443591231695439175245419518410928962546452317395181013163793480807549146321045942677627204179050709530016439282751988226474499918099413358589041514829425273902089303319505559549061984030502548921475534405065302238246291796538661131470076446428265494652073375106137359527109362865472638719319370352301572249433714833026164867745222109101853092672608832577312474269210406684906863662081161699110779986599840882110032232266746311487593416168278853869419897448713725996910829716698423215231370258975652838862629781306725777481845131162916207490245502188302589164240637035527448347065775387991867692429247090863632113101278557555051388843384702335946523627760636910459612290710529285130470337366549157910363468439234079812485759131726872094355042338605046940466508126570697923090051647082747091432624602160363307243579128617268520904336430250415664524700210981076452908463447854560603787505451228582483602704391038678714307544525770466028322021303050044002953243153942314351817246965878594532052659123162671595822557386549786509975249192134120629257427594632549388594694370389370772486929165163986673854137161653343691059617503876202391281984716203253196193918462348729838154118829044523394789971153522823225855140879556493897970314017196810944305562587739798512674784769662381160918846185142599579169209402006998987600455721667701289758163904283609117622057373385640675870687796939680014188086364812718695532663389882753613130727187329980663750360719030582105987459763171651479370760777236190907630660923192986981921008888253709346070629151442207653074497068111600705656195346695200300623183266481447894200824757383177922183065518062687357020201051699927480728655066660977164254041945448428972490345618037294739259907149091253359408215035006907802320471046324850926191116724949473684117605272950543547885964668622193072323397172115847604893446281490288405886709153065621806711039614101477999638033376030685838712364963884761526410928826526474491576288298866611677490213980887023171705272899352552759629616446932128608162115649844978014424245350373525277793758011461836623322158430490843262550601454820341486782245304325147094722334580118287014667279631979114621317636688495256943813306537248849452984858054268437779305387713229991112052835792120037479235240039338672450610764291216668736212715757482208943384677326808933252313032885455324064330301312707562580241982258458008163413558580775479583215882012678285899396220978211384406591788544537519630890869123145557930080930507964863351758311433008905476620958303253866498521456672860070680858839233056881507519170642381451898042242020272338508007995398301096746374415605879648614523009335272849717633030046891333930384843487179325742436883817031422955653704321507639896338153945579487904300327978153554615438407783752090316350893928820944121643661270305055535395608447162403645336751071553939118633766090271330497447097869307015090735495207921084411940215098717951584700881659399410835674941956026905271654849445678835825163512567389543471892946523876993855130386243855133579201680240544777467456404064395500717642113764731189990641842250748486381485495122847685959735255912046618513777389109674310521156081476472872356594818692353717311585105112962430876786588145506382655573861106592666521259124056046532929759478893740987559520195079453604407834133633026175701147412062173106315320636138167415556685170462581065551517045889074785754222792190215698057142523732510130278867480407104290865402479387857592910776768659463839978776305079750366953760412395869506512545295390725190457201086483146058536220554000621876175991051165122220835368886220433390813765589035830148183482807985808431118813622055437893603579054509713755235159618279889139312901010902511643926763859607969037995861893305357979278077617898199514113375620480691838790979019347986591403222971604299085980998679677716861631184692527385993769856426116239581136949563062451975423594289852043748281927139022666970913049121089477064956185719562614062264413008877356896514237177869552142907307195391590323490877405262343004220926618129726509162285431004623772579883331032580577163538322618431420037975114742826949132280136066307615336659708687458121820908634271946927343309858829592899945108600939399574185126404247162340131642794488607492427135511515425799722487795944577610648612815089088635099905287625184403537083468284277249290202233559036907355864834960524951940743387638800462261259870589126614863079382552943035319130140081873980804438049185755660694981601040797450238692438733432334817777022695579310878221288969492215107832724870056520963503027703301871864446961804604452615787462120323194579225420345666677458939398893637105763586812031183950961967454782211500972662454538344759241378757837318514997953546051077484620967178634241046079943343866337323985968007837518217474258274570849673715747683129095650819492883220823710577678452453160276429142106095422954761459390971462303191991202146203738532151723012192181435279295242018053145436391141818676486924940290935977350368071681852634976915980586838446265221680542902976798068535761834402845471542912047689322643774231179221224511704339502145741278730814870110900897408704078370655649716862779606277470801656495913549532086639158311985912024891095398658018574230190742239544994327668424411417760373418653264176392150318625526234608290846487984078463378243484764942090300619189606077300331782623309174180377634528299278704441711547017381212531179417499388684022530699362655641755636998382524767472606062372242165225164081950083200063136791304649935574676205008176645682449197293489537429003228425822918614797925591252794120998288506785550818996164215006472772920139260619005253526353000074283681337306206765089194492688519030018607847031704030464442903865903301377332467069452168509004744495829309787542270149493460083754259279602354368199635072221453436593366739526529892297927722869689107382903267281343499401342601606872684990597259442871818646909339900421318282664488590219472671284196521287881689540909296686566468792104807914330145755120381537865876101257556949139515022710077383881464029472348488853932248687297790768128338631856629095101886278532491294494481258719845074264404313588131002713194204750150275220238038405502842751011394268092261599276751597589225547623521386996920764752883599586911657679173084711742644509781955411402703260664808014770068867166278609514230265530867007573445260181489474687263881448722419686709974004619208590936029710278618515087321710038111500724991929872974772532384075078559352350475066563388295091741006038963900279901525335888392776205030742913828387443419742321459219232778135442788313620067156068348671604746626200515652501124041112439358697223406313785800033319859531718062996064052421794466089494228397026876752284586877964852720023804563968982675939972354347432941519802673710147370960071603693891632899099463418138976367229001994515100995120337405644093548403945964128582182719988695496609790325922427915827057445288635094911822211055784262018648078919689147987315161571481389329532700105648752122478821894344343756940623177928932038872927285628572430883549074144621793426913423541827044716498093995278141537553207819868990338464632552423131492379314731535035409214860800147238287623018344063713296097905128395924957666565873980580803623738087773421154620642923378364116996567895135111579351560902587389999769753514926044583862730326667209953862886847224676621172832576682751052686537902272403040430372895057581931879342177267506933960874735251988639357017745556297759234716305859917616742218309602373221930862645347423170225532875196398516615379887548847342004120784407114217807678212146460532153499722166593535768713321855583788612379639165049933103533276719981712648876116077948115253454686642933371371392597519829015342136079177700524167737911100342206302892371676549486986910348695331480636977932766420545455734774252495322246785324426436776867110827847604242777839489989205253171536712086508320884299490673294664185078138638569332185780683898672635528696048962518696874417223122884603892017393993824558801455985932856270306527709377808544701161748477335052414290126131248826783048092869820412013095633175509921578058344756201731085436199139203589365760302934675899751136127910997278867143838227947149338203646672379009957379907091812157708243545838484416865671127778250330929370804269696381622374454779248822889536586203483162522919790408869890777987946837426650169528585232751917229892639495810046576189338936829330555982330806419161104033805579495592539545896595993479785238822509128205188141960946635223747871431283327028913299638943501190612303061757786146975634625648278240132163964541675285532345638736451091862682755369929259954480350691994925097840309363105308829972066139858293508576655871456550025159655904600801291377299703360042788093051452838047372513816095035872867613062097709648450558969455504177587473063850673154733434224783526875036925940611690364589652055909779100257599383266710863499383231568055163637595036758074487079575101945870916314629722915972242395442553212496565229146396937629468396459326401651320948704819264541608098341593348096694597269009183894002754711260377633713857197412641557088485427769873965342188704354396013410223594663737912654768811170987546808140268739660084138966427684973319491116252363263589044819800151215787676943067696161631010957449504563783656849669277758014063949538367640400920831912419859279256316460790447353582543547900166185192559725163526086930568260216090706709672686318373587226316185776305125542584519789766342306330717817128785296353580833873865295740963764835607637007837394966273000830744956020857088835769100145917279949215405707082040161291502702381791659061967446788454126565736602701432790322517297663487224478199386990643922938711154297565738857088807001200551906829642073427020725761920275417350497845663861220045378726119585968368909319517828863994240096053606580911556311891076127407586054820727529329152542002557084490623121595688002764224320513171166855404060034218269670925535647796213282708922683510676525233312054763529095166062070944180713121112300530249333769294690306791694566205841526379964727400203023190141806955460686112121154056526111098274080770285987427782028763962328824530494250818459219730928507205959023673879769680462233619684785310540239961204197837954484492313488392690050177749368567418524167755385598370510619775332321009449241460828606586975437528205034651407537703588411576925262359798073361012768538159177407625736593095956144404270350332636047562861759241288264515865483707263461778683736448764333213524526055881460672910551243641950737573462727104750151551263916734431019181940611195414881461216300866530187316185624345601502643705565223220759425154003323983756690400764589909298508468134280643954115871810902208955074770770782861029767474966015494727582257861896733403962066027961595006128711833520948782744980187710506542896247774211552653010563654151387606410743669057041922011143186530268526260923462256196257887031113865898154397620230634037956862346808263076763563029016992129248473082202288701422650352010644783265174068157433681813313299008358449756545203133435314884347785164004871362699525712859853457734710128052511067783663149315962604210268882200781287297181261118124906710725624878444526835755029288809769127843093208157852090296639682247741051242951495109672498540260048946095622612090255518466917432095208519926235146637316706252058373377959457217414999007303751657407065123825010627105385229069593122404675448987752364327785266321035821902954392987102861248159906781299482058491861604837418495759894819176708967472564612667692974256127762312218235659659527316794672839924927465916180674531484275852507797938593248336537046395761131667149652446327666580939866780139312475933765402077569605466236597195996599919960717833157020024608360262081271693690043089577126223627828908378251416397828848384621126662346915055984422118528217654244059836749174472435684569144853394814211640175669857895739003356262585283195623783852191832882475731232708805307141073444155321597927098322621662279300399208276783388932105035481129899198467665759739798839275705639755266630878308699404780602281484787476677276956341719649796904891404357804786548397594066695717386537080886426404514213576260406883719448739140109215439539819535821056697991209501609247974610753648595808606841919463564366586755968994304150821120029009613372553467504138427986828124315460118436082147122485156139556111546124741207588907349137129523078760715474467977934792489622701988205304519854498789888089339239926444335292751450614124218472137037219185255474633269530759893376510084935238297305558137637144868512465289821575637666647466221230177195103726661414986069209392938063018172342308642525166568935580928178896827778010062487489988037469775891523327437138284447345732505153471317607943588293428413330948460481204582083434845008289535524178925462217876393915065227875849689422123041058471244190474407037138235476129725646157975485589619899541292396843452669735651368710336737631429497605623984544143416937317369168096329959888654587173369487303072475437905094421780202346717056032157308038791208806621269942137944035020157249457473371697982908193274266284783955483309273995152577090367917558803127767604573947256247064829713402182980974672585928173938878817705054776759239471788328013784681763663365129154620293163695650978939128665557067513287094924724968893480097858077006728325811987423979140087153237444299532476800910876696457574578826050345052372128338416202962381692159523911271708985787981448468795759398782113499508821281047672932372025436732704081500714360050107291397650386862270204202813407397078019651515152747272029668833906638755500772233711350288781365585324640153183471737440220222150796482388594839347944075599306508860664937722759869702155262158845887992603779572687526060717808861848062401939868794932829364990090862892247958685983716770491292067913465211519025489645006503788053332431444432955348962434082573850892238390682150139174747760021534726983711065152774568925638128685800351837399138689231427996342939747801669789932134402986445605507329137326590329601616156926964801498413893768199756855116605052607136900706871408800371864290321819274532466494325141124033172966107401240875463262511761586540926231163095502746778040325617330137791961868338957248450861607901160518108470010392516745457181033198747329390978857201876871187290193556025804490637457172467461003019355095446975091947126113936225538930055550696407404112743453397293792523257544650080599789024551366594074727049725805491825070565758796483901266823330507196228679450500397019679659289564684219419312817549693267122315946656896809070208519403065548682097459811385279098589546421537444094614741302140248417868667632429935865083025850404461189406203599649808511289140526784095775481203057279546118667126180708135696718379824096896522771142818624853736692008444958218567525005571672104596117947677463084435276253507689170477255794066970159456161364481281278877212392515732231248905735995393516429508091073695346551750716167120646377093458815093788360786412028211334654316339800462060503968892126382009082601055867289577052425196814943792294893305692873583315331796316831037509577524983595723717877234580833269103627182845862327652799836751841888676074037248916734523786474784911216152469847182125760425842119738847373983473769324650146440581010583180319838589551572240709042355136819953679722126648917075427296283420351885646521418195808074853003837274810351391931313194063356318825897671646531387726446977502586436469186483926744125101040700341023741750879181618047916490170088982011371924055031832231262346491326434815160303519590195966997590229353080665851408938825285485133692166519527071662852854521111769664019217714660742867809016831547304568930142772613056033700727593864282012765660077009672675235101303408833517004554102579767997808896596974690797654093058070014334805468856311085739673119185875264483122033077846139818032099211509269935870832374038318800326537627017652015056652506601331863283282887062433147381164185026708279321931941934325077043671556273529769132455993482600907171520509813621029473526639624892744286650545145277438284214241952215497476258327711495548866075548403126769751435812892743635896390655076752676306993411333957464643448787723493395996945651921682573067989233317437566217148192604641672951804635658297551343508193728059141896374958285350765719523021364434365145632095414895288422833080685048095672010802583217584800543640427975899895125844887413983071202257816645529995657806403010424452694013968720603016059344728730602298650884663755600937308964955898433174979043572917628641136167872445522581809972436724187581575565296603634858220430422772999703157950313259061715426157755534094255861928992386193215605861761922649016364747278043676665625989323397636580905528495190701522093489681875665620510650332599253252043460052351782956766726203785489337218436245252560236988485997638465340757830801016363286500511670581220877815067999015693017113654210232524896492143274525243221805101108205889498297853238669905995310694220524377606684355183083343860611891109137436911813251408527541364469290855785687685263538439711841349899672218324303902272656192751147647060990988745660800173394976043809112633124399420290294611950841341187183642179513553031398935843647423645672754060487367405285761198054984940669238990118800371422608413552211817026240516458447463742360737551601987974650978768669423857778670550723758078230635560053150859451295510264602522756901105722866874624439210554705139775962741504318981781538404625975226948084473728011253772434775792489018917655291150865049116234002015578118348251341810036590823596306008597868385840196251892743603784431269345006369217693422873087757340586610294590804788160485591691317600802768654327001043489393253130187289298406078291246182771652182221541227284933081897963451915397795988185487758149506375825662888396512512648166388187647655932838567353883815046353442341599724986321131726143002220275449337938148262191128588429105684781269556217634807236173781779324832001881824716035811418692702322071145557301317293685361463223386231872148201788586857578860279948852380968996985200251986610242486734824776749730801970021263238135516893961453507894445476763125376363155698634402304732354599252596388970283029347755811941806240261722131840943972928253355165814764402438547137797818070660136324103555520312683814261471102161450599632739085850976170411943807987796589664575697718966634157919410878446835809392175944320550881595307235133353014168034972335882014505445410485001559080829311408553143943710141539725678285820855119439781242511415953983746555931480081975724153755632514448039694858898143740625790916850258241751597975568041591330160475020671405687787418626930002658911996042671062090503831170480107023640204806208707710006388109652354582243563899836899620021413088129054593104745971051411418778016135586671337744175577177562878552013751857220579211410994345038172236715084074554382347714594453040042378439763819509205650809281519511850897901537874751083212072104897267793734852459907867263955656435545913697715990744373481518404152520698129652025763204095476398946895108357605760729725931921971944372478548318444520291449575895962951297732335708364942598033954379243728012407275712052161368919221511971289178513001753260392483464437521888516287132491533366863962849649454548721004401660794358530080452701606597858302340505130786277667627955858879185748312877587750381011375602139958417152165022549487007781801432940342409407473504543852502469411331886198954763550232422481953993366540648156213606303231574024269936397608099258422760110070812862720296909098932390123805803357801084292149401956533197246634640714699470931140848924856270286133515303453118269497909949084122792026787888378750710508217400534700270406264195189023591022048077221763887072308762199849120610690825721155772455297349357695018987144404739357211245140190615624973124817122164379598023691307861176037079685396644589879147562918664285812442924409311985890635855211214733777201432205924743308151197167322178397242144130353534081787039958864585996980955470531021218572563516972809549487674465626022975598291059054135798715849879248580241374605102119243262612931266623967665631460664714982261296085989548380700645234373258597052583708886112454403663947071803548945823847811192075247736433490922007965804083675038435796369402078072561017750868140233834439189289471064786767956252957226166166384426256154568563319548184991549771955121137588191015986517756709025978019697528948711044794463435883959885827865247212514660771024475657919785102868932730537281370801530820960912667570082928365153741365577446593339220757413844454845147807120909070865918828669187073291667555342783385814272111676165129596763683477638239299416964352657550520394117448334273239622306849973769839776254059245652079797607374368672742310362317003414549415457722252648227396840331460709994140230979896153878810551090048968913342284387976070153135429965253919903855685539858743701949991379911372630716786235831495661339355382740611674061448638601510293559641937692283405171648531517478192137980964275838082899745786587603690521613482811591748881678153981937312879580781094220303122861933171261765030572144203327149356100737782158334455290369986323801452676155919532028520432173968437488814778431887839285737863059392210267652298731563435100819170966122902821797669280466945022529533070639068893527007869149275217501712004192860396071698792587262106264091539180585018899641365267743534253598127315421352319919495409028784667284424728250976480494461808175343665148666017289104007555350569116176292888093235510945482554703613206140519636192186069467382215901725172683560631878142672439574217711575442588288681024282610770965517144668218351283307612054227396426318127466624435521466678244202303359670456553910681203615378208316912794719367911019677139204979182524949521163653657976727138040713072898418067364671822242003260047602232484633273642658646025208170500700760117081244713407332875673560178653673365745439421069595420365834391412182835419967954366270443630007121994456810237904555402128511328619291198524019159416427343311696422239484102113442365481911592205769147793736655899607213623954367375339506859563547791660821444651035270889028291337625360284553639289043633719425625737773493956231373077856478076137972848638998577723459233007113435583242278352275718908777462150176533478027343795462923301887280956010317332321707808041306373752541503160103025838034436924081823905237103637806590160413879760367135546719854008091570758391255584738807202612136876437217949936010086863890165840857076326674326524348378022779117634539717156299245229494401137304259009120529988536679369069185136185446353890433491878315780546512144165718789805057590351447320556799583738617752458022694573596678033536026444213853293610554168019561295283246640191188639606869212460171897173609994476127637995602934640212918978510477912163563987694002387372797436390459635892107835131257127043635868404702344086175509289968673405379841794275780207390908591853121390758448476384159877597161797576095472606146863062140895232563344540583283900628132867793942387810860224616556497159256546464519230907661692370017907212939727101673432782136611961083939849249407255993794808798032147770557218535817636267927653298147480576084633131988742766252988395704750687068001205915706830825554415429199980875226608890517313270323083063207484771723554614050769505058669201540386787953004917877968783911046469117343436918088412250083895414878898763602552446377320131700470206841929588535106540169592428350364234391066822359823381681926809841414743193486084354213071508560689744728389803649033114044293729609543385722259572041523934055909723450067291508804638639158357485923018373485732751684738010838690435892731637681431729983940694725531867312926530905382660931933013795223892059917690878479156864666515677605651484911170720857226582539158741571298748288612306763866846497198855817334909288201889851391540755954226976424759593650200445104841711251398824458004692697917907882588550819720923473246775006522921375669235652937771252167345132865413083195144514935288550973766515478749130121117875177748920605788777172004586441348601089232181312446030611348221412869301390498324245239311753858207180937042611697892794326188989463867689990011388996455570759146241468983331415640572617189212796131152398221095462550814158320585226445204553561277343233271768448215840533940535743636098808592226621089655677501044264052478089851529000326788523662243529598221019454208424957220604484500124657479420470317169963645275007946889235114410217532856165984127936874692946485493586812811472893457511835388800296857998028643331033763332762061455042465326485033446949319892975711976837221381377885679947914813704953565259680006852346811714265667920118910056734612309096034864759675738531916559995058401895679232068353726175195983024661624237345316846033705416725914030460480586009322208327781736135394004474633686080710385839388195978453558338450816839016424832364048632986428765119207835019006220207618924623130415459345091488816916018620349216127009111958318087437162395823181997765921479756371481753500322798137713338967107415532750175592551877582008287045629447937931731926271068646364382214914895402891640743642326089451393137932262952449271510819451606221124851206098960382607780343794664417483516240867205009317453785319737970343786808498907579089696245562731521548050314374807690708959059603929601506732489547671020917934393194843088733939689654430304189443419039464023591256865291630140270524976279030252005829497489364550731435019141121680030303527954106407950950050661440767242804169565221745257450979495379744312809660085689246497363367358596876510236839616745613312596824597593455895468494034903089311027930241026346115318951905353833388069378714655021876576887761692641473651130021212715313303564378549208547915084654699466876956242903948223083013647910457774318607592011925321027963267808988557772998228880882035181392378989362415492210773517537300373527982737333493086451598990026579758853926916240122588376005807038808464323311220685756327034013919279860243135114958191646584046920152985114863252493173635940763077566470912123439070134978088584530202720238154453786902689475037885381089250470962957977511434026657779144784105716232744558350417684488130141222745232845911252297686766796873472156584233161457310511708760270262213957317066415751267246694540857739719020316630607005509103505736144185222612367736852784008715949738822454268597044496045975651166763437014317973245130929395750930163420743423416874818480996651971420146437551614502721477304899566917629127460197352150533770523346437482899111878830134101006054891282059412208829359430687400694784882929566974876438073272355497276100634748083382472221041635721534131152816750482498186668291761720313273509058951299973811283511637734840053145102431037416300282451197951406131818635848426479397056731312288546024002072594615005132466841872419773186187912570708816130227026784826992426104510364668661768426246331002944822183233089050121092244324832960742553049672403472173892772751449975624453408953127784398125940904393065687106381388353218786566844080271976392166225115081812720281748252182995123317537046321644678132108498498482281099350367738954935350705210716989980265980405715741519129209745955611288046551616079056429585419112774345619536199306270120368456313492331792419017193699540014363874574660787193505773396766643655364331308807673011873027543137295860758722995184107477952301828603304382593768523088254619429450845983232958078171502941055076787331807064571014835750365986878254781895395781961749203862488131865938136637152162908784547105963423747561817664970557579216878457600141181848541695117583866279279476796012989396033697511300193327945625832267596452241902145047333776191337643154881947975837242351780838522640775567122127459903951932313307134077620922785662882613675069927502052344291278220512709248975154376940272485710133905065538837826072966220337624037456196121331721462090142022960131964929528271876576731399274691483950497672313698616644983485724822429280676281061262570312105104429681656877022327762537945461262143088934678992032567433099788045021713823256960739061073033668187587225957061520308801863019702168672597798137286174131437177820583791703233271667087057564680594941021359121764540597661252136584910473497673981567228129217951786416068149992714799001342073770556206218583231159608095287277857619098789989252567617959614340353816599663332333349872286961002004826867845964908555066684764195963065351088323856915755670466033646829959980476612528496009445370254496528337419388612030230416302835652420479212445308270824462593087033707516064784279687618995307769028717901574248549674596125380246897395607862658115716840561887054782460732986644177621895279763626274245136191203019403993654878783088265419542211179252842187877837086196903675643540729953678721401903773666466737678577167130589540165017747072892481370153738128227089891871384614480829387722406925121998139266936387965538967056136567869765256511715100540863755417429338471221157134379753211751948300647340660519632717790571438019994534176876600870221915004776430119913276534282734669999456130673165585490461893975977297979156218587384106190431952335187058922743110509520161747464099366613760918653580426179974034247989449911118995178757920736060742230784678346349173235020997427115772762342062365529877664340264674229921593700159463165081578283125379783483106662020011089554638621959608637508261019378384517755038339806287395633536641291929852809291183010335982848720330584481583385849150148811104358568762454804234384797866836641066329871079008464748379177159533398791084268004075815905883835154588745500019280206536132040648833871548753696319740220589128496018975341967628983544336163893370147655945558747057904372731328239874952520569744373826494051465935918789489073565725466331898242036994009939804318300120385558627330718569584928142274962922954311216530451968022561403781002630402597395444857131414439688381297666498358232880069666351870905804925096618093945701717255546829875205974908052082505863991898271459707981454929701931370351082367534157143214266467426695048383831184191694422452030398272552762170240372666778504699228852247318882267577896535000317763600734841551891762946522648589608911697329487185902139335938165219290199839432341711821139062007124586594417864989345118086450594730286600121377763279755997730590314487140751605623700755728213806316469918048419964428134369465686093665720879536226221177734920123781830314522506627876150367994597515401808223023652184368984515974033733008105439221040030185513865412853825662965790611195102612690262593131256030557500776414017898126620575882285355753762521302386929955075323125066547423933022031353647221297796848281774841878722127887138319287580958802480656042326369696269778921953185064819881576484664491741295021178407276214405757187963895043888028752828435727200688113601511133779066284725050951496210264081886421249915193491310691038673780598998502218155372326732618766639122471208007774324023181114020327987169959414657049986551081413788349334228612197899478999030082410887482672671132510261272208113446784372062891620247209780961923703354110528469179497478245429937192322938980189332311717982091268030512714377708555675088659220337109662340295967915587536034226085545534920696923038955250618211028881448607540840724950092840342924548091168943687215268464736721298639039198991869054800302757190882141143969037141228810631871391248469491731991342490987608515193047027834398037603475395111864923584041589139974800730795271653038233703533189302181976169589677721734814465745157288755826988156852755987626698518148687199468096738953057219213506509209337908138731584010949574482893230037005450398320349654305197544537563663309456954740749504116380576624598160295877667356345096346266406440501829461953468368931981496567626680114558302273217201544565556750299832536259655758372160942509131936976649197324293893502334666042768076377332404343396167878322324209800093489160420071903289054691475225816102545019682653167560391516959826563519777348109154758859309237018692669707348797133743152247636889945172212166577595416978178349033371465433483796814512060527711934060124699946566363748800911122574788973898826704128966110784168947697481511648226959913491313258539090708090891888697827661570836723927753738910438209057055742778348084608477829748912642914409007509497941949247252387358976180344279014262357859086437540185774178887254865813397869507001815768634517753448628167022941360767515532898706367181868906734164272717231413008728641854799769831831180475246479662147975787526200985740095819333766259749447510636236054716472959514841801165353101068766966323885751600651281002703256292184091272543717995936631197526478147908656479874811988092237825238671371629360708504455173582763333019992218197095402833857787108580436504832450158908605483920897851255977489555353747525048914816778507777476833750890200948953346567792720015124660494767830451232489208189836583728576036441574128241853103927744590691917145782233896228834011366572808385085866040023873622641465443296940769142546907232752487299130058291413588849342659983721714658741515041936238697750655432805882617083535526814896407364915502948428001439725635346714466006518425197095274745331406764647803805190310435077400436154930862752236763842623894953600776021877265529613419269430000224442122163121333800429559956263448083413335886321002407737850642080579661348782567161208682720320121700890334827517942473160584541598144847947547075823820839491160856234697957372391336235207192927835542586688476505676555140534617907790758544371555743220835325089231737871087106044646015397465553034176812060817519912235806207648353930993350223284327723186141678618636160184391258717240546846647059880525075797069356398084804784580577494707130891955283974893635767551981015261573866472414299109845830477231655576978568400544130540201047964316806875393130519057458457844004108120843796682988176757274660254226601404741079521088038677046487279488604713836162573865838676875154075171020070878199687071739169425253275141602303493509469675571016954583237360227101567641870609518643302454058690683527402840770722156566271351124784670691094272495657407775067981640687600300117878994025684639651823125569782953538411651692467638880537803644099920926146147745244540276325060278135988242630501467628429495219803514147735706930432155888496982048946794153398523654820740457691233017024339054463748885911295742376350992896197697032034614658616302233300461182161849100398996003506424084483306715343944419392934313912743743106556310374905431987123578683092596846513379185373954962005767859276340323069291810683776826129765874613992479671681045946648056934375980838229236110656614907608911485262710991424807589715363735919387412573306724449298376625863054262257756165828709077016246356366785990263274161164044512034383978000271211296769898523399102917675239085381662335085340573308938779688786514764631845916312397865723608570789818719704287188039588620702987892201336499836493164703330225951738508285631809692575820073802577118418468259871664174406304806983098935528614333307695571734130362298958503966780842658400927723406286516584854716738849114214375218714479459851173207795991381825884160714679386320774765939788511728464750499528260513980846403118713203944198307540779317616349645665258466494796929311340019885329001552008570865666226375486451196501771767922263930733706098941425566508762323394376723195984204319832798356189672407540286263493752021322211133897683028197979366712523691617483801463608579427206722418193443918617790812808107221931357620462202761392362493870361734741456322013084610527399643150877733102037322907410997824782055202446997069278396335837386028377324378033479314806662201791490767331333978242596455953351055467082821129096191027100174207710269217947271779274873766226803637980188030220982440649098790787482779164401553387160387372434310666420257022625991852883643937030640723119951579386121898542019273212757629485884419043075698635518290669164319538282309140174058460991440215319998124133241342740955555484433079803270775826785147548627048562277139527346388457077296551506928343100552269742392785346604618863473232567851596415946347549881835140548783992785649404384952815596015438940143202641983772394373492204379809136830087302559940973458833038927084012205033458765589042260334181050301839797929206092627674303231567824564580137564305971362015521976315850239064875787979223414734957637712402603148268854317263118722401702908229737571717482316651896792849684459742288616360517329446228132860876172998680963525065816659751129132142542087282639242033492273100175773681507458686795359648279036714969956787963587171399826392682485276695850589162284122246683446771396311906826776075578941340965307586395086012175616438422738294734469085312151485947948781368057936718923405483764620515160485975918411539382393164833402589160965577633170813860190412537805659242593945032553941283853138784063638976237534750210409429346272032433595488809147642157613866743916962361574920131972819291261339171290045926293128325010119649763999404724495743426306857059841670587709724047889004794302248548118842236455918455913652623513838716383129840050391655868367128561704984312764559595171248648696421484820474864763852119152233973866573407712766835261905768503104572631462637334466586299089458626189185587014179769332459011282991055412891928595247920054515965767426254758304688534291571907561661569314599563860010459533038174963039892298963343589005638521405160083562454902131023544871993471312441274948178714098841307231691329183854720129124513755184668753375570675262114478960565572365609779551648738969340331005949491624951407153394556485680864864818831400357367356528627528162581081072246484915019636654173942403515448179515392372611230546521317861343798522266550793927835365094127164488889267437806180791532333329338982567469017370746300552391477468037590393903331451687769218683994490334988938576849823105948328452649577940228553917889288011001990133393870756769223524644470194702010135460008429848337375489729211810822389844954293104683547655334922968526864115655977065084550510727960388101205335840143642044527209875733540078212087803995509192086628898304101630036989940057568039755634601489831172413148169498910302648864683703287076175971219565197134782858752598536768759751921595829830350992613824812732834367333103413639967298499680445574451482070592346658623760134138024928206638308173154364306535558959460465961986786327933967620915376466409013653747377095524869391005126198583133615984942467224995751054480618172206266293728537225419561050125140665798230603178286536055211284139943053440214157298817327581073975990193302897371621407825911217323261624726517538332508610503387434549876765341279517435740183072088682358497773731703050195480935363865792778055460363147636800996061447016199799649912895349627206015788340507144101530304380038146401374279264842250084902971099372316439996601702778256012177258964768581091998426325764886593284606680108663524738421997309292542076607345105365112826872236711447710392421447726866300848056281535637766064488308690118554796306843872208514102886853052888549059906747266008710116430425180094755282269328467433695329315305498144786390166215357245137213240581635554362523176414713477613246664655941735619692122679981372073961383873304975476832948478601280410024628008886950632731882273086979650130330384387980774258094640291423679094579236563345252943710282297594841628922681613884001586762430309959782808530887962281552044737299542536811231338299618218658934603899193676976100774284984321733931368106020831460683872342490871095421638556031275229251535055731647125343068499610021046884800073633288173585424169025577394665543037623110985985796011169828152779929134334901066708969920466089187127420220483953925862327940037968918392183896176925591266079691948874975405980232566114816224250507871289604562177996379496914474136463462242270656269939283025514198920507559638629653183525016670375115920112989146241808641305217917257614435824761205328538077780007328844575787482550685382428864710382142517648615381629251166817286410399172687200443336502922631828174413453851990840058000796942040998972267826028489466172942656448125549480289010032368653738757892529438044866284172269688907521482074807796336520433021205594609994803985095736895267086768168943937126942533212796733263892967681277118998931201392918314442458006631437646368030022933820550944763016964193828554564168949447127387962864892919813680029415520046770473240580089887503245593439804686231435098697851684477655144769813970778351651299785810356628708438786887609708046830719832988634404098723025784885103909260353013115266593171349933435613245835033900736195241818940740684263010255445006592351398207669595132783158780311821948549896579173659797297180321036406626284621274542883158008893914117074430822739530056072728206939203928737564981064563271772840010021518174465843730485556853944320730090803695290408705079538167450926489089642735224052374786998979262310180942033168227121972566824213608060348048162773878147847208909338710611360405440647934971223252240063713642533517088771160826497113363341414004476545649628088545641017781630055003675233168596439286084970724376703057085243248335774297542574668113807037339907113186951629901124734823685927857191604373736998506619412599347899033153436866987561327932895469220364206682877330126528523907157905954971640749956038567048832618528653315245512048010160922829333863377679689268278683994050426632201613011722850954728985997065494095540394782300677239867355151527154683888510338944758294895095551773505110763041161088437199889839848568661265997704334871657019241222298249515784715629261208851479088058610889530143818506283306938555601450506379197063442722991159298885529970900364121131395012525346669098393523577211122848443454885610320229790673391782344936728610097836556456403242388706800380131111779017246548135456385534822809470760923718148370402998464909675625202030237048636146770541477416955828260917974273189878093951408480023382245081742177598647270325863641842976085412304174397301388047277799074221055350579991371044547189336794170652579880316339791175612692798412963878340883930569917518403194985238690976459274650931363826502197158162405314453297173939869869054566653982390189359361856935194941689980214081815964587443836802908747272251748286705174687266218032732002761144599041292779997264946193759380450251108433394857549898722177920822142032813186291785225793147270583069124482268756018757056493808364512959257080034509498360657334764660233894443370735412778934425000101834645920654242980831468634686921714487702119804456758276148824935538201786893588727110995661688164689944656266607963945939698920656524731233333998552532054376238551575739927762501645242854370016808637052937168715012945545735351283004167539460201477840346173303453370135665366332937569354798969871839714695379736657546184991605523211681734434800854280354022945253028245259520836312315994787011602912425396422785326842961060666179471750113078323299724130196729611797533943413951187795528121687478027181071485980281044336429122489087881867259110016595413667969938299073197382282532647246209219917796247948513550987746681991945520221773435381237255980523319321891575942557967812324879654845930784336637868770395041220410455393717935066701747749256356539975986282462996252457251419607785950849946005399549640969778492228641114352093005361044421911215265092268543629991170939671985837959129823733669878203720385198418540896397626201906280663758022652158330991940499572028303628239292858983978820164942080822410308276075271065418728966802453558880515089164785911056563611392404204536086600900410429593734971513234718323474089944352924245535119471447929792792652838012797519294050818786319434120661908393255948913838073351313191544218653161995772590882456988418699845359313289517737073933946938570012013843428589928844197815752832147869856789931846198908763036844343474309662104856991190998191139041736623245037046122654120431179133522537632339709103534251182841139505345110701584895303643654166442012215500671692796666380231849882291546087914750780807739790567616331272179648420257136551428932634247208604132853958047190714879967242978371059021834914495515551235840697054130003833940839735614886830639376247923637614168438706966141462577748811944387181977828988975101830888364815027259946896967589670361126007711271902414463260559005835645692130182604961966754545989598630368508514300634880595201018267971077626510668989636493560635000518288059632675676274249468817061497060122002326949159382791318032042359301899840074885607433147972217571390408248178044280000268400002883122931265719934136827390718998802339154393207735018337165436382843322823478468767102885261448322907459841379064285426349496504415853323925413452723768743680373793767102588806257667339680047367522703789773689303991490537824094916768712162828457084374373003864921005302176674731739469661786822525293365781089729241945567751896951364309611235079309606034106280440136460682408718673697552930146741312415624385173500444585421466102972226151431909414986734182402412122035984080985558213625745807329252180993487769136280300392764450463503172010062242927801112490146183301346863631154932384651788586773884864247210271437857862580273753913323479280084091301886936072464163050943159089687220273123650680669251765600280806485378925078383690308164388698352746893909948170757644134927721099829891129587913395764423216157810311578524679393985006261702538091866708656928888457637821601600787964406814885354102941595009322070090452147128854758088999353105549674390678718933731754318225682500570103398526275259590332941580014561006710786217232111646695921994238209587384259140590984389803113014383129670635220281317996758457692567279214236049033152567461234650637282320024279935581314104776747679371680908189618478971612442177426852616783540981340080812244542129107998693705165906314708916359878400517633427229471148432121662026308379565669171280312662958641965160071909883434614956261024607211535284919825908976658067204454646372486586478507397627726854126972305730779194316883390574865419865332809275304473748224474420363106599316464852506717512188217758368578605636117963266593063101746481836516457235843164919925290475359799956130106342448528700997865198940773138751186583557252500862634656662366958823194329864384986419636107115874930876050133503652924504747073303730051946213816492286799185010790040913099979208386788194901531161983319706915720893685846302422533198981177347988880770886448184326609973874441418629120633581330303902522447270196148051364282085058838468129283112266435106755455722004263289434741480376694135561470436914998776949192908475487958165204867694331966497380471913032312424082406539118276604471361690621711101686985075592456167377952205492074959757992659569128601037326461484096702877781679265974679953370372826980462623722930459223722363951482969421470608557712692391035872775101856296011039442297822107534705452898602905765648696877919763431475562314280826768602140227726735073506435584274627488551914858556161681588072876543291078361026052228402208150265516580492575351747407421066233451327143185283591663931005430868756858917529730786100465263114843061329422192356331813571138564845226725914307533140121501543377620623090088581577873573201583142061112025096963830496880096001204138747510230581838720693615833075968747246711110322847106636811502403899049117393543098438140638727811117407161375855785869657732714812852516386388107226124295135489355216178179134837349402417968413650755377631517164814052596447463144716095333385206829285174082569376903803631257974694342443032551491254290306543639496526350657745233339071521684028831245376127037829408643702698977648701461168307363479605145849392014265183136965783356259006654218110452549824455625106235519159081795830068452373141112812617829914205743618419651613029234677760644897391173311213934250399870503167766666916376648111484790722654622957393029574570330719411267685442501785382602851333332281255270040070040321823323272769100742480153541486373496169674437840567098658346553330818648000313039302193810232693413504269353799966091507188462213152192582054365508896036068211674165921198299167055005258973628722563878096898501471796005140413234202982339171835418238034699545889034959268294937606965495013612651720723213165383346825741674831938527065163596857692981577121882565462305028537596083171918346487975261395779912154322613640775931007315836459377032006419360652779170041750411417065609459987034192639016109658358724476325470007903828883975262656874446036474701945993145589603951139942548747649252739897753135081830687603337597813275291419607889482092494672985427537005794490340050958731971006858861984254024192225553929116743460436104319257641815560959576599234828051910607787460705780377100134002232691975456760147348535063907407400416254184157571930761053428788014020924018661254715840375254793904077695312611987732567351209283709361935549923230179289449945698197361533705247008800968193240783626628891392003292356602459109294226933808841114500621438710233130433229187250462768708659910474011334038137820180921390405950962597882344207090988367955548527718793817952352196121931496229700713849298961209615516029288970450421145811809137162813688562954462031971308422804559985513619378577038784741214911650192628452598386184916965375953622993219747753040087829490787955506181486012164601579935065873818988842743739188982740340602610349242856872819488052843854926657740134816415981505664326813160639370899142867966889597212705996993263733964860036164213702505981032709492749240614247707463035037132953304982104456984652574879139083192045219696332344974907968349984597454913168718859438441743701561206358720906704920553026577704166593522150240316147736100704050686182730218294862289318959917378389494564930214956649160077072245126402804419573759045704831957748688227879840719947346446751073630982753668093627781772312905497899793428434589770255218049703006642340998808458125371033190242638532950759220238866949262123656576201823341718494341716558282570488863019947832512831162934164866344200312950559275623523846643343600555909477451074950197781818289169884689717960584994460844974360035576795245243678141696488097123490888831928777871503915537647900485881450535794332627121662328231534825835940849512242752993116407702885760096190176724286326000931655336613389366665179393476791407674024292612849633588851492929781931227582186316995665194731101398591159268561059220792395902633597306632323126423752031162696049653118863462389729120602296692455116238986306578955124195393580609045366076919182502520601136525339918657674750113134570899317339516991154351831636163018763557503823245008050975324569019771096147177010273505607822461790915854003355820957453991994784400172029835882795727751636059719410077913250991390905699989850397953918675135433464107676216726446303693204158866283225622665329290434289671974925217504281137257594342047023835159412251155515620384007620723088150222420277506202425093960556565639010584102202318284368171192352826071919693206565675892887596532825265610655520766138077320510839415843455551116847293116058457062085499597505360348944321827990502322615656634298042414424653404895255429547942605288795684744800692746632940410271334431357093749991100766666808799964632654449981409581995378868765964957201494500746385751840883207505799617474532356922289043793683879522680433002834391331194134922412864087197879577826993399605583017885076470282417511920958850688025557945980677720969906225261537404564731944683157999048509993555615685736760074795936722810791119056342129982496695624361922767207662343972312348273182190554560753023908050762021519657957745761648096424469203904513599587137139225219081250310541495056480619117631546986736871455965415510416765963288829289485028145167407177861888717447289866816088280487286229644249509838207015126216819092059836300477298672931690634122823705078818639136549178500691338369240160302578314646942008937376454344736491482527356555568122201956262963366861613037097524881554444478588110052257857655500705723802622190158767675842616156015647438047519042413212792408386230054613651239867838261013089979116028597007873515023926992161050542785078965463222809232866373844774869881516677589690664154075441410278089941325946972384835882157489414709563229595794202240626857481004658650867654975178038018779759073069942409185362606036013798920027722628233543162667607082222741063147165750705933390462993876446314084530751364648825937127360133886006059656069660807661469599395953296984731467548777301074830549154848232091381258583012462499383227040354138559700811964405225942639119117878576429167691436323488415004553611035798066318174186207977040568891276430445938657062254893834699132642210274851043444126461518529030533788012916624220088976096082563904414606424098133533810926585163871624890627389653762164959479205080908782325986995980188657181556376824147096015717194971434715555692467231036281933182532795926846359605519658931605667993992821930249162365788577899380432249573708731491983217498741772151674572795397408929512312569100745615176563400521722997334493140820339681533732484857733553279902493405959924989795701743586091081515239694110203479995792155267118180903543474084548869254033543945726696825695195608425810983521968412827535258183325887522520779888454531480604930146685658890270520952242034303955974536408920782939692463094270743314410634588924232298671622793918302905891539612182165078527441797954513327764132127793073905084818084489032587715544577235573866117418035715429820063148492504810915494707991683207457056178892609549391757805255713354102171219571479867538908850257883692820018056167623956019782410286765931708881716285930139153698760866918324848643197571047639883617554367069805982249975644582510971152595427117106347152345166067896829777116716673066337388430295841368970384917521337857787709823936766609534401909390942395794675426946902522315146053106991063656031151104064289478996550551069003435379722161618685399455672873370068391128439538871069048998291185874816769436401087201597820217777230848528796746087283887020805458169524088614764755146319502859477260929405649974779067644706609698465149188177118047805859712095191376479831906197822464209188678081994119672253193840189689728257402043244153557949302783813630659198075519342736910578152940674187410232747916148240346840692565048350362747248800239742841302991074511408609547930852625304170257012986771831902973463367128559395520924392749422459393973874570631079629211118636620464406010514488495272474876814816512997023194217429083690174200142376402755117985728977571660520529817164647535367095797925060711173571025610404546343617927422704043492525594162263844224356641528546163208898136576707735293451517590096692494507026059696603690325991910040563837742085098132070543528877956609420030163111686740324395777100553472343246302405286718708665818391673008907328500598574536054901269984537836684425568953302975653833973994918737583898101779683468399362436144105586801611895910630789470627770035358753879197147504128197642274683296907021728654530197985230323658584889819291785903538002984794517704139713073345330842604740430201107101610562473274774045669668509109007008015555626401264060494540354495107014806463998853840346720065016239216150266446021125281135357528677697103308462293894838411254122231572532270204357978491007838237238443922859371905986657166924082074275827435349306282979538223821991124803171799650243038692494308783881934820631827883664330239639309356828170009239140442558602236123279979811824671039115807728936779513665500588917803447309935916884149652695645076179398888447951733467599705529698169819922824092895067348468853212523756487364897378830512992866418733625633243609960126686304859090593009045416008871919461925969001878233475330214466319320773164241963076388840622946760164236824078309025875321056193664804373584043433169814443800656005503260558740441834386648973662201281060126644565843394010950841576234645529720536797591785359840117991484155917028634271351139230450778424014198010720698372114782047371289240862117146149942112753687255970566246809988410644994211744676320853235323426105925237259465737145739043465903357455212855212121626946748615284084981359147036289821950417759577610571680829563293679228538316517540664052042778630202479295253525607108167070285384993187305025704040992576649653331619909577197885764307239180409323905292535938458365144706267689503072665950599067623592508206228291370935769496234434321554803933470969326731327245085891009073995143057427140645288093919935985740309652578463092923013154809982869506011234240038409759394451783931433847241529071936008080791184318542012541549316661003135764901538859444641028196735584516303602433727560633417533180717233604933028307218082101738522465617869399584843814828728987720857037864125172216091379115926531909982414811734700263489765308306403301170136219434316806556962148854018733301699570250872349061470690922518988316397069092146455800487117769963227492050145155931172194277977972998226663108743449500816371567229692159949909352241596470550824480269069128590784315740161568739478779723178709164308337904260639612210722393067515306517797209266345353587751197952914418402453175491634017998585857562490205814300938893419738604529856327896200983954497511373440531072980761677698585108988554948144058743876484758525332853891978424595073288582386192993313030830451063523896927707752234126620981684487552100048280886148055663406764241183879474640928246561769749278463452629003932773651433922568450694493789541477410040667793704093891885570364895841772998828975690286816925329539089690751374047077758825828341228368469950487437819924989238859657445762339070506131424507624404893173308149498847087000080905810653859878005645682570965086123175804422404185428167089393506097216565133871074455041557718516110014885223711185945812269145245861079635452139039461765107592707678958518377319384260622750260864536711678450325561213091791468328182860967115378331777751468794320247647480196517089846186666359987056286562758762050595307864721056273683030391189327333899326625772657907241948168051992933332483842357946218861292119960112896333456421412528544568063828354942825784722664749481731024220205056047863225630173757633294342690785535887715526427053372330057065587288492175275897948772951383697873524378106527712321375061599612869762519595585957618783444437328821634139991451591749388862484591612425946017142220182541897266956361383442484192583291615147282634899681286242291345600023653884606950124469709612885618132502057198499692928917820807805241958464654183686827177620851971116206231565851444860329491822671059225497219583677854225594042455948289076134608432524773638184060756109868445108809297462723197376837737777237053611787616140367223783910168116926686027208412696533766974007570106678840891690871347963122534492931519973463512461386412070481296868890928417133415429120896724740808466372926811578950484095980332421971242679392825430792156344418173529852884714279243164058507320432830642696272142469018012653044935985011095708111944534904263996223897152651414801005645842965150342612857894954660644767703556013841425305679266768278205619300162269999309312968911522693456281909661445564411617384858957172408196212759371536112135423282097543504309742444383022664836151093139252699390865915956390161380820941356754674092984896415015654312422943000264154924040359465427641927392696750054044843436092743608309074206665357477779783951329845768749660816460478927906361903676801205944526623948533533388723662865603014068676085139548956712543373416110459590052658027398963611877504226977690044759972821954530651230584213646929284243546484470529371886838583526100937595882600325264656410568526364147870528543776195742607859628822038870226701964791379264965538194383506696330810170199009604182087487992487601547003970173141273438310594853976070615670878071872968679276722006824940965457444440261903372484888275133595114084225587893973030911666729926110543299495153452313254994162497049852412514011027581614708314495120026463499730151737293704789339402199499780221793983518561817609804493568401895842043020054322797871315787604112321455175540008765095234332251328195821973352394551304383954664485354291936693715616205051101081532320163817697416999279123527038998041104255470003014181759958048779046129260604711142376560216473574615787490928244684017882207934249229609507601223492978260123417542141293392839338795998708886517290155123333552121611029396838119949977258656043844160395188919193587840916898191033822634122769314966443364584782691443562810341843457857703011102806457778360027035058674357727081528003148305895532202330548167617847086385124179868114621107035771483187184404401408575543105180643729602634345000380829179054157640886268937636649932338897157842776743570515498158179536151314087997135945055350739079704702399448870067463894561050494247107348770753172927777250679162677613810155026036337506999468277127675774624665739181521145901929464708173568144036467356157665380284655918771430443040728040723259497155795350289222700360524781343257094567311126852963885298672854199550910455557709193373042570568928044444692995662541447839317597492146675558795085019389414940563828378867202421627783222308178498513174736428920265941578572983273765595975106525327965350154771673092149850581854091808135665773804296170365534903011183134795253835247083821605654207512357286672492595408165432568368670322129206304716166230364824845860635276592648534351272480740753823944832872004263251784983701010826259104482208108836973024764738687689218519391623955113510574355856059131254612293697669214242886845025176680723014968660859273147776935150756591868746552955018991854771597690503001323848890664759811572280836815172196932477898387335973201672847455377122419721526937967559249027514991080764877551093790712061260701890322361165126292935003834839190827088190479695836669521866566946708027780327955709432469658323674209742132437268484811160662028583813629182399316643484479415576054608477995333139957962878478713506091371002620776698183851939357250066117008561020842238306524493005476537720485109487431612891361853578967579427045837793585436171518936133542102925955752685314141896146530448524804076474667548234060788025365358405491078586011491069211961376302953051027261556891822592175117349899269406988893071948212205726072542069815602757378511114475116519018144898903827807458742199796146293451835294341447003164487797798730558328838590705347261550032667122041722298979062598618997870766979208420973607907191739076480778900484621657799125058532170720672377912569814495711045198351091629546647824343392120974012669300046328596524716426175276153941887312029342333929860098002861537995512346107681215664026150813786308846497734498039125002381801792045101624754759362674568319071669384695242247084891778110402354794940154844654803170515641919025010259555206750568646189327683248106685805064076784335063977399588372385567481351653406343464007957840373403384867277387189771390451035446993870420474296041246866078261750698678057113307183779503869671449982658128821407793921972177435999596568655393505711619634636083907547889240465303299634997768664110916398718947949846898417749832316774628248240679096581000921666908429461435431374673831032116565433786072949165741162560275421258943373045429654178458293062779860802463087539586179227526519461537806444098387481079088636045024896109345866579344305650972059782698623173838132669405718114402502207458307639896535676605470917475294015665685063653214057913634139756244653314856627900632076118576804412316397400833416659342045029411736944571135208477382793202570653668403107716055934825022080653512970610001373090634092785170646101983244176244588649497150288342929887538292485855165994101535534384411104163025775749052182422674891069902428921280370319503269583036071982590805361258504991367666917539845362696271450341159202394560300663207330611444130268832196818278852821249172985672357753838363041352819206197370890363707366069445842433082292387199971892444521373576461315435799842756401366813662126126799082422530668596119434165369164439895536088962464028307719288126675579382715039811602800223953428719032968369278068073574908726566813221348490241288327831820823788496180932613863028700521202495519844374575009225271498612614659794019358898029947468542618196671995655770670492033935856506663720759359943912854207043172500801584087416050483346153626855202261360752044021927270788932152716688199539004542758278603630367838239768991338244564676572686977760975827971329408481835717324832029738754705771920375216518510624837023940133661346927506091232376011824937604880379696603817321795956330359953635693437406184684306258399021021458414104647709287307819972359090791129588438737937675287852352076405004992398904368222404363960444810118445041413203092389374423038697594174515555257833950201446611740720251628398844028063362131685878248272796126715926302688404375109991974255148262176490640491696821002189973377638387167582949766777573513359806154466418679074074997017329948676778823385648743839596088037604901004635391590714223415447046259438764664150583297789997241307728516827754294400925798653208093321311832320426924082520916253991503547071086309239217288840468109140134331946260122696926716181516293811386495551404530072990473684785320505499883598222581818177009790366101332147077403178482558401328376155510084140785717449645481376198252097807642098491193576810265128642449995237151046034960135673026771883226092311648719417002797344762095037240408215770835169297342478964026602895460307248423038347988174667638294521825020996558512617402061012498831567723389689003720889242674302235609017415592295868519520751858566814708708357745443211246739903668215890390178134896036997339729355220816534453406092819756600493102995463079404606521096940839001329765112757723499429703805752646164755544443646011887556647759696460105820886463164292407214494491517900090069951938960249493445984625576780757431404512352072450258606875976087479413724013982457381852626655481030387294031235462165807670254615815179319577710494928372992249809902395443558096755063462552167037770284539295503378731669276579594430049343924548310831034418773118743789219991286254616476726834718855465287617072599311025708483860601040711249144063224573736641734834240645156462399610262333911414880565596842426316421625720305668953437500278102234127502017269357114390067261882137258322988449297703380207676729209498708631262024936953160829355723071299793934931325291940120588582015841173584282803499285138204475830536578973148123505334341347938167431930343335029369470931936558005464100600446418456448600674516172228828914327552131086537617515873770280663250545429661748305925383420783630923514930688652515543191167744207171730363700278144997534867304136380419003185589812353033640261097236540752809712294345868428622545899434323572044409156433044837500181372570428545490205008169370034152202359792229994107641224840493984618692464003518574107038549474685366486441465732357890927395058908794521250951945887294611355612289648872424130698775509943210909592723803349783750051187277941660273927033649320959424805300787168912334037015161729626026408542285519941441221092506487201526740984995114598221870109126980092943448589903138698162914865474392403053253047298576083974699124874955683139083601076095989341258288348779492046334766088389338592652716091245635349108118397105274759488978546976987242520270749513014683086436529124271832848358730609839020890570347296016292123580699841592479205181178783013667903398107971532074983954234720680993821005416550362224694552798058793472609914269164347670204856782764713519649663324555797656812837878880645680357989239512846796725131551786858700083453051269436543447302110249496475025559613941052309254319808925651427648698875714771712178879815375721392170128410345163075370687086062876604267588072328361132908818409365884911980236272144922959245926656745183498318851765027845310224259160555280236854305489348599780024258488130293925092434764998782619004208102880437543475340515491646443659614483847712983645648885019517604809352888318204452539464891022178739953822426884020778451201634373730396261390422191797650549188469066204435494342268434890235824416864808117696825590862166423149114043287634568767032796947844266369659585706926986971221992526767404562668690946119510352686161675078157074881321275164481368230396315763111292838463799308611225363608200954172833873622006471814080115083263521136856860077662612489255444940612838304907198434952684580845441419935363460807503494722118067353918910663775324926048346374911428536071998897116414488003039308844698717228323772290887688745723334832321460234137960850630372718204742928219883118482666930276045196837031831807175301955913714144693262049500909897968593077538648569083971686760922687013805722541845928269527327051429095584411435114429700447248817834708802300894158238365322868648876380755383576773820757969686228334486009599576844608890337092869686702045701623153453511286720871590477596510764712529243890539081365625471035819747692582695698940683898523333472554211446020223707043109258310852475126366624245688761883481767627759176843685492710999796197943388213284005197319072496311307157076043354739055536184977815579724597993792613616859701601177143854786336304965316311458529270030449243043881331920880754827330536621691364667575545033755511176649772169992833433827188194116241131062314275873273149334158049662185569319415637633276915750323164052376811014310783790494702593361193902314490662842310836077518830174035334733011993261721619280142978188296627296978000241475428054983645955443198504415198603229674960222859458241338340749379192786165997876844291946897604848349934402521304560118551935422961791219943491375853943279527330107676852250711313588153369887712893840451836134720996898555135668661098566600597899039153053346671024137799883134410080377101433047216842109909285844252177959620250229278449924756156809083301787519815477868110311093541808399369260860729624923610725898868061477551297364379899294480851598147477178916228570312222781019680508234411450672732170015204981057521942101579616802551202527770132358136653165961444598161952248933994328304763399804512213943052480412923317932898837509373097838977410446818590333929355593553293174171613425791504827195797731893393531834490471423560360055130960654491346670648671436653429225139096089028953171706730365356918173323827427772473906914943601200262824269025065656715963064251377225012165436900785921314492351422917906693439656821643052803215961220965372080233451329267072612346985045337575825780524358509490569931471016063095163623259116063753307705537038103518914216064522937538171061831968595000907395945908284243121441541775252654610340033143455775479489912836539602191303820884361458654264576939957574586062836747800333573318347400342939306914576261218030271834778393565916089518803250057003323411860393637928525892532500237945057973927130147254234927399933342836303154682752276259586876477455113278338777653470712649981538519914700443115950679503250103275611050261022495512385629663170766417842758427603269402889136030478962055051003083862432842829371477057931583115820678377968645814772732052981401224478575254242971365419181421981615199625433494683423816470954664792275064767681117644110888488440887443863258458549613680088658580800642402718440383462258617355639969089586051418653073093143187711859035902328207530542068093520906971215579699625141332924764791035723218230857463661436852640401334390896160110438455551710877872634424660814026002443493584852645060899724770926407932537561044677970709550281907267083936136818578788683284853044824649492885743887248958249729653732071410766973387135632045063535150074067029074100307354065996522425091790574875059632053742456381045999121615785091550292694684482813313423886793431389319024539499882515227092995717056873280053745615551169041945254833807444592017663365126429166685423639574990422212457403121255796810029996895089192702255061830449739389542573041847574039910910293037514387124345615062590413653709321327455970781065172723080414681286160389857339313768151310866460958141654531737327774356068773839884131492252255139321448318280193954094675627832110481620049058585029180312164129368789087827837579030279885193484744264377935353096105083035124898418388625580875209047638957042816275396755186063418242034060335721926844749156625154464087016062787224387836458852772373698956988257687293483831194382418335641020410332686188461932895283383344925281754639889300355305691655565496991955338220631565107751349714072660367239565706657605252092709367639190282167867879789165646012845350254054598560779126101809153283454387121920684808056108283718285283373570788164466537373538046168162215640919644710424531224146484259296453674597392893230755952878941258853100944188968466638641215785193868088822696018127205335282990216689251681347177530658163241091371321974067132639465514554042832904346783132685047641789430708663593845116736426016796163858748368874127422931038056274028020870204156193535070003158968399847288171052399197814429987611349414398017873900878466021395341415169527351397897313256333481553265023681869718581804233504028489825202095129702487519388270329213202491538498470913961083538295773863944782248924542639083040057644672212559188606946535050102747675888723749096872681823141267454591645938374506096934496316356993418046496564319895555462453212482553650002782138603036571053560261277534790624448765237879104618512120187971057027904875964523060908437049199322614860042503701653255596999374272375946063662351550689326915489322680042446384476773920193812295133271898111109942038946960245166892887121745399372298503662924824633652024085757230505119082458814890789144020118134045418820492484748116019568534909390081844039019553527975087004051785582364018970672244324898744036850639307138444102353781145488026010715055220451079322084754454894181531127757505538513367530202450900503498354232571983118208377605321828080222047456774773217604598307456401082967508603811407548601720483276931544328704333222872927967328944459106460010551341322264837561865722452118245049670477420672985584967953190062697651761606114639084202401211174091887568781920470867314841062978139247369958494211935248737486314866668748747303285661426300128455334451189650758647674514839798951654229519551828775966068750594676078209681870702486858553992678211116475469317843627151792775668451778642411991103523594908197971594862162696940907240928605374158780182285948717224089986808252694175644297054339344902712089168109704993868709512045460640014893375261981593236157262593988826805174679590964410429937791829450741210041359917128039572158814117317659871332697690359604140779734220868575356655349931777399393474186803163008697085006038307824727440888769253512162263505031591064532536676074928861250485841334581410382592345046726188527813149600812405353568137053437099251667369482556450510859398677258601466025875317020861941687215647185127587694613756265902451978833977746036296488286478947001499917870925578946965522268842248470516419109421427843039759462319780472690525955008969753275366220233656480711523061622561358746434531601317320931111896619179257690260834455489513834092214879747920943045890132129477303069523185081783566812326755372439921113280426569146317819167088442470551656002513904756164764793889130841521710666194135357014469871619002629467150929618287716415364329712398174488976286800043981429770980215542326202286869500636994897331406172282824938584954784999993931098723713423641210821948265631204163713389519454121194500316370421910543297832338017970820646997220084004689560949553332783090337125137469344695501054901454169699807323855621887435299253269101034746619295652108563399250104408955184285566945181840640581696353204713461656682094358201899971745498263551974501441193088943167374707585519871088806022193848075671380807921985449656975929568069621982066415827975296796634606950832338908657633612713761579027958729874254898176293022626809159005369968323808868153204639122139878672628328711060515700703528500239515923219025804002851889242798101523800091792046302197372104056811628672552549309433556800260849243903288335547648746401985654180917317101303947380950443086853271389833359824860575036556566184484556751662812920984984407239653210516063694759258664791102317659216778891332548618536781388937329316525993876171919008216894555187650131251541519067850870216068604781777768908138767554003309382253494323033970981666810381180916250274968534210361922464941510080569467805356473918306578467697645447364600174008696251011369569326066980410929319013803307519649723445872561118840919068265998656353042133030959266250096339441977835260858541166387359968694435268176633273753660961476843870659219141201257489078691820483474236159181879763052451850257305398880511789213326195323853737474489004527349809538883893117017788908079930315456448615618561771884480730275459955545106342710036789207392492612046207299077972319866805018126796843772506323619641110605774699423222251036234054874296829704703776814646378396570333322118660353167535635242752766247918451519851550094863642307599535047840661511227808579717027377753839025034142390129060840871636998489644022430320978007264450905731629567949413633276296704679471485358697393758435754058369306405337575615979110858038623431297648050821143549609423697757226494522245601515868420261594248015410039161979731950981146643077385955844287756804673272155036977324673244267858033129801300649448436711314764282078740495554810649067490828011114125506037862549830202295148158437111730852495546716836075773198350332025453234650668755488684511027761403454782404918541046054551965721342086392040979707637253794831377639858585692983072810008965001953233113686590425576274483546356509557477327896898553028638171256130047248479691507390755935131587808638812285771118816778417129704975620669860826294108758366999882428620853162933010782202336550735842158432370898177652293246893792234403049568169004257386773389088053023124671653331793081792948198087952450474452626753914246288746518967635429691702614082330079130809592486056333395426763336000160228552594867713155723315368875220534287968246393844656214440635139355511223192900510300972010743717397098227849911061755376203437618495415037450067597870452502240948579352906993655845189042857338628680217024575231821509032693766810325464363268564499770773690800673897769115512692118391146545410332022504380158795047721455605766119456251350220463134868618916183142210216600386260474873616651401475248968374380299681192935305736059434376123318391925761826772557455357892385290157908981356228198599312020487524875257920546009855960630478287455076581862862209647940604396922970025399202006978107529182313019022156765102668173460294643799473747020453932452425144337647358350504804090787495500280181542101378295454250901329343469939337147780791887183720214222139700901180036539095584980825259772701055273221132094788174176390806014646982764434194217096146687716388783474992485885269868641123121478158854804568224554811196217237183143120347591026081418731733655466786770771833173388759249591857441723216588563740608490642119279743800928712823724737475744559601051578921773747767595317417568816229305293775789266555517384295299144171362931747911831335764170386586672289685462979363150158378384779258570456226486342212447989848115698182531164987193147903292514122241926616849960510355771647697161036779972175388574351792595949326115723041670262850760106635252681844693743429211378611687685815651327399641214367369351522455906958214839259070246341784096785974333175608278577964533201154641670113583114408722609174267460884640205171528935756481866332686782088419101704853532667544901377150738886482558224630783293398287465996780211999179921931884520921551141203565657325706370168819958509984777671701730729813094122316996889639251839276593205410448341808440851835658063903410794492008944989712485411938280601058268111428671067121387476412494594451002579565963563818415383255979521838588077327584258892524314516648196852677658962433140987597426533823260986540996657442391940811756335874805594179918041484972926899165864427456401704497800555669850888069315271533161403916459083322911291790112256828449434837534470938446718701022100872789890534153996620427210799391739446722149500099561203007156806735369587627604245036727147141131759783705924464877189056075380427895668448422792520835168787399039801746406205027489997412553986698764873153204458453111974683106454731017118138532372386516121208393137837404528237260424333060433236507101884938110347754643441640094107538943276049545642762372391239516511946373262874190265171761995069693452643170489147341497043220328162718655818885918234434547510148782262152845223791694557939179917412891327984124483744305130808736575569802342848414904664074441115467058776395028794735401738644972685970934386242229929422569538111447480709049164481089997130596878129088507016933510133146415118740917235465345995820757579196937252559049571039485150181145149390946995655451150142605756478482886843777141184697900021335804574075253646826852566508342949495871889751591650914783186334466045930116995103374059480428511098494369253656835001041581433744278242288432696693042595758597594006513528629076289535310457796818103868233220631127617320748640404059560593315761069998874310325899127106996938711023645128005195302142998422259410631693726234746749396803279031280126236881469096942008957819175199765018549005536604076728788693458584124246960404260522916636771132369766036099533442613591185102481433946932117492299532888041194163284462326720803118492021626583692296019074798357682903213045365305431219882493275519128369077341655563630485492026291573908521064522641570545845923492838213509858041050480224412007570894135090777036759626646811636580993795680022792794407984956680203405652692538854318400351155467752404299357760060252996093321735451247726473258139282860832074857062353267116523870092419621062422735929368760629881277174916530342460492564245941970995210723175773775194441743473903764342717391790287549323614721676282352013521853109655104942908454175421453364453728443705748783309224303265739755914525383857497388168596907252267434373668795897651453893451239472238420528733929061890814139735870337946256386034583138984046273606628158163794458989983662908455790050127476754072114351148191111894350206110871845145137835004740824643379039732653036587663494909546465995686659948337844455034490130434891864191612667789904418522144155311840802983261467087192251109335551180310370349179146780885937267397893725834713135891797980763833077299126136657351054256633602159872670034283201079717176236246244907789912883831961882459606893620123759988666793533111997928468016915963374096752744869491183089779196831247334702467691860632546649482563635997838281083746292512988798635853021848942055517375318419968478424341817060610304481605988459532381957161536663924201236148986967079631867877692204247572058757721219335619526078539601532952893589645539355414704049221670742224483041048956257861610477686957135807976999380384736453048024160327777813426819887321992918516655697407859019685884495445691794671637708073965822451797370229901943982733548410800260204633309023893469098407941374395476511934504711011005100814169375703708973419374171768799343962907155643032782151959340243881426687124138300421219834151313065694255921364698532913146423777249861542267073114892985219939689289752588976072122741277064887935394527971080290147796219580768992533582721931133857827457012593712047228136765451210996174765620323492346050093116779444006234391670666174050023630268957079345672917910143545778175562523863057903601165533325778425946432328067545812297251497980155769870301690318028177412104602966066484444025096355419643876404889358395507797954713513527268313732040170369678161324002128455643179411158335835862842901691881762112583903208200377961218127224561841588178093637237682569351211239012686885311616145168985945379605579001615678230726470182096393997377682410271832730587836050874083880428940026631251031550351251575680750224235383959571193466080431338348942976597092565022530486535971770107960908272519161425699604921712785782772731706772880902368698642075739589830840292967991666954156614175896576458187999426191245653137633696137934806473615953418337345061421100102289724783880429923490166779052311294361362017665197942829727887136897451798645578308468433218933871284403730620026939839268255423155445535444069626028783670093654095886186659384466611508900015520235585010930551117923691582615213239100933183288582598238098970517548457601124172942117359072940670679338335997669874511277557072756079752620604585362989228206628048331007118457237236901343519119454049971048677143250620080590638092513207675384282320312032141300625846383089500802850490185543052555640252603043523597436488761880390572504206480845047589644261700105353069123733752833379702001940629302707889325074046633631672956911206992479310849779589385429993107400062566156572414403369769977532312198800657129345763027780685631493948311923462352321515636850004013429733481899088710636640374494494039464774993476187435726325150465323882332620793648808122922726792334234002596254885816041303290157726234055181654692259199290565031000466792012041981145982780187106549443693205198828554946229325159668026354242108342181791995271237354396235016660886471257406315027651723561364111163129188848616448834556717085518501997479376097075524496154251277611058436761289706647882346066462019134079094124573715021723340079131330070272743125501608205315671890475621773482394690342525809065214518722138328158493923850785520799678249039166229114345257389247771639712055335502373115661344752795354066726858667957822122603103312616133272912507674999501151523688688568913860846823123932688726066099838360523433625311608318997033661126588308891051028736872740093943577282496762843257504560282629163363200076747451999113553203469496895285652118058487954876737246664738925335870467889111933248797951395373579469964991512030044841326240329721941810793329775599881794545847174368175586130797045298973751258950980926079457618235000756737051761003349950986195731155155873263397269105470811373683967508247131298379234506755602601772774575958987370631235129894400381774296324043210934155405687315930697703452376555875105725344199638071339917235816845290319042435189979991554150992426771927350037573672405877543150655504970878062152374059307296174496354572594985030748504308773736733498163957590575133141495386894796209996247655700918397441135902238059995815781700062619234739816965588695298176845122835327815352442176996036243030862285838297094174183426008819673073403091469191620081844529757036722384636938822173389716041865796707327255165731398371056658590250386553402600604131546532827776544242383875969310491882287898915057422878850380683982802462048055636222503255764226838828006631084950626485841161394107689518633926765056904092798528449679009987106584687937763380649067729842462991252768636743522494380263393668795545013245806943453559634443887848685624616398753769765824631544669333979141221626935313788486378091196991548934381271551983510776455595339926383310794623052278505136888282202681657727479074091257720691261688139164549662037363187457327766885109865553817867701001960520679704678128857265294135851755007624437415951142421988206592078704657723490974606579230550734457986196262715643159859507872235736535642003477928596258230378090830206596612707347983117857298170972145897728655341826519675916802037250336996913663645404028631739198417301104090052968611477871852266852752945782435062331791917661724367122812013526574586467374391144776305312448340445389429576769000173772123519052556306693765467008604036247354768277152411083449029153796689684695338833014499689058401267511016287164259771418520097476264043765815754013290223422300435567829264428247304565621061384394347581094603484671784975098265598714494362886878971252693979987734578105376034952127031424351409599847775611891246882183114326360026610294299733638879239191819492538554132198833735110609347646958716862602594917126731382437941182343879663554916198547806538779911777297611470779889203743185262470008996296776451815028570512170719764213828984867945840952073346499213927546222163552018723759381898581954060026219192411268541792709798919177644890149119278400269499467321172901328297109092887213802920085571599727234637502485056714565024314536534444607890125559451972057500068744076444141339085738355636170885889556372395143626863005518554053058788935510049561910225767175016761291029632107233059357067126153943513676246275351149217654914587658782562432755017088397313569499109093825279363151130750415474428033669730229581166720707652084235856565687512743742586410616039316345691023293372440751662381655058546221537143001428594140507343257750691828095116013707927099908180923297347114319971881830103342572474698059357233630676932742575609513792659278039357366532410922398111096480285278757946829056913872005131099049132673354105834591449688482999447177183247179005082674060023562679336081923944955804632463609553937789796594263730762467138325068537509731742034701249179544584620119580466754263788909069051659924172897286246734044277679819885487838626552198874698978071140209778089946321860887004114654876429128682467865701783575490490678533388740666661285819201234426173193306437605647717196254725548221066251221598919450669684978640586757963281777916255655185687326501684088557572575496546178770434765308900800163727933799979412072908368611986304185988814891386465299239787403998376673546676529225852074649618929762123059346459394152308738117841891292076556799947210106915393971156552936837077607051781725913177282173257443637031938946933381323171275097988063575280227458456781748322351874928702969984108978153940922857820987124358400455838021269154061200182829495958553693768178931457516549472908198301491697023583219890414076351206046167646383744566727954323043162827228799618708767141546659665023432856735148675078061707338098957531270097364527918879103900568827785499061423842794987418561820482417880201108766616439413710389319545599562070013542357473676064855637274041284534216079387796970749374019412504673756947604980457756962204187186031967754915487277334447442622438736547171747040005033329551256488403856401818392597207828601934311701451798709165573335654429784228218853009110220487880737782536333113186470956156481777854431560507229452868266306694908355154602858186201276948556296202543261268526365737001771996624829991440176416647280770468759329961403173572754597740549649115212475853832206002172633151752176114523538826545257156542052120187925108516619770623214915342108674268308217141263655600807092292752350854366782808891923798752165592506798961707648849271180029426603853947466902778619072043789449456836867752155901750425816693673269158402215828373907517351989877702649196237119057335491933727836989174903044049061293471216227305679992903395081329104475649950841920552314450117921561014543271671751437177812619259892176964733791749635370872487218577417505123363303892073541386964426246054160893517600048017451227149206029937790707542245016241282937687330857299941967436934654337691441827694083425445170753691118711956826519288332401869837708770629881457103394045521735455463864035845883706813149657434896816422613430319509639805996335995081847125992253084101727371671318208986143449295247176000347538643393572927263060684514179282796596822747384287450009260883887697817052989040615145830615109344796533674233761107338341536078340923030987420854671791881380373947947282288612637456338623258800552007809097134348573173060628696871959028184540377744105946378221601022726979080337769161470830881344239023418092799410507045289182315295216545139473483638854003594671957063571578097566598252074728863867081162711208797450592739873894505957958084486844134925085869227132018419666754057076492983159485573393330164098382253054128983353644813115003888546643653402153496759444825105960858053181164948673616873533724573854041136127750080561821439948963404054044125251229080633101824358614370641933807689199477580312363031573384240423128683082412628465231723934729606397987979935761089869732028010544552311871774281357726496668909750700027052934569339980096336348371693246211117208977000638524088430798573427065185343275199039210666744094273096363506952459059805875917434529539169254105110266636311565634819677484650671712331681365894687854996167201077336778616207039986408207825433940457147276993392612573079914606113972559182801701385015124487000985389303355407385504598281598173742873528692127793198115073060169054351137763157009917234922804408073407569637221396704437739631700177697844357954286156028689965920769456941741585835383367242128788478990505020986139750106674263213040071803804672276453133382217207252744712865341554617688402755336187307243463131838416023100665401764342992581363958724979694960650607614965237238222840996919322841261709587572898609445328305167762885684826299397112269087828751237878687982991402364160040254658600518969660637624328873466680777342082444930361819774011687104166894735580994812498789789345251170635008912044447960491360295360459709069705298645286121036210835955339028382293753832838484260903253853925667001358875630140424778061423497599854922346332520576667121290676410976960706907182298271867439175453975614604569825595173786466189423478121064328452171167275071850260461163261906514907777717347174971796170745292011917655198581184127397555057019013996310457218658499826270007395649994409994448301229699500612127177591271155180534252824947504719808669748303296659604304866805325422290650126063475878730211731153173065926892404708409108654706289844034907210063626747614662935841769726201320773533008306025662403191216845490548775278076851451211481781122519673461791544037968251984569193573613387230486426341918013387929741694067892137530835382688195118901467972379872833131086405071247829660599495784947662480350664906127389925487132304043127652903562567690169501371551038143850029820758741463334704341403085086802941815654286347311997747646409285642235558227528927567906809321904423669943156528532521891292959332800640353207722380077157505984880216931293908819229138908963524229657273792316810407797485167679617054272429458246773469193676333418529624369622587606068027991458478368903961992663460822018514969763320142088892749276438508325556183694279690483019347971146871743182059194070329469487922011753687782943694299736563902566236282977243514319257139219356052711963328006893477431401465504047257931077827551460429762935489624114234468616279319365300681860803932264027269837255317044128981505231708090379348985814479842942039503959223761450348082350314318396684931838716924846205786636775746830084085899642316533565749844695401513570690184148883355311512008787289059622708459906316682477457651967964433878002920374952378148465658613756881027691096057219904391345054329763870355775172076974643450212630167047550867384688864463241070544441936421810232412808876036626272222619508495917069934227108769261110933236135312361889204699960538135770596182257128008712488597355066058889047109175708545267243489668357924882284285505227384811426323167179947212605141420341710592205616960670865278084364126088262438922666219311362065529863365623211365593850135516277842597230514196602630951402136167196470661787902099025435476312452331681815854220729130419463951903437279368218116809703702111417041783382050351156374070912972944037091548843573917639606846711433121577171328148285676196404346190110650930684603458757383160620880152467587687148005180524955515019770139266781780031184873973445966353777673900271312324730035983094737044374058311593386596221308014816904062039607928543970360937288611729314254897641550318213562043156002253080464326638951317767159523724694339820416472998038767119711614688034033684723351288357934253237178556256573620507067950489426995372288645448416282434925441236013804008034028560376480514724437666992843484588208029289943680959085942378146835523156932916020421789807629646756096086405420743591455051023873564359605470878176107493909019544978496070456204081615781782116889379312678930683178613982367865182958643719187987478129197069591021823529779718978401555465515193901798970328555296640674158340547539766275091078496678365564378708776769095089743329185117819885662048451796539562615038984418755444529675876992305737324200064863356741968935590689131653992323186943023263864895060871230843877083601390272583655338782299838824499625688936359121314912143175976749495546530413408569640855657206690065902220830400492063799293446093759834214479999252909973891164061172870504312339776251173263399002041863791514466291193986197177246067046562725794840587433062828998673319399430702389260300044042754120889979011504456891568731428908303591292321137960150621131943792019847811245477662041923923886205303553689302757853900258402516803701700939255589057899359919329291935852523266210423240813353488777737301002668738003519812151870458028961081846801623564612888937612323964927435970567328237829185017738182740845545381660485769148557240257757434807943680678007464129398709305707237338433388602751734716449121945632404849459097500290851681346353848674339892627244427915226796685474369781058004221682838908604055597536438770445918099613395940803488146895174139368219872592843186013704639768411868494314519164207283419557934725389671822930242168986748206715641311531865534227296210954816011130034261642603249845463667570810032315451770513669691484914183780546577502694320621680766436804645839655371270974955114753168595908151913407694608723983371336837166351614640829537001535509332335778766352986222664187401359882184525961444377880783429645128317119290748887842307545918970936951432930350156869843358966391733999184319721954638294457795160606606851297498103812066383680993948035637677959840206153802910900499899858730622625950230413585347817865225523817621720464484035468550627775695891275527190278673930927082084682377682457064035874328488763052401346554510412044427795184838457119474955222848737581876090509053202791703722424841358284203438380372739140306801131161358734765356159742978761026352750228957492702382665405290168270336793034656387345218946104449997638639320647785330337658336157161384319689173384635854824876319342649627006927243441373245622950612235690844288721321627979413773526005327933366072304299190960330035846622387396483573637496225372245114444165830841219818937499811256578490588569416357710498680241642402171947632465667324119683922721320779436565066260740278706618798586576493346399828480612810577534178862260027316169817856511188110957559029860921108173176847157532229968867730288180716613404246557460705204686197707973535885284661731822245619856812704304175666992002804099349211091417125257497643435261017661751475441894856014392638387297937500070112740957829649997214345232745038797679536897565552163918398909182125165523344738673949316316677298521810553452746565036572198225472021797960934513452806844445762569424343689585793390163995848027393375020102744906096026675716296982710725638821936043011781914633079926530178259585392164214327856197078242289217410780843668290254265881970602853989245034801871718987806629290527344593664585536841732766383505127822939332968476365241044787717450477564313554550705679853519622787354697759986707900980413424670700317810138901322528244183355451037960178515145619315104486812720802910715531029329482420337072642781712339875951128378987019212082667958415282473316636128868170422490917011817998917817259392133337061966996069237835271741385845961112185418497242336066452566465584227352797600135584750825425198605197820083885304546005156927178171038939298067808089960633290828753723337641479662059144091512399418052288785309011397331954134522614944607911171519658811966567415353841842900115614239677454362615151600823759957533462183301125066469927910224792796850319162305552703900363945079200828059328091264311320102313901215374797185253601516693697718881226123460982898332462005328513041784760799226090314367756654892945537808880274068644888362968098701462570210623918645507295819175772093961974982486459491561372881566004703899889737289799443317597671825132053596283790450749182459932036939823598010107660230995785392255869584814502917327495862740271876094074771838359865198157949010597807799819822636585598561365766910797431428344037529229103227034839732503933837352568624763376048000838403315695854541564721970926420142995760836897825576030179716393302668254480003872505811675889822717965593956721856547275520248843261767732261989997288220206539965291552745392168256914173305262836243390584529445183941437391274204400799921767974012415867354245510634280331863247665687539446604472788419185031072403412337106851909222924899595341583825697670452269246854418771099824641628421760003177805957430903143197239229620683667207965572328025672591596185281668967569870742549839126946892787932672009196116735977343833916056164534996650526288880141294579923182199603714933912527744889766901312784888792290969104369624962381680222040257449134417566021574021318600546791723304903545896519918243427147581590073055994445922891789798399601437968849346386896778323781155205202109847300564860586721687025956627713414294229715090376698795204299224188318838619657378561584717429984138344587660208607337181421311008817006255641229754070923289503528833936557752250597346993114304178892642381397828974502977013222444905767449726687408029119452195678554633769942622837082169420682126975265158932516104598514400524438751819503142414162643469551072411244200828448552917373799341557468877847737300196875694891645142915421283897347828696312193795134072901520369685175170336179387946769842612660965375267088262755280492248354249183327096022294219474677649844421692525815672833665217978581885045287418027369754578383061489366315756735991064548856289173661938935172540456358020994533925299169162813259120077436978147668416979707474071944487292119113988006721926938712781756598429984615567031199024175458765867927472925531065068945227439694191871244639339647513463135801171191076724727641884841992376140271245149943323394051141880213335952708898077778257164711521013972052684586501570742680534880547378586157201361955945180124247217572929937645901189437763679315152331908331984417670720940570911767967625805560185361108406642473142634192098975742177858790791600217797712353518194590722770980615830737298020928027443094613507428840785725247484717760463726961320571058748797759391906338187558628105618429528730616475525824858886849072873628804334689764402028143516130559759565215483785047828736964076049099803200722465034752989193917158818655251692135970726446148232860158234853008001138000977891903891712059269313573110628700598257642022597329463138608921873632747734465238437930527458938604903178320173932242515237888267645671670451615452411674121480715050183980793927272555610945099019098000812001189330785047604689399063845250574495555173673100640322295653692803151823191437320731119643534007826959481630916548240631053815351113570826056961915209145958422485325465814713098402567990610708435689570345940166001741089603323877642271720348384003895165599949909636931986726641147757762703004484897473470402721446176671704636472551200093971539587876219300446742596493534357540112432358272130270944561101272335672438450247682951908980467513452167865303307652887185799239488987244713696589496721224039007108310332326406715981059259780734354719699195127300097160534132814943198212995900986160495643875621413516994940795561009471478701816009589739419867493673194308355520573175715086999305802399599471522059202752825161962244405780429295624406881039071384019900590802881825432790115808974238784045823255288959626008346218186407515905779682888843092326396606553082679486207719329674230957742385905805667142608415835265223613068387545731432838065443442100712621401706312571718207239344214438065765622669893180723830957288446581120043545001328055530620646177101186926331730206729701067863551989521474950120062282157283881564170700300031227591461165576210977401261063220136567856804563848901357588162802863469304184596244665399148003884928153052513044331774267639815687932808203146060328270847205594158964830738676439436710016951785921901691437387868938839911020106601826136460077761104453609003850923078440332930263879234343510593734600593939556417139731456083637131343195288478847482620708033758560943883628768270896251831181449530311019290641779379817155302071460203322593544014110519485624811706496273056356253089438759874723132373671107508863482044835611292161766064980703339728427222634121274570201782798313844330487823965895239261004746188491292810778024044095635888530886859588487735165896693649163661948896930343498828521987238195280126344101092214495949656810315729400099477459792509791837295973125103394861619310086553620399458589403458119513718203213513922682114841537430880711213929227224925702852850776607287132245861375295055051227600477000910344421922486800315372577746803502924746719905897252730179646757720600069332851787128638013704554141216374159992132339422750040960143746645577104829059505052552938695442637748392276395316884752263680220343698595521011291567447981974530234116721173244639450472055881899669615827089687117481314895330844389162787893234809164825156859484653472609732935937005872609970258740503258930901972432986446723318028776455816608892143770030794262528576809327922431413106740819877896687676789094952846322945338422030900234809685301670825335892147476031126465288152328498423929917117044205316328346998639553866370228905583607769944093680226923924020501480179079287359576798750288949691052746576640937654685676787977826078769859522527995169699949654100462454361552359013163696476465353388854221857292429306548176718411755201838113840861618953920595612766105264611046394645633455556126918038482636147006919857484320315396529599315993050802951819003247370379643198404430434554631518227526205542555294527860606801214941649659196560033019402359227606001283464951832549679186469739711327292768197473651627627726375899806989870747163111012038674202792246621076510146244836882419055908339916290552435958786400633124498301280855262597853048469019729943757903501128982055831540535616682227954691507639581041873345520427618398691613975745899819001682551953503775908167239042758372540186614644916773100768383739077612589756785797975763217433354962419978286930129530506601136321821631176446988271577163416897750837503139220200396280632767147775448344469524825092496007932913703287800756687691433907008105478374650611707461363865297469753128460636355399842664744425664251245789246847613052978353753686604655769895081471414001325466452982281633355494781751852797757093370127057731524654102600354360677646240626681772055839484408941133823215878822632329220417136411938286937637531689568768728719610084468234332857557083527352641511318004785431748925429534360822835847074209850346295916752563471110247265615934502912978983196245718162001616170528853300453176683021540119415630725972648738321776084857051821504664144717082767360285909713496935640998487650325368979882953101713026635321541358320768447123921178633344488265096982122330535930901410283873928622240954650932596447496242644193341408746080033459283385607176830220586882547486745404955827655897687471633101807519610269981768547733314106294185604804084354939686713829596036407714486304617997072707882986958962857587751636555728026320084443465864954331208670168343276448337485514408005484847188010873964467424839171954026009280019941544548989857813562045774897584015159105406667706376646841227181348613959884650570473185166045820748565438005244265784526862528864681904254775529515105229508289448806301424667914984245961013894981783172305840861172598036364986751684501689163758865660389250791617486164151487002400341384004767212644734721939953971441107867823783684545691797915215522265880129969268310273122018628139037840160452650887742085038166691936760685173514636815238292042039853406911222823508593543058518376064831940711387469286831534496206511060591067526286163859945740362382551617011187401153809785596299088238308652176545953397771773359207425677134480632748064094178709799019571053650858285733465382900203170218563895058373619725026910023724170701629408024396837640583771411746167128623104115976239437094501770394914591868758089115502400031746055106365796560027011525347683333642731128761782516036808246296578244263415734973948187652070123182817462651622897677549133111884320818753421687451124502759334869464917905343899876455269609382774178527165562691188851994759814690022966894839140923570491788346910115466077978854440693696525198135863795579111343294943713370177351199355060870941388328790663298652499107812150150432004117062050069408270055554216878120811940137877131428559891016783745918636354036765907151203776854965699128300666635560194616319163599359735102623511078363359010952105661552081138516276323445741765479679100688185787570406085310313111772608238366325795369822468433016244551613556335642286894275816344051783614311969474584123628347244732128467405671576790422069609536011459409779544665363813349044417758662805558140666086419454932832671038934920826421203841198960713679753430535197445972448254794958489450982184981581101383836323274317999088042966096364102870354596488705029376202609493161599132891969634435473185206944788448327967242292764991649116046656601286400662731679532425735554323998756785033894343213899183907905946147240475003668038107990493626423908231830512780266128063701132871739450048921304547401834106774905338864528205798967257722028798527794733350188916912316208017841449678196665023359396670871509618024092979563942261620249541027388040237970503128166327787454996946410325462894574161007714819266933713996347187416389475964543827295683057912713924438335803492076351859705345682359744656789815830985775277981985307351061927800586140318706841949314975234558088325734270776360320782908131178833329122875547003290387905983013474691452365352964209934835550702584133746082660883108598958540382714779653252267253021013880458663956009428735878984430250173616985421393831844489759500764579302926110441836683685136106667444354244653221308966409177497690296049051212474563747953102021665446005283186706505636034691519306109405501418279229594235686489644930224483073462890800546968459487291334387833802041531221654261667596024687508117577481023386410094229130267018170064934141272458806974318495312722649624352815356297237482877724901348551641470702652120643123585829463752994875983325439534165513088817347267735122113714822546088482526520665159647348236555346828811590182062090312390478314968200001112819876452788027889526245407130737614648248711656131113524988476429081820965794793084580468335792113027284959250336573793321372735810871822595266195120102488349081659380953350595468058459475737490577348334433401827474002172798631342354071343997340578612576882940561560209833086730812348055835703449071509195537110626260625159668819018612368033201626785289116895959358318281852406722160076362775529519642067828270149514738042392043623511428660912765120523208437776700382155743986323006760735218434919521265836948552922544546637106381577985715848341361977063184214895714364811128932056154428047105968987415920170395845301794569439411882295863069628322599486964018909969240348664934345114479220988766664429058419856775462691377669503697356757251673410932275375587153569882408934328867118006376750371877818508523290749044410135143304317652739285398983152309106647343291666429611186867999550147442604298172466599350679875593760211190524489755849140351429872435605324128782261965711895796458210999460580474819922441611565592106810382038172940333634243590748872254671025216779072159519153057265292080535645313301589848097128015312372882635063659441282888344785446422513298205684893463674836262115916207634047252532235503685909819727542863439854648955853716556848984431802553454510270163709082217954518732165012315026552565691153822507271016743435677914496474919477832240879814139676699057995322416150154975795568754910049097420406159872757894312515251138215793848365392898430264897212803298379196460704866336903625701070321379275977807112984329265629281881214987589841792967560044117362609985304804444332016932449431917418103613868425153229106638002194084398766004803350888859969297559400606101029254924315683455743182020276427044055751889119623694283220266994233270607265320818621991636221920542682446857807388555843466372721597344657481118166692517160011133947133610329670745721437158982801140448169970090103621470344281046439129707002355525449615630435044665603876107958810716555516951009400574846767075214147096191561368471248532755984200998938935476614807855886212869423622483547143565549950444784972130797017917775331959532024907407735888348465278775716799740824743683636053753357284000796902959266479902437126100056276078336966869477098533756679093680692748363138560432213317495156314889467525729702924207279039949614342134570327042653113138938657291039472715340640195168848940863168992828693373829113176709630090942149327730402080427394560209802254634164096777771846315399114369780019404977503674448488676993776243116957090029678913543254085082409395961766964892719145298912775501131252690845647709878616185130479469900740945034893254136945844778999540266311003315919803248691117411928927909424328599758576160713735116746898023460498121322618018996552366409894210664512084840350475565913888987205829846790679557326941022271860429100616394035245287154856026238335926113815053089475217077489894027333074979338940049531558665904939232924914300969869144427583332862251196324804671013229796995404003530503662570667442342416775502204792901801238525774070237418224188337479938091878549493082343583416089911645233669662156627221135909745128526672719568363892110698936106643052329625688720910731650939361975542574756095944768033864547871733114214407598610081069576742748549313322948649129595262548008598002850525670615931862183392146876144741920625864190921322902351855442125420593374452050468821766829473735104436006731331385743179748980981933112102684298804521484290897477439759445112597686571864875269870230452222099723859917315051011513870793148560832601371714137385463649752451138410572297785986765303014925548491066380486375596453717201847906623797143257862152722921366066970230994798545836199978163426371656746202615139172916245904917234761889213860717847850901435946422109392918289854535857516872352072610809769370454859707908025744715420099994490567575194241935353140263022179711344634299676863914204638892539285455898909710443505251211317086737754456711183712714620331181846122937487449558633187052913909865215196303981539713385661561973649810688956091097624821077292058961984483252472835004845045034813442198931189622120616732886945324292658372856025931000875153649830299101690063483901602199965819280752064794393378178077988102428705651254012214855750365446585114308027181415887274317422300034004100510061450316288279251077763745635168798928010452941451684527132032443065741911426113746617204902368092824315047962784804904752814172122909434186666418968056756614256233394686214925462431539481990518420329052050675729569651447714337877760950030818027257798590021388473300096431081952079099490732480295898949747941072166807411905013856500427391392331244671506209588252484151674901374951142667305136525931040441792934241269537416037861389553812227553110158935702769615261522366392666359068120867377051647061367218169553062274221012976637303133954725121350716568729897269250753562212290560397247329279019526070494157437350588469861065711172020827102835411877010059041640984535389964311540592512913539803806370895881557057596134784924066752976163088669363042872472772204306566736929363908585340581844922324679457256282626863528419340739514013852768421412168230863254933942949591260789248599413759191946467684962171326374274970188086854562197511330610300108190777452474795662958689601881916684294575976250098468832057612403193694945394099550521393222557277354350475754947186145112414089505188018367072101979487312801019193934253090998469786202947070898816568531631624646206456068409214144208676290984588784036295895851855848771749589567929129492448314480165939837075764223795362466603536004101281944149076241316833229600721997211021732644065433333088313783815330799643718948728909094378897939502848365287951443333504101586557495701673853303243602816970546559941905871384547895682310286609321821788053951575468990521734782961337838905502956490780628439423629328910117387933682181397843155267765732500534378335931027422281979861171873227520394581449029709696931837250999897732273396095536052984187117944984302582025818124988763905033337437062300360263260006969859389255455087018269782367916721563274697957445007642438080741042845651576647583246915482965000441288665126877791514186063281423483437961073163020507915708639745737802330710643972647782208701432840231266146901044174763800562961660296550120104217585187188297133898267613593368335565388386036139359187897047404433083253772673965668420097322590449733567620153383195090020439395342863686552521791664959036644455725470255120758697882343761442279287120918736720682787052384319674681899477015027423796365709377531701378536749793093240454875260975418428811413014034832741871259465446437322138780578634367184738908542426451609000094878628579932320935205722327296782417728697961991956937122608294775039544927975510566064796069815825134873110813408425681368050399304132067403141628496483010517802154840523389926791926645710206923256513523438648106481897487554083488099090552074487631675064921636381786223193445241620734655487717239697862634014226036773776658320177448845270181388464854479792261644719670422524857801900637045130711466094495606985398322206361408327906745919820602238078558796773178120556152458529441712061995572668876246749325978346825078073830080820859281675582450259776318615259208179533837554142322677430769506989976242594215809220212170950200102557877366142532227619214918471371400839287700473956805679235327462518632321689131329785354030042525833659926682268994043525935892150888890488082578177023720050446766278104930653886852774903565079780347685579755637189354818805537209841687589279996402598924140728470968769391829688839804201617488434276834028213104579308625750480657684141088185836565182627191666395351762630553878624195788170582799413146921575787783539286241781727901508294978486813574916042746232256589646128919278661513058298610498918250001549007236350875642008473653057823434404854893902957165322462580895276412834247213285380382543359194515368776642797042402353938129660831617880147874421966178689543016528135653850668809605903543749250168188226944930565418389190902932005278137952270153676020733907645896347468159072610391127403671933695395052794187630470952346135363630331439051071233953876452438790092757821410765935104880870883756321191783685180192428153561841128831293370569482043894318850964408645052634998335530952224925621260910971705021214298815521701059152751820493720101171276493038532730752141039907814746137580866673294652666936169993002666018639468107259262992267250853530118684631562474129074101975565408436514873554588235553350016425757024252689543127669548064140322721378966191079423260729351146918504566130669566532394537167742170401997627181191052332936331100954792853945565975141643505750767430550402761857899783014818296346995005677223538832852757640910743666847089411674178049777143563700271051360172145179101155460324289349900320427796656079256885039281229083114357377459303984187906704544645812180141116880421166904944908016910223256314386713180563448750897896974495021048884055796266868151955065173062584211292961809242937289421315929342263205071224183094475422441670331988436349203637745564387086374197727704948123816061307001413031989362432891495175762206160072337806015205192515808183689799253353855308448864506200973345748672674755145410922875630812779756016959077064777582227231919077689547511213342975056134073494272386628530352268363268167932068911870698951851812084848120410174313767465511385677504761976317531667045152999721364282186342732224446776972329989671704541525118169352935927282224709935486778171500739953063500018064645237986756942865239530384782587608742440536297193681682968136127980209244135014272832551812506312048002182204992576789629037004799645266363374524559357089341919421347212191615713342978013343004219465972027551377112173979776232456793572876923451995180464380168295570976589442213995742023395409835600385822716532179698739553814165548749587376032266261673568050927346452146879661115489917386139658840096926367693764238350031676103578124751280377920884042836512915709444015930643392932969502209352998399921035306193430588411047879103322087099434593765250298330773437334062438084885615466782198401369511522060948712943678417233134792469677268688351123838953635260497474396866373389800684207798485876535630762759880527962562580842820192434537718908622854143175798330720837452961393911764296524541986496509815680299169236678851039520027411630836170620507021155022657180583766254062265995773361016652239247537906118125265529952467335102163297716178656011141023795932717120694220086697742988433968233941577365203325043305940084786035175236907514964502854492362705226280666782908783151245904884364137965923519762546885410267292895961824809993680820730928800233906009301975482296339463275476620572964565151715991515205805789408202065646176182064709760627383974944969867189448188525574690457589594091869619247677375319910126702543184582903882028164747246105570611274205133689301288287113589500672885359752947917272410183703135928211668698752058100789850295359680064671793307866861289035678539152905376888055489137358627594130915479394596344878132740961208413020066762737901444414566726518207507098858828471089969679724646690104975588973441160982699638723466037120322177425981644880768458890664141307442738852482229857828182238925913423428812346049970121705044715481257743955892757982402487243325626076462390514243075801092855378858052404376518306687592420775670401581381275943249607073367903671803052809886986433569402548912880905250544033342906559741209196776739795429394225296680071854219417174394276497708113325911878800321837613867744108225505461564501813422577176548574619318015108677905299975925805154382291402163193635069062596929894009883209576009870747586971999619980882302071267058338396848878823543185152015249523163155531786251700911673709608587008015865299686140333964002599065605891294898188119057136332799130668497281213243739798055063445872872876663972197275951878333351927317759078372346975508229551647949006885291997530649375314134914507950580045348820147834616252729114368448017209429871749260844518796503068386117989360919507350297715268774911168833810930296056454112094928333743700331567390208347812233413650083678157946221189674821483739070524276087846104556362816608159417628247916080198691802473963209139915840046189847096185619455979709960332614665722185149092443516600988814452907735890233094132932238869886410695580775553847495123726768388918556355911667288657965117260410872966216685813740778151407336844796718256566099773606498203925774518903190269521219108601543496868682760730571896857950507695730857080673549952751045996668975046262244666586690390639761400714327822255851569135714396692837549636437030277412351340344647108688665575480110806440025822222339583920685539115808501055318237417626229727149060901691972194835235384716207736725412165006190679967648002632207519405965688617553721448557330376326286524360085612853560235967833491254754700974875166312675043663736367259230573466166552094266492554689526555690533053683772369248194973435897918381233078425279928616100926093869323013047110090191167918111286326798522206365472950482079670644270380568265437520018019318455965159148462380829112658175357287688577897711833036760852849547459172735944901762481083439963301536403151980644759887809351720024563107024016281550690672983203038141614005375584940411260982998239018907382936652200279492820432095653702868867542146692194415193461327826070068831728631255993455718519652966862925308958339617635851611207087353869001656438413348548811472325922935819798650023272466153888546866572268048807738355892894787407751846612089885047237973673035648004751858479188825565182818017041907695027769656890121124512209778176231496664313957347074106031161066332485311720834340072391771962936933674513121825062450496003095520454145579909037871624220299097717058922694657095251206633626862697709423970146580823586285721265044189963311749163607549290143272512122399498243127347958784567235086191508640475613296062295312785937726753109250065064682579617535780223602854335148897168402079426397127872874406217701201464417543682698960716258724738133668571875876114864928528881814521468694683317281045894431478179970982950871629425692306177323489939063743138464648202447760317751590162940220256960614162870304978359020408078980313499103944840314994913426429452482516522541682431442632981654689171269268327359627449802891606544683732912262043879598250646358953530332914033344326887456675681428650844567551343343367315000251073386052311540841931456134213058569016852087388847813558281525589353160709819455545900211697034703931749387721144246235827339679748511417891933443590104269563992694830082009996183821853401122811856783370877662141415943117636188142460684119407352018053326157290729210332961511407198860593800282141795484936601211166270903578502751998378598781113348333066489214591173977367994636905215977571767732588475760495201674751953571981584898552985143424388206369171508732920093800820773082590906365991124933785872102556731077452187910882688002726241917373500089910395129235635698456237946336981545036062990463369958881477268875644989518589919704547082978287872816665288473795340944343512312641388921528546018801119917371131482628286472803980919600158411675362841037923420365851473831549917059521195244882472854898930257133095413199571154262954427449852117912119171577366634271889288800559720807709949269358391436576919872378647957747142258341436111297915129108830149686272236895077774015678517818045353006162609531224215843074635918918346692288252911347971878228269363680145202764428045185703364528618176567478871713725786400358446994217547199317073455214288714707925842726631536382900163178445020403384612991294398012096473770526452740765712444119717195276082739666061533153522499733309542441227667613837276853805943247198548850972728846696761190329949539204230319784086764992353119447654881062073160208560798304843163607328571084605662604950945003576110114321538604591407491035436237805836988827237243204768863695610048867309563483736937417811845764901803026203334562047217793697062893782001040291717731023125373411790265989346978702734890167840207838113484678031592609336143925070791318390910777680332039276055745834727479510377790498383010926486176981801341182740596118808032155546924543427981130240588239626828636490040473740466239026225071996692382898705599630621563448478168603872086432389122964847127886552903457707379481079205705483114771215183295873071895654568729183168347602855258685118072094302091426521721160279533179744124203193210485338515827520725285640548963480187369253491568749750088316431962236900362776159242573897523036648207144210033645476891659987521303061381020036262268720250632771426474845143889425495083405412987376589485537458231825137374278285291600387744118849047292667156722982922392960382472803755461543874000477010489594889747740342886537134494741681608485704559486655436227604501467880767269884621812004780358901395346363943948589071689270461572617802592436776546001261880267652824857400410375699261493542013013355767837501702350030011357041330385072612075553768023491936975382147466148018359854596284691702519963689810508435956300035871759751193665251871232259752700830846818502871513933436724313092043249020097887853636797365450123739343275121640002676873852353407863183097395236119646402987982360169638201280062234258131152861016982865553587538837109989015110579401825469285110726450402619837112762514650140607261149380019052770504288233064591994882377130808676197319169675285830814624167168263288183771003083978806657240360222761449155634711984708873019149905862070498238993712565721043854892043974278502417492311924948224964049490455120268407981070949199488716761450594165601758535115698013836902399009895907609583177428066890860048316793226325882531899855450956380531456382642779084476099787591896262041726678109338201993306316190880572678808456259324859888820023378529605341654971333454484228536655244659724822255103224559406552903477540629957219853209228036852641633361177131495688213543872423520509922787929736824789021439946881091552921820694076947003697378974084692549774674116833211367906557868584252539270723225716175432001801945698821201540425957012895029923905416217296633674900414630794025460772630807440075699655654738728229054716703816112090163707558443058951960336467395339928179140230762273797334548043068644640784812763783813171906378037841813065371858946530300860715592274115224137631727925316533385700940570110448176600248822652866397457703827697423283563748422807823582076183058482227603573651318743080369340506327065978489477503576360561145808624609446722313106121412374386026658490386483808295934836274645878295180281427666996656969899079930017692605744806354155933250783223329106360567477812183345900996417868440463432660849832196557614118400875290941806811154134594585459383539780605190660295111173297839400790768666674249749657632778986790412158981951460509605260757709137197679739693140547452156323827822054178242324335370582008380949606965400319810249915582746927363779512930361679980545648155749611818542863966604255694598858839325704151826326489376751868295141344181359868460897748335294942167120572798596285330162203793239560657827215595051131829659514875014698883783679218093697540590571728143564199201068450899532019336132797774722308368100915020179285889960404435346445427977083432806413530770039686461180580654497531575398087010035903909787617739210545332353620920183393258699541923465483716758566657504222306141421207623607411046184656236030430884998639387015598039859512310409877101619877908312237845412220338421412850404664992471909930570028332348983847071240454032603579167647503585975361502462311655766353626812468692942540403208690803926190815521248704947044753674031222970712212142000593126994820265212102559113388184731191242111838345122072654476626189600408764835019402788252147305019248296013737063347966184085957593374053780923876783642692915148817766795599684380617405577544083151323936427915432871617261695391491894885693047646407978931714963446275033696536797017303243776535536426978848001523725181278843149587771630132261635208514996149366551559973995187738855376848779775580857811012099413388870137260817608386043659793199064588337392988480574404945785102335354667695023124546925075602393781766337017759306748629063263137418717459101015136537493038545608865827626875291730970776815757043391131189891925394265830994970434148838253069696369027740932814503039100894458700705212930584228961022351615520541397748023645302535578377062284180989749838537973921506271062101079850869066403236954849723008106810336654010814361443043475579525888451210731185789568867156762421243139707147927878599533787561846147991559998364000302498394763168620213324582603918465292339338606072748826106831462135619943087785449325776736453831154374653262311401943619571754180682898674047997120100388842019009415855244607920776374284670585838680916704634426795858373895409188510613040042127655522795281270492577988317762107147575262901950755457512299143878323909322738276303798370118530131875841958124579924407371765732753443040602500470604361774222412272958137017535134581081656074498765765940713715012856775912521349849099227988787657142817694602968917830824629181345496908059805265043841148654786390315679379208664572656780364351960010826306744104812771119623899987162164961860861826307118539583123400823187506506176981165703279874359760040524799549104399685564432222565550269651056311194750113801356785218924893667645330629429189954703353041711859824264195343800963411565616643185916398248315327159042215109600910511413861770749753428568724699438629645953280823651125728282385405547958873592883492720483404615145711405327995792223691046234224020743580476193804265012001651002954321666033702197519786362026902387228165391451236652240428426371933514005298098166557835343214511721855716126203669270073904546756605310844368739390036225835192880917668494146217049260468530941332157063061823896346454399023668526204117417414420981094732342886761793117615864352004519508566394841842891183261434634920807348919553112702797680338103085502501632105347422821117363529875773646873705805155124599529938800504672588086553535105629211248124243689512834435710054873953083564428286971352785955710523628393556271787860527198207824588350685679082626735988338614901014211148456684483796068195617682390059746226430066199058733052609466026267567017871011448663669572095019858830272564152495948403836292697480952905677106155987902699597129076837749329009239849258597295341459832321725984682976470103720910429681466596427922320568832999255141472289048676741806819295842532872660154938626047294452284381796163461834447075044741242364531491275698514650982323532151621339247636028907738206435585460826883182568571782232241723511684533015083641580564729418251877170524496342044546620354006807080678710546569808321762549768045467352633839523509999107558406554400858505465911204739401831302127527323360303547197796567270373605551070401581308246582543390693523052425361494691650735356133623667836970996471396177196034502883731156555742974884918502546016860710455061486615565199716816724624965186915139761295728854697058257834218813199513832171406109303916133942727469959963428074350510610902775156421177514556673148217997731250284463853086791730114945282237273870145978140236660279712247552540972962359448790674793466460422962076089048632527016980982887752968094417478773715961190618878788567116199940707950526078004172201159904703834462379450417536263155573066247574254078247223750826918326406225383128776893067030425891946202054963119335935156460888815914668085744760473370663492714602542564411769312041414844120440695325463951041544031668100174850952774104741069097204874451013245165781780766677302220989146718832845357445763878706949625183809958658902690204517361706671973896059346677308635465497808976220953951743792136348772359877740651745902025318303692483763986358404823703545832234010931492567266659993650852430776407638283135982083886809955842938984616385677818391566827153420755403860227776868398900150911370715634299444312960036168014224337310212974826834434981989243859164460777518075949444922028584163057457960548521208217628984292684361828504442684867662274287500110412587870969768768452483987641142593452858855171116459579628848730106573236351473382664905752719254818975170990405124121908457130956734862290444304273137044248344869572725581888454008647250800300772748346642141905785495160330546901748976754873522236125775129986967407825154438044565212691035984029598632241511632313712806692328484210118920937476742314257130362674875371731436889693179363608701094192461605574433950099093789590356079710063808846742453637699185270262236945176298500677070599230249296314665641110353009985381633910525180866276587371529108560998826903015374268412355970217088469783789366225309825948156246773631752295870166457834835106032154532588637547872749627367613934488293199044722154686039071229588526082712577387365564900201474048613222787956450505073263705174603266637312299133456379736607433214623564358407741572072304305838487090162437157967766621617363450579190775115230242193202602855025638231935902511318226515516979240392964037850986020615668679683790954094791072799720990153891633572736446803748869769487050310365684188932562168617102902544524769899436981310559967143740663072353203918808581627170013831204580695277637072463366403693273481888516259187680905462557296214038939012544068297797466011526876598516346121706364069461474334479802301091189759877950935655782937362596504779400533287285595659605887792194625164865882297297594064271195843789894321144481797884276226273681956075389747517062050136481321569109805587332529664947383888843816800944857388982332271969445619157820615307591189396335448518599094385026000266669058558466006268979248350331296191701171046869133848832258031939760681818201720287217934189728845469513343951249097511377034817372250118350306582253783047911408530473583159819912048336513929977897092373874138527586511487026165425713432068111663599885918023819639150650980391043632190903999358259958515598630474933605945403561555193079409162282948389553511898196939778584047426428722085238681507540209272968326832872923976677499175109468076591796214228626694430532029388066505315681390856622065364870603455046893986312486849987640859436518095937867061777028552726911220679023329604594907344714391838420847873756733771025435999907971373834960085883093860504342573100863921000312527447132720590101533133600797448856840594400843956968572648255380233968267182212690875905538681689253224825001493020633225513450142547153066608988734669676252918842739664333654831946919818762300412748064456074830110355301618642695193385909557606916858199389637514580314707359485068648735768862196458480647972200128715112711370392988633681928847343276061439096617309254595453482690036185681870635863030272188553198443410415970313192414177531342399256244450485806427267025003552330140290304649998362644634069493304458751470072220723590430413089515954463265578520969749540256371239309274023571433175453975743471760396441181170003205223788350166064771740803716887502098940987662371163052647331941399499329742282801571325158606594987642509425596234487969306781210948904688581150243685165787168916674796127190210160198064909372215149250332356314634353065643712635815975421298487958117762931261157829586876746545003689877462275665227837224257731912382032723852425212842356850808714532196906849302920751254364216067260618112360539671246113133093833704407568633422274860326844482663080198662607058500742780452042114471335564274670784077244595538665196897687876968839964212118489362918154676676869265726818835769382545870061278905261485990147207884765668094653567511023031625653954603072885088657694707201064494389677893849739903636675323241459915698412753348464895222679811085589123511568241576636395061368256402281316319111061815114854594554098225841070546010158759590005647117055753182786861630559346694380354464977119652490075707147825257148985073486307925023442347038557033094849151824451196794699978348249950064807480391943393443047959014894260155286321035674653529597435500029300481247914049447516088147531029635839093392730228563597198974136873850408940979091928661800916421384656422004211063329864498194601584426905182520719665312789114513751840630525065112648552558157659559017507663628320966007244641135242424248264125392157974282005882710439277817398750085480604512310561242111368092056229612992722185355535761209993017963856269770733915063630581687904058281668528179896473448820028023784367880530027569201925350343631554211881291727787148813724756703602718681382109940660810451510908139481725708350909408671709378330404000255431773297007592287778413023308507004057508253461633040107161089457697847805566303100845416313209052672430425889601942994737503662234460991963458104003306997125986258681804935963178745073805743584986520524416110921117194337054050597615344690011685705602286518888134660306092904579252812435969306630781909665674125631453605889544698465192681331089159091057445357690542905467510472140677574619851155126896117177029846155051598459560853417095697964636499997384067513766188004554269364678358456635657353268501276177731446662583663152679158364753222438380769405946153979587657404746852472675676237583158380108551914332400715931546546624517351059497246163361975022953853652044671460445502412408084853554145479093824599724996799896739728178392018931956731164675428142235379893452322618899334924008823203404471287930020177193996375639030441733821929391198540915362285223945437557301788149264263372289532248302730459826420893805828488305924945961827013505341267390695281487104756937683467345888214529066800508850309318016193055303786181308008605555455604360660854097238548054836737760273152009118804669115255291243804464214616119396076289118967586505287006313751092000580644914135606922145700121410387289298700819387411613672876196512777430561169938128007908241968049039500004765271839540380844119675463542675695709778902572989271762362054444214505780897264949137407224738250831386867289295705617906958306662328368364075296941479807330344667877149104562830260834801627270152977538090503541882730316738270317206244330495143501845316065922202166687145524999453963626356147529058665655223352966628617307590576226488187962710595801742049090543001752816688554735015416436051386427842845043149309132996525846347176336859598329816423396317587717461545036793432502524034812120791227604132107533242858586091319806143038912962828910710742686558177372550415202761642397484087553528601878605645760806529734196794510000990440866696030536678413426922683747196457176196591009461863602683469074468065988207203215337710174210834868333555773622337055000320198021492766914994284416347951944007620487829721662414420822346480536199914563579816856965963435998279418887938813996513591939723388080999173417091242278358979699579776595013792153011928289357293932674591058889136881043192991106810642369003299845127173226968490893598171570107578657250364364161958341293193297689046728810859450185885876820225473548665469750330747339731548047877473894832312112076427275570804623596907322767174083234071830571074677124687836618932281653709490328496394909883014902607019377216264584053492293768492417580354243228957390684744649742123302053320356242526835907404830939014448268992366794207564463708530083089712007628757780317045690599057210719747829907863876669210345642301647612152462705130970742232203558604688587085655854949762314870485942315679345373093165978946884355231186808883616341026043557396157031251634146907989979238380586180439829144784389696633306677967240471914553795466236822035223234110626954104021835934522383768274061835789766508687051660242560066300818454523176637440994925742724296708520250908941946264331535968243064646751733376937191466549009534501411897889004491039895021577692535113348063423455096329107252368174897672034659920657348300233233706018601851755478135756092765730033163774313013313372728340148368868048642402044016384861051024683009972434811663612233726905791880782474099467904750907182065994479360048358037666381055241060922420242547268408564032910524504276715366723603193324996189022732335611272303862883585328753673912225757788332909602544377038481871247109447602180930266240032076760597431304266972398628582379652738028557727809863907241991379097835237882696715218403192252101094238741531257080115244579193599757616871202056219746963359012438354766114669464263301623275969608396133402580456650684730900832994549804785726028457787636585057489616183966766922892486722172996941788808843933566199939891412314639889823515842024963684973236546602808423295010649644608456992384313171687702414080074435546444439202791269965134561062097139580639862335138615335631543998645746963713814020405914700768865399775677872634118173771789495452488130483130060175938852444154156993028224659550502434151979878350058969092003903024329455933790688536492419027192919952403140405565320818840359368184547817441665382864139167610099500226721239135609882932105573305554890352978490986442386320396484543605885438915408610502117667326571734171074070892356549174934800017119309634952846137482509755558117398472862675139254750970664596382105608976673918229810666719726698843061106849367238515548469776257152053282812703065073719403449501246005321191612927705891266168259938315554166856822867785430581849448408298609118397915480011858241709996421424919534738960211823883033729602352899302101892847774356100458921357060359256453074423186090380719506534576123345703488531357023113731814506885512640804433456028676927424771406753131996675036553009616719658241850247669753545955532039004895042364165125086360348281454084059164034754240889429440365931658182566965987452262501960234978023351617840695363872195340026085280434203407994259516632149078626485938465831193070909974363714323798977931103226957949948693837627357417059074401211417419068165725271619378318475548488454090099669981888165502689990044395928107771821741934211357987611709893470435700000929620261513467080603679086166586560829196260449916768893791489257236582198938280992452132228233997874920479375531925110379140400327982125301779246693151217681326435519784602822726298932217399499004998025189128523886043511019840295310434675722739923889669147961083461589044032695650994322188722386532892096031589823569149311182925792288729690851520577002252001469634624644140719962890491812312249575984240819820576794573158515385784439733100413585857731440640721325190668689200275885401499799041297277207563909529462752616944882087767309430666286923648473181140553245660463368248283277586835153378420497308083252715919043640899703124263086909906078625143503750337487437375686248359714613253097690399256674886291894815604798257172449522889086282448277196745078264831838181926095264589571363875894323861243601012239228710415397799996188471572437413771926723245948713356983428894842947194138999278573468834234509614111637529309635588380187496898304242214336785006775639700031759822604252727400246793173472833632057587324329927956388288388986882422739052402828202326826989458435871746367652587552465342009963242666586155429520044889786975729515426275841421188494096258499873717114340203312663628226311841469140887064668809603670492941258535063896708579581484935133364136069288263618167406226174123142159466477657707741568542141993154879870681632183725374020860995459459478771241479014019735061065129853723200062863316144768429812669238384155206573627212875850050716097711542552482003704679062497318085909376379172680175880141414469899144191211655112002420807056483413321541215196355967344578057801627633233444040778060197285163266965016036892812641942614693660709102699280386429187021910652761176518227940945282497082652568902278183012688916366907663070022859574589068237613506254816985794806463338859044169136743628463149328180375633231983335550528277573469732538014862124842265928753705306190297585978121825667423473837622876930588863070304831535518701844833838869889441306880407476254434116797594976060552325654870388648294777240515667638988775910821882112424603777519835537018180692761762589470334091904803211025823650613478126252820093581118486618925032061185238207693640507586830503856917135224028110505852015384650436372873022845142768159187228952716435454515079482853208451243039484251938156762273140718999533560795593987879358836109949326905698618039423162081184612657451477834959540268921195267162837145656354214179245648182962432512419825704166946291585339804585212394281333859118356772914524497469697204560837975032192352911286808878146983635771295402586211370105233220997206327495341518459963807182595591609870022976272466362729132248508475503090810277738333308090083496900204971233996277812871869025530886504977657448117504444838954713581122025692839467042058377452210099468352877612995012466912038068348424574977434572899673562224806490886196822232512392698776605041003670268246809264184119308904241566830559783670734207069829398922848810391656153058481807202487849001833970357006367659184083673025314451636050926678920497287224046474687875770338327668444804459725634251739965873638265868682854137677614802096505800251876656969786784800771486502118861263864564505068222929149416269226950838913252376336819481294547468799982881628814069615435275335414485746003617325481494834872714994450785131188647952936688272368642688608855522947459472457305752706573233619760535018003190779161960474750015972871453247544134080689670290501964430544994977131046954197819235005855122769205184903624908876317240856127110394245695922008235704114994058758963067325593142733548703853164059584947636705875549792838375369391782035475665678076182659386421769225380300120804180207252595505509513383357670195716999728843596610951426492862234465252669180660980433721365988679157019427296661918683591739845164046472878242423411618346006892903501402857301165319287626523130227323663824448224933644812660317328911893551866740145808505507841888190773146394004862708032637701240604093018672011809746261473836670321669867641615442761786344521896688095581498072565976956165747660227030043257416334421219147237277346695686126073950025891945413017090009070721248450122882140822934662538724918572206447084404132434812749358221349935005526961255610824541109677580506865246353394608742001066508764389687536557285514279795545558153056240933481738668378088921992634094091695568504248219109636578449132316035429651231917112352991822099818213120781408299790890351419109286135561078818524290004125950272169223074334432079217991549826702436006867139499872872623947594012013884336071191945660422043069854662407523360976525003419314563966207722456657748343126087931586745071143433911286230031373384386744932320111305241504021275786989734755124478155823872415800114255448224914279587525377593639725699278183379899949648204719483743372806319931691777446540931821509900362848539996821230541865198370521633713216965850592668199397606313009870661784309062026324386319289208090918600220261097834539389673470652255576277994518465724279732353107306124430097337120328960868710153247497026443228328871423127114215869438269656843134321977184607935704846927103725290152067675100152925549442347845399457494869065790154453682542087441001311661476806869598266892432079900928650710129775162719189310651728567656074849889499277594224708402608450469151997438275780111546469234076400307348957413617807648756282149544493082327701975549424287283905362699617057128112929311732622990937906241775240107497575371138147186176871313150449208102716452259597510704831161261914137583741885986252038819742630160602898250617539108814810696251278011296981518473245283956627680877460191363024639157212622157093181970470383293987251023400795150947006933207409032599356702012022858206183568105632291589558555966398213162149341922300950638054337639981671088593724134121000090259041005075563064753106592547967578705980479296813778560705709646432114860385314966232567640031528303872948059203917351039372124990227023605284442671298854061453635090045840927149212913665671091114249005298701436991172861800226783478926125331110164604908898005781826872127198793097043142551828272213911668447883873113643189686386626243211772488297176989998227839737058344947264173500701641313938377544979184127137357006308974512423721052464610747217842507777550831013810995194992027081899693054290682693293336415952606108688457165387974591608446961406958162087509824488647444356869334073348925692938899087763750787274615062584689127076116815347751779451653288796278061828730972641778251015319161711550332776544656232592203212952392321053651190001530064782378976974078613061692567046657033809281795370569575592735077089919060598707149577391640306058875282079909042514725877334902728946230035939388420283412419224953544647894068437071088417550334920992511895456632808818339021330614443209298412218719004588247973626999011844152636055178538210044121845564513364588901666662301906345698927622723875229545004083583236753261188550114289256688200694020877128507878230821696568939199266174268670531065166774352942606289447545504390245661293401240824589595192721933244364064146458888898860812845666630072521890958770204891473069871011684083478927726663236072403972355428968412254733968535108266843840954773425593859714960432548439563643005325977877595063203352853887336824009627954577666464591244505278817230341059481941714760317995543548738313016208784917323253039250320252590530166035796384796068815175277938605312985787375111139990966013383092401630434065108170742470198590715521793632904086442116482416109999075201092304955304891952908833898316466466839819243314029580330336787241758460625897411587452409827929026632364691400684766449128680285355075527309319554323399244304396251772618942003783434743942843470454912511159385565767978519651483299675858803210567281966978113295007491596089667197042048339102572799192655090947173697078439366089647893937289594449228876481242349283885090802538361311631495057294601802154218312439904585270266217140883462879970839703111923125184553034206774802480472814608329813705601115160548046748831728650065812245173528919443153185925487294936878400980420268742597241140413753133344391616015326937944864048959752053322008680212415531575936034915514820834330063709856180600489858468289763059333168439682891995227160911174225021006691950464404129314855308011528291816278278236284354242036251839376619426445122185616413574477912643837066716328116973183965591697313426649675817021234729862591021970688963563608757659719029823020721792858461131122862388183138811014706457724029609435267788542486306693807490683096381953490116363098556773610426661763631378865003308541287414227558612592251122210670196530670149014153086439218093233557676105733196979873201519782820949759023303112617725211168988850782402092533112939190982034286246404031397279875807323524731194126030382273193924025645742664658339217977022552134568933792979599793320773912536593056148933647128111297859868598947103121296900633115780902062589742325186665553109614992826475801488223434304584420811582815639925419281045171131227859262192770199188049786295963359664125628594824881142757719092554265722731708847245985616885849787526284353236727165018116900836382151042020048742189687768885471929973710387251723580422044758725725705815928202885537186548887155304694041983933189198134788622876510424999342538589320828601781011196661613547199388813765387936657320273031149119058771894519998030446211822074899349091647741965147684929518397297990865612063636318182024972941602426709337910780971396226132372162558843871402498041045599601094606956407803917089327474764234983451767550960293740040436321618336310582545213284407711116783470560257077314741157192371331715572515257036478050795682813037241571340247897117014114556816039040729017493219543942292814512849451588350607789667216795781933909608393354624882420664747733343396813353929940127881560257073612245255257470771430559100679114417434660023598913289451414318920009656345674210582020340460240760299235987508616881786370432419263189684852986463308822018326971783801212618950783240156885965288387375398704327440235114154134268321196837971944976415545736695767971463698545608893490124095128987997284620183842114342158686872414474604774071918641556748802247947736331833634745934928013745340534989241086115805048828221970854641842401294949565998146202362851040439065992716171614439954243045707994798753595910506465734855943805790465703960134638795757369274255972806599430671153970252884361779963324756132063472940127283258247885581125096510901984911163752771658585680702403737145330774291226580508138911602438043523443193316879132688112796842884933892454372265359147544022306537511085443558978338997612944464149774111313085751023298426025481763505518002036263957861001913701809840888777917674529744015882815430979276489943916507966109973870849510704261406138147343006508123275619306821842790119479124005541945659795311801779330702974709445757559910414754592684444373133259146315583495341474583222262197548726472359010731453209132724396259220606556536000560331759741903380723549608242162107447038783500097855797491253624049488724746285762529363321131596513001948702579019218799053372467375633303523624007457022408675366034559331260609355992840039427757659900948021286942610773990350037688347324878944848957644010091098307833529541851370299921609721077719904601824970232964381717319536128041401102369355442032152496820828565285964571514171853656493407664701531858542560360658936752893098634377255578424575955079386803905649198192062888744527067589538221845923260502115608523656699372480633117087815021795730284057173852314133501994462712567063626605553075829894500338773592144001288982590181672528999457239751182457101730775762881966462106767044244079018921284332047539334846715884402152896250234973156840630558270627906231021910778360484873707432334610721288573112301543562352554199342269856163721291968346291076840199333294906438613672599034748673341097669456367967997811383860379083441601302688176596759501385729922956217631275997206012040590704788819625876924091443243416907075501997142699085712709578249145474198033064496011578337723191666377950888482325182371067396736255840306804278312281040915790606957414307451392998120640455426951307937866880461569841026217047070571982777851387534784339331376822327050063169791686756698299979187152147077906402595637916760246049004099114744859204385795881221229451672324504039384399987366754209422865469083463787297515645614532953513314619846522069770492981135244880314328410529198009276993786142013101695095349005860254338450304064414296468923151879684777464695791644965499708951068865621333365426675528321026748352386261365426725854268485637738894077750818533302374325202061846037011489873004915189461746403535018071826946414364546061799999913205473131297322251425363075507313169430035169763672744501287496268507244383268827251594191305059027532928792584436682887991369896097390697909417367218203504184801817280827211942991922998831440781845770970131337563317395279812253502635156265934279825933218015502066053379951777678373734771478774580171905400412671597872082257998288631304530837761238778227231325516427842161914635360885713290634473423268833949152656881929436083949411518901313806653240998988482196852194834072704193682878451435108447887273287288457043625566445621589673689582914026683603513375243402602043280952364650197410068871308279330907913374610861762195910159781830297672419986909777188097671636163610228894158559538850631512778102318542383982359858729763809705320306727919808352701765844701045936672059482574545906858725462050264806234037131927691022671673846036739661674709249569949334920087522433663501700927887735121298149265003161965311587168139051581700527165846873243177877746767027734559664296790268842666159011165820526882430000437876482228052118547463354354732873642499412797917051716114091955872496415373720841571987511304927704562254304250701661290565473623924171012674319242308513747463651651483862223880447647605720054246881509722722438623984042562929554024094948454749694704371327700029604692088246325102491537210555448469387357569147840096317075538809484634793231801254406826032582045756301551805491329067877525798152063655212691495457496833182949587399279783973070505983484751476990460528741431051521500933200550240528146750307538005719220200719955147968842274057329910443107812040761578178405541910075123073975983048124345843210727754204244298819787640613441726570344621458817545286571430671671681394252917532168914757762660533806116820316835546136838992328640390308016978333723084596441970326697329737907971305028687859079724579635510943396667690729367618974775840285366646346740876065216318684122978740339548599447506720770977339688600578404624665331798410800148376817313058048374328738244930771605194638767714073310621112776679888737920643115544614857728410672269588170614740373667580317639337461389041755343354042206925942960015402856607353235352053466613914303836602209752748595450997798461421848755059020519564056379907674060876030732195333242063543436710383034849336881728778952681652880884047917957697515963136354339688112021648514099337085799369571711558461411350227415855087512363760436966881112928428938820652047156803773111801419904511463881794344813638802551874174127288189522697146692221471898235947280595462756700106935623302660525719029509072175736830040754834216310565238692160456435560126373890518724065807920019341624560062941982930984902703758880213655584089691759429493329153348905094348100094408579619925721359605737538537317046597101987823673359882522660268953606865797225540985011914506208905900820617356691964376016135200889024169620503189706837314399370327284170853758649250781682327935031868443579828378258308501421453318007876679098148656286768050745167685795750461328821429506693242535848003475328275503937369197164126211800415067438596413973505984795743213935466178428524353102477543315024321158117190847401928305844654246395064599168298228580905739594969248084358423106095715022674333234598561943129637578615781667412940419872890277206363068902464007519131496729744877409343180896489934941166448603968668365316909105072314676925914323432343816543153625832849137748611563379248142141829298654602974952113805848741378246561768591573752028671005794962994273957633549548020436004388430151370759352928566881606289980146188073768457825693778153636712130567263692904078647768885426995752186582301681395367787038725352809746803893062349537626952935090584845659028864850509880347336935289536322053045600619587308011003427786694731285870779684845165263510507721942694012647004209611992167671034373463372215513872592939116483177158503522153949164577916192815628211625603670284200553514295568105614597685599006337738655636507845475948765234656264478081861601369702083462017965875337278162171754443805041753477510827773837179340869713468061475108205393216381136427269615442434713731337601442985954648484416637295224239438636144424561119120499402530496547216336588917984665670960464867051995385432268110960276085891563651888633801805788596786604887949320753330564202071189448581944582669530247487770731636718162128358075067210043181406905540312050664059769396085072384977152579496878470059826750383439965999553351680823808362358331517655569934952902765842930815892861928492906849920949080817477269981227782887716527273995377226790158774764625829011372520216297273590756485476505694439959068113059689780282691750268718832754064382341378877499967380975950497770000135327509462271481889483560599966178980186573756671299202741493191957924341627746627483533993851246394814611187928589900370833958349740986763172275582153056559655906368741984404877443500019918056419973950928249330219105310721827363655694625995843204171845544937643336479552809134362912490070968390465828823203203094752472111166606862980966492864709692303632431977252419831467083480030139127628474817703978707553064143294533200719002174906812464145349386539690905121867466132068766746202446756342347756997764525452310171582165197944564147507375248930283018050823335072038750245178870915304751077890600650038354555947516020237361343584773545420040218533785982208645382935734345442561154213559859993136478565602014083724444395540598410042001382490704651569276152549617757341735751189946981546609742581056628787575733716038452348637106769016656563990231852101803060535872371237854607887812765112418399139025984408707903066196787679746178987741113648062800219971170869575842461637333279054750165611565952479655280699566295273885879445728908391723576300945950989694017856268365331240132808076930111862794779334460421450009550191801974994225810569681984385365927925392935208425123146526220825515315314060541054824164602659285921980720114140933465179757862154747674990885554835880868237654412264433959986893113431803325816740045274686646301666228290390830168513735115460192586004981836450142869532735002100339754398441965443272009003547016868777129216806514774239842170373914786977331904803585899157791551941043508557744519829980254533863079555822034828954941100506253410772970702378473398827912441414228474804321767248185508722233276076597668513218585833031718086857612914834339602837285020531342809113181317641652435782659327919233496391619954018686423604458242077320470405723156225150670032680083001711925340233452494848953970983331497306245146406670668652868148368858079643731414883596002474463236339386882745125368461026838227050537673593266285128377927415700400715752376250884084563687384358101626607497085239327416292377423956585966857575342446910692336698195162098416720587066690879273301251480923275539356679417752115386565709886636219837426342756242644826814280056510108932936012820621733755777112519175295411211314107496520645228279143427227683081269459142442375290945628946339159631824646824458822626960039077826936453200139556772047014341502706727935857131907452234961138068429296853917277546314767696957896722818605933067856082546302107532447967465578003553540717147664171791553331387095575709532434266648141830793248460395388961579809848655688934495276973669649752425392720300067326207914351577160312067504545711531670164269249088629546180806845230977508915235337913570531379357808173357237462261734429661781134102007996087096847513399092361533175562922193494546456064550658372333233583107022161608645138564030774645294025201744901555152839344454038542656019773630108411303138107559205705388307078398258933890619694742990338382711539980295935304726418832699183798490948030598593306440241299830153316377110277200084887718881507131516930961717193405121907933806150414109515446550149301586802377242513797143151794158648094215704769695381149196745500186128340296413082006850374796706008198117465076040827477705315051089953662295754450110654429788427132309107466818810099949954146634921408628856320896096090965084591423320725541241055750848734729480197553679754757104203668882680505413623388645894967135829442391768726466392041768322627904078017586692627246529404056159510534766441582746850200206811999169242196431307172524892087212737449158872966419451399388134905834147427350188094994588839253263787157410961561394879004281443164548004221461242993951150479530657844285538430492889931255383310562295823743047338784819744320287675146617395406607465630890980122100217177910192620603731889747961567165873123366733662974683372402476077549164734664036757822437089672526325363328145150431377118282534759471474074626062054500189813970002156014213090308695102274361161206334142536222483722787194144224092471496185278244178377777929927678559044394617819111824434131177089451627705143169770184665822041706102343867226861230164347182190728193807051567376776603486853673350702017437969107240333716883187517330209972119243600360338058022097258711777457397104971348810943656652987248477491025177345276359574222496793413827596643591456415799599158536741662904297087393738556043926267082675698783204729191825015769020861002848138439291456717491874608846299843543918057527889781813662697759629691861154737574749663756150564335266582012334593873486972456551937690804143300573528756296822046518996337515066288775552579324273867802524118559382046409406262945874148576728002661194405568926973988147952791169664599177850825108496823604978096448205245591777233504589392470480447728450888074874403836721317338683065404011434881607416528530462458483632811426949779984592936910349947718236608305380584672646403853639141725782921378699713287749369230782060919056693786737793727130858057193347926880785812636107164113814245145553115057516087113567329135049877488997683624593408276159740268457530262702408544564569096500482677926497443321355612248475424436983512963811625939783492110723481939259582382548964556813434955540063401861113115261499990090057865454574899365248155049025660295037927127124339351485905143832077964639915084690498052163332130527685735270552738201545982162703180436964381219203851523823320246432905423470981886644888020511404960709048155011750669118769031990670037143033986576092777258528086973374107267358868928510596132978264681650593377018492316748463588259290251278255004300491311381301117068191733314223765528409989324966753755335587486136385411243870916627806204232312264523990173863697683248173669677890073261657456638529674828422618390505506283729045797732213044257096004339174081816254201809893295907007591068722453508574991048053578171222800986791633457122672506710957517495261208191180917815224101803123326523914253534812078370981725966213590701872866231105851381743584366852132911621953041959876260126879079429351866403940106382821382254839616732159449032663874217305386921570581606135041981758107052408078525015144365753805202276219920372823159650000883700612952940372616038966784360568424884346678642858106628393037965155972736445886086703023752405362446327633208981422992181687027049748357890927557258600732871813185336459880665882305276919593161410798807953148759679110111645755867083728495396387636368612800864022775036973275370226145189460359925586611013617851466812969237885918310034041674173442676246595347845060238613367339619180738565415368246839013518326237235090614637451051768949525457436371618611027517932836347264014734191586743403293533527641741792654006696236408560312635723490878723348926353461376199570480549653064500461103146360732729173314027968345462144520060842600993122515917918128866274322007467786626151821353698983251115607625880199950804981648999728789501031739495034038898878179673215549517515473508457254232787767928972461683928054269175170978644446136862695668979108348156980360863524277264264150926297832275754786664620883935678864041235618796631589344534567959668750911653340176026563853245323888712048108465780223507673475828443278242431457064572420272112305030884937795144979017308563730947332580750738842694104162642339890496290350070283564318975793906247808228162275334031777020739170211861991854691117182266360489110006287011427434222694299988879678078972720342428598929871334646506977297948805905538516505968742414302419419636531599537509402227436065685581829515924642109969182128082039055793531816459758340813849422755316673515120443623539161925467599880463313644366723544556987776011960172541070675687409017741584120134729080585226536666255244809320268145666951135145286844310816591308473649064235942013569962151200517151330680114571292153291084917918721284821970296520683879446047473207569016727626583150099469802417801118554278395169167725573929972714167542935797784494945951482997227615169433488663026435949772319660866727451871655301448204679505782022243767156986696842636182713252453736835565153861373467768050506495008218349168408734172172456649079883948789694560542190382550125683898621584247790153120001867325242755636548148358765849982451814911116568551939915047032439307415275224560121576184460395577998705086181550906452327777585215363965436314369555962244171920652474248219084276050523673002759697177146410164708400454874227426779522232908110022573361181406295200474388780623138995973236266568596600875442328970404262780963216795380435653675399613377366828763105887613471502134078434273534867641242254427159029626605264674037407322281826989780181636312825391873323116852818641889386950039261057615481056640119271783629988784923652327715714220231214505223643917345045942286664782689001159369860116847643086708212214477931473921202167238476702567057301556754575837379649919647673684286766246938010193715226954473607775509738691116358003910125885880440585084887156419122097161344331542895885699389649428067234720533468401923888685053857016167783749632937905495328022259380255587735076686227882810173937789941721265623873048432857611314869247845991861940547641961294715697771474228792409436710912738786042464065715848814094774360017689879211351146204540709526129750964783713213412610228037467910455269199856493486620656093014975404664718028688077581540252498880828311247725079213910737536111823070736882163892394469130084501047214911953890701948258974409672916070491092929926597783184405839491232415302550411228360364934504890305898631208720546707680663260391216649354122222395698916811543296322238626119804601203179878679690799916044115235496528939676179532005217135309648334854291249607694235250182231074802181458732843662949084449793431444848531116570079137480111963593401108265727165886229258884030323744945795748554098472396263108622761035106423866588214638692036826387449480584131808424870675721232498724121983237581546641407125345535540393743162253945020832306287780298693272063259073361327819666049792844780902162154284837849793905277716149179458712455185354391316866906599041689416858323486312471290299853952432035744125947983324130022774365102271144245735798922897748892532600270078373182976715992132030242252588347390496366224196307219568502477136680383575394522856173454700533888465733963182916519913136666111725524128103097377974811402141530857438093647664252216571571399016261523913584470463161613460961884007592868654571271280484029527912502308865455354074500268972891052788044902217885439944962208455489300541255363068356761973935030644578932951070654403062773680101074505076804491615403973573028330960694932538381022673428334426093828546721123215471203276507441361508823274635046924581610272616274359901099154627332241738833167825419595920918104234849844321208194506644328536555141969258199659553882508161809620408825567296356682199642741441824142090667575604663157670605791143441957433791392109079012692846965235677856739474959390191283310182442093880668130802086289873148997650152690164129722621296657506870007718907738305903161008962966362948956250876970764100577788713682416570737257838511881950413280696210461524747978510911173938253855954227532647204464197699629569182187678501112611988899566542629020463824792211556106786314067344284979859209927885957487388232846277996303128232593657419040764269778926986687147119023448977853039515530873949080897135296649412302455721181192091300697737602109440169604898700780167596281873023225100778102697427868906621365206106652380881160933808724718614311244820761029243311074804332260803331007249344716278135504345252826047255530818767115518701211849542229680472798296104603664525124629752201352594081297880391103249455818286260330420699644758426983413899515319564668016278426063438808699095366082195289629204032018148479366823744653615836213587741121343275216350589693353367589116459038376923114452133911210133043984188170985710392586027297055595321834643301678819880274416680112006361628049830179540848761777866635610701084853398163193568964054704216136195204676116887713173331384623179687521680401367119569132874596438512501046114183805786734477084633215996117601592191613898794917088687699254141360797223674601200767164011007758760384247474166532625581907824861372714284865441711357809254006659379839608508243990371729082278491341193162748872647916330832280410843962184828136554263898766697088672908900795536925118882603016018659559596208333726398749826262571337520195372734580303177956947671350782354115800373369993394276318121537861141114896105865533775672419030029030741569503159710251376887859118384661989925068636080950895213906658109918450604812691742115923437809833992293328294734520265096299577285597461392576671201640816998652220573329735756269424175137019480045994833628713912342546764731907597979248943695280028159286375791508293373594270082800793579870435052643308540894426622238029392476775887715238930122151797882623905555730575604944127161435705915066344000685794734714563927830669315320246550820431611276728353379393381105018929495079005960330650010729706421403200618283637143552641209372004835342753938587033372013801325570287245295686146708334221547021851386534246485768346668598345414012643744854422759313314236464148069391545779467835696988863593135477333541649323958780842665024915449955574156686293885516317064007247262660994636089053277865141526064256611440893151664821875831720116483758035160616276526474853940587214066219869374305951872117378706237906340064758066626802373040052073912691242927514070547480517711292533522620483823969149407434767074692006357215640579748725644999417091756724923327298551857863996228690969892936993257787426817009206939340179300792272458262621018538452893360848075488020119539078800084267560085666216440707693302037283836391712526637715502391171126806698063583658695256712300878588375003396457829977541348649103786272808805969905484874735801475821863246502433485996383564642536242560039233840516173906894085715405069734292004475303835002029011182998599257493111692812286616158807620405289087955307589103651868213848377532080207093031950166971088630172603748508016373442702406139191678423527229128701132870113599796048590194309664873815050454064796295415991182921017533964986641646404156174071142697387167216904282301114511102124122569398102815748221757933746019564704662431001382257170082906889083252753302693554148881728232851716254222117768946063511103735953073359588537151743094900655235793495769979585629026823262900055450565516459972937851365603098871270383727223031536206635398194247298453687979535927581460500392973957760689118434767242454679497717955829128790353231625642375178305115491738157265566122508529650503171481452812175607094353692021851121337535082323381567781642950593616066244050308040891605018837612526392844744054249064938749357168337494911761866746226757638996673759006363109060998418460883629627981118222268672146542489422671656486075510001406240130965209088026515103981552766399500789642123573381297665055802053576808920594689118582600575843270015768984653810790470098924686989957633519569038255038997874061793729893879641208064025609937669016914489509861792025809525710371021357519935664464212092850934108841191760392081884247323938492504751000652701343152526440977172630415180607267225063822216514454770256740941022162763333806553408392583740324000415573279371709610438598728276261658867082074407072323821635292115167941420765613845432228586797605604473972012321886239203568741269666683994219834904662588677098947766345998054152699977079658032555967163028995232203705389797186223068862236484922914253024915525257200012192602596373133854645857095150755915994629286719256124466081794112585523873153852653689388772768693220398157204279390282659732156167336482728458150651083756512362213544098895786749263027120460890973161291027523747986697700014316294575402165824451473932549201271516824586629707220057138767953453428159454578861433270239182540717895444213926659230950801528785644814498161886334872500478932555804050303607996320487543823204731530016940646991987954042586094795564624807611315568117435118004944741312062282409346949537784043576734773831890509129739551173686208088208871739188580877556257892699519134172504262652839358095620165710149800891162482384062957544459854259802197334526752313336438384110402417130796240571659649967929836104528013469042607080410392990156055621239124928132180092783636228224525002161020762887834523107585513244087388219514424762077596515844156306194334715644922489457959218779927391943661446867636899213412652838765834217051556743034454207780039558022311705153902422347412876242194315572551820746615769477686082098320014594449461639558639120442108438507348450092521847077997063746877805537753399138109561750259297098379909711787438229395932699838154528790746502076362310369195986634003496747940975528120822385817101409544443975947105472104537914978221824839170319430360080012821274930772143619479100743190887521898980013144239709112414743295913012936712412983153328259257030940654378309802151169165196730910090989603106790579633209695086364096931029709431216090202251037782906663699396196127278422098589382356127374559012680333080486306948951809062941412267494584419176239551285444481997810006168404820224673411319662472237484974700477154084217131951872247399001563060188850086501755710485361228869144808196834169360338440783167708538154799296231998713458268301474844437545121024473818573173086529739741937413467472083437089081716861027166130805950291753178337872539085421432863275147109610738821686295542413813997692505820737315958424039772295042931000531765878869052795739722248526923242310590865469875176472538715869586858776023326150957348776149809109691649476427182177968626196410562350992313656029293748558618579112190112333083215810110389340431771596403461709369944549227616309221951611623268171887466427099857915431802275895644984522907852713000718769602523214584556907281043601176216153905528205400863533758079004270407611182146802052239632219930855730982981780424162804273752399520595375959619827538033697981908062275976754871425235510870861354055964261068901408516405388431335094168681712185107225733137701086665235555125699607777445193740537801237649990974271713994175675854100251872675307353296300893553057828479910217877866267668655054879126675124557792199041823086552890005829036835123381571635747176906587850104794920677827050846399638949500468974180406850458694139914456110789784289750001678004373137587904425059776564155079529424351398838921993397757765304360204654447309433711916296512820450626433079505404092565703097603648649489263926973616069616719743812623691449472313413036049341628890863832101388236138480785057230858666122613644200762101621750747719508710313941185671477777434807959054751469518441277821168742820394198769038741478284031276266212526290102941461366275082743454120297446882118888530236387508874360896946816836810590369118206206827295402036058629338356631276595179234078584591985614303207940005286254934269933064686201779291572087983484997840968451379229137805985178474616938978139908664855384967006901891257860728098304317609274034055076555792019995918110340879600695338830546656358657637448565016078458619844742037252755335858257835076609281260474380631705960016427083539486681917055643417077773105612440131907945766487045150050511427814554404886986513270529588858712203275020582052666461706214403857701813868888136020870975271852758648161775304913551710954684561261350170572784003644143696000438261220054259836347377833276857280885936466325551921006757938988465864001791802129220106392395182497209725769469452498907871196770137101561702694025258958226247776800657974158946837361870994874044554704810749134042145560752965936549036660673044474659255970713786492250481526813716729688485292999594461492609393222883470674784739519523104687881506738481126818959085260281323482834006500050418070158076138821046943587391555574348686494792414255197753785591500766123409602382598222636052411517590901357549018441354105523272869094820558669888985764294114320627749533222578393620874735861020151494505425667758866358753594986466792256627405218098511989178107348288785423549058110680557954941783381210464625437733310002259419961111847381856196200992851994766213964165764632773189504699615907451990930169482498287661057240376390790490892850087423037379726061628742863496287429052441108900266245335623394957459290525435692730951106268548351582507384907530756808934609727393577949833296239617911289269531323354014905872193269178745272815932404113288301434380384416981488313348357733471019351542131263064767520093163712349042807779655786811903844798403930229888128732438485985172493959744835836245719582151711426124695002082970328807059141977706345704141328692516322573981358192902776983929097278906921197836960242161709676721222008874404329077617181587799275036425368614160711009501897488739548330084476444843719621840634071392302337557089737487497986119828531656880207700108917180092846341703082018821231894191110335395923935849540923933112447811201708784189216541333958691658362691249197094327490373496408193264295318119948562559127073869481056225269263239491675886111973190594929325091517856319830313648143645917412357264884835751618284320824759531275331279550432625932576795768015104379599300987553471520599821016658960755394704595449444629210170966302435862534349217036011357360213941326955338607611531820108929871800598703047553518348706516242218653641190284701619908692678762767312605958396468797524896058928191168277695663698143971312360596231201144692611203313010970685601959300178258319263491208027930761085738054875763104824417485665332920826687395891872737654947229130667610184665402844211656912587086709480143138114110459839326692212883206738786670092886963710210329073739258900090065457962885822783168094578163675459253799199060288097103170918023607002361665748962133422679595622179695152532577628523187206473811474690190759024760761498727545174141093071251579671450994258559829059080692623686185020576811303179046089404656801068773433965660955253467416631345060523651624270892334842626275646405272571065338068284185747225385142994107197459297368001445265054462900483196884585910894617942198203805764106891299069536455811418616965616587545342874666381780723014866160278561308146787332506833085425514030721567038781202633508069244283755464290065406351941247943119266832376255819812965561297725743852128086915011941933058936022703454219591454814878015517937018974241079670774095385978125094179114106130069938142621310453676167038539264457993841267993898874273215335464926458845982018099019557556089333668449339712259086473650013866745851513228822065789819860397775995401574994815610183073167304400061318054652944618895599435104462686418405067891937004485853128062065513383395188575689601344136956062552543288553441096938813183547356058046514891095102281578091072879622586152210155729647604984021078129732747488847321877757206050513977635026655084594204441406701286739172490679761899913756926073243787713727092410642239254313485507447840239185306445777952853830868458877451197831414453435686969920516185646969150689988223301009201573405191765038500293430432757263933082390363666251708425364214297160829579274337905961213766224488195584953020586364887764346223652688519879314803506985903839909021646261154416854801302214059917756222761211274898626290639123400471568628532897573920391031492157803701685448644830248509253749030105216236965605092115857381985082091990355928561915339403572683366465384682303105403773603227373707432857948480316294393575911490948621336886934145900847740756572014957150289266461400850633722415659253851478249174287509742702333579261225208650368966581687208632354456595046386269806177337949383336228772880255741330669096406405632291517110999642785976323068013988019211294946345410809245973506293843595135327403724799146586496525330641756235060899944553092978328614578111895244513956272324184072915091239587193873815407443119724789282935884094836474608727903141167853276657955325402851921462068196080383897366218119270651620017405532669754734247875282306388411858161854640093812847665346437809057985610631842012456310450460684258317364188053539881930529681235908565027280805977203418491605795408093722976846403923290392637121228806391574996278062111051018555587321672621633972220019838416156247569643503519475522913598916353034373403857762096221163555863221529206589938107367753288259109788841905763203504628206249390089979194245851622246998146128419321388982426994329038137711595649812325357925858677769028167262040554706720845435918711127644050108391690781104697158039556743716007570784009128499843232034357187787934030933797419580906969900037436647940703462918465741184327217003651782335938336542017403815174601791715671622659012582506962855603412487904383948246273454001433353228951284626343751002614464992839126339113641124170829459743596311015499389932175747281518476872410934294930025562586272122777371040850999091537897837075671031657414975123308433340353336708837933179828828065508448911270675268702859653112548261233596883459273785000331558167264535707232855050799662906334524889076592846585562298818175760150980296186213899709085637525763007185804166902045783534302702240012593255221709519253642253021308255642382319225507262509438743408933217882872972736979192673989779438310492646839587879776711917355557068020407033187172309890990322410659779332340230026167891089689332486123398031747246592813233249918999525088530523265721053743872104861057306169373040128775603227665859555862195131458814079721744406804697032820765411260618909151548736773525910014489731263448881012485313705430358851609113719365445068281074662677667387242642427586773377103736351525950365335521607832649474251306495161814310657283981110779253872843889775116025347321358563666884833733471938113594154237537746855629600393159682003857406908977014432172976146494770511225363820758281420622942986623798611605413666915707352348281476888431790821006958217560572580270094209879531671844989890053283156541124102144994121238863091588742872461271832943081514010102391347184542815953302135931543912260175103300679952672184047031471196184664805655137906190698243869868833930241159563805544553397288942840918097830968225691631397143154927105934455909188863659357702945340688759571464733266890446032677856572146618794486887029743214212389845837118719851843517186649824848713751911867045532242117387137136337252528529276428400932224163885325476348454178838061813933848854515687825314158019341231269500409142279258190260002329580045049183211825432926594486469442359112953653302927303304586620191414944313221071307407038243011618404917261226144812725119996995156269531727351984502317551688569508803330878293860628711441822704048125487201560025915606040099149148458544003196917944512200655787901392028080411550255733071991428960829612135600897377528804273448517144249667440472991123626943530347302661631548918459041831119337699961451610319619038952384854823367828801477555011777474262839453551832744231944498883137176481343294427491494448624962215030730813919840858425393928101731772635634752325400910711237236171271375017665982661962455687568583925275542496068593206171219141662517618466715949702851143745823569315563098802362823458668771072499761488365104800155511812450689240282787230559091831673875464066197290545955298406335233994022908620919601414322743604998666513801261089782001773502317527708983509950696266514724317050590022216544226019000018248706320401352191341343196383181809890701025829612391097012505315754842302964091365238405128306175598881777248561232823792253994778010064235308061654284023598338870081217092543943669984139472078013290408394285591711549587823956021086585497033626383596377422703935245202129739922104065251540192994886122679990504096500881912672557040190669954391389913024843198397255600317794625169360477802350293157749768188190111029808967513550284844556727753396046772339230741112287948187621563691285992833149689932522205197977111316944565064888809491590988239209590013612870071992223197406432955968836879838778255663352056486882247668599912920468615543712826481147564689397601794928013923550644844715797212620084713443349385416330580110996086809946990109613238815918741695893996521507503911419160981917065825489686955330307285168545022118336953080603967215375709089761287655936422674340536917918302300918117796335956960888742837503185873455591682115110498626445184247128492865551793264550574803952961434223114590670663914608675340030184117353215906206147332161412442910848045195263844784937829439155495601441025729787836604925202305902000319938287778959435858296568964423788453965124914436496125941186071332789068549461103289654796970440515137609271561099964623129197976884503393456440333208184638164634826375573111526436302920644058689629424223219802683960598533691288391571581824027890026358758142271050726010044401827469074237610210462344128315765908161967076807170065364835416734298536368394908169827941449392410522190635858428711521596417879215915215796811412488007965770191947033580754128266666678775726584172477788042433443943489014405586862224527214979882864189026810350545559971030482992097013879164506579027114469115832057669912043633099675270017381274513793426739206785999733636535240719306471235252501441282454601879440667665078512502674456231957042312170377730089397813361094632793302477944512440590348374715738199277271803145789157020859311309370938051336616299930550600757490349840474481797945746088593788681386763425281825934308350222091606861310902379558580157456238127175765398009671342547935257799074564486922765389658720502396055537475614826205645808528585583645227354986524267026409094361906080105121771021982811536187832125923056605763018572264313655984448238093641215330049130911054293905272528796743262536954718540891010996966192061900440182200836776412189350160838834791510805685560643369335926580425336497751061627239481331814437202259591071231903807269290417461558317942647934016356187512713645798463085754184953695790386863627407436155214434621313835585979294688365520665163445323810745604480154918237895355405682939470499135800113708983319843245606807327839488256475800797408132732726460274202795190653889394995980174462510881417301509611515603218821762874475473317339537445173725362847487253320138660159774789846572791119569580860259522954116412189216681034887089289126546953915691727313585382988629673699287117278645825251590365314050457330082974530287754033690030858259065195964826512264898692587150117883470537716020198976997074801102520480392726580885281619190951266876500346877113925935452970105566769118593406368955973017226452127134449500487842388043150648332451385289988723161785900022125847743680826024306200531548005123334724247191212237251400736409088635030857882915773972642564336870482118402803400662604387392645886633533376986114967278513756630642067291802448537569248759735902704423411610907266735150719061926988280594546153894925037974888712743832877063669625966389974499160592264506580643479209121163183502857002386784851179408490850510678047644015394021811585524454303570880992596792406948742475568137178153153019637880523112040988942400394014349496987329177013126221641150849802713751661056389271727970282718955205874046161581423804720872224978887027956122819923946568670372864437443543650144153398693278310421827779621153940452687670366059869416954956145229405600622434380123277124872053146790340920509277281926746608493495522070744000495264970950535321607207394795961056312505806178853698176039187841440461008390360454041462182977891082047501221672856985180888938388554095923258916017011187412873127777097764268095872791988869163981474416185518714266820848547403842107553239385886737637215879340383610053365900485753056916496562830895893034968877786392758607030149887157229031205819717160499438100015918989886247296856392005644628455820663873908035219920804245753889520252563655865267134436236543771040080821254694879262053547622348945953901124593228610095444735363818091674283469446852513715111571641893794422682854870820626314155178637033649455026726166380636875157291911645851227118912405982722470898780853062807522082819312908308928628279447214103269154182141846135195765128039692535904072546637119931019136344496078269462666503282384793111366230591558854148605484489102951192167348739442802148083537060928279522322002488677393189075846612400827504645910925596574417994151790935049963499386146602501273716462268787295307854356966978264262418171690349018956545145632941664960962402326392153658949346104609819014813298432962478797487598869724582943217758171381798811472016215005799836685244827258971921675002304158161253504501231675914002889145053243086045681835870289549914191849663778132556537645452104437008508052327879709299542454164606286900586738913398931766966530381257544988492327417825646983741884852245391852194427488243113435311689776996470629501061937320019243996218379911320668804813609553994634458814655955209396040924317877727745840958493486000175615025255890793028925223002267920929059306456350976129648641898098443089474721499141814168228341960928019404519186308757879457041720874396660711571815244747723969233486280548631388757359377060156188272231800024002120133729225058168323443676284485602470041610579168715618083406658541565684831855934674987603154958906850843230390464752244472738427037074046119758485189983590320363423936953877863097016546669946137762678702406177508252100432108919590820982347721252342204216014719910976884603353357032327425150903987159764520798391760565496916763049183286562807436025952169176396388436788084921303501498530611099652526899386814821956307354404804661529980288359488167942145329732157324902303919014835240805682399994126541751547919254464955641787201192673607683684847629162413556396786217426815136215324568981790917871874665127924636175643105888336284660565498583165514436601468798628245653145893901989238894551445590859488830632065388519059385800097109244473406186639784680565441904490717878296714119864764359159980254737682932390563215069140243839742227427075333987048888858972553902910237197691393721506327470226692934547854085674422914344263836352088121774779947637912667469372995979909374599648994888700457788762829304843878809171972311867049847639079558909589042002341358240821125280391861395739560988964780053654954122529849459155099663407459110725997540427348970237986514138045176929066143538797789577772613155351434730216547998474278182202499502725900453987332309313205400706533270619820820324011995172312573896669849868325997423193175898457041639273726689581021454257039796246514703596698043419964265700487082545272324006483426860413727109397238167961338284146063771861352758218358743730326401023043100291225892162251303242136997628848611177024196365471996711454239337741061478270781466815037534090663013254199258691206229554777061821252368175645082025697598979554650858113107807654516733330846175278620576952178761184626597183229510915036098471803508131704122436243647769737311207869382254664352084530557014955021487495065336660447512982566221401595476439259288967207678714304126145005930563863340416621779175163861152118873096048390721354042382782557341999452358686226651336842626652153438162468887768266410250016062601920861607469860226368950423912513992484083304570411253708338343307566231105412826549832653941687785320804367787077375078899844638961148551732845294249714565000721429961433529741546068880835396224702320922120324316937593257424266933830088613929775628422646237184088956783374599880824841963123434442355602694639710690494545736499494523960018173498019241764104173666587129116706997145734651857846619279471777046710649498103334921649702564719853202728021822247551867947130748475254494038258080856249988164097137558650766888888158417870283921379289809353402721144766589217828207975710057924088241471320311038641834699845205365570270277382473079063845693263929097424344649418467178931872286205113577000142464881763785491191832414726303869286037867865762759375751211917156171137888661014882130510293928928248235366798890431219868402978751152383682315756342601257301648425710043632346167882133323140256050214373004022766027853351227136380650510882142938310660322296073884168996577227851319962478097476008401483376916705296188614464089242375717704687686292998265644943666593217567732879013277538902897890869302783671365084298859418054541751398759184864269249227287388934860770803242843040594183302763329746805400091388360938370163646156823876480308786290937256259495224315672366411373368594449571815524725902696746641715301076998691907384375632787259608187460601376613216750121453426632115593521263310690550918030812520163607433045319702120093084028446510282319311803175747804826384413190058039270129052222500340772718788633582128929116316564346501054270610954514058059501643719091356580336074747558644682929524577073135524965915489784371693285051667584402771945819464542851924350123839403188791554825048531220697267313503360219376768856600336564581593187551909596910067399836032441493863052605263794543729616034542098038892847179432448429785148230416987467930687717110622952525768786812982812697436323511195596195618155878670709549937172925643481080988308735996825171581485261225962064064533496123222952830371657700375375746899473705410865037772737519170520368007379800070911755162481091038897332426615806252297750023501212690546721611483655207932338178320579715450177404238155334594959903302229147517983065564839944156883468134553525328478672636824693617927734028879544014990265639607128067003631183864395702988400946480588186348195162018519951163341142752547468597207079233253423433318369725822862823738216341818275901207695984354524308130537010061784992169692051417329753373554762706927693572715041451899353677751674477947518485315070448917261607420177384701364120673072814986401809034057226139364757046931808621083511482553716952880659752534345543254500450640036994461121994437592029075738346238986496557405668305784940316659124133636359883048197734338762430580576461605247511896441286676387710529494898831065919238474812674961136904091176565189590305401997804297903011405294703520259275037837120034899763172423091945062945871340479687514052114816994512704853537350683368327382876368144568293077613517975815946044257376591023132928526605925821275763013371245063674352188852607847229087385456349918929268015314609340044973623953623655582200201261449020710260677539482447207145841471967641310480907309771331831658056534894676888764394061809758707205156795096985790501787927597945295083061483435822979468252409956443498341712785616690351240549677594359157361672115376799724832379679549074873344071246436355699644129705135899453647337389949837627214286897861624443342491914288578970843570335582451749072528464940317920120025799752904193454056271173717475775253161843567457351991423551510460526928810615938271856413759253962917033636330145088022386796065860886690445738430652908382411487810119049208637294539316484188273308747593453243893910312343873404022028086429549216656782307796036716732330917573121380824767107649699483822074077716408403295177111722259417720655105813655657810871432827034318164237043798150388161522236324295528348043706318743680455332212478272709262368810881448173132684862369508259013958682840010251196571578074591148446432409846862571235738880796247418841211076694388516113583816981650146346209114383788868357873467712858442459092709865483755575496707605577231837168591111628404374807856531098214774747619009065656183209777596210124542558082239296137239625547115932216177492776079337868943462594063860991657019653070036070564811453008396638146169614930595460892599431168500628747463953256258795161112671028546736283902357182401679248105935838224166852893285793037661581490081861492514714093684599963294794645107472995751411084908903619398022192514965521425502897095880399912514402820493202187862864239268461101779079329938591190983248720518914116373617217560255543037340347172821477410065026083906758155206731270004364546211316062304223378799762009603237260535173344002037573415051826532924187865890516348985329724864308434249292751597798391629410989862360167896332782273894363603800177018613448593266545037676570264915230765788957619299155732357257625870198241680247912822750830985011318332538247503796664188724798906702036338407637241714231773890491183315291849321173614077074733733780941782748577609504652077901671890675467484165035290823759800997922231024439051196428090770210360120004167973366795852384202487186289465791846890170778848081228018706400809197258226345487989095796201567140153050483253065826628374694257115618758222868170153039198205974679783020108785140319723575799746021411637671120435509462913646767132203130079161139883028373465789187508027128024912513336435169366121900149527234014961481028598863862977632491598533899982043528238512648835834846275091298351792913097936866302218562610824396884543714885058535878497886767566212586937244539598313395078019022679437950824026746043053629102305004515455234241199257100701785067689358330402301571490279065148239095582557347282121349264271588750761685378781666065848445110345175180471616482097855884181630219735745986696073810517864337724564557582713241362192085738857155831354242876948471338502551282487044334830608714119610928071745290601968767270231651982405726518227448625334192878666907399990342784194358230210190624785141796287503840846446880605194846961562054425568577995802958988581787971260588556935981966746976786210753022736335750011738631970373459543113428422291764179664860983062820981649555547765651749048496304814146142517209257388793571517190766913938968362550529896576129907034134652321608333138373072847724721630053088974908138905052916290563501513480361356171115996644276121263698145982041068692799379163713506259027363406731479850322683303976557557972607305960314405050578346211806537335982052827483009362691945805159227850508449382350775792702496967790250079314175741249329923331290441906146603930960949681072087179572414063808619293341080555693324941100992623655457623566431732817952429114406421419410621375814977300184414359726241689018197231079317246553387575513747704863143494788256468309841861543086554339211321754298231498320765491841252244242021376565069048125519934519977135163205763951222243646562755878764943470797168443977281792603801018198874808528242545135422157751835394120853487338450302473468817454851174213928199580198382587128829957201198233206981929314473168214725077195138860000860285288105049466449080270057032188281743371125226209963570367289599932698586907398582145432384370874819985518441681015303381364860712816680050914627053644390338700920416681789466360230994223064362196672078557878353303257256359719150870253921238475281622688713763084199906627316383573889029739749557692108707119232598498502397445132428187375623022948028714887121789520824856439447327799947803872057239291915519928798250181735295302357869794586927533939896353205002527138913260757267182642881359528080865246155590557274147317317870059120220193086639173608852017203466679499155566807153863839723185187061103925965213189353526777352740485439006562120285742088362118254381470411325106518532155228851816305838973304018147077599359402550772162909026043567253496444811294972507343921139419747396692126914424510970242267045518812451390191219574053050195035659207526317996793784705088793200167584850004057151838090276579255739905782183121883252269975756973602551403113076435800821849625966616366865710173778456037004209846596578928791220652321545002710953913803362275954800987745556318600635560780276428411715840045145475286103443899558023558860303210652335123845068039470963056365543786237989719134412084899848824902274541953189965728563779084646692257027267557042199565085390483180957367945554670641070063562768338026662518901131107125597952091299753333103839447879472209950963678938296471961922909093119833488797452922873585637411533701932171776658495922725991818049170790969172766846514734547469381513925883583240067022671926695128337019214075083591838812231461257186075548522353104266926447733615104693892135680713655399592119542154571835633288823696420299198645121074383217503986659841726283744275716694654412240106088911588071508196948581807293645133613056302851617911820900643120813787245201214061886938733678330514322568383261230627924937843302736207008806592559949304326186041912346093329420418095701780129770328349734557528525298993805058677603056471705172389591230922770699592533546526276758744856251722448960280832722905606661664555172074123072778452510180385428544494602406488175968885612356540858969776087694292751452069458629586146691538378147419676533445752341916932934853864129392122954127020880314135622452400753294135780792128847688256656562806887849205542344561492818362296523070428001790803045959291278774334471394374030235840584215533966431154469998187699772285833903606193285937783393181813508778093983185728495091181890777796376246306293412821940672568174880743370875349046303806284040200548540718141889639607690069444679851199284150295762106597385339676944220667983818264475254974598053579321118771095523446201061183386833259668692022316789045726724799761441690199216972760454587048635082613295180526261588250365005065555544041725402132137625450022944206186530926604084394095538964898217065246898662930696217141851630757321539840042313730076146970624155705181875805717466082187169638513722872138261638796580072915434697570864313656956524015511322977726966793851994191282927622048254385491187085441286226543165990277621254714463158611926193637107699772555408791283985924276690925155002527658266589311242031834659831882335983036103120969472274285504917390677395787514162343799242279077283973924668737626884551933852027918660929714375534912689753468336761141352502579633143484710360943720421058925061707557096972209523026347944750402614196403171853522770845856961456515211088938730752862211381608423205321507916143512506861155623436372813140469148096425159272499929232492033952309798192469812998137665233870785474742343815987795221970198672902478617284745300302708138872902796317611268566761108497229397211186826557103202243153878359405083339312243411750836026014681922245590614504186310222748369623467266056123493277412862546125351228879857892757051271245552184290355935424945269212481878033674776422008850771534381714876458257833267219189205072057822250360886962627049701389205254977540488864817741129387491145976904722513421088911009256311547075546873262287034866597373823561846418656704868065298528909134572349705549671783428971183381446718584496823629208140155982832339999115439115106866575250161047409485464349540205675120846126336042816387126990873929931108364588126812218077755742772927013562141830248077073175493930957577949491947123236924065212465704710429623320026687653172578900694175813267603762515992264355462964979807272724991168266366535839773636512965472498996597854584010990079768506762612305960159717308090986797297930907570158768876780974616005941221335109415547971488598184773430750040879256463826700079263005996471624012638320197657266045452188513650823963690417891017621625203753751726681853422019562391556234259389711939958191003704666831975011875603529397379937959512937709669613990365426594768689083828234557970501481587051753508099437516464879704512543012460332501719811959801334478522434710441879113321565338192312563440804655449958760798077379074643319118087552157050651894658812137166620636290182070045464310556547117239601974022872482677488508176948865280708334513465201735574566694644599319853177915568502001531726231501411948534386843702633389793272957115454468805712680658518791687028568958220848223799188684285139240314055902151255967509138893438945889132069294550803037144533280108384355305668292341470460345698889970091348110677728174612633455903422620427577880395462917854643755084560075273643114047401042790338537915052830052021543369972795878147446010383886927116694276025266714820467233796692892337600648597594621689119476591034750569836301468672021279775715150413770243071748912203827170577084935023574522455657649123721780498068194874416394198637843031117039794381987642368707080325151509567192444830585265809977632923577563755297048026460855767786514573084530352421587459391033835659809058763178623431646156506907552574775756114763040676097634985303704118220951220812699109244254470981289997530661302847199310183429520545140049194375315611879983258978936265274810458833174368770849152585925679314717039168285832507888803793279295682549338993505108413057257056892358518922395873275625028562526564852014409188669920653968893395657961862509775708366238671382346790568967656435348283630301798158707004499567512262250461461430684475009611408744421377305933968534578345936209054881082432200104076543416029018006968128179084774978383559815071586569494357863187529277188164965347911707491268679359767102479582208370614321198470636489330752745896100940470620868953753137429515351135313944701014176472437322661278690719145905304415467928578936080539588097257642062312953280582867520922340851326461561530468564492649041128565736061824535260796551192569565927743144757417471028293029288280713215455964449053944606382274799378729800165316985208778930201718106096444122086727007911914447925872952781182134832377904465487891898739864308300597013312397722531721993410903026507498703984651688498729611473857204870543831563730517834642008284752113046656679633503121019054782436906296609156626938410204662281949962508836768714989142425890770732289412579060680433299577522243373256997939607371639480752756760818275432102928613179804389320119210117969830821769825605411738583123940688369406797413295635395579892471456122977219820508285690008882773870846233573302327990690243363038642130254120162048637752778075072352114856618090174464992772907902031200200208592316898982172653751498204554604101105278585487956694903568467341554229680703543881178356701774259971028149228026033245675875191807546697221063050328410450283849957974089005374106230572062089691735030211160805245581083638404912665753504573990793080172976646772066775491335420628152611675050355363726949599388876278181084225549591075416134422011771659635891808622082405912268855153344546699311503565002822091325326571875857468381175655367670500203714815496305042462693280813050916563793340952962529476004351517369157298352234671001249609824834525270106701390823015784658666843632097957503629659193375286175162939558463053784236481042622003704849109075375483904128697165430059492957994089142472329273107876732565808057847944905266256075459489663044512529860921312003136624921280660608051408898698031917296152229735169220788500922829030713956228768613640334769157633768510110090226381519504180667281520573058683541788318890615257835291381884670262191993150508812406510417422868143879716134060200299974054811554449477143328853999107258883823225201753035393221572836854098864311818365308192198113173758089793853252212207899624910545955487603441106001876278441952069209509607890873469527665327907930954781958949097753138072774134267865491184617490610278432087882052371288273547719179866412699812066000916082020965581018092333920733667558683196245632772786248014082986827571566813436125331300431038235093841608200346011697070028584808078153928032322777570523880898905054772054430953226744288975313683499832539482889036752908593639694375299130853393806777063869638762331667106615617839142962073310510486988213114730026764029244685661735078516265688157759073252846720005948257005335078460292710890064942523749394465438369116339207644975538327463010648559124442530020860641682849264324037491131688310578910043729347743558488009635966289653524253961334358259173725088075331513919806701302807890421679811512057431928390699458291294259433852874070194950063323129386633449474184932375649592993837025494246407241372991450681179760824995640583126240978106187883109774865698242805108120905739390426076894328062235874579641531576271294482129345334186576116693252975240034049883705274837759854418770562782206904424263007505094248396849991453342662082145993240367594601455079643054497511248217683864789166130300399147993587633379631898348388949148971151035998093085602831506040081308293560873402153130807959555574655721517047133551190197322441324704031261912289965653298887792185207739858401768763762187098819633177081876918074257866606588731548798531698962377168025632066937100092181732474271426671933308640187569012796018902839991081894244469808689834640086212850341705657617107120273075610760388936753793907737496388059058933969763603987310264272718272661986551037982961015650516894676709465322813113054020274034635827463808093223141772942588855045794474660231279016482330187771306948194046500356050627821769002612095794192927043680357787054378582141571598843555272038091157293954117830176364158686829834069306552652653318064317442643440691208436602055688129692429970214790393388448104538060730849974887608101932206501961698637605511533257517737001860582277304181506820513372212495054879307442468844176507467258874660082888026554063773977645832327578653709588710172781246325162903236072193920579475178878518588608137335990890198322067784524620975992746111389614090091004712612960317138098618829397869900599700009273207221904374627254128053616766976341127212589141519984079162278028621106516365958856371311543870209509271609185009848862730131675479581289676574919103258038459654608731162988430958458502393436943935011508466705921526179076499432935720506212606420114266274995326145301847771482847421456999527179223207540089835761348597098293855756778278936105859276117239518855044161753972467942569441834911455289855382894557631130067108169194460703692294026150481103617019460532596487173208043529705313980527252147134408906535826736357272247232059158576878162076058761434897943869432326723195025759640651892458284659564030549107927205173508739096995316395208232746361877469214623971330621370174893210286728363218487232096117155599967504393302145539930165645279985365531369107636234826271037728776896847359595359693362136654398962619267734102266269217370057331297591043397933443374076632659709328967406586639517866148016775183714908332901548556211228734675560902618868059317841935225732643457952188243741850191657212336504084027863815957936747131588803703698726154017774788965349568885041389695116814271887255750295724500828330354928052430988272592632869433482098688030631042086174365089410961662493266373599595809826651206562706621560582239308628008732184690070339092605244074383201655854818143340990962941295912482046614532381662074163678223906693868283438307195290667499250890876973147127189567241848804124419249993907571814969015131404147331830962066394673502541295042834646765673290353545998830795551363391650674327485477701868789265911007381957939065548595151561256140898234420959474699032647497027973084980401792658399207578652619754779398987740611877674382342861698458721245437493301269000677360453666337582280202017415172006748964965662931034780490982977002615910383571540977113178985263072001946742284855088540427019307155112634034990666711789773896769669772581219148716296263731437796647199285817323615721234562288839492121455238955126214890270045839664945189740603183701260849496996833032662863490935811169873717886729012173440444026813887966998482162791630312687673144040493773234040005261774060700706833373278186425265149527379046415020362865440738495219119833056772940774464483753374740469965343241101447375775265730844216819322885497403368087572323216526827089640754513967709895741431990467888326264275040642914430293458420147998089210018666494761595644111143724939586521471014281804822236723561028362908229338146720055125048190855188026525987412826669163794800180775487806024066588352855863024555807420958171257716186418967286770515859509018156163486946346073491949527858977380651771926801995455106299519460747749806453128370162385541760250219042845372569058084186582727611224963570311429225124685387833923798307566735236617913902255110355277005748319941536558446508079540361240960775173596498097620114151093927927291619972971156821240264052830877413394581248305384374317903707900647290105917719406376341163376340608163178179024684878177326913029800251993226581400120153090444561221020447624635186041597208592911899770662138956735213035105290338127390165614743504599226715718583557255339018486850000412772683998864436468208705488494803146323104914802072288255933190007853839905957549267333973527519432084866933322695681503699995844272696944331645820846584766224636499236201457222788939216219644258328686039054726584448190382971080757571939979238836385729890493822838114984632341241430647937019685340971374101278808865188226431153199878725760769464284730126602989427585963135766996141001331767741578488439576827167304863772984069150268010844183449224203355411102097595375000734998027279516533963099066373144609341529320762458192828969558490238066298910128396625035778283830472485817002440457185713121064419442902523237164955315609852213082562829637016297804949135751004901115074790188147372629082457699607451556353844094552613732689659074963326433099706590792314648739396865401334001434425356786230145657394901654849638252303575742650924298435832635826951839220996249979182654720761643269698270098552748017410242620040535585771151233144467369066526929000772271729354080375421574684466474761586867247723308943966376494667324442127197037032635454514918607982039451808512542780186513447069054539316972819972853965188347974959946422823841527859571959590242088400099373214550322210911679789010794876795329412875021105635296669811247355315393421029874298668797114766236957972987613963132360673258080444081531983130851850009179238523241701182447538108266090918505619776232103365739142787095246339856722002548398463907445780717028675865375971430046782312087448782875485786516185915797826599143645855121540655780256604983331186340937360968820306499206075691851662225772524742371510194001344066528236807115580673424439100790759062637921890015085523789654501089968426325916505570598112774223153429301642445473624517668916249380042317265733232005841891629028754263366953291382984189780083099018230146520364413815246464732360930613101190688865047299331534426759335275120305881571926523458643684967220760947569196612104132972572198421509019834742977010732588865294811973837247234712772402881169940724817735687460824361326085226576034291225612784885598522527077244503342984293360063544742119248203002089430113049317443993716530538873229770151470304937788566413085237627457167498436156580598263637318482487577884190198374086990431565414675718134410822772235299175578667784201111898665772040431372830822609540007231411616713578194949601201494792063634482189630971710118030433628039520945004434232502163480288901204283014741414974861154749631871512393801702003671528911446593176654398556894819578440534943993609335419832663069898308998913632530403378000906346000235121592843751339617982206379488612170275391149862023235782435686735469154707780075890094380327859593545955089541218470901705192649786371847197444855091979245953099591062994136490119096451195112416558537462421036122353072935410724033779004496000728634216029074715171054093465920927859525869276332499338339771787194276425124982706444304803567933113188944844443962531066621581798935425889579079831857161966060828788364770578954492941259640819004037181910685712629270977819825116481658606445710601810414355055638912158199445312012535547444752313268863974020017516580047246920872486653468881407712710977880872883892749071432738874505746964525493850960294330774744229964185958158736825285331770668451581450612156350306033650178838439826442718216342378045402324141800328644946725898549287334213675566666461253515705993874729843783239544449655118995713580952197346587672910978483964074255870314581525514653260417508878892633542286359579401703828902437789493521180515424470818588867169310775760775402344318334243337316145838875634501323704331030395069188760178257178832641701780054320064067932196234019354047877950737666803651235994445512261982337888710354597801667518604931728075851914907047909399804615299124698223217891829375425731642603478813700163477904756474742465081083179999427732186626891022347464253455304497968466526528703237871682554808918770235358188038127859165664508868823213981323432390919392007122299205912057140888549178524713853378091112133217140808945317365298517254955499619481847207616234719410695714802676352507033343421665816201091379777792230872737678741960353340175591196057317900360966432062337196788224170047922161255209983062770951531853955240700181722332577518610324718594415760945470650129256724061238207492666324370075787585742884289654022389381780136397401629980011437069941108688371654856654622431971556149643164173425890049387864786143689407911875379875989933276980299337306135130176487010259962284049413342827673790509867087208477608618536679903504086112245360967162652498909072242073697876432543632213358090456589232429819366152483912294035500067231237274328117969902446096289726248169799978565571003157196782386203083637137068351504820094580021266262322218337029881632121567898955736412803354975691519956813714313523674382657167168457403163524357981012670702032238345871920829802764818105404334833467871092549416505354382675180730956723971421064807296156835923159474592715993200692915276271960281696051168395044606025425972375034792113343816382850641452708985123688624553959872260088911564282122112527912065226122193451550776378848301579052620707802877426820459100624875979752639468779174103378977455303502750819330239579824163864345222174661999058128847243750549589055785031562017626765283759511901471337807779385510079473464697241251300538465337675411383793870105828197284326024784668714231226559189915356687331907906043779167391724287876177477239497350077847994890594263702132653850081266444086305705461001491812314821815337885495112502837071590046597348243581080703134357913890938754853891374257391242028650984202038062652452813217344739422580682825783544883238419164726533516488612298189365434447291916339388864933410373066109330071955554435083054708880542816354354656735839458014901394160359146443971201012134085678817724404190500250616477353161061074909504523139245899465366642455054322060117283110330809305064142694516890823267056519412104773788051265402582605255774972920114272681788879168325571659498342188754403031198900831447706364442135480172642157716485592284529362709489545607976241968329103027457668595731846231694716793460037111742565221428469901461253237537388404118745383178763550177407224277009653382075883021020302175910364840499308879593634145765291836739993144601794911057726832752197152384824008682013965171856286769946639471469391087944757773018889771293192550322267787539756035479148845871064546052264209471648327297813980723420952371744201898758519355950446976614254892812297110366465486306687263038198606495825570370661809086931215384870724974956822497598218326401084483475214697435279486584391160088645917919295961274711772369738418465964301242997244625578700777106892821234866267254691353215203599737436798536253661430464768075559842702652300482772565379582763227091724938777211819883314704821833477072695929463779447828089886528653616361655026563359444241146443908874064173514467495110444703786125675065133854937545959668117844109646459613415651610715810989394978298656188954993717309985022604529000044219799753561214479038409572248517246475972356521024343865709288539793237958131822029528492662653059249219712880564035437335034788053677236628317650162362492032585919831722762425925696232731576818161875916204551341498618264342549447811395887559409747703640342972190376538316870865633161679544587433723600657151017336797535789484509310254876111370375138488871442967157510067562407334445303460071737888794918529490370366114145362991880225450737324127602519879242889770542194777741270905594516542070530231450267740930932512230419590619823961463565725634664966994351466906841720570894012331484330731771248384243556230049506022611850299408839894414428775648406925624412722826393606449565560217352813741020148153791563923001241845298336961584500099939971865930917432345922927751807602413935912694138107245613574688314662000329079071391264781219825363703024504949325026556685712338633471698539225840463283111617063685458741465969427025317184362995338329243268096973431706633173546788506207062522901897121685230158371643228657484215147152765778181558716079494464485561153988532019343302422986008431256344454149523948362439484475750842944817652544776128343629308969939382600318095781551810151168102370141538041911343235061713686966717361646859424293044592117420031647367381827855296441550431978428582980527022950639854812695698549964352060464186243118270835030222197358294591477664382318651654757340657719475151601201823827532991112942611464011254902844973943949121859169756884002765607776316183494786379057841267113899101704101843778651265349873856933497569385086805288377403298246171382468239612371299253480759125504705734668440516330616468636258090939049263429694079103764488613749357994824349036250041070107295523126951001302500101645517403488629935638670826192938028398743990159302391625829289543320232248116783127857139690582613200941047749132771595054552191922259582335493401247480783035836453057009468582727773182071109218433866205071629703109504741034310970935379955530232514406149333575560600201734831989402027634464118620258563500804082152692469541926667426124436050387855669328462017834109671211966247098899093225566526512957762526657637421513768245654775215236637456848373011269418158549893413150433702543506246461895066460304596165174874747032158174848801232986978076467789939271395778943073079760861592518552120620164693377009298685444737102431261442056139707062874148332670166098294474200837040272319711776826355280172253781893770020412757666877449835325907013979972347643588644090247059603341822017811933058718943295604010430896234581142853872414549176192003347224066013927805649017202342777687862348737484560919593040518496375719162191628999677233902322805403371746386141230032055335379986777567928663181330073977125337086096231644785450674099770668980507243153621986384433440797725059085101513112686649403603944587003784368704165048899238520906016795027712284223259887492697029632323924286037096051007797889834107368806489199110035324872978846575869852815829293475302955255346639033620167910592345330543771302433760348877479971898474699093586291341472022819371148027748392512627108247190393305419133872435375993023955158981361471242383804419336065685290963048245874149763859575330735011979180453198305946839311135292905780185991961188437281076787200871364176341134733340647019238020204616990001625762887954059842091029553802974357614567883569673062156978544304068971224390887487440588053877706085912185586238724787850428257570811306282430383089187760797517175602807812654546434108484711014450211596606085236737259649231454404487316912880677444570996750079870142837895658636545946400769214217725377476402554424315067638681275203488357189628069791528705008575637243821298104057549121130910888062046360417106166830963350700494339952714041816374392341769170155421418598574042224804319559699110894240836264889131308710335590225108916355753794899662508056838451024611416208529449300497104479049045044758730908397594162263598039302255398876078267913053095043244743519957431196664410304934439316422312280099190455795930252474518073185779712948433320696440989609098209283484955090988942699110987379196692833384281514538195653535821907331173834066263930244118685877446935442576807509575640598382651974590874572093228971894653464743907511309285958406791575269777131377317369728522406442890718758106358182704813834891474480468945763992419497990210674708550241133814315621728642171943272050732583630879942807555162414142674193557321368447969274444604425805423173480050541819263839524532584826480708093330544759157905955002997701154244797112452672508562327462809185305880493098591027260267778812805641479607646081180513672965011667726815173350377325797043756050481086374620530163049387883397977988545817095021494546167235549526911535032055793271920823154230786368663264027305119722081180806922558272511009808716364606455231977532305019399166725890962157317625103596659711836970941688052710517646398552746845674647731298643527688593367901195886674492772562161345840152658938606159858312489245436560831254706440021761226480236167813297645772007974308842200824071672081525018438418810323484621380434801700021751007176905762642455006373548068122282743065910436037001981309328179949428936480278136066566773370660191996212316500534761665967407795078288070918728924633758993437210765736692888810285833647045759232183180005105631979848501554698960784239290667470613843359842155497097046709570122023302389920567917291221908979675044717317950830668529215262633437194223482307282525381916847644374546333232106829066727726046584783787597918694836654426424304463438474372308281987844178149391018894319103540442119977720822297830310568746178296231384868623805952843136466118325058329074565187928215195863857140342487037221433841056160234720525395493763697186212197543419657870839895103773867820489395594675092953108936111603231809586421509737704360320142343398937798505864325509054169409069759670911194763860140353393753019800374416155721569268686625718640492068345066009975242217108482363790639247894876069921991016634920700069563598307976378162479032536507499230267775875779479896883456816048080129134231372192731996063896372949131441370798993014536366407385307264154191509172445797372811491362412677753585905934294431667324826796977638836294707521476335033955007846824763355940492581430726220799875592950229693697227561676953486983662217575232133853039879748730731112069142873998887683234451147508451840819150651167085731417356699285233702333236597813811309524255361626371600850355642764147119565894560230827489882157019564317482664816672081491918270164402589028990053425633464454683740197827830730759249275680203632844230979493718053923997111697505527087106347674395886940091839536558800094618982672676836625108432796485536628841820931700900721881452685458371475159659089236986396359323537960879033361465352773424102545989340326805331738816386121869494410269208321968152320932582128334408498625100702799094223831774471784573886027630586260127313502757416388916238184105308449788733900004782955070790706923018231366239824912116666160352681204507582373859459245780831056934781124993409545372050431062936328021705102606528342588720597752026620420479043423174163826372089189266774214145379885790319352072310728398420110325150923965954291612294330906528958861809940983746184142050493312358976069491520663422924857551941483752268125964110543544192812219278020703720147092675961475881309803822754279664261315526244318611658053476431432130713673562932139342177182878067225491935557645069357373657954147057024881739546216984376775230237797847462055786963028945994110302944320671558197382944447761605090194146345951990720643170902091378180607012186631157466479469971676839845772921438620644107491237652448262325067668917539253723095812904129993109578966938719093366690750270360377907582739975257349403661461256237301657206753462956481924782723720474316709319117704416877851015055005509631508472565773017111262861641124226136002443715065999796255483059746146854227982677017872896936994677525287148626246162085452916592251255629381839525307145888225591189463279571551883647992809365280508917703087440497696970211480797678178365925595091520747288385610590570491010218448057420162219893051962064387274892522323836558563000777243704836970314435059486412569195938529412052202900540433239041179547301743727975622954896257144687893935194486215494947224516992541009371405803465031219777658924787507106838052463884507463425812536094723283739247918736821767347822370057189878973503567197858639673252242119279282795424704980287903715080703365903382609306073147979777821924638698502359488661007408444308566117666548743728396314374284601916687975457248163928459064612321809109445919405801077423281037263336439705027338774746714332623112411258816353052123455082772762113217660472455761409632198667965256310032109466806624494917540357823816547155963739320111649886720461786262027382149375787485535701875038028823503714787586222505334229712358760076642674429432038738450023034981981998725675799824984173926449384418335435598721905477876430836861964672747486286845448676890370062363466332871269938862071205835131145527461696198312915079388931713990221579955361781933637052268178389222007660343490100047338257420355834207036996970739269384265857105755443291366351409139373947187056647901383016337845127076422607247421055763171167470616465455832783825039780439483045229926665127176910168565218946296168662468583801348859076380169621130427980806942294590363491780925028535325248798363849097951409545874006925391701169787271332189096633582847491857911442322191422390337834858902937769087351427312557039811675815705723527157190244137801494268215517320587517016672741531686594718849455331126602052963789017783910371279632387864119672385549122018265170344044148725691477661257700660325498550145837088029860349197945456101929612584652543772459673216657255191153449350634772723582621097237285251317359893824131175557241890073256654832761639118399057840505661608835343063526720198181545880162511504092087418369710654058980838528618577266963465491619455953011979684384499593952785391099325671505176251249282270794501911604812487042495922886539731043453100730731458482696247555828163850274880190582577080785532520402662625855737289980403031926315383205534649587961296850461050322164057040952299417600020138557308436095441690619970437325410704630593132040767607480295299680799401822347950320865921680871305861896476606787369858669988884863950815538436505392841570757156038103015465595732531189888007800202823142786660170527450216755813768603305338431040231321596131492330523413830262930067565241441793055627169593977497830230415819439971107555153839031638629203650034916409353981909281127846236240251416461758930508824610263196192583051222567217045663055171047759340835006162599716918648978006768183975066552183217787944574943828310242802473262751638477914425448314777561819250121072473857125018777241130943839791154137699433135481271965119732083099754966774665119373994127326500130851448454852346949823306713822910123104774377675316139603014375841723171137064099876753506828829225359395089711929111561000360121504213081574096906135549872588170071398736362694429303360702995133223688876316698798714303167691657442111525148312676552531516006734352391520559385507131494108522602759325395937881842700487264156723004601291605544485509866261202982097755178642566101277790935600968970056559601661324290562729482728525189821924764179049250585865134759532425563625510943368550531784870829211773488289442423218741426961856863067353644328461148677112935765879908127452199313242995896683779507956804651612894860765856125258204852363534960883585066598968351062750735241591504513569079322246989472348493583211789626135655278800388649862002768193739827193149943965305055666041292676947782341859080460951515265020974619637002565757470606169805023405483598209980906272362403757546588531591192799560305102270950871938773009194688574881686686466885222630632497492656951510475330589822095625745541464058653480023915587649408222059208178472905119410960638017976230692510477039450819935720897459580879087274867750222900561536935321091326364071566850907835747139849891589478665992086532894274863709217426599000920526101516497741816778683045303877941022183206785005330029748482994678006385117725709375790566079405419437605119700931295105622103694949501913656457004173039023912230757167817473264147526286593029668333490655108404532693620226232879302109366741019179225565820678538066697322736677929806452688830607302463183468417865033541832811933934775035092994230493554961906454611274850918316432485919982769189020038132412825401022702628972315602696496094018997178762457547176963814045102613337773577969404649486811171686479775181269236937807006999430530004107726337026656648503888413401402068389522623708517594852430344543927050588229564768056652830055339458987660012828807780094610384758684375665706317005953655000519019197618648884875773048818337819398736720605767567038928375839453633001218930517889488644808336089977163257689380502879875630487287021874287475982836811908548434079445174174365042642577778062595596566507130045863249487127681565702089223165094763909885366978156947192172026410398755166434747703502762713630962939654532424709429437719970909672023581883035862124459343576141371804378778883023075351647584211618616111404085284681997261673988522214064633344685588861099611619089871572489816686580466820285446756611589459028691566194118093122203226355382496702695952535130640263808529046294971601734282080942802698661262102459994057581434445449165400050320300016076130658019734614451258545561490654648990697480284540960912047590171301660133746803821699288044179592364198855989315728580166679550530594124823822452396855942019889797669282461761125144504708431169502804793319685522768487360685710999941278311917328797703134544259162762124875775710621057807014245527033311112647692143220022956545226888540971182431891126123702145895572638603619612275215978282223042858673713791937416024189446156952736301286754513768189683867544638128103279033336199851567599252476294151692770962764725827338244484502371845486071594196756149436989742515370408284543850238230902788476928893600238357341037223652244140000324222219790156365844658210388177923128278891556114725140911004406708316353116497133801235257532378078262494572151810498232742663104351475556929054502788604416974959109048728917790615013108960197057097953025345551247981268357856755771917938785264536172650537383695538839334505757144991480709620579162934508838496980695521949235086916563147609587139535180304440315286923877523780216357682000067425229888018796779622693031173532359057616154745880065958843343010660503573631516158334899586936115051131019989967799386527186180562557535905386547253094103374387996377700307168796832718226389446650438945041562684228611755294373359962992814317086383668955469509763909986866207825909200200604296839905475392089877165696165947038204259717472422351661209999813337884088124599611960855177941073823491375877244297473714640312140051851452415761742571922607016261403049873663125756754118734181461074269263217725804367167201708264082156431008405026970224636698900163207075102010222157239244219376533159896606449078700989157154649646023472043623487873959224157644682650819818486118170106027962616230517951301711207660060372312234396871839299304862642517787870453989561650598792587101944184952498418759624731131858698339044584698253179109064171718790155978875828520773271741399251579372331852616703338279373024198109058471069079858762302145003973912296285139723084917145270494767243401640754404380465331414062529058980081894375220735480283817819260262884204632075275810958841813845992119294071973959350592896244695299891561223036998955611203631941394425766081402858787156270586472865267353271816212671618470376583541301249834280587330955204629055327334547057068572979633235144275052121560056140435164204485356648907647688156244570370337132095068389004608461441240754927369977347206378148928236134806142920043861712691210883859515427621762474317518659581623709196752933354964360594193215353599326635995321115525995618821470518984494452619277285416790645055682218957355878209741099750057841821340291643720024710840037066862569129790585514095379335463764838148202177778716176112162616496908361746006490328405991757831161347542074003587178116375095075344148644068293282049433482961998401191989852175786253904657601552800036757318442932207660333687448152239920966071125272588249075129480966190817024869389287149373944854133694974290424534690379472685988501880416949293788151876436462862157716472647798687124881643693820442176850567997177606665985933758064865154713479313336673794428918503636111032549510455126946993532765510993659503174720646442817042042108013478230650522838182205411868840554443957345390951244918993414392623383102031174591062110160843612609267755051504380499680119848478075587081696172203634995672032947155966776627591737132831048900173420138634185283891533167762704105926589663235948537144837161322572984662489860775041224009935996288612563173852997111872979742910925388895271866189495087722041720092776415265723785799773112919225305451871067748052157680819157721611432313901936782447784229893004296389821921375833471809179589474537623094020785270582285505662596681465421757500901789707713365070879627614868261992025305035658336403063697018127044333307274725529609789804859857070173469297733160388727493561420024147542075134105930508931342105961436090822475973225327256989422114120419351070909662837782180094829499194888996609902002150734313164964019152393521893290538885448839871671210504484641251912110362236191750333970085616561468383525628254621142739523823312670208872104555813679318809525754219605405473377654723609607795926191641683192231024170763983682029827143130700242539330980963435421350344054783239251231473461427631979205865698451991935196530091456053787216261816422117290518274570152821005664713803540426976707797117265375230995963256334809673447903172265800214177388276916366136940975175186863453140332972522385976436461340594300549497260986356710006665155337836202832061484606560097383100178727867616284483468826815998503294358717156340442883221791186754924173073259602375573887546444042411806270736349141774656130098416306627646784407032273445573023194615689666406200448766293923762047266230120877189991135576436135340152259126689599290215124313722853837792632347119798780410428226784973186399546679658556026624701408017964175977376279265422990843472033861392653814511053787793729243441757818929922388449840763317706825858722698256810121378371286285572324195834039125228647702825619256860815011021031628977546616180544823368338171907871193060875674551844685469484049751685585646612121733014933747297266779118056241192999680869261799562280063220130214591316292217577668857128734325110041642449811439055211349586641002902571430310231699850921755540630020329363889655790783756178617860232791234799348713118673377332950966003180163336405313523510399543065263298246397820907441705150844418972668115771203969330374705233071888441733660687615993058097948551493786657725730915295312505597252832509782778743982037988480457846030572659048992798302969084693733422496091879492470574286177764286265912411690469129011933126912584371460395778106946444749500649309564974502576091529906850970485402600171188975175080756513256036966487171706912092827436727926893331422304187424982978753072226052825299873249821845581238122267343246811584806224312745809136033693305294792984585927124051321022389926086008614969522626729951179752521257044017566582007756480713843444058534292114055301015796426417996192434057553151613167062243007028915420389487667751241133281108486859958313112048811906288052549125683044988411520255660370216738847307096883610538764268400263249504136888717566657065921932540632661952951759465952999740180866734302737859787473962448343957083330052900401429116510478540150972279846451005640230543549577114803322744072841333534168371691409489217413255132778984395206939138796004207337474155345285707543872696779218468349452613424872915312934870848055393419617600228040165305229573038548307914607191994416549940284623260737952248940940738769779726588398021755229552502812491483423252909138700175690000809620996680955760285697496642770893022961592908332729490562208768577194212350447061114031940898847614397723462149372727713023261373703343175819114298884261109275880236846041609039447369211792421325557307745777543981647877749059365543301743136390296235732680590585389169432404072676096405362754416266944817033830333150464260259108569453116311638909333272229553461424723580918902231504401665923382512177440517835533261820227074656786478694665964529941935334865607400613658152664778205464987539081395264179054389150615074450797274921250854201357061674795056079840806774880153144127053378124470869731577115414550646753039097317865930732793343518264952808107693100701446017220329395282653514211702558350255391083999127364828218157405173158935016577842008185227745842999339688681077119993223340710912544123470738527802310635166521157488689610447585823691015732276597727643848215214789320549301474587918704011003492491889370432209492010400614919586361507899170974466131619947570934633839758393454597169395227204160147258271206094295552014056894007980847629471483349803825848912939155517251961444477754259783104380555784775343235548318989089727198064659799701671158410624247407985454229241843389208872116931726496454190606988702736009970530736632153311165850406094908842126110504933122575600026134368842593304159028997860071948289904661678088649809147188522220771856150516936492203782047791983313109983238527428639215059174151948088354263110009728195964820694699197561007946651481603045575064460751061274948016390862560892649095782271924231738733317875109291946986481406647811613121829547068738215483710061683782358525440539694054032896022828033992522307440254061509828187363513519802339404481024603901091752557029144668342515760578074143184602441038812326959112233039860695744870166198942205896096177383516701018429039801791226758965186113488240884561951052338897379712584355864713406403565556216530813955903943502010839432185097698775611400883328011890756938968697024254914379320221873447326187787078116745917256121489325700681601885432356531845498711468770396175663211806170301910652197087962490210871886565190848464411884339894180585458592120128644051198965732112691016531179268215109781322488075515518090115461034510670992994944019967992054197840273931561018644789879657293941341487220444059928912087352542715537201397013496553354910747200213868621917204988177408231075672771228730867007773796428574469048523905914286715003685966764886518362119485258087159303351861675765335133264057184404803154465301888111638387428395210209099798357053537120479101028642086167439483327433519244066221951574750210188782228472279727237403207849659166156798806735639789253361782136486359724211733527857543238482901295695392472144168105419196071517840617885264552635669879453579987064348981405051638680652178287036813297269224109044485938407297619795644621470943134338704614181946704506516647975172202754105721255834555101559513530466222404570634256080396391305908437371603364086823326810686714731953343296600425683446740473745211782178115884469976863955376486869628479511716713808648975915357519047276235418642655415864868320186984455096708571722338658192768359870923844343376222599924682630987310027973228972881564647006792179957535643965615884453791164264187093744713389947810319999721353554171663590700992897618937908066196512869040023575983053599745178872934540795961611647134893661362205307807008314532135750627869647321522624311656090440325580981421301575683372515848609365815003033034066565449707802139058633741356148287057489456573464913969731766771299572076658737038088778478885842159437609357723990313852424964797810726657888835447789845016257254366859533078073787040019039872295496114766496323792263367642431682305173860172216942367607552090257915987935253514339377011516464853706075789571575623685900062886194233685246187911737548100638611236367791218070667761707434797872198895947458724121803958764925691291173650076106516788121699859667965896597926331652901065182691306749734205846567327812554667261520335428054702652770047388345928116107617839283505288351588289996887438403583861941399583680104477220342481199025153788086057207225685668137783399047472163502075080906189712302000260976402994220531062209050094977415287471369999753247364790181827573056936580475261560949555508143181091936756303358294580871286015676019272643720195481616629787916733951101465283563076297047939782362415325270109872843966731475914848824318710921964750302276386992640127203308084591906161671479995189747921161949214353987468506817398666398224051450941960583951571373446763819451754848065236330581632247319798078270792618702965759837404592907099500075706749091560092074420408365701803456552885235105064610769697399223529660632272387699178167481839796339953418636799010572367960468825272308768947475565146044249284908113013066294465769552935681180988185520483788682422956993146482763303018510213007945917236105265231889571737471557795960250132781331600899452058610555084312563086557549565860408599266236422798567633172574719992699318035504079876025726345851860930069281163847516333678259997896848708500760928144176868724842826950186359839842047080395617971919896064586668169979095067264127458999008006305024409979274156845601002074737178849618983941825864280142075012904209153047115370169908718399143095045457358952164782884744547426323111213744680775357748201854184677248189120667262272997980057019209653343332543364493204931492456467887202222388591936499510573709248066292258384533211509697200060871436017120038974984283756479185162806964168515138330308744097334146404094823046602923765707318651334891812760304911834165751334546991874795166805309133291582596061870930958338592160740408933071555472110768014568599593583890570313230577606918467295965348997753781854048876226762558051282592131712482539927643240815314734087256092921368973625265879568332975735662152623872660789335624063232463325607195154335292434674094004855469143636717655775113592229531383442666307949992465182508233368486189873918931989844203710696952806221078623162303658595771800972672186345535240479704716712040189347810565527028431119609609332888658416838285049456503361145622820407947181119774904358546966528642842135476144888132011669521949806842672590295714666547617577993743037328073296436501254408521213288397230560832902459725366290096442381060989007925968609987142420744047852211361931343523112002954816423217219170029803872784392850222948538378244763734606076241394838431278367565188135232707879761786555190306802040808749656751226985739601979159038913814105884790707177567890786678586746451837740204639387401250669647980724507434446857466695468705409744001175390221989651785517552496657833324333484683516591294252393680348927033078481727234190293968407229016905630104402554771400981390029035092766093693221052054150806091888750002362303546733723474197358155744729446482495336467391566959118570608937178061690640054272957599404609801021522106714939005082302578821907182553005163933089133160249406211461342461260732536260528712493004047426678755150147530078171591791386753894602690205120865900967513519952464202269933777546770355078499028215686350390346441997988523186409113484941054194414114764291636293764817815522603207388559391459212613301516344449321003062583443171227648584895051304246887597486771517117313918945573771924743710246780824122505847836158213095485232131566483426326193623556793243357280400901477614518002698323008549231675445314353093691086935703612495255368318189161325035663986860385308414241325885275783302116728718104449771906463241919792974204237509028246042354712181301788145702462793556122953926322964149729293128374634084642273352363161445916502204909680095618243206126783425027061419443445465416895766930043021134638445056866564111810542840012952502431188138795047841760483848705748344385651356503298352218383563552203585015608479003022336589071665911237731838789902135918565935832152399199841756061860635084846536066757753929306633974872865156587641153556304196819582337649617341765931166280796904424547789200272303437828005071471326585305132653030679388553080976154108824404938900946938872966790387581509187943908897130412504343227759675262522459908575003167263916954920097004511138471036198772923566411443334310632721526856114746428334064003859805551802672377020786171231844025923318868597840862248825598312653683748163916866051495962548398764624900716272448430174326260961707453088336119696244337583321890246278002307003614082807943393606627099892216482746047854143956184958578170626457298579716428118740866709279201417914368360038409454435369439284759483220841852667133894455393049022592448875700735105980564446560615950121783107135650148478119832902860079142873519392858200764089190267329565491981617771627131974255464586254969222037682255428333890993663991761304697446852570577212736220120625588131834930546234199846154036853732862666662712787161229163992719917220306120745065111615671452623188624163392287804188154621076574569184273096542752577751519441628045162325437568975670267065703050960014991507786459364519039717371455398475525769107686824729639037178182254012178627348337877037055331031591281418564156308561146197190170261531793447020920274102837217097454750375447885726325886856509272085500151172061566180530734719548692004334318823629040338021813082096428229638936322495094161643039971301246644430057910902136891669364565856221292134532092583000698550856368064506935199410735857209331696617602414673331085897646277649330624679698002371704033886558200252918805791864359567644919033981407309228628914063379335274754794970211955311314826302991847997711904294814334798336457628940959450396178715602716772436762433614724709812827949278781607739011027355315135856770354193220099421992374353814372228832670212820546079656459684336421396532038812396727752878633065645957221262486205289076195875904536625893977564834439166304653491656846789389168347730928925566597761458754917863816361601995060661092676519886530230561856586026184664238590255952542940434435512419382861005999262641835939031327920790081027540581898686621289166163297840447099964012093934165253293156898170888605382342002251868796690896997943070834651355869048353273691291529744221890202849440276453055938522985600187612615407318903980777485147435849746832897374036490747343157710657398003231619905495011480247443133393965809333494933015356308993280344097717270924142696561104705366364274388221518475917016127844052311736219396846614949402994027961684512892674146884791920650259468005111734587772529261860654284546127740058946223773892162975610613123694507465118375690590164683560876969198948376256448286669696816868026228634240121427180779034499758600531279824149926925456488957804454788946635039555171258713859937707082663749405806620167379667016752039423914544529354749332402165189354159476158175567572793602049913408653978843082421217344182421041075302117554475872543228099723289003322019094961657150194595687208957926393858305153002826575857636273558272168226048698238982129161216662986715491819254962174364630568759625949043076189781018082566687820808290862274394219361610653567852058424555928073441974109724955466829037899712033032265081256510462486551712535244487969177915871187694382830618654024227365953769411208084411039427692364307477254658455909852157915533417102532434919107192362796021932167913647507324454647649261475170281874313183510640504603683373082713399284825408399406667023545962117576830462932017130217808356438027205049427402103561930141245464686820065477315967110473125005422427700843379513275177880047549343340874051704492938199559885279103239261311876381242344151692796706282421858383981652704083689215939915387547783491128753897380440182537038462635055440970428760499802927520588389611288131067514507316650750150556614800574266846537525782679183760552706328759774999405313773614897216660109153084829449531512626450694747099723409519544466493807547959510936264730323865369625743020072450870062939180509423436875191477705442513494153369283380723663062162051757633880956808004068763717958657909427390616250859144171129686917897811284807092980407346456969186782826952092927971757170236628383850506601487002432380928635040182171517963542955258264534920690027192254241282472478005476706265278351244841344134941093990574424867627200246185875307766112630865941266186023639839457524224429286829432600783582156437407557841139265822089517011529428604500799881684399297506540624019210199913474243165418311602243324753486097685265873926805898849290726777492226192663050989589570190695388236560368788761272170332161884479169907389197167962179982377416688703980186281959935472697953565039899795866627277053549540035133966326914850654423269489083781810605108485325368076930803933844714329611417800407380016672958639008321241875681747647730053704299150087586650454145593393038519083768035361169818620458293816635681086221576525235497051390927767600029234552308732489556872057308630112980735852962421329380709385525342026775180249553027126544506316528757378651938003652675286820227655302530930995784350107884560214605716357402825923259417456880027777916821982885394345928700799645696984849713387340315452783707722788516400931071791371767978106350790505099915909754828047132576114159386349938456524881426368186487094291040801468755046186932918080165277980260275193916598579916329431052234699754800138121904491034415266112462143823320173865635885745626284306852517649569290345420260805066703763894208530137269704701813774838438366094890892578256965588235944143983188826543135549435537234245918332929324602415572416723152655648046013036597827667980354929112855453791578274278800641309711049558782462301463153100455539364581540995871428568547561573882760104388388630335747609595512579874379666650725580879927808837547282304490347909413242792318884540330378021026306625376162731390760254420652841014836054687533988500167170581700688780589598366484847203028573942426973785116434615835756342430673061054132724725610742517629215526475244221127991813801823566753329134932189028187931060873323194849790675511092515348684756885584991038006007823052809306316323814011555631982729661164756849437941157171633689113246549740987390624127943240242971318628223474796717875687422356410918432781119771785419238417355439646146541974166786507508063446382106111676636482543251967949843923317414561424321392358189758173171913862366976324231460317739467738540344972775046369536675666186366947043651876477953965101419868815295320417680860509112516395411217131814787468774640916496618741718028492503086535328174557042232531059532101130435722494845607684023351041730196390817813000381599680150348961186707443090701771745359444058205094877794823585959666300087245158289521986942959320298719725284732791301352530179730046175894011011658543235108812282550542577512000022671969469077833606163633900637760145576511833118964985014382809231718217722905620750314768119012280453022142517304292233015031784718857708240141475342122712620072955305269989266566598726924494716843635235971537451437469330173091340096418026366420509892253367505542593144227856780493253440190878386928116883730728957239584365199994851781664349555994937344883254030834173387206885966393158871502241162302137508299911370144058412494567196347279621573521486631206319776233077537943968789801608857559968647598129934524788826507206760451403014839693291519751767543275141127277761054285178216469017744387687926495644603375289132268638790604088925047911900349867315830355903016316514898412543046089344872301746478982278920310752214936366031187857658300320688928326903524544329356591517550660090671718939856859007832247965964292551552913306842146205747356967287489426572240614008688654500012733519820132582085311705737693918331612244752180660286294432300715692064562647312814029054070526721115962241323349676486682995204640588945124444006341243106922098435668404652353169686918701780824443636580269852036472956060984698660570363564691480705263301772818321634414849562867636714827681895525010475194147726664232303448430769279934945438776115134499252047910506025240894295431074633210841272945636562208493239936361502842945832939971185770468423885906054683639770394232055229151119555409271333214566293342200588717010131690338964580506340021672828768075015473410945048389861744142426000736913372072325603779977833898709300628981256239085815143069508075068708137879805639105975131624423807827723395527233102958240813072736957777847235233614954276794748120860633312221032034116812009033542758246319103772863793237027953283212049805650041976213470435348909962439776639842425694118959898703117585229014514640152603653523501195109236633123021064492232035335040830016235061341046017667174035573963000995834210907663651520623716131110115598132374010555098009510731536136795296238905774075584959361350193563295165692533394834667449405142451401687093326086791700552753902052292375438604872847368627636203765556204672017529978347523694833563557280054709030834294417601555920005274060847231212524435974924875700441167913194978811362780944797169430950181383155301161199278383997955823110685246311571016471998228824405866437027041831930029443945258479129849805785900075155836545904459011187149877080303883831218296511487841412824852532893531692958168570129074350968451298041476893340471036953348841499526780315843441412394961214036638374306578810002089741662849038244437835702467859810156561276258654281110670968966748609644504951815396940801473178870395735270265390368202953945882817262823399522563300134297292958146649890358428005293995275747209404212691943225050530437393475883086466075731525155244890194871647679810239737925147081869260396412669136840542035315434978035393013237476118162181168603077004312596440879813625778640271941021428919392284927108323687215236528958160034530050051598928382209280711965900477100063113623632239843835382449691517099160145414759517187955121975443621524440973999353613847561798032770407049399624268259323225052364642909976115616510012328309209549970064653331321377434986042264273419853414099972919430726418312431308357117910472071049765202493807976045356732631292650172184521793088981467886353787161929713620296403442002869649556104678132502317459911071126461185040347491859039010961334979444890049758098413551837374828659305051606761592640394625521366297501270514599051031949780635216748700472765681674072496698761980123237041677178907760790559071260445108190367009382763406931468775141552480357695723129975196552405478197760052551230812685286584428952526594340719895166733745650878202424480749994676388219108614455524814426844615505296212221509765589246016151836289891153311672555233982185204360999899013079032938573900002467966705288585039968092027783336331532071303118080524143078992751308894702134792934185134992492044173463412444993903054843004145955269791462102368513511837268003893549230860043384547674050794747848624304951967425892582540666332207482710529254807759995258794531485968000528355025572210612127264280462170284107531812686935214515842276430497097722074284809120398342206529630605648288242898439223164488436315308400253089275024809565262301297503989666099258380393775329050717005028024323273064951081228011479140031527370506995083164662633533886690134365324359741964122708808771124887642843679697614709138022791177966333356148579748884276498958506680214117673810315358575778468391305616894197390431578834738596784646546749838258819634596790491547155226904589863981460036980903837052382210068060516557220249594840280796414734262842547285636756384513211028957416260729551570137651151122226923501939337187146260329900367247479606083507120678202878756076726295412072035167305543583966750994873090801333686367276028551457837856755066942594898202486499572735156182625069561832395254591962011006434224963146111154239184873340225115993507062676743149734496269663335983547541722801162499330729304132274379528786088835302639534333859987738961204448532715188451318656355199281494222603947835211446325261799573387387644132422861995136853349623536771491887709787202935409205913976548314057425530577785896107789693697976551514677323315323188567648455578639694085972562317490263532390991420317413818781333471379710151132087142602071398323164401985689542636336688013853783843974198481381649594908965683336603546684271625305891281614671816184366092126597159444860914296654580162461572693915085680411127112906468889149373491148170625452033671054030040403132793781959601150631520882425518895637573154887191407312543367915171336423816589634379001904619484043308166453716663356598362235891813548726746825458482905492313295931879230116228975660255554610821921297250552507652525075782243867700593674377401288915617804123161685756576880657310183286765993209707365725461191705427988735903896945898176106811280356129256638116185546668001872944257953651509233277426610678094488451091060815008175204454239863261942562916539648034182777827411139307951301769145221775076508615804056410148152651312282874473126289836957034252040149328631882686024033800393998621291427574356337278293993319512433407685223673789702062993897008510777205109521949664322334772047314835670643273242440769573742596745043953807039663729126640702718546325194238430523930604512653431014120808906779905657916158820005719739675096850596532874048806798227014393799484221551017671874459205273008960459391829683229277232032300177856438194020871092521455619713335259225150518429880186243391385368084931631961565812568510563745639030420991270064136887409248320427324157074785610567578210684805005949334353600011876087230124586190973383202834483766119754349836246512266871902437561648362343459494869912715645920515915673967247717020384783556703756057568620245235049496273406244977485990696545660089302826613384542408374609983764547854316990726092412446690672737342171646040344289456990988901254778723020879442682120512875192529769624331214434206244770041830882518756846154047266705836956863104483026379721773423981273930493610315051135334026277522845063368774720213583996853113773888689674783328800059019787003279649653786153688089131673113582428624338830167420925772109178139192982455395864394839686539877784095562471137453958417571446935581790651900314255187768700982747509910526140645528977194644926816881949442880569099108638296546923119425340206326015771529659522659216196395747296962860098521996071039609703224608359455990389087215251432152966596126335519154138538062354695705433941228851536490437417975147215562230677158801138457568428825691158630886917712843078289603804415797655401653876639043219655625715172051130467039991329860171624202564375025475269595219052520977547199322697277796899984740298929763224242462042213664892883645285184108144148276013206597904413001344626409363712591702546066402727445723653441004062232629800126443115811744413019907397183550298059268647397714499347210197359172870213141383105285979722030462771730062896132052640398023344348297859415622393021041318215038444104358554896032450278442980412529786307957726222371052550450887217580488206288859500168851310165139863187480919665939557221053652915914990484950373828986054877963484967319377511650582800422117603680227030006313326604761701380093699055957059424078267861026282923417812019609217918796255026810740415509986178949363552929929718954542133048842332669640581932987932059544419967440687018007373822063693219397974100247027025834935615005690501965069307031448868970805640219093704254552409147313677599472269285036271004972026603305165859986001762157093280029711637248099434549302276792673804668315174152783820422331774653401292928071647249442649895649492007732671748075717480970158149647109675073940057735127150164099895639789718788700339492747835308288726461366408044136815849295954093858282748347183856346960213938966679851098261903634030682653022503585201359327154767980230028669101450007861915301365082586838966573833768747262794910053532908388185374180378445290009587170331846569371157679370638930892586447023017249756005144067125739005704157589690774591115479566911482107847667661614449206493073395498642353474468283559556202715354774704654520684574251324361920583357631070938995711069529877212250454168787757742294899020231074563787913585965394783514225885709448038708332519205466833475212387479484313010551158981395340252691882622260613051161738365349631374990958820143423084241527325905816657466305854890985876639259276300264119564158788407882651113155854302343351547288666733321624265353255990009515006940578399069801495411116329520565988447891566509315791245334926374974267657760490352620859641731885713583671566080516440791407281589403626990040633779729412420320477796817227168522088376085972997466528251162382164108241247899292818972787789048952853348049411862037258381924219839750837868394884935799479723256631793341334770297827036611183462510677910704204563490270240778223231655723517164710311608218025682772028712120010401996292284440033099599268292600449714753444196987620288064058127089688017709568065613009815509346569199424724472191165620651288359737150876993615063349139274244029945417539475268755698326480012485695577372358202996412179271023041869283187817731757617776255372129825024121835765594683866576125790205553008130745600291155350972616439330835353869904353695911466965697531933615844181673339807506174348353503774466008171729118383462068996182375418891772480526693480587428866328877008672857824481405279005349077363855858619826629796781231199794588488233374688734584708818463377682736998412163551037897840939985714386596111109078150827251170889434760930684959377885895573674313621411067130082734981758650465629104352132692133650112046886304394447976352982093990215475230113552658340671509580852765821442396467916595604216379055609737591913537056792980300908040352671723565799925683301235833050323500057978103392776133970824191376430019444837296866208902651615274071527903377009795763485379037024933792212748923294138635696648054221758197779815928267624985350950006031372438694872865943679022658548915073833946943281099960788442883311886490213980494049355936503330211702115453554264500004039478468423982424660451983066106555850934348068005696479355102474103985754015768911677514640240252714799774231251043041962556202632738602660354736604153945004096817446312539766629065269444083193381444265422188027814580386004149537459581257227093363466155379296894749204567210807444760956357659374693012856162290115170711073118590811869268058796277308329450544946082212460039985956685614123912911479276426801245225543021873333154127446653263542284439559700541218811210953303108924316842240886004060744364680816580469207727792272826323914980372436215436829162395290065517949390355515238119340822414409194738256987348858322124344076860813829692348216286599351007317298894893924778170776545976596638129017126534689650968027049450276206011780183633497403259474409212808097094888927361907145206778532421812000879474701658488563769632034637797538034787300562190136772413440720862689033914236872596986081829269559236765915625038135818671860913489637671965589745090673022259880315338289718647774879187859925453993427539313441614871892197529754579426318794405799140817098706480629369522139896254125150231316081845684443960053316082456086933178697025663544455762381858002195174789898075327541007917816129417944046111424311161801522481915165418392947053729256163740685178606873233808843793461455614349578103847663395230371160567837460688059375228162019523034766720365587532131229159375848910389885005560330205209541580445728067677501770021316456660385897885867588789366313150373080334294007506139646638416984859170061561528264815259797578012931212234956989666188879042196350183639013417039181579243042352030639795150973475371609806962393427562903217626751438463291826611606466973129896121218997322818864427990245552191459354231566995674385431014099349740205888799500735628606902224039538693390427642306200596886252793942505371241589610266404878456579316591580300205720854545465007078683787529540662981581297928556034139196205717440420345087766642208646803052138402994178979780950415620466779308669120867432471976304317806739804147653275280603461642742205743812942957408034375750916276669266123267921258254941840396066014942375933123540618060484668852582011301552177058624320131683303541410599488597543337459685843694016559737206278088325647696846174790473529012548879550384823816235423324034248132741931462527017590756369932745977900403769199843182202822174428112470405088399618004950380163975265633739116238441149310008411390687937152728328979854749378699776807297647665968333011185261685848689373943049621188693932449940711860581697610353545211529951813469651279356216880288247102594242831169560475057382199841771919703973401061807281685662041177774386760586271869795450492383234059261788376247253591933365808991239628583443387317438161948021141795770550368551146406245541969876981443352133629555983744398670150762540510339939426541564642848787024363068638962823228276572296442518097327313491428849191114634283331290508806315874949723963841121236723293030711014070728630465760839712735204367067271463099498742689898370279689959049746125196786798731034897547205802370020988734569715634898405608483295262510829413394029420578551826349115113149880336457260911267885900832325025448815774750624704634133838483039253179466405789427459487182978760811180907548091449551251530261813912323773134432695997757758329428801659510649366381423124502926070579230397104843343013177235848682416498713956304400006967233870666380841182341212877344501673921668785471292628874689279658961084318155185284463366799472800710925090383708775198252121850001248429209997113797497465037756182724457257969029911959679076223350493540859287902223447019326080963022178485703148575881129118056298291266281244531071427885658976434040486310513812815401934811134122622916259770075838213608109885963792067184474778277308877499769550070791860344325193125359707297506734679515554974614020363442458009924824959344443588825499203988829084992606703401644668761763663882477928590571140726880390279708569493056867085800735024528149975062455807923598283993703920244801217830624914993588994403300371241127350901845349080605783518395770856112486676590623807396818694302058302049689446736830839317708038355014251987539164979589716572255157273613201950594993522004793635010916164297143052746647212550738754286540680472873587088855622614844124272477090014408511062234453524295329081276015194820890697501607768648680725083165565510127305860770014336778100915348535434263254838855494236381484397956937228048449542214022535943410843521975900174679977883195356294938135796522002744505985560048638800286312972971615046499976324717618623110265373792611349743940079080063212102681028776298192231630123405823733281037917647398361680607378841642862695511637286223135450214943134802832089760481835889213028999039935712712788783501548642965527388783659044424863971813671143232909527036760241689810144708504256418301098287936792959820791662153306572318205046714159736352375279969960119614521119949144045187218844564977844554674003615695290117866094279616238131849944845159584083529905679146632680794764501024381206969860293469236537349077250531080754968508344786161405065430775176885254904850345384843640455068249491485812417097682743284937256509214505356170347246230325878929467739603757597030700490518321932150617242351229180533957963604135860525509054951921380103265738121764962668525173361253917973502776688329373094337091302866525429812955265749025877419116210924938331889036731508303748865494039371881536782440591925004583594335912980460769213196945168629536767402461036448140286520721926159497632437306415322664645363871858729570095972151931048991557517519240439059196797542582113570993514340459560037792379349436317510692547434518949082800299670941500830365354254906393089069574718346780660754255045226396655086191008539468721754857440734319800319284235636067321551574357156595979576581639694189492493668151567027075154457836401286057724052568590511785561706657623815523482793663185983644244540630937314205668393539968745550859199071402715852575108170383431698689821761102520076150745032982437064975004012211282135912513204066096057275208401896027282301882993309305254825740359828672220796629850499513954232308807385221635806010969648546632762073306273059907665444144002592699462581687404235279001991170593147777155814290504678104456926126038770451885297918432080958361832539299644651066800533879135984345206389242631756592183033176776038819465876268420937248180361114034385858953238802835374525337315258600971434040469747891342294779732382518692933754530780962682826121876796328582089748375209240670615804083950220433027474686053727081722903796656971255447320693686678483196814951147962154813127655800942244329529386895445398061016029651216016703151128088027534798300400081100601404243320368614677779294414282216079794913267391014431434324165970181778419495379961127067168086953650196874798286774586493853564750388147280869437464469685208774574793643793324351244937651301831415359494059797432690708056608885994288296517248225787819236194070474186766628849266336340179717676896375422413530671765038759545556455860735707628235087039305122611244399039515756238738966880066886028160114625913518096527943736689952234849608065284190460593596901921201643710323238158517976769097858786439116924584356223334309783942046423765488155508082541688639223250010121542377836469193411445004038873462080990823879968914609182835239622929120622213107724621922744270069486080478986406119760055455934278721731508124500567199912488030037102397527109512541302960760513360297148187025465369181909690942436376065650994715010289343312906297629514984580690618606905877380462701535725497349150822472515753287008207379026710792710328747264428384581231945602499507347010633863887711166077325812060518997463317348116039853641733657735926837230144575501764969810623010975921020815167387766302006312655524350332459806129216705747675884798698906572689058251728660394396388819674057234579384121245924405927083980628192497975343189368438082260515569816753280998873700474752087114775397111261430235082451417709020902495949022434165308410879077711901997036498047927402656564238515583133429357914617612820789759068616339266863619713559534167868185999396823028410827262086762257466900245314325240074092581848901414299571275775337585673565421820061382255090788159103654349295445006001325049983631899500107003155108297465769422713488885302488745882587684044769933395511588730078384438923452856897555922979387587878295577906911387723473983400415266581542133537267866404012125513190827991114085405912037110115818245990767771943716335604407600141439859831663649445001503641432207803519121944212372957478947272056219929055237450222722755058755638261175555262679758791958427130936721975676380949250651650993363236561585179832209378839601660615926635889748469332397544423185879307737528804462085321203112441018870569520502605870691536213083803668887609194438154522932849988200879686068071325122338560854351880647933864065954704441780935490617870308679491896819329076971979357637281293559246242993116833691797003743400392665923115806446544867165629146215094488058037295026819681143880153380714320414939437354298519859589100625259294838008991753937888049131878791674405588611677345667404629764959291864588758497404469701398334185394666457315292897565268869742305938845027413343431168326285596342060048981206025345964436193703928583847809619019755568960401932260338837910965033208383008009614707622188283672981073135376273832989642483228855861019942672842753040873282978793222362799378480127973849034008013381852182423191855138633779966316681372460631053502523116909679379148701518088542008388820666197248263529481742167688949778444571539179330648359255618756021827713587675928283911542553044622801657551063478587798017972370208080967657735286086140341711536433434859966338486516623237546314726730059476215264216465592511952584301135218357163309892581132608231226207042288599874776570982916955750392893423535039768299192364991905117405246446687367042973531323807009544060494156177792232636857082264823644070760420225442872854543159850880962695351991682388861144024172898531308518452613863160347681151240538504531859387747161175541985284485140579504627152496552894103251072254323050759453748305294338740719980590153857951868685380322645428950515830505444579912078781770538625137380360597000813293261971731964302087804174382377623490913466018830666970778975504658159495648796764181351512279813670800376946393175413951417962278975608274462104577123838180179782171943300233648959379380734547563939379563620882206781283062598222754099746374830898603837791495833899655914983690490580034021175439483385115543722075831026556476650290688101873943289566993043890481637961215585045328892190406413546680977614351981411505650154515769233897589259989778986217135138796703985733225017409612795382972843149542216742180564265056555993256787368055359486119701924850515564707193345847474942641864571253621449597389181680812546133852057066442626118625009430066198419197595005833122539059423947787543147026895594310480806581621231876452268842159086109998707389787348893428847064054709056682328907511509560939089552748778799364701815833574744902748505688468571049049254697077589048539810603932160907526770695639428202995036956721943412430543903128570169070458529142058977924842928943789078929318566754504764869838918344118414034515759906844841316970239451335915535986372911208930238012727606139082708283243820876625070047531202910815573883714381014224433053316559968113446566592070161349801400100831216686287797408731458297350488811677428323787995609857261100304898337049171482740708984462881727150626926799823307482090562912208147220111003703787435445570400599635690483469500860747363058279594814898510773097382254237338424807316890140653505511929005756033655493542205350654009321210866056106006731252316012170400350116381381940612669583522991240458190917033359208582286214047388355815821708886082609135477737448790233394808716959714638890605826152794524099108604712352028758488929068158204858002119456055815980625708400961016941307900132391205972410017359332870487651752638563271762125824987059566580766425430255062175982525071958465044927898274958071823040056229200588182104037909225407084553541084164970285645816014584270034407169928348474369049307497656250896220410656926464473654647909673900175758567717777845531069209282244226689944013310697166194426706020581706794163474520662637263531874166264312931391175573802625003382678679393982292377122442639343886529624755414841277129746523370255590022893924464222566044324192788976627690085533439209285262659188348142112431639735968044058071305070539273481051705352752815304568977708529266025836172129231017489761001544372835568421124614748349614019496986975979353703491237521329771842519885410488161074088691614086951056944084478825872288022450572401166748904191861531993452896652536659487077187379516439314035946684286555185326094586836461819146735579567967258401349110890040919024401461444061608882508435970248339615763539529674542636182440002828586154590756043868950786741670570381209075888961628533126876452462201227410502097565557813505723605903087056788504812738550091496420763085705920403266477604758346622891897078892470952581970870144057290777867699129425763390842933339839604423881156231663441306022379145997221842579660452309147213114502197218628242615976873575315263850623132027401213218636878724029012002323035214379850176875522223133948543525950051701941443226619142398414378328868862322874474105526113518438493929101353433405961584528936805443864811592776546298940630841624272984623104559375134291742610880732471123254864777085281801859583967858138420587518634498159838028474179530364067768975794710687677318188860222774262984124492561741905225471595394657983360144705288789854471873741960944111101571311915316552467892937167815023927121571435191621854700678907485168293846299016605807587685167143605124534101480146546133261953014904102682181406032784759800571317355166506485038421915985597005073608677898900858543400936904821379660083482129278211531910457168478349004603345150725540002361058232858517454235540149331799338111659575399819737296785660848452640435003175137904139407995290217893207727128567285722973941739325257329638368557833062098540595176236489852755489552702845526979652492184736487659792857623064919419661249726458460007598781947482261503404936096950678916517533513931621336982202166586059553693069824716918424196086876608198586419519656246322147028933377963163836932274241401976399796836534294830486795765338711852292584214226941601916419579785164321355438887653854186993178457896298693940386127524938964149611444096423664312665857862240139512207028790004269556112485632302306638839159831974224574963971557506587708747657029167753224171260652111351207867468659026906619623806529916364261973733103384655708494507023029326815539664490491669277592858341630272045304368063717734376943025415801151565055501679917952868442830015115116656356899643138023237947067174230475335365419010305720167887561544049388518465143922027020100807131884766354277592649391090684129970199715905997257693520070343365553662423739326208473604239318464575612736762379388664858460894509707065384360033450452808739703246136474582829535405732612547598843489518343416545653443600942266929757864168118541453927779598692226346878331935792686565201923896780666459904180224188833148350832708934006998224247325514186747491775760989123230093073365099368070581249517094932689888202308436850929257713657576737438098797538912898966484014053994861361668799064038784889163750781069211703966021630565953624291481495226047164368365269779181883366690179028261416884624029212930406530083400078073260922262347225450473245347020506718135711563870827786227547317204510038150153672046646075263552076351610440631299296276864670201499042003637934121825580665766149834235038532684482042988564893180612881389634526977940033292865338474190618761401592004207522101625928740196680416167603887027891832333317756220994519701088898441375836389091052919681656112849307713525608845678822235912407017021232556562477762280032678386759310710249861138899418129746279497459966425937709867562640008269258001544121364235795308642202649349600345441242342156635887854438106311429038010631662187240731002962056355631099742819237992020178538034645966707975444312081821014930654812386443631265549706933008646129434173143284163623859044215163056672602146641679543645057936094475646938159393315090718593747956936328372779855352659718834765518950245374099113181687922650599965248503755803307813421426482105377942345058765566807657056702245109744454548002676960701377174343003271260630395657390325084311384958330055589500674457562326223642633747434716435057833006204722703178778449566117312090740708803389906157116520459034486183471141088332957918900904593702060148884791528109718872893966632378665069175562549150477147448744537995991007192926385856793506026478994863124170422512493522824354643142819403345061613256921301482023884685872192739403435911668711450406212156558005325296343599544536602959717925311786641560408179027814863173196516927556952168724185659496239389892144236838076295376323402540144504249145349826324385916825006632197204205958670394547552104875900978562380144705004681862891435965367954257404867166488624651220624246800588278850989962259582474025364678223156669935341591729475238505760276361669412586419095638089687118470402407933665419207474045608359479869969556400879194826555360685256973315491955809389658519247550012878132459197539061228800618237833192444807703675101909137099007884946664826527457576277579458827472145995793091221037388081959699962765393355694899426193907598212655687044882220540063674110772310331208645450958227049436282289087719035816627609716453510479694282427719521731750440722037730633362307924170903038424182298896074326758456964071249579508792760935781428803834547257075415052440025078461009175060932618249616930349028525360869857272326154488655840132952208101042237191797302107866272837675285129713358904852526283729993388503800178134786597036482824390693596112365625902111387938694288061850091265290126571793569271477399551757835404728454714411749847609035333806783190811321535871510299990150250876608798499547647021117139754739268447163018639598131403306211227612634833285431614697875667459719818058257136474822016031440642192134944843357435340425942068813526360561854485666306348082716518833229988994689109115036234955180242926974183403123498204243221103723558905862217945189573629832818626376745480814904081125663304707854133143827222395148069357358700532937299108813198929348242239747881143132500048368980742290539793598473177013420335862314148177494588296940159805617591124248037657945949986686635143695385356149832339505493444560362619433248244827777445762800575369097848596896170328701441770534879819040456354449217196071405241993647643490630925195396021142761163039992910037076853084037350596879801286935478129774812024247025604959924338921949537612836874210165918558233948670629735759050752820406857983211042809622861597510793051983208921207469515327157055809181438059701481994608329719315783244486001574624941804462624108978240155667777681630291411063955069222482789244810346518447058157965871307961834058808262875257076144750265320139681766397066008463466763845899424751272783849899144643877906334760701674677296547237447653606813255974351928286267577832182920647484516846826303788209337957635309685776114516408696154910610605755366996911211344570033548775898461906086299390041502344454116190089880384402279260376331033318273184237586320942528471920292327408144608452908006642578456391301104436679305097335118965250580412959065855625700344820209700117297327471871185834368542851956480878427352140693846372646938714890944814054541294362933421582448775734101547415421033436916395557423038472643820056425966978423936373179299023370096350266252603857750403215893138606865443189794332627772120261119786894823098176509549614833843322014520590443051503135411868667072936411409746152205373208058546500296687889775510706125884860471501890487995670102722008596286692296736434482895775278839837367587908154532573185010515359253926801578511722485806030715978021633335384675450438997668566906461158091011210868802097057038192618409220396644275758605120903522882562197018532465115692402477895338722230990802948077179979221519341563239393999014482483739933860034402088048570407672609084440410287901369981108369948494226259455770329309646331837632575468592639376809290865286284033858046336224304941653722999827557828132368089777025688061875674024590318960630561390551121604100713664044546602587000429179261793673543140745835165443565945865113317021738674973892933714764135176544029924154376885956803332204935181025629494198284057628988442785996330572592548623886528145526167744102054106680120666231345580785450375069887828212486948472711916589882776412822607337314603860968514083307519440143326571593790502324261949001060761519465896901668734245923236734471849414955787662530042660097821564157013574062839848694348601590548036288013616281831908751642052220559457986502591578370208875789485216753941467288213014927784291157478667826406641627994959710133799683590873618819180587933337522860422047070674434764689070479689385149510060896660960823767846758518051990897481383734893963257737796643913573441539345912300951773500510617848217599591315631119494948422777107871727932393620529370180003384776264249912518114658707309041341381229761775995533447603282837565952136124971359722446251782546962501094548487315867375372754546388745058909431398812547774006610575535492066195060099529476049440578257843699919222765061878741306654326112647163433323403837251704511816277342908149095563796908030250948120075053014803463731051220220829281933554432945949236960436558485477580940000112302423975289994413086335544789503626948352569217695313871214688433592453921201965746056816844902173209495403776667656221791957550123651349794003103011373816909355252070670461780404453779264497826084773941160902835144573150016205515031023775037673430345660133895881655297912662226416428254356572749994876493102938139659953046849556484481408374829807708413740702914050659840216814007487327735739493929563136704749908439340770737270471860644220459074535356378201703626753425997337375651548182747200296026259360456850933460547664320209687153418262912376984217623757063884983037335639518061645146241752962275820765925835092540303662426995749556079807576249587459237333926191937765389355545097744299969436616727278567930544359879829537696920214675311832756587747630674112315662379449671623965755862037661564754130655221764292841262854332120390433298650859420585842719358140073186986549207509510780655593906197487144882977712465502957489674302282279222276386484061227237285990214095356180176823143921925342394075084471606479417420364826542038216576882292852300853794995020153503399845419705117437117700706681073421533128108908666700990950785309340720848780574125260510469953415829155788572239142157182241272746438152029343139214392223442836084841424397669629627225571457296748042162896370108053073756479970914090502732575091042964691914886520007035344350002116312571202554971895734788019085567504341128850352031094705364904949690951288837982898066484212079139319422996425491411058241568911363031451282949792821432300545883883995977793588406828667070723574460354643268812748346670598873759541924442540628884903758129727590586091350160012204278095424783491913126267340632850696576651393720671395464344742132992071992611255565164166502295553779978384426374505090068232510924599504238630834491122746263292835556705820571768859736042621940744045487046510732274685214626169362109893546379932710626835139832672466334828442940533198429306211668594183845861395269196797885506032638986899566954247986739904027672064624949536072698295363215998046348168019332237720180173951060293665021334989159816597168660635484575213748252898568402003483154501471847171084054438243342938183417220596224927086983957270578539586257412999504045624051581925728472486595369727193018787037385978314772646619593734510009449926876062690492558051883216578547098384128500671822883101107828501639948799326333545557491796324976054694452585372726495768201657725875200290636342558885338319350814739341757825027078937464124746458109371549406342536695319449881900431196886668431944510712793650116820684173115649827057393933031836695330387229861855987464213677684117389828990145350524356723836245406713522111403272533551306657670427396707177522998297997651233275137906745169842898658890662657255715038678323962029001204018804066200003117661655023368541469734425337836191982643959546602891414208355164115279549205333366305304403025794874578539044928411170676751309679217661941649251138301559621494357722965599036940563646342189265335835849584512524198238921553945841755828664267095457402937607823839963916132768078708219237158061778009832161376809122699711620993081370750920723912630310495545493417872110117234330127429368795951020941903658043898133267182020829470894105159001632819631021530316996140202078849063295656496104662290662772153519751054109110400658441906059816401320692813804688883612651404171759166666848281155713766462931343339672029239569606316279100639145491189704495480120740915011078920443864852273113837389631050259416728263572842484130476254015513791555177389801539941644976904507379265127337091543877529746949586320559701464337979748531944519411941302205488650486299460946284535985488706032837168032843228825357748205126982470751059361227361164236267333706845397718768766901755951530345358971322572698489028166570395519147316168430802658551374702900175007193637087611264661396615309610288282424780611050715838234108044493753914611706115046629949249649821494076676787638058006856702180353505298809429433017152330751066774943005585859448571336998241197366969394983584537727348701820373631924814169606402113388441125961558456959094272604609722060311131249064159646031150785428456253977517671004924634890601501435666324065482850169627709621503134451997220432633995015223146353354517963602059860253184868162783636020063965479439223643025673200608206263031115440536970894177786390395983590909541033077779460756439328587819678895396450664019736010058029455356956937945307731456349944204170203641840129524874610582948764533486851662463591270854936535666923959154657918907399244186306423455220840960704197478105639559826122524120342244933649742490664705720046308085034917087845432289556984088102179591336749505288968378996355194170485054655176896990340402365441772553710680618648928041065040289315270371576809757789892119228644305244815813412744071681480964091392183166603885154534925700393159386833024174354195677233192903093111204025459258006514929065783013814989732974254418765354366425540670104466175024315513316132709849728110841845442702608406439157722141553316468411274548480109934133271960867147799385093691319936825744742841133301667963686885140014097468381783709166904125833267235064305570874946586707131837342124102657384335655427417524486907628183862677824093045206590995878218236998265312914901368005404427373509847253740567027704468410764631228500240002032872406588262030867371779305273037223753505707511729978698664059561761156863288122896439854545436893079150718343426342020129905914675787742765055920233287580111246220697413553550550393697219849688402047971839289015577496095117966984181283406886455650775669131423211592042336828872170251785818932289793427921585607272232743899860188467627280753268479121935913407841027232147514675192050121350805342338870943166023943843929786807380503917749182689305556007488326725167900172038867528795316870465517328503881642014359847714643163837588071948351530272484958043484939904410618284171041751338638901578575508920297155757251588554878314783035746804246342653619451789796831815540123658043897103847481484010343443122481446977210172973298610659050216709914728032614132708535343658770687114094929588221614372357034887239631702980935016978326218248001636153512760524935592411565849278594329070810968633589412755220927502753459203743985102821419798068679989296216919621936717946215885488299573781664720257055978643789088373273244341799280378619462780371783351441053958423910875610731502657553641397534372890830668821706942296176894579413746492459984313211981724113176089313477239863685763562812390523548385916523739988436750260274314739591029033379028994289715559360241485210665806579500070513092823451592970076680987360458626389017476432095864500840143537065016375885790194042370717689373950133127031436260251682137797672734660716385059773659502241614833932563062531223567613079064150038755866880093877092137101993491839080047002003936434780530658192357487921194989825785481588860063984998958480184137676973955746467879856005279098375644594275511002567423283845764849170503118567941084919404787615865360954152292645491817838033365588623872820293483288803995506560756040596728178320249970905771027088340507135636231645016598030270056587932643363970605777546199777861851502842012754724901069167239889589226349986341660660937068296135195057460513808789939526048448592571778332568668837250912388601196811259967168669633779262388473056972771106934166464657758427609755600674004200379309157229315514961820263326204367971817490468594112310045260633020417314566912022272757118441409410267095397780896285976336867483002286952031683726219370069338619225518684446586996315680070785937937953271058830490344736160438199139274482530019407799038003366945600228200892465641193128216113982088240061800405039153568106486658944551382622891462526817498193389366487206966937581068148132305774123734271873198975528488322180991939985539585914177573072972856372261476840135504317111103867425606553827948603517269113532210296947878608673337326518632353773196823962528654194008971596114863016009605234462722539186886376079825158400703893039833481572114391720538594970759648093819780273798035391963592781236443525429079190169035441642226920591976992425009442385597657202765767451818886105863185437672977799133378490027707673155578159440137901178683647214352193640422808580410846335766610863745921486967564345909586439285592501543245956152737208882901222935367040531845275643644182572840971478026414169135534105942511101538747502820981115568621134379530211002910020649585626496999508299901626036207363534360193829854671052804920197107004491351765514406835666733928662562570900454236909446939851373865215144020312238469568358982005204793949722484313149588496930479659318750951044604740416281214995618454708638924105413058932725522712525723053391740413454817831036769033075372417301012842665470613051451361209862268804678933499332959507863639932243371557854919468430601074299042977623141497924986083576736313055852818417016940977988481482336521767433411665499295435921451373429243583724182430254296990395909216480531270321042557368717093139236025179680519718034842848299957010170257035403226283474620012714908083381000602114526039228691026050197838759296965062070503400742996563299164160761179199748675074580153743981684432667992478758608135989025890371350842694493906683301997520515107276839585922931032866977431336205773051707436600570752656404914133427005507438693123093805531325663470934013656364001466830264269850766402628404381859895090254339748740277928193050165289436491059203806271021943519090526240820944007262971203272331747580437420698775330624746516408934732710890176044090610491572882060500173183572653812324223989063039557246140408915672705838281758822870345428990387204437046820239198278030333331053682086298935489419491782412413808402451378288736679405082673480316540293933522277975666139855243487870491607248688218365901984084541292687533892742812855036878683764455851380230427866363147765496498771920380123346502641999005705553245742837764726356707960737329801364416603523464260711717894420494518636535661779450700063306302033861949394227384428773188812575281372644176931677172255426282221406863870229763882451649324019165384925426140951715970354819303052677716151308567661702035191090739571220167332549021538678571813757786362381660286810545828206290984712759231696238056930435662243475885642153960395300838084381770354476763571706237314717118593993539950113260738163415203328939397648740548509643154375874555748398949529775134007838598479682113890066141089125732990804432053911677087995894028117094812656837867210152512704602075538620907506666364612289553263795843409995663906310008711502469521915390466842289758450491997324026028378153266725516849163906703642242042464604194235903900574288580842119768621214054876680106774936751371945624194130304864586900911375768487908779395776335534858333779305537605151914080767117353941116402500831121192330950010058063144688122814201853874810380736796170748225281161366240043182713261796635388224492157202476551051639854593904556763451523693619705204435647311839374935816463452652980973264688657509404628977657170481567974423582909788986227811327980722433708453801909130046028785642789654740344359994945244641747426613440216506532710979789263085808305161084324056276842351236619017105809784006891234879522082557350391440401937383546145581589525446059276797645597612418370637195771658380688113763152594801595696518503531672545941348674329320127750758536937569622449085375156147231175721058636740701665804416809428142351511750163968647800598555537398081087013178934308441195808438607468565897913988809510906057230823589567828401402881423565131616740197403354244920204705785255062736426271238569745398401875394813960440941699240756641380369864129482579249082612907768502489751621179254257580064812622402084837855984448790389031879454134533113869122958218434218057712179192299751737725720674410893897864647378382357363218950261483541853247157504184475648865725111718697577289791767725206679024220660791257706206650742513705973474373862187647304235110093747265754021493034070302840763663618696809225534718335251135092462759767513698672789323997741574903622756308088601580600558129569944447006856237167499855447700902574496476260124600684867083937466968084675051463907304864527414266275964721833707902457034575869598657741002672498338346945658238299758155999670873890125847551813236457695523050366081612339444383504087397430404947459219024347752231839026620399104304076992474334791871457522013335887053893057067900032724180202280903131684287493346920468328960155899222155116470881622586493880176931070126623990113033120736383687753880804428942026964378250437132117192050868346592426362359458031149303244709865714299243504325744614836070437469151891814060498724512741288172201231630743427008356714273262587964683867514614446981417576530670568821830906400841139016192025550911744592816663474269038756770895100086546930370370860564323027310599782390400747732807639604110658014790897469897961290961578965779701513375843321528783622161886524980390525854268293603727956221837900998335022990433736691392858907446362070830710638955561652064507391079874790652616767501900839070239400152423685142116175032329203864318864416316412887377292546404422543358822457468430122607844385968156121174566907815537549698586699221178038389772742481381215657162113092772371864404854819402072664576891285080463671484178566394449550644101921424531578216047994162128335773472326716958918870425250934353548499190974149797741742251826009444192194928293299068267037445271655489102552759226436789082911110627892085225286719721167465207028555767336198376808080402172928322830102572914873756533086296702987363170066319620176654916126666149883158001435372241255198998532189091085468523358330318104925796289352137322991660222536854177136578528614798288155469638792614074040930988430549140196855831844300489741185433450821792886742361238646507472297870591764429863405183610539283257951403826147118284117330095794774702665906195158487766980396474537945397201800932783715934377566643081512688870807495769949655627404269567485395692458495872820617674937313901215477072068353265238472721960378255190638927706373189110259705222803866481439665206929881332821902112126875575863869818495435769885228151487885103935543145051331761165729056023042901451277728327236925557786623153076553498725041237230827865409781902563992218085935439174952031852729318319139520522292174651916788266912891374294279324513352998806163910746314858494702891413928558726439736058508832899041897862178361181653715055584328595833156903999816586484438790617083043142126092361669419620047965276982336197419816787058161402606172130005689770870313935092138052613787798808862403345781361973654075247383623814249698833927769835861425117293337511803620022276813404520007855979888471334333918266425862102956191799670103198406916674149168146439059787643388722815323648071949443042029292968024596427646048888646524673942345596964354182351461184407107058983169966477328247430731606255422065333906868281272296250969972283136351631261424325801877898075044748472020504321452433061135053762048656151628214000898525452530230843112398580557253397787419902103877997499757783619182806190692665367246233637977131776970750139473905291936012456141412291282200343853054743687769674674119424415062142514512172009008305474677099711795104783086995053915543401322134949150485531580675777546100826839349119991925774778310264391653522310878746498580769764467108874478762786529134956885433332998524122610136581640600869894257376692988016009597455882702959134914868742243349672094519025236450153182247444709347173983665704934596119029327280337329144466767839495438077625713470257593534487346854983706787207714145499619041909564404860734626998674510693695233956769542421021961833410412702440611430956556728567548945211860829471379569073353365141657190333554101138451770750593116109747859725106113546447161486843092376248213518140769187177478993406741011179625284994105615120743248148841758321723889412118299830743069575992723182763548817582999755836142966827166804126805165851422302527436996859400170840915266367493755960714094228392373839481098942499606199586163254084623156793537850533782362842249937726794869579587465843686883534865993728609688557461429610307740390118318610539356357781626834671706123575460742754067611967104540922226366007388023172896778450408116606308563693561931034136418572198118938853476507871222380864987818613588144455974414504572528175256529239081695403431444700786289825124769905741256275619451248942852917081508177979763710755158434964553711892049920250963286640111030632843755310531016667851695305303140983778670443732582241758342894843416328428028211576642876886417472027463139938202185178386020284976872696087754429589080825786170472865308558874151783597071748713461551429206176352042567642453034143705874818120148525877016723495597210025754678947222516174718635562348924581691393323947104189234735717602117274159792130963489046018429039344523368880073580314239666279894269382107620785201769658688035589883964449890426609428704855036908916821734480141553688863982575033862588415537550411614775252271467234111600223892572932061847929179478489468252400628450310735315833084226702697010591649811022293972055951728089557597319021343629476967840610179066263653780518624982331547230881248775164115376382089564723275173329876945597384078127633929117574105257616982785154313891251629642297793763102780611263185886681459958913815817381921112997214905196059523749396969429427147432490180796879938376955268422066953526346441326911847365211079427604046383975558275429687749350784782430938189511857288445071944625438917596468112571890062121381022358098182369858492341296346250693527506169189259653120266072592209910336213342760554658713971550450446503827249910055667344921991316338215580916664748735811143747458317010707248731443756083681239278807476633270217333462454866149624527059191647871466340180251351263236676422466086628268591918372334023622382410647105154396535338127492324985384401420113618674898583972166032165711672152929387372628444161939319904480461601926696482612482585082247454969749253392415830720196607513258242393885327907628375424149431893280649735040831549244018640126013354764978342091536348028845742398781605430645881064455634076176428529112673879985224054754566369602876642256033921904634650191472135269064776521544866840274847505857968614696699579539882567386471246797379205914043194922520485953038530137758711312013707015185679466192851206006014664766699378222228855741109068655401849479368014234048936228660008884761857302536902283649755516932280687251303295900695749536538998526991132394133141578493282824013986712433970513809581398009213598647252118650068407554055628005802324294980376906690406133797027111586650044301229257025829702754502407445361356312665139033172464836741154752827460380881590759585583606980284185407982617773075317725443422285627736172562664005183343336729098370499216009442799382052451136860082758668274340037522745365425213954841695847129792216643004458269770794345087073352648430077160320629177177935896552815737520734133526282058953728857066510644027008978860372379708439271334766566518707349024284926812141723059726860079210479815662504875223254385543307402055411359396925809343470390276373120431124726076464263989884777376967137699377094736057447274740027655843200946601499334929392851322398667792286703666680998732849934391907600131940901097912324367811694111250800126800591989559384911140973866254360934173291148006396306499568496138329340749730600164574553469093159937019391830223428886480764547183476771413070813229963778789721907293775996705263501386550260389364971451821785960929019367812448964298022758336572231802239555487640466218170588545160374211573091542627094513365065744484017504368408618076177137876101032473539346154512158352575365652480967343837680732157823128463097668557543512235896683827635872502564256874936364190996283959794572410543736969152251702510655686388584455761996747174774593176396272063381370196004007443193079220550277978088596534634998319682141989778929831904263499053541302924097374121443781917868999964382379094435994177543793790993028321540257751844513115806616585032971105770195979400973791029860248183036516391144043649468634809752732445099013936563530909723354432147220256820243378742219959595250918968216456019589854736217512542708031561208615178351790013831369622142988562842473446807126578337750911915511804645683299965189548968362557249656161731891963577679115297940033261224081001979634838740986272922853904763246236751455706339901051248097824983779606188238712677062989379456010068235477720972679803579045534570567281897141626216182471343327943360955794057249967406228854316698453557439330142081711910261497197590212361506801991679067794874482151435636265745260989848654286453632412365566759280705940225399360017451724534856243842939800613199457687338214208284430418888355153123969773576297762676804978518913630409525208268717356493420173334789434916048761687662156231648770208566729641269211180474852077709020963029494400377826498441684279446623187634519232382780142728748751946645160181584571208585565287352513340116188795930327581927954328060465977030777988770122214452221480011019848979261487283759193985725723358866352911731375404524197715172264628265321376694138663285544783787007789901922072898789456283734776751980175366891041448979206403601917153597507575659146103059688053271408588231807327688191311077612936869929686229492833772646988080862778484894503789669369359837117835503208376347122924108903464373389752360569961478972171169138044816057413081119559426905173700056299592996718821561102784714229846176330326403186736443026873298345375168639497444793516934780917877717562139549130598596182877844824575991811947102686067303498685814445900406658302591673434346084684571130635783108262456284425450344084497495763208988711094027551114376740387936220583739198022232190388682808689766892218756769321486268173281456035931444326676529345152937303964910132410486261019867881210092371763946259889099165495223391031137924530663357361572663948565355221470919305453968910948119908960800899897095644214857535987550203525308420854514820772752527340336758750494454520016599954228184624214471006051000952727851459467002408242523530020379859271170298579559976936200601570624112079602041633638464746626786978970202726906648765819452768986725518953258430662761947667058008275691392805359888894435769574918538773223500652523038821310688591976390052274869843101529456353304166347787591511469701931990854471046699855883391333410958258955465701236437232693661808684223743618153201432464103338314339375046937319383368649515061810373338112913124807014629329408856079089449251241402968058878648542097783102215444492837318305394199981656005259264820223266917829795888814703525466003813607873315771637741920580523347528772203187515698763533200196629320394068202667624097946273558197310064226764278560836452194713681300605559862176703242299410632954458349649514226327772481665239580854975716553406894247960086896354481738462524315785968786236985666085575893020029188505839941059112677114954563101007311219541927460259105155570377605241649816161207095642297361592659175216427331395464322540025602624120411771427008032726349462235362308115833845979932819232442512880564108118652595321943224347657158635867251651788099175934749372302313625072781977534351923486457343524565340267496964383856902915733340122372095565940556400028389642125758979441054472687380707438079605733534394002443750747815634032034304336317531671815277005741147603725712663814608582573624093074415769566572508024789423397050869930088365868075673107773555874667339354222979057984184797130767910882613843572698049710507113660985340076051081541615618854757016206186305797379172299944470143356617361629557185316923575167145774850389347749061300327192805655464790182310622322224953023810838647930133581388718457602871586057958575014427784050539857834891746129612567274992522408192348494418474344430330206821181983680681891704059536450732696541772713791784928010528145724979126132350920171973665711935890101569713751151306399895546934608667310653438393695383133997839640616321664340755093275214265595078252434453643169417551451244419460600694833076531517169146195642302218309997158720548155554234443734104561100940479224079227062966700247916641665466806444226238385972783266610296303737715134211593964703602397439229825888885152854196077329068461993288176845740092769436099945320569826746680944617356229081382971798650817871778656819793508244221855999011407246288584022046407568522260339792179137242072447795018811750205211118706766789591832645714417216461239960431593706845023372123834728642676698336948461632455684647179047098624179084031707970643089720067722765718360212774873728184068202371955477744942173142801863197972757591145738311171450590097857900132180480694168252790721297596477737865616534712552793353516821732798921835001789538493359931966791113726997205204158221081864340332695562091059991363910686056667839955294961957897409900058852048318974313012399512617709741634809505102388403744248663156767114605226531635914351731698959053238427060596689415648990881737573939737752808239575463124468281588742922116939617665012762959281750218118262571702942489241320373539010546773095398521284315269142102055675187431748279499292941802452521673228056837919075953609621878414319144524197088444739819696229510776307543801144341750840191394759473250464559131200894077224238437611227526697910088024730755651168337498190929521278163407834845767921538271616200337398014480660812347140381831230256370232754373641313513741773672071048897222022630552377144240867495862986020406066955941976757253974698536774647486996384954333222754532999587314925178075982332898505533869068754383064729222134309829267792488200810352886452888682131004983883952133481390530003986045600610511083036291509798033201338892513075480589234538404021681194195153613662902400685456735011005263686183611049851642246050823444108379500514453131518079337438368274098353769377157089189637720689731199884708311850083050144886674129889501798410222206508471038969645490132851632738731625825132519688154555723554323480189636667495027603513671613701210386074897925908009811436981022034458037886262662492660770839767879118427941412811701318100339580639814956932504050453908864656947755671455869294957004514059148788489836728757786530498010176673946585670792466694151763700262064760191979642715825402312963716670541807506650107265302459531887240919808197254873019860749084369642602170394241551823145295499392189282342461777874490140515363049254412761507958045468802111649796472316838579628344949796405661589509312804455096429386868078482869786007520544205746175555409301484170065072438919418592468145633906478514445017916833882348028813153150023983563388377948615640552773003702602892072562040545310726640181322444412872583939449301395366425773131324161236446437570462730633796325011595095458154356211454173066869665147874923663514520522192160159018654823226541774529540288574557346536742863188614045801039364431236283595310571622833081269808691339519668590173406532562607360259871596183122293434673363149922009556612480002614961693182828122865014711250251240009509042100959618537451932593010448703361841336872494023860441156271695918500654247743102798832532690731591916294697965450991026112433853435787960402998470876170019687531319871176722827263572075453016011229907534870747182262954531874648422606265777149136994240958435282618528183668027512807214603162130425722462494402966950193385959668461547059941017719703259918892821485116366540991189636892893665885861923232554570256469508901440939138399826607349199124003400262425883393523619071891503528661438734590422530767387379827324126148239493733461375096116694473414713240237908684500399251545698093917061035330045295753525438067363280492619634186106259602563284297003871685031008365378138489917670297730826499194557036164491383472924594707476176317523045586895646323442505445590220170061058273893731605992819750119559834873710704474061334749514873934404366552631550672126448190822578087589263482881032025854026382291478880790303700556506972587165656960248286421683968047911790055683907887909102994525984227034416354752187644894835517544215514989480878135333241352470614123453168462824123689602569698033732090293392287416982885889490018692970539450130586767815713471184505619393010359266217438134434826960482416945486481229738656801554783182503208281773287912693180310074097593550320425262546578674298077042512830605033160949822403920087630870331575334504374420721777336343400369519732888806006900280906423405124406747212115702624631076722795275125619411815681643384664179689558882933804175997188565292125070966459019589142364699483154804584797462351053380843720162495115635121121552353423487706487569900757706894116972045164438242560450618008181925824978121281650734103555729324959270531351535227289022068226552416937370909457073975355850622145187635527113740633783297285810540646631725411708663313838680290329571478341247005479437621300385516283848276514580589708069568112756127347790538060108459430453062462769588997810679665313110026200604431055880372968445249169817441707081740670734304726512389954667062377778329842720230873181124380227982206452397914067327410637946282593589779719000839856946057612219532193722500849729780610068224020591017503539520712869255213527715834471947665460141780311159084333911734735753876139334879435820134431946231099771250408282408214939154319975216738676045563511905586356731799927795820737023162954917864572450944957048145759514151882198585759143972447528277640132483339702124257629118962938730215808693156053086185456782522294791839485786074044251537960049023130309367055177000474129212123104112969804147049886408868829089704840324115854228669943259344607428536264424335105046408626633865915200121049879016742668952811023112911617727435606944406906700577821345712106157966044039851336436698140159915681185951971208450214957655321305409298356595362988959279697431770148685263816069060640571447991549149785086090253541169093077525760828190031466698237578231339236098248401840592555273548043927159883106194665296777745032002538798854108875155825443028562424947709383250814853672141520308742814505969950454333853877317383022285669604470093302922074860682009118510680015716928044209115079806127171284715724104919781019336263017731667074711317786621450917782844224156585116707868434522425393169509963476755657390109690804316081600905367455477182080112753910673152934397096421298962557705049812449647305074555245165072141928535699654193403341255256613677654794200553558873630130304330290724728845113537815191159911868244968011353169430660317838867549234344682394194572502399000940921221051609269990230471945952451617455864630866349775334104592068712917054821604650692850290826780362606696269343256933828623489382078531898921039855961102838692474308616391734773120463188819326286291209875010145469599378028665052199492822085507075864021736100315625608468736274944895778452024399727741994459280596034675202366333838608706531580859323669326227237823889326718783649297558025159044178436293003605216538397309939536749870734110540814901774733255524293241204175726694959857748296221726476608862929126373743137731001879819652869032538637166668585446282970432523520577610875226554005511015905639453719015754935398879332172453274761070068764934801524986506931307837341038246182272403805490645147259883571232395828685246380570226864181014238190432578913152964376572633226670575477292655207708291141697111105291521906855415447304139795192396686296711861782235248844547204265472285768633254818227781777760416788442253649442005243318885338086714982914170361366053177046599722470360890539944958364754630406629466719992513663236769995882724144316792437639136091393390907132990702835812655945950775647195883885024177372898585170115737623106003284881724901801937213869727846910706631684798848136536325005497989005369725368327656824845449078274250430201507202737640173646376355140128635581984345557071926318752372235493551038620354303420102713079957542271787103848027305913626137105968479123278839603102178803680686084211329204284686702183503660643399227786307722657697203352760890256090640946250419285697919235050264091377372443968974437729043870333051620769439058331288541900992027944825918953183231715364255305194479520184692123797258569191034123537377099357840806165936836200969879983451771777242957055442217901906423866751842831561284281258480823633231124386353573964798138802172725573756537812448780408994401772237188326853925284855779656305965949610744819592218031853305934636592744488357280945484031912854540987992612291716701243686329995803583478905261009566922485452191335251692201762720398821325305924144646989087751483936409900749513941184854099849200476255498015738627457146632303520983352660075746518104388702598057098091606316170287836234860992821138810542971623211424402902384005654184886529761009901279897902970323831401297917255916503708709629721549046968347931021591097304385078787496342433485568259263744652713035476755300833567187005417499386915893532749538463893762390540999054036885834473415564657026024860986022796814100518673177348432022002697211256502576231152852697975138678795321985838101118473176522364276386574779135961313706260330499596113568131683823541708925307442622671170870784014691691886662521809218347615716449399673763819505515036046420931138234924600322465566803205835439461629803300473411339707909495950120173628938202453117051323775039422566431701133714212273948983031451177233058176207775402530876426715061624793057361514983484248077230425499904351332427560303347443676177415864063203450701433720091810802130709787659329588040961245974330224842778792164734080902355729620038019211417538772666332977526700737281767675902732276192820658819320048882799925411928184432411767673565879084106616289416175105508036683148972504183010602135389284442035581677684182014754492692342911983745877252374759268807409871987776787288881568112925552918816930384079298399643814559121866083852174904828299256684639997844961654324519590959477286358711563261944007783200788489576475842574570192694323479488486028281319539777959087899971039687326129186216241210350513844897348826897670027961134462943712793597189221165563031756782990525601218183760149931779070763291141252286379116418603282190869133303522358675240242260772083063369570771844582324840049871631512524077778260242731576492653212508806209355921955543884252629070072679929278421654771562715681493171859480597549211210951066800695884400236200239645771857596649570750432522544143717980152007876685102349979137085765894849629129152392835934963534813235296229321605182796093051002643235453425858387477121777490093625317632574776335527268086409759600609314966447974280727941091134005972653481179844851927162664751987746564529366944661610539622166525445174381531728442609035089086028762613454482937070816716689448913090623895052760781242076245959656617091209895832365304963335866681333470616723221050262190059979860738138594180250243744038369639789094059892739500992108459768056874083302580848983875147439946812217944847800710016204636801464077185656666185935052134405841366217709128042587431312114999402231410139146744843564587127232267230384264918430000264465003678067462472541046334616635075224805834408474182007426578490753076563403234801042373104939409588078208220020302988568759703815944633910758745765196464567563958690461380894808155675733234198119304873332604102144042604306870160416646968978231422656148719194594024885346181126481387548232963891865529944659142418513272257250661427674021745939144876065495700929521863223182257418356419295410212932923905981380146591522689825424629548184317432605286428383509310926748085992200240880526266815226646707118541193142820212828486853110186965951602375391553496261516565085027130764700276571645061344244267133448312625907514154546122989695257525543725473875795325641363836779576383464845168059092570945100513675463293209024482284544472229249613361289724903679901875288526065571743966537241666567295157983012483143036553925589126805745297261739440858803230123780889980474339079422836927692565184806339671221939963766123764465164724409504895906890170477324491004323773985662673745850438360640799202692577557283122532505818203789805817222522473870805058191626066563710405460804091608585215835502139390309614694742326949943818140601867978600503963438689005355292945532233727452336862861783915088770562821454447335396702711245414023311168772496606795448619769974464307124279133175756086570492661497385052346798439425245490576619246877668866476467236445953580365329767464705599844433645922391923470344313616166412947329298812685198043936516228373432028978545643281017168766442748607227426019317439057759454278167737809885275163353024836577329689848283632132908478148963104980378493194001459533349661193853821457105668580808681639371288358918051459545155466864533624320245903891297437238501436031969932107780612248778658988223179462299805026662734121474288973804763043170638778040979718531977674739307344654794950342270941760457795143489893888912438442709264108097629058791571781093708766611010195599915776500834163668522612249405856552615658160519155483310326411560611057008535307068678584276226814313636895143619370008206061796143470831763297989618818022373467750030631880606558251909562632639604148932676692545387398559531242251297830006171594877615406080646976983007704855443094181408292130609463313946209559402664723358466349682632360409468961509559091286409675631783762809925129176885897508519212659798757909992623241021905868968609365348614834764050753653225281116181170568637065980386760522606784957955599748074118639531705432194138759334102526180731217851238769837633954173457799185035432216300496893104968038642629765917644442030632910450953622329492502549797276054727619587356581355723609104075192845723198339946187811110024107290113007967297004310768850574446508077393777830529144922231966443942626588563501739727332319836973080428359276865846210284268537193645282108599390035869264168093636361161195397756251780827956389108850283161428437054582761556873387281929531926662505659334693635434200403930341223952162498847265926046443214802409666624790619177655048082865361371684753347330767960959081923823335222313550600359685775877977318772987798728803189050455910940614554354923953110024873424703641407621296105051487316158383055290873258921992346918066815129926328899327989971595944629837433204613524249548932713869707289348481856069355457200033321335153325227476202129105945520789796750517887846461079812688465054798158481750939428635668280272477023763257057595889647437362250355875536389938764331715889048763926032713977192935571685476707420699451800091391630542543040174732552969561183911684716869124598480503152359615758930544341028371353920886029342923821719328101122311250103283108027585199614683258913523012927447068735344363674894556198422634881108896160971567904152683064720964346817420719689373459392346564169601942773366728827547535804912857669218959778363495558894692761543433502533337260824108425689365236022837240291739983894876097300501829487318085006888787175359922946522629386572049956217794228103175891314014741929556151352579145346097217808707617811536875624144525486829416179865039488754308138588833438645984685792150314300186601025504454126360807343760553878643806202190720228609064461609734816983389620542642702203403883258106643100924127181411418838805252831398825485684295795485888044185471533853786209605102339092784453322809874603715916884066973905343785212794946550089077067549090557831993199010178089304881842771952799079643673620177957146797214306305626664639110685022351596007209401439556009351093438270474957560028348165509610796441363319089024851662706997655199110261987273465314756158075111690520713996098658147984858366412101756953624895988112297952614026430553728106303099177143141123580333183492443918353415873105811672187645995478784096402964717007518069003731628669650451562970083044789039485825848238620107233212395242140597588874367658949874218672395325733804105092344663633795442004172078205307398373485199182536952814568132906911995113432886726489061462836233991952511619946465565316437959679916352185491616606114500917922993010038964091219567782874502442891890634718203468866272122235797656407987029026421425912281761010889438984503903490559945729520008982797245560565673104677991641571569734026060565567793423439801421807645839296472862762194137368610968385533524076627728827903492728236929320677724278940281336620530310399837361595079706037069693374302941549859580661539114189056427201754004379057048135733302173636074986252805848688663727600569682152827740693785097223141016878797406276802403684251373612683839300301030014251557573318563358769023029664080903043759589582436956562648571168894365691095278583244361997027293187441337767742960413422007616281958574350326828251893407850433476619036099054007460699314383551033379044866051925893564555818271273365505217255418563200967088579430045697897839938168112003668747168437281499464291355849005274794747653402077062641855250371869010900986636565443581828241195320069186751402584300345569704086598362529029928516445162444587752455209371401144382305226043546670443237570370315839569198895078577258865637379031795722969925217232098511233189331983265849103196235359421243084766324720254463268430986167746174476335462724914907331101419201345692884009825447080543388198968550294304542604071327762697458985239518973502673067980026287788745444777732503729431989379716052300542673011226814390416412444411073483876171672460232817411613345242136597252130433628251995422951843908971532836053444733671796087619688084348825337517793369148869364019089941586122040137954528926011514798111616761651540688920470114677536555996723635429029807872526853789785625584740885125657820691681420748173292742917547236304706552744966702987979188012116665631646963777545890387112966355382231858208928162489676719001677745694332175831650745673452647279817192152092839804873274197444075377394918586028661168854045467295993021904824470270771696509113565278169925917135322398272191224251276962717842966587342479890488720904574389598654077804286320253648228787050354310456420805901002102772079971006516945731413345203427865337990180871791118284692045740820671490953490009691519606635742687108512181161093274425175375896755569054090352612392540857235725318348952310861997605046056356832488192054390232551060603468558070808459922806777217654039841362543380076098549074546533141660745500618361270763016286984455273350292488412851147230378246424462557821648472586869289854128426855600021488631328734600755728948043305652040240633360247279140345390798576956123358165830663418244635279846802667601974542320076417808460491561375846220514970130024057297222251823713493314310316740454252071888495446823030450009159018581162244983168945057608436282652262347313260715763249805515905233208826957079407283041184687089981410447779399685386458936804850301005584903249621592850884131347325757314557402274017028518702249279901646295312497236974465447004746394725678434799361206441496616917883866645001225302764957659887209938868328945911363347673290916969018888982667536789885715544478576034136226569215423908661405492195779208440447609037537977544080863357272958664970719232371493962944004386093937548430161907539561012561458316017911918451496184470529336226102139035468056522763965421106829677221940295900927488185040181527272932638715395789264586514493543197581254561262180786463783695291969742205243137159404875149662066852545788427906394046968245037952869611008510533106889802000944596570014474505466359713605967991568106400400020565138233092694750486515397310528285853938702136576757506406098189311180051931203823871161896213579509831284108051856032757403782176479289672969161416102639401582802157364288109676301100468693708584565080763534416661486450402362658996150117662995575899063039363906004997586893997334598029011061466785239341989406504335374220933495646567893949056966433403268057654988769072732004103598027559681464203217435425798228954098871855255675553616144004600899405653237947986069541173452517120306201095664155712668319300044396192584625143834893247933818018033603599958177873179598525671532413492502075999303291391237921485550777398511113424987137876515951812963798485914570188874103228174205402941828650117834530384225039053288680445466552265506507074147480522114135016834562777697269106659092352605724671401927909150077607449634138007514838756956785507736907166044434832423057125986656952342300537363273786798288606988304980617291554579884654471481784808016715527374016158757314065975536146560047819425833950401740279587662536869917798975186666771691757256822367393696281116711801812647429528023751775558857750947721113136774548722282725799290969362088911669307696647181537089495131196693896776958028985967189924691693967466986299222171489877566106810543154521628400539344969184618913777502641489803623136218095419850462973747022597097783315118177558542804324733001608046648619741251691506866868270837830195005488155349285850286011610740482933230389094852187174875551897911304782465275770686556144066169481015824362095543556606810343134769853279342177243760888247509086540744307575964532190710208171179451757054951757004915696335718153590858027413862277071410921422897503702033665323954495498290669682740457129688660720557730787146153089012339655610917182280848601520767556215391133077164686199489604377439161782154948208949239515683039183029607387161719245165549954005166797543412748624442102804924224575214169802003874041341635976101018410798885983285940493284326875801147797085701514767907044955259128009148169440683511404648194006243574181883193327977713550233766097010866625935796088945603250318065266933586666617032670556049390359370997356849154424549901894453567350275122191212518480440393778217244320880390558376650308753800249117391020065126336701827884412745228609448135081778931447418812661398514161029278264900435018829335623567016394622714991655035143680698812180301579216958848331346651690419474119361454902350269204891795296684520873041560398259840117464578867202028764474579010946480842528519991383254404308147039545540023660716015723134621074105109678432375183974079226586907204532681843920816961474031596090300209849961023731738531762333018293956261405376199721905325249519032458226138648561615962362275985691162612991658826112474314394514739150583404314412676199377606429925777419446895139662075823044435093257264452762662616113744546217609929226618251340775430438308553502511210327477899417565198921523966559064946697755130753105572791886874754824974402284777168716696493305155011697470679746430559768893227877561698126928371236138047579697721187778097550718652331147454768100126598531520913013838059529585769712403020662048422113263186693671094312779427194616138467937337460315500270121251188568329950663692033198801892373670927060202864648516877466263114472752261543189216912782322318018615582036365019192556994247481991555075402293961680034407707074741163278511142247812938241594980099775539853886209752548384030683563669738729476376911982486142205661910368740871736978441018025535321347023897507758516930259366636662076951779295504823202102260029612375061196307315987851818652625220924406340051823463685971093345377829453985032722145452549959627507912587219559041197042529780735743960352180967583654732899070253551030011809542118564657551029670363363796586788244153877666043874818136740228990659839008432251056867381629881574057531868728258374704775272723526589632165726771725322608885513328118625152216411481916752853032616992460004491659272262274781777480535999152648831549686234380039944202412332360819584760722663822636631229402386611316920853147210992205084935110503981654627251141568972822654815489545777225903632468575347326408788684363186492686972927014226747894793148800089575043404744309666001463438053137059067418460401346479050669406463907084743471363112777027826256008130321425419956633757435416336485611681776596792722021992854075387169811027620830042169208334623372094444581162964897914024569557482087587116857965322669145521889783852528381844588268069768059733330046475196638356213899456658868334095763033122540818390093238210033424602061222412202601269521106150690658426367354527790361615119203277638574054455928978625366618492691186200747001935914432761020225275646293028917179697780779773405584711572010902393863853548823203370676128830543156302442780901807914438223395734035909720499356122490615639295112193236235430966561016194320617128805378381628819772513251985940211188415757558350669963542243458420116115760061881080057737783660010786825036732360729705708020703771197612989311544155770261899898345993190425206175699062417684509065787581251241949882290736201136338019091181928587329431663077720743472263609757222868825580237923811091168023546425773577076418288382570164221316447667406461987437303275879718667229401288016792327136615891948521663379910950453120828828333149339697392461246749372206093792770538795479275124101880941249275940156442699588027557370979644390189694100937175264462200675493593184676441713593096838003261017253005673986010273068725644150340714867511429234855106783800635011434627110539736428441660405564862054933723212667373334590436666792770964253810997486661431161450469065709558078529053968874522420387586117165938535152473810762696737390387628188188660250100720717245131268358217651671181697149984633148783073879688425204812339578227229205613384217591778931347518888669731427508217374237688890701670270044765534004486077482621811698016409964656812520584003369667517726473992453111294536192781214895831923587730246299524625490750083896842650567429418005110352973449400292733573487990886700926398560264514196610091014669747095124374287102848156585342348390841201877415394395465082413787680584404702581877338302744236850046079590620728483414717656244507564071558563380953750262393099457209965295048845843762775891061363766612467249951741642351005123497632145223753325495687242141654329187703288843419666283930477130982234361488266223545064920224201778437064960540142405163887510687569525092318416103472324941507178399679034119652155070776765783587055866884836137594073564914280942873201963678391510585170747469945101155256692889768991267289735822222069421175527512021393792463883955512768340479557165430682810462246318776197083596464717199927180451640603426907191401598602271670727375272079804756284520912777776747037076090374480112867320464409852573496730987157650011507986203261168900396971452327117337610274501505347252874213605663864140480412740380478380388601024183489374161721335118486607231608659928610710037299057300933373550106799207965642461837378933530521798279902235875772279068861043491560299714199662842193335564480352658370773782844342765134124226033956102257294898898761369108836485895920212999652409076900756368946057851535044771300808158081908931507517135119851964665484661507566884571944027788747541880630135520063249979418505451148459285273191669573310324930121817125584208063359585792734010001282647509573068471519599226039002764098998796063386031850151213045283574462347638571716039746162396627224672784714933885531920222655309104279183523326978855339466776320686148785547591818151207871545447911677286126667936094124514174506065168135012114071581694532111849459426126404664864525504710729527418012457299140595429262086621427464625662016257556328792549074667914170747791030309147117089318580189634100133411908296912978755635844201232439750197347169489993326288861494027585095160240094041405303576066269690185530197193890908240059467147053956268942342722216471489536892287446543352322937096466913359373178482045498160973640450955830742615046402831449545298680133737378629894595157445554450386686471502844122196432791383959890505987771888433124559905806534442806592010155203541973081309047390562483116539420393693459229735597293590246075735202336895507227628739812471564326456389241203499420292468915204753071953773728512651785745393471575307098186974334329502081795138761243100746091776095935243033719487307071832107870245294961494725785601109230847442402550360800528229071260658730606916375670973513118967755710763522207910000368909324091357253402351749498252403230596824295299718127756364367802628317137063771413069491464039782599393651289299755931844149016629082215548990807226654734572761653548066499620575383327817547510162147077165101062787397261687357939370351050351765855033029757163150748925009254978427332154824082284282361552870905247011159680770487580366260736392952517483159827800903446613200251307954134331960758510010296797995948899041978190120398578136102889431624070624761930997502074885075513068941806142674631708830551407449744591615320898293132428725070269066023947039431935999319996945388218817713890552363903313979467773464559837172604867877258922466064001898376039747074458875673359045901498338824863527089176887386576864035481971250530598316211894430174838834982264831957245048484142890432249117011435591598725665928270452273601792645679164441336224971665574803138368638020522619487328467277320579731283125876319979538387093848836556064555949350422945597128766879904968104017868221146260463046557455807676454995411365005722208575043818641871113426495717048901254755856306417370417213506399041329648329319919476216879186379777146741789824075903720227038218745996120062333785032547595335438723928511986850112394622792765686520001277462977057394880845963624316888705122618829804808111446893480627018760717284411264773381080002602348224353328226615408308416192415056036858828520641414873497242922382882255568439967041109078438505203666778618882898701142357493466786643774202148467096024182079556486251189500553479986545854305640339881705522213688536238577077663741375409096170193268094146525720740411486982461067093704970251837984646152955544434126885060763574863297703289681936711026376919718153055586092805619288953506233810140533392437402739414759551583800759669386980317729237529362920306774774263601212031499170407282675422715977094061016444713841296939393569369549198647372458757996064866521070802973960525194831758582696582746328917893300938991848073881370922494086105012000747256292053256391945957634977340436771570168065037984538222198373702559469740462594888685932635441166037344564733442378259043136725528681173919353913341445305080970083503356258271431934388315629866750361518724337048481940098134931429078091707558598700320425265286949256702886543272199651529771666641060230287476704546517760347716330905472702252104520996290921870673191777938243462099667372613092101179009707378360267336075330706031338114108189508153097053118371697202177313646376238895172188868003789758005551617023882103599156357008307251502245597473541120997143199372831841592655684683427953562234513552229846826958867426911821749710891972538372453258789860693725122385254421799604701031489562988409286531439803796469280237949782783979937844042841505208632284134118138683922423736170127438512734778156036674908673550756247324482500219694255398606252896880109911009954554316166329602492153392319861152508781036843947338175635775175424106254503680630326627434893688287400002164230354019898814506356148867382267479531473309601838589815994673852172675410830283416529142014972459184702855604247906825127414248634246578753752651168855669914463911832324313789352597009635805002013900327278702194607376153897144159240951638846625344338224972722180844555437838295319714542379866630890191434568157758862686265372811259057162361021611856285342710320607564799293799722379229219107544629991924889887727933168763209590050112644448951813352428069556490802930083707183799260702747955833263567205029194076584010900076149706016621928828040742037126429592802443518187058151341196832359952938451451975487692379987638177893285528281894856355135311361780009207371144164862913665951250996095667771480003236151850355827035447025590600067413151180819672160919041484747982134614000348047820092285838187858520175070285233481784660783499522720021929789979621836798962991399505599284775962511493410402937244608735800554604693106506372205744223356413096813048671542082383086044068950945436268613999981411797264827241877962989599285652505106823830419453841979863260650431319993148651785626527063551466760390174164169446570205244274766793813572980493542311166686146028898159785874994445339804899179918096673935699009717826618959290164690565157024748903118297088442146558310097093354268139790997504595813073274288526008051297042201360043631694922999461995535988772468669424689391302691871110506358158342119739431769299223318838631229712145528098116798621110221645353102223340135898465848106216223352485446061348306609673518271031829674882870970337742038298243698911576037378230558558794369624598270531873416776725531452143280434407489703846485991238902275240297577277355450297702717910667371988360743807308479216606602470006024109613084138555677098328695872796215044612157993745722816321512875384118938351525073045335774483638345058040291753310426613048532272699328160980796771958022208261035868920683122246648387032825118128039810851273995672943562949393847144152834352537935402114111541439881000970864326948852730918404448526063628541062799569233282128496074013708611790070736504349860615061931446179206805647145916117750116294397032400316608589200614403510402147088591707695917438047604962786088952505225364708961350486498613327795698783916283580087569848190117085208513637304127104084801580921244343529130535148398120543480882104994079543500381856464279644112282577971725318666857051242150071775816982175784442615452843183412975329739386474078175865003035250893576270376900022096897351194072191821605158205391028419839603689051954916331092942948942304403270294611368863111281015602072315423623610737221332807281265918929137891897243948486182023561282798415491005101145785190903878598860500766717000380112726652672145734310245495052628640286925259054715180690780830934469199071801161156334236547930600288179698755543612306742577157651103877988865088538527040934146366484677263320514047238636677322640819619078923625992001703077207649944506696926018546660773466755486485243133019025188606883062623514553792286152111242536654998825393682945828080992184040408758422000730752384824358953852785698664774649107678101622205293611914611709470514360310232754425537411402882565915554451184178629127701733632358500264209282663926387351703547592986216745730733709809279977593516998782706643499699827775160340693533523102669685170811249521919889935357822212955110575222942972624351256507332315704170124990523506609348392881274405749052607032335874535241059645587308505380909127870484575607260434131937360224654143567745532937686406025482703207810733602869770062441040491920941023182679669021183964139189424418200329667895614002235996312673772825058597695574155697051503999622173747098928711353146080254240807854563047022793570623770500261240083046345093002153767873535137821657640289043344418826756326465807909884841356623458656661006392130634425767755473632997793817641320487217972070052232368199623905178441115031549935734859637133745403045765878509997682465505724057509107834820126940664362758106656097477176308621524177605795607089613449202800097785445153005363099867320847322507182464425566528524917347962719284426461602157010983074725301553114385379820444006258605578872775558411915147343568371136076496676881519019104593985685388296232231481739353109406947893551974919775838716320337173348580700545263830085131552159469646022308307228819335976356956288988472951576885649131686916889601135896077745955497415923960904654990085436748050165804874139099093883301220803428846604777219480365595278397124606612871740233269775407287505347256796434546545798942482245088840488898081911193676386311801713922533655422531194436776617737936424509912279493537994371128474809540619016371994041296228602337969889114312086829169282756750734588661210506143864883884820961174256261368719744198150281679734601365447382942889108650712843110249393894374205947888298624261813419763887349039961162476162168134590998855680238311473685684645483569850350071401614522838081590046790127867268914370027659893507326803555095759117169313320681481291721346966529344376646974799265388917250170078689781489406009818112204528443002111692309066778874837396145815886682833660281412813149648377509648530906423546002848794045188121595987881352794113841076999639144131153619961619698148708727954257276455258195768309401255961020284763326022520776578694672188282070114078919949609056307969163404069534773395811439629208340154169166357027415504436023300568773450589882968165052592026994324491285365936712995962846074904046112842240647025336239043526267062310436331825382613053934615833730851536863392470046431913288812117641607856175804378007025326093241451510491355112461529069595633210659805046309853801949805605039496352192633105835519670922209158738195415686039649584383172904836224668064223740066927670137096798707250968042733007262656874070760973759501289203489678071972756448294137217035711699880239833904067373531535252373113816600440615101856086737848300956040881805168563717910807346781862148063505502280041126563861203833044551515633998679606861475993785921161528555447702815684823569507525939578044564152181629977147951749999400355156891071054274494014807058920931699173549088411466815900897987540834146150215495174257386140756012842320009652189131081282391943730965231066790837800175919708832272082909878900498653660493872766362460032527899964069121776297878602137739398274838233015709207454384360224421655944964613061248668206137917543129285014170057314743310551945276305762061484989764684604591238188478879683802723296555061620301653514994080015140601963828015259553531093043266506237325225384356946300623094166024139594581446766876598820388057098717782324016262209201142758362674293537645441926510102493414180234073270923760124050008199229024075464757499397598159164276467337840811402270212332897630015258887322471115401392090512228270562592419910712352341065756147719475465420298302140676527150830704528457169905155291228767080351131700477966640620096749152048564765358792736260888313845211723845798355176519970710344568054952756473510828639698069552261769099095567900122622216303896881988786833973999572090293270793111087310301832248987670140131413585797067533336861548620747972654709044577540464001754015480954621975462973253386998744947206095967847052637930297765992373693261805342255597579536832411958077158723462355237114464500330273890785115503204433516509212078364608008592201164270111263925186327087108620168657429161342043798318536817210648960102204270520997657103494442625593985422820908775655176888809827414490034075638217202063006277420267410466527412483865686074501821911723629127680821255560869139705233250852932913924987852877167444271765226095368258836239256137660401370818575509062849690879524161983221410497367738826835283477538399915394495764106641705839656002498238430716443856762575764677947160512349786529599474914893669647148497314580681217118403835626561491382748099387025128346450916327305934687184776633253944347865693056229396293037827506352773626941429739093744149118543184010549322938345094629128527690789091960515869098844329545581419611655708879531859122416328225936823675965809829006553144935837146509637591183701282298103729688812399763598403458208885645634343822361096128414878996603766519860202458074354145160687778661023458323633353444299739175252223841847866371090710743450403245554858811911578761616117002364957198710334072166400384861214435401567120111972333781343380512678009179692217561452429957797702150786295380974571909191237027295699804349562614422228170785517016923171586929794035416325459520042268083475132071688387806487418804854951251380416200018165045378603259774051201987839179300552971969204954591362603826762976440691535191435382788741762863960814115620772764575131114330331397965186445495034111399488661927319747849544280111171141388332554194312423021113852598080765299904125568756126202934807997581401561076084785220853312154371851360243917892923063442239732070665495882594804306603474954485509067780378556102572875966092082611039086248402231009010309991381801575016684907456273244457209298223477459461280005098597616198110470190346572847190173193642442785563701504661931150308659974902534222676037857348280075172678556546401656697175667983000628017076871786084743808894624553229820354550127088316117602641347706173921229831337078461896491701644614380900251909230931352193896879609258660564843662469855372240424099966685377565855523170259704451795585178430860999223943021187306729298325558857998221431289742864683321498360396802134815958499423292136825554707878685451813706959067631962581882323572405468626128112284122708922049391672649793690867452797547632306220869725336437567594550362204657101764744084430377920516927402926782243787042713338002600577278616095251614065963156798598663609574713544764681999127671571199753757728712249303396929215013575006975132978449874368866159001716279646649264601568039121371569494667298028645997426434295172496951893733115420426559024531824702275065333574240265496844652723428983866957412830181444028290200434471810091907790272397717586119880502601339530968104415312853797810030192411214569877393984192821424394420602618196184828463698013453352072809072637953112570658168094894324795691684601960372186450160421836786230417879712881199820001274552836389129914349346825442859782994077230635323741572458920167422797588277731695799595381935010979395469198026808976499031808628075894687774953795054072413541003756665037417063713864461818516867567417942574057723828395179529673384306283905771581730180995572055575846564016974344977783401541510595254742766606280556433387902899604623224605128144291599081618540085290556127269306558253413870053639986721484763043425360734273841296270640035487889532847311648765715770883353366639335169009166224127983022515517982343685775713970032322685038302987070357902294862705315317853878829752469009340380540212995847418561625403726603834685759414903878837914474209747884110045249042764099154968608104954965874430496741579476782223304508391283978142999768025215384343717904711917275889297035249071698626449234101223683116285131491085901012079351984774940422109605719812715287458376492701433938313364258789558810362183573826557370301128960445174134096553340885433133034619345229553717094212602885530460966591827157857406431085582561330564692106405759714915546752595241560952229836563640409509431070073044444079969763551604878178270324682267754522837849165234677768351036743204818151554228890955231589723985147934981871002239910935257576347802934899841789340371061610516567475838650273778812233523638418141518168879460909320056891102219650490842119402159790278314829035204060118781940980257496756671570443908527719240670206760074177634176999426390359136143055694230280937616305140411840488334041878905561867309753396813545228226449949185341891049387147651138459413361935280030616481985663959068244844922421721315587298269867047487556674550465582591994872759877090966599851930535941091013494505215850448825912982689369149082829930642944539141676960716234076264135733606158097974151091259717125202332546070477651276674268741157162593385391843116015076937596056559501750646163847432144774944241665716024757650782664832077892578464773762602249801124307011657510418781451608909578304241372426322389975744355515394484467261621431786076490441828998866933305026400950232107178118734710742323319905514705189935186073014907795178084212636714136374878874636864120557214586649266081888200935666870911247574954093605068820789615308267541653696317100148783097535132360499476043582648465477268448129050956382285837145800018794799033420295049233436504213733400534435438239746881610705500517720714630492207970451179798655127353047778793258879887805508027850490554323231973886527920968121181118873438736808565492612195053745413217711422137045434689882983693406072207111818843272819616744410792500458771351153093742395587384476789136636796085055214182820302194241488199017422161076962653056113517582003651114116398852003667898856888210373895763389600240191215283825186856843947745669630454909564091828140792307219985796113525071569522486100560609930874867581066994913339060504506879966001800516362322569046677287881172645819822987995275244689103948148518478732812018595239305236243980952230364680416287663537022030467307971389721680870246952781383416741025524920213556144906804851282028893524706062274036916031534800760347003360659042257977667434283619488519627690077997744162494165759260016420137625809534595307620654754796563375666118359136243257290869263269931371572095870839969383465583723997126009432213076782959168794328777269982911672782710611901429339448431488384150292963562015613689838366517015325057599703661574426160472618675613197646759978409027187243007281546037064059121974954554674224984227745295097669846412894354967005851124042866696224338764158848116873022128202778546906323842352990236749297134426047879131087617467295114878897340170889427517076878894943678875278789594681142583491721582694046156232424642851183967883761816354009951249432136461702206815690076902196091831115444172857936538893411291878680795657401539094918498696147230440241519570381692900636933427507255232876336314059433198806080937887524871472679918653962032671086881614617328954298793967114938866528153001304884426142079324659870797171600577672603542839917239553463560830265798218634080625125162463774710415671262047959263094135582751412217536554683340428751704870176947245884307133236802331810799193400929986135366045333737023030549982493019964482436983533011281708714058245070478165567517181118495674889950752567100471999786731854104384642040079208668722750197323729282948101650198641723887676319297499155379709405806049195696118393887023770666934268986065899047467680744505004183389765369388348642828594548624252992786366699465416600629382270002376308673376268355588494318257629131782362626774650898727190801188630917016948211663866981436471146970291569169688369465002087116015537318010598636615508590679045066042524350175553959096846491605409997792036109514137328416749902127729092067811439911692381207299660016651215523969985099598980804137930177322574251291353988774734057789873683085476665924978257483825868273381952686684927344323855184172043602729141098542737003346228971673814512494105805366893320420798961583945404009383514160982938366458760459874898282109391362860381423946775978356556893245719561713660242811129729572980508906034092683355586023152164233307137863060521161134105751078912884437415990476266648425228286468693382367380906310192535504897440659933149095184937419661076876337317856413749294557265921264465441014441219368395558947273804874422306531733100173861525468784812585892925032750516081798526590319132651566705372993727353567529866135388618999273037982289904113817984490582236876376694288881522782018346156214049498509791692450745536186718626289181104574792221172024750427410929038246397202991711583797056885108709239891627056110637733435273628394316348270494209638030665936896072062020463819134575638829905925943853062773191035187363609735458881829874502270411499668370599872744434204812692817581524495906548501410972699255463244332133067368859985864274054017588794856472507155932082274123324765727844836536941679974456971805273250491817193126988964261935422397455742281982724391764299758546688023818446447865064305181918812416110982801850611059809924628547139793137757373627352890404449336699847750524829950117182310202163405481145944000832512561290191507179642470450052121186289196675762462865463866183887203159567750670878535341420839355085367597403283441978304567958199394359456242017067985812763984152196367048142542537527598574314651242136241250764189570512370734579224116362388023263894444398672302947067365898125516874128326429568302719499979632681821893503228632907617887189950590513800724126591512848390628110453444443105233319396257613583942805170287045291614758790298782456760572629639184724845414378476984952485727595967505516114300254313403999871085782159180548962744304565414439251856672282283558478363273613995509064049620078892744276864473409277834854540345495604280486347068720167702786414633810936430641064461070080992083628392790132969516230571204593129725468250992936894670104580464463066217941126693150618287067975122745016436504861741470728805610248842598019320114045540507607311460707021611497582065607760051986815896841202311953890884383998502776371270404529832303884744465230536080335665976036011169729452192600298337165012213680476358717878528430584098547338496892735526978538116121516386709013878035155391219813344020136506258783459630954292291999441167829094027332688443855999128276833628120578463502048743054572926022132251042469797999361900258749004542327882883885460701143023022788502588261200899633682999694013600925051720867970026828224142511716077287780060571320513817966263928453309270665099761393676651652613217771174198592645374756234428562172526347510942948586337324163196462459957494153364165128104880570762606362597446773940515846122931721106881027489280844409129682422502314991442835978202801371464054004182341642319057931012958844195001930510189913568114135501633246479600010131511243132490465371132519659459409013131276587317133649795314417632857893440503694254456430407678454290680759497480383512344197285081607810453755695709261750657435560049058404221751565420926531704836045957488871649829953226029767089484946158371249922628714234267327776346123888289784916023623968876361576122557285491477496956417031337595180261847248847242310882698870182958723400145522222645598003592936830413080952524977122154177821015484003923740003411760702578042646795643645080832949806601238549485743422715251080902397356057293294243870101916654953326547122049811678087466194907503436333115876358360885620402974497682594027147697884440242347571703895466324777866892895087811538815250358978318277553642336707083674360981594371267076497157635686337257817105205357275064433312860045895167388697862457365503954071602383849166568234201032450885225303518548060552833667869058554381593659512639518797923067527259388889775363346605627242191049486525429550999783979032152622104184298877349205307775175072193328202576267940300663515270842659904454454505343131955318343865561628789067761827139639668388429828094123029480578788294200901369890952652031253593203365278194612845984865381373229984723927776810045172467676798491624504855493912009921646953008678699858295367177937431905792555911521315139858066634346448510356801676386953390280764535317661958566477104053821773906186430308479728665002789088011931821830236261895393048193726260125245795461407697553142637950514874765327868872335597515302281276054676430623416505344149105769374355733410819552954695630623183780393165860085337243801214708678593583474631192163806191018334555174347670624389218316429507972696656316500810760816492737986686111678013179715598270529401730863615901264218437273505947149731469124707944496007502031147518204132549470958022366749969180765906929685642150600751099460859094586626704547424256004666821462476686444183763698502180163050520440531286950203290102749782892242174946928046653544312186460362568481767365256463404669000728307339453111372377299315168965561783899320503907283247751130357561955100447090385752984864881715575321060367716363132470865944012354050615892616846098743705967317480247904261932724881802269229324019162436508737070978781591445765510541161819768607328439184850663941451920038711505692133939437320938620717788083778802332464562581723009893451659244554645485860501187998197572599331818681063296181634192037503431110575017608741199094521284109407265397213051489244792529670220894104736436709290244188232775968761221012436441223865524972033170816344327855309018985489721233052353137318917418560583352025755737919599333614131537754140389676010616527078866811827068637522425666078481811446783727080390330855516022692177275516583221030528966892900190279616757173179739235754575919481119544148872962729109798217942628324594074274311431185508852311818506696717896165822299413099943887224122115019694164548701905777815022757886518880477768534564312015388568021515109957892548698890159809153641224806359757952158350351893002758007189820564766752888693393692931822321050232768291232056176475756030924287575909119256844167385485783149741926120781281296100811425400504204144512609375100780639442124190079631583434720172542884188134630155642198055065675126477820349623078108270305866321735309258870530850533320238457125285318131597766470950909577796389569312340451041050556065549811161478525875466016455147755421645779290575088016330503060985818880035152718862490224381939586118981321961475086319156301695495659932226740174563690337027126754128860113196079435730637255035751429048396355399618739676727319479411992092288209588096803750844928861002275647258294300896424000521850485573406196318055730862626730904742513292530855419497361518641449779878762427988143371390048290545914285998471938907640001006682538757430018175406674765310018599957519073759409198902580970987247925918773625002328963518122212777238993466979999324574753295310824686989936674267334586219481743874740295318072197795514010375978920360840160299193375357704881438394782648876228117380211170162879185503043858365113911130242787006717478829504248117926469576167701823747829917387326615502026426291225403285613772441938218554691104261852334474394537148720947364437341504773470737390114406871418904962956804599861841541925858600730303230015891119711953197452456577174419004204696160232025624956870807028249213322607428205692077475592335419761320793554230623831333416783817883556883643696828490791293723541576260585655621641106351086023799782058233362713168257002765390865962637281165429665748157505305709156851852379756161685971757921236273507605238820827233526162132252463472956208306716266426811056802770966245134410313852950277205088411912829557836629562207122121284039089885241981048517627694087796077527382660481114635365946352076022179564881438817705417368594789477079058026963839670136460939063918523830006527218509862224211551435734922891223271531528303778333409839967423062979975255902591614590225376338058345277200353885141571635050833579568619240559354287744513277651186518943835905137405473620480841842029473295609227827751399726021910068803900981367565424619619550701565406552306964517220031882640004597833370029017392733723602945571186923482459603952568481948447611599468615458123831380025887605039432258360787096786195996938423649044442357140653473734519823706457447140403135652547975691909209248000966511128472741531833622885345158847764054840367328946737398944821529757404528577343359078245508262627392654619282954224596856142765927109900967268740784879773676737765226938710618731083229064676708405483451490215536609363065751345470893152225760338731038769195542611139661222960268042334180045251455868823896348458546140192918393793156455032693039790220724856829557786537347739402574607711874609977543586733011866014001107191634405294469131054227011455624831777262018262049091689968478645193116685893503147820293945341883453615626639485645572981706608529899455382107540819573100733585318076030117077183036109816824689476936523485379908868170367576064445105777272035425856342435159954684230439128104197379320202499495932795170451155534691255781839809963754681842858326906844328380023409375716800169821212053003713835774374114320247648415655116314300596142688860071281676273296624561750453102051814604464214770687111501569278256390879617284779332949660685714564873081001121238818490644868901257875278974038104706656754769074002075943496176182463162534938176310466936506727381737349165039385187253775412883919557095162495959452604912309756072416656131590192717403963787623118566532586929036522185023986882238303117387597484118564366405606390148572425847094587032488046891436572847953960958169154451717645670876838076222349635419296278365007816329389011837964781952578899092299839894363012274779337168290086170584268879140850909073285328921876388817089728627803091515930841291936121872532292407623023922736622014387780133347985861038614258380981147999742759997472644228684039061504317804707724626499011118780213701239220719864306483744872045620237130338600035007730277779271064362626968411004070881769710121377068382318683550127292446568432055755328787549826543755002226595033787562920865958299841213380773700462714051633838737849166775512418742817218393848687020885608750906255191855413973956906025339381990460470482687143095501735574379010060882299002986489963902269990736846305367894013231164174432375871621439862584108107741147328861505525110983699139054534352286422677451253974923181350168071621687606070040353970051811874882771147306531628187020755924358878598332296816617312573878201969377466546230359905661898180239482938741855130910335091379255710239785124927135232804744495586451256826482107001124743762663598256738140183988178606031845916912622762719321906137864556718457327021997025369257737120387206515570482467817326432062964975313683274073984293469748661460335397458409369155650312495518015115568572692388950223232175163530244927341290783649123004407875569701888619592652185663931489836158992649614683264971848192707490838379255274201654063275969376778136718905381013778424822802929449036268068769865298353781366380480678414711521826735675066756454578307069341989133514773975447091287229862287009437957113682096353552964140197653304415825133104223185801989878228561117086248948802570999217235175747748977178021376387029256766161269370103245587058879145041743833873743695438177005564164867923827480670975437511866125848722777619612128334699480627769579162447228014938278107273306282714763933601912712569187068405897426874689069484986946847664209803678943805342465249376182627873447736096334547107324745998422533759965660439282855007118087099400905097358492114051058151680904872784359667773573735829862866926997478421985527330793309112449823854384418075269021377371200390871024263267509398807020038880195064916344103860325464979898510486709368413572085457322242649108918748505717381711333967812926448636225275892115903157015257510563999256834690727020155396072831765604061972697829109404202336019811739321096880120933629737968263193820956001264690174316340599487373098334120728673757393781275426916900676586604601992633057967808091210329631558780358782075235426193925143729037495314884283716739252281417189769694560286985940320209390970128741836188579563215865489618532712743601220505396112360192369794880412342771785038809060827230631707388093012340438660708329432946839925055884529041142477491392433336174509703343641518393145642004505388277706839989481949414837103035046302228150338397140390858301602740293967534281729449650156662287646687227764758263107150370375986974491370082296228345471911195857977259945359199566696447254612382190208068519790577824449082806757384070114115193870450910226419591812511087374281979960994081785381641521626646191184138843355369985138877404736272009586479576975772630397052741486814668619427889873205434878899764150982705301664391257348981850100537287196100204454267368798315015247109193257517132119387613906727995995718492178995540544649854631155946865409836118360544690205095538614129800384149461961624727156163303583330136216396022474537137927969615298197109620016934255523339576725866847217592556119906653240588543646657559913527104430430610861259972988998188178657522486810428154734978030376726544107611611495128429058754495087792053585778554612383530752940618023528834581850458674068621083490359310576822487981051685123983993101341450846595448802070832838260578171840363179201199808233809480764566646701907723915279030822866518912847712238680203694477924917758637551986269385658692756703206766336576192438309971186748963119766713380081301349255368730869069812577151853333544073292369632197463172016785667158752240031090797573454896386733355998731590726033729180748316290868797775976838478771903741590912252151769509977611325517660766643733154299562692196501967939156633797746260511081347901903786092884969680776429167905085928737191226969063905659773379478238236197476960912069796782496335152755410453765795423186516825766833996399843299257941260762295986450741322272133907500613581924396678541052954974654927344313349483361057692302518733999335606640536429791713279199899629620461394802534379936049797787283014624976141843687500942110795911735008137263430299258750739992529788623282245869238869775177926978262563320062706756620667534056111431145092671939354629087101138961785267811519106634219491688781223103150694653429547360222324441946454569511570011212508583973426522506674318602148332348097481634606899746439026493164638899417546217421298767304342215492789627692158482990590124984767320970072995086004301043747558608872131619132443765301841551873027273699167999566675327246810124180815184342768629997868045433145143211849458085184326919256984092272170724677445026817647226432956284228747938829270638131780457199348408598535624548318426560028121795251355081624092722732006480193878568788340947600994827277303048234628741107452054356483847784083269273762235202529368172553577574000375841845887323719695311118131082209277491011797198556728932870095168971328015769173760269324254157732844991075275569487355644181479551803252401481645021791305220462540568096141006610771809085721155128177460997088717464442234297126439780911272942590114964193104574784057790637291341889537441624246408376614466731428790912485601020149063500193532163679933609838198350977409729756907389807117699144060330315971760125672415287885368553002259565541250210366334685413677297234101690963880602912453111310894729138885330507168221429949824042356999899536829294513743006600726554737094073085565026644302424861876947019071713931046826619257712399077839479665355354960110598638189241150201745100289100623588484894345117388339767910489314866754000006871039431359348486977191172216443626873518256819705935651544369536209987755637976390360209489655667477461402790041592368235178377492815151874047588485504136597414190805944344461558377782267986508977823170283775523368009848078346034114206866076348238588011454960720366516404553160820362153666812758990712434288963551781603243491529026875705390217722434899020981013136748034424533202392606778059434037588499164597776055369714996591228525126543147539533761503359235860498538833837252838183626225572298660871805781415329191872607545316821552893289844727724011538920253363633242476469510223689308161867548000142117225972131399846809972060055358519104456887021757634667699975583498238735088037741320007810337288149052323327009723590103400524502193136962888509588770318702166465158877195839271509561590961540942580427043058048331692346790152842373427251977510566944729617523885026834713118882394874863788174589727645503119769891378935571722649152700160614107435382910393968520744033499770319289835548650682208109983490823906950988049785411317753498577106374982101182902946982209398205092346809501976126955873907773842393527985714462088454675813627878904811203274501332813982672849831333503621967481451597706591653327666721434431137010370554594600103359140021253870996333908729568944585014633808454942398994123676275492106820831856898239917913843352355648428673028841888478304459641003877701798834491611361763326512972629173441398893045553325763976868505204221391132921910715886842479443190111260153231525403685817810957650435755637776245702392224600548673338353777946822211550394034046349734973328847381015143449576851930576888860562482605303411202713409203816684697686392003465730302720703276949212571874814469828003595445255320285017833454818591282993398089751336080745918269289942019119157179176191830316923557854510940699498476233658605575616689062220998270329408513600230257354881242235856881289049861820469123636089759178495033497747434882516796209045080750659803532821715106324866580924307904747513383118564166868476360830398038213371973865607704537090083355186640423569144012261907674681931789364561083131742665186968687066953485373077693296034690655483260624860201324675814237388163017120563871697576495588186530466085138878945835303369271978132368587343606392589751265657362869531745874931685819198017796119278928963040102106525550608880147734808308769149235904316839089142162726870445202992093344290537069813687337086916237950058738325893752552062820069145925352748831240001346949103295086560695289602194546218596159100622072662242650507014311488537513144852580256542862446129202469516778683756667367695848203728928782441071874366068414411303941315928330150520205448436397085685694609084383860509077590950269208006445902071244707882451325793379225265460980432097126049318590595356198353700589194112955928858208514590586642608218688053296245306753278095673256345406434788351547723133017636603788555940015879821475558007842106951347929545996273920200277094373666049520846205484064777906453971616044942186682575999317737763038356033842867133026246763940608551206316297278063597735707797718250076618640411933813047940841284497955104002747831174650627069755470349622459190002578009559315000559951870929705371964705211325597250523214238638491641776971288038225374797369338231128356244464344501603047060603923406565893168411879402883857564498669771232335589234380269056072897433260361290159731705333955870524362864454744420662759828896452314324702468560509830447443327582545415410741065007952958943234486977608505781125478224351817985444028627917627274816266029519202189079969619374928021737172460515448776092383796137654131850400740274099022536408633692291055763841720653172105039404436931001876289202658316992411824519598167165304750883773238223292253446614554737406890450044810659366344945797614542899079410016533214037732246656355736794249419543585972590867045927428983358359945261343599368840893166151900060332492432916599649213863187871418757872863931537681398706172967149100599806652885888913973506668365710211733338318370886574109792248332448281646897435581220091157676565852328048016253167882906649401927087486286393641079090014630262773634793438806863894759999374491778019475878482348738532838333695816726400866819057095338892415648391593386990203200718793787374612740860826781114397429016095624605137845265846267092311346850173019112624768626479854696249091716299051075088609092551289641596868435497251821495783747439063596265254705215973281075916399742867656173785939109128790968425708962566393596972137288774088893068094981902171199464348691299918166582917954421880560645299066715433577950210524758865588964046688122986999044433204583588463564387431263586785020189019544409765379218006824520959556587414465455802157301984066710571295280819139029145466892649048056866701598528902353989066640488195967343369952998559400730315219592733784170827631291751614279507063781255819154578569293033638554362092048474952143459726447985944033286816820106628259474057576676562521190777218114335911397396914098021784765034590075700098892979299328151984680263861007252560886614773850407941486321288954326678992548476343545593153890165295763583307805434134330783565942909911107151946314921407496461059422482726869997068138494406112688091022734245978866496716925869852956036634501046979254618101735023714894185283283889444247305513221714072318102683682526587960785307236586907299311962765448699654869619379204099893915332952229336949772228823628576724754468309337876755164115352719832221342798275998693067800598449895474422723729155442073456251875123135415511590477679706007275224764851869275373663395994987350939540214398940231510008510705969139071172751587303486843777039901404182086591873796210024548415301771405567787684602201146086604621876527236098199951751833589761078726247571861015503609255225005199363398696075174127001931155348885661559804964037237264341815678583387674558556723996452019245129773084053979893464535177160285045170030593452601045020631702220755245589600360941870344255657959263896277143109767796776887919897076490913912888466684992695013480505046072640909686475070517666467318048169339981719100574791300786167127251859684978468197819305008367894820412647718675213046329720017856140348666105608248211133084034975344781330487612307320605146853560105395531937439579659992928213882357889290991342037488695025791178132191005639560512900681712539014749418675470566469919556107497960182450371936601831734758948818945462237490030562946018293482801849552793200334279292769412208785547406326787010364219820034422977163170529574595724137003866588025403926619014421505071073324875350693341429551652489404377846718515633616003117555211482865489213754883533793530073561375432920956131571959655611520561924289791219731700367823941283116457028540989702399741088462748494676427674958358360341416744804235951436584740122188343767348146598891174425114615395846632113379268143001449796176647037785094068119909325493568076908091505446485155074903225087274330524789077285216170301006010644732658039849664934220715489386701756939089950802477408594083159033194158746068281127626791605456806093313884572867484313528660980551685096065208143996505567878303519020209490150313647554886587713966606556487068269092687299920597742632087787852050180808629415910326943884392483844291086728747090134533601951914188940663884312661381167921176065960330006542385738088799554878237670579097790739216810207727865090578186525762492811960814159271399754937087481307518107223412246365602146211694000189824988861860931980622618422672471279767494970311209120805020481317679196289107421418196688275822989170741598273956180235895328328409994444161521235760150374950277952575196373849064761967332623221540713444263082876285581287983979064607638559581831719599838494994252136203026231491771988812493486286058119821086314274847494014237927017619101223988734830290712380447765390292044240571543254690957148473279913303086293687427700553027254061111163414965102605674687540402213175629299564709475982569686407320818807796450732852610499006904927574584320348284610135652001203503693565026326540169982688305944643467174652619351282099581905681648420596151249996903310626138966453486460062124040883010830156206980130740480989116174175359023440204735095298159901140984220602865251979137408657310329089574416036463287822244353005329682659409027035750559342386311635018772955097291189623025574819529350073552966049209855432823915869713037634502952661739584451559630817083785139159600516286185392510566368988820545923410241573272640244461059284409659985271740524261518929992985243754480539646545045797254251432136835137531111380758680786921828652386132398317658417279119336963055403724319694623222185678310978190693713281844217572442674491208093038067341090650002042999753942490819517784097721546725997404111725410998856628565660563577788884708325169006813665466489499175194076423493352311057820384460736307710684929123703016242921438987610648376314240455714206320059809273712435628411709908400347317066030508635631684932645384765591677835538841904150879410197192387230719802668273057604291728419336930204186739555524377526014968534621907280566920066213828825715345160288011901387787570045809737029937500615994259350833428760123973249329496330333774944491150005415083383192047964352947049463658887461309799999636760697997549220797592701906699269446163481919085110481505566350809883961497438682538853422047469911423332784372640003808736387843290585716782558008107675360977902756438410736242453117963432410234550357979900815314547893397970150792557745217636536735658803060425719305966358772496618698216095524086493939563749328543719284940671508407788240758076656351679346005641847042117981979682214329017552658726295988128657311112473588724209687551558003532784491330174978994885031170279869313925890204164541838603627589068819245780570264237098408242518929179452096622649523822871763853833669608107212162784644767517803236082603768502685781061333674761991782657410811527881389231641340402103749778067547249198617482960879479397562980335683579038260881608091495154095943142477997919993931625651137973169667740699606151226725656865269980762951121164961465838406195676270424493375323232878552273442691551766639977979797210015469562906257681898901214946622635437985996428122636429382454661259349846296660963560357210309513683435630264073157565238993385048427879943357182981903400888595274859831329247362825379945168540741886489205173210690708723984233260432848415152861751233848986766548178388148404105372947664051548070948160817327836988961845480556615718648940808114036803125817106538025332191943427940340180230571884191491521964767273134236587654203779879370697830853823942029427065307736723102806539613866571668706341697513089445063329694536848465201522026388952145042850228034084287608769433240633536313620080341535111332243111001677118826954506949798088655845511433163214311584596634817137168334669576668720567009557741187081457421422997440822524752673232021051518345972560975442275601634151039288729770912284312839146537997163432322370195372307115623379359419933508187752680606557780723684825100086953366347421277650680406806465558346113254356224763600631189136940710163406824876709933594204748866503263773046871260006621275759679319053164442789965767172509248860282942446062706853209656119624301908661764042140402200196020011215482770794918774061243515991596466855741719444037196833004807509077370483918013567335446021516333636831932299405901256412143868375471350943731104960248859705264917620060884978258878744148550056712159714595702638574120075325264449528039355171813911677441471908694710697464509984931709498582844268099574587429408699515286569663615623779783735947648936628143910658065894655547445432747150929900138412298669507588136721859686654918397281264648898923353044001761668269909101561380869665807441393916078100367579392513456447580633717988555319783100759234824599833426448430271790667623173237651060695952118638587963193733737756895899126868278304685990343728949887051501378367335938261425439128411183995583395116991768147879299283315883393125160636466234682558807399730736732570288087911407924092928897336240977133101250976762563801728591974639936927232085561613753284288484322818743450577820773193803053882390091246891568870328544319175191077312086767711090053616961197496128280497746300731409984801180479167343868736387294352545071439913181354039090944308968588582963393215779709563780223818108926125910475219864992217409175945258892750416614200999446020351583400354848032095062869973308987510681196829825243150673360790481378841887702517567546205063430166710222644828200909497841791218863314836497111152759360550727435805090849874368024557997898549335685741548221836901550498714610380500404951477227556527536710871407145458676373185835674597429162747604899371397605435697795326854361966454591206015287576183132717310769707264442777309915882141865277733889974029060437453342990609115696467087878171206835371804576413391338690201361451616948848111992255717615225233528043729707105348141752706535189685050340628792555619257316860906435276926462468246043488935796817447975607422121856833639840110997034853761653901549792232302857119463758168113710983495544737770089071559362480116247985989371827850063057513965337576168632712642022737680445893136850138415497307125845444156642168072625896046949743621822143015866014464545838286569128509228887647906410634602436122287199115435555928658695321313448320373785753121490309610294548344473567726084283974168905569285430196619081529225965067748474249134146796490734559874942756858418510649061195202788554327429445413530452919593690323422161324370981871520505144524418522989607600171672475073985364767207051881889921230627866420757060964237607539641495543794209518827069258401365278848365929078656078143304774180094974903119173250378212784119499896440561386416209269933571696766967978687222855078744925001574892971096418674416431012319150051796827877485635017709719116032063523710195029293506203818472432709142547595510019301012567296896668948169740405913096086315390846458220242175795219732601129213354787985926452729976952603567675160220180656405729086731538049039096865312921592847481709319920590331329954856374691843909276370552556475747659477898410366647040120298257203215941867064515853302488987266780268575637356296999760216956075112490302301257345197509974529439235778295277490049330202498561510003528666494698303749693530625549573024009987500791648782198482091358273845891716722056780045625796342775016495206408711056031354921956119712230681932462626090623123307967503717853498520895634978428178192507900805911458986374720979506794254372202207973869959503061536398137326854358063807823245639423280674400080882054042569065007179663288910381200412977649808491689476909347716193009646814718951413650569942704006538834042306706038781278049066543565264333372286988718840361905209944193519664713762108750769364567448971933428494077299390088873836019330841417103698832361058912021710648778990321555832131281459846566262300216790297670787119773995644533689568611450588690717635071527650964607317650535667687615093151173931516884906964170129874674013669290510820054411780575887704819005699144411861238712225473020108323225857186825461837561125580467080227457865542711827324638191468083677059067450039110212604598722552186872967349632569936823444508764918188060308019320839558241609014090779214575378000694834614545631315721812422616249324152950559620310093814476992207941077856490351599788730224959829075017967365803351962846405852049147784754514740473116898595913308709633534864633974339367825370220024355369158717396856669033055984391748103410537684405277030068817741302595265633312068850447056419003084271025582564202223259263330224345570113244546282895956745505371791686313129539776275196953930476701947917002105186718639302574650877810318012116313277353228208472583283532414962846211119271154977096111034680142076556949714003841084291640857131196581826780679341374818394758000839099241943417311339622551294646985559703052244334203012681962790107498975590506687596780533898849610855829331572113291234309883383702336480189371565234848403123197786498482005303918609350179831845333076957700930951572904762669242803983783176248466626297045290758584915365453031159086483150888756967459232132073828817568316418343132120266036980872679795328341574045975418974294265187366049154168875223493354764725046487556483498218865970058894233144578475780316225910635398356300300263280470158681890591862585179463066965361603987193287488175946290907116416772973279902516101903237659272805569147186479112809349638460309957304540531165607021605308379183537908667502504903453613010505356641841702684956042309431645681691013086357014436155111096890431212905264001611347587061984528569063588692360652711412323944338925102518326759550928670707042226319184651993898475399513211695260645151698076498901268089900592398118614236319715746537867410900531534556794956084919177539646805509961913049057524599884975566002339496129509641990569935556890540664055172396099555589465808993835521790222700259428931715867178487837093758508506700090359904528459927166475832462626589693468659424017171170390033695125061045362073649823531581967310282946332440303067549008709443169874647997732464885123391061264360880710915778957928984886391882937792491373954208911743496282060524673055840084236583122445008912827520693563129265757480012994133419338908347180157878730580847240334061163155236950880166015571945983373452025161692040015946722743847499640480986972168476624787980029794389122646663092703672068277114199982010342680021269245043786137608939937893103238771331662691018693480886926157788022263438464879051869373785982014387891937412262077423087569370094441364783798055361088057381447951222579054174654863350120502205187126374329682176988408734655184167395919310145693842672583942241645437794575523361250784235766066053879656186538630106449578767238237234262982584154153684902333088243066782180904133843999400944990174868266054890627395895014749373437599154234369068120489972426569255371736134715870745708825092160942212936579143699485872685998841998573796304534600942477886717344229847668949255651023135115494520336896655594490575690846952201337365787300456096073657869571756341201370912040999442886012966842864671858721918931672378461061140299804105533052138474845003439351042396851344659369442630935151740716049870674592665167444421235559171187682410841725558242427855694976206614076074023407685700568466743841721295719372830769497932134131686387529397132805426176585019343615365651099614275860127888967560064848220097885098681257353615510726679770211494001495132467173026506488738379641331664548989501087470927489966339101075244841088083324575424695490276024555035704187375635489772965902913587148843285355910957935465159352261698126766173064519594345663881131280822435654477857016569566357849680222595640269166652684010882577307952831529764931844524612089173849496554779216448723373342334129132700995984295642818891812480871195424987622679360397888612466619383978852699268111765996671125962875575961719825360768164782122854869033954610391083524448037176881131838365108143631616478608253293156372436898411374137218290393401178163725566388505991024937687371328101233506295739442620543363309156183801801803607920701185260620189630043031615822797135729787816121585420595071812353344933136942216789355236253566824206310136722448922356902507523212940609643293527253005448525220631247867376960843005837816875732454072243033724772515661104456468118898705434446506154804410792676810282280637956483611759124302449309166142394990511094066047273597110856264525632351616097829969112466600066141203610775506403054051314079020154385295145519926749733574169348184428787128003294244997977102386471730802044131794944759368644430771770931208817258426490009874422689780697378193721911925983665589305567849219735045149553874423779754714636660619630279839726420886799056895173195676855331882128137523574695025486348155187335335947930170368079570099889305792650672908439937881136524315828872960129755740139422217188534942532665871291442469175419109488530956194509224839751684520506158333125843528769558182877275051182760409453351961827093068173464392842427884109461964733093962349231475416903675526359191735774497061644254545657622556194990504927474691272441239553099624676006223681830267955908151040089630491455208429911584425229773973845362834778296045059244038003046831032265204046370068152966214122321623865603995433494513944215369990231762431779407469053156940291713346097118531900181566836244257474653938994041246481006440288056637704540896654081767287475110484261037546585705623912852535506583995922098452304716469476086737187327093156809887456102227402929535760043422310319492049584972293055134180789252991632161123389406478746810685543548112222107247219028855936485394059888578138062715274622480020879057887795223773935725489240933946875383879537618422773812085266044253198162977862757556172081168180925991154717761996994624172673487988095077349732027523921853671954600655563962036051194654143230878948976058994649050888653195929247503525684023923322030729837307001029919472793547224289941512220594296309454512027545622386574856459627944527045791499992609822414445940710994175639543588203707134245554083725279884525274825103799494963668017546084504564967679624483758961310823292987156310116587226641232208923799514016623430919574973769122202061087405607077919939757151924444601004778015486542470767089148285499544919444953786030104956249452891163679933202786506922649688522199111687608052335496282959466081904545684748680397288331174367265349180014166557215965687177757139792237377275905052599301664944959873881301453298710330949560518450258176658469169548768389397194799469470376220015325855954851104959321958781453682123218952626919540693560338699731068753970396770754030100122673639679667838253209191377863051009278832529371485427575235706534265843752359168302117331056260658228767805708670820272156961006051145391439699424323614804592744303684225145247841433529225552163581559282488392857266882312984700382669715741063377371222253648754247491750529200477737633905801108103360926750863387894440654517381833091508812763583838365998827313080597816012519211986558781914876280251046978755617983270634094727892198617073280743310598477355356151548717970653915903752570989924068184556201124026257678440002429767299557260128042204918499849691354689077750312222618942074334825387500713071618441984522172755533773149871387183813368573949650008102401056560421913682905451350037518215813712314627713992465764982446583403195569731072509417149737885495908934270504648792169549307856114361368776625870715631555722102123780881740629942379264478237247107153668413151796760901794773900621899527786123911920508697480843975492305245730200831824864119295702857296611291293382033325713325023991787718196709495568616850464990370824253083007765997840281632100092056787788144121916386692909806706505523452199723345105385699700888566921586433010091647873679068302256062726612690866062693701051731796888544696813115640200158632841326853144495463189111215773208383432243455306453160941568553125648663788834449492558220034066819121573922070769572139095649043865119471737100220856020580121707161056874894702442166181977835650576779197443213865459184811569296899797749068617733850542515914814095160703760620999290360213468636938046296505776788046571083588646438021224917637511354426213132254970802142404637674443832286222001308588989876519147694076569133522572034196243852217212269654713051396521584001173413925057368880529431030156445427626065236132842080844832974707853457443136186320866457698392183793933271021381343670581107294293676641204821798823862124977859381886937003472164358070921491197016933446834445712730305899191507969532872967865550298405994765786324380083138096339872031650691404192919597895384354567117808812447344009238218335118711774959079208972043537174713939169693220863384433792053364433658796260702663334627995576979459063009354667185025025704026705765861033259195551280288846528746349910927463862926687616510878333270601516659149671367285174525265212067424430170584606477084412132109315534170709671554337837613044978523862927210594249957023997849925299864012320369773754029938847383599425560849440148726338793856955177500181224301330073763008554087527221336353479568400228097914423309203123800263668212279534472556006304897520947790270582026177148071232483209567286037478803575960033021023836439321866341480901907246971810326303621254470993370915030985144241206637839892694212556835767638318854736201738530454981552111140217314041911884770799615266097540818835637103776500021322459142443301603539184318731905792852627207132692879721458501556141493007282842527478148170424615067560048921305417376599470337539034448984348608543624722626861969579347560184363585522640916441988124257630077407991400602331795271372026910918095947498069367391875713112533315209413243384627910367612725705875296622709053481474405228181576122990249758604774735039236954138783768717223896806241274675601375400043523853002536881910352371571613578710155096842012986987758891282392629312669974166942924651151222113818671790219160657784336674670228374239023877684688455550097736914169510737631410390946399232238203388443242459543175359323450633166371918857689782421661735640902655569169309147731889656895170016551182540471566226330547083663897411673200633933911310231343857226720074455301404219782484736584046276358235093748439095208159056410258670664410737145589768274721587510299840614873696616756103043105065476298331327487206669810929024140454730049711599965539176147233076904842940680786832574418432303354586198486630296868298026394120016992482376211053506012426223554427152688098414782524367529276481371029629505205139858381551580010345083715965928403667487881274947722587347489780608532604196028573070822702826185458733921473812262803679514977621041991972283433072302786441387206969179826595791979551024657547598343791741061890966913661506634745806791452989226189674292520379328262646668098135149405020027450766970062161537562600876351752878896608210299333954921169476473019665819538889950505564847419951065081292163193418434429856006980449260192729228040495422277547801033243736247508430302876479243472321335056053998405762429676187261086765370919760398806747154755827427050754713600456102531844508496759745295293495621350523524454474106857602738332858295190636853311815935027995500151722821155054786148522015406215283408132820303569471018731058343387423974203839595856264036743197023032067104768474874949037898692806725252799112951446199203090387686670255784872326999465861662211629459712603789712258970458899317871145323094876832466991158605971303278230282194673892797815124879873276910730620813422615868671527756269718963803209908149582943216125989278369596660304319322513307565409632466774670415235772583041906503771000194960860420410892822990980734474354179965580402289484744207047567935920493020042917023931622528917628743945374293891597220070959003003775480662684767404842815672974714264625921022578520970208674230260102144933443089587689143191278989530686477033190100749418953430285732422081061136531608672875319546911138477531359451021627701674700849130933625766709093126641424878536396154591460782121946418941261200107401753979607459005949348511691940251987117589867865547103771164712264289966986180135385130888638983709592079958086225310167317342315149699136934453613840554321809079063762409494151786830285537003605525319875520460390940408076272917610763439981351363146861275258615603875556781749337954158031478353031664008534544740665666445128111801113530300112062379564044156760989191605521616724750704278186609030249570588590933734776420028327507143004745466514042396232823994205346708654806784831575876683889266386092757384737385028194548748591035835645281812448802341833934815799118326699195568224114335225649490127977974045448788277485039729666759537683976979662748250571811110931414772308807892001296723257979789524225671560046740493582493392895345929889634607836455039235182961702764006744008244463767223476736796313635122908768496787783997357654322133561361419500489861287660737859586940219150848703991780107022845743761344491090439626600362101626487712901448449858132904065958614497480910686239443082202043426670772489929327195907683596569645931348642857899321216655985707423718204630796102932256182508239121028360035746673410076975064907826899605838456261199954313418283820296039107564708643001658637570469128428421995061621260859073038859963801636428690424214419025190208351642888628344668084195519699154786256767875598649608283883449226374267542134116640450336084589609216364139840846550074355598448918457616211329175276442714641708162604410663076026331312378803764309802460868544574684247535363962062102152000967551802585707224832931425780268064555968553403166562462498493662958480313578873276228771584805579829736764270532582239453041521147101030220705187988740805262010707550280562796676791522673313863500750682834957513001524168016218481522757777312512429001610489298553283126526624179854637014770264325252635959771233049779237842734889208938782432967818053563703847463046493099888095066382080640426926513014904487498627843406978893293997700920832174112152912323083407911197842927083693703521477346775476511488405809037965681277549379657374880659863063334169730271348291083418852339139369547171448689991346747287302475049582245550295030509565587403916062534052570540197722207692645367491436191892362527286067278798513075496479652316466346025062463598069657902069900345906072394451368444324937060968720254904388125037163129544274189531448970555342701359134272765315871057126370840414164251267979251401417028638628611243387676223889334344363188951936595777418270708114575108341791320116814278494714205308802575612242339436367285902902795833768496618637478194026872644946783102795143273193979875767419275297249326314014442089194964494082454542211796930128921890738473280910080968683888248667985871473125170018490733996209202753875462491219589202800659519686716093177084870090922473577230122956126235781436664886272476473854926077901609610284742492768796697205453938070425284347506369410955086087137049435753071115714500705336995915188527042383057721679509364138908338699275275179716538241221013844157170707697879254229434563842421992588396616315211549372388666404925346750892651598507462542924049923655785704272916734575350979323446070475443237223936527874609134220516292225229211811396431148652268844389439568412404763218206397105955901023490849717769413840289125722699082162155831840419880984504807289109446781095530751557084548730823933583200290656865862374253460163848700834452519193222430588720842470310700923398644212245475120458236818070434516714191701072629797123391439284134024713697825539035238378899444599465905202088316811203568006771541306342354563528471946047824473210273896887234975687617921826067290025452315796234582405442716639300902043568459895025340869958208067587089971811827291187065049276511581893409080971433105248043309325343011254254073505633378094402159012368898394208907213186986873626072164643737219740000533388300786719534524003298250681480023297716673728027512427134049726054885188504403998659628335325370579742041762613332905994380703942428128382053907728483771910951247917059070052264880138073817984833248255689261897696159919808139289021586888187709148519810709267518599781449899363227834750071478032926717609977270022788963410189554187204671731845982437236553924856061398439268347053008903002399148969569743279419604846654798145091728826646394977374295382647583123875723345818253869307243712845790762725992194825158180360594246762165305441120048315037661211373267015505492349856484648901852015321091170785714421572987766295651069446594713484532136834858768372455620221782510114437487759850614328383341472282151121606638024031591370616904516355920897558414386572933045567317356420514679823503699899506120688049754529875567354874987183312511048039967088858422957219767139894823864775799687435248020161344725780386429526343025068273193463211264168600190704726444634881688006195513020362543943891236389769468673835104962464247700767902765286712511455557617515526076155908825498098556779870673063239159220441928114998032709479667159273513328028977178734786038532889078386564540816230569060307841516459266150555178429056911723392369131123868288000115607908146357880028447615203823011761258396563130034115015481033626505479647354832578682492375061350375478135491108726062861948529786280033250124583315767761499092086501021059342108605414667286715493329204501631015496515265671146767960934296800163753926366794233943224729759584277347385208022947544333562480332956043941285772816312090527821228447785355045842524200375807350372665938588098034790585691295053170906119156778387991138400766516433339298004880747363579516380276317399827369617771840127847978653161876525681077579428491041143446129753984918493267195356687842459888784564395277685691339207383595386201604422401082280647478242278137635852270684369706219892004228331906432737470773031324707223045598215993051834788731253001773180699381003564846413814937822561425897985764390125300438946862621798198818052103451662393970819290896388875912357110565351403797853048814918710445892692218023321864731535475241051784923899666739454675494886350027790018063124351417524744309496774144511142041147616151744225171363280053422002569732175624259077845962659215131632364360049258151115320076406153778600474058202136993648494885251029095612152850356323345418931752112911123253578361356388183190823794021088956000847154957189756335698496613390638581752056378298316472322071295971158896744112884335659814518398431905580788040238674408014598629456646368520761027077877209681099040460447675065692187552735139540078303721341332264224167878562203497589054886412172070027285232253240251220873727353201506897516949843213844551909815824460342838365593486632323323654378392984643190632414519187034949512638745229804750847597924485217320719220614933774839990230191384061883197693693658809444468153401975627369049208362170994851390811092839505309394374229079794920452872069797239914309008365356535883395450155518200542364531951807179277513696749190738545224891661826805902318278388117043957908613038849397880149850256421247986556611511717505858337672868729310971015353388598692418855143331311187825798422510483400808498242568353630691786450133458051157061982349555772092492960790563169548361262548130183106105140842536796543182937659262708192483744155133341949469862586112208888693819878138298052946045957083388154586607958627165666286631877495614859822822584040626362693965105010636249073495895871567968784142971861412932516521449576048172317999278260781929267958982848047224903315540636190489710034510346718798163784585592634146372632983365607113338682153250581568697372898315967831709706642138769407841249819435578444767739988421012501314415609354212680862942172987736421999583784340588074036222036922514925927754395119992770844534817084235937278923028222624382889225110213305515117786298088870592482993877782121857294644475136498490175845453672067670583195627018864719038037262927911238452096706223305127327008218643275224571095336926438802344590219848786797650498093303540440989215833873398353873658083389666100923273887510235635136618508327106921708440703565567724048688499668190497616402247720723097503734729921224955903538029815001596634478756907806068350596738444693006304017031917600934487667849243515003203815907711166221558371400756977869977485587222588494750530975972223102059746002033317315309789567319462900320919148503940968328368061320396058511524500522242946065089717161369543115789205553903341653744464003944596486102956532665878193604654247815251171613209296896305807167961517835760579492864328743845408280523578661690805062966445672728775461034991487809417248248803323414713739346315842862192820566219584180659654069670204533601870654748288537434012323116375985691273129011006717106788897124263969357357274691909311589042033135440073715578898566542594431311926366683146412443522020001998762450643345517215699993947605476073855199057817208122839581122864995459419446315667081107635872396890920473635624821065816188865286432821691971896252394236681271963309219025743249101296045772796926671336675967405950332804355513080839175983706495030488884738445006742494467038666762214955722991091849177505563610613440091820479866989147697714707681242930805593894061753023100030874086975071079176998312089552701135280936042254319760021047852527548766739352435130731247796722894509186546707997757098789627168991538549858558201615746977509646710488210405230404003967447791704851148293582919652640262016622806689111471314727228552012011858591101261810798768031714141530137138208741937774795072813738222970290927316144471371630766492240045491729823673365848994093690295310176212981182595322373438613073344104357572325825302873452459086318205082237452767139095452252893436836719518617544954479262574857962886245960524105846084057432232165345140579428287833243446918444041946559274614628857133117581694904441846965718748922960458982417808369126501933795667498940914647051593357786080945444650247762525131281584490067421630530585454992257730855180586888313576455677420680137735749837192778941394278516561980550691355311924685786508723129019045413688009866224363253420364028788196755120630225172419561220752631950322633765918622271960608099047452997368464534047854546852304928714796718469526695588293274621827701359468748778167351353583363675843938391054439620504565366925573946367445329384463336708344918084084741614538749974136485347879737258903385754841699744348264059782248149442408048023127366394696367481163891616019189095821237903977166765134076036325261686604313351431799401711739103363167824599507737625039891245664411885803774186010064871481861936428874769485381494133299448968593178125112402401824129831156574765734783469736567776399094084642659787377671909680168426768205771132164816710022975118306506930019115225890046927519221618854025201591989476335695619749240930179483136568266520424290317209913165866929737542926883380257631267373709716581755607468276566274747719519098381175352675990825520795878211849218536820346292972945785428563970710056014921004059646892606329838771734885692305428779113922980071646283452660755830106760852026658073482586344297889669117527231256512160312566168501610342328484735414392301640801119112015841158660755625264753588822561621137844388006272186820630412405077771797511592559521725740527148140347861229839246659205189740201913808125362919401013008703761091181497176847365729394412738828476691991349631778053971653836383004791990698183838613569716372293896278065178923564480320410207869720746620138108256568070620088296326646896668762590230692299321543239258931109198701829889994652419651567447192705119269249573918345997375380208075795992836010600478591880612559024549681646787451050933138213295302223025297675335162962325959050652825304708256900423736193533285464351544721580365997515882821978198964234584795681412601749483915108275629632557967098538070183822494052443980309615184775999821686357772561573412681935782397541430699156717069689194117510110775765944670124666365125921877798190152226512095389472571927240234893782942115741115187072318919315385443522813107710975368113064052311885862744954826577468038050496735389724059091437716146653323062938064161884213028499099576658457710459551674474533967320798191707820185594336777014060985105170500411728573726493842729299385527264280084109590021586853835201294225042603222086567252001053810065520733567793073604056819478034095977878110500294220553645859380216294958753842194366814052156216167420528160905421240723885510924530192937708723432940863130582146506062076191807184738622872367403718292658806837703677471543047091029011756063697764137958892255005754620685966177612056736640381221504861581144591882940069760026064677579697295563834551861858296165562269331391274688968977256038939006682256899564638285830472103960366305913224148141522729455310792303285640690379634100699475130259693799434577776585560623853376767205252541457295826234753224452504696468855160139860764943433938551953996032958968170008788314896627225375483183169567389090792527898430367557795847298663547259446874552157124217378256103254572257991095135962063238810990630525594281968896577986024678647676971683739171524494131720969782320083805120182899983299191550212485229419536046455319849542922800740306734280460645209540386693357344638077981174743949690923605210975632168696635489382764246079086201454653179867625387259197964322023814242680799461446253051884934935313743982809586646967367573373954908086386896112469563526293694045337297081711231376671160807620338766680642554346602455359120979615370803246479836538908061971406807997447543715787075984417386163368454878090393792766307647684401370964374803702641672305244176109054618093036714094306439464657430578928879925705101033804862545157520394624418887729873418172387426095423826977264674059857791260225046381932824381840120076526835801720318123419588933398478821190925132685157222064050558581401180967242920011010829098057320795700854373229013957019214077737940487854039464768301926463887694536753115546629065554468382908903258374356478975226983195124853663333459447037709722135828306875533213173164350074880418673986413580228474095488982251111792342099415292815509006875379986515516717948482893987525337522938911032398403341501610756507698290896425913507842716831761010229887876413861702993432309672357640770271054547544367077019987878111225356898417050109041728002701699334987011059770708541834775963997054091815025115747016956283911799722907792473962636997649225093831870916048547118005948065933088887217280560632905223165830686673959645915716645620582047388283279596860536594874100360788944169336208178143418456710056374801228492387975702009232020950668261066610967957406687729802916752228977311623619088311956230835589454021194368006292880500945546078374226902479848814655138445159371291476212538471496762745652205738246315707653235602322012927421589787605351291324903491426730079064344404073040931541818599170455343460591629282566014004429796584641595218208821328699340920576988769143825165927415740632682229587587856647195351796575390905037753505636993194933328067243718740871197678460069800270465461744111934354134982552155040256360368728179900356477708402837550707982305334728242629278045899245814766729910765838267959341074378250432779283845679491820645171805285323415372582621964671144507229240405761694816277720650481165822950663361597182108330226130693182779184203349728604939384512775811982847090909007884064590467842154688952727228128279448447187563119636178406647505763909704825703060434122374408663458194508415014728804316451237431132545812641540514147221754933047585599606309196598292826295513047169462900145136633584869567195438400784166369508910023628225389004477602973567434419867166411521230012390909447480056655014200826072757050134592828295373905982838137355844088493451358265835714646613633262007244158661638258178289951470256429667279895098189350757128904535079466231517421333417627875734654051838202806420756315394194450481587417960373899617975206416416665467475347816014873803844094990574305813371224556549770439160560912681454756636974449001231624860197735163345826528680450219367373828927631933893687416451141328460602182670822892120812681036275383977456507434248044362197052459959145634527341338029626507798367125737494286534807844962996830573390467608154377429850729121631955103313343943483720362028961406756873205267884904021198947232173163715257473274470770673732432571964039333208951617407666456673270949652881583897669255603365813158715699546015826765049827569482607209413745712425802078813581776553840490097238749155237109657756762471599538834031165264618807316732010929520742193513716512232465754356659936231254070174960173307001818777262871729115086853821967391863819837086324369459701921567557711093412505868584236850373940720065111397559950194007173880284282958161839043017468631576965885200514853838236569360712319058591845477267895252424833257576479155179215518797158756893666277949769527020204676683910339547881551714651802799560380632225162653157970362326229213610174930582683303746631406439211799677337973290551149458319264422148240481619707203166314508766026950863385560874832123169077569848046683152605047106812496489684775176171837032207622554744426426827627554664005579751986743555588130912422285320208363411888811071394515403973636055030693764293366116707095894213934099683540002791944308532804732976853460272683341083465590984169730810767685372230721372003283282304049413639254015564087256153206877826602316206505887031428180877624877574168538046601508335835745194975333634220162713144345146511776136045314106221422675166573671460075034590566138814968845882331632195274310116033138196117471789773800132500228074250413497884441513837831916623912246053375318722356898783043426925185680322223188428418702477262461753115603438150766951412738881914592559870616087303130857960657461743170467648638808269629637188305100923668006183601006429668302852253256821653340417619709740137908699191496296689242407136382576369014537154763549057818440498625396473046246506807084747300375050385241617485555385614867507495077580114795243381757721429820585288129249071081638528791761432175976127542641439600696794636267193142821019183360106281789470040883825550238434549504968661483229448181960971341946819782301505458233268398966497908967954485372105599787799246589261880554043494249132989872314992063296968183013794965758695786262876983295791265854567019019722674454636568278949094777659628095611018855583241817683588742267116455384754218352406437705235869124726219815930431970424403414175624108927641006882210864825501499250765077013875842401877234941452312510054539294540339392476219630691230156501722636784051792289758634662846028020914660757972044843784932393174248701494186623179748000359159855511885639402244195479924765982418169341860006050180383127373623002018695250386199572269767954591990332564721180695494452460946744927155956553796525600522915427337636592077592456782503102174457288663840535232854833678867287510995909682233301651547592007527707912303465191130060929607929551325282723365557666661548064240851610284700542823210035416039107494271972630708882891343809284999616994657119578200973075618600962678625735000063280209083142882807602387108258826365191404023144767057887196526886333502461311574345428331701406297864475250221904603647944240047486971514001227382069217476483493748487173927740169630317835878350858421736702567562882088138184624203623227222793271653772113062336645485272885865139307064029188738710755290894144413736459900988642498068914537001790561808410558681742913872482358516029007873739386346444755958459695463894819118837661277107307906150267988731686362271552426721861302416936578171858327444243314902471749223990681793627558766626229194305751080447324875029348958585132213421441200128435655020719855658493136848870648752635585692573153419227099712154793352538686985332463288185712464174571671632559631114867679648982678261360463782616721027650382510028157284644914845402789102251266528931919221371107305625760093061840249598015753186322694910498301284266805058672495620114636195298951315247434220403417821089877650555095154030970500515478703106336284508763529717012768430190104321202177064946588253421830066248350056709601451307727006314451850013438846307925731740928702191025881061950579390098218060050986077808950037846944778197968013755203189497007072444904580206911523646663920212935920099107010115448791583739326226769222593468690187318409967040324170420325355527137566360335570083493606588878153905419658073067337189385729500849630860125291124725213777871691411111610824946053172448801628479914984376080940943075569507296215191077068172381627615293600179003107503162629933769884149408768406978783382700570170218149144657134209154279100585637110725020557495577912698615857941469208022243654057085125078168836054423273239060706575725165423015246519083658820703095189159141300091399129652822075291561674329437810505238573734275866307722985939155133162459067757841356713622907415800909095465665609164319442384360928330952866252772929506246916594937085671740697413604094618892119805443428221189002981311646068362321272733110511020884549931377786002276185410750071623863638402075624655614176881174889969613335777997797431729872011866722065958905681891102357336704862438163978537235205646112206756569468862157969090351090694031659123975585649180202092901226649113405722606681284928997027353345099963527626939658091625749152555323509647960490931954950589787580051287129547763401594214243781355683866424874015396642853206206941804396383944830061743800639360754410031939674358268967425460214211477738754998016266403662533406705423789166644126797663551888521457102733863539883684007593937846916625186067613081633331091399097030902171497195500667406452964434052419275534607476250040730633894576318260272483852581917117906206531979404697221678451909747691172040688988777642532518191876338959213825361591330789190446019082102563477813941524532351652542125009836517677022972888523599530227099621668356082521341286607551701930455808039892500428578617441576537848490659432643240813280126452644493093910558153682482851244827936497402019126661964989338582535453043966100690017914210682338227254359461078837274040397482611624168773845922638461478140928753673050456793743693533470011096319560765314304297922460664539067976297815935659794979976870088089086657371077958910381817415221020875739327033555012225396713734738646494987080979005880271222304532452737745496278322914277627333903976248320095276675762960155637909281423063455255129950130844302663843129982628748739825635796320619274398858236243755187295387832653142612530662829270258163697877358355516286197054972463925122410520984404158491389714109731609516320391303177728613659236518315713413135130780746908662918623704635872973903768479709287005985906651012466469338799355161528108494131081919886454647972915372644143870933825879720289237909146558091685295683170072076513879863043963536740500009333102324797019803578927665625303727138784782502198453261072459038938278066026371383021097952631617489659179020691063429346905823931260132650674963928199599461563643624262445797706919288988548246262156952919371520601729549191770643377200611818441909836224178778831041423975301123405627439844361900821943743108911510349874354501852661020057468695223250690304681810577203462552747095314213225994780955868548586936314098748170070226211090910203173366183636572043914544950367762848389502073696454912701694899973732507179755990173233653302999018917566162471918013133351610856001828677665892438113051590146658535066157851370377968624648551436252513980851173327681914159362662314488146353998423234272477740555654546215427442505756390855569056759707771751177802484970004892012078525529233904616563944743896668004436902032238939125348579496792106989167696061344853672569010824506149457301813662467305271974753606068916573740833426230909814397488756778846423297814353936932503117409936522604149515242079937260104804782606870183361859714464139834632439758855612816474620049857600767246027425674422936863270318595105865250752950410850990394754046114656862615664653274894188549190475283128557719931579646595251827864057663659011925663881803482554218644323959869048769632038506332581810359438089351395537814343032085005832215483516299137095013011599924115278401021575562079145870852544746687520427410822378904167391605529307257178177927940663227781677129355795442893754553697474285208246092832275836544685963404179014629161731137977785462956910961170511738229080068205718563378087377259585410342499099895109527716853231512175291429806116696557154753704621970206156729565325412572184452384059484904062170020083013153399974208657524589790984869144751810078577836230052533570090322557232514871360774884355275601151019919038707434467850992585447352756896598598492385568813728906402146822935533241170712818654078530819335270633284029407399419089638967842321201914552994053498091359434623933289502461593222918828001855803266190947172700948667148315228948975581548972263888273897313024537263292242137707477699282523241945166744336195321716846945744808696774258025890959065399893325691033249724793615981062430246051550155295002271990023351955789604126180863889484425029894696687262208591446931444938155244074409926860774696676535930120075000662280276551629024786252444937360095531491380275765849352378361959705112549749415643578177416997669326962100923719312239582977082993490646702134328873802245688680222636640314433984265012753917092069073354689817551994253448527078214225113333792840129208119650598834942430668378707351906430708011344751485625472676177465851700001661777732103417557248770842864214597339389296609476711651201846154555260831276638999124012448990759901619859769227280199342716896436119563656100426021722997506183386040463358193070519818962994547356391834590519198173432975952888951359225591747466494767834141924447637494580090451895874286682189379831362560238656982347651790713279991217063043724725894912462192109241619847559083663207615554405691351443715257336217090146142142995210907778402001591477835723336598821430156247119556585243574338532273792596334014394122662979209881116826649723367636638750419673144539593523224489843264393257136692344249546146716057100355475866218690390820400044495095538076150019465708246526677947889365654537076415646462185109194657050678011970101449712350707037941724625556095736608055307788408981540034844195688345602255912966790467835068451501168296310721408495198467606019720288272880705775299174127012817102741768880299645351180368145808351311426665958341954778582370383825320801428393404939551499766144061959823496513776466275506379211032824183374883519448384124976588856446227184286232351068358249791346470922720841521474076773312567828713748270578074557834667652612323824089597321870073228324299175698772437040165886420849620377536087955699594738642033608849741161164485998558494833196026582751389952849060991679550452065081145744598854179805691532875215622283316825643691439287504754840420945364158051670193278110755821330909399534131411314007063094249291954543515286509544919013762191169047088949783692571623599732810115794200733323220104801318114523996103606805462523288086389857384702603334739984128519970560095101421467062446676388150632515684923632011654797788664142322997737814827849276904767678146450164212075226374206651579024359528127458975430506112103903566380391528256310597599495839711066771922052039692221361930408726488002901523309902565834510286057613725352490668910133916678979279998960852908882020308756024849168270432597573430174818421631337178190141887086006986914276186350874044961561354810856917302779626499047620028779512376225798191832742875764661035202385421749901030015726463938938125669806115224288702329252736552183047972251545787328104338908900556981222472281998473228503718710783585604341405300979288907860208861948660044560420458100517287475070362347061782488266861166259150768438130961369553428400122200361573014497390701717800605507849121090628732314595363158971016402984927418915725494490130716750567949325124542423699905038400009982808891111102289121018902870088627883972350698873703639138423846189801268314535818155894028341062603802419557745099482760966367912084661452862338300417625445179606161385058723091765035102542748715108095984502647718326843259782858870152021927480440684694427082257700253633996254844233947192838832983944251049139941428251743505194807244909135522589296751693490502056207776625074806537516259856196846666325445842644533639663769856809474531056406415617242114787217749210095251400573006043855084079840652597098329581284153416542442644189756939419714420406041497637511102724841476368785841433207191424493148862735282061705839438273658144109852660946241131390145932125886573176529590712724289065680373220228900061353083586920852661439993103881939843095721031980429156035031169970302797834221225331224764070171140124139168890945857151553389372920528381697605263759339610071931628921990989239754926446494259250917135682348129925624367181973962262715121101616459467190477696652510483659410583667146416410792403238622912581744884578483726150639832301304366764245362437171073282575667131540088308416844145178649136196763132688139656114093339451150033812501841828742696204996333782522655206269682728172821883658238842294981082737244520638591733844942328870580884246501661468284983449767622832548884233393367098256927661723530848132514399712293400275522472518537025800204520081394279123065612631518378781377737959011497399607874999207755068905010730891355401047483303265026738067683400074027735033700347546674889117341800996105132068837373078068070622989691967115313876436743211362644651299080632783627913790078773614113219932901905406914535101327293779114018861356837918426083767569503288339114926537381632368804781794378166635658730739061185494564747332874747123908662563736543731026256502588731906445077604659573226152383601878662079816258069818877219164343025012396733119344887012590939183592430847131008392040141566389219237860494999819037980601486656639088784333640925043526551176196777194170404875488611684478403017464331843062209948197605465547514984482163592328481818904437461307003758841613627892754512079112807925124061579304594855886233280068576336040527985575913121206295603092440971815485391981980026321655862776270935179521246623984438808515137246120397589713505167228123484613963003656805879816764707894987360774080113475709289917305525401171898143867942829529312232670018112594537261621808762320012441543131375193440859952730024452654185051531992981210713685656386226578976154134022927208077473513450110345522563445021221641900829130771608826034151123694623028146956384236961086331026416628130180430991268920385937532082392011721385340670986301490220578671452870728136534058218220542475025082558445088200353377454806624896734589622247607063694068386326983905784381032500631441140146525534322198884623142156095933472371968700863517924126750889950912704760755663882850212267512566887789736684808872472061060121757783639972481781340164805032808903625778234106569042461827300801430336418471683883195213724230038593836758693118740901978189854872289319399216843837886580035334015009118570843350225253029670642544324002737064963072735445996237188215317973567307098378146063953575529767627257666619908789313406676141256961270520884670816501667507415237916128650569158228190266555881345595836505737129750234361783487831215469442354073077594969462437703207927718419859208905223256868187557280734607182030349941406277047001554906287815221022613015282141625195154741020854391309566578540088656122209622679578270981972105559808049427935897119542812737523465331169549784698950464914486678910696625277840417533813383097941725919859031525369307378474228285313833744454814444652594871537405890624713843549463727170579562587621617700709937678942030686746908087605596054388446256749925039754057960268603949578406940019015716739677283198195259324482844586579063563884788154323727438525334152279568164469862048827425514857377412829691686368303350521939696973445405570213971338453233309710394302336294972106498087443834215375795727668301207668069399049244797217397017247093833387369230365143965062485915244123961595397203517727749994932637815867883135177806039176606754119595267017754240339220319074680764209661239470690259009200688038063428147163001489826101606109258303134158214811712548599935216276579833737432075158570474295631366977893776903499871677521369752542599190923505810569943806721827957069753779271813258408637589660141640798781956936378555249869811643967639289639433060855978625758995135647654199086289774518432972372495008339092865615069919609606793607154954686206845950727581479267003804105104171001795638263256918109178016275486124601089687057313134919353090072049713025332711849509944121635170514058490399364660725617590524654916175262172035638850008448533911052445095948625147989770626107967693083930864759428312066426318421191131821977927045149498855982873373246559303319433093198839189695095009990789370611198299060042569552645449869160826773187017728824114642810432725685972774791652374359261734546022504674773132741767110891091371505847591934986327209744226335043587056538306309666129614417809201579953907531549731123367832163719541229579878467300778006074435343101327919052416351956067487490655128141864154753520027235791428627932503282565064246407713663777847823185654316325699602865781274511638565604438535098507225295987861955094437375647960536556684689023854672374179100711849805242431067825922719080372315397935975334414742034747733422422713034117631732213986426231349198166290945017042218289233725109948779330286029094022353159692365197990917682984018601317429082575805091721836355210919939794028155597917735634498351859704030515966491890676466598412250453434602595708437918585423585731238159446589572743138027324969713224559310233277408703081885915771284486158985866376630643482180904713013233283480560039522462723690844692579744590811784240677296910923391403911109086172820063738777379100695269364547123245426513967463920286140955427839061579030618477740744161443714942382634239650744166609618922007277353476084076771052851749010726344469199482452632511396017605644723657177898662135419554500357056415744826719299934287724777408749132055311867336071595263564106865190130040465708608427147815683195379078121532143165345985402497994765262873913917217989658742778809608546995404380243970720023874784626985970703815100925776951942769942259607293447360781389900875311257863660949235368438895909929723215061697147385118220461542761593847665036351612213194419593645597867732536171648834924298496516184333021692858773585155554938388158488996053167561442461989853562872685437077283143767089366363414920775775385797857903432445751721335286055279729010996852300615095372701695044761060519903377376935595791854398233140771214533650283407681369153632265250388769251035348995445402405748753747129456746864721549636246348268381212327446692557610685653020882455803795688695040214951593259059676876628406244088394194618835498148038657758068821655182452107418376424115046064254891944518252769929458715251906227997057430627159793029735606129271480208457692979883513224937799537290886899588461066356712258464283123516858313448442120001036185592221767405420442331851361094007275391908360451048198884046447286978136510748098525969390554170531346283525354433380608504714940263135106292613705501840448512418819751433075991047510212050693692730447103335650548479900518036960254435318071611718666565452115925077175188259565390053450489579169528301255892333419066150996778806923147091625388026824812228607326312596692454647881426744903517215886717239016495067913726670410236776444332317410651504636194431734014961630293497510321734974170331755094529745170442020589531663663458049582134377973887830986778818807361728934737863173131955402664207823826906504197298077738167432574849663398432756672337022374606838057147237393595227897576885147759637360433188129016496422259807881812924259251251525567690579254805238065066216284489322376945433750499069701836200184407597893290074377138996838063821448714425944517333172258022742338013337321019423247175025752976351483388570721844583573007592888255439320004164395185965216809743931364943442087895428168690754473108507847961446532197315744478981150540027875791210489979151231398517902861116312585110662996007585069422589708599785622650703822130557351859861922440748893089971239845354477143214412937724672749691084542964927516580737257719574348667464708674139749517559059101640593033238318143820842559817819346942276616281600567455028894321033912958785990781836513299741400029866596800432854529087513581762608888786132690079744262154724255634330432557901755996416177559957114430265609688488446910178186038641825645357557479482145765494304627463982329013808235853324441006445613744699219211171413911904131245207775739198093002954078901702486374815002088995188856992724570884470082397523520979621753532791743960877262894944530892791483848695379691369789375111049158446017501827221229350243802871637895349810394728196038939661342661475935975539887985309372987841698361833514410868841881672290720766209090233457469806801122287999677128269999000155744655996374836691108501846342205742763513059632918142876576217084513772525588987029127124945770304013587483455740164674674438819306345691383876664619286365051364903215184714475767200269673124345140767289696155633888994208274105035653693585250801895516402417765725437123902430328442999469853872800397447338274302157788318583954632651306897479777889923344803878037665938880115943412172100625566763328872669753349118559601073725957779044019391919458753054314385592856751710886735251904250975996653684922267104733706596051075475615587584618057846722132259071625247378266347594237215786795626237823006557403883834575037689310018995363870889123541525422489986403852353251966692858109701128763119444318337069067265275055590648884684766300561476972761807910768098186037334191696500744413340338005052959460383828597315899616172347807825396052839618192501099048984871027218982317475758514073462576062234239473894818662390956460455170275401726878077197411705805895351187938192388794013491042263097854938827335201769031920799620138855356166225232277976588891315995876398579816817770414328590621370539256476357266169773102953713371779359994258337538262062034904656256109463991484026934005408791965040300514769175492126737099381032560965913711808291075834993936417862838490563226883667836487140127802453004176734656815173136535664440262388415347500234812725719360432513996521372275103035635737780129461979912895026901412018333627172552440265471383962421199391086878746548009982712326985523923750676543294866149854279931542947715487333973338327298548907913950062238197897419251242669218421311954544867778927387468213899417545846036549012976336304567118397688897253442344309804041527061407315470578751826525240815355250496175259868047328651084564243412411790030194145570626188399093350204515700120990403773949192940530878627585929204927325400214948584076387855652968821477660647414582404826337014614045554074274627614789444940456813146750001994988118457956996008514088892423537858993987915440079444077930678483984867925485125040727119037759814930333539335662810000179499243062670902081102674717485175672606463046311031481795871893147557244898614734396511329068339678764581701837715510771070695244855161085263898322783673524144189239269865982072049694147979428716038339262138765748414323751680245788949739321780201091103969454222907915800582728361989144488808323063080658688433544691008648285744956498589012986685022757457239432694180331981601966131479216794167341392445792511599326607722509046146483407320270586806875316100220307367593625544655753014559334299285984432076606769370026195341715780523321221183078922137800226314639937934873667653337364168158639229967029788231267642361561273133205724166148148289302570706629891410055296019553993003345508999782723609764920006678270717970362871544044256789181092048724898261107554519936415303457262236578621981401909248324005565493680627057442462132431126351135348330490316917880662294290278858752932772743418442707101817004575994022511548842199773326623550807025191606415621167106534747462794078102336552630223022645116841889041080768542150627547058113100903921367232867868237113268474394172261625125231469086660525754426720621690897326402761780676853712528794412258154125154763585104277806657435686989312780663372950388039578727949511465774266791268830137395911023242079724426628425865964942558989220175776589772985986126869099305283968069495275187225087064278268963262599485240347287082197275282884198672730441485367653044977261026546596052514049303899500744343350635675516270836129014439293486368985891910711556485574504458619069687843029959678393912028357867995878430229437107740822560892573435380450499509746910363218647267054640318304159502762860106126492655097794465716883317474825211062566511017352516220549828696603322877265956943008291076268805307178704375669817284466268973542748858560853866611057294509359550480428254635553723793295422241218759772777886651515537860279763221366659433020346441716154312387030114321541476892251589232410825007827050972382170675318365450390428740335175865576809930982100336955628020662589970766775177330596698712087463715064581810515846248395533923777673120749659792960039876655620711842586203860749461671487701155089694636105209585007520362443221798806135122165690176688460441888578732378610209255341178757970456351168140116210033361813802053460218660309310578955253018119012568565257794448766761171037177230264189009667102295354832066688090088184218945121967396774074436243478581243376618633050456093575930231022113925035286387414360523193496694814096029700650444466003611757259772114101044446783731225773348662669950140055241438140283809214855471021963009714168696693554857382787974620632483444284507932207968247775382902397571499088594834620196054377029667314535055957617633063777297345515372155886003467672316728994220788036773166432370627822539583499629302777783267543520146574088398224300761042454923097178801903270184194342303156680626874247757620000502346779248705390970928443081891841109689452823964724197067610171603676966438663374853565465982912931046968114352993351704870149635523266396719046834116509549708475379466269555004236204101127788754244532211609594524242074136764659975140452837847734855191936853229809372900840631978708785320268224819687694314072762457064315852340670281116645453071044945824338268257304072626977132193483038909875351259481451169934054440373656177916370486699331979540232891460204024269609087087256583487001139578398940122785559561790936134437834223866582706647501350246365168585255929946918316813190136183458413861591337044178885461815652083463377328738908540151267465405796938752698841656196041373034966972985712286494501816067078388218871909463865549486980042156032315697948113529773408197296960312108659978216745766138562745717167307853026945429182535036641724206691149862240004996489536747426280948970514690842245097583551002810144576082192857567350382197998459270357882696782806874690850851418347675106275634686935853327027029109467234102095638333780160333555077145267596676698194935705677530409440707659452447218095234330234853726918537376896502433190870237994630191449011196822591863717940106091166017393273905307468208158089856683046782130810573259821475740438216190440248588472609398011083965436767217011132667613266197751777522224024446468446965599624533780383632902874645406286777488756760051173196351209082729878622009120058676623771617850527928952900852254344728669567784384189477528862013998648456337496361949222954097245147927118012281756511093798979477242824403725611048117670810899838214667399611682130801307141792102122564856767502423271399926970007069298962048422915943884418742223897452074088747046285976557331124775405699196118383863898813199502488527861962456018834226631755395940331993326513310584684059786411766756141183795564625337897652816059152265898290458282391907610864805343776229385946789037409700521167022076908029198178519967885897038598671321340114201455010124272607714091049716355091655066855639415881661053915938696305312391182844073143925593428359430005450984790190849335456421203264788696360573035440937984948148163275696424046821386614625044359128895468966464760003181965475585581081187686276041349306824481874226072052641957279973321064655033658130456177223712192206536266809142705979567937643636761481530000880713243702258901851422470553053808541872670686742560096322704696182280893844049335226632577156173596447509910081504518564502601173878406080302374440766147294594845844858115080731955864724073394291179360649453966058327712844713912616572631952733410139874146569889602543053946611039928177017889626710504327989677314317353440386434426455640444202402359893673594466370397091555086783370995189945536603191800122811851340960638883137813644336302439005152803697717697734152643938623022724614410145201503754949879996222094099598723529561084042886738920741099764490630012554037582615035530373498242300528952769016528044334627628751075707405112774091990349195246655907578180283747460887039719544824023807316136147791129138144817301663948706639944954470557471886032866869784702735947488023066075160315663217317394466986634894170528541176087838355453029240038774601657119293115567676860104411603157797851510776792935787301478259314725546715654547995555638778214830559943809887603026221373716915161031039678836470674425367792320158501970252693969129114140802230410344142095944621707785897017344052954384350844219335579987547896179746763871907734631680504518504539316318424435806375594266816845640673403804833533440565634194429515293267059561922759591767048358469477818279295922636533950501798366051205336946405149752081659403813495858033091115072277608369365732591506584370687835202312215264039974744120950491317000182154812236720882246780147936839070631743079785588536046270834291431167059750687196642517611926235536820380903452006748681037671957428336413139971721593443466875621553920427225911426571257477775556265800844470649331241798561247441594642990786519004393636452412612639952410255214317962973139099675460847999690345384336198919796809129587777186387578751234118209052323488287648462632355733853484055290480997940707434527801879798059162309296252305335501536625516406197470420591444009263909591637190496539634587815262205407536411335084377646807959459214129853483980055939626171131271918558867703408554590243958268599458016495419503022653633718357996414922716799200992297004202318145799624628463494781012370655946618367210494587994089096295811585432831136168636183307431233983553456598251685003093337774456147757848806270006131891095452041667137351517822111021058115701882430381827578532879482082160438257020312202728550982516450803295849419055763787754764058433468251611020653407429243482201809261869651101651769860862264323128035143884468509536747817923806428641566203810121929066384754256974786942245063135334898499449225984150401393514713256078559060702615784613761848026130161344716240177110697806163340269208042236326823174626331279712532729444700828017258646698374251683741760966522440698424282206997993479594243864898199325083372262281115480994681973186980290762263372892145329054965161529838310650161207989274094447656183326883976298391199159370425868117684005437463612156138703351193173524863985356921513939282807065812122747764797357308802455728405045187059055391219622591599608561222661612482263269769538603085779742544185308489765213323746966645500915196710071226032712244195623665309183278759794592332564622992862638938799190760883749157543768552122640667277254022311200834506377099068244074368948259553782289004747966666477088828511308990969240092435213092978147774615021066197547630913483995838150668382227566091987387193219152043067546045097544980510307321249000828765386159079714421636778597842249600252975746161761507373945446279441436399707548797381735086991688908372864913445846113188340896610059694249391173784697649469619560956524187585301807009802113175821441144128112013724655350372897940831368233274430219680388358159166126590714633138153701064642340476697025731964075906253429060699046903687175857639118296474898808715690314372440068393980981355771781453754559943241667751245527784188816034041053533561223347679105461945724369528693741476612435593635707190710110484483072725715612604462792636897149452984367720533248081736551579415995493931385711277962651012370147122303713126110820004212977596334375433523492464867142767121703699266683514086983518350396300453427941132503657346869913441637059586100902622814133046802231198769872916645363651329649883786010527566656764077204295971632445886111094832391845401265700230929046034915200815395289075246656789321413229474044863574479555436973776589433627816640957736883944983967132356025843172200156106544675401900590357303449735189724908669206455274926508804361963325089768826881124297321738786278814924555028485819233671339176309602104830514813608175861582100703945860208073999162355606342594956966365238129889563154646117994817572336430625340222708409913612564347580228019472383533621265599526428374342057890845552954751858782048539944438437918243230248256136754089053461661577502130388999488827099467141098523512431296450629173994269186779078532696812402641790021082905171929898125976239915829380161582334310087341778444355843248744353486410113619992484762622060934426736131913931769483472682558348779877553207431886726896321504323691899976469105813288723117529348059520122953144878878663199599821775392754691859565444627228356459401034277472495443864976701918643800102678147590081520751836988635047747276732910771504554651318834092330003384888132578300306572095968370255530239624969234924827300771350308249931031113949570908246445248826572356241350288099062128165502878869603294760020091709966018205757044388191240437148286114066583270662898221976722762173429873340025539341801135732938418688570329931110333995727622971547625040214719583830583441680700494869447239615722636772366805188862418716683806565607701274931900560229505414837156376093615636502374532438749539561142869523278855924134157305443139967159939203924760352523922727673767117739941925853781408035970981431631014902241027036603193193397250292857629452274060416995100006039596586484008015835146519730857258196372428195350287297615425510004883552931963406800437732888154860731432175830053880376121530288353040629736851023478828157316135189361475738952595500958050592199567463857448148768093089404567153298981179592905191877809765479352250548813980791726919479889355511786916604716938141689183860824811221077206587980628761818383668330304170140526309581271911866170715968825924076694000831113257496027168054534285879092611620033906164402500055882179240473987707162697754919489362471456067718737755095097393375517392892184583326374963775834787172586247009168514424521498197071847192579879074088892391021177869696235624434779442900004347696474901787373933724488842223255419554864947433290306394469581696017731372335750788135132508002654121380174931817652293805283659353978882073275734315048008448692986965148040472737140719733032879199940808296359162897239322678128335340542917420705576623957866199042845320723423739116219763862882837453176508703437050334081146310964382550407365279955467421812359895388374473316743789027578579886023695768678952222607607222916013781628758953193126852473582793261826091103973583167886942145790044953665515673178188549864689585178450212447786516287030526205238139018204705741491904139384292248692165511277273957722011568302064101909011284183678330411297744026350884925126068272025941895809837130505500096936704359439079560189751993200341773697288221338454300413436933664267133166458733153279184436735981598704894249159090133959738875009289668751413459503432793982623945960466506886859546243430365313504325666408246459528472194562439722786639114151101835533784429878812288362403358034329034834661372356949021741907799232464457131158365325809611012380036018197681453220798214281179663620305829130688560556656205091151602113112571762554091484360881702273733947885561094498047405410008527158460230166956390249306916642019691365246767420473510153591156347866157181576420308162487527032082555689364852626228760141935919608532710445719528426260243035357250577787548008489831868711816702242358661272234970437265711498645959133763864641724326032117962541389353526129299772527238473651426534959086832910138789166079193259991330358753520673687167131063676429417322838231738007766080470875656444971545821168968239768179819214101928048680226360439487181136979901854045016493853025355794327515388960222045188541479600157374837878122402936360845096290829794724535954955364448618061843710999726192859236664180339162988672255557988252536204830079408056289719006013546326219739015209451488753363613070434928367305846815146802063201090131847137387207203822204475324533923600307513284671317854562171368765186244251552748435380019140823384020432889085462381897895482941369549123449488327985549059523421090606200363314881039086545439195290147001738032013704200065997920437017644599075238878968682432103401119025405951855850663705866901057317310548582286816721582798760297343961477805941315009023199278090831829696300506401252043111940773382169079424731720683482113534546814615314072677155345579718460081580737108963308672628263963805515540198549218426886798642775510187429176545306395372665352113217328089515582918817329927908789091922708292140904530787664122723656099641586070791962191928898684861210252955621913903657540083023356269062298140662418955884757287410915606452618739781035208224583570149080814498265775625434002854659472892148738023676758852799296050098228913202943566515976677574977842240321948632353101091794203235346596251815239419245831699928678915852836280152480236720680048822285369562132340318432409002251373921990309996296840254399844050534383198991411212741291200828172202881937631728991446603256370815275058268830621407856938711677232836709842675994962612524994111027901878611632573662426951876580086569513708089069385007215905514758315824844988109488995359954863238825797273193190618604634497475371238399150207011724272475882200442442862838340639226285344875201662571094562849694989206409155263764298243856032810737771304724020473004175060434229190113106950992245789832771383126458865813336072854703959553070982462259085152164130077981480065081678377734986433926930341147986226780155018886130374599309656164925444416965761923057395622263788727958465832829295289239136071241859126163009857959909933871629354146857001102394643700452076933691119641426018286319539315399235220783265452901039470184409633517740328426357787216895517522472897716386026223359677733085528100572881794487621058529745583220607820896727171983694728231198021242318169235309141787356443341953641148765908115233197235379418048159964872552545946197866149031337359040976447754664000827940384758185874817728538552998832263507692136675157805986694349132058116936834462694916306256594382256004872946892388264520095329388041786583106700075396875474672889046504086622973980040399130367611220266252185573676539045490056599478116288694356655174564274687857162719933132207982559246214741169984949376540708121642175224670191042126485861445294641304267879575587784582595922363417141227174923413474836102785605447758833431581748498354944236608589152379212883574446045652802702135724312732995060017798992121523296701871624999844221927105338605507236993959613381215664252119899735639196713866921916763193073390299130811449252110701806779766029860951260775566439003277587103150471014700404376239761987677820966458933812738300416963506723242295755087017575345273953225311950129104926532282321107396469833397429696546087768228859545693282676585300411178860541681494334569994719457796158497250229174358105023992604173802047690957788118960654941942011133734716786150627479501004629699014090773469201897186977956250011765596128466896756151494400671343809487724137416689188401466393343120209879966391565566946705461255834511090289477147539794546800528076857002327530086023141447820687473681032885702603618315530754742003900615860461025898268682748244279160809594063919289238550118829374360652659761906467954971165843161209350436066128536735931447084208980495691002650369843576918448811410532512740332965572028027939168379353020267637710170004117510788987938174717696198415424957791484601172941310331027174101925033148121252928970504546997494630141472059111635119267697111964896298687070587461962495011055707226920558763163927239409587059911373741660487084492149516370479042122424168974990902093069050603367275162132458258103526945926034592890213812490633466661838961918145546460576236309633279905846168754473128937830489813157203517288259791565664414117134575516670801908788120060838816396834397940939648557190078059674640737116275976061308593863259889041111736609018913937213229438862657419490985071868349466032658169000669162773750315646786355566775349928918668494803133942909208993261595382646649330367402612973539683750727894987040124811864198513015044889735557307945227282047747926873623175218637179084994218575264838921559256796954848556448008765116367857783703960165558802965083332663313204246707380399375107120523731593077796162440943445851151150772969979766808808914290022591325816008803772907397417237596361541214090476288584487627265457585677691685698385294233841930867282348190914227310228173549910486172640214687504670668129440470761359560378817840687430637725954221549034828544268601281344270328259343068803994030828837753482059198549573063598374106526328426555032670178571392942225909413196373257205002534632113508819802755373024563388306397503762194221874395322101342593410108956308057367584527134156704748114647680674109586160121564251104806255966782043457504775446332535309081190649194042844164519725694489402826367129130074545565641812427885030383470664461155619362225885728052235308486266020064199690434142897706881247297338710573176710165442871185649507064595442884390823462274993739293800182077879215886330324207721645820778526689327072412279782156805016559043558979014369990387596081147912562310162113926705993681917468035438566673521408775414567472328724930610589055360097192516735976451517771858566697757580246653208369881991049613723440634457614269943687294468405585191675465613734235273224091098707572114024532916566965259170735610325856142147405618472902622268180644762100042276730995338440703207469153288658245852198912405795004605675475895711895741433989827026126128789876499359226070944009417342367310766941483608799290896582148537149804343279447657411274362174386699171977168802936625894417361201404334264189708990358781654795238848068661488425845253025833802714233390022471502669487454257571711222115866874740556771473092197588892520072473623981698224968896416904197084755752722738571554399129698936296643067912311047110582915183444921102222016768770684355985701474652713730280489736711909691579890796276826130878488722220147480207677485210998251669170904096784612498578286116525174585416795522812543767006733508153231882203263110959292631267934887306435813289470168010276565920114167348224006665731148201763248265546984157278733059657822341163927826750441582632206519805852792178175194163690416922060735953822950310749406874729613081086167099951023796597479199226487582680499314482472171579837723488554159623086461903615869159687242996242441711768622788054363527806630415755787735309779981608914769815115076297955907896701993528667545415692920606063093749196256944631358054983418425496405934666883187851113236485199095559942955149413109423364596806133050253094125777501694246146644252318280062043756780513435577243929908195919258774565473970598615553600295754049708660655908342507416549660998441838830088353603853724663476665441610778869588349251537226552950638984533645055263544856856597833391909367745367865533839177978045920417183808571519218592353092784695003953147434646702499563611119745930846387013208626391092120993223102220846029841530404287499544444416090436951429201833820073522334265016239162097236695403675410938094174598432791591146071819666259653086496269452295311975212568876837580909988419905922381361925493777707122089935406670851319883192894123176483230644752912042543497703156917864725533706418093576004017224890563434008578619528912833428381146090587175809213820409296412475791804908754406901483902430486747906484192805173504680878156597887701612632877650965618052451320717699177937022419454854464853946545203735931760796176176520205244837890223090189274048179077197018072615521850661612670974836966071706767294470040235558304342571469482520905574639723216711110486000432978588893293107240955904228913908733617909275343863158989177191912963458175781130765272724984257751001568188488755186800690966441891640090309315906515563579380846746912056375371116995978981728370703264102299912756913980650626658675620143357173309871062580004584016309176998426085818907817112526053324305144361913007988487386754241805658792001562300464308590570596136375472548020010784338960792636860593632636096862187416995072629634681504180838255147550254202298782082095681052974983204919340960855806995922655578134189953878108972086557407855723626640168539021472735839252104512516265355355888575698276799286989291578649829314655944695581441755037877125561291393840914320347119035634107735433983157263937344501893750367608561151647273129862719767712937315356492728358284530558589094849109071044774905761419484770922956536723450531779168403409239278792595867494779498471721122351163810521922876255443713899873440351099255295572322148432935668538027294450657580448687783307213872559170498762296945956558926335269168940183644289130569714501658824927355976628652679812416747646116514928077377635340371317582159646604684324391385163953812951543158356979858458601522972939413263167396281473960872153245666134187356430184848983960930723584223506282359793505937870621224550469821583233696786573287435415306331803921930761133100807815120241725337968757602329261816168871439230427499856369991002319233281260533389841985420094112617546265637266073229487038822317980751720489514903236357776698183870925917409030909959038081095517485755001294476130597145042227969236823825197703608230839643691216167943315577824090709168195621303613661795119564706416815649804110881786430096364818798158574422390166505307106499812657038541665878103335105742739717670704418672308278839394807832137394001605149916347842000111855235738716883392334592991273402981854687799468482147802161406756756404944648383421061524035892958298250267029762652909344386109521349688554130347537447227284236522031915755732465160785945630271020752881265044979072926735089249754803825916876640867019102393596856385263755051976821673166835487015899349317006707162738790682443532137463484011065385787602461192388454476219517510850775206217964165735017804764698903623688180453095530701044493910400018920308005529056627720398374901126274588605879575576645341795937616616460962992779025672079320876848348131346994916931522839178187409169956867812673607186160583717968396145015127850977006793496990918871134566663106312408737000221112874759230019216999319146913726346562335922385682459533026639000073272176846395807813172613383940391817648189492275867158890237420783135276278690678270598337378035088498593734891882967251035640908983791181517248247321257193924701589995256364716989716471944211770518078916621380774350983262320891955168354460822161401801385939270398594700405963756467737081089396653322158389126140013943425456565109215001056436872149388216247061997143599826791374631350833261222711597991040343423155232934104833871430718799295332118949036532270773798035092256608496479096999235541364356519980016994795176790483018626160160147422188191967517811766102761723784339780394375190405626657832637966173077129124642493829342639752887310208005224490613028946481203837895408371593794667117795268691461317965587883551526813194546295076188617909365139424503911385239213648177645091101825389408966860154836663024719679100366974458548754403094601774983797943733478788181609741514857458458700026529921133487153706192318014019061261289040625401252075172412208972190541527052738400124586449157008314399208236821194958074628005822244558772278037459307706310956812054942668739012292214523544557387584399817921952496193443934028234327988157439758371126380281835272010330511966747153608388859064379158945991741996044753261950223034886353348446895236999637271218541180668811601985042796068866112059315600821671132132016701940869027247467079776746676488866952809871456566044634476722977356635778410214014333426313504664914355374596028112972997773903317171426165578437518977627904366654450230515365530061684509016314755611528700785442122942198057427524386603866783126625662355013164321609904098302134437238711285417425071929907829811878351162476525221737275926873392213006793980415399746759198820915088971011141897823286942881163261957472318715406113601875513631805877659147850081267134340138012939397268318156879431363142528469335513815242802749582284066225910704957014628449954428289634728306597115536426205977866232682704511611472082713079737691683021966071605195160451115420267563502326170286909791867968776003872330884287714371545278820281129132287964197037735016515481858338861168659368762252236422918870886415204247635236070527779446845609568683697010905462948239357140518021230400081058209387062244481902768872448321013090899681522086724123466840622082763528620480762967031634474736331949438874406283207024872699966963231130807879813668790997650970842155441423466982349950139996638211866167188566639863928959144969639162898143397047423224384625691341622973780687242962582200113988089709743712641130171987025183512367886240974058489853541875457024491959668288623368551710375152471900118135469103409488833305209856660240170798933835737636044631559019250754052895040361542843338186748655572639903812734843207569765876859146340612165888438525478569125207281052433480607712503228678557446093524253044049178111083287614608560001156393855914988512935057492964344155377132816989473168519233273289673456777343904623614249355354028302732360714515340559552270850980695263156508060475577720365504410660222844793326752295581305286007568876183227005836722615188406582170496707628741033202067261189900696771245021614008298248690864815946774832700671513979387094250060290422103130824507703954991590087128202619135339504069124314224596928710672381280790085989855825562408927445788750722534240426135107572921241268773883133024871531379282019410125805268399672288520495228102261359899790936432840970787671353328270505978519863646723704676640001862013820981917826987497294166068595741512446493424251438352310483914387126867397858964467657346699242264407470180442471347534776703565104817306097285717832994843435328069316882879701698146140479836995975973127979482935475885222738431917715637846287428567509835110998883164309440585762989319854003874667111909648337268107090770328062603863669822672031969838891770780901006415479566260568755912123111365260543927683452163564679133646032160945307537521458892401229881332120436565558948234252627714316732444199699162613671959837083152945499520467605183792402495269895030953879049069292762719527605602192406918435573479738890892770835559738026120598386283228335553827125005404170237891518497192248207765845004940486410368161710884038872099414144835550518271376137512204405208967678028633617463784417530080299494291331507363611342945580880150453858121653355558240587116851796419980370902447210915018902737637892082387502194996592897513523576470819692647115656240913358477395594683082592414700929838561336098630674108329473541639727877126856841927943539041313887072683879384360079979083375624785655601671446004196120691992913120964623853170459560082794571630937330799557947042122998789968583858289115384720602959838249524735393718777786587715543087618611399033818075168419633680522548602058663357838699734036666503702313358687439533179178198714316282837000305366848675132158971959481387317514250985387348953146236273812914507015575823625608646243157909307280092421590913421232952412030979989788740216149656444577823178947892598896169304667727416300249013651337556203111719410596548384854962478651275932951158967289827071680994924333590374368123805829710337620747385634861593473755720217032819083624130414207250138057057514327596326946171742847612988606640099735191304302371630209068204532236091612509077662631188513653651897952990450356764946034399605628615579793983089200257384456321402271391695234519719045459181001058553633392874258240150762548470947530851328916559212325999755601610531518686714941621812504129334769900515694700252112798330578445969861599575337442897787840877052552762745947072330103045222580343620341484478269040914115906212380639095031121706130680794695002035594688245620289137632316359905712545710798799352153516317213645172083900435970555457293165407419111128086192749531867958962727993647217071062800050457351108352763273936932438945830611516260204083736445896336117848654345038047936026956157502959844275574712575094094423342540610418398365384582735991876096399469662038807120359428960341220712126639231955924141214661708396028432235290649816473057501195285301339898754899172149544197051085489423161956901591690582913285672228495813221818557632355808248545284369088501920053854284429222384066292423864780608781360068396152119355607588613122320364407733481854986528219957617056048779119701709218199056283944754999511179193867374977447906374940320992493421346520595443597747864083553943451413355820540432508035210583360348388449985458155179206754862640735018984461132661513677405500508493897355796724532940184344413023499401726366317806195446813915069890619974965367589206632480304798132527521145571576743971422241564799634103260771651091371316447542432771379611474422604406039779018905023548460302574781207527275998467404739379657258837589586156344037980939500984258584722204457624985478195702806631072144587442027134866999334093554683482433951921705232876286904520481811895241897418550308124704634698669100784411941865381541847080047489585411719103985389122079868040215751139562718908356416639259668834363734974602586854215179208270861040967099046763787109601186175966781074439500686671907690313579638707707682617245588846068025632202299838748043368116537288955189322041611203868825985194916297169843379312336463061550677268619311379394611744465109677472783609545232668788554878773488313581789409290636434500618919195697633866471997451677993817274933227894320803897053281871151735781473074909926635920179722710270033604281254530348748617671499723518457695224712173790704299044076323279471318841231019710461489378011115449449552011386374985716031245408642761280849039921216884058668970283602478179231805482236135695675654874978320787803373362444071831968202335873674133857589409539367720391435132415838859403036620901034682216392249988669165599175579034158175575747844487006909154706998578825359206765098028352607061780338116960264651040939428405308103321715637394676333541095424310578487578568432542359339758761412689829846474906066351530267288406738367644260373722279590909052887570846787883241215676325592338186243837350860764812399111791148614613330010452653743034345456228443232119817509619914009531588505404946736971796267311789238743728447544220298300983585438661325838851648392401800917226525785252436385111731107421472693703115838039579338653249501873208622590809466914523725157751380078454368112423376122872886560587994543673830656472345362954845077800104475509883617629688521323142397571800606339021117871963345226273702361006650174456430155511532597801701480812638632259865310649307791930297565011967584917915001920077006266846402594164353014052647858340470980419113010054418341540136124085559617569309757436212554899605475336512447576037916726880513483471413242532065010456992714400854551058009500626270037782352163601140310238987741461757638975635703459202340262775660486742905292257624591781011869145263680745004424444168809711053773615645589635744982372736744179165561080046600336462998280901454343062460991311905708486143606430522648820437172516557288395511171602170693444350872946541405329590184719469122696550174934722181748940883801703850958661889942855561068177455223278086975314028966173863071078665140009972009625873117056359745553638641302981763493993297175222492177144591281940940882410289592655427146526152239348717750403706105333907921826075060874467738750021121636236321206922045708831161438264290906392307449202381472873509632550478341600004492739337823531519557850631553899600315129374100124773801437233423643862297868045629212026656860096441005351261468539685697691308101869527806723344996711855231911629408340042025908539365247611379128825559803331178616341224794357342661847466436510298396086578957606421593700531337546677702721627815052725709270012727778417545881789893445782264584653776778683493886936628704151950694815125339985620228973453940165381425304493538792746961362392210140156753694103617048099172107022150442306626700469171365543015042552305351566661424591371314422179989926423184606518969278586464609428459646774710075471340701275835685385346897326260035237802898415270386301148723943413486313693557976158049281756018345661459438160554099075660542193944581396569990490981562220248240209235048040688456830622306059172321980803179638998575960423848694682948299052818609111354435488652554733278648116980989855046629167135253438818748210969414650420985492265365816147332592279829243715785346185487361448305059457350137303351611156462913453036623439932920963403337777815268805051736118489061655434126188269701381186766597015050345521483286303946482261867659570796994539870074448336497786583941224930097192553255259705207138087488328206244632482594649184299439628451082636854022874006718596574329283616220927368183064385518403001814147883883908032259824371084909850376380731238810002533609767827437472120221502328806830878863824801367563732720599287852030679723267139756295555912919003338500917921356291923917858911511681104998513229129284266253260527207536244690953354720932964150430798705659273192208068729742475249282210011984565497134372478662796185337975282893001685870131496713331664857201237995148108941780552167115832616800555996011723788640455437353500752943925654243475643737238382991624582689524918342601002398329680422139707738934362293213534194522255114169684566927766140613124699959267802824562873264241218016089780947298631422040083905455118504061886582616038764941161742432321722883742940288537910273616218818097086983134118133612971220025808944759431473517927773174460339862547639631095388863840096709633081081837942211516466035821517209757440119505310722159078435862141621924501475084383414913515336210615025849275452003803317068341373725172056521917647889768168104357520323596900208494261893247848603593295317749100901661660026879201201272618962479669303716048363545622620798255429865091434174614136508114720327362277249724988039812760724706898167650501985647077289619809388210048351909461650538503973254240176387639972242484624791385437995878889537120049501250566983863557912846853331659198522604635361992394122281186884599188435001019678509823719174413327538265496787754385678157660971467187017427905061157437993512889757321751173435513377421674220903707957502544652942145144770441783263598493535709998213226581312899638695717336388623994303284313375709707116724270153489319191395088251179936003540013519826371195878401424573733294050315628080103045782733854580726412336424248154703282860452786069079236593300239767855449545803039932726178767148974457611178744867118706025046302071023788140258676022608737519228338246641167876181247732487611631416008280393274542845940948985934794082109122878809200598461199979905201773226753386634320110063654681488947875090443862758753109638974024051910979231270876427618501149712418135308142368267811264895801711064098419964600914645271215921158733973723758053547380911692269633365416315221468165395620004438923947155894554497442827850858929294503535000128105013709762446607839869869283943344202340548217783432643881481472519074752462244002559589443525811826134451271922406137694881901815383555313217919757890582878471411315104675867600681325289895243681664181965580447507527003003285373820706207418273628741449609836242582776306393026207648546032597044620307302198378294370231618098712121743855918044458532511698900730678029241734397487290670574378050935317150667681843004342108229042863386535506691535681793089854366424423590448443462208140082921859929275002959318990574401684296482430644044457572453676672463396640963113411071563371720943154794774100886799597507631781069427225940311976965782801689503134845009767255145076932833478672666935520723001722926833269499523011633217972674714596334171573897823912558330689034884131059792583108882405244642156432281753266984741803618671469278375483121541668555184311226664960722035432652550041699751656325635137094919753748436203617392710391272234792631679412855374205140177971124283850152563043049703122588829435334730790805781390787718821417602745423734624707092813913265102363327809053043512056237911803919817457723045257406422405554637115137940553850360317552935570231638449430374536729065854473604382492583855246529181741558478056866795756449769499026342357373960734098793122829775792026840279205140157882007636233727091250697083576953776262856499448290961170470029084675526124968434207405279977847404340464324023878924784080218460353187350644650482202818273705492767092142298373482913468019361530042497044159472407127657761010985111361567978612169488433458163600628534831168161277414072315293296931706420007038997349207549507208579363413950180156393358710546651572690541496921539226762575511229794364426952997524139995545179742912718384058714785499303705496667565811237244734989488702903667673507782948958651849254548312055886018726814715560162462688471147929532027459456872282425362464364880690741816320571295897710904452103410496389830639980211091229240170356813972875877186015710977228329677926841360364852060830499251146992890533364433552306633682369781468764245826197230821398810757418706942330436865712138655243408561342051984807636489275011627120720625992652420509204484013795185099915369163525969985907221508411025385684428916685371374637729168046133511296622942701667880216711159495907089493561943536066030783003357270949276475495898763613812736217271645015592373344735814893796405885307098145593459989425605286950511509510207602115375775779719277322595391247269879719191041583551648888116740875553712757412703580445101069484842795620461765172864892848720188807520495097928393479847189160672320984991959804216781488324287122958906404144722991295904276772646989877114597204424415741073128351997722396930286302005543123114928231442344398534944609738989643046623951498696609047242767830649576756676648372340402108939178544808084350072606765580294769229399386495607811804388167836029539688649193360830428176633500674762071510477514704278444117117884845712190919808466418145045941447818517168522427163470271626499952801251830131642848686569407061155027917587006819273096506395122680229386682426241037401630326614964365907440597985997946658243386028335273536303618349556065744319205609766609593716507326156816533124643497799701102213840583487046368484038126531035932213674560329638686091638640268202213553279195987438947130363745133930163283193611149988114599284469837210572853215798202883020479079543360694464728705107607271011831579639380082087233321169036057730088193063021639785476546050083745735531272154503239728739923454365917041478210114441676695398416626314620751500146200646635105433443872774763107001290720737945881194705421544426309889627259679836653214431835438761115555535600572327842770155228507057515864515418456440302693159430734732758831962344556370505713211922808633706408639406475593312471506217933682465565457308821963387460706829370754236513847344121395941724815394466532486996186015856137158317887113722121626267456586845794942698038572306228015854877051439540258069907204058577518714122941944949463856421203320937905854168618234935192535202095243540053493109508675325794221427845854945778633682209581340643260041709945023758312628508239674123797580294235641028647649365180557721186369937687302245297538844174893440658054860279598569201158761575195078941756172076120205204358570412238795449809549431327705899320889035870500986081168740489387895607181984155800128641664706859025140064942619853102602698605233943042567848803143099582014977259164717781764628599992881352967144295963651546656562699245226836950059563405915084202434931769075063471566599885888235426962618782508808664248770162262911998983388827438798068821272688377222715660838074243479276152003872607867793972933580492308036236058197573458144868132235145067903410908573922519490351942318462226298285353530321607435485470190585480182941285296856836100193713591012708225673453731865326067940376604531230876346647316119701389845992477307673117946270526172071452649770310137424132498623366160047155858852333695846537623203034148936146176750742782581155159916687323845564513706444491896287095654264676675382221575633087970646606066937598575315347648557038553700527886218648711510544611729315835533565328450288961059574488963599535161180998736471538319651320998242246767592325259903994568479370498657245113794399579883142981861699711501701270624703495318777279514331935888425621474696380466350584768323150368661365276912530481277083910392750471953730624066679933544408694365282828972024776908391088297689661105675493005055888141943091210315322339066684256509105621344244065537095707979218767411349119677382869517431555695240846060997521066604142303124448741654483084248605712247167185688116276555638147911394977245304588462059882998219473406392678192697924161869302047226966324786270899635690372124789821102413902659695608959653105083163365187866624272231433205855125831795992565498008521286482657989283089594209146135877962171185352424763299763202781120642955594115468594830637983624147846198087307061206018574501694084894784036565220580443117120044302989083383539247066214017721192172744010017018827894477423473350274490417430486062342862366289585273777426658212367470369249081561876256998849427151142771985262038520805272253760342433129116787495102603583447345887272102449159440766750362103252103346504498739251895314825671931541468925049047379164298360560046176313888552678865449922350589206439654828500669736048645093503364400274437526688031667170559456538232501089976077705787948286329734123445510886102112178432022740906880935333941520093519428498821894301032727903262289239430492367121073734699294624385027844299837403226924488999818274752913736122241041570723008980646684338889036429227643784826733728333395187421452470870684301932008136722568463143961909082095250001868227695797170879237638338837541460117946997325746408723895570030271512168605626798307873176195859845659751572629573026832647556627626837109480964037211926382728822368506941933170862477389612649636346082362630884948907199754244459948703522761449178171941104716134963510616367046399140257824047078760619591571064513344673663104886236832706036129723459460208317480505546186753960900995607161485623788651759724060993277276866890200124858804736319191652977499748460471281330666777123171599631432844744901131959673710901510790769979810626630197745595842926396398955839668752835344361341151875728942383040793420995853013436250758733612184515710901053088509202908192774967510639261271922045580756256031905606261655560088404972357094764160310799602146804703487380205903888782487091848016159243937805941744839503178823930435984338000810869219257258305453202200212538916330967925580412693508272042137797111026991127732650215741885469870444043086328591656242746695609689020699505786076308804623112888494325059247969140152714037472367913826981878179822419421367165056620369478150877303887871667876700457879092569010348657783679520303699199021359860931182730821022048778598688556919470525233899223064088663889376294797512263345443879171814748138536787815574799626685284941644542986970275185674105228156887888295323245610720596668660150413628032399359247871984953068236498880883240602185357870258005651908979474335291380222631081021987933157588699371530146815159209583387154545394130635531487340950357909962679311562882276196861426608447863424716412733721582294205935144249076557107772460970607281181524683738013327188634154402026397830951356091804608548656514916977607399734757086527779794485302097109915594495614528582778300293721891804003073758890296093761303485417605675570154501516534113474426355562789649773887187776774835344014447386234622530375348486550453928926302043389968337984794026152529920432258917479751257924358870145747986757881519478695272801548345568122619615501537426402183658840013965935638474618920979357456074419535949669913006592073992433821679212315665701123041923690648335268187656187569485497047495316912831396742865807868843161884037086957964464813516092080028927204240007146562284199336423814755867542274285415818759332578793056107818895166831656382018437106125433824437554510824667029509151162837564250617507752347944020041782335138232030703957998756000368593239985807906108698416584531226523637881195226083589855062010370361602148390092645723124001161529910733448474563195242931383110585143027852664255706734922826128221072857511993626006170848146763535366032850191160552156245935027345727681969313426668976046368515991902229398495869581846928190033798995779836708444015439609738364246447408674582757440735647469091526154765572319591165066048954255182034992436342174659834721289016940089436060016177357864605037380494295064888649622575549314177709297648135263041950563046834466276387299177165519165502895047402114072257117761598840918328313265601490573007447380584096302645621601894107268525279224906729636909288612903397128097890854338584275154846733020454580362145256697025473212566765906329788221479762276503160884629567043829509329305388915905217751468835418006009534298251666037184012519911215340242094171255444951974588995023499730222587223403746335551986887382739482508361322922191418340530132098292558387506219459079325476500382162078342238751963749276408604048803520665066664591230628711264645587340359575636034967609457986470164883562523581353377423473300457996965317294882122128413818121744077403896539252473496777339499039915133614901813237163047469744975209611738270200391066681107281748691981844957745832254009824225595093230890182565143136294463850255755951020916661156847324192190547630508223388152882405397584261064053901377424278214883142723420836963542935679283652948135678038951520438812726939130700683067652627184039672756178661248235258904651878834292025688979747776813578218460703496805743223644106063135318701130458339074851621043265236685775323540310796436702374919839178994713517147142906131959520354097643848651861221135220853387503456860328175327442829202232285102492049892395449921438427332151124431676276208867611965068432374421773436765838903796222240598799740456037264803182502012582149693537573216065689668069962654488224725891203416025910334789348315803265528822995982882669549055716399487854176374181268690971158830752393825551440409737706481404330296959396529806148799516986757721934073473676313736150236431654774824873037053910823197777826484261766597107203998495630677379048948790334019095524041517625998462420323628388556651494324204189081245372158256061046498220751108482632778883768135791549959353813793902236730280268266986462038967301455971085751168597111383876910779961086222880849864696233080675610716949958768663825190319424500076469522246819254627097596550942560791874502945473098536493600731875179867989028193351777651459044856813989870498656496748523795011963335490506909635903815346696165925469149263716340210514321389652393089750365693252020574418677742070578919267040372951032674468579870482097041229896403887714089377495621009136357643877318049721233514588118106800048021483341103504553738961436989538296617118065655850033770052910420993411834699978460652658980053480856422907092836773977642136007380438977621757734168064674819881494508496732558381974417657443238239193517865737670102829778841359094629747976078245463290791608479390096597580279630675138251747997237338710885646324159454607572738606691359090621359477166553424309692395536357907277019363463054238900246253424174152527743431415344722696971473856157054356248007611500418995012470276300375016247530022562090533368445736022369034947360766962714938337370641359179333195319243979347775966427859868062096778154714315014873949276110132807971320990019973685870888637361549732531409143947346755369803958397424742154502544700457363410637072718422199963928093918627820811761829895805491019618698011729578696850487862677107426078941977393676399317782787921392318413529184609259580782083006295848948727580473812636909898977708245727693201264082724989983354338750636830708549210546892642698353540087916546664450462221986321021503090187251501494000493322097374186304312952730034943549975179330217760030900089791942081993967431044695799904446494651616909256963026011586319369065039047696572219143858914233954432582875384291420882187956622153822934296831997357881519895615574593775438338766169370691309302422114659623818371770704193758178794256708487453568589434511713909836400896877476197432343362041547439265070755158832393235495429686822142513774477796360690833479572433857548636284868235123665889763769392225328220428299010215503488524196168570858430604110881386198787759076978213690961566665838701672291013056965657908361892695903356138092241842297851232014193807860283062794437913839770863699601031659953331477580114241270029148329008467888560298635284430097055977051710299708114645498360477316549779206569746333623364202883541859220167939980361378401623043880870699135843798009903694156015763100718851338310064413969643036714192383952849384643163905438439250660823324570131022060520127176222836224499715816728625021764686118065846283033955477311447579697382059295696918329191308168076911864884161108844547922767432302959423845997857537428795306913890073356183296462437056317192821746339347552551994644620318423163491463724794702877513808937505615683616173444315184169907746743076804441039758296129726115354649821332824341149528405069644118524629576792060480476113462410646948775350882329142976175722775455404266301048621606248225699565914092283288586147550569561655092613278481294980405928508107240405926166246641239723507593546139858666618612787715005995042604146104832317481419871561473103620044880279209457916388387794644372501739307314894216758766686301963105524126116974128374217731008856936962844917297324087209387120934870028177946229745158023523903100356558831465231692590326477492291989146379992465767488667023290399615285884930919713573790102986690028301984232257617008332773743641159268338071830922058074540807337219267403058968309801819595428585480433705323498600554813974715058327755436849094765414991180780301816734501984901707821279385524444384634189065173506917702963254853858207212013391587680375019872990284081009161560185916589583276509434892878425505258452110368070222578178324970802948609115405871679220554527705490005728968414582138349299703660681598690292131254363320424950009239608441639919678706186730841205701581398679268904734455769843952512528345175908584464814266792178266301608294497456793348180489717104095368488620551924386382911044713079027545498162509541267926807755901624118643476918589365353577234455745013735859453682101163166104860391030692793396223811858435262188857541619311466867185783510590318415257030488811060048121456191370996609510921530522075500069333607737141407444010060695079896140431870888605631793886626847572997230367067990035689738290488369530599549148564076729418922141676401422617977486604609198142732798634369395403631115436987940869440210771339496590797563706036968812464505673093944873677617813945736392237684994653044462691239597828634453043194761493797374045218570689719236438158257683307036211845006873276450740748942467314798817112778207942579490942160046716299272170335015823187886700514116775129712190460735260553042136597238422136389711482576895362025627268864547415640068463622019768865648465746460718191272443185071070288752843224641204801024623343330953905134826015714524187478883499856127314896967286324378942997035367156307222085701916084817979597908445663539886913460400087296851907520700083418907642625357706901096211086639666739260549959025707346777005760061946490761177093844074785720708765787946931627769172362614091002985125353839684265130647300819083769099936991514316646762741077224764389933496083406761544593408756345857433930701795512406658639776862563399571225610771794471203900461896422722979581856163084308332230537379633392723076660539885882124961897476787039784216259880009197868695348588034651729386151052721167009859479256399935924515073038043000992091823933250159499665700774881918027476371286810807005913668462680177722393064905287441882801754952319374690899298545576640635157561284308483861286694563351165210957057906014523698396322786012714905159637712732807104416449418075339695551047016765607249651650369836789150427715131952630639100994021942084056272803522472918710636145791995462073676108175184683541297593650428914970686152839476879128175303864844398376823775482696484007528048921779140486169992700867785191017051516511537780602243423429267946275927029484855186041103673511867292786039766703096715660484840206012440825887180407669459074056075258117091403371191453634612743993025099725037606420869672853422969019284781366614544350232068552053102841598658795386509808589578007082291140145309347923659806334661145364811020391732911546012415455333499971312730696068510595586572891353427981164458482041487388770781052443366006369405778614232967529119810029504212617164219130111670233833669425757252363169885597489985983694268825629044090508682367708656161158176649165503916994650368751633896973547234846255496892411290512304950437032507134405704801725059069182538959713990729688012888286625706646437240845210918025991840113636189248898042191338411848480311245189699427671654058728807146660956222168538584182536162736162232151896891743623360281020383936129475253874329496089051424384497690632268541801595992687490593032979642799573441640330119856056414695275900088819211616066811993747262827527550126241602586673910714937940703195021682748039904271047532800544014089136260501735261265771026675516737028248713834555987988298899508174374415001483390754984294795851632323279162680113211430310235507444433795336387369698933598668536208183922740956634217417283203729611907059818791227920924676206389641956408641311424882122705121160056669607748190417198465573640774768336243453474903097959437700609671500768322499650382447272511332015432365026586341449231989596338919966860395028919414543198200448112750109424797366427423271899504363794417735193116600487671360458000723537275019956578915153459578254823458625295834439534800145034639313337316177131428199165776320605473057878715125068658362222374927348769651889764891753973384593604357869585091223387319682647756740500435544496621443728382088304903942209696467529302960831303654866218985651464576358924135376401183990607616200206654302062219848882457085428556337572226655951404932099263342492200470319541718748494338174382468978579217860282200652230499316120767444838642113733391210830921914473993046820910023369958348887973788136000809946294121500551360799790004526548208685510352705760788056803580451749737406058075193367893927283910826955493332648877648486323118075999014272674720219780106985401085045393435552486985239141790000471138899551405195204558116541130992804555960841430423331849288644273377802556547500038935412758231490001625416442922331004240741706531962776750695164449261000309927344367457899797941353329888991598423415221198581475501565930394636892588596592633280540543717930921350563075993017887908519092098136348278308344821593633854402150006289596568787181719049542583177330798978997348117826037674053338693053687268314469631041962292932464458234089477734925925172374668909178786985207011194285273590253735014245504584221994042841993760758429116782470164439153269620697998917489501102863891695205903554760201249787506999416825422563254919852005216041924217227735913309495135738449190399724980360252191316346815823485001973386365780849679164363293934357711119295961667203283680287352999443425726311462210723721866492134425231265071036583023664703787968544891747682305593574419668646588287618654775933527509097736144359490603087563220789797023643522052997480051617201618842223673067062186166978132476246305590622326492070541720146784828041411519493856430442169199102946545931221802984751583143957898455287988765161148605465222927490274434546631348559015523387126070397707524833429292439381163020275418150806480198978499719372852328986844116626246071158937945166940698522424751330847323089733160571428974951190146319745240202484676387557321584191446705980311691417881518360289636995729268800550886980264600467058763854707498383087137416096101629816226583601786195814108034519711074378370622748650801609756933516033581768030854580129040687073681459408266673587704824567847135049307458556267651445473961760297164654115482557806131176960986124596477207984595301885977337758924540091409222859172157968242723572884545471359645123807318728564548502531732915003573756995365310266289624566276609045368256306386291697462175014808172205822869667241367543933189970593811046177761189064756384170135479875957510600015473743106456265538997343577343964360553504674470980023869081557399870994718872296520477042527556950325304550918359259300535333029403610271170820143047994216502442361679080671958897906438957858334666324357640902777954650613244547037584589754547463295567415706417352358371146549648537186727213676231395854511315297314461360860688405932861870475700454398596462196749653584344558302650031299494482634357003502936852098199249125490392201827823319017618576735411674155701607850521472707746760457582328812928555558870524127129572830699447345731031598526472327211855326105425323535072282692699652128010292059576409457544665823213915022918639514782057671787172493737642535955052662370987637722233732517996103334703909466286196898444748907668193439218245964560275033274924864997637621716734654301234135915510818570486756946437244823111605727867106784287350551411563889881728792482133304073913685635069118583979623459320115098521258071705547283027572649290025088102788041560661669135601707613910441322063311750621241127122734641784611000058204367344359773246871131472595836433109370695753344154971544786064738228650724874715762725256810701847387301006823134888225582306322769969986036778836527299936988430994496001884453488323200637169784787902950390581378596563328111082032477818563950499960064202543524726775917856538728850771808533849708335130921336615188976383270618791176692330543740042064093050746150264218996744792728853987254342539352346308456985288948889795777330233550861658565809121934063373628811964229342224357601347447889426513471574351190400308502112702547682654704291896448062316646115409936118442481818249624520791351698918782339922020518892129265166290231687020508947049735987728966753301311947304953259352822972253917098434432027798842900017503228251211534167850200672760351170040794572073708190157009322030216947376158262815302141913902563081484705090895843236772451669289151496256387806537303475984201730203997856489696242339987858703646789419648423856265026252238980161244651296613942777757390789857045051581211102590896837113360002728858718924210710400950756993216739627380481764082807031885756917554473650386407846698254826101264190873885859837490989138601005863390177239262575976747110662404960730758184964696031187721284086295220864349566254653586173734024247209960113973617535608277796332171569231945807121774331697235481585304014846243905721757269842945017537593500982556736854031525959165783008166385169512085241493427851846569830600995005891487011660910747001267898148438772956575252226120124395941264866397613718898781849949353452998975459284680938544073187669064246624185007316026458667859145220259222301887870578956910772676848606638269180613384828543873495897106405707980394937706512496723923893231446460282122424345267771325186213758845554931456503749225121700658876398224328531057716399154004813606379688719727708449308420123012121082811586168996342547539511530659168676219253128062006878876970018106044565708930749130926950009535855070362260275870367165396922387796526487868615541371335159514750798873834155133665205001778864224604473384485379381179703973329619099447264344996117901927187107812148628703422331424725103874536737192087661665494639961779660361340594220591775354831152650307449626271695010478031080550768163895002387915822499090908205775520132328439889997453042921090732831077495183751530858877464229367567619332196852411302950770782318231664501560854149564647949262100553596491294929813092257445958085361550438012112199180373907071052293204605921171574145916440205339357505371293497653385469283754629026906724052262750289125807936613099639122804803431609659794943848537292081105558199960596734598101518483120428584861621269257837569937406900863393692987125759745207642757218283967196494743395511418609970906739940897435891315925758635946623012385649545913384416656765649299646998362109307225960049033100541773243833890669246920910382852504234328328689216557910893298800598341845142484846127971665534672177356248968603248610594227062967345432402426818071140183393983567632037781225300157773607249282331680212722248299658506191641246835368253639310230438124123147484855961212842226970024441479910816276144882418049973414189171999670785493393433346090462795315384400972312764780069502612404164314055020171413941033585502967792007930299253969792597354661795149520236028949580199045490050720612244367256653245629957461564976624674808610205375392154646595151818792423801097712813925557424922502904935546496271369207396611239775219012401099596898406865488768281071449874405737429557201863651571593837785126674238065835734592545826769868539761562527114654768081439523899688745121709907550439040424025886838938393958661468638646133247969852303220819648541478332823520422945457531232569630529941267603989775260294017140659294586126073355795798490817263155142929823804915683661961362017761451005878857827029027096556346610268538112453295378466331976431174735874166485078679062300676534822147507831678316671798954681951443787159861267247668492642193635529194486661831502025834195540674404862457134376003005556935788456354450329490479908677006738169282551996347100578906407332387197310151345931516246260624617688990111067992720917340611308973505079755855387920921977570196109059037903531937111439489268192575021477502281737541867383177446004170405443760139012951675024109732084554121417427733317540409658308830550076627498738405882477030629700878896130998888939310136119384343444291049542976766842758528661603466673243305739965818188781076265437413263697982364754134497549690486945636312373696184834731247048760611699375181675864561252348539871393284417262301223886227077911728250305132561696653677842202480682565796564800517785043021199291962204678361684831121039416013853552650071089776291668769389353671436873032219870494552072058245740754664188922338712190103496271592743378372502342443500006875556493549763795120595579498076128059889090121834827032167972320754806655207582590485612304473537111332661655944507412512344729285974612568970955453658639175231754213007934087644111406420032953358911329343148754966882444368725877996083448609880365754825396744657469965581039593350390182332911068225796419080610348320790263137461539160175781656155975648238276144665541875242910926637672144453897559052447261943660491752984229293323445005667506197173426042140854245152691376967847573514008572452317015903848799107222920136821909225336233557443576079225324344473388978276604987105028954837998478627857688779038636025291415537065839837849352955262756698959912985351702542786657469578142982974603487708476396816404204732180755590658010429225092170824392016252224125633850542838016789396428080243691743382096182092906457897752489153575402047047977787888297729242613050899141527794731989116345625693184239995850032126181498014376753959662320375720307742267615333162125284021255443926143366705265844351988796692582339918792190162975070729581349471043533881292792661100823345718950464060223278833340763112770148006392744643053185488461936506763038981907201357753781369227941056400161281923210036649577460217344994257133238692956500006221931556212119054053146018237995470842601682812821121093631992909792372262453741874000648067451065343364540361201008409684961085523415744557718056926417386366887356001692399604570440236718124066089679315038811853387998605320191505450826263276881484352042398808243167963464817758558438285876655171106552365213149527298547321326314039491819481371119744832501316045965548629321592682699078163254621412807419160961059025285783642075001531155072904122955419528230827045924404551874941118318543870140066057713631153726530128155296332702306986080023503852361382987835215355184605722925728853320717078838394245709804124435952857704184890514236950463997990261403540924770885233238558112774969449990547211532336565823431277086397117601869467366165259956779082931269451637370601916720992807690260782799008611926062165916434560155989874386319942819542422904076110031754493718797616056291927996483328930488851617482831473073978861671706921705885629672793856386004328921528803825974395229140910705277650034027595116822151387720166501636105369437249294870998288205707417865738409233595139881323081008710048242871812740121470410773901349663361477622375221259442079778402397877300876248880144329276504283005195653301517867845759460814824891570996443260983910052413738626437932604848799939765653151884437045058595908137732583850963996186276554981001873030425066429114013148286848359133045960446705701625158324231143617603261956611194391303775716246205623246464701691366589593219381944285853966393637631131384806961789108550899774980969082827799637244066707259048456629045410817723683009466596713510108452649853090818246822688052893675825225847421455268896733150310396071347838430269185679259918328497689874908987314947963797612713945079272992026346673237202763385627872015264918176133315972223336516409551408655048635850982795372749247595999646547732063982391702421147860012513159344014124714414668181297620880348845981087343012058258123790515342067579278358899509454067907581150389379472309080477242333080842232391312246185161944113610614473049559413939194089461612470567064718479354247119536605567795335422394741145430795596103933390286410095955718959769921790947039116479893359440987504526886672290962898577750553933473660027583557874234828699584490756743250474940830639444724956576147025822916061444925278496029563165826431406135471158086674790873889085634568675136874989613764380073992422683863814851867406163907289713433126115478600867343995025947628108525967565415341753334740118853885051259546447032351894943561831590325595322823524708209705644952318066427526824981899921429293016090296766704343812463124325040848249857103605271991084291184967346810630148436537251701799060338195820352310558662589712650984595757507096057473616712318174963742659903925735985501751353775550873976264301852722436167708679180717955437084415782864338065044984346504340474585754669571140223760805678131225791248600163224813612952073957479277022941445611392195926122671266623168966786896659486585821422487301534769426669656440422279048990917282141430426165895327798684099087216379727558698382703574984095887905354870308786108709235048032229714204313738146165143436004534298085520635679113897145280598602083159171821260426171320890750279339124856859308476310267222734640179988451564043073230422409521752261911325639806085445984874275308664817249090754344151723338402138284665345700735620639938181364772213873715388530958345879299855750060041533747132946966887999282729468684523358753003960702641333487202216887612282235707716998199049359635513489580106693297118995810135471726646951175589797371172723361851715352366610246695969901296432610704553683025483322283506577260128983206448757759243782009440931638747156792066937379257054813967042813468095750264603331467582393163271305268858912380002121276469285538089438448187448344469212947518073552620932823145558201012931295643385158295312737956785195090644488819096466438836113908053092385626211306773759925162393830668855530202510036243740384781694265813348324410835939427699371628780275993252959135289350558328078997624992191380603138764215379551892117840224752801340539885889204593487297365003680770067465948615130255361857499425175742503684030185970162577686977093469139493754830817969455867681494467034722591244263404548003337058803947202645825147479392501310582354811304209297801661572677576908262083602776927402388775069477744548839507462405428016298744603610745512785836258976964350634840351655199219690547176671718101658380521107833177096795458948351461167190492102294900216003111655480111482798006509371462412998207219348879010754308575739036865188070017297757496237830870960839619106714512884464327468666545735372339408727719589446225029105542251472151244679384990766244754353002351095185100897074796396362667125472678698910387065199290575015604549680862407787318085252419189351255522591094668865439513318611750710662649997980070793368574823612528629793705390370198593934582287741517507814373745745856484638490935886346446135967457588847600556112986309210483434464601666514466567942869410273400742070207880699413685372535954365294369375353362478657093173048825197176652185458850288302865659361142226624245923083194719154426351180406512397838981195699710154421371064378624712570652218590790961465140720575095992482068691158447703835227246762294312902302320298587720172058740626666528805276540965114200212694388201613738223295737175474350748622199921485427000709923178014004171055034891708589828593981548949056024668955547339785748161575337422080192075006208012265359139065455844768066571710742037109621757472279548327107371757847590672842999493846341192323032137388999270997074747890546974190453298018007121809282588837081082926032101288339177701690017763306129998714020186385884100083733516439303396336099756048687967975418774270167468700593050503206196967359064610132317212159069588459420730609952431545710562255404367277061886572050323008205376899764984230205618157381915770481831067763474105069221093168675918097387190748006362589521306252674470829053284698734910345604376078513508625446576416066445791150109870594655120230121939642105929017890448384977031375688288210974372619133095948924139692944451309455199786928935148357166271827516872335668990677048209831936051306832312571226465860995879013319642215319527875603637040806966788732800599103552986351195345294683837751629568971628536567252056899607462880227908619312099347269253732924481739912741746954649854639228858425093944615229793156326127292552879366147351610305069349246783816079439146147045017767010374937516206310315486704977745577418816595360854801312732216645196730838106796315840017182781951567734487724235286330045889467017863418592866084147254896904221084164553909026093511514774890219976552191712195888763059729408919521997488279131537607495367171357687101336957896032921819640095934688006794551499637026342094660965993810698670356431734137199640243930871392184244892193223554802267961016040860125018639460867081630297402261374027703232233371092893222931781448529835471183239288829153300585739160278288020784056363961113533753452784865543732043733021591565196313255994151662790360224528157884038287273760824888129236919756973976494453218543163637685098788151731180789606593008308089993714457342195762489657708823796298622591069932907448773997185658383583121068420837562343472022894642919731201139210461232557753804569426571020128091675742405924026131121031875915737422831275408353578058435831899634954389669531518803308776308280299198815342212653756224925133379638366026474706288138895242013034698826188353040214343108910151914645901747522759456316863128309225497195918395580108348465824109067371266600950403217597679998875673353500239328841604110430995974211865436784461337927039519670119241231165144231774374018631609536138930863820959838384869260891963296514635171699674019965535644051274867255440504810495429065751938320015711911661961791890538132728316293363157433373913957193299660605008828798106106736313231263241235246086110357259972452297332481894560358559564527233385263351270693433233563179255756662090542069066112548934960643959254195365448602534170181607966359639091003085787929579231572766843359742018372745158306594336070599877736716907980787350330095493813316986985088073765113210393557604959056430449124645049652393350501146893573318540446926912887030392382103449289566481199968829954820605286327726765935153957793994929602972790911969317224877631547700315109324922771881958729469969574137512840911626103048114241969222420048446314325587954756216858603605848018525139397312123704843728739721384937073127313767706654962562252395256974788542931422540806319745978532683041308542539257770937852639238512362056058025146309175333781978113322519373166393191089114341985061304866926205161031321963754890934533831491254784697007403714359350330158564357538969188931404632647746430690411242888430774359497547165694858673000166500394647807185093322594995255186773463883949972150206169039943930295515831853416553787416739711752991356658615741212857792755734448980453459666282108619605168034875679816555946423833217639080819063457373975788838985022161316747258432327924259456285567282738466127687778591262206216382434788499006873114144037228143181141510866661036774661325404891503138246930951472515303194367369155985753055576031361373259123866757626312406659172308313459324418609817504808853554674905811470265231707582568709821805567975020756311788432620792102993057520139800882632220329757523757591270682660421888145234603703200673541669867559192866972963126115245048926506817450562570965913596668566559684945451045057854913294232253288510897289185085667166932909706588975332619566750743101006885418738081905028265614238704106489377427396952426640364809030787856983893875951159119382835755999013288229018227039511041806525463914860372044802777635338145315701555262314145128798018618231800131043895424077469206245917567085775389881755730986495299415418201765337624367271740009559205939043994632554268130784357305668415598003264426122332737821216339549564009008953036320809476603142641732154575620106705395164049625981356388313999803015921684625319821903048382632724628249956871564860228389606326142262779283854526375145017784841144817386861092484132924824725865433408641001075756475920621206853600934974305538982346530920561991518236050675286380058499488321173229483503090818512082201717658041048667528529993003061774476402552210950108754217487945209427089211176036906323000766607166985092088666463638471311769446562957152258435420811933051620605841147921602986886603442904063261076716567002131656100206882822871652923412047072428271754479754542213510594178611673231162027142772622376286883047283563680419316155604611740784685497656920752982974716894695155322564221476270322227777853873966724233578043520478173862898770720780277376924747548058803642272290286996565747113670407050362597490678833360129818317551152460609701432037701988911253860181641836535531669834474003671048529401986489501117308363820164837470794004139707529054921923209619551505298566416520562683624758872106506681716624886006262296244634588587968912892378003764367394732748564112424680449382191818553632424370145694237659450143736138540408967617126075129765284813981448790300071124758801287124450625032220671405992771833589970456526174484358737319743620307718061579109361968341455978637781650368161126849322726854323802318202355269671511073695432341725330033656087122230190325695538863659809399231274313523087382875946403727166818728447439381795530019750646734584339392374000966302235205659082258741632061015020563917571857974309176095671541591903907122785535805624348297734425703734267182797491396100333981198830320411457792539946943769995658249314521867875485554429947013376505920526152485068065992966967832996788236182795476820499612779102722322066140805124015748810093701938995148590424796218774871626425424099317033708015413896090594259576154135755376982994677589910081790158838881580334273345063431125014507207506982653224623514744111663587756002623146511409393111211454841928910648162960440272298624367986208907490881263675026823835691818423540614193763399982880998197544812930838952762631808187561497674880426647015981581402517781509119843090944709149380540365016707380706392301758133154721650887079678688319754204653018385119382232661136341741676776495541103442865841718833032340640036112659270719505741594679286010970278262123298459627372996035404640235870743909944821564319898661786525122133433452772628297297322640190771211621009266131052040604555950157352921668878772262256789222801611030169788035989445734158105604645130762827046274186042206260215611755916178253283746800065037508202689814517820126132601023224470698835136936940962240784855840130818948579470899872242473965545076571528446238256887793916480087110786206061916195414829072237704813157748726657207965290949520950577077812350201384055365260377911857390266594331562920752214777967283898642657679480296300188953994447668560455309247308863765856098604881295735661912797276009994354810312757199172478824927031083165257932958688901034904995162393680580280095618904122056043345985757394488277942815347540825776312192907382228767612110966361233959256310136730532802674264934547242464363252733953050937506969062525544967543640708931284480680000809921621037655962873941729832047957854978980763486267521443524196979605574801411168121081266006445530473889245345649511973415453794301732481215930537906084383301570912471476380245136993325351969543254494725270132678010459430033028081372433832141793437403909256308602475567398182958277770204385812324180874581485016306616479325674717260018049834708736997685598651459379618624253374526259284286982918832816077950206777430499723421799071875994213640854371017926274263064447283630691704373062682101106764729766775059933086571177462834417856014129490658774370770000091454936947929457136124527047729520369223099377390927539481153752576989298930296516492516707617343237439518194423936947834162504102889346608041599835267124633014887501180111338380707689306915781797054606156412712046923066745171408842371735539596710074458008096345049708498675214481763757587529563610550277069763512170567788196919523105256681360998486615379806744885749698946736543403986498720135686634813557202311057928467240095624795544651663513832432940972713554430757716398464076022595780355524564853321444640930711600910669770551267028167755405559336001145711671669885697430901366200512638437367751791354635468843091895251296960510816229115100285612109438539614525669986949624861919995181345545112798736460247758455337816167181339920687266491939723489732001131554842775584509907123346210037043350207548731391598696824668933053457806637660295959533443706363973768063591639373669949409403509518752463127020982257759891975633925017224571768293217128626568338640362665899540143651329420671622144975383610772554206877799783451988729463729481705258206732505111976364240065926394569046656840554798770204160917667074536825159691607421679030261406087675505149465955899804493005478750832290003694698910420347169078175032166160965713442488756903903274867178653715459193540189063874036586200879761841049200014750625614686672681114469516048182497918249003768006194122844449317013608974724900346164109093104622374697911016733860139245940429087463568801986587854392745089716979509393412877442163338483594865607242991936521909232747399339693736333909551845488765241625915223199846619479335272999147713183867452264208289009763237117474715797179549890873213464668272083298119916787862095063231220609356227307876214150374563409136469333192887841015329574721443607720845001501222139385912836370107930026768782275184349672831244104421608289009259711122826153901504049475342052596266700189971727126222807962969786522599055801991148476708747579422580607370141752357277153909853265320395255518444525494953626140695266257688901774647349605339412149683600521484141969882951544750888632884768809163032220409264886603660369576477636034230870225285187448366684738189180840107402424465177772670444964234763743626776312930986273155264707940004517026186250668623271474534178617637718920417428468871741987735068685372051705267245563000533619292976618077592198593125595542246863728307372267842971042829044825705820663327679048889837104366395161980484299521898125844123443220571903915133265723162886256848513863459300525945161360008637677358693217186309366217653318286547301933069595031601283929525262420280325410865253884766850485673399479124206713502597604159210754571965548298603635180520648788583167031046054173774148637392630163212680560547173779356116743683776362794159900264866366907895080323652641671956093108226158390338124031141172190824239531027249041572538785325226429591796508768515428877664824563129731740513693928695271560364037285698430363903735059119335942860880995463513854904908366515587110190128468038331606610521729630944027968457471137573116355866174918897800006432751337038827585031554134815411342145984620314510978283971668486905556747531880400745526234700235697229941144524840833609898692717550831015230965079402764345616059116997983244222521533605637711791585545153581887040218271583859836514483636395218034837937714572092093161113268780064378178856488837102712987213504656974803428241496801727433906516225685132347697931144803071893149787753495484940630305042310832946576951912475095058890995994089375880385617624801082921183262046207926384338091126609784423095420897423697485029709566626780749849304248781659524841513810381368614314988476261954998577640930944347986874580448452952869627240914397189055498797669963700814952608566976211639507851345402303409879423496851711216579146188733708167625327832728960957233318788174890148500670294546026643658701056519789402849937298099607895082358540672924265198687614009818602584498862214308242154068525054353837506819916337753227615770463444727368077357345794411257544458776009349209330544100046679451659592605345336412698090219684420625938494605165753155868047272446402379190077326698953271251427579992073553364230648702785166057123540854561969093508291070672278941136129267494238885396923186311101985614357841592223190388394926344110627839722478507611607074287954006247869257231356911420790346016152807655632270213976420739523073037166199765640003441971867104499231181923729812468831378894780564339419683265481409680494466112025422765394896907821152249460572203952019275900567247243722715718750527074583784878603634377590369298172063912919636153072928680408796725918525741883673744449261042685025028322514345169315611203574864339391357857623249261436615339385168418267971521828637586220109775535928893660130823063566309817002384705707064110991129874167706542820688189100646616829987846436452180562536094850549835643015280104016734028019776640769436011513197513661367959122936946155655112737696688036974823604263183830666753712819314986118151629398765097976283108648094777108892397820823904486377593767534293464525603909361357229413574609191371702088707696532561171812293484303353580761651175472392814168917992102091125469445467904994905066204555831666783527843610954121238416624078854286981478090144982297951672349958354150941778219504765533203390200353872449399291813879281199713110150694488042947397585592689081850274376060693845722190322338188241874420856778821080682959996669321511760925179931688353403152353262118281663698742750636662990789145755396762530789111698974087009427832869106263513380204242144267980451395371912805544860203906280148239615038610353828236258774154768033419591008617757860004706141827104799490910557508883670482291540980555031755041072053253209283616033582826515681050689445916576792069758387218463394578654471923611532591950693900920010793166862325945584178118901194486697524451111791781029457809972975830070761207441309403684975124093750849963468074147007960160722393255224189349759359426935072974592661293719069184476135158149607482725143595400554612777535828722025774983522465567937527399101688809745376049283260520215772695647689644272220918794092167522352677520669253641836239874645639464644675360075436381884600750996731056166137537293379189864464766157108746072411451046193373230559659440718190929381274960933879837381032610125320152012709106563235952028552812047218910614622065189612151026371817049668680418379257555897334445053558727016275496506250187741933024480270973990111280256855430677446315425901668186458159610216763429078925465706087526052358775396956337704520058194210746248043856140715552231182330414215229966443140550297661374193199537605765777492955323491867231710956974565004893825539501649994765102781427950101145853934183876376485180052094345355330772917423730209237220273145867229895698788709615717937831488358111521935880918875125703711561915478657897944074937015799879644319627253102039063254693865368472358695903720453157091506228904661688214378930490402949318148047370978060304380058787530568949215510149909773344783238218873068355260589795402608393745574772898542044184752754120615427431268602518345533248546500779735588326528370143786503794887753848060803671439521374165284158064384697902746621791028434573856445839646056518338096715157272473220138222768640573504703033442883259451011913762857340018233614116144866172154272197830145521540705036845824284732928140750022096583992845911233875516026223765230044962352699398392322736807620656402504277208738028704208567807063604847557779690753037939359932202970020036841836935593987830659075329388989145565903590040521276720503201449270182995297041530494580187969313576357887297783185046411116871400080151759713645175136736191453445091800249135663752115093744036198463193147202707251014592129953345703993372010495298447380258983798318059459377710855021833436951892199647634335075463614674649973165745078436494286314779723085081638431824370578330737558749097389018588666417327190732479693578950326659960425717257728612654852756690614320629569570620920991146658697906099350374591768055901492322074974688329759332970075346872613685530705979062959157077772794405634229163553829768057252118192579725671541154496425340066561882414313823757312727960292218043844059091763668157637079493144557660322385854918601831463062227495564804618861671638920549444834945426238403279942376897017802057292619121257136947665175911120084380004410405262531920487970403613251214297576618605443274872118080481010796394334416623268964538751009126868077913306783610191389430152553014592269213587278522785389054732345903401980193317821889611680416893815728503799057561583235830877341393859453967140864444349685800871930161989197739039866851069539802003806656810627794804858503036609797072867706807883570315997558240270478564542085664800040548849463480404741992149640537020099256954335120307916557347294127120933529156047555142100809491125696581190210075805325258966683374189813195502381092041372896119639014531149527102006379562551123730667291513826051661560876254053831423983120081852974337040597154157572150502451440478244748985323250971057796369890857919506943886041616221290986039044088850107219234046351293920274600830381573152189419250954725986296887742217257799915675743997032347918118182952140298009012178644148284849349928808407697051052161721563434938599204840006351775460243343480447363263383774203872033273842766179771002649266647384688968273896212545868384803424256233436915229744578084170563082490907441735578637539088202620421974027865552789955539704477041828584112316806784473611056592676698586570740462572171410553956775682068448864586054832806520872904998085922433416629648401540948184002724126527813812309982864232824899884220770273554943214423653837401590138422274191099700330748569198877852677843593619797382882361124966005868692616725877368012231391922850065163447356992159415794064717286433953874075948473126198928828247851571510835927747112442888234214661789062417605602205784256827410854476017826642215965481290309408194786806033351662382372443151481184509110045581996968966123845286890585268038797203278349253018059577381077471378620554975442539816701242013469787507392578823885156191531611839688503123024376865113218232430610074371262156124859487785960958431655828705754533616234698494542805675651106715888972254067313346137397626049367324638921772031597425316855961944411015205411368624707375300765503754294963352484032654817652410785377026101592434257305588476872024690312102293053860719656769084373436687010406004623499739637346623736079105982012163866054265654040985148907007689325963818221055561110586964309003307121159182525647051535401082387065081148492741407674031153688678586681067534338542901758994911185831509426092415974499587106710585248940595625241539468123495027778783005018940386430655831932794123512328013357387286459259649300831510396023884719970761321969073184568131314233105473254192967116828149460623450264450611294937892554007166343000767187956144689148131300646812413282219422368882874870303358106353760819442188259766841198360501477696488743996857982788595896292324350628199652684176627223148778733124244371674972252457689034154617943605975183691470613792456701921618541848262488966866597918761641169089566811516730791587230777337168764518098432565683725728840975926982031956953735742871922793139711245871217264567350955278086869604648297243418791324991876521601307848877843806956123640708918967701780127941574337372453580044668282280593121274179497386901216920377841704580791493191568159110607945942970158340597916192486488191092720404352223200404985765754296112302007340352576051123096425425713468044565874913497804174628510940904741962412707236919272196851427325642768312886906597640432410124513580792278612133285191391986995666654919149891322793792264995223542406423415695349332473267915323781759362861522915328705722842420339559126436330146546563877563200970834609036554272216899876338788250452599314436772108049177078560885525064715276604484191143309580489748473254128401929862486707094432008493382692914649537472501233958382645185865012073336980101617189605848730357865410328144690638809794044776512144230730205515417013864038477324500679449871266764722459179736304486528693689694057099177067858303065013015811409191953418745908981568930255693126650941036831980214572522950699912926071669128254253291601639441216336531146950166817367256822281860819255525735715905629423139004538353817483082747236014349043695980225166391161304374062994762999152471958040463102603035110088924243488653832775909375815690152993201263438881122405254575257703229262184012002472892579082304603667073785367093854467023132747846107429251844269583738339346259991616615357277383495954654605914549984889604386443580210351091163952609546796120617479907943683266834662066658186016067522798196385031412540453306596566944278864530776023586516021162856003184679283915010048552698760951441963062266374391275706857456733999380534442207339641736073733951451974872950989176692988718971996554114001541193573762367130727474055796096834967633616703816774948527244542395548185350890233079048490333906449948604734051621949668950059217392204243755928380483179925308898463223324940068436403725662265870225014896838649761193899408402003343123740145985460607148958847507466859788766624232832283961571972982064609312878479546480904338713171687919043735122848810907888765634780785421405708322142588977545812200230043763818548107249981569802242582660951660908108097952259226712398318663091752717237301285960689015256007400003495254497542544826907556230525527793619521682371054275036308370468440709717201709156608208513135752687090594545481312000663415912414674335232790271391918069851650201409371654087404849661972392414468451453223539028995468616044964367211863490544569807261334579132540098848860370684745377934086530704402697155805647506466861341720373399526689661126773452631553511159112436012201014811886138880198941159583099346472781610449915970884871799270484810898225360225058404831476202144682115516860839516395809211517043216825661970812371740397181282710283612600861395052575923001233827012180809439034132948806775905170479773219729741286573236186742670037158956035021625928489431838064481070376777796449319801931138430131738707802779206067768813690506833559159550855074436846935515690075182869826622885503447313845924078386945669758258889503168654674915679436366699578292363141186008610378469069001689751006726600268149555572102279084415976595820075791536829145403479484261731040283865220438654310118890692342109511548562529117249997092573024719840583603839991095900844031881927261216014688318964499779250477695953664667620857812359192053958231558471570227059693888577557161244051479827089442691030203782675321488504053445765063028181263806286691541971937352517643709543278887146255259241748889031095921603337472476068873189541128559533634679816991520108240109759904989111994166658060942917419651929298014392645272664015697263343886165403820339431234856054124144724124986388458578680268333931010789770027988376586846130892233162217399222680552404762846175281377878014629270398619931910241631141654886560785226730220403130732394216706960693851982051161876081132154630119312201159317350384798987788603777613559891730336499007005395119221076281038184942387580137471832524860058827859201574876315847281196211252470134999653129390183345139348881187319215760877301407571524612344929533086481829804851288472570189039664689455116131210871233472375474927010136343998410328816360630003905177193227518143428929327557609153338804090499663938333721180237163461492795619877037349658648138588780394508576659609168567555561987442476381542649758633646257965134490940216975503441691580762374855324905328270291075241256348262499260131111282957069786154061999822975057245918308962087551781754455846831472991952197521746993827790590632481581979897246038827879490545419739802848736466534009139272000317145008877398541442415996774859739623476360546123946640213343907044792527462977571357283357662639670100685321432724693485160571651638247696837174848046239233376647871926167838916514227193712701267423641076870885538744819605542590028305154521188589951805653191875130874563582752907863265470961447861828926609045706907934632308498107418052726479521778006092676803209150696884992391953408771448312531484956299515186812872651616670846258890087555318896276683053126608678395410685569048358422758192277499323702010323727582992089244867981451844529606818693204225737011726021573544014093549188517415232014733866617624107885055358866369126692222741124735249547952833097524915783308038109212312063314399082377767699728477186257668663305944368923857992244436488196971096635150163328443649700625813604063982165191927400564148463004599873968909501922087088513604686656635977400631520988006870379269946896183363574585755120884800798897099137524559162535355477411557540228938932511118869600785895219866320970478516184485318346214748490377600879195659903019723779248369956223060000654817226416872833899657978452379089261385188561109616262386836593169800979440375105553394961900575619586597772668004035101038314799359815025384082628877671211568089811416949516716887083248951844031169322671088521966133614116887753535925059617007506875431646954573180425710330064784971122536937404212492520775110466172676780356855665259953807948013537419698011925641211234886741424692449701183265540971784366049960101149945890054287845611134300341652845345002800470921708193264823988121028090279118213551905646255685963334518641749417824904095021953942901351081599219904062537273406565525458776510753784807267159987984124321340822442826027885893451064761248849610379423655789722451763361034779289250948740396341532927467328401223421097913999066468081411391291877032082908959268854975758337150357833895551802611333130212551423946102998604554221765984532704938487122728073580330206823740647165070939164795209584376534498037187483523816372728283353120765016433686362167763417142207297616971283498092079840338303242777100912058799125808126417662446777776329491453091386639110894207500158183041002954295014350425953276009329340078402783966698938346131693807944346148552326194511145943895634887856704856652672956333096165474619516387363780824304488982499254372435096375371190328102619972967127812788720301134244559119308897666290433965154415969366526849872239878492111776014016242046697687937325779023761894529723211195006897842331526311680555773378799942078199919343547040707439382855684493104710416025977820425184414593608593000114333377854710539588753599481588651143408422126089698476822898866577027744486110416639480355077962558062489970315838435270503250971540421291798539480405468803508546562071616825357865576837740026423979539275633555288450352745893871962710235353987774235245932645039314660474203485544699112999765971123084352341596389992913782107547139709038744096694022404737976400259328096733550740856567981367050998329378562393188529895391368958371137645844927054570398565014882229676435926710612733834956954644298504181291542474080868201249971507597898865247690941956133204364345303147749178544451910394091244485806337260331207082298109828542222804113378963153782334649373439106423983031775565421647660116891139057893682832677039381298337341975506136607124680799112917232317611319124062952226881762753074381396397281706767158420638570483960329675761431234940745705010090128068758969979531535339540462533483216950189511725547009047850498733007373644413093030788583244586812999530505167692516852002866245495351264374867565340551466076589497333923805645712581862188074461346831289127165878400590076996468675759757817045944302609748784107341387593256187756027086442359906848777357091978212100329146884646937638641967054687105407650364655176614699430251212683822771804101765797558393887769630998382489653491737548996009432694881299125340318596898433785797214772591984903394958378523056939997751907003667956905870238196098863045528014110399857813641880617357725261371754343333648154825224528704365684130801661778800649098579793769250597027067337134722427193438910417292263447071573270508299635250489963600952257808300433199626304230869659650859411404480348525415359795588469783060557775239062178420392397054085013502870198852097125333112178300382558967635961473625101594770704974166045893246842623187324368283336130144209185020986758433714329775525927135858337165148866373312338066595310076430446595129442629192724503200840392673515846361900714906037667534258052248444353326710609820322720828152512708189416701874855361290257110134299187647652023765117913178731703476335799263881873316583740517090453417553627101184004957583839550372611421055370567946179282591000571076750721692380028393192874639966462566501040107296699793279539570171963346890091817084905507806247579653041367832524400853349539523892131942604232951066664944479721754504453777431323727316147359639528230656897521597912512840741196017311984537080409388154342518588936646164865933592561879800216140694251196063660977806213015965002426157924078177231430296915222727978754079537322490798154218550427345653235604170185224543892898157051958496481553291173940421173605433983164448393177931525169624762554946774907535578298799634456381433224614684120411819890043161177328500315741104684856014104005363921241214852573640066343898228389546311416584837114002211557975391033885201942883990980749013289174219770873815991968518641137968969352520317140183198357001639896290052372088166063546553683071552936788792007352203710970102894795518470420288103578418239403557023645914834320272391608783845742277247999779303383883702252429660730336233703442823112950006974675871710727883602843812701242911900386782588456498131847980064800428494542144804411474201157132239786778358372469143047347204445523289270930431080784667723515773772452131080147500360123107593718122525811817548458988666065926593498851242190164219438288439856941166545782074803908955903674415541472114231351100147424368480775435811714077514091114515253035581907799787305284673744283012425751843208702519848156590983821572629185585317136656942110424861210733408203222444781639841650073029007635808191095348134021932821618185498414832363300109736826785734006273284176675599129270537256932080124732004129988044966513776268817213668036696550152862234232238951093932384463774266463161440527769916926065467438866679544170021000944595130943746842200076308498330186373999807932978170004217267212933918437182924559332711943717410605381088187251413479034053344038460843860282117718605335391543901289223064582307357397970288746294289687171886717601306399484651941229099175132680392827957207566107508641297707813168685291009809834973854558789096953448148751042106024656657240289695066326983501625313328165101972588761972674134060012250614956963335841085216083716683618137602852987064981966195729507988515656333603602495735228953250271388848686342251086067763320604280379771200994229984402013278454510159020534515272053342792552992913485122336626408469897329264019293266479028945459609617865367128006644285434082519630470355147146373563497534419351692778482255939653010179829155686476116120373044607072586099110986615419715379461584088538112409635872951556432654998958005959474246727218997156679859373098977169739477361527110426597501663564840252860921584690234893307590299361443993477409585761668132767327601780394079768905406195639681036009306892604879755629369180288185334923009349394772887937877853253693374754546665211528555149175335973197073997942538854467805870439173037389819558170863251871401912307686727969670005435768614896672061715509680530054124404057276260104344694183730847095555344088744087768428516235477446423857259526455557101297731013829949135509104941878685938799418265009724532008692851492444467095654705381016808454380126194729801230455729066599357197167884948377149799215559536893420271103471507772143418409185469031606998330137839233187921469994504189482336860148376619152041057050238886576921358162261907914888343424588265011297033098076583567571020767813190788279555107707602785079366971721638215759179312277950761308297287591565075270798504317921713930065735389630444373322373396201992715352785681888737504898716794076328896066197512326410665255369463439853154090829677917458015057508703299232810569111207472155675813176034220152374946423334139526296560121242917518046216261114604659808986941524326244937243204332465458327412085380783224927443304124734536874252721161738544535946780433190267410578391050397398692000715336181121724446255651508898282382625479043318846138898144148397516561907410269292045883377549352426874516948957790786111319158583957778625532391035010394400861393178203625446234057149991921682681383289393521891679785406202586509942385212929894043014745808289800253097264590775713704118010312315925818836188652436778896912953814056323112465325871771873172271742748691371620428783046188327019858792878711964233827836341451366462677418004391972204457270986232831089349181152654667948284758455117729737236364438961377767888890124713358881978232544293139259604673753574409496519409551582231127021581131669939120987611969777921666581714147373658681762596252395454378948495706681663476909332267330573005894904912504170690272441401937642295290619292449543326425872068901391745212751447603637881111944674402078824177761341661679977994915219343373079710559029762345889372535082540865483926550313060636384993559598564676068330265696155341304331811357235725314339380150391866312377736312576006929259992858981383528339968476494207947612801215532241690086147585601262931683226921286313327455012285925416641110273925088682951679447892104972424465696854991668261099480021792188985515596946137959016846952139045473035582685017818622210019163134987299368825650276212470008681529179486677573970626353269947813014483447891088582234135698656332724114719716407177175665627325813879262509467766166850114171253369860367308141446351949649493190479698088563057219813573943134718508849419451084277879886785626379310934193535287573705858355250740443054579841244425241040208305497229004344456512530896639689996901036369498741929220485421577180675966573614974952270126226774866450953393120417073984590599790553821540937849066957552400811684375980360538722792915699955261418536546038470244687494209195025012548647800975365120044973134290052553579286813802824209287492745886035761704134781460029406734147188080566195610241915538955549666728210350315377300342193123355110086631681387832731249005050133811636436350076381432935350593141090090696780463975547091179231330344114965212280465969974165680399175847945538081325188840592383357637535953146843868722229154299542677084973477979482934334434190109251648373763658358763229378351868427832843042727592717175110039634922909630689071407361355625609775978035281443857332701373754776464809358048531017300780890131536976300569225434060215753667604840493529988524267461260147725832013777987764245027094642042012910567625603009569898517508687981168758081040998658400768059114691245072352303949958308459337449914490404197401864972411255037277552074091542894832580294392703674229896990856877709715862728667099668572848832955256452096370308856325948685395410766761853960035965883983992024163899778847896530508906921767226970321876250341448390963436134621680409465465129036363185179811108510207722319740113583885362102466864411079845275500407146505237772633552020273743440576055567658500605433085400147263728276138348511525415134128397462017300974264382045327508542751926114405691841525788161454319931520797160947618898721600805668003946146527415513098411489468233914185152349000763699770889436646276719465756264464799353294373738867582679326995281294505154440799762102638872758915070943307057257073720516057033996168171367646933442062575906214868324429456104612954775155855837561234872649099768765062876246358646190595172852201413400222361464211702826031017123784875659683696561962214998670592269898238961331580095939337841677037296648757628534308512480947372173432406919406267800790644548364809758872409388944374387114222569823740378970007247749538573166497888647532687600051349090956193784097815124086476727450104193294176209948230912752468806361593851935501393516813815030753483077248522761224218251620165005949731509519871220796173699300510008682288611759471636499953359877222588864613982910584488380495830622383353108133000216022968788144759493917167504233595666315950900558586513843591883524338972057761935814536378099329531514493436318949120985118394189388009601181411148368142699797738090327166244245031046017271690140547210899132314827768407147214090303376304848052427895019614567173782737861504079590544501538440950373484879064636978215181977000895582535097519121702123324848641658901242728108236338606917603135068562404506685161867818520318151886145782402548359398976823454171379171225365348907648232250920363440272802261592701484931960313112317455489290666094770896625334195089352047454202730676247070827964437655377595856919827774207437315519294208598831289314372352427878382826035677366803441083821535751477251714009034676251148547744259358084784434353287421607943890343874943725510365458847513016481607175946656018485796252964712504025750374407554039545504684958367130832544681185705314529334590970136814261766486756007973584370783174565649814884406476563701682160779090896766642975863604939191849488729503005248417547820595322053959651918342072653128012001917318320804632022184780628876702834138294217520376017582650115961918604725133231120062385573357808186075426032467548700716153863826423999522678127799125575802009392541058495135862888503792952235625354608526594577340403575116602275177690237948945303167796968361276292920209902071622088363326346765038828340277952126128644867019108550802370200929851448318435235105617080609395230921058156608061475550665206243010992670773594467739366991944596572633150917884853343908168385639119728283939842025363293158843492556539822690060227125895753828148715334296551764234744839878174652633018353252598867388839593865749725797107718273241800987812875560669817954717937946311020977509845090969204035192979449819306955949471375943369458320933784852451918428647315652997219818946585263408374952181869462928939589478908109706541918195281230492460513735398609094332460421648948967977592343443156274724389512666087066098053281922871203974342745125973488013483093505834160676519649639663031584218276067237991239944233604980298548435159400215399039458713589503260365245911612667632175813834741932268745381978609713541028063335255235984521535520369956469060116148375253232403370772056908285820921468306998754199222409486564335649581099154570871723110495222376282728441064156446124826647553972875791226527151333725097686171567123668587423933326716967719906670090326080279214581025878029573634635215112224706538946497190603435054941152563011632558677850154448407547151721212936604918937886053833222025441500930300164255418824600788462809561520448979210858225716759389116827550268176746348892763810589617985380680871326365572516699185118807542242293124423339872919091581421221855617974656791008057825962251717442992907262795770214531067796195463497607612622164390699218776375160125987133091128923183374734014695883155002992813811861937921106387684876271116925617508325743962565273868165102594523657671901510533892880707274543830154304355596853769677310144344917274815952152212242988330319106738515312747144997451088868154451254289845999624805449743483136214364834358358967160263358037976005022615051227871070999425100956100631865088772713048632692196840443284069838088990566728107345723279255251970112457842554956463748024356177203296594619706219871773567005330766296385799465529165128014605907960436073607899709555138495623877252699727175189563631785270177923249098031783826077159371066518155188799413952389494887323534846769122030248624431993119468984299864094869025003847698537700317271247156302880992841898986298050950218550418334826611444865185246002057620995317850920080638351889097044023539429348159777117723963986263501605876435557832409522396556674469900165267203760941927502471680739256946089254992783390670210025218998848582184996335921096975675921873132770887834773147479758608332878007401215079657031193672592434090365838844917956277405781353294761724898607549733640072668926017640140307063411138912610344596493087974629186958688393978319465403135774711249505952156717904674238445115065824899711580050976476805340279941298476775169476182214198109773671063422775186361822897541354657807663457706771901816936716944345025530684847624435423026511375925331584438176411925056341187803420335070560935230324954031988198907155658423684843469565393951841702393529104342709878287690164883716783342012314600641312741520922160409454925646254551171307160177185116717541634630029997814852423804680104748932376565166142499428502009359144061752552935014330026758463785675210289560854888582000285012823785348830992996569690983512889615420618384567510061992136859635091687531750456886344250154460744341499729940979058148403649504189320420831490922537922622637815938156580227869686580905503449206666889456674441998638050969844190658384727678290818308926495905132809248615253664985429371275561087363776950380941556448248357697205568287139150634140175003753431192310156039042205352697936532052999065709525372378802905591363728042719525476944148949337539486277263265727178986129271309189948287400554041397755013791796361171674135832886781101350456965121704958412171941561110781628378028249218561002570129518786407432683021981378701938547252811040451187875094463297296560212595882804084455168664767178430681467309981515672319035395530785390974629848642041562363782552932729731617579700984652131419205132012679651517802510621936739946215217442906728862077046818243932065051733592584141703457565160387109364112371700478231992521041499154834998562029666449313477788635481581126168153044070151675964435095529590514486199684920072390536453794787455144936448640367780028611761388467024006438506448851059156507396384834547368706639639526419054301463558007861941815913724699371840680551710552211692070535589995284776234806083473557424719330427591952380708047937297837967400751847592650767320796566611372932728646754078939987794525828986897769018059437384409360490801787900801566034997467236384578358587872211083924305383409407970554870549516920717608824534158228244249931077065170330583303132629218609047505876906953356910092702943300768801177639976465259499833800305690348799514382065742227153354206506532540982088270099794218780973722142276710480744234279057198438313680378669582648940791694210764828316452220246947199326655858898456625154396809619446998662317027870617388667690606273108030707572926091064983101231461614413623246344860871059545537095571651058004745309034937569365513017933362657203140122904017245276229323636074463589418037361720669309212525966881039310234783750361106913660037977676206209518657024672937163699141706918809624910159254980392019460934364291633949284237929030613797997307726544597594066561767581438628614467348277249373146339219760926462456637183187569308804867392883201173653017287745136865854675782210997267252833035570145041214173645576174731801221022319745427212518286095015407120299737102248142854586213091979372420899151599893637938127862298026418875746088933044358754183473984409568407527841862790358457717869960997275832073551147049384114474214892305582766915506150748343360221896470222647926583357411134591480056360214898249801816502700320052645438433921130926491496001825892227176270030087673594222806672901236640982477868912411384880936645400247323025995595363919683130346482704540496229106541492712769757488940013243816702402563806393367813015057982117862204207188612890453880632856891007028558219340835716483311384571315333277096038992310100787381283169669646512705297197429734574631368516351853430324406948294266510376285572914752960875896799239748766142148118525192092529330531918475064385821216188705139585667442394198577512447158881535725877372614497306799576046144483699356345427909009585072068139378908556123770788359688312048391095432573455312044773192448437658624324366718772909091255082270238698022245638994456155694454943853108870771712055717444465113208328171210612303655620686608741711942308322344545845484329185968002391784350732873305096685716220287038966696980133064524820776216128349682449047758236209305081531957340138576777136824066889361082433314767589265554374311789893943776861317190631020505799037515513139936264664229238977643058768710817353813787771001162752736907572820826583425106494863109489399390356179354519726735362766874561289368527919718590026711115615793516395684142004286141063546047179878440671518543424077549727485258323763649413500316437915122058096624714152925126654702219700775380446533331389072891515087710967255382698557630082083888384243875116289920943198314917343743491508048278733317858096301207114944508267025457981198214398642082975649405155259611146408511312562559713317434677689547780444971388967328605075839034634947816384008424205028853709307665416593681997151289394817893650693520962655359719332150447587212782199187803969648409404112129332548535240777569051372074134368363140808514459209806113332238842486512653732595226738227759503356542899545330615768885356980379558394614002502363443749268690128363264579346562878237975785545255033056078453776490245834993095282503022367299126647214770024012555560611103291023701563104333129717140287973500601350004684161326777556849950261876755206807299669588996102424245532043105290191376362886940520838222167375819240169270749500193243753175024716329376538530302571146173648290941307603959126505406843221906901073065323311164804086125371648661669927171105593113585080557535027020024919739360301260071197614266757501636000835545091985056516051528114490301644629210854768465541319844344275918684633088566859851927659918084201440896877475299794065678977223684755347654421205153554284013897665911331095376482634772965695600555555148051074280811185784746476832920333832605791955098623250986729182498149023758257963706908716653012903430294654372975368364260488903642503960033978795551631112184477483205397328604273340493861334431805123206556575733437874646160480195012869837645090902167364248595113073529341529355555374657536021232193075249027428744097052389588628730365372115809393729554728423252108122855417771947204405330436867700094152261986663121992699770755948322048610268994587817617441219999226017082181798474283608395309178329993421616239370209841440244743059479385943952317794788181863680192152300153730158990330636762612263913644656067379088905419126908191449164761957534766447441019912267516690665995058041608615619341203138265851873662884873906041969895451559971667852035389164214569115660950973476507952186357183877924731960561390698431862900575381160255768447250775281190157130816318549273431465355797817538697551406287563707953042106718148661465610830778642464274418403835080293472098345433593857787975465383549197639186277591873016737349809638169070502922987880489903666699209143218310854668574933838030697012467438968371981111996897892822041005745829402555516346693819208517135346673093020943920360893122542224366733211242570830671340260609208020940017629478350333483569774664742333998345189497924244006634569405924389989248633407899723669994315198451144933918504457848337908319593112229714105290273397317265021798809999580932482707361649240375243770942913484204291733902128800218577444369918379687632982349560402811486595047364737110607929846361243760883386647653977130987647866342101567498502274443646640914193343099133712171927844982912696647228445001812111901960356576744963889597572252073604277547868325497697363397235398610828906507144171959765935128524917857703565224680679079880531222155372919541939557279317276483435473225164894617239192521460593251619135443698392703714814016842793589888473251118352873013171673692131833818076351166899052338071771387561661590069077979602762478293757847965049456162401492818020251163476995906631580302808787223933039311104177256085977333173257759985256904810449132369421576993327430120887305895340310174095533002167878163920016894117036371331540256713309989777687966862012827305208565574579915902778675230791964186069378036366808730380228134545127736066432358044252853122526518269583103087902911542389100883405785434226523362560194694695822410388250644207620070673116561296669533000557402316440742639245048794081978745829137509916952767042351451345877584588912166404665623534394136515497697817700907136430963971567162076889109027094601002249622062614639199622258413583735860657070978532482653169858812089251939746807229039757497906839893861570928360964079253184259157946261272694007280494739018855772315084827444672568758196729916908237567422934356697951082515555989809343118558727881101225727826812483579067439113003572811521594467673405924176295789611089438982587302109761265278379857334071477781723174295807831687390165607225767866928740575027990642537729407412373843550432999934955376559907361843722270848860204721465592632837899938337073787993976520409693380615524764753583429851646374506981200762047715772157107316636987592379370806067380578665733945180950602604087005149634354556074414524383099823562129072154427142246936846898113510987814428007228466262605459098223602473701938161471054253335657429758266237349810649455088388820373614644438981136516134117366019886193578306602783792590179283898634861853261888784268968482981080338663120380208368265227787384214455230513718908738831933909483552419351640829918620138603573379792027001015618921048083890218421575646502165778364211941199715850268432589570899323399833976116455130302428279037804919282513544254712782315020996606531785979223550239592739167708396863455161269462121399105073427731485789770555070530922315632686712015245608843483018684334175627261518237136115658788223450210368120436973602661481653845272675061934995645134048487216793659548988011147883052039904013692417082415208335742172997682543216514580501367015958004868986322286744097346609456113442906960135786195475411723525913492537028565958267868615005418120508768754197110503275726508203555144923951134635680926005915535057881198514443510023941876609130007927595649030910029669471744245907259484907082429789651156202923156220212188798588114308838407408957244886841436790088816854317296207605225333790937528355534490576112647476814456756378204510948712790798256482223426509326833420700610870976350981517175941246376687044516873722608252660967035916369657706382520189593180836883851649531826964319406017498823164064319848548809357975424634728682709554048207653511233703966882714318261129268883719465629421186703559924496339793916357725099400856203441332515072407789622198631471212657781058526551801790939344293008290032955939406680098483463451853255661098722744384150982370618053483047919502332079107761632117815732007191122656543416849426685654032503419493175912523389503323771935787105869112177355841584462585575452634142045136912541756096497385997452619125005388800605670999506747982493923123963851689276458727867593502596068725397860490113746942790212997417266914224035445989021264882309705034939426887564807313696894211035806260036096947623610560944903033426172195423604545844888701416277982351781733110825630814355698931092498812261562091858391150239428407770503125627054174285691006733912210208645390396040331165917652180743858732045722370785213705931591320462410659105441190220147947462065754960046679739712877073200429514434781566716642143743643123617004175864192526514058757142584101268665791353383845158382870965626711062349604324468438289483367733889495624285590426270847360459073542368280115861363363821706289576221126918960215492948623583903438735095486196914570813332206858774307792075248591543437077063616820466414491205964400575875806120413510190703431882469334419231740361626750662844661317951202453691582197241697720160655993738172786049350579148627284584315411300034235199174206839333332409219406338044108677406911222474085926010215452159528278622532141150360240145479460172100354958076206855760536728541610515857716397821621575065169829022939936825716554491336313776027468947551320001523930525401777077172413966072155146889239970789496675924113444521299663958962060629302822256284104100674483235720197961155496187024810859071734633381475473833002915289954036922925581368368339320777429947841018285076272987249061912151288009547182918878634204162436388076334402496592231077836638342074313073891183082458847159219351787607200050865614834889366116827945896693579143893208446920527702210501701173686702540811203111298758295415721172276538379073865069460386709847053479549866580080150919680037343551558161225496083688906915804733192105197847204258221392342735910725691178143430150754173032187524510574774221293138864420859450973567115889193074353554056992405376258483866044416653791508874773377000579060097252975801498293676156402303357667842538565105372221569513954241647126808836242666069504620238756651218913522373738227257820813317339621663268298632054171318572977445832416253220931886742885180664135095216514724967053240077632895981983849416149229232869209700985473108199505003463923921953762585547568238782510049897773454590527831944406556222017764555786275290110576186617481580254525730581224547644474846860184222562493000310255469774525243885243383842009763996971868313142460858826197778331363643586769697116933641486696827125089544123385434099308193098355375824654864801397187230442670359282464350344211636171073043950755824631350840657495332962098032526550424897997531563039331547155248433055777175189565593628231879926651412196046788464258841598932379018427820256428729464619936381665141300908827435558763564596062525341392452105943277203081511700685691861083007609475644715533132615839389135000316948330776604151132440064434802423031597420984344651670616414270310256758461952568392985176759042705621832679094668256584383320042765348052757986961466951143866569539338116088856119823645271739300148571394249862018912671254953449450958631286860045611191437144707359066742586885474537189452875830235076802015300557924694153697292895843766399483362269972669997502680986160840739500624942466283467409534008628235291532583694430163601448249523303823444449013810116801697020772813081506794155241159020727512844140138245730470280907579896256311084859528170153265359856289009231690119579971171922951076415546281984366319102635444820477017932297416637148058287312824355708655601515093760034205623823838887504214897677054059746602261419539427953852961849407688658721346044981530872194705135522580571573947808167135996204851486334760918839636604965794857748215784849877506212241791843039648766042520201124749742141545061681361216396386307296189406705682969405606258618894803100353569707214726829473394684056317862597217124239247051997726610086183935054563585403039813337860956281244546222395463814982441214309705657948835514447892125645909233501830687204068975635837047271366794701481041292661864004817619582271079387124328494862881282240862026639886110915096369305906659488083961102411709380179470344117449891588659340127928738547837672688446845790195174942849319308124735593840335671345465669312013053339592840179010960374687884951443583324504735447195083230588056285789808850758259673177104330928828596425083488043885399726633963193272883231836709560692240439052001393250067462893781496018380471150909917535593104288655309132277047404359572967539733753737930726666743091295813962159503428356290339654207694120253417519407584039233006751520203296163903407358910134402178274730977463647660305335898754058099617519754778918272710582024455903492391921327202455987651041905142426405403311358540429852394296806194375216478715545722867968777865091759619131206136442579087709388504175072774861673885444011846114076187221774359145069920183168355894365036861323228778779707847833192110198207787273729632659969729108634002614124459209169810284408143297581075712645642634454551187349086302645038900767377370215856997620394612285544728601131892933844775964391052389077227476850468422295961790191528582130763802868708708067980496074439163752942771599206416453365419773773526288114844757735358402595612319393144782674828564698288524126002527514631192942951916366219557537886394443222208924770334865607040236576719052413363858562905277182249393645041264973872979044609813185343181045118334151204896508685506887071553985228492419072691873745625903306508701033828056020877808822117100121264769956169321213205962620089124698517576529727590186165971893890956267799724970550162430184971091727956881669813892163188017402858041034106783488024239923087667431143852077008527142262348592304704468685881136978242918122124009731321114675633452576264550839814474557891836537631686254087671849536276772222150630284889721627833604520282824425630464390945938183689281120673513954025259397490587306873594068294145729050933034904397127219423746890470522907965761636327103570065517914777669917459569626222343347905381221836853332605790972209701311054179540216127520920808584811337326433605563587396068583610863124241756619178952140059638878623589048776767034423165277038726150957911428613401393506886821798482319172360229618293214027340020716779245304605479835994411964459773329114680308163008997486269005084243695802368229459954583711678969067014723657151366907091086967986790506580095002038235593219877136971569463157515517261286217187738272528094505042201023582558604119536058113646376954784571650337098919891478300654997768940877729623104717959865634935742552722619845295438373034222742571369074634579742833539807392476433167920045095776736744758308535116741570559252654423780289530962827999650051747938395343682547407822947479121512718378300261882612149560544164396309131935215161363445989237128568557825637290535939436575280951983737892286789422886427090996280759775297763632091144755390221674410176903052608468819909684600592633798175051981624855577156898274068893684403201921163234361164474893817503724506894706169354328658766493740009825450879375374175627132262615436194901903573809274230075976989343029576113577713297646236362742813002191613509220235085615475868991389691941225278358526625100545537972181660369165626959683008504245324008337307023036157933719162842893060485433457657637816584076622870878094556743591489272234869025121254549759407245006672969676434702070792985201750544816719337946349335214357160302468831297709051569290524682743578145127556898821308836489504693258709052967098894287854208118143733793762829780501115457137639069757626623456096901639181919843141562022507204088501782742720688812183006440948117488142574222734822055460168926060773509597636132359611250353859936323908683413054385705016342903385538690753746638407590869864917438874947412322189515525473683311513046271191578863003586806833864166143842846394138334626876965037316943752688548941850697639548898846779331695137724317427339161168356721210975477073998168183824386649912935633072063906465401814724989328418184422559338262613139463497731477364202243507624957674198444685066296733852865495575894970421062756925826367238932001239161384055098663420322659954774742292057597687854801062758465337854545378059810527252942215197996179802430319154822350576048329606847150352269149448011072344626380114055685046698255283788363337673967436682501144303923317723325467528532620390895710023408597854760927339565503908740038972716250473634897506827626044786451560313220595112608365915020236190580793203173219114580330634229062713867653737456767673602990824223309850490833917934276364328696807732444404041531331680276343930191877629582902603467979030294741030865711248019955096521984499502136164796901972187004415237799919394467427412281286677074517480471842779237473025031432366512826546195079065079366514996036824912601096493481976612910459436799836489848028279266900329885070011210774861632260002845472598913198051110602228443536029400135875966779978815987396406784442200623325283129367497481433482396532446515773844509972986975179615088572060982972608569536031580140599409384461056837283637687799742148267555621973662891277485693560269265372135468780856116707365809073174973315258715466003490441338049300013003090159108734891789099239508728707494802700894102288346764351149447839815069969237854856284366428564745859233412569911278633967154689575796516782072584792750192840323339978786425253606399843525135652899258753145958967350499733826414957473442664574249072368929697819413517539801265310359219713634161835075537657504266489170155066351420179387378554022095482003795918364477778547669153736573789641993400752007068802861973834078836104059675638542121112335308713677983713684477102632213817257333524780400997097946898573874757278293318524064893920683361552966658275829577256126921315319746424886260665406236486156346950859836464055325667200594166867907473337549718344778521133369221226570932223100910505298832541702633514118016791849775664680950979550382708792893004881010827185227526606729704212959565889074134410997516332499762834441241645125603998739006866792224885691052408536497213766118251135683727288262808215596828471146196034350585026167088636080386235250602366328126006222234966845174120975514014538594188979319659689063703043348930935637728356639061415221598649489621357860704235830265682434901601489513498515058001150305110400458174412393250748286540827148553916196364516843707552678152942948220659213852262408929904983954697511103290653297987084869445678942556719555572484263793223120085095852852493596096790336591972859293263491305750585790803051093123748909780689208569629000045366817775613610126788388712171716162312564739980513685541691976986238986558629154832440686443012588777371988697158710101054631645103995559510834766396061264660562410366630574850476757828363872591869905703081191121657145195861993525100251989487329771230206577900234807570451774160025094597113982549901477339401566067598302870029927295822546488754971270724851490402456004173132019641721451897279543640707827594565655632255606810916210554280736168704679497046355620087592763419195971568405697432751594721431786352942498057777050947363170835702897929242367124492357300132416781720403833910274170962650484528908091167530056191783084708655412200189747568382753008931985556751013732200398530559784551183690407203969391881252139159283321381847652927194413590171779327280439935014948018070949495029346884690587423957726973973615565828921998695308301656627049104334706660699255729298594327270793214880408923738355704084604779568663281640641164112446593800950411076793241088832478368666370589801876374789471041774274939979774693412802147885616617640898816267345102723533762121706256664645335513479363055723352582474071697999524445811904288341262531437782321988628683030808399787389768718451057479916763976601010605650875358974807881429354121848000211880513128832040702802547043870896667062691623543075393513589087479018707729219736907081077564183378096770624603036565394677883060912075567145127629894188141045042859089290791535113560408996679317191115153016200508929810385154369723260857026667642875368360410960566049889082943150909445665312188902817007890510200750014095002679487191448604949205060001529819089508981547809824722450351803747124242620912296683007489155980464794523658042213803773056125820028827656219207875498080131112928775644964621677017992674160977020737415012889981078058676608663371273426427198031403690611180656427846800008329874851582493537224317297771111847140646977123879815654917685506523114002608614341296571361504330424405325128876711268175305790655511633501938140943340408601334838193186697878746583634052966068726311966844713399551290585139372539747790066400486615012806172776102145016317086823715628703623904040339111923130438225481028231392141142051372325633783806646034297301669495263664382271148512419322681395880550038805540911154613288921169898651306599680569275167494265286770690194614854374095943330229525972144877622259464983862440561123779136737326846211764680473042324566526083487428573238756927954246254239965459689436634854949058474578411063533834871237606884963436496049926257497749332010220043509031368267879152499399139735959890678049279637437464214017972315740453147353721164482007215023638377073376922470830787971744271813268829170472346377882195418877071974275979247083413232654242609521345918190033662516512866725312724881893049079793320020814420982042633605183711356958342790398610670430196640768315169040477880015028133093102338223985887691717612037521922897819139286078874869862011545865209768828174191996661088165204951113484799718236978427914753595526049672083826111931159319913851501277543847077163249886735781765239528323024028486617444718863155593883302427314988989688468101544581563619702852410162261236948285950555724720554452877935781062776983671406432656954246791415320577889973434550174116024122914853386801378517571327185924794702252931369178768131384505067062969033805150206359330662497166729701489395894100246125131335667242762384294124696178864030001879770477670619520353685783142228785888042111161346954772490713188830202219813404968702557554293977619885010717096772112155883077951552417648541238195393554782912590636138429523745466587543770861629401753565311280197067054387479862345407100954818878347101621101498924136371215359574859423593868929107251846505017398822718834587452655343854253492966677620434093617759833270443810274307753091500798703743507916115148627218572810781204220963307419613016116426617688145241310398145577683847064964846089761073884731281992455900901982150886364701168214292186420554380058789077118274799453594771373124507208649846104532475257658342390386510329635400692821662281734762472687152109693416074986260252209096262091797466860220062243553405380767366111602179573034264999214538752028198704400209004362258305253119211816916456429024910618338546488906958406559194356418244400230724170340582133817838910352310553944243741207505569145536082320361191956524372133584892473488735262903591949503363014824569865672302201925720284526710715928712951918620526517556981829693132406413600082430575897666275397505644665174451192572513555841802030994749941383401347060036724747978778159871570229563097558869912801089729140712447098008475521240204790590655698557835258101991550625741087423835175835460650423289297301611788836694882600291778329932928987090446117949912731723786487077405515836764276402298035434801870316826916783726155781801485847177453783332010156155171961795038220182614353373001609038658519745440625598052930059545859590082458906379415783369898914080069603407132639946466814110116948227265926893624709162307957030359254384260728726113460578473638774410934975980526659519341130493848084991285385217913189889303286244479339597061456496104388720980176742630477261021783939666657026059961650368060913183286124886889442369632194260386477467398352272098513312147616867576308763447709652689574149058069363087453345698445538796260714433369529361580093631618473405857693149498983403008052004751004445051355442136751366312411293267737379562448216596135840985137638716755152367625686733052068120819167243484418003829664565845587935465558293978271346704775913533263414043236902901207341254430812349285204592009145568093971649917233318914909369744692468508286885896952118511221075770327009507108351858845753967504628904552533871066814149379541068927455116266433332840164293960065452578698677524431313501282690976596957699281965174635466155466144662587801235256534175559421693001064405564880116578770678753869942690563367071761685628729382808861100417507485265612754941475227214561506889360027837572754348029245652889579713217996020120244323917622946600070979930671830743094876472350931834036561554075714179558350233404956650731066718566564142742897837377035548521491714212582048740783041735320810068706544584031735225722629183675330323593114246808452873347374266550098579870568888434298851196971911146324471459671250857983591591207938703708979250079605158244283700606715385906883385407530690202359487283394440556124398381096945631659044480213040962104251908559419132120742291301582225436388929466540994812539805268350619569634361351289962410127553373970813722986201043466826673793013313879621571064795451659247927055001207141306295345935730106177593088714399473926816394105109114607748093053129069504869677163016688260303134099253458586558043208122872040789516218440237418399017320803947503041933857033701688830433640550469584257319347258573556823118618680816865008973685938294921623930629244679658757750294392383060765889653498166987350818768973853771380330171040399962408152319329370695450623977818252135038982426547058331365918849437379458532976607135017097229849525379010902796024121651511485756670231342369885501061340222462722301738001968622263425618630015594393346615295887071707858269212952361865791313387240606624293298519055969741409607726111957727517490948665121350682581472651922714308733457646285025255280946719060087795612596848327797783576838768551743911561201108839351333667425865384896703804749401584704644113592376583010496821038267602749725180334565294465398120490261715389139117533752751102380024746097086059230665062550425995345354863747436547952528896347070250772609547199557740436116740655583681501754952705242031607938540364619206325861320367552541513147519957935089602960428090108711043428814707987005444272609048111093345413766426995789046881967733401404722607286459204083562594336758496666650049034712426095678873658515664057079266617251909394054636797981552830176018434054055511396476789766507940832687332188675827649718927824174330500567306311844141219219550833533089648780498620043551267515288897006264684999194446926231160911997510330622272500117999879871039602156030705030283205997974595429134497964087663113131025027505879459958995926948690980167261494853372858958721700428477696155325125459637425612539621884571048016597080195066565834822404492425447415233639169097770586303310307009143272323489887608757106350664128675337681663397139590012335301228869192356946429503363610567809441210959378005070624054400819225784753906984159621630810101482019438012652943532843066325741446558803938301619663199499327447350461550306092512996948689515430385847317843374244027070228203714889497182906142795170211187262615215705084758991716499085021780919781507417911486443900217954446252633488660777721226946288297039950554594494153336179121301193739520919296647795016936758593224192468057582501547019682978554311210923554667834806373009715665987808756609536869615059144321742555779896815867791891560650876580901873905430938088590771326875170245315121561406839887786961634972432966466520202361269064584079830180112676348310945594691336659752463990300567259391785673757412916689520532054299891726722511008845569932182077997842353043429148331913861429953326789459397766552490903822912325434749166139305140365647353017685471920075623261216060912326815721400874804158492141773493371636681191412764219678968804687986928803512234585654770209638509636669856079300067755603016503465487518260485744029919495844000678103034345398606265482751538162158188785394826538167475363690163252420809073292885805219970964901881313002104342823829218627399361567507090489364012670906583658319280961110153086813661715854851956933449722917614150778325551981217666048183509747687042111673799189411185814189851634182563353557077808115792172283476283782549377240102105087594572819797389818536129777282485889373060627043368539100397124584834861234417080633527167899022323698024447081325099646806668163175820503594461744797982663507205114340776477347827616986005513799374048570145583410935571963511075999068608146727400951687939421979120095551535501303070654687944896100933711383043932637513424504588142896968328044792924208838956996884373895319261057410585753263729106938538195821405646054624916617387657705290262998331599858185681856712163672572949593506969480596480454591981009417362854181978749834512458426833364462833068913953465111726345091643454979496449139371213003978549480129405529043853481936264111633369834786956264143925771532743981204771481841597053070854294685813232029902013103297221872958970920008682102438294407559237760633075867257248985144214721144407503522535074120615979790269949124447546251179388541951734781461142898628670011105536220797109641170212444238382639302785637401640756773010223715001655256565121162163026337148970753338040155899212383617888267847251622591811358255752961427337115658818103937206183788293745031058254869889750761373143605797514228206661074585392094623586431708509496396300511891571939250109871140253801880536888503039292030673457805993872708015449719807191679044716511434905192425950103159865939866845678239187239591646461037979991508565371211471395948294137903889893498190894977804958898695013489449517567759329448200484451330657154547458475146486985137721227686165350025699298948512147883801598751247814559887497658619387455545808726202492957526675173539114713169520923122616202379449083517486341262164923074611769434526099358684508859508444780157399405484889920981986090712047878139621700410073151212454531178933437306538785995400891293457008034143061366764446534097327038344879466442270452238974973893612348899060098891460226485255904436719588643412859416817408406957614370584970618375102444200610090587986874664498687209334618682045235745634226339880982882767860234609911180632506258229601356557370581831166271102655994611898017455340830517188797575016198889183859739528894067219587507446316095032474769249394405434774302286916510593618273139224432229348245418644902775869451701948174368575832523307672591921712097272768253533329084094904716437637337683583726833000087631742236061161594766104036987340292292552187972328736570272691236402964501302149116644947236020958745216513642904319893464361680996431787686555704009219666123676739957433528121007198039716092220397964792898671476533573213767524508853091822764477141401454989148875778937398859548739319367754789245359274648075979501297275461413608333227218179016530106249849452449738273185008931887564303978784628827485695591304680271429226708474557374992417989103928174351268675049677042726399812846809132681960598380096255842827852329344982529153192213078599278798981322479792468993419120493030318297553473235006515617552908545118722005468054436371535768531433694800784501093330364294383410475998583708278405787597684828531699957578546651921784358724044305755821123275986315428704873752597938239858644599525141554861787450145025647267019258257642628654049132233630563363674275502374199265723338796766874512992240667432954439646270508997167399511931518837986621642253315191248637071453419368772415361567325784036470537671191782647199905070233892407813092048048732765790481107626563344677141762722004087041087919131103861993743191995681606176474427627323586869155159395097748942373498771878843721400676308414826735764007496401920067655389574838513409271081284528868729820541667835839153882581661331463475083616156015895509144336143192769995468018934357143886983585733771212547746312974571789756228140481973713313558091063276331585932172542915915751676712521154204294221334029498754894498611966266720090576591426979288607324109205256143808204231621263920775038271739427326692425748791392164066219770874023667287637503447967234174876378834309416702764449367314669315920955315421748719421811666749269103155097356919549965692894169395623005423149080954804685744113501863297699639269430329103045511517330259445878965296820940158677092629667857680934267698446569463801825635056049623098988178040096494174557452819169998760737928622240823652450159251428499936798801321142309211113419171014251029978918583018912468171962018212323404764657032421130981152162087042750855877886598490689484212699688537910931442299319479928833493027154834751911919809888085327967243929167996328370356563681569574522406014250183369481664727478461000288081025432277162587209057713602306888498511473095115225437046020130019228305360580640287381904311270854349936119882033004312459050709478763450984599102617159951301726553095927813567893870929757911265396809065548582420533745487378553097892031749551446043321293118510384512660243661185897964111693413583825915758005952779384257054248932474255354476939718469179485949611312795283200953608892510872366941868571524542649623058626166942732362432808682513023619164219965037195037193801619292237251200835390712683286959295301776777948162115500123175640038881191119176863611545941392004703410908349163334292308347130555716479427357318711857174875400497577928337256741247811575300994396822821565668683896897252062168357580998166089152669818587711433639034326774584066229766879463431046389464020345293502696369067384042353699834147344115645649917217816121661202748867162278412017796674886649713971770505341096971496662331946018628500350043434192490165289554531908602784568396669838011596890370264123576266167532213562540623904021697191504689170602483331637466959049689601570126478993065934145952341825755901260851687199059268219076626771142921944711394618070379846270557669736396969995884592080237019956296443485757641976348328840145245660586458267812742341198964881331914951595270039398747582507114283114957375159143912875938331190741490462582429772890984984289388291653507994466076646623324264259050967347990471270696972404654664935481182464069039174256705244042944629029796209973467834348432438069941043402344816686353640734160577149932682927808490075727181906468806590487823212296459536243771610146255030399580494985315586883550176550766407799140673744021653104093921825476118370930561308424639457039898474189065106828710432970831078198064345423491504354009450399726336938513705228720673813499460133067861174286387242234767977608807702375871003383425689635503523899339330840938068296205963761867611471714615696941802310515567931096033387027955100399768296596795202057800967196926847807609408003790770920384306954375226418662130049985788708219191719450710173283834693369884815571975007908083262131088942299570138517561949797130816751433353085451691607702477449426281458739061806718951767180797403226304219146047565133382859221036113476521004554959642329867407632560671198799079541413629060414574145285848469029929689889511124439908922324810201697162167961954991683663111109247650586156951583988532871963230128331277469830420226751778426241731533422462283441370479509875031223375786259561677970159849688908718426336648007434332862490121547968477531830921929190504154961704825030584646563828552048913101340122971256710120730150931651758230824056686280671378770203398326079413727692966473465693745365381509069235845428623690806322279354353718382999749341132955913346883440077613273457729715880207686317453579418239015842540046370463084254636000302953595662651709938851180785945327077756368118448262087263221563270042389652867184112549505938910150329753096642032906239497564964942597333183810246232278709239799608798599616922133847218038287500106093076398492677110524689391072982689887240835907214245450316175383971159847898745926799829725753662732301955796940734439160928300410456050294912756873750778497423829373273787814407046843604912520369309784917424758410143967495091366193924774769855020991698199851600474019484196579740567012674848323446399600726349629615244722438631171547763410207644275668541572962402346418374528251196484763050264390136042097500012368386090613112426749697965086607752218145692407151215518642498288298551931866479624128910719584268028827259242979340854611658559675859486214377646011104562473048789506063120689822234496425670619432641079118293905409027385221197335631784158737625576689474215616769744608728038301634083289907196684520160658456539664310680954360274377508685132916477605480430590834751184562736614982416025996649436306243038104104517624094593500025438305506893814412802155069973042313922629950272663299952846450029721472633790936879450404281230666446671731042401117122932543778662746077170136388642698378820582890229977083936724386204712452236368493793691839496239965780519243706349553482022471064831013860096320347229375689210929277783464951408692940883833007188172398523201627479524841794642624992255202745691828554229135115403381761184931378607710085395241101493755990176363185058896644323397625284952347571165301575885238532323309066729304325349495095680180521423951702991772827477052844161921129869871959983432846718963375407994902748764649539039152564470121536327209345082816212712891312202173456575080400119716588467063957842196571513646977921145682112169747545564894557280616512095945900647426516633389118852064625535551840225644021818820113256881556266621784104659260278388392988140336336956468673877742254479804799968443366600445998974129318692520391248494248543850824292720638640015781609167308105181402600611760334116623637164732404225617893278265134957954391787175119579293441977436067209346371534339417933202856203524273172424493548337875288510682696037355290878968693856707086977065267250524994109544107960352507128965198991950125034316206327361818922179440292150533045282285371846226824926333031499528036887625901352891117170812666426906386548160001728514191800706740085467870823459763507441900797859221948386967830544104428935339260208645010092838443443179338715370475198318971088085635268482261437501014222487048618385283953066641184999758492435108467055847331053033279221253213791248305777734609733233359662317718830730301510314218585452728313940052468889395103971717760446447160443223039264613354990490927267141049899661703527617756933567113189418371995837685360933981934676592898369160754522441599226122706308509952716005946530609797501978191144058213055361715326061133991418922792688437973429539702605161837488272799144253709324745327665197320753300325787640809723712563307782725362573997267634404158265810193451135048717441034595556269344168016224261459909666308694840120285098862784179297721756448525078849060468560139831074675660371923440016977415650552671525767256578752113635063614543728977327005393460081058566997039668831838117894174686857754785748418380300746639039847880051265394463026745692911206138240442661761571363890686781100613963140465117984771312746447146467468296836218976607906723672682135439479177219418470770764843520779432333864819449465171226013561812063324635463027489214345074670779499342939698827241443697808460297832857220829984055473132303047765666954462077502612340284258688314997219535203381359459778239694953128564809850342440418996402324457492824434474031407807289248625885574699641486496907866516359920656746815363027470413384789043627433711716817372853495178707918815288380221259719161310806381052827349330369109982613693880051046894903431909355224680898546367331588073751148812933339875123372529608249718447849664001774124641189908187021091209023703160243455814464243684355678445409180508963014701522444148027043635640919233747236350910883577338085656195270790511903570656427475145047651319600374105514619978107992095968824546405235866120274490747279464610683216337437555621370503356913037279520736901602982273313773070680723199444266584019677190054787781919361696619467828408649864925426190862495120310346657791375331251890902557599697927971184949656771640819935413812726537682496506982229360034916638451436903172532383535054853996232952376880521153297696190720663964054531805051322749365290749105305712231544625868790794979543235023557352656708119236827163113598005604855578463389991975903810248917942026303367360817576552123993657823272201223072074516208272231161864595757969989987041311406037932289074611219979541860424859910891918354702135010449944880496604920387478498308118420102317470905831064350426797891271035460159802260432026954560178142992973442967536944390451215694348056555847109605377695490447668780621023270475295554938722074154612384122895546823163746457477298600361398467299930616759785590561687300488427579294426938893571881352403361463065403461663568549188961896261023278896915830190702198095024549841234631201875395728076970469597615973944447460722127346471308933613617473222321345777740386318238848732538108527759396826578649743389533561134408342540580318717430181483897357732806995999738724792177019744275622130404913345609288924866202028793254048135440193301544334847527932768287109699683408759362581176476258235123806603402011408243883053210320243201503178582553130493839806161709874316697178131467627218599936289897933864835819219168177918189021085774898867678382589937254028786016276781195485373181487513808263056416066600901691494082533339796004381103096494372566554352381714435651182998238332391242548012172705225896944975550481576665677642003907010252106248069822707439790045039800607254860690572542058223346427830083486789320989708390636733453234577574133281746735700846482990639871878277534751926665442907054280731178383636262387456314116059113226473844678779567459128216431429512016570840963287422839970094317127248759756269125201360347245244008827864355280810309846862482784510722283388181416063511497183180818065468620833452704521185419560870719490967042155287095221938535148783034090922024458323331450886920499058342533626137172487503385222675882849368811872598515048454416051419647728710318561174142044819244547486449553288790955979408401087650641952371279190060141577071522937018923375704141965250919817367920108241958363647895386749926194717473012119025396929286745420327190130629003078616917476328404745407777574925207947865293622745471642606545665116536121633489179464814588470634474047834907777887681780128480902606984519956470035578521541541999619078395076995577819315385591762183484969980246179077867329106011266486119251334465457746709261247041398196045955450369850147347691522023100735986434833282573052202867973316016632687670879159312215976488563689186910131153097093475523755901019102677997852992205916001830472703724607401796186646770177915643227907793750794730712104993894457483495986994803581487193230263655162593625629257263699506477019020464451712831086779173749216843179738030830643025717908282117451814346149716493375414460379767704545678542560800621575955799410001724578460966661015814340855095889973247352001203991324130512472791782952505099955782622850034264052120860899797805537262037391419994324351362505647498147589123251123286107935025678055523614087812556573736196173566672997215536786895519160560319139382710926153011080950404627113618920706278193239623649689079404656693910804207076818167433362533322221810408345992642934773381973050325388324042826603842514358372863723565425456301319628256631997621456380050037516825371905393538792525448043320636699998103633779085391549552448722260857551073745988316891934879073846676144761610999230313039093188613734528818308919282734124069707221588823739152474723838053110107092195138983742615493860638104461683685625115717843267329094622197197088894584633550763621201062255135219054100664969829719561008987388697879066965408025276347701100569618803375963203763861201483170613868387134135133356763539537766854439375457813772766834882249983626055281802031314191156539924816002452943610494406827033645510700011259425612538970917596929439206075615131150085047184015735669116214285190736397553156679147295153663357499824220307664447957760820228911909145385412111511605498941613199690221402739835249808603358484966081739976136447770509735406634944688870908024779794402740612136344266516814372478850419730850758749742829390736224021656873002101708569366526965138525961206758956490596200051846502120064858981049836675433058964200032699014885409321577287608245362845206475888782612842967363091380917601021129816355695371982373315755497850270138496047008282969470134679580355244259911221694341757369158473737441846223712855591081607298903269092298254277671387237202063327018077987043481216257074145099466627670913425518949123455223772687758866322491509315527032491037866700005825806744426061124960719196517892429924700154355212469664989328332371199674449043737672289342958926025980703531858048083829683957429865965571961254950106758492288803139171672986267070532179224546690274700075988546161936602337768739715536503804800018224690889683653642693046694470321155823397744024754413140832814289248269896788464606169872454617592736471072576732780652683715923464946118019447926157939233461288859070514976743861539942181198210445190123196618066721956759796482824136209840671980916356596714881408925301027575271120081054362780142299633111479465313762292365239410827563654020135282504399815099987823945369633594895239020126987890776887700773813659419020579590745706682511231352757164217659448282934786915642023183527846480964802250345692520142274939310930865033029097229052929318274190289024946951997230578071182143946218939920541761013127016836317555880144495995201575888231603657494898329286088250586394190018559274293997334984362336877051593628291191310329818568460050676819240624807166058359836251913636202502982717256768582299180110460423006571005789494155132058650483785040679501511837783872603686057259314255799689058957248449566301187922255417923134437533683646866032291561460816252250035150876966080340187167461060301863946535987468119923552937066283739843320729472597071455735328584002269656395662107601454089755939914935602370553669780682684412249477785784123813476904289453397107039662285268340252872693176722164195576971156938245212862590274014594581643146268491594232875899804568659931144733776831960697485131979281035163849849828416530953813907714738925028024574449292941851902531199003095415279902861881433820478697936985946080989956631818429563567391926130078349146928846115624740950584053876154533881938042471394802199031147111756415623298839407802335272335888574135283205502303627395827695704172012628904021815575506303059352580081063675676263319556013367563454867497125049137008174364924413214137718977569399341971886010209284535316571969477638021432282601110287200106849661367852387644043583322059917626498474847918646177971037594476105895181476434648937221320592390728558842271466138168255447394408159345821617664499592284539245661669441338943175471260290102739041118674425802497003519027779378901173104149560418995531231317089356133253867338409901607136826217892131295928399028197349157059500968188818251284267957573512020853554936528034420767798662948204159428327767608397728611168617886749224488253969107180090872624189119359688780125459346099964208216045531115077179951841153614956040981624615518718468454198324307064855693240430736672879459844627181345333038261097215622076204498559641126306745952213707609214498360909142597416354079685019986074834114916961210900976733536549243148038558828126025042274521802394174764312096742842631059262677217330687312169125010296281764040299728076504040866575621235678140272435959140521281260549280110314345623455414227148600148417519552926819800678415978976997106285390494920296113660038068953234417009753491495505748675832591319830440687884699208212767186520765653781329578999837449429099617967340490968350839633369863128902082195309832598099871118918076078562258422523767574547730132793573946085958159504440538405678583667414678704005435069165638960846281450161347840307530409261848512574225178333027488052328093398162251144067299667051576705056701400026150101271114487749637316001432152655410292367206302804306600525796163736523984321530682585900803147321318931784367901253646623678880352854811999283440873018213954201868877575537387932505546947609435679517186931523356184439871774835602706672908598595514904289642870860393604731581557118910927696149041785106664571878068297873764996978866449150269889649323421360103700762506332733322052397361396301667497851255108613327028139564994276074158219315618702311506330491943664143543949340553962368241097809015779869360495930936453906760617460555817149285196634355827260631765462321256662816617278849647774184733881080260125682063020548662692125599294188970219048337623697861388670452546491201606691107362064192408297778571721103033458855637498485040346069995879185579437038856476137593869574149803933621308990335460478725258409535151395652524148656832703865648092584550127042342285603684975183085499237267653919169918102992015405987356880279343721280498584270868072458816538356695448941640648675916628611528602874138709341868527015299427109281790694537445303160443366830948931103095365098590282901751925938070783395942631491407773888567198515728380906770196546988466169434294573820902165543565461816052760290943389730635851825729128522767958332548110639472778040997466836710264796811503811787492792538589303227192444392213470264060753615557941602292761176740942078472409650012695806137131590115328311251938458543262895989643017206602095073727227240134081098145020806903344496347760058596662917457138376632046236281619595830749086124247595560681440141649130075042381523096342793589389025722385225986099028550896664689644186867865969006643361424377893882976409350224870008631056170881375115204011455803658442050805435041912362338884111270642032399080887748006029237860206894103256981352641766370470294095254713405018750277877148948190530183201415525100165819989016962901007427021036161526320378172790131031931060563440239048089514577110203019743741543531262992528283872528886177469903343058286788610692459725455240376856023223986665369294391822367428034919685582538074323177536457267197768179957543214409198809561284373813059888009018396047939399324319144206869100958783513091111817502173923414210510322182050062585056963610254900966094754888064235334221558121840151012096505630056761267221902722963937404381418620445689874826807739839957658134824751903773842828550672446801616974012068315652374307669770046408727236242457389083150139447055370926626681095035109076247273781265079082915152198721881072504001457223093394003713377391802022718478888179107463711440220474350835959414840039304414272745893516499961678135526577988948821341694780341553909069611947533025245331147686567667849199189632271259391599835419634195738945681928148242614650786896165765954723875855374674858704304951362865536282786169435811000430982276887702222448964553596544542201977378114940293131441274223304477025981065850304525240429956211790998659267031646286426403609154187049633396576822410735520250223064956813121146402051752581963404522562705358022131132933582915509456092407536137724099817671095852357868231992959899614552777005529589015937862844504907628260897624941669686368268977520957344977502283512751715805974468905922661339704564688810963510003118744519861543343119186561619887265269224469748747620815596936780157986730455134951552915365863826569360715470801923451387900789001888755794646207795563519609452531470665841539310929280969700251126290794734976851299053147677685338806568852293210107788922617268947497550436564872316119268524682524108549347509000126256035774335950501530047646655461333825929890687205063322850332277588525565417999083629522306453675259140542180145566592635067717178814874632587292979352183961473817950247873360753131134928832107197929046713507318470079326181195567450107140390439934241972483023924762909898370061386141411400582621625900162201064024892442674003113806213579953043500886295830138218192098236182725854742922517810582427213085996578362923219331480910590285869907462734206446657336241783843145776248001818127416359435602256845839174347369903644333009434742778810875627641205231713854949235381154538551329815989297832744489068840444052460873903087062133358072596389667178006088332333773325606329268234438332857276569350053970357130378387997307949157617515545528030543214434267848948110413326967590529768968101006748811438494419974461421208833707319251963357654291410228178299350320083488029942925918135196585195970196021524936687533243451758698793880437231784660426737191302016289935608263148218185624062416112122159496455319679459873233499380537614493313207992560516272570014276517044315163892233096306546136265534648574002911760403877200786345703151255125539760925925348772359580840258498559940443412050285526736390340770505075691290501403694361787342668679067978257064534783431570297594090007354072513210334898222851887354707225850423350583654404675601825457425927836428395563423780826250672242021283721856763407886423632106754462366107926894179196305006660530438741920102144300210272404143365366940870615513968326082927089479347132823999194569808775887900097183934522897895061491535188960167963054502258659095721823176256978543942785639274373602862750298320765295004912219697388223181779804169744533030884702462092421282330608218417866009472834695416445048374028362312334276907625596873426258625271129100252510968818622213572458635657372873207967281059085680788186010408293402414997005802178659924117047609733038918512170303930860655999218173046473306416151329455924187267923351203115168884267876110308700106284829275353357641327343008302289572872809116213010783494706562619263078585068512079081992236631979554377419556890554629968059941359451882132912421011555187961888793072299195113437236692548794023461405776654878929276652682140067907214441208158440264445666574244044001032601709624382129258133812677095864638298442505924071841991826839907484192604928547130985401011247715095786521458508156240655553124144373184236229844675504926311383600441262287153568283145028310584680676341963841168719632528190162046904444726585068585039736072330568435587724583784982661933503471080962489318225488327204188791596670884621812299323945195124458170634090669720523629931627567597458872340578083896969624421414941325190550562096741495982899980456003962840209216548578891637703787063844746004956075529853295321138675260459019337481591618352053328961629413495447775004335152954009336435442996834847543581646444115466760144640923125381877236374098949976450092768630754250232514810429893510146609542260453113763060547849585707991937704677234161009330471028036699707991077131349184319592658941677442952600642182729609806912456343463405505834663216746297637126624377567568866383620326831435750899712097864839695890371121146556294904363938010447832191298584397214049097092376890596921100130938960772410377236132530814321773782608738178945861399144659519701968894099496041923476611513640377325863952989661262584817495778139904008167940636426897590529784965803802959733740479141672068460384637377904416977400269257658192918740607446311458345666518221443793653268784474582859849177366275879173605207454290416218313224887557716794633229166941826917101804328726351231290315726731547879926217317320714575731340418694086754549803079361198460071345596732507188617126161583432731131438321547383169908724379115896847482605164350231468189822914366061771211016618459028195518044650860412284530724312111507698364275490972918376868972256992050153588689480154836129119185081696957366318940808884723078580053127994547597233697756467078359311041576556896604989700116666266733236413504134703430784620916768499935851324818838160586878869658751256683919020207939351133316962107279341758154952884887314542664049932786182631574521858147641292501926299825883022987159690805101630557600433849464119292797828964746390306567305584809872620649762601633840075167552663598263812100983339251438963108776044884256177737653386700131112259829493220311335442700209963999550029761106641884972868146940079986289597274197555836631337696673960721419120191516980672051247376616571317013952476644341684540425084673513889354691310447755956444680169987231126689657405666021029369829047200783850729973359944430133094556067093594613599784539661559920065077965579581363406897127462880944257014699881526995988173124181305752701161161357351448800391076229079644203249163276227683366495882103951047851279652973741291450890992481430508653004277550852181196544588710283874554494688849102880675629177719102910613444411760849490540122586183415333417008054187143565793444577187105692178619901740805961666300661381650803444265679304720750115150922168252413327512626474049149909673831867023543645412138605272405664322374902208435466056208217633223386565872906209145256294609082000672071028793300559669677594240216264340193850230716963285260103835940496912220776562115870366078067317575525707149811194636445764042352861963952604788855935210484940863433158061304224320572757590513250203294101128814416533455366904604103768927381487689057662519804839785330680929413697881965082249281087591412076974107798361794523291568224471213449130745353209084632483374050685065659689874107435878311727191992155637898738919539717403620515221962555360390469665222115116370617289650041878427766918045391907796259268315037796997901185857907873479813794630177430886443121794783173768571391486833915122875591901437881600766318795388377777036877435238372886392471740350066287451639915551428301641592682810809692828716323570372717483889783752305354368142224866291680807872323224090336506628519050203000282615300549093632318977004093122123838377855158419015419643733786047505700619862694188267344723110532556859755174212758888676053702709178517888999704894086865039324313030939636103999676419434860400409564168763239637215822889954334495726466162159701593231886326625373249516902256365584159369598291483850375639721457376031832083771909141646554057152660279672049137759929414920868909871817624982454314549143430179740939588416720194343631469513455525670993413558484636377716059784921943571792326739013614387297412085651351245449592359022835115096951144323975167247199759116134398808667523078262883903789604041067688886741374994111358593328956764622145121761597372027549725000570941284205383237896762211993052909581038575786154542692339961899477444413405130066631909911533677872842567848554467013948629109932525955196467499140889804104394381138327799919296700922791434446161276898114956408014351198286502078804727570811664539349214475503279979470331081416357496458701735716093231247272707948235531933883260430768607447846488892590865300178779755553336548131902169950875344356193453203672013848377421660870657538116279996046058409131204134446891174462989305311378806412498727730455632976863044741142187950706503072947277156039125406659438140994150540025953201428594045435273620463406469324400933690606893378706292954712458307940350176605466707366448844885972473274730948947400784226558166998275546164034618169349365904123022022156688408897088625052005111661033990759998170932181420428210664095090214261814886412688607418576724802916724984042365339324022242859623690468338509878728132939201636693587485495340937717488953631849500414161564569977028236331914679820247233918424547657194486650028013537021985572025686456129411722439789131506366613714163320162444450610703236863320239090484199769914852751291874078698876807671148055275800204549191864181909110629241462366666720491853809060952098821292611516489819660931539270266616591379889276811246165310143342437002992331357776208166345096854101727089846105855543679524318907524017456712603345425800718305063668985320082512097537034619400784431050802131399131122724359613313324569372359676430540494429096890538603361830249493234325496624199121269648196970134138488548446298871816640987099705070453799147690912769985835521243898284418002860352450977429039350136441160400273278806233455138624134847023921893352960328942577451309572747110871530242552359999077304531409277973840916173132065495268018905038184307764168061961948173287440003257418025884239819105656454072509807507940511065706422866755998245895131241986711145074866610378094447596991001825700473163826256710201342629186031017530193345482260721735536375035179152870513543863212483375263876375560702365300922604813034785653020054659046327407825295592754773307427010917664886763680721245251271290338382569029483814002648757046108839607581448270860857555245353227866544953101617762253873148093400868600649838963638492523295616927509652735686525718296422704360263729331662690372481768835774318187608213753759986347044636265964135075507459622078072376435919793563338503791004546406641947448320222271988374524823345140328420694140353411381913841942748863835965089813568625379691063018268801016446842957339918287214096608073310239546385412115487276836749684741494387073797855530584920599599561123624145458814448568069259532295637474166764013790245800862019182004301093167032843376520377916505223390009974647445262812475263184453634562597394441631977892619428514280555217706390435544978463739220498797647280643758068390277115209862637955147810057803107555653331565562950239227725426249752235431634644366035526134819214718802106400104319663781644690899175846593160379461815180790018238218874941475056609005300157612168748909478815452172978946033378052936776445408381046909150441925267196906973399555078420425530552070063072896570336665807776555971161764113296533835663578292887339700471122523636042337690667227771234672184410702029608105314320362497543131141533986371694505298029910674295544570592455065301016675593022551809894205860991614060836959122975339535413692475392162240699155916090246599722292590916409745072813050519383433050572872813907127195000194914409777817746453296067656162298075498786749637880655476682321957704317171193917889195503006284547774726821539649805453513771192127326505645020935594551227743866865868519612923894246203189313371945871554799668494357690919176901207600808033384293181763124479048196225566518421595995294908288496906830175075945423358159855648793647800598974275334404577519426471190131322584331001819911654337338237493480926286798704232402354750423943148992213541491565958728038576418373477668900034402934368708504797950623359868706197295436260455558576729238906224033579789312996426542863091555134676659861384567247145940672485986330416109604797512477701421981271253031269592871242479475510746176522565396588209256424190468663066308968641439068671291991573063301371129482075516852845769204801201832806747599100292002553591604483740702496374131357824322031336481533510215907645751155534585960734023643157499978716880480233026012336638892266269463349481510285997233406287969734303024756513808229340801342463374574355518642107269640191534194690258041084547915310344784674089254041652621996747176431775961441554440330537997113367869651923225937027538847121359278739117384082221336520016065447078577776353660842854172341743200840693408997564977702433553658396508924909243492983788122957928391069462571541204472322055369228525549084152265401611458425926511574399110866645342978395665404696972361159770115184802924227830686642571262537509321619852587219184405607583861577916254249590532468259488407406696282280018224001039519390656378316352044321578572206781203868912587633065297159525700336304177113369743965022220648293720950382413595840591386361679881022995523207408834660008811445874628290979204627368467834916172645949305358866236011929635706436183110876410274209781656598499440151868802234277291319765018315428126859486830409961200533640460462232725862860004014717060467036517635734691738452675047243378157898654418352576614973616343373296287741257138308729115113662938261273936306668207009390500871071804795548047351016842529725726150217581255023986214599770192197371529561668655115221998608396678081285157964194329853694012054495458074544353991720703856940453948261788692336806398017731983603438029712233448725943290244575885353548367171103210056478290355233166044264319658722896814081756220509200204670960548215428669903529670598783399871216288380013322043357918894954528801061612390976546654547765006426163306926273334941150912171044487910152821799370886639659566932454019300748919026562630679444510012819579870850956791419785386149288664099378860057324830708969483660048826153543325503696016353535791729846654525978433950321350244178946781147008608422650429683718065716526908491396917200347890320840350710527719781330179183500173771781550047427232328455805769191582323165140025815547918982285295663558526042376169465786849441763237154159291711018003503205846619377960813722016821763593864707015513859557984286280953671111364992339797860694940668758813937266112382151288153068844238870143266171361537448782134515027774872540450945256234401411250859928535478043072685582460442739740450260989325722250452034329917143093997033420014113844441089110743201255019282794369956168512083897968480315804493255858860641644851710445430272526086457283454412978938506122716480401299994428481568680499030242684401606853354830749710196910001063773165909693622135212672640281210520839121692044742325405886091230812873793392452017808670687508616345122605769362606108583218340866985518265765467722002440686795817812428912715150973751403211175333106343364055777567360296682401804912422446147443281268035765240545819972027404626671371012785431323372087503020078285644629509117678668956878701771984136297206117706256134224082422803297140132327544243354213074339714440276794458190212394370947634684226891126741931499742545849043426685421985684118438357626964158344298340980980048179467403199737185978510626274635620543884652595751343059432434347563607306854911005379444891429080493041253470746295203214970838932801740920393386908008094466198187491713488087028739386199962937880025065684333977112521931722928727292734257188187350431346965067777210129283743593976767582672183000670230738035693462198793414770122938531961714303380826259869623087221365345129821059818837120558435349470702544972958130774191973434123844426232548414187927707671265816887688883321590275352138767381500820828998993579026069855649078682590045939255660668870864139464023628007058796951098454182535286753953187531182408399182340496133699488232815145864152657370664418291205285241687094065834818348886987348096334511168599676066060638948681405957057602918974776548368958340367099246351644614488790048410713879336005381927738687955246383293232707849080241248504304405338485742684744906944546798163082920949729803498711186490154160592467683126927102900103906450303132974123538847624879509635674070117606127303807516838249874304725862812410314747067787163287474103832831928476357849929873698983770048501480481805610151827652086989723772887883607054282038213335341307305334222829988450328304150279345052255264415678135409227162053236320454911717383451913906604096532173815038176112483222716200892121723418021553285978921015703014968138172917704709615020387906206484048774990179468264052039087919675951163162186667762897802043800618072343232737569042707272696864838825338299905802078771798974615595508950173477772909714120635834154455084194521009607267426437377758473216270394224562300644059583228407081487831369523059562654668626216601183973231766647598079821677266755132739478201669572175762633213811875329129935953043421599733772129136562989704016409478036236496819199236760551700764564543115754550383395867002394146615257745396710864099238926132493184937525139477743316110505775011508560933259220787327145557409833414605087352991219015045462205892295138722567652686113111056506354195027116300514132891063322372801349320177118079015058397263811676696343146996197127778387067789115275526015711752708812736671505915501186700838017435891606621233422429491724485701873481664741317578909279597465507396490887511615140913584988436217059048789277752805139349261673989587445554213518225448900861120126391309093089282906848851024021397180532692671575514438099995916831273281942216432470620885281003811197050675254292264588160825649818643018786000037476343359353307245469195875427991860513961961801933999409058166277492852370274139831356399308084107273920230978977049258784918500227602094099105497677275331179764326437146080361513923329212585620026973858177833822927098356476691043415671948339411036683250966883444685852849028975756760397538911868686163765746078494068348556183648916390333421934552482138151546314680564577341153381088785071345652779307266325220578420547470995600726742540392020129858420912128360286656817256776995207483655069498548033598934337349879668938651100559106748404638278096215216055180039852774538633576825661466414472219154590317102177851841355705635882379805220161524594756205762195659501377896126187392947094263812938197711387956477857845180704413297915933524866227897730754676807996057431364042764970438307835309953025535124131559199987662961259946465792361477376526809386973323952141906791916367062202277483206001604807497853518349578759215419036369123507090810285314806443894809475680596838731800285081569160562569384587893764113963617227512152438541095282049456453251870551375206431090511405198325559138709802722871751402314377024582740541951191755135322411320430520099291997543985583536402614702108846173542236172757422761594355913597432929017021801333450877481282047877363092654254821853023079155193826999113121035317982967168189676088097206865850162912490364672034173958926195053116628182180764340511265316399047918706356760891456813083608235984705405566293362594227110053217634158892100341571090936924348210136433578626421852076928584473255270852943715249195451587461286308569448968160416118169642670370151042922937688894823718691206027004465498829024672825450977785936544036231842109443985429014256816249708906534594684293965441203799823888920609326689696749521804793801324649690868439747694840422095656631649792038301445911521335724305607806269925539650254829326720894692965192368092148709675399463634286977681073863218943648525838131002728668204706580321114007726972371496358217891054892014656293512595989265868976509857349873176970057335627984132722908764068409937445516627258118731571395311216157256279932782178224054766437176908628068473847643781693474486152779709432886217888496075920311282215212135193600296277511095671019063570647299432067976295420296002278541421769486205213874187856057619514719158375614171047632043497960355850953030530837854350058706421210351736333542198095114236611398394102407827107205843498231693166974003949547274156004594501718444984719919052323004432885957221493121837858373432652210371781442452057673615544977423743108694244135150938833370855190690421424432868804244682252689888741459830052750552768401755495154807083620944731391025962700498629464999981757887788421111280648467278743034791275788429573322485163878384488930454920488329301930969647223103957182777354631058088283978247311026840088290742151697556702612608476540659283638564117329537956881471028807277507621671708071241414344321703331726502988303391368474256575176127099322438916278974630683243316754580079184809321239630049451271789443758612965359101583018377768410807477945537816929730956674274217429266873013745178751711047259752162023499138886401012918061783080959988008285113556877899565292310164429205421937102658458234963388873448696688612477695238914954175508133566569185200313276287287468662189499812567852772825525179880235033523611724288863311938055236559137909246718731299633375476285997417564753395569602066886594028903976993695894476801727147723457492469434162624837957642356903075040231524846099437495086190629062203180708076738325050446679544581685350949877746291031756029395627192497111799107845146202828066418480110136948966493668280183565662492989479187603591507156834050342887612402745452480442093251605118042102255551284694919995795096359916032337560392846856078573989711111680975898078319912440048668462923911529013796874683418484653782542985368384784381076439241997136093520907475399667324407821486876011598269127041342879318635530056042809852006585827164694682580024260666906750257477182183205230389849036731355849845867875198201339286151135188629946195085903205824510385456442007785827109426537034762793849540935931089367657997605605005268256574169099726829598184745978711157906968991837523183950758599873128289627604945118786872038835345172653443628654713518556409743324802126716463424106791146341714248308135774682612933415067444026672832582763585559110020783399564396347529852110684464851132530105470826745917803100992397893128865614311070398564047710749899470454339091442326435298719913490989858397068963697856934875929241286385394945896471251911677320096686134640115141220835294816198341506843379567173011608396133785378445540402199160675098227129996133389417502766389680164076775400443061416298424282948532184963645588939308508359815123800704420121888749741260853470390655823405838657969878726705894228789982489616809595970534562684882417467050689638990750213728198617644499445835563039952100448659648238561519131593322714835043820859847366532156476662847036492103814386346933493587179213553698465224398592214966364887922008414373432255464804751588818946189910941330255520682557021974313889201503628968530475524772818082873693364349372869177467749519208406637278453128203320050642449765506567512046627710106412311725694994591188357936930565008134481941317599144547190171131980613928869469683019107511737237831913685638011382910712746247217485132640788364241040912622768600317289534427219511738482516446939536174794626833461322975504779648933309637456489964341618959134745022762136845684327291930313577726035868095978953770154137057825127757312004527825848117977576736302363507232260060939669574878901941355074297757037074076908119959910397001069945978820594533919781760857072334124722771238637539789389866448440946682942857620349902601710087153449181068151816712745918128262377689262903565758540587468931346780753250013505877134764219651870360954743307971866721082962592945764862355206356753796925674588845720355860130654563785191311107427996101480088705826469775089562910042390189931312522805253143227354368163458220882077742783333850144598011957804394670539582790173146540790907258169018956875435073581621870557636124515368491680968890064604874214819723040404291502303524870546978169356362706342592984373218797478136464741945172829377114168611876747079799485395754471038232494686675825325242919430479666736326353931255939878294244502946920709775570869006444844580326351352256090707246258756548575314283989718529753271573550588246665329285384221335923512925110696814371169225020407068153227500004789742161688042202227404072707708567108873258707763698585450065708444191151574405511467272705392769843930432507151140743925263622871665886490626886056449312563816656389022281132988203812683529928908722796365651941304672889304896449168735403804657926127055408108702769054584836733114051446260309019739068680012670410495231537412801573513117949631179100680673317068402216795211478493040080655230409590611805842764925848236036111508088883478391236198969294114174448199574625008474410105206576683671065539109448322481906403269346043160460425864235385175622889491447790322503304193260254900277624810657323582189949853894934021478821508992204163743239753673364032697460377833673878123607558922309643401848548905825489863840599094458304382533475652799636797665051000862604680466190226949931980516687258012695198110264241611495312176985324926844200052212856434172063771471892079514386035739991392424047345688589873746038723470274391539102011302951913969016637873555652447791163533112191017572549812047887238635613801367431284289023913246856894858570701195792939009501827043397190622798991333316637029063695274488099889264851564424963810893517824828331083871212434878415704315559289352756688465027945430899570802752269061988250680540545380964187049730507614098310877651008650597849700954903779686737763763199323476120413158599423647681224593049249532181625735470302637979298273877470704896466666420671116809056549279538157878252290382950693354950567016987047811935049003587161050440033183593271426956479003897172303949690981316468265255364666083036522617225038008528113015360194832244900649941593012245701178339308986692118762792125344872280647921618209821413350927258854705602061616530656711974221950104736534053362952451661284446309354767647583068962414528906341033215622499304115786919876982969266876087537284918018514846615314920786237097650995778896511595174280048908070292195319605107766783049546120083733338710485951633781031035504159155020450270598471603642951209590998887316817905377209706040249616561477748569086961131784474774810173799230219726964471513496033479225768968881654666338224978170570923576786265063344990673510933826776215671877214879047179643845939351072274464130423986560180148865093281751259136270894810033346119649517549132644708292182611640734530433971296581934003600062792973040349887649336025928914862253201503117052198375440766194243745431871239307557471826383885724536368081346124639277102379028822268612183343880657226482451767077516842064884944871461973632817772118045821295465224887795513729919546631597247101850200343327334809491590680619499132669452024222112096484673596455722498067608616665361031743836468924411578026416219867501602640540946908234600049345049120798588629455712245752704890760906431621718968087324679678190115228164693326015223713295709614386122608611772329968073521649486368145914995177871127168126594175144220831934627901245556782518822416313994903628591370095540319504906704593303974314701631776303982726108161998305872095907115369261834463770200435359024216648169638399774158899489235069715859513199169367347066938440460214104341869706687162451906400250550889238554444194955257419770857441822379430523259760223583086116462065534799222942206835549139523411729396051267481889630022037987911715338687308662108427793561024465947897898461624468217138692635285791182528821569280770842497014390246888851203751830520456998757940697578627677936580099888672769408970776960729404296697936067055201543174236111741778528732778240412071392811919889755380943432196267433412030922119792521511608050011256445237295055845328826806138816272717116889993088971965279994118545920988119065629779414111294733586753738537447604809348647834370916104880524946785586860814831817667097209745564221399112357473312327508670918045667806235482131102528889505031200311496276822746037962651412648670543632310516064162933035998993950914865290079802264604587404886882257718122015612271611367034140403605350528039871884323299619382201425937951095695617917625367576054201611251127246394003433253849252905225252749312191659269170684826582701707790876339151819721465231989869762214966353532111923434336805045726031122668551549265571384324141891371874267365870902933537254936286523522512693152994214463550833451882124084101264549001479773979000752390743621056415002073242995554731487312378756507011901795753812215715756021697705654050329157077528248911892213680715915497244638122319111727525768376744625131516288169650963139721124147845709801217054007120860590835782624240560841489615877803650341386930269863062865018595411847920466867850839200349551918548652574324310921937448941111646187177478239541531845938984767993136813154363809332745437295424964854281095831801400409020059121160414539701098552198140038126749193535390683530011495538028499887460596924342190699277329979249115344800575888381853631736498615535554383314927101466301977300634135970394809766382767171637410976716403878431588620278242566677934461919684243493959816723131711164178827524613640930707271448454707087541118829149503867770682581647440517858815127463945257429285643335731431457544358904104519194065212931381785641116434229634563657697499464159014867828510463344497723016629445715254759453077199370973012704189989936563301630883876018808632555399715746104709544004508328020834539921685397931379466035607478695559197670336807237026580835763004430981209520103072388800775809531380474007549982926354049916476720356001757052546886799590966763808204488433753968366076012763205536510486054149490083690222137135469323780930352989565750103119441508171696901371679250068874595983785016852850204528245048910460806687480329049458837392430996459522875061691071457297841799584739845306448390811336084958842602169941974590767318303742308928847885797669221880764684368853144796361328789419418304848155842094125664096092986329660105316364804461126546474431817274900018358684066107710846830153595493410024795349838217884611225402456319050149525435185488635569404383338784861596120979988483193120551850162900323802094611172205626667731923742725026747598959576876186206273645712264814238516257543156197800700491183136206200949057226014948795921863051304198248809963176417404142603983856911085719054782994372458515324562280776474557649136293160935748010856289703971676970409950879942270554927464168216486861866554702197788833471677759744071900055359821826731182140533204182955945803343362151670693469028246547694629190953905680828398088338952047089275803197186710415871573408894931321034159433282515279839785786242946190121214717045901755534585447020244521975533763025945682570273388089499751661528577565551054855534885488483061494834145452701496369112652674915852339896267161424366875274585684007860671415036232386065021075642969553921586643612178799391605265130303744461854375481500225826017656952681147970485021967186235290090033529067777676805327991623821142483373665104385944274794855707941654798347801674273168345087661070965173262697875809225856425022835949168987175142787440481937363696770515842076021355606972893238518146287211205530326660031048273404173285511168209487799084547644752397573354263088069473397109667238740089168436200854677819318839555796389670933613247085595634502720094146573333224820551119398940092262090308038718589304189791088467712518969583690409493223127921948235080943058157402403792311738260994550007773555897678659452461071342490988837380167461108805201689278078694128565177432441883754646903800157735873391647480702698899192264175363950352832119969990269671983259615666194105535677012707009165753957443080305132706797840388522669676444173634752243231303176324269734070158102243084488430845402317144402738706151423550575497776351074758336349380166526680190483324242059476265647689918295802752811948175979331052007301881331862843477205232940947164747443699719514434915250524890200300345490142830649920602031569296880387614536599651083146595104839843602910392441234785906646555310496578296232725489763350704776297758934683641414230544709230118978855979569516866628207768692866884349807163107751553636012389903013382907612832228779541120139023834843726704257309571436609219126684709997514062905804624708299672588473948938597499901830725986391629135748233040230485616078027432347706452942324578557182666072992522515249841667573867917501920583884870477994379478558216886178816734726762272260151041364796954777205135065830532243905544667629300814596713605358570297188803543431840817469424981688691232099715916593528573395254549339679399708305339449886544602757385978808978059759039999525763524795467423215405703667865018472606223549993317253241036875831832210093065210590393446764152534423696455139373222438207610659313274270841980153833919049851845067727493519411126299810964452765315662293714476064473199302792678287750237857839162185783959474001206096364929924122719351602109424084440500271072196933963752163499673810148207269081049307067766622914408692179527571078863124751673834179983576138575507572754720847065208138185545700021243696588473925775197064710596297200940350537707578789106156569292165250537989469343660674372130113350040991781109371463608361143394985483199993582959536503041678203818479028570858292361622456450715572495339731478976154541573258262268167032353703923649720389351682839376516062926013257638592466425515885057064879049646268419544841185987845320319680814474749486650079976296915398191817979061929024196036060814331445854901752986351864335085065236633702669810697854230629327447457312221449077613166103092361992521349650230935272680457695266571541028645039119747236876312349278767518176980878637102837856875275642317214004436715099931720464440009230862970053448174652063703811528431677699841624766725359799643301292139573138796571028338813217101383082103335214957522759874651693542768601315734624263034610986928311607646334639527927828172832946628366700512200607302189575857120305445905028881216048800994676321208124347503534005099904004100582238592011162398801647210475596537030208814272911747626984361225357848944246291958933199320423949596733246993628231107553563942784869146387616134569303835241682194541685672246941191471142738634726517275116806818034026710102018481637737226150371880341126258288116544732640906227912289321170734370434685825294765948215154849917701937289951527222835979103114064903382801851810723022307612091035213553840273882100835891606417155609232306181256110370165964782629122312856928886950256731668010802000297375481513207620780303612158874811054294608743114512237941463065589966298664952036469745846752344072231125802207062603852992990230743143693590503786775736358254146021357794619716120071717247563847240321193479910733639747440723415353790523853801158356878347444148508189558139853519054092213679292845540023684358450000974528165837606316495451306268687024347026887325084184432210388524044556816344703551590252153373805282299499350150478395921915841873168413179848322026588191530524730214704429782208861495492597317048191117222153319245349171960198596237742863805500894398212247350255220702438322163889441934847596677984174794331174595999083351673139055519904083382065401641079550190576923806542219208635518014426207892605279394306203277122729663917285283811299220283379170740742563633585026254571562390336004047586354818221809503557734492746629445303056897182202820043424599305655834341090467490006955851417689818815966932369597001900548306226285647289581724037712825769313735000153702639337591639362107765803736516421546469167966808959309722426753693778443882576379069875683710684651925510377978301838071036926778100835900586924094341521710014892233764460306854529304080712265530406719134187681288885659832108287013395730463152458194043500661322399502273691739945865326251295760594306694428764477421423867011088777424406756913836298631119375932192483245984706156736729560031159406872036354388455946524858692206448982258992094426370748901468880554336531125497564815682136196978813874032571481083897050232291069552721876931720965115963808557983760011612204826931951018190439594982349071815879997492173731119715130732994480110048163457166054121854671681523849380751542538628932859558917717927218997703618267831499495823793005065482772957473540540521818107636292456507671362621753316382496088648988352392010560295045512591352657430482064422999342077235731515656387069344837346980454007665747520808397613418155204251680016074565047645290820785238639276153970273549836314431210403082590947063020942003573516346345617358079814586383196295882149542965732535861060273236672840053822463476674859365642428543050219063895363639554985239992709433947718940262885737725370998273022818141984142553897481163489467066405847114821985812561227065870234228989224442296546008723045791875895307382813718736182971953701558374126884056569756235659517695888866659174385017386555000914560110197720279946394482715188763995329811063935193695766460307407180576658165835357093755384781000922491748991757850335714136741689833940602795789594291632518035706013488968867856278206352499642618593303045480417861921363027677072926640948267668568415977228565019923496550588807243652062661096618276675872319806167538265123272809196409895978234442142274156449166626896384529546558104237628459198161691532627596529128082855757855635408634157922722793623650961172948410007288466718258004111777986912617516007021122034452301388938187419736683932606817687138279850904448984829207900219540680862669444757310951972017799955121401759092905622290422838342639085996718825539023180076609218057205206444520581785818793289148847539590702234446428020786739625424791805994758912708111368377415713680377514487167345138073802821142065541209614214778489253242033656142359202545026863513260344629687535827280554379831206501421708860162195111919199530888211325125862276613513253200975064782991966951289256918310289901110709552510441833988040660778885900654588448603692957274205552824128589375452295837607030254369943288244150008673380553343983141967247896195853122949337493448406660673860924714407406082983028485422713433925572271002441542950643515963693376664816267114427786394710913049071881716759374127788770801397394501003529367280460955782363529378169639482226321906744229298376270641255618660280807565749759112047505436099597065800055639264246310469356251636951612693366428608110869765948374416940686879966966036534638121275463471869752236378825138168332437252597126187841411488811194045856729929820400095073664463010939378189992148185634605735303143136805461612235639319482773114106344087454882577572075949111599059277065735710972329846806247224261707497285079246170470069943412831315643321584880434337107515243893583505752909515879552846697365819083171644654688173446073452172855238063256476321011546942468585686085554973709904427474584122909285131918411612710705295636595048839285244973192925054548709106272956065083485533219203207934263503210196150042849462554000780591252841276577061087309572611214151446173240272175858996650381123167233159716450019314885572577628510676475299866249553948237938006547045541593177000916915616597296578403936642446713048328151690687886255922016137754939899435969903010793486469688908369963236009507911299613420698702831773119575743323045421311553825129286719764526818001804400600829017987236295197122805365142754629220669919838608380456266313524223297304849934861790190211756428484379493618654059219429156955815397036818579637211422336527797755275059200594471037778501188745782326616614840858839087328522393826513086402471908544505562531590716565233675066620652635271939189112368296543757658631899984512764576214163482811706105510979605148388947527066463868219041201919834307294582933881347822716387441680471496066130206784472136218939441369599556506753396195012201556441746702975311848235993314347133863022177718142681028596608372208124486307381833200912554417177190988935074285195864366569954723684851353365460324302291129869726564607665971313149618255383038550928325565476891366062123312500733919001767931477166419604045993881179339407572738084265106280715068826236400981227933632368784446162765029461415413168644507084697552883840764399816214800586825099852680167012272265400930740327496865132395362487878476740172284245466246865224845649301652384800375121614463546044434831445549237903361757999658233653219538256443110563639812534866620410574685003222860206484844186588297886765451468218169911636482680455873515438522938367371895598624265062626116979033747076475598276757543494426427788100963983817408366583995822869314093471090288145742917523513453659378793598039877832551785892073319189327474463966242090840093393356519207707863952280700562887598450008384141469721443872752040421728298146507877251045340034875176913932089111712445015920119997944367137025287452151631634794515970472912781087656809848535647861913079255868631664139014253834495636832648333114506544098522428854771879101431175534094364749162555089289804855561324497479193168605629970166236538593855474130651282127350202403774001148876640208661167825136511736953876762555241445165457213013834137713799982682645700637642631056448864696426328296234962565829349557247977417651145130440752924124020006753165626003908604813929201063088677672778232458754130721744229651287570285217457216957163733005453209906761426501869934626496257346035667946378960257120152437762671759454166095525063374548721950951947557052440257586813980256483130668855331924760136301553702850920858477299406893235314516718046731958497836651639994585881330095145993551235775680947787118206246483621907750610004901738195833338358528611883410127377693898665700339101354898939676327766525143408300897180661161964836829619156512982071970994933465576798671576391094928787826036081097966466013713231186103026188156656694642347354192196870390638152043995641956163063380809586620326440771911382726151710995219464232061154878787678060748350712283202202200278545834248656481251910992489712806497779935380994742230753406065244208373263816667578007399821176095339616740291782633532012625466070059709920149345968054889262561611884140174345054666407598208423850575886870447771970771894599341837900107864390984731523815156086118176082697711279046905576769982516475720591551272512037404683311565966217873252704126142695107977270367156269899071054683980064794328604262900046567959070155315091611428547067670043987625127357031601188977150776700209495629617970201249153209667372088292044001185560704052329931699675878333188306956033940692748638259631904281520253510899756194005178575736141571841160046433575625915841367941002168413512260254961585385062549650730013739236022156080495958320133879326964346247508947220605720675242087514705306376728614093413883924683188733375640708983056013864040460635541073904583001418406449009677150365213327513797396877444982246448380532000989876666895254043572004065746944562435232921231245125747666143653230265861453753262372385012721392071167481544303035204473629732318381346204220748004316976180142691437937837605117281864207978780010593945294894991198395525798673632116324149943820894858961711241640670794919347099897329964942632457471040379308888649225774322454022043752039720068129787859591931600557622843909140033433985602928918850680786008478805695475612029970835758786864479021369083778628073858253894619171701987969810474148367427532594883501500611240020927072462167465933089921835357275034673072611777097332950984868854029041281205178857602297830158614284519113619556084894433927698125691827867647002783512369898953586258276125761736880825248183690386626943579862523841495591442649141093927442391384533014727601960436474096013533028663148292419867734259704928005979615000354492268269528095063537621193775467791452348372029580897504846250935838318991711870953635284902521784577173287455181965493252296221206250223446414204845108344859863914600638647772338105230115510310569989365655328203275038011475258355867667063547924116484978712488072467377789974792379892452506998171771020755277008610440020934550864727440441586977057802962705961874072230134553995875631743878837349466624400833061624899082561862968421216075212033151374332497109839729039118912686693656785837056583024845995848324314191643803346406631442353693665684119928720315525358180598072243605137142368295923956645917070237704205203167644016660658243095549862963004677450220335269665402771625128875919918072105560433596285882303326770962797004523557057445622753153493479039193402758024497524053080558186013944697111355087223105068826708188486052917571900825666831769139260685670102302254903802982515084075132085995580189140220279300637679654463494395849114550581947302823825705427841471830596450037447559661101256045424016576514572535612288593107386359724271006635399764292613642474780781852569194819912535302120254058017939395976495608485989111049427744857456390045322808877737537407725136139583657189786533896016819861284837076263395308935091435701840479523121601480658172895412701154327375217602022494474149810620818628344823626952712294138163181210199831680793102732187170596506055787563043566963761630904008922699380460294876016205419828519348292191304503698525305759400849090866809213358757465612523750244221884272236717200095743079099523476659975661844930699506402351437669732542734833737077260583544359550736742621793406499767378988560951321435962839984166331654197077009133282448962998347433952884597949394075399648416143461067900259615462181739743014405382142901885347923201359247495169069948569784583548942232431707963073680159835681714782309654107630699830064071840801850926326708372622585343735371387695978530558107424671776284113670526649478985174355676284637903538429699212914753671847537312873683804660082719078002589057428201462195400173865628357601066801129456493659805301743437446689023485835709926200907440416270638917563725459098509025767403631641933287860215824315427117542264460069268748733412973257834987583150766131060555411544457043840392217515504736644343202709988602715030221373745385148859430179524290443060397638693395587913408520162336741731911536683690173091692308257248778867541461794751533537719562682377248325873482860737153320843680686948640038710108335385456509008106418828892139128242537454003167220240541634102733143892600715295032239185124393265379529061264355106533517233678765374496211818054446610718477984684493280577328519219080876451257501190604225296428537617228279575265733631141597757570856615873789285713569984780771333267778643202460443206228025954632886904298222090188963868527961714573523503576458096921337314831423611741306924115727543386327751262972897193828998619768672795950569007465338459746488105791918008389964039625707058459073354758091255587044560105411750588430660142772479361677196376505004591275207773862696574027263548454899504588901201323852542130996876954927674124161383729954819922415542919656440606219453479281805742961621584261508570467240774727183086781983209057796034622454512286540977097807671543552849864615829449809151388916248979687559293889861394650020191687155668587861205556742005064901494440789979791117756758566429879055110075058813196330818182389091837134995909186692116404997467082901779192221731984564054150739147502660724585602808768426088780386893135984853425635474742683888447848584495528639441342384241926350653552819437439950150801814340685289112111546716644021359373503955274522048970682437665873224918709795469327915380677950231244704506243205018570738996823086867652623813482179621308351363051857961833774782916243986103970273425519861782769780205993156212595939543904251776440446636687660906274606813293110688410778373518056012566366530005340898041170028823776938789197210046419981282217810564593437932127411171376626808546932094258815505158800381697066336705101665167701969379956586953701960502759489720750740360089135210230293347014005165947194156394643903720649285597048799554283509876212715344217631556259361357645589668941239761580122324130991290012523728810066031192385930076422644577690258398403367011222316773476231575170603140238837808846400236623150565566312178455868056383858679189426853822556539232788489464094984180602179458941714525419834350908283943327675942169619720149524321409786573067705314257497901045328919813683074772819904528781347602838327734324442339390991353949103132081785427994577931161121357919295331364914763664893745158059879447029837854582313512066413717143075475154451662656854804796416197478105321668889908933858043493110120351565792288084042173596789809985141310337976283397107135145296721420177154923967830474740346670769927439819111650019589330589957612453842169399988493622982113747098969144165853390907380638308734161940348169052025714213038749947441756494464400777192838548400532342539746866148490951968154806249627767305883563775741453377856909159860746160017071425032776982012823568680257268193964946131962633237467688872797626365614141489083090127087530679773348059759166561696064258509198234358808548175087781920119383533009088839807356528989112678872246941860507224755188171822250387997133545503192750850247975087320199652882393004243528852090447045268452483328011990580621349114742760517584751490728014469817077805523550728662962131905913274550006761818457816261993093717639215865723362998583295383635935910522699144055239405746972755410581271242890619955794189512240081239227759195762587017054538609767923101502744026804697166264606152981768306789853530638287348307326046909662866063248401448775556469865770459261726394047389568627348785031264004150076551652565616744082222778677216883226203636192318998555177916488199793682699675393548670432975915332907103530264759531823894044665220620239149751347334533061329224461911193555759288154861344564101274237781628997004776707675877335207085024077904323517681576421108063922919261312529636532979688273159661692283363790445439677562983944348501475568737664708831089557134125896127695097324097844316808027854298227752947064212937064743890509375386929467129712523339706856317410363360504686001274751646169648999789557417529692099486663087656076681976757505932831165498236151184470966415641330485409029783496800894736394378686289632960327022129755165320994621912339965080769197688049662276684545540658274387869965976213500591452538179707691825573500764018636293963356508011726862734786806835795971081949503607216897747048316779307290920214576716013499851362029239988727161504867302519742802229312318287977054176081644296693509227883010426220747795383253536866254070568551817164136248941329012198574603602495167006855760666731146674806108820230331178172475096983069257467150237086680439775366641208457958706653201072152428426955577624118290170152947977041312007690890727669680949427708503068856813087950268898172180328407221827014802224010758424133372248128033807868200340943322575737972434034458343354692366061503709672084974988266694138070742941059365664657515863719909735011291889354119771847504120339740546852865543723034328090798415017553997729860941790807740445566239832125107520639408198600751784127454326472250107632132848647006229237110259061248941292568389096585415663218950574246473738033254317271268099777226897058274403042583661267601885953817044842328444185784014126525977372153351599878503189598475573212181123135154631058142170155195035669296451675081463715526064156170626029684639742176041716672891568052257062074964657872945693294121020510001470755021418590680409401386054657136814180675890522298135444350311931061573054038896186757472061715131849340408071256482451676692736826733181179635012458950613987237932143946009187524521685231959001128227790298223001939820264920773036964864890373532534449029014563244537144936937646083804463976387076867170820119613580741071966197472427775028886996459176154132590488497168277883159016715727926460067430739892735385750520562807825251361326624192626753346210347183959122960979318113992469885314519938387496918404944195852556241210102453577924206231402222469880855425912364764936866667418202579373907198756354733700470790308143592158477574479268341035867143895347291828275764530800225868188214057704183503681795362662689471857116236716015521134894754774322246969776975230941709654846475358891831971922225552932301255128309798228416663237930212111140402071255194237988938782486839590152324601599149148712062775609902116079444608662248680739841170568309586511350101221710776015944452032761456161752614568917249834263123519477580558515974615544626790677765063755397280427327396156957751069929918132844429988187812071762908771622498878392379053190155816919545756195775213219764105904447168472118769514806806271307847504942866082180767098849037834891940802827960208236954402820692976288950711042166391429230713949627154193013590864580314927938806981755033080996442895597265295337296793486068356509266314764203527542965574194998472319356031223558113847261122987281179567236347888858745553128187044915697895958624952093338798790200373307434590292129750275848202130382854856942048539443174004748923010447004431900232751309322448866160468503493946330410221611817276243468694022315855944987056586151096799329169436009955215314161944803031504879633452984685027277407348647086006231412468920793936223572369600419860092241163480626444550683043112897528711473063626226803180691661660169795034145680738092035899516450924363513502886437450690218929294020462199099609294562861699933483004354469397033340028718454392652416843301695976276169307529159347609330340345327281128410184631048904037279221489350900981889452207562335756087778158688214489821338618952777664870981214051388382846935687410455494131378140876153270038947670120900720464629941888371464118442145432866879656172302446029382324969536267459380156035540561615602585257051840551687752989005221587328964849308511024549190351168482765414680207141161623382644739278776397838946305849948593329222626474226810433524055235075896309887801069918094783683353475431410002757157009877965085694627558076293023230187113378137423818131470528052091618829599574142595338000625140606522970950192855615088494137802161738224153833583172506819958653235474354988091708142683137969508308275055890497735560707710820458302382770766116979280797044664019722066552185855835736368715581827840319364400768184987582030493030862643160883894536439526923521878219749921983442516583008444902129169206953510619817980390555515697196924459557994168208947878918440274866907529616284466177056147399726701503165307623261723234472514652804107753577544525846140251596555579483942883738428171820486463948093609270462681173530175897335042601719065678198056319128113395569374914607224494460941258526597220617270226482588177181624640112305539203890768459774027810613724279058190877325826985647636583919178028358082600666153941017480301253467834207133855537528338100490815458875826024022212478909209140914740391669500773450958572553573290225066591909174551839191813106185787125578943638086841096152758169410077150164934954482627128621185738174373111110424291923264649553306779573734492896187628220147898466629380015207103489593710675741142487047236384778797504368638977359279252075493473899295015381386094572080251073006805413901908331021831508884883613606944073029218867483148457475125605513336695592151946106535817950148373842982201913891769563082057423033268238793831087195607935053319894919024340281545418925621914314185573861012892137556704758916168901796932819092526901835131389334561706673070963519251040327054806391866281780784913673494487064980941634195658025731398775716163496094808502580823995131378283318684831128592774439512206417735314287831351256977285977252198538127796444809063454627561491955960039275613637614123981419078759685019050823494694116456020037192454405488941172392826938701997241794669620399412847258923928626706375865238026237581086125536719973423817156170532370178429838276561245902684982562282992922826809427768421014426375787508979353060888307143336206840231338093459536340819561769723569792394821866667610744288895382065066655342313837481397432956519078310837199904554520025465713664209240808031289631301010907400863924090291004302504633538009486133556899423197407509466410155601168047845368209882263417104813411389842257309118948225475937961771070576339445328026151543049867631582406192480412750225083754690462326262792844326587986215291618745311042359717642476125442608733681481236605297362171938293094947822873872066861845021987715090205616065270232429759061572502478169362122382223145221231601937347060669868788271022438449297395823784952964707706131204649789856240558189755827956001297241982288880148480826525160177255197964499968927646457275049904665395582970831625470891477019883623549965983818044525869758694308560036581925361615793772169909850917899359155875959652515219826041250513596362243973795962337231994912372821540392383663058381723138930019059623669174929773652317313322552192950450641672698802085026780626522712781369025322623447510879946760895942652996891774549123669071557222911836523161034526802681089185448701274371644842437164913714317179578675366390606815148068063661305257941119550157945636002335070217007572545121174142020539432987309216357241895251943512822257851515130601996193986961253872309229711290248754303412884067346155953810196546069427960630404222438333088227693856628946578428544153740804403219717574276913409728397468647801720313463524645372747502220873245447690666432145866762150831499010003195124126463030325034269436110181926261780968626148119792283557426009582098823011491573712383707408278953367386338733094406309844116356637989866197213852319492103184118022411179261320964833701798074631908340045962332714769930267208568083174203910527795829980481497715337820780044595100291957130197316950869566406404501988934123680771918892848842593039386909398561893024824772741663692720131799560178516210922919469833783923846068282424158710294930875590406133157387488315190157426519647064653987244792093153009320610545963676009590874721937502163984048670777600581152563007470549716022589469679854315695427886102370328438357489720856984373143306783440759064925890337443091480494676706180204760178013635974780076515960936352687046530287152714298210126214314208616498730968668556952674021532757858067640962517258773248148307137461390372829737441952258540525473756121891995788003657610235076109744923627568299401939854359798405098447358376066476470037201083623009014301723257306215157613032865251980385665487169320738397977249704837014776537402924794001995920365330996150782066520271655468590740508419185377272232474880329204782974746379480745769737133328661784161918107508898628454594139789318594095866492512591033254988971400192781740809179313662676788246138968136064927230733335925356774623382728386112179158114827278515279688055226391041083382648464182626435318449956252138855094322089727437584207600463813694672313664651780204439763849248378819815057411321562380989671326608305174999910199797364991589217530143842273484517251706158145690591441024691035555567521005087930149599598980674528412973062034339145841824971611414554473393824059618156563263604796681659977291007745824579665622640700897038584044912543389381060920038227306596484228963034307629529249447309872317359784786618837950374984959556319449385340044754850164361819905010717069525701470353536037962246839618187427743431488452629085192310790008579808487833695423822217869732856275545859307044934807927560908961457911912218059946352759448014143308100304563742009958103221282007435504919042339231794547967375235223760334019686190903690585516513893886680479322182661551684346173955477822756625047331674193315335152118216355279682699365292001171148629220232388912194214897689191335175624108073412035356359237663362445112067737480973458100773849117361521712032018193539183433008799751652534486533249260335012219567158061200761447071953807310971442085965321324311637441741751947739455157308986929117704565196736068393093975535767946840782248877533448099058770632348192800002864023754734097784536867113058184377147064708962126390488867146641274587078716865860231552438499783085791200255733813878344634124143690752395279302384237695016218728349905816293227514611515204543632247516132903318306254238506213179793152145997275049470911771306779135924983904220111601032022397136484738665162107466255185581171754214255474188854581559645701069434448972656938434551750233131868201230911996173240029888979449441538945308036389840537957802412188010501937599847714797434226220555635101666776174937083021283770331238760502555886449563302897531391747664184922227271121926099748042492171461074733404845450275067588889520288355718875932437117988088076394306740019335200850750996716861736260610496155780533764150762401602509615113570792958006834861687831847628154582566287126282635450217785952716895048100497216117364135770145452907442410505418169248000596806204844867915511184462524001799501500045083032850934051163212561978752611603606057240888687421128048325036124849394381692691187235161910562620596186310449690547963838266185159681047394895399144846902574555462980795163887523507557337660093912729888787659168162462608278431364325722736390351123054460407310623997579789516606455452045685624569747982453693149433953612673977581599367169645937491444246891954153218699485841837185248787428836385898242529870119710591840158339126727288453225458270558396785885263966156324681398342702730827843579978773931682139978073637792272061702937209477080435204552422115565563078584140871985885708827338618325055049670872023723407244482197506262713681809125585998193064685498691476306859625535326499261180607540468454203277538004806953432781178222096104944194991764365475612869593117373061164144741063262009596458446066583869277418621022668204476172947294855590700153501441645610551038211254429724160983428628762360070548481245903314101187061298624512705371748565216813311748879137971482728869914236965886308476977879249303395059384817230654487307563208150666124229030764616573895423044115271413010595024615613472416738549852858133882768797827439848378296816985039628790261115812988003175103694036344835175312871359326360400867265518872301928604213852997791115943686982028515666620833061918284235311306473727951636622330731044618750263925493267899578748841475950031341026432602670383629762581699921243404812644114514026167846759235527648258595494122347518029750009706822094381712506134126504620134980100724069922040255358888804163710870363427303146209530110590674676570929310620839155763340431741005565990998239949639290980617874828645389745453346455928981011473471716410772672387711546843111853325662434575289314980192471887090197778386591981164912143941894927822180301322617127840593673193475690398170495825453907878427236561369493378130841765408828331518420457852009420108105390568559400527093414595928927618824065749259312913237055409605615436459338550159327505237929467647919418827081398194171407411477339985120176830746432892366677124472861597115979717075898953452044423133425732919480777914412843753597377299729428494470376177196212105283004358650129562255579194803132265166460706494995061437060563060022168613092203527702490105219751399511813698835332771145807734907140074398116770591252722109422592364149287254656859811082221861493773917340428938544976898786113828528287951268633956822872836880743725554862897109427993683322054200126849797880748526491572077853850752853705231495794870454234690903743686709692769003811205271028950377330827663970776189260835749318653613893325508417940646361918324854026099675924818958807848069907943288578996597152492447114668543240703884098375744490059872209020756653482707152878482130347526262929823526883278843970665039070717772144959480608903269030744612680467679597840727767185421182603154263935163695253876422737278053847313285896791654938374841881104234870959752627328509426019355466345125309801128334971880892445485932802624575231161296911626908647186833153433111113327654148465965634968859012963545563368560891827381461660073586522230898237083693352117345535874228937397324454263848229517906177585797794593089332361573432740191766863868240530040345396429796293951927414467516081997592991734235158285893564494442873293731218067387043330737436735885727226652856977869976708066995769705298481606859790203872771137664400468483854119952251495169070095778358688911480813456771245847559713901557562425053486925281324638965250930453595369425793494725570371773448449852957761144286693520618501715358394092592919415527798357725087477193880835667424355900590991253701065473619762446265142576680129780203844536106856932622064964939855971284510408452879406232967515179349073314537892280804245826138357711373885660996270420466163527710484047366054149230179764317481375572860280021434848155569931853849163911342163869691941236408566879863592433276628536319215621295024800866878199888280563337522630434378382962946843208053481714825721250359273929764747602587655059113183637188632828721528496243565697780148537301167587969731479841365115866092887265080444762520082883969593600433664172391486820586566519804493620095509198754083767985995835959799942455334324944338226301553677277550280563075705807272648120558160875161010210480072608395363828164472028522912410331673774971454524565602950244948703747459419625145110542009587659585421512175996867631880850064973450733845096879677674855545912173766946691042761298830590238397601520566136232854182423088910781909844438728680962299127791369298491648753020413418977469200519147157558518248744507172295581739174324516463861933017803798666521718282300524305138874090884243382044273506811430882034703819095792910766970454799078844634787000014469164781770532176222094295913330132594610581719990210374831872067888880761469945109109722977258063391453121527483399985763053767551254816404326876040906660048950488263446552330601448250784460861381950448738136597702792206196660933102799833996628935368533017872797774796864321898978150975322072147335348998737402091168102821218167485197528054728237190382134588837825709671247927812684117393753257123144521667911611391082827052142229923873378637184971138050516069506733658964782379780683373331297882545204419464751043942287208005060664346330604174742063842650062191153153458670116075766572511775573831374172536569392382796284122708519923312716369790859597256130565729907192523936096758317697704433149640628112438031538436225897796241002944235419963217874882828213687206204146191405868922909493490011254161295550145151229974772316626751606213009847827160252342344295455792658142924188453017520063475808594918986077783829182431848227581903835036567687330402793403641829984854032599526583955794850100858626599444632069851603602718101662463894790888111442107921834842177608464756035959578664100513945171641717953161473614791035282456005143128334667714013715426713744641051544983368130612421698629839839006839567302960207880115062657175130214535443658871052268685080560388789825779948547149760586955888034993980753829669638627295597515313051154444139836016320710464910542666578304533305903267738062127729664988017965512021866259089416172915235260960423406553473919182744654717340938629000046223112529837916814553280283360280872277231816842039312784970193263323085610938105113597003848144245203912359300691179245519351110465534576216517254348675533872356839929683317674816046759670462355673051041268333931036746900333021269875161040821697696889550273396456185878525545235365243941688651414847809130105904120565245557143912645626653536555111487927578122280317333079714918497326207722634582950760366125325256862847737832304642093118450831340022741063426994827092471968434963997153049905166523319234479324549732332585836220295162464976975387497493373451567675562171065583735958132829171301981127969075217999656629653945753868277507325688166404386244604412441213553395597499779052323828864831735950074591566831301082198197722052120603025951988521079222345349535224652146250463859788730306862355025605829501705499770745572419598021591139794316026511144439090049467274104094386890461304506022916921028320424464928142458844300739089921168653268051388682664207634433949204181548854172825470659576607519516840704801907683063267519092569644597164480093064612457747860350994036249137383841601673658785268178230984331229910885656324893423315376587706381836813114482850135775357653968955780773900480931948110193372654684002164189391341040170720122743168008163910254833599058521769664197608966342852411574477074332546340470900251288267955763592380139909103623286989345933182684168016458427567393288735245792988806455179171201081262242623352691631670076163983112617300237951304440999552688947375222922365455475235538136764716389730931368891107896320005703698916179562758605398393455093987846784519562087451434151793102149305381907292333335823510281820224433369130264663498980893860183499693480107518009040960761429412170452296792380680747768744692529372848435205695066781535001762002265001542236702891245072056382558112736055042212776254443703840074691918650864570389544867208452747066136348716690599146761829916041010480835270639086567479651230302687366098352400504011818295584943802011981640540567632816614439463499147599409386748028847824043635285981640221000052780794755219578599027602385857323366916450293376458486382583447443904396611858086485633044571336782372211118304243350239483190300970976466072775339805585442129773044863394474820059640061553922093320370739717280911428558618391724310457439457820156818953510225468850669246436604194957960742519960441031820922824496066455133328694480961771969348391835036839645406863815333061215411402956517986813474338574962433166720670726924499260409382894781592393393814589300704736021498914359919300192638571360293883885211685391536322165121075283284794373546298857507202547113846417719237703248922029477087011924157694213318015575956567841897247669945470378526673784741269564204754359238646824212011280784698030905577091034702991840779275334959909431570034489320137529839104583101938253335997931041836369580643840559632484185190507134992985909002315786743319840924242885378394627108391889796766333877839184716600913651307649572780391074990931377427249478509637918375089365652407815122854924213709897712865475841402470791466239682032682706687514714229560625658041971050518623704066022404506752690287527723974539485329825294326726039346667269482908831912814886130920508660926038087118891285742895733187347401676931352722978046547752126763155519120364415842222773076539096265067854529734515355257815244636035493831343625370354318473777900255502836929004596097505279471637624305155749780707130326327063908968004648194374261263790536434739935714744237993319053208400564992668416511010216692438271725395876258696400743205391246270640265861990757815800583093557442823213696997116439592029231638366025250328760456964396452088216689423470586175526118516377785009825151338686065730965268578336506447406468359576534458069747023029427911279692026798615447740299215276517768523938376996958497783018260288317423938828421113929462537256142385140525283646215356484853093856847326725401576646279598248968831606408618159339117884423179230748864557633682270047044481020738427558946876527646759118318186061975929758959060086056553520367882869230581931555555388146097845790603179848948889434686248110585676242655567836299900152229345139380218054304445966984719271740798566978134884971892279595649247041465271636406508257815531957392482981006105886325286190535632980720747291205550377347457586411660711143778427543015838675920082292666507448229415353263696413402825861644809853437284255786085598808654896413453211650863144520401526447383931477795707552884298695107728403434712008710778917945740345160963792567992906286450485880093909845201753448802468567962039266665358577391811766379857813197314078293913319513288321867518845993884914518269943444448661902345344612702519554962359317223349248972190571075500529833445330957472129081469867892580764037953536358407582516465572737358989060612760208695880228474915293534403572973759701209172932272678123985075821366016625895166694360832365071392185716047258455596289541857309663546582357737512394211512296215963432549591599115365383337747634086905550610300685585617274487216583147442299173513337122818995960936789149015130903727675340115445993271602660402032299950271031104905096522965457966704596626376309714339918776520646564543373115669274603050070763766156104834896716915393238700140625743486145850396250520474616932001654305822645234761506262209608359464634052329491577495648028849027800371366087055987872154067940558466309468752722481904589876680497241337872708072844312352034399266446395544750284283284586790336023637662935762135086300949418289314728453702814067567436566186502778761448759361139133684691324393049253781215045934642547148169192641788776690348197930365698775818525020087190628914440506069431602668562071806428184861288735595767704325808065557813720736178282771592071442453687082037352954117979135984535072442526305542399519583854192014249878854343239534723048973777538283253130523387408494609356691575090015890005659270164107765554738990977640102327907873507908307797026598677098281400198445033944829838821459248364442666451832079837701144331331621631525345873523840467885371593850800560507946678500140991379446438040559890814371687472070476109944813598852531240147948165305323792755842497654340149623526954697686781545110197760518597704280117423725203055528157791526044284823175914978688578576010716725278961561974837201836760977964795283608254083456964489404601918391059110594690132033612304984868427246538519993378072157754614837897585316576290398894472682108735837765080800578647209861555141729949209730341717116821764438278695115051321670644567488236286672924595169421537391209757568813151474866211688610469695491749915571013924880390173046266023767619789861958008106990846085569198707168231319165248587114033305154880797109586429822801465948613658769692240057916157203696871044417642083270152884704828212594188268294265037077282837507545357567130329641745614183737645249041221736634912910996027099111695557009667401996446160591126870446476402198979469336488463195687652175449001489683655773013985858026741722937675460567726335807852498750177983883939741044534134141798414912790764894151201711961163794299922671292232842320691421390489978005289855469352484079025272626549224945194523422618502101594567452311406278529100778711166764907089677799155360903194724193010161504007997550016477151744445275165494278749978673122559308552036383503980358507061269350084754380820339418281809932677365725815161725578129914768606865566026251945453715257635120341523327467722218506604776597767440002658127447751048237202061313023390066781492080800077760151911490723657683224179223682956193046811292976209214989469651111275721834850462622501618805684522669057830812524921478290718609926290458921411399260041040046683346231612801369734196736225231084417406889662174787035438227895326128699182218756542493996642237858426734577899825287750498582732351207947837715267033314686049459333261661814463230969483696679324447257855841888232753083844455945358653796355335244960525694540527404317456709201986058039251336498923457187771340120590671114581596934407111574060094109741438546094580506075848431383480209164051975549636778174399003430808506019956915957257023120600953528625117565838841143590011127047626422912713318354722562710145303479225463132185121879385240435794333329175812508096120708611663836441716666728172168223296285585503518270452154140355155399897182211392094159730534293174574631564994152826547472796232382400852780615516097164905071465693160137744030883579568646099380551353629249572267495777853830604022972080685445252479276799184824938005068794132012182591669136535632975856979886061757204519114473709824480175389295758602615280688761888459351350938443941506819606236825998292574287035203955563810244131299272695697212295246609370819084845587430105475093798537610600307831276011057002070931381896036590714279117193494834375353439925254452447290937404192910469229412751104831378903440627226408106056008732146088124426563705463097477153590675112919941829570591467971900155879602309110708382285247990125415809267155761033001217576519715567538258657709537780745360678219043871652345797878640199468186898128637883313246027471038510107887702035816395820095836688126025635004168344546449516698514751869702108718176353231313370140320280287048195811581295450594613752626602683703817789516212788302273173281106915503457990462153809952982927249564656167508049776781917512195308759244448413570945038735015989030004414070817395812900265652873331253335790873913249864687107315479203208947322179797684127516335867705709191152984630376642432593578047586908248830837803165479768027125430712582930453143257770460904988194871471477538368169451037482249487898616102270208641977279310845364696413161124221719876891467289423843531571216472432912743290683722680494903371509949228180816567871472172177767291244254524593278375779142837826547070186558695503297590538820708769910024773726457500505065025343110310194106674871038876388789525155636016111181019451183043391219510884065742832664490924389299157967117944441916198360381696236063252332824073918705693343143482066168754560947709523709475983646455888403038883050921365683228463749084126043749628920960196651260396981781753085645716007333814968202127689306022647088979184026040046682709441031003626724354403529958792750902052643969536058383370332392036556458793592684951688669474374927891357139429078175540122180218234905417095685526805818975832108645136962830703963950227031253065963957814772741765847589246185333223161516040091277555922259273620530983184569589413710339462363373898085031580571580244485250503655974071337124639501916135870083528048564483016483768401424568993528695111510940631785286181573629894667380411618309675036912211770779737466284644911202915819442671818391626793596340630473543492152836906635763211641317304466457059440409049848547285544410738662207259896443486863095874390607534373514671430014886396465074186613032270325845921656612964774813209228883805630389498801190684286429616571874881677468352368271729886107170428328570377070843653018838406699064310281031460185677995089679949807256953075449699398589789827253492990282472684317930847092700103029909442002427996580675295788381164111685998031299129562182565754110437030165864781273545595967341354835457921649348547346667403983152227056850153379073034805166730683013506590273263508286144789049280411942018957413873893160421041708411268545652669635877252799437614538269051256027288613602868270164280263419559505218792360056480071407363316346195023771900585150680682441575670981979410026672975313577095789985526172307258222932697232849684361463248342251411266782106346195507499400465098442884293825993528920167273682062941756716393808874121120025755638684919771784522689571735580935278599607691662438242988145201625687595680620967780955653981385356037629631015223945987504407772456982571381027820575526924818343851647690729421843182049649540023786115670010842299888189297534058132346536184818663569047962015165203789371407398937307080609437695337771774022283712990641940398573962573262391941767446248912719738194956575381163483470801387444299374972070714261331754213262492341737417202024213540063203358509059703269113276756669604968586991299776460721632015899119855541365565942297003814854345144326247189967803577833921711671323867667957454541402311091366167971335542201164130012619394776527096872880509943717403529307461960524112469521227575823773930689730050717943854642056207646250366690473295873735054273497620318464744964412583629978730073334262737276569200360745374657827955698133981963254442293305248019968477593107836852746520824479342360519702896436071119314330584186127971961975247873527835576203365171253840123752648268111163157494032710727232133031110544985904561994629930007118224644246857072285800176277471688787149841118474603048920701379357587467045107841771279097196985681064206860037065331409694248009323851523263479995581936208718970089091807082480616874411872289264516366695821033048701594502433059022783099458110157070938907309761177816822592531828865672750389898504774474916759473570889733747190905153938850337209280917261817520767581844962008981307049117191515674440017603063875545356026941386130262123616965892635357040328402689362496354763835017300426609665808408710424353101225160723024351114588492137522336746941023825865423496532362406973242988362195925906768111832413797120942353117154697924639697191830563491574937430922196035631489858036986427748387066656347502238723995491959222535029909178699885700989410963022104156671631248430902329484954116172201229367306953992922617374808634386843506526720258806554774895482450951790087523001012710841364463484086235259951060640732805298838945102511798248901140267560159449683603397612800928483625625162325898724387492079787263755104358581727143791374514156582249824899358245120210401183217063539840605647374975081420226757304579314405434596382840505758357302255728659951685895746579596357963578306885296208316054881403606298439641058142102989562169793907088450055520023601612672519975484307343481146342228649803373861909205798123169947859622609253970858388879674928052719496224150271636995662816279176049664363224570493775491067591168592180689711477341727807169312953054319952460152453514181745033188295156032324479540705127018184719706926906006098912307704463073039505091004774979791283603109846745101144092622968151457095642799653488196222255167664158319019578710907035593183867237395217142521438821810459505407080999977663854327195685347072055009981735829253040675070921385269510813431233437309908402263626249053624379003155333804033231220003868583255828941067314318571855424884721297500376192256254904156393907809461328803213490368394233827179542514493298673398915125418240028595011642845456353871299379931759359637681476698956135743632975165117161699316588201579437108601831604446595994017281596756126197368406506915662442487404698468014454522386527299845665965483407151136977720279719951276219618075325528460266289934322625892459906982612011784784974521334834100455906663279298917719062853368006294545635121961498941612213549041120360940104190494923201715171470061939875343727720738564467429467228343804683968502418012601394168162064530768717063761439633703068681218837594554327444447935777390630548153901391769492014610486649937377645192114862020793142279602286960778960480404051131672056969996937233874789697805889245098110729536860698164972596499432143667868317080301859432085785749019569218423178441750086922561644681677054424902603780979851172707497952700112550981749201831508505366016239212899454341952426909668558943477694234252867771681181309416565522385348988751594849606350419337498935030795993914567286431810633435706311857213610810868164840050551761425721943454789417492718462438883399367466226155369755400774439821645414833338925956956386207196054663674775919778772962650920977655979770070390659874924070886117049312827536540107379201922913390768435881408245278576200977765200936487937800852877180987819169458044449945882583120508263325634969453902584587627650690552878540163161329689578294272926016755032229827273041622107578439788799706720285074858117942129946665932596755811324605018560037609617991288426638277647731823775370361975624569112288306755767949430353213631427162625913229309843076062482278465565159703377502472398448978238471566947463993167993420872874235239579955479359646039322898105877325428739419116123354142770038024212329789358794462849746264726831379975817417950690983093641261768583327131324392725003887291004560661416195306413115314779724259491546554856280767031705012991802872535191830564904459213807466824049791556812986972616778888737416142328725150911632341621231992163576507014072502051524132245927221941764275367502439215581696193412831796533129936339401802717062508120508751394045117616438162570276812907484802685802907566209188330882935980805883899325959829162697676107403599271274911854557239207237816802610827484253720951556004119009237081905072554791043839950203534740769051642848397814511538153021030612001097543688204484971510189630562794009049012539546094927742336454169674592638094486970188406800357313155877431704708804450042762921223273442504442839206708113079448017054642062435496364383964313167826161818536073721893544082930524727323016739822057508726414398561843825595369267258367500667794148544924131226005611127723121123629058595047993618149771160025113230747209044836512080501840828034919957902892829642543040990244705569556821295569383788711687427187369580814675259791231155370387968724886795207097336586557374859999381363848710377133933333972636679304080088196477928760713769953081840130677510128350102933462624065104039521811246763471956065514085455665795301555205294353299831720393761352979441416514694933817040083855592096461425039123654656927130586992814869360533304958690523652931594156295733025155119966376283597522994031998629200364679913976618808670120478537682415983181216716360635141617272957329849692812747395982429757365165992998046490767067319863019294385894143490762552288183157273145384607198513174335089616039361355460351367962698005587775991370867372172463624864720253578070037929985664914045012631301307901826634565871476553023383292463027856611255793805952181689012753895807534567325630632871491811931996286514868940612808722226582108047190378988756711304476987423832060915187801849888425857639944877225732795953557574963675982732471125431360960153681168259595237437128829601891501906868094960655572360352276857733919604693961660315774671856863322861617708380512388894014714780160542228440300568970927066592024280471904714680444000892398406937171156697664369503141240752462964199429905314312412087115483468781638800200539566579294896580365293222501691643592672564395313075512668102186613027876274603780664899919303627933293100040071292878201497164129177993713254227760282082281094879814474346637368764652455756438654339252039698995844537735479299681621711755559166165824202316395843356950021182742973334205752002625301517611904981279530088332698043693582247365402374504354688347470972584435016477706568320713449680962599191835079224715869301153521553840843090848261808705437763594371975793385034155230080541190100337211434881401027350112547195634485183401677233112682359544043947564898499532928841932670233936115805797705735200360428640230671120821304994125047328116598820811119241722758616203834569584456645412218459348238680839915868095435354341057824688673764025174504159108437436270753952986721134185713064326421119935062289918928740262851262929502131691288166414721683446204116759422837029373384517607156660946998882192148214207645183912392812173405440703963760383172703621271124118099086189113828598413882033000781546690457939490384956971375297553115101324008730398560121471893881710458182956910041892895527231662803384014051903402358391745821528502034917829475893080488417914510099493824946042947261461386282651480983552756448996117217528799243239427936423777344896421068957416793979312561784236901671570146525797754331966371833964670686383273078327519568190992071196179397452491916596920611578136451717896855048537492835229777731602536252102935775427166061763819097305902072130535975315795565490336697491402156195133186095309676437151145456403307644980869031774158119013736367888257154571997385149500603311282398476240506331548950580718983598523561250499351817097801355712589490299424975520917543442635905856375779363285997165945833494718920817271617293477451946523454196080288820875335093087078802869939597548459721500250290607190497528771365145100483357604069581819056648296672968301375166701499635067910873597108550644271125237956089108537045556193775047834223274173707836534455796720099003377411680314830691823882172643181315312491478473695313285561104909741399844063413442594207718742974467563024903783810707011494556727275232069443488209353174493907993448790373139835355838994224748713671271975419752895006126413313712681194585219746336207623923889563648108232664146627281308008252094238129108435646386241165529359399687694403443121220031548230913053117106048795324667718488521216007804405817887453270187298159816216092373843006657641609077519843547296767600871658576303948703000284409578128751747287349154342375859040908723114218215714919800256609887896595503746157495688864771121847731249419908057121286858873291910269205902258478735777139988109822780412681460431617814051109088645479280575655635238813721135527386765967060644044064967582982011735029689397141200680681875742754808008408499551828018939762492681327219800284377379588297701536091578785335141898142354874660679342794710444103635217406128167373893671599542875051367857924120810019001323505053074020158477927162052017255719212368512614552114456485136958132436231325403455367566988579494465877429694415742175878060387342955874906290602652860086432959650987133940699509455091143568900830448949648756331181882098659029817176104299754297818222366158045439964545163260522082003487649704634497344132447385871427177460009648361713099277980422250213285766668243360774559924855697934548290033490591974722906580695556254137639564529122490809421121960627006718472588402126837123759384950175605520251154494857070496022714664425712969695682506898449684847745165814342925088239734841385018548082848785391390141015963432334171253198952327218572092920048829993752288818519276805226777803887817467678696123086779718488953068820598388799489187416220375991371018161702530141329626909262086181459994332087992792841352278220273320037543714578324581845213711235038095805265807469773886112493315559906704344518954015130979177064902779621772187157823671452264823907115491366300971816268535340510159726334485898089238239056226334860918522943926464714369619331095886657278321197825620219646102799241260964698128983399696766613314315685470996881902619166144952418123199892515826002090888508649723696122063435929901100200007100385185939287725469760449568638335239480633113586778789712218888593535811907686364075029714149732746387790331955640894519877864879165979492222668507881710872473097960705803879923924705754277387513992421057089346065182956205784760629204479795377143111163759589128962226717125094508992485445032806725258184252834682929204124603654891118916403296661618454990054243946857431601711063232109062516421944796412385782583786628775454393733562499074398626862437546939773327913548471927040480488784166469899665311440096425518483546392670637926356826727385151297757950343450607094293327522498940393340741314041595869346297339888531667660424538691761263034707270015366839915436218858554867254595699732540075031985508999978664118334109498902240118237130440292732264005841417346799999902452261473477950182475968970187715959892484637122684265053280370371193535602348933700949503023839353498365601071940852982452301311084546395677494455401943828284254697942813434201619970066383000129940301777833885832085344728521588237141499167635443992744985163399324341003581414956546368785390278767183751703102579918659318167005589257794106792683215256430558642262108301716027974465487090744828535284248097615918481949189495947078492899253093971505138341376312640341180783215241008180918693927452136604457479102757224610231969117857860208747344896418675424214412667912397291302118580964627931084720944388342593802712678735217747431822720109553237834021298124150982021161812082059852763589091462299056245194751150783424579307400062748126174946893420950850790659799459575864255334684242460252118592513428545706432902181969196270347134651587515533346591421915358266143001681647878691051590695890290762617590849577380972117307835446339797482446152924060959184333272211323273642545652818985060418336406782544770057196515519271212399653511233670784105407700103412169745217616598887341610353537729552757887162330211702527456066383860682469034714626088779234585301684648077840085498236172593238193637558894637639178732621882572296235005190224936807790277243566295533855099411760556210428286026071194363803062975922836384185742293793757110549975958872881560890350688623858014033121888441971738923757674728569165575440057721547501881719892225143048504086270859069904604131801144702607947075111925024778536082975868056018216443129217600936255585579477836977105279202572582043580422606890451915325601691424968826065608014195289552630253560097463977704822281990636306757258853492571780217525527651884232318478701426009529807718773557907054059529394680847211018509368877439009834960657662915917976087347185219651174234431989409111405670818394208131382182086406844458235789388433139237232498223014135979285488957072030915784813804666401091036389262765882679993938959171343128841090434473912072487031794915060561910302644809584494103162417452587667055930189833228495141310770062773118666374453098487818957902945710283839853945780997620400653154565663429778944964111879965153190123433149299262575564646457566293874366384264916829848967702951877131093612808491444016965110966542593576008030532475929466016275783513500909793065848015716472742195388756536849743758791239629970368190487929407984568213095137434835902701013019021192819669625875596540832701155990961959469447263868701133816399794572583741420722142174908698612812622573242978112470405510950314721799272897577935139074443817237255267651456679503392586978437019326076518765244356700088011763854182757496310796272358257173310778436119637806332594840555871864779694902409264425836636643380682092321803941505767447839958138476793981026995332281321065359221739814280449780849404056206930864733055346994834382424097283865761940995628178628718323434190794340291471803016218791360214578712852185330149878070696672197319291655575347616085145307104137604093488026392099361403531953744924731492001994923047801389853068390371291318342366608624165238121581635597047951669992133985958232634058160754253952681275112077238730855540942192208937172133303453660476607801299453343573524460316237399734294502966456324573733910869817456623930464455749931362247258168285469656532678587802993262564190800472792425298878738030340668751107189689717183174565929067812877012358062150642168487329443629114555023965867121177269459201062059899491570993399578586791229578439000603396669653812684249197815618208291644239814856096645570520537518748267764825706172850817197122065072829409075405081544913936971602121637891255683449359884391235321530410040834827900605054715504464229050224287468209361094963143007374589434163677299099560810424520284403798748190381127712305417987437710354914751243097669709415539057522420158891866435558737910810769299072722734562480757443392281460797878507518985631088582727993088632031780456357162752041432340881421499950111809671188335730441773269825057108959004336734634368607856355404440564330317402692569504983406179685740702066005454682886308253880030223964446426181613205790994155208315474761795944217530487546052266785641371789365503584967312650453081956630414205181674063976868984350798334288924160308720007106407261689222177505471545517362444818431858696924395221162798731381416909994448759899990427030828297742100527824235378006869995667388933853006845279329475363774499656173558797188787449085017808454822380193278986841366781267081218083099500734014638167985359081695258279152384270562829787909362068082216274242577116045544532568289333903458102508438962037990738551921518965627057982576641465327921598771154616808388720712057242878425966170722118766478820371541607754950749816283200482569007636696171946670821395238833213124341692154448505573082080565214533442458462013865341231575312675110734896285941097206316458017201231464829999936265354129205378081351914826079199732343070850809179957036787459203886793883304528577290658138433006985319166258250077865033031263999967712221934758875469352987382304250649790171246606337646227115387974332612707617796484864651939413926945075157326173163008036978031195457425970408385158725355434305940048755922619710702650451963632494116256486896045711356251200918284069734213804729233381158226250788870905972336733824828563190311124514182490833255137567548799429354878328606715980524589547150325844682060210441913765440765862648386915037679044850274342996827853978376656556689388517860885097795755735376145303223596372346874153366098169047576885734431068988428994209372404739752879125746333616075144763882447164625628157158951896462613049729789638683074140714295858006752365470603968484804407339436304779361064513440425641950048858932745929019231976083817463146571373805497442398647852896728768076579368882688989731505752615475931656334589261628818535663137042491134281589955237827152161286999481727381000709306703251072390486413298757104516576396899195995741244009059209712557618287644174175170798795816463494753827311989638049765578504106115108651835632001321082059258604316272626535246715622223125165548061117486276795025126555746407521641399920062701007555961294821346091272889213823823869847924410175406081420029835067625544422435268716946840607547847622216375667184738270826980529142563940790621610516881143003865135811744713069614300030228730525621900702645028105694873398607071536964552270019802063463738956624522498962296163119232770821697224390349779575009101872181814351621855624332346180879546252275937704292515366003570422745440878118623710241324547093104884715591915194828189495102621982495653948290676750072016720752704017539632994416391398481079006755492221493835530671944699138339560921045058745029730220848745774355998767011732973524615278389514519822636377383681614329413151575207619737547371027455130013656669316686752316429359281817745449437165290172027917487375621862912914725560854846068833677829127213023359073564426507979700657508741491914694758886906220561810771442272896975559061994867614333531666020301486042853067273146508523798054070086703205341378087185324211768045500998711293741713295380688359585348289546018921830547244899776213086146988502034994317429810313409818418962631800134216037975824976065849835911327198842842253708284607066617552371330213365311808663246442800471722701299912341446468811314523103405389769488248163052019772196217411263805201135178669309434549941252566211859164625764862253866464208258989255853103390732539140518165927152459049887257529237262476709317350921468852295972620811986943682537662347449104326213449850583145685844554278244014357568842620875459931083155473598886005808855721528967030572837719558325591291359938482988674010333442120612874290159870522015321205024202998995586202895374219960312926202763098077331182188979339382862552604445471907790082788869615487672203573816122621029812729594400385146665314032827668416008237479121450580117808411989084701666832613608699068411924088716956315097701478057915313909820010890988742706503787230699480366740746064058873231819280800336275505755539145854644495991363107756954697745010054097407459883076076434750414659864265455595046546747797983131487889397411919198140946210735365308677747562182605489338945262009189798922294623017104907339801038531399583448792045420550987419575368890736916062329320960541901725853256992035161696088927595676724600975903958503830752706287302602047658413243805709852348157656345979959839357787837862962845095870909414662633844523641351515541520692334818603546933251813602023481111486321434204489111345198111625923230972425953245628221924218586822285533215942328506530814884269223940780839761907848162294253357960709320258349821125426594757312062000056440182420857373369555181693810684326628766667231706256311621030540772768346522270493598935060137937685390138083016340549159266290847090622558992418549500474242157568573137851156237242473040228608144303890605048351111969157615479014064660953071278019329274726940519895871953264288489808492595106730720494217045728920560565706297616258295392472939330660698467876550201874754240631625587804183334344188126253196552753775297626685221669150220238162838127060992081783547518638268059385356650561862719775375672382284450278971012521569478286757926900807203661560585253561977642437526824485388779019548140013114775980021017764270156709916033610206534537479276962874508131363088169582444002239881681403587129682211981182590967290113309392882289864865609297680137976424578286601418792147319463332215254789655685645755928889710156522877143228449570804912500141172782384354608484335062856894710522258215296369795496994626098889001976012556828047308999442636911562863657880906211284345352793454426011668384287238903245488542525251771610361627802159663973369803081753088992283494119140834470868279015102180785747862249741921203999613183988407116847342570934856617704742821671592262313897484814912342323998747268912366026021192649355901725127160905310387391395290456458559424405440167740761129089065527932424820896263848826786236641619667740031406655070391485450350478171956049936106468671624503797205795041204395397357668781152256600130442203177378771619723678930288003131848710510930871235968234415608479897606439562711605411166638119422155347949927623699494265864384180907093386487436434990712013711302374672866936309538822573773769948959938133462569994366841430311552800566621706200927302241800432132940096935729983784912094771521118664365391031082133141340458207949961697695024478342337755329225414477666665268540940409372834568659325176731969073585659446852827976735985058436709075257377357603664722790393094097857766869422906676273447202141607095138333224531251507361334297149254054830629607442571889757092782716497586051511824930270794545098738177219095034184398417550417420723269813415756152129463484747000418095628146609974301404193101859797364213971898896359930661543488939569010787376134454560286506371285464542331981958149235578168563689752510300550569369117592604763291340953331344513265320510393044708718569721504995493594124225291361425488824510817491867409040427237534516407826252143905566402344776189765889942134464668434434844936253145651270877834242200330516022448961161562785878018468417938354599540659367643993290177974568749931214325565555359789111876106291170945478123581319801830915423935332994696838535629448668755734178872060165483136541139529237720071697408316985221693735560693206345632318818828353188959327725081591281523071016678408241257901787943661400351278704294745351739866636370741964286717834738519227487340453786954136743227925092511836665668499102921578097023661054495725764618467026669718395145645554132153139660107676064344554247263601459289251141129149973904292450504927389192785014834042139657392020255631851376984471635306411587610362626661857884147482776548195159076915330230136669667607568216485546765639946452621416223537844489756337106080956425934749309397818478725547002877874497490758549354910955539241761488457703308499041839815996507558767709587513742329353692388425659030989358655378484495756853799523186182490948891841024482014439740307239031786114783690230156565677529942552538187303728043757968409983335571361236939044636953805345519158799413805077872367223119450979490877144134413541701168032609606009424667398943055999154921409504861215690266858478106321455000860308877788596536718145400821240680420232787866579038564641736473475808319761055941090225361283349006710141956413464991920422315618208498341342512540896520540544647276120972352232631253532831851839160681259181335834322942226893484827357186500280028915990042721039227967701320676454802276199733861347052518873470272180871937079712284520417004140675011033406080523603273697917951284344335586756508854766017608412292889717764595315402897113879895715257490794852778350266492482429443939690794264072371264033447131762875268027447310106445043783041987476783767299175791930414023199059879765001997383603908170727101691080060279964782989046350836928512178479689171450312884224716190775708944296356708921515188280274942967152116183510621553002747379315917856593397588916591175776670787537239407486976121087972458045578495181548141167256335692987436607138883891946905299531067837884944681253382314589674817529262407639171475635761422556970944091549436548990502278181883054166356413249502996607432873485067767751043169915129308406474674990755792313607103743931300150878249685038411688384406249384630872216270789538461936291185814792194714790052918254447945443466571584617363653311136798689768590957680373822853761598595152878894807565779892133596298209323384859571254167869311943791533280682397182822323526663458286582401986157455199421895789602695858843723875274946236754462461387743110039985098357953842882786579033101579741734808466263511486910978818529096311632423761242325490257711523926226376352585168065826569752298601865442617367577974854108779036262275700139919730953107716035335476772895483767539987579347172416976835976332255133083911354615631482745822999565918250328691438101347829863608212193242023944612572789255146937327002265283202196617593387544771028298704206426245213294810583531261693053222892959282311472292432775447063454102073351997638369023470986242487779252312306666699733243986831068271200014931242261880554811141175136503948856005648343523942207345077283256660874194372035998762153124893318252950731791243663252448094532068609493723936372419537234601746323204951900876265932548991169445667041363669304329832733741536251323725210046454577328610248381390597274156955792729363911190576720819640633918315644413123714494941297474032745541636261161324163714853473320222158525609716994299717741505708791077089528128828693911058587222359617148144853094013061583529337088313193708375257666335306272644074309028211064288227023115278389424412179473283678656047604820807341084469668167047626718325155787277238201785898339554470752745971002757457294817128547853887943227105908900321816159776300066995350037488653524672346000575180891259242655245195915067665948954081525590346180039046004115407119560117423163141920198995422971695067568359552698196768607549778016585637822556426704998167917388112577227662072729780103565465579060798965075954095878136055155754841294817084301284090761127775269614664423405218561908539727306385588383217450991071187965930425787203346429741276926971757108564061316812485746092016828185283447478830422947846379826052345787941929132556129932769586052398844079142199979053637556572502557709407956634857583469952148210072569260967093563162130144898996818505195472073021599417814530695169130948234395327598135436459191811400056431248690237283084187667333309388623340194871350344864771272555149826617601937849325068185324214621685148948718898913784701695368287014049106417715302670286703665371599062580927040628571634566052020847777956169945828318163118950000703222642078132402850898522182287232190051727950176633914740376722424684411846956874155194792287183833647157511152734029899734605078443496160101656689558036047287956863663831195859103421597931320624360798337082723372661223786456271124924204684623911704413531155511626004500849247578427097066666091061176805372684630310845147074354578155832436597393754452890402764854132194688729449143628714456785296925741564900111245862154541800525991157634535095434740575138690974256875391477157990522118300814665155476277835405149770280690460197756850878146886354966319614446493714898362381844278436651619589671619768881041969389785716105089552667066260035674393861819275142496563287844384042394935203062920162867215973107472394218139376172687463999754420403832180938348436329959523719894942184442302463110148227610987555960964090420919901879149303328735553136395365338503346658774035293057966913379553156983520658474608050499523295096391075508268325266469628145629907683347337395355818818044370423208509502088358332472707766789943894997445125115342541731397372899266897001419387029622223594491981606398056851595887936656223681858447173682133610867519059746690426427217734937509087772953678438862775785911098276686500832449248760626629047911941678660213874928828634187603307878498237354108908101633734233250059224811357715623790238830798320987363733315993723615060500432003587633377183245512660429966344631566457643585915567471124274202923075396021301032847712479130995476120964087739051693994715566427135771670649330388875215982230816269938036436480969424390135423163113226279267440262232776769238505601910708186768472080024149011907236589814100706759459110791151983709118887091645319652682964533948329866475494277862528534326149335681663391823323613464417671643504069014159106481076957569176114881077272592208504882370135894973481166162809272795699173777108442395496582578820905279076347282715161709544318689977734104438313854025937652993374003784551441473467382404755292840660555354914469239505440375776878409232869884660234169906153222883842488930303264335763170670279969398691619645694673809776624230350773098548276359314726491286286323187415276789768216858974161093128631866393428882691644606452110782087994343785041899301730364693482956533095445509215536140817406386292224945607538170728241795696924108029959333542414577737203824360948342202132528385182775159322565205485975103835024711971961861368507003199734043866515866808095260700697793655600405075158224912197690229499411745503459279603286517157391326530586704797377084513482594676415916760310517285064759424489084806974015829049291530288095066767931223309156053803805748192599254433101621768175696660627144674721846320821455034515706695612052715462885632944319304360648839652683115133648544056422310278453837127030122342782686314416645080888274231631159672602286070483060033180553777883661603313429862845908527782078145439899217214130706387602298339453686910756813387173320779048603081728978209606126709091626391741579912195619453892067731747054456703232276758435462431184299009695232892757354532114654871773936688605145632223522884236000420978488971770085087791256971911119249498750347543785274380997458566240395700504169209831320478095894562817148728473685490076409822024977184048915795528694677726031617876232675375756515069756643201811868470340756137716600701612171706234533981547184545007945913807131513058246928668666709208418993389598445288745665673831595906946466160640904113363279453877423058097810523489700834888491364524870185336495227728749739004586078745915774082052118580233913729890528067964731959296500566167707457218973330148348737792658871468142260392692603035670877947127347311633032874953745196581465832500035491926968919469160537528039041968126738532574944493679188175308454471368251449247693007358037259177369084140312905083112526073243923899871890823910854382106384643392953705129750464699839847533065523963337400346785598275136578848701410772234850514342154339368944822900541085897920608859662882453784606748098552565989241943818435427530935544821810865941106094877925076224488561696295454808929434994433712662180114710080376622818256049162089953363821287440809578600227544005353957604279993307882737056792975079454979569126614939146022380778256795032676047924012349803354149332281132243871025744625454844197915211356780174119366643111466634588172183219540124122395925647068231548712768856649857203763515604813042588825027217133214195760744528888871321006169540649800102069762654743488932577689145865229130214718426897805909281220534480520118850586650408582932020085600727824884345334809780103886752527242704531783502984897672039622451329778786076454287133340980750105091838081626097884162656844493891581512266196292899152592406076525393903875462748906373422014123614020905916314034474206086791482842704082338095823712891036863626073597676385173058604219970312140857239976251750090142489024406165445738654273637557772854218971559576769720601860816486947923337873040298570567186722818688542352773353034636973296280422055424040555164664054629782635881185157150231041122943521897004384838155260778759861281730265830007014519570752060952875411411576291980612282815011764996807606310465001097876937337248601401676733783218198579267824043179617440859388371837033351990138351022512984933104057311596334183216953266219282638694696981176795261756500836396456669909189975456363318390012592427461930918541647346615416558995112542269184367088491870976827299611132978644366992951735589817214339430595718571400329655284693177603854068041590041608820751892821531374340165447447590658678436613134646831522770015385617389605732443753692941856186532815197694374314627874336933415459639195242778513450473964691407905869372123283392152851699730517285095068257689921609899226548666746241332620551147374771336828398476311704634319026550658697720511057566628123958602812098908626427876919499961022039233168283034063779518226181595722717313351890115135196964133168293513881090276073663501222581192350450255467410963942676147102983329355287256050661120440904221021230928561434873283079032116111388916758830050545562468910431564139637647392567897111080783207140781494715168435504492136309811678925403550693694417695514986745274360012671296073075376990539300156334047665728276587583572637317344721807632524989461852772980672665720605612473792530712381044407669911283256340418325886521661746961567227043106492189892843148221788461160443682792309007205704183270893304744799559265623979430160221217396900794745560884036795889466533310152743238341352528327087724489151024758115064962580396170119644513280753888576348874636664250062075565753605739893266266278284906863613685364774422737403861249230103180503722398221932210287353912189129774492975907601077518077831184194554609102891323645858033959981528311237768056037791208018351534924273662503098821281094984042938210038849665729384368503899952701910216663721110972304046089447751910574621132411260676254046120869151570868131245592710641049708433500788379579870957437246049188597664386651607512363958353642361872104051696362705930858984834602205653163986271663289859091985768308512216757098624065560943064812254083352357475795140742934303768938116645031293717356277552504947715465417682113729386348703649320689120664346803270345906719665199712983148995446082101524797329257950787449737548857359688566994171701421699828859636193277698412314083342116683918325626424948025825486371939639116472919997386623085587088289094199578127127105213004634398229953325123097893382804658118398631389688053496618468914903804044475071049593043997140144411855539394088085747087380847067440805913199163452628562115596022849403114858172188013335393291704717687111022402901050125814532076806799222886292072347281910737349588332927490879328063886658054396027749529890539072689708357701627859081762154089340410038725428286122054907567460439010463573572093343606506022897966392413672335751664438132868422156161002020815639460017823157197030408548745203444816564831424214704459982594655922863044532868377012743559141188393973865297977311225183988972613854411275662444728466980543994400869022490359794768610410945939705613728774572114207711368661363539720854328698267322125699368797609735421365098533262766006030262097742961241441718236867472517507208839152805159700621127858106974021600826341137734874334371856674216958954374405107880651142159778125712948833178439389099558051686317073246747664642282073822610208850265509480975461554840170701511429806039806852160208153613534900803897039338643753623175736915558335386690169588241372039640006813829152586516938782741806491648862567771482551132810219784491515321332789138578825492849907144572926818920326637839437795561349126523013694497949792643734922651227899551933475543005306344197982712120148164226238692627622896597324534414735298865982168548817522852730049914574327337235541279930960955386102321680792323162118752227935242289238221812860219294697633342688165921254500470031040398296955993248165779274960333565276039303502595500780404887390573810483943460888435142376296334903559499000209294488362884656014973110586760822431469042263050757844868658025542303525569718233517620639688807741321423215390271247729158534999217120070024506675818786023732132624165048399411328969179749267317725749793619760617799236726817664058599139390421534763920134242640906858139933614744749237969222377186837177346766890937838098097734628517248304027346793404657051246435491566891796437844357694793554205628286450879036973085427688530086882758287121578493518966221153129503016914688256072469082968699932636165625646251166385708887577002319790263730990366372805253037007292316519555843672189175480317875654648647657587935824150516753806462035312851834880075069570868790348537343517769283582055923946174673479679260135374252911665624842452203579457800932000189846811339663788588887287865733585803451289744284977438386270361695972051586339373364156974344560155973267432603932386506671790065688401941364055870085316656967453603990176467799001730099168946241136381969373491881357556896795351563036650967205619544520642770520777377134212112276870689831539973695868069705993306270025724358449536668817575953474227779350379535464001087167776774197480630034306763652032969878805725869197459317005933094432232250693122356827608198148201010423516243166000841719546769678957229624730603287862363225259603392524151632549377840584285586757359053702666801692623951851314561439232886292036971034677333227961242693136055970652462936089104783984555684266109870745625297560542856807103363373754689824438393431346994946721986081034014159515523978536670923958213966542041526191746990567485443005046784264897586499392865344010424135502851452145435514310977368752603273661233461456914908455604756952754651285084466395109952488707770505815268894108158850843731972804900242299442448218942279715458140907247282904284205711537177801828891621509100944627854460015737851506703235086782156563755494238991205356983119991974586155998616715768812958564815886830451823280188053042079802715076412088941819790341628864273366487330296081021400587146391520069564487507189718216412608060604436403468205412643734848973279402012099379779660478461778419917977866349392542742657717003832573422595199421090348282077011577118551933192360040359016555238627452211318919454856806499981339698146660687286718512648754136667261597360499240285826801472456693302416560626113859588309457605226772776720138222140504361371791793694446093929644909430247677951228020739192833776055241048617806433653323519757019860972242391687224237889204370512347828404305192394346257369212375561188561819025389668091545224492490604640981424408912310436809783929540632657978145368803540590135177050323154359021455933893668047025252504028034551391178938629971485658772054394459209865457066363992982650861838962631351321906366431607026494272290963460043892363716111727357408816087818764149588701318586310497539040309880094338273974793463260528114653513006603160415649184956054793969764629634206890241745147674161179766726968839882245016033753227054993807329861536671089213002535023795915097797458956090840493643989001674949035462579375037462052544157395402502348288777838478337571389296171496509787369066611467886896009805431493659705049294973272563120809029447062358893739500369713209708348574070759438911317644086972069745717124037976187404573641758858055188712640489131733570740945212848990377424501670538285481564304505022150787601805921420953421190329019370616644777821437387022072413347140051747150125314455562448212676822915973975075362621588442335549090786329518702678469436107141221443433923223594350936287070746555700037608161663043299727724273561036461534024827778694262757684871747045826120181101401714347767574640739825268660366142737116798615312527754000541206601610884862360720688106973793522216322244032573246416190883096504357063553069894893896233874666680099714475989937917149811478280807143658629388106549218981274208895981848973606572058969107304412599572964221542676652169863888364199403546794342410282497013050432655963150959282457508905659282367450464826857334555812940495610332381237677830877063187619423222124776448243475366354797139648193541202704046138039694796098701651955219846364261971790133334253715391684828232410359707319862751051386731556353251671385910439948993963791629917431477816594249151319389751263516918587821730244483420548420079343510631615699293944282212563743486428685146687511910420539563155810888867880762084778441787602577719530017331970051721154332415566518192404248733700211045587920055035650707445625843631795389097712159204399693256896266849569209342087832653825902506458309825412633033421976008140738837960205238823363406250804799416199019734712884723281477041033335068461403555497050355023030027459235249241757172279203862488147627014987249934122293448118152688054722170287205710573210638672347434096778507183246090516192120622949648940867316163050132095099955492231037949691060450029457206794574096048063223533034816554406194236642638345336323505835869838437281184014253209285512275691273913780544919379624630432893200721688806530479113857599939875616832291758462564801846524755958362358816985498532252183778855159945652143128218587985460195765903850229792976481318040028530466857265838011234505055241930385869151321862792228933653815831105899981548808343995045167563135561168838521445348881766384895435133342845675103987126368294211269595908050351786039037363532498344852525916092040898608075772688665828605225927566487281852347179671247688914506508255970723135983141130090444897461328087759968733972628747207489326099877256637943014695105108285560836691879905810515335666915337347909548399061874614637715266444641950796008391157207617681603177313472165183494835867305166893816184858742448029381493761871788675003339405911479092978585735757575056394188297511225006434120250125540336691204793328013984484800829237915395606727627057958366472174014677972490794304720038197072117354505466239137470833461656169785370343097095326047040503320742967481050978571768745774867365818261978482575679112884139200283954844943935494684923750852732520336505632088705415897134588874021853575196135980633319188342670601825779432304114529367616829292355783252916533049827408963342226583596214554554929589526149949819708834798331117337212620102582094121914541299549635790796007342153896560875680856962446582739924166628994615084091118691122069016611330054565600080513094075144862274721098611645139905782647504078669914862743747252898862254825803533932343968646830915771816619732201186293819125944174022750189385473731874515835149843649566393117101189161048112092525415526832730309911165831243896493620530674187291136186091829675687018494548168936423111303201084927767369920051009689630070164948366157086242582212100943328341622273669261087643275704058038026972862600176074959435044237687438740692981572350436455382570242715950308250250624550284144745421136494614134940592515601487853979260414365466808825486899342804293304365580560874567466106092864212914513018326360357716610487374726874786119376522924409181024051827514127060005025422296423183070336745320603420445598264006897991186932580765735185007634888679639296564067180860705636514079195919555169055185702900187100813938530666991360716945679864110328459940750176460323211006133257019400316353614400763655864763184063884913807054036006013058295279998242926769217516287985060682378522580371923841123088582146584561457542750031991575001431144799647126248521853708270919759198957993082575374864976319917823405233684529042177324944134321370491376121235166173245077493737303008437565187069700421880244097507339004846802130963324070829962307006809879630419995971458473186085368173609795610435590534090589012069433829117303518062008236361643936906825776866120480912417710895135281358568414325266908758577756507133936051430338254795150218177746467841376806289864594768508060648487049466712147965019363834606638241324779794355243756032662821463673084586710702680136906861409009369297768649292831344586491633699097609058888883155578153116411897040972720986448659123348401264282858202310900268358645115032769952918284242601748159269125356818742423728057445781867310225748504404973348083038970480598664000474108343358133968650650653496055946310149540731834809520371348765912434011249156199714725685879703898147059236517337476630664794587879012883322453424577358753335542774767101568960941491832713308078762395358845058351140366972761428639541044732079078260950125186102216333278808958750950364498327980760088108371602832813401170606184526639655858987177249597127495209976906904378615382350031685103211853507823179299149694530962687580757673377399262967900835388075904254616666537751680368333962822180513802522977005286131195480332127094611246022435153913105889606775516731611285022446328441784130113113485652585041719420119169589021802452487094129690856719818560841365843589120857952136673262242970774709841336341143636435238781852103432682954976172524585614836928694466919645987609772671620509714712840256207689585172170340288076697560359259609986039016211991394963103197204645207498483984201326632783997676420446110867957440759324329542941550457477813085627764745396935206970495108289081369170718016308645563274245419497170904727668328389774999913018425713915388693745739634865314638569475095131876424746410915349459387428508994278884010464213768590644395364674384796761318715226111485922543083284120614464404824303996572998312721294715390318592594657700478308046264768360840008859207343497914190648495546640967396147663725098514405118554931095710777523905857504628763701787802344365865110672446494734287303263283889345913199897219476999725629955661838411462169631425958601511951402588272414677723926758678091519198793047509373962246759319757898414022000623455926480097447377862890304707137168109358702498379032691686849591786584505835401176747467085591746411544429962033817129269484188778129481511697001532584695542621438206262068015705633186237375467704941637765376356908325090904264773851097635501230018109935221693647585251337403364772281942213730084527349871169568912456860980910430437612147307386060092323840642786845728493365801312960995879964468224605919861718616303455737126296888130968739892032075070800657350383867138941768047621271455837641342153384373200326833598367430961456906562393167874541130932070109810483151597321004950516971375025693635545195967224815501850183980279506006727237988536178431064053436858514336033081488805605193169066393222267015151580823017384144277784730602024995246556312890561612601594991226607198371357739297499558431176219633669355802085017204782192750120596472103859976082604683335276895757742825536484257265655327895067694052633624087729325659847179492236316416499576332110836917122629800507128877701224445553932895380360275424364531391786917038162695844875411191853735934909057711815942047710097862551486549492188862519904080615946893350087070207337243530930490195706888120516324785045425203198239433823126656647291856124835708803136245938661040700498797216996944089865567555642611382409528140649583398192540525033774967092262382821725951991016733240233921417158211081467547575947991023428358954534204948574250409125924393007634046141616764358475787137134886198058415832785997368690697507780122054091822518619860327768113974812281174260214159977232097705655550867678955334911177062204539799569706824768000192298682246346641840112304299041031636670528194857988732052093992403134556324954648658551811102310304741278152661181349973511860657149428350574987234882081365309669642599250922935257252920496991201057513454491571694135950727416056863569150375954758037341182514897857243422356875851668674245456097077931306165765118807679394693358102183519978173098863727973465638080172001630061267619410705610501137277834734782349266647931674975474454449567620501041639561546424754831686736438972423930091941461245668340655782380214156635780478036225617365906478865573687724527246216464086141061023112268636898769929378467113942078284651450988597059928533519735943877767117654232130377338160209666510292298717423408918836410665050838089880426355836102484901242856036248349890651485657456726511625207601576634334248072369987038148757564774261990647100282668004274038424427591105721494775548466112600627699949339559392948052337338774264479796371006075167588146528017147194212684726020397248662736662003650454102091615797461845061900433635721346236065022616917479738297192788457149829826784745340783003925421210796737568095320479662502883618531659098321344190532083882650639900681578156359053874893017511433207004427802626042841070675259838748088904657817061294927952971661592325877279732993989199135763413056186600672851128591504976429357125842620221535857188709532451836593442602159049294675624305887615190310077690903113358319543587282962426811280546173569975698337739254308858018972746583023688472867524618793643019732965521547418637390563412134183846168640510011698424479678522311559239641061485403057794921933279876721369285678943191033112399902355920719807697864824734953164819285424046234985882996156739123860014062065986991108080081158490110804083948827078059862554917819494465231657185400019704608158200553004205977349975526587398978817612265903182788502466331518392101217278248113838983555658315408114310618052741192147746827415076375731916069816153864198974967481124443095261406992114863756008967629630237626097832792627113606752427354733494814394433523827661440262153309076292865146377006294363878704545026354923485058572376410180394051209962916428984624886560102680443314389567402465643761440193813720176082456679225013917485189162418501274491720276273242042457974006662200124889936152818343556030586391151682159964257707584772663576392526491528749076281393431066839944376828484370537840504442290888129479026718112340710342391269173911882030344981033797871005844452226281040238593746422405984463257394703926221440950224526536882892453026504099142156307158513725581663165379505743139484834265078918645900666537520781854331734868466965238809809544936121494410218101304137689753002383155424156027612428403006040000503932973588753219726590100249125637504549348668853941939455301617142366883329082567778207301113840152073143061701117409258118806652186571301216970632353893123854702205975763672640662013314756271385054031473837679012044955149312052943700533273804230758154381189218495677638146845789266367272542163427892689291813800205351046093752286490798009816330844909492499846607323944947177633514042753757146563324177993039626053836937430309436417384831381394271912331820546915624962389927512258156979815599226263824781541304424624999273168951974945474928983292669102845519096204128316723733223547001652308435297706659545432285974681482181639373281526531860231816861058661243832622453696980370897255950083975938734347656866607092527588369033448994057324110552877585720927572730298167574902106852281474524517689243233133482217642443390990075413471688361477473671339463035145939981024293758842454125840466178873513096704214333307166494139184183859996121704337218250759961566115175912414338040442231873308963458673156193366615972995340078301975931904672284686021260335283113526266845676882004133999390239233112358740866874775068685916132168546145609145216035929252814648446398655507879405284254699492267320186124007538486746023439542370408954311900111410869759130476070068853504999446928047535738973191503988600338688133413701919955751304238301464654867916579060778833224426262538519682581385982057333127849581517525869396973667365178981454425643361532632014288103661891124156920474734810309061173326220910869570727978575725995156840233065992809252944823714111702598998915066074921428423273788237933849933400486802679494913795344767429057067304211212572754682315589313121290418414424226633273320753223529817627293064194615108349282506197129714726316096990349036028660151345876518780016665585881505416920880811177880845286182048233663154511924244683001583068365799956002878176064565142958847661546820144613925556283450979229259776517680575668014713115729320806753965060581005585415788871111183916532342421010620342531995106435273567145674421537255907194774828569624344496572536083298748848581156576289682148236652923508821299080720431028467044640902050988778089583776578398720787211149024565977305458382578087544527631859959761573550388549267015497167119636372037335689244313508151839592229779130508104955982435715222112452876221704542855275547493775184794406231546047871999462124871264410815492967607393636855996171800597933773736661836980982316733565702860509101369532548440755672317891605694907906706508562566827986037671565066157042248868832244557021271367489884526982662898046925007629719415959772535250057624426818454765848778116365107222397046065738186275411133941473915579588223642152413914567815880753302357161193595547433112903703382740061351929369110572516397963573752196030195041771221991923348176902886579819787118877394206569073702522309024901651054580065017514241444316793743531233260156774584173765360796613565508247184103714066313184373976360422893391243536503220209993911183018624831738793061020319325798958079499492249570541548144358672943661983377636171580146404170428172450598610444095337591005360948221904641060796054509152406310889959491802304427149470131483493664449208250020891990165022668462661895823000654906960253167167735346939499397470846610704028840995453200277915937506446617634197173844260059026463146575532651665695309848328377178957499639638174858206406943076417376903181603074123631405279623075425537796955128622166879191767996397034499793082847060566078272554944176063201999050643029745524740246504099217026231309854230861424969292626334659083579731550883826104663937110306822311496331737775414650064345339078421982005378150292848698782830841820957996474180272644558864813367047106225038035509818374049748900232330613180522631243316132770846405621760518224018014041382196609940303349090696029601557643752014233762518724172810280524107748584319004800266898439524198229682935619585987671498109318530460463152567932828885221306739302249720095991141033204761646561042140096054947509772327723240933143004738910438794893679926316355625495371859111133885690909244872396120757735806467583421338040365299209658482866507782553402329640887186817657717935517848995103118493346149028671476978138198523171184688757082347662513779496285917686999276654822130494983104781657863114359108716158291566423863828264494549235156455582084518713871570004602344656171484635988463884572981606152884261328148409490457782410180750632948629906694853139723634112128628722300325784208776434444960063281302078983562377002856147836720527065374160713643014769525582358207344316062493213362762211590869729115316542159609534592983236319116658572626409358575062580310397786969226745023149057882289034122408465279885689475503697834444964726905110681723353891536277322980222625522199801953602662188030278371322497069613361413449985001187677731570648618007425934350522105338837859486885102379003713672913279240052268291201854905997014910361853472189601960401526825973314203835982993555071974647282139274621542100625388794738065204055374726196051951624279325088070175282226523975192992833611162264354030528602167588492036814980108799996041421300734762603041573947682749751423312774653430039490993477348823980927346888130157154568496112317020767532790791519410978934753408616903818628060645024721688073624992097053686601413831598775421871465990995773931610216486804580231569398494795262211897973057311471197481793466973330768502337803355049265159569677883769198521342353661612487090833568462685388030047984569701747775330908094223337613223330536855734919315334147317154239127006951240892296655537545000165114225887587266821669738192777046607102339817755346986085606031228112773606887851275804808486325367890950947434580792301502486827363398463231592950797817374387447195136216403821040918422691452277910769708217355555006612173582400812764575902609552176950333588986233943492003592412249573613629391410355120577055929708881658167613227071606239055333585182878583641616654957278978445596815786632288249120538518442450966483312272458313223877124803127438871742068339961026756439679879057213091848464438729323766433856754290941193096833910193775212348625769266214365441972608660986600084118438489773908329608086350000467592305696803512577546591669729217491178302000868854101132759148934889577633075701450481936796073131129296084708346523336661019067028454083604859309740362211249544175942039694159890343278478313578142727785627967528337911145567168084377938033165622289581094597700138595379411985827157534612323664561128594901514507316982799833168742929909508431408713166360137785636657656923966149258372061946167490433310033582148172139841300119466131734716886945484836291433577149220481542841889114792734340655905325613649957845737969505701804589960591590965912971587105939483091790242870855243160581029543972973281262550209303566233441904957804518905900806285969110210423455388581986200860877286925628931211090608144808666715235821405048735699554411368897791407592593173108976248352015291725753063344177239501347805402440758148803808247742475023866697204954330470869806011648989195468298557791140923137339798032711650165760013933184341572688356893291329685562861928627444680694888234637892326155780997351242368612441773351203249839588565599917617151009302455179448177368385204617124079224595645314987501180437364686015110087252217328284442440686712684754406385691750792133996464741158166700772833604695625171362746541552287609552403453835122253338254867082985629611837628061547729818706843624533646817595346187653332759097246125854468386572196654393631334629773251267361324223010426066152311254586802931224632047651006913389951440668380028747218073230411560435813154121970512237947908857491285578283111809244844151250084509317184991335203770434854457077969504317747559805968758378950363077366142748064875671132538812194012066915299608079243684360943369845744982721264476030439226522455196262784878374341914372167940157349351446006493303641016451612691326586522086010618655525608154683072573739592667559940802049509089034655719378108664493802599559072147312238436539531683466657754960498166378105004855325944268721199183892891575728136079654828788262661421080434865175243974081488512702593225240287633168317175940922613551701859933745397130002016067452221607435810149839819114325846974784996341658868196121770061821481592951992574023680215494194067019287384393943666731129602177065853324125806091533279705176073665556051320778962981583829131418003819359391817204201079400712023594348355736004594076158158364649195744254177834260885687245393993805897191301941504134559286726430190352339919724775436954039058678432339868157811229331873877966727449784148375933873824907692457324874016779816109691210417367650327023043635103125524476054942860032917561909132875034164974896864226092853043220591670448452815021608744610491290788079600678014405989598135764717351267325516547924779590118275545469208751311173425720743288980343895966125955620327434287069599639706921875801457511014843073847133987103201570760980829647868751022001844111322049058879392124495407212014408027490271688721333659377492116760642159338734248454918198469672081021803437597926686634873071538172946264651321402151731395270125082508370317742535126970655874821983124349178198158176353442253712386779527753982370129552119492392341552446187709776047085247908833881710093070902154087019534395889692234992645017598365627740582049656209932825978880480626032923098160385533680401527850656578140612530495684019433080797832396501129538439683428344418027259788637614577508147189065993106220726236109986932420726265820832719709636900178290337708659770678427302606160640039295811997973237943070004589254216087119244924544193786164492479929308589493016470270799536935550800976339534744517987544319304878305284352175156488983924575306755540181901178699508461827506254623468046230766339406254022759576392158502570048036716876288159685949960627133175535123012927456393559434954430463673836507714965348840833615983572827126121926062502701303857626089942488790973746151146639029799777978056657341763333204941269301736334283363691554229064504521828511230274273130073779371713675755351245431158223189633224296962346271433933138458056052651027871654431307425782337971603511071663575384341563499648733301885549262898225073745449815725552348578592834900922367082211860545713225014959894087824508668663194577551413676751372113761529704531222242630931558169783337775686478543900996309078056983052560967468409808596756055514305364217415998488654855778139089626292024144727286429474518354585770849535108993278455111228048904064816224108297738872474630266213057488921917115888082506560572955279118980365657258479468499713412147785371648145069855752732921986259102039104060777324963010005347806859006047562069338249928074914589263367094985171278614566866594190340043302511308502283461826038142930197032765195793938100915018988665408797118517782544726142139554298866855604848685561541379431439552542344171169089223789113785290792360233664647595665600990985596242267792797728706373914166188662476161270572760875070422232228325293016396762820324924668149508839509107012445158237531481156669343904166624278779767784381265291933779404645435441370901878653051661341059599409349813118272457959761841317319558851590538135917613372282760389762278090184637832308115719771429920431023709484433001088230485613150807340005010699340530685461441958448489919601760858940823472797327660282485335893439744412844323913711558414649472504889666427114466809197573127092389773745166846098451300760748846295526633764704122932301098212425988208195981776871875700871619634751129863317639543404658321891210655487720630964069093637427912345319747620027569740685371437680215105865495160403152662583727939217183313244456520535045754318601894285515156990414020594824190254617149602657657296072416094388018443795074570904531450802772496001805558151846290434606304419811176363772398233188795690545989141977083241438203209838324083378120194494687399704171574975762896659949500896604152103230505204254004955134705880720110054425376513054714441730457937568815688710261812598222281095669875339649888466198383664666016415074497022736950600698472821125715656101693361155410227857470728338240433644794819763438332112407088852532423749529964387932910283116439180714244579434699793061875308904223494945238920380781642435398382163821012600301634063561598060553543214422397123372987542747409344363000128619096000633667494177498287150767126726852592451418277431804961946265269167632487563223807896216449418011291805428847292490893204729996629420871049448149871845757060100064134565180172260439629880513971165671336628010803339335875049851534619932718411858943916172504764697897642434343327052292754194196187536115091348811173660940946362657660174986968354283578497523998896502754022919315926711921733649686257016556507775665944653675477665004888214989615687289365178908184926343762000569431775835918515737141400875489641525862302832008603398932372511759748209610466818620194402967005262073950219004879468052766456398165391527612965313128131738716983772536754864740532757717793359299536133195619306995932167948128164920292228279886814973271745963484991920384486618056448005265301258521539857402893907049225828934749115562372428821417940083742771267552801561409450287359966169032847472494819983583995211742047881843925380744089695210647414843285630680883838020031844110990432090093838179546112042772559029211945300025580761356506971893514552215029343988248645442965725538254436631464294470456282927208455021644460262462316376245777982689841953773195024721064089827106208539982926272664229225824085361416189544341951121339966778825453216755392914185989449622874827257657690645763915789386594995923140670414197626725087885059098588696838742788981567035446947327137694202462864938907965511973362996699904847658281611213128941774345668478797215187917549399136664269602324224046964376290534191856779730297197434943819817473191541010090092994687635997060341638907212523510682924886654498115870727442997164961769422223619466181434219025515897863869913584014911599453154426140737266845853959765303416554985718346994162835609844363749719926235725533754952274746952447381569604710300506292592308689419711517925487948688311789849630627595949903977064260529230147734652171310919112647505156991806788586798564835683300988879099881816416526597169600386069056212906843536567107562038675724741968099868871087028710943860567240800126420272951014495451249162911266020074524077651452227989708237248631379838417150734082987431132429405324679203149802157620148564774865863100533985537662424643390810854424165966113357341046783188880686311162582134778796821622366151421777448733589362909669711910961309768765302155155697063458380532285551895636296586733568909141659129577310733858350400432350295546551295747797409248288458570323150622907693152645324358289409231121053499924796845552358187536821131574722032907850628041358074136069189441750914842482578873672459296308156868090544070848442716228205976359106537945795086708727541684261417651918331986806431349290124635799529512097500409542312062096068510818251677834089516847681318937930825531955299164046628045858146808397741371058314120016322371287376550539297233557046557131325237634143288729970828898386901421709005883449945842912504816409448388396976728143175440190439925782803917053253910800915571431823959759021416701587366502278976600932845441932440134643894647775261508872228456124361405552869259414606872129367265309707895908629295638620313005119655843072650583382207845977651512879471236731182245212960135326941579142896923001422076651621041400747380841328494239777438931984020181737062843723211043597449233456817102132596936008676120044802420322544601665997412398158255397641686016433573358372512624594937947319606233579059818180285738416977439201178247141229594362010754832941766894060362845477395856427082853084572766686941343642083258636632698903227833762656059638679028256541329124970250036501384493692892915372642935329047037098955051344000038176575317314933324636840565197927921807688363619417998325282571412241307013202235242034064440775752598010439353631754630261863688674307087278030900779799512691600274663965244957652516368013167036362675814367307833202362215163822954504610449727645915538785715219621596432499534148563759179191089616095182939346980963058422073695684782602234422058244574951984867466423661863113673111899953293935192447572960926872257985694799088274907436074871670590039060569435501750750895080231603756121123315050818790550263745063922238323370665465318609798539845607800527292307487679070757476116216936477338581888539760005230723311443120735129364581423541530082378722790305714334797822966561519298351957282984425403571970818527866465874073793581027611658963005048703772254938793441921214296134802404724321415131833012068711489713930470355107361677614597965438098956565550121524781219718158480148784777750086046777599902194338398276732947213727332656174195149823314629161067748457827861558214457666202917540331289456273414057246015054964293477517055078929572965716297240852856674596331548723192505554939452631663777330553244985893749265580332432564803258792823351195522928087354876101468243765689389518133859967098215825358710962068012268441996619285282476457648871035222177791496018227417771808533398204662564565287663688559179645167470815362612554517861622104935143862377838926979030498435436989101935039161422173532307157790794996612602213954583421546031961492832796402917253690010163922611817327552333858621712400707714147905658689881588845923306712348492370353314574509865001860892239717876153163956396157994452387339703451617312926289606855003584791716405686873784181943183271959219763749668010288396848459127300929104889001287825252164537320112809737338651667205425299274788122449269639176832248983876788488371467707664268521863699956117919572501655647123776311196151335173844828578806413707469158560904507223914684632532313524189554598658732638121881260337603782879774815672620089779808151456960381892226983662765275715087220628186432113107669031204553443424591145926997782577280406841787352268568323364007096523462722058490839219012489172951870507948989593741148490205625523878572345129859164941574565725999712796739836016615797439423671717196426250801091365067451263654104893367705687937112721915604760552289387094429178876715871649880199976640717004628806584700240922422328311342643844398726138789041304046668746507577011874106005254120235600724355360889706672100421819279156535889854259514747509052089323626330015759593239709718501375189215236343718095987582700172455540808167193837008516448356329206305845687413554567291991068233901068453164496099480893758830421969001730250525006682884411463050602822725304098369088485904054388942163265643504189244266065369905778933621321319361116334782580641248303415355626348239118591677703478319863455061974943819199465384093941128061827821902430831783385640744190738885993040248204926817717827559129500601480541456145517561473000330376177034596473847738294591933036580414231407234827217207090118520544755689483162319290652919926559318915105164267682170491469782621897320917745283685962800821051822637395505750561786721919776585354841884163655853826290269697544574171466466016807168331199412470591989408410779262084880561437217321475796928777686095694240034222049437668138539552666226460016647443695379837295169534285567223300208534398322685900714775240540838902313266443898022945507781961790267076599023070048886460213241096961416396345433203026591245659714426625699592322761038053245379995556962031847280611351379327241261958533844597060971391095598993465030922143242601659670307795630057345304757816444630230373786717709993201861506704809025686172403946259991887524432831453366392497362036048985463602134549464412276819990697382683036990306317741235176707776095685636912028978669249367794828363726717717873132971354629936949476827285030776013738516073387128769398091860694498870996078751971426677758518383722668808079894525252116229767922414519030011755372404799521341282059762882596884130666741010768980441964120890333518003370860089719900839770644444947322683584901894047582494121151041274505134116336410412371352843363563763245426973098909651565738982221456633051585474365300011580973226733912453625059538122655551215162962043962583695631516934844864727531063206598702130860338050829759092150047118477009927024034765709645664129697833707501152569184852726202210364343502459635604522259675915704343160162899825219514759517432828751565895533346097723845690585477728062007808809185295160556351780956881168262531006486243079289376908336162299357473066143483082884128182885152135510262890619081974236266100484245259867836441618643275184379614801868323305511331897848470656741409912509408770009834341828293969900080659872530061628056519011065694081128530014757136943523489317905633445489883420918199082902647565228619612296843266659139748489537089716072888691456814538980567141566949237064303754163031333465834775528772756155572109120377331630837124166966250651654823479849462739761899260910854893202928439285732452593628584794495610231163581198579413873323587531787280416857692095490680403930434404503909060624706378611049704368440828811256460895112354570059894426459912158486627902858019133401060314099501280951330789190677512419843936980849051207310287512730845770747546979344433213285145473962624355363168202697722192500469622108249135017700964513376673647556459970368097597903672931926061228835492778483475344377469097074156609507462825095070084407453549447963202402873265962142920765421514823778934205241634772302600619779784704030896433525735891529149213740754073986212235063108986231793133172036557536433457842341720366320243948393681878376514793395407359970458632976162425468313765808542138857889923965318211268855031942795890983570251658867846332159002691743132143109700872988802941149924443077325339992081230467316063385961721773300312729269121700968409661969080991982393127850215447777409271807028932331245477257669997209850832561529069834001873454284222815794511781528514215899744008113910825462099744821204657651023494629840190742378422893882110093704933557157530456110847416606387021891020376785817249101542540073383117269308762975953996362186140226869709701439278578638368876140947684845755471913401157172321948921169194251364354496448191068960956231454010592039561052620273806375855014221351496695919362186402618972071899601496746451890410398827365898520964697047419243023084380883972288039297861884512627644746426669332448686497659376251828227293751252731576712986263332540500275238689893063762128895423394493357909942864626342159349718436342546872671735514693414396180840982832333675507231942892096413388493467455287536171387691387479705047362548056673427133925349025504913772933273839920771596346622239112878213437213212098228263024276651192831283342322946890829761239244605699267796381481823553085222554606989393413777560235296306982728831663767003468274090732477935116049151160136717550933467577750660139800712740215230168136934704936392579756687079035459251833620911719374521732230135330257986579815816899210510731826825804658431304573187934413953225435249071959615597921710706089694011322448334351056168117174966049266830718005342138963504973158062621649548998483871279519092733458057607074411615972557776607884041770887736563872677435057614796412985410719634061429263465576977074703105638146169303278492514501601730066004264939893304784605254196486306843397609097980815903024670994343678502275500918078693968782938233512899791613172428417068385028697216790993907446277548071829750975460821880226122774119715016990985177510851511031484772307895041941373717714888420964864480220762942487309347048444140317370139120957271500372962925799099643800088671806360452409709619544883947046993896155203884054047325584505162259376126946596143129854342456534745103554130309320661163382513490004454675731437632897077188348467729894239727031019901052321964333826574162566844425083851698288843396782742998128580859362913126304179907234353130255423183974004221329638717703105861594053818342261454751003330990191255075084471074583332389177479823426098681830311944518424542299971222845034468904874559927956544673717357191834257864487028892457394340004877897381574297225666515582993361132400314288308050524084308530675338944117410648072360316639658947884494485089772937223947790700753165052457736004107287594079596768640908873199010446147098115507282068121524566856234954023590522217014709294754868609970332992523125309899334747204509660423687569389577899158552990958376632531342133863449636400525448027643923030673305228122879518646067911666397419752509159345556205539514441699684887184871570620612708381644708445614748792190115224572026575255417710022394064206295897917974069891526794527294249290979021215004402062436895472048188318864424153307677319886720008070235623759541366914149704117084309783943823253706148780446544867986849080331484001723656951137228262078332989905089153838203220174754175930443160976696189990409275816981931419994882923062875330888843568714198345289543154327142313780667156405766674608418844368145887954293631382732238433414303416712480073715184467460402266263011774334783465137486071217346668962817856299397027240723843591359097993669895232328776207729853887602609485749858650950224510648169520441315387014240773599310411346874966051758372918671315529063681102738793571871501909363187370003300484389870731957678197240534796219999067876907277651252596598805439251338183286322762898656860350403708350904136868606575459346945773238050390238210103892014546506946140339805727240224360303085823480214008230362217184865126568525341519732281067556148527154992483848324190176812008225179430334758029210393366233268715316052702306014051526269976646857731027149809820521202325900121753913579998947276330017976557878250822044625140771147019246811178440211551285976716893549974970204423240787835291021613188670481826361320819983654274971893693201868060614344835394622857750827281549527471512880491843587631795736624552797226171882871512420792161160231011011191586100731785875766598710174671754950423476428353582468932457877943015813987951719846923719997143627018630578961864024898388640528965443525521964253787193114593754787566782110480211290269454037459418491849650283087408436376039004710409228224009554612872286078443651241065370420573899516696422143691524459080387169535799958739933377206896487920171212579008140645017838277851370537683466358569796047451067032258430272693564906788868198708201050130232926139958305799661776419649300297249312008717449156926563061455425751132387285730640263403286243162658988635479708320508612592625471950110855643055070869549951292577066399539673173253698750875785213223901104166281501727077174050797557933064979901566117211888544553155047168689306920796110355240541717070371416442318034906682358871951033733608207636181570340363579508582388647193350169135647851787637707850012795415532482304776370527167637634639027936763438644737348366162364269900696897600445483432470064282453670676095484339848308899859490794718238125555233505692251787718860788186894254104161390553088505115135188854943722200947411655316338176381897993130246107324134441934723435099113579957495049659965979246615382945614741662753469793400353175063805773088609816525631122418880619389971853555413815143609724300496883097618338619216116935917709590058801058166216562766407558969714976017068551937742789496909654532252428354727308429997614222867244288234162078055519427943985731357886636325187749807042383744374938173916243550270145865034383468629627469782402272558500834048215940350549974561323547989775772550322575261826800701358170585203082748579866606469769658124477549336493069893211082038773747362242959135720941240198454896316989675999623181570733633680994322226582250693274870818671919161740519229683462306670535429366805718712623465431194734096068483774285103985677526585066597621392898980090441583980625914855131282801423277263158534592094420159369379679555926105824200343473437229619401492365566333517273632645390676171475924198646059336801409256048872009203218737448273903528931548564069685482762458288992433153029887855386975549671575701691210167791908911646231161781775465206658934557284694171752340990521260997680531168748331933124187834931055453078601740701883116355678231297399855143931020899834856184411282671433347828295426693854640961158858928984238542002151668532999983102915482018537766689492371019606886591185027709903243127385862174640966317712170703102251599422446803333470932747819192292717641225398499019614294576109000158177980560354376855730676872658691477588731549872313932158803200293870230110228801660444917022356399840956058282586658986860365807185562440222443227358736443436814741924780616561919324351230614759593317537200503278908475124338150848339341269523975333519791906720748584831021641174892608502029374443769240559623349565688936676711293689477430895698406243040786357471989221327621022469356144792064605302171490127934164662315778843319047168806840948271133088712934897347496101329519281430586356337411036157462028764623942136241097652008022660120763897156426301995295539795077345956454994237220725252836201575095829327783185205000258205290492926309388288121578562124311925097236889328089591124208910173634378516454804014066543550822641585989888896940506414947544021669026253462319632891058051312666659108451500466458545691843905417025804697304228474730949136947466552310479813232105550658172184056027529014609864679126833167703087523829032021386245736750086039807884557141508899566781875423318701095497989239892346069975728365102342234821555589761248132837728010666410061540266030552923236367975552217189646695440357428470206059228763138020976658376803474733963114792585067594470377917850743479452604374331315567174042535442844488122120830442549208485022909039816677446466892163487237125660448301347665759512945602774912271482531159704885691452339518825091900353226345531064651131023933595292175722814064706106887220990529565804249964209622485998830951831657445678148327848196007879266577913844518314775033560812461312868463994211379212336030730064573736995563629873122935210529193522988043442579806902555854732379225557670542213015335590722836112507935277036188392949743433715736705756054067422099087528418896045243828594007021626588091582452632734471334209138863324440096684218160478140069635659159712292265847744772924001181665715227445274607004704993955084514225610119397000060414627557884079268813915331911168469840047767336085648113323307965185954883875496597340651287213413538963553277919273128924004909820520703341046905410558694316075944931269713805389550179983648941252193954186752403311846429371919596978843674648569102744115326859328267924392230694136240579349762601228848780741749310645665689702835563511022931563123163605493853184157921790498243843233915487400258866065135638998561272492018564474807963066920425125561320522256006735539224795406383706960597637750657557770351149193948663292467448671602677136058766035530144608457779106978085902936622523823013789468755424991145217854928546585623908966589786224395391704704696023675124656458304872694039227145703386873857191392532775693214659768431515394019788075618807207219795378782299327922520946535167784279601729546619011731145324950575675744570839138469983509907093501479310712957636924797303425765003375585304929042071945850050996675468225550147479918637544712084758368167018799727313085596168163910676671939596523382955366234366508056013250905299123503954326720414541368121752353535873326101040247909924229903550041377740589455272580460836672292316538228604337737518782059299140791017391781912282198510105852654824205635682334615972078456699592077449248589856350016368930514768348520442354554292897400803028623717537139520739733297438072279394194373420268118153295769932938652503577538337517030642228137454617793588249016679876025143971254608089634637638271653127089908587889713682422392854177752728369531384672775488645747181426739153511590614428027397111959018354083384558663262141946850673348201125704955767689916962811653519864597084637470246222426324057835958083350446214086108045600171031375665881678566935028114370845511060978718655817207678553759329383448926768443883248417163833797887312151150780524625655013123159105947060370298450547185158217186955937967352741652837635264757255515127094082413895522065431810490409850784342308447603241529772519615468900580845630175521114436991992317913124184755195940314595288116455195742217883446391612368719383091895415058358408091132222151667815408688841028757549965278320737636399063169432669676711782986208517676211439761448007285443785258453629858212111615198497099658657340547916864972273064236303679297779364103039195547187724100475522909428526084159658347015924451831323717345256189687928324660157889543995340486056136950935420703232723059120424584301627683629701562928194821788521431675140220482551300975531044088300070389544995510655402506802560249914153181509335468933410310663902392216873596762502404929705844845384072184871849055363033451135638772142552190834324936136147482682499074590056293662354825665417873078239428277278545354671596014307382464091730550719975114115315325133632928124697084368881428138963778667448903744956898192409202800170546053644617766613797496327608217585932762840135494747972477407757331460904316936770069030848753094166181510448531146908250238852767675868846283390254640124377794236633205252522914432879941991468803639994193302819088427425380805518233731419007919490091504077690224924842509470670205021770248893060184498352891467994084638063514963574428014441760242279312534763299338670510653223366112309326429823529100599495662522831598803374368891775325613430654164861757279124542605667116345606666697570173087834335316294542379932667970979042736043814774354585326198547707681739534471264314989415097594587895938378202956124129896005590511258071061135083096269357678963285586516884611829634132933573456953783905189171695373969519918813263932633592700833521465691428695447564476774688294679378902899607975483558830556166298926708591260862296065931056984152297092296337945221800677905976127031620138698547517649993202549537288548139680156327825377653850888335683558293547575563330180445869914017096580159811103274939018473816960463698189992226367171681292821837556336342909846955847568862152412638372906546573730062239423535323968204169809909581820200009450882951557008456943601612059933099270028319406720007801046779765996587742389559029866920081135537621439165411406835961163307683763730244181971924678775837796609184656409521244060778274956263097456055726867833504284748794237606164092171454906037728778777271356263112551629821764113715759031111516689985733815815254606055592907290427503040594887820560078786479134482910938572495047790909278397474282305713984407605181241928182859153792142533192343190437289277590629456704711757022845117243587765070845351620055739124500861775007463969585697049565748157994380663055509625787437832788766476728233169602680611630264930308326468833406022173352238368239667332369558095128736200835417791717530083940615712493140687479609275056812064840320167769911617418857247208949845416850563221451260704949238348435820506687360945865732869988768973840369995468418152470275265432677818804108723620279864301525579045056450541919884051246856562137041243976237246419473742402265006724426643832252239194675332839040410026015030376244380375962106394130365656566924591517817162075619025363772284829349942567712088006813387915324465910848997051534756638860726992268772090837841167907217565409614752832954115382329354266759666144096461476888863610462952785336055180409495579126314116522418388136714699214864970733670055685988689802545174999672674198456806666273633374203659110501520395663858647583803901209652962299880813950456044775629469794393342218483373486503595829648242469789032505414739923038072471996026103118696647673927718276496075884221623064016354554792698264224005611305954810391880831636902305792505699912223389541152532940952809272528718085977677296649476370493425613931189513845036076463587218179075484280921635258843099519027734970326167844997587105711026522874208395697549534530183623789387688694562922586340239862028978899957228749848900174476213790443245722937170455585975811060540850381438362990487986816081767674631989557899365130013058677014485847905057584402904232933280799637075755445004527505455266745012777393289573043790515107462454492112562740618331701716385159965435133668247688828005085013727831615111991019492402019643002492373892966503116750793388426997106992863105221039459507287060524279107778590011468934423403866580929871608261049624142717549309748308690318071367945228541546542801157016135731930381183337639889813063466520034811919666204800158182553748834815640953587265695643735577507694161384826905278712483431864806969721095116975906863220754669547851078780232304363794714444042434576979480158033543585954737640560612419834770691297473059860033203761189993967394687308187753802712088672367098525626574853994978860183447030974120898294316556477979168007553642482260587207451374758958895560693254006841112442895816408697980456558905295553908857533512188892633964481501373324188373693725824179682354321430770490013821904515057073231667601615969693304653888277333524777712260181662092985490730371003794606156170305997175474219535259692785055641933777257801216404255607561709697873626415599006860721863905628553075718119987943415032896202528413163048032449409993658023124824504441908057379553272948306530128627978214249618663149340813718962584809637672932643798330213319225530622746454379396820456478085544075816212910248450680836972583020247588104133025514088359393282660635321673811955261704766797373115441392469602747872487999249223445008026724398233905298248739098425614754596660565549995496971566525041061934239147424966449359796597448379869590426950504152502972468065967250734520429080245533486915885854961696823285075418206186395535222186114162852549725516855751134254989535207170742145387382850498045437965365726118519468860790829494277353817086280804650718614831470297963583880498521211738481735260672269696208962967622308341740702071381407181226736299125527818026482664129298603367623571475880866761889192487203319716729122201981520600203162552126977829746680849358359266217153472061266819961689533978589143757506131899028738338871820169572645400914200159348335974296295512840187490002342908036408471492123888545086135944941793518315176659057973040712606584499047453800962912615920728038002807781029325266452153856271106544174086205311089335269344720289640571100878442878576920843648213695205340700505933921522497287081356668315088057941046556576823335205603943553486316780674502422220929090488809017177905079997247536403544287948997374651248805921754998021103834539772762151452117401718542024132515043555999281778864500236991488042900545297718142515009570019583588536620317456830977433570684392711039685484012858105425523288971347462886841211198242217432878304180290276792669678922126456026330169413519807539657392355124054091814893815912736299822544139783982332139525359006132580225487001759655167208433901513871975294669091789460133433983031939833994217716669898430549493462322986598861812470907694658518842752682189389613794188522003070500584192652785666184587991808061960947998900584942050909610950864997176054044227271511306527085659942214056419214572144117479784260233233142103102721096023671438224689734812074191044364848109695791540047879410303599281154332305862953779732002837202711323403893144504294831949257484791125465988487425720856006479733832674164908499019146662870456287931137780119614834034788919972195285882490912545180045280848507282826641687856603397889010538744890710571247104372466012099304696538111767621370843152899784065863083123027365120030552048969453702392706334405368517630956892996040637049500643272030430939948814143482879037222763785520624726021130177297731935336013185610321576932681860413121526653043311191731207170357724066310158998996296983324682869455103597929689136075210699785123183821913456566752314020020875595341250528073965410650946348867640833883112969414619035102701358724230642712941998561660581780093542172756667144350620636081619047950630228304177183032299762442516690760157510625791077035098001218786772521806772772443654367245850163571477684950536948906676791392780947499590266235856313090720908329167910337894061147486979573109535034546403425719537001145750572392882674219362640269200799325188349141080001403459547418250787567837274694217757756675027042253299855105868978123404580650328520606393221292065270422069370892239105687925202028524162686285625391044878017780360518725793004440107801555712908000577313820796593365615014186045269798855232634554244166825109022960809642314385128692217194246390290590896490360614166633525603412052455923158433326289942850416591992886765571970267226270528695769656512727032427771624162674313752953954224178135733266908976890198874653916524634891281021846000620389378177962378021465556771641040092660878469880799850671004735882136819725310590378881885463158910204461004896344301543203861034528424776528192996354164530450538150660759164431372691859499435714649426019775876566733317173983496212691093087715891847743341397218691641513800941307437650660768373822740250547604975451311160708573017201722785467109926248590400182024363860177561699785039777755417856848776831032683044458599545939636252209383423751396485600125208930570510200758687935157438023007366962675013760717097547411773112328558310689702949057424821997430000139891078459884069123508580743374537005752621684199935510547192697924157741126283239324348494765721222978811722400267075330213702395612559763870641367502258514662499091570211176401197824684097488908455910520288112645283688234543761775795880040586718689859633244262287440561456066699712522267066768786275444446254572916634118358643529566301986572653891427914109018335024456961561158283003784405778653924742998523534327994415764467254951986235292145896809447127689997672025613934395356117245985309186476334503245211007130554928353862862140027890077096174902961672254565360214505140459207835911392283367787124853681194302189319591043184714450791637427259715216287507520028498039658214436722226356557421651041567794029204384751523959873366392324436388420358826270559623430601620230432347657727839946643586439020551761944914513075668685691868898133530870902444126129718635396851686121680423159456243502543427181124006918779399835195906269066572035200094573357976941171789188691273055617159811278842085221674289318624580422661677057225533281133103627950989057151857448300547442606662571869676229515324931546997849022846709116272887030379630758842699106498370115721545381540625406186509833706809857519091335746216313905027222600731359001461541428198153601583006615711762268564024915308103935808554273957586260379179698069812388033127622981390840267492022777534310849834874100391133532819929056979706742575311647380351412674770408688652824022682263055859154887497974190747923660741796309959943967638450276058744237193088220244734683220401328114556613226739709965080681774114577629890506377273947380253192847482442056482765274628907982219673973453541953528764396179245263308524278791262235448135981514460967483366346643365007791045527486408763214217415363005385169941248878164432801357549646274703828294083385493261033440356174915232171841982033221876343209598255462418808744097738070176378386787865556130052669092479221180661317450807490527902845537257882526513821690400124512744362827261155442236236459077306777100682304340786596059582497843365033135534607875214922798825360505765198026906543161944121541946731913750206360239049392847542495948844221960627563940068899641050645055953308037813465037770094222176829168249300781770870484522683517864459953662987859865569472555072639630443191091226145048405249206382276381326711079247900415488378511733482811053859982094273287598094907102600732134876248827402040590884641805886327715789961135509180166037251504542384467589700985376284901780751322196710392185031246605405442460788648245981057388136117071633233163291659712886526264381622300626067554935348945635910185054024217193521753414181319474893309131759958102345807433873793920931782330472779558046385352866559102966523861840533842865317809425125585240580414782316627781914865199012729224267251918779365198862779751661479134843623093754380235795598981382339044576408065582933858282323112837486822125367645364261747945195250113744301072092480719127559970822491821588024796291384302988627779184048418767803942809676040724487530583185072392752190672957332429266367039608382434712812940061967713247415727623429182837458157422499944069861995054164507234582992702919830954926565225302552198900093530553208650808870220190662927300753283044992603479082354036505823881136276569841819529831773540806265560036549217737400032514396387296792654588818258827141494363823980624165881756164239506411868551460392693336556711546638544960416939911021161528804842246935920112904853200642220388610181635040988903508119166525100310304802152712796417835561361343336300033096045216760039946411544920659070155131418970936136862317593093747527894496154489024390450357580731020331073488161013126519857945726267217816430251044474643955520519313370033502601628778097611204830204834598684947859748855627395723780161485441897912844909873558012832785880484223696854519715167149546374315528234167409363239522790803606774083746229909156799962392985481109872216013212536639676353583781210579878991850438079944986636237010840499598942431237652920120356316106531472561803409263600070157049627915741871089806432552550979901273231735837966833348693765466050020959605420340494822450466684682645131133149102059500086215102796223463621624975545319247683163544819257545191155167573081747363326029931775582171603911369221212069526496320746253868993777565933931137358994674574812537307917640257962050053196542013331235003682201749555592705483538396236531452327723657866984883447503424802234276166968599021845405494607686103098343462592134072413152429927483892934774554772232112561524435090294846905907571760797986498884563581270968448334490210260728783064711006492008674096558504703508922047048814626933776717345768339107064094892605199471182915627718252728721591161904034536588356778298013645385437680947908549323659822906027923303145626438507074439003938337599229686442973339115719797502895420065920963200658921195645003305761834087218792472446637825081417341941533510160343442372782427180924643131621289522087664420436113857451170388957155257155917889015679459795414545361147074492356125988907662420130282994107453819222482039858355094208695632111403877970829177240967029365876701654213675010184505429661509527176821306729063520952471102685894923641824291102010488571992438762723309839699631211098955830686084041348058397970910690764125613198447744419565161969899851518058372328388750245577802489064685225805707594359388619149668480141224225367856957823355394899266016181346337499314945850713472824999968589280117279072909376062328135195855538416535899855495701849637741398315687303000772417376960135502786858632104535015547089122845993589599135240108972229932535638367792614788473030118191423454045210857435312961904267392489684878527600396999590652444479251990538165213090908679020464838608376866203520032431455570874918567273458555301965990678943851426019681115410472048896623994335426661391662487701216368425977088164774713211742217955749684432720688835547865261399688753938769944330763299053981703886510156984375483773152418303385000139551415504565340803738909501075140494133709871119956082768565256365167746163201873396708272130315511554675157115956147355063509628357328181653340731201763353677507959061278742775073678351628535491684506494433102515766457245117914912695706154313776685768624497880536608744076780499216786531592927559064093831473326282176320473478875711416626111460530846217886417202324306698357604897372442284051912010509356731581351817070887897371255242682949775584765398708470233608009806994002272245349112655901962083558077473549093185451920660317193872735019061938187042804238315861355505497332109085124287673274957635230518695477766724170253558157924096534120672824125217770450625583520897084662239629948800847976903868629357309903731563251142372493827102358002426003246511914431721386834626619895535714000931679638465861367570389331620266668629498665278546610530342904568710893031653425418496320112846099875036976864482672870825124992979432697456347725919466822553038034320635480680331954865338789726292036087844891020361906379627524814907619058683406998070232385072595820609313780222214023100087487287823621775530444914074448001980508354693492868698164705975593770509348954840719507459428686466325216870362567837164034986717092558568883864616030934310218439185849602979662551347800180895090985597717593176519619610470645377136401254957109001814719271745794570367055666308982939329026157425141295270483357579549858323168934727658642120670881768232467296074757419557981495714952084204485694884246627108355295785511182206024868894342363808596876587237925682204673765977840197561285672121096366035599041637945034004157918440133134917672153864727381790253952295638187798218729204227311390683518781247896346701306690770827083055459112120132485909307150318565346958066796111031864668625783986777410537297924424436838767298192788549767303897402634925720240640958998152668419705959735658727977659610457799773246730096795488943692074027769999962336310693082734675940531286618761784679743521203312820247704660140911298995940424242252265425595721136961141196585764157282087147637141379424562971015824132041983732454971335349606501485315945907611423293656121400191496112084895878204730404022881668024426469714790419139109736865255773245075513944842877345691453523511851692440815465642085531527379903160810999844478687704949603149482688731458390442942303898671366079566134396211112740028855679954104567852058226627360022940241558914253541771241221166096644612350817908082553952650685298698358732792776489729172846509358509803856516722980603685489789782983874573256176525675740829206120091381266971406198859144081411582703864340196917557963841374053477344985952041888960131461731441546676022104144200067956658486062480795061826107589582489510798360783262886985529234624758422062497506155487986834808725584551495720784080698831677747128456824716184102226375484339152807705340261649326970159481015159186977543320249630393784569487897398895226747945287763678692366870397975029712228001903431594981801146229400249491777290485181322723012264908348494877120531905703943204229345353460812410070295077429651020500869194015303575073054140223131393465053113861480131872607826807326710625880659046934897462443803623047128301160961628939378430909657152073568384961294794283315624290782479414228799210351261144175883456252023584289815873982228952502160109276794713913058917746405546439406302277245687640521086063373925797024436526223663247400294136425361086442497682671633698000338500753842173327871485988287685496099750882643363318832188583141370825126400254282891828178155028533978849590963528759018832991104307735686242647179393773148214657634611517582575363438613985511305415233623874247624183561625773227329939435912035143900109383182195587917235038821519992097434549702754395322873881715903812504931101994441124230932371026865902739733270076274781829493698759951972181202653230800076119983202838352084001561300707941519634961915354454941732851408797731774423793913147062798997902029410653936694230866608513555086343764578102847877089524037302342791489311417754363518933347213618304004733017435437546100633839715203670603867485809238591807672680561357227015120814915108465472233882776496657293653231972245882983988498538227207174776446025252267224207673274108052111559833231784503752336355262174539776765080777933399623927726114915711247205906739046005264039196705872460514787217949690365032756277317468248639036803574079374619598144341979787951586119158845519448753205536445508868727004125207971942074627570637563029613701243643370927589660778320425842450905071406986802641516043429107201779012089499106477717532922765652567919768960588170230130295570079962355269441022467256527802674647619583198447088977934052758835370957082563146606936194486157868201212620401220732151965476517223044055787291551733656928511792860661183509743693727519914993372651082127396185243790655647133950723023312216425345553988538581374961638761210438204949879756083190482933210845840918941707074238823759481583055066836959524660686210989858778903049800451770533577211197886293298283054210498017514030603236743212476870491873911340864840260680245091907935526998055508859753183774667901072172831287636369553976946254311015255827477770432583561658861428604750337229032199519407886222309920916552254616844817948348881660401967475013595424413810072009016935569902790467614944652515966367163588224538557551955053320550100015032780854584992685580663994709025669472112822354486595676678695038588330159802950717272850719836400755497254707520233693573007795669399320113384837883864013428666137685283445046354539523146066144954635660012833964745750807261088696685140652871762877670194007807527488637589178313626301328632256456404748824863343685277584256149236799371992371888597522450715769684069723402345099888730339634727296391166608715610353882557635978335778463089393409054545641196034591204709920174383569427463632698932858320115586606512915734278704830066604267317609621540106385693394145695618690358171940623334664235898830386248027873574013719846354962873836718971337748555653525866914889156481273469999047387264918696402934440835469196454342619698790940349565875449105087848235459261533795860706588970060898708760105280942968414515975714702568124639591723869298570254353800769430250195520932506553386004110997515438695298604398522336259991372646717883322444716115349447506393089104743950197141661817315027817832494031068231778002820557634830182306684310152063727297885590381520783186348731365108853771791918011486606233365500994585692545573039806720261235662120748584026803233544668863984164927908772446075746515768235728894165604505570764068729647002896298388242027529571128594951781240054276528851637264671410444029673237373802694429046765877828622620087250523345948296073674745209767453028401157208347587833050303072389203955627206595996245179161618475567786365721791994931422441710822699282268637614347144209227583608367627747904248037777821619364558890822896504858859567971054048124760423480767364414811086389415227175391122162642823117709705659077036296138777875605447863612406142246266154227326582962039526461308824541641852149185434018207297038257418299289713360871728387312230887227999809723522109506440498206527276672902469218067681362316900942492949402630977681167697715745535012757948725585663748761236296487017816264855368465194760660363823693362490486274168037968401446257539267871907595634837725998081157279085046132947634585151542127168000472142136364454487974082847649228362826273556478673417317855401066592902454967234797716732783527803283503614887322201473714417604909878731886487571216315852054216970470105390857069349779092196300079633081679190766282220476826838731165891490583496286227310410550295260033533621695842739322949156252365398167389825100068294758210256042490486571467224730300589290134249312514851742586646766682054032683866351787639179151333706461644817993771810782691212111402593118304774030520154332489078387304599826847611105094894894657199660000715044574973202890948051852862323785400798558773262834102733114081214969492197428032210142150993524576682841790373513054224160342871655677660668354452799843768297720008286822781083972187640038111882150557787365199133199243963196970618348241033751796859180148175286452523420507853263062708676732778617252631081856627379718726289141273188521269939616361450944205430076630422438718676373546129477248730628584328396526299686266319210520159193359444627413751154134698583040127419463383198132163332935099440572067185365434042751124197747499716159232303553327120590345629986445562829784141925107562672590673408792551539172880839423921370786312064741190694541876454461920635592864714982097343548834461587793190460982163437203466690149475067551469828810918483940027318158374742502237503780729857312829687104657795327982791727886132680186220091441678347833586328372109444189712541893435234969631729823156422357746401706769126641794521805738446583448248525109613398899107901246569422356575231337131216511517116727343246627088822461417153054078128797317182776654248858866158166197052822778382977464256677415616850817199571141455100865551504123952750267827462373932337795764492281249595631294242712254471575106570743594902886583651466135883318567137219676872827047506545926107327490058191179442941250470890114064796151904296168550045234083089249600826796194473952242089411370541336129801866670073320864276044854884223806713969371762635612244494628142999532157438236177753990276916131518847700873831905303905756597250613910234649346803256905039107205242691620458970327174246456199314796493629559163878730270703930199213781557205078818796329278506724322025771502551289456230962638959408205016430654855409449869768928125951256008357914812125551458541657954857808072307511186224901773306366701697995366152474187769924538686596022563743109965574664176681774544543291507610514593391241961839702527487616171486200934413940490123379293900925757279705760831113214115948516548236775321499802569517699311051940071272623679954606074609872368143647292099693050290994119496958162183396551676535063708801671341352627445076608281280347464782312026181184493646532508950953918971188049393520129825470323666695125148490706806861687522468398799482073562650030816388430992828832597926167561827636727527149045637039801091691496266382066308884421049757881293944367910269864333692795250053997369115340693444759806777189984503123581063269286531605471867306517130873448712878913222199945588918493926666955215838263398383042334631700426546525603303067963352469807567452206319372291556734184672177570687894023116573672562988696710352513195808046338185106375390686404017483990543567114425803959211887342076380471608764993422520864617000003547794077933095061756477911076108612344070331966399988791543352022056299100719601937618103865260396023669426316153622343614568609780360838860652084231046835109703220085879853745331052651588552796249935315358943570335169753034459041653488905937121475543652960067854427853428940295508405274077598798471772724595752387313966653305477594381787060920433469762932042039247260656809844674348932280936409922589361507811669236132495086199119914624305061921259350337159176229622747014640976358773334613378992284565994956578292105805937061362374320563440177382656933664119803334186297752048332811121768314822548926307427149723196440712272816005035473863971518540820928473763856416840350423369756615411058791129667376013640161437654241352178724237100964029893753634629004879556951474552364389342875250466952657177172801840521276349776684364346520382057728054708859561238125131571626494111208315855636774074261060798434908180797619751460414246465490289270587948669688099527978282076347819890052120577288076767296985151276780784002174522545473345626241515243255544038818740304533838898487051601609866092981022165855564880779253367929028919945632602131275361153357304202883565014587248250355427700844597168540909281881409461225650611116899850900536991937623375530534407794485681000798081354924180335043300984799490850767598631906026504989799396890311588910952698227851314638746856772921155357217433543466924119001750171315049381378594769778720618311035031975363031872850794563754980613091154169672711107112849989962200439176581048397680434194257409628416131892169574635990348561553971054200023815206597234632474877639775861433843685861493887919364057465678874239299383375250524827576810903851787538383308182587621187145044538214179592810163809986278561967986951238447781011310203898179208804379712752566303727884435233448855012126379481566663307713390963811506425566672060302406211786890466762321121511505493207425860434525689009979177029339588897764123250488765596319983345630687122807975610672600984699618675750038598147105987698053021955606199582609396751712508812920772364407414554404420586828091761778546444344494107520010043861367487302960176456597597070106323109450994167308452279465391343981839753587593422829887205302601250736412361467875847407643701427070150909176503933419672312237305456142900180211485379885504249931373431553874499551082223045986334740997475045726752879911534709478492365158766433113762362717239128303471113554017095026006008046186462454646914600289388490200593258351886690078202510444755523987918987504209777663244054948458834878206753827462605332749812429501220670931565743872893812490422870289868712441955033821780780902414068702595906460814106022669490798166131994716879862695275668606534944507162755981231244297338232571525022539780190733837189489971140436974819329344686542186987161025464876978556139912842654660599876557316509030407741427255529005851719513766424093970377707862165558150784614939151404932795968267412793116789069230211269665620773369109310050199824449560998943486356383397295977525206018373661967056881381701035829390662828593205467118724412170610563059743558286039513273935767830135968898719736750874226529689981497813462122221929444046311469363540465626066767869163216163771620226813070420427189440004661829790099530605294704625137316611255600391416738062906392862736243453002776475966719755774042908500792443457793844491230297864590803498612165421633944214156058946131270740504773224381320140507166792389788786721048004603386141600591561094320917555207582406706270390378880387515771333031127903462694847075913668866956296085192663960747990353254731650702586326689880613537025406077943337637677552294266650428113261086699742132590741732920172419222780587364484184905194192709983320029209754392486716699078406587039890768236823301062103431665107556597365136657104505413872841842024038738976469942374424870822864982208443058694597881768909742530258710700447704240690361281219127932289740585617624276662092730665081361796381838250930206299840938285768552181642201011914295214645116269796183684129968789900519029348532514579283009463389376964412906760030605948976980323663206210940648513058228139616895907911317618925930563472393321125330986314339089962820459092716705612087537955569274323753925691652749700386150781477251529763077277420219417434361517718072051711992623175214437491554973959851493986062258891971282242166368128929749069071013721342874356532154474020782557731386158039297324588175810761017333393824029174294269655952330528135620691528179663059985222592793012348263733989955300284114876639119745348726814342649355651412130376290445385910042984907021034508139592044103758752030730190218923863287051261155851349829886414885599986638628824136346194081754711955759399051515903717441652000235197059061126979822205355626342195668407188251139810948700938284474267135830606802544140337834280956294497516501742707376432090133350964117147753427358599083933811200459264518189294185437663471426666987574079302335636875656230020780973786564037018822868620949064420476148822773774866349556559623563477141160632544870328402955789741320710484176708582419979767070781600195476361847167016987640724480054561699081800210867716093217276968339139105286414026946842952178636829221941523803545182366866907192196341498560925761870124041200877256647381185326579219623092235643496440285794417179562020062512872918494476170517892866657023461945898109150748044008434877603704113801829146439822877572307934138357584923450910831668577216439794015873731852024096149497014111483421312845688923326242367475065526678789928992589658528198573924809128595424039096680406928242402689028649643926203817833414720046735587824377348011394363673572854340575096805656584664353850297815178792496072958284091951762332176763008756907640803306671350778150861137396237793265917568420505343957771925683032480663484463965257114471451950181724800115617706509081449277378900902359195738560090520015036759602701839580452706318697876031015552916849293637583437395932979414459472743176404133334874068033647799900827051547806604595707352076493173422585243958586077537178625508417130004089371831943535083028102694151511855050448933963291066520858452870950583053139003243106119391419341277081803132680560445944598323074020895191423591108553751605846706632324269595063506406877300146916459427758704274786158177119955340963157540084877234888661487797025819996777856401568381893405019496185741865421970886503875323157448923955009606047272919067012823864286697236593247980961626913297551486497937469108750927968099040932064606789756710377256888050777841599239120102334106867805744619170460255918663193013371836781204564956134112934714991152726267088652174091790507552816654636395220506742105731575657985429830117097099085990616426241553274940849236911256995351990342563534572927503923766894329608602965150208413659524370006632281824322208171549032857526347240886252327571338253945434115880605674274005831090916212286730073361688534106032477913321360288027610748478292594766186183779746349623626749779526965902210581191223424358706449161649240428921029934525019999383983223857543010178430044538141462360405256123057560610053199140111771668794237774979316213889178754265395936956290681408037378166266174457639932439960633546873919098772165468125675902784214167657426197784891480287752210539941870015292263378589707969702816997354385925723968467860863697505202531210464075175787620057133959073027507860781028340380611554621157248617585798431789456182355978243913021062530714781268367754913266219330222229119820883984886418174631987162086008596525632679894665298134386624137303630388927507726275321881700159782460573825963649285095161919998360844439922896226478274566387483389367604848314670327031833466778467901987375314537273058662795423170772068982123185729693459001035116830275384492493178864114729381966390381364504171078435385286136429409699095733561675683520143933710151482083531915277897712844529244036643277338727492686612861127392571640038685306032350972418478486066584925586961289983773593571107922341427383622487691735038011413245937123297488709381827767976177732627708308610057253429019575699606252722712116060747991043192279336332235020739932503973483584603372934283390961402788647530962162967442837588604790493805374206836793774634738780311477955994528375283225792941236359264684028419529046423601847308355456324334594142643162791750680138060671592299142241527716890332026004024844081984808313495723706860851088184634835341234977527284392224743272746678462144391414479830186060970441863795841637931890017910781077986424117459267181477982098513721467709409589125511798580588926051704964623568226084839874215638884095113864461269141682386867856454964965991505750392845339316348277524282861828293372387933195794784268219703359490729572126706411586844814415954918169734749705794274242790408629503639813578724586406551210982630478210891260056391965301861548603770230702021082095382858119865317111027306941996315450802314179162466212794055576435778948267967311210448721116812910513707510603162845138435993456216940248162492679647530484211605004168625081582237022367544637291288706560535608763494606857268221101941300521369911333609915276595951652996962961523195770782901072603010015990780209340554395259695856314977780745697727277597388446466889339242575295538684317505936257139135798850083030185838443109302273081589011351408061742034293386671744595667797559969186813151827243485333288384337265972042774834839984298926786545118355735654452288717018701271735176191491237283848880551775297563467952158004196890637239776808499437779431446403325460750213150505614710649206853799719570305143469130610745728053901257431723813156063247474945000795780417013132695056252428036894042572695311812906526604813342994485423082282011729009594683165938280129772623900655934187012266776035663180097488176830351026640465161846998538034090682752313876748276216540719122127302123155378477708649013260428152210947826650140967899107591537598368385735862816619569580544612636695114219327490783238977830631230276318472590552707395470073662482248385904551774776968504537015232073669704940540371755402269977827122117495564529835076727871139446954738020886833519167182504867502559519139394944681133339355643406969878703407627973684769682622294034532174509424333509135275528098876159653802576334476677899957761687899976125056325975006682128938481442691263827294069866958219714884867333432266128747086029515424504489514475359426684053889847882290524427885778421800428046678941328324984899412522674982303943837673853534338371652434634528817240236058024175829336840122794585611961108745697728986947780844312997968567509151849403756750940559812038021355453997193570921722037559808268925366591196174912979264915182019430868724732927789209239038273366090013044771270758082702467620616356382431098947925255903155439868276518096612828347587635539975362840717872487422630481795533322823869854014722684691922053445368325137170140261029826542037627272114376380656975219276626134264418475623747138764225532067151713222723560243167684829303358127699617542386233827005113104162416906847837612808014263527703950404780884996933507663774400348005584529653232165279065818292351702416227155924924179805235545123292816095650864486164566463176273193870134924326830932564822452443492724397855778441355030444123214866946546316642488116352964543686332194710516773332283737478162019514887801688967372153274391749312530456363074908060439598645688514616809002155256812862406032260966048430181818619708124410702601654289416270304152611068379345110260589267209913807141600954828384736331219262376114497251046858476860930015891732619057821050056960078762784313359590028370676071101647565147700618304673472555417924880209204816133948578707904776102433856958215476516536209040091543977048822362942355029229791275577165768943663024554586998278294009541008198740055946607685691845058349518149919427857092802257581870011302540977104853682691409000110292662377000415530665099187964555671435609670294454039492509561058847565665481998559692934424801037891312551272542512925255000065575542106971771323228434259510866854142034996316417572667539112274856208467120424428365316772601112178508415306617397072564966266661062638106474056150677907731758577661250708406355702665131476475825508053276492188136054600314066788324724956999157260587573962402522603449933787250295649079353038613457038449584744277216853170801177990855631785206320465431518004266909409223567298412916858099151025466307274195969949729754250429475314736571059946644502575410582995073190246435511645812253598623151689121361453955369843765782355283004450079105529749678842954587341521261142275491592700055389175993555069697946834651128622006734616958063007250953575391646492630018048552948996255109786702407289531033187749129368420132951228497256412365867654875958087968765819113154303175624559340759451181871806920145352780146807767684400344501582318372642158674964699047701177850466830199770653913181064750291588019713039153157345583716227063688780572291299301894606687795116619665602738400776900241282887281427531240766328847866418573220688172304148388441340449872063121970286303062534135277791933585646612979105818385436114439569139678548014149857823918820157012540180120290877324158680957395651184718413231646824541538308558366901900552789511093191704103666034897923894170862477240245121515350065644144090637844917231519699836284278347982680077197379609719401080728965891941640772765143752966368345134211440512546500070270438820842296398185706994523593921285538552424073707123637611993415494919250934998682904264259451020923888251592371857254763617669311053693662877555524141945589034763073975876322339188482368145013841627413638830842472403407205209817773644044312746238492103199732995587086826291217282514377535857948252157022224088701524303806538122604081477638196299533975624911868658901783524697178266099003321137559735774811790548548177259398478725266776775968580598683007551274533825673092419936704733581492312866766323173930770739922933292935895412910181218514754828257944658092892174041350900019886744535055698944206259884402315193854139257499516396995582019028229513187958923288393982275005749923755244605031167203671821236511110314089347075619446728969958453576915433601368258768977208535776469791007148173659988720130577995357223360406517608554582666607326914624617820037608185155928795161427163324558885199972437356350315034844394034210963180874772514940245200916176799840924344909312721135319889273423693890050868508605940512250255053656440363685658200790299704284767891156531054573462415167931554641527834197154270763349528680776550650464502434379233955706165958901333832484709289725752822201517571674979637406001613360148985975900686267799335597289449048259699324722665617129124582001363760399803619713023213330969275020940660054274143076420545254340867728333824163552592871559179938163315994151606042188924614921266452322583937396991314998901653052855153369602154294677049934696136819875412260162812253824918942228751373918248726724909341091518529405226201082951814029486147280769221651099727678144508123130200060736573052843689219873663362993978363686938733452743723352517624851997636463211291993255859350531963798151572904547843874479083674676362760622427947091594791417962248478398981831510324985881317089741774591128335054046486971446720533688411893372492464388395206797124591459622358044352108139964771478822044853418498086140230967419534978447344242585554952718603898019443212017719437966989970834263553916659166444198535333383994366506335635427828695805483448976184255178279862970862189708079167492957775823702600605959102420946937987836687948845815569228087263916906006333169677770982566498970983574104599254341970144791273321379018107390114539384190808624814886538707931806058659763732813364779036074127154205437191601296086935421315796534158298699676913504189466457394248589295245019910197110133198105739759995564683919726787913606363528666178592395472139776533026328595409391698796310178932572837457382086417190264889273956195072169607736097029381661075938240888343924835932481161623191208246310027126734800654490553455320057578704168303953742117413890779653348782643735183406697651630470774597133226696083881999397423154270056836363921389135687423957423124828067880937036532117353297676403878901642739509322541232124106154370741833882715248723603622741426993329049595005364140230480427788404281287897990590701965432602784992706679872607816510818325170446769785737751370909964705605452974031735410336287461296212177058879927302339642629343197438212881783269478256479910196399601911550300279816721602440240893794063289640047369754371265237638028331451305156888680326320844419506621631481178407460918617870850046211814453453434236313840442518388335468543350865380715913532390125562023308163736135006866377260714305131845908109084178304568932196145972077297123586664631821921982753444354410605538118518184230937456393947131281759574337413851029168231787394508763259318357222130272161328448729701128281785350016146525355873490930788266115621922296595994763116826662608040016467742592164918021403112188758171911748499907913752602701488051143834181310391224932678500294919309697455027189727224625747399286594190808704804163226948714890684356563528838140584343908449680577660507283190621040082937108933388033760087498791039235308167381192332981375503295247561493935135877407247463081647615072661818770556443736379684014471814271134103902715710238440766189199325826627090085253774285329661863513677736346085054151938955669952200724653191088229445616084924938362007626803999471952722677725646953407339321186040194409660355232923834374941853208242931154118775809106562338648706579603893730837765773268051469930839445548894755259871368442008752365238236176666556543635507181982844020922230860431385569948342700170030759072751791761928832238940053813299944804341406628292748276908473107079028008713623329527311306345726447051761368086610884789068744092382573820173971857334506505311857318224505828093703904396763217810267333356884838379160879581922734426016479045967481123964262346297684093493858834091184338040993281725928228868080708064920753094398955029231828375678950966540440118301557267337294815659132718072418528515646612537452777525837325500622528962231736883232873602731160231060976666405108244764390702697726342163822993083743064428363471366543775615775734665569105162271016830642106565510238823318434076240991554935422810322957047862552065997920085910103750335150685205358826984716209740548155630656446040296277847968744708208773998168299994203307500625293250770954437714912452061610367616184609562039010826325355550160669105048664270124839702591954202351729568451773190720797292878994144681385573228118228877155843376891009459299158720271422076306086784755446229883093281605745094986615439811321430515257358848048740589148084538353560130256520886659795150813768075022404520336070877243665064561021598297468452861921492175086467874718561659325498575147048009255464006938543878509068358907980076362062158367053104480289606265498307334432569994079814585696185860558880161987580584315744898375352870956423628954710940936360156769101642637379563834416655261699165008021474363039378977624781674644439412110701039129692045657678872409827972933035253853743527321575223922940634143336145673989494341345923166895527411185207670553623624124382235638015291085941714102754119318235587053477053315672579368182266364537734314040827274190675153476612897780191210790449386074025248624067458604220486407549993244598350926976514135892148153022069258089777635643971546900453380332633061554177421912713846454225556852162117154045016890999392037710904655855646366924473869571600092984899095529878433113857345755741506034179042766256917611813240057739033929091745265869244028539007789298815820702525205642891956100780167813335212826093125303050553209074611473522627341938684755391045118465614219847758436340574432015828324006439675196257076453740460499086927048163788391740424354061010219437082465225492107256047861038919931431923017879411306504875976152958855323337992267432644112313139745352002980316509569680254270621083033691666516750708372453962957003429556157816800294777735060265698963545207765185678881446103017776357503953778851430686548008392845036112110328465160862368405470574463028563657047252322823922055950427074249431730079652918269378219112094833854853214933897826050466631117905066583043600805190118861978218801911215990565375259859095614382469887020522990288952349079624137755473707711276554823338363711521048101579883049469580964265435662965927157221086402447275924878464102934349338347811142318910980313259788359173292553264313164785900758496685433641282800302681243455227845597838044634430984787854721796735589849499537083241550253659817364988880817393455550712255605625400554440924058278495833644702955144414180648681759449701809589325201916765038976302904341155504379281715889141487010536555099119055935378808484128000614065074521288330660663017597867942511206496378167035631916200685941686447265032396321843738989749678356670634061812127264776283395397596520653795156387653854733124715292349625908491117161712984480888393046830615040531706109259155200411167588457705507069945535281008406286727234553037010051178274694487260457012040208391568134161890362284439627922719179153248020935535724524007405936538987247737870280993059550001615588730669761348626661598732359642592982177497355346889706920161515074280337111409463581204482351011120566802653416819257654465387732581972804082050334665939708709200014184909910654634107472832213062387522685187944914979196111547417416154628172160263695791045865680840828509581736236587595203565586794705243880100834008301138197369112646450309559253060196701682375454308872561912964495186462479930218705276611700163808762285944272282016887713195308847932190145484948217577549398555023564678574481445418359043731815720739816537996237981214341735366678171049036066095179474245706012776644929181087262077312868046495681909814697026893520101710430478400210361747721856816960008762685467965053025932316638562249961793565508820106622992321707279409819279681089047140515825181218105922997920440914061983281279293013637784478696555699893797284522580598670585275787925804777515762045535483877773325775105309125393192590804280471244650697482204628849381467684825747141204108638225973324218877125896352871649433345671486808351659792335369882201347569212483725106866223973379133397356661169210137759687079918187090239200831932820242098872325822483472666019045884189520645231466592024165015830516480321010265909186080439561495586919514820894841426560613463222158959048608614160100216584116424494815363920992976353832583347707128524432203209312583451992321100430990095760573725448445738654131383010405708106251117820205399291647284690494275935923182154580803790936462790066381496630647546490267050627547503226066445435976374117787288060681859767943118822190852399279681048667736446701126620730291278587687256079220799400773104246840990467801281732705820529901380091827864885459987112751572113908671472748358450642384865380038885355477753053885476406151363688960979200038931256459665660069043484935071019461014165360699641531721595646946863419028298118723999503232436525749161122772984387591449303351794818598144330692640078998505474697726620840544181750323437507323054872102160640298288814658331340427536116515400628874319592307474333173834641099826922725603032972045287724394189350466079937929575652523841252074941881926650386814802261856504314343612051417604608928073534631823625179566150550568871244355305698403363818401784477190556765540509016275511987130122845055618095605458798102646696181194634003008893199075984652617373569411474507566930768855713674763657200804047008134692970534882222066828694761734550998849463939693575406460131374659641636228695025711436571343132382891435232474639666078872422178304202353250446433225803288835894842729074518955615877627195008577030711185660467541027510071175569980738576542659962916907454519897139784532714378355617684900091412314722297774545137167612835158106984022446711273402091222601325380037198743883730937663009564551436316790414224231461034156188546630769891022036093673718264217811961365129299937858695155832825852002253672659679462237367443053489501608134757040106029329766837575434642776358907366552311897518147085476913409084561100843624519153599340375761659545973616834074702670526355794354081928059579738545814129239545039322731460814589483754928201125349058907481200950069231248100914045105297913147006756510813631798220307377126550113532848475353656062795179675420916600980560151086592528340319802098565483732955071622262600691468369437862624379652189879858503233152197894535275548969686331846292227336928560731247695984600739105277504544417258481667515183278546023463404489605724994454454842422803574749804743178008289330318673083650271407034760442226804514795706115664166986379169872057957842321946539853135826791042438519785803923913321789363090310257095194396012297783369089137157862749666432887609965327735422100791234671093425406068307172114400905734393492307487445459529541151747114477345523546872548723698900622686695538205770618030337826665201499502903822626043818657777910291917382181349171077320173232192855318754314856205659818620901664301124631138202726369929856955417255360024053069897297588061581978659386763866563870563522231810922197023857855849492475282092135515806235639702929606811056337705636164981317086835273250735770870986828858032611566487817295067751202452855890535286983246653023656353391938404447554772307086423512558740565984258427759703353625360588014145454069003658080924366463655748127945007651853366821829491185560628209563458538671400179100459777136927678534866484446600100466009758730414543350161892435042337725706523609834391894635643464638338131256499714159518133819042420557060696574597341528309341545227375966447530930508255949181062877092944316891312760136175020458751006949189685743882579783253577969249919204154297275187619081264495409784919867333938377082741066670715214543666976855659310340364164296796007426357205480553436576732279921301622350634778560041313453624586355162192483969829044982946556747130530693650929809561877085314389037669292525366839852529099313555564277351096427426178818155074498648844422164684605202598370162074023501007506119130449837263058668031584283296241437347289487691637287959783811759876920258410412290251558128168706834970339809512959168452588974175013394256944713244258371861575376457902243719032780989827638112642803404296732080061102847657589996107143959678130742257798912877578918985972443862952805432590363945157937836492399971645988080023087728568091349235742297285635037456381343345300596202049452669203372031758781450754420068858792942274204878398928225185091119598428255975855307276757108769788848211856665938240962454198512654972569945377018914915503177844003409651608799452890629332626245030638345020620186910074080186235800884005391250162336539443046635366619590473269064161294481634790453121936264711397844112672659984296641186959981525689102687227501022238924370932865704325288144057479972774061493939722049242434444994948425783233211125479404768941046742139575039426229039382558463853750096816132582163664641864033848634156947131522756404812603618886917564553762318042824126719667978435474381834162255054573627253114637345849862375088756482609027049989119181592849921994092208286017650027421322065045307434481193974409485336612452638783961676645572988970150004930094233342821760370642398001757379961029816620588782794582311682154266628906635210934935141491814140500942078820983871206222043747840899936485777236213827605216025548049935002944235315198513768648359765974291248956641167570530503504556522561462363536904509188585715859620501484330411534804777822895764355804395212168598880560269670061938282755970390739784123471087493309182845044192952472185279395664206546194391506001662317861434677408666849593535970244255452971565876032388203629524924622146748775958254946931976502589659077179810879858181704623873587784312154719917748752118288115548701824178712532568156134262558267504501727147363614698441765785436322499536700518047283359168445343651901267765549024419748681669774156261038712104171906514802574815735292330144850963127736738621500793626236189670463548574058692105333721389535474551248707303689600804753592751581589850840203854274944149365869148722132749342415207853571316758708925226328872478125096344551971857923569813147001341109011763777535302277737730386615863420806183843548610427711456047301887040469841753966297938974354938745230988873283483625923285631185553524829300691011039568315787705512672261684605306639527342898586018673233485026534695356430327202990186604095604622163573809549719455254214140933396545486689326437911722906159714707147109329914752404896580976482956326769858450474121195713824086236666551480558387106316704597844505554357206391381424610879950035012100288628404397881759933005138689735273597991293479560193659133495528473789286708958105844714925554959653251138672347523320597752736911125398918748582926156288015307421430241862328769083785349211241111344922395926932978137629584569019361537008260476793254122572736147529392453608905006482007831837279279489988809221600685109084689088813369772636581858270917286404346731662913838592245866243605579818244464514636317295954823638602441865524532428019614766760748356107790314946478364202812011833672121438510601162691935635534558352324659203425525503399417979222229563857606456396208300553868577753674271040544087116987058799957156849696509498553394693679475533723625438591605712563255920680606145719917730427806943163889123529299247310578347586497313230289424152990882639058251354913379747693761588616553511401239944858324625730310757531377233260459340165752126782599542382947425605048501076767962897442747631914604660914153401098514571902808249777570558801194344557178540315854197894388074975189247848229861568813381549395308123881387603305098802588361242428749072139608793654006180483049379912882229578708660532215265751912623738611623133624230389671493387103808773442285786334822856964648468660427658398893906897092465105584777369658552510724824892350509575989120198359152642575402885175031727626116326222629401764421097462250599900786478990777379109651933285358222809187879774056513333910068458054513479669074032735535736187273047624931543795020747185863064756080503639543492767265580770610870760102917611517538212687559346801278933085668883753416176049058460741065356370568374175486004320671200467458820672293430290671473781451788563360206568530509258677056755776237831322543325101846163424870025486806324184142221189127153445077367537341842502395248142443847089585014468616809234274929673615290648658185725472370376132374066477061279241606163632582153890227734252331689430855002598498678123567227163766594727762490376872099628014922025701072376964922138827118034396116858110022954107511531908393129818574066208990879286890217482508941560778903527457050999330308799365050918399540374954643513980216982354795435550538474421000026215257612147667471253987814914043348611796737912920240132951556716295048001981661821878007414924207816833401427997172346257341826553206883009154827517171509132153840451929004207644275702243097378639976829895275971298148791410891247468278775960594345061641920430055182086624614237613038663304740327395137828766519506877250915567024895017347394977041571966401928928589533711128734502729823290961500216419935296307829991673528051734932714712449539589846359987130156588209649726929181969566121560425762955597394060107857194583958367721585803788387697431402580955996149605056251907750543494511002118548428757957756588992425855448948360509429984041246235502378927965942049099820383850494459118156764101938031855673669142936793525594482216839958462171477240303771825747557548140303885557102361568801207249693182595799950106084353003730057662528078464025372300090981108790545887221061652760575170550797397136388549438140214875780913633848046364835614122715898595630853973127496216568548263481808375479357970025501850439774816343986697282375477588533023506922587289046890487694172323583195690964274035910906105016212379238008693103637960330719423852898380652166617658132078875340100724895432032874801583626243611433226842692566924473216888985407502390153800501229792897802666823235051074402404310593798874072951060929330828278801788960546045739894096978728963042827286375712243459867338698360306925876209765731252466084800317736041249666673534672510799809431413351072685296772724261806340706906009189840130991223107874005948010976351753084850254805563800402722375438039006234559126280354768895555235861099454319647396012822841276575786215594044980139636921339101159403109451958707042012427805830534111210503204067381937672904302970700843229001386547335899054268506475542433768680803896605788909666282253705374978693762575672655885881587597947523069507380087470642445713940745702034026496559106283828123049495849892961653249813137826505209634666217097850611417319362769393460276974462284128645609551646906057652895543194362632401940639661352952178863457126452348634777250195934741796653545717231021929242185916515329954949330501582098681155269893790080906145959466265425446915322555609488002373720428375475662131457227788498654113988112864839652416319389216584125268459524042186859053706150708136322766917566050086429204561472821194708996749028592833582931523397545724113207690223281980611759723574836862601199406601310390345348889727303384941624105522712189523295739316095061477544515884825683930767199689503070802376591458204910721705893852752298940435170763426405124434030351843309966589531597864285617771824746765147894646242929702246471237554773445857664756109625978753490241087254894673158789234756294325883269419040425861882560620157849572281188925991904309917033516242557935897763148248606932734901704564180741301849561446954318676649028196961152725192570522789505013706548175224863527822966071114308322641450637761021432436949576676767618313615259211133441135047963174846851645724278823304632730761749614056677436632644591486670592205967300053358679864595480915633702364823521221570414796674574017976777603793419517715849680484983674039868844410520983284052441807443491466751917305624889338731930687084069935024576910205044821573267044766285494568559268945264693006416068828483701561991375375022419499133733574450908201808688681657553022818744109146036658599497942294288558487983984809387798612947929330134628328262337502825783220135538640415824313355852865187894467610285167421948258183721714502226301222637279409085789969631293673300867886157319410764562289847041447089835111659170544370922241189285117136712101020627087238101110984099156185451730460753926814696542261871993612357533489276071041308873135195269242381464402810651563028465849366179857478478204648922075366680102882239733826782941213551646965634915151708843509260014348694367478901886164296891732715932214049780033880093694718473913401296493545669681925751387363389165050007693098783121417430153793873822137362359994130728088182731796906552855348362303278295167528786007552456225550219239709335600253632124550437554652571910737721924364823136004131503939113409402750998055024306291761989711884223690360690639328223986940771500092413705158559781244923606043918464350697349616477126447077703319446392796338880776937154077926964578261398873320771716120550877902950008788931672085461940574643318545634822616446477193961698020199023070801146382954326994983205915099473180778719956457387818085098364844844004490915104319730852175243789866608532541018363542179698265416692596111163015904624514098920210034958630398507781618200082207657212171903112032645528104968724916537704969512922586787213259595971212712160704207642282251971864121601366594882321094403833639891051248973177071758287570154944206937831504767048227915687479513853576846291989107976937872162369064811234862826957685043953693728402826508569626859051778113930747097257360494309261580828018687447730504035252049534397299075927123320353527200456764082314187157805303727849475933999560368928806229150367879628021505381898767208279531065728912441251369817816073529545714383341222222267221083951747203239920646842674580828151210533664377958039961011478496457562257993157240520656899121549235867325797393330958847530233885161694720333901323369164441164604814067450474002304961992816070298268131799058784187532156332696838581083396506726686956720494893596609677225639585679402273979387959940668333662571222355020560403958417242890146817089678531610224522756650368453191064016882933917490306799050624840412761241232884728911860662277889090485520115223514298150929045036500708781497813703344874679284817280998117262327681255226970201613613225592578764857266962012871490087085087353577722525504151259066779410035065760344121030112389604960425135691502683542267472817821723143157129541451305513871909693287465233009231033599543756617416450668000207998600328868233263238438184161104758449007327035646694411125708257947479285757880509672210812140227810020200832341131052647809507422204763261529886667408885046397041169997892321784880657475311388186193117557904026436902594522441954595088672938934696958260463827055500612172305051289126312887317355850701318435728521567373604367575219261694582087772700936042641752843548098660513588910635229227722842862409297135749947554319259416972328232861540211609023282329541080556699446561113585217224334684244546553512777751736095078526982568797451064400853229857635838359096197681960328504809203140898430636890209284771265872808560353659078889824314601224112751073852391599332771936934014633601935992256339352246679769348186087290231483466163658334315233410766477434294961458668046848114028101836851467655886378371902907395021989727185584292552933698647824378980890470331110172850068655951441712267417433130694666886123344753922088499033176765305395279408967237913289630372782451379662065193551354166626358951175872620084858666974665236549026876595534253137699887663901290524549202895090670212081422505053207146665558352144081075558539151705128174429401621827913547920246936137808148031974804704798097045900245257009442908348734960216774764920067752303252475424390774311122097768233653432401783861829804738666883804389653512072551950832596027363142673896785873020319922942826494498461722565299469318089053201082477911895135526643614148156376627734235556060044888191261273869446833507414053547292132210987386072915631754056638208831220806043046897646524780630549592286365954318786445918287652292940152453066057696806147597226229863878440171334270060148159206679783238186670958706351367730718797107815627061595801869678466726057071318638994367007269269016162917878219494189194477462481993378100536974426090718956302462939688758477284196527231600579000930109691087406368624481911521800178762567827189242122361658981123768017000718019956420616986483054586978932469480062592172125669321594723519586900881790229252577713558790397395401646363898394160077662498137737841959933717705372437766466521509424596574778986480083270293895432767355412156614938667008227741118769687280460562241746218359080857979547079803274917829423197440214421736113757540096909803382502746661896389554706556305403497409245008483469662384319669146415593123042607196585641394700509840948198854349848092094646202911041459197814004802269293311324679913408479027106911525636741322988846849724596438815272734527917451334497091490583381457517573102775484901906442566475588606114282483353767959446932561338652528319100985029453553943541850901460520643460589580448000045218544554759264483174038302183102378519046257091256296847612873098838452352481999867146470131086127624397156044153616413485308443047122384614691799639748131929604038651419848945763965806201962942468255075479693289049271905158839156893183965584969988307977859001048735955254091294917455188944140457325785436390441475664731709261423102102179049327723533781725992064986495624136192129895770846323316981291059174020332917400370160682756283595726611827164210404769862780037749383365263160514077132782122942855230433407112206817218866472427016310217265470835998209614000428956628829545817180025984763529063194493889475630894925477293990587221971384771889175506961508341476224605268359467573721252978328706745570578957495904131916666881946227439917422746060044396255717096754692550249011368837280130576923276154173915643366740334775791662623493271805714855848653106220047596230523153371309195027136861415867841990735514816141754470776900250011077872005597177455597852639151499751990178635646624798381594317418614845910748133436893213859170922882055047958634616493781529163749670744267500512016675417867401983829128572331032999951382225711960111614396823409451526091058693754541367207077849485667530902535488561571261476190904306942764659232842212794565943202670611149057199056658401578572063145184293069261717992753905319893045493987009978666059331747328103509461729267552490866313852046298843054938928481671276645532656743075369179351439995163229326526999616788389749107394627917353189737272290056187138758277729902384522283938455705661736094325774129334588213834654099339375374085756017438385801907684153729184398035028384382389188200639989996517445266831126971195034111070063833310013704438067986259798960164304089325664411637731594377125707370001060458865358031357817757716851357109027089465449884492489546632010579224932512637575055958785865774316295355426167604469611319465296568682770271001938648251553378156164275624455339427536480742822840016422547616824751872180853691473771576547684377960967816273045974740782497662305878946212594659537957044057917890307172095734647651549301201321698501728841385608687478654102053492832839707996646001493010199289279766694912016034564244684542033985846413223996392276646355468787841815393498355851161926913911726770330868754302982136833876495831025149662381007440008852593210166435605635098169682779751868609856691945939105642441751547391968277321385982850921087736753737733569509941910318949109530944418700120422984330192739041259330757371486577397611450416578923007148634680812942505247910293724856060148215825411654384746767171918221788121705383077794613542458593264265749226324979108739527047402950048641547222270483766070084826379128371140489677646669094363894723950959531415807921296188585658054606756099933654248138713519656665748854466196145356515777589926832082392814230415358431407142884833744894632650191610225540049983111684757070740214739076067902388902961535617590742226520774451976614488698977774929690729057503384858633556445437098485645703567117896304779832660637391380152434160323495845546738409553595118884707065170744533245083543167615793362683501706420922475452094524357996810452291386865794674424386067604318948621909479065193082821190029592608105738786222121833819151226732814402809875090756523098465724531774545086508683442707987996811602541513191566020529613326658767257271232201408844253692594468947200620981339684295861221332383907184322786216836166224868289339382740915777109397570734473011194070100991690297426255303020538107904543083808380133249691201884507772686017083843503640502396447448521950606083277164417211236061525211426054872787389213247551387745070253516447859316256789111046357622836180537429447756808895406578275164507296034020996255012195010350969610299194739567379863778206186356506855826787385353782174132534236765937959473959276993895756760385385275191438096398586732864601840550004117139115590912420335197139284102392886786073961813810443914374200131851629859200970621539292623340116036895330369356977265477644904579307840234580239570937921711769350916086875914396948575374159624361634360545040579346492949196403855422976188823795139492853238832993085268026599888004307106606052915346738295357452664597688541985628713081166118459454587098845033400368285511242092402822543494898537414960669033974989915054648077965689438485368106681513274622812580269417470787781405532022378461842773618763688522899136016180313798686211456445062850916323105272239006159011221469053242246903637545917746639508089396447889856482148769753307049337157615442683525535571176006064581527009393860881504019778089352001781207412992992614497097706087274814027653758746362084552125016993982532888332850633569973860305235422017687270734536241318038420082909397160067353694313027993556678306248936210325486569992697007623115848303269829307232798328191218058958376412056636065081622395335541995179598296730482332814967010715369383337852174849174218284747799877301346317756632205911832194503348134089457240286980213522252758760467629856715443692175149846945396597497980806391661838504340362248093987874762317081650126112748876313289839987247243286422082476955314379775432177907374631635607501560769303927415062361732361469927493845422474706397829803625370509193424054145087737993780396644216224635194124931759751576417200862444948363833191365076953910665673345496002000178520740286563858037587669583288899019988327675793680060589056310970068285865232999247343642999296056584473857354601479831075507191748142732423966392596189158063262543860935071076522751619622944160003385147191011851252700570723556495305777815548019744173909330769817870866245076555704269258763602731695811912521593516740351316003624159172685278022689217375184205735242273877727571547362165116745697285739230934506912309951041029894524959580934127062380292623886548730610177094779293372735127897871299999011420205023357828251352499745999355477348164763368951998999281731590206824699763274626955580362096793085764302414398083132429766334562856753741338966204816772506521886687085761501247400663608923524935308844602287344985955344234854790763713272707428531032575720639592461261086142319560136654395887055309176509378240321758485872092465691162742056060781766551523544656295057131844198806784251115113011801711956537881489849743368366697264718792009030763889386964762575914187821595468309421003361358702432566945885931262436757772384492045920611836972842238510202649627576178148217546753592957334128604344731270367856156850481201372958874760767155528245289448023709630988657094237063303502842213072813437090858649072097099621085692811196866276201808196694984408408336939519295350440425161313171336200151798923379097599007823553792698737316694449848707778608172173293801761845278494661732009311104180944509925667918998732800707487301868360865721587804104292126406235096372797934023395207654909585381272933672657369641491300052851025303347715611253776410976897785338623972255779532754191551055656096684373411897363240920534853908644576641366405573703674327679798214736231139337108056927278735029119123219429786863298356598456242846506721715498321761820193355684258703020505517122673588444212758599112419243809949617118995697600436312107279678954809428860445877983081077178772000370111511823871208592326809768215079193192024170074040391614229424908917276850304674445101300082211939710943154313652021353341798822552123045187693684283683707302405450405113446917732187515369957973713400365166202118400145680184313890457669366980274707140258076729361301103418268536300693075954278955587355387744107909855024022942186505058356415125634730556691109617495211816849643149322446828718462536562684416485247700984500448542738153238004251326418882278036134247465190753318758933806822448128693331800336047187809869846190943107166927230360103051289086369724149628554757636077126846959998860394699241576025203986452737397657935446875935617569053071808878903105034424306607915379693339556271662881265892775676667941089895834096311187008752065728034828518660845126829246737706279717023445916016725108996600006271879649807096229122503494124678885346962238088319980088201366355693727958812548462465707937680682722586849503485549352743724274065469410702712654767493558243692103982860385049242327812808307329682428208648101999966620720439292496705158583477456575085976318078057723842409687764293513833929889331711503256008894776539323843778689477202081510392863392655169375289946188170088589025204408592546567626904438848438925281836156756462803959747435187620472166060087894641684070790025979095486944703528877803096260581361292633952838241545146924009226793588743357288449178496901013955501310078722809130635233174223298620611262875081277789807298536046163127709577233196725455587349426225057581294950942543956721322791864868419295223288479918129644285395238255402603206950064402825177600651261168831621939422809935169986611986911139516948297002656379557998834189359355542085893865926049277386707243888322305231020488968074544183940230235777686396563412874077712023736883428861634339392372116824963179900452400599228983280336833543210232225803754661567114491220980267630019169274576315513706439149552680454740177904808800092772200281694805544798019185098177719571756989086190214418159434904490239643438665431425323370893468820605339545458897404513220813980814917278257174028033889462794239993264235000394160956382389622279332667729097615312596127646940483934062295412848810731957337422127789585366919496302181400007869603121561709918435257852119267240825378534902338475625994222380977826857115848313760784341189208316637154291239762701746921476183863928975999908236962431167105419997370208525055397945171142282123268086682085170047931476757641212872393872766095790640190122830192498651308037077977797696625533346595966882915345818697734956467265875552210885315005708893306203300963204465682853620647791738740461824721394656651736694613135007717288542926528368804090616014601318402483600208761741911339875430572071692976466936822208952915120722995550388945610818438258366371528104978213966995784839161416180831547569855667649735055457305140479629405008868049077861034766289050016167553489087290553553461226311442206050907258137112855243985219626160749086591542726708124867344392948149000557895553912449240793907328058303026450795436006991028695592416341265567665245504058881682178195781528119866782837333106622396198477840255707610127211106997660568916785448024261394952398957857237175754705939214168704360085036515673407909800408834899039351391952200023842093453027357941304168623936294123828974349347444300114059253110693878393895057611487640619047052191184080785431556743729905294279634759915204051074060284744323235818346987560432612098226813122867573197400201231115711290033703730503304355407664322218847009660862293249040248532773290222876358294614149058268376397124615850472063375131259693595111460867213080372331323480894067418007598971408590157399950835592220541419155620082858384185803477493687974861107371036042041789153328818068880371648452677622914237010960296691930814630874583203758033080422236756480884872625389254476720583934007820334547201042421655173393683448672310394998306319698438189306375200693187110214184764508531708245485553481342779784871360846291916693451330201918284628333104723380938126660672865134042772612423169317446929640276131601691265668605508697119903499677079247151085569885389031533095310118096341732543316201372978722466942422058090353770728743603223395122183110618216226151049386747183433709395273695491622354780139715948082394633755707274746222623749144914735034464326218660174235438699609697892736755039076088391848329739536591519629174031576861446779349574639667531934143314794957570153467014028103894573821862770801623779139361966767869392819651642139595746812277958745559557313704449576688744582298405519238956403496792133089165238608032412725320641065071560125178007687712341379900748460302735276508984986841315924930881117699145225606112163190153940914672896236655557553388737213850485150146948322778996377338993236602410137298223442466149295435793532494690450061674650114170404388492826385307533452216985646229193532652067789371780773511306140495145740630713503991772108811459578214069762297005673361782597439229332335278669748779889739080500905285212870601995053735762100618131245677249264328651137932271609926006337517245117315519891471836742688709484153891162347977620575205382433321864249932815382070920107669862685450456640686047317040821016554536630676430182867006353377312072540804693763523781814318334776108533760067500340774587573019736688170535235663505951260097790351667851865974303947040993212279490990686034501306230194492820894851084974875377554121153552854831966020566256493525989316633363130906849023524779068685610987104281051462258668971850126798751959338713242841812314720184037543074668112940131888863569914781999791819452550809711600649429789012860896473869008963055914356851114550668307159569797609091470971433922398251536787129359822752596760359497736279975848661329278653981895295056194942791849694446414753767053311300984763661029207615229833559028177010247836555325721096396892227242689634049204276411304074613669210665540004301042306048205872673088269719171725252962138208308763041376085786756787125298004136889402672139204576095185420424782972210680862842461404908464565625410697427434473778314099621352138870226552973280750739027725267477510786272799541416901293683717926023703889535519461414563673974732924626971466399488840825420956127431345206052381165399022051225885265411934243258709286241780805705882169964217564056211559904143400070598029310361251435470707638670432184970389998902884633718430282448463697080847147101825021688451233969526962622476761264396765315154923270004891568937372963164795697595287556613936024393512058173840652209475351023971476733707630902795940129478290815607199327023794908788619681695901088416009511547069040021740278627922275038507398556247352462472444993021712396719781187799037579369082527372494999286361543198259717280839295331427965803427130214330548760463503804028833457741136743535060084512261545682694768896697359154719139007672837555999262206639620192967723305685845082888326616423672226843281604648527339075409939858597047754475432229218090506373939927787658633271901462017852067056584383262161133594571601274582608353253485629789432386730110301892455955239518223233619879188758979384790488207250432953958510450461862946689068207774037366302320719124781601131159585514961177722919490162110425825389104563855149207589001264574386847249588399442933113988549348528062323517587252069412549989328345864168726401110351753193555780594382046040509405824940108483976450486409430220116579372126860053631319601689327400620082789929151810684920902951009942929252392100910044371352157693026773664012788965306873446073584538307215823222348794081372202221468857018059522599156269296081975576330866205482639889833990104990689366559180281931213343179901776729425745223227226893049064832039998888499747533303365500525718874525477295470950318295181739293057074671559143691265082238219430943324139953755367506401473849654549046083045302151052352959304550726034921460715015098952314113868412773691607934010317518480047385314875398918630624278554622151092923030438114032208693066106315098202534602866203562339985996575568000084425122002204743113360595646039815565096866010266203365383003909198147971730485933334176449595546134469055910642446593601907786088982337289875848920371311412222632766761987548567397705173010085597070612030791074550506680547121257951154809459189514066049422819095743974872611905861764175071132426886175813080971766987184345634541278862141449475383479502556948628223220615019053327068113022677426119749148884890314894493329291037190528523419626669410956210553644016362871931365639426890772387566664377142220413389537303415927772329143816477070294406426304151938689772636127733588664385361961841778631772393308435621950076338090625544192799552079804196239501273227246870125820738696056003116498858913363864827935224948656636265193487746110388071356494811420970150879506903826162445106245740585068725017289868538995502302771487537727533752244381827622349018069209194563280365217247707498759701812667365406026100293213642241216602321462624887130163484165000417972650387671646803015510600628102023201749426736243063832980730682768817608365924079303932169206998254416470096204176432808271312172455837803169943276560325944241877986957185290337103378213153725291418621633298806510844333062709953898319104283117241842748703817340269771375614195819479835218116410908794468203006291468833383342690840858188996562645637000498204087078535689342159173876371443107113733922527237867724202158973338112240824773817026403053890593237148895431637102446410537568985702698589679489142675550256261556454877464309679599164010257743887758376914591554015056193533158901193209219605800639401153968588848248238665156338100202678824657247625075204763956785092144322463557649137277740695519702988584500156188003306678064464073601416210308691619304367168198388233890935813042039372956532236650901094169409460718528691564173829087324467389396311492306350955916906298984658443080455983521900378919078364387481579054599777720091179409164612241689704985835481815614914326731554697227109053118319329312043170383697967095515416305803427143945002482259026089476099202880263232127576253628037252502678893109457686130480688131317224475313000899446901153019565104030181328739366056081315023787075113082901181603497869905474371500610511152134058815519517349927080013116119801473389797172464894388053252389987490986787818487846406625379638728680968701452423866485064327367626000387719768193744538876633955617117266224871738034085823692233617236852977033547835477538111035489089399654068645288812766558300054516580593479166227758607034595547748899708152851029723529033901829919192359684995734911035596824627512152675305857560886471326725633585495503878909364573956597055346856499343650588598568571823317653912085131658422998870726916426942631892897569094625758995344314056340030047653285011286072352100695950149960741292584779097650790018286038135513467270092972362715432757069708772855721456839739102042035592625870916671059140510533516806303575759025945753520698281641919731322139690605041342296127910413267126106339102555454666660870121946056621265049841784228284811442805719120563274565625504956142666341622368038895778932402477066242827478541366809586540198362248193628017183312356292069373061763118612736145426756457262493154743480821272803497526860729857977258884226189059486510197240482959600247469796548930084184383794384539644175547410288539545128505485220880127652277290630229722924391545771273944377509709038687881521034174914853023583488083315879730261281889812522779382720578267308695554098440122983868828373857553789930836795717523462499871942130018217277858552929233048875631779191200268043341140060329771487047449199699019267151920464629596976967862880317512977706223942809158865144253985796743270365877547353477862946264897101863286696676219168588722855931184052287695250137634233342001697978524400089379679434256400034261354658102160955725357308478603044366817245092545151053864419253212872103923360786520838038971044205025286200944956402275977941514573378938933713048553876209868012424880113276941954483829304507750057266163045505639512516341679517138343383443290891826319519076163511143664990628680019070223741937781878202192589222927735636690521719070813127434178913565250313591813694477614383567197511561616604329039258506920469577485191634892016725251128020585211061302572999939557031818493582062967034622933916311927100289216703246356700299449983297763361025603064654528359553270382586001580188596239729863804698350804184734469465394828725338450045812408675193574889818861137433375676952135472709771227696572702535551495180103128334764914393974003434634537819198269488594640067094890266253405505421535362724678089413409804109650491124238973828558301456442387522278825907622677366462458039696461171225912977867074307541868404699564606733898717189856628214644726349953128383050829287023587712949803492470365096061287217639107915050114864778339910700851657585235118480108663709546215349904399610957942205401557775214891137839922680221934600740476422656889701649888780848815000012266894452173529515226929605549819164789433237529287725960759086939680401983102808837428947244688892946391911031868055984012973450487211164047319110170871404173975723603897528880998864957510181172923445958041480107148945171402681440934633120582756889902029446981374640178501009275389063990780006431064311287974742674111966005833998447555782703130468431801604903911009882784870903175608762282465324218987458426035182376615080678442228167762656934301814778025124781162810788975636071841967209625403727453757158259628416614306035539183135352766437085203781667841909102663272594159582639009850261702355151598480626097594278623360291178176192458479494512566843786105687915281553213722535086144161354279967517594123660387913131643324603956209564048408349343504271519876986161479406692289772325389389132481441643456523392527503914420613803025841512856581991414730962035214381966006852972305456063222209012223012544552784949777055761836446838964192283425543769671758282236933029057486785021463247345931516975297701068127758442389714962991191417764426712659620486268309882099136701999170389819670842904726136285599503023447521488325732150731992892757444776548751055923904475197359337141425153439610035629119701948104883341033688292264974524015945395048087101085650028023975055852568824677378554453124898734231960140123417603135003209892519893478666742880182160902536791212216537664624910836237152224883841567166062923210820612448849476367174457999192854302080082329183338057602290335089553048085684357315206573726730694734610076691183952765958326097784048892318767630230875413378013110334927341738144503236951263663451789421355681895432020845353630783403804783721578836006419993367216136352032347052458773672369761063181458261792006298313414896079637954378667413613299008137911113496939366278754050326702018158860649062608614642283770216158719003048386401512790345403507329269506699803061749359677217304968378802640230512296582545184370457417815996295655803209257829152838049004170081953602472689076340005756775629315184665451740357526490567607649935069219615231428866043774019742153860956354648083181616022709506328502384497818958984223127117051482595539136782130333664439327734892225810880635597433464074162528245406700086904762723278408990102990410001268149951744699161667163285265042539349828807414035722678288771150435493636337796998767463366621935156999401710194820856442627228992302839758837919572227329128501498410077762406658026747041976596343012166253951965156233720078808051552201603326196859931752955581711109609744134961697771205810894325628783784251508185673100418026149498508298737149084371636036291561993315142660279711649981572619096249664295564998682071310711044341907803737553165753849269912644040883826206954335641250086540282123747515493361142125421811641126777760393400001965389412856038760084306322014403089733007216104067802906343611611308469808159965781624413634788782144653238303944141178090071634052051001474819136273148624677486118356536594003600826798719902206700370502353589286876723651795488815532747775090055285852637295099292173773838265472648230782994674193179414080461719559221437449654562159168443691958009528388715124945823225987635689321061010837153990355655751864797017125342875670130215378901581066142211253965364778106319938605743435997072761277766266331404675585006722227768658616952996163588066157879517655206365820141150844984134810501682622092377959653271210827632151510293760414759786068114973148465935645119807697350208699830159393246683842345515942321928907217820512299688218278806835183166012107420945540701233412036864692828334970148682344627450633764904007590306038135666387489322032316722773382764208222880477627516006573277165536313525416990733404408380747748129321343424097097499300304333619873093306545844070418662167539808848340315805519352271892250101380457637689526979840226702009276318891220390588903207105728615150451125145716417209145867659911346684255354041832207316792781669620767499515202700217926020278926268664140288548156438397505899638610073666059381746127897261912562006663791842385772337886760018452904525108359341193265592438843712899567861837690368393175775153322397524336555448619316529245000411303327250717953370839274579843174444140421198689695417209295333520019860766937224693149975368038423965370611358935653397447423994186113601884106560312370956049589405040656706642492385044824754265439041449094970015618506512367024296333194808940043706053484302284010682265877431938425427998196860785873267158798977593012058849711837490190869955068346614740781912974628163894363583733597509761101737615259919097189944305271677492194446549974357803206173635468172965285741390618201033714736927256308892921454790606860730404213792057897213571771188673615314751462615311055250896822396672616680588364079211926190779904349434091019414316288782424754158575348109049598155410320360038084987722562168008935847831399242276144698459728516178762627433479173106583827403924908726731464139242026377003440440111752598865565074612412928646510331234485289745523805693908307491419958007451979460738633970309928580920867735560921783861894786433500270478826481780400205823543773720076469847774154348156577495594365469132681377401040639059847544509020843992021471769654532298022534787461068971242737131332151683677830018497919856141674884552576764098039319740814526395362049799140361859255843615618426570885437275184664361636241140132885567727944163368115920334635890477676883547012145991748424019881475492074239890372362047880836915293559643806183135225129772267735103270453542537634021839569313157408299683483045468462686548459012129880813988831673081038252701061509449288967853293671949436511356695906889498321966327460763226909798877185896788792156844621508559235249335580404228117227734867409009403895027553377740035562721419069461779888464452075373349680973420555692255794476603101181445412377261015947924227337142321303845906242100176309879092583752403203584843583015010274255159020782560037062982673269717021122649765083588970595919769205060631618640123345206056361256235518492771230647775105513877249705722523224693694033381498659765141668545218459352605557635075242929084679340661314770893110430224152991993851421506793711937965682650356080999417388851920405296849255911415166190221864958497897448620372499676895146892224886337329508100389754289048265237541377239493320392359956251351032286800951843540642507464495985058785303141450119018325896453852443863263796438342550406231738520391936865448554134877323332596444306020822290336972117852554551954419460029184426393469276615270021274059231595768605963133461249628177027250675882633658964342010632488549903525687522318248679635605455044650673817400415289320314844495870889972129551937771862151465128546834278971926951434498905737463192192097161618719690119337804557521969400696759269572908519292371953518427843988742164280079184533705963744547255266191322019602618294978668698143030956339007962355006812911471790289128797182662333789226636649531589330299810271494669866316766025257420708615149351433094269445642095815951631945978319458992260710052122767554586115199822578697527421579217986597510792085939992224354041742965715901229671067419162300845791341404037055609616739993196859591672133133892492524526376756658536847072048094137923426641006216453254021209478540701184591308521703353029478915108002688999711033218712327425856543969459373421055894165200267826656118078160969011543364263570160749345458841639272317988853706479993735367643393089599373495703325510615285079346810157784897949586263334809782725392319561592596783329135727982122034421279358036486331814322499812582203291563607332653693187892687943982596667195638484452691695635863154318780852141262457084651016096622530462726426725196533872689328967248419750739365547286464560975604188162181972329973246250334308424966819911939417124952207263735773968961850542861160654418885249028167138639344964937057576858088827684412363111146075602117555186054043098617680648538134339859925622132531306879785731450798132175527873984907500547416109909917881982856587189937373328755096634609531778879638950054097873150830253176731878367728723148723544286948943630712109805012858921389925065263442325712033562857919645291835861703972091643210341411129063220926363251553895283595632864522755185196739620366653094489014330218783112569903569238509000085996883007827892903267933368163669798092102407207686462214987551057381490618027585850675939055276468458949413060230822629169156301088169352549404784913610587433832018297979179796937798319040234239258566123179386544755303165018503253947053813123962366346057898482988905644878038989528032879171592662333404171627102587860204223235954574344798664156959071597966604555543631764388999741336540377767365023951549164586416315964178486666315148124527307814020369037068227323788606454536457463639392601556311295777606449809409842813421149041592487462561296679564594094886337000969297118270153595098958944314116296816641943784261648269551241031944475780721864081198053837398767440574568237854303262665145175288362088712875237946045023107260069599022322151230418895049481390883318337774553460436112391228352949851607670354129100048135413333616598339421134990088281755447759704398510543803002860654388606544458306208098483785625234549234017945879988823034929717571046185423171705263354259200595216297638432344706243854081543806717586537367193825713383340417909293135538345444788249904164993127996409084427609545094644390842334101568253015114990022496849391318826985190492081019583760706225677397714203230875217088551790095378664777229453221732885234521461928208922015375665760142964516736032371623991273448224246638210373075377772174603134077261788024270654316343312525792849803997661481571145296250827917749753785304474410398977900967662789205708462712886691831544005902972826809574711687607377127343045606553424151600760540017800690505946827099029388230367211482471381709157077081743998451347980537313151711447247959124624886225499911298396267231640687640367792789185019902635257363777356600921514911264960070970473167813558364921143553006134302593808634561965881380047296447096948107260127633534495032167229315935440895372436223308965313436806975427169957177346678259216023810479767965836596156137744871996135438137663940254698409383268716435870339776709974361985738002162531133904927448131823097816536846011843229176364524260783930284175381835072978251037450995694956676583396057768977870717190461395248089514620150659029692116786667033533204609223951699648464833479101870648448523782561703715920474360520404615141919885929948741822197272407196290309862579297757595363099827219474069261474130494894116930527862813451488206673737240520409695017474865463433812850625295635735512210781419348990220704655110429540480237091341408689607079359820559731019388035936826895985812147745244692709457620796702053898619094762642805608593707856993410459630521410415486155110573925864808784889090906483126125866331088279926385804153201301166929550007614273674697894919137445241903429485412763019368466515106724437608541303806129858188711316151905910739678450115411028091514004319808698067720063484642636187448272983435655895594074293283218666606552964358578300443909381023913872752637382583455031151738120621675464708773566876396742102955219188080394120817861385726167031940219347846699342664212296477457172504652726331793868392358047598239013961107445140639271026085419709056060911755838505953747306041166410094791829530560556605761485656781186137231266102799349411093922761031171326314510503984950731168405005887158348430199883483008138568717447023750801937227213353907208151130062740457888789813512398756913415462771794757000304320242968310931149068574387910386483326925907655507432921031308963654448857638049986096436521256873467124049645237725571296541512749973251511377286770835756929667952798113064658020160318636254735157016668733686854052008669021689760523318013043111172352962438614719651172580306593986302700073460085358941645583613730505858545660218269713096175003208877555469468560670644518665694874340418163786288018422413908887466644684226385906929164401637835166158072198104465804192236708548415109862401173450813890777559060891400964567256026467565808609397144732199958638851694399669986654019798253647017500396468735541552216001363323698726676234611620302255376308501886296354000908676149278937491431508738475055946728791785432670185305563026090789017566186636601104385243043559689921624335241685571585084694354888141782616300891482291227316361989977785324649899609274933488444298328126329506592625540162549071245645435122022929518257676033216843479160693249439098661019540878051059602042426184606407480395923108482890954528880938612941382985025883345418946348685276136006891488447621434838945682568328168190409094043045963883784355237354930135291053732473275759442971828997144089274821010042893190379786054091031050008976973227240237120720906990004902159709156799039164086448807744286855921702503302606182347021426980173872720577221033476585737394759601734335023135711399415452564958639435008662461791171918569490134205456185009626186219594717092696814493751903787175971832211256588057511127389428335119966453004045471878208037324162305976615537875844582973743165898529552361377472228588745119626915058333995068956913658745212935979196592769659632522450812471546647000838467544921841927557530357370548056644937616997839531211525339479956098829084684519856932692792296064732869675654557519006735918751891580124659208217016698863201653592925148843427469336824259362105523305210951312664784487839249362122288640618049739324766839755093603696875646406058190581150685255348960992827847946294893995053150377181212896289939129330907850421302956250868169114255306413869189441611648526207252196722836555600498514088669083764541969069565894425445704553038788286688566399020627778477064953643333717029431794726534631095098049831686171506911862071640625984592929977640618744724884675606329874780703799739792954889716260594778453112503814528784840210408256091524270281829459519497984941959860988212842906574550701818402986114422841090422433495541041923470163204046560296118385443612767701689153525073975388562323723043000483687540092322948179527549988429043677520496280682479981901360997338336582742706431839281333262487296856203662430547227323137422503939030443181773506566178251484587299074108300844257517711349857663096378077809083060477005710311593464989495984529735745911294278263899730778578334319955153630969786587596849264600674592945719363744752077761704132477666993325229410906812452824967522435267467333417612251029165318505393948736855197368325539129020231514874771337285734789293414855759755633117355790247797998266786922701278380684490906203005211442743291572748755693291474575656889923319194913009563752382141714077013370392426861922497535669689273207003908708737147455836706156756221053626407020708643576424921817540760358107102642837968070508431679000897353385505452925514382862847840004876906696649374535910235824353091817284673861387890055279446391471601748531836299730869358524652501955722687874330647983462462712597220693800063609463943794249470102977726420350723407857793878719163887160754644056533460149595494660589161583675958937116808329992401367704932001127250713294698248602031947471873827675318905508165492599744687254943312604289670322210418710891616413936856940544841684791381253228237463483996513535586321724435652299451528787084809319601648091695409207883757183917330370833976650089321747966711074602577709406594231606260362439886999994411006476989065182945237086288514637041759100642948533342238503292845236820740945219546490931744313624122942059699599040430873475970561732518891642771326670974291992498598121664674871964750857789486713715487277081244839047266451580685889514644095360475812917134588062261100513592463864033356550298992457802554667209672237702516058215537994970569219774762486318296558896833569010922714979577372591552609782367073294576041867863711362913392683667836699332895992680431850809825305686139028112152710701106736710509148890046893094155011572043135107748727334385760959278729276152595799509413999060589093816351150454714087270566137067377739775925412745325087187527620126356287045373806567093698938414438710679163748745358430591843069942209491963780403215166410152391503947541933988066765667912358185236734016540811795446244792974441321397035147939720651150291209965231373936277923876318608978101325102983532460740523935486268879079834714889494817737402693349921135452617207763858331883774529374030400046900170044894947963371766681699632514047137317560889028104935269130832436153299517171295113253531909613466716287619609845925815771563828824225283384776307073240443810324529423799289503534642915698285155407136600491820512998301503593546592566280794855979499491105532640903952749818241235504702306271751224105450387214021892895633662988129972047458152840199767277148501293092035987045307180242776369826429166724656533718888876609285355237826089265918043780801729458247916569661423793186191142716784510154382544538176622937241423537264330825140531126247767126538032683579698028995788575444863600042704809095593820695278397669042375879609471926086210103526435141092989489854485395070893863868249042010614472749762602154916528716328847924196426271300560807848761486991342070959907022318711742222649257994081710753705053845445868125363667284050991007040761557981523234357665130163748884962339023658379571832483806004536242137305417524987820746106663174919436046663193369208125019081455198345075908705458473184948784463127910366026622796005736753048377711191412291971819412896481581562842749319991930195404852876998689444518429037406530749941096831594209278607878517624712761965160086045837602142138775053198544115472157118846814569833200400900943415919937828420068534269194269943150501524970533970697017356428777743032939189710299496471369689050296698878895251231401522001628036232166818580463120199403940744432809208902488897102954018135689067756371777135994881820427014175074258936963480921729614984054091950209350793407519263392495253099455848493974221209318993131736245418911290785875523224117175706565464630489970948969762083874959500834095863059313499889241167857503242435393805127923005116006947286834224563896882591705496374732767511114929442460379459219081951451025840876258350385303434884803391834710339831683622429595027171357443334011433564446430560915852847857005527629483641433486166339094090625459459164755207242028772443328314440549982645749259958514260600697574666123110528909350624144381633296542467209937913731743397085530808124638846277568723822110692972799669069236435323612551198181513639683888709983651339284312595702049918564565623488722814045267944434975293579175830048298775395716609713569816695691067421908919764472178459500702848791109312825692042866718599196426904910126777036849722271240653994587183366791506969526689372171985186135493577559170130300070905518890036559316717490560938906836569149633598985496801034037226712919243010070243374182170681953963938466979427649205038253994999290716439209831853300239257786923717941904736815069671665983049354320376849602565646848839958262750843506952930093485589265556828098730576247400441813587923092210365774936476964660611481490623147550786434141087868930794838280819823844347951345159636323349923626884449108721769429479537841038664983495769877251400942958759819669312082085412965100369923497282830803951668922722303731739825092352202441094689709199943240273942797750986408873187581304842497643663889442339927234501629277946913060705854166922850416960124302955200568626171964812664745500838972966309228861886810253067193941163632611191754466040674888460495050839753895449580965304755200652995779276050508475118447499411577212260772287732298137660944672349677684400728384054639113849240329423898098689966979703230746200547623000284652102414760608233608353996936528908764095727048230158016222924392760593123596050467538135708208201481024946502685795289744855687368535730977367153039113850917005347773207465224140473707809906196883188107790350638649388871150677394079189048641281204003023781826219909896097760650519777075879954671194237927461973997576158664000737390491775220234038157932970903470745605191236811254638741200842711675918664744731325400039270909362516502082637603912883319512505279619014157785004239224602961657985594431733238002328141385137422121038200293404396000641385867679440003194653639182226659900875860396832708002073014580173640231923947389687653373328554198753583976700058469590715424915474950916833102596063605786468041010053112922313864693260537832305167086273913201641892211624057876325087865338726409828845857219493457402459328324108364348434828007842766871049215628730137668181391578544287538185179260056492170935842325658276545385270651923531553103484826747749528821658961309864269314944347629473700713591040449760429763794758430024988710351901769255374397707607378739290836149547262174012224342705189051568995242970511426490444718015230541258867117580987573001054122326677223055767279299916720405541881062004689935992441365172127822110672902742094632943242089179848240097200573756112447701502631772958792574798168131169887682329895629024409033293267419369318655085375408281614855266433124221758385943568851271791005409325966226780208645355298403325412528739418725091560504766157665006462286936843441260487839775294479372112577891464738153503426692722667563048953551046653618806905892323543739233375526223084156687163624060384818627187625839608415602519845940422631954753911480490292992683929793024103306427121504514074592739981493629748937297480331618559214277648034198381145008704305295655092464237081793152953869411515504393848681401159532956530625314696320685865242150242952289537883050319252869818919846457455949878261567085511251023366456132497005601400742849080298964263124334384321499196558028206326661079603952635491988005495715855114643202170137371358032176328409683947512076021604456754814693236533536325296828180511391618620249670791308415634596537515629418277219893335573087307542639906393127196017070486868463444733880366149677550563273494525686241810812940871652540000828613625153406815114010283271690558550300773499741768056545288739784173394876173187527229220363164358960550377567345666199716444638060475255178016407019855455410051212691212777629986493356325612795013663243202197266569475930119027844183303329262624315145652986073474119567505071098521422380880753120437751255649484162551100629623298519203760770913169000633632356152685376096753250569627603726272817342539035700472637340400692635063296388666993576212708354289681987677725261219668153740408458325222020517527651639252498113849758145629943583227943025575234886434637653810038503080271027610594550588111817938746641852229885003837407650519641255315652496001310185813937810923327794419339630590620750570799009579724431202431916599362123917887881153898686524516336656194462171565022599022199273405071093782237635457981518182143164554209907689543329033946709440053198513903545010878144908873161742095021473876424438508889655870363004466023433460315426415982565216890739804951931503106127808437607697845471462701580682589632607752156362167328281988196501728388354446484873072653404806119632965111607073317789965262803157107197618253514698695415718990710928437620880090267409565309732621263219047573669219021975058996460726460007523154712032354221375866269049444836229212264509006146501141799969399444894402488702047391282776489610577751410921649650206723151657054889519466295579264009870055393769249209967115175211894684849853909080104378429015297661760468582225553932230980590719667051479210416214891255020535701658521864403077496097725623197485029508347076204909523372660239128430678495864587877604316125252730132382240785117502017094818771036780706131881541112364291380660144865673126813007908839758056678670748430441920336238698073309430771904468581393050892687999399082775774020243819019889150983557667288326316803173642054502260696453786557042738106471927328703412083333707411452533429999026493379416779555776420970359668801282538769529967049070587020863320514499997543895503528421660640272479983793220784169435078666141594814787858834322490091529989242582647313995696112606104992992267217354520113859912284233172991780460082559317363225372875211244011902114163110174699076555844809603472630739083985339638358864512407001167550454509253365192996353462162868481986760151929379809480561337916841167946381156057861122560335826049296230809627809955802187687286209899048118694039548888729895314544325661933685409675820402299973162062703021006400053408958460759246627704018639366751381105454830068285135064865507102473133996944680697411341071536156848805567265272902615433103446810194225057792228189816103795266499093895834657156410079124052847397490694628112033005084787647121026472969885976359578656445761997800024761878893094474078454790226695023796398468889821073985842315183329953442408870928167665636129873971314575037688358173403772374723587847198917251196450068644389143926640426702550170707216359175859646735274352938273113709163443832891767323842143683472171730316661062790840429129449588093666000775086350193209538187542255393370720457560228627208962239879204253268545646453365562389618918507760088849474360092649290146427850698491218308366936383398020045223183341634237211263283597841443495992011117764302613210910985991560742505629591884592909255458749818547353207088379827318561131924567033436252495727818080388373212924029185973338574129581964947411127582223592334215075975104408903470795140203435778103446314933630811661096439652426060835987918481022865607019234170160187333256005755734679153852245921934921302211798845814338820229832688429191453395091950038302866417326609683034470653537291744194735075499894846828391896201689231272963028650911136170633745741165534509172096182183709560451170141835635375940336596341450045943034118389202386451544790779943906036521232780525392253566989541091835828065176835241160585164234167472698915133067180556893862113755554190399726132474460680398578378460748314863075765033441219668004720324950648486412484101580026681798165120960977782421300063015700853536498970183334537417843500044730375602589767805543291875770133417154553395733922577701161395385724305896816410986814805051022565750872897893917129307865966105551643743315668694028124057952321628287084235869142428006912134125256143465351355229602918959561011118010739832401754908505685866693468546896746539647440839057643295838892497661607710648036499453518501401594607191966622657484961279936326029761732901177939998746817604825488932637074370047975768336279035607461264584350228438767652488397224699196594162606692304908927107094800918345879909646972507226283950913120246924902440851239935733912573551552073746886527208162540910378901356540654670118111932023208172566678565627307530546851369927793068579041503182294708581367604148656650426998652830802737026826641738789830445665221991840664047112391027221618103528745265294991744368575989759668803018036172287983379331093405244875756785948142185839102179290776804518480513329386625032324424916295512799284648907922216163112493680898354343688792196281845942316029388327540492399578611188943054697156332619785302891324818380109795857846333815182710852003077677981818983594973686500427047219396595408351948313124985048189097441653610189156338768108595202446635492508691930679406968364201349094202330455960086677967709342499637482228534891190406569681576796918109285002107257447922917322094810647482905209740904557648289455868358640284316025425523401857326280612861328069700114406790370937325768518442366281229414764635986986839894605580112977552807466646631060778957477172137406027860467036556374185176632197323281991023486022864677740268817769621418529933515918270441161716254533217655284907253473985130786509505760540002723895802681944359081389014615115964346759684280689452474526539308001670646409291588825753876594896987135948515554002763764710543322594352732217653589467637546811757138151124859905634905813733941364506406337920488948566499071127759595174835262601950512111617854281109400999598293323596329701581009303575677481545817859370725999728612380083135746029027262974009145690387118574432183705063049067464879107884325102562476123657467281448072800503332346360765952165416684462831402342113858422104238843471485100872677284599685498325400150779119452393310405466924631368033527212866638169388475430470363823627566475226967732324472436982348054511237141436202528818164936164517566524469139006502021927864970943514832604429670607329262977203905921573303960087848441521903582607061903552169993276245237707676322448196535465159472029400246584928919541017181285707559449840128370867199698289099030611703724653737946771294834150735331548656096677503141763810694251631655140564035096584379198281860787671100539997028490436019988453044694269340348728195320805248941612962236847175545944243670626150563586790787847259269646306901362553185662125521559060948662332753761524037704381506492871394285966009823950665773930403541413332790083429031309293230156631747090570567027269401252515330436601781265073404704245566941140643598924013094928805881326648112881253518767989422007303295712930238321198981080601363747034482872126130384194676021331871109969489370853584855057002775999802128115926936891337824367945467149908098656448659701498408703272502853142867219147316935752484592766275762016444469439536413618869841482709760914031322921196585789883771392347297566394215548465624055392223794055586088952578130559538101087954792725066977916093928352054342144622439141941235187670124106362191189040126251876334076403746950440050634424550691978188020271111787191898391517931531096793408747214329632350628999174599402476368656671545204906080448558354553069636460920576676965953671820720191895503063738219038357617779800946987853731955221015416967119809239064103438826893696000743378823487368288826155936454029508428621623581030439778785552078012037134307622980602570353133556285363858050362437612161170486977790907715589482909893460584755139558053845163144291150714145495249582300742553272834744091879123833643501922549469648249322832362786034161550824667966471612215284722182344705982486572156112701782260690617646100490387538559353176584597594723290314533695635430243405954883512687816606904938950980443452371781429507149757584169824670260309042145354043978045768546868004427793273442986152439371287853997012192766120271277967756103728402637898346792418756727085363218757006565779100311005625785092104644862064029612377281933948082164692116898474932872188715453754952436781187070117587360846926244290008790270895167992557120543440283452356586923179305369270358441916717884234032567146745259491551398540556607952178719416828950917219378345808447826379590197302247061173251720444467277528450530456559592840364682736810607831094962564942353729516335435082286829871495038633048731449021465795368702994381287478205665846555744890604092725122670600189795388607390504663349991640014435525216997304338817378935889126076038605276629995049903823918016095957535959482148675131389315026842377023042994879265117692435440166320527244363408074473511756982952248231242784778842553580465171804137331463879824571554543799168858324662496125921099902876108717642536707836611332408073055051161475236857436738010809531132710338694391945130859196283492502393195439818177526644624300130484928749911335495927139396139174224933565289471380308942846759841944169915996873961721992212851949132929591266716580996628517558068201486796074171432420555453371665028709810315927345505933713954675354967638292215564744975317462698835192979214726175365591373281147287851050865151493185037984719688168304917703984274068674762331310974218520955971410827803696760228518094058889000613786594516177242868692172149461319884036695666861709545461676067868404376987740227505660587338936552782838930896722413635888558466062291853456206126804158233404955800814124614719271010744624481267985737542541974573547322035914246099017673822269703285564776612060880623174397626873700878883858845883788511711019971153734634391311192335259500576124777312445237604358498430074006201443541612768638820161094153888534838419502302477032647071491296600849758947850230629994864890558750145349642289460697815872304447849468622606460155715776020675344224756056763692374898769270137473824403015579710262385282116479138644323242817427585404597237724837144651764431125710650494263390259617973162919516808391209107409275753281446610795286375187027829107584845485765649601874744825491366280370404680698113281855968336949431316712739960426323227345930360829164301960033115986841278710679238124620324192667030434375870065775807977764153389801138400718575357863134896094909378912984758513729698912182858076973017690120870383545726016675256901017219049931396277412930583197082774997569417902376778344126169894154493272938193893782432050710580564408466990300801822209370661722449535652214253888982162593399143140792052755187397702125133099771265174220295184743107449583901522378381609332810790747824737005321706204724469453742001702741968270844052765961943302354927172676120444013110196361448749194418128842217665520405536744279974316291742790782313152740345696165802567660441798346221664753765280300131562029874813236982821613809706035877849182700111380390871726739763074033395257163716359450443294198634171813087232291557683285045453535785022481729856242196635906734569739611756899732154803135031462796425341690589526955633838235739491697887560748704852180731956367737585663526184908393237589334957945533058791729128652368724869394143658685070174698362283282963429365060551479065065421598379330962479385107450615924455804641222374133680000424513419215998471587974223258171911252970743327321272638764465365352784044754326290069271974452585382820705026177642975560185958854038168043770926657812960642383710802039415971879566578706262548941850662340431305601855317418201941908969462560100215730153187346349045532225111414786513766367889727859406254899891046570076475948588830191267088300764487929422681501782271988139016461338523933526478205651759483491245166570546214053987225771816865491878028848928339392643977840743594217189315198536504020577556365845975906716171839022529966568423641664711137206662096670488995231548242736402441190752774737764976951312136089801797623196626640290832921994567690076654888927789294179232026584595168740487899765081134727442062047789068870636128189014059869275143923384151446074855615721673242532960159365025170598045619919881148770408410058248851341558606251655212400300992716058491992694971062538462045817468096603902017125867862533211263525288362464556475724058739946224310274689150135611729844271578451055284967089247198111946875565540085301293189024143300664902156886748120995970146507686033352042217735386207682863643303229179484472315358086206447813731141976811490690236156541968023899133615240131661596428814552622458217871658840590579671631411600729851828291498550115449283291403829545002462072835916029387967114818348519383236081494542507458467693910736062163893156966531380584134937290530321885679778002377194495346689602464972695891303406579383857428861997289223714048299576396668614684717560227577327789588508198254128319214502782843992963909933014367121577353939437220362853600784686670834123095723016497800617903467396962371177813049829733473564494150968321520348699655821849096148392409194340450532731929707525233543871085976394927115665587178726029619492501721996052228840713045260027082561923580741681450436858328502013359384809410455552434855365883525467550465647854979031283251965442551731739058576081645286732563468676233251258843902877968289690924673205548971744273121560494629640648448014972625247104308826028242780700237819265821319096732198504495043131581931241571421577944168177356945492545502496999770678225460856528805016396740199392647040717469490288962309833744033664455153988870609052069122808373389696259425343237118080502006996586867723404511050332828204499155760824048588027510942624075211571338807984879221471737364601134000675397963737999346231472261582070272709231999082190461804397238849263584568400727449061430779643629463715934050447283195798704376653584764699255229246317729414524597437637145169322077475337181410222653827761415356352769844965546688371045052872128093505995201602907504478050149930235902420910673026064813060441410381467814026230228837762727001488789341694219335994564650980470278028592268487467457907695312098651094975018778315007284114522132939357705064411584438340892204166600986662968663472118107115593772916124494830922892194393035874722832738908095747737005457401515248363628529496269367216677835049068514197114724285352724246407995051699326138008261575971428568467203855682924592715324941705169504211564658396742546645934138272118368334528093642538225878668352259755239205320932124728504320248517115620427774812208418020209642676419680255020818849561073115935814230123125646928944303605307230159311641531534001999052500041153277885078649841698218022561354908530247967812939972838527223302551887030114295376049420086485394871287726820990209691859561245861402665454664615808990543452000048504630617032329907224974117152161871185292804781635981799547432884236085073132674193992300466703285187181932050772652190283361425437191937621373945712588006672704117429205504100654026734088267545220867408239102638060840175917764169871852706222295090283376907239752316177056477302010827648780329661045699385907012526271860515094830403050440719940374151925660779221800542040672293888279505810356743192668591091436663266611857055837250960816453912222634911521400364215617883605615656812972246027987447852864004518245153876517395404021587783250035694548953366260781897191872012204656671738215035877738920417654292356003517286587755692236215502624199926003161170865758939875570559833534760512091399284704942826406378558715088657074743332220644665354673907101305434100184584162191490912726823698144156503636625805434248295691460559831061469736696097010315576096666917553574431197778896226682471395547302766454255332018005870856593499482654145693105874475677720472430076247049286850290055517581286181394229617931055053607714603286040757662471500488987288211676599395355821151432780543301514974476128086860267034811700398435074569647483276916935929649494759060011088840486506542687634657573698884168835388114037241057711374981462805949810787062445774567862643404451882920737167131284963775171976750208874631919031260607127402174981839743710533450987248412931897251619534588419956325691233568136049163152786315779702911413983915217192845209105523595556535887128622306449416877955789562863028438932305228607170524243429892582734699511274133391121476629918037442758106112308576615272018321996163543629984461495482702005630766381302396307878009240616829130810964166988414522930501327268287095537726005265796362799940891921603077795599321474096436539164575417098476656933133418674865410475497797503346877921348947903538504654283546207872363879342397848055411370777513035654360885540057773302347346543737951618416320829910239437390675135498417705965603076046265438863662513303252289574752672035243469876836170352789896548107292074348533703690233046558423796942327594732515468722573309645044982566233667616660223391800311049964279121718856383481991668840440768731953749237450128106418966909068144437991591994124658221292022380820038142197381337821141324575157720039810643737635015807486248327090671252406313174396655119274151504774633929861462883890068414703600997695141946106046547381773143551029682509495985765316347898405840153783390607015347427057399247294825438151839875933104410058746885841439577804135948004009347132840986217529350061884102654050852539842254843447201268164107917226251636324602595905472138913846578281529646197311703065082119794235051660264739293344568218966939077751048732155726825717765514331091022493621974999039345408494699430308111856921210836553627825958072202329997394898624769800344454432716267822244417139492985749392874987433609340483721867314284614582906865084331565520160609569852168872811644697610421077180515336993475265445418520207072555190134394479499099936942310744391092086496275997887093628190232671804445945300697861396138426558205021497403959111218636596712601938941918419416772828640025788501240768858747924526659920754620944256421357599066906302023327640483398489668645466513310647373417202399572961937220519525148818617380212214828409648989541892465944426292004860829832549129696064812717659827254805305099839172263706792614688704377025818657787907095839885663690338932647549613220246566690829219270274674692867891874337294057117861577701225355303185117210673959638372162159359327787878422222701174239109506900356816540396515486569845621427445644840848754150548786726818184304176166856644107978699960645918651079882427426380975891129237611257523843874934498292099194102150500884834437253225515901582715909332365510368842356307945398777621532668030285105768684309896085531923414417880182755822218678594950282259980740716144799510033565193789189961650382582355994475360629075159803393081841736339396372846292480866051044617735804040409785654202597807607854660918945589032659925879889708926047024229665731210757728272639646327937702978281064051445887771892338012611960831535877382734121165889592035031588978091669798084925836803844462203957500263633926613293872995713915753682258112886022202516411500151752819575661102119278595771298611965538774524473941999649883016945609123518855936783519897810824351610997014521137704523098142215151424897746296010156135370460981308013331952948817992591826058150078071425952199953444349791536177442686752192830193392977801841901360719692628954315403525468664602002913936852636637108306922079810006452011012751868225699435273411296125000602807135823069305405030973633046723652002602909601160352797288899609764976273396158555324648910386761687064032703527602822038594902164108966438376582365582824910735168303274549745061163613787811921995579788574885237561233398912922800652956414516962142930932804817209604680033883770591092800374576463846193750105748633318279739323921921302113671994672021034148568598190636088272905254930694742657510405826505841842864377245784168148086284527616309946377884283887810473454500779633020579335007890136141224436092465807892032621231253811390817343857934439304869369024099080375036787489153970539380921622840347302970179465399111095979765001478670375080631090400353773473970695363545563495425787468682933244830038856713361218077177260554301269263426654050711309773128643241049158851598865038859896494470435773409478147869951599109302418682809892885753866664220695806887503108226386333131862200965600682004826304585880852646714332772580904075126742517545505432622163191479490717554915862116822571468011622713952598120074347524601115899500976797473640015292694097190756558259572720141690974916640836448587736333295968071379992717623321789328643871294634204326809137724352236726548518769779602029337870590938299561101648749395578180057402489666662392918260393851537069245289280716134379488296855830525951714439473673302608242100239412698966899591810554888390007969101334696751431994545132805450224927397308207398920935811516953712913986306979940845863870759086398621820590169956337906962757664917763738117363883297032601966451249686414683144244999307575900981818680738029578475993817730587244509602215148449647216455841295707094193294762711882844802376327078808426356460296855059597759792087827712243921699832937808115659152360040181977791266420318200801323257744564996806333367257299362026185326707782413798127107424520507729620339152979434431585549934859897466464170920980052983587363548845991192424961997681278151775579536124543226838156458512812500762575709102181536292095341570418409889594934564772647515203936135346524840277677786048626570073431010133127352435920622277227724470939023721436731614536820812747241604744958477453010223451086035382457222541302056139647873094822163367723721346295928598704788538325710135710295254968377206185730617509561023097172355792834389371943002471865808316245385077143775437673994308389173791270479153499877986735289082374349876384373406401851004654117806713002918163444805506987076783070368262408881096861724892581461338270857121286598160258763214290225862799130159592381457125429302933211250714023924782729980559041304645722789267063993500188397176118262127965013211034307870137574585879923521022761018408772413696681035239057781763762157897116853404547213930653785324854398925912856523882144015525362350294728141186791325858591402108964653426787773388002398111573289705643495874197431106221125386420281717653534047425508551278663162576696385881660177870236296813670518142086371298987945920898631064441196684026205967372915754799163381532692365790865365541113405434373925569704983596729052485064791580827985193084145304986617893005193997935311401620735004992003825918610981605445976465319038761187415433681464743321894925287125798556136788228533463376001508739687658972552464147271940999611104867666210781631275129628434662447792648167544939076002087723750201609636150860140854573718235642257450759397435714861950418382502446461884747512159899106992060839715653514316332866133340973801182370814833714683978382459813602321984410075345685158867562672458423504354696487272658036299513285564902750321963619473037087080711527160360632774151630817061166602885199207202236014966017243431808195970324329358072776751666866903135330310665396777381582941610654165801774558998703309170965190938664270298745819491092986910316250609415831801339463354755153625083005315838206742889820491747027117758916597686819484203388981241086478554177959896281814622206316669900275161160613082534865770767187021214331140424945632125570024102423644447836173939422763945139177080469250729119110866642672683511257105320100741631908325806360440614501924502926945640990251759647739569735206638177031598977395704145713551768413134119739859120405720344737565979938316989826776438903423119519193073536883014311872448411300030366423114347398319893273920752083332168816824675178169223460409319866034198985635141381817766117547677701111821507165469819888838025879936981808084654006880313051805534822783793511937543761027982014367174076426516178681407032400037173937485150977671766100753256980379717251582826135037875411840069567921095328881710253075965553636501953845910869030497897586076661222530651341781368460947399074782923103674828357882983881804629257665308087745637671893712135257949894043338236191305154892583792424783400027511889036003167756411792326431105156961663910247937081371599384719361661021539085781083534189190983661844177103941109025052170853108464129863614028810266256616817031387242898268023639742332216032051360130079865074132583291591338857363453621672190802355372705806585636041405679888514784779708541338274658584443810791231271377332973723577668176835513213269923507502055934974296108555414541372290641210221146745244544151744147865839067425637880215706067976825311917044327385177855564715236447616924921489771239137076853261220367382077251576570749253742868090233833107264833739931381646126777564865573613175467362608410779557443645117528259501086777012626590710212612887292981204221317612821260088135465916970922145634152015954532815621481955874255116540283892501650957922939892386366429653548414425986225089082247370380736023299315275196947696118828748013524977661052019066341315650045032314305221392509588604052035942821952025552910023261454745676549302630079521037763002572460803607133253194120997621776410206732479661543308409177992327634502922264393976495370434094023681539580482240187772357510900731328110601927942923243480543305884837158863016802795982614898873396757199860110068548705316809456941288120829594858540789000919065815632994179085101469276521651759720593217560001520031181951227018992760013271379489441760023969402898855591815944818912891909906378414069492666513419375080398043096437270810242364334481121507397260864165682949390715066255815771910311585045937433883243331995599459777291989223173263906877689380312396046087824786671031094344652712228549984013368764392636182001018068940189864667029057728077377800315230266232726803669878137351946710898163723167148213896564509633103322086573641053487753378294041231072958480143439453766104043256124330746678312768403802561246528826752230622359840557194801315646558306195534244534609934893370696166544761571005708697515513185117686430105927837130381777963451163120050679165998899708601117548653646058459686982203898425097761770496980804569390607323520425550851103206363381945415417043247962879657747434381699551109108887208795445609788881403519023707415040882287455899409094868481532723333763259350811340682639973204251432145513959294133003018086732577489825515578458668500060696553811048498324540474242024228877891735703854674792751268941749025169063477176132696427260344601783272471862611191216425095766797830106583840858038129550712753230992077856529209985135172417504793382772002063482557762689969228242167145754245804319545273089933188519110996418590776469482964569704810159991919014787657519320367149200469349292929189665032750917207996304085318789152595533316559613197866290566112738154679188955020335827134402355977745903399870954524871912361822949980702906943681861808103818049704903574913143524383879959136546428561144328705235298276480738592075375799383844673599016149785212032307347218652805655776876601837572607948808140792633326944431735301350990153826707561485893965431748967618938234941674725473034019664174355034507705522584820413260712965921203254833473500627848147025444193489685058985889750869315721173913255840104925669620282145056385301223008620865392173224835171801676255431000772513328913882164869493433782242338448149703323631885048037600664491257213702421951319951058022008078262871845920540354984802206895058748207502593910465678684318850814748811424994053999008936455184294479205866953126754096742435263397429208870789705389220321053360421659249249705780682906618898425986104102963669537532983223487295075689085553693741222720979272900972833554978323146740637075591297095627528959514368661727280351760665415987209347195154284553977992807411288565930242538359730542709119989962556976973297458947085206878065091030041395367509211584550181554093597888326056558054523460644201529154969330049152431132432542923372404313208238717243491076088410232047758699123728664547773191574020677788635329554184446622835827595480622625158244446043410414485304064633901337236544629695974018754541594045861080424786986208933712140902173287687639807641116157067565853797730124805270711064840545305872102902403788704562956002090876422014237586461709314334037456772090098413799749423212577583021421353837960068946668413747517542689083773193320070408967514184053126841367753258215325894203170029061630192997137979757144280922214825569540735930325242778099952516175387417734417904356698994719516810627715765142483543204891074648588529124742415964110326650123588645769144825339649558028506972086114638233348655568471566961697184186134408896757506443980881962599817058156477772450987839623076338256960719632866141211905010868419053631605082171326567654112208746553736573376051648203241251497192499343595949572527524832842508228190691513360679547117152875070595345520971147372774459769512922529958394501006335139129431579389264751075767024762278558534246338677563902133129839997340587071420315918527483298311350146132036818161334211851396334713711571655460606081899390330062063706591207784962147024314606106472843765948194200965353766614012030772214307331070140560250464976267992462040216421085056746047957681471574056441579042427919523694174200255377309022251171294378710944016509345061916199527400100067145533874496256547788806477268339320123246761794361443859386764179309583312936842471398034751063843822802305004103051022950199882770119299885656333086645751924648894455431320146787779755556701435555961852992666544005863969763828060037422971112289227014468682025939128484651321211069040775085295267064041366451601514226291642286796079904291606718748125410681426994630551627745878969247374188988530221843356233411189033293874138977594234757156004232520366751229454008989630187562030650029227044191833920814049040359496997586281992898383938737095244214478600483182149213536895036571564573313127666411233849295297140368762738960413500039880718026781677519888516082283719487630771826520840350276245207561521184384989751774996862965156410631828444447970678824257186752984458434501225902579395490148411956005133436500135791535962533569966215226238054446076343215917937194827859242722754218535016201812422550149336356494144535048791933721164781236421529306590522278246137769982272639881419915812283544554149758094307819644097220442866527212183924591024052818604456639610213238994099043472528017372068491973974762862557208932872917156592672898999952166204034561010960758760175825243852635387927781116852101262193801314692159550513591509154043449975238998067603124732991476993805012971029493337564283992141277096453167489235066440321903662119231390954560287664714816209933864410372691598104979476708940791339064725421313295925090502528684385416064973204859059288837749496047817603135773093015865242742406258395208480865615304818995397996189894009367739433087048030641253372915270971704977570079027033380777632607486144673101284243942695407167800313497205478803668477570012956511002540911703170225192442322305934944360347288528341538683768360063486556394902085957628121867817559691354258250137615254597142063321933665603844892031689023315220441244046795363298739001199074830137996801622456439580233126792262070692585909782829510857747101073071905383176667602901505097905328776958064608550808123306587845750255522168125493019843390998295689419454490245382103484955312872087278296670564580921936428891292463259933964976619869306653954821702149197118162813841811935793557973863263131421539521768646124932235582022453349034899375720422670158453660816620870789693379806134190458614250421215774583211025534550406881034472106234567379263415075909437736286883191211662261660991488946656608757122222008570989803347331983115502110380877501123282121682213758906891985207102538924419864248256153780346577851493091989378665468515489116905039764369945922763775847436363672641577871809591307804910725349906569555761845524373238475726004112724516751180873680254949741090930523978666098463545921898055266145689437950537320137121955983211498111642251713674290060724082607085045566574079400803685469352425949723440686848951601662615779373051075739437587502184300188458175422684689362224136934075032289460830987438328068341105101306730804043387252843159524760942347505754701977218717677600928521411190231091928920855389918574768552211253805535530731532687180657478611057256293327881264130480215558310708632575296531452274077440020701992730329347463878471932749396811270086361177034910935908679860356657241990913862411472598628454563643456660362823561888612924032789598918336254776287669560584292631754302360358507450332270900418629889538870958630396258976470870045293355951635063372209509188578405361774568566352693645034300653990273120421398667270906833138363705463307242257674950051846479455064903263031358584970680289779081535713428538399100919888949502799545004648669514527216218206737267971747733298797475664472643704316770068247200375971415237544481348654985952816632740473656214888373029640834837275901008696969176596690673047964319932831878557525588186577294361473961935158743065292320517850359300885692224035253613095182019714488814636864235679934475784587136680370780419631886225543594658269706354582893521581063859527273551416110833876386038137559665609869743600072789964381677505108763644681154117933233285656513446925231999636196497822622515665176749579084364181360594235650712435009312347021000722284150970370506309871325567891061752221175255683782356485612876349473025434582036434837195103394438174248450128031178587214564291290708582446700186190521799313450077344557701475367230353659889034262899999794517661370113471749674425900382953167612388272724881811254894062175514368182773705503940628670003871657967518010729766331624978202318162028588829694496199818064493771681899780587094789519301492592121820610199927855022721013345955637275091695224373536470115719611422765144399168332558666648272335766766237235668014228366830885527639701617339608097202614148065729568027292678403581696641099656143155204339719309279268944408211792239689847499639361928946306987579586918603845180410776226051992330827256283920218132668529233974724482482194422161268332236467407385736234021038755644837327666925158340506234996114568787749803574164101277217569426904310020972223513788859651762151416453954469847450738666782866540004856395891596015507340567922440816688286014219936834329947036301318322315889795409472907423935104775479118020250703304836961834336218557415399216509110663538192069841312906978529182316262801087926995131970067704353192454163022376778201056345276238225356008871322988148216163688924251123927993709535882704119097825867489358250790728009224582069244918142740655695470741378855615826583595934303419913639145545861077580508426050043077373914625589970484976246105687897328839819046542114571380133335251486785830079898857769356952515429246054748548677983596997464555757228755421997016795749417597530785219363245063950949604901408631346986332005608576396461386413872395191273275310740451448136440184594163942694885055469539718727459170115911093286056828095168256320786138312974066534513504128503405741057942786708845106449839133740876295362804021096799738314095198860317875600161968306137500375449128380633206655419902718144644737967705206482316114475009757886964133297510190313756698836988798308985267253117199825652767400666989321158275931833601040899294163784240973037321273749730352794893312389826942585286461996836909585260059563696639319461381279023398234182929496408479124061411686943234148953102722175417933469722470106417233098707343067698872084004891627992039562936959431941079597854127688577922570478083123907973759358946693104978933917738426301534884302528997432294504070856621862730711491592001788864964863333352118243711198462139756826738220786138974948788094444610260450925685331469982203996552288700940470116135958402550701403563425522289282921275483935904036710823056420126029291355493063489960713452200680696057728633267727005782020429518062553368573926480265875081704099033764654705808203921545157309525037594500557866194793256005449547000995772090643812269353833537580558726378241504239188243729776777908646602408648295948426065925012889153495531109770838649433092630252053483119079941883280657865928654150880971992060036489933355881367735497526853838786380132054796783867543428642179596083362970432672812310944723639746710620824961378557790993318216335655548611454367225409870229073624845082490495725182718442268076153744587732807821275799695127932688542330943714349901209325177134112525798995502628638326398017872439572376995426475891318041951062016977423213425676497654718818097232508924011116601302388897992894392107029557838568253482421683596924881581777908562587926207628250291779718402763577656575552339824681651193193450021093548226756639497374376598529756967289407075508869187768563201567388114077439951783373167036163120784566134240984121124819477016904684864648018448255626904248724385420199899369461759739944540767825997864122209869719215418340311795457514425448381131375785434495348812028725378213012538367061264227637934540534384615443801697950457059592854126701613103628606709386572643669362756711358597734468487254811862140152527642733159398077669385036660483477097555723186998697094931149505206616599525949968265588301126911470938643175152727485089273110844233008742113948249881672546262869350094105339908808488668350550719428494747986981005356193543311962100469869580994655718195267481798341321665194146857126993585840178030839410391851593716525429742085081531034829645077820269802411760268063725091243021252634814814513917119394800249011055220350923048632538116036086500494983533905227288111547511964612172940826391341230610716180571748136927167595396590158765415366619983686360239170126487094160697120193359872409772749063025444701352833562631840292534825874484361089599612230965831113373637926605288005052813876612512643677934483243056911787089892640374992971965509116396948901264699984920487071366407001343742604853860049061898769290978565221585791386479093487995361079821922882556606035533912687319915679274085651191151713329363263953053587092093658332696343368959647069282972642536749148570602160488350262446432956104505391754047510859472793302230774074459967297129242499368539976299234627769668824986147325657330781192019034810204498702250279064589601846152035106817027295507466492148872822630159645867581092371680000312342486191315150600442278443461783654060921772446400355739870172426481877902366606133735652054781291268413835391862495311042138054601876964973959779230656495377953628882046197047709281397399819721421014612921321872331769804727469700841161393451274413231310853700382539600698114037908200481832977765774207639438167445096442601879221037075126972786816946544675410407452445888466296731773222996817040012842562136110064811364169977571271914958195371165643499136426431271043172913561151958816897210461176915059677053310858205776593472007994958434772929140684883000649181952426502333227189224485226068011668620783814576155251744581346380972870807142534133979921381925524738654093040420379636597663695203126034667671741477073225180916490853943168378627150238368370656031552636349485327424804259920448583349275688015407570372510402297522613703050117130413654630666721347436833963545922320290551321455305820453845582219543475397612478890194098101351083887852385306997282748501603844255327665216956317077512683143271703040722775522345650842897801348525385272694482493807456946549831165689917337616328696827198410962631097689516087891655053387126657211738563689855948462020228354742128611589640264352727609011270744032976041324644378296473276996783112241566450102242627076058148055283911577794056812639908399633064004436036190876743129011014155781723807387794524148878149022358007084618760248897598427565839154106823271998399758361177292927193340804751902508941505546510644014550617411440633441899521781848191648683660847234422980732489276640332087505467184585149938301138027724875153602989118260763455270036569213760326637153682566701588722251635361151835905367540409819917369037332510059848145397834253810088596981673241378744178449926589020999843376635476896704392201683459280075118131551438041462409489510497996162270014587200778486581324645173588686169001788299308974536789052994131259948595817171223759673111522841835505764166135920188838595219820461888030776975197483750199612443438878057120816687273381419089120924754985128337798802258610835798124847573670759949872561904268109980720289292258597109347023123808208539514068148785351966974599844326875287701742851494499191643027262289005069141926299334841763287320059757632382345378820487768536471763108890195093307795802378426549970218994323233977958710530763870038208488677599510452549564921095159666318947927165712430312336796963905245370341451679817254638748366639087991336296768029526531053162461192020742560312314384746035019207741416765873203783289671388121839574858137193882291847952226440551514820914278743810355928196248835661961456279367293306690706645994214279585866428618539669896161923446300618836261045572248156897846091995916737021318009891904711492057325087352587821483688492241591997144776129567271226041020893945272468353503278530901609682121342680401529638567371838665932906321428622541783892297366528168394915077623633387753247454674876383349770525891630836060036610348889049294065027819612273326351998619439802655495069286946465143163191314492349845789184323090638630802359082803487141886901327954943066350096919071165440354855046256471090418215647351335914707267777883381607519192353043163946574667041306642791472338706648563615733616019768287183709048025448137206224592517212864309611177371727081179620046764819527858023943594243788632827541784825357012807429183460581880539363220966871853282993299481508469694112015118455245153486488480612925237782865837573069984216602885430837272092479965739894156330125914830368496996242772689109945652175808430573550221763408101455592165643865336165989653728876864047056196997629914835165718452701328247968619074134773232672282459451178898305452624822053280312803879004192092190312062727962695112482070069007641289699741793079464686552253021013268659322985374738746413533121187540546977094483752322834748237252599269293501894257205874032493540441174168150145195567959683622598350660579381234131224224581947694126140930160308277561676510011617337829794892098468776887099020693671107435614184489058212508260463323630458438101345860557624097684831030505159088866049138948839386337426582344110531062072682617126858439566429445806000365319452439492548206350054397864613106391579016507686614486431957267172769191119205984802190910563525475375509509137856435117199576426258159967378043731860361692543537918467518344940822233053680609773118516366721332848270120030966935860914449050719900863927784682794350172864954049825129049553291763371899311173408309781199468566218066734850916751979432621966408369328098479382871302396071602257710634978929507387675474228856407617770200376535676316303562155213670257724493972038712399385846254510234503781520467533299541004127817721632285892987385707535427269807522485757452707383160002754051085507240820432459939298870560683192406388796390778286342310564519467585302141997129527303817261601796998333980831483561593298824289751361846691810610409335415009200088203258956432487914475516303799385726983118727684703011677775611230635122481912146340528421684953432739832517812379005197054400123930318877169380370211423029408154059866473201828628052305728454547415570833685420499041193354937250069613358550909428816883764901742336940693166974441073449492296697050078127209233571633155214628927095588819309844057532825975744872083494768996115713148743452444974829325581090188074900881833609088495823347422870102161818329001009713678789352108003377255760273126616685072717507712075749228731475449088701422440481334855527239442931433463928048502083293401526610916162025358301218354740227398227793435440639833932772709323344717633986899322564467250782123328664144611442159714263646851949816487728970434556799668411734204841982705710709441174832369503829880279852909576562043783773896517900053693750208982881685536753286622014788380706432588790959822736475481193400100771052670227598082852916637101659247265872579478607760459292613920954053101930529302777132835974686961361382250758518891921961801480894683882590372039850358348662079256501141287055532346632528866724058277728685034805541394554600619865742019834621948129168811203415366272720693769604656615166226772898697640280489036502792142593847130463494397357056335002992246804161110635459741076011145422182135973861277012789172285788675903554959269058816294048676926439998292593051219829111372637124970962023024701536556997145044366951511604122814802634770403830773476119951337926200324954143571058736333242644730545289954874764855787083829012179952837787482331211162622361614455351228973767299124691580351242192727214048458508526302261393709357277720132758610816391887334071245852379326467010795967631299141775909978909180373927814865801313205261282666379035918225623108462282453275200106222903287709898992550769227980797820763105910398076650799361800692578357588240282883705548448532114359133830439282766948663942595969230306376104446505476136927534825671289529186758292101973828120310744121306954197299001445587599973887163634374928252612694528881220100266079296746650671088811867439679261398997658572854271468052773479955920067190998564090942580937189762915455601575917229539751346833779902718163563475473824456768690590395829939422923235903863996585899175800967941207966701082033001994907298391503527158989191958409512021504005880337994253541740482162416275188042705055642177142353238320543108921137493175066066804831464307930081876513346823601029311983796417477858924439941106624014665667532416012544220487819273059785245127268923027704142572793344615146253368912870288787817145314881299507370680002810866031690123093724968621248651552359158666807664587953214668563470079144324210495723589943498864669640056780832196840300535600371647068199147479447342342532099920460401352225237361950124887602757312042591953562958407460308921696853954149080956499957785914646544809352351514975644710240243935754891411800018825178257555771270690998204520873521761467379018905017089059865141535053013568995155007176988890669087949105752393501056476086885838815862500395723728208447290132305443701170755580916832647039242605139510612713389567883536630021166739768397959084087402574060387475046308402932768823909376256594441100211264386944399394269865706821963258128648969668675325946177507153613321319172514384311666939918796777429682773815371839036191037345223423169933855039357453155451653123378424530886954797916403009012955654172094795243471035746298844233343027350882591598800829583961971653245678885790896631570470386682261404466096041167501099830454812234801115375879785381396305252759704141363980667950807481452825510437251815649745159862726450248508490965548514767497834837865111720042288016378915976829519645641481179474842256188397024685934216269389761408668819955602316795898218372263051949732986336356000082553903953733354386810080828733093212227406295771687341841371872196735949887311698436363812402628057484349843238335434717640852028310972169908944575655124919475227209604866697325137750990220230013158033003842699961236241489517988136253159581869456329012660530919137022708217762257142893312148713412108665297629140371693817986453923067218161094991501591068102017347391567937654238738731585430803948322327619060264943716337884845423464033594631703211654427337908540003576624202569497599120693398918209356901485586355334233562185398158022585583235107477458550858134484503250320243414655946511628039719808393099278947299957391074437773232884996302299467573889277635364307720295219333583259634609609220605991294497262637675688863355511720711505180698169659388431514674585666577836128493253258708422928526785741023995620067046699111212325172618593668925896315271114840613633351324927792521186277383061147607061636485040097065741366593363554188320496654342779041760481347758917768037528923124947775409541620538674557850258172756215745414064455855137987269156375723877014543383173162839679657015637796027118870529480934893664020185104203844833721418247844770654632936001814085073392744549178356371875098576253218473754641110674137726478474239769286596720266992867838926673102516996374940401241836280638572293271320522300481065180468871034719920759836095422957700631048120521903877195493130355304766700241581156103511274032743537749777790513804924747882231035538040893277585078736359560535275854003222899424743632558540061368152186423069207188358768566947937805210259334207909216590493914970545256978110927433451133991857442153733930826303560081554900565654674177612231044012819365861035992007479609212818227036177553961316958413819687201987826900156908537985522262882676412352759839159871871784800497530617987057961628004674982901190027600792070105979890126688874748641948192492624697453017460179278780595771006036220371229860052399556178115462334503744258175204216947904563187077526402539578456746204637734935254844348796501547883320904222878579525101133477986919858372621178922306766771193537762416856369063107303148764978005136244903366727847785781689985433226971818488601973173173261288985708214741447834679149616176685064150970656197691799283455950295591027523322369004520022066684627497105799687978731458354095691493467418311309353378795275340108096736470069636750367570188463680412291538299776801779708819469536704458140872879700213705229879650078752789584911888103226407073887746512168747271263822097709888920262416555022709649369276077091624271069522055174789969593714434003830188126223287778819182899305878773237704758604961435373705234564412154718038835096561306628725028655134837716448527652400433215405318092142052625803053190895688970502511778610455634226935421081067472370655729395639199772925192898362667403203177215651668799139277142067774873036045220570337096357213552114350962783562026432942619518519140585409700102114551660861351776845958200974641633327015284320132093882288754861700617925181903695578466021960613530958791593899841789293521753988150926414149755053466201557496965261028703601381321099525636453929279566565736351847272608292110302373684801063357715855253092928074319933379348502796097311030822253407836663548921259576756111603105781765680572818810502745012489345878955320571019903828757710050380325942034990274962834303690039005918468272442391655945782546904415969163323541985535790391898710204031946287742441062672963029906892258644439142312038004100992189946802120182184474467865570025684062706910831034311681775203945957239826352148856237517557304161603791561193470791501647861316318834794549356342363470576036881071174071038904985661502612726259529328518950947372495217322793717894689388600975546207715652626377586715221275599783482947188817965989531148729147112247649228219762292129869750128211567553041266225640224077142162532346089749383094556723299061535018921857309930868566584964247960075222074960629905534518131734195737040578352284363396319677898012410666150054245111858197985667015432948386495056929215432398237164301853909523388914054450304047410341555580023420444649875747846949567651457992126609290268161584734063661732307463902558534073260229937810222691895764216033773827116493481372741697470580280671882903308879674035014425638302708926167809301293378776943209191518055675416344617265411035863552098427236229449033027349170068209170859548746236872535293935899326166968712061224387435418226161714141693205044043576954963322565121215128704852909052272163678356169372654899970880822584125929059593704968274009944203826279050809542486546778415182942101248780426006749461432833777016031683126368610527773183437540388504939529589016789745394160577354118490719601471463169880822264159075665123409175936174855522560740580855791261980552025713858680580555768760326138787797303721662007037041159765553012134941963233030576090196094086302629279840306664027331834840071047167747937760563795033511489900614695360039521493313533846339912173716523169911420362739500215734188645707454970523277461079148501301826540651241060851673585973381720925392531904300203690563702325883383271278077668604727473831919422063965187156914347238627108520630554985399455838701901931752987573363729487827095385056599962642219481556733209814281565671541652912545550019642118605602716033868442506748527361070787235027344254316077771461489555376574255851304226011901737757129242745478190081930438255492634236358771886173404921091727433519434952792682662624107598140967969286378720261264578424300788699554276183265114126304470800038042623476151945146603201026836005982739134354367950287550338081460339262595514587677726442290892233115003890677115980387349584939107633877328772329761895698143242351147718463851495188566321640821804835280432998355713180949532778647988280057101705647401476009535022011398351272867441458559611889321366269629573445286040612536035317554169914171675688355734867692707626796264585398831500237541097472845415220710610360896301058136320816190024691025738843940063790679479070313723233989026483221682725306034215407146939071604052324939046755523336945003909604867472344467715061018296511428788818633313720539349879186514880126746154361704073459273194602418629980056382030507063410802358266645830777010593184628628704702872793689449560874331171568529164784815737564254147242810508828574059319409673432903802756937951690800860163109415405854555074005585622531549257546853231602143315742047600405747654043739079400510712139198772505721269769441097386694591055892265448898540985703475451403009442388880831022082872327857123136775803638321455377751732849962570203712906803983872817032063732002255839371799898678425029386032267419950427135858532082301726981500426251584146356745507817168137907844383171583702258273995853582903649691069075015546575895984159615227077710312577492441901405896306010709544065302638784574302653744015191695258667667704079335431970867055287579532510677647100241050554242146345752201341019455217057526607604697116623856719869252045228666730196985565722839915792644922629288933237916363485202755501787597711672888071272564704102324849331446163811456808446435164298238335847469824313773209875701713570469611141034678208101861047699645493186932429248444752626217641207934439889749382062165140456603876596998701303748031824480973278792533399786346529896292015851203464225904319736752593439089569210381851176523157894269468732537147137268957952745825818693911498888284958156599719767490491611723211472498482808108731034706665729680729430480973424495268520153769707608133352389422121474899841013315804961069286585440797770950806359745326401514569498593404593469500113899948104233480333251879937627655143175659478606481445822583857467465433929356410397789738830935282195594648540929992289684581871875237052483092469395819956855662420346715700413687566031863236958378090360221856944052888320969927709257211033997002391347280537995947777987577203791062811301580519180830956684631280264670236210929813763912057010924658910642969180020937127748755863873150831169378541061811923618628813056782860300263355853803687601115729409806799571911918030352041557865641680007974216985399196947254895012836974839737338929497878153259856187260175966430144629303758839446411847033618391788647306395566224127904790518208135102710686531896748266072911036122338595733099103134762356018870818082594438259324857943612201526287153219186450296660346439197334829593021278191464780660489866835779971777179433843352971852701998390345467619656358492839390354892805055409146724679452520925153774137629385754328038727393819236902342562703496267010109603191417209311824994800235010661073434582941249654066398451946981453221617345362805786061114354465983151736789103255723172707049171031183852573989201483232004568646432173217851468349643206665684846404259734964279282500051342583462732467317641974018593380212737236391187068365236521908310981567889946073511153484702819401501718027200651227098702426951884322151647898960961869024910914947716348062316019278654650373328351179766708260989052542873031718883535098375840911669748255870201132520077422501689336873374114895924001410750507967018846286833575977326859704690447795342653454963935880867488529631528374686902477178081299197056920532629765927446897109419943751374524213114002644539864223954587092426247207855276744096835295560428012522039334519677015833393695434578772315546008228760899250479868754306470995538322724934113918691112237305083848184102747784971542263630473209035432968412472868624246115997212097800060529706418310925852542907097140635032501181485932991128038664970908691563047354458605202037603167501108347783231036056507330259009517316516571687155303531718080331643660664483758880494870930898781183305739227786401339971252108485791184470852115691631751407224203002848424091912155011223936125692390375968548188928714303124246529816955419203258893059496969166926870591567748377797338184811197319594466852888553907185724133751501497352681664422647559467657503184320897085825473582367377504660905729480250963627144702404311107405175694581881761449542860996127699020969797428460963230526910674975146750892563882181590699682047683971330080149374956594477220603818716690411378669261889891555455135572361169747883391954811232250589087343128878381484286539408000822711974760016100818648479947449007485484394087793817876710813168434199108655189619312918370432194666831532286917719396501968869412527411942964197752683803339967487403532721618095694667075778190023269754116602847565731856851238494224238041652445185471043198874365594607295084019178576023268144417806909287603917078999531736952796968292732045302804424423405085422148319417196728459547948165662627603877657563924619799188027837929230406252277961583655823508955364801438736982047423062682149095643677492241807102291444228641282892688601445417720687630118383564589841674012291291707753619111070889772575391135468923359125069063672825796853624487839838398209170008401931087169787359885589804238618989039209946036372601732694537373471384256858508123081262608735397378117971419230596709350742626518333838177813902774428410411950146908857371728088018061802790891919704979793476881653011434928477703690445757636326952285099895269545791247302565509820198570645390267127635296143651733805509860567889017172329309155454126990959230680189819614702977941705474756104170302304429056893427512748132808369302822559716242053172428142028213750013828652424477841354396967562758711280937256194007769265047946074841589033961126787004229972180945074254362959838549720844243636985924796075701627735331153600390589991175890570255075435109472501073038238314215817282080645936787340836136739619143295773124578973287089165083765376017745531876809140528964238962718940103435967046233159444364588212195397010761561444411177575036702279492784562629646826154171332368473016442104461193772216939408473640829765110022893249885867136975058826336957851952294592957904369115172459504953358452445152695692986223320649780841316269911232525237589231471885251064056625034931935864262534855918207888376571975882035723381342182173775093337144356816333273108175658526693938864458537199400711498391779989460377344744211903614794258671861987171148415244815494924460382786715955309402223709311188320508229686212826974514684380994670135159150443833147499619535231997484740193708871803262709779877851009444035176006626412224932935692826540504414489952079241366252543828806171924885134271331949213274687256106018364115329077091032323698773283854741619949903858751762658476118669167291250839446650264066752758851317179468897468478533769503195018650765445373845225091438328101854550320637776594040449013369438011262878521332012571794380551940617585702946105995905531193400141532927071938405788445051039699989685221436949683098611460040458340874650090106632220473356805387911660053010435563754589499158891739277453510286878527763474584306489477262576030142351434153968842610455600948269254453991059318426422180566850170859161901821038590411376659951481916685795666908426549491628172998217562176261028935915430274429692384437860562252261950465219971529896160981762218860888155414761736421826602646871396548566592585765045840065507734915621613461696335496476744816033133798682079646083783486392175740974578899649450812910921923187359250216015672900445827133201952926789463350661833712903895744180693216614111059484162426476731986229212375232608547352827515584091346464474219658767179851222125654061183316134458159811572102443909907679676470390792524737815556953568314899502850707208424794423818541555209954561467460080755229866215418798195735455143261601102549094226355782553344357880235136112210729069871811529392353731856999673452114548923142104306956325807798467196812046694718747279360870947228236624560547976212225985527707913543701612713070592921671522790228131125679407891892908325632105024690534014084735161282682567352684292604097672701928389600014424394003913146832765267039508589495526585889049109131440465341861073828766279181220032221322853593616042016256383382416567888804172879897579740274045287785574156217730394255735240377440148451725679678117703736525001009523515361060702990389979190326026490685001228337864429925089437328497228943893269554191378064434977368121620287695039124692111122879573034212997447662732643686733023071319700686593804409802859328623987476476375708114449371702501137777679692938998802237027479607279272501690681988798825432013943189942115108664674464551317101990867669516635256719080767612994691098424299456815397350755882166779131103842804591770099134574404104587963792701066591900929291268146340669724432861420977131886299582957418525386725700548536366155931315240226919039747490132709052755057147890938083079215798983034773257281722259023363865677801026748536983242345036294405720672837485064793716405381001121620784571308017198125476425250427558424343740902505394944409612327735265732322466079775661153584127359772725885997132707297877814119793239888608459694498338789929318740244498994828679992583420958627054170085364272018476005418636835924409261383652602107586165601848531807895836831204176959792369742599329851631127765791717176350577015319456641859760243585436399128501430293840214507511964827783778151406697567469112693858549186447754106958890946574522908249118786392310595242724305884540355645651484695600871926384541165000439818397513655863710382070294078810173198702093671072416490371423717519431791092912873556936034836570967861754293729910030890857753084906328163153566962733980803364557042618481583997879661496163384495857242714055189484173339169539145300875200933208938538984765422302326041255871632958331206046836627694461736245038627117408547259655435515641041838193125797194806077723123081265798858948290004052479840273478447042179903681520016943590674396762067080342351062104909689209273832240418317225431301813293317411378067539852846016892607154558957705902337499036289180575410432146808089969069506620946435907318491623456370536496682433760153127277802476933091484550166255007667342765850035886481469276467470277223545099074602225630519650414905414588890932866553411814455836729863069840027638806644437812092019392512221873790301883704679309202876144383070443670241436807913328758674829004971494267451934328045068987709580593185610124783685672876381685103274908272325442073150420654552871780156823639205515347635915991823918327459534182068441725932736719088968904383492753938980855286335267463521278087511889918063208350958545144187489284653987961815164572495135197644722865466518637392021113479196385087656394394656804102548640250535264168437233044798837013876808231662986351906844757530041042418739308434579215215923431338239757148081672406615195081983161015929220008925056498088010711159072634336994642905281762071151934616021653538703859567260052157912747923385812799207216723659778644119795947192362602411268056515219697721497958308955939228022486503714022229056836227860521153528928999052234095713536561128975800213326565714675501656027333169447865298008161469983446471352079545244146021590874441426099076818166001102548990421607896631174828248520045141646211658710613022421117675762927631223776830848418656060873410564881609598499009290743816987791056014122909984175070184762178762594067090739759980549735567467086130251358140991315284580974129463811137291564626085080992392470208000308305726502519217945145339254404877189441622642040896195209896018881401166262721758739641423469104391839808431092351051910287787456847170215040054597717493374806686409763701901230989670323731043682592626633808061657917662799133476939580852544186694594432347525292077127144068099021706376346154886022772515905477349973108740875320369712084425908739735621653323937336327452100246540211244992987871470824244517154351342479192040261697160948016835385169412605359735416827501961543817488480776818136654120710934583035331642245810092722339455845878652999863133211526500647466521650624553767656412097909715859670742572989612645642734612066865544281288881273596525864435223918092112491051021603212526489847320456730367438739596512608416418249679126749579032746108108394051660246232472074728366474356256443067698810540531659820550331249468774987568756148090747280811168070116484031958594090860811864239227203988686116865904823750007483810454817772229267395019360548691152526087931059647936660338596553786182162896514785714837358597572255669156052097486945488196283821006245849734206433437605845299527927435617300745200032543333409077145601457092844229396454935858529508207570576490105408571524300616098690819747174234680771784940652017951072910298097163269439850110352037268830084616081067184124121140544829371293999542973094138666514045182495477793065494213954156951588701530100551680025028822299711596383680659424090918604147355800642297943801726591258866669709087110244761974945322761698308118856607773503346709404271335603658072209718682168649282452190836155300242886999119889771978634292777144952867320135581832701916557116615601609733021074327161420312834244686279582197315080400568942338064192514566985537974850916590926655336723844602262833424458175986038297300496716755075377305955143146613611860363881807671842967738994733399595949623756669077825311792439901149622806216610906334343351470478996784023434118169503211831141663996966052711400991984775184585227229685859845336300314048158917797219166834170055821004350671163008648568212716227175744753947716516465140278948040801974994118291958652353439544357715236017324827869210888984292005365931254462094005402664430648288978633664656402630996804189639323597373958237051053530670887504588385021634701861577317280127283949449455791108479469653578027497065520604990889513093188090216471605901181544526275422368529979993279339045869953634293035716034921607385789145891678495444376270420480675685385390934409437600671828739641883322435213160066929502588734193273435083971120078895861815589650499690859679003423758921951155347304339986929568633846472566327165348323116898839070537552599971120288015758464825206341101566268291091443195068193684855734693689935390067378471778095589474054759028465867886420277048583637780320454011125466857150517938274764064131275211109533844631907207744917311830997571675899198193014842438211272418989874068772201014898950348452454483702000174014969427097326780380994866552654200891524262647756137903497359354102033916881010437840672047216384030257226932567851302048528274343699416270078707199635149612796644795441661001632120370009283795172476185736445106893829884283517259756232807889010818773127444694814367062980829077252220505894697443492422387267952003369585475721521395275103089399398102068711567510888379095862205583819722290280971123009631016443079472213682088407716729269401507141792626838666954757649546533569412944317995902763662896469087830762364997086467432803000238459889390411724058300644257506713694260342175019184852793268972878240489906985269280874615030869646352566680201848626600166833290931962361609581685493058453066151494002706830710942367901376786394041902526787533940158054829963546357188712201114867341024422464170528875520443545027164207193531769321601025990657267429209819570376112982502975132442232924108082761068264549613007655025190299784283439642775383972662174171202682448897885462477985960380990008571019463692598356439796427693715647740051778963367067799405591872971434176260617935248001647290144796070189840069848792469480174318003390010942425612527299332092055736020514637718897687215782416931518463775225865947999221966283815032357862178693987074832418624474211153023914088051185876700083328243704268978680524651626564354130090840294230816240532651272725483690513258871972165531801562505264583297689392827637663692454753345934425850563635710500664838837490609299066021262470312894084723755806416585847327309628509135933740914323340226319649878186716344738005049128805742890181826016811909813417444940174039878984116134194288026601235326449780702076093016622975199999792774637333942803370064366334798096251343928933845262819464097656905381920965928300107020662459884679542788498676569843404595039270054449404408777199558149401594014641112478662465435197541992140899778746484369153177270275134418522868845426009287514758293856531771391072185749076902386129036819888833851957475486950518389780388719420712964433179122396467408489511852378497192089343079571902346570216788173967925063731773455086728026555811930312357595254006501126064400351190868837637205935393496225727201280643754225983974472531121786564272640045656217959964685250863119998356792127223484780776182849496594743577888249919997814037292270955944950601289580682564793483251907429464209266792916022185136284886915963851803122144688979883239246064770190786885797559933504458492998989804138076131554774630198369507991826483074302302646476165291895469987216374808353833210874368475892913402217921531300373190718446103214843547313812123765723028869270134413460719243817745801325812769674160858529835285075641377774775595628425777434483500358065075493947429891064876096717979512998574311766942389359055769777916236178843528952405195241310756672088597372322911036671223741902069258637049379234953044313536536099337528316531301721134010616561703460396390984053104132747484465855610319789729736365312786991413946435542405928378351654888806237801983233996528546423839364833301079304168753441075633948626464882604244632524775867185223689808483068700328890538015939089851274444153942858592988130732670065463318086215934229333275548885767806450912544332769537702865177782331625747948670773029401857865726668184584886535684522933719063465745478153525618999499296551972092538663120631565138789149293588441982433916433290004756316198795151957404583615133585995626641315782445776902804907343167419339612303655921235808406666945560054094882607232669704372431227138629888834446970974110316877223170852947591449006771777746069406452830410621732230795901040399285280695915999688409285364228974237823113985739914184743800189842109572296931074627189562261588850387819600370267657697108082464734305721809083749697065866548792236814696091797111392428726701530316748136377296941650187001371873652996498673873317355733604104844969554375365047419158866505146660566452860673390922716580150806387407570536086216988306752073916297770214133016473405699349080294550059358790369861407137723780437994067019719051644128813644292296528531008795438045128445842736584293257666613709618505759532094527780178529386114417674369186973772206664615155423133697189314808183718859750303151471469351532471339580494064913913240945306491192619210164275840303181670253914314639264162427395370194450564191043003888837712838754798673906672709937945007609905716881606112393098736243812505957829901276244786637110422984077530332998832493215191267173719525553308952130903320569680491784297304423190774208713730560638241477616910614769611322322505172566737377393479292570670143586488272247386742214540450709800181713468326015086567116523058303638579448274633561900442735019603452575293654469467507266566510659689599730487272465768116713420514458997690663058868922323405394624411261820393508300114427599367106260859953688042906542248558952135233703001934216700064980480621531518989578743294853375696309757385304581583012448653912436688999579075936791037540260480968150645268639769258407323145349660262886359753878447788794568804049967414771271892103219441510694933386384157845294021362903639939386415846494863392157718386816742933679448455698433446346337939381075893355075327593659666679935741268436555087465801350102904721820438579577121208971743475830585762002467514475431296944470995806404789079542312378083567364301399184399877920013759944007671217295150749827417196591403116014672501378315795045777207199556885094258993893739574875404443989649601339292746486344034070375379108503710007698255758501750507828067122667573368027145080366349760202015413930001160098252622922045890163832438031056732679117900335522438107132096813795704803367929069135579902462150260987186352248911905735346657421998783442145244739622632002798988087450244318703028962838770505520696853439292316774592481975172118001880327812671229910029815276023769824775960680330395901288025926093496135179133424970515004792627405169312975504732397039700274956197003358415384017768263934181824129973169543030512152847958678275350789301612407092920591070519584064252234273391079037638782633974768422818922163552281693557019779167447027503184453934708756268176284802617059601954747135716594732071514992784333200747142629028349033982460534473236326164391822969444972473588470229422094804839124405042919261421908716632890419567061903489061677455039324811097140408649177971293311987279577484610644035261978383588958837539110334352324040268024116039896139899686674637338481885185422317269793775788329089639141686543882893417180835376025040844383479497571210776943681850837079430128769892037938629816241133403726270314756851102100663397506803225912643399168042251321819220794451437631801595778233983818327339446284899544502670364753051938046233393470378780829554819694971216398372820294824883237280266996907232204329389579981613344458262875686216074629525852820771826156570241010885007863267765053556593138486968634518305362097706671184412417859534120411869066274993163436369790844200290140409249609307216045093074613289629198460560154267105581715500415517750402163544858398887900144123063770571424989634604718920796519635006242295580535137149279154437315047556234513981792243809701488603561732980013574081743780529127299234490827818807460373203055463019304830596663960532030685179141091338435694497227504351077399708800331733064098094576451602070393397894409017020371845222682300308202291193375337892856655996253060401898393645688555011111436616756858795678080006415032521428063741491583912554195025151293640212709511679209181807247145448145065254921258672532182032107417149843287916339973217954359910099312824538734448495188731014911058391599033873023246356006680125773406317390242347006240201539469295650645354811702534864752271275097334839427759434958879249099367805169968355986783495621683248467459453841507155243872108188632186877770857205086769401997896206404710544622323599669762932425018989393550818450693882656979840465064740802586780368801723610560138790917721032943040449618341869420984006589365848231488460905353224402137325884686846724437942268707162197686258669419638584812221128271500474858559763330075259509725160491163642706183446706882094991820061740835543656607037583861796943535783916574218660431192578160037298720345748417868275860782104585427322362898163202837944061476792990850944056050581587196632221848097846560249072336231962384232544576235820509252363421094732980508036055767455144203025537745851883726845680856775035310729555624666920739952417656828037584416716228601935479646346749258662480431857138155975499923708922766343100092604017487828282197181262345833612336406653043108913449450027459495140015127001429921555631346301103596814058782477948822041908714014661067057715541438345674875996894846159933116594171282702078578903388502000096704568484110193320568220366437930898052136278968619502799465541137145580380035984707410705248317714687225773604045567430346310147760086179167930233326379126003804092366234282063243145386558280525027055729782078267274039494242013538417438554705203317383618941268350777938731030005384892707907228163643011874730161341781425718428930835739733699567095325943541147257813707179206575757524889877932439896400253083065178528375611662467136452139387569949833721973499882931046803817806530395705052132492879358107158171431240924404772603025978194651053343796677773834743759346572653478574356732502527787955329386987803294645049506045516531931459428164969126224118093706034922012354386245986355992148047852087638464463022191566183643497683541163914224193863224050702354215309463454668255314952662250309644260793790773944570109397046193629175231543732082665586295304973497742811503185481512381910099011896676611291904498529954944933236254816569780485379794037955641305604628986625450094080440425288832977537257954823594379621007341155130781945057445478578726758656818207115866600519390085251679673354248810424968419618918233870391043483581717333798599959662050830963024588327091282176817939151817012221388150573636415908470794141419120799109047157478346843421031164592224080153541868528887297887342771335997665722630541085502372723016138847443751432682326840263574694319003140644836547726429236375180407421765962302362238184912491762511502254977131158775855625968297373407044180659276251236007044966853287350249486133079965566562861169550686737943350102617071430956826638625280133275530108406746441609824268850145985396714931546964240476181180513191968739648759437869390680405348545915368687668479024528884300157083907265022995719946525538641704139363400329231907811795512949556111926796663329268175998211986515930945513355046714127385323589832286338012551849487407944292735716995997467222766399074771306971621787790485166956714411723154659347567976923973537529418094233831417465807560317636840297186575886356479662520019037774440169291026836498666664689129366140457493817254413656323349342088502197990345307538168854800474288437686802671502929545755757362388592129844891293482813859655365432029763075151004378549192474410182422430860444855245675403178026958048384071864294386665469619346234303447501268874366804716746090861381393620401066087976154680481622907158694116493563826559808939697589761024311761967579513092192130050934942897118059791497330307692133099077194120977580212543354860529544982231191752893256952813928544887375387237158230474655485423509082612777957160090042475187454628378698917319649127801253830301833756089024485441802795303396449685888597332010847823471251124405813195997161970550776724906015114395783002246018613534310591535895018289433046707984013053696304585821312080463998430951731484516046276902627598301807655914347882922935373646188456381089102306626671368482642615315612507352644054410745901947081512107121313499714375261221406891237464877408226239106186331840250496276830269322264615089009109576011251662387426552378096558517310173441384631246879213862857304513851758396224430886506949865726289839568627271817701568863050299801088467560471211339550625112416602671902329160952807274136734398655411497238460958102537955057881137270668035703058905309392037042628637191370054335384234385429068664967299161876740345427736082334894255840975566510365423661797806245947717374294147277020965536124381410437303330750300714581000461412956315652482479114831111513262537319886054179633678481976936486343689959641691621039060349035033108930254512789581273988322470943018045678516324777156321717423886982052777029885749340858801351175521674194656834684071400461411559415099796424090081221673333801243426207136400038428801050763646635747505992152051339702211000987283685410741554920430558945437138687544829543400494605598503100029504931869793834397438994337252387233754272580041739228353117747347783699852307498768990709306136627360561187736090364714846226479019661869123904131828778867228455847889926433709259076062161892102517648918817419353602369162346651301321204393484075295977521716743271591449008684961933663731364801709264541222766152178462830410825035117901561058412912558243424422067849927134956904221123002841735670522224822095821373009343598508578581053749369020512572654113410484558938080507366985277642602290266637228335434237156667668383066820193042697080248379365965391611323652826758325438506368582354119733664259970247910066022642009821589455939122977757364349110612460190121394880403400808423122259142356128779017577675538187970298562050020682831489265412211597625534560116733609718099015953976255190369043314215604797804458553629699093796498090963659250148845648734085192359167217352311584250833366288944778551765564549820971580946472379638357583286934194616799458125079534855226742592165177048550021916820578943044382547150822906949242457502088817559054739044073110709589417086227041531192451150301638758993173249003879127872738599984195121451741012947118591525018690921706864539322005418577068215119237910315187909010567862781364138096912914510120567380030562414918265131536912656197538458864359219005865998685182031690624529048488891351096579927641947536628539628261657539426112248201993964746600918929538158848659597385927966387762726071494460216340436282832872801401344404855944146996135212614651484004237533141283724647726528399599824413716487850956856917556885741062817039205742566935186796298436946515107274478854243703334399081527029806310628128463108293409179025848445759846994300572904308913494925535941635175213556559169211575835454537940552886523716274999480331508981666982538048309884231983729291776224146210144291278325810182496354671667964094119796097342630192347515144643760051013616133838941621546718582939862339154485030300661186139563091043268352778250180000039200432692168115933088944677555711643601867369656940902651541911731887944838127150759007924582444074901302122369728346455710021788026035614843321188671395231476117220332102253979719727017503900260310252999004849540609906496501017977370055205491574909559760758797876690764053978301305369304519459208833950660734514057230603556657835743459605251032444908740925529123285287364499234251868497377535338409315973690225490593646093692462207290419610509503659938554717897765530230618485574156370004633448740747620648924716383695001485969317164406639168433102333871636387613776217279529306126799452446953690295109898954799134777823691978509176573679329945685238018754633993177203555841749543304217024946808480344687843906748697222727141204521154804697087419224119524005435305996079552882359019046034539421896671446251647918278667910517987027884959857418285227411995612426182808138898019406395785820949153192458012300999386138606837440395954527236528626482699216417478039985865815161291089999422988062085049205763071403866742060661697249149539838675495445034826465036338608594581883367930880126058401387907709044489919338490217796534408471234811313727157253369298622575505349400822475533493696685175297266303296415883417659207885470335795697635267345630721127234151890786764614172394755102277783926388729560841204591220805883499705311806645177464323988830315802985254878825632518283187075388779186402485663609170370897885737587282916793093719577117804226828002038505420141085173213935359597869939132349478988751877362784401076492431550429948035218273327907742485363906588915618906176362741737543531023544719371909850480391080031472067570009712093401818484821770232722721940733144080668207113583569459172582863122624926564746018390591931661152764868960882646865897560155939879499406675441773566781088947461266374231364514779353684990945517997578580618320791582924434314909469907499676176250858187246309949037702285509990513678819833224381307254508760190302096049443596317340296719859967516969202083243094590689462116213454193753478070610876492118134122262754650446744039021548130514232895377646648529648068882131096964192539756749630548370631561245993799918178686211180440073464153865688685718090355482722531085713800744148247503032517933469255530453161052476267617624812650801966902208367325761866593448652613827721418611912012333606029234538104714252611200985652717877450860566165752047690480029746404911829574630806247717605725269082466669601860979157659499288861823093308505576212845148370434462323280050297419043691224309343837009323459213902610910442780031569894817636812386437357110768411363373449321841472570757888560288988158509963103432149211023643656385886622009381048695036968526132517209089091546895637530694409186854795161482990334456616072975358959165211664424705114308173352745616069383138339855136988274599172500301732086863990480024978054458009982202248551137459865611274477397362803073801804489171356323609016501822700983267360925771146366619297890320643818488942762138726093854400223200666415637989249582095594902141172067859739618301502870289393555223313585423899532381986950775748551762862655342381478175649682347944731548009068384653129136585432884949826046032141547326009691197247407573880571260941133687107888548492591704763532422546020297134083820811174788549281171851976950185836084217830251617901875245234034933113769336272416772371042345038301252105515181899266784485869188403774527785511902757414768111901318127683240057245521582448510782382631686279042600969450120461633315288848490925105429952622489363362097097880431699590068938539146095163934196049170304268204674446644367707679742996245351452933970693691576951084200957957133096688402072132438914285708543425560228019163891502119480011674964955408820049041614723179798784628911560230096135346532644238254049504993172325231437257182581006335859550490711446594997393046583823161238919400893701637559999773599156421756878970918702023441333610902572208683966940504125388368638872388328388242402095069450949340023927702496547496495346538484708272750607943788972436562629469222841581195274235899051814022861637419339600663110877864472983312101835081109029267677164027483635409596477396406031487473986660477858746632650996304478215382273148718670636447826013337460876067642066327697514147306110656716285992291259993443354509134595257255144413159397450756859539614568024809455288039116247351428420052003904235750459747132751136756567348216794673457176410919623385686339481898764160355077204482162955068029700146857028946888037223174836471506941361317132328305263893461618332856000412988156110952621735199469158725420529698533518079777398062830718384289825012992769959373209882918616724209667374831179375232918220517218603597010420515178959828148394950292035323065426224607167690397080158984784733278554883543828179194692216340067894064668348858454986109810888547705477256104376526777422151121650907091308549971550792510439457258722141694487607353193794107567127673322356652226710733794850403931644616648764109973452207894415490248491284280868002582434869629531468654063876749988503635060577741550586466685815391347379760410614034863680322161722091844850174347499526306403398993090346156684062359522982717125223450554209945220255216528602383103396114575488612617464236811148962300881755839871798385723979730612454949618744387004909308490577822124348006755898351244370978204821736590298210592486019288392669650188882700986157092601117979339091050618829130638697601814565599211544469360155668730117321235681879508277335721388339538665286573327611219773257563233403278313689859280650903648486548934754322796979113070088553715285437350706251784286915498050326631833822488160038698038702219546224809042442423021518458708693845206936055119592002248378365482208280202177025257316192671707043089444015351768729253945019678010314427140093011748712350922775763334724397867465810902456244972675833662055370323569016030465149230040275188967913986248465523167813689459742409305421722895797585134476434474850120198223662152309920782047745609371816653585679327452580349403346633503728320036695256443884473091803331876228268045781116905719262061367878531892383523355142713957110777887745310914306481364081592735234552438304026049591878052024978670750342677970668889773199357698238393526659115366849306256158904835457717292888833238700113294713654206561357457258269911811689633719355285684211523458066654230827563179445334592460489964895549273245512314292522995125869582459861986264297162200914594747458598149180745800588019397682217662068210659535822498505795815105934339649737584815002478562400008465187093801630093961728292159461704882336856337985895717018704057602473049267192375876293607220123292416504799088498938470636048601399728939920254846011698887928225390133665726845015808393077781788865993527537200921081333224616327506997097468745809919345079802755948655734507937102693904327728736909977317753727500750173238459987038091950374008804927743014789350253823870709970020991241492301028345907354372285111423203032854050607520135957859504260198260509821642536286343322255418448730038512088043061784028183083648296221655448720537207775065695118152378589798350413450853245802817163338592666044589124526313542865806905663772445111563790925084130455164333016629123088866416403215334156600703871519675179219085952338837877186587839794797663250016008860259103406682034739659473299527894599032972555918999789640866248261558941613512410265205966158713566611027604938242091383023221362669381163514731914848146463379168702230753000228679508942157437200172226831025727206412275866998498368158134890749431688741544421865558828257542560239247107332666263317826972753855716745892423155821574786799206388645167772465085925018762928412028789021358253008222384162540188937290066829748626301616947645898588435743715979598884282666595129173596988221376540036337875532308568515981660409891342699734874620526217655186042377031691056806266594570326462973451351579662027622599378463532796557938597404206479406864082088237188539418846692858653031656836356557117418192669545624061098755101779960677618359150394067930697874611819805490291194475513229768362925007454090565012168565697263379805357896617545793431620603213444013798207864926321778118297977822771878147575319291625958191524758924285051460184928013330430735637324740765646979353049121860352614493578415915142048589005066019189487342132955777234378756210015217679394706245574172756945071363594480851115889266786000980362812528332455208523848512383494378077204983015059501936462793924576251064556414041412624183285971868979368479507982988545541425517405132836728181873077292856758753978986721413597007176582138552142661521681604748865414035518124029813971332448939977810514667062275078551337605614184855110959013689054260848290516974909147692928124736296970504917857819734465871711750101819276718239057965512767376474147335403441873524119008011081976667939475874255627188334016200815895346731121466605125162487286278401218519345283959972066908419835279768229485282867155226954685186681523824882799075780996948018040126492147891490048583701354514140169767345440465424599027950764893082360970580442474771628760448369411078831492876899740395916345087521284596918959994460910831073930591066752489453883689551668646999284171624558424207043818889719542608559399832670509645612851625805997476981024608034237010667695915730837145096089263025070888405885163104348156390911511517972414689221813169372511877321875072130732185821599368410137376166966057559499618363087202463799670996472586223006269598103859207903749753958513480368435332105638438885462233018075951944843013801176665798544722121652686195691694983374707478006223033133603374702399154648308025066829190831316883225493551387708076333185993380972805660320760345261300606714045350282439744524147410306173938625207565847909482902953592809338010314686570271244870804975271219891400691065079989086768598870994784303042668963855499088160378425769520496749271497174342051330551221051877184171530389667431795610422024298956176827454429010920678624384269001766454720533880447798537786824887105056624952122531947261669640593154326368307402828401875983095553979265813938167600647829752829837692521825672402907725450835965453753805940111922354499685101748252656472000872968299744678492905998270079504461922540038944446089564999435530704514672456392794751300924917976976789924826997548355775314548963035899045065880793625062128624003965999879062688045128092249575536070465141333225483410283991318537612725395178383192074072403417620042211007300516321963185654633328746950982890155724073252360565965829343587532499112116418660606223965729916987980589055988973634648397590954975731654227349558181300028921689154651821780243427030411155798426868875966932972905740851354069279044033717989512249797300080462280941005846001531051299920439521062423230913948840988043000822692700459293157512699490157038699477921671624237247728886309993498221176193357585491344064709553129983134376872714494780543928260129657921909373937705625991399525284720314917364337689723197188072806006801229925840016794917109129117547295997700183920791556328980284159555385192978550801570918787784481737507161797402624437992477668813869879869777024406716379513716382974805035605759112668437715232877327080040277511200835835641969933276217854201925595034451844762200811665658908927664492030317307091131817778350738932072628932212706844054014578124348448192093779954483590331536651604847862305712689461693250837627909663036053717412081338945657347935327272182031155497526236587078842001039666331173491582823996564559630324887017276683597120631777937414084596025322794822533537781121096857821174153238963004144654268451798365546373962610047612634368221719579831747973376977669382642132527280300912586110156982842628513281290978145191787925122873871513738801978242308135616240689534344644691907509374921365999836294958441556879068834798383196503233005365206798905257279964702269502844950916425436354865798890964065870816201853196365658883912070463570663802071560984100105755609566078081162339733260312069346901472293637147006294790955564216829403868434004018882161192371807860362629331837966323987776879843167255437559540815258546604192009507976270040469322655758174955831953730263006681103208778241631383544566534001705580679090362805888690670527161329732074752969043887396742804476232853566507523322050559297629776478742030156959465282552370991071966337042730536198186992114201715736090273962024135613901382792366015227435316954350744362234104263453684280626866649191764461300875326515971910897761469155834354953802800390375490210954890253072871491438193511659560093901381821462114550064082971842204023189901050705092320677614223551055367866600614927203693129977916034177460860059051590544696225858711828525927657790187753961970769928625766611368892883322483849137491216262423698632853708911880104886678370493979970769756740006110342812194159102495937984192913668305133938267214981974208401629235381556644856734130327339275146300236373206008122196968386010539415552922101537703798637109093344024537422567250990186803261654429740500240249851821863639921296956543995768563181857628907568868005812661562622322988036693684261380592941835460212907764887999457312084305470653559379004969458117188102284355329831536542685248176389923497837209929777159799638788481318909630846189943488061264846239858477886520836629561877086595671109623443182804843151599507689357565837019033339595575371640462589806821011315530698351161679375293753809360326053829899223608352158290972230449813649715402041898614426698232662889787481583201267216610317518727743071548113038649299205838833449971714344039553292705680535603268422192924244950793558448415084195459864762316268185524218465381747651581883658542379413122325083807831989060303463075319934893072227084386097916334377017396982390304118920275956298617877842673040512068068426138824461156795499396445213827843315441324310219698620927378975549807214234826099412622429719768513303626031643088689057753402999950031771334489999492093010206046653480105836104683710077564132970383351026169236989850149030239350684566562997431010983285902577112275091762401154716881627594141911257933927194225776115005953263711335343442062410506709358764239699747373176890228023838039543393894610732644218786087875245918456221793946837265418367542394486847940221487013138354598522211666872616406027567870418673085183825865353164381126611725148671567067257412047601566337440758960180329400642014717386701401409130037520828730621001430155239993810406793830269074472595289282017352966840106339411491003513511055522456730872883242351115507628585555486006098304062232677173688123996000017455940218732333690079582341335415691960273739258974221696805996010644660597473623601772605073141398667548246551018589545556179388601470019954014078153065541795296312689007119453737120157876292983127632845516094660575919245340592773865513263536862694427757155832104437150831007605209539938456402001480800574194772895503608149797829252638074321647509597715548529389788231305461635997653272393353223597944176802830219044433412681188490547119600928105416857727425162622660170696728907267984885466413985293709482980172976330107518209980612364080086779445694792787804475201839153657561240156392915264296639206843328566149849226299660244689303020559244012817844626823874641975232518903366544659609833696791033371759058074824055874069043307797982456980779548366579366707304163670894413841743200039035337691999297986819950551390968496491531263658917377982174088540309577382936517580606739931859990839098001323583598198083360145688806036668294179277108711947483982069501493575569865657289794888626396437929791442775498188442316025331493511486093172109686961221794193208915324770069320892509604342724342993364478290439559667121320503254041643725209231008313338291306381633115680585477060726761934542376802430742971219886340910954166606083576737197161233798294453592037272036671883369375927222352344087299453952165724722473740069973427096756425224724245501002576026200628456802825223297627506697219656476548124241242807044717671849430376093826668430389706944009990518136164969287926100351692847588211558717082779366950102091284348648364973442374907599330055394147920611321403132127021480949505259784511646924831549710644723260388350932104560893909768142884769790459382939540205439103239309826448715365021283095057804201054684474323696351635832618528210267412039686006116960558242147405998509881483246283997601472030800611155185630099183128537496683583910631975079783150246884888931976621619438182143564437637442234630542339367760964772691172385901182265861532059657007593576274732402483598154565500477898393239463804138196948730962368747327407998164434056958733324755500879094163207513975912367596857478796790574415586064518900182726616703699232206987787143045856007157458142969561736314407180281597838854045317792699836845533274529808707920448143141542936655333747268578752648732692151664772756911297828838999425254421170471985219973993358596506703640556580512446963039481687984763021131195136419793427454953989189862255072242234972957567595958819537700482567442977180638945530310626263564648862527043035610794708342401221326374709635900308217988087611264853470079952146501997865472288609136945360307491238912820942045046799980771887387624246696440776029514765501918665292322870410440414996138733339845569829173036648044779802275954285572070230382294241788685694426361277716667864286591119868745627906088567918046094647307443804028511426454027461952033514571049366776005656704297987433920319840236962156097209721300253060656500528030548082201327603467202754711141066427807436443759340227621019831927277634752137471896615274479098245334962432625199214368593270293904875431780720093342245878915970349544542409171179269408206601701244388941117947367190971494174567130142033252255124412835211868614132059588076152439565140302945508448534245142310488024097016754908074221297824658063498375707250483482559455469846449881659556326810441554777513385969816008274552992076606016045735927099891026971117049277789979474085723290435953607222853482774246560873650777606373683329023371126954934619744939142764897013946643089864398429647832272459305964661316474251065229150617816576279549874650003240180830022734515615300625447677878006493141637379282978686073999308294067752392556015136347114942881158704125894987994027823973735526157161736617218146346741858444388583570520106904923185049956531077475929544236013930255931598731818689981440568633373160122032465541066068584181359600832057101948095736073415775080110785965296915627468763041304929418600598192527902504076507290845797829053754688170335185559636949834540356681231898624024890145495575104844022451740123529079189447507661977436769417312386335846221862680329508236466616228932242738429432424157866491233765960189835416083281692924201860026909926181277213697554471813165043528352516535092014097741886604091733165288902002059595871204312194819002100791887551344380516719578210368598184635978065017592369688147248118203628124347328732335211281396516390775018980493227816854010286273626737064146276388722680215022381978205520239998846856198033312960303428623795291041804747938479404348553858358463443733553814702984388714728209354966368497858583297947921121101097915354544401812929842882717673811747937365030600566774578907400678661948698572169982475040097018140457894452448235051267962202194895254134424755992132524609801027232271418327439171697522274599903063957630746701412440089291982855495354814525105670837664822619924736163021656368234025371860947263531323347470230356124028942052738433419097107067015492443015021456488318216721020847041363448106632194181290996981802515307236672026714147119628378812152290073551965275953137300173176645658472768439007336305056329024659888579215596693751855870736760036735487905753994289025502332529501789308197521525251427651399360018043422741344865320991697136209673121859915941504317774986433568444924500143519999446169608241996452446999072530381544935315384990339276752168145941224145628594770811563516692211352398052777607666237985341061394613162068070290645144202298145400657669340700756497201575867773949129550402844660744395257638817096810308844211274678591542754481501224178344758360109624358084582895901728517009620886057219941720349676512908217897047797369983563130960038359082056668303748893458079891176365710952872815333348912388663324356214073570503572376853283173959949710658679567650915868456196415277268380338804216579112984445288602514824698940603428505412046804338411043586542882434685817992477008696450752375159248182457606407880167200383313764630633914692186817533804819744594599546140589355186072574913951488644775202173950140834231853488589365312519743338989826730921318920772653677160898412738303518795171663589977581678589597146497485907332503501594678423145474869114404215254171633839343498436767967002794947288569478706201210986843266862706218972874354675378718068109475539699877518794679231883595861488595954925070542955184185289589964239687620520670625130310327666572716188021651311858340620914780745236075636026170893255084146938080831613285961300477392428181994563768022839679697487337476861519166235344911225619399176344766607275661817675101590339607579862414043047831392948900757225707312822214785638717152588415754947209554565453784879553395046510956115430636690557986481186689262561517499243120713462837139127789698578469033512883980439501101864965485254013464932581627538824930009212588127000681184547120172837722459244108462519680232829097332261707256270980594068517820335413413147307537741903270126818708481892862387494406677647196141779037058406547190183461157692469964626944066872590883265226958344414627221219241504760533168749941718888933848655524355594369356369639148011294199651932519883334758036124538289784223263192190683013305038506483985137645426873713003687891924398026678021019422883179219634191025853322749717988377280259449868993849728742383226805468633015394011781987489794517708416006872705991347408870911350097392448808176071159410799643887753260724956632931536785171051774514985056411913979117438862356354847214077455414413619723717439576837309338782011822138614248473955130949360261971873652847570856197168064873646838389605144519267327329405749520262902323041759743804428824081150918731599509645803612334453573810201195292983149942630079047290769088106271511887574425952789817577756196764463130861100449385408164517488186282382255818567562677307984492734495684402297735253588564740141239722088060374652594900440410967233303394656050163133407083787276506449194194184940828605110340732609529702747956937252446228273271862737818374071611417320623282862546284703139711678278937077283452394253849234689699604909356868263879209850374637708001029101728239800709589250564265425996769283247943035015140567022240185741632955569084261180070622275988498635333150868521141264760223619941519303548641575374097366998235909145006895826654192390091417383009483306668819394093230719688819069170609514080786870603810619884966326987253023218516562932351966358629158896180520761081937325375162405886067605610281044117265564788870126080187859511056486988437704124323418047767047904975830874933291629249574361079295396504383214203069426662361295131618547946292679867150339462315959289614407832831270849808903823605872973347424151707631850571077672561503417364815295485906490036674576027653395755898796563988527632290215756113216732546483374230161936293910521380642344473360890962918786439756630318994682759735203728148289710277793689539419073635962390142084334160686375266524164006342204203722569035242594750987963899710778549334684752303150456471893263082840569323846137075696200079272209796517953567739826461088248696793000968011226680524356922421130608582042962303178050652011100829610266253414031688511042664720082474790067966494318260087672804982932217477913106439501192104403641979814716753124800009010727633950619725741374196698043333274583955202983583644283014214010394010130656640396424625619335823774480249793166711590311243603499679750725083163224338830000328231990109390063788315880728145961299681112303777986093199813384609479214431962564148077318658596192613057236614356349597041961109111899607619642333994853519411227219058241243536166864810507369506376669700811894931179963509520688049123447669247822870749315164654727715831338889004192973911475715081586358453935346119693091302211869075113176090430629409407328150066504044296407640587942462937455519316759332535891684818818601550829360844204318578758557671731642392265428114567598070942474410335359395958110830452656061876208648203140945796313169335058030319116118444936843619230110969739648271820869664329226009402586110415368813189350148072006138643537324704114089191328838433734681655695422602994742048313101296639853706138253201046124640651864101065625745670220092477631837573924438101419692112823629589167570207233078849065393406709679159675118608396536978540839433409290506475864293574219410975613261504801649518129677967469486603713614780807138207327067564611077514749764685905870669514785954099537035140502435292990742891008173224181731112928415966569735847807337805413110990557807125495559345384139728528497908901500891399539098642879635161212125478620315792211149365680077757209672448700644871032052968573569906667691614397154351149992986096057091308363639253250510575575979506785800672724766138403963295596030885253475977320703921859200319286107424086262057003722338121130700393166807624287859443995249040482035393205660674351021151367307054047408448376398425470810964843685275379339083995552570480734481751518945583391006766879653865156382979232762959497739724632295519661500714121888207017965353759745088134000671540813661314547007997926853993577142034025525989742662690258573761974338431323937840381765336861130545794356552648263910807170683159378897377794126803146721074359709534385801539785890983162067057169023357550857446458010124581574176398558245943611805942904229196615553982289529308056238205627726825617114050511105531135749991437636967230321947084727147780690220436719526407107817849326806422980082229761669661806418548874549956822911650176417145982592556978134371991672476191197829785846661247285669897797797664626210887901881267723461455389120874442389387899841165522664889167174922108127383429542993959315027221549846292249773296419237370005565179220204090794732364542981241636246600341136342979098276722243542431547909252198882724572477336900740533593301106590668702332952028576750535707837773673769710799319273210371418328567359735467039661822986312519623159696558796857748130451921206996394113467632832985445629326254843222340856077573024883096859531586463457340242320202891838159562337823675985668219422249064970889596180649348875763051626547099286078655384089314344411986060869413375519106016967538512441477521366936671569231649978466106226945200290488017007225485391969305912445835657497785666323193030931235715450499832256001260849653224306397879704619183375883687452689980316089875905125869229906286935768688137888314788300421009066025495662462943953385452915660495218509317515901926904313322181846703693140756354808360974952624172024032560147752528649193884732027313210024894700582814551516102912927417590538916634239992629046254765522411880297742105784449459644257122283439399621724266117535749678971900109712297215786451734027261036462680945346874936694121739716015332346175043110289026956188564758855133654117184010561818403118854158293804511627185568734290273809701297413878278397646657761459128159914201501054497133091964727601447360096688272107885268617647449807399170501840919886782193051156763908432866702775386966148702922763571137991691364038076941154567712852394678146661893735143208293221398143613072022335612183165929753762166888263903974345741880957143282392081137222376229491313828044843384989257044770767690724511479062697730071490128797212867165677691046357037625453441195744602146093113578179377847964781088588917926837177364486534180410136814718339177263407344867432004929397711303311174851326649851834079460891982263746955943187828688596890673684757460803838554963724902824108022115226391651097706574117001089208852775937846016350101068368484205750452725465569956300936246764858651618615887508016988460778862460632500613183479610696930714842746803402076940696612296791475527785605639621485434539352061621970181758367077053005203031705466288193392740544139326988898171260045845787939036883094611242753916808276416853109683900670647749213382096614528270367999804964765172747328018723633985054208722109311590144633936346429408567272289677354980347228591495825280651699958056773370237975385339384658498555498903614111471842029101034595722344155116799148115544894866041257296009859919002911158925116212045706057306884808145974440196567942852386587402024106826480550942140009003663615094681129121246105233308934893570337730630637156127408763552562206784895510523089782328745455203814561553578584154350397349639666232525599735303453638844161731208881242854370456131426097347126782146483264110381494650647804915507800515298900016443690090312843726141478000184221994231062310355701974915600543212780046451619186930827863215095905417630983176383336361027480372231872116629787145397833643730776381005999375689825253996042583533612884279979098015094829274319303463913939004475535420104156446342496990126093879531396441004533298809556916149469141364345436946612023232562162818027977737650331200729079841848627763456835895178796510933453329006802036447940306333183197761125042584396123631209429674621858386892467378345491185590289810430698902964624497002055673025953971949798405985745515911091478263366029311549311886446845968796173762014618556311561935693826651922306668850310207882346171454389445696046218480799362960915039085679666262999486908888629591683730018308288093855422140224463415411583850211010473826743434634573321257272631970793078164519366212808627271371115092388848023444706437317328853174248479931514358447783089168971885379806555671730260425200871585959827260669124289955897494664252884978738057437240070149692523101687752877603684270213804083928958734228453205256461064988809505749110020859798728368440223504801049201344634804425412666999988963155534112583117616222051431060489903983179107188572119890067041880921988314649916754666562905881717606415321586588035301612828236589094239265926423721655853545015587134590770638297013755404952705284690376839086434349848038293364503033956230587873526190494350580368607650703454556936147537994171781536171695492966352920247502825872147995027418473379656997101751007078565044136043505739674658897485484486197834961876696921878312161977484276755756614207210261838642445590597227127522940530413800719261100949390303276727078481104466380957380046130684768508205134944703336945532146431951672570478249108208199153400820501475640124946559891820575509547966000724966140384224810682113063739637479290483969308554028587795655301077475635034360189105069373050306304460062006607655404850805122178689589498829036893089035511165445537088994828269935183388236689568275109049566282384969484204963558270766622276363897528619270685203968869113255973787339118001490590471490934576482390636027977451774964046802775659407899001218879762723124021391156676516586689054099436711536725594358343239776725222625667965073581444087103968542355015028623611054572294338387946965906192607321048151630999993437233052877127497266357873794529854601181516375204796965597906859708465814834737551260388933764566485969674726617458026019802795961222954345869711298874154834193250797985671370478059182526053813086254190784808898160836853213138815044435639073447447238703108336372730233597717943892876505134839139557665052870892545055862851047804121209869163483159280639245895596057102015832227051968108905630313288390499661879867538296193287025380011374514671632611443970779576453074516604773175529698139841294109866435191631691144862229921328235688374690924010227840078858833826179854235704556271181872149483411513334749637521039778416207333808204978021355343463577160295241865600544192976516407718167925745067854937340091179946123773703124451440158947004671887847176105268930571259062525361292491475928487883547914035981150238656971291314415760891314609417360052164734786991739250668766741896639234433205337665945276124851940158419443621786138870272253016624971539360501877296063139076035501614152625414868338865084825087462586721269170019396307339510766034537691346161214215515220034557582794126743311852476554164740030231474758041149505180695161721825818154657910171758201326999523333314214686939996827842818049462374047831309872705084147382818735409926808901173218561030878281034316206007199567807421651735372401567587117824279746106319759132314492741348414479150129089780922848038943959440017326151035111041593056077014468166992233689905438120016320238199326487917095413434934070943236886649262671604048083770674486625823960243739469387871299631111270488314974766892746298768809854982485445784571565109812206703371045546053321148993764287829886392812993627265971620523666770704096244452105262814904850949150076967497360304971295917959033387563009076631484233672278344630322458760749298634835209348868742151758394228635315135383878609553923653255576277585451104081180234125037190096382198657595138680592610928801888065935997725533392712311283697257025400475230055173064406588719432340232675414808618200656644416524715648763115569338865262177193718890549937443733674114845299436274284720324858699419481773880838914508232133116560564998392933357942899153067869629520075445349043073077625307278531586870694570251304405884673856170075286215903103967857384065647375791714280419855969372385730778850883830355471587396866499853516895898188230201051975693714417350117693219625107057215590560824638679924999152168690084394921010940175238514267614081211130279973981251293487128207589364202757406347429643672884198291058417328482440022592214005376088448964161862240675846631118135984192123083916503368780030852500876175671693647429125312375580683752774006840367452775499462337673107352814724788957049341381487755471417064719315551733036544048031720277027935329384478819776807919649127924627272204435965552457065380921843809411435538332414309743925341945008536883610255572283991388546803088126746617220610482512924051524371019577935192761561987747411950235390978582585295746080031809168551472369350153604545917898642540766992365482520636180310820172474211933636045691469045791553028197811435263801475841068142152943716951602500796246181189572866891052450560923321803684244090775851968564285745131255213238373789823548675713679779312290897893599582694711555811565758607266748582395970290463901421291914951778907160138279653705767750041155867819111428019024428614505199366106193712475061904354435396397376763809234006378911482948427175681224852894155794079939377226009271541238081665686937609062945392229771615180778312130342122293373155163758574172792600471180537913186713644469303358728605317801067908360580811796473978992729331795460598132000130692914766643697554150431757375462891950581939222168108571452656971964324042716618052742750166882797815761404217867680144925062115209352474788818220805280556248052378915622756965597765378158229542923839983203268774858684376314951472524358086478686186633790297283072875534694699712007312948030338151443488272057662748955567804108667256094062366057627809318608568451671367621325750534807840709498623615658056632845976627669815594941819514580437747183210362096075468372298747316017489465023676731331952811550174299660275921265276962310041162817535854382795415082341291414855829506900754208533572017452090488834723880630177550935291781671166275574789271541939712471162506577444791710763909823062411640499536336437724041266800145248436630994105895900371218833142412084254385854010940983149125742601548704021706120314079113943895127456782290567986126979468658202227556424390895332602558173858881601331235873351453570940178452816973065514747996304521490622200264693807951236343151315126148415778481460681745193503064953459187242700217003622876467966035304855128869930728075121181632442045510196401300621647279387089889685835714689871254992221170894837145526934277805605480279269442390129626995928045222685594237013612448463955031987575109033046539204562324894045673036583046018026855110618170002503107266501484052861601661556254532465342902023051392494624593336930561494422261928061276656578302020737509858374564562966254428995782441416015371563670956851765370563661465105731826069509229839724615569114694323222192761175580457738818380858679654266502354857660271563645948804158049985508382207256833539282773305643871889397453633028399250898081633458064227891492261009345699909498187157847642275500296537766844595776406497430917258597247150914377980368560971691029901271838253121749251631904755152453851610796088979367572521832071733337828170890146390870553534947360118894617487947177033149133342300265223267153692964129015667768315098950895965644960801667052174348942208066297076248578825290249353911427702040451064002474743265795568704647662327376312608738858592434114217622902944718973681853497134027317521157706034167557323445425056982382805966059454503254874246864375871150697865327652030277361557015445343461985095348973600121038620904642540247482839190683875051023005977863301066342102125434042739155840343791888848395683620177437920986912069310328159068206989792213518620381013617122809459588395461999684909346578336619873763281756484253612288499421894864928867230692363517242572993721300118163825312017946970274477646440986922492540986354221688207760755951531852508125232011538443284364747852299740406562030634865994291292339678707472804827081735641617552000232395324060271591105918977798102433608935764963093025926932072539606489124149950493288002031516702304540541686744175808366377357736070875135046705710783552969981661978739222024791917996343739015242804989967724059380831280325090055799382633715188448697001734635210502367218417799078273818908035882223204183547126995860893050674779428434885683959112749983862354945812077236875647678420654530614863127303328521565065547809316736014681149867152962126811348464567767549485093439004064224412791353794060424093996339306063853881166478772705215330621795100557310886914362972849612061513559262551543654877237038869390898409692216899909865405975998612159205086883585770113768488098453564324872127265144527121748620527830405193289679949572679457993244307343383718485268234745161444278028866716660631767987179090364547718666487366205715349911814706746830331742417059045735829651024409311031390267953356057804455626203824158654204310197107112481279540889890398449162993894102289698459421410867669281780891544689426924281888515263727329610384837675503234886978334364987281317366933085797888409384583229423674401505878299174128425377105371341245495794494013626049618051391973110375266543455129057672571559669461056760756871035639039683639895892197777183152305740002531187908662214426198067585223807424078243612900799666506139327575241335402687435386320424236654762956390210537796095599807674115611489001613531759562276628676296599849119071386020859560482288696928151946963079435343601163515975339808528610765935711612235359826537854830561225062541510414894290761937873210233255933114173665595477912954952137705087983141676496906204763955495388684684757670938380550153734045231855493166280000140000284442588400893265334905660772636019184947621025008873645289372117419551605043721575079428508253796672986749565803615707788239746814826426025661413664607590140984450986627449901117965209133220251322402494709548019945748505017106358158722109042104885535564784230842961313991192396300794763070555283733801739030337816596733091447671039866526322693298119538779077392877481125706775692822233574074416831206813479601244597332456309795803869076333936763445815943884040075098180615588072226411394013242952017341323855423005831163877627832329518881786416927500036214109256695921139669913165552154403998579103156370195286071125556205034248586595430985548701449878960270721911446861208695480105626228098425501570009437755349602922829465942906517762548850323524771993175904660693687708161532647161860411239905486024488666149910686906192075653053483806123618716317781228185040487682260535079748993396074126450661042400167925842778657298501476759929252727045944536641175388659861960708682068582862059661394588051739560456543271013292052205698780963456651743849738636396630623043699313292199287890468246332174966089170426688451819402936077345140526839351166281939256256351808334358664810870151531011083879503754435314941989375026108208421157655019038605578640178630405681692100425999630488074781453306890777898532894502037951871338487990088940597542360683557693152439305475677317103447229171749766444898476277381974648528594732059370597372855714694229185054931278737991040574801487542281110947218514718687103533062797878949182683802328038936525298741018263659787866972708282673249505441358099693005295221958844157934088997400669324721985773436439660287036734354317813108379914789612657991196133528300421602581650697041669265395040137801442122579438289911369339115166006510061178580667233912677131151073018907208189994318862321315384931194444973766793618535360663450529680662703881001802501144972534863593722199407598636213880904725207322644384511299681670326635524615574316719301946640022279172108517267815481105747662634824612569334520278356365004178523975633882214901131841176061676011311192533807443961639027899877655495944093915713678296220985754011787123877129541732449205160969272894697815591618198809707240693345365919436561740722110220902467297930267870990073117245944322493208964394885967633685187592056571140503146443386146352680348590503201080807339608021057523045587015743947584613249348854544136317939486485821095905353506578029215988184733588739146072500003204064501294081551179351621729540679099869353121106434784745860187955514344811357643472426526911236973260784861622331048176297053249241603056385256359748372045488257504929738550159362335933234300997956803939496976238073309256770780244006011851455808966771106459737772057899971040978585805550596769253058934827302403648316926210023713234116511651083762042843153575101398474125426278227682681560844821657639226419130068453660073671757831954801148759064752390312790967956810803265148943247140684931826492794541214801361456361849008326048936908202223980444046204763316026328797170129246893085320843542093307294814996776427778427673916996897260589200575352803110805593449527685685324551562169001813459728399849957319744261536091633864522888533422492132960488866387824706623684596606560043706481669805581652824609077816794605172776147714252049005374814160752882552151997124599181780368289031032339460007561590480703262043407381654005920798869716349282582626822745436654199994942923183205225026532886605856942994178357917106401051524210444540358776284351444525758158590154493086742205765976947165684048035421173113818409931764320729660957003469950386371438274303816442747500190868168041953482994164476282544398740481713659108595312180251186272134711971479115145858976721187604907574542413022575555687478374029591420942901518546600115407391440439369222502593252424725734271079567585612807784697428295137263011057034590618464416327692167973716164183680861279295645915965675127137335649608798794427457696921117721176702838791036567990883679607377400589389682522035238964554339306776774016938744647573174087162849395069601370936246604084006907746589614994099163639626762860719840646696071863049039976867448367616772902866289208144652361487294217177693648535540736870585075255913184591613798548880690320205414184031836862134632083046612783462295591591861588396647202076503940207544422346453935880922845177907111035253860050553396110211135596056052848442335199128014127029544701517772287298876799740153990710674360228952645511868667260704187070088300819276603447057269293453843278026662157265072907913139762715511036141579070245725609747218395117050564311410644576923514584002564027397828400356708920521307293090527716182354785364056627944338512334353274106956413006999390897993751289477131501842560706053876944588129701585440110806823968183395445379056377458612773565746588261823238805010075271394297595138887179837021018188755647546218592568983130708957342277835122021521794821612128319252422824916535427547686897625457738247675886620264000302340198803135031193837832446462427419780823168657932930375227337351559559060893596052034492537202892022065691550516353810672832462710214738319513461453673911955602739585681132856369555649389866429356484854778277083528999504839123198758754536206880609283444572371030844316876077857175400295798103349682219008983083071141923708316772038434056133301303714075592701716136563893248068414558525022223861787206386722514157469348127296706609135443234735320472244522450523811073254562174501425068308551285155187144156681358275349016949040604069535573895288228466595973208991361911647231954498578699370880320863338693446450340566402273887924314832794759266999088958280761923762172213017235618841810222459816281960232224717161299254261704422040291838263992638204066475761412099828194328055180148092174497995678343855054940087673072382236478094222580660614577073605495061016208925311100477745071505346616351107585866849958467289309455933218061615245944420266672263791996277389597234115916574327714015398722157748628301255024364135315059471019298205475888888715382526155316418358010193495779916508485686117014949716158006575204215064357649321952499894434005876886662363452849787644204644291543677622555378908771417455639464795124009790019561292092076773382709071989320146479084886333936233950867850036533054141783785351776985005949445366946369487521821795405965072408767594777771921115141355812113758881724155723321478658695932451637174281801059719704243686029559592876791178491502846749322310463463202118771545224935433570486599678851496496366104483719400859925206704180133493044015371341830686116260879251610600125968606178448027539427743131994706656275999555289804475397924506228578412154028079049172308738014544048836692264155428020497462608077739175991267131463573214707477767315946082177375487832128465541187644367625771661707954411274756913993142119749093672797227704969233377390954697786498517257479853254924689829311779182996721103057733586316122232678510771761295723154003417250439009183099157902119525074755346755381944884714440588529625541970090824141796011708250830417446239494800948238221328218731764775173969444695581823640768567275103066634839624950620862368672775982888807167958281372745763572085955737369576317263279286613009319929048673704314081668200784500963084695820316396412106721059671550810566312440948210912982249912711549382543409684100452079579478967726741096248976155653008646116213963510780947435680156386664948212131994648473877862810504234405683974762485777757709272104265894465036466129145196970424353388644024907260908157338666861226348536967552214911409703477112391470152091778770768746253357148169082240538664134936440745992185708469373864573732767600119796726421831743648878295111067636412715919845970987071456755355761698760477759559855384123553776228416960359565340137802213618250632603185982451446228369296680018503615808817416542791876462045063181701835012661648292627855472239543764978678923708871356073770437926036820025616236752343523807483330555552729867354975008040919086392371963491936601878258157691076009217346450486779141908387839204793480498911017087340583925527248705650622235669512915432004485289984514420707232356626675654839724774599532369741300678970210929484042600907312813109298448403790678705751900446074228608218302280420215724509459136807147561205887122686505187904848159588860930888147014755138777054450854084547293419331001105319913521389798487196223127263669032379058154135030943268956374189160599423916602249187221092349821659957842584837054714981736197244197711730366283792824071848952735938612778671594840983711715501474263180610504305430823920633777678726680441843139085371572080101488552775494002450262585899810433085359563327385081429027493368168907210045276071660437389792996403101937134411617519306052053833289004055227240504407181033731325847027536560570563840979159426442677365609489693503749594141696977683993432685133765306730336898387443746645465397931556854697506871683269509939469502193884254579493940586429598372983831540850629704971633571754735645279634318135819991921362079451196035720149074595000578726869983427015531452509957086419578116932576703538934025264487434094694492648581999366352899094311058732228084993428989610141007943943998232832790170722729988997477074121604317072524538377067154832620495388323802741323011202933941298078112315456657404483062313363437144552925553715030520423856960975102390611920391944079228482008085683256825035413867099077675913192513859926198721536718761119571165464979315599455345888853937839508685537030279887856394691533194091263250041558239099574400212224897945781572867139399566652966550497622187105248188376414827621242257845988927648193047113463303969111107108958683055211977002476970472623017682970822898429881065246282357490972062821529411394763500924577059786017183807408937315276235595048021109234574460747116492534658918858197743387112165258979747803280725902432007106142600719317808369856259002806914132693511693174749583040307170805325655382248951713065655115637462656910019929990339518077510264557452555469502099096388892604402767635053540069496421351998702624041570315297717198924427280518250631991531978755296446320218117024986192438533431827427377013171148453791828084931881136654645747482639161932090569321571959312766882209206662331716998803840400123487869593737128480490025027255800568385374155227504572197316111814190157248206268719986596782943873321741154574215809405191710914594877941161852159896538445370535549916978895942725780899660008574454985320746082564545974427795432661334885670545204609073250585105414512445911131619217468611393230865038105731812780609533275046512626398262366922355324426580477115464416620496521176482074853579319235969171159131894455469494282425051105496922873506097964801761080146189612408342173395596487402598079003691682899487221377308628043759165921262111892105876466918379824737314355516853684174171371925769469692862569771166160501127145445379286661796317836397016111379492702295792878019557245868047161673774013150629007787366919015737465317069790529995629977100364378130089547765108409016383987138561046744387772666677450819538340613049512910969518746896622685354041664526712682284210290505628905708373314488223567422623492013933380993825813251015563198005126240655301204002959365630809682708174020530474263545722681264998311508458086412835590098093698910032010564374204874080853401488455978931871222922395239891626727548491454567700975660082085187815462119808916167880314231808502100891892936381994855862918470427092527369698891265631152731932571886247117158497572680180834348297416111802745887094541129416534266547415346015848026549841447625000797351336019124122986628368045657555531891872877841773472413511908689150908117593358219438430283069440200582023109388424563849451142120507767114444657317612341952360537716297611431609229009267357820029145562937167142923963505009896015783395850195800256558808206587762383306597938110172534062407353825452769495967147181491381629773365833483161999080565688167336681084780029571252408525990203719668251516652571593725996111218654935242012737445901564943089764355612284882731046447485350195500264751759405584837692236951058446453021471023191340541930912959959812959713637263074873926879630453452144924438589909147067470235755647495222186399089217210797175761852611197172327613692983324351506422345459920795243180399925207727692971806860899891787605616711070625382449899124342190110784114068551384633502544091179118572787866364380014295116804248390285716649528991116237253586995492438485145226099538035562383009377000701808662805826214903353939691540132657840892110791071644276327458664666803974006418380879888220546547435839257342992588009705486145549293444789451319770168156671847155912002174746152974845231150233062729818891733145463458242895223702577816379124726290853249974029999634958900216009237109193673338680096331930317028345255716269462171010928488365535230664147092256903087555887858262568288407577363676951756331981257703901256192014401682666222725686966337386497315857677896993193061613405152258800019818723128286533596679342034965728587257058117614095301055431042086384826068988840489800248331337249823831160343613048574613140572934274395344341785508278711747559884594017894480042799671495200321919897191322870853294910758964042364080031954785991942115661643839707124346722225297991967890939559861890736177846621774064177435043219361673253896401559612918790016291204159096708998451984626267707195814381953570370206332062184828757323163322181776616061320195832611496030515815723834823838818650334303680739889342025743997526015603418897808234559501110936032909982240913251691932759836593480333841044954475521401024670013685824277200054778208970439983665311774924658237440884901424511185884959641605194472635720146086571433071074876969672787235118867378035322824933632795850136814774287419460787256217855386859858875718658429754981592092031609678273687906282041323370505166282125085426983128288906708945477173569330156950974603836399750264758556842136830742539249363543061317097811496989903315914458682012516349644996629426022804997589874416380963206977996062550957158249335552769856255385378455247933653691699790112586989196693626401357375987743805218075994028094298877822027395925481854658349602383341867180589535226389875944846431938232211190667406744121745202726069116267014354746875983721550508266381561659699145800188975632398549151551530417123243211241219130272084680693591503772776359285290776774263701795165297878097718784668312643424377844281588918269024469429400186009809792423965403785563276049226097156943511470910229883271512114187724529575844596717941753559516172212351312594687908240121831510677578417225805768309477493189191357131155368996650573872684269599649004031948928611660023396331543857207180272191106459003776494378454854675927078913425546611833726890747861943168870160313275829449662759306734133657524218298073564567449267006946978044406865005129570011869412753053209044177077243220711288755805116440101687970241080905012237709059821936821336752902353782621978642649479982908601989863059896052322834733674583031788804979072083834532757630603876373788665239815061665289004698747143104084462388353671414056202020629938189287259077124119011130180722317209791369988046054268167553409524659088887015960678500713189373264620506597858588727567950408640841421932138265190420872408802463200613790204707557543317558493710153189530801574103036918297918986324523597603069178540290481961148790609421794468859094936629661389752439618372459068346012000111698917857085415621181987446482749595942120105601077346740753091509117610563602576437091179505219488173044149503848972582837604294774035929405627018944627144994748221583656089200277108774988350806974214644732315343064219011996888050805479395194073419527536003039269194322596456428000987891582502824604284817425803293225670299728980074200911715264152993209900900910986894133998848249000518922707312331667133743385609881291748323923291879927206056769750299909912255043537529577797591225627483413467826042055519726052194855294704743185893436722450479011588615638323625696087642519816162782735631013426172407802574836144030399977824732572204573735655490752463097968116892740082688231372234545263311988730174252424246113484283437873298353239590562593117524589512652497611355918972451883534370414397575134755544520327567004617177689022811702709436523815933775688819355904012941625271098506412165030200926261368837039954531754309328075128461661127911934962954842396802689258387078117862288542051020404173209725004166848111589742634123870378007533628181645070224579325569800673064985183486278633981742137811434075562985442039680222546877598109173271914038183292779370251592647994444691945548990607879240290208441127943027630299585750790245570790368218367051684608733144414616715509186762638388419150841161443598113062623516232749315255079401111356459022080255002195371657593537133814051070934470514461634648399605547615710011763520758772700793557556868344434682371905819151277487739248906973028737299497308247366159017412104603437902455674595092918968853208831725679716944886405200404017179162765709471604848647816400283549686961514100319023803393242647333829880865613771532929507604927131638216569399575761886023102176633040014757758614604314825626712965097800982577055728475718877442636571392532279141185177324205044165303492139620334929687304757417841442443745657142826543684116913190552347516244124887325314510838535786650512584979852095826904550168032082872727463163645497361968778721712369370924599908196180549913478949208244988663506890963499179702330453812625852901519126390431328225464724300718640505294066659460888356203864184365634888487589113870797154372441685722185213559588078100448763017344566073895102311991581255498500608021367977889367498893178430544687268631407527537461581193439142670222063560279695774883875678631613485140293613147167817004373722803811901632641616630005434265168655935177109482552361240394939750287629045816686439038612052231685544835665207585863915856599076643332738943044511894067137674974395088606728624243895283125118701796569432226337375410890440421884053700607066318804500615340226989828472396110301532903260456092565927141046649692753047631978760453892750332846518609642101615186428349349932744691208084455608405232945127588372012340147899351936131012157713604455550617468846440235192923060549073911293400334669267798947151710273478489514047016909244964816752505333217388290578391856530663581785539596579232505173846018500566364846337196723714204725272021565694288887497876444212526479620020126570977844432550717725481694347658425533131954232534677145574355121793310649462026650320919955699531970310606802765120356679256228179950655699552802600357505041039723917933043524081030267023021174277638872071163749889033243374776732843366214745531496533957409024027158731404971550549387302145291321205524309454634310679101225426396631211004424674604661229901097943084959861212624294856489285320715906436537356229688962607440593894595700013026233286991696949309079241670932016666664604853512704654875184029601129634424049054209578685245068910332995781271143212695266215032429346037644748817991023840004997674623438806978716159931308470253842766316749209515798048121012876751171050776714209553827734652189299020671487324574572633667642005179086697382134414352399516007218518274898008827458282558601533606249114080449408038831275192070355939628162040225396978773716484951778513458152319247722097771752133497408410461244243477544124044016852104264341627839510672903491309753076662948282581289064013051828812349727685030599453972544177834704438582849933169341306711351086220927535427746803664286522956613096952100297065529230613504985088298412321324090958275104752444099705994590763368449104455318275444424465213287458131966851972226624976518685077667196019364638550910030986229020032315697225065523430079850801516762439905533914872317652559673196781057690311562570648426450537095344083537488031795058792227960965647169474124402708646812629142127379876048803972903515647511643358131559243563261182705641482699003681587916842130287402554756975370420823763584599478491058969565905444762175014126562424673493778768354051678548448448693891354112104549202094983661690913557234449567217986214463598157450966929929314651540943977644804164984275422226574962961855731328632673630928982956708850924594416026441128268057514873774153227033441030476947009010233477374109741737639142265853003862041577761407020603481710782158411183485204881838669859308716622633186712722909380598556921192000409859312649799720515943236903769621250635349084501813527522143552694811281729976390808779537335103260953049985346735539818285228565725281201932436388880647427921278888369346279193334495911824027950903345265659319840367341867510800388921118142916712398061061965536628910329736693104043035188275848945539581340404560488195595122025523842435414654326632598293807148755257043745481227711143195914068863536781855689323055408138801008134328343788022015265412465318648498142847641106928774110459726217384300315884221647994680432450227248360829959339576826751637069025547806592505644414271133496329174656388614366666891318057685763679303436625702962150848244402725613062971484453180160030510698203280818422504989686978077630751794374965408344267917892906640029247827348129266736240283348954208611735290942581537932007142646817348194370377458099003868598356818030651224459649892826489580249887140831909724764299690554551421689641423643206212733899820382520274402877721490049140214880982286805119629389834814662715181255623907872650455253932006467906431447305124910319611072174760978276069571112267358725669209514475742807459698227381323994848843911822549415531595819582240546969221156594288065709448871218890700074003711850936408060567037473187524884001322976479790438377201867711257860714692629239147534241094396879550473822701563914205305667806023686186261311776181767137489681689706475296208308131915575273344740022277379244486243045324310435294947590599160306707929509043824806343520491409244820622690645104890513628218366006955321464036405312960065878948757590343506048459057895682377595887617688086370772444280758265081694679954398516258797008846490999381852084813468520174798575043787684303984671224210923394627217022176290754853757133149502568938636748773395114192275939716548638350675820345827539678896831480983649223761721217486392675828434739175153659796518718298829574551287951403656859454570362215951771010688830497526620841702393139661194705167069067210967526962029264100496484947489491199200893013847709359639661168634115419809065619620477190961467940228461787283818748874343768630788286130175452620345627474870701689911004163370090597931859219433143987419411332379452716612827699085623641916758202322154051313604010745159011239896124299608676479982879018825394052648956047661449591803437327240441639522341633697476575284456606832339818446628655456341789499567768369487868221335728366762647643989194825674760248478338763425984240041618267754055024637281788058097870406027893950459696702525001559133491808096886498010862239974024334835887016793710054368978526175059372212752062096701553245638710712064231541803601570660756236262839851089625600830330958396270379218802638785623085865527535252355950531219720766519419943464717898887556497519897457388369837024519965008938518635854272236034065249013354622583349617755557210828324828493846297288048767709393175212160339737006207245125193712701877623471789319296030360522920581398897375498493926083306891238373709874670434312039120042936058606507082014615245585790347302108131219260371797004765890680839047527998736183834826775048578604014323128174522157686554300805434253073937701838348699647414799111524004052579345776079329807884053540639959312489919062926057332896295400329357524864765512148437518080956332728530961951811640983201485045849122415637543274209238439483879093510599848991139211709337277713742815777011315956770467450608661922737520978164120294455594230024562548867650014329630387971746358232411987347974372596648160686638019069246672841118360088996223784927062814300394570628507744397080659205689394596915037967665206213926401036083096407750649330288912046819246453796783096042428079559138962185095754670949253968168043170368929163487098651419942713539996992539511470229139604198787495548814113150191987285870995078478552809454280052016882281561986727739573563352751224655775075874705312915333103383171980457763238759047963567547115975690121681626555246054688481029736170549393476257445067427899992583435747282071316162075262975727092290209382767679439157365959729190350403558485504162854167305860587998335221235260830264529250526357762519492928967856691490736248839457997435353185511680678634760661273328761592979698138080007568131803644993999266868530184604555262279885017608636903980319466846984239830699677208797763905731678851980928067540235652540730691340667541013787613030787354259714801760164207330917606557055649876156120740026811367507886692545092690107343864433071534589339461637579162887652292995695958939645079424529957126256608090423163615837884479243030666807867875859198124231686388125987984312706939083509902349042941255936039768831506162490077548200752554712730008091931156085900966072521354058317737190624346148048116887475451827310489619553127295013117471105344112943934860055842174261649582741546255681503754808982964362923342497447588837727946571039799347442815821028752474044144078528069837342594571137767207541899810485707552490655952189556232554919806384095429198795714528728647803505851441530922911824008751650844183001384033647171143386922183686612869768483302491148139706080791128325590436401041536329824607872031086574745193970762232465606755128622610310432915334445908782811674592818631102166696704189137388156863738683544294823865037726085351246066070757420240095582677595960419651894700603853389977148709178647135616374401557727290065357490105918409537191356976886447523160061657167398415336454062637543110246976535158712503965533290123139375530861999529043202753328375956359069725932103367160039785983341119113904330634205924867468789152508808222093055887525392457539075600384737530348338569862001499919970844845964205137168347546330712191945064702650299794803339262969677136372461410396264141244171943079143083849565157359985084932231541771133900327482759429202094609308492956629998801368894881031146927008186426780875779948684122667260003672143399107603155903044784111002862314998886339614378841220263598214256178735100968336049979254116378265177117335711744626487231627483749593606560593546816199842041284090134254828170281490743398835598809994850056756185309396639866357987088477086453441875619639657999663727634588081313574964681775292179101600194118428892179657200004123164788851511434934612851633525250929940519370873286455707286227889520324354829775292150956139396048655911102602103263969269027683479104702153734616415709912446124872942549977248054745799004305295766250059322188693427438609256865806621852622322537383554612799950550690180658298923851278716801485452918274489565802876333269920022064171581828078446598784653272292515723448200881966417463031650336663464457464197627919884014816227604137815873570853577379658346938934687772357101397185903459281115498356749026954054543759629368759119899195289772322907795969050837483991352674885448477475716446952724059753277777204775078903240869557982923291067080740999971236965509845164583393970669437901832752328395215876455776831317724113606151908263177988311126082975064935121175814829583230015194106179294317443449068230401715199129525017520258456837142443548017167432053675768656229991806765728931928643898255980443610476460897147150167363906028974933582143656884183748493969517036270095217152560263480492434543566167086571006394053723427228637349237565751797455005012245358881402938118918114146088966640190072551231177030498139542090946609647019944456493066963439247566971931171441017983013883760235293057560600520748742171817615355971233450540287322804845512955673746475174503975073115537969651632908712028123339931544985549749032261250697177258435452121158877352250577171552086157223177800635037006585085335949811106112677531582052387185286059430138673700965556791828821720402632980159703824045836362107133128365797730619559997143953310488325488662633260285663896755720231854866172507127367275982617928072745111537060596894751017317091793830129662757341372882426856608374971622608823596054295523137821744834424755885259338537022868820581396223341729398715524649304293351342641775392599528967832020384504227287026411443980926660475155102181075814336406784180620499112661233480593703554247932085979198191199911981921467523949267657318748877880397040096522822926762791539387888915670796762613806537062800651738459892443721412276046207820965813181920457667051247320089655145487534991389906849479276383245625587031563835874736432326068688891695873397436799014268677819364663684099154558235331762537506709243892407219835516064538516027270483457375448602493198565779815666678905903315508297262360989576396878412868099368900572004908539519866591379323813814044356135002764768358798720795911905796861788027235463855063806887534725571264620662354084540077609641063282181102563204220654608005240456294149438941233366317217359672170069714266320284583053897464031352847037117138037156502739431886178799342845407284970268202624007279788685351620608660283260617685571068697587693196088158320619025802487878629735676868173620344291427951421219048242697011398687822732015509958231237178038416695823149130929161318214651821204629752654099948699671721570949938210845743258741598699093158807830300866913636587482109041620588922399318029877337119974290460423975817785307857364106641361566839910063789630153661065990342850577600693607190437436998001440205023323641066577988098708277679833722007873361401678185926460206182631557535256713276633832367678747135144022290377970629820640927853026907557187128870939723331311461307129259382282332056864530177383916802020247058088126245531053007264831950306552014243216360893765813989752782865101733075332234476412870422865356070514921542204845872478628337625658115610521741508687689647351783076561558244270242596975086705097524030553113217258160754324665581395184914414214849643711120630248218346829874965655768644177586143183454648918844986229137195957533593708830794996670376395845221526447992975543693307805804302945864890770911587769926290403111964505528287871969921544054932356805250890392418642977328393780897093666132454205381998432158867572214340475124628234881738190286385925279618643049512979383267127152644165274130277990075633540610886119784316331521202325422670042097657652772289458475761477895550075239399055915519209132381529021586250571490907425618196429542855255357267111400508687321814940309120781941616367099230662529924744392664878181927405362527206449048336660508311506227533011292057238963172542336410064033666409856886380559031664425106990838456239029399032711907075332985217897821381144398530037810545692658595881782924831219771140879694057945715092086600157466912699224274064006767528947260501097859008472870611729175386556814163002018878504181167051252127143073120298421314141797930970279683968187461960518228929507704968980068167331617468009400630398892836767305850110966378253129497855504318438465182562740476706014624733450825855293317856160716153606058300175461488740570665500833781193080388248214156173009214089845546695525750073457957064588922933664816023767554263194284006628420517367965571449494625781728510361954930976437246129634757366971226012786187732106347074258440878209902351851857575906799601546910781956999776044487974682672922583487406289659245635623427775316931506200047789876611487017020262454822171829151491284581531155299912298069570046164093830938232170044000333948781891180557174879718790203063164570742861387982533766850438627135760418390365117511557249456176456694668073744678958106070650325768011906732287464757889217921006903758162462232626564773045923771451264653688168930082326975790917194211538883127623807210571226670463768978596675627142882392975190938451702604302661026131853915812961672080055501299621100345421952204853934416315328235675343393834454448596622926600916213420086057286955373017083360430623670595232915423355090047331711617030055980619559447701248109951652073652984540358681086685095826076205428588368958476324149541004932074211466553933458397592126392390720924374056141672327618055007523792023602054250085013692039129297159046690225421890431552992656585907191391088281075289862935398397049234236517565119210990991566548830083970897120473068278438638075003412520861586822494426459461869335201956935752370596665807874805721755736038499772056716963699755780061939245879171279628193681362009105729364377558075390870299171111695729099658981121673264067020783334346438134774026665436153399321365527011271322582087928938502120676662856905759251574300822876296959838684373462456772617555370940243385156447726670284494786990657409815688254762318613271322993983406594371135137465601084491844113461468421771638840309004631868574810641541386091475699463949291366488480494128916536681733069638407533825598336065803717914534855880936116924770771201019287131151851880005455779910906317300147279490382362845905702621905384254152259040096111002103005323090091940457267507610243429661420666252750268742472398964962310777796361259248811127585157285938228228742719640638191059545028107181465568858535750120985057664637588225721788449154223999398910001707786725866639055373954750721840120696913158208662945977322645983027610596294658878227548953409691811289526588590234030417546824297029407257225849239463447599464131403650280345101158937179426539293707906278707858361926786922098936849254818123316938470293363601302125557674659029479727751010750941766863263630255637883377722958037299110858667097073252526644554610855550503790107798189949214422133774289280880855459770319819372459206337873508224557662309186777430817843268301154939033099216742321108780717594321066340762481250286614486307500420832072098194295369952248480455966142325139514057014449397381455233421095627564455371767444815099388645195857869871574088122871767682972334535980447704806537659488828019937289311054152162007826058781822692856658130876047691009738135578256711080166793941081521332088496607868592085897628285679447782054561814268612947514619316899813102164261699843278209217854676814896318424441382412898679980461246224803127643748330358616549349379377902250735216313267400522825352471928079611284768848637339847899123175638000721844499294450793260265900411012830763818949144748299399442321981831540815700610640390975947848774715035220352698375818828370451528446195310218947007285902845925441871467302974004177688499528980073290233032788289029722348135755257697350240595705459635405489153983527418659823507621189764406794251851234258852404186039328159757031931133521143373406538786465461429204862385110659610443958351103031403701494505779080036159454353234775501947053901563299966604780379694736675139882420734548481890080911342301193603785471189098861931238495937741944670453452621487314850153425029976175137066025377185904462362206023543992967445309606852499236953990815032829003237284980674030055770678172799270651833998693386010840077081598837039438918189829859535908310419943488944306766579976299572506535995976594021915155453173712303445521447827017342280015625474374498499598007636708047256423510127069428621038815388921095170040336330961805699044680151531211496541953416396484073456297844260571287833364007288194971596671765613896480702718908551085096017373055570907143415983650134473947180741782701746538857872000139363253249465465300783069966110968822272005013090415619308286546871612851044059026471587817075474446973864904759036219621203348898254568354949365473332095974625280446396436932384249188904966693959240068968150023201861324376886739137374297740425047691600337639574748327763826318823248434225505750889848409757954209446506356138706185498282059582234500110064109297081372713110696779173139661078106233682159921937286526141706760371322206067469543747792806747203082468316225596154513262360044628383242883910394757606497910908808740756221402517297717132255781002659521063731098813659530462637261899611354653878202898677590031711698568197866038488579985147749429799137734724461942007973292350908136920566421779009962052666906851299130645566670937606639516510573462769245509474003882509145080358548832841963018913315249310568980070413811446938383324708730978303705329193320647431567986800512455471841840750890386742491433137585899281147116230107267293327394389271458482341925403199303056745926094334015672740592043316862096601494514947125265315565819562165973832363626697041170610611508517590067876427286286651541168832265028186690050967023763677864095677760745616921161347274589702086361731825332331493264312075817836469783321708306632306756637931056661649536326272524198840045000566293415086646801270894410225906782215888066310876575116575834853040841133610653361103261670725646297508210578728738023759886134183947117400913774332971480539143026491160037769599848801426938304583790965736320098753167044217568023269001406473587750158353477353886574093936446866440466358937584948748615955233093625032865826438768584620822994742374967434301890861905716749973964526147830945794805786869277334925912564185767269626415748809123493070922799137656826190576676243336705429490595526505549755127768546902783787892437791795580001289144688083025545606876923769557747155873873591365812112811132640522273148797640032625717977114917224446474512253728633673986209707393043600392410874069419322073196600185833084655836644013458290006886266583155814766970864215605138831237679074959211773143644453752329249395353537556076899377557336285168299191945008793704898674736036026251369693528368731094091666984473010117486618154850203407957104727953303164525719570832763937732456412117649725020377390177026905577588686453663586709874493533434816181296908669289941640170641652424389550410506667781149637740851130614004146981754839738253236856212193632507664273581874210608738542468207048133560149246476482938807159345539330558366122553864453678760521387189519166194591844543115774759690240169558181317351343783264912062186392965352745201023654729366534251786434572404024426329714532302215587480793033032545132855035323545878324927399931958922336511344047811298740983247132361903180749012490530297367563396286681046407367515627250484441008093202589088127492702449456559423679621237282117434452186028226804398907024242165985836990302490328248022609800981607266354961224665771793308044044326128869698255742113940883717140611121190292780221632875022220320150125095037329189653885459573002588716274385421707005252552379573265319925016217349711371512825851067743382699407612147911511727783598126221459075623172910523654090905120398866228303571386273535662131702827162007980554955813269354627452040362935228545647920379392304687495676070370523105361952556062326401221323911663910210261082876413070255769153950256250820332826383018941120936454427517909270296419717492383453881152959124753310147573037982287381505281235214315605220985376659341068089648916316563895743788034834181981457567773777907739284842782801218789422968261909177201996456052570698641111348684969969323730673091202712932181523707061035287227074800220728430951743410238102645031420369773390991528290920767936079594818488328518291390795750933188407731431724483688663160736152978571113324622893913502939738044299324657569484198348478266591821870393396437797327789030878472529188713688940249076329209132604466823339197446580095150674911872021468439489387082718862345762581580845905468111301162350675473064189851986495720462325070660941030103769235999040426906728025128782053516140982215709767929093172433415882044726783859952137239659513736183818181011416270828287105088680751609078094328490687308008241171432984786461667708765152548183663988730786114720284987593444337933242339057973284243816154902364065386607725537310877861096768592533472375236601994963145763482821223275207256859164969826128836377055637541003055349819711847482424990523854244256620857322100598177615109435067019929778991543233965381430185304301925766425524210017142701518219239758821175810409966472907061947411153408924062078063810107504983062814933749628161332574848189240878097705407140287906522092888679061638570074958501185966170559784875807637926170575412740158105077929126727148470431841680270152383041391986091944969967134248501726264445491719386671313434354589025118512530148234119558996217353696684468318851712453677364871435327314748804992102596631679817107475241894061370945042259923497826656384456834326417769164576930911475237783075853009369563243726043085151207171200534168571715560463917743702035418538891196931771891477103992895248968322558748379892032283710795734430783704169799986262664014179616099755071675843200840699089006580968177850010871697829881723886202096712402679662760501252354975187327184948435398056875820207435589329687464656517144539833107545732575981289295933458720046941066371631236319260656469013441893656638253699126486183554493262638330258458863830827697583056317925946422134625711187324851798116814727198395623574869181315336942534687560047780852067081575975510170397140373148491556222399315262214944089541964680003972907011987046941050737109995046460485592079035395938600312616348444939913568134697659220665249878720837764633341043888488463957890112810069856849513892079272988916859422589763176809398498213615369240295167681757702340401550962966531831127356597164887694062958329746258548500316119761035529360847725036062339558360571359537349002442874944185919141761872959519604064718180654747142728295572673706438412369561481952542222014550769062496668247915177594921573224413556081981311297187687135958245817183194311113507054197799749737929143345000656505974165770414582026779895423768269165091960997987786591450285612828397858361496570697760016793919974792850386678884879740112881957885680244016548705405993197371908845835813446049020258116879865592958625360025064177204057962042652090411024209596106849094315862305064527576676221115335052552774954232019400470021584105227705412308590053368773513941017815387175168963045335960171503197191083285655973949087227237340667864487739805981991807736174178346200226808515736041672614785289244855468722836715473082060274401696571594677095852412752242540605377684638392096211979899102951835058477839106294553472060737438470744012263385028383577631119257388514339729229445953514979977010993124792491322561405232751985251445526158102036663934108077364562604227138599851957402103266087589642870003822334188184929786497449414527506430879038193403686792604596706548856992373006835379931740602351547959028237220220453821679546194682022164474545731845230717021915280454923325512747935639522226081502718225451143780902819961687625409406088449749096594595200845316659721281831582934015783161342650941025727384783392861144998504605111590471613964959747015563471112646081706115412299879518586307756002844047976502950752072727132365333415137562783620541383228030336689561996534418529759164989380975425514566459784647208101239549804802085470268468852966621562939502954476802430453672480421881321760546908839345394199458109473952544738474363563478736508618680387500611748493503217994802053148251184462702991074929933639958561214131814875758033617273106937748591721170266493017447530355094667967319159535189879968012077026473029653387418778548268011721276696169413028468519276367085744760555774173866489728542228204179056238008198245261350240671092792169092031254591437121350351206030587979469678344262304116506066622998768287168610806289650258371638518566320222823458620181797516267800241882216544837945400390266550206515704692345113668551776128227835498973954635004966803044664924214547624846346936076675233197526273788881329201323237712382689191249815581716838070464429889374225352301350219390808498392351678636969263944732269352808750868985474015138994538604794627538533944569525019304900112204581350609405178200837080959052533493530943622197395207738352937592317911029589987190385661530122030649743161597679394832362872769635776688296221107874721221673038045707445928464709533312768504121229028332829732890030940820806281055013437217997823365307295980374242055269420983325757889285191904083809030899319333426136579024504161071760089111601888427828935531871662702634543019134913190470288373370072888488474296164486764127484526112641572059070835391092447966366640180406339266140073850131942606171514504179548694220123576017501156278357112020732637285659232244006879676758970487518624725854910748171858803719056167209457863700382859147711603794629689820902791599289069695731201511029128864977329133009130885678145151071225268641978961177791112712449479802203520157084010580724670427652174267055286911237343706115439850988878232893598039693913602711674006383805331304265447866563060890171984810703959929723002589320209427276895352544360669004963704074465721554834720947637419569607015280330160759810023145209497702325810412596639014455116887756302990935815585988656432343696551329147175795854978763236499959206663597911764050138767180585048809833638386717626430273759012577575697501074059352334169827781730408717969778314985771463905595113203711240727951474886049917693215677108541093478185670235614219922254349727123845635725769100044169393474559766820384543879899281517972819742257568249883961886926252161833183686291484366547321099755886372786214901210626603252089052801334564197202168241244333756702534583818932131108485593359719906277124388816369264868638454262146471023620180681203386631048395024654015143661840716541336814004289413805154503172023056739632677307658899899969765378983879720868125767803551457482086610425911765615167671520052248758791046209193324837485287946921375463223132245094814619376738979745669617904298965311134838029118442745708487791905812127539349039473638189551067288277289828019912952838466450558894399195437653484023628297729351940177950036895295477828473743603066840707616642250557824721604868295591470974519211059970230375725143653558442657248122635058334633432001857700423256250133718483821382908237029677902446349722913771448805213280053287623852967779853041489745298526259946835633535144897618199052539435379165117378208668042461025529008111082567757740257308373157393861657262590299272516832980987671565462516837386552674571458019814512236890565090055450008681337055098084564337870474862378221886268228234188622820448710614485809591008353374113729797424819514641741299287942957176665422389337347497517189634229467316745959658927315131935877645409934141959040350168160617243646453077216628828857867305533296528723642278765572617205151144013172686601860432681111365589783638389245602578497931577721372529897089543711489341243871147510312472214664255205939102462016086717168675735205993237487649688281907486907692266337531009990160843529244590126542626237988865236870752958721172213843448681882892509059430389402200671172505302473214922051697690638112058888900019580890211006769055947584147452135534205211110454852372743594014966874512220744732345696024979186807592445127867821154935844701805780175465336116652658451786355282419935699219461539702233271770612718361413572761562395192509686561477659058761829260874490848853897234994337457496521669395557931071557277067590285295365217272455839054109650128654519527092641249097030679441330172117065194462406125265823396820595785235498011424777479199283694609887924058914958948869403867533920172568119443790823171256402426524779545035694020271042513697460306017546087174055705861951316363478847707131579003068722957286385267507172576463942882263734229431004639388937918861564368095532624353933960965041045094002639369828408171881886441224681642547750303759028463938548520099455134744030861432072479476666372309576808648495567499728591722133164449175769273184478316242774577400250787932506941670629019119291854103082145220461194695095662154896223591020664935397620623500631350457643055972374672136401013317937273943794915113521527958914707548252985380054304404346676454509544260607425669365248839872267554954999238662307786802244621194871129788892286429290388870505525643750048955853427555308410952132848435845841257188430996677680272866470926538509524295936352036031022602604229490527639723942811528000989131421820458657828585586297115321064081087047214858306091713588748881342709476079209752174605917954932900880150777708584465240162246952080461510676104241415752732997553964778013822168788964161036842299494791666817948595061540416475225325928362920033192068509062626820965076770086218517721212456711725740422714798048273396705423506485341381109180897474409394213887284083383736142968084098250033078000487299267032119435291527496202817034175934430761233689162052755222854849879740408766871230828746994393624405442456779607371567120527275666899912179980277298868970549633645333495759343463269036730188331450035558695404386972778865512562714615378385217532636487470231366921783064423145686159043406078793758109713263010753601277160480479696929619835516429590371236975062700145049514518350985996890976100575368384197236512736373372279963122580886465646333481215686686180896555353328129588827957475218357371260881924122527551530027864486078810840566211303284869376131598210598959666458164651405301314439554050276511791927210507229354026075307918548053731179089913184753000190266608434070979244245918176331228652139955033912895550438848213920688218797723507884668645127327157786316401403601081397230923140034824916752004780591611467869542637082100008846307054200453530450408046103725842508897915866347941080006355115290290019349264920979457214204752406183135362095349589082851348009045536201081329469729049988187547688035887298750704900246292757715958673889558776694753616922194076030126676658598311165278614813144067841818934997438994484560005413265937537916145393952826068445944026319375165163552921897305524945243128441362969370483822691025692156391388817526695137890140575783716581698262733938358642034088396990584197208868205038931775138435871886700078560961913810981018743295177170072233828634976172035178057376767356928278514417058095329468128429746175749644027138123554838418430827585372487234094312274548129362776149511625920847971483205232278818695418687274367235275697186438427824115563422605200330265685509442144227718521338814095073734344327367932029842734250790295303411186154959268686894822179528809690955317099058418852234684807763622792540671352797497267914475476981706927730741622499225795824563431272268816113660183533978400372335734477564734377772129919514983051073936496541994801905987426073908348739820624473090144523058639988404826971514394369706270526155156830723902659406338876202508962440328568144109390033356971081631715425755668722405596225690904464527513752169063317057955320858164056186318663690740429582625852812988199037550466241618310144920446618704529334211399863190488571697114830128538913031007123862019325501212513616040909072996449151998228437507757861067995261529186059571833617610004611552533780364109953759942532030206801823061674767781891954298325501317254832963088940002577414438129395421797365005196914812522509659995993491644171901326481187820015031008344336222006409791968415010190418328441690818132916213943549821593074190716206265678394434093941906438378926307426810829256468551135221884267266014877207027495264187061198196050812497185293200834640647738400754747657643162014689408683201356497436433042865900273362839441941063345628089023763321126257395786099004374769075364518540963911457889725417039732092260696380472602196384396630318130876796992631479569743896429498900184806141765600874527933375570780639829040512470215224730398041029677472868579631056292119284009644274665516609636335967301939832490016033931558720299397905730551014949700705556426481059731817576901980752034907528741929198589579228193074137923953348035365193707873325056951148979321373871937495218702134903267626802866938982427945828414788230733662101781183347688905119946695093872023229714165628875671831267127671266508335798554836321314194254749109523287974624023166132638388596801625599034268736641052898522598891327497063894198631216925932465728446457688114863222001984328961784352088743475517219282258805587096258788793092246649830969619044914298963162970955838161705402128025736363293742435796400029484417066195167686007525938103616030865062216628708308852087873494468360599721028684101278272508741994795850402569075252863110996142357748818558529684085904322018237165657680234039630278196538336311746788521131932149634410341287893837476526286528164291681363069784786264952359185440496954298323368838338639844800721389755040865786451895610032827125754361136584081870955257536445504936164441541309773335800553361817782524037523291718225583692859684196385118211891773585402096544450735399915632306984983479695055194732316081130187533638812975626784809828103324732038578514562547931624237104433232663020309151211116082336215222036854703238541069439894076686634670303210589614369002121235235918675623690863867506191850835985623008735462803914165976541416781756208996807507468324849849891557352757483878914831079817353343138470405316965443291431416901494127811794645960369993462825207822157020646527922355644090657005819134902662168213150334999043063970682855662993387210016913798082579192324072048395362727331730063924828075506761828679804952994367185521118551294438753090046893156042726236352421397913903437050515604563363406227109475684377498701698396811313535415881715763273825107183092393109921032386653300007136983668514671366191033086662678470689731380251788213818338438964836618787441175991746044377355902687302093814039717237593059639167601193578417963045769293130186270061248450113811418486622858922470473980736259808057171244653084630300100411530310838960158919022365769297218739979572611472584163636869740738173942469618063009309119035988385855676952451437275630719618720912923096545339890721881438369516222890362169291238881064613035158616469257324332701739875678189901053914132410913558704098173714064769691418243147843290649424757718872810786724777769150447741802907795009380636313503531432451651629495672914102892355732051963410559355788788867670340929065964069902219626525194917272289684900362689776909321571225620089584254838365742510912855704575597689671859226613704780608545364818754669148769310430386911682578875897985449852193770115972782425741337038706234064565407643309415338961851431761025914176759779775512739736492240586863648531837177220775710842666844491860139416759088916276428590556610758188096664489959727880713086584890699646052605856468747584445111769361054979859231838997286566015846772832791271546910926501520257187706018459020220305366009881519564657476390200083020054630046471345621792735354150382750035627740536733956234126147888808167297631127007824832621400008960401593076671244778175518370044599160036140351883589972591339369329733363170013562583332892506773902008862284930231096426732897399748890509256915560098875113976324611450951611217782168070436213589366954951407667658081703832088810537353060920485989469434706248601243788619840188756778730411409045111641511606357833896726051155512060685326431713088020534538113261081436484681587884021719032699430904995469563738037470614662333186526027759573375130372055901624838380706051745114477849706557979453903940128943857147287822987647352877817080319480393241646774124260891238315657929700618849328465103275169581718494029465035580657942974485211657826129230328685174633065275588016169548846501747312193822738209721496571158597993121262526596355186703048161548821726959782898872769095523314667495102755097347154284684291630837826511278141529062429034788457287895754440825307073384078751690682997338570302129818471380627817384292767140316158443421917739960732594625956512700381473941005812876356834208453430608443623333154020240917645327984918518818597794152419449183407586219469585569172115892061879891271736348690596815087688093511548154702809380504733929494625011960689856763948314357285941647491649912385079550509319802050192178915811566470601063708194930929671703339513626572393101556945804013185420337413962339664840637491001233496583166899667649044202685006618073116653629801866967912228209210475772342772683907613059058635031490038643427558557271834483808882981027151521916766349356673006155493899398091333603442799701217305965065658305205252584644348450371148505015113680679831952051423921237348968262986801614502065394674447297543058617395631165501170642108922878382939964696741674459859141416625673862682712701073313114114841886753252211518160928781992116457691971887977075713113646772609173031370636507259553465404200467780017990235138172350085436409349882837140569076297130196781861644644757098696216608859080909790953259863851648733758745283463078923761485200948548454498501145243258335665196774031516276704737897759853328157835536613485198431080146652140146946958278295390078960560424649268129525477115085599595575152764782499728402075512488896895684895087036978280823681389116049276022509769963593835925224743115266357229495305870110240558474882662020776975866747687181061454009088652098584972543906024665659093847357622498967931178017047367413250519486088871861074587179925415776428436862545660133473895558366351445617079616466083684810044001726304784515097754558599911644232750124240902407569939667010692699159048182757669143708698784675703412479413525407162366885890686677090396621612207585988678394896970841289899349631363849093188777992966823656633873824474385345556673531042417702329202953381176294838140611170065263722818461243664568014430559131446738000610529172908832978311913107055871577837854910686041209343839299151108714294789899726912418499397598913715595692967952991959882690428120361004078152642278953715113174986609704296130949392961082067792286862129525952240041729375748392916084149145283830981569861648901391230949680530332321731406833321329186484336056559330786825661724177002145377997941952430706014264258183142091224794981208286310692947885045649298212890901173281522268571144632849077146905075044323787763371995931801817020493582822888145471573032797212094390361403637934950606799215799262017786224072510225565769024761593802174131359013122011545093479800291819913887369747135681000470832602363359147606389067639084488883864451852033998143991408074862129940827219601213666049607845043731516888905356687175389129370921430846906661871328506471926752006055206668517915639638847997755178936499583538834422015093388107081055627008497503554523235373543821109977832964849019819226377004907176202708657479946613003595906868677033256053623791176993961740198169707222083695446016309814071426822822321191200661220041113167530916571431684300901250192865359192801480049327981812551712183266850803447331792422378717307237674309389262375969225786314878913986578219102115080523902618480640444907395765359680825292608740017936179963650236026544657355085608836097756889147196167702383605048383545492674717722558151391823460119703022325720676571044699044862481494291104855261874989665868172137316076306986761185910306466182616018733497077703543096499260372314904199567884715048444706269787739023949676526959865200202207530294078400744296032080611446524443509740082119962535515765388437474178095559445816205258586474995193412801576960401917968310621499354037229428922447648382830844428691464935773931293379318391262975916729437421659956899540344650466405637306189441514099496774312722272361625568053436377778740633996397171321464206947599459813212365379273180188539786082269687663585157698664735500384716201596376060452553289107167541215545079631441669272622039229164894782778847778811739329574401148095663979679949309058427188871662186807831500066854916162858334400954684727545577727500383658442940443773334926198513487423073661618806171692915337617401385730174844123946681135680021245569483026172680685148273140273247108638014583105844170766709058796860063096136459984450487439678957141355921701055296509230515964487397478288884002082963270843874468055803784885622273184374612910867339104777789965955831080949025652414372944775262288751869062264271238038202198213120395444081966272751138290465788363589203972015514372417446883388034041037748597707379065456117394245178211296875010763775234362531114079603232644613588620868405868720469799491978018900505236703093693271863487394139429516292966729554376388821109510922715527959225197476620832749251981336202779015994807288116156737092268440356696139542974701068793190317239001682135072969233289331886863772748035481744202973918228621574279395891547493486114227851140910832837417434298588060341702179151734764608784034792709369179769919021903224422212337650878263928797613615798691982285111318088246658029002962502446674137325132641185061020105038605089446134682910895152987848613709551604650696140368168858274190210200647390672367244019260648837170443023597389410709022262601023616039892357602961197265562128889335182953469239826040254534842162204188449340468788373839879835443405904668315650510862785831986666219961353999129944955128160448040748419052650025281391311094978625010864654461257859001752861102627897967577652717555093767504480429644805899033313531918662775051120607505240114294774426691535207202295071059868141590320810635117241807392978997323823609853453715692742304175340570204320304013063832347947464914531646586078190124152230278860711254245644237908567809935964138528826921113830390916243312553657021326462144833399995607780779784769679641038348107904067301417796458110002316101913807047301879183816691306670755638329759748374277805912072711623822534609148397786159418712536360405942714774965527973085258076347097105170899309166102597437383867123173653060412959834500261908726538447823395598296842678592413848231405465615961100271286000234441211550737530676276797465055036509649802264884260909007831198041342043271533819735549021062289834478951093332939815843051940710809374063823093636950650529069428539243282409489123594918033007853683568748878101809424241477685372559864475387935150795659283723789946678823746400874820544416152476345492221874035253273732991528230253600969941600367260448689229453181905767476200223096530799007454013465604425038152396804420689833056863239944500768063836587583920122794780741870883824098169293529852730554498754581041379384221059468814671910729194688668822328866598998962140755705127977084384524022837847946828831724263752585129306090711588809153143169248865458724632648131730331133517557897904048454039520202191840391456606474845752617917166855209029224288085005096064085227112268140648539972205650530579306195001071979899180292855083055287160308232712615951128712728706031264461699882815712599806414069635004834481828418272968632004669257826025098776751935418082842231339176476062427094041130335485112560060508706378115263143741839856237969575333706790819378835456189806804784521902283133435385961239390279301309744335378149913167018288479584013108815832627813454430333714747571256248936226792278984107379250841318300527750285537288307179656890840846691722724898796697799705627983557179878165458773650033305376126514960183676947358756496744041810385855066503987755434956489080536367483042345012405898352457371804969787798249696425699785402161705565651681026391332607262858409112363310822274955705993103317547796158547054823490469014324192846053679835415141820116729984474550885105161222306599708660227625263555388364519170858109541328299515979408331869722147164880322998943017672368105037291172027105063494903043396727706780604774627440849362869907961266682311883746302542449769936682452049028143119114315792524853846898023860396444682573681223466767821702838928676666750428925899461183895796349665857989845459674034600690592945021620184386339541808302756718960243078081422422214510569906278522610423586800596785116878653500375457786030983648345899344958844027873777272090126589071970605275865418348347568621749661582387120753477318296357587071119044315862517484857707568839615866316917235427424833927869735200845191289481276192503137132978919396062899242138250594033272748689988032936604962298242149440265543767458575502458717158546438497521553532593889419527580650967112895285283499885793347908624685784623885505259760124781074332238668295567038228174178255294678815371035082877382036672864616068994539434449141465534455056561948072103020707486930347363070360706611848390327787681149509861421441494644886126112160520635637074511028403195127733705714851038870922045796323728332500580434737316870445123285418264618664020876617049014764652915799822546808727317379130132287100110940732225993102923644013138946862314281372195533907125941033709143561079356690449513006100714563960561541103938147077363110253782986885744224586665860436815321260315569697677340142076979302819539802181570826962487890187413826279913386477943246472145822784715817690989566015081766219254708118509576796865168503772491781288092123578084734093269743824420502920490567415403198964187611807839582779040327196148803292148184176007448198400156669875940762425561787494019978581730749080024550107795066842207655743454833223875010522178418362180668924780108062227267731784323573542045045723653419307720149431545023306404194874880660912401689905919066066177888344210037596501287817204136364548297157956913453931422610950910720527410599791078208954992290402359838956832323743623837704197479362464663836578487739511536738717855286646362568452454469440167198652669819387638262953841146894685816188302472337757121188479747736806312911149026589195558497853728268066599630483255896734222608379660966485885768020948687443269150141072130718536881784154437757326880859861248967384123136040554734877407365879382321506532307352813532542201708469716868924769624092155390166643698998537349568350462874826344032777181758302254615840972257142211255871545302202198376914889504712546104720560579905305570244113167391100115152031774656196746973383417475958747742561202944601408663170203967571730110667689401569710709195605585365863815662475948465753468455067783850290735166118778298798677256086390058873025598814282292891664486312556546008766347259826076331410027327064288014455233812228578433892081053300469405851852289995860637540615721362293580902163926299548146002088719739515017866076004820880851829038473705927025783017266520444034010061403588457159278054607947601267047719404591616234123364135960140794789038997936341697702302396576238904479515682018516163836156695086376635254330467386912004910947227809707096434908120866683842000497811739051250478896987527871799954169702863862405808516758313828348024226846227145607019145041418391903626167411677074930564164727476864628062551379435865593427183221606684157794873306649221360900092730959799776777175471527884658945500763632083622493100473464799308907777575246953066872017874623921355036986335238636563320291135288713024892723399214718172472050415751978135077892799421578366679766323274156962060556080871099484756630805512081902492399745819533056183870522700516365148828204471611648081424652464458854254995618315916182149720050530056482415885121809890742661219205656820631314310545751111906166035649980123850155847389991053325203496236964095937825245877222377006557654027969968293174045265512586262258105515739872744196854562406360652612233563879579953506309337178099619361911133889867237617540935004585097197147499011548722329802166256405287812865617457002180294375226913220024864436127865565110569229258546655236905448736342304160903651825245279383187989295309757507609165910247007551340578552761993387345463569783341777421578516795870262254886225997235307532883017242715089106345592192172947139858067738507047482516835811397519450724450490605486261692196029297118396904871105905292440917342358968866596144465542860677578927655616914623525433141924192143490489667028701601905754054781050918748950917421319669755135009663534488584413217358662698806320794061434119663968766570261099592035915700718171958021454464783762980835556809352871579047496824106758467294900263659712986168800072958194450107566776752489492128842601863756916755574762765347330922715131739363813747188274845861872114489199350028782172648807481383715710053749828241426086588820125570935460270431372806094831795719299504459941422807905225093041753153765157229428553396185966558595814714457715672020371899314190793675641342021252148462184671846947565081143289655961394308865914039617578121421713954156696872730300064280958693078838450380072679840335192146088007082232578977068389691651802642818769086496103860859017277747069524486218269493804952628585908390338720827909870467973752739923051305703965216601309213752005916515000931603667094260920091471368721600770935869887877374385518763631929267821019625424646330615357565167868355114966975141405649927828514459820527159981011373607418303976861666710883811139558093760337011008837519586187913918469939451544205938616427510199986891701313923889115187514158615961300490547064484239134342093855431853220897633929888851643855069546177417915454731863956072580033335049677701770088701129664761469393822053709498404505044222233125652507850653887194362929946384948028641094240801364576091335600147210775383176227708913793254035466237572923805872156190335901000712236212211880576485077923295947993726480974866157578245422870832689777578558654144959972640944266957836991065083341416371644012751139535957059381515986410169785651618369639432986020211289156984099261423827506321921406018139610848777843998170980624145199139487693166378058262041848027162167459233280576262318898116722257821970632156295199703321786697613192664399701233504872484817657265592502803482581316673111963272437686084971022272143896537289540800234351272452923089125884580129975561636707991334011724767660106451058360441007720646302936277744114039851880112138682354292673568962597294944535746106279269557327849228727419240622827373248111395903605147571376189182450755680895188146661480112564466028143310674211110000562477962108394400972659667288322533478818484665142775702265945752759814396642291357983607376388834613175738345143685125647307548038458399876871546504044750113502282126280991577421276016202258176658519164438261810102933935277868879557078136582073478270562544190697828139243354977912405879887128026189806224514042883684451517937385311049555270409363817870822371427493312970830359131114436561589712959376444412263528207828477300809037327705050004217835397890344844961506004293710283276957480024888546310586250433766584760662940918358332213197229930491502219788539509991500462287722501149029685177078672320527626872223230945434204229465415950833643937659446420030580011220251895140499894161601199336947661798918780811235824945439363706409722753002579229328357164544751519956167712387443018279534580891256793975342669943407877205201426268586384536479426615828667011203578289566171267748978085262296827996324607496192605034025716540473345848001568276911709579445932402166916845606546410352298243060810714213474553128976308582194919381551241184740424356092145943492771893444573558468380798740307748560739450267053928723815511925358122779773623041409543700345059961973252546341197206651430179760572960752549251440667360613373639105286089342518327434392360182951960595384261710331986290145508884056643710520570632319831865654679304923634278720519128498451914493977992300401838733043209889246345209892797959667621031695889750999483462291738937745767993121084151583249897960322901070864874748010494909832049053643933417770913775659031875918436060188538315001730691858225420210423911372282792072551732475794646561246031257501542689774876494179736107452783721542945887985683213342793745584425144559533761531708602239710591492721447761714514716515783155951925758304016319818997459630920741214290061378645695344516283384115148740525353557426525859325133861676471981590425817020512347624029775563221230766048101515827453635667811763300795309644690521773905244574209036307100930793618331991991141670488427839332865523026628439291874176938463051746386309128535432890812007560783057367992841074343034872253389150770932242627092675145571354761600046912875637495993643951780012701597926108281711754079713304579390061897108400352091127038036313239693768577808194094278680716205540027556843640071963039954835521450266539519847458615280867878075732630996654337418872030606318709325130819966535751089954670616745120845564042364074290783866683540118591843663882691888848908542847282129110515068738678213041738295608976602930456919749501018190641463324670412834941110974927533115184384950246036230637979260612319465426925702030474491279293677874996075727161989163566230618173088402578936565997946054961429568269791570558832816105051108932243564855573783920704097772595838271751148689904915561407172034217064728421010580328189951927510863787112250862026457324262518174061153900986756936293849238195639257762951578603653623971487850441115095539151120720927689759234030098018687012231878215054257560143158827933996663848853600055051877380617509723461499417664857525749616335086561808516302736201181015576284411360854000086524454833734450534403248863510967899721935943998200196037388091692337547187213580364527028608956466178571696440931053356987107255332863899185835451949874155225858326004166975780517020618501297666442449857681102456608075538673729122848692108335801824997400333520888005541683597392826736916799114386326177258762735992240487909505943318327128915553564068441446934233111064682288580203809054845047933954957348904535244972391899843372536140014472703862845903283444779707612056101126432959052901284296650033847032038593582186165645658511411257354445107978782625188901854295719535689362710294689684309701349936322934582946468964858164191973363475103764228213638445369256570759759300561491540220569267403914110104481359363843785843055179480701258883654400063378354763446796934126317948799100481304307246795029973904582173817037170485307426808337202773452159517390784582901514850945967844789320546729310070440585693089203473441014402454176811011810083168909277787571044028650001241738536500721881694728836517559582306137152723558381285039998922668751288597849492106833977407903334833173484383423863095710426135184922245629453900692411087442795354403012034747399604193349740946134004575279139616466224597378377031566381629859163490313173786415631881538050528264933032599604178496532861834574920533574152873804311238882417239442906052835531614412924114363128123826893793552291373227950215317826668434403428129337152081747751435100780547953676089780044697982983942044184869176634229344803186453903910239138080819925386172551907907630003075014041744931557209005262729690258514791517404059250169008363130918057413189875683459658660632299906803388120626345602664685989872015840738235697704235415449839626194633826240290073432979877642568902217348425690588892604473433671378187832910545854063821466259857254462422195657453914710856104862605023368157142845914336816827110673088908007726195484800498625589658021479799713556633561091677564027922479483206560414979463863973992744941878598045228269646021708633357047390879400737775099322709294657044756076042109141003465558286732672066144497856661398411307315867298985209764372088593235379266392811808687652580324877370184830707127452156385576979940342167396236095407653557861052616822092770841543590464193463852814415388608504271676295335605926055190814955040574772543867114528237900251602809871643182999865907306895009049650734703895293893477616491088737179255371040359570551468844141985723563559987559115177952546164757759167260994959590493199466656631723299368067797857386058002368954981544437907558011383252033104149837959969438555393051122743527602081696810567150773544332485828381836828033421271180654535728865760598468288949178293634609911189004918526869547799992572405993363461824962291171389848574135738100897957403932635790448799217535135163115042826424804104597801023379868736093137522024623918645593933784390548844958971843390417359947385344153949671990259094184693453380476258507080161898716430291088949877016921701496911912627495254441471275953113048857945697674443286948152174915734275722047192196886424616705822631006678006648179330530562803399852149171116811033330013265714204677552447779459103167718843217532452903031726388704915256531876777147010917203038154076951266002490112005346790948862660318568396195972278673262220796868033394006268941433756513947932093688340883272883579111798951425636538596423768514356328378846540559164746466431786512631230148379260363853482379094358767991705403992599797113616174454635551125723710499633241221032050394029048161279130284119342781443338133385899476019055538205913252280248500653695046549397513048984544226383996165274927494495258550796802987352246289050460250056864959739627031644094285596170643116778787061455962709568545360513598971548843260783873557856750453117006214894990410864376887079688878523339705639064933760654854384616084323703934964727329396838005398604259052886233957948045268309181867957912533088612031631829196611744772351913603166471250370725925949578716726193321795970568152421504885435106028312537355242956260174321593761714953794308005787048780250384494259547456763301640066466713449011522767650115848529873816176061228710310576575816670364215656411865841767298500712584675180608580088534417789418283504059921255268433015588331434049262572092842022758278519647634139472035513964802537809442909819751452634074161481124887976837179912247518367138208432923494892369880781524012159330032627976893335277519106039481509517801286364573283452114730360074370052383968033128040668679531605804536167774770966481535958170971541280948277704283552416740107971173519147756954123469891179494636709485287988003515793637383156512781267576392597022177847081722130307475882342550538586009747652287114638619477585820084141952389936694640261052508149874828357898887679270472374771469636531736936949433186902779881773915555154234270856583797102030546423262527353619452369451073403491767652689403360323073132356822915259362011617641388313698132442420285138658327270868794166288317481428158832508462278835528922915247108280190208561696986604848885580335641389328809487197586524144693887713938020170770187983856853592380024304105086078200072870120389453610356189284634886991070910194935804711264520458383831212045110211280090284730446405508305321648759483797051497141970044945483380960754945734626514282628844768469765230784592135591342553550666930591008861807146691376870996997967720358741667714052438047067844603204690472138537421969372577813418078749015061893856130230130046173884149294617466046461560732806515965371550056015534648411393399320781403728745973462429371743440332587430070461350619770738991651434110446487022237653166975432493583607073894912011743051131286009006989554172329377456490426947260909301492792645700022704249354106180486902611291249118450918231087613518830511737193084194091699887802523182637291840472120853517921565956800067307426735623659834261540510538879009800438488270476361534989632410155056742922849353388780076983694184710823137325191992676873805809663713599705712885746797577089678486787732293500909628462884524735712914916347007030869568099289944346130644233415922862801781830346326554035034129820216919255877249152213555815790552661180193514761167764868037307239313656167874508450527659748854432545899941958424243369084949437102600905517404370767022246576525190566266722062702168560111836786638193815377413653281177543948602266115185494761828965887227302252743562875946516497851051449629106252294829200108313805084401228810523945895834462480335647812740587424686487687735552789058441140264656267742834290161380902763170040480757582686692163439198631550027948985217549433835797493688411713742793307749830937724533420340768658786874306836909087664443776430550253798951512118714246885777724934423073374582990241338445275088413900141658990647935318235450374937635979123795784835554707295233616066546423575081697083968496712274241617376715632468421915409204776658596835268300854719624109494390653313616556948724867657202145737424067269193115071181699652643289638205342785648203896682024784575897815218576977131505023265759917010016398839535908212707507173349750797154682725720841152569536939908009178066631420331015003042718095231575246030760125938563840575425289643468949723074776708479579885396565820491990222686944105694483518086916279173559188731001028465408369731940106523210613535325474167791021409808674279523560000328862813623625754953497340210166908211343302135761639267037685161539275349877040318189119763293981927740478151995243121425632413420316269245110679012817377014596561344174137233032947940033362393274678573701791154149610046129456206936995377177508892755665480034376664017490546460382047446219863094631367555826880625817587515247458425225583485887976876497219672429792032301707179368387890942373520517779080964100127052886461867948218455252682529047480787831655795423200112703807579045451863286448322693600554419550375848933080097711974822638867549715764569345566219277659462184203666696712845794997716696485252252694565699034207336088164981338740005976092272253249128935461357859854128697586598916844979680303501834300534440682739032890542590835157320313906388350620421083509045840541445105131333988371106329060313440624871373070766992924490089808274387854688308918642157916119264071725660204058408845029786319475267294667673273644260100736993208074628215196446463791752424918263777913253828930514164457418554508903775586656248492887982817110026360682676215001390860614918618499699421933720951237260441527426866625716661537202017924385175407020742340653930832508114920529116108574669502696113633082683042308566944579272239086546514373002041456330246904117346177788538733181453403817028689194988808223208387682997190704564536296973741506235616630843286043753331879836864645041115858946163494554257804760850545978867040945946481785130532857680536900279583831194216245603860480411378003533493883024215832999737322817267358547292774334870525004501197194894631468285341697072307987265334744069067679246073888663859857015743314029064488005458199782350014129085387985715993169079697640483408829966599548992223508653413604804230445921793366872381272903711220724318222744807603404676081274194651688813840567340682340562118485115521621190025823246422571363218945952933542595855832535283026058528965293265525841885279795980411621507919848668423505725252279232430373273599198876826005226243425534581793483996005559769753848072665564112944270075192578739893284644182609497853965533377569357436476227182699194862202202707966699938958679895761430985924598092348176334917958818029076522499874448162947155399397291956627627115317586692149666361787388988191858786727223674446062865048665481958366941550861596736603801534476436943840001113188828784758677654841069693762959401232579768009272628455073127085540475499279116457298032554987077009561057272204093395267281842193858459103283600026768784660169003118277390358156786572830321426079914284122101354332192222525446063971160926745443213775447515384007649156874087907984627449636716699992643313855847802403162294579560861132300342491555008338431166524622042240271874795031085897882116298239849146141452550181501951397513404609354176378475583304478041480245337548163326550052250143434510810212260739896132774641868147499521090384568073247392127401395728242669699910414171483130707794394804430835725441418615662045829929721894413301822471949311125261846145980378144834332947180029045215223084398484811029535397179861682945770090909886521505605390839407456613384836757859371873609115774184272624641867880956651923180692858525281340723189717867541664480186406884967695130873788396506636314575578440741364835657126963058503575964653795902009633629831171736335723172869465569991080001414509878406323200665761076037236895930407193568890531025130798233311228544325728014117219903478434171373482093289274613446008410332653195881184432891143576615858509917707694572879831270073891428200133577717760884567710349364652495120697849592907235478551940853784523955955519318818244400284196554054416820689420835256366961774793100015573492376084654027448686277941072900333743416494453965082908268976858086376465741641622877053174030307768383508195883707087489347469917790328716830302497296990729255795288746247204272956211133788819862962197194812352708087562226869272271377829429520139277559644557775567470161089109574415759620043412926762404898470028836044060052526029202436399595662723188279259434824426760802906207986165543393795406882736262309318992304214101535271527952085673959906092151423506845594939324807681078830110411986629420095042912462817071190086821338102752712327079052297701503287626241575706227487456630740856373129058436925925686733534201786412061830351837404690962391121237864043493353868374338972879369224949584689681915303714286745679113316007980870760170130743367100936245755157978011670871977219074936959091672542780260520668855376926368444054637033409379666837174431188015520272195703484887038028466428197480963222600708073731765540136673156892236025181998823214292139793206819927850903581697279841628243940337695681540946890443194018973160711867996413100246944467907325401382663251376557495637072988592449121473621038121319113081798805066466045215675537211771687366805132219361035941484585178690189377635575210766068046672559920324359400518139548893532188577583553539855697942800298313768262373120673789656558847179546873654329430794090516625696362472660344613017652477309493422223607867651276547010686282182523675954114785067991675949763134057203640080511099271690866792463151088730925949046281302225806632864131470054887760865267771431628745043965723352235740926566708550325092486944230286827086368025277768313678569186016976078507142376006358286535410157382055530977704165458340365801689807030050696535781711890119698640480230609011182729725414549102590924765638430123647437755630185137175225080876484284671479503642483725869483338467101020706468324677878740190424685735644247278640186133136374452055125831383430535955714773509359474880956969747311621250451324616422341779454721986663859174636867111298094150875871020049715128636024017941674705306592427510064254184458817621929420615912544389120145247829513579921817232285301402021889606462104009263718203601450780965397127315005438953349345258704576950885130223347101183914512961570455144063341486282906421494044331125878873357235701955235627275819525539281986245076564675279066606590432574019579760882711891999995134377037180425233582267369711518226042349069845964753211424599408068873600008969380267238804986242342840520512152874819420847367960728403199875169866378154935550290694220982432824801992343769539466619085549982843868843836503810216424949669140167409188755595884497802063529581226548720859778581219166156378308913269864007334969359402940823657833199476046466082236536331757351715894753094860279740583920625537427035420262594739591309153645167589018965758329236104369374899002537458095069351078496929565264476109113394618254832965015692478556395207899917986956550262513324317615449763458780634370380983158000050299797942845749585682563734244377418108555395091493014055702070101087327274691530100082524196658301102952635080948343224464625232888979734035337488135334410031356191282176951742484345075629876392400154282744824454511826670388775665989576795835640213378748555810791395263411874993157823349921321295439633164605624596433714370941170940756826566788428222453019888516653160806993472381707736251599292397949139303208457812003724390131746110166577426709532570524421921301948542901983440832510328155400447050341983963347217618913469600408379530086166938076661844100739113639224676078534451885413002050330214866726734923747343691571916188184193877064263876274884248979777899482182305549652757353595433024181713613233125714841036401998059368983583756641880420032532697606607949402088307108088177846450923762650983805480008171747659832860341112618523157075580103058238520473596217308751286108064319453383125472953959746999456306160983254265354975842812620943315041742278036757081022353285330482521795839162473045178609460366372232580572338730171640943973975984386912235036668222348494308543122423477526138021102575801134279899751964552759136134760679549147528830884855248483210340614764448830910604834169020930752089448798389935141636482252959143323444875215210203382111757987760171819757829999479214867051639608086956350441568731935102080002575422173402684505325286711981739532986059421918758538751086916752109316064244631500841036244971664295847598981190815341998129741456094860373408606104150024620450056259706870705898856556926559515900704734130661149350903731047746364308344225782246361128640902449948755099155520493165391654736352821258030554177751396876536540699666074497583894862726044805455558931359970649938447579939221242120675466993691177118765293797307907496467897059806873123852160701256461877439404931703809158130862624103180047748473970194932002080685375599979146376484378129441702548273948644388232817321328236252782643786191247073119544335846709866445571914252100756687238755795971390564456186460739340021126789548986286197075129328867092041246995916356289263728816986015535396735226450266480960603830715468369098848088225694156996609388715043330451946272004893739153706145481346654686773970450601214540632681762628438770939265162706538280666208455763290248582370573205617205780902837264691059970608311758910646312242288400606860891003248854286066473015023568785776059785385473753118447181605174915338263584954163867596425153219361554152684442546024978471017732344221198129501112593135364991263995415573193437729786969355617116679618561385817787363901254580941053651644814620507478878552166579395013270115748734940983300039795321145261367932367561560227888245856384069261432676419489059309454079804737103101274082970004548216752581267248834953510797436757092936495596354819585143219149769446413579737022336548194170887950952613965990604199691354706160364019781763943437441973330622134284288185691051059223318431967696773516274133171953040157900304007057550982945830042344800982670840999280655195978164765313387606100699201084759708473827190075181654565365376243006839173500205707663121560120250650066558851132059016372244210979276771262377485901020778094559811844251056086937730468891055844767492323333578392020156125855433301202471343140970170302043059396803174251896436722157477785909222690857257788126400643683661287790834868249518854009156605454363527659854415452574825566259507233336776806487941100339882071872733098897878723580683621185532230694502231436902184162279769856276326892424264992016037901294733602887508337122537629090925944332554275354615865161969047327103136412282050207705553898776329373750980986096001327225762518284049738935058299452853470171425013248777327491539398923942462129356864572127449116453423529209802946609694504465527419097453098529180404908846886629416833423469426524216401463457994505720999354253740830364676886751499989347034977185851412911182785565231786943549590477098087916366520427636686679421122349553238397079537046350851253847334415977755207544730918543201927734913012163452324263603593110443342443533935216887792025650203133005406849487251421873331660944090023964154936330304542890493518926894419717378475905417437395761132151421394024011065900838292564730248638135964266805103640124961372854225671063159130765200739845249358418275726218837983187804159391525639710461567812836330368807387140971964713261651778055066741477588529993922514223443335169845360566095026910713178793887459210864599091672887714483682658846781516676278559002873096513102097290789648055442661842462328615493805566360443991629818393882133470214422808691032886534764477345512782325718224320948594393888071129586259769956388664320752579039080278368644354513739974119445256163447455771689701972994362436813517133896447440593766026623807147329372490228679968833463392468542438459442279645725909280586860239919117165738341190150785856820710965713455219753610685033907590539201013889060650407484131482286264670085715432390600922680198256060679185774579994703514033382673790453707562190633510199643636950813388909526957062322958061104939762953992400523874055009564585535981555913963530941621533573743315427410655742932631605735381547296635911593391751113900623499802759136635769252426871818189105669619940729797618747019037682328953813124072959830726549664946496351006805719774390147033253599696382770031682655058630513484329484874079215507293785542156345646409945436350882299875681348033356035264408357384457161411597446929484846110854147691905073862509429831474585355943906859639709128891547503861995382153046997522314865110413891486361041997300050796786282993264028631410885237157058781842865875712639045640646504544446613332287312310505804362064413149647189860655623418425960010314212813925492369724997722563608613122613490377330683913828530303414699965693339187505811123368895469261851060933508438294632402105850211312907826475496819904774793537312554175315846643676010501966046624047364496562863125849717587557805180749699021164591876137830934567712023306602514215529426480408644703806754439766662305608142286619835756115858721243870281985855778600943247136231683264835813855709299205248363538765873253642831380645601072231334847609711013101691479897075882110690436584872681722852412799725694562429536816281073755069102378850935929597947727264028699669283963567026685706430987405332928905992237933179496341196335537133532415950852737213518211606038293472166639422615874024346862858892681943351039082116651581873556942007503665385526945128385832375229832724887072982124293482374752398007491945366674368781747710286023770998741544060190731428448186292118412226456410897490420343407164395431621831766757465566339690663784965914297959341310154977719993233501020441931459873378783884540582431456601150191218246122871064636262029505183278130990260422430608993019971394840129622967931707012659386362308646282548867991644005294174205436759199404972710457669106927877190854478675896708869813381442127802447317812575401585614261191170655360332488723282255709004585676717584885989432090931813824054175701097011868731022413000434467473429648496735453518873625271281903962228475230828870126645252624650614756756220844763658293243205768088336588740440981257145855346176650968961350614954045404498618224364964245806148306189158248500536651575937262038030410366243025947392753195676006579104232651074474153726858570600737861427741616582064208696652290058250321389512974954201550289211442310988233205496449975059104706942299919032783293010487058693840008558501371104354851117604518861797099436283345739378241547110084279288575951290111641301405118938419970288698095306409306717190144591151017829058725792972448234016191673832948291119220215130797559416855592350296435064024784687060830814537927851209100215371355127360240563404466416155071038221816653764981319259777105874241761900454333672253572681882108683977065678616630856076296981761641420730519260277209941238012251996044822739349808834166743810685698318299050428662809102000001324467009164373444356497297100308218935280132287888684955683624328892614586144106394053419157128105232548976382059160369881366867957254063393163219315144146288757926532127695672726850930556794947360815489153508074956255931570718959523501713685405728070699743724669335787261246861547444221372931299456870527748571606848181948182463581437407271923649403415647350906849872680603023479148162804967148145286897328370691053652148932750375153722661284998361449166675489449596687932924197683649550694658637921626392632109600624670771222215855495253384972419621965253918148391059591533838924459216326553035938572192468827430679149792351087296699772546363242184588087950604093703645590332051569151321283662192913092841843263366051893693870956683058074719337680780519447856659383870825155480504515907719079161528392093991154176180365075254707240390830563818218545218893987891519049784778833623457874150432658899270100297613495047636589329456238364275910087250173524724050007109972967869794862328793141816232926954213613154411481453668396278051335777254581646833344019572263830203351383050952646801046956665377750296962464942777711117139570156063678199002902966631782778603563527634644414042550374690081377875759807679538000460892529770788748001257989565309334407879514994883806644430005635586230257727763191323001883237896938251318130029749772246079186098017852396783892183383856128107249643508174754330406411618292724221657128242225980359498658129910024957339515234518682815798160235376202629775198773352138754858984636101277156022795229728176497108267781553698216486246278995421373353600241297465307550817667114167046012638866587177785659087681978111208234117505984235032960304417210936511286529537787271518108453416590703374719918458260716217196139628776998358741564381230838864684295444605438234258724423721242417445601267268188928199102216190522248401500044876816152612102577147821247719185008822076678715110347591997679915344069722213370673532872972937084435795122257423014892115608308074776723832987702167288340342146372295103390438529955938259909554434373257953365914831789824218689330493629183940186987397520941510735336923461537782438229813475170492232816939851794640972366006870908628840062631235882847088614911231650537944983155603686539076025902466872303484085641372553976415802843419891342549805174579876455392102833476905711456464535779183038827743525315691481813622281611445021268429209539966857102805274768013745906345451284901745796889301484776325086313413927779625746657695491918728959201374020694969696516536871060507347566222287334253885932251082167096092516916391649473560190074123309983027218592016005884660641519440123815243442561117912714736391588602734111920816779901922013104910169970303406327679149111603099782875179451179777300084023648139133619975401002086696112108178809665478728857373975724233782787457529601696411269938433897458113061484342177818421267082586520890186703147875624605512100625325612451651649348897480448770331591527959277286355044259721559174736630124716450633062558163821663156741663943132647973964654556981187526148697339446353333927621396138303050168079713044311672012579293153499298926816200891590335896974753598972714420944322892930005228285247910226657741338661311088185084838376042083488104207628352905415218595495258657049500065493865035946008368735910679916658977849108493762500870733463219414339447442836405212669089530276978074135008120536011772054919789661856238937904778706920033994485787213009673812601505073144194359557079246350152396603064054598812579036147180043367751053305466984496567878143644473776777036857388598304744896903957984788666634879684685910955524043266938833116843291607714479594743587659139231117926141619958007801471946186388186788990183608305029931382994338099050213689776232988522167936205495955548862680927608818256073971051027630991138931130924404441547655057050447056087271446907170792755658937618172378035857535369888488820018777154487710120945345169956194658086983457716517260134178121344089089259421574881193603353383976651870085877564214946268294278994374440272356818547464849238317956756597331897628388344373623276414208081020208220097736656772297019908456507731491857514328660494375113976125289349082085915054268869618592761641960975034689725490778525785567832894903607802016276998183297252839362060868830243963277384944770514483674089515897105697027777883426637566528057924354107285143364871424187021729519621947715481051823054478430731977691319617864321587451209613227455369973722532823711764916392906915526959695468327779755346177772420321611441820846787873520415680965283698181773005996593342497314437309900271626284298370566050127547179810949909703803393976640197866165078682168414717320765565954822537784312342575745170164306461771785681232241211232495220482928671671434606366906520313173011560151379701990989462622300301253566554897426577792612625921571105942212778302686481057388170231222393684101773169693316414879679873480075447148351895598681531914839333600605374604976760042020470905407632677121178100970199363209711484802286041828948195640013913082328612326561531540539206513663504173576583409894154617935168237389770909666076577739835062030642970629973698271988780857777462742316483731240782096046946272096325765201864668378464169332508931400995828812925258204446648208392460470354553919896931248153613395927421011667679192540650330489329219537595155381575012821426298377789888976645122867259621672082416760038840523588777954261228493845731872897016738747581463560180755716546790724929642936129408295640171629242943651812760860901665466125948050939917584615130496835736587512074846867354967981695023784469017628180912491726840114362705045071286239090104464429100709698285864213641524825692918873270883250121920027737069452999002812445743827108149066399475442357739306843852002854809596960947988516845613359244754853416619831745658451950006101203880680338512321936640990610329511348310884676394994809420094778958113088550473796332090490215294835057775010912120040008787812524539508156725041880269507907667036664795240732470232598162833810885595345982018378359245327604934805009734027754463249503011649305526028540845478936432469418049464096026454414979713342963046147761333673322543834438569540572514583165734513534554675697233321392143765646571982096565545997030528419301149506284048458957386155085758815897401635202836994983150462684544309655267983328696846588879780123496334806329923595829609292698681082996898703617848296215596276487016647259720454650150510101375566619513596706843171158717216039229630906830922960544564472904979885810718602599702431256954674161594558834264348702340472769834523198187335760803565494802826520691793600450883263421104870186094422911578434566985553927911696403076384091229769254299504573682756984578454350826035507380952229909430761170675091424956620098916148492955111610675609013111644790924103676722544001530815142437720886351977947736096509600918784133812617024048721330255472271373878235553584354151247098042091159222875568857770131509234687137533150133673547486311117896076463875487093170590623235736900743524657635701195312727008391054018428615516953121962643221257253302902354629267449737924906793564746495636094451024247242939403646747816448783978602181619113156370639726761408817290065320738558947797058834738135773200222744389726485433595814313134019697340293399757183853361103054881427620009998477302214629283674551373467155833514046839541168137509873559195715078132224706996929865138746041752780304597845857267283693831410572733661480081984587668021274049466132352867385763880677463848522007702348269965800460930231204486275653200365591016186366867229464922505540672361713526706442857588318169652968670789595535615250993685745212256999965924970586748286670391135343736786253563959730786995455908070071084002363823630910860322115668862969716791955628421204582746791707939266899317778005986723603204270509423186792196325722126535409395072646314356218723683154824444259582440522776885471249607429164398781006758641980102135729701506552122320829368976298836300749917175524290341592517276223051201896277782681224967547901780075191557491982324051438602959955972484142108421505455650363794354723625802804030303437369814196857341612631330374058357393155497986126195205404707750767986575851120379480383625563719502709395580261386150221347641492965392853130910620963581979511236189009332819318798048474414149415655524101887835802743314214491003838133991466791570687842805323688455966433940167943773924607782357699945083666810341205879646967280124505719237524340659650700775380486097057588534322292136199078240197310913057806331850040666407493952638801026334072753729653821319858941571652800448296536812299529557750008454896116552197179041679860495241920841238095514151427121378748900785670959499607600444972705118020065090429135717136948667291711813188455818102970909945145324811444735347341933806632463114472218287488592416201768423016290888261769821157683619490198579463693458252281057475110924956274081055841207044700853446308353877050638759009297170771489622866281711768025606684007659786754768306145205179870877755629231500997661366645376696149010848251232933218606207973302762735564733571068138830166720749684696354077783345600247421700647953343746231868336275330300270884212173188712222991872439832736618954239481776979837128671871462537412539453811119736022382810287716388556989573560802082334714081495635545598984529302546475267005480740124500194409401521494267527771914477675321899540767865858956322553744932318564253916997107098840956847518085323688568669112126124722515318980170052248857458062882934929432482063123508450576884217220001848846068170798925020036300769802292878360020435145388814011725593325511404171353406690436948712462283394188417752396495854778325330674288229744342178420503468557982131985050885442279543407851897495223808282827580473966341153577742994646651841511552897164352251073064359628808704182661222117849909929057809016019267336589161496426163461018214498461807579228172914461449399803437358566214980155464388329931612187420627054322431792362012940938034895907706657030013767064729327554522772489967221495955648245658260155572694560138574755730388632088346705362634369363635425053638974519357971837976889467823203982108543155373197046005947170194943616338353050400191394650498192706477785281238137335980735686673830905285736485935078334993537988487909653202275813054595646796287336361943845719736406494029832531491187514887790403260684864707361877876523107258093239203199415134871829660503898422552183837613486590776844559656469732813526550807678761475799896861932643589166502532855460225695147034439773645588435262054075046612250133449394012889504895362306471909852904830486671773482476465470010215300487730021006069764284008458447938426276334103007023136491552427799800985540597657360138882502135938207901143502255495627186505762968071351737134587512152087808750755538888754209155931514148494473524609555369372220538760835967262132911685297407965246242055873421862238038586254161922630441995983942080078256435301820546496556551745987778568909298987531610792446416824057561822698195804786045091782238948438109302515570911750057654750484784060320705475595618433574451667974242267896819965953648450924590949497865691179449662031713050527228456382380042312527550425813323820904949392673922362433493279306590616895428739772416514368884352451964607671620558237881687763573774696492190748609348597470788515469068265992775273428104276567409444945082163495801386033745441016869244883912187124341203520468016270134907755383894216270228571125214231007249203009191614039382069172046260494824726566907870005930544092266784915516633715533693174293503252658587988792451505243486906949131277684857664974995963470692404127106453642307047457664581914735386502110910132450199025013676255591591717166723789122693749770306201924766609804095541536455099615248182698677618309241891677136660910592472597478217185146504341492410415292082586758868712776212346284658173310182079323407289672940976899371489175506914735067109212140181317738463712916183032424299787757736487173785457190076808233931333353213434915019833201487136053456011225838959996910216011068278353056830225103631253301908203978314870190666762722283549238282174706299286217031248985230906405185183549713485697180680444264066967070113668543887931050662338630961727708180962748856837314950826059682464302319671896074257410012669268613165982430541989601485157610755629343756072214739306798931693823102562034566298057273132445633413884535988996716600091837817693883256391117538692102746395375987982014432133207841156797372611212048871120130168207587379110050913374645248064133998349583350397010121286537417961314510739457781384387125345739802879360077863411493124428238588574608559541525335969819641140517520502061338029305910005970243322601951050690349697241109908793768088023988989017334333737549622603752259401226860592033121793277159823352516457504155952311571153460385634416835648742890255253018890738543096256264579862878816893328181627491204394561666765591547314380453548359678925823249041489508238063855932779481981939441710384403318820636518404238013097098942131634721763875170042227099246945449067458430477105950921447347634339645622468971129476531724963462319190117361271309034006347058594862555636017967482816244169762097039680289603175324114768951362546356674994203740249879167011677355153930765449018017928439868455208731783534432108944386608100406349332088371146744021868757719715345247291457985655426797980066233881475688587184787865315224975843063098044089039629379191637451976724703386354853668148614410952415807981131422752983857119214271470429113343649886327370449280270596830404879795642887925860441678496027779900312373169374201019831205329407431502525744119570514519729573498657997914404433179542526011110778703116146749322452381927252540229670716606418319448479712407829688096058673295652091820032398303445278705843669305294461398274429957620134733445626013021316964558874850694470696743303212955229615776275669497940706083643717548404450131432424710410385419432929339391052331143194429172199992415286698380263616789945979656499208024513789642595793260729360355436793203566273807863326444654145368689689118340579331402952566310880318748149616447955750842540390419268023509920339992663575974812643563552756999976492677052832984890112292063503540267805844533030428717072535058972122529783310750719308623121478595820941769399400233111648591148811601344324795666143052685602802175880919581135660785612712730807644141927317623629166504048444741745907102903645628384831075186596400797011266436063076396032781113561877635322808755690014426210992261141935246783071538266980105393160376562247982376668370016966588073500680044742644958786297955439252744911784212384599589674636714964809860376958456098078679080810937414723001436278119001574259787587948852001652550301223736290021162961707394058959564967759550139929894389622841348733014365303938915824271677758678709758105498394178639582223974312040659330788336212177074971159628246595125461735276622565570169901574783528852138791756661247136379573939315684455800792848169721716620757732119407702806514845997372483787846237700169593985053784423228179560331057664289796190055910165314280991279495479842204780362558754978084875128072372148925482468986943475855889339232808562177931070631545548221960966437685519058039828336532432952597463611903734279045202094275450681203949593911332265684377809277231201276162856267389204251028330773966905539389896000366852109823134459732550232429555691699944476239107643065311097080498563512991056686423263035004260158387031525777408501072642750102288265614539302722276047884258416165276393910857484258999658043943261152267868319526814668166000316823680932658415319946125475962694916726555829297607616140330652721748023352692861902163367847955755816113039872064934956878469673848502832721647179311372904929895295253462699858484406469601197414426943516456448426949563858620096365445324776188450411554868284723037392275339182286072770156877340016570964142241288989235648412988482580637287455264166730180842291124792135453420459518755941389376053421536143324976923838084489708989494790905370451699780760049714171340436487806087221276921051881837669936866557435477443919070997469837792112398289505746193782723731951273889353767887249781605737897881814533789309223943875806674337752093800168861952158510152324134111481674590461379326748376634699196000184801062921816683934037567629740344429110585061110264011480242611056832195314185700026667602258455183545597191882798815449884104759976784034871579161152980087985093768221135768727085677311576742839043623040115708284400493775997058700918229524597590680385295336447992771211593168593328026629651638651374580412592701371721478709412310489370425734745760796530116031558527692933837769659817521489436902149553317384637766397586757752391568518004103271339782578986435549449755807904883381539376373158181645768090739655231822831918623764470730256915472334207121085495245020620977067960347440302939491650933023607191544795964676684577187227857572433078980715563572655966831012891625536678429245790504191277912976122362381492552972386137859506569773792145129878840222219406208407638536430784670887832728458454334516831526398919778148896531608039120097816513963377254972923736401611260976561191574501677967393984308440943796385082095294443677888610428235490460393335282675430584509714982067955927522461293582276742987117474904795476695103732082597978831894366647687812358556073479572164021112593117305148506575749746839308577112952600369781215014881111203407827675256790945376388189669795283897587574090115408049330203898725047560041605847918079317812562947370347962023281316792136598629219029415241720119485572463301738275873824677254011419972581247285957575794543677187125138906208218569549580338709275722193276701856674539417163804634149087375876340530309129448522035909050535565659562355466917953026887412023774498101678774188980461984955889009128058100302070549237120563036518584960429659775921353084076685880755096304882027041209494307393292050064236387612185115221421221384375023017757169575529984231111469495318578404776187190058322242222649108586009443711538316516749032680999144366491950248855534292736772457992946585266875583228945069756588351467774549472730411277846502331241703206250597785230409434565624377158373955503079993959234289240553452282256949174400508402550529287274374864702420262188472022877049843740776001158554449772722337168342487034824287531083079860812720887904511511885772950462213195488724626835412019774206109472063742487571266094498979994590106523720012257941700723561750834502178405801665087211010803494949975738482004426758556045795356352903332140359422115818821526991308356531781745710925773700722379471521698738210675526787378990914672444534127344708578431829349339920470699064629250415600615782573521659731852445146816500801552688652415362659751740509951405036678628816633747207161747582529808391742341918762338574827520046736005695201582434241869942820144084532659116249024873359091187449145576570114409538861203753414997937856816559575125415530573885294956602654676624340592888503014537603922141917812792856484952295842265131076528006540790314200589675538278347425767840417966607544082020244958032901918194013555422128070810696192891949591922874264535869089169855923174585022848719373291500866365128894002779520682161685233743350325977348347774482471900737427476414030873325723939979666618376007947921067615618040563446847052335017652625386372365879358950507791654017385217074134713029688464257268536209848416753541072203383011845589594654369870744133421035942146017154864795794069723538836707059427591787523546974497352329414858072073075823289171546867956675366807154766854146357777077762287899712571556428822733386302114894856542445864376815590352424366401488704863252352459934656148338422499123656238223377083437400974229420666468921892421330407724382036631193629777321052471955158501464957203178308852594947582784613370047082115699436314997891605955120550574278273925937471208393251093416890714475561583985163674694423894942373147683200037315758573945891300893934658790102998671002410180545621684194159499092662589104557349390517588094976043103894616110553857717760045394897556751232665314501796549163685395794729466736000509827421720886105611670803669085613877471470374082469239152131464246205766958524669680036845707041693628175421778381998645962200482238514866889534779595876236111954559329173698796183204889469723218837886644466082204928659126261107638177216594990876288447003802256250986549502326214084574888639058322314233760252287723619247542174548284391530768472966774358639100886664407809133939078581595641906573588794282580854340635592844970118728894606326746412727328830756776469477817002847334364414736363966347177839419104985859066989195214250270648154964145303282539274432558297762934754065256837428625176392322295212123708261598771944048910056268212393954313159920933652688709531267575382896238576443959155448060101907856067248236637464589258200399008022998766555402488869564741982498200507582165989803435223031464003015813528170689711209146123560786387312030865657444733518653460754326998405006161764997225943727707938876259886027269104942225293313154771653011932057191893556358153358666418042682124722329386882060477027765636726946906826237675542950586298344557357883885133174447489784514311591950153376970232675643687589970279471107704100401035501012560285276516394817440602552057803538225329147531751526839558633162711064703445970614140342360460627211974771850149355545131719780747726999881596902470172694752781812690509870483546267744569291278594998891402262874242143431540602860312620652151934138671111645827810858127362299639984968791850740317649221007832120291660574473387696150501604790773654160430456852170723031396685835368365024110241745685346657757223348480663932975009762908648274520655592395225099209202554913595225152650079174612966415646882727245248773915253478921172452051876612582038936281625074787022579124324587888816009976017903915765853423426023842396358688550832629044807262365995378425523440918277310518140446256071154622432215418627257810895909616594895715285085816694126460141761853752587661610496367283194167568119802680206558558510152543119370746648828033187928714390485426099770212143792477321215579499507906326000864926164253993461765357667972646142290947794390058440674347115729317287744906847425346484098026506900498531492528821919081458166504371336370063087057666080648429196435108352293186488975624004425317928247981469180764963893189326667601774260522218262025314006717165323942495581464307464457082301742661849475434624533005785127413698002553035776498030503332591258215619625209548091975982319949838293406897852291360270083999571318939376000586802288027956435454507025127479330359386938422283416637159214804207315091269409339404325462828402633504165176099166596909467731083698973881449344677087011108404257719309956501044239813405669529613645987796029642758402780296924820431281986137124902171327744335054932690159074581930468603685576512723971016098903858229050144820010414261262774786637419971058832400309234989405372458269983823181267497202060036598069576943079687161470760637207994417284237012530792503763453231457642695598362032407755254859988211714940488439748917994124398430071830499649547718061870939640652372020492001212458843165009429303898257112296464891376716025240870438321654536293975797827915617529505297841790760955457681278063319732922355791163275985280256712574796072660602783183487924976694108652334516074161726438189222751981416870386677284702097320467297331353682495881053674374703866807840385922431099143467374780013863594674126628909454905143647704108801492500523097147748213626155332935743194334640937968288652473586168081099432203510153237250406204504713304653777338977065977891300122060634234027438096906109955065989640741470706935603729991820583639624256249360631118450291840380433949214729489495502312549217554812311598541695128810529739899480147270408418181501255154389136401804615507173911502361598168034398276011607679425915420140146364982205288409011827035385351613183170136185047099464399862468182980447216412106225584100230151885552791802814602723642565582507263836870850174517238205838576578707036907914397345013908382370402820055207992202747655740113599954985536272068217916241161609722055097876732264631595283580309158168323600628860588204506754177245220679853569929528724161679780350535922819974946418369258871163676626402614701324925192623710114904237192280584612289531185082239322932707405723521493438487907731327136063408573778892536729959939589555320314945826237054301936640140127391814299793103613232295365399307205336361602686676835268146530541637881140468217748648805187318120538347010092182029056021962515758729130073953915426051150932400142306945500752279614338055716849297554781874425639668153138720082678274729413731127301195655630833189945338165483481185998130572002393904137062431758315284190653284224353670157120242116195547495583180571233607152446442875626134282122543253101312646293416335416342517855435454830872460407460070873240116060241064421684240740059690656575282352704300656152225104015725197771033213472022060323874962712234787682059910163677924995902284606592126536939644601445788872196239882922134256176153764309951418755835293899668542059007972865344338677158613451871693956572159528262131600500734899928389804167750050913614292071817063361271923935309837584821265387970037637244032470774017253455337734577434490753986140832875183451424244190894511010922704883681102714887436245315190291315643405129065965943624296958617300137003646023593139730118990463280268497314941089853229480404488487389874325302799093271918461299417909234176520864814716737795722804811486963576710761701076050042523587361404413450490149691933870787946914312371217504833827434085626560505610930563936088133426198685334465847147682780066415087585502759791845212036787629513267746128641474350836440676187824406919631867083835736380533899597569110866121339775854162866175016318890614839309518549681843599264837776207227485263450273395644267721616672856515311589108235964903296900767888804652711931936373563860458780548352307029644789685305013904996531391524893458748926506857059280489770459155268798242196089008456387972706900349004985188625447487814288242541373889998287663030326367871317241442785328771872148050342361954740546309339465375592006299621221528896708204766568945395353894802118326489107858088498786802903705474181995234589643451721297810492100388123800503872143917399438506531502153492353305632023361074451435704596104258880734301203579997026760349993698393666895567447070451123740331084548563672475703242572521753304603075057682281430660356677080848810253952881523427627800912927857361499746297401749813828998866399235966712740373315905300589025751054867315118953010326122335558688142292449467331889659586361980941336255537414887175030800763670039960677798366738218006166100209116269864921029704381120965591174568285734164905780553016188205761919020835223876086173622848453779131297287304309778412258359940201806082695769785949279293212604414608428878858135280375653704764453358316060011004925178340311341406863866596054068397518348845936602376055763618065931696150901791900575442387598598115849546598721214098776003133922954631642120504126142831960834386659377443092901371041706250479174288515370952993517740347187323864775288356182667281261587135820880125685367596616627260349907642054918021323986801343622381072415324016552202617106226466651367807169308308415363719234463648413571717820551041993545183853661686269698067473773201028157428100320804922623078444154743643265184725492480241325315318222619273399526197556507373391472565483522105997138890782606778830932762660335304808087309049598063290480821964459649224663513945389720454345580495029912113305202673877085883068637901562835091111594541441059861465162829196711453402371835689768183059391400668567363537823813542840355689110352002082963903361536407975217049938402180590936092289681457013956588189334562700889362062605251992488993486837053411222515912686620224832590358663693026860578629303858878211355798319481980269040587658789260644488771690214633898683127732634650915764051212224825645111491355177706033205522392347979953924453913116165461782857555664594435932112807797766197416400426681689367026585398460396763472593903360950735771049624147619368382929436072153316557364428108164415240732959418293854592850060276165863647712816145289865449215347111794928932534775192861293866161145259758858240312236853113186434301009834519329224234595079801465902654988321109727390329273215500453727195182431543239163183454664299297661173000766187139607211739296079353128306644316213148606408192157441404755367387645992229677942071181619170915578350948561195019560965548909381111233918612685912307495097329163053776368078469991710209443402867256967822290283178685658316223549943336762845168541329459903963187259091132849115300113090485848312820810017368774670045064822540009397921868161035106155307223133792209553315220069434069938743443349586083053580470556376275009585304825049158011445662100309934284613349464129890455899559104233920761858026646863392148106954450091702777472197354986171304967688798774926110571968075270316614880890211282230969270562620261573086151691722052591094097684746110219695987386015088177948635621103002930001398963623477310281089940536426603099493289601687975723092558244229264581213022914920379733890922094969757658120006620456891132158515580656627651223565838717588660714248998255596009713637714807605863604364474788363860775786049575117964940290049334468695753478928682132035651411473130445482524165908058420328850991246357570495990604450069879899615868992246344668319173349167666017672223620870956369433688407116522679190541631298110871281386987778553840345492056633425592403921424075963014949015642756027971510842014428265540379688490636330832729272236326227676416919943162735171611275576935362118547539288794166559970232477019491225021163373343066234403852324205778028416632567117936569555519817432631486630603324960917467308471566953103284418152391351195921836062083833354616308540560872456400057855633757271803873089712459142098207855264606728138256411783544782660834386955979548349666896387702936910009144949871442041915580939714585980429943893406278090236541141039174939236179666968933408454426788939447379115809808603192957763092772318744224008807341535728627668877693769482739419351017256286139480564558979311886839871381812335592991060960404553133289030347532322427665943194933441703835191915451913162690568668613223478282521616537511142342447124476253320138524688248900983500504085604190256825666802543306612705596687693157156719463224279810197847193558998688717025195013820248949444918837222623352522058975585121287851842833513471417829801477890839081911708437847568605330622289361506640143724778285588897375558029656794564513476815037322118529842437794048938588568182466303681123579228138695127597902501708720268547670455117572467668384714555739300103505194234452285745403738434022834352009461928001313630725103136181821727656933322523854662834885550935653000649797750583643187034821101608394396814642244872067593813492342321440118326728537425045161301851582098905880379173702140930788269968560685062296044013696720769057603508450920996804588043543409963329210546034932907325531585306408200541892806654901811397601200630423821656164477274477319370169799399849735182394726417744448421447924169327058321283023501185925457431479658955533848783612035081571573106106030916802657920043987018197052025776043781129180264086649732745150753261009431286441623405848632253735468571748420036157567973281060809708753699091767423405398566527613376358143883492149669604562239124010677498190186168284684374579402604592572500223473820183950943648823450820975967639295115284212437728013706889446963572941925621051904390611981241133981294320331096735362193665602242004213130927000569328524984398445616584370948790656610044424835257347223551404742662926320717810499382836683971242814424163659749333134315666401585533483681345253377875840453507593730620499294566672199740367064769138554006465491271555451345056955263905937855555631477444261216029716714761555255222472286788460128272082608710894889550028907957766813676457578689949477597205000610668222554586120479668823544680974479787522473132448312894074455950385777177710156506559666324143321238184128708342716056213597814295411727379582103220706610369593537975253863431308574138670942237053770093367985641758375917440732204176929272221720795320696304010225435530239031213608015178814900435834373145141856733842868180155870599381217598776475735011842483616661640586661470930769383026683887949609609233077867324076733304289786652877035825704454770343720571265206686101334091890797332111660648102415948576774658478708104256143042607979391091872320865932477149952157680246488764847550509444765105360742825465767685652170021729165038514575008613750600318234042809193624123549773222213791813150500190695862723206768767480303515776973408774221489416520863226220844924127129980177293274380364238897781175525235874943423808451196731606391368780768751595883225202353281374649443827856592709054918951203459865406138050248545237234761590463018514930001409017263680043250429000304918910127627431505352831577767852242752540396000900053308296999981043509933351356930691811008814635434044669296331943979917649911157934642019607893537819795085443044312667053286350367990810819055007199659529301843744800450694623612086877056172920842211034285625558183317440338199743159168448451599709991196247517950833033430696676445441822599410552417091980099334560820028280046616969588561980739243101062446967764321537185627913624329192222956314192998385261972084704971469137075089562309761951528274272923816855324758398128665171712229118917735556217612477563784591256261054259828917054380924874360308521816526223395038032795519784042020760155042990286802236546687969348835258866175125149821591863816330451498067765930939050507672188432194454135516700734735363885391607629512555160350882223856169348244226040479371676401351565488718908351303222829175401745165442617995986350648376569336724109647390632160350220528225448049311612153081738115220426987245189789644037372641732440943441456754773711595224980186090017871394071805040981416840823639817900884530647158682801115197861165008923432469840802557192108720302514665023654364000809118371310084608457579120928890553719885686686895392620947488367810677029953865525178858532345405506525208797109266277847167590278183091941617885403350630608486887502961794397668001161533337857625593652768342366276933040582387216134880313797625027289807898640414446785206054969074116001345879519917238563479259248504161315863235641951741977340496255683178106994168710784877622877522491357626030538573772818088158944014687202279765231732563880942856020665562871462848775649810737852399813597496138282488743848437160686742390216812271119611747734513934656077424555006952912664914783412758882872934639758757458015323644299791840645326546727241888173761567513727328008889932035238137862671991008847004951553054602721214214838198454274447300882050669195467491530881680059854681665727737813618279588967124493038524870596143080636190602189127528613464449491587739860046050439798113852237062562771932436993704716060658914059604797476061875324390671666801136359049098729279098784911735185440358716308719214131212409950940074532826441976539184670297119521210619148669440281276799765174352461869039771041518507313023084494318586162675225461621067559354720785831674774244064883582099826519127481756864892503042157455435044761071024696318629897030320647494826443138909337056155342892460768813830305501520560154655746662329967099324325459796774124751267382354738739475611789483839528404904470601379361136893300356405666169105980019294594462618736134025773839129951163944200426518287313558801863979592460365942195702851470742287754824261732325109517335397256965872297143767315318013614245227030991797620810513812911779617446719782143056439085446347371035377655313433402229000056883553740511729515299914892838469295142962803463100634795422135490618975955219027471931755121816175331414398186764555523603292304761679597590679227353251556347776327395947599017288778353391962191902392302996331247536199408457817857494042849995706661906871749288490682741961617814345634347726917353480704307690180621620479955510100805810971553149060603783523471471697292870837024595238719214349019120752792444151328252345964359268170507894388539832777133212156746982224972584877288528767337123046553091789168856222748313627440929345172811405344190893496279800596333324625204592864563373610086588794487366546836751853822163456729313479005967133694234387089611247981069744879133395256171857777381674152397987641668181743796837028277431976572265328662071812458600767010948965629371104102585620143006231316855445643818557616419583652256602867528602516788773676204713486632431673809302378463962346615276540884283165450255633873125480633865837988611488577509258075507880765365448028084892167715160524690371479450567578753081825071790764487775645826432223973132013372523331156907529905473475049549746522438665852281182560618822775421076953477132429101178029984676218220642551221839073390320579544372101541386872935087811238196507989174070350845974026777784502132415801323571382439587887825196781209703850581418488531865441695453347513005248562446829909263137079540608839845996628511203400976122184549713990995135973095908079984907028600609589583210967408621475015521565332629926304720840984612584369386232998283606090051038060639862837611013954867810887107237828503083023847061610554107980128487066570581460036235728322687884793400491703058645053653826014424171287039904610813033844585288072850897416230939749808950510850074645123686503309875051048247169940653754808501335319505081517948137864528647622565759942995473223533546486126236674736321020621972060971151042515336300955226240669224420002496874453716843584566139670173409557948610456365987557378925893097549445513871942295398263823442399281396200515730680436884843390789920932252915114882331853285616360225728294583798015540853297914555327127340605049623618830748535874132474424147274304987341471207372834950065422605910851069434482011745528498130674708031367360413027638211803237341680863935895485495988643976049090621895182855842944217007596532994308840985092930177992426623926680652162568046924055500758002961090424522451129008417437343002201619278946497190594857896317001348159934022804428777357294164226889750593542789082398583870011842981061925045004795990970785261677478011125855048552562112950560232142418523121018379535271406786502663010583320081333640941339253074267081383242941480734632996654306406582546834125600086229379968755804586201384502386998524813251936742390057282882418195233148509212230906940388427167079577119200251115203839402927886793229910481856714114235100681105038539680302742770911420955832097820491730327626275829374016254896297975178672287938101242003352060442484916853194592890620434339818632127282517605205981394872281671493928485794653521658546955299713197200318747037109489753557307532054784435965789489698680790324006035062758526978503557918578689731195042461849147305249061378777741328957000648710943606666806570976802469370907853746184911927052573255969406694253704748667826640328179865153187019330493992536907596449074527348149089822426452239097986572294613379454028336537997229258097025704980497123394650105899332786093526543819210021335136568833801767239787441479865476086517605396286382239078140496935990623365105775200661111836094145391241262668617604136702766457026537638170347951391824529642626755990451598836363258646422761419946498780542070676252421044425459312575090837916865476490808075837069371989981330292785172119532319047786249473023607731606383119088440179771148711139646263203294686000323434426978803004196973877781513273072920263302339896183715775223168051268277413559280140854382753424716228329601451954612867240855914010291676312028307596267121359552625796468603013894099591482562141069697532062306500637219653754851086038407874352008228388503642126726072648549374004522127920171251127774525194845083846886081672501659209974753974090539161987956963446701908962597421148837448809447975947419252415899538391459782432678393288790920831842359410112013510063378901011235642062589212907810535471377959331424525702078898513614481584343643703609127104737865930575679778446868089792622337570878165462118443802681712840140618518390880777035471433279045291732475286860239988192708139401764234420543140814805246929953446046989550631092850787626826906442521466528867512564774652200912199739837162832322969912539758424920079163271103278784683832921139451245929365442875326293140288337757369448426439388444773358226909553531566636019398133582244136965275141063550142502638353401494480372955807039635631242547069396480609113589583537395696871365568284148213215307161149236666997401264445409763259136351299936827850388152366707051121084238465496985276538887009513299359654941850868109588032546322564893283242051477386311482255331403459480627273205639517715778242489250391077149384778855179157431509294295371187789463615267086948963811856711722293719710377951070801701843183090874382574103347023241567270027743383233266574057131106894674482735271175723110793308655966093030412324296395180492787144849180675127467194275302430363016785503940745349560203658914700028590480270783315300807048961482422722152246866525157976051636210088258214798899535095770527043178365496234189109010539264424302378877729087781627079442437627081358447517828294270291153436292045540950439824046296755282057788904389510583820156976316477002104516851565065807311240322317709591353785756176198162149167246698948148299589885404457050295706876678388961259135658470205601936793521786830877182725765304610570756045658848722618649253099464050399183316201679138901782398965690413590565249763204617081883454572332475574363234161333940629113553579461554913388890608959434783037920409761873977584805933314972423173393645804623969282167992320262267676964164223166457031494232994002204446229305084151911766387514248382643812505405324988653183619107237533184797873822833676114702535826580814575471082398315025866468332741013706749730359084667234289220549214474778277328263078999758811771329044085721144685599671635141858359752685226846243983436995932940301384829830685196965207750239298558819471016246640365865132795907536753008825046898769707683184755036806555901544908501691027826779756576456932506023229003665725248535128326668151850496925017887721352488548032137877049090568837233999238609743128037127195270832760031572379761767101967203535738161477872586973180516218125450232607972829250448975373350663497519113896034520411999862079448516081582328222228472682434672120620042244521315231619952508816631115240217465694556188034216941913087320215073491879292078015831073986706873983296825270400362929273111604326506986030401799565888652691894839225716098305123190467505985079509440262231023706976981475744631018197233942727793735094662299226400296508740468923796478603118233687834357628804882662368206773673309856996683963788073020668678109765114221245514257723646623337529415352258053249376842613008626264873976443318335003908214617715993128699353284091951184531042185360646779841310650676130110960136314400774899180965773631675566664879160610969351037412821120141331337286849678950970080175527521602876985616583819752367546145647304996255226341124197323872055976578916400223660838708872132297857387207775626058117817832703908581027342347085118572192955353974169273390749061501358554033707554109939524660089370108553657218196983433501486712759352498913768123946327206134493485670831430130214844324851713200087367821207122962930855862006532597284575590670275973444823239901319504950241121290448128489313608688964809972531197958027962378852684022504727154491201227003392183942505184051552490308198432653133434772575838263720553163112754308094320969352244743829908843560513815229559527957807810084584660616614621083557964499708116656439411051034986166037167145735251026918574175638656396097840582691887513975218680530725014488112612201306819210811379504828670434018232062335175281280157098919671261870251457508125240266902737328786486351396246698033317060481079328367119019244973569867524478966861108341915581263047815433212136425808312166302840609418198579763924603020195069171769836513078457999192063453930504756993195136628906020684033438613586147119027747589094166852851346984279700849941319214998181203214252886366262738854810871782262020969389444489675683091115118241291921215910568031361535172671380898458678962918840116327623039695102820943761175431478177272420118679574985359877749298747660817437607340778802145637698836877169506643561655301478204585208995216273754049316120003810118371374577304809829156407732049131839842502823615451434068367959546014433373681712303172355746007286571440092560099241243717457374859644165280131095119556687429975581937302014947924708500024736630237087885586202155802148361700514218760079167991653680327864122498103957427320062963139203908067274288498541556219227469680989922409217643062378452903693682633724830328158761684881985865333944668406541654315660668545325918881754976019114854187893047777048887665796657854236724920684568255312570419101807651045209320253636400541398515813368601824036104755951424550074243892564763270764640781264500742281637528502238740005742578593016661864700170896479083313749162276670981515571988455663690273411379087174852886819373639128511219322439577687923278235862028427545759725357238828163018685492775362343569840543728793563308486231186228296861388442681515438243026043351116906131227454682454970338687055436722138619665214251923798660712780631755791795448860793194153152258857986446992131487156345572075362031908863726747811001523327922847960428899744700535361837408382170333830163866424671376015354061511757035381204585964729758296347301553959571608400076575605342160471911983326124866167699458220209832983677422711644472807688109359026756642852204806006137894220686939590606788318143913658191333572821613830104967418499554744462963143404885495126360347304927572412753887092921804554006078778156225346366384116747472963141325612414629969786736966941329724855151283745682741501643003400713254185951125602732667461805892197485869273816432493618020119533161440562088062310622891578352116984019035770828069065161187885254570066578461620829264619767703912751775163359569181387796476450603601888757423824961005518978783553010530320211969645302224072798433466952667761277199943154751891216440587199687068280660108349711986754953837782309350834965369902044549479255603273352604483237168690785911561951867098689323009331748018049680303179604776259458983673932112626259462922416221179560268735629921328137811435818649783518179334832426887282774206341698749846905136548229485736095516896364326921120647933140767539496112304482021566600322891095376957342886657823779435437920384281146959953477392965053936666257120028494990579671538342479042692512502263987942430409372713593677128441065995795141888192425618469040734846793070709762454463773003605584812928761826926709193203272268640784233967791226774836902027554033441798343112367087166001126865168191522687201048063309756029957522617000349852461213732020435535808242917857700040058834889495346872218979363045240038896774089646242163746252739178325477017001620096943006249588879524741682114073116335501119811144930142555780393077087291152982337014205953594297277354576464259655836923492201369669032645887153710376080550281347449963361336706985683555367721061550729129855626814918054365429427226565574380314697729832611818182906414607153709496425499108016749114094685097011990154981956644106633037401596419008810523807231996604004899656046558867890946120366703785059897180901927242251566389232300131582843853833229034144295072680006207361767815315844156394606569443649646694795520213230377444225044942748730952517477129289902410116288900115160110513121481097121359706191593952240069292922814878704091754577805199371438581411524118388172723651815889967236521324382336303909373425876230385300534522422704402543682699252321353513963344172913787392211164575613653368023524065552065891924451141227531388104708241284045236846896972645360348172543643572653632475440483979035829171143273323993792113337778673892017514041111507921449960743371136406713470557264489843775227990995792667215398166947252305127620621098380017320782051623879595916208615992310829189350059761450419521992839331064019825470599882454349137645975141403603131775815191258081630302793453997611034010789860196196648420263838235927564973456688507742976549965676846193687151767391987448713133113783062846601124499764113024824757481679322511403905720601687572555824717190938036965462805684352588137379406541931444113492899780460834142839480118996735060058246754508115326570715213433098780845246165353474722423321582224992768004026987510653755879891090450296537270060059459565326319361184905016110426433512469757208037403897117389148151668037045324552486737495645980697656808388379158197227526896309842133299206084073653089265759236947049717966267637816910958639447434592552259381509293182425297787097169634759081439457312814105975341146394041784250133804413100164653503410573979319213693713517190626150725840938633743686221656818892987372565927471807076059211952458728119496880181256950014173791249776455539661102360809266050066642797719118692537610669242867726120411916691504578115141382827376884371220954925475222311271418985519988820515861827823027604816357398455353531397089049186514789293954995257130568752567458362211053631871220154633712731170042343848694599970745548356265976444478568323112736833027719723481084153159975264404403215232143994151761205032521187641661723010081096200159861288346318158499620247301409283345282837283491477093020854345880470254015168903005269592659807322152599263059843922175441604483750929648596454447832052915005147737020211863403736226017382963264027980407187598295542674747705156672478407788230848170008674294145904656140638234490670684978273392893393386893852516786911119573985173051397178461658853435611223168757469548626776036805521854922425169166428212128691872595192778617037297428332578310145417902049016798672623887685636053457106480622059002034745576110816670772422549688089410581368539205905413859797912483941886174198368508414511022338845742868054565593890972758746540639735111323528252725621093501751972247698932540342301052184049895344681597374201426224372730461533019486321620371207788856530229976014463053906461245060591899505548757382668173550486024509615698986708717140276917089269160082505053566642987343700283312962950689673074040798687419437179932969531365061626634694763222997485552190426169590796209748206614658829686284510694668464441686415872564519486284364548256671413827649397967422475191589900309151680727409839142216816463981432633949191277496969195849717179481582068297134497078476554402406314699670694394166553931422956620187378950681016088215366376901198411525827223569206799699722455412162020250299570485515385923692625451555218344369731652362033834938672019931349864769281145045009008800856784230999986867903273090292584951311231340210137133018200883948441341490415853900590623816120096284081302861565071982351344374386966477810760325148876712535541016376352359204141008163345743367434803469242553028242417840209764256549705759016175417173682310959528063315636488364576003020610237323104176619058719662615282133481591558347022096805443983769914688869446306147212024296082758356915677383116584158811114331908301377468346708078467869335699613813817229621047098203322533597436375567159991658313307763260295082231731906476624660054112147729595042868916327590529390796622479682320207060392887252956456157982941749946782880610484158478821995108398760327154369705204250231451146421132415533873701048403276492326590496544791448821970347317622916538857854977706856591886921110551903541725739809348531902729429291388678834155971938834711262396256290205255185706749880461956783304683113988005332030564371686544545688082351167477769752567587156442474584752266477734245778462870242428965891756066227390140867730144439349603125388650747018483796270954407841810728839937379785993019975935609009073374321716154456567038279830731747320826682125902581599113469028502396180582932010029706099290112330216448157247921164816860469288400803394222832927924929615073857338883077587329500592775141171230685887356381896850466335398900856414515713493657638979006531457661986173672405767322439007314920907773553748526577921485383702024196345566743649897830305669212863988003320838906795573982208442814020556796084003079965366146730452587339121715364798864914596133063634534292097472566059164623154304580760458355228896670017978991601476524350276135114825852592213027315559964713418566282586193466124429230802603778378488656746749660624345333408961561452996046659518735858476048900455433803471547373052117036962828843769098458258839531838271533121387357933219880902940182905786023434683601351689319593305016488236729323737001433704930175790469505320549958932218344996406611603627804139025673548150763937665139078651223473799216619533370721459765653477608086404438684867520350240134575117526812285936252344446714877077698367154384473786140115360007322219796068302542095690680416760298225562597185482478891092412155903193136264111829029954213943667131021796788356693946597808517186920441630857105902626403226608309630839313539644282540722174213683733007291560181365070572001294038163210798603362487616814737362380908399102708042976251547933941989673392771588522301375785999007305943096246085170379805614845584760953732066214059944468882335761769793446073978004465218049294890264690189043359284044950690967877775567070705360331685099174719793882302248019892363959737754427139545702849879211762740783441377574694499138658009624347704884536757360595330830933091799513364432400713006516585281774727470884944632360371657871617217004879486606189132319920483631629023439077091592606069279557296071958596927208168750000901742880901268858433387913294127449109276950993358289114818492874474713290178674574156447721586664770659731074437389555059576738973473922787188249673581186156834544101346840680513465243901495840984726592434673644992843914541888108514326752260289609218274686353461657967740703821163295362957434234195622067681105595498506606912174659698724158490254880856014054823450280010386250624373270854441759294503487626446813971881811788367332394616404670033881149980701738756013858899097933759753826076659869931932467855760023915707872434034497089607198252095983813420635472413881171492498464970970331137254871731270069269337082723305926267267635549096015073656295654375624217127756820245969501823291086908051332178137646014774425298552789148963804997433887511909125634442327200352380169668437567378239569754126178362030635093462640195882077921053380019032150907801610859492602593758636457298087849944848318754474011296801012884423021471840032951683831591020009961951730847179148095253737581416792440473948099659677247885953514527735503355999175735063342137849102134507993973361554353696561533086371933985831891053292699220534294365647053584755387413192053089833478841767718267878545957925251531277665209490301031715033966005678509199254180572887287102048212976136154498887550377292615441850344704748219460774166691956148260333622867200644716024131769192949951578456113521733422272573716092425605619894153283898335493415050417546697274362316024230051400026772061958846657116097384947318686703332000415324306913013668723064010280228671267810597894316885370121135631126163556749516539705753229121010880661234051515350131275100988597834068694941109715375999634923542178342137758619770324852160120620824718855878721641939070965059196912560269370164797121354869217677226320498076319460772392528138899621810736690737481190858249626236428694717431445664550876481818556819056568094042913729775444779403978064895455583656458142670254097163294564336045057400737858351929416507651914903210390901555855171262529418131031940984615617662792201177041719582298788901561575663240843234068171786518947087272925538221450060849263368644595355840689302459476823475029282418729299001468097248533624922070215258536689345735931203764069328469194044732674705095204440362404599423553669221519839563428491587683840382447692048604340959929708863745627679817556167953387171244001310259460270870210911479881857036583474843596994892711502625451162696472129743512917234192160434021171771687575620900461242267081412481828727040539608656401481463981378408901882733037142930662429734063263212342894996719874263061002068612416337920632443659958950891869332741126613894545127884049472288723819957064749605398250275161474364449090092574098165761871866298559999025152550645397948241326872734558892240604883252119939170576460159463954920846934280802913755655149470527041151051889108792862399471838491317004890258352435152181520839637700072027775672364634032754138916018026999866716096589527127824728934834845150941248989842029573469837519551809960424875624516650095815098201118033402173944915912547967827042075132134167836131515691402803916453080560271008919441132943072146522387974292465856450164512339012822827501745473938930219233699090994468028493591697948592644174586029526999187192026110884816035504590966662980668935370622981680803159551926124502903354488801946370355191145230181377570903508800254144953924682200519893939801101477582800891689752480969775586591215326752154738406628956127048190457434943359894650859426607777214570751933035200837629207389512915630538555592261252359689003997089694023540960964925149099074375272955911351151223015841244415945836442421093770700683197201713796361300610051352880258421995598712606124761358179258416332842108210750579189201231344583736979551732948022219988085467327163940527434814430612763748841656642880650894830940436113903901787305960518657279035599812392038448193212157846295745034077174035004601814413038559981974078326808086916938088175303448833247407434432484088973008520422248344547682180820873768798184796501747129814122049871001422148898604702515647275203418372291194346613033922978634507956527035999899232297690521112300074636137778497025476733977993778578877627395450214655332889838148578868292465538177455105210891452341488359870156218165954114207430879728248298411076250327960629483134723558952440583354421978270746087835801215002228154206451095212137012756875298915483018289804002687374368406351613309903071690641465481090895814020930894277468589236736852352677777667198733299890285681692438091153353238749618827154635782823887773953036906012310329246570701292765861036841066361432112630704158033914922690443133593564071345454546174229721177659644235946526086908980069441040094209154651584889237200454468545506568769553499352713338218009607977789660087194402669983312805232417378631283447001740852255153268121971718094365941036532545706959350115819115669767686901473853530686710931485782147696700740750231511331759750687677109383656448358049079853972891603032534770812926616825204384509410799293908392564985403956229630081678018164998493527750628996002483332816413111363971905699817473707037363790360407232172155602905316753422596759955468936628801180050575003808597015761972209899647330980742158614770923836739973848867350545031531189267253441247356036873033645591235994518984117248721874057589170818069885177026931088873633484248432917542805154212918853817163998205922663066835725007882928153923757889890685617312476578040025071426658473002264979990599891270753507417275114752445358567266989990924960874816232916202460369733513598703031300402570727924699274986562834293404256983724111324719965943158611847516519354529890936309595240139469270941753709263926314561476312709783312190225880387031353713393251869061538038763258080362199792985318313336722273901220087264715375776111786908089562814305916176793565829204192591862366766249677609417954208705996210221674352212878477203514466311803872118306746347765836869663495598332116919130889730205593451206403844339657671230455094173940278648242157831312800047853967915878197130324925122861044842596533146491855510330524687628410422283942020463303854870777849708358875975152768881110704740798491581421640062846790517819074466496006589470803624641436769785335818316635709001671581900544360302025790146501676302711952584767094489642670271898754776594720430888634500775129809831975265944156533622499055672894956001442808848443203843794864075579227986409969954507561679841554665246788230982598123002978046646353165147377708019222761659491445915602092050659693424521980707510060705648345467256697271413688244706825829941082463603506526747082472805355576784749981405523579920063851221006378617101013763377903927198091755966661085609738028837566558700372583953987001966513564614652971122046976003808046958022498996878510281063830841215155755322946720750897156529551809292822420698114316194795802814121051563814236467409292341046673719518038478564148135810744862829148629400177633072665882294192155855461196081908949652723461613438103649934877605535114014204527314815744250533970608000966711028357369537691391777826974582287146608989189013271732893418448806031347133892993205570664058932143113862500934821901566236848884954917325167894141985560077462848880628577704416481573826300370137210333944081549369951030195236881059230545711817246927971792353978484032998607246088613066681384044279630555939910479626130484140000574294456194219424376916209685825447782206560185584164571512612186876030919352030080388088451351978940915762110540382989436679707009145858829326792011754102164934115875626788036822686390725887598033227960431530954245685479508958700780666040831216098170062521607506641595592733707907943306497533738933219155982477201620683915539682236501089272858956509033624209421888962973213964927280034769968032422172697822542162134455897381718551208901206451946243300285015878254362839672467027145899628263308738922440465658353549302982934924291020952435479506349849188298754948707998684288437272378144266503813961137358756215157219536900937288864826853954570805900705727114285168520647911184673540956432906413753449545014355209864492070574180818223886795671910627398257608401487980667527508125883191820884287709347822679025923320448954625499141890646635479811274036571312670999844374821224053450528923565823579603648595903035802758419463042646247766184149239925274600441579389573772231968565394198375553180711287401494185351270943180046303485246721049078014791206289139677221493127494509665279317751895688403632477370657282616088702316124199851018199496511489648184497102546554267098470127675651446517091367294971724359812603569820421518259650305575902686630752273042247669759052170675387415600199883167415645915832234964066113945616075441404707634966402784366952393477012583940754910440863150113097464276218742172129175115598287815356690587147810000318474349020350758929074087971767284017228210117082616358411225489922404773272514802331290163170361792434174362301423079995886693787831312933856479265497910595997534494903165141438830257252567247466853624669075932550744564912552838176952034324016925930173670633817622002362912806687753127202371948176902364236077798457891099051298883082722257124497180425087504714757792958195105473913304550835956037690562187330237683190175715164238528754877638538716717835941690457959746635730614595242514894337722416308385362219330350663444701923821721854505251544592494481652849461802175511794450833904577688361566389328773900441974591100503385126773296557515565966758382446945129152609095428455512676616649812714104296588484480765863233929790467287510341985794616728367356573147017711373667725882865874877864220448220973241869115165889220290370474647196395441332003515449225752713561214352176018333999457384375112262462861795536175177476413163522215404984586653721953809589174708577324314976891230179572091864019486275339213109399614547642178317358496819413882912001844867139032416934813740924365700645501246091171910641329060387252003346543026286987196838005547311509792521200076497743172282283889915377845348319046694851333758639718197188528716204169703232489541335568724987975894332580266981029717188146493215154970622060360285608127139224443148730244883986678817899318625804058394502108896868912694151680395446245393427187126375896501662438826105358210805376847993330354463795078993351214218333840398550044096153066264090194094435888958206512157263410051737924420323605601697075915698920293797884217776960496531124409105776488557299184837786671455208821730586004502087028733607267315445105880444857598719228937890891139594638488870283792955540224044515517663631959408454675104693657580935224782414637573013219478206768739942969008107732838947764408524277408581081869099427086029077930087332546578243081013421464438839625930340222036283489516933637530522404346721631585300920173766444109392613446425025465622803277500676495940831184712941768011457635082761048288895908067554213258263599600573737024506009652766862510469109022076822470829419103215271886112017766515376325485773231025075339466502932638456963781081686666548016027951666212571258678347554839521507946169372391670770094471927202723007959279221360511527039465152553299285187979294079464396810964875732035504218012735469706211584262677636910429031462350935849594168514170083347761225211177283297270169124645898198511452659610665037068440811920710507186659145984255899609156812167309744231398326299180536204592010864539922938042727443867358572597232432486826559307898398287912902820456319690451566824306479933814467160511357726695348966801547719448923372705719034742704964434209350533314140449488471175979783863442959133657548496218765424819538831216085526049149908814540757666888326028274576511467966327070315767832323125505530009283464768351332917387447020833933746075711896029149472723002065761843551240512660359557144374735056146138391507135737229272383579519075841240911128354122668629754850971131180457908663945477897991482060296862456723852912034056300668187466312771926422859986244945959974975737953979050132857362213880679194008779274610709259086053993648646887997521666557384898583034501830618281912539017063060599814836206779751023200612577687950851558270692119471864359906411518974867295115340629404517567873671721143527246699820713251279617523800186321978928072834679160224333762639281624727039035470871357606968019511432438951210336516164550607247679322978867023725610563293585135511263796121477064001571925836113376869643691451396711305509068970087395612292001195143382034602620940672741311154743567982013839827003475678004115617807587069927245474111186936620363572710252749856410707003624185424669404659601687453963068644109553114722024958749180124504588637304264662368524708584093441257190850790395018240011002850175876542009225604582292237176540261274049759714681667340087796012163428307682095934302436098040311716505039265701829357913386647628388496039735245412085563540876587769016079371553334192383048138699226845591536981765066487023583350974094849376517417849883674045988700662732720292030662738014734983001379482888038669181824868909350375864693499099003237468398358842508935550246835802160718599345339176419997673268822308175207768399392929680946360143084808505654669353767647882278847226772438318781579608434959632621100474676810734592665753500423764233641178241798509799277290035637229200321431917318458671528802082708397638840582820531411487429165214940490520950209367106766245459452605855949961829520638808292976286444281998565750818680559128180862193483758967759124105873801498142951064417381650427541782341677774705348121304468191211391246256037742472736049304024487303578757898746129248438933385871399882950930273130007234722798974705500020562278149615101507607132633652223742397155960889965783137576288480126803423598277813437807569568956586349956180118917670175223675998563694422490687333612763701640192330309168943328510180353434348503246919659641380633854328207218626343917668256607640132485280788468979393955981652367551049786068869694758400912953599509401314075231566516249890560937112232245050500220135396036534310221727319558026645474864581651295007375515496621579276274276934408289178605437216937632370792291161062753490473811908632684032055150374773444535577175432181637130918394366685902695430285271893894323521113995310122976209881204445848406359116519433822631555846029995307457018266102304916411859439666649639407228539507097678656882565469418173207858503889343746099014208900013833405273712217514580697571073765836086126701056544498662382331762690313324304173195003472642239348205274357782815067640652267856519944460693604980569000263692554789486768476683606289333126461989053680449728875181808880411815106206474136351245384042994310258195674320842779521351147173265374194206342599549058406206460889503237214650779324862127298616738376997644184628650690553189584008232604989202901363952275828485305302189449792189100813159396340602612567136066543996042487360549158110729340666081625677680602689752819272109520852376897579582455226087879672811465710097180905304297567606441719681128570959941520624539247724589334485633360339484528149168479777588023914751648017470289922539908820806869253293650069636977810572265275862200145131589063031535938173235934040019534996950938401041178123444251402187993057360583065380979510934095630693331259986322334370253561728102589960519659221900826026185988749057671726734715346021864775813240435824167037121156114222851543699908569457949967422272377745053811903088882563327476470664110044237616131471607591232463076303573054016536518365769762089631876075934226181036760630669370951295934503236611958451354159969269097807928272091983431848900642679420182672728559147183238111130717045655405751401700067639633153641825542710695218852213577306421139154473508363307622969047178098987608264745706131022625974049144836474092897736337982334995618651458921958568546880357634046925865329320916773959097863392835209138920801368284312140423691723900366268403787094098387587926531646207171203037324260791928038151953456152089813903852214396092836444548120434971411762419731311568077650797615480138356682970143517791992424025960243467549803030079444880003752215166888634717156018878935959378387947268108252458207466057550400260044333621968655954649716928516973634000872399038013759872141498581188216459850669357698490539646650075459733532614887902801636371495839192041094989155029472978989144742167134942240942600302394445980455189373360496054559876603949632184248823500667516178164631624815285123937026705349177418663978828325723220310501088985566937601702730042232837394639831166835454372261860169110888390743378025107448571426562892507629605801048459288330275973887913460815657709156552546699633147417999588939875838827806033743618076067109380595299871766993016744183003355019376488229440300879202627900413195335881972058565954940167397254423063659811566361209772029970569950029986252579163782219174013704753436862604993201344836804621301233597091733991657997271196122979830980136177885163682996765336438464890940823190110210341477065552682184686453777393213538278440669063178869899537544255357223261545471468464774601994221006589461694470196773554743833809393927689496031010767025742114715930440470821103690118641276147425523782450964754102789770754660390673132504792650469255691462888453047915720020731184767065296353180075780808811676676910323381509284142843694480468874684247771765061407124677400482018164686390194860290289603679789729952235609170697318242901319657803355865504044843688002640634796907194070155012540495135436915883663184412854205373771831754885838967431646684944983588066571681490548865334518188129687180378793518062775404449159936317018030536726559075445312333481227147892759193908795115903371642711818865543082310679504521917577275303535048797252524123805266498207786149623300862680216582628163957769790486452290844988647633842650118606903043433924807998236023635507411654775782365780794339972406302953266528558486631032172932319615610663130038912381480855360120069530099377355105418237442529883676601077137449021221764948516204757650020389638372814114691185494639504993581487626222601027287218195172470096939101601196477044054119605067449534679772940904962860585797609618520361884282648020551021523941178101891019045052937253372709838407457209921086927111620977074604971315377310418701121451008665740650701057026165605372662111410555005835877608804130795445500908884073598140307598588270761711486014423966487634193502096079541237084940710430982481685786652589302796018566883668014006295058005065118661819729709115033316703669642019088517593926142700339321956166452473605367511462171015114430867730149053399510837432124855968351712724333656181441644869035937944483365998439471345788726114267389329047504254127451420009644257839205049641443621333065448204258367588849025360926450304740241667784642659990394916584235815368524887501196825681112570985882049457833268105977217376066384328951470163376943761593641321516875706506969012058794048951914642377815047610774857804965640857570380878179937577537165178762162201450030275723038880095271367509960400432869640360027725099088596239263442595962451369621421833813472794509275630094933097883761250970544842446624085287776554455297307991291686158381423482445908087300541743875236563023404399340806280890741158800934695516742289731343562439182088732482595427169357246058385031172159953407714986278533257291142532929086149906882997534347707073338535259275522175082938917583791206737297472455072773855068639324949354204811262665084090824734571674065802324323284761902157801675293917366475976816354162225559801250614810562079957791624170814557044604091784956362766030350581623597132892289714221073464987200301498911750839063658460731630438721527801808602839339698678050659482658203357162602570921601131980426511919920535806836745792560788305974584987527478540163799416640898028918549384214768908831460597801510683026387962193014790617240418293372054288700007170579077740813943913384065242486597522929610410416646443484769235409385496956134595162889196347147596254499071802778129139697052925754022733482625596902445357540718186531142751274686733782581604647049622162032615494242932010691856828414478409165739122451770238560189503255517490764680279696339243837773677416027395612234367732443239238039447307566024387990871404787455238786876580276285785384449335274889098452532395329227221138026999119061861291523315754760190870280111212563013248793392114175591485336364437566466106285704118583009938044572422039219625320295491161155441679418941600888840397338439145984973292534598948707546160080384372506800902774060186295400470135231168393366527950361983998083686855485432928985208469080093559790892615121648229776499138387674153527876314945651943421552656159731002167406096502779558523691652439687545866639622425091397375088287757646371486100570918361599060673265870926759969926762276201994946696824525069379715499986484316534494494102135835253403482060648923930601612104915787301187791578807048120267484121486570632961535594824037810672879523685958101129234557955225987156060118168493012190968428793295928666078360460023820227437247999707697002172578717010943969424863318425732271666685438349777200352887638596751438884042548619813515721317349860389556688043653631719582490894546661982262604442443558165168007371540454827442566934163026234524699884520682670227206107519693966090622119603849665845404515920960125730254170555164588685067993972804928729683954543249275345016543111552778758123180176105784655269602854323754673419136160729318050191937894659371047173032819630531102828880305932548840912877304497503128775111206092268823837410240937626238685132603639063605721604162004568845526385212258089954530191760145132699923743200969297615387206637980138473914331784743321473602598255443359445303757833041898202877255894510707140636016455657256283015640648864912040504516560310758140946673823536022128928422690811853095610498977780173398678857034628366459443335541126329184583349767492679200004367540391365524464425779351378329046043022560907921872042929686407162494282629370740215452450342083865673630382638993584100933526776753453134516998831865190464757491551017672474461696179396986879687593767980147444752062608358806501563986324504772897627971902842055055982511076074283711033548423465619939829606870715027215115008471261541683639185574335906234237668757595264442727318352914876736310842585839214189956126621803995939877228645105388120588838731779589384263593222328818967115204048407509006517847913396749110862163158971086409301444220634319690669276838902545552828385762661830169972994317994187715825635735733010586021201255813283469101673768044872770980890745848954461959369371495837545515249831985755286143974930269466372556889755601691562092423249238152078202004745056448172714129123916303570058185505672532798338616546187647932169368656304568277812554179307430724278377521135137642750802124602728819736239790754486910768339342763561373219240038353101720562373487831962828327138542964980019940156117164339126420464542160341836479422190561722464306096657125671109618397043168692574212861244791463985695321624462572442366060040951362207406954681472951078634748238437187678865022735066206193163512370568430011034241325206443863626147032310148228747631990567108809247119813729382197944847962168483874203424748786062612855664018333251529148045072938861875446449349913664261132322560730243670910520503538100810730226428116799160505848950574663282152312659582031512113603000348943349878745169330713020711631626401534698036212074566612694963365458864685198477702904982967962958482237897039243727871069449932570465869314231140084097526604314609066437870652724863894764643578575211370229241158759952857473792791082641442510423619449977651203732608871988653893896789882551414019369190397468784854484754693697654344442092084515054175011650512649149099718380939460581685566623359967142382451136698649338902499906868105445351457198709804183242137923413671123512514794258646352433403984406981992964787828069918277828432285211262977617053166887378177137590073114708727256898770075511396691095045434580468256080295121632221692509241467362361825222803009083387276315393638878961488248341436986904735980215819730729956351844745333994559479700056819380617083633179813310841634219680539571318540266964425706168534678658270107745215579458042860457767630118299152787231806080018680003775002887806471053618488235827457351760195824621303063566462572980305906092960267189436129878898321349405524972976076862961313165930514741729930002617900817022335677777921612560640797008357194605253349339839768920614644452315713427940944862254686310625257921423293856194348707927635265228742919082941034077975705611452768987263882429045496428789792423878840222300696310179518915563511825914235616023204603126535683237315586419364553239258306792183942770468440898325571162326434347069782518617275678483065622908512009782900648940673581677440080389939561970209502948494057583340019236950506400800118131931620728298062994276526168159146875899225839942837612592260682738459317158254694644813972731150798539940474235610805692408871522342865139538962617483690027230338726854004438622609995467563949581810984115030246972031019701194122052128222667511428133920977628610938472734465257348948556382093426425263982927289899521698287569169007312219084550371248294803245815432619313653425748645235708676281487851384807406025157201337086455698960147458134199646925414929989181375934325917032390603878385830526855371051103110873922393527021994584573647547468476323022331303526047548971149668564779918087863659567498976568254342266880433441066630628001264542573299880910487421930054630226427458310358502601016288329282905684843700504665120198197703764219941259068339601658188156893549159998425193221863231080355830309639907828398521096060814036476589290737352357552764872331493701252382252488180597406047118678946382593932569742735152556293802096542402395227203204354381120601412432202143126703096572300859663709169576386951892415792354720448757959566315511127423145868771790993384415330590253328464363129725075526172667770562424570430718130862245309023593674869799587882126501637634891789731324633446768821445334343741338989156663049325381290349278778953752121521559461562287286817598215475372476490791968456900129353104266089102906608967008449227808204052063367220751900341981186945235856187401007998542078822182707651585531293633551641660642705796692910316718684176373684236902920975811573929132035766443014502606710576660833087533161984226289754252039191745257658219297284281109271330610290466272557065095673649280893342643057859714068982283700878464577265184772642406450441826089268596967368719611287648167328295925528944932717968595939553595930629361843096492797482184911851512523996043355995663172687793135297176359063215975400022761540644543300776311310721631850364400688363009210318813562680299624444876404496503589362131703176181528746887523115347632190034714787253771961317711952140374605889832973385004052704629989246419680571467746605106607095333160033750324018349253250529946881049964788166393507685007207858271270507117622766929771474127524340284389913301324180279158184013714685055844128259525633419641963931682997796120229454985107855731579148300665235997082343960833314488313497301740100615231769632268529196486336811273411886380159363059466067324168002365849698573592143548094823874399016634902341689904771207173953847272869525567631836040467171144364314292913143568308243211831037173591702263913781213946135657560704969927056680929949763697654313084468769224029975934573632792067748839312211797292798931904829104268527688288333103745370924957620603434656104978060667211822218238005191380695880382351468367901615320254349404379820453591036435678345127762948086545280500414763606385693939548566922542251348826673839356605044856269844934606602276538101210089374017823498161953624604929276215219891854696153112770035309668771241160737188192763970857009645146466900101165534996495017593046601423385691354517502904369157366141275261179635860120164992282991253790235940894727401318812147233042210909466407111119899158502553933840893638712987097596860879743632382993780911674751441523759356837131004168078559247767863721212686854837876041187765975005014489540952491069103243379094183760653815264166778005013752536791338182044340718159413592684039060121843035863227730910728337945878329155742268051125261280492156408795947167582433579676168848277465180546724199348803944032993866479202430687886858721157095269039058857122460875024447108777537184605260768288605333414410624352066800574354291690310590695018664963908861455382170989986167726136258621066908245326363368599434513415756573617913339932650530439459355460447853132606925816545870202287690813669097179277134500982974553679232412622879697100969070624862963989059348605617857787974411001726414080695646682508555301841327058250841041556554315543833942349857763004908504688875344892428658548388304034312154746285925742695392511158692869984502551082165408176356251767309761162173145098912141405103292307318327289906919585021315697223484477233919845192944275761250759296671659996953262610103864380261569833370771251012885944015478948706651794641277605108020494210065246539094202919566291738486349504533839538341293382102785443843868716696686771119233334113170306013237255231547437731195415132294002672489385193962828622990723159804030450517039283562792395049241737031106469732645428628951834738129477626580033807120636652397426027958212400207967602704820436060977908602621528556728772302798739422455686040264884475313562561394682311436039411544596482503992725711726697785687168612005011385857291460584408231654151554833465522762319834549808917445032979913612521054759448252607299622588392124000781586895629517287118049497660426098428180519328670423889188272645373116389895461733344691946227561963694028607267371618854043188110303742217172449989285156716770863916901516798824926539857744990285755688767519718677547922994273516152268236182071491513414290443596502100960082470120745741795480287063323438790560031331496841196727696973316073993430162277073432647383041178832071265970097012314427630453233551636620048975780011857161873030379604424872357932178531865288572617487400761499569297285525182296168150639276047373851053100498210574188868287937467419522928097454044326529042005701071436216980868090964551226371742635867822702894608788878391886973006558685706782465489949441454823167810099921531925337278377111853437175609703616222494999412918060373857092683933177761178575234340149595162571905998056496033769793943434268670237288683688166092131561932861445666216743371194570844798600856168604560313415621492556478861452228768288113191555370237455511700671820094175006182021106402434102474811550964063414603187349731414160324744571586078431441456727685095847611739759802527363390229797010520934330805694493395213818045059007415552121148168011679004315405045121987209762318613013250152867285092967533300716668517845221062070768815157243372510856118713573422601867731218720735490330986965759929655860621535874353233868120004987261472015677652615467183152045769696767758870597605940210240623404706102443201715750364315200405892328861417130699867096254587006436788558971342515501492750048952426302270507536267756918609033249984745955654559841775860588223552863633086363231062714887726584038103232945950159684188799437249896987776828405410223664261575024809910044059092394733419091272254299143784739857432944366930916507971997410642225156762574338455331230879477204107796320176167562312114954568818347536712217642421991701450167806583873732733094466335399923862172194282427053531074986371561413786222473836734466289739834268460567211699246180318298760535534497061032484146054365694741056181217329937022737639171972027333557747941692721484286149037040613647129440397545203388083723785270969758725924374116614985129311783156048125332264536902296118329830797025792434117643458288884137340021119389801565182586437295801243593457864466314295250641979287111941239011231702073733797403646737346955433660403668676384024387983326680178372443782815746703177784142490864981138875351128674125954613713473910879300397060085963973017379678276047836217681639875074352999530865218612352659061411439643657321538481580949380826922786054278115989029184141513933183106600266795446762311881403494142379836917108377918320393408266594517764888477153824929242305262055215203019510372270330656160239259994523577930797636535136284698955605552533142025944447565653641586144730882008213208403308290024456869672542788677633283701979355702871977834410662306928634460190418583222639352523017809929404334368209495647204805208026402068028447222028870644462942162118366650313063559307462404097550913869857385495361917907591942095283640367598512747881572793092126863221468004075873166562559099223113374768697503102142599854302033563039216537422986982105985303630380053657073883914095712869576186315867473965518719339170368575174469417115924767029728716683034252486986290469646119133879789171446880650642273041204027181681797499840694965875496939723549194786414366443673642077659916013694278936538773889878078851018730453670137681769958119143614063572484683476340578513557933532080810400754797142096548050293153328985000782990782453291133961508675375877200392321228836794024345904541527236482702732284007572815682229588738679319450876266827169977544322676048988511684237339558760338433964398841428503465573084538149850552835596485179364117667030442852847493665520771069135833512938210348156347380809433699715498974816296490136019099894688065352159837526167879095112061805522949276425743857657562152797620232031465060491560426904930756135084278090385558988297457855599835840050769615794316416628385876474047091178115067533487681202777468155784759417853178579325196900616206756011496568945174337169130305204103257556071593615157308790506195409400416785028810441901831301187054135244588253837829927743890449762990854554483687366418991373927076201000465165388366744515585285642156399631923131906922097449139185264333870299840345599939632747387955400794457209399679047267961501648467311106268915013716571961781493906325272994083204841424289121751380941183513089373932624188543396008447802915521932927134022381240948752776387094983027642596639520599391822120253309653958940362514419327736825445880335037442200180700551491505610365235280656888595169811995979749281528389365952159353237565603395417820949258478605399623093336222581115632386999031162509252310988493392806025587517458181802850244313132143238478191814108128114037518711644104746050944549215745311666602805348921510089964376105773474981353518795184308099867893017640007115292857146210817088891361015310337252956783884012668584309282304420965188570524812465418250206857156321869623712181296420996600059773608977957694035498692159990961805076115848861960397296443929545074598680112086593322796298177061806014917347176523771767122739910995424464473542346683731798157905046852918907916048012834828195972229507673432241652150237874206932831011631280493676532594060629353536098579185797025230253954320543496346049528959151714270788825644059662025151469271952248567414686269980905558279312536737848281929929789462156162410958787190974531131317003263302821700873464497960231147930127211139411080694968634558120429499150888159005678224376982304983441615252330065041581682729655626342991527375158452655934970843793566006787997667315958062307145645421321189886510392179377902002594008746501457576161696065086182181784401964937374916132693551840454749531187464619299339982617101868744425546286271516711100090550648756632141731836688897048434532836214958960898134099751780599599715549879068229739540433550060568527859534591940780910704220216497413790413708257732306974252611253019044487799380563087117450851102434484216258306547676088973255814815980134976844277362647701111960595250979464422008036007123801439289495779185738056789649822320337417283639887454448707035669847548264691065718967243829374889834126743707680441834257207196836878920935068758474637169810676106712223513632079816552427917297226586626067072707853139793120706106817375325090651925303860149777264576774872480778988640541874932235036392404287261767827413070897837361233067292908245710183407142459138375635671905383486452549077918049414233607818870421050820753013105867892391031742338291916703419940989503996539480383384737361890515021706989231212565793117055863460753068833396275102177956903681314026365957405635508591564945504163755115064489831588349436398559037294970501108620892644539211537453596359591832689154912698324555528423811636822765945557787428728854117964211131941137865987120448159740434128386023261489548846905391719446067888702527236354397803082319259190624345966503722870037278816133724137938557796963633895040061455941106590906448125605277891346392866636024060053220843794016563735629926925085129122598585172434467031293395504198550915390652206614755459744986401355720209317659479542438038157264854920946150588318148472237563180774421918130440642183424494879184256027858779667191744175117785096365036690621899905987043701805559691920509261567101020904667134438302784673634821143894210638765371292895845569517374068432802784330309279672859274260711821938828839803034840533172147661967494805301972633730466171069323532423387681208433247752328229733613249199536336506414869137055616654558281481174300235469363665970311454465505946932872556156357131682349222279169196214752123413231766195964482164415784620952580383556377691222363584734422539516010283169255853446711797647554888473790998022030288938061923038234939434113128687526639942704265119529221806806413941414483027105829988562859851440940534945261718759373942796153018527504143852976828312866659646091026767986795120381163709050888767287368675107112897009528715616076571584744278448826998435222940924126512789949843791802062398587330280779316602953378957653787309269661389316391059922216039700919851112656550886554788206348913831093340713490569835174487284755630428417217118395876313096924294390487616674894707274809374777931944609850425740540248782314495451122356720313716595495133913564452109267403783837028272600791710044051560342467263660243770659853256602912281676466973452862727252163357799658033033979452568762104961191516392998052497945273170587563092815209450369694418652031201887256963398010426884563050449694297021738541865649331024324181774448484163935876900180940808088641614393289369721271964274448584835197280661894328186927020313353779575890785566159999056581000905538825520534952493531527389321608089641485231525085240019413788843447843266361001027608380788885070622845638959724270175349020672109594308684764230076217429277784493243555565682037034432486403120581586363363264637867587704833159051239105238168720559886416558562562932057380680367206365443498193721918831533616931428330307260479960200650864660096909290303670473349039773771429629202837315634325617534887255152498689182335514185285020961936908499919463490154442482407711344307452256865901248116361917909493076211563268556805948891464585084410932808417128990550496701497311495038183614370135502013227744128189861808170120075133372968434022056807795588770963669080969704267408560622452200984869245183981961174057889918118798310097452060464867616292191244507253305277162418582935476622373930840972919817362408691020497983476901287588390247294848269009960096894648380185329941924065641016788248576519750471776716044824567773230590074203483354096623029501920657086293291080554086763560707569424070995691312759290417142397301077084921179040548495861193868340944517414449224341424544586552492366446853855716398787009407678955089176717303457621667263268940955144763034627297781338225449628004036281368827823992971457892382659457668657296957745671233379909030190514763758188619307231309251779253075505197654310569511886788151174107058622078611432726386381464579370963499321067942612190811293821597172157353207241004968907848731087402609593679540748555551219271440491353621670358536272252254049083024800212816425211824697855117153077707863678236521905795177268266324484656895903336824323277635760780002332055096548741072720516625246779888505007348994744675060502960452721854474963423389528022122622818346426029785445518004378285231851622841513269803555872980273914320467290445040362326706851643182429045054125763597434983223722170579423567823559278444377865042546973330399034960244244231955387230388094223260913290811598656450643168839450166500851909548554708602333250773304535111748661342337073205337319742923212266785812529315065666056311320379445870224776037599317535848819944363752914014139184185063872455291394606278762073696498570065534784665649494436553473470413573457149845420017936875798553218357080652087502207783390191024670138593934013264131402710524317930067466192003845090810644650084206897121673187957855120875712728299708965221372790637918164128322094819533553561960069165052303521934145618714804644834621180332310506718104706264115434604732016229871264483467270020817862000266740844884563756572646894551924762403183537909311114045509257182719187675605421896319001526783662470360701829150021355618679010617439899231838829516682222449555962202696814602137340738173804930469161612091864848111010061379329723298856108355837986777740558678971769052188803858184065313267590460283413771512085575010263486272107957545311760313688252869940819729356270296279945635775519333485209423566140035552949157456717394398301722450072412477569479751107030167715649458745945016921123059355839610213952262117893257034683702190002229455485292502504912639415371673066330085148428732589500087278241466911314232581997746702201517303065355941709709324104301347163015071764025154551951902316753670814738749040163514365475425856039749325350205863674552401175919486413073771934480146163184396686696748867768237572785376117600575918593129133968929185442524276055678191065701301109137054423262611420463059156375284749859003340324289740718684918684490369609699023414569050539140574449245564701097691571578390695433782621653393380237373736280836019044505418245548601701655144028520822753033673597168271674522358837318263709507913471559390253250935703135513449140307555670147326925787593545054361734244637465993282107218371675811597518455116350534862782506153406625175172045696915879528961828366933419301002443227086923301570944088816350487727467314780485760120408149110705349427352167869939056257185947577584559010239216165243512619244304706457846268332005484067768093813897011727620672960003222064831773380100411456650335356771953417877166248588880869425736940713619103146392937026483067749357236966076221342394527673740808699022609283805422566851745642478925543811545588328176065104889517911363967489129605852535177421116890016334799189506805916550479440462780664369393532455662549889418178638139130613558718379770752771782206523862099033869190265067941623112900654031646685236274445813921452018211308476929269712079918864766613939319252395979085270833077738472193891670323203940596738509978282737400522738746964285273679590915634455378049039642910347559912253230165026968363529557736993018576057771642918387415845985224115546719128590879570599816645380163272435855681419667555386190646866897076526242852487545798261310270524613993590388182295704570088047085626063994553860085141105767153047405828464645647233954393334798892161959614785989578861450494506849839205147129959881092456842961251847549283461664398883990850902495700649842605552188094272732093432790753856934606957801730039379812437258593166764478439181446135705535791121414086161817630490144778794264556163402100809284822603880121690509145807733478230603405002951064309280789399379896172068027644829157644507338410522630403156338094848460093080435836823680769830811118066053709792727671982875287609686902310685716266396812456774001698926422763810996742977219705138880851393989902062384414699694642918697808629401397235742538184423559301019816144350373054880924340388631810490231536591290371085957772705362208414186059334940111858800873692665498231703677719769884502272083675639248521638178859355965151552354083243622282796931702516231466062799177121533379201546951788796207412073501733941798100621861917749580000994889327374424268893982936292135336390745967719231082376696089421615644758109570454345438119918061826477481746386116022406369979719266942436238788042437543180780080185285267945371076101555852852475586634984744684180645556759728772081775670741178813031651326864470195730644179352249925345292855827997305151162910950380416846636543935613588553007675066619649190184885359370071406967941929680876759425382057428363047066506634470434718765811213430389329820668086311006864805976267546346471412930357654356296884247850499266676301413674425434618420939139615010035736567705950439230780626086591000674118139028122641249916896017077940491620086721701282886076293005023435319786656081003558728361742397662725373149858606061482827872648744435346197957292501787379440128898070729272495043939654872452679370098553831585277424694685026586183765273232758910603408399241615547119069337569264936532125253489186293076601247106753561629185985925085430446196453558597491726299472400344666143574838021036591209920173220040547179171293535278817201872938018889757699371101847821360678648708976244835020316606068503978794986566193215167240833559448476118229481978957005333328102655706214230658845324773863827383132788295335328573495430116832784932776732882097159776273642104383536079936838415569199629517425243162926037217996933278460809942628747505530071040067788185661435323829541803056037659766209343147595863212116099023954332352957024777954455396520561351068369993912977900983912458012464929825046960794303834529755851534945776081731078883445017671837003323407489188377442873078294355329104470001965875812322280733805740627001153286439848674913250827941544961055198697967298511387463390403753634417191699748197827063497377429889377466697449301466280988731116392878284623536209934655495965508233483374510171044167187023329523618688428063707719171514250397083974024354647583321587388485492654008640219095672704085932379093985473952135200615943511313508622366427318642719283779580075548722495970954078605592504968542365330893279498501904178681121787180232097534751181141072640227640550905565845743864279125006708726861625774981231846777537055611729757954827464052093011639197550457078301589988650803133816511212735471458720192520637108219410138204430646160837483518118085687035467501269257325829954843616408901181604188901182632705226433958910043477953484444031125760192993566091111746782789250825335896703393971678178976286299455139881935886442404502175729763915139764154449519152015269756983339996639400797170968732549044487622227163409147953547657542035919660393944661896926436417694679475443534804470338062528335486135387376053225178637786050159842242716958763198912685283598074130410787535449892545579128551373011654948128651394786364251847191350236299074508892841593692538784654704106513357024260906109093442497428130439092492880021643862063627408693838579986011114087953414130961654200605043053805853527945531449168270735635322049286393100790987196813411348354555323207894315626410381558901951291085190957329390420412095219028009254610034210715481926066640765524233678128538019465914068883277551760742192868983728165103289353958575897153181626891459308449108164164430469655141211601852464329309622043864051586040414118649698384074559797946682604554789317345582365201872680119716775711940456256770801283713985570023042594448807569294400445892904797198146973212794157357093817944962104222208655395063509751533043398123854577631629333367687467596334344362818602006431588034987916042766507274496609644652357287206977359373086276941972300965965032964359305016583364295189806480875974914998619404639395220391343152654439413182002612980940063541707722639707359886287719444163625811975413052289174209975474361695703665495879302254073331825129874155192331229962389084328993758719163867356216326058445813080401263436262473124565729167041041214335778860055958181051527452571744952095842790565359607240174281430223526761604035580707371162661899416350806846979390842050719572432451242407730169357960558637794154202662242941757281267434283374408175925992587398184627922046343936664956874160157665443262204086835392335401156434279728813067522012841791468302725112041673854299411363512920848694417606858151644724542398133336927861561999838230705459949644287944046011475522787280475076139518236250539573246807435744337771829038979871347565926547240449989802949259113861696348484055833232051240988949237538516588121768695798559797122934849682332901179388247173461289954843135566572871817813945501173975671205384275965686830772057800603323502646098901564296989548831989487352275538238171224939037562093396114387669428640113399058559397802110831431339562719043704288566554428947349081800037699308741523741330664403290853910596638355830945828463263304673637270401220556521941206627123767793324748637009981198009645258832999602328722535457238941356434672460469370893295003503856108402623922649532065915876225018277240508122040606780897874263274525856023649581400346882574447804517149076837541280746999485476148182608121238902742467211722234320111796276412806728978407589310160353080276255770463231551207687658931893837728748989219110952183081768221309201485005942919570666476890193918495585542158137333148094090651176728643247597734741157189154438135914324320310008961456511370915504779114717989450720097598745041700298925844016711541765429926743240351024366911801635810786225107336040091080969150015918887496148357984191538895875558386139236294152853416859998602732363925902637397588690062916462526379590116770290064345476598017059771506593565015445699935086957249613507548518208800210946287019790513552837917268626487924977298649412971211202868980272757221752771680910078981306149889165336730800760551433541475431155870353102964167502939899363481549766509336210422416357116347871535514482995955103607521008281770292854056808883893415875378368017074247079201546989264466272704411609285745205573842959063641652650156423330728167422366461904904234823454822609215680703558112281035383336843952117068065646533042135921404190647339237297706774390673486329040458327094055406999161125355921705578899366788403831225104836385952750109114688350982516039901140672135841501213209877172176858448878735453180574602759930139386865225668612849867192224233530088210183715960311256759557743693842196631960478868848373028877175778182070069844706408599977378409338338281916987654017550470679234616270446140424941452859323948341452972966776496294881478629431897900112935403653578592102346077618474451281079560074007299818104104623232431324542390639710706505552600133385032135188315050692121999015395525923554979689201420322767827593076830955649346485681461773561498407043438234514423896962651856626408163910083076891653358779766717080388887700557179260312138997357724022714857633994117763011804178329306122882189900522112174166784867535314008195577152771785874513049952174334541398238876954961977619672111801654164484283789304880101300506212572787143192635903696032361732668821541496226060932903214691830299237745761075890979749192327801449504270529215286407219878346767570752880806798622011466788724525294517851787333642917995183675877577707198795492966684963675056125742758738790309839400139811795008248941635347648167957319753739334343934000875184961715541296950488059902620190465307235522308838553771121533850320185943781368823383857549796202421968294746565937499095355994960078585939602564481278098279213424554086403992435920788191302317423166988364354208323397264839116015480158068558452120077967219901159107038123055742639289109758405039600336174737042318579418180567284855374576199268050668659815262435729628343530313037126287206715264350273749072100533560047901654478127126367058777115179824113752727153495577493774199976254856832050871492299930248139240155456868205365459237569906799007141246823823834648743744226048989165887186005401525674677498682504609825130366305843211033206585220871218113748306732652289389951573889786206512315351306867239311736767728911900622970280838721410111422106464034140942362314114316375261945468397280302170783892643154976872713929537113647708349938464241822066612791346873113254394592818987816890464606530243494842966424781395744700791907861767639490861197519553845426716580405800184612440364052904907608855973756821041378212293419136952657331070684073393569165979603451405284189114746599277847829000034926091296078963775753279119018335548418038827097356385411925637277569001421490570357544891547902592420780347250225519253678524282850179956717708807408140607320310789087301964984344941550732260876209784073917554465423213747207649922249511467360837378508650376471348160654166694230511840112869386433934456612068319376258050520644675500729092098712828480086075729532029459373479241318683018582614858872272094480888087630244919999709769419854188434744630510583451151947041428638925714968833877491005042506049208919021314005845386187400287269458908684436943807015084921492486386298803492338030614490581634417265165510322855180352972998805591417839671022403932804757917380577983417854370849683973163390563669409109310237781267991760009996193221854781788616274228124462375126933387307710531465074371774288438595553571388716122649758745699392296418066127260321364026772468271816667351839985385865623445059625076662561336485705416359614198705086854039863214533111843026780988959887872147192376714287743684255383778659248860708704771176060675592853164759803232897470897155171000189238307292119400013013654060291707988996543651507847831008924599153775569559449390746191887560681485500650538669998057969405498974080988145286907339854476881378562039271312151501518980036899232690942949691819797249465963267710279853151277449145679552604311785137014457908048244350107744747619540508244062543291021718928956134374340426808645137357418129341436534116270309914241674159236018806828090890320076564964546504766226396240230730289079884008284316819868683046670575637795628728304496084647344979663670851347749869461553457840414494589062845558143084418216819384994265519372737778426621940413312798530522072552246823104276749987319931613731322626213399045284794039544889173080713664978431568629676437195481210734972660781534531947832683725555924653724967655882011698621397275142618822119979930864527210413982390173898915390224989211971976598081033373519458188990236864728914993635729126799322144345159973157051410431615728393629582980237941019033199940783220082461405376869563774663867661662453175341935890559436927660163984073370577451965628545260541215882201537109126046697133288123938298020116010521039122470176690801317079604287775163761663896274817762841386453578336625496466266775675796025375455463563203560679793530768872527623058372174796083987982830391904185868483585276724899571432042931970685322530257024590018162386958468338014271213937461883138272178924008959370699945077210432862937315515865661848959718356958905726163439857237990861369646002315598065239842457429622223879689093936010928785023360791105791050963022213324968322778028575399007212511919619862478298147901507432811985763442164632968291541048117902701592142914996131737710811235986127886706671526095512180727252723640790302075031514350280851724700254439261713713446728786602674619679430624093833390470714930018964554430298210199722666717946100678350342727800667814791844637543144228985954096790571930528276985784689469151786033741321798114558608922651265401352169189853306781124699650507774034491458459701074705076631339407778369975987581952136729430576369850634894323806529933877883536299055878129057694597472735740405517344641123952335003927785378934495242983628166182361431729292402494841489394617211820272890021863317123522885944864873383463121525919318775890225737776743851647088044644664920546292218424335648922410573392341838161484314491122009944062245403492292819355335223491376945827382696629091229321330621463323225556367210676702631305028066132892392218433093929826321870491336176210971898818140060290272745955798686562536755215109164731353495898579005829200271035716912566478927981503598702990666433561857009857837921512088661850372897962979276425389394628377447810993568998303043333895579090737781638763275351681193615372224408145142537226527020641393223932750385571968414102702048410240071390894762407176754062186033746872049358467868142541286151022740851940225864141030383685920145519191046570708586232062717377640475037634304551350110104034789850021727398191447601452429986061150116444694322221183844257745654716508886758899847429220160211775526965548509371910415157961712711503634365337686570562218267928003120759065969684861321643335175701770916966785275760915414692929285756152646425250182049123143732326773718148014151863809194340663194602068294371562872047142706858426488828768277132830590748069164675895225594993457112545899043967668427698725904917179190528092233407998720866907514417894676109380558664269390895049742115013858564113519690839686590761076419616831448382562381010417379452841154169117583000143144703744439248373491504286823771468558850937602171762473544939179873659038294924976143142156408758514574938665694264819280808856670891121741849193724358823514947429394071814666147381222171716287438692912426197276949708096323167924296050553734660534555756767252269559169990905107156880908811460672046074146194405166329749867717279608412452510546415150463746342859432434370118322496306086199456547339350869429596446665728166428305274670621991395564225728895343932778395135548335634337118987930402967895123984336722309308341599370182104155399502070590274342585840549244549816229075838815928241882099684196382260713938054112208925636163508627315612805399722144459383646843894559288299685149282408144071912609383146153343825799094823611147757687523934772855434469719442664781434172264364765218345876056191731285230772608505039002128323659129226597996243701168604050542042786848607507238131253430777727450281491998152471376783493359780011037255554393610078513669799545477885729876593135126664772256498375837413570448217437099298903302539808829242373236357029672764058414871257765501768779464248648480525011626841695624592407728519620520653533379043474021565322581118192275600646136020186480707250670706241895641045527813691779650193427600474837003944480597368383969905509288104768045484125406046863926274338349573458699507554609864844633186315482909810257514166234964249673941573611250450687813276741773765999946035950181729198276270900927111990323069705366817537929015623346134390689437694729785870794984787469327804368777895532429314715880719234035571523823169340031386713981457252531014975126864314685533265165304299489459243654827308953757889522462967975795215635042390874993487627365479840494254221009924640306694729507900795389433652403375042931393722184957643106472555761441772073755770892390895983392580391343902349330933673656121659408827955903762840331338547982088647599670960151225108423893646663275299463396020966194285765250232801388556779163100599432465506205975336999825158133686459174743426870240952168238725708147502200075584647137243153196055164917853351364218529799412992855349328196201189446980634265028728387209244727014216848887430779514413347179657968151404563631035694294854229929734127412431216246584989963379892616500712142645241873329993820048907801450334341666599484558242588191375977927183326763988441352048684136236266544754205720445443718767510264893132656816709408862890448946862843023136437894240464550663015367177699159852753078383890977639528765597389848733970402650946065415887610237382608788962662827759883198399994438358832827787759667259894231528040082110308022107574948454609943035372901898584394261467392034728014959053606888284018834389337746742368652684517179810860194967114090359184683729086844972087397024989190526408960470190028540914696753716251651783266547542308855956589012718010339839316761526512669187503811178326146894505312232236988356574341899466745637197693149467085041062375275336216276777082496757396082694415903731529477281042782467035772554896461065715112448886682336272405781136315848942395979992813584649089274181097570379877212522580623707387957451311668261250419058078051098014550637643883240525124253005064149747362224570023583679193291796330817694443554674444428538635411724083692547536804379278797162697770905639771593398140819689087198226185475732049402404958595385022180642587685632010409482822169914369096226804886097260727893679706126418775101627000810554377114582248674290238274802405832691392294720335980530257518091848052791698548839006466261720936774541249352635762010878061641862358252978341051598819637153044542701370130939165714167000784820597061910256703813684835565310017590355788798033831349180965646837677125742353207299190763230070659926966330946066793457921034008489658659773823590559475160564354469739800202921251123964912166094348991112755406431786924954772801056607384668109578497626862335330774485909106663642060058578255504505549627577160677260448651061398149522625832691817210138898301482245841186843310382410396430700254004794229812595320987213427486331518556809140532869529471466137685613572942529406590600880027059293323153575804400218438068596216735684636514422321778222193468581442551802381666095388397667664748966607252376947266537181692481458414973106514622054292982643634900808686269077574745654287480353874165563599326827528760095925803830515403731492173020685975451000263044978526863115395575582190678025289460261116533609542493897127665642024831607086212035343073758855504382501388696381971016006161034639409212084893682016833300197657280131755667318509343219158136709544761571196167398970378226948811996273412365109954601861910560642231144476728523040115590979694158758860330774312693305062180454443596348817149968150080638657693779931088967956751361268813516991384422046811715121737753032527565659664449359679471189542901491299822569291881965509297052272212684442085840673808374413579870967541096515886674229328368578586654534536191657720941834367139736968365607321832780984020108920275961298280323459221273881117565142278452857296282969578534689762036162790142903167508924304486599078470975805106233667452300798156415506999839412510972582415686694807618793852053862691641969542669449249479864043011926166075865625764399326305421683615955294551696226432523422831667206027843082712508115156933834647455141225135511507448319618985836512851578270804751486507184979986552732266668703543338697170655310708821331434102696549931376405774065711108809871767562050858922357542572640911331596994764706626009671307776011831719078375993158805757664882359064583115600279396404388358259446060781619799946367395820142086043855719867623657235924060345851649503720432003874035545977799474191764323756864639839896490532552896281972497996270379933768655716270534482019149597614576300185506987043301870388788349607104593848660238955088025228340774029975188767708702627246280973849160680451594589666371258997776849229584900945117989977894670679618736569780362700429918322090793186156309138815537649209579367445607500700203575469438331461733720608789235606919511482623053031370605603476592658638304917977496330703392712670894459141188268230238666049419699308776237731086958959598053755694560593218315039776754178080001133645968702772500670038866482470681541924871972712323628348465957197563898077832328665755152174195292523345162845917895353876932134619377130901544222859351040645833201212310302223908441474263315300880814988291046346326442598943353634346541758484006101613489828224015409958224883427642747733008693857013543468039677739851744559004670301931778346515274391417604201201846299952245091255014597670037195613058234262738651048628779679543412525851683121896896032252486499922364866393343779799232017216246429760337810495807104450088835447146583674478198675399399596473759947826681102811496096233970071716535280307679314622281411194981221493535189137162696945740846767412690698462498626486170091818132658343287372483902613504404826511166051427914048199711027802773326188501762054796323189701453987616276936858273056419282764335965743877746550273307645201396361233249504851883492751208861097155875182994675304423333574216972659714723778018636040790101326222456796034720489669591538423441361610571765649508531482075930722118514590247620934882369149490884924892429060779337773905570954708817181851430326287585343777012035668431001325749810816233016056287825908600323054948620404768062651834093854270943652728477512358916658717888917738550369051215458930987749825466630395512949035272578773270200285928657410765929919747568343753410231307649081802962047359632712044409873037155007915310056833505841878819432880625505239932704713461821026251469604854140076791556691402107945526469721039793993275378700571903001779431756858365780917572836026052585604663759667514797297149074550910890906784680138645953445538286886304469989779817698694974351674955625128650887419784555964323350885941989111287941900366800042050550976391580272194818431569438217208153057274227152547292042831994415855369786708457106843584894905304667085347593849145711303150955823969239965006063319072299271365328956093711927914756179500275068470105979121644721146550385722947109587581996395623652640083678359390609130873040112351442240418180841975585169854898649693989069258053879839356522521935100553365111178121257576165366537962868941179702636443202694185000076144011264498486726997731098130067898041354300669469420369086005820325840296766063549201370227267912220014325266735670004617591709513844146339121854770473017248121100266440573378034371148610844088192639748136866224457209267906949847261652613994547274877227389029203890244449678348195300223253186643928113790064061165045990840273662706242711312619098680390288135273497743047312235001424998577828749002148826409316935352659922056743811437832580780658495125620726299622306629832500423703295231299971902347235742836382503822297039438054606413913531385446447075162132757397946366646883837413489937935241966511772781418741357020434495765323043007335119728249177012005382981319001788684285058210695101585732156569549672164500852894880849288067859907631730655280007638506954097088815125276656804641045425043969123790901633387900107982793940992519729065436920919014278984458980385772278480595299844239867466259088614626127747327233532415388892289493226711795924529915154967138384672171094011308456144885280650376248151794146524842250901735511929243016669302709311345825135824312453988695832721073186834709915572523846015968412754677430432516740952725005446543271433089585106484381059561948916047180805115532244639107794236727813103839652806811113425734287708384135703339239386638988618313336428387000146883633049100193586283337233854292805641692322163467235243349236435958693027016562468778132920917764214309300308176862570135725876638541122726629146340209831027250084720376529143790761035267741335365691735960541957954088245500247552860356465656355743594080935593099295415194837335279553829957186060715373353954680293384301460777509218463171572654105391026932083519643127244528043102671211359286999025944106995043927452930498725769004895457938715390387386272065365940594311252957167237024551662796433973935228742957587285246015753614368390316012541989753619981768688791971651624942844738711204866342114238050163284200403136524355297382030119678662548424452003695646138738473213171200482355893034667481736753507692029320052331289977299302858086737675286803658079340199869840380024989993956116689596749162854571580371926473459306673740358399896353280445618266937858747400355839534561509115217355986713784582904557399515501711299593756896741500663013507295240521892230121655564853112468885862928436706428906946777380937314648657108750516731407444862531039950032833463391297011002264366981134683779663745689312502762942970081243854660949464436417223186491744894510058350202961214451460625107069100861988597629078712295583763654499280195525963934061178806949337147654982339571042938584829454658647705536700958849435451664271190046075424503229119206023091515948050106103299036238827223942179413986683245511339456000493158658017838762615011217937815354671330705057278835305011519926881656261954551822935015599763797455618817055234665942977977855208815188943637478028853506260639718795474430170182018695716404054821753539809240347744467496006383894134260556646516668822916665527892494203959851632426701808347267444381600751307067499560163456170221972855455103266886203003663954103577982592865727970431893487972514358496978932668710270501897806932292661027749506846710466336245678809884821263727998313829992072039593293914736219602243159920488392211972002105139175534026994794926932130240799861457028169494301864551510859309877586508499421643120820589077139000102674232278577811265623904723676481283148461453974844214874131406202195250495314235963824921692241168373703838497887647209692334448262081604500033245027564970599860944870149266613322928271512069739154026570710174353315836558817259315067522990554971606878129078731739956078636274191771959485852043705691430408948974366123757886904476934219909368032960596941889275970347312858060126421309646582913680765894825100027203460731425267609532495279760268832561838358387675537338763005233217392387946160600950282454369113474014996712610589186948043035286051287020633277309678001462162572817490076321345356135007213874340020627680534219073371676094064558709370477677742504553912723062672054241650705819192035504848966560062241230403606678812728571308008269210034837712096745061636339897122584540717773232942852835581556028571089700320259417867341367612537381428120173747138895016744491480383195155129770805434788003917804545609274572397250625737529573184206317600242448989091968776772637640641391608093721085301396187727179778787798768165565094604666942955073584792485383711076355740440355960129493983424101351317850525344438891262465931558269466965659011989656865492822649320350685758727639701810259292269438823442525604048844499478751142016082832732736658401262784810207755047404972404195294930098813973047850441600972194531822316651697691679564437723793935206225053265012567350996087095356302101442518743066474492853736381536227895065588781853479251040307250658078979735211556086041378972691694070782302639601050019769035868904188117819736786782666450174291576847402049372527332504493968711205402877383019899882030620106605035768646578261977992766960810271331402134999721368697451326238652127774741657166894873373622219940156216066974947042284245451506879636815946105246368888955623589310732820925656796049379321244594850137808040504882099733303075578339919354989325930550673007393848346482880400796486778715280930534492241329249020407656188667549516918757780932600599401950857107892511845038207470636296778714740285643175426154637916970729353610622537617362467655304479619778038702566105259487834871288958254228802336818118212933111358775835501883191816122627081596115089010163345685238331221388722212499057173535788912942802178457913601729634241720760189418364717606546587692159751716538287731537387497736002405567079401681496321920787520819100446005299695870400940398255047154634340478633835133771702705665485804970579814409900164997882762245396681677253622360216943586197420310994163390117895966971525018934162376225732756357112858549438992912608882005108117592403254271426519231364375994966355525524159412338552895287460898390827510032881991003386602072860906375188722619892461588662846722722547025557848745719067529224407683453827667218595734386005478777246342768684279545610927857916653407800613582786694725030862675582577901694618556723883954332541467261282980424891441816053311547538021276713155656837605015278204844244287731531246974457521863160493936990548619002374713665916711396812885240647079251944722964273439298319131404847615608103871613788529994804069597242456170078421141680475762833341932070918102713809757186500695655276797657369474426521044134171463928943232624061582714113297759794250067201869282401064166290269447002851145532702365079345115104647049024067462656229237153092927055906244320217506580297972994621626934822290308576716769727487506153083861212830786664473230738095293465309437582712638074658000662167367499691721642579201543825416084482064889631907553039742849075561807895418934915761178457394744929593345691288201598556091362710754367941717121669620374132115627222079949927255286315279362421918793834273277237852935675974563423208471856402302364329612292097749484424316019307210366437017159393489694188073485105891194316731418895052018485327790115195523855633610413161076525673151593043696772808252350678718116805399785898378689652822077673296269993121585838476208317622324655026512010996296553324123625148095262528773528843875953219550811378248006163050984043446504615771215557780955111339710911621597747053073365899311581721589134550539842429366989106431239232634968067576443779835787328312297576203904309462136012414336511176368324154585851021863412137781917808062927098796601548499808406668530005197909010520762300507119365990999615949210268077387348839826555592573268693321995641905054269985192845167722447671924521416724364748833375540191985144523488702489579863314564766560948794257015251626295422558284602496322387773480341497608924188957793070077010764818964793131402589201960144163368322001912776978659073605865519781579268691121777273977074234743772087706182467417236732934053791837982257928425048683722702146468602741496550705502683123694449867218589581711576782023025310844030856205608027763104242652040135071002111020493800627145275441177959836008402593783179885843837324612554556315476085688553629315788478028881151144769437945853395558517249657999994312085742311029408805886799117990978255402101153339834504125217835954124832636701179899560576071382624631669648466039515441504646888543028133532987429297417295759623767579099872321039702165854239056843801154281946694728008507956325408758164241468696838630652657857486528907547830176979753917372929881903284105262268156154739313806129558693110097544840110853165821027835525486525222629670077018611502099276977955482317129338964095217221027795729215205325336040330510342196092086208207039546392794886806999598419539860357867520609326442527467904316322501361560490599773002567433518523612673061438737487219580538013554761326909895542403616922838781317111615663242048640634630514945003799045953216913604297648757360057620936541141989133114980650167054941589905639234029785600818789985395288054874686953524980719245167798598084829322535441662178515411686505697366777339315073460416559018007125429504922356625071551514699218421481623185927256650099858933183149872457193464999115235652286273051668692717954794706251301677102192555498840051376283918759965199585612348388095829716368592695760941403857338118192932438405618560297987880169652136632963981839841753645382098727068085409096795445593917473756609373608440392420511968193906888910130226532094197902017717959421127671790765228015183500799967828668731036348578986286712578952599266725711160841565905335117788089774500555415195326715969034662613643458030486003908022427524178394159078808090109370318527148558028801762590919799836956608348657394815128438970908495534501043659898167040157839918796381233874709033567916679590848201803494176800099581202700740610345918394034528340466244621771846616072861961138953153931595264551325777577555820486692967178692678628423287886197256697570000026724346612308019950595298920777510755647523809619746431835627824744372855710251522869498210172449664243464283834986588583971134069593939055209624395652397599490888387021335372969121241832759891971961652647410538311896060230033132922977568117458346223497842588499392955003551811124220230454181165010125276170583485113864435912178986395252380684958440240168622989895791392547418234296169923891668641725605227259110516435375227923489539450206656364317624153593557184594849619697040035891603327500170919362018838051559218181345560165796809582938817206727791865167241706703259696227190283453126272778663574051692631925236242059175213102330442719069054304255224643769873478369823581307697641828971402557691802153396752002799213964525064115518106715799096006318441888901652108754839831120648616895133258755497249779335932201571055613158385381753254340463619160543070617744516757385324884107866141544493865493452252733934954590955400550566519953004030323074111312448945671712770156538928679761727706167587758323210733203422815570187740820870230528847848427051128783141816719811926707789852278165014963010673348616781163388518528408053593892413135782114457051515028284146986188286447245800452388032654476395008432531237365909695890774648883283789738293631120998384943338401134471469363031644245481745341748134953264885032954202317506683491661626835693331669568028009486165345422441875381567229663429349083357365776449055106584503357125974214525231113158742096995678300191178808762172259935555318033344482946656578720138320495641739166709950885497064886617702448870369475706449920615037219384164684101980907998701455269501254041835155289334653597533683614300788642284736774263215048724215076446269157978511955267101495914262732439080907342331288161974112691050723043198564816459629296180571975632868421745420802663282345156928447716507502037059126525667958436736854523426197306573800842462435649031962794837538823347813097550959971106230598779182050594533781125752030412845540872798204831370192683088480043027439263756488214044565544334811326701513372927519132171945290901183687396457044454894383618587615250780376169609829980185440914507300775613024726254582733937321950298440392289076177334130335525477781878721020493181711379536417093600698683258043857694641327909074216322177860379501021075253516894931925423732314842413282356012573041815060788280965324032210945469787674029209517663623780339617732722069053794420066188803663019902636625789619922997250625172034804549198249399327533383335542491717992746964338374115292718961246250465018113335187031626335920309727993457636856327043045809746715002333512979386480344345507133302516845363254687083136049412387398779370544334886535871731698426956923461403257740087829272217063005836177178010017065220443647614562924822173950356196120164421110210440757470888494623220807393360963612124033636472490683275441868999426877977972552229200888422385254644742572937388122451321220085118854104746951975010344055100877780421666886738121364621616932239322362112744659784754230063272527603142992752217206369431498000901506774193006135812990930763565992863633659251884075824299818108808988945900382680369509569671201196190461289532060509569544933909504908428722645752274631236747937195586374319481781005557510037834423748637867669984638869977091472234066884802548215995050589294156998979707806857907593265104567817647634736772286937675498380829276068590966606385147763444077518435675293082358857767835727422260352015950544071592253158884083453148302455690203630364935803975109410573829975868105219550080295134235852340484758947395109581947164944088596328225568987106820026899261261853099663396867913369983408825114101930086319255872227573319002112299418171904022512296487167554378521835096708541774461593436429075440194590170201344722837079452651619472135991304917835773834568655084072352396873729213069513753270198706038712803488264442514117226021726378237814296919359258959902202023996349178958261875809518553707943747046602845715340013186844754956913091295663335237445551511630974986763762172964962057181681997813247070707323546872812835568586797800894081213325946019952128036142647289758315450549591133002897306028523319197316642402005828619526900899418884632601380954496571097191754424616036631190948542360429024511088222721007034665319865193413743113449225652372384279827939578049368599765459318209153746370721055727270474841017597364932162082756263810108157454621031282196895683267331069633503804094452456284993661344234297651167648089303829994421653001074547208253188416672167183830199561867402824993714336308874305903619249539096899515924715064913711350104111337105965862076599212789847567228202915070361023855573488946457133263181194942797258623588921208413729111336156399181701968525366821756903229204201550447711735998228299785042554391402306885167093235111792533045697657940259728206784105898229450025643918997803222876314582159915469182566023846518202187222153745269486469315247470285399259151821012376329920996469018167183154068688442958906372854560052156101474707962796219366299915679643644040322193464162412695043380907719553461042920714942413056403777838631253078644182891798765519114488442884168254270768517823141224489862358316556112750246632500918212273224841061050589911762358462233382674776210339341086612284772569397489299508786506762229097040044022225238098445938394609419346242607220828725197920897071179746821488074764219324527391330328394494351840747614387496679485951784504344883842228560445269719229446454072161958647825206132735445185430084332323704672845280398232389518910567281676030454869419894759729216784260294709634187147819848149768277461637800354998807310945677182860903819050755791208351699137907912186496950630027562912966556553006628196526449500473503802251421374197144064528911409138456329490260766737568233289528310789186269819269958391616400606450430395949542956933357622547935314394294927136889614610169300333438648034198364051076183968188321449596841896924491975434128037053834916621243951043087523829231685430618047445560313927944366231605410983802814135980623780959295880168512892632287839648078799583729672884420502401003569967852979947976606099023471481375134800630946942548779571067951021031989571498612968582149099291384621414110345917230356132253161246918235059857511213100131511819487884087787086367686319489929467540232861277550760308427938260593885496055348420051171477066629249360397178623285994292283262815944358054125480768860419093876577589477911569063148538062883489793923998011053681576822887391164748831059279860560166988289148870468726976073105434283784748326976122107331638589022110168099308636644832039818967718990091301113262676429374652976871640543441666336341972711230227869067869306312718748813135980278450338225609594786218584296650687585170995894628035038577752291248914333809997154214721581997483289162431679934331368760254535609210724377365671001448114405020261477047684948530567750042298314324003657596530369093862759561192368667569453097155286554395235227056587703124600994367596326385604424365449975865584256364669689866815751471990921951469110218588926230562802625936867213144273701921134384841412453620479479549529634572489774307325454158623046013315940621588674971094910591855733898420837531641746247070244134216166947698982866443775340969370938111423688154312481126926637920618691972390896035046166707700033620582984583389468809473043769208267755943680002422854369529159143303693961728605953429666513898603254450826647543380144669364897181628322365025577164406520977413221962687966784423991127037195145972495572056726125768416259623300493464436562298749099451245380971335738362262832369885826978201597829425657781498988954621187095049333703798430135669777507515748863855509359459438357606750350082045417618786685176093882517251078042444319844496398039082980663631128904093347352184246439992107858302004231236587164254415218679635912079320748732725588428515975148828273701013102185840683110552446796423864728594540030348116419401251908487107377672375556980659072175981547176849845475228649504554188128979820413330603664985220517777784348751491388393967045635376138047085137662551348347382258367406176790492240910145518360142047665360548316054061230654003143333285571901842112911069345952280544507017075212009265626245402689490271530778447129372449467345954163284312056525773435205734061411048625502690547690558501490638725275676579006518351884379482116204833911123555991208136485504998723522418607825366245606522010763892036683008543178926541986343749681869909878508491080090281374696485004916322687173886337071587437156714741724662582063890012984802450849554604641256438766447068733559913806738105486275642113894380312913543452833194332807559301209929996855964222248963290178300854549127504838627028136157580203065900943872793382101103273646800036605395714609089761370744701436545007930315395175353357782948404183459454815384839541263796304472978888729163983380012243413620880239042303755028222418491285632783499730508317310895166075245499647834925117073525790052127242069433868553227540801549712430948216171310135864133721039871729480064325402627625335557891781618737209683865526957568007050790248535889769805150930234987974505254984572664158042267658368838007673860893316631079092349184677158079961779046444716789714857626982709325865300166820391890684772595168250927767613562573946831481773588014186583326202640577670669659363501858304294416360954929136157396778630626538126845342809423269833974106834626211906322381034371250788819980765175323386443220112521428083400415665899796106180755584692345096038017529737079848153384834578342828060063928704354468503981473639949316785333967609306790022366026838672804905602038612851207117081233231886104278947384805452785897697922099703774175125968787998420154888299645757870751255677886937202948399297907712431125722322708675706273065908351838244527643432095210409456391640021055663590131614695352958447801208250198362463029674473549834046169913329985041234518369662647221867431467681272441136559985632378835621046018438071884125883580169305270071729285460449987927639118733952598582419882494920945382302080379806839588427222302853197471037777495200484719078936669665856164196765370832796227089333872811842186206973794063125572644620838365645677561908802155662009737679896205381277844489809408684243315884084542635851366868080866730153358816221307829439833078004122052955280498452258048367211964202973063267876767371117715254501161319733887939535662982647125393220853838230774241457217327702830784311006179577526452980786629224553682441308181736723450443336583688695938809943707958180405805970394224912567840492780881248394247463894347788752137560901679824615447847742547966008642112524628738070850431733788091001005225303484133135362374756138048127098599534570013099050819364924887618631635048941487618626907609616400980608318547520333826102748575350604539346715092945143192945411865369121994922038243481627501787994668945110064769585205411601007288463256242888388011713176812889394409464685070110762500038322956303315578522798505961531762634295644162969095693362204300353986285599077496831278788127788169060250556674900218993849532003530649629469803416696752045350310707412197883726810931209593679563510757714733125072803841035859510515444142718326175145133232414135896335869807617902911859201900419920570122508503624123338131804952621016336225588169244460994348549756661191841506287130501853588996639686391156124818455449068630968906865310823574094320182631858038593251519149793590440856495517731437394572032170041827646119811626662760098282397338151434633769534723545107252683448913511461419360591119882083944403418979404154188285553138699045769011689916077523095392903062356367468108934936615162703127394836646913764253720941776888194270528944591597879982272908129776557532172412585351266131271519144117504661333007231563547485701610027171249613991124273096796112674551964386184899469284343117933058804012621237977394089660330696794885673992599582552338339094863645984841211470764128501228503301483658778905975013195034397039536446330901163886209821734794203615755105490431568629993142813775094421301628790997725516325366994580605570917792742935293628099283920112523789694721343075277682538928806843027350288663902524322172467524384717518958846240779992618719511793522182396004577778657938954934720418220814149909705913603951471305405919596832626104544097100365237522340582369821971303528129147414530567351936276942117642927510762881412694623784605191286894328217565857641756125461367008553056474461988271759923911229502142447042896071343642506228201796897882631508523360135038833294206817551063255473016931758933440041305922268858495329078301008331353261960806116579711483248703471901037846992922796172241488000091053231225691866633752508765248168546491111597997440983925792396780997815859980765799736450810129541921888567804040919071095993423743371446860390855722427354677807059247661390499717176962007026494198752717156281616088686122235442566470468844905445969571383723552795018987846555405359080866592826166638109908887365265372071044726732147096521484847206801886149758536866151754530968414868605212683811331605534661719664139747423329466893393987264498411733381864262532969634141444520077535157798181419572227133881783100785521715847641026816181131733838726162261459357897543225189180333678414645460877057473708154056463704675034322250036679006677195619972093051642656024352084010743200746779443834459602998748883218379806332234577081593183975035646317363784036811378859021513160726228231263716909841657163965468265060358880083791739394989975596071523228220410866163940336618774814285915672564151689811974897099268716335675566875000502706217126687607230397540051515035742052264318762943922596389783310943985605291698842770038135256368701002272515113952015030163629630568857571956320972401550693804852571498876018280627495978118412906633749718464249863846938998531353071095136920175929982746072940229776141050563046767069148349118313400511302391288238927493989049631276145355194376474565598740911740175058126516511541965257272518660611079059311348577973207751567371953197739927366870452840042460834865976079567352215596002919316335267960478414699436488011819979194266651942424501266282705071802521515242386940223981284669370346675387974122032405835108286477206977688414692661718057549413726986074067122415619347323730292144268761609487521808703064217087163664378812302603858386889044908645798412757491412698389162859387061577944094586466508762397437968172740844864355264747659021107732117699876497463887898898543100380038641581158365060768596460917652771728863726379055360598586405261722258573383087018700908934660822485498092852931973872197997161064076045084971694391870754546512447703297694895855518985620460629392831422810925683096366115073562817960639982505817471412723062611644073375889585304230716677874384353722896109339868021041967683763979142616759512339159302717106074375961542563180757364988842162051530149522279244439657547121516635763830657037862572883370595829508756870609106664554583613568269778615789045400934873351284645011556117618505327945383373036764976135521109720463372950904967829538823458934417302510577184466382359514697704150896549161903304185545835728063550612172574574853451762354732651585203201699229790546662167562911639801770411304433923936277456878650208095550004955702109956660545191466652981560034050876511298931494114322526311121350925057066779142563214697810942894835410911092532151617996019000941720320611205811381332401311025880917392316878467736707385283404232352807224869308676366961597641024984571969930605219709505978664790528580832239514189716340099802741774851533967561201459286031179667801674396440054145779065208281799211946156107632705949846279296190389900827729728681692161605250051412435433829207556366025324602486369536722156014017054354023430172849559543732982706831640374703013481710538090919779032801984782931552254645480284734070367887306758881604717145791597372984491197230635862465416937959595472361251572120717534771197740164920774572061058663905683416538261530581278846360409277510508811939957449497728739122054792732010074344069416324596144447419859909631107094238161737223437967736881475038569065318364814233908955035231926184711763924265351658785494282158534201375982884510213776190373880887877674354016354688615425981757277870016322482561494897597475482101321660632118968451831839080313534432922324110266979826304153861983276057874752409850432325544783163217555125871011170920384359357269683101156153315281479391060951439417589913318108017727708837488501064621108947003942061039859674904320635085583267591667792923899722309317585350532513477184629522193291901540311343266449688363098822102262147798491874742649278782342781392505373071168975163392152215503243935121319173153239690247080440786197229786690255609192426588367131492629568198972160967569803993959867680707772653863500638980621540782159655276882765736460862915906643369614195402129203431990296068383263119352478709106507567309808097316133712089753802341917102043923840004600585120145799595918879411847721885400098600000923504385848478867888806770208719762071846242330429643514909348533186471056221780780996154535059917310224642232135941204530250035899990954810232719330889305895167704714581796856868300302471270617331457074313740951810336520827586061473558049793428003095803969866477139395605576053743412633511118491747804105533392153884784859783890494647686041436866151897156976693950357128437512806104356306393428042773626344267541470744119910441431567993969618462072447225877177090580318158351110675256831401961074471646552938147049752518581124901444500380149473643201341674140730297735629432728325315234818983112614200145480618825627033325047959980478526409283096885067600535149355118360876594878546995292233524244081062274970558165611252589626544507442667733300435326017799365146413592193972735470009230123029007817602780285453008479777869726930895313556067013217096955738370426662968361040039212037898294646576908643327147598462758655464120519882216994445684107128110911437214950786523946310155514395089809896313675619740325854135065708267951108231673169154386850575296914534783634815417790875754156913203910643229253466573500132335976749646322166404545066479947957210066265608095906585722951285166750177024342269759382831986484912989893226161290994092069680844073925845068672053150535997574487939423274031418708894180116343777885701587952588486145355989408170662721817650405923914037290281936611953828987518211451256139848017538179891529874127185630873667461487430132430382765958018665409940441207654863214204935572770574040385513990287500068393193227561585630423119637491394244046369961579642900752297193155084113729349462538981390125164760977379989580704429778739293014455554464856001639311000841017310871483753873565637819351670336023169461143197775558504592966305844689226472071820301719906961675212521085212639006630507315670659078561002970125448947690824390578016802409067822995066733459033737335178472979544168728018376348209930221317124351846929029177843402564649125127153940362039726043696277039399533417395681374930639426479949902671018938955095672611432551393601572058612200586167739235877383782152988094728230981922812281857424426119085543585049016637703552633634293434134999667118709877364258537698625753432596987812156962964446408906521775062074936908328642770260119722209111688125448746180656316992418642191006679151827889332289931141305459460927207289403984955492450006410365241426873913832018813603296779969693375048673678236453033694487044073161371620316508223392426262790413230835471401935531571105591350415752921485096077878247182923871174971254890829869725939945722731001806647825327242902957323852626364776242875101010184078141680570453915238407766995565281534774217635208187056648468254430864643151076674716355755444442347442309603523446538152973225373894760133560201059476950088342128504501856554855849356332462557911518715267013286295116196798859800818052276444594111247519385869955324700848306793654646996174238630205730156951172349408817595546966152504174871645762015655939013914820582601846844175115303767513352558389994473041784069664253133277687973070878262359430183324149438925274191693973611105425388860349900547085661515908907645716659740488463753650551862248042998013259207556832964486646608627397232967244944307329255587614035398127577831840760631177000783591585882998796266805229025128255240817048881779051201452979283499764787165038097471365560659547877247660867894480920755760584740681643637599903779290119221177299702346984196833045830821130255254458365848422681180833316180843283548419237447388968535680702009544976914061985435900234357712749656025046338166532909511821232022912307191837374745578953745217242781363584582606982081499332729630882091192123293126403768766225918486903419199751045296665495680038024396860765055174425599607037421387882396598735340100094276868212087521733545177582696019004325700657920508719821781001903092741756548165369267186106228316116733636238167985781244478287897546376474822590518057572837683466172123819685760101364355104236127873871627481066682881923339677286380457668487576010532920123187541840857984332405485412241717897726493163939725888963929496264243402928684744272950988378021403133340143978119486742106150967258055962829542283460250846253363607204974053621119198956677612383140219472660570033290686612637679858210189420811098039879802721069347748310902754747886825834897201153473583201404251477994646477974353219804179593421384893284491406300745196988911379071042075816510984442799637841922850930611060110426589641623768464608383511158784567823219637526046875401275822594100459412319733440758512620992085950517534326588671400940960815594083484338432204719290025344246543465276376615735735694149797107831237353541529188777561560418359174791755698584984231294367940804144345034693516694590012885682011757126001586350295993694515307042631720402912209072089461604645100589477589821918937712485723620364842670001093305036404283905781168708425353016068390522175538221911564071015531614385712269679800758950169519593628445741234859325080517526689868646283352418800668396208425175502492723287035692724489444349829521074713369235493528747089241921338498873651122235405939294353566761659491447753013476894832944821420691620420036128370879022846669617722056774406400057990236252126500191585009558083591499591409228344326141889942284690171914655834028264689537843792656976190661166072833163883956565525107612214792993261065333117922375197694470112055948900355932718845900784187601633755312711838081073852772495000326068945959458739597752368722446392685288017728501627510587247456210726727805585032497669467244267188295678838551461571861217086188948286614197090863581497665341454440783465894891164751122496832991846312871798896644706861309471461570477965863220950110867739341906627335121523333124875605224106493820443446929255945693385771231058036150267953055312613704230852875126559832503299927493023683468403107921739769946639526199513777505368854440253116693468093561220895287349853102496855359073094934698965822788065356980430010774428273676818875242141420617730618173428886961679012647520749325457298047131544798592778300671806764872872671003725801317673821996868972345910696138131528491527381127186883811576007398810240302634743375190612047958507386970894273894310372489398539343175429220189989640575875500282277885208649364014809771633492640902823370042657164668368783258924642667850446019373046342553498793914183074680776968569697525746333045330670244436930139067570934913360562687351256130201263835227713752612087835129771567472929505653406697251074085248124259366306046356248570649335279647139370663380750751269748864406235950903943883969709636200169196615609427455684127230476870657755875371931283958296648342415666146186497799567635800448629554566193966137142154021290296325223951392427954200141150305922179901186612712186131098207802046147585130551633814731406190127804255130773419909182581775838482410959989024412464872751891433853089040643214604701489520233555321017250478086181928595607795584967071487086981502837583001729562090815272617738917685419263235822701446199924683648493782208580472278998886527730220976024094966083803748920405137009597522073542453808564578227120845186685889116154153101189234039492299630960096487267515154439666466264168917075639310859779004204559816260215344257097984533758945564242584765850534139407459619951798910953339992796559888791841863079692929492497916753984171079846987357143124479147205779436800755721162406860376133567981219631178775228921681890705771258328232982120550662986374005324456743935824066648193552645507640699618829946067860469896899327251614682157654196167266055697046130637896005512293205117180303977713413179999648174271477677482381800430397262809810427133536542227344908377807828419859372319063713820352248676592349672366662317752058012359437354377353772440259575815446568643074121296246244418354195202102297554246483361785945956463850601661504337731345578480535050391159091760723229808390255291418561843479407112452302482178087488754128122874865272713745069159885510953246708809208962701005058515157687916472953557239489283719272070241279132341993667351567770171885633455919958985062433025067091286936241269639787432681086674234549990653270057061776578660659888361494119849882009679752449026403682904726128790616547208855603150976222285656564023883839902322680797758885218906984644686769848624044404754134478842694388673762895127864102216897356547970117220461753054360425775734166814580381451578031889132152526771710846418506940644447166763825997457837723010114141917692777162747735168692786626810606108228650311271365478762186864025574857434464264110995815834090173293179944500483777572745022599434962821962955836093665278056882979487684395041061829648935822174642164368778655560799059014986978819151060507756191504661529136604921549464491061879171167564176492009777949830567481093225095568579095311461666098858482354485639859928972047308146448062296405675516246982888726358759081503624892036722681804918497486399885321366321255324305407974492905777728215560010101642039076126803949614976182390118235940267293347512846294502293758945697173911992614762522061513120282760875469312795823460898276539755758163062089349770893704097758757240815425925804693416365638237763241312945535715496245924479544649085232139888410273662049613439780033647593270911930635484515598726878427174207721137104616399245204267941673833012611312326493194821406449064144329089409798168161411024034746230663848543122251616941640572774099863014195309621189881052868933977790894000082700407178635426866278845496837859142106349179501714038377034178460506933367510578245226909286992829765623619895824467658462160212990758990052852110762538180134319917560305277576028864829803604223439822831057026711332814406983056806248717274939011494811633123326945424750819390574197244372790380248978104634265075575310594540129997282956151145044957700052853893654556175153906129363192446539702658060328722271408106299772053477738769913662293848267212969277071348533921854550289816787314755423181767588369011755530807848732058209418341548387364636358097597370731434106135046437842475920702132878009798311875204460690885960054126509424614100142618585135994539159224317646861581130164892422426191609757034206104062706440936325677733781278554280824528897643221944426606595796754136438009800222257892788604480285963448079968728032029987125445248713280913948624974086427411199948695241185040416281103170667840665714464954973375463334612220323809077892620114754506830939178252731559100001054106849847414227567190343180294505715825172452388703003200262641600812431864521850167554024142174739002398124097610420910384243461463891525564494374653275477909101753970268880083756110870731289404544908273511442479546896028752756267356814654273055287023605698715120401223605558531194503400277960622308905288638919968846363807090428836210573710781922213103486704067439888232392798608831728538091583536821784289900953762623559915855785836854621538128115703877686993257112587131877385462194676003001997750893122823007809805811497500305529405263963047019441143668878238312534577178825784785115608292863975244060495789793292332567463594046670439980053863043701787825848915953990352374917645967199131351021145808179162037067507121193495964145114902190852899039796840227562975285275721388889320780398541973591236942895373920041740871516157716488393230651036615732056436434300296007014197028617937230292451432928073223524121137888899294821589155062119870221736982518874123552970615578662390859982901766354869654875667969675288015096319560781324887891605635371706554127277749863188780228560484894777272668422473296725050175255318725588829829071758668029870350277871886853364428950530944732524023379862786923717311246940352483369086485705123796411768078286106336340886622815160973250276266927931915899621643754134113604957531739319458555077368834116194808550952322337553739538954365201871561690987909342162288218702923560234958011670000961168916173422760163306616331255333461258425627426287416792689470863364518541892688316085875779046791883372741934942365971249702174172916174640200860788016206779591323950863130616311087852091930409255521027849820218798991745019051115466990706601672071270260058349548360251768159403482859224833883569357175529936458354789109273621038153898966259369375625514343290653907552877641033463621505915353114725478295311503466020464162280327483381257361761885337491103675381586825401379258271847960225849073207118342337290571850263423136062914845538712884271610435994315566786098876484187342301056373511412447085960355030494312434736687244323551354706923662784736242351227166418239406945289653303322668232516648678625148824220553348784942610733203572170352220581253124401555238665081661757025694700757309720746200990143444860620274297308632249166520536036113734015829345937248727036639896413999564371775976690979085445403967894014805497870243634977156220771045088869536877825223054504849357393245748044701343127567385613805059417052281439647388500386350650617314387589226283751990543314440997503843194903050422195113377329461749649712938872435407503916274405091320000673767204336212965808990430261438222248505007039684138348214569362293532986607165171350928610656099511708963557660385779774364565906154927262502884169019121900152485238173240594055336669250122824958706323695639750722668795046276256475812445300544540801646877426081061540590399245419620314578308766159759836434967049322754233612735663288314840705281328275099929987857043093649729169618042651489388470690266325701665680058941018687110908045708407370751647917812093194535368704675737691012069068838768862220110573572389727031985951340845291314195053329634725189402223643840567618769679417051397588940641036668896118450564418387091663624212525958008192555119324677991636067100535234938806955484253891896951730876818371916946009639251697659589443012644647006829900629861948398185101423305758130769770273639970675255656994878918103038849644124217761767811608461979947363446887843471560909911752543398610156566887428785347822538834067734394638387018262900144414649361167621468633726394057564524298468897600073150526114263740439488339483550893207815161578731428211526961877312786089473685118709552328853127674848492166892137271762560860781328312363626493171251665187574944063639587721388534871260658391863392763275639756698024121750811814775334413334067924514863415244912511222353266549516031130137678186115428253688853241147914820543609981052166190752539310154462341631829678812543853100361839745979057833399662597046684332830114845000856473242705214551719510269573154429571057576546678718487403804171434799496540785493659245982125872466836344037972832746570899192128419489977822103672000975272535574214245228718730899338424228554144848507676071357352737073631178662603171362409801672527278319352529971436737382944922453258629428067364343636463965637152958097156622054520272444739788793287921361997431877602731299597702712508814878729126317432002425727870905323484176621126674643879228177170402776236540840325364792763690081585860306308055184637927149859109050261014389261695514334160518822359488199384506841248759334475445033993365895409831366091835938901265649472480926481707433758797732429835255093706726945139602111852610695664532600545542168622655104834492023787818309612445638732009771350420095945898877083628741499073280036885780808873769602839546058367290664886219723384731230430738334766207570549222550872967122278183219036934887279985992129762607163790984248993080704977838275274287045932984808329944771183086365301083730961677229109010719063084798655997924185134452784504368454665965763808481810717077390790704497998343545214435678052929330714763966345386649406654394670095667394414113130548049084815692292229158536900491436176548913876901399108150973904765113444388766138198185314358656432887736111999817501031215652565147997509592694190051435964376482799123819005724165375470616805983371504663698530995194007549140160038241149856372700433219905044286789697571076386929075956733975632905461284961460872566009451127913135403893537446626143343110131816601124173570271288349698159152709937146002290585858888664510673511421387147703147104028000771928055143735199661948372384857622751705036478115725561231955334130009274999703410271794565894577740185958929755380270150559888980707468600088530458853350401880328906489045039532914004482809606531999979035517741330160994014476721917693523567736551339059485534392806609489532708436724076009388815916725805667973674039565185913823987310172079900281270831464308921543989063195363143946823175361996320674754340207782181658308088050170754484639530861487603659037164269988842881645815678272583476492492170955384744734844379003647402327496138088577485197962667132251415102876597938382835473377569013095864809018900849252600472246516855025347172129483160388551120579389120024155203974927541355835568355886745368370531397566930529861798342632861257872431763282717049306979530483133376625104389568521568569188135299968522811685343012018648903237364508170879519907312017912821847971138189478822345971037237797215966715429499735938943848767246462862824406431998972588601337097248277519615241543011497890378604162764873220104446612372932056860752926432837363622089596536618535139942077141736686127305381231528316716852259209260029147816649281282944149876108347232518405271007968140977886346785670409830060608458408822824984960193085393977709485827359902540468344788856927908076501337425113872528996132276427625234302915551970098657737556785058238173986902418037577019407007802709849948491434032580522347734165077140653532322518621388221642040136193903743197659169742771619894343727855126670756016209739786135541094491084084894472525320105335490848436041894600944396898339595299241456977096264151800505101110243891193890019606864834928594528355031710342293165137209790895167803733420267237444480562907292459238578449144968109965076856638668743128961421277794896482813645087196512221078407553067348652527324320088429228042355749350559094553522781896219895867620627439205749917177214542403563277384722114547940775656705052819037077861283479164689524998042294512193161535860355425233155027244659437311091913197621395317743026663193731217334014355387642837420196498844413218045176796421630919148942712173975559779961931504589605866723128403332994967813295663584158080696357738214672692673120564617881170095507920397107957891647376213352471792480729512584964887482196240214381328523289215125282972491726378523321870977165291249546660179740389649121729611797874075140899676572716436150473093306711240107745751369457814048302127111543793361406758719571721088289672055915511648651059391089095282135795614738149588206677344977542842733801360343745411744281181513676785009986437623643715211469123688806430572185461652424408743984475613830846661331481544021702679156943398177048726123660777701601563724329071053834687624800890359108989800980739033816361813460503453691047347085222449566491820579689577340890180883419358184186277998686835530916460724182103036254725370298922925192403439774847919904452807343493362725298679818359566808320621408985177976643597180060980678711472024711516768918325701679614351898982815659374423891860484999006526756496695012184839501321336966334423690792479937093774743137072942937016154671578550231273867019624263588452576892461319160118532514651427595275089504179760121077780607993214739506948385846211897021230229837397345191681969464356719020617334085735129878935040944472662330131185060946895858799442201948511795730949669811183044529563782087199920491092471824904513201889230468993177053218738120722748363911057234695760448203135474535224299870498736487301119695064253269818107271058765529721774603405796610206479295168943835081701883255833316550983745775719939036194857333533831268128919191824142291217768524875579868836111887146403744249362413424075954500484574003538273672518137904961270314717237178754000517928611266125460198115146814519535320685764460010274219588218201095985952441283190313646713400076753591768032787307097102544028894627534589351522060264789690778261777753200588185279964652324961538351898590342973031183136108040598854583033809642551178845728779018040758761976625386362669527840135459311907737575148662534829730130213509832371466229847822179260836429400100469787713573671531153750004329453643481953775388654054113759418969175580683721680191062385939734057659236761327637208858182854761400092594282878632161131799862521375411489119562195267690184408468979660493247030600475746765357482753046719843764370473349951646850060903938700978474228692333226661474227874851601247345392194724643706667135666153838868323592854759072257915250834048900288381926256091485702211730250742930098044568302916244827897041779444432861549927683632633558592114878225992386589744225308434632120283557121894117482543061950771123489050425798602917668692447698189315295910274079769939617429332772367404881594634373015744174286580149627110721632522697753494431230393254036907954267457107380959310601821834424536059468739817716261689242799176210808885724570512940357773977349440155040895127432437429991475329340640487419628896148365155906461484558419535423767802818563266367134653893841391714662918439219813495531717164248777995929599891983924010360585649312912365888180641851418547821114460380765279813041790926244638249474946650468637517646492402364770819198779415787577709005730701230717839046880139937349510384580032769628798558432896411016051849903885552177418164565681522897729790140253458766682328521384979269222036003053966160991281542361091714438524867089347697810323905639763595627904268145626620839760317772059452318009889094949839627872196692235693289777043408535588122521590730209018019738238287130710546270949910870019097869903251798665732306571129430356543521037273956971555871563903158777177781085355935696734400463873663233426842193087216645092878473929913565057727330596829499605716074105053544760942001770195947338588198760477418731070180111428600889551368248930615481366899454633357952345727524818956968283918121782677892774386372417564267489321386653566994768214717614267414874686692688395238755583061384418786274116661349332501535883489483775957520698448746445674540748676408036987725984966012982630409935572121350064735484507239060481999884867357284843369330147285693727736843774765537599810150271461092499914185744693319064823513418483350703203328788522706581197895362335795762010099867486517755207856814660149192483214940880088300075903437009380264469380161533568499691355766598910180770141169728562361315830698060134093262750248819491078998678352069380383596011908160904557535461802529037409344940921167012443833359477458067655347470049081481620873952940473828644469719457463992289051963726000809969987219883285847962839605827867537762020837185593224221622638866849027600817800587840863020066828777238252851208205412632549504704270907464304497915974920324966806794224897323604251495757096437519041814603267970509560649809083209333832187498209790827082416511064282461475925823131727882788718130187203592583170068005509305084942500443673561654374184105828287525744605454448358187373909445885834420371406622223974815390635303129819614757477285538434704526135036116460250208998757803997306984150902392242474484678898648958110902179265984652659289441063989229440013570586501657752858234968984489060101612511851992180580847778101780488164494191542455020409248836295430202455438231175692275693698462310732418887560072412161978962926464165409785319718492308716191301579586380330929862203240430576352644835899550553773698335570808093165460299570187124213965085310068172352280112095048374850873245064876955636653799963637162528726179054698744552357655728638373758869833768336238300693189837892779341880197141578742199927701412947303601212479951285686668109428908797113354177830382798154764181541156168087438418707828796356511924971092949632622558161031940455005318698978309348462667379321855031600873637709170324915097207506815693941225185341236237439558139411349226347994428301363197854615647350495608149564157175104932392315787011610553158381874525179899077028442398881237343915429863788300503732312900426571522609171415088888929525709270610704760898165454295054336522327881341479874141088967610008381550630372415699800845445215814940048888485662302653535413635169781204403169460370779091043979466197287612446535129979574408478218949190360247928159559601065009907982616054115563543413481306433468706328600219563613285436373396049014522179944636371445137745800455987902386760627851154004028071874587162200975849385844134522005748869406809939400643563190515276111262918382566571091011047493845934248676362554265428693956397756090382816117946029272810499977871341250422259809754544905510839618632968007972207623212009450520345050311378731893226631116005095535733928045211453158255315618604343835512851061733201101099522345502516041870554299671037198528060314733410275931610329610152922177086372932623203403379941587410865968055498255119950793309549549870125356713594910104194620491117130448850745107172772244628966655419382460819055747520616502525589614375232888239584217522263337359813772123548468734938653896708398417073219144564684569180816679172229130100486037205851204484282100286921840882271968951254242018230024884371511734436375060336413064146681377792570914324834620564958592583579576493319335568135119115346437819019344968158378415557288288482970509454271198614755847257780715611861812723130371825676974368414855581102986651919902293009561822382746241069638137209933776785490692484680176125169682454970055604055119593186212014575904096693197167456493264314196465966041363535663987017772570637417840711431084028523183929911947236149792064230224582539264546783605006526772322904026842084606067949595894138875024172921498608766112947610929212596561883128174116945513087651557012781668746863391025612365342821147734422028556902230064076544341372393446069491444991412798533312988801804191747417035753578897092099549020336436806383949931694526319449604599237299815671894343127682832713530905803179505184944241638708739518482511521561140552132887728053424863174125400291805123047217118544969986918079378044342471565495467088712292621169369060902848314674476740440497305717526714281351996496242280733179811716230214821200411183772776405370003381980427486220795652521160195356912345875757738670963422526195649867995080086318084855679374110212551115539892257862015351818630595227491898536335372428939235677330512007822497586163247419217003476460482187820834565187496980680187588568454518201282351360524585851026064789646044714522345983277386562864593552669624591788727851061339272510061329550750562944940979421856491070500969036138628108899066085579036232946697719698036975092530792936872540889667490992837549940284213297030467965583783788567730701194259411802404722727280893291557028899680211103823766427649270380485518231661697380689161201305866643713959423328024110218227611932914704710101970768384411551646239093687143589896026849022620455460503891656949178952143248538224222714392536558018204766642804685873112794191599525257258034627727474528339798793548736159509060802301301927868737560908590476880969317616882663405316706836620199646504943880838304657225779402205314358759179981351568400807808986692251396664702130792537906470407490070661459147713037321830492019683403583968009203831329746327100288256006563672848767517628888961202415931700221386105060117383120797594121951944418851816627514292513794368256426033910515807756783946503735029397619798841247089863720760832490406861231024951168877162908614084695376241017113423122289438692433652045225674131626121647037242961732635653538504852700961494429021969621577941916833430758554331505445555700748739473227344928481181113692472035556570062833128041567881396919844549189094290277242454431385090585932076891733208288838361943844882746285017300254691870702611733646254736116293057734300469983991389082802666076847518786726490027402596092777610809914755169378999063966059887639284043416017389236453772578949258381032285133629964814978786987891329258427390491446780969036676418838894995792724065583516318179124574325985449988036828359909408313073302923422362572493726135653042090484356968744304781832570363032132617661530328328078951882726974527697978685577512518299971104520753856593095062897430135547083817706644298226631096221700063762538780261866592874314501283653999184407988894641781618845936638252191853717244916921581237787265700310570119972267444648313372309157210148755826396019639515331898695653537172752485055183397967559697509489961056762262125438805828327562397408987419051787792916553270113473946167207314812005225040289189440413566311975338388215725136593492007880476445200776199026458018942921941253491399230610714249393546656898702978074930150655338229219772890126784650633951860408233980905812739868448132214463023956747864243806609270950634195075915141936385478174932537438397402085199719931482919880671939889438151542227706770671691998432265203363095909883632647258369317475144383782314531014862052133708774348096765638811725836845912882788516734370819011961789308187941026205969654353601770428255943271219950916128243146293590401231131721029625800676584129567124966762231364115238051973208430779197252919687369486496061328427790256754102993273297633423443549748759768394429219841767657599112764980397109836993221240321204913082847020735289878066215413178433666322977019801635226791319710723861517492950842029710240388901063447247248493456869952224132881197170739018801039727113255565187858832817356539937373110067131057874735897117922888755024141978322947908645803497448465187747126658000496038883357750666911948916496795793174317561149620326348921866619124385580861944583949981152158059042489696862727689777620363412065585812958376442852737170753573743909412400758770239946540275105813641307200727865094699572597699508454961061525319538392523897773233438976761239391475169632247307322454265289726610431682504714515733834099586265152920097170996066856834014358224159470003308916093083165213175501183899762408508479086514384933497788571500672876173897892471905308634325196130380176629017864522487867916907957379131982810531662311075243646126280798157455544783637907681707585015727361745119974854376356171702167809644527043853676391628084856081725407907881187976260616555099478088545933784877372184816197419747292588886876965813420191144567519442968572192315431788615990469392792417033425647689948258280858228858372381605777535000474288912754058352485258477306849842561618728022660569464335313852762566173208718518023694868324602950328856249949408285072053436770996872933242020077090604685807064107510526277636159820284607459901935445009678326251365034352553172884092156127990564629480966037375071372529431937509145653149854717988045674689583517239208674036889379840511834824322219631203481360158850252706801288758777249042005297388925811421002198312813992796642787046655871179593902311606897617315055170909866776266983124786664717270467586060081736522393944031013895133329546203898314716865664952109159443562639651209027196092819974263999336384438055392657861090584256542527094277395108085942500740928771707295180904021497775644246995882724279764710126126859736058057513921804719573710702262722062058118968463832294181309750065052865851215204425532189975774861350609077054697987411104387458895953537821709894700068272108933556073353463570082114094905135049363316566637933835864625723236688532476402634210916345437315562195538745132195706781708251558527252293202584865734197467466898384827644893256669904086196236088309987990512817411697999900370252218320616381488730126098295615932925710984718937423938815683382200760015919194300425074001040737451464970775420398604311448989380729775260563191460115421640931173981773060118999246042843583541062962681482882533057220512891312976134433364773941532834805762478089459243600668312231390055764927106479474517047822135446605838552737041692537497740489357369002970665316579969007805918408149695869291374073926966954578572931076891651192531021517269294124397837404944802147833592342385495244828854340032862775562807288306728536421462155516073339910558997771153085914914473197056869338866884152652400227631647559239834552516171570496803215222887786487732245246153663683274237074744142128097935692898558052077986009668703401279502332562802686456731918017118256831789041124608940670197465344142027344794694043818303253867704828427717166442028947604768100401247158355531941193542117950022947225080896684122991965860847552590580372897598277539933023730252791620538665644852632287828539659921934240877943623101894978711638519521899390026280249980512700624898992819003457741022770508330572136116622993112973136377625340016430105610346851214791482462591462509005984243958542823505682397648439513373867434382708613413436656485615377296644405367683608131820494556032099330122752190987354554741761584285312073444098190620564899153447088898627391765098761135644810929470601785403405073316236173446603989283610512727907829855978035423279454833508850807371221435740085372441539863643045060262114116090661419768184702623594600835527213256605038945000264075080357636401594181645482444039669862246563364412638018188863009410132382622168000644659095908048253243467673707539925711024600170297843640832484877074068521686941795865125242608219469599215616723635608675023516516152609642413140681080505274419691624117633167874936260622103996691539901998632386538685714044451275013028045190764166796020472055112812479960213451954496848369669877565685548938905857558335722449797030281390888062943949869435577183625862993567441563156789702106337281046661380745478343080299575091017277171820992874320467702129386721814854912688222111059057368430952261731788826205313568466221795525714870458284140654921591105964763228218068717778449209183648212160727480728294893494205304357343801103573073211649175166673886654018946741575564418170892235679754068430309602527700587162734515401873517271641534713244084769241183586233402005603415987559394112265368361977604015892910893991560701734001080639088561779278036551609418906979553977406277526035416615863608409543224851975778895023406778792111714282396260320656346907510593444424447675621257784495573153015738208424166506976512957439496511638432464002733409194846326294697678721762909203482701463581216361391586568058483397119251677297626362471476871321214863799787050016007824012293168375369711434249756205358385279905632655410096204565817707586681489989848011033854252337552051996582891730356086656523759240665464751801849391468760545827905534709857451085851096611256920728064929765098363676332314274523047348955361184290673389525878581460194537127576211351099083814258942188220235012357671207345781043028807616346012547009151502170063574897690464295914967280737894500782237551481186523840297728297510079549284988328801735379295007846596882125930155119430361396082798931020541501329854857904972906244303511102113292306169582955811308010557252547425394819688172941040647774249654025284998111900773558685593351038279910713243358566783087972097093796290547005990387650861343964319856308598023294038509335097928064010092495308831889773278322221587920474046896328176726175985400711827265309167621195129008678901691504063229184876210884102161258888141632927991968995522562126202303278417253287221740371644177773632055572893992819903526642764386370512471051761198504669492664751956176265221586786261562170104630989711452463745252188311885156528162378833666322323695115800940152000898546800606885231184035548027954091112038476299278042513997460990010174357894068859215824895572035895209853974977397884670427666256821896605692509334444752458069092583540081341748231276300279589259933914678214597520250952013173358071849849300128364051708285204869812224930557847895383596281902173814168197590823541578918045625605866912527171159610971258325326711405900027699500814149990324556037727830934581498669738617450849273911192338817519608815447296072820761279003364786051937779155249170539156239417008613152676876824151315662022309013235367826825953488631511449048252094653175631203457546408326785846627276930380648445834128196579752059231499099637132983477580232961304632523413455629902771355454426786841396993851835271580628466546214339267242037012499790830941592746731652745256736722825853002151785886181385112817447640192304230447975795011318411677717909735041022183370622821717099931286333152466546012388362942047661956213423785738343964291201557619206812693531975180029625230080021033167223239557224189792452085658327260359876563872161016033368119126052192834459900994780692274332030114926899016102670672039917159730374914161989932035088915811979588787572052978582938903372473225398686871291360242150661826151116982747488582646551235377837850558393696617119473947060236836907665571748851133226918011354730358294351217451982017307032330555524132609551813804297923107991168300401818909257264471920434777427380202316602391980986469514710601937470311521171528906962784485235575841777304983915871919629154678856126724767173483030211538130406484954705335667190761056653168074555852316532686115365219254201405729946700688533111824168738568616401936888654621460551634834832985660077766125821540745818564729821143200218380744579194353385675873599098459168038425352741631739188675659757112389320499518158397084310814911360640364249809585868169502218438825978043618538384334885621902185020454739041454371279406263129714090487833275181857347008494984005100375418188974831887274548883665336154721417118862121406535154945551575960749683141854325534096921243053764211339594469088473566358785251335609309931737255441175503819157409215776234109573137597310513182785394928107483792802343783481131155797670411797958404077674035227964017619395966283332812693781275059023540231151985815134545185358140507386004375341853111049595115090389956214727321040384591700365326801922775052478071838676686808789128211407364110145771894794862569212031188172941966897608020605377642920291311145997670382853136537889588407041775678234211425577352375822628341453184369128269825853838932198236388435421901473731168607158534092281474983372814198975848633418362922909051701341902422566159749734118276995906095562508268366076261867941364828913721860613640099179486953080361250943861723423306060564929392786139110793842350055207021217042950780042394224869871266639361612419938372561768927453166243183247613324403274044678790820107444205285048141063636513332375225454535481211295452775126852762922504499407106379708964469658918838339310869718846802409016607511121069259687220399611390479714068625455642979807017029503453481760748867483070252872168608690413275565645772005932433100679111722115551979393192056966455322240989379811302735842346072477065202670229113780029591536608851672199198864021651920095759503912383777469013478968568495896827462507462389405979462245138414421159542110615616075059923032522382810361137044685378019701441627526285011044655156023247292491960926630560991008542906441264896955382179589969934970853783743465601261453423754449455031796590473162126351384970702816597886253728772822702159869513073131278316732173747540227310873311859540314315249045109762380283201908699398521709699663312738644817452696266268437596110203456421930734867687874436394635373610473443425785571381638984341085712716793410376266831993882313608313661570540400152886041515816981541464685371360376887475982082009339104985199544426984186892192717584366984275330474652083143524380260359127089012321146459751120450274521241447577036802457123951730225672251778663008425581831020974732647204309289710915269366059787838590406133999971249792748859103803649233494722348188085129026716496931560830757073890880190325482510277074553878910939992845153637369944543292001528302485092804395678547154349140647330385666321884509080018618491576273096932977690196723476929751605095513670783806485797673011930688460607937154932528183551468611937419743636511051747350601973922754001189800473004849934607292840867615374447689977241940285768083712912962800618829291694717079311795809705394816461298919708042605980546879540322980089537865593924999957933120847149120777994645995803804996515040418114341925241333739565900538816353846540291761946705563200896229720783483715924236143101007290745644579307436311353687037115287080535074686972960936477573662293712261091205784053095468260206603802054055171198622306668874356258930624073721825853721021313647064196562196424156811028197510296857289876201831346539808153256424536090817049822489508912690243570625222900847767235655286086392801185447587895202933815539454187528277893376733412970861633856991111778819570948946439852472179134222188995673883808821091285122270623333505238332020466006424693316147478292639453167900309409894707427088279692128298402915576777444454054631742336200052165845058601653613284814281177665732052344427115248615386861701187982552368901969977947756712200135855585698749914888160563704899873171022668396392294916271291274399897375109731162226761323233340840229912711174653992763702325431728628370508219246975186908602650270633450039923829937188514345986763016370665422146302414167573272765623747511572762843217149392282322232865366345412946703519232765706976992056832010146922891508941181459334472196386377082033607052541240371263897820020669691093149758330995185849689063364190384021381675668559160711010549433431546327751433250412961914562653811094965355105264905329727825424540037790679330228553082617743596976523658955455371320470069434854319377734891039728572795814398303007759422646522543846321412787279402440314821501646724654886168770262169799919272044674195171713417752405215714769826764503556558344144250233583314049887939678890876185486687331186839224484867527407108916524806356957461661152247709912546558385531863138780803430482112611527843226440631199370908335467515232397844196992289257080038833857031303345354718597544528153986541066864190063362723756714502624467841963301012904393968350050455889367220309123768849223909620776668712971799102269931570075811280060927468090713705878864328816208401509084679632634070637068469196524120857441083244990288312415266550098851792869051959159355209545700156792944607555264720484254385455136341733283405073952088190178689720151809681866065837028006363328801248440728869330265341631219193183999853737965177805102730326343783870811097915384579964906296225158730651241670210829138846498517511681899122972630763005322373269315680965131000237532443579916398311621399287511834241813218129280576270264770243573759520980545590071392905244837457269028744065116537728795088519718583116065372099843419759355567859378252984391703658130683414673182776893515152782690262932398570225518071350094308167183479531528991624256229384590765555468553592406539458791654060880871501952093197302436262259722425937873302449401714394063586304500843685088007424107035926289738669620401270374054804918593820344880614711626268007213444132121320981547340944922121169923412391377918496619336098460921192774689892078287788185161715151511660963031728537940281201752402933049213479904869914741484489767293446028162224677581592693913893698674082989050834353656300581495704350932239244432106727911113559745854780173845536583899440997347324561959785214398378510902776251532439107705398741374702724408676899370158115206782339323802743500371299912762488773868446570154632131708341540082329841619449682260904265640235012550317735081848794959806806351822171217741674571810733099810449700359968907325117261901247654270628218885713127622760782892246755299153993535389629581435958380880848918621210576635885004400214606970462166948785509335166672205590477073168698881868678443198251887288245930037450217245196028737368469573173988650930613970048186130705733916095390758173647021790070247060115197579221640812387955276271170729552353342933204452152596038808168163923259571955363293662575393779794976074034485801261636506931101152663153697518920427176249111330275809476235805686090455755452247469166103861022190818386359293202312121544888888245020650610683899002933913215203864004996913778605593041130533401640970190610179047492095260138489348227345168008636831527555123284265121638445486040621932331935492171690297411082448581340399147560307658200072715531533969043650446289302779415004451613641935772382536711654174146808403138297560090523725364150144729142657438278503146183369264829381063420377773788693273643382725911601386766404913438169892664291982861897109774101141715662798348342777660932648912720010286092906155677125551462150606936277691589107576888782493618270915195592841778786589107515714034418590779742639225641792838293417434537513823489373564055233212229677296030527571652428101428265067987762846485923469825295480250658292359209852139341095727391041281132841619639084119541484285340479376961383816862633747040270805256424101326263398294005387746402664127945347634925825559812449836616028359929892338504533072041899711705534489732086020019527593913614010486287409857196831323304098831858334777652686745624621573343264563193984632722911486135193436944658263458510249466300660460158186516568526667574185573532048048332606891960346159866431158666374288313429821323762008443541569247411598242988578506284161173886292233739370086577504794771904497369381724959276306906008256024465223877425513405757819010943781286071008174425945575886863462084433275158318830111945573215717185213524002162981658653144721229585856801735554444317778556065809669092140327071670252822172244324768339501894814380440123755825364398954873813264959807304576425246706997881283080750402632529722368821532239893198737569573003715731416086540042256996300463619508992269798350204155603200694058704674638453928699504873854745697671596383297822452172307898236071467341111692920299561136839910960688635817203933588567667588256340871121585998683549521836272152805323320325820209738206973011100603071448191820437837536171640660315574030255602509208986925249449117847670789269350081833737064333573331160727654305755619214669043298615377846594611890552275116541614429016876110485088436333494860394758479206724918081178801914375005114308148596187491686701141995996621788019529443400390116125135827234322077947231921177906780967147970690236928723671769655082410626242624579815228989072345240830138641771756227074080248395627577839634480191244018294882395897991744866795986213186521395729143351944076672721124248273104361995106130062004582286220734662005236536380753960474808871026317823960093525706949812505624935962973013478031408820178746012360753550393605649521927227493115206126454176572544591670641153982761717698313161921998123108854405395213837988541760251579838787712786566064014016138851654485783001076414612736196056844773287841296654127393129448001253829510827278682632244405695211995134185641336287059179103541321576530983549127262653488764439285517582909677210458119033393249784326202208659503939969755816820700832907454748174343538827475680836301344949991938899925004179647234339069936772424974216857287517630960300875741384556399718407001708353782983571155398944899964223377057789473519585441907678228727509097266303749187590042672657738024260043440529506951217175293289060495971167684583165947473557579994659846174161737255110419474322793437604650247567903701947259279544900220011130496782594528431004844035132696328891633625624701984068862118492697962760954925923139317402506327937012344853420342711379262160688531634717585001901464127962013074564672866627532854347491368726118028815227128596971946674601636990823563406603784073114156055326713232242494104728717597609248576523159186949632847761622395385801530384880453126598665215703452699667282303341771091871854500194327434351067465948659437976765278255191729463431866435688193866238836969395510250126401079670491527462020542982306971131376846852198145095462297671634499792313450327731495563338073021619858887569340053677486987263584722007388892303896313560346524337223487109577104965288999457269832106590411538779009404895204521073486896419310697334840853654760585508870649145755438603921987045501757065574290943402138151630731139961825201217249190803354228674762667954824268071154466867075112853547988278298155347306664502584334657943552353946632563845162475108235837200666885059648562803580121656629450462058168676189392101822027608244382417515957597380644306953611237663071602874775091754197234827738362948769951754324801954331982322537347209797249401575626576294245333963849001621894635232179102693892854733733994776617958085172525657240914196670887109742942862589433462669514551894716559459608721806493154455420277633753666164042042930207546578159063393070933486616874189057581948974089488746343523155029651903429868337589123960190389567498843614809587233112579486980709033956060567280126196919642432078274034170736352877316139645678904313842792299144940311106638022829909444174652872231062023818561842364356649980752524524820730188252639496672171169989408236792009512273337219288177610087356748985805836272299178353585222213966010927348411840777045674749566378564265896665730302519337137071771690039951138481131135346891194701099027625012980575408557292515583411472053190274271203670437301478518100066984015379264061784523920681314967374236095453537672640676763326799560328961685161975221075311303135264561213715053458180105481160823948153274267562647671216581982415656367021838393005341330234328328254807896665604877239989027189452287971182418656918045824456534738128577267798367687546401061350723288017197063790385107097534725188052978549755580044547527171145464496032007608671413144689119428660594771764975222536921587546783501523100464886055140933125370521673951487165451923217607129122068989225391590063454025198693251342055181014494329186043245704023970586430434748788124968634541289929302334436685223533476872034901430608509789306560569400277208280667911052448541377964043349750264168087024244352299539956436370601102373098925105359224436651673218790344276098978927927929396205327041101917190411888946979978010349786232158609612068245932820395463036232463918081006347388164799741064370940882454261825969779947717982562827855541235537528205724278883350854837745136049901208590526117681078579250343452376439779982678338435531539083562264217165838366514764334595986358760532913733386128513283902007968214556269738721788909785621356661590152816411732316283128028937581924924742415595934792362657191538278078971945345684134825909661731751968659418695180493491863472562332839044715421956655339802866439002536549665272068473858085411037447579159973001769446714543737345559485069623373873773673486333629420158196095256712455944171446578981146940753797069391686597733009299112937176688205921079720006149764577521385559513083248194713967040026367823200511834962932812117472871070928331465991512582751312407545657271077718452525831685594588601931158261124636118102407327192298809209802509200675407808544023674078814216836410446342764314953040012195266328507269650164804271782215348923404121031422498722870531678083324367519917307873650041526963103301159158525115486813963932440394151055066137052283863547859094033653308526043405647276573040543904293174979291408576756886324261404973898941143711677277998731621526361310441920416395428060952742265150817167405978369263730741654802738977976874436418120259802603136256052159885865756730231738076856385453955051406276857885309442303977862945924988524007755933867073635540462538052856328325872645584919734052310067443620834643601899278970989537894185043848421766288862559091303580962216890451028634711467937253155225786744020446679564515477287107417664243112011611699161056388573983583122383563681613205984572066129313335499892164579748563903627032292945536469723040253425810483116686202216280495867681140588297130474605582804776848118367535367589373858916583929881881778261496104232574914167645683908621632104371732657908336402478617892301906099460728045416498452033122484584161655292760736720095772404770123699040077207212445674179512128524690806421606949899957555567781680462439096748118456845226213803458028210223814542164112584326142012745317860182748751537890762518439333179361172024422048509370848348159750559947963678245313889241765092698338083713281707653046888123178529410754982955390970018509137475813637092958062409736267092178611764724459710511647161765457893532802719616560079977729470244771699226129087836177222699112275392847185009436131591946050498341936019300977141523588812906299330222721924049501702315079329466679160933940170414349170368629331805386947345714223805089746982887769439977885621416482774326453013895257846277819882232911436073873757588134516013898362369764616709764611754622890439184346504048114968235788966707091824792311354921911850604585076717806979874844700844776498614218934818351982375419362378237337181079137043333059342474019669656582265082919120048433701323133823025543987854765962783474696052932125603050490702448075376612708785964274788066586625330602318312902462718852451799866305330951996829348946790896367819423555076971799916590081313883274011174228706470183316739344443357011706978224066282507243915085482524695866309270655144177664523347273455420626496736704069874991837395288185580784933961971802600540988565333148965623976974912480237925787251149911451102415232995432073463500188886578617314327642831080974315289027626282659133351521342591955373777729075458166116458009528843273148423972290704265035530564512652115787562360159496966238242952812599698939210104362484151476467147777157335479219423028734257906074789398145989134288095276110153235543602252120809657115543978256609380296723515099782179306799966755260773415602638898793800906267008053148837876071766660952353407550663481617786046451187767813810886997398352180658380493677276831213814132697201712485088786497884946344476626093459347726938086538421266319278883984377256090147839188438425904571962444351630224718037521291935658166033018893107338994540184739195799543007485298454543691530210157936041653392133608391511455888336001905373977927709376482821250419001450442538813366716497604243029987902517012486623065089296689379358096867413563279045365734472118305549462551818328426547554704796750457949002411541534279725757648584301022120530698513874346467580795300798942722553289378485896832611112761205224540740514852693404796617068533157194934589750942101477066924676463180354021947885142803717316325729049712294108353560620534054666479432513513782951343477473961596940814188335726280646363159557551557324351270670597940228806550836705562164508919871790388188324225327807091589090975082573150034253475110065203482223045336784704980093913756465046186086129668182121571193288328444522912947127231602022912143650790132443617836574765790275064094582370408852768877590221942762979520736478383440118655162416539421704472529927107842062627373470161775029029515467329286047979338541609308313675929956663746692791800658154522981018286722500611949925539453649562109890076764160127731932943939391757568340447870786989078179875196237789688090159635054339295924156110698705127731043619562959402294031849329485956846389072335163899448219980108225470794086102429214577118318898400157782621592937113457373088139951764652261318014113757856338791703222901366607181831834541430134194699411895206161023167258928360220055106773916350958998461328869793891768531348017933756157547452595694889707822726014928906142460840646924709669491141675236976175279415005904308616412896252101376044255956598324683002558343492729336842075028350374429797518755552980407167999512376647161554866624005223880774947906951122206191163122646483704539915110558120989843911276488607612967462118666307139834974502505028467415369483670934755376214214758445311521777898277694721158748638324208135810571656901635712775684542854485595075132053801019432424860845096544081404900193651622117087511454630074234733907578597944360563078705537817715537645211655591973228186221210628532880822782858351752164243129573316031684697504254039500646323110718563309346277120210211914274871242444852905627522581446458494109231476434792873271667120223451896264262123001077230590566066314805443770690519777431868340469064071468131615540767143420361283753208667367239000877886927328685809109541258491859853603197434024671782796373584968457894124667589001292287290379159436865481273990898987784243968534779855521628745703444312066353727266845607271882562661710213166375574047170792730356159387384835299357694390518333231353554385683443430301273533331635302881024459834376429957153841844921141425373149768842282734088328462077747786472809213637353270992051333294244177214163430965899482890125084137963269942990430869120410671297491388832896611280488266596465052349283009438904378012022380942781705324543678659880924350673527196640318859921980215279552623932082368740528905857745341824268478442907373559204162341425451859301631155411583433334829956582162239217052581504385446682520511153910763748853610716683096573798330291291071966702586478508588026891446187141201601978158339324938063539958020798821006530418037152542200536424944401836931261376627365095984859387226450169473486943884402518912900338628696020096032959912264055899547940220121881784723183869965145872910571953290127810237581132606201716102097239660932872839402453425576068673104316361428215413434117246442270491790010788544559545585636841967393486865239718139013121075457025252903552251952407723046494718338865103429558079267131000560331849283381111904369359244438685439178392507563760707660128386075819567142553717744104958005920579996453564412732226249907369789961168165969079008073722672826062041967948521163388196022408291752329165238400865813165801960430795823572429584707396555839970421357354981636038830180532835856587588431998636058065983384563010148921814542247986685174457730259366380067809705592476888946332442128808671624656868282152017999540894203457650612802699068982482534567059476226659013406686924763213174572808340973758839079419908678838840825593490616836834161314242920059668584185458587964036026194422295181773712499930089790299113046780404649854175162362726175433707825247337234553545553862876099275988694766334065106288632395840822006718591462297829372496068767611997017000763360695037789661970553473001436269616639579645839147262001246910943535892588625882716276546107165114276536333801602322954149849765736747651443427791643339861985115761206246496125351561700031066060494505655061694680600342080228804760899716567043832072060724653484100932405294900072059869021555975578398202278795792242689873112485872330761938512810550886814827965769988774999462343986254987322257252333565419787741079980945252545889715812394724122358867147892933850471907333724309275693261042005758330737125965205559508423864836483499928027497722409396516813844158434075459992178940431863991588595750620427597734467420874777510015220448604367778828539565096566165399400282144024794100009684140379861676569850880029053977698299145580375271073615283106047254452258488423664369908065886142321542341323517740357780267255514917246971275976139806754441664571348018132511258879220113366864544839128010708573695743203822940935607176864288135177949583938326602827434471484972333449624541938821608246788982937250034611136908877499432590935633448309487907333477531120408513509067268461303932398953508617388966951725844732481209536905076368421492295777076214238372031918441632380602809609863213145417011601433873277690697576162869947856157705178245551692439493534663418618459389088162110333356380471534517678730297632965802485476953968132024867868577161396365146286397825346089602484729906231859007626194160134327255035690903673229088501317386686536252663664053232793359401933764818982387508219341276759471415266056351826052968835439054326154405549723730235322361219908980658515962664817089468631686383063504526575709973913690817906504953883285158173915288429008607987535446798984376645588833322988651566961773275513610936607505933171232862173290003126089380295908128753601828989104527611165647468973924136629601546040716543445145202181449230569595338947798180294149707704670399348838765894974401567784253752297448128686893452777824197507504294040890978911047418827171532476611137380149816425479780506548541723504915322050281084034493240750946958959453846420168708589466293633743140569392049930876375897221158461779497431808932127469352519272823491852539015436401566414861858851675664526732040684654233007117655240096929573445956251429522329433312120270765418575646183472527108380393260225150308942890356068307507193374540150462492739061602665818810245506841273432722064200047771098084268735483038705098464474584141270150524705283593993249368721403383184875934613451268212501886524864360207133384559517958727535148154182033844954680915589590919781015688850137011225453435578905406779564859915577547626003010295181705632879916881421823160610269980397048217803651642544190235701508767781026844936098518205683397976077038315493523355246492190842496452507180629223292483635710623510319083755178265051450086325030149447720588764754155413254973514898834057645164921716275695933348886442297448102109723083407506200950378354807903010076160146142560532372495114075908963991112203040199834105538199127395950800209358868099902862518142356889330897572577968572821098275696417115844508105382681558897447415357959117512931458643071565963265476498255110574520794751333494916982918195706099684025953596165250601167722695072595131077426321993904593724184282403108547615144663405381181347692722053319287324200940871725605215568539904208374026847654227038810308763158224663208188886420533318329982778300351319590004167701353936864810164846969186761477124104212600270277835082987370540622240635035810211449102973300835077293926555531319975538336533697916264226249846814112551157026480388621041626705410784252792321154793844954117719753984416980715846373378144347180197827241022414214610135847359108049176158106892529265077105722392787420235552872719249560215322472560042035012222288478249425402165278134580673087604186399987074094752340938914570328346534425846338338517369947067088506734285720007989046329881741551107697002469372112988373650516603219158021897603600565004794491197231318519490456414592427054501716827115310620962772701527321020404669343461756694996004574149433478748745438944030486650237357376305275672112641271348378762261342147186989389768565664786669057555056093521384464483381595999175345382710415843509846300908264640391834986183113889378992094054509276315760970599752351538708240697035705450471530169697205091424720549371095536195813815220696076290898835014965311787641100346420342517897232912887526054771702717207378531938295104964767267006509678505122565399392405916055064300989543834802094796743939082770896601540711666700836851435469308433681953647206751894227273194494210092555460524197840330051313105904471223482447947158611483074203341928619351002249268422101133947485195443081044293738472565833008635658664738838893496897581388757150005270299108647477173605336709081081817708680272410843552387892457176558464321092630094496316541489411008372152629555019774120121516299151338033014412184904301117541438890455262713857731087057132938160530942692452611951812294014722602829574020238132442682514605447387518917387748763760636768852973772666892153592967522538331034898422927735437269633678781710651614779463311704689309676277418808802777744709553989249345964361389526728731063149465290903368141498894373973579304076602790358950563270588684688558077659836841711132039455014458347837072150757349483270719512801277390103348824875481164096760793874310650625670439095435923476810700392032677982287922121108967262581168478406444573259825344732271125734934278943430135620594286899291685874421967641988292981216322377920604355794791912825592214742931388268555886330641360062133096482339163539728298143854608091524615415917768106497378204537174754619975081456186714022472730834685614516755027132121241666811679705631066533650097498563120594045682099490603767174796664758010908116532217393379044812168638744487849479474274099951495382137272707769829938828164513095791697119861478624206311590959620442128430191303967358951809683609628041837898731552004878505013786627195258817320606991179615771220963041239176556675343967465468012627227063040458683652360500299161403546774140362141848572661797206303955494164207188626755958266730404553792290676958513003731369331691285517146722964344160470697170136885012458051975283309341120356369004184425059640898236573737424547023627270113728808591985974245745969981613827257671881428803161348352550634237041347301273714055374254241171721483842549183571033101928216413988460502321932764247378069850461085626762915169812302676698298338859367838880160227494035964583763330821652557660115041330697235566964018281031185149739689268138958014627852279762129416442671244917921769783383132153964638977000496150522061993399566701614601827389395899926292176561231554313005328764842135949097866603186510904256646610052850988789192949862898536985626410267282365378996335715747697226123823747810262704563776215804251238963512024003439585245748208716881039376951631559583041659089570359218312192869649500160739964612387446147506437639967081012984403990890285586807331872188833890236192058109999822136074940238660405423825609273014205504050636225258726981998009088738049948267636731293640817186251156441740467671043990351917418107312075540835170501900503999566155897308968353564352163987542552940809428138524613347619898941088761684013851611179118586889846066040949057366868500671899263517527217208580208361684650467860547597406066223058798606340768887330642922275366070855210514684498119852585979559754960370156486791201833342404965934582349747311098327720966880598375875579933650890238129419548713543844568168977901331077552047658746717787193782860271008737569599304975599824346850928983325779433752403763892757674738195554083112958111115525985012161115398409705233057711146509614735641133900622973673078174394972829486834574990677272638361376522135987659334556427069870989272994321397073973133412640486067029799116997632073436127600002137128423591890162147900326494435267253493222868075082399168932201290891100141105914063318428501799111699876985443340376760161993074395499324725780310094831314566579758550165071124754401560279449206000236088049546760095770807519607720047326370417974770516959763959184892684596012020356991680140453209693313010520855708058227514069438047033273573019122960295110991212313798097418080059159475849870902613186463795810710804529553814326061019434909747755308451989168240487957658418158317846597846719670567807408508804805955375790509630988777589862192112762595132399880554778009236941474991073333304807391551293641639473108938273771533300960465386155850774402669802704830164217212455044707976998693723497496656872003474007984878734025605301200514005398344507240678545329071712036980206894055470723380415320875750609242248441673105025102818475592848916543208965916409624732140813496997219262304984389191849910416769903983313324520839797389949314723277031594926344202891232594881339159737747834665295775293050816330678721386807590706632770741312077158304698484124604117690694965768891997677786549015834716330247135504520447857607523904093492552466065230152716655952833677635606448906007407046994084391069960114410535417260199957728753627067803732274860255639725314013651089472802339596997076534426230107175643810847018353329312892859041069105458550970502581378496668908415664321054918420576115096007423627211344449895620388206161124839302125627736200234467461173288785714797993997743344888461747699913049282064441074368856399608768493515907201080270156612344880575679903400933263130903902181061668185721055570840583110175333846957287737146015565034922291045914404552468248190845204619093239443072636369927849519773614984950217735945631594597747005546850831225847645702161328064807095770243511746280651377459013030361965507644639449936439426317765688119511731303757872581137155327953827192050402912381778088228161145804536794850171309208733102821279029399872769767927076039272168133872115096960965631487169535940847580425451231177873197560139018558587232853808463528730388927000025328014303867807590357302863321105988278293389447477395626611297851628967339386869795987433739643261894734582248002017109039685962552269553051031552336284140012909628640364274647953939621336238891166758049775031789344304080128888196935693440309137018786958031830541892677562414871706340541010390227115118926254006525706919772462600883260910289094119931307460347567901340264364296351772914917498678671861410689305481916009285379393692266537645532389444576199915970639419075390921106420826758867046784480327887888987597446441816638717070171104857465841199954018310390062018590431507820416212598274912519727088758553189223174387060000801164626838615750781248059490402253989612499150440776680593196117620670880727187894353582714736525115990666552941511432226471599909857853661476308150387860519227631620265559025747695477886576692954363992744849111707578701950645335878465658928641617914507697284921167915436556174479904577348848275595985753249554919727123734293612498665237510978915105549110442444819684004695436837224911977040091644375889700632796785402291896951541728075644105053064038251287332835300965570553350046311208265108304610799826469544098820061133320344284729336435593015207608355644067922225106836993591745252405218768298178306935131763216686938278652733541225804125218445977133262397851693831290113450281583300707357285000044778450308101706866571439944257692559278641826437310055402087785155293835770369419070240571975834329051030403633998962283094299073177877393055962262945140916595388168134350387659126467543577308380033582244592013360125494824554676438601175849914514698655312596385444803681946063131248273951338294801578029620564890937386423042287036734305679137572934859084591207564817426181781662412420971892964832281735956389423312621081511426215070807737369145655623770006980705359125971538019332863836285305429317491031823515294295722200186257072752244660190253994721374771851886473669999375234527986459698402212421670310828831158539887395532457363179185504875677502743703799632701829820791070031290577007463043657828191495162288997387496012814694077275549946675625832449455017721794066612675447090234322132606761499220840153200487792799661684526228241000753107652672540041802361229089978387595199964653497081904918352988099364710338205785677141887303384924669886673576421300100488282497609483804571827771145903600907523207990753422443850734984401085689254120433883972458319309287729227836461948504713993319759493320749034765278076051201026875136709903829526752453615430181202796274160072031748837558872955009406607925252789369328846891716881172232215223165530214484072897826110163354162372874307538070069201664227153300480281850598128206346889280564428431968138598288039799596335281356639875943164744356315936008713959122263203035887454166114375979073034236713685390437784388410987933252782478287718679033480202025569156484499838299861854398582291977338540347679575472213419621153616605413620665048115023491873511335696864335928443307409847126707144037761321496795591023870503572178942494517779172438004414983097452562756445057145775929356829794281902353594895467243617482853864126094045168383956888476892361921603780659110877563219136203563502061241017493099776259933445928133497492398844533099880226914205284644270673492671221315108784033177650083870933629922580000628901356876482395618451178269514169346561303153127402626400953641500220515121994720485775483266875141135521487303103675928594285815543854728215714747725302058216899754328328164935703184522222537075218053367325629600509324080385142508599892828503887475044602092454126029250849998041748416805173059555252244592238072095330268128523076372881488203731512542908562324445467539149779203760359383828048414442897448451153526544552124265460631301951545257460672873178208570845705215330050422236454009061099286312527220885432772653919180376042287699790106202364364751592505803699109107990108915127661117235501288141587164443519799153770234613121685924828451875270925482347662415773878439812829425784460336085508225323556362612813329692849283493332317196898217420951139551664865205639281637256105557911222760129706548928434437013992607736597669068295892578627743420013416795356738917460654257694175005080693535946045366671013676444474957801904378900110204086786895360026493314969765300992557445525580948474404672765913988364058908063085308576196851089460648984454339895800594165750707248027567597142010761205375737119346637472784257676613534552936859316722246127199246166696909647106611370836869074314028068198845178424252806126569466756272170204323652563784029938418098160755956922992944412200334789837273361445582427835417648174000538904009117231306319333771115473252441632268596243763574891912720989839324605388766710150635538067084333094537552115383960023479103779188899163303557546422853269844070397929527031401974620142613323091330917389002881412348161308092177376058541295893288147315697805239920406745597250618523839858152795715019115927504002824220237829275072735863988214708265563611969126155080123385154342804217017846680774222253507946195343290747333967649702535403302516822843346069522372713352750010626242635737883568240389370636194346040004956184050704895132951578212699452613189106623162644985792429625560180096832268000937408526934805920228971198678165018753299015152325881526153286741305782083315424980936436115588237848296685466858503282670363292567646970662889857501505515472180152323556242251149414653624882220838247918378696757415717017391474979637397472397474478419876161877681775154877644120820647698171633307344128347433076787235821682525860685124075449525320958348210848441339010571510966911745084091620790475281731755529034999375837272045936144072784241845744505059548921312677540802724584226481632314405346375911984426854875243722827657936010968432949244647605097588495915945263344765976550544061872660830266822751320658146214367378329189703312430100376872830322229087998464185134032761607492868639203231212190105887832767361273657288845246506120875455822718873500607870045709050034671858833330458359104633566191883166654674611203868587887214342151545126226715104968078343472430453879789578670070928964258879455473351558964878820257482750162365415792008380824634311958463218835778902344417369960893888186526116468081513987498964059101152788237832045108000015584893106481343880860832820551467124382508887216956823188402912184734400358257959217887927202836631881499857633324445286010009318678349877778261395353604496157829662712422990738553605072724136833358411100257280076085191131324210024713469631765504851057342803429626289605998549332979062123924746459610550142339613458813714936533642840911696189609973647783254095813044669904449402560625485905882647894157036890703109812384635241395661935901473119390783939243896580458483143199517787084857167574765660610474781317324954314610611179704681784152100229079359617165979425815264674678350498543441447588321091982950439139059820845132257185420688614081435950229560353078369158981613246339329893107824725988090654612201018777449100876456707062657707338592004617134087592632160461446646425985075365283433982367302686970734648598737830260675029616452155474642964524718517141509591597660205487229909838454133679816958996727518775698275446905960449483265108368192929452775046442051933363470013519094049537825479716213333319785913564169376766606566149122951456705850799807792190142294242444859009156971297081272761555083782907741258738803688925776924000558314216388724837281841666107923801265898442984414258766264021448629783800539924696066191286349649474255416652177894252002612729862723555617411739075323171783334244493192432243437242466787211372039178503926256002552802917114862871912708445365395646802869758710342463083681614525252257432456540550974290225735877589519108576771885567599916969043866353318013758361051779611802039271713728206920706194700381837025545510275851434430431859214085300684338944982017589897909513486531510950640028608591399296217799681660204336309855098290733760374156801993942654740878723926154353187416196146002184215106403771575364681814143307910199848204223303053975842304753440186869458893158267464340097843173007397839554080235347641599774849256419649303906735298552852127328519776887919707466922078833138804924402096202918832933611877578530322490520291046080393564658225370277706655101823074232869031266112064861920309227485855526332910637905479742211738825943662972574467252974920268675595671830464634892886268770032978620675386262662087462273717513051086781218969324365688732918847242979161329174300065235325207695022828293232958038175318167369767659662956152611879380353561416635639425844497842207331001202844604430203258170320395827778810319053671457064126595376009450140068420690549822232431953690483456500649155521109875872790322490897228334596579180743595351549983272270688428069755738760665619254615731908309533573161255378244382308274415180182570165225774993529495366100438738553028863049605224886955769868577140921235022807595625591054513147140055653816116279356234817653051954804050439572405075823338826320553069388022906421504780116426650768812740122192324390910490985489787788635902273118177079295246435099189639664027864782629958360570650719822893192567334575112473590121356600446668570371462594348787051883011572689171267746293251506198848287337302733737033911446172664620228868265139014619817885569451601121293926477334591944494713503587826426792745680983214665284284876940395475438604132725782911849508101099683124745269143747839175951168196442981621681797297757541891834787525570876734438003192727176183775254398171310150541460148882956561926013780616731822285487475030833376106345676009045517750460787584508951307956728362775354512594022231409317034366370587056683890739580753709470588377929660060740926683679427406438937905121012336880496715475394682356962963192698726658196661314654685171069892850493271982381831809112438885773212040260174899874856276304640937937040916719888556002233214058186435642053691083347012912561584420292349283947098178104510378212590689024265732488191558839074495104890621460831887891402111311684205874542557844645198724970856600989114713533182841915999704514426415302859468540274715893814882241393772903749737656353404924842697233972353825849746767354427078249366434140529243761937895909207953085392243043956059758993620939093684944898242455777104181172716336013107680303388006209867738275876833597843651406331387130745526539541435007954091115496919065800964416617947767033178670241748379324919158504279056573296849994724082081644545278138989303450382162950070170710890625948278110335255616926841957929057460167494406002074623188372280079784617809786221753185791782086169699403823293736441780317377683665757546880738154582187016891990507006917107476075010398021019547283418435466217141683760712108065404833003638404660309386055675215544783622684117754971159045034572173921223556695628585654578498687208166385968792516724794526263877107206544130285606521259121248571524525283036127753545913357550066981087579617889996458687602891412103888808195746081480468014021381637479934597293846143278084576947053462183957548143575845639878309795403015144514170218415262738680317283517439856857317807069848131021344505644375273340102360510762642261742918743851013320241269698612927592176939976353282692525608409164451296139152382935488704540278707001583109817146145427605351258120058599922744548304660128130344281502284181700944544641014906508133240268236158160922843050873691615015233579371700947882503565455194835905594395906920893797312877319340525783391961373984195452911723545555846525421838618784512972503396147899977233040436911527272632934502105876916001156527136231163459816911932624459276885082281640644409035151453426175177664732812787351968209117887291850854963312706231777590465623639613080774392435375391151459187191436952694880823763091337291431857863523278258161728211620666993609522735842824172504253596911979704128734017349217626400116782527693719633918378007924276385924501609911125937316910660504034225586713672024867534311694568631905330080969979399307688827838829593107739206486119826361868755420087106007269151000428124480766013147664864286704850339342373251454519342242714285297250227150604366714318577170226448148732774392731302309696556258007375739669414624214634632753764440261812645831652177487895268367072112360975455173003976235787499843711815232186726529108999705849079073155501800111448675538185041128933454812627123794696507491105564665341653638024475391613918623814871202843027002381667234407511566949841040367317447110485662396715317501817166856642558050986526242399156212900512869102772041619484425434800262494578819514600705493221664630174871928039431748553885374418430700298677484306852160709746814304142496131259759262346503406388980525889117464114548310838649555262754769008937582482794397840085018606329829063757604404770781397016984607673523056884797501405082353590918366839995957773589744502281250398731108915858877859264979367656678975416700743257957167241919039554477880639674152691135506415491260633678964896326895953789175531433769121430572508553019257214127252960451572571228424014161645959364560636504864805676226165959175727991857369254550750004852569515647815539716885235734032317404953467199545674105176235278595209241682489993735065260140936158683360784737548169909134030246477185721672459314986935173434799970567491516893436388172149427111258402047063452046760671517705824161015088473290787598079369839292158587118565124814737707624391287114606968972139680079872541380529557262310181662560249072632650390446380616142766764655482466278344971011398923540927622175416726855216471931565023556565046570685002033405000549260845906493112041775093467096936084784889973233537229369025898563082280275962729037435114832813704495708184520951815734312115854007365755442900257053436421116695884602297861766249068388508015143779442690251049403126816965342533760701289938453298966740086862822837378936948380129594951765146486811541129740831126893843221167773067805002470175316652989870247594409577369737267217229217489129329226901272959390623546436845654359863825231910644325318491749482193242720237252833668685338104467983801923959981531006183940848046566548785481178944603349736816060465634937630374412767564688166315502990882972489490666040075632024298707827413940870096745027784518033769944286102163502254035101870291342528296746738614474952949113877334771711661607199328910359158338380037853690701201875903693704038431918679327718577889925018666431883021399472763302108869726880205200191829063651789647079290118743527995144113471156631798213978475249064519886165132910662000231333144881359227732938791140811513013821329380934731283636199261144165591042020445793412071407251775971352937895870180525335921963030092410088005821880528637595706137360532093596818407502385547794213177813627640640403848460279678292140909276552882447015544517042387496681244113444043381746291309811860050164889905355252176234379841641381056332807277408013010754459087737544053439747036779920544082575736160620631006792391094819083127212898441732274354109916377406733165711372895772944620395059561703399114867342795631153442777604687188647241562906091173703932216125488193935455365888110099946042375736375076097683603666336002230957854144801668535567150092336508940018554471157396822146681941407388497343285294411018737373174611137228838565580256610855221008653239361001938524931794730981375883810774322291354548174232734853211879909809014900952207888059041589722946995729731322238027575503236841557088814485865272199140897265449651759724036353856568559146648891612497965435584247271727602912126567127103834376381613170450028298678573032122585921696699445330738257150448818938754159720052764693805279367786576060892604202123486034644395384765011138234289263523526926732542419463442486000215199122103400158371262081983258786353346973179029189851635814611441351852908340026410498559232186406825146388283480143546838824989185436404112562210090117098833773608633712448856090807113667050811317448188273291882765555077779190761966765001333048611026719672803777081425053122562943924397717913259909296269686998152275915111060995225074596363250665990263189895632141444342208431995781427536956537033034308873294184310757822343992495468224086543061968373352616153170422368247393006892357420149454277286280684298249404517827867442572839766675881601190236652048864448278850987615066829318795116283800728962015929460299539803315038493481937549677700296352612141952743521554936111681159088253689257261371599682572131580824718496735746925641367148596685244419966793381364784228990132754704506748254441249612127880436115046583694696800707465090582247500665408296845561418306760872791679372464988177533128350865397486470234250457692195774102390591477402082394455592245708644324679969840352151777611573449896039636816522949019855900619435128161492879952173838019916206884034612858051008227238971361498878842991708025558933757716968895255031417352630724753277777519748272743335582023553813135434453851904220463728811847649233034871661858042089619943647058126086178188403228094208218635805541964596797161334544189525524207184407665259737516312358466696076163260377717598711828752606539827660786836483766481344399378470907116745324420397193610090732256570193064533008575543161846004310284558280458804161932125815743946756783452077081097805943510012734908112050535623214693066987192520445856503413498571111009200431071844305897122980971488940123487133682689595074391112507569740684730213720204680024304944982068775189310888969097056221840093840359132226866945322826312523258384145191079601433062829577275131529612912783458823449211942630619410023219697539096568172185271141679024467273502867943910113291351938001369219480133601913597774218625924631393096392030949201682879905187532621130928349615395891871582572083423978382040683098944482049647371048230695082999964338682583175112363369363980493796415547711299528485050269085002475424896192474264744155556262193335157531425768137304441593175980190612117040504910704333181909033696898856842460733850079925240383342928525316854553785741922068988162477782461041000952563210382582322284688983348400612879479462550394764994907174067739823192262763425053536140410067624997667549530670462961625024071801212518254610958406288113971544475671841574583437861241568608289334959576401496047088879937244976824478123784317151495070248217916028273233791322713671496821356673187849228658963958355868743624509638251420283498264900292528695997790125630922858005200723384068175141011902398127923642742547803557768720491704509656005340210824839443662564432835703496888679643456973004732940497967224119828195217024206007060444099474160227927533174423894699928966977358465150470807441921137267595835714974988026891299264753910334703759160176991268378707461775384425897184803695158037750205423357271663737978113828284252165415379680423186142736176792274272503734119384128550226867407577819874316090092932106559520556721569078074049050240263475351654557190067045896099585421110017088189655304258455239074058107277725550656159660215666758806469820054699874727459349924534137383214129074115371436581618659186511032352769575613001361581121498009987255163122777878283869758174152332150676462350643646150036025060165188059950906627687444153532976844612110623649553254334103684130300697909169914875845447620386983670050091552213762301904149690875873555321924955107771298162311105461418179593996962632006986489325776000611470132767234830528842702467789916256532012707598273939074783830826493497956029357164616405227615879057538061239405229002293979860334855527883845780173143138227524447281806108006383865575848893324237837517823591920826211133525547972907405389246686161561047557308975918459748928616817618518070763965003152618963529849917400878637639747427375853578035293433044049355224016563172078518927098533133236738440723415767470273342775758232888639575781267873539865569316421634541507511914990666124314479852191829916110366766041030475558498409604199926597552598023905627677589385363452631669182818285526124913753373330368305010022964683225941529636034336106793699359498258481584071092481522189928832481125671439355661734163663083561553414117646348357928472832106717866756861184787386501340025587697340411900857851291207172243599403030070537461565807630874792325420066064339209336406037205079857908881170593583844830117021307699955921775550503699577643931772141374691574772710693523923363355417618113611400856334843881732500451430951080809537941954437877825368020942429489801169653408768418812835817005805450902764395838681861346036104677565490267003082607128996192420539789546886365353502001850692149535055446217873180103642789612015326287729055738247309407543784682803176388182248959856944235167962395840623118323046946078226384681133867998208842237021437551037845373479900558273911550890176880910219914473842838804866070582979340881682948958837489513878183227977814374495370091126860465816684660648113611060699005691274670146487189049667527486913577966765639216227923810660904362195371066642699395252226676711609999647985305970215117756183306813022124978182179807502177323749808380551015552836396249333291648477381497884511152564761132197788776261137954241989134767129898986380764663772893993565567282437970437838082749772183286756478462972097877145958215348952729664201621401224428658680612150396185875380136950472143733983643606094602878137256261268266944924051124907092889165230428804161100309178605461235893396878633613097268511405704568957392326291884029481423893821134504275049023677870362820370749837303652918471291227714355844631503398415791388566537600265340146787139284064471975977640398970493534317005525701082092291381731398928374346594879754388829918826963246545168974891868884886989560097555799106366969595364250831667363952627655614709915105752339032817138822352803297780094078200775807049194438308935119052634906980164125591536591518273695903623074699700106799663651998054171471940557591220888612612159621142070929701394951032384716618319890717948296761245617156860568524475083296357862692321115170898735414518196578839667679709065355687594631733744865630141166677777550049844716440643396049143109998204690836253938382555868771948127689869703506374181207422691953911133321661555365823348148994061991710866718277978004848204846693203381214618024063283187224975949563821898899427797220953286126416213366399348965102223421382501808519585677210187999039534736612908630270289978001578870072687323541064136918375149434592495661332206375325201641482954952454909749302828276529323799892479345395800163181121543436504357709499307369762006288233040313560342328663729415970198851480399425968757868492483006698181387810331375107469751666073999766080537058793827199229376887546912094546329251441183644095347239769683203256190870839890999942799055452054091486201332313898124675238267089705945815618201370552096800133301999784526460732260564800509995289214632315265686841747580712703388166767639812723238353099335398820048554465898923554606258800391694944855375458687896851032534068410316079916392218622638925150741394465348316666794175842223894221428246082304216278558560418597226658370775943106651825137936479504459223466136447013809429703648047265304152498850131274569305479044938325295421606545286819932901779121656645823460448725195100403453105761501313894882274048459823551779841084857831341143180243633696072678610405374203401515451679967643551177349645061739860492168341044459246429901723400105829409240625649986616013424637833267187326998173762064225291507241520879868494763028324857646671134551256401031061091992369213925428201373030096640761081277245204384929758866863566080432671623305552009730659968490805245613535689346673306876290346019960482561389716202387184193511025678002919430128540440287361590281101471523278405617808239779263899027891559722011460083546518440572977178183269565874189867495708217965810992988654587019621799624802110017464338336641557253694332080851846792437983989900301299313322563034749592941061613020424223245854904299545317406766240589201233748549031504520186310010618309589462011736582559041536018849955736657861860500815241143875382419377912994644064479228743999205906283724688200576498556816726291568544323340988734673589219152299972003869055512753457276384516275457968451512903570285330080880803441502616533108458516317295106348883994362891871659366332827866588482484580813172852299145442884409711499051144405658977379490470241525134427150236101347284574213725705411380162807580692277239746035380131967686330981768743593329828523393544043806924741748652440716905142956865321553593195374756803805895085230159599707905833664261742902560974474227570149207949293312494890179888394474138082437948838274180469358837458730147507120547914815759951975262449599589640304182097481952989902146508582548180480341347119626952489713579107983555778557081213539667799746493340522366401770496382017894855589833942749468508009600063587768754417011751841457163062050303051738888142735906623941408357112159378951101578753922341149054870603097512989526772128652509858669015599535923908990771627155629951812372320014839536163083650732482767406975875646364261895864462013641135101832492738677876833978793746276485531535967284463752045287058548289193481457233761399571467570565661339115803596523452658524338279702081657828141303826775694601783059834241469136293390348540101480124568646499910694570171687194467071871638148860393267091239370456985828960030285357123989315368383337136479173566554767876856436327028439173774051806239438413980737698880786390776574117820755510748392067239755865846640902649306029599176277056848983824937561675199770671839793222170493771714419634134363150257972575854454701814420706185855240620155935938585191182078594306499326864461367361421171387094237915079054918984312967775725235029382148374952552307272041271166387152196423677799987286319110934623257494294350083249401071482527096244557594337479521263362520961618716035374631146554563854774972098406508686161023620000125799302660012565927392508965683151756771914909305475271285452677862001348981306406345075370268060685796990951525582800345909200086084123062704361194629291822345898463889674137795300624960902795213141076606466855131678536950962158507802548435961855515414232721630803115253542429297685486359771007699119233200020854018209298888208565226535624492276724490348397628398020359221214586847734500556923936024520892741725285884328236973672868936602669593934766537760409081892451590035509305962054742159192177367220672307289577374619151507013501271329562001326660669595936152783363869270429873643469408076179258668972220372574848259041079960532899465617870947315149058947884133489061419161848503856278870166336704409880072469490993115344311610579553527616974639429305647644177654259765437124730359943294756325596891398850904918199521308077128385673543410260351776777686241421908409769591151418049057294179715968980515639598095627896713294670290745594165061680380110054319550065812337040221308528036507503724930516129348237159414585369824529959507399545653455240976844716017474630109260526706636316653718305440652324098068648482621449368895618398835898457627402373348515418332617879289068508679091343046389918464467519900476123242524700788347346969181531165557174441299903043440317408129705908815698876127280677703894143407266078479970495587207776154786081267014316057083802804023942500602141605470095651317515950821514347302232385163555492959953899416926408026410232584636695587665727741456346016881192881947248369617101617463819070364589629460609519884555794521259600990385309765420123657392640414643239615293707337086839138047604565643925144879618356292002316541721084153346772631191928954889083820043241766192480486506003155098082162737609749198549777593098037923131119000035188626642353618129592041306597889331788451921447048960423019895414588377415043099597112041811869208677489129694732118660459092752112807894014037128132213230207842329917868891971162438389954990629136707308895196126221269067089710503330843548361733560549164871057280770857921018683347898616933659641861435549297022703497389540368165297552110481177516508993250345444022204904822430462934549339434754438239767420675510004406193877845727073570229665819220064757833869657418622848154501040760170902487717183509723383987869942375181826100987294750000459794790991554190741894194079297208818413279331907532732159051894268361908553338866620063472488636689011146506736256780649689412150364415348296277509418884029928535385202569101187660839458209704013027173557803519879074103570317743289652615516015697994108153779193007785869620200700532915982446636329856326717942222135994938795069911537943362697122478731453040664273177111198737157404272280103207277276742322513206475249204675443870915736457658216026757095138357694258306625395289128936964481795933402829089484898307423620124784140072636669935552498456996809125916330188773846724607893373638584105033445943423176544487996881001544331403628765811412167260045163479148520884464026009489653430581695442258667937578586080392876356710710435674159586141273561751625232374821567584791425118021182342887724356533325560187459847630177580426907598294465105883680035636447339317870976299345704826703846677473219048893576093550642756529618271485787425492995755945392734110764970407511240585258064347200028347199480298489654341672717100850370144907324302851582292941621054784916741634065814647789406655241937028416701339056432247533828578226307815196775840166795226562008456871927080018666723498243499042171447368128031991306191851476069665164451185551232816606437291212766495586216315123088502266014997454132657726264494691180236337919595575785741832208523055925257529989419617728035552156482560699919745692411498866470986203866048530592766531819103944771631021109986841952809278241300157462528594122071155850764399351296593520188659460944137918065941062191990029109460974339994571492663014456180068305281822259737637540121474386769439135260842757809226094832528862914400194591813561585924713442581147691338613393607714467698240866944089834654309699457399360352898918161544299055890218366290926418085971616678775247142719198900251412371853182588170214665633018777168493448606972206987509407051049931676932703647445648988247139817548145560097344011512358253381024756327523522664046697542414838130118064029675489722504578140938292541573865733044275669293647265827539583121579324842096135664738157250140198102518304920739968042794236121121186045872558522658995127298006019060233263440418206692270465886404477683824728451166632435934562089151280287735749715026885458280582587925193872719512708656577934654767807495332376996963903319840811491912096469094072970585399872141153908681617874259648155063311915671440646805424730893190706795631737752396119607240648616470561713927307861158258849768482118299350239963246774315941119811511219514955848396096522493862016846457467231834427308801487909675504550369599543261149127368067217009440772664352641016068087138645446502042948628302929813635526741466524731929212811587447071213074239522764741088517597512871952375289483238399521500203155514304223151714593939644845907176586554571930448103225826386167556832369208940723849341538252303053320648829122686372325077123302008485731662067170736270218502004514301030034972966733151104942054301136441051710886039355426981621909362333614024975042451660494153976441625272118598394744886147319802907557372273173969652868596978033868719808271667339621786692926831219942662820171764627176836572376361537416409909910550709267482233192018850837373025301284830698722216602023278500863569189295878212141307208297108395405897624884097267745689302934817585815343839423645148322665137662023275024954180826546344022708373361512641260250942148811588521284210743477320408975480781186987190437550018450702144314614350091832299530310160467958208791063946876231218449681724412172817295643301625820252026162457781155860895226216215688705320315637381446480215271150638182446293418102078448546875613764744088444853896498092846441299314820164144077960984844655911548435598118777829727874741419432504595113654991358362218787969906459563621756293276422666924457367199696653594323333922942187926431774520283281603145943370069918519985650621721153526119261295602995949704385134899754357376805307632459873465451318763969052079174775698640120602613955744433726405521604284851614048850921628830733535983004916957611472050705383638238364933984011018870214367377863723760989865107115079788796986310784175716438435825686930574061757200874318554726491442145007986160186290810981072789782253596482327022918505795430404466655174836255998367426143082023034135576496386372441615697402584652216898889054956085391151763242555093780022160817017846633159229691694854777052424211124981806034888101655254593119763066902740668018760264145943104311617507147497663188149540221065748783007841620651015485746871052880067527802858287319578642030056828874228753612968504556879235923200586807497139945274170265496998823393979773067683263474823176962351961320938706813395466613040750080245011234791629395575942358207763031295352961438366059503564767609010724273701450200325230594423413123408628589582431398037407820079104201137695540127686663379530086537674792877693434685373217171591966510913409167043467934554046346316123674191443438771137810417747168271231341856535023245738942398258551006574856248741748592702621617882721280962254073066413073734985951100843042922074188737224239419377652630586243001473642716728428988483053422789642793196586939988435823168115815116730091763622966317668155070811777422126163651410978179807091702797003020667035333429207205332574755003738757214083898847783421555379460987580723866274445869462796797827775066476045079308512914510169505550438681801793469000459670118765711512362386743639197670312589839862172021858209200044739611546251564728436404182055129834253529581641541813030498920101754030889669738019474902861714922168186463057347578423447268085278516451620041400669604865301651840015194196401900723810442235202082026850796500259528950159110272332377702127878432997690298699876907862917581525174735718953446208710143686328547019709180970002513089590421739041629361592269909567915875497087661365368272146413936371064645375815423684103039789584566535445553277911354409144259958951554709956524909500301609963268124749513480741701057173194088494738950761368654278915793150650313194715069373211870860103455051698238865543722807161113437766909918169334002911210271884141980325125208393391986875573802670269581264402501711768536341358997164991004589939750290105846891211290816585506477887080115020336754440403656019790959811276453125457192706371137728693448907640042709812476721752342637999663780944841598430321257148096981037953003042988297808708469530439956324647948696245494292782980286935816700485602891412747734810577639703299664117401012206407650008716723513369662772808910705661047613406872200048506733186466328514940346120444480471237192115637894124092703774968116847662646241178519656099800013390410489565309169308864300931481118437674574876438842118778558651672442881885617181290239209320919650536872863199522500995822988267973490747667456169779954394920159396597780360945032562342383155578325622413047076617420641534450990556800323378817239304713339039662913163856281439276820604276668686259961561943222635667621005871452412271694924253585270036294528883321253977775147186311455171587131961188159218972139970234246931032743611074963812881879576066822519877151542914925059016851597029031672526327899038797598754446956693126647403755378980264754095441718599579576753386306561382890077835252600525147910853854478669321255354072542558085133859768266853499668722755602908085241407003620152606413353373072726456838700435033919189021202118116592419650934414496441030659383168436794160896219604457089344233871630482188753095842168037559565253734592135217565910594253309642590719639303137990408012155385780746647000779048193224089460659622355422409503641824760352236904559130539770850959284231256956875043645016145767525974269476217227699083508726419202334728737680936747443122186403974874603491662431187545541582092005506634276849801178305156242675722977012864782591673322602174646017046861616007868859835397895903384721399543119658035227018880397537965066552762804547643523190689290494379099850800018307830676508289750529718853846809049956809762227163537470511432669498275673855175466310499701523243071316506072565420200373105405738245096485011929432076596449915785981581915622189759625146824149264487823733971860549502538844467151150868585292692493331863158918059317306310340380647844273674351778692587735026576378049435991378965236807844248950343509251191797510440758665500300713195810476714079205581421540719210173926929752210554991880491831916095984514413629500049528913202793129153926101611412173699793068330848171382404748088096107627646329195852837632259993635675685930882976834721415405233787450193648059262501520093152045520594080618085264604429321195595751145850727347525188761796548257004656884159600766749975712422987926741943369021073881558892520851357456177513261041648096944790686809493780373754762216762085324018394983245157597738614136555055098277070437298400205505014269244681919565520911259734316494156100031242821096522225809631527565179491118221789656639765219310233176724890765702203229262361295370065039125985064405669863522352656852612926118884602305090581356686675126206472415756550811889136581251115695617181026297896588115178269033131230720634719909221416251357167669784252573482303241353089625851342296461792051885563135066927115726884179703309796561646870197478584278347714907700709470603961404457496332243647589866306618984951453117319104602479725222483773354219968856692852930697478545883687844991153499780891145400245380325659542360475929421866839102854476351951773748055160218233448732086176036806324023130991099628032557907870853226615675534220923352432399252499085184718085929279217354679510127405700969101640823636172440867931800017264350621067404545553299397330771573692472292079386462444650165747573602409381814151509293064085855577972804398726382996063021491458279338318712854845064175930751437821415591006919673049037645967494475511144854109986418036273619290632358131041309858101433073414770396073512610758170965648428600905878473107409386374891506686208385707582403583059552060056959546486209442424894198299445552864502628662977421409879343621565181277320324627619254764318224839037650571059571937897625414749925542190782999610112148632740035416878530773960779505825625880652916843793367954812319325534467040597919289506220102857530214856686372865571240738015488653383333500131933527560223209326893559267517715634271449769998003528088577541285126737268195035805648096303861167609767695626858522932559445187408505639522361561385645227313243876430846696374292479450238362148885192767739821239950870251012517911983856624823959335636004073496920522040580951942088099541382302358393540115067248242671343573831889141692531571453778654643893365671588426654336266133457379708170572604117962205473929336226747928610338760953971249752450488631803819690914568927508808438756282872894188615630454043525742126306790374439467862406564906991533528977730246576456124010639755897582296025983816067958136594939277090904615185844910825723078298434284666541116864949674390210884952852574970294412465319246913140038371903604879957897757374058672889271046921668108737247711860884164164767426962090647278226037082903829867272506357428888016522147944034371821675437814313969286196658349338262917813563575847251171512593427219008098788335470139762821190576747340329496801762245566863034607243224783818672802774923370138116959499561572946727289142219726521622940671267772366283028146861182240747273199425864788273525033461658659998166332938467977549727529665666923148001665848377369287762155759638240270471123991780158145575876252959397221466517966571767052033048762738937294722448752456648489157804323459427358946683754070528327110026365768432712924686966031435327711262045810571913991478603434883459075917630389352517681644468204702082999725129416533208044699421651271886936942436260803928940887589910581071078113018823507366589413187604708400881047729798619073195082130904418354848102000428313869171802826370306949613784049719590193245874948234632479798893172777920358361714734128073202712422440249294850941141260086669333671320151488904649207653072680293588218754667391932780676750626569555487650982441495554824675424362885254588663865175842124241774871262818523991233643444024873238994397996037270982661559384157436401021099162945570939101401763151309614427101486779918592859692656439424935435194567426801691289384089649522477975399369503777613476087620550815655243316012882433837259021946478199981105780068967836465289643709612498900774252692409031969275635279479756263126468451974899326963791007704342329732666969925983543280131019757330467597791492600661996997074500594948981528243538435965055208980780252297899369135787468443562674905604634205695556722051176651723621947132131179803342576945916772231141309792341261853655239681441495156935125908993117379064310552591468591250199075943405306543072619700698521377248027500590763388063194186060627293403729783901419811636677655310480419252318762004284227346223311392850386481469302224606773814840773581444831398051716782709756409819412897666722333707974967033497967476176339555529242445745938910486779053450250789134843448963897471006348364780072859000496715946154841296028197940559290622881845849989734760392624520721796495444963398326522893084650285915160719177154962939176732405931613752227883389693015481565279604319775731954984831439996237250157288821422232403132676397820978155456936404303826530091559359888026710474015571710895497046569458510834593335187754610938446314459820259024483347244065956768405312781375543064194352737677891645628844097255977964015091443055835298192003845562910969586819890105441594864373535386250609412994159476887044581724570354535118264459443592821235706270419103445105065903250942838027357495574141807957516431915314025675834770009134389997542151322063111380263792848047978945869522465128484776788222682823823379125162296598858100671017443499869445528484822038946011373050065680380305743573719634459868833367051850171369249200774949351556014313883871036737911752077242524381903169444854686814972630865588560443932355351136610738768837759989842895084224211996778642017728104053653949686619029753695881559722149585748731022584331965195336716400240023955780957963365634219374424278312556352073187983334919097522783185208692089210693269828315726876665864210035295386403106960197519501575695048740747584129507843071004795385123313312656256348757433322341353089959433328985265514463678386238601409641076976118606586541033780568497590621263507038080020198263168395546524970236809298345048813903973322164516658206367671019416538343760178923736275321352124516029127293964719431429935759489363233508827776722426392562044051326796886990597231608769166608303574768899196238939770740805437932720271957773180073613997022755214976885562027294875763991650368306973801449186594741453955349137551972164412391857800138262878206455763148653982265676494157410107218690812779525350495527366879777147471687190129416041138945528967521127573218237505891411390430243544706834710571435846861423586537101881830640280937396977316296647345325002802700700167889803504596925333335962091629985603517768209802462135612049237577911487853083798808265660623858835028067180387815524264763663382070918154513955617473084068967952550664841956779461135935104418584760309769859460194552371630597705052852688837389842585091106077270753714057558506923579525447708941812289397145100249487959682179352579935594438416375425257076895481227875391184138854229888677133427434612329384802510048150688593870276685118179085255351461841339271199187879521289194633299775466518561461066814962270536069603096611581746501644510688067999538647503641438014137967679598727314351787250092953836592181876863687983689550860861381917546461724917795432654507042956753107229501900684801596497810143119505552623192434981348160754095536905560815522155193373546546358744318163984958015591290400971815271379517540939690215846752021680521387459623915735324334470088038979359733180403589027311814265424130036866183966957920931342025291396087444690991727112173089870972490780742916044277391890573969182690416113124026917604971048354319837732725050524913197922071464819939287986836875644950779725544890779818055447569753452802216720976144574610296659128296760901584178332641281877331441942573062676651777997501939991169801997762297216150745339679285212334558296587261079339233280014575687412338597837891431794309416497730209429242532017465701292489928222833840769143762022866119257839252319676868510613963324774332546481130650728592545233797107146904507629082900917532576677022529016414841016889125504037064203179216382412799896890920778249289932278164530300334490903583578299288921522589024293266383469638194867103091699822873818678896538871862716133627696651072604377235055936387402339706243322430679107040177098385968856665028440582356860773349495142156294665040105521136798261869253660091811014419054921678589304758915009593657121196781316980975875080536504300316617738343503960080251562876132469159061898181134477865702585434308289026763267184295807301980697334679534350348490682843380919930429162611086361562273452769070314236209559791071504683069525283715983994597445837400692890383641166400700225122699048333435619328213483577752192340869848059136055587243082944015999139189669313823553042173057172327302956393235608392972480419458420758837188878676279965744922173003049206844409744755199224164224845593121564578634136826252633372270218175957575546620338608451841255429479474834878480689594832025224252159814859282903459444855233447689082437294310199537705116061978981685931523208822805350216447847551254823016269138705523447219127648817637498416772646070185162427219018183958960394558392541762068677314330761424856680863193603093069261792146231448323333283687403628449397465778665458028190296496532041700606195122398487208283571185449663203654547465696923708546018525351039176100488172513498002850319534186550797484870606892911877887932147390097330284422845983311472616770053185130892415833271020096483126798474077595588882468006314385229315402659962985336214634900147251438990917937228745235500454469744691758269703808353543071056521676418479084222684295736240748814169599025607705234191632151062071304099532124653630480375155940967589582679049119357858305151936044140634321751919329161090938243666534770889540741933659462817608869063447335866090285201861114784608586250030485779542215436754512600519963102177229867707424560469371037803599366385144289286426516240114700824612388265050171247023645085514364710827758476144786868501939914227840912865246743716575700977545154506422755168058992657857305410320483449092078727473154383779212075945407599549004250406131602404468627535967673646269079963599680884374621088502036376715252451107038675895379824396126684189849258525601384827859955497842881965100000751987602876867336609160879501171637017594090890914410292400708171385519141916211312464830331986986921705670738415905508091128862412832957266384130474817540163771118009565685674976180746336026961228565129650710170125120670850714234774480036676669156060543126971973317947778262286664086466019219313286100414683592644414384168676530003003252715173762154495400780611431552446694659810476403226402887451462927029698456029511816313259095569056442056598239414761297999942275720575517616352096716322712660167353184820584611617421276171110835495522002031105269122429237269305897061911591984843013401448041675116453797007519970571747325313712358203012322830665530651118699324463327926462956902113497326437265213977718825808176583544157447057662538882095259505462245500081441638721965145155929340663139150549747800869657937417410923842789300986904368243163252998060623465885160261752661752183238742003850414365043797273130245776837477191127837639708227302972063190052178703540040652894571051994321241383349275952525964503692566666250831017697952185498404626734974731978160963360560382778764000426942140986405422634415877507863256700544768613424240045050452329327279064820346306929220622674358080668696528276426663197480533240411650456644772668469646887889465155890731076959546069033082394582994741878276631114460103224759682146602001109177624999533684614672150177824791700700941135943757721068791365003718556602546960803903860480482993899545443171633061022066590294272632889384611745589271559656762304708734745019052476373740331615533131574493116780158448179469678947488854976160415945477201804759782609603620512248211901367905577187532187277827466376538390694860022187432702077749113153804936921872403577850353324472704401312110891298061663617364470391678107773947400479614652986594651931241235342789777241652273994300885877192014566771242456344655396606412803693811070773234009930808167330287514106262245040147356666994736418516825238661651442051688656624039517888505756396261068440081121488118009401613209268241240595378681055943111687473664743300330965736198741059940241289556207508388062186579539495071126085529999333594669625922257201997039902583419551161767168284316518683099704649920180106975336039060393898244600405352728289587712003589221701212510751965449703022943226654787291497230569522524102402145639296819267792937491876897370320064587626438965875091998051718849442458129246616382714349255006220875017085268009094482663320866296427568111824769919009871146711532735356999053445127041067965678509017806014862983998509392614178183400040965011027913506287043251707294131115002663836243698188165743878942201453271937228638282237860304530024622343327091224925395249101278412302163682283850016087511246731181518701682399819256828842267957272831224209486029819970738910759801104893991123015913122851080706842758731589118790959981035336940753214453524523351193465161049267823989793963620277366454447839003494112100211119390149473394714038954081137413526300404315347644728150248030647987683153058514601185598037484595256065436401488180188276871225206140965510588563643993971178995450960960571989839908938705000564353644476208496722434953190670050894863518909006336388160838687675344778917175852228068005344599889314336739014938369887780514411850013653799122943573170485196718594868877916607506169865750635024472361959728925773233510672849597551997741655158809259659029721274525374295147266702845085870237636950706789122714473412857387992879219615700744771937608448758955118753174482230323979760854172013583134771426667707533259521511879682768787196573222102825409449534945736209310593641990927235286337097072319847933024350021431062215636327510803754379818857177864881871165768254942862925604579853244457940721915105131628247176285569505708151976283085792037099740957284368857561956319467474810205648176841749115254412951599939469657481414654569504604206028299953414722153467390410702594611655825056021730108318398739575303297500141071950572507507015071317477542026555303486347640300166067768379745410535151517664046706534657014305923605134572597955379447779038341908710905291936338007075526523256071136121176627725596105552786720900992309861284028183764836459658143657219322286417285070531566057402458007528226449347961609570639166896501400489589174980845795952344699062546510206553618980770371824670919898976054080539811198278400890419322306851670771996385499513723424556500496232818232871686797590225745249670912777220231928806505050901908879636810025145139740795303046317010348666484144701772447040995711671447835566900294645802869324428307339854719212970784238564285689661551624867678866184101810967439171201956004427330575583530732273715493749664112766105097393607164308806452935892403165259171869519050797427424794012104123901567438348297563476549538163973736413452449093322762931769885795681752883988864349859731799990394786150709397331044021198729528654166495548347111428022183697463651411258000355946974839371451848596603825169572916708569653475792359163687538570494388582686511364807064362955007491683560232324982780334599504683610028384058654571222535997723583400130347238171962037096449200259566857239202063298626181853726040573465390546222494725030689316170349109046642998982283651846376766725214828744656297229582022944262197363949772658323159988298772038534711501123595411843697838841207896571437217046573163256313106892528433295130600662352681095890389058534286173577817444827597461058778392238841912389707187486345693777772982937379542814584714242322789216111433722437134706653393459158535195861816520094721041066527152431596009838574642826624147891973557725745778782029147483220303363966558979398415698992820296305818493459567533366439606680693325707094934226096275878885931474442273184343658826230125188632969271848625765140856166514961876293016997562966146962387655513600472361114341948777511551111747014824908825490947452481782035688347710144806114958591643857336859335643695450837110258174013095577841961569765586398610192411877987396984920601444659850090837153701441269781602553131300638376727405885799876577318568529894494520006932522608166559474011361442394994314365198227573851517656696467516675678747984105498872535337531358579395201745895752357662665759684542902725359077169660001707732731534382509343886395844279747664392736951004110098673526566238712045932500466149323324684041078781610336158176264253206185429311688302935665986960725292693452248843720955753593199385934826058074512829345399427613554846257055842252540011441702657424619678593207427614407813359375948782924568132847168216115844938449365583818611998241421471730672981789026257715407307291712798686384770789788401508263534904698891607963746590756758748426647294509846296426633265568177749870977853765473759895536014305513559101481107252034454435156419473978120871209130164096005850670465236195494249899607382101461518366366396646432286551139073647291030640786743795498569831278527487082156374161073985564468207363395306219583228781798612125711834263226878673714769915575279069424780421657782760086382327717635551968172861786243976262224764705833882374741035702301762400047051613258458670746908725462336095415904488626088327790151438943848844306014790468100214026819248324573935303055240242892636103111603287748912898093967166474774293110784352550052812435282162513835201854845550536322664694233756150548316730770299744301107182398153785445161728570008556569024939673604636828907435725260317533727596174318642691715089357622156764481188650123683898032054301675718720733785422491060981151653031997201970389412458892025824808952025561738491086035258961967066814341420496567521689201603388897787375939774361812831041955433338558903499061118405649606519838684818035791773100926177006143417517698154912470247952656487655527555712380609315476341050795555781760096181469273845799994838600550785931491806037892237104253960500586624591511928988361735298793055471144454702226155101267902222324099223879223514905272819623488482634130848715226204984831734204139607437812855116369199915444236261673679011129508262126831848805617446767355217479564366541848140712106572636507200641536495242894609477616338013490497479013428987958197810469243470034468566858503768979292201940228907310227713921492166371202256770477517058975971099308198768274658185333691702689360782081494001404116627977686287626457726294427518512622017190149356390064475389066369282924674305582141204895938926112871446898560335461428129535230805544657465061622478369677508927615006606897043893622486820924197540908662875155680014342264568888566277762640221452897028560396831961372732602021859509614080094932198023917464838739292365401089388008253732726216123720253258723775362438985067249138252728357332772400514695037871214286078288446958569706484389007928567482158374746877493415833553725845200556415448470467733931394091437393263950395418819050453832536048553020331486740872386543823953539466960289068917458097092651755824764667189493223447317041175846047864034718436602928964357412971405216702279575457436520926431990750897289744685975506998668476722984973190868918240381720552180944696919278582220203124562465383722856041267903971960062821034099306081575834676035317386379418202346235662898291272216545684976348905977165371141310788172536834386046144932983124079407056631530608852676374333104195643315175309376881917144920437180790177649105016828998847199679509750772917447352076842621130209747370598407477883190220633622736693143908073845541009156995384173954937003586786320598044330175818567064864226188963209267221720625944444672540765363630388655805111763625477992555648492070590417751650399015808382556172549598660759985099378995386749205346992573371704538074258546534810194122343644019556135302353552733937822859225906097360729869764679607008643921714572738127924189687785304343965390690443823657903115046142744612950584974998378459665329538138656800914989958958895470385147527239935863541120679517616703893906223775688656449809943583242806755329248578033914964529812155704401856494460855979888557983642299754042256898695444532886864472138552051803045781962287086665194778474164425503222888777445167771492857313347573277763206954458710060242818037743754311663370941363822626603044271371790541558501249543473335352859672048090347384745339121332311384028440959168380404013866079354020573157598543210474912687970195327401749111127233477836421713006398427688942900285980325384085136590430163642641443576152161675340025271611517635788417531809603447308769843014480665966557483394363940683266762492776805241688346203589006753648970859502417363480271665267639412551220360935896773638502911400269657191883559220298870985950200556848515528442188394219298817334331192107645449108222188149001590068033842285578995762916755933472760587778875991874369775983179717371354391498350246455099965713059771403693559274919980864326876219934665085738554852021958833799713112400977066769396523467820411509550022064975327460786050247244067273011597811298985108108201550163980110631361998065396143738709463340571357870521940954178696681668283261595914912696712702734936200555231598070539752299899762688896180845117463487065056479084379958822109668589730454862400307750641119704823303690829771316366044771456442808306737278251641923432785020743181405327830281737736115493675889813744738753858211040217336174082171865141332510420919551912526259867249663529561789784136071781244184297237959488587583244132620008378757075145347475591853539647296743120350484056644485493031292378044226377145523653954108290708020585315890695886854143017830613415833388143717257361598458677746924420366185339782466910161415507433564244875761665886954525091725984964131694238967147626066685153504433321281072655049060555580488277288606757179393194019513192702469695795430759075328189007760611776071306986592187962692708001493028526965116670478283091903631693215277497641999712830826057198840598846884203842528373844044182358688129044807089668636087810630228051347268245390406528355325243803196659983406978493838224584862202729795126219419125136967193250740636017176116393709425689579931665809455752790789864025401349293451513941545720004659295026461194523859323968002788425684254775427417226064218139772965398405423573745111511460965987970249764484798030254774954051632975147466342039231272026142866112682689945010645621653482100602585440786312809657011633351676781456921459649203863506468790284804132994885622516662092786146539570961930954794142797749275602639379227398904828051738777396568000272210651180430928474977254425432480172159079757707819721351868009989236319903217561129232071682173829597917771868484034717176310463118766490292990573236217575906376215675572931291538942640377255125261495373780761805206222082424641939114601097052008167113716934621511620607669070742713859093761191808222717056298545625819299757234534135232938877208726230967085035183618010283615761124358828769525150523006742975907996931987606011897128206927590854297287458894646810302033563809298328344046145522145334709945371324645622741337453483814678641026022478322675611673193611174894409187910691934266407096159798123544783039619469802532321197825281297261742064410064683149684082301989442166865132279284854792138037293814471300294917030317660863443686763754841295898174984587250540490862086985059734583193209213347804118533657254659961770332917157871420102881464867180616526449293829354706365880496495435026098685664423950528135320881912564275863982700884136652147769579419638429469394631142986736628075616567985204841891683575274287401655298088082734433543279179461273364248954047059657499424934944123605304045395497750660119552503007343176345798749380996657729625020488153677902366267447689988935378707280489703530204824544809680859526385558971224500232147878813797170899749232253572542197884832665385962250964749033432904819463547263791088653013242863697257804199240179075854072596902789861563280339562094105510637758073445173188047847209568457058102980910025120382648819155428420453609491029672622645500206638865203603564596108480451800572655683941632678154337837545979122361035436613671863203993328799200544401065909062023895631078458557265170016474988294942971794961653565468472375616898064586380950936955294014392092649032758156382545448519803907426265125020041205001749550045301667645904055009632641576648368486303938882287124909082313178356974174523113003043031310824268936552972074084017820617777337910193981245620678588686474644405182863488668533108076905098438891983300170982823706409410516014777110030041984881235383874874914264113896947531642023165082962461069037049923766992851699948878523242124023956710249147427105065329057490035795880038179535881087199403970263157454423718063970376313130989656907519278436648536780773966175599111195147973515641022737858839838189287581136179277692683576120196657010942312407899842635845933237798587421371616254645463572136592903989783244291277400776003771798305186090858906068675501365289251193368377635852092487558433003340531706049464333540307478169353400525252521760299589710708384386133682018330308678428009765349024658675221840336908433138126439412197723489630010115612886043632318128004299908076144882672986865313211637313253596866137104859403139007573268136198838446835288865724226614070395494638764618267185656665226251956510002686645564148589838002285847274977123404979828965481653630193799108604007739959841149247419691143559494671906299570673711864137888859487511198581796909496046921715988389745978212944860578927314854299949759204596197483453902918558166696762540117283433181812942808094480395550048342188434288532516850199443384958989545740134756405357605162889676312803681670959702540442074859295810064442178937320000503106425153182654068409638351601510030314208002713169119332087951149658168110448327614686042175891789181847093433623024656744588412670492585220366281262398535387559593167039724040091722278733262428776271564329604078359913903411238804885796929006413741531681201637167328964032466247753396801989705623967007533308829128130636893926205195953201388754296527785760138205393980988616423392100770831343225725532347231130363722461607220666064504816656118219596400723912089769528669406772950435926459364119747367449960351154512462364604100811372827348972191147875551977470776608716972624876014343448401523102882143813069457151289199801594822491670192489952921244825633984035703152161507707289316838846129178975819731586015922374608426684236997604351502087577629000608650118901464108296210858806801775548326985655824651899484009028525623295269743388362861646016830046273475602455731147198055319081337485353092987151018868429363672932596826569213464462499618862298691727800926737527974958320318216479425832000076621505396578332201712909502435885253174641288975519765456717288505164033888370987404023780060919257713447618726272075427351503127004527648213520988140239813130604871382375846577155793757382214336378183733551515692872825323277879025575016871551017746733721962700764214478774376433354436212976066381328936385573150797926472516075924999360036992268000150809695661218087098907081475744200154026540719161651134308395456531382784160349503823938187750404990143660068746587404447283397783100197241887816017996918835411203739107033237759879230444664301575094984327137973469866973410597153263818280232692481414323419656020637959233807539389708105828714191852698394000838339235397051866813087604346190274126098245129510949414381635144958736944001610516924224158818503061920029920397963872894589986260912473742803142364713880403280596556799957634771286118341945541542094247184020118340398823242079426141361753203822939425521869197057077215031360935849187021444603639899686583944626187775181470145548196469644407512334342798899675909205525651635142776633009690632802442301632196995741791500673026399714809156914745776151317586895388584146270889628169893647937629171854107368983401513522200720139558233409586257474696413300862915679349278310667123336063413516469596414444251754518942032779485921726249502540073621946346982769097941960569545543639818397263846337634640217283968668153817764711624246490328550701273821907311108739083344106727156905379030634304076396495167789593049769343393403957780801197902481553788560348735311628679376835848147435650889277675528334381707530622958489255395430692266942589037303110309064368139489515298407317415314080554350314997866977617294700453452488191717874104614582568433004494355697264544477422357906885452822711251441737531671170743124325272121191523328525889085289217480412040613409261453463101147429817954578561465963421560543037992869205494580200446311526092449167494049028089561123957740492350872216574173824958502477164985167332716772773976363853588896234214300546065933104756760079215273177139547624883834685431947193069792059895072166743486235356033826970316036878884678176085335228108088716912884701639181073572483303831730864400376544997296479189836232214090016694568600705579123850799013726245612580820652341206799007470594036426848678408896239180777709624019035353105062827182460200416688353846268558806440860319465238247314041825039213848674186654378703223068096978536106963226092142728619328356715772804199381422196903552802309139429502959147211742805064045055865840516582628740417253226588774092134398527347627076539922628058124847229167868097027121769484562746531243133444768823792717444963758174554916820899799844487149286869795989429400098313319746484288465362907485002717233583244831170949750530780455176705618341649904813450180511872197050143523607516063530624353146981035619640510888297341963619356981927245951944777677049440962955660806294331920921239573399762547877890170676157444223158567783270100137663815119846899932094271796618646197487740940181953692309352004848743903375061249178435246893816045892529866824901644424376692500638658248273452260082553554051930174553741284568668691655682584841699619203132446247934252954336886089265010924848853587507852565188175665608156001872758833663505049308984505730112581061298483420405196626042474398106176441877435437840637055189294490290526277737837429693125311333635623153124671443526649270205804891129336537014264041814869446475331797738575896030193040324134156269903341921320288314002428482654136007692366708905433909743197283103603459071824305936912856381588358712164612305161993514708272859035898798744581228467161705552957743139191825355925941093146227338585466727903685332957034256486255269869887723298914351991063299696858380498924335994907536878653939898860888676125818841469831639304445989166641881951061279990904863497932813543089542141639820359210254961657993142276380969205871129093288255344574932933192060275325089220488131553551688682383783066960037986994849745928636520219175331507417778776708844497631092141320374971453788592419313280298222779526089778579297947317949893591964500154320121856787420355164847487749104774098148591386417642313207818974658196424715751344778306862711398297580546708132677833432456023171477471281716786530963407741167431943467873873523019161662382302957139930533401330945584600659891806855039977856416479362742873159635892522985124380574515094423046959497377907547042483802398345062179809102849978954779917192506531177743326550911844538618665237014705856285256732951520453773208151596866234681703104248200257026861710081593753516340554385607706518433348153171822716280074957802426090470718835644445584564104626162106200945190307352679800971854489334160247926420284264201331030829228383675568028474587900479549262542252479974857214821860827156696203392716106287617568500160036107574289926966935103621775121645581745238438492659128019803153329647061186851390950868368694296028938202641281387978829399053671577149343733249975781933277955403817702801009404981370051076757795615433059233188739030067059003657617218633738612703577799677131017470567270014744955332583996008940435657881527378795542855913768000584854859568637595755767097477584792989812950085063295750932498440512866496329760093739216518144130846948378178052171434834384361049484204151698792917565881363970383713276731595508443342000061063247528845771845390620233430363776884928518366177980793328099690630623582871871862033505684247432109672392548303698242077082949004382078403767408276378122308129422241494368999934612079692729833563972038477095747715527528312480097562682212179921765135436926781009441952494616298947137935977798181904906874537919523696515504115731917182826316292587827548061094314363012595043219395221893783366894683890683299734461188245214587709105113826062190795433837839692634192033621183621214874301418740764730317169799702911149507870332074324612317599603915293575315874986921843945160373238463055821705500923151960855369864359151782516158909548710631684809151821631172316376766279056784342509758897010945157901951151137639252947604566702893796314846168889911343535329578032249565396585191149161722061252630503964425128863983425754569995996927033809153825689742045174458472479478788454807506928279352848243543285012104169611762598490023731726553052044787441256589008052426115900695271815247411132924793124911552538703807819654679629107523689762503621355283375003684337663595329396127877140119499214499874809756837186872994892714798204641275181830626937750185686443206492947933465394092738379721661041798801965334557820302000523591239516449287207727761333121675889588066705241388595429932967509207834063225645862797216233015468468419197626065099039272841783182803640821104526682233413471859714600081506181183825695771664317819943703712178136525674877528555176500334055685228881135307986652610712416733295227660649005121844315951527186714805388382080282537725887661327306273144548487646055723505013593716402076319552435430169921153193810636784349470238587403824763179027386352564509559790641197581244982756261219379065607577546277345077876223289983263003034178435287846099295340250691846132154029395997575550618788080725840007273044246644543623017048618745296008091435048909966919170991980276347692452535104336725810848462525284738583320952973934886353296789624674832462316811740021006896105252205574638447952011733919626964776481789576715475202090742660614024598224260889016298711961429253711153084181942213895898354828821685769395032434312508078046652386473638902698029915083826269815131566472473764915521446480297373683582146351836405355141943501544039642567870762548938945847844048053767478003748723328415641809236555190284787580820205359513234445238408053161005962322568884802087265754943456922764649444324751044292507194897506153352839067452723971080440887732713147327982070948047749355322840653734518385773647735588047161553082634479195103908988397587888438203427744532515225347737365819177189689660286708316357359342515989786879801744228661582530731026233722126319298580483071249155787827172717360248888032635990558823608673850879765278391155575726180405802620796682386198494810305796412021289203686882925100657750941109455104996325217726385647356281043774423256489189950773365859362606500926377648788794301400345822779513542162450184021028344362213006694811209146477675223585824133406346104535950671366185879815230632924619254751195867541197989313998891934359900601112728138083804938750004758907249195085362229390447031408524887185282178957215369716404277293133719202965330727317240695299804252663577010053391182441538699682921344955049756424232339638288584632063324926217601105121046818930214718377928479526322582786385515238230634034819352877629387587598113092312677613087690209686568853119686276097706509474936936739713958670462174523058470032132312043800692365042346150770038143795164406242770967041869834471602217818609010245797960397960134636660975321826901388810289888556834522505064092289254554365803555293226079781452744850492666845279997392411635194417147547109767194252124999845425278850124876804291293449744742795156072473920105656262312388408172154936127981594678311466624223118320939337215491925110177389987890408208721162791898083970740740169586274736093654863486932928162546970393920730142933496084378285350129782606326685051155675343477932937115590324977754838403817401826317263531410462352588171951834025844542988080315029426354194451678813228426601848689432895769527455622640936338080375214905820374773815304945394302059851341174642310244693271790027537687118575503221825147906583430000251425550699640091057556746930174330423536848553654564999232593409805505204129372155881831042359277054579626981192784300155775386990442736258370236107359863702061532926637029257997365455887464370450131278936248156087999306172434079627181624810377936452558286486474260997033143812853673434460903517458730980938357316245907667768042920027109734839774416787542294283516317505111280279065957139822009245411043963192948275448592209346820079910592098956563914996787378870499852949007968890308672383971932288182143326695590283693488935659839759124180821225675303480378179885227636639394709819420079519882013310882631232265213047024505351372333373165932357985953911748300459423976153001426750260830110854454603068193399442253277997554862694144758818641806074393342024464911326253571826379254381989518399867266049340647632650298957974659317732059798660405786695910643965299696133550742817906373535593975856903837499411478227483713514372923995263706739179825526380589030193864491787930734107714242544404068724305385103886906551415873408931832473040020784585764341809656385504072224413905393799259458122981360859030587095091738126207311936325179834605088942649641895171360423829039255503244386096150493772673885734463090765681023005171259786999053460133457088499982645960343719136077741211744056840228416458283562841875800781464567227538212100782973392169720963106886695324859655883881414319290792707612427056902768971675805296519012105882134780053412886611129132142197649707327999697939695796918380181167598044363619597051767397168849076758726189843620630245820348693311040759263067484516448131775884272426881200575649514911280232217186187311295362074741024886460929053512137073820229929383839720814906445098362178770180806670364001086671268410668529809285028706985018511165083174342165268218887302521953490607394781573476889108784261444249858370085906212379720841644250526293057308491766287513018630782859327991704657557223439035486752366936611844812253389508047785305689608868855945639432495811908180965980719655311710416960642178392202623473452373096699544722977802856189142508533054113379541249273048686243340882932452993743986163679569057119772053858845481969797992913299276447707300936085404782243231100686023552596714417623465543374113439651082171515833127918634101323485516603794587929988268837545851119184793570495636548631189967658319042329894967103547601320623992516465633771339242203618393790072948327432258680981134908267729459351496079381766670676655607309369763994816567769289859316506892058547288077062115162658556469078097037661434675791190970282381489381030122199496292465704862060735910089219689383506440228979960730289286204051998956066423107641723398650354746409100862779152930900059245624986953854070977784788428722875913384211223573632974019124650032968956026429113812347070428498169837313002742326763235070888981092571117207502861125994363339192705339364906548721847470181884023530604288934478102920172388260382270601986304437120221206841101334451116789568448502758232483572925378205541274140876418366453960313732607305195802749322324032457245861699154407246915473359376778522562407073427538094480566315914723093270629037712316942941240296420121897762771909201339896868240363472631867276379653622366798953670378352890353417267898728654231494481316030032482466315376201174040767317193271620373026215993387902514112721277736412982363945474231297003067130556795736534488505582925490922258075013010587792731855268018066551661289610022422705107615992948839953826891134934026744274490793230973859872115151067645542518394038410244130722149622170633862526444166239783857570790738216710519538866408862990098259348515211602089617005497492284821618767950311520128681083486761671878061366360081686754503962008745014294433045890125150622368970966700466824889562828091684869064384232397848935210644524133191675746399545660437444359132866595250870009523876532394078610753686806943703613407003468122115731431177933772565754120962742687643699017881652692114945498828379193582722099997407417781130768920670020170468584875379942670109235305112067190806068944959266395429547069656248439633040357522007652243182558211893199965094377577462423500879424659366311420522347834668059172217981761317240069911730801609321447561935458889789513998787387874613887293046393292109350016609408363771339992972080979987391571879327779480964351240472773501083400802374832776933315760595361553384300435669927129133159611048926549126842777027032602014378073215996770429930696759283791692659974522121479019269816083763346145835109023358869336280829576512140552414086473060400180653508837470442750734645890602101622730434035016034908325190772592758809239491018911788854783903525283885904467876063649994735102184201222353859430219032671653141314781739067267274610115268189052655963559677534254486987804677921249041926365410229025553641915090392906942293499529133282997459345126781213455916240282556648776281292092154813703705373982382203381122511709094219061076086417590252185913676643714625863721368054458058324909404941182371278733375025456726988808858701751379188546624719748383761830322267880635211993453770535920974341209871238101091316371226581979222768862394977615603472908339483037174258785723641358206486393272798139741874583090206013089052453377820326845896284264459933194121043180319543014944108352444478735233815387440463925176199383422268524420699841494562655728689821493463556494783250316700784981702447500231829635376211239253235885836472499646668739468181458872687213716650852024022854963376430422605118165438378307063717768048712395787636095246318315890648791883896511001176566140505620626037714804898222659449790382052392208877803726873690603803241666620004793252069069973770106583442109224657942663172412267238383023159083372754304001928872302816030511215876273046887026535279337050980721243461581703442950161681047644826646296650870575072554762775509085551967912914996052348765145502305539797351429688286173323836782551334372437410332900890728468169447274916326928292579274367113196029340991094720907808234850598062957584314095870866595272590455178944344783673077044508541257585317652272317162340337619284351204568722931492804138161577793316548261009958285230899537586003315251791144741798046201774694303948128991024254488906107965123810895406821439772916464780910706492563673417815717078776409300211996911290692431222028868816400948510569378042706563342831330949144590297179937918316937769891223647738267211157189096729436145513209596134210756133577310554485225804459637888969443575456271585397429954173723399416838696480081668540630634460350816974205095486534187470989259112864401421524479937706010099447674770326149564148536559179033208726412500390615323530482140613776262348420074670496690502620193693146434845019422784537801489076443081466782899140604692532194429026567360500039697643791529709123714309278243291887896035760378469030812058731899789638372766407202677109747722017240857503157186016081536616642333983130253748303691559496253062317148705342095415752102061092983041077348297871183987362338557829899771039128093940928153415680899952475652099644208794600732367849267981551558794779203848680970486583863895838429816445706429698139525606442313291947085261918982427049953810020871961395856033296708233784870679394796024663216722887188187800261123433269236798048952996613057479796777478121787336685889437492041469269805282847037447392198363759426454570154572756842257988291561171228567796650890269819217896550300745348522671404361686396141122770567133924082055579761050718152691924785691925178228044439550530893321484569710469891203757716041382859949243766644685549037267981338161348852470377134147123514559480300941817704677834699961349443135270654473958438676065636366553020406564534581137193220463775309032786922957166541647081515297585333525771813077795104115195433845130822950275151514981300049935474160619774493869263768829420091790557638820033225268619875669953157321854906140277095243727227067068866800417175074944747837202051012850639298837122928847674504919976664129674805740600511936790986174023178417045897785253032024422642036702400450158043287168564505383934662210418663988816845985838441810494968714023882252362960460501963983114148177694609824366386259952208766388528636872544366625290721709094392659424271974176636916620813263070498628297429466736546015673614693941967180376902693683873799735556017516085623229536992757072499166520415672838026902085888335078479672010009019799147901514952950976907372349233634179928186742599582625149500775582676322993574986876491499708326576181856431042420720661192273808787250205182669486794889998983891104267533071472538193245588181691142805167640009364138948367336516360611120725071199986486187403577566952948365601949496109614888345979320803083774765942732775723651920492422282741772495983169807415888494981488481148919346059155378828287518117097571732608881537119983058803385632361893846110357451350366189782651459640555256521954145764066971466203581758430195249905067907044192900880780391567024719778201048455857671015560922379275621252066293914075539671050680710591922484747046669684330921795475095397198590294741276984532851204728882812415420318515883729032222805367061696107888403405046574773317039309855391900527397509992516467112496599888699338842679257080914716650724102562894947487866459606534494280336034220068001265200610652418273304653068183374191963718249665296273159388860690942498493255718717546751036934838387208857964042489452620177791286816665168053102392302970573970081386989637196250149143625875679101528274543273988468157224239604938411181221368599600558566883595063552443465446461694672593373812400798430565848458381835145521753559234947475472241007226827873377668865867904590460522322594010846523182031264345550234979776154669075918017035157094868949137203958213222620727476941765604236060556091992358406684301728377340735537207275176296482570196769179602258632361600588032841287000430216502448556180018726194596717912368515207629280303026514357312880132161846599912683692410515781212600923759504659475726435116354555954567819514010561899421611120952462479860286306768681628944760740809357832645848670273630312622741634869218930168275103757999885287790854436943449411981050815558190720022530802220112710837132580832430161774933032338135021910628110163985390969833164757062456692166001131578236756903460324555890467339644456484175163967461435747053057958312097172000030373425926364519673781420711755951511473697406397353403789847004839266152849985416872980606916420828237096763803247608095700899208027893966407636854197758102215809346376648672456281479142702187902437736572934499524361940790130074505989918352805530259208164292021219261904564050471823700013937427620065319340063150547354232397123898162523505624328563703834540913498540242117422955156414403609950559410829210731332295693597087819681671991367005535337189699295337675991373036290116371041716451515192663650059430561959665216324266563586871682404312042491497931709594090649808665110104778703796781462024862561890383154603051870338093752557245966100994098000070334182453182426058534817672897568915692632460333055690046874820305437850486934667325371964149901828176532328412739402655184067947731440777539162927614839712326846963953724581693709527097261688043165776091627383553909618755210413473377243425575191915080254548774773185397646624608885671469781800307988144035425207677995118668572664888352676385702752915265947628437341062909173591591886609721970398287973323675551442912427715137651347805428479347044182055030426359176654902342989767258336233767851709784321223621075731554383925621582307324014368810094598364120545261762816199971526877576427634323619543364669327909937474415025938923337780953328261637215994387896044259166600049231965937791959007939918850889801073809267583698438265486544581143403386468172179672170285114864264136997707031611199124794021242348391365747398321374441275083798741467763600901241367822081170825707686669381948684664998674264274887124228952956937332810358089003219887628976336562616644710240337560983715376324066428075114266922409276674208287036888597712274859840713569909713348949163586255538051448198558297190998702062086415949241249253433625296692926588605487911688452366328441085903594903678418587496308361947192339085026239373706219645766531400321879004192991955490795089436780591962996476569098891736574742915738046462905163514044889514343045455806204330827739861404239645731100350673830116633340591999913246590773632102348078672404305786143732533107225272773745409189855380090121049477076206275072845124349458763012835576874053680410932516889933574250442027783341081587156600095771600811462683732326076120303629140424031109491214269486338091768790951985259827446496020865308601286125328022031171236052808003070992370297840168095358746967448495438514294737277740242866323914737482820995884694400414403030261401594516149078524253686615178327989305460261300514522605872078555555297463546598917862568061727838805738445906324733255187837088557554223967172564908509732367586146483115686932390138233371872519430302550410129080094398850241954466055080222877687629077858555876786394855510974902248438259209891065652823203317296645674900292713765389887721811374021025302357549487840383114042979615129397167242725362300032927619997377907928379909348686715018398059950844811576454542956607853304289426112287378119838791761595555338501032528670720022370686707335790095417998950671034678519635425674057486961475980162760085529807284019517363896621358131759630130949046211255512876839964597858390170721160750506589530245216473793314489955175090352288378963360408603701562414591341820765562106659961956295940219087753703867779718780428729412451997852150094089869424408132428416146501987254520008823595781243976324087389317443642842361481522181498247848969795130551930629327437141134983486645483215619333615341781149359655141971903352995607794265202844397808146375393318978335335367115308981405980993131814281607676013428617440358557107769961599771903378520042894494319158714595249209173621086714421394443894926199675934652514394304150984145613014769621734349321696640901081204558059966800593752188706996982519168399283904835820853190129346998233878787636005424057216042466924648011149724645507543712244956543917997994420224950694950968794420540277153377506827416734527819630400563743454063172221618205822992082573990384328053199649149491840268768352593860047686988437754555916135155650111890865341684322554984286279571373291454503964837463762642452505798061331010334954081588799773614135881107611107883594416135764158148511091898644279372960370708269398107582255468262900508332086389646142840322334830682870674679714001260800099626975919931796088688446846534901629073930234462956382390811860871715997085925454655474395669481065897452144400523403802682483640977132523258428012141536643857348303037155283155262103684224072617950168224258141511263317541444062262975158166051562604139998799890509646863388724472961762533261402270391195104933707278703866887659663148040507084192144924121788648981591355320342390723697503167490708114767309485886235021813598736531112626076705265597541465678748556482815644245423040631618384652814474035335637321840277961523772197242829487490950316438949471148451077982535512416115560745853852143869997672080149513648190474568847572023356828205145116786442994116495860048728452205119389261840108796611183710716667020869304305921705859987864149295139232932540255409028134272914801903944381286001148682713875028556164239904291520386503628782355764941405070922060134591742019011355117006969975642598112551631583429031372540847209734412944161760136677936647637911568036162694729469910714657310625081649019959682076653566642239360166893895826226792279515105568103465311850158641612927552476492635100027061667307453484605231799532375944312728613751269635116228086398977968692630380847176230376188373190472152474172182903319565486689562776157678334359449853766172613232881292330551764201422815931543318183789075792539154713211569635857200815569032064338667719695045994156705859765570716240638978653928683263218444419670849689613861487285923071735236410548581696082875515284856684837195427881744486875920517141653074065605161454261786474777382558369911383707900079617631361733536823025626112075233444754210082775772736950021212817369640771130624651738794355540921312789505979710596791754779715628298525925205591696262789978202235639106252176859241274036928668507312784893944018166829755646369064640423307190341838886616544778287768593832819230162656597604675873998550557562550365331975650478413434172322080316557603282304526148247061758188391619506438383125129732023844907121831788850775228684017606594641443633780924274939175214056354871593316036065996951597379142485853407094819341741420853099065535290919245509753584006234147716508898200731640463822587247994191277304004367904941273864230005022686713167867900315241856639028837195337735864539972367977474334325329264841905896361089210144387989468132235453956886170511307004565643695338749380796831654534225871602124116049822079371383070811260919471940584056649156860458506302970721679020185154874982233506040260229624596182842884486152913127436414307682016615095856122205397023973219581428206037807877206048554919668922016832332109060144324685471163655466646810358827803699911558494377741131013453775498211510046965058671743326760954290718177606161506106923145550721901248212397297335087187059312823749823635788064539225023658414953709776657521716526950401837896849308979444955442816247426746293256622833498768926105953896770812697183016230604588455008382040007261192890214876300222983485856626617342544775848067033619583862659973944438843619066097293278680031295389470558295861849009121454489612592871917211780092537612835787178409194837144308724585103332861102356305091299065095906694255291946708189125956173811654897649731912210559755436248165246538197402818357869485648513612344327832696398335483526136881066015449979566214318421627476755756983947491773471184452859389178754239879877144204006538521511227806524456702621781198601424330290773075811688033505313941867299909751826400410071040965435099142997145417101589206815413453759178815673620834172559456545227269254942143163101096588841642697231637179156852471490709581768958615887462379931626185940133683377280260023539375505418361505840339106131072824241863656787069622853862233201316833067205986770348821771574170242742617398383646488387565953376071079190071472783110391427144505345413435658639941691916889037120418262593226232637948248614044750485857032350943506793440512584712352510628409414313160626862785027490762649640010994747664418215620166261729496802336075290955170885257250816480941267092499964407834078341867513649774668878462550603756648087008708975718295236817906080370443985411059992056057973037427518687150858053957122039574906883344289775655220324278883888811219906214221540462562128281792385272828084204280283556531001983658267132938432920011464274538035977843964586128251394965425859533667302629629809917728081713485753446843252146106268215180545046529115154552628107310723695559037061778428685491366614880419870443371561351799286794209347179937247937583104712061424961778382262328219819949288095201752407451158460104299724729869306816678269579669817841805929307389826671162098482710222145457602227285666211259604401871180464225395050074876831255346460679396116630147984491400238661406783103780932782449002956116013313393321860233826871197115854321266775395064406634059287707614339790923961040282322895683379654018715156503404682768425975979582187457565505905328087839123984455742653974713152641259912166399805720706661887112958194101060716636408843058534189597481180918384408164427587221730932624879119412129914765462140373113893268054540016927653621466430315167412365262940197222837594458120800269769305645863945587768622634912770689512105864477971763140846398960420045016661658110413142463795809819659178432479243695398494346410379131665516367382614022420642577244485445683764410740980881734990272794289828496171944459925267144562957640457473763402181283304474258913461684766624474465794132716297171222339781354062583055144729708580522543570936812488952041660346158327398425905853772125158746736756015615375832894379640744757337551073751894603808244446741527756204530678979695299402869099810868353274187289540604170096061892757115511477640491475829387613428857968858300318038209953224056588465240607876163887667179286826029495037141308280374349804490671393322139862338359466599364491192188050194382842429853241430013573133486903784113169655965779802337182016947635198923678543726520684871621046009946188043561471254715349662789132285608619784894923076967126889749900232716518152621914645273614760838334515440108425730385668619084199768134099782136411608492613198963254287465901160321635032012232587205735178932894372666008283176491563760182256088612551468444765767734498392926907354762651192731956453544510452066513479809786894715079957453714933580799096800905795843774353431894550644303622106352406869657250135568994603720338975673656123423563082193969314871872761404826097798291725877737693271886529289755178922714203551273345178737284230970653265138112141017012335504353797134904182460847400786555087479218130647038253947171591590831643860461262017766332420838747139525743323612390935526366967133040574685181787868710308392905355949477928475882580022004070640224058562051050014737643705588787878165840029871915628340121282556638914773206605200608315281144625486143381648667888876015213999530671833059089206247168334660812320801681080682611602011861543129778823129974811836615116527116741441462147556589574568728685755538291576186785799520598785434692360718763139727202470733864541863411085356823565600472010435860596338814979218470362842883265509706573339957598642247197855070364575232468991333232961326280571252799458993599054840126760480906734234602908088315327120092010840396498424111613075223488706943464546551152536836514150850793309871250361281777450615728439185686805867558156811285220082489637551470887111895202654081061716357738241954430122202172695128024438931119274224416950039552998614471189339228885625747862722426473420771088633647520530707594334976178016678913201594162518260998503754305428106701962796534032012572062012176509837598437099893025614814121984570476056748055646859766856074065625330481451362038180742884995551704673599957578368542625260317599609866013655807313445984869452904957579494287532754159607414937723049028179043568067480312270126171418830200497960340911837383179049479430856591496629470633082996745774639847483627224694462940049512323376190683457700146372698784468192742822488205401709427328600455481664132042193962240812440949586169872301608734676873471680559621487955621748555164724576455914436090440833740678032573686108425108313018133783108701816121046762722357668389077555333336845518961043506124031466026470168841006349581834781938473793811783980167275478754901620094460148495017485190969677444793002338394666313441957671470363956059598847150842787425576621004814010673386963157622349590361370904064689034821057515424226680509771608407524652748059890947349215084784958128805762132129465620376980603698258955891235547762577461963964974608293516061607970354921034003815925197755352008359123983619272327079507518961278618818940747200686222867382462420121302697403459173413223119433478313080424494885800429737239911591395004006689484422506526065508027289002326177448486160209538692402013503417686405550190927675401570385616547153212702478859704592444266226424758161068294894891888407763909218906191411621574763252692619970648212459662514766603893515422101592007857097279924994917861276390152273541092910068950681691172285185120915592214997892764178039942766993848448174213011785333191821747742677494326483868027355690136732222871453753531944410589656966336148599068362554530940565710322917300890188141126519663504575338169867663103845105628016754651019680053825768213162379377136042268847831514927958194504110153696600979988222142981608729364588128623030878692614900449724594488976816111938029543580805357300908235550371036126492464247918859752489030043168152590684562373919056377905057491544520248431453424849470291802953330479454667686862096245374548912933858009463318436441820284801942179966878025739385056867304022523540002239920240072774416518277297777413246786481921187897879112466553723340056245466705290228659591091583052720118656554953609673726302293731256862774396800827853956843513634783892507533337532895269376540322397731415896570698458862472955462183267940335682875060921783324859191788996998451850820916748047116186562298675939966752205667628359484971037246279835495850159090771024740375764266806656578146289223042931358977639181328752864713123321670202627300674162677062975227632404511539352930967670017347030869529659283704473201046170738935538524781371933086792401916888379941281697836482209739003860784370685479048401864918880513018049220486798562925345291881990955846027456197652527306737382040204185255469995887386240121357094076934758869607729725204591902252031196850939716949391094673718257497393778001514695032698016297738060889865337352945829750058745450323528878091356472033466652356227909283928523877542099734659936668157253740690647964555633085231407706512915184945213027806271324822387858880052945036564596010941848049579593735115791530603245256472511861744945585475432998590525729718368528957397262290162631003921908402874099045509527253745395872593163322383208144652567790830990009711021671601040123689572617115170618484037499187263276557132513335027296776689752487459764617962196586174191035671637741352983887026971476802299509814269235493467730241873818855079347328867309696138543407141623617615475608319584297289348143834029759528055576703438875977958449402764994720152953452593320518539358998522327956753516850831239492219183946558284400324941128273466937300833482003468196176113204210877166302469646784008149396295336114233502532418641328786398414521640139828757833772615264001246119502531965297886259430453982638455544239527846172489244369078166580391770974067235412572105076219948454381692834364177571178058337048893454701676839564063556237174861341119104306967778362765151223661317833576935959683334124304100279165827386198021145218230344780882517356855024178320348642718756203221914383160770622729297001616410435644613853298001958163236172254446400637681360479074081445789627651441292841490441236430253189566039935284223463627104426397225449538838231676984545764488990304561471246472492359610360973226802845529693156553240777341070656383632681423473045497625470941855132139405809097531116463235810859400835229525417402658698429675206815657370697199855032710078833422783401485968948938955263272489299049115271243636687833561512082860919015753919818221369676793758650102264558127403296962412828510044694725236797626644399315554911714275169533832286755408141785261582527361502056595666834232650769405807431875116812205310074425570157592278661294455529530748437273469460647376690374152354644974960014962922870816571691412771961324176543929777920777242866948559258296696531758773428149057312130289059400194265240166202692689707004395020608135922356527353053994720539494944121015784065771215869069226913000335911543303192778641449061988259705318431028566193420945347137951316780017037609470033313831386023255170127959456465983727850729708760828687504541927426851791387791287261310273068512101455334323228239542016034662007456190221292611898132158430701020558964826575774896811284234217012914711353302843718833388438870608796825081054816849019172723632212046478893818746416818088562728978248559506673226742025343212566620490385913932615813261692084583981448989637163318732719587026776025733530476242197731612364671956202906005032158118666059163306558185798213036062470169489734247782537570925256854642335549134799992652611826235866175933251319409810692477346533864587476851323707867138498901302318444498589477166876327733645426007802896003367773227685474438372499296704288642155055195729813558610850254124554903479923545817076029819101034886212061424611905056988872157329982562731030177018816131125492989369768586664059622676495610583508523677160618434697853989027499958336183272452860607195224875733822926476138785591384345864295770545180706576732680717480607462407793618781601309757283985732377808661382842208631620282238206553791309504284388850678626275477592858125570511613951034315193893226858556652275710361658951634225592433237787627537007035421082807263176892159399930038663713356282098039422183185952638290880044498925960665396423491205492820409870402146283644612732116284601948617608029987917447592308366193147407247333537842353906026462827711969392833797982252235336004280130779882100917429433489163646396408956327279088810432639257164335367746009362443934961798139014951231356451673764545481606266809858430366245107309840672800409928651675786990845696709554454947362633703280162431865464364217275477044898982674634121651027864727937256742985096914698353589618326792128658913498710246813703277900246143133714383764847755557944910768630402561300433068333891205250510356484203276263188605522054603808264612098648636773604398924628786261816759286340235203721702354143888776136036994731674298183360522656249743634865783384555035523805241044252391629463466016541699784334390941710403909508788659968439983333188317823959898679037006517616826916629080163431228719177306458908969644966440768935070892260256857277716018521362179660723516983836644489500243917850185197338117143722596964612584237356236920385405045711955109771335153732031053677148326300182763156041298631017755943160661176427302923166165331423505648411307823496976787361302602177670241784246694928605327250210226559779249574409839332323473222954090872608464081596873441124677323547474998783494912666890905195244855871744932841176351878120924148034696638051655851026602769945664426923854972271822528869558846550886374736949238079216016010708434761550593468891337667563895566075177219943522353811503647494310617309056339220434338512779590314421584475044705446996634853207733601942443138381150882830256233593146633911572281743631978902985694826045739137663967598150827201109965765858846125988936145167086995103292238400469567196424553896203229794932497209811805225646146754613227644685011380552638933245874641413051858281297777698943494464897137317780925930217586856230445280782117034957965742942399891232168633521544975213208310099322593008699223912468112725176786668480849874236685161451763364403204155367728063689074765579532536633277760943836760634288639184405785922277241166290207412448125426934227407894714783163363478379625877377569411814104087492509940715974886940015690030054480343236265581630715714686378278022865177352613670742532253284814491197401055735397697946305473585434420814432822593989996022043160767388254866680721728900882486866607127077741741241341556309446901629162525430986380778830612496100239464712345244203484205691903282623363773533230983679737681169955504261166917635672045816660877573874474346467983939951445396779132822744544614814842640964888636572896053100477220941809155011244138620687505694323832791354660351223811404861567709784247899872923371485943197339630286047915941825212339879009447747070725572105760619882762094479025859190205912945735300088915299699649022225626477850702975316195650852977422595377760147644700382909097722264835699510887851587212411363815541156125273277343504012300503618085903883113008405005711134897683950595547381351511418973756087458970456506262588801412979877490992524804541109855021809274520075374437012226579140921343094166701678879367152188923247206253520505145761966314562291845166808441023225767292139912511951727717062814201129301753504349557349445489373904487990269167396475489472624163453548620354335089677783186070418294534447506202300757805928065136932315264120747075831592776304106105039387019944746576910173693860782883043903002827227649339753692417310569803040844829032247039373772106037575216637166695948523286761736003074288901067039350386625538810855840813506538139421036642993302529094915759239315889638973316805975152016370635389319402150722802998073452097535421975440964591160001015829668425571743815176334807142833321338392849556403361776859027552112173782386342840667096192326272531069955651253223327816752119070163152855001810068517738883634769537948641138245142705924470632323041544973386114682843569057858413092375545690603894150707542495753630014463915966756421704180778584905342491592809183475706154013185984175648741319570087133086092084210972082681508117728835310271011249386909373535832291213104303669752945434112249814422677044042169759541150569114835656274438064002211763399753525253839602740464472585030211105780880931425552306949833827512955363568906688991039074400040383502308944524662198533549092393233288010859312442856626243517618618176535756209214822254511873972211165445284279279948720020574025310656659127495369946296264927170311906170136435345173032782275708215753257062239394532375312793384596881231219132436532399633848299282743047061971266510460633290864442027377739911133995662647371053173621042641988841065654102904459298355803317050795623320926649544022739254447559766075121891924960869341336016244062986695686743714812957389129402761832525969271655631977227076865791580829094200537185838334128259656267802947028012370605995668908859840518798371156856419290889882539473953006334384034716182314911011458657456205703612050739727449659509203694194275440487883494938920406226851743444423934068499264574423359993925554111539534330221380375297697795290404104153692156684686168911197857393650163030680448095541295132123441383111710699964657368172405651456577023754221954708899554674430355757644023720619886938440317657413881831657830533705945423065529748785081653870845018696447571725279749453220541713924704639663507022097397581100489840318829077068642177994594156921408305934856478769903035303083827237908914103455055328332288109015389066588251733242928589345406964995561946127637659713972002923923507899941761179002071494872564792547360721733274707769568959661885781305235544534286520945253148282914412617052238941938500889101297036212065445523207030115235583982683753041725960471964993612023563983922679560464322989473114169865075432157279716159979897316439774707247787278236634104852429829953398448281857824455889067066217310994968156132758488021042198907029978831838829052449942479756959128961952702293691138279414310645531065144583089193592886588682511273375536798031926504728760764747279345651049349188274511919103249090199127969991446489833754519168563216485824899387364984283895478507609169955287158053938130163026156937157123820732616706215544029763636081243124160376778303482824081117685779747146664438753961914892982373690369200273069106842984006844741153167518343756168305928564852831669606230073812884985714305565623613316253790325421556235166433232886884791098085815219051551507756436415164345836286531630559634270943216083320344955293051534725085028130143240704707722620654272545390725838493394942670544753678071327663869203356468123026068444749515119278251728007953173859984736244187353511904978145782725435338730093311308760625249175742325551764547937109280657227215883729905766862155168131436572371399587047092827975344700918272482004226583845204203864366165183893823461385845291317626756831743875334630180272278657814650353458865113794776994724950248624307692403020143870711845881495942591027578704525248393371803070721168207466189360825396439292410325898139698173672897764283567470246787332425869294448480923304758868462891651775576516052436543413585179820867814091160155892853986418597760391003195973611513091923625518956541184448879709794931580235111733001924557145673340945606318933187144838967696474601824417300787248377698685184541120576036634842663057214573224889868017179625388506044042752415472561165053112976373018175156325978335644580065723607443438225870707106752630136533338336193847048538583673897120381237746548747213264341026076999772349545334299883275963050278941913803378002026102473983607537001631873655954705628574439741277510900598406444417904179256634008586790939399482063201737398700405941931484508104920961772368359346827144630400189810037642000248048038686956572579978711987136857917239652985483679720421969211917482055815024249062789535866008853353442750914300494242563949847848276416130874524556736195863772025785070326456209163317970661981609091563222595237300343185108021470363769076929659559094063266607884236836028877464222212059638432839615060273328142791213595824409991381756380965120947712111176860374398956849225258111172380536162261341632572505186507005215414403562291803262429831185292943241363903256346945374691165841567274858448579144363056506423176233678609241180607645925557281505349464886303599481046513973055219387385481407841348457213114193714064902227468338258076155849656819414367324902491148170748579047873280499866722028085779243385513241516248948115335464264922056911446608859867055530480895595111729251662170071224072798778520036113632037724891027322059193955590064485306083714688339535152626741771508768983556014690069940470314876751375944376959883310676349360086096689067021046834963911913644293985656802221712239634387113853053618897010791927777431808507819917340466898591571935883033706580109401399680280524063811743079517487531781605290500650557641037476584520538910069085832634811078498189770219360408240488006742053389488904067594407778387563145266007841698726911451380777229454159795154027080224043449342309395926339252431334850085122361193863913248284871234034605993786016130381425034373146888171563264181938522930442625313004347489226385185826561131431946105313748344481280482596218533829141307948149834818945850516882986134549957529949000133155822826524937116111658081993888201878994329398599370408015148734110743195445232411821030019821698410813798463734075832902618861580029344902409432904595047103169933524852607724970455674323215720773419016484659893550797562909268036012353891225788445421011862415323763251008833378009173614527317940685725654325358849396849952548760646045917365990243468000961994232459168637834052946461288467637541275038988630692490048849964499158176946848926683048184038746255880595151289709618255038673510734035421726434844124447393797599721109266767796334025661351049790459626588883216672455892894276636979143396837582666550664014692718310849464033968000882864508343444964748433133630552009334043120228130222275799752633407719010311368218992553492986087911914810169797873786787275853959830616326556439701847231487240727573280350735835021829637367504366887170749319138355666900959559002342889545892565150510928506635917865486389023598111733587950684996979182023719220933988966735098585123233678370687151588699152449071915917168416790779521676617077894975121625658712861588249435542190393162179812785483741204404637650456165013001168347751747590320979268669440000578619032186836605037864124667944111116480833087977119377571674112508632174937068872233613623985842136406029551254755613388769865546501084598809397527803290477671409842231941460073755736410569042164285476170690111707849999869201515156491720336658629988711149609873991610525250250951522749063346343701709941143349575994330424082676435631541648782243113815196236608810070036119648896313165699302058557784514160375126511225503945333766605521862111002506320569331315969890967672474027913817216947728070140409490272696147101738284029872009712740965920002486001901457314597432472065183646751785839553129796340988421098006045908409865546253794040179877617512179430332761456864805506214963265163829301013541684337648690418197471009409069782650123358944509391887608793620756216115049063371254585739610155312201564639383158761887865651397405415627513033282621932632628588101246216360529989839252356967902170758472230855863395268060202399453280264124072881450911708956250592678164751152234551065833274333334920974345602908936834094335806108412008445011857924798820488959164934099420942699961802300624631050998202064398836962004122461083019098322448934223856950124556670860203985529172676145753136081836353760209563676573634821351334332703016183961832175632224363297780753890312324292138728093202466115622253013675989384599430476092894541519941241122510255162383338767880592245334270800192594434406533014829507654750138660676726570103192993521759042041785453505804826705659035427357853596471733988737367575546186997962463622252149170548464203677372978348312983264303132315276828188841039498434268195378621201737323203908672120880434839983793921721702309098601268625066181980341200008972858118595880808523231549707364595377750354656272067245768960401776201468783998816692823587680679679338268156195267628005787575796748725195814701124553036650457994456906034687663243109928573107584512899901875833029562546216340233546225615785500783996792874958327683034718921632581900255324930805193975047773711591446638301953861830520844912003630914230599322134412302770266962627911591402390366642801791737696264754458207328798487555551931968781426221249251239632137944235962682354417433245173430847355679053040551020990909681459350794856348148578034330849520005484339037793471243316949917020445885803197623335636623693513081616034916949454290448356784383820526625205734708866589703236391190863061468351096299413160237091567803171376269507940465187356437429268826082534919243077992847254051122744844249750468445928393450292731695717356634694303065947101498625303091048770161134648185613816877969618423692205129686343928239340151168236518217236976455158004322000385228948324551686042971565584052342698142736021950296566616901611729428916413214884266461589592058245742604379331935229036370252785014262931828206357674633025037304007919794010960935124176904693171083321216083975127057124009423925267218766782576578488510622517750036105850964135000019384784074717959679159559157645738593901761341509782122389175883207008882726193064239085993124696591312692562651554724943830498042229222457275337354838136207821436046121311418537426194106828988882001708290710917633038146290453685319671143966195138829353008817120298211749786813546247810241875685692709990001558448714369693357104131828044204102418717630663352610023272095205544585433747140851530547671455112155162821086716314483378186542329642813939271836262612382484788061994259645038497877628925471469207518865332713959112930500038116804161104310060969924668727011773488394006229916352686760136358150623670942027486244011938240448343091759084107682063152036783572550244058010254475443632411169176071579229480127730411879264334523764657658698348474463390001922567954349195516032074142253844595113853217851631285456259388425669715114549549030193901513484688602013846592483803743725914373592990254916833493189055734456284130600587461224690080439863822038100357896085144718308304777486562741216183948937755463507607444210963420277942789808872363312706680273323933347324456739348693760408847729630223672878210923356788191734118289260918248438171059739691548333484234921533977268379271706259941240651551132656979900900856033818576659261261867185765011839136631964516198926201660190871629647309120299639029571722669420597959280484058898995432781525362326847549464418996362626317573721787158701582264044461025738013433573968495480855382432313620984116219582868504135141891951051467204168681368278243794302145607366337771077263634482921395329052838023402717494182241347948916184286371807181377039104815220612094031703318084794109307036100862542298566130215198365430700105792259280712927555554861997519674778978803409774875871354888621750444340029499669690241921909109783072882673278707656645516090352558079244673696655440923225779238944847160183467000719341650348022510353272365863678819449492416072430346520011480170264389935098198222917612903354354648419849369221173188632466085131662569188584278399619444121541027617048942420392677211044898446026412633390544820153532771846347586286285095992262238081941409107305121945851368712369751867548012529457465958712053280156752498397209017196531527551553017025211885030885801318617870100910375398119636430136484660985610301447093317278577939845792683540524728777993021992081423581279170700647874509532003506561517921720411924724003715306458074820558188698755358151961519068933447979485815820426301613236829889857820739386131356065352472955307678299139059579803211944448687705711301773926606583547172184943713071704058397992164888283933746233732527170933809604532849620400355670600363010048614198984087405206718979638408125328312219618761982455450654564335980852792239329030723210777297612938546443808499885588737491727966681253037237506991256323698581338786841072196112241359138918863930714833677225346761488300362405865109535783497352256837632619499076293471002352482264567331470592402845081212221163437863156575573491795984021147474486221437482007917300939964064535597765929040849075350940678301238745701899961876175621227017401189126013477176572059769893340763943885375039383358581570534681996732263373431667048129859877083589952651490501761255621189098324560788262631877998648191559832900645983328764433971224038996739155589182239061350288045244775871847687183776977549372627884171826464212290372230998813242606343463176371722573202065103962157367788153006472621466980767608395846939944658402896212130766057732583481536243758012662283941967191862366513392892342024122433407750606557827702272046457728964132208315959757590935966763587873623079948217757174802036275147224841478642609861851845452460355140951455995083157187372538167610652387380061658247874339634194083249715998743024702784829466682007314794793239106723792642822532694672455385489143786307883491519783990231965293434131179582778873613910975661074183879909914220434152540649572405324223440985109838978746934881578369576179210811420153178615719449005709309718440578306752898921255356397335041162498934641627123194800332459137446916665648284764880910603930480900733670487063345589890791833137559005831786327845025131309513461460937060628598293313401920274990742907690928949740877163620290988988757377846942928989152940865613804837870390689034776843416769250192932414659434751051106787400013615024063827694017651661701518149513502229895848366731372506139429103147222243457670056174942174434385358349490518041247171651566502871876489179600672977075550295118082358992094147989899811341543271240718235999915860921409316033833554048566234357707542687080129198566236995510242843074007252975121283179816035997585084635836396435700337429474288627641445841246031751310033267675211588849921955822603463049452325522919353506379182616587448072224616968884320854494949845605863937156202505444689913135321532674034566463484902376252619016659304847077308907383208961605408001689128467367709652426370290378235402694514942162657796236809448152340105694009300875035773353071539178317322127776865452485390829428206853284948986712027924691892664007836389499849240950979843016924527607175938386560586166334326219926793276597396311416598402282019520486695296790789617942003167509182766921090436036833560783016440023925396563412920826240422416567711105631540215681704430242416773153821271781781079649030900300946220301565292127839328720459177726441942050259456699718371495812852038160230201770177903197903525886551169572196761685061347729545502693426091354994027343411566377013907899296733534891584182073877911752800868820225088701737215873017108582105126560629151615242679304564389992604336112649660820235847025827343945239035185247925360690996061373424178681029357479281255144761855859365896990740641091049383480605338285691468926966851923384187227041939379377348646873910512669721697891462412962481213488456596550713450993444787117669655333214403648372336282794517412441387241832886419081014519230072415908381290032135390616144825386602303272622745057859766429090869775133747937569096718916340722648520259749141202558864077840458759801588372742916615127201770601815468121843297933429809086415790911160938366545874426999577305903909057648311552830048785444570029996932124130010350315923919024023810344937193273862463853318622844948902697842550425149371297147535819923368010309756542112685668563982664002745265099338802996638756631154336054607046267924731370394249698126303979598850320152256703498205187780137886248887118518749837723401569365179313286824844505666906235775453409302811867246518995002789731923536892845558545036182031111242087622841199482608025583585862336568209595424321442558898907035619081136954334935458559786694741184757025324681834610711809903046519777626357105454956833813128043126464655503539550962505250577301339074523362218395597091625550591299618461075932974956802501035682651516994323093838018507664418214303548686285351245045519960458915267987574936256649004097598399430140964130997764268003180973253906387011338692345399497864743024600017808228370349744019430132414066594524654477301096684533401005284610777069527069176659281514342727990242412769086120982572819082434308812209464560207013552814398438308724882611304730410844061050668288227363063879804826615357152640765900358782030070614932741993663281792106307105004086298277847481820739210282953759890998171351386837447916066148852729910327616000962694565735454822727382345704436348932337069013933415480676235847146838844261077420125009417509995772100113515497594936509821198039759750601079273711304126413431482984194844330407233515252732536381241358713926846361903297850724760983354233266525005732336504852978611148528080156035438468608260615387718528105127448229630580021423823313438371532712837535513049390693376346391499007536437759306409957316550373223561960727628164099636422922226085506102415711431933490770413969401342719330165017262997871298657867994134778544029508694384416004417317391830660182053246875878279516981978323838488641383002762476083332753841939150495146016241487431038495019390367147235122713316710385638376438016134629995675965390080044723050473562453497948972691636838601236098775548427005213723093393196623232609329706773444172062429427662349109660437053866829882086181378163425325905330034391062404231399185635178945804061792176956693801465438188311369170798229587393905599589374563429023112322626816482519939392770705441626603241840961329694633274169894738635026631203611264225959644579745991947581164324469840028855116272946542763504802884753382397408499642106560034261168483731445134219063822196383527361200460103841889018379158389149145064233535895459961413179946171248286006121931969087731356466278219929497289395044499235239496222238830102721902762932918684184728878296324570599681969069852722735716955632116899794013815082285941300862000962070759276338591360158226503778326670470458759437047400356578440230216686062563277210949021804765365215534869387165028148936194586732435992861391421390879432228375138036668389722289320243386315983804385206573766837167057342753031479093118010409598085267712376803204231168982656253970942317875744330835017316310909132053250813374389314948129065566835579364905731842774376127563553092977374730665609159338774922130132326795037144388143893280082369145367940606081948438380328475482656279251860802523580514919977626979727422333470528581656231517804350641623430220163851660820159544790737322385167260507876579291395030058021325945464386946342651373458126643863538456321465261104459366033120245239410946277741910687133617662070530686768643940883466718915998214207541896985993901285732969879471147415179542519572256000920311720365861458968511180130048135648463072801243259359654831766556179525254159550420868800004812439426527720333908309888286756921646805614519623435110825717083370684353768510236293325909034549675759865138792229065224322919056235000689660898786617513175431864039641217830010258264005097817025470845834017044291147774932951190316878894909991879792665152785439412757662462949915851094118104641263816341241731194450302192930794244759840645573609362363973172437496138505313939815827055897753553160058337280602833729981439144271051883610002999578948837375287131667710945097944036537631232215911082669025001952120928788390487918511086318238993949783610677898197006475821280395713519786259190286512032034713350824720293684060849103255348422231006163190663605586291266783167355620317810341896015430919738214439397304256335712580345914429747896681221124558370407438091142009176216349318147779059831193947721931872463036380090901843576548826628240304995436163161757186808775854811694236477752258971559500666892960511788324813919469109630366112779007088291943520742866274385150016191639382630077652757941245469566682348201149881064257914365857798169649480266582385776838566375621227134396417234743820624502065073866918329605013242527273108403408807119778243688907080853490691056621559689431482928279653524712160896724159086105856912730425439585762423434701334845615247684025260493088527076012630134389849578696863656470087368428654895372882957819568001540726743818619684618314997482336800858061747685449148018087014929209225297770755656282187335323333786621384539767901412274297480672961239056419321347551047939236679535313644414275624645801890673648930157102177579109789334848244824353253652023878437096657495616464977502300489915768539497966619503863383534268089986633082347065241959460811438470376820282343187544768980101465164377397123369998704473033298112255781513639403169232731518697443911590813167300187142320249612965668830577813417705426724134521789835081642868182100175268826089584074617307060101485618094843515726321663432126917066256195241072164279281900374088538361008232972232258680541411251077837537430099679982599100265019311731848043055643853217557309495192420089405983120481108409989485032457975175099745667921977850233860059698939719041504222984545489834477071781662161068211022002574414617316111948265551382824886612883897251036588781043080988856834536791415703805404353498050965595151794819258527095112109931827942955882981929585814070745394211257434354642886090905872119756618664711445987785493580578284997631943952959279031768763864475949133203418037467372125390502993076998419456562618624909017137329468300541322304511086582435037870691659062277778323863348977036956238209192902031170250702704441736249238220953341716983631065174700258443605893923409090774207748953321760928651943016309213520747440115592298316178662025420307806595221492180170744514948524036803369343404761528408867252966395613543782066247912755900383976050892087336767784391058715536467951728799843211456474383047568972034243149832450359658521545712753806502625610550189073519211812749438497141338265855765382603281100738817869851872403522235395953954565117066891987118596006927051921451611823685311307391248189375683611613108670945708758396121537777729110838228495854975306416756770536674382209578975971783472717599851161706256747478186358284630270664797466899604491160467138102589909728770596581581244639358004333928995334156548590921192896883500333624055202220236207665548737708122656565994637082365786036316534420992922099459325571856975851649398971009311807269526630391016988220958893443988621661007819071674526451624890314368181617662212510799564925155947544258985724718249458642787536702247041189202549379013123566128241477649341722656838102350577835071776594177505055835416390377422458915568737694520099190999004915123657470150215528648948971158133797632215541051159724453181632200364600814957838304580003221747780459942325426331423234969962857908034581490313951680496242431345618274107756463960422280926015486864797612976404495597844875619947171648295745546832410780978615140536723081775607349360404343328095194949663625254598836681750026380175064308209737125835458814251944768281933163683539280170151036466685708937427405122337937090095048582417670327561541859679173361407615830771107695364200302387356167984634153588658556969532838243167603173623794437656829327478688397253794299709714370296262227077420778716738811453749859149848989793743868500980747379722498203813647904675573786254915154893937445747769406629025045754946025486347124225057279047170069908855317960574253161253521004169204073770996517238878585702354248879569472225284924327745890549604570012294531534223495986770559578921505148690308751306367712631874862655463650430452344080361884719584646011973526865085345942515435170529686722109001838557200179224544354285939809427364647037175786351158539969061833022207706222985789448893551472953315749091817841021057219680626670839189185763234321318182878015001615074038680221254765239316566128563080406532721530760772271232803482176989383706895172242445814318013489994567579521108973971906192684838679421380376472336203702583055309235869317917851945749927476462832172086873012501204994827756899520330246820410593801380969846795529441002575870914200926234215501723108958238963273262272962313375151281938134746620170591330848537677540300738468503836828578075051658989828656084885417039499888463884611149694767546153151968572935696280481520570188496781163427890158730877099030387155666777859570830222922337574594073123730390611208375177698103420856326774151981305331164202129130624678233539391979073947638658438117139358391667388585385465101751432740823123850953106641517968696823214402068939247207493624986390982164340248516255293878781773092814085794972994182087662056970837526895353124281162633109928798374988921839148167256300273006705570183172454408405522211754926455287865263068557166764000127705012870958874444537559429945812242855522470862644089565103788360338577199555731161755502124913751970403966681514427622834636110554335125445020830923862387927769851763153041391467694769858785409710157861955663980955805050638447443825056757555425516485949858787801361357946081884142922921261216529092307085065904765129320429874589380390249064236876731698797626874526590796144510077209684872729717077430795077706786299001986413201130462086654780713227492512012743776397103057501140310502283356385560831876431303375743446899378812405708702647662526889912171758751093910873609807971470697263052411449667988040919441767315482605032366552010876463527022751313819925461804177871617267249006678412143267927776120341419079126010851645060249878851431394871831562441133811478578188138852668355086365667690687430677354999484872115183108624879046547084732938236816616912719093577344102294786078394688552131936113863185496434506251768763202192003108595736099756804464918982322343920512450001719370167043920636767616674294625260046907120633851976310049671088102891579253421566989787286664945522159069636876943577270244356837178295948171355077402280623133870256871196914497298359990437979107771659643892633488376666762491438124764330256076766792601497739880990637629109358636168267541321909519593901143575622300623804557910581772548208064375766314125012323539409849239300407312732459395272339409699945653544527760683759093512658627869537218602046827106851085105212885320217515547111493453003402140610600022056948409368342804621497516457917844392859425476532722123006487511881730138123155058744821777110053015575128096144559589064796847742803158753914796018253439919929811729258395737186033326225823058332963289829369224047439321899617862632604679946690824911182414159552705628799659034967764227511565214559116664011816378418029840140953540542077249615880647108257666922653233988977428664265362088289144436523033491178375945769406696806647040002188660993085609063769053332384913933866137714126808442961895405662640159106569691521038869047203185782536042965766696150894425880961808323591438914607498263055573024018311232354710747848912425700744028537811470996151222472299276175807099812300534530856497613446668790192926626760737651949947979653590108431743510458228050542154675227312185553368775288477824074468482987088171738335528826917952895702302292506796782968072342255068218934126670148776725274402131147309981270215856728490438139303120265550980637770789277335412962680984352541118222222718166769314421399540221680236452067536142239892601334589038588910906005665709415185553151248481613213342710283907253292921090017218569171955887607055225654828585761848574884364502406905042492017992307712838867658283558543088658911022491225883606181382022405639222865343888712063117188501911326911260883832064625797108283917584329530385714365436044065530352390974090974867139317761813721174747614707486770152171780364859411686756911561339741521658674529173274594786302327259841072114118717987350009992224326252990040550595977904865468187646579892772567104789039257082584802675350935130270979252490852735306442748027589988729098009110455029797649240914712281531295222104328288397678628184459579413292281659942560501707406123683689131706981015035577238398405250827837041877429416441490293243006665015111404099076352903951912295486969807849557025270806735693613781549774898078371371201143770005050920784066727138599121487118707894443660866278554645635680789776543141444836595761392449063238473029598465554931466788654658268508675542649643129141676418244775445465704846182689917817926108543266366495518467562891450121535660244927622954953617150695498206961664549574135943190937442661329845144925926654262788465383132245294720320893134250694687953036787206942869909596746460559579023465671576024692212289323223038578476264491037008859296184219876439453598272853471904281957251403216995802249670698386227531580823443261428931484591348965291984527748208694723398314117519052282561949680420859198927060656207825543613426796339614471717661190977951597573065806390251656276916823748803613513045023411366951367494118301830066390163104578719918007406091846641448042962428857984559750874288167657835255932994254586014764120352616415852222441749445707544503736585619464671798029892367340034775910296846081118308582423603775309330095677531210004213619649896747746735798625284596395821272202832555387132186145120180783283883880232083504103699562939427018043543242983118731512504510391881596658915051063059972200411727264840334326313350142614200511902517595825734722236257293930196410675510369307486412361837403361336650806893840058623352765864542152909237768086287842636833466317711588119517055179178424162999909823449780291790669534593638755236263888567350595194135992640617537982754797045794383819906638740313686996917822211460843750448282213515369872826150603818156207564195586000657169280430921002318151092841906306177494980732128953782050178124762409225840890851727449985001533439818783495215161725728972281132371478319186169174429038963656140267407131092616796024818092671982830853135444078242305676444570722063969246452777982057598534931765408594918141306315012938959759811463443617368061533955011065827419111663713486550861650216110748856757324073862345750220891702290995905879299903211319723478197318351367304506498936614836197241306980654079341232262345684247695944668916393727678758165789377957045867618703673319790573869989502695226568671918681989676758484962425313378134691063852359668200416434129529393136192845152944812554374228793467376014444309701625091927884920427291485418682979510119144741598208260250760094383704582957610175334031848675884752069607394005427177350257720761096104558092569154088847112153331080753804316587148832542451203062411952498747997215681066394218148737692263015024873852050435984248398596523026804766205060793731253960955512153290387486487970200236707843708700167806894242850593350235886232197776730339396421541749732204518901865229153833734556407759561498344728399685999822429526234516506671866599135165880775756446480678443878423345067179748645526032265834143153893905942775356466599555606951847712811128321018638964500480268275838796609408462170847749705848078925527897481896195744246409973184889650360394583429924230692266060556339795739088310223119038489523507369864285503234909858194251028522657817549888518216127833551941508272359927715844516303715247670977664628245109323288872740284259880434410327235212987513169326812728293244959859904666299837433032293948656802797692206003398021408250513938750852049479088036017996899386620076016492826866949644206149881582151739465183808300396301521795869884944043484584275892652456881296910520882490172682636466185105039412116126260497475324619571750406851543952211942871639088244801158656383030015765186771704083730790459603818715596226779188896414746594480492189899864607043710856988283014718180882746057971428204468941226698822507930038702622346766794054517030196383388898598404497441963846472174712493380714562119117068473105491215258627671122637143616380842104987556643824232431199408747890910276165447688602779570598876065234709594774226985249854502584771506564642408453643420757048154940377523112617737488907868078067196171793109330857762247309362951307701090782293657517506043786492767970484858531016600387185003797602711244035764903849814647294249656390451575769307406859404706169970741505171183217790676858894888728310506674168533160851057179419531155073796261516549560948728251522919741352345435645710624391335915278328762473138760195850535035092371324309954676203995545174209575960325346858966954285185674288847208994540540459679610695233984192010420189553942689097190430072833936759840734804798344439698815257969418040343833054491110569074727747341991719319751242742532888445691448971384567741493525491485537412592369735166401982068643694120230224390083314032723880195717952714391013047445153556160902659797884257212909964777841181148620284617290218421642876210964088132333003142486283693487673780532993671875166101592926860256162398023998669117840293542923053170258101788470614716950016088162047942436119414897041818023979623034327663392231676952198047082141622908073382190875165066057686112243628467544846583626916479861819010526455379266842606301896588464700648517269888540227712003141794651751399376987539231974640740837849900728820400336847417882271717438659645983870152160181809279205357869631505759126240749501867181419695106391777066922780763945278001023677487840495599301088285234939435150998690622437291817645023826875674133675683583313700386224739526874054043408232906816030760048563408814617467585145444247391875352832799192706810649577123827535900503445025645046149109548327716403827230121421476565525628393496424542905405270135279550497297176724933367307230519538548040430173568540430951751619291983852623139368775228266502724687993685728861654643799042735946998172912970541330568726764145821248022940326851715291095781156030007935557260711314262273543247782641218780007690549091921450008763012758415163961719038796466589127033869679384695003355537197934231398293399647226594374366610844722958972601540399273433039782715997913069624634887375100271857537384702561074844987823172416287269416023149998176773120800226313631118821985632029575319072012028078664668450157341782148996578775984730172748379837732326317476878039197083318579855533217907443139725951036170671638404098664531274598692203284354904710312526029836962610412819792951663401577745594886293700748983955811647780169208394986037334994934034881420777421141721762688830617598414071951081152884052361693547982840445741406464329100135568823138139306470650562814740469203254800633619952981456933968479228843121780362132733372525392739882058736083541875133821911836665133774529362751802035941801868676338071396997233182235034976115688302294480987379678689753865427659270835593535771742637135970186959305315880811864127232168240618135028903421805207730419166497368779149913175225734375013719691224647110468497519566694686922482581316258999260930758226165871008380595027503381688890720835430975031608483551450006162407798120918699232962104256753691894567569863292088810575390648950702879382494157645042010446918130871669675054116300285229957636659760077731840520626588079769031696665640481027909751856605847660266270472182016938503276982424710720383142920828030043101061912435364003356162686905382841634756337871200011639043344793561256139210211982984098883492081889260891549710148827006680598745471090880623930867370764139370365314396881601629959471556477225904119105917857793736204207759588123773094849400159956455994220076336946825233883811862901691231191942640441938774612907978606521286228065867145532780100943140825676982000827505531410977379557800122265795720809821830510537395183094295062595285142246352721607995367260261417932245862624366579898009028049737013683087558612410440147927657089296678091428229798025757096669445758769010892135195960362226680541019344490230478079580438732029739607133168012825390811531170099364855778030246270674278914476402766998459391332510411299204588180063899638034806446455300588118162873432704331621802022107245706532686816573710616280752715749505451108424236929155042328123035482498601781286742984907590555950627666507495207450674354030414318608897063497837769395344637693538908028392585157472080135198768948704542273762361652763980877063205598873585663268450791628571380813048198476774746313598399234401630895066661154594274538452951677309385416565854315543160597553884268496043041193780880555629684562745281376469427209411623408773903072581690674732305007093201789847367670940450860328332206555288264141257612826673637936706472476746330164702872903768881104793622735795746107462741569217180533946466904259083652481911369718614804858879861392404808853578635703917582080546177578931379990444237348542625867513882306900410914567140355779628173256958258470121595176788833422905909411444934062061234546464033651195826987394081395722456754956657499991915316267523197759518925153826830692996740813842884362295031708987875486848557604311447983157150054366240914020356682799035225645681884662567204225046513416670087040733458896715131002785521224399483870007579587851828971418961922888288679534859360562042369930757238018875159527500252989723252558355901061885695225324088651597673651343685340000560780473452102216057865046872928984937763947953384382385736338041284438440576598944958182070515331575281392138896516903615550285905487099243339130109596408956826424644903262573867036938394947363095057030598002384677866881064509545367635665682214551769287507055593666973879669318598687162976094053849176031702495612363419572957370565848797316529188476587789388331740619834747797413518073968489447598540694031292829353203921452794939884463451271121951536035654522250559100745816095921826054980693616534776816636973262605024099297391026520095460290702882667286763978408257635029527886365546589655537268895172905946923917953437976372534129089104828297626109429590162725086923499902901219698339021787354178603873335666309174908222701854841737956616573564300892206349311292149652706503276164264625967751607212869249697792725833903016809867874394464583130704504258288161578040813511960719126230055446994854562373531477632060524573700405307687069711690161767612979204348980044022706147434153458606662439750612154547386194010696001358410980037396334425881907364670328475517330601530668788663885205813349482862943993244031754893078272023289154134427818404991494345114192996016857304449060478165568317594185938310792935924140860106196297041097819023236942816754290708866887377981606947870904022304562238844725404603026833432048224707658553553137354945560313474036925180021470527774839254932259535167348933873446105256392909667366949806340230323506136506544169694389947968078346374026683900173390774078272334819725197528518399283839556394520713205348723073677273900759061026756462847414557790207701682984174365726662728050803344639188904400975016093386561643433846993678010577461093843873325864355421602974004977235207002036674709924288156605657389504715862034865941032178106876902883774144717480914317761243650449863971311923325602772008394171301533072647078683730230081223375897987850089006006698055445151207531713392064949981643162644981578982195958122670866631753967544250440890324982468375115939352908738364913385325342064414911931837478147402621415052079237338893446219171773746686176014428447399000423859724519299230845738392237633048834323990504813469272618123635181239081252489399064275742554979602091620416959234805756434529659364609100843767663058411653059821057216371478388577568454837899866400295615403015689639376297068139208913285158238040630529314371448518731276087941008059789099732685101995709784218077477247282735348027987247301810121332462510455296708630939818760491558135042418018163256427915970378463138540382932302413153801746708153147759928022171315439036630597834988481391552412952733762257220743023701649938668928497587438407464081662092896625454991197358406821802902367420406181195126762088289498892557991293659451874739895824275264908538821962364668153952537610789950415198973055098722593862007124277110161614224181538705259969845828848060545238190694943771401238159097296941534241101899792715281605471360020771515388817107535866577601356695289464186425561251498330300848415069967263078167912391764722253378632869750907120909306101716355781373646586451597510322963964696205246786327496320121519483259830913621240357949303966780701036878744696810661046103276145163022239415008447521330415169962104428816328145407949301780004153233963019935404672459070705685168202709032224015516141525255659837108348066162404063962906789895035597724549557336336221072679487421619772677159916347352578741386501015647068010206250953521908990258745368448587723914935476327019802662283337480251108662057155728403933129299764600147295637883983200419006772192344378103583456298050802617192105014801459284091313162466141941113717700061294670811961570408739285804122527890796615864917953999606692594397503500656795102073829083567705798440430511630750173203084241434370895212827437422063938494587437616934811036935563175199307349273022170446808910989848144485226411487854456400751391719834120444687798490371246784310027019236780444262105229199145526651152161884577168441289625367479685273731830859637054597415240539066042840928867202759176934811939471411123219424995318968082902295038212909208193521563584266973328231112372794174969983648761990191107823111296448311843938311476036097712277984974450042230334299787670715880475528258266154962289758664407123365825658215776589308309652342199530070615674946391778634221992795343108591926981534501661950462293642613271792413127614585164259237868075141744974880173658707492657997570166971251269976649358466334189848820797035544167743385834498993920351384157644543104697840361115097500406614427682966818523201239370820183103198866549044984822547422305498437345529621513849327573983829906329905067079177533632885149256114884702147058194175754731082937723760373704753846942396643104636891138111982972965493013736664154446252108373539734645744008159083658605906492053884974524706441144085026619686796025552847754300638956514590461798256213716499387321338712819578707535699240935185195416767467562705612331225590612127702588872208958813101616233375771743979825613295885019971223837531977195143278480204005342963905851971225849332816540849948238190281962646967302764035248546931003443300849539073466824465059148857015815145399084594953118453082863059208010657105055809889664648360525861323894730904221202975484709781348353954825468701145894474777998625547193374782774638020827150665396278550955379479248738370263162088431014236355827188272272110071245839787830228409679838528815180700994859518176500009134353415897617284092159921724599108198418600858824186880378040970658127892737962477625016445945858349899653187365760231581566309516376215361418906343238158959808718874441232945014382058369647978862895647131767218569673827015529580986186554679200614528849378764235310733804484785618287796744472238430300537004480453245821314806048475019089646013552432757183355859798473289751764001910534954263089774311273245880390366090816189310195393877008362216081582228538237913899781106578945241758288829718270155493799083061952923556694945272800711497443806246051630530090781801210528925880992365169610407698107618701293963455131288673112514659387741200921983394630796892248175425791638258003825157449646173687393957316509314666240129248519970785359965567705787616408316588465770695170184216381482344177942670096259265671972481188966433777120246710403199049004657584563228159537230307566376985584141627883452226740843780123030236655439469258685197096445140309272085539469863008229793467640299531816852561619730989030052381351652530982024565939980282865060389873940983603223408071357793252008312338143488563981871599478455016826695154043602279263712346696549147144978758075427485435931039419235463189548852179654577549509937140628504653504273914479753331738941162452489579230952111257988161523591341139806551602223700861054258184481252200320376986567350327798277882119398722884614971095690154140357503486764311852832130881210863702790248701571445545388031133558463006378555147593297036591932069167265648275287325440890307219333218962030302548382745028029752529141199189141851156600204545789294534357384458050138492483288682166383236977042829667690841796518553552667569642028203614997734260950884948395969303642777653201484484642250682833963771303049786719471135306647595269231698957572936422050956672482327590752427519938234519448511321958359246527630285330982075816902917724777802270878041431334671489580545803359778101511705939898583917805043302011199141130688841716511696020131643344568859470121279023720339726768746949178385222151988720098612511035422652972426886961023916551137849862176102719208042653929505090187330394630913338079927025861917695474142676888184198447215275716792486214770492499297603381957087957464246470869314799021943737766652162756655158399940056714821367109075820550707265487354192798751704971786833194079407829953600315740242701092000079731764234066965852346731854384891994075385151773304846579182959915056182946698898015989341840951722370532908965841433860518786673647910842402913763726082438128257030506773035660549826996856346401477810517507571591481893581843558800752712712213089018158715534503212324933736339575227998785756516860157962540367744710605263082353809245441144987144535587926170580766450268105270714542951903746109283351720166421460355271361677407849733325343735150869294623100391440033220458305425222859620314580753940103248180907397743610824601513288247445430716058109440173046974834961526794556346485634837516189256666336523814176502730128704502467078961239113977254436666835325737292749582224218379480246601997853259515049813308728002442344491368138827783401894309594334526763645491611973494791838482756925833275253731056645351379358566943201029911744661740005095029094415415863057857931464964753122631476662852789759005816017090858605775764631340765431352404679268598237994489088264055903287158393855057902707484363245419696112325785887520903004246620615364410143068385446377205346668010633456060286669982654759405405388767546493831663712757875157634684215928749992734167001461398700863548065360780512381180218462200604752525342380541012928661376977733741050597703117867135628029673982470545154922667572785451949134994205760702654151378239051513200377176020889540251641081268933909754704736788591695520767340907865626427568853602275348110417288093510014618399260917863232123641098605416328239032606769730218670219871609218604363334437396066549780664583533640071297058851793012913175087599844753700549053532259578108034912898807686996364057978955484772096675831862702359174709999252721355224155265037091870041509919304109011733348683399335702531517906261800499749874322574544763283289021360699948431485825148958752608479924214455484083557234847156701259110014857862416216327660949043847716878270163457764776051298660625074257346150175977740551288061874303561187501791427292263165223183762573189468164698162080858457890726033903326492523009514862527002480113975790684588208545227653651204532071791636533960359988937386277961781669602800585807389743360463472364973600969362767594789873516946154678325703930703568995228526431458931734758745492956251048204223292229074760845842006907618725328556361621421796092824304953355790331528851998881176797484308904506614602197624620511237739523296850169968297771320171474988062483694690296281995842163914917993037481778481586284991537519953383365433063536522804599920240462690261799762055965686187441139465358468817901670388788479530385291803794171712100631646358325527248511303533031275906072463955102781892080233091142181452009360733065349944358689727317873260500243485907694233568970667577758942419116673407576169295753425784207218492851544583820557786824200321766861050410251620650080988737624418504625210200122663287469305770301431925479559564297309464663388447989826873168311540343318182775893358169339179636219720801007605946192659529132295657088963562428883959060081932390577561344029751144359466270523696890206588127560485581031621966772568296405561182352526642133127041747276868469600601548146163948988935391830318680900863731963742704335302652084276926166540855772218247451679842969856866532158763170062236628383407020946107343828444758978924740932224179814315026723946588149703599946322523280225762991598000079456719352531631169596615706262485897664835405608706695085241561351054614691455756611835205785816226115853214794240900554887417684857666497978242560469815109320720844477211441234409207321758590600690719907188575661027852974488342450318390702402084100783680299282734563317046595546759160798242967731109895280351972933287961192433813207411437507578596004515462160540258808766488558712956674372092658920113630365873733652172694086770208087861915474276352129176085653891164673979189198892223728873560956666318381959520314302893125458565384853460762331690788811018153654063820502572261069660283841266906534890595983491034056936409127343343433140290162299056557360767797280996231380664023743780400263750646566443924969117327208842031747310758246782823154009041501643774632917285468229785863022992436474820888425581647072895925696675595281336817617076120312188141473091653065025415273242444158311139567826396402695137487740857104598013699554154304745470042251971369553190485496414005681823642838217449333122869194204358224611118686348402155258766386335012386899968848631228678683140163246510379294982125999882687843193462803317299811891626114338915151394011112935295456660858190748449484055356097479902857944135875649927960421945073332352861015492240254613082744264841650599585124116604440814955087989146936060101896923868117318287728252260885197071941318649020628109909238056691746229106933281078024063632743219629067411398357341544280282628297024739630147416114298167840458053975643426090122601869403222888576150547478304437528209005565035951513276334017492724071364271215943817827466716279668838160320554678417722823593809703055886766299016071352426763642734291006993856815101870098317230508252535522306565042498047435917530664698911211101953613909105547325057729276348497687243479242194691894816083824004554759868582995846453562935417547858606393398911732742343822157348842236092403920542444018533135665987980173781113656803005644182281817501216150562130086684122844676067542495497607217714576734315041230986804327403749055079588508905267707332822634835543491897591225852366690968828811872071585161268459819320942641033825463985395172312138423341909383590324301058597170150125890758554231800163831071909228910543132444036632829740263523426430788068845543029325321388319729613450108631187018326687829930947274826243566776889081908913373803099249191718624952669362957994811445239061403993392455255343052132668412154635863368522405898613139050065565082733725446497163616838622142268977531505831094807546310334949375433954098612434828938207535132146689118531349082049280367904843258483221441218738569201693068239915070524489555263812000335023196899044593464654739463156702027973510624267057181306321545875550343641864288893736983857346033800980360161320440661749360432603006530511793452934156562786479351072538839636693247588567671645272187647728079249168022408000191111467186065371996053837640250544748431899823640976879200368013617790998251834894477488909213809247084271234970795780451220291269088928493974538190961071340038844117384356714082090254969237104099446746929671270149503205769975734048551796504966476568811783707221294965521268343351918534487267009769092270989215575585657164895157402341877340456466065886180077942031241953979467067029265391903368961518165035476733651857233620651529450054245800959707368114817620230108267832900590591584995308308242362445651011375943041161479239073392665030941927184908021285682812090699634708798468029599800789752401306821316423515793143734165626633148973262410636102340742264980643996202589134869549701401860621115998395243064372388808674739593148616542115693362714132623717797332351713445403796018516306140983721253481237616229119915944042439220925036163826073937174910143716631724579061545411204327239945429632805159098190287248465591759574978403888847918458802300481451696589100887903469427054755533006337358553996184383349604843056930241628032389217753320072964786311543318124073326004693116183139147956866695816116452958556042923744902240160945098436322566680848880766462934506181165948861342142589815238841788122173373495787881672256735878059833257848224906192888027409129832147796217235453089628754624281519057799917727159103624381779269157513006766347774979376529732799649779969519838072725502785612090553474935516492087113008437518804122059615758004431630357730239226004126886449042175522866591421161316607271339835081279455095519144944815308001469149732785108507814710505008692020586566320446149628224729534169966419961531653888088306503663007160625726560783125412693064537578679804976159851230820484140527455110558218376790503075817117468764741026429435979361482525160916107285589199893663620561404589109896792005558946415021334285723178576248298318605465140220857960301451352216929741367873377045993152563105803827368759795640005473701013852247196520853884194520893896669937643724114322820703158915193547522721986805104193209126578499102509756158587979329051717020206229883887068867225555202431084361246746759556001330081138889275216589852680841826362947191155072431249649097791162596047046391060049287320353221552440258623554960369577823840237427769310947576185564659403614446287098646253048507035199309329547512857359816967443595813615336063280154112086384501756981624742853746447299671007525990104673697076899917622593277453208920244018156998619489411359728587696967514147974240542078478519685018854059088103629892143440639002967359648472312335683047635855054814810297550721049568088945994794697333508854532393744979030144080057049126003003845711262562301611046431992586281854964580311834819531182930509116076950048672909622728606041601706355382481075468472148498946873090694534147070205296161514235157667630104704818213468660594157017955463154822763921914248200267958109898053997382690596134397081221813497141410174968777352977743573075563528226340072733361613974454364893761924113622422840174522190252838527440672044919194485445010889698736367141753997103961182710009723781631423757304884777332363458582808283113704447658017562350654014815969883179259394318279271841599866403277118274953284243698634256789530061386134386279172602042337964258600602195523638547989730186571341531556541900265137084493160886056556450672848390368713311033547359196850390505806147290987746153653443090870894603135334149625516413306885491225405000975911766846914214294267067964777162950240377816888809680807017165603852094709555629750739832706107976943037945992940786167576534205453897956341387131617894930507978272458564876783701506290700004788565132753929133413718909795995756709027876508701561980304632572577124077445139995117612428631268191333860804475065974044022934779102976936600341912849189253907241281905068436262219841603615830078635329431309088723229534694176099528551987875241580122831370255893974432666521178764373396353485430207615557356015992601764873200440509928088335461498709138080991251812162936231310007019717455411357680809515078087643665760961098864813580838932727526021415307805653527667288353732666133455788045430992012971121889282176329519596868701787925747727684517371271082361074856315157957761159848824204964359427040749407816689535379607235266027791222193513068942631511539144394136247424066666698003547692457209101482073045387661515907354527772463244417160018284990049300281279241081196253248347589377521054771981683151951896610820453525404933542351977950748749023803191820843118006573393675338022045746866033703846046420503575280082616199232224517266791727173255060155090969441627847399636704485325679516994588786980670523991219378558463817889314465199138355138011889952098190694824353696270844740890612435772244696488414335097245437405953452813043146726550629038509716212262370242276319661589683641003863064822473604109494929631523842348279680456579534201014758459943630594405812828699014134384481387298899740960871089402428536922985107260161129788628086729965466738487448934867335705372159769360167787108909446922282513073691364483719171736118127480900890645192317585972266264397500690637366685475560481082593801580007525709269042824076958899663095807070539706154532178589864262740454403541148817466144834969068875426193023610556270869811716502618881447407251873511886569701678379116019400849830911709056121284594334050062814561109166894430761261522682741515815889780415531011292141489727370469067420042684196894262775469740111020861900244054381110174807272028373495541430273204514555014915453550726359647837093855527259123822785913759045280673394888920270335673037305941690891480576582800402849731690553044129847826149978632765501943819904783657449550906921434810615838110439686344963583945928507359433969686234470177088262962499626003371059290727815718124260075724751795936862519244540854849404822543325490826606945268993053037994441760790643376716657466232395427318618986095974086940651007251036910471616078249937836619714235738026588885379265580579824165788457929777419679430896374448439071084981963046021835084460124054328174760157649755510081221626266765533838583277933174125261243000507454447196371463054762289248133893333103826981489658268651434605058315755588517677199586041457543846007510052435447280296140870716956349788488084785959100669391700983826290151583393806023594085465330896232397769796664347182603050957725735881983232636896920436533076481109748297590735560255081721812691789296252214092551657069863184603117159302919607166376546154258811509960421044793262499817825253198569795335632705973026956521755846689169085275194831726603262715723540125157587496091895306969349092929617700035181788906804473617711440125592204738152468027421672492676443347008569420025563248978625954968413879102967445119213483718558558892449430963628637611957817487911621246735453962241635167772483202317584111190981456592479088101472317447963207853632644451877225925373427814362778078430659805331317048760092615936092925263451390283198148846633850887930348707215481160501723528394065439007843532168879175986521990898571668847801143410417937592688763624993872825205199880668011266974998784528020194895931303292316210145150772904227265978384709355133715031344812559197779707961801244038399836969396928486352426455492718326267252708720271076661815514500347088691628890293191145573032420175824902773678886949503927730889867827158118033492162951789305111654808803475034893445870530714331971880766313718274831782977675307785447583610018026465966656249510511604964851640659320913084940737736769653944509703817520013886341367883508082622779708276701302778979957808229107873092352430463252708939290653567557611668231314139837504739529041093522449286074944071015643487948549969036463883192627541176276049594801438664108200500194716009197881234492249519937118860285434891346685761036187192027857134514093782354554221319526000879631187384983996418869805871646167643849223238022016388713727227429973614796523303114752520551134299626825214352358773156322238469133885126567511155688275686015651267851333260029354234011312165661984001422569380532011665974879510383980215114748872444244460969755000152868197352313203850931608010159639959750534960852591784193984000535882462440104887545815086034418155424580803794416538110702831523307658217136160172294176823948067319010963626717930970583047960822563255467646583072020955164482540817056593784491109075840992838261753922909926742865711240310504685730875428702560103217783116848343212091318637705620696776756167095602554000072362686047863439536789225078535662708211769091844505155540726150511182597038740930457665011759587611512056387508347634169754178428784472325351128925605857538922684033302468663127123652253974267484083034558026159177941721372234226907201095383455364277557912764883828158176529208781937690547669163027235066952339705483578881442228065529154699799519852586952560833797677101819925967112219495228242128207113967033177501420184404223526753117980645247312068287945970479169969448655301123802468789076871618011486418061307971834253674527212686916076085829789158669331434021799833406568676434784737288261867047183372526753236427810232802628745379326758693792450618497866998352169789314212193675626754508954901479200926700828816710920590762422511838606479809627263851535342480708499084802226801298204632512927004306753978205713770556289769122401578197004631589360624714773104639663826770235664411189516448679405997396929380303052431993559513142789059139943675835367722812207782650098705854746496132859663512535002183129756288764331333535088152459453403845431877344192235868897208613854080422370810527059198884780908858270558186523395390852185503889994872121075263868211983894026949749037869257527566630087183884565008468720218020606045906396324888799844398352508011721148327234545211700014192160291918517281017345454435863012608225504165434495783579528993596377187060500411540956824771790750685573436679725118500629156369800311385984542060452135323567414991858298082194882783546380272213796260079418317299909132998271942885730530047307658042370484925143294911465710682150335006626477693318693566663252166550648855293931933823880356438392475364343817409904791730359831127556600585375698322146984617517773275134306632717656683679471975164993516958207967879919035383849610258768246331170283343965334526255872164959797714188387165313438832254593922125069623908904800817527520472790662932293652591023417983326747175373808206755324088803204992413853640192102223377243735397997203673236525576693374926223961290570543862336876377132213205078587879835121117711562498152018196126158851085952181729332692664429384421471938943169512946502652712711593204230737475938640449074399460682502464796063166122320116184575235884543633295980091209543739337591474373541173748975276122226071336556836154761674367584741418664254563240372354969917931654580268030601319411971935991612861161131659272982478211279685560396969948100089746033824514758210268274816878718444049610794785042165889843489553427569502625286368322804059001181286008782432423316415846854875080327781470671983317360813786201428562014064340016555723589760178897201573751287857662636430169627039169610001739560946422442276126175357448336078600079972188552498808265134825714564206316254556323825205768602297421072500903674479120259395810283168133169004528192212872415898245602827746977426442130469096969502403052705204085519859978431463194228939414999920367750185762259012136113827873280367966244848856860777444555528100673245821851552686976042816393649114814891176112864988829488034026540702185971824247688414703776161284070651352731499732604179518158082917543639087004689910709351566996883290903888967306590559483081936621340021647669625371541066592761289369325645042705542408458438409371047737992989505651828787719140850553185664568565263998823203376364029455266643362394059633537553936834309024904083275004383169258823063141172791312540795891283552730247143723826067548815341645855677002660435454433850031694385427726418106011586081247528596506049766407081376137584777260933548436991701394197287215936910288197969466440360814059684195981803514063303229685238728550667476716247202222373379933641377007603275544622349689553221711789175644049718720735784465267649871912271352689153192142786415091211582533315110154944955508553023535176149256632559521016931479372419448598894964690495777143488667567382286806560123004879937127179840758714513784645142268925132010062593742370296066332490287918968735649011400042679231461664543423654516505966701580982298240732391681121639414918836253875102990007841004057959167605298244990473870517619376451810727567143808273379035250515749104269667237888734632577218924166470348159735607699473496608060502987155205368425653109727937540254283298933283755080337116515919004501924085194130738348713532548000984433247911249041855628226780554305524027269681951901440345437762841361890591995167497930197747348656464222535115514722287195716535537612252977370407962064675899311670166649991849305602507175225802318061926652742082640882115162211805310851038350505857378451957878172487381073566257887284165579348593475983834434421264133772862201654132945710893499930805750629680304369943129512345603105759720304248398266083347507502096630471733947467666151552975598128688466724527344768356672036623792841709163472952322109686399198036394227699969507882355064674753431414647227184119070740656152045964670276326969536629616902792367748775967851557638118320114235811462726557001174175117968703471233386996210932196816108201311545734270535606650189466925780089057748930094895659247851557220379925832274508780082175522014852337301151974197960459221783527610117423162816312551119696488233211470751193113984165582039839300658480168577588547956482899035632635401629179754071701036284115567638591331517819170331928682873972368888951578366404414710597626448364988231454294414251317997794915768693888049598802212943294462650996713875347779345053361995320335445351846134936505850519860551179729257593763108071493070494783719900800361083996458706194094160699058069562274815881535561024460112675938415854401303818521661632450608691273594364067295563160334196653891982081239498365154515943258353609582777870062030828900449670765925973634349488886572452499650703948158241340492588990259527028593229228070954579364444313449557446230680307742459254090232605601121256295991786570674645427660060176644606879882552145840284234472398770757764786782367996362444962905592695181972086452377261462775859427510740111314020188395364610338359061437425433601585175811286610069532758616495830825041881869172187496169636784178880276261828477117086384586635077959982268112162827489518147112312092459254479776363533783654368770683639623936926263741665430314208491953775009151375528272339054695288943789457677447542677864696392070198671715724761641626705879442990180729654011287689239351472498753014174822420726284442765028103996258164074082366049499904503101323557216262224525839248077321789654646733164366134306431422421539372505550128521526286541475942107182124870667150554016539873662195631335313079984430490796663852900007434640519916897048551534819178353224447435977781491776971050124661937186737506145423534005592559978601580509728685182348426622106109709061239536615504075522459183301473500362148474827375071345389585989826213670307360874478618815793131450748544267655903259936605544078823886199874233629266033223877549516070977618577440335863002914887424265527401385420686518736673537684174598831942424349585536944952811712492298061813928933003432729242707274782223675477412949847408223128757545068364208263863506584938787168414382366340533981155738822100960758503442381027896876207829824988687220589104979286786687027868103999168819750623557638675918873109980959531404502750690491534261118410864290953540656454420635453269324514674727460895220763951939110997957460634299351969178121459408729754367858609541758944804144486692121486641473982462803425954300428786950893162233250568819248251367155163112256714546170027706376085586878423059002898897612517243167795517197099204128223545477987143958088726777714823942660276384866464056471954504229744436058529428245561478081865261651405812873112389772277025187150246789682807495957949682660805924588453143605816335825566022854266905621028582934936017536375612944732927638875332045689000233372203943468815966540581662956344662144057269604321765607051655386906885041007653887805482310822952794738738088766604441603859259279798878648993677819669527328240731947702179089416545279969680378442136844447825549416253071044325058944373171865416178849612632711229582375954461355102547770811256472336000843805869282065819106496665035314933577767241588835553155068716708656746032264990254723873755750325344930725754595339929000363994542169406847106740507553249569853318842085804937049741318472900902615511463869710996284357915940126781677176561301834356774378534748229932248179433858120810730096205501391268702125549114948389967223092032661883401210819909860152694632278268995815693387514263523429750986516585550635576184181570108877912082651343232353181285301353317765885598732465216028515374313782663202620528091956592457043659330250790129592401001853295293373274528426742398838048153572637578599189233651388418734473449028825748944462818218255683679240303732093675752875629285190047771858208968679543540405653183312856156998036528095327465161199781607506916240597799737072804619722195770560874392299386638303932124615717959695870686385983088689600451795173687665658700527585810458989796499750757091141682653200801376118480131511668560984786446857510127735343526296369429173207147706443235493651216808852649154319065579758432645160683961582606489514386553374097004229275277221953462903543125130074545651036255972151569864362738508091135177013364809536220431838400367432097234591449500871272152856324097139782434603106496035360572765789223767301548352650881081165386018355521683932074088141109642755307761633329493975221864705303532029058413248024539115441080463103844820789725920588586135611845499197835498194913484649232528037039100702007232885908111575344227970453224816582954638787698897145859770227413158419602527345792756345065140382161745502716438329724317535505915922112773726798933530591884321758992066416405102458973828679799362693602258719905167807262396583003845785080234473354272559582305087361161896217868622020781616339062266841087518286846787888730906578343381955973163854356661199506403534668794213930807538497645327443844750308940712129204685073199257417110808042566253121654627724721035937798603380340732581796155515966054278268918111927455331218735358695388075683073066952031491680991851122000536346316204083815774061589950273036824288781727812867511264313593628899152515375165474478823225898383685294079921070031996577886129153751439606507488061298023872346627516300243001742790380779402437611649197924651578311411958060224406473308613418479901401271246091582610401964173961403204135579827406966835025484188085882311554148720885303119002990573028316247339439233261123743229958339840931250193654610893896768917376706289885623457794706261518639588966408030757515421012977482804516995855580319631772099686677467334094350476442067843753386576605489021389872956533147563995673642275535420891170593656289621237998314776875933177190889268494660532535344302955096303065534181730092038005495991071968714921432409652636748307755865272542717060820235419316999975420357284366968766244239083560724382071299443950941156410475968684452710383993789218936002029385378496961965640456174622023921444078835745917543433904167688676235733122364382196638950480233718306737389047852049596574921050141032368703495435510881180878175568950574491180973787965554063469305476041518145855245868198891815836844748683594751382740878757708939879082346280493622881233808657198070336132969717364213703333278069965622987289794996413749124804653302221970577637947749860596810027465486357479286317172778150504901969667591868265010137315752926095399061824418456243815721334973781538822247223405761199575375747840962956881496507429215269706312647514085116833915292176689837845114855754531974565753313539556886694817813329778021335840030932361001514242685293703011830601053767107985307961381617669271507515399398748949259529124467366600512465515195062811402964437513054172820512111921365382819671981616359252822541212392997866318273410881875098175300873826072467916857749601866873303328840864514435929039446003705669898477851358879068986298112730382396432038222710759496286714610604872151975715751433127464330700302882755954410605769301246989480232181326702375698568930679500034156239588533983114521125544611249731281721535840141778890060000272339327505480478477510449865885104779223302681200207799092970336516107163822888071273921236257237229178340487907206694468323855276124030923994843659222799338736650204011065988837802906984111932919804358202644475889861551074237199290944235966011581492534990300108020465722861563723854206251270109847429459675543819089736457224267065248383341931118561751410119900720262792410965528611248124582815039056207517173752355079804724843390909039597166672371865131720866614509978247329291891461020473702272918554076005895461609434288117925195930389920167255492267361286894106278100669457345644872201139146022209886810319453585131965512079438851797368741774272642202318391768566253431611001088649398414682540026014231092746250826625376492612482137170885429128860397040007570224738967383328805844183140593481031055453836031930965901695357890968260341076557472880818388526925437982895235902988338682779662443068664006094520066074840297672381710539680033992500638553241592674849246405250287925484652789989258621803516651667037353548634507475349984557487743697339311962145752680684757635509144594317915604715412958082202664619403145906790681569595951975035871184397612908457138794067537777925300008590257825992414016599295274905816552530048511288501497845861178493840410147445304881711985918712169716941669423791097847933171331153154310546295368361156062265447252527215440291068713510601612552036573067722181152419262373241140795307688410826367920023286987721796803678016307377089865448598922485642129968123864286556018426391599163371482009345422130690889226973767021242408770939720296135720866699064152340647728591573354322132490600023771397357311499918935453559519047116927319832642425175291223571436539943921299006155178335639825122518922729608718650871038629721229296844480070853183962853235570261189842818326137610669227284757237604617799674749920544504549694170548781759489122616376968668910532991127136790441377081071040657708591409330234492237244787423730720035893884879592445629611483658999412200121842432266744745399318376220691087287589377561278151553322401467182895988982110321130845871395067224513044060678757971988752471689875949081914545541190461608836458504749293631729595450862392568183752826486950152636142055634651610923987749154631944950582613521205408367507215667697131954485479071437078072371669536514571706676926223363377640741931748176727707326558252876294865302789489309686281123438304003826944211524436854886116512422665014427957353971838200662217325279975313182104145179157165249933326608931306706967661969597844395413573296989608597971195928741683182714727286230664974055578238344597315873189913435914576373599421861253397883666382959317469231419024514970267619655932703951547649492613254318850110404761955711371295469992030874135439659768309508363612929998877026173949370833572456366473883967206883817889643051162489043538191346185768335311977030848400318376684425681332905091625851082292921330195774315828333656130266456101660562396529606481678150544865301890088358600181179732185200587200137998385811615475554162496185076419979473404690806205848889103428879472773340757410603925174348913402465524402892104940573160756729910632952090552675495673290080169713745897898014646418183277960678808208783570761954563475158405052568339339317128107225989810065993688141705159674010808343193540255451153196786212511976807476602208340356984048935200149863524323395005687761482958681034808826411100634777935218124865584498096482722693627609219356190440485833569418570741429268606355728893471843337888104573772726296339692378910912520256357143493771163468076183368094713462088341825539692242488154610118336450262161927690236623714831087922319591802755345933260727627826505038263131144862853018762103246222172756684580813194119960398145140703222792686316895102973300663949019978133291206801703378031977344004736282312876148140936522110937403949019076202657012105733694851606416634085746817017829713606877124103037879831721286541797219561522247888596134197350105489265369800753806958029093466921679464460615139827579686273233538106340517613552804844335806334076332266812429095844005760467989398273186956547318097667477906039517609354304561474506610460655650855157673888316340121226668809541544329413233754342841175515283702993631481668977149009156242858794889762342850222484179449436492396082414153505722743704925911823783427003041346787150572522108926460541813075464291762138240777443121696171683832727870537535641211731824167071129594738921005207702463807130569110964782355222949678982315547498185095193453810721156841491153481960533591858550459168201343791566336420050456894926252302869746185044763631885881729935630644906552383967234968858776969404742949467421556113278100917898593262528135510913932882673035716085269093923801674515945574480688849511489617619647138842667015509549321168853395265745327594610853379511398693442358709247511212380945103424275983710249567132222614170687588869799707173782355721328328703806543299503394447558767889579911459031326080225935904767037858771411467509625284071116524267948150790064726745422434024393809667502742292058611083853242270861751515254503338114199842861565716460833050419206093793764966437856403333927995488678535727479003614216765278011519488949436046772126790502175964457903179324600684451012679044302435844400073752257433774451543975544418077766992313329492227478852940934590672602640629028663247383793871008941704781773963102906232141490306749920326849611601413290064568082604287376304608338430559603167086167567658668623943710962250216090356258254123801352130476690452997725087862472870138511957580214540992179846378748041115044839776968817434756738848503182936603718172582778857175968912869856984248106040211154731975313899550213859250069845108682678571731501225259549224259313247573225162639407903916607035138687534441345837167953465039740748243659454037407580864501619128371815110804124747178215957660111124031422190481872562225296333805892030679744881757728351377107157702661056421290726520968361192124816955253680568098324865997791820031397238524259730755393220783674949841312582713268434484331079186204786235929388932581972064360641411151206746585864317102906419867625798698114213199503954974682633777405641556569610086642627923658982300268773775716148987935170855062607325853465478183667104649621556037765361738795068476352083594870420709596763356137849757777620531443953795474778267569448881965612773667863397922945327259409574031707253392115480804957340481804692543994671326841916040311881867352452529588216207294869467666853856433569288877722234881213787855288371550230215500540306125180845612243817702686942949950381971684358511387796817801525195685796444414932731961691819081545912740477852161427648007960265974402883791577926421217790871305315553628370146824175940857510171605583580588753012820541188699960872433153871464273110804175570780627122905581438885683747381250297958029949422725451222832757465456324278402670660619931316009527123088280179535821370948138199913547221092956156949150681789760038917023802295031925050042848193161836819106486094497755006879215719909338906521140470104499983757053892376417857088034034212985145816206196017639008177495665493170328014506086169029300146502679278504467565218324859624873998376499955297306502837301186973804031417434397960388227225408328998289464199939796152796806901973693630781483184137681642241543981012437898221809827095155748679739151677948493086548105593149468322697382325878025967272705704660699669022543315621974418641386903552635446073970616614451351773974714918743096236396416162874461227179890554641020725406349038469248556228481559658869462639420494354074510184554581907955567173045792077868596812926209705637198131573022548397880494529206270034527139612752624278820597275495213661084669442681575098770532925969125601668491572688232364407932600929236669489112012925700174053736508867135235708383797593360469837885493133103063587614794048054066930455251119090285955835909081069053481068291035134580428187447855634414527013683248020132883982959091630441632357698736851314375888134728694374740464014064991783073232197722993974307431682746084793367130054431049713128087234556612836619282710828003419707850004785536761163946348632751852116736138202113940906353760295251825736831864531056565736997299279929280797738081749400740734998807168234495782685071087723473162883137901088292316363758115596372999273126314738281281225554480237215619690464511595798949402123456695627026538730191412884722028498403371778891198655575976265773780474961671263397472240942031838438215499004306442934893142035014896165035556733808821668057433072791905243588562393466926940319986286507395668288613975798564102102635893179837016404976318299688462979720138258240912115428972013806787471258720550734689549183200257106104797183711334208315238259900479137662095691621529897255460048674363933190396774772554080589294017422107586050616890305732799245750729627326933794329246783165611771953353142850350020176876023418922988620104184092582396464514999123239625619863125330255066787720930734649400608942218421597132319115715812216149433664410583476227743293961307822420045676322476633746608603199879091633123428220923248667978942243152980557804603601207369527780361655002856957338622320197386574358096209755712933466381938785155283412661090932862408645277940190818700945417699803257100566336178281364643058175506145242202222075320218540688038694170497088567270793303308783578026621305804937910972535624367950277493106869439646784338498363698205079394790459839637711869475679532166640484772210053215096131775253290111758090896901866011141847816624053353101499834719337113192846894704698313972615936673067820321926186130941330309299659758950675840618196520825225690424397791347413774422017419730359656249079331011495135343988555817553164371024955214385337333227710238707792885853962362746400828262933348068316592808171463879607553457512448192077097240853358142951028241054202154121423639895300669068773768059474151752501663815378996808449599019487331211742054319325580066954836467945451224814931169986139877742439031075443223088500693075462001241363257613625981983903013152228806891594485061415310041057480148759253641745439806112061723752951932908230024354673023169933506028210994170994591681596790647657339841162497460744228996693541414496348408880031771826960479105256540840820774827408504250850178146309603632094542788017125903660741890373622400917434202951374537252692025816993995320118957260062899809148024151131945866062048991931369291047318493873619272632071647927417931603627567149154920643688702981101844220248397365071352731372258890255761349245525924466553878976872556886752286693804226850947413575583932755096908396031581804225953194753405937592608233143477799968706313837764341710294336939833031303629040666189291013087913006381351549767567500804378433420974847365613122714498890247677796474601094184397107576208165760637002220001209217752021631360687541311211207312480098944817037872771618435472633597026690522954251037129689683249441035283570025119404511107666130811362905663637019524523359911711249281317754633246792720938848823499640581912955584258456341630720425383840749529070478667046461129889222537345045943208193369731782720091714497509425924040074060571779473142703892409742375029147435802708901734262354316384304122372117930949223727717595159358967477170333959029753988525068107640154030411848813491188034297872091036999195187529582947977723142922532820045933206796429223841855561031360629237784398716282988340361928147769478860527564141907783211560114660044962475993239975649937367857561033924327480439515130930456872418180758798497889476580474380099292087200682484234028118237125786699803105122731077400327577670105915688638104281506186007497696886321267992116032015471337515665734524897477106749128901411067211702594838003939683530043903402477103886726215456808039924987304974733047397196093353637761441509092960776922203674791969243083090490033930426010369097017891741402936340350898025624971651265005780775794259372769905547137211793435031945005278532594304904607839087149022835644981548283834896741688086982237296105109245832082353723516924627359164927210745075216475089640232823759457424114957679461211570398092810562599267485428073190408145526938663163933696392841693050511461122779384079326955541360004714860620462475236302392957638062771129076796860762481074383944509331859386494843704864554050037971880315538488936329241864036245074883401927928875872678237866205275125362280239510908728769260355355630659983577018963611006943589301311438421829466589334266045201879740773459287544972465410762060989523440831733553056260240620574211089432720149596081897890118602321300318087091585176025777037958705973138034144701343069836640414497849548737986151012771293797900906453123389821685818122213676518147364844165083980917898657890387310933283080117085966741137026626645590195844210979310921022789400476620963203045331571118033668003913498235675803044759202425625174420333010036093450536232329970799136100765429886510901273804672610144508269086133584293248581575020356104273140895480181355485274067580013173481077557770139995511440741356259655906516908019420116943631659396472961462482639278458881888494846216425243030689833867525461192914876317944530694126339831613143369269433540890676153080572157346581880803153824943495363748413596682475995993632063632436242275890271456075413775443137513831927124101829145688486357325282139512975312817497972154919237101272190566864923591705881665008494479278369508629863069664658799338557400448907142702243440162825103123467758613591267243395701990965990128838144465471308814195898569660506659223419580668772316685824291945046972412910219173453062916611570208546312395059464236924883471210015968230589856361063469536362589825449775530170625837064696937833412630304486894069874565940583203435652401651039986389272905566245628829664910719314871388546612724227520758594288311477680284468787936021535629486835724049734707527384793847647808096522594271357893615595576944302819977944738545330070360885431430067386619459517443453031734317050054347901822073084771174791571277893645481428364492329473627649235612224848270954077195071069721609577446292914207322228459674461005705989179891403932542279467673077393546124829520542761559720189992936801370849110403929319338966814014096437736316764733263188787354254709645220224034963281780523840840738078556270286516469406628011510912891364691261080564806218199717035922832987334521746279265569317605707072997609484403654424528785845471808119481719739026472920401544370608463516059947992893433543028193481590223352249343158676178018523376532487308372642853388630299658048217292583873914581657400009844401228739273036366890180331825944826870770877351510678514603158442369004357807248031256949483616008930703085086438855816650851115107380197898352011846861315763281152195340352713066475485988795044511623316766291408890167971334465085827223615320409770529517066659409611346319695555062140581736110286863257902863604895312115656167235744135615308262736128541154260316842602502190390271600131609462893223627895618733731048457756655299706994880491130576805660694287078882723433964196248890627495813633717963008904790217507293439976423104822849311197991075360811707287486577724812427296004821453785261213237760707280463261716036008887835754329874889859492170453123598478026278718976145977042629452884072860704041003301667475922425666583810644449198279223109581193319507831724733872528955727696143221764105083887387419044762641783089730749401474055526204809658076273192677492974349646445821126603323328718673499870267402004149511309196154979091847730704632051568999856203623987544961804687168299276817906023470914174816964980138321765224980984434061160955809391450076293776939511459623194835106050446237504380392667461737257902087024882041011252684128234395708603319847818015004153771817956787846909012427281559617654227048503738360104098661798338953987733013349051476977359875001640183427256046644209060899336802051634076208460338954100524533422178754682380565633392558952659319530161387705467290525179024175094070151467073673185069097155921177664216152370552628156533475607625778504541051640459356728809970622513930474236855895132641374082003933185032861474964286766633506661211974675459893749310635453355577756417223596783342821984806007495766336594758410023400537451025095350110939375575189662457033555426846596380912445079176165810615926842676247580379643888886123130146208761309910797418379248336426619219009398341241029349709492982346944706098971217694872207307610814472790289600426858406823050266283729903873333239375866804752715806196181443101404742951894175324497963178890274360255300508760422059933178978573014866684063139977644639113254829870888574996589374794774165581634199122726958634477295158550059385862888781714920600041257100416930158066288505332222204329494533636421643924092648809146221685084993847057319567406661006249507973088054871823342114194700099094182291963917568535977411972270216127559783627655293014637952392067179817897224969973095942745454792901886054621421653568872436860551827467437510924084110363153521811652502621148774265191551488242817299862892171188161339511171787550161555535635555734712763179008024794062892375739190023883149683822863540566694024327829870169800876141035022336675055983386781616804057426481405786324654162612865572860386224224026679695499139463838957624764096459077621134628662968133290327979986380139904870723192025303343896073803044182396549321394995475578882912258391069754119113921702186986606564315482962732528983748053593907323417187369649917140751847541321616634253103612322717629508205083578709374247019044338165324254153027651603429952774235099990268889291102821237167167650036414871368957985118725826040295353238752851471210260150709535110707372680229835823672710159079294186021394923628240391639982172072874925719431602766828788243197798018778716064245473821047085263731541080892502670745112160164344452267868899771652717343477010631559554011765510539736264572758708939885525000433081266415948952017822827422790272506465400192704726260625416580720889541210126655001211779347668677477842442212589710625002139510840040914074176478517737660444364655296195461992990555762064025773633773715197418845646279067286700694362309206702898955316087487218810987881583914930349125081889822607220427236352672311301901514256719196880296816431461622428943242339284800745445990991487945216036013838209097559106052455293445334070174307569135605343105035423326986135244511876474583823275475355107150789468591388130046501067442178870193118678911373957874346580585952959195312308056429639968413349345770416849991826837604831030657481837290586933235670876319895828181333464226386282453118495466005481414003024480743028370293616664373005175541961035236900806291181126068749264916415821566762661599122158833050515805823392840456970047491676625931013698056850409086930420965604386550319943276254751684874570735652601588446647287366957906583541845578677755223195906954860527953572729633857575338516245904272121811233124572191909271682855640028499292590348428262651177456699136509554604773111711422904736387598555024489230108602814355563882517267812949444706515673539639673547230865052914619421770722135002046338139820582606998586833860872087241578287996083013423975895082890667802306914129383061221385225630267735404607702651928926225720099714293610285991020698310780143138709362248957261869430010153923988863735090157345483097530107488875829826485528589087788130115763780148964829976947542005012105085483974303813651813251753353624519574481373322874484532920274836554361545455846435465579950845537617086886929097939369452832890835691989148735915659748285253758600055688017118513462255623850788007028441164796166255147892845992279433873459745039629464685698234929591951091827616254932543481614141610413414476287698529632424656535180525678836173483992707073036537553180096783609723115608522594941471282227917774367379757814256680613865617028251402635611114213389531390003157330049736781954263991085837637194731015330175017196132078024605525562911405350604347497559646741457022636860701239664175750287719997893677341873215255048582043638838298971722561961127976196063438457228381996951722854485458582877247482453923830550576742919377871081471458054143257355544478425256843434699527848311733455720899631294694423943980093817819641176321928906970559705424770330513612959852931415743070593717488405424965743842315476245992397519149035465686115157551724845240946964480532342609310484848125794904667931459007349556693547626924779433853947927561366655835988973918475566679681421495087433676558890090011143108774162366393702041106342418643986507374691195425240940966318970116900615437993167201727301664594480038987605457491376626788712583785624047951814343014976276692344310861470142517387334654202940941352073908956687830729388370439423896987596233396274514643336026647206414652484903167093784682409154742311222482233901010679461433305723329870653662165425755313077701209325799322929755647404936330923097051344522428781632784172633790083745033502327081735226856261938159290475351637671048996724932378201522201304779805273395085539634947510458259932348976251940390322651515388461023665521984015482813561332961108908374711888454980341780624689350357932657522367355491465181705485750168928554188909668983105426091923868657422078447742307345899256825429959384152828712570401986487487375790462414759129671566550139916546769090647937780327146766452003175197214558697108891859288633897047464042635593405573624400976113710942175079737207745741055696805924304600052227645871639798060782809754540920034042411247255004000209899116274419421326769594639634755827781087562954586089701251242466916786925019915793485274124348842460813135894833518243845673533013507215645457715343900423744601582755923468053809313891826137755727044184291588656872260124587880127206629310681280574195828393133142485268346436494480284936726368192587630271012695303683040973325683058572725841258423748385180745036261587216404574119501509344115493145442924782697743814423698122648273360516581710082004692874804576599000986818831929508642187563930967538910686704412244303575778769886621253759480176817607521222370722522381190047362320870089177835536826813991120345833848336630332835341727251083203321618152255901240844648327090021210965530105929380729764375047065258940656279080532645394664504014687468733994214456482926722601944592791103371620608745983511789314165769208508729400289014168629104893807780920950543255914403420295302731484482350263354588545862199614891495680787626425475338273304733413288175113544317014880277500262642356200441630138919526444937743714304346726498277341191657299168514474990682889526802797223749324106406465020342829467392549609676054662869033106675108362797670645232585742097611496053167727346723288408027811958689270163340220928096375767500668432775521355184778052984365846866812041566008064066783197258066261620715032917190795708360184140559346166047251638093974429040631989632474768802047261850261664616618751279651464380272860523880450441194492900720953203064101860986020142696297774014066745869503270444010785746821039150001724536158005767213659566299543816957515038226073199671172238527910198271326639811159106794296224076726745292248856715933146120746250606351066832108979993014377109880850964989336624915865959138164462448246830063387811747354460022696108166880564212113905703121072034122913501187877435569880922142086797070676010994596979184034544143593911156539135567267734252994334891818954656658897608906563279976054798041938457361583446838242205208173516568377690175124876601119595239312673252962507659948449147694573232806767907063349791240430534237277090883910503118646288895573700699931382040109285487695344409227038575999846427061399823179101728483386662165121659018794970360099728026909322777835636095216928403106677110743308585353282333658311926863271688412805589027511578129270919398833773291213377488902639067000852431085412896316094461719732059002345199908632164028417815808324722080553288564867093297267462761409766767149755164274509785935498664067514061245815484519789734120501956360787197622714159671912353792879891378171687270913304492338472886927775624170938178616308024173084604809833842716680476284977274980648283130038006647482491337652196353259590187176884445779413617642229127746070949247273550285976846954282241095045262908646675756842992343624110714764608574583639186098491678703658711912782141228392709721913510610947046172880309462443833690679433455439397877059119799816389176910005205178888805214088635830579147471152990739256328426158346833714504569722380546089959116568640240848191246143022273980821655452945821681007028146981521091077753329897524674135391640010295617365294359418431769266474123356132313014421449949408208573956410873789358772257792009274781345471957653998372589904137016423584099381772365551014682163428646655348195238426848740771133589536403142252834394822162444511961738813613336269582103673934917724010932822544160244805633471409723582964795459304566840272685947941971351686533667482476141429810531511153769827251457314683972253822435282191950222273979051192743787254386811733637370730793479697921715740216283729157654557255833208175655076744066298085545909544981338428694197551312128598603037378053063114720278724872531402631018261104092967426165951280281029425893977189601186722551589441511867547638433061506958727829061165843217188277130910485214210479383512220818448460157859045384318393764367244170049429643023305780756346084511263522305561139834572598851165641231463969424770718358578727352074187808913183009382029188107087330043096769015465745953295295853797391242204068706231588273216126413954339641607791355828292317901021773683699763704907987769825295719348514931456730759529469414024940779956547302735444283188968052844869687396011614829308515432570280711785004875592324677185246646926566696973625232317239650266571020612736424732331296500712564975420456653223369262124989355659727492823266591879863567657684006493847836542380348650263867741652310888682779455971130896384655105010575761417859453019536239313332591562509734625489899516905203268922783510565675600685937984097659759179535722797115273873407056594203676678833282005073888004821010757983969472427380173836336770405797340547548432257740778882511472152124657885012203327170121676987264179807042440547817083272919123120623767168757620494053942667537100925246959321833406218223676552857461265021901301601127119093094748800155207178003202544359587513905063339074624510678962114238022974084489997159758624808191681880473157446560555705215607429115779240247168386301256247932902347083358553687125587252964795663434595519554062105114670716571345018447828465297946503544676005885014662011720484209888517667502003662491023029625117758235129115315491598926089116523274239224484198799716538388716221940504777413482064389482930723274165692025520546667794515984215073620688553312761755151100595332238694675987005592481268149114084827069496714329220441257567650310450044530631075616930047206476139333316190893713437269191842050532021376686789403930721691440909867022646757286211633455857876169859086019223684623478195462316183237181502348412073760222434893851334259411183004420043259127930211132800226715235502515237660829743845203345406864666049533652735538857295071538067141922405720445190858813670100267841443296467973217545044219133086342508153696824950547848252856420615995709292294845102067610726439348884637806978078735276824486866144949615973452634849281904656564758016548797505866261720845345810152331013445327822110597653778294479078690450212868848147425997339690060725521308147076785406083742778334512188085154357614911232812080203407545834967188505854460095175941041499536568498282398071041252990696066650365658068160887089221978128336633425848327876917251029219445379212672410095672195827519400972490468588382760437477833198879737629946874191950061133118252678240967169983696961619342429372438913885874349996768658740382945122475286506637295718441785781932855808183193635199971056978392818019100435645891511525451920898550988183210509294077937140711483780520052246917403411201132622234571842326257839597291725055675466217313448935841515441046255743217099919199026337998011573380699477443722603964316291392616349154815114391919472798418528938715725331926546859911120116581821698828530391803304097433468108207314111191786992684266941553317820951428090685792288054375207479049518711908578735175864284276875143800281403646968900415802675270882968310418629821376917523353546271897137075999102886302081059282664830763025735057523933139962486986162665620349048883408993349832674853222445994574317806525293696455696841714111585630922590121114556883790461740614625169109659851944464738074072476514537416012736616429972899751643998288174209476875224774870247002614667493840963315809967213869649782683519831558102959151709296540571587660649906796855082990576666648423891726487082017947515046039168155753810062036980041431428278178826913297747954254989770014359346970683358049737592164241616829889441756903860104931968163256777751292768483118409518093568256643667275373412150249557763775422851053435570768062324087110896549614758467166461859109143213652940228735942197444205330930696748704068672509324224086431360728667403560411823363244324437726172941883517129367329228328343868498742885133103630938786428441894614693088258918502529503543035020064200218181830611170287939798764114512940193130514815000992684642917449788956408275644605284806350000308086576763121859039688756550793559886912740582717850774003405942920748338123969196372104019751757293309027989454934689544348871113628371270348470934362404672391807620234301451921257179718748567629975328389372451262143859828315787771794014154579097789768643719928249619568556666601191943023451174378197692057996744421944062189582132750927042227759027764581260429299338113334547508898808455296611293697691432570701988074204478191960141561111464165576686755656793952115665782613367627668015401971273797915060325753017134721545924035249852509524072778009941483842385868300580784587354484470687126063423054043983036419692616940046780461078657464596394581454847218069850926585952263299797001511265554619790389253927139418304557451140589327039560820581724735758824635655604331290900150133636273049134396473223238995319854031275727763396001476852481714769379462718447911909986834922516856471396174141288735620576006721494304392996226151988885436418532655041046828826684818622234739574062754076961899990510901174093030924680911778961765114249809166695263093064990438446578050682599391824156342246426359504949450851739535018570858505527046759590347430368827495201820312140891294817234311886976127416810684204632411043179967624033883073596176849525526380669983493259494611545970626047110436862318887304659057877307896707069196217503783143142728686348781813959266416783748898029628759246312217863604846943999636385190298510590916866968202926533014798975924276080363581368318362536630812287101863984298449171895766081564510468269665164330345371214017490405161663617764385234829138830418110060547149850483759472578044847906754472644279955762609983162165855184145214959517502380872556456068827911631635252333781164549709670033951467371194166467249247692419505471841512160111662951561380302914977825483878465731661699399860840568349539052162945422890282955898023813773195393143359942616758332348250646437343230695362292582351159378392836504340263529224419163016275510580161731583661633992753421265163375742235987997671644289028557127098629024041997977711590628108477337133321097975482458222954615999861456689109858004985925039247921592302718616528131207356689012037219204611543667977482598588430732198108119253139223985319411571847337962033876136249045211302685862687479082936544971443128915632018357845935376146818011616891340920622059312102569235507622576514975664923594247791061635681451761614278703882041112186670535843848110175918245476145757982733445433139225402385787342555853617867102384948460307144229272582655488157439824686374405014595533774812301227882336969753642099069886244037234869731963589173688331906658246227908664279424805209628476713807535836828730433891011417345869212563834365319296195514284410327227191248049701566572006563389383027443380398229944721984805720574946356971386347942456535274131901528895241601376960295402313635472980166931294673619229017994320408848733461174841647157604171867173522768203144933293829443596473484607024819450599466896464016589915122231814439442578690568382297651375134124055014421567378448462197273562175676056609449376631887767397203099577594709415087325140469206695048356504155816054993696357105614446503293123092054114850707998192878751640394071150672929097473516714219576971968702504235512581501575927831939868007451467783166956677051946983125601128799608713800423104873509665019042578217572378071548270359613061344789094046404155305076686169511252020908450285100169469814012445570623200461118488260449058487257159264704635181863248427514276160228608048542817755447901094124788400784732903315822707216546903992504248679710603405524698999792298367730554326892863465763045594713802988198309805389682096450668748837303137067970127357721526788655376134584165079731675436753360960121180245192109396322487062245038584838356839087051293416715141463819951653797479900606853624601371381618496880373641656418932526014226356948677122475281009844864164000687739249582930148138442867710837626088849342902621799259053101425377192648877696481702153353818487513552560868576185905653641028561320363170305341625956874349312711506789562464644974218456228463907312456635388794889632178412240596139648262178029708051824690647789333316445650666750388749003286561608909600940138374465891251540007024103989555529509117604195213485349757234308297849035769898353457065444449691157570737550575872711528944486639297654199112795091041132951199948438709879562580889281316003617425693482915539445832203978807140672587753472573326804821668836265778402487084851888857300756773008959978930201171324164640358129541948272911387775020509020876937733693093722076222364566446666852233658566791701373313983417553577528444174557163204814482044072528251869841025177502925742976963687293321051424949576589202089180402753418751251915410888173207330940223525780415338031136428933083878931480827848396167919931047710517847082129187575040398582552046327085384577903039682765769377166257378025416483629262510066833790452683350677662789931021620534953598112395371221643551318451247353219120123780930631584567673033866958330751502925338159832136337647011398049898177345713234270844654882919964981042470663913865266967396343112331199210564018859672967410223044469487901315368979925713926858106011396083901115231695508994074831079566760499161670004204992906873861081047058108384360408062193077725484548097890710140252437057711678228731556699389366148258616257729519269840512141789001912835013212029108355342907604820191530008175967738711337512381806257021621545331453802909754304792167622368480759557342681672864552295825396066197130534845650578113598206568759409401251429643405959453227087421349101449789796042612390451783860412262669823279246664928886596077747764082750935022650708788868658117504779408397793576105171801452579829001559275068022368493144071635751158392992541177506036962261489927625031053515842361154222268723011163368514186531562628348418407294306991615971329069076881777320917178388721186983255228890979956298856272806349194153059632915125517022719742473552429252699234535214545642584728824656549271560781056397172862714903901314958987391592176241673271435733766223499522772044449645353655447945125478826873402643292085807384773050109908708746693649752707218042156839402503119082963873148364170142475043309914862353906913500481137439066458511520989944787307204687755926594812457677318868831008858023124181240693826505913273276773691768653755027081688364476207711312534863906703345195524849065090775888594809097610744820084323023431958276112706963524879141614185195571274096220802335839491189747729826795441320344072041543677686915519199696624929698799288731049829623041693385011760243836040236515584875361381941963722113467956598949510745466619201728118192358016212636659992859775072377621024832882070830354285050529379882026973598637110328386767077723638211182418108345319073587337864601258642087726191979958622463909236976644019372867480883766130506689256766429655814348686962943871483493403432636100280770644584582464233496906987448638632282520515406708744754862195192806520570829553016930042933728843285413297128403402835361375049547811862037880407089468732751026178416584681181420773644507507263084312852518763945931927950094620623000270670342392259705999963143196646667754589671265264712293333448593959026688588174948166028777616067032867919504125219054475607138407627254187206291931939498458034249025019542301482310585869332113978174333197313774658833705155174618041020433755953851086094685660008493142779297717597688524488097576948211527680619573336878892963733871066722017675853565562672838167430348331425876508701703303658061134978092561436042503095153902859691816803776185755697929810079749293892831279486026530317833381901609027489645662477487088547636566082794669847547904103441922855381945820737537657798821233676996054541134357302098310000023676990500843309740356265423863056543789089758831802683784751078840705642299275206594142662767392620547675027022821399917976855207462512290471056927944689067563470406893828847942182213363550302047711272989983612863481597668057054244721755424829264111968998998132506398431324773709682226114419584855214109384242015342804191067867776792382094060523748162717015920917216379223210529755105463901350620322668399107773408675630756148588631500933688976200108897403888834398611153199205522247050188832627765169615654318636743373254234666516739510305827049430772070851804490469059946293963096097225756832166820168923833462341958851191948862330315060975697046816025139304471690348704466723032895527586996600572776207603268196522919534429300523812686483694048073553157353926139694176300774128877108386425722144118183068893215453786545035547074605628964714661741289552212665284764336431626441334982000101610523007853116327433824904491579225847666379356095217047527808085917551996751493786418454774137304002500675945873364364974711958635417707935315044759265306632186590571590764170564629828213095768988591266726486611862645098163756700435545750787748961807994543101153987092439125568675953824095950706427712106974453508522462615849393979259453701355366099760736594482610067901013470185531414099441855715509334184176532186367099486580423741247019386609914976700979035435376612074432179645550514804872417243795764427508010106716031372642759215933282794496635581580303080103866440949643886508504570342701647356655025619303257956313427009831984123764093510839432118120048664350363273997740892507888525606464308910229873640075541308974183684814493998408499919971763660306403813465743916706827312430802835829828132890689769809328928379979556638543561939683414437568773666294077106116965656451545866881782558380265074170938671490295379013874822895981992081984299507344103594059775565161911960944622720423133637516511934310815158442676420508019499631184969869273659276984251048734956424359219298480035766307762917085464155925213043745183603790986420891216670228498157726327410740042419124117804056165685183742031845720551446553101571551489949063870906129537515681867589947291114843202686070336282293453414180112077055226051603048665428303986004467219909707066316551525466189814367812612139046256602044204841840444336708554451783165420893036312046388770377086912416050960048150877594052552837094378460967196798950162901493347346863260619407490417606988853882788990689064454611044856627208909848879639590457370767263613183052266286734381002403316486190111917933341248268049815953158147478837954925428192727213867429435124425728318816662893828178090053758027608537381661139456104212922904060348933392050674628512617195117796002328300907601867204933813924996107199231826741698895267044104777214633333780095139978192990100086657693568665659726500434252122254901262519751467994424923319280107712935614781442345577571353156129579059385483144223541251015735055858363845213519324638071739154778641028528300291011837105207756796800438544725775246662180807897658168275444008826983974936857364460517783773859239626589114205505106053710674483099601028438966392473075613626117737478771121403282246188246286717092002564055319941558739636045041235712690287196118841169045978387001725122001220132868198331529086656167724481630009294035203584354899095828818837907181222788448750517492022882496574838973176546843249682931414539438609771683695458422085860737526312948210863269674104172170454377091476507918741082244690250754997546830378308797735294264944138483428552492364525009046362369684717677195141078722294875414945202318534736299735232817784245162368541634156730213128311456075878399893945951983066509877220042238574028891402064695804932402188799168262759151954338838428023667301722565854852864029702894918393446797966853703763152486904268500655165266672677229923818033220861327796599430191796210620070476909468794772916562141823910357169499039178294191881870971224246255506120219150156197338145309829048488319429532283518191158513776165684809574973534588159434103052662443324898429892862141844673049265099617648886154460933005590206470131633942107343739145876026528128091058134722005095892654499058242545021394476636804468792122834208950703802702931183919471358023353806206457942891260726950417554604106738911631983721836567097383680836687860153758104893092288932881072560528896867719338283183313313962269569600650192494581886580622079715715773116763844467576938802269692256933592771214756938341309570678210157880059858230835254876828118117279750236602453111621225224285190617614219222636454507861785200734272132596770978032793692863861349558130822229627026674735322170952221684467409515442499032561471587361072370162864272478019006626046035476973854490252929192052847570321987696910102927095019504541509719371042380200517880376427338961285814223680726361077880792859857518003432685458607854345567575295061792800665632390668397429608830444167832907916829204869065259178562592323451465504047266912703937109616823010997845119511758147302133730809992533799836011650197911192399828155607840323313231440506709197137088098149543105093583950948777403297722730021888035038304840600219057759466014240840059223052971059636311496742365122340067383501884453923377368744717608856819170605207588512882392459492190131445406348305999587840802169476951224311272020984119960394914661680615016423867778396001848677592593272557391360794990728587704997348322257039468751077811581063726145019104548209580181330613932614029807830566364797151310209533260954171835453739975156536749770835882474410199307766372550910076678202749245249652613985614065562688707317169283484724018418594262324094990175851838780578557750432253144657933273076676589842962269536862225051730503197569682081869846643533971455107777377654370057677244416777171058436803695798291335695917118241232807655326551297357645553347308020425293001589394136282639352711813635448348235269914663035731671969836600750440798389507879616134646121786034460097326427920169832974240539758325670051397234835189885539885775470781162169763664849811649135026417461968372055989572590886324952404316966937049409249412200783193726882989863418939217007731584387604656442127780179005715359984753852047417284632625376343021293065872314935432158019531370182602067311708882939275885538787581860779322391110851786830877186107878662781828814762161209757766664463264322320760440234340138999967788939225358145129589124834561035303467513284776709409369099460897081552530561295817984012794240652800045820621932873815989783449609770889424541502301961530700556904628141096867988140066893043742120305609198746479966234227240226711910581012903591177298029203471781856057495383670271340317945828409908807654512495369668138052272876966571043950335123017691983798844524173117695189747108709316709547059846117218598352348193994243782721343531096620432049290521836926771262336895817309842088828332154083581961279351322444467651615112999302571306724191529507552217049148899084962926229320603605294589996008320309075126494795335710433939890367734164116124572766453664094782256724428474821931310961493845714570767540224150899121229610603559532717588987781362900792551398734737939646485160935128145898906475966021290488732506611935401395954173936546200000439169845211519387224007258981978975938411466199264848161862456419985704506880965719777909449609414277365254642905471773634515523456572877243223808295832291537978178526180069074539229366060005275109089671158512243070458388266735697513160054913018603567633507587226858331884817917876063477526667601359112264611941126793324513439105047533699581537116359823863268470631137065474500936098657735940806830484238338655024938230103470895607093945689616313966758236435280349719260510919142278228030391271828688346928130049901612257843683778093647320033637137617923364106784656409936224040779358349399414333359841936092792937477426652069597681982730991650310567238392057622985047826137729936707642815136237599672099523141374243127279944303969877322534622985559379538481336278279329493291296436257797247651201706643304865812954583444151714514979270344917866233133903143401209106993584401849948737147677246162410049542112641594511298281222562900540037784517921750888462637845532632322892626042764967756079948836476858167777692211589393608361860141223801373402478328123479101416056376018165021149717411732044845351658057467403580047427267298023370193305488529153835135704444196790809355264405614041380065820071908383584597655465509983925298366722384269020809798076830962929235254672592148216225882807983926104988260513440127772669662827348561668758897415371643454143864193709703512350614754819211019709525073734731976405837787847468194342563632122669225459336989786105182809008314329301368235265924344622474727889002544775147426196173768864229861614028744527084340253570315177879695560085051883098327142936094862838536682752837349701510028647000204800958608606443979227669136859935306603880644171521521255181916020882302604945433908054403323529419519334782488063679232503165160738736776071186573393077556814668377269332763627293980410317457279297757057552653053084202178485772517688021361631258820809794870366800949031961568388412538758719026200608076346859387431692658436250688811658846615280135689705140396906666468504224674982465541309247619764719340716308195614566643840476765527150766590361896562735906516091983605061914195244367966346605580818420397470044015124525034957592161367244017394449115261412963202690527015786294967744727207649942576477921594771472355640445951681214208897026852457496337775966948235037695335798388953254607158106187167085407905532718646328625297336333508287209636804734288204789040785987039837508501781692026042263992122450454941128407171759511836282084723707963802417551856974936598276061544473945255133257603961685793124958568115487160644650258949132971650333158374297949612744870057333684851743462433490785205980911420749272284043858705855484520777768398832125677628120107146073227418869822359047774035379481862641119038345976344401391634374997386632847966556636335864476959470780262006328958221741993567248736050645804124606941430296075588663697479706684213095241806378724218467757636632280728337565510864740793807717617489207482690595480996435668471579109880105773116025461731715122087985751053303135401140941519675741998248232878943004473580301669243241243175572718161316466412483394082061827061468117102849669184445599915724881060762872104809233464677274203323553009487272339541499076454913980638629759368680222538440160479562363170371634301662955276669464570125033755411937804822642724662022279609059136410201637580482045802367990736263428484530049870385532810512215663757431829211539671256016067333262619866772506835604996368849988363617764339010335420652006587304527683392702948255363096586696572074276962390475751478691857543237796877355626173117779238578145922063342110782388688391234626750931540747509450051644450777971589330737421034141681914449486971878098342436395998493310955306887598030118610982675044723487970729292172154305029587744067063930597286642769550509191660225114849945584322685710367422195878678589571008283608023956614367278807664151053121451662792142048262753299992352729242362014361587688559207480488538539795978843243019514603009052194014691030630884301179720415227085917178661105741868634762873601039668145164085583038475616629306628132798604993694287821926899128189417500317392344633101903198069040035872516044167136721723546669817769493690203566582113290019590911676038109161687464874273506838894508707842954012384351215962968019775945955893627517139467752785810204971907657785719688593192380601619647914226886280920076592726092812675055489076456154483783535986007129471394361541989929083947418551215355906645257248445252815840593594241083297988507575875712958714758823875096992055881847534658233388934568738869566959159596991566882383248389805484083427321750294819419615479144884840144389075665764339952620880057400784718278657120519367166745409532206223316389632230967118474230599232751323028498084768945645055476655963593459815989779510933183675326952253045652896692317600352079895978444661879884795182404232505269022162957320008503940546618113161818071143887710588416271746298107257025564262626288683675922740718395906594099720518683546716499525909411654968384668016865578518385364174302880618727218272666628178592287855781233979991724780000259094390831337778394384018254788500453179979391670164271734069790615560697393458379322336719436831135477604566772156251779362000760854078870779428574898583265213647137211824813173168877840778526791769968068502384016267418287042283094144154960982703871233755634743142767831837877059479363077408994715306879952329239615053258342051053688863927192511604766179803655407405547826509289442929585935251927205122899580568524192708076807257117378596633965444071606277988946667222854854833926587703566962416661132881475414358157979657116943550255085028208442999815027920826319190438634425687794466877566353570187644464541053805261857952080610448013867758835731629954241394964063350911123405218822031241413901193409699978142945860526356819653411601345991452614510204548777369097451449898105114297459597288727526977002101819943654560897497846921660330212074960512405268940639025834252528367406388369080320093281247927781826942700540032585422416066924182136460761750713197406657784937613279696321314193888050563636384743312550557188583195973215908010086605254746932298155677650912932660992504936372820258389248781375584865313447515103525982848735907515276323725572569674984128757385224930102540199369488175826438092562735152293109792553116458718012891991040348149292575942147288996615191169252850915500989619155688428250700063439517060340301259713888023516082443939795952217339836193785966716189642550520594502890023382955811851634369785778955490868979600405680576039975261573678586532946916229778467448447115709399536729457243580620937607262271823037947318224433966485010867758903258185774160163769208500885625391393880582538531278954661456663800357958805645385500413458666235264136344248463372203777981409380741678618794582215538730950572209591590115039471187996359657782335250889705108669054915601995013689838112429853948825405160473928527101125561338809472763328042926319777335600419773545811341145314567490394090375720511628853525108983228731805873613871118930576053572176751932210833288107896572955746406287518559665291384355684806999671531745473034206502717328490089275851835667503780722074807815423191893454797177204705767095815660384544998986523442611660134196524846353108998626467821510897054687954142025444791498059795028221557549772677685217907554694958091167431048556226015077798608698257554072988140100026612738198515052150746711076817122494664543246563256831258090803548572050476658485526836099069791467981436991135446429988490451700319961477344290472183828012676373612284187808656357083346776839469557977237242164181381361931033005262048639653254301061104924370582709015032407707351345752114558005777580137838238148998112170868856045611884831618461368562536528468532500218928473725986883336155735890568385742295751296814448050763946280249834996510608384486996610003162448909530175948549288273125066910437059530103343418111232748620234102550865733403038032358695973571000229605346374348071718450910298867403795862638931247436859027596158969991467832781351572727914168207962636017058952102358360243095890715652262946782423636312822870797405603583576397428656385573387360924139620440344719839061880495390515523990097830482075393458337962513738294358761993917089387551884892914496469038409632457081292908141615765372913833801570027264559233304438709562438360553606167676556082533455662550967510334423774670523432425872784294567721994849622759764850294024468846241428109008062187641104173166320224524140030314879061392911758598152489182058508455681237355492259764618975504574467917493038084417913589536039167441079594679089281400794807137233245097349890263052587290834534485259708630556585021209446798293411715376436857927066625818466287754608128303117058447447288805412366968108776988749274968981269340198068898451701271679238824556359868737193723944151743387442885460734996962030623434812106537024277116621486828814695507282099455051700441865332858065340140082822719756596053551054128760531367163750403724767456627713223085797902481406818623216607717038541075024386365700647802282048131073353052677443254051952004018864930819717552899283153605340485178578731842225402079206337777764257697022347044484229642319067063085613122178267065176670837141959629104900707675102294840577955743822690474799397333515027340248677686067800671933748437938409643285020878067715195187529739215842607254060407632482623307423442521530269168665893140846810589785672684634010638246599623777278643763080535328154245538186971765548485951495089447173566914267889594768473322781103696664529067960253829201304413269729579946965209334405912202098780945560923028139340240326961470068529432674302533011544928701900451022705224766177258479328674964199437399361165293775793060030270067410020735520240792656203670844432518254640414127583458742461377404366104162368160270864017768389618728037981288785209812270680575483368221141205935495701938592390795984456107516488963619213308196835141000188730940929010200330470042533078548722524940733194802142976145497833950854550467955121267758954932069134851213122302643193244989937146776241873475627376855605393974372086125423851191783579260756994745539790063086948498049679942284264225151013113540834726523974858318975290333803051815555527713942770303367809935313127713963440858515683117610911074837449299213990610479647883195114769881783700405179257127505622132310187186809446437575185711350244222727417709056969133421102348312224153291917749051675574072888395789241527373824284722172628032175617128530281765357362187520565332431996037281871214849658767258174270755616517632698689172978260114994183797361028107948305883565466541582907961615922978114639264579377214187123879908519264526803769824905663121458456952145401178567303743990559775791865414880115711608289263109713631131726098213552021839795107317527396150214295023148280741659851935590873186609558980317275099197180990319005795024171534534336072902292259786486964711344819124558500238323780963905131726077557736951916660765805937802671543923461605464390575834602614737526057045833628098203549852800540166974586968925289850575205172809108069115357163663861014190570173341241986873044024224546398174102628970439692419237375803809290033366869420205229986789157196772168626572199045616808784637414918707138553431350926049938354273899856753754343224311244071217480900999352943424076543948938605537353822681408737902613350584342984088546164104172974534170796279853919619617467923064926312670775551242947033623310975959620959614151178742145043994016608800124929098583609138177710548990725150459661435273542442624141868769473027746166612945318080755217383892128061552672408196564728275118309610202988690634238295961935305197680055923070127256295174095529743422624711973364280466558823087678509250770322993636743309955436528247976621401013969354362846981583009682193703189489465288609978410962405005973897143981435329192057053164529010511777051638246779634328453157022668278792815439478427417287847347479272995995617058554566624191869659416842159385095462309829577115616133813640452085711780982228879843459015531847546442293759531385336942513712625145755605561798266721364455645306472488489317911951111570883344976594551947000668813098741815346537314315618722476829831142048991956947801027226307666064961003702859601794300844680178992212210661675675572063685223563064097430182228264852588003953167278055517604579372747434335200768321609748547024936981698371906601225221609815859145655756921015279080633668103280641854904542145186276079774661352959600732347197238047949221405719615103413611555941343600230852414765404458495990620603128908877837686374484125730340360968741339643972053523477265670707465105887414984281432392654760486331200244878875624573076812113335441410286633730770018240984737824328546618179690292186320320001388659629155418640640534184533792162449919297461706755686846397808575355961662143820513191994832883831648321364759281182790849969762457954022103991784458726080726417818073846348090414276081636328667213173464839234424761981223543178572931539182085969148387807428266511754130952235754368004166576801616654768804778951341446006958538991012002187672985156987824861871317957156585598564110397070930919603918058043825000068927131948684315993855624497909046184763522283987093738402798894639320618074275202388700495684673071899354838528502951074409924122869695934969034437310996527388377534513063979575286581017507288210949858350229553120091384812693568070391257285504285041518122608939656771314292060937231156146695590341215188992469611975147304534809466569617757924933395002874376482635289673406885618511907670428828562999244787194391398073730068409060506885498139185796132975999596293803698581574344377219856483464518065836497191036002693756147718884717349320312093427237518052235191038042801838762522574622924248142616598429143519706258435600134825059929671453198597912984562247041961914374403601273348054558243449666007060187675569168170682014701655954691655127583282713844536502236119595008387511197273668844504915382152293660056292882029817437453857328348793336865553237654502297239822534071931962383133481766045738364660159848005332281014103495543137775716215585112489680064955286912422571987526619672899186542510767972901769136179570580340932959691921483144676069332323086831814936921307039301266863944017693730397945935637253416414981341687625219328782629128248609308882231538849227001556644542501725808024158205334268220143300646689766989394933796074964481276535915428181290560278639405657360459508513650604706117246636857403649863342712502763855454592602922312741999330480721333503730595986693953560899062076786306240454896354668178642862256746154573791785660055598118483664876679486963838010202148688645444756201129016223888336663386027717320907670658887037633240753614409715130990491024217175248286712248199173428183475766843691077457213490278170317175240488943962585789751208825638649742643849760805018052497646105598387450744362846796147928821154161783710255497269802699098506756120983365400767082714927614762960710692506867985874668797091608298225324723076568498018056924991334258357003260898918068843728726329242367034870073203202790139123136279521660012953102251220578012071670235669644253674621613713048768864775649535877080400768586879955212074920360181301495652739401557564886935233917517171562208304630548341822413810481347920219211707144238372939516883471714091007776315302402096462030170872495573305755048719240768789801302634977125785244206222739506566153025133534952100913026543055748957103971909453342088238994348951711538814889158155451350777634166088779750946214907600877350174017681698590203595611432487539897654364324448659070843056129038863373876003112234619133601187901664931390652360822337497889056073363442231215298672004237255889658445614148882057905071936325122112127634636918737832055317976024033202886963819209642596751090234868462953374515794193560863110410210972483782532344763070571077369266938334370779069739155323221846284499654729068982286875964869595512323162938658095379591179379395444215370791417980801023702463586544564079845487298328428429845607106841437845352715995423906532519670855087841866901486886867088230432020458931877036364574325275038750006463444058395391918366487538213169757591530004280119864758596165298396030716916980157554684474540029224416704973888635616031568430338378611597018197405957631124162398474018393647551675228353669523818783634032484074990687433487479736372992380779540556200389908066512360117664837408137715355512536661755274246550216336222587852582597979555173938597501689060981916559265160895522050567611296047645136704346426827177694463427945089035592896888806719873975349012597043421231239066967296314732075170055692030988833981508304262724579169621965514129177429783002075790524042509102302380219590352020777469362453149139955366927387980528536381936926994662351228456604542353657097138510590153666304656173819852316611517465715293550384886533137005025101129565549149109004173005908652316175887862051084336532198526989520231520120105961108978242403021132172676612887614947604772285767774630557528045520667102762616787346258587256367423335542857043762720317128343656915593139170042155082401058957464432643560891227924188150307009458954419781687512893356619647963275607881083041509416578116105126680916446898090037576100758522863332851927403213637264611336952882515792172959969392850267029704078332930652853589138422283614451940438097049139936585154650317107606743123045340735938927866078343828984924097774360425735969826097483980834256639323532794833016749073540438359172892744252323834911928923707166600298324178476860321627405272910985251636026220124308874009864821271590031198370063482372334580672907273003823842590412649734484888345043773856890180180420542151033810317952939950484552598786234719443027624041128220088438480540110538176528090845958449458562725822507058621195120909215354466865725660990821015723667990528781314961535460252210603571510726326031516087886147301411985351105994547052065113797040386761925302981382898732605012022217761300338269270147316859957351267989003098423382580670341228084433530707641836184991239392518805297392643785440279962089373534865052279814733997468182052259887935258440013431070051633287954469469999535220141384046809062263015465368315464509869172138540022909011195561004090895551247505741581922425669313059473932368319188105064004722864291855130164210443766535564791916323383322177075731227750595093445812589597821903012522141587699763882493160267430242765914561066606661003202243472843855753041277659929843716785631932696437253659922151963192350429218155563063824739539868856643948307326740783774482278239910051225548137185608653026814699616790932636099453121350482445869520883792563173340926191570142992280332941991252822279123753690203974473589553501302876216800484767646674305011749867188315159244896671163787090571447085520434149241159604902884257341516911936022581657225509236467300743191916169587611190564324914386223967905954823072640231981264792760047160313588334983525809902534397476680432889708245105812005239688536652833603024874081671780671929030559765133766424067761233653518235863574027432635697615961314689277878885655911652246781933631041001040731409584125306292451733265478094466576335698530176823032865143776738260684649261948349063047021989454799493966533383439713372262450242975558955518454378439849305082150189539720359922147368157592415542467586683645654016772857155966057771409685190394338837065689637279181708415237159652817235427940476978184665877953802625605966972548892373475954315145932983724615772608018741687585672461704211470270733249008597032625261281194177889692364225913423489960995257943336914338615634378083047035496844381579157365830913314196443080235350465691783802819869435313044865460100503836536140385844132286641113917524063144110800409842309203895607543768261552870456490551138749872619443286492789768614912537214698560619101067083384778779925945620163225926705499679818679385662256113222147512330145402699184983083732138018030494458947200428714950706184228216745864836385156013551316266773413343039574944557289209638046286314677160221841395205183505076662715760521438828631134847065690787138045203731421048143486530985790888518017826955404697335575881868692643608941005514628037984522120382213911133309546815126313027074031806072208728077383497660135738485601988915090623910071734787881283684857733547129734340713011881128566586334668635553394479655378066746882335255146466667303842612944029235293611111240886108592170404593391214402012642790386039144888089336100781665508209062302333268152502557336841838068864862675672261709008450005316251238081552016767486303176961679535872521182430235913881683221307628312220388792742784878579093307776891740602245949210385933850469864993394072453034204564094415745011296083159085485831831907161316817752397017202951337721514636884088303780604702129580496472220511242141898852651637714319003946715044390870700049604605752062721755356395319934295543924132623223679559742548148356346481028912593385527693902919352987463279853815966477886030609815193421811274323597441043098097412994097128812289909455887654692996936771140337550732451266713069195516746042244729347750533381214550850524665111344710774394771747305935758369403240130332637039753378510453880033816672700555950419342327277498483103593481691188252912765259664300847070107205659811522442494733664095327285347234400230848368973524033387179521085168313825731062709819244103563520076421230228882026650465009353255954863547193063795369269878300028586188512480173391364938854954168880024895254372662873695924470286633891841176385417913137099796974865079171762173065264378564099776241829415216098310800118846843139739130267442530511318801643362214322609615459433545416004360582738253651183477436906386698869938593692584148473025640172177300909749208959138336910169024787718123428429931512654745701314310543810800945399670838159120557453243913346301281884902728856572699093602557409704300002220588646021819147672828324574398577763523971549307703809550560124060492950597850375881522058798152577780708350958056411695642361061151326627043781321160923710121839459582057027926315283761330669538124977043537394082457183615253221469725223384213020006309444447043931830459423072646819325745406071754756331153774136217901729279524909184266859838800975489204259003176411872311264243726099171053264198442618167457602824455232957420970528352389253838430224310223913954705952710500699846311855578787778921424330204864288934886320150819532651271800178443977543866223556786919620508789772671771472450206179927810375772433266976386303931864180065480012556813717908665320735938361075024084924263562123519468538944374970800314504836210357564889459578977796152395973657834162756839689867724144638718629718252992414359530159143165560271240202918163533976721624573093027576949464278207192783520427426716831235916139661142475230538905491345030567577162193010684768418654022039649070319368814785584177768224935747494396529025927028179891454639733281367498630817670678530327067093274738840671330594245028653082905083075293230105963130661729371492275962803053966409191649629930876564553322686313275268704025937636907392309116932291691016019854592040917799466938083266791715493322217278399201660818538776379079950076481440158960255000594476247200039920454547147929069345354803563395354174505519952859132541514344154156688388305870729202180344159041740254165430827449529350520071042481152277061514126852081593983076419598842788528718040171660835128276449494272558837206708619279026558774359217699590160489221751553536117368124710342401862255084553806418624977762492903222010787422023313757555063517665504320413119634153271257873196559508502469425686648588814002359848833615109018425026936752059240817564568963832644263921919233808382132498830562092698263163032635976212500448176136279227964252086211474091740258684790088849134984607622228996074432771477150302513587087362280828835175647652015913543616690799286035810892464559540239012491072419870252248650253663847334972133698427119604809811939159821297967928070679352636271337183548645882580572419804194124356902918771722771322108523539982042998818656356631587886966106144033012841239089469063672351247018155420752813285043686053175259386235321818254848103649464870998503745384220074896867365739292519734717396017358144374286300781796698559862057182336716799975194003397034904871912973789777667306082722964659570774565297449318310878189184733659223557692893316594481513349065208557216636810699751408476583249086671555335837846889318673878748681321293762194520267710755881759761074750913092901776314880452645363796879131066312233992124565385585417703740683335498592158967639287769643235620925554332332566622258405257864421395141695247589424128370639404733740112679879447292553966606726452090666149024805708820743772635361767381272070736801602202238706905552477835040592781767546685802056167084786015822941457513042029221244799340790166423885745124774268838870580175372682841595258657174899090347892179203558214695596690680798308414845336665805438056331877266752973915564504202159395252382640358068132745694119007781112378307136444131969372575320500597330178911263382656149438825003408284274866730660097227045804104385896601965795491853291952432237043278770851717045860190823478480017429169530325692595967059170241827956744475983175444625065558805529242729269500215027296853028769606445959687105383372546554080817752336434548827157501839402050363446443031982485595801336262861090024513966316787691621229706456434483185669883336397843729118243458907196108740124472852133504636379515068029879350603629618456051818239208132998772481568211974021132987536968405593687130141918632672314069670811378570513792273282349437229309268280043020168067011921522170439104104162381259793539925034802443176409262052262749451754270919681199129146001481693322331521542012117088974640311969077449235124755646056454981662119029258480450643401404104636705748494625940658773712689833930949331466599546964637769700702445323526118034477673711327638358545527013240170294636848218487933550120099248926984609584132034258805022853230975432141108579013544732996206444252957355056431470667851324603231223747717332467278789000173134906353600419610345739444106330002773675389869800611248743136571300579265922209845444900875650192804715332739565698922240081107474089276713274958711637509569681996519203800845823272192366987551714285737407302328669280000130839930098217850366688919569308379082822431488918263596494875926306260122244184458651743750841024430326007853839426789709685898612507849943475439168663711923840488872766880647557642228521240913738137277134671302597054007231617020228072616065636342158856517796615540339325050884081353736948428983661583113214760842230561937653686734799655116644916817971887358461833427082665792274581033159897694169304022003353287298841878379039977288820602756776460480147699967206498457298030426904575070289060779055260836132526905716617110805819829068705982603525054241706333140641642138864620034033891496597131071073774502526815469075323000463535676375559950219988153726481202612276389694605619409155978774705877545595684410345764440971830769992112728756161175085393281174780868026976931480135707273679495620402083149397922109279449506512105106056739227820782481741184788741607508160121451922456406137631053256476664787745345846839780662717105239820768479204508960956903253888785786643953030939436815997388469268931199158998337948002839506169718682837776582612198508551573520155898028544320707969502331345863699648180093739193518688759164173015138547881847348272118048967660064982261164134825100199050934391351444164714523782970436562120128529204514481303871685021047627868664230293527728065731335581250792172366292772866244170625673040000239515450751491249248650482525483616998999863282162935679556424870666692220548103721365333399125326394452113333498513081937872750933620136573175114884353190054963159240625397318020720671873387418022425004286578028304565462220270499673740763208795841015081735921502813052019354462148145623432779812494940985784712229830632663135470303078948805674623783230117835724246505763002145686965774039523254534522391710240605088293416121507155420434042499598734771654989195557792473632693793598776802735879446697390923960302238084983643253800752961251150093284803071806188648805009837167840316662836643440163364817170800690663584060358803564427126685967034985819432641972509541756836536640753682278107010142734987551927383972893726359138345639197616635442679896149765499159191478123904330631982568173858485928000217134240926963566461175216734213923739051736406512761137551602896506548638236974455750392031266827427503730694647700989686478533894121518560554248104033171122331719845579969043796725061944578667404046726407035541713373106974372850554629713381956974926321997510887239561316836572307988583844759763932217183804055038841618073407592002992420385615620294241456401103864545801641310921532167312008879634992828089434444582588422737170711963714514451315332600706015596255146574863645140267136570605215122125347172452228535384685108678070261694363299718900564777186776964543264419454220518080282219347696442710407866150873093237155392493645856217946305403850610974544916714582776353411691330027482398387460994870021166342249993746689280009865510527586514030653897210704008139373594113354159687250207330535577558118076592406423904564006314112281013774492615847040430647431919326081358117682031333399931315540077031289599319146390450265761859100931618307377915115969507067891580665697697614327608674057478847322679417163047716973363023730042572942060223484656695636224756966077586966803401995517641036727988207083898088894056890169522137513541464075122415190955045672881616526142853249182445402625977480782290552283676244339557550363465974074694924692985003295657085204441907275750341864088762427128744467178418426301344745576591167882148316502350229942834970108518132540943531474411433288296477250160891417269128698863605412194252824176020153012460090298287329774163280530902046044421659862346151038273778114125758868743330031973068453128007787622181237453967288807352068104144534466697493488240612127737570709759086940818824473649215771789504077446086151432922714600922787483618164471511491623473535183464357642447383104169922793275104688482485115016981904968998062928403429383080494139039765637445753791135064803116014514084871492664931464021276315889097426854992216931921219301210243102460079461587176915748286726993409780407304425732506294365096514666676858901967274866525699443297523863954358051782376543282576216301640551437260187523540281715754852218530545134278671945232889768649640564068012920499889161874476284507290184050320206794047281505505987732963963802175408703505791337997642475980204271401355577614094980293261965706981771538946779812528171417842378318169156738546375461382541198461898476754572251010036918303642551758004915832486547176584841924903967814513578979381597636218983577250929600839078595250414607424831446807367479201668867494756815873242015623279352804961448276344184825895900719597997059092108441690173287731055139593657318915737108142642882499982391277967815903634207869697735255068300437313383392990200157359530397355454398820465980559812092069454284274879521101744438631149524562310909625326371443655847607707461532343322316239832110347185794776391350709269755106828339802741770453045033903620967021394973871905622131023143956217981484043627575491920555597890476202685506608664215928306448592599490945091952684566340767638662242409043080644631753757170811022409185382507883825709060734742949885740128244017247866235032512130846783880827546355731971288619311688787920491294590949898561407393061918376403109833954139396207044556107142382531082872466715213319613455532414710452617965623702805399464623660825201134664265332364177902833344919945331864376831594172587523584026559997587340855899959415899204159851700281968754654517574370284663173577833441464622078175197922191515294119012761533501900084652280642901137576853692443375400505390079829651798854031429352641842629257797651503905582835526405912028273684051387501087708553263238688134289547756986210355148626128271027570233864125587129609272201782392993179553085671387252026473003169237453689082919899203590886417621148683832669343018948538913837518467237626411283524192767235813396858144863277510199482992038488305326093690999278004256533941010815801414447391176072000806895375119453848160585427549026079308672564581973436862462124950073905489501277642650928223849655419433875383560098209418021733174802635069395096051385516455030033176667688998730633459085326905280158171365209186327458033514926231543836484719402813930861665985014607939307477186169438455665839298581265637938488120328512596380511306848824245438272168617558931787548015343221119620027425688847650139329841061633254120073508881444899668749518711717289627831955942297842327872067871034697118344533607456000356226582788230412154265408455591313966699761800027037581917323657421378573092721832144441654810861810096179806100993702155462139726116657609499121872468287053486912767283794338959951886772156941537130670705473455951044111815606120983419822249076438748317394388091919499696807311171016667690548691755427707885811117094398533947764716426999748458831301645046223695510464730533009056320740648788398822281039987909097871877930383680690027693516853596324704615847354491916172007125265817011454211561137657843929228574045207801904814546069282182536871033303987192412320601621433436785810487780935147434586811473901479947052326588282959819000287640689986005338156836398558120646245277901883472551077342582988790537377391944071219734589529579006464705869816031079918837353844054495105547915272009935807123102190504839141369257422453459773191454703120671351921201179868214636402239911644179763288956661666220919321620456915642785547550971410828478677021309543471574543759823579721725693341690124971666956716251635701841490352641729862557439058400230398896802864842194966663300586173202079826151795833581660401995948778069585921265572153446099795739938386123445301823156899007140968860876227493864373235349870828964122208512370009347173967038155283788132175899198753506242136722651096287406952538698112584038850443999635882035033774767050416465495834417446322801924564285283370198189281901878285612267520444503839958654576535572782206335080573568565117693882591535858492894974778747245295649293198464505419754546909735720003335300476635396544041460013223542918971897724775614932690720676444240732548513480021948856491799479969076458953076941595239634065213583576880058358815813847209210241981859571382725759168218754185346362225836852006425173967932439624626830431724828323338831987556535803019632493234989933375114882630809975929103025252525135268741593051074657688137628127198095429031018762175276961970376335503055547585452319580971802440355222754892772289102633273026032573013865631432982232903057177948911303581765256208489582340144713399700787315134038322886003841467387815273979129369883643425484557595858044478332626645054847870869604203651664386475549563056751199938774497878726249549104138350813194049226084352529939641208781061806199240103823888585155551984724883679422676181286038602128428936330411193565449527598130774436124210835692998544790182292991499681308402733614909657845751858246104491509256774278920149029863770505310242786336810638507863509374228214183318989563695775600577284626066124592510766672356887400014999264404366503598174460685932413936826777219950194847623494912574222764826323288323155584951368990629648663268490173401652385602862384267629444945603079386136766411446260850883008569136570507169506380614303003068466538639438492970182456721124265016397292195960412403034524559221648590454165096244908114506758624274616444878369653087775221387199413228438549994334569039991970080827371956326348444529357239303724733517963309281125278249644457784375260892401416515602924724478252164088958304217841222718367462199864944221136267809189903017346812563570700277074495000748965099589175876145224417585638862895440335810856311741936199737793582251927796935972907911587450674417350199069559662403553264611393422028966305652959520740965018500807289614856559877057293689575102101757329331706818377770394476913026995897228301648057451438904956688500815954907277892988713108096264369520965707162031922871260145969339076744320014675403779899194580167437191345091495015980007784396257756490132121156110246864424280388436588619980088287489572187948686120019087037174371071744728237332695916171067025509631336581768894846748767857737651581056704519273150282314114328892077131682582972171441240256578353011856154485241060432272716988998986260412605623935185620995417440223269464131216667405607161022757116882691775088049968093100793340539358474283404648373032874227489287631822273353276471521753456386176646911279256933716908708439893472072995256869591367509013954102478116475414762768653765962485101988689243495212507334172961191971345389182171082907419361499570790782345377785455182827549972366228595967660349505264729507850619071688771266856967172663627267829890523396565366078025230410865367679470974277292632500949115406051214150331349466494482432211930941229362188242930749818008173518656072509648485772788580557644554264585704643918882002513392481258357204213832077726732648910074589495425573503481588244774239610313699888150302948151336439548319632044037133654290482209654284198196087651138698576712137769771580875083993309137169045117954234982931765859130128245907758325643337111816196462272165539441424820280136847627402757467687951155133377431627806491351491843455778165857726140654846610069363375240085963014864157267878208665453306952270134516933762234962306333100725954868716688423692080795845110941080728583551498531372796919491303041592120194940087369712402493482652449398482964190889010460806241287161218882178266371842186609602482646895318952746201602883647632639475313880433155171955154684889083274866976615774211876183465751070202250752604809784373914440907035593935243201652763834182991549216832526614029084667169387398930292487762969815418319093523832947881343597108602442474347409030811544043005683785224219796752046055738532235724907872558058272027604327397510552594757959925326875487338588240874229034287269626553358763264214302034338054440118694952497403518041465011210968496314432357128309028759893265786119048987516562985534622360358441923310550946354170627774443684741107321760087824592313145887373561074139191677491237873223981554472748751579238047889596528619281406414029624249282235274339210211160900520627113806971660933563802760106768449501181174624281078031533697249328363429704816358937702544434577257524555692371021508245822182115190936491774310312217489912022570571537262454787120942187009542181782805734163405569683194570311471656020656079957767268598516760091139280470987614434216143244316251622158410280229135624916408668454964317343815053597558615588382963735806184878911359506588329219058808127503308001220833208769021405166923593900652642980767012070005504426552720903867425038326202591492150363115017238786671020497434102748465222075362628353486552744565537645935476700949646383730583262183382845874831826605881118130848703767672693365102689438802152105088658086297984083143567029153906470216112470614625021323748899908161660123577003599732311812801224836841752162956826886983587229441920501609211929463707586416918051086442634379617173803752206502575403649971081854582367076780834937998666381363834435865848294778204416437963784382609530286851672082299442748822085350669717234676897015508866845221996365350051477781634364529521497801762476789455050084303612882672680055003960688994745894849896957560065605891682133795713234380289616160595034083177154514919483083914048192081472119038373970078938905581090172642017552639855379101373175653524942452506652445343007342643107391835680218926625110743393122439506817631247209640872218745325184321018849536588612454161800923803632420932163295643556045886776653926313480947561149907621545071614961984023331639712261017352366819702868566377381885559524371428422646609508895916588472304790547068157587026108630339097072730747099842156523886956807819567705483237118209968136531175593193108182462801856281138931811555714509992588143083604663811491709176924837036144723124612421165015861516109575434584585333246912092391955236246949285839507872922390939832432905805477769704757192854010821790589877896024973715876672747624248582905479534589521963718601051735257647654563631126528366114274839456949791639120847019719252892527741824488790572924512708651696423663400832482564646186045768789235198922945782345292416386164599419471946491390587662289972951308560655835046770036569786707232953790625297706805971848212729599920960941590340752394187067439017043710022545684637827174285953988061364931539206559711113066691953467109445814962091365587756241186339404458983564298763795232650535500788493204683907801522006603807418808514395472694673357896198007210749234641290155827912600437469278617734790211605587118523546338503084058470870698137768327153803256681380053755062116903738309677399544280196014436516863911285162807246412988591051061832226594520755778184427070459753760981328818592525901636153935707993306550638900047994312397327558781070296188658584370358665594566164857863512169930763121729146107824102923725951694967514069159450444802704283110274727830685575693639043396518718987660058801459756039332873847438113487791640656093994665152113540882360658474166730844483988598639198005998156705339610585304276101627077077615892102005920712267722591619091719123426320725611007755438751056778853461399759534194373060852674000673862601290161299587475627199196304800360962805498104012772223099567602284163646406870090002121938517572900370793228214103380554823910649873112728739417145722893635204812939804896596596375267867024868163688312198477716372200464786378480324328524497370266588879807232604959812516075064817242067577992976788614002107991022904555479019774475166763411111762234646031040329555981198460834740389696606256267308656746612096262032517466806896542768342427889256929348971625638277692777848216022327858780579171368558288324941192104498114273727750569844585589062835221609404615286176444894080464365723029589756121779163988651661950128636782573139411535780263082915422305164753933349651648932031314925693552701416060309795237118863305321015376761536953144886772217555924973821538757240124884220911226374914083340875041146806377740516988859813893620364270504003925042247240054392153895113186550103985261968184057617060769604744476700895983146798987562241859158002411471089485948042818706938921562252319311503036355069055523121113318447059266491767070492158494856382776085614640870473237069115623558268675752244829472675217232355720822378980577287504308734716893355702465201102170709947985087788613581300689601678062262002005399583879110390895777003787738570148401255154973530275710730350864126574630121899210168468120487119817163263174333447020782170082345966291431622317143130880991125576918525964762506394019403853285185019969857181674151143575891262148688181510463417027718172352673886407694788290036088354571643085111958002745525611134546883151063007906629730895012469939941776011486619574479573123276799164828584657697361541766207942139913142610306480302688977418560318845791487004778472628936347752648815107026682975658726304428854340047599081547678329727317642827250063698063771595127365105036683436353634236071578205265357318551228731438993771014796302128525309009178813902701776618277381429423484232509549728154912405988721181125208628478857828185876269850212527577884000399304467771741510736530984119626061741776079952921308026535018823027600602413558627296085465672151184331646117355665702105516373466412415450233199399877683997675382190052272021586974642732752196165900234929212781440577462011759245759250347039951427792242687858609339489414490293608416357588500298057390821176536198528899620306405722669905061719944910947602101588770090086023857121047981202563578093469206764461767914238578432082335113352458894535853615448831616330270964871861116384960158475376090104723272183257044613050429071746370351267106746183669052025064176795078340034626906601683941990012425850205976751306405822572696441097336560731377035385510146073032558096125063842784998864195452981423964628519670001506698100894044593985697718043653008113869371576707556045687631688137633347866792909515778129770329435753384737672907726133320123345521491799541158018541733683771278240648762368930585386546160864346673394808557275476712503893964797406624686599858904966111524793751392623632242345950394555218922114532672109530461355383942708351420262227316006363159420903252417709880001774793192197684423303555862796692818357271238704711031464455653632770822717538913302539555475770304593840003491684666337592697966491882939892424797367384788247468521688930317872662835652257445705476169900126457963627579500318221243321729414572760092268232869998488416061452161578591655431803002506104990129733685915338264838720274940915772075496039261206028520736865635443708082426743309015022505188339056658092641479571882489072607636873505879601575871585333109953251452730818906154253896388065458698660214244235763064980653098993545218979906276500860008193845954607687745623653172311676874589038238009045881043044951351135000862342285898492381537141111726004773056852149168748333109895184504994577217103978661703077960803221029799875646262320986645825974181314360689454263712468558031185415363554219487451680254876661070524997545405379144131629158951445110086731504674099219514854949851733143638653302868400174911489721913749229297878375606003981527722244529534986982244596661546613785266084632574276787740046329082335776247927358579911008948599483261733630551679539376863223752162370364080051973100370671601426796367351458380172728607376585549341387008162256071907756051063806690968261347274220067047111724306730845324242528231900023768148024405888387898461975913590959540859956554639362566332178983359405928201408825649629049372768428860639141753208392414953566499499735636661225980613839373856395409615861544921226591423561249635016931061181741510922240529192033573752942719580593626186757206080029585031647997459806563755926439948077679266010674366773408979861566072952976189933199341686197736666407188302030134881064911925228819257220913805323398258155931394220529773690959705417923503990907822550322345458001277233764637493502190696186432542996572551000836505044670622542393627494030707175495261328080819438929449389037294124524722841268383514191314817719337512840158869284332002549929890781768240019898830983649322608140307860456768665407458747126067854203098310934773978629556883860730443408005359886848355074613872426365395511328427470136581455414129584297703890888679444436408704727133089429162390328737055865733894127949404231586506820048333037132560428974962701515359701189794734765470046418549684626167182551412898621910057706607982923668458423444075720868340128406921784701221384181132886341163730962849125582345375899586413254628968233217622327654275321152780197447145751537292111697833018395097130606077584621402567366664861039123915698296019696116752786828706121112064578580894993026987996549145877482649937910658682677734469557980042254340214950125214620005841834207437520052292521734929326582435643557891171825283493374045289877749668029921443155789953055485743583856967876559624722551445589054829396770544814527338639660983675294183317689672450890739091963019708434503413575572971619393904240915314505191509647765522088004293408652615811769469832892464476033476991175828107738126979788265574121455480038811973026967214231945475584068919960536324427205692429966841867079772886813228449872610781559649522271332777786711159457978795233484314791019889136573558862969193223361849326832209005774455454831233238425088603696337452704582223286171114672951898600198073265827712493670491050782622958827900606384523187748538239843425745268540797868204660491793764372247351923908908925700203210668188746947586304215383152046976632839929429181834895473306686897548834060476291387865576621319935624986758781567125936883820594529597919404693688830516415373070825982122268518935423587285593424069937809381176969133055043607593538336161532395318466346136578568048548649871998023388087175848755527877574623314497542804098343054238160187467016831377288526635332555687944524281904297312646367812164552021890465711245180858444921976666149417392832049554574107970306522050978158889543932460352065839658707964217989003556289086833404551983053466126772738305156957960968818505082741477411705446244792742588801790189754598408508730820269573516570153920632275605335578594717190915522623466612454991527712211162294162635396651501686771700181582442414028771324753957311528855748157773076721379778293355565496292693070214685872225152358104077464897334787747466465275914309488375155200312543889053042469012280198753949178897125935405462706617468945378676114596103239623903727948141009013640997626165078147618983941003448488530884526013482873344048156484854720865006748869083458225764162282748804076121577748040880398470763995840020308046703214006965860526821091318786827380673657940457827976683820315889142449605134540157321848844725513621077687929897911617580745632391558619526820234475945225714472573350454650382979707015173709961920179809014586619991924020944954274302152305398923285498708388304963586859567815822273313586251438144007357380987272168875806959459370384113601885462179079062678669769450127167684618883212475111004220328681319897973849981939128177469947478071735547573894906280183994152642934734954604902299609202610251253253831762588956878311127503262111234471909918007455950359769849162746751469481883394265976066177770379704231344456911315378397774540163865642432358956439948920563520053471206924622849183802304988888824738309112895664765627399914951454089383818054679755008072722373413568918998555563876309510821602457336717767162930196399722907553624217683758049691227237030653221104974459563639479624652400065299752292750978100784172124642559671309181654190865536554357828983116627015896225120737756059975750059950022710047672210047929496130797305421678823955630855028548613362959809717905021175651380220677744350609155911306078582299637707715016792205293949864852201310290894840351129640872851192673620406851948483388955122370911585612308871183609672501716238341752009589484613694966590422299462361662278488655909186093769981531301471048851500302368379122870423645308929088554806777497506837698880086572265326846915772266893916511918406490673824452928329326937904090829271236039471249234856691166325487389695002147710978561431277991784730094748144739227987393222402846118191084504371795267749185267983252034381575365029962687221802928999643835753880692063326691939440551592661366221822006333440099884532223983418163688755851081707132473973293664075408018122458837972726399993843815855141834555379690988693750002252111036524863921446563987395489069949075446800304787033474695845409551319796805366292867335314232405234980604493885588227800945546637739865064306449462149827497462155733407840025496281628061823874815422470922029750170337692968009551585835165799840551401615545466756124130202363072524378512450795837467310778518895797718962456381353185430887853770608764056423351277322601238263542584170358189472680855166107735587333768879387685831817843737756937565954391757021886973658564985676468470085469983980239274806054208705655125193044542922482281485955874377373339084630090055091298959654803591243120187865237086562306111012628550630589719798105057435104516558248533139956322551849076648433071156291194399574843438665644837241871320927602679847175302368319231010032845675249351621031355734344238023646225016659949923248219054221984893232266018360379308012529168964275402618021851924620488762306870911614902766447251936937624358414527532363221530452943440050708723402502785706034975595328114020708837380331288233620565687991939933790648303763908123889825136514747546871345455444607348664074885293724514669088178871571576871000927502443568929758133348831157084710695089350783309045628449051555128049530528318464216641201879557794636590843988194844212455654079517166325068623892768797079309116914025867278283862877702275955849763916455401937935174517239621038136824946799450043648538729231879316087671030758957143169340036227235490030666266359432891519103615746800694653916417721484784731606487241855039572751390605133731931073131748707180462658094058581476045970851569057242127848973232163467397293735076673386324160358132313240612523980580684343292224848055116684831594169492956872721641007316671821818304243179417112962622001488985003346301680068322835551178895484741335261744670235856784498873399037353811690941833342507843442214256760593744553087836194485377050072546733890247292845920505205338894211428415766795644757992363037034312965534895150580745730991902508072428306650132080530106038853640676075836677725619712055469332043500031571328703573653730592189459708828699748293443250338590047760382390490550864669034054231756950544686547459358990252016946507115570196303567162451205330138512439024913502822669034758836799973722014010645836906701092658076981972079035184959418059325385006829747740014800053511610147506485503337733210318123059934485711324563031412571852542709511086041071545074838269261344074398219116346223052544990009790391445421009382750353194215166866945191816085611953420024840015234159244540026421318690598506160037478450551881939143916373182619233212458623379568939205173670381165685356794831919776243009848586796285971314259526704181924295838520601727104209686660105473090795902401128161151936206539066203154948840194154092214868031610488920149348198751099404333451903766063310913397499207667027553266310702693516758734413965217716593865694023228754618978911924166948181732276945789244791870436481410423759425586172888092265969022096849373363938743116407802297100587691881695333714350217539624029988649711723269558243857360562984480137574723863368897926766031393645576170064553404098307695044431635411938254091773452713214875257321223428345630480953353202108198534396727366695937502643445376203379020316696709755628568089002295838765793892839387567790452542195412103246803605872417610770853804287477732051788207083095431780691293975416690370422724121257872596756937043353154292219867793990312685550746104441368355127578819389495295874407562369286889511245008281657933109754892230440432086072975546172228363853032000747227450055084124520461876593242337259836300783134278182653510561138010048557425778980966152071691520458146620930681110918526439855431500434537442844087351570648814946883435835209767344326504403904293363256294510515197122984108278296318741517001863046676968574018982596322480762610858716007731311431152483512050478019333627777025449154009270696502189195004406925530564278631056833901958710394264159183871087181490630576575968844732184414808131629699390840945905307370109074891763995936684484923998384199814266988035498303845577574906914440594005616103988062504523745236884263766341557797934609991406034315094225950364769763951880395508346402174117423303217217508785690259047590530725385304011549375011360980704969243568481030947205897132878404327711432726855125375477758125632086532900850213830028532221559343898427168720004418069994102139899554866025360007181233914017603459382388557395791724617671923964653753739351456385458680690200188702126529337032933924993911828423719133101736327065317918752478934896140171215512323310740694453223473848680189550013979798830375123658797311151408486161849700588953768478501240025317666533856960558238401745889720976092216954949791180173488315200309140248717053865151908599587023955298357520573203629906277105848773570971907800552079632044323553279401248079018260998328037249361495958380994141741933691319637879662325945323999860116621572349912705157104420491964648034389977542948092459788237432756757312675640346084398933313468338543570746490816513596740564157734323185591205953526164140197085341726761413931440264872601150255179209618107271012412488744361496367474246375442389054627044587457252227463335193511645992781283560982025348145961570155737461083415040133749096780541641776052173723597158575838233773496620342581162997355534738024537351040617418881028669731202517783263043864891515348512417142855499790723480573195206086314441968331753595090959409252252013395984625509978117406588524166372520090831556265994354121259374192132505358604544053679708541477891105057122354464728999999786880031553769317004974218304453346545140049431285258354166993961718956611575418659854405954671184955283676091934478008712464167168159145527298563076769044065715051573379967295305417072236451058582486379581895525208324308927143715744233849892714994111526791315633508512353137490934015546703121247515070117917715694186185644994771631145396772958486825583581944029154539333522030859733216850011181304092618040587476625460816480479434531915600588596203396241758188998370609628900856943238271683451349704863800984151658520261782171572994633461869276352192303883134371706536723031347725088500924717040586112845098045975616797565803254974108449633499686991356580210531313437254211719170132793206233271025761146134337977997988699098756249829777299899137329858125010608220456665742025691014727797907239698883753609501597796553295645648227895447042183273957961715827673419513593087076274368610742360441403816356891363689453842115434195119331587954316898824077513964029421295568353357200725084270873876246251470394032063026812781031750271180974959810265296411218180492401128944811707260372994552271499453661598422371325599942644940903358621454634189380553525948087333099596669799468194352466837862024244713229541326115780855448748835237052882252872002873508970724065324296937578988879033784911351800058823883983131572865600722153770821979013238160396590058173974639862335683331978764659075309865363136477405698287047211313777362232458236819765559394186273343633105759396732432601507879869137702447673563890007064173977899232366926178529333946623547340733932270035326006299778900872030896755519021830212471617976135682107495508080359186433324436381466636257842735772252829010253423224280309137409832593893985200571974098531394073778697290624474748210942907364575140532827956525040381556868663817062380126626512383027903335526716105074348928115202586361310215579620202499500778031332193978502812685060926015482988162476766518443454575982350812168231179280368265892435851781092061980665908424496875931671885531932923792394989055579958728446902793682077007556906209847183636382772068063857927449816498020964242879565791767163523852751297132521672347788093938679390794437902902010522497326637215197322508408081727273252974497629159710804765486547031023015874551052919784724820877948605095804815899832445374194971737222710264219911171304810131255624163455419900354408295176127509908896098375684519972244421001469896646512235786148725835465034910750909863304634648042356342791195482714047780843562211593421346729888548110943969048078188568427786088743598228432802631633378243403951485848865841984908118412731381924730778066573149119901131102285968240145692713107787762476238311892653293725151126365503494881164571529075772454221421920445363630719408338786550279135116311389676915719378775320595675267460739200952478409769507488486671434462711274024500457706773519227070836671614051346301833382585613627850360388373013549289541654287326094752188150102806420826921274872642555278262140802956604338236859922594526184432621985685704003014455006204975164813505819975670558596309176267109811909667425759740446050689505527644747033819819188811606179860287260787831174697953250059783119813284407679771092214115586466732337180163225801527748816565082667834719994070498123588522083399981341531218805074032313239104522603210376862753692086874076805354044091390570013575734006193268830827491909006814801641239892523935254953068087243286735088919476928326123718195594193852639179611471267373123111699188076091849527680938375684389637316073142430649440089918559622248121916193072767488952772021825602421660389795208110806094794467305533826825437043853858287751673432985321236610532733411090885962139455167090601816767289451832306141286846515385527118667760149291722633082398803273258222088988333681468848679838519371213964790531194809507921738332819986125466466783060450801041125267895691314165130647904512006858109633812045982566222980235764872196873298029826984831637445266845951964429693658447981767076134275004001735731712554860679427596409723026851186777658397137075397702253979525622303913977959878823155150763289787245026613290969074443122964132116306432532189037303287252963991589163649061048725631053991481650509161130513355725032245484529233703790966878146247078757431385950430574692380490756378832107136982522391299927146303741862678705779180433387107988740860849556619973430406920994140761848074134646451126279517616718102283517511350124492408132752758045380426824125009538211700109668929785632743741879287191724906262996062582444700914742770124681659481679845792273431983605936290681596005091038513314320368987300214399020310787009294834023596548076419450346649615861549493028262220463925794005850803288781822363366206437705785177625288124756549366832821035844142796431763680289350434318766474347833317193228432783186385975625244995028337055780783896016541150324580454907184170524464165523215320586317226078831863908890816825275459089974242136981049978444329735466100119265480061067589557101567294016188877031317116913087536386653304696537934620990068590461817427155671563018511826673602198689009422624728990588929582073465988820763437420065293135896837677961112121303170408404616061015391895326462467450052595266348034953899435327233420252797346304821022444847515518689187747477526433887068772688133956875535619444794799206715816649675637098208990673323377702673799932739354116853995494649346974199549471667757900557588974905991179662875114850062191420472293147739794504732751889650438937182309615985367937395304811069408316403661462989405192882648933867681403820343374868458259706132044652379176001828479436449763291932249466002747116635449885881505226577510800921558998905522012541080616285574461237710738198278204821177736117318135623939419571094099563303864371082770641096982233262077235606851002996586143133541693050607217802060110200484273375881129153134385982688838394956530593173390009033574451453815122388713211011187873073467775407168684899893752181938166409078691287239059219436229283919249833176604110853878592858855688650526765303302369745478621197153571011438972007442900770294126956185731478006836869471120306190853472604154515280024819054917799417707615654691148997749347615889672147906500526040852754938938889362499201593999986095254446575400285906483845248186564018962813416063972289742637118964970725770082567372781494333293526499370925727482777540046377387673626438259016700390179211944176910499855643640308214222374784964436473231235919187947107249870612450847446424395793247842196882843391812284124025691792114483968934615046105501949169738613151121763712362660255857409303001015459200913012603012886511551726449434662031391128283340127370313359479737310997051245710011735622101888178845320339244397780264922247658988105704799075893187385223639763065699250183242829550018051890038786632852057020408535685930942503847296523387178419736115818919465475450738117377126057371001250830365719431015270280983328868440887117584895337324939490863547317409709434506114750946177485151957095362907670226817705025185089508337558651579675164190271698239237954794564596046479430325443403166655576483479315983576252700589543962814774589023030717518574077593334706552111123273270980434911937620383780144997056720170477254178516906649324956005687654703893540818233560353972507961250095275256950473274978151849500488571646833086376994961280006754661763206660884345764313871155904798163832009751938700537091259309132517852818177367540577584353996606464334408021823772125828499312462478089764670993402184735367118474515669622042817702050054180004137948125453740407449861941258026582872115431236069158365813093134258813015505185842084438334192236670468410791017838093077340628901963357284177406990686706790954439072914102143908369440417469717149100764134529607165871068851120678986042353520704491625221667156062805030767490410697729068526746972244819783052313568594489872043209767332340698421985950395705289492597849503666792020730593284584085588279178224126490747170520005910094373502787322987677422248328007783981069011907671303183219966708356529061996720419468536895104325766188000767633841651562436446354071476162931082740300773264362938558193967673582879071896762356859105177087373392998566185179696027788373919904183631429338478295369077713133210051491659246308005847468615408492272162895157692858857593105731304137724538345295707383151933172643878906883056324809460732739697098952920935222089912403565392467467446998424979820369614459113006197709871095669563325290462890971328365210682306170634103142259746278876909255093372955574880040593179772157600517531679510630388240991395886192233663536898144244184070587965575925368158640372973393088559342054856843160348538885794861882974583105675171153738676667653789513463329715999218191050516695249816152157916348825187749956694326081056865361495868368910951506752498412840483158143235425410735036955971159082882638547892625653928854240528492109128005668959226261159799925668967357857625099487669123839740969368784304045273522567449787131200805128110358466354105237848288513247341013316735421627468452871882727509466774702489710590866684082299621685571994646265176248729290224501797137786584144192664272318309463769696918228632968429252155571888977756215309333101493866677214792711028228328858478452989313842347095256847313028246434616466611239659084986542580750848197157767760888100382088306110959407707076323336113827698362571428028367489214785580603616724789517912280326418554491361179583588895369720266200417631799272750492318186302780790932006180019592403140272873462983435826393955682574776567296023043224641333793401932352050697831585945131222136780094485388521716024928935788228736600997803571444837893268794185389487588036960847655905976933870682271704860803932893249450289054569418280852544312049168061069431608557053860454674002133075498914190784903468256792803602422067956114618730838915866554167416601033222823803807637308965030335871569701090806299140721493353295703986777304931031354032548884640832795885411791277280768680928103872411939125463504593563886820947784779622284494677560720552924609431756352246146585657047765808042780504794707385921207571706567000482911403273363898617426260485618922835957598456518838008900428365236618629630514681144414431244527511429610935620135146901817591837949515488174464827105131831170620142619014583350892098524426013293786148364804807092136647601124209230878042264121932347369249300595511786024530376421049816902597631663909589480623479632188266518274072939577116732030696143435215729466136734966904441431478484144412540793835937204369702853481418142007099422240834130470344031721939984881547828447695595293082779207208065461185077059201787793396328445026132414048333254053412897032892047492093082638651788389186844677987320751608661716498148042915361495376416569389698853009925749312606389488622319631893850424731243799377711835788639198597741882620323132620273603771624963740409193167438310440562836727304381986661203639109135632065693697842022668563124455758809472009896733020618074800352274648843754625915447527599710556589726165192550537819621953780748112339868022867901880964560738011424041112951704452651620497484618298882663063431570065783525214966762049750046856459211481374842183455050423110734678384235034563077166138154792390183569443811793094829560779370153716298146479767792793475610728511253498103587619013907052998708375951611550931669759268092731614688097714088866125789353279028552191164676298151526468734389870349637737723665216954766701339505180086915422703365359005630294957837887268757881383570811597046627860673340098572475524081277680982483567417153567330597267092331051525613172885985030571807594380267255357510894076300746242564345469830563126313257997677761889443974546430926284391824819457402070598686194332617077362153109142985953282081404951178374185014419508829979035037526201589668850294639592675633123332018740277912653045206085217750478845651085620320835995198509571774739542332416264017919537565657341688510428646597239665753967566718950058658205878915056426923205098320426803674264003517108896098867910099244822413482776817443991341751970487770221941226311918768580277152631206217719094477520281304302242811982430584764220638058436600884698284408894945833729846563004780624558880243037422106903049898426109856339589284465227919176333930398981870278169579041865363179627281617139785480071959096985288730436974782288486403386265480536097860861144741711876500572905073485710872227094839366082565437389281530800722022209167037261754342605714902016105042493853584003328363939310005523664182010092651099292234094641796226997512364415087443963808993944816426392988644060412114250102738702844771027730752696448144957242071058161341289269079947274944791350200386922163386514168066378913143821700191135963374917131744341501783208582867828347419296796777259263365855847959495482009720050527431477340745294733074364437014706904467077458728802847464925111270738056705361951905058045100680004755782045777723886392524523646908856828482796734210247059204064762424208966365367239743919118857911092673412034954937555257303534886312100250758729526159607052244127478096114525519317595037031194754603670364278791917678963207511665079771300465979038366982754890547740997963295294366408240190808250181580162738618230690031770809965890123948512850152471453320898754501963823340437906501827793202911638974642048611094609795166757960744181146192164181399549675245468109021763379281677870865218208470845009660599712453649600705645031847921995017331156114651381654801878681775981200987767214666904676689790347933965305020291460794639062982909508731754539860863351215255260047925942355889181108862345786195772234849778421422354613745713431158312104826440945507404694333960569069326711425917200841814166688088707191547845824292819307902956385229765085704573437923641336196659600869611864096957140848233731163111410488193023132840651858854466569427910758560274496576812546115013680154403902897449089810249768432954431926918575213615034388845183602707777297408677869267030403195941517475318345253998734042433259053846523611727695222152755067754124218010365228066977764113562487429944513434857858979610940674970714010647702109288543436275469776021642148762444442624717693635220973857916616259472348276873752258168801461137019567283962687515465909072247665764764463403254954337443348540784123911818001028965122383179837181183168940879156532424268844328115778070236004895687709164636034693805517184841561721722589687438874988206005343155554115700366158649129240127428241628556620630714347293506116171886287597350907055534434317241857330172755702550299776315494531588080447950801111632577064569101126309178412199814641358657091053181535063551871827463787178853517925868873241291656159556482046129410012484360154325669489862558071291486293899281784824848799964433442681841503804365327632387505748209009977217139237042170587040870157946274238626999948086726905833573217581607601396451143274989550678401404859922876082681908147268809487615154476284665108009203930522698796392983047127057862967578247274961863476363910602364329365038982587411664197635664315639902012483695267405855816648729028084109560384557993378503788572450658601125533824167435887056374233032082302978101962666287300454818000827133723629234061127020276233391181588827645965615682867870746406204658124132800605381062250223100498584307319070662389361569467692064962359651937293003738760172906859343988038290667515665831387368930819981021567675486500821561639435803801804317586288076282062531783231487911798440341021106155143548793619323154103361602592383339829413538947357369304459190051661880015140422242044990087699040703233044083910462647444446687950876589827318800485427123081955266624008476494439464584973464950737488739529178074614824370831981894725317881534073552979002694553474190499778806851626274511376813080178986491364183343190708395905106775587274088588492862712890485444407052348429840460937935537936911813629521549427913947270265124999247133364703356314190332494954974444304274896808013468972047832787980089856180141441643741627998307684936279319706026523463394798294975231496858233227046923742377379132710457823012558330760219937786736160302226046382513988016515430986814188864966620952234164518295486167725041457303863260500748150155809379189349676904486997944542747693555879759014879042613029276304911152724454313111943404571703480362542878547540716887347093888768003660786859267263207257017990295078716216839377576551605105182128234289234436250422993660488909960186828805792821297571591349834563172431814217825463923996487005460978158359083040486435450605538356032200518656463362469928175645367891625614092085371638935942647710198806099443676017076269963585721127744984915458419604445129103843957347565241036377699814648846248701617562631796910250626003653853320614006209077639572028671247066484100717359727193543105658678410542495380599349244564650221055033136928610846766782285799255613282470503708388061247145276751615693997297953281903144635967035945474503305711480967692409502240095131669514946940110984003784467884578942401889501119163807448309531754228375431642131549614916148744850944031450522494417100506093248737600635762989334247035012790390138885249595078976392969201593041959440121998069227926497185441094424294003772061058085375245856497783671533932805529915563148848385512063225759794105587202553210955417746373073579286291103822750166162242688063350755800841897003159357440780181869796813817061603518246460919573390340559580180573903953418768157756634464947669033736601804530979318489155577095683388949513193402890056225630055623398326844393368783449723937879863533849892473229498182126931507913242013876395185292390967309375783832508320250215312176180000795310479222916761997195588494078134435210552111710342550284566473927563208859333506846795467401744026571182126006687668347905601152164514263611327739350009135202808348578668512266954193213559127616369342003510431384023740541529111430593597185631698737825815126694564345034285918336143365954848354180608166961921718982142034592059805250196073079370277665745525117778754090559516777265848993266311133593261801724249425259579052759765084327433619646133537428992974685637714742069897209731443530787315905861044052606553716581102960484220850837426195074025351097622690513437985808371310273945396699183476645026883402913772779644696166149557082411641151194500524562538809339670777735396339060976680099884250666670576942982607231192698733207791853296212903477050616558712465125934198556689450856419957896282301342596837873604542134094480771041386659363748941571466126484006050334360825308121540196950131133679117830263709241539038109500772710742219611479701339662455080682687535195258366276946224505593242852291603228927749305294486787235645918690313918815088612282904913852077558381017236605548238774852909711474815749191679028504918785702607268568768798432489511198371667364487828201167842097245825266964555942823549613155991848208953029254574042352253359569694399767354885828889512355874275353153063485401770766637753706379458292388371125319995693361753158850427206845572415580828687774583415575060752406627781361114392588807261200854454634617209214487095559430225358209813426442632493738724415888253904204715847766430147884969622136583370006003528466879951974620648254345407400013247938903255087733094803551424561317103895951207651190288006800695055650197585812123240689969509943721074691692529929703961484085656508322667696023032831792114378478626483874992356675406159356028565971790055250297674851591108411462027950622670902990609204742388588556532321777558647682424492621644350174343864080255684393631337009164092354322680430720865576353353185353996121640963686441226416813346815019901380552398788417077508982718363558053733831153516027224408142886345958269339457174346166393133548785965178587037050134311845348093448111689960124420812512997439823052167128964181260195077859033256299699166126449917729065755169405848931758815543044227170499549710438275950718494013023239528996961464633638782958149093645260819802211066773808910296776898094157412974255637037978889904098520085591039023822484677629073045911453277837202465879681239284984065545331360835455848243136039154614645041506473803857114872506856184525307095396380692512880480122799280291509623814585469408564506722239436203431607493870671436858712565974497297496992818464937969953688745428720974559667038905125968695896916211225606000968335108078398042700784323335164596387026481141963619049172699297489322542646014927857775636090001197745625332469478769935094320632593852393787673212899412409007027028794529491836791175226670689655684255725282143597537339297236653580687137128744229967352872758377503261390281123157879561845051007171754139372309343180476050464725470072188349764919801979715675866509820716215601060315431852033504242341661496356190091917386087601127642964533434256367584503457572757550766881563566649346236883548387030771133096245077211324309614873849382201511349019322831550562891349152883261647938955896040685503044122962683328540799934744360323648217002062719738158514754968314860638537722386646674605998177897597455290446814255792426475868637374900798155305213883068104510939941712804922984775542765579897916854206948630343324732845691826394778964894031719559220644789309490819593778019841782106196435250419415741784497230973770325860955893114675357450897352055798380041931317133690021518345600423275247083777901821612210840493749142570706680113781702014323422353001403935423004231552142884793632491101521598801667132020478804948011043893920369872510368638731108803244316071254231362645770173263355747155302777736313740914147037412548923966355812963984684535527400777849897100035636273467760416846880915778187895120832518018333967371501440932351621701845962480165314333834833742852501018402452143648777538797996585791340739225246366311744255109493565995566494502648805591714991418907368553486317539915168873497852411325446719339250701057294693209064418621730996269694316169544360982579611242382965962735382744425859942021257114521463213802711897507236371902298701257504781264075187987803960758848508074128585244027043333335404396023456811738145447479229865843042824907960535100030854978505944161774400585173689087196779120723248773224225268050322413718495264372086354498071487765957018164068160018776936111117687119081349971694871404506959644299232904257504772106329493456993623797876169814234327278415283299269949621815004687978608305644400043056091883897587775122107572669937073123999452629382708478707109604783269770283534038274364750660457919503443760851373929594994638387814331995250302916048757793777735439190739140628566617224297578440971200079889786563396702878124691582057596746060015780777113082546870943760279576300803224950004185123543393246814566128604993825866614958681682878197246839668704812308497758480512397128213718700183082818960488333748697215688278113107571333328593534619336112534348653941325301798478557009608202978288587358643002625808660078191074392043283849751801841349577747746836806605680566250679408071395559613691144993682581804813047903637334810571580214211067286302446845827083151245564909872496425050171502329200141338464265131195205878330806983272512855030822679493137077505612066033973350125917252050884109401336591403401367739401547906542154477190372172459699544149741601044341832222620964908043208175064475114230294758477356056266629219304689881139916154132033744746008394725683716316125826723342574854730202929094017135747238887615440043097997396530001043023134481838701140039968315047627611680894264647589713368870182911281689245207493891153873250271369038039755416267696037335976106496452656513893433643174947955836999630894376455091623257354716997288665580064484809621588395883549798365957160014062184513899535754879014698257730910864676437604538042391095727800234093622912979651194114957871134625709401199858007808369414731847222819397328044112249556528758273160902510386306008372927720801064075278357175336238738224055193724542934895715283584953447619141999732547235335658856086619299468056283412716736751205789836409818984758567044778916224717357181577909618357293154319582166638469904966427732941022631327112629468348673492402953896569784764247966100984997082749081595253079919570171624337867087768901692401911023447676022333473202590993346776115505367757550579086379350470345092755138791573047825393840845200801273341119954587533039240438726163331742946184559760677468994011430042892860365299035179501658576383556246023159858333888187124442997013290037585245853033343162132829591789041031813917827082202750431372232834094022358722388705040179137016818101288211505691070395523897726849651045012919425271944101615613527805497532584169261230021186700091680796416437368151046071332844839889229771782165407854778374853233364239434428223509330273264543983070404069794426147354269736133260942479411914614781258796957590416053337955858659618620621437635173450698378709776157747380212187709156115361145846364579371109486148539252175465089153188881381149580996337889897985775857495484360116374546791682705924379270035667292822790095970907453117549946985437236780141877805901562437411332440383622044903019450153284853677012790280065881294115830515252177799262837048675779682706552537018763875372022892095245521973181888942820750735526881392870595330631787601901264094280391024095227205846381834708208480025445215352194524757363633106194048946117704430252695689205311683493209203052882227291121211545818939225264128259731663152028076436649571910043078521520618105335159990548048540928563166321540678586676656789430436370354343405496036056294511818508118390945715737699706699390278925588124737334382331737541253769096825937653694447965732067938663420524937194085406563749874472483324402326879003534691552604732151062982882522378945820968504325231294454017823213796075391981655364306332597652225106275365358523452010742204987570512915618596098636841620885377858784641220828706921303291681504732707050587513472038831234845685954902573252489447676920946960708603546630868192097328493186897562131468183219989818163528942891965821161374081244785045195153979423623620109196555703183192273435260535386594064446697830108241591433698409076889647506482140210427985119149459144639853856696249250061636228765199324971409957843244381690062239872031691038026038646145365378970052701422435794255890781685835219611829039318039481039065902199029308546608403937334834806970449269746698606804960261972782652752653000885809281934058759993783069131113356665896489499362624686576530022168776676038235275819888757757707460324220411108595283184943947572499108477731196486532103240151646748040159296339458350384818414251211299982096166660636995703687502757309222875918470340708984734282141813876714422671961019977706254014997760419039566391213328710111159837051582140433610192997090936984318509353786151393458213970925392881752096016190174210486771655552354721953373143919081632256252380705606337198521254356786099581106643848330432180076449665499942904904726405509387507030278372945597413993778962130608229801849785325228795096650851650903527117688213191825976607424495501176388604304948584522192161401789938420128470761771318733791155307462176262642743370031251719979080276834746789661163622791024134564275542464951625251238780612402896718913723314165851758980474891729328852949683244586433243491876476123050907758837776015370557697714434999873127487155277266641300095307631271518759338211508646930861505501776394003819822353989685517532912876258439361460785352496658404152971029671429359572089640176193532550206746044682329671704624243734376905076577686818568388383997365454488488961049208388372245275355708692227368567083784558362325076288304640530748286595974976231290242965027494547704593814212981958978177589146601820545451332501164271000766646307606796527371474596381773322756411108173114081411892150511038868297870126694653187228636424759547328540777196459163012260907989494374662008249523864371389613412892042432890449991022216142231714194939297732133585635062917696886490801265905473819580710308664500134291933183103909349621093503903495853360076359945752697244483820090928123076099167797256086470461580557336612952659170277763549941219144168047090700152963869245514904798969701510018475178472401083428046198576957203817393071731444089079678492924165980410977579082740389446164555663868236846178318065495536402224117098019234771639110849920818782026268115531273763555590126376761755863453134597427716925903521081186268650412218797604184253386346974210326089125503293302412864923514782102262883402828787009290851019402835418497879617576809435375711913886332490834401200278158192934360036194124122044866338708886167905764912402726236816891886712396037265924819559714405158095973530468984327843488001995569665889905343338426318747237894396787882826720731232169335227860644687600906974043467015486543935580608956887872344860030534701366245162798372892670077081085981237459033496598109091033304841595976309372680268756860110778898002839220364363661708233245003024865665499198995988336325868621962491688574086002456000700406655537427577631046984985214664673666992686996138143811278350051793560143808651567963252911296966824742162394874450534731115087647332444703460829191988524121980914400772528791522649490825216074347909337302819897428941899370297015107040827274255782721156824180404545586504169927953073069849707237969544492090047685185758648432192448550683102906445301044667670795470958381657311378047155220023070901930059852130701751867348212764482217424860394231523242773645300917523958681254638909686121741919950013855608062385041915892999731224974990711473044324001484735088445038770440323667390806803818637880271486221895278111683774737087937874470018057127505367965024182273801820012062002555587027562138161081315546048924433280951458500491792123968867398776342923102394404109174316468176391707348386014587794868320282024116748889878106726594585639992362805860786528006626395326949824898332215571674954904706856236513353353864963901389136819611222354410968540649400120232834677481900764993466359991831272432286105356056413276907023236474807514619117137588441559326785597610559276904933953839710873697435694384294775324941329113974470478333866202490369903127461149116579930157844728582729551702344736653421035259994857355824674694360153599410533206612924586284924627207800797518788103952082353939200166788698696405731780544468722513387184477851818829817124389766309414580521014566011701752898687942343535205936927406504407100758420566053070921305825952958978100582842475688105762070586162221801168684966291605240365171038169196730997677265312922489510171451251772296914015044407861066520780555838940208743430111140717181511180611475570502358195997529953695798427341586275951968593985760661945969719309488974166294293775114952902670493217714888551267545161678984173888873631120596712687667505028253838830443197878695031791189432541703012917855811733522167920933838878633491157652500441429545954808356479409261123889423938329354149489322819436319416205584521820815679977777852754707069491896525905659779998186901559697618948704433217365655987299595424855599664158292305399485427890839260437319523544889592555026131966649250485417210642888966614176114209940000708793440850174874930064109603388553192700563335828836498340754773921215712244164065595370955613158882474174877034694756562654677335951674608300995133729527674349264496833127315577400930739623681775017154166854731710263228617465801048958180462595368235986926863875599325496794556699521653863185837217819397016925117746169931473725843521088853250667411085475550877242777165751983343912888895713766334939717713055208157060644392227669162931632412563706708922251952503718651926173800684110382735125263476544056202816079654819029711598470035062579027400890127220919302891194758601443072081182210711111475021145193426646543898182372982143138097753190394859276376281284807941668021567469730868977115439682999243216851018440644619983252804720782542715054675645308855682925748956122169371084659066397939448459751176647498240193908269036684756561554156360085979894334845743432551627542636172422679953867834170828724981896567395512650848344159143698303942165088557931511244228555508035530347246238838482654363351907803846350600055686833445181032561593108936418724428133791878565657388908978114809697939050044510765540280611972967183261975740070488157716748560567599889258694350191748782401720986896101068888313088929977095371008947549001437563083989287434137484676380920200452952609448793601560483530997718253084678217968487107703595100597447214933903765488103062699846894854253145136845031432893634843085351547143093680901941375770988882647677505763594879517355274471204586700670394346461077257069549149557795635695192606395033041251950112542158828988356883412881178890960496425743685322819732329074194470876848480395312855448996244125017857206125456657917597597531675183443789020516974034409240567116917725661718460392548367876956954109333835291529625645009133589172456691959239063023705545291311066094469434229647497466846488036588474030527452812943112770560307323222379942397988281062998098033513786649260064949066267990466395684186368000331553560548168489796382733447696952233145031815647963877213084927366481037969885091240558333188115880833434888329043825590491467554057460604111800335891460511466181034870692840555278711878948252066447169601416983877036274932155024996354751091802510498959152382199949932659825615123067916848883668992240246897994773907239643647920819217794235292752015131784096431320727973121129079376656414646197550859970034489987613056928920997956326112556381599687349298231030610417900871906846100236310106867764959121241701991738468155607658434741319611113067008008197279397484528059292996188842901791614479671794337623054259480219783796679510746417247681001620665991412556305527201190366959071826698724430234441161175436051376852281599787803126231063487741229130703106068716304614045951767603414338149325776570541332053918115595508026151783156997767674865424853213405746402404963416627428727674274642062002166094634693948292324436336532087772322487421038584973014045181301669316397655834811769682071510808392514354757075655105842381047869677341243579760243014586182053999183749640032243958404892090349343650636957144754203272502551628805845778721614585456507146506504894340142818651951856312187275750489991489047138837716687744835354434263070875509749214911741278125464135261601851058180578482264914756732510451307155230803160591259235987758043138894077324712120097747850774568106682174630849474338644074776261651509824801287021621639293696828653909405504508262697413823910030055362391245516552156924060068648909840786965892776281796967632474634183242116250718174540830525092993868289601231330314130424281659948161519292851758270643530303260924253553348136640181680618980235804493856963377306603548203816976698979275140162117952522630814558070184087209066163375195122889449196716022415869338161310124128408884717492347297147369013832288487901049762087731706510207385173493427700336999755505426913222213957500642603846114833332149016490350288041072220346087320311862040553860290755853926328481752226398058752785415503143357294268308236956958437683108374606472676462908307055889426057188175613002686302088599347599051734328950856242175926411561725210474382524468205294813525517471271246550852374248296633844638661453899311271962993084446589339786840980047434542819952544295218504499724792439573017969050891689203253630552918940981105899266685647622476157969435595824434266409277577502687504235971877302044788488685869488591492425027140261407429634491783002262964836705650825273329090949089858907017390504688961849592287517566033269517067381762742300809837780037718830501264562227281757826281614283860557365338390557398646847839425918248145469008527131041912683874592203675513055791286890054518282841154464464719269775836965433654034166398145232617545839020603155401290398999888753824058061107140515616653118734843196795217653617615059139440400454461720263578580073688983380560165811554614456152535358987751085108630931264817743893294289251582605096958599784069883055732284806148882585445015025070249623684752910621419605655200642431234560443236258783370127902936418458348333520270230039131023638583807321803499989999184682098110365781459660005108490294528350097915276277925015108445356292926646652871107719458160276524295370619117763388123897292920102854792560003094705032027109955308573158412731865543142390695444536005024629373990164542560478223032041907479031383503410265557152669767757535260461847406376158472097968742279232314761329256102798782957904181829195723751612493513322824237223868918361521958102412742261120887086897310680211898158852261675910888513760194352681766357105442167226149323158561827059523403745005801920942880038055108239920096827700895044735983623635100911356776270817160859262128404868380863345676522469706456573603009006736816213463014712720181866214009781353921831294247632088234082561699374896170425650141640676267848054322417177151538453212075744169576470333664930886523938224330566833105446036156783421691804095799348527406876344774171319004849982891593632645699682121303322668834868906530637373460787765469724554143242564366502865362693382589886966359718031531313161331538251678520760014777702655754583674334530241670141032997325946610740756736251259191127235302334628232042352640862194697429347073685896455817537037584332763024047913022671680141386272530680741736236764515272589894836032161289390270819900030462408814650859244602997201789991182947869176998379570417068347623804109314190919530678260858645118266342704139646837398512305232239931741711379324134538242864422084353830441057551606256121325137193292573540586676497872932768726890805094571882458675832550341244605073150991995638027088477308801010027477735334574121822630794782116521754164366609091851650476362029145383952090028511158571380503855991906998513754279836964812897481826785080037001373376188869399484899862783997367914224687187410075254731341283935582320773247458430925854624552409251746079005447058897038721521152676832498456503553702121808636748005068454878758003090835975087240322232335871998255411333718073903333305466746521106081204421534239976427671791200869493832023139246488045697477679687184041203290519673791488946027484802566570857171936829371959681552622242964506971996660840126804645884921648303423549038994826100155739043830448155527060451613496308730110767152487668548948249913364337266102738009883285258873356186726506662579333179442400974759594774489227356569419048107148825959771712863712850960170660189091300128020271680513033762135761481621139288682362427378713772729285433551113376425920535431091373841042497263028954986241334770343261397777854801925290530119760594789472630548242530489390549163995119033313330667134149581417732088349269294990296674032434454162558437056719014416651111294277667512934418638585396996849975714822161567551609510138875397711093150132235465364216167844275452422235709799896407863930873508045703718056578697106530413285834876698654679489421436174644514012974561773102751124232988459628760605720774602191347566753968043192193292665649571481148916961916648953204624064275282482822119217667226217949229208198496554668469302100598753463681787470080009462664959799358187117475403383432817473701409478887818164564222672440919145189218114400604133462157945195873814078012916151273059972944072553735498949026935764948837472286723629871608950486683056720378661567503150934747027399484280141847422455616550601379356463222133598316753652858982772992971115363552704537618362946487609657658144119974166421994818185425926857605019998137727377825324060913908221920832736592208833720188974661587209023404289647331051958502510268085348525724180637186336235611551455248010367274708937005891920099111857449202009820388705688065381604003092441591721137770381108471086378734900830372846260150049778356265595038178415247143117209986057640394467450343451823214062827475015853213886436174083259516864604603682495281278639509038078391877312508775736516108937169179939643476558703517516965587960793961878110430094713745161990232067540457616260507180121907897682987147504417936985294465513589826694864006661633530387303937080190058854849529399262561211259361116293064903320751007906939732415893021392029232344381821854875778707433785211880784781479142269210733614541149121793825967336961400619417309385129978593826016296088491820811693478674711755380046874966874437045420520391590995897363901613968283710300663609180668695643527578553977194011299204296547701771319264886024390326086545240493790755804555563234999678227764431643945292347663296798122263680554011392507108466270371535694095050141817671515454020529112612391713087708483338149696976768077448239251415398325240821416500214937428012681557398085211787686779384986781244562597336713356176300454670129011688860545538872602972293475749990473096365669637250090651712256833623157011627201847084157741641073132225041414272137705037104804342572461385767189245392823672731155303482330286435482693934590209262142644591680028913649511304711852161537848017934544193786648878453234790376674209696716719369615080698914534081902451683728963937152480745023429768106767081404677384287639015343012322962742156342845344386434525526191952951512062620478319197531995570248114810103908783594223141987282188273564400017216507975103963924261335622539647256164031531123122818365003697786589992061160572713349803028385679798965672440014681534369455194774581587910307796392631627108653529810156221252057310006036737637301645528309055129104526985008646601131637784718405838424505903779234491304317637131613420101562856372235587424905416875697259564117965051679291363787383493398511873226460296248548388432698216444850465140292655825894298820755452731482705714351968714007347437693882786992920756279741083616459431069817019222468021131471670495515970009690739768229573741733855370797960380517050385087719694292567481562423498020024019383533576994028849223995966211647746571137040708901971734238160040359481604412799873487449675889353700938537802117776577443917690536236961561140126528837093798164671556186104605885788333189341333322380254976668428439782898784201859633145219211691174155957769394406898707557300614292968039763328705541497177314844754634391245464622568615826315631408076642072252822486097511696863934893963401168979729323809346020988075578971219819690842487111480054390004713549517665036133864799898994420834592054207616349176513590252337525299771628089908239360531611000215517962600155065791684337388728176649819876548772885041695226928135291283013093458682250795995050246754773381399854001879497481758791093616311428797793033152457796833103039457000349753159168175191692728886619541197492483986107902323185832345796567591361744514176517563084360174004716127838053186581973737249317024083218805768483721049370511960029244189189111253648628482401459693479123287811143455138561582410821592177227596178184413844915029941854832755295162430375659885129416570298974346021169193821246678478138871904778991543120234785217000597543451893683028337196030461170479886356085797207518812052954453985232982396961575182556304167012696545237867416107201451614377192965161484963811292293491182366029493150771528814396000323848192039319338207934633239364016696247737850354083933602439799723855971847034413440020811012534691363149710928616265368018326494187486119111140338543898057399686143372778598988291156000963878314230337920239207781694633347898017910078287717941503098705572292299888691654096015780987700517051894384282264543394021751553846012081367657320745256245070083062766976860042534619456235753834543777083520994896087057345080171847697975030832283666494548489688855146100624096204333196695518747824837468827707003840894543167403666952677027023925433758924148419714006204517001342087924993592742447893921599375767982141638092377097643764224084342485151739894856480313912736457245909887498628300018987762399971476437785279851248596989605848353018184153725448663593134565022840046248694875778690584806344921517273378768214194767789200297897644650190405879919071439474685583483478033581353045614076730404338869465249305791688977938794237187054359720735402294026283118583042912534686321105461831458603313740849171896154513524049718475028297714141544247452745769477990421761693924468017615066877611105811542155436570650745653150570923106819105606211864521778960384650053293707120370649129952966641780672469178461889620246490756797821454797767817201045988671285620612642553698301664803485474447741153804329672467324073377164059915714091832297408560694372175504857745003524560618671228471417707396239493082096644886383304359824157181478615868139329124779762976246670028497690539531775023314785156267244177875375520334899145727312175453440111581904840314967147769616648605551111493070688002207662268101282517618768659168061931330108955819373088084922777301173852503550282633920729190248788034789230559641246195028593253078353752052196204483127267028242137346419939849329506114433642077284246197861867884774035140607328860263258362348253293493495106915449364547935337634916704901650940352260621719763145714700071180690993401355996142159318788342420259678040668414844842313244458381223068992177321735137436831023024902443102955023809068477402408281361569112026426854897617928039315705991014527655518119823248774987605363422491487185115116650671398984125503913396472079728442910740850483836320527274104586778973391485839375865084915993727350557890228595098930166698339177405396483576559044123971018468461911387872547417907398170949833673413714396625940521876061421220149267927748881903276372351377906431482505385435246194365547335143604530218973566090554241446124935050212161001031612260497578995211614532852700790249600564541262259066417384489685152669411206674014157198928119445283562253076478055485522855299811014184097239787158121975895983354848273305524381568261010694980915466896193761828338317398141115028915422892300351290818723534396719605021263494222983237607014074415755210439743563938386427280139060139336993781694286950509642638352624601660809875732966891861069152187903651410907111927491061981627429893725141206996768529033422604446071087046992462283161052550603105885633665596865688440882033691853011583587339839565028380801021914737557166341206022163160847998594423955097093507955632819993864847958667997392695206314416142688406831738266918447842049550088869295261036718334233242357801272210712369891978447113304849268615698845227504054824842894569997381118305577559507529230070304918993598503836786853774036788076935110845899660740058944521804976727380535829320456843678390255665317890160959393920228384234822288328174352139768350707835638336929031660031708131145224466280933118947052813791029733400269051786136257630690555166597992874100633209758101356098164604531676915173644090469890279574867255606141048952027734823932340085110319879485269594862924503964309733229762598415223792781182774221874303351482329109824312706111733259912620017919410017400153490485814662374696534440282724097082652065689884163699338215301949014373833756168811028374549046343530849718554326553542820095403570631922396947678061478289581816637338146164478055628090211633514392481003139805114008989534034420578405793462212156050085825345795703960195768264382742237550426192967294325252126867001287195990550192745241748066330420774839530963897036657713112719115449707045602657363517275027210386830661301584968144543842914568405756527259813185097250587568511310960808616964225928239328978585725977984560585550956503325104980577935075527331332317757653927261702193400667606375685105459525815245390122240627313968056096522272768712824047427157531524864545466600271212160751985287730813786111949458076270358420848000350026500340258024381479622187570163382902276846220819017419973044778427471397480575746503371032753535111034368557783901716376332885096688254893072111812214776992043618974557302582665185833144236784674162381615810961147329337928370709430333762134538208183678988706405197302139124375274119758572377154120846390207034346610846151173977554953592140783955165783001901388016706236611934361900680122063639825658298748587149645414663995959572883565888466758820213598625938262239603152111362027894665638400807548752752593576453041021764427314734476191310539566896402733660715135447291828482390825534358590383885503160978412420618633900441987352926439920787568956976554273032070052198491613629612354517258912312179461878673417806096568989150498025336575712221388549828441495838168654741086477815069560487682010342165583126922781117880050609391452034710565496943389448920308245802764981826427176206639094634105814667791756535297308383498702685718263740346504667339010677834759550288966613415860109898883746798069731361214122916329316784447713222479742568389053821536846291496517378447654702274353479057696976208101061440754933247803753540586823358960875962035047189785069531332710086370158725959643346158732113530385083048878456012062622890362406757790670155313804227615077067050714028855028160321786690297117167528712084750494561077266139166622016166496914194464316723452661367426014609466731165530720057041159444301931058140573868701307751424569015713533924254085106997257746452549461418529376828534246503667957221938951750280098880455278428869527915714751026908441705438641197217822603967065695244225230882670899597240565306884224359730091488402950720401650464909983007925923968502681810744207185146596958259761025472898503648222793848777737660853279167013095591819807965041716908545255610908741822712048222804595492008695611680071138153590336723498794756408437823405836294663803336360293740449356035068732720543398965075313132003169647896171839044784417692882081794150423746194295221088032153760962025684743842132988779325425901457468596714699224212442735972746501043149715117119116560330231877478251508493975772375689770307887497296616271481248446147931778215262197896293055033538426865557519267076847528410008782611554332734977703594204016287875233825555545582652710180633380211652807855266358924842413702012983915611087707283224840525223200406899776188781570013852361998122452405986289040084904539908697725908798409607298218399873713389328387282175342483485402830305093860015901549460135566148855449320598359846560875331286077317394333722719894734715580241030058770778459405261793177529816270177772481835866967736648608559723295876365583773250800388433680187309951006222498926888596085009197803128486375070628458651055004896028470229569137048495541121635778169676574299938528417801464506942324649175691327579945057599916160713310790377131729695295237858615975112299858589577652548571976541767512270695385654898344267350030937961737525431766938551720033343349568027714443984553981540988414212749050604009425213703469328293008506690944324967828855201256942733435933636496702085650039184597873048209121476176046728336944952765937962484369815766091190201400912810041570007759793601152375678648314160621161138501187351638223558346154021647207886050631813613759285555386668849958494860178138599786203382736294006244187705514105813601206530796698824169603796184508805750418880036120812821129745076250732154015333001822377006082855761461847745248135507231722083778274962944668990075663300657027779844345750818051007328186217868997983439108318655282895005169974159125308682287581220742478432419469450409449033690765719756700821354898961527826085091581348508287799145406547790414535884425748887295984683229637772005306160669804774826817611180372419456462977797757125630144356368657338535500745561302419615949495315387736428292918890711402164607611262864456074797299472835060946237372756884903371641293517676086475771655795495317544569255517116232233748471178945230643091059355017735586854638703828487838962264877997820736580886096685070644083092210109840925122564783788670501885033592465096212702736495127782371903021964387561307329105633950773713647998736275017024004564767454406336768000936433956382485296053806594978390017777159628762693296687337470144724943258250766902318220640533216111746106106240582345929527100141143250282856031509257013713435114472504767939926263777535996447829548520802123597365088977873614353421615950804384762282260497419338692367191473350927472255889595637051701324666491876843016259252638257566301998454816845435456482340166723094790744922207558284824557758191665737831882184113029990464396148060256604346693821484505099235296726762941788713720996406564358776666877026136890912260343166032482575388237869111188235671727484959185368015680995958513109703434818942909452433941133657884197391256277875762122506307560536380212633804786998863710987891662713087065625160566069090754163319191090481585090915037358537592802827486526665250738339465016070660852614036160052955075305192230162858343573574262358942457847734731750373500639876133843422809765183498714641954776068438759280198568703395908505371596627539137639267423049801859850015779484125177573528880277893978809726610001945412123117287584337455424533955667188801094420292397321558762171745859688796425664914102903603770867404697309493000390439857442761368804737883985265297395510713610620247286794148814707122496560614906397512679637497952295485472515669299438651189247388667132868312889591815717941391669162515759778694535866430849305490025510377981288900031115049146773355192800520305154050225187343240475027078225448961652264477052566155479910937044225817092551851047892490815107505141276919847982485165630986273623340032074026727576450421723691139878097736434419607876906338432060370392983816991862041098042594833315031996365921619417169030506758955415227270838851240070096048627140440146688302310551380414827688699254735156718128779983353707782094859877653261098675290194250237403685037960500774057090992653199790932672284869953878133205137066852643568973890712380884364678402000040471522992416836777283688729202192116561524405215090276162005176889704626544357741045898436055440225540491110682744737854760561425429927111772804223884904461297807822423276009877421626606159385819265642449403644905629457080635874323403774415942172510889531118165218138627914300784998990338387933050305159871892594523811749221413187227606690114222101584340948535774930020374575577338132324568117107553048443023585422228191569127876729314358530775269281597592204008498815534759028068039585137755336307314184926154474791491782599817695259991672826547932553481525331738439545397668021894658131514518066570247652537332640213590674401069353612869336646990017437701636798056890687400207001397098117898507355420326866098608955758853901706132191807351455463181373831157971164401474901889143896702602320348882079618252773100473084977429249145790188682865023901646902001599795217967944773310419404209842579699955309433960034417815844795926503859244891435226832057643912729921428011174481951327632786238016879003557840237238557133973544346935147028413340194078307672565613149415000374844222760476551132509279683751212680096157750338316265978915930556612541950700323022761050380003471194143628269304460143814012197564594333077855194976555428307296120643185524931989622975833617867050952821891395183148283128811791220533696548205045648709386012625742198751221326553694640960113811636668951299344225079148453220244730647093114353676290243026187033166027994875809376951302763070896931172582659970668275276058591838757746310778796193430205519247401618329982210885181963824487372741345212163929968764162780985231884502880007851068616476880979270923164408163374006844859805623969268291504521477682583141373714529916675719506880742452997397079322299318665529528145441980143246997412192768396708505417420609357014826537355291452676357782310202355951774364047365494310394707338794481340611761309601517890220683093795300858735203716410145174849752341767188568871523867314267311535887629232306902161647486548653246879194145311055226083891940701864443335316629380013597514535937695701147389185266209008811924983717155382911580206289836764513683849625822993413184901554628415962322652173823040327552483053589738254352618723673273523062240257735601561406495060916359426666369315202179400099135235164723880386847462879826826521734604936491443375861549956169036248679803201490846032670917572078673168074960631389039770177388240433947431539675274431118513843957006140898769096451951618459060855671539131137886410037767675029651171770222009600351200284133271201843365986796323490441231796853211938729526351686627572733254896410724395160760046422533278968987095437003266154034881657668070409996589302577548025893940647364551566427651469864978897129333700866813057978754982308796262583309660314665524616931826723290686754227136310897014594433550323541356723085870719078124914009243621426734477821140008886134243544850936083169151740522759702212753316387500973446531431780700585418879381618381441011051024241617804793695322419925677081748671613882447110299527813475998766077200669257067736361823287897035883346335731954805784480634289884999614433566917358202920773425552889069458987014068515860492048865458174974275543596325366642545553052940985600044118039845530696305781671680233989170764312149683164968000413758703552259269909799967471169426919795944407435388028336073684452851675388764422298893647421056522855966338812191698899556294071025020901273790443853341222397697644643804406758433130255932068481024737092630567596409965942936979192431983307844774045009813436612286976038372574023625687927194108009615648998823013165111638813256289052695089311122308012336859996845963548102638867644617526923209314686292372219184746475472531471037465889505526139959069048737577945365580266572819937163546961608468814089523517141997867379957456785193376074450754987118818103814055455654872538777630736499245241048742760215286537841210641743948712706418803464155918751536895161830142232565260942287760865471890989329626295640409594658807543059550830508778427351946182865091704249859544998828992993713745903024535736399519160506250282805844524698967309420227728542293369193990236239774934763652292797244726927629622910780323662979352863312064236531171313947558669914632266119972792603456959726211936697746184324803766449679231207835082184148178629119017272891945990736536353923130521594133372171723937713374437619610041154742489509016879008222010155543544020052217215968884521266710460004231050174584497968886672120588921192407466926260940937628912262502025736731721275448657895342193215700707226070934612711553071790621904870782767424834940812996278568396258969969596854696465933479424563665485178871556299599052817024318844605844124491280535013538061465948798231276458361582627732474343379582918843391267436689831780272780028579687626228775850196488823828722464704261261658591729967839422683775528791448551734614996598768443590667235284327490559333461413623209245358870419462831984733711920474377102384468848929896365677545037390113085463129019083145541219590612927916813884493501382006623219958106204594129997813562490469530030948254717109532089763631621302366490321995659895649389622163339910963525740890766457805745734358922229319445425977973554940078418031445311656164643142680360452323756360367359633520173111819616591985767533279723188553762445019752847422021872751356209816181768450409176000385459645997625505446822861965184101496652499498005747156699942333285780533947221615042700380064091041644995864424051746938457750268091834099683360279581864447808212237370835542463536039741537050713704704800941739131149948861679313664267149636651234315886668835969013247458970547854723614210913459480229406879127839551822092430490759476378067224506477923393032595012019411746331314565591480912787279023767187574474549834498366345696451859581056111153196997093760371108210361601926495252193868851369930767421944271370860467145562053406851959489572432814213315800850265816688952029850882921886648455447354011881403579687891476899027421282231130306948480187365727187229958037356873872040147005970536434396048433053138062084852690991216251293607044641350519533058914735805907203757652731652935095619626578088477604887165958156145309130592395487133647671959914260726122636960298451997636097836428025884274039311107518645607583320746181824866702887647478459329976125290381237528792571948988974159921380334427689588284333458423213580388445071981664684672374774850637105523255284136935524703404204431813793637596831037922284945604093299561669353674200647428637064140233421072087022244737545278121448569658953892476200426238463756238450144767515880318737476659173675034058242442653441937958656562090174798604489773813213638488336425901631586282762678407248105966007169056419130371756697892312739461480997348155716389945478826191453603991739201074031602333039082144165237589024964097357800659133993016885207211091285780545546824635219558438739073537460785233187244822767939963549478450971366368178563406292939545083096508798386212142554773152621201272890195289272165006092170554864287631770981568510608414166384188962950032738824173900439752305859059178683080893268030138547073423745712873553020479710109253739360829163386852951487054624704913109265439805360917858124337340247113205192261648497753219409533499934227977554025888982530727685742707492469931577132111049997132028526636781623281754160611119573293894199502023393253606480697223932995846160207064940461485361062384927306650278073361953700698870317282946333718360787631788166577812351578862780540621246418520095599214995059469550400434337287731952093595097747178278541568580205052546722269099225498532006360744738066981340546495642488202360407035642619593493767338172461097779067274858953026944892596615566471155620043384681798389033415509794242857663905921999232445725043394243978187285593628100272973598456252347561860622984887427326663031408626385573001260254060698864751625033626883416999474558620438091746490543993678110378624709624859376046766718092376472252123513875527689703115731036853698021403160114020412357670850743375294623247133815359413703292627685239880962544062053827425965436988290718957250840815484470190428844488991100079007106582299364460514136283532115693842036757525909015823587424537287329836004906982471794630278153563039925594346667663144443598587383785000330452935850401668926763120183709141463012578325393161481928381504115229081997157221171629247169086239539386839192600596026358514111616485054599956024141889801321819993601488784206326125974982629831988889128517534915948350768096149724796920408236102374738570212189345228594417716862906491184981503205748545551294775109998682631568990129604263432108631217157603433959651527267885442377097458455113368463941212400965560063814218661279546161601083291558181282042031768776937511492699405868364242299863664655327728131650620030722729079706183829626297606446205035600200423917957118141692922755337281769492186486111076899869974628512413103719199602197408859623472218845673043658636337804203289934257058915089759489796481909590632743348651836599491319842010524143018940067101957463547287439570735497530067560346679883255994690796178909904593522536007151230125411811235866760987046714517806023021781178351101125034111751049238292451590787367665278646679168525913316554695037255961128280432089150137611743839825476721233879798894877766403487488270767452497357229423369786164888344493687833249539069865343292649099352299462866242916518844383820361540436562361094239220421870331589062934794833017070674741290592227345862149732992691318182499994541777295598393573772105047031450941463695970059471049632340879936230520190097897933392564450360889282804845092983508776024429061977161059157912358859307935867871565813708581513911234792362804045100951831076789082647809883832166826418351651239933686501899817751687378594856497348754561685287106002566628577944660146576037964104614442474651793504537793219485224518522303103423201001240398994360379893799165567418405773346817152053881981145823562038749662376697980488396711430636477764550589475305945437556882371723652428304544157768874994504020940862989297213214740246160323285299754582507091003914279117260476381139616567302248502562683601778250149320173241384008194296120482145871531815888485116700869293023520232828834387711223741672224020747017525701413326386279302102841766981432335009307530361983361143366072987387971447643995938331413844515045742344800802682435945640506633054029022731633674565825738811983031446029167920966230664022209398371364867565124714612354687194953972866003299675485256347521691459071584943582928916500562771544383752180419127468753578348999878589902266515934389254361661528662850564854842716630819772516048635286127051121498557841737934436710913052755200362222143832588113777856266240830238515325216906557391853038036589694891592305155305633803111488736259398115894315807545968987487526893735947627721267367754615506538932229923163484564592397842217181768848804052158047119508916292575233931897110398661608636075726677596003418540030957412776058730475295325646065858157700740155424589450571909388923891415079296802123201685078886981727883864126443489665900923832569790192714573128930885990223042148519529967911902838411961280202511953885165172706084666597530997259854068504252960813884864269175168410312888844664573770518811481860462075815616470838227189509564594084545474061635700670938859573420211034964525732172989893788228265087917314148859842688461344425045162678061301621845783221338674223798305714349740395775690985963432005747391250351104020364839440330887062099898198140097018280807332000209628794218106912729432888536216787728739181920894062274049743232025060791888428277157152552380274662073500764191208367910879715620669490043555974323379795479775797034940157761669204629294302841890330135183973026167357435290345398581604923361078856258291661505299100962302241345657725707076673870754199500925813561859976457310222011300064798360061930410501103198144718349143872761234639511114911164640119389355822941753173525413606993924841548221164195313630296012273499318597842456080100854814973111403183280482415423744910531535486681305657934735684880740176977009435720167312043999971456935492045801202088254217562818001323143270207943875970209297576836237038181900501248957554459214312173921794150522094760055441823786524532397430226564433720979527849809067660283690055909351409769690156395262766704258342826416886697593028284557863010294359788812344399247526719420681737003818154844491480048570216057664231670410068231331804957387230109238050949892788250275086487599858563956494431201503988295115395406881055007014616753323450742300736116247201572776413793416743153827258497444805495835465121043057453723044073755770405856050599790270231615174723244566444154842584940438633211018904664464083964086821949235088725683040314167757650947057820592966890232932065980295620942587225541151955122690920587970788735512539876622244617833127452517753867565629087719613755542392356845174142964295666990123820566403019375411050157497634872656026121732932665482535167781755099874715671204077509797577182120809652385371566894250404831410811753977630770049735452553783244899946662319262710114310383361922252425304803360765229154440966665383859190620176979814786007140524878256826591490171578188132557428370312153089781032884701204528323216961821633460497512920555455916049038280294439241590942292580457884098120260992905043528132129574208617636499369334798300282079594291845327947005398599506549818482664033804773358891080684850242931810756833997498964906811618166306706102388386670384790463544362963154313959148296873272868806777536288329077776896177769121215052019844162526149669346860031662163403318035892969260773434331722125301826026835143474281598367292437221600851115503850700522500706280073734415076368013261656825296960724010817425223781476647842444474518717266143110759403691870759323927194260478895161919094630436947514073439592809974038861488136001754543738843656808219150737978342390276552606939529970940604876561095258692127848881900321059699609452094548748632989770709943456967051841410317473630087600968884871612420308285885497218327999974635611158379029514240473988694212308805981413941139707548022537553998189988335643265457138519786738458660257735356066225513042802882640346440348965698522740729464767339162667633668059562261319256640652651018983987817646538889508947161247802531524108130713881012566846360077491057275012200273952854722869114334129488733654310010745798986627961523949102556472699724145054778019893395994246495863056498565201917951073908793116563177142935887124736106374589765010915102290500787880772864508581412349726693377830959925058953591508680990495744321646764842053517105213305960089091485454287940145365779843648885148349583071812915691972746791383249248246498276653939147973720667982502176495738173258595569422129690349751192946715433471540780930878748718565442380020375629708102950058833735251136112177715107621098881564307890872553151310634316185317033210071855074876055583104852112673132337471796066211171390163640308974898945596447033595769637569849718377227583619463133112118968642228983045350286458867426111609547362313844944494379052937836592510744785449833564915336357695252509242185367968594332751324609754849571786411642135254613819290948965202874112065687793754997172103277469843830441392793783385517446032362940611853377030451034521528388657999865815699357044423821337351703659673972328139042236051498399183647436518766584388480327268956719806187651740918939562860279295322956224783274994990509516212057233070531304751421261904366278141546721384802752690963811277970446748725821290307149533008739486131440843924535833225393414979468033237153856204286129035417298053563782923147519042061595208340201899348711054674513234749544387108152812452309372200729706486302251346382365200678380956336140663802258521924523389341902304333683047933519128503741876979664971233527726140484541292492947404548566437535661942011431327585194957598108811744594334342637495465964249854562652589146614044339473287269717169118588208885778431776170291448487632345836260967340823387381416782888232586287618418329768852198540669009504044518845352517405686720324593198502506167791863188524158690219395623134281732903625163880387854654827977903511008495181002968433172103543386865778434735578538773257840998622554250847920102813917336060045574863012198479125783110692920978248247468295143593867799375540455236557087255045503630291531932591304758560100405209713426830139264990514784220055171305532611914954030874411282612896375517859216143457058667179980948281471352047242195419926696088252444336958035885454171359499344565813892209112589064087890889718976836670269702885691080849641513017197877625650561135424958320613213331461620189529294191807507719928687109494182384696375676247480089083438322140380551487380427809474153949586321387885339855857810846279500562368673620184055400557412650697608729698952689032453732166689032564621345265561719663563909665056175875376177728528232048070611636623011849873419204191616094760824109781387913205358254154790699276552438525144189665283090874251553886431660391442008435670433565087255993930061674272856105152477427611691272859607367083843761950048076320779240843549591317636837334192755437878057258558248588112897312729267351203705371286052421993050441634691539004203570317416163333593587424665402471923348978610882693409572369255312405246976736240601804531689325973785891683412075917706811206520271263497067431474545733186553137703078935338449731515234791240508021066163067801568724554579199603977563138111016475154787956980296302605997269889587859736208870916124046453424797902362500378957541090847379591258479208072863051155378205662788468093429419866102505409433313689786625131299307061885453267789474122896447358773475567382992923647039355631134780365747644971594380536235912475031933599438268919056623044231028806527291871397118675543586507686455072884898349549378221932370332516300016254831210159524045974789092342607041154627745410264774050593351241138605029828654492829102510520412876342241609398407846913877057665977021748558491491605935954390175799459630118511844675193026699267642390204459540903430917049453474339106376639955619451302677553727161756403804831288597136722559632907486577669978692207588816015799697163763174745831729621111355987263348412414087777337692085127739712572381223802889426653901611903556757793686095749567922700854203792198622890122699933666454209900214082312131751103745502348366662282928403592171535390458348200289318394281110541215485151332821630367872520447777285950769336665430332470154437226329079653046775146512709410937663878738324408526144502055765472283371390570972928534894664882080447899355421774295946325087849323058433724158510486726031374395403101928809219337760876355660867508833142907402249827815135715646854516335880808834404775210607079031367574948977944154425531710103958033131575467845513499525523449209224200099313517134823568937416606441631077254124024680695945191936377066347177534253570160852584308189566964729271130795699489061856035552830439733457268021206031844332347050137745344637818032261647618052410009014287747491053683564247424593165882975765834300682708257296981648180836041978522636862834283791104749363378577338850646418223968622415752114066006173812941414293902884471490282544863253030462167741423260280878872938612324697109826011784059374406119670675877018729064712010054030776699386411400522935399935579478606729233102768632625782906379070845008280140588386157715861614676387859188305675901014482013102042566463966071856339612375293743396556517684139749923204360925860053802267305135321542094505117853814197643373695065940306018236400288059644209361869706009417474258306804458058593304619732388721048600740293811151041035561856130825716341337298529318849044190738816181756344889424101495808127889774668162596533703425236652611577884291984160361755781575678426567425016007769140691037884933413079944971352515754048860202638429102382610055460144261286403625159631849677263633314045651623041804665830687453716486098404649667774768822804653411074010017060447961968429667938370055622827589485320478076165199864787364361574776916438245615238560710139697596786708393276433702594319859330411631444851233174413194730887384361715677871703410370364863856230262201414878041996040690788498156873684427902551869323555093943254766233666010739172696567701615098664194048422447529473469752199782666660240770664191906530524612124119289407838696009395556734658247977929431552720480308505081286054245236416777371639015346691878381843366966769497977768365945065685388301187261063066285393529170097240475830958625436096771586422883276638178608713563905344540545221290700123176809062832706797387487857440436579994408996080531753189080540826576683053865594562869759093072296228381102930278674905165261554774628778208238245398055246427188623580112486551853980116968547847840121865718058968479629150841645366193670702571663826355729586458749318380610760452256067640974497394121334755220282324681776763740574468425206251750578451200286688284450502998368026115508116066446168864596694914056831992170042908425677180630535702363097710846888521126550050446679305077421016429733086406175154107194501227285114357594366267877332689288559011635226624191571449190746871034866144188839061569945783709339481661550582126145781147142101645700012380666750404956195427819977181204663330104775479446753911937447870529867491784209449467330017186756177371657234620557288929533538656575118313218754462355284767625990524147975798861241479534532208643610346579073096579139456614192999759853239972051623901750538994448778846560809708598668713407636787402248409847057434153365514191301066089670543407083513614926570503223521054592661979750377595966638602128738302022836422072394039365154766821669430840271502299603611174384082351319557879278170630194033577158554817724309544137765139126898871349683493826930853051366412765246758592134893146166694173317735317127080181267843701443260795071207896947579460112265349656286062170607000093153588088807480312309173394924007254879078667962053799673002382179292683601514843762014864833842736596088385266912399185849096254968995774833526339505693739573119299930301020529300601429772203330173669378557158516156627704942716244319364097260836866512762877833052624125053422621743427024923292344024688324010908731568361144110533090589280548167285196927630838320972583892674020369369796173949854485023851170568951618457227441942434757471443436550177513196489324651449729190692047597962400874010549164866782713824731185384691613847750243381236084320191626512761456888614773200678065268627141565384177162830356199759299291667357324514055547364077031054289756325455887332835596886152557535111167440342108152807510208623226698966948539347884294560642651630963609564546209654984659956735880902498078867364819901379178153118651471275832708081088845004866743070807324674839944970114525255281535409860633975266538588736668620471338713751201151877033702989433828288376400986356240923429547371184344401259331428476522189578171466350155812785371628202186068889225966744504992007731267711932028128315632465035241983355854910464179844907197327944162875002028092117163170682795429064684783519514511265205098640025241368304838332322372880197589320561555124508247173575013466664119664096044365396967668881262277566061893730558013212394714163207318573000470509395127213403879030207750539640578053679711043117460146624185169960534150348356563022552706359083302760063903776944328527853851297795089820475612331405140141787254974763555089638940512605583301901476143713213273718848789344954928003848158985855258401810772367247465120063794857705299173326038184613564834138069484683696444894847995762012931905623629455613282127935016616349867520222367961943501010827298583859837710769846595630915666769557871804632727184790421331524059401260284437469299086972061912653404337827803063398782054722931253468490667291626905654236985360067561134646820152379077962784521836468342806149431348527054235393604189839830013991948081908272996523264378875090848836523991090202131248821978839897729384811731982744325046294394576730396337191251867080721359995814545645556626468020426655198410951867847429606319478092288037332033850658545957921235104941685018490757422508067428186718597371589733201446896763162836385990324395891896353538671207543274662894380411759960949572525676700098901816264096302867017189552501675821682064339776152398552105609589284419041291947300300143435596292077476199827325895754915906844305140582424876435451045365991373759588936212087549680603285700715298049875074321910459851062937162367991923551273182610971507710915766919062914553816175910865412134929582998061843903541843509515896813119598191350290415300586291513601741363952594908240859459967770573295383004237234642687900732125031370563968873207846213162529834014587809837967013525060512420808488830450301825304913943383651495764393177899686434153142743187062873576198372833211702149567990381273117057749272544728813129228451879260683571311625919900612300614201344758964829609125365740442805828916723836987314827230336273832253868511146049915302590126962336787566853570006720409083103389096017940084582682931168361329039631040082916541512373887555237042489712025544724706134529091831907458502587336817904978760812779122034449882732886542527991957372050981537000430575107811445499435780290682447611437085666253315524784886307941403242828479782765124147899514535932750440726592129883950278206205404933733776464741928747915513606647953738665007435637339042770725473391955894592387355899112881201624432436731393996256983921468376995535914742451673821647349842939420362391142860529913594625411567086190080001135962524847157031229508723134155647791240706352234023474789685872770440791937774871797403926359252389141840533167432706755815852359951349976931005129099947214131551900929990352559509669998777533435214720403208901664298466678834227565948483950016205972733623285034809087390440707882172464152736723460816503046808431349224857548295754276319728672122525131881061474217553330969388452047658700196933302960238446008871061583142557338203342181519572426663820058791477675156490373847367115042231967287909964985221388553278077507182649952737074189566809610686960965584494593356642875687074381701016226881867774595261411569882061398952183744416070360591091794484225893099413600664263042188007671606591656696290486179683102317767322913066309928425471378685029338503571006047975888494792658066251435830472722795095238773496201603856265139722567056538951360907577893605668353536729213818960924208162121564314477622063174055619474751055292937674462944620614260271823248818317894913923392704681017170321071025442269672885467056050718332350444911870012540844871467083557640324513262830341096908919321223642966069251757280222831490601938689280030283785429137162640982719428357790694580961578595840128191472118007118353455998133323503338021325174758458480296099375024759365878246871548008081662749111597556755384668635171102988010631668354349932470516145016948430269300733520668217512564085882860602789643731202278306382220555424656726647712048002569351167195818329026020588081851850652800352786022333533721863493004549929539879059375845225911895358803715486906274527935368888429143143456785129712876769027742106471913065027956211861776574080883996338354418154122075012061907868773323101247573454022439372180683011355387543277721019084545840928244115969993744192540313748965269638445477639787948819528712658943518572447929587444732293546584094584361100394486002813794179723861338134509191158476208516233896453355932137384617500128125634113917843567497207471145319379692310553119152882910501633485127920845496835066664819726737682571264669054744302732329287137382782469206146326318649593036826578910100489332249959730460780549018370897041030274318599359815615817546821094850143527579231591066207690584309025515392058984596740698283375585355500736404850470436796497807241035759604573027414120827675369580800138780565874214285621032991349759530124026134621692345990875430086645033032891059402634214743465370444762887861389743607834245795697597712312556104846807449466871318082616299559764006312909894378770486777523125049645943894950989568070373478063847499260425598860399082487750067182145642349496101323345654512830098107507192235802051668208658418572566870753072989707289075941105691060661789849114140515581585565017435773690867596278376033204489661500768606776885238381397494946690964655736787157569406519654528224910782633523143354651020560712165865983508852092783743609521753643060153304691438581831637470120467598382236364550976173312467539805283423975983823083149462195236332950169011812923317498629568330871450358011468803533571209034278096107317247618353385921156776155806666401056495657959614462317797098123839003412163668103839287946417131369889755239596295173859143672619316852745262197624838227886981898251393303463008790965692634952960909240115006440488612216351037305958668618445985377045706700345512392182505510169907330922651230807303840841655462515450192978154287242802169179471975528970698932049647391853662139088868857098155685388778604471050646803789423538164493550273968265878475612637581790689984036667126953585217624181046583659888321352401409444450977782983733589156574636335070958986979253843916531450032303016699821009344190063547466303429208420352772898392209369933321890142287061216819158564752042582151920473583246075622983066218200986134630882079204944361849126703233563486277501261991338202595678239280944336865951984482635841638689772986391996719904371913543276653701836639170089959701358788265727535732858120096952315859931342797965229941893250465284550586039389673874507847559460386357528070163087762865198763564685504426062421945483390847759101222637889400056545327445449922273236937150510044956234371718622948694134484675027476329723897606819638941661138186011120337694153945689709972350442839426925430677305902166529944582109862180553703530759792205148267880077984688900924435365460853042858688108175275497891975770382321221519271925615918320426051246824154248999417811447341753204551688926468642958607275312530136786054369348638579518372820454451133146819224120289606107044333023017062378639051670177617257755550352623284699634918149042352397156652697508150352392997498753233393459347044375469787410070421725568463591742749343575206101555393563865299598928929659296177154291453872620115434810921376811589815939268462640694984879789000392891195733722706120309768881341970625711180238395706942684763167601535431218026164568099331980435509331519601913485247811153342433328772687696471126285042650357424223972646245954218043237361285483678909461010005516141788006177530890553988724605115962858283267515005469939022966850087948896331785878996456050711237276924577088673667221659639681228736276809515581340877641257706133916586294038892475436086574421575321074933956751489433638626034085645424388147851351432895207710694621613786596596192445584972868435929667267611184372928697469555176243621854415543822386384767426236578595047669607664662934886919993072088675697415096299725072173093902812293593302951569103352452192814933355617513357133887028372172954872193057988981756978123963651181735239577176770428173944850633612607883534109614808728352967302874726335895423864915531032186185243642796597785820901108640099479346759837592601286843164440670866900929215892009669136703509219051887999025520631195163687391079970263804622020038548769150838268341193637689836894474586607919992925794104138689185079238228623051319375394911783027576412955468840564761761662255255209173051996907802434915684253270529489904489161024752813593807964950023802705343651372276062763601943785026241286618141351343064140759228094966542081109242305312109249728379128128103829712269757166912594118683873119671325799305573953250146328866501898070669196762495919070876196290630561747086109658583998556983093185516567446789518056989389805125064344351092132975944175643547685822920084747132531930721103942952125875590598744938596297291917372265997222445284870528872669777642300350032554904710454261743375566300018368607122268688306310904809558342284425220410966869824669551195001342059119826161424123509744361230880512709471588176873256562900722317345596186244928169164594282037449013533670072967332115100125293548590535570610970827914777409588310771870361817128517123011768028193977637119404240189093326976061882542843327916458261432528566468789679144734679309080855307063236966810624778350112963111460552285193928978122487359374874014935890546934593402770272008487333396061281996764863309670516108157468404232883824168194868106162696996998470388798076616591418604624815636606567487429957395373697149573122974987676948451512998375083130397943725858346574566618392890098566080312582418528712831687504862097023654528708778200331854874041585705475357057910827203054436033278169578229284535004058604231194609041069139624521560482907068971283902163201303324946957054967789646065437741635102893995703403143467281252704181128161476739398849031538999446044601198382754330750459545606253995762604607031058508075296975350610711432312625280746318077766921720623347257391688090864508014427859243523279444247497011240188384703363820108235779449852858979052534844558185485137495174322960243234267991540501911712685425780239289920948680775342897659818207128200872698508749162999589836155850254471219244613907292781901533393067302511532890083876042772773522580670919445358439866072459448708997673357127113952203494121357595779480083463703957791396196939739608440957849746396451459414323603080802385792389903132906238496084151300121628032012856109497208965760330895258317554942754727277526531434768847621181032747297345288419870145408440988470779775393056506415251215039943489150269978718405256126552726241853835249483142071742854293014907144162107582073782849585333944737824663315123922419644912276140854769221355465337292448122315620348342368310304699371122508382722558772914307682790616285571279123523514724077607288197709751735508455165033702158590398310716908743961649590621936087469358637301849684018786619802264323275621148162445814622294781436998065847575204442073335326305202167505228369948055661780515146371003446951782199478738379519831499825182623333341055993845687007696088411439169905049883347860682719728570580615332626934749056305195857806909793912314362878054244165499567425675129332795226860038146570996074612899084030092120964919923288637458849767628704482077495495515681759105909726059940097326358798939632949008711203699618730259132323111560168914357815176309601939723493618151280385692078337511993571408540544523524039698192818136225725977114239553075225671748131189447633868748545197874475011587011299159882599624714177441458473612942158633234664569969984124317874897870546681298692916689032604216066840755029353640219870067881153034625065282781740838426274682494244126595565787178199254133577478592113610442199033537176610198213821763914830273284568507946384951581655942483848822417951231842876880533970875474412867132241702270680781472963329006296116969168701060553628049189199273541170002839052733261745861371289182634333672501343610683057988191943165702478483443647838875731254238285293926045370749120974868395574351451623039509978666828546320808097854358368896322194246142875714739646185089758779712611397780153061126585415375676634554207504745226447614648729414489303134540725534279200058210187936702047707843259579681052449481360068935583179493694550765686894296159885022717168096842577675716875687310624014738482311719940765630111626790004026655999870784663052318180129238045750824429387723617327043494790906753051748357340049217637631545114063019446976438637060035317037968900091051175130570333386617902028324148769863367591617267458525771386203228523281718097176503110182943356018010545107356448816653458851862785147406293231634726695253259703217193162906605770928468351447482529554761929978313975302147031891505819373640331577193352778725555529105884051345483878072080447294196122475704325403304208360740843061453104032641316854570423142346845156366503218371332542947693876659488223525757266228827859542977897837475907434292585433827544571558230297513956768464227630229040865098184062812876210232603503984591699101278289092554395318737625323230942074460723655344570553272662281887307802642943484196500340034293951021063437276118159461439349460393216914893457528204828344257327255411778312070595316893894346918826641729873362779760080727792801568423075747545467395530675343092080529688701215403324572382943336336395319193725889180263855026119860453063619343633227320716079248986665572731484800866196488557201024924443956559436574882194755771932562156641499377743901401904715781456518390182977361451727818283253028280544828854047219765158007441933147998244136027717714062601263230504953033664834618163098883067361309097340698698304484789767911277256476779034012785330713442020550752939687415126432362003241034645465681667143033698569394688614513699811335222184985980918270540327280128569571632292438272977424479545871438905640818230811062817296716605311842433288398021282646727137031886093406009079516185405621158618611183372999730115831038134347072509755979929268901256084125829950895615346865689558607284185954044205173275239354031643530370433089762023456178146022077622433805808990051855953029710629148312718601146812728530414461243694680009865298303641778059299251181618636829850219194960613754720312302110610338450563898054676685324111751084019557515981567297435748309257360584829997631472704509640793142715357773126594079983273929029686523780205569624739441987236536706545176497145114421919912651628795658706958082425759268041390058805208756606194390611897694254795618835222471359831847496466887400030324337896081944098834365179248154057039339570729378797140154442570586023259948420640486612763602803339549976364040955707716874532485670611616872879057585191675852393907970742398487604355798036253901950150825559662730196576338511449323065346886868833213583106042312344609601735365547033146174090247123618838643852261968114066014275293568495542130154801188285717324477200791316243043522928876545134416372037174077723638642277007218399958151962234849710618767381791742984122927139240699461919940763910914402187313354494066680777399222969037669963231540379838252355095324863615104469276935782741257276959742091091096465167411398544084745011016971330311208240473826070341819101882187542040289909123025408771976206528796453079882237754483290884280202072157648254092756987582337100021057437961228885893125129349599404736077336059648677310727144338117831400765414789450947243620217813397436865027244347115495541806462346983654394619115402909474852246537588313574944222669133152214444222967186681223486137281857583470486401671020386822363981285182751272566935331901024881573410948778477403327990908802582781019332812310460354180215787046244289561468374074322407807706285374475135576934017730046947111659015040468036806716359743588429568070735135549773060882906011521844298805666733620432658062312547137955420398348528595726946476788891477011087182094813527012105182291414703835575534471855390767707394219528751506909290482047831551343179445941405757048844271231368843313284088200658373744137066235816197448588479450868510208161596596157517631086392799218043522324111501847478230775987549707829507126273177746193846861028953290140081027582652889476427379429143930428859557432396980812858765958579960004479581140019350908306090026478381039211259522044166854733433743324347424030002711351557544280200758114118990040984141215079786446969350699643558721155647494249074854846123518026533279185061140619547156171305629033589069392282738176775989194432730470112202909784909213320897067623873300983865782474121832064196064939765633373823345226771065388429266487888395407107238251753794264931377912552230156622903903337446930638346567429561526873848651462067747020587601811608745235836747529196330421202713624713087535192888343279959799743202315587438029430820882725101802287973547059562169493953517079537692325557306319506999817362324685787582392108437706325894110029630742836865825403836209385904947559518569518625111855810459659855612923851978304159710123109814510342413877300141705661589274709281797355743234117653381943947564297505988266152992623585717142632042681880472176448299620908024420341538088718086250646459228604471937105320188549566818642951902045858901627463945516747191316266818771936859706633109911897609219082927517918053505880765762571287705876156260362158013590847915976084593769409664029450874706250968796414091347890556323750487986502786285402838197819468554760453232579649410863537357370302477952826452724763176587390397117372803824866316089081999831384261790085464559048994554425856123121041185753255073658633238753349682439736709779185914840469373296516100630513144676187204776106393400098866449150633674964973101944204269446291460645572385075363770186292375603062294304287880408904091612146718583083816615552445324163511538587744698817169305172613337876207442324977274336645067683777796765388491275930059232758287975713446797793808282899414433776662489054240477063067554816120713077934134790946360977711771603333020202172472065881268197714545368706030881770786211693074023859775576307215782643749521292192704728436590036327607634064253124530193500181814646192192491770324137380282314164520170932784144177109473919782378270011291190060145893002888551096595132168331499957177407613410006958402420868275185372956009085030612043381782688958263274674653652689830039608608861518447901116781610817713734030055456811485738035474129749852783709092949402688404396296118433610828251079501215012170639525885885911639318761881316184271534993150998859335009904962455246387059329182142309590130469590830057503580732676020259999278892480841746472565402829321920979941442716835403455379463825174052881913019157863472549961492644199048166457320550628419262778490029267925961628878790898656756197680970619518577806822735724305514955485937059107485707271912972265193731443096558613476646948037336502276671724848890878918600381289913335013901901999906501900579895252767511355086858491259399299181230379026573351551541356182399021099174448931144442447131092519304028062514740792403436658554785413716893529823766735598772010673758257395820478883545831187143340547452942185720403410260111374599162225495402660827016911482732782664893225988383605041208786511024409921949689558006929763463598139946561399759371135451540003707664473166681361978615209535036831881320590309266939941318430686936041240038938019478960459290819476375877872148756051794764060009852451906932790569147322963467099053672302615317295423734558077166112826298345529298582666144356324923151275701490730613462304825919463163828409637336806821693718253534488629224973729394623824462024613584372524958365935333675900745293408514413016002743723699837548809252217986875765598903735331211606384533493565653996628179710219672730456203026271874272466152154072283491648601258706642810716899745121274567992235877714801162260068080888034505115603622578454338637606427337686662398663735039946164390765422420776079561970416601832599521154958968128905881497453948301161168524663521093013921203491755086726806622343082624802634304926782718184803392966137987455202499251371118288606153267115126211951892323857757985318258256758483211459539703060139642006639620602522401487647726960955316233267838730720373738522384892088521925191470847376643507231299236696290381031421812489757186748086564211089343799843617908676649545373147540177726494587742001232004247953269756453424392250266685580899343866205942826908805503107972624477363321492912630800438464478976862628971512804861477030189374906361984272686839621257761332598531905541464420667555647841062368377188669378832329990261243281044339959802240101318946758836630234363141893363611398194489581803080804239835557338432945610146740176300392487812139248048280739757570088934756595934493457406479732527522114573475635776525668902105350689388941559733296675969186479587155693208829046958076008159970071472126508258193956181527957121929351088663490114449751653199324228362019820703037797381567583956417391952415975145644621741582594763899089003536986379400539954686946043878902525088694896896785387914368551346990869639997625221248802689134601248749826919306797119634834603556830076289609177116716094371594844390896071949283554804204572308800590117057551802936912474086895890041867725019981890970487025651346294065403875470338519807430289741262684188992428475167373764605285725602559692999763210651340441285026506521220806531147448482507520645323704868290866599344667681741323052153778733857182305522302353784631213162702331167427290946945935803775624420336825301584193024765135787588669665638044279513339526799904809178192965331809901563343567898332090372040657194734363519650130550549747176024297631850453364152468962857913367596133073104675579686685921017216177768624966010968334497948002876052421817758785232853180516805656414429722407899996855482036907600477886537059953281514859692354256692542757710534714028855358508391268110973478057047076637148089412151710921835569623939780629940816069324541271212086930078098014142255561036214373779390918793892983815032329098461992250774005460866893944264745769556345000893661638163872438030147560859138114413153610746908852745156042755880389309607093242182240265926354735057886582842257556809619050821337265844329344945749801799914217450631414100871717024410603834219870390298889627829327380124536145420628698651364630264973259832905776582401906443790274856606825512213519820229546954326069107181498040830809503722174345864182757880525448594160458631737525356769299839031582650500126013424446985205960048005169272045600541101789790563700312267931431430638774045878158142294828618431937647287546911129519443695126193934394855759951399934707679135810227405919385786611407674136276523477260705539412518117252633494047607166417971379190907373759392597692342972912215619537022602162779631893179002703812986474410142232073266070930867109886028817685395887488964631437045853374598121512002842692515217839454916833699187049508110239164647404264384812120202375794064816730954292543174615001547893721617169524206026145701616714403513884811593586029624067803627652211070258539583660456532574944459083509080203928692151318610852499531351195526628038951586412374831371752624637720296446200006127896832489242485176312789919846389905019288025767777356654746947426464904376649370186335809789078212759066294686558645649709343706409560764636291885830619674789804359103659080543665788293213376912684815034914472452221291906106701194821505705796964516116573425034443077143014588231413164426092579277048085923385614416097930809759102368631653467197492138350983439108486326877334244729638860090548861487654193107191420112032564245742238205168365167139547659509037391871736240499736617954340880589986598984941148682636532626751166568990886527731334166570380603210561300345951629051947788738799390236353047903604464047352292536386767402008843491916420706497314892220557263747755445936214842693934812241387691080991997599585552381342479126556691213209563866884711143798203672433912869357651376848331328167393244176388032347597543137473619324068600474530242632863378103476423103250596377439158876652848034023951051867565490557690142167864292981210298012201869742168947411395022766994216234613576424255030577302329615160356135529328721358557592000647273748614105733651873092756752059134398784091562455202559705795676780635940962030585350693642854467758701702924781273981541196030322929403989937807521938369877049073877207946626461952520992195460570085514091798352061537269075957817395811795533370523658946742359200160902079614977651694629978209408787249958042454393463461219443229062798271006912697688971904792170444853964088662900216385851714436651210411001095871698878556831616808586732450684607426984881282132845506562213864590052321663119493312715963936904235949776957079886358227251077629812576581155746100460985268276351060387511207952471102146984379237925737803067745741592270724729119934110379021114185323218796160287565120506820366843372996494417614768114313531324292248333391523802547235369178048316520873276955666064104865951054792468173510164092946975527043501225921940124610802590867671813695363713570623992517229670913536882839271463935942631136833576958308252294437062652818970013661596806019042570862535676580576423352414870208282667681873795274084849491467245078426474863195862210214812975429996431768458040102191455927842880049201801590667663260154281502633762402869604946846404552257157330382211346426104187456938480808260151515956362148617795152747069994401218944323555623323876664155598355321504673805343817607492513668084005021444918484728579316513240792157932225731268370793737390727365493827978781555935015675848450491328161004211833299058519490838831073144024539163894223626332526740278780042351107052967120098299961825374407990605091424716410407244405415283094278334149971430803606390223461753677997927735455531486562196456055169936136158776742014331621039458686604114275316833008589502944228531655824298479649616627192241968781564704108362423629504210014328136243707702454095591971940062866057374883162663655583983925219934390739488040703806636626179757407969028316587906098043277110690131990120288516299163434376402999547315585149793549831230066163412171826438932123065002761459223134878540634719341962101887890039923234476049768260887832183893394311079502008546005261439510277734372366335382934355424619259674573385184942469248897220485367224444142228476012555239674739631795789783321499085969181297007596897096254226458228096958635288992921200025156535338148206605599151495121183803926158033660097151747696366065212548185001731078774507320500778281556502913924021606400525681894169385016004379106882475919389715346217559595087346663004040366575092965857144646239883289170044785494153114079757305005533478081108427045129306844159198051497417396247509069701987001255662782604233662788364554391363463358833911032952186616254521270654120184730981951426004019313372560284127236351517458616879816205625954785938119147297166863843043106684014586849590065761697260123695303386188621251766148580229188577878814493790684359971787946678248060879617164323002749341958590660213331956998752541774800512412823594841850737266967486304902491867587516501269783240329257836475412810439223348093695514713001211041482153482259538508061102685856641396073364752970053360700047267634815056558847582868253016935516279755890172903789477163954452958074821485239673676502500664377010531762510310784637485193485949619698135091225113119020462082790526693195225385742414837423109087022039745731261458918210715912658813753202971499673126797594250390770090414894346438982702609486558528139931667592664992830870392765176333970337887781166511045516050331537184572091478031138266145816114123025951704424619489986618571999911732422513105745939935695046269982719639392880977377260107917852047764238850852760353758563289268754506046597071609050970023138552213480542786465117170198934639703298016229291186128281892521124218278549881999726398571070433128943437455930802175513115691010902544830282606575026421507276814658039035010659663116321257994088044561283661198014605530772533489572607251992086989009996567931735077293111639252976358175810008236712981580003412122892134088273516760289547697350318416378940659905478670479585872129635307828933154279427062243998863904462740316796510105186854550141889666130191519186238397259694093370818031494547069950807823095421749431872228781015633714331494951730473419895415040179395627311087723470288646990867920463231023178123065649623616533777145552830103801858476843098991806805806798268668762491830470746562905000288824448659955865305386214301650433177451243701350204305703381860507970067181818835698358387656574819670694912517193342916064376914620287323404232337795175441613570712722250867928035201540595265718057617101660481080469289272556861200569831869658680694677723284781929902645854822716103116590868511654994946382403275149986033811368664406270017629437264878315513519520172987634078714918753474644566057595032907578577459456388866523541146297511376462720804650855781475690093290255857963079029795288892054637886930626791336676157869632343990541868559457978728703833824591202531971561329635935567970256464810040928185081475684498526977377413779047338675243733461180511705347424260494810920636256342668059392625296344047595584354353192875230089280496715226206080129839719022024127761506765416795995015409423636187366162354567556397300162694860261200241909840362352702596561939854001498210006111301924191012832257233443682467738516515476017851676358017109549105949101499018130276415931630306065175077428708019731035916600907486677251939322193748553232549333941180669220692562617049335834391310755300677028672532303667166875011054916888337110150488979936077380403265831208992510751178431877829222179179739923704400817161189953686459145409098528278189383125058666284776818483753348092930961773073921214143339806241639775404596277207877214367856658828151836328969497703845218505201320079937486193423591638439761241077222372597843219557629512480762450887079979370083786748904142827394959971709043034473370977296778303641012551081534945405704251312583569575727329941075194094782871435021022332373195351011727450727197520185861891562032167000802698698099816258601646775156056808001712838403564348722085871188219290372540363272698918432269709643499822434315269448118825000177651339396031318590866693414025470248571964664832104716674563659840324673805640286509022814286360612283922038821873820151711918672271886227361087280721760912888323389369209178599315829168983553162629449755691600353993363098517855863577009277454846453400114852828892179910021682492648711218594535159975784325745617872360885877600850415909768452848494438194458443135463623742086204437270699334985889528254345939096597952953112039322764754670569781356274484409282192948055334461819939082140997895412087110904869907903745427167006828486227995990255783086587593608197612571356304074613495231970467288147194304723264563342674864397111865952266221821048168196985869357577507820940097994600614270698656680709149850106503076495936501195379392802952018656818795307553895903857830923644240849115340916439971119665058185093661868521471350443390629637148449308415748880104496219917604370800079271958156914100363672060071930414841542102567611834693269669426433843412904793303467242881149964654740571194838545257090041878953090869327757962636726469547295858625662119497967566117877931038218497434778147122043545341780550169534354208881775639869205271724337756664095327736548696221289713774870725710172301342067762993057911386916259900585218035148928820963820703350453902853150979429243649585157865791594709094198476870574871818931749208191307836744277372804250602509073155313649084494382136943133926204358870546162860381513406156401059833275514305213472658427019961876442317668494244652163561978219108682305637240692441116671409674771421050228613226030439129471356596180278951705860185199216071359221126804901889132956756037673166121603779996472377312545504590817304692309216568947994095815376818224739443903550669870559408938052567961538304117069396281058320116188058449651724343951950174466135416285665877022463926306719590876349778659434197547910158826013283291446201939100189157247574239016043610638877778783953845412076629988663067752601433228699631367604333794338244624799501898999483931383036015870703810742500527270051304721927929007631513721818183583317270476452635550985877362109027051918865250291366149910079504611032916533450741242413803349916749736475881126920821228476570910797212721219550248663389352055730851246015190975025969140702774804153671447051509567117278476859465051059751955344327316990547004888072042668934198804244621670555561363350899146784265179316038258624120898445039995544352850677487521542468667928522254411460441531271046494549702341499874130308155347354802637630810793815306861321721541053283085907000103663075763187679404132617869875956345272385142161430271426395186108175942695092621034984833153370153785717822113899348055557242672794106222539310541100558485836084785082886449550766640971923687216953904694159317816026396709516058647011555167984919659521555708287263164553723480435615341763446286245917782250619769286765875569328874785625522639008938135547948138048014048457790664583105780566327514004263421321301764381987039022028020221935965542608537282819615691975139528035079331553409193760931999146549562225439510452273529396672500870524794660162304562139604697799251140579811677055982573897751921912678976253618680047730091355928983117382020763851356584271921173073255360146609061697223215126319820492209529607457477489093135343035164221733101591326059632023991837491079000865873155691553440454417149971731420015678701495554437926251936342560766504830813617747748155197153220882385067437711880475683908481980061465891367758354651145741174479163198661673141326338559199247690211842762778052196041142657621527381835776680425196155055453079781581898539390488366560024282653190352849986864172889173042699084527035579317921867125730236329834487113386561907607097341657922843925445819349195511764370661524245565901074696952957634918815136097700710577358546285486519414412618764592600428057402125848693760802116656193856277080504276247439552149465693240841399525621468179626870578113078692676867424806124142874481959405081342583213053749590588082219171494409347675718534854799618179981409633401513914338326262585032254132075572593860300029073266545161615896738861227176847831486987884747744361607062393660702714894718951209308520141448132938694709229107074002554802040327944737118319727792230636980197461407571804616437632533447097984138522541321180690076494740966164452359817839391096686810536200448794621488803964623610422613386635764656506200681243202054517817687781917479165650231057170525859410147130571300623709121185774022579733724615248492882003378847119363266881621768775932992686526893283666541198742962733345939365289263019023522227571085212462180323518838002982237235467564540024031291912764856643559115446358198056108012431053785447932617146874866286179443011825047666414132429900908504983681173842648320487236912456118744047547321180915451513152125866419215407145678379139697401617019555851869898482742161986171804235129422796801864096493430048763014208232204280006682997736736886087167240395501341667100202965136911386838675349088213633983516864236156488268262624017815127389467514963037177821880991742579952187642732716320397501430892161359628855752470834152209592403512065886608069629464264587032298207278563207606953048600108569820234926950604974002240389845061893387132609341623068696637722191905916184186413658738025635423268942901476130663584822339358436644102680673500996280548632371492994036681603101403478588470597096416243100846928304951644859628194637259616043229204838711451738050302278301464702629138764696467422635713669124171111949552432821930957129921642770240490367134309725148412258749861706459428454184334705914825833433082371281673395995374452006193380181239364395496449256746271673849759334579372500296137916649724717897942699692428018270310722722248641879530777290223870729002522925373275261326834030255106363687520512787083955810932041989617312742762175820742895101785779559809187714338109649411442889285004482198450062689864718606989052020222327438268013249149595470044655466181000084540916724001401577072862757056039999418677841736868081492303194912482971746736146440596086328589080610583955519565316516054170829776361511357670500101193332580018216745698451812087548507399362061275720384500087914530892897064205134699392326562068427703380936516689673375500652355986581865698936878777909297652425932720993165064755798632602852068298689248216920660242831685078167058426091846890205905294596549284500542240052974875698842441644121459878661350849242664850805025708428779587218436521050881248344353880467018586919266409335262428335060442212918061763476653420901365595383031709815599441374916658078279066121331862898859257887308133244249273748021879881215558852443497753394965752565609168035172651249370169835573796508943505622954341157401540631153606036161771117789398326808961563265099140972326038954041566354128505575643198856865324267493844597177200494646133866614326640972047235472860518165886121482523742002486043666800419648639232235849730279238011117774155796125309095451137025344915855156351570830476289297903917366340263078879541716237330291984734483201328650817367455781197621818303668886097121109266127049621240630435636505580853819519778610611962676419319879929200363489917282335114343165561627370120110957462586537543096938868094588442182795301764869572004479271684984256395088850499409998078146318063404356074859703514760812329912925263909684561888062514362063692875377575812811588745437323261378039079709399195341671736348122563194526353074239411792249704122404209531395352949079672923563500236526395826883342789035363617350213609702059985347755379176307278765552129557948544724432318881247135190925425940703707641045445988370244842547248332890497023014067768626309958944511514550107297955390323819705350915009236216198114012809061733821648478767856636068926319970663981627204225315971359894352461043687970302561448609371881659711722572371199079105415424869912262968069770636403204454802103350065103010009621638384750417772000735761441917684104037840573717924831970160998736842393318691584484609323865208584695699043665452432110531349591168123743666410895135667670617706904991175979935353594546349356009871513680216138464504633578552001289538449340182143384254055269453625889263036264434546629472131966949355109885043190041615178271210082472008342134623783216995062164439922583263917668860158550248761677809917325072498755423177199769522693455473272955034711804019506355575919762602414975760797849016478334508699395574302023422398647249994791854787897269880585180896892946187249778032144959431514108831662231640787603852756926966734562471204963423544405216531970529840347702168959887098099709895119478678585230585518422484964350915823849375872239020962814875446048358327252853317088748237686754985239062536883219256134749141723255632395103054107021876250213648012695751823680673338528387772401731287759768041584883415875878332400414355566860686725280719508941769060076765571506371996795159526624909733334818661473061891414973252026264216364003048796625019608957970586130401148711412611390226095654989687670337987331593235784898050236350548409645141192063704290917165233293628614069689574748316170887796190189067112170062474713758685858927391795348571466562824775669455274530235722913736810585772052808466114050575313034922920158523382756692899477539507741183901362755923850525233406687015705044257380308429546998019021596447665978744420707254396980978226087909288245002865119661472511465943508709615676186219697780186447058220569519916334600099767897276562009371520806941558075693656244480458648184745117660429097421234130334242412737638520632948417594580771211973936496838866345657897085577618326270516177067815594042343481066560594527948147976362269742524308212702399091534414759707134601660346723427055787552738943047623180799072055404125965525999166634710106147155203162874147872554679091305537234490997398348157852142365876795576090076297289271026718417144069009549103404352364353717274845555313516825232740183825786999623237739946292924426729242755913897484335040678605086668396542242727202373984792053770920121078072352037544519932975996352045470292483191550497121671540349371745480196416770302196475555431489567363084881821790197572382874344851332911143773374644068989256730637159081548923325916026282204002498700504513712741734030452229694562161733644531596819927608577776903582678833163100122881611194022132570456703397436318699610225734832747745976095731629912798870556958649434311647105676832701031842914629710063285465038694694457231030144740016327492016479661842661581356509121377374896225967385659907765782092208913650825646312259015264944394967748180862616617750388090038289465381580636759688360192289675652067468693209872585841842842450738973981540111857342094293436966415606280593978562638063686922334487142735107555355809038465604744555927545325945189895338717796830180232102618668413220925089393052481241718661953855843687121285588834714157444107432511622780122549793884212368805703256298487818923415609219565774578329889514493153301482139115780646041004436594243901200852059148234687691841020781805033847091452083328165855500552440297049646385942068281818378413478746207135651000202201341134272327246739310194516368902285737639404649464306537773302250611919038230184596973900274826043790811033322219194895756832023562114779212557924373537997648325274562607000579003150702914013806148109345651883702776418251613484638400731771212670766341227843137262515246697263523133408072262073589544685124768567246599058224321304457543768231225333167161315711161625123038798000959091826291049079836064736479465882324738830801010944475670682394927146805298843256162803007093376824191793002230448027138181436960661929065385123460089629226911615500003979991745592660752379468227040741884477476656881169572993214767460577582382776833370649433402299706243352585783476667096474790386569210702864152143772645353536613704705954875031127414706891233679463331440267451896929927527344025451160441533152408398047151513399230575167736566814694829292866676314297692639380237542915857065754852255489103936941681783846917042644785814107883605529044012937558134573499110322545390899541617363936732734887323694464924744051158518012431278844410025320092732927160888565107676659484588484901775403971692794011741949696347905867357111612863718897964480740801800111848379364175976223006225584481415990613767159963470715728317930249007532093231505761148227990815729988959593518690063001304219287138528514263030988106357928361727598626195093614848307216310751784538632954304190016362285309537549123916689490184381753378317395830378516353364772361268966447905756366430420137555133366440173858927705935838120709499403371926211134472234333539689137058152824120836226329145310442458372840088282260574061547450782165319292482022686743309782622146345175395152435652390320128373587717391702430262522742652168076500351242193023555211360264697363311270003949249261744119930917101664105223919244705197645781034481297247426373627559384651232017870314160554204821105587140127737970699709858678607463393792355871188707474811324209509582185610436966581537905522955191672136276977551272308366339215563653728636195281787566145576044639021799658025398391386209631580395277846735373977306824289309056819337404745306751941524346547825557476735516775510813178780668005588581980397011564016100946604043447441842084836644625816573832410424635523836485254610969271508147244577268164552959617587772605612299767482904078424783231474071677650503185188821124283135909459180986388908325942075899120113618056510043146211957512635090385807792681672590290518281538310773395431925030088487411406925568735650288272696258455410603816820008963458036116379871505538734711056322053862364093199299713042994429578910817353991229932420985903081048790520121461280618095997907365683680539344850779544086842860282504801277682082040900484336396627978744209564424851054999857824023378686327634575574307082018213791421496453565245938070215993617922682680111928777328382172453136371374668646719102495646359136661850500894007156010074399005272765726417138460176188487838343223130262009982976498439020717742589770047649628259252843772923186271526956291283054985658951711920051717892675452888652343251324405208403404546051977775626333196347369905066468327826416000803129860365005960880035876087769223902786958667757265592003764509644893765079845642162858886935941354355503105242390263725944588573240919085938473059138472794665837300795041246721394706915426968947489234424887814163904241795840315913995591363017434568102052090916721905016906673064243578781011023880062359525529401245825503852593901628397668891504019302145311203924415538735504052633645380638934259728476789008603951049364656308048604337457498138674824816033357207835798970715267675982577153237193373903948924442218801346963931185003293543414634524378090053805382532895706193279538312102047550941447666370937240119060608480853104560307763975967152953801297814236456045336401237556014833599530647431683290915717615842812070397598127410585879246724870299596866181419772523308778514627934792670216522644653901054473069015761543660996685428934449543143567682327452125311033803842544012926824366696598307226791132559978966434940725759938553254869873827485594699597456533637900428652034588667661923322838689529503619774520791994404376312261472224734214328034806470666213408443342994555151965092733906338145125696402442285589312181511516105663597621286638391285639087479310271230652196647326161421968341704115508627366391101848615998636566342501321390901608002150858636590598347672684960983628150144797117993683618695417747962452231110510584349754863479530738271008251076895889371351606695757772952306977979418950876088400392652997602206231185210456834548435429214210531610763383634457672293509713427121816012757645883251556814936443751407522334824433621420599506203022230180240021839956985774012399581937030201727575898825660077811899039732400891103756815062610335482375268367181611853807224252720102141837001086734440580695665553894245667306052430713044524905745539568199723233769306788741108437456424271591498212268265653111324545706212096262120021111350735128375424126308987798328695559434233118721350881455009922735110658598792103135832392785508618083790204123629729689618739204598092774228030639351649404483239828715723113111914642280129406705628956084652088998771722803572761176401470223903163380381564600231367355283351603028409059240282445017847650278033750416944839980616702324887920181086147688760623672309779017588320447257299594919995101068334139083614920892010823712387549634906909660123722879005704567278761374463440769647294658997090619713806243158139518750671698427584746657560166504528413045157838088741180569089005512280300580647075790276133604465291885888445242600074602395940968093476685769810775689943210959972410153650446452730749157960114547821202969091713135334446896275828455241240764538980880205095009799097562176707456255642121111624834652971148593009302887814722430316020268404492419778187968843308326045312307049866032250957609630362084568026535005540230247643791459595470469039484054797654744521272252429349616621311960139939415803816555781367431548295016332749246983175821939602667025279414732736894373000855722434994154079991931843869997893583068875327913559835091006787939714010754831403041704972824749510745022922285174226640369127520880334098003127664685203072424932152303827400155028186521757005393792619539494555597991859594645411400942252917590070804284520603956082250118417386915460963171042505034094511315045228664178681643643753697606606237018506402421068351070717128741947435172643220014504025134665842579037127663674009875611620474896355447642130530967506551875658049540894506361595591983782351230889615586556013519722405655729625818079812119302464182826394985361102077584333449984352373872619927516701668589101459790010998060428281963126424121408614699805081844929848903940522514142465434330051288030152946802655190118027142070500457841880398665985173949672299165008527874606667534095094017030548489723558849535312281313905636643193008754494956475831179576829215769703697339245638196041182367218342508973726300128453926424211131789933720180696274170273906646122711841049894660560439380905168088196732678313507986497239353470648870726837024827842717450831139058103016415277063130723351524310531336454190639027276208603341902036589681049976660953781238248556197900389434029375406591122847953697788866934968460771154478509648773000321561231007170361286390620652438006528688292831496057421509297126129767601735319262675011875145114779328210327808536904566063033169654183346790328690122343823931720699520039438172712645363632601272153005976651214673041453445495897463228124566866660955159993721770461831969218628248011524436247395990471596018386989760701351602560997895863128893192945904489046241425458016707343654443683028345798706243876392965370801921488207436283272920053852726945194335628494069863534277657614959683168487235878890721833938410389256012980082755002310053475472836661356055756248196868890133158430010715684068200716314282078423598066263877331692890397276131087222673776632980745393593561224795784929254854290348791666018071120662017479847251844224912700111172318408546098419025664570259429565578663403407448472534014281613182357834398775505941940455023800223142565033929480592067446285941518103081522513382217638125915707452522307112376357544995629954790955072285190365586247049444546718348666571147668858836413851379747254440902236861182871697040588132405519924084025011688098756760148603807881188968815340131054904685674883135515233855234823387028145988737200805691355876152960675730019776171955412082361122422013984112054645605905962125843010960996028430196189858006881662242428843392086651278151044897432050961074676387673248226322908035267879037935088633775781650592664141710916763394539241791495520385990708850052469733533571241930123206698812833392809409577110881028431444158646539938927846738749074624477836634576437553413334231187984799639695513350196442040469228463213449155869102263390074983631837292600556845224542242979814625713883181162873221715845278181909911405682080638093916999193359330443030535093480849286776831669204986195789806862019092903137952947322238233496070463007517279732184902810279994284314960136586669310634907115631213047648630491405795082867184125433747836863146539773939978291388338849403835997259660732962433910570923723156498976074513004966994662837931190694487302638753382575379963564186333010897851294941061078644410013542767140274656551309220150749737475649882036085915658771120312707437147288487084531899190586652967334313728952519222892479661793403796667999406797198524004141905695269239753252299838589282530704920574596124900029124131987003981850865299512338586592344646729376643896339910820484136192558041828014668592043476036171821514711526212201689921086288781502891709166066644548263184415568755696629912935111356943498609777962046606980194242633881999433356223072591753800919977408392918998862295189051250507919420844080162241778838569305494496548432173997699693693149238709480260985143576431285986066943649561069486199474109701929463755766952732532893403520344332142916536931607070019267055282157212963167900346753797082662334499908426636469516599427049807252638603299803870183093136157741939976650792412489226818896998755311669941718404183563381823865578016262320148598076863696107327728428192349664509161138995516432973479377899390845180773506019541429387801583056989747125144846119432362322108370324617772953111255447474894645756716074455630223818128636443526707446608459035843880928598750681181842291536959527957504891767879235832969383342801991389550819136189744896379017361134343114947061909348092278406673108847094744990797619737073476483250705764574646022629864316972653712007601289075767847960513142606396066687796521044460859444330296205052641247192044545144956612908244655598823076060364941357289340536297308948483832886872693115179297205301307041995268719653414414883576357868306737334995749475971349093942392467169340480659479331285602462364739684659414500711574030122220231823637914576057380293912609935341765174887734151503534312647354907100006780553321086912524744091738268132431754398282605517046635525547756542804406702481088195152059392844896416402590212315910517525273331004939238478825206895749021655417319802644503545418136533346276954087009777063303638231442464602258058755850030845835420092140082319932382080474794419964060762746388686994601313022245436263767312253863337831964019282577695541854063285718042279927200584179210302816497407176953154346740772147805727897666821365611825788080774580570728584410952094921181057936031088919419746939983300103976828461680602527956775891057434568726061130551359358742139064331656057839738970456981507392279051871274640781987936775731948386256195207779449608516648054120878552454239588782238182992353682348586176116147839968285078831893223444274671414511814844792558327858427262176519597682183906919502906904894132576651379212700886635803017940736221320254598027766072744466364318375191834249717459271532663014142846567856229267834171915080144199453465398622137218493551215481771451101658771408650413503867204473135674848858454673610325170116520214723140512259943421286512143449379830028693761350353400931818865590782935294896030784520397491672154881185193917508983525157300678472393977382172455186728230382342675497993258459114582668099796240313190963604256052553258592143493691135683737799751539350877146921318616338286833161535106910280503586800425042528572842130928262464231498176518478130744190574132913414544811177960450920590345919984601063326132544139096868123010831365378857408365438835213252844173731734050137752792053103941534901729325187377525170927333740680721581246471574975480812292416262975814193479732594073956945453006595571035610927444074426305392739969580179887909384743334129911640690829134899642732944433761336707859714563363625117821855736811760335502115670736992552075310778191713227075210204320830228451317584045918745971651461891200673838063779218696048286947782568184966626499860430731121331109900101459027347638271672715363630074518788052221836408341529060061717737448854430669283436383746045782658175250485711596746816270168433528118651499903789399195315644561833709870003467963579591429201915385757580794002854263271494900548390469666586061174514127842320276001404903198251160039311624373140011974310864369397735626799082035675680440305849603732241287943046851647223426583201417205680895485085115399666478670288054402991967212878976985691569908920895815406833169929163510576968669661600875366090260088661361328372998239368414993610518972873795084317120253194858932411445641250192705255891811348859599499522777657433588174386402854277286090986111620823798441252508736291726061063589054932000120082306067557153890878107007926402926982015015257621398529145546653250556202283184828776271106603735664553804958017275570128087741216684772181818071058754710722443340956857467964623977202286171577213479344374543578524715742390825411430845682702862922846283567450308670205064726930391565231535938945846830180690612301264093073075738242614042036968527292566491165590094057013872922594053761656411526683561660730417097069528745414625252823096417113058946077963933553644153066346717532744263357759443030395219178591907686638548846543433575006417063811849612297222812000956901723168521692834367044151787123603082091043294730051687949578344971428916174160460179701255467851742407674916950666188007662825104795056390870143572242453969580939455279737857010022721799032395787209447344988463218140697251563766053893030986903861855325901362870110144048216976405525784906465626891545844536326027675204272626020102542548303577839140078498786543988111081220445292034103456540599017422903566657540330406065872958862787723235082165919966231925205064514605730465510495299778511063161281080883621243406648017935119378529262123890717993286942486392020096476937401138293356431775075532407481519488637334190935329612376917451384261707547136523524099305352273138641408392529653761913750296229191040357506818232192747302393690052873397391683936991708975208902406326391959301847900738071197755507885627628537506050989018937339037530541227589610341208180911204995709045939944598556826214167014896461753041545373483009503118269180808531617599505423613196245174434439471878100787483992646229334818588186435123688592175392247189437164047366069834893731448919826029675836657130785652541759319308175815069573576355495051803936359556907366855857816957538763384025403918847685345486994464599923268178735092583214195356185538211622748992068327985573193724587415225560531398459136617362402207008124465607611303778045807526650702919747357261108088496972843578331594575284444516678089564619695463334920367739271182214502031161436395144409208996344298394169423554512169199276127420130209558277263892431839853020240892417140080365980039120181896694589378764907516930883558745534102208697897055561893992942482729439229514159329392067454725746786044876599078146584025141069381571828286208773609875218015199144112212647511421944470382346606810587508926605869332469398445847383908705771978138860331699567664772364505818500774253289780704242031152268703143757950478821270451712422102167247220568317971071530437082459348582471951610746343180061768021175514632687475175241746878490027179718022533617396074305264409982220455525481089758745724256823614813260466304280528555404692929949641032591374217627221316094284044036912880122085077464838690030660412847855489552870246352826305707465978085140168957333839450207446239447853226220379511746992908283500449643725991975509518741883534408234692934412434205461784693031993083340454459936039750866439186998713365110994434654569815307225637106817071091123768815941959039174071826936230072520965782449954806896183072380837872593694433020568846639801106037745731384826120826076439941606199904396459065944643907212122362628606168169429805875232033702817141074338109806673142763560535504504626272643441009233807416262749448431861920128200779255987902018592159009604873930391615091490189656834237777299111651872994174685796405097092627116143799712814710663750046396284324662223809445211752123131686680993003013052128227716697616299823635135405195984381801735736470633339422761975530165962402469721837163265654997556436609678560472833383454647971714331986477712158556232430707630446059781945919053904678479457435859971770025120152432971537013302694013420509494817838735393170761664377697063786474043345184618018938693557172795763697131704285344700071581810852646534155736172652135339111817899645827559987395647916265316977229134217277750724552611022271522866629351654085865191493647629879577225945305018797013067042578711280967159959734576480655655753340982636131865785244663083800015161835524839182972307088196451506877411008279123146421426187303122068777727243121118870346445351718671639450974206514865031478700196948591814055931388842293141100504992278739937699196901087491067259715182488645161090985294645708543398800934902728026383531168187359621765149515486044924911352184454907540590123470667343330168680725054415277033415558415733013181302397741677768623154099365884641464829087749307847290718675305003116684975305725171335720238409128018048156365120055525867815523321997797153791513058391594051145015360653660364500617827515596793823071749454396821332366740972502681126946108227832957501347534776792949472770338691252933656875296638751525640207114436752927962184612421493605197130652750185669532353524274467640532796811508755238744288438804452757076165631235038787234962165119084503402040498872184853789894391314161914357363222678989472554576653616330918614108359369879031776901828490218595880236310671488191603823951776066014592357913940653295912030983759187972132208623638485242874803116696898855718439113862235111455352433421009222043483318996175462163872195687234605833803919720581527055871118650733313248952277108587871326324180192998439718426786336955048723742311943105941535922053229624504654384559982806793621592803188154258879975453932074834813593987877702825765556408941023215165073618049404997054043852990607176527402192223476727959835691541780996761355796149684808561753601593390082334864344385292555068242289007030471102232593035862098370279316300979466580848097418651074397044021885403004639165830350241740500744838688869769936314839359280642884412992576213707670550757371751525894976064927798084472863467243585367984207611330586293702035675133166648575810884664887660650690746081317477436896228707021490069200641268914539289759182220418816811830543858693902550022657729591508881575123144811854984309848499399238352430922075095494079253163828179425419777506844858154840662474364401651875688272642947328652323213165809001704953156376948633891290856219083908975741349364885259796112714817432249823206102625762769536125171130270576629891357041746273635752307542615620271911732097148553961372101706780586268721789181902484956866963616433454328679611196016054219107705964662768766952695098561706617797185555539918674187706828453612761715254870716364501873845346858226241331830506433722618420507112172130449673038077455047373434721940561878659401083656592419026260220549408128331554612623130139741251948856549440414438193595909082231686411040910182524483268526258382800911788579041976613089127735190964459617371227059784613730356340834087031054904358021054948936889103345891106647425592660334953915557129743882626720293522290012295577109127155791582251211761322916223728930752803657936740979013961741378611413148206556208219789326117047922716628823819186130335207564367118667760167724817581890243788406706642640409006038145683122088667085316943836272359101816527694022979510991101431178776109531665057983067828232932707846972095097085133456993896058345795097289813684998508824913044348914840198262470189399923776346140853465890987050335052333938129055294189736098577066019203731420968199495497119432359057503051267026215034946161724308596476610810482697182757570092289697710576139735592920958457368027700387177014818791443954115247129985841126934131750185556655018563565523624425109668062399518890830911181391592057248570934827060845652700083591568731898462466620833801272877882734184038913439987269384981433391880694299628987154611437975531206963464181828762148559733765066073628239346967063723580912266115206179882861110378094734498235933608050022989328360915069023657210797574573834801725062476137261125873135734105324006954943323184363137627611908826776197175034947712609729749192330890862262688528940319657590102059132033097975013671398421087174902519260015432679044190665173640200792347149664833591065383660155697632132725058034307587491492322114397071059022397219683230410347454722400692196090531110156179410136881566265554671605869204092833095103765411654993574405578448920462256552415759042119052585580468727272084373489622773492867801032356325295374699448326046426990226001679937943245342116166810746703589213123747904244177921095910010331630774040540295798733201250397613458444716082292053187808881472228498141902644719537379398292048685620712111329289122025952923964032828931568803662629931902412422720714383484385569796597634040405503830369239263009574863692472040328061743348443135178496844001056794243488467029257684849858187284567003321067146422663927828053046433026174501029727577890895468123159220757227589155258279056613492558209592253276851951784140155732465545442482186172941881567605302188279971978029630609412529346257841483199126474245556673422586285866329799613788660536150847551112791652734692180955952073314752323264748828015079982797750956603709595698276649168649785773328510782763112441561660211531879349074726096035681558520778268570603198962947757250542228669204479892985285400535511297984202564904483868745366244749823519210284985499267227190725417605066882768958325170950655645264606514590552594464447296600165487563808520457115500135511185715133441709981782769860720049378607287353083068346250473924228102518450709974042289726863217279710417338634857294404855726643082606662724242587072449767780412071948703873828553507336166029196143557140260432885904725976493571479217398796998603720258869371995504961437717977084241881690533853942808872927583155686044954806434347937737998800430580193532046589684242416454862877700022630298731718685217088484012808870624801846828034605463629612450876521357518133490459139741175257987744912990906738563287473659757484835035798383359153053314930366173668958517206998566611126309369097171355528175676170157689982700255285537305444938632636067528167145008347036948778874480307241784281568923128172457367041661609419477028218618316579941179684942611184300680677671404914196388358435071641134463892833280374895235668362362653859181310012266180827226386600151577248399640607839325299273614411535166060031075613625972984264528485370858799407902439369191165748788217660888597175040856797309431786275708329787195496493846799295095336092829550338306965302057059753974313949727663952679417735347823391154819181857684738054471440452990977692902384002529716732570016125406379969668821075469994774150871563339693908220056563206186215487317753501459489901980005102968478794102026235153619556108470461776151673546395427770628698073261334383436499706299856581064088212361700915278220653215801588554651305145143041682470346615628462021602562522174244020005129600941817515372983984632322116271086247124847664719965713551288514022713634084064038450758675116921858347075926237472069002532800898804902154925294994758647584402176405689390104245812408129611804858224057839167836841601525958179819635442348896922806923176265059241322042982439267750523219619968805441183460443809185504927291920779391531093620413796804472210411164506743047940288826951047417023572464355648236432376393013850195463174219632230199534807634112255608008726711002254891421218349415868096591168339094326863560286854671638318093900761040825178930265948847572175404497177596419532321447346866018311778447364698821092925373594582142090262045036340475160359657378314615069246999016860567281813590500970216695742177610916969386303627781395749702353560547923237851366997072031832227021570736508101213372171425945681541684431324827067911484204576353888511801290619862112608675065905863324174445075465593342762291960672261556936906424138531505271790805806522473626368234299838705846001526955661878374407677104564841687270919797754079091939545807049854205249949407020255263951757709136688155584546196431512308272480980956638345334534577845939088666946989645357271617395725226304595718570371388476036769925167285331544525261249584794154706571019463973458366096478125688967167188973343866730829526574131255710296761327449663272102486753232829904184604759430241066188112357742621881780886700714600222314017466842408189203217507216937299400870694055983091871737945839867871242206963376541630041826843029164831170193799422435172142961143885437169962256357844433518896441135456867327186587154664739013815049563577040343474419121761146680408487706592601316251308245912101228297851636999078700213160639629737548971198680361266630263628348929634838597456263570886814091400703737603856424292296287366647873384179773538931985391171442923211119214287905929700198222291974308939870029838576450817383394535050804612349799987985010140188457503280951812482897669149642612923866771370647541486312336904393271011823809921240165899525620379894185538526887769603042069029112962585716637229247771351779732288325687095670807354163885255249213187251504221019056348350372304467252940648339000887623632493704780775066915255296837524760968667533225841126310516153705730414873408566782564183110976340636306187294958731722624278108058584887733993433794490904071574111422599412798711875441650987004299869789494152965566616292097722149026727805593228580881637921243539409698641236641138045669354927039632012491209632299225770094491309798484352642232332257607083417650514902756761540243390418854436749007170793783794068063592535242152671635189871038756473257491115072687888184749132505210531258853079074965712905616956451823369082742343395248373236902224142855673828014524013367378935939801903848638072792797217608575290503638850453428048218623598160927770487735222261144831826750953804925583059665640986331677803529573975374048497577804157706933029990840627709897756418451840717170086739088831371856580945587794188599674503413188513726960478643743419325244025654485056198256451156267144386461023451579310464433112400566756561576284223764495463888374846491929966596209103763557039624962866337411676139579110475308305416880984830531768127060238856355861814957189923983953177585724595217627659523102520860639068117091092226622569150556782622194519573748525437576148921509488722773037595100312138802462502076930763180460968588573529531638025394196809125292296416903853657999199061948047479207985753878727359737992951888631264647394542835193314268136860854273872359808208564404207428615908275604753448013192419077564734618255150431641152096704408908588580639706422588881362971908649125283270590126632499398949779169099429998456211850508088454394268595151171344923197578159132004243726385688992432436612913177717981225654130502832872920340169231418206208329702288888162879805972411568954148660671175503100815828966392198525916442478199564719226075774634397301034969429617890710434028230459625230532016018953182102650511680440281492440401359649680134145519529079885280568347966559066356009365034881296612920021762791814498609217060393346369033778035589156387069754151148047879118269330251619418206384161258070142415469415330347869321391107609435915131147409867559592191578815789437485619429408837761822534446107345899579540439964326398564074325695900758073297604942024635830060709588368530613078504711043900272903909513684950896513028745922048740456244849412963502836117703548311315418689442779681087255511768155758767486175722512119813486016409470218375743443422115459010966312685738670164686339519702646129147369479950199206427504002217846454535275316785614242292092007707737972949036255826313625036989378125260729657801050663068201729886279477424525547148396862043617324366025308662193076047738925163707655485672968523324121858063078906197993850033003599246419117226789893816420670677250489290943970592906521349742640753640783435917161466973014506716922926043912330323754346147115370047512722789931468267355096112090490200280565934372645806489041825602585722770252369513896955349395384966189887146749069588853328483108042590813320055841808182132001625342894606027743907572377064762194980084934878685487993892144752232275168923134794384328733478323740922564721110276275153579195472815142364285873334133606133737639158856175164971411006195301193444729756893900121240945532434067913090028055061925776553650606040138178729247336312119319087052027556666568957605128302649091624349406171154464669357282884689708693614430453184539444374326523848350999409355814734601036822738788038929924386651671742783245055747169806627959115914920647705113050754550668796061094714366275700721611801670276498130183049946651646314672726438152073720384195390071882498514473626735934447785957001831714346257139975927394459297702858896113226605178849854797868375135665389784087294171081164820481978337070790142262479242320390690746148401165494369883191335077393415127264165523432324567388341442179781299308593973626685029074833047621716381674920609486846237215539053515021915400554657165640649800707072924389734604677951251462871950430825442990280056542178215552663110156488438194815715021077192766608738601131516769791778450529942107459409319247974863589827379018138368486551148037896862070846236729998011750693342222747345427643408845385651015533074320388599147923603564992610755616480637257846615121231814732201829046685147565235733380516467772945928570277706016884721019774472856821781221157844375729070738377267275148722625722837784185550793555828725128452048746291748469995356992601692191921698787394739026638656987262559917280103277691697538711588469003193552391191233543543262420083119669599413795166302238674909396022722578743255240186888535598094889698076443665663319178011176924995623751900955537732666630552080534314371116948129126554343027772201561850424369299303847412416404456037641408808555224465292420334130982341675309404419966409204173449610135717745128556168692848478665455656581511673633762587541876508562774111611134577813499348360934096422249991071299429266443652239291853158369350496664400912265529650510888243909196742384424779335509494076091141905353387022383881343134202577391672745732744985236291559353092161546472854665383762460996530356939489816393383250795444768875163591144323286030802494683046902579003913354539629566699276201945493946882372914764515296357675813861605343849163022103924519232981630214147720462683221247984382094222074560330831750660546907927954698851068545551190205624444258670875214851536605061514909470005646318992882333449268544815538681222645241749992179032880408830226925312288702626974565660696438347732286053628498995714732508140447459794351989601288756881493735928334531637473947678905924397895656928962540510035534635958322200134741492154165952928653106453778527593853598303285555519486903582633820755232035376249301353833027178201649301377650903109680747650653585725606014287394318378902627176208003050216377451481990269218937659896341058370186773029800208497847701196000594986774181125469572665629706337785574128825927333959084590966402157214729769799129128567818449271520316670596988666501856503279991549103020210592647797792004206159548395225331350362639863150242365622789682196495169863553454520094209739982983781090362617893447113689586478505699527371025254324337983873382387968009369799612264423209191883004870329968976257029596892769578926771627717605603306957323459264968699801883966462060356066766800171448258707428891635197816098509293980752064803478128055703594719686373048785900489453614116814503789053852066535138872332523889333163674928970366206218512933757457702910799443940506851413819038553214334333973826164056710262598382679234712562229505004458824963709116151053707188204212042950973760444422230308162084829932598379566359771341584536231703801262257946910737119647622254135487574831179033348434035231502282641100869868923052231695171040831514942216142897461816773865077541134307345406247940482205937079169135054638967587329398232782283578776736615851721001666742693200375903022147619638106179589901852036695966997069506168760802037132383517284880245598285529501710825015902770541991810961903046676835257751738143171651051568429824466153366340629166888859968926568188056445804121081579354538068338422658534216187701022485022168057272891850408691405115641522865917710320420434619646729338090655579328857607006641167885329597397959636094577556198545637916334529334331310644139726530406977172967438503903183890075218385703704253414409787142439122830641957444576370192299682052801446019869978125342345723698756372232935305885733161147720402699005414209774282822736054219821766821249424690247248914591645587849778277446132945098428693376894214806671074138937168431450687149609343691541941972480246409639732687522738486560504720102630000741470865834559549202796758837223171936044172424688496959749238699577800514472398413222525365987292427377953948753113790853631474293055267504021339899825393957174367865628933742451028453732290599427605502802067408832708636182180959732940025811040543060235205800798697264288221112816044791851125797106077576664456683230531418095273673717391111804054272586675375518266448482489398957924395514751797546158244004396037383321599359987777475546428313223990027922512808911751790098478615106898813480943016107416267904017016685432285474442413650987212295191761550024979469351775245718417889531608559509839695179313721695567256952154893954851209695247147248521133382558398437170504782590392989040126949397979593750912484160940933489251081530777697862271593832658679245435990890118871193755171066754660931700767569990623711213982803042590086006125945651208170222781024135145055631813166223219920289296716056479080552118454273771695618252774549154117943844331469568245198233242880395827963498446574488958137518168681568428801534991544308339021530063652436107860291383806928455098907954566028348930979202004782535677604630188865292773663408161460947247023864908086809948323218384620349436530592994500448854958607419926604043275003263893061413165251840711399328917265652448064749630903002185237296502455451777278921633574140074095347532647524698237228932199831368067708587971888259832129303860045099937670607523356725015319040066079204748263566380149260795832798727728841882889077431478750968039246843238392690710481735083547823095966866478381066492283711619765481010768279103684494774419546381470549889630724086799700568863390534117877108749782431121498799230552497246626764137264471252271752363179318471229223708136959635713872634438928194193600150584704682832427342005272721212008928164634060665367600880744729248181200385945821967370857583548776738315029252220140280277766223640386417850986803887332671169294785984826655306303660450947347587174588334608535400914305927339713896035967402625167203289320573712363787938991284204958910905707333708555453370313966024089492129800892516085895640039906116544772459262176828551831998913913185670449640003240276973560760430911219736659341720244889424689743735356211115080781611874309068492428291936709804319168687088833931736683654421109075567613900451982233764986341132914204866980099322496571568688947932184592831472695962490430714356034514819659896187161952162225247800380653967274433282272579291989905325593164626853823783345435721215010299736067778176791925873479827918791442364554491773338572185735503164429817257931319985785956900501936118037976945115874584905407730805738826090649744512146393962350972186971055948237325359248919714174934118124553180778889100779011691768686082138589412667084629914852694374603944512854816765465853742179469898928625967249791056716731447794483115705848384795332098926767065656831707024932049722058692464471982999964300910697751910223916594579380191013416403034211167341752613307640557107502813250489358954383159401449728187456131825354988114215473100172017273424361694938760923368734431655904990706058400943524691011198582374693978166827166883621336419451198692717454715185613263591985717670078331583433085886999052317396353697944464275364539383064109110367685573245022770407074837484030579784807722321613370384671481358087740203710255346237825989943735243357116992273063927525119190411615269402787654572394695265805617931653696021253321781912950958821835264739353631053715507997337251341479936110372482967917765883201768783130489130994214839958843743563624321163020301184858583214156484146696835802299265177010728835704797687386666720993325277882164591355525553863457450830643831627855374818507007925211647424149070986237682212968262955822057934241861452750325142753998745738505721888170382676706052127113218487344042610733442112851673530024376211534400988331184907380536103822855945424314037472143024876213636735896400951541824187379660603064023687838955796365861557048796073236995546528832128659858046086257514850150904646075360011288209962348033188982643802573129688485486572047013392356517201731287129638485386109213129700592079100434670357153336622673220412464829772158581448236378085239400616801874071223168058407845563760294257440215764950155876689090406316840673802302884086390195202846006523287723893271968619943444204583603072451271228157359709009269779446365682358223106839147960720087696025677084496011699616739051090155670475095412387605445567443354577004491220921724249402695443864749204004708438101876049379004654826923716033561655356868315858195390559102162654887145726560666880290377747627559902548694736034365126876468687054143247415918716985120454463855285779098639474772489069344067804048471873377113419959558239602419906309060113099992883571842641296268809058885278722258084166643428813212233188422350109806930632604717750585974508920528573313711313949329012566215461745041563617286578023030591075416548540962432158773322514257904923489648687640982978793484206941107887321980031659442156134657217033338162466159930690458511316129645076959488679696544484562817735941990368319757963379326372162584307912803292930537790058505811698829056833438597576774920933171725026505393030257442925456333185944044587718427291053782331079518132028407403135968564476895086980430255311168509827995152862068531400678211687951726015465725955654334142043060829472849947485326319834869055773906144595960331722440507859054544641844550255533201515947869366832478426366576644292708079345362395941289156586051742993840239662377758940105903365571503813798534777503881487173284173590896822449599827094977187357420756009572910372910065096223192479360731964047885459020712129773323213891129080755502212129321401711752346999282402651680242932007774355914215525004690293869204100880669430436546493017887234107078095104778295980537971145280330116999955119840852392996879798113038011796956820672952316489764924366673462573333247890139254791429763053496928876345230315226561598674060584091017706381719638000047840405590143478087419755374500634708855390708233435820070724344205128146764154992301667281651481077759421548489008935413171487516499070834811841925616916411804305543633781777441639068131934376061681660508506881120189106961121857032859363313911337034488698907747506665997041823092477738075759867093432546008558920043831396701328543932836873797175588773353857308538796189689759084669540793984388604351673878224765126213166373419268729806199955234805089666731525065076734459818101625921926293282301676786995946615927356041466813927375215758172570763903434913929483085581663117728667145755119795655234044107835241795034994877706401383569983519481659151009598078317507117489188968468496664337061174637106813086395945030886983357089768733538472403867531235413527843675778569903052339179453482450477218762688898110439672183585305697198758621574505565327765859111144085073321733029011804330727900214369087356796414694859842535619945798053280145194777408620483092906198230835613555207036270923461838755635129512590028549880111139364899671330056011544982773152834063112049288430970326927710750461260068188132911366532811199249482585040751097469638339986084150918268538492535645366524492983369250549993171478876291858705357146917406530627107490620853665082963615577867980315727094858040937775972533050252892837766014967287253672650727289524223333113192765032599273069855196191732585627042782746515325679788188700856103378943559029226896623740737771308130186196950148951542970877606859172583524893130396591068088509525208074706838884562517932983009253189674087517470086187688522918731284115713950702486729454428640099704786899142788435638818404678884293728310334418064185969879730470927445602299949594634267000712142856138552215784044544824796317186320101664681703142591210330055358898333275239282336468863501487732439239467536407724800167373964515476580226421647318736220953685020166643224362011527631853704105787140708983499414951141259395954954725488036750648829550839100792401924777462622868981025704443727639231799015115296715721723521209529438820920014844920191474447742337406763403828560234040643110660945607755861564245409084100761789526158403413501733688007708859111116146126030696436303051532490051592521492246905851860941131479647615964199439451177261798392692041552868150364095234675169046117660029000070352372309291980032876251381261394156662675252515053832195036347239532265656027421392063385220466293569669947009697666092054383827759819566460669342144254396831132062989737325174882762674056079744537861672375229374227816959818411175525681947567037398142092634322820536278617058937373957542154109705659839649301174688554782546598654959462456904539960947172474861179418465285518543876301705307700449885820517115554814632520235977107074883216944550985589918531622360383181429624188272806227014314280288731506764817690658990201358925960347575106157547353380046158428661624085249853022155911722622178102966629075626756030138565026955248190983333259503559116657284161468611043977440755996119107923365829315540107476498525183247254192774952209685563180409647725954313060143330011656270522882828825324800664219456613153372331312074542135817752386570293989228378089442889091204538568900739549828162301370012730242515235962795296162899946793408758964286426807517052113757724369108277763589711744093872183778356131819457413998374742222696164722552997312108801461106493974626441736557917160970216773380708989678276485357099639002090803332855573975460804152253481173446576625800496303594088113715544164978469757710126799362759667037483306201686025286000698743106341192954087825266061764011506917103330645657554884633506966719161813513880217037585205803795351578363719003002837472473164763603226629918792303657486857746922682268705047126700457646630543311473225614910111535231176843191481329330860434188592274831090636152470566876845319003351921993303303550050102280794792359579454825981268617457257249908833622919848380867390607764479833596863556627844871036279789754338020944330667322164347866219808633604990326283641327945939701145379291396421258333169834149201775175772399189248049303729094393089339561221732110867500596270029079301654077758481609310863079966169227819567279207484868979185808794953307466134424303046629613848956803444251808752843346693190100338424531037348897422693381063369220382844104928014515864004461404723888848376274919963775573217079115182860305509349169997944207642822762030047722643324360451613590636354923155784365899615485303065198680102237875649833046170787147783272760464721701190626322082461453378040143567299672031468152792216846307219204434933767312592697746972714036947287329737094722175936447700375636090892556722620731769704664861233941284722184782304421752899914321244491686379713416540504057031390106941543645210846422322327849383474879416239928751754720925164436813943160997091699989257263385436680193786789774521211761782475682756620764627453941172156225678890294762999261340468069486407958179891733687983047393709031483722157057287819227028093146581771155034387929111922435649086414505376605533350232580802528923596566190916818169123048320761573821286726635642231009406590269217859287757731682223013567850609983933166535100267361670171732479734225928725894532575142115900085534912165095457083286655658551031954667452830305624198740096326775068570928177217828608714287462514055527261160723449776781240011478384236519666977918836966104330281096723917017042621550393810826836177376606370377707561233707882494742097507071473335489467957760728020240328797700035317689449439047502238296015611543187967624319135211127329858738827406671211915368843136565908310368503541442957387945382816600841234276848227518697814785558626081062371751718310317227212979262610892027182543642880004626199754009724347641607147804838779602016415875601276909752742140226860415409130778451075853887799781707027254218677281065544483241802682194990104554929786332836529542514720134281569383981393779715963393339337210079340430958350168890896288910810668358685530102979317507314245684643208717050209693212320918421959005699093264215267518491162903221708246702937105024528652756843723656670295978085056831011868603415569593071752767063810776292650910280914493150020505517565520360221907249761369383845897299862131950190098079571868871237256589098315914464421288681408532422305516464162368489915463689921029472892130485584697637592101498172365344501253544229414182006636530699758212895382296926900509796652767614490707812240755568240926303374341769164779603290269224183631774809286187489852279245403739561612011160321200719466670824603057521338370530753727092441312548951112728935523472986040060527783852614089724866387693624808276512370480304465495035158007124752250371254175757433880523394580928664042010510712311196610466961877952195582718582677764685238956016025301923408079982913955491824641429850764144525308085734615173391897287982973354319718621762580448014627898542847534023117195729046173534402053725435490066142469251128661699301074751070905262092538197094488253383556710593440835887131650039010661978811136644288619703392607918072255334880355918784497652122619830511368645584244758093451973569197445302354898289261082276008318279863847006032325837065284877474594278737595225623250431683707587276921423006671719183760549005464421411695953940099586206008320002119325707661905380748023683149589432878553516289215714805503618759571439119883793819924339093208485525461406888562557774973013678844541033117608033674620295639617050383984981959048818375382494105814398344372897165849702206439923361264246182462328786843272444839182517487020935625133605899180460441216252396260344991382803697495933423420900566192627532705135169800887985232587555710923599784416082034197911467299672931971917023901129408796261963249041552456932755547758795576006840771113648277144656881933358208470577746941856993462802134384412559951014219237313741144713995680989361306561617735599401559036531574018115544314397649172629228249945548372562589438987539099612538383694967207217569114944635585309222211023297539546615433266182788258664264175276910197369137471436988341178185056152166841414920188546296498684564094328408673768221646746033722490119834537403253486893824033656602171100376691108896841114599791352322251792350257932382847499129680310164776453582670244138184625774043001728914205553490002820943938340317253661794709566151356416819056508220234597062330611233652853720461362721156276536614086834136303689299370811412373668212215689766312508159357083667508926114843666022478294129169436305100400686159241117463876468937652923782010467749483780065993424956494425058448261440983213593252668236667015464642638476093933089127162290856027114249020745960161707156827137460578492920356550593490015921870024269151839568556012530158852218935473560808523679131924977791139604206763371500125071160597590085608716612776783927598749184184764592582630471286686039063374871099611213648233366611805638738886364752792686636227187599117217229098899608032678569028279649650242498651523582077474066051086621218817411406274255798572821284363484698166900768927746509112312702456101850033709796762874917282555591064999221412663675717037957293745056305578117489250908381969922708253423166597555694870947409804868637999798223923403591399752913846996321794029961364617218468890466576670993996457850551727266695984454150741117081200640163773720395607366783333288414165062930564051399358577848331282563150220361225689054766042519236765701629619289234591053129897938475420243309638414448984353171609042355580537704231392241008795606474403835946212842310298563295187979840503222356761308725830104717794468655963068852098393263070567381428085822196025438288395393131729508793083198102962647022717534575769292749251947767406467097955270031407346307403707769059753443690790972378931511769075384287871977670102943362741867847408294258623113192512976428051544571479412681696575107100623957101413855849107314378196234749458270693647286968138510970771380208802374590499525713107978261972053290794394803229133378721528497668586691156864441601170330431836960589143736444088988916989626225440862099900163192616382266190174658200086480531938131598432720074727141640323903566484525295154527626589390926736308458248050708335574020373383898066535088162649833316069151357078023604760000360637321461670525802203321968787963706872856136461795387862312634138420150729759252412911104270100262992647875328390566444928827880221723687849248882133544216206621643272965253133945752777831677603414218092754112507102600710857939169440716513510197498480621311782158457766841074003610618539551792555468357659395610527270780588710958893026845501158982064020132458764387633035037659228251280372659177952977477799987037769143077677684921258309951327870443187677543466365491986030434128921834462069632299349653050554068659692278377619531950414751528318179985565341154432018625421641787672910608382761876892948500532647889516034007471002026827661381910203589311910302203026563947175194373222898740223475495581932984062548222906418163538880126081086595691727808561343154301397649209209783061069156708569857156288391370830689938377146812481686308115242863668339036895863942629832397841464796414193572860283429139142507177188769724643720341599301022252607511083548899146165530140847035041936160406988136582239808062000326560748515150963179775441760699890279432761216699627364101086319111208285661898097526598312614482315994064077154376645744889516442915278714928584865409088774414717738878452375602076838714776204835501302919278753749505476169879513307932009904654474062378750848142434173529541940752169976422178260797363616080423958271580974927017292768838144860324732909005050721361163932070957756110713876634365285621045002576139856920582983922461156518704396420898074677299000924581786305471253541193758125341188630998849974146794317539344435482605859956400038033577329907401070079176245813088138863926248586920423504386645837816343665060067666302129348693814640056115060197261834748411093226943314520997779217222155589066844062805670127204958899155340946791700969147475983371538633620899189090354527802865729817111530262300510026263409908897342807347983721359746033248315684062395369518361975286460894614288344532797383062343986196159568251199729181404535865478789274349788286273894768757879640971115183691057226754905235398301576464990854479249490675513914901285749724729244271803382304917906597668588429888239774575435675281440074025004722090833409648630633814464804943867999218114811999476565503716163665563189851253827511981059516862801862329563781759062343895775341678044731169773361473284984679303150541572970867982409586401768747639203083858376195953580925776463289584874906859027278989842336620507375504203280654595544359250758086546111053393081662988805758111007826379862965967583706717687242848286697149700864896834119605005151968022565462574221015196063223166461962352096777008724879337804012711673539891293877625914459007862841963739524713751118918425819456452741447465647091270075073490343053635850680996535216928162728932629168695361173580408072074443613574118618667722426161141641075470649893492123752385449129711559281206644721701440679527807739653115974108249115698490815894909739734789701643227074833287269649946650705852443910929660820414137180442026932178724840829451710636770685384007642403317867996086492739901408313655653224230379194686710119421847669906315072742713793283232851518737464117730573126217845368825127452059076348056480654859585156047455354931968097990631409093584439704464110093273813492385725161970107242197150438714984796853128723760147652999965051112199624411640956897576141345026295186537226724241898180760331761084991676269578983171032892770092304213283625667330188580671401168203337267920194925413109512540810765624720451886661145638821139503273484214266034534451503428404425857063598961252470056128163866894783735039732165175013996413259864144942961423985127223114916789616726479193010904398298414743122512802888716300893258929131316571366873001909453428088916348764844146826812651893171231150041839539456198758409914168398401657895340659627150929798032310805175447681020926521578075861891335524388727342284537431589606468188382815187598441420665900954319980980133065985420157746532062938640109910715466145563463194424770892069979692975347564576923163927061555618829354060422262445646212525252264756796946327878224980626970017813915352451067293267814286084064540122817922329953013435265497984433678964988885110525057000012783648614247601200332216685635005523881844064680164524376565147675584595142675897925662785968012157770957863438917551811011709788603986696517437809951803060856585091910781579941334251332304834651270974830709395930432495569278315028779028315307088701979055285518397335815719019999119537241568794503525755958604451463250011698187577266392031760355723883528619799215843622308436557164990847690278030018971274127967666901207488740966911397189861297961918193149566758628525204616065865391295032622786815698147456998596852539054694431353553795741659975403253334402080981895694734386566334203111690063910552831117065634012531805640291832965378658491377258222645980007296048252767633664355100420047413764842629224205750763246426235315158091407231952362184109651597051642086611982710786903592678621916835294075914143164890284202654737604346152344907953736120795342958873232287152821729794009355409153489095471653656891709481284086914747414125461788028530905497475515687414955690362070288340505189534563064264858619822193079693185361907662350456798095889474617449004832560655887309760554778826681996589915500336585446947692384516701243356081348414171997362883198861568167553831418314485186131833668095461990161643302377820903502293963610490107355127421496358997885614921855785444529773480396935133727145262406331147117651545493181839830097473483448476951534917488755048513601062745663576739813083004933190717001646495583621039216809085941847467246913219261360255413806357203133730072831444063275674578824096872206909009444655511721229560020646967288388268991448270743930452907246374942655989098168570344883309086505539497731315143897212405300332581611379243818020694040351989972019850921381596664976832154381986102874981740759951346510136277529043095700646131003683960151498587091528399744345172954821944977736189550526837016357284566689917321992401935181949357416664174036647932838205687151511668695402585615054087919985357130973126795887438820836539868613580864616717542369986312310015903195585148199149332829895001435308255264722909714125588511690986082659505125351433327997575476515644241994614467732163538163731192878536749036541971609795065905624671721509983332156464038289106268593318106291181479715742870202990172041672674319658847051050710874593924592583597476171715233714368358205349742675227561378104450248064079535967485347109766111252298307995386627217170310636798786561311514209694010972177763793348280576936925748291879057926557952262922488096307652988401767914433928484973821010886477245916834860497066397800078227808578483310235964024709561992601918231943695574545972706202413766219655194184520509510531901492940717843706595266336612155911690709993522119070419465384546452536604989151870719631551617746550585483228734499468961163701626688431756458064403036150348831909649838212496011971751898110684279267055700460236992011270383075747274535844048294810088849621786888024502759355889018531073786782483298988425489785105168373831032041594842786026028748401929122207727299048771324274390695772373679894636265762601698977469976338681365316405339513556759954341920450146864317926903678315693313347127213506007330838026541056336585185710310625148118709775500620060108599476655233984933773482234922903792060598071196615737935436367620212744819256633680664089010322187275584641312526563514212846763127901444854541772595670265781234843473324945338962568617937194372337669478680211087286838741266368346897147496523481659654542759730051409272308426121166080970742690465610392899786423762410749381972805946570844020059569260299461129348551281256110663698954704461397414294417477237499579248701775599065374066083843573133720659041871400102826045545912093434272986084563789135109063500730940731105289029224202322310468115004513329723405986189812486189955625872122446853023621747739503200667956529462609498377480489815689174280930599613405666681104909426016868391390063824540467852258123482218076693181656956738742485807847855137274780589360234423037289166813037716283812309583942665001475018225085813614627069976830568535063024511734296859197522077690428452949634679730939769791340173345006687523272156970327060479726944907791414471347052084960847113583530856498959782887602780084616712547379073122203133617709064326633571427575106682350924405107325472038351466081982401552496229115449605940916718484121710159441233948343469410056483738858200311459511889008059312005764132586537204436025454500651402562031869516752011526820630263683314147243369924263392186399474552458432646100347247658832092406860611961921152509327451839035872948592918712828282585314189936354425833754822216880009769617682890607087746562525593958209736083115374877926003577132517269703024721759955573680131257389405354261181738235361828729421855978418869350095584815846525893053632490864890627310306632257178465642684819124723453951417397191067421600342034769564039061997186464271525748277925623979303022340568780427306635710670683133692099521380759563757038922248744837977554572509294058905144328473654450156902731124685206437122812295676587951798391889761623572610742464220092709708638632333743237500751491680113910829695988950780152341623558895720188089791287811228265174962216897298494058072759164829926331880742103686798395847829070155102664609621697602250039733132285638800908430684968215824711717511094653235007502901677191384734726590248586303521261547485067065268102116968289295837860983500488683074667797213671916940100618452206667545741455996121332300726809422306244056243031638399956179778018358146498968132211880437164275675124808460329836068140168218625219171411664495969913667178105551356845177392947068246913339630131864309342956148234228035715212012127029933110826796606324180848660781518533856017664294510782390130372733799480140076049195029316187621387374862831072722383304363356719216051280645950660057120003475749379758407041587456641647587293819286442157815031019493719774005851583968467031575322359362825476624969808051507148271424832419964472022254292236495879245798976515546975680825097526499119097401779669371272366757717055551163668724823928446411321785226744216731462980915833977509376917146251833108795608404915842101082921019568861098586585837775829063217051235649612804666640561154352914873525664700752900648505476228390706411719659682860807534936832396016040785409116978081270996328544160536194448535696801990417771031495321910344505313276646780591500491609562849279576774187646675295695933163249119228700457076171713161188018364582641486091475866030681962474820988084137457430474842222461250630935136476124320405894665658107099668295532787816373463633749933734148604008453302202536905687543809340486636757522082399731814533735500188571732456330148583091636543596563901092605249517994722044088372448241064515768875498127375315725764172703653592273384376807952923696521439730398049937809975115848987113622347677586916453424557836709734924235486598434697208831383653319217139458085635095947857755869743951766323139329114197944036837941393322522538535891586823129361491794790807554333059580451679036485291749807152101109114545759554025646633776353706432374250593656294567931942911126670802307676669167565788799364653690498538236679832131282634031084747328470799982756123633422860681332858370157217182315563661970411851555070254705738620946021246014272035164259963373093037812810159937622164927908013290160585050939543970897920437668285522202175150166649070936707217573216707007061445807186615273383627898966016743021663093132225856039238606881188476983162937944168657862242720430882467610630766939406713251588662805710063480241070909296942915368204386349006867007916727584298942181693801082656458979078831526954221306034088954411270508537880679424447483167258185442703832019913827416815697731660083209435390482340309476780530226587376534641899755441070573548465411481655888113710428334095088108511747057649419975405622017217220679717174331306491239418528180672856151407168352873542242638110871257044892436109524906727982087212086821297827376191713986981921245015210114745211861710756319708132518945635429967404053664346405341611437528509827810434853544595736543086186347812600794787682682874214751218684134507819961927722850450500114429918786476828285008323595847110953940076411596018494581261960652873040487671026482777210337340067462040862068263001305441492980526033036508211824821229310858602602631700161730497051211749821553568647941169776137940437427321079502261479068484395238986764252931733110055614567481787008887979805779714913190123490233297810088747437143486694710522626688240371812493535999447237561012228728216236948377956767716837691949595876075197698760207824350263886113991749929582663157365486895223012662711106893361162971421358894695621271430081136082808986546341858824796205178260457286430071754285740156999911605701698147294089474209693238936651182735681005928683335004302836128927811681357788830264044899031956835419960123139018598754301747149373892912383538799855598511826383517707676792216144293972180480165624795762598036622959740541836356285945743022992834713155748483336182030154228337585457081318166714671850428452969820566386042677629888759786945990971914331090868509191802437650586536586075070656677354951344095385887317574265690000653678597051557919210445608023403295902868642396224672402835762224651187818376119837118010158068920525242060490322011672955960395274017636131949229179370294787709187930053008405617183157839975063244420068738840855491235973888578809580078890648624485803699021279338232895871543900743095676693898276806167934145569954684191062494760636664298287882469283824709059545828049437613100249191762590349610938813372012106624122355610181908791895039144912093804803782577820968244909819219584444939762376014266165199716910729172492370958712816185910056513397114623144067084931534361874953923890958557503209025705642782497816925558167071340475747563518806996918086501996907517113211451353724447708192972199211962878887448743368010188838887191458666184481579844640691243249489577100971920314059151683590445513636416814336488200026632600307174595471471716465150580543925215802456536501901578400893941571180175946069202018124444517937415587843384135755397207263046399982351137467811939116264155830442627817490133657920433310542519706656329702511710803499700045805957458880491143951521311311619594120096415860140940057869527185116130953690586445833868017579346880761203025998849148567585884834144306033995010141075185440275846073115205625362298713618000889053663982706062624061686113496771196729884459509687547522905762173491321395704202556646619701371493815135495035271488601013007474834877062621382979421190585784788089105056958558303694000730988576263235331626377724039767879781265956467032736642726613543411683512967370719960266884108980332862596605388190472353127770459492635875456025694223275971824547334739007727948545004283115120697926783826363183014853600990653305126599130946489425791322365108089467791048238181646298027129336507052315849634145503385794333296206476353807626875678964846050895061788697471451802940927130195850468029061742476904936677922938745672890584743419127373621642542254572045804317020172306670375319248783611849719483685076191970351280730169368711358908250567760485085640963571827892746471836286481503504342003214982860554068361913593830026562141692862067495988761217876001111241233867953914404047680099852817667129600401284558217845909703601655208695775335325956767876158761165839074001882564674417649134917467238077188489102371377626078696962381511862447119414886733505998356272179049838873833922165391352107778233132898391596094702806084301838431731460725713693095873935296513535974630530545831218780222598879672864240615870442835085576912723474655606407760743736377180972663374912193320168615119873121056316276042576009665163408651854215035728179585761048214493914370742208298869996623119627035784818840216356951105353559347643577321133598609732651119804999755812580779622958424840128516522822745919718882180426139425830303492956048720973032869500115733886335545755254501906445246268402603212763573736564531014913351743854076245984801334829136412140864249409488203353786469371318117020364210990538389747923370108246727596562877703717153216435252019699800869294205840159506705998830003098460589127801582637383735837322371163030175445720830013796377492123838918909402423063213458872387043084666854297232860714035816559757083639189604356075430588652234608934908946655392833079430090627838939078880671675833915286127148678428905368586059378408669805460022882512996553905455369248790692995629029977762943937599468711197219299466625951628469101871936762095225943755008753987466862821058967036665987281358956636017493770643705351772933648389522901290482024002134842503570397177140863118467989080163527983795603504445345837984765981795657812745632611952334898771701038966816928167924875325031722395749150322156902414387582426659541645853372577263839808498037010473053149713171298883645426431775577906067666172771302079514624948599159459870754893202869789476296381455939556533316374109081522731447268486448131460483806544093844607623846404841479236943459212868515694353598595470307771097358278980663016795748590169457049070245432118734682693591669691621185307906436656521371977408541719997412365675174463928162570516803384021472762601312591008258516775494423134722944711568870048533215662065488621086486571450056587028367888506525473997792200903181200553959059310761441876502607264730193190750454657051636492733309768701546606754750426160422934592348816312782932511344500850961422285713647241243008540349246587231117095100892912349123513693966495297628605905567274734809870899712720639264485344427953906447409043003996176938274389988456145273232000441924279183587176132157908700674947020037211545270384018654245589782551482032596117483858497593050853510856548664776575994489541443907843056133863495955873510332187731136299356627976207470508757967327230349556953158415434509681784858277713573965249804348817081921245477603023893586284846919617346936030695252569896663665127911148794104901922970199146312142497352832544313607430102005742569252030990196400731605506522413506365767634043954769357127612413666017685082382314293510132033591218280221532989699898092444573070411437048666819464835007322180000698152557553809787258526381032245207880807933772418801472444604404103680825229766112433882515721017200150032250041668172907724453784386783277768916703843368666145387548501654292796615456088720022246052610570656380871334610893767471876973380023106283706210451786969172211769141725579259172767157855477761082729466375573958932217824540806375456697042090350710417348964683117581470495659533025220749586487048299342041227399600196492560867413303493514494993319966080861470478521037393268154276960731130089664802893442984193668908009384968975292095804560645350735016409450335323140991906961910350171576906847109961254203527505870510618545045502192509725151631159744832327286162066467811101536410816259348207012440732531072308399392926410070492038025682444944975601221561855663617518631211249163317008321354457509558115148532523696200397342833510568418121838522467470292091124576915607973582069023786779064160092363514367169064629229645054533365691569301610961011081117654508252816261428372256378430703699372546739663577593831085356970917652404489692746765258057374506972085324662569637834641391802592864313908775857801310375628263975568613145759641383658772200338203079241492546726767243400083265781466094067031049051941222399935463362185549978379007061292992833829079606603337828401828677834560137525192289226054967806123385747391386607260169181098309198329455660737790709649449705888001756741809492774457431426812163040196962036166275621555966372386611245852683914988070408893245531694425639577767417955401253641173241370881364821806397568613269173234552018017615643705407388775077696295150050371509813602158492354114046845847154756322454203547345720307030649885809998996973867657258179446587590770670373694525563162359073382264281766394495064134276446387277527899763494606145759441099879644612041734756732087564258017415077552643646483577588257955511643125513773058552479517721365350754280552092843121438172253369982887590393202682481756565800467498937468729625286659333466820658191833432591740787508473485575831981844469733556722570777544983594194896982896904076455231323358216525956314369111748147524740839548995823666035159722465529224897201315106991007102907734204625983882669119244695692459422617935005304625174328308789608470956061143980194763385329911106855292257574999519728521857034411900729265375939821995926139538576784703669794546198103746567984327992478392242593696278127267799754601189560516763348987816630580857902457285192391555464284063340668828983372361754926076912584577569475004652089828099951161437350018870260614130491229433964602992170682270076679203253708476178500039217494092693299383934839874785598811223306270869522068347403894069939931127561968938905822356246442571868854106377479546190796393609836836995330670340473878384320503013606337512672448474922607240865485431609297509208302501738630437801357333586149813548951349550162140603814048261495156155616924288314873822017894566268731281139993250106440939568892949204121686958181663022224980017378403204067590272405335835931407081602094687621449319302459781104782545432757827793319910812429943560835835354042121567728269398373647258547300385628088201621856914581982509037270760562161275180654507386073898753592845933510728389173054962079866825245187089306794958707031380146644275757993859218528538099204323840210152719697734235320532500958180502706503604433784476454526614857333981954465267666762875953938225389860718576109170603047367388050024448894306111723114117650689113288602662757533721841276506903906660167149392526632204776510915557066055868825623073624127840348489392569054059565900951668913466958559223189857426842027640584232138432985426847364855187566289019561117259468542884411115031865642537628007485549894883572054120088508070843515220516232409468192381723316322046178532045662654509725816449447789358981037566712893878958504196082848364520316425959496800704607966409141594483159121911830360200165709052700648785232535493883450427205215068293754302898075427726271679838873190392272803006308323227613918013002008844695214290407401776913600233634491854402392856815992189803236114182955085347466065159068436008062400731126673931670325667486478114461113167073161912444871049634389794241500478533153007559249221433044740576330915233458139746635234792870010980891056167839229159232432659008306116108427704774038079335519276595670725603404779967556192258754108125732510944760603207138895349623798730323500161832658487413029871504354521519027722238141542151583156340212407758757347932477853880581819533393043132291152066517385009020457430032942989303161006734495083766995487790805395846404031745693941796793872924580780532278268783760521240378737629673259042084225135258125001508812392361161392857966475918577867792247525721983728174460151709054905568473841722433015541763653334688666516863897758983680243813636446545301022503987569476719483180519480204623627209598148518195784612027350078077851285448880986752939939661328917647926553512019008648621789158875028545125519971073297757555579520638666709676269689471945678515479857741840240863427231985061414741776656613182165587789678384718702131473632313734726276740837797472109917828776078019553110658154386710799874733725593262663300187668952196999441282620559878864798209080410138762250623941304929625164987075492124494121099221284003904662678146162057154728713407630711326551912045272302060774948983856911500007349947343701835409600696729300785915704740421291022772200904175800584901934400877470038631913224977715658835551017829718655303024510938355710058519869777404290586339575240252170133440619928510234859361569497757025939201893631738318479747117649629969698848165366652046142171831219357887129201393889031548490856611417890266328879505755907345219644691124835928558053141193655670803925378355058681726206264894696489976530110178294364375966898532530340480642332732554777829648923560560188913934250024208549971076718667268100893297389722196530434308226327087775647114470855907141079330929071386846489628637336960354334956620649819768334518936990531742029361148235298903733058882172308973681840224345047419098492030185278333088824908711824429026487493632985366267557201949905390329000884875286826861134259806863277054344236940625541505980331704633270486279718486804946151990647706920978368977165941331188239860857028364132950375904605423127479626169093374703753870184017923611686599516351079703250242815108296256266003256609719592350094636401106249102787451937370304196250297824669518958102585424950878133730813809243614655207169420569287718029023891733858600437167781133380483620308854714022489719987230874926049163302249430107002623075594046820431487498983408324909636111172413874249566886835717362669878388983785074578175388989669707615027839002474065713165122396469903818716902208327186497626816986522666501552382667646136648193139670503158315532802783818449340468512683252001345793764070341031294823150569585864971380567539490631593887966454544805709844244359468370771760104677495212422112380475878291744200981999605337169486286926847740005951339027968776113661325957334654905680281397339430929157134771936720920292453441595525191324318659379972104406629915034495452518732013015936995915036389656186674454096373778844097159789001081201515703985194649816140992922812167086940529262484033417653501460900925745593415189443669966182539841093119435499373625320007839053670544252815446594896435266723241769331513460391177446211108153517180324521327856700766116684159367503119590856402948430392072912067987332585512788366459513237054632164322128124785120202520636585719243074989646221647800322467407003366785806829644336512865607987768072279132402320231833832890560320850502213578862521236940101394373643737218058692155887400085360097213595977668253999678045031083792906232188098189963093986294577146040223945834253924313615622230696618336555119592691787355681867733520661209719349980157900788995807921331137078565207488958690469000254620856791393604245587190351687185544924681239614823717787585050724066994436704829728189253218207213423122828214356751557587983590342265600231745441141897882154269292477345215006359641298681305199522379603764051173697534614960260735036560894991506569004969238431001040347019996980265627672069714945945444531362542625668736104534081951079192203336574259538973684406665884439201160541548916618515014542058432442282844202599187567778425748777744912839993906879033907558782600517324851043195115389648429982412931841548508198195810490911894343648896270991323578391182122761288742531921113081063379814878976084354071449666684470225763652522421974609791036040286602711839078344635644599598615082164890177612680227986192571140434052329443228419504590498485465613456727919804121636777022930735111960576634721066444390040864077697453385001516630630007648727573876964509980650472397645678310848259126660994164592038943171157135379154405304619001843785766867309425007930792536991781999160279795916548606369581573895891970577939530817094214896814735974532637377907218387572303846216141133111663647399764299646231103407189893286570349474245471107355176956255083649741546205440165766321781576148870751494913739998621017395323700737656438237214132871708124146132985530014587666894641937911821311674476167563254877836882767579206036693446352145981953304157225406002135017538762121513731647058951501330645200631503046683307628100480897176996937084917282894236396392515455609883879022475564516874051515027984891782032743572897717833967523727982780346033352502033260363463252862256665142356164163347296076525111089703933497602144899232877501931103716730791644536196789960773308688184162920840068198786473260065725455988639175117290111785226833868820522478210931815905294271405815591621838450492090517103429030222238789883724016409912930483840098053419550660869628949038254795063911140333327515190265163302065715079846675544974665672591791560363101499979291925440438031951290072511138119222525324040246681809343772183942084322908925949095942179486031700967538673017718644416441690627202190547819324332126301091504905926319322492107190154550991416583835620370959736377064056049939797285692215090090579085615174732364245037925027357450551718493034961475103822909784099866861446594558762447130732791705931373793321957409328456305086148080683271056603145027597681636258472101287106505924793081838487725300846774743254993711379235375155559778100296104835340830629243778214667235806108615578751279677593728378933053284064660362898684452463135015379313396486776604651163947116372966834137625781128691748203025373456745391727142770361745600335290177417562753386041955446435314645385773602593847770122794253635004390292433409368686525618549366989084791714433609234187109299053115998658799656236809646449306179644433385304247202306421474207518084807864454537732049582132303814246416708374422772622482583437893533184080556520944703767173477663135358603097561607441343292205903764298611486286328467932212451283841445236954640263289716202026946384021036555387140906329181768324637298101750846082908250562969605416015808731714775836644077924565995371975247936243341977862207946445147493226542780935901376123668403433109451348251847507404835546479512841953868522109920524136397337970648629392123259351809261403895173830512961494234414785878480080813482633387152638056804911030907373599256141018190513092006238682856383011863836926353270970719273626037434984887909526822078254181936911495662491815966501454600152616340467126612845471275762183975844163702610502870195984279136199939973077571701242004190806583999489803729831932245699332882885199994744946243188015543738123096765924432696710696576130062914731633284404567313509173407920561977805855116672321127573324385839797480768144518714157442062357206197615126621727116227080129211676262483514026683341525347348510163434428764958591376783932739580410757295092304055494302166415272729241181767057093742945649911896308341009404403058059174768144799162926892560369444990485782414747694749973403210568332099560375183186624538342105407783448441258589877239437199647761978428260443365963230727525363489081684056330068487990440124057304889334653051810926182951278260211315136365792255136614838816607621927364567977955770133487015755360287060228821420492568578656735858158572932164245276424993387403807264892962744450050589291870070850073985024689274073308926540494508338174839473596268856011298613684032548431724625148368724359505470605005575722085135793410754946790742331635525654418170204317082959263255081599525192669102289366973442208293533121297360641339005135021173852489871621658033926547790922133943823359968327738823057663735772236085623857194020552199498134512255009606008884441900327429650172413832516683448299140447851983391218346938476476993913390108127395151317780326264837050634436310842900218842917611546796828840611758644956024942121712922504092327599870974460365063923257284126809014372578742394075948495356522777956514165937982579976153829669288840519132015751100791176742160127357882245465954158312535971024089571590244905330519361034218934799362783989352770325537616111404936192778892000271337978390222870398201352865586372245563200598683781079252983128438522971262691427690738982925358888451792079753136499805780300330871111964791005462339585317790360361939795957307870402795819939198338935315437920581004395756322904424306317855427738340427911672130481394002339545523705678009952837915826220495558948193715473228985242995066451122002075074781164989108116292034237228600841543711190783172925373829724200134649602956675333213298371120595175127611706591391537724199748890182085814100287242119230103212457541295689503894269081167369031415028183945782437229784700076513804485383219825328484770524909213438249996877609359538008025957692633448840678787997743370255932155524849985885387180149772263250906823043637495460424124781122909803044970976924914137877656583397309755181217297106651591285703974525655530602813184464175368221989400486256392238692902824478967656727394414237223657724802926049975019505082478246414723442514605630879368244766763042609352148889900071506619958071706607755247511206626233326160573723406657764041809785200174588410875470112668836474205083581127486534165431716347561893318654395693181679435986294547618155442051168333200304611511390262351757508907176292813077230172815209743115776972974608277183941761749372246106951595487393228882360806201864076492716558039912314324581942964923355248536325965388272320582375656638490550819054320553329587140345233863943450458138689223057693594418496280482392680652519816881376457138371212864653542391470322678055438957439568134779152788040607610294879847387052533606550816929617839310794659456844731724216334671451980576257297659784748937410828773495774520676063999586158916589749541336415914414740588988802548463330409671959118920547770170622098092561808916186291659531199475904803352210712031832544425152410333327506777547769200237481346303602856342986141862976461372485022869647818132404529265892028795112979835441079463479930781461690875805105256685666974105301194002808002440088793548735444214115514518073750479336126998217516056271755949188762303147386793985881329354318728539508329693282342691851728762009764866273205555009491889026711565736337767634564891182376807633634921650655669483210583413155322998913232910564317383292346829173021102617761528928004805730489369682315865840346299107526346147538867798653117510461041177321066191433835740491751358372686096330631878104452536950210565353955848030702401245427271289137746621031679194413420302285850663797383006391320284455452628359613105143942737554535615615706276863577980531205918091327351558685532744415618513461916101673456326343209455450608944485911298730273993776164117864447078921286685849743735718322770882259713636234514118435928075483027181850840131440382717171199393992460202407343350204517768392558461205369430956787212113101346540102694881903771986076418362742740646923530119459554672373168602622709490584489119972492126833806566782289172336580177220836575086911254375946531430453551412384528968520791050628913632394907151956431173600279773828009262044686003382036265740395781618372824314883069159963747991551955962980627867088477358944710955239387946200587302121805180638769400467584528460015437927207634582996420036698719292470650918764925130557833792491489972594055672215869551011254332297809546634417413248026599704093617603479826204913757278351567537542596331164691477719910804380709981842439156896203599740242453574439887698914832817890221477919857559951436849003951079937550123544586429702161119283879567684987382974248018731438424374559843568612543691291733795884775637267746098346745230671740110855457322088570842082989673501604906542592003306366045087420868920827291001185291529545182522172315145012878476030947079189862893651392585229772060792623606552123167749612483955110461015596565427435706090801715577426939265699857398343291992570252105529524837761530104501570705422839881897331202217539598171457373518257945003695826749534500720235441527538034495457351244138063222962955204371666756475389156227127628379634992474745450490606488713290023797536685499434451660364505906871479188044895852043347421584864763111705109820151942893683798975542436885743452443980034934437587022738338040418722106194700481985285329745575555206084032277412917880975489473575498249356097873625902729493774773444457321482252300620242121279823164208958077102650396018071805808080701202755999551173503093008735688389421974781871619171821517176864734388994366011717756525129091305791063276747022209535732529968084366815146709259383059451193503767984543002812523105632058761633028784839331221068614393099198670038468573452476662064463878985590513268445086423307235491430134860913864844588853092144610975623135497611742987997951235685475838842725527665209719676448217879217031523156610440311772453363873841717582359256949516568406105724025192925023242461234790034912901678279937425941746381101825181068461279166662267594865524353671272044498198066444716968776147340026085013326633161302867955640978462316466499208716065836947768335125528648663556100821769839381279432083020038969610558183016434616763271156534413900772295405456364318251677749832800778871320566502761918920320740478271078813925910554770211703988071844903087549074262329139004747325482115898058767388214929760223724253985399045455271518625409677602469000176356876665502445115162505644262402766897219173881374006687211820001850978696677902964619049425791196250045153036420556984434353094386791371700541222143388074595744511013211874456219656586055976351762215276435003916785069008049146627734221899077087127002408018987902675757653074187368709047587741246926237167761877140431791139603155027791273922712863838035826874558344713530178006693567632535706208144699973066498601219929633919068673691110001780464178289904047502720127012398081906403391420048558600011552189874507773452992892703963743909762708714200946301393022037363015348620312725331088762819938579036314367965277892806079285296163575453208624563171573813714247355305840053573497486829825489071846631045058723273077626444042663406107306990176137780530956027720902292514028400333592394445793814844845862029469566472299096960783526708084808676808105801345776345681847729842532640329567334189328220810593206254215332008104556445302420792428237039526575188771152165317637575634014043394605142249439959340546399558908299267206966528646801842177804614732689072008618866395717839700737031090527917273775908869417596086627379005999844426866611714013609667740268271492389422606294114667092143064380013689963209502009467302703380092364504424644367957773089004449087693014730744414003295675987090430918266731602359449496302534040728510556039584676644952399520544170750043052703873853932848091152826355171121766230085347514775804659811693885348651637170741781969062743795693217711825162469785122323312033534155163186746182158593243612460133645366781546692052494316167238081570679956695987670557411029023707970905794282563028161010766860746026178982709414652798428338654129813421797933558433559740361566707635381570909540019111758128204136898545646630419346643351866184021013367001771527938303383914010133731820636227660489602579358138669131389720011760656020909041907267802701420150187653092839656611573493701330795024885847551107040820472532588409096795765252995222031713229412923084510578026076885541943225210778778627493413775692490732486641735820628785757386625337276182971702656901683194030655764491015788398885837932530742138540666523209250694841632305381687659573981119498928691774183270285602359873497229487935225251136211383848285078513818953628065829830247190677316800518160976840323719715461689745533060319528753310028419444817149196602531368580295306601888895724638833166832137156403049790264095469182150795784483127827382647279107886652393442109012531764421903264463164720142229142163823019804945927765876381247750739168488859897026748293468454587430435948411840538930117975450031470885064630940054088317350331287424675741712782962276280683824464348183421726103788846517477529076309370512526025064550991952616181110750358752613135603076452513823494411256803904816284674674138211561552715292541908133140517306837162237551438258813857458252896332614426919021198887720984343165940550240358789935940525605403665232842684901401955484250707405111811550378900903488406636353954039627938813080050256642192678813837928826554380802418496867922489448478756919366102850357592241808234614191825734176746088689769310960447165677600698692215277696797899545815914389250271860925291261482194800926341233605088619986833482017873306554869275221273767777056651226039299105430087692649932093610947555442466879648440499169740323604106189531327459037199664002903692230172728966470417502580275804289290406997857542932355160625446737442514212615833221989543820169464135851599336123767334086174137811843532741227386351944984078280849331853561210889466310058573909044703461957540750215523548971276770192078445519937063908132424495717441432449251729113059632252596292662818010385974935411305534261503286892419115225824731702574780697457792205934323851974118318747173650035500261554950065969285139135452702329834099149878899996689216694757394612218490610474881804833753051002434899244133620146496789354145672493343149449534281447241658422367054997637853018722394830827333773668187274500155717696745007621309285770935914625288915600095635187182348921758247194350258426860485392725420876780371135477745710520615971554956272199245751601998437502344774477461852354668225065468808059940465760017875799767123739083403693650148352024942577354593318679045540475975980755523333486182056824214394197342758601982993940869473052252662535996470607501665433684652000888651974392675663437454558722741916150142737387835009048825886193692987424294392225732617572771230881057818517182867750324835327861694037468369773783213084171097063054844802768535135410560077878054907615913370345462473615063469386277336448195969297607868974325311372579757927088817602352726533476098854260864840432025513864940591042667529240937585792683686192003012209651772314990852333472037293357832053726765090820567122766251412370146189577984461920209381845228724772465591077600721101368365815387253331951246551863511755960313505327956830072871664943527775247475174325019425905534066898634505824945959167911647238272937443438189521920435270986944307792639669725796151340419009034832215540950495505287589145813842734651274655817348649596292219882494290116481100653083955211461002724929246195865863658030024166788927361201370966643250214706601477507213152115100275779889595513893803035992395849862213096021072178971110392349865205224560551951515996163740810687360777903839728597905081446739960533072705689917640652454230126015671940145292047203255275839689913186807046861392077506296718122711704505029108459712305862188987980543566906363003092052045405149435103247033095146782800763214222910294273837503081756590148756445560040167451614687869053481480299958540963567086085694722059294646391584398826489628469005879825966768787995634454488510169500339594352584675628641495524075475419837165505116088735022255452802951545181122580788233819359530103008091458003434204826733429010427499486018205228898198371785893221767580807070588919256781032529204181484029137636673527085363072938567492069703289619827222065804988642760013399808524963029812321037296932048836339465705423585810622614806455545160747828125478150021775269156372727146224713152241446159616697788789953110342799391251094292074301030242025013814614323120358212636673392479820924844154631322539095353747655493192256268637743783228830752208387250115102244034541519169392490896420035747772110671940051618535141706231516447572859869270137093928469360264500889341041211393390862526136938975934891996702393742451896336577196456844974639792546537213026520038127169800650196502300635529695647573185374150563929141609479784867696495782201922516766153111408999588426895948902002680872381303569688210744804590164674847166237477618753180483118309933099270465890763345005224073090301357321918670737103081752876745678795855728270615132654765505135130940999741128806601670263105269388291098870357590487634878966314154056355834911559699316541030125981029470096357364315646158837308927574212630903551201616221971223651506103613825361965708203292003264218001735197260407308947951934541606290469649359667621238183900656432652019543194086910661583944951723370884502878035218032039639698262471743272462667159256936530678436614385128857821248835289834133789549646704253144352782941530330420598096351914018367579180500551948399449548945289007622655077889472155216955685104465783153419808786480322958557609165065571843902223887797900055689039380632223857646569385191883497603096414185294967862858754855833975895808089301054057506048585296988850964392069465450798297166048593508394398250848968705213415128212260882461027200850998466980471140137011268360266234680293497103886558269147848740801959870775598774449195600528856001746240958586757465568892621318245738224988515017354214297106141860266545851633261113819506829677441319541131139017189604600104440116145257376840445149955204082092422178492708372647729128478706501384275566370050507112405880254418166625617300687250259209527805992017381539302742723511390340405219911618866865166281005810164254179060942006527725882486959878563439301366631716028896876037326035336027207642931018596014225754192774657222200849345483213844362417283975711136757504878158636156868667881106874042187802131111005043106068741075499140141056617840216273009114995416791004619767989763807137650728490793202559433918997162929977872788713754579263679218340016393974479815009659565718233967220591947766289376289386287038456143243698235051336706804546250629366476281335144649931280168740681039401571480375156720242492105766376176547204444048336285366088047177340159135028630509789259782412335085597417510678255649205696973521154938178286700489334009832271788009096993270579352004653895743028018229384915458453044257244223469430687491622768655215493641545442666928984417739832331275183771914663563260692768036922023756296335750721131698948245687959828094558166809094994873984679597701873144388214904190325922747527405677716631108039596531756080370837077582679349515574179509493930014558021202632113878265409579342814403822937693640562271085905382925140845750188886671783307656862029111295971056746548320905023259341496926963423202110556438946366572616653777291135062618548584579023278817912829543125044188000169332523385689583611919811574244138169776149181509342398284517048876880807580180415622606314141774650120998765137388910358303753515310200639668862055134292068211054039462280497683579849182512513173034343772537973901303444831312800300032622277917284932173670005726848054015458615494499997586045228317414073187504001340951291452997072756178705466644511712574645765275685018080248540906843699412516546370148250762457094335952841397061594684152269675730107703749202415132010092047384920760542684593777331604394798921786341751646771220792959381585602004667186537787489881278589757204019146440251230504183560365211432973872358026279731459352956712455871175503036417826277298592961524711669118943052312111512782340152599837489462409999882762477324851465828452187784721464430913787817254282232965501580023083380358443366650094215854922802271883961780525056145363361026467805782931349061169276733364856289570860871218020596328979690202927998039512466123000425172209681837671595205198711786234630712179114734920682755276657223010015983634898209150841545494216638304784570943666124139741309490861103015907966738449276009442054576472549566920211911191651899766721974027366078769257310888604447542473063758251205565455414740032816005583720695320254821051893208913381366166809091093552485277994932092752411030477365825026354193785134420227386914528933995084068549282884438613360479954304043579756560033280274354680229585522015504377691828494643442711754055147225000521405961197196295919987747722882074247044509684658539285773632878794647411434007545846549210842963577223165599641884860573206423672080639880152229878584626138422534513473954318294850517077737604994826788985009932196717466273269906672608352604917867884094579050955780390580743756095168163592900880355458956204425864704136947610040723311375819201553919379565508762197667132778165876029228276211400996844136338493237045993671713076117669146130538477890264773568116034362919393849515769087719586940681272538466692754768316473120146353828189099006353040992004785004637258911489556604990780365348509325107854321985109003917679386854340862070303372323290204210864779543085482985234748849895572006293663524002614354819969532843587677274963498220245697550947474897384282458916255708917405109775296770784043837112882519086000953235610803002301142833569277255898102143263883148782445020700107389448060957736752891465487776371682216900834808331923180702632025087770660152280438257214511752560985201631034438635750816302868409469575525755995120071313508387482047352130019765697064081462332591818246600103528788205459362344848700200376064095321171020197777437111491978776614236691560906456349949958085235947654081928831749786852212758559084302706217686458586437911478278450002322519421353872103759796321650025195405345870389721926001843496338780822558419273277558275312441571430617445349418235532638114104412130857055591849936893191662749573431025186455644876828642475062198325944123245834626685105122894479992864559663585040128287631396831853017657096924913568596177537798271353822027074154485950956759564444063103093752392916726050825471504650189466519198459531204287809485135696276287750562046034995197673801542528295420524616552359749851441581882862589179641175883824072841578184442687745700194399074631651792700973561101724541822550881578020625304591316421727985043607953691949807381728958822766004885743112341172366293578631342978794968803047531466871480220052794485322176216450625280852060301130358590781803202303675115045635613337828728365959428470612140771764493197494215275859182957483267414000222213411493747201241865156393522520058056347924922644625081070088507994620469843950275200825650048608670320684045505427372797618684039530980267613865180854457163581751693660200038507277840441587017370189683787706600293782867327971272767233466435618456328615994154197619821809964032546066901020823875199359497204778315709130790001103444248676905791041293829705208837718516583471392830365269080458352730508544020629437296739128226743551170257030121879610640544636057425113569313870238388988685218837702567219387681413592438754746556653303349758713041034917167162684904256895210927928925491619437145664280876956277059646543294819289031030610913712401291887882629304505852680369407602675504064084017337170025738375266102357444009206355858953182852493707932189161168035822584347847901722194899992479079138369965042064092240730127295356355002944498695306687829341872315499384946877224031406450481716396742308299076405229570237466790145891365229965033163224162277165280764884038267802763755266841664104539827768977765697712191978920847196593583387590018274294184256295043632225975716167834070584181576760470918935601798680637264540411485220957976104007217526036309495895499570298260599522533028163375463731411052912898847827323393694894637447155408007506981463057306993834469945221951610448175635878632352827447191699234465970943556398230093333687426361141696190371385022071895492788282729552600538837508609495591052155292651602226789368902509736657971022296081680877268792854260313817295927437550274747114821250392677577911103415572777173003972889729428728195539215009788431234319467454040103506457649698341357874022926583881279813981933023818144136867702379790492461925579005460177994989799146783745681511301280570133758584216434503461062770085809466174044120086180953798726072827148427676515944114892167679672353670805354168866650135681616969907758589872135701753365721888951683661666301431803338468666688826306834141107142152753465186909241317901388004491443814942863853451590413729207016168505459201744793836779914528073290694566792643005604111804682246664260640902612318382250436667884997828553762986489729268203200106408452844145200534118246460129207133216173795896223760286898293927970475909114348028298275019724820390640222108957288501190508716112841021031229091199332814660028223730443190003233806341478558342890243086673872746402393886541530337381910337444269181491846178358510278646645082360545493413813857641338842583414454231889102720177463991040203037551698988152554159377652078926993965372934359929124421166658096040821870604492745199614194625895380754944228734771413570097464956078988692852562680346453121799358023252347453827876605844042856992786598869404048656518199586348059241967669062613918524116462605879873701111316745133804834279399340501131472262294614494917631581848603580174017797984938111931186603275696433207310825688066038419531633695359797427568739248470000309257850403170310898309400560702443367700011268859134714426115672057354380257885067757700230680952262086353009402645495344895056260637795228499529919394891116585911083406675705957294789828391365104837556835557882469812866820843768238214439395181877128637255260768189405189459003353493106041177554078228470316601480159360045104322371918550709510414940551419544090959500085256612004706962720035059136019612838154367680740653482344212340031136758266343585724225954453500064687361701092677329474025397004991453552007867168613039574210875557752471269359519011177276180260114350834384827188603965084589341802731412057472949197441567818468549638779098076880195601380987635397692730276229639792596813807558493980738788389760252370229302602548138998611724366483639766857718146837073545648691762922976504210193682828848935872739452912415043047450867961174264526737266009171700384835969492890758529223300764475726079158929059349796032620229467078181574273015356971191837985078766502010685660641951081908567205229843396577263606976365670550889846584763337045560035409200002917487540371227810177532906719139968974378942467685599157003201292591146278443525432549928381757531522900602765085865549343821823805611932074627869808086777369890904990709248173240511918663867472933530888761427989343802259802200503127285896364526036329585617500467661799010663095511167331790348158629996419704790002698139618553684050236881985174609888906407654596225873723738725505388607446702875001770777862637346381869255899211655498348175486992073816193830758356630184009275163230446894347233535976312697354294766353657352350127200692316883970078885508353486757029127909443774418413848240575911292288212729712778070163767788285063124582628263343597043218461371654034486233045484551686473738187407250932017080315717313787610620918940152139096171733717560686087894138387377651041689577958363865904028965043061034203439402322015006502108152321867361045981019160738380962087115095184143630381119668744399951281086644035807324904580514047751569242965520539124445813743543434541376861683687398709546156775534559417672911996056708587761466006588966910146327890397773589599445566250116724352740009718877315699205486323855502115694432025462777878350071890256603506381945538679111851803164815784406765550718516237096213017991245093654741876438799384687145217898982767121528847275066428223689002242554627217052068931965267127430268575762368218160201502280677388594626893861648560399468182760424921987898931634808852239512692668763088579310585238436605701204027424532867064951146203759389821334358475083437494472298580798222482467171907383705406086323463630758807724534201498418384796826183527719101679347701713316390120471484448831267659350625300475790241976853659095047448145133669635517231209857384720363862362470744807227089795777763705398904832047066098886104557001664664824547203947548699731291564173678713262389149593640661008015756340095840367136682751753987173395854239060846568200227413455884170385695152074430706408105926575290308879456170000242633023145658850706869436290345683433711948734319359929981663436911152293534776911453662690856680642799241670351107562917347296003793149873401730786282940555036790264074262167611211956044654840126894008552536513784129143300897678117243925796846592820540705811903779240351506323424331744401048560084219267602608778389659752156633070986795852221584757911018275698726611159297075835353939574099236104641906176666990213024125106394155852384978023611218016462194012150271917509182346419744926308853870968689510289362508576011649299694711248627842475426609920402249759408678304792585524962675607791704479316260700255647396789042931639883209395363299525266111914537559947026015995592466891372889435975356255096537444179716627843504783944586277398723926404438473057134282567168930242778650617213910837348317275752090822981025130249164698560743740347972389663116238454318306280479507492153495985244644465996817828387509158664356553724172304263189734020529137537746802565272326096693558144421035083836963513682086795905995122045338771454210701010772417672406855590140881446386990226992880768000505951412098444223240155916720550805144498448590197534746614775989660667663679984410234451959561367611121961873134077107458575717921233136630338642482614492407715992638772804791577232661448573451892423225417099327505467717056413038226817118390420511532383906834136325008210742894795746064284965086739677101161123389024307173212643684627115113806344152151034615286322972581925000223634816517844666198825190942248916360636436458862987494986369292420659573457500570611554465163046386502549163921606715790390095956286934873393131186108728075175071648314915678285342100976086091873693761669563938694721442170978361187072612712938805065494087462505718086482887542985592128353474022130045811436901517167885136824269128706804325892403961054808950611145226229721642681612557109848239530563210024189744829254982391999125972775162578174071807891223694722078942683271607946401112452148245302082710203162997927412167108137866616903182794223134408868690009301104190030453404854249332495684978402877238419517750038693187197234842549795589717642623778739175831576955268993410465663977494448335979939997635136006213995323493268600840141976650953747271974816224909353777032659864919308023402212053437003606316855736891370711642734962191693621009607643523499643964555075745554218637091227534144135082287366256270309302260650870454319512449896041216020830054016740670545840743722122570783151910763837322018521982296267497523408501077083015905323605569312663878873008278280434527921930661725174925923661510556089934897769608307378448271707247303230204112050083797726512675159829573952153133944183610009623645010891920342708835802551908465410805611178294366318478109025684596884705912121390336496035350218253782951284183011099854660043940978279639565364129593923107534711669326005440504497331456608028723060424156514206060877605552141594927063140034420022826881066018183188318988114649520460688472545166261768270721664424763705886485230958609060976847428008549901812822036506932754885028326164021843839419822906082690961561238400692919273025883959088136572931215470024695222037284322969305369699804004318106509543350230159438631390348432187662947331275473298607173105588326598310127017467803622212196110696391475829316218560193653155377142041128066424480281084945984537339554960975260663989234380343975963411323907571683569953320178712795291684485632672828978130695438579911030694534337922300241093870679762036174150902610216036381082702279961678445737040050849402250611666726988429230434544577002341348907136168929065229240159954757664718772126111027581865301758651065046230521343961831135170085267819428149489227574246780136814189924584535443686618891789752151303604614152362017200988678475053034000486750485995189929348764813980555071593353541344046382736639547653094829292798593607922814504203875998092190223686157976337184129061092148752417039137880672532586446958563836446220760946706513532510537577549125341856111343042666661836711360099305021808455494635703093767189808001892996871059531028336197646055882641907704166921607727768430099282973514953197837802318432685843221016688980422217502829029653640216962279439084354137175976425065310196374535268507700652673999697104710950830641376800823347021213326599217757367062207770775141429765831678604927431948376816833767597330635430262833462310577058714545004032797414484038587749382197211411747847173699631619667195809409558744777429963324940412162573118174907734225530934711503482687314657048188225996852510171544776367008440166335756420832913134648265705970386096337298306744130924703208674015808882888392119674558421988189101899716579097907991249668964418038513504811308934554278323970299515140431362263444492606760565232718523809803447613684209861996661401837072797121087164402207246011684087324927125398057102727434556528336074255560192281118948924828609343754985269546785889370563270672913614965647250766089006694873474464905376820743408552389772363596857628443384492438402608220859208541340094168341312184402339379720144765455155515729073439846291007265307697078793534605847542704374078031646627336986387829469894859307687738000829042976192813110101971771378767353416711384998842094054971346400878292362561077048265719127951942981099506165709256467949642323862086240936181289656167509127166712516668559296631068725002409084648949645949388346577946499588888254294138840336764759179631422341722187057476770695378762979015795425958490554848260131083197459325720337585341272674327907648014194487583222350798040609915551836448075424273341811808926150713291198528917440845786289906183057766993502080025342772121007488743780772271350435311317355909252434749342249588392442468704129975050138185090100907200847195940593487819832928004818880840221455219607553070953104709907585564904090619637145849698404331721332782413257689622014562482799456499109499118454281978646835365677592995558850471706499046508030595285075595811559575910688201001207947192718638877849788219413765227302728565637219412748767327723713337206288376843920805350269453704064727459605013613889892981709566981189434270033876780979609990888789037118398329492812624629241310324951644943874819814585308569097164917208376166086366343500612559291771557821880858488973294186930465404118870563340682960887231700225104835853192348176274300638370039168345722171151002545832566963666006206570033135186234646184415794318624050737415892443383125441886006598025178194330756944117516953682160591507856538245943397298026915688955069469506669966739815196608171086579109676393875956094642811312281124194291874043885014244861568609188129486283596516684256515644299121973542002189276061286241093124841584577188421189219507731655439890148074486502134936837426960000885682450359132251837237075482566496853633703062879665223098078615588507108901903526707360929487522131186639458737166555264247181727559051723380684088822913295302250721896995741459847156811306522458776458624808648398561452633310117895285391764377149226817134410803591708191681896049643995971028029197464213934168411703823729359177561391266773891736429730558617052610877418368874582782771111052303847541746234588467839900722336688979016249830287740941436435784471706622341987286833819140294058214285605090583358511237855715492857541530415319908424261250029876489534006566706167304559712266563994697640748011071279205599818110600329812272122665496316659177187636487623672069347194253596164693518693070262107647233353581538379460916647717137706578679111039653130822517261722804106543428078125883032631631374138025734575144340338969763739627994029830678661381273705736719086848342640736239717994154901873912868634122678261924503314792371001800929775803130157568555604917285335336519260094094257262924140173053804441781812402831355112130578848895254124808219999155120995570760845851072790707948653445497867032533832091958208979662841421403305836877191293828455147033079288344628315570135553448167604073589109553668761203879374026316981935601211087834107461602104441221082922880508607705662265586493486782757521990864754464879699529519046557430598709347111691158381130361977824377281917170248906208971940869250931065810055001670960591457599745734449157533662941018177619063341264291287218343097143735377605563571948695298653707850214632993513492181070126181352032139682202302114431284884428437174348896588716803718878327406134184529423177970395349875963818413883086695077286627382220922878625628572588926833921999460561601433668713720789788279695719333537393890884938598065182074198268402528113113447738165616681572463844727294808155822818675783653172568575891024836275405206678138172235119938912455010561037984534720157814362280075808102445794127389467803134071702773890137290791360520303695703054858999580596234261283007776177506372158180884091776016780482405804719697199092110701350930454847426045290669810043784979687691491975237008694022498882615486756258666036736802282535228724079045513612891307161483332405192221981024166514384961128854668946844785514878900864479553376842994802788351612445851640863227985814340198474962664127101543463957133009418100706789606845131646618428061038217427062028771266637187857827016138389664797498561478973033545486508554266904216413862177836047831820947715115862710878585228611873156827395424252459736329670859286681970314558874718844013679177458231569324514254808918892845940991406148961430077146622013629942559597498160506709159130898037522209522688016922698473314058769948964045152858008289777814440686595262855359103192674662209931089674602292768115317513774079605630695903942616025823916245061890286984177061706385013190149575812171807518839910641623748392654810952062806468119685677581981654436729981214239040977049883963450489608101325970378764365319189206338280247695911982429875727321766624705117991488950672324626032193816739421945864457913254378319902400852469243400572707588739545751773428312716107696665606343752976857557054115083827067027463883636181818735913688266930505850022667895770251462686455099369350644448564767223964672906972044742905092327115928256092321311205143648137343059795542834873804978464235690238167849829136086288118617902519651903645917446883127507822565023102446769243612125706079001726309365657244140109882972843616487415715465968476093155823698144540600791489458525137200594906949177373494493531892181033950273879807777459795974714257442788329190332003519552873856431116851559504783223951071275597069282788089064323617400766382140662015874630537161560635653382262704837820614149360690218551931301241629219453518589396363141421954694451939432379737543061191794383747755147635885374513210015006195652563304160444359831035071631303865551567641838680752940050984141750718935269157774957833992413335134173838177713566639717298126652507616577103385542919226178754309645853149546448134514470548195656890180223127806084197529609062556135878120227623695763045475137003962405569597290801346052839642001586214211753555939028420854421500678124217498613065407358970047786196233398535066449982612695181512329108447713184391349012827537713687210162197243057528615836374886550122790304386994048700830918723652451767202504358865762296697018221384262053515674077629246517876577483260153823156043735559901723170542768754183667339941775308453860724241044186781350845087051242640579573334730083706649405769346466979290596957959271377245882068416650675731495533386055981634119584158399410276858206313363431039540867242886514033166219111042088667714304164366099461575116870449739310475749141674945816998931589704941005542692996850167650348486989439931203650146443459108990313399813200617966402738183165080604667338201668415801065309642455205501121367997027970238589305682627725495818249310497528901183610855294357371942614138732565501282882023814569271546520725590452079356954094894079261985443748920734953213192166204958606302163339711618852118440002498615784970448040185712124339577372713826579341931780280277461443245165877196156828157555712815826948830364647775127289963925541493727211912348083277018960735908677825591029880695456565339050693063078405056234408798109836532150701196729504195919567248378819964415337575817133348586194812169509138174857150101273662326103521412959650092255735865899911697990207512760592061570103164875306080418174449040742697359880346491185757896476500941666967773612372062806559515061781989408716036158434159049140148421549724941952577117670265429862575638026191548016371823626683604932205138913794413440916959733004992249523886429718147319455097892370811573175401119798279072049979377493701391211679818689478831825359898252730342327836948696393638998325791343380414592910670763516759981808396960101698323693590384341303962762947026243006607017673050123080045211044300904512814426291259854009730082940720375955497743787728089057137595653027620572224663350447215472846749749325523484650334561024588400366611243631760187169851960038584823375873895317384803361889013348553530267022347946879593241251738581131426682803059161411491915109778047570025932952971291060484501905980422388563493493404398831870514918879182488923505023244426973828385156200578848960403929935028735609330802419358643132837544550258469956238342480838889977183884300523951311291404074424862911583049301707228142222013395632254592274651084126091833918489602441926774097972146461101920747499059299546161285716706841427952509886998722499778203494059389623430464712719541128678990734077536104557700426854921661666040000239622936313063455901383973358238258937622790779735057367983581702965693293683951923999029320807558251371123743390756086592091877826432302938400361421303144716793324606665175413864864753910872153603739375280011985073063590561485653119018013865976731585432250729273069243192858839142425023423991142124849431127364923999900281404089184889072729256823294562140224979210153083067524354120004607586275188333191659624822454744000149240880569602750752300401779331537334641789871208221616908883881278491590213438884234121593716205466457409736860542058072626150001539635221848251197358632546757179710493403929226233217793778835392614353723772023107172329455708109406824147647601589892600377731184826679267830747641627492848108899425858130673338394275251278460592171031416063456836955506964672314224223397699770492781688586941488932418481483196836592873280089756997392651884749329679697173350225128733032657553117595320534981828819558377601775170413777070352620365273290699644256937698243515595212167325919046794941761797875029601229340797294931832802604025210699374099160764399550407359280830133577913767611320018363553772716630720395689945516460905318336283963978787443582037859127968042959922142404666927993455087088358505755978882050061661120490437077012013967881427125010262482854787224027547051052963260165906267827281902711545559040865935450179293469401367301634351346682738250301095110359268033317615975230317253806535676938533163931887046586129759928887602255034976939162953574522135045028998456257400188106939048224603998637093839664586053623402576017407054007845343414017287650985152279735356817082925771290801518916158505560744269996122125442624991170158157710310073234452927695839835602648654002724818082078458604789507964889977008423865996028412240284548905925010411961122513885296289465763688484498042689966108284008933697176355924582129457928146611904345147906833974302479028344896512852828298878783553117193579018769257626530660979952180755312350138160244313044892229483583778495535338334087968894684589117843702677165024150816527618964218409531305302093809980208941693781323752141096559397157308254750554655916159825115837640511064963211802959633400801195996663927874521596127831601169536407774000536311301310865719588237458601450481895756639365516943162240866771977477592421929679366121280371697578648758909250112933250105780522538276197608596395454800330732539423702719123584335055757298919014011066007915704941657741051902785850512608227133137296163015978725550777846828731950205848390562107435445868243277506268602910938368549764524354559924236064826787342265453338788134904498225451085801789910820583998053472632762987395902116717878981550701652347209518874572945207587441491754815613485464972558253106969141126655050191351091636123500510249958487924326400278239487851760185291562059685147633995460964310248760442434235135031068782957526692490959379145132301214205970768599516017661293961168356028657380061579035422935281570390683145910032280934169143213801912655853498123905841287656131173733574088313366272984454517733231463243254487354007090480131074343908415945469761239464005162088341827127033411387552303996042819340019638604967747216275205262429620776069482294267456299735255442167942220037330505041932042635756679427566147645238197602171379666417306372931324082207626517954360797603915918326440675708251191986650630823193086064422296869950897634261749712634647235785399917769870785309547015381506751588807412049950925040860444533368979918582685086945810866719186436020508873205947521891053455090757838101830623847111754362816907010151412868168361075509712086648379313016268484144675224287157505346753010975622808907192485899060454645900474707916177865179055781989205814911878190919261369900358069589917247958285638079995083042709865954774995356390074036021580625395715727000744511910272600342684015752456615025379663650917616209597652257995454281628429385955238688480307837904096709459794017739931543003537542696416651870332834738070960846980354351609286708544962347358480295451629672230564855322419556809008532217620566442461466322861177110910346660124172440401635431883335877794963923584596682862061021563533884431387125959629748580931790206200541972358225796455342595330169995088407930096998320020343991867682678746705208721776960342701839526622193196923917630058027628762437962238880800292963677041634989576112472143561170848525364699056724740422100090065992748927038336667202553697068318954539161320321505428084820290531245035771979618619161799635868905703215970270836632865734707317463265146673481943591698092477837739498636949480352525512022911261818262035474667606281899215544476075296111954829521343627997550634027706805272828669039682155456754838408995054944893885530629188366971229411353260066693147809612735362454516417237408540594338897757285482200628974425177542180257840404488634803643141362178355904107792834226246905901218150270633826320620401793152998926889915034586591208668526753483396703858986816787421527961762329594186415008241720151681078868618529350537667730692206732328354411251408490294896006905631474320846472647259664099328341730412097972951130986465301847027794758530012549409074300833011116315727305397412720572565129875079414786685212821052424462239897596837830601582485642266047511229351277864984669929544878687502594956297762918760321491202762693781075690476727209381356779341263629829461853835818102581366614417897384684663731935122946999487826183303018967990430306193137953402424171980452409683720225033566311911513230044557215191442912101810354358446014349328126563096918064042441461785823425103589444445510783010170020243111597427770878297541532126113182404038129999751211205284757512369463626580537818481236204104838861083646711864304623617280981629309091475850120936285058448553844224702777464102188432347532012913253220393993627012704686014109626108168677438073942663490803651132871411490533671077634852438324371704002762998946032970817877976043741711582000383241506626599090106889387264500882304422448956002309955321053048162934152367676345045810507692938796974976648846534187670562960873689197933102138313317356441185519043926759414709466326506652125659053490597366605919458270192466568858228909339209952778525509812396224684815931369939879462934218088299742246613680874800354621454427810036066094670051618524800138856640606785453427804883993889363210290121362998395299674208694012878682253975054220940741036932373197810198333010406420061971693062549159218938773632826228608172793038075613914183498786662728429757614597779296053138043993029379267582503092750740491386897787115174621079879158947394588290899939345496093520274823826949238297272880207111857512625038942739764115577538556127569719478131190508569327941325228265966336410351452066171482048518720938456874013899061760869929066521915253706000030542754125189357422047296157655809228543143781654784290978834779985906177309107642173297616346957739641252905646098739076403962727843317495942642873607056714206161747445201217269691307129122059069801895369259103110524527217067767731882038885705699050521118801012525564284014254549432505602562320292095014253595790743011508247501602528122581147925012780651163979252732768461990599643935139491662343612302632275918460709528981873908486959388689390831092876897273910446226185122162116695822086626553047197430552178923090862104385920940583659098029499169746054906132826209469753615670480848349500786063803883585880526387611607710287145189537765043923613612763649350432579396985766096102865813226034342528295150719320408952896991218531780442095046633083279973578261907112579512247130843784925473086202836951852988234518798296627146203822642855405342821472446179075890828062417936079697567115298856545299564274545846898234584615873665927513902607802052054639031266853400235323306689483500828363132455527631118927342363354569120137628746612474298702107500996327495301878226290612274748222001094582395869608039882696040845067447638646183674966105469644941496064084148424701823481650662318838883465510131840384468351356188084523592940767576145942580468847453843886186402180208969618772377994234888515832979333494997264531794211283948767553798862194769497558484000907509020801958116126406675882000443325220523383635349294440299764882236190054241265135587319567172007958214269412779414583179867371442250099215614548887883597353138489508564846741593388965565939380602284981252051536571031765061150522799133924000255453019280227028333848471493432288466099967191437534531857926004108338545373405393838832753325169841854413365506327298234393441247069367086623555569142222550735594554965095111339736558277586542997608250896885289653686833345055573170326353084247875133563658891078305681078677333493122129111131874303204869565077206971197715530314453358583492291834831574849100406585274465946514164348574074266580373295623484306111048418849149352911973799881043300402598778914461887307881518508689306274240687885707704744159301065202857738441337710520784469365280269066572043874081910790685238284032280758399924962601509843565562708471006923607211775466102952327504190755076454864969510457386330580366550928507552224219969174138874008057728520614952291791920273418038780963460082747515461533781509847446345039330410931760771528561579691014323239415608521197915382307995712318683451395858917550638825022031594488573320734912930669086681698631925473550904493349879041227393534445656798206376530625249391641524311377574284454617714889455012001618562242501562635705590308969020262103101017513423433772870898723780479547537212330519386937809557348814975232240350644993618764502193398094539848843776996445031192339632731349742636492420996796977470938695266613147997732718715469694075981907327235958350118118314995357064620164518237810223604280600167821577954248510041664481848817096257299141343373152665734140696143739800300685837053225577700009959867666024788591320391347982462066576193762048665832576541755223472840134517462926009376353565707624314832256463029009052379192153928629207768041530010075713566763067349694447822681801678838720836600163114331064715152399608920749097641751024566585439861162371130516818382106504794725174049333815492062352353922050378452628764663980781534612105853569667758375890276201891017185062484380676258926739449828519822793531192023862814891379672595545971405808830502858524968643669061598430690854139796428599105558036827797901895288948773146919388657606186033869534355641184396951300681442588854915055810031436350089815019392765428282199792939854178051561789636093815090769665834925259291924486275075425882394759920772524463449338464003990863791771415373281945991885079218276938818293843752332199955682864037238276041601165149258017451799816418524944275591000360669909758100877892614264411568341504392347842550297853815780393422674547348844303904114058100323725844314886187831572927722482473908561360928636497753785979957948866707856520022550191168985702140148504651242795653378474407442832577789762314018497158672643304574131288850189601863568460122979997617375704774289289597042116271870008185699333591456085157086214692375063957679155400313237793774531853393275897099125723193701688602816710796169882656005405322941946622864514827829241084093404358197356409357551803842722109693442292403323774439780633200151384368408698960071879050237875318318393308558900944425568208715432171560186603627394283115735183341067162430419272424647625724969113064944303615984217058027728651410985528530741451715919763016071696873989969825714820021933761414491394815785186596842956947885342314532396536123478536771080766384454704274685213986548195033622727294744438421768131357554183702937932179107312946231567578682967831470579083263423520566229894323683519450169274233248248718759008510475483324161761780701242048652648688842600062105032480617156482765179362276873808058358115827593074697465608464300523917999144298725572164260814575732052375046653961068496175088066383362796906021553980307220172234478298493394055231953947857170699685122730567793922663786017613608511707267326068957021369914174632821437266951589060663361155917436276167346076763563467980432454942279929988753119340464737734492997444777546275738169623398338845850536622044006085082809108683945337218659934414557789690761973817383592694577444848212470990492719613228208979701596406314422948623593720586851486399910510885504670695769094848989949212020035293305324632677772777182725319635300986750014910433746892479123292586898155068565217216933810933994207945016394457185687954590664231018430879880377155579369995325554510994464282030978890246116797558199193336165819969025717974576826353873772814048372878328915639734767945282041848935895441791831854750304585776632583360461655975228996641700632128770746149740648401520298434982575658952051031239936637328649905140804354448954558736189650219443267251258691915264554424288601272023206574805427966746720539279633961284216965829901807437023604595187286053309068690490843983493593879765820182720552362753999712156746515001701510209728042809076840589509411597099841577064425138213342243989423563470638393216981161653527159194597657610055174292455217496262222506979495137892466000605480519146518962474025688840202515945210228629311618805845475227889119440837021482057366405014222265638873466414400115982451302685006810286586245397665670065123856437077388821036803078409096921150497282050593792172269730782515684224577784281152353646682711024261861625300456151301003352770145067367092121735218027322273805600579529850109715582175841916397801187147899546315250442172567910196874988837295334120957866372752005934420134944075989490776484991402907507247787012727372452966017877357100680690808867546404031715565116054705662187991203792590390261385153607489037365929617927161890764374285875904538006928694913226202120592802122474327612877913629900608366869398238707733552362632415490773093916034413271857827850192351201908769317209140520193919467664297213757735059675989346997716341775725916595988112294011977191899599347811326546064213981746807732259129398387331231350428569258085080886332127474374936386896889976083047827241861535781838601423757248460209625943523395304374746364393805721338283245802960407485642754413374124155223309825276777157484541529064039612759474378303527509897268763213995629070425542210914670923404120714817635935169597294511787338351789802210341427374763677902921984616349953097334216702804600192873957640929219236847016032608784677954313891232051730985069111968774185606315236181773837079591792360259512766308512801277908330306386307363733592466662394195340731880868375761458636830528239973788790194366557867258173391201465235327616608340841684471139600790999578985438943436673965866371168069136439916092102207951918793644671646591581747579156706804563378962980097444393625181467217334945908293477809183382477181409377970264254915624143103477445908585018332824481048281322757560400755506153413476456349180228815548189168720841259664840907810540522796267268742336731587751105679969367524832546789910234201268893143281763914271825846069217207116273475596918163690674219455840415850838231332919924563570679458536585132552775762212607752440835788683105239465167799214985789750225034695071765154355862563297401142156426173161854872648287009584194741257957914200088143435479777411204713526285476355938483853345190020192320862548322707827058021225118445548145192766986024706405221237148722658955957335586435200342252139132193427825194986567979605203213687321868123751214159846457134467511767676172396720724977958690645912672449278794457066367112735761712350367792780547456410465917298505576833383191816116473219093974598824862350335133571124899457863147269341250229160117483693472254305814312111232452708677634264946808258204657541629073720132632082035631994406854519947065684267309259173809935182468918296045965541704467657536410658189864036129654769585731228364864706297278005683912815802300752336817436361826022774368394897616880785239127760015444155469232563200483160581839275685204768601529327198336925691980753312101651412976586039742742712117984733803842446212926962614653538888581419859765218562136554411131129205039286888116741607452823952677645923972983068475778997393056783511613831982369145842719712377769935874635092776873752825598842064560826800413008577561436835361169080766843067335851260269132153508266516657571590810825526215926638370885300608502337522545387872418729555321359481073827257351045569360043119275979806035867463524766261242912298736635708423544492076413179458787909202480933905962643550976783682519552056461855031244953437739518584766139816949314002973369123399382335539956271948853596830178919529377672899976914152380789843247529680870955713602681247693502766112850986590229947341694319838560284054627423608803792540510266650773505182960810539104855300812731515594596299402174335325664133764409828433726347856087075678419591147068973560899618338610927252312139151839409007172947571051028648349336013866271301313937182431713932532903083188393385331162597831286130025970785169325359318873803523811954099086639769695522103589566735526530239662149739742812497306684815450736940581335050156735087324644969917638681254449044891137639170835494224740104546078127171767055559572986859138618471845873534417318300089628295010661849350807155668399911457104786655867062886408574772589632303404586091837849953200592626556862392576895170599530404461774983044293373136794072587299403756032111862010259002502042553629065176272859600539443538580551720421042746580287530694033521954265161469824319785974184489035763153623690964221441201205255999649235055888721869824706823449429658442774176859031827800127765717488953199631762954128891061904336146511191851599368952089003316110752483871280048010847186984053067424876113531942326092903876316822263400776250499194544557662098841763678906606967119168931144658376099207981174299616626532416278820133913759533366256257700834817707532365155765886980505076932306198056842978952428166654315639777502342310877242626373627892815359683342697102448629784883383202740030509216272892026814021592264768958024588308690472865800413989934690604219232732911608910271113250864508224657411621958988485014724306983540682701514396618189990449068902106612975317063542011963597877414680529662116288958712627145488644007041873568798782827716027204689283230660600085118638566718272601272429139157135937945097649097964690329621525456396436952574662327371649996476452750743254209829965669192505944019459667696811214057704878475620635457335053277677434928081241276274987665374109731310783263795928283159707109848422450006360653604799536852739071413418268119215637487323465824514648723285138762025450971718994342594844898411708125140957443194928979776371723394144101189993641176045874630650710472483784073078545628949544443603398462479594591116123472425638959532396659089407744501700880371540392862272372218424506257000959570532119842149463994593235876174851598788232330339399447162292882852316876701546887290396971272266132647446265704701430355436791036780619603913883942142461115084449532703323151918529421977909383006501999555079870102266996323807647397385755129129358861480857713653878621844750105038160524866955597301233284355670006619605876202782850448008199588941077699278511579007887109289685754747289495055049256160744831961033737243347067297863136159163365562959994923922798358416922563814923324451662699219300940653176075439217778466347227006519746222280957504588352023816271676350287347160871640477398615176000025980470575313786913266062451012290681646944850632820204259026580849268578535753253217786735354900748498630731929218864969735727693517038179200385632790736409159090682996436645064090764208434299253056081051264437218357908478746298312844323006045256338479793467040343870374641216685092625045337291045003508793899043561746185503117002209126836497694900866521063751441065510178970243035825255162437622391391568628950069037539767692641602433254196243456262902412429354197135295297061807540303652486627064377461696917301550263097557666841934874705127759386795348203609616449284488737159849060425137456345164334287776139787191767968701229991155900771606980544617049949489308289507037984601056097766218087004949710271243263202944743183634257862023616743029086239331536983719250827446506228384113597410318725972213804936180483341930979701198379331189267751749302771296337403560265714411737228005597706288014459294464202783611230636396316461394199575712752575656105796489753654924805591354759035538267372420026872992140340358935279966983829598678232900464127875250220944744766449063077295075230705031577724170079440119529751480380055099219016943289147135991695079716143099984343026018514816809145430652017507996296423681508222591662739324310723849697742683651009330299246617462106204624369681091734159237034919259132406846679726332080364743885470346344167403397918783639669049158483867891990476684090887483630474607571425650965874608700285081164870852568118769930841382939454308418400529518082948959461866768003129489538029786776939108178331723858423710506331061644193050954149483118042864686083389708279480163991113547626403124123204846362146947656435330186989466694550069473358031518865713650161722429903489461430097851967194195939566755751188462790565152032983300450043613651703226241914100330346771308517211224858486991644047692800758384006079305004712737063155871842588949355452833603640499003077174826373129219094783345092727530082256541261818896117304297492447713641456707967104510626301052302003435638602180288871392333450753179459667604359260686646773601201353233040957479187595554985277472282578995868092166972110100689961730275662129994061725748365633766522983100299494427084214640714141794193031896376262339974973441451717724594454026677132319249682828219467235144488030038696013847204481203872545857247679586559669087391448416685973144477223868695511508667741095512108452926134382784613836879190992835438983079415341455742733973775941881751732455979428300621346031346026939397170298780602384361086318111032748982031167305405253612053509838895462014413501999364275129965167898493151388066154073265554758719941119326944189787561905726345296232103291882325004549526800905405812106350882016698044973963897431113366556910371255850843722988452980877685813068223197246843532613807923107956110791462680602321289022892385850870621408721882238796032343616948026409975984967130086451131177876947466328007149621715171505259763169192121254629781581648884209978759811116020122968794234366891007489525317330366355620360716733296582967530207771090788954536995981330015112114834568618328456561120625520943978899807894535260545626607924363369202282210519617777697910952584320776298020886355958614505974468902082107033216766256366431315977595635145291100108824905052223091559932556573433041972704036466115850576779423882789671659777362462385695139571619908807402811089501206427505562491335428153640336958728231688075056530219303440343385847066166237178253400940980908403431716966132993047871016887041054704197574995207656120168098652340047819185164587203570433734919608618158546521930870841380135832928539016358408047792964145895072946940918479071383286397934350757579158829503611031549842151671473394643233154157908835264672416915549016561074181940176311970263962096400340436240639612904151654818345718506530760385567051466163547658946135364922576899151228364407048208815039365110538164165816551273990904367610142086424643430949808960910776530306755859733643448792255949664224084281556382367353901479368177949596942836619718820509111697028440686910536944171571456979300307235010938371595483205516367660299540203977137796214881823747807349067915576626918052348391593461728477730863536808503373491450733725439288659653269954009398581042949016453437608054839816770294733282788768630750247956553863958640858507073131188350830963382092644509467522252908386324952107076326840861777443172279770065957657607671906291132009955743857227513014966093862359732171127852151734905327112394922091098255597300689775501246805986619253873470513714682748175262538793496522933984754923399255740042330490031352882041966874053713767277506307670794639977084112485653922897687625789626833563142120766896302536058748153432220684954884368918014856474399866609197132415729365155727020427825252101889612826419720679607135799833359686734357263453508244284091505031201652237187083949678690778052023088301652397823811032522961909770208724104261497193868450727373991987590729157175689702816042590638695739241806201772507424592458411391976120327421477775346300984561387936858599319093407887872064581779287668028776408711032506889561622368868301040375317728614974960052322883978941095098779795967961859881102016644763109641948215565575738159841974641729164267874594912316881606367784301518834695155093653987845878814983654127900197867898433018558822075335112222237414672677372615757648869529150077913052837191334045330639006517961004881744882166481082027817813851013937677690930902759042343588834830341194023916148620100527104839906841376191716395317337325865562548017183402720446138794835267168976158103630790165129547766225503018934148609874359404717035965251854681591864992459073560104417528091952985420307517378364068632635383987746486739870735159828707296641580821446091721629099892407767907527603252196459648816252849812614890302344996286040238634351782462238388653314773482829505538457561320847262386145964846665456470518509266151206733387930298133299573529760659420435324308570697121040428064284052874058333113114004710284978759596740055691236668027767678624674426847128299905845338229362617435371232275621527201453009199451753435337549639011723805265266546354640252461973036192457401121848145905424894808866119063551307802140701067583395026833657906679362489036790884015276228208000333936975438920365667103846193220791245404779453606979317866564871248937148804109770874362497508796558472925115452161988001316185303396231480308930690991549224511650413946332035749857832587256516532620544761667944958271047600914229833662254121262207962667954265404198263099811961622205374469279497686481236184583239941051933202650545517608558123787660929790264444737707981414670095717272604970126803996016576112511646816885820631621158745404778604572837356185264694423040419021286604037455823293798327915075827020400065982130031893227159260308440254255366985860827815292244113663196355672056094543444953885396973810461047698994001878203791454617798166016171541644362226737413416802263561326264561760309829865339299413297309804203738423536599732845932613181473499973579929416329569340225892313039987446726645499462376796294558388650025712774310922087417889224233625297723929142731941191546493194375640419781049101762254376861648509696068117404833254820388627184344777481824238893675080932930368398804551604863769297271487472382042807522965738465818050309011029349206610241002588649152617388519612834494385155449352817541846876021432813758752867811466571308868452014907616882868298486252534097280745347561032808762223088306560827712841271971269368487990921891576771480092521061222759300382774538725205118315350547256257985908014354017906510198664910279309096188065562088350064572900623518504077331837240674948205866137367366792912361840156721421821441083632643697981616234154678494675220055852431689036509949412816647590673448310711325074957705634278434160967788677590706207127887050374262061863332269440450227221081026622099088019450250245756951511599529291420185239447215954777532838035924781140469599366046343386200098242102213443763989778740881750448134678824456423798276451013343122939535971402582828775334918620180309956839914653465279420632363111873810533133256061042582839346353584453097785099521758135280170042980639865390669919170939412787780140303220257535584864008245662136812375463941744333343733501671255039826983968977946305536387341213394736095724331431166720129149536447711979044756581268932784034805449847707191879292096513898134799308478308635264195288031824055063329159197999562125296354969611596685984303520290665843106929836481837181586661492532921816221488978160536094618670574728637476623771106699248054928594640265132984209072310850044588385781560249517025371189849394002729709031833851099710233443993524417880116768445391107578973374913934809693647439163139359484122122174752740897827095796454883727436312315324371910561425855981394112795728047765997618945364116637850023025175485829017460353697440824763669733454066936860796159985551999408442503351163029370531433037231852696408024164609857925066916769309552061619977766552957139992283959630280797788941521018437635819491294584743896710265764119366119203875811276048621246518299168752628676023013758945176374768101606713813288709863553243977709911368824696685662382793120293042234058169733529727606487725274764222251529247846315959168087091177880394102308070658174728045463432890896019739885794541059138121395628827926333119480773892373396685831033438483496613424764314784918193968445679343686190919335786637200813483131338205731298938164761239101870877629470059296408289027016218882865232019111052688839393143835037792918624798299607223667751642049155635605099254680382791473723654440749148235796433661340786187371921511666118693421998270516866294391148569198757870099035559667076800018064886352147141227098661833007064522342244411272271645707532402937117246066127257668172872475645107656668556656957792939097380913088835685952454094406304628946589947367492906703319865758711217126199763924921235186425158433347729774493191294852073803814535251203541579185948141175704386602762536807606088620759747709836755257785862035379780705307791141070963364128510134776209729628993256351116455486909611839725974994143033661828732724203251922664159635967299875596255039602047082031553031621686966087641933543260060480495763360859207825342657620727007496177734553843346743586988147927553164992249295372403467835983380053602896808729954455550681416588452202288921805283398223615931353960619091048700496941643870567912805843643964121826504565066503277727066539310935124256276029662338596279456503690465455831855976575721855451707797929629204779935691130197744516046901433356915683807637057846916738318297808336156679355340462105673265640393220593829098909933231919698406320745899551810105941453776586704855855564256603432621967188496392326027852085948817044170038287665410643576297765843784896437834420064602506240090828791093931250281838588157555363566326856443887438270859905212796334596048284069840646997476615931764831813136850312587485562483031448771349660320963188653970754834522736465933661496349016239650398290598426584582530159805608207460764350963875932003019630476446330392512968350489175275277822017984441955075804008224294614343338919597218637663786326429035307820020013755138781992144716454323337382143127277117028904773438346883850992358118956514494571506867879982996082522886485604926252086922215060308123579358383090366628299715624938874388449382395156730053090612411517066494149949430140428479953437938144702261791243057691104483989747683763701443219807233788936966862821233621648122442303921207048901220794962086794314058389488817287406392654874688642466881322138187831521578934124446820532837721491395121397880469365373148614027074370127097747040367579652308091360077526528076726818568417146319741902363907606673610993350376245673503725669826390450567577161986711438268832392918423429112390982313271375841581980762996096516528342593878389666209254071176370678301377705365996667579528624995098084727957123790236725285375632703671562230181649666127143545401861685726937159435329031426716212542337016496281833923650365032422246475956980380486367035287198033751935751648591984449544835393902155004500991407412149540458790292396657772719991931864586362843924583290737401285382243090472119540065910739613698151349340974476026405869540040639795322618582838055536212721537119279407343135583732597600801318875738520102039870921041941485088824286554662022934946088210400727450827220335371573456485384744294711197397320111107136429551764968552159586229505093663389990885096335959048908683521063384141355994957815683866658257656121554923358384930250767157187282039114064137076933901222850791365897270626089418992844184048728214941340880932239023924844323047205136071231831358016548688134013011860129665563861180827088618759502169588858239162872573655163410395610047318933175290703785169987895475630505575058105081488737712523310962511509778883014707041281436913669878176964179717903775306469031598070528048526807106321188675115793731284602601649876653066073234547100511023582794794074680115864213958357657530537901356925975171361342614585013150452122408517522863810110934371483181791873465834907449416267436710437348705927647474969362507620998271259395534433059930354506261834856522154959198172609993986506853877085709591775070408880552675076983054302590895953664328941716594798267609171764688803071321006699917710721976987398074897924377941070752405655424307666865396137604578080300092250065804919765407256806423780140161370084224227184613498561261442466656111065359274218445819576998545866772711068206924291915032910084351583240699713106075819648399863742233061466324826253791407838867654770635475278499105543356256974795803102483979596888275572457122416889119360016288282205357630445263562465562492781426129201367790239050881018665355609154200819626717980283248570930990637292553759675390788428637326424352827182090702503735435355496059729518914805587247287369868964995709619263999541811761039706439685604194235408304325273638131926514477507255480546567002771697912244960566923913889251357728685221788045576700546818893690767776643403262096953530598689376156204183723402377970703812270578987038679631851109538189291544098080344702168012161134447894363717785062883786197548447855063333006830320866667347702094001679240388870041509308235128899186361899450855049693577521323512160719171673120654010360527303291637460547210219400789953978095671252754094943807830095891722463613195738935484782580503218303455375821111898469702681368899728248870175964250451718772626195948767800457464602616648865715860841902412556708011920195525846471039660333502726890983574774406497287351654620012340034121352529233280366281758532228285649175447228059643899281038187749038415673869111391058092372970908998136309970524724638791283490535983037220677552514166730911976556384378950698379299254876601797564149988515518732877218455214346779882344750629004293003354173260929040653247906457659032878106672652599919447380962339232654144208203780721294582827674284070255737964751638882480491452855220861085537957989079383570593927936426205454047720297301864206535642663341302198981185087879817748447503904613406603472674316610963728741335091601938191702623229125456648345613604833592129520732718538903414514444163899093396245411259734262992440641071887298056544498677296913876618803273677658112650798841663825797795393196508729306029326160396438053529464695965163796615788834874835984974368860517877563478752686957429626814167345212852621417142882561200525177205033667614494682795531244856403598566793638190009075234640172064009497162485873073218023810630825593397824349026478778236640148638366570453420568464596544250766756251515918328910479550389137634479234085986515954257260567909183566071700796633956647242282761955286105941417217922677674137087627140117680061742455824548811090773428407626605753230233926491185503614869285620241362369244189522154777264299340734862414480099052467102446492520613534359595739523656531402875349757734619373946892343208290561253947556903971206926802469156531757494715263354057422216910317366497350180918524747898448128387233502074746724290599039599678926785011982474424254281904690020994822506582219241402949418283616016344248652297335758724533936384237949476348619521738694390340970834428087916112214405862896395529785624494976324900256735482222136444736352245008693925732867727288787847311758815550409131359536006825847992098958005587545148497259230111264810918089617708747642352661767845429268900927639920941897115330137635960284262028202769056794837232165572541422501913701024660395521681429266015509648543058936233733747261769914100778490708161697768074715894497400688315288758584880625247004708270443354641707048840156675948361200762386552654515258881436467070575731579747663681429681615311098268724706560314940086995024572357703550418957486449072950213513775345023809414127410850058410596814451719167167245205879239905690502415454444992760874629943792681632088549605970566895899720942529519329988380637827487000191769046914043194671671014460293886089075682669150362606151282922567332088654079303999790465876404006540528768181911592134430775799206265378054866047831784932110737009234554400061949664478612069171258314174023363222575221661147911383107200893704742224402442662731950946998072723888361488881177793426702682717342704568293907972238663515175528999459750803878922146354433368784659651480684449621519554133315144653693905925207767721996592492061954034680183900127802987573062383758294801830195473000031538527092373724315706956375437871146983599141357053626795455632278128610992472389673368383596528580764625171323915594774679309727536081338426520187162551887137579240313160078553202015160414018538977257762129962175424790242738007400114563708143219160830221270847552372865180338018206340411262683092476227228033047388627798346165272144059857211054435270769692545896349695845918608689016928136657585426064733443050517100064003302952960582487319789482053054355099819179136257143324982901976389604239779556156437428002911521652377535536588352740633829192877246756626296068454091480116317081157204993442246805895383344505590795827799150102972975907850484814878229570470820729774531190896747179910029434663593175415430999521746668798189575871800687090566814163150762931421556956720648061142817900298062444587859016434557341010081529088860308068974103343658063527633889071836183541183216804921862335324092671793337123629862224899502216994569896002026100267821561110767688128779643659420165837018825646838372006304530472157780940399859971883210702062113020671873089267682583283687859931893906063005738166741828339071094061032663603343642896195063100647490664460966719096057193372572243662351257541406150863095213255779524316060720997253461101623746716511781983844279884160134377170030509551565438752917687280153977431270566058672511713293073192935441408308506922464503244286487136400883545879847150180671385215879301464218226543594113379332310466361411089310480487801004835180530179106625104574300858130263856709326006087992848968566629031634743908877472547630242997461750691184366463361242170875601596233100717552248559681312785289036975820482715488521017691939788971304576544165189950562777920864225636739215983789199593816504874296938859927763017726723564236130779080751273701630304098668210896702662882563940137653432400018449412110621285986140927550320593708145609591433411173687619964358698769531891722892567467626010847671034001771826720516586183113978472858715147498335539203941651380404524782470645254475347942837208133258563277554610343468726940864150146402517230133014272913627181783335568155375733170941727962846882258942387496000692738122421690297525686004614252143152465609874135345983682805465383910991480644423180644582189245804568425408232073784764131692364032227428890574729187039457318356954895330323638974967909222009958721660103148033657917550098267362072730460004104917413166961229687218104780169559140007858482605176987452781463851440753402186532052730072338354478442381736193055020679748834015212741040380554689254563853684245547082997316889443005894725722224274458407682842183843048913296998473170954436352052792093262349480433270239573221537563751211204147969644411651424042889075926749379601846392474664008658343118342681065043932214231078357778465334162286439542242467262978829632588225841031695200385451452096289251566906321671580461907607267815317820991009063193773482988373103944348517317222637152419750355573315301942891101298768890654659606445069383118609143132960156513507551636792445924284993474759933251674064206827554559027391442572788366052763516098159356197350170849120907295259131353892001233619598032221464871151605288445952305615324190307790465846994005253233680438936868653058239383343160410837788663755957304323806134606479432745215827222816268678966941385981621797452245265353623073861733678653080095204493667666249890424995461818173700666410530987425962828702662350898165247061062894369043558732110295621453022337109674725693345874297704336343548232640884765427830503310454769283196908247604268748984798587061976170287359116480255656000579669777256441074287790617608665493852777509199084432688975881738053553598220848577541045263444339467559318967396895147589625967000978285286678403828131017425037995096667827050148369729680542950577608846130403772322008557391143828358039984248151558772338333490933816682569152546613011652746582211289930111294568277631472189992092980833776975165328680632437680056904849538229805913136687214796517187679049661366084287197551702485867836044937284544701231689270502206840977869025357257019331849893035284366289350293971100834619705787417084502992988343519662501513528530063288745427719614531725637027479751421178417765951106883743028378868371685086074121258379536716231395469114074730084904641066866088515779449706225732998821100679304655762612288856018949912119621591831494063035639763948398503191728383072669207787745774703134669990461464530932580030774165705939918723749396370122304394079139274754533144779864980997354326278058732005017795681974833157150076567382219728793122493334275416479690412483269811544720203697687772364776515738730592328471830140204742786967405631398622584384975752912455151992658366809548148431303805346174758799816702166147760267497478421874276910566029667628718439162021459939158053761529852140818851344602883230959861243544914921265361888369786566791962862639556104637734056768090347114611758295098870025458067457018514771394300510180274517328332352414156102849956220966083292299887267903059015516333969152668602113089552729076250991582335232009379398721364761761416124943330645956646755272951698891980118075624927670103783921708457470288493084855986902503753185854530404543764726685072030842891669680432732846184776210551517263857596101899196944460484016103747425978969367735378251507385215111722065596572513555548418112407124746417231616331041206541367197013941590451765319573643567004362041140779954072943368662390488980007556592494592056120830143879080488833012581040311509715577099256511468949414265090059231145880732246291169536172103491142486019734512992939949141638077304038863927925897337309189176048037726834086338421189701892266778399405755972956041404842562361589840363345110905894293483351452828593002862580728932579476763222791070524107779276892396799863935601659174305831377523710978221727896726633995525909887308436339858270218303599316976946443890090174608757044204333125237975787720374284744010298947431146421590782837212062276533655362874772653796299083077870426823561908331805622521865565052481443167498386135835441710464305715444072149447229802157752754665402472471661874558468728568516178775188810444695524353940357216274008523295196009247652486429454518374759917576170219053621004634471095563435359969011732334985411775411361488700572456063799254177458788437633276018426872475842597658688833857459297440821125039451310010961910036135571568720342973416065529820703654070151825442618371551986368685636793574088097849617979349021613366006912661868201042045986688594727484062747493744525004509696210380395461041238694436450422930625738443266162401528101682421997643392988085270868557807450413323808077574396178011728052225136699333926832530714443129302843909405876360335822843697546452524201662225772024968626554846578335357848353400823314818255793952724775054014111662856913487654355759291388907746259781776206691924701608400897727195141931886241939771401661327013994004513087254219687058169221448548740316869740135382247555129275213747101905025250795271827625322740210397472589931687214345028908890033417917424384782610761258766271728262112699421496452554512883415938026323563434106107522664677195164844311992205662480472697370457315920143195636228449902586781453925081500338082019223155590036102815770233040168798273892365947986783620304567837169434091217482735998524528277901038248833991124669948349997502159072916482692862350002185513093015512831050985064922098110704123976837452635334644066527238256062455505352206752457952895196422488141520392156706534378896387492611336002702024037816109489884263552115642150914487883243136914975243387147603884249188377755230196313696320500195353760247333334002612930448293983953307456774954783516905694785907738914519604655806332848295368033300398786491417050180008897749354413573955875128824126300032259256491913358464734511711697628282703272142705542956254306267569364572419487701962427601561590698027319298471299814876791506946745854101057668039961416398718640033034382197447799233450674849371941841344335321424394807189910564997207169784627360503065325472336241459672120644840314215385579224292547931236867595765648641322237765873648745104640416810185559912672387471780540620614168674573258078853278924722761632990117267897310916094508191693539948728961912546383297922256702446161721904382892855207701120916888168210295542809488741859205468199141566997280874955227133573710185655973984779704574411677726821431047962009001664169886916628622057287621227780941212316563975775905435494985989361367652159618120089404099081218093886001729013328501163875597953791227060406934542466844575312864815096820688308896604131936642901741036516679355421693098776374725971834829403778417367981550382492324964022807892533194848360138819380235850042060006970751915647639162140323040916093197753441724671021503626592350570393612831312324077633103805993491595463491508050260611180097695442972498943091045279782543154131864089130686380150751205814103371061505323602279236299998046545228116063761916637227930651319803610094213258531116137809044552576251864365897901291797084779932984533924449768952925130716453657710868266399266292931810102497640645915050627036263759557548669688965756591385513727104686274128557398336010182846257904875906867798498934688322772353086445454848978550723076394827941515018149791557791286606158135424844955681733432241304762002341106415349189197254601360871528743850814326678018983090046111993630905730137893921210013211524447211804068577407842593979318621662160713937653446361512720428969615604143420981431353213254621737831726942616268692466007569962712062317108989326043798075761622397845153351346096996595111489293545999015103281959366708958746126232878868309631112557707568118890270615832617297813949189521865639709856738892758621267581806102674431762490650403553749212755567711170103789877243332609388177826086283348496669906425888713846970118927499399904272602206121861082448596145376137664869161306857357518772100922919263454174397979347413955005781185985765729290068891337618997752105902835110664786551796042547713990206614116913214769928201275584363516836404068948813099044823755746446717214594090356918965644058308228392904596377874083134897061276863435747011156971713327448048551475006696731044233483193773159034353425856911202806366902760037624207736219043896978472140241243758079002942307205109214746574464981277069287260307027013663236557471067905803672104682843031073390264322149155620906719411211172412192005510115679903136367261987814367310578222456689130765577242139626935799325700239942391638597034742448922560262394238323057229843674434638693768839578539695321636719534482118743067148103239464641272231316871573943097953435713312066479711856222323240453241116832747735489655501629525050212735915914826593746884563819609074492511001533098189396722294523925798700333016509283263104922277705767970921441958749075452258088039274107717473354125203495887855806445724146745283932476154071360296897543102359304538830418895022964922932817127968464018379305635432854057573070630113419921973315319443220517086966508615137010099478828159952979422495628609668695787275689074024204129071776262506013832134275216459532326805578800081326457247067925552004679083808325171804294190471095234543314844593735515498561611687531720375513086270527144082258654903390372420592427153990132931474925471861546153762927657876712940250829779986344131629616593715556457825881898069634918668339858072349000603348040203970478471402227466379561258376766341927898945451519913902660058479352370365553191459374984731226070370810553456549426438868909979522197271250782193121769380862563389780113411460795991499877752496780582029869308206995914396788333263810441663220999215755618725068363908561356550581532350273949362401698858276815482475250063509753418941635214470188066470306166409515363135610365457334935862467386196979663727786035346355942291814138768040874203215087484881225903505885722433079495370648041424777360349194259460619010516114237390589289854585937062882601428644442514189614590815281948835463762179465891511408186977556220638324800915431815709893805766919644810193370688244432199429928742123563056276460131839999098063790907860117520675485958521411904796346818486607014788513912520983708413261084571855195100317050079104661765704096455533625598415774558295599257549953955991089021482110308874194065414309570395391600582233887712846893832728358706880716286447092890807503699742559135656609916134079213757605143568276136350706849749240001576221536289221251063380323040377858299838605753855204536875696029060213152593622051992987167502357378603564117096458183557142633970784366016800540576774966011615586374134835058173927784176640558633770465831223929662807081431472001030405874459921662389880182175305421864741420809981854893928831315354005792229401208070479926357944371733255341996169064063822367230515649348738930626363764151027659313434207661097584978267810355995586667559814348460973444537499197603728035186182589630553127380359591939929286570528269737539535271862697375978075069093674122410991781017851721236206868522246461295479246681324116032242673337943864650180661760953787772466178444027197283649054743018504834248913072362367705259274781803583562341184513066777302681804162383901502180140618657412804623606425137429075415790910231936285580296075759065381579712853292448342788755088864260955570251056081414049340953172439024373359855680587283966368322774087116715925062604495195942623770803780341461722871420171808514321876694792837724258145427062215429633146407848971104886151565164512693546703751126209509280934967856282281582775739055158072649746755239257780181454107528027552819908009779500620743731531410675238045334972552020952171133602092497139342989218455726121952889984471736819515994238778430457846144284666397122016677005498808163518341606978500292152111041515160728969062986402684726585479538379311295872215055782024633225613930343758911198701654169092302182567589285937704085738071990171321498892855449934523293261349738592347046301313147103964726967977515027361321942009619507189827006615745405530336090691996500471659243993208943171225601706908497662255232588489878343274886445927268084440522552473902412954673811800899712800459854263991565196443972503404380874584208964516913757488005340119114519774907396185546315754881673645390989648991166399668403373083657169598489857308570291878359132012984403524812007186205145913903779057191761375782802082549279664118237609949747794768906272853826981712764501303826728658998408292055810907739335304328324626865424201056325292231425082473799190811323627714990782923859849561216615296189003241356662566140718879113470054932770880220598018631724788391724210647263407099284998155742915796718124298834431604212430164589357310304146603601689504114520148633440665295766508554233520022572062981924941074976130545238053748325003644025560594217636541151640125354855306089348898010111103004561156178640980025922906340627708445254882157620418503634132363987700358917616803590098159936081042599409459751365912973298597074075628302229863971580305241766463205634960750162493055350016410076622075055618428384270322378758185629812404848640590134344760645410121719689267944503063697095942160784798065322995755660248031454406521488841968727933244958595974224498648977885131797171343538813687977797584120731976741005289950948050870488217296384289784779624701324933908628827491555903986957979776077650488580050435531378327328576048543495361172855906002613877254827685901431648302884661391774471148576767085434827711699736292816534909015103614706964849638030714974852674146983198644842124225112018568347411227227877650786395797848670581530656978844954495852444429611889031429037812698636407626625805229051635997911656834795624688881722005365544894868615552423577755520544233466554808974388519430292670900376753599576208225639966057981959962134288247529800618741227207291364919517728105630742618923793236400026694558288999244154027805637561486376345706096865443281704504385228642936263591747010818529011573659680137171208422038184690810672860361598304068146934377948469811316879442839616891774694022121943510470649764404620566443405946922138451262187941358599237127944555338977799109366122472995854179346662706625776521748643088345053955132833426119132140650730626842875649441929467424925588075436696745660669099971381814305874824766982584194429057278452293248781245491088160707949400578748741218481003584925296213122929855926983990616690728129667758655587185256593353204016380772525680441897544318389334624768902278081843200548613064792049889528066636774881270887237807405367187525782597905392323515997175239228341693477687333504622811029090388225808032708913306994704152128998937543437767162925649007943233259398175894451184262682175720494339736780486697233207308400471839166836955034343608226064624674982529300077648140017374428682418060620563244066552150073845369800680534752166911143595182168981210953079310882598861670479716377461934713689032753272498713259645719641813523714987487218520687335711025544813157814700919115543695778644755501189601072258581102717968430810878093182967429089416481813979546232352672740293592878893436067458292504934154970054429216534383751351072358124643610504009559278275104642636010839048044011385688806442590992739098136534339906320660243223159432735988546251610486230826122591446561527926447761887008722262145683003474231350704567882234253878709638881410808177839636269688523771171728226547940973080320921215849420792868876414276118995700271267263800405949707441279213961788583798518592328819470973823261285862257705748569928219573899512640232879865334896190788429846234141025678329049600659487947352565993580303484978522816918216018390882802144828567682748945456526056247344321797710029004923499007140128701559577377574838756776627603423539227096953888687115965098311203121992019593782307870090779807681610415901361653202204948621763905510806876468304175713211588341244558645517715557406698255665791078956596125697999737256366869214291104379199000178083689671448375859433691777939071413208321139472341174992899291214600111341702581290849665689822588451019854565471215857209109749212605006578491711654863588726206860871415523797644667113804393735668338340348515120890544537825123139657737128485740279740024431781278833170404353233965968233905417659396439305730090753852322575842575187503275077785291691002503463094437345670789012618510268124187237482811219460650461778584307348536247980826842231575028469298348495959136330430284281684255980751424112898684494225624310625135101579047780153513789727682265379381657042934613384617877363447289093299863448971301000812774592324375506181088645117193368679094342401261874136730775966468700680683245706335769656317530648435291228204019126250956184369956395971344996331464468929952135666245178448643949325525958144997127917185369196355898025712411884696586154731441551744437891036435230565823310464558245950867953416643944248545649682772906784107522811242960450214210483701313710595689234717154738926073939934843696439421364230424613217269059009697145556542434181355986143766473796981133418341751599842386479596258427053884099795288699336342364577970335189007195290078958640648321479092135543727338717057572953817628921571389364555919804852092430127418791955807757793144471077980678411542727348339277792753934775928500160843805979080072887476061809734439825092888474630414073111964756060915491184248453594136240462584728390755188858116458683991078923900627889346282478660144466780623457574473756197555653287526180626579257336065291058716734665189338661077285276201953661704077851804333689108156617075673237602638028860237150285656754392007001330638804905379382552799649391275395498517331618891409837457004491341750445834589870100455734070919826894680316050180828598635590006603268842243947847423559620117634036109260987556307209553597758164385731014959802577494646575467634382443242526947448361890674159855465908020357807042146433689512629197617405704893387831221964486047725654371610203498774859816809989176292633451969666817431623516049471419774142073908973121967745136975092105519583357102244021934842964416704692125720124410701069123626948124832598433320393992300653666624930815508366373200044315479583482206303271227181268111738752602142466561580609878724430080472980042065499908375186554648073373856395453168605431451190204334805096155826659092952584953168911881118974421797197546450842167643354199518563865437176468092856020051927569363891733864779052349537275916127913469219261271976386144525306096970297629777402067827482422664439125540713588224811044421541871431032530274788220345687766289655492391419222546018381573886100192418221828008345889444072156466196398979825087857030965476476493773804948593450805947013442073890481240343768051245267410347550106284416314595235245699219865990583720371766182716144621608002257016197115894067446025650966476250767876216894826979688072281396292670236296145701084005387376405983883239003110321149951231064863963931568309554108631884929901555635113626412755554368635480422846506929880359272812320027637902850101815997792702430250846489284223511125320923465367617169812716742234766468886886322764086553379195097296122309890283221405057508182717307714975460448299832143514358657282709633486013185987092046423380766798851786086910825832057468876151102653013102330056019218878555913854868638361830977570272334647525086559760766187450414056958555492916647705785410425883285567783009724438958246928414952041573955767833895547099440498643671224522274258923041792251746824954340204418440140511683891791166699978180685401062567955123400299295594469655133353992362107766510461612058159484290059926859587385141042559246863336593661452053277153662075024251501308581857886280068786387886381044760585715925703841046572965070191474461619079749716122318716217418185154773716306608052233904834947797247665853272219153280818412413952523436647412922476358458492517265895856421269309307358226755275272016876465849281004743298265872616473096091242027113097054106883317520942365123848403947430716288723582186089334433911676503276077618293035098693311212156919738925789055555761917591939991435258286624633679562249884807180811307795311295473211669290847324165640424764097443836281981334823881445108231953078486011471124658839069199096681085585726302898263778084411147694437123297172520836367614435320114936590847315291172969319157145656618009943331621758625267456004274103788448251246230925542021179411999892426872934863999852441871658969226398659282736428376222407012550524274645041182465437177677442875029421507911386539730921630950725561852494091455836958013015027643062443789034119644034585258808175627890153721842817121567879470128827126450917351503617567141144690061399950053164634083199037054995089429916304161380271790184016199928836526689575858943178984474689826546033088301668260635961076299716729589800067933419264521790362728954039656538827660613013455213723468796689896551479211397826049690143853759378108012295419373960736188127955752447231744947786445383986503021701783824289247621658040343960553264406803897015698745667810360545204704514954375637689613586776422178853556468394523646196515249570991351113834044576431657424563074435723692088363797558911124493474076010789959407093541582193690591864110790839853242763524327235335500859865976029271541045632151998638045436886176833241286593092770834140259528473504690595693376215279063275705218377654803778853198129830826491457706621672966120056312604559164976479746197803075148278797799877591609716624362549620917980559206473620076961123947238631665129980164816267391520166925069058414411566758475188136926009230709431268285278520910570822624226665093438315242292147384212230274031577179298636918913020111716598237210041876676593788455330819199028508177575778969285288902225739736695387089431224577591455522393500618397930740058434517688850075851358676336939711814018293959549663534433893681289013778082671289718450473231696810803626342650989650484668997821127294826332744465452723281342846699863285062734071330451514106074890385479241936358695776878557897649292578247173618642091649287567292920617896765095598408068229425351162117795467618866170611433494795423924941237139599880091914199357668322196583258302427537923511716582829623108878671575053201670609407748667001102239634527473866939355304187669925825338365208365829497280560587806914168552190408754107227405396381055596469663330980180204069830827109065469774576857871392493998945647491771220127220363611239715526791088018756677738149708150908725896411458024278393149837555136459373575770576122447480378503275541029849916974812530667372648593782204906143763374732050998194322456190238081229779008327032182163497906471403636229085809575121011838170549450701697703438853026253649881239272420694886347189205649763156716525027207765293705658934064707985860126814761567902274715796869589667795894350486469438485142236067857834794735779938108320485291774463224800510115069195649277792168944652091017838304320444856522068447580740107891037644169600229048906995044430246355249271643368059375171361684911068671750407164626653526735435508641791172607142045367095392214196057901686612698803844227873386055811239732321427918330061872600579874777714048365360298290469830626076575784452922536763026044467176006641838818434686020578634922569315308465950702184817022499735728775790649600035499132052105728304203436947627668667129453021765810993221438217167716362733188296690905218635800189502709869575776767928926844143018058076055285706457093013483264213246954625052295446121505145886938358384946062899536677915926683704907801342094654867092560507355376713208059664285022422291290659602670716571645028310325127846918498828791908416417242900106044598656924920784234049787627437368954658342962227588886365894144798281170233037361797012840011601048745224124208178850541799062553539824793037961128446020976056321679789545700964747756963111068307381144369697116401497407064511135104264626617013277521914172689246531845887577522740950878230917027865643336639808246568878928880991621721865466827604648046289259924492400351921309916384633206602084868065638198283406812044004835571710216977733202419495756406062961485733084637985284661103622550515992178674488209190687527738725624452837829960611908569139786311956942753201654286218284988307880202357402261103860643037522452484495673437609314140375858372873753483043949297184693566211994741678506373550555298558021082542355941362685596751784953364326627967894209039387082043122506101911649033227189023399247710509962598405991844950305352794742573345019198222152853568838745872633519078729038047822330549639997778121163222378115143370195376640531381427141529948137564509196375797806695809436140785038187065494017207219884339772876489633628513572236678369265265065560716907230777614351366958032359486025611457048888107847932144015487323018850822099628133578267095675380565449892220381754497917339103806153134926891316693562015386777023105591330612289050589375993829110382700751991663669879956280627782089013154323323706585312138095681519881726332440032073191393749398618890360662157224032552107782253274561258386412817529858464261489165907959610186832308776422853287401547914195030801299960411292637360030318824588283208707370003153663726638758521390797233791667723287562472567219679243913315187862119973458687383721959462399912964467662717031049428305672571178713588625054060467521371158267300001511786606262099935069698028013806268015666759132884326927846096560273664724996024363163090357985693542849479063914955715206326129749003486439683517028809118794872996091415011045648555448528399101476359856855111460622165541226916881354536742039331737531655688859995010643547820153021441933069249546706731871894654385115328177400658724432703554465148006729867869068225054763391733000568535656734262648585758362093248118685139287658080463447677285424954515751764212865178320933332217133906534437514825581801053832677789671324474362813758976360932669306549672993433016557081183972635460454524112881266612535451986431561997754129575791873243655978305599437654940474946835010332622652412739466136558029810451822244487254315256712003781416427940696923002333803902574218265272323430143192869187830407311270469373383756443262954190796067575197413587249244363171802841191910149843986835596574792464312520523996954402669917073280772898368386000171673049288412697872455240968363652104651310760793207642977201702486723978222853682095960508891496615905017032457554675360346405823100085962062674349031430852272620213189040123097874366714756291826458053936199669777867456563923301626523740541848997684837985796384857512967820798952562917404673789019141720836544266024712364818411746455841960938982922486152911643220629318574510385096873714827936796389373885810542827271980324253445115033190898849130579074128103200674096997528468888336373614017446281823058657728023948575079946896494453145261417305067981442848661225077289722131168920678609767136255280867194971749381923276719825823123915743153780247442831884547132969660048547063075739475043007647728435530232849436143822243247635229249355600137588877206967160004718199782104539464610300965147994076170809978896437710106391202274629166192029945068293404175927013289418034709466860233330167903600648482096022726642061107082493849403624097536589764761058033046048312931185677435666342715969044352248873326142649597393870189185214107987986436056579211485666798709033623000959545655132914083297453570703504908958419170019924662228909979573170178086553819492930823158948579678825542193301164884565404719789848089852346092363757782321494771146910144108976713258568915917631653939259026717787261514481397890805907306803821019014655155118156237813384108882845604978915267543054791700759235949108890952707667158963768461618755003956500771092886824758366302041048840723995616817438165850167615558464659904301319286246677027350619188497671803485917446134293359199675464636610373408731419567549952515310904987892930728636993084450170346326899310673143498022831425058773388392716832487093174523262220752830528938681950791447418271929632199751058007199789819136053003763459816580922923267027898307897989786467079133786696900790608481836602924614682736168563849131181202389363776410417704626406504966542024760755176772122708075073174631605455693529062515493335568039405511247855001906863907557022708008281182331848282347770555726177065105367468230656616343528099264407684541923161668769042810830991407909471371945081809706707958785555215912924322953091098040863119941080095941646780665494076176698321875164841987408132809199309410737450530206482491715284281045973097703608413620357927530821685052768125582972574659749180967213746638306420950353605833241636350317379651543593617229211063387556147778070201540827107202584692088193617125367930303718798276321306749787039905676799014509856527291340100542484314252690683629422998178745997266897226772407330391555611970037701254634613947056116327999299117511044594640984189520651823899844146975097241170209989076692411583299143211082157968249187333794474061044034213205948879218701061114156095590995496149996156496762651034338963963128173619584415626905799148378402483439173172709330771167739911586024242461138986657351732756049157690708036240857285306289115699919085649144571019882036696783662635409108910857782330414431281648061154769990235558692797064584744172855240929307663862283004880689453351004203988051191189618916028289412167384206619052342380369552592497262049506138665616532534115460010465902392945857217154338373975605723921475090968105035987887173648458722119244556749336431495368868394251865962282098665304857074247348221329445524950936148615581498822058615904967155554425850264791886891040089763358010414000731343957349460964887892787136332463703160914447935955810978355093451757482020580971853210798985229963221038929772081536242330289661571690445085913727589650718123103382544458215811318567270602596987897155674231692363507944939287099195987946514364214312283528491527725055336760867507434924653367069406739159231958119245195917906108714595877522419294408222532852714879234447294435425334159991593147429697433997905528043659778909594839615188347690569284999785755346403717514934555241106045891495606387073024579263828011222658278879795781839905640187250859834407814851041408401798827991745413811498286277797571022566735295019523611987366188417884547466856019258595414270076488087342631228526905814096626918013246354049087305653473156599132543738405926988721463479160725477500935535172261079491995074758742651988580057522773544669842752436047143368764545332011316062762144614545966731624305202391206541754774394591240523441490202186580704207543008765946233731821857716704549373814416765635495119462896272273556826368191860297742060425546311528901119315420971717998546587934744816116960530571159124490777798013671530331899223518818237724286211074072258876015298193233551688597283987387704168372479685508731790779042117747431973301595903911682999807243644751890239852988068228990689298761418714089462070831187581231533551656997748921516433447616036960205217935719926496169660668512703582688902040243779747232662217573950485789683032449020600918772701415475043155395420127181983653027883897673428828140829864070362881948087246754812297589101821433371408351421551404795231173973159720889575375033332854225810340949632965431978616499867700309903332566221994751533321333640469894993630879112743074616836193573784194526447456308993405049851721968927461462969093541933214549043893253726733447427776036134189933750602905942299791625057446727045408882219417758733879457996682315890990727412103333807990186900986776980363406355374591214521223999018478106135314961523038504322984229902724757060952990552805325449624387384665755179434619748777447040463285158752808924746785268367572572385695503151427654972240296320310812284854554723826750623728786237928940839548790101554401278543542953018189184830361038543488979726230899549724671532237148688828570989695815544479440670612600106334722228462888399798605550104115634034167781723208479478814116595739535857186932880604765571385922052421372647637726998552071673664157799177907186028914369030101331958920836579074845018848823964264560393862435598909950987824216537359480345008713864383516558161208085126917739551994817967095996629135714146648715596767189805040044836617914734220460206753703572577798506997003833317606662652849278008833091796448596499166712923364384570623743288366631047380472870684682075100534935201440482905675782438695169694072434295090919051050711476378014021161322881619913786178189969428638422597606390610558743499172681308455891382861707344659271667853007792777125918123686785162749039440080677151435251236451820740356130881730745113132318554958592478672704981255545530497634315137680402504440461875822095452853371792362519597289082087962997002180665444114268916263314688750297413329767395796222233556170120892237406252757258885486923795671487126852090027190840106816965910754167312228644846831179658803217667934856335740871382052376746573269795666754121573211622169314296730206403822443790770094222150611579467808386397204590291927021879857461435644574112324798642353550107185970987571383314369570538713576501211754896868423890440060216216538379502894773764386113892957568006600173146461006040073584250461070352454597523531359483753867623378353412793916212523147780033149855821010055013059292251909711999391514416509897934707173271009569589533032441029300890928600670962477252709721496564041824191302914057216548112897473426631710409459102401439403444770501483322013795425652904805229662734995038062841982243470307871995747336420669120192776366534065709081898231310643377300732704616281132996007148511661209063191151890485522939477866985717348099565172212279592774484154911362580305618531050657457684692523757313890200864745742503274401517360799494446941960638650699683166649402826241918604797278344259395088481708819291570054181654717052206676598790462868370000707629818220689662342354071150682243739340540456027019004725336280659836581311564132600410221272338146772065990164265013177296873181634837756825293520258557248827206990528910910340426506265885882040295654735300040254151839768857216473619102821618653761113744368728081217415552006736630688607650923542145780446362143338367459642374748842842583527882430279734114077526262295746688422340429735736227969267554071796668229276205922735331817254663498546839662562308230692563563564490827312155608635097422594354001919404325695076525669594640619184397718159842826857427411336111032138741258256745312653523179716174243910826723227779775517890630682919504281183727647498937098699096072624645334337521808457168347482573230255127653774568531709967034223658323997176520700183759220860303921579247193782724444223987141218019067382792973842391438376532220156980241681816235689056084951895135274410923808417613854290754541901093574201910016172640428233324385724186173270966450560741308440367520656640812734293561131528850833941125373198801285243001758966846892429700918746802297730313969332520139092607763066173698785159426663230445667975737046562113351011051120277611160856236078271316634031822793594734492603306565539806635075790264506214249357123874696668203119043463903791818771449573457403690193907082455067312738244088926389368926077306377367933138250488379621816817200270919081768273061735392463604030835170386796035047113539557132971716209779187663006896731786374818223315414704485835179855610588750493695868201733702879389710242197383504179252685066267201896195231164240373741564739077601987286812417148117483689945881133212089332583541405318843290069265035582372572992945152413680329076497532502341205479448595762155198938483813217135398701296684324653380273900238520347855049144014399220183508500106824376985491212726812936426672189968987263000409899235825596069202057828946561008205773234773424099693262719675490418185535546975306149411713225916135905124819532862416212962331590668643274222157850079829537021094746334895630491422801988254150669963293581606849046764710065246613594733577136594277998656770260409322714241846908593819428281101972559679733386362485212879127864405776424660671663754978425855160030227147322163670498324133149749815426669113187988391081034349292006718457162676405817086645104140361440490835011914859490251356544001924474910750214033754885885744114226509833003986951352849008440467060486732254728729003707653107308174708154779334031037097695482388917944342995607191100758980686183902035182445560716636644232618346449344342948304714421840573292151934550497375405565612995215625221053931637102552840768444088504350706818192864116631194119857315102835576341687473983456231684748488058084762294913615998498256293058739355685504928762865747511341949933689729448712422636771581789802448220835817837972339796790444124894016646944413498783906503520657676175496033405888039722569337091784814581806169848531187312075660906899373657833335031997038002082823752612913015996405839370717126340944550857888457563071825073352074926171014530184744127316056860866297273558256612598065541056099586154540107339822466592159664189656157512816751410615152332660867969553871595833805186763186885676156927776381986204711470310847721964211732922538057665139187884246691551142115659077479674990282078881173536133637596721033083495886223729891918060309027770963968319195066335715026853595876221594990026262868332168312764694183473075368938670870704911719702361908205081394845247921710190301771682189316981312810949153008939461224144457230482508755580115551778353390118400323409950845293807965539477320542648859696210237773913532230453930136545328947149807688196010058434954016505131175230657746494895472629413023751159754913718108194274529582618189075968324284300609176970319948508074995102759837260052562493025303506765153057525314791240034294373372845530264641450486399199706599717968080914502153100190529984373644674937777084438622730940010737757733506947867534364234801323195448654414312462158372155391470770845866895599777512122255557309600864686126700220124509132088524562311689209018650986585518895871537038237632196093937814620798407932110884412828020951066235650688708355492929994278421019064313839065375620865741088325177178215390943728613745763359512592748839460939903228054731008743624217673275446390663161447806461357573575953283797542402709518707121676775977252475897117787826871709340350187925835442224246377822234862175659585343311776318485250155294982039143156708059351444198232420368618666090113597624535045503950194330674767003172380144562234739489019238900364538505452437678435954096493000536283021440851831051008470037719556283851563635175306874231756738621480710102724850290529840956944359104322263101390896736169700916631725463459836483349776670677365540867199018465507462177169191780948354474059124961535791167899181418789746288113104094448790317891065835713734834969208436750085404168197555676713670532298363808147499105361515419998300470790051386651259780891961553232259865391429486867261900721248835129192012405527618365997769135926247291988964648102721706938716057111177517074339773870148473813827709704196440686772339901453057733440463516737818013938721684295132478494619211457529737408088401865889225793184394074339532909433257517051124743235992689177067251136699487023729667231690758569603550863149645574902171570565529261538048244732973557121317133097819258433293378924148830238998673520189403195969033725510713946320466737793010779862055121264783966879604202304594859911627694625926940532563006269578851415059083239596770739277178292046194791945565803939608121265790722296543149328763006226418326347638161316552223348440441437774887644676669346695216020700271682266204318880836900337139333378421198935657661353861286815599867193260787442316595963907502008107194981854713965944020850130910114581354494346956969522749693708663677261050355474062088234836730738104534115877200592953690318517423088024864356300328428655480370777264325539326359485299536372758201454130316270238601113411929245567749934361244739694574302036739683471540944672577638136189582019508592299853804651640291682509259196481188284608667255116298270081381929803942655499864990847961771540938671962459127022559079932251685252742490189119853619346251776902830342533691108449581484638366093123236282484423834297965788470707853229210963088570132415392426616233776621300566249783438177976379188745039238731634018712156882969265028736857159312574317737982710660001669529722199583669691279214520556986482330144826343437835862221370185208724293670833997020060523718535102764931027012052333518896440384094704491044393004126549838023326463971294578829049769992701928745700467494713380062562546383847535938808981848710149624945756732440118765160426119989490477315510893193586529123878960942596532980100145765376894952712057858978242341434762134032429621215236527334330262566504505921426707194069811811552919381438899763459601392426845429215510667037825036026785307076620683644428391390147637752209509729902537552184408622938385207202445864538341871606700576304333470721176586388412599098887181373406117995302758123108748556491862213351103657294208610022207786664292880828487905555193509013445043206295260087275202332320944465490171688903379329853521395556179042273491206390228816982501567031907208201777768244006894847319349550412216258960969705918741271609892503358309474390758442772010187158458911723935508164953710129148887459872997010397610489609232472142733378492618063540208861841502020061764423251414226804916400719541091213990211859530427263344160567358507559036120080958443370073645511672438539294880178772804916294719178487104767311669233466354714726054859733209714425515122586490186399181266128624492064650204016384394169973343336750167436985716835505124452259356824170448418353487505448863853805452389402304869435826135275184351854668952395643247021122900472785276099007524712854427026029678275871906652159015407150894058528959785482207118898127533864071592822807507369113793660917167642169924846940729603461187525298877091039651472004714674094911057708516096707938072841734219015540287175703170640800785496799955755851758791052490562166160072448959799418295635075646958527727053740035600080505709927303258240209345750117646577302882681487140572029739508901070381970082984778754696655922225531183536196358852225249145749293118652484714396295021805600185522589735024210289711265095096195306020697577908274441645728129593634685705827994347486396844337006376426579715362208195949766868223103267055213091736163455362473369838894875342576126170341039763569436154458123973302186495503756833642990695236629312511516856873508278213133906404684836431694180558582497379365713684003009494595359168476985414820292245321302410362264591349537264547574446948949741777620396529407958753046624990844246830931548358861627923049561081357921242382600647155898978848679530417276914265850745614396954275962702785070272221495131442206056717841613504889253179884927328962472137293078427990289619031125000387117408260103241605775444411569376130334313943805913732470924604230217086008808848718090806147694063314519113869402871197016052898392892316646503453544751621604026235045308588185757713591649752684317525218315115921645065237575526149016097352580506133850899168806995391774613409324744779650619541557264243940870442247615131845491119108645529421988415365491542258099622865888171124118350950824781844623933650500961279062467403610949079492346966463610489805924557098753648608344502501621560714903831660917812035644614752125769705090796129181632408246346980447655175634375021703529592631438472861863077254066308587481461930576082196871286033001754061438896227280632774449614408892210337287841653296822843648190096929075591186742398004590425391702360902523806122076085032906279773488295095624185963209935452720541649036106262345872380607696231046239891805185770464592756635869587490008435006029610616064767047941667982965197840648815514231169005931595988458417600911115400291635385713885561994427508598473122077944071900834036529631137554638430327750020928434955611056919449022908770745034960205182164796353551644127220543785813174442087448059376919324376255375720178961749947421753936159120686035980259057972205964159588521364465147195339341055661147861170051794738033714440945333004038027569972417597026195825757105314980876329647694307452583630388282474442439685319800137794535992264520004033149790903766024188774576433132943926713461800806027551863148966674218617490415390669186087836587518636058401102008108168295283704432682101138958191591608152806503683585354383780320213454817372251079493919437891739279378889804759646258964872876743022375089778375056568909528032329541650273143501898863607556764460150740980523378575478708617411024774508367783969769078354535998526613818647377963934014800354765012820683798826736909439568578798822736798683772100915503856838735973575428213939989579668575568561370178192168725781000381381662981418074220374840690438098608164465275767599886703226446489179532652740540679282338437660539410428626769428296491400117000033257989076169611644928554563078558308880315675947576852676578652018708555411883291531664754447649839649375914241685027435739130762480440562932582921268473751813732230856879809422787110636270480879053453515222022757733178849329082698473497817766027637552536596647452520254601738508061522927815400810881257187250121118238860890913448040673625736010710191565142798458268202075639773572262073814404674935332014660139132244588143720245562402925113405406690135152610764258863565769638027600708125694936796248311982469403377791933770663572770805028612830638313520650931054106687374504369562712637015773947791274794681051055463674787306994943563779039797710519896093212863222099211897347257411019545522098292942972476423728653986467051425131066413506232710877302235241444932674009090935788976436657636937881735431455337285093702606243875304762170804829932615775895667790458769764272589630417027039690407976664813427909317817997276740700032887767733811843299982564893227270688079249283442425250252329274219263139619674067932344814076271754450827907393941110716457649181972950994358880772908514149056061183719936240330000221376278908662131042982821405511981459122114629840829323786689255986844751135294759181111709826055048356508373800554857383909287038464594915699185008546816226737423491613936397762658615014901740639730752670612411143604172403457509310418516345849950475692197921529574035826892509438405481537143251623402762647876834991234733464939151100190440616216719719046020053518722770215470974800439244300532770855626542458714845928488158710135218108025701243570633355160310103665281287146620551742934308183051157317390805195677889261548235904594954090570844607469285282397012310033726802440540232757092774124482110061809393583645997851916563298785312731219990165073493288602948939395237803778032802151623321198962355844886511968384113274725174197805535494994685224653347015372884637064204693514039182232565222814997697646592050494974322516164716724030079113167385386267294394173080474377213627135747930336261632174938625614106154754899557451207218704405330569249263385719010827530877765170994043033741289216845250375865438371404406059867963756685188586228758262772546594346967339141722100286721231385858715446269020577146353366566179765326226076894118937458505357544161797021298078934977574473836105941831507418394423854550369456671678487737549605638871072770322157504756997738114375898403043407509634213282778452151555109246248304046758030697150764626023872344804598883038614757092511255798161688833697764054095634704396129131782078186294465677286499747566290405903745342762249914999905347718140265177742975553977084076287434443954344939659099337500547004692118090625381203471668760565123300852022160784929312837397389798277558908653849648729050517212767187933617419401850495705119679321663910412700150739737021086624975261124864738198430459129641587961612324547912430555738988374377859117250352824227468408408729854883609684898175669519381816859023248466247164902010701773753119698141612621093167885948093876270079538950217929149203232065048285873040000042250530580744482642801443310645227605142330037982237923543935354811894904632978618025173841701670179454596325452014717955893184719861383198376380308840513856166276810323616216424015571529632500898628978782970985207772900902017762176065698519201698243280691761947987206618425664336427986653261997009695538280834562338944525253876115608391764018698177382062558737742322436636793271187379301341347468261099606303833083733499152643252370475108780727169014773232969339976967846725465914529958015957243777490847885462171412565100428500625741132383859325028808509768385730884126903574116130417475761797447655577333973678602519615231482264597389905323374708316729124256871110347330952201628307105492556169058178552559261087315806518669629582149086735546882081723984509604275545639112806532221653617079363777070309367034966780412743879414343701302237044557079096680174584267081917566761128028873644871484711371461216918036594840958946879019937561807253379582936241288572053726102461567081897470770834583982133766903882708037792493402255827246559909604742552514109052502328133683055394726099542154413475992124842750652012502934736319937082064905889301437039258082292836868232833937895260810659341678064639010944108025692044081820602498011360801096714031225324403133002286929476414772516768938074523777447084171779418407071546850334171246330086232906448861020500325636754685869603524207330993570758500677524572307771853352008902905616289696715399608029119576579377057676543971946054491185042754653062189336907348777547820329847048087895364322048340552204001701876806379932199416040815809278390713309880971340330294611223326580444225651487718377828893384666403393247968899426062076478837481569180723392138248841671125952602419105501700214732416741751893846922051150936079551389502579638046841978225720286796943046146952385575710430043433480913116690179499914252888889943709625070828645878139241510381582084238939967144082251941530098347579571169182082688080463637473014335486094539273176669606172593282020911100570752743181969686262165194684192424557083653501561309946993998940303781446332862914584231098867647314752370264893178744110898373823686110591769808457729129447583859203788105939898647117933627940000513987838940149075216728808871597838500924762183660005445393973924244053536585768210702454879825196921043562060560748719948673647418694182351067596503140408688944042629258650033335179925228976813213035270070986462639303965795613600813840399433405123185375380176065679342504032559123719500254003461574018418647853833829051396852503768595421375958184202297859704498084763964728308865261025293076103062041562799933852471341979584086919230903558633330956598986940639924489577124867758385197110350523719764871202187040483020974330415191833810762080811795475166133658751035620313318760459224637408595951844720295259677446073398431969920067659268381059608310540199725665918961674930538513501079600077724883262535358734401649477221496692518092683131912084824207707968064728851618047404655593078797417912201648955829330039823284137801555726299356141857189415735036272904568976493425986506892226489251304586115252036775687552671854876906883745686521945865483758928278307330005192769311142584179212445436713198821677520513564672207282714779380584973612836206073809569040790382145131615718577789318745180451095841605584333546254984133275495006626970810373146525069568803063545358090129255740578869501431929525497603373295864547342713826630694611232746643036071311983509981373015410535163592593065702444098127884436583271060119288618062985049902586470431827499116467835663850436615849380300288606320319685984849210063625733544270264945483694843386656377428336318077235913028667608544992754357247810533451618434583421864507081013605560513825941355858725530609271570868931256928343985081090448660380512504890192736056964857977230827781791791221758180653062029983757071730058782988946160566568959163989873383454641813523569887729934782309248617732666791400747661514578555464884449142937250098714989562870413595929287900106807715327239131380181847474314791410789677472658831557315710732282358382272093671266090716048204758863899588195227575176946697252560003292037367944432154442551637641097948455050847143160446004315315166189755435526997523859971709582802473439397201376913882747059585943982068138426281415519279912988012997016961352952692751135608339753020460845715793388687931534217500917842884698083792676926098935152042127757104625336740895296353640127265441199807238061226659074342467697196531551431940903162402751650107902621736319348921595018861175699749458909537840105481521325081157451638591835463925765526334921609426328815115287808798407318691883920921977345616849349367071549709335034087413027736252161856881363321084322088340660060656550754691789001964321881811159741461564047938795368534714787220840059271585476515665312510081529828994075036399627226255293942486850201269613708491961115389404474877439957037079963054588784235011331812917089389465703955915252735752589135434964708347748125963116962293774565669272362294564947589438546717049634136237029573698688292497108944009746520158101352193007960413067782076121577332681647133328948472850622433739817781750755976488088242480464887629700353152229410072556613015639917826548496524547745767280775603348171152977149583542311686452900183333217013816028792280574286078701319113969327720572341034188531896900951502123621130405640301717208126745194389340549539515654384613042736466472596102750061253129804031633338727656938176357109235049974261511351490468110510397408070896945284642727596161561856719090729736261167784449337740806954466233089705479364693739968937689023950703843056783678425011034886564593946085726085610548262351570101978809672638884531534231929064768835415690939872642253410664241791695745660821684382224836149759983585998700410371000584890276386874525318078475326814262482937101880978867860215030249527519993546214046535902570767812137731781127655746662583643933644137735631066212930642307521898834006263626560149652405116870486224316140468069877492807955081258654973304172541303852403088975885753571787715554032489329318377037851478459704833929512440943412750111265504019497186369489635697716189786865298289350089067178962398760040907378516676914675679702409037382808521084484881114166833886203305195514526397876604082873140158815682499473854575065572246268989521494568014275811008654686046258933137392492306130982872486404109621285841564262316945977848690377281028638815940040242607772268664511473694046370781789854116239073371797781771473276505369487768242339325432315141997326186447886992581155228961538990208459227972041190383644376550393045885410785950056662706268795571965312783149126312355866462712119965849474663681569054600179790113433965608523353822955081621030177928625419521267844897082679590253526981097099033054550649849451885562845342781252936769709052844737705202112916856211206195011379040549295393355438749856838599324682248446526681174168059534110717424545630288845922946458213299620534575849785519262013555251647789123250389027745229352564229665335368890534149176985680441280514701209247957517471692131998939354634267698745928274210697370213386696433921202121733714437736910041570745334370145719321799186131195523829117291795469376278726826934853737872753598364564165969072394976868689629498933592161998916194409109348461856302313956535279485403400812005109778178584151737030971956256835464213551209909248785185393865938263489765747992338778436884079492512512037186766109389633504724346060182780787604945058710526863416262669532741991530721930133178951094291676834941689562864620887816047882669858170262881717383894698261448163310284333875931469113032838026951032114513218429599619955099824763317677236675428038618935767619849137866581695667818673503389921067443713940875433897839832203550240624888750168034072462298679929363405846252652377884090611156980449752755264803015648243513339385595991113458701665910678945329073168412101716395069407231665400224338793255647471030954191638286175910155696373780495745576177175372487182723761995149011912641075531096404749139644380691125903514398665203320366408829398280410885523621479326014258058867382228033242563191296234162123990455240896232936730915603748441373831142141198899120743027930828693470394629726633971992846818249781868554217988671735087813451636802922632949204463029081727584512368701781589402812082294314357696849997583907451418466539891787064722444240569957491876456619138705581071564131511484136135706928777078131020856015491994503244420106387956064180399961437362747484179606069084720324776158348637177827194524001056796331790411490944154700911905022088543195896828405238610081912217716594519681941341754492986591375513388798955627631926932388300802674731869324431646413320969114366322458308698401362916587420688341490305000656159440655491958491644560164762953289570536118415290228227856331329037591508688216219012625366689519446826542696869683332984122922230894053143648950076257167456730365550791325794971502614206742253996923162567735270759329027046141049525058988661992993201218293457860834743692691966730802472071942670921659583557362870347407566275082313759707500830207842977025538295948030107045368126647711235035757788429330722764395944746175397370701839524936201770970847831459068878660258634313677138788812137879543656792487498927867285042697051466643183703956456492276974083418971781635005432736636574704291654512042930475303720904189050004028289872616219463773015829396860658043322352875755773204545926382511003188303517428593999076782678123281144976422553853960202181646700084141746075842373879539363166108219351381887876585047684843701498338258197750244320669126918466858687024362713046569492278795918730267201795841984444003062339300681770003784376169393200982205916289661097795341617841333205401023365816710056870768740704701289755842052555096193360996508495446877220469166765305980042348017943080712080718043643256673866424200869528734694798239375816638148689052659930741063473793702635817970505041307086168468788378463782067130832681072734891283675994750262778176256402900106230833475312291901774856365523622710809021129658613079898913150273667204854873505480318253627947600199585521648722107258163509095514881028269020238604543650809655499978819190069203694039577925804778562743722846015214770398482722052494223236369421524480876779839867794079596528225462487389666546333278568576932754267354541310909519255923860799982403237717450123395035688470110429086424176731846920970793305406994966695764279985422006402510507668284809279209540442931998020787898941980285708430290114965520353167069180628690002603636229493484478818326105702420392801322566525678075766759906105851654024962182767651844577818248992209698851751916486016729950723044363384886204323553701788784065949891274799502096672332696683750840241825594732822107030027559914030042185649883325328094314092893738040099730110559219002313255984899936344533996007803556056621401997538788801994038735720133276595272081937717255748109892492901917425335559761939516677097107597288718911843712667849557451062256470191588112294326555320888141642723804622522791073957292880018609916547073562608775150870083044384333245220515751895753371699487252358269468802623928768664884777950656072363246607276722146993396426970837722319985184046354467008452595600023548918055345080958066249084127269567159879763438505894666841944486082371984225761736251760971454690615040095309605817413621918523631241630177089788148659222602355740865203777705689914034794166643945269255327397839029964432644114621673037675347272955174803297759734870595965327124673521611486389869849861405752421218894620034166764929373248092652109729600053026950983400996951028178135150428881006727137842275233911533684989982191473970228039553540862457726271444765473569692297066378586794114836633004474545416279955100260070433979099980270210721981447093220070982038429576558625985652311549122734504405544602779066691060278457161051388013886459607678604052060839904725399229059974909116638707451122440014162679957323773033760955322129328990448009691472423257674334121280023812526550609594281981468528085924972880238893010402754426389372076983482810310722920533596451339855721124958034774394815983836699758391854967625547435966037997354176178688574679982245147721797685367532118547756239930975363509841836051245968124668302714169505052564701804711824072707604743510373663764317342710992648854036966790507591611298957992851106669754278551358462641567340210819301531221870907741518654463932808624787314956443683590549317724522366874938391608522961631812960240082189981488633769829406929248701719134432919963875530658778901598013842525531437055174733200652666099889708134631931440919686586352164187893912656699367958588776391716714211688927593913913579532711039934526420620977492244361682201982718685716515662259104190282723896251018925363687136384937015355946245845551159542660056322585033797002753112939627418613354169561291351344615543634857583578168159659177481554432127821452757534747046700623205770843307000183000430075328305272995708244982174769933379452046746720699386205681367145684344152723844349478545491248572208837404709720362427946504584519205358442004696630050913109188066355777875218916041557082385966117099258398618901749380106982995588853471879311182658463773101900195917729843917255406134153941611226402727988742392790385922604102207376036090626776205919642552408977427270871808370868345504570095732263707389349969302240902211322564450811784550845999372559942443590104301258419995006122708336660856995313594418462065863953488308068625632601046282737117280678045699445218086850479818935502075177409176140534333269487681953889438491029960925660357915413940471735212593467774625153640924841770934504413361363206963249933257215911953341155660759667265930042978812073972531690933936118837749453497113134407719263928997622276873180840154674203386856251878008563391054679081107429896741914885896250849570838320908518455526668745510381983175385055954196033848619398414546807678957044051901574952443462404339806063560530812505610969361700616152252698794382362448329326179692696615017878823176968505980441137455115445765838644662439823238768031407651477608377754660671293632373420575978136271666638877393161404493443267385744156269766427829714280764410732298302205208240481381495631411347173233161343222502248123010355415552838335674020027122337854500789877105104721334573682763689477118119220464248767648192878964114668613609679441519762917399577292026968679135961790829424861516341394847473976742961644577710217578982329538061044250320781256842838583778420716250803201864510834148423149229437928464991330724990479769466383482846083814079212223826182039549940778542504318270479437376388831536787167022855818918974850398852165164979130031189859019658919476120853187880962964930648089217347389284132238993233445601784287054514483836655015477820558984256022949599192193285439044618727630199486398473833839648724000952707174831598786106120957992903403354119746546438233332131923754587553636661326784275697071756956936962368206435801134155854982443496715872030106667623061588566923930976549280623522384853013422826146751112394720868860911157928093048781384884724064868747148570783173926066003403869849236606475595078812079373798302209908125132726511297408632070537175922693045436312663286181996707592626752920013370640184272029344285128761471179554819824128906670695037471326925004218632734358107974346634178268096967530906050836760334219581484038651723217548929301271112380076604288535049079699722424187256470528542327732971232758148455361741177439112327095076041846835646467945088232987288397958064273185995561112858469883946020340386846867296799414620136853653159151817438797706131809397689755424828340368863814214022121936527752762515808032103598105478815671146670486481974320995348552025754859580795613556998447720069778727982942119545724006415915430895069314244337140245330519804776363148198176570057045130011482684761916343803995237805657143846119382469090167990183553923681544379219083426418450172256396850679360416452275028426384964066394136076085118010823143784233901443450326052460373619976213314897553757041345223364560491803301948150623582558901940549739011042442160247459100239650797004223007493698991224712044395520625184005404299623699255948768687475585546148994295912473200010096870032252807852401775401010827077217693822501679905797347208295140157913605823167623311682104108496958810926147497874430097806890361957475110295371588499439095498652325733888576981851922634546341729659432481896302851688510415413028951611277436082970905439178326720165525916349891323847005376280705172507970767391378136263812196526634456160002741888901347549407719365825522727897854083693759563364770622059677895041951308791434512899307740543659072382025486917403771699776549681792719589876398882638110108786130411060907681114074351048544624409491645926178536373387623235379781837374220438740818721588987866402938081553022440850398565536034931916187573665663544068869114251887838489135561604449518417645161737040110506679009157209964775896941131757811794276857242988946154856009572750831885971682168509620399583252727727639168591112617980520041460954985909806560744421603664507816381587212743968185051909754246291445123863488557791377364262041563754222377591338459930278205961156679674542004555477257588908866235449225439358860306929608265832599650096754569180976155717051947699399705846196731940167736587644998019294620811212396873289880848589159181404702242809440017618855900820677068953066454141472769584368946802771101919994724399376954061540345187313143701085211243085718677515556538780638616311085127375173155497355314815403201576841964068122887822389474426517364712659213799639071839472417176177014453381358284156948628820416793277454957954889968732598052713496220662062503028869909337837159370162175447018368810342548227030314102349505203794142505771653314444194675295321533102724610254704842921775593334938008342921489068148713049050680591549416654215708002866425001405276118907031585512610913300865722103513728041605321753612485533814453304292133255773515492252349711329344016016135559717267858971083027531700669348003533302168717008405373884123624228908067166767875628909510647296026341496482928366941021534269516870466703452425073600964276038504874106333656026032035047647896466433989301255946980817637475809086484701128839634358031788123747600303951052936752780603207511312477760259725087562470494291650316036091728452963458030000740661217973751013367861503287943131414008841822931481185234505863050733460032367192823997806074155487203766030986772278892467544448404286971391972914886013510190764896601313099882145250594013881179048608480215512784167304140968681965480151627899869549922659213916480605823668061652541544229185935862782166762097336760134871825704279786549515957586696927245176711146451813445216310576297840325338755498104827299159023724014912988917172882465230366218778378313186959760383573804902048724347033327337515883282532545410357304199349966844087445070976741048389410108816234660642789946979622004474555331472175643929125082184999981946152166980694008175181535512373949744596942191053963156588344448447877523742043934969393100526191528973124957683593061090841588632029706866468644888786063516224195902871174088563994487358001402196307472810335168591987327310856777299304071570305323239896025756433332944301362858730045333290835305186945961704083477681123079073693424729886557874094361775549547408719851121184327642462773674614687381802934613938153508994447992211389615606980839361043857315510310808198517355539652560259051674298956216554977683950509508739475836477393910883601301748566710585386703781108763080797650294039679102328505073131145436574325728082095293540412002746205571279642920436853050632094502206608517208111043790566667096619888673606523088837570182053688832472490780418509933584082735912842230789625117046244489031559791688879065380519360904558122547566241539205928196640170517927905035966347705399029595616789884870585720176278362420389208402256879669391852693785872153673550523113530702130508376429678011090074012268480940515855555393345593572185229969792319439118945450962375927172687463213897074853080056586940351759831517693258237995130828202725376300845324309370263150700574608489497745273198625347800367988027012418312925559326571133888147009848618768092431016779058486182410758118576752493618524016737148317216720952980119044991885873384242635353007454846044221001469831525004500672192016032842937859545107088336555767442556111901529579243723000112624864088801338017391127074268628514209736768201801406428197054086743441657563949973832362399988869456863344012931394484637849607748599166893447280326753466160545818195572825472641291359418990363647124522956935775386489803346125746589965736146428673970736164461125084479753606005716524935478578128899630220706109580487606592813495258274009696536786366045594106789906961655535588337643116173187570481572544023966882477882930105786245539393771536894683859660593003696107788906646926219289647850174680679940871589649937069724466606127184276398168863898145189333050985158749667348966104449628789593122734969187124032116171734069012714220593385385885551006434255916384482645257127012845368286809724530287830250331366478689761142500655434898296168987522210002956811826975388121359001714633714979256110133314837830381322556081206106893226772646859530729103152285591438256545635982830197317271639800993739380060589824651204569037970176119706251960353520588170298477144564107986909236122905467785627876289030064242689477873461650697974446730145672507356487828887097510872446498149592963401301170838950063228609538179541978387060517134127083374748483251210875144580338652513576759369108628271357169220401521773662263069812501184220745971919805257113151516417702001389143165443766432442735587224250478624976525026875200869227873454546934851289217290054880735672264700637887631760475513522964565633097648744777703290384136220049476043973673477027953698846945726360621618297771991876590666870063761675573666755868174716111840444329401289417154674254484303805271919708936162082655660312773450928635154881389680546695829144994819556332643671124566028427643242608955018575076402835374019370570326580467388907387215538821184176565019252128131818042188052432094449785305266185577814100582519907419011575087547890575877136267116804522335924172252850577577994964834416250399159550681630722857526445955526612632599655182874270766116130104114858156282638877549334557475070122214684040045778113566883585815861805283140385487285994284930150328992602631414345706643319874796614118299136927421400833681769346641567708647853635572246042959390699825741117730912669930555323792905877494973968973768986718759885744626421263609203436646359201948430692241371496084453253347906311477630102155516693502937690350616778476631066120020670421038478665958111043783589195403119138471201464922212960291490720220560817531689750547504290221457034105948042608772006019241886691466751828208309418029413806444678049597506345502880794276835827878775324303025375032931463102506564242552305769770435601754632220450350276029007989856186297655818041561160996523735384183512280243537694150756158031085978360973241695397784318633135152722870655994927499962448570168939786388809177660686970824289301044444837013470181360546875331349648306066111472788090666392068849068996034919187067942141717053112224498469799969866863784958934303990022916776794390415198271130945687307953226656293269057210978664557447914637477350920342618287804309169731167133255291699693039129078005576364419665020093149105168998372358113376599470931279159244490125675332570376284211952307897798731551398546106058032330239088046339356709691580196415406141019723580779674250995976532264068419330472750919239443870381138398574434186132224374034984114085876404910195984376419479523242964572804992505021984694929114716815098395557011850399487036518923126101523335221717095419935748703032802014071752173119318440526603459875759549260088399216055168969099581905516127861455421085818181567869802245603736284565600304964708322534019898331634489607949939302822495622250113489119285161184628594377588759777957431273654973596785653436745051860046565122596008978196372161121909594363314274006278360586075773833382820425144739340151780288157754588687447540371860519512354134671477060076736299395527327802050733643806111526734118561650766599192578057714379549303437570732436699864636980764104189236319006859121558073706832643538830900994229166582258065726934657237756976123968198991354351585956320518588635196933979809419822820982272383682182653456043244429365249258778486907139066316442897349022919252163846911351708504358335048733032812287418334434549765472805006659255737784087571113183895644279609896063688430884472981552574293229452486181766436092990596488528425351691993494706360326206037043931833303795820439681337691897820590469796436303426517078671951297088254964174217974684803279164982485090135580718851128384785336962413579090782978449566981227928811301180224597537582903185587085515026455965335393605752594393522250695659086544980812908751245021882856639354025699137193269078134474541428283187121409227979518821511147366829279012890448172939638782159605112574167616979208728137791039385041218498449032920668143586282879413557563768733957496937565114613678855067833155803906369437143999063840623853988557677385435135377360365567372666416214415661203954537268792504998225214084569574292577526448743825063343482925829330772077282630296514367871571238803865135136032794442013773169320165228928695644134143238884863214182100932849562335583149403477961892580416794814402728233494484700047383148140881934938285954456699124059209564530893945772266367298778009824763573993322689519361468631714213790373036369304393106629531474927636375914121506673444038712179053954010567622198800558483952410901388913725843622911669538965533718044631207590280904714610697446263427952159463828889932731948592476715921942411229511894357651806987436004077682328659057858217630821637310550136528874095820009224014009439970825522387152968762592489523007478957287037411858559791282480005138975498334078765451784968585491703840120657935955353765007112764106019851078095256615746303871972482833239481093916896520732280094699900837583168171345277647036078836520089568383400415477438110368536413104535773658901360176878582839839088993566993551714520846758977833976337021345136946528463322039163308770513995377952369414960957615684889383732748085910924127511929119122737062279571181398969248479034350595298833982372718036384307512879114832832614487741421012612561055912588056155083456829949230817261451722102030720444679921182253143929898941334978073250039796203803107852414723201897028801333960643627002860114115649148096461522104366542750559170254073700711160253914670821846170525223930907931989540788120134898781444157582235198116063543118910330869822415060294691541934265087601216227881922123824581451497867024231831577240806606641638596134025599743414182836666228478362997456303412297900017050684985370692365056549149692773498225789257586798712161698698139462614292488975096630787646607502469564296281277198619853581693469242638565827327282245927049131959271857179074556714729308297281219816231996478683495135961597943736189783335683503420896334646276168910170353248313373201738629094831956566218783525120963512788059957832428611878771121082080093692075269325710736921130104105896724717224719428757194246358455659174439764216642678623748475071860693724467885807352686086723296596102825899611329243049245410451536613701438530273553550903905509489998433333638914322706480882902692167999441989916443739676226279660512947056343658127172270183132173278044439828620464654030178308913394227995252411345099694634014600282568227939241017873971782078136529169760506061222425035995181705639104922875481594989901539199473952366391652785551872802949496407625964308491559307378021694385211525241996103542208111086239446231811789284616346799607341777000634914155909552593163594357083877477975003307674863528366082915523348367464000079945218283215811400594522709631036767257825719830997535717865582939484482069114106929364496294324929560802160997079603439234224684301866553562698684865059606665377194363659285632970569311252915794596912625770635980867378476470118905021696354348712153056714233775211316906336256748299526638959893167330167095547008764458285609096427120962206454376239594409886598510702714394328582933659481642762570524981344155282279887298378127204066413437903782834625626358602478784845250595072434304154804939618721794288329536179899051280418448285463112707947415416684712865627627998828739316837728803523772346433114458607974605550032021685405018400720015472266816583159594207129462512828518855748680015080354136220470798536407302868595690204028575121587598909014325701127784660579134072360644482375198155580567600874059122315332802863427213858743849659733732401874462000502007292032149864616464993296227660801128844892119129562383308459477855565435563959147474768140047474306696812218320773325297971360462276740999616636096007629506738655847688119474069591047568009443209379556064841754345160446019741422401500347662562222473735940342067070977160910073878052786146131857471506557496308284533303976193540017159308284352455809763558211977445381119289906415080443070645907182836683007657455596512932075134845428672030866146179642759396464694460443594639291741653543643536205496637585890602310249639564710557753289451743132515223858954109235056737278144132707341601193288634259439877887165232766806214872835377983192104231068273214391357008582948011875205973645193547148808044220616208895713035076368692365219144314148627682233555914379741135496779459404945204313593109605819188783622198931284459949213604697007722643355492979738266729346214558581998215868819325217030307211501246938597117761511454154400169746773985727874073073789788157804527056348682232873645032819307451539916316940728927467573497920190162012438990660081498246801279517952989373007667071057755431461379786985169671174481349293632481611633615437625396716095569965702403620101677484318710844516770055942776006105413774685374007176128707519717661448990805259265293150660442917924174375037692201522502444246462477111007228400978984409173801631716958253373568708685364841964958226804933555796775655409315691112468109955031993162002601279395207304908816470498093723281070403645691441912626863244581420013012586674422473006977924858788417538364989852967186855084541632251770486277692759082278555479301973501539347843262148548472570506249149795143351333184620995151971608823358847672362714843918620379448129297635737900925215268177289203337320769955304138098324993215977826399810640157550778042207707799015434868090836174992885019509106824964192488810634409179263539787346746648368070209993642153167145674335585478760819492653915146523455590695508636312457218829565539975081080569325593262286732777547748514738300094974388010690934670907683285233977721604684917090794386394666890361462329093464764135316861011995021578439675439047303605032852049241463309819263180673158124058088553531209533833271429703962848681153662055290091023131599813737486753982517117534820987369322944134352174228102109278582101430593453242515826268429756823568918393714131136662061517207255110258551001291651904097383991687788017918551734691936459609257941415495953332574977528403729200982089930265400867960385895932860088835625605731116710677286133426613493662891611454698831953897410174520933749201802917596088353883093252872365067561501839386951730798350167372721308813415735429524813277402059877579605039654799392744233351261111539016788355410947551337214072943955690959937409535127342926033520331175143332313637898785972556462090991425081149710819339866077427524343782192574168007950081657564912445473200984715754048353879201263745479102910818910339268466516251248844102861161278442929185648042252702612450738182888070425347800389076461082510357361816567829354967795306986230779006345225192223425226854050059954287120680385896251920241627110102388460536474362920180218873643540654021755279839573045210746614660415500101710451801162702180372099035345513894277428833210984392822476175939990084697389740330216373980098383938200400986575763005208502805669102656741448053073311051292094728182316647448718830282622906938852233029361956421444476722934528463590953085227495217730838857718917592309327855592671408988226239845119454157270979930869933624734765080623388829108806020793615897448304030600812701713334757853030946084578054133425288317485802380045128397608773745782798947474430961609899100342589920631546766590693804769414399865166739011691269068256030201615485209576164054410292510845009186367454053262064971453934517208965008655649510483295769648734264083313538156753203917469113154272673700448155159263301780899894507398114532633542188321437235966790651818357399384743586589796594504786485699987841358801166661166013489670875737625427015610755294094855840086811538916060810628656034493847238584038322471053777960209413443583873869525847558215199351460299149836723057542539154951734386629964461448842803023819899852771205246585935717016695697186120870433552715047948704721814449021402747529857821129673673914095628910874020288265164337017759149495283612121572787755901176451165247839973884075888558924057267395425196979301752569669999176671067604658190871149115169235483586741902445587364141028612257706669671503705819603482822136188099515310577409544082154135981216911119382614721154437801990855198813072445348177019473274435043628597552789662088020171714376808647805735471559085868248472825550247955546970715007880504145558161875641150247171078156205083219948211254513192556610068166240887648183438726649604509493066687990933705015694420134210263649431016249725839674747315816692022268272323525153924011365543739792711312856004317571509037856863883967900018939438047124314571353254258298561489273387513514236617421615207604289056838189460453639167949581500072807027514273616164738242725056647750362061205166240657213819163602171888670346423374750000922664529460664586425182130004721996401820936802306467788492494112622294859837978183758369547576896166325696872641928818740695373788060513212364819438594656917136717403595076129182126797658278953450811736880675042838792082213413241961149575933967531087580077547812152769206993260569265668092523769387089374316901105414723478473479709747829908143651479493471903841540277655250726165468588445122208267928698029494659968709844426803058686206452952774952476067082451884000364854735810287279339363377410632197896566166992562122310744402617913409900856496774315462731028525633474896831102465601700723529693319450936151007891629422149793338879183270280465064533666645869420561507849464292447730024537782138520034666750918087704169175156576695079122528940540021597556548227085373465210388012564438618628574361252877500964446847398824171563821924751978306984519730018053511115008795516648727821481609165489306116748147456293406053758543500395860496846682369150710331772358094573884187599711232252304077428201485932551260895379944220065887189094166371443971502688112304135786708476592270231269371320735721120887948153332326489210946175733241898282475723485422550128505636197279967097630282670484510062445575525014644803207542256670386969610590525813708810193399714489740263027299257400712895898056585938914704924558292437533495146656919814025595602415972263301800329136816183753959845303482716700012736132938174296927503855533065017554990943409134487750635102387591876684608728490892617884616852861472905206665243094351598340553305197884935524505889862103384059000485222775422755762686127348348176842811130090290049132494374278613280043002424886884377078729872543688690125386018128070627283834597822657157559823247101896258764519625258567091686754094436154944137131939540125559222757421614429348945630621469910268502532999302463139784251968877231284405511684880187938332331586880139876874360218523537976756768361464239133301779490173083222146996381521060824381650905485298614833258219802137861888783310908778411203993981368484980846590341945548418256575401219535077543650960397570860468550746556868102744503015468289709532663854977252552201269694674673824180494921656124571194762161049455288579699366465246452838618521482194059469463887704776435927842591816364919523603813446491000000730935572475386890166181679251029028153410632111295508016646119554614638186647632537303069942191238757447901857843812750986253355911369632923983581158617137824932960635647594937906394308011072309691335944213654356304774303996547419294155062227033638778030511042124320736657424668196165632721554214794391853838106057505466262414086940428972904532274889548412513617986821303421819482398048725240180276077312639891845479223680004985964499510488398034772542654670178754140202458546967778359879105495940078893984389096448757272905537923321791473698050193387819419717181306755018101010021831418134340571626137888131181221029287994745649803291778591033341243962458131849636749516685639129946806513106000450518136917989458752219705903683433900764158775535112845751298067684361306932879452069365642497822071152408409673101475746486477416722542536347166557863128606126329004912146698550883892907498246596582721227138842870540219162916816615375972573921443103696924597322447015151567494275893533927489070816871532706542879101831169435855708643514050563132201194446822857637276433585104095964405781295028251855229155627332445610728940350894807783633027222452697070478231096635513908038604482151687920784141537125855416024862922582918762627562577930982645998216293079551221564857396472775967051166063252990329215197611394399329913468952736053562467324747499680803072967718596741527326839924618014558734237184787662702044850737751157415914658530332737250682211959059500426750883267125178308731909017526655944586848498879153210998417221595212797083948747056901881337835184126566793740442230917069350640519962263044364530389110117522042354914804820905661163863669277614307424256945543894236988577021022062059273442805829419871624743945871274561977125371953077427807675222534520020963052644819976146899910568682439506005108694857456256130456321321344538739132603470369801959104225499112752978894585356645740032805497753308829382510608577949949577138332503905421187368661452361930785654476227054858001058627899134605536471330047890255520990776850159366660515189377997739826018974104140815265918192048167973115176959461316030719140522056145121082470956560991864528740412750977824749494462890353002728463826476371255644762462948290349442311376097788168487725918231300884118376663740998557944935773781430972282321602325508669805270605620943057721405462347923307834689011000803624514618558407699116269822293579867353674879585432351572948004138776481491572383383619941583255278056759493698095402343366536077828674501326139811356712148526912437058011568165827478605303200435978290388892780317881617191991693687461746254994748923079557306915480296390245488853801918274677149010287955235845649506758174167875825944930013236671977812204608237938576113972084528805285409508665603289766199467202759092408974616205955421083657534440410643882762901618059064348066796406894500945886655259048567432185419515946034296341323904794713123207670106063135507458699095553767925962374560228862728431681385941240888209737035701716133284027095733886197008418515750562910066861367705036989324518057150072241712562994284139559530568445671998664279769973625083890637247286880840856085138012169388633007248264383029745027749432533459994739924261907762650105757757266321640417502447430487029970777537522788632588443776172512539541153203135195986118699863043176268029469157582710151244848364524616287838212919770679562305478661684354555818410949297350822032581632086541634794379975723938356571597206201969952391636937567851738537418564794443335188761560448671219862751469642717037695301929197202694322641382472991438075767380676631760842813797354410933636663235209131639441642807675771074316223244461244127459691962038282509674723903514393047639510421149943697523198464579784800809630598392381604621883609725730735781172582556037949533942093149497739064236742068392936134241290283824703705387313556945028784490323302302572854827507088152013741003119082712046635898953479157431966180091031207518951701463916643817924602778830901211193885298207152563596378488324735193623697975819646055886865301019948778819409427169097142369945906264461023779896855470126062756197066506016297490523728743571438064642693991024752236240761322090352668066177639484738052199829896398556606124586471357377416232835297187864411344886481415942556090546567272997603676085798871155044466685014067705911439398061717000976317444546250791493211275871576991021327955974545653073194635375615848212612055095333560325525327316856143813093015512959181422740412645115669697704268087128389631105635676429428719298772152273402750951241251807499374217599391945767247279501505324691489085117214169735745207422335630377749240921438311550961277967657201236698940357732691374576028341493907114327088981873775127037080278496892724155848681702992860880640745560183251031661019626829790548243772983966652134928839020973284360434644892552733451974155877051799213195606421713873705227475495474641824599658830175578071002077981119702384489591680882535107735870263904023982371895173281553074712442656036733749177618904041411085737531785292452222007304434142689069947608260833285074507103942993727206822025852323398696965450471641853368631769751134790155258316868601548092414669918541501379244160841993780157427526869932839260237973420548042704422926408483066834862869883120534779052353755366633555070318103736741849134628224949656758412354057503981155426475571270074815691202257683139348779804383160281269705078033079384816106593242073322768762540406391263696625815826609487056973668352725933479832766016530167190924707643512046884083415944136800160513714369838231160818915501138307812002860194681341379288021878648605574379050255760207507837552889698212491820713113387038259539331215044702833489634831490504807898348287643365280208700627144055255014873057819684398964458711451586360428592735536629205813430219763135572664596236059680357090051446040059204225159753942478676858108688425070620382110328260829080075096027562532333304817163309554573811042752024375001926337916405566423864297060554609821708395937485654252889740951953561834026103430825978226531338901783085839526810043084549466587733005121185575797019320011145166416883110945870400485082491474185291847067734454371888089547411220930594426767219325428102285958170935823206196825446989643609165560501617131374973568580949041565122618977511994934976346097478394872759366701347399418100004302921200417684331007429280736187624225060159585737600002905357197276166502989725973065161842517662089343996459855558178156189409622675792299029992256147198839868300218085713824967538374752144664922000829055470773236608814209030584749099873553173498238629142769452050700297198712007741733153743464241589868216571678218270363563612644832795183826108349388122048273635491653107858299171340959581017440535020770953704959444223196264716184061619097032048902569295400716771748359158550595691562872705731650306706543412938041935467229262634902734312135607658125802065788345401206726408353808089007458360016848420896097860617725264805624835853903380859804458976525652531291412464975479505258814822007063649777323189087237325681042298822134029372439337364576394052604407566357337328371686865872390580616862195519010986462494240020295215156750896319269737665787193367301379836389385525926089369128005363731144363275547061007832240851619018541960767574203369586907733964900009245857170929010848935996693573635324847270337136077416900039089186708416601145246989746874408775650539735123236097251992908740499105958029731703292897029339676033743016917293831613218439179014132576129799506271845503428472189530681996269557110763579522733138823270402158557125885252791740342173023423521779697869592235178234338031995818030456381617493267931835481186566681120775574754207387792732915274888623314385243245739378492576096862429130324589051680806985097553671639300983398622775270087764758066797967030607180265853156484885567406369901705194515396849803576345406797576083098748640143126331690428067678402450743791703810666383035940103999035376290927926283856923246586043724650921655271013155716316528281538656969440218455962794039824273006910038292321767578221128833785266226267320716469960465519468744951563288622332622705893083792521152537142687849097987565982001489490476875440184007788408702933394990934294241119574344941921244946082451830747387727148757692909192409035274536673015444811980206647808342196291770973791308157984684161174623422541398758099196004879989644386366175579429014367031363352769831767592896134993280409623538263625852467232686931485438656363792202325591742187004142166360604386515153900477746726884069971923050050523451206900869448869843798074516783005657253170435963869284367582591533909912166554703808813798344254164063775054489461202231150966723882649365231197019853716711206048038370606607930615578707042935263716587453060519068175606894322879526826791825890897363829114046095228755420104797416030560299151307899248548014800807932540260638148888941433573855985744430409832852800115165696407220439793584381475822690810362841254639489000435936185428967230734746188158802941839858348692191818920387071589499662874996164697730286010702526669240653581016499546825335162632839595589920070113990201557218897179067196443137156192818818835289169582372417897667754757368855192238311396703937610236438610135579752733752902582103079631764719249690415667509997482277870533120556884243797853396660960122972039172643767427398703408915902052842914974680028195814404768151306031849199573673283619994971192214471873377724964963496794286282000845595506071285802827771396489828016197427384215579815642637893090381825360256018411609186791725660563931043700448165763191503648784715126077922922573737159607312148674434839742227591412670887704972621489605393572548588915836347334505545945188449191532872473720078359878281427971367277251347499253797362633473163979109463200500945113019980337200568918051743407829752267223769874000384676559865019432733706723691394234586511397381830750252749954299656931020670887740864441021543046808946853046262767330093399518733108665882388582866950400973561718680645656092637963589181176695951377096314660813345203351239922982419182593656728754126495445228694565051856189429053006922159087365698427462211509345236651378842527136733076997310366080100171000915599273783075010838561725167195768739494238022378097674916845192189825483039002366404327927568001706817854482081813005431111427561643001013281096696244238826688010169632639155367910211691080330096456319859576710794765224404343904246505185049947848077817660169500845790488199226771252258511546379621326538506951254706410471788472372875601977238846381625118578297655488494333349571764246125769100180113842949560228893160400120458880538406744551904785784427511866085584091596321418282637350032495298475780151777905072483311611912747540237657277238920393732015657237908670043552556322650132847759438573654579541359640211556157083366383596432776619229029173586010601585800693739568129628657617826648389780503632987290686787655801892952830112593088291722451582245440752454167045364344468085784635341942778403649612453729388230956096030259354188900051985049054430324362517159801749893999073336151340054061124697843136489846663755799433765149584130431211038154530205946842229012643610975791461508676089378524655347076712430719091933373305769844320908654592954227501043233864257989846032465302084732464812123760985930292414164302795409028679122037750554895415075039923835660864523836134190219209275804361100473590416073266949867889341795355858165607657176335288882425270049597870417249423117418415660783511556134883446501654861446945720116417429393674847031540821795482584617266053120606743292100912747969934126932975276741405332631892566213271408023896930256974046724415367235020009244372767419664102606955667541160339700914045403527313023422096619147388730755287059060049894198897451708652681117347175909220067534932897906216968495452999436223165743387918341389954907860309318535179064772739766978775938407976136242019794955351793315144908060490089940377770267245744500937306846118946792912424233632331920107214232924251712038423942751124992552367098065411656315862492970782699705527408346020110641249515365487218490389554853650755329178095363213452309595956966819666005310970722896665184094761375359734830848286614671794744750108508465189363449921219930256772106219906243952281293144351479221353564070147163135140905474003321421082625097770158550884732724117457318355671433079286758138610701848950568211392788896381563245652058124092970270527550311312437669009672272197248690800280222133513641549345294667618441042363229044669941518313861651758844170833865924726174622687556775555020470191241950333330671974731981503283994774875043487183507283418946338103415517368982399216524281241260230081792230129581763760648571740528391698019941302650950769291527589286607863170889056906766453741242427484456035481955981293245001850007016479166228470044749138954567833182710526827877044140502863429696826206344117402106336044508690908270345210213226048740634253589908837044140773371816464613709953161126190403090858334404747781012105281492443103443081614733128596281094635913449017039795681402932313911149982523197482940333166731435673906662866268130019503744958684785884203276214171155674511701746420659600018129128266728638187217108613565717218314354610425857772689375804126831751063610144363744630927647445804982122616097828288120219713600027061650321017406942934940944999751549134423852483362050883499333558174530057328962053298876039819735749381652817320521120152835913068534608853900941324983925199357428635013921769058492254970628386339184703099564678449702202414847359729312776966248362346148669611823208906954337851552796299824464043771793595228224053455356934929392491009277172345688743762002035899878747531315348924702117697955147642124747597428705025538322321180845714471626340399756786669400955824432556120928468317900622658804317827782178871543636054873938334116449815896781656049932954166959251509950114846913713242332960358542502197829592359890816839487299607109547104977890620832422861745001070362618881144313733133333274660933615630514755247584947260511291622086128580884876528439175834954244015348740539656593860106368122235472485423322376839037400529202645441072590823007305521103931732385323310257115560916059104059299668359810115042308703554541810258166834065311765758743540428429545604459298191490142094737823518152039119130104318505287965312477207602095733960736192982972012413461152876110673901859831518797109856249729801556851783124405743267530791032157612745714921211654433391451382733371020937491329464563111553369984277685698242160982985020702353489002794987677372391128127078815442398893264932448563035871872002489828013822496323044045444314693190308953047595867707832192926688086580938243077527825849004715526086295864453861051141004618368918494515170490908964636417750128462072741453831939496116591861553638512035327756229845378217320092790590520037371278024683235624665284844539304120572888510416876017791770669439072517051318835421013897663123458350801886751756154687818866214478068124708920358633937080425961480521399699429947468750681400110384194180415215382142353800133683866238924484756734334366301649846029189013676195885391522716154139087302388776400705934011542390774902201139566505165459135211855261845445708292653812793394425214573309787240245491878313802309902549985222165155022739659470341194013125062319195895672503739291234520536811473607248158284631169306702581291779712382654470071986466062517013365431547945980831709242802594983385407136353767510702371694126553928168344581587941552337990538106137868562297329492884057283866428790326311527530938438816426318213832151679335402781378459402310526809133327692502841111351135109379762727919844104600285233285297368968881276422761141102853103560286073075632752005339311214393067596404284692466638245936767042956863063566603974336214233920352219318003899820369917338420732702105417946066422681839313869337782236425258904545428414578511108206925557181587152025623056011047166151550366122008177879321389303511610093657201163344789254157980024726587062338604684374602696978817024426898226491904942694782980284296575395778754809314118284224937450617190553872122203971106726297002289100818049581845060309544466046581524242464015636163486490795366020139712983549124988083764665744833515825966758029596490552055019550193125944100512602060516077236991590350749159525962516417584333309430072634363197666124576696032766760319788974544506955025052343324670289953481092376309154153282811920894285422623342489169910765291372487383939371060542413035103039332563709607080890282280998041942366158629816342489987263037921470855679057785015622293246082890817067780799232309957844758614962025430166290681795351634193860773772511350089735094922997478538611977088654336086988812700604086154062365336424435446937993230736458312392580142523812884651447217711153153618029214137818306733308073443645410206916097221875119835948529333536519205326599784741100062048391896711154913062029805378134482184674565388547561610193258319224866511055376054434082972751370166042558394214378675691718610581028203173349823472525209263317464821769645494571275935213050059741497455235741689754865305071291208071723999582936255543642332791618695168782454806467607965761577214250655406971368309094653293669665821867671719597892706571082187517830279665489930108282658852226551154199936194868335044050980292739291447826465148950800708024270167667571193936150866568511464397418476203604525625990056698992514951326095121387306671216038055136748193972727092571949731504129510435105638113511527001436818519929550990946409989444240039000364746002922309412197933276704745908494936837332185970393040708797547158595480810555810219611967802631237777182731052976591337666149525491118389521497996053969079328552620599064299038657407259236767574318138795272526247068737433801205928937548727714792401345980120706972514898830230375833692504333512637631010264718563323422816823044882383615315789622187983758132728942819164892129756936679909282752344009239113339286884482487410783174148113680503352973124404624017315490629644678413146833017196577058543715727939795198682256518872885984464343064495999610069857964173969950569045782112379638434652040998358158487745068636494979330882977269755171967502340822505408301707336457735779603496753654206748922544135815249091823315817818369700538342071908588926800315336016650047983979625648218086460173797936424225417398603710167250343329993697504863969084025200078042096090947730756404910742968757386587266065844723250946500215470051314876034506168037038029186494183396334968976988877848209092993571346015408186691708087163439411530751046905395659969047553576761650821593894250352190535645092226160837739219159756660068021653511659146043391718016744494180867133125391310649424161991422603270949243105800667001723903328382398772072202544246261263509966236354603418128819543728685419147664945091714869757400273788412878392821073710635101939534232257433450430726201095701260584219076110330698290196150490977325729858885092475232299300152289211495061698152925029694232844817145318137635656210791070908019397266418725661058696436034557586121217318661316819987379520676695323783705607273886059194465865880022682675241454751961428796868089953850889730672283800659060985124775391148224491997770231305911855871947764616674839470155615051137674860732926472697326965905689174371046281182939452774955157980674836507593646276882798178364077886700892141463618472668264083734609762151859887012421243673665602508201696734074455915042218925968989085572274585606496568010269597605355171202345957713477888753044093531931885878924293658765627595484236529252363933117149404909843789672500224541178441649291870652188114066813209777888960342739368952996881847384048772482857877347588517886621305579980022260243595799286782540467210531688993076063483665690804393997870712013762558681897007773041996246627355116083145992526663363267306331304283922655761445740767403188028143827187743490837845157346760968302766493731869785033829720483389359239696922471306084252428967029418653369925593148695815214547731469502909809288392231487386377854323094656709306039769575431360350506178987093995223877723530880729496362456294451058165029369654570218248502687413597650561825975098152440170648457220518723211986294816993597087750360151175127048802655096333911518395335293706942084472420579915130976155822704273424740717050558273723498649111459225018339420580771091593303594034498299667550931484693293620200076472385500775819929765851689951955723414914082405681996216200230549557201219495944025932316400012131814394586402409016612955518641314473995256925783095764652163525301283942065757697056705599134520293214598057432226645597923524789351283359115767235076669855069775592719486613752695120495805697448479781449293641679572169111177146161710493619626923013439810498747702023255695758478693974911767886720181002760361727905138018594545561535656897764723312776219613012154661060594506817407962005653201487307237102227882419762206359537212874084434756744490081809186051996494149618184219152584230572864592535745059005195065683192751668841701417319948820577908484871579554793927743260109328297391383192478617678040588956559569316449341560870896980700041856380498148248684332928015319670559986793150690061436138574162028855660705388859867534261534352254304521566276521011990450121152384889605587753327527393809773879663573481856066381534868960983164036567631836092251857270216495090268971842451843730890578495897169570299056397702594568368188195802679276176230981205728502111015659081678025294449471649079516469493136507613761238272629610404397816187807588329252849826825995535115883243489282407136052889339020325024940439134548693859169570211545854269923655339458818354411018548665259691294677187742625664727428048942714674072657792210212848789707299441885648289828564921128863397091716555172085341740120380406404576578936791555742596662288401606139398406698649603075619360943202701754261750317700961587951190397181878363988359011590736810793733345297221662234905276150965663832746632547251681908370376845806646170675591899539926557059263175133059317706818235110232242013666666872493107335920513603009256211934846539753536169385535279626937562399071698595534755205538790725801674697874646008496369292885947175905577952150323668762786638801373013759914211596755579179420480891730444996054677246599660182987372778320161582939526028085782356020508561689041337857637098699918841043364384889708353286996083410277109014976236010352276032366173127643555297116171601818488144240125272583347965115315627958525780188241042683447678082723242504710373285493693114672598066216322504255888950830126857949922628070463211881164146241422430676757129874093414587268307182389762255814038438757758226165856189103394983082298855676647235207259958308944012200083766050173268888620226243570595731738060829574593061643276096327151553188293281554429921460788069811221190795750112997193448087246877716788724766268585975725372107753931649184299809616646120816554387827759909943269110652369281120995240613230605279976606646330274706998064430618006713094835716331196253803537315114151818780945181070518243689600211422045831510955565998360360279952527006259890397904820844551517290746522314390242071925748933237422710612462413631096760546841571725080182969198216141769450589775179482484702014152261535786098501004329368609871670700463328127544431195781148325083883492609364170209850436675643717475675477555689299332655011703333022601519976119343017238020856389759976957552973232648856583168996734084300953434015223836662790063602119162894715982330797136737450919132182755743741741689320618662167036126466960845824894948890684748085251395805365950189464629230891306221722973005897902867464170414967976974757255115188510663979848162529795733009195714969838423327649769382152134604294380845367130688147237046456808359199542539967431538189288444196184400152527082337723361819053703468681907374008529953754828926827755161907199782572972666264397714868350346464851511066456733681670785437472170611393054971572953187467729327305927584862705443048610207920879568164321709343384659980395441873423385255336252358648459325442603864000034075491265663553729978096262276627398764583016807549004519596334111879465704258515419505073394263436118630395870982639929596431416384057663677744148715937515945972024330098456486758264486997083630899229127027293024477264087519425045135791378006525098484265852081679445900138800265339916809328058140634048083007506906424592296942729936704581722193392688915261532165131591153338115885626653935067225403046883461414926646303460033488994020955639897219536675518595199541492950700394571087899530181811121546415674963488846607930628235856250269347187307919474183488795481894157157880093001137170037940689486856813634055509382708180022014239222273763744284578708558599527769008745084151652223980174973286257212865802868781109343799263468762254238574641787777257148561673358157183417135682896690207053329569256337049519454211576384502117297273417979109829536856877099985476252358582201245330282505617861186704237031382168595912736558466012284749436145751510624094802152704900128049972889967586793880277245145924889635344538537134561441386712337668367438357670259402249456762904764774391317951627354627618610941123918270137209622506478646641288868982210322513670470564125238718263350051392097310137067495416266197769244545471596146387439860623662567432119796065802543681280484640125916014647926772732703689742845153441909082398654921239843074507922069302628074050085961274844113827140295853255036862521638195804340722440286404928792141553729304601135310254787893376407005621846165730399729277515461917651692588026901682721161188634118361038620882976433436050009630890184866250821153011357980809536237247156649672677739887843150483207904629006528846237631327806842333283785580786192516554224954828902980562259846531567890065957874857392729464006621087703295174989850591840700054301446118253208234079171583324869834108475085424925212487014495659450816384318544792712218001292507104846368422528029579776172768879799681896289095289983616040072107075493010442004111336379127576100213686783447260638474158609567836592766371329628929151098233446946761883106975872818331136292126156200455031902994959167541175462244176120945974965489948055324033066156386538607044048744789591143083667169243574269499614400973958420999580286557651776468938011064419643543940359355056091866387931991712454637163458198453241812431305170168613007930238920868587306561682159756779160903921136580260721056992130697631885746345417220362250275338948140818788423174928571704733095909950342662204143228839685479351873461198655670558636138042519160976746717928767224916615941014352132266251323004330858320591258403037014878694384147690484123974314885797860891556547851251254495825955353386174512530228526516400981670117417009107798151375224555865934331513254448532554823836803465571114682300522061676299635515168264591247796246132557090458664595725256616276576058896131317282337453807014964844325576870546578092535168707518631441907046409946522240896111105772735395156327854560699043279836104345749493210396620621215340960617604943175209602750487521338193173423134997323517151992971957886735539324682437654185372432260715914413334116651443644283280404941629540074411180278056057213415186147435382720100386978690217845674611269259464089759219679860015539929747530684811257015384664803388602747003741403946835398349817274487714036122319961949612825066645010881360003052349404809843789490599489502578234134063254065350222089209444779965408623455774783156724484689022217416183019042679149901602524903768079444635426939389037548745195378917685182000345083961322827582141921381814677486947032722017302947121431062482644573620101891697541923965472427137607844721543552768443581614846139017062915357773675054728947106913249020905586620727442194358146994669495575944680239648703588811325231832101221368955165996992782437967288003306898782940175932885861763766725276975763421845913411293259861226372761309018822006509252434567815429052238576478127448668639857333166799185082198205818990817414133906600721317624003422173694430103863394370370387782485424516075189971472159795307403431608883222303233781844902837377393670936846090629175564699257266919960436882015602127500587968325150952452652888225177474896129821229821197710469272984340615650077931198750871440643740900023604671312211257957439017343494996180651932168107456610185096175065723481583536502085061692691495447961938724541283071080479770794634734384644207937668611297118566452645212493341770033347775868221285792632158336338969401677184250854202181654549199901478402032282666477861544931052402197999200363886251232790794901670642453439538677159455828930425407002204099200853795163532547680906600285788795341660600711038714631190169758995849982144869242159978684886313416162413015933720647916067629686285583978653957298048166738809159190117541657646796492055036044905964658035616913533512635784797543418364691476764740237973547849783042012287786387376232757403798667771136109551834351032529447986798653751699889307279364347033699554548084750565335248567324183412068150907474438027394349813733299788612608709153169170308389420362085300219724409637053123315081708594774981527158884352948289648707168123446507537107281401647870074647429890895767459886926009575245443248217493020487762775945177636860722046615258147480187507290096265556314853778419323014888220232516398611818419811058709062427134174426228290161965609712568108119465276888267780946665179743639542098940530920216287052569940341799110019516588774285696195431148791189555073848485324516482439559760773902333446714256812694881094444589556533450821406995084244482858600295266658452163023355440393065860558740630100354583416346414964879523500971346562750287341945445863007324515560278486607798123121973157165445831211552673534513094352752067730225531825071418325198961700020046554765175010726362858211399793541273531898575641564616437288544375694511572733395619746858986417940035915663988153604075034577494887547185175981469484417222597618001393743974089907050540384498272038525904474522246606619353040329055474506645856237280116594763497547079611488498497454695580524417985122565626293893029917267675288304241712386182693216676993114864183855331479691728463267617149624724735680750861726179378655543604926023434915659081637387148298035143290182875455449434773779136263225700922923490430975158933866878710527026291180855746013931637007941428615900844363903725922353362923321371107298830167524727826354332575363971461488836084803720086840829107395598385216259197609388037953940909990157329560232227206939184640920697411991008822234450449890582376045225353178935932637256831329906673260598933220074411425203392444786676465123205156020204062523210388742165947752254258819435860612898268523395614838162514135812459037562317717203464945172421866623001862204646732904623993606291699109295565002135564727795091514723468885076711489133242259944947863385278268564318430605812728354113698407336347407055630636037098130209071059871222812481527946746821004243881356403867450246143152296355577912152277487502737562196436724949944124279813005621264566281421212543291221770001703088780894919302891261297524545612004495435292076241009411819740258303354321614565318769886019121585328762377107060494526882554042513704372116078174390640282162912010912134657031379979232262836154004389164424105598885468301083276341113094067434487958979415163259983456127590629957664864601507985413006843855419434790485726080182406599300404740772703714560590591392055091138367873985642074920543523575866376448174299589693037140427241874898085896129593468285183862290079720738209138958631613633827668632323444317620537760449579632372056053001820379475879426485035697323544564812748602227829612699027554413827852697845829761346403110245194802183705934103467983387385927307728428602398566956158695610617181246521122519032408571548115400199103406150222280963519043057339465472827772344560318579318273128232734197207489236440800566181856438180582460366529208784271608558116563568108390076525732958899741967211110371225667260985616022988746149763740046070665200874472913047343194126998400630743236123865078729518836245279718092871448083374333270175563154800081655892473803872115595732867875238822088246839820247857346136821537321687284142627615991008381944764827449087513455972065581408685120292814973826949715529434155753995362579806664580016930820515378107546498179090059984429684527871748033303579602749960133630240890738287736231533498583804876649551518428009956311539921882270042307705471026614511244047283029857676103073787632830988708136990731673792405204800541844868896782171020042624598073731240247478331634313152287572037521058701582487696725257357545779769689068017383410230849074364124313321047185468411778180279346592512271245395036855303637905460535146832382628229949310403921180277427993766483065149407475865170565528371702272601963790707449452415205895889345476207289847731586668290878301423112295781660123668552540223667796271908874411081137573002037182709026386146977180230008283814709614969108674467666808091331339955241235597284078665073787111954522560460739935158606809173587454981260166918266173299745111893601647253023929255279173566995272390502536038903038469220749915969381893802104392297942597242556099250376654027136597426771715159789034895896516088495124958554885839336664743529950171685889631587042336029085780226214871535896409257023395668170288245336575277291907157129463381616424544556984253814540992805869573272868250113106432308777169070142811795373435863787639019135216049783477711343392987628588530121739699755584684277858401224490991266699056082401491581557250877263563917569921873159865761248573773716435100431274972687623482584098820536204058614052312596793517790634867839603967544087054904309378996205141169491888710145582553616273291200999401050068441744279621713914444581722427250148037143811222328446136685649712922078088135260722832654476293829296166096977075603370508305999377270416753319713935787758851524711546651972229942408993244236003925253851852028107106295773349537033595377187750202027736518238736322698205127556965067790909940951394272967647938442162747547681598949792692606611748304274900912298318728859076808808744405414971102577437394709204878593617142055521753963298194264209848043970012010470166234001217208346236183993660387309102380683010462901321030826194373934654834047176860857548274300576644857384486663673126285609095949363206416414593151309742820396611551059246879362970207756774964963768217018841618446625195422182047137489578803813092642029391796995307528470769034340881953551831659587286367869286769961034650576536645278178555201138962693063750097794496762635638803791312572397745482426980414512762747026039979677991467170304197377248932451905914470028566673630388808156674948297960757400515501698776815690663794980818933834376938027440317702729998611052568364389870549602481723956442292100936522513728576743413419001765014545220285169447668027399112642909463107122555095944769914785861027297458331083068054648532423188452533568264947853899267711697725626436026005351296750692154159394094310750048658536712245747519423346968922525461646496442205805466094192838964102670851397909510186056713778175883398225132263218701967115326131676059310910769015855550728179060026138694620023227726605270276663669528405878714116597752012123632946478855085585387107542128876028289212392750186483286144738807480732735989405112006194114866917281666222642384736836312922845570002893058059220084507555351255936597089390039124102027799262800989108781828363281604590192960061771987400365493090429119732713662305054443784295129778538756730020192185626327285308354579588160080907916836898593123551582710558256868241253901626981561987971504445729926128368341988637971037862175646672743072384890299689988961136342632032716189051492699311214455463836536300864303202995271572268916019421565710065457726350652136897632748907606398707345976510316930125133811898753292617858579179224835771389167886143483710126381008635414497180472040814106465388622059767142264418797870791120328090678420067254162176606025656727424396737249862239712624331557585078737455315645502687694239321635001799651936202398785571676593817301292581946369307568784767700975525095437975874083413724198735127463636114119102595224041908954572638347337172828716677301691527352582295342099193802890123840197461220324451105949229828437620927057792662318439791956135852437190880627201450955158307430918772058861461478155705156707598405946956005307813781467306592494152603602506379614760350139594199482883688205172548368004932756984510018683681171350378691189509314598892193237364663602004869597727860662721671598597665342157109480011321771412527478813628468377900066204666778758358520073389544179513452544755212075359900220429588748921949158503572814617320324883379453769552377043132638779691012902751263373508918903206152340587752896674885611796411328975354366016330029260922015858056397062051997119766556698634996580858098391509364908376486890613818152838231614303061836834554440169953230858726958007584612490000806077558635917318383569431604880548283043620705277030191471083963086160033859176554144157792794815488990335458995917602651318812310950737044147922738747606622218785649991696058236009683159983185395905780257109563538502209154661544603480084765120207338122567404053367037203594250747537843057678497751992669555818379956510917016440649648315519804767922919544563167916884946419356631043532232867459534115779947128724563637744017490019509025130235363043663707880300713695572926980569616612806299455471753655286937003054307170812068606704950835034510392480526146525405511777575981161138546620897901529044348908149756117139217059146740070000226139002874841255813451516921784140600667429930920510492455463471512973984158339110068875930465101922630073634597693616088494549781107523285378975317928362986996337641291885527044517896513892507532265948874384139142183854158260825548266212096238712732771999475463616031694629376239203699650859119823067414854403293065088948987855205933931969440852269895409513086159178075823973535902191219556922918313068118108079247857154737101622518411783368402981711070513305291214415684671432874164861603882608372274880576140204677555876737184888298789854450992808726641580740284704430392798847000167627039951023375156264689977885845473597637327799567239260917867539300591286223718548174929465261379832092675833993227430868565557202763497983702471966089292571372705954258198819572318816335325204760865942607534642036982252357740823976457698956508614271176696978671040745657585588981840617854931551093723671615746404803399773010685936898289522725133284606029137961426213849572057938569679903891014293209852916856213141964560481086167798678549238468197262269157019344976620725758510726936337522684570973641200516689185271687066332197556397344565794910283967357961626858008157381119998941247708243398284145792429832897403928384802777219847289915070372573348263260997177032489140009014451610892941542287921192015652645524355970598020212419747635798945640297631852988225171004864926097989301145328882131342150826511231909765934545621291416150200823727854953631538630705318628607373206914597273448193104986853251597620524753350419174534544013731406683056078708703455733548996646566973071036493964413063433360157509734063411693854487119715859762233014449057088950278305001326761740294833711809978444007159778278928601236395974296260372274155110173464412977236864936591237447337229109393480218988721083477580794284102606041738394304795370745848623451971361453716224856748499152222705488993574978298395232867528171537065016550270710632715778061440509805636007848032100594360490132893753116792229521195229846316036862964132613112374711628630477991478850549077436191142308398859917476588429852958927943920392795091449700945275988605313884341497822824004656370537415209123974879878379373683555468455169293940623906841274575354199617445774163288154486874750119997554534477204158102674393029109432482454258270562399499883604530032335729412788111615967826680365749203083760860642738955741748473024747301335631064655256709942509297130587337444262637961221012460694996148660571809019133050092308035300796947170519234997008143484250633140606892008718328322398863940090803684895052848585189048893526060124045134795636090963318256715048544189426079281268471256875294424052311561489535067862654017474824758532592147814161483053902402178932010431097017304840700467515936727603231457761361535800996566203229205127343919560637945039064239167956066511530706559760403937851024378083201124891716142091057175708504013940657859437490704799276315322325522130811654150056118397176404358957812991236691446079187534147835195108266209419710865857315291417760049048926938968659655720930697606631399632433945421484329011169907397937172331842335221323644776071661325286284529177259815836248387175343359303787821234985780166936818737196162331145727693647641799954734358231056572521366431702899884417260642530540888948847760533145232497814282932645905791964824693697997205315318913172874030579456779023879314925252351308117407490886597169348984414398079126902360156992479439151263681256565436234318307374944881123144453419884058989110101619982984854160678162209003556692292256134334389528931042058409843848175719871720600168559194708194988401024228159135461659239785595729946799358488863852083933676927590455797859145995524150112991855108565918521390735615433447815589145677540871525465269659727877467949948933768697033373734210426840462077885445491449254309831176046778713557829324156721872636993987033897590569643601476639157658983149519152856786873363751272469919278189699234831077745116252501193283389959757362343212846959903268621128240949690497774473700059882908201966600132393575491043463671343046964790278086544199004551937620224767920350096689236259455347062376253338430631117719917085469635904159546840922769614237698642328075199603226921178673614229084834735197405928137128874262425890742236370112949857699777366244533435724952363276932680814102177186479516146617951894040132724396712707408877123723708996219420959808130080317949880467423895217358262421034922469110100107054072187863405185593580286556398175843837151604907048378873816123245060156252514204036026505058003651785408206461477470605165640287127933040582398877996080699478838290263449505990429909919675293866056205596395281523969822019235258060376127944982868676331228408171374494193333929211015073564846355717101482200378925226796775827272045679351012265209713034663352310519429690385309200499753130915934408655369902091618815168439673509527327783038999505213578535641182109655415998969904544278636083872894994628657909171421818218111254134270986174012932218557471882275250936326428776036501989105540670071025526866879184626681898504354841211199363278536721080143419336871927680061836160618080211967394130013919785619729624120067902751267904120885020443169859257553984606125845413162853231216357056910608231384610610385842695377944634998932215215419722028880607543397012584851860523710361443634226815186239774641616856322644666385137571111201141216108338362468798320123978640940206392901277853650842621241650607279886681940861667314737497159787379734550797224990196045277347966753228591799623950665149243585879883614251447309031007343294694491911686021681016628246078793887401205534767981076462955221580572440088241483224288186145357428815405878700055134166337831095106094498259137892541218569293016662808043529041337543429081371499786784729399216951066603931363937884315863563457090237800605260491023572377460015759899188772653582447644402157581219014465430438500575180202840568126757032868276244971489998845596000056561810550098304374901884565365665927620440792172216703672769283980651609525257132120079633158262039052985786093472797953260460673558468685338041697704696017759921507419608783023959841367908780673132692014934975345719189611593507998271597935538535047125527756030452088643624697644402228410663681905885215202536355016379600846275578919857722407816671509360381699098610594297012700069982300843566956585452601553669343337001674388171361209471914260903638957489549725557830430809462692488327657866460118017543693384345999197225711506949086890070228475410318699336055383862584463510691553600920236494911614387958305936400822065399244062627569287535058176877404844507362966541127916839320320714868046515682499543579463462430667079960519787715368536869233295589310826717220699504247390015930286238360578548132476553355957611520735894571988746691232584654842537522716861259256130957759395021665297801577295416221123715091195338868280816753631536885293031001289176100084718637197652147679390899594127592068063336418024494737530769139612582268968782318136604865128124113100946336134237629429080556434680875271059300637094105153692720004506141364019260793358105947273916079476504482848393146038871608720805618518524426302934868337865866212623450112787061767150806044662343567079803071001559257677124632855666360125953249298558738884141728062674415548553009143935729788498352493651946990530934236784955024504035930459973934803861535338230958282643006172376925965805898197205252747853494865506490573071596854146279333802527196059887802733761883023600494614041448589232148122681927963227850628810968165029382733244123905213577223956351977288720287404075030076342851711530849634732201096750584356828683619597131451790499683572855782259831813424870059194675326463344141508057741519875723573391786681416682449236206134810602006690977071527127741162871920079717023667830588223382857030629688135137348279185780301453104732585324204211252767748001964030383808139106932103299385902906957281823934036316188637537064768566036936838784394502638664518930159411339978300856471391753162512456021740357076090605531814963981625534763327539527304852674196750295104684355165756270799286122623558040437093246939364596847506471955040273506751381939747511228534233229846238425691783819517927538919161123105909706766470354098540309145139414567979100616774574600224458201702096435562201238496245238602465159975191266170259916446172692266553857759539489308144432673154824892489205119056138207958007022339144495767469391543222964699604131233356361589725743637780920614912381578949580270673036606292792386813958247880184361689271826767921977526828089100189701623006835298380157354580673560687739038526460919091466957580005253174481044810739445664778482673545223801846486858212749659699353842323513595980392569875138187848217574988254759776555951453472806005143288133060698396015633132257939760783160382822463033745333866940620813158655874260789047674213580362760604185599252980821547158051511004568903441289564109599927927780855342778239941345080265839305943021668167907668344102636185934463305746946552333862099791643201788502390889146010012380625370989166609905331811224994074668901521019147696946174905822081143344551907738076081620165461075689882873948890652192955020231422210843869994451139049962803102724523144243254033076062991161907918684585188797898388009170776305740148785590303126490524994297355888595340540481879309868784675394790939364778695998932297373930101320370870469690021351382333812165711226909624668206287353316874111833930812167430636241256713599311887993870246396143716532605771887505426635774131215826071349136774492936540632620765670257949495824708111976882444978143207554925833443103019558226837258785311730088690234022161247863336765484549196346418870731994756885458163444498826373895120236253833793187046726342898476872873788471902755424353065723002824167799960343999119352200625251089662789146761779759541359006153286326869614989492458709624234082033017372604253058311426817140439576162697718986393560537707700299844050963011775289920090896482874105494580314468278219897680253715285622953091484157428098177139201339106873988832846405870055850755104166121353486988274389071526073859597458056083779205978919573737887684898775366840490251999205697161934309123123257120232738678487246496948972447175950523459760222541281278732521826734768414849418026031809958435343914772579366123349782109634784007149016195457083096329354582419964421601361920850854146421772960223740805651839364013835249973135014503507539801573379695029309931778876151823595056593035029445465410539551633012661073220870657931805058337970163072807474207924558021650059297279551099354035881956539069926182170062947077347835264926838027031551677754160843512402809241072385536567095737765065341841405636492586271827903123636131430481329919732254866914433555578148519614893046804128343312758321472316135016451775813455803967050999708066953313428640955337111569902061939001383968667954886539171323390265824372862348818275553844176930042086426231791965810311941926253261063059406881357721696068832897432513812958974375539411082250445130006586510697159063308959599824028827984385848551506814443726958802104461030278258904356702904974592357433340308731417452026349898738884215639994699984664653503776563691922738831115864963032241928587698241524417453258527804093363397948797822668141487248885830134575301984400545658379083831174603934505154737536180478500861325287373940202090584294363690293300418941522044805422766993068940121161606629950891696270364415172688467087177168508939334519088646784637733681683818124955008267310825619971648033217181871950957266812292839478116065888325275981983342637119938546445346052897399855488976072574610793737150557115627948973188411615519698308661721732601783900850198293495063332038925341011465885156578752789407972756492010680139243243208906355795161113268935740813958632869650937076437045783751467998822617167160628047939535809210023658584330051080185266528282086483798285741646154860977011990667235277960058330153967616808078430113148645483464536710840635857741001311154978453520144923764404670866518266341458984501676325176931024044241788147448884250288049340398160944697908612419904787681180167648139635865890485249909699805299947356977367261968878828008971418778238700120406154973618404131741099237928611815317610370495109853500345157967869634802733717697649174212403013346788364565610130535324328333494860520132185792654879644039066657498700404757894420681759249076130349935828014362515869495337920582973134557872521889985241830792356518001227102675078964531540785960578415451649714345407181672149421887404009619644193628414447172307266954718323557604676525662133426023182198719602043747282254318642702081243349359927483117836923678097284104565702964325979316946451178677904154917328388869275752231583397379470835866787292899287577697389290033518983281613373284051290892825876813126050163841744213721791824166568437835691486984552923296962414166559000679159333002530296543413369902234271799712847575656576568463625725473842552109572418296916569919193997783888919553670105671762364848631891324099160542203609896765945238636861620677450338821199488602570599784824222803383164939019188883413547006916885841522681523459207918572967181984610406108680664136956798803595124423421597248355574026423312698259106598532113565885282772875157470179320514929530411002307618277195709313531125090722726043092673834847269603225554093175075058788369972272401222402324386701787689450096774603435240313116131015108951109857794445877638705488913229910501643829023889210890710667649611748865782739943329539244601520794956878543900956658091120520754292500099254875879317296478861510756117880757355777723110636038060664993767092879355477975151066879493728505979445580618498512593042215210711274430784639484132625310417708548618808732376287210783619948420829262844190745774656347206870049946608007874661870170000147705765312804185858442058562481164284319875427230583348513192125956068096868263879974601635796403340103189411132192985097296628559672786015438479490708872223971986759198761606418706494776520970622115296224235471268333776082005088472142606456789781969522805879332352831894101361721542335411594486763863758715552938664568190537359941635410480989940234397860663724843366363769564172399290259571226882357293126462337945517960840185132484514087449553733884178650553637288493127890634197595652597181260910307201222638199740334611967423085354634999770823082346799626531965231415576775355373790457868134831414090688263073077705009016354226495141534160347248366548253989332103461362947317887079386539494283108747268836880017914358534987086316195210687747825353214122966872283833377355307782410681119071392926633969660683895113095968483026648603933174217497706751986692327878155530969992837363932780255845884682585940366859552600399909482282054874656867033633614484420220049186858753722556208380701123479635520856225694466792029946461517654844281344248157394838025993712481387731118380193094923104150632302041355973740566504567127493785272260554932444930231051906943906854517595378329631509433153931992571963861589443271064930184406406468856560709082635060466527554637227509717459338369737754926482869750002431900245604161059916227903909358542811988565559563770506135816057659772437797344510668464801737813383720916728781501886414013213971646443289886538707765420119531539063021103827981480925867865878508325054821028480000656225600927024482495599613237403775327244262757155805828361334161703393947638519381772117989097380898324520917258463152247714487884309629176581334696635786434657588711370953514129530133369386060754897121554404083706633742332408685080876817310420222278489645732767200180378416085334165473442171593825721406877366302633499904405394720910540820427324611061335362232578034197539902175946367355262689701784038937360675151059152616727315478133275543936800419961108962788042408311301134705665854477728377120665506444549513110607942987296178451809817815681178745903666101516211616247361122846724336698308694284418124214528298532575726594420614091425826025985220665065931529831549271746384905654826032150882057430881836146533704139416764167467435945147097845492543921608935362380340859813591517890748779211628460083649586007524760984189844142167118660624729557442417896174033985397447323274984143160258241893402882911361855136296161522350792711986962104061366848429204363014912379290758910170253483673818650475265150427195110919304705688741034328925750902655415503321314590097532602430913352942958145323486254812621596479982734459546102965102110735998152947960522604558655883307919954282970347420451361337345797616674298137091204154864399290014174125344562517323708815361658650078578373933892139705194464665091408188894574454035855083690600288181680490884698946180035484037256124070587739730063679138495941539045803614856912865833497074509242036795719546515471363138675394705295090512718773459348994478808714710041812408156111874069915433007474626386184078882332559264370872101847069762053778058173878083937752970082566225153957740672889213978783659039295272909632697089616226372469025111133414906268127770290779217962861441881831253743670569364489448158603831985482463766676133083095472165232796912211586860825634618134939948934357397670715199949985745063992228324841887256100252296762659122471131257669359657483704485417327128638425485539040075691253479316254016613460899859206384103451965241059149412163799201511086046858404678570923651428878480795094226027135814070358019921306850323261589604282083553151194337412125039315296685698444146208387899009808927545742726554929106392056017160731861533250103298414914501242869762007544697728635082315190385148354245116632491550601790949859579814913431311294295644073521869872337934983610256519289681002771186023648779527460300447103674086758192467911957232790649074923233112023007672130768071497636390772453663272276464414676189548151675278682279293675974565149412949595557274797502257126722657793051614598724448149588084638560125144792971323339996560944810618097811309458212314169478467538770702511909397109550630910277240556871515002340508085753338826319492124011762512470876601391681917431406431244707872435951788034570508979235875106448274806218993334169079652422421589310137231736090982065957671152817306074710958570808522413776237853444876885856927092143189034291765091494565489767705986009826795394235529856144639910372676776636634419954391214358820266881582299418266241296330059658312073995403675006480662119255601377801406377874576164866410208135525373138303897882832408948048628031030699305372056806472688370963047641542891000520595220987127787557272820178746565204802199908610698956336027627957801265654735136797920756839850917489271779655298811667215422543943455267369844592602246134115673611821448518865517617048545325095968113757057979831658796631218449698445504937450627248531742844941007437347159849161097964941903034945158663657951362805259231508284773754381767972864884485904031442480084835877955783816103040239152001539771655605481883313117655453673077326585077933916486342398694306249492290591250780798408464292541978885894423408227742208464201611405308238215714288631637083708621184462464630006930879832661859634040148106375133025437687760590089969974379379507619210762309331117377030399232170140963475732021245970398768444219321832544760054896906947329393744310995889594996082391302921141120679492480411339102298247804442635539489125808900215157321148599778232595855732043683756723643256188520365756181346706298015618538496213208323841545355553078380154173776801487064404756355205660423075293322526520042512695221665691133978414404193378436380802774596134491193126174268551670403314557739438021317741217394864279368870024143862967588993551945701426443337583571263084840631049162381965685102881235152640223257362108990788817333467587145070631430828235937779720461136957463507829324533982769844473723901438085462951464309702539611834762054278332741165214561341079660618548078967065105457597675538199895637143323956947730814644321798566099926154283166624562968321238673895619806551912797372303830391730705595676082865749072973576438437351653725096444411882992948881153846955486590341483172948342611957645979695490205824206105407776446833317802590445286186897909729717452450451018016892653648087890933908400214789346970053197519656281749062391009354361156822244974334403084610968404654111592428698633108204543189094579222493881458682207412223925673643075658424411583561291702125145864710849414032390259087699403125077954161462976971442028687433589616211924259268190383352618080624890063919659354716424080776100363649400924588616017271617710566533735711121450000347751820772060937032774875824636687096078400155467141077042300960610033350346207788904510169033383257861221972123846209030445371042594118882379704112428058667404341143889614510793087336626230830044104792780227118217262204476904964714556760146496508275244884108994995217049945706690810723484528150402359365170007509647162732256906620606187428386807728365339857917524699023352692026815182464385332183141157430229058100785790602467169572835969645710288118295450024953955790192762606680640062171899681048941981642660562616039565321506721541726059735097018483866254192746320413717007273983591674969665131657411003727042478037367142486671329173213155164251059416983720915505120621825684222186844331203790487046580979133168454513373282172018686527238712664654450641274270445275213102538288427107210435780820807308716002266751168687145971087268534043493103001360008963034604467968043584706154655443527417557903130968133853111756366359558645065247754495116798184016485681092354482913390325064386086766282933086347070056579613086439981759877019359670956903711751881889713564135167874006922224245495491086201244887039730286103185856907183456971897488530702847813556527484634633127344391947293170664579760502860989413850075438954759743616102161753445692774867063865242971670628155867331657931307728685871938526077298892601342652667181282188607692788680329528399444471909293050983761409281693530844585061064464446515660710683106026411519104162948353020923871256456613278814312917775145540917176559656088960867708977110111176542228516070621875269118118627551335638016211117177981061078308385110957269272552542102479088599185308418551211578350592842783005955827544465268842411423233219889323968438723950363220703404343986785207311085983478474681378849907939850346885893181819813337806962233733361494510343544763596124658964875393758820611276825343601046467399769257613521518459874417371132951631231484023395792353291565054264377321305610379838595482652363111247185733211074439083266239587000273922042538344754689807543640949584230068020976969962110943744446788371807790294404292980076046273324920895832300264730226598879675982102448122032933552126822335133558570281994658385707362934515656262084175913029625455922847662324746703072822619216037452818467089558497940185822006815006603436263937940432689374047409969141868811533511229611872191810607602144869202292573938090161633249297274517910406691628825050636411791315484491826784027689512163720354963495110448475439797872052673561192067977824168454040090919463469025376499071919580007086120675434653323787023974759963687878385730608563072483212558632458130769431540169122698014447512948402919084342050135705075705604984194574918649232971616645796119754664867056888180157679050612366148278696099144211541278671476256350404355827155427997535922053728596258946446274904448214940918851057274053991251936930814844450869667472164006725002688268939111374671268599796158910499235484184087172380836640672639141442050720832301119035710477441351945972600561970984435116853402266057852263675628759996898286227077115419603613561734756968394341900879912173287816440902160304332775481026212057409745973883605042723805155194037417448140696106557303271920432461939150553330318090063264357311916632962489479823211403205257808231511007344239980329167273160067423533654477136390051858929048325225548548805117604997581771713965027751591609118498121144793755791713401849495482482313690212284153406981482845453914701152926152860610772235134558594114784059262728831845281275941981057022213880330666318651956534039493139227686595177130836778737302858827585838657105756553000019111768403398198804559936718372141777588206594286622908784880440403247226982305840971073369187352910050748797964746910814822138449729344870321240112263413439975175655956659525140702261963372321036957066081214587224960659898814930362954744544524522220081072655894247538431026981247010872647427419460872788809675550402652599217447243405917445755366021436680203682041358663427185145594528046452534336788793126123086342385896899371464236551783138787141001587217614592160841858298004748951554706873803601767014966863518598898719670838563878004095099841475669384171923152065710514322605522705586560057578739232295933984320314479455674357009174294194669445089351521774412487057005818465717221969947275144797512190913606232326455576589041685905466849992898859044748750888746160651999508338344974985993836018425296463913468836626691963224735580887743267525465620354542049851837627575671324744483034005524204032813823027455267170367624265320363200584472669593184880674840766292907596602933511000067842694394178543999948266253821730851462227996357715298662994481292506843239644577676243267690822822728037126313607428554833930543561401928248304113713268930821410716773748398562315307022474378319706127755396276908240513618973492089448421144019736617830659772192557159245972389073487725028508501525518679568280087981456980883787430239687377506325937118974124207347945362911136319247041231628469405126867066850622704344509671683334414834013720643797817475211921873021682925489853254799727813801188234331099286803248540722407367877757163393030465851002053380178336103687462027777083258909942179498179687255581379020551110415791167732060412401590691535170856304411153477277585431461225564084895893031753451891458343889469647984369239408510343435427465333651562909571808731713487928355026221627326797435262953681502541225043108023617230979618117798247688368265438787452011870274456317220251354673480914782277491668793529497738957337088273282301114237737330577840718043429070582422133287793780960953560412786262124345356036928411863317691554424703200638020930073429152064353527739256953368981518440749847544380411918979940814370467883204100027172653797247327328895947348760460855534839474915953393258401624784273707788589306240549517009730434466192567566440115918355812974309529995548765744472262214724141042296780559641213056027399612281677794790179419040075952031956131213154633927254678686811607250578342909116279344404770199019713689417075147976085044991777701830544781763123990021074407956542982440406696999429724288941443980700221301606461145093070032166291408355700508537840972240454712253066171376648072778703414056907328541294214068297582738322959523813779109803908832577518202145025691818530218164502681043862943720932133132874543729275360258791011242911253489562910640362851870475227064876482194022093114105207927421304414113151787431264478806152882856912004642608544664553632921265824949580178659914997335432794431714758705261323610846459757237170050477229805942217186442641939020670723976699933998779133657195855625677456250663726136294439541019120457009769991667145028255357886671230214266106021801742851852454938570500802115247972655536195319847507237222944628342149458831385027254790092627224041644769379126633459465103516346625863753702045142296190470740496236032174133924638028052670386778242359053630141886385768826976184976941384357333455343053136230637551883891696151516183298178182133437472217995785152700305688835975625631614760943330609990381206646448280258528124099269372586641781440966672292967030933213310931283212121312655010731709166976674503408262687488153120686628858828026630893937669258189754177242261373313208832915836670446890760280382670638454497666152898927768429744048521974978039363680041251911027243921658193763543590567419308717002896052787590736894305395313380670144501339408077393704275020659736746005496280087472411484796039672931761151665191413043369293626224193941120479045091976052252158718721492859198731147111342087409925036846483477950046917445110801371144659542993061422003682311983037146172285224523821737382532672181044830781131576740285269884338110942043015519021688776566626869520041118457045979843605523758869813873245889709692134664209900044467834228227134063767848885818369139950036155256444554545897635330800081095884646156669178942549115796147546422090138673641592646542841418188041614352946385042771210467468150140938996978147972617706284446170542697727076961171162446158083342095857712118669513407391351568943866739946508560652229924333536361064024890950167261031322047035112305016336353626457963024635536213956051410209022470816731840960866852219544875416080158743802006005002958544454060179114574538462112161027661615224611003025233616505745490186987275730285499435722766350879851050616369112191493067175315382664334095921756573426047377188292203870928842407587650524349580552988808956784868721234658687113672349962018471774097163397319758217718593381400917901022320619280050994486931631085616421094483101078795421800005414675199056388794261925788371366772798194550579692883679349701113666660528646269406694192735446512093598387148311318379280991484172573762711994117322197613606889041185032333792885301757807269648901935962574006301071434469720444314604965025222465325095572700469538993735322048195399849930473773930155109169475276050460494961357942588991077167510352289963894628901662848499664429866228112340165823049722586084782358772861169270912597644196527220596529871174388298732948773215572082852904466297948338437617172830540148945062907772283384056045884875399264698966629937946307408010495203486123054058863731627123319602790430502298720719716359324922243313442795650816175438440990671722867169825280596048014708378673097252367104799858620369589573099032151360311056799648389614270296952382116642510182528279269903863615249814180962054416455980229264805618095159094153234690255263239126516204628185387414920808029478377938959486130791314480000546199405429484281293621386901679463093868004878679451426853009145977509926954517158250432065723031425341992441111252215099718236044353370233815047478782653217363228299360990217724660262508480677595651443369106724015993268039061976538275176652932782233513129397678362519941529299203846876323615353815332485903008088147747054845375951589243581907741702933888974110390228592081357077324899495692343168439044547983321877435184097705038495721415571019101455227596524467012265492006120449851600534928787867939291456736578066308649138788656974548683601747468048777629437063932454990316071457144358133440836649410241639210745257731652810166471075919845982588921683136166479695731639487273479985258829406165220656838903183685008620278838165259025886178127108631940768094891588776014266468943454688871851447088366543318443756692099399437478792426392687253543694603862535162240567633612956570785862773147115414091922593997582276041755033385090770724871420841333102307196230655010041279376595566041568397671762835058108402099768440478915974354411088889417949633707540240789575290784599093189892675795484056797311699170472977223195102872485881727606998930649161264880111710388106736147129314272441230299273694255831823565476733718732836156897372361507127305545881498568912833574709179345567661713496085828485531990090865797540550669559510716373735470488802307469352289162888377872497733213833653994040876008163699210460363551674240028128035056346112291070266799318167936509700542019672387947295260750898472733519104581334736151317049834810983188318452735521753165662324056259121947753412436486486951402468350589787563056181657137930337737104346541275557041525400153712261638903181355373305238995437896489834101039900407000676634709392102842676450218440231173269490883833300911157810494422883643587490499818339411294480408390120934739796483543674954424326089289191603387109528008191554427668379832910181035521916453565298161577337661438455066332531496961710873999479150315024448863979213811221468061604244033542893410444356452597615583272844192170181354026387234434049947954338919545660331768461048974596168494782326496811337593243443180969421045790737994996344727600266486370639607784406283689803051512156967745872063770068708839191785992109385712049438741946772735965167960679991709250467103779049364433050831401777645683172347684440046093304546731070852342566592781540056419460998085972365120771771497929037298076827605275446173738219727968902565094318286128553754285496009038593725429944839832929397622074035199269687982168212185081352284377710111005204014446492265521720600526400334315036903501248016859189019961999070819753387190548352244193581418943506326844667989469237548168809252428139996200341463063593466660389922908642147958893021795185871615820231347840440776340133948065950380034526130214781813132329835059769956003404878639692413609791588566701970531331503399480149259695892382863978836755582103530064681776051824470393514142955538963710984523065520185371855973682568091480775251174903800025467251347483524811982913654844558092102974425050077207583292623796411493788114645969271102363174512410991649001754948375954492077334688789741211481641901775769335544287037680964710284005211631248498191233272758180209487005878375642864164755776343200010529420967666146223317392129210759844577469344528966591739110154811588601102354325609034526765393476538164599065388308098116489608646693609846056726215064812090925366067702950294558934745410403954557979922883488232390417260116750674849998739092981856907496809995966145309455806128696621649386393221526707027669580899463742016200069691675864012345520678281602600082764247053290105855676155265283212682691002251928298454635306323690312711633762325027868338990998989704849327660830895099896619763950809425597781195445035851617327652069392907432638810483073615394309856718747498229201395910484453125298530377489557675037766080915049442759074289644045163978026923619156211874037814030766027585064599149704239605535704247460368869266786752648251424778859983933513742163615883006671847366615753032102589556428349052249315232074136521438609218889425724028742884316188210719246977483875851272469171249877334235981050123828007053732707501607032668470883702968726573041712705019184013838741504517256632734850343058008016110436315612128927914675120414667548424177242554339278553123590874922738379098766602192396113291178439555802759247815713034950608594276306618896177148480389570933552455120640497975123222200182814858905148400043596193709694237149867838796024521611127173719803753896102210105925342925030465264597130284344592082476955749940505538811422646601726456106842733667137227947332797885499665316041670296744394114985435654581407175659605701664357896506882570799865983785367516030858130755369893797218195173212902576267281180204931073852231867763237967667795068551490755547952384165804275644486189091235649451065692757724367250021004936482481892431776660521899679327918986551542764483822320861795929231716813043429359414975405282237688060634302292093815488375737199216372182568139056349084051162583417917624267237697292228135002892594888875172406386494756148880090575906040745094591986114221896385159916848902760032885033998561069999640223087296720112421745432138720387534511763442740651812119742202037466440572598493649647982280556803131871505793919243635808699497277436384936690331627078242208015637179495813707568324478059464625632894588230517936775902943798916903423893807264227399811944273775079979361765672483663930948234371000507415941602267242461120295954251539124499240358410504437158219361082513181506258258242155397789884681969072514509592332605516043722558230189276853887205728743867449400869935449355711605737827659533218202156510112093672455794289702203472514010022857857052665295455879801707225458937844522686129096573958241564449121839365741455701715903080018989447791152057179697311948281166188932769210750268834597848772080099437114437588129370990881183909995902077542539003591402194515004026593534147676728351411113980222602306983208452703992908175681733021889583511555974117213240160971397719330263500041479353967780590203932883872651460111280468060392345008175959537065172077979761609365307061557645751035733310691462837133356337939748845144063644227145542184626334314622313315283891542431918469645857898118943487872495638499669995267248027770974943230232766819226766982912272462145606240969789163689505456975909215843645694553000699679621971523038510440861912335667271924560205582530156403986141103654046012322283431025619978332565146628366884769364738824806008287609384436095545762224783597747537587692591839036716839584690200421679936474007446169711519565266643388320450729623136939807803849225394995540066639546978171461314762037278495743636916460051776669139963255174429181131756582228099942699734902137102843531761438034001384797692593692803894489015531963573584753717209561076717921314169125035908925359954701234287296647114181093507822373735241225534395602684593835933458211629345478032340317222206543759060393638794637586693040651981793790220348177951009087834406463119101548088192695875603778431155543549713771541389446153378350119120201638033926979255419002438491886282688026293840553268403826760117196973798117130883264318150321926259091995652229945419584585835558381704376909345867826904606826921591424436479345879913052333451862636693542963198653406184581013399075492752599508892618666696683926087470037587015552269158158433707237691787668568242029562552384618401287376477475327460484977684010553937159605325042102415496982759347687343561022990803133825870709089127146874553306395363794210502733772623974949326339238993695925776553180676239740645401264902881191912442199393774250000915020094901095756915520536901563881697377557559073729186529410913156835488353649548846381517547748453623400608689363808982115524905526422897990903204651874638967872664573033283467401078787843553956061213615222488545451937965892190138376821659955596724037994263869018713984063271223537480511235918258402521493414546742248821908409382905449534264895322654196405922555159784154332080511806279899345493210424613231977452063177782534531561518756967160026495763601923158353372883075393115016236383173467816174774980129364576835897378664997838573391660569312153589658576169201154580884440444724556138843611100310280646673785156514823067576868280260486124367282072613577497794296485206515872444260965718667926704610070136576843693739946818326865684629773144714699394280485327065726417736368842099478651119137081114566246259974433388046459137300639078293851646291899134180941496008677116577702696965451591169402135481807862989894220797309212000743922697210938476556434885558237695343544807274865553828096261798041654287480893066048023473391496293854315272282556188195734776964363179526414945401171405247836799991296292269346679171294964400568621557631134063049159332382956168028216469621352788887666514677338082448500233221231332591421625701941062375245898826657645138394736074798392025692630007989750086114594044605528600747262956792766310401154963983521305874874861185415736766180522224119746614011296867820969102631673038284387009262126523899460543886528883729746828594546531239264719125879357932336813127047761673616245871225877922926897361333304216363060391317661678735643727194070458772937678099559565347866057131858322310611034914664217746645839639371351283526537035872961003703885244857692660342486214596872699138877318303424993234141592878680681511226816299078757051953173103357519822741482977282253175261128036004841768086882656394383373195877681662820434335853562818233719238788640521539454534081071233622900066535997645391293030622865968491120128701232261154804784360794144900417449793380078990799311286016586677065222634231989398729522293566610212323853200952636913785315636831786998564677790632406997197748041064772684619000318570110163147795249365284617233320051533086617953600304079373692053857848219907841679696779395315056072123081482740833928109613186381404920796655014601549753679164769566231356600089348688989457260084467498932206972329973057033167925098112443873029565144587581903641069544810450409870835366731285754699262216246310772190374067550223986308201396734047595051333893875753079737331929796890145096445827832979797662266511254753120774061125681120219719750370651669647622461602979894339907595127077651098616362238385498756968813288728391664781680866171044699510141384587200693734356021736162755107770457779254424866617083412799705785341597162864675985400358859833905083239448592923680129014871687705071892350667317382815192125028877449362994664767763722312087137144646684449150956136138745286899953820374504198482628345149971273804391191480420304017598712244341778634841071706172468098962346194290626370851130518507235598965437538140901154172758386959623439622058781840659966173104653604001518066463945818746522841406958698053505372028206901493489028288727964437333471791940800329460138587650115733514430807085189619111025448901960649524663142857178081820992643753656802070446797651081424151823448072832123607919232018004322371994917416143482063465999419914566583489791676947188445371987516627905539131519710409140896759705169766267285271321903497453888325665057558755147435612132186521003669480503097589824102660819627705195724984675030122282973201740374808136647217710245916130873519995572431577611359443984309866387439434998879710306436667407401611480653353976061510872879182589273566701848688063420832844944090278442548437308864656776149325834937771246580312236651796972057210813208185314067512633570674117956882611715132447561727480712242080726001390811292005754888602423687974581092476156780326585367060805679140565694501254986999319990520128980469407022648667369788058055579904110710028618871133328132981489511113264694864782388160849886552082652449178630657509270615277692339462384685157924488837078689314278471921841541022738683530437380368470715313271417363959475732799388720167930434740286171600293545032921218296787579421910721437390326588841114822731490469151004786514960031804969114633375263032478410337892427620932585651881080612048636055930143244524729743331217559983607658430418055746808060392372166257544814229029739178106649297925926994148257272696623961731462518339414055465767752596952101178051229943214255726511555847560654475656512852213358925663747998748515578006041949339015955954310596893364712694531346534169765829973858594710220596043130946029505490926348200672644232340488891364556610154009438258790274360306481667820015268763615754686509858722462938616710567318586456447108996749599915292928998433893347977953892943365152690617876782945188706186314443791193360088485330458443566418140869635253466080861422353138891957546471812939596768243515455731854457002209579175056491260258837141844101107758244321577647390519009425781472683916328454319377209523568627352510266507971154735352277086316986193773529393149316574189501848189413078742284202923518603041755570305795238756381400847452633513123543061279791767344288981923409853306733002796595396727292253316321626991647082083602565089651631310929638486094421238701967783508817146667277894661406985913382897921994010152891611186184271803882798167896696437407568502148455313897956380646403350200698358195013193870780485426460156774236051650445875688607880400480745557685645814344433562310704541387826990741558963172864969003363481583110006995694157377976583999615717292302235770933049920047574800632689170031513062008519038158023576041458429951044969689403995953625137314061964245928224385893449880333521256018648738003972484919741774951205408516686967043470939478117265806806649956503102166202051484071748718864369651779853011488141067846032197718539778857582927621288365252768385414902631784311089762770401005066369019228150572830332542068260343935732779246287535251324417898408574952084013900006845201721119415512735694490861709449734478070757482555831252496085848020679627640300917400492046836011435937754106443643489428863727421525741775382241180839971181127252228576785803725098065330807158750452577699164931875037446876970537298279965535794299415464230684353402133307032686785304021863621978953964055469433024463543435659014371824625550930666931051674955725523500276823986171070999071429917758142116391924082032995459583017997997341508060535581192361721635656966592367607532462271236858640165854780798463244222161781986490335762086663985151605693791933256923731156699102458027366123512574879253185763942429842828059162412596800314481538380210351287757737407396125653839191768833275882246609883549528034968605618587684787817390401149223679311964631465160948209646485884634027857585104051339199282958741551795993028338964543481207054079613523474814374849060533268672291459772752102809615619605229722490771739008538691955776786497586105422958119992300768287197537203670932810942615157839845270298472918359491914631685326837305447398318881903976834092580263774115027023706756754817909863451341861887503972365629311540307449889989285284275061438051363415324773213403707875333422950642836857014048400064514003232612531020011802040345415268541965171431669244525138841742901072993862877791256622312137092962272678363325745176813276595998788941858421476477407727376290876785942884041021579469752214368704218569900786182340115318803334795538268431728522985500505398110397402446402700344920564084821129309655458895672792944671043383392535328076531364991345504498371809321984419176509211215137739223736412462528621498816358026327482857974698656818342689214186230934654720734752052062658749819774998599099213730094365755719472545309035074828378544089287587927161952663161336667680512536963597102031636458958146768430477792979941154864393824542109246788108387041440487176985515947276019753849372571481754923326223691776363406385314627282382111672227954794988096307116354207563125449410952796418109821561687379770120147931104131602110976052638220116548435683965472296827249371984377700616174853376439337726382469327402215597661952761673401104213892398416797524464642161005030027964506332669412466159834219105381425175336883900098689747667320564138536248159618384172873175902843365012858137859116124752770787641031732881497439090297836630739476824422534458140011554343839106351623058520496838419669641427760279255866814668905706281455886940281763933718035765366649913820304730498928721114124626606344702976247815468650800550189001260690937701036624224354366153768723882973435109790980304563510940976460374466556503486291179107268147948599773592421949913612881230338431773307494440202913100848170829176418277066479806782704941580864442367590478634973817523173907140507706283410933754190124577791249418448368311459552921194927661494245722818246841622410573541963653637317885857264025001530454411829691331782054851697007502570849384682300698012744377563137512224494293594302400096944177853344348621008244757777665045265101120358742632791196286372553351459690904451823866400966883226045847076036608171208439415461311199209863957667648231823673939847216209007468937650302481892821580665666529393067263867966929206531176260101686949031681948906223058455584932692781988716586417434780388771348722327636749602490536343494601495104400593669623785554371371468723549523614421862014365702766169826095700183931306180226062057987990000482298264499181144778648236835941263597396397663025035770223810115323611829710019994070298324283627032089068065208942876431596229647553414544812600381039491239015234964367045418064776781439117555195796678747526547714870527055108170447227112057385008136242741329356851362487844161766003870427740253410771301498872083487442660209746179452666582295517544949098164597142815339369697866885757557507400465263083959009790455845200886905563652464676517276249546350681532751526360764693690573089760835766293865219949737883104519187235859929151001794629137082738419776686786179979346358176304563586783891239039301386670477209372657316792056686693485253654863484148127861374698400742443255162842148027306817359066179310080825357879062281332651306845676915766435056995565571606335981346467504675394117134787783221531696222614285747092488290760292590479706476973246016676368053186422833169212209995642733976911573130040455544966862585543135413862226887192454830508519301313400725205948175631207244698435682096649427847308648248030221375882805301345681402584912373739758768042912259661039499046061041253807121268175744911714579244124484137548252308897656244969848305791374205853281993203091634784041235941301060362069182849997374110586837320266494341959841353796251599129361615626243694584203391625457476501712606077070512971170314702874063373517895595952305355189661352126206956529511652679227566960115430965409023543416350125647095641036573590736129890869305387633607550289858236400007621056064436630144413236980638701113933132038504620546352540706259645468930898106736571381109774726744051092103006783191636908820628920060352077609619329817032486954639337265002967660211319052292714290724276676547205628124761422660738215696283930593165186500244780239608435828467473654391247617603128183430892833187160484708725544636642223620285828994620526599701208455915985726485124925922328032566335625227435010749315214092245977844563797133495128514256380930316556421080291279160709766010132882670421904730870786967573929769151694894541315635470452985205691941577451590902912388850966226989779160420561225471215285573407038786789260579245690943100907085931406834409590590406159752159277420281112076230108235135729510410338800132549883356479096523088446729298528451946148652669427812286037382444577775464340565129197138939897298537106090810344815524094919565065058724568181365394758530482474952748381488120864848343253330017803361750890553419339109778425621662686655757895887724226858935308043827842059183642685094794725663336986313706235170963093239814333790883058057781999826272468435680143184658742340802112360761655948634373763866606194432467968975438250229295932587989132169700171266551288924666420230940268170273814507044849137157822334652946061066460403950848014591775593419221322077607687676869146190420500545765368176041855200440752559919562715302281571032375724079001799230997525192078154541843202091587136486715351765982498696030611279841871192683963760159576215083841623224414795256721603134157504455464053113030073226037410388988269718185120931011275585556000208800335322930119596290302601098168494959742728217845697361045754640153156595432650045758323574669788897796961075827748256879363762546431455983499398131294055313698309778905632096876673090941629243514735221120214412107286185063918221082642363355244962849111973713917426920355876929169461472285662438082242437996868960446976194148513219628362604724872606903841383780981211563085218908821484112696356005186663338956930740935954574518149836731027007945852955340134387451385491886687447694454885824301598410274218150476016311651230377731174839152587613692538350134470457230705822077325829358828782524487085683952548310266818691400024187266167433201360980688179826220830081082013256073313035998713482956423138588130028356568457748150211264354454244208702825662537301824147479072880427850503629567443886098074280528224654938632706688132758568921017978015331263551476910906544545801517826646672402528943228074013974672421638713679655697829870891982460000001516770945988374213563068393394732274174238393713722538378515532587914825527626110517908309259623113897536727299958030845359314609562515854034277246417932017291794124693949245772754782004935184149995706359567301115298691455380455012130375647756380798129394088503393776091586156196064171491743395968663520324505892242586474776778773137832980797742817569536348261024575725558181274048373928446672169140382253738926485795521247463144502128425272576726998255707467816637303742989364410952733880219246012172260540265873573010497809676276463472506593722746506288280133980776261838888928484879805366843715552132523974699313528534181445049843396614958874031497392174016917767064576830802983804603616203285912024866962346148258173752232123240638909734993759533412683413346010442206556454220899945903610384890110310829238537570046598240033654445408715471064059517043663412389941901515262545172686011540346604150741293424966422965839955533694766576846158060537121690700187519853089686861615384662428333647473401027184025547388192271248098626257537242297413563344868536763390665748304710672911628633421552062322992147260849329191703196013499698528805434035472761799803867489918581827957529634563820481828035535850098222813417589232874749990456131845430254116106204357506464918909608649245546200118208320450363388497038578428251964381773394247634786224292788709094103961268846369209127512704015206890124648041293327179108532711230592740124735398133039937632420867816312659923193558248364060035040649395766307035066434316012890939423711690403527166459822409907411602740938878239266901333507589916533261827832939914660398093836314715784461760218502881948078744562719257883897123607653896485771625033269942119818221276144021180364461959235073575012456640810523333135244443460149299885741663833387328774236148424583325026377426519469063035839046199772898049731479140621627603197043805511256946626668945036937511131718950804021134038371480510344753916508909934983921468153254438974387477123320806649025712947362329724898583792118078014490877940859741259112491056024042335631913407260701810859064841800672350649198284732759067399244333969524104908497817126056459005809172493932802591110608913622854511341258476063551270911736659358168511315053141214937249407317556799610703288511065175021323028134105652700867698556279630568913024928965320545100674386374496416077008063512223133089458379395975759824287753949875498507765603132016217007436430014599598552443713772676729251055283807273457503533219602282920532531327470234632955266264156075242341483024518932762126845173871926161255000268454962208127718032983147979183104553527331456532179055895655391825870893510751337688097304791858869414128627474631974538134574365090027659478392845038192818945202531370115135022241998459854611490803403744783330850991690758397007197169141200068805618639360515557799252041575999070318805541871571867429880208939798699440759225648335530852176594923633527046086219267048439623441498657799973870305223165271394788757415252343590771104648639391274060467845376590829230694832179572029844278612869493367223923637943098637352670611027184527927684312250839216358112739334313344884883482448832663321732656215568418539303628206207800630231014348961452407049800933043619967375519365782823279729672608137814420378234065036273362554236871562661370106774254887764118751430790695271731424265278128568331481565681013960653585164317286065648342337554348140829176996826351596005958797947102261692896337850723846459386426808158937887052538398766486572920948102868157266008412948136372086002968200219019153376421714644430856165435155757323247897230747866383377982236112632040642411806070963874777923659299914271245773935831765421214630764458726185149564148687662850347810039249811206231111859303542128485261144297385413517940851054785344195537989278998915786458193089175224295504179107506363398508671073382152560769104883304564752865774181950503785998131749029013218873841228005174580464746751297981405642347393306293553781508227128244909441223421078510313978962982650262331724703525466872661635920421617355191175903476654543654522020286614156557211020718067085860366332993321760502867778926088610597404284848427484112787615843486570649392813685118555347654123045405213495081953037602961791520568844706872325397089504049594839018486839917981160993461088192661195738229977421349575142385372634528324836707756790538265532074876128008097825443267917140543878023285263767602754985133857850138552862385180103449417019174234362322217441327653106618981821800952975275986915403384567451531129113964837079590518296553261255680550064348760091148122566795840727720921649848685089120235723224280102110635331656570198874502178380627064866915517615657201517332585147382024144955683729310101228800437998026013880802305192990181539058673066183345371269278705383574893815174358205512995624627158159647503912377866453352184212579466260302568035001229683135821573438001539954973635556992895388038127511525280261873959139563209749475807269213820535220481210291140090158510275123266872147814780894663806592650240325445634356740349050091939270126124953382722134154963950159524865972581756793977261494265763982484904684084372814753871278629935472971231632802301423847102241317891830445321098164998019177824365082731126525877435570500039013473959156959960878497762058440950757889931893077567571940975643378186540315133749446144830487033901476449698842902370698581073614444804154711783176787457713133971478275906038683971887187990839483967745424146775575339626533242037832218294138270951738265973997941380165003793721610898099655310192956024774347611426441811713402705406767767215098078001018119252820374416642080399709522109441822455113833572890062042281393316900525072905640395581587770862803349513846017594293060209131791533985635475719778432996524532767294434900174321813100822200737993776508960026970173349535672943186543644792924193242224202282924456096483380365384885890315284150253984089528220496293262560853223757141872343732858812703871694861306089857487040612921400140271082388428542129869083743469889006829149123065804246337471043086127223409972405262630362042574643027523686505208153009684032012354347304398184195789162103457626603922194805335043132551021927443775596927726819508406627819703014404410752348988938099457563610141914414302687174082401742932009429225795707241152543699281412008153242499013052895699811074980298096762216376159659315460153714854323714593950388831327937986370203699386435236958798753479387447540764434350860716662473247505148483148433604420936019939678195437843954670186868012608555533167067163668084504894646396169398776841627928635366907334759859615589754186483920905071850875367951785546547589478393269095091390844246359747082550293846419236562827087307587839974446375908708012338882023500363589424601370432031151483022770105721404884780801834716071725343288528509297660649513528784370473202298127153196301532265634000552714363727120298699053695085730350857401171018112821261863008400694790525020154518345666327055093701548651637256093885041492814738245239523499167064045542013875102854119389544704011504654650033756404575148696869416034447454679793531492943558194926808619856510276494885027328778772138753261299171487846297168820416363838513632741844420360204868925526236388427811764981362059102992686609064751506572480169745436016057283183952767752304636647923467640939407558903742534957303091471738376447258268778784012925545135890132528128515169341996924535580064127048992954134235723817117471838479004945845876580575038806233812015582180259370279010433506246471607088401282116495804526898155493233110424490495099627082483395900594368414146070911052338518992992303991669559627311020147402958560793166726561051698744134844048427498778367416431892734076281329406672730375295671544526794297875263736658057847044635869002161673644878710888346986763972020251117992549662826128205091361551736069576771816774107468048147703103487025320541928853662824777327133624430497004865651277249904745733515318436774223994902230683162814190118234342379833420672340197053537675408226967911223055982456000337784823981232314422791395428090550945803859138701585653378231407798878731114444345836378918868493606109848659717345960019268323478019864985487251367219695304016061401251215657937085951226400687892704847467661503620638336981993283426303731462977256844952297154664121529089691231058068655487734136054839144940584244592033624933115509384339718427943163654189666274415048699264231350845310192187241263317619385611479583017762931244047919073897700806749312557503635259590066370326999535140223032460220586128723408634747622191050337781687557620231989250398164002503274033410885322277640364727089331752043557380606490070032229644281963285521466438457026997615443686268190864165258083876881278815569485931731533571946269725566933910602005952417595483130263555625476584871763408933041228546528295243262041083580768693024569566519901650996114016234424588322930474412030357875684184971026897876544179984463314632443530590227563229017355131609574790913900562286064222284067649553854635512096819964747623589387626448335104778222869959648567277593322051636121444658481377322586237629359969683771872026656733444622409620331517224683570731235570563293248775297417343236733439810034900871893499884744931414888644054492421109714295106146367440973442929611302708697476903920145934745239826956169039356582918185675864015202153085739933967638418640866983080129061595922548390439166751184792739131460072159749529046657583850254343906803121263067887886523483361259486948003989543470593735432498917136898991972175753565034946358116341483781533471315137642827767195408255595079083343392733628444006970422115955922532718558083581930665663568164656750519216930595149141544726953257816248020100383794381775889102797076749199041505742095962874895578607499035439716059617539043551043009243691262058522972390089510647772595411172119606267265729279351552878706047266074036316192864959439925296765508214759312757209536259880677561990774822306465606586471748539748428657950724234197553208335837142284590054259926645139402774976494237981304482276208557221882050324675385356863515687270011759947123596719140228349613243179493235574590658105443430552274686812143057075459536007230251955263723211447817977420696337254876383330361430746746213967966561806484388586934032046514752874727542412191562519014180606002149992817603527044057083560163176063084232086362534081044698848675678508491500913386961012567352456546046207595546425357013119390221011196538686845010275265424990437419776223249355011545789245856106173383440872000518452571082159153965912167240226823457316207595305833169314474011948943235053263300746800376894352101119040451066156521711291654771410042591477930992545977065920649667980765914697229042085204042529903780815890866142962706128067193453966095791575369265061221590283914110132742638109037077288237907360126525171216565511279375488331187067025566514019507708642510100976823237585110965745694822929380907777411824529489145867893752444191038564481749492903059240331877239186726971097297842142377782326441514447546558628239890084960499972104030509421059483701773471817508397978395422521311465616238039209273373495907858982952963807287347232802718102986289236676024384221014019501455946560311822116352662969738973239691262653677247266355962371029791333098675606285367143322245605741927211500007951055422717486451401286057950808142653100122089375367107968385649401021151618171629225082473273724972849393591180580990045277852271998816838134259662234183084225109954440667512717603325758956743245619388806823950236486518074182568405878953194636069233712428347334071694042469161865743744247047800631672905972895220240743438160241955733089332737032416161711247009101624453273287648882525232739725226848025522397154673884345413453085780759681777048509605266922084888714660296126987430883649929744207176421705721509242668263315490338755373182178399585395998549563007182924910802180350744832609684882160971660145968432658314448652088757172825270984484308324703733565867480285255546109192223160536186912019001039215262708124356528443096010258263231079869463488017277945385939596619148105299048854176632054183885091253306108670172247292089004924603109934783706361139620807017079871766455025128847977109473915346326174294964843229894508739629036072241198973690743335463039743063462718015596590865395545052962531548458009723486712785900569203082420704593174184678618514582716932454345744090605571340175922296669161076158137577922987386685164458258891244178645932099655669838319467250460341606264429636629868576905419339499681048977390806688962123190489345351404060562137870446842499381049275208899569516076710787635267166764541719493491200018999069364718206457777784418582581771230915670319292931893749653712849485438127602202351254032597716473783580344973473244155796549838856285036610129273897918001245850386432936573411945059150917840112069567098063666980246046288212763661618336528072089126056382255812441854688966537091719766652794124132177924311607090114385937857166648723261221208595330112231853816111857410151070427187756591686256012319427882375636977243195313107847274210411240248608410214067937984357631654505521904306829734918908984014201006018491634972959173777813361166959802483308419258442757031516892783036645354548155686236980601064385793384084908774913320203305812546647671857564788653269844751810429176693548393220276648604821113690932269186998922101067938246434028416111669693139348598539549055044100470456092891346236520862085541165930005158622926228515706858407023098684397006000155364180681153454890895327545055496125961964676559899239335170391242762125353946159895606162770387920608296479383830750812872743197120350978847438905702158737675105441150341603069517766805498991665589110462876222767984717084447370272270875761650733412662357464305080271990967679239625562417113119473123443956796355158477139134047727850501361924094751955223974594485904905952102404621185098089227143653806674342277489182406399544324919792539078097478201775147919683511616135350371535586835637468159498440165994322161873310662124445350307110342688412111180803666783778477569542921667644711305536006198443505355049188197586381059438292979421031737293713323819722350491474804286755501155304122302012482350309225701354975803700600644894068911233275901943408358015876950669728627776922927442632212198552376029128419290752834167071328579204047522157908492971382551216275139276425038296031676848630099052116660040495945648635192027608165427321490046803849824328495902414523719738956236109399928378168780332576738649296232740872752479380132996063212466155220456600506502885771999472384327446225843563880624954123385759899103806248112400735249139905448821540075017026791285654824847531020385079405325238669363363527389457075082463237600463371808341781212943301178603429239786894331257204129029100768627330790103503608527944785292027990966622475815049804888294443507361257703988584704038934814095520038891529909099801238093297018219692992676965743381995039442859512952807004278274313743738825445580472551813142123826148103358614958510346227869175184955534215662879690205889535318126290894082874255409664824415050996714777358792429733348050475695712475072953000530127718287788250148608047482472534826720587584356517963245828380913260164803812140458339623043441973978253510481045712746531748442475654188312555525884741227410969117927607694697044511591524156310680290569205016363361645801372607387580468309851983063336043715612006925115229119476718123664305381883024747986443652880264567019407826312427670589557212525070294366958728478280354555255729533375928542614244887964091584842929628174881124393759679413108366398502062838466324786650846588408941329781304088930096983489929812797386355756560016306871664414094218568570335715221171077437769899323316529773398341913792231795777913074650189943199636057500963334140276571572936268349359052302816686903821765167766580814880549833724997315708868882497194909404489602062008728712657333076870122506572212852020504284302019212251427115830414532933092770569015535811112185574490644697806129777910268981356932461415157662155835651594678838223178296357513212121835549461714044469627029253793978287266384475575377140016543796424073235681444254180025298276822630036096426994674053729156225342552399699771719207997668915791866531862200206383977960858356713695326890815993785500886602749525618467027452835732629703622593966918762375650855989411303467470945270026377169998974504259382599153523899019242018039577158053018884849775850708849628697702136152250369965476786198944455698836204887134858084395221936327467888871692883551010364578262457585824793160358726784898137222625317138761839538502980144506437803692483892610999293958504524215893595730612099865962307071984884292366190732040132810560719534938783642015083799335844213102307116598020130888905261441017849303774054240087386713168516609388716687221483562118624902230206526779250435413995529374124980070748708765437621653467558303741262169963707394225389775863654576337756222679708024099165697453419848477439275775051440611170370418305582031972968220194759230233410003927823921177877095664441441632261851336364003743441257608414480249306198699448288255970728916746104396255954827505489696926964528409206570779442799012412246504949656817745958012325340439553677408857733394389908304904392847404291175506510298540255116528102909604832041853909838682847907929467272722531561291762539231723462115624065999034029516065285261260041015669313166919854885571558829302436743440980384302709154687809257554350350172245812122505320888316235269571763109401343503637797533062510571373544843266056601466377707323808040754458615865672263368547489859743301228558184808619679853285781406988083084275899824431804726241231074324794433686716034419606030509865107034728024956281740611747687699560431082364583576879616980360978801021031282918136584245889321726603230707336431523672645522143919297416182454999592676966779748308697650963329410148411841149580351452439491133799238795371963114780166121452165724305650261932293098138199355016312638283548283009066696173983213091272474635617369456551337870647290639182559761393578147754485244415699306602536122655812945618722180783737425613951912156012614493789345251282451137347155226968279826773338928362925316707364629037606566463257295241175140936970473901876200597253855682224907557774351720849807099567851543974568794979077361092851073293433579139134163113362970472398456846918532570960512483804215061983138141807182551933930237983549142628244120772110307004911495826069418643609648272306828696219510147454861138308669946114591268240009539786300530226694478072419449867126252566078522736434842391090332111962451133899624274444273827247708790907480602602368214063615791049469545806937697934388679479874956113733386628046753200943491898189961765292610877888115256400417257326656890329115647641821090983397777989182399046630167178197329670518432703111155017832007460489563288265702542475639145945684386803165962862581339140803949959599834907284655815473279532671835066488679460165853578978520348581506689756151958687123727223224201530971757549529664640277924479931032748739983591637889086360791870849683011758869404473095319358918750264307392894046195926825413262271724038635894007999692175448792696313571887073509610806567989564685561501634546667198264835577731411016554733633277490017858966758040781022473459053257632241176481832883290667043894505241950656399520971354643477340912528362290060631564557883790631446772697980240841179513994514805951003630463187517986075481716797214000297849306486989569230684999180803422693994263154710329967032628674113242858320148502305306233758637070363101824262872762892072409105501317473451370107465734333722177287753033295231165251859385394879962112424739516555638619487718665492711210217565256025269523465585750998094534173642931959811971758436077963632414311075876716181244503786443519643299568662249524064993775977582920466945539704033846273188968475047109194738615095877614915347546863391681942561987203904837787118387412414677826132896611608471068744796371700622486040548654797069630704405906309235484939772378345801843651369433382221202314789830931899922347639855136699517116748693285969303344889028028078531257706242158364883684386334838721840467118317733448177781073319696754269082781994801832651736182700534584666394261461660901885902132183894213779329183443914916577753360332358144165445805067494995363482727154557379682180732835040589419341361512564984745504722079566451251138925870798041864745218709056864851973768174852277389399191341837874558450846624339199731842509211783457481354000560537858553654112359641316358895413333720839558581451357657234722500383392485730173481523581768169353070163148423940980809953408490689718090634242567633566006482442657474534377676608615643745310027416077817056382510585019606189628934697437350799856386555135620058600854199720569987948761278409949081089640303674685335822037725178610771665185671118557909225668338514915525988411242461090529792403901187040213472111391501896640421425742876078991650812077788808686736357263606041796849403781405835158183458122204219128969208826123568040927896793014370200488439603741129840130383304787026092602094412885836337936209438314934135187007908848662187543297843761365972985473918850898460081354859769210428225243609880756079981549210395683069501066984891915455664836942052472162386573270209184465103116756974570868564454903980257888529821240834171001976550652513922263697154574210330260881611360958675619790399101604494029283590785034757796936066656451330033055007358260790468077673311484193940529405584362458758775340788406972224989956898947426587518673967850621268980783361951006917914342403046055949783530808715484417567153599127907490773592180000384203947137404468233351452919894343568671576279360501737563056329567269281851825883213336192085676188021847040878208652283672325432081524344262222577374608745759094204606005182659549804100827891788801459536677088084706113061110340563335014150929395015359047621692146708844905580538537959087950633496444064596303818166387972659342583709964503171788683704931111424668780591407046574446111857797776817632811037699144822649154537279730062355242478180039309358128142301533205949008082239694626613986237857377873985111930733986074390474034851510127505880058349284454581958336799132134195139008638938245418367496216221022141937761632306266880096194732534589745536750663324417468409318787853732376989301447287164223886986133460448254839722967525285870525696253896340800645054446660050658597041161942992231879214396367530497732402521382532745719239030813524639156570884769182836572835960246098581304417238425295947091453785790449383889982480780852354138686078714536997179859601345452133613486828831752456143574496895394210462597344785035562985908018416346564153834538045372742592950606466259200957431276998497788840683581525359014527456036399102679143240847724199035456180914908421653993335888992549279278915749243377157532161159955235154208401268880974998206696267167582712649750595355141486046491140859791065419751217578886895424769460693597246033103073153088000506419278016078236712418262650679063503894733461204024105662617967770630675883634747721100294068063493985861728761633136635549739293980010414153435006072668351781404524255847525126256485363914648422026039349515054426946901840847442189047467177218826938873319253563280354094215664375263801555625400747497144754450986146374978283376012898692075509120353619503645095497824450793896323369171799994965506155212556471757430043298387992985752906319497899907478405007502360579755176820947320228837835924762609816937540348848480449478830158430574233811927201768057309480971495382422684223078498960521298439085911956437590398332959860872718179893422767036768244714561651425892877413522384078403488333910482948973894766574251543366894077502989845309291086613682248831307288779788867763091827200181591597125628747789763117023063051773599491485784647187270344385839280639296104632550909143990063658799868325065686471732576272407755048945558312709603331401018487338854403961300388129849665232099735709911996996342642139683585436573938431789357359166351741273680079433425499197863038233584202774865880691107607641009901012224536411240387919180515035689095473010704529829699774398863796064071191141581598823308870164573138945063522873238127242324161568686004920522652332108862298408240785059735364343383092310633603729062087450484220602254543499700007563535917546453871886329290534869327736843763686885583373642257907777485476469182567653642418867345441459164590826305851032134576664686379851510259217603259957196995648862105865697712602640899672248786525621318374049747599114274879264071452207361398568545006378379249074985825912132185310484839497783122457558001435022903143385655393077012188567616866235866769964693854941613669795523689873927649170541197972631608416793478002162105958586424691413722252572696464779913520638191253983591502239810502496379048915114761634935461211643628624967616707254595044463954705600365419859821143167399273440607612880848552444367083070218149437292412509284294327750655731667641796696040644000574012907615899455911153800429410823242670017827547799131202351443397784981054465239648853390484356492692555375206406151545486856093338425956551458894490355528241347188054650582450830815036398643284900244192497435649386982946096228751253587959806351181975544758739403127061995824513347478738930029001826395375354265902778327557837397930933092003264768970948306004040470629759134917621614752111872446934643073636474660828259087992065757943404942678151607399102875454055040458768531664079261886190074767375560397389848445624976932324829893577340552119253612965827437069764157994943038663766716961729463690973935473100701415713913668203872244176743620110017034788114506158402464534902759223434985538557444757610636797963475859883256235468994781870938921533170681488724080315442210048000957635162530323825436620521061157660285283692459477721876505516207147886483817861350661094201430879487042734636710090371206173985859070875986508945066489756037372586491099853297463605557942151251945661227368764164502134820187574996452524294014217714749334741218213944110042069143779616646085920184529521484996513180972815593774015986620498259108979511180567767387862553200562200259627381400001266607446632563773653720425581682666731025388481722155598223713834919387695434364848652857125254831072748095002295515386471988179959987482915979597792426032985194712287217970528375705168456876044004214254802879544789445859956529270807921717189967601168601507186115995168294642700103009533915469164846057487222522322167018043186553961737317145093004442787367164454976586368589180770593063221546352702961013451943005346839030436399572874444943296571314831112354333709790553625769265624395234740683153372058126721438542937050260359599717854974294975034604294068556617463114075475884393317040951083767301138469126155673031028029968251044452388265088426049995270618046865710514049691923019408104805371858647666478888878047018279289959811155586195120662076601576000874071315797980359154855200560572594036358236213302696881803533707441569452282258093680181926792182915556398986953616365520700100274998647169286098095762448241777464978593981874154509242356748133259914313295762697057391376076301564826609171549727314702256934278901068898070764499868394508787605021025423474439731122111778564611095319367516708339810816974557683920756496238027347996021429875483680805775407105507429984338836057155789415416671319559432243289734084933189982614142766198009492674450966880200119864669735649738817653555836097691121302327925152644069174608217123424220389762530328257305366836089949915650794674778742044125735073375084918935139083051440207972449889263064734869961074983637831997493945270089771364634930698208302671234146828997189165197471249533295289277967875018421488224252766661865667855864131217940544892429698926221524959650785890786255882005226297602787113419344193797063281932468252928726991424819621589218196992271227271897159702404047298169000076919932892882838451896874749242052690699987880809926576374182404394680467719465769487187712338962779972191059993380827622736452122130901256053145594236279066618112255091525159205823705909548689165851535889464375508358057863626035478297548084345202029407068262580206249312106254682252122167560280807135319115014166185849822596622401696178074412120839743838880781797779723455629304494542591902573193018281508842682727219220802086317455033031157135823092987590178658563562819576914189124913663107804214029708374120843959067979787193112333800528871748656898751027898718720694354940896406901315930090280094547179637616836349309802099327123431342277963541054130502792982373919644317150606584171046042099885345230974040171636744951423283054210436285242263802207457830324766713452392018470572506038031072332032747986301841912138733616007631313261799100961675857211116880684852682586305930861466213771346508459874336631541331164989592068014726234154696403663375070682592240591545006273941027803749391062945128885920908073352920405956084463458924434025380915338807607778103614440736749008786339981923227618825262362077196808432762297129139139274282695265341020419830382328929729225131022496251439865385251938521165199413258439667115639880359063673287757608958254842708245322198467227052519194839290202475835145112678519077854769518145191050559340157388289334623692267598970551334441488352340082111171280508035307157293074804474384969637877707429448191253579183104021901087164237772246928045176072857539075857577027203513924097922741053092266463485236949424684297672961491550773303968711025251443295732349178683387494496433215201790690057980031236778601139117247047863133415057007589263861800306308677497319474318337089470316656954720601486548815932659166912955516275407454942172089507831160841002651117213410286747675840637998418850556675399332222200206338577378533170593022224147252045930487440371371343961139457614202900193307908409355877839774508993312006137943051419355748196619204311502706463395842133967654479264016673791577185385654755818827460748427391825958185028489386705148965123534105218353329047671274797862362293371248839495320257660837106962372844414037162456121249385054268268490404851843936589327231796034902569354511101361600091138571299074971567837705788287752801040378957789075500749281350365795173760995990227310460243850719838143689531892798593291607676073510892211235693342796908793262444534133784161867890498018982120684282677145245207462110271886331171846194556424355249271919101319789764215446237565928880108514434834684938215663632681846569420915134367193532442475851240066669700369540278804422446968446702177088318297818749905572182180663838439248034975267009889302168456544694023465676710908049841591692581756255318760223525528141664367004820698105401461193954563391833077919952506711259302625466028117455580862413576812631647253029545738612226137010781102282562449813604757739534602580183551167795472242004674484127403519385446959022736008030085888113153519201233628019505339611898557211914106212101869951068889084559725495574980710944928967476545742062873266408391299574758207038951537121378816357313455547671269149010751481598884016661410551575306247631694005776657136603118593225491338982626549207262011836570393231042469466614352770402798334953009908931920044495542323897731797766890461140899223943539486274269961542151662204078976615484519851498613513328817396233051577690648093901223119331948496622302226314663909318277978877227733870735720489533825951776816600040435709575510785419517956683440679409643013286159934935916965491265299386075987185476782136967755561980034952022886026377329231752512574237308413294285652109909167712336071191446022787782916674525972064179605295684246614125113225045050738475906251153949056014180300309728068387668257746097785392387505411657073345428106458029426540944424162847292879245753788013363528234884116589477656718363341827177596580635031050632411183281199576342630364406245145480218974640870964875217010250920879091171644303103811593154468795141160028022319450568678996820757228319887220005224153036283958903286120099992629004415012896917520694887245481753559937682836611797826356923788985634204373106403109348906884356307310210629104043973729264547310714277814131022105859051861083778815479633631943264096195069072835145046836340196027569815998515718696935624715175248106393408836563796693739364122865830658157610354218441817630027379886466987109094490291855618728430819852561169844700314765919793915212644782249474665059385481490194312751227368880736685733912325059877537752898177919806789873683647572828364181929077539796649536929080943360296657060357739188357521720197843805934412764047186339595357506431751440465608177739746979016308175228040826938379243205067829570193498048142533567503488006232962802030274259086710107981877792304845205227932777493961550546904864882946388271495139322213063359584504477603773306447428186444528031268648885117187514038878094424250451120535407939845065083649475320187852232022918169675052132804987406087913345745232133574172503121202322713179673904441702083361317171480737885272465951561138572475054468571033255823912038056294003797282910141530510953573929121778421674983359559193606520628476270568824304650508853847785409054842263864590718782687366219525142396752801295275981317278463415905413054928865407349201104537102778724876882975716841886421298041345023432062591230659929491372049827041465672719666036624824069366986487499438394682587699795538705433346760802508868249112590177633185632925039275705939177240924521710318221459548707684266071024168244680441165010938694236356976485119153538747842483794782683261904455350069435862174922804804619899131393063100580547091422063682652288546623853104722838540253225218032135337362519745504767935902679849762671457910656005388210074419367609835189537634558064319263586519673126723313909725349680927547223707969333779645665366407295522593275204908050061330552362999815635304146812845149457827760979300032196099748930695717959030808267554652941690451428859789836976961591751412321657223825422491189558490064237237902505099915490551078945544404580762855024754970700499494535403239501719896356945498213408905455961006485723841076123199266805998483729581190996466933793272357387492797796796201025609629206211723449435065098843050196156134278717711197816737131979219769272828383978404544846227664276296006482163017933415054465268385317975779098074324171121429886933691008698541593601317840553617871443790648482872364873963107799248090602050314604865470378780917777337651521454663515770857459753207683710226764294599152374383682243332240290849362244768772828017451266652624652175486828773030699635861155029359413221127572191302157547347049829187153672821861732115932992012319397366082524467152534450918588635742568864927536550215157339639595692151333284678466156764933204976158169651667706556091514277981940197317051865003798698296917536572604527582867292834596818627900868209379876955502329060526205636688604143523630921922252504564676211363424600610179798860198272518780499410631464403813345957760780573166603752881974666688736639814119125727572337793220349830104063474669481426092509363868607767035936849153735623379504513766695635978700204461177178879844065463062547243958646174184877916553391970242940217768326117826679340125992542399727760084267896246893176855512748789585426374334534120845696784849225143714471742060188272699279596535149357509331840310270880355613388623307632322200103257658415715585867860365156010660414611132593987412843667638932998241137849819868847590272951828615370389456985950301960508705259918497343103175306263744779402014431961294129873429958712678089938184625727707612674789120797459875849248947738467298535441240670784785616214014302182772544713722557449047484114640900939048316427042113177059332991224242284427728383871314795426197563560354297202052421474865008931038356658054753460840901777838418710711563491914806492547795078121219324441990123857164192384717610001222089257134459823718561623322947048284540038055702232744674331706362476942684839606771321180469454570066101849510640044297396116049324066785024176397093187017764897952604206741371841172417777490272669769176251339265779727604017143486230016646802521014442240088402334642019698721150742467068240545811716088632480419185474239930455556847234083626281326280885431342187898635059819710912112073966681087352374112504252405410007073864774816320225520637903438831841655796177557457003025630194470081713370497414670938418047528978776562043158000136429533646348770281569632082782415186391035117653826710270662497445182690080266126506226789062028489332077871031031006031766622458764115486441807513070007818891969365642015365594745206959386490608251915498494212149858601759303185567795983907006499698439431281102130562376510033126616859763038406005850567892995279436915526773045718088646581835999478088419573697357100386999622858330188186955187540796301224037512209794256683749585753189543020211202106550725244817479594554794028963770386806739018154111814179742355746016525333945872114196538648960675788160304142026350795457586700104185495346265125538038426490910782845147654015185412649062582050688217756068092715252182386901523158367909315695645821467475097432989807203092247947755914022572094869797478526236541231001719845824838033527269766703294965612944608793119918008485091882446034895356775200118599850296360552212767257150247497545947434967459614017690810746784513860209046943285250589234146885895738069640821326533077550493620885368465374885459330618309640862716806234950715803376845546418094141205248988785925781916425198676555631203020123456373353302375972600668058895790969566728191382652957779817653949054310377176720513162427157375235447042299548865874826376436534221580493957882866339429504124120230659936894018218427616285516144109779242218889654743952865740136252505052713020196039275210236564306178689100270586502567090880017869406547896169321861204015991327522274862459449533489047107716853064682328026939532171226449556932298042718870208446905017069497013724895344501508843483164122592790449901706566748645211782738542093410928518964358153904579849665620937006789060582346050698795845204474248809094599158959207781058172051098810001045632384701405686312327724812572778171488271956012555381773921690733730889617708408532537505164846391814534588314639547799114950689203031169552158422477663465436509441079721601972177132575070367530701746605480012315483805283366880699102683675725817724071192557162286360947300557366669574118084299907186329676975553761835981555039272310656804717594682964440709425180427752672433069235319478813121955803307865713395615996747978581848646622592454129235070816398643159207304696046922456870709436444434381419639824362837766723333282149555627373465323341188269673196292552639637245286563998158824863679590445135028776290012239815598051072535168509261166458196364359783057222673986058124523355985278238723877145983849172773606757462979283035893840241126643167207905566695656040959680775706900127078318021812094498917685618450889157959528746341005178333644432512355400444789187657085642677718231239361426577169179010548034588765383077624842781217387721822568215911426538984222030430227087272683303772669152029232553726723438544999072182525549515129610514667705776338764390204864644151350127934445236677220788448150957330709680146568216872667901666952851815986253707574041581835766196148494360983241521201813592101098501135250132400282613126796481795321745540634326484193800295573972293115266731220329430445142209790997504289022112242662286797323584386862428387261220996126238198513422251680338847937137001676875270778410762438220319475604815522662968218048422787393468520633677233020556532534275045535524417538447579774681094170871433709371546526027038588061231371291273692894924417512306195467706235380213182215547521081704532970739573899408941890086483666722757185928658264684855054539234764773310678053079441918105353113461130844857115962818981683139423787006393037831387144141699843966385497365344251516640016127506838319293643291807430026289903275669746475033547346762469263441094882359658862359235674761129837180669316068937989227819202573440597431473909175866217816988035197830096020658480864720340395853744393651181497190381335781365878818125913497127984530096719146217304411440149113111842037832786062089582251312664632007783068325565943888623961085556050232073322423623469239759761185881292453928699991812915155621127721582541996063177112047966995703604609381624038808216215057660253160525073756532738281140449127118323608191096581753820238026528105126011684100766280550546213336367094518610401843893785076682802155271204408945025166090271532752242009586007771904094245955361523249606451109492484497107839798526865273652284587338771694003132364768942628169061524084051209365022878561390312855145877183603968446046180158962473734861574320764998939369347009006502080273027129360171604719883785641015821526065531451091433952567697395664399659085010942557587774423666889719616417731030872680303917323038462779241913209671691639439559910096914328196051155902276361009853639359816362747561354931340854974138424962031264906763500174369940995115586134355030582787952912136076017478409601340825013367065959403402761482901196149131097493157670590256929809324382330447483867318865070691628469729585396818441261949129934655146394793382047717631856074830281378192140447975070950417992186499000366558079081150599457925368772380034961493226770726014820340467701961336933921169516803492892617486828423598958987563345485182169405879901719982398407852044962591089384140678824787183131001255219965232165766892334483552299981773480861143240627024717229163876664801370898792276463502088307136905229366332327176881352665361108442550463827175403785099575268976620345158616981689111127409438853903686887913791409987742339101450474523614631645235309853937274056905972991784562237702043683424852501761097528156432620745756027768931951219850308436439351254511830763035087784814805967414996788578742832026118345707564313896412882639591492049746875345273312259843488181235019670506490297431182674336697403628809557200620934293695817163840246393262855212307148760937365211543567401688975595721960693310136333980448557813633390835223266609741209021411318105071225869847023714663387718641957976997289601846890886848126575188076463084460207922800076104676718069699244698312505501294360270416017430843837263214412201750850456592335159180792039413715513034519235939393106530345292027350298594984274835570827551079477362542412278527642425303111100624184623544205561144850054016004242336741718929559177570385402962293185348395745968995015562430902203060005751346399503014881059038051154309871754605435697676831349856474632310641363301279857360884198053341589370758070796056084011999072262788404582159401341144653259638208212365865971329431397916380175412254563175398873967105242979888702158621166189323034308684742525751592557431035194398837029269801939862563824778948066106318836936196698458493745135833246330135554502383901507548391074253077325392516782909287726293630137507190777434393650034558756807780602157617598153413066083075441292818698971083574987511787756652569704854872711369777482916821687376385335847920472742485919034104011109599448870679328814640372256994468016557019977085031043799822287638405028654408041292596957049273902231216175301926012662171267175677479069036629579768188739319422271462818057412434314279508201424422135194063210821829277010783479596390856877729547381413673318194179949436518232404700307502978619841103750844642015859099807013679906177057461792633397194378141579755776253947909409062371611620154473690752926982135325214763470507543610013489004222982701298333838813109761275458869959602515598109789283149329290029405133233343940786275748171224518291751500330851034213216333642017068459404334165931337326653895143883438717188067113237691467281995866600873134153420621758231889895257318581972370451493452678622529656525408460851046996978246395827477111865485859557078210716969009116601198955281901592654417576899341499543959625598674428605190043018415191900207392451159669991719469404214125725725252300454884194992799294756424248604908347264074928373471313419558015774020287222257985568652120220960428022673778500854073918853991697109498482264147665879372467828181715347415500565196069736015148319855208420013152289846715143855182938738554545975123274091915569401184876282524947729594836453901525698636769456083142108630735249680045893744446893518437087223292652944510733591060237736869996347973327366477870680378691242966616430126464053742286836056362365409567606938267916161212826893502610739851510955414204648165411878350085917849251066230184665517704950609968948924006887377989150930766693541819269023406802522692944398414214063962700947880454355500234952056645178715045811221243246947438251956978536704590691854723422921645396513171205591726606213530278923414068056479226765736880648759015968980531805885163118027356260277133885558257674587691386039159617694567856801033429055222282906263897787045176686093356695539500709251225178619309514934781829887180923817778761461838886901116202156638141241017851777354821566808625098430457853273011410865031327296161331231432593508931605552606982694418283319041191026323307273528902077325746249267414810790640935719503386174046748050289575981738764346621728749746245678379441043044654910096594274543043763565055190296466987506654871171834113538325091814325068036825389355164338577409726793566231464833519880807408635826517641252174273095746509432668502695627153981809848146286191670339670744706032852154388381867453241475165017468641006516829916739033088749260554009400929727702667371833751416985030961781113151365319409384863700491302220408279666727552709786880650876407421771287937141589792563835840231027375032869701261638357630242999838718731686639883756581914452149459947273368017368584261389696407586620758311772368163849169288896567639796523175042401321658419972078110502503521843881873049977189497949708584503616804121258288183969644073298355003620203388808550984776711227790269215005003328702229841104926831815917594222164699113703946774528119949931869562714206744723705354352658545645409787659673674446636788371437984940951678170526663551542195919319816769101200650160162786085603933129935439944365363785114100887050068703994390630675870588621956215534484334356451272120521704229119446023429033334365570798130298993273764935397120581284132285628656965145883692027250958404880597455266652148912092294444190319151201095085114398088726022571126592519757904797135168026026733562711664152729163883293040281999936057815891737890384669631597462666991963940856016185508867145601848835905896289998818340845757943009130690836161789152537894535613127739369211688696738232040415488427741028830530914305438581773069647424316551563855842913389056522683678652766696232669011446350713166827649744570162141593080651221780074171805492447936925013348067315457605838500905345453233048327504784236228136796944489231059592094000793790654470021652841401996465012365268965001113889987966880837272094893515866757344787645009528471457932241713693511682232168031885602269588812207273107999111364535447128706448193011938648290302726249179717368285637790180367385065953436052575628650246671265028505837934246957471624750340259049524356230724125037715213173171024580336760526445026010916561249898083515634682647607920230597149311831160040240060171473991738154780233267612361973274159398888327171802216510737827812843238519223037357725816421270091688459578333709359743275379356734399219298799787513328654837042409702804072658859771360960446519377092056594319874622575401097939638210069392549288928019473814761315374640548249649923006261613247813224372306873217689992812388813254849610320816276573658397714147975261285591476957357141354957120879847744586249076002457574205006778080474845342685296625931983895845385268644006332982284720474906508109352962321055770679332405588237147968126957365290120664739751098129951720589610423868149187391038123012333888040890847131909783673156435321309621960033311436358051626311267270332226176711250501367316600357775718258214987930426382562746758467218851643646344529931011416454122467927784249100404285041531185438612791773663077386922309892689984558566365700485669375448860025535771327367792290267857709062660249147386642182319034240903584418310728389453736573501770891379077961595193402072874374128822879498880824248922565484471463453291777774757421998400126781536687213869813451590542144771736665220870508807580642006101378178462902684202639452399721891369262895865380555513199548523872406243776559342496538296336547359861799619586365332611608867340846202949885846197904615673409234891319968601665183835624400029688127636719705866573919019482745621393612178063628303860598498780951441781447595165042043019438769701483847289841847530138048369372583019811688539610386211006344293152479240269269259971773847788719726086232647086812533325652284316259710896006392858204438404582890543508290268361642044961178141098175091833968316932815805402039429505606736080676373378679826127244064998645340285688522145054263892057110744962093960395745358034746471255478326555015804320394704156818634739935040688513311122999523314468773107088823034976815598201453245212008706840235139952896604295909539439094214145324443212882505472063471702153240929613765714153426046576860138710270983970128660371422505532681752847263173168495460033033561954704586854698820094304017700035831304319542686588166367450556069802406542880301863057303688528268834063857856021810024478340214252861793786399727591502576140638642967883750216324657757550534368197961948351095569820186342732536302309319726480991177331718707206782645672297582808367270136944476818888663445717608655383102818817512678035554776628109986956980610861427716556931703476310639643031754448302339944387804360658609701500326058257728599492212560122890374271117177261016909574681786868376007824723975768157111720440979153093127565258144614894007828164767134217091082881504863320246812284280940710176797010574255900922142378874825477258059948083258978960248872189328985843869081595344365253228767662265195957212990614768395859308344610089192050620453636408826654809366214209218253980594558996953427958775660309806202929959504301859948763606178171274240311474294516932023603862989925341540507375936955155884573645974619559023602551272385735015314601515000423371415947200529975482231297151829346694296536682195378602682880348031036860978394430571413727752000636025482479363728920197841531695481555545275572917354829290183906905103140241659426231901083308805795446577982503346403591445865785328544274594888114363310450437730945206673585302880588732720925809633939148610675786559468476409094934087260706008168906335815602105227752365387220806699721012631053444500590630015754848006232710571674088531988874020554861904552688109054943911516918971146786181441067217630451631105737466642283268186837978692797642176248044839202531277322399702917945579289635468479204733652221313935504696061418500128950689169592670642276478738303554870448539012311184669960417501905783765496901094816944504380981657487131426328783646926619124225956993075773169535045286854402579387608353884696220251940638854162508733743942108318294269393696057913463794531628955731708602526336442418542459322259316644131455512536355677558452340013954891088309746870347017544909320973551241857785415992688231247289636532898420640256882104582307852762778003520031299215034449849551889571279333313670813929976660740542332603850238788402818515738962251057761744587813037072595315794780589586398126908079301995354241910399523337027199251270742505680413707052793928981149620639916519832904477797749366852647577215674707021254108454573846137235685529994134398976600520539050315075034544652531624400473809174583707557698882665449174037941071963302258802122360599540520438814889344730975870103242159529289334351093003480098587674518464282554982623571849030643318373459528337824327669150481926697373796579253425997659051139084236260123366633871598343346430739277345919871176072820185649696936041013111825502700920026532072585492474445766607145078270515810162878760652141456648766736310632600482609058977361682340592858501303222351838624977104308271426104821727051380468248927982324391648520899189450544353328372951458742733908542000787509087127898888852900578402498378236933322511381790232714835598606832552796716456731234052071403956653024576802232030525359906423471219904584743436806280863194837158208553941309632364659232984866588760686883966390951600676845152789545620498073497550412084476231608655949399158849503217530792913137929448452382564781165261949116786896835866114398601621351425214386213023654107898044500613785969960312971262981040743618815295385810366965510086870913234922478522072331713617441193542320862519142137320297189302791549176659892890129241390851029029934180051651915601173332663058385069299756311509138425351959669562836467519711662633687949657215015307058050337235090078637498028491258974061758621092597122123536195503222706902319540971159137611493212715734412960290700347902967467567654205616034480850721096408456303288397911854862290594111306507515531131783910342741375186790362845503294319620291429507400283752880899353546560282073092516146538595745836562589273483456476589673280069709265950624998071593427862217518079339712535256893918848938678419187747118339728030334125591169032314804740806449004660469662561439529745084038351995588442247456801715481555293876984308913689575998905270482855108048679333031706690906816738466660374850171601781588201867108256552386814448647330382102465618064072073131299334601266867586680883120344499383350436201519708314232814330203240270895982142497253051441452593548160897773597710888386667535953315683880490727231180486388378115010040617853836330402785497457817666824699582561872988891901061007201086770522755200184519944358628627450244236002893105884920484540708464824786427178153099806722075959296510631052443986144776092270373134669129804080048058792556658528447180665765805786984927755912114348344398489007345358877971741966699002710619007989729241135026208590232543132288395706320262282887016838570009936849686760816905659531420559042121801467484153327097705371933475733602441921304328400232119772549854742235929822260543361861190821297402152557711910596414405564285805305148496701056085053547458136245358880886529407003751867527775646689282898591949680366467864585685407218044404547908211146847769097436782257251580013857901719079022400096365416123578786191991655951489042693410348448458216936079768149042632758992797525421039995088164746240249351003895639807511481695135807871687834402798445694781893489821027975037263275377852934733444874311342563588972709404643337512315809209639518189642309263449925221332733445593337493873597566610613363398194100913915885863315759807413578424630552342012448982597484832067214387836458892842208432762518818224409505599682736360425430426552557684774666639963619217392522509510247921429872182573657587317509650436213973056857070296344154195986407670565317770582326583393861741271728252827631543099935640969132945469809481090671132721793788330413942650748799372523945504688332973786781990493365612730042294778175163983530220276696652380911158694215054536791305510193396050118205871300287983299300109276863170908178162473214476152385233187311930100262060997819265349971523440863156633242456474570919918106121742942334435462689375361441566082062086986429976036977827893975099883214688153170324727737553401273869117166677264834801633799446265282557843688101124755623193013984441147396388219882981398156816004347168610806523248357364909260463894682613163871759392771846550707558226298110402452703407587630657128903126771878183743793533218221165550048458548362511305627684785551765490849130864872190370446100739244804556622592272513476384273050095741962937548318976410282633592051811232591543190663764778087513802983248992279065715396416043009772066662818974694262261536328617352615969247236879115861493189852156405830242106198547991281206920599952632487519320589100258227420938249915382920308604484466103005788554708759879472227829778005981032524987420242982759145591976521853325945008968462707507685909043954373011996053481148648461985632534400755232706196334819257661425366083776589771757919647117800659491488509217473231238049652604618058642567933102472039388755400490999547989361064013258565218355044857591880625431771039597780796682745797000500892959895347777291506186616071098851740768208694575690494140881220058861746043766601729700287165277430633356305325635345699220648098425386171043930753375834875280043216328709324451819591148166983274105751332399756383678253654866268674869955402582005111788401568815844560033814767125982084581353082424742110970188258994878189429525691373795447715713825555182419429401996312850801571348885931684546819553211808356327842412023404328722807171247689659223081516318532037273862960212015770773813499541023921114003326742049726574073509178123429832300833104549404684949964003043536926197753686326966689144992815220898074510397837857789854969026968326098451832965423937817254090680514061514363744436918135383182194567181770295007958739689249211950062359366164659595892103175514996517007371054998848806265762400477625960005249971948471023997648273208017185940000370917006086052651417759142480373433312689182976778668612736533091915574488397074328037463638012172077151286144637462145532639596854694073473718648729575559891988396674590869194459982022295116786976808900660489814568265606741225028254261040084744039299615963987598937939778495610834551797552439896160658376506694782348857748454726540555135556904691673503637324269599328369251174305315862623603483482356183252517248399040742294951468197288416774000312695962197129274479385002875399816633914692606047531059036479291057261655492113628762234340842593216790498249155058028555291257711779318567659149502692498848306431288818212444327843909586243354841836927533625135367243279030026675402735812945870457208244839195098418089029105489126929617536172482333415877990074299803962595865293319371834038481542811919208743655411229968002118186620026024152325276518580371572751646769672085481110199884708140257345049198063863533778987569726725020335461756638903307694073715094364471860519592754391737423077196733547575762328798296689331278960856605597550558336637155233260105078313198318334813687337301970441844698967597530084508241679666267546259306800869900810662129958882820269464639046834596064870335854282960383310446586176651639771677936122397317116069763954906881746095086995295074723601966470660337612924774553520989928181971944310098174105995333982775461047349805922243522005115372540765194447337684935340356454867290609857483218772944897958779113761447565538661618239602187815473492451212193534542626943508348739263220133348770898375359184239179789574329124330712815406652901081820441207264175387170368961666323111601942752344081851833002110166909358976815778162822650992420410135321215096148974829933141558466636216562084813699823789003296303204771215046963605867112612718440834486215150603166301007506568162321931078963464793718887638559815104465864150587739922055985855028387791553185737163197772025963289579531738495239068778395275053968556887935901805280407756025176271827453009585798708306057070836781710408977040787117682357639504651616322259330170292866620520391065337910943786938385367142820934692672829266758823795250948421899883090828746412890861230374693742322354374982950202590782980079155727519268079869945927053500897536538329324550830111033218107617868829540286550849667503569847642280369151844222019981660221033298973745589671176184896942200098499959110646262056560188793088730284860947969709579616052175023782391010964039335859246325214885684359899251130577777736945078027469597799593191229886071136106674439404176467400746554439779039158968558090766445471456123003013311814763777303532819461024543916625895327848699859843733207806675425855774119737277479788448191552563989417258827950456848750691989051404528616786185598260857824694661049147833623198094801870260672642717555541003074391413452680199253458027592954777936223883867055918500236618725820623733322441174235296897400536073094737019027485834542140414198413673246068125260077652741618493048071865598286126548030998274643921687709216526175458997183053056764109231634946844813729790438069105798239667751591536628619958406151107706525990766924053287812525989609396469487046289891644192157320049946127575529966081544234352790151031789068158812588179399483266925619338506555188514262999287471880492671745282076610864336653468822825914130138547413438037459501233156986510937645875510966338803331044659773421423053097767900770720680210306932149810877647482444809241329611734920131823868253132809472087373427805962947720797211330752568215756431273700424154327934270632387759530887022290117610929353623934281553458747512957520375575364047376432572101246896778947533693998766485215218740293835025107497065489263830465394019232705346440821346501993469607650808724618457910739037379637864945730484484964749388228844785722551978447916121265102814055813794457598338570729503983223751604497290864355593962180701500110742635638105499730006009439742535482948951269172807890759821819584744082444699300562055145335924034157643490379561870749017300533680076931046005191723190811508607660568953419979431006005927293393427199608607814145865666959591900520894217906572174826785547468550083054324366410858545670216766123915029496423100055119773905273055406430613318169195030212393107593131646868946035097483150331851177414944946095097318114932199862086235766067112233907041920504726265047095672288832542739334801095944434460859254197556795257907883966448870912539882507460671813161504997971718153118080767842328790412952996636318616520108995234820718368361537948500764275926109482372015557729687734725529877849215693723477859660495309873572950435729480121077015940783918972410183076041143161719045898802999243830867448849798925086945630412851504476047905563443610474361380761295831382380802086435228686843478831291743163275636975774996200697089332962162997616856423130079913856563864194814383774763241928381238011501976607200672970553809006266686836217555821465045912791754190838929255155355489400407668897307484718133670275604939793939833981475057649546552584379125102880598636759696111387246628214018406909347042206845561189975534729485339532373760112338433982407027708678278046654521898553849639243867844298083197338743480617536255995850656663623936207042926700145226268805003356539578178034236534785951802918917386591258594786385559985252080808113982010233256766575451739999225769105466182127295445852787029341396524153665313476245294228683864480760725225893764201364540547100580163436438516689811057298016658594601073316794339875668899863888911968179319567791977708687962861648749089492491438752758572318929831808558335121438619243919111435388179947655984037963763979685032584477258534423793420607331612460426460119968156874352545958989562366903414252317654184089263689637581269638356224121118541380012680038358293838909161842042239544144329277215399140427141419473200581093776965913941074710676647195013661017465250079144667128985802146564537200034410514309620984859148743128609543184272142731553080395800871775429054687049088886123421246943428436297209697482279005147082616279012142584153638686260689310062741557077384951944569931543960454815742861564824898852274533628365803458019247941056215475607051701007260954078953243068750050932325545146772468788261136107706883660724204389124322726161060891172270269398717411922073962706799381048154412571477754552810371163170653586760571515551905865413978384771771065253333104501147130342615686251071536115774334897030573090953542682051289741995807871116324685498283459160278846180040720676388447281515330152650918867858223822023434470342247322258493878798167965082169127411160403797299649425684082238439842114509982717322840021636325092817988992976406923282430631194631259967982049132162203531244647449342545728457023779582764175803028118515193619604845384861276894316206757161869256844600790125126230403267172269440253581248628494432775229324387313785866220319718915272097502030137333075182203607538546174576519917280399479700949370176250962310943309631553322950073933822515518184861145181700625061774110629772418146145757224594653957656421534915528152929914962224625842721808180862130676561228569989629717029825709246200490757851821376410454536665632264315170748533544707462599885647713470701916472586499248242113021032475622292816365105960722318870668185155640731418893522038763414910195129321511292344868828753234001752551318289501821042608580526601132526797586490029634721687813597416909211539291760642283705518333489004875484824271807508009860396994434993895189317945605466756594208214333621880786488987207436367828040358402191894920324930164422335719771625457686384869797843134247943114565661346198710398324110216377738833732370095454709753440037860898559031778040910956817324568098740797967882612442210496713634236420126050893186981657989327050169146488998619315074973919164784475809640020241902193107244760759291960215393886477226833945564154759779529742649662947887974570956182123081323012959044918118252591819123598131354422422739291929205946703047277092908984922051699757623216808256666035544041132276584438345909341447763899212975929536768833996991004308973574021391467131162338980273186336913717204210447513632530798822356324889790054930903106799074775489693336443570282107644634981853855449193657548980185058774773047809663445486705155174348051065119301270344341332242855576033710010354189423214597392414598466202579012865766455618130019494319975867067563565142064552612575277759802543722132263478706539428302389935251254184591101468442674219236934857321740915481237293094891991772836960811715211852066599497775605016090592565717796860657226314443602919635301346575382745273731289396516781104756377601618061676276058661495130401815483226188629487112513108961896911349453586704875130788841806394667347279266862059717202637980919129607485440542311749515539643035358755312072555696554958695819135742572870105194756597588798242812979125589093846212621976994264317829862585049103201426077406081676219562811298293218293101790158292165239709128341628056872264440131559861252887946963589779879826651483501883423976674506304336020865247692512398675955540496678782761952667059937560239155387059126273760275609625868639616042141321148686357398226719661740057786449736971880371197861946978497184731882447636747888889407253647193420683210738029643862586636877192141537787404728649441691246748542400015276266527874211336259037058777311305505407298525831613830393699234621415511387069886983260030625464861506598978667843004631150619752309060002926936788047044775475959269351178093619964615876981429581090459743834286721276002255866440709922275875525841058031664631026077244413515918942650195964158661558972098804172139835320908077764658449266362582323385588021299200347677517542844317124621833718704229389978207726787527927785616833766369519218624356129494407243970996053199187768098987047843829079529864073531418775604212737477244099440318002355348626320922087105063106034166152490169450636225963141899963137105234304042263241230854259935619881792208578005711828969057399566637274421633371478424652999075519193287286697331606145982011044257392505006967383997723783733886071497242657273778457649872930732818913148842594376138432142892246766507988419987736445727081817217384264591692377692206306739687203894025717883934353031135324981636098873392267827862918279299637685541711034804678161511201645626911159930713011241217222218434952604035654950765380369145154645059381507533735350436985386866464973908206364109306038665877721376650634001708114891912626972880277076113840817426291545695928784233459048032863451117112075009832004808387215017639522319618821579067550535716468287639806878729222318874187466967455873977239052199580536261990342327115271639395223050786533377296171271402021376834809782690689131538392558487627057440830232159956816661046281565979284139868919024515550962100471398748021768283462955199780744119033172169326095712640116693599127549936920163631543098128688590159546616943315750612968139044034614952749483952797856199781228275461021893084883019026628392443835765344040573002746303082864907767171139542811639149914024303334452983666883522887599069818874949078413357393025421206042643190237445174499775829927538884857576966107695437179701634205355858608515812136059885232625783839650128637552986482119062812258749222431570462856782991104040694246136033334880959427799937714207771324589959131024805306917000584461309855127877528237078659889483786422592024714393550325182410074916409444951682546897992936115281147548808603678933264471954253392549541007124308593748940045825339161828900050583710167247962966159345773236014874822469659548942722852182952438183910812280596449788000775535879250926701171212721199126663759164302809565441558239330903223713513728680879343375092203418315598412650278418391188665280037180671304799310081871417518119743216107222400422482396697776407451330299584441795015376747835257724468411853974837771816642154525724378246160717539793640080931776359388081172960623609383873112426790223875419192836224211454723542453837698013801722529010876838086881475180559788273744239108706939886493077143000798877685766627365934574252389803161746566813197256025120952692195903616283563178296321742241486754477850437925216835692768832902489001851325523535715019791359314050044141937265277428368503165964785694365730648308418617393683790372303156713957194256200826791714691468025171199410392331305132382615905943254976877945434983718530600092376318529997227365016439724457758939096725074498913156960313707313340083912423519462837200060505954201797327078677886141959809198843874990901159599935493777142668438721233034024909334786853481013942705882353329069963496764439465149046211819227873394110963111357259947247787934052905774188492289626852758458156015074600500136013917851548537176869547733921685215364097409252111369736854522377011400742555463216584823640613132039110448190748658697553741359948783354234966654565726528628400011947294575741024412751450297473477704427339808981236824644948706972361351182257817719665152041625073234016732487590408456391462427090577710051091449345720010887989306161113273177600510344610999798327061304389984949153020028834216155032033954572517372913294829206786702158120262128461779766980290427618208946417366897978927742027433433073696952215135014611596217267260130091666544377343806666838362501726252901377040868350157965782703457954810708685400890912532143917577540994041927345637729121405472785255491153453185404628346715300720202090384291606230646504591278310015713693128196877525571271928378228611863935918747748935753002665603772360357814634495520181290600709344584425023381637058878443610471683995829581118199174249368760167878795107217605110207966396208979341952243956050453334762751598563564204454166506125922908007918313280593821984679179771912577717735845372336667080678450580631134606992484131353959479907099709620968421186303870605801900605689663302814780382481162631142335108543871336806887516313405919457059200284577154875942698960030857972476225126397807643194098842121233926846001047534671906001939695251250149915466104744263292641993835114798363819613129013090229369932205902411303843018223638827430267842179678777356708167055234068594122480184541568653128709714633997910084190282694837135170762973483926925563931734739503687192016891089286266702533941995673281170500537437229408367049395077771252647270401277767225345210355582363313339379049569839050602925934739813932652640834934763666567153423540145731682911131709080132468715169040790740318361872617671095291977890655748755363162909507362533261349698866437599480194322147904332094291958414172298511277129537753610187993625190457908391957671330242677643223337057038682503060241667278124235467909541401639212046840504162016949233607964663497060794579227676255955141017411835024469009295571622601832158866849392051310835886786352725670673648848634917292566865036891059841342353563853261150294727927315944648368155644549564644372497404426286772481075986564073012460803590067421990345246493031002384409545823608713858805533918506248557936721361188118511110156093599505680911546650049664712130222377311786773291545785547574562068019895574473077052079582091671967366742376874259718806779106507486169012920636479570915785193065340563872652518752283386184651506692340618251548156862347934112431752302263056410493159460395756028575793395847423265250506017725468106766917022371222181779181573254666685914712952066960580127989900415910856514480072295370220116506483294075354757491083262268424006597408806947817895958809599661099431377436221317036953110523440304620933691584546227005499826680290193662134361237084169287468578080159622303807789030678049988755307247389646296928891869081423007496133030685861895933194359950386946776553831215111489351229676379048555690264679332269383033758072929208348816360952157632738977934691824775659361775122093475214141311221514003785325587759798744414526326669502784939032421236657682538279959520019592999091544034217644646506026752943341209068140659385547113540629682719168150800271710158066536951415812170903869759514714201650272489894240052519679814266708721948139161262298288405186309598984020105759668220608192828193383010234628656194217542808344240525277815752431828577473668128636263035632334456039465479608847615867797816703357413553794330111439584361293535294576969377014868328912865084874072779492748037707274775635671277821004982918437101078148803310326744303813282826730685504877233034097070541090771387188586785511912968522189036892441602924657039601055571778770365410435017982193541268550943751119317335545445344919439098688094174464213376863978597678869216998587515281790272670007086882877142683927644395737133802004919903734754528663882297542863680278935120249099221369284144225532370846565635374898248941151067001472420802415316682917152874388496490845446020840311092631540036822362714403697154877585172834525532019003374121899997303801118245845684847993624385323168473719606833067092260671946873157557412987542029591529766291777315248605556182054266791803115235970886430735495126450450254688745031514978736051841678984859790007131330170258918827335812568967680545806133813107811820488967358698952196789301626134625223588544842098157662998633214839359302815404034348953030034370156107722133620395399246249772595324874574807671634555908058187751958944623492152039342521267967792231589521403066631858012669651345577059880147660301844163386674101377842997129136772836956529698398816491997000932650455736677842354194847355901920632062649706060690326351052295027927879049804119937310284072893450896352458637459686851789044828817958446632473068278415372805358853729252385308309973698633009175475826208534468235148219982320640236149230558613156873273265944638314975000504344011104802738454655891441285899990361492252751819278864866166796713545921639078963855828798353745863405633327436748506865611465456885616384998865381843790755324887440605648472430685777902562451295989053398054771439297359179624228477169511219046228643364018439574839567182047425885302988810854230382860546272676265536088681266804715798901477759701781035275791521660057364766359314349324918634553754063346409855481880478347919150729893135962239248464816195088653195978925833892921278730005253594878175205274342498465910055712486973077044363203402200558663395126714341578407757173096757240216731958224477097334101832733697679277829248513778664008280174192253656360069154647115122621793669655901743257724124858135284649782681082610890721258453924867125976875696675281875555278858998455042948015681056223902347876221803975794264090294950418014755611126391621520474038579581850531419788670693069380465125778596804145291674242988475245214230542751043316588110822407198753882015005536098390211913652362509510505340927641615499255364999474366804211189573578436445260047893836130712804626075017128285676920834168365724254932375369860482556489573818607830221546116343897508895257491421318336738290650346729987993516699551241826055586107141378003407104055918180539633449325671304414183525272890981311414543974066095970951157884446826222640640214572837454295627523537404737219761817084453956056459622618949878431791990839808898763225581766562938552892123491636837342212760854560195909275899623486949907303574427321041884616792031947360545358005848716578600974754620297478443825070609464499917653337701520234700659540452915537407297054062963179076490725298544613192559579142464818320537759645856302885825623865151758036440870163723719878564849200959867616306267559362240843521927230118172106979174126222386821527657862375896752287216213505225085008588681493016591996970534013108739191957385591013672965910431785888194505061846608993891936274408493640237956741537204320257855238026580885279035425016084082058979326611548827579107620803803043165774681758708691910468322144803465731384787612704400866255362979903326249490330683485551758528092589246106638556883930736171349020527614734617761752369113326837152672119581485394851369226062319803512675418398475416032153086361634416513119176467036955433335639454907566927386494735077746556011330306696754596635972479046837554356486123902597746771234643903089197670193665349739190652660014990080692333895153171898625725923919252954003825079904060242678239596169809461413460254574898429188766246891508074995380135857907308947232627267472603824372863021159530785262108828989601239452989231318868684761675056387722448236839720448649232935336212061915250888819975468619120841284507956645237380200107016724817872531658470210376752629069566186689438146759987504896024105134840708509238041332709537657825842605442502917155018521504671407800684535554304953197258489005813194050050263038708441911616111506071169468892655812551596561922325135946130984284298394125877045426562636424990001062697616953796720743917918242154748795046461713457117837589523069255619193341306776190926666050766764362821066988160923977012162459027770240744065420303993103192379870158381433645027347000278508068280472153321339474173028417744059989899913829108613392210824501360879767899676719228986070698074156001567466958905836947057184736605451133168814486683500058575237403366395593446646157639230524309801698586138835709313528130209062365519253743556879585986955162110353463641061049906014666225511699582614914409724173300360020087895538559968235315407011208261040627271520732711932957761798827364765772788899103654065876666106835507272814988551226312673822452514086844761986038092049597810010448917025089578400266468701524839376891144033161820241720566003557590835416199694525083802205680463270821349324965881684667359578941313419640942774307195786014123162060018437115538565253410300172174238676481804739669481047883983180711403047376774312093282978545517834795135966392181338707137788308137885784735728490978073478487992739341702021944607714673404145973284523603929147212005235962881987176392018978206645929526620717522462795367899326390343933257957965637554018946555358160621323928612817064041333272876822780092290066047478107541327282993041446739623451487622619678944596876688615294498305768015095900804628718650497814486097937276745900485776920404525100868734285094999188046892395275690070490504887815143288063651105617974672951998727605234941201703419081373322249956450442001343483743318665850239559352986070847410066932687024240503468048369866668812391585178689096052413723389970981916460301427323693349985393715175329774078575311947375473634480163011759320406375744148323172168342074929102015716202580763331257954631461717813487274446000612370290442736817026395499239923318203568904813957019126214810466211244828718368686884781004196273050951259545615549285661469650675586239697192009892139301042277141900123463524612013015231020218152055762981721181935998129960780078228004001844125861557813743126825090196029458236681647610837734542270943702265899237012486974323853069221750767791977077958192708520553093799673532191772085467457439827081146468251146325752005099033120088455593116663910963462851301887596379596768118480238288609760458789600086884306246263391606776581909973236902268234954416697779420346002066727622962920648996315914472229595089357122593902657110140008706575277409081510605243078776711512306941204881030743628291101647033330394984621947118606613826647742057633645277278405084889195925723005746418381631997022729353509936001539202339035666579491727124368806255301547727644337141722810405944808139967361612924472381410338008338344131491050559588660448037805369469539609232558798590158816529274484742060652185318151301439521709895610395236400059177388719814992355138989772227552245239012658347718306349614679600781066610531441712506188280592151841320156640519316514456268641818894533799223786678260299510437721179096565426401442927355564284643838070903231184081233981783202898137405186369109779642364982323284898312884506801855379134347019665284887715106077921784009701849300624754201049817638492137058588563299570761323740515118318894288116186409206811225517556557861565787308567672306049346612709843775771117252852457715081458886592199019806581516007212043621604584550194128671962715913535815910621126156554302111213168228484255678916240220513428047190381816098990040063308447417104838462442037362722015234424562115162643658204451711853142527331705756641087645701198689910122733606219521430205693596361535346342649464628099397857257858693008164989888620712922717443421919747124292896950389617599648511893416715275920432102055782120132730557590711840714781994201314664585498715046997244736872024490064241635848115780699030368844331592837102161355742204234373379191995710230556798112608375724630190548540596650324827486190071734408943774207197384931597994958887523663036200769102316372920189611966848966041970349948247106161109751652179485395898967270942697750164271500769717496404581195013630811938806884660137745212055130049777696283377649391667347850491471233024630390224410610684919787171539943750225668457865586294536068643886688541217955538683702673450437395208769858843698275556795614407625769800736737754594496751714826450576102047279759712408335897151077497637724332115005301833477821069081667364524727083516999862004283241517753068369667126402127121750786097823830984967844683925684413434505044399631763069157131564356422992017545777132452807353911394472267787741081617336393890340767067681660414210618976203047587074154991901926398949140604678271903932691233668527052373766783939885001183207260385175548989038640916553360412703765103318240598250619252904753122076679473061441381837649749606149635476553908436998189424322709777767038259508357200699583195535593355420315368146361338456058053614310354012403956264348316692107921218720189452090204947383037392385690390001662494454588371326244851920149355592862353844394058807270910968054052654011249839021463550832732744592925453685984353134526314501697389751726019433755947964719140454633102581882944090441603319681065286711801862416510670486521164044135499173073979943473091557536796985993829379843258692520751435963804506986584862331500419736267340243371687224166574028727215123740656756203924751984377384060051667330123506616482469446495713383637406773123368046975915138357857594526879741095777690523727470132411555704340046472193069858251950559343168876056676386200537520606124614448030204772283579946505999460880575179030433487123540731772165969763029348290041507325685622403066810904583796396445212666269123623828927915591479566599141731048552802660989354502793002477528988789698269368515560644025138879951711326849553922718802489756058183746622756718026253613969828162603176233913245668339927036046649306882874793249875830881946055152380536859415970817144040000352570775931101563649870816041844143122772895040055572467210632690597779128712202114738622182381981429603373600291922329282509188606148547034859466390831197846965493225021261006258285758594009633728442172729965765064909307603606186828520965798637059200862342197474232138828092122854275519975883597183188462378876542551443293802212584275321664873606343852964960621749658879444359304195714265796423965509414128177382211417063750288212600778533731343451105585424320714430432956869495501090233057324992354532351302093358298557167759076678555641571244242293983176844359130080340809063769072904001238907086970867895203961683150755591960359323481276465740932583810292535983584019689844044525296688203352327962034109002293711571982080147749146947105721095562509987234373322453036824666594551014923894145181362721762884328718751774707873215054722307041451656153232533646146191998562230697438474365821009626343529281373840721809182557301948097806779500990048126087342936076770342302751789646955553431265263539625358804334365872701104940095562202944372231921580857407456912726448929342503310427418629561856239574979158362428328372586626060996583636130866001127786937325811644442243755823063973772076734987867197891597693543744355858862880648251490511281840370726984437103059779849600555195140167538664290354051943293075584393268804113755426856326886593894879196814666694509882675414847808344765414065577531310011464687391202610297075172754755325809958103668298499544784736432816223777879871020991443523610502497134238559125129041631735414942049702588893510782415224552344384481196647064342960486234008092940141605936665230170439955398310463495227743805920226288665779362866715390409802152012600439391846213206333742212058812958433818480331092789027315090303218044044817600507304725847545644855183264677948708720145239522611207065567884668595968130358849729791515234182490778677536149587035615751175137851013105852389103251518945747823738082276858621609636017857018029240684435442913277182659230760680617639705001303515121910079662923539848452889035711681888184714592033033852867547014306241647469172259262144166765300543812164748936328618013969220410561787481658671869581310026955060952006389810924540714373769528790347036252792302173778094669910801441815486243581120737075538619276994376186983376072801301813562230681594894055299562526998254299745638622983146195179052174613436341737788530637326994282921486715035475409224453919641399300009711048687214324993154052867784559106750915509865052933177844747699993155335072372516436280118455131102866860815214137028993364807751538711521544461507039772944475131191883628932746511552078279026213627996021435361853423973097121928130274783718417639250449311352769299401681784699027331320128314032381827584531349998478678776339008708225291257100836592315172072918287506605328464804253664712724852538558339953913936468789595492046953162553993280507494298553485656563856947700863181894256488979740502771733858991134117554501280611960703195651098643376561591626424201105343257868085179516989323910278148367428427295363605381882748621366080570772252388222811528349975670917570088948154794621666304981686048940518292970815547630790139590590936932629475239755181405416301306025252370506109340765049093837885829177596350839211212412890907699357094950799475012056061708695603008212332471774436668683636504939693725213785504493338470548925913697418947986872622500911405003631303374561432416426493437573482190898402157320372081532666521047696162889721529493176050827969914357005629217979713864492193998408702120642809912708323568079432293009061804731370766610402143219135999446450005999480937558531687241890634507004985136594398897516037903306109182080705959488467022376049604494722021248789388345395882175746983127587585648824062410740598599654568143913398379324726063963909783214004554325013648039091771254513818115417273340312343647064851179545555143798118307465525265900429586976799364960748473539880177491572500540692910028721688466512167334399230261019649158092763836688715244450026364210431190801242601665641050804527167494099586260100064498393288340187014220560837841264908974949909210250602679729081208864563576515113568548402013162049097194277760404751473048515368487805342784986321970562130341068887286489801375656159632498402503727969609449436561785347553357113898271844683181281759539937038850131360172433116093980511791057407690636648157580639307609112474087169649218302244076019529345208001141132811615689361591783285978114965907622371896088634935388402072088775967433356712463842974802312670346125764062354591507237249187693739128091326333800842744057495827138031688778593106437023081656423044547361301040242637453678518766801575354838187969563729795173195234315528792178207211641171072134442792426239848948835637715050562827763147681260244399012426210398028614156957568135238912628363857311722116533973570946616832818406427613853812441170872034286939012713727196482002822266847208561131645883174272911620914950674109290433663210157866442121560689988961527059508972295640196846168478065932221272841785717869311137504627451037252073212355575454604897704709078051471880614895088629466019759947905775080144051735008375955412262131692716266783792886055495209926452602145347066618617887782171612388466864679324750699396443164876068036206092496609488123197537964153527072838210591561098507691824725888593659263721897745262488169150806048841331614158378360634028246502751078692304507446436385480981440945966300534144187094769023920147315438626408969489096988463172683295124427997847183462930721849722351895382536381415655085625832032321390349059173264209861713328988576393526857455728173922409890982679563509628503585873030139002185014957738148655954308224994511446469050194940803986390686204042868982199413088377985225074423315237467659551874310285852577988385916835282825447207273285497923212993252941616308224884066417975159190208283591170196062025392618894809844297084043121623355797419537021021791460371840609230065025225614740887036449532379788792212800078169244529276474553052339827625865314031628968027427306453155412643328563340361498490259674579877361566106182491810417108617013327251041182247655040966087557635745123265680363391272568240401992227984653627604464951451884579695043206866387145522480814973578328332802848091961604559742598323143349032614649429085798440591132037466443702055277215442323215615480803407881392401262165580367644292421050395530963052958653359764496278206080092156787676575823690922854292059369844913237953464339771339043450043596298339087347094614541231401234769024058751997792365626623711203354221896145306679097455777636959064968098105941425318002177269547432005644530647964736877394085812906430178399908098154773310221725697816199692316150392060561034004786317837234992408493162697222095174341759241507437732389181468423885837828218832129798674069643169162549808622092216112415306613558559731538198858265923932609802836701868525096387299297090686928731590242361740290811573559882221954350315465994460170380969850875403985478614319429090408968061277994118486043966164869489301171662956037526223781530146188180761865784783144519897538967871943365050641208984257317759774063002215001596632063473758622080160088116852849656219973473538988941237202727270335663809084315063488219527376250924565425912369167236545631040175772048174834811082885229424129301620281026071094937728306024442584940244760118282839610389228662086214307286486753473044695473322121012980232782760732258100857325964116975319687471966355642695554111655395812397449705356054160866219400025383514547702735992567909962686538129634504028274481240818014204145391689067345805185945172356729306880379564329529028365033270616581070137132085526959329827895209627124334795631542432199241782687722445777334736627515626634617088852751571341396540223129112808154697515801576383754062422457586841918329017544808170220828287550519113030254463193211367804035632008369286045972857344479891110924628575824097933300814609384122962954429976066334552322084324249177708716642050303727022696626277178268732014276192060355829131528534016466782177716133621743243848082406864872855003838036606083550098045304762258449496946992987044847817173958076437250387660825635197514561962083578193626724663757252945324985749449979957476085628455401854290438977059827128953821368077381005482385556084316319376473191733409464000597595769586944776192302102471876236261027667806469348004642337790632795668628850680619282384972116956721806994944701539152667863685211371087700798929073771330671852250002403682161408740514318091541044126957535124477219968226449236122474867881945253887931065712809595173442146485839588120891380963200115490487776894333441925296021050298999326689426000062717466630458071464829905285285904855126839334944555631532323685619689781284555854348572639705093747353217996123007063796116469251081196200895691983358451008064692799246437910662152754151123843626430568280594925711654037934997737808319639172457257612689192813800257479645152418831773500882557693334288170290407416060279590620874914562818321573076462036440839255739762796332935658480658618029399070753069946622792038244596707044960840006302557273940268131881007041293430420616118003383980355552954152755276647327846966644946048582944259161206733319843220762649609748881532670077025651537403320325707819031267295492932143738628257495360293671174867305316446883466880034933103200454324329526740815498281335727877801405993060176547047652874992161540825703514075936441383089127878795108087601379299011988502817594702902811622775331427621802454155170405111235865888298651329696127588179659432514173677087037649897698941463832910903860664574648596762707587573009709638358379051734273608636560576166226515836666860742889117983370306071997378109768394398130703065559626134994123141691916556932387778025924868791690683939534333555935584650181363415528680712552918458501323368718301192284481083976688840675905954955785142360031049598780343210242114734041645044981828339263599584596003960516831294443495813192720675809653305836513169826453612519344321269178771882007044293576264588102756062598459471323818862010501911279686138604758247766950538896153316535626912454472449524206531694686432877501665389818503017365703959540159079211742372803276883400210438855370715556574524627202499312669892043825127880490004885430246364424636677200280660120596360176439997832398634351965831666559310660962707766675703287572523979504951291612439162370253659499356865430128227861528265908846559083491247847346960563836633959954655201641496330326966794336665324487675425963098913767750508564061749546527681261847347975737541069314030155006663385469666289488031688187805810129557586098627783844972058875400835498230832925446875553419051863096398415177478987259492013448039756524205126119790432473282274278578382874621220642122735581045890564621465658042314246522444556390304354272882184026612060787206946248274788358774058654014806316365580551943529215735153038830862075652406537289194981745233746664589365093154796642606816647526594313454833309589048874669304762524584845918953915877453785328611606365477085783869877703080146568405136323491109468913007905458734203374703679666500188839441338778515566088546474502195593347427570931633068715825379859356055670782095126045215318756313179675547198542180979668487512165592812201122371052818285597940529546576866421740941563417015005065275988599572237963758783355924078121099145220310309677233786046882811345199877815873876370650831066781311046902583285396817682623881964133464608233828660122923127073796656882800401188752491782905283910830396755124262759154691288140706671168159793909493605199296484355504499001835797483759913196137062772615107977877984249421038510469238306315380230675929294330645077166880130196225324596042938334444225050534365615590098450905964923616367635041953187783488491606453734373510985793743130481571938966799652435841463530590020793358329332256376442215758250074638414265230087313978097392574986966064519661127924727376016425459645857692967337612795129817793686677036940089183194485831213964081291244585319901442417657586487639940395406105795611731714035790960230663169851802958742221587236277943702458753431292468051303975924317735850622670122683690923293555835110977891493956132080167971205524319385820686469680249212327364424995619051769716796583056728629654649290814702638902786515767426577330724073100929461526553463467187859000524717410994914493175571734835647782397804289085467578894021077577397241469424326884868455519107671710055839192732837499872661997008262359572896908686854382328934384606706755477649398155042634146354903775638991572044999248590120060239768884297930464748337438806509920082790494928688768064585632708435686786426156409326738775861673660489481528353692705748410884196082986148705353670526056143029456792951270066448622542018792915387657413587982546971804204432506773785327634238060781309625139771084803445662992037177759740488011267547399447052099224417165254784702965291699409726777178794150976261894949088218162035720431447317935284229282556951920814873668212204301720353697529298917175631800030684232143368270919040887763544381854889245259449849205673290692293820198125084267051750999006172992766037629692978605797273409051579942126271090806850672389336449158498343835656278731868992867878502589055083483906911619254678189620444844464129037862323176121161313493661147076524401186976926109300525928327661021971049151527023471575562405897566111230177003154166645284245402675662379947011288062588809858611704211867890447665634371667383106679762250940854841895151752712148633451575583599829532700889129937356549525444497706956284832300319115621274035263966895275911697575550450738910243742787940958434013528767382949658261002940859986630900088530715776073981816299014405928606321707114294390932244899907207837558876028382970006385978189713663551485235797603245668398737641496924984671757505284155667230733797347552071649942635650838846941437476067390414050775074427613701133082168948013774625703855070144334707525696025400465681152808465115110067586067715937658607627165228005299059163779942725658281528014681807384662252446330110674453455712502067563599744164015936898253018186555140333942136066661681242053715820367678234695885359647000792860871366755485777748867749995654635418290931585944013261445885786187125479643914339690415981889157219536004106817510250461084614784094617340174172320591488966377691912143399008710215518880611856230173794836948014002514455256037283371867809077123641079407044468456412479205054405432710681593478341105854931027378483093190954538170039595872954539189546153572228038395478986325977084923354881962105038460160866728214737803568230941122910955339740369606298043686912147092643402112449882654198319824669083002645424007127883025735507529509963579178195964354307738540020354088385438293432633208803150342819996495564680949837831287115192031627402244247106675516552672881925191777522576635745873137956650345371561259153058255328756122520360973694864416502818018129328244063324122029727560683097917654397764030123197783155517911069604324755491913308771708977787904279647769339366157899228758356218353165605350819260577221856292794656510933736483394115782576369994366651360569745578031393941748848097480794066012163083939052436909897933559525114059616933454705078081476357483816951531743121922772165000511410714255652855112652681421938067675794722273642087600524705836924618619457051880203419046609780371166131482227276434643829396917836497284113250916883938791335164471982938926572592360159153279770149899091881390846556747297960809023664015953343572584271980951348870777333320682078427348457557307411388061274219590553005606921393295051653511250609217848890453702578188953664793986581011340113023681870217193213209310788868398259182982190091331744638248209033895834658995715961785975466093353795916664855114722091176385838645792026817579855778077531613608979086585866673514933218125813994425942648865814356213065233640127757963235486010974174912927948645004838333302040004884068442788338925251244149125688725266123438807578149605352422862378998220658443055485969932896035995279626015391579294173182039321080934630167412540048004288629999342756153458415215916782099002215996078917653884087227981634098858378840885713579290386363661700499783687360628038631814927903868624005980353485687954417940363387433532600297454377466693802354610749289687966682277067236239469072167012100435236748612753983441829578022906291903738166075782573236830153948166362640319884722331170910509299706423677911485348386416769515524936385564355356637034205229827419723125396744619017658877159111077359332825848868920989518347554378212892748139398372281104974473355357095229269353062877954916468539249006101713266251838700687608777791982595938922311499349662245356454758288571215305778081916944835167903240008047186678384251590658521610774325391114579931416114131078457424532232560785608878536137737444846579119943178509045018225402532488671536578295328145357154804755608222825780584660036180515518504944414464528303134102525341047509392041233553193304659943279768227856297621783316747090129012249313444402444449620858378494395367732095312296768016985135932634666769740434298870245649207467142163415668739627473678635484289459110111095735467728840145081073569044201025602398901297289341533097865656277354687998324119336226275150361854195287964563429733227161022348935244002869314055964956962447638610954955445372614819643370829587822170804364083269402735213158884615823196044255464182738287205990625882717386278274514538411153196406675399073909269340324723329250136217650663921985882238941199594231989388531152532370012752600685161110460709393084687391117973818607249949151668060437350924726045136691089816806823100797350624113806091806725763100709518894073807530023698818328078132494494767878991169542690654235877792402862964669820228260527298722726367305884438340931198262453109143180514650894168189578116369351318779613289678996109560343654140306839761565049755786066915255897711181824217833275484813471879902815497161283126573830053580478486041091171147861502570589236524861274957799066647787074217018785656152859724082348232646358352974062528269648982037225561131433626648414737763378485787555265786965373367387032581510995138950332166031134653216466891951775607129579553579856959444280129784995678098899336908684180393950410045202402425294740657316796888700774045474221687112420973164117065855070730465579187708451490058017278892599729413080804401784830636158946698581602169967310737952390367755127402712525720616604296591404856566968640652133564071968593365496639105918382539064965123945597903858420655268319818057536453073951959306574402707793097639173080119969636553107781055923349637456609592819770812535332213938116500614709571011393798643559208968363049878842940302370081899439145106194110064774280606271513048018566637729228992215962416147368087231270309625590703899154634480014803081502185928054170195749266602438133307123965945726944372159673536974250011520282649356760115734009883801418147713672338173693834786363402037496712075025261594059746068157169233693818841460925921947167594245039912942440287583878157475810566801098369855686577744670547857170840895423934376909075526665636118817210371227376844238423451989687943751302774567691807281518556663298169567828548718380555264325924301893454295856851163111739684205739043929582582482276950452580918818414640176479637443298148047410420645515164517460228160470158519385556827738958196424831555486613575635853588519665839307375275046266172197022843402345063320707935534344831433045548393904689552938271891951336565451812299118699197930478268742894258280174386126384346349050621571739187733902576239504701513710790941855213005112670535427979865505660862009254807249125662586718508479391339735541184111431219731027992405334437007438333901161641187524580920938678650412440271534709628720534641962963035984908169381734743342485769827703799252152004469451898451551370805826030885835917603331755549981298184605401781403580100339276275327000781608841854966631352424315626270377659664891509517128534713261833046714152537089078987546882314741617048305340211691603578790973517689820877985571809054129369118186808426865669450066762679498593583460561490272080021949866771029018012304326268540281709862408888819964877094083602010902430148393475053622744080007396488653070822221587334891068517686577127490308883096608591852266396485813077945979717138412887377363401743450896139210288403810839421045593615572934789633759004094756099549401421517744782009443462942776323135986883894583990403412306841370777820199573557477015454148351796088956141694045524053351133194744293647814583086656467798372362341142402723402642423875230476514049703686253681164830113990219168429993625465827737680442244952583872366652028485704523844673929926923241723221074061972713690507749882568989091047756748961379272435060904281622348763371373586875744696072523686583779951484548290207309330628267259022558550157591144100604181593303738161944510514279052407877293131347482663962269903636360045982859429334245034290482023188675401062556822932987119988781192994791546460266672253347801293940981854219451275806039707307752203523146871288576372922785227118078365280845985778568703577807899721054871468718516285223890648762697649615619183713894945615987292748577584795237567659553741702350661076918199328389539438037371652400301096295830103562457461840152848689809812335834162983405268965366458731426304251659817600252298135723937414607169846161791010296343810427772490340518871516721278012787493706255376190770236716201340029873132748268091481821505543620598607893319718412150527392789846293684778642722750607364694193487233727446593019775895500920768033226310028189132700198587059355222143331956176194665234586894155652314411031862015933754886214841106401395900495398170648312570595508198525378832889461327589498952396538335136824547335824003526494360195738287972157051908017375296837018752755762854641841911241253297124119466118932863502548448249126610718796585447254396290093585035799991711865228631942844221547997190920794824534991719785510748805508738129487702584276709455250055220906438749168776103240557754367742698195980559129330128918175882506773519655209929929794313899179827344842522902532119186776003853645093032534967873121306262813943340720671055033399450849014557061902154504516118853471978635547355016078729107875126135027643197142371260902330118185262424083015622543008210301242584507500916808914042579329971820959259558272127467669904392503038346609864605728908029800052182965650368668080841091708199059081714771722604054051207253443699504480821163384580960852485986556151201527245340616684527012324952649547967387300056797722674008853558318573321061469202568844075613196676900810204037149860310285333849746763342490858464012349240752753118886885770860343165094116105701304588775623915436580330858602075213640522958615037662799547325607205453612347934137492477209236205111221927456934805466222676630493068918266719659074159706121822042217728603757392067834444000276491674808074552716945186749337779497702049495169921920108272033171705141084790649405109381027682117821013495922526058418448261788982676640123199840397940215080228877898892275591639803185997556278069566045056482204436939133373445282910849326838561356017882470545438654359388664184130748471625754409635061172680625111686018050832414331362966499475721868533215590380590863080854047641520232438642764374651002045045502640222995976101200020299081849579809132875019654390456787383239791940632983077296419907704053677430517050887695608379777913367668911817498752322885783649818528274811916995676252320751556084464313935154647015286575465458984711101722062742173487307337978122424327929006070826186369349063253305775337537745970128675191326993770302482524877602716447757937235757103212694930478370271264337075459838970780329838733607561488486890167669104224616965727363487606938960794790772335327860344209743805862385497006570300309111977512838617584863332420627251116899015091497977417658792674827793515633396891765862806544101885868540164698304102264710206289066090049128192756147702936336458412010526740830187405375226668502890775037792118319007761497844317581318775660436339253809719660957506824352410986342261780061454398519965793771014491236317775138442852008841448398771364841016111292751871589057183267343778752431118786226136730166037379983361101736129771262141823290929716868371311025699546979662965732745313609712393234384871860117577239717471361864080297341563436727921348075872366852085692730459771210235740162549798026575515416278537148265180341908779763855603953048800555294100803103832043406461396951227342160052949285141412184918533488737866931575846588568759068286528643303485147784173936085629614000722311638026454723080340955146513534158741403951087270566983561011958240226922564311976212402593611528405117626924193000796510090120488719461704072227828362113349750095375187926795333805204782857497059362266203329106339168765392199822879607538776717361316461772217276992874787882395617638850057535673185104732304051156823721754679997031643196256271543110209138468267229574687815773971521072616533963533194458414424039400926061548432296520784799799825751163518228942368631749813448964928961368250669861023643960956712209453799097219936191358220727196627369577677694828829322929623683004940317842581476793964419101863085010268259751906655197456824350101941618563348782537114421735344943541218530980993987416335557338643034427428210123527384085278893420177454190122949568352155301465903822102593532339944318947335601077814738677783276044263105718345152599885840227094954700003546928317467052172911797424725866794476545787063630163127302181125585967192624154982725824628147947473608940580971540152032687026537036069952182573071926726169290899151615028798174246319084215312799965484311350888371686792362033520543785329542798235281793478887473017139464249211818917743687072428112435179090903728363774736845931322936993645853245769469546686181498642520853549104341606019983841419337917401621035342220942590014022091898996124412973916188024926607282949045918662863684840751241281888081713488677252825573147437347523260907480982264044405868525950140487346556550006586645427725014724111468414290613765675615192909971171149126280250416402104935477085862693524787022590798933826729617596820519120385765752948384585070753845016026261205750884281499680790833864214358106748377855759411049067511123730123241938355960761596214042413883093361368506735532897340400342538443350879261215866246783147940404813760680997853370928990972068984552431601481583937765240444989720734209715785661511664733307475196773566043015405562818478303074786193767436729331227248400211701679482875441950968624343071566636164227108309632000421705105136683095884954330644595053427764440467551202111667410743512925202695340304346492075147263714597111002706011973407167416368387823984432874702867486480313627697887968490010182708189578976809817996884426814490463624507497009258726228308934107344000246831424866098650297106949357026886348886274658843972065468997084821459761301504023879773791596505187569262733672203087936544562011210151649391237384222379610970424943936338473448156071988289190235222244176142428116193948375867619551714889485738799480114042526100256717659741286507816066024238168818433838444382807372515515309774887900458681955575501518516726486882346043838331994685172946576358352230527481064632786237718263964325992715680660107713817064703848809922380748867975793421063721016134586793233920152752071736357074022809099675176365849765266173125314128683985487806407103021273791741373787869991045448376664745022477549267023817756901726001664131931269681930483870253140095086325704192304475358641006762623656732063136467645328197703761889719203815785656135655173500071108786155664840986102598251421011817644962821402599845250407526455903998984855871422321626999020280115416243883781861401443393850248718926966181872859294432878597754389791312544396610301832252051314815512405554044029562499581935825114699130527071645782547218082755507329720224041421888462683772768609556473435561086770512794231844507522897422464526935055622058053005938596215098491833070904006469537295657274692448042426825218754602945266218281566575766478640008000659940217448462930297539950025077876452819114330942859611110050256020412040058605213089253242127188078548387156074994276520836388750872622921815629783866157189912116283579652185005882043113104918830889675144346717404865968650690666650736455534756537805836015308301278436508779062615877936840137472414187418376657854834212784303206223443007475510919478007844352677614512083032829719993676435808965232679411586287200920448854070306660718855201788666943771201954631442501086229516246227546076417671590900590623347089895657369176593188075026919437670282827793249280673449595058093438450894677738896315719074592457019776622156746668190628473527174122007104242973718517387024393001129755145243977430911370715654527455970623985554109290824843507712053039516885335979571457464764508849904549654247281249327302322169948939610346801548245378510448331883165724633526177528807135741172450156781615593012713117475038767998835897363538888986459686939985893582442628558019660296618649908340071715003283975341671553438910880373446485398722035383155045681419869255260755120016319206018152443506970408487845950509835172128195260823092388443684609538463576553898599965455782136174598358668408035531916278623844575828270179848027170690836938113448499401313765751503500526213968145087139451309951052912060554787147256443287539215420497185662794545403560529145898169543660852091093867195908994551246434865590081967103651866108185945938392997938393929010597424319974058423974640334202373273895104050322433809467961867588541575912558888687383446563671400192166135088660604012585586077460975134810170303375353568181628268504604510461671141700159667892763067949496043039508115520587840668686320779029510606947966598882057805939845158737696265058195779997115609279886838321114689051598178641225136589905343284525976383356516625858434034994872430568321173745070489009214387445304216464914856765897810691783277754762973939938830191574506775228178850172371168047761038639287202559028469638100442989421524133898869386090816971836171452897824092998112452220166531218789581491239982870691404123820556427091473522798758380151156116536123214960444022234679653664840297462858134525042719389810660519990530072860927592013507064294850409311342311282068326422850837935055187141013533620583276101709210749262924968926536858982561607302766754206535964137304987421939529967417453988811823599659175192484679617633792790256689435198788746204546149362262263171916340215623040996304079339470628180802926594368471411993231470115441584552071852490655223866400280542357052390903649457267759364703168279851988407330446451129438653851911890332232800278448809097351007428436250255331313338966223155199424935658022163073875392181910485497199407415809293336291739899373396335148263829053445646862769122972960293850994482757870848743410280216424253434097686189235250906001166285787643507649238067487421876582007596171530230218817216220180084148550569515186947024502210174932780887044427677569449021090576034617993740072565278405560228623623877443728190285217796496541153580436241657886069662733929597184210398986608820544604387706711639137903559129595406180513703092578156932217019357722264018364775344714193573753195359779836275796016297800204815373498013698120931591478764356590024229898012241921749205928827117122067160582967717463116751660313304930599933386700519810311720955408547195948472343364822621636984876876514372800487025616584971099091414546939245900221302719542877501413117891143150071631410999047852867108620099719943544880552566735426352890147478887637412229801640493509232854151609821931400009509456880079485061139720452801035959177481103424035882651507631707387361344055306336323845085361664952029751164157131133788334099543666274650485350018009031136306453198174557922883645766246815415957036244945385788197280523303843145530966663951647567233318644516216676970581465488217968887317585325339595586644224080111497296512521314858014275034538907023234013869910216976061610592809110522681898626190789304180504992531512637897895004398728272137130240489890681398576254382042000082015971346398462946535735237030959276011099528199290275070500380514403021119495184876469712790131149974802249391258469482822711146946523018050914478296044390041108161877146169464680867355162086178327952956464907824592297688178029811194029688694387836630597785879227649301757492647107066745487669406483391209864112675965727488886659308909188067300838450256069673693587491813437037627475137408318513769832551505870606589958966652393000629929242208224173334137770790311141123934863991827722911447845661443485540511314514356098905369092431561126878827866596934540703394939314403050948098562346343980905455107000938014148613176317821904376322624247495287162372873427731759137485377655904542274936519094831314505791755050047929384020034255876751995658199899399655727094281112179585762635469071119995017207880613407086377495484379116868895722448977902664948241861109233584818251829097494855998387534839386522511726483069104390253332960688260763368883677456012238463187798490490308706691576538608396984976450163960534319352570731769107487906063695579345823454160929491386151051583202198139641489276832102190272146234712354615534140327037604825748350014828624928391218229834535280782392768819816548353840753558281119140033060780392957145946103864800733686131675011556988233615574960350437264081682726680519353563799604117558369500844123003685111936540385535168864222696103216006159826177046399411328189604870954485565323436993236195099565234183703917606965736823034329334088413695547850339342699827739783414678803411838496255489249809950909328308263320590814503237304721834386009927830306531830953136065358165740625342040040913158279524707615011046614259522276917846862177376913962315096305522913189409379749752541428044582625824945778574042688564221183372645468591803401220363116426905715106022658123153204208785462517220237706384936061371263568371637564258371512405403672110576216522266384310851645378532927450793026147323343957873800091968749556470139120682331030192008606386563839872428054401523035014104183209346616388437003967941679576558037098165718187862525392305520491027002257543268003225041039134188453373475566303947623028208445217095119888937685902174628726277871984936428324285779129676763026284003560993795867932468923095198483435917000878575994252169178695761957323328042892613319142015600221196008232610023981762925552790930807237978830263667530381475648277247267250838882505850013481673379573851064555261707664681118077432969388938305080788281715727344292622816545090546368228190007063208005100662806482874073727889774288926466437988647562123550855767251728216536636844832626976579012873180677320327166910158517448361500169141922556156183362675515707085273183448645425241193599551875198249262787588369386128358648441355107976020546734759055357417905864773183709307775999122038326266679428446500427068439677870067695469467551522964458443048476696121735901862243732532989714977512941634738378037354998069960582855432113586733929855692636844292050661811713189508879829029071257409063702516186418867204550765179197684511203798324166078872423397951706758355473506156427844646560052040167296341460086235625853045195186860081083135400260041414675048635144439382544320598119370915584816827140698528044786500971026854204478577996214979305809121253112495649574790042081256230059653853661339651183676434868542944797558686367370856397298799771988303987737326930457028615303638498571135587612686839178825666680904442024805548445638905835311040178318367490178376524183145916002413050811060552177909011977095310047596266581130657982631685921410043571235985767932742004301064808428288858247725160444455055860470786471494106867098707878099698049387090558449023638552311899140411024296059573672445481514546389807746340837443689389507350301537062964965960647624446170781141336818114310708513463422162870217583025569113430210919153021965136999091950550562532972847976210778807828873549813242719824170309030980381234475175284797518734748186700596289927999969890528796239814894417938061208800559630043478114204602741199989774081026142245548260891830168806578192539130469672519191271848690650296996173220554125269031012328691386151410069135394998326856874379607664496251430411318451599058467512880646856322271616629512532196001676608273556646733708720363742814091761689795646168056947339210777928335304205260146593951041879348353186346167955730224156863003857548148854727450394636130238859388030323345052615365553971989072457854462517626573278597591704088761028789052234018758888626255177691480711836222714339604295709723759433242259876922349716028415920321586936850122810832318355026664979357144225497889229779668432693279626739603482525346672493975578500680819002481177837206458017267519259348479580952829627365800169320989680458707760247121034133889390530401551355213501170479712095605300869250375119343879622656363806396693557064508710340202612057163104462851721309013413821869475543402715737198156892895544514319393281959265435761081245437922933891104579362278209733138056082390763747993473343144875521678006998881456127373015376036752415954676447024689646367690221339152494866749758640232262218679752145772089389071522978562946396472695819658983503077860982270901270206860493271854474005824916606592838096201698466381808239935008520548066948713197057578236684822575948262579395737212006376227557640431769017514403862173331522249290078843517239858938994346214029930990784975360336754150893302212808394441758098134521151130408629520281132748683326998259712342297694493532071958418185091005576660179739013016470919266636271633584898162589501516769284504441579388900426360533959764136752757473393558579783505454171774019710245181396054417187562947316872163527515429355063345203813994956288242362758135208768807468608073146984394737642372218821600094649582126357404764051459113757587490225657463933732417652652656195302633066355151385935740231130785369757293593008727687994081025116155203668862228178214424012688936656978249262654181710451900220548099839047274793415104765132365963923424653592893364609932337795231959433370757343599261025269711512532132529780012696524332546350937624099387008747809526209908793463087805184330846504972795128493637654072898572990992965404636047582787142448970193513507842935404638319070976258440597230290752315814459198323320472169068253602001397850706108970653968974542018906952324929616227088725832336095763753117127232249297165083088203030197388464339672488102210127611365686336985825511833302932010810643438592580666922114750750066215256582924155621500665663205050962995234261203495906861760261246923775759783726789442050360480498310863150720577386009877576281027775402000692578348761917344759353635039565610111580286914054195324805712965297679128475430258955037466906002514917929216702971320311426542199781626106505838941126605790107151552610948038797655644820021515803998292511510088007891962503213374414312721734887673656828772509121535250664823434111429515812525415098155233860157425234247460269910087208313911366776618082698987256001391354380398231230296233640258536135561473032504718395161877702425373006744711660718593677165236748338986148195622223930845401111348893343652121957653377098672472171717133599519141429678785152390884648169844501790951225854103141577654460127835528860718165581043855808014246456873700702688015439497319244938655300605937477368416167862857846825544360266372584074202511796031356046332498263075193805024525544364938351080133080888845595793756865824918323674471817706373599204933800269250001304950071114107829257167870676222364976546591047298588811688937509512402627704304418361041673333395331688873195565902975432905376218713988573238668984015990949357645239666678486937084928599039284574487337817274156442539542915359661016531851871528033312791976191265270942307374568933809715342361041149201178377672901523916893720407999278052549428406356169617112329631288856790355739322553881996948396808714939385974037759350883148301887152862014188827764186880267318263071566648242566772785126160852582926690090271883810713764128926746517143427198699683549479484356784545967318053722907227787169562660121465482072977598513169714938987865576384134582991823215674005861044230580438263173914295385985490339709402596606673564358191656677007412162102516711214144254707060769619780941906931032300235873428417801490607623190195726850973762905749572684473175107302476574162331398432116727539556129678076690949802737632495707739570665300630556981694951070466701021248502112589281583080904144407233992695583907288266477983937650034109858795950482170616729904808813914149734859838493788714291384007407741399332654053152423196487903587985342500746575353259519798187896182605128274438835286844250889690140431717709050985900870461360692984263169082082306655691300918476014970747771422979111534561839663933834035603971590583542807456687876587972592135207229187664934524655284418518197126643249915275386043905923423248013721103666207520878932777992040351479538503583454630613646421009811953808363574142562843961842142595465974817456975119614723358531205227079478784156240178730017989537301573461144715893843323280822726383772081248641747507716295344324239169328662235059720145794943783576253898784821986270192117014232293707106585469736130062558348028845502696244790071015833022150054938222999260545470666915672461212145994138016211993937317326701466747567782680385033319578949150959290526439604872790750924472627750094923308490585341350951347309588872474183196355499841290222280722900273306408934147214424715718866553439471768022178354761037480223626662196739730185908701535673529696020960113726310251519847094393619148249517875836290279871769543604671318957036198861152828607212519700563108881621951206196867151510786188308842792920105129605128810989801957821793100913643776421336501246786663408773669437278016410904288735956132114198579110766659069019372913855238599047793280256406772194650446845803270789823503409710170804243488777493764352993557820059907712839687236222736482292000007059502131719022177314013648497751113879695414713526501300055953755533008177474149693353654227369250169101009557823074790142542043002803401038614171464474580892922854007344088998769838751286071661006062890581289695101870036765682522030836937801887178137682783203749192119880117658938379974171366437433501358650947612083786954606709546788459033025394676259786038082134019281603079603990457766822673966776086509236613121582591311240856882774573676493523575020635229971842813065353934300426468038343932720384546415186734285982433440790952106454674373384738525535663464521779230724968544301556472962418913252224511131168863701603304015680558073770207004253215967078946173540123327187327203042393236607842699058347403101123973914496317983687102380133751323623749240132509808632148586860443694065785302646202476644300651890743213097473303161985216899586063700304111981386606273567117381042460950035479223912484508392768047249741988259404613038336363795724361825098440543968731860942386021351724028622285501729156535390657371883519193675002356650578022789353815403051537186730074549847211247420482088839334522355749397215983108827750601477887580179431391818003535084981008184291986260840217347556493687478330402608289327888833348689049710783529726022572312527357904414204583945226268249707779921769859289559236802075904905348427490914265192546008658867744650349033347033474597050032963898096813296760243253133014029391945418533041564761761844258551797618501829180048753347669351253436821354894928011461196186462465106522830495371240317503945230776228443458404145658362719410204539002306759146802362177644125400869485395069984831760595192261188765965459728480405860560534057761199525624204945318044722280660240141148682192986180137978362335250021015442716352391949777609520719734643615856512678187598071935034558761372022287976961300906861733365135755662031962796073328161902908329558870385963555380073774949492310104902857114224614180981859176358003572143705215467336367344275064976278819331068360916248879540977258327282777355188345905574729012516181287217853026058367982476595033526453597062411138487073157688112825660681897850246772957694413763864775009246905760812339360638203628183966534070970521041969669566474320288597643760056450055248398339485697970837389237964748274903471739098225502993207378438540377502275742796494294687120373401709013860743665116736702394264065018481698688330757233092117007239366696503245217114872221383203889591943906099968952097814771582914074577270809508687295742391926159821435125786295275105431741064869211896730742249823699792946995095463220315867836219799309652438372294634145912420414719200497822389953352306483482100850148054658725585701954937019400811130028928318651782151913008801557371352254747803932013734314066547566888214648986125568996759494925986628689280711368991168205266711405556131308413643700317099644557023064752000785531883180876047246391669149464487914229888504631974715913841147947704772042746877976149369006460372766853563016705592176327137412555374901929892537847181154263841258692686102604725263032326700164855443910197000550545444837461780012935397203537696975079869935426944754228566902680830824323795121142844754223057167908895205204388753330059490029053151506302632470701763177894058878767219187427584475406541502486128073032262730386383835245754406634924134540651019192745483959967583887965149057117245725300355392853430372272988307450651581199853534271838940063002214192523550443994895829642992700064534216065954986154702796627225087246377725937366229321585985077639840084078307537767133182878158654399761046747715507451443706951505957837310794812754294162915371933376355696171806501200056147705341582946333971881161379080540872601879652729812105759760020997926665499481549889982915559411183462391952668973720711909266976347513896374824133343782480849769913475620809125304080115827927258598472285165450867371905610712000501376935787188669996854363860888742227651753097337797719175439660132600861803674562828500006284755228533687368563675463704324036197794087232127063463539612438851224737816178805110762084731675747470627453582393715067842231208117260441996343727864116259044419609396055241886721038584637720653086846901177265425407281488139357355450704396864940315433172924711487107607671352565253300940897868882738577022287732768788885577613055681938390632585089259165994193990214137929278499627145913595297414839418154173318511835285186462333225535386026392851705768974244793881417990570910688122480466507559293156179749245475424457950061853318798263998962800251338578715245173772863343904365597278403868395625134649393021798132174570432122285315718178375063307995395113086177752410703056706581700372758834925881811160532800702818930792918045404588948941513604251220598167305172393523084319645277999107828679017198932796250254207247890626811852191692144463848214726262866247422046453304842186085501720565502212360077806028771713486256303441224193222845799670092328041839139482557585144090758414224099334191770110359083202796706702305579267239689737897025859877960370670901485681117007472607143291640152776688117935881255957753676617258034719460756069149569298848964807868013194273718019886775119897234732774434043964395523180164731384168043808495430247999243095424313168146837797084679714715501659395951377060199248353418458714407849026910801062234233811558684871471985198313318244414837075004548528427738233307067298864021035491171786994377603841373527101047910486890862168582818702394083065497440388244868271133580475699589386162426774003247379243005708246859468653317941505117939487228755159470542181338646732118710747851975412544211072500189410799001661566029909600902358814377222594670327526462268859014769973819547081439459005347560664289252027313869948921225082850365662805992738232388713047423487336059275623458435174580211104757758292774323350869787907393176962214013791665308733783607324360056418755993479279162244162597475734170738695915137025732871811167417635749171945558702392676474954676007239634616683846670559784132415870122452649498192275867748137613777450092854193716687527405632680903716358031434980027226660170851271472364501994813614287374916733076637278502066503046722184491455309514994896633171729054743367827763710097357878310227751735121194304013441022023651774720129180932082232341006446975711273594901513639935531092653097196850489702751217820282000219420892521870411792741040885372281358255847324771138040685515075395498465982614998475374886506191946045203708924615639584674650729556572488839984231908174039803028127471678159137225893220718347950470734843683694490841420029188837298063058267554758626215521851533523456529569539417938255831946741453080867524816420020412521318501317241669578086943295195859803337275035195731019240568615233114240720156218056277349930214267148975701209076315153263021397042521046252635264546358564558908587882564900678755958779697793600738630279900397673284674240544878147532846394993394238580869356592598263433051248003794041402683590240350917112212880683688394932375633100914657074500774481495401478578754117532128431741857922658840705524057573381569131056979207725584607082599914519779741058229026367613186330085032863597549007015650610631966724607653194158998887931116622335717493198397763508096678738219645338060921857428500717228488794678273621731803261776105598026948792519388088554564054262269877103815651525512986268063003986533234788259710744966689952177543034636997654302925304406640720950035467296084953365929266280898102302536136101934887085796245436066190011925828981245664879577050360812254956697751091077219169599406778966101023322688334226427829682239634467011897782706900595908778594836693096724811402742066276451252082635444895719442525211207182182154627060646701881673226165255967092043077522736500847362989761679576289109842806169556715619784971963708748511236582868958060383276420762528594525683626003176290682887070334541861606475084180579366364223220416772977192628576665760414886410634829067646036915939669694220538959298911443385722908427756291411788993484342403830160150312396461378939250547244493681546408374723560802803461173398610659304161803994155223966350359344133294140102401890391134604590896392559352889098257300317836304488674803028140174072775280012274771517068377535092718978294516309669153700999966888844519251202080623836828581108106318746055618194026754838905395194751953462759663139155631526784598157302884528098906034759936184009069696582653491380449833469720781794733794069661665809465206758854396939638103912062473988268103018053757251131813370844715767941024105377808295230884399578643438989855535950962195685670341269280745393929863353953119320564822736915298881891342201865103553137010861899139486874926740784932909033604047153255610135474396675823977995711269429225351013458789692364381959220585796750342409536878476500728037217343893193456845519953299871449080015162775790746939014508739655963311935986722187971069028554508109519033434955007361625584764646034748045227086200515209411685015902951624763266532844482930153509078438882736448676913844823456472564812348863042846610324068025081500804493359857872782452624862929921670503354575270533216021992285640356812035714357475023509793155823583274591149946227800354272719655957051319872869321030175476687013624938034214779964036247926833784418981537910265641778082524592682624717336613705918950452037132993575754033280451014825439407809451916576264078738865088874214627788915024951979118172445000601259162117017522806704416413254686259361842775813292413947148496999051404455513854841078162567499801290632441509818527448184678588757397959726054302026154960489317172329381191510993966886950074667243258431567974699473226173904131595299841558810964341172342107883504454192284951347605303200953751073051114209192551621631545141448978383602572934156617390472869220268553307257693530663865688381292945815905022565945013783808745046256806393392949402742039462191760470871209884193502064217684495019499466887308000753267244463889867711886995200501273052358773538677074240765297983401987580398384474958483374700387035067017581200423682451155678985999914361460533996221976470914174060881846117863363886600111663151147933016853884114456513899855890217953694311275874740357950345142610583821062275591532341333337745676845022055246813826920906741982016043077753321648897395975984750670502946772268230659698968522072125872230142087537935182521975056060373581325462840775095884247548596414509351432179595244982826153732347377668444023102744584674761705754528181564212802717100039999740288913612392041574045090043791756686124051453609663595736557875037829106742635842030216727694169680153167941433020416409335532301551090757864493689340912018881675531541560891397901183433672094607429772929016146891939143499954512422158469101071730754109064451801441692615409391426934553501387900723143850669980221083797650545895830199175877506636943434469506339303775787775053752583902555084626968014953974444728478306613249603611355908046791448938858523827803143116168447123709664924167088003656721233989541210103664614312435075705604725191692249240437783196491698952154797666557940401124803142127624403519559450186088494578418225683701703092301801809564369325845654883808312613697809506967313512682845193132856329852243631330922561026289733727168049827355395850206302789284036566195758452452805475302264782855884868070790440700627166279691622917922009270145161188131779345478935157269669954392239454899198888323637964459580809953241258538634049263292691785735825536852657730030323617181393568476708982773830074273871864614336265620957871438178556770295961984490013903790862967786377576931090041181586653166098192872223292556888944750419590562801296072438026360872983623612611463754026972577133494649853071492700691006057886271529113017915134852244865437495033168431537300998562250760708585669647321014230388536721451046976037686896772897653142585062468113717753179565224808878324900536972660020473075667003402066469443652325559927900031116017162868375364594901086373761111090147353613795056470568355793716685636359386263424817880640607181865016937311747517997747139143371385942086355393267817372059831193906074307017799097928324923235816195306316894131196158555505384401820496595766119136218753695485448852268821960993676594617777308847992917793742234375470553471653071095548966919518411539578733291645428172846417131941681711968273234974079917912665527181059757961272377451096651502421969018087732547297546115681874146023472229804609559922580867305814220093405208690667214911156032008716027639255936536318617248790144583947290507457497993655571373489110207064240106341161350524581345557739238093998326868896659113418548318402138540536945638669682209886826291188546588397906319608740029449967623430080972873188712153493415805669498299996000646931981979577369508136959376001257041856054282888476108930661059937989666393971275350209407051386490467376630210248516542077906826696188732856276832644418749722696330372648454811366980834278115013677603905669342173557967650255840020760261622302725986965903891095601598406314218522192212558235436166587251959589692551465100111614327190130681550784916986724498521570130713356051641800436250283130403000829543783929847034877623086789980254238656859756630247028631305792361657897802191477960792643274855106691454607405783775574181401527084543732560143684861116424183968401228995594262248534610766699949050602895340858170231994455414810040322360679350228697551755031949055950223387751497948607543871838573428270754553198055165476612209303440656592755028318524597567227201125744938541493656637109273028425341532027708644473710434085166604451204742659264425985910564990156111498699685734986107692764991246120028227345999007464830259554135907792083688392860787031084015424701576775835484788875279362049534231154224662931875753545268130360056502293818574209274512604538824237271709726820079739233906284096349826762794676966031872380100756927244134244361674765550730167393042509353063934496979495027499569844549908634421503831433247407523893666498852465401206690761275490533746573573156704699839395878970459708889809076838032905100221859367826154154157952370585651931751800803276358124113452179482598063369257406870325022058094373503535867754806178568310768318424433696792683925718043161863321354170863167091653944736572632417107886270527221394712822351198275389245066816799189795873715585112687128522685917155757676522045290327244997353821911519260355602412991166094644899061849594462291133354070467568433274462158870690982859988942212303376884816178545940949123619218526199995383731124613472096475509820394711316579725474613033663447541417730282096640900227597352482073646909531089829599087411911236847113915775124437094930561739420931591373698533833386580394764251066266287261267260160547470065379479026747487175785931469704455130330277442048116796421329932507155633623263588219685712945139736477789752798505765661849879120731848295566337902121044092739315556711683464892430789011089755384245538361217447941408656441921439834127648389475087599837043458559854986357022622922878804350448963607359617541767587119707414267706788217150349329842882861497684648541610624538014338998430118248514283894624417223323781386345306424739415667586291345977681338424835859175323355602851642642855542445915604999154578217048864758029048402787148160461443839466263855112113834583895653112825662758199365857035899384109996893774648353497393372029888329193599372481649165560743785762609134524945283791767458386815167673934492298818772637362710045340426664999389571129727547308035636020975351534392714665856629514546328422968856067407672874555650978115226873125384217893818245936999199096424052211276388436304810165494055718762169045863598935084784206778693140195831436499836861549191307730180509861280313417633329961120689663788262479227727460789063149261073833089193689924572399961874274804340388251487527919239212187801090235946907507945874848968374580774234886418392922917895668953994836700660160634758613024900080652343668274435458452148462219346454281412655785821351081074791038485438932598021374090325326883526207809102598288788386033854439044625977718235538167398249206605445129175274740935292225056546431807638530445991137661253110162565226319800005578386037012212039592841274273845943979504056030525863286858646159738101857179757402387658378597528632173899045570448231320784183235868283557720660735723005530016933525788438367922202375579572585358138551572954370342860259784766236070696230839941617682208846657313745793902978526335571374177894133896033145979049578510431733715021031726481233127721587128573668567388060352979829215159367036930803170305114825834576078252556469438323307283057729685209805701483975579999334444774018988780773908983237920393562294620769381310207387461393049736620059303306284365405460577107784122056851107741033963331117626631930511488938862556308928652082269006614000743060323312085719547077576412503377375821375645636321933655348824691602699083892974432086285165960259929074120647213904833060285094268041875194286183823013251535161638922687333775789710999858806121876129547123556322056885864335048547183899184352502675808407303214369748325318468284422124079417824110411452401423166443994110420086204375842387641764012156856608907120839428018283205192612759592933664918472584391478933311675048983212857475992340920497679234861216034060583846323725648673940082165610780280048133126641305076937426621942287555791251850934700806574262212886495431046813349308157543733751917741134706274210290425404075032425877231663696911312006273730574558419169716606535667620282921481245083296972265944413140254583375222078435177381967111526999814208032245731809616449339561945319292324205426744230979301899477947327333787053648718374348511200152950878117587349863650955204274448396481431779960673146869349109963730924473335678737883381786718507948458822738890437290271414153202502736106188099563084725158232586780638178148825549370835533215263058911557562400853358896099228726640940472086024024904378151462581847299467575292000175677897383936878891615637675781051238582052895153615914809125304231930537725629197836870856549406933658133005008429935784639530436877132679037391620604415127821130721620996507959925908177577329332240496149049899790077561025247540134640796017691204440790877478950670752527937586183374562981749166023615034283816573242906274551223993940148714988549268273931143845774542784683107245860935121293199383319219318455999576274549818459344788473820072295670568871001298892249412539671624691361017278492437697382490203928702300198224038539021210610701245922383892684170432939146201449798556929042415501367191261958884556521095191425763148092632765767117307226447004063690205242603593528397000914563282429572824081413762203060953193619545354276286066847985114651989588531098082630613953036783834331456331856480671279481387923508786112999065412491645857291356429292709817450844555056650186522788904752981858859432787815852165187762518123332349751121341143287753530919942007584713185257663606857837996827499984779746136842884799522731762611096060810839403937754527222261973228717442912708481845820932452619160184395229990068011147733806481422562627657740868715161804837151784849747952779150010401808766843295163835582275303872256728054204084203880187094533529990474008170760142919091818046742289602248742169214827532028087041309382524828350995272949104314545375043929667128824710395954816126200383931404429079788842310737650925099370773074255770419715500279432692463231122933914068885459146471010660312283705006040729354040011645849482515951183699743375570957499158506224397943618683038904388359591391163172441317789087767721358990569722970372066202845567984947747045281046168325489671846431058220601771847233975168382030777369447123541024453096853632717947191777120530639348218613136367416136292343119555713678723505849126159201046029323360510812515231193269129135570690930853916161106786264464501661981703927965366397449966821046358676444214652464785744404986328052192046378580952995788227643483893421752495720964091501948110313084639406053171277192292808421128411104759089329094420901117111308368467085929031976041564697495025718176315009892105046552704837487110934881141653709264344431786303771594071845537338460517196956542788301916611186398841840190137228012708284151187643540553897669568061881980171560525821976723759595908918328496194069687154985428861524150562428486200280105908162116072982627643107057197858708257471977376322675783962472924328684941756956267373886868060567892708376828270334886716549297496675467365828534961602979510342958825892734108080248779452571197567344037693741476994894541063263066285058184527362169007620016605276894075484181885720604008835138927238554700889168672025049067363337666045383447089594301685777367648865592162015098406155162879390161409789024914732147185652219875386309419088436140056702927894989186695568627472965202344790949351600240215092002778985822690086174062272580844603122579182094512400223672993225911192844535029129501998359210772644205800308265795696728941697792354932672331243417261951931174048616362052305734893884590164766791164371402241761264424406023409330511758838057384143884008821138685700620232111237801914214171531395806757198702981684544811351272945117991816570493668465476739013390231991127632753398500354174283094602266519414726918086381250621603785498551328511231034266344322901631758841316288645281744137718897089178702166394702505688079142578538338252925124703948224375433503679800995266878144776941811675159091924378513517865720743361226335934195429945504142287767645731173542062891936132583441739895729877337831967865394429143434928977723929267117628518139987623410029904421201132373293132435167951693395805695270530028560886700551184770128978878511684896137535208528644769217617132755777410485388035027462818128417300551935586204147536646432222513114541508838198668140667464257644770457455288068778677937511859550873711367622998526656174218489067292737072599509189318960435291966988675638692331185718235633102744035614301128350441514458170653485946273503314855886246548946638968374642573275893475205371035708725033640261001988220490214299264983782939651461255655688044513792127742497604860748856730315360204925438666533701648602891703400493559746553090652361735958754181567763250745744513433499983082798900610716768689263439491447597147163177314778069577085110709348305427477542489707140855582433390843407388717767414877343595299539715218930549800354360222347180067865206148014454986303804468571403007338710899284757388524498163078250350799145854082269512133339889406844488094403006540227310341092349354130865739442162831376928798546554290664530073529210445102093560486132506307638076138710950355613120535297634027397959166270665610769036273161118611009137003953208683954394951422468913461143056369399551037041453586912422005325052733253696160276315883168565157301989385705781883213690417337711775844169273876991623717160949528764725817545532507145530459259884501960441454562551397207885135772941941618247542581674690043386065252116121497039483901461676449045911104094761111815184983493036957099715078169529591222155678683016124787024873150819369340664687496826511556243054853426350740598908846819336119187438151262689718091752506204693641688240742842232626114246417846974124046304260525840559838492509046255543984938871577612503050525347692570223523341924639332395969875044500824912177009904179818902135097354724845735367631010184052506864655749595056808841292855791660505411745815318403585708534510079466066239720086342128837484081933368070648415300823422013172222097081393432661691280962015617701776518652714466396444473330524294834581884595873584458418360225947472116188305736547216484886501746081827997192877951007142527181713077767331139945734862566668405663809217487434930179509225291838230494051654316708212172640141895479610412415303962106177313401643358099703538640295728101352339120044997076849103040773036926046730794974291246257389037319523307761454418947033003130549954006586518909212598129492245952264237159652011478071659138175816469439126090618082068328696794226072127234508887701952202345189892088987060991457208671335030243644759572683943375350538077286351757886546186961057890822676962616826055250043926179970196054182297091880672694312244769664829286651589411008016699077727955378081362929508673780848071362856190707521543199834828113618902820258403083137005152969131687704328501227239797474233131290566961565976785611481994964773752708735848025578801397716747111249965338763231614420008911418793392316297463860720688634758815621312018897564085840473991669797527270836535715751427559490834667175118130459694235236006043260814262044756583391872688567281676597098092062527015159458480581522724566422773144541668510412008772641241592461832459058204709012921421576509832681363951626505989296701058947748350608878596378402363730119987323381762790881627804603666839136609046722850761824970717590636094210147628740184367853800608192087538674206071078733002632029344746597366921875451040870678276001633007542778169315591673504510966278687841675625311351088466094971657358713325641186932394564196378618892822939266679102006586820079145024726584291569281329673039317540371291312395385200765984158585830828011651874259432280402183355698828846079507444826781881021829483998724468057557732480644446835349946413400069107375190571080910133385877784994137437431714151029058068983867831586422701826072038531749537030189134587749729320126755028102968782726836243074917543166898179101076911689505934208977642718846194125625343117491094298661903895430097744500751946091259425402964386084397565817398947866794992528158712346707020014170101427727417754024329896831444173246661494127935627480074702866933090268393515636350224198463705387578563666464626365557743131285659144324370546764231325924289409602430080002297006166074746792476826227576000882221881949201365501545099621934095859846355537615999760023255800628182709026508208294485594333285409053180196351089765208837202127404053970655854395724590240683377878935270418361935033370494251450580692353944058370370937868716516807100027073983078761261609377091745640456849747426184788692549403432583902743607944186990836777154369103978980457389830865113239482955414640319042813667845285283600622007935781444600712287445405232016758391320320618657265209571586719469603480496943652750558201442836205987831407266401014242550771743217644444343355930341832615067585886144865261286836949942430150713363542718401160540424375337358660023152910674310746412699046227433439046089989012527549164637621720217121310723876482073817065151663026822715738800152589653448803080190174075572665110697667454940566031413435083096782933251036767349931519488595058896352958093858400204768764938457039236506462130110267552721884104135692984198978291879865116766065735010376228878126357566289324724617039932245631693209145524615356671077408086028066885741290735343637171146649385434539202084368350151773581496987016020096612728480821267148635593659628603366845494631352468837119010024995902128991219416212357256087755101920514058186252225279603462409432547034968152788352903014844823431531715059888636488418670446807416981185134195020529934440654143813779490527007733040828176402773636804690915861456881657693270963780384308309414931774263714205620852604954028958358601981500347466089098365322255791964807388605397294907692986456832401626333358109417513353477501119617446533980938908899646484470803686005950939457186947301846010677071410746877736244358506434003260735940617523064401426609186947743887553872765019854675393593330825842136148607200517469666512176605816677236770739999577853811161503158353555345464254272473152496349860216411967362661863513305505627298388193126851714310894789120415510139592294742097910612111854773332886856089374328829981630583324125935719190614717335525962347600385193542880741172949122352203807862811850447010473877654036247443691041385235847825765738443179644593220873990751392381211383319817203667252945927517145070420367147349233032809599305476716427077168833394811951175715893819567925057154460708467937212020000277770424198511957923256173184709314568532985539716046629322974168939517144210593616934286098280594129518849137773545554075564335326603075379906983623979325471205206426220461773450028528857797807261401762587023218712819226079467574993515399295084584670546208901158649825526064378678046405143372203526959526557595845695473135735468167348221545371164743729832814691769201059326738237891617441660997925944974812650711206665598497079506012548524617425419911881654667093902188533019015654819076342441426090299797758641514577248641227603861120399220738801761371739848655856817549172140770965028629027062379928632203876005294226500930401848241758922184919297407109148103751341926098721174416161793115941920587728131857575461114292820649490770133751513255865065408712021419707792266915554851032175768984951811972008721330663819070635355862607078352697640130766053603153778269919117434965009842001177818130989420793158372801048301379790545790904936677658213482005808908205104230617884515918110481321178348325463606104509816125429063228687954141775614490635460739041318577410509741096672787178384392128200086557877327259755550299296236411674322140745610720601492349808257917152256963799499463245317014448259608707440384142327001515227416267563262504589646494789291321186327842086456927355686301195720237744501885035322441074131884677967737166144312117079703773120776980489464602739674699784254714169444814644568117997729096312255092308801846572081344749734420131810800555497076408613962767604158788189697390622382419328991680294186047887914453632490565098980190413070871105705830294809553859766700218704010649212159352072815416259444564714648605007204822966120662088761244562147414772834898818820560728244756802681271176358674082654833689895324301864528996114871426105020226303896030861726938721367891164586683480620585318858954418761191835437396933771427836035768667705389691930232004615641804315704127629159483863601272309210811153554376339922712672434360640977639843904676293842246152803167905617381646378673215647183219857472191066757093331808712902283781411999232713777620684824865073267016887428248232741670077682816623900219100865357830916287177092111910926948611352291934408457956689491580357764247664714493864257446599207324911294171905587842122343644257064743309593482063964220405404980034549923281268619923417360428103636584170231066415372264402557962773006905191018122011367721611013824437396085399890013162576225985834113123485883707143789629516346172939996039980541030220868470425566450455447394871511267655568256341124648099037879587094826963013780990478452516750761038492331857798606120968544248868017554830180686386010458398917135814253297215443793920606651875947177740530899270533842588570508283938899479553387635717967172769872766148411602457845694410018563234642451521190267232680150704948390592682004991348521298569792927661431055085058870606817867974593875405604627962186525278764373297487759340530635223524584931764485710471046863739119615660507711595519883159293192002688105894187352139849284790735642340670790875944552249888276492725123223754688339235243494006423328647920493876955181309222277283291675131344434728040586894405042459259653228698718391504575397400650793332081744361966192963633273619006812746284709516417354432683107138923966422562444713597333424333755162316099818588564869474726150673971756076536065564667570792350079202131384473455218130352033755867482822055912766427009253928180810503038637016845133659299700108620537954684147478910466955172860943203076685263161838538493339867496691397031103191978946387807540981968350093871695244415033539766028532605548792179889249289456720728182013870516209086134779612841437785175207426241186275994524976084273147204021928647227269633169780598534782441924410788467609189499818357983309797959865650522464516771873794546151982513707741781909310800347732251289985156325531198038125793963063532519657996629226451010635905948839270603026864423045506832378424222114096516043880867924484127877594147696619816841730165324403726410357501142196658412181587639126768161676975807905323792345669265386830345576973763302023119920605626476784348861883530931620491529460014147952694910715945059024780158999028738116156129631543324036831577627648623919038183489786048803771656226489062447872361231976901053289188077035808462054118725788934181452782640841788382869729831643259260420108615238446654068114250002126052359117994366208084108840258345073066205715073033271165124886975369819272255668248848538465844662646808289962121924732811951566668251028799444885647613030748941922184226732428652924914474975852788323240588647912258967304365243244212431634742008224219802114657386143549264964709985819944908509073572643352248466469588804632634430183742259272929802591811768141647642013436104866039040268717925832387456527998724976337725348283346508366327374837842472884393983063379003479698096639777577472036917312681776189355840903132792960062365929291516938104123849212847648036599990245087267756546776815378989878480797788886757255831030071621801995095790925606776690358261647914589888782076663503521956096319291923632589047401567232138450944771751133260509944663306789750945296276809721113135700201135562665718513531731647380085576437856965693657557580268683411901001422471757424504872501054984842259895646725699649269582573790869225372928078557174211909510755082205342356033226611970905672938071155539657965896567232929336259040965018696186189324602313149385984431288465065873116458205729641090653504036979465696001531864490284437333432894804902839264641588401147605196296104946926890251196112018273315010711366960767635134193530735486075284545805396891178181089096835345085625981701994351978396696450125782266325711843352678354581650997373546150918293814273973968298071215156214181062431036830566107594510403702727225741242309046414024607602000409538941284907305686368264481463490576248971607174455262636951000880398784929603735251355716686084709219912001242071993223652426580867910762373554117121406061149555211443139527267134302479497783384398193342573817957635871292698724110081825205925992522762708788977186161726641312209600321456072418998020328156783834747010966791109410593014140735846688341508172663482724394990620665068504855976108448357977121208781046609341100155722100687328816433302610638480304707014776860738557564532015723308155366913410724009269664174038973933343704964049357081562538229586565727254765686160662180920281138956112658225015819404041559054071894137040970618150504052546315670413247810587092704120875392082612690835670994380849790204386607259232120078199075042131139989517165555900701829268840178813303911000983495254510519485478413127307101307252684375449144001389065474523350947923136973189478693394829982748439048648352253115002731328006280028599537551269437408159207076735288178883850253705224234676376708282243569398044559419425210538058098835851723762346855047980828628867665617162039370656169217021976627817476573937005138160718676393403316918847939411080357157791526785766856688674044729747411188812482308664381052949244325727459847459622996387873544291044693140067684888095949689514549195722939221733570537646039903229601137831612565339353535701176043422250378209341546881722567299940184673292540062757599383171440157974678325352108406262829078517911013358147010386730433903948110429561843219598055884833039400208725754208466195281293242396461442634619040650709162911261702439437576136209587479438937819705614269162783369541153131260280906687132343187749082799693107903084189483604667745530069222052273394859967074428555991853520664723051842231424537251352687281917558101542898206329171382223661047053463459823215486028131139428172280905420832880142709101389356063940051508847910612581165157681883198650922057337745335209927299609544952977764319124493561588934722397226312059354620016836219043146432786126510666704524576170744219240283264656220644944509223073500189041087922942543168539778849543465119843680648560084823632806338485750504828002957035340922429213318481410704957204114417037751969239854777596495962314728565355179361048725799441195146188513572286710975579225784541575903842532013348669172469337090649824619309181742074065310400791229020419549880143858484177841735814668937207965930479309912234137919023949464811837834911182385150065895866508367788579422902732058300411879093252511176969726911470830817382129925539490152763772483455003048436464455681406612060483737151150031657953758330491163016699887483815458249764443206615120162570906577082916532250608678251257580305396667621616529208004876717423687585168067203402505545954278343748706899347587028918057186354625977528798530449205797113626703178064535301930081646390810619540210187132744127585455084421167601130659905103281241882306246016089032575746104558245451880737247306640162369991286564061791567663583409343282454613658107592334377590213032011080037756015937204083542095995888312341427337307296279575420160277905185443566070440246527704891479520339242203678067984534681524170884894595562365649563682750390408875707579221177896398506194981388740605092625914130905001032960696349605278184301523494408144941601088273766564749439886050005935735116546118850880696964133894137404166809709932510193195047508560122626939186147838868190232763609009413638610744096332783894197299653020642289225833339267376135387037756411821753661244491927819511522688065713782914261374483025728965336806483200069964053437464996910209653812187542507916528125557024852265155909938018409682276640240731806185360422184890844691991053495232595022888285731127415407040534826256977683669068218164825683265894490697908740092932618032563830756478220503496744144137013273032852127121562700734510260589946469899419658156107926888267484585805365620363950922152775124628139904682158280961651038765825288205366083266125649943407456404496398361026039056537738619687334347486299956718257129662784025803065328755177165410626670179636542351921459396456617445100824956766026900654621740982378195856581182749809786595578910907478271616099151960255021121542051975730672666157857922585114111344094343580586462953238914088905827056698425992028289878637349851172435467421635880503376375680229615612230538834948328114785065749651458936481678547711381071372338464161558041692195314561195414871559745272936807137110097235930771601490619888946839657308729357235600280173692322240455195140469265752670474947798765924627562737625078024929783472971882777955594393478985172694672097348050203736601205697773724711507172128882096471578385884224028843535025292565543892501789869874806666331502638366758210365712904108842900483638037631047595120732978654374688418631295392814893360526222911577615484117515222735519960384178318522157625364340756892650963241739078069531600385186232519013964000979388136097340339277138532530844932965106360034685920398345368084833681183877062373776404887560826388428614597543405247453513276932986917464801017634345219226260107306213477703306815738612321766608949839515174617300139789469234025916431593050846315324320704704511115781245347365621815608238351950777117820619339070026939603013800568718959779720070704064899683011277735114395988660726691823778337613080012325628676172879930900418255547827150905078579710365278246845979925184639975461475404998182074489146155440430155188354137507345228832469616345984399058928553433578183199700832030039667504148079697730068212703221716775882189594499382161984057770256190359680438178723318369446177938298230562531546355410217307997910091530315822870994084616340609572496695427719410302498531949525921405161276930927584538289519326734059517556764426808080927793488517676300584522927393174254091760173709581785405805027267798458026192483676544136759091796818923406087125150451670934512772258982715245072575166892556379176434616864779295488240946208310991488134855509032240263967248815475058194558136278730190074286674917166332824585858852670366498440442902866703807117543688704740154046205507883545298777765982468249588128162237445626040490830933712882795845506518345981677083798972299663243758660827090891738162941310298190672112483662921271633385072306870497060116532544639511625037483533417252083074141808303394512778068799821861016002029317246192267910396117950310244778719623834631486234496341467313169379015644169459120350284779784510041788694491117434887722545249505942598631437639198068785153206942568326905221254436807438814663922373043702248738942981008070112487297421915953671064407788509557284588913062028008709433150291506049167098638049375049696742415369094897779589643916790378136708207076577580806363116560356085488553336840565488080462658662004223897277815825093503534040348966118165823561302240496423794243394539321889495333453196631390336596337151781102883818365700807395175114277591386670341709712713099150484843401601401959907071850680640016927616114072840515986045583579726776291535585663335875502014756105447698846151601523657661944584508372734980831782291005956592305509044684797250310998997920345461959384100240557729340771403028691573656920107865961796600932310430795005331283822428186218661639498433957408176960806462678058483365100599393729107675424213752983365211902283494973575021279735784549397950336624332017664394723564878073415492596866052775548873259028657132800802695998716330642668906653055408043397823583407158912321497225518407462738241708349216180014749529702853579108713866582560008226079748329863663406107352181865618086696263081571843358194276352503768930599864431561622277335005575966986282084969297607917842053508116715412183334990979729486111404561332978893029668994025070045146301222383569468779473601190762775397430325465067632480797684598290493492707280363466999376468933917339295690465692045311075204979672746378423870705336537817940393892005224848755910415775085753643905443127489475744920265889461557940331423991892733710655374044456652400818676570601300116295713544210683705671542156073936741600502413016848789181406179023700850283746248737457818698132932661452564780814688624430193151460220632741523310016661407360486047157827259003837809106739626476548931046732448589685561331340726468862276806695641183446367728981644269915897528438042941778364532058324313020649569050192657627936690866144462475698083433644256404357464025005673866989619567902787292043993440147797347146552280253462895102934739989675553291996607307873705014727483112964913367612069922343723810247709461716608705811830673001121822641923271129046962662719183214468081805535703583237502765019875083799165601666479265170295646739305487655096781678484166233986074120631123911727733498055452836154420563337618886194429772096032443862475636040646253751481880216642334403807155939353440821604499757023868813579386278083848410897388521579318396945534999704677555342531964004666088289182571929779746445370305160121859574210436996234466021241037768462876766958964298856372268835805656222716227032307084906034247094562808353207392817803280079703062807479838873484254587981943773442291648434444549616827227794284661160366697343215851889459188549526127436540069847425744004770540518771491152144183600490639656985880656826082600982119428347319664980736629462167557934572088182886765924766900406221899532583352016643181958338874069500859663095089426573938077315548947864618910774773677774958066624912077506390294291828725813787494596600951956321401460350344409493150407042571584443498920857672270933580486991106077094621793770690532822991996310445451219576141115178679616297457524947895945072102720666446454181761083439196761553541286827814300399535099042866806940609243594577255392624463592634937360765920941133734345504599709887461441411276429552356222823008127259096958085897418744288709728495975198974461989125243419570997885250764153543689057411896873691472200157032461137219240587133167719191814779974867285792602655420012583557413777902182643583253528144370015573129165035699540341580746700733030267115326787853282886122293525670442536646681974993624879638105716101207514657537398666889260727004009737624110345208259532811768429750814421295247112884859641672992925329306579279194655954877529125728395607873444197114353427440459511833104017191198503575775341204489062098043920092633688420013093215307651062818041236274599666107411289938123367077740305956854396344946125902606404061185623977959345501985998242307394456330114614852845588435943896008152260987782278295012592124633533505189244099120578052293162157959349839970567763304126807858663379309854307527267560166617547635426543478648398903482653968517854525938964633367427784043506587835183895524474773549875660786206906774918203291000223617770108691786813283146116057371659941496921984811565052499313908228924210643880335595958344704698269089498108604467552146492233411608858429987628094412718531030053783524226987204549247801919244397422072729982544224172919965849207105777373207361256710909342267392631872124965576821750461625687353527586395223407471669567931577721877162176538407722276595939977458030958898446520192496395278005970004783840545802712723620759623770985241489065221051223257018935685209217137410162652231010375723315600730014219053500807501009091946438136508850898556225278106639498310458525962718880294171734916825342996305075925561989783914512426179284511891440736959996501811297250215676352040604039982675350427785643962797323842459031440333760268303338545402171716891566086970307500449006865630461800165153050854354121673048133946439817918996023386547692298074786020095679247784634784146289120665009591097327476871053537301523272644004632734009151913412804825652846976976974680164784454192214587994493253145574839011618906455699672097473369095163509640340775672566626933105910494154373347993104236089108126337576920060482080224499219635444060575531309137027728640674042217856865037962202739234095560266581357729300106809306711504650307569937957322417209986566405133759269801414117854824752203368164871466890265255735245222536852250700089206866266320458558924456616103449312794837474188867730255206411435008443755113808821882934069517673289533191582368027930574072225565416714958859197173486651058702218815109087995855382701961561185349896707519854597310980187659841838108722020138780672648359631389513357010666038317303180890128604959210633460525627574508157547013699903068958383721629387961412989120996522850774292123642078168060445120647630534884093274242973422164910231906638251779651881560505615005059869896437092984365153162954164809423336166231842843502784111283118309210369200457540006132446126766556991379959961330684373115949412888296653685947984351975881857023236734228775270217879823851034981502908028827698691470586881988024701212304803173345768979636743561492611029022434217789244588449601029471196707829095023903482911071244346712715568645429415484858028815535448656250288078169112787609281503720318596493668775739976334620223723784718134972755401884329893465535363008214704316538620613661021306396688970827607502346490189722413636232507464090637759926569101035945533530783604807840219874238577924588636588292658987308711521855401235667153967202754651888086461163286822681919789521175224412362709210555088561238046868904060477274173015062602342104768396925029756053891626182129285483934213571818012810372848502984082106964667301431320648082529423700011048445995787442842907573972275985373938095293042218833302717398274307627528741796147663609387179876873913293423100994382558196571878029338050161770870778281226543664550534783690284150044573814732362569529843281462933767556905492923440645997951122537932949580621166733930500857170053241897453419373766177886568462535241532974748101923842896494095305857863490435793828891520225074201116033422912458720640346703288375423701082929157601946988561527317169618890491891994708080714498544038155279955194195892354115338176536081934288934698793663083377953065863675961106234259028719376232326320818172330747234334068230791378649333457863112309364207677110043559173101679178185699788396481217968476829327157048350649399050143820154255086367104082655539802925326921402849025166299295142106505697135884741251611245882605451331198134612594564819679479585910906528903444381634465770615715912788238136107711706961696902505904114649503851557219330082315929964930748492939581013322517130740490643794115612392940421749939681743000957066447851480600096515213890274527290975328021050501902766255365986528166140062768208796042492731754360803940325561909405827778950551056459913615267085047325013048143151467186937133845590323684319973754954179709740651924010127984349532171646978436591939950124492838070339959312911628569742722800397663245869587133284837726876432351096302468485139347569319752411341633292238105143557088418895131004533495939996978599039491576011738580755729250110447096142474786152556649445579866912034233867816025470841435999492186158834044548882804347351987768998365313023585500081785461426339602214477562349487404790059230536829891282113142823600668723789634299731614929524787013879301250963037676490563117347165440087514083532298911788519939770867561020635427928885184313325655352160009640307714768171210762081571787720163117293709717696270571796299945027275367269798880140607921708817104208358779539117865239242726037543840667773701464039813668075138569520749337038143439161023988215822136117270668053873149928646969848429411641043082397196835987383188324984953325520034839794742466735877168393211230279468451810023927650767503157047424000105302372512824313559583037977169655042485874488768725799961000427327247153254254944835193768018683017362801600324622132807051658796390015891612713963156418377280371265440601716586479723764617769758603993403265842257193721397171845713232704385915873223165642079730604691417983326773361413271071801166326869983729886543327237185244015472969746842342031253495952941623418957198273580072901220978733413298992068611286470152154261975770384351208338655974820622718832275588788300268844223015167001833097772967261164578722514990073784949107653476047193219806984663219186210294965841975479322220857899575567001115516509795164154108795853430571152108782149707108994548810808671329365153182735852096108662616883726182098908354932079152363747118378824377083649393765214388444095387885091934316937438812347395147420131253275182685553620650929730927998198147825928670831651022910311759821116461861203517890800545465984397963884444486767086554957283628957527793089309135701990954981010842236774663491292690540147309822344089938017216314366841807268760001860348025653062953635500947090680708988002193211705348968883851585794883195585785539696812000635010147873473677465118937186650405385870395475319177740912356353001501726238469025069730595478162918764727328248775889404132243903357285997399981890349113144741415355723946525434809397770878970288398601503554246264392224393576268924514150955726663263615359565115173345334354882332470228735720716496181709512809167821696840937845181655827561829679974192860178088333670333054546864545086992773031624985297884528614975064632864334664738131758383077374915129173155262462082499107100776011742519654400886962208563205461765689142986175137103632571276454161465757528597335918859181125487475256934879765987996964413359588697310131700596534755097026716398503977197347669864590107077207122084759593393404161133099037530061555144370878761173170477342598942217428389074099045262598763556968425883088684936144106535593831843511700969622490341089790273907633882109017593102488914319692742007526739310549646979799250385505820281086957431481931171262781585991406977933428846046764493538020963598371303417841393457848949404354492828947685304674038387815751047185961044446477572970406145174713003158322860246684017976087433385358346065538378096697822734401120890087742264879569254788797841842629058679803464304680261422331429487308222764252815012456644647039107010157571596120452337721204846804210658442338249874613195670017158809259841639625854031668938202955218742894656837718633518554013557323986122830278727330421671908333549832096815699249917092020295743981750369853606262045262563416933205023819881211629773065406699557646329374976868355435714218795758935381594919246140308061996981135636562937205331228131845149621885138338965300174154878748406399363072992651454201490117511230784252520428129765287476387169446655550824388021802530195615994974592422937795857855932187093889973959248589369520770315992995642722458184863709544596125181994395551735622897828794832440516229751188881310475886711116500245547678554085891175593787878581840371417144762754654712683362634977287592029067644934977408814757021421183763152796099523169339000591878247833051752689439781787522529837419028286094627709177430093465962090010220383511930795798342207437765313347541974237841965258318383531840475118485425265527622255559250206292829571991938849686439391008067727512816371174829471961065376461662025978664255783812972527302019324117875486772077041678291153607574773989908561393867193858804770785537551461424639138028808088965464569449971836532709670904216367426798302792120455371687130591108916388963123305398296790952021171189886261161447226798727702423207705048055080744676872924123779940395918340372604715054098924972043032231045608113123592570454484433972638197168850238727395670963231671101669992827847362679798786938519349129058359953917680564921027364368791542121642161251676772583805714572786179968726055784769317895230086005105190647357240629892765661608452251724992249178715117656074852964257810199796189075462070645487798645061066888987372926874474047426306059378544846837874951381592067887658464260116131399052304216099505715768725041167209579992619416744971250934484775207732553991855556084566799514638101134364103822178375566831972809805182754029797477753771239369273112764516547964541055522025736511361679976409493192861769198669607481001993859775363191714219938908071510981148185179048765878596779496067064652646620207389773384481878523795463248607256238199218268215553802725945474273751078426418625345099348834464146295523850942165697506396934302981378488932212232306808013362956947315845315425575832652072764355404359719223052888375221736533761350476987366805308034398320960297324269668378536253082859929741483120527413152257991755048473388729750767282448902937308421678269607485021599578149224177664307742435181519509148542302104653537571467325542273273318865497268442449649570894461998783841697300401423723360713764294937346119642799869188738957816306545803090870837218962294026596764880374938834520316104627132628110788545834806979202130390974134435129254154549884185163577810571111727843995610428924624485656130576846502954659972002455679284976656503489613951468159986010561515721930981972146184281119816820522777776516591651949516268561270310977121543088898162887205129321635385020539984424300729447944938495635249768162935254012585652027255459776978381648513355940531886389701385801725265299425113424733792724420549815695974222820776004557354742273614056252939866113508053316745242252807137608233500345396417983904032574968859658283574072582015658569395361394754834946241510137550262906355032933353724482150243905983627658297227621451870998399333812966221224936927210337371802240973919505784419241578495085222042633717803651598297131646324739913818361017133831444587011051819183759488482611829973564895199074689061391697939105517466100168265902390558060331346928269384237206789642675959137580567971694957111709055545940852065645104417539176846312684580891370573485513336713679661303487549847766773754653121645558993839959551111646178759525592152578177496307808422162783212020782932255265469315230350683795085473376623008961110854807598254606013003153740774239405433988234576168364670521268740455203802979722552771941575921078606906497701429851347936696141563887470915866705058278462019500326056678907663039324257467839264434560795539001998775595233484192670765212903096375642628059478008760580241239391321154339863124198719729744025315220140222517253439027871238079960324497853543742468458347403765383850167740997962232854087904128600119721482065592111472391840820689667558692314105372129334175341103699895843067462327054400542386649123285851967356729821840187420117621710864985994843301562890411569904385324260029393895867945423082290768432962892372726899018535720544894682202084798704348904140720736887415391888360191741023548948747472946043268295037591265068519953614142898041560418350526513206648573019000899211223422151434395775228111144011929365712372349157410561451991714288682264568746792387520171386699448351276350341952402046177531140364457868107497772357849973633766101990495142672168501453497686106876967030213038325389650689222187818670938858022390470706555007503219958451764525901194424562768696478555276708472431171338871140565916122371667939472525226515943476630324805014565489001149197324063039745917295563612916035488751952523924591736998339260417219595359193226860519547724990572596557313084353222964668336527010523086711757333349471130097313857836407262169609283358027986375264073701139764976129623527938878274624420625821883352337736780225317482808889883060449959179257320829431597372566506087047605341309520086190267963695350573673231386221134633834876851103488087099214009645636621126153167646914949259361756843900786700722493318508369614371002479706113174224606000829929682036493932740024019477133975147587994924241006544596679528220570820089517347339631829630441918431920210756992408986511125454662114169509890347643259325111946608774033603472070822603267920755321261116414827879454667004530181428467004375657304729466524218575926353670727221765329170784352951044852056474082135582476509195576646538821416766772681090813551279999831452551134624610451036905151916567357990983914048288743105555879675664958195321548710839466009039285174865045620673573981502410146277401555730631522093405438841704338764849475923563611911201210211605198465338191750011269877770523870284239421296759001885960683795057180299183782821497519160385074351982981515317757232039899777887327979980726339137793125051955145944258314795437620474424202533783962555358899465221447426027637132570335359811237419908202487296855973222698662132726090600506200576876354821663530168283813047743287578028339421759013572504005602218860554760994316085378733779100680425614820448534226843631850181949229853846718578819487027218649732779778502628122441048534147834747045496995107169604103121557675579557706362296921827778343169616041173913603654554590399047924569049707516955942266378789362924144384629262898328200581316850244623527817136165601601228154643477244530661090795749958246101167851919404873133219420757980403213288847003370848773062072602546271148843172974371089404914166148629819468401200345091387303965944653043289652269538491958800478272895983118503182123761327016161470400887968803422120390974607154306362238128700325221228787114706140263919461786057368865728008875610287987566773974782365750863451567802502501605709295132693973787746701363305378643952912741858569339562323414184850048451937776488819260326564056396977978650024760979974891605935482274212364258458761074029546939278025678271892285450287209662447669415956580294941657907762988920802557267316737929643375560810584718770402575030587304531485880081896439654466231828612191125447400114737856215502608454812913795727209566654619630249112018895253795694866973874661318230321883242501917086500861712788698760147700396904986378289272676696080627930199423879625543953659227678675640517086490524409345202681265159462434855941315425081325546743199817469331409501019530496476379662371022159395612439979832526298278542957660685295947566328255849680415487280513971505435502250223830239492016956452074015821522069453257084029801270055450036590944846850219281737431559159268854252315281788906727192285810411132399052339856293318637024910141929239566585926613839278572256138343199831499017847768741763627027611212706749416650554511129030234526221733285226453963369907040592409006536189456725055516563276404235513830096921052474643104092427156219403595020774916984659434064132807942026155678931481932767134604574123150770185655171642057636962534438559307515585049940585990213275373666465279802746198763287973351622866968513775613460348963991068663277081718287193140628840122952105012969840059522393724817730249893165300716896863144332688273694881580426226632282561229081502532544091966516530802711568133147446303759743059451590357599349601246123085983406910068762229919637896257298873446419555673671183324932494230187935753569672348578744210785584068566814917872483665564944280948230352587711202257893082899998572310561109784823159164303465545963457376714089420361648921797544801569719278744234731729431520984257976185811266584274390260922293436758915678794402510760621167989559863005137888392326173610607779599949158312862741060145303002804193373094817505658771816451428872567289802563843124987494905055263831035961868740997647641213412338079056784518941258943467105225982599403642975859325506218340049835400408393994403075186517228594849713308437520074773586045394471963300902788521848185491984843112873158496100497380758213086149999279833534826638032175610017911736205875595354981962073502136009716563225053195037183065891899699636602990521946039870732855072706368208513580584849780206561737302681469061954865517813483621426725741942926200051637338029552191215971610711988130272161546880978828218319405793520473344546832763975063823382044487059591146396481832241316342265187240263105914473692364332739834650807288564590311538459938854344024568029762578739640080586881243664883692170958680436175268184980243337879722233216714349450752779092944537557874741961207568107928798665806749767615136864287225921418768809193913532941620552840385958312511168919366249915509932726025576493974565496262436485411818928139550088520684740462626320355721113931955914000170359331560600991222751584751008799646484215790761067648564223061743981165012423547371902041193109692366278457057127399806927717701133083520099021466457647313535986897219777332140394301123187231677028260599278198191693665767720304869163631892368533845123052432770162184067603298418589561994451385418115729916790715111511553294585518180650213936901321825292205661544799130765016276487275782285400629752858009329644794740888760036363795547511808308689717487246502484133888975019808438019453834419781472889531220140328626480056976551001285418459275688335408659301792119186850132701631885161471963747482842188943174710631978515400831795530193169935950857373439324706075539237518307825066982026201352654357131421172947042927726887499668884771457242567667276835028243470133009206747788947357124134145720068555756038633934349337738561493673495055537670130284457670229517672510725579974444964919942174109499656395503729288515242238856413487871987189671005227965861425477754714512641607680395563911117251146348225201762946792451168578520792799813714385244627993287300910412486370174367373799502392168122850648923861585909990877112905682693645054829873287377246975006545407585605923190604742660051794439228460180434725265472759390567856770065283132278348122034271956491832313580049037513075733267849848164441551825752198972684474990262013462876381245856704291346933769947247450289478902369354592622567207452223750487189064527125517821383455022859983703097409685543325861218611854817933860542989796409985497360733337589676900142874362939544096450761530964910506736295913094377249666723963191663246519708834934758383641807670609609802657012016255757466894316692463117183651635978725550362502166271657673994325351772034523494085862783760228399954767523856577898660242226241562603145382171810719697107827350421817730556616026998990348436220151340229116579226499083011733923456563018304233530586603747709770497139814801451089185259737485585521624528265072666868960650439210203965276223594748744235551394405326580223373755540496044015040105719179991542401501861149180526249405517464377158557233308030069864873247726468748346220381800011075771927407964592312747096075998225237119788215470298649311348627522700238479329029699314164870319281379936694588678236966347448490766810871675795872167392953337932715224137477700760360459863729290009020006474706901839021470534580117464587497126012910132229636681126081649671448242078097577406059408266191855626993249660628647071443478766213571687315304654725580249444466967175835028252766198088027761557890324116993194303667992317878278859962729149712834773999976982627113919781618932240794659956348309951628726724741746652079459908454860229783196986407328688563369933235232851712588442960103799224396733450045460108462225729303383364713638275221531699997881259566293627534121934827664108154670092844833306533530085520680184928652567157074731272951800785558152632047179312727919166182091406940001789610605377948821723604221830759847175558645074645499284382823739918826531751427184268661140410157705404128828192534438753725748525989853138653170202961330081715753491527667617527040523932353256761553088380586423112504214019063009901640465233676675028231783135596345629744931967704105001817527490872121705178361670977650838473014373406449006901200311900057328062970822171898473104474429076317953905480558000778155130219667337223346842359725127923149837730714447016786433907351166992830383480554326780501055982968388464688263688405026114788552950336676578306845928748489345290559104677873942207338894339493428423028121060291995460226827318242492700619332489246622732551687706900389532403790286606845975818249561013304010375828973604812450178954861512206271861620395316426286932177877769507172204559788953451621498332093841088912979569586315035184534372406766951012762569508173239580662555661123084593823101925106967474161768427299449695912608682661055138737846739685070080415506327257985604957012443264568385993861213719990199050427710010723972820169551074098149032106395059721472806547484239749664527700638653801665970445601921218079728246447866800044871895091334425760372775542537141086757430688197014662909319605560559108909033106703682136408899546978474152447983390246200709961897019362324752765509539775873622531722730046203250688790413872504768943035912164716699865123077974676192151152234729527884841988226756265190189795636163525633259668474026923359632959842649159881608983143970413685876182420579613708428387743685628125618119513507054300940403553722133411826076480362626792109136698399254724996936057576586387466828944904705442857033442321032704664836512994094309431322071621411954720251822193556055993041533975050124174164257140043534550730587489094058388839571700524064213432178946197923240131249546544864306394283508077946230760510505566907402783833489407769937662901478427462466453438990618799266288542166187028010832770441172351581409565712638570182397054188094559826010392603074280836165785080416389065535143662084929457002901814742312777307221007868225222012104887210311760208648813433261534208155152265319085009741484243926670562009460149972525135200360320364889900050542820239971002581759268717837622391268707181195925303290227977196243131150395963528008198817536029985372944594552949955742446555947527724832344467402017829642716585963686732022744527268201560083132997015536288860857951765312185683565164492426911246792531993956679040733978347725241195576338659840361864225763743769626179727635501890687577027274210150253636676132354199281219680350371369659745504678944055791120794219332974077509885603012979748033455753084892128850131720852038152135451271391451058183594661095533711284045708827806815203757960349268405569481643801378247079124029604963764004856510444598824943619526225715057136147694447571865443396024521475577572404989716371250456966067889258270329065358481461874727892661380749460324282666704232848955389600126716164979254879608883172996570610299005820645997511465539230767203822997114736995415691257066048340194331693340672300689763142319718438585674940214028098667254444704944574158972369021292076800334470483364728425638643209634386447401296039418768525069396134143885392550348543997805483429903220636153375924037052086523366944041961302281209231874974302068963120895861454758173129022077369913682282707804466399314710764361803819366299974921791512685070123169558319489689659751256756602953983240459992953204046425213541003227480793046397814123952318415839946960884798481540993131995311046025871400281502113682434605671539276496771095716442275618014501079340105802156160075477863247676978499246903328100900769318216531371084054223763560281004650708645904414218600801798785959358261792729644723406238110541729603040633946596516271302571547065995503451012426845324015372944070553645120187297379612406452617513062467101119110025595749519755584486366242115847644546909044987990926405826524778813785234584069723464124923603435784402288173804283921411910435512082176029756047160724577590158534412922723952819574740176376976499710550451945136828703459078565271000643848207896725610267956525230220311188700491985593208094780635073697689720664811895365199797167825273967376772906478266373820875530231174181214320819043721580224420503071953007193364516320613372585502968467962786154792925154651459449531076916111470580018801100049678656956271431950257773550306742864108085992632869402149165424874426827211125260074354899745704135042799512252139853291876262085639699780946005242376020574185876695766337854683450020329490632706572566137334636499054241009203821358460996998527994302904641208935904722730533389376689170527122546281803066681039826707471287322386849966849858864010689185659192046767698112153254245910053292271942939491608165259418632639740705747390974208310759471429290615105954524860042780852738429129390029977335513142546366998136191984417328841237374287089849709886024096635398984940888932165750566760081078217409084237885403063755323092577506450199294996374727226616249499169580166902489970591922783486072390025472180017734392831742776183049792279537663562480070681967678311582622678147882945216205688112900950345914314627348453989517572654838798920187072050392674932882378359910943586496391373387068483008540088829761425111938192595163433632288415793211462225830372920753198116761138056363192479268128447176179234700706970983534044041900805041539514448435577808833025057800288192631037430116596590864264144462290345196815059675027802682687882174295235927259025895839311070361018192296945438164294689827415619404763251175333955430468604845198025830649158338736767760568541292604288019479206839920016910377059741635868320350319061682525534683830283330829852862387137910934057529705128585033948631360438494042027502120029723574635831088358060227423864586890015590140992779320502062947364402221762028836516534004082620529407626508659466647068268698276870123271759130543120765840411685148402521673817089762156189404262752041862546739620499425498258979783624174370832227335655933809440628946599147364245199947377575187287569740764832061296689757785111860888915562885999380163009490346942103367367863489905331348685588567832578800064904791975197874758443194278995814561051934615820388076189257242353957115469782813912430851557774255306236561842595547081930871894119668872195928700947344668651485804388547067920841551759472483156137873105712292833592191393956405468646489521773274713736366513357514335958340972920144971167887951546927683908827537591003481692221988620548294561848971427676824349246093348529354661017420321241969197787127608576198243424992993453302944337135762018649132247118029062688653490826213219000245084788194491329745305202240879205335565552241616770861845121127834499260900470505092920266984369772030742639329063241464889410612813616896138712743468040158890234564222321333082025953554751646120524138979035922927584380594259735168178348637252279646353488715032307199096409222868940046464943738400800021961087500957110873895524711277686472953139702905099895463735805071411739289201585626495111543342482458468406554614226352848269778638304872111497599787739796921643622171038521536937533274974821044372158834361427630533957137515169155415421497529934077935798655388058684200015907779077950336995523215597101508542286305541842943475727044842280669193805129384050504779731331242510522977558791600539727565316959718146299267179882933715802673464494823818733912375302746563601123371798600816133241098679514437979435887262322300533673298286039175686067739540998840756382809635409116713210483924021998789288866880348016754056305521545855739085072084503111046174161967560385067420717695183477553447793370227773735395971520434741030676131219749288260921045057135839607185905435422888393447910573611877439325720580144407587718283219483154497081418355864040245656638313660952559810280395042691700408490952057666154143270727422974374993030935298632390559574817183409736269687020175213721749050147570172328921194399581740870342735525405248613018808321791082559349265040723587497482510051685798260269827705089940945458669008486060930114235694592984257727772773266876185559199510012252365813804812167807714559675090875441847062708942525094802831989363559672534718630653028963433843704418704768992260054853966675473628632943940486517738962337989135348943420243161263759874006428554390572154314575301278151562452696768799856775719220743257455492845048560077673917478583868058786582352505406124585933217723190123782483938195249230804626476067080547682167299506756586813114967474955439135199510060927428398414195367322368617734388144086792920793185358922844297041945756573476634081985030970817534899670311885366770507553472859406967387450705935352939482619505629887393729709417515826732686476237134898466859004483903801917033060723754831498072792655761328949343337032058231538260778699103221634091580982057654730809197976191903494258074750000431673427646352595301244689306970142822131724170350878024074824387223406416630178253215733975105842747826811142341264580750426298653855403267890946521719594472527894194500696343087792376337086341906358223808624995795293651593754164675682978191585284706270874259218265372707795272473370430334772564565841705791574886459174816877304088165001941942482768813722727176376032491499618694047949810869857173128451833087775075429666841363993022696724402738388583717254159939843142666663057593474554522191059318753977435555862256558021530522610163089343765335821633904725067535387177772113347147650940893699854157987426419761570640484484660393204665593140272290755445687101993561350389261619615134153242183617833716638191847223058985682274678757715246037377720118335859278531120305759118348110915853875009096146795097648799910039369236098025440940345824620337779138148817779193796790662457007301854568505665073378407262755753268090795276397741016036083758210496966909588417303758648686296602632755223123343486981994784353609131338439995443408455240439409418671833151333357932524582646415913538400031977497020886372263364641950107759956404756693124853802411094446020496620261786044141091095047411165631030566341388635805124688495293385779797819626247262526397006420096466335009397823136620875685553776153179774896974196609464669690349957490737842037057203522271388919984115164500101289425654773660571749065305834883647480158092677077005679183320267576952574740603901337257222688780868549791362917246485741106978260842582177724656811725714199206704627562090084745837002671245977252351435720658026959590285406092443386300482972217462771950034338439154769156607199800624419961344746725497865853655718770545427313206164403960417822846962443801712289240695320883957396437696019624162235979470619317476604074295448517168503229532521092665500660838102826562167382630080879794002893434643082369483859392495284079614348614704607144976744619102316304822821732503480742619149517431697759579073393338196781995998848095914526445255684491333386987204324334257628989050770448849789625016526470783636794345336239410861088716927844699414675299152308062141214604184654543075188364249182545464964690714608772825111245111998991425700856044435110324094400195164208953905710536811940754629757475387242120662918701410217368299671284402048682494987746638634523833016961177345077288184618792409086317685398861431799857528004245226082201556624210412570959835336055422827876769726956026381828876182760367708148160282136611579228347268328420062952761759129773641985354368248508486487787406126634270011220364636027246697288771997433783312681617637445424894380428706337851067549230364366522892130100134255798494714034288708754044819040101028203220198587741665426266283330013881815170526213739789530078751195880374850531785853991321142343096068636262102682945203191422505761970506064214542538639629332404987695473460657691847667836140598150328823847490813068222782789993096983679158178230801651443351494303714853497809161880362504742486428581230377698218299920395453052969058158912643327350103179634978513459967950919021961354233549396405273560133168048727607854908430196582620392814646211977490955424793787131200527052321155086306883071067666335517654941537471410665413974766936527088764729058343317057818680333431402907054534336839315969503182637045261530791130086590342468900409867696435306577584650944858515851414569227336925915472425277632810393802353016226905158131034505398693457873911706960268923450658241116390899485345027265233356666046179935044302281925924716430741989781663723607978989817535244989976364368029284804148751567724164566228531939711662076248653946175590313860697571472003731820613616600691935103944268330660545384370561503559528845344655898200832452589271686761459377279202152896226500360769193028652246869752404137806295717674144290618289899860346505222112519481843309159510071479197169515929988922450577958965394203302369407636001907498161088864394979522234308347073649012092153613969450333562401984467924127386989538069176152432225906297595353403261192699291355229553981399091702782522365886596573722774115795368486515499431950894046398671053728452249743442678890494294306656773568836879694641260129362858733632449891808570706280770912443667829161969014875053585198637955979732871662519580899322743424072800672738615300025118082516081769655146190581938925236359320621629127081769505840779225179930423586095217055799979818069706408106259389879710281477736803646566172587002392394007079696182222796652772503082091639815969155663775099874148878023459304138457498142035204021730957935464841587816753656772420624534608759134037780452680351929962125315849609437559995887421904245995780145180726526290471420705404091754313410334960509556251053429455713751690472889849555512658994751083659858983146196272848510955027980983006613110514378076487537884315087706370160490639939977850662619075721622040202737698880478641716779272035966220482029690618276030504142372088788880440169319860892673239829700852734128486457911715320697425833756839819610679944758165428189714259210531615432223600976982270806078813793281834226161580105653852717181220130778780807697257458547857069079648169316898909343236229760920839882965328376241224081179907800448300454532585159411602999216910528827416940295505830622852648435212409715553654255074165848666306555773457288294298097700626014335419696098665279121438486816238838056729589850564931931906440866450341781537062069906244144492854241005609595183890824557308592084450609554818550720672232619361754695133806286751533677116094966418457794547995180113611192834843943995047866714629942927057232728817795406076094125491967217664226062879850365521110669267256698201047584201973814796285313181701433046584826075084846304811621243746063636060474324372361151462372187774264244147228786383744570707927846346789685433576554031474445745502823859871433817623369740266488095050758051056551816330068059910055806789086417578220969573393440619781812042680268915757311120277418230857574003204549278248749816306722183173285584751071343013722757682327112693251659365576807887369378964055817075745149205512356411617157684434450653279010186350965178907349651564998884374887966378911896830727381823702696402541515296685701971863293895402752037670304474914673151290062356553831507317767301147881124488617017481503595101377935182380467302204878028663982427878306506432489763376836925743036032113578291461801210283444684311737446897359630212063712038194253903059095984529859630526922711613181888174113905527509420716146542350133244278783884450271815980786141780767356513830253988575547648805032235639313904247742779742002361048822754623271575238605000674028955097873367110878016985520797107236204072183467196842804718459364989922594105431678176247511059968525306287848549295614536348592841211359248524685690326150089395944254205819545523618339171904575927488182751430475772902067345612976056258703481238068278736191945035897096071414052382531292892592558942205413045697417367207029934836308892294777964348769691912405189852551581560135206028311442634824828983800032279474594960604302024792792527676029010931504454400154236547075059906577128480638204119808012932180479427572048709582929708574794635217494816217367736789933136323198671865785293111572137206820044415994655086130372634018399968080974734280553247328265318156064194840059021588164958248934267924198602896502530311573776069791401583210102748909241409151572892640698027407370430940781251984867977661967576283144231569669173789457688848175757400526604359116172306018790966217791885724396951509613271987589609831040009435651228811048584045963483597564768163698011518935598960069243482494153748211814461216113600026073162845157646115811378565801593076641547070877789492711767773095313971357006187159579345430456669955580490322750824156684862476839819097338445356386923934896516070341088351387440278770096134866846339827179808821485407551649538719074382047977934714499269072362704099813590792761103280075358464023527583337174973788870056690324780636908751419483972304611829268566805846859840241636550975552517282449992893537051259072468192614648964164704945114948917504483221051092338765960470502458179815545480135018711490396925106602096946575637377828316593713784397469927068397727951159615561753439038925517118281834965127394680970631522793951058555896663967356055408629963510595555366189028068664238466037476530421076411305667932502387321506859847458374271694270378360899246132440050300338848812634123601184078095225532503801696283973678836690472641975470611283257619205514617350696855519309957915996308923494341635103974263866165545790544626714846619817247728600961993821338896634084965175103884574518659834024779581595191979914312648318999820280621259762290846817861255165857400512289969973874713320511671236808694850964483944879358487281379131706819478844655184303254317866326863995491131104562162602787060473759686214121113565771991171014791430136049323658191355004765043193893259671924256204406322151685596932630553411159664032420197696108112087611854381895106096746277420079496654456417416003041336867607463628328136309797568063237240457312892760861188418472420054497940181199346990962341314707013516663981127767399708468381271746107697067388297934523308706986639482647340957570151097608544937709677520147553894077218873360083038807167633347373422258771818075043144373850832544640392373996735924508068175004335207394676210197827975676764314475237514407785937279935440331848014027521604438481816401989238082575153889494423717982145415757269591841497590684169870663101073509810205368864624480997073401511157516534062451456568990198959935096410111019597549114550413978998141421682446681030424773363785875362381926771656754801862858219797277006262663683851714886300718687497325041629889752388179659377446687338053959136392753954032099495701461774965208758265882007327264223256372035375978982207177127178598118425562406364217515935889257628596781243999836704564722484100243265504654041432697958485712479439844535723991770952860024835790964276979287441349041383095761427099363715362242673571187602890930528875128696489475727868141568467182150181509633668090117480294661624625319980842202474814421863074768254654148492632803951395808173835431979744517525837689299366224101733559353838342081567008711986910138317197955379164561579608527192301084294285104731682741962550923181005905003321433577365534348043434464430547630926905423696271716602621748003901491853878494221251667591865398959150202742365019597729454376288806438530639639988706014489610119759525694138086373340704610473474460461189053008446828430560992780550540867693509281089950907206695199448404477130688989661042451046053089345835176619153475568432158395632075429219644758236197545872448552778937552932847053960215466073026420878443745514117622435289271507333957807959815374120904284258539526822430720525974002788430131074499695360625703558937283055228882818692002355839530065954143900481779550940503976478591494476303449833001659731928709282945156360858022842563521303859235614247377805143969822445671428326021305398214423359036006960864720463350853778151647007796923457150382269250425374416779332488854516790083832756222188166192147524762855426728476060715941147712096279495270374079803814836230839826266106618922520258164783761436760842752071303967400221603935590123245688475601988520690126583586927706369452670959984267737639572266133439788389175107448254228651320456048814121405996233082326149393565759479036615898183179130511845144189531706999405039376846072327941321632826942121206225690464232737045730593674982546426864514459322768793963147218514853156205595014103024986264539983581229710199666718867731745105286212241869088871395935014789329606267104832872997237030346321630677194741405518173391714236814261995163106618370379727600438579135455735853801691179172319769918142882325051730082162234749255730379567336560297262600093218624855685184104120330425202273978205679494900895144596220821234338099898606614949352217428020376983351408694756480429882850615552344568488083078287788024690566731973931512706026466586434487847184133611365454545604465850894362647151173253449991274368266924832844808547282213848944979046147038851334693386133682720608206454183377404224303983221490922706851285137100132641736511277926723912153865678995507808013836213871145464467013100401183392443498597583575973980291202465412358098897056117522669207987292813613387354028255231208107279890193855191118911971136748048502612378064432375311365178955232052258674438136624023673939250218238727709867002753114161662830641673635245920672535713109267472316116639119315677783739272353854945588463992675515225359401259802849568861450931004224703896006355388320204342728692323568812316233269459945221108283146844970337765393123842560126538630009630940253974534110737638380608654587568197010783572928583358697289993005810091820098119192160874530423325705072665312065187168506898847445736465363639613638857017871026385397268748124053456691303608274189586687104410424315734655800876876508516416625895338692609535857093662197933598340915536698602892551289667854920523703677053498515557474515505620497531769535502564647357426267094697847457626985203845191871556288540747069949740665152321854854699588224073880495541231821435993209785216841154452219643838388932492870983440155516861490241637073929326659942336773049116816217970049048893342577563063177872191060053001915224269276202279831314351292241626355306167975761973673780274789548174877274154187850812889469029400314820321089041738643295260793416260998230582221187143527253684703797070776002477714375059017118704732194763101809785816751508801316205562916167697886702831596172854324907109438185690822831280546070961295353756702011394483437075568521219735645221430805308972085973952072612885369300000651166463542236162901039737108293443391873421748722533865400794736754729277606380609433148530586830778640350722760895000307979744687570789367895421059059537505760581624593323128456234379064812336883914092997276954292300421550904635310091599502677449086388400339719761043098484029131338323392746172874440270052274381954847446122401323318062852913685966592532894308663626093256381542928384765297050324550287718059448015500682907178229795461882060553780815470524676934566342714059806059707649998543201054759633066809127925569179542046337207526282928651295189576703657873400636581166168830911218999670010098321735836401429612210528661662138295024140454002813438292846736376817752767087145678394182854565223421623160824381880968936169379946288954194957771573670813417545959157763460704470129304031539668233300431257781167462299125459683440284846884580496730815739171965951135439591763312049764592545005170803731535414013332318109704021265953226866382283744554415927696223427434162581950053432043239631149138733422095983913997069552808064494211413216210860312417315135098003451981148276008384061175731795994112036218744881277506462199691345270740137432534156566752707018959051530127621657870758602402594817329641341576292197976201021077890955495291338708244003937604872832686317165992009281589515442813599090972318420376250520917069297556640985423996667730671164036763141552125807030390462761758165606012894114324093678306368759460230911711809555047690047399659130247884163560106877489854844797796988371519419979107541955794258523125619886109941164736809898934547466598464447623705587102438722144860515385094935815164350530042520688396341963144486896162396622126978350350143269925877694850163181402121133921470872860300516863239895961650115670012087370030281640390166671643632620806165533260217874614123394063039635461628809582710166583765625602477533840241197590375863226922372865524232252333852184967487710640391331402127473575444032832631879875005999821251912081529969959262911979449817328447897008380201367517933650598413912464788155017030909291288596143736543585983666352618909043174397518452646750606744482245904354926911367695318224345544782598029289710030821541675313418453066838977904191166779133386645366221333398317443224397297771032697784791083016953700038321194474876496365041023334907180408128283105944692036573284777015797191259629896082590472425123851204835816253207679254103610509878684694325162525427042966881146022872720769290190995246732408580224747065987163196409675633702883922250266876804719428967258103763046888511387750408800600722370032115256665870537007589624840552205173080657927006898221061732505425926310723417647964847091623912732151908216206894549025978272499888526693791544058980961745337345753071666456725342386311542910968589378306735962221815831288773232693615496590354435656749010411570189850198095265626321467375392524148215154493725013969726859670338031156229116980142269724300541061377928577651072738808011219420190993510230869176312138592312398706103582148040546083515121875935322330683920798299604028722143943116030736570751045633325048035865862665438918660681223389155574689543309947422465384666823437615567135083931243716709313637992487024403821789704810263420036070349871396172584413962404188838148023859661658001830326702639747586159052398468963315301176911181034255293679675581473544629695285107976732732211734936160364611940402592315531117167002810699515092296246310168049276454627150607474119706978897186473958478145519832317095683621758853662060888283439140624690961395375629845252675111819867055223012096252220285941835883928237679550507326655253321373191148441489780103543342486140797544679550113464728887316225891651755295803116149570904816547636778289111717989459050297968703079489991157007696344706229635912065816871452904907110713186243420619942449395031873167751308540058532645224762177716414055602250565183950396337508835923291636691752347534941576772590651919673979805916379107094057834841976897534718619291684182185981848590606090849423348982045384722688279794126213971166592415068823257141580461526049696110243355881600587795675090524244882332099130397971682598319903169033816924461981792643409772572236668593284137194246615721156543401008560050612211810576402319113521068010363668309829281022178742223605087233554347099656774872051631680249903413342219432513068547454986063378599796318125796417861276709558641505885770390507037009454563711592822304757511629440016157656255020825840833399220794766323403074073923533282020903824820931710065084572889398549526238126182704157614007681085141937811381444824349904220474970756409406189808402527855423543937762171426371776230714802360712571427787844209450684012257237257009223154538672359587720496877443204726640927616786638765594553945759828365971228640249706636944931147809820648504989517893347420863561599169643259276205067638004151638547407650793126320116124521804575826715261692323795933507471593237832673573168939694286644843745446179570602693975802273413744132304279032889754039283158337172158364558677213138545959813259213212895916192095582771976952792097564144111159055361082890640666259958167652883143754390828253000572134560841346051104422249537476897022168527756253102517735771476296399857854910641931025529212452983391191865090876647014026534743260653894391953845806395341817644122810487815371251946774971629175461570950960544847357209755651968611082468815221436961073410512790569815534294177036762832923281795112141894435960517918144683466370871367901393611746143340509288266487812550766504719645487295475176865825426080103648996096627139306887651584392688201602446678858672971894010434482897806255432977710521363007006868726088774304595646753030041449409424593063689645128835306727728283885831147467890065361813334412966761754873693780398510370610837139936225274038031323445987601853618347455760292778077972607716869774401444082728225110244815876428542315955834250799741998473607226750936614704665478315372866127728828727371463383757003880839306327073525659802864442379436033239510750797865447067607502698488652119513700626845298211150003434750833741409575688755637658622679262553433991700026885346986686451262630730847135246381268752062400683509621316272540232540751576339131521560942331743820534504290143735243589227143448262594953406930300978059446845951692450741008442394516387916199727022404790564355428290674656632816816666164887040506680243810121437965368956433464275185168256758968838316673204097347807647028439379580276295154901538109567997480022486651244300400554225978726275455859027465072296097395698820152234976604741226126501116918028760977316243789840172316923408827987188476783235163947343194409315999375968963620459187811058284584158226184253603135674709141705177592153354827859324043889772129712674023279816188669847740594646647873460489983819468823282652395646483618160671983661056054118144365290276838070657654981748325944078945488703340993023544748280464639001020015449009338141424392681533560506449785232565249434350652037708520805199426328942310891695441940098193282180653538226718034523918214243114234281169801660800006037641447933958975869760631720461161679699516938291137572541559800761117240299383456332643556619049709284347898072272692971006316305539062985832049237249761966887436297860419054661913430762318629040322453696858054782477239848925226937864211663333596459839461765568288999251199687693080943522234864323897096519662043209437024735903574170908582713215552402535967931436850372996031158448098156302137112226842096267014609999150314513138856861143548313837810527184971811106385090927095459770083160683014816510703208403310958061114461691806280483066490916121705834113069759334582322663119346711387305353447557084704378405602637482017339181312149517493997964421739380758472273754008402813403200000910593030425660048496067891165922812651272503092510199889436586083345073473617851293981617075238563458966067447016301501170831972610652346087234118048239135550492527878856952837959947361861379704985260510387797521195028738945926041527324661265341845516033252269920740451911550789236959019997580499856489543570629341531902053266989229904149499093319381270408030772422240849013802087138301339452896259589943350273914438912322652160385986583852445376384407540620101184822142631198543169613349251580729191947712669904688421171029745559650252733143350624552580506099627417404964373693241843715701581314614651580404926387080506354919664415711247700784231565250303027441526015464518681896478127631951567794202823784035158805512514501623770057058187314854764892868089179539727960618621681710750066665233792336446682623305195351238601971207121488899614431750624165708530502341050669464423641999371574973494340140896922046131775876576439003722797241531241192250786417872101740712876742373869410003271908152796736379804795923714796278372911093815202130623540473200713349062612692391453270196483315391897005597038527815612566654435898533334709226281803145294650552959037881713960200269897638660504871533621870107407233482501708668363774023755892079486854591859392171929989674926563152764439028844798004120972553765057856117191675545006420143599209671821951410387368667133575974759009523505559502334742988211883070527675723236959738387859912190600591931894389127633466511825145976721606457372051643710619862214484834527953729880558087972759804888046029841257347532222632509698671972108306464299776256559241075304101138276408774175524299642266333307071382262913863436796518500101606013098667692932069630557749882586118775209645974401936484490426068421652494074528276502818983984569286395259958800002933837144829567235413708286012730022277315113224676767090901942518501554552418434151903526617247660194341667112649739910129237780943458976326354995980434651137527802693545966288577726176433725966241407959328898977078789571093403629680768083273033088203043690307052932157538854645254671635006596050841617456373474779868116646044157430536164612439465484349032548140831820412960211822124082986366482219591192275677180522448213267531373827432214967699001795134515307185213131249161551822946789543148243539295988501744149380085355724732178853534153733259732487343508601652918693066404278484484351994294448762274351251782923934061078776476085199240104986053777473363199792613386852390151842749775217680258216400548778636472349125871470048836640712292490273525240465723657278884078807263578621633237119167409785620541393480084644609789217284480733242156811594818581242571365778908923630989987615779850303820920873020459271992552999835006896661117642152111117226123533382191845636531851895162311476165247437367895322694718605907998503529173724804167779961197100180428479718730534413084188296295481375498308255210365959945613204549684242943584886693377004404778713957379924970769561223421328632625025906352629149175280642947689673696664329866036139296648560526003427142727504377519136646948825130175700858211257991027599845374695461322708490009758347516174774374867473643157696956881582382417720691981640821647007499561591645426302970310085364589127137490666511911490311671708428779711963740498419845551550130361788992247349191410939636057840026076274676495844510040700497353347887970580532273859905496801085375525180333369587731641431568063327168493860048053161936621494005039992941825322322402070015160214688883742628697474918275592749068568147315574650401462018004532408315242615345218543900522106825121414283044436421363644821603210553673874854069180442423587109747260930325175737081696747662489375952591761189638791238380779826776291160915207075329319444289229798633182713149441478522142688056218260982541662130955808569735226255063484428728081165282120329573117776313149759858127386288506669382685204047561398578380804301969029949233812078618756116312057000296325634786910582181782327551409407812030979819811284842433690315260654288298807908023975291475803466737180784688377707324608503200158833131461399306093947850698985921561254150678101374129550106405175376873553628790203858165686185223912497323809768124711815111555186954750427260950814557233353256480497338965140512001611269806783708903494819722681820025431184958898803467468433286863232510709436343956107231660077564580007917368538584465912722391208285338356552571517753853286070417063134746198820417553488893754308957999412647938929128334428660384728534885930137838319556760416906287484519210512382699741073723154365678324600685240877673589157153598214628341583013269362888079282941621557365713388953854579057714901445562070298959095184260072006198067853395996312488913082700451467582378799755590578913935299705686496876684060370981248793647262483070727159224684276001291627362640739762982796205186602720208463772794624162696243834112738777815899052720017071951969452727812930885490364673086040180293148409191329668557015826305297805597737571876162837998912156674731099086730819731577998720128514264514309522614722870601556440890556400690606010279778923976741891980694801551906413656449729747894660925583563348303320683842350104710621250231746276557609152416282128331793452053909522244641657351102575441093380313030850602100750412218161797324506558948146885514760927489948963883885263115380550494229931643630444513073307110091230328240047906216930141704376254388116434895595530496701942435286454807154747302283369335346340770725385922141971729781890569864600920575115804158856237493865009347875018700076401377926901602385041169278041376732707696307263314844698519379594662818585286507150061598361759513474204730373579383216043985526683273199987398200019297787448994032040898200993448470705069067144440696379016498240962752573503895974689120192917201869559962211593685061889134384726751881573845595821986668365926147600639063199160142779658835925633653859669441224309436308392627095844744876695810987522447364856695179924826377234468644373744220432250960145604032460231220125779013733111354101369564082228932751169689088972329829273449139242182173982279074610014132084673132285766412515717695785132056474265141177995886782939330077925331876917963257822980809170060735153146425252614286683433455644269013387554836762817325852396251571991145670551911589470295926021072776918122285971761593999805934797463732942255636323122739009521913232699911431627356343617934528284786506815236334952685278198944357127900400878107139525362944696522756123633267763331613766792195670223936831928901973805267489901681110205605039251308750340514507565627116512828401119753178577553169549981196053727031532992714050370564669619456994938541782461661918123734239042053267137176681855714035993536158264719968252665734408875221249350890319226216245537260995044689552354747785815036809901134457817861981043118064469322240184202306884857094287046704013360341694340864367132263533843005774753518092969898123346365045918436905159255181480158487799975034113402620404862199876343424587828323172900622264551232080752114413248179462122447721278374223935332241693576499108342057530059584807407883424552498882203344672091857903788314213842516094912334307889638495847426881509889462291497790131525357411923950489127872023708898829747351197746865379670260755714015581785142466140273234832689174132763391864236350394299286770110730439365658154079678828621321149362382881632527098327235031163191328105942338112811046535993659022913620307111082007853562631620695572201319712276287093753274709548230660439253890205070232115501864802275161052799928573503851766772568320901618242079403664436910145019146355884727356321464946224677673568118159209760227728740481517876896126401608433178716308460114150663338997129015851790731357348985314708139282431229626961985526783398418732847345067305420760935767829038579869613561377412777959549282377217947288325147147321645740686402593201244968640551180429860136829797480064370742935597571582440083017739234224650423683166979673159444627580705045590944695910581547862545946539468167493514534106035480618509110138589561910679702914479690143767138621565649171016057078390519064143323152344130552069346016754689925144321661173618534095300142688204528389797525360875559626175895040899122577133229184327117604545961804617103673747449959190717102958821861960910025820696953223805687825429029005967654075322939881642104727029837659143785515112925818160247630472217520683028262152298119222400238599820945902155794205407802900361615875324270720674864713634896729681194690689926251882593408518046022502816355044032113200567922500531067526561824998536109429385590296572682130650452038100237922772965537254991002880729257516973426319156438271498183183391941044522734975688816895384160550084982666050889467565475318631365962306076485716894901072671903437668118989529148919971651376708732145312782388949099585578869137650460416291324656356419818742373696256628182408817253729279336401816846364801966467622992935783391684978988439656088271731228569347730046901838259238057281362109716915634741012473902502974571703412525858100857102638307682941016908276501479120009613885505064415020360543503520832978478533817799316608424405820702573108754516317611325765874603357782505926506388314404056498235035550741959664463539366981283252901523352200911603922496211023328305848929941082099073799052873158932200793121397139067109520436281650312470408961547541793137667803541376251598185435835826711019111900679098491138122831912621303333965465007177998346812556172287662987052451425777269881884227022807547799617440928786494981811887938970017815336574959669063425666782509270653052899597348710353412061937501288732418362376791360038016771006151249229562295792434649953850701013540080164610889774525786256621607712791845097254647529501513287532647652906515643774286069241197697305247357355852535037531108519138060053821172870722836923161709494762524570964679029119950669799896703241235192689531247708812764028453641061687256155965028513991127742451070278514153382872403405344116710945716996580920794747590243422830330571814514458636833878537305779561567870599063719735576229375401153639599915331430334473975989327567999098470104643405361215997290299270342882074543684857036993922544085111879571237124565266862652097002023860499207429758276056957551811976917039624681470312404426165523365313145004685996336316415569230511555226034233304225070332872341662450856747939289499449518239262492000366716927995507237796350161388075953221502574863901861793244855154586879927122888905433737164643937419639686943140332032648269231039154159101182909305578659484209498100886421282043961119071514466948862666148272503236434505564299438708931502186616980684672655124369115471765056417977819276816119836888697549457644673164900817436191369996202742649827572901589416182048073080050069427025826735870168861817803254204780174873423330650881374897804797923880211757681629838901378763546059054939503614079100642517216215827653867882524898955717810959723159818486583554664249250257313684511567418182215002498781322470663236877092394455811719861413277068565477563842985841319010469999427002101586565133979447194558907134202301192527177133489326656118944346094818054623528816357587586661956472205359185597250761005488298770525966183435340907824470677026161033881529231523591857713525459564776568739671197906042464503319536002612044277807217200551974773118894796303422831189839650804607283836579279179722385594374443259394111283000118013675326945178069757490457330676492138482056928613919206749526221891290744006358601349273394350109889306501048585155541633517765536577267761970274597574178703632453467719578748604280232300202861133086279792720514362454295849227231022987551997953467214373882126589124689372811625065599759744689084904356599156711931299653468986936859257145620746880945102869008091199067215548197485729396385647384813382270325867912207640534564767083536602741602526909667769557063412190929235167256928790500143149116048538294954492547399821302981121865766568457930906647973503320894592656247558319585215964238856570432366238409277398187076308342393150319057377088280243791518190220922231521955813549497853509191841187875756869241070426381835984905306567895605261628160507351269935568753159981191906256312646556710929180491870543197205091874233356076702403750971305784211806449965606395134608649220843784105257022270719487879128450784470791476013390639069093132938218727427423710464935418778862752613833083389492822909822641825262756668125861987178410432814819246086200437683265392595283589725255604730751682325548177581548928314469607612382251679717177773088048782173384098049280461698107856348247536225060852801435320381193767662416898698248976583952613284189820860204286886251904381697474922886842489242442983986262240811180795309679662310971477079907836094352342006202488388401009769386800672556605351289494525813082317207630841437139809931546439820222132900932596914803765367463806162521527488203353180326205294523116116471669904591287582262420220448201666537626526753902159130176654242436855722706409722033402546703068322672294285910093226623969604390162806812497622882903330329626467804983671421656680285176827505009815977473670472432322616804549469302183329644072945634612512887732233636636334761162174218338070332961682951749678921461323149611570336909415272240204390762219962263054121151220197187434851291163324114712599025993713070003444935884031471775319790697866039744134696837668834515778577447875198170070993451141410284086152447630782717286577144330309672274814571976018004726750904265341203312488936497147000686909795591272225028965007814743013909249497605941373971229749618205065510758191382099236373594043374709607213348079933008873668071210046063518085875515905373684183909230222922039387760549816989414566082176824982001295098611982953731254695860256369841178332387704842346356249237434692459102121459092250471820263540367481101295128006014675716255007144653008841059244290117544244445898186400463428742277932825434186292794249310041970441579701422051952558773198948896182640816957819854499746182785629551657323686749387556678124357403890604093408813483727781443126222195531407046977043081414959787871853579053114803952675468782477079622531615244940569907134670626281971499329534995109772928218114046675069982251468415760114349987001201211482162066968273809383771191677657988108839614581216586571907798472276434135412671633896411065555707225521854087868371550867861545919453032876316958052999038805509717234040580833067124574410921269516201826034129761529427430943464009558023254796699594364463152723693454058047923519665183953074403241793848780919371273076088860288538532318184446299978592293079651003647605824446717936824082833064721331779619583893866372202447651708329184426219573545715485269248657880533432041447201049450551417678836473923817714310427315954567118659298206280818801997969678719253489639392722372215760427996803710682597285028556080826189009637187021338409933300501763401312822383978657398216579700292280225976394137296616915680205963656375915374826831408174486158975379275953377384374893881400310094579412923492300667376315915611140241929653255401365374245275111245135028140581573476140034725120689383430425379883028867025292820077683272574400205885554712679880592596959611493263034247628396283982364454172432420105030096743674504432275218993704902365402457046052455653066606372072292041204460934811997079607211483496756259234600896044157629897170271699815864234701533486156600212468754774135475792169599962104582848390198175755595751457464544205712070723800033402232567940099657976318937039785485978502900077396100189292839284638616742226853648047799671936733831817601152486705750667897782589178924695793611546503368905046461200355716499951632415386354454095722155301644570395276133477081768641227031722746798008750893658691476075320162979858807432755367531005487985553771231084378695930738938611624521803807481793025043971509137770358672884886509339294864103789651572257525866814743984284037264997898527943368174408170596840992928567105031139116990168405974638992687464929513265408001615884863111300325902320280556400077773651606449922477201089333598890223050461885480399526077847363400988972588819157166774633202415696967636660593925427157860560228150117046009578928619614991124750550810728113818967675804559537232394051430041677098247870221144101078183536932411814558438490703372416779713912943836333389312003513246975168949009528363085816176023246161036781913028708742761301085126497455675797724731988634091178374667770758209065491248838751101946141805212925837930230300120116636699679612245757066966333863214137222915451994574863425733984923264230539439894105824061848197459972278378223021189999915297033301545011226242718239270579430667126447554044865303615867900740011144139571183417138153659925165406311907332197321389639024241825330552359674793391386358971333405288954950416633602412087481575817491800220626756892681823089795665218389543858277553135295809230918037252188936989028766590289545522164386817976891271175278246847885610706398189000773683888619626922929630996665578243594384829699344428088562944316991326191505178855846261394365947183907230357272318723179415414686000823923185402391616899530845409515227551878508164266986834592090450049890376125548521366718485607426726868398172461909560719760743447170350066100806385193201838650596445866038706541112566967564241145485083140297648213923384164822858046632106025938055217952741394172834334990023358963638384072941076395197712930395891446047059733633431299155538875289818626408155595010146865534544565568513269578461386009029706435044952842323691845314821466893901502242961843244672108405445374286819874012966276572368926767912073464025291748440760276904952698423658821957008047435982327803662994930285009351975230822635139434903671636942463649673749050387550303136735340744182527143663771842228973365528329681237653329359193856446100767197502479095119110889524357081606593919642890500080996513280604582862260858805529396584930217045315693186216042654779024263213297684495551896304755645854892778220631709646162821055944356092580200189580060162310165720986832154895765542598187269313820631516022313583828102716546029934142747423980220395345384712915653655170295163786809149990575783450073706855734417642379901187964236278359804943041792700500711224780223997420602640498777880740476899401531821646161002966534926568877071051649325038866733528098508877759008435369925803626478136650443670732020907323412930722153287447758662471878275666988458866572611634998470919256991204656756804581323312524806812812518275509617967953391593254460691788279302424035110142243492567747994186989364512851168100008822025828628010900080493624857755540421410515377510433092327665563842575049385479321825916325037560582482350461555675428923235204746709548134371810807243712810710096377468853791611937461735704396869244843853590772303087465577104447438781659958627222883604926031486719491441593836981661916990650923984977917112399166093810678720915714534241326385915546072810679008257684574309940393297571802946175830568108569064511491665941531271983902473078098083498492425308657529613813556515824449640628363601614628008100645236244299279359130699151995901156692493519147790960694133122585713705232835868074990277897534206653931472096299558228599164776339545012183576966395368696250251795454068274626371089710354243948802410673023940100914605345417948780262382704923955279548990697270912048669245961093597394562299451995339813696019006362008637527540920012887301839205451795762869063431893914230822716317895023974778433889373882826041903993038530435562353232302126784189495949659611167777604678166077536191199488500053715945971319001164106309659100828962407480132168842244576402830180280736767804238893270950591942540797634379648441150361416785529603780996327501520546314705710370479425746008151952019148814548035150666501412511169792775150323739206629904402901142591963916185583468525153921196863938086712766949994551554112569837609044254536398728350403850863161604059585669913557037462876832169277158436491796423540303369044474477475398807533545117125736256833152861797677011641434296147178917985873142784495039580210323526806811240946140476658745648696596026636489885831235585067762378119452743695868868108079573567660219604408983942560053931639303797744067137129711679170985513433781953693572563549779469463012537610925278851941104019387726280511282256953638983413037703265016264796956817806570600429751079300298207092139605467177658240370091939282135754995209204767634167423172202392325863891529566682170267387034678286306957220835021798709763449967339947426686445988918665013063723469115273612435276265119107890465493393371104340389311029491983617726732642439244937520118011794150789042441394824260411752775413830208324139398178217124020971308329558070324025881530316021658140069432252688789398789107273774391657532478841728653876988145850235962187474097745373018894526890825505202028413602620254329284970889324164568135517961822604371951600779367290553419808995198666484422808149353113971670000905913066383269306061808006482978598958778448872298631478586634140428048898115574146805285628459390383623210381882035878730453351683086775240270069712235745275745054026022243140133694033869053945765427988034893498166469158202842238908377310779668077506845567428388015380113456719584020170371782527105376706609728038444952195307137460104166046412479022433627183972392919819662434499300076958929732511275858249907043350357693147774362367428787571509508782293970432157469815245625160940929351757514997570815249443377455371190300416980189218855598878808591811172165766348593509439266663713268974153929711851773012673514292526159243837361673700777822334199538458874886096957471169531842760258061825758803866121541709114834407904596742363242196799906962654615297259399438681794843536553784654489215694821752534181904302993775048227673014690244759213199531274022175113702343238801454830863292052260129659057379772291694933663973015281698536636047027318100485484848662088841166990502205876635445658258091935469931624232335355341663308900189901595535845936142163765398594765695787670035174883471550370034382202032542174522334983174938105242083237171224621190394902779879953773889837726336778390470209277088113715863892113914708990043784708369833919549869193907971939958307840122561832142195368373224924450806660788386590633259114861784956110032685275544768159976564943987929555747874067832213919970567013977913108551031140473251928554074946574452576759421345042853979516351500846674289965825596797814025558816465837549059119822351462989356807855118284327375513410408384798187775024975284180939995141497119325025869803153554051319298677251186180385800918149599466255230326714587331871736575631316489274183869259443247126511562293742868059596706337021420300645736858283499090878130035025739118833735451831124178314484424592566599934386447591622637189021523863686792996264309826190769541346883904482829389684761708776814609679244911132296959471305595988319803359177550669236880308415898252141103821342509423695085759771585150115879013575059255675998100866963066514361695426500341790592755596423524178860517791707287577779068154046668893553625185172696710916124706538076161500750419358194390398188626577300847257192105883967227461015973785782566034018187304543955215308168380311877003243053629981261040938544273678283149331493381266983623640673253449236302597052121697342553377386441508650030329558044826747997600572701881151901590676494813015309058121867012494133446386502866945390563203103060677270880047280036572012721321027206976612748087245160393180925343280269756733340562547129531912289270139531327446853688981691207938342761316074148221122632225114947493570737424398772545404498426704436092242835841074375966730005299104666897820626982721481356481781717774548111609413358391328728713574174007264380726241144571432370201652337967264474803084888874967173748550090678491648062476415887760877258196023046717111285517979747484290637739984459872287041608730031054893848906742288016691743131667883539783889405305487990788130322712003091401821904103407722992221578017608300980332375878114178491297887365821889002138718842292618636903053501590265641654168807927776934213454253099421573797918960618636480990487830848690640151744620288196784268169284099853183661667870657330868614410598737266546663204367274513413091867571198858967047920414042162775859049775258445976906171009205902031891446059770806653099515794474826940793953155351628225972594281929748991136660972900472042047096621580004140690583091973748818103581558130088782605584694089805767986977914939504090656015830335288995334366043550847951115120852219260356102954456146893374591392901742112482211103099280739146702184493962153796766348155707450180247769300065554858100755216751225397109316090721641325877321674526148112945728004123179581633524603143916670494361109390090645916750372491149881009524105219098090789488209900729189522925191036058915243695353010012405319915025829291453617734050490448049771881919480641393042409922432949481018189917224490593753107687764178369256616464777564420761497458849803092076837019265233711108087772726350792500976753494196616907498798112857730276656783118715961261194817245390506830560936917000390126749979825161990821943373907190596754970422652702274197037984624917924474974535723996959757083543298390118970106814354826473613056999576684350255185501697779626985370869923701032808826000767578399055314184086576292486124263410393729216949668585333462567639306293189900301319250620811175379292881163043954255208755520774072306372837499668773090715039649100361172751790845514114324969202063086841621610042388398482238989469876886268231465404156967386919539615415522455639645549403688103415988248926135281144602917878518732844849958531586396032272852345383831894659655913941382677176435064587828793162196530260869978564576798904933611747724030143326578361101949843192953722531524198892630295380161901604650170886186179449329267872351667564950880682437871975800936020863093926041411282443049732693212577611681550174090021725749507910550534451190245949160231886829661042113184831371313287040313383358537108485667036395094676821082258153434106846677532021442643123574684729902224612936789271328805208654065749703982226396406483128140520144547556851545064784096197493585442443885168324726242746525210685044283170847689609599030824037631053406449317735070486697067930259177066274789089696031277512539169311467594266833218966588639266579243083944002221893891709098081776548078378344453514597590819399552338438522412368240523875896950671019732691163524795957690780711476381885579901302431732438189714130212454645892062418672549280837458299406469299302246388964736604983374680138206397784113140193197817689280935549990747629370588946721321002365353452976473762488505249350279368497279135906773470315553140318837418938873481129519413743016403649516487051285114478223618141252566701349105887713719948928791938236446201101880677054646823340766539810445171645409380364086796857705658693073899983213154077994995536748436108869858336599238616532322939309091108104518231258865245046732386389410157098247165090174538943032656635316433478386109447396062181492519674298150977444461030300662701663735432000602396950139068482686658731572525456233385644363505738996712466283149524809252300059361233977997564801339590653191420279513910085397209032934382663980961466513227884308590262394108307861240036001573456444978258183209336607118407790777346305085710418312165941679498976385795472063504997033033984837180546070316625828311755574303150233742839232810102971476520496261607564853264117098182816969345546751740633079566115426482899642685415878839298161705287043657984596315410127719576689490631260582392024652574979469375682611788653353988133741150718590565524720472335512651581867793744263903858458761514900225089342916839094935702939143031640354355573760911275944391129912064754950901674649560071185404210934695164463111969195870897684814279582604964086064882570190134425493895620342770378297796395460285096201946480721486064045249398458484565888822472585321908015445721410641621170508046849025089905694408909405105994070102105931720420805120169758422322469308358562500066541041410158133387091583884653746881441763089507246600759357698336761473927328662702271878800316745672275326241898433971673999437533480314692199065650974069356115463303412686179616907612930761233988601803331821257622745074925187503947677533811290051192723518928660895327909117218949468600389916747524251441421473297194885260141983529774737641578712692385836343913952268655945198937447354661352104244725335150203744992314757972765139628236353924625455814652597818562881233898659960800261657696799762624887259004863306308505522460776502909353341514609213892380749556540199378776340662554446003343807582302194528965423016627362030844842506903305939804778910357048647162788520472376269419552915622956493395833129844200803256027480231886769385113313345546189030157404832579880437810514245485833578077842484361794919403433926375941437213026154676757588743317325314798727034693890631570188087414115452591246067096912370404130238478511000084172343277776536078873118990781104950027925930741789568956281992468164496664516331229978588556176307944486901346506304419468609375252534705658451327310127990981755607071418608073132609895145672693450628418000121712005246425556310698090335786976573278558395702498396783412549857188503695292962896934928812947437457198649334783428330524328712861291183697151340179080606605962523299497862610800669529820613586584914185085308040009770327685330363241006473496223840404370565011100857055656365402369749941727071196095348554602337843481015576642849030961479810215017681433879452832023064798628482943035323476968159855565556383721799146593993238371252203921355140227742360651021456573720704294914325995569122167668609904574230178967941426886787729024249359816539780025831564572633738272456868187848939624014431229295834710235980500927198385670631679651900044697546138744872297511276660749264952671604525607031140329728701867245961852000664678601032070810613235639279223323480135620310316776232663739365093378939091429130801127962193088470389840195288943808232683958841749181902173881615203156758055892271972405580082538017643028760473178176827817741631377608599921096763611987501698185768769942004550158731566353580868190822030854790685643153341127669150652095239941417271456004472272443453213011000291826301611456744106490288145764412450422585788031981305522650293212300340251644953246658660371784115328187054934589680090756107336929180123592616914969740418108756134115057711907680160551154668668617079578542077870931810590124402557688483078756432550661578135247023765084740597146343279397909895336080627513313185431257283879844653881552042191156059120682152387338617937138505538751622991665541934139910768167075847388383324466974107853526482494546889323813377992735492128533869828596859176773637692941291637770889940487786534830097095337141008008960536681444510760916842274825179374939221695596203183501291823799520227221654784614008743053586222439915484048209079141645145422748120394319840463667665386235659940759127635080530749189121589396955309711903517237005003042373935790904421099146850979277557186642668599859541658326348645019886393656969806174727586162529465798588373043262730878565762865587699868723786286930902972512345506014405556399954360469297485577111371996074486451618584920074879754009990807366535583772165988024935401608210500871142446152640279702564314411618567744446245138778559374411883355777675611156836709983741306846442255135180782687771911385731973352930110650464416958745542392421709751265362339429118577048375083232853576802816444522359611769860993601558951018804889556351867835384223607723102135420737949933061838913675079937675509138216052077950542048019938076286087479621512997062269160000490134797028576362424132873942946795834347667297847829158351345275820457863153661086393612329108455752571627942548451924132145354066876328400823708829221787828689098554111809618269833582412072142963174366041976051852997411911171601596633771139836328932371825039234916948108928415258920519632240783322747634700255414729110061360234300530786101646693900281158288000535526989797557966085045828163097365518659732765557974384312639904818575051084025824573356722112271721093425185142709078014323424172810956609668854658726935341198654425873249014217466556823791256672789949861213298501952111072956175491648663214606048943694304491400805429189843078276368992360602949368209468061947450553231804944397978112810163072473979075010221348995018902693919483984762923049820871346307777908144966898935399910197331400260277190338343107715261106432932156210467844047867283662091833100778880451340485480308498102533189077013048514298782826355681122543623526727061596871169722567738297269570454232038857469627861450610648826736097879877244212925089122599357792022773933820395229131179505562411626178110733035181520463192349047287371660209916128916836957596115798190180989449337872109956902899185302196156844344886772743363637888165375976668046794139706390653358079426249612130706052570586948405124177598895209693350883462002737928812839295273716963143063052212400251873454429719305040160282613706282652311748287078826420805715694915225367961134890538943527666143813120602865209017025164409301247067439686583588611049017498105076058774634650666897630289454937260583961047030565350517008308032348487859485020908391966375471703967185464290835500262372120448617637300518499571329375840434050189422032324031945550690908399332778194403590761271225168478869549878268270254999791001331566293361302140511352412477230679228094335065601856342840679467701986795254499796124319762707788999132027234107189771377494916183211840007547483199974354226260563174357715913488618344133499631683277761619091057371621584671083699322203057271539210585010690410051321716676622065343417286817127948345999259862853253873823216111029166013160763301461401947337445131984406443679363149302907348044625567094398107932479284758146626579216355322159050568696428925639605725450268834784882135542268954815934815108712933609363848516453017073347725618797337256077893444417691172739631921174736786552879026074589649835005119228023654798334739110966328326190716630141217926643153313160971954260737207421985213220986783721041467477810581398408252606351857376504720222058465492398760160969582969751829256073427365708021674175447835586138923833497369668652779917248099979693944228222583655046930506523695028961904590824366562579374871020319399328368174827558291952159959135614508967004396042683844191047364707867642954871475974407772089515239396682623914237589337063248051992867421699212154062550187749473388917055055053660412012722526266120137748817869455849233339033640921694780287357334428219282463231451413265698721730075773084383785061415510402872129040633890625978529688757216320247200862401904558574736529108858263926622794546616190865871241901058593566061662140342143664987115763924358381650552447098588802297769176678138897192057140495839032778964651489684646566155021159440044246457826662681578031477004429653637426493916573799328839610985011062390349944238020121919944677122915388990722794773011146147694879105956535585238648627958941030959848067411669343411627582842361721448732341180266550503912799859474349152058748129202207642474367808182435788417945858300762650368259994598019125771920358786498026129037590866337339676496210564998445756039073804878150070149298020239552321229072969130385933813964280812479232030376466492016599120125878143535174540270336129906579349298631363694431620294752428302831155189575140547448300229154520588421088103832521132115374374735169824479924308296400841243855518962916270311172159101243832378993553271555917632833314505016974112394771878803658933239075118795220678590925236005660935832263691133519232081827795872953379571674823321940939620197948921842418628893711620385213299815773709789930175942339075588604454496300009630962820079900984327497805411475549993935107520626749749862679484375686560342259943694230569575585939692891116517720303459550398459719343549684971778453154216798509691475163327266294049917802875830419448815714774385128284463723612967142234662259024949342965866882162389916335355108844172858976390593078061840509416904389344521085181099136704534725606297483707691052770830979051229055877508852455562925137588351731027603723201774096413748587270382238299390147344873469062775775593495127222404967213206767901048977059605633113196582049106185776814156034625025781843024615241499625071799321705273011124620367400141712469929074558771567462776008624008655826549978801075811115028628884974039846426832631898950897199336640376729264654494669196404860544627933742432954900013917710856835345331415900777615351693922557299531617369462275007610270020498063379863430771737210693777017898034875994438643923235681009175771766021337176249406310605640288366456406914511698010121409393600334999329824513007387264821107544362820174501863166953401636280554327837255689966188369850225728416631586459032649396237194332972587347139912776291941707138196083799525330668941554778033695490692203978413445551929706621742856258942027317358608442716483261183546924506539485268612450923250023192772655210415126502205518327011377171948239308258509498783907433216675968775842471340119407437708457456504229542908717599529040751954743938037473615041116230650684151269564291211393689291125648015106014790847765097124046995211277535355838584085719826760483286058841472648686808337933229960981223766867510698788329227024039438938108666960583477414074742663666602516616320689028981758122129132511146039995815135234237328937117657992328051562366988174913044110518733343672994348673253690160374598072474098123858076379408400705400618233718615954765576360481747956728409103860314579633670635950526178508190384082665304344937810765126899321450662646775806585395632638856341054670564884511547312647756188124928386549815279898627990114787337145241397599350147043290830007283802313223136009618877345805983901121214687249647836084862867827793453142775123768381715039893625739106065183235914281424339220019701952455132095663908113132854022109122169204277145862481624062744236497926565498069059856423377536042088102785189865487374030078705662784378193840621051400529391189693344137457901174357854118189187873955068107295595588569654974326310098633024374853731777922013491719515997245082110687089681250542490071389985401516551629965593579251215308088809401984818477357368978426730354046020475053560629223304021059485851069418009640257488622652596283243932491931833121111558109821460220092571176039240411851920120157475661870506726117326472757134906392317638542621393568034724478174074158303588139051381207580951081637759063513756631540698888084255057202791840841993336377569380215583016805473120376021364713865828073390448364468988713828117953965007539544611776154534573666862117942707769952833590989329114355444646740765395238294982911151995918617154622078063552646998215275791009427489542336749876315656655112587699620326846790905942761345261221357079768312981117912623061362205261585745820269203062639789847403409888596960089796135638171125468664377981143338889754146710022057604416547495339483076864480866890206225009240977673749373526196655818743827445531322111078368673000917516433729288441370116472768137622993986370751409131881212786943951810532885588806250590557233968713927755371548621501646157937597485232351665640060013171386431513742300424007537712872195226135361090747553003540367133197125389730758681469417216067232558565368805069066148247568910167230084307505255045842204846963655956465576284184403669593724404709760063892264180727151796612507238516002518310270205780776857104647746929350100700737796507165062139827490667166330816869012824202705448559904213262821135832510443182043005801082656485256176909831822301092827349666939809215789056602824139115174306413321741468017080392344041041720215191032668477934270762641772376363072328660285507273866999011912364578884524945265281944876719962296579001454181451714338989286499200390861295400471675342366541271003380013712578042618984922711224682249256857136743808998344553849817094266520620703487551172592866047768947046423851810101196449695984612567687040232799130931044182928262166464869167850947659710032666944142631395656537563387063618122552199283519387457822130388693930992612674312618086823434891317905433694733390572490457179106758695284585353220405149651881328654682269944317994964615952953057849530850754497995989159871342722168846264378079302948782482333401063454651641546612765917682724070096250998911861760412457133757743181841818525167771965082696346450804490553560309681476595759221689776925386485135686895589999324961935943700528945970827640987832367108365439409920311721211843079752275890387779402971558795698091970805101108482219745103871636793135708228941869241804102817721856175927926623455299451768425853917362336782419038340093493485437248791656611977834325927194773512124948558730494946019679044356357935151719443624942011256476510237875238310986134621071261031714279489896248258245267175622630792415750153623940862217312060228492036344283744384538555975724750054488235274548597196965608623407589024566451706590715411942646383815748148126858437802353595474081270762491148213275406046285358753634240511600322799356654042642332320535654881494728646385922580313191649439718528009350655579522554799895163673542780005031091090563259766439772120741006699506891758372097536709443060747054901871544629990169167127908318686702733504899004583910066296941817225464476098379768362354592313815718176619191404655701665598354034680574169920582185866878354162795519032799691225500752180518129454586021248273738239887531422080160257806010793336852127922435039579789973309436687121246348864149730051157640515144211993272031005194408915416196531047245748400278363751656955113101882513775544403624430726422295905768090585962906215653840183929812296302102871324769373549781733232015792474354996222703277807160783692336088426117920864396196339639519661544279872240090860045253041083830235938155187652417218498075427075382019365624454323872453880616883206689095770533811173489178773369870311486136849981794804065344721779805760528189989872233989388707899734292660849369129574143938987186796822007810663601639798655761523642107342709692183754956978527038606399907790381588593870599252194268325555884152879193961614271941224068589220175239322167829194978795127657470980418577481038318856963563620153229806488188196401059245822128995477340100017090083960694907231125058880901884516582661506947030101426765107608133955737549913298386670165567174784100430219859883240886283788172063660112049525202946380396617435330190173234523925306798535090580874630180652454888708189291365659381459243811582286037891733778565752815459712465156668878613412319152393447087651810630822570606922119110451255406850196506229526084508770087244344878184727851542528625913666319832122978770713566162014245213308324093661723843321815004437075998304780119793289906259226151189568588504219783849597687027278536068396008948806556112635793918159674456529775240143639830928902467661158522276243775597150572629660242499125433955742191217799784596126775847374356321858764494297085013410173396135423407351982174333957241214349472538079233000124140796940771514504661582511325734618541685910922996411964054028725123999990049983536413168987887208299203647908349629395762324383222093738635712670588564969274412397729474382262184493617930466518446639572087674700930191135832945354225772581821796530795853425230501160102036081472028200407759849350238988831080496354989305185573066955090712876503356365416957362787617634376145566518178947915939599080617616375735112113635458633174632198219684052308591116681245091070974766061834158937647049166748035299992083615283543324865790622926997413122090960823553152502570829534262682945494705963342961163141126578400818982527257534081157531802357277926975790729053935755212949412357476422458622788074590835396546021979307096853894699325009590683313184938042917951627626597072935464044206257499863427297213574141634369059345321530002615048049111035188304906568657048937093434251705694160893675249998933176229075288223837367981521501218515427839958735776657807737005721238783128205093291592745025947295098052620729548883519685214776791797284430291622019151340038404017721219129592099691144961539604040466332456150912313138452916307922873847213173421481427201860176477558187734217615004259081398018111534807679755442977775272794183379990600269646917899637141634390467351026717335552181341347545536836299896732940330174608568526695899394541549041306678669732466641326660124926337580215017209770227551420786135631103538696959523431904059399624002960386242471768580404737047865090799538815326907838316193843335081379827798565663554387321168462801992836410947344113673773248439789812192991055665444520568186365456145631199652742718257036818890601223399688305268461204215978122502635599528449262744485299376258672043010729927458477108970071405193795788570105203951217905179646714111211136956150796956845087766118162786786109299007526030814622288151795314402335697348180227110497055189443819804845871764892613734409078029628098443206833609191495550545775314747786009599219295873810263855454340615994979749729229950688823508073868186805166665552228331724194430996420514625718224193502319816044984330087478966868216584982277160536487549347906088289181103745389183165176769694283959491686913770646423156070599598544870221598925711811425325606350525390389719416750190211695975918761047973828147383475763610283267578905970005342346032024340304725761717506430934036927794017823809146546062738274083942920259809940857887942731621286698821679726096821485532455189881589236760539258612874069240255291437962551632247694021382925261655936726158986249465795510213137017632449674796346768082656394339200358189880050407632730637221465567474292247983048789877077041909499915810099506784880998754164853466482500547558851563169471856005598057834537690003953036714170753780562109633848578927949548364977474325790049247094268619008007030818292255529084650699595850230661195982948564257589299433931777621437987371959221717894844671618663000242960469937039589321635677020152537128190734019354092656911808600337437470624316507034921174078110925363524760055318628564101179627458156966404340981744984674209948624957780465706540009958632425324407471987852348728067917521279755473092899793850703277976231592946930008046125786033445556489554812912259330103352410147639929687033479241129405018293223888822890023868931511181476260405491970719520692476107692513095259996341643421978618655335414939860617791468382796306673527099877158562767796172668849152783492168549096126192374417976748640188163659502896162472993432139384717623517383546970054507085729915832301993114791867223964250196966156473163191442002910552074866526632010870448125056946123330381693834865366505959937247629787481342809496328775393754397081178076737635245804178239270163705182706859191754936558680104610799519351246383920584060462299417214594511927049677547160660447833436731739137723819264980216760093455410138839365654549978258213817805952174505682950889063033938164811703414666357623923283066835300497084382888852834081953997876706934667585150633814959567044336873875998956415478523719300031818843626689163142678642577832828833773716564213416547119314223233960764488530908904131631255525326573876595307126783654273441324404461016822258857906498085878683392997378965685350683880143363052967965533691772919043485220688572174399767566440131719227183095908842604124808310008754370413758269423865415407248766295930208091660854215512399714594915782065554294020813779213255869257088652216495985607002199451524407430733649612737409243979220339249461691548118050961237901893384435429976996909780857142969680149702085359109490684626982013463265420892081293040617846009954868593597157284915446012201577447258394751674380032435573957025068807851153507707580357393997447321928419879348308360904356310558436474126829866793255816372233551299612442154721031310619282779216737170715584237792025712375717145885296305782704221630687330271876357498646629853387675925923630847654506575873094509407012767027938799320676320736557297828657006514763516188605826068161412590021626315603991926170057413807899771235774539707849870712967925176675645698651482169541865159864186109516432277883180180764939232591192495169148149833217187570629487178800726766028640096977466697023770731979646095570754546322857534604937097456061121158196032447506497716162734435458201505938637669982315618375965971271148841345103676608936173995662971218770043368225254813968462962746421919379897223101795407922102287817160298284870508222265737837808510665868163082886741525216904557389329786090259908083196602919400588796126192137521947070985414596491249821063275033298670493611061353036015815670156093508735794044266233637586460037504283747741303872024478071035024998200581451315380413471009314502865124529719426189262469625341079338759608609648502046102323375817126652358061843974463262501586821830562620794130696664343549805017155806210658048208460640517983832077927109606137194745753833629214789504872024529373094445486178787531047711351375418608244521355487536009630244609711296616920653231731070066111411659177667773936433944351692472473830239730781379454705136693837285487586262019424920781895422629075487459531459067111870024547026370684123433898243681303675118191314608616631561383119874729577430194089120716028392669865780309990416795717310627991485163915235755374632392599109380680750302840870668924731357520062430418854908236648119154087349625428742330257298749899582506769698751459074823461821445785852488202234829974712981828025544704298084363622192582315149988596803737529353934522941600386745164775810346660158158462297577641417120046407388148392757772526591398553905646928375376089865054542682635701683484085180700283355535431062876848211643863210586699416067414238569641474048927831918722208372794322860694824337462184919258656825250952667399244419899898137830203234640870510022294783065673515561913590789549874252277095506672330179353115786379334222745006601777867161002417384444699429090688055633286421522824439455536437864350218940218924166056811483813379214661058999419292223805905253276291346617921130323255132641710418579602287268971749936150822463327698910488470357688472291046992721938078751674119833266755124938057688560129695182672919297929120709350944318450860668130784793247289403978289814612532052923496352602821962086332120143077945051991489024104103377115601853801417899462232317958455317209525890746648002438965926111773083557154831756496432580715616275150851716209769383630547173852026613428950270550295953229616578228143478512948398069386205269752140370133467967675112584563762477830584851408828054905964729873023561867302207647326355319269109698879154419474992712965820694691155784473361174734730928532195153475696866658885692244352250187996900504508428509119526159665227796366816173923792237081391760447776600502564469620407651833864664278358629106470267308707203021555945728869797769999033116327771460959792792068393076335624957933312719363944499049831874777878922846255363797027291744689046465343800783566757667185609345447992764847537593608786242724181399975262746456320992568336900024505952192423023710945399474969064697532512694467945489934609514042745002632086839793065556540069329208111322080988314210486199960018212202808625918207629872654212973818907714089010480142923267631070280763342706812127129755854142864447704787690395050587272716458665542278869889085556649644019112892936883465691787668659540520002966638956828458284918489749164017722344765770523417020691155811933832516631399415123310684560207225970508519739718097990239197912239177072836652442148594779540783954057222224183559953592731180939388167675149605106795696678004887645386027682841817184213650147541733089369288361551687450251387309786275815292613144077511646357562826925365986667950476772850288138957559845936958269880693274936019611399596981942802038576407603627083946668269222133180579227964249394113063621310570145750322684336481368738515577770468917622341229638968210281791636942754970608841219536533107407146144204973153429617258581649405836800337244106363692658540567296076403216699058344422066913313469683796037438377987721746261127251458884722718329037997177667536833670323803067969133539176849568973875397982359134758033492807499661900405143485920664376767233872600728762160125509804596183003669064333049832603454843086612154649338572763819418628769907539599180549004998207827512113464542312563819355305415802850985894165901940341822528775334339974679050644845082569096582123468593746480672238993871205547803288776147458814075000991404421235053829382550341328367719733519429239705414538931203429318644569009061665967154419164737959274016017257240384571622054817129969840590296056445606572140512611172234307414206869632576998786273573750823422536402912820485333464920142753446037670173471545851309463387434091014978962639986537225407211965746958255849871078660140041628104730880739110467802639476326442059088207632790737795012901169832472749398394863095273612960056906338277187620862489166575543175718946264225754657073785466828385390458891343125111417192365763991629031587213633235336580384113306585979836602431165121545586253048114396342285717785019416989260304609862743295100879568142664070071709405435708627885601419597529435154724561239829078087179995961134323568743114442978572437415822532579997111435473595952726271660372089657929745584581080913750971487560503420798150315985370782923150517024751801066318612451745000284657104205483666792339740041524709141494999817129653274039690811783765098797368870260214041662095390710292962928326920156531010636868922570924678949649512112653573699989983971281490597130581966798288614123211524206533210778720232336375755822739677202658246056871413510640978657590235705529616176518035772160324817462778295563064225646057835844478707538305711154861200511712382839934745019695617290002058868492858889373636017239322247143073833671475597311184196299059547954050807144633336468022701668764629617313546367490575331959302375018601255755555580305164631563476631036473024078443654542303217774135121031813599606730078108218489687854466848876714299871776783238407560770333141576651064988961947141311721972418075051134686052907754629946704460668214845688129662490336786169668774506213184062314304616592895913136752915128215868533325085894994962152469539434002651824568996103232881630099904676299922016801650626427766930748944420454115333939130874879811092973704246378643286040252694725713653299384100000098836609987861634254241314327773988504928353021357484158610683731117342460324281207492099973545166318156628045785550692436583702682019929643896006257387826732800071292436135903438002731091596778055368030713408898612050974985753132455185729170968771212475163623778281120319884309089766374283043000817791523110240970375772575456706726692357624601607096348306229123548648285150577636696402774251010798029863435941641093694566671861531793004319112395825002487893927968714832593800796748714320091857290355521896894696880041374384674822748501257413582375861268278720652071913120309140851945294753780429014737055469221598511170767968792896135061505558923462219077680398859373943370424177859748074759227832834911025640549709343275367797646196627725139156070141308161638702065794342354830823255700738389225587830407771718290299257712164145043500126296158894822661562976955489669495215524740889205503411765592802593550095995951647932879686995889080265301980297602822517247232235852602490257061577151207311711002191848681941245537515769771638497935588582302619235699289508602758054604317522688658784833048611436305888696258870042784435195377591012497235782205599879792184510849946790330360028956118330055217907877290481763726194427996084888200577160963938942826174873211905363069097642176277965722257034418607111455228945945398803256406718526821687971800858298593715053982621901011704495275179841019245841565571631569160183058787816703267251554507727274935402876414557250405727557472856569655260938357547538891189071084751831311759234175030468236300574726733955241825417195044186023861762122755855014455664846495689705492838235487198029043070524117877857282090596209465715553849183962143701916568358598696096100460760070964225714933373308950028922874703286783198690115217707064761529199126895817909568462752821130745676229333876727234618010604563751017352606682655701487705989174129667020502275941564870510475101451777678079055187201965115288724920929559299201702073996388099458023072673824145149862973858717890475809252421034505937491528288852656968055339875175338893465473399376259827961574377722550403943255852226656392713432497798960369697431787403753169195012027451059765664959561058959074156721429771652972903869091779604251044698278575662955103757072073802969724889465936079605190194032337330006662798342950099181776040264164996851425278845262665395737647054693638553511209768797734914227967241525040079414898272087429756331263056894689254197024357622275142024674051141211349390296538019023794022286608206675052226099945278590100138357163885335635833626672453369041830487218406985530546329624966683527157045403046671357274522952080816423976515682937085777899415269515112737306912675626248973906321277637574402419516133919616903403967569012161702661386509466890125795508361558006654384196251729328448474468506495407608359158446626083952834715595771377655811540187656872659147236745376654706069774760421654331342693182425431316133279056691079287064812296930526582459312451989996863548088214020055627798151646396602320014474210811701021176172237746039701766532558041109649417277297045912290499514891167227641796602972027515651875733304896876350005971237829690228046419245871262460979333669694222517244500277745591448692870613493793083897490273307522849636625597651123410981284908416727845566171067093348982772109494200905558753317238587414323004580993889174548133026755528892041862757149169977301848967582277603829336423846699109116952384363593240582376595367205654577050831919274503319834434655107474698050546999497061765642564858811261230913484708060364565686919944649778462662497083275605318990986717208532893190412898731130990716284615269737176187058610828657676774056816966143645155431697362753360758687527229746892352138414506814041926244166205324518243582134823640329034560396054403566759376997961635884026720870276110058804963305536600347052744165737624192518044952315000474497476901337073148994821909762450035889103034580951313146747986896824075882802180211602305496735739127313462640587685362811714982102146178782052108682363908947753839505931458896989313292875944224272274898253325273166259466597927230929534202748988923758425864640612272100717444841325899461370725544140196820947124464563797187162682577282358533499256787101999538686298048985400665651232016785032873907578632187913776637016294941545561627219444963310684249399542345219247105232192037162775978341584835779645591236748481682385392447935318241243638990377128537167886042432596958213492544806359390804467935851767246201384654779163986481177495421936719084773195846404595979865510480714923463333494720476781118978760092977240309497757493938625021215698520031582544363565572747865680534743730248579987154846195979347163860767493181517962484760143905302136189725151554233002709507352910588815371151221469129185758632752499138828749005332100201769923001072073468151110193623717751989914432489992207475214244153642093119358489287386634995939641421023528696597646424358397493664294114201959322922561364333314809159859675989686145761642578967162660658769832683741970310680255991656713143608903224301768433317232134518686365120921999226700078091982723295527545391728125578121458752020860327713803995397263227766723579212340708675042040793688035889849484225224583294094441839860375385485143865820903444208458881298287318375211303802622837965334716897354434955642515509396662860228279247982107984903341697391584409097719771959398267240665618108542113509935268452267196514323663738520892110820111400005373527911111821498399371703116117822706922797351201108351816979985265261234769857786291551088671719064075721727457449506138535648287828922947385208671132357850920764684106748552812434846690449243848952027888690744061719698034494602373270396893038659563138893683042785147581598675878015934541642524964813918626180594376421019428597260095301717297502804228527290066292549530468826407597782214535742174179150347389207580284891563666947868206917821389162065611872263630294451001527993291541812303763211868720225338834681027391344178445512263274584740491437474767920283443658409046719330159840144239604563962732464527955138061758793831802464245670165870650896973529152115020429008066440175842401867381806494132327889389005237230309533374397066166477229902998091873774410680632772993142262646833836026895636902628163229137981413766560688309180795421061562809912655482879542109265456865995877070919829462194830435029379924739201152068633954872122424238773268983789768093844197174562470261559340573179217956440582850316759539001162999264047853400646756342881038828072067700020186021345994810003550313440206892646705446834358801450970827010624345736175044141015850270997755019905017200932113789530015851615761414067350317363873720674285802762175612967055687986554345725092538612140054496527371772136019175761771848893919588814448072065090228184575500276776782251659569083545380107180409235629720257801078414694882750824798040174960223207041724191542794304319809907554592222622816625353439035503025677554715805672094486541668721199378679134315009969534188698122537297955425984534533917174146093800619272610958591614256376658235314168337747294628943818109475679052238017050077583015017569150843571156051447764064184681123512589667919891819938316476501255262094016646322650310373740230709658868037428577813033449801031327074840995883566881348175356372013224005401314450165165168675465677974616355500465786584830478082619644304515460362635153644042347897762051723214109938162352508130231124972234680912295397370495812445900066942572643387050039552586627142679463256100900385194246473936731649698544505932698216867005673857024509019403360761687662642765454468860455789782615727715698467089221462077927436715390242761701151869711940393216230093938856298858654803437850131846201020822838601722761269249344894809703509244369081891583650537794437910673378912015851542053783864055932800764477534728859830895644131955315397711102999115285425139080190988119740020649110054937815968846037633468064526498649208107642710388860303281864548411473966929511258321982776590936827229196386669761285539170195224095483221962592010892144795361603388768590320180966144749288385869887296137636285695956549593992922011177175203328257734769578505761836093151678110128501759458585917917855372742724300308650666236003906908240237106524230639242806644813378324878576278719026504450751977727253853376320555921842955997234637715435558417908401347222074922310704108497376438854639907570029588820373879767588211870121927064326065627687028478403042985930351860682558541346683138285527120226160563686411019868724778343371092231017351217516898907937943399086113841682864870527764801699709366217991690450162373377678030614661204151459478462028783677935079398136291552839705643909875415711808530724953981977887602201374961452177278811189515580621568658611736796049809548195623268989288364153523571252852196886723037410404053859146506105748658115496083389118383182948506578636244186652890423245415638657687309998989415107494410592947340564642886955310932611787560065856279407269094532479416556616558623498464039230138673936027035239504127574388395942613222827426738645386417687361689609737633485359595125297015203529678140671185738429990219740901745070631872101429705902927143706612489812562506348665840040042601759066933587457919535930508378644423150050383236704745508993492326824039516260402095903520684352567669995023739798392013201570297701240240326848745817938414679207707461505860097306323501330654427694991109560306522277147127710599623183020558904076555446767933101075623935492703941596213318719068534294059551823516737382347802431696185955795045248675383528644482043555010469317755722192363795646989717687690529361291749693884433197345704987621029756752310121680188140448770074493967153728660997985899702097622027610536701278059178812476876746193231914206767722235554785436136341690224729208195701289838583302602912367788140974008080757811517410322406329904793272442459947606468664292880977458536453975219401944811095189387967291008906913923790917722224051910756972913384530435051441885758385713003560089786928440578432194142004250016104313916014598348691841908601134769885600327750379674585315699137507922741015507153544451555111823433935928004507905334221717898178040481945828462535417451263400652010055421791877647083659662042453245919151290251440496073236380973960877399681822733883748517285600619364393499183093892677762110533652308576903733438981801131796671407527358295104120959332937672569848934282644032814812957054348714359069374502348364958343686963069269424929731855128044245621374396841690591602843833587470357835543467214689037583287432592564199249460246116582396352131120368522004081163664137915451992377853056162677690874604751351965117119673785412261842770232126388958020305955373730043466259820580304254230881683635823955844397107726758130000614165486036473843875246859398679940116382390282691529735195312343486872264623990363903738178704177676333545844354492937092401444065092380462442038631851650578394956018907462623109115277574402125570638078918543670339371912137738071668787580122677931064373793223699587912295230182847358867955712725655840003010756212453232419518170468758383001208978982693729546225887194776148832545811540720888973247783210429735036712338329017863500083969155409181582909866786483548991877100020651192944728460537356914209655196682764504932125902194509473660511975091184689776557786929198831005592689260444441739012880679400224648826246712495315088192846092539046970505500651486454454209795223389659540094301580759355783367024070575086464102856555918085265812807786735069362436459417350975369123463151611259890940657015837345044853441394408114417573383282215835701369041591094100122978061951014215462296505498367883797662547278875006385035691823853697624688452907553864151875285993477561963609971456862674851518459848125793908434861159794540022506794797193678621935330814810686752165319354928016214061377657707202561317771193126217190358938705005456015435622333273790921523394964135939013421663217416276202846399700659774937711351248754493106381929244401807987396563143821566149252468445988881099762863495641594949702236282709082401167958086780522830748494826639124849146311857990760696141088395061050420981761273282751637717784249012590064948326350948762175549072116935382325742330708105320025491265539570319953099716779674833413931655380596535460700450117226365095965795433444295563344490639581373065694367784734938642716451426886667554782730815935650267666693267578427258297704673790567858466626070112970163943628633860191667847197951721506419137818874842722633793345211312010714650988419590126558965082767507963346482176710116536198039071518046006267112974593784610800416334453572199815771788976181933321650190399988064867727016274380751066315787045394411765189369985262889456699030429300127319485108472636337744577489596975086784408448388385693088078234012757704446057234646260090672683379465760509510905416268364605052454178486195908847500835098573661475613268140926649765444935749415286445073669985596574620668293096729461189291282068480796655437693382301750274128058148498501553853053206309887037798599716235697046430585234275437317123634613745817409815625768577237870259627844606549373602211427621110321645788317317971723043020527953489101740639358113683230624834426848880388931167651794560261765172902661645037122061852956048204073141915099944892854102261967019874003624819787366952688438442279448859500177484039626830627310222729675635618524213893271910356810134552339473111135343418941134055296144383735055840213109850662462396335473323077758693918717226520226436956780620584095623568172650999708116852440272254230700290782867578170476006852096657841634849421198252998821682614486142581545559435414429168308825337315269961074715332192505878527790272843562226211446884823791428137289098755172734898470479754238705507669706750264623774638042754692700535955550761816394991080075070814500940127118423263376427204005863255873103240958234810256194979317828469391512636074784906362860988871127301729614637880710933605511651127497522773577565505578510972875371774530523611055967740359397262157317422901425968464512740633875248729410797141727382951692684385494012597200608725672020045465967295298417174740572911375916916307362905003861333197981753399527622892063449682749616372194660607736674334943539207774270014716215259992153942085373234698273490187210433033041703132440482934570821056296424161243252004404196011811286564741675509139828441106026893105551563681118675614883349464996376438672298896106446391213388680159792804347864819709163806489637374166090401522165868008876074350503921281556572688138157917879226227639596936779856621840694221261031586512156240620822912201457139162790511241113947938999211750313381083733653152886325638673314089811833499419803765244758711754413608338350280349804983130457049944664196746717823082181272331659811409778007262669535532810525687399867376511896369028526971124253898008916730280051189681372436633016386136636994626598073010369446931336506805576778987380305820299377432748156192742908165093034329899777411037409914435670859590320636746284570912770140537256397802620169554215448784358079540438527972129235760486397165311886549217194536890508114575390867552836080259242908665065581348447110583924750767770448863798496489550623585780515418036306981731835902092802137957242989118870577142154584247960276290083892081323721512556108726613122415972817825011536679180613741426782068985981807602573843644408391642110793203254218327038120964010823276939633062014014362702072181008150814512666097860210199208903116348757836280557246390081701824306823219276916270227877944942144453607178028508036755538865571332584662148445615252636122704533291155394652771067432888983754291570896220360881964895528058742961251993021750318933173717244562616272347070763699508674904317377819422629130948170921473676139597830004913223141561283795215175236434376952276206999287991377933887226003963119290129513934965025218882385671511134262262824076679858442743233827167744475414348407852302341014351529666859280344811990679378054049344930664164038810957299091160817631976785097121137632813836016506298944398213166164531863822548808697147088238073423241648145565106005258736874324610298405903537647892229940814849749888693319032098103180115601001595523122332824698749966957187087376009213111316192103806759689580090904192028829920172806639848190252174873300970052511339887699282823325543474598155117162086565908598402520593367484895000492123461023210708948125686989725085073088942354649532227389499364283572051202708885320655039477961730980401418548101355203996824044851988275239624151309985354385526591591228660708105706567945391612643974238689919721763757877825481228384418654231582419603310882631583095743992422130835630916083788598306019509551225792517656998067524864983390399670979256748879101912171080464644895441286701163851865368502656915234733691782940744182645122749188436760658277974101669902874827246653795345487764084941768012965949675436355964213159334770626175745246573905889056093756607012529849091295009132358783081802131480464006122507356899912397152952731363372886824972302375356002914133781092456627110721470636650813293111625042264571040117570437202602715806129175752757689840358622071047612719563914436295773178756105024877946914788941956854941599675945140263555872552410981342086714709003764138873342035564626935943993693914610922125132807343788476467488922614486872252536531365534663038352806896335819861849474750261509591853629114668220903107479408397118058440269167197669903149920740354814113026035256492460600181118439136909237719034971337790746723657593759318008530142439659530976553738105022219603128652164165186423320556136430715237891006251308815835908272835327128668130147139325663315343351096362509620855239325968424412501709729567667907768287024750433365672151718259832066761950425930759079188676786586585991021595283797708455885721252816721665921055659410656457994735366374650228676341852389701327153752711074166570527141341556803516945188090991717794867996649073836339197315024722691043997973417137739293313183897656703432849090966470729199020156471145696868081240014194257929554086558963728990336963373932257706558384889745347277168156773397833676568492830811063607452974115095625560981104756934340961798684257845981066099936027568984788397845922863001992766737849099360259171004745837536795206043525497339911762297813413626901683439883586288323371996895576430312366683397202962069076730847566175213540363807433768213415976247070985410185856601991345140675242062544010180849353021874563811790476485522233206098639162287818633122361947841417701818624686951322306146115763044039512348061532763775408957357334835831488408148206892965322015714455701334148463778278133452933357613379222786882173021510295183087729455157395353658760966140659201290866003571361175351848860909411953458170312259729501909529674863246952637133367468861299936355098437174424741376845012967675790446676302785076204706683897404334365156028037831078034514803851096628273802304817714137655066193825513469150551832885047935254417759040179557221000475977714863605231382125500469037003044631851872172046237590166771097504497879695560390085871969738615209484217207692749818016022814049451832818307096821715136328448429847500719194800969472176750865671447173047920563995103318139497586084248246301592823468677432748759691784320193953864119560666366666285036062580851787308814639585525090116636617928337530318913723107430872645907022841670208016179775850349280329731696470147450467280306159166021796726778645425645226596241183524117922409551339180862714247368515359056040527751363350475574254085396728428873716797329789202807494273261999317753522482674595672496594824325774420459943336752203004147287420200443045696763166750491570297016915923068548407353308541939631271502167642141682160104419152292455124221103581524454864240813466239280676743658774502033522703155985987087823551779084172226526765400811628377529475278996002295262258395048318097646193291691942160194006916171956905633951452805354882397074570447136012250342402765242714722802053200695597347212840965262543107146197737833878688417358252428862520593354069982297653596217142536739839476709141063015718959215060972653520417933502504471830184346983874215485849004373299111867032784314279623953984672936599141287539533766355353022747294564901295228540835579479818085076015929173963110394285199406870749374485848565837385664551689489385251168758769954378849777219911125737679033356786936588050448613195144251913491550684589309121722461263066922905679189250240606172448591889924936930441134396984270493377997854415748694744044755872092311277130332837660709722428631389911023889464100959010345356738544750844912760108765466312450646878065079798649871482304121311680416594321089449927484081023282926434136231344794761373557433867002957910020732411277660289486000697369833328069880029407845750638224223466344476223856353730372701846042545588983236756610060513193249641070352724888694440265041859434322268922320009227244318464959661425242019064076955850471771125354287070673828680470676422702179894827555233815726581187816732224835438872911009923299086109352316134328560469193066758540528120131243911767206766317455256706484076163307616816182739294592813950499569111917895172289636623358792976604698071763628982080688269264808097149073413638266977277069055054278660833061339881738863162583202417522496584032443335134384326135275173657266017184530976826598611590337251651297971786200068468580956664194987452566882567691306067775178541932341033545520010363657235300515209666285687332967496074480178800806793344840555773616430413678231484557493787663240355454797715983703991227179285383913710612188840540943418726788526501998801484110706492116578923557627451965942375390366009146375668112817177422456211727773033550880060146948007071068484328126989388719214529514355100406685622519239250234627708041882675837440177543547270851003479085574373593170875112388026635235945326341590648684063368516723373933581334591345493904864412759832931117520764148181790833095602718068283134789300480402375890554244474264236885223368808241328039738532898726606722789012965740338244269501237174865603717710404230547328729119447196856456372211884966062130574766713367593540706412950152751101098500624056213125454093676984496106900066341912949618945559127389276925938916321919205963679157227152614873133374401607062168740958745068680038459300661446121931148798461426288830076812943393837254059355690971333788711993042253405033436362351995511600365457267313727114827768356246231222835707678596983845617807098412016099468460441904935600270757497574050469237635057707897701930631064614335668305762537436451041036561328580938512797970421834605156637853571492178223207731781603251847853934858928862468049437514669637522058433515910590100742063866085791661468894670510708069840030463307815778473750297584212050930422857738222961087649497856063160638017832336765780874043950161711480481004773903653960365368785087365991711965948185939643002457509726215192841113874380529785287824541341698240522187034663283706840918613055172527797842429837578769900643067105103481736737558926424768279808825726170705452038057100677679731691177732257340435361744569000703324885131647343764725816891327937133709316105042163945116454275665968680339237390611267490740010416344862555884491216098263030591718746909841926405797539199336169755301701454067254829035186435857423967803716694845736924837319146377663974697762013398814128050811762652003855798385534091169475967059990456072594151959499824155298003250513124233353597075482674809725567071343375385898745388631091892396353424680547615246217522513998156540703305063676161660753451631193544484314363484580730052288616890495194662635454473125147975606461701486506280741293666922980692630731182295461241843394031668717866068287133710235363264262301315330105236491929424019164635399012341153546905321458486947244008119324420718517346933461842528651949633222498154208382920389826139003447986178379465863689874490018113685661773634359870833997641030244658255177232539252212266637370743913077110095946639572823063013471688994058307349927604150604377551582958530572043617603906019144936672366477991328869072425997882153947295823043297156759207164858328881004070194519143550527655051129050612187727093751682195048885559012654137780243045156679258154076991700501739443381622457327071121955670409768561260853030823291260012582129963544740948928122336512626516818278885696260709329944250150763699242658211628907498032237610573292240495640513767868053689496782889172319595210267596850290946649988752677855349935562336808966044900963314699229115290843351875317174978793379165313581503911113508611346588136965782217640794472079660612120015581740006479201029486347772350416666217163262055373269762438692878123500306960422194788479368050229038894854466256214381879581566107101135499405536463454349589900260044507644221299354441149298564239403502683918981098483025852737590637318762025562628452572737193118558450771162983301818429578456982107402294105712399295595063719665102858991149853285008695010591783107815813878128661766869950501269035861189985755705275941424583261509631041981297900812624756835386831012934363824827562754520808561682054902571001686244492863162992909796137589639783568267656997633491935458072955725336140809231758611325123912456490006147594926441391758018910596290216216604317113437454216374186418355476409463659227843433117733387241084808839744797925610333650571702641060728637533833465590037446844943916918367412943262476564260628032512126521425570959741468641661606528248003070747902105952620572239213691134620996970813258401365125145340435260288742096996564047844637908328251087804909046418852394570725861874432314903156859996227041401631249419751090973885736699322620377914851067321896986878766906085771609569106331188064905736977857694981599228917999303425504262774863684796291573807365805131591032757627443711852723761983000785761282377494045444138260151171738352933148521697255517341811859985219858569015873710262695295356886819872091786641343770633417189611834857341077677033552749385095937737631202118429981504944544606139387488806312542197089822039402887157397089979522113344457047543896635658698144096899269531825038986564873198856348213596675641897143008213913950911255316189981155968032799451668192013089959452857619240506804271825610332396149512226059265986423879376459611757799489405479125384781464025814997025943575427127537100835595743214336721299071932163805348204535240883442132040236377557013286635667608520607760549578761985688796372493412523468868400868948358453101765124084511093465486700485139579722341652282684070144149649321191828177196065896685288825481027519444173541154515352687817672701668564605868258811134470889886729344773318762650990704724939144785193476982217511808635775405873294300713691969816104063925296535658899123634335420340564056962913144299880168059881349569478726276368732712192357693382699282424709671771962493868373396107877043659861953448715151540991799139934152605157958874168514739895258228476794880403017524867085166886297462560662224412279872492592871033636871133882229350689784716111976867513329090263618737015793185733807240586281520494245788910748463022169640054466355212847538351482618973742032922650851806786880503172597284282926339409341772504372847774980369339496177683510263733845193625649280952041428195902675000928943784234758499640208626880212022900422414007888251979176077919619190895321348481382740709946835273481967409207544309018828745938775571337836312255756129629972123977046072552970500304748802332584142749627047392617205254834385772910550666869853126070927408167418252632934958320057737801418061426510670380078499833080587311464885084736625078253860814873462410260546208956920186013782413856662674676211949426798973287739751228969129639338001813227360552654155982718650361954296211543819666369361945291854322801634879062016142852606919354355280515468081822102135020473304032437349165706097203848396041123218236096561082298266623196908888659396906826838688744346455337991347586580946638492491665922413672487918532836634413933597293318590983172215208166130788178443168417520337077280710599786576527226211138518545285550984273289269958288592607005303699417602907034575718402965142752002857820676863108677361285266077237914100949463303478791359379013985306216319651537726256256093741876003055447107117746836956154796226890908819018370390112205367615765022770800641645747480124559678243587956786929897375269200867987565365205511277505158487149902719708216331629320108679178908052696383801219076251037404824884004841159932015329198311271951556554287461273909968351450774461544992535178102561069943866000638444873236387925976483638015734325957941844692960364139645888291203802560835118695933602289523246133502379704388831777944731726881174670099759209250739820686180081334085834894060400808151176911427086293527817648919019075983696400191679730261812638132592015953181564096717939181094848137897988171716790467987306435912683899184122148981440290384441559472047702950628344122853123294453367476620180553319397948729133279313092142029169919988238396724464484759802028238604966282147546138444369567685392048797959197780176568977776595356119591997304783906198658555657003666926186532972696885165772262067116851517498930524317336416808036948051015560648845276698749623978336308391327379720700210081961323822493550705442564611545833896217068636603253396432249699806576903052867836352530904317259156622672817580050134380318082287259790459039006181329281803134705564433741379255609489073459439611103440929360666981714468658141278187819112571350529622214817005992220662398518289294372826781468581417570566803238781443901455959355414936765081251375957067934053238622747979241754895109817045098931305928535477462966892295519005844728609991609672630236330102848121767534544188670466722900642443956664119017631746529966812985567413579522427024409985212092066997110694986419198914819085384145924699411711931370480507620921490559174170533018186598818506721552933489399438167552958897383144950553964688413620685984661036870623314736068889870461608663561528032525246993407951999624765394719007877866901414528811932157175415859883777268468882124557099945419299279291213593113488769524806159908722017619154977513147518463849810664730408370655819151282517174235596681885868357032524501571174984170270259554350216520164775990385085943605334901444275876176079455543397017323909921164580647688666115843836126433720664671290535362200373122860004267711281635493622289164791240957877258274517846473741492530960631552283787261912470577123398859293524521570232400493290446530881571373541599246374498965349636326810360555826461769580201431071177569637725107816121787336467732564418191572236130218074572705034662144661270274911092533599123858674028048181387041323572923966708523314071754724592937041807493984066078697653984105188748307320070550458811195464676498290649062016746571846457982844903347168741486124015765189918794517948164028005727112860079528520834159731603183565241765716687911063646230847299672890229587097703618784976006844477444200738376871237637714997861845415735839844350209999552817804615212343511354887675803019775855782266533330805794313974711391223744743118361970254977763790214678497656914117531244918832315040727824971557466705917690763722031078247212773823308041318559311288146548168435318426991714163926035582764721567416787547196036486342691566750703444350959413805779313556123893368516474871902685091470509719214886156332719540961858880641062366708244096758897995366534580993016618961964867083166138411347351443742407354267756921627988519484323188308348231005368022580228193474392887610321392399702226226263807565046043702194537505639091185752870234091407747415813510746599346424853197013574684657211293232935574790529874161847725859347921695955475599341541691673327868819659556998331778170690617137652793541537219168907530421859806297480437024789802716063276756392885127612606022408809559086549597230220558704066417494580000245439504766669176485689301720359633402222398185489525208839812620013876631369863786035914132294158994766970775337446899031501892839303249749159975144535347520356088966183033267983581034160661463636066942475973574194782295543328375631841795823929183786394124594408240858629419788733947343746709966638003359325830804705617488465120482568805064665593878864127443614287601988221164323509112869320043570305777506905437305051369695365255373086000070426826053155654889464674509606727258731336557331429502809451669209974812256885352280142247880723995293156695481804530115355860207570041885293174608821021864195809223005256718992532149718238983787259263190365888822605238748162430802696178582633322164374510267304265096990192201285199757322379967177470704458834556232531153677347426727320075011601318659906337466656324790598173545282651549226861078748989131670520475513440658096656076547305688732209088635319961117089180281330862167233588303466914586386624596208856772862505817756510994059055998902460445572112327092695890669128886948474034129545032148941543519045829250055570905544309178435344593426512220357012110395165024627489117479588370534683362230301240416515696346734770702117906895191987156451652714084895254538139381125363441484938329020193455901170480503293293811164795688235915354346822688447117547445303254358585190691119800149535265190544476515227889977540206723542713330209658259306341384765391131999449700437248549244690786392206974171848124398311326356481622399722970166389756660281811618314324963123187050058223906942541958882253706587583896818055692890474264093207547418847092671418822779368451202171382126699536107359051384670304520087002962815737569824174607495890723146601607531124965837620858254290385634216626527805577335481618950602449687839411985107210596695580324302773892767501950446349076414633261369384701239654928539989701279800832791725382837278164709816262948970219245569873276559612779547907264189643755256576333050058704404670080618585898551307006732409697766030936317879319885477706978716726490932518677470061611742926477828148379050404258389897093825575059964011648619012355316387035109327068955765818568154798535267368225072536704342988929143843436660768764197998896919745626311569926992991397258682273367872885121966290739471098041239374191463743117596583035294426610996566430132030486190832490737450681521074318434384254037380420182332506904246127173404141114699267445026339741874979222109490038295822976109625348575396667438915317401760397500099488359852286397690933437020480291625671961178978328653463186426956454152367064506457498290642662664345016069616878158324903113395176758460618410931624409631310271674051283838207675236652752082175543035724308307980510036117410002349016620882582086967833778873961557206695178069898106356168071306743225228541600281803104796711410220961249940542670315998945439158800489330594894028891723017151198871732537696159538379447929026432832255987157559048132951988292636796153178549455788357117637568650868327991197893886125760957003739307920445114066273216118617754683886348294688372833923199870422916450352424913440216337615886036134498543642297624448803876186222109844002965484270655840641367218613282298246931722059353747880664811290179114308363137443077718083269384843622024200338920122872300991966616168104886489378364926311319379804252401468080855626027877956434126527591350227101731025927031206924120139291802042871074741989818479993296944352400723315401631077162822020358292146376772809967185116997483700277907609757703203414298405616811634137824088042547847494992792750700068857484039864581570182075107965760127023536620412362243513562873694809291811434330197451675850647403150341927095378172059833802006462713067980637913420907129173955629500683317147310853395809180699507159573254491658352572366205339859068466894258035755456134059002601701989553226115377288492293940991354276205287009891836393520685865792589537861836506039689409529858128714095335552196024836164290710100923415679490587616669779014291052311248617435753309818016800631465114988878939812306963791579772309790662469942928057001871525820143073803241061092376453328553283282406984647633681022083564591300410316465538261717610623521115302006830847966224388675136726073596366911650668836326028403231263663541669861697319039086469380413501550876505159425395695991739563796886871267420567160300199677701361681286639941331834193012283732131664927044567746382366207479287600691847163862488866034653063709695744577934585225769307352618432993036904205771084989720472029676120574588852236977498984582489852475175801941991919620165227895348431974855181772520694644000037892051118323526857808987471469059935411331408831849456656313185172500916467198773686758157898507877038891010231292683926650456183754872965679989002040400186419641147689844777986397639604275220895116080196838650774506981236284414261796938185878654370207966576653997073302984215920874805156036029463266705998831357153631673661765833629349168991468885876413605671332051770228435477104044225946194136548108932163487925794730314801288394764504912310886408154991097047627759393397171030786108331660353699103028296057287170046628414637916874298071607862666323024760038421490579075948633815508026088760609155530892383988532014381518231834033477207538740956162443624347951475213569351076584780047394587058426211886085158636797184524757826904571119595438932006077261539197951857517366631552129758761403901976443652132336378068584596369498049554868113362657120576868979635193643843198165746301902719049647763183596559670175914128553628441640605904160795361827840849800575128530913562162109202902990860715323522502356226146876233937620767578368086948277140137856346949241985277379004918054164034239585605390648162040284098449541374146068090561273332736976152187674762813710263656217573712294903815905757520099133127117366413127306134940924563101132653761668162481299104261359117955208236286971327642444657379342935593645379195956761898034303714238074062624416592783129475384838696558171405497458258108079645097619556440665563007509104126504553873288542521433410774468273876770902570574626231649857238545189101993269619072132391882511317931867518882333835293191667864822790783177361505223094615945262402868702416141618870422233070726793849819399611550841062446895110861698251385117516824849640987502555666483797312695040551502420148057336411396502071917778292095079265754357163847262226379194053638297639496610680425989393235592309207398906196253301759600224323332710778994886237247202311481649628217682205106409308548794905943414477289703106481923767028863024324244444929990357066238409367981541986680391513114083583492810654354389137570436259677671792483151975174320452221246832931452586648854746293843972045650002215640686368017357352116851488668333473979251775868256822863277713925656342002145191842624769263412655895495116375368924795927493928365554465068143220138382451446372836678770902723992194970020146589271465691618393240102520021483378856348016568514924900874286797401091720713169682779416317925669870651834682565736640160169095317539285678436891538197871805998792517369007562978709132870751307332987093474193184041754497349244034307974750456712088550025914032343870984610512507650038069812031363835434625726898628316141505199714669424930119638904901474592087836276613248193360558661560931571806879427387763171449101949619935870416064739906859750920748386449685682988746113055115627205339573867296655787678876420903486276941274094470373593592931952179250659379933397285936518059015200023051226332561166653384880238703245730049316080783458847033574553364951386478310817126993621217629472484118157698046499016091481101150164118030306130161256471505965669978317620872767154016594171620506343968474549418236756258747861334654476284747086732464935019570950006153344645377496766657017420544325337497447138363473554794521828261214271086476288835633986110949616663425268763264797640342626397986851852306477674636262631335225449313227866589243872494807437590367333867854236420739515523090270201724016498070463209515266274894377646765672247488596537732846800440569623810547533483714577632325284047017319724952509430128538288486819393923057097614206565834535746994868750662948099770007723531647557528042718202630604095755578147380570282874314941312035592891985205155940178945257615291621521880403569426813033770492171830544138735952247494642286358536839117481217319544587655473756735753883873936927542122733661103221601083719894070540129058402863753668360014064344871006265173042461443242216926830196817845879228640336631463943228995867296312249821998124950834801473852563040226932114085647448812844497933360511059845005080776470717514500752567329030400628456210347575042431722744303301819508112264814435447882928472287936524315800988293685628650202687291516469748106447689250680542321394883096123349466885481639387567795663077731887262072349963931740131196469075399486547721879236475797357448011601499742181311142160179866689238346092862402742511986707964335540693962706847866823259254378197560976033448594018299161430304850250478911444889332723824878127874358578007813008295474667091185135633835502268098718183025057961122775655182763291736512266915877367710483936839228406551418152980491471042135945487013392988833222954488796927940152192102730009628746161357688116708308096128625374364751567245563993768660195475688789262004749103013810102696325598212239063939101039370245604955746552484712109632455290560909572929511109726474416280886050175419311457030763189997388345357595925317019337618915324450297829388397939678048855193757855698986905031518347418026875387886521681105473011447343837777885006486563330192333561011049730904333170923459987077660087108712392359919073992277883374765422838081901404638384921642415354819815017348985585183682988428365173177529028957484312985684329993770487322060332255944836049689071540968908671003725886159944078445322933695422601593451271330664638548617826235512845642833629590489316412733019305628760236236292350364219466325222018754031789749472138768889561734912187100554018609827887030514976381342325299216264486507801193130069755104915669936507409403540281137789092746738455986185938100545780149414693113956932215408536883614114115463671232675355589226620837894979621578458432674409407591903181419357361242770949248244027026442226616018426723616266966252071088863916407733477809899909742227739141197801170993988749830425747324155185663733010574041548183620026235677026287214025831150808436605397469060331214400299481888785476054551627265040776703141485174067315317828812339762561000939480740909068667693032481589774764503009843702865779382793540412891944587988823085305335692178559544671313242072696184268510966488171943305034239143092913047057187369279558042092964328958590400840075930235168752027442032063103255400989811106737838983879133758448070158918657836998749890233116784376702125649746936674037460457200249750291146274433264989643684390124418872741082672984970872646875664427801543898421941359641045211720694532366724792862473601470992990182413532287297558618246524846438693917910712510689189493240012800933526881776502728916049007170027745007121197734349949486552961560710495383488277022889526156476338070468401798264521289100346265770881434659672951728682555013339145974834068022540253382057204516592760289032763459199675240843819717450361398097336831361423454969039740167824548247821822968164000178107231481533202762114647925290082547458914860087465674729056297834832543492119091469107644559401464696214298028044356311917573221695039365501913260653800811524777536117551087010920722960600823642521326452630886038727729402088796680712097101120462053953308214583473051023470559913198393611465407754888882869345306444377119049198732247804946637599222962004863176403623608841072959311266291605327038725112938062015100733638234280985795902577787851341276269201330757931766676565941969488317698942920387906803196869043581794663032750813715560028487415459450933782023180306151848396844462083961653815993690527156273683035849688740236317898837413278977037101446645035887556802287897638172768130930038117623922625916782710125423279720317448131729145181988467593934188662037156401363686262642711841977253202363728771840972614661970187634574295124867412762019534937672853335474818931126425364342611977529744514680029129741889165688464638795593829048122174303849875355951571483477298870595381399115052262087965036047483968166834790389433672046194284058127602786231814288941069571969850686134573617802682422839836096243779687015525536268078637922130219945174149994779404507251923890404595663860097222931323201809556637619618315982648753090823560850222841797155552007834767567334560527969053256910285911759301492862869431038028518503682302498142923955809383603053214504163931206783244547501004146339075209962720594215856926424556325240169547999982264808910829065983822157531037906850897467993606007593009618925395365306741513598894188664045854302229005649499067731347036751436953359116688009034191188106573017895337539239763937794071038433810205573809312942798945422592176837610418580669065477780581657642052873334384413452239923572955600079976186645438975631463784445061317574902885418757476527818220852791300640390068015656977610834781103361110555007431675619624829323117783760825592640045364896893005710826558122497299584115518932772837404592711139933025985177022530301276601829820669458036605815645383072159442302021830972865174551993760222537142947919153052052484093739010165421971251802835043963251053508160810286247345384213336551765785887019482662493423740253082766875442570370862150508413921351286916719228747746879997573883781495442876186712177732233458522048284297205157399500324794819438237728167089176108739071901359388450312600614139431122675224412348822315648460298953280219324904597352681389835556472649863453864533076937662314265217923653573313609467165092557513649383696478335742236050173187377948670204791591287386485509615410124783151540395435397209583540654399299507658487611819339349466455787893188713817270281672095615995545056256499068393304373566235329883957412190972021426686638825147780274118282971139783584913331681876514618773500422344482675833981249261725478904163345470543549671452735230244984280803101453010331250118107354713190707768202394433306087560994741254024502585010204605262883333971156682776331131145595401216120904997011971261678300561716642259461102255507156784091849135280544628600620598924487248411884269439417669093072167022566101328413733694370038707625306908379520367407325779006179209801767003249757322003734202599665509150143557945766759475475651261158811658666154914912669689571596932444307036699045110712566115453746858319134222874063202650259870219969254127240566300410385135171920661159758404765434046715723414755886990030452908005412980905169906895529017079982922850660826939068136062311402905117981766011611852782680550169569856363024444942388945326955656129332091534429804547125986327271244696431229177324243770482162033527045079265708144075891354728412966715619791665870697004893479896123090438708707727231384308225838957482892824507847488773342626190526413356466385948168556450309244623854132335934060610331768693422044773051484975315804352607536235209392779445132855764904007155946749359233584865690673494195142766460027110099985417595421218518666384835665801758560470337821859656484156508867413289768508650384934149553065215930884322320851772706931439915872995788155019735967149780865385556348349210109023746546748231001613262661165629507060569623122357832502762330856346175861436650148603814587223891287681776616295483375095752838694273523521745189202528224095618755996924556749701692098042488963505362833247205675096142134745429122073149983721439927026680736122855658716196346384695596770269963550927930125130803999112509393298074694730135248510865727400154765519429461951441753868083794856704492982361679543380306103246304375429599545773371743005208974205338095258244798726957134208208010952671129838004542412552799748869388453797996218006261884604994240792279538300041012532861584605356839621176222231809697635478588386847312577336780424779753167300265878594162669840098407203913965682218159568621415682444861209803879287682893196226496763231202496998127343345570134580052592365742651883095009680490432325058813945227207322496945486109022553268590914905751342531618254737680861534522624993012260095464727860978093793460322902603923866895856707605705722752268584597031866612920014252324610264913695227267664491134966430444241382933250759971499372278540380131601124892857076033239625176920728509029733144781821844668115562043763038954310513275008635826866274348395199390898918362395464789555800379515179413903007161569495584442359021619625910374736532792374038339828589829926408975941086327782588564008009942817989258097083273166604922892966201420592951406342316002509705259150738044564931534450968291057947491480853324850309435557311424238328212941707308215623852851682935698112479647480876708649782792963981161987461136561535676593356211942367697411650764597129600812659579157510381600325110836802633843389825967887975149836326621219519065619611387315397542897407564309464106321136668201391766390209994984149721366165035805947403003502811885160540064921279197951799895628623766144982524334385329112511812531023589926081487237123786490109847434266947427368761761916748056404807525271839748499783163072250566253753647694175354917210467533023509870840551012573142324930311871694681819135494971600283730911981296246152564905777448795427835310603598420780829166157213941788428600909995443919533388164709475509242235745127593295189391106717184045584794257010107651157437063536631827701780318297054838679259946949023481879412954743593799881306568103703754063742863737529155500499698549724441207050640004483170333052748768899577336316716636247920858843374463151995480141374024031817197539973546727280202105243148570289675672548303697003556487398796627110932132123862852259681612240667688318040855405576334281222013477308121488794314487452703904496982169882781654121374195961582835455654890784993440642830590355115212623406606559645468578944843764335709950628594960287050928274670410512051282278875885562951774904164981643282893153327176604049443635851107239983965173565329793144323231935724702499322535906934462385237562714150120694645560684885484717966310847479347128107438907006078610426506349388960681566633142721453304714796916056920521795957452869643022502242565936412725393584144350650855607298478870137807393475227182600071448547308385539944764394272539806394008840392200542478293180050826958356605962891088163935932999644871688380615038689563609841423998813229977393857194419218722774573982212283601324389870961224665312536888157939331530008563801877660250465870428213026677362260054456899678656048193394810841281500268974430219366678528018460113929548804451977940971858147784534966724724483501324123363177521114314620222054956879649147064354110774983770745045615197516412520450444317453272182972511219978809952246419101476743418783166220096510601995322940036354632161950635559729336601252173313039223141944451781559447512415871920666659429422274420979999311040314732083699135993816505592965828952768122533896243027788708821909683619225216289295227971681722184359103495069276367707313390019264958622859196851088866093941314656917003687960357727535819529787078714141003946316428727947654741109476423693789214338376989956007857870168032379310979785276737995039122768032882956745543924962413445967074728600959237688185026996458596474701318477918545200233065651959413266420556223656118050271952756487654358906397479039985753576592140034639023284607062552848027284959082210427295115303071264649051020289509730227812933594833555319928604277380648326490233287528947509751472521056538713894143887073720630448323918085854968362686909278603081721134637349391192761705033692417473162676685718733863024884226792706095551022784293240717063507120088118012220978588321430837979476416577895197712430290221012282496815998503849560559417376908670075286945823313248743851683638690926421444222397202419092939835564363048879248642024394636562894220027139383680754638258409086994859840832260678275958899803179962174401438842073528152591314629772247551927556069364855100806680872992675668069332781130478031031808208842528364485226272616542117038139212335935500885541924454395739306494442716319101054043282603167372741182590329495103212633189179709915415575294902041130217811198079214447584894123280441761929947778965075730720015193512481628514009924410307942816682133188869819239101179961690766496718273745396142067408254260973762671688484079723068518318444768141581662785165609911619852390674266294609970334646146338013950880186357116555441363726954971528859859062709608425510314126979543180374266178192108267808044351092852652556121624482673824852629267180549441084425011186638849088803661482517998490690253824606973409741329618139777803425106465096304858037819106782428126134595274484542717009582227485556458650209568563243224574093768458408297309460958121672193628667844251266312006873268873961804801258830850955897772476687372518127440573858786646678066278087284870426135339227888514200045203044863724803928077585726610073347399159577119983087039850704868552799038016415816741858536682319108368477491922434346940131350453822979898409231650724384290440536721395387430226657584812040321258487540055912520418419455658018816767886313347514968310843041071101909132881293661754653894083481135802481706809709766225433373994828912149875123944922699485482072013337269393693360131870577488545893964924494358189682863565943599837117805948410345998281343049039535022918941297367945634327926736345466582239994400167920705678718700953394494561279611454482586889991126634704712581403323623035076293023822213288656313821116673203294445791563555231799682092006332589243962138314639191806371483986824680453844843775076103249677738680015865091768903633333998899025759206896493621389548733819674473919730314453267631252521384758985763137955714328522297148863244205024631201223816002332195307758467627211220596376548327883041114110941796418736334068171815599814065529517779009322360846011917323516878940602371181992660540201968294655535712058686005524710795565027760642586361840013229017139674515322126725976752459794100060043621877849312211132077019967608138597680644363836539077530599300522329755474291155172815167666587944678462841953117591189267262861574818249496688953755057202429608624495224886296969731470288105789472792121162877462337895765668991284091936467824764821848592831552543167347924110360808716967807131686928097361369823495765531802795834923055815087051288364100839114857451780403350773966090522349637756179661603225786072642427333213438029344414624676318683130927859951464139285976983248515397180768872762248851962470356672513780302716234699706873397975899983841337097065177347390952555246251633723845465439675708574507633199112703004108996894851649591494476105905870802929671711118086084095240387496278506359345150806869976496662599369691531527319106539332160093240269861612305928144092822522516840729667477970904676925952336493399817951417800939478180478726138488224804171700328291743182721932505046377243256065588544948712459649388144275383195751158551799206021400311558424397753623436222552039103422978420942002632582020819524939095024631821044823964330885455912597244203565234087132789462756042512428404268291513015548690894322358398625280546201769821169992839671576605420811806300213502827373286201565498215685824720805082663678233679159058563716464264884539238145682875024830115713974923035777611105466991071973940856958634464971707320416780367871616940764427796766271557253256750713414878337351402457465012698497327837461185011892997784461701401038106470590535922522637887923381685670496710913215967775007779116959642135904488500481075837492602595235749079758877793854135168874785830893002798188950554672890689836871246462004235318682033230532622233934636415720340507720691158285573549644790378860105497030802559852612957844399605120350442030987570762117766599223327497600882029185817200709383767287353906308012428637288615512937481730494681259073063028525135560072295861429631919868137372937987895738954283066603895241998994478337473571253483818492186127362803726106002796061467706824722340289501317298327546332683657157788908940284098907609982346537902594423488135481329391477923552331167321414907282228372827483721842696946347991547643119992527512123955091153575737479775458241256616060607393192498572189333350715455491929074393772274817613628899327411608750624154303701773154486968147811892478229281493284085614853019857643524643431673341057210063427810626628431556404944279627476662023349427999657291643999095739860289994371506999250203325832334137601483170541062619167633343166717798863318746621469928460594824171022259878441865258151667393713333583059358252160320166337041181450696636982451147145239827269385988149034455871607144371443141352857854332018340956149603731321824838899525844877199916826937013940210190058022971005452577516249189556086489492333350696838251896718084165087874456363801591771274674230625710070790626377459079549952613718151955834028860116854038787960450538438435577015413035566008068337587228621050157208857861737321865143057248979530321935214448918534548097541792785356541868495859097558888861900607218920018627782620605632993400716063590849184452993764853966614417471504155600217603724002204911585833615549157477828826093261233852498572744416219666119384809680736222355685103524263584603042282773468652010298323862157736851723739390309851937440052130853192351807943340471665099064087034663401302781367587095365640854476689615669824022612517090958194157955381673762810121674680255531038197116283099895598622150630279990714681780859267422379140386396472000503831304806731798625850461855408869076045207290203615395214794948227645977759866988866125303617475018102558517251693239958815838675092821741327980913548169989657134595731510665031618838363804369618040830477691494764396214278161047037336690329205757833095895851950221826942302401591826423566836154315836400108513574556541323208150159187304217913440078032751853887340611556580188261238951937861864196531276301540644999381777114108935840463570897171660055344108004902026819538932750605246653433169485234481927371357416462585174583794789830902497665462230152414536150016305536052888988838361910998344570385746270653759518677988371059372124060911162394678712645796965776036048525041501089461322745245423251778563476176389889366164201375640206546545143152994928822181789169125758085952577476019100745957899136201513676998890676939554983411994244812952996003570859225560710969125376060352882279998215581213715241600055640658269892140243095239576888066756581666954848073270192306700807322503049272822124125842728199657503956275130844951040676310978975388456460290744715135712343802374343798089482634426833435133262385935994273522707244167392976046032780016308401799537473306126369600623281063077614514906576311072577147814955901757295809661186201607261233304075968577198278247319025716830240475939494462879548653330162999384506501382345865147991790920558880150212440561525634380760939133454462044290837804679030391666149550295380300149414673795836578949020365880176411902281389770156928436293531438129593291451203206701589894127565939682529008971564254325198764164840088440198767734627647316914173405990990157374666225689387686233126131625574005949949092290273596870486934983394011987414356500688132642928857838073388764138787928638737038597298781898463286467280650194862616586789417624865082385638592014529735819065616121615445074480176055804360614527287422054795671424293794252295167909414048037464959133231397480760506341546352459989091816522970753520201141546821342474274888738657219752684805254551406415811824479643736207858358594742048991947693365270519793128619384008557529957872118557136252972643953133032659250130758873607627913618984122723501626975049719728054242391503072923739877534694268961945427499175158742838395134659048597393879663272887301277316420286635047655868355893270071620904165458407208691203091853446565860464549671780521227643856330027204652180970127885319527887666693250741378670099096421199538983534791113683213349320017255322654028909362378236766295633352758977316591306672261865187970929098927051784756206317230268941313748722798865433115809892157157829226648044368568311438892049563273903090656251495592712833637974471415729812444324612199519233762681675663759325536404813499255125838232543784171917493647206469202030182876700326505326701326524932748475702021940031635810754538944090538220762600321258922600230973027847260030090050123704719400180292990104777139998709782565834286348141311630910427034280344277433713278791575073367922098326889248292294394762542671255576575088116185203690226785313462477282886497647793977384563477182628629926573446490174043081730844707942698649836378019152487627754431806822319457071700860504214398525345011362639578942795201167351294556534639976727214729207633161021705811347757719272482791498788385840544533322902193987335916875781798690268954599171106806985469466820578649415618059026165881520901983589833366477646402070224409258352354357114875190214655451183323948711620372425704606251872244834282909027736014597628974491582844176836858867179917329857451461021466370568790073571779566094091468035098147895698418804813469536284728057804617612140429494668472026982178187820958984935474096332750389047507893368128754216569426423594423033455463871234914127446636929127231914794637958117850400619220078988117902166784998510915472032282664941444692900022278645070998842826396994677759925562651100895762257139585740899210608486287001925136781967135407679768390564462611466173124208153060077997303018723959799355523916753589139235003908368134988163082746352805972204246208262683380683935478125908887552160538364321268636848723038090446340383284867251887668180316773723049841484682861026073342137742289732133527162998271726595299941582242725027735036816130487178013931228939480341657888171076641399556505113328013030827386666351308821726094442470850364292184389178004842973895413258342393333739435378521358222555922054429187018668646996041378573697150662944035940963282069576566399707138681485308543084742681180390530745866273813971325995372728845448721017354397786689306399860064242864261065834921493167874456571320908325342363594903867704067382989229952403169429566126828069856054062506805603475480435927591580653375412457670946573461574605196280142347119001760705974621501346783863341886004719566228257056610665610639273077426041350973329762718354770872690720285436021551351416838783083619191381758529086673862324738373152665010003050857737070028712013854970164470964319582986139261093874640940234323300328375081394442686082301949351171489042230335320144535534776985416270120613453577722968403166455567008723044233627613557878073222541003665003102028911203781989398264571485410773047101406264452968910848795724507772609936799598166638135423189164976597647395816613713779615699528845466655170700894198006691321634945852675934110739409706127556741165467063600851053748126798415228186293973716596926646971156406951066796777060477739075954354602891948790633106624307939770459691148810681550031744935346106765507539295556040402625401603112497936768450995490860918141720577305991624986537397821554963191466160341756465339179892822222386145054817881963161841930979340945439830106121981274703335833534142878003928561112462860291588999522090837884839481821515718272278611159266470688231987743990867801092974253220306125726944348505076229504616713839558677014640028903933882983926330582380344619515231784148971482737647047891720910282882504174313420093392280683669673128355334933305393031504889586172048078199685721229560771431491671203332195896097843826892979502406528499207992718703339546858233545426990571754989600063264570749776027726203567614087840476393870740789575492120687975790066150753966094254509151074488616233352145126314803172663046210975919821166006761837072976839821339390975150611775318673461906778249120722208871721745617041537892018187705979295192370660447514330295959023720539395116497709524151540890276781946151203427533555992076626804168798488017934680930702206312476385399932711950243677144799984454291669261083168313690569712116782565787778119954028669621156562464723856734221403944272716138864273050459378567827818320260985250321076733171668825407669987404251164401960980210916663443993630735845399687288474953243794573400750895075952228406580743164073080744277470328583536651013197985304348654611590014085040206659141785408804363684127750488398739825892472204417842997460772240117597685967285555590483621854369962283576907028947430653654261822913622401665273817291734202309709700579381097636041911027255931529671440125746891811469991790118827851501617929804050594322461930714110896442968483563453069595639849168313487934730025747057151879804021371748775437171445425943439162894135094320663603793455413740437915808040143037810957199556764284044707682387306128151302163752825024226041686697130931565779148221024449214019552288739900973542258410072659125268664346702956674397381713552051161138982669604590683493362291637907501866360995516083559590528740388873900385379485328563578470620846931344804355342287456324595107407449567372691795256361119750530660441439785703678337057904234418780643194740944308809564910636266552709724120339652955596811347643287971911739618147440541620545592337440555183085677345748560583218274362048619596688020748830635586491449193856022756833049860093281101665793941655435365736667889822379369654169988019142895298417258829345115277848598391202096713736322500398747310603194428141809482058511771560609364274622978533884206092908774142606818674486053189585552566077044669193825435711026343098253323546200595834297045008989209718935414406429743221008219957733467619534633743486161046611458321077478395659829854852282462212532260682295074747639091147413188050486158460708775000099041227123234785181800771420175133510941452661799860468827411106273965986493467382068167481686119423944180900753181902675385406418446158634363710962870967443563540664245001374989626243726688269553665545936884463822325868130944834399969221597928757742058227450539002403265847019312273301342960083682035827889010433375001747751332849435238019549709121136937440321883457765386988544595306940892627941039641835325590628791206188838251727086867928597405068988248474567216390795360265627262456512088636064733359566147281824937115069779262721093784487297252588638526815075035967222957647106480368611741106237991851692914088297173271795379746154141707637856359793200165659158140810392186096639678425049875704386854778024026611163576068559032067683254833033016258483190541523156026082381822756000340458742108446104306650954398514481292119466148956640555353010792473552891730417653258228577721458920560308153641137751542793148654735036823713858159107342620757296207915738328998685426718655272808986270514515233245946541062258991547443034517400478762661855171402057729471864026971807805622162490986102663951185261250204657326919947399011609508978724289211951529006333480638500258372562597861548652070635232189290321116380079864924702405209081130084764428920432208276236497074857024528625232597612628595479677046528158978940892938683277728878493545728873042062712042223650573347500133541348445740462444180592672785217262607383498669256115209452140043743162320828283458629363981216772962449985297424412181421503448192443801346885673330288588884866625506721369164054672118065586942045056677838561394222437153645801930913136223876842155253242093226626052718494763421990460534868213885340361657830984373712738893815159190934484306236389405237534750844587945664811902252157347242335279246944302094469764537504662583628284864356310119950925771422889335203488848947218608996091997487157437537750817361925504572320799981372205581085710259528284534492210944343286726155255618651576810498608351017919909072840671325573701622612092501179005685043052865790403345493418212454803331544934635474763828452351322338786746475687006200260742058570375724621140939247998672360307700882145060727611276710474823741635472904714752176698811012906281545844597178914329990455002538944677953123020943795550846288481635553945102656393166930578826069495434033599017078493515939034597701082004592425479397596977675585921052178945690523402573250815940336070607572837913422219008614521583516665471808678571803840623572492705871495756356637030611519246004409761813594412699445002152997937870171090753878824218481223998616585527183127344845347308499391180228659722669731736186667771423316654131882320965466548531259631541007983359833011961863536380140820833132000327458659236774010021705163271566700549191738049347922313605576949561097586551642117338596643027242843133596948950076621107209199475655156601339928699431893743051330913543852178121040109477802861479487167096161293027494360432107135209348690743856813457841636079361091255208775966723278140011297300570620996858691913513930047769416211338378579982325735696290241497200235314061091061750823919420257515459391154269560243474031926492100759649639842623270346415489224611853762023460898877778412682965225813946674560488765542577977544348467881201000478654010740316379120761794712393803590898453834088230592107683411081002984435802663203123219808157032154195147000891311241717008585363879495897193515680387270408542993038998550060059781683621516863989778662205265338984026038031897041762731737617582779075002644681327648433649200731520158736534773480845932654408854085891770582926342731152690398042799722941855116644417078136871966902652809949202647806497996618394951718586969961694806752906838680385009774951728291251863915091713944143182825333403234772531206416996098336395780588295402150554439833548082504744189938197333356096050039363648304705674180783971570632340316541307678603662404533457484731079744862818857968678021531965366280552936499767708527028758420767696903839415865794859363217755412803344441844592504185346504188759803267852294416660758463362676005661460031053770651059593432776228698011164968390569207558025183756424698576584442311673548332341705175606841865239860915766092750139555865070166416915758907274353957243240570764943084879735805294617038324021173590165475320459955963243133886181549520152452545166598793239380358719662112006498145802363252848950952628471563264456146193646895537147137479287273432303551813414626512171804300645491690484578398418770792155162151256591669703257563877383784188015587517895276422052447567887412933805832815807784363648888259105744219461346764760432307478379728870137824926779748566523260101771634853991590723059035996457513675236739363129864740874007148187547506218255185328107742909246660132508200486153822343530307315763107292577418439535518652425291594524445547348975058754322858981072747464895412461155075954857693922375687846828476602424939121354619878468669561213083209828614225905779245817094544087340167485075062465790492946891822495414276441228480344119316484786825354103432777772918951133247800714405257944876854287493086645690528406082327559160282691050894558702399432103464053798329059686040637540772818407503792570392659009671224667006173345167945955579977686771177952027677014851906225011118214993801389327552852544867772792571329386700616725733274467933348577417198019006889801709181499007673633696178988118732661223381369630405134944240608715619409522577459191538227323456080988907922271505891842547025809423427793956321334275531787042145498494489321349426102922128071807288066416403177060432611146565207671496096194632603334347972032839916214167656512360160501727383419392349689231837179645595685707229372490126798051100828163398791356540612174102480727432349552911970372005462120947547616758736473637306226087119350515438569538082088563269544722364128952713759808829344509244321942743381459724598802408468717297151003021167280702559179836517961609623461264022608636115053928055300805884283278378091143814493993943266380092524120030943010348327372632578452946409714095567981033485728756576642778365464039894228401024523475329056737965661783446243354160018351134105189418432803188074339273918139653705285992277876719037702943425418534437881471670831970605367672357366877233282519965584301600060310295506771863546742120092958443787115346398168278166427458866439248018400727183303882582295471423370370382005768390040622188256472208922426369701979926496408735898588689361484501051134721757813758672272487401428357333121243635628830501390069915649244167815920007783942148206196432765810535379782214348902412840835311862860608803354638093705826129151596337623542362528081084406016093928902839928501705372834417891613082121310628036157086427931609092108450515089216543054608476470379869700416742204275734935716487414143688811800356940288671322231500985499615831699847366376475435559297063472559182752262854916987224739640406575020084388785074983059989241048148154743492067938001992157766981357406927362689764787179308818205838541315606780029951175471467973008193559142282085832759179075243583389932677925893835060936353744155853849382478482001107130225180700842735323664884221160135017586505196956440569385608940003682184786247193559538361024048154054852949910837090146614571661137250873005350895917235019427021381166969168172279735327719017551298607577165579148103658122018408623071725824441022059321949021398422101359211989391605681200895742781787599607051042404260464664223578926937967618059789624472897025658455516404222319507118928294143098373923690802009691289468053235669939306328582345030630727642383393853212435275917146501088543584398479861510587122368218713920852550330700369325531444240787120020142900126338695839762005766344511671734378577626853374336188531359106405404635315354644267899475031791080231196136624839652073676038472947554978028365040143662524546212036276258720253698545167895750930445080753347830804534850294973181130610413045700378496383948028925606158455294984715147444127383226357839524665509965343074570050329739440640344195970716107080566831394560815959010507336851982110219019951710835885034638051801251833158321517399548088517693922261775036470955227445596183845487737500455712118408290521245473490705961305945061820473077864326751747108471544598237905418283385658552996281328846445691497423060194194045272623939634208192232519977610492572795759026966660546972186180629589909615173467330348734064267607874690120292568539196310148484104728504181106626131868752786262154048080341045462347748676380271372851050979121763579185561307894815812294182343623212317187134192042818888908505035591325636061650918848465758595838376969404429558501583187708333187681892609014959255199663245196141172289531536874313037902710193809047162924278976677944236090390258212785445395524312914104399167194008602424277512046866374397718755566719910418424947754081533040115117462532703342526756283546967610003861523888406721955367842176864349846973845473228346080898768371238768408301663619235038633197643235175806327251604128919717331916735311626811117180766932960833987643368961838817248742947464961603511013442802201194946938070794983552841099487506324009974963028020139709790422209507910164570409652731724130621694510874105293437109372156121504063170840169873572470241943495481312449047018002418401912358639919268896726945070627313539105802240213784528165005930460475319134434097237878706495409294520645039611756511953232042229607760262454949728348818541174724478126554235476485685699097236760852656131825701244536246024483225794234178732422920013599457973466509447712550327925899848924903934192010026058408107574773458716905522077454713646265190422332297298648045515415483259775937775321050684735138666554540184182630043741636033171669749875909586876851264897033489821146336748268237781450644206202284913898116611571527206727662250567821818691546251321162763981033153719933017582018183976643903277214179742370144760849672283088701677632892858680770899374753305292754191820299498318862076926914589867710182525644891470595602161375204728746214873651233550857076554745415359452725651259273765605733628705731256458880747162339979830277329256871201099421057082487058415993851301897799596173091412534153804413577337957191694839016518303607936322904784989050288314679974897589889895717608986700637053130490579300885517628762649575243550759120115911932728905828605634541370795443442546041213879102468591351459678264506846593253966040256774821584455561700034278627540381216302264116734155728643336190212207004237655898017396958148883873031612987617730338552975871510257441829692786002995259169926075671047211270331090463712760977708739633916360346974369635539224040099726425734815227073376556553523672591691493377410960640755820371108235372682265775102875204220165505350517948354353578693543058641103112980340448002602767332937354956932343532361722604319576081228031874576673590587449932047241026604509118366523563323722851632303243950860492366792423590210368164670476345404161464422908368929664574275559814859870188768178482144916347576651158066867008065125363521549396418646152828781032986291781558674631233464009860460015817765171807554368176119541424690440225927075576924027766713702062717065507195996726563376508369777598841541647451752009593860770300524610905787280321159465847076581084401740440249784124205817282185211932511789967283800742822593395271120100128322342982484947293642006944598171622676225109598390530849397878949365744454796338058164333244442785653342010214417629885654956801618209719960636153591180195537430298826965295840780138520133727036058472106170978550370801330527999170560951887536941275723668496180882536760632473743069106240688037325300029474098332141848710335747219853409361062454921483873338922239011834941642629735843375372204985033551171399047442224352930701184148448134256041474764655060595716590626059238896788977893271262199818701335489337912332119682208096369192572257015065945463304993659168880368623006425028567761316169366859146674927713075269287510998422829939058050233040379496449594626060384637024425770602119314302378852414801645575507143867782948102990367830052700047167168742295430299275176405896545366294515578882281157991446993897518002205016173128497822831810203488487173465868152852911195167634719892049510129096647292710497050893584234147508360801603541469335508146864162099711426478125379573718933680702293129675486158059065105240090374021427375964535612545908946603179160441643124930672401237923037605624550098482616582391512969010401552582794393376901455155853163364976630116333515251726351332580831092920846881277594602582789026442478741549799205102036519651836162505821997691956088854137477570681720412678320243716961036637086964853389839741318058044593587725397362417054022606306103232352641683341795017256343665300234219062760563739085212931366934675695077738828853470167509332754292945352609659458245646106133359466889968868597817465810508477007480028280162762827071198065866994253620268331119227580811905727394187019582210166282057437619749229338398728826801828078014011183641232594720862700504497021902443713683467364385620790622590573073572937528390582341427243904039612649039675141989671563728884364886164777374806917407046769804035464919760883599730653221365054414723731002923551035905038462297566001837728197275361827663762719540140804017696870777098226978838617325961968334325123614401177223352600977759160299576306802553249810746883801267202405430684824253155895809323582864926959961046152545175180171994422401113116869428016300055132115373383136780554470692261581435331801348112927552991836087227581874500259977688867181185501291283980867984128395854913087730270205545528713993025741935888460300756190542971640940431455789380728965938673035449038053313838370064677342150988391948806249833291868342342449600186287450451076724598587944250808761445893882010731607116891340827781644327468886075529280208562741518982095189047425393814723921579511049716541655928089732942106596295038890105108626882584855766953734368667643964443965575653035503608627815119799398683536934300638844923245097357357125263149247393588885482590793960488175070935806779201785739011834980100817734493864808942013690398904586408780508292023420009964208651182349259618826212625248352170349074501766907807634459473640827643490009908099684821104861843157207630461290897715570730488589801675443706341713150455604416776164843548066126105066848858868409408311038931999877256102168193430923391224940890390112585552821727341498875516078984320382091442506480365356875485111799964620082844582980745360819313619882410246687387298160709787964286245677823942925596787358276739746602217829167668091077320872492776070759293720298161989980144560882878024168690083166235886702470417814576241331819571161925504009892822566801547836668773070780991906889959961140265347238743854343413065597109509413832719905075352486626605245688221850380416152288752722741798099646866088821394872765989973974613847232901125624560483799626702047256662520509596895922842101701089472901579092429164850279145934633196959189224751388238723655062879733534682333667324250920443754539533921922999207797668576846828367837891180353167794025294736315485599172615827423256391924864411312031210084171107209185457039336162049497157262478973080398735161835751521162695345350657660526061888842253899541578228805322943154174435387364094520911482880928892222150151432866682359791998013373383717084485431707679765057841840922338075821024763214346790307744643781961357729721811666868075355051398065678647195101361526776559434448265428132215955813868825548532830334512586681365855756971928894849691915112326878623320460635281988316159808898362026102396750343460784771138316341654383132286936766073989329025270649775976328538624187731152492390821212049158967669590760823847122980787057392510860390544714455732906130281664976114096451353018218024992946039048121160070839347144676667539498252359125125041428694967457348954607340993232482365869939787595835074744039554584165962813244855012683808620375367678458206970910396237082201590451821700262757667116401595773908030552249252220760741509365830890143550989491482819176063684047219515531250431965609771397049673550018113447314092919869373085808490464768097403570662869623576642144574762413574568852487121800051089957100251742598973696498148019342636881071057690119399938238982083344675970517224662600853662322130229105481419875804830237445760405363513873028402472170640355505756252879955820555997757889680839205797696265290846154957210755471885552368928323201198542642248454949727950439532768011913721788436170413094398317002088468475256524219164683180481081770373044160387755978071151803309132078151708631813495938909954943905925195866373142997231397005766526742031314981161380393691864376674569169581707130032961636885918812389531549189935461429359148784681248119798568264567841786872029493032872386605881522113362049963637334168570495463561427443657184004043141290452014056878556686800123576890178908777032401526336656955783362855233921082278575072852179000679626937410932387039782666590149416749491580799373672994334226516270277928059275551006953671043068692974006021803600202556709725511395756032898096282074487866011967869646349694193306514489672215475215537965268676621151537614231980692050164260075762015037685511650625853927616612485517646998851492593130518137170177375048892499636247343246998585168939346316192818199275537257524141635138262054905271637593954352324226383354588996568341144160969348701658439740131873689371103746722869411871101705603815527379333084370231665101947334653033896528128100298438753068816291777742871386758389998864051596974334097821540258531843448868203039029743852859712723779616489451795218526985345287449167390589289864680129269601618871928721819031869127776368718243642074462150737343432135995349416568731764784774526551275533673746846892784876788017929892043014037397219191724197150137914940912233662972324244219996915849513649215884421573301625286579877925588220480209331086009169805629975822103448045134476085257406524987818757929342362968772168958812410173604088097382640548496164258004413612518949039564811981084917039371527731365944563908712345341455101620587812263147178677707506190809947272790197902490657249335667724092086433533562327871093235869419894368990760202262374421763884693021084366905925570922729675600719800825195097942466284412667183774822812348119238180594705476552720222585668106268745254133818370877303919971130687414824153261223773883434883591578323114627997592112159602174269356663094899073019762914670740839909545435996887859002804858314203968380575489123439300060552593680287031061784160367364530011152580833086963964440187057293340209055751248148561845518038970262910473736964478357614688180266017756478703776768196989687062277580515456766465091238808895192697341613419626708787867040685011999922690609222073651477315176907619361644253836156812820486104038443582620598123770640466554695642426628492643614681565857574385014459265850042465824330676838101925925137597253900607208558640639443292111645647783137471715345986427800752111713985773792770218212188235640937932426507420505604643908383911977871832999892243936819394885582760116657531407965826992157703268808547715374704816204548011727384476808584519930848179764496591137660111790059446578968129964259537105811428199230847537337447206915298023229019324868512537604426440065993461301906140416642053030882535999047162072666210951750821077941889192493224868851593083787818603363204120235891839238598234395232262196927965660120833153733271089837713853392001882261918975248270879345053331396710057081736905633261584178422570296091994433151044222499007172656669513621117616709009591105656710018627745431122707610280151462917379491712558052563302377256549559402993079323891982593620571657242901287506904324149502545563196407841199498326750256638531414806950210614131693081367626925076216108718228454471129515006865663712772808804826795382737992098665217365146019558905952342302129779637579069230851423712556540676415595596228629151704630398989208566162238414756131873577930040834849356650872889535383043681031279556981849096934728612221579685484724427021174990195578554908956996522000946486117893401339220428041573711393409854942765670554947533864069187097441866873037090530021162139520427773982151164757872554257901271943352469583543091618410214231662582254082935161133413664214522787445429901117696743391116651464226633483193129915130838113699088824830532433681292524906267013347200747667616712418939949070836745104495671072702686218644177174668709524040905101096724313645449731185801227026870930231447434438293752109118216809539039325276841323302449680097217106827064970362636028589990979682356027548369378781180974272452251116511966907382812038501971470799409794132728439997487223782620728417578423263601342075166116640821415823637924873704883712930125789631059582931002091901555750530136657610859109201618739812122361182653043796660439220288221596810116813936847499014654395792332660066312879749688961781578673009916011487197178648838488585683499382461252932530534750067009874441021730254257282602084075392860201585029698656900784279010977459356555270363005171822150898007141798065019448696210186957041537566237774768645740002392483214695406800105455212007884469037572162015252722618693792229204476643180949911704495142548994706898761322092616073928210497928428760338824747574612916544526249409791325750510426517893654550698267247336441786671358382296748124435010272003007607859633246140323796376859160007416502424118280354436221486157548639063475769795033919364952338180282730220308382004003182907830180081604784301830574561759279242883027107473224441975604428391225623977040240882023703123724726875722262436704873712516061262484294730006345264622765010621045040300239715293136861417978405595159226060963487782619054648528248568918818482325587595130837360289257417653742971201025579626748731364896206597314472663119944613293993522276562989852001594272216912353652339517393481726497460204426296966749281125772177979097824918184014474391652972983200088806888779386368531145701578156847635121850135368214628766731447624323720471738758256819805554297176692488079383981272180665034869518913119026549818885526004093065327959507950380545058346310938725547323135772623442635274681565387284259590973181371755647629068628108474703108847123444876503409357769708105266547323509557071945812130826259425661061213529828195090195012272929750864253168186356737618266331247900772401980461012011724885471434427820207265989119435394669958631169229177487455694320138145539477996777854403209838484738510953424286591758115106621284103152682738556336874347226433733825571221827514668487342376587737828619149660483141340325528187043616087675871698770454778162691431496470350209153071286966492503380201561859264592997129372014258270414735108158177718666109999272347259528847781405107715728748442246271357394562316136911800692099445355612426528297762159052708665377441112236846843437151849025181735674058520921177548896627783564006080450865560511889190462901090255195339303203268382947274324685186347895778345697757974251196639607813676919724772944112834877616514704690032214026243773716010278938261993254318166742566140459668621568618378017759681917615236777768544843102058789729417823824810118922744345073606902513210116460535657116295991869370137271443907698912661620172073401655062017117638075424216302799628632184974287882552913511797049869917949545499207433478537601529688817844258579487140241890492626962529334552051692831895620920875022373315729998503132247201654945058257004848798792300843189026869649625946762006691689350008802246652044228785144253803173767860369779347097676057778134113400675777474123594757347636767541568065237826685976751476568805076001099890355497559856514426801867436130682710455103635844106665222453210916109436885242325044260258441551440507563657755235882152138898607390272167995051254126025492363982430522140850512148055643948663113965275531240186395885449726851102519702497726066393666220324357380163887839512046025574740136321959582330164656212827795816207064345765158971832294059053883199913187109209191218428838797455097855598128116547613880273932155394907976481617524382152288991416403127053513680302355896450745305515519502881822448417867484800980470004269217128767032992272431666329536857306142581698071672361270152678870923691754137891344451903119125480897518714564890015348247913628310855624662014559390567073820333018186415822873874967905628190283080166359633625113796884332383202731693504799169486240343666188436607152379354059414724459033580595901938611055986004749853154064696869565035593745649023186023751350644241312672325135986898460008197887841670784296398420317615145708804514976107891814545263177087077659688429088636561054840970093662741543261123310829422780578911984942442902431594017045971308615976348760454033826767693372640792994233542663352933451107417010803075442719841131884265880102958127732807732568344488270719615457069250200609265885477817183031749013334531709586353221358208581014597471231655650558034239769176301510085543806645003786926461646870114873209337254274635527166132799144305406283824560997007760122553608068619455932396655915646988231234651435897432612328875163118454520252123008330346143730841195199274736313564571711629749876324714819918512850999369384691012133577670655528279665071787598677786275886135032379074120951715017445928474805718468403836351708592020706777564500102730162864862127776581944640997825755279737116591378493654516217370081172880448180378827857316997163225888070653355936067853553957856756688550156241285657390498859131216225844921455966266336288496670119469067132227878345581542162460802506719689074053950861960956549315167882415933825745312802597203899922287703566075871892825408699359301399888990421699198818003623487100892430972799132757901977760329266028301268168554983833741775577676037304892665042360708117309195770385561846143103101728831897767813665531218507279881643192423495122887620665790077628379197383743448390307273099499715290823682904441895508260004645329132703384627335399161787659988845145613715439347914677849191849136196326639221797987843192675013826065810282650074539611276923512076966886894429033387337573229190472010525658328593082332753949233355287109878396566407675025632483108003175498136151310018656527483657502843399792624007910081449605043978535191862027551588490704343811195243001095326546306301849879226860726207931498181618086434026250075745209158070340663609035457972155142245725918011661681175854088385826513977238116354746378102849488982067595612821272536110367765936117488777481179163352453113574839658354643501202145502454858685774374726594708546423592961604132506465196986865471558950770482098347023978624225462047217053220207526416893104537831314046147539605958514383088815071427059005396518768748155822553386027082150372044591401874844051706837415353696557166155320231802887837640443639198697082091526983792967032050501892243862618682979743927023186107783345189689542124177570405424584555487307218243691003095140880641892891065609250084650858079720425886289221013707208437570005684857041046284042799803151919735058215739348252280456505155375731306817663874764414581922446672995515279275281729099968890653521846464539775225352592097574054789380057600811776842216434560604787018125076316134582869752601965499133569645529741731739665681999097593314981452821057572892725687824765689971299529831891337234306160900498067749538783387474889461387253843645046169489761449997463666511682806089439347015803919578925380029520466760419264725964779241686458067683309791982172580357448374097917876312599711570903611418699858917305702271558083139520873632827385434893664325096680222069281319361662478468291681327708300737317695956812825529594662373166870010188376696374767823215272751849934678435017513407930252599366828810128630733293534181560817399460981935224943270180495748874340492501494963478240950274655501636480720611027612860551827395737559704668464643657917172692101526734404451009931578396138977847197629162142927908103364153628560799393496513785303699343974958577243071758188957294170765349062663995269445368008303196550261148839859289746425792063337726682746116055649212252870165842897547013436107514629128083202030914127124135220117258386991114106297777827146781858560494195603994264177441944706549504503830599823760844000781966805144347174116593222921680143117757491255224315176670128561688037206927168647284961300093931824581777826527283604944076844908084820322948663170538527326622502623650874313931943945765643740605656974772724745977382168095490925629881720379712464279861565572563041662015759332850428377039579827794018349629855317921192840370947852336542877795295700398346965058431213880864268323051241485464947297519587984923379645402050080585580248044270445623560551560489736902864292216401456025973528405594389581044353062091918430453457740211961171291864554365549101663043486994060060222205108214000654226896283288303747163044698731089842382252934019466209281082127674129423199959761563679141904207743243126446376385313818683833054631889540108351841250598817194576860899412354429941756295331992567818419631509658351906551114623348809434308963935926150229513330267541260603845477647123269280150813687555908898841770092008441890481753191609991636746773420288255484970845652575115993466692199203623781579770162598272915322719057440991955541571191908291933007297979015896792233136703030125191910974329169101458376595133249535125935716645121031096118081923054187666378848547475472527072378694341480772703765341961701814920175788784679291425527986039948251853878250585418859983102511990318385243039932248254828959074169747600498558321034231609656767481341424205983055455744835093335637998701070588020308221376990071672268536253094508386811908963358087113307840081909972543201175971506626145783143050142947073387535183302940671555036517333051407096006030397466892594550652451386517371127966278713809584527817379862447801447852956570327815409819904893747941147456049273091348861390330900962097860863621363402371741136116092120252705635119279232143668598932397116935809928150054983768186957008078308233860858056997794444925348262422771977336309565720772550236026557914540055750362999892164705428692333285800353656844705431539323641812956349618580714054947978947036191879458873785450058848413884092815228494282383008663873215890042345229175176536651667447266456935056918900379805805682924894157537407857191147145864716407019661212586824720070097003071528468535742879614423718406544191698455611804358054056794933963017421743430174512275926504397133725766285485438270063434620170015191631193403078424570921118504268980424433370826848698808428367169087804042958677388836627327523665549342753395661085672739035480605850982480473163220489852393415960022917696567017974029151102636255038237333404386982890300740653036421143900834536440077732416123964021477089075853425499253356803022306896441963144412239942781051825644569969237738805261042551804351580886701485748447672996573021153398408530947847796264135292504930354547719811097584933754983475510466442408317682049018026126917039228411248194768703714906715294597040751745974302749420473541342435316015922495246452157149944449379345584032675143901524898611640445912014293626916542506459458816808065538651441725918903952006618270262289730506351092768584159930324806015350211226786780875632489769151715008451274377045952479384249494459370277049337235053298577396492085170402660574964702027355531913017346943045583401647521747725899784584086386229616224141497442460323635104461393909946582061680642809896884089482304149284589405911202836620725028635579956347857766859876427532978712515441558920625261779798481143831247495512249619723658470146235465912915093726977617483931944802529859453038738764047744166779307641386886445830965094869746777971772737417897408797017711987948893832987284300379968991906205199537448942603121975977436604249502565206278625650631359470804270192493262958862723162152847964304207630489770622753749862969825152009708677074757246820376599287749278490232735814988204156975226630029759032116590805224766813269418072370432709096091086691903318396471849019107631759234556212695301265984118430959336361634896340409078122450707654687336381463470720872868974338996465419698721672447280371631834311776413462257833659333033731729144229920703545940773233602836626333156671126251238185821839701518784620325734365390562698568820771751931222728005784436119286170930824610272810413759680604923519671774974560379215063092738771286808040763119514464148419551617881144130898198822096657913793423973307909490709855155281601783348319041730602057739975121724463589624875375975239002145114128360883608481993982920987652111044526104877730138183674306292285043301907433163767688247122347525849365485636555800840096195922102693593230170779809774253402129555277964187865020837117405166117987356846621859417994652687820980568447712558834910431239489481964599189349555260578620818522811524255677351493408965934560802861872439266279147765810647512380918984887787279120774476591348898607289346441082925683787943989511372701264181929440735049350196153913766704300007131547890876005876842120053134781919010226413708288360645494174898436738925442357603110440040281820704119764571065263738884228459874446415962276819171478295860132203503306717364821638102611471288431666111856890754765970369341520461881942295561716845744158281722857887779153827542966321000906053846756651353912734372344384394535403010188472754404733271540798453565171637952190021301543651809320773924537073786826469385367390424428024334309398689811170747794827176688940641127870574747603931241960881143144816199560462597281485223925350708766133237981259264229393096250942686708493330569293009243695778648183408837908092119263026673709610460312385551809249796416805329130696428604245529082062413765660123076379087592967639284920964097587782942381086013258774572045107849535918887713320769326418686824097019939723891391831099502273067810142835058478413985345266172863137018301685803442904164191252324362759487065570034788243966301089572089314101714448879249315531871859707993275481929651888359353800014151556244993416677887028954167009321627656381822447902577315669904042042742059033273589728646118759820927253781368936630873616336511048936060398598016486429943245247919258415729255319729217688225407352904821148188919960811552511126319596566209133640928693196016020496841018628960187502691070752755993510342449069178532606689197433244664757577090753456488744795296355032958884207914986233354460578150115939779807146801100051234745347266587868065983247315170286026935939308579001451072951571518467925503427031600349560875959506775824327848924553414244643501308345122382885953061282222613435803301941014280676828887431488990117702768687269621932054009463595967013326417835399740916066564783811780653957056776571521331884315610839829438752107477616974175595334624327185722917015066258633669351907081129173147936484872036965146977344578247285212408523179463090841945745617698971460357227366045692448103780466883766545245656792432557401394132856060114635939992531049725276217720751786984788299150902149938025197949801160165648869133214683372476964271823812737437137167396344961887662749753233745334237128730081070150916245561659653752648080234979865363925943579324936343333495060923742231279206325867766465586101270049473712444110692085998689940509312826971518881954243080111780690231462629342559181539881546412450890472974285182497487003208744693210715757874952943180702313448197615348181826192785758241355388553627871963236993345495226380550459666846705934246442411691456022645486087982262443313968703753240840987983970987723227434934113143045002695065961377561096876622114140979534493926054161259418147120662874018455778730274938928056715122124740716797457277344930148492534298752183784645738696455661799012082026672025457783218364396088189546973322136769078425328698688708918358730530261399429743807703389712221027806054150250107278384226447880702527330798023433187189630119190352816594366347163643216666183237845704480234749284753022982817976449896410043265199770018067785273293075675618255707281541180233127987952831160239194963575824057078359167819976351522825636773992746126283629498934162009644254115271585810858772881397974242135548541919647073761887550806934072953257858280932241326384844809369217406679935164125423251942182298925671798799510239295609279292588556388197069647524234351751919203676007221707281672683494989733389784651223739599494629739009663402775077553461502111559779013035727169023139434679874284570186523894169691208166199283128956975590698334269182658713756673372643936230916134113800658509306736925813712909930635490704552293397871747303965501397222083665177572234308317732034905021721987895401616654885629709971616844832718505096973420888924708316903371462055087829889254568183233089011381999280057923452141305718831791631709202547776418435182831359093604691059367524848500684765638045874912744413013193559279319232929839557107430877864565570814952076951791176898107217531604867298629562028954354774362569019918909138845194193715572537390850190009339155487124303664973841128819089745738131155221788362654407312250637313385970320179451312172935064937353273440028060565705492823229484012569068361110875171071448899099539651557082765485839035492161190409873275657342624114917089620267509082421387488764379068182412523820424763262517122964125727445624379046713397354190633940213710706348206475487306462321309637446491972515800152042239062916198781169140681260613063618465556241263570075131159294578861746986790488325740935045269645449953722322244129629746597605123836541955299156733164976470250947924448951787841902104353642594034634857874923194221862831951740345062380503790108666690808001623538110310686258720205875871167749127883971053993211516825007559122005939344512297988381143162694142981614162096376328469762816091765684133509924373528556280216490297173710048420424146549396247194865490811275247626938964875845430528371619522975656327926899183521904315654482162559386684322068350643380445604330108478947015666338340825576093338381011590890573814753818757591857837773520940379332436936100032804742328519687497716119504382510002023288334893785007968802727725815528595162100623689043441989111807796395583887275484031033519129788159380923668799613837226124462525127196602611642822218630461004097626939347978391529573770249682607935078739582431860618789493608983044779153800108770185001535778487697497490824668495812282447456186986336621924802891041290422488692495762252274336216014626106824917489283445716836250766489774007354738962876681601389652246732393592723657475023094986662053320101709145088805527504254295280737607043071899480717897924485950295570870712670940974985190408514256669287244835012641281884882806221727564928116919448843229839939908976775740175924918255830361401025709857535259763271352458542663233998198264863208114821975614121938498976959307428937734766833649902719645164580246044446821151144833527555836067078463658165729859798767078528999522741389463468833933677253669598629082704917607192054878434872242394509051759825711512262672788121112842210180002625611028852968416858803339769582671684220704769957859237877592463249880974448373018513830530635725518136474621823679125490995125590360924499357141870574318998769385080924123585077107192295064234999201750580999136448817665362048148752754822555389372183884907725881469911820245698280026179550719428029178355773141604390398282116727433463230170185152737014553910734829365376194255170284070351119603669657736987427116114924139297815929638651485529347930026873531845509212456034825009287277261669435421432403756841977796346862655001661028274800728993629986046142113177056867537313462326896982946058584017540834584219577500016780424244900408379067538772139850280566230335313707215362817201362263604558857519031536496598669183969966567469107958090095785877852679505087130866528008596522712381755741496911645698566729407739409944337665354404471707274982311185522460382921109945830348179179678560136909498190420953829438889007148067910556796931310397534113138084540225041364850525664302032293781068958493265375457338669655661141006743481323775050266136795734188720098313833523810534883407830066869286684832485495225144219891857242196241667699122651034327666832249133857226973129736755707276763696754159189198265265459996724751836011924907627354961860474002278931451012757664333631182883622857985753790633992338847754532035192599276988683563720189837120249120275266185986730301169430264781846983650653828271042861787370850120967369722617250654480747407813187669762697627838726870291269359424239923190200000882575535481567243515807306530119141838760261884260056464185999828761652508000446280382995785034125900070649775481818116424985936772134964037414923256625972975276292348704056075559625307883376274171243730635129049905617482885974726187744418865428311145519914696713465460193788353851481488148445112918240490247599998814982926271238427821418868571409065555290794164265725114331505279504675589733713975492570094849016847579116314727341256400430576226053061567763718652718323553343980728296968657440512053044311940576131149233110452753602576737903913203774088483227424337363656401769219877673603963352135687642761659932424511971550074713530474925568395651429439324681459520418603941153378517018779567174881995501920611145638525509151074586045712426277564194205204904064283042719732377691536546907713971000873757939120310762424122181918904788096041846817308866451688055285133264724596853201010809239061991605554819772786156990164643418327460720459804947841649541062500428132166003899287721800275401529971106890411034302336621833208939421536277885788583219344188629536030319787193215118804170953077351678327425192617115512123398090385323295033455151898845290624630507992428566658431485507066939220102900207098410788303275599830833042606244830406807581079351339109757922059381956150742203164241149855796746685014465954423087328592012929342149566199485387862194453192333531127513488167295619006254984882561171743098772581343982318591690733123656120648798622771728684814652728495234687436680528112771558572410386801137455487196375225440021221685824730579041266021717870647091185373015170678020151618025253408680225795401859659922729105776287152021436250037668626610906349434318307692627060412087811651728391122444291008078146084586747917532395860073794115935574821410305533263918148992171280900396361140804727593462574972208261513295498540153132647275435159177270908605664821941911529800286002883665696882700342331051235176420627843727290916128676173567755569268907857637383449084863823614162050556996407571348024888466192815188542936992290201409972655162449728684217572490800764255823304980293061452173606554948199217351494991883839337665621468523706703432142615258394802171558186901843410275903095829052481450905300225485609445898485331485382442788447427636320574529937686724120694139692274738302398951359143148305452710060011980006890622365218467112033504887511638594493021728475028357007553736898840518530394731317026612858532023798789047398893908361681458910837440896094749548942741026745598710455717089185826651602565340671345382105498912453810265336966157739216020962268525325599963084783462331242668508065024123001123600474419420564152511189469795930746664730154259273255455699167597056148408108020364460486678961099215379939266128506811943207249933042395343594256586069149389750374752331319936137168297450824311975729239543789836869747831433617453975542852301456457224656387520237181088281236772811612711005584116961652439345938207134457564766344797460029093716123755481546756929337839559005153350032808322952695543141935811000132620019228568496754398505396861739580968927439580440009239656228873628912805792223807805379933145094585189616438770094194499816036697288096321701707665491100161661659939478346099629106616612008379053953304331944296460835275828125321408823816184319052083107713641169600869483420007569649329685105001667073607572799867124244743347904448019861947744976597588293832026701852354059070308650676343983778718928444778878872152915500705804464102222324307526188297068311725904886919001559478154814980211277112742442956235033690205232643250481667289390807597448761550329934365921543243577091029508215205775598121216033565731930874613469639860546432635857699429763952410054607021558595768343592773034814035115320575394832417023131567320985706631465686985667234308096996435326752884597219522186071699350457067484510716530500145697435421354213409004560491929997711162378042141758633580702527759007019058226269894769534007016329423935708468784856459241359906875851154353382876282802460738100095417193498217180990234519272147434897699839366620612557825941410663830882485876581093760716079767228477995835073140672814329391085835485705947891520438135190202182333624410966519436398462330107104090157553344181950690501860241669540468072374092978632876167272680664389560930196609753619615126374840630604757949716810113605617542842726110339004865045933550482503822690600085401769470648379371856756170463622475403039490770465853307585517489941263226635531332281341351362748897264823408817469915237403359961422520799797856660774022830057813260897630532659580670732953869261429238947548023616924973576174566619808842559721928726588960573355240177741979083612457194108492538725285275894435434341649448728873500526398213334091240180088278506167315410426547326579774142924490897248386379477595356766145177007782899085165472497525224980779161891604458456452522634708888164397301402745272973086842439859847117298957240654706665732462607773291063353860442602200356556898143640377823209560569858986502842043223657459780227086524316944746420200513500330086786888019027607722896121804890633455573368345357746309734458061402628780874238505054524333784692663796698174914459551451593307993795420533922166256041217938472393774909316247155011804086355976675696413039799716605742923939866198368567539010585107819219872152010025574029647045208784205536632196736278315602932605077029368184064224690826300368950996238425101482511851606829676631962300168362300504753585592880929478686284102092668422486276673040038296868949023390241695368530928815920083111921795164125606672317596029358614166423686673671671257396569617283160394724119275454612247870224029598216771390158106093219312680831873402005418718895381103679499948632570748087435110917846959845261364918937620517658692644052962626244429953090719857378519490745580033959828808644994600424791893155911741596749020104840552366430713961409216784345000510768926437529641480950138923870098532144361761158946843662131941400997132332982556612138858322982703851035243122818736745795288630234841267862467415205131629705434230569533424280525712493842941586972673202486296547642342105190226640748679330505702758067626607507919198060217182440521938852268047387849615771062589342217574085745552960597838647757549490440201982968097363989307807020890415150170398783350773296732723454139190510495371816569370043541817284267423441873413342480421974218200597259343900124658064321808082511644343095575489573972830603052609472898583124293585927316472176307674403087846183447821660370468299224843127700682779787834994233930919352315199011238225747617302067088546379557896647623133842176289758322206627321392694621375521167820004618891470110886926023005498027954052007064914962568083290335856881075520313355599618234238735347948857908963668668984936111423082943809433146604220930392280665615116294822482271767156610479090812978104909094901884974811371821853828602100547376340400030647465207811766649591379434601588963891054388249247822287327299541320214689596924035661472435990135749891579194118809226017254994439325140783851426106268750883721304228709824960834151644151998901037972535569288383137728352757387681031690622838870322851540568969191749359833151194180474147655788506740007184684096416549325667300608427128688699558257587881643845074374539145560898671150041908118261232104741954408684582452370039381200732543930782228738160664134340169879562886125478668664345882802245914120663409241797865092224971084801098427925506273299915736297992373341149589390424536936546363509981036991146705751100107392942164688684135478403189802690774657027868200939347314561506520573269997293300145671162711311376474685986852584087376298267264867475169256731286646024475144473717848313575217778841815670361546885751432068966845132546798421525528750700768396182406370257224685608747559344941348302867457233895099064174327986150944588199489324185605652692893740438228757052839595708337507806948892722808792739780794603328487362012173235729240264981446487271309565379497884463714889401925980991347001230853879550956840185651850113977597542140788294499364721235866938555318791728447391906261945805103536315558394054677788359166772457046311011879023320326245288476013935699412331017226803502724031748957153234200715735845044314239471456677463219385116000777686551666234956623587730076388091162570506650261995671741136480526414414857225746675790368706741834395929554080956487305419880692658109338517135820913969398475314409635870363719751435112765901256730020399032201462086191266812379213697871699719736748100169195028657739929856347463585447565474768568704448965984939623490924824617667332579232018565616491717864914295662006063896131538908397257373137277366606337652141070362684155965907965842412735395568875503419166354465516841106355096185368550162500174461842640041027934357740666584010817051511549338819771200760541947267287683619733080142303599062717520110839481957578178718139440955520330157108802929408130059809833835977584664156319643576969294050599898162608714541708534797194665435286748129517732051978861887528888266037184487071250768135338598700499372821141549057342099762051031670149771921847742360391976441130224681880382055162988299786502873136068953333019670623496895129545871404236516915222026220067925807678687039784304564155306625372276649741494456711430371420358330964146319458897107081621601923592240991864578483798607411461763131330665190792227224732707656326145753860082449500947182632694489666786263883017063324468720378124278282753388022765630242486373994229159546642964188648112402562266542731189154625241909662004035623277059990802931504822352222879909328777910911933378689216850773421302955324747864190212491697168239248496056217541842639066854865167786602558614837370501604254029514667617314774453454231332164562670074579662679903581882657059802265261904966569358435630015468906362054796961429745466566498992248916374782294926002126049587855328946085934421329959584242740266676209731637595272401190475054307438260045858192213148050491709568327254622679941030471351027511427023930985797619815769991395646432731753006760848720076824501937999857706841093186095835382014364687127920440125719521698470822130054817671683266727235110215183059955385366903301746395727671297196066565550198628049042656661501744511733330726243450613316021956542967988566640684794392050255384457829422271327188278158932565612318939679111766449599070942530161677146902086883408004682093342280631292958474142452734967101207184389080490432969313683361257118953374356149064760738937755225695390498707747147346563216821387811742525416289381825285637909983611980264163757814103949680230105395365901144243397879934504704868765974771501382951561699050613963071617650383766663463768397171015097445928637149862788846636383199345786049654820640569339579653654217063987890307526797441158281447642830389245459623962906788772607700297876644708745261923815423568132157234273545651795971227440340014237523287879817426172676466537935662032351778231878522270345370520865801559547371825517073578430758419162973474276544268429991107124272028321937838883113366712836513934589191235966958428890289825970993390291735095443412899030488774596149721503213690585583513972174100207561242129377039920380231021181760527925160162598363811089516462320922917995751728595529746750725380404353308888556969651884897834490861618867192754686708145235426994724352885486876845846268718444729471004966200192182040928391255435571554536480380911805452529095395112432709803842311259397154148807868117670421450938989302459295126186816854505203124641275937500735022169343774858930078219262380949191337985918304539479611531106276191449676232883432982866435467165501376050058498910581910133160989515461083610469358713482164333923828319903208938421179719488711423125824376916450924566599394971178659105200622132100834030890439270140661060939695802906388959180429863049069475106375648490338853312517975147803077921073938974236230007743061269969738958656909270895133106850076728659704039988498509661951538024522812995417720214047586231667415984857498835785647214407933389895134168850819202521180493305255409791269090688808630407884070728144814808111236763674041222427316289010106648940908233808758498937712620418670025977992536286041829295228498084041130199323241078249696548279221427890366980932580302998834888234031264901037290083956567158106849481368131192767439076275374534367590590214893600899268906602543164739073949801765576282148217535445445074898831028768382948576031372011626341216430376890028118788847633139433916639346248376667323552025953134584048223173743471956654913768043649021701759823282929998094216687771816194917964056614031476712414353068486155894454940053522571877850551605961279243948807864686028841065873059620308604011002757354743155683681934245922316775121787558360083395654280530496617812296463906554166147531780681043231948884965878739000616196157637674212337064985363114496355055326252873457360705282561678207179707044123141177933884758725128189916702603185379290406674595083272244283678429907242490850951560360372781980747275016565781631099520874560150667020317063237066201149395524034641885337689169599764908313559877993591526982806447030572444758137178807593033981298437520643786984786628026053400094610500133327900922130663322199712531262739725698217520985433306780828726690128107731253138054958616453732589515101603116365007247597075841003362388156398874924396548062293675933454979967899140294767169444836377780966787110538911569898576498966510725763957540894216458636792607989991122217525453642398492836124068048383531239928331650962845504604605939306780670398503839351127239827943636898222871883979920614234360806415759921321452603740396119100328089798411081895713809659955179036280155427034239089284881782620391217428378946866467613792014948456842662524560668436000232534101702891525785589999400405672794349164726164029989520142348776696555306944383986962386477523800760988885203333622470545043405744133806998647556140551311389228410255814132288116781086929180915296548629500048724496284770804446538144853587219090967376419796572398913613953095890374747197755571604628633249176643598933067978177142542349456995369445918660900877163648913711335647667008369390378816536314164048481248467252321538664920585838281346572633129256295495089713142799733627279551572877353001046627846835729299991069156216621861594620063739260873651100159849981609330370538048762553796062747453913830097977081197445633606815136954528258051748487840547584671430337738214394069930691429372797105851336604576487608204365322533653776686055292439867660311904482310725942521171636756874027719393496381681342968573529294601767047319054851250141008603409274274803222879162367553722038179373073260904675146979984968208064367553025517520575417912454599432415174608395009738123033945605824096447057792008952465295014598008727604459679806725987844194594118996417713669538608585277570357231276186165569371944339580269487856127159525997651431754176737667193158665900403657247991654384534207662051193154321798462842779058928898116386574443042600280532117059385677653641349411112524594347359390159880491116443862926920308208970353703489817446559310104255744155424510592277921143385174840162005859553911924860315843876180230695118578787769452506011321159869198844663175249267693710916779274432593799436898785081910563858273231761474005544466023348195810938558690401297894173189137411326715295941129551444691916717291424031609768368292800154169462508901384539858601146241390492818296621898116092675993866864207193031013827482219924533914691352737313586815458578097362659036670797595167317500312709027183132909561597527582033711504188378796997425215202827149898724875169473625324954330342880009895763753937084095133795367840489633370218814415942940826306709184208196594607307805912675773485489464149751598216923092496716911516689081647126461799739950826101267419144289516897300366144744535925094006056856242712870385389824266532809860597847957325374484048769288189631772952644211707863131259649172477830258762409278123699059765128913630179466280424590565805297974345666442623312126872594374808857386427114275469387358320888712383621629688136043516531165455384931056531745625034371779725285193160336235363585944356205428735000467031724189799712479115674229608785051029892568163197781982000660102136598631562065734034977220349379553562820161172335048398936988036078582176790485352465143811688458637816081853370345970345405402012555731280769611772096602133740770446336909652441879325148028136020496262736305511673088157989245161783922198868178780456026098390911606381562962095403749802699713594060267512968298587824215587415101394192389395944272998703465584378685372432253322027160301958544127648557844651102491757138656406534913907365212360883340188759605737494994849576195112905428109879733838729475858036429957873060140828447409896933536339427833195827041446648029664426599019340488892961809726261297871543459847609164951837709763373731619632527417318787960768055391815937528630671486504787195960924491184394888700238628223527816993535400059242734540918720610198452109396952021717085110072414335199120442252087733307347327133140122932696908706197877649438047552962435470259080080927978719252925263417933957461616815656297462456792618657915869683800992493431580400939208955990544585590514429103521502888949170171081105812594730487362227786246909591759339293442007828392526461948296794008676326354921579868108065545864234013079307505545280922258794262166425916230198882861992632947110135669722608578663633113239121252626470288462726387040395853710145046177466718396609694971419095220237221443973498734980072696463542485711077441219341143121640732189108779929070213087473555481914619358275332420261909336798804674496824812808688752553515550718159291379085798652174940349851373561052527797118271432989856468130537270063100826447472139936348076682466818757487854355273023861136471638574874054825906966989809174350777336160134834566182558152668209391785935872313858957445880388160506005016805204557514818601669106045509966219812228343423026274108593982754646954567798458761799722065079172552693576441765466288937712990699298282726162562414994358702374255485277344728998003795777842203664459418232894896240434477139960299824628399854335251875670725979828303558730059292606631620721355111095027884202077407449006388844098923231132455762815735310418334323633163557802308516608096480038010945660207532817015089779765701375658092076579400674454503995656220939624748709385148690151773481993882972696768631983092191642812114510138324063517678580538387691779231254957612301777623462406894835971049849960854038775633422444281133409089294492632387018977115134252487981531210395696306752344194643431439734381083224170412930777325700499169247200915330074149518589623590936226772444897061607060359254919267548327479117195946082675430246946416338839614362989760930334194203778360627520192526431934252176560402529028652749411174750499455322896348801946957214901118785080651074309498840304796327132132628583886769186405106498513091190636964076476514922539706495068998890418948974798961229568250249233158629201736494048029475083163041722090854286754471967916458052568684224072487510432795848795221931739127570154156202225146028068675592134601418016957238394273140688114186520247768492217033993100394186214091888646080957214354914541061909959124654870283388141867267732689176956841317909417870576289901328601658746398490358329202269184246484047927616514081597232358144819470859146325824203093656892029328599641493424906221516402789480669426079262682298025077797991751024156056283770671430278026742108945348665570436025060082530762783379697957086807721497339391544205390569930858026647276217355349006608292917532522129644188405593446019672256945301633684211746832969333582028810077728101265055964948512868072090589071210669633223655831730074603859502032737526244051473048482302727915907672112927441896229721734227809421304516237569591475477038716664566126545709095803441874264433990663341171766338688997401084855415970959483298420120155519770363358908005674700860746323368142760452603858348640826904971205173092319677952049066617874566347473731147450573053336197390387065241767672655558636055109025056548877007634815382423131954970097456477145676391472041370252741834625410135999624651642233479771846762494836590744277050542845000784686403443633379849986455572184404827119893905515083993344812208522280894639820421595118817214340997417111190035526255709485952980116512070359049600177845904335104065330903069816016093487012310003913821557437613065591579731249957301677284600063138701375555576247106793255489175020839147974687731772740838124625785596672177247958759018203436896644583652845388831299160946524318934700373103416360568115527531233766011527142035217336078451209479495903891298114555288971832088368100171706556652580988385333583668672852094048499932832116384407778925132112879359181633068579246215385184380983574043099729613735567017445591723984019356753625898968191648272943536563181218605411037572220792324167824363331758227741425765659659133264553087182960768875490778008826386510488220742066494296231100425886651841666932781078095549259767935412295961720755406275432279514565863724357267387667012328408007027235036595642089720540280515160182689566188686430569186548762840332450245357123036656595123073770582485437860908931001035828784952021697836366649821810740749677288362225521911528987512168380601197014892912575739591595341028050978304628885368120777340433370064689735299495528175470175526476610105652140543309319877374614644622206740532761084129500771040543691212488151452850913746492398613757485033001771717045676664433170429881687164399883624653218119660198188481017794875542655571270515611834756272954939975517124541387967918545736827779104198049567414472580047882918656944459512678278307399624506908218216545135374251544380959684594773886941559042012086455972256132735094195506530036223555370176125134373579114191985198616654028402229523548523875691013886140171758808840473273017305648611273194444919426334667673137133806438753043349334510344582439472566243829179787562714703094539650760811010838922343301387599684293881852268450924814246562203995259432277525859358002092461909492690928210459142898297338581749877780469599944670630608827396894188874890454256814049252336776654917182026099049528893090666491100191022094872261847110260981136925929618590726908534923533763750020105654883835265882597219550386149314893559462320406582985326440953097491707528427662506217623466687981137941537704163211825253827546721027106976541031655370305545216003654863049024664774406301437676929920447668382462905066943618622937126497402685488471372082206780764089756157691872727154796215047536298477414998380233225427937102547103096465683999978055911513676361769520996383491366771446583473658516280254058562720770049030001870637404970689402271340437677843447760888987276184834917379159255497120347142543915985418726176720238635197379941130421675436624826492815074077408807518562261090809112305095663108083433441098464329089409607641739988632824265148315462015928923330641398867007997355287165368644499420255716033568496660928964113031469350571167362071199193356167566305865273392548746561609358633592465681883134361765493657842656072633340968612896164166993887707250714309866048576723541209523010439883128539478051258852889803508463049045585030877777334931670703860444543763552149212479000914547532077905293310245233883393900661290548845008455806922972400411434947969246977946939932702442842215410566030404733546788716690192760532949574027663216012165463022995340588429873398729842880336167960073374361221598310090726458854398832205531044059599646617084767621776473642168724027927426553945936570635980976427565908420452112579999910581850637864190663788135653852050507026468274473588710593721264685759151770523566467433491148766609556004879873248265676913875721019147848616261761110377679894279617504771395967979118114596291423136134842724465415550814824137133316997330356307973432001489476806564393360786812287827823671546030241995475641814506949650537560692776038123737521907080785259943120280854645256703356077521710343934480381855282435105020992904795207962701601844365912741182354939993843211450276756429103694687977595718646469916571951485088042302450848522854801534868166167500386817497825166046758575283315471100803179341812885764118812261257350593564744228758917197255030732840673687101522744476818187621301663930271759469708909417628526439132311346888418833443436025656922063483489450586854341509697574083866444454300294056579313737803995505424458956886682570358249907326442493698059985886566583874406329375194919087316810987924827648464513338415216675025855878059609459169424709613668677081586772435821503800527925999844665856153476937360704863491414904977629782165400550669490664050527698099775117659378209091802096724309823835838157135615432735989299204340692751829564214314865835845606027501385044986901045479865060191201732580879036519657175587237347122642608506554270144985321698107313294710572934264951451608928054536852166093843779595881184539700955509234706977614855096433853724483009769960371702551699517012714648068095107847199527051884108186713479067029218823687700001989109677516415450416689777205791894906668106354520147917371396828948343400088076760856068429787123946883715413849656472791182969776690122275680719332933600540767085315374205676107226780211188926808135562341325222327905278160865204396175814065418533476825239987660486672212476992657169263706007268654168315170423241301458516521333533535671473565208283797015998222866780243474987401441196960461934759676982911263397996724618071741952982418183156182903484014929144828402031107907984988437418194446886936123932745871315612692865448326462512257407548700066669120474418971379757653884556611544950423065225141971922437501163899845189213907358846199286393646592913529923453350966639526708653923385552545535900225030674359877551855271999181735862686016245320957307681373812284532504070872197829487421066832869479314470939554259080594934416072157186803407042932521594607604009340391331715121819312333119923777142383572815100586794114825197195094928843225947944902708344141942146352102105427117088784518378256783130847634645979871508326696650340808195272697364816949761073784372282365700870066466000665011141079693937034780699674310343065854916549491196406732014349161515440855986717612009372668054811787479734830196295369408111141900110481217185882167443840014975860104094807120720703014184627193780868914320605705193032574283869400466693124672092020249943964846281870335174713754806909224189105027027896776191832367617763803660995573414835885755841990855931096789078941686317649626313274444990232837182055712203709039821430251535395030505167923179038511855010035463405824678857601909126260828658461720924227633733941530013835965140034845259368926465243797459794928937206977530285855059116604326223084259868363874653752550427079283774784975827330920255232259386093916875348058753449283097880168425899762318350991656289410707968856538408106778102544107203407050042866301329987080020320103379658774543314612912508470471862923906005436753644751300785270892132071521571074509002733680136259351583841572376142935778228361288776214866144787843695530592980322125805816211358544157197040160329834286337956527947236058101845731610139336720766492081668781747844660023636100410809409663550732830443000259250079670683750673199648817062462894874466527701416483591001366208311595803440221460492361557043718709041043920585233187383263076419990197631554130715420974739769173836538778049238654164002105167400065319213141619643760801595661845002927053818443067254952778290777981331766616969384503910550479765053244328448948257545152671525929378659252741366703069896319688774123101986707865594966686575590326170574409699405909432802972599478263318350635420130001860256456935540055264315695556476076959768288607877229680750027431227311594309906576848257691959945396148944469466704685496022724708861553276231731415115437699790355810003820281533749769375990099179911690312518620522359474064807311793376735911649320072424423886505739485743488613919510244378687162324595673691735819039348883667413559638859312318091558998111110134571861927063651314420252184197469035667796899936723611098336020514967514699418704902766883112964598264289368845517912761768527773948017425336708542586460606634336196500362167625567015423755587947212660892241849079140564739319078225437225589977562009561384980838590825998823845435652736332526523209565299320066054099916728995487076678325345172985894046645121136567077883548775223984293460523247574626640383159776820135048766662913525763394219638203297951924004278773133468209041380639513629554628103782485045169118410053043723857522569154331106760916171107024340692262671477510721662715713268827489123749794585092968271212913544835149367603732480440584211381988426419347718462365343776842702491719540083206888585752308852127172061996030731016428073705258184135738128406145477284485561487967166151625701547256468755600228460754983930383048261269433189970970261488691769861818367321545712977329476018638783569888446994677621562655202800739140990005782483003044191751389989901672741132364673729012541207449823147001579857235085835518010495058193330358401620358511835849146643024191744163486589459103044694501251732131723702569170210070066564188215250308831594621956878610666181088056575133313441614337125443011430775611512984600896016717832095507255174701603556333450800891951782918529533094389231814533433292709348509469461538926935797973502493324073078895793780860030957556378145186347144288149380415185049093318114425544287180494770459839965565810100237919184122757257167257742095945221472981774319530871425527792617291386472206813223820176270059872775134130330928166271673102840067217814499240312148496723978475856804567532271520366051353702994935785176547481491251539558128343108712857104200119547252612867808768490151888232541215509693982136288284327075685507480291353858118531654892567999826226608066872850756926963080471087604728854114916923080749286777057503646738865037990602180466495291604398343331421333063600992442806546711805230181326221965824247483339739981849182177243790708183565424074690495876738318901726036897110046014363741053207375385612093706788021610036123775953591838148741105113159941896600325205439444837199962774229844710678018430645461541609923846236894072212640579315233408317172509507439025614717618106782059293264717850868359179301871348975962999431565957371500011487872353823597820950813646071149843196705464537641384472403301307527466171427494064948609630187197899761315630481403921114275032845513659323805390423053782940772210404974373892295620539216006846193723568000110864493006739092421419294031867613824446324339105504589465980151010008465155687475888761956073531114570974156514588464412501743297132152164396418677664714088957266656619969542175955061872025817238903296546692410488243836746093271154938017606403937102912838645328804719635332625185087346476909494727601792629212149987609385155725049515437412377439923111740514043371353757714906941834821089371858937054775083712467846776168687093949348758490728371886784316701228951848543877404149484389641815039400396246179732361677573988097451261553286192187758863982059576844784567317837675835124689954671831742675493920966159132905241995291753472581158350191410145246214695454955032382162702450612291804014540429603764793317251781203168155295300275078383345753088634575527089012320864236602493699275383670909386623709540468803895895970602752764187999196148317024146435743708290210478045451191517173558571540561436169652190535667121134883661712913213012094478120245935001398915679082452355826778471146968443716645959476248602242871914886741032622497678949576017197651550994792972665221738237013818243626107681588326192657820307956116651044493478519167310731420983113772858274688531092129616610822209351068956914072558940033313576335704628893986552650774665824496408334641428435172312020485189589155654205398858228180863763292733965340198735479328914184610843837975503382489499966791106352595594807325086350316843985426273037425029249299441206990951764147765289935307430446274103012461686932231314086239473217377329713248578202606083092220072037742050426066105583379639747370517563584060049182775201559711347253857773439712778983750829555743172680711981660865786040964767973001045651534136219194157719612943534215253645736531633165976100800612041041822295592255820762208172347340767219257603395784070151194557323992390432852810649342332632573582164372273318676790246810091534523185207926056662188803148365411869742069544891676803437573580440545847570528965634718625716663416527980481985072241318474959616933111933975469421562614635442786593222912381863039926655547081712938758369011091479811075891427553065320173402251308557449173843806070447962648545271140309872003934687939576019123957971775443021002570462973478570596647144557484474497734190951355330087192645362521278255953652728270931929468808146433188794035074598899378749959065247837695280039619709151660031139672084322938077277318237301110589563034549093324365983897924770580043227163831810784609341946450704697516120172984577596583626927459171029216037523234158750452698656480381206383375088245940915140235521741643189699534524040944000859425381651682648892485158330560254962352336685770435607651738225032685505975471715006304147189353582486231048054999876916463193850310173514906332545652224272587516368238107557557056197291440935638635878491383234836213839193325815564675168360767111453535009975565491148929187787324390712491569021328871472249680545052535045110263403865286176611925833942228703559149878109897207980755987480167800729666860449670973806742329565630073811947357240197381108397054861951646346182440118546167577996956044628104607197004891102012582389937513602921108857260930515222243281889217161573516094146120231393970637430887975963489999403678001027376415996639451438082788618486545264723774783708390862883990391937559923130209252432747325900585452546531152012952959818923349815592340408319640533454109852514786150080280323593514219789888581683369907916429004209134481411362358009183929295505530592294144844813851496238790915841650215643343790375113039808806925693534914929077244223643281224759598297791770543714444375677167151259689940866741507013010554233803777695607491611559873990107616507668900424497709195090842018410572010540358100934255431168597349446731690034957660031516565853736589908275493962776038717924983322195410823939236578774707784219592976172596617814922178661932102845249397198441220705922707751578087705681933227431523075451560377285273766295095917865047379259691286902598551566867562350360969096090578112896044932284692121890865786772683134081367653620211495380391262182627204858355139801081457859237619814924676595190014016754195682176545371311764731933660672426313592588585856639368299692255520812949078985789545262293932939824613246121449357086323218941226577041471126818113428480488446012022234536037455748910410903045436929528611870974278673847029723102027281818423528718567241840124029818238528039394687316638808389806475519361261162543103774068815038254612229320530624134112976549938202706046301070838873765587430442239029180437985954624700783691393940171948027252446686639537228070536390359785418652804634732184230149942843432591487862604984910090894129058366756464624767130746165632849626779146181109069513513899361886281359457417329942385129574340140022944038317846212595121456795781310348181933853126845195610497093994008159944826464841171443445728488892277176924001545657360747934279590875577840025524598688218686939672255806562976125882173453129120547446498866632409455906983642629043731992503288804072968171593386982025842159256225052857135565315637214117089507903356219844584208039564343055989420145853715729791124265893072958318407761923720279640364448383624628727981866917713492837468140446281832618594958977351154788382750972868692375022479926367666617734915714631496198502244028064347442338639541708896299548427116333931853928231828868638710394007776922585496175589220854044117192690911967035066165935785125074606971113865490279473666295467575618069978382704650504584217135469264089993888268897190467038499671573197280380239190199552446857115325061301526261076892816710597210320038719434907975309041065334845972115796330453364122782755439262067852956881676793762121674924396572263290978177051050329472867471260159880818141268380973037730043541627334039539924850892397706767538659780188446796551735903159476088435662127384604061361880047520362040626966442336793344127734539200634339462406464172639219862951554710121107105367654918933657233098171402389321446316580113900982284608757178781795370995481793988109742473044744331125523785260338818260244879467356864192449196069834115203616813026796891751203418299474463108704844805630061921090089230333514103393930486614704629186683607395869960807020239409125851046900290490641667107726203590153391351927190231526778556712340587589946167760588684649086070932928856938767437375094582972722660014490591125100761603521389214898324112011570700812155935040124885285910384037208964481882688864961881046596073977767528016020588025765150175576959696561678610958305042216382314572839219806682393671767956603082733908737157801772346417618954139546885568316367060532189315536409189407120346228740119724954269457776322085382581934415708773963146317617220184564444826622687008733876174398882303477677070142768890363635958327745219833788836779679121287835930103686949455223958100845918677052610908429674039621186678019235298802741977031118606273093982882717866333603784715095383660454726264900357052588939164810916550365182254591497534857322061929625223322168082081705190879597362236485234908492885865352599438061958844714382977415134974141468086128475816582841769142107521242606588447208356683149355083997562121037492074744029234849877236365942465222098322586733519656978731830619167481248015741471128901396753244181575069152069450391319414048372639129473304236600765153925380956854515434943767264790523452295593796586561574988246985302878369217970022045219981066028950351784427515379011312997308067759109457994136901914888119159408613490914331663349541453364162459054867099029255080229638995303894676314023853384206735213601001421836359752226627091153229808704286034201618128866795164631380118883511932827136749895797212085434809484364512181847075734136579767901529429174729628689750692617834047263987360831249867370450755033350968368525314727302142866991905729068040035872075966696674003380993988760236671512692510921901598323150809264686553234367857743866448475238579854460904530923291814202494222567157388081810236686333630442857898815440627425984049996155385361890715561237927393013119132024053111598985641023254224308682805596151680372908082470943949318767201109594749349577684204763976365394904774837614618246531034037006285194152866239707889480152709103271309867747901352600679381560454666272268473387997914563035456170200394926583834081294450965739659450647747999401003885150989524040055230840253880016036600798418961680716637546462440046697643240158248758972175969542075953697494041691996015073208599651218685951956706914786449396653814553699285585274660960923351878199002953774509462358866174174186487346289547082983361755648032136862218229250630478775254933018367771728102901932589697963928354273079547408235687390060397946305765395583308120554606172746075375045189952458511964943296520495316875900284394214146748510560271563682030543541926680267500205687943779712947542049870428645763455722228681836660293479946902338628870623020061752443981814390065569821307714414736512318862948549463645990871038076779132031823367467538430277393196169476852976964616828443917656554686282112359343959414816397962293721767737775280694631872903923809005740479655707785916335147395400467500623583617648373054084931256729115701637702049282530003072150716054556788039620249061533766162039038123715073854976998811916090601034900261928110266908820486031023879624051412821285610184779657470062596652534834202480143826764598025194322858367466891775725172751134704961141297438001780520874746278921814329197295975906096947780244295054253242410842843368861001316385117575128981230712975002496419369397161382124255105518938122769267817014870836076617004836548391540934558310515933800457214078370619306719974389696424324570904424537521314545261158505536853698402448941196611195473612305201346700175757569270760711727261845512898052877273328461545153456431787536651564215960949844992869935092071602975948430787066333287009305613571857134265278630442723784832524169867527434398600833207896310556615227997763289512058633948431979218490764873052309961318873729627740670187445503031415174276045724066492523033785944188166286357472614129565758675410031860941511174944001961712909449595520488127456271258945391572649099334310722847506020193414942665296043923491777819378153831724012361185751122842471186722021927119150245735963696593024018306472223341979265227651766125930304398660245957924771947652485187089357643123337850005468838636785269844697127133195804302055881480967879545854645115088094414737945324552988023671292538515147398454378346942505958351928316798493061604186716198718931150877205735696488235501412004842913414085556287647710365698991613280681910333719324989198857737922635178170909867291805239105822386282452576706327789542997050669277075291187419750521107112430013437311744767932648594937668806849934128909845551323571520429461162005809314554733923087244138230067838241174011289098539926224868178599574337313164055672026322121213641520099878781674543329463267643744665582554652687300497708786034989617972059637054107974298685697990125658684253417130756850206231534630972903293787811156930282372044769436163905797870037030611417879669651461011098310797684859124902922050428571555970424689216079574003946812347970040571978071115889459154722689165635371412851500601219719051400065010872496482964239970399023551751140893932375186196579166606178356193958459020609216043779355412710679409470693663765135212650256390591698123355508248385420102385850631254750066346388898954812389874529409099025892502646026687068005132755474410023744347925870849787743513950597860017844010211999772025565303839633182877413633712558689136818337213959236833892007639278296437248792000264636825753049278997002471763426079747452842684539149668505055839072931888058900735668509008221038990891800747327886560497903975802565393645876750612116820708860658417086267650711737276181745823018943353849031927394027334378920504757234985056234100267184980403794235127322480421148987806741481052925847592794053401926358310919914075365580716512554406582554892152591577164302786869485290666587923435031404146764431172440379013804920587179896230761025938795489124269182598300252268944038660262937345324528769627590818273072689941541500707960825309120860058777459334625701166222701016362450554152861621819071807106066335015227085709343423218162583716285859065448652347443756473579004332628421930362856405531115734969635781820308014406596323503299534331928100346087984716880813356682276877330716846874367432148032595619650275293647502827461112462911619692798751364964214433406294588764942683925260275499072293663416485642699803968077467542411991715338167277695397080267610566465445034350084463453975066144608633374291564427606389312407038881941958857073100840238302369801663721506748522913267616141729620886585376312213637238732044464644759487209424231249940545511908262511628938787618713149474887961373616792042229881319525937035203392088403032459867513418092060074382666165749031273519957372791559580777214172938292816694250709973241132985312233368965913951610399130811684651118460693168812873947240284713452892773024403830660006736911657163893262521557791467261957495272354279700501978788896502191011087853519294425663753968380803814590933261262348394031875885236721034180308296287451461701218189357953926932011451329959501314049671464031161516366898799744197117691860007160351758128114505776059008704354176108460010002144408723901158189098202872717258553408696370827866080906830791383496076480271160965274325846109830028579800822160066411240215078112479929612789815184563972101712977890971097335629986716503663480132208734105284172605786713977614637863221452242521985961410817186032762119262545715041796832131239386966308062555183982960336621932236366106358544417223037753927688289929733841780790395736917758862719224582441263852175806827653977974917320351860997173786248984163606048588961166441983071952974398938348888278792774318682208258822972737577988295051416582996709968954546513956290092165515657785969838020029273688566666235961394461676098525254210703308293540528464820251892222645820057047770926909050836272922405560550572361500883816912698268610405910263046397128731972217438651804778406448098994389799044536434362196542584269306847067419388409727208313425404081884344372981797264487745419849033149395250320248329491458858511823689953544132526393294734081891607840175479612742622785899095456200193614028083224025588330309295662991704237401525463555953140250311030068377965444760179211177364235776724487749755524987433315430475355575593415728182100189268543976190279698387450217616177308070353495641060058619496357252646605991342917317675954860048567716358374790068949293424924618752107446814231766702136101002992369287190962805952353565404177295424942961160551328794260855032692832519902904265321465174713338590907003625353648787077522795219997129828494775320024040732347335662632372594554279091157518481718340709025173887540843696289521162375904695881153135597180741041651697590407556196646538701044725947508244518589610909891595224462701114716426642522851373992921013155238324825324614297216211907882244846621372092056597361665094150580884293145059353849596513848596538554196136568168571505378766999654088874017847916679229731636807037264727243379783470380405073811041667378216601496188630710906538667189750036717121046463562051000307833682208582267177964568267497210967807414220572761350740704574405575706343089954559625439638276317397664938654978247545120303790833593759780111642455124231797221631691013147622657514253381340957314710636685766246522563049484388700695340468577503206328910081440751931574133949931255455893961977587295854435790651929244248049318158457269672633155681452490167497619684766854943708489958644781080582372292119374385994844696815297290461341726582799386023148791211253438398570193576302103307476638587324665197709850215482388108989723133884060220057937777648784442905767562465273767613539143213699886013552401932383551749948667861107394320122951062620786455933730425044868092043910939502191729515071249365197342208871132746735550908727145057088000645710655745078196169062560849418468648482692834899105228556686927292307262804002626776702094217252672807114277400363454276257076436052819490758408909361204578943738467042127394065951211412669229222298209573288666563776701500662450858994424112750695418124967309317943502252605442982317820711179356815431831674118593139044336067755339135592973714744089140088473051868734840356965334786984804640365440250046017902023460926562635897453618353093323803469381851701540084568156507285930620164916991345629751148589041289670090384625185566094792535242780582122008388750592281093716453149977030890958205314292031912540638718017562894777623604046770769982294949929865321577474502414859235175620619262719754250605547600438484875501346564807522368146697996014652973862656400237585143421609045603198902386541956932951701454538611116509654182375535903662810249425680532449495005176082849954393986675650626684404879743456092683373220062504761548506343883878585084173005434424185686538800431842829151364930613074719319363437790628910120105529606883454006000820718545485597115124034771966879224666764568127092089364881633370001329546777697522243434867112076062004698014670860665858228285990345167159312827858829060415997956309749138964918801740755085082931944195604854092821918410331767142849582857879408911803276835388411213971247030032650974871000215255779088074109099828894686772491140973830714132561284360861926325206131756927810225375139314200693244810945268953270650783909907656865925034988321349035492150405627003172194787733728535767744699568922035955978550678905130236973732851000856279317892198794086974994153075850123731895433602950397246731088088576759727421086351944777944493335507392935546812895502546505032933599458180473213841050807045581670717320891837737804062899617189837929464175421141286969900776559587180675799857691477052236579088223827801160612333241419082258560554550041890765405130207826081774510922661948795586238506140476751619302888119312575037326135628202371965203097156502095283084872486779270281168368731243468267423147649629647866982804705325910052081607040944606601013399538015617663312345528969316463593147247127835731362870746369608212921525751180415214826503471791544329287411250340313164803206513395282601574444851587290737240794859065600652806075555361779301852531827234145392586876995128920087393659068909914696141513167524745442792403925374033834134567343842513760377266046671777814808468993692077737940447799979593641140139510564665066736870733613335439876576077306161032216711791433839886452187490196763679403588719134214814245336027122958300140724740856921624826593832615019916482423149076287357578512452631202644699102023849533878846004368621108423541156589777861896291207219878525029570092363602354765340638075393333395732972778267779940671131305348896278854454952569159169946798983236377757249396202194604833643458069501621334542861073196456877740532041596038440943609865348484909306253917595630777396756354517858717730523908871780947435136298071269214579393113395101962278762287627106480321116453237753559992558660822812659135179575877683733944806946771322888438820308124180005466797764761453756375478222295983821532486310547691998165059875732779920706405643178493508532862567831632617934901765486234628912957798657437495850638972841685099522617474437491172185956467487398412705636945141793241919688028955562680349722049014166466861355540222353431038550417053569499217632563889786548607761990070100616893561807737178884689141662962459339792057170098384939833333127629338880923327575950079621800874220509348838635283371469444639313440536216292270796967637794249544304941181360331478425466260593498272347046362245960722822419502758823664973190535867678309549582994448221177429482554034242804789902905983662901610071434453664931862658306796781086575285426187179196859727712757408281796056663835354610490925856789920366940338133105550388647445666784955613100664563294324370068734824909504807413700809929967536834368507824764090272919496312511481457865063116863509204039986024521644933837187334917396999063145247830648184964389729098396220438484686443690914945080743580251041244179717691275077870201098402051363658497610103688954759354696069799297107634239341306112028399488784545518387941636126880564574000738779926517690684297085056398243102415902775477697865134998992359426242823065242222250523507234166778675879517042043461731109879819659327574787786626098261595445705313365528576788951769841904617261940448584857670503472561200053029607019107581361509811752109241785902343946662048529601775358108079366708765963403017971098390119158178423761236502721211377833505474214366515581274118611383922252479588389970385092547220174555592540172697491560601914855335055718488086967021736543072988063544867712492147940786640478514464859578170768947529938476130343013368995739365191313868082422046235560876939383644999995543391638223917287541452576403105494202117848304600808356129228084534415370365024205216989904603353367712851983278243759862212641399892053595944891721739795768307924093472496637111658146170641912017580047528069699473932252264154524953171693150887972324862388449386979852756881679035019732368190790207313383802374873292555995057678005869782555630983882527237078894973723985063426372314211389669408021047461073866651094465797977672237349723000757437119266892398767296916488901018768195424482223475111440897422370457942691991094786705146148552625369849933279886606794030742839850822715589894217064710332742451457280288472609033600733584492170644550890604133875253968026547478886221453248762874524736407931585489947512857531492563079693577446545307895092947069247757035585990716309113319015320131556708402352351660795291143931462545953504127795219664763362718901173341150555611083618893625481337426262141735473194212436990479484314494261319638746404664134570342169260876006138902992630864134686892067926792004903240221460124182658875228645296139592301795343226480761158045743360056361301881586840171389770942515298602734847707424484843812758035072210584983342574336341973036750585134926913533850392323344727608208652859415296000766955595288977989526093439896521924320692729623511505980406831583104313124797540036611418249365845303882685738123169726872666944587504512334036636322418544118565193184688325701181992236009178976643916650065141847632018124457375740736442148241181808422914853253209167075756618368065469031272733518002424819982926075234123507383402354167776477790053181175842836701724523102805405023265456040899334726566136337750633495941256395319636171258194920172596113817556135805371070165841124531124537390633229591735033941533045871316967667679195548388956402189338184816405823202988756147600424595421869068489735605838528516175462184007058858436136197262770122491139268922921756306520965544541919785574291089948401272281628369782013083571371304804702736132324535655453802387467509162820057930691248599843435617555818788737572778495638287739093859279205433050305640429620209474363819265792031632243786676231227054962160685506553170510307059120187951050322028902146989879054860823527292718821470951810772089213831679953578360061176935631150685074747864413837320629830944893352603957822167515365530248627397233920927982650471997884987942037807445189725488296654308353142711232380666660530088786211660972026865883909786783915511369526261084757857449434819945420637199224795598679024019165411784537368940080393978680585783787249012007435952840262955817992000019941984230414167234867283312428698351006728798704509791912031391427393309982510949697970893671345927601559794463990692450445991235468993615260553326035107206342946472967842008603473536844523133632497994727952239300544899642240379137065313943103126618884149759496055088905303855988239934295891772697787384598548518929277733098859270836766975450909473875233930361683160887575404679390532615206415608385055907530715045232711117404690723788327137739609093273355776997231281836874235444579781798496469729072892363150069462398830664002402756897444449350054259453060768782093505922833426916538109775451064794323992123855062440027746457386780101678787900101170420885405007333967935447728338418730559223104544154981146629908220915463371123767619983971607571103282262980698006609194596351241889734381617152153841439888510328539608489061704792128355763256899010527475172323342688034078628461702221917711057265553207177196900043947797925338004506999167780191291241889101116972028293218382689103809521652665179001292861678139080538848221615705484907532607273840735256131250872461650830586218786337485332257855928292486211155760035942368478629987118382074247962568627296198959348854196495076388153825643761238925949665714614146543996556387108625890108731773156957599912742424926917042184259959558955440535630557069171862236631541809929812723059336962092227893129483339000246656361912296045075172356945063547144432288598718434614301777845509479289447759745673830586889728506339794575765334657872672013979839646532523486245789649068779393648261166433118180080346352623372886376795189430639495027080126907143939712181159972307055889980141293170134242682932823180025274274782504491576692517850959392220636343112966469033136336189077835685703434535753041456393883990911044434005735992409450141425745406810122506962381538846307054369138982704603040328087906971761691993660510585428846565464846690517781807412347419420237100521563825200748356182454828680147027514574372252210303291828548949679221778033971417461934005056225627851264902356302473790302962125605672524796329462227692041154436526416493825350477660552176953478110454780976706754102218176827331159497666129008017005541424323254653858849560594519747387582952665352679447997012775564206098903284596591330685271919774030973977077957078669381308915680350706506350112748982769630162208545428949475526355915350982393111250537143932423686679614900948833971650385147400103368470526529400551547899358470074343042033005087846803049709540316546876601629130894704241304838210772304558168396286538364933006770491423857786734824830684015359799500948870096469557978378333324414528901883738720607570428983779577313554750094910443752115825900232345719860431816095905933515782444916683917439701465484450517396958304009735285711179593222812779884678422582290244864507225684055731345024816530643931237382697342096039564698973611920641070018386543817464526769064319565230218533971710731895423662245851897937861745188438606852475359565869947067543570457614136733233450200830408652242255176318540081525551014191835548503892234757100478576844299806233518015171690293746569934032215386335254519420154530977342999191341818428270526017361123938682125589931454882849539731539013093753707285889017320601943723034256547289947384669394109123491517225145646786109018413407078638507830302350995805925055187104751888729278748006775813758836508370810897761833117496405105318023583079136228603064187464121861988853303678950729349509643107813617586837600695155366766639829918845302727569604693290685794667606008576216704218269851583615818597886299575979338595650460058648032813996348966875290541951472051063415992846528395707271905010705878235338830699512515018005520182752354310590990375172007524978317755046837594361068559603903061581073940256783786678124546282376252284350865571120811092913128285501452618287974366154407258088862792238393935613148897248393292018703537958786657529723544216175916805057505115371089653519918794643072204712381900770350378216377953292021799088482053709983230193418630868701034548826345912613885640462325775182204573035081409634999335339214870939431671466104938872367175579096059826131655342498794824242390537567748332012293140785770038314766488881505611809172008720937495048223494889263292310523519085101028823739686008158266009846804792345586356556681843643055351452609261469206958407496729076885979647728531687667747295678032505741956835457410500932904540849918980891927615414000150149870081248677613200503235252055028987595125700217127967072556079768367755925237480462883756858347247925136985298878052786002506305192603507423403682777556214662075486042560622176335560592808808060030703869499392390905717586046758119046610082036678348292117060311467769703687105986463422889245820127501464474302931347819684369358263924972078572047246001115740172348798628297586657914607230207067527720845986072308832917164848284338566715016406421300911505647683259119483304653248603302503061352107382758455131094795907855357192589270959037947424071471623196255615320647084031216913357177576367348355360908276995698102872287687156581121263759207692649588395251407588482559541558541609879443172306640793746277753638970948976219325626469679002486080920152853946925499300083303714059005835850534184767905489300637161051823706288814096194504947878749469917729810031122558607336769751344554012021586078966966836775978049756168606037132900880929595360172848806907483697774717930703767997563724600031347546975839131049812215715819500954885942837184453554896913038216401698360785361837423107800598730861010753379187337120754121815739887615185749251759620626496553235290941122156890462394679221932717901192590269005933044579411689185493430775033240697841673285615539919013331645631088238232453556948007707890398821524970994168545853656635040518754502338375767205873303722223701690923509499318711048535876983628935276847285412381779566374255696606954656384865413724655156634460540577671854967981021913908345668259020916772555907688103542664079574491636110308398993662996929558016238055307969848144635751115042720431743908186262298413920434014456702063280475856615495342749688340865118954600022967469286754153568103405645515004457525198695214431135887640775798220920049614663661409833499446009425500078753897402120999965204328359302779399155218844423256524058650766140898236347368511954638480032984886508962337515161911812711624718339178285354281036264604153445039609320421782774819816851478005713815051498969497407666834333357114558051081494111585402741768955129026848920109658616822019559101618047908178321111286067178787376978601856997207395544155302147415166964892352385702225799626838527148959298637299444685850874972262059678723326586180375293498853516161929678824684076980399841420174802615173773185490072395719339050549620514679571037751656480674718481134013733813168425190607728233623863886656445518766756286158465044032547907248471995762427951511683503171090939095579564009688506598779499268510601936576248672048936522360911418950021774566242974931977549626474423614831660266670812458520973004112660434086396623576582135204335492604261991926867029922921396489954594608670741622860303145733781460727874581231093666645937789190469890080885419590108451547215717701712632387533505899699014250070830257382391320482376810833940618856688719669056499534443757811213283339499418867716176048537783842475767799520340567462479858361874434838432562036724180858852848231832438279301279598453411636722406600751904921212097967389186634085813323355091240844191272286627185502304034939191560290374440434054149993481263275874988564455882973628798683242609069961007257633021951340806391609338159363340865678414402027606549532161337810126790863673346476441346003824332414871518912145156244410291842431620207797581055931608142100400773070482459721560905913023438259090059530393839701350193846213526322687068190234743335611148177522704443310853124483243696005809435081831352223375677448884377341456427795305724488713700774777901876142550724580252721948466654415536377988144708912415113107885254556645037333700909552916604458991380568232872553726248194612560427938798940871539731368166672055632900219500059378079373853884325996455400729761032686269437856008860427302611574440718819489888959072060359248872431156576357940686738330806190971703787107860943297601350250589304285524052794713816757594074711346130299876684651690150259354575304321862849290793327561862184388010052196472416176803470024601024937273917311399530777301302983720318032433986262918636626497760008661733228089858267548841939108685605865767533761462729071922281603653518700553237919818173510572391203356148089661860299893575726002139966101117153751105593922874839040508290154549121278044668762872866679917875275041150685759118647381743841386911473034558725495270060850278527683348006651686276535296339567431403179452136209063284471041579930602252281348152925065521708751502305969080258652595526200711100611887210484958043443614664438028291889276689667570777451845012436075286210852819776496339717046466747482554865999544742524052703991322943278897222505962263607752571117203089412536200383666990301533571735230844619869540391375785410122269535430508293340814158519607799043613780971954820993852239304087485399322210208580424492718295040218935011175942218239723710002323666508609146661212584636572243319838260623302601145910102678391968040169889681932522059067757528275419439816120112671689526142641580036148680470869471181725470566508704807390193912397672449322578245139440304742843684763603677937370543167605713795339980347167396741600204023190632853750048808310032180014271637393610188950090540627021714203804571383243345255018472859829088427601019503752954005032170299382747239546921991317645026955466436623478359385362858644545843118601236036229471049475474639435994670658494221990700913140786429759496770754736465141513212321494665586709563673790481988697198405240142393545233507877828516567184334588996248342049706653656587266710533880152716062613402545159005518927558212934636966433293923455558608307539006496987354296594093313582763550668542917830044329747472618298140462031653589536607963670163478787612594728672768470661870586158668738434164415619980797070038174749255829272328003080179948970892017650051908852951720821735479869186316773709853718018687481671591907976249204816291982091376151683724302638867970432466172322630250318890007009292914305873346708477933323141047678878288648591113794682524244126972809522715618373387342075918641400707063760344597005301686897193181446273240644921295890224224725333657679224861463872441012573205786472179905980596830300984133098783622836751953176558617522538226608355647572223516280749266583230889391767935284157381029960680912450680793279798111269922155147024867282355196165755374410311239513242030365436490049677472513161954761477804954691733648688176638561012227464966862074078825841280755719407876204488968310773246651206919567139611697013746406989067208056494682860793059234788543990439184856158671697721348908395627151689424682544621600668740438672537253381708025070477363982697897541710650316728746933485866260898509825555717288298572081251903577160944732014235732598513177678166950890020622873783177621875266275970762164156114983030870630342504582766364053278043289756251506296607587646048915271372462729002079452484280713410101889823664250299074491224017906779346830744694745378855029553962527112808687172606477794821384438953807093097818657377251029356206585677894497348920599858566691746452785486708134909503925608598394306956082700843992971401792252524039462350566026064477613568027206158252633826502772832919628631617956457061367170799003351292696930068406733346064308006048007474236794202218307263186846101958581344073549507225385065507952976880516725936298141002183512527798578902506921213081054352861170823305005662815456959935686341663568287829513256626850652392998519003329553180450481473260872240276253061067489771183792807935978270756500114616536789728826499427762354070565429723643674506621431537104450542183101087489212997542686905319842824531238907855894781637807127857832588625803367245802328968814328265958246375960513517624705502455820846748138464117497666675221704436725902846858638741782590880157932504259398946694810143411275788059857120732191388645558740094018103225818093756786489955670856574666748928351949734777829276584697144713946486752345132588234801371676524258687593616791803052139644541760614797675968458734591454500380634246471908387612636411211891810776285541600826162902693863679569700419925777823611618397300822266023303655488771826351302681816916025988374005776089111286615110859293648684893788083952997769827406791589856580968500835623611335748631718156632799769722755138320378483453135644379066069434630986207114481856138469264228411103551920978301834850834693718008365428230125411217420767915378449267689129101616642099204547356040674916816908140311088999312901437562631980099618024982655311877711514323720584876367091584943282780626981903121863661570341111740783644548365787891025241951538283481195299556708677929732247919006427388316249316267610250004184497786853129268048959457797016989218501601522934543042830823239357306124154718872106790660241636258940341638160956820277025252602576373083835150150583341353047205762928775249209849307741969529424268786300204575795401928191931939226682476949942238954729144302823809890179729447923356402470774494204936810466886424900550230039604809329639676396251338345360272074514175069251544583699987357587155036893715727059639826467586954492819999142026215011018616843670513484580330390194201539017953195361309424485384300311621863680949370296172106348536977346408591925435460313720271542826932129045588150161085854751612015409009640933907930467602559153111359746318467409026888917099543770326690738575553406404121000419438394764119773683040324751413647539589264466454927436855911499572011115700410492603811494541655132489006332654369382979977923501346816840828062036395273392022154247527054551539845340172394201443135738470494679257609842647792085278503586104603478014090923058048435114559181498622792307990155028372146449172793599083305204825667836120139879060911559368996769838612132752283103811531276118275843435988835310608677609744754448756234125444741125302912931597704359166334263374494615402202027985061973694464856498286619141429041114911274041757416361852996056140481573976761647171509797763083639787434572558825921873607704900827901238923273439057689722018379310058187579664593068628288939143247397050723823524233609275104070912502924504084670356951432039723236609646975660699365807228683763939523872473003645181013402912672854287090201423866895860393192083677868027247172531982514204927801127718546527991234456148956423555635502523518850444200933705698930227059525094042284836338518498916495298806179030480180047760889188035930763384368727765155977308162798576313369935726960904020139259381259351546613084863282999058512755103056766105300944940661298622008018716389858889689042893402538242798605956399684036533415543783371526853364924968885971925271753920297471968851518046762013560686057368670073910486950044033986985426794810575944794059811087827611272336492080110511891986073336337278600600658878646992246072248679080780927499022573178009406239058481486025671845326640888698130603618585199963352322735499236741265660478675050058561087550920651185562384166254007534256426642642228430176293534475666467977858023920413517570068294030706036865967430548710095844627306208072901423668367615594508240009818748606433447658659184935354067835345951032233190647560366319053472126120158124614675858013107077982949256405142512349153533008806198501215961172391076125369182904296936130575927503947088025930593430360621563697988248203832286067898896461018163364068819134044865921370008147702106536004815463617134846463750133008528181029636656357900247761890251783710877899825692976628936768136869365196756532834578497414720014480353665046281840136702888495239559211605787425057403502409762502591386639843045140548199500103322266008256070395892861012127903663408978834432789520358805200905261689384131070910205350962852348220865634044191835280895978541288998150020125013720364692892701237461248472393376160089470521715180052243770269925674646868807992533910315243571832435526855394638010711796184376334422030358024457947765110853907650761649369524281302416364140288531736540692412604911539213857870506848110983997662797414627853358951799601701492511480148931642459840021011188988318953364505078116221567324010094745469951079562495447217267988693139167578352612281514077702830200033830124472785285664974249260429735956445718763756459811401023937240454241709225501214540659592613118392996796424850597771023301370024298161463706198082369074223807570843885605782173611645001260012851929646672351653195680003405883337892521103962110801361349897427349030438570797432131824685015303754139312318353692501549915491660588082726316788639211204646872308982274200711684164494822952264833877913376485396670059818024351758884406731099668670574959211402560313911634387757400357773423909821981612374354975995434878665942747702555190830725601358116925042234086535222425099446699938288502160010148511459427265319962822600879387046187411427346103750826359584528187435004061214402832153126788795805314333536347911959390755780237188201209116250810667368816716681580645500755797530022052989970880258027985137771265106612322836349598061925738461038243384039716011357131824728627585809305274984590701760489989658630463212087185004137924472266405736619966762313517317991897548935321447776079222297025309558369412626654370635151648299099123897235040125485794643664837820771531305915591194418410514048999041023395950195640937590206495497659226108373795944806635165005696959573382148175746754986479843056899239884322173246580703590647551435096105009698882837516821630553235002957728499895124410791581924244969544093152814354797321802408362747828340535156690784314968019600576083624332824428164066488898789969543457857357017999665032781208196088094109198656445333936382622010940742488261453321206686861505724701645999550493371663763134147321695507088677120845924777081908480712418575904710982038140935849346281407899632018885572016935763590665517208478753174105905516277433002596148623530532593911323400533723476378030137784191243117129735822221047493604039879451247505922663874880055592356405508711712814274476429305995015710581374492127432016211549253144029297336371244099730850340505397562389377730348571410705525700574183989087995848031036234828642358570358359878990389904384771566538422149771800776116833994485501737922458126703999703568439005406442873261779767184696640188628962933091645517968678285896519477780154018611113309255808602332304262891330002942678533279815026171486926435754507199007798657864268825729517491907132399498041495162552499437140576222134450257459506427403290560404016594986393215442091456480479010618162739315678924594203607334400205869924493771990036861550222008633913612955083547759987073504974488487890535195572233574622583758723776537964049759335911556456784341295384245136261575669517378574486047344586411898398528889464508514217825786886361201219324274670506418525707836114513867693710962088515970094008588784560234659482550169192426476391265975577466125482372413775158083956035652579308126674963418357757810389560044598891236931245811854020807573582755658365571014967183090817340355522918618487569472790844986813236109344227358323034897811796673724012560119705552799311770053234979101605953584616497491874409350948849906732080380859114227799492052723495845238781256645574098791835064219144566185794950865425082321744960215410418558054177731906831849290713966408853829675044845520011057098842102879016939563097073830322649415038037336479662818190964197156358965075365709765383614392649893306454879762978448787750857259855660809256680840707777713831811677141293293845401842756723729829642716752452007356677005391774164443063682569295656889439678567525034726801836735422493182450302525211387067575877188229838047939867332301906992964157074111677080767798696646798358994509437207294034904513782881546013420711656344933634632888212613232901918861019877441361376698641061777226257589360868487956236600009082437331141405783987933295924250387512737093124016605689252183092338151133942937145317947942789172617376462446253559172407636185802054346729061086376952463929216179674536236007131727119347005341328552833069755771043600715851806374096200509997190243257655187600176266485872723886252056667483042832156024958162271660692030553692718527323434470203451907680622622643283654102957153242740151673035991766676352888410537147474902036229641292404908465959248537134474210557805739438108095545202358092513711691807756952129847807304701635779720846285209591067463894407900077021592285937413739485781310057216755602577777502156690470587354568537889827832116600723042257648846744918646117850050010789274688790275048879483883300246205722195064606157834043869451905356549898588707116673072492033893330169629259061515186088540816370885490582632016962216817924506285341168604560986482962553347192398094604697236811975562371211328612219664294337593597738882594218959941394071404078143498839205535130562315176324236157685513266302525198845818635734545953946004119820353661230192515363735743952938941558686564599658974231818588625510371827819871177772803801019545002727411273292873680046060916745620045269282372612774311584792699947941429189157613184480694050733403305285962562338300970424766109559401968650301015957121442160406120020184962963629039510178278842354970341075572808556405308940647116998983909499584645723660411999800820321240722799912233848827509693881884748700896184451799727144255639689971275010907764355080317536078479928718899514638377356192864441751587840300604497586879597080204756044772522255474820161004728961196789533398407239712775660270771197894831558847599638638970634917586424955549526784831481881881528065406032527442510548983766246792369278937559810390611604268921060296646687995714594687783880762430022348614775806081143570378589921739768598303169398295728723429331709688295526195659749323170156128380300087326095402714156565463010081131661422924639225353230991197508513427922105150206877692863985710287435970476908797279994350558981951430262796218165340871131312589919133936565754760671097694366766883914446729733220966994062295936214563422797887332961620894030616445569712469366113673272060381391616261945441768850166823182486024467489980455350337607322793904786226222672491843642473988578941681454918776100944684507731691007333375457532178747376341756855821976590832059881596373663708433773751122815509196569538757497197444025145435778936657355140022315972813671419897899241733387568173300398484142725769421592283769817009302983090087462429883697948444508058223627210464680801887875935853757308348518142366414990449980964798245845535652557241568861957499979911094225041555851523243620102832127616049216550999654529704619038660893896769386044869081547460805982434298717751674652868014737861927012366528547767163702897702551140420694215489020759909426706440811418312145392052450901882636908089880380604967827552558819727148711358055732385650987955662966562279508923880933228636472865097063776728591213338963263160130577577247676978620160011499509657150410759374259307899580252218066254995753939667206129834691453785670708968099753633881803997894301420563811032150863908467618342935925451832917704221720250984863289142278945374966199083791842406303804472986566211156722488819691375691029760837292709528244395465837380724821602632476502775675600085527258651788128368123777455519679026291006697009412477157585472504394168521821453438104613217465583120764778335464523644941545471006678621186137804830517390860464815794094465117957575991530044159950849528644898630039513648765268218376664908808178056404730412517112003286357880174940108479165708522883504341467672698362040770469536124656057889635555050031161769196805360165183076914011959380346166830626193057950650491758845821793354037260655468330008894236431140900999960542250773324005694183847152103812333623493033111031561333273204196651804923730332115458975619349694548920917517810192538281150479611680127562840719857503608774416776981254327716059452162470953349133226556371156879470559698370077195707158152345849909313670470451562812782153556091618763844562186174572400182935632324362704603936126736055287559191837517614682513477830329622448058211570745473243196863597391280080777260204296963928177921048800869617518046693944357644819219194994562950742014909581069661727939170011543767260127354214043183392084774080449221305619136871426706375563124734311967315971496061296414485652530023753502441564218813361993975288814432679582930521187807803596058125986886044779038669022302876730115484507387752793334265476727486189696327687273843216949413679391907812139107793023682539229010336702710261549853730575017614889178525880713835100632292727189110925739639785989151674350896047449093057472123355756072344061828789086617511851459574826057429095805409094126742471887971778793326938292827817767730958945925146063612472102034244119137778144156513220202761388911524265149553990002839151277268725361731376291587254789416501150074741059446672366352239226091972584902128863787821739281775889596647542874907296616879160528870024617733440026600385640173639436404921786360203345169808286803725015553400186980941820619517052055259218626606828089286253517801805947855852520139029054347650669746602668179034766704278355327783787224879251225795484656741706955915887918109582950862575960898380806419778653153829550792371415234520710539218414847849007921692317205830891439027674710393979702936101762912699719012707817689831713017008789308133475231032250937090314186995209964177920649786167137459512961172202924383153928837357408229512626483551602280800303251621028243686813293015251643969145895762789345101914835960162107060743797926763005115623143658568317422868836486222709359498392523094682095712952543738333235872490107853275856525964899699702535454386520021819424694198083687385728857277486368729030061838590240650313152482970107302086307363693794564952411242772766548291322350206357651939449490177586965864168011088298698911695101156227890353698758884796557097658330820957606183293002975193359928788915300501012842920485536189774208219859617914818200966994115892079710095526055472637211214839574834010287437108332197468857529380900103560312400136883862468904801102297097710187771009131229340322806120910909046252011363773493370219226808137967797702669344054706332578416629552495977896484162280710755172513839967907210183144342862007430309607761497624534581707883767995277046285845246015118653457083033238191916790030814880051415877274163686328480763137916385604381005796310369730214290550849858889351068035506544436815792790720452693183173624660071629233024863066563518976200915223441384801530669966629904639632596026469304586849639547377188827894918072397334164327133356660403337542873831513244417930454103475964755991663477548486939974034421478684416695296048371927695546283236834711493845196572157149297084578030719917077425839536422460407433731569302240602047371667565288020366754322455950452706334547874754740511837766200425897619755597102282200060837006168851985621175422817492714008240524866429962707128779101855760346396631856244314317482123084748854436456593947502674127074493148311434702193777149219168510380383673218914143030016361962699167050905053478906194281038679069374456256814409157517379386258152262162677283732694998044491904197078016819624366591730630137871700174142054944800553696932408825358790573921752350048795838569756495599238131745434873416803706122472876626799517124030044992196513098408219686960178851103714496157421725973498041225477877681906230340128183103878023378376513513249413196043689431970738299229185117645337180030145473092761101642376811689392073317569407311797869749741824112345663296386651196647977764457682767313222237552567630502626786808937733930927494765766950610510280982317061345203703585694462334517554477720767762144897634630231240108317517796797312068978825298192798904534111281635158879056977043104926595083917309922391119757925685609850817410532881518185657798270118831103081314896889654696036756750181501908402763912993960586638310282665198520209985378828412000849813312299091768095609713028466956107664700437187964268910820537460920151268152200358755195380776663815865671208529774636683289165425953021308827850594979391130615037410496633707652240925317991137613155801302723977570355650790469625570275992163979425750892025804314920421543517041656820969403967644846984044309206742176163855912663944085331399836553912555954879904744409083297156753234609134872422697679206510615203139716514803967477139712462592908717899189089809710432227435542547942217544994141250924079818647704932044261388898491187192982705441932497165713712496772465567952250359735417722420554038068805039827339413600102606067569405331430728202687488898346826269497415181750189892875228800075134103357562631945379155085180699514418159829602301313010468160593773833483988612436491030820500677762946039740606810268786247071918933656530755803737389212879476798043112997725229071165111080183351169579155792535373977334755083787311241756167162786823782763813063070775315296359403417166724276870343728644790556396038618760222207494073897414753105529096837771643953235757723360209548915934406046092525539618030985752708999858576367269715411340944127444744390799394899091028286881839754203895023144861067129954019307697377635572041447850510970527496482840659415685826714785611622930863922008860469766001816674923504720983272156771835685005243946683578737802561236895047498359212437694226441610949569199535035629613758925435657525917851573182223340648923541760980127982400710886559576211852527138485976181784058130574824317027258973687723901454067570613497544426439938237270538151266690774253865520221534223448838734216816323512905462085566030196875271970172095687455481052483069379499617975119611946036247360189480571919977214441418218834414481679049222917284766759005865075474280005851029531830963205317166128408937167113812966171043579966192836729840848020812070787771312040104386190031803627819241091444834960193188261613828848904925346602720137060720772998818535647433349436602294131880643907298986880931388683453889208976675842886872896950296783047036720534952336066968730936309522734795450444987851904580836784715870847881853230234712435811370766928905554030295528856957593380567990832680365409557917717603269695135867211716831584740288586111914928509941612445064794880785212850285436850622600761461956991410634891526406772706301380193393085690543849636599575755872726494517465183803667087671780667554747192698607312930396822366416281793504135764519209456030163757165425102673937444118657902565605247872010984526178278028299558133242628764320621600119049119147091689075283302556053349053445645542783292342864639919609287517008798693919274844037507402923741582699215662988786063114134655706344849538318069902239095959029239902257726193187146355472716897335342355029088076015365239596145870002684163434290728609103287960373153545346229777847709864359119035623836736937394684283439381273824068714704687845816741715820014270674106120009625774315653359967798347920718594983201271420309558146568577530728240614497104900364093822681619854087141662669330814195332155767241785397674624206228208594177779560547954846238186369336214161677276808793838663002805586950707961870253261735407474478679581977558335167349509579096920881598527791295917664954992726212127657366069709010707787688398966051212301506499979347191041859276789395086078812088152560168590770275489379631047973244691693346095920107541914220126368963983797225971796398987520766467857649556653483473183078296917268905332646315876517479861496428052897297444721213724820150592741046541082027431400599582046631207906412041547379340478697226831846491067034655156822231388770422755309439428280785399848502775142161980486424492757188703590151712408830430732950581902441346073223588148030968195495896327572471182289887030123052802668523910223172796979434208702573424904827680336170437494231229503519639181545327928055614143152284095763375636910026982039965615545458496532099199843817308458063079893000153200341511629290698018801444033581496529836886651244766593256665670207584622027387969271636304728979184660507077179698589487504653557538719221765319721666700334745085534284610687227498777127814637973850507717905838059907764362571915928066950892324659266863539280723138195296905421052957363366662715452596482475077813550160911872926021488672432544101811316261778486571249415483201930113708624640704414946307560846036568086673099953614705761523368376301682103052589260141413720094386872006186627913107683206967295004711155432139745945728636451126118745432194656827011200103857282520989044812407511368735460724986615868183920979566808228886496873420371022273270391070318432905773197532493753735254258656288817920659622836219336855054333242372558597898902561175236280299436507893778929883531452658259913717728771741991809289884075335429376270998574059459242009607223912131113249878327450426149717645240548283952645027202956015776778594478904402776616112690736220673458889318860276625795392135137916818617646674458236269727933620370169762146684069371533741222606176765832400684198865515390536212948346709125908320079045168969054172777823224063637799923179256580498118233372487262405280429601157358487061113497204540378331699300760210916619323057898741165376257590806047709336716529861847648675625008303574175490730453423549905662586293632095235938356696635413497125991234809448861613968458077089953449100955925348790341831176244112567121492668797844473092211065691164893705645250572935069223685190854456472523729897561957261733345352371884265843526747424728634907858413702346532584917512195675368287418586923777306417593970440749325765923071920814680928572696764881224167642781789089059343239423706084220396167945009662251365085915496997805916670027727091074359146342046063088947713751238130735389510137811486049198990749883078175283513802348057325449424531361748070586675986433224861717379599068222301471800587255325133777287965767687860024333895608501437433977494929191856951041414436145810841216448556264432745826833396145802391642398363985017915365801746117879890628455697315409446318083299163874945937315129385012134446954572506253595044740687492522635774914914919749322947099464791066595103165817700773158539629398248594998207749649407436603944649651993519804115025970513773234465688617748301293642789019291936669662470776329351583723268768999832601960617114767836143281714668673309876934623865290343579659679717716045804050271637778291744514757134396655799924766849405136964159791551458553082317483389596458113891494235692753154640624212554201120230177103997839125950071878664461241443407048827372064643446132627881186722830934752641998034994280977321481408462813144398407162717131725527439762233587746441578805130435248078492480087524414025436250603683743426410234684020869534466401373747947359599569363850426932544632554085171105645077618370065602010956123684035646669678574814823079378586831714058119886589562941725948278227788504028848400718777255430822870896824272161009819810734142557329542826667095009966778826698993683306835320536234385421158929634752379936887923345943638338213482003094870152594038814939875049227495952816172069742701238056625382068052706486414778018370841402133435711872957883884585862395037607268508631385527016415716703077588048150629453818007614332586809830535928854749468933344460825116841480604008513081577429593388721329893729427195834175703903725055550079520666728015478397712176666309261240067576093488750950565940297777705256172451666323923711320058182961092983471224345407366419755012341826229814703733676686641907609296131891003009123986132468403205184481872952983929494565595587088257399752722248417870682491083457967517617850587032173378560758526666741949463274640087131775665599321842061528037720045757303454539457437893364489915047514419610471928516227695655911714143988157214976623988567828906708054399122383194348737820789396943039792879254813986504671140715648651991190771922307919279062628949706872597001876766936129866241706925744365674594905986964363489533277479988916203644866516072146724011373010074083513745554316921546194037027754947697690135295974676326691526833775107327504210624177518396236224804200731716811551976954663533535813186065783286242728935660013785056568152282640670457675472559103325958358300843167795731275935682924633384761957416655112298051991095116092116600720502612789083612801090142255792205836026103217528713372075751778752185919713975640123319938906488947910339342235244401704462963628367950137429089686560396118600129092257803714383163359047277438843249252209657231386492853178245171067911851461803767005596828958926493212492378144709339215151098279102157422793578531212858836033283711920841641120093460432633019678063541480366835233010529214946598828448898713969332756917850661308379468837887596488774389138889832800317231818287577452127342211147158010501298998827603007526214866396546034158971394478556374352949883262875787425641856126541361191990575891299202464760362083382556237787503404198567764783253608744338279088659849790239311494158914235527964638388795662372194833600750231325686278108317293868887275886944020334395254445104022172326153934513808815599539323756847597252865747459662746047901412185364357940017278587052470697944928098254354071130168081902962465460769716767036108109670894984737370185529740992853080005510930602802123837392735663629235649662399264754123609602708387481734687549645096354078244853859055157074024805454791574845049363846066641043816113082658332305506932541302607842380303291030428504633278542675188633295635718266251195529459391659885220251553948282026679634036300819669921844261585887084698684470420480944449346205349258727871091923807100691779531458874532166340898799039873209911343498750488121466801656602216628224695562708704780417496240205813858966138865248574250835306968124673785650858673016949908314723265845970966211993544478954510388318360268252555486873143948539618001728762519643088197121650185366301948706197421186507078373166758700454891558009922447538867747193147900704045114620286656471500887278412663209121056468273114558201634785358273679495381985813496116508397455359335506598842323310260049371136936170416656086760531351737302409467837693370470314764847999750272894856741328242815480577781143114438569302154688329742746970440322494403893686112644320800504609107860247170875879880606877453349621704550035244865605063554332244515829524268930105757269118155100359276600171716306159267234866965149001315771087955433791520015950496338696010449777702815094915292519802199392909757341637646760497038551850369248825535981897891296907300654901010905385341657095942747880718869173649982627296764121601637230984618485313420324319698933184433792580519976614858967883076719969971058083175878434867622363863332939255412577346988593653507717223217101235188025217873515602356017219191219389699467550425941830407473173716846188412912786334671488184869942885364234749048653661292792756377194001487433409811929605771203567890434376129772270262889380907448635317572625099887887378848749159021932521688633193820723402409639678285572288942319452925189281238909537020250596414733509948341498549986054470118027775728869882088000713968585237259111876170684725763495183121908830009217497996787244078545094301303235484419506139426931762680066783540914547583983733685526113074682273595740854475161316922970853400483201088218927586592936665136987337166270514849883828476377147666440123139476125316631158548670748214204542157750800120155518287846075483913833121147658836487331742011319671039394237590009309412509004672867712558899524351663947983830974093645891669589163351298759290780962299482035021816731555871972348306798687868198012241724044159926401898286244458679765752270352986227424085498970737264813270654817655415046381583204986502752682667532953824600357720731090528738231683287841750252884322992115096932741675834143237112966496814738668927762168605028744988728414270611235257254509813989801764907895874971411898829173712070936049387528639242227706011471478984816705659174469758609479880239099775515882456500159919316918449656972981829945625742331458506174601214601033338246967383465778697406774391565765001767283541812487774104908758071464218745706830267524187428643490443999468192113835861680140808481567233958508063576074907456224335187826368883946106587469392384687411091036949046747967134990713957418611634956404524162169184849548689637570536139584388278569895457134612536219904113331299084602818257096966406602213696345280591383754727664256209968855038429365673734679669227862923944910211147388430194620513840294816748947165977635074644957632359956735873116477114049878268252680926380977349660302458010689891539501293814274849477507987408818703265468048817718428662056493392403193334923953710019642345324985057846619078566583428639111868240778803828259635319492754269406255524208897479797365287937913839355713554785153210016374578083895999285680044190522453460165861193569890414201170760097649144190611345743666988750688800545341301265732295560765283980356393241290962629196630313263229364831931210913044015412501538825813577256020610092946158862345207010140237667027653981000497521200666758277503227746765569937054278362867378144096778951177410547265896030400894061784198165136759979589584252578188267704894145686329524135085044044316895151575431685087927204598127373355784429448833229784324527150638762636132271510437490798503455847679691632615884989679562162768941300031683374259591905694273657272950148582301210390407348500588076259666640416111732523859439342942636139128257557670578178323526431122101976421607708613095229454565377023222867986722805617922860471679900581531188198234816086951205853081203298079228131674074422695480068113305191882936698235879785905822428231881910967313627492535042022110588415151858363110810737434987390721189085594461848766095807554309442707559864046012599639233812730852655824277128730259948960072345838954480506493398317584828489703745000704487554946831926467950755686916423461877211550236748260081184152573090235467560604493933223348806541156159533698489305107004386183287837536244206828507270171445140126095662089783423166493096851714971094050884028221245213287754547001638578593719630681126183723526775645406830380353379629256812396506020932317351013278436944637504554722707968435867951172182554090796689802475154893569651977555767263895750616705336813296205350969317523275576986444581010095566515688465583057569136240866318138219693940122920643575930118608101928911225450241717164382721606137713336661997198625248826163613669183491932800701858519368068275295961724197324469015625336050898982675682424779471146580316209402713665945556262280896585136133708302873867239159706998306638481567724083845019899995813096758105467297194456837382060801087028200406038860166930498380706653549431502275958707642388111146177570215371608728036748959941130093422030373026989193696723906791752266938706387625493570625551528125173507765917579972628225747035577920420912935940172005160143050910510326549421368745261751160881767640116588308239593891639080656256042211174622250275140555933319484965537798688441183950823055274244462665660896856915148958806561161082361828638429057131640652353045669395119093428190628111993582421843059768177295656779105640070237293154679803934451025390797053070756254495720367738670424576620174272084874788227586150729815053380611164158238416420188103978545437780239250408011214257528510371163959381863744543134682414917655416661932016319749953324305129673363544341082856852115902720162940325785409307083858748422270142201381027504565645066584068314575010885387268486601302687367077552037799307982142666673411407567232823697976132101572384192647471301204826189473463076588466036811245367478324389216945418720222879172681957277808261752685401035591569099285182274822223223606047249272762452580033988819873313015332140633025204299334477018215239872577075496988098622703665359979003861888964013948636865762496768483668266693346811480620155884824141928678991219644361810155512452471030958701723683630876461730904605636430332769307719005403005259303537633007072962390732237794476592255340283858678827815191780238247531700069261025398119293258760743271544457159394443606057701641586635278213300461225100640300785170580492216517793616380436812519293898132667480566561579334161642444164335230302589921172466543229893209980765643882061072023443501189065025257289750330309598679892119551283231959790259893925266172456024819832658319669510849378467868959398439620933640669335020638905996262423997164323245317037109527845886498540425892326760091428661758641166688486688405749499753470537826803743051899468863671002846685811683896392159043951649963449561308627478467268046142388452108885774129479567935538682905494623002608542878449224776121204563240237224368990802879515242757638755969607097553703990190421860121883847799264682468838484273374116890374414035464256611527210587367872148794112690460220325538576687642154524926110798908911675242431590027658484375176661674332676281637194328484024326000998343200494449006532464603174646226422824713215087554310004657254757474189063834324613247976289465036467503454951847673890476764470062942185157250988232597296096212617481035736633939338186421897057682023917449886074772995553474536562834192577823580740339067667247812342776907546296574961605804458372108108068699396635307449504703547559149744371136519610155196498482905236264133974704444656900511304998957278178625142446925913121868025734335572786362442742960028897561808538708521437406684916848656365778356956709212121248630644124749516832522433979184921988910240761975660922865112091181460495129371374999779901486678658995439489077317332016144317396894093640497810462383413260402319344620443769529006510484893542376274886601177774407938851575193096338205230842598929804361470777351380113231861067464495845703582627717206169748647703262841520069387751855815901297296253271523335464446855496818258639569722123031266274968341528826072918308037038012254358442866908391043463510609654847584900634730815967171338981480754920440257120972918125792543608912821097493491738415141278187775980891717210306141340746047655042460701142272412030484785379619786530992265275636559654732807474484788381731385216320943322604187409889690707431046893332757598820333815916944089915153454946373705188504540095955841150928627372058052736584434984391556269804323996215224567497715769102311305640506431331315985761754336947471298593114745771211589927785137876112809267790349689138991111065204404327731451499143768780901454353807140355983511806284926101940577380021324253823647598593685974958489238516323287358080987481601288513385564802613638458656380382108423766051333148910512581397063540638361952576513049018618657535384335550865642156827740088554944419262767215289773220451653566284475063520507817025889183496590498746753354421018844177110471714845353240227843168672405260743966159935364271445576944995931487984298964877288570541396947355678094067523564048289531903521005121865744746441012118150312162424443782560818720746739571238646089515142789234986240687361960010061315820088277806663165432947060936386813447098476786598727586036663187750367894259510563724074696151895104433106231048626414814905390594164241240114557160753805051696994652503260343167720055629366640407253088514652443702229441736845534178478260388000237710393438559281566080884864579935072301294917434406129230973965608029049343090911205186836440280240960864291468396730241824785893873072862037644286807824254550408124229973990143592777861180184532079794192205524433339123774709521594453616727493835284495359773846117326478275195171896520559566692150313008549033347043542253599671095413729669317260337229379350338868905149299648566032852199806193226567147238673539673121981913030761956811881879895887019943696967271113328567063854068897433138175864348696420790196259610024306863991615904773213605563620424029528349003156344037535848567885476827717715277198555571101270326851302266946076841746409425387416253646340454895914430208924845764563720551095741014815449523797960137417916015567885726230041775971231205079636782408058833093347593827046677310743854091064550208803573094648925482012943451844220541579182124617295143336658049738364518835658208899207111985467425360229197273033730250708171746906662725825489419241621399060448927920251932838734475390121083351719610872171839259139540247776993697707414761347414973651607585650240205436383686377808030685195033096009148071971579297880315339455468164285562413888607858098667524472628435815202847502697216063008112035207029587049392559280102922907059832867243782317131428653571708907461652441255343130600161099264379802805296690131675821862943140366116042972396880818894846152902348525397776408525584069884847428026271142181764235922183387427570987640166638512718688016530804027947731058167434868899830473186579136952522005830470218598472826346517466856487075257851149114950449110385497199991449171000107595925709832013423814730497991784805197084656451518124472958615937610198685413567880320319589482950935411473251795033371060297447802882471141969187876373080812253451828862463239798042490306769923852770810334245333842669259496236038585839137359320745497769148723395735477566237156522907200991284376404131220356168392049495083099761895441199207478634905404711572825110263128148458365336699189797201690688580314396718890177974596963526992822241441427113211910696202654898734242378424533442742811558018319449768573357209364381734852394900395531671422195220991370813250927934036251567242700406268375248335528698302867632786992308242963965500432460695078639196854621064164739536566430330352465026053752941248050061386153861682597642862118318670146329394074783769897916801322734170836859789470153610989812831149159432140256928175359733011798432604983587287472941709958228922240710704926462211415156318934776288480416203333267882546661151064286483451513551309879468475310636228180819946536315607541694100835277572965621667263005382601068729382446623540564949729116283393698625720105205968883426265532118108765012777420666619560875472193886704373316754351872663355138484853734635007112834543871289402852006077379068435828052672344299559302874452033865548469388684221615515476132504201288939645572842925571285365179788516491005447524576249181875846114102328475996835076391493829259616117526666657903398412118774091672262731404384203376857344931885617442491965273997350556076840034529765517498479230299438110922648132801629665915400596496424464875171758058348461017989954143665714870481138610104236139061057120133034923559038537694272511560946717048272155972301670855842246086969684841728917208141954750906946433396917895343630579726206656463531739154152115572742407344235882442680388725927974787443743021128042085462574695524657201967564806872983362064519546073381016298665037527582379051959434995398569943904134218243502401882598087684822523426018613016237457488053999745056884744412565375083502691517958710515350320953026680074022064734608930859137512695629917524860625044506719230311771995104608914909138356558151085765959379464809680108906026775793325622805215381433927899364626107948545210622577985980251115950771189781601167178545582562245994740568661343090357395527956221156173804015143366088984049177750236691483241616851115711156807899587905191846891751407682069666026742993943990292993775230846085374321388471429637371054570001484499010176503652019505949391896668789222858280803500897590971539365117178747612034485265545574067446144903039734316979155106411225891867002061773832250510057737129327161849736808380135292097445516708481237374177846625620745663537668830900983458748280918447706704407431106747962174313994919872440105515446474392563024734194195174184148169503959328574760239610617756915822297807758259583401635232476956447243971947434769356725232248377773360455263205246243198966484935255392167818594076468882282124028337002475420142911967756990258018241796104160636572966386503099990144579918713502899547478719698306271758115277047737698570984806565489647472891297920553097086210965922293620838441271023533948071565847572212354308383840506198061445602519684931936266249043736269218938065647606969879858882352754245097388454146693351439935100633539581118857209570921665513932013242705755244677914987833885348184410795712402667582785234049407276338805589283989417803981675723425654188493568857246080420708219875751713641135084826039807950451752991580323281735148451287871834354584120263867013716939363904884249034438148892952334941166885339802035460649802322934958845497966306573202656492455319737913139594281868101545820812935722944367662541931273941290341839830896688025219940396418935748835879021138242403019152520642180335811115092746904406777177251032869250487172733698403845012600711386989528471399840703364214140768736848210826318271586374192164875053662171758162698043973896072959561964462681983953268505070324425651709076437496584127138126057415280985871463432316870773966536339633283170210965627611839986588943516150971693683826525701830985935264966193614083850699160649044998266338804372695933834958886676168592491636765546338453698069533013326169264959919984638266072564188280655785942802748470888277457274088151625298269640249417829781874187556983383381723141511822071869615720736202010065973053689565324952291344060380327176957277963021696711307590416521782240726564041142148764820335059505491560438271690050898773085689402908304839171619752441468397535215182467863363764978941750616375930036886168816305964780486893653671241620883546022304496194501320847442034385873556807049254231766743273813938720229550610619245153149153559643565167548193411764267209347536641670293292345904402085845208124174724745270268353578300009136892580156905445622686727997351425635797655101660739913535823483459403867530590614513494257245447409848685752016149361657121886575869335809632543735635084646213717378007722990177153418576578538102764408224228914473318468415002765584422289102115614846172077992733500045620775391063460444392616855880971405135671859448511804539864243980379943254803044699721385149318002931741286414426287926758642791182498656585749781695868048798592562949912560132637734119895365897695426557608121014203770907363966552969697295746518242378572534892784198190296210688619850670094791545499558222926142625214678706645314892761238392645350601246245571844569602486077141765577372789060203978415346660714922642289862438438781718793083487913392750689223758570035697753375374311431732763470474540704117670674284642592340267720173103781785299063564968746436539821995094306703471769824383660559969962653263904398358577310362891997161307030207959954541682681270007198243762275198385767308467406391716276540247782750371433871788171969213129684677226160225482378586748371754355582272133959196141892656364452177711668810918255467283455569930092128519205239861098460407486422350987791987404066708389960749940813573294727724666187350118520997589611044745855354821765613984094469433181433547834959646250500992308559299153663643788845533944546532185545016725658889921161566885650684259938059897510602090625764280288363846214696814999083663954304384659377499651965928568149288101140327468447400935423222320254803772940139866956783181590511059598879792092478969527933371329657628533365904816636494833988572631991424828248018996425402363965009882293870295093243970134207391655866831721643488709313396646373621894438236889143250845281048303915185055594768811339603183119404685680907744321299192908584599109042719693852588241770274139586317213698183921653560665520156332810752152309514530452365958947945892396432509459535719004575857921963512105459445718401280655855100802386505318038323161151049271175460589806070822027648540214093073766360856385794661757476757176117628051691602399675037110644139905327941478800772698484323677700005100394677071416910062771413263362532584046041482141064093032482264008890755385197886076392376958870848417359291339154825638759892330654747626118721544241062196467406290611238587597055214452412723280848780266179266277185777516153997335465075495361448608465995877350807175994200794037567479808352138018980220341789352931220715257754501739731529424978523241983420808722756690365209584033951383743538936854987990505313623711318096946362792160697404239469302403827136429463248002985279174386973228127408931706307337949220682057006497934435490455522426089757103674918048110374218626866749541341450698346864891382860629816054647209616914981189771816516801579714386585483371160250745308966857676211210699721460302324156037284801206500598353779569958099042198490370508932443341450651207493881717355696310428644699475674551882584737210758728017207127902680164075336842889782521629076655359350499491090482260741035073649789125447867421407168003422136219365541970535143159111208157518801558158097997951115285590472785088239015775106778931786021438740013680119882044692412055833319397166155059296486178588327582577440084504155138782741019245261196736888838249566751031977793384957604161356195122440491951156688023591553638996298028348598400636931186976601126109006389155771937054466899093319496848071899923441925846777875352248797002618128152603278753427221990023498262600573550723315584031860792826422196403958999915804992966879526507492220620089751861356840061489212949501054691219749764683865619821853008429423155204894244893408696062694693781079387515088619427589609673616076347243541040003877537625841754794639761258678762287404368248384614317029698644641792599936927660559597125630404013945396475347484402740330472497590674341288083729866216527356293598509097848969214549876679905573582304222239354856722991260981883838922998651361894343982122228801346376619922600518363379931738845092957964594500508031344094613423963018727291536253036240996966834719366566307827277032567128250189350953219902942056453225430623770374513056432413192528593416655594884521467477885584581515319496442598194092612864977566180733310750381612928659345230010885860931922285656060361627617411696159008623258137652682232057658300927785294594088445583271073890962447281161155024879432016059854707553937387341392299072934451916839072579146829671160200496190322064561555656402200051360438120585720494873363676146080052464747684211241731967268929906524269056979340188951403007466436816585103731071836840305464982572150099207843088036430610903598707528932549473721829429910294382031079507841584118089948938957000478863641302281039383469435723334995327254954197941332700840644715202940112246349285049725604964710498271590420390935017053729084940708619289019897627690987333239526471098932629518446513140622546363872070880898442237511033131862457972259585479345339779883614970278510150550837496709191125438020225245119305513111851721242478076889019776620004393833135609430598808201367361974605249425122570126681716169581101743205677331028684867003021634542048723791441440350181541405690366901083132753565326212530677828940473538373010692663269078053776878438849991506564597968328996400907466638361114364291448692146858529585129189327822083481666306476604437575330212148649740218836533787304625499120698082654758760245573363397849876998811764476262818638390311099013418525829774483684222060429842401564275919208440074071553948192507714424481531816319461529993213924770880111509939943401703659207082668333730236012789469265738567609640183854878256770966412570076107194716520123628089574126662437634334502790003881760716329778276711458196179173340271852574489774629083036672308749731936237955374128716253639065395241787155081443073834760302649062860825634148611073450793147683459172404712742906102140971128274671212768513322714049393000794693564963056654918486970013031726001697780812389840397597744083909813730662446980940793684159098020190205655865406230024944568035065882835887821026463471807334571434637176744389844434834164491827362401873528459115363500931862210893816256846048062702178689269363398716386161152356017317094758979512167037290585298880505378433898923300154382665899519467377516222781972326783262941939536714184451435907759472843371703222704540633877526530913831104880609890633417936280826172153391538275426443719111881397274815666307646027267845862152779830432808396970865545212895185313930276844951032203636433863264534695862510449157290020916868785793389583039357918412895911653385962337057466979563810890433431545891371934112272693226212454384017368622490496937629889421943292637506386291063268239907353453864942264561259535738386507608211658407810329395695395393060721906485340619289842153110340068352110307690889846568459575900240545040416351652603889212536078418472090203884531601152652716755955718187542782661832408485727818539138174751528751913616476923608008396187497846946297144580931454034661130350483590415058473911767481203485373174152167524893416604427820723664650296373238408695889160918255293809238934782267759049400654844955445774825117464266252293609182852732608168841072595923344594068400578466154138562363648710700233157737588011180110233072140153042637657558182465859461047609322398002525602663010952331421074376563696936718191981028819991866498988400053521348868722890680986209666374511083409109057394644416033148300344053803468122670369378097843297518293886817232351566372366145172851475727730159465792112438078605073004547311156529097144194864079880942860473167381605927622406190825411975078347912543100481581730983062353684538200444018211565639339918538777694219707041357131712610539716350585847205614480120602686025187364130759682726651129635881127719515102010542062203440529348094338345779886049966100197212806869921213593419749855075665120572002919752831911256448452811971617197171307624978417555935017292384238653102624076553070449602677908242573702216556802401974344897079520991217372572200964821205125245861722431706468923407827326927814817253297767961857466127409347857290147503582005912973384470069061380781120492101279412879690861928048516730861603580088050452412376510230195555678776783885926424315109852780349990136606597225461848873460327607691979292908839441945408235982359318705895713765500128115292775804564857121195217211329622439107125656261596871245900064109576066289844048565266545761086569777658286524838630012724580670424442939875097627012338125497345627447825887549863813464877699533143726914516304494940974541060836315922760159685605075993078264002166739228495746309956166422994709456739798002728307781040280045210321008483722782869423056524218102893288767846567282406159254870653634373701664495095874240735159751149297514318157788055932723813690875489097609686755886982215409895622410400894736440716988974425908282173452272418798657286527239234222536582603426660580546879113543907892961464910576047078075681240624637509914033602968248038749439300245672757869352051685315930084464024531841929307738551372148962833494230623521143526547678264063839613169883405142530609878374303701694122616693460900339401082247651972269725876641178394968566003535757974631000906951137513032641372953941290026189050941758612091170409914195502172004939957104156521257754222948717678413967525140972811266632967595641293593904010685421901889978523478490863551647372834012211194592992606556148958573153033207930054886364138509720791821147172507271278792929936135227037762652548447652746837599639426563457886849443495889617508498477883125929592701446919547710136426667146770223428250903895298718659215114793965615643577941027149868237805220969986853762453629453341844170026258112155611377554964669751370440028682287506915744434350010978888766741981163786670699448594750728749353932239854171212383713679039513242814429425929569162728651499573671138991274911948655439474271320911188631370576858078482342231863499319895403023417271440871495956415158568050500012879835038924557934125712046243868951591365572049866381676592959034864499447907690597510164487095656801840040341981138207835715456675306414380828365819830808158643682006359926153552066766085893535780481978655191297071958406285995907494712511901571764398735901718333576846363099251932269943290048790682094189383585252672804439103286326978914875169909468027648447271832516611696320876325405095792749859179221092077002450097339423651640007394511607374567560083609348363151143710319628879572177861539165741516326850385525186606051006177723662215216017887657211123773453936084779238833871062332475067380102057032905325946225071893121438791390539805281064857134614178280533042694018403243335647430920882949013434974063445140316487268434542762424420507353668199299419240759735890219580794877626169725672761134761596104273787326982666661589393587770935590910201745225318827619850509119609740370523976160851049026839426281966891217884350785724695629407825782005528803047937632721749724114228540540224390078332988814338900520436407038081795849736453553103253259819898132078538882215931015173917845708519121840119345314909228971145749909853229830429289920857043555143238291842445184188587834155175433188949045960219831324227669364184175365049076336668243542034195109606809662578637282872436658845986814982128103407622562386554194121577686264926977240303954153156030692765625693488391404005952529026284825159504874905301658789171214840102371049927117520865760962244842670393338947581872200933458681455422656530923587750618349717413243831361874299506170729953367730921520283616541433832870797826095506153291241857423640799074299596466758813127584082048228067034327905896631939948867433531250105121212325812983636251211575025063429144312420927529317202248610711654145872030102699049131659457053768921937551780593552038889259147597613375803115972067748366131237699387123371154459601693887446441848639719961576507967891298564625224801108763172681450771699027479346752157441819739338588385665307764868151626422516227648353998294877029279832788506248672472876636363273725316341721671641896116007253332734387396364734514044660502632329111369208829762949763777439921871062320490216304193683093378925961716740384863090917046157520714756292967244333672166251658595525145177196023177486133590813836785693060049572816824756578276463175596163862826353889403724688406031057231533822572480581267269396728363592165359769389556826794986922444775069574563594127201762695246522439749486048909584390105343406303336725649012398737630116197465068626966776721703755799573930697058016056332624461738947134739298240843475566258791073234405119200081577705227456021545369917163205859826528735206396908687831055373773409370151490568765819306825980358823757051563608299011985335606352863629253331756543946867210651002414058975622682041605730392577662894555440102431454258516555531922066887565306901351925681293953814603981586705925011482806450551126129440965024627652432270234969822627345694171610155565593856464770157579341456666179561677141756057391148305371493228908695287946373587755451578300922350383312951751349450615317214155907065335078729686454658700209864169747696803516602825575177154997199024450399649533177460346867978270216175902655762046084239174037800138273603524910926561624834347345658071908279553306963025591534462320979711447441504307336383918905322415693157276387963266079974847293665246615218556322140994455863267665639715171230238333071643906560179702755007167755264762935368237229786698877420613072240210371597475628678025930524144094185089454568831371565281466369591204499361912183435588147413847654669800260969315480566801330093003615554603777067542343905363903787026110571698238770990183791771930369700155116318582533495695176934223715437140201231029436336177787082135202757626767239392193320889400788778008727093889495186724570766021089164758731581794667508379639506737959259592887386845104010966086719853260452207908069964709508990526901649174364519075824545205675668867867915503566432307100029967764276174468886293828146647240927242299915118390016742813685203889549452691999908723398203485025877948135383392120023154024823837180031704038664583013672976963108816503781335393543515852571284593786171594229644182722286484246013634929956852546580665989106646902187746893207088433076290950083214210427997964915504897063562295341044596147407611773864561052015354221250087251623541507155061311721845943782995722996185893609087379512127093881165993813709184152295092323712046762486003355604031695834681740795884542212776599939456371667940218266596578512000033720734814802772704669934751556505281963081008026156785303269657777768263365679479627652274894039657618516734769481244065123555612543730941491982625338835452076950064302115253080455128406560021026464047247450866416649050718231927066242701520081239660304448721799363748628668939288872895289732442772511156055620681721940504253468432395404896249666712287734481341148048801008662456213060613390954056546907766106762332675491833800202597341220212146579706065526818707990093715577025936857873828987226584436121535642704159212635677683160840753145947892624227445847882868413728174593877257408486378513576812748899585215938959657310503745556870960406226704924859805015062138900923503911374550544352834361050396288303330732820997495182556381682181957634164741786526674885046006594372555055568457251345705592678715951843776109283726016470074309714179092012635373857501841623122096563312442412789374437331758697440944247895297429436962979318158567692393535262137709935883011448370406336710950522298722428960738158297446304488479767996285500830306323456054868210659039674312819773724597803856995804883738885441630980715535230825018880936015769789537121551351683148986255027614057082143837577372993877406098169179798406777193147192553663984852526913590232319983782802067279389472543064581996416771600988118799539905562574128512153493098931172934757780393973851022141607602444772897897753066895042615491905458206616354902466860423207804549273374227209828920012365460677780546054759176599156493503930229571142854285424002499979501385926270771823626107134197418897696600302850375972504345124897945718265419604709339445122378882708245652845463332532647050142971542943625524604464981314534041711591975424072646902192909039417368699438897304429367072139796864215872831620467099719480519340546221808745056507264926347884790272387662457288781584014366531395670808079078763257804389159594051242492352063541331609398851076154807745798813789936793777374897224360350212077992172659570026613735695224464083154350347835258219914516268974067867308679271104540146682313581156849970480747663198402448713319239093137650436500870820252973464952338959222498077510105712259334869707993288013056202142082396182730077462669718649408394773101948824399090389629377206677729382372106722825140811714172098087427547836187288368221506731543414291805598026457923218762271134921778740773656969673792980821680385218513593122914519759221511094111423497195163703148494916984778429762538031449272886775599148501173255290244889710286485293486833069840047426076253633293942377483284815786902898474872112270305451752023398152376315183154440959076408907021723254252511981446547270546379458011312480305005286027366381533187158446717257270455218171416085743204769743875297051472203523068785195015322186588749657917130770489955216668845597736089232169861360032573970193721747607854022118250264573429839424326818738368050420220411342873571437815517677861656551548153899237010563733897278697329224439668435221154359273642714222580672461892017495416983824610407176011560146297128958898224808267183567194537407580449846300901091478413944951291245952653162271721802725244425185545866876193043304619385182647257448987477864264344880419726840212911122303443985548547578817256155703702636021614717201675394146950912003666881592568688988266490361645845181614397654721953180550215172583255249243915910311530802180864605251397447015274336062148993430886298265104857873679183206125852874768492343366782558157456890619791807939204115462866510820870921778824123246594934436793114476521346619828462683688039957954049706585426565531393351277947564846091668317079296164205241018398430200232504724010766398355498629958639039304768609731081423538732951717206965482230440610390115330908104418892395409475356261183894675350464508803383018021397867577181872502406077958628147447800359976235416749277377376766639452144217046128345344762254239312633535465984914622461591035760982741200256191549093395844004539548264281293397605970873401869062026819213034699957656178644589367632528290646867590969510668549381301708569505985079696095331830778552259273905078800868927739220092416139499043101067758881598817624772962760207848581352352899228997515963025888943082428790528636559853448287367703084388612294441332340468409742499800989670047003107039143177898911303534272973604962681224825900274979307514961600008219307930282000069221297866694203228847615322957386917496222542479741187064635827349809058650117260628903781193487401334688859489617448354004652844751536258364645322994857694802030254846558575919327282248736234301399440922017190364411618636859845015737205830169498428458812313522174460743172026508940813960846167481318770890504148758423324595248628181514839802298535871118741273538532806913164140041744594850281245515608399992456737469442048471949635894568631040884181191006363169173023739796458064725071101912139475565477060985476879125664103741102109641263583439752698703306232316884634961900671629258734222219843602511830386902737220039963166727566368789402167937833913843546577858852867634657169290978594424446755853387583077536612000168517624353809420651614283116686315191406536267915155091536884863139579157341878784374435063690064147975307333075889885583299693665876009965608208173627343619346590099220639762616231137660878035496982275299599605733495391670856361828278655267145375390203378102200594434698806939890132736097053010735605942398717252854274115602901922639878079295298324156049844780132971208888921694643131887490232487405502795155559938988846998495175835848207819444601750116489145411342876828658306954283450483572740269284050480950664518516930172049265408482153912995874719748227889258937350926853760679345241110593761039349502396667435248507235287257059351449641609494069226346412045239873200894842420143600438915507482898937149249714572504824881190419276079294366916645238356417982276566174460823299189065923484139502000878632150087775773113475364799037208879208284190998231968352211493833014298433225067442510748519296655786320386349674006383996809681952647627932692350260848141772560766756662744509220000999327475581618490652714106194568651247035796450090607194553330722398275050684110859717279687035399874264192616880749546576033155616644499143327369138287547763269222991084697094363775713003241747848525152388191230672686477472692185609437320768534337976284606520941164104640384321452511160134101861427492201695737780987125171973221683744054972575881719192619007936497176096119943381484154363041013461645302805682134561886084478463142795718392166151018459904634945906261779388458097476353474494286691038953934770651910728666845553755456993940923972006068305144259842197820153207849358492848305067187040750183165830945583908352019755248487436218531660510481621015776841785142003484419693232673865544719298770279734078149078173122353669868324721136630949428164751028246180978244385524717461938891104413845479699234287355301369831450083580384990590740023060368561468727237079718593286331427044569540006447015367886099894277367681976386788458989347156359613360336695784326913207869034161172356684761383046947384553496866652192319786224067395133393256266742801542017500283875074093402679480854971116574796844957404683877006669114045214364095127272146488548727861062402350510016687880693601031358503915577416531151677509310911610058447566109151066678822363854143908702692023983313233265587701065583009474277037593843907566291553079403730890819900959685249840546391816107742086548108487410179331743551616660985062860438764572207134796513012447380884235554979826969826131570262413285175634408231501249310755897267458997970957990155798581529698922263087295463030214906102598729015659875744605806116674353123101003220462221597590688965193762679602041102715479390933363977254611277815378336307710380180793367717430329768302178848224509096068703607543615838980180167649083495066356639985826573593326981996447181659587063012704942712860668664489352643798660320457925984478972579834454252184464691140289349324511461470494298972323261460481202260946408538044564947955338134914083629515158870836127811474408577994684814766751036630824855408849389248104922867635903068728984009484667710684975465804090274242593176484978923481260184353134100344708741736571392471704824136519831282410146582105980038872869878749882905113986758770359956762920692509302487146238770727357802544520217896093854973788540417094913326199168386088576438704265381685792529451126344438274032859463460182930342628418809068572836952502921377251607598289699074059871182157616218309046308253190758470160474094351184144791546654126358636097516444124460400258442791150176053938083230532375426449214503312688804537618053517275666572157960167174842637299494498543309178954786441084450367513682006074423695836194547880919531189130708440701398248917364357044999208976768779702335091528193395857427951488368854041355080525734196785576025687554749539127224963974106599766391225947406250773343110471489473583210979001849426766957800515455072171327345411096513606378665254657441417646160351440583223918871144549419585619747695636821234803046346049617896703113890856366872290766770466595112228775261246253148273318392203884482934924873370714840330087730112669881192655443131029585996072286445582124488942783516391923660412552277403896779589129424098125441557279325635886835300088733087874491428171942355189761141913066727719141419436887402178337254887802275236866565707685387204466876081623040451300997564200345926168319175586037819636258550449946622121160548496358863025941909846974855565139047347028199485489585842713954044674519230729439694686987160173138594179297826448740894381190960525939918431034161690639229820527509584592957535642469126906693002037478843767705617144748297494357108054173828348566914344688532888546566103860590795618863123112495562301243615436610597061813414857147022234911775478514983176122816228083968874709158162751837946873184394913607196640648002283306936796516129917574274759246502922694434003342751954103660301326981269470435573979760750791218785008539051778444874856905557737545028805153791154568677826175054275996019041972407015610648741350075487769680112308354461799599568745808896794675673030987335678763262250202738300596747446489575861158954052014755561494517274176108584686925279158855382499749878514295690937256057189946623869828232062800544901442199079396199275089703153982331079292070343014281017355329178864230215594063607352221429404695936464059405159541042563994031084610996855088421752751019767985740219349592395975789851494963598924499075242591798247559643801008936521066947390280197890272543204739028008557472635569385625864239962359524558754816609416832531753936019683235881200008699094769656496280196378968862772015474801183862664690103319754809315975757238883356933677698179482358260461295067565474857967994705759428996617386602742847075072818471667713246419217700671955343999997724826602099260179876332162223657360985085384923724704937956803325360565121331793865684344029986668172024987465359101586479347181468072195900306650960513748508277784244464621503011402173280009012047446235154890289010554801471246813434600515509052355447341457522510018489824996215286290050917133677111033226684367993258774624654170165196392832318233304536127441678558730437932801687318779158336043454830127069558217167325595506011143170019052042961774380918585707303986252758761821317065372069108365560774029175233406854545220915944668809302308105979220334987763728426870577279650211143573351064864462094462442711628423991420424639264041665028211981158452413043812165634241207009499184763727459413395912398040418946061776594813990512567038586418396030460422384259252332903804920889510405956351214955807470040360946960667779115817026004044040370453982471007700662021677796716550778543653832962152894753511772192387557049646821763265326821912507384902933654301115147051735399621365650746979904025683486130789296880163003727536531005582778799407311228135417034809205400145124354838059766012996073100196024382073851083038577749751135719468531768817773709852102617888381675513623003429460365347622792195794955078733374885098126793327855638825885780634209129931327253702419728703445529785715989870786282659190840573389690547595377091587242367631153927410561140434695076649826713854361237266500826667381048291379306699222192255160968266423336459208978329026691178132128818401922724954299985607799526087703929316958091386151373608837880129315127730122420968082775946271949420855182186352540264651173712678028596601970269106375521696399782245488890317589462862574384601167565378594210699946012567556376464150542271213842558321288502950534486073287201154923697516359187295685611870842163077920058128122077305194213307081678479578691555085647447529561411929297122665781737790327717036018386702488360425097291765504221520404146518375649058626568222005684137015308682492124089676924100408794328416538021612094278301810832367871780180825468219649670368777008123607732908752337658474054115799032099466229274810414347561947290121226893311204751483219505514885966229650374516359387106621050376779861059401252449446766778992997508782711100701309505390831380018212547050113986010341370296132593525978115315863526704116682797776092510205678682461025694402128592364970696978628326916134172340382061522576322929926329685072621892872160293768315647143540295170927028217152969100474029757495890898677593332165574710682862397953286941264234393247435818145113799451763130720742141873969583650749327645451510575391569628147748651109688987276397869180453787695143914269705065556909925983563138201004371342232775166029274790628814029217863054693878575852982593111482971863996832799643367809511710272969418622202779817205070123309350723025765633049324679746734932536047060445165135926783072959050793827861442023368198209611925675540460007024696090995989361634924580417122428339144258091985698551348667935236083446032457467025130018324756245252079274724244154680996251511113664307687653953965883029837065370249687380232129415955945529754341801039691748084534815974498452985252221069866904315684995104393763711013531782476996323236033906425542500227662534754684854389949803250386450506961552723665816188262618010176587144394448769604850213540889692019981099369429001259385904004469546197947835814107039377604741082827118123735296327824473356889907372344551433069033632855762348096035601239620607749634511749185014494364642725171137297072057564119839733098395803668411410524518717135826300160258918877516085066755357362182024442410669703162792083598458489506372740184070440353303103741559966618482003415972710177774570073831575108850204267141110321978680021080346917587853635377416587589442610326630328401083305590638405030018993153765401018578430073632193503383470206699576231882361347859511897253776546506453813927412439523322477130410058301645337993612169481018725993923002090265666780431916234878533397689552090965668983597788640605698614806322474018195836611021275201798143653263786375820025789381384344512782008186274073321487671356398904460980340906239754032741204500193256871627529472905027658128716315902716461713236169908143115452383907102381486447590539846458895132038378066687504276722890710034799288707683745554989100010644916544482897428315062144722295026265664833674434156176654214842093293087967195502766687086127088638426954583609918763641255130192820024929076905179290362789141268817143947263469909217381895812769283520891073518706970912159897795049547445808146610887458999585644446455005625094333774428850304880065026032716143150228352352660017154842420302660699933406896771489654153811335819156554830462177585309743330980427550417008638736075965905419629096023449220865784056912438184749439916891748023605451933158810456880718028489942450556652373570982409865383933973390976417160840970343399244730145329874553098664065547639773918220630328688021832371773028079874874982561702608329699490151483576536045777943731856302825864687569755233244067860889229564654308735600200422680842499770728543005298797310031638232172058640880767525962986210150008032366173292541714068230076405827037343081982641997031565385737692697677960555542387105482361638917815495564418039261285940856247380674573195685048035124777537685835857860451661223689422081065969297094206114199859720919037138519126154622169217818253170335994622165851072280086398437731624447201901125084783069509979571416117697976650342905226212633819086748736898151921324392195311803383755619552540780985462067695087372924039024486972022168003386058830295391386084960594163512635945679163914893218465414282640774891304323867010255217105422191267904029128477933005648539543483968578389521142583640469016552855336530345028315509787722184252854696684966857246550904739730875274997381659350499289424777217831220984305590075363521168843103556819280245582159599730778745216173354274364026360799190036041001841311094634062227719289433363216704023478695604528006440840498227618642766532983756243065996118548492231666120176851161668938932217023816174839207663443827264458630285828840942011041683806175339878697658917337009530004617238270141083484733687690870553311879666392317099002711185595766739120800876208787190246652176691269960315141089954479790180486063998234757585492870845683118704406449774415427725968309149817420089999416644313466319332796228842556442471659618738689807409796550529456470466229191067253866618027704487392021808696715623199818292187470814486340570183197735464464203745574840202359571939747775249310775736436970479053338460007685868155557250959684264819062569413073999754185083956111369215487854154167779147033353589569769223749614715393678417923179777563730083641813225431525646300161160232019986234096283705661970754465646636807766097691209376983885793530336222542273106838620827027589389313887134397301781196523636026082504847494497415520729354669193375720983991676547200122287887633988547989192683729007752294846550379261608446634736596465822300534018865205881916780768908893619778980793291573813910855217971304279240879331933036229649069780350808962121876071672118024641175637572659229239169745314743817350807975868087625203309836455890319128895439084924072877558792912810181524941761010411033511578952759511939748605663244399984043450170949883360899510642745250683808272116342163221330726126310053746638046700417550037962096647769637814088105453376940835691295827953871963810457188023093636206234994375933394919167784690835474586287166538561411565507241721231279110395858613767766736580844991802188066868808247446168509623082683372435504698730404366664682265841072198588898873703746408413897271927329985849087944626316014107589626145029884416431693801136985206140639589047995793538797226468025957106131208301371069259961294709470511793158401149415377855620472326789656284476348738803449363054759123564740746964481678683782472234351868418589891897166231783985374212488881775790836208145794080311479705572747938860105272990539876748430813097080878531407727481702713276051997411869536836995782911798171484029491010631859630617109672812744105756740183589950414629522459414242364486338216149696743506385242965370238076410585659791416503232825453204071452690819545631439644706697317708855095498488067076395953982532087451971230570261943496358367632632753802273418261080153042337383022904064353100263823778339472746753438220747245734963541840541670113288307081459822594423789026856338969962221648358695331435342182887638831217746105428484243765634970227508332027961780717788743796164540882235276727174829218660206376573475876501996231756537794950209662228676477897608076244244044081248601423734652660701933734654967841008593642617721246339958446337932406120067053830825359841865069366336602081656151410083474467827633920455678875288972962155517195950602389018711466464823233752767148874825506681762358581784678353866972798027792835908222686627836725012287643346709628531391781579044002205678707611970414491644010288246854470207235845254776752165480315527327114893754795063627282327592857651217628787506281772370095147402090218829814829261403545755950105196966276126088207623667517423408579029718269122109380589210275602104896588652528605676396217489963553513244944636076484638525948627739923337817596998302918411551522004737468858978508892059349838896910470125467582349493186471668607981635459914224547172875102115329848842537517494086573647669657261020712297309969804373245764253249774461821317392024718833458763935082564471242289262100285354707893317695526925284859032791167080209715055960652512572219098177626642453025525176698531739352117623998623425080553589451282100321128646131493183900313618159369697071626275507558134916017890113070001217775605239250421891207119047008373181289292952307121314105485095520985521896206619085815446450448537890536838490876972166638503377625992551532664735039548399844246781575733487551557925437221057604348898565790903495724881467066701076908552338257916261248349167477890940924436348636999181823358380725942381543480005209207981213656372752741129003712526741391812254171932930470820790895980259810676301643139819477405027261133551391290370460032997860316808584628771857681474377326202977235107970149655871412068383106494343363047501315810698704200881264949270855247909347359805321702619482816758303089802833921848011744467663117990215079505452919356633659572799188415593419498700026324667993052001954753094824641611573367174994033200498786545197213522946093669440847455257731309178289917512523404492031848208914006562216243529687920825355614765721374195448581905716780774202094599258701102948512167759077006213582197574319533587126099593078378978568933715371656220181944629960464477864782520532098514394309134857879011221450442261613868832295705913546105256171380501554888003554235996719671742672166174871083928769379319394696974634024215044879720251253170005644223514488188815498484604851156144938982588514382818652651552442473296076632560899230253940319144262704837580755830516538673257851688146554831289155260105076774637539963102503780505233460332203938715774534034050107378530294413165283964173847528731439359319175507809723245530856740268418915217153504861642865809745488594680914354485897801628219450112519314186113365410698398649326243933018532108352412334139900527691381465091881767394455873796453892086896705309710153691902646803754376250827284960008789070185617847091663119776774234576190673057260866637614006498476145995767922353413312672300140337601425311310349189789666086442354247913698925144554038006117405118534981787726243611814456134369749324414977747920337181337435825512879598580826194608693456230518174989971802996686381841454949481561667348945715496585458388554379417608523740468592314707701949383635949393211249691049292717196257309586023504582667274267119974849695807681934395702967520637115697131466401324244875340799652283760535233924765680439532819267800506214166302693876898578474171289959787880508763834369624432000316544510683510371231704252327309990572945022237304032801252589466195221465477142563953536549639831900901343660211528972954614915349101269651110879463066792471836693840012616813771867615523127812239898408284225428869445757849884284472404135755371232827613357804267826365155169398111634043434785245499009329660466236054586203177479186768704402009821724218945002652674621309951627366345136610444992644342708333059596067944198470860431679797204812200982327969201078747413583967154506697844345535435116148535144106231839340253318708765885739076935629393558816116665055591409832161360192582023743318806309011020385585175204804494992632753870898881162539588185555324355135653700079307279410507476462872679153277819429989110155115251590234993283351598211743818881450132753414659385957118745500610658115098148207661584222670549406916614978114828566324426275458103106413823312005233480887220847537618537235330184444145429614271637019198636007907130172283741563806482582268787284451341870043577436486517798816162093226916626275005329810884647432034578845606898011749190230360479009607386811199180113438339308455043811139217612728478763345410208836532778050047224611802422916449902840130339368619008815507715711946118133154094595506701048535300634819275022508338083130742109085376118449768956588694191745201076522420163027038995307729245810415850059183066199396221641764189733198875934627005057668728683634606414279572596203219963837859408079535329599472367083110979348697694305706837655238419133820785444809844068649573935381388333264934164478150304103953821748578165493254955816274850455704871696793004397854152396338341544017784160824247125037968715683666465251518250112844457112208646263312538192595106711798874733802580890018728989563982581295220189694384211610160565825489450608678111266569053874190833186986431089440500137413889986887823836522124983607866718229392224090723056038338725112022292098948632154326278467057271450197448896821374752809145841560795067861978151819282019270683924013784275035601592305181402721833164294080142294423514862465100204208676918177245655210400972100294204111583319083284840225410947392345827234790107219259198101835791889823460209343895236994048121223128554324595250777665008220344949175850249263601985593557585624869215337716319343565215371416987493346003092142515793469743879995501208442823207924497853006604727234777169383585405832622976401154934016627921422948103058758699167433135933335606602825400129836750015602102272980240773581182430918023327300062564652556725174779216337210735130729589286693067627455456664045510362134342017927991128280121778206124971920269599869061066962600411436871988280083406894360091903721315761359199402175639039634379767015035601717779333368558515512493196040364221018776676281957585371723981826178828895565428189626047322063254937111511613099449566089967917184917361877493086824538446656487371956989798878930225759778647013853747430271877053940422281162420687724907196389891117286604239273593511411152791903453661179469725241294620514625742821646401063355555549569675526387373056211118333496342389534990613795770561267579302508579313426266327655513637852235959265977282920035901239000079662231024359220060205465466522061345371159099515508904069187917046551656503664492183554866673837980018920483903987200893519471343015880235703220435347899006263355932871401250278916029809416077115317494754681489143557128983993169519001903106628985760001175484400115641904749647572092887414479904172047245839034980436351490308986744524540498976564742445574808197429192144006542271673840298310900024003352282477859244522082275522990920466011753172039422622162963312256552037189173900282131151240953160521831444021794643181968254632430086828479576612906582983778846883817060887678645435495466570991536586246972179902207510980761635832093485483302666693465338197851187155847140399092686552942123202033295871348574237186798079758361070376668489917034678535402021147242473150971672192337609073506453582667091905395330177071569421743079827059369523116418395566481549741084240396349140094870104089648018840135811113096391598206752959119378066232481565553680953605232968724369833987452788808431154940067208228856227146058033401544169213131331606460655143565190325644991943045107872254739202886903710788409528575471217857823090178878199621950221600287204911640150144737138113300081530985742660845779338392098418638988326804183001988868627575420896469805608347894981383997984430341525108487670761550733485648128448131340484642719217044825813921853464995691282927046566871586990754302006445539349309479161429463467097895212630790111881648720455294886999657205796295032673418781853709829344396439993311297365719570308620684832647010168405144981777113191421475809935073531563966863529167694728925695078512395642713466137408741838101910397887089127575068898673041131682731294580484019212617787833250622893976901774743733861485839193106699059675410714544738525886792126601734035109588397024425968838334456017119547501212392094961528630887451617451942441346037599318643126265492143980272379566952525292946976309328650152403524716373876045414434050299301173399025989675137417306660960070483465753045274441702745849440461133259558983085861490141655559242451612397278443635402855599700991866571903981996845372476333673505192001629594957699099370759010937292066138014509682546317028325382753450583958652173907794859836906708286085211134388581998292265833780557484834669662606387167789010923177741056718695366723726373429848328866342968773635458327721257401238636972246526937639505419539333915506675086350782470269475527462799115186986947591494664827366167029380923081041757506352877129199684264601839992328597015238293131210548551523366229494303288519769725837739460794774000697082567743689650318948452412995149632155604798821972608451911613790487042262945060326872327695450066304359485307419322209137107261419848046058941274244998905740543870296445907955563318032895450758162976928355761779764354231817739245531714253008427673144224873870360835058674598122672242629262115289247593216791368822009855458100652402291504418626733713173846056226441779630627390448598794739026295889811210170329549038892150107817307525251592969163467314412443590596103610230256955280925900529323639141343854907702199109701034191384458360341532205458404435891397704575303698200928349913720211570502015084827417485815348386654330295519508103335007819431606580616847529524472483478999692468880249141886277694662141070310611057908777314977692420554742509642155928871737640466154194113000576465992788481227910386520897337912517139432610250684719538360188556125686403136356680115686309259903370760000045330831250464105399083234690922894610816984893452076678483911247580509602980985035341173556438047599649480573682168356586033239324775714990408643826932286660658066115015167362298589073717948421714906772356177678826433877454731052520383550823697707707943794459400981443999863251157549382159946014295926078796280600319398456826572724169968848909773421434369610887690759075207142699146198683337597725221811107508153159114762047010579319713604852855582487172756912452158498332267922778436304018500855842164788171675515315251588704365156575914043927495259192536844216820330606558399833264311628959442477126188489600405610342739183962820562519027652687125610929690140570270471252000836402415228867870574647606734992678827285527196739750199484584950473698271465204357454020303265172098181762790850750788803974038169512029206411960168704582566796958757733808541154917488390857396623906224965477802742901604268737680253640058135998158641812229508950392859008874890054628470531418137197315531310313923154278574387690189403500585035894689667467529148142664701688111866186815756386835260494644464010015833719158179694377179618608118033983959394523113424897434814731994084496870194845782208366888508034530029978385303470938420215038450715779148854991008326628568241474012698150669838346962576533508092569044737822347298003120309831224150372654461776767901327707569113928055710869784709195320746451148703995387977986885454647771100327020234096290058348471492400601028019672417408059376838178326735707324390773781926826395214132706604113255949627273420600921097436449408514025663983666027839396354806158738337888249172055468378896725836468169440729900010427280181452808454571180515433235100553686570454628611289527991643275454065180839169386099976751918159301255181295720557565125478127865375880438288773569010557703651322829572426497673697349452412117697954775354997582873139257391456395552475466063125665667107717512038265422175602657022509506846028014854199644179436671992680635320793082832475713984953049104640977948225576503314072702111281069989666936400982482696111070884384305143857964972116866406254781786113109476829314988436164093533956401240401292877494167038765162617429701259937879594908260864405570404877815718768630490158792118554557395134359479445605586465181380541493137334751836029490957582703571694527326996641251143344715702384607009441908096405337915818305999367052672568199249359624568884285236581061994036905956229758944343590271390095946384787865659829424458835253325956862882358538584654463111279370581171194376917841576600838798305617117722188660195293635143097315892242020923183569475227464478607839904884231411741278204790647206368250380263139718238729533540505178710247009900503894685812030940973669302747981410330977082772294279926555645718230001698191095951744571319844950030598633401342499473858322857119741435897506897981382287133435994324196519183387753018829807087845766808744614852758220529483293324373043915036885902359566339754394813726353505526514556936296623680324529574699348776709368996239779403559240094929276723467745033058021031659116384894274054176648667333332250238261150508699354482766282913142520556602739801243933755963127457796835314867264447822698546346046402495704218186526535679523505239284125377931814272324920974472508840934892067119404152728714953773127618987743329995882773945820637259895511911844257357187617747072716959468000963970096324830485531209280081493432451742623355969213814881527700786990177066663655096053946627650991463559091193493846936791831713835176769137700525731615805747543091963673551453761128773161665573822963137133852977382336607625732522374743506611555161366539514330482510189662722314175055401222886820785723704918810006757826439947220404091730483159265234181811778367900060790759892771359383859496126170223403487423097794333030994292225891268235052445077334410030004163552773119878406814958128089690816324073844465288816320895007379669494716724656233286016039155708627634963943992682271805382352703308534550469249364529468247782094390237720725156072981174013165373376560830656654115619958950591560855939013069010815226430025292679515907134503097852111494960075417918067762417560415517277981887949205895671204338506919894562015193094613339199656260669293680147991422197191166240754562626085036261226858252566314892427220268435950357847339543512244722610185335180950653503714495682111750353965704531782057970617226462923021113030715097852258754813803465637268819069799836366599019603064688645945111101042069232902557398704270318797965149434862732911981111905645372021273942596290487502243325045474607514176144732274735497724252669547214876259471657113282135790944420536367868924153797003171878537979478320304592730122012507687705535734582564901840381901941796512508590087527325157788543614270248838298746173525905041488659716069773931930396520498622106052188941659352998972132071258990697122662052502322556524414727258897880999837427145653043662274328045723230095369284233979965987935536332098624627720566796108957524911761221500852501005622325747173229734244334520865169725615179689275948201648329605204704435760502932051052844238766724422423747474470643120019871192165571382788007580583721462226250346598245436264256095912060921273537583163192395521336761799031053751498696386182662170560465164007899758170268880656268185648429229627219149466738779501028770125490202134920195744766366721735402883798690415800597062609197216122730132052839648612292559212942353394399685991253275289903835903922637931457852801384139141348234806672354521421009413442808009668584509644925252668076633448189419725962434341093288320117081411655698953557127286723975053953671097088092807161825004941924064105204752821940002796610765461598533614987296148578782199085425601903597933434674971695088781366677875003916566206902830716660193497073477844470763082465894909151903011664536781489664953025936585033878248505493180583670843368308485011932020248456018697041757776455662332007390841847642005421573850049836999526709891082413448964515013716652016198278105374282251236123186159097275155901383588328985563547834794799701001749545621202794711340064371530791307723143640463337084084534649623098732521914993603371024975663347802783250706484205616400212266928373966801111447877259096766035433449793351314488706686852983273970824583570388049629687700382028022213771326343428539923223426297962112526734044220616409238136474231422703124242651171774012178985393293849261953665877745140185104025452045507657880340129460925285103784501833663994965239511944226749704193088433356826985543656658023036306018369183304437263867323485161787923160918957516207844860502712335831200607325683331030468942408495199647303020835214475921729694106309265681193273656100757677788894077214323290867076832991405446651538272388259906567321584228685614614197736068103545547626242150849112949847236199402295672726671931481133257947711806202175146023629239257452261232167239670582220807479952416298742509306867635694485247741750586203803291208733543418453088172471068523107137507410549129319168696483554633369566550561308043838432725315109074501572719602321423038764923306944102060344028902837091736893922575681337347977529686302317360022652657839668681019957404651826939179855509161503847558620939422620849531052953028705157489885324715476124658886246786932732346176520314887582373068935095215346938460318312941741837072366069980657272754803967626065255012962814911673353257792652005533658529904643737409429118826716594165257764770988829802370412561347915678445845640656519829028409139420691440193224886982444733271794147932202726867198613344513212067766389623465696598981994639975347168887121132197361885203309125317911955294269910470960847733521530542687127853868348787496115252228318165801069738555438308514357962110089356761037165210669743766632431051933708856108013345935828430078185413881899998399174372312292197580767039834224505281674775992991978543903685523977266326030870108597120053593012442023752058558546574450535792628187945452383187360979440736300042388532195924528112996604135917987904995001467129802589321377343332298075037294031941924845018483134132871232756260234703631298474106360549740985139781334322224431759072897599188055226758934985159289425336107868607727023597324310364059562009090369093535383145786202536711876337162276248376701664627291541094324051326212596259126696204746308710863006311875869807722478544402860765058495373920015022513530492167193818372854949176779351804703466662696789442700308487410530306939734113669331383537734287703308602899344071325657238679565395791937846405810297488120144140187105356618292928207973588642486958648063365051650730331922946418115135854902612639723454281736095753490474971494871452154989529914556962096438794306677013110335286461099909017099613515904289674368037414056522465991384110116661786005647188833182642112024361001247382108981751550172733447006607969119494177961824648027516403886940704840386065147160738281578752123068265460497223044380696563850390865534411463248886857004624716542417160030912953900644253091300228778386544418767349250484877981928045657022856485867570623695792446107049272383957582661303700032809143311991238624394510098835886506933141024732038307945680398916991287553740688881431805034319150571441775723053510115305270106123027237677413295476293175560840577673977828822641401173912293271629761480264314165806209757815668405143179936290445127872003739297689152842930256880115131419777173756634527077598310164296499627692746588498912411381076487988796005572571584667532940344685263903414640349231224118021332348911038817857739231570612362436563827160954744217913837816465072355945750057706515620438231679080635417655676218923406538108491785219677838374407403696359165569727349441357827280999581183542888268331824676607369680017464954420033584854834261391449216949712240558026670518678465317702483433646198832307316013781003511740353244258023520078973952993006706065932083671735474226530122377689610772588706596109385247884891555414116931025503329814376150015518868446453984199753958247069241298375500450401960046087497548744385515641440719521520210816180952655141027705739757676352243002354695986454981565766532617561505982044009597201486169876891343708272121889891543370736711420846196499358479868475715666594196094665928610252945293649511756802542703777612942598819412891137444860917464426421356082296888924799710812458900615753400710246922361635672804774339544520059746274988376026012533375437003326707459298209979492815949904471995386189459377627440507511980961614967288511299242800158230826673965599400949948866516356389918483992999212544348810763027062952897300785615633874775097930253682816209810206323574916327544382662887065942789547429133441094017948638526706411705817217707708405801149534308495409249123144079641374933685366220225487586559675399362275124915800188493776088978838283011636867649557654051156887987786127577810612751439258786480222669460319350717192992234328480978185033580125087998134018243315123401024231906705135971771877929803763420988361449037038189413436424988740488031295741692879139923525486225097932144133918576337079257971080579431013230126492531252465216423113943119029718194162681449581081750506166760673201163192268376132448013917423826235350541252698509245762751091522307816991393293638718398628040428373047535391118017004672691920359940714727229953217713627038912643715644824502866374947241963624116613868216074207332537872607753571309703047474210727998306103946237092603566439949099168095445060120386489101998101979300554846881679434099082135784071845375121016982146070702763601303795560353650622106444183310626812984675344690942610323355402905594755877510198083997791293877838078289029079968536788131930744029615870087111893242947046998474484395659830461196615298165454708361305957623920693894382879073281303910534029470536477885844244961173660564345697671071428900884037309641730441480651904015355793680034515018387282042052890866049448816619455795327221173512702435668834013521586964512567456417739166620213718821243096524526503802779574805976234038324370472286721732489525962952308841955819459355456160325129070473013851595835758108120827564784086451383480597006316703059348753189519951633469290973295471566511417614862500343917171857695672695773957381618797364927835125124663320480376049674985166920653749687169201507732197665530417944426812045401699142576724805387158789362113909677410465067391494780350041475961365376131964211414423627726578975431858298533113597112400793535731825743222259817317177881103776652800676331082000019840902365380605503539410434882965669284474923128389507356237145766338493440538978943755198041267781948397246824143275520111920945441542843407956682927638854043899583810146679468342330204084426717004592308455783998320838746326549118261149790602161698490465039103961226851816603553390532858251121147498736354058015184680171630368207482670995739377408019820698582968786853338480222457269258666657949956005723693965052138811291472932389144407067887049603648822586919039496348552515320654913228385075231221545160547027929553690964265326776467108203230434772624745312992320558542420323605338779750257615584624944135570350483311858267602834365745664456606262431380286048118293781280907602950243429551355889919831581273457050161892625414114924983328652486852397837535327463191019441639065624877077032860149973825994403462892422828447346322033470307861844099372996301821897774312614825334016062612711892121107147539523685528104238914866271586038639440257994140355509033131428275528949086013861826847245998137274514161871775004460852586532142529085611214729054625298554172610403505142661428119939904417437087116394432518202439255632338742325955761695513769183776668859505441254879547137865990142233748015550915782607930270847063464837080984201200507146204786286283863588226907326028021761868851051620233802681534457173466062280024244996515907658307108537993685035189573450303360847490783270102696113040835337907461179150665236907936747879801520032335758162538065930959512559615978539570434016226670581291790265174157625909642734164021592397093894044268310275809328503706383461911548248030180798727790941709011180027161651573185580004596423847999043863120522344686645166570786026923490997226107516677028284028995986203565729185580110604472404013804138132726998754768977825194064734254437271997065584998183063257243228004231977980304784929520701356977809377435488766029640433529914998436607403522046261957288850618903826216367552606890450842659230746649560650410268770138989487104394677837837915499691948829696808020934319009050839297506134451814438886716170961646858714011836623455355597271653942531504679787527583820501945610432121859903305260778000757229684310770036249382318688775429949586853571028829054771425311212326522658291112818768836502543462145493685174247615934648900645436201459960776884610620100525364407335130124899430637236224223770326935382338523551123938607618062121823191540721410430400663212160968413899437839083231483167980629106950997036474390060330486630815676415023864199739542238122393068373720872129644631294833155079411114239408798804405204857922406187982984445183201572983462769613590637744910541839769969371346842817396946153895780443293600361217565089602214656975835971007625062326174710883761706072208243913421690919520029271669585233492394329809083976725940365592921489055152910346661765254328592016274625788865861675737614948079951062542779601820254245748570824366574540559361529182559139732447870048435581664801521483610966278460319836778526212738544859799242556540443577133922891964748690616361820100787175546381435080159442911997776182419351216557120046996643643785706805163238083637866682388929034442708539980491374781190623882582212488990676242307716937806885940734838399356148029898974108989470318669393802662256843088811579901777956805307991248578594535778143430884966441998698120872836254839635925053017093443841207188013749571324114924825967513969841195324104577434123062441234038152205178859582003955734133490908207190594312011714031057091270387551565621065910555945893954535052080465524337666013772456692228590705844271508190097475796669404562354753593065332472071367300380356859844177903848277769431811356448142543110251984657295576255416845339231070153232414561582666712249151241631814295078068204878287140362768057919617745549451284057041965237838825144144458140380871839150376126593122093826411938629449719239447260060643150430148984032425940906633807800365008756453637227566834759434393915174288418163513897995025710255503272556990832500649971873208314724672028931727970438724465928433552161178150031901073029193691038537316850901783960205271288112949685064273307506213126042845487932807591496045680440593431028553554984433237545171837764878938977757658087511361933921299603212468151667649051655008078499668841335793322544524577896656215139167349388775303650536095897319406393371839501702863508048495628854577495028104066948330788089275841565769493007758592533640612621555143959259477649505990767631083262906377899793252878679631675335078779273565291169590990502837702752554095942023453708573983940078741481072238690701406796344607477436159175712252799681465052994254953421302242483612262444679574163917073378606056742557647927141241049272155074139104544553031853867834766446045288051176516311464413178995753853997536536690086085329854573354029016762419609846579126901584040754331551330262513003937554880086148437003459150114584554016507286647428092215165821369794808878653449537666037263167241065619137654082500950550966353034972469787555708475916864269141116423846577055337340108451275606899570734154120260020909686650575320784103105379585783985687873824329582723584184474654232706998612276161566308870969029358561891197389808279829317819644025134953465794252027993527197633578605683838914516673672208499524042369188415771935637820004520690509707541019635311846029054332577976419310903997112493443568576942085035838654365074229703217743295525880614477922277983544942296058582340681659614393575688299827650371985156366331011047924849230688821086819184181036122019187610543483832508673990360865911451330313357699281207663299088889747421937869613691410845570018260007430304748302595423107231925793017935278474740870620540191489428911607508088132912179978632512858231806166253468307198011576923616546978216647252086775835894673500039146363675832913602817365295733916370109573428479227172555730419468272260614248364853092294021723814836888296595738924173681810128821106556022980100211766956025478774497031545995834055677390345726964901407496653536757118973031545682299077472977260576363474530563628491767077942146181958695626042911377804907417186675707147621425398716785982562160341465736430996981186727059132274035104972717101187871348769632278011265197300911963935681728785394564484618231597812521805114374845401557846453647153483452977746243576346261841613160149585084593826834540509671969782306674090690175266872403899480869434362311135995879088929892126405898380360667122014416364103151469273753648420163177415595499318269085251909642891551117915190852052342637480566084678096611796284016013894444068258900370625104439494521409126020848839624662442867625373898522991802467158491843384474522629705536460750568991900686798875837799924288178039624862833213627810720015674909104972699807861372034372310364919823217233111987186160092604762943217415143775057783297759896819524879395517280161220396127606096749011811346804285952162601449548906466195611397000146127295474304587136596360187446805116877791182153940200594229938926224288553463818684175269758162017757233113354142762987474937749518909176759445267715186453976071636658754149620587363058268355238926045607758849032849331656358186023964688727106330675702320139796877232639991668604347565533735045871545884111142306090771972612912929631269245486740222537935676997354223595573445310206559855450415979425428328281631573015283321725667825738982219808445933848368448167279610118599471849643155099594135899120954705463501542251741609569954274384054191329067072788438195742946131202748368888054266674796315360501041094776321991530517509685767794784204115182135983943198876251571658557568527200897787333028012638285534839429663754596334384641561256997981912238745655153694800220351152466824915686589582343659381074182111874755546611879820080110699730348420898793186065437044580492879036777287085990046352829092085042456506430404011752010782437444019274201814038633688663242395378699885531566252696148269093128992679432514442893629690083904292768945606012013489996636986054587578654769710862153725112771548337129227332999463866486815608449422129136412380033327518961812274973521399866522865004047977012028899150449647125401577992200818285395259775663955340749363253134967270958984095718518945534545112955955007014593723571152398011603558028124563960000743393954337698634484946192684112563160904783058689326472538711893293471668538154910552290738366625492308419914229063131915973350646103283627289662946705270049868937401292353060105192553270616544400245863564028812991198228342751267791588634930057626853518510704784826749360435121462829996478055312703852263690647598394315981714872040436509633692343461673860166270489732727274729516859077215879998347045469401829400155704748335006602834337905836287827437536830555383607157485702991697528064893489150081640175851468390349691176011123958980944102302390916757304632467442684141953242334099213402157737124275912025827638658623038872773036985858089493399985312667886012864089021169483431558584789587731211057421862607354685475028759594943660335903693181072178680861629980568974071575219815452263897383728068788540413690641755811893385913371575676230039926061142846150698661699135053061457630709451415200506637154946010226864013998966925407459540712255185389266778039884001360155250739721360854563504184511847814046410609904795843579990415062500335755025151611827157338318277180043684447016420411704330390674307171745370127969901300762412985990811208656756737099234714333082393713108786089569559521716293878143483161299441116597196811870290579667630592053035666855063918486919177992505801417048471866811901288124662284269626848171159035964311389713833679162795290245450309111288064294495459214048325848417689301442272878316120060471013002035826908964747946510490129572895570287383601742488806601011823468711228993752915207534811761160045675014668275569482168838091511140572860569496775022225380247347303371511626797582127247116822461497705674667882555517424070225126772451634525372917951836235844882718116476350758208497387403694510934377845117438180084482163753242880482164619603043065022873007232937597382629332412086916594619532423815764284423804832596906213041918161064063309800060428328726186417194535285471948824906124348228682462071236160467717521932271709581398205725286209659065969305918387163835670695339184862010490941585510690362772491665125384045206569528940353343210202787011065290351063776083926111806353567569642243811548109117882952550680205829187829287860824752870795206565321581044909330004328514679907034155724127126413647664829189580148938895085508385283863266009785487269608086186223194413921920888059864892010388034723366004839175386525993311908131267627394346591717011321665459839881067135618661935356681371962037094482423784072347053018926137228700134597753258247927801185117895604841382269189720298198206463466468444520546605030694431522878146947759041331531562895984103217351848777440075999560400812961656886781094770596445886621641186305246017847133621529948494209936261747530874731842305355072085941007966909147633006130408378026697466335423540267320266976617283524701950122343425898466365504806399101563015292229014782243242960960332615127844070003076348153560669578318878172969523450708611522878595352001938614925795539329102720258870012058284176666915260763547602497569989840942921204502391931121773051100306569900437755084018495522632470852655399358209173369520943817467102946845117631138991472321958818550698750199351536245307323215573598826806037953348164553157975038421004567197533750973761081600356016015755942397128811615282810963736670186614162735235836750778448125095052029710862730795792970201205749089933628136139077202897117996177329718880496548399626514257029010633088965422025319900539194126258127355107306481259873112205871289767182067522628138042120292658300165692258818804832803149747717782913211271302841901238749549602319004355333794752951503479199850612494810313582557688227428688724938382028221467119855554866952793264366484024532282138493589565364129757950017140880062094871076213140153805927808802534893854247192344530213541035514312329711628737305723485025577362943371373895088446509300932719900872065765604265049378151368121425225184658726877512665841613365302364421036358522433716675495461915428140146533549560114231641182876224197761857828996368239806642459734873480279217905366056718573192897147215480162133415584467387277100485627376460765106167642963955894680022872531160892389148177667432492058265033008503348953065368943001126953097519384339557824198902530474202775137065236051439775235385885880672142735714508677647792425722106421888986790419225164810793887789939976639790568196439982510963449963977599766745035867310778000785982520970402069464582172977111235302259749850112745377865851675674393487968763690734079669691647033050679919908880763316229163376951545482450039137714787306411028065865807797210870503131794527322475395189745740902411466899079361349832280420349763628308486160795794895495996935569669432984910585050094950521448334995400946410322363521648888189878524430301745729896488746612604506242227629425573793314971847369190067922397535310652147091212990064358927046180274935473686720864004421297967420408231338307435323720390695725038785917079092231865391755690937983139729326421201938816256594247524185208488528939440665217519903390770933384706409813559348385108858174276530829748997904469497165809378919643244858643110732421468007923142065613333230268881837769341274801246730236492802343812786282931934906062945763109816499794962508210482540632780965904283851361748421418466666717465636747435754745587722125791436032005510203951115542396044149007824931099531540894117090270253120464688342314672564306860856938502205726453712519587177841156082790170664818010188482162899139339825278505981168015919017954773839478553527615013183436195064386176612602203402213284132879594678538458525279887322798347477263667685467203524169914397797515713018917083738360687940712899376531429658878434433320295078676261117101953709458422233265530882695409069387398104604694392398530091374769611930231800540472622817022360495828407392169946684186646606588449930787773256899215792782884243605397418536048914187189881419806568161671737833710410403550368990609758607979768027267108729540024492294463044417968736253172286072245404768585666790396514239190168833422554184438977840964334887925748381993477715912378310532407644232116869518951154278089818812858459589951411892868292887747505289180082024911081081536704320221086508123791425335506135650878305969941571942091620945510442386944245723033761173836768912525368400488967358463124873483560958930790769619959780855677578509646346518976269018649490362736188470197010412261942827084176152929031224123030350619287777169766719199901689563884089437246052122589853411347738943109991106868501040650427789169034113043093574750653137959852728646745461690421633354454676740245642200007039089964336271785758939383272216471334159282360246107976649385885983200226132803346489605607600905178895915787603455002940189973422245690614676842895957788125708423206221994167554827697052362514862573465308600507411593202094003133059437935904689878645552037953312988573173088924350895039004295849516401002888836277087343731068633374624719753799887563436166744901096558825220553186734992811030581658695587493518438399645094842749114996186767810889584252830590654330023087353223370873394447146179342240884208954242420009673674154392899330224186550178940563480031268871807754614881370311928771822609423124114189396912117195844914464571090843491108329476233771821081561831221859676773728586026862458459840871055540403080755129396502365791445593416190769644947588987212912027320965248091547258881375047667073571399016158366334293125343173804621143216161790342001829608851486839344399098196525859112434919179351846470038699395222101856972966518926500169465189936332186235025860356794896017147491417873364151341116966965104577149920168772819620239463720987876995833538132872274280061566599060095735461201936123271195007840129312390412322141187284831008040864343446785185633714760893388636034991201138300590632835797115063325267997626299810957316505629279552089060934247747299050699641556510686245584874187212071239126622330206428945588848919645912482821697249820982464011777103698198770203833497551336149863894449260981572461024160478841194439029741208448574609938274667456484186897956309579420414464161948318804416417715160152760878345689759481136691975967098050092764676343040192125236730574471546479908015511113434876074203098840374232872554763412868882596068692261953060530949009123316826085428700883634759744594829335473086634643710732764492771882826776918316681122958136404069636038058627375293042065281738672040023260444923113510957856439361358460336313488099773486205068199589389598212088621345433567004721485315077840193621159934264366243125881174191243820983335900078764847082161179068560962725698954673253142025653834217332637867858910718035072999002323714639091883274435811661251574512987157983656131477562307727524563547417820114557166922155115454621498411597492890392122357575656709597982076265375490396946694314724360495927347241758577664259964163799215182601592856104073289988787980556927100627702541176068106972534427351283973139316605743509424118414095294239991528927412497803550720846094215186396852035321496456557661527830184500588391745215784271774364336442359216130606786988792291693407978534578156987739985144000725475560263082267887981542288920901147352414613079522382028329686911155783868453677239921079042351433458784815172363549413120532213548835626737329599840230559466960328077641386061176628201708190733387281445687999289210496938173347135139982385175081025047975922552452369771261480899798340264251631162226916685376519153007648450642916618878493501736931960911666317841283999832539096628486233301205358547680315957036381487949577320108207043094342188179644439936874483180410162257310681563617969851641113759332396324492720184016617338017257675098654337621995917842425491212526308707876882342781365126642624509848870102224464816655517844865703778549959442221430487737550296827569825881071989261684605035642849141908913486425822825525149117642313313759704908891272184870159069229785223227700942416624042306412990448901610449007145195889361511314415526680887356629094942681059850507653669688156341289568222947615833332438515479509533697143450891382733449375360741700912246008736664250645356050591851531978012945517613264190324205007762907070235254965289604744404700852358185201922701869198304015698343631671056606032759858823687866116853307251787588816100771589758189798973861068437882044644782681441787246764277716859777489885165109145008294858854803769313951152180939115837651528781765916922329560757784957352402516454104324020153756782368732299037002748452727828418804288575303847292841364630189742690300665499063938466127590886034766883441794630301785367507131452082716120175483683478321289251674536277116177434035076037191112210107001707595302265222500613959682639800803993698760697802189606074570313524901728363220372427314936504988532351674406460803578667458489490735214592810381544881614975766678714459254491989125450665842995613690941571854027570913375765624607945961678931704865685894695700001962602496911103074581169904647148666105456626218753448236847625952666274740810334789045783517564793490244901557858190462938409376362504738764515502905474946560481627460364412688227655732980754636077597536155215828358889770921372501764948537022599143560486772954944440403271259987598294129981269959102425198024163093208217344288342131811782252703146991500855710255870161322721445093940952388016801419177946400182828642993087758546495306033656475059617629851493891905937763225038519771102234762917326193790216456179414762028676516672487239229737003890984196589355377938151289104794077867029325767965722713411420555906639697733818355593425072584495762663865219073820982201670092846153432371617586808147060191877029006752465360501137665639500269422699475990836274019213693536689988123729614197118634492180881015261051343039458456291860226616979272080832499920625784313155609213423778459603064851030599418889243331216410143608356881664132238664776589894256871105403878641256831120930676101403932669225450533650162880989450156875503343591296471570326044310772820368338020380752406235262206507266621699548748892984204787121060273976131950564824161756186519542208153997184241099529075432953505395062107185832272390672568454390619370045577220015781295427019687427838544217191108620818403342380542819320140578153214350292850821264622713310994421010763556929902947776427449538448186937381484085814315338134193274505608988968119245731522367275023315678695118933101638752233862328297066379963974491029770425248600139240047834565250465371017626158830215780197970596668056362342974916894098465402175580062348209538358713575424487877913749295725417147292711954575505987900479342492078794939531884610893286839250166455889198931635493168770275560247529626263198236581575170777635621702663243174874494299895341405040803158500311975468022134955891829733574134551082801678546319163174712505443569486203446554301224093650554998350812621409047764089773408294020015018440448883625687115309291736391414528500817033022085590999496074622162770035105897801913480872044289693551728513815486388596335979966800535556947719343975611438451119513983558079248746135425313791529896749789319837345530044165899474408243062932658692621074013710506056333455475915031615454136523873110164002019031300149059690134813521335247200646153410436688497987373201816045417323451498174776556549159258280970959461984587475953466494054907275984519651865431158285413493206964848283659461799012043868113741255053733551580957224286811981752749935134293834688471126876355846479142110550950527359640763459098396789584015206563254105254623240643260446988665308192358608714386652908244033988405039314817586335584637662774888583075646041247500167711333807304477460702575794472878514258904229745343993541028125645845380954113336242215373133467431882759878923221068816275877372099398551163134869681319402593386654737006912596567152644605506633734037453770691528888746412396425925829354456827761039352821375666002081033212712054753725470659548834821033851945371867585344670146380284080023898195222792669354325358244614155867537399249904462602553944903936370665622375720451163592975421796155013373960426882221856366022291469186094000815811986441681748413612357746421392390063271392180187816294129301664517544554084519026162053343346577094921357925447035257396464724546625918405255650194700846294613779590680468178432960185367406811630309868238883242519124022954041682007392205364829352445492785327501523783139933972634065081617423539958822456179860582474847385475747866164427246169692696533430614480867659312554888150364333247356869758394626699321862887606067646282983877309287610232388789697530866881504523847426301193504241829351349817293630653300917398864781339644609783183757592283054690215987672631943183546481061747567579684895059967066974154838068541484214776391772547409325121441192405702279435767160940118338755251009584171789041985702865169990693551483507000274327939947876123696254556542274366523241138016301983094064517342992827167317677496508065475445777501115617414086265546355167016997080717780967540009277749946960383061650670131468996410718816334704954164010451699378300771604371302850910433828225787276171033458895304876853188282431556511893391622540144370682720000082867952922283165434856071477167657542639299481375748894455233209202322141803924747940053549064072257461206757161673874364597175131183418465088785700392648918853436548763763806661322178750619434574946453635570144919307814185338263532320538886278683291241109398161326562677125609423920198940765799962874487045246064832294887857189640331711112026691218180542244526600663112414824489317777599571364527471218293445911627262800664786933753373935273228976042490905126763887448196614284531133071274027832576931410657313745193580406499400754358030922683559785370233546168043584182551698224230776434835264385699024778044961372427739462388440356794208290232120455508410107016753396226503266123940663047275229456157915172030958694196394116566060140562729090138325125697517893315660226920362056751166996236454265508226975490691005681561930199066617549114747839019379429977121653301209524191524888936846021286690235061829929700110658356329928182071504647769628757142581219803747082919867445608284054994454738582174943655775221261552541526952758472669972808337326595515273385592195862995552164256947348524638876944076812623413497377336788178088740878404931689154062895559456375071467738925438650309167881176277323679627184173846803707236516165020318335926535728335587181690287302891941739015034668427470832261460692623560255684527910433273143293303973097937286958983402107643447285785070380957028937333363385921838706916529186693783947309471061515392198978013338236809398264768920650183586186547417874503793664640731192121278570584995832839644707988693968262108896536709304161343675935523264469333193824424394643960092912606486891463279310337620497361058101900352511211143982254556509518263654135650694369436051664138930427504082415656218273792063808867889229078017294416670563173682575650783588420165994113950069855918846980808805447319252645805391111716228831232492382832294259351727427654297023896632814908264088432754632418175726801909255884879623123827232533592400676135691427585651710326233699856173337081459057238357023258022285371944761595705243264570166751074775027322818696504250274549062102294998746370679271760972248023399977489606897233026221063439075281317160226567336833831179989610814870967661189546942996932564132901793203634489357330527113504140361359179914644786453426122535325049482743236932900347752359827762206538837536012399865610035283579820142733019318726464728582803261197438486359368817901619197642755936516341579477247452345969039022289975020044010965835787193572115383223171253716777229084304683976034854621290005549604600811614896144010756207375800770439118008930535571827857765827327170824049106001994725336657228077023141612945536060534335903665050848873662933194452769808243833892306993977597621664128500023444048036851673551703115756309647898284398413664206019875698975378643244262385085212871738055094704723494993353504307901724993167126316335878475364514005757521150628677495192347260171358380478706397488233590625696798817407005691397060629358497966589842737681579283279894850894053398799053331336798440924445690919240055385598287006295162173463268579565772305262601208133001295288384520696178958892771040833624446616930920723474240481741206365640710065882179442849886477141005931485760141996103246390413890657824616163664641932604034959975159338357105164408886280269154832649733046349193687614938829639699390234640639114866613668559025724857020751381180714580529614928196906359378304283371612938338756410093718030133542944524842900319275147040613114152783707842414865862106523414529992460642737252342210938644916270740433018351841690632445768531259654677403865178573833593523906755545090582395332540340854171018332390952452956223758748541149757560728671818776489058824543080279208710760980347400754070409749677529902205457559114247629312732321103237308424805181130134044040808797862895616687887545306887990152972335569867252877867636010199095954786641765538230875829697582771174879974487889705663975672088639387508826514066904920564249932183106742967021453333281578027251123548214563108903272128007471317641950965277081512766034748093362816427441270631621463951460878636993074058874256094337901580478225225164442116972459522823768172599642031023255622270269395189371711313632267608824870444847498638367423077243622573858757816083331086541124841657162263209207625301458778875067882309451488327708058741470644997173453644513973195791816161407942702503755749265640673904621412672966540504918242857465607760123397386096914558647613281021222660909153282545120474607336887224377909239491397727936205818207688733746568953231149672611769108766486531371646994347871717558310775565572103435634807842346131165245127592637044292043930043510786405884973588497233649398504461658900149533608040736789275528433962953761123076127038578234327785509893294674201274565359484756699085557291520652364338705750781591461548383452189223019744913822972277306148836430491965833232098214692206649528889654315809901681321187409421832338130659231782853135934612351882924273259618384484311057200755180032802405043589658592924870623264979532517611896840864242390522837311234529747183455331861324060548213122745387558542739323335791056227757969651279024187548562373409079013814611260531111952808412704835869535802605546052349234726770844936087524511924263727480262214611613099135631603929102245684940043837924071521553243177680456134615882430663229070101525761066688168944795419429035158932437310990029078103045285588005618843175420116814054285403613560315055047387729815622868293658960668223350124478373167354162889703981579491634916956156922169474066833788233071407065115225765614436666563410309853272285450292382224208921777561392430668119497079421727359132855840735633220687353069316565334049103616315906761489205287005152771393170413217061093335150818099316273149832094701326866409767807384828046567981388747480376285156852831506701475789035260645931918022124185456514760945705071817554792733155666577074712149879296051871498624985414189020008072740827769835697973989303305045155290858925780259740072935441382859357687971575652164466687221026810425367141800188683029466061020126939867770509712661839920685806693539083352293735918971592540963601690807450190304334179125869346241280373175216830774246356939364980779455937179040178952727166203693506822842647221247020357267043911109945725257676955184607734947207731436962652819631187580363447537496459591735416591901609208383878958816890898493022702032767163497881593832301651913253611729399961558009963795344131932596174831604095187380883172826121250100253317699811893823472788966996944969173271480238421023565529028988782727202631011788323386813165404461402177829945640383480939744078861757693311781328498184419432758220771281473577714766694236321565301078693353507687011413276932689145611684100591055117019634784488919168965954485838535440873005086744898361631006238955477993260636550157884812823782070791575299366220148794041219240770974658115590905341890299896246234707823890135865376227328283008224496312369984968121892755940511280957105213242481124804114824854326876156308592909545208738744065995659634400008211367117375378701449614724967743517051850826689300049590085972463398195165218482666791899511656678876794729726459818420330105612997389165085492056845877493808576109243125642893723660011877174464890706877747741331027604873813263325451377718621791086556908416614101983072027113976213000773792971389493727376901589095160955290023187440646219299154049204322161184094326620307694891211878724570074299469928506123230766611743715187534875403896086168968554515541352903899841135275008989506587276714541307633853301484483468163011917456291499721896943729021086008512767733004288571645177610460003020236883716087935391807955413435212926877533773199790029363841049032877073787420604533244812584377166278888044729567496440677782929079125689998809759057426177971603464434798487634896922911516155570434395822474399335195476876896668471594938533143395077365788487880275116022163818473126875708162264812838437892564058468936833493402507291676165960901622298698586630430480707256969087218825735315293857769720615540754728175566511664018588277790878309060442074502344053362092271902545519134209654741274925495758483445491841194021056715897901536175947577113948072599092310849861773123978516304954758863336121299113042582055615598668344193457821235851095228854292387814044379999310588535596307789956018467823368258491758998072044250100160999872584952599633350601799041412965303289135945610596298204825192189556911175743774842877446602428133251269823553940084089447174088886696344036705864466564615344329412445858689795647485180479185856118150292039845187579326745803927162952481035237385612717293819095919260690912426395793277987668826753675433375478665143030547122482166611769201524145025580196288784899562125668988311736786409333583935244143238726271732305546583516853781224699887627255074219852851036320997914366092101346319528973267432791795457884706386777358012989262906811083972482209106787001934800941839624626879895075473235353984938092936668891406087708477841491928501414413840127826889488140590472689980451819872932741132257026826852913813031479548848875595028514351969290086362788634270587768978628619659606982390731442717785766950669176690193417770615160245574412145822895527925265091365757899598732471141863607588189821260098618324270213717225004292567867514582086194936147007506438833254661840793488539031732964115060031556113261687376072939734079116092867438076994116025457013272968376500092983703275003386505018650118497244535839498205626432350988259028344133522511225332958380679568632065041648182730412599163278538106782707615189277284544884787618000773175430398275586143080248209947967935730259230212848295249101355857231612923801730195513092790441181710425667487819562828749973271535122496091325725215109261014236923818560193099302531103881805487357907769464947423293119501664976622241033743299106223989319707299207635399585730965487114194645187283955984068607014340569166594333240987408245574983642530471610193191736705827132353667079713514211993810895366495168554047644242545282949965319049867983712037230862824965669217689412287394347130802110777512755853421653050027186451832852236979244011044935635482245781008888069728367355066393986937037916526799947547984366717131221498573817476488006276538454463564519417393706799999809744686344644560033978234259835136301274340794126099282754147614508143784864582679094957945956411791621661645113205814694159913259226826345806095109854404593146560446957946555839906670632679400380408872972793174447833286406160280841496487236641096469286388528431077564508652309027905801172157177098405345267539080776651818465168780358035183649008847296795748851727687746608662118665867884918969274576665449045191344007095028698990409504123941917658199948913567779495356567195422942070636595855856067895136553508346527028788502343903623035824807049594003113071256438342404603233976836983701128530598184010636355877851589910582414470964773934950342782513542681427250496035252271484955189390653997901393071267853599225733986408849554863776828578918729842037834546433322566546823591783316213599930949942754712756030144263080332217839127244955343601957695354613755320244804812101627357310271343273152131970480664859907019173835788226933695896525724441599507543799505167050785449276026618827112103251858128519358847093268560080132863001098102197253371820136012427711102272114623702046946161930475463987221917211628531587248112805978958245794639692881674170738056911614471833595415023527301657092757199034767655874982798500649182949751228704001434296737208950394492883783272882145073492645881882014927286598331061480966256449158425667900728788900482867552132400217083553664900516695445489289712400941772676392773115551212155523032714290990940875876398032650444285934362390183147869533622169738880005849091194016374980684414485965117547084291668257500111507717765158605273696375378289555796855195711163003827444592024326908863774958017382031833633479239006392992324741724073334273774545076765303579439768005918897671960117841654447252229397797015386465563243457081662646125803334818731828439661681063734219640455428492824292313904858152938142384668519139291089485867936381953631857937709094545880780952463950599027979674374462949353555757900488161328687720652523187614211720361352168338624068180920243574675258991616433423447175382732947767197252892575454449191548726701359277599781975669341745750307351444079279077140445316291064343920856731428932995600578409747957112108338451683618246172506471356286548107483934961078760941697281947215155791323490507493624109301400752739979802600110316246938273553372453527140512382777267431784044680651462623673265664318026694827251799399703417981042174215867543158500931666791968199900726689622421059849287021346258371416306395758807686744745597390543960776356781714101336524623197521338496136576728155466533972238169574076107409102772071192181133754307720898879395128786271913321009432963828180824517029017563406543088810931143435486234127962856265726340577813021374924272551786911891501588934140988909830249317670113844340383803424264316843350604217140132681181734639346932688522476480549917551630749809587482556377610258692822143852532659370772735337013472136477871813099691333008545047417088213738513092570007566370340650052662863890050255847471873059860322308839172227091869034372862212356814977608650166306952378695482571900779406203793098493366784410311774430567969207436606561673525539826874961153456811024597655797157856457541977447518788218476089284330050680938003776210043549818765931308221371832008710942122678251406474865209852620628011471922190167055622395391660421522446261302865839298755336386745124262923758444006939895096815150970607330065114481763798776790804252766084817344571022431795603433852542411332930583692328312719463115577940398078054668499788209214861456947251026518796811231785535479632831009738507206977797525025590407465782572768503623015815803006733677102407536225658703733659099720921290303458894355034872812055998904932253980176610184693911406320552856559615086902086907585885870165648584402486015419216742144465111423215097399153380773494097540002665471635166639320415123745099862704221927117179173721481479366530704887446600819760465900498979017194363705534411985556126381158094919848458851927985996125511566281297700186030124834299643357419797157069669941035543084140199771604022506327808771221680337515001039183931539873345346155808381617802842931782165921237090523779554437316760400387788110465491690009213111189154038917084495316181309153882800601680911494960067269556501693864045043503330747803516647906588592117834633522578098027451633447386595297679883764994814681955571274856330056141947217747576142237738347960706934835794881707608016318796934524272276503774906656663669133883322334596067406024740025030759070576258923252178254212777072254933505052981319122035300626692120410136566052281883392940248600378638232256303027879734711144777893341684865201929481752824146922609039785121708110001339107531730556676052695009118098883119529675773781051541973847760046481985034945135395877411622757038228593837620615454670183285095522518383862190628816617172982099533589914858167334230918247243303488180240360167659633442880187353720715020491739501795279118230947105236746092786828275547681559450395450384333846359281058517592342066080623786844694139134249979970265969723712377111543011668507441652726157076146001673836419016921626139381238109096041158409028379006902212285565759086639746805158191483818819938374091123721997241866167078418588529681726789809572496518984225697863900072443607064064642993209421145847427340135600909344251955212380301039865959154849297950380719588367060792686168719007898477839630402282585846834055931008147584777814742435932180730615801752739804813510060609511414854365325023334248069667889426315362022533083073874711554196731148610184959212373711553608745229787176516572840672024366620653743213564557575070729382585057864909708552022217896064196799232166108003423627684514221435858311717625516086117573094462757120017196381148380998446978587012399293695423482619528879905724423989715060266208019543299041360212657730960767805645847689065779731250066617566077281181353859583187744718276580880207194248104628351138522296782587125944158390971825981757461048413702613291442917917715812197976515059972740009107891665553608629995202536447206098682558853409581545695224688302953221197857617538273095180300295383476217806234588901488226610986309772954180429399254351984570210162260862052832198882651541003223696822781844520544982751161333995933705623140796633695570015079257394134405636034548867208209997977448623087046485787137077524751837818506393799297910986112854308020104723507265980602931429124561668852389342470143314593326981377206314633308735510336043150779452263416033662163770389760703584758777155818020976128174823552044708462964261722964116885968908264948133822801500604914634235537422770202261446249045548393283705905409300287728033561006056723377230117308640737812828564399103769403659402004417164456997708332041643234235513967529089461576105867725937743169950055887372645771456808781554532916707154917718076395871350766607751490459357942231515590399432516061489963859234954641865126500549787951369371727689656762845932073879133203095648631127286302225102153002647024241338733596158243596148179285363765582843581312469393415669995142582746063729005149392676306764707578720392130797901472437350098340796289633368071929735853004876237656343526579804306650963014351291563143030443184369756282525847498704036280913045923879801290229113683438944146064915943941737556997815937253924188036195702095176873798851929545474919636967886259374907691481752553451876676107852617602512827072314701097399826731670403495834484017888368344085713858593993505613138146359095723753375888771146598671194248131676121250624659119567390757498531340849979783684744159733463956854580187957224415184633154486786126383589937270871748546054147110059632819009761510987260591489340885426939343256906312882071469567379947902767253828330549918151543199863558633871611539218679946535382367207937216579739973668893703100235889758067053392270233070456862462964254765455922057471751492735001438026486543810766279990803245621138538883090292367785502277134895263288708515480891758718379752311887142429055673078893216942544092974187753371031297784794540513520001484972448455408752544468125939468889010306754456237836090642390125959886745422243046360173118423166782910451428180072303154438992821703998077364171776383238536534740234018989083755195209903855404398729931393337060381965627590070432111447924524929744071760735947750877560427080748638432129261962018802480015837639722002214727132588303318561464352723065453073596075323876372173254938743367665666707909145847102797244005481211150942484105321740496270015395749022459735336847149066460323082557804792127951031810274013091907914778100861522774237294323557974797881848567420590937537470283395502540631900958330499558116902134507347356814671150707698697815141696879188930540576894471595891866775977417377632831767095756785077000677294415356588384588363208069277273207036755260190788256536992633810390100477852229333896341023290865531014168469543162612963305876520445814507695887892035883517090929114457225038457704560181070802410993480621211355363492662924471612648290462054690554300290318245354832232560680699417278203154154437881340823269895452576634561072769790754229803966136717138378489644202985741355284620929533631628451074914477420082089431229991029162050953786138030428238021477633458221323126232000836833736211864708892851169980466375116640787960885927473267175818867771655060594305428292069060271003911917836291771050418554784434364275571118189221775036247764300836142403624583294421210292696508380369336514675143078397354175740665194098853133356714313486809220922042809417372456171024486869499289277842653245474608392792838331168722902908248345358939811875305785056464642083341304510770839638414661051831849646158728643317145052467631290949848004393267790608546979770474729953931657692144535663108623783527513044438717230487208387276464720778126770397749625559828728756860498214239422107710950851645430521654425362041000711570704513265443605238944933004922519550860374883667914258789254925213133865699500886767724831173275104085462849797296646334846403053625507528279372801987424177371804031051077474384645660125988768919973908243747596407044696425928716905370528615181979126786586429545872739169647198218076455699633564205146889437533654799580100983891842416778238657013094741794974585502888961678990382086850005702119798325612788386972682732884909702548951467681341808869591000963553274717411798415970618157955627379056555710416254262562616017685892146501454259361871598934483477479544822015230727720728376600586006294426195339129024825745366612589862320154939406755496249368132690460795089708183049046046977870599654211664375072063276301801614769917780169450331402294683783928394442868839584234139223871874684071369083801160244034157019765500210670503738885308788521337053732409869937144491368880194072286459748045216748738988978185136835060451647695091651643933050368226632760610595680495646978421330904515752856170529703316093665088093383563647464499748774527025745615581969824650829941220481915094305621953306067392944526129759669528938310923494375940720148556612848927295910003502576145169122364486531730267558078870712555322055284032679027494458410284655551904992707643601902149919300646429753394445737003032199480086798198115201793528048238275052991873791868822367251370718988289818946715212437946425490933028004199607736832843169559771181539357926487653604476418677474608982810803601348725253737853118880797217574720311867445415948375207314216045117277573110117596080733039265307917207897064872789641472676665477033726874448789800694429115975488918263417393042218153090810251926226478954968712049461249704669966621691114820007518044663916638389397535009819171805582116458727249454506231137346140977905923841578823377526056409027723815790126412507349027417022883499037123105976733641436128341336759756279969609581612441968288431185164482278719826977784910784152752958763570295972077480259200936356263686378559892536073541727046999957159524856757801934836763199845416739454604071045281303045599526096502274505363448596620089175921571109424906634100338586918326401673410120635073704391075037698544967492254863647906697506320133826734198470565978608320154588149224494158571435600792905856102192523004597178026855431763484557447459421802559002571728442821589270217428142474577009111779746953454020604066208205549915910119832806956301695938573647450989921053667127031953734686695720906635726346310862690666601613683369375095144307814920572944775594174783716908182095337203932880752041961719369254693774795699421932670774148153895611722041596983117280559653369718006318107114839924624364838731401449662867777103568073435457193302671381324251843091056846596279852711340137835122474562045351381361227445056276406200009917255766696845188975652395658482906038861725431260605326542672014417970270601833615387782029059778843625596840194944570785258640193024035633194108603763131013848334395525863602151661773071065710839831421820190418991709233171492370918790835533934566285371085052498084486908809974539870814686546693105033357580804415752933948245429391496350199397877851722593707763495708950079643022843654006477580970912959544175369477545049929119702481561177153100915445332131365995565665634412302126709352709086786157138187013182581362779514580653215604410606999988889079504636735380871158690902621147594829620312207271516806841339206227688199597908350218161002210551272086102882410016195560253893161592688086783327347830995245436162973034964500534010534692479873135317801029995707453658547225958232762343430505604015162866593641340806994889191390340775869550399142245342759457266422618064109087352799615703685309389547983375048836356447892742396420749101274070304163754231661165294344154248240214627761181224402003595016411205854812622577356673002229033413609825287841458278165450836910099596605318067574300981665307335888820879062571892224722107883368291444877215968525046645726356623949926950978697349343621244656682383219861612979551862529025735946937663549291955080631828048001891727460590464596991255966233391144984491194925360399806761905145394821291958948823439946085105766853090362896705029069006228976152945904248491600668615105182878913332880940008919890208869261696693657276000993998884494117122584251142883083705267353332773879224757919230605992454375826577103538469780645808237480326722389782979185863603828950555910562491344109748360211070260808042553427137418431410741625025358692423035735073566479050330916729665413690926078433741228385513646501962911639091932516725033879232294692540917489042374227953077838400927764299564524106515878980183028427580076662846779803901763699158138400365006365850878623158461315231080468803236796694245018943292952338649430874382813199175614933050525529086531686313277105381888516039814069285454959437394716033337278529900594516469356032355648257568062142993516615546579529636812488975932573731101446925583974285132379301658479997882185586558046995745150308063086917296733178967292215890972038217691356587313819867640454501561476171578629200302325734847717217844360000033185245473973175201774956049915347532065372260045334776019844617682628304742574661675926767178209358910741130431841710863576436061930141575129587854595505912701076999762127788182077883417185255972756870221840782844072352449832248351651748652319937340875922249895627896587768925257214257786675823364816954319632969448866643178851737043140228500678853891830670491941410308760930371232448462804720931054764508706403951971049311452609901643819044951388357840810539444601047114236393744364731283866064422814413148227855475138168759369648817726177433296221206112027128934118785827031608058397447983498326099638658415855381907458745565396208583549800665945808716851895064577737050070325130954538901271034998076511224703589569835877970422661939302093729116601670082614480509089408947368293316511452405044595117864007427612638254984793630400295128793200967162779597526574993530354439508988544493406890763317572685832105608816120795234511936066260524843616464919379959166598545744764387950450047707531295065790699404560388222562494312255515354733484938000835062772724474312238035243194386997941906422630437370531770108041099298710204794193241064462199920291983375724155195838413796017809742752844761409850111237865527412872010185694769860869072097522852280061778021736123499881153362000472061265242194069332135355458754656340771429897065147289886938896638116690114990219858441866556210841269638488434079570990049477802275555755343086002884927731767791512860908065346506928527893651765232764178113035963227521015965607150721877006121596208595805428998571433081425275497676625697774731349454085864986048095107803345277643867358150715506868041230900061752845306005680584311962515178125215380969822462796376780797504651177476454576015594166565134950341386052036358746680400334581264202055087084675403169858626973996471563610792162140136572760362755981064129281326225316265170242506750009452015211454664111292405217491259520184246298395184335741586888567457676617955733309126152874338693473330803132489331538469600189917038117245951815578649225894046469872376125715331091791195652752281823370637301687382966959222708036425101918492608756863129445652984686829750076124469124532269269366761761006045734267268527917806447000401422297324306052311903234081105701143135417384377423024864821516934904103962389998377866740920545939380589649017667841209994127398211681729330376980635198306760499343771834572126335301778228566881210090600435160496513098224432868098359798588871160311788894756050127074722853178351843408694868022994938788159292622933110158882886229252266165289801857122983210473213250146506721033295371673320602009050744789543940894681088159932499699552549375394590015951915703740048343949950268980520088415148917715216855628195900709775633907511460929764027559138175150021831923756249379906845238298130775671859642639958210902041753733134268175017208490717697016127167000539199359735534945755367414639498684463616725289691501369706696645075167802398472785995108452246981817708816176507114799388541399365025786902452851979151291937768370967645700687016706605792591329652065660963883820601738158424713253420641470902486986732165503028340266643750306508337339995936205624127293788573079947699923304719332381845125041920924840703026027975062639745961735254540566685653428975590833002646448749552935869026228921624533841258659159915102224752574052446566192210947923898529313398359862588251317309203484712039748425330233991967590295367865293127946624267813058101186801711805177913827803453566293094146460276845556409609550860744919979213723684409619280426329871489793499856136611954949562253898675178582071481104701677377148635466500617372780982315080531552218749551328632792452153151360689806493387773133223685681476268623887647134720880560607198569994699584696907515335368657266408594923547347044937937354707908687865647913748754767958081100562273049423061016863710240013555523106571013670063620770156003485298622532853359453021989578906208901847134817033689110006060530262159856937474540885110981966824264974541094192852271589748895066568073114139911781580318854086587445278398256013681827413168898886177995120367276071720179362765212140012235326021568890506481654978668482986495207926439143507932239747456636703824487591809513365757617886824558496726510766897403701083112942068505132087996484998217685906280789451026487387616826118640267246401803983645441497108878990002343455262845537069172180669579481581363181972613140780860652486123459125439324291468609803632286100908517565876651848960810229844248530425694938794981585902689221638805197251450473865205214634416772039682709911018493725904315864326125033919774718574939635732782636831953741288958654546100783329166596657009693907627905776274473191268434248013833895838834655693689196896094930678624270854898019415390639033140943763821203463561773555090796782265306708992043460432166378029075478509603913643696599733369514525787251934288798468193253825311074386204936484767151180915403012731393563541105662836177101535963896482040400212833576228160361009419069332051028211296390973146853593553126050764928283992692830892667439042766367529263251413495272493039444802193120445338128914199007719105189579249918755580429372304358046613208554001517462014793137035990335264173717171758973059270905454908883275036410876956329450393767975861869849968164541765833579313450951952131412826351204816045893589218320832973317041171204555949741275950014248480878585944224381810254924179880815433345810039159991952572544559319454089775879753231028214074415086386004269232123912682814863723773734427235328170324754240612583686039609443584821909284408490064600340381345945544776630612021741658709940801453317906191434111173294433896805941674911087068863364827832296738161372533445609148964329345647446369898963079506899197994657054510828828711021101421751928971279046438646835882796716139603283725765264830546291654729719636323481574086458391393597035872019234567810300542304596982308725474157915714847553856289173285461790533043364002565163712379634304165569223044136933799575102437615225591169915053646562521657987268236192115439246400110587736055048822799218612838422650620092561714655423903146849092845137445310876728046465330109528070257907914837777483443799524594763379976644459747664598268606454290517967014158346751381950209979902453957692299687322626658387033820333416899669126465786073385067587317507003658843729401287041079392699862922387245131685206928326531702213545727330517151981998598045097263075033036126840268358834622559243586006790448549757838595810457331380708831953299184783815205612171151582327128115476772428311936705100659159676376556259564756741393440159329331348271351240172029954066694839239826381092233176705143492989613821892313924395123313958386916148796183088701343628824179448825111188573002759888820210501948929100424566069617802829293706978961027930820615058989163430552371286221958570578470487706011375076799482483840800321893080098736601291266050105495482854979021424593438039145216724805165384660943354353155872856874472637371166800916310745472761031380265029686260751141863982629248023058755235955538512033194047785349100885986145900081616122747309164249442545390188628495402129114879488621532930477346438409763150080552613106801701013324318884913963477070070797110531855692758982216658590205669419648657185401956708353361948411628795894192173349401615137585833062507163978560339298931070725389699286596490784208685485538033124425442886082157001775312823815156704980991532739054250747482996207567295894149054761640105795031923564785458446271365322538292172803255807122758694280519201740365300172419873904400492875712698336878796889681722269700752668950779157857931943783369824616071425575525573866524742785891694518525694746026856920864540048795949323335513450612401546688907638902754137005285495723493172578372812361012508865214777435144495207660595125517244029522759680784395850372007754455690282700250457741567182967414116915275040947852606846433950196832779821558034095949838033356673384049173427602938023374370701268587981209522777538393172973577593533599340815621833085049579379842813048319505678017483177873390205167982410301691381772430687921003196959286863452376704954082193007655713892272200457253825525537299881871630365944572906574495846435011942870226543311456695830551490980296650291194146849774876530000971999705228762149555043831861438528774383500841173361725261482205257085812294578690007627114799233079203709875215578995974040245472936802025120536108201223604211025598065079028842559973820832118155943835215496880709493016590941542847818067067698352465545880368571513477013891695537884320326847756108464865598426104954258623772216377361464367004854498652929400182253207487596897831758840187645921274160227421783396000784810070828959722566915559565187016621308831782168640213468296942776485406895248574853639481337765906878529873285201549148193131217028288975095865869251058651417924298240068119018763974270350595133766241058331022367665141650129597251035752362684136103432552511792570798792864517284534760767084605037888063906517654221091881239975381018443869605776740218695117206707748177802976791000322017256954289156384375031346302377119650515699191953959742127182269196214337078879930553693044831334415974870960356711635464657055264539919408739622864289804011484747777603544255040149990811434383847045057832610599988432295135325588003961616417176710262673429939697654966591395161661673251449475169928118240167075246163409341028016772653140446107623414412721097437184104563042011053995089441940709427312486053277039800070617840394064406630086127753977782657336641870446326692725118098273625617255311192927052907263550271043549685412671880188022820164314527017492425965047546436355284499339152676318276892728797015375566400596394353448020024305998028445081425398360290124885207462617434346123999926878008429846416203474575588169265032445498979991558246430976998740310552849234087594084386807747566908598071919351014792793629606292098381143878433909499898995741686328541163587571845748068397760026995140216347687194520846479261049376722890966529017220134295753297828201438692518207428909715983176692024869476550932708034837407236071916488504783065546107599608648453854798345025665972841755963122316458654258728876697082769930236607726980518322379302255779474188498796429319630844330355219695406140077980631277666383485805467947961407867305248585508099725410034869217899672501705751784181499137152433953863945131255702191223999441664867657709191391260473349131811693759024527764935124082827752636371870051011128852041030621884569543993785956800327022569405565823912385226975914756849432363461131038577970541269534632304474830458917055242039624465653357206811453137863650650966205247656816748763750802846568038458677975688655118857651792990727722148892354741939648469745748200538478511951294584986825645820444235366250540583190250984354478496388427847947095542966819589384678197302861278847123998381044229726924334008779570330881277015368059447922211641574999886913280132238249715168944578482703099033080862218755740748986506543010464259300586669469644360315522305127751911388452197239462729786893245022719240055665772293460586782016192386023312512562278005949456744736221478292565005939959285012227669812135321916234582710384307204952562972001407419858027952267326898013179326261826772945841269759813145219276583060777260936573533136566054125848481308990925182387062050295556461360757924722819086760821022625771475472089326698001048321783048240111388980484442467104755568105709718376995612856087627019655183907000776248196500510923430283867828334493051729749224596210110522044351728540041880640748868042866647072095319172445625438675838525289903123029692677418362865259081484461741886345205056867404105072118059736040839021777462690399476654163349676461476394242810969337313045864318180859629696822136522524993233006909724615477139821967284374878412334468007649394144456666611584709873606342626918109127515253408226022489303385588673526518954948124490635805250592531437741180297893124730038641362649276734628646139863827440769333396900222351425038415902257626679100082773871539737942981852961918784702708256694027618568098654481144454384045536612889421300103974929830734905678537243758062346837672540416468875288399754832450114886340982457145121995188733706829044738285635554528802208069628147532646221360805360351606396295665094733560589004360551173967917634932129295062255829284956064644581967264253143585584629158168772476286498530958692502022001931112709886368244653058243779451257027099059870128538810370622456182752335772929057723999067196708915434951731095734392386866660138744574955372103430547543612720526227461367177930742120630112767137913625440649860538158718764117623673997630836263285518181629802757931723113632354011144197611746320862890207843099424135614363426812780388493097280022954738225674139191825402963651853154265908511207420528211869498311932179888558112332284254175420018519445687248749350767816037081566709022784153152148599909180272803576422593852862244443494409850517725078972193951699883269756194958042376807578755757649209808603818483084833573797608820629314199727457897212423053971452546375008873910229689930069581727163553852558981916554285990240590493692591959273967597335131099518974016386618689138847594784672770176733205128898237975446560139559580871415000072192580239249175630573536020173225109973794868759988751974624044271108958621687133909642527971191187735448768690260999071919690947319576572632281487458558991890390105491411592663213992832262169884182383310958490385128857463203623120110138095342437295672063440264785257760341093274552946743850497860086824919379312145550838329325040135188338381149362548940297280521423505459324569065841900843452142917842306420779306446130247365883541909123810681301352233570956235599487125360981381531266649674009476701497612098409422449910952836935185639752439851807546729913570530914982038725203405498966122600174092785994691084327444256806561188247574929405054294563347392729227396016777358129850232284630790691815296296495033365536184441536055888027971205339997597890211106824179586741800461297582072970560671495479418313675128099604452225493735798683393341000886560899508416372585380427609665367788082161070994532347996558683341939902531747754694850938844363192879670792934105726868881108195394432648823255190453054984487373077821280020450261622721968542661207026281877705126007793716826075962376662592210486545445679625460997631009852163559519254473730169154839109713221556020466303571122559983103177878779242614511556609299129473446117737170266929214652984172428220195441710751624503887519876986442416127559226726098692251027296372075933961479088086778771039329519542426511243389485435993827023621918578147031163808862058104950532182124547298700898265356393125829646134800664104686805453824820861160016797178122864670419871051137283379277683837286501272737965243066938070453561325041939814856482895684239220139741983895098638219471278956900110194877320627182296244218490128413710234846264797733358938249563872025277675325865746493239845041102860811229677329706487946176560702648298260366307893970272713080062203007226780664781032476890174430280614449386769246634221217487277348704277388628508862543689484158245352359418097365506609779470784999800475178076056354042971748904276076826110711272005412971099341509124622443851716904016156944363804771624812298991799616592935898904640934382650883642932657176113859143886305443047621448358948251409402214982704494927212901480276422042502292758483762590259541153717362035760332251974062968032548184006605790928425218070128356390551619510078835147359930377178770526734902889433715864749694839462380079186031747461360097479472652543238538455258934267871133100897525426561762174800881768444543070693453492419230722540959805845501609323072824939389145974275360115392848460212328030049130916323923777572245541286417106534153614354417329171893274007361168444759205734379444975904066270376046103344540862809547271168139310245039515810479279188771104207370953584190575718658668122074151064250603621951163207193606417098470628133845987083833007875669378836983176006193425147163862344146668695046687925184705364636720767070485964678294080253645272303246225702285243228201450641818920423689563299029754603221387606597057218198059718498246743224211679965515723509640220681116522638400532278851907603028678762787579481510317936486992523716374606769029636177855155748007320486073830114919018086961809736170005140041665703505617904491025035090064144216625387080055034612055985526675025678141940827786032425866651484924706387658164066159570643974571116522900093582116545047741152949750732261752858011939963764312785214983905883453090868522243162559393260977976016215642497333468434134530937753965694816251668817990198128752422273358145197575134610063965962714815982314633186246601081017104320816014632651870543727113574795598801776762250607297134807673546125685022290886959669020389098779914205118771183225847307533656169464623616320839601758681988476977979011868501456653964996137851229788586538651922644475741817355741300708392329335218824358319261536996815928997367444052503445862134759631639870209113265161239685935343273970495933859739106481066614242801362488605838682623238918659757917058420086567182901469307375953825662721800677772600028672301884708195809423481009834969759024667687296958665117046222740471851485290132019969099313885854722061574191197019175960450375561306321030348157233925041936407627133140841888496342680227967758271014755558382620071783767000660509834158175682250666608231900660511431237095112728364607594943158626409709457452807064139368730847288708793731923482730166949707255238041109723857986325238620477335535915144541138484667732727325068086863250356955227068829224399491238040007828536855655486151067485194980935687031988677309439421863463146260997337567537147442739303215324065077455566962176416267858976385299323942496236226448727347504208241700354866443263851966539661301698424915801989468722484687020340768255844428890350354477191543107247311738798963447866502820737780242327984565956923976417981199929470142487392867192039928255911837003403985191474985774203870555162739440869820265212277384314647010513716485422952530264867102687232847859887258260086066022808699278242735892851991931778105716974866421620179562334466484451066653350106870750718210864147284656668536948277155012164969180931344728546836942872374002891079103760388014253643086980353900166846969237704198894349365309133226225800462620597366563596827180359884777035633407658052666045244971495637356938826724482919767040354698781795434377234772341463063524806551919963445260263815918874447839199492729983978086680072311292640321474449017435743191958279632413832336854043591150608056643324180099487865204245160215271538471316095632916017440543326759907451594455061927384434304085834087785426184756815930642775201914865910562682892517449700294193450855937411484496680617710380491652391168137114507922591851379346832144555795471480644864067680268186793265056107238723709784957340510670664431701507763796927614476676690704478900425049256727654081753856633826016054360501482267362621512080510847491283450417746206435920985585949446470410872372880026297451059336532527455828284732433574938681227316683451856507754975212376968115637468757572600077307503293261804997059088431569629686721893966929034430030728777635143916353734853152671399822645215436068232357701918384981012812254070654352613893819035567365016389943712053341884318646422090865160720854928777355820119556369393769345650245483652230713756741043218593215361874517815853556274151999131700592103244448951573787407708849791627616142071793249997434631113589625245857110205349313545696718157421975748863249272919059101875644982626639232987905775342913633412027108973059127661249997782821972214807851689126584078275950850701821655466580349603541258301920957175725265508924960067901557460000082178243421462033773416096007083457377698443031514287011096950863129937475597440624690363481048754329774947433734543490179511864610572442878404457080945502314617403888106107472649162945320039863963290290242790072512086669962893549185659556347220059618903178705426830068713476236192737571396741370467226823357179284228891316958368579902670739627615888051532447776656632434819247017556741780387042259211024670702793297251780363179782021633487056698735059060824924880719162846332806037784964626259474505729718871598723328920809306884362784968066369775820618436438181285757529584266457879842912843148779438349852030970613189579640562738720183384218932176404318468651491418225597528706718583320487128935165881773432511750765099118487120577428216683153267869165718918268513530256443038335195445362321416083291804805213607973405430205571205654740131459334631350569929618563459426704811452164932275510788163923223792416857559963424235414294291937911692495449549577990489933954947982513548834462255421349934106149264606984965484830828061843571429547654855210149047486177487621996134248884838191567801376295123383944600938098742345182047516605162965706346811462067294700629861879622342318570814592688968256789441725008227163165023103841265415552829226167164224459901224305986406395186142600723469228945971366957955766671401974016210731967058407060542834057015653824086386264478772191067695584886285092820575899697484149636439657548282054105368493747368356774483631728299738437224169840899401124924663583992711201765219106682441508436947410990032828307656090751664414941564038524331668826859873257395281630596756086128954675962639139632154600691587223097072499136763458080802968289861840262804125539375094885684317084028611960747745470070491897242778613602635986460792397316386749508833666877388995313585252946044431801956619102405181265544714252041032656991631921592299438542635118298621556809903353275341250421289831560269351078866671923689428634394331983407225291560503856366890302402471875066529216223968435156556949534129660108546645602117656708193221856452470931634739460375330422658283864181758121939105099061749400600048844287883416932201682596416597953630544489514890451550644760669942943537153830648058165642314297482908472109348650332462289286173584470977540403522301294033227234161793043918703179894492166904284385817802829766968989961856539125456318036778581126915412147998359342897430182400732721634762143853028831740622907783469620581194627948343068082240609938468377033996235171953756972506622552208713327143422128849120911849962906353418406289337946295231448877047301166639326212357704005137334000498012847077610368734190963240727262144312131909379680250985481495568877037648474293695917337870036826421522239720791864842253606946231724296603972036402292200342726298932311229973884683262276413200025287436118810588649230801436277016755425398209747210877359987902584604501564022992379275781523041423767855195124019670344546879838651278540534342857135853768102296926164966545268054597080432577808920849092696582068373666766799329311095204895314969139686338668865064914585044313132218400495584999268951191152749180082142098780977487858429906899410270289267037127390939406133196131925502375260214148137530666141500343308586821519858636573698875094929741128168632179694400526952688552980821596240672294352739680458544752066892229575731326124304508909721731477459984878717491683050222714229768442826342111878427556255564109437564153587604248001160814990053323662134760525752666543422119817833788234027811716566397736796543759764888662717851647673722226325296609035149815923161504123739255305130240754754882942856118588229031178638075133291795242456770043047250791151928272141861392718563933885879579147150338863745710719401802524801812289363044141032141866190986529844935367540594885251081802850142157076385142768969550395608079420424947718171786430440441024178104575840725908042208720980961606563574352673972200202156464555276366637720632815294821148116453907026142274699621011179775525061382661645601874045847135923594552897413062647593450846206910812144844001956003935158442634572650144613966747952690273562890973346863554263940278058643446650650398793641453842484962910974368879933747955370955306672237649058003883704565171653969512949817649738659920615154026048817679894463645442932125389636189429615074448583282036926924727167991373139296765271982737375354402534073711416589388057079056409008881586641212464652836735443715094411387474495503992699725482822617646708318766723734032515539226648090911982782735054195779265243905901762484334575245453888298000050390126320245458788017533847730037323592766019990928251299385648470102518445024444316982948269775916623771019737856418116622747450266626325461093551563162733737796225544147970113059444621716312445231283156625866889589063571910293693744923407040115330573075511507874569605433743537404924691414501920512044983499828690718814478879853396884817325942399146364193100206080264334260748522685151243038512057395671241742303821328595420076079606127778266748972212287034931383908777134019195016172952808462300175682725965887667173797115665124573664926609900663287657990100834453210018657612291933066361876405763061135693930916975036602518442208080401226410755635757295833243753465383033971571314977227752551353506055913771080032238094106306626631436581683710962088697183960720145592408730077163560207165033548119889393605144599792525263074258947688654113620435200398971637435483648281155502520756336036611242170191527761879888218251624702678398866290431638607146819944698304692489287664764707235513458648884147358345308726631023527299353970265112315672187692878530277029535881608803811492300162943470333212200875796741486774860896740974589145942318598386599316432972491001661543788366449068511223282771813729414948001943227747320691584410536933079858435141283730224829090616954164686086856128484586014169633232709213451430392279380043085405669755175152173265000125355249851495855158169309172906331577187698932628981924734799076027536623840337475500047308454873315486293489043631137238598003593674826403059588191536419802316793498344958128451989950882007068190165880332036057707500601174398614637940230084992924595536434776347066292362372985033187813333501257198624241390498073946141648172385785562940250440620880969070157801898809406389878287491740482684992816876180036004961009728766522948881060526428865985759877913611253871933540627884853266565238763422290503069680727530865442405481224777115627264162868482690609373831760582339789876550694433374518058441115480085410036324843801435840792116383883076976704411901754751583322382610347631325747916092800351730713592692282087565729153496714365586338369263941356317081240233444395505789049039622985478331752154856189344046621027695141558520708893804569725761468212719404947791982527932807602141516210379122482971206854175724803045240628347709153042242404149803991946911809857104312391586696944891401246154182182330746777537132413010497843879899877366967280755977823074756592401223711467776266394525039210412749786839894392513548575516692919892453404322409775278222703643028144254676061943137541323258984346086186543729413024875216730483687652827756215948069005522337266509047622440554527852373888742154288327885259057065501515084284019550875487176124783023806676568683527469615555062938304559808755019058074603799530724835498976973315209079993710645065133760661832867929558207731302719808206021302760646438501040819436021844143066037538088763657081408871968791701086674959864992754417489122309798605215449579027066844092739496999176790238035153352930368158412839804955409020439364682586985458030243916939949000294907199479905573350739755682936938916225551955365727371795757912691203280559636358240612416062106554080315219297163545005925161311027593285891937297580144822368759832850371295713976577732969664742633901280917342484612664420360356520805913998900197766650748205963320427273380886136520664237294386445386516138419104122828043811258699321486538274653585426056996906098454855122207985169219718952991984253695606560181984289264556460894870345346882798146002526285403935546786789579906086711926342233669217193093285144335678107839299429754058970689302634540950504882024120887744142214436387827272147293698603998914529651260676872608164317212349656207146044063926484596769486684030101681981743977401952544713600238736392060110053956670786032586009202020463372953382336784229685429382826295336243842622685780660017281507401194615376527034487573260537551122421863213097881168822132233194580622772095117569185678131188072524377350847520820418654225261984110056660714768077564380872162597369963388147408235149604588582281176203553779031747426497581914173823951689546308548805152767490691169934826228741365428445093768366334050241653119427294515216614292241743777204177139820883912765608325978819062108534530570781426785196567492490293513804415259976810267683478372341054271975877372553774263767101429713694711419350151664768690223557297230596203200288202035937297579922398489811456115016827234308707394991368746324524078609580018715247430959284469256300741645054638959938206963303416110593462998315621514219276029343660717642619135824122302467476417655897252583855041371135611097029407742739282873944608473872817208550402298245494448254671855950580733214428764360448410013907264516088178631189563247943867766290604332590733539484099891145126078064513012681602574436168650385842624508093586922301777205555325310511632377299023235821623971635776701476293002917186431137070596591749141439366708903716947471040227440654064326086925403279079855415540808295831214579830370674501400050929938307947249345227704037342961576845291236051399736302449871055349965593839961872625310928475225419235955074139277504673564130699967459776353059735586124557244448519665617426690493259681724951687917358599156523001151777704838223727611151653067611517749708087834492182038914249860085241854679564134853405328867912546488493851276391818696537683120635084257930244577868841480417300079423653756109573658694004420147949316531436244912686980861698920676891302477604498276999326242617279438666794736172003914915833245646958445843448399777021077749822967122346597577833419860968099930440197896636399836302710974859484855632049083882807436043720297828825077932392772136706276931366402987280763494343265817915137817740956100944582479356353362153681150477474076312400666312920824436646856690348668693231439672314833324278214220022947166930387636674101712014632194419516885886651218397485649323314844188386222326787315502506395650432228047450951741988871673461021024396260137602638979857458541316995036597238881530145484111066472132933415433358003512250912427933874338469451453362364387705957816540306067362414922771056972976186665541113357495495186414946654551985705314273597424107511917065761887458798457012506022947101935240796007429651305104854920055135466109481263153824534156920019257034408411868384611582989211603694974803304954980045661391734131089145787782901482772779362480443055821036460130860651204355368928996675466402832266943895222012210808809074785223462080689918396774982933545399640688986824385690584848993168342747814284484462373823618819301235262963376313945043906676055537198945201341135760263257157880036487157689252530272189325952248444971569447017408199335845769472552525818395262414533936919288920665860957523871228521959117804527606997261611887140274650529150987921659476750831426258420246530038738015234200286223001743897397813009563217685083664859387715492058888760054444423619003210501558559366216765633667474207631255525146324857049982221233468486947501799395765232349412180895361218756095904616776011356599070671784538719474969969014392026154924419711083964302703078154902743531630433365426017635540852217818787972936081945445699614027747283502721761777056096288083304649018249661039603223605856050142653500378374705400092347084784741367970396415094298664129278059321971446120455057405715833525788336081225844691651789209618575557207993705653097330404905479121952286681838728519243995220923007047895210230469157903171406821852716088115610424114187366672680408986197985067984947489504015971375103809122049694701267665937830581411311260120256411069985335952198842012782612510858123207693805909232508952849565746556686401794012563549370478927105897597771687740162276370956470391466948849493202522376315737216502202022871490782912854872942723458580589766173713127984223673075650260798416757607876168418489891748590079327663747215526709298111450428138668881799833729062352418850650309387238240251329369918741770348768777434255859828301975901992976918846279603940277349945613338984515424071042211306171426462041258181622029998980137892568353341371183279476035824589719064348709200193894143898749733405317245230430090711312937910360437400428027317548977128104359797284835300569866292039270458535478025756745029738419733428816386884377022298689512285397169086336275170794424715103404010133293021847177696530142752543671791680091007920557163149336548673711582226688387033188152966548473679700632733965344848077959922157343556667454625927547874610099781076708397316600471462464753863795179296267786647381965857596321559471746785716784925999595882121259705122482356171129137206430965392453731700440200255773509744525547505981367911332851943445240627870092838303915858183001290355354724775400630519160372819011748363237306403212681290501589839504078831358144847286347108992873776729176984471717370850640220883699154957603902006160649491621556475912891212513320947707824206400443882906333104194192743430542946546699797073111355969110349756662700698430025849718400172732023116874862413682145235501617733781282763409744650144399085422711914615659702080576209631186424616048001531805252939416865168422119157781892722038092953662652051970235845648685924499591472488872624245514340707754848577941857596030930715333061316419755458389934470629325386292861280384429753580677914180539115367562440548631655710303425426957253668882832236078800040561989321125225443944661570359093173228513790892978912733619727408056031089816802051561692201025621745101398379717870723594344222573311279893470619683159553634967189983128299639722183481385050365655933474966648991114354763682852935012950980119834488882984620265665044455024366492480972465149637464901719071679865816852276307112483431127203076761300997547293709610397063969433070609028996415159691801307571272161255176394441651004047092827476018946089818284566930522866929519959070590796235560968170110545702609843855328308463432645109235345934668612236139437743098407148909674812800393627749271599999853564337914344221329914067657957053220881476711893226270975743607258956705193366242495180495236624896191938511848995070942766311289643055578002884765014206621660518776519171642144870060646160479187123062454964674178043889632552142004271435102906804063508263057636543411785052034498688471191626489515190586847954011788107792811851538400211670068933274901302220200511280705168540962082934838783813788312587757759663141390773390111356133271885172560725840925396788858903468530638601782990477225322136397794614897482201007829293484802188002747703828056057104596566687684039161549217147164412235044817209011201815543784972737165713318192637718648677458022103106286807597751861505044209123192618522557482194070802219329844475753411153672084695493095226214224636825736090414952702897811655471361029798714770439264652514268343286070250999414521858265079453590146260052447398748969170765366811863517526510133385818909505773015036059259557388971705017710575249770413253404461990265484659452637428727843736682752516843607500469976869512801844229156572913465836206921786977331113923481006629422657213779721655743178060841965710733733440837856387172067449987574030952183024661311064252492908967864075107844933619837001801177348505922972707209964733568761592947940690746267902652260968593806129794038544301798254869055805386867017225514186993557453050843660892394031440008563634422716402383102761762616892784461173553463980223394082815202319997482883978883322642770698460074367626387573818302620139451464799895811689109224854253963389648590021504381621129474156713567084349714145014134199878280410801114683952575376172311306346878564508926239394701493623658168369743202709900757537883262488035942384887960362011620558249313855441164997967083415965575169934684202869301739170513086809784197777833724731988591547782594041107126452542250354300887572492943214482078898448719322343907130749805333993605381840731090595892903977454676857170558822182974446133809365699636776214942985548713826358972839161760006615175839755589921399839105168236153022224856331935998520657271502553670830137082360899670441011786407725362289633304965756162726610583568677611115099520332510002819082755470877471529293141156086553570875803370988936756385624905348499106118742108945788240635689854920283870048662974752781848329759862354457239304221468732047366252177729841322437665729519006212758488692957665872625032922094029187810619940072504425479164195628096797396526783900759974985377504036261963626497078437450235482408913723739777283504917895521332842344527432355847885432530335044858359226354421661318321485104715319432445423765450484694212826838774751634165947618715962667622280532128325864968910968416536143760525989517706312691888441966622161438335925360280145516865731254066018873727688912223279987439239249180555447878635290258447695634889765382337616569189977870631472114065292549207937471808100292288469282938502197567980065663989462028616286693348151710388418296757488333287140212166197627456377145679494139104699490938532492893653968940844835742299628072249116839353512234680849129523659249844098605113771833503078469872184812373357867474042839598799271517931157173494644841260729496845048586944278088119004666250738774574374694491521811381497310328764484310261345252417380333145316064456696347198361068159812921736647589181489648752452928551023236335079716221789632265800524603797386928209968108181966551407042088903024570391040715457612931347847728321945592695055969079642497526814785138704477301194401902983251834596329369113492964887370009830213750401430672131860728369054702712916528380098935066801717656790291656901504643756054492952478984854922681099011215659712976006842349162566383800637432722727665826599249770422704888958824427060965725112362065300171559250468148151454149146156346585424105207030571768623396676762941972867400157779835539008232439424966387057960121432873651802728638492143921553189174717846505519980795228884113687411448331434476200743368458393768921541670118931789877339705735726393093786628229865201893716416236132301687652654899802992579444063515754560598582357933810016295490441490613736571260246610612503258912988701071349452524250808703165607743463451873619119475283679823241315374216015133450052283577219779176414510646992961626047975036035730454810139138075231400518155661288889172011236612208627915505629302501819774044575549092903232072142167837159967398836144124696990337911344018729713118439774080358557214482151046479067917046125552774594628999810358102821594428332478121383622066230613149413276044133367951740030285941181057780597322760145676603545923587070339606176711729972653041521128082124764261581128469383043365697784865374464274486751947149389258550317404813376293527372110860529143318638702142060393045516326194259710021156880422939020870760159320650946147340336988434505724484335026880314651230378568032035058908718148015665624832525756772319850262284252413995501233519733941116745931608298489440239392762237418316174135670060213380768014139492018311115039048623093607042560816602101722945279878714831155084662186808664877533598103180870114934088749873101108271022776130978885762087221024035314981510181415942250591848425617649354377108836764312274850495672057911366714128347809062735354722835214085827994051676499738292156097768712283321553355179979288863660949543212934352590406952488943654279011280618338580145701822347937094207664722487521639308310315918170582121280098920870437227190582721029092541169697006966275666965881846928698208291718482529969361617245214478835964770677201787048247380236589472387142212100542389497148131214596758742025795674124024429335756759809796782368838941584002209010384321859365025773262148060713605524453241265582602725266037349088647542702498019175812931261642741566286349938879880198625654723241278324508858922980937562141992394013236307761268250403445608556752310501348853561607007288103314745855867188138759301927909421321045121519775116911584534089843748159129086841026444647968780144234368848767641829572074229901194830749430569224126248173855799902040560056481935017526806540178200840177397123187094938281916953882758079542836677876031411888153318948881335856253761508596459772033313416726346720529520236534186322665470043543844517591974586219386549154032069770304312790343358192437252284870318070904526021272060037001890471808495934604776647171715289172696726430728898196837504651633585090269786634263883964358362050693401215314483746256483403843080234206356701303168430378745821246945855836942786507319242660085412381222855151976874190472534434506045690281581440566699885469591615528252459303394241649009210543607816703168615820912236726934670735882977627469563881471694124940145667859808356776754264885164158711397825428259823619617697233467360022542546325308415657945285891396328038883653703036743331105176893653821998896656217669956462663817953292789768010479456460549348811887586046660151002146812726438746481135352064683795516098631974061525248383304997648365856633619491669602554107782450391859414267463235382991971559638345318617149434098435658614929056518870203411321247563650881517216679386878160604081185687727403070199497982621452415347355612835409434403535570781680061044950629870144965376860836549137723105368205936789483000162008881530508631366767411124244382824646059108890263559684331385148174862265814220084050945931560433441505927951452116027676568181259940398799219327943650668797141171858956253537953494128469288016626758461898228283734083640168368560944913307667967887103085912717723651968313232327144666783518093027892255687318693431062715187950206757534219909514803941622427091592318915511628695591229107426166361596781603943322641615666315678229411877487671660684874887788076273547101906930879385030132862057240745775484176003493770511955027201644085387874881939723449407416208239969509833318700732376506296048627791430923550391255483719046862549496354224963035400365072452769353803173506225914317825853652533316240641035592880098287558007615973008545741912102945773071045361116594097702410551571464644128031172072699049362914680424407130275017094526234043665585745502523508767899759049996551843935361835197458388895654509751992497056759567141685239750151502906841982759421347672814966904345600926983884869559893036077344687377494116992716075442929050225023753718142959566732277151671339855111002248479504466390869929522933778701686618660916690235056535413267520969812577850910615606877175411883048641587770908629122683191022611375996097571501500495205735534821135476379570832288314965638733236153035012890465558423697789126783723767808035448412699632386676740664939788303058560440076417520129350734311503285810526076733035193590290665044621212537792843755368954291350982406660967193360279142133583162700944569302457664863201010613686849505389931567471395300131867878737422757530622611105626290047486779611040926101404461466158383267957452715821694841421202825610783501505818966737282928073554258440607693773132499939178279500505125247176578305574627289960627062560301862316233331109623122061230435965744145010597203768423718078962068709535905018154133381563099981442492729778168465336279811019390576963837219932757857032247176398386994428351564864725198642773912916076987469735721491295669994525427725817780532157005561836487889623379695546846144614878724421612825608671100011737366140615978565521829355389181177027233483984809005823420426651161097516858256745527574427155666947509058608392116285466291937868578513398053372330096547498025391502631117672924326533472204184726066441166789883009175902371374718408708059759926869529680101840951222933853647195725862669868720270327285142681757329545811353328304300514835537035197997130813679728711073008426618103843810099311419716317283109559724706954080694165286806858450133752012717122792840684954294124677305161605173181195439778910123212283965027099053421550730442033317394744961437621786747338766472688063646688208655761420899943840272096884919468721560864300371477838162490700136299423727849737564849784799878889865662130554745007825776210580994522169661988964599882276192306353746651463847459490017539358757132561022872842823793105179819570976749126603332083499533130186354003177458019969300168291744344177007834284143461632490396632867481579565987106733374577353496564058740317170069034589994334704232869773857942526531609707672728313747912292396354139729972887776225547453008121958336384415547871212150187565948795809410668107706826574961640391622543723916487323165873204741780741308061958527158047529625127842281350353146283547647197728954402807593789702506049268688470001649344301503262715076975097322885990354988830717448284967280462323903984937356568073813625531628485211524712366778247381503680989525943000670815904769118458235447309972356189961271131002407241879876183491861624394988660304339521719282879192275329389072524111097776768913637152579990677343440499211435469570389164778651532976626082836765842159964773919347423216738171029742740645789898380257297317090590801415001167522818153037434751161357887268597530671745891913379418890275176441277566822181386883594130842135095318518312442645797975414848193436146033556772781641229863617851550597469705322270215460870700649394280577621942101748100308196971034444967972823267556633888719127201085765359618677174781577409148687919513922108113574675444427839093677599383720845325062396568317168970922823886759226497175672077465232047301092905919514255074278300995811244126845396756778786610016807657861604469596575919813781603209389700491123549765648144886301277628541922090632098735259665198292760168575370135179140664622013526580317438518827885899191844544170389316088154974283199007463409786968425828370081169350641264977953298699422408331246623068288935417748284447919992000831816261639913592110019297073562248061225404958577969960569149573329049894621650897448567439282052354117457085568017147439970004199366028510159937817964074775962342635056329698296898100765082893952024299698778034002795114244377095369490633981058037920911113651895816722193874697054626957977356174306545624582038290035331026832945868489849544602194039792111839219250257547330951041340944028859951596193724158600789356953471323349370455489047267003578843995091345269557611522142425310327266304100125764697621477891746323704959015878791830865866109934775688411311108927211424502181140895038670423848857493302763443308740501620861079791020321897541695519980806166044281735790396925082626095485467571313160220722700236066976085785492456116834951220935290775873739132038098809744040702765897284975125380502838036844962195357755402785632985150228654544410571285444200599719075416583161778010322832965993068820807070818773469623964477888419143400147821584736085890350777595110660360061579557452563573319423348013275281160292568630287176240587712300685684546293673459363501844347821790842892145452638126140075438216230633457727703157586433506852410225429764687133348295525532920318663261694300759472191402641763512255133919249801801303811143944959658646850326891622596803193344393870341890408737802143446260668520288802373535273667840605974130293966611207621050702327900211298808919295841737551220728879470724243669258560773360635991091291762176709786983707679082831130545940694148434928780997023970831804651037307294540901600025281428983272826910665411818025784544695586491648641045319628898592262167701493630600763199500567660331374943498063333918017049782000239551745545422677790870790114338188500275108535252382245222791779663714762566047155237384467201392274587938485591375196627100424344775621771790398979636261205581005793819982601416801630572194527656310438900970958129296537167903117429879350756656662278039469072851429027367342776770670345332834293981500989317956840387948126789918692435741139586537376869567682427430754275018003729542953713945130723283045792318229950370969234510358679196566805767192162405504108695238514357026016262558343698798757317479716308156504812166660360631026165642143284225492866927214082268441703071521032994436846465973886262485930446641588508414962384039516252886020942628321452727628108546341606298592636733662304709275795274321583798505108070542565998797128061607197810181649927526941650235743672360722731687120537053981163185852058748955504412804907238827039142064064230909434911581851476344053295042852957922977106606380551394098629483230452367637779154632360784875264258726540795757153470831759833178092079166626385082701071554062429517870888729449604079312407994101844881941058682653908862991293387189877675312708992001731248044886976337981591282804700376148505392728042704687336103221707293710395312972763956643092605527388722755512881203162179631950862083527885411963630609884216102345496212512461581901112132131657699347584625580935059506882191943563978805039299050728156971414856152028075313280109816070672492718130965829878635305676964763535826424837362295453040066040355230105769577550298416336844830451101099803607219110700309674139304058411949784631393152340543876812193506331922350284051298521097319400843140857498996409544371799263386553721055784432227578826295625806203837118065909180334342500570774906349024245457737600883403397302005861875082978377588207021658973397346709033737790935018324137434277595055519429780362790913006651360305397704512503392389812429446649027294824440957910110439339513975456025189653718902489926278387142665651023789980865498603096020918411113006198687519313624298115279982066325413796097237459227484018474009576388922472179797337510822902053375394880013559505710303288235228150720270297197281261788455206681746107727864364794076865496687871362466517392158024779798891741233060603162244166415904931827040627961354821232358047410245834898285602912210725073357041164348221269168357855936954111518578026329718475262928696900682911077725573393173952205777492015616705053978643208922931492186767920074951768018690993127421305599306330026114917530198040999620310749582101744152976441977982017538846585652546838074088442046522091621673979953075534121534675500434815540193360427698035527467421741566703207817467844574629621724394407925721271087977983006537157958903330520097440341776209978705600660670491647510999198264887493344563253133381348730412966497489026705034311064646863397083758667234792805620456987810437539687948554098355579002043545257852003598291686162413323500066815054677648878889982861547339557998025842837398223029252052812952084985483116908504030262011938437704863746483728280236809297132448398294818129217149806915305178455928588688477952420273660821174624624431266168097829514563508475916339274382280861908367959486938976769876435441477605759443980655909207156110345118868115493783064013771396089946248989978280120930980182670120046855651359019466855379041078346096074128433167249406822830427333029663603258199527918475808927403164306154925210312627810631476570864202875660403145079777972111626802984305133394913238076525358166629271523307821046474322709262705250121273779978787948599135046098181807190292276293990294359839125783215697120977516005067293730858311077289648419471209058887485669190682232461974811215828965308117106360252123337279990304994012207595828353774133906441552895141670234881418415575006296082578596914273166458520400500295849142992946268958376573821494828050275962864449635065055170505274525285946313361305080982256805181876788513237205763543253343794846612351090968369063691859820837767932016987057855683076319107776875392655939918459965445455554537184227997101544655717221314917284427787493879451629048058648778802031791833916485327304204005350585610541282977471979334994598680591348307020848663904690075569350670490712821116853027166858451783307966455932898313245717201367605703645410872075775791486013573793797319510931304159366984332996413316002435392621102979809750806136486454273579313083479377601639035241728048333799371741454953775158820971437038900683189512509211908693336797926528914977069225186991590983022045492265603868203689998403158971513434874931816065794522227583906387758152751107068561719277075295153643160108134775698526104789897385107563232195997443663501226286210237866130773259717079510694674039703250135542772835229786170309657038443437587502860180248911636348014550965800554825924915016518962462823046322453836504211154385498345604414365555764954823595103022596225673450260080029605470995996388759929276375843393709221190843429648822591373037470315260824062509668823850433663561027252532318673333533239501339420766620610435878834445925632429927203422099787814425280964846768488050772720526265075475049601488114613574644080456727717500647110811223730024305023367742142916391471186245839895656467310808213279982256201022084965737443540391633648738262242487863916978884551854238154688607144247226277023037708403173751048535429122412842576039757684740341360060814680647528497217741522000238242098918079792986942859931877630538939805493624991740403868368326370890393833033940402539361924093707186899249760824985004600882971327825985998929707201361251057521042147865429491796309445889468613362364031098852691478465867686269699818817463215973966634005702990043379753877870604981398843229102963495676583873920796558289522728784721844443101108297749617713367219008734465860253762448938148563466951892587188121404376563440895491814571877347389523984238333091352827768943474563782798816206091909645699868495037112105595011288275605538757490273551309342450672562598517460066938010374225165169188048219752635147682936937822431549514342675166682236260229266718819834155823188105230283480909100419383616563113330680897205619666243020202047509945877056928522657480996561648537443110850333544653095092719881540018001594539331527459737353451738105870308549769031748077588265307820370173868167397422623240027324485178423988148801076081649290659859113342147648892241677315403753933846040797578715432023624991040927456655237234597896342205464916192703929892104914029908255472840068072638465354693336193720839283069496725492986046273600114589648549609551149542891533060592456847149833998753040808133872660236565729290105990579702201568767486485338363675761784387086480020447738603027302039024516367273917285125022443157331233223786048767817108190491742035180878102800579616502894581999180119344596196921573704251439801574072686164374079075953737311771071078444542331804701430140213461283927755472561315155316530079871925775316128727600591447611065487987962235800013214029184790947839757869005489319130781120605783811512761690236226154427118357457255785993217175806457403334348534926037977562943936786643007155061246930084556369240936122590712588379826650003861997875457621569496410839769460266183804180346884391063921522807518028260374355662163492452031641101023397585323642317625455718207903704259902569292357923410324445985627406789385178594770367068690510665338194008016652192752152691911231128940416020142027125319511263893410982325150364264591393712809416322690705543708487292860326500327194862356514235056543459852185784374672378219046424924172391357207889742271871725990236883720006996320059957632327407385403935356273708444836632915281913684410018594360067099130735168663201119803625362499512862656845177814732771246898574739129354837635755039607193407430568410578125762388681495398446254105468598895030834707132612687196620343999718854287958949039183941859989797990419166341758016909207037291401382088312497788943294027776641727882736383151840703132077574111953538616234465446256449703902960632846459183961689110339470741732765159126154616553413032587363036466805793116642464772599548728281244674700788149065386907747587613982540074483342314282320795452456444929553311623285684848877173014961281737902836016904985722665381768803803202158496875424241697798363012943757736919670692946769130750832532066676049404787385605927664678671636229488241434640719641312878760068235740742747728675864801251146488843555227114450608151260005699294518362113991670001077230385456925563020386988087783684494031466769687334099031514399380473382477325650155098286721185333849381557349067686035429974369008504204482158610032481112657476951937426804453999056962766685494238123277136498226055225912807691520949287542045946324053514472050516879983056218016689926418776969121530369647028506730561601830282816786644097142045343237485967453489254316589144623340412290878905750005500421048923377421021618394730290476476529120510917308114886738771502743872887629320532325590213834640112521435153117112972510124735850514278623253154576420238735548617884301728021166151618314663678613473017387768821088771913858672449729930094196210846675034083610164963865734098612538869665301491813104841985109972537118911931280892083752125086711249505695896858290399639100641537499926866254624558586153954353527091991170215273740393725535872891057365545350123796772635448076005058951346297721039047186269438131325408791720846361891546059424048672157484996528323746541498878803918123715445587902422104324546587702712447566244699884058754235444199848536299477802396850979067121872706417895316374206109032600770885495717653548931105676982862318030833035486105505776115590176203333853191863486063837679174112777571614923616005932001996786622710225669003583388590372859541633301148134383592815573779998435282426955343840131796925816392895913474029406957885833877868806713654477545372977929201405903857187363050113589355578282387649117416171687778086932891151443294868084797663190183480357931930793180155013829038698255059660900982783297908302466401339753104600991608737571886332700906422356460928308276743921902816400690108699974399862874922618931579926891756936142234236186307444033612827619860829864783606545690872207847067342313349627312117786286169534197961254422855569646407350835657599484553088736422943745144209781107381496941610878678604760764521019446462519617617295476605931115656795324956128695983135451430047839715770542308046111992242931132570478234831601141480082747497055127797344912953015801703349318910426618582359936633422366483067856895469138044688584344838424591488249247256414484162590719902784458886373078415185031526315048089698661600506010920634670799578110901588651255193117129026313737589377602632616073098204271286612079829911594194379551948572853953765188401025678962933083002546004395844254334802231454429953877439756478394842735264924495708186319520013652293806365275968292648149691253972975720791977367304529102942671577787955885653678610067627016591640734157952784403522824923245294364387935440178514868009582844529071643547958773986525219380742694217505239195686798918909186104093436266404733986779010227535387679273799975097875111961198433766477513313796600345523763516204527198697320176030943428677795738310675018839209869320081317851448949718134796838269517448942554935369028219873752272121810889309425510954150689778470379446688629403085817035561520935420168649666280716698955671209784380225232494074789705124075282015055932339138705526978568074466758374203550865012122939733579176357865738351952283119478235003666525548004468130904418094581361549286632378842116753253858777027290928386146561522172632264018398206363825678240271508866787840254219851133753154066270630950935332176158448397995045540768477369084042555138392886706997490419333975550383563869312046828126851085331439718701463290836950736119150558199306547774703988345060676729031737995805891973924070007928481978048739682287467128712831683102041569854439900475528173122611571694537980506429461345899296773267906107135135382815337580624029322785642786862071050645066491449050618169543440026355702099503496664690452888666127381207149857687222168106038735190348786360077439192094436652057506534421236642343757139490355378400889772465908988017289749637889467186397891427385296027584783224554189170494303517648518463778270363353101967020586227478775147198510896602099755398845623224215971391474754019853486380377349729702660345699095735476213275079747870723239191150496598857180940694694664454313648028752259580461458210434982412419098865987745117377186479877562846501505108635425062965492160558134537655485771241505302992528999728978037479901669188644879270670792857269155896390850939884932086917777485322423546693712942436300223627030198229614054024201510353876085500394270114728708201964608077368282973306531906184566300851882586861562087982063137942996849949974284398469209553317474885620824942634531228196477818804279055427546548999572037730993647087255083036146903420803641486859767134679519079542629850357435956385576004730955964413444308971218468195290291132078530701854030810086782936251097271562495990357482161513791856823891036497754465378458846811381289178416207787329247654506449394974632732064046761550419653681906727650541627012465877735655891819202716860029204017263875839038774425171903498573170706026496049959861526469367127404355638515524506489419210064772793688266551997475830165763339978012789989884559593652741907582142726569604460467413310165869718209635172609317215199076289152698454908188792252892166707671010742816899618853535820725609522011780987973529751671516826009057249800430538886943694082868238451004864117182227132176866260643055207066568308034738299485163720493457846140594727573108381005844738827915196296614270034768264541204267898648055174747062834000663716896050399082131690414000099693404017670578107423492476246825295678232139383515343078997542720673445101652383770156971108217004386897600631149160362595528138672350092849813885253779073221181483730085386015796969792591073337485575941329085925229837309275872344869443260741078316408418550518340609387001732143925385453938102689586315957961683301229529236364761059957469399874194514169483746934992210073293471389768630850880667169979980011522478676146679077312841652698844391089033893161385773548229957688695445611755729300566185997216488975780329437207281278400392151916319542957523437005308521972308060011775682272697692695741618077897649717016117286106352832000709711336508538116659202674155421120296329286435852786934032799410455992028752639146781855309564877362125247259043093718662817145420037720612410832264269874432890787354232606300707322708398807276220662744195053300785989640756232834126298625977636211323507854240020990548548547709499591582708751438093493750000680566917239057829178948558834979812279006297495901500857287459135998580511686187077498836265890329609772518265955962140047467472351409816291143215278069987590743922436355272787235240917405323304365983709479258386473169621494191327117200152259463014962771871255781589468352492930300278374882795274743491258399960150747655906683302124741200368716328680083365127237666294079646351651646702838552029646868299674359892004434044435288547265126860570215197630684529546215731483342906940461191957367702910294996548777092594521831551474863315021930054661511152247458416210226266290357297736970626079811067951691479421614939477571633800349467462707010629921847357475803120682170133268669995261362208046634248200945444981376337541249444998647995526350099279172759890934233945083863532894036548397076107863613092793781058632054602579178885518180532081513197503821494808821205542827002581390390421056547361064492470031394465429972213157083851724854232863082531801718148310589480561268188965281764255652053295647604245224117811065179049796844650437227140804603374196025710420082881454685370726713817368642918185571305708365754484267945949105001627527964041907714548042668203653870969388553776908229298543053877621969214368038434194052156129650332561180788544559710600424349382078177000911861627203607489725336847813209710106374492327606958560758324741784806548200619867408585043526686697490718349317368873529519421370735179461664435360481043332005292593472025739860778545353285607792565306687664200347658343172438794757302237931777056061955091135931020314901036020314473367061258571703143721477085633482192424982800675838402938128524741715930226310523632959718350292560130862625588501963521547813109906859293038001147604230591922743013570731589046849213106939830120388984509317129966538434438455794923266465939383302135559304702202456693559659740075665752798204135441224890936514505632820895840590643908808116092144669246132757606713350401619673889966420742427767736335374988887731333006928039697491752685384018401582180396399081854864179008481983485007589218342827679750929070862543165206791016629703294680655206173233241739908200206015609441571064849690771030101817350590371322299903892439528615230320979415537334951567400653548420593669860153037318976228695118958849711143879925010454464100053957738770909996017379696484047282530633515288104208486473029936990108703848615147997953542518594159665393569431537380918522473055664122133257032780441744795106603759964588109901336066115259495083320343290937911474705279175153946295818239808681662447198262029944281804099464698018946915171740602113542957049974920270367007048279693197612022510467416753872149231780825453153042139269397578242831255235211481751380930584872780192449308994829329022457732627647073330516495822610043477934100876144165981043598753076541645562260977659546131438538060138698724815776372567650431621137781624590261711442056559531226445023179420473635451910949019463330639769430475394768693462924107381756890866757804784587106271480109455984744218235664997583764531141867498236382680167140073599785683213799070757401536154518557810860942435812097885233394330026198872857096104094666553693285490741494419258017569472234701868073433681436998181495168085801905036001934108663542619013486264701866503470032506713311297071153677278619320073095392707925474454326191075099856533457853033493843300740887524373038065721499414754826902597135944691516831046745256731644290907463098239761303855072853707191008999452616667516050320040790045870328513051556740238304500789092299415166576740944078604794243509702483462067929106933426767744813317894872261206988867912060993816197562930829497575676665896012618664348059278716580450177328418051484420404184742127947246310032337809605848055451445793074260940226087139627279118581630310038378903838395464153602520780673886313788785521496479092746511789205029252070929591814837551008106644493330284737454731267711022202208377082634215816123222608201196845002566873837275934722808619000595342216905949686632725064429219762609004016737653536457215732040868481527676325795748236414780850519997809012946893434924455788100097920683217153918999294821731127029239163461183661147463894982462097359676409610558278838144678052935839991884668619330435833452225492523078059610527516447921083041359083346420768654867591067826721237154068928570618864638513381625552996396344998810824956180347173587860093593365237006840975430412804879087556575821586177528649618047416737325400055347247257383945002450406007815299224985357322134745667360272446443459640388116285137289101859004925904873726453486496129828703970187514599036317282295051780963420593031671836875604462095073027810979468749731790154947873314537860122603891772020585081955816648101179342256926099491769471354491442737260459122370789740050344606864044709675954750705026235494257911239479671464853064813723687718191897653938447217580375502485675532280880173621324210925928326800505193329649324655316224173161171938625249236040460795363548378973344304458889885440989628151009003016404298090081629820822961103204185620773922831222188959370179499752646453519920149099320206038405542333084953043296842257634190499721784406652337598649594466302849453041455912138486326702982836960120911355063235929854701400271684819577676670404490481102848371110348042996193121333462758219721143029085394949814818868841368119048458103204567491124772589746825459028722745684297615854989076297306083999739481799929711421988750355793199518099987351676915513875847148258253887830641484290348891880115886036981015178100510367355609298188360754134137337722839825459592764986554868822333616195415112559757163682424851607642604347271606826170002620681386962141632609294276606942681314852782183098517754531546593036946628316186950404106130094305301953809525280350384897169656775879796733097747453981257711464210573689013057352676551662720385379859554558081580243547672911842903898130717130343454439120208575430018577490413386712228071024350412139841248320537595597493015931423822817951718431157457622973984556816936667009863080741387058299679688215309667901814050780913734131452589341804407216974657281493797753273270273743838638104326357610668252433473815024403752823087233990474928063247701524929942011699857117966688427826069916083343294472316161906865705484063793527037452007884910186920170781434599260566205503212860499683981550515915661421596436166714211761260054018837031355129108121177131882789533547408415798526192707714032874048684691700432468806051268460382144101549494670489103367249014215532387531918620079852718642358644438584654944037398004560864695964512049678743071409566772967026160882504003162490781890668976544477839759856030387967780736996863179692402557768460747491434912758986639041829992726179835750308950176246626401164561422725644718788840855189566644586542073900178260598167963494032182308451559126765422556525954472176816551479395372222668327822302191988552564107462845795753305530289297404795297424451466640415937443990201182127704980921420870922238054883254320219540405883156851611712347001589147690247727966284951224926924420183028268559644736437331248421083018201585858851556346158219040200034774491440111069227750471477789199449636548521439574485547292101834039236515172762328487628266345118026520371358255435492750893235048109005066571964370719649862080347095608804030725095248247330153979563628557081142753376597111264174173458834807722522892005242643069132245272484751960071402556431672538456278962604312300620591148072882596901545854018010736473018211700748027418572651194063298534818260516656230903034069098174025367383525873410301343965032906535730436653662152789390579154444012032041346580813279668001418749297639372043124566732241400505245315109905605433502091171630766843154142625869312087638904669220558844819693510038618243331355174759760304971591088371988872302725402479150154749843135182370678479615152490715704505625968668578041679305383819948048930255125848159022060255636055788808115074544590323329167139610427748398133229702014547347889120098683325219565195087465089305585285905472013941507640823844358672304841749824360187348872493797831119512898179005093771708132494789801421914964231738840187648751092854803642833160472790999101255741541804885114493622125057125945388248693156745408654805409836889744151832997361640646243557554026019707599513293613375447999219875785393226113311330327975149736161868053716308036355007852766970589257975508169687907214226360816566563125274382316158918229417625619807863882309513670181917241763519633875952024806328519554422326839011327397118965641333575389185920186255319168851844610237532633327146838860257795565576651722197700070610415206268304963207012964071844407751516462611879013288130217417487053610725826189237961833135592184925247321861003772647240662124612969162404261375649973470050854987393206862207626325248476223970746444006632884892978648945517531061857910215664363593919381632106822383134132064806395434411494522682059133755529726060482181004178130331986880955776102835836934908689362584421484571495964279121765028852136257706182717070868588938287731976931546002885231684088732756425270233104927500308431915678811295599414764243556078917847996407491631130035117544061340873230267904490371868028599520734186879974819221156363932029590434261205592188229907682522616707762768538778419322327930104966678582953837379875802624133438240694673259433670871625124321027578163704127386087801096269921832295326863693415721549361282651882876380293810501873133766402609584770716590797740960938698073722944554543917663340947074189588807031377113669173736410716721919986787006386337339825472388067978545005012481089681509687196229951702325276218437556714959442310478844293300063082990978187078680599679614448179858338491123179325637866883849069089641549167310883153296549366448684287487585802667295081270891153410357361822876831571020399902492609071110383048120514889000953397428826178221214890470755783016034190691312731067102727773770378302941508088204265336127847466888802162715591484460299696923849633871291177915859713502311402288387121774678234925175786785030320677701120413352989592321349649529763950403003448049808959486331284591807811941846926700589936895735760441728910216500737835593414580220694613329245822648130960949303453742368141587529916667390010079739777946296443413699042719518578026703643869085250958409816549485892152999869026213237393150458476347529294558622439234938648820740744949510468491871255153912235163553655486651275749351294692502904167591851894867797077893889121084779105589970483590142456970659059372578968323997465842576386493078432585879795888142956476233409456401560835299762887042158176755503836128734134222651278424079068601056849878654871456763473803028851133041659383016628296177352736652643980538348768919647862361841907971603511176214533603975265785301894329994560111859794814074668236812865160367219672986850795396629831498907607367752077250389145902015981388628707927540187316746217062999287330631226757627156136307945828871276017129923695289527141427459077564716423906857833263376031746204583259369081033536734687891489480655779034282623347160543340868041096321262920491148917055283445658527827730048848816512961367252783572379673809305269270495317324066648713611810600674719558181051414363543803752841506964606827931946988923605363751298891073739967695097777809627304507385609203290460796881659394901754721859609019811794342500772424227472894136567101179250083317595816407883197118854203543573212976917966985150889310607713807293068333480847941163785095755238719951306410033043303825071935345961435623453326703997057545682565181279282780336605258808800653973197066533022696268383954906015023635066839411068162326661997845542378809120355670273985747630258721029539201138367826516263860566012836722082576695925699044587232606999595025801142534423897104408698746445597290740295438121714103525215408024575838303869566476078140867556399901151830171597409836804684831414412512529427438024697845178245329690014604650906834758068339302014986707671180161388197226279916952996456596942349380716620119640875288802969738033920587507401579843124472461954143756373166405738020713647114522097129965146718626961359419548318884771921205135716422875746112526452473948644342072790650225597021694164209739041490054633640389015301615344639725998296759246514401474940066842512098713683113293594523370650936976397339662484506783094647479613593218512226189760584763325709365869666887055886512187146036391929160823955617840436800202917745347880155187704860420752743822591960744168286444237149395507068551998098391024665082572491794466120544609666254961849168871118149391916617771176016192764580223103850625651403187392611480885283430777142394214617139510718189488790774049908635135468013805490794908472433490469317325140835348236301571931997214217950373764523577924556905006069267158243287222772308732566584790866207505367665116168003579295012041579511778010749391610651778957216723780198835656762159932832753594156633821779278387778009910017557929975768289420903531680492707117735069362897834999744711156769077057382321456589352114949185805345373651292932618640321530292754138535375475771032119181949501635345249635314915434967541664230996997011127159838616592409168920613784530802683449043246790676000596281806177812630197505910447768327334854083679677288486317418229312256093916487394262105965377220563974425545731772706530322814408669068535806730324698730051846143503380168449552510216289884297961723679727171425629388654678925208036904901158988382637894116570064818783143455878347704191433193668899839496919446698850819300257590702498909362332072130691938517775026932136122173389821098529339274631063591313395819810282675662840954890170233905744203942360238626648621980162826472472182099188202805629718723241116699407745216276131182729882442020601959072629051391633967462972795731678971111370250692820014400911028843753715039469090480204990758893530237553542761860824820284200963120375048304216307447475290835365021941502089006009058581939980579790308969331248790316554906179336957205677655222807211494784954194329330748731496478677425313540999945587602973892068548836697665567944381789107073167089146529134476771017869428693850702797077292746128799478525487393061521488164226220469497095162239092178915713677972217168813487459984021381112950907509182464682144212649477156174132359004574170377551595648586484958774609007795462346307362222487391533701604844322663667724167585945771360979225102244543785175938738375637872471671562526866358951682073287878906270158891516217718113927729302585899548626753293452878455625449176583017244143880675311680266571064442935518194006312092805145616459292146366563891749509613965984460507244617053864194028103156326986483203164053429939430642897421128723286434313327395086680789538124914761523971696456795611124777371763958449392495234874442792719339249180146488368155848124301534766378894244414775030141779900052377594922413103420028600796626791825075779107617361637898325673168205484478683384423532102477709905821484460137755194603699290161710459854789079866495010008740369229840941534112480755916367825601544845790468910454012667033287157204813981082341533583546056724057388974819076866210549382520360349110934837247461704126415660304564726630588508634385603054928929486529318696602695372670586150776089314946653107755614817070850999935232632799602374099077122096166187401578451450218277504268960192200944283460506169423363216971842399220362152613673469313627192343722017751408939402697098951403851073909164650072907317279920450676329513087107636603268857858389317045498447251713251073358335946561398483233991380823886081046454729195458358416281733213262377643827260877748495375560110901429277893248206875909617629548920107628182323143562751864007357914640767362858978271419512574756448333384688392555595505064196932160484330392173443781378432710366513128876853190150865078345464462487227825440466222040490503966559054252048240923263768812453750846957357952231514058650206638542973100193722564100637378980905721084463277952561934253814470657132834618129881353244927592815011770932888583189386966210177548688815747284832778114682390327877613917541877613558116694261672030200755312297179360708368628577792985042436437536011587391753927744516892604765265561286290003105367275115903341226675869809164220031827121469768549400499863164304258411925729520503629846665883160721778373134148350339855011207387107837954266677173381731432280564834189555730551855571622055878379692250905426812806948173663345375673053295009048207021257767294417039405300464106008658084456028607282936421795626632848026253000454192619701768799113885687881580475035596970778643491490126585691351775788420225284283842542668318758040519671214795053013584031432971367390853954669936164232635517017281002449972621852175045045562587674649414963337658771074323929844531611505349957397605417517561382701120446658992002980634131685172995092275136704241144962412723727026091521987429041452857507978550922853670774848203688339937090603549778931799878223466417676461121581589241997265387323438136786978630038765003876597146992833291158943394749873147249151860293747115477007905946123383730257040025918341441549009688666422601928513460826880138018581908282141350437596795275783321014440053980028963007284280122864296228730517959561917122071040959071275715804147516018202660060914159295638479287053451693559291495811510154775024819565653942593577276888003183071617250089335396153950455246531941242886104365227786784345441765481129017104180542067559189752250712822308357591851647568711918950280933260731722139631293647769035686225126769476707810986056901741533702821053662638088147577633839281292311756914718399113885205774768911064293454965311366184323656154816374731491444941474742140028379324877050698304524890373164513266811259111823089933844389885312634570941713934158113984996914111624214935873662642274069055923677677832489230236926586319912998487303755877495781098951248412441976023093958067764916318507472284203932841447388077119196406810551729710127937730005664111864784358834877566496974575430773636491064818274341660818616918083629671869566153897567453943349326242176713699218830415710692042733109097372740798397149341607043663685955462450963314486847008376177497638996408511647470097860107853350598666765981756798634786051484748457891448424557841670198501320868187183074528213352964041576167511216308035132276825239814457381317501043488478182251138516115291660683567068106755701430903123031553276300024757658309896801453627546640271201248554744258632875493509070997230683225766331841271769588970725440858761445426557459438062081116757435497548979716020054510664662956851105555615775090504863179507094724760170900143068265521992433439753901757330313782695377217591460300091482326235264520456340656319876712957589155948732322988009513706390941648029951677506316461685952082436055770500700822309417900065516070922843944426674209964933221936028629401293100738677298815233515727800385026644978073107746087709007417411224987830325409947811794561754904899966369576121375018422764226234173464957856412480829278858619097876115395991062965876481026719919885395288540475156398317741883412794502451765500776270275605305790466150733308142906403694779972414707298483145297058828165343115832780500940790428870308281350235111909273356540831267556637837969164099609374782748170961470556356893016468008734875663747076283359186413727876685836337073398821323742780556150152035641703552724105402767677808299874106240246374232996902827867448101616617668573624246039115427318753246994387195258917296894358704201087056891867377939387695241421146359277903628443691287345694003998621590470289258717109388758499759244211235082393911088860679196981623869076278658520328225050441432355389420756278762424289532539065299822110748660222663645892259480661951743742986756089321205883093116773615959022914695125752757264803179197704475053998890991378951259853029752582739208566661421420517054040305686446854002369992249174324825566916571757953351591971570033317338756803848054428550900276149572846011442200715648869795993500048709883479397383689969684279945180195364415396213425577613114748317241633165449788219307472456099308022890639677933432235552075059030623487331816828055562369867900367956947487103288690225126282693230387823909845443161583451983273871970608670322989932496383392902724978701547880628626017709151389370968421311917679450539493218853508048847478872560756106113599421336449262808962269936866672179369883662441359206873800656399128205634024023407222904350841444259199256718744772969987309817565031758030363928278995669177730606836036156297592301822714857387452964320435820835366044219073255622418928253807383799965009358216506897957158911974654784765765684188139131825103001611563602028600961645156511022917382326509171287238485786976614047065876312133804131534704854722165079210190303910664654757801882647944714325188130175654428397452901045902678412246094633050206820777466984707720728317593281608142629676466962277486448780259419085677428436856733633671134182378011535717113432456235350557010522737444810910487697312560963696597182592700279904487497822138144738727705669749471068955535287208813086989067833526491415891392469420480307009610495889044736660623009525483208979948690508000241007643029625545006266744961760693728638656868807932779979614030615110584051006041375748258810485846326268827635071205498367583159110361064080985365564572725149946095335681072441679859630681676840317321699834231514026733140967695110512082254348467576106834133155686500766556177899277771891113288299368462658992656521825284336410879072155659009434875310024814761950601467833996280327211296563330118762659773660282175485276459296147884136553815020899605114146553550931655889592327321083403822838885495535636342602950154193301384171429994151393097539712173742184358755519140614606174387310637275388671421155835373825840466257676997035721528627977721247588761130207647672888563776441755087527853807671483555603936376493208578825104783493294504467608914607665537262126679699235500843306041606532201169546813086217355095063407802210414252004001954877653795008143353555736453462562911799998144101466446972182917193086981980444891922658520758765768678015400723368628991059343924262526812828207420234892841174823844631138947075550067582640968130760105588598122732389718392330861394964695425280996416784108879935536325523143951940031007914865251796328927611017170537622264007723760810833184549123168500167469829922487614450723531185398720305391874889629524481403004257733350494952247630435048832584742154647588260158181817343324239846302785295334866730927567866390658717460878115481230494461417671364520968092663412291543253754782145138759818489272072460036248177267283959161547062593053246838643275738357942011930939769306845456734513775342066981929720620327254862067554351656860292196905095850079803312745533482195825286256118588757545156554821430148755665366469948269997844533667424201376910935069771836780732305516790451725960454675219882085298209749999550002387823725121952894448053944549871259267541866234385896306769301447281711965192004527839516569956212430020479025049392229118026904800975877861057903309450921244783364244229905718267067639586063873066541312961236386004135815742140702850919433337030159446565755393610318006965860078560443339433878452661818155235025990200712352779333743498848729210177851762089344713045456168472327576444247623913629877232465549740096325614289112772371007891086777288750564410787277124159916568289905180478109480292922060881510663768976840898737655963284920244960649596442064861494155967530394208255092425134475705056929231505117785207887924537373631628533495473390528800111871989241815463864972883657846274414625668652286669935607387915478131789624584065258190992464451869439874559023003602990421942416048674361347481934565608549609514456945226188051160942176749191007286330888083666196067231907587429256265133062061621142740908692998330529896834030355954280032618669003288826841889461042060298508417535263438092884571822983490358798822572976869971921770471260534994759331800528767521237730804386741530821428093957659683704197692531838227827828358129846008127029016714830310943131321869025600000836139829769787315725036351320900388878218382590140231949773606616234834148029091103152401926335239888492525938481204700385689656306165251902423622688731968152458455131373580076786385289891814199981385774515242729033697894085132336523561308353919652668261206060384362593432820496751391698565137463042382858498992541702618767001711798462414986624178123611251346958081197795927383151867493993977149496889923428641954531592826209824677028777372134349371831715894434690962863775667802184900935511283601837537373727551539918194710467424162181299077122927308239512950059461966658285977981570418698975961232408274978082278814174756821592031403570650543057542163793634714359472839436420410416222993508159462627534556175939358270506021635213566111000762518208054169351092168748220276365410616525086594570730378562876458110686391954824969733751522698086442860690862078954017660968324363804612901358247814384861478381071206510417520749086403381565531852089777343626072011553411048453465785302026205957501238489494359806547647227527425227284720350660287762195509354747542385880814539090259479721539709067898491778477461302877961923543051414006958095333483363269779513685998181210860963019573024009894481735655510009624158065389960793784037985065246158290204517094502586429254625894652843170275263679011150162082442951158714369345666335842069435553081918502999342548975894587853859132145930343665007432174917659371669553593228468566169440704567778276114336609701523349890115976267264903956177675037029087224323895429269736661078619008371596375865007508016635468157751502300349151752469503702625349075381374038374883262790749918287590348339193780429789528447839915585577493854634325705808600329233299737196614404812215566718462818215679613434914589769213935343782068841536142143719586587232527325837234519126791876703701407306501515010037800276448218117047174212247033281710578347080213482526957628869068144031513019927396560019850006709738573631636033677815330774908719338608060105343616965672258020693689910924498108821685011870769696141527381721960352072517859420527468433514793907145464686409991222383895449564439271909131325349324480428543775878943349633288582538447434508706752193706362215704641216755030577537032953049951679625321740546488474757184766288278450178505203992803721140939352119110192887637233865078292610570875831420731345285530362092906649787687161914093012195662758320892704885312483562159616877163939659930783572938706681091569054939470166045776135157789701158300612842942260298138718677637358923264290821604366562574105386264418225607180737614204021992258403841660116970412897185082301257801240323692752022832118494639031967580216558662454722413720018238727213452305248104514223881329704982178302012233045022478970229290938602461011905741039887882091861769706559727413791916341786496044948858912618432893394659921345408076245830365714675020882167963864544621474266176903410428685836578064529112905551275287045874428546413588511691651138328306451483932766508533576252564007799148101030172026398366009878937884448995461371342897846722747622601644148273283896880051475400611074620042224538485464843898000270773373394942388465890495078114774244050606288866405423942514812012319524972027433517644182226916317391538218196912460247369310154776503701947761870135913333313418731389641786412280481827373973638053578436822869711950532640475634916004649877474404159304987986766164501666372641216357690828999387933509262452265351661089092907047432878075409703271513697751393131898160525266020574560639395562016673285797289212998429707534733238855800046379669320639837908867641565399206986869894269247350808483141777921388898086359160970065867727140786352656270935275922246153656890715837551515736050238913025088008057721902592884753255749113842032879901008732311477058292772907558702786580845063095513272194564668226980860148150336940977907769562885252218811499484969741522973509387778750142412399846506137264045650598921672973582214672941165993829069393536439105633905243242243564631763037674608646100315151328879392739814978969747923250601929554516971639116874287537217515535928610050548247820442038152456819596907486122553062208564446774854890723416075899388367433760315733286641826427608024581388896220442468698056025817705482028968096703249063420996482388227195180801999956143000482979777775212628479190883856311656033973327139353044260663589009919480136920562480749415255810716070735816800313037919389626969881226666563277984644051462666565627457485812721323178531013852979239054634545962555158634737318784045333944177357434916048835699583554388432749489344529817347319961925863982390287098582565633535120379425960897666083627039002645218402970995033482768304691357460899845120701028830440482773274846830964756244022818683557093203208530921265769124149100005302672751410291110087999131060117267636864049093862074067028529466923407171373771659845161617410183065374073833518157425466198898949028852602134077582155744208343701216220642096327965261949655096570256551226746880694506391618746559681520139475622964735693464277209719270893134881742216042250871432414974071961036313481418812804196191404100291225958839457493811579628406549027860010372120589144391219734950420846926699906234443550278061671277846820611657389645534444855010196228961189242932371801076193022369093322169914819476911620773049020058845524361151942422399995418706847301863484484195333655361694124843851610470154943536855171871163933521472975820806560302409994337232511290922649468279850817927278503906012339811685584072547849275905597321418280945306219481116089624766541894839586672359099704493896340582180430295071477836869266017181020495897739564912608287375165065320540873544030675133877567954371473858937711628119743929025144235804450652126655377448953327212748962419582783304507267870926145438072090774640343481795961183714212430335499350317650755591085692889459445737707440259849450994709640986073708803358391029878294093958020317254864915668382047316787937653800854946524591700511056861121428574484422749334191012788152973392700784843783143578825745679168644334565775590558193341569408109367484393785949189849263863746718994508299496266365974115860577914775890733797983761132267726072325108279915086980776086113658061958186271077747334466547264597883743111754122318781825235736116202102479287647641240174945725864861112040803735656831297907457013530206864612265016883292476046509899871459921793461304086794913086425786905026011443358095888177031737071039705820749476729527672801340572756534732417971830066093833403136289979411493929308426054307026372856435934278071022656380641072282620750809498479201788421360384338677151478290322131921103967499915105214350189064178285024928005796997350545782017464868188544884968714082762623226995970975685331790681688250929312377182390879233098540986158601291290371570936197616660142003582360713086695378411336584580493887586538822765405694331578519414727165665646821856365626077269767577964656283973743955641736998266698936232555816231520193785729230307415962076462705795883243094430451617488591142753900812282403320913206583053153288707257764662468101254489421984298128055453599242239545515140072066165502962416530936441867379601230636945287972722277078607292652239995931296075690135755133118408383063382767930787430325230976643439229800950902141974040795281996718076612473693634011450246297905315339226526017410259874915641764245758060969781516180957182680053565990343526258537688536186625952704098588294682333169357508171908209630887017117336571983057707702550664994577993375826283627788936344040546498297097028499629813883239465169648791501380180035418896494426059794488277381461503086193265121515165969626867094496142133513401226738843519307582499618986547305743248928585475591371348082346122974831446265456297490204753486695979998449636565821457097232956739960827235426413480691377776986422451835851043521992973517179977789696087768700757854305105794905942284438073516144706443055277368637144213004279713408918753007536397746153093285753748629035497479076171958703135214249400068574182305461520748364229493436581829001693568660090597276532918108298048012605024020670175858863439790315818432214471877909277315522338866104672220559211875260470052063205121295761299025090485623064520574150253390908174700456105608011550279854298745869317783451025119766269307620434597222336359922636087593053897270465034341065756931391790972090792439476402072336102824927384467314224772904515700090950898054756184847869483895961543504485909149197790019482095321130687508799541300088872845993510435549209891533931707161723568244351103355312298543592052294121046040560069140802078543804455511395346837190719108829995562454525408515579969975916105699281505278936263285289758549764235744083826282601119307611167451051755010951833214433215900401516220211356224829374015384559278184143562860736855086088117875138028228078284095582368161874183213861061078614425789582003764650850660093472486968856888330730222448547498823128918461113126028476540732007032733717315072600737591904986033455683365151875973290201005113414585494892666524488473300072242196700465716038411682506294700405149238304843508632116071231392189397995003691932698867600621922149414074857741126630831505664530525533138282173118213817924841239196570316311597234175570706502739767150755655449219751446035325847564714302091606507287299485453807537462707140062553361428461223229925007775970590408803104710010564171926031137334703568225629182593394992965172386894443404728451729667377461354256391135717305655228088595305115180449037856182309317623040388100008284283599290586747478444900448556202357948858576131746068188314732627046707561209874438079566664343618475771415283807260950712717531778324159960509730992769655134652183324348197201588999151879123174979766286115915836457500887684986694528000984866642632662081077556496019843686444957138316685419632474313170645965237209956860143372208523949322650945409628914186921560973652560627907658708995460811171236053035983591049920306350848645498808575794599654535749098814555651674881382593306325114672815051782146356871862396068634870561436230721625606517254888497576430065546464203476193297105161731725463833947173199586377041195624391043872351215669097815076249473990652863769179735460416719833511935286866802101001555478437048906395969974252076685745952233731446170999699717246964519477562076823937389031822485511906182648510267881588382467815800391959281321119359885559051823784824636038377740091010166416635010440548109950378810037742873711309062798577077904711814398452860657611527502200573450401863377884596612267630692768314545837733580265669493333927399643782854081432221567711621740331520183085047237981763441413374657636484366945770240168712801945101306124686428832129173481819605428985467562401588950168233605910513370694729753814308189723316415684980373022066029795176306964063146752612392161245540132221651009831587851483928148752878884167167549179662118877400865068675778961156382691923229307387098278169548353820395599879768102842714604824391686920612249731752540498578423623259812156119706082093246996486846104162723411670983772794879545363188726361117927311977885293619653426518455352673431297172253645895713036595065455634766023786965145617650831914325736272144231099589482948043498944954708821793540971484469744225871702415329899182941318188998876281423107735368858531876934914315576007796278824912576545862916733844643402296805889297905625822388025251637777791320221112853630509251223707880625818972717850622479125037328090964919149098609652660859067424514941865777145518812924158980658962006079704823108996453306536082812543578403826572773861257788079952217889327871831946563509553615447746242511837288224970960309360661024191156570864379555639004404742991176250319977916961498139132381479657538063591619334855277183850870337150998855374658516838727268055676589441142229390203620601600084770625801134486568975177884253109077182803270322729071423215358901519655337178631841516340503842646108621582299826587184692209893859856895767831523038541293371630063250822804959222401834936949950232712434471186816272373107917112913738946068363374724666925911960026112339380818650199324951937224645194163726812122828907646903169617054900799045638624989357975219330161859945838429809381050479366267583783470413331638275797962311676904350032532969280133958465608300602327614023118917344610173860246500030261635468438348297227076427025272561857890583383172917125070598578944033071511000131293472654657400806442990713096324903804801158489663617800614553049017403945789685284075633359428608966355447730724423890682881699992160815846382855062167044783904239720943007186378828500960918501684661549688727201941454803686028449537124062196832963187690403007475886605985010938508955375542367094781424852177145441275129973844086634038363464531329712513718860619468051782102271801984927088200102006183835639277501494300286853025431043826099269861311945974158293139963408576858616536620953187496992764630652657707197614103323992886717869985971506909221192413698494843307621099593497725663867864720845991426503902128259942778351946740829346917651437162698301515940047177232309754581307807443545329547448668070562373355472027845010554587077493543871171064178245435380969540780336127391412488924826548507682724458734171825442507865279991577582380845777836231186121558647120043192989939335737073890346754105236924020434043561728564960633839660178876204026337209814618130801995032928119615765876711909617282288423095873835285578255305607879822727530274712736481450188457560675851754192829579505173918417917834431509638802815779379405013335836407596066418143492372943079887754037436719511306979400433498831146593123874400685963320786495133649603937996959670018866660763421373724445725326546313280626712819300418244684556758594514420381022024085257864385947478485752555853508608589990867683124418433667750062304848626880421868369039239617967317793562526498456889048053000640675692458486847888787895631980847609018069511882036717571095648783408035497587027835306681053567075356101331099750948557696357672533297411261344517894663339146742698772185778721687697189474474867894977115789027727580005051506122573380739845059840611150009460362689657170688465972020057930720356870585569563427096556522505346877807808410667239032028200503073708450105437393357058856326812159274883601429206408272278249353070808461138797005344944087116807827040453846992356067553642214180922379159322392882462197834042293666236210775239005180008188543032735897537297676201280606121328190449668486454507778462423038270419045005170387841716303461580822489617902131789842708669870584840483773469674455751920858489171318167179842372310908045064160269721531217906267339369213509759809059586998485912692313067568018816531027798276816310486516627157377204301787898826322849978350249162385013019287421013589090638926559699002711719174324518356453930003003773887101229018653121542204347893674104571594949319258553890798202585691529831477054017727113341123664644033567585621570746647385866267429445065579907253113748145374278296679998387652352443621209100968012687138629041794404335531076680174732509195791619970527975748938855673488116833279803737464354032896553748641448858270723267467337580628830723979826880103022368707329487697654832645017768530020726619386574655560828442903375592572131783577706251596272861667679492659612439242238852327827585162567880939970424398353882853981365714974588040316738060407932177976693113997751452756588953307398674984489595243676515730125948567322044401183702230104029873873503532210707931239861450138431634822574992092798421031172694543246929664111266159239565123755159988355549764833754461053451408496037105068194428304966688489096199538947957137337022068328115611103065597228427547274253762539042749638992148511865742857187184155061294457651417821469832353415828745515694325900682661034626344581979990739375795008656657607469905446448222210470343758396422991986270265730462906988855580537520995097921555851391204826089904693054432839037549857974892243787532029422804302059751831845306334019179491310153333256397850350118937683638151703269378081865690631504394818917735576050214310362879862167126304796628269236055665007999280359039824643281264985037654722788250194434732203852335059422399265710508998394823615609108234970824841387731973312347870774878903353505685566427922892498628467838736580883808323325233294412790879849455646089260824399510437938244958900829716432533824994185662175165436706329306039477235082636033190450201837757063560323752011229397959640706533088337210628916205559259554195256174828512594100555468082051975946631540766394620189633509625232989733244297430392210385216324672126548611932115323410482385273266540091044979511427600867549127311444627015037242694072899998747197162015417924381058095943488228338212395262206810915135614580097533118651684233144781541716301152127790824059536881174539038590585110009192790576710164499694626264644521437950415242706493974578267762468524041966009929090781547283127417668928640584340184278748656295458667796399674455397268798964332233248602861428984170101711899691805578823382724747289881555833987475103256414589137119713964886555159579165297980100589631870039105951269426483121887903620098576786672297911595603289212884113582777485547301773576768613218758886909936969100251802144729080844380627703288507110040253447458593357402530854281597144769292475379302105961302782392953994174846100673587215829273727733894726318579160306562945238688549568778856077424081858091680833377471134748536814511735630703675473176506639957694870676305724186175986879058955450566632156324885089533501790950064890240256744935949552661893456048994281904230845722238469463134010284027272636974893512763299570465700932104407761771853530841009183166900009899542521811927053453023532941846835206424107616907768974723041730905364081246895311946407956910147835336439783686965549333908690713627340190833590521387485336431627213417679806151594629237809891392993620972421091374562288372965800716376355641721834981863546893992260316871498347712462151296220820314183397328978914174716922859137042408287330668450565993863993062611279860391944302067383010963080324503345870301606627394934969406841654579308869856962077698615020642149835724707721390957640049134364161985198891033776133161246103149522008978673384220830094096961025254849557608473926966921822516137570319539352589792439607936194418016996824079062667480353405376661707947159729019198118124386471454924584806776799611994490340914295234440806530948885845830080871043955509358879055951229872708651668998207764470113165821328591964034813526751335297968309907622821782662919491849463728415166035236485798663277749394764440912404442305916298008360546170781501883549467321492326152731375427722546280947709891459449024068508470406984622753318936242052441291756719057090879616918316309428944529360138434507749772993531319337026560785107749084561157448803458816132340017747603603856044235090877005420405115430700628228653981489369769219240800791715463582266841733537021748610541352857510146972316945789536410937292155997223767387417229035200132439982287733404338615823542465863151146640036177311717051466077830391411858079660258906511377475045773553547633354365218312552176206077030318526424415242541284145027479385734363392425174271131626413837108295917038807442967267585637271127348889290638534889290203513806099261445469420483227169338805412281114925222415030535409101647282681348155715360302740695906327130638796965603463694914341895825611067768098127438065763804874010989469707179112894691545892068680721282718850787409250956495772978877797755442996197904596785269937248350844988815933695056787091241131508000269188921898667012891085608133773532800296160682271436194634847876135296779974190761517520105679561040279570122796272417098987813227995082111285303363021762368906869936397969733877306513768726759077085929718041680190614320122070325280212624637807188109565754205153761902466083659877031597506420862813429098929900867181496393342174353216119472918668371771781728850938386248329277174909533281675996319027897006541233190994906454933126416199847508374468964149365742801362063418641061052448020544826070761089238098842277030552581379687744048967442272757536976074283124593488398870683060967158028727085555708216989055031645060992264034114819610982853245731406708014427797333436232015179404231266168454152278986813127289476454863576120318291612242827072407010155806146783391536083777463592388789531144499845538629700264230319692862738616526190832905206085683477528039054454181534732128482515309632943111629214020637044194359733242396309342141899584296352560005713591157414595781070698151939177874935294008858706168578088651536248618760732968854807964748133522451219664155504353510189004709518328958352561654144222585766592244265454307452836512558284186864805408191598553439457813690609658517666868785589853552347930071692173246618353001341282382049164365629888252143632087789987730807122600386666012229317461418162010116792611448880051834204978717045070521009503603743142432321208731101695890901941280182087797161332200979885923067753791302914060946999638400194766506340810965091391122169475095999933329294412064965835368779810924466323971751358945691711746403499921584696522729734254508195056129275873084461165679602795784158424521218902188843914624107490844815660173325589990873542933987716159637558407705113629547096679609465501992187873817756967318674599227863317009829935582878564730145425101021676242893715925319041349688564129691550379403693887699038694896119725335132302474215096621904336263172857631695042900706879830446493299632137810321593852295786780275449342487408040295984629134968922066179889859453949543546912453834506113833732651441435667928814660825272836749156116261813765738955464952065035939546162037630132510679768988184299659884754642618881141151862541310327722956123875366478109127866227707523781153290583590085465803113688046923431450871794193975181180915294940127238846132868922800434447339734399059413133648613933424934548873054918302021001933318050757568071663926344881141805741416155045422714296467055930104043983459398495180397332763881083429579570560492825529860821712825302922695319192312122416536204309964342639697428765491622796678204214873311864430316260248581623060922108121978822884597749565552614464637553282261876311364559156191849969927579464152854982045805994625794240895952978045736161950303005373655199450183984576926218998775234036509878977418161936435082492590921944557094494441606811007617122953994171558423905429243900699397846324314632432478356219754885520205303860406459825438535273549077471094205451563608824451744874998548985669995789147209809327689038246899860000725121576704153112121006016926496040385944222140537157163999505991234098361933564988161548300448795538948565126056412249007324952036510911270469332919774000226179393196824575491300828259582677136791603636273428973836127043774975773405133463541692388074719231233664422059106523590246267400636957840185101894629636881255676382396567135823958225730604927990804487513177594049405225502585932913326793438847982402624800362867928051296804619076313192667485783985024507965923005034353233938043420704391911789479271990135560832610245292949166890170536281707434125722390321204798804504250373061121907733181130281866726576891254875010086651177223905239573144079834518338103803574926494686942126101922849701906067945790138036317956555012605337185157215521463280014175692775071606367830456129093450605788672808019519217264279378985903056787646402275985756623371916517079934304488839066892743864716768787159533982786845991963317956117066784063682903496430324585122820063941829626455397759328891670573756416320087433428334046754848347810694103191251281727423253483778328067788830100187317098944591755792823938185940032704652793543141451271047925332959159504662443293519256475151929155358334914764141632181106387304286112337846248513670135211776831150666190486407245059697179272296074074958560682520411955061274877227987304207105705829694800732370278076705681275611598395150511962065351217263996700488923364009547600867448215500009139900606145307996253805869317248120843418537350148572102530982615805121379791497370552166411315626183300046368574106709559332030793908621155936043022162162279479510031017861921425361161856665162232619543839066404147492320580913317580337644269516907313234351053181872744024281920464210734812988712815579794930832182503352227635382252537642493862241436696914606952533922147332473253503437550872201779945847605780755803574938316717851050279611355561836740990397120556497824438001744329387866733568971522914298116593103967733240733067759214127621834789215674755574779929892342553341703970729736354429973816785112292156063536998387759986731423650666853731646753361036849168202781826935062544618861948520319007024533354035827630123430562411249953896935891846841401609097245982576455827563320090567392475823340271015953567567664461660497242866203649481547348817972693002311088558288236264610252971898763940777755114437872731142274589455314166931779952152173000931911863021744409728504678301269501045087224143134595246372870925266063051714582177548645609872058442873961029781957950196506353390612736745084427796928840700268145587032164175256204429992082598654399429622998757884947270955094487293960611188451491189437402346735624658468871760747461899205932734902787943957627221930924067565850189350012550207156704750652230274660623395704593919803385193887130245284517089396742815970762082128296499514748997541983725284307256579696467775981852915195416024436141809233143082644084583157864490810861227972205526856008771346347698190726895164937048601324742854697715448694306816736127874390338417827583698784173752202471723046777284725572909364386849292777355796984765942557040820725882473615113951426868300549336714203467022678211829090971565535921627227416249951233877128438934435296321131570375061676937842822124137882224814518297828031243926439640625686427356333270102196380306912980990304232356729962681689242314623442394960349003056792955170439459466677590355491581664219933899193433557799179469212159218328653140859061486916736291518892772052640575392353214050846404593608116235264528171282484930169861895340447657866981518204828495281432996451316665316015853284075998309472967073291114947259350054383552201389135760674631369322017504065453868181173389841812578301459065746605354961186571827373090288843783156830738600271188423694046079102664060332665666563712572548702389013314381008420577344040025203368982261728981407601494214381012794078173727225730751011802360453289063681574369288713659927733005592889641216368199595053454220001497780262576660387697792532205627708073558075591888612995026071582665497989744428302968228264576801183731348301719888878504672921476863048806098854435483224086613908726568332112070020369722406836817877126966199425683352013696874117109325282397130474590920513298008958170247709883595227506324825306610145326994902845397369495950528925361740474526728456951005634364691083255556418407782705267638300826081525234694206816691732202325508422542970525697589911365556125947413865080124185434841500759591024840626812534115764211064496599926284868446527412747223291257548278829910485265765138816053716141591462277783579661794664250887891001803234481977371366059841035020549810619813814812831278419960944492743746958683704784113071019346155162204528326618884208789897996919214724162609664315242858066082125670304209307531208112977788603901915359915539390381726010738819887006345736481166736794512109513990224745580339462503666391356958121355869051350034251320411715265364312149801242917556825699544331491457409039071228053184899984030802136040581502482298488424344207466924132747381095340371067607269124397085269313759133506245770496240973471922809946996469430881550114684361163827195718135001136037148251566163791679285532788046655350512300591905230380636612635393364313655166658322868713460903263494904610146631424930838849042392090917441106261830656157527684202462271325766697885767335200852258246713889128379346268356229926800715696812180311191174447304719916039143703748819672283264369631850493027884089989222281459694779925653270695820711973243540824693693750408346459085683420270038384599248002967673904459982952369659207785903488141511903920870011215561008841129253964924320079360492868848282484695893163447435026446631364912806250427781764400563827185850347317548130201376867269895312400173369005100476896481818450079397157439184979744803097501767702625365664295582198939917625541589315373364621860073589250942854920817144905820031234721231320817606787312089458900933881676007758335815092812786307920786528456425444469742692376452686360361466862031503100132197164847829426827237996475207442028666205417406812555138209093599772995098345123506341448373606497670878269753965865369624077759752737738354598693493773526493597459016788973653962296572565467678288339199471201899731995309313750427739534892298986315738886795661634362413585514261520098908466710266968369073262521503492851134848121717428135738218738307872187224231643539838160856920191487310900382549511572411382399778747417532930583176772552169107946228079655077269466016826053575703445493479552286042197376948707798218341213969121128887299526704649224673023825211910870042136124522987841334816806145770268663477299506032885938360157956095734593737556500819301420472769336596176851318395035205959041222529083320447031773419923353981292325565190534051785776890786016005098999270477506396203462686617092685775198652029864380517886701329906637253694781299502088649450018640910091271584537829600651685853670600341733267601282712800247865578391456940241910478499279310620495481444352686519197826914794704506627088037015415868727347741708646156778321838142712299515123296233672860364630761727497254153683557570402380404867713215343683463768090418589070591047909406120028709796025147516366545455219162152602342564285829588985234364539189685462858672143416093278833788860148063201379074490253246868049940925697212120177677353557599923971404313685945154067010141256450399687509791231758601274725880579588742795301045704162906291309767634896933006964616318228803602127758496488673317872585909728403888033738570010066584202095331904108423877005930257573545950373077050959001949071305873712735744906687054511063238127906221860476114861537817310814156139208963162844010611766602705197191511357254406337451409145334374004822606956853653667514912934720320634349493266802685653974851554111584437672409524062388837976581491722606601863307027132278785850555598670748869483938611180176839753907350867208226701397104319654324601274416111706212676045190527849884442365230022772076590665354364012240012647552578530659551331153081712878554067477725469103528921394704846724795731933393703889793815197278310105585479398485404340913485991315265683212196811336068248691272861699003737810268113463372315975001892074796333821467456286186271865457053805463358314500650450357662286593108586168703962666332308270924639642533261357208701093437535685025918810522314912701001570698510065412346260546183834088298019548284365004259110168439282083550047625213467616536951123975176590710027449175889452720564495758800345235411321743595540611200563477084019875870978015300346031212209196759326233533736568887618514663658263329840344840090670410753075062162211897195921535758181348092625435380003534827030796828234546529391237695031664003930005122461945897872835496923641898245370335905375401219177889742959950003397404103680870060965842609295474561101624989436166194541400562714159453714149693512680083218011312852553640800617722382741504932560352176418911748329349457900356185260849338938847624968143374044885352104351351032572947055286801563909542608548065307865827576893031664554988724218446218475984326574148587655547352850623526062231121054241656218504505320117600125186131594759321255695621605220778333928822944449243067647429322553164983727501447606103020149449937392287393003609794679497848161506771104685328758949039137007388002252189885786027201253398479637731438186794003991984785840258010202434358901146219512332687093173507467525307502155780782305931199224055894178401929239206618493987740290928443126848383894653206562613998215075158135823373149249445729798722330575282421561774675302513718404810980857156432670382892998166593651379286826263980273674543492080163833020499038837798288564998416918644703514011692769140866347981332885672872891879617428768905977395006769918500004726326437192705421230530878693023284410832840635080004512326403155310136080708476128847567329647331729827793634878113064136971670373887544238725690092619716860948054063753512420578335082738036578570946692930072889666261028823426662330828399671461963129382771591566164238818643804166129417340932111616919103972535321418813593765633950329695176293023712443405414917257239846201014721602451509313407412319892194745926988744935006827956158657240621850741622140928078960058351530242016985174582469095728782081452398067002391454308287861410703717709912843164623965187271652703557086932315528217612041416088216012962735015196073743047390256796215398639482245843783836834642821942843839585116397904019999252693738736586184483391969224626127167711542311441587656258652081458175657160688831854287264118867684151274608962349051535389292366580031838179499590616346095678937396905806938145493967766058299618857746654523478622551516001819004292430101792902098497337084410226695637374001677483052146958970305610428176954397062811685122209255301039617576190764740610520926495904798994755745652611336276804837015437766456836145490805980722394807228097107788141595916612081544450656656170371896747702577921634113662616533249794053844528630548851478238004926822623382433805134576661650350296291928408018976686121562438634075099525657829922503463482967039925696985518057389681531524018370133549991744055167802038393980660461688720741434317045117495380362982277718993989459260696074866034838615598466896606210037661857283534416766872057256815494471491506658334940100791653202047823601350041455828024053842578902859797754142259757286697081347381516658086715001392351183275848324939104866627873475662609667184722889393823296352493244150183033224692770849694187567887323893459017266590144202696555800589432502384462118236939675504176372129032406631295419098990691188439859116459532961281416845663971344659203106494886156388488755834977710099221639246007773634988686094750460318152043867700291027823230205137714312010330745428844441671403486461019323994259112238729524854523784393317966201633435552520979020440897995209307432681006458804971735376945636369281454715325704619041169566734234463097501900268810564960750006152548258012275072874800805467766005620184723847614556799339320830932198299231680913918346279688149707306955248451636645857324227033922454937525988617900235474710212671568328094508145021678926415837926673145072379539777129609361834623324750670223729153153123843147968555482412003081084800341466719157664369548598928703740375930679277296686903872945453862812222567582526271745097704126242047274026447069483079783335808975305182943008031291304375026920188497848857066151046822813918304424469399920707376084355743211607366727922314937247776582636257921535550641193136984577965666785907856363739035166205532138056466822630757212039908720709032032697451394513688931937858344300909645191121793744343618311175844855335776993717458721647822463494332004390275950624141513607871085431537545886134149200421618157762630244869773417404407365176538768112585399620031977738526667806352356251114343720365054013263618926058679637424471570991945212666926252078319654727934235299268319090554562175763716948707685168131442650519817282290407781822344912138345678415509177968401352956721771039268788294363259026020440195026554510904362341034823780873202954598956844938411049482453651241173288121503138816275749593942946584538932070391989965490016077947774972472558226850637554293890594775513623649253225102255756346919751400640695382959767313376340967746197364623073980811088975694952559846344598713449082485843388948514705303010633860753653107242524944862720998590452199599796215096282952535146270902058931365650057779691277405168818803252565735962765516115853686122596485593274509330587440318774473799710602945817269098160126610184858669909400683691574582792812002340914906246514961779814456083762240277161241741194287370673312807292362860891942622489622908967684444900490178078382471350300655159398062378107108185053340675705189798390444681503268666037377436176862521988599809116147850046789700343483634641643040148930482897897399045246733023847821329190977975285411197493452021231869435835411074692843057244978002382517523439244430141750918828968556363413436146180164372590273945584914702552026286043229462695599903150078765927106803760227877866922255092548784037025017597570342914620000821544808766311600364539210253536430381673241060807865299369670229664560951612728393146062745751591834430963903692883867582524046597274522130632816556506460465018555751490964734813957290699561095454082246584120034986950105235538406380186504337450591665985632155619769206761643066322552573250848459641234224084206095055485361797176618974748545780962129236556200941400741526522946970985678893602726210520119002444794749659295935054518293943552938400688036699142608803936346251207669290189616007442755312921231551037478044409636645557063960047215275535652117697969490987260713195900143198412480611264210553510852156083610529483175717194162119058334954605462669589322886615624250506142784951990488505962665926725664736206390065869802766221442597138875193809760779440993604716372888235086139463834182829652939850433924446450212098636854830200759702771314598653859639426476539654736575184077935338771942086337179200719278452801761901053420328689095871138810261054095156773233560318718720944762520643029729231631259940157287980210366839242802357843685462241760140117596587087055184284106704020328101402470420987475031945141368301444513284568167137950634133696501625002001385568678243471867672724769013387900998939288460417553427482899068078689823448455310491147218518217986133512620945830564591178393858068329613008606796460539236481219870904780440354505074012976412665713648238648172777009184908102763208541648348626038171483904778140270468207047906095850675901621231057299445841005041455317863145473188263217462999398878251333669586538377060994965414055138160344423404029169122836121835433338312406115716382665834695798552824788629689226376310355914042810099673391030827538285836032197977379363808385287341536830096095766925380622325450863153887942001740996596775029960986080258886821377665754287561680028778174533076240117829228683652384657358504405583510916655845812059094218511321793309544906704804975187011328938563935342445926995774886062660557631862267082070293057475938899064769271927827850479738626541818041546678465985126854917614160783630007505307350109997161731208588213946341706465123443145512804726930671783799962171808035165861483926813687315991976047431682930346706551982357295131473282406370446319546126967678918329243631306077259787964123686011738704283796843899922526845824443208103482268854010230586357739053549403794936057472470652949903149057025731931930456047632787401097767279923395428556379109674754302052742220181097485114813546302685319791459549002269478725790595497041080905557675207436552462083328760357507215541310456551760898329355393986583511203506289852953728320836584119310492241244149767913223896019438622657741164083272948403903530985482785254712463504055534449200747797617318428110950685679915273780031055036983362521073562205062878238098122378574343283685411530948884729951307580405301772358903830071232004068694790160286306765984099146095701469359505514496152946599675218359041893889728960297138547533463452651892597645862963722237201269515854664136831747696838622254899165157619933963411822628736353855385681719895571666082123696770523961842678430307907859099493356112809537111036282588462935842915872480069650987594425995737342175701444674820038365465730882863474880359881503430020979151767554626874859451182556784020128621707761450207505313750926361064085343051903679392119274991201826309343510400329255056879381658236184345327981753668816488779465082005809958774719854174719357744576608955338156273417662582023996029824728449243919867796547573723544028423115166994452032121918554482655737878053183759202427662039615755124150195661642614191167621219839881237360501791656420032190613154162654626590303381288278086822050205537606475997910299374436080599061127760672294659034057516694525405266013446129883243372213273166449612194662497070475030861589809585974102568286628001553703781873379771092636805227158470072091758615993436288124807275174258764328758097923669043592766754899069686405288666159466949380671867345232103381819029499374680510686386324632575414212717824920322955063589125786354425716407207435899118348965101087952970124913799449407138949187900230759885503729397381437863943570204619215198893694268579768533557257918449883288943332153209879655702095882311762812397485481318545407116767027841399329418605884454744235289994478163793944976453514830771922713017557918035226785590406295612462514216612140662499838618548139383898306848823485806812740166844462077150295806896319524543161102532240173606390657922778854908831224655963173141856236771381479687936452852105473428988026475308833159709106752665562134654817846655189497283361109718752301252509072137419595496798409268823659337087182716410483498881214543316705452191116344926945067430305354127441188852005847006400812080415680063197073398360118492344979481023605992666222111825352555114198211478665853816628149324253016985831928717410167802613930517574629807748898286741087616920920609632316311803566649792217778997203002399775074268771439067245856866021504167313925122514231694601224242381657787247721936319721744985971110191604086205228597523070799816269318210648141994186311116800151648275360490913194090007396866507111480719472193213061103311751594481710244068019089146407874407409074105174325737203436910253056189538083002210926823382318375893179316422782238346512473639995480782639597445088883955691886181901752911605777176054823401137809286187071046117910146715086644343832518397848330084345435665198294804727841477358684829009739400453815064562799817828603422869598474103983873351333686037016592451559347949650511743101755677108010349983656472284255789759431126688466712637358171659535375805301715167194380826664906212841376951204153905343622862011881947122525095099945370069605078504733075948047091734283851371496659767472072521722493544394963264872376160175922809539726960287507989047715133048971730820184232891914144831286944225934525840668806119597374639681213120111138266167362720680476218599353011421855304030689605793985237176821003942213346549544565446630858043231288047867816843104634199414761579789120273788762513165826979727585851146250013963787401082643787436372331217434780491804687325006181522731738532297838416791259126235753829403245041703999555072541030490895346824109319894408315777546863368225922617679510548405290797891362050139592440112109159717681329275897819591138539904839406201295023809782516550133714370161548147557980558355509779757908335626368153134230344119335843712997247342044383879182862423113503535503996184568074118270124192241413148661997635983162087054214936308454907335277964889073087782716128846760252198526680166660966485729634888631828160895240450098561537393417024914368592184842160795061679745329221876539129259423709531058899581849364473897822659485643169392806253209380101352370680037011874869153441387629621923763268539196748225076842839075776064439369519717095546737683413387956382822269562383934503301013908009827238160350398236809498523859534668743400322279997631426364001296014044874790823246376066054807345742770005764460494120384843634911872318861240061543263837534355650549092269064066823780612982777117457374989655583835469247283725974459764139587815589529967337518038839645693177055214253300119170689300504824539875874163495647245104470036646511277098415499626028431407210881326733556046440161793573451452805937002818670973771868228169771983108344364827493939559026219779004962281991948538289516021273666837539881912231594414991572130030696087562186363372902077689204068181331294782781872578334246208789507636964903905016452967080199021815938883519943391476947820699507758615131460465145803560882532298240078050474054733445316969233170860996437701324439667285508782963732895635555977599715128905787815792467959337922074088578294530270855435399539008931929468664725463260047838578550764027031548470282246779471730889909481466113343512637678355116101221387370074354109779240859821572532604982339818660936738750970052738527907277682598472151716551331658012584826875841470187373899806228921131198888084734424901288826285461497624635770303125475818201774145451668511389052120648929271133057824123240076134949845511860367802475942415620271189611131306714174236694150126489551252459426636254269772387933240511372099427546157019392346374450766485834450017660840915994820497348541370409993158333983836137397973280434854399759867004938218824104328855835968739177020245362016363030459671340222647985679773964038420969108174419483626001137853424276664473530625576329141898265611978542110085560566504368635258535165287893639327421029902429407835581081536752396960937990689170487300227671439087102321711223739216889793769876180477004566729018386784672206161846603642894608760375067836545663598581754030017079754248892831266513426755955550672951412282295388934870079655714762057156990814020428086688282000043001467956831987344596177960725009748201944991160710490707395052788419494777080615721539165033481366151833357309884195446766964489124921483610322803752560674735031343471986208308081287844844211781628603690818927336504845769328007229831928168637967333908438714522745671614680022598364918325417723468397681376396748929872683416606536019588812818049452292975661484312432772556260052353536343391520334167948288233200979916768097822408119504243819113594096268298065411045645177415610075946585559148194447931694674767113406284234941362691995474685944169133981036318295797957850508193774975284766168358882217988748932543951480277645800530649671863294035618264825419672762288662858404545994885806690187685378712864544023236555425015009182089773453279940036981696240005073001639756771557565542222305751452587785012550302549645238480531743505570978991230222224694605475335779342711049309803630034409740410968558307708805342806589895892269165403657983805647591672196617455948281047851830176688246796749075407715514358911674107431136256005342888569082437462626721778117041695096655726301593084377475790970371417929894211098813806399103321533891177168147789929542049699716626373862201201742838891799964017500378106947160683658455757562957984890176992720317720167666828386023696190105384485022341715470685218752650203272123763985296699197809431977993154428924691954852998552011247122041274904699808606640636009293239412505576252501666363183256473189327266443815336003079842147329763317104479997643183526243693042765945382444894123653147247444194575478644930282133571253891176089454377968784682952999761241472223061696882479035964748690070482212936276612054453378556322138910592231432747966880316185429803574282442042074405021586488291861084137628044948443510945817873327566126593089944245145124239029862198948258159293139707382920389847677223764323229105976239673658405777943218466773161536831905038795825233822131155962550074758761290320567917447418687965078308719218122260737064775902901412353820488583913050959637796414677055486510158632925815040864668616561625186932542176841407857591715393958093234088803558691908576756922893984671757329991532540871733441061330000072667291034472352796721126296508671840827522436191641925734852467753444330802642719605784835130224678721542551687984365401186001282331196969257673650423353022805352669206919038288684659948346203264331361173285458718262641387629560529032158363067255016303081782175348329460643237831894865616809108680163073085189029812205774642030999547685295225050482002987985659235083354586731999826327855691095048887742788610750682054661453441882374838783809118808368633111838627067898799381066780101963163909169507360102819634007596619079339317446229549954632993990923239352042437344532703569654744356407619274984127868483793853773655051065762390232630265867791242767059445821481095991297960640752265981272288913634765493401979561914334192916785648509872544961216171500644197843508878255604117596849655214178851454310586244020382499155198737559903701510618871096985555149282310218131806966736718297748247645786165831889073952679869979298804727135703115362199052623049529968565635244304236542912441054584925520852969397683457980998063671207716684051214533432916263344613041315864993940851756497269921696443467613728031055456390076514448101206367771585407763706850021038956014607916996724607353311461928432765658583655472847987876522298619158804945992204655873123176638152655192825826772349175161803079491652522551646642810037621612845128809262300268144565242999761051491160189084582365393179757332412593530293113199938035488718638120267775229146247128576672105606217748043473232937437154308558794547323547780062693580793286609002114352838182491993308919766965289922576735067881345665460237214860055699863724458140663503093644337111960451971664880330330667470310996316543062073605619814943819305690713279344914606787173685596780682956330135705653415234609696750704267320400031018283743736913288632165526395049914195354463438885859203868231572381379380542613039325909317807040945351272351847721762037183016826933644859261450911658491907920118843517470257615035830102358699092495140049944212418261992826336053485646797280373054396658883128224340906516601334083630102866775506273913852670893336355096707267025113126927663658422212131097534946626797278428680118508358209755739391208364082112361189696780401510427383867692956836501011676571637185301436546365072413366428703409779233726410731005529302244404407011112096462716012583387606615941643487928646208820031143390857350983537691335445473554107638585935643216573055445561423610146122172024897368986221003675241635948826862831979546257204104564494677147839281166344657196309822677988839746978962040061353085034871653147131243515826604002147927692590236845973037134227937310450022149946748653045036108274175176310175218953573620784907355055629581380732321528162996960864864097877586040081566579511571694792048217541691468000896669193362834360941270462324593239143123361180348995730134784683809745549603356205714852747052178268010846214294046788964839929670403112407512973917333444934533294139235865742063505478328136897083567483902210151836151408332826659467512667918560359185868912975963036788901538713243065655685230290204825754223009214993187618860609555820205789791409425658745384818675966498940393393202132043068049827968284530531789781522214163443197749606379357295609970352579891859167963085343815078429229080785506644141902770740500526167688556107498706602508868281221324022307496029550010946959606558024378652796523074126305899819188798908625428066534948111068706589387492164067696345408341688809205587519609111845831974228539127570714924026622559024240131001254083019377091262143185959835766858438532528137957226305056834568583935579679112957339344777408096709373574144925566069017043995834096857068739511366605633122540269915172898387295899873179433252106986325909115380692004359717380936369034300825099510149974759081909657744796827497698247412519716643109353856875629831095872439127913081839589726063772737191885023195840376307147226896223468041273135977465577738269059914222847906441208484567800011328878986841754299330197424304427535028525257519952860048656510257207504427368634288180105836714714297478024963888043600775796288906522122885003610247912587889367046730985170036157065160162871329929656217629742160820623865520563879201116100482722582639793853450251960219122183980003759861551536809185812701941492357889019551320786945084223534943079624637967058793040785073718404888409358675369913740367023093288851789458221068994980173289595541188968105974644504584076216723516509023714682481351275899741544615557552039062371138241018802004017899057836484176747290605650423812550492645923110592817894243106153655686106177217620058508998127411253345329792313651154978090927868940315319139775969311117807409347092370288428019587403300818212972059821968368533662762020824765395281941209630654976715620503532839726773588831715395915371019599316226730710646897743299103672922184012268157966859486604453954374154887662623598367939906053323242959018892823538298852634626367196981845408215773338163660110302805280824066151422089901700159478584539324788916967186084796859162290396212103975511919917652696965412890665872220794427092343929487583625274349160334424555544261846423130417792094561070449882038771635256627375732498325857401865032687890973849740195900178747440160807889219116238989497109791762403926775526952088259414882555475767278568537952590823494422186422851062047969851232293190194885306801202942985112277928806742346446839475423213282529504168596063211760014716674091474450096782869963743875253728363477673260975463599218378826507512379851760625556608497954747208293912830703740435506775800381192053220691047553762642774345392914803250801194753741597111663482987621330551770211441164478706796361134249594273459281005069527671640918786433106938227000844390190564340943021460550725391742817862633990683553599619980452716436965094289153186177092346172938857306124866716334177828352225610400968372995139532513985931021962767100829002740718044267598724217241250755429045756252132262364565884669417350082874913989973040769221065422536610005729379059545781451437783008539175839357110495560411101237440250764494695340713720607619540547509457506840832412860896060395911738708549876294905231031145898990371934252351167088494358931713290371506667345708114707434494010429674698357611431147945593681900075782300102699390207027357563166852744208211380658830933623440492610416385013853277071650520060158410400590017888548814732310794977459276911986629642553065886996137580538596426159016155439811285696517904591230402437640356147229807422869943657490557005429306604636385079147584723717994859234709588516921530613332547429474378387868814890261503143353846880756453643348472274778474304139214394757653518261969964169659116810359775506756530546148698270854323062517123910721057377505499659290728055285084744367378116580130159017305573551478467967134328202383356332400562587260662600706976582928671748286083706144016214911354886787471151127557462915433307486220574451463126011995272503813795267117434655662316597905835853134796381374871341317688024041591903548713663965244526049569011956155945350727730905763799973972394416526936693117148692197267707178346659343337256611571968392722260093839560630374658798448926861690641411545589458421153192160133275420451721018711464667169047096882545001218602479566477787468075823804810315000075278762017902750274522844294488728768694533401921364819970022146596685681932358609643266099379448533958250905437550776232948058383426568216370995044565604079203341026981571629240919879947972354426284258974578506712729357958720302425135734419292263114687180568075324790656114644375211159030697423760282862615496976888988258267402171732103642680333190735650728684001632307967889494412777637823297789406006768028965469939738947928298066488646560949444040725499217014458105917726628097590751781552736431677881701811428352532753432906286233840073293019324181477545523877948295266196125382208750662208697097331221129191096803984776823990751929138618254165298638225335313030031898395281549378483003968587881147104343304629493730663021766590098359453917927814433962200584228941427633001226229711784074647039662060599584564893023290264671329124364817546193900726169228450909524228580420815614215530171955470586831109850952283015982695977365506164275890926485657261011877294286325934284817319151777709552784774317488005679479384489766171987197992774778938761663534027440111272472442371674590931878361330151172118827844672686694886889358968146291327679488285622785480251530150745533006146620804060206108604638006270897513011862864092281153778996469815329931439926874860651043611542129337388946236463182170112582314328960963454856363632905099760544298179466956783932458399346589053114676593494313630954127905692843771324429174488153235315877588843999422553950630699739350708250210459490909908713261217474515203844323671715292884342113856892722844908989998001870310546467823493693206080619270767958076676107192457684574717959613120345693084811950585857188720178349519973577377858513916137867749518653250723088500653033220780865192707369783898209410662413439762780662202461268358684648787026410968271699903272251099504507134491934203586205848771959322940547107310969968950997196752819930426761547548807557040799653693298817948402888827906664098495192123042012183312431620325724907664754955708555792058061056072468650948291046023493687816815076052210135311626977276390384258402704429607557479268432264417848763483971299090997321179882926114329031103975976362099371403715014609395968342366227074570387801255009106157545978169989714764525696203679023961356823116747679228781683919935589068696286955970301428390493599004409827371190938560368331158978030746645314642052761055336405982975778322496758544716524355978928189877688433743346831835324941607540865165195341080703706776300918328067776087880175623528225262367742560282211237813461987511293728364065956051152359926317984509708909867464512870515733769662677060941896706986725637909656602422643881178568674045203627770531933590142606175923843891426988009802268150904221255839876710436724245525770223410364145753058722974244591800147725594649375349026211997533720660953029561401757299404702840244294547523119558311666730236889340099154809954996844420882067724903924816189390644690885777123412886287694999336860540747385743370941228062325623160636932521790223277650113441611224573600117051202161897480932880210387645720742537479055024946301849067240025049668338793171264626956369968597426601836419346149367402428713349593413298113723055062683696324858707650320998875496469708490284322292971180397612630368508390287346913653258228392084643174408132600121606446722128559320898966314934928711041435092975122933570568603005783495176841080558942274339636095136951145358842086579028004637457849645999831512823152088920544772064949980326873807514830861614669937479824489631691684968320807572606022711548412241588849935119210776545845654118550770349324369428912716046102704377735427572898148490315729035871988369032162577644338290312239523537768771349200273428666679348082858156774759706268975432254839450202204879244172494440534764643607396090554035308084152730559473296649829938793522984790895406261086684083594739096889859099241941802491003002551509244655439743745084339661976160959396278066289978788193520081759418480479081469480421549488296336151458719493298115554345789967220138005700716970457970055368970309703634512629383616640299346660601248290973542912414113525732510926862744787309770474407296743089187875933912893104524199716989785980629324306799533436548162033887710809560873597034446451556677000958398757554400264320233235868154814467451450825723267302245912310064465274226820137467972404762348213358031067283646005879628815418160210213391105456917347026923062302559584856806372321237633506314214509539170413232313096861307840808151253932771972689799858803199042729539141504226318018919641231398361311950730131916145064007965243609060641749928772948823899647097933889536378164294348979327555731108118220320471686332537478206376946349762672529415651783374309817790964822687187586637822802099335242491256000967073428076905942518970849511543153180555415312054704650562618520609041473180931447871932634653233588161112650697296821096855250981876783241966532440182615965515410616422087279549776929094573211142920415035037429426806424371165802256395183939083503304570576031121694139986650011578171729730948920713616336085364646646701769949673362043069045805825296040340975910753622694884518077086789821673091830481104578170310487876806590120408230167159589328904318096983601556191185265278942374452129170262743094289060410120261965449687475264215718173192667834757374727760806676660517791108048199956802120550652058137486477670340113719804336495002676659532091250762847180144238014409072093347374627653605922970881612457981433995513116061931997240377739902254714358737470016191619008417672496413791068657032502439233973495134436984088633451222023532600030245821867108230984056526814930733425332894985259125465658027927549211439564185938967400514514654342997354897702352601337341714955744898000508601427736006834664750420625010665891599090398098623535103364210710752430331446614539619033933543951174588836002942059342848033449302814361927360876748043306892765173246913367791728521418269924005620738009157608507282270296900601128713639194933961827020041343309754911156266693042654257530796382588097973393950320011723438758838785707627909202199234638488284453911827835060122709644349045354979516550957152748341136419720421290841918643571098490836180474963854997662174543929986926453764205142490630738554284548510452121935256359701359308259866534081002062207104289528179163296784904084970439576236441203857884724321334577872369557007920382628832469213978993444229679486926274781615841229490583048385209375746679582565133825497468306842649996443047005787095069754783905264086387554909676625412646108225292867102710038313877611456205919543540217101175432827273125526953466515248737760843931529633668708320332691552762346682982530289720936784538883596386053763304480725291710076273137504153894921073715345576525873973065587489547471446750845763267822911752403484772313750111460265459801425747743641975412509776951859107053590956496233733162286664103046326413214753390381609733675972126641958776173972513546458077748404353419353795302453802246601241325795754188797651647664095135249040807719544510439425443871392119377463078484754754187291135658458564563932740610323558069824035684516105420816250088524175101681613966223213268419210867918082333829333788235363365530456172276718837034694734982510514684409444559902714543491458254608075593337761536324626720314894706305063535061712345809414411145680332126469293465714033208486226612256710336449631249847050629247524600483808853199530537475226108071659425538217683263018836099704192976910372254582207577809681397046173378478697753356783203657187022413078474253114847302287632436319690985175746842780465282103387181138673424568886859934156760716073874258812761033180401919497110470342176830713697204191485074938612505021556847104357924766125074101767158919948482338299843111248366517138433065239616045757837876050310811541956740412875036735509691825637165517785616432521276336788426604980751207334970323685454547974831861583990308011064328074696353993501054692685465696288597242725000344677819792425035514179322846422768088878019691735735477286002991923272924759907621308716962607326253034365759105820178202781420193127165627705261013898120670635398173214107050227498088613898064544622468903457533981333257922267431523524164829817792884101945525510622668294429058859215785344642429350468980096203610841544455608170518134389254187410692818476518124244011477659809641592975275903332631460694521517549939369968061814148436124802551843271775889777956203720348226064399538147993811274003925643054562962559519003246905154494352627572968896523193799441658904756851071237973217655912755159681101484210374537913621375407805840798798265638560040442473561391908436883960485110176222036012939526012362285774886241068132609181374293643278174326200941665692565371004065122289674567670684523757461297923645583789173630606691778163891834735063763105318885739983687822047850631154435405921577498199069852137880036012713291462905024888884918575185468622751028683005023546493684094434340127708930775696079472442128865730162519385903197668605215354958015684563106132456250553705248652309527868924681228773723805976073960055085306985024796911914749344432580911354578629524986330800209036814996339405906540967167976255352701418574941148592713725544326223089746683230392202432338589756432490633508629123468176325423949386982406428033808388215331919403085215689779505003909626197393313044003598849498580425691847381417480876671880582247555149759777778668714398334353943645297745604690784248833086314531652276812618997735144433982734942278920902093336721390917098746759525543028978470460344591916805980042765144814093837309746964358544108558663850118659756424187394580357897309664827021757688882185400559782406383019871489676184597069324677114386382706499651591367628170597971234421580029477006378279819861378345231104453776747764401444762916419282976307090207177554488483968404949069173952543771503339131611087895134025229490024504174876727837521348028868250770061145396771052541793349165227145961693971629328586376120068980724341371576810618811747082423468422198800917551454059978380693226228273329778247832168729714846676493696264500171133796053031470809047299251918143015245951456830403911740074391062230563245930975965989247281850978945584697842068403966284943819032390084240431582383050848881161784583025108775173090941187748677751729840845807389646007821416021863910823635438926708104403015875465324867645384793361174927288529239179303442073959719575578047604449491441418457110983771469085971258027468080634084832806562068229152671926593814948588139865227190934316302439817502682782841262010521128714515117293637556006510793364384715405817091060347456926700061093193006625394519026076226637258118288254302308381642821673049292921674927008696194981502050351170543885739662883127387386004830399250159427276597021347095732746315427934077627899631927356733025819892842276208492882402778971540575651051296512277818046323236555583633499110696756215906036416646012061788730877651536347033376604977207407363303458221825790678711352677245143844021934301783000101352689461192922092746804251934516730243089839392267575284472819208676786928556901058431600038440569367091193872594353188235277798946036132731613368010998699110603516249196962026560602860511460587503836994900122547220736364159764360811532791260481713032172797157921326910823308925486566244363418800078287915627594716154611857750406865773178721495484204411218103691950307252928322829885797240363613789574158368940562098237952998163182962275227111255255876740729643412226530045094203550215175647272915500226376673798878892467041789074959298374944504523253250405361139902079367121989989144933593248053543694472202961297931880759185403935397137312281470941547173978145195096626112868610034171266005569258129821007670864815138867630072882498818047513558772452119390791203736530623115024566439831848991334615075296033653438134782750501238379321524606078419504371378226831399448012750621318550066096279114935526030199932753807073542699732076574530885059680788165090130185813360091659897881216511537466781621468833469544166106301489740375182943884206575556021847237220942491314722358749526978258418732208234649371495889807169077345849107378250180983867926829944758363035190570381054677547226614914725503905016370073901720296847856623641389318244547273782785347705426091515280828119602407540259333503756579244717629916409523637709715797187317649089093473652073280019207022422404899282404739008784948020073197340684435774046984176812484008827331108755538525731841092692580867295358177803989012859959235280499625219469355191831967320154492788646862518003314459371762868565929491602860137388670544062407327832308920908449476907372431085241746618797438837070780978698494835047117175188471437107666732595907365006813623781488022495007549476667509988485520477755873330617175963631543485764254485205810381681398244259708275745019284185809710173575061198824929515126744223857143477121492324849250683134927418467878700066654574209539830157102008411613720277843048891581103505129989905763638258706272778371841233085587500825388295191458967037117450847365701492657281357157247277208572638704309254651874338244053886069669163479728750724180451818141878118021017660317533987054923549165625764326281143721735358054947794382854880923656021293242164518352123887112318800991098909453922473214185725752591879552353326079063568932927649162556259873995071408328389566923995942898567159125127624195451783130683579183942633873555722864330158665353318607603501805964088544402813687361704684294615798084921276951422265261342743076091303346357679794925292671876032393068651699231908621860627410476410239415233488306960198942281766393572807391358292444797121858254591872650820479714518765453465156045494535513268189287029721112439072171703109859584789251537568654890776223340356196609831461146791340214868589726151440419285495053737819541930363914863045128786143157685867024838508419863793039410460435030570004203158581440745120723311938401282685837227635801984088310591168654510581905078566033194665638108692215552653261916671649853485447941279336872254729188427817150668211126390237363412348990375759270910066709819986474164891172430278320562040227648617327173899830755893335899149401160044492908820264547260055030795690404444846751325641278852608149661340748821699853054559563391088040739171917068776826855228097316063471847849673137601918620133577811099543556725202933361062640429624899255576260020243755409675389066445473934521061728065137212782607247265320049899189139902334990031906051835553182004664772002130998541569133491133623497463754076717940429317589389035516706489457852689746492184006311243043380595672001297877716292915490799411855665888431158938251565638696694803940693977519705108703386324308881742219500617334002412145741998812395759273099756790534669124705011849581868986075123826634416928776955346825377641233425269419514488223181138176898758697881411822617278966364461671519013246693414917573438064228023709371305379247296663360993033667698203422959818147391968816382484742965171563928747833306139289233033176613440201510154736708975318479737399476000850184192924488198980650578153575175405299846091213844373791139430122669293394967690001481837429147047791994937346961233676346690475305544568781581097498675451874138636269245172480458162119536067894159276917510956136337621550518960300433836483570082770418661911387069024733909564368938037672122909695188441979221314324154300793457155142156405751332082696445465616503845648111011494370208390300018424311081174791421157414714904372447114094974615487013634444197569685239250623472214476798082776434019188659455074602720934394174660929454748019544472055055390505005743988116513077967111667958618000978481000998003000501857057270126350761343484421996296649309096675820773344749517473938805889403900631958405903384303805574889749330486918774693214580863769432674184282483068285460978469099738483375903912977960295297618759301441495699690844651425662385833898718163182604911212328129060867900765584111540630075451719878309743599056976707899727048997006746390929676516856299613156975277095770749732220479108559679321940634020045475111600473325694514686968778979074168036363018669679605216349388661051815025824830575151976835779038398044383803410195032277564586209727630999003246969173037887361776170223543893226022785580162340606603756385468092650412236436692601028485552327690904845908838613283700319887080027878490894412809941148458382977070181514669527254228998731486271384441800816093975274278175379138263061858082935097516269092419675913854065883409312298832628890263560212030335146289350741659999544959553551671982533343678589103189454716394020531675433438474095851075851774968009457463714972689250503499530127732432576538441883373061461939332026743422792647499690525467453875368593167024678070550076814468497900596962568789358871416934256504135086300208637071417125683776505568876447480046967196199386461951083324839779125651009742445663005612827784675935383362950893952321985225228834425729052826927406483290777548234858280919762640414755282304151116136768425223443977510013844902765149099532136723027765171919210769081395899845715997086883235737799527207294424888158403855208088125741799906425631993200073814787311490522856769455656446206821609979736943450698305586836285167832174269070669914245284738426151775166528673167863068750788200265616444011502403819274166036135523710170616568063670200522389411375904376223731284436912074227424692333754390762050077269061792597419699738831270496975100139617565331503241708580887983589854893094586772041184259716632009673088461145787768275006277884302625866644340928349406214954361422707858818814703126645113587618614083792216141903089983514777871410180118482550892712886207693310451477193988189086418572268723239226864128049127211765138364765084862543782575829771825393944899673479623081351384388166568278532965463013021697630692942726158086938424502758734924246091223187098920885896600249377216509552262007883772503807730912011029304107672434855890679706357150255669578156465774902178226844908924045933264898767576382085930552851063137439827615454541605326304607476164130163204152903098769591233092647372057569414842478921340861812113949890711538675384691074746217411413597905742909285099098743203366882191390770332302390912654549210569839947159817014687967605687512942404610037815140404091883276858628135332053236290774920395517352492299066153312982937220243262440830486841492175415050481497583607292196205584381306393382047746371739029501956582010977619357050478660858635354523992254859537036126210336754976670467285824455989270245066321075335596678898986130920142334686460968343626635442503213003737387959399442032712016829246273266473958939837775494843298160183415448756587921346571932047881224861449191988092197687033781608888621482461881485338498605011075730478051934934695841078295252596517292114966600089069151042515381507815303865825467439722192758137836840948812571030204841292917327656221408035694348525855616126761804338542181651486480074895908531778953221835251432707621289841385854885659197991875950247564467427062348532514229055879692207748300829176376399503279705861281388791010537589922895132684359878408580326581013313370575928074423923281721594521185463726774133179820402121988724768430767646817670243590890098219715664379343802590390748389599115442279512015716226844222734332250941902558673753896381533019131589824676318499564774779780758700425317545592423109476365769243179836405812555941231646103203291259137760231459011576308571372751866205848529050792125583327568074849923752179282686329440918724569756800545746145025116845054731290696443007525863696932180069573226440039936124487196402166688024173319705597248793159717332821895058579153585727697835074895716099040304751794204334303310197451111159746798890862921834608761586167174108101428889416103286874110829644703839266531204979290943667068010821394455345699351204470720217048518330176414798078145402254585238035405350510797149265387370903949983958359287196845662866741688150956591094642828076983153381245837501217236179088403414609404175767948565694456538899836806352110281573232821449586729643711042820621018281754077953983424806125360748754043976549158244144269539790672027142525806469723001119729171598510936037436303654191723395981567247204276331100390961304771336027068226435393304693239342440883561835389289884836143351069709545606467834132499702295081995374382815693400071609509560222845633270074722027075513092394602402886376270167128278543369500789046736477235713355837249404634518607790571606067598913326317898780160936103225782212016987549052665966507985036509123523156347673481864485111828901090960570406211712011186358208597840655781422560275741868664931942782409388749733970678796066163304684028189076709461854130531470241509926504738692722607800124073044195236368361049755708482476383385141364051136802328796070315746357476338965787809206673961227236187828628888513156098729651461591185692460326393722466654682491323738617503214676725857837573259452172536244896662322408259165802745499611086634906254992633053486989805332251611153478664667137416473263671932040470980541157388421408524521624490466107094264352168974793853123871339725277354946204130802205327673809160511273932540586345922217579590102838201649870661408275135143009404884918300695317803410247801627984053342429736365218312041791515318265435285041489014985769260422913680854299137351146970602049363417900189562280228807319453724753760133643671794955065973160937340515514163110492361828652211869295685032665758421655606442089647201623874751642854767564051103939382996566593189526154184320277329348938927597719103611979449200530818874737421752964102289219213209569050751160001063765573585952360219966603258613680633281014346128217247535387253267207103960230152187820311346844421444479668579706273601789749404844150859510167896221465719050956241753026808321612226913239365023532632530400916784917090697501523700971932641274962081949775683721077108092457394341579830734312946722972551781753561981852381959918550096029284212961383426156409018504403260655815192348692082196340537672784100679912773931978468055993215549266247003519154051642298556620780955645687792483318279225590871114913155668148092848162923693760859071201255547889938384284298221502489945831899092116446399330494633598649417146248266763144255816158205856321898177369558251693198402727816595000062523428783020000791169987274531541528830215882882871176071173241444464191746371257507664733169765223755620293907759447848246210546051668834623796631696916838259231167756482616688044227676297134586085072460145059440411132434389076850829601995970439698710506279661852267365228358727411273971332950795417590143822210619000566803613366466367069671118095561914220954359120770358452431388192696260403676055258652662257338809118128015823683950802086829967517026183842665083948861434181471844453403991488222359355899270252710838641022489789167518999324270101926184622299474457918677357458007536062859194886470405586189103863267882121078994648914699730639001432262729338228928603259619496527001210314754384495100052677372191790724428555736132406333363012674723886536683324297927694945443611465810465041566566325589691232050839163212209492585464299528968421560243414348475889574451658995719182149366162803876080857129603334140976981251695501546236112390251703982007590739383731296026860683518028071177748914929224727634949817406635074816337500256119961238540968093988073416197016414917391231366475296649985461485021210707319574316440151694813530194902172665016248310847753237315537942546797846751801466236628263882393039126245765490880728268748395582290835194566274831289250383895689144401780777948314630676262034335577870846514413843393305733563261160559516641556680608273319050506765853372982359355855644592944264166202457603587294154626037158075480288467169659571112532201262436088934516558529528089722941744317185308172687385312225050093826462844139983462601177783919017619013916779142010795244601542620748442766377325757006964217855196051480314634038650738814990405102846146142840911948246115152240947781644714301414134401869835795691052818932610359624838765192188492001632697077622919065220516967646145973652442537716917725897884894804286945996995508966547468944279904203112293771873705081377059832644365711263874043701378584208075137871510851680624244416347820086729048209411979644654886495662734617201872845737181921676998179226398863674795626224841597245417833826183656565666767395557885765925843669750581763322788155792563451820975541105555148904892168531403550711480620753796003066948233923136369608602860640690905099526644072874890103691691507142159057029438563425308176476816970507384998524940118846141725312622554370968503247621854675442692846566555625803393872193833200337523672396371526176414830095317227169340266222802461236781786140384266552469915679693275695029326627924145236781104738496589733936698258990896770527129982006841938294661574073159644664614204816641866703586049714190927811276760600762999290241097266165623604679020643808953238290309700204680825805294316484269669270612460003915098553031261746822062199808110525831186562707025619193934417573991385999390099915510183458860227917581591765704027381649636013513214156850662271082903263543987187348552342849782176282727516734290692491976908018437922083409184994743935400058788541195490807984697890316120092137168986213705896109632013061080085348445380333932661655387987509861420029471245758432224509531604841246945470112522727783322761671082001715461672874500781043518705704688013233391763882015004039553693054069213014946825660286704641117225753320832019795848312161440878130470183055190900874992633512089208544869781636507303548230196688288195593518930186095925598186538479555171788088028720538851306935711433045526498983876406937532960324809552243523268587561947169087192785918819647085753658559983911606814063852446474676700161826508180716193647857281243835435882528196293359512230851961910064583975471017253497308800799970887563208524937636343865618220621657275420285288263817845805830513168360135483356585827585762212932551590847762188763021568781663663249008642059193054907815510964456910077156550186380667751537735379682718617222137558572761275363063153196430277784351331462771101294589558318268585236653614681794059477772958940416949724073649459287803955968102621173065273480709649947949618937978448233357585129799164072301944794312224375246394918251409342371701449245117205819277845838168450493326100499203549861385903898477540003066901130759082357728065035383795609679723460164006015885351604141300778693351680782689325969963919038374591487176723026388623304178181846170341332148404845837288751755452339594731581005697935357584655778810957954974972531136419136011727444463836810982405090880267769690961266879388700641921925340380678789654050561140047738660793690343608315871062077747696230896059166306441231097542648601468987744280886919808376848062072509017268171675564852396277563431825500323500163530694924915327062826189881980540681509888895312921525529685537366782062893040583227090785553184465377838538601621953467278202823151790016157191533984880833558496223389270671787412890700072698104454778878228393309711683997635328802563494633922933709137199917457109561725397052343744213076978312686850431647841552921629814261918920967382133097722942130506706488067933687375432480533118862786123262371498605204057577230294420225538378881490117607825101948627475140685295520029628095528489822637519376305416669064051991844368217418975676687611952038909387414258450272828845207072622566844392412118234829734959996975240334178525951236444751958443753375367689708095296124934536306352044631169073328332679353562810808183968112835072748140801893797732383002097487773726476062775454677208862777377122415267913040306769938994744110806311299879434223068309927220515584536839609996459565351059703608417398490598251810037947324358731372591286990823528909840477171111648974760724319494873553296130512674783649886541538570607357789081907565190929851326572230506316493709177225232554731974510602704190886271942382459611521861271928082424047323341920754842202669204499963889481995336558265340916541673112224097782402247575356906956894692182054191295023892683631867167556351337642452083454269628534943927337443264523487612533270074515901994897089034051033835815904945272580759861122972100285788530632046844008039784123713782717843822747684459075823371154364056812995685203597463491071681286139677472933186093101585621851529181599728571922491674860945881217333442892285192090338445942121242331684680187037156625185093320679281882782092688592929376596891708556444034268885378769190591293527894005045735238714429599901824898607961452109128584868312093521768398235067122376517504007450758880203796602406947112588142785000373386342999987762473758892098086084572174436778001374484868574376723399363519318919426374893807686984424930182194574599299558996934308579792736898185897433246610794368841631765163606771825095115480548340504540429205787534041248931653872174077305394610858905644488790516023437501688198458639732330377188913138004828169126579092951478573428791360138938663767843428156175219472760408176601236367056383579823181710701664129079921713546394437527801999364319777104648159555885180662810583029861885231143294495631133208943229289614939054360528909588595420769089969219532214884553249004822368033207964765306017767698417894024984472929946529082791433203945845179677757444289309675371806859286576414415660844329505796421403686540366739110527204849060873949832392777783177748609780900920899866262180001614364103952037091520137729762048010577483948073418841560345346731361387519678163362920734812509898772286206780962467606049642290367052880060838006562516773950146768418731551546003898382295152015943784643889671434041295796963385076923374512181142050119726371948466317103366755408058122782982151680340485398343776370254998638743560544766100915207052191410208011879788149541189615712671918930079738565494987296298642546479084408687918064738705558520650424101274927199247134097003369853295188382004390752261514774960945918906811429455583030271630346022905948374093557220233103332879721329261515108549380584019694559587265686383023218193168843013432871840602523761973353793300250858235516907072040695211252115218241108016645680091517670435639025993095492004311573752413930330938263019565006662955231901738188255487673441842372146032459910899533388858309352211483516318264256661081298616858079530722735299002571793097642203568167682861866280871089832699110655543184463184254706580137655852511774250196285333713892258398245530741062143560681408218404507442610839637268974326550718419429786544485397852799775183028968144396794743298724636727085374506089460272051902269435380981180058745066987881881753617852146824483089676261073477294314768693385606479050245288136709895196488042169217906316248020996251826185650605657102688179747427778069145046988047892531378956950550606864910130000142422718187047186997257907863218391439424450366888191878769313117248647201498449059302422609776421539839581698531144560516891229346718042379774298080232091811207422582542825046725768984934548103616688205257524859726219666217682404033260234799714140050635908543288232417182179253969840169744259381771159213845430250860715355020497516032520915425647129620149970060980444128870780632360440824081071316050686745525817969329068048972667624483624201079474970201358960622650053174333983827802696396520555407175362607327587766667125727310796575022225523006849903375524947113893704295804475615376239674759755025181099169369865849527567031602275053665495134743707594864065065566637114460679891599532164785018005116545831931395186916212605237556843750004314585702857592979085501699316091977805281399552498307763124489705767749525826980413636040972382943228292754481051900629601390246558063203497905011311693622416253162043192513946443863791578796565729205825026356262842373524422385262374093103326179503988100414953936256999038967569348789204905403786742162446704618890948503231128596825385200457813362511407398358463506625439609911730406630288740861585567638050400607864214047394677836199794064483347748464732392959087531309528092417985723319346205088186376963349655240548238322776332721287508224833036071215644023214138815089944582215346360964625728431187361973226792642569147499655448846207688104223881067681893673798209738320971216391166003918077397258644680991951733463182309609507117339726433100982174630813382150237766959806214936618097086090929649012684552845625432959872172362688222977266825194367704387947974314830784130931308452514189121586549617197072551286390373521226547788542707580540088678704026238942293011835705952541883725045039215080568660712492179749395692994645134623791264640648896404517308943595044590311222966284901286071794576550080127143466066998713905968680490410685629735733625508115548898646641879505664939001313939114748798554323042495554342801643137493135839316268150984520810725162045503763861488354702366082043491225411245844622252937514421147039217467212460914531739000825418507608322965930087676006173785200500224502519574496379342700560163780386568193240553746375951015406095972169783236555417462953502948055689746408400013035639691217909759127863813481106205465434276015883854525529535761320828650406012152472224594420528434152268002652680244362748967281689932233569760869169513736086212825937486370425792200424071154641299783783412148654175953816730627503881767034078525017324011074690527016776510566258085691826139702898777178967913644574054666456838665687122853885020744247227418547968164662326568980276531780146088678200064507300576587871828550281618989318832797539179196340480802338030367893252831110376067101991239548165389014459590335769461762884463504296888634931409390161454902835371840142148311487992360519379965727814420259862075680649390875079119003672755149673721996678213024954325129979386323642965205045708020312537242309101044322027923995579105485389538361293815622501201535701277031343040869299151553572108749408526147461606994006610469882698896398030805783812637731489410102311313812709602470225792475722115099668470466518115779963541826758710922996608206974091189619899931382244213540431488525230980389782272139411077434601620723571855760692031276723089692793747261613328704424039301695068345928801135933656306267038253032125161468426882558901574913418550933846138073519952038337534682105744779781552713006332693923336644138632192921580380346594200020368873950336105694999244402912628126884166336843306147275280165917260376853083540372402834225700204428026194938068764649728266820280146108289545469158030535420221265494684180533599371613261374457036159343099686560045756796261549410781265466074173718977794434391888990676200955877010940370612531181695115793512660237586089224209589662981476518339956309390779058284150305402507746554758788487183569428406629695404943474603255572142874822351964673983932949583241464220489123510319915965959542557575094521434573750419011723157037874891366592817789140778964583984361919501182862787588861094031101042251904313194212833144892336362510721419171233537342457403967242765316726351499048648329226646675983623927203599323392187578066141840001562308365588475433785316286792925398671844585530155049908720885274400280468392737605722599465019338303769949464249207677519982313851127555319685455927899334342623000074499578592280868515524656383982326407209479778784340627934593921591289947966747654603380646833498706586355347658102985631245033304806211235060417303232418296223034417165784205058743895333483216461207267275933158153454219540420206205437714177416313257556716822627757628926374427093858548322820023937794088985957997228386856356117082571392301102847004403223101158148222651619182216177826082001514794708911126749462040511770788129055808371906184557357977334432481909222767367667010662696742298717417010888756701836272040852130231571910578889546944028573083726767501172545011801971553847598658224115751603460226957592780427939304795968040973935179955457931057750711804035921390731238531613549101040630273103674311608651115696589051651710118475059288161792704720182013481552154946548203667693802070488180002440562691177429537261033272159681995154136023099312413488457801685119866788363846622061767381988209973089041976702954821176880704891101735355527474052472200490671589367708838275869648548524453571275252959015480414751584654180641891443307282764067334862103281992533267096892175417889445950896496280983342388208890146537734323959920962396962330418728499612802398535289935320536874101208620790408267710528893015606315781541539480453693579873947576414696256202662097953967952801369365434312761325268170833140285819902245907466319901851623209359051750703806550719538284527251799508271901894415327229544237350253728048822161027550896694553539576742931297088606959511173002312450114389730273097156988607504164735301363295003039801283348992756773285378619428051299300962700474741919590846994647440881950872952476628739405200335930244522762665371911591801524491314765828852902055616065627564905221702011087672528871143673225807835125404389487170402271574738013103739851207123185014570062274979271273714883948576741508804615506468362900741894316796906444262579502869855962192768090983447738577942979952881998809270584246157184768669600713667250512437636172624409767356215955984094652275358299525701506252442479521972975642818921902497271392427185147837261226047815328542239147674592436603049870606720044468594896133074127467912530284518596500201069554218993162003792720935317921447420057081181539215546125319421931847973910975962172631854883499546100316383917435511938967803688059127901468667648562930300161126699711024888817852842111076167603070500657552168226760154350860731518872692607742773145071419306657709694157748219332666881964992559358944360955535403365683092587400535565329618395648004788808090152262238909727807539551872844815166299926217920262320457469012848664367015857455293811109628432145617996636589678159861171536572980091491222367137034597497076499373346011380700557124707082455140207566272496620726446442549899338251755325297939492593397372127298023850059510198675197935978437581174076796482004574384041549626699686058340592238301736327508755474785728099978337088036284589424605598641645451342538373639987473087625913246227599190625468431907379914410822434298858524423965859409281898992307621367090829024378331865707662895201738913398260683429032042630289017099054337069978292705388917913117600182525943935239624916542321940702084041040187381889658056469362607644004362224925578470700302124964204282371862235179951261164921443442661053075672473755464382077222422928639215281426535022459296347150189285717268178258383898120613458034653849914034612845976629726693892331616367153901250448242179783659897607828271156037620334122217031897979542469307106333195663197797570706026827585633597143443023933990077672511643350524053215554567580673735453377216186809910402562849104254538343326785547258501755058510933163548081555439307268159612865352068173549327357828885695795932397564497754148112171244292152918959852922731739436066727557895389059665101541092174149269165271084080140797123671887613331014235804014173575202613547522098279469878587786664958028834900374404063027107433324411329740185190199298059018322387231209913715039055178874006062719690564142717228168738304808073927147303522260540391265044202690569255322428921558852220210766147215281629747761892486289393051798294099318251450762811381541715116550570263629689759023456646577814059035723511172787491748211825297872519435662148497904980463694173284509070784924348585595998069333832342592210852819290135045797952162041554495461398885338518308389839579322085248895311207130452914078519502447999312824038763713472147509654018601517408424523357952958718704568280360494187186390582620451225573714713470877730591694608341544237126774484927354270715888217910878229595106341414887623340868157146245480904229710591346065389592145786259756149443663760795835004732595850766901051315901412545308147582370860571574352724800194034203975719790753091867183427393125969050245589463057392027575856265659013638235748069028174550306573503776869095921989405631783306963010036556691188991968642099542259384605283127861078759022035181990504313411526962076817262312868488930796525369459646111666736301994828455873695765638461040661844700045070085715211977085459307673505225870811990028700344265151605960198835649339533781966245478094513033499483889794676226404854268805436590736816474416355941162129484222944432629481114461855329587599254096890565190353939329686630910846032861049353138389780160309666543497749522519974486091312298892589637163446645351957815712940493854536487206718955575643964699554124539581209307016213663407317717517105064111694414950666315271388900463631523821799277704515564841322203252936729348127012618441712899394724335885252677178758848085665860145446114606004569283343235744897236026363711408756300176887521417732302409887982477476501567822439172253131158841069641562334201487865987468940225997209771861753430539879768197024767278699197655420628277351245762532753291417325053841546142460973062807335706965464576442837621423758891580798865437585053550446057872818112482901396273682490829720691746537185159484019716545436385113602793263865583657144673026866293078891560106346780000875104462085287647483168493692361121610069330115331398160122587316107102667071246983688468935897321427775277876365047216504401655552869657872162131988134604958575483520920223684636942380786456977855803574392491629026173631136786666631018871533672037577222845899703466002082348390917836712751062243449555175705665074318557604304882150558450714461719596756253627358628264699699473604130898547765464152133265079014056995718613517107556875017979570405840119113240084600344779666397015880652466502847930816290373510562874469760233664530600358926822286110805668114625203786405276263046128793906736269122899331279602084087354476726658031664024448257194911476991786033792794100165182284780679019001399115325114557986606332287519156038705257608697016411154087917861003394920588441566177259606103253762236185762755353446628912707411988586205870363807525918548825594895727407065779429383485631227613068954824098147252300332880012255204792664987466510800611412963035092108403740935587125778149597791214703545028677002672660631626623270963715183886852132449957185238697227372448408942412132169603006302253244594602475489921745361674777714816885107365380216648304114541894214697963728529505005021245190270423741059527921370733146406561024287692871861893401369209496272350027518348453349965674965334051050252681893174348144026929001881748735146862570871058585121498107100526670561610346539660659404210792337928006470975450963818382071395147186112076056508756545416921396596403617764112613773652700697849649486210609938467067849938129073177742408778719523494018534551820859994095444620831919705322228026287197004067589007234688345994743912187353059461868960673819977344097240057435499216372842134186950437590736437633256742241833109852331096851263006371685348819524687105387448165010816546994799314948950348720135469042938996246642234022840612077629018756958562507722751425729726865784655350198043197288778051196755549932047749678983638928284741211771800396520021527144357669138660374655128352868176965171274852119991725743252839397358238792029635156403036812760526012424394088693970955141876429882831796805274871942582169185308931839690567246314223084034720248511160185594005477686344653914453396345806231897708293893358689518686132326674787245868529688028270921173238975328497749390333354235207254309568651159057193324075451049248159322132568384688229130541046493379606319429222175861135618396695978273164130501739175559399593796203878950371884170188670486140228038221754983351255690575713863830179880925505267139380974299215121701870681595769220628635246199905387199315714638261230227097513116840205691573274202388347608278651987807753269181541627780938490753273626844216131722107196196146375256833847997293713636399098522539621471701039379964362119883429081951434970594563136007176827817749212189600789687406042100621724673653139870100704843507845681718651062400934904433771522546055173944151812296122244594715867591222413842711442426806983117420073718048844994964920935750745009107421226498416046059111024371230767920333030203953178862042853100185791701620972504070966222584170612824509688181962090951590306084844913144967917806390806570030226642401148560533622568651025266104125278183344909096692970366322714151276621003984470474392672914502206769486583293198340144606313303685039210404082656793582521316222955646642400899659420987016940950308637350850738684243104210788767467168000990693040805247830011564708196497494436674497293674508739393395170325545465041100895474047743635737765501158555140763839628307866580610934760217998518696074575538211301666273004205788390228366288058189197554909852481441450021326171809069643745816002386441234280668250841337999153776229031312927808314784187464464657541873128048993371225750184384022388469483323857769301261382201034691938687952081141552474042058699269608584965888497617695816902480714203177723334694628198367796960254894593159790677930538602468013623132145693463699922757283215433854493251448913859674430562074396394834611994032782437522316055175047039672635915705448256028892946354417747071715828726569247180720475553202703431614334045072783828904882449718755789319600160432623034298081009294205992002747241698601828008785046676899417844009370716299902279202474792407685355583963885635894187026771010749672476740050383958500776805315238446052993993952134221838568492629074999126727239691197411181447649709008596349758797523938758806081489769471506822581310768851520925754572539357409241698664713790823423083001703280656669425445486787647639974327172774098936241007426600269421103716784730743667471644346007325601815738655138610567524674094721659892738282125066033160823897715840381957325138240335317051577356492753108481243883474635726641925156470585218933632946956418051554815726550482836184011511003303350364438804500223969564485576186625137228852063513535477902127948879233469572054435569826111591873499062889592870195710016282497630788277181034756812178417046888382750530149527561361020150345840201222959239891401206555359795745498289461993767261595236645347272720087081982945518410917015289767593338796257068155554904418148474316280561986214697727767187476474434818663363810921788358535753531266392002087990222046616491271374500020973632119752787680478354685145170245773580221540790927773202487265912700691211594187858745330423607022655777592897961854179368652444731546953846539637500693583507889870915764618834432216389270284525944539226126271045700697657621703116103165224140788530469689911627962365829026378420170750265276047585553622853550643654304409398758140467264782783859523133591573419183628593128952483293525870725215724302490765658594083168977894008753325654017801274688474554198107856195156412139015722025355281603560320770337632589737570245252697454632611102598940892144430483983858988103567719766322212334441037942177838081021243311692393373733754530829830513814637518963720376080231928798538133222365734765168298125016226367475729340298996887620500832462687341687080365045342241293781793518200971498824185187159303271948877296549302496448399906000283152212546978971728227133778779258169325819830426177804245986229680531883069946673378302656454472384829632571884306441377387721290255006045587496909498388182131183989925018568564027454043489398541825939640373595350993363322211574363127323515393870894674913403216542893758693797815374055279082702556059129115280975153337977204025858696756766950888116050394883334264436259268609149652049937329659751056373502356222668181802971710695935739122932082704307048887740937673318481399864985151390557934635813818928635412497382676421156540320441507788130533665247516246247890371418107622923202589322870030100269147644813905770769983789375342382581206166321189080497320247188196488189191058105931856964714160964709953459714287723419685882000951761102828719525549584374874445931918189441768774762698379312120945929969858920884209888738517712899666442933298968807965595692774012265002443943541565810289767693936837031132608357409875303758886177692556376558556000257021578676100006607787530154446006619389547186131581718058283250333951001620454236745479643803747974564361232289043237714896144641024469647709688753683152426602741985709704196331863228679349299705931957420742194651266156817999559982547121665347944919953988542412771157930013344920959157050426247561902346688001356357013249187457112942840898683121352063285437091631185165843522008891741763558760095250414130941365236078741494127528816151243587182989867819692608386672581718831169405377843718049321835657373237277270099465048300312817085552824026773445244096936751277499848438666631916979760769546587406041545626250668657369054265968596617483163263173967215136415414533519231599264990792990713560674294320092419796887134446762591610714136451755716476973509295394211467046217064339859377434183373179147321452693400620946134584347771504279801752901376996044740891612627315643757345761703027210409533276711425560986038004994392903789804871804109363641674918564320190580988903869339077223911447078907774973553439281172153558872799244592160106767486068365413949856686023378969704758113921348608889502156396325785938480503819240857281639574598334907978235783756236307544664057150647320562754983499422781909459623924063727599278624756974123848415359483895296432936664112305702660027405527030534624433537542075659747482989560748881855290067997504462230135922515567937045972729550602641283582633150596389466747587138532909999132756444235056756572707171096954981759820816032068278941616340740498543468724849121410868572374742773838653489207364850280457807657082240931825298856797298188873024784019127036208252073654562429849224485364215615031227815171662406766882861772288898309457950765428227998572777001807704887012115095914591300263574569131878663269154921428915869952826505085789321291063414418578462742219218287327655546792570652555677217824848123820605443737583156114257566929207242088637528147824501818500653393489126847267719019494227237325301099085592056204607879972814465006253877636437983815434932999999810514420582071898271647340782488707247408700891127391969287141852493008787020791060582579370745867522928581546121061695559513264194698523245045787387052549945759588562354013922784079983564799166577444730398938732164028622230336626285770561908201180851300525587290853533438311942009093973144270073248398755231640693791096316280836726518992322405378860654267208211402208573155772844865669768364792467413118670730290071306311067724289239298653511238156469575484319762063446482052985436034408892358051297737733401513499436633913003528272117121280093168392708510391053448649875936014263740234160662283200402370313635601179944451769698987313992733480291078881421501874192051058949415179397492044302465680050704380238195264192523344336371690704940220676777620942267712240423470311162395360495765173658741474176733480938517656288842638262452881853668669697333324432196498674389431930081467319066454741360438115258345951772296095331588471377392170651800933070831291093914554184744909558345557945650978009978234045674387981053672465922090170412741817433273769260538599821119004916053800685569598647370780981874798027727156613410441349766522832550128380171791335303451392379433895905945044651229456147010858119523904691378650043493400729125108553269537753192076796729593957601079624039529743260008976733195825693504937197236093853284512668606590792541457612802330607950840029134745640358720692098478266787480150628895615539415305870840701206067582452694020352920890887722828889988251431189562829633609612800580123164068849916168270914054447395689389531962771282447250881267051067096972312165804616128349474608150836358533016958907312432762772464355387777410490934537622990494030797882137758764277167708224318408436325271774568372531906258544934081167724147423291688382786184680311447277158723726382276746192537374561072602589628510820607162433780119828060070111210055935125490095440583463260709841787239381476436191243238638642978916413072191501832790450449021923669781816975291335689638193935941605444861841714137663860810091214643039961804387421891260740846029040763870412682642468547738919624549476379136657193660359524353108082666007346325238963821323796753574784580677958233059094307192701088834368160466900536666947198279398319287171520263813749864239757402496884198966581371178683916113427849960917894217781448334864705091771062519755447265574183622011198450425859619103068036317293511556280086545491553597712597517967776095509001311237483895063564131231077460625049422473648186276404193034824705963641881968099697321222272540577173280751694221008454721517286795604990456744360059303506008102127218345554090310057700568285919948555284206579818671440696083344562919984874097321547325069240364500398906609283886687673619832423920400090698372972786055083851733171403278141693759815163419451616175845667903449249486509569434161631232211735729433066062648066348057140184968914426074452983050898219693674017355996110115706930724945420208663390265876653230270507515767460071900871788939151968590178607391342509021851469705259671974120189422911352878306891230590137002587246503996710320915827887594844922448452961084742892269611773308863718652226973043158179180136995224437237023211450195596159266860305760153422804917582282635748083869993714215035961772676090346444128388040009037298652843980319308535021504240197070873143660720732603255235746597288583144902649976914362379688997187066831319044936921589247474739274133478212301255048693648632655967050970947330438761222006775369383895379723174561862810523187787902953926164384592597990969928209592183969773181477186239347709817599452479269808683413154704077416514735289277429661573960972372526006227378739971954671927359452241930328060993921080307932130767289541860574716594746292333232844040631269068343087829636169138969724057680611425919192156160145721680247332517446949255094638963268790638965424762224029397508889138223779920484001200235642881774149488807924925445516054142079175147664306913419652792885275353724042015851269648193994961790397803420329876015588225288275638980569635363835955858351332028256525739693961044197270216002567883318129444952956532141005979854197502898174562426072843476604312069754711761099536750569860697538048838628494225084362451702929310292924692027471911049861840982992470205123051542336536009239046113234560114882275234414778241136604103932477007044423052377117186815362311374340492152747417992817749859696145527203512215825251652959159629991428496099368285489472718650407846928611297746760985897476929417453998320231224811356850018456923527946911328492391858228816385264162128481849068141203256884609296045106661270755803051461156734780029230657652553325859911197549134895528282707901922341471657537195212434504522381843251321625480589751036226252602671866146857338605159408453784464506141774579837487433868701154582448856584283661452001275514115564717904509375302218433112643912076697307232127473385426705887564224452854608033107446077563195591469904860949786543750639596090819772924486942335665109006870596930858348504281207014386627727057921322061688491299770568134906918128522520060723243253557534221540496216559938814714586265988228510666543199926354242882104604941025752658871455809674613333768696277358485191968880878189421929318672195600822913156263813019950402155728904657437878499997139170229494661596170537851536799997137990392977534426394537600921898873528694242529768461098988408809117126895421089032402735568861891521255434923807571383866154409007463744111671259963770007294106664881302969937903460244680159698986485954530246386772690760689385078473397670552970981853310205140849612733405682954501433534029683256430927302478910640275845450717232538873428472150106028719254227129467439901500414210324534871193797761690062900458080525195830581704057382822223202149507717106393642185504637466223679458014611905084610498765410734624239921531115721403651274194705312537355091185052474859627231931318610635121541221376743553219006477968346114768662635696949887290234020307555334435239718493013101552771135949380272048852197449143866136671908316759738530962051222063837501098890681032429484862549553051208356757864665175443266517783940030191190422979602145193951036565402962188725143047781577991917358486595479725709201440132038154525959770093200866326167689981485190152156756762216789232272408133078345184542087946692714247999506175015665951902401729187912544053936757337314698992106523376855991915728364328553504432120727986238063870434422558473771542299173430084751643107698339836119702806592178281786938661294647466295135692922372382063783777072684396120492038357064749493444739477168585876582644782273566079717853724977322028765469335539285600336005785400581011297563949577404687426239205827929175516799849203179606300257001472396470141369917587208960988450382979763544445237596995537602527586668411383005407609477247727374004364931503001294146934285474081531396289720151544411877176346133914616381478463352272050185124075125424640335466013356121816192604960039276371670932430904559110247225756268885843258139966281096318377288096321852602979654219986559529483026343445168856098792987146834751697844999184163042062232177629732380636366501407719074925850819630352027313407044598667131456619962817673475233830904799805060973240130237133226879122897547606255147187048012038250796244149755010973087983675299826459876187448559261245004021072552750863444906055281773363764188893655267093217413040698770767572155469307335556825374660944300391937942945756583900285984254821104073414403971379437259466288275829002447251476155840789513028238348977921247572485597859847013163932550221262042447263713768428390996708914100313970244365909194558905086456692171737460944380330957143548159440111735308929844743220615465925248713068698065591898691816048046828235916039590274443980843554880353084678791863273194552813392397721535833018058351034398308482456663731546251201556017692037696814237829460182098250621372155531453942225326693803614248248782848900830976561487074633880944217513166955295858765463852562013246885721695958468067101086981344098023787736326007492144835593839331879679599694870253630137539639588379073616825216537028839541820288729554002229640755460556830841562559209715434774022414285818580639064364865726528031913112770055861395297279074712397454327075120164868574366484443821538191241390655023750752801023003581834910401035808090244587796480873332846183924379819948033924801537468951238752265422266548772144961839735269400336574408451735812652893244801450688030260973358204174083661530665459434644352976090024434181782518090177342169187225039468581956157986371986321202692534913853563540495143123424273022805348564594133450889562175182115156211980359290103603938629313541244819013889935721417869895290131092963199155258238385904808375826454756179709070776059558289831875339163558242131957130033543011942935225136816777352982641203785236314392311755064219530254289543714028214230219651754677887696535341196934960305173653037628846753679216263332942974989242541929461352991737390975118496945862997552171116519854311145276553538254246356197974502534700201334971661721866141744947782647200636166009455901804483489516579323187831721696256400337473700765916298661813234924054030574233610922704059593464884552295779609253755326122909465979260670368755766907168827685759457481812229358240282697873442723097997527916690315615918250111648640752255671818201355104485979928288824398780642412690535095335508920361258379410001087776836791564857711110540523895355773254377451966162895077050624599692697288452720436905902753447511253089899448017617636862993716115471728183188770295195107517765288212357561584588863349513016910066436580200133384807906609340620790652746760476274755427619298789460730885846510190892154074117377888845843266825105781056926863458677499211053555207589215053272618947471730454653734569292224808826967608725267395100689297359070522595816782094570463441286156941015416543965783717870607549702780729093802510033702033149293317805948558567575067389187977874885237669208296591334893908273573848066000724139264789427715273944443629118259066383319326199561706080301169966525598248037891959663436051868079921746163904940712693617208504881861438323288876760937873888894998992720437572107392672062467145703598203487559554569641112149101753565930097743218169193662276126588932911703131263014295881143140188829567174506959240979313084016213273214437708766112043076101868535953091299225423006774665857492053345205042530697497541989500416924226487562006337490781108009859109273565274853871178472889163440649227725522825944424721194518733197928326798616983956879647309024777828765555930205240462429658022565836545001967325585642477107924399930454995018556887739083222876328599463771908298527636523298411256219685833134726736697445261654363419564714891145489770470743726410503901355747157301605124537604630918554643045453917465144966308237049979727549662586209010931235849013629001162860817877273576960740483578417377820908120353562579937979036932774050222260190922180207451175149096751192142948367592389748943827926988120631841133417123554467074450254292601193093367328044188297033133361781799255903132344188172909372218050468468715830053465629366980273621862116038430137531838131210676719379128512196411760599647117723750649870644840164660609425566647318449800888729064823477432972739070024594350228377068446464375417547896437272350833817254312680582139039480707401535954055530987219064006497624448287249272547674234562495085322203568409543674800327085502411354369962295495812590319450912407081198683387897078167408425934399912609372479101572902584278504683257069803295539477636390467145091439900454696195722030155626006204389396733830795903515729389554316088278255825316337305412770909795779942348194951644222475348366304800671006927562589183634422383368793197554507560161509889586734410943234489451338186815555291224642529883091972499160564880621227290379772611376548783387008151972650253426677512997102177709954930618616914158581162852120447515051889736569141200337056886940409212518295172876670289970389827145569831262042965128216152428365847167819141262119078869257757131923742372782887921227477034889496443132352296913420432263629231385554868284041723666056219021587705230915904205343240193385774151355546049470682180887247898821425393682602909134321003249470638452477385906022596333679950871337824389031905717901482514369293004369033140880961267445157535626487051402147783704915631825815403514179552423690784412909791205090182105528583892472755869375114130646884509448635880395950202374719596492297629543474734476271637176671716532697073984768628743568886207171976854748201353733492616557086177304003927691643262957194391742231965794334455162086308552293565391715026891733333706773147532014465207696086381108834235506729847197659733828018873534450422899166279364247373409884393922479208639138057606925162138573520742364439927855779606113104151552618374378083589865519067306876763008290255551603736020544179287675101415134986754811980077689569896312219313491431358538527260635567760596900213898176767682444834791450644866942246475524524547749516862315720499879695809609980463258965223835647764746809371177214340906096499913266858506067500418988015338938653525994466642407081226765875554940002975068073894158661769343998064856795394465957552839349036183721172990322665605847324712392043091822056887083659642358367804947383780688626439229940509956452326032275561649587182474578591693202172010858247337824352376679820489643637036476046321100799515032976051901309599936938512481813171698484375681437374740264564755601718483333796358167549164374448443620168241783648159507463915336267573799605555182628803300743473481628069834067385673759760925782612647538163503661602331142375179535288596322574099504722853915495092599608943718602943809366618068051615569741024818640689755488362892281397228440108078194852803865796276093555133198466551977062054555217379185186700641556889686354789905701570794614153556850245302640293172252382673934400402701864302618639602578963592412250812878046671164819511953465611893291101311582786061474609135476359313278034468811511395884899981111210875512238130183866705208633697453445190127648016375086592633548658728469073445242213712264873579765621523855340928713384569924954705282396670508626717194320254769656130013677638728444844397262600984870586488897856501964028082841034380534625787675621896000184621205198466715406701496790014898458446985262780097996498313071022495202960361397678004006283115643020055775816257241652580263014050841223333972051519758385182305991055663920721820357587453324920687223067274486772303069255218571362268101677512849467907901009241992697284532339923082046590286054212697956040486796860842531697331525996522993446292838420057078448580271680975824121785798037699117563492338716813924161882625595064918055016855106068801434522620272094448829169083970475905057522981811261996452819884981489339418538970217156041734139558058483382572213987108013362532373385470419924024328777563205451390397950866891185735171063042177166419867468872609320231267608622601756047239068626474384128026361407530807292073828316536725650001044689395757651725146417550823218871106406867337459249399451493179995932642224303100421130429672724873168754757970584398962508652837455693566041749306730792259192945362060024734536880239632965548930881906567413941576610613211995879337010453836462631374663649915527959383702077841737847526274102016809004436652083988294430698256219253692923213566305949338867661558420032215182182447827504024637129906248814528245222865804856984751509785748429656419022218808787524828178603043489003421431415908514995024898494228686101266864576076913418601764256745947022102805662845489600314742389348665705878471440656990228714048714613325576950631865452292888088785607919613437111748220316173652148746119265712806900000209719187180329682668375186393889773599682823860733430362998870949003120238365219582162980478285445438705766080249509188644523050022373011490367094537282220234525289169928419389253277209532626874428581988725760919068366087184040731071088243496479727916452137086914718962237974883744745311095461932908813588862440308892211064241375098875962385449101448676483498823318271144196036258227951969946194693846519401573903822131083900794046963848969288121022341107709751017257769332404560849516996398733962801284798025090174023062064653503538468681428418746304399422349212074637224382943644215513013574024715576778290575775651014973020837329058234385496632013486941886870541995425881266614862582505008170776638158881637093835721382128013873282720837113197731476934485122850899642948157923078052872355580551322830734289551945303639721687155846360704603769703741680053441438910615871858315820426003666544490022921236528578307900911839070072984593286013297718722941413686262830431658602651397333117968367987021776101787762044702889118957318366626536137872151850042817688715607711132922620878538728814599025720745240218069544804849624051901346954278994956721774033694265853880788391688206562841701444729157255383500074673565695146903095842573509634689729555884381021932731000012095302124346805958846396348507781575539967479356730890351714889110752748807419311361250672415632532428130744433943199005976321129690508854252575293397689940286881688724060024134928595666628361428741780478832359000890458464892185684118321365815069812809413971801420053466123438403193057974930171476248513247855117889935834103619854581480623056179251872540164953355734720503160565330321247021616846754305685962907579384233976343048241919876278309539271013533883419110724704923695186344741480361927298931159036215945361012634631251538364919174782574837044321837623497374131825756399472004448935880066628107940661021884211053551590588090152541415293961968940441136442395115638896983265296725897966096011408921172973723718455665402828822974778065284455979289686809073172237046374070881083484936068495871391497257202145731650882690332238477536820642639236573393148155498581469156708687588022456719031657617905916870584916682079818869105607299114622137541098396255663497242129558856168972599298520475849013006772290941876833559437316679958154258470579680435711192816105065217953862730955409245281536782417667317784132204831817305043364104715033734063294767349628296962088008581425449998584094746607117986047231141501409622167243436551392015904951612182104719859450997485561846653426945801059221498399871638217572941206627855705123875707477193570975507139998015817288012013356628159066523698198164735068541488133972311655524093440468168210128803604783349718856571489817687577588947332577993461173565383826983551434806233496497976556515289483688890743964094351428774283841310000558811468994618106238532871207660877873935309904874954490523028182304806439450235725109101693310160334751767969433418440520622042858231885013908562583653368080573316559612010324154766444699795709887809810562023085650161935866273624373210626142179705396051470863108648025074457299122642383310078675583468931715709272911921632200311524077210761195334083842030700100814560300374719983223805580865498591301255468299968412554567055616904245151353378436344176284210152323802683805097211367703873209072860297793629891998049383085745639631289503633435155104414848013124292441139621574865644998046004165033826735384505747149962390043363984505011968712832630422249997338925070408491967774234441405444729044809747110961236389532997625332481968671078604623345046590264788535294755194612132565214272613251302410172823534789197382578673751854195845895302176700123359216542291511951729153369636057197704428166159453514947577094449313182675855401649660709924191258320893188188268501484606254786172049421924629156096470111399611927698069621645727640207895651379688480628963495201071877651321355941115164500700835665276758138692583313188651652834720493376080257218274914738905456063725758725991725851889684538281698003058263318635051838489010797905303713102473586235260741020528008100839007928596457959147755225340189550478137149093930850593054921114607729291978873280196942232195782973680419136766137986637361577879961910809839743711304090980422667115180294392549048357764421686799466118840233791887047849076396291630157526142927953941654136120681316083917122504518893263889442947698135754622750446480391993831013373628209007675059658343621928588710359166665434911198439057003500248729179475937997164219636011239997522019043659807475380614170588534756378477086338021806022552776101113758021743429928463889696658188698899510683591128945476199138101402050838200348837155594626260215866562431447675432379991279857315510623905103219717846569720325945259869963270327126596384444710813061366917694833608645323273889587349840785722849320411298927241765502859938188055581742592798732066217853903770022647959262845755159952045955459626748217692250463924711073126249974201443964044207551604892622680171389394900436629036638796790412399600108818513157894036841470855858529987550003452838176280338772643267954232101850587151801458333697443228261697456999804614176096538467363557374002294161110911042161340580106521629808784614645441629046938308430393106337669113008634693996878341739765390062358332892281824166906477360775194824319502405678342412401374593907887112218187407570622888552065458366243203665770732556542779194389266420089435552942657853938391623927643719725457876159607342769920795372384095147296971565016932117518056677384307282439135883106395118082437204942550428260772959219366562121041461142116089850958269069538782294421411611168129685669478618599301252204840264120954862563071945008353743328335803968404417603398758342826327737008557511615976652039161485409990405814903828466928919384031425447939287973000822602326308648320172673919068271752981408282890946923686221818626728283978711604552508024368595570069388752075212221867701295050073152602499410793687949708532342931521880209197694489736979532661424960764342688252162654027073207046480139379764600571375665459593432578820729803123506065988489828241856971894740690399258681395403584918871228117904533998259049394533185540709919563942875535648844869361037675656232291427170484334688964684723046330880982044581655220229359681522507958238853876111494527106992756207114378948043467505147330833696375813573405197315476799635295851891575902268519096397678012992616954319674975899589508823745922113818701511631191206490282989135099942622743054438005600523889094606690588730388296885130480001433207368351853326036663737194942543227384293282180025243216405988128666430663287265585416011095200490780173251866266190916693312826570942415286146691467913520125223785023188234707805520153373800283936438758199272328664939551160797927035983692424388068695287057198895800446509328560440450798712438325892644719417974840763839896520915660667616136376105550296877161868601749873287719349564684054558216945201987740477853171158155224772120364548068268919407003835525674014539672848302184602050292647069752058501222249743198929002661777024552700978220722546335668623630937009722932867976792946426940192288873412285517908144216846283596827483527757641239497685287000732366160020155809980475738014100414015514663667268745543364436633689085149607997749318471808852573311579263177589104740850283838940326732236079894031385898198290279800794120723120860262234681586921108750526976503348358523447445342167418918907820068934008324843296207430212814700434688308257669194483394919016055955029612222267765547679135939518912377807502914951018986014517359832488243132175320607414077229884661558029859129321627496898722490115201668865464688372632979624814821376633677164163592404541641566157012989430217720890404728135429396698466933175222378200136566532588049554951890568754961961516623720564883013440812305530661691552848186281312584299749252345626942426164055969034864958172990271352963198427434176687754700942382977673300532727699635552956384746302988370272982388419388420741255644414256739298297732446952317770146971464633002798266354477267713267940873456818147256892081800756274412379173818684023017799013096927454830064377047371746823384151621134050689073398595482086505097228937104863813298556293188550752746490578317056899710744519879686179164893549066386375353719619071778265477838231461974573124421195450632225946544665074565807996775026797603037555957960754823083271167350910856612371829049645469222154050078278675868978057216703097395270959721713526947761717495250953047794479806608370456263032808037714447979056920720807773833926337423363131879431421826324279557805185407850212016350914661216859256615663746257717071683393693553253860922570511573194997008839738189993248570963019127960548410139596695075194882452368203084049893364386323892997252792902973275552624997097549159823943142132211783383952635056493024151895467650171057031447201529833995566619925487279343165880002385580986547968920910348349570800268666625816220742711935382884788758066577001590257449151048086419978579237702361790175571891648964389914495756057637318397305270053215683680710427463750398040193300741620514060760092340980919121553768106968083769077474507070014224042711305185102561608509959248673041790287283515823381533673908974128682741972184276666982903824384192704028180512767830707461040498835657936299485324351832627205082144171922787067915362636926861122958779471014459881651035823064930717852190980954110356834811084335657018046101915489287941506057116461384806694545463654614400482437730941544778745614266966872277061406833705603350553149502135751956018097389771847787458586673445270323834039577337866483676715778580866698545286853615761077347735352886150924555020040892042926347539905457161635667481125224184193025781381907155548350580581751876003693055272935697343293560041121097267768925532698613938446001628533002896538015759144046590154981158228757242361421910849739166426798321554545197719469479252923392478812652989886870675535761857554381174918816476650346204618342947932515511142336613071992694476008468922839393297653360400900267724680956733073233186612959936028299911709466074366490698243733593046444909031105393221821502467089852901040884446138663009670335841629530125533869891879237670739232086743704658078324460562814763367524886738482753379062709580353611896310967610278642572337334051522509988494872548869404978644485918934673630572171059152030273135948100696978306403270303564034654368673013339770047005370285480543819887689934567091286079011818336864869944106574391576335778087973845356979434041302960253041633610304767618291572694165777175852265389191604399816190766862811709905894839455886743124021147090419621364602002568053962135856320845528129128946184574866527562715141455201420713519379160232613161183736163677687493308840593266858441201717167566045706120825889511523884918190009694163136513535578102306750101623065656257375308240559182113049860851959548993087687636476648315856438462894069097330457422849527485571009313298487926999352662561751394596990675067759412957274914585255456906233881985647252692374604717477018431234222911144490168049087938698256545500738924089662459131048290278675846039418755991807406189172892172767846072031409965864890986153230603441388609352510323344777903256003814336204226042031386772182790847906945738156295857465688983256964695152971102091798811859217441368179975374095316393370565272787403106794385796911519517702616663003861483381389492839460814347512243931624502574302526549511953468308978677463044626469175465464367444347407809147194757697863939267675275025014410677985017571849320365890123952335517106650259770174355158892589708398643183276539736040084402493478515872286665175915728956404228683961342272646817343639689776565841415314702441661196057559361202466351215066668806642476106384702055764583445627336362932167019486474822859909030515932645333730716973641457416892578559088756667426446787629445468762668774675012979680998716117177282331707009947501333429810865442396137351539040881396997625231700639652384717201348429794907149892671613752768446496174981552251271477107210918468675318165366508198939666403976381159572096423852948618288951944624410165183943450590728796314384481111944469439971137271372217292444549626873699052143355292989435684115055721721507353184034415314380300683396249238825815831357380457501826905644248332403773806133759152605616407698465373043198116880215102565068948921822371761387859416038190728600501199961059976006848399141707775949788509760715946495651926372581187664077535043253314625789136480404457172333869079344630560964685553802917769674544832607225606399023233777336326471703242710964821683815771581317110055266252893720277891378328298540978743280231304946940526620864461839896353127739374137701603975607993979885433890486633420183683027329148787275907738404638145330957056800502967347455107595005237792881316660207499697990672280464452324871567552435807991466429808897465768525148577996493204993314709240420860395899365958436207412135878617210741679003936475856553870121898447796664181568261109454104725515318938729216361376444401872683992858892263935492788281508055213715012381897748129880329153473591991459796111530928939067489622992580511803028462996812082189693300464811897254609142243602105012269003622794026864796333847978091128901655325693922297909907831338828571238747613146554718931402317098831997500906194130975408054748929341207271335100541082939701845271376027679269244355650862131957822362758704806523541743105211986903124422386111624372367246577921640769892450674502015712711332331191091260587532698457935855553195720232797644833020746348165661180199826527696793756959800374704241940918800983340120847387888966327989232451432938934865485897881455284910684222809638369713138049663659554625718369107316626625812163147157886120479014857055866423857721247143100517413040659294513570796839010797940625007141991770713405901012175404806134508121689074838199464210425195339329213986679939409538945045404557921191353947312916747362668003399255132342348026896599958924253623686939145428750144401451950230528951721680489086597755135379613849479308340570799983450497807696573238759664258285780291312329559757069006026126645437308110845711781572124248305025609946820809020415342354743760829760041262067927901612314228452971316773099102168375297954669350180008079430692844365805978307556650016769967010097823325095302481833742351058684283405463279965764304610395169353944163134819799307712906409004332282809284029143923567698489279922438241210708581766473679263660192840419360649016923532889476884608394727532518837020882900221523922287187757586345684490688813168895067553991309923978502677094242874613153481070917534843396984133475655176717662877795855140981155520104967266222626053692787117103080744768607419334716520710247776554677248050533810500571794483186057009958393113514059840353095915872842452568052570104706599527585867255853125221264355819314436942187709324567714149260243779608298165637537093379863079722220665166026476026977958285642292035683362296635507593174664604494432700311063234081430567579536545775478641217613410945841238516571247582600704043847113492537072064958184037942736651063288328918366669606013935508010639254791942795170711421552531755481863477833754001489484679253185091203291267629026383320116502406898881931588482736901109799282538378018716548356373288164754697847368979925956252311718353972966672377125228930859866009260353725769228406106678289353077528075455702557634692571248306967679732524924401237543818574038518703911712208732904556673647480981988800541647891743020095165838632238605253634228982597068334743022192443685756289640368356409582374925922209736543671944845170571394976204432871852907326952959917356553566954087350542017748264625432037503891327008119686399906709881735492149863248365826262362299876919289680408818513550808776556777626931870460284969619665529792538160782540934824235535042023976998045149033027062262186432029082356303836276398472373623069372787413205547629540661535955791211174981942404168723646113283959051644116392500321471732402490307814350501394428574533509685051398330097674892428419910625113127506731429058876822137266911534827988141933304308531103342937763929902724587688770258239061312288619219508127115085379600492558118570271269916560824134693792890565605864834876632429458410941478471174365030101384796104748784555783325277900687936118024809798195121086973587403312560999966904043295040446242835816551520700074940931738256700165690980329262414850350271237571001247860969899861341830791789045470157881548237606671101025661405323600823528313036455226293080212676716995774568699703869368463798362540467744921842820964391645452380378029623148335128839570858301623179609785158147601699721369745289367411895089749547265463498033662372768110463347597785502082355197005162783997587699066302517688537349738401195767920142043776754294167904286016429413071630088912473302682433474950897304888817667398282850023943638998207231546749298481027394919095615676676912682577126760979987924882674757430494692526697462729128453734226815453625360571997562723316108785744135257843739179391641906026818666518905222664466175554427265220085173855142128096655973417708960644632942197771841450076420611087945927383895128551675745003796848282642509131843184440506814647011124941477305684944210617374747474342721735512238715978290676977792887352847632951634832890309866732059246414898982529226902138011674293867355120218896066844241018066807278677489441995685842153412675927779455409909482822333306547552958135979639026411876067163716698626508296556379927207358631087966511743020174434683751460052401347702605547576505753959442837166673961888753342117133354557682943854097990438364843734213738807085820683771668517232162762887971319552819751921530942097620172877242424935723467123196036939033183582114697546366712271590401680532051043798632106354254262925945456449755095519365975640408909878666849551781988146386734650902365329110500840679425840480801055790411189431134132090972074552836471098808488153525774917091667906968220809881332250059734401488676033350047584265394639494073798266439030566615038367188490797570957627953928041640158179321167245520229048730898858122212293834958830411854399016423375266298415694525842522505071432179461413379746770696544242411577179888713927687328292197794519232067391737386624061416077419030184911322857983712811075269608378610360190983808378657869752505603013925720142803522619884146007512806712312366212335721889265639479227173597531815431227411665815419155249529288346493528386737514290984432169082969607203433740589913148688440834052042154405197869742442810224074546902675689449655003116772253983356265185490821376743659097930559830155089440931950663659809535554077827031520668085036270376730535655339021033611390599155100539037286764600848949387072779157312632499546880010256839781901986969236856272543970607664774737262575155845988745153829709268286546153683238464900456741348915993085832200709906828673018994092350153283759476633400200564244029951996469598368717587754431663482460134846714364455206473605294563214370223239410578337064438031428829443973538639907849519218041192331169699147942125759387729407371220241080642582390509243152708019672159313554236755620677723442593711154823637030037759804175580362517678465567995092477578050436876907024523582715708889393840611015557236234390147967694380763262901313352802737730563577938721155794467304635170980279491514736175998201221318101701894332120750763577470457580831905792950633826571119834840135878310289314981172237440412065203552141024814334556422590576479710497446764857324766979345289672473241108967381072866873524394688133945279402016918622224858515414403230746569929118473773644286850082433941708332272808644338078952188166313865374628714872108873359121142239328167802774053186219202580469849910672361204003769961076918386572328619125815903215133755245721117228570548092161018888003039716043301102890840188776615190192274462191506153585612477211277281606343771811777815449993841627826851344489375243644284177506617025228352617367610180949139363930926179355404729409703334642913924253071551129762380009433882203122820241939203277003170768175267332184541157270165199131927983565572434348573604928940737207750299648755259326535626124654654931817424124245741137613095915798458138698787331315022231310121315367593489633215866188167252611874402187037625784484717130991942560815133386309901215610811355547417967839564499683653230214375777455272400147209756693231766200429615631534501376028618543781953323711170233329885454764358436868537777393297783420874739867431519979904560008748385908225808781121739717993930133793108334871543931365164439177293039839875931405553178396272262118244507710257082218122394881278979056929225896403482507617492093720311827044891932849173606859251002651855235239874433831126589055041921862487498036609296381405708358160987775923464233294909273293181554291395676690036690327344180027760742294469743829440104530559520534088658610657967211449695846357497648494825432859312658857632760612429676378557889805139379420784182953228304688957256043078747062029331975116013870980049930231888535105110830755782850302914401620902310849806713083858839707551549711805632003678466456821230109840673851827585421252808700160843816196093640293817937073930689438261298088689342047347389234696995434944668167121158983015744952326434785797817123944473151111476201622940750073019342706656490474742184191008021713058049235877788555163734713980592872221755463689157367333310342564202033138996985000173413145028792226438517860455742370395283539906724780255454684667213180509803188135898057955953643106227985830584496444217251827431159186133559143592495749046799177582385874751832711545638637772436181755368972145705970294131439915757533026843598297641086823062777858221697747968597497560258049494674276608772674092621902664100306045068554836982422222993549323076205682342589347783624387689397716622874293332344409105615419337212556084690103029882420928404162516035575072655172151442236459623432583725594274646812157801096588084961815104144666966383495157123063075591317671582722388425911710803231786706107922528755765543935350295770297138069444338109064996199774793005407470557378008610091956419461704881220447509527088445654530739919570674400971000258818521326366766334903950282345902238308726212951850862169030558578631165127912529800291425805400520711913114026230767571596549929052827408357652460290310946089529647992683042972940987855120257570902958942483215912050529943859460297267777102421845235863665046235984604876426590305781984643762253010480818961215542678635160143743915986259716143209419505587432412224442488470744669411377402916503648637181400178660710244500147775147805845179782029456186828209431498009170656329949100839900963593392710842256007398816190773648192088671776258416771845097583042009980209670984678157345297946745795064533417672062990143140857774423787914189914067391669278963986775954140296083308396799707070446792491290001103946296337449994557912516736459785384708448736338787558524921336507280131894145028847653185597149763323785865988208716334519827082236919759751976564533960115644429324488761550500604321078160820144208275851847997579510564898079202408177239309059401269777021669995614656984770770251276416277410813127561736708468591169369935024256786252232360774369400052681890987674378479973025786854675449286330180187092556136422854488115743974320729182098472261340056850603028079032865690072107399191901769492643112698739287347005741071529557466417351899648113204272518433836905319966604539544559651703853661788548531153600182511804828030576153938358030697206221917538272340993841132048482772210363975808194254166832009667915618901695891950116437272270527126532471650174049019565339784277615153493223506759174967432523423485913747368170586177551619191743400519486560423954208009474271257380131101785269015431835403225986345829179272334134561975383931003750378036126506300459381090691460805993569305247574814493239975375373488892820000329170374942030576222662988101192575148512985217081194300129038954176018301296770883309832601259681710465508510918016539160071930329438080698804332365323046368492209715502276793482210689687544518367859382077859411575484254249266645345031105163840129520135398397066676641456984570202630221807781734338536167851920929469888105796433463052524700747005142462198531577572697272007828616789651355691450997846820446588502883800495292535585271223653324349840172028234568335622671710318708455724298099594982110341049919549194393515810992410897078672086384584387194053466168632108327102585652254440100245234571786702757408008003882283860128261183368213906654775894543089917978693455641399162879769793273388106068193528075169522010527411345855752816651444716680177002906079861811628155115760005289087963244661678206315530470691677808367443910693804343607179919482020685767278956966406721563729816604225738833435218452917669205432896812263669442931561038276093299007305518867805644736509579177985321011868027356150903734038632288157305226190252141460855019682092141808920100626064093651868676560395763716912853564338380443836718062812605140686558573639532329750594273022514948805116283306651642343552804983113397518391516766608244363179864817480877229749098449722786026251964114074417105251744308110022029945347678282155003949478137783118358046366740891960255441878515080941885453334416342077515794592625113801071001646953113231981958719261459616411991446077629503023932876395376469790904728208102333840829100484035967252555144651950802554841330128434399634361981002580532340293930037902289905984807726871020372861292616219727788621308090880921592059981498549177644274604659362759744231688452149454987503633187249322135932634158228119199532755955529041004788956147732994999303529931130788480250959021597933834484502666486363493298452983488514348417131145521765615117040086295112453882673662552066957082662458786547062013526017899463455761318474882203795627983271870044488183829332768527880670295723055915282100103821471786174365489803563663811968618095348349928406027802099179992431245040727269591033182516406978318618099762196269740011729637120066208069196709118182905507951823754412546913165234301332472654526793125550522197156290276968665733114955887473626848640153270131018487102817629080280924268571432070642687756671869317808488857053948797535333895096249088576919462986475317283396938833080267628944488711910869518919937587317057612830008195177450541515363686301302813754328171681593049961545287134110611334605570367094358161785707883027766059830474609924218429190233654689266735862514562379325469666332579644033409546294936000622440058742641982892806473515885700131780854963241288483766213616926217559096264200723808677896956944220189779481391844946807734949587359065510663006921728733126164516833081255049743261830883710097030986839692126902363158594761788315681920233034960358982731644497376619594404890403167910243129798638663967382964122403815165840230234524793844320879197954905080957202056446997283106759305011932140896826101187369678547806378577402321608330527499338583825780912368200693855192631505393170152693775384947657415435871296980509451612812979889110612349702118846307167922994126066707594832424238055592590794089520575330076554143663541633714286481149903054852956018453700346771664748559184827959394053022120473766377213156082695732353693188859540691147444455409456744186298772548121734853187463223882357781416822885831290623847669595588176284820486373483388599209959676625248798583207332051493807526790457415746075030293796389243114240847714174864356614631587426490047226035018708225691886344436937253367724540172608732064751060841036526738639879716381696434870724289418881076906688568105057685433837256767678055527603085528964729499823959568371460174715152684283289280203606174495371276448771444118873025108614353819105876256579926771979637797265815706838684551785968373982428382070075627583159800304483867847538374443781653200810814324732544500289125248493522767476284600509866165837537528450719541311933386072687910510265262616919632268634381878760665409403250306747358698238067604224246871035246417998205315153995593050584096495026346090958711693975626117747850018981492902157390050163458589431895460369641003372872315332462572265608534759371462777172762245851800026216719125169019420796040014110983446324444334506168082942614690197168031284028989659110039150143979331179874961742008355720608009810059922230444686711483872116377270061783087245702348669152938323981810003148886517363722037063893870872443448011409050457571120666425995719178692456838836997081885428001689220344360237179040401885864951389317743356956270990232939743344875666576833412951952599868348879971729335563128088694604671945757941368202939432436317509604337003840421029606180640964766039435799033954527838667438265659167207414444528802481292155375831135205616426315147711592319300448430796656494960858947345152380114654572205840358838165901655434458111118764348360721121759341914541506250402948816844865128953261567023586843014431706895847667104956484777610206823037809944275357624888497051661820406022429598170476644088043513732448798332427212767213101826730460043045845012882980827048668853737601869999213402377893871649768055474879378344731190789374902688778186595857621556355325215238433215931565261301132630764545572934054461716487980778761411279440911238510688289061847902958193803306351854004822444226545801874254342464027004718257225929503495635176562276617911320614854178050039482659625092296105786530170056123655430402008474655760809462191212768583639125033416400815210720977765521085790753713444823188258838621107326325555345295102653357127285228014684845092742417372178438271941156019979794554906528642146976493319599181367380311035648283744282637444500161193524051935885772774047048190191407664716476299985043756446643216659445641692158638911428683650798445668970811299617736449403178537812329936249302958068525318329371127365997256287836587503274762747024296283026141770689111736847529367470401360067284678776440582415433194044840849567846624277627551520820592645599138602878796411849034157245737502094330328531206001512413977179720038865926302098127157240858806981645292647023966819607229393201327550307788462141422265576283133508184074426909332831992120193029645908862604819037765797355575149984558813189780384846924905296465288304122358595752931073961075417445349338469116412932845765329693013877069411954371174146260787158055118726953227434853342487662895105235897137710624071904293491560593762435846544338274995134913531606198580622521141320730782287519909477281201301369133734551411047151565223853258370524285483686385359099510429455867113647232133394612739931778310770645254200055000359925327083134063350010192509802009179257067382441562862972410280613631427613335852901043506006372715031947451747985617567561392782566362275630737031869891625941184979642172186448552292479022846183298685418551440637323507711837509730466435273248413919258791880207377584490923727953697887381373306335830709091564226181236807068110771463304713845610346083940191556425123562848368241633003433942753955411827379812991729407356873915890622083599491922614429783856839602202783241535565135479120578073393225507486483111658607288544694048062831532512773987665340434279138747112198316626685024234047388265695611624479912979349528621011962251522544087892611086126231104329684326766299557049878896524083337891079621613955395808639853686809054774629927198884237677122519645248066657923080328124801662314624932309068433268147132488985848906622993441319728755649956327960913873405410376969707389920983283157360196673949606231167355098488561164823867398803028374996896917986919383132006256682655388387295164571279035020418320420077007258315526239745186768252830075261280197021598672965953116969594790826102379885350165442516869935856306891360759791650995617435448247472389425011306473057242737515146265365676359714589121410410596731011257097467588142705759573959378942763151034653429646915939263310552544592227948765149065986901315103497139772180233015027073927085931071691572643951173192032353505103757162197076661692500642199259936571007689557799173838688222373339622610810135739677406323723307502285132044851313987160449752183513051349054822822950791068915455705638961983923765692513414629853538629266469571608085789760547475929516961265831598611484259098940164569969538726062558077154884223046036079763125810630524027083994682930889335790604895234749831855938967231817167564527063356317346196212090329319129734005617904544272737970302068166890594959289843700280448736974362931805286097191038160961747735447492024686503433376325073804123200815417055708651692296127629109628968334350317840395011230504978949275287392638482512396014447120082725009334349999057903177212458861960684493874147500494918032330584272201350937778449292018405386611178324482615399394893544932198541427145798194999493734002680860999494477045863532256914585428192521425842064505036002636741135471312930229128338002270148069135357829084072546671302693257622452385678403748917655996539458004668385544714781554000171145270190335485892764389397429275388986511390443941442421869620176015096808614237919622634197824443623906967653291656115765016141282497599360214543923828062963303057366426182157706645424360012615037931709517042692839816823787792441801136806770525814417526639504309736237312291051020597839439229036531178837130878521369269326539783480688198761363273004979466742562695765232000119777142051725672922533766781921596747048813912582096494080470699277106468335610923191945461753431370176957829559887093870738061445845260739979494509272105153880858256740124942033291579274206584359982466942436946466700846249034683905839504652845454487328463511153262044312645194850470222515903084968584845701419447014161805008804295622723711963307738854450031875976660477777135586323200800395095940804657951467121245245498291777359041704879405129490518636575949171802686217452196759588099774986489640207214140714626007657770700385186674635066130796189409346287336383582160348258994063887526940860904549300879313269379096680478012189551104896898733378168876100743697072679133554175762776849106178599557342006987678123599528914934339993319270003937469371019779473673035575307191101646845041940127359762471624976445141216340891366190357350093842441525547168032948542926282153668107539683346852171517879235175674307532074293406685307020938432812639391218934037055824709815498819407856862497340172582449283319194469093780349565453622828241052454731543475044629852906467452713482395590678245887763342325060333839333844120111005702651245563985526368461452212456256058725794620414334221464393944822106615023840959521702808024111916595425848194122070289026218914256622656850061173095778689843510453781929040084435311927365963850611113434604655778041060879894631975906469293277796773053946087648771276982535462713681337953220016698228629022070582110638385400105617946131276884881894365352387578919024978374529827262399810714040536544227134998496995593546727273908301556022237605109761725058709468918453100364500895323347206136109463065167786458567291335215764051841363960312841423438090567789452257290987962974817854304213783447108493025334207985362644862281090677095209762362869285597447855920052272912490635241837547531817667133399304013038449113146812695203286885035636769590156644827906785812278503580762661555630676989063620463700484053350325065572940480399780630285586799089607187252128772327759251983898808100026716969288463307688381992884811496694271327291062958485203074896427956980667544541127271115337586226279319910055240364075590111944285042181049487255264900149513557911298347294350784262272957784618105634135838218397575488226989477426437743978299527618300526921176621568512676074963192380552616721814662259905329578700718846638633187843605991185698946738709286627553838041419310834476051972801890974447856378991928427305922083040656585575869482961669846779098543309955095138050931268950774132043844328132438751850534252855811357744334421270720642629421612568099535484671735950926436949542824689676864933491188285449999882720187074583216235582450966354856296153932512013393836688621425447902515806288318562462238853891050445435741504355148864135817092370255000974902788580500780439259085859100351067778605898230624821395368809102923395870216931231615174592707910076442152179025351497853383020450729013453738881763068223139831293902533979319981294653488724832598137293340717786755717340817937201315031002267912809516263567582131692820962246581887586464158388447909977757914745656379126732107202473524503623616476480656389765670709247769628692891140929039503627625432542686202813132159161432042843325951397056150902598935591719245096636148714864451945255727504444417630133663946093894638054847345731357617878485243551570583256819753292509901322963955296542743738237202278508348680359769703484206343697231666040073947379937318036157372592338555367155249396452254384987335864984044728775791171104311396744135158111725582776321653046921997962509821378219677879316959916488205991054112258839035407550141754349301504080022688013140450979010432108869107673800166768505191608637935479606723135698757604085093783282158573849738139548054238665183898800493087730396406723181373492131793742421811537322212796899081430855282425166081950844559259105837331732934603977660345782827987681960106089796950008624846299692867656797259460778167532524256733084534514491513853754197167971884061974069457908669949048023938535603203287270285369000938048810933165595099273642602392157883863300662340710615679886769910376521372018463143945688377128841819833456893900470739643308120979709779625971936762341367809509544343050879127083919743073077949100751942957970862937341030305863163909303644690796043284654653473819503482082795757634900125078113798693921518502850218380638556937390106680611573039392000034554047386189622171183510000105608236217820758861329225593911600291619788105194780435914544806743870076002806096525708539076996385423235422386457688227480199468189814288107718392358037304471295011976157366223083086807038903513510692553415063092184788524080144254425749242395090960467531763239611781446316422428981892972901957439902809616785961489208701909541815504365227206458186047954607900135129404751157228667034256118790942066977643250161753646451708774609433880305806609397617643473307361485129635384167118852741488404624699057853084035834860475491295203480789693146604697538673354360520336021844893182686353123694145799528083301921868421989257395830305211824750700457952059110188845622756439985961267915431476016801347451479233254179998703147167010554915956394014349103350080150877300359130877083337542270419966258457519595215187252735409024377271121183302240221048390899349374203371520861744584965786769589326196315398095341510328544600705336062151747523833217048629988552393565869714901991875798834754819410497653336440982227198865801483472032321521754075682835639838429678226716139914030658618919161160495270698413803604824813748940086984478114288105627142583535336691303974858874041480341778069224880575973900943179998552312420562058626073557132844210541718553952696522271243583809823106469182919023557114385874959736614260369544138026074253153881762380618085341778169524973478419578493704085222044248246369499140705481916258350818493127899721533011155697594217874296127144776712126173295066911512220010532203674117672237936262637800666878953805607385461638352460900925091922140567979733182473754939302352297273877438647273425629474969536735211626596468176612074408563789531799447170651778325047763615584005368040908170685245805535475463557873795152421317144828743903562674273021918409066472196158782001543102318798439126034251674895308056539389633532292370874572431587652958470659707512170137362496421553899426530494917426807807624159097525579098048783316107209244266889947041839853348987892592858397498884044506099330117777458248496884297870152202269339622147487505706213331571452011370645304628585383548795834390896836779872277566496787057637432440711206141848954152915163320711362796640726643311927039886864258086629672321959435610703249297928204093029381366181993960029183673667684005045577854789527554881122335945419171013141070286226578064661416827331751795167857278240456308087758304942833287010712023841650227780862916609935072625782420379119839188211307545711996650877289005387084160664933915703437062770407631998542411534755603725343431751336714367655824575708392924495344786487759530150301017484791206762815617494382004952830466990465278984656769102399882376231279860561535981348661207786470042403084961617825800641011028706217636212539984656007363085307468001591128796883461918371502662357091385721450130510798646178652342816550794333600497109810218338994473535797907607981670897631519710059322968307603281912945907841725333235348962836007087004854867170763357149292836319068824004063743940790302265333094116948882748341805614894269064283892455587695286337850128450636120393197755242849842412171247836228434418307300356119581758516769463378643944987950751875691481036529835839749252641863781172321704624488436515209305520656628442428105739315852196932839789365668647221284617219332824148426481071787588794776448375694174420485677523063010660444104221440908395302897014040797794325949773305825089292560778224588492938156501391189993896834027313703343867401732508936051999151315533032016317060794629386236919702870291988494856553298204915440095351595582457868457255319014603667641477689823718138123563173730425392389097187822062118000665702416304086304377993618524255439001374575134888143758645565830996533168879674053417991263051783098176462116190202985005576451422669229810828306716376440518800738786990321347607881662336270419432713082370425064298957407122739103774486979502158985969019559451649403172642774202216083977751717547972890228197429120596010329350788600916978533792399644950271091171750394265019660971806291751735064617309828931718664098959887783320411641420157121664127127293405103536843990264154765894470365027058920064555081186016579938255966292015684384914094673972314640631700267147226383222173620851443526526329174978641731359564353382253351031548177962016910165903302276512326911138053904109897753334620223633750691956662311918719993019172951785052659315177711829474037885419319546157179931951310607807994566095028365165319719604564123856850132406106251349667306260209632607151328547952943875871317658571672327019571047795084447121226773566305778127213448899320691785258314501539227171191385329240019719951427641813672984282635762036808547354012031773316718229940211566422166495090222053709003642065137273545682962059986918648830355377895324013608332155038523736429203901066526680415889763512799131964536663127241746662112916826597624317533317992289338527668753526269915243594764264773865890928735683721802114349421009505407614147915252822296666141886967781673144317927312666282686745942743084368490277706464866087743923311287877839398452627405447630725673703520565534108177265372040227781618968728442696617332948552200932392999865791473177425945096832638129212821997130145008140472725642083111246299611928573457793511488033825988046433028720715287580551727037271615449003068381550332625746843669581954281877045618615439275561956147675601673359052932550066383955117827434699403332130987133390397859176382797799572755763680567265035253805333583923970684572901476479673506649320779839907289055382756807875585400675239022808396725640662438272584275588393825460175143190449018475512598472189318267484471919168378863532644193417333340702935187161138995534782087730396855696289488806435332538898245122293341780592422503102778604354068370826271332507944306167971895140512172293408897156945309925712013774513340731645154832015862052185741950347168400692604760842677459927694467581105420079819874231799570656751161339007264610525491099114893374640686479292478740440833501092455488067469059469194215779733076331727097039015515587756954579760233610331152276565511338954810846839171287740494990311917470805107202491347667541105174099676232500532133387805827795039309397433116683528596410697340690375541817292510292141303890978158734647842972231894977523594951319387203918633770493195092720449472503993317036767839551322179017105303360487737130291434093870456886306973116546613783142495144054064179664846806794860241418414752708427137214886033417020843250506040629839853589726259925969718009945380161391726287184451523304669092678795354415165510388337639782649600420808925454455330015260377428168491776559236222370100981237191821726882327566105838902890744475010856060015728361726467685702069318600895205853030123233369922716287662577884948558856319614272776785920501447771024449495942312125381567397673401561988710808923077423740217281494869866032992183746280848484247165986734448217215879033674686259279025404114935450578537550264588772239424862595882482690316171907381327429907357609084830877797704721366173799787045134167785277364709816682881487669546047462512110588927738860441122458938031550958030231997296892488209382855610703781104512136418522270877560644037312728313429617896888318364758585209108000831641373032405357230599693366458207820776658476069637369210653692938237818982106344564493966886576461985761054804099503131686981263612168710059961600626445279558952122077241671472996388522413243138020967856779162906915959712694790591304325996103169498255949500391969773195553949614186751772319582383864592448167150316199902178906381832456118926981036881664827136358335094300767049146413950609464280179302270525703485835428784362939882898777480553785912689402678284430550321160749301295173792384907796302793609409619306890040666838525556846029562391955592797550215938709360226873188024160614953768160709063232611334420035832036287019252861767758680553239438383392989340412581258179370482263707851580781596246779793079126178251620858243457793733507031194657568600189475838391791470040377016534377495799781772826073184386076742547577937798725846146867025634742798180447667517394680349484290441903383306010064140196166792052414337482478787869766960557872046914776946307549528033051738136197556359749239422821772792269668954089438002356758037646182967165041837046802675735760385181313684474877001170568458176433013040657866629653037870499008834973938892532454597337951111039453332886520601827051483220812845282615210556575561990844236279165831348083079600030286034450637834471274144637543655103197802127839723973398142172961243990197986827234333135006447976540998098296768207959631730545484968379736980610659865325988856344648995454703260762733567144096751702490895055824925375852460306775235489758504485815812397778708098623353047926290131503706060391629998299098768925403480133006321356873610221136141961954734382014075317172373790726051839802758163232749333158128789570993956765815334067033370349598306334757445961240904320703537084231581506983380867078143442857178478451202273012984707760059427104856356151560866747659957775407029654652956234029241294343607849720536451941285479510811241286811077374335084267625446069359213017519309897941378396522277042179810913505798005588293269404159485193110668652138848814242240312152973374637504777933578584965918090762812996559141688096294932046038174432874847394658707019991115879029766157444046550012644665185372644980712471426181644762919327096639935665002762344898763430666874405963365649704455306238087910470606396428367150596000933072534093087539462554052295294375494174659183613220298509811869017852246170902472726893959405268122358903597350213652592961727982835416503433966552572444791047407193686871418590885416212446605737059422766339132423121995597394790105253098048990752051121337999425353658004767413404082090476791177599179908027008673941694566651098692615749898166926895796649748422920735972484123021608967494026547869489780754045648101302203148465381317971975050493219229245457344021227839179568401535964646191649031044153653621537900463288050793310055297060020177620853864910372352537408694474720611997919857588293768231082929824744794104499002315308025178254088161609562540838923463867840309511876087969122760291511384679530244735241696325464177880224665456582557529855135110929708508639797546995522761660594863080207377034689519699556277328697503755791447405894351165246991863005028458489006819586931420485304658287622796792824675101820217825098955350741210756664668869223426826921052352893798012884243309879031585823039853967181941446263413468943379277169266504618428788751839538900290556766680448992590158712414330489230858630291997396750961621565428768064082246938730827754395240781224050930736630340853590468168809162261736970183044032966344661351634296337069903601487156034215561802455520493751532376420797763723490508229761609652195081089728995745995753839102905477995387243416669369907145860490661752286289589682797721798806779192444380019156624232205422514276690719272599049507591320771416612661311091278338341522060671679395136028139505396881176853518844122798913221523441312033850097425583427524845133569682619786602731675642684870504210425666637381056981136553878778638855909475202057561420061129373426061436287294971172525267738114132008963664669106247203278739699471821133368555342397797071033943319532672578859602842838150801644746090137073391042802922062286453957229558846933738857032130682829235655835989537666797013980772135433365987277967503598197111830556011476312888236872479223361560511360965125467386458458241427901284692416651348395882192737094887040877419011423667500212622956431405793414237014227094704943051200520021324690400715807838795374682472285105506494990251063076000478285611056290336840375258931003852525956592443058123550952496581488003740654589688894542121443496968786757062009839915061859402803287975902127580708734574439782644709764924606000667095052656878001043546202911195096530654548451880532525211993738902911664339045073013472383320163912436316100407373794122456470820931284746699685465096038785190369922060024831451451524681599135634606444091382635541760965149794161720232018618047543597388209215443142600307916692559594499976681137769528487163106110855753906998936172504350821150451729001267904334099653760506140604300799214318404209963872384139814217645805867860876662103830738724813400184597324493005745399923744251580660822843445658978782325001679344738941694747128347506315306080045788922463854101099380358160565543524292939507717359246828442585444185880992633017885860779043794350200886459868025045444095248605759470748156587752238596897229745079004928579906710785953125655255324890159103368874161905090933973117865682993112216600606752010642692946054141068430103618155486932324851926356240449455134020298437894636883707696101490437332760433381876196794430075827674698496948954526446347712229353319557120477590274662535918878666312791217812553982713478712750704665193055220303140603610637411707856206197563067109547710035583003573507402005592514038727330598732383226939556606121210104053499529729128449181481599120709514046356701276479739231002272632956231987221544391151918741203740732026641342396848706154272740325492608241858329076793717130140879781908350943482814825458015252425460296082657020022406809592145803943871733652582047698185552310906677013449800987008764660915396898517307254493532394387245401996750981085882284506113690988929402565274332436459277960868334634820352282322123013332777938102826778216456410209875895608487703201572990107927936067799492411086497829038919552846979360358810022778411758574622173813637232165855715561250565997528084911592728319036834640859537284204582640038310432896753582606692268143709735050045957209778361017874303954666506655032557213937928642713693190614271832270446638346632450409893929733342704841224907046391879705622720786871700732007675648037171261464941448017035215843787666512065770112609565210803779091037833539203310182149535395043185109328183184030046026259234452625890750290516183526809850818166491579932760674776865623794287409496777983971516711030459583246380141539922167835563563895390707163993696190886663929185557373468723595336536285449998147647697555118309232047366869278025801671780441641822204785366588306900146791766146621710310855129018622072175884147839587054457941200082313933328735757576597801222036860211008768724701787119003718115170979475446848417230834547434818882912859634534875444133747713525596732230938831259007016882560733892620255831366247470411340561796485364827999537625849817051912633070976506299363342407838936364379244472101063706296381060683642912076671380780384032873237003023377543202203141297191648934070972851807881403249648067036985179955686271249598604285749747374483213795369132255013208002061940339110312535028026565951583804454066733013647899073425157035418822585818497257751061763754621290509210874338676098235923725080411291713364088854083819719288453073999626502535668686706097754417825481439147152370069402781681490670326429918687019724199713528988431280377366119739568538791561239043350777720993554719536714467767495675178905972168801557473934810343852440595065809799094509216505343620978131769963344759632866396841624154763581661033454197947263994497099678740565747264784373139142387089800970434920811944070308878124321952140377047254250255527948235250336038754545269843666219792288972239712350691233818308532605973484830196018873417237032660776756682981343049117943558527736604075849090986093408430679477177990363863407018274928419280806157612192557818775832262647755179104050674762220560319020084654765526498590612475819788924649340122275487049330764022024469791628448385714772933562861789885900342645920870270864076804490238408076904514464420866599637215654934737136380506971989174138186735125483927175679635808802422460498237726560075400278388817923391137007980579599669774607946281625255094187195553175126782213234377598311078044297848848860738329389729063381873245604742205123399110897201335574232884758250350433117624406680122007556483520825516442501131767897118416440355715869844049639818736327783021929072316914995248744459013333963290455917077905268298832614043553195402208301472675539691350156947406556738489246784922082052419886206897648562797022381191510387092969582017440081180769010238238972038538407240842796922119002251970696820435115120081048606245650202570850270975228742491448340411765322309017485392218036539902151758320189442833868080587681631200646086919988242877364159328415867370223185949029666765546019624760600051029979671094746776957208707560571804286802607544371654654349146271957193601200081545794358516740997216725957453082750368927299733953291182024185851856964177089531516438506463679402420572448676115773451571899021293696363505849058084824911954411946816175427513804676160432760091163607808709969783171833502822667522430470248914511927354192537559682183837139023507716226664431245918466298944173789128010576933303223556273875872350889486151519284536622903989916699218971709961924105509714994517534773262443314658180851208683790398570189949780454387623825672406426309906371835029105326218285424530677812361297602718086312970998181440290129309942057173964456940383969563664563791040997583569119059528885451363615003613765405135975521514019338400388012262748904993116970117338333952652232352311143947319133869263874355942334519939327569881060267063200241296611989968609046745520557951808389510708974596773506747964166508103577697307699298564470102175275269511445063875971510640379737966391740127972030892678443919722760299951816225167448363461225314887777931965125148038384435227740788528464402090457668005297186527241026778511965090924014104023525876831821473956415980716263576566941605533519199177245561845234489165016415485616990146456076637129879682766635894781752450913287323331963248317369202813459763482593677037964592270001009069437481556299019105454581159959116078642641263096829474431851837807257986341432349524063967135711584629005440668115645637911961205258837417737690798897976106957162586894834365923010083935409293408417391572398281180963867930874937176546032794877093700965061481221769789253223704913214716079650498486858132953887687250274288081199277109344098280739295611577437544482670467032986392136101615870192001351909920924900784943665156149858582508754248855876369610811563544531233288722364882635683790218651692164358690078244192839387456267499733036727002891176542387315892789537307613821860352947107028156687262686117329627383110469525924977819537610570017549074343218507795446302487001419353376085939157565463360231782423600154083694241712106477058303120589684289837545346367142192827724470818321666001482287486255927225159923229851040210061834632069185768439254351125366709494921663418411704326046809811673010802714839133034018065502160628113527310205945197724508616853995194876852982038965012514246461956250670028354413133795287925057751862344895659005519790500479197097849357747655039175437763943587145749197794392116782465729197451943320668099115252415074321657879380909608070880406552865208485057814838090938958931539247074231471812902219385045335210478387143234719752810751792962479824712902267203275193307360978818689486262004431545509641112713406279359077539134344531829949270080156193149873571088960857550156646280194802992398206725375162307686538304736489519915956228780924788919712104786801311039179457287275924648832572691566511269380142422592457553118384864421984880568620113652223780336051759307715413641793010258829614797098549183326415016246672592546913300770621108170071577728668777181441528791824518923002201470915672847549917862339872739561839387978285565910565650482742603719275334668851332012428735070111263631319012279497261247685021237679391929789693619224784575007798514877559241586334338151359672330221123710539847894293890791817387521220662606436420617936436148356987850251804052487695894680791378132457110454731264821755419178983707036857712851006077857144573289934374492284308417195012583997831877877050853877508745038476509261687386212599919396702380673245207219069500647230916738524918043043261359024935437826600075544786543763233198543957798253477432846049979155151143366117587220580986278696085365865289677779841314778153309295673713071798825697296879035967172082168519812766072069604869135342958111645365377274852304035999296588548377440002468200762609185814663854453311800416436246768735046759431267751436936569830971440156018514671054188837786937333904679503151563722318728742386166429472186667722336324042583109427443667915061605982082946954925062443080818904379416056750553760636856359623654786943928268881082979910808151121553298120963826360294290898006774612373112756989284888384539511789635456193016287365736077883887939672496567033705300221336353772614945712556406277378378676406850737622446158685705034009241650150629085724747514284421411847008937747425806944487608403373093495891442731154696029558197836423315221644648220409539782205677901038485169346251673963435147174997173465582116260717133007763436424628367985884431977982924520911877934803552091738607359517726341447075072751136367071124002651230057862866524767810368386657280679143643839293439871360784868118695589268259033205835286103356403958050514158622827547611041345258085421010025456890039819069569970840138579584167208686740061118248058245603822353647863862187143965832789292312615089454774628618549021084616956809397356828912130995813235383171867143058637445313638436328940875754610104234461944620073267647121560436207701298231574721404871328095048683691757253145947370889081514273746452704877025075169869601050968519072879719857970549885397141698747994287090382425827291935582730656082616324202291244204331548457930963412915127893093968357894632247361951188036041731426564426279520482981220093376061359352237344571593518933899632313493802325227323366830749540165760851787984956286742079207990606458554641919141210393133604907132324510924203202506593224633699498523126424078412265198501038214051464650405822905628979051412616268648903059989540328583871646318364595499457695793171846503807714688325226903792063431148164709837887916929948872539045319071922436391269806146952339701499663941089120640342926514696345665205079095283671365496383490460305925261915664319710506594781778517553464959224148581599255416749489059501094122089342944015856512083990319262262665007134312983654741048740904035175762554562853205068086721877617512757286396662540792920311076068000285987844004226423330613314777172426646903118205593470767512457720333198338145183224146631646278483104177973166890546828651903764425874978008692186790738272595001069522554438559942255515449910134258073869911395623431751667168964131114818628848207998193654111315564344255386443565411303715176056612866745468648580335498583072220642610601459553653745711361891822590725160261018654177376370016292351495738771465949743820946136461504969897826556046225241335759227477106628742758983239060440669436321053222918227463727892905936804145300226011475785387676043597466425294437028404882914808410668306719803403941291243455577206400144017366031978547667212899644457648244038734825972237364085911078407342290489525470530180579973795708894881604508144050869370212062845843862244708734259883846801644156378154008024273674116583717588742169577620661865221831495660882473733172122612088962262437216937271925489129660169860386983356278621436859195221615731074293019949831854141349830538013865689152546678843680006741314997016157059669921914500653985134946409148195604120146373072461833519341897016337988897808837499758377185643010022197966378449656293483065652846208531008188404639266012459711099144531887895047710028141889092577720627444464107325117586990564284749058896496697305004495323928183225956382588417286928159150912135630991168102864502822775206811250220604239027711815925758780527339836246373502660428104082749173158533847441114693442854882096763674990450379585838728101098445366581174201994081050500070194117703477192808281541425489025230114115243606880795094737544029361787100461048150769571590857315865749964984192741946912165608296603878223241156598469921962215380975999120778832942568342310803455086343402193503998871809609975251826126559422293957129515088867777840174123599791251311280379421874394673361744226001401898505899635768574774126419505360507137548643804761192746551132099105863339598444212300307904286411358694920209611685915632014884279097849798920497200050056293414984989685028128143583047792929121461669109593540049499869531440425213667375265958120765125063485421176804786633337163085443188108713229962240572853994168133457198770374403102281601234258259917037076757041829380935446243737309624180826801461263785363593006719269168877910216028202767901917027250355974791517438677740443774630807057032105824939674552713617520111841940510978822178326397461890529568085518361027029140392485236863120893255462480448886592648535353452651731635170013335525707158879986984761667908856585562877066744655866149003310007070494543064609843780083895860508290543898745824605658963525367771084369701787133483908750903914210997789386358515319289977339988974580358315361709569218050898932310293626474831764713864493875464893057806135162651722729739775296121959340510974717300236524630464206088857350349954174403754130070767998700984072731710842189362481875750341315791298019505112048315841626908762149878515422411493125248121208104152988178018007872460432811613059532801305234538365949588964682400012816933693346158717437435798482633720632263732831300706186122338902129527569553868937782906724857761485707460500434783043196714228099462337091740901605827874913247617954626976884078302586068881710141269110285598515580555963886460559659039552088445321997015088993043221306004197825067875027993607445666321622670575916636993250599958556640028668480766495184323403469400814450535494010095740848679027204886829036631777609155542735512913678295334995804231857748335382992420025365802424994816180779583393901110784503509235261607518448263516635106263233937184057116196688230954291871671332550118784564237155831185111096466081368118262792020662029830458633794770976375624423035665281676672514372802827830794735122953741443609529593465871252177305303776180721468608255645723599675706587014070845662448059292365557872780212561149179079550277865609941865541819326060387997978159549158295875365601192145588758813565984085619968866411987615757388822292027115399372748896529684226505935357775520052137685048960268966091061093842342202895491243530287635265535340221636877869440105797534247885226716491655073796311732648375323904770123315070960643628741262305950223957128635276952546131123040066744457782033495760735832858465172890368390965513387642152765000038914165481966669464062359138272783167936421422133058590318363579875750546308363019363032903596223175505241794679624428541020552972220208765027593010246272579643913146948535929893961835728689434961647613495061058834609403125161642770331682190290939794226874787442769628875403186421471060488787493242947692338518290752462246797589884642281339135865123478911598517991804222878248354191408478418842392663505897873169792112463031075128531213420371670571772822100893929277409634458134952602315151651787830225744324108270223955888773210263454285634046450329912207618003296717031566204939508682316684954727404617590595225925095968950212465609013304034762245981891198992783066055711189176463860487557655751922077995914668588523113914722888713243121291807936485056468504937663157318366209717251266671601327852651311145678445323226971650039193895442923800849358758658728452596127706443055788412428526979043171649504883157046383412512477679626545132465823283228777435571854752050607641036042565057781472825417574501558577859029148017603934590938736214443120981207524824785144162898605906964617511800733736168753830265887192338927068111900203008795479829308790302433336844799154791591613073550007148167692806432602651943434965236427493006293570503414711226340057106374433321054459924004638162789738902986350945551131510744504104370403066721040972358505595831808854167492402842875585201277443255248943689373668417485822340116218533892429892046640469119037954917795128845808459721722377530559780559105513923588800454396842694237004580536734022341919045361582514813845460328644710645292649213508191496019877977619548945720961981172992969985039465826191599520285950451739117901651479845528572637054782220594808739107062065344932609986804437880845614448093266119924260838828461839474309920694130745083604732806846314487128156056805626926696522542807766358319092817048178401847166960486295406698894344222083384762317718699955955767979800396411626602439215646547433855782148244571783944413957876816064210938687421604133712110699738633485511101296974029834039568559379275276575681323115631405649287582249164404244711989612607932262742881017191963601311203011055848623542537762738962695129147570325937733124980018235224228678219601927080197961778210437659136744801434566877857035677264333483491152503121357714449637817895771877087405299432716929587650555112413076861177756710675470087762761214190015400709994942342954540267689431421146246085713448443180161300414833059964224820985958174362243768478628923951922169571672816013207383545145422560537777728199029124096714608325631913758775312368810297050326923035421193483584174718110354448316637422673851076051895005387353166575825744062704551611862353549557455360053782977245907515642103036516052972446354814264323857265575258299375181532099101898163171574268828150568168164780286912323707693030276263690788532990766741614922522988395277730627147297139889992570836048598492747230875747447695435762589047481918241358658820971669193293590777950068389319092761136075426025398668215662997035518691057879410583647481093871032711811579340889704836919640474268118687403740666917576915430049947982583782045908239739045819089186414248095964920826586394970613202000358688833246120577727947341488652558420318694778227962311316317392901047173964797338498530294169149202472434424667831677486551083799117117114714543467761040082238045364466687578643248009990836861983297059563338284871548853920713332999233749655334753761728121401119163409789188997634055917119994990638517908878053652405124674396812344172532986561622363809382395316925349435239617878228856691756997096422482821780009266524247056027496657074613439988889810361462701648285699023264274799143071982736479738918686846087663742939610382746694164374079060310373474929897096132765753476883543756581258215633255770250348232640384051305412862723531243187114911172794165294490798540496960436160335037975326133518118713679490258640677959904040993805958554363509110168734220008193340854365975183574236985759231597428788892511988558564553389242943932327152119410682033676508168541642107524497622161062933323641541773953609195564076781309248225001297866478961525734222993434798314504887752799585822382333685848606791264044881202963936939610210890292526060966569598308540024199617223957404089153867623953109148142045687780752488604369869624736342375459531198714567133327294796933291598321205903412761562075362269036999935058533068911147852557062360394986598538054965791784199304749625647618363393885565656935060324926806388977663090440738622386640056450248507356722841126061840591433124207895113991971188296530357104998333457258282293162149972350415129281109958648599025007410649145300546215354112854137613190553331583440720379687801174267034301450489068058147880036170008970444437398047161868764861857258531433164975368206182606065784510158323365346153214469950789100392263148282679311746894849981762335235204473811854142403175923770576043389909803725176806796589001458413148855544467812471738526329342515914937397552904994856343843324901254696407395012986653670933210166115148332849508708450422682823605330489254235749385519943919355874139777540958603477690077785037709335787967672976286892310120661475916442098420143071749806995226485759900201451053378353149641186893802628258049699724322055353646574349429194575841690568347602373495992726198907154095338206408248738598339440793835113065674702924582552607220648319848984245006936314057974334213285774127508433578133118399583291532625338986212677737555790202941969607137481913941805116218793289241450386513598118579720992443183126359540755953671533053886076352009997670761546142314336282306181153065816009569212296509527650473115537955899138795700230842006225990117708584022346594266215364250871735013120771028330085700522184409449431672107427372703611944839136244289481680061604858059497682056514794438807024173698119732733893568612699627134223985807526118145252675694671172488650157643096301046676770206633838514453306131130406900416051645464755701412329203004514682743931952594878919820503323431339091296325080542437417574784234802710342157384980248709709971686452549278561401966232045491331031268921437642949845027467564285079642889454036042144018565083499289103079582719717898904658861060362422391363306801732588221493136157066612981264893612636586398128660226904727129774555349219412882798147917633556873975678470297872810571553080262852593116951096335222843486522692534122783115226301774799255576650558393955530075291105818399888145352738154077914165950347775816619301750810238650859183400116804048804202947621702642375385836444935709209527932253145517786616330938667457168240960020451858310238310046588759995938474420909949404529448188333118720524800667208728152189155426301538608975330344661206301826740104268742069435267934473947911826442256269793946950244028606496300003732635995817121260221200396030426777878411177492050931158985623512509448896854490068307756265581002142887993579276054181584538067344168009659856352405655888821352937153790594307042954615424812536722460539759363945404533029794866709369718807436587090207694303221634131294442910656410627378315211036409260372681899005372818697553877861205461835272104170497305134125683179198753125514478431754975979281868792111078472745534450275392133947138455220253426819472371822636709610160309163519411414869862672263898123452226895623328559636479684058688350660617906469748830984142345041363840729478115844703167387348619973070469038276060440339438841597152447868011057643434991154742559219486222591887786835563970489719861852688911350250134799785136978002869312952985416605774393994218099358727279534490927818986855014282109193380868143845232095479742808901926149347640024381649548766033444353930295752241421372457421952629762653872010044125628689905017601683724443631806912563407909647097600139921887185746779962811462225634956326160628252875261647349847138151446275353678868753519482282482844490485273937867595649940042689842456036774687088248271382768177390048446423642383759694702650835189957093250297978086354929798885206529945080194232873866296050517373037968322311412251570823393788357498580304576507126396625432094948501251706703683874475975672214940372889501446010169374166306341921559059232401566777117763894403737417225511023222995929394226951439625115724472516180089336381125728357261118828149002744680124907344383506457674421793227482555307949318275874275039888811293515905843882392566206666089335075048993325474818307521676260931921306412547428379297277518267265408597713501489617448166744934976212247309413887833134732770511404246274747951287144717433308290583848446193363237873888869667600395574808685874398089051438395638547216082601015062193739013698903069592068870627630391767970233875500568133147140698750157962273773286195124401574815955712603827950772802863036546970195294077945256304330703040810683848507948109358423143575131475534594899677473780583559237790211765030357451851620494568572495650614712446650255916539845097846060593531788092129063365129882894481412293798742097587469910055492780370181088912200494089778478100479721172082330832468828525321948877949562758652787223796704978797487989633446226507286109852867622870143599725860023915496106596205511466402602360927675643669133121211631500196179625888634975555212459388822814025700633792644006634085579053204639578487286573524352106533353667419870999970401277743214495712222227145111292082083830799534600939068489470322054776594165718776118560976270126582262761138478363883975660697609657474755018874876381154027761827183773069196246193864409468252244079390917452134533808118104554379389860781125186026665277530289028129826158976795563871094810601892530300325606206735057886777347116971282984973500883437091861383943972381714296398287299068697342292374622593572658187367283052193795112067050296175926367124003640868723104209277459399496349057727195622496855031641979789585203637682285063438031237213433836343192040001452969904613110245589732215357697298557428472293120214151051638275388103973874665105574595065782674021531207413562659296899043199207838927610381026586338273738869453915908392069482369373510886886563460278422249822037975560531850875378847510916646904853934447613770083463974593172932290191687838719003196472775174383102701515806639444821283052116530903097537196119355652704735841707935489769001206099371396899981904513960767175477087354673196912741683870799000387619964351509278137585413573807402576451920741954229224827875295127781025299120614713149168377794397214744869958616007038418947913408794948873529684101781133967706545766024698917414064427131764525487168747815960153613024810978895870800036209587908235239586368906248051791126950438463611427055021499930738612241218388869658949558743085089475476697133664911988519379956292956630035547112013786872503966816981691754991778680676526349964072477905599996367969442082634260766052518940934036159857342181898241664588976138872680451417547121424653655870662825138696916657460374315274150708027643781392463153130312229405739674127111487156906685897860678686402370507823048552015676652366801774954739301248935475667931153656424146065934544165765417469019203484697003084072528551536515664294938913476357994422683125348979472048516824630420081104577028973807154583006305540749420338232074253494981913355559239008380130901641386938705059144770490876326673952208875177917891868023732003985033472364005992111844883814181321155486112633386363640508933387893802079481121210955853306963481232496421347316737188663167380053824082801696013770673696071084253279276516050422737946543402803840568205502163979890626558507215621102272176660031580226875865232567556476717008222775041989752686257893606121772932966655067318739011553786675272058923562189937306134509423861436682910830702026537759307298066632871419999052933199542809181651411151625637676390498465694410921432265941615450442370356624325008847383571855077394941372895874279705933315900173028830751228517133665644266671225720056776191156910311142305430451182808369313678361071293452966586896782762247296875987151779566285451897231091143103474096430208968371006221400053365804325103692462969800010142682005543276938522451317929916143576778707533761133701545636653853648979718038534476234270834089130661271093495188901605281765102771034609297576282447601959310108116923797790125229695282083155665230645479068318034038071619034560041184773299264635223014383506092336461574543028139184586890842865815465534520378915383939124425556081528230802834869605232808500360110307789079613152182724529581241661602220559513937756294078886677986893393575129174516488340182205837819431952055226857120973960313976392967979127089266808999714407442779222811893993040733951724857413599770698320177874559540765304748679168050496126928957325061377016337124722086030703300577948709436603825664055067437417546844516300064211564224177802395909237404183187029177810916236014015474397932545906119036999821839638927098143747711578715850530596616537635260875967842657269120898883830381405664156952282650668761953021952233568630251180023060173649008239450022005378678200120582280844048514635047999541964029486299326756088506857924326044193003725222962470319421535665829676722865775394523948800898729889163868210736498526678547712507123888322787305446074943950309602844072684369634152331245921079014439412656737642415731355508402094151664476627314354865704758916645052631678256116513783132069674238950229061645266528491655146695069540720449829368298437089399993276363701697355896548939340653608614120775351990213002209822177499156086645283882762134359304262619620736349924239200859563106166747877817730162009044206332546533571710091341833166409694378114291921188531334705035478669132048327085543123613557869430288125535181750477242207197566259785861839246196768770204426596666451443395652005163448038873900150933684471736217648376421053658044506974461735422929166824502169522340463475893259657285007947923046095770776275493753824574546916703674523608010954381062115994079945267108460899872736454282682717085467131483711493041900287142009270638877566811040100006884506248634423959700086067895309044356959481283420539383027996781636048952525689759801239270458226977905464082228255462714964227118400785067929840164426733890859030050183604971264236220394639467412317532742915473750247007802369821827679016589335009430645090545597825631612754178293207960622926528343833358771485772316229551950156741075496008718465622070058256782990637198605796576936921308494334953088240380883221683524706045393376401075880978590621138273250749225637994257952341877132009250334014505273266995783292376323409791820461483079430838964632069588784814169972503114924297126148756999613786099522383049621686028968553681759383928019546669601834773637668529266053385580412186449355310227590888305158807434653842939252183383250870977205067141923026129373781184444318573582622420006981893278261131086650400531438813782733392461529045467289837285705098283256251010525981633085619496511612340761799256039004238258227201940921971235067354588278786092419268598063000390395221258296491548254754867757282738876885734359216565692947119312963450694565691580084210161161665345073301389286821546677728678964094648284086397846449229309231540769203429320808333707162800567944913130424908529524056334224782783162432619706074833546596608847874869539155988654439214384011369076624640465705823380130795333214491517338731577444492723334940179464205312429151262632800926801811519013638092277955627688292292698714274489448671164121685712832989961204539946461289763187356544613446169240886403645568000264399479184265016739534242644335415814963052090823638087802491558552741290191974111327232749088209200409705097327187564773552653632315037174024938883984115499830602322211256931295166349937401965218271804236288697922526708877187045386323675019479862669831037528607104399639595731235609205852040248148626511375637677989526266937369040013159590829241165973059552583000193148708819651918480916091446456138732717930865634694498048610068419410037716423629550876481097213499206082011165438781182559042294207517433177008196817448404539610766256488328949129429027246939041171079627713310035763965846639884733736346989853903646945406250881998466443259535325970993701676125093598246356826665943687541058020049417572121015575180919074076317891649886040289136365478425924005895210486569850944322843474222514596819472032089697337275250860829268093831923773735382769418079702390247864048488841205655231458681757345591277136015251902992260788531385184084871203455690959480777474853740022737129694623306647813294783885099215435022143869357556590677423356993465269385455661027069006260028804915212199429329336134980491492595648560428702068067167307049935153056445163868641416851207767371008503904490013135354546067833467775228645963524340347609242359923549809188448186233121791395231051505994731172348416233788930530655690343160031011642396672251455678720859694194597816281561513823703525927285395394027759766001529109915306107043488507957606807027912772128104822893104710889264965488240243676263888691648721572899183371098599832405879004971128816657266878791322893278161758608431300857719166177157316382924723235990576017974345027654581623275374035204101471974053258411739707679302810414197318077910882030326333146149091363268287394813383160168723016655769561477311551793873900718674761711528049608866699160678706000258793836436388944042255950839774122031638592596370988972260689614178924012906564557824300624414134918439683252767793869096399940084224587229020700602929975756993318168865543882338190195834151503976867183161635747765501582207981573440830164184366997165649600581695116866954022459412881627542550418131162419145225883835357637849319386868486125806331752757484024633807903524251453214641501984692283891752613465868689242170130171399214433719818022911318080632549750962067946120815537495999093297089866692873288527992693306173236508724761809873424261493722238226048841336393119787945801440254114982779074755173221717604838839800842673998949609933333981734611774147059906152273246784345207433886569170410744675979481906136577130468214323966519304367388118533811230389185377473679823082280272398537847660226916575569735240350206565740077097558290994842838720525295020562446698077496060382490499986973139231246119753522602749376418207390526959704860222320723309565673054180772472009604371859822434342960637509829109703921962103731105115017602295279778864783567441650653992283406829219205776579610326727279882975088470853066578254660037798868633802780831965207032287705582959241312519332479110764418646258308484941229903507953089057843165970694403173544844200329008404643158935983308040155232193497349094881789304042511183781745998476735780531471915716596432104270567321815708713835647007698225203992667844886012250714636430322903549640747971754753985795541498039020823257397291094368442493910283502343519531586854830105985367001086982376264217592893582338536252889264880469595489312291756104999095450101284898147626813694431787755211455211676634916990574946430242606685267380028236524794877519583572533030440851508829492874086155758719209489096696205775614048274930780136024796836537781402865856781036733989491633287175200625424116673682873537674248065122394938361873610082919120288940708847296742601183180471021750188607825657119235600941967500886428000071598015186706445280780507087588237131801704307959295551273699283064940780941526798305276965138203113712453888816175220413572007688848142221715107427795108325102995570865219478717307538994694433303968382410326764736712069073257509012525459529880163726734870677583798990254981678337328182646764787572314194215334661673680799942409923143754376278023399259904818630568963127853741624943786052012584312317375681298102730790745475623721857828066512009047247971462392794892239438092015386705626210483933039836413520159823433397780227979187658460363134014897661162532419864825634989811233218415768171700649770597377403971768237409018041100184056137953842715430991290299039130476962252060660177392701731259794118047349002210168063531028150050088276639963959685521787180541091734960013194324473683227126136161744160749990557208372468468325529334556729412679960697617646710087141694835735501404704950411380872622506917070125052628606746313304087509919361451913766630730589034828407145103440614035437496603066016204194208288995619080752458088771441991444401242792044465433666951860419525373110869995981316319908141478287471560273652909823801697577434895235827632741287267043826074993978318323610327919595958473240073060631376897346409527703309248000485572009655963547829693063814002359795743057869856632256685933022305722697672111018356402813263726194769499420697783130796964466343720904839908417739038642666520674766061036389652168493227756017860404583701709727057793550467235776431935474709531326365852311279669117635192053490858109488888694759136695477458312663984514759734942669996814778866561537346748700399171378460866897386954040413113612967537130536743287066633705610590798898231531556897089369792952012681631280020917412968501439622088610135732876841754174491844952298153149500785778619144459732851766657152650851977842108635556757775325231577767455094442476294416286166185616894999345322640299594998535777810254618013903287288332625921904922760335115522520556296488933849316358285059989628159482058737254435864956253941858761938332922694659934626321814433532703431148920681543786808640723686049111952085505898313861159767671954525003686783161237079253235427544018794853798056098750426312601715763331056782163399392910638228195175320196244645877571626723024544652354690287218451581917665123304372029203639927640777149395990812560060130029260476539226914282925213484229791560010957169890638048140424586182878329429059454395263977862968145724261235949989818231088679622510558591847677846330858392065081664164668607895298074869764315216451946894815320497078698194710869701155107275992012115329360660944418608584320493447848173261909982895004273546499453466292324903147685128349171441663721071436220984507994062657918186565123338852888473951044492724740147927525839224118853975258564463345546147541532473723217165163405333229503422253991183069316277978964633699575663511513890333001874883679031423119835133977920905723740632699529506037081257419188356696402830116472418417996561135804998722316078740394962917812929295372005759471473780356085510915361842583749673592007100044653169120520261799240923848188908926902895390827576489330234026805508783496150445992755900981872997713385601486880226259909816445409413657559376792592909923050637876268192110103577162431031048790148868453426945987618692102029191781792088181029149520244520247237825019916567505216815792438965101368929680725455109055089226734053227254456030900080776216827140253524324460742392485211412398892707123226076982135366277998943782883154199283736443680376657020021439237271096789243397499138944799295125049342883022739222199379156570093728945024117507111199660595619084879930592426109069253663299420989134552395904363113241409393331344458390016789341822295650832051357538308598888422737199186636363515962704873302927922211266215435035113845070144226923856193831645745862668669668435925048469712255059616356216956371842494345821843314370323209488491059940416874337861307555377615712234575678849783891297157986701745715767322370965590793832781741329686402553445053521887946413036912884066048847768965919616940268877828666962053117884774577982823889622990764255311691457000641108898076950619033975012635405991107162888101379010263561975847849003967808480062873373869344012403712460814851090361824990374993884903719424054705595169769496497450693261998663944070652679021758916832290975520815081856019471985223841317075437314340479541099985808804871692350106678581525535808368072482753866702279948932039472086421014773204881949273828516060128128817327599463179368823470613112801951488478971151025954456562727607067598168659682557525745918895547791796267600042857607940976986462213092994338711777201386981996794803162622236813775029629005483884387649474513227150859186546049013240500862629918718217390144207508841365182559350757041780629255108092661920857900768078103834723810473717138623751774436226065098461696495898255589383559880291247061861507906236954920792032775600093197916843628343210241117736488828748621586311194022310142912230136710959754874584720319994518467407601542294631918909563402942777555886095470896436150472092223042671961172771351018334872205464888475352305066707293761952033078426752596486098291411186776005799275652745493140720306743629358861659995578787228566708896526308509233359345498265040370275342607798374865652778229644960473284786141192502337959726283759752761939068370548838532149383526950861865893293546235894726134493872192480911783681368014978449823560352542123187107207816391069981000426639688717302372003632819586851869502682182745548144773496057411513401641426199203141082240061472168887859626675577623387495315633274977919410971183419083888474748665775748591777878479014607990805301299671087391825430919656093428815283982199288923064152791718580712845390374685789437100999820448805830670172608427758429891546471900673665196899972900732423515721563700621024957380160797373113616134022466888061811725341975748141476475318381700880013708925514691726246717729315968193642873865212150652182684225160797395113881168224634062708450006901396567899380912586833814341263851937244778317853052553587277027843558923123083972916510155895120502912551805361025370013576687121918134018101467203209141946872768256686338873627929729537054568507540297954483092412676107278752599656387290652469809282857805510057829237055137526693948146563340109660760427115914188673931259292312735225579974874463503798636697672817153789672651142601836094671056304334856980809077349162893312482116754751440663174641520450358981069537368822848907199576484599922197528875919460930599750003300829439553116985518338307409434371842277308032323379743962234644172941989292283828244653993803529762335844374024973589513026195516647604426665883225104514612926071155748931562970339714444574367962379802249824656545799253832934385246192446650588657916094383422158707239456707451070164330156290535680597293146141599917914109466176606521132383432473200895987648511719742247944198645278804515039005380265785367278183342147277626341927363809557445898198862004640131747287896358555063823749587057237674582784051485777752741261018580160714186208667997464527106003422719532748151008930786949441972412560347403507346138144478202415399039342149335321417489165461485576534125465245254315576238751366179590590229146920699023847482165249284878807568164028360950346272382563843073708112406086774111222466432976358832045997622011314408114553848488926258190154242749343344657117746516235448707730532497589628437294091703781847790988909514633665494810252749702919110740043776820835193991888178286633189477476810568047965487991752403133899796041640744855868706275982807160600100035790562825425599514738114748741457912294298704924140722490010408313651798809934943004462781634445027808661449770844794934883721979932707128270662222323706572795045510031272385499346109096395809502342952031874509789512861808153878673511919472341114131553465936508528677121689439087085414026870360153316158289783343598841056502598151669811350700803549395306537104809451386808033466247788030734224822647385980543575456163681397972500086915692088728377321901226809139739547453972031710015707093243007624483904399751372985201018610557115762545421860130790232691736462770885777013630712662404238927388333545207820906709619604144125019485213912763607236150914425590432815630224321866528893180530158463849318069977516530020830370392219545903634682282146655545090378953262494803743053559901209834780440890212495971153260184175247358702887720391477664618172380763892414836789414839264536561746994855794726052495233503355928723674943854320823816483799955448638699336838607692955144071575287014601389959182786347592327234399811744491983431621868362661541642022997229186752779442330282952602277947837141786549710617413561271807416559140478821899016012401813489075011415975586671787465039771477668449804685912179323443032875728557482248191319704909265548133221104839214405725122808949232087722763050566459314479652121876910988982473909697890421176106844935401496716689717542596359505491414168017260870894760893438799428344390779742679335431613293661729426466425660759902499408965274603047536084727888143015615060067544817727565833040842547071335332609238763090061517345212892086109261879124782145420841526201642374720801049414151912820101264633734010527387092727693930853768718881954207039765207688880045323701502624122255796548635573317138756324488065508851604689810698359375881311063931879704725049645065004053218688540830734031945554115125997200336924268016906622168295707106668488085451892585709641165148849595324791497188483495156527619776077327614522695382862572546082599135995324388208831275390872246191766839937681006586226640242863855856110085757873802449636800170823464193202066046306126764167867794579099120366203549115272596074400100390637342351780540279816188903572312087626701718093957219520049100464293686116733190366405488714843261514264415672611542218505719871493865440653299207847277109832394849434475438311041748287335025357813150887853166346744767270114040229754853605952988617819348876111890417162650428136229714801018196408382578058558909750631771890163773029278533403226211901928247999868406785807789991012056272632343842398433041855646273542156754996542225906316755333435878821187044358875017218943247585343539871952769842783193149668017991995774633932920300959678980708509927009491358813986922451391329813197023488511420182159837126560393306767153534613956646306036191796698667794638451376002063888646076770161063209041179178964067081662857113558998820832368713420591552802775175317629404321234789131645884115301376630376499104573451737394351530730830718425097286252618921234633450761170339712178483221750067537696799318832685978045624497951482589412616258246118234683308988857745598565607039223876720491752700182626249000399035659153825815687876567120579527451592015404519886552981160125183653950060990578277770506037545085714026066139294283309340549370686877703341016497312467632960636066061549827357540454493583194689986030078067944101743744626986413817495873294159315173911792625175096132882913708917191031760194517609345603511563340781930370690050709136064369403435540595688455224336113765398155259067169605577929665436954973395817948609654542649100812691998255785783618237006150005194127504571009191941477977493556945543607836887657794577406107411531716825699042344807246764357421273131822727666033563327177316923804306478522256142073526072762059392658166412117854945620175494476658359238637497959781090977137368662371057352856618511036750836209189974077901514298014555530626438454196931483549226811193137035137243698506762187740735629898832196114204573581165569857440122836601538347390211098117079551877971727582595904949796774151829874771264824911922517430488921447230255992191964471674879913445697706023867834756193939469133454717772460016544879073113603440851480695811365154642275831695466504377135032518228211375864386560043413243364788517990243843320707025381634572043763527129771009372269132335300006447221167016102300839056033667944020688451025199931068314017163010543363896430441656257099145310474477278623062021578746503065134071039508748447935594185764454001981129042097169031617607209880622525525196005166251607344117727249237539866635584544560907694124165241284861913178386342867025786202183315907559965792517639285025892921342950938702962977908242555115591542169021271183801512910213580397216699591945639913700121505540960386589304271965800311291531517868163109704206848330463919925177185294291111942082098882731415398510095304446292703157974207272163582292992248985637522577565393193422100498758577437289707564359991723046748597112814786274393633310400905133425677138944589333335582835863328170699761009532654566089760555673889566520857364525712961930532109977059672772282530509138891387940667663581836480471023432386329160205478720400128022326902109314053638566182919823309040432261126369842875225357192506857265268618718581556495626323391216092459755905401437050429269295748766723344514608608511628039682609349336186219626869488332140970566147506164987698819699487511892655936833615991034383455552338642733817822531325701935431100743409226694067510759116150007501928560739071409653927194304489380906573780894870587145435652756052547127485769967963416609557197551120776985630373130388433796999354670583864962767296564794129880263736362004876796680816288446272540692754081102154867047013413372359473312776294927523605330541069528732889392167148886327499860349916082608572159005095322897521178245283847728279522139187057169190534331828004981048238055580861977934869021948179702662234418409276110979721563714832504859960492785142589015359436219599904971767359494777481435800241753128708672187239645580499314885133593818154823015530791764133385752365557844216917424682186517732494028657679189071393186676657970454270253956128608945925741963442928616010918335389141227839398656889513757018471349615220451917898732025474685964393696835742947805178200307743596992877681280741026460831842631466417035645939255801643676977950221793216927147260181944611402875265130719776702052497732877854656032544488101770871208856521909850426979567800459490581963876188512619993071880918465880150762562206064086885254010726612592068813304779244117066770005238091325165273986849352225986103676633918318876120164151419538543973605886888113563962257161903291987283468396741339064410442221534695149876020737555794456427895015007076633738882873050088066651631566903288854691505861424293761014259980280657390926369163930703433150379801263932105129643610686013436820324280805450636472189994816493026293859717131223488110922986998340024779491456732749666725252230737074643088047193877996184851793936477832724333869292314594288803779191542793994841623626026553436161572696427607875117520845164835911416698856780015094868674138755563384393734896055892961228672122998571163240963702117390906396316906748950564976332337667093145206842656845604142998496056264174805327905472366085899404568957751095726015302235313382503756559704938406860484626062330901555119815804545505484883207105958088784162581838306550938261023819735633978538458305297244503891609262832195271698607613298075514917701324229468523943823593219163964086298869255722232443488849443442628424740221115359726881732599442546904275318925377008085515580246493168951937848616044644118209935744623624271616276262305254654015053628994346531415450596463651057594015382902629038901445710242247801188711068585478047076586480151538079230998446549083910419901221344512574676672219725215040579363464323854500895904087885582047182246535168721557348922819370573516543545508908699823227599048239272822650805199114410222911037485233483204173652373533416862794151953978364540716101767743575088201849958957442347211517818925947070299628433556950289527788929403981788652138501911360194078332995139932271229953718762534428976961139274099825326828790187107522050715414793177405681389180530297249127428192881614651697244027662484234756712148243341608664653186163536803340270206817999965825384773243901333821207288374623618031059562520855103891414577081738719714608943327278008546124100387337579818573753508718667696745991355832512425426488910736010010036527053325555848786877598075998733096270730746191496759453980985696421358690085799153611849042624104347358436205318760515132703214917864156948061276995752745731847299517857936936559953986442625143942493055220796383592104652319048966849522832212074478123061496348502050370249464254859422960604093209413273565358119942350289418115000066095592004937189539405344604683828274570622407000698953354038477407941474315611417923579058570088402662965099480871797591751859605248638415241698832958954090337152918635388964110990474798515327843376529332467878788597754151046394597728583145088674800765862996911410916854184439894225201501048824459297242908314703300467865439981280924285603490236021079405865103864146028315864353817656246127437350871714243328566387218634815435134931753124442344354494742597821797288663395899794188780975546549478198915107335646921720877250855304748992837830206536357723456725409477311649555745886535710640280939960063754045427356749816483381104997424252832951868834139212830144732804207346953205771988959233314079107169084620738364267116122634869127461608110627403032440353321710424653684684683425753638355947604131868278165937084332224214828343110849820658190883890761977034255585380042963646564730896778397296197638665731201034204172368155635119100846399209816375718900396364527156036618801242276734624453474728198298447363141967473196645198437796723894257567634546259175316098457931049005493747928473560276704888711327264001858572791956746456281783558215670572933262665822150079145860841535220279328904515676098217576121794415738623252837736461931476109114318193723871722599601314576699628097419179064732531078373367195913193944592299172839474949319841009984613119633788445286443367079087426130955008892296049824886361557317568075733463414374007085676882579747729668007777309439409252679984947203437549484574054268534652542603575545795164942626684071079025233112910932946482659696918506320752129163046402642054532893748770698549412145752516817973036196891643780033252473387398540686171950439166600171106465738883664122982135247152311959708654655688115776675659386476038444074212002917306738271155732564462419773416323349323525461184441758428392968888559188685295383801802796048508988274139249704039472177894250572449014479916488213960377577182647029277469521913344821385822065216273135175881943624266419195543099690189349743565066484808428682714790790022180018941730345970600757270158207096288742832576565400786554314243747045810605008348751460844479352036810362781132387973581278654694877268902415488937933816567010494691926714919498704029632595496852518819004408732357589071124574859002951050172356441026333950563201825967901413500336728996952670983931116104280495079405748513425753465193619298782634384182403158925856072706642133579996080415045239062439697281281051068798205355549435447629420208977741686077728109699721878440276507920611303296717154982664187385888399076899983987292958463419322340573839882780688553308942981725897808221550905838788899814193980555606584540421909065109595722299453350452311120596106532948483041994325923148560919922871698373428683382387108919231634501622733456480352232021722291299965679624790865317763510282832328176448386680289658144224494698198411865829527770865200620832594632308928751641706741600425267504955300726971224868601383713075714504499499296978811104186039496092415147992093487803808211096431348951887156949965334219603013060195874201924819879564996495573473502766317525342564322765641860684956616403518097710628641705014557244288831811116185196292642864852651683519265602619487747907285512539453253672039623523622557055000824045213091997303736289772248940533272966678291748201293390591785380544119113508668300446847893345835137199366254716404948765314375699924763729365032636940136560606860528978490586660228877466826752909601096850157602756276673310462337497316756356550999823800445704366343920410942414358569379708558291963719348425344265979996337722026689508423142122809774517245392579353108448479795797185940549788028271668174317738699270365393556545267269250069223838517628696349464452923949755862331561940479457251963355110699927212605512457889805420301293881122082088677631309468491718259309953416645620048763885971787194615508141045824476065835817021789182400894224958098261120699222878162131255829283592757891798036812326014586349179197427835206241078088167607468275070494701445317764617964837203012351974136971496153915141425195900957446012636121924490596024056025354662143702670104741826651204698254912446746983208318188375468444645457803932557427292888623963145629995929144843620299970376505066801801065563848315189391762310896341224859132653129937066478729265413849087599228410014015039501763677895647965318998542163303466886795641331743673873253009179634693823008474076455869281669932851302124942929786846706419413485631340381666681821888816581557739034965091416234686851732210911939989203622038604359026313253254800770747703630178422261882173225701033761507160038214038475245883058792911854520470613922311362509307247275753747286719907213238891905986743651522511891513871061591708815716549416652819887596301502476022919335400398160385566377265399859428696216388574798422555956975374304149704234448370132593444728282947729858954712576925100345420798891952170139023745240667783464278288436815216022775365266998644723011678612732081651769893266707308313242142489068900193689984474816537657316896891879233696127322804244587026952221040224338443531473367383550975784605669595792403274992025688742740877353660430077051124782929831466916241197030759360918014447700696465015087187781041950473592599173789295867711235677555553141874910102088919228898853065835309506358398513580299644008038537410277160542719488091073442010249951476277442635782004260074867581780438211295449502766576470968566647114743092680030964534363573326974329019045821654762081443550122249091017544630907197574220943418290890232213588090695813084598680191522097896195562396786217049876814035295371369594477022735420132188818394339803089824384809488166082088605576657136186364010847969800404872087976421858694326018682846812538515309049675244239775421912434770726439637914297759353353503473445246728997831616698893859952282306098204751589910820714616921306610030629130415923638146591535220631463238436524995578168055975248388002561960690027256176009436643649115027992019114542888490508575605211775049891516950664546009161367847121912821931206953057050935473550747234851978838113790215316087518873518818629592439221456247785907350385364422287201650674193248745564433312414530089582715845913723341296321742875890874330942078895834854319399760189967222833361971929652740632643908030224049604034762970228706886721288862984299743534531983446408559544577631663089447736695478484644708632846658354562387677441958946866412527422768919523149240171722444175485761412617368349769428313445794368739850973026686469862161893905890519304537645912801204031885828605005348277878707011183642518153869079112587172928489058920999987434159980644806098341639360568015415255558053445792673050185626146798359325400805638406757963877663674149949758263642827071445052777031131933689472605996454282398221969202644849047480236317897604529801614720998205246149467845379060016615478613758842806590896929274859344853346719137724620229778047818307433556310377167677045980954103288224678968688419998039955891200321304493301783281142333392765380361673182092061591463421780756202610111592473170860172683288531406868976824991305075289907934877337455791596938761201603833704003877437640855052434976111350551856576346229348799782726640868939613998925416541356279332780178919203043564139753166651419128669282744178497652509003998922985985440637044008317880279580124148691947357265990152692289839352875490815568062550834079989701933195487140922518723827622590115173480907925402347197001552972480520822733885104819565500627583143972934435697934048840259257003231660748532716787069693986347326893417670240706323146897689862639530653568487785306365978667119316002715784590310334446578171115713393457388883964775261514862314274284251413437581687831596069238654502625821591053569732133813569323489260967925891446934894050134038379454589828879546136993534875044844703909499456208376661782785710950594118069127057371880346741293309628167683690597144047831483072350966535894951313829677827555640176413531987267343562799347682770425792345454239778920018314715489941251421500880615618534444542512041262029862662910654316321039868292552109253090625660135318948879767517167464961139535176434332914368899977078145189852853413633870697870151015319175246529153520729046286386514840786402836446910897641151499980603501565377158233267251480104225646771446049974411690382713229497425267814347161646071705780260155511702393814220015444268023347602689720389448716680052536083405616768466081797373981591019177722167998646158279036276304783791483496834720950976816868701515899312922569965630695629420730871148234948111309979866639727025378642953771384522459680986422718731373600179041499705410883194914846466484375272764574588042982208682915973867665801790758953291544097860503409875068956568833193739720820076834477870643240620190619473224872897935861175422134845076325565239469588569213831360031321342058563388761832062587779538009664743214729996148276658096039198259202964541444819726058183839770557822882824636691380767533859117707718018523885019762822491679891742043710215996764928031266432124919257951691742271851643868128121499842294683308675506303885513372622686256046959072688343526634189892380877686323967602590365007031904608454042468986228972524972038075016288867030211968540596726925673389043542940246155133209437186810245238721756881505809074054566035313122647364603513288070549950003175364522480492153364578086651922047008953025962509028057560846679549132661718174940800664599387379674380711507924607495106574106335765547756247116376720890183736079119760425472975370571319945342228127763728942363823693623469266490346036819454277791105016308118749342234172921865547558899690398051953123872893667462230340690277062476844376828126495008171941344020748548176314134742590608028396193718023234325876465095499909636289720000389277386961922580284736892426076054395148903841373119484009541406381519824068850140541272716749266127787120941918032544326009838041087998990512345026418453872713253541780767527391627474585091819896112128205990173436374278999494059322219182775264597081212879306186609947317716830665748603820374750093634305252785396764079902188845839304427287896383246697316662415520671436581787726858630847736562429494754888287514625515980242866339817178110008743915527278122481944712410943496056633339332428507708866655607848426232128560908434002482213561407318166902050402955093635106550092221748881586651175368703544974692699297722324711206872662994449863232721399307658253209307673411122107003284518357373446227121783810817959534068576039412837347533670849166741262227799680308064965380908971669523047214564784487680773024958007497129501182315669954391335310563915829562898204441616861991105661869242775256756284053411481169879264369265660562634897131070175448573378534294026002062103196994276609478940982694870334269343490783406156961236140002905812571779576295127696239715688640494666340098985803768967387506830987654185026114080780087084049709291100463533669502356411720827841572601915952359033176096427463304484627343370174803026146525025711445107716854432234044977524897128578534470477762477416128467686330835750058630276181781323134515226059233840675658474974218563075098648667132451176562746869159366551221947439439428731329328812512112523081119545818607681608912002212325413462644896934494689698745469426082672886639842017049207786282661082156089009711049609573838804668881311218205251790952368431610051529529887377663761102940292060623655299677656408128589231461601099181175607362843258779665368045097761344045941934280180625214585078703234912199498776455262014738326043588991338574981497569433020351045796642224725748408403467886580040598581537061771933240670677373728055623023081540811031605806332996563107065072351129739861463079367322997572781347990090886850650663620209194602963026919696364776632186933387698037980003822968456439349666710811404911074607529893256929443006046217823200013344079735169644515216163088928348157459726686719956013964613379839565921378119965515330928876773682670733477777012409641490707655691723246401825673477057220482763573054579247197387873878145860590462306776539159081367928211953366236677420824093322772573324822993541469942780332202773136585972509262386215598461282480106012693541767169789808872781052335600130361940787587867247487425437992969111576462785703621480442996433086760975408612113143997290589362178784218186008293907150981108336213242079280686630125333799919087015013132403457727401303542126257691518732363411357916152073223393356581837377817577262574083946269241133908590935876041951584002401062234978244458108360427657471376221186308370131633770641327116232247807824292744752072762509659807530941835438121246698784889726726755622533687795913850804250080236881810921775316118359430362975961983489867246364798151886948109088629963663145210760350410554976428781525383713080474514053781649241761519518320218214616158528936256015083281899591735745188942615373108008458178221506238586187166488596177547201735329363807529957430672026952877314922552367359488039475304259131760340301630463888842625969277253318673211664485863824236276012560426940856616927790484693062157449611681213337815978988189211663065613413134946823411447711149881235529810912790829699376203035387001393619528724809986275976731463738943470130169946146625555908145015686965448452379368609508721757428618871567540485371832114481540479434585011716947906923460854470861963878274453756021994839219597315823040368622882680111845999417042180834474939985985384685235732689414520670724531422810685442543589010771760361714344123969513268544188192034237895949262135386275984283094787999722865692955914126710557319574567167787789099538015665593322360580367805346588913955295318326196968709792677115203289398024653642578523950195291613584102827261933565357939404612928895209758691102586012392507494513934222426581764199333001446878746070870376415329856124954290477001838600949615704997543544514906094260333127837539590676642982810976998153063372254594559231380442774564332039867581809827002896601566426369208115629431303997931796075661873459988768467493472742931296133494698163424568653236083893315163231041728507544102741487212941859710990822864081941521572966966631128255673715641123122554111077610801489161164857941236444045740020472098920971858536013288466848053754728832330651775132558609314595733740809998087296922535159563766775280070745724374539931316654131686497830167289129654979730309819676976023774079992041427692555107569318387998263975337505672318577317834042310637921222694459596219376530995013151190892374468991710025560014837695050037530234858393933374660313571427719416702305378543999874952357661516636253301191123852461679696054422929992819644492208196027041490069780710826220311731670350862255195657424573950423520823109058518744305674545452141897849686939237369279885052370138811678142800453090566424671876140476437835334441833923004264015664963276431201356165627491503205976119349577826818416068130823369132269319260346846290091592605776320192986023345853522478061237846067128417181668408459420581037430501492674056136912010904668293393060199424806701268578714312179921558646069278437215436779684479475863289116618105802024897007852107452128358981689857162036603809375300679703398237952535337644848335969179986698732501813657320452685672764354144819520330884345243386709997935043861204073859237206614419633627395365232667345938385646982165517500646565675639072530978006931096219510583492748800760694084237837871405538821346157108209735429290428074646661021012500884306233464883414814392226831625906642215112808956090099754718924242715590023303756951128045661218840277664997330037232618268368951674907749350081674119815827485076019542992544246476028373574947239198920575674648486650782565268989955357847729755485103063497313833040592298455566762135018554475872074362925795626700442959358311457270052045246260134538546424148134634570394462971625177804151160647261301182351274115205142448600944090778677656010115348960678268404768079049739223639449061437059195751490130462824238867726172481595700033570578994274338134417152876735611947425990799401720506551731287533718370370314620218837811720050475592658900798859509942022880296941472865770986419656611178421809402100364424376532956064193846080434414180172940715931473837666872569848051780524410915308202204204034922011382250309410186979072553340226869676055448092793469605107508172641092469835955680461177438863880598783935377469787267886758157241613498095349736712533018909912576729078467942456027030605794211089229085168386948371716437630646566448767944017698114297025253926732956274977170026775700589775266683924609405146880787714697466521451962099160547159527540550307946030767204922679542621717040746198334474026365299930088866831913175202513021484790232638818127947045846571225616235577934856996255684648306602299507701853023233263261036919669531271416402893202661599119458976166920963059277689009913119345036239842540210428276904819302345050085652334100576323422959677027499017560835194690440227153753364802861188170592402502971680422645165368443046099635445797418457162780280731221034683946579002437696801326633582308786715879670365584926719591931289394420082988120353191170741457753211134441702101896623328408628314079522469101450852399456606982930531079400033302377656950400534525562401002858991608416975159442957679935720918123066178851511858298585647845518893198905963047247766608583407850909735072888731222523994421312704519664752785716772427435228339680575331300298781672253024626099378135575374081362776181273486054562966387347731478239816679408675257210442754607758257244098367960651869373086429762373600733099250835704471482060371938342639339446357871009523746285341590734994948149105584684481715319021675828278051681676081907209232853803697375124466516641174209857428418535450976746701238663019245719943356608371320738675120636693952576772793671906500704983319992685097545777921040785067717261231567044219286459166818770070032464449461619564696819852588323464249572657478372992686843150315204573079578481930680281925868007909761977576669217559592381101269781894001960474457005941971885523051291812426427905773591494576966205337664641350968885621703480142294053750731832743613110195173946483680115070769224956865782025404923516706526754753402961123714090207784032313667228729521449682512769644998617636070458275076926668092109980952908616675721844895493071452013796963729810904772635108184994059362710780747686949604093162084516607488571373185193121005587007960103850552528564768477689886083970345857060692120602043083661632985138948120955540380703552367502902978135661359422802772608523149160859135643920318966916208799993616534783594975288589399926404002378182922717043567913038616840466206640649916869495702537462663606189349738604889934436503105874648620472689534854094784375585413493887722609281769365571858765205323265378887794415571901141084337878500053935518080621021303336840150777130113115167987210990233635359408681084714267414135820020241855012153564771355623438886803887329884161852979873371473250810190998346245760515907393148213231466422197429209701420656874659269241025489289145823535555099138285320809247096828008698423350041885585463314754268139436048005899645824548463446503609859908339844159956492975304575522403204232388636550280429114901833936531419095044513551374244069913814659926689443595698810206193586320555000807875937799012175327290389638231432986976794977299411106361000947925794681458991203856082582996425943928800041150445910240897430730704232305843975908649849332768993385503788629182870311697588874096902271128678755194529368759467273763472008701411398317381452152038805633344895825553515541481600656812699273777436153058160199909494605429236775957070839693998565135251459710782761714401824570301487481284335344565453787676872797695308064246036196945086474025453640436732839028324893385913763359022685957014565088638191909469977177323025280493394447196699456856323553731441690865335083170999363279014454804940093130272577594041345047382207037140228845813682476100944644466895381023345537161508240713912340771824736114646886867808214536038769461670122364270818260346292136045997400193459841580091724584757383639649503738924096104688004779439397140292033189113394074755876226878859314762780244306983332492733169932099715837661858621074460858041908054283658173746822956948509033281793523271156817028617245145938379402524269664334247601453541393022593943300726559292850992651719338621828072964670462494250492587623051879406870428284377484685763572822057736694209435924909119522247933994170493508589250382435517315818689155817370463605634178112670684358885013719553214707054925654290416335959052646185567549137552261475799673989287763482252748810189150444668220330227641919647116811899480260541114637617105010152952011919547511067615481854343186004900255237757595091440017713778030429864807993522328630268853953172493990695254555930972857652903897146072052165244043379426413015161275512208154318748643911942030036264661505201088607203916063193941753593636877801784788293785008162869568244551705128912726017042450697573582386143313010215579942145116607266762100139583629482738463255125824047037026501308432816685348505885728764293958914801486132774353753126963321540528830411342955410128214400730371327364915852011276907372547193276881638887474833488306310531691018598433323523540003053329757857605736192805157976570208001566428636651776064800678091938191833762125340289312825447440990369700008411270430721329630433924508917375438245663015859935524577393965960491888659167008159148159497861054835851521025617643898145316260233905407940104761035894649244891565287390971019562934871163672006053926932315737045747656953305392173123087325379589513506752275300474479760588644697766622492225482044920734234193207025625920364736668489153858445375042915478657482814752884554356060996957345126437438629101771393872975590670599469381049614382991787338362789652371289707653825892144167570189159064104891537751616716625413688709996585839109691235090226791868493547166493349040325530765579386619948655031888769263620524682674387762285651576128366886524782731128912688499550945945704843113882361248953693072507970421569024079323542893474204166311720632726170291540088134449863101125178060643944206211753429446290213478104335914824172160367929377184845808305785172157287867358137161704136006974656700737033430964375548209391039710256484144498672878356860688070856012710853162054056426723436056163468448315222368388626533813609525585723360665223481096289481634248913697114708049400911284884833743241045717541736609379958839464259098347918738650778497495674255987255490858066885298559793484343045472488989174356217400604029645853419424425633868105706798396291413955052103885220379469480175004586267488467538815202214460764225371383633887471658482499945382661923878093104371978884357568225599564273206832452180955925334065763258115868097818839502691420934913717812533726244590691806125319902741557419067820668297751876242747354664995938150011472445964785413876905976008372204154496135554053310162783902909288648454243311201165783828406689255031334879086330149604293251152368084264575930515871455077849993423695865978436271326603756700832753605796352266509456247974944742525279637276519002054162349916904549118090489904993493438134983279528806541918470396905175014183385421215135672250607373925503815108087113065685463636950387222850329518199522520845761321680413436053026510135948536091452603078130198934481216553616862506540393127529838388892743978291499550204801443735463632981700446124452968403444760881715143419780079125590067497414247241572895286462925527885557645671657869232115932069692399227142929647000178502221747030501765629925455799013187863811326994106542363164906186986260745492023383662160434750930533284639625634388197818041653151723164537394540308340312837400208755709606512814992049429977951813605713762655477707926644588871304131413695671163060720300193779286605098043047475424855520028739162928673445888189927905435067674917756749971743983077355549948096736812040078123948685474698815138510833746030024705655723698639083290497112783203945276207849393399806726255857972637707353570852124305642529228987386428805442035489820035848838478482955907989373323964039852405809297921349199440252933411270599428388291945588150454641805198941339568910812410989296843245259576641862673498297008379282300079373434577075247721739897120223199484390697025183425597716445017004902295434829311918450665685794878220528406280357020793588637555758974705095667922890333096866289923025031341791856361810740977000222094354626618595327826671135558170367951171759565697138148001111691891167508245951156600865476731645438239331708485958472377762830860547758417780160243097205667935485448743587053282782195338441104457569297747312487599620006614343008973103887621375176285637898678248321486610442322729944681879603460644577087340669648402141586126609876503227584317759703139554635477078006996857126877320584269141528499887333829964801521751344422167137784780749490272180364110566338966148924199982797247872276001193060613854120235696505967278828488168618501128248318494378772511338902004205803695379772721600928459367905070204928648855215804389336542739582293802883204281218188476793866587588334768128126174897027844035925807130651713873751712025376284156493870210953994381682735967688559512198856342704041531406566756988785002272308146661592141576536966794365059304441569120506209245482696704306600095438741585842568718856246713874356441605361423021741169402204723430889391757223077382125744262370547931839040041948589575240813109060659956029924678133269999926170678100557558406339680165117506725576124286806458798362484307578162158001713468853959932877139399996578943961952694075681288465348588348107460163158894020189879681284137523921866175274882391731599802198113321428214864054544010180671953127916990568569162981636038904654352901218327014660727789986209161605347691118934638908419071162532192443932225029215459256397549970969534456206036544494540638730280221966633402242946634718584203602256911042384155199357935507967703762394018891835703833244584713119116900410495194826889419687164798108664626759909468737811864751097835070480985496702876795677413713785483377561318209860076744296412031441134490245328115705017179063889254911101339200149652289392955879094174109158706350480638257515341102081512546092703604783466511417652151244080986593972997374364565871267900985188734961478973142376090520752229897667380872820785121111344289544446911202643889043839712950546164404883515071556325053485666781544249236097398607421094756150675886488083736131357970500686051385452618712406154947315184639290473358575951159451024181891607655630260220413226485662885977097370817859639761587230693991988344947768311995252290541462983023360253737915927593755248316368747860118580687909222750256819223371139680392569768127376736296395706007141195604185597688905981922500723603579118131502170797535499336909903804459975441172236869709944979440872241270867011960427222525287104737018644001694151366141554758320682676521416451930354811000062565164850007665662231548458077159436761727252412661345048463690934975972124065791834845920746284128403299120573366948097083355561530514965944222355340495135996593834969609442541993160571236262063867391228346623517549876043611804430182310770697935155987850412255457243069029199379656198524105821440218682803019264545503754758168080830505641007237747296849101882238065646465832472945355325221232582660511225163017131618222246039431132297597552681534831415496919125040726415848668908082860474691926944973075797309728818778713274468996360651813414982414847658038217859223620735401845430866503634424025321234148681124096501888981290579744818045585998654522193243541631680765782989366424173359813031500804913251403659639617315569454483478835014260945313569327241208048796202369466727881351177976453661851207277122881060360711454602434339936759819294363743225464121637089007439660486953097751304978161319585009581529586611294078693796191913811684557746700608083215635882600591780952634524669729791475500216960505905041791303789227034954285483524436502258341931746783705898682466977170053692449149941119586772280006940090884641629475988665539435702151048597957411616610423380917022642567019035568230380386190809336977538462059318927492861546145295815697088857682678980862049928878952525727766755273868707732313923748562329215787306165211855755106652322010336777253638730594163194651398423185277897307567177378158550406624115747646661444328164473816155362325908428716717341624095758776414400359580233266341984611391129643109551926746030704247714827559282573179285950282493629784858470623113555812158921127536827275009592968460181438679461656452005273938275756922879197063403063828399956672960745823106489868928940835519897835760613315929836255314190781760500194271771035605788678207713293464912821560700035497279437684134951099103186984617896956144620410769580006415334193198670014401331139895198253565168090415762287098378994549788418426702743439230603290605800624526107812457724163733986415773226258347518127829924366211096209346693833204862891100870603366840770693500392015880524487760375466920997795454849387174433602490864754442222736953432776664788506381746598759461606382686973169492385689001885523431018467124396194211712560383084161667783030760967557074476498267688984118395254984698038886481505154485182561050322681677411004263206105112472424950353928008102640934494948082040423089537856668994100269924321051223507771988286126594211646684221118771497780185772568951361721599033837658716488173377491243038752749098896192485945401909746489196014853306449314476809251145861262426239391371611462593775523047687963517485578535730773325897208016132156224467025980348929229872156578546312962031602844181069313901148431024357732951127094377054044818942674625711712191709984502282518270739381926463101334756388713789756804655826834642238195029905227487758251789109595940141619290405755391868594965090306136248362993458278452334083270517353226986675674173432376735591036542802269411333097627718667368653058712149908745032751049089636040222162825588200582604402952031474266218000781445594818286644406414102780332654092033160250192761308372989088016459507002827439754085636483313093882760172103625571079580162808779592347198445787666609003454560803028101881699972962918744389787579805018893634265379371083129830941337600310523500740327500786541419681325845101341320994814894747764994228069909533752456007640881848958664963450729957682205196260449816109484930661606178351969262596050309778930401424697164656590680528793063949648259088878126815214514200430612173476746515856895342819149937043836266649692134414403411144194564897040846400128039181247110222761871931474685651922908126326172233344960471221698987138939040348979505197678133310977864217294939185243415499809205277715377855435162214754502888269384651186171759535831863738673906627590487904276954916362518813122176406240891282526977035947607573115599303773653480187368853069635071606462449819000171396460652592180592946374186069492262386661074387719728114984240765514857933185888763834665603518789852886334434514822697696616373374799772127861217547507036132982443228283265628561734408722258768407883224886964152485667051541085312764962596788528423636969258887730027008757450445129063363458393377692306365619632609792719274693480598577636747966679125617161547199276762376507735557030143350362904143081044385692637141540444009771013450941722637471250378603003852636659265849998140376420114668284912551276790425591541651873621860000748592104564502134520562375643828816785334260774705182332871680961763635988960153369699681959251441433779469622934538782860261201728695669264891681144662471143785475743432509646306045529961984259285448953991885936612995356356940251746037336213507247937059302516656123668951342843642224714397321937439916120386656100442319281188206197055940160630743298786058706786883571168996603553452987020784147401902767019503101690653010393508355784441709164652324514920978907830665809718452740033688210387271481123592827587059723621121354273185332631292291239288314302103581632173933313486850972102678447203388761282784843458446573126515316138622759418065723110510111160669851661658795085635838441769418139025277140511849527412299587974635722628752182672357689674588147707659055196772364896445628876284895852003836749026761451218170553889480209703598993869489535847497291842427057462126085065426801349462393124801108881696363028712640724731661668549575350991573782870188868497163003687529726656316391002473220102527644695327116207670014586736667786774088722504358898296316693186145369162988057855839838105604043100951203469441345485766216679679838824695646998615467110718360475140162922990260476327101042991005578482424947304601487310044817712190153029941346131900569598918228312159858200286915376685599975493676499845680426305088616194683097918123910819838314576251660835982202817812289747223862369296855240735772993375844501427055121920928069194264163420520145570781404961941242546802108297094185830560033989356758509157354503955604705853897452385973515301233784108089444334540436348591846650923929235343024804767600728857971420042096022050722462281680798902955116293864093145278889334623407512979753036993001738832136019075177141610169520948933373611945371572127166285859209746354166819560672054097199615901116395021077484142161534650369967509047664375057559172265704482696569090545763163308185302072152110391246129740238034848251349326395496475121100693161949463176683553800849769917416307963072126646946623340835918735824220034921774524158718905022525794293862917821438539901193638262815806436047332273710222617069536796422980621730926915697047138541476792399982595292655903415995392061690309650143418708816820334989361787243442163454054799398605302373202852044705625325015306888824365246403804147866646762038316308392854813374095040046113187818788843644617964903525099970902371534648358276586209886510923197039056916596279150349583199583344612488486225291795841262217929606264710905211617068723149372960393095864424346058507881120048527293932269244787757233780452976321165738475847469534142330609918198538207204060468142002499047832033207736697464873807122132750823261881640078645178286380517986078152212262659336502194311570069118810494318642335290213890831017908379650268903071069105904893770672826672581412943173522326261123686363358979398039875377413156577148072014440722243878899688784777837731408830823757577602842273200874911326349331601073105083911848025495582666102037305226940069473103443781862688665784934436917575161177926048430951761842193021972593009810870872708347272845860830078912841805459594207416293456059320107338446930367067955200188970015911472838329860246479994598034167566053413250613485849715093567531416423749761854671358310146549886230017410113586065885333111031644372325910090598414645905049212619081273788522401212637185950942613962468532144245818867441841435341400324835307956493503632600319804721826234480874240776408021934524155915388659463167528312629545189282968136172093705782973208028237364249702136779317458468534153686615888832046048526460264892593079321817409818133306311575464061849396656270899130333418975129698775230382312996490632647267203722040949528726821681662350947485763307930285173226161338588677755448531155800177906817777480985789444558534638647130206931840817821818069240878817408299801612092571984859006718741646382452598060339112546373783607958838129847168993342774449487391301335671757372087682149507996818851705099149379167908494397116010025114069050921185535304862479006184215770661237210891120657791126548812154406704348828212884141866672473817761391500306857082922718084355106742546681016320362884562928937052881364342794082539402007277835123917032133560233027083580851474402175986754446393978363907574053405435338609355427227533458550577941578989835673180874820072851286458641519650385552255362380454152219590830377709779612581997313561113702461860390344639553804402013495368798342265998836905526496369364027183952322774892540967888824577739282348116511193879890411053472031818519631182955532622821335282092499758115704077206574130497856559245470649566222932883479870396779301875914732002715660372041671409161224992846290032339239988406879724116234546031327002312978659134797665997875866494084206539970285538488500941310948069012160268638266420001722809442372472769648688818118163659067141137716204857311335686188065383535176936273879534188033627537348409165418258745444753916068072252010531709952899092423798856350620579129349691667428170787425731320360532967345520227688818782975575501566247346445878884800431868638223628936260930359930291884616607908042707446091234900141421844502800825745276760464711701044534658390467955544469439137797067594552686186305556691360098198624291075004978953748482274976100701646496936328612118129141477214032491118078591309197848053678637731987165453530092236378081881583102618449745542736259420351146307834831131120636634650990957866823444601975120179217388541557153277963418060791322734049020027018440519374690685139058912883735515640098704237531811569420311987136808279736027381648324379886721215362008352654333237215086215448474357057845194227010759949145002518674719285836378570550285500585150933794744108175208007934982755212137652863696812627312616459036412666419982854209472894930813863687467480098045054197969166395201392968820229804026745112105704405386518961000510028094572642040137559291335174405245995111948892451543592577603948845455757877574931271198894096381391487088225890935786367847681039225692232051119610031287692635808489073607467918773053261445347681399017767008521587267970632557436591374451553387462119178952704026024427607579631160043350129899308238638914432368384984552028422891823365303377961340023180883642318699036750245936204788971309804903488351032540287633292957058624750108766034664701111543840675703181832053039858452320195237960023178242043876482532965500227055443985958977110035832796727071672411929289343467600268486962673055149742498405156690747319264178800724530882596498304153946388233483762667678225527218955776008096580012254372352063729980335259037891891959947513530316818700431578554630799777790915705700153082540646153189333424775297470005154795220411078194195870954911672746114643623974124361316267802631204316183694632135297791243555026251899736664011442804814237921544478826289034046304225706037138875505924837767317734802148215564116482133910491466626199474847733189429894313762406440388187160466552988250771893265407782608523436296421191270114526147008553975380887502808587757376582874883245413536809393304346030024579175370138212982529358557532115262860484915918969936198568705170279903025874580597843151062066741893586792423619286575347982613642220677005706395499785719926535864552764405913116779809446772093758478712385094968043212310461198508715346730975692397355901087295056542287736996910093685470900404898501496680648668482500765822240623287241974398733299287303805582219653066402467923331833254135196594999905092989595408621463052287768515165841311424272391830741424663635412534732623373499211349628238951336793973307407015705796937460642684124866282763266178475457255261807258705331644892237892468306420532162901555587798564702237921286914307365586692187705514350953097941176368552459792786734460148988126583960374582456322560649998767987073258582327789559164941365796000249555430240069718199532890886878094245417727229677967212891857995567920012708696921800699606131592696379180319498263989815151498035815450621876961611845675480184772986098280963626705769021494015608261619991283019932469580153148091423632669347964881598402193322895256158785838578445561929781768339159085169086184879364743296939088502059206824379376627846070916984314645602545432190563078744236898184806474822932365268955172660946477750737920089507139067473985177994497643689550246131375257536867047685465354540378687841768907200986651892653919692391810592500962476613783301945772194554720091392743664972147935374012278875327359345544317928491484260196384273053455795848466656705801872553981852412044648066728875610176733977205997845380652370444239507681497440093998440688292214012175824682982806415910197322874605243135915400262736722746312094130464019672846550621977644755828308576740898824656692078039288963810521119241799645035354215466171103934256403243620460210486889704897690899755217498275952559307904052704764424923752928166971373775265020424241070280251485923961220623260945055342989258131110919182427543460024472302249104526833182980166708953459501287690173945834121258833300669025247682077734998384465292837331887803505182958392622706689350299243657543061557552249297891251502065472876362060470954224204842797447947781366821123625821854125976545400635988821168444959868638125783679503428983104375255358663166962250301739697898864413512261219072525537667072511646992760474629486588571260980209242893426681674288822056221564153531962679241092229548234444065077758442039818315950380110734688939488933118798874074510064256211747469702459191388018626322994522431989684233115699762402656186118403800977520112808061687665442963128508635034603434133505200886068642568093957771660870701550094287927623840091186254510123563561903718088116235081377676661174457888107005236246442417610072972459993018041624719062750024270404926236557551396536943603494715151153441385124222343659276822656579017733343680214814220422263712615788957797725989911724285514158019720169692297308208379969706689853457898061293394436484788443931058103419495463908577795189932915578440881503722745260500131344394654914858449056066349051855593928197297899888783382354169217351362618856171160793535616941941299102389867607872272307815563153460663564863162129510238514977813173733593639602993843448602503186850924695922088874740047820770604676008231557857173337031377103232824665105643381899908680966936810335754463409703525294383206753096395142737721191052171400577581126914938416145053778356430345955539041568947851684532677864068915915230812775969307896692702549250758684058309649545706079160301439101370125073232052236295846462288109061387997025144469618653398640289537396749528912325094724544409021376705903795489214604719453472268240351291439577918454896479569394542920214662563500292966446838751649920403907493853293208153305603526478951256689904574482739169167841324596740011843729655540086313288486784005719208562002643209303218743143302146346727111342968749091751865319669451440843090848208565115099244790169649745799760400267459212935024654929209519720584139945449961220980848155140997249973489933207351408726021722709387107071954727073852988309579018941315283409774613721370429135517972165561790212035208645421876352657018523760892727863277775596824092867100839678660829197196800684454728973118064169093144864214760110969167754151409443223078906415766188844504483935919272799783647244956688324781644703516633307132737388817865116009797786382630009928725518351204688477640314802109576821259146730670200288372050504563322693064050671539022367581624756661448061502869939988956387612185706919753698199877713698450556425309255242393146860862575833883230052717241838098915719217601663882530203707498112625814729057800656581662902495582351976352616283896756291996650184046622165911635031848225581232220081760432048920278776150672215866911882741465858518143151502439586938978227758406202925063852325768610597914595465675025973446436924130904598559621670850652479549688676761394849397632023520611796419062773851600427228918149043459681194009656468159201846298918129030756067079325328240184950147559239003500316172718096986447783799373679049159607383185495474710227342750828544616358088972090448012909050359215531261246123580550911494618500568295977129116284931703463398736596468972661659410622105444705858957726152913466923548136166021612459936218379822651005549618184374160891708822052545083212993682829022407163608324652089430516632943650366238638990186645194641601295963210359911869291640763975534898165076853314177558382015589938877829802523297398329776425562673604501519204795194949085026885094297483210076971377689771490021053841007768507537470727710749148231360326535381673808136717106196486190770734948294239541501909559381406897320117579185751324842631602108622635252086052223054474355271849274380959741566351980526321836081665596828381173287550762763034761811489702051870067307339213346276937980876864320828167577713732663753611829655575057409959577003105893800735436040224961951074605881056709141914942077110453341130161439033085342365810660409049532877549352532431483280985765224705003382664099705412488822401627927007194738997819250377392132097798589870343089903122573113084848325831447460736039785668113522884938838226400068076889321166153987399895480384004143613008974901155413150285035321087844288836017806964961291526977678955020485921148828152994549794326716914525357615728069260730478562098545059032631897589901626238103460183779199039056456708824250637673748724605063033013142456056485239855739292472084629063403854984974106905647892862893272073275130834077619869090098089361106149047996172866464163731797259233059806066668522417841098301738459247712257848356126982087123811820010668766135210776896532538225177747062598664147871738209284393871625719722635177362938486375572748545406778541720592191412541025822083828935415685727676546823078703476419227274374684988903055705824483734925132494279118195737695929649133453678383376715021440977311554250701149862477596812945354130824340574695999301535273098275843135134157641328536915922016785932332480905450381957854965441464495565381694426006179776839298052059845205121884868067045710881622463339193149345161028357595358027254151564369659355965041018644141341099271508071803135565245592458960924483384127765778972027294080484426719648389920096962851834146361361021106968653690460317071863588761847573315259262781058212203883593583149968839886266670026603502375012315172529076107591877817815553000790989430671836333108424226258179731349195615978515459774355636626886037862367323962396053168409074259246848262520282676310412662791851275461009475826190737067224763347191544554482314331433949024645127329853683279221797693441193237014934087320901112768159858031197796712592506424732737896948653776600590314088621204551010475729731369359098052864504083869248184843175971758490978466184382606501940522285984071844269502334327946068281829302948211010469983035985530451461445448352733235729485100428691301820635747967587464148870167351347495666755190646180200685996527872830675253132297003776332362565499934190910265876600984722804134443138589356114332519716127814149993903550115870273901731936196317208362278538492233583964766862034448028074169451212854499224225142701355566486165408739567736879402827271309568496742408921214044949058953050490251005452265110612660537045393830894681084141113231169940046294655008449017529821503791638417384061495406668377415422755502073091822604054831340443349046202639000891605196224106619541124046576788374926115674328610477960019779067227096318433249589055668517110563588253850060226183845710514082228149168316354960126565017461440399724044893271061806482037669036511449513037032888058684447547329649468660691261914467176149605090726280157861840599413329416033126438179142137544746274205425513046551572142241653120968033477046629415167803329159002335752914370081053723712041655608788912578711938597833306057534086738175830316218502680150114716123825107124545464049744889273055202588846381759695437409062585339498449283148353831821193186549468341611931249030802732020865573028006129046486774610159035659823127178777915420152921740361564270985300247084210053536405043716897535515083575953948635146357900725760156372764132227146040468715185338563551979038334282175845636815692751814562401043329302838151695124498791593485800737306903648892171766568925104416400347591950509956055315859734759205846292473437185404136048345229975153087203047038311553784450782869142448019412958981663413935007411880513238186172090287177338629219908809030508334251854933421189178504754871272652331311214120499736640256604201619330315195483834899905140881519090969868588776255483913023054216484018101334059948601972791768103324345437802442459946115493951285318190665096898158478210596659072693615858424214194301363875891091981012148692008319342336298574975376617124999137260806247095211419156914056794095666555639429421047223120126954220939479595015070236880653171446280898328478535688513247924760205700533592609495778559202055033636045097857050660288711882533988919133397973599326462730547925188388803997476388940836347435089770910427439502255128642739770092029181263026099462602981512069506145071760906980986845629790532923136771815634070417075056061959602831461524472886753912689680557540765199900887516142725117486262658438032667722210796115941040296235931794743565833732905985879176994914583456435476970006566090365346124283908825950941505558674235779036333374916349389524007734313128288000659131510098197271343736097473469998957971389227386920495918982766862032170772939203747316184464659464961164104921602293557646199863565959187125419889278706310123789060614305470932847622801621737314777711969221739305454666534102024015959646271564025912203652017800726841057055125223326508551460379821636829985818923658825750737960757945691147542616744479759308573970162228720595216827261065759660987345777541609604714676421515198856178122300367425437234798031894701182166720229677979424494589128797384991759058614845374084181590276534686292793429896788234670115094132815655128001570483358343143578160724866445362748785185254700035781018691172356646252039630189097646465705911747878038838880237306271655950363613155910959534326879041830469845408974350640000872435206921467117155826623508070145250590071332018007554967498667516170810654632227644179070504347260109008960590738983016857724401186411828470963351427010787537293921426157797078895060598560785564613917715254424829013998042477737292582952969306217461815632641626646131496503687701626422624582908429209963923696603092441911026299205914324207413759624002839038826212080102902958888518056349075539845064447618925191686838250301152257516070792885638982248676869649356566857024165711232089986774558777455442796195646474979919535316004541540603973945645293879157782895104715705224450361750807738036413096477847211897552210712327640164540069848119444265774527283182841352556656423782542144889390068999240743106635826984034161271757910813357966264638244712636476687314023373337003377104518219564375221126014722208103346936337966272542371685777772507169870486997631794059670085247252430982524863623891384314339777690790309281583315168982741153387981619401408770604771358754305853412369183310242327794367123084999130741830341751393390355545319875542217240002064967700811826732156957320545809547930453912546621846029714277211274397316669982977853771526605911548709161924045677916749608404113095375274220381601141033917422065121194207848791893573475067135012617086661912600885410268315689479542466419390814131945661194102252043524248225718418743170979388346833324213347194094967743107321180442420992413438621998509415355032551635119555274042319881354904289962040698192560083027746454191218906010212571941329373724866566293038184207966171649081988565936429004065169562081872954979746788812654429914596180009476485088676716245532995761385968104502964849188735464167954879181193227592102070277796823128965974621056905726597898307162698242879702146263091295039251305354292028234577591124800678309063107467774370454855212998381756882093434501677639901518406828678989349688431841992216680806369882662950064897898918210777816268483081654602597142753999597655856634337724161302164621787397170637353365884432013628616926989480102078692694562295356055320478674881630124055608801157201086372219814795203852910730942262952109561457928791354004779153056507621980067824953207463933237823729320104754115120854987977562075422126185304025150957749762201278666596353332872549141826447028282855855352682540224683546243609680376525887433911594289843214654772732908727833080814319540403731428811805939315237011074284836887866990186894477150355756985452101263537346936905831275753463031271635157581395004555266442331981728164963798117265611174714492290816298812733263853530895837691444406414177758918095111873955779385602208901635315920803308085970474061869086403637707423375191280851488343834046636002597039912501640029401563602716949436251620945353491327278959543399204922280745782815076872205156030348987749885364637344293435741114050457125641180853458446788287683445512728988800320242901711346407725937293580241456201128366048343977636712388729451348049520393554366078480469872713454421457085355514900850769455483565339553107173369098357577442064804892217100494600703429734749080597128806771196093888201578552860276300523710364429606974825541988280398051301094760790312452052834024955432709104009468865623720792988749411570034097906535121572991442147952245538081928336185099330979134994401529613994801887085612294505100022911226545700413525996249204173551613109241455553583086304548237673028519328140388560570280667471110712846440278793463217884760799058891359934531146229267963474735312873614806275147841458569526290038625736041383925916024753401245696728716837689938249871489437434940013968837938078481670071458753245124718251215807050961794601077248305250703331991557869757986825093970504566248830079459266582669806517795828484489383250914357753755370804365301285029005863368244020548105185473764446026404819653920530405867272792094980147504700755827283738645623163113765337643577201781725853787892703563710860099347872376522224222204409372565205171815155815498374657792526007872793303828361963852704535558210668910982491888680769514978754761196639253277760467599012246809667035440095328176311894466989764621141891454914436216661178601839633073284050221486761667311334543550535182041086960716924021442841431622932484635505374232409613371600869320611017664489007724704408615910397593023131086892372171094745315391089797851881570229601437501059158213119461815497331697796705198010459890163061766581876628664801684134129418095468093114480144024735251938662344488308714441424533233321923427974637630579218907714216484635526352204116869842028771032997746082865028892702527716665684637861886348302032423805270767278926595165431355128349618162352241011159719615010884132758026875902552931790860941248207726491891683665899782029387072922623905296903523907587433434970087720151767899670627973503677235380533977306645519249430020735173918746919047742725671667121944059989446768759839629398756327578136123201208925190923606715378232598308164477514004844612735396269956783642256142735445552852324775136520263869849450345345453490668388742762506970678909264374602421138653781679738578072278193859391962640802146043152356479125700891384458009626989493103313289864546848920174704219452527290137425396044308223472065053095868175837341186458626739878225805459268654165722121343364002794797662005570792023161965012864718180691805695302371975467336550309930829128392979027103550186146283125483737764194035112019382848128881323322995656048739024261198233495699454937980954002938861299183434205884385621584453388242567899855994903097248233208116465383389684255546413956121440128485227013565225662491284717399827850351510872440384240633096648073028375937005219940657577531820001512674180708858109804684776796838395846662062224844627276064862586359523159086175826093436988268744518566225868865496950825041514518790724178484124922812673760355446762638951157455001356447000715701067869632166095345460821997699179359775640480160533965576113021405035405152178584186012186190198668638337605702354549517639625751712791453166877627462701745164375708537631738998885487350242708623907759330877830007184474439845389018858430239115933113479595236936512701876215098480948869561744274007092085572838117770862122759702676502648527897885251912521534318739788753129989673804560918304631614180311658060746386531340748262172878072032134284788379560360941100088703679563404989052509365149858564247858734021959343633149618497095179518783883396172087879469899248468998479499341021134460576028766704949459915730007491654478878647909245535670243320972613762883130727153083945270384593712024076207551318117108037569437459087244081375305266679842903187376963446493503528829241208488533979349911441643217748179433950633586626687251523327320340979103194998554653733105777866346259936606196632945741834328388290715547864934753497405587733900349937804306567794513744084262389388459322006662592137232693003207875594714396916410362417058845038935380950727573944441092118477146928391495222607488391974552056322466237623867947183179252340683115882379827165683977170951990742851512179915627549838124747693686864843267092283327659642900773467695843729916558695537963272280228217904783887557128326361025580233570770382893833250715822063752254603289726187629025755715092560411318129996131545494997286972535638796336864845847362113967376385115527376325996262125336941335482082085487582488933345619813693845255427534861668297807895304832413526675231603011752194700126167567607187499989107885969614552939251758753657174589118892813375420526960360543268104126674366966425532057051556990255134930427464939859590007250288326408533144804223914526455094279008915468529827634243249161934887831689570257642178875865214087337399530611839832308163244185709044797931224227523457223365849699231672360235180943014134582050371794337358110992769344827090184981052427747743877181597487655620184426526510235050483283703810861067041319991183630110762210656871594360359203480979091461302284127866467801367010579955355662564370616831692261228355483744884019598915126371507087431723494208010493627867924909581592597558555437534134054845968931782358255229798317926225757236759946571184311062763801309851488537660557987542416641371803142930566438478664619015072517004555536241435447335309225381902672902094217701993741644170520039971569460387522062635229242710581145345684347252734826610810546969205915790407367044215003657652385963240648208686326757061769211710099872833190670962387940916821943622422394641948257659814432706061449946292891657449774870659119967780371608183663118368982412046345885579041586672694963734148204242856756872583429418735501303186618909560144311149372581759644623470214633420337719692039634944250543111116695977299249930473554893102385330218552928790188171177442648830423562085823828635541005942461615971414391023038385742694150261672481737442705969415363634193603615070286108934909530788002711304363873423755168018317069549038645397548740775704459551197212652256701872647333031957113633343709622769942021459167178870578886851602706610744503641778403479947673199881888482944815887819737578516288870972009308163282339096520094452346915877705916585671616049675726454679549693713058838942360634288640930649643129197357518762912680362853102921338699146157153100967597215088270218249147230668918051264092712545867749413880221941304777371169953065902815823059068360754702400996919113428499938639977487668062560544939944325529611344337843097838880568010345499134739875988034528593972240766001766986175294069791358121221232708240161177987917083193957956535239344725872096171888042587047683211662880186127458210096225390127218504590020786893982561004051706224584768433602906581392587335163395627512050172382557854373872536905631989543656899372715916568673746397139903875287925484793175602791729425705253602384944608577555197090517995611701538742869577056747731900182076372368819990512347691353558555962758608825783818311584589524102191644800615697601791679628847993256142641910381682832168081079948678118680032974069900818242624869501905996709375872578891865491772195489791916725004502622822724032398574667932775440827724716000960266605673657118770960315071193443625456148578726999461565291894018210308347979666474584634771604749980098178648069512467972401020743370630198409041013891694754174867698629516463510853533383773720757374946565802474990226206976861665659624840963655607983514020286098770575122568652866213872615957862454116795826377796859556825749475188140663606025119176682525580033084604190318436114493709556984000165930031613708104792660618212685074294529100038828082111026702894032281797653294315358476778219282692006232829512646087598225161453635585565359717481337235706950561126473043184160819451714477181994636166428234083401381115281926295697779753722722159664029733094897723435719656703823385124179609866390875031724091814335706374660775079936076052829524819006699696026995755668017494165771149267819708071570978359585167706577984711449113704818022230140882779847426273388919542971771479965609336025880663942534909557932342509651555180228223365665592683275815236855303365416679609430486299795880689340791094268663793487040359708783377238296266281007624709877016193123374287877630244854660515214731923426441231253379801272990080701815613678229820515916345102898514803150032729594938329014244558083387498257193414818119283418034679339020725095744942847580537329009543667264700841332178351756705180245212928944668262451572044308950726240445334468202347198708164895762125603415588616297390443878417994968050950741839179675072217382410980644338895895337844067653356942227865058666496614997228036258179142486787252724980041610008676551603067742398991526579004005324755943726902210382823229765679826550382776822088014324829705728405953445632959682717603310964389981767895405076241841256160992598805342691136760554976349301401555782214616621708359207444620754224619703472093986120794881771587999678187154458806845670485740573236140957576630448231496002709813930846865211737487305056822883323869369928570899492492651501498849026522116293607462638356600361093284286805259684475759618382227625896452051326328956348492917335286510644696649003839589471809003343075058859715748879235463555165245601538153486460708007669863916687509017306851173396776525215657259809080492913959785561718028195523836300300831716238989187414681177153908918751465838654942501455419018021680006470347528631629592014577785003021528283530300536267298570559009167429737621473258400482832585140949024880680565508232476720331259500675951503468687565078287669626110795989991998641338831762051095860366241505177515962584223105927140855095305537119168182663312734886303138962795910317349422181422861923194909050660267485962869104825956804776179164234133793862096611106826956702051369066430568224763613437702965386636506527343250312771677514673698874199119286047328456916028085775043651687743909552963526553170324632859791686234293508688777709204619839539223717143844658837604457623705688084350030645885804162121482899071858384180319043970428154372390495503507039734108740135590656430634723670667554259779120908969260333183498461424956648871061936210806721171421301629292610578314167588831644456932930004936106957737949926298586968260241889819817775160296260074502425708550220114354260099828138136616335919364641983655692448991741046448315769306905058400689435206276903075527370082835126035359349954636116914253083412840606437856919497058591241731377930422260587166913274293765267348611435702309252504932323236990695379214312862464540833016054943304821165697927727146809004613887415944928698650162827905523910060872487118628160801515250887011779293175633675314017388932808212663096779646843248970294464616923587548432359944578936908305942542615889783128937143127580991244475745338202125052788716146786899471951070261735250578648039263379900750094990327496495603338934444565121313422441460244142231065917806315549227557235275857636040363849468519042717699589593294614551369775115264155415524530156325303346033639335241750946355702341180822697463012196047845949605835031197175256143647285381306723652497040774518933833943383962849860005642423323877182774501592850813589641319401380007867236151288765205088356429672042527678522537220558467310324417609355417676065396085689988476644397718046704663073996931258678464067296858649061692691222140552165703891934441408938910227896827065856479750269991314385536227513537882193640796614726792796847103757931885155969968896799601044248073300342135652173701495657795886267426678421373733209685607132566887115129871367331870462196702324754314867796049346226611956361860363291158059170768146125449491335991768379182053586492113505164320557996453983335970499159149025621955755503615542265570557180445637717546734421250753390183126519003196326219056259143813795825777635676219937500329941498517315699442252339119272026581699255617113338755065869207693963541651177133676275604488460000103496100334313969695366810910447966112952616079035698822779817546219621175253652281274069193058024961851776140256145693557103104414643705557214474584350836889458166703160327452466470842129678812028899772955101729725081285096308664997784203365147382612472570133685182845796276512318889909141322688249508952349018634942681642359376020175863279371221936036715784109968752205425436011289564197954633482305592487371154648556578688663421531442514852409327100600253261897570703080245446442757680688312939542852022054112307154587680266260563572688023140321272264827292327105328856861378815964746266996895858848228437369454575306320565691263379992973063459288571905157345123888404560215715288185436562041882470338738484948052019993635127649606241149162916296163313659073308702435301138003656215729166032771245784258419240732931707797881297660421688523449316642704857672407683133275017201783181528868577131392361272233989224718965704285784795577241505689165964907178030792818590424916919009859639682675714507694214998268871172581612734225343212130155718658420308143612725153964504137066392713769576957325798936870986540428427132688037139875900490343025456577482147964978236672282430997006951398407342903731494196449583358310063568646739686799288813635656414476063947841925352957219313366511015087232875501763207832120729418673780082547876768093657615342483857071513061528135296816096310195506934455879021467356648047264516980370124106949332628938653020784489530268667261039145100392491514782524465972432964162634497010598487554394935076006701958665187315296670550668866461114282085732164947156297764147598996840062405279860214423737232754436439399364135645034952168473926956512578273521513525490030137520906032063162732714995863406132316247300010474719493685802478302339643003403499710680995097426760213332499167482927405873118233717808310147031979364841374635374789690719212127741816874612228803885798780553545042921333958673486143926114930046194434800028957693271537863166513400483644186015238240515351835978527894429422794399287280954007516043981583188355995680839262471332677517368976745465514059821224231268509108082229416209602262092804990538119845009538737088199837767897253303981855713347707503340758459488049265398912689487390903460977694023129400015001950965677069942477285565278595853843793807688162793289375705989198384405950007841706860440533391993882517213251007605379333241982559792983666582290937919803267204900534452173625895709865174022179447686867100835379190851747387884969945982657733699284956133345812960128894892165962983268031859024553783126579908463649021489612639955046485754675111233983460063260459662898153200963465185674679844818539373687385655445187946323855323611804866921351211264493552222025868571693503929504238787900380759034467820213277571106539421250103801135837003846204046426277696159852974991093877651093123071351545694216493004416224355975322418507882750437413621531628546952024698069409934490546815995262385720136805337800760907954952848155515566481163210210629513695614882893392551536278824426807391570464271102859463375729177103155391011128779947386781096150797682774038273429628280027199291867235934542796605646746017163327673499847687723315056320510591151457226140606783631554616891723542473947047281876619688991120766315233267604416949282046477661810780174890397411250421756535130460814679167687873043468357715181409045077019155783738297420484224364929136468587743257493025267169224906492867621841306464665000670093062881126756425851095901556570454452305661079407259545870334529936727486250782501692864433936058110911035864860712561473384145304450801370972101598408213154591642197717518650897735858855676996244315302375093639709813909490332054771284602699768288173235489716415067212391856045158520129071285062162153794474916939068195171233950944774867184703626711237476885939479357005793793096280448594735594325467064653918673826911888313057459315442457434468262464722624144588705363768465116554203312162804541210186997799702584023377274665218046116704431165768578095267252800393443901797586262361895436794458681397156564183067637335422478069887758964456455041477656650533582093505038616072644143104962778384555212932426864491186974818452502464141979760630285696467069909666956254941101501680589340616668173810943577806598702710540978942892406745339798682959083348723643154496224080481033491464023293909492018584922790924692238086797447183148261603710023889780656062734885538681221315966754946599714000220653936201771241547521055778515114698244617735727069488828642813498772329252816833176288764139415601476303306582427378147599782764108932646721539480542526976627201375687893488818323674096464625450368576420176120818494649227629322086201962558618144537453608897012535859797739462649274217095460868932477757978347584201194236697208424644462845906386385221530226042338523720848349105570657408878049339670841461092240899170805114258780575504438211233228203756125346035481659569717029840059611702978420157083474540340890392521064668402973020370235531340101851399132529361558372344254888920505143301782612661210970356135428854606103133231091141266771813149239015616749213599252492939129132926016404276487819818468755592149143406939999548783097788229500763629424826166046876058539897286649878869154653687366127388575345856136669620276153115177634838041698215997471003175099270547301475381203379026797657014966417702478896247465800422155209464463757265449704866592429422334298480606362538419270950978682732631309808498634482341363368720423800884533269374177693999597069280806268708692258321939184845742818435585329584583204229897265264456300152625324220588125451162342148315057785102200841399656822874167680715153212164136803691520130252370898165234675518231176225675323519596830269225427139585113247836278858657307384391239310620854741086805735630618022945652541441226235691905762890515066558057431753386365102532741707774333440929343549303470736227255456284584155256892154665091145748518011416810195926916274857886371500730765975383606436900950795562809518073502499415012738989245610219963278099344999928059067712177608176699299335396348450869806091520878175186997142068086004507832616720015285244487693720963063739154006864599342633854768475368534621454900406425490038778719781762585481917074351516834220336067939585839567310130653925573800771237941286653232104298825181095991645519761482332933945531900310606087364051670919228639531547063641111966055631549086838643063709749538269900622450036100339134340752416995570021973836965543410378348705285532982349563809736011468444298576005716355097863260308090061767286077605222874798143193751962301482344375649992723280507277802270192099129514825270546989801410910897871744497295925530648727445385925321428193300536064326503295027930655199212350507914286770575107893025917807258279468061726127447951776547343231560775074064530569721455191318268704758345220005933892939857078661124013410363432272617151856508257634237574042883036544087371444548324824886268317826208564269922108145183183641390672405178295241663599330607372600726696384508386523031252695414460751255432474321504780481044406871479391454974512771341035527845315025152288330457473283448319113498881029419162606190421234044480647088486179087817068636994012050230966249932970204671925556841932029195011420178058353009720380666634517189960246646253426712245353589400562273758672564721853799670884338649360609431320799323255733303046880779305799096860245830347789626202484743479992537039886126901786161032934523489343991693839975380238485006697965387149641082766896276479484768690299237242718478222909948846376051418976833101324027942932422973478862705838372981347707751450370584805035229067357655777003100023355982724708722544334919987326399384169524470186403911513152362771446465553646944929093123333526530921573692232452291996260363290194416998817457137244144715570580427023771890826192986058241967646624642833295545004545711570287274660156347676606684281581167316078991378852568823164328352864270226751729958915654150173818615742169800954408936659353966948137937968417295572130219804905338867376901531959177159382703228184551579774521140341898322323715656534474152806754511086168653594642343341518564694964887565852258736238598651735871492156837861871438758657771983894688134287096162141116406700762197073015590812829466778034670821960414558597770553639358991402741585082426881318541439805969880001381334773281084907620955563263407444552299799184587702770000309248595202874067541830992372945401082260545463691356895279073797921160356162211997432631808673169331210726991400664125814811908435802015126493333074501791949893723216322652184841030455127547110255775662593133688260031781382186807504786091717644717271230425717150291841188838096810682440159016077587162608616897570328855920593629867356163066383051044823791333442658859337874593326474711827540728990960667264885175138177261892712285353943839781360126757507290693346099479425080664188493417186158574989082321164208396112292304650432226081088813485224561417092893436153185977648409168685247763683738956561360481839916487637699797714678724277047073403976216596923540396734382682018784325428701588955716176152796748691273121963802598730065544956585282641172291851383715173028155640008775046739124586294819170231915597909315578683014264977501170800236995123515897930601222561351133108539974671160053551257753309543445063746971763694873105351072347062214251542745370763846756103036422052019255649045988222009455857004960474416619860724307498808374440920460240246673875138180446824758494436377673406579767166980447038722434702234163064517222786746486454695579526803162232878207112861984663951669831099361054578810801058726096257018265253122622569424961402583791606814582927730672292964844591721689035615371970449733590517670268415824744046343457486978728160427155284473774463012570646926028538265663162885779635297126445989501198288165821572998422972980336611204339779722923793958853284781308148966723672318661436412488568490117256598622492516205740614357516930946923249833864323291593682449721813264383395272702640156975287000539501124567994322895486923204028860148835784839019114837124961404378377202307940905740681340028406810933145082914921709807304977539653906540904667413289853580575314212169722689655084397979674796823607561432238833907533706290169710856083935470225092264865634504933367582578948922806919125582067218482089753864127149204347746925422293833819894059466013743282527807728075502326664847128593820907953840211770359335495016037222910642642397693654121210010636923493987832981888872827818939894899852380714811647902845649269765761068729549979058109312402769203368598782806023987641774577640462474884239504474265624298752937143207434776075555465077883337141939251007805988551403612431800501978081802550692301706950385416544423876626178751288890986512354303369934693236966137292462368665709489281575305770073259279976091471170631805517574646638527941492871045599399923022019450380632586283714996900242367778640532107737372099614892372407869127668976314704702540361355864850003203415673682761731981479295658100085343006052607954817656556768487097180916560656474258114908082547281739127618566847689144658979130373874660557403926840338132936590610600457880874005943017360572985746155517522568256912529071138788060594428741636897275999454879628397200314790699690323153762813122064805961015134501620545594545251539785669569919383481659734671292740492463378326652230162193137710060914234645001521208012128115077931987582643951665344028824654187534985947325940836226848026918518358975461899697625709374541856237580748001109808386094984482574814622977862951201731973403605639669033286965607761457786270256149524047450330536422858776869595098836459481452599325711699717884404812890677909753752262119028134786479727691298078958491078096682167181344843476902091536991994266649908974500220246252245083627306815408801127662526853768926854852844753126521379146917103249179248147557187285183772874919795691595664481898022005086115430980451903178404185870780277723839130599397537752356859051636603774798322073200569909540461623885877158632184177333535931213748150873042023740440887749291913315673898249031215682111982191438114001834904337629169468677224018824562723199558970831972565348263574320809229301548953010073430117098404633072642145086662246126728717610800614278935488552932055662377319179642672916916187988882353192023689196131472485758634403239585978888605952335621895592628339518566815678827278587815112827719673701490005729121827481326109693741165245712845743281923067389599256668234301214042862544672275408056804209969541858860292478350035646355027755956822978003807296074628961947753531650944286127220869255610697445050336624318847730653692211949392374102691123387362419297941644207453936579724928646344173153962236717004745302195749024109213697565111789968159054762272036834518755288666269038778541691905167623010443452769680021711116019125508629579184348511520899676117848936607514521757093447666334705993615820341307254565861807396798477910054070345053700991657444388928526745750218608019483693240786541356672840258284538843178028064508066928904970047705458202682193663999897714955514004048152600616067839940379662772828395620483498866237223324086418075393115667153813098478545427422201078096929491192660056687301635574960494250649690804432722991029834507525169256312321259511627953759060956868680408793303247008804227294645746101669121861125606865583106728085451850434061720062223021688812611839024970411918493032030086176711698664277219849075838061108710091254485897213678830568018658867128554176765214216041889491441943642189698597601533302582302968013560715741856819814440669719573398593739621797149022112790948739961824692286992044174347836828753422327264025553529312796851391765469076037420602974187312960019917888047661848800749326494622334439603345731676838458269344734066505766128460062966617804124381328240356197943598976424825189062960695339948420196616441359341008758311102137072706622508071760008585854960444869072151894202347663244354356978404910108734490579164084053583274634200162362439836729874549823695955841414448814245198378622462874235899153754627464464051744069136762578738009945328066915248281319219939205611012545785079897495492993247740956819592740105201839335162402595439215596470730648142194808862470550017579956148908571844206643271384137995241830904152998795054428210052848157421201097717561277859220137088298665501088726836741968940904468975682540790891598761213820403862522393410787781012470182677803872769321542483977661623471161425861733491592328076039937675715803033944938281148758996482689293972313787858912446331497912761535254654056907616844975769725834743213258130093364726902664606256237360590558797490809094989736425363971523211441534428889539039929773512469149099802854885564016817491165717317883338557123008802350984527132825876449719812520641183322505755834125516137813815289512250358251231450175135824613132506553046263802900234681767822034721426460625464373415272039970208167870410268412867921626335731628069159210904991228234398494948605437346874511704608591963356088521070934175918899881428963875078265640946492509244077324393063445932405609427897742988812524169488815956355696728683302016024549204166236392446167330930475183055901966666630359101559761982895121250512842022181542385427774248735068261419807114700021666343544714533165848111829003816159220021036875572389196029254519504676689707139501082079891002317233380720447139245896518130474356460429754029921763531649059221774155471923890682449853313274591211169529235360667962864625416208461989118149689721375051107141473145659041037702161740864583209882109771767916844042067465472839330012526524081767651005968762841330973461939913115409475136368544261883783747949308960279949351700368193407245976439406905471232512819708936926533762087095278656450663495250480540924056472730709454320771538072193430814589167998475792689370400544360754950451109121085313622572285044597798454173873669438980467399577413935066465152631505600679768187734217564025198051833902723153453161533595325087959482074387951722606929844074974054690801502784214277432300129940369661475411088727559162587034840168029387672261786685615846150312294099344046838967425212609805490215145137763201628969866909352396070144762586378787546793104250786199883989613147122830001113248435418275931482680113958213626794814543750875329360272814735751770999008132148072934257072021321132056123626031985178563129670214618170628689743515884586100002493370700875163634327111693168514116103220185768611486347775287423723135462166719298085595280244229386800091211544769652046442852692996211855944591304508685408289264069935446941012278122721914843754046105242032399438001529310795264685784085635390058849968496168040789901150220796386851489781324841751491349465699882725484643685393259531876555095221302033305997897916803933162425723735773066338211500560936380750193978104917067202245491185317029422042388786759620107886258275541841084446612184431578033485847674177856965148730637437452562299336952166929344976240940023724328150576664025771879773630516476722930871220598306699340279077739573165010644962933863753996570803214524403458992555555592585022427402335976407487743807516353163019722707907737131885908686813900517875275621752229606918428546490119096577155397170282007723833124625379313442222503819910464962350907615474695470092352507153539179081530519045926627182285182732791508322933024853425443139779736554069742868427263656962971198096927378922174749602590715886920989718478692129784654246461986068450644252638467061435068402317472518412280382382440805414735456248873806408058915272227181240536939544045587642384574753926681114571488021370474379724635845613822202530178942418212579499087276396399329445615349990772789762023558217201727348992501096186097791437302577848234127835647763477761768946652456342258765875705946169746365941691157671447893459450921067719078385856599104549862049619936338840615853580497936290620561472196218442172501586286415396325942513945136188522642035575627466235884913024588731520448058010530883241374666818139648836965283233206561881140548853362077206151081179694569072528640017553125789171604432980161427362300355372704034609110993015599259101281106288261290241270486144822605197735066907674032356259002154826444324310251189101752747692870194848269913593210956290496622636291322182406013293591371269904824898596887025871340681209383985223477434951346134000642391011750346940430556814702976190883885284922978554714766421192716929739991081534477611348800446863427487294106074466446028422895949176668190583588727531803526084266088993737009861584163701530942139134887159090058791991843249300885646347918440541665260754845161225027894374588434585781080612589393416984945632205139181251973043312804118105577205463557570266669374866508162672281148860848231961426670224480680593808576410391584989797632130212061137688900122113074169009276559847960611120694204138496972958920265772029187095530411668203145729903198341572757118951651534935418349203880211937802224093383351285169396846745339336720496838290206540317033860863394653091793501409063610603971485049168468595773342483168265928241572891458024736355558748363127813592947420280621698007234237124079467790424531595438157326812057492378192917336019258901642382326513812469364755780184935231965818706799797017183407152699328558716416839967491130504655241339667805977297506489157762336936732487863091397868357655995899468685899889894542933719589832178809226902033953541440963621500164113751678489721425123561600225865850191329083813414162196723728937417599792364085474144355480344527169620231613488251835810251240112490260720500698017041871363253149019836461238756624943086210582427965569846100189764051258080348177988533040772305454799784210756097651821572717526284943457531163216318375606200735116014408180610943701350478508181277972675399643440912700177114832013636107858607348678402242122811131859642630436059675290789721713712547570545638990466909242633142029042984441781402124062338530051693208739567838522877726193597691297729412372574672854284947726530191086767833690440330874207873558478905753039005212430992524034770650414158963679660013923993020864086772537258457983453119585343859974251133813684105341035050035131249226301400426287319114888188276311566277188111820380965803566504915854157041968987869260456141687723500112742731780418987843073001434112218873518709691374073302599390625415902813155840839314057882054172490274663086147172185465054333372838673639417960076243747338032658901658926274976821681004571214343747383311978216872697718555515768389608254244999523773108962490493242943363888058253477496347097128915653378313664839286246753711406100234105558046372914710794068536566625438734959797460111897124718662191558144785578672019266399460749934557577433775807878502716803585661403272860396446984037664912894764507841122514883989797894145879950443280998657364142037651388694491278200633830475817729203635468216328803181334326843441306586904502843581008740654367418250427321038881064525770468793482381355965348043315947900995986007474813694141631874918021958031805668938269213585954834278372455558295683351487049774454995775911028589146681644917640931260560247895492034101897271116034297308678474801777124768074101381459451846792070369421524956477003384726650794433706552925313351921327295815701028335539670303013416136287631767812805390036619295399157181856695251058923619047972034498973727020264821501179899748481461261236705952199680111345041700739973715094020664144107640495699879964345555222751097864883035060754031446214657255441657189106984491015109489972722605341748335106107622274030711602341683225503029233188370084452617509177570570577263398935637587560929429646090863397509543018206065550668608944536494641280411055031960127126954915097816313120239175369606943154323593961591330426204379867842591223720233987503313367694909287396184167849883349170421259685005249831234496364987154389198090595989826510750806954586477241040257458367897417404174734819646875378192685732357794433401159966101933067197840409875885224561406632813840473673544724279544567622077679661426057820891341160096227888013305692595909012407822308405171664734595646422415461464006878318959836682245836261700078330032761293168590965098902742287836461635978654776373499035098732608538983022354093741884946034044079779796262741076732419604137212319311761628481256000425080714868013106113252146108076000600240391634396439586224761512589839498092946906086811014980247614679270661158617459057930682077154660376826162430004686628826621426190214834638982408467057159886187131671693309886865253098121911611817496220640844473136733668015567685535671723801061157264877995081982632876380084164935165160139994021044791876693431223178068167308106952251533571976194145253528558141206086398796896319325090325320156792051118399439381409568947257485899417805121435838290612098079478053914654623586248354224107528921111697627361074019291816359084789910729676371047309212147245451848198247913757873617732109620409104344451025301786554020309587700415727507174596772598891085771368848317001210029708518976764145161468565604007358658555304364750410010057601513096862990113107542865820886815726637002412279941721719320529127963661523075489608831445996453215497250618628457614570542924254999395169483117793529443623576114274759494538794257740207846370600558818351602644033731283000029594706994095764741598032469562727639340091553682497979201587416990077308320808255878429584373748265171323671674731885624735234937544862160546440997884998535306884649565619224863074199025054567283593194794308763357348928019516077291447112880060289958752752487949893617366578739994227064302249658069080379724459724808600895364533294132882675243296647760575417637549908627199292661891615709331864216060297872024536538923540904845542238454970168972126689970359621987174661346823908978159854259845126897964814648484795223975196521171126744303813848570048731179491823506371369578101466282350451176756824785974325949065630041140491865850643880520801790397421562997201169855350540389043866058647013816621578384732638251459468243363973534079842870662834043549187966631549628924638494978565251692252289140543877626295528293940577503269357954639735607891997961070192321262263587863519407012079125290324010450811743128791974324679143856466988706175531682348091026248961468823001377004314885397942422887595903558188955459465993240616455964094562959620757655125875805172240100267692188936960212256157433381564117499426488430360983292600915692535783913384796750668462993945554808799929067737037411578116542271176328982024921481012579947921556420144847918064696554658250909863927363554397749962395405879409768748128652880910474321310822707882927068160969955252283805570530210114379399142527007581146746535754901030776673106352777923496406482341913256344945308278094866606847782137030866994940336039245889004562714219443133883629413321866370559715567983590428181681102962014174179766128624167422744319493940218707949752826088313644233408639186766342680804746907898351139669367268198795946775523958597827680854517685815473962511668714616912564973202268075420209642365580125588344466384890628811456345384899706927025123081894235462205545142556527789363847853127869323896586766075959351287967017017525454221741225528710401470823538969094967961897628101846978660530369816541725619783886364383414477886626165168709095861442795500018587573157295915777374908927303609009690438346686480951381247066128326623258972007384039643341120550715762598276611892142293426620459405446620145217074607003911053874502320131466599171101348151005402518734032511161050457665193822818706299404792730924629437246767357224042280763925883397324028558547556596231179944133506780110489434895385047057706515828031892313786396750626719823723156072200489492786446222462500245921723579968687867720774852770980547110518782550419795432222848928421931876442419101529182942342157300133118785719043322054179638556141055625809890112019637472217027630979506890057180945454129923433363175771733626417277776230461509674760531769992369020661191598022777761809975856139740914467282931205457806523080930452541518402364816573853210629999160120126930816298627417961256391145771003394467759069382680092773031082952996780487487789398415152881884068988452944086353918853164050759082968665389408734347998284182700487967245891648313523228475797185591495894363663312245543980901638197894321394747089047896161764841429701371013248395670987819024434036157305854691734766301805252793560176171437222281165735711310597333689419357001956212860811006825185157027645007357214864393683963584022875295124530829623374122241835354074968304002470698540202561859536149633558265742819442455202504258029763908009019609376603244241948773684989139210328978355722768534534348059677402101477917314435945606118557968336938827121152023964889214138403430908858623868246294647105792040893507301005859379167519834363530625839687573085378888957004478425572589301873696698804830086550049169909898747214483820749523062298148542969968304991663762084800219149307049334697752660500695514629220816550445875387169392943213202113254960203552792729150442490187048652270089606546689357681445974355772586610463865370319184118326546835999275595202644419241829486324038312917585981952010561922078377193038456302154074841303897658392229739207445248240907461117605936407298822155666051218360341136632417205187443005052254248869060880319062444288015650723228219363154851157607481732339636875715003756442009372629461366249748734675034497438435871131025093095568365830838780328706675580661369361497327235566420935009234428601760031928515086339690471325605219545287470253227207254196094579715373240317083153440232644133738826709127033802972095610519159143860745998083369813828446594747573899548517949674709747078657779474870402801290183807473323855924126981897704401517045065995168911522209349162636223681140545795461812641284565065129251333706246774067768386806617432794554500176147461839801889199836389314106248136109144128614126926249387423258131055711435371446213332705547038242688215870287122284086937259828708908119667042455805410924671002051075664265641846606954520477289430886899936048771442880067589586698740683566407969435125673867922450823926372871108400782869627633305732664286418605434796524965490481803400501365413975203240837549481580229914577651529815283544239593823049663384530326348474159438339338178180698181811450088825168742994119346841447199422086900722240725581356160536522551693479933123609922854947924128181974149281131083617963024804388639688545671628443936966172705970542915469710427890748682798072681233436383939521063834669257815289493448093776497923156020433034490756711867777365057725556644878339968788892633639236567290250491090190773294413606988208838118987303618709559649109588841732040638918915654851801237996980151234475784709520430722176725679847781199654410066942221808544901469702350446896299766941235648228393580710138009620466406007365464287884032024966016519612247940309096961592650830598879953240963854123792191540554130566885881471972586486680756055044538590184268948833875839771192993087085270236432912878737059355808854182884650866720910809792737541457051323920415231275038908298639704010774921906181858324419371398357520198512454176317630636807550044112662857917406420912994264281477580371469486708000615784802823801755561159070773773525248663091526277530210636475807553926645563537420565960096236912344483194005468059883283765296956264293749384836926361176553594567469527771508911666756587712780753171438127104600528184396055273282537246380391204600795901123954161425537066168774090790559539187018406510364801292310281093232703367309109747596998470587952184367796385303651774742152464727619201109444521561044222429919705031852634804666575020934260045991833536954008156033436364124927006094400810315607022278043389192431935043553531589820696811395165279112396482729395527062625301782002013737594668746343408454967643646552155518326206029706858248685998773145651702454250215601593487015555966266303974255991771019581960502103847672854536259854170120124134909749743609556083640391430118625932912434402894612504779200298271284405106575302975297866654695215138016563901139870696616140231367640556233866498626275253220852403881108491332287069691175097942321417216961591048617442293992979340138698587306576766371892051190111662086772062584898695169921342114472847721074840550928091469829597584862210218987191778639173625409502829501287571882064416340285182289396708937775613311584177682904360898305061642910269714044426421782453748732460406955917422722721939470010305985304179879502332009026974818281937561742502113938400525786602289248611715599412901803428796113120514150667676126784356075330717054481744484698859801215177527975762232148294220579459704103845838439242797998852124812601709538303693988520507798859507238861198670640143497901513433572506492197479041226756438245169601111398938787300992394432761261178548292194124482538410063513126876325396431024593189284605347310336673912237610676461502369801750724481565080153837006989363250961572514905649102138392492823716167037231762899135620887859528056780481002271624262902339846832885187562817336225180392998487641855288018632719989414693625654800122149026981615038542697571360197706489966580593303013091912350212978074426425247534323794140758289472609305343852409205093112266321337440206196307570021521319067045106390226131465559144818626319411883135904467845758052935644287834820477968993529872552204488635333319774601239298980572426568613925351300349460210759405662571462527967432083389805825291874910043001345546633214264490168754805606612073028823711403377499698375952669030503508856480814437392036472592881768256420557244332509605380273790169315452636788267460624690212725249343191285369685767619231764839431858304287076497443864754791221337937137086650592406409124014369179169234572344069620462774194837982890644175743369522503299675206630839473537290684755829383838276812646493458010034634782506603239059509763752174367657337819890466650221167345644102183819689056146744670276652143822531620533415601899211911177408546930506002687012996095818569225520772055246935839761613767372061172969363657810025088744417297276657019973849268558312041465919226640341771500981663415698912908917128865311219498826791173267206128153132549544063363725841237025773507836544634242862119709972224219321476034475448311734292099469219301730806378211326326885720081994482789854520521031902364201082331011108214296748398204343133734358484521049864837026370096899028028451423967582218918092740119112987271093720763437824811744291977707411492180900035932911810460037507047680233619123793376743615410998005914605114643386515870384130044886552891150047248872622799722247081419062726953497639130080494187666838646592995937452586002866018827671996695793513834074759125596273412158922974968985642702984020255962042623718255248560786350919891628275144492385650876103428240288493813061634439650336048208074012835057208051666551776697230324086395471724503853747813774284214496161827809575027719424441222438808754964537114594033081120467059201856622733620507385787517212681671371749591097405455623432622991642254371141237832402985336235373742105632266346374967999696617056406690885964725541296931701779385807736269494413613033326257447851414839849330206205835127744758605672053331254679200552120672663288624331654250090016348716245594462716940062172270878944888703722439008985149279921196473295491523770800949471131173114164314030786945288512737305947208987668486607467135372708833465097782937372620963098845045783356091523925479406648841082435301944591507654410868964511675231276585806266908945910964150162196220435232607901325662231973285659931614579172000400825482582086896393528110217282707641270807730309887267853754663309276037254529953463160222687828227301464348336994622183518426316796453846491932051223519209621477381549667205974552469663901321513216201196044096868366075955657254335972260151138673777282696660506674929017980101130539059219393786413939295560556955099327540540054983886799871969030513066281018207291082637547204710643485574831147048114323923390680917487530902598950175471882432845276453219092311111229203543665388757579695848649929321086941576944986768961445265509137259120143522474206396380387183370730555474532568252119993038695975129476176849335497857986783790904501157718682009204661179824748046270483871193371369497549938282990199056495508811242750277159372613445666663391403055898536415910996381481842578087030043233202536598559476978841993358988688656419580720988340342460291088122018432009099718895495111094001077342378681243952803402927357341910947919885242396524370806009041790470393578845087370606349057288470781799482074039225661054471965805793822752031856564458658457819231747524766509645257538416530604609286705519800748940081236056393306079305928878639158586222522492098520583563706030249437542970188811492919957282617155028297519066066727997273264811186187684992230768708960209612773419584264164835848481226094291852058424442968372229172138263882503784752991740710103134469330340329827997598127581156039151187271731322481926638420885665356403071321747302364377677615720799581116153486487251516287249319752265449597976444028419239943278321060438104156479329684649893297539719093147695709210725787960777675055116372412511876309465557502733071414158694382000273160505445517458519332048775831215926252784347190731703293668787298667935533479152001469146616568161960853310548402703954745796976113052634840099594740735126198709246961264898704517128736050031801241056222764491117004982923614007238504267153484864921476308582015779636854189298349618338043096971221512043370898668422229192709002902844149519854324544060377753447418893295562201622008796853548817699568363668399480666726408454867569855365157733775531649802664607788870730813208841037138199519388195129682970499807654340106300039590563666031002502544921325971659840781891899756992057717772529612694870830649823996314027018932196279608774297153471747239486106526307632008745070381016374704496340916027702272663926443692868448149656731381015266443298264001574208611616759348748911618167862445200351391770888551724761010978104086303330402391822747376837623832723960375991150975210202553816025198133277149972296530079686817548574733462876801775233340168790687383064246104073461682605202265103785235537102826349599187209776209182145287174892980515744768049053988625570651120347470248509164778854743202337097290583185842701018952830985142790408996612343290131905144023839930906528588369786109034685065071916262189165645195772979610039321060414720618485317209579805175935160133807183301129914086855549526221738813977117605343038730569880838315626230346289055559101585517635186305365669858133689663737103575844359424601915419542774544944598976660882463669551369383520180314370600269168455018581672754116236944525983255937440963805877194855547292654007066624657949914661183950611220321218215369710077894646228339784473294326516053960936579535863364928617413558370505424179712769034134269355406989220664483221320558430116929596793758750560893674425723425278606746093094960131040612600322305668748789357267161156636322887553502578297492362841384657455283993126923205425974044753100559055860380613024632007111031685573856737780455786316276578325339403778894723250266771614134589440265237615412829573508034107004849710945832712997126378246351762352186592951537410471993689261244042514222246564211356823332251975468750799824545470914020064212519729068538879669263171949311405930096029023737561683064550335802499743327936370523105104637633051510079786600000797241720925402686808403067073830523982504483041715993415622609856075006610006880276385913168537309289898568975515292829343785012588004023340787418875108865365367477748599206772230067722984908330901444166336089236491619130810590516910335956539982835386336260838124156309945479812920441246779589988815822284575240718799377209346593580653529220244177584806053915948472271277456641031869388365412689805897538856355589138088440889362483286487143172296922538976389056108825187063808496352051175234181266703233074947307876573032536274465355418726904621449238325382770082881534745353916311314735323314530260241975277385923597507182391146816175083953724592757368554906875479049512365302747392779396032366809115572469713495588567968108088724185968625466279443975888879035715046174970860200579088899214260361108543346633465654071527745179477753990874698037810047367692353281963319831192227007100323290887237439510239718153756334072510749992717758726362386126996252826690629955543711724599555036813666847257003189071952568190126094711198787761327029743674957267245733538179296810888153194453487533888144773448175465414434081478723945286594960155741619860057532771308185478648920688368806101540398146881916636592589061225686290513307657728110666764757250928479927091746773406378085111260820264377267510339601271854291351506632811058340574884470011630602729691579562396339814699010049406817480290933872409603074211426062255786326302414664865247691731048810266708513155345266429784232944264064074647255223259291755119522393662658109056391907847023548947476828285021299270925751201633569079292988272477443322139588314231065086326701644491773452960182241877215864144583476504051199828375189888124501562801056542323379761490382887839660181207158293415440835510367515425431418727872945819315953099888896619820809317122859821114668360606244106662103576172766305662616696112761929150971806796278244211476545390176228450252846696659013675336880876609747911940836194562040390489457559644443337270655782426455347567134845717676818319979410607916094652595776308024758021332510158987868826420878181554618767089698035751679945204962047275447102115776483939668503091845013312072786708511552458334026942063905957569999627190105065459480810943763845773166837233928876974798993060837336082094521547505532889050446224365397707631253512254196300421661032426725751640109004128661376946570345067930078016986183642513583511462630499239744977940075201286576249196734652815400532110424319329744324133962248089125808205234672188556101571271407275027438141386977975863275871443090985177555708046623823706789280316445608127594982194155229614954226379785385222596126908891579596452753888208528486989203057597967646168594535483912581430214178889942047680670601582918880751324369096681417004606468229647145974310493417376370807387502743699479821116984385943943590526375506833180895844882681148342112097565019314771682754012845682442109009051517359440689525407472801810124815005445918292051464547961118418562308180726175449750445488273056622143069275198531023311622264275486679687999545357691296623180753541675322619674490290758078547239435853166929396427087301951407618441681705293301678369763621135099782784471446136134924159745325518414641746856658855753428594380597852089648378078896839255334446292308776176366891711499722564964156025888385044581744549856584866254065166507221441079462533978741753954146861804180035069185302982955247700957367751671518887350450771723838079588009730626097002987692565475983270570619517739936663940226948129216742036021010366665699823783458619377560870809870497616659954328606149089022976883441621347500562050058332472611284788834276136801078428529523647364034368469435676835337715914242800740272314379345543000721698697029194656517411518005328318211565948704700717019808519557569104512203098320118136537999301623089660946877609584361945741509907355807172515367852112942494670658965084143417437928388650966303687017114133015233977510050326917403409711713171694938365629628065684331491140916503724992949449571789343063941332115683327906651791226279814246251348620187475970916615028231140329051532089154939391892487548558210317355840283816277472872613644088519057979433813447893709366258377604833459976049236649461048021248906292484094406295764977022558387820395550897331705553769051847957571159224670613383201453554520805057505804114684556456254945719846782649186557173119927376725646792313995718582413710887019474159174970617425232511301347778437388588628857224443180135371542421858823863582314147354490024153165445829091054755153055559507855652493181835586208091440968581043213433667442924489829377407136599371344293274084420915399712371732347360159219188003856816722462374126858346220663329614928070510540589207233900736138766698510304020707026672312254027142535728354530440399505843946220517441797773704865936970535692628759018280624344991912029534143347434756929240517516590706951504390609461012924182623230610676763430961017676053274881564881128866994907390533205083289094616408827843322428155523235283119618350808621109612043418665894196266171564387249992234261281063794579896789788997659122403223165147995468672140654452593035192291256756969426604896918645231299655949658706420096073735650234448325222389735372708795456466716617331482336534670610683723274835788754374759004491256663878260867059946117839343876110498254057372005954711936266852932095695929268841677552798970498999148279111095753887595504325949695833899961291871536890750988143423470657900312156202305719516349442057710881133691041229849790022761296670189696345842792882506039770215588109459447941297224554632454938710662478166803436237187634281041607052248267882832378312101600231574878603227626212278002847026358345563679791132028068087699118701519303081626325948312551383653885625786174265488408886352249999822158831569493881935791715139446352442814508229823593111275886530700897279357827217459454757721940997941661700350525175815753210862334228836136618714948172446142904852509461494368665462985460513557387952640733348469059622679126832507502082885314721468999789239883249782753193988733439256262787371487478220124408613722481099754561503875865566888283834245608697115289837425372579500716633830681830826713106818728278969223731539711721748563485247377442928940125724123685804389352072340241461631044142541803930039280691756276770886808701726079315519940162215041542461641519244658454620340862418100991623207957386462712423308043396274157943237887360344021099468001552733481106011927743518734567109753817065680524431631571160128844680544749540440066620798077460798295384495371694559034176981138462473083701661766434861297111202798312256015702519375541643360511194880063332957535128227943645275437508007738417162394314163581524586566268168074180267091543366242158978789113542611188975409693584141229156496535433097045002693715097660671755054269118347846737214043208575644251932149862509164590459855709249755850502615837554115798705686550443327528976391043470022032631915045242060934004137569509286164147143391741117374507239533516707214089675128914762114146176863527408586224292717978965785941525495281817762753000882059487718340387954407921545096252099694146726432889676425444035585854226964496783828033068365615867007425024260544374009580830856651488865919403482732952497874517853215093303053389479779477736781397587635374450135847352189121276240147257683366822461095667206105580589121475116170951719291093839299162027946791159363220479675708492735349888867660615623201125684705036007043858732884538134520639712705328425059198576744724017466247229290722517634940863765734441832017684288485346349512044777597682275176621682357894990763544396639681063875165052711136836229691492490621544905541671399252959356085187626511611279137153009140616066971008900398164917324474391056502459901314284855466600671833647769483110704813940080613751785684401609619910637572490825173849419602405340556226899572722660649640276354958954640810462074289748629834440690641700052173781432262891654439002398539905943083186834815848818954373951354432012260972203052314889619147222798004855054470890054679869845781307320357935408759163699499724070552485036836076757438022492220136643417426233118183743526608934835424766759100145855399457413045461095956384622123182519752177892812772784004203896914814983446732307326811091483262684569015985510556531960173126757617877783544134319530464847763724014305950063089986264264486296247643374645175934201565901335863161024931367820743803660670936625169262275997076574485258417561764834992854115855386680451104265477017991747006514624855198560530820284182259309812331943531679720254127107572844370826560783052997538611030060898004079425229354783773501175900486391220879694584178046820140695524121980456095204008580602765546825367848990186842423365473683310332455156735557767102134769028471445715656227104716873083289951317321283780468607517537148333410860287944293786824256374001144752116948357959183479022043260244729393649379623372336420670599392568356188303334263486804071060948962181477415066991414144637772709760142522696804892169107697648044633450454949866599877914206451013128634463568833749589125793771816368686452649809893729811692033736390570126308724149800747761644631917760862058693324843210688595535430369997602887504554657354317629830095318504887832621990143863337335016226479042483124294085059461271198150170446670491105200360232890066924271088593400976203922772938398630183722690199971479478096516798249131832210885748418203533959725060269704472838837724461488680543287182777260436651421544769832251537494867746007313709106010671815402852483156917556964555973369877795017692191047691878303891206011893057875681045347392720753847713678076253663364842789991971947892937747207314399849552621342104926752102199018982383508440996799286243326526053758225153827642981721429359843842377552733363672258904740691419081234505400800872650363414442532396292585644835024498631201665430226147498160396993241776272040630458702027248392121252928079369521335082917229650013369155551685543665983358993363523972480178557304563945471764535713063353409901255785663265467640152187890653737392471259538929229839810265322928302734833082192295067249315776722385568462643407869055480350469653219228868013864245879019679882814626638608466106695277447067696366386724828703666940840764833648227156693311464254065923182337197845546609310857718726786299964543355091749853817122236224062751215998660842633965460970270782507317379910415235340035741651035628789677910180144700452423684777899513665111384626033190608413830631759780182769379909975240135285198885607689129210103849287983709241888453003309428511543129919260595294886794290008414517988421241642571582842124409013636929968667683494198725897568378091633340410478689641706650121366389876716852747981644799240029774558388518929909381751640791785976084107093595939349918257863460799934318264946149522368236475345454539813284080958957852923008350986536179842129569681755219957566396841495166479379353365012767943362798821744779394565316890760516547695602384972750827106862202610833542357124521230707285171969038650466536367432198428440728921425693142433918065222922936323924719260124964591987998089909571750103403469603029560054073775457533701884063732607072535182510332545246065555916489799771030309649136394168237668633444670679612032697034249493057746622549675007657822654287184928873921399871286253078249428238414145763646554913362670060467033605640666564346998694317002940686330190764981741587139363792659397657736338941258092172653245162521980578077574161658699860695547676666633824766444797200370099851724834441677452569909048210333080813947548382249277483913114320621583584800750237374664706345556565836931164820361363584464372974448052652178544762762872115745639161201827724040581641407903546403127582361989094308967132499495118719341285223095389740133047862071442665271105537074184244740471721749633468574410574256541571459562436607889471174232039509042996942011327210798915539487929663571638574927214166011586041309545772762683375824745124925664715087646681094387311571131795217995508932012642646107976416844833183642910874325171930259052742292550583482250385634612697628851955249056718052826056949318224546157531124536559792780223652052546778841860416975325503565184476577211194509401564600430154684625276404180270660120298266337667144522972372901261931710028937099752456065042416581804043129071673038527427348992787239547610241860581768438502008189965758702321455696537127291484835579696481486095336229698900920092894690000455246044487018598859538690477991392630540897577378994353813097660038893978497643774196665394354474945034994118827734274942213567141345163452003830100340707828708138782474553422080710771761360931767816020169413920216819536088928997621980277231253729355812799964024216814409706328793978872400777322628612633495410124262936364216052346848003661878790071467248837797517385789152474340329839887127663063445384267101053305221124122792305075056095863103773016150942344237975428940269294054966714935849350690614500689569088824191460816808269732874736285606648510725577752184894655630769881766247481180575811226271034138797821474546883691686377737430230749455538134768346414807906753695076563072388145206335150440542726601590837885563524013731576156213131472919638486800870595204026431675406296349433854319755685685829531856997687397111610333389820654616200419867808378093663614242850879503078592492003273573527924571725766406899317016238697094486210467824998611667852370717245163876934700036500415896399648333556643821503076746917869673574644422688400295713408173171522419942019910777767619244725350213444694823867501211188715552812994152754860733978326002351311305019839992884049278168954177851868179456681134783983469838864032935380194209188334868088246308187050478357611955539278054495572117457035642478655525494359707501955423759092489452439145404664268276830242802167227953524121265882160024492512040699065511202007753528295302805731224303844610635359117229740989059102881325146495741635599985446460949120381743781481675816183571018000769946788735282287247353842459563427336051307824315654037046426455161328914297179580618756908983749686847014150392722119151097898674209576215085949654797601446353506174672073103810137122772982903589604528969090389665227909064165547462740372665731361931536427646764681592316940125119227402910024174090284958014720062900186405105600421643768736314891332256248092505582965891042272620481872799782353851845310561149144825806380698436631849039815350093563598974218030468887236213479982742988617564660699366584190725917184036898162114834324509137979560064943734382155856168706854836927760552089538717967122789150635623613610564533229003631144941830533199080591248918085783983098042448411480145435470650050289734723658787171941882498844131547387183635753191117716981096069940573878600915699202067775339479667093165539090920181251512288679828615709743616911456745849264860474679221777914387875334351018092997038935691326747042919532054049052836871991066335752617025714603882409658468189476162145695688691791127528306704773346214764005645366545678179550592983643435198560223994141987111393128557106204007911446209410401806664061464794790400892395870154069360417404203530716060624744733484929460294161262756992254830342708530642581284230149449291048201495580779997099615280583070275727255163297426938076323492959348623419504042306032356579311241848764031621850602840072659920036585628663689961847288259356298970999194074021992149268614173933857186676238779411862016600911755275165419085831655006226690331982607950678749188162120597508321256516877216185473005771612352965390960885334452016657971811452048255913258271035916182648166460791574537055032994069698968283089471446683627105419446162448225423393803152507815152844485393210341335890043793774246598259742588672390087571284572657710627614645027409915223789245906845156113659965770497181491725822463365146766983691216262147207529787929149568614636929899476312598923039063793302780854011670910087497534985311926497520748187076778561296886654186752288562427087223806878896391265761832683745864871634659866803584677257358240913562299759913766410178635426734073093079345674644793240736625161353752180506192809865938757270482364468689414593162830587300502967950726028528001349246540270635123836644978498438129409723381838591555632296448222895128211310782372904014243166029173927172627259449595433255800834996292094638878813955171883306673190083039180216149957579885344411013017995485149591401963612104764914026362130106245948916552299233346343325763960607917144847316315075741984948635662324025265373283566881572252262581444460078833301421103869557909794195686370754475548602010768626695769061108227111511238358667836906986262347353657834944662303727614503628151791716930907620339922940506957785080212169772114909819640012591695584022526961103537578883532289022014107126217382685149611455227372658669066581625844040160146986202438784570434882303265885268188014929637224411768724086570542729806643263328407086436542887560936460094697796075686717994664911518679954623166511638478043419962064434959314440643404801153009409796871295999481519068489506894785510985745580244078352751671983317668405510591000938621673939420327529949549082740714612765687991377206223367847495113616229934970372229054545344320290753999763016391835227207895262154757709723368804888605424697475934624193890500867669367289915380296810203566872859038353121075386802653287539748387681072971477551139334695372370293937478689786645990803347048875637480658191496251960805349673582887152750303933343807619638198749670331373273987409423767994314582060607299962345628990073961647962569459262668821962287579685632007183581053274913810711139691047629685949605200143585618250437180890857993885158594095361140947166928554568862541376464554243500773092583465076046777482562088765021440614175195477601114247804946085241060942930573538895195607571560719462956742189545628730384745649897651291843656142195915040677199113067491881730497361792021599802572829618120559788869789227231821593723453416003608857087370497418353731122555905853906314095659312657406496426338888826323386321583778534448105658816785293080471999621346764203045653542608712635136287145852278385722876972203204080894110585363512177699855447596120989995927279561124403992448357195345266745516962776533322679036003572488659195891650554175939537073582829799013030958409631536177444538649622428363155838242952593615160376439186850092392188299354980195052916786731885801734701133780550730233149566960002746473499000143841124388230921238699510040891227676591557945993200685959032285597643555098536715284739611606994543506691963551095654339499390752351766406392060033251577891195103273539267910712773075902539104318900649500229521540514379249924244943844928534905731522180854971152858496796094915009832086697592004537348632490395178319269919646509975387032109410875470837404613755963411070507038459035053419814874911131560533134376262345964384011443396975790613354418436762891916214154330212567963480230887881474938833370755262738395151448962934288348744482201699193560818172596915819751887598041875030772427859723981662833633141058829479014885372626608462466394150272393270922475935799776792447794788568207097893778988650492162373767225121147407156837980368319747566519673151681865064644370939944185154472868696619802522256628622700536206075296318776247390063931290460523884648442926850829197145027616795530918591565381441996468935192635263764197427487237434685747317338827172160065119528171857010128645197857840892584697554624991267792749580729716819101284607294810624201301858510164890943338031651425980813161466786722330387208185624669321336593002898611491225369920247552106443878237601594981856943960707874682475869761996066122408803648403344208773193076850834017303899006829280644567568117252349941313761694017793880218343054721172760999948891927667295944548874043271980096570914309930908943708385818151014867952250974122941401961637606983113747799513848143394946395721880229023269472651476326907758330668469921987420300455835904889066938566630951572737901007974616558142578008789906355753691329374862958653749541808559309754010342100284481651258257667122070738033658761557899460775982312071016502013557787030665977440178409875088275584335110270359057039370226234733657961361768753469835617020566976543298844642727842999307464491026107039790186589490631362906670802151160199307179649069380001810350972963680095591671667673828392240431488388816487642220029325453107232829460407864043514821615522063999762366430452840294357891476953582984866685780402415899728251308827302147540351579615541074097206230277790274363108273242861680006431258333453027754945051974137309075625777449614807997542167074934284617426782268963246427857260610179622568295477360316470497117341544828907901578014497910505040811461198835802127201630280279025018121184432266870440493671595167458893251356107909068376186645506194817971138032353994820127997290680141691625586471677460715386184910634565279672498796429769241272082775135981951284576271745893451594645300758402753209556986298133164016334651856069213231445898201538693477592733724535167398188642183102658475705595071083274209634701594644108394743831022298173333651831968378965454756894673036717889901970254208362961221450470595867874953537131588151351844674357432028723104946778099565754464903763408566896154850920342108410159309534829622811387393006711104721226998223561967464813873462256537073419171631416757104317387140876498321265083239065094213328674037838174659855935981690129152216600994330963719389728657026834568651818257312022864642568490987571116209144774232864777798589366042266841806867339649470620763857135324477020901218822639822972724358866910290809639579522981730000110074059845143812305388200149033855539704757672119393831462985019512334660187624506399610855103524167359813068389132143863690918465658888905644174642818334684911639341810022219977112582914929303791223023907317756682689807093563078608205164795384346046105892667483977481266421219516218776083092428723280968325464399944596428098854837329888071923171442095130385597915676371415631293939962929600362382051402961700419744927349059075125047060867794862545493610936000466495721887367203407848175543198061712560793737529940463810107189748773250206571837672937567984138526816809737490445390554036819313933157670118357772142063632690007359087906777771201208506265836645230847604673870254072056523381364299551526319576747882504436149372609334853915263996481288516753074291441004930987918602312451149331310957891727437249739391936265731196273180371738808435483126736986228125013673084698446302054448969325607915628588024115721545142848971677821547585029473475315536976238461291924466720905496048122477496306136392388261389874941112491268389418448518300156594078680450156155605041511335087495070918858232954703563971915196038788525421224873031022861045919584407577967214337592596786047658601198074374625224180967626831075545196008793166572008571209420890246632983730116833204974092259795254202943596766173729479386276395318021666569659260462135956004376976035813350742587854013081428490986707139389541105848505648357602919028823445267761513676248068019538263026135127736129443963594062922394692253991929911279511600019887607523131144179688264686461638612021298356554844817686979636746482500668924627275919460418540634241691753982194719732863563665862585684305888278137291161208087717785916667935603936684842667934191869124888205077657695086144702877432975845954290957106015779837237087622554746750768549116522993266285896124288075963531943861721551649331976949162180918652299961862905908714473991054283894870235421790114022535495193602627384688518612406242944001118750157007573029132390571749616986539942904034263437399795664027690929618687579847639116146274080671324702987050250906643073758932476191062131730408641277230234634248762896308069352419905841902951461598381150719604763005892084139633840317669310266036785620024447819000615434565017562465346126397482111329922693288954943340160058360946072371785864934919529194879210036323771713627145588789327860233722235179878774771368566464176662278578102031409042475157486498681630519586532247701476117333473732700665937150726846139018194779732922842756770992900972262267419180369840330491691730499284257150856980572103535677364441298766190098742820594738761938269850430898281588806593214731426081404523496343349190010251016259202275994134016074707825866157993002523498078565509131386531482171710352458672015260397958374221673786560256205621946935151337167907271666802245341773407929688690633271257429311716324828066746761485600162000194778693519756653527823155863795497757237344765881680850352823950332550425119037605559618040110863802313085226241797452636140063906729573392683936837457233420672428505583498956533264768714187893184639203589893337999037138971407650191453309317720002969998298202309940248421615177386558476695567520771453487811820008446631754054640847498481792543898686872171376668361135834093705308156412010412813588775186691997835677397029430791760816666840857256195480661939451498283446480875918743609082732289784379255709517666447214473204818499034290546705304676033993982674252489079187246165520004190810129468257191001665319219692566323289946070504742967169275315748238694475306094267491552376434448510360518020262528391207989114486189048359265845149663642459972019307119641814291764912186543830574816955837132620739407363479113514422743898620774672976145619032150968173759405006173063675100249588354270726899625327221024736645692774390104211103936714493203038445088875028871008865530010544537183720958795691868901429633636164598882938595437475135639347971533887419542575129023009065056929868553950989836444072148262859291843544975803024476570198588884483271340965426864319868301620408182553647469580064402383304439934180028461947720164889874686208913030699508656583227777716658432661111123909249857580823911211340983732924611539082356856401545199763330683772692263384281639094687055053050948512571579259321359588753583638229225816251350117281148442487015960082788542239429698485439935694335557754523065344013994435222959537773743311159713748406530951543330089852960755800639417978190710484345416258294793001757565639795417143332671022391089711016524932017677325072485815562826700843947593175117062446473950238308985968994595426395150313279055264758028589542909133116104802612726587815837360032184562337524592073828357955071095743693750359685825680207184612938357205769179092423492250295973186773313856535719113780899630337650950343171479416093795308681891185376664797389020544972517945783878182100634922878600947276000859329878347573137400681328069837167171852627594263810938021447344410034018638814179338006614093061819385703556845752297768149649938332469076338668154520329962295917319731924993555884369319514648593919722673035122209479504775733533695215083979996979645832685978599549273703652151518661441328563872752095267358335363687636620260908899456457302855132240953079205699920106932938115280211518981487934039673845451456058232595513490228969224336018710116948324204372912391631162732823469944302283240726779485375012478513900117998756856733982262021216735651378338754639971208396936694430970150841531689990224875853990267283865690877236738532029014573428306201110208635259067362092684981641676083450656547569910038735794268918917912642873663493337025290587278218477911240372993355863373819040974670011595133714649437329733704033481860777427647291136490491855448629575291273247143525811381435748906937920040971208220080879771138750656369865840457040368478260548028867154799125507549664588493479360615402040222340190275589577018405235273023593304664011959616115955919414912086296908788878222757226001693413909543620596731034341488731227904228290374260936749156283254974942327989320280826041729194780761312885974129947773842718336047270419646427488092526762464245594798695646299241078030948145050793204902541708841165239786415311173351305771746173751727544043897131925177774320009439736770230547685366622465881183547747267745557714105501250859158626337532126279534841393993331049035193875223300420826410821824065046595617379419427082468033480563883548793727693014062665673473432937558140368457420934961414435618408887755518947869458060826168007937520842306451057864586650914706825189250474735065624160267622949212122772556590441522540423393893897006684101836754569851600278788217024278889324534979146871523773905605461903207993722240286469984322611701793480735012211435587474751180593665494165331711063043750665092563800055357001956877048866741483734663191216107705552166459585179520711359160521843120348884979377487393214023408179865009765853590162199930538109410919857108546057133627196866579842507775369943366827112184677809957290567216574206987506269745683042765005402343599715687818198108925274152558831262132181634691707356294801303634068660315357160857332432436780461348488242998459563008599653498366658304284633742562899800871801372083159978177119424750906275180130452464623891931361386308783981979447231029101150953037795846253255698224924476429346729858178034225159782938371059598923346178394685199447157140642473879454187009217780847103192204254091170157351569170208867541656035549979286749827153667243589982473301310454156445035739718213406094535675021883538074921144715241153200812639924778754173888770951132316498062716916584499076273018614404681117140205167227016292088766102947252507911205962348639283753461171240843599977769069044480234670073216936314421738592964681887710780142805743707342826969816481106337260405680453009666402734826629478756475830657479072557264341274775741796168064753291224313570532327501111569908135774845114995621054400454023398618526524074048454015222087436619846186927683583518336796211397666530931230803719405283912547405157489407311605113064085717823164491133790502778123984841640420226615893730467529075651115612340520629887405746342361028046492710139237995967402672665586545623125957012482043274749412383438927375044297712291865632367748497061760730843885824910840986989919682569306914412789489991806193297545781798104773239755363965493690082327844540475474585006495554772579641268302301616287828365964153530221894621907560212541837789477607680901074656015985171131325847465318045341483747275641345920446476980594501550895450023957356989180951787901555856545835075449325532140406118954213134549422183155809490388120637511221999932430716924626957280596217887688839972935111546573564421438079596167937668959886278311405047684769255886735784754056412716583882024246827839637133980000398629196973178458099380022750810172559572988615739022238203170787800764811519364503670825668328618617227489872741168208819631378168861093171000108596363354298499114614176404815249554544956264325119281487445475236807986693701921835010164291306211989761898674253044954396716440115804271697967960312364555436633205886993119368651189061896671180140264756842352372308289346557566026398155850465819261553035083427581761622885511697521390152720555401079342371763699161671794630082693446207504503098900587394142518449558420038219310555556242302032996995934720548278028141684829165008613259147442307894655236746155378327011739082335374455292080624422795057255826321801112467660775547175096622900564444433051151255695690755115452264821399189402763930376137392296285992311341787096087520868079166225490841384296816882228673923709034470966557714040530051005081663181507255068713449027794746273953314851315797142054961546150979046405412438817414746240233438020178388824505611370063224438515214236372959989240162452994193734521098306134678584255462714683266254905552096818269104101710035885097668557509473961671035064562314482977643267402623298180723181624850163997195708264870956240145360891020872555273812051816448664688864021401065047862028471166524541721787376488324766667759457685346794650478340272301368316892042776006951768818567245853750039490331490860391842987080971885281190455856075581420788970723189595647863781724713958312125596150932426653443275133318435963435342063662386409634728306074772201225282936986816678127671898370402599821545051529211419942655363908843437923420317893926729000261178543638588403192256567420224101951536998136004234578399210563372255440943957399347639326826186138138585593272533876006723705804625261896897299129021980309884635549797881774361656038597321626067577578066029172482113802792174254867973752426974204131124164812558074627858281022702611229417608150713135551016620267082345255795837204854342418578968617660996607031092604506343907631557172439045689991819180289306091790169312885420251505482175198750662224192323638492949599737029167623799280861427837873315082481607368633976799656734612330607526695193343039030802715983639304740640287599480535320782804984781396727530885439879901075459976772416236660234170443490061797298404886666443500817681284152761103985566925213630554118326625684188705167335665018077186810493124921985798556509503191468542839053951532234881993197706941163074014659561305668775385928024444245811722793540002906656986043565258276114148744250294982069060300228388913701960971659768069479427196102740199324082887403135499147214422756529432275631319553189012087902196079005709350776015822894019387538326466411877628914349068610671075969731474731910406937914677857691217267454222469562705914577517080455602674360111246578411601704122447561708798403889254396556396208538439494213949208611669960431902528504617788021452948042024345534315248060367540802419572823325275593975880995128688412392321742509255718594955779417611822326733836738440943322953211179123530293414858550518530750261737064679717021688733250183735072776876603476704504634089966676183846447727884475300187406816465270171342997389580301038420055731148946268878998765403920422320014706616241746653714485491657650436297078872343892874733659975785859521655135438143738917335501284672925859287293478011401187737235637346248416744039336733440024865357630131054166913337887535326820138521141693249958580677787054138058159329398227668804687983050280303876669407196528549813060498704940269794484488941330174836282764482623806677554484799659166116066498241522376335000286104831931053747848828948341940914233763456002086190453453076295595058472060135194264710869185377819560651167384648548969219431336182766334321212555864605088237050284538585367681469629669774480581739590076245996750666862001935466337981103207757738803373758811152364971920837249886237805011411892710954861868539564753664367941607419365396890273835150063653538262703063050312782971019884662018237027151770308569234414268295753340337610194610228073779589654091202079233794242290901854931428346827423348942978456202101473239653577055487975931580308669769172723409933685978625290059809752000520251999060484607815823542313786271545278566973918662228832358336070589724834539973997353909359906527840464115017366604185059847228903208667385162539697183732038102773278241453486854548692066804565333920528858799094904525145019397835014887613568141593291680068020417087063573254888697278184269591209246341828999100376365122058848806652160288984984727157626418881512412115955314385655324096069450788776474858720553361578466925866852784673430329380772146510216339984788838947671804526328230839620440738816418428230456145735089932982349983253492939348235738782412212463423476129309286882147844579782770252639339445060518873319197255596956077269930697928032306217178056700777189574721079102125842500435436367613302412643296816845871470482028626061038616000848296021260382799425640314596946841040898366262704727047764941563484510738381933722217558870583451373821457729792300526768351989099508480207226555631484075488065894135335507701585226188955068001840884151675387187747453377782157316427598165729422062953057862692955772496749759542310096659509807550479085944364430601512461278625928663976639258841141762835506238047589654686440065562285193299001774908609073399902882625166185336437081865523718690201140339041434157807352976700085159596113492146683635845627397872542797785924951400396402494865745113021851043012495108089386446563120759664236511885683566414645432181985404852490547445695860541590207627849100858049703262967759516870189234913862069233027284311318752856101627492790821433064165042280131015059093147198922236599289731487768533353945329098540124931160999495796006689365955401011963634421330409709965401381663740425464565705460225663433191790358073501030664651959457822392043627482942482714346661700203526323754017268119403891255034647235384549577385007041601191557420153567561022913705628509845617317449844520742020002080591888902241858177286807819717158953608789359826840707115765822564349720385998744662120593734463273916163795252991669432614355174367694222707734179259838798481035192986354607940427756055506002788141432178386242088962147111409418724484753462158185730639449848915193699669118291756200228024693895366613084391775799162085910367913527311403947821546079003180335281864324723074195364902975710163398730400276362638582743450586104702477395507289050890323877099699681547813333459786795356121590300173349096827830066734571962344219973059852289255909137782782715733256323305950800846624842077968105910702963111855958718548958745834391299059693657291592106625835705753907717542998647779328305535208216563976543839761750665400642155681217352804329187237867707144249877294805490490465158904546816156601079336433258837588683025688512273866938583622217590956287811510305105823561987066566129087392043051126315156897297738124240875573037385393678036922940290846712745078711744540361612527411575289281719504146628304628878821960873656764804121190160300941103139953882267779791025550913049415671542807517468244510126448302133507555589804020815511104381886747079301314979541422364256511937328568943534047239809823127211290050035746852906069252146987570234328817253822574554855629333005132345934284577840347286886980713584621129662456538493386860999520061742193443167535321147468344752106541214304643463692901892078926865489508238327261185961067501951550566004066247481991897666454791531048288501343140815951355674136408593743376643789572147439623282706866449309147628223407162397654090225200687317004668239824437813600977453217037059184791615697658695476910994315120969110395094319965849858030314124843317909114174020450394384804795163744459682410839631919687090693228773961515123837566854321911882606908085125657006382960579375044895073569736719730561681795218340741364870356901363160077567808599107314651915790179099777785524427603657540903436794955957469189909036229207612363140900491565682525508047416167263485631545407070381717989347405987676337451543076669759642904321778085900885024579162192185947532800787647555038154638380201717770087801891911552203754368319116143555951967227285950893296262215303894765982775418003632539192115255989831734616517110912261355410996283359974073532042267345802342659943996667298976720854561535348578298088776115543816967432474764664879065186526906128903026499666276593767747451497554415168993488150856250389680347252142753770140584031562220805227599768796417330016126838116469713662989380685435405567267793646519982039938190988862839209449668084702532438267019303530860177339036357358428590894119388530466959249867912871099263072180583499136516367386047935229396792405870504892650108786098114887203178503905789413570322398276906777998356835254074223577328061458774181795873646647468507663572707929995545040872118268006942713174610732551867375516049977349210320714853138672240095264740661069701002514593222154201417605671490064763656223483436786473012904130226461055772077810253157301620903615385887909424886207551954920300622052746808206717629717978031081654357104506560135974681449380679755038057861537264765306646287906240334914210791972301768299848367856965949233404118431436934146194745416444466937435170334259670845546511714915599783059870367141585960637517746610340308807579240032204616031296339694757679636397075065286953448421299749254280153648277296189405588066784670199860877411364508221810388982260536690126351148185310889533338250906079029181038645456606151617857662246976686508496380502542296723192531591470559939550156287961703860088334551925911589408759953369366764129624897503369976255587694341444617999707296081439498207062573737496086671093491129097138925072756477495058055795301958159816463618032247862873238378132198961888430220421652378018658049727135421644404887719294099374165988077831586542083296277186905751724764020323168454481594359499896863528574008204036626831910551109557021352954618036533749646679841489631078368626581119110270574749136655910216146391646330925867848905283394233901716416119236603629252426733690936650869578771281485024501090484161911809707917779273331835457288050039129297632012661549996542123228369975048659046402707466742244021620812158184575231225721323794516730192388614021393030795470475198387926175843456067631513753387495901452434601176108695868343433303182367252845267508823207097169892996310733099892241183291854686403792182253968646967287666778731630108062887391976485086287939849676864887272390805793865765493354842091602528634751436671089953095605778205144363175345574702516308250203182116473230488932019343359949497665185355091295496891784158813207426751695559740260439596502528366338341687349594355722804966669322795830788696564723735243126023566902233634728992463742577668175645351745181504435963953951121688065134113189813246359270955951362260504470368352076480141243330393251636097423316650144248907205999528696536659011875878881763995301234075435608673957868462497905884564654179023962640777402731195131399881205206474644654171301277650369795790763964790862647078753427845951161334472402946771330166570103187185874868724345631839185921199205542262182164118807433725668797788136668156944170896871443146676932824356917168169695951214620349213517196875696165119034785950535193325225753590600724860357145027415346388787955608842859592954416834730104560540558896638768362637004515414491980678492192129410205738047536265708634683410787593534536810720740233562290528964304950250765511110443037431622275903024788928071654765754570609227866687835711296534773988995252845223081598678376274556503283240960118512944476055933432426737249173057915504984111937015521223563054383529047250905404467966055857157445848458879365828068397915884964035397389238070201680622302760179291306300437558168325026077910233774042961325031505315833479899809525757146578720823088065331872278768262030522452976099140892991585417936129181953788204680947353156109208918533368136137622919585057467212770150725525733015968730810550910333307784749643269700453396937168655569097738391712661862278400434418738167740411914150089380586035057363242930048928666012935789849637437308411813050386045535301933888303452722301905880927469900322128670636305619768774866700007147511594834049071057992881354482709384407876006430080725661516485579197605638816343609746621436133094616568228622642415523486994531403887861283205774180066932438575248581623882284795090262970511928574401492071649311379009861304151629673874385567833551179760044871319664631523075106991084558261229511825476015738709956679006082427292119339631244607415254107462435738477212705153305305132781349185924338533426333009134452638066358739881221460017799863474457812518833183567221616812131105904645455012035690958133709666559589563399376742882619312745973923541218693172545868370394475618283046335176407420265952006993163261132673974072182281260263933064282512750038514144689641424074675495392686627581746495083795806618422676473260873758092459422129567214911413990090803420377698274131849677145067976827845626727736816079995424682297796599708891311724307185039655964384692541985320785183974309500277025412388803490601051997687394519526252512796825462240445680369645938791087332318458098891382912734232359523742708616221715267164216472494997531057222394958339373825599223833316781719559094549839194944948451398594871092809211453355033725769388961427440140033912830701996566788130660203560855611495120418866878856179849478907577713677322916565058919355795968167211822613661709066454405893409293324337748284988227007441141177262317631394003249550806563944556143663411230453810803135391823102821084936021170304196624822443685089792910106082360691170371459020216058620112594310324617194730467567232524194172675240335265259541830522344843836040632016249397424604403153128564745502725256130611128194042870444981363742963998490097591051608204894584205127025242095063600927980336439703935585462285812941854268402911375584658171806146131781121234621084317307339973848175476827081985914321990275558748643260290505145477981434054175079369376690945430301639300542080820421505754667692256712103070908800928225087847663590211406860098138867654069530968108088608081106333391618238510729390520450833090923272218103274053014581626627834542567196384065870218909175557740399642590036323875588765175027638318671467915212357668011537384915311993322783792933647619796171375768299831402625790802445003638572997906305135209964251067502525131435780392172610136462268781374686906885164379132941638874316811212723833785014996925429659769611474060083404536919981642108071772535250302300357705849237077171886619614667792010302156167054294356502631172479743066716342634931631858463337995283448492551162390216834676068525779314412507857436880275731612578265520954168311913710646186896091875654651094211465835804199365817473996068691011178451154934838899881538033776298586505200185531552095696143788792931924779373027996578078208063045164118225382930328926437223040599928662894400516838274072230369895234716501171431627308412116284130634918834807800374313500054436973947601146918362169468689495308643924751244212939420796920043867028764378857950945854474739120780136062107319807106534057332890393434235314711078918906217111972788690171812663757073797347283119099926688093148915026967442111612914762518373047678398042092576518254978875722243434887616882505298926654767067249667339644169100626471606663423321172542811617229706550894225471792156581008604249657906098645972277316627490019268313341923261276782175909381868998702646299106649076833923414404821311696595940266610581602705621214727795011424181817593085066154516512529152817173605650179634382988916602943078786814460419002134631058585361285825941123067436107150058122364612720240184116425510773889780039751461336026154971114140921089882017258148234264582458309033238090907230068860120162374223292237510597575359207436972748002751413220692143911653581622964980539348000175084467515416431765843757857750913890639119478464500151816249781238466395877758923042168267912516900025935646116419658685774589225538965172105209046953480845731687810544297895373746302776343853108754414425886838832843268017255146479606252229538059325621475596167854942053611513474175498283930189294016733615744303919351793751710084280379329906785148925453511606776284242397686197337437776520153331645897052335794565843868147507152217156974455891558602139359870440629435178663880198725571495792117130100114765887273034709192835342502698468741441256984677999873744707767545609125859538717599279881050240330536562534393779009995760163520986916034658883640629811413764927827301540975213101470482378812043746125312011815122903039341178450797311866343351635989530549249758702406342981086984010165628745762407002327240572911367019909923417828823232561610137703349294951471709153529819204930831099764863597039539859907212983795787942050875622415655383826584261711356235653111491783601821335565061182462932502281337071679563030865993626347960293087287255331994741713802770032962422786256345952579293794273378337697822460896826472990715521120375265164942400268261014693149994770635660653251768467123173891355769685003582554574066840863012016481197038826549163216222498343776517445366226382518328270045641112317832551218382862380758676724480401462075006977001917829818054529016950050666082293200368029809487089339071235263468353491374076218517240550349307565769938567945699719040937204423068285627175370139861893815032116207015202857875284041501798849462790396013995743765788657082837695216925049182958105201912362050406144236891735683094179126381499441735553923163839351793928673585553485434346487484878872257422247664769579216103522347909146888432158315058331145434145425528821472556358238798550584049312968572208667515827844173926926583131979327084701635058374676692888377189069152990265871486142648710731378511988472550299310683113919241980762053526666842891603356326420314714982326260614744729364504547766284409706753633141261162137779009106217261624805856540196506399767676415311697288784418461046462757419047733764631743634834675047137043628981236007258915622733596618015713748943747464405697308914579970676816654296133384830247443715925230654169771137437941306664691527298406223020981090718821547960593008974899320901039115398225743976655394658939995666965018021713101361534355599809632259940289878620286275361171910788828812252795331395639385548218327524786821869887178457172513178323465931304474648717424739670949345372829030616149931392835436886998943050461778500723384008983783616207216301357735284551297143501809021565828149889219255986620990911723550571308837343653450303425122056530437653199984071179748307379506721071675974574429927446214461138669495262944390715483806158739612886514192572235529656365013531158966631432702377520572706899417475263451906696888013331640914507830200111484946231835059822784647571506399433888225889676250898070123179097617602759104193631351661319218931257612520711410956950323468616861632937442535517298341447553796407621964194040532741316891381083794164521992390903727259893900226216643375359818908037227551668173062249500459829507385334125440562943947511342624633306719591917589247250940103375528883487956364372125506686271726110054866378440142768001165475125524895968633576329169534531955990110103726185666475693323322249432432642891061745468756834691572514320501259036977094112433815852488120835042183012648819437544034195840926220808919466786233254405344609335233870489980803629382395447880297472074246309367797591551031083810730402480554948449864828914371967618520754955623921345424389107520185275790589519578354374192245771983006239439214167135514892485665969499365849364273571300453760521031514786105858377919663047596424791111246507782123317257459908581962526722756164507399842587613332361495179968736469795938211660973803788496220905975178399098306100330416231462090105445465572360855386813565141090944127166797875552541317583908070003996518946566684572953681441427846208939152983030440457844894473768951686420770846015473248785920059667970769532821607561618347539867052401132747958328238773504628611071674670088498855168744510735809191145480123136227274947189207033359142029924621372622195329862447180086125795787023633531159698021540503674686687303781094372972509122412313522242556341457570341075442905029337367806817298970105767351417201334092121317626281086190344712173192299024269304414668881077894208623221026415572539973554219778632068869100164913250946010886166160454510812627720523733769794368564954451494858084650939865392982518433459116521659522630224971149620395625262158685207890233403233155567540814333861109079811658194958939181825460432341904041661010368349681261906368445676845259976192182362542977449400084271500349378125577676394130991382731443677257524521266245503019411484097962271542501613957878812866164606197928573002486421023161021977362963649107256181513284053490299639170544803954100340581033192722280353527928104493166676411978563906565982473068452986124805776201319648035147662853353731965497052181320515375238851514129884061478304189993533047156578607632616166194245935733314105650832706653587582000793926195509758024053516619740390444588489964754649325199425827238008912515665106047518781531933415601186405794680251040564587207248795445695565126012400765081161833406949913050818283063970446000458592371840972200868925231215007143709370365848612726298951890138672086834866254823400578621838465360955778771078832676096268939103151836287337494244516300930800016454796526193241407711564403734710423959561278143852150768844926900233184383532780385525239124914111941767178548175063638648317075399875988077117024561777534499266642879797809921099698739140967147546891882507468868077565774150569779037745136134513669305296864516852457022691328559454748701023478592734296428291244897654730035217816313981466498585337319000713803435566213662053026326587928545749150220434251861383885034105773299312315760146718260876455950632731169902976416684555702430150458993532947612413259610703648828878314501248148142899109249009126714852379992600835732504983061064986674812629354573304860475509491823994301308556987767768270498262823729936880397312856676366409153125957263291242670531331221545384217786991739485788479377084643892967975948686188286189017752859488488734164409527888034557171282677053365422700095922837972035780268891970533222501705615890134890180085400923417175546193442625881772672187948196946262168462651944588788413333324782939930568154186312444026028429039411156156259431517160344058651361884921280555325504679049084562418372249012007693799510184482201279902796729238012289559859117843005593113456422921415114300614048353537032381431852532833407024106596435017798369818992697564541823386823514574455201271061391166114045518646181279537234048802191526096817716557845379664489165271937964233162367012564296171227444098744574044409007026148740549306432618677454427473429376617381308095304997081692634702744421431511484585571695446276471787459427023847461970845069578427529425930719654502901473027658670927375898175839908111300122682772551698754891234009030406159019848740583509289737098227768063800947389024313365575629636142935419850175227980453212330811831646574247977415561460741524166650891893035055170323057110550717556540722278422955607953515763462507764165004859920795474631043090830942040487839039899730011678576737991183098941112683689110714983284660250936698490323739520543290679271387326739519101048111458373449667842601435686021843760214317385619718838817548757954314220305846340895971146051419765145331549950112491772069854013222962756080960209424115574119922640692120388657253276284129020626646115954862406565351776358574865514535010543383775805590578858849087684510835006078858613563859857133820642103352617232533723853125293045656883995011267752227793580067277938767381356971028492886364709203101170218141486109764690548463584353590211032001035205657815916651018912415228628611033654965222987616650466706523406787250660976009143153183541699718209910045205879672283019107411429794172350739431389372559708992603530136998189294726790790320727739608029250017030834353375353798522883963885648265064128571006681328238589015664803157139767714078278935281225033248353043154288733665645816465717779880468165328171491706875250925712460031551051768357280182922627950724558244098006379825958228845453519720161721387929278449883353853011632514394709747497150726653635588469974382492870419064854488137233510753447594604922914227753004790330665152410828142230804537161119444991986849724464143056594229507917572612409075373809092835970628081117398342211278394640758662654935598435199396938895619159122663967875677114310543639838654028529614562712566439219079818919326325772030840121981174626614075881911925185170723864665449155087740750289447249377814013516487084144884275347933796022251533513190580879816864120157927030761161386231927014097025709397182208686477763231121807046859030784091827609941584998150259820519017049059257339500196963674354063438297509978843629765944099400967492329303117135407926719362239622349861704142434127061178904492489870136109255215202785752001099474342167597563287052367132998180631491083083510529756117984496140483416291822104973937321893611733528534520248235189988893810618702354413285102460610695702581824105159732499759481444546046602639160264756357297999550298564202459027551142023077091763760880199548684603177273516684422204003374951131328025250619920050746837667736782287513572606066787664099936326037698239496406827880192926966428224410160312960577756882279447320529828511546790948803239959065751655405888426212838684673398245813511021466705452081104177074589731184828098737920409445632878628677192330924474651723704908936090404526063001403854666440623883013550868492625726201498873083352362655225265167410509680252134233244185462195320473005629009785527564375543136834569757461863286194223764378169464862348592532263671305976290960317621191156523637402179785765116746097559351817557882994679528795096860633270364238205737579430551975541697818767197805366888928848308077972469582289996327433633150193956363841672807753169614893419408991737227511497720568506546708011369434528623210055791602856017719387716546315968688751237347608513362098969006219294044805854700771818854993742548157016741302359935187633604567194462802057303654315461282474141817851227253886684523898559893656145832710790250452164108202634008597997473129275431260482706913751269505558449883539509891076467297882535575671599606039128150636117909356339271388567170668961845815974112079388891830884189283762577877737480019294623413809795103886471859150206481729986063253949294921922914022702687598548560837182838253188305950105167404294772897515079036485905516430159483608691818507300145014402525384570462254265660421444263429594842385095578669278430370816825538264193226799656548923158147718417725030324432452618011718729532302701353380545379897959443995996226554913826265415782213736463269751231925404442049971279616818389830068195303905979227332864163588617864403502749231837390332940758254752064203108501938716039840328198826373481932848122226192570777524014512625236542141845976523179084657753920071743131689302551951554383675784928160033797830793435560960730432846000547777210580069750240317826107824639897209815301004068578222731624407378121551660373416236750822183312237588829215415266583442522900520307749301019841194631579611494170764306521955412093920921104463677863515167797400494190559959835802613769538275158583102991001740649324376113469066251708223439645171317047693120286941345099376187124450731249387119628325355911696753604745171459233317597874094110202140151560494893452243425247281214990944327171636300039121701550112001663095510080902693534706575181633485146771340335601480667596779518001340357223073975706283981583833017833855312680184698403963410946172526316246415917643050045614413531711564452956794310914607899091804192254148146531033347069685011194768281835945814889396528315221525135753379851712368037246951097152303071540728139497030655014340466561287992787320537648966515569417230671521146614157665834778968011520562683012901127117439290633380681287400874980473249411532295654530482077856759257881036413444067426425147606185139173633541283981636367145060201518766206667116307289310582170058640248133293749505535469199219420871693298365053694520032455053647999189066826323695244726568971952464200479935516649956108961467504151017529254833068958703900691554301535365760483130938526441856000573751793893776225848905395816308908960479417399840856530729223358902807262886071884994704140967543871851952364559536821209786027901234457335471403928939791864732183640411468230049924754502890936710636089501759170864330073791052485909797953264108527861805651964779025736634250487745917727619562423391988241545656380240163147283267120142782606162826407439251401662214916302311006719854682993342747396119902291281167273824457214828846016871130414316607648961750209194368090404521809544668607086030166393459416777180795885160247953202021306755581769538499898916967942450676645811424079564444585727526281464159762982119782279343287811189479350899217459581508795988700995024748928695086682466785541474420832977838050482269158032945697810760202410836423908278030224848866909498875537341191036352994932882345363565649654059264579318750976023531174151170115633466039964232583047880297805450582407753934422401019628116189709780057977611574568453954198949207111218244052940236463006386916422305568507014240241834811658961823214094111757277644111730867835255570156248851823992435613820102794228323303473516950503460304460200586064582604803403375074148090737358637027239788288375981773475562814173995875861284701056003726391612101013859270155912361387028653578545052213938871390431318366805032028440127226516457641408288394071975810085227005751380601661312750062799104640076867503872421978586843555284953376778401803878607849220176883357708297638456618151191552290826928620369945930166177400187560508008647466340435246303316851584228955842289635772328572824760395500567912008280857454392226278770736250506497243429780108409002565883234737985912478101212206557263518380913665820311596251089516366303387314176216193016971764415079929223797772928977952290518203917541435469833176793282021758641828290299458002226130236345318845241150397799237796803935522859286371030807238213392524290955057566602927334133813788481638044235960767134692163822376941367192006541919211774373288009780944401045135069371355273657037291422940878229495369513241151587680954437580340627968158785161492697840563555969306676069306699351365422313326383309334484277882045614653530697403417192568530965949348171326520496847227327607921460367615199594570257392464768816153492939955803550154633570022144187850771196165228257833805588589060053232040152564714380608323427296984119545848522669281700565007778576895268150657231279862448651485601293873427658810292351539788672651711253775579613667181732722599515647189868344946626317032966575066646153112968762050628446947625917051087879559636092516080552729299188523090843665242496295817091290562241031504767966218540572937332162014514154207418175026458645463443363469344469180882322361748678891628142070814289240767959653572086652909520791785657755446034451107320151014805101878589244657454972149075459648055862818860468616867208789626368137062866385941634246579695851438944262291683871039379422662411379552972179952333748276120266230257659757725492648375015381120374591823451395558911259297363021115465585960751315188870063231639521494312869846238634227669675597726171392937296966566890496193712052717286178662892031867489210820464778822832088614972806875571473488123407097675009527280283985334795122180627231992898033601419455743125323929168367582148300047090116873705964613332502350112783519457565310159020014434684499923017339685396686751177728637752479563916231463761181786427849875874565588542343998899241064349386043984911116931654257909628127265684881898994937571212047763456634023511429586038133804279385451460781560652553094927544821331977220788749023058343648445653880436296226177463573068965931483091022032669280914403206882154142261489216965978296556179798722365800175423004868752939682764009029749478367281859833808473116401750335045333720335038293002034746367491891284526304346312537184477381192033721316102002320871857364120914790763022909502012034707247481551579709875335631809798024388351864249435397223584926254215708109394493704042105020718865401217249387634698264081221331334372140193082948147914104293407839601975635954223638894449576194507153875186777490198852192449661788903860974120739820965831924134000658867814536527329788197063791821104334062729416015583469610100619058797103146456558986337083196581325259073046386659190048256864014061035682641823754904831058208923008757037576589737631698476678970424771444830679874618095055805937482948811715057965518410875462950983116337099725872665414237455334756281939237510166268700817091482234204588764396168701021051891989855973860435425174264518261123306953113100134938140234951107535569902591986494946892703941130393956927139824206671008247491653937519305045027492397309913741288310571379016369775098514925427132441431043745447018012148367104859439747599219795241024659261614077647377098843537775750471664163596399569365081358887147618998200837606363535817721285703861640910159649027273958599483865580598156083594070115442322559636465383806016034867104062537786454313560158226546331133392359739237489502682592347715748569035687944280909675171950888797379412737739696617564641240449866206222901091825919932001635762338383572870631615397238916621062033127432013556071752444767985651391220424141548664855757279610305246680116583123461550082074885754098863928483169758506497883954819633341138892939576612718440314224349445907144516847119505215082611738766398394681538185746486686628681540441380492931859955423593619544065670699901687857098324714718700277591173145512059881901530051341729934854304864631573007062416371659746757225246720892720961753908556503511904915688927789648448416777041873475651938100166274966096217059918368648128585158161898300464295068140814091895421309477771551230895012619065361059104129883924717778711808427034148843484266181198372880490969661968550848231604579900187649699002111688390748442673312166232864569354942118101728249033989547829386306849154444967744871498673228354920300517394687681517423161784008201361831381561118298423604803438195254602578253357603513224903646707674013826831112702727816342176305428978550257033830141265629404308520734515854998522977823845833277327943611184157766760662219626353737965703725398500413967548091639143959759360920944295607729091958694836075275984527620657626466982968706616708314323735053630743773334155199546110311609924449764689931398420711450124125438977109867993571714889412607297277582164186475564060961609231388494412518664064931379395570844270999508275375453927177458544690367490936395568588225726665407742226408280738809440639961195550312806923433028494123537568051709973993368024209726427234648325621436155197389796899719963320415626853548049028573857686170579496077406950393362206055831180762350842653178246605453968493464340587262032285693832017415524432669290873287872368884189811956906229318282619937187130692594251111687315349383876690795255633991929195390989662561457279313700923260014312843545026982370987993894224544154118944843796113632581943553184751453829947308526289554033079024834050110357465562553442732482364045557778667107438519957871082207762767727679714862067978296215238451112836688038873546585355205735577141075063177987547782440133752488045494807212368262416353224286685205078394005323771294431434184952236533590312590524049642261527038051522313504100907244505462148916935901866322467607635631845096300455778841964970014250737506326475893714072456438382924367218659206790415886283401176222066573148684822137404390692722750185450293813292715080983362960848502876659184307703019364397737935614037841265802953336008058081083781949346943003168272031075751012995286996840271709468019925388974719937076362338161546587781844884249702098400370601829254049404360194568518800622359527410407954346061212852911390848860250468507887414109398292288691634604481361991085322876032612318637551392916461295286944994099518513610078225767271355842245521980904516489703910300313298818763113183411242655196604804355853759718117202112568153402909734392086238354988662625293893072923839753831935189922403359423612682841821651883820504315925392728901995198205757560199938989091419611452432449429036412253119064738347679623364159512040827217183848210693119018915081154183268985461024334077924943330173422034987667286023598509568826521570896150431003360319077720908464610984423003807738803048122516301356365771216836298674359818758279183486920065505406006425706486537522834160164046288939968709336063053935333994601894471060018095965177861755475578845665080771201854023440656646051542391069360158471668844776829594891553873183316048931771738037804253125753704842365664648217904318668517678844543671705594112347988819609008345996013565476291013123088395391020224972084614563888221219832133648955597632759270022377789324532949003138792274394751930052264424581008691304325646343864568067065522862392643656923548269541454104194109125969730459677745629625081699871241811892407910652320177840805925808402264351265900980085075612916412972674280622087149984746891067128574768639912486055250157702865175248102762494720576406168087100428173767193505466529668368543733127952696752777101353284452901023715719565319909720259868794191353074890531434156624009465430754024681607196355942984233498505919007308008925677520625870070786973158492414699761821275874583452417762395897069247964788710729312645921693177182146730736050515860570773535909619324885359707820288986347268515857804747266404133910615434925790575668945886219206722835969810512257952813883418611340365635953502907780063427089196003461022431680288597017517397384890493405317239225119112542374426265341658955674977444765718749456574566106886178749256452154007098151534967376083769940355018741868768873641991963533768600116397593793481448697002998826413407133589584166609657425476521399957929290118844630906877312683187816456292759580390672587112218056828150491304888805951862794144437810623679440964991450798159714688848309663962183440803406953430000553418800981689929746603961505607530276327942128383237304479327203998756758583714184619312471841334614661107319643143034507229879262109985479889869912209458364366001583045805789175523368428597996786893091007901694795964359971685594775518350749052969763621668681870717932614953506697741646397426253336056777985912025586187446696060191204744084390803112248686156179553928565676177556789186268794778628856450576975710154339352428367368114362176378316403113803034475739082829207030730039999129817163535598780720887417424017417013239553115735886719948528303781175552169386159870265903840024570599478831749619726148574294009269713529908748544858044329671322872791339337828202061742678235127456632379646558053408139293655485548906432922248393682990925477032591390605025579544458881398691913707820680141539165142197106871918398523893563698165448976174265519118297712882774105587207773515876110516717943136565238191825753137154679824086041230871172342807287440283842399308471249273085186721256215851647694087770441539590233459041595064810879824946947255657779258267763974657266452348988354141108474619880049789226603145637165885518758656539727808543162913446429267745485589322098288980687112543756740902707332977297209142676373785558086991395924511313148777605365724903664272939696367635067396250312195154388330166386046412094786411718006235116601619367248929451319014790709481477869761199143725414043851291208714952555722515071157105596767480495775315776668698889682900414480405069512365032444499077572001942752086078882130357807632236402907253115481022672603760375069633807109999647627330126996233204250665855622931980113477988299826870273996727347158279252012694230050845604280672029156558360919484367077123533893788661494024886906624594320642398648154641059710494113804219358256334744368663520692424307633866903868629529317255785507823333985582721816192573218114606197252815560438992398196007357667665978173011343657357310553714003352977003487549237798278589004737425134272635440928131924467472416304090942464767503712174092260718824422323829277161991521109421275028831817281318951006689990589358599647174474868380687375153782545516284965115032685109542672297918046659479066042749191726610479658943439554666555097044608639607382187694149134417218353967121321821678841876695937090015683316100464534117735201479171369244162102261493079785774619752291282222405151531208641181225828089625660271303630992919641360056406354814775317998620339960389614763457657411284021533528194594769547197635964124645222054525494788370245782982892547075530779322593754203589404969069911887625303581312865646606751875526050621713777544232812874031487006407512600106466225092224530481503605171042638689556875465779933424022663811219496917513818715880608367123322448783549513866649207689427711969825537762319160052796934604457182363746975470622615068602290841394586940601813186846080105212400831384011604830960234638126107564032013312957204169673805727886230199265400809958693576238454958293004548541526461614121245859669587163521997266399118470675887265651567831114034922942092348838369574959842921862139247235254327621699542593284130862220263101010761290344358203116536493851431977999182605751001213104277501359546886134969844013457906692353003465866327545076273298120282473819568445834423695159515145694551659199850386886996138193873663139769551091621346914013333526188826064655963476957855858493513620636263617321670879825549295315254001342403564989320553026353201594060947738238924356130327082318851673493910580912148923247417220501978879627786121942780683786431341741714099567282876662736263929661078987433088527726860275503867546686876085248042881344231222995887392885531898379648585547563736756171996674131294110944666297357494795651714085179499460137356613963906927448420605011283478359395886062551211841605157478715526505682442646084543836671406705239301074348014838841262801569627505785851383832703266254469215512563411608378063141561345190037128737788541183740622258458338699261906755039994815498559759490074458576232352674597023093248573317976157713733149413005104966523441450761567393181406505838077763412106194644572911930544394976569943587417219182298099546523551329042991801723386570533324128759928786855328492514916859248953186669628497276680121703751670266335349207151924552312077363345663271771506030602635307013452112827542413469166985665371908883633622087012263735609600057383035422293132301577876157748937136149772963872851655952421126296919312066625855819898704446509011182340951552138518799709360395349260912603433641354216918938529150505097804890378299529923775197473907211324499943913822318451826685414673542479936015345627856863091607651757981870405958317371960865239234513651591718078087249925847781350878315040050669365443132760785287886670576294965329410712070653865590018557898994581335651883806271744907942764708483440323445007707909711499345730806246419154429185243871314673832906117348696548651990942716257362900945448574529879611921744849886513635553181823309961544703716918031258360944198218612263965091169673497297249789611365582231676746754599990396449176490122080264674585596174704418861023860190839595610016444074667953799379562263574564825752148108437130410736027186965641872030838207440982015071986374618387922782616675193024111127313240810748672313495522504125656489918189581148872311313644524760727377618032297515829677034440853313407050575071780205974044894733368436117311898727969325671113192292565318572284218135249316318423453996870272022503160016856740776072371868537054042404296630410382982154789273488727164345741191121719748022485476492170204666890572691569437812400028992374726932122108189595794036575002551736633725744191996219922591898159474538535709468967302852153522263218269692544897416522595865628303680901310628456269099569890609171789364411137151526108321184416588909082401003859102339911721686000379000714547750576072302642418658478221844511570720312599355862198241177730954752734878799734978448176994621738224765860670845040694457692326108950240766431735392582046046576324421271846176905416069606123613724570535308256342890046588650711375708008655013042157481699853844453290666277836187935755658783411498086418274105938877044790697828010968229453591576628899222523338106558359788975539536618147321599779662419631386604767153786470749457865571024176752442953423523277249096783072663421609873438768338223332355967019265015616341490601629089502315164348303276673743723012693532105691129670996912939583363059865148430560913887325178024807210976234731177306659198886535345546415886022290897131324087130400886411665564175602445770946141677432278436302070155125032261298091632443765240340879576359489957118357180483593605102396772254122186480837747805430664429457280801935138748895337927337509654207587126788362909138299756980722499352793750193235218282938552667767546104502914243751357213290415887767288634394817403017296293443169158972345676465722132169639654261053147297389233097412869288204441217877439623794961727806976047661803453161915907311123663958124830974906497449607045675513975690274705260191192835134415046382564667841717052594182389182334803138375298768739889280928935402549521333039374875808800849766003895603333100206901333389990295183989173454469569245304775877642335480706025935835330133755624913034639619278105700087243067503436984722056767751482798989139231993529446062507196618772751404860388911471205838555183843411731228161514744949854467132830385240162402578602440171407071636585895510547823941262432924080645646514073437517480469633665742269077406456417865828375602847478133049341979802330274062717532196906074826866871171662132470901937626561056912926919930908113273930390259306958991645037580396552552521488721477254710506174520792863474939169162891994924058146057546557439551984586241208758798413966057579335038829936943599652623559653033264316257966396304660993669059705152916913204626556484111206977288547745465029735994333575234554447865914409383146902753966706935461742787478412311748973875036029261543100626003264572278172538095702091750787184130447101942104961313863561792808583958249514268519304993213983245053327033823567292104758614369488818874920849119556804447147251028456200058724545134221764949546479768869659361954334138851273135650165222475299256140152905209482435269520642942782348795416902377811742728719092188039014471525338632036505798443115572587845548761342472712076475038546180973567548085469995125986096678525063240361469866363512317029023413899840297261384939035063484198229651503461971612203878891554434596540005359497947735264505449301292651980808973906421817214742851402481912433793780785091676698539896033902687582582483452704948640707368309397828467148438678517908992253100808563531327123841314901198366864392272513186159726219479665325055343952008258148849688450288396717431533050280934531752105271743169017247741165139169223474173175111996617778081028308938000626396621305137339946292851986931634113569671637784870579631514713530006851598344513867167910873169400994541457296165083435246344639345002960770163920926188607120883200807171291011781173928448116440272200185002920545776013392752387417137410643421894277788516360594338931377802051305154723699242003796159896590885074990298137796711864418762480334553771483456895144140916379353226303615953647960170306797886493719568095660636143068542027899206138002356739601992272771709158870136995796075502838518880610665051770003228887311002546349397030222956378711516900831771699241945455778477308403362966654013954288812663951011624550159218915791082658385553978377054464581430817087192540196199045652603541266194539390833979196186731226779737527451429264839348641070214355772711917726872750068832503506319760816803588722607779034492435126346342040180134569487858504503564699745569322653385215456450113967137761950750941173373896855815124921214940320688930605443056002474351656699736364893963898857789633403913551043822178082154719627257292490023692419373774706846136314865739725492364775281516267897887638150183416940927604522726678346077199046960279948934629481295178235971780473838087038009598457694603986648598568345233909005659697344778803196302834208450357791685837466435100959312166544699089267269739645500537234901256365599929231121734897450881747527649775000343137275953658301838966828895665184194293800843493261187731845773539235067207516007138876518972841656732174723694621210034525519674113482528565690791593073815958224204876886680263243234365910821598702775017885502672830789442836405143078286162302985693610108410297979995328567483436895979009785609682229843518246469475615025500002342947930478855690836085450250172027939016144388437443009804520494884688335967645809771690898103750138632639569755334974987661576937079319112972636896098977126988486844208184113829185006556236395897660073475418252673187567982744165680978503904303495670741108323400444163418612606155753268661684184920612481467947089503685279653476001320533945514240643913938085767228153499887699277387458601243903061537713555945269511953206622833186139296824364370932269217157341601144416891492114871901633443554799057424714517733914819283367702435882593095222392367847495972971427602561491519672405616491613253940167887604326185980965124042684075882895793180478508516922495218310594357344888007991207060507986160368200230541185961008754592365925324370040850767682337223478046371671038152448431335599683093055168943167016175313912458010941994015642660828475454890956076227066348738006820251595441135099969500053002988867252179258990331189914709159578746700151039533703317063995220630369386103440451819068754823946166740743851454111751367599297521841318870970858144252931655015276636425570263365688383031645378411680989742519601572637722210309829657842613245159802330476852358235577341464386975507407902117775908823892848598940899199978344785594965081420402689852659542835666279021305892628284193226114953824429998377050580047261137520497615407357565556039305518968949940248848617033758462462034612411342163100849089107467704441883241568424179043357730732230273420039290012835934994267067982314005848974951915401409428390842355603841893235999348145330727235641422600199540866219787520591118395969121360536218427008217871394220947222109095075924291617505249696011886518340341501362087090610281805610756200136989759819314387106621041049553326540383539042189079070249144219595890455388425356552260136271671460870448103289222047412439154281561061342879223283372717242139430719512260751068600441149786759083403229915277433091617504556934651714688963032029556271290793349802884960077285731369008653736279965042617495514571925307280444106259877323299131514773398353962563046329991319613033115230147082741325096817684895233772308948762633085757265295635310522864679600934455275154250173253987433850002922088516748224542019465279554316421899616127503238190730701088120068500347726149649772526906367546084569528547999135819630202487006272274990553171859494456120502556011339981900700086052302416466056556873143796037140427561318388963258536095129665948957974767831354561793433702053640962807879246511485818117385451138897457888118165584549507833472103306511645758587564571693391267717450630006953369150507100268834547142785841163419759010602655498381535750280942916200445825473437266417006941722201003276629476402381562706863474503052500202371845884817303290673742094869117122524079289071181582827735312160976408794185743900058468155391971138429764750201620588648120458099226039363076906001457330675418328664177920311357697944459235767838380221804292538543373634682624580164216930287703556044777448515417364179626978047194334198625742983614020531206329345437391415422414096480026975583572367749257785241917745913898599435530682175734645703578665145932532150582567510355826372322745741435811152135726123389104130121253646390094707815684540907776734085671642193205502182224085229192974024159346788847287919480320688935355514475510177558236950439594737903134180569074456195534339950023878127044924486458703395502599518835693450845021498651058529953982785057510311040008857388790010217339192730702096668821333236222753884118727182408305031171625048001865391503744754852689996045804494710396884126414575310619007450912666097336282894332499872405089362752544538649684763590581117824093500573081945297568736686509482472168211765109020389555088285882119480951502110379876405127451191047180352038859590760024995011774195152722901141976952010755149037983837550948567316726103812095654783253049106559031678281526004787320571473234416094129471897568053830586038070826277460117762955667953082840505824758775325859132269653146362061286228686715220872604205138259897565575209224476331713279234482753514847068879984706163985128015664689418707385085016039079473791999478192403485830722015835036114864121223916583065777177836769535239535295177301394479453648089779233530635890952550749960181753538979669840671265653097330198327596658680589392238011926594001881291778719161405717498239646456104147895048953000736176325453799749141819090758986124804305466278204576825602631766077547724530260126374220840116263115324466955443380819337775645247199309513058501045632324594529495619768957076075857733208437424970572020780601096055611894848627329843824383735088219483713904762088774720819550094284666027171219668959899084796645237977445500356578254696280866745634359546412516040023121239036222944148758385006042242456408319369097223487745272259697771889197900614705240472709471246119319879124305047746725192016137785955177448376555531818458408518523825478512964776701603240979145297844632973976751425399998225143390436449851985359649892507288447452736288501261108223668082901489156724918815879943183546817956565470687234610207056664713480968038678228889866297977972241158962642881067504153554846711611331309156171556670065476567925480512406548271446189465985838292323883296357456710173599701161167508685376716527369462421799620642227004777460041793520401710608692829966350118163210565466034102832247864974762254143330742841989530311478500612071426091860047736914112256320968817070153810530049513811118167997950826920750880016276763976959241413033917862871275892002539012646756744781851204274065762887870932405105665608089840219531353362281399374061854969403143552635153119532932957052218450199819451265301674078239681126110425882304718033619843601911635536967133204105990214207362362872478320667135090914495745599258698173684192402379920962787064582081082606596019136427855875655029063221155615347419518844781125123205471483226963311206018621338693982806765136338640842263565278699412083632365810846087808865236564033915122910867652478157666915641489983074203498496352378687152570851947971282038916113845703975824732865966987286247363946780447635583374396187035085063708836620636852358113177848165566526589444516320649744471782992788930104680773909425153922572368649590156147921272687717670968079017554511015279214317301736624187364231479596062950962800762758769581843987856299085784726983470902386686598361030496252995273006671350177469601873864152023028037147741728671443695365286250828268663004724679254146597534667355059761415998774070294736438730148566496357856525376043129997705212438867323297788199901171193946595879756381763519311015262461782640319790181787406426998415029561999520818193145747581026692356686326189475030389584575585753218759026701962304548393262031288024076186214314359222334928916135951469948434424295275879169778899495249374462877606529601365105997361215217617297408647286477873789474197732531666081333247645795593326134321247715060437283073802867568659320330503361776394072522541437154844355115393879304302505337550511079789371932460358373741951629158077057953494272374427226160292920829682981875200839002788488543961076568809364497800117351990930172823242995219103849710285215066835903208937194190948756837803853312352721000761160751808372781497464302415938138180372649853264950823022563480564827473834373215943663534584202955461975995469790342626865260066770942320630647059817509614849856002332664079318428724085090078799745866820598411971776910627122046835791720304115171802497557608599054610649315174211719685424958913760757498078855134477091316183893538744863389941721771734180271524393454918608734652373772273766331625462405260806079781626792350892021325714953285922952460998371619675694084008033465301802358413609973924641454511185188279093297435098136147999311001392924216853732951803417187104687701702133375137652958260375280724929294468382646397549518627980538794169000155825292523364371441984199922602592671517120216837735758324142578815141668366191687700894688572065181842120836693722156337011480763542797246935084157701846579831524081379645911214033874146794577035501495954356714653537848795106082862132495833971043777637303041296624560619063519855663700904127059338198013329929879520791200444574929972163550064674912366578570298582280518923879094447702092308265557428124938222666945566946099744062018820371825159311731451603131010451232970572036527329033557830034994564449983733461114339192345845263421596185694366557740122312249356036078599588939991923497656594044887375920434555695615528368097906562015821581082597734236854304236080980166836861819669667190431297010978783300176106075776688951391420646633342770252057539700727475863736543686490896278231915617738342655670341016923049776431119848221045075286666809061113221613099830251919393394467205139589326172936243899672156827758533251991242909239316554285640313059534981058628501912940157225316758617363306197467542659507648128072691048419603750261598829051896326874387460586535770316246713923575965028830215063190843125420529709083404139058896222786801122248074941540703852666608927533495716721779952111084686678721272831650231349848545685708898053136536701664411614332878560398105472118195906023771511395551645149805515152644106291193079274716882925788584182233447023227047036958679062407269543327468035655815230943541180138179910354978729080352692140856552959578349630900334810328604897657095619030662687938398560874493962191927657435538878389160167978181099892427485017444224757876333393354666836552294383783845248724217511390160206099102820394765943666997683411491813474277157311746335953580590245609803917017443513615285206629480498353021246589145622185962484108532731784641565048446144174850872898372757747553348700196090483374177246318907490866301404960439309654112368122747175547373018527101911918482332959954942192104579488147117900701215927648316766201917541761081984007932926074430303616227429979726938509084645394397802668072340210789310126956706386361516733716998960363915948905830865444348960798593472622758665494883950899497051184262093156864680016548477327070763420105583082138334135314056462792200920934892444221936074517556039487520375925671665215328948883786218799459219052066071713812006487269992915642517004061787386278817773650820670140557144716549855404645271471238501773520251502903727456256922681997826550772220194757658967130627885241124979282121822703683587394286114358975546067744037830491843877985130377431148414938471548923361149242537386933259738886171708913190722687383882658082872447894311267894434298976004385600935893845918700797136659133879161124407294384634330217469764481817645667393328558871525606904606673928757511352409228765238379988935111567427084469867479970784200629924841372874814627638698458277190356008602586805082800240188282642100898907775931732973983521331160883574077177836712118220474205619602134912437316718553739031866548978635037914506034123566451258838830059533889666628632482219089879661663666345453716685223264005722579373691348845255614949334207917531842359239064560762444700131312961950113039583600190705706673664532970430281509946259223731363763424615052466380216317239879422443054975835336830101069255461022570622797169687315610173405966538761324085243267494630227974524809801223470340375883810745300608440894965537831613106553161362383439633798566377296795579274036003087341613190114123206614651342982551105285511346882955322937812676218606086129866114261003598055380904037800328344481848829796854338386838783738821081657938582132576355049204264584408951527681417376482844986679484172854250017533050943656955992374073557678599885164221738018295615424162422078556167111445516230317239471431875179442332833179019777923181459173557348548961411583016139430854076640749870105017219766081880017826076302284517694464191891380185081883754330043899902232238981773582894015923112826077303915153986126309434259049509034923267542134968949315577915034222086014426502497724456821770046627253325798650974924636830603324410791735602769475302363299610360508535346857024934167884823021757995399838609388057443231225789909100019047954198198157840064909805844217369325944867698908746288350983840271377053106284219494070498056568386319485965659638775430940557936847045467069819309319768893451220995597167604821803152978810148497267684779551091495857669493847649605054277123965251230871023742217469838217068027533967336160532351812192696237437032845191799607115417804856341275597998036089688601974190801876881082271193013899116373907015653054924204010355979932731543569739199698805217918036779778495440706444746523195388478721750056719048433370453953836590463890102951976102868294868747404385308066326798883049486140135215373697774712709955078712830738219920181999521479000306565572037398911657526100800000728348795881800038416344981609228552505659261695949802735846784812805974204327210338220238092277028201006871052232975763495992889153980405659715803054923542446727566887728183724597061415921637450510868424889417457807541256921907493425988788379378487167173444420965244404124553496944898841247365338255897764934641179609224680739366638888598009245755514802271920910840548681734378795328239137565428636816259839635293004588960929763891835928993832848915769074234145887020148630229123884015415448442055273336146551122573520932968745296175046299810014608503358051026236357762238370206170135041760248916980603646933999801132018106798262020336970799718262945496734301712866809335944302094264836169443967081768828489756431972219448727585916851875493024711213264798888214302648068303312553533275511281089233713498307475617595245995213321625577119367016271756001507447796032847172794978787047427085448407322502395002144044480024068685702735027255872256399304466482007739325166310790794291008537271780868392333029538773147857117850383732185530330533842495129529417129120660490711906499400200143713615091035618337059178610696669281234554149123378813402754243796961921652811438739815284219976953181260953833009477507671330520135362046355878059221438414406014159687245105667429019556027646625448573565535949715840352122242256840305232707169973238918877455588891225206601341598762707348410426380370918360092568739762833398055968357837988671858621364234297891033466330960226200250599809007416891482800118201354245583167980491192590979155587002470429116031053961534343695978167681872925629225049792092907672871505118609901942985252738102532761793762414647398017966575538433307642290526984101978514841253262119965930189284393780777245985565741285358698028339023630011746723409380413353142979895590071607825336975893727619190617459108633938158090527831660147575920245519129454734765887167990890853663073855169716352385315861506087498357680621077553391288545550814278458663643458476969578906785878784071548976279776276890782611995859602932163340327790257887403121837374436020614577848870728071989622589805879135471642155612126395234415194768840563077241706512944064485011773353848260069733497960868780810174283937792720080200356583657991733140676269131622032095907460723024085598963308274245088807492487529478903245894392182538375902625178144883610834294468890038187349444951216608383134072951428365362747397954480359888336942676885989694593750995368280505701048795592509714563198781969798051612437585227786800532411121155461968855357780511110584201552853672938746081936707381996917527614203307852853392843059762549159143910054458819350332375376488991329319016306740805695127207620847117522996900711855291248072893473011195597451317076281945566958056924112094321376663515517733416527274403532403039797161912743720515965188559819211510156104073660424688224621625390351442389472358720711276661169778392527186363506722659155765346748376798011524284342449435853738269340841674410168342993657895698323455390449798177232775709513450123814799016104930639319548207890032406787958147156765886477819748785237885350694961287801128202839455688690978114584474281515174299341768907182625566088177904474058054155555579637192540087904866146202071822154008125984729210846149187253087730802064724795953505450266493915602513937754948669616336212388519310399874233423612942623533029111183535195336305269631176824309876664935679694514544030172075532248279493915768278257439624941780973501503623806644991787700367623424233518273296105233423718662118152493594130495156733151555620759386358342739038652772239837253962827049141841512053388173134857417911844237581002708400019589190327980867260921421047073419830092490742105825953951771204886165221695193717123326073350680067468757892916850629942081350162752871779808750677710978717959692044862553955768346850762649867612012691866221063451453178491247741864239038280870017605035940955676679372996063853729105098726883113303516475464207561359899548355175120260254433680114438229600057166077056897386805743741402652271097430033285104107267524539256197796076936828777239399063950201336118153374511917981051226870781716599604510695353670503389164309526942764693558242547679838745152003172333426591946579773286632029026294420309451847394094969177739935387192272397987859464307247860100308607804508285827197307140269891193788225272141346766000927272812837891512474179573959168575906066907673185961736331700895618170861745616734972403330094764467673303391278010233186420280869078348077745659889782292357736162604264707699558271222616069268455527230202613183823020211033667147508044444079678652039708793827474383975784551227937029988601162314406150984075819025022260965013181771166551586073785744112846788888342915768910698661207643186927462264351449047049556190760185396894032248404572661199551387372503297665023567212694496522860340686147791750237822537103034713710259550039039128496129636043459281627127158910812146089162860389054583424443056242622341731514746972643408153564851225447447832801104526324979237788943036637811559336676172663433121680298418148038442150992923866688605393027727446873255585353849601977510120427615600278510945640656007213839824293046997025019845576941422199427234185751596848568728797025936663924005785618895547884432441768922129449395036351633691099519320089213069491155269575068099840012950600394656180927383064814638532674196726375440694397909437337157834353130682099706269217114671472627277703945970206334752946344649140578206107955241325006715853985156483467297560414238722295195570871519340526327825078294240294820125864672581624694595849129454712844920153480493905420262863592363749282589617553040479282321597671482784627748087627961135271731732824200464747459554474279413834888457499205654776920335641649591848160099699546261835600798473412558097359357840561293890705002670745982461686655294643438064692453151478756385113016087987394981266888967357274932964654222260608094434869425099064146892762300385622406898360136963632176794994613145224008644878385033183766399365713654984951074070730578910302966996393882837736082271686144631630920489137150936352874626114952456158027902386777217228128666625753353288360063704511385488071615706657811171986994923389421651438932407760733840474915263935895444797961972650399603567923706093939568208977258829357584707482202284197457116105454985607250324884973981423263480482635204285655193426730744932280734561407638754065582906897748916345416470072895025180018152935563867945564474821468535217808416103419229784645520023351336457064757677037229751418431335860289078645842006189894065131510308171988379667443091763106002070224888866535798636859979239861987833910685191695702932684978455511162881969215454700073486819739921171954545630382094160717046905178418724973796115473965858724870557828807582725972513850932344512734424750171670687151095978813609925315739000542743079260211119038102766255125387349601747337547286628320897689602970114428271826187837959458802014090624018240875820987135989153663862294925862062408389403629684435782858954463477783833323075935578470411054478294315089956704024207528317059230345110974108626405578407581453202861925640037234047787984261248304470414729576350379330992269101126690732114573394849900989967546352209831941686041947580144149989466729341051052821902903039176603493095168600951610686633878664858139000839800026167004180954127426514242970697943994657082820584979967412934899300191574600927746237328183331250126534863772841025718162233442811409337362886079524285020653358811787270460034386979133803280117651981145005045534607420353864631910430423703256553110515510937118968744635391387356945466692120880250172993569576968865827284533619395723682331448482842356738557477741819569150042685763270485056916093444297040032055809832233117188592029366558692755268569960568035442315378519952988776815955671590751931051782859750958205661257418986887035677381306526258548892901762636776198802635354270704967124596729069783004035123776075396920789822725182471018593320445993441989230938944980281037980563617505334229906243490221777553229175306543428463446934344717717166026643662493806952331110368122288946966489938498914163835870596910135470472231499245013800954144247678916200792574759049632869145521368998493572861836850466000009258661140203010430011820530977280033009062137054513982416112493486171208908144904456183475267617097029990574845396926118726966157420724501399715393182920334577114886370745834176729853485630617091729893067356489467965110592356259805869019042092230572745469045299242657134606106527931045330261153872249249585781044506136327994622085509957814178035030417726437319567942109614196777359660525235797769105724433332568430236388578092615993403465459279586100762193163840303205995101685091266607358361389095594753137466138197781594344102022823864085254467631453847785448392674318635538099020226607711431073053966269984029678534364143465709752267598572491248069543120495472359481238802466122500119202181079275939119794657941560706865179766678084297040447832175346193859212029403054921951775100401974607494478776429146283375213386707082797289532041102308576491056705783211460159073339575745294049878882801850184516797285129454612147966883202590273634098475341137599864028857631122462002041465139952277178917833378446758112504724095972838896873259910722147937594686243950571965520227463802919932741495306992900261459244415249925048487947909647641896231009287675475983427076201175435957142246417764754588173688310795713478509114427044040932751955770673248577218363298673736794752649103329236694520877223577687456501281516600300962285454488379289034203501048431632142118616558944995887757551385778696500738223402832007493554021544090864874290402412923009260844447749785431753025157469756893548203131631494229842817448777719951607373082097470587813770532099475356355371049690402074935959924909185449415560399435586984010816487480159487597824485586811448508647763162452695436419876635856846701646687890970934339435948883144975645881726794285080884519387107121255765119007967996343055234864691413724498998688764469305187543767285195634598595612220573247970846602895921988156614705500987684911685029867979738818835202944158683028497698230667028979701965700741107063659590212104984804814235638267195225769775052872200773121010510935626814562761971913783830441546829622714960750852715323279822229000380267933672019762953665117314864309199316284847124683165095360192246652152167780794122812025774128399891506672030870848126587205960041901542399555712461697298706195623962845742599567452526713891531353857466418682286774746348747994878410074133203256529883204641474781445680050062630557164907922099863129490895974233482805735061564826743030368859986357662668285069188495696797193479191103685014977214050806691565369995751245554769152308617233568442404630933772457879228025023818140559351290152779017331014416754054435754739300342897495461081296661309289660106483505251106804047858404484863733660193810435633975231154116058389972562583116583389441157264004108304833322936151969005766450907803978336538460374700856941946817003160333060258838807302867758768251117364125388896640915499993825625361736358864395427212860140569094391597192553473859504107363598701897607715269238101001783309391614923137160921545856987470606189896864120387995268877581349318347915189659683754844450823844655871392359140523174637698028193331135552191846165944956707720080176422415219210065874060267899528957019937239673485175701301906101361573532745853280062867530468006863023795768850883338072047375615590648407113836564535409736309161993861595294511410782644230137380786768086675896258968379708423773238720687100974998678118773549142689692937860451001652470246128806528711403760579651608164065182094523132004320894165063023598971203450523737243431853713863839252766940691708173898309628427456197045491680566929570229352126056419925663907866678984110917375192502437721570025714547957633155868384678519516794689319694626130568517864779592157682311101524004879095919180460267267324198502329994873622455956866312484681923745348632137576889027471105924197411214175577305238849545255045389138695913352345000406811126178268368946272320782258216639226738709843190805896488665608052619327286980074502421432554347348072255488749918924947947326480763614099436952880664820351274375717930750059316353151355590119953228645505790483510231826479386060624233191101215244669072795370402953785922418821154915193556313847031579842642957621676174672172774558607734997976005727950958376624752754372929274861746416388163436198208033130109719646938689211981455059684426232956039507441269579957820927713131983225615093879005972201443302318365082963087168468546955983930239038059952721433174814973733954017099589689164049754667589685282747588271570987134268526469109318136569773729911222744215212321145295599532448350974464317620599775436256020092165539116344842054449229502227518109186745231424467830707912449822190054292487617695281564785708459263566565581445463856059409120502086110742861197150991703135523347499634362671113107885318224980096315477193396817171744324202329877468772514447113295659784101741409827096487507743282318952215549063156999188993183012887252371934599321000148562624147833729777888193557358278828080838248169438480805332139180778873918032588562271680825213315399660245585971021618401465505035914983981780738587688510541109162842354377273934220223695236293195305439127438185741783761511904647433348443037019859995002053360498151513834214279186877695328314090666248309429337342649042991761136697242121997713403171304259232147355326549589221064500492385096529463262394740089694945242589028636047269020754205306562252392877240063917234609118911629776547080820105453132048990177281304319031920088277973274549522156177284410570331281897779500219170937052194489823212562770184270101392838964369573256671694744240863320908955866417047172799695528818392869999211278319244799911687868403651500562602503094201076504594980519357293831818215637003991282604854656292439060298273402202545209832021915020916430081551666543498569689965194977142861463424933326030309216867826332777221131618366700181317060558945169068876889117903998683846359126874668043909243240355097048681452371612363626370344278343235856953319001010494943326014855467424585170350400908814542917500419563727529589877072379914326965322289451721212549731088482546652961013961866401842029299931767356842132539874511085354561080656690772193582893714552918878344086995750083375585374197148649053297658176776049228526193506142977042840346337897751643751430122314221204060972419800343393454213132294350629029256892124107156982830917012002269105470435359864002133557337025617468365241120768858071518127226406531227604009071416083436527097472182484304647909909151957504791003695011783257562058214009036175106283674703902423534614720417200706145277718984631958277326608152817175751549484402686608892026440990264272036081074944303449441993677655833495681914189745835140712962198926183128607233197207580833015684981612667531253974326784473098459984926056632696553277079092200791556502120841586675318375712165450464585978506175933798295097127400330437414280525254467148183718253229411512502252970551917460467345071764697601785491633328505678703501093323251079082865357744638585432632292667586425541355639451779627759650002099071058365102704363163953721553427501568956805375077696834917834223269536942313406583389706223356638225719212003614778730060918607272669158629582782173464965040940971971016091080642221558721925878802325122445748276700557760954234379797940562162810273249683222945385209751216673049719160458486049306914897995254349089527695814532989432893233228687934720755803623917026617793002808718433527919532745867582422808014296394260905127400592833558664178596104618102690452961183467483009761494401049305383635376116860530207220195023054377893050421305753898379855817995789821143422912332790891995033184978079466086948402545322175886001687094302793966633203118661942003132044905566129244792355419229364784386084690333516016827794049705241253665897849324027391548924350613334807076691333299714954608917238149861667147811804574179565279034524799056298317988810210033938851281973386238531134884428655864423223724979884236857039820086129153482670402484329683453255517636580444005039014615204809312816436852254891376430980585667710672483074240327963878172303877770081304857231145805329636983388836909878630829895587998933093739341709981676577195435415859316520058271862365326549730184419985101060955643693635236866887720575117894856819913664197892159976226211823218858313054694358856677525021055814989768095162632974683923634289515677043762517043804259668208943939157714460172051770959407949491094018410327229437759692728977297758427346726992129216031006700801678379676866519569211258790800466894316812772450836279485575142307569373518474378710479979877363432106944195495697855960713324260153352427931911108268422162064776504315561315831277196599604854743150617221945114851953520224239083273265150517336454228694415221738395718292543659132367036003933577839570717387052485409836465853193537514514508857424375891234270219558518393872821496604735118703229584897366699212597231246760986368749911017208895951619697792773407709442393066899802003925976869709664131610981716669631040965962528766883825021467694568690168631890094985247126312783941338141208930901167938756741813965975820111874288862326966498351797118715373164308303673956924276397456047414159498045054285280289989084770335046006041037587439525028743735253980674877954829342933687067359635507821355422870639284060049075501801521996019850255382396104555041521992693410917018326080840566079165540162939500376870120774899202492646533381275201383664023651592071994582355757207245985705111447058456983663852821499650525357430627074233324244739068818609653141924734096061677422817046352204523461857320093718359283114767081256774371524934534879803645710313215284859754457368959466540214698823372062750044565906285583811623403816755676303025417970156262974219316731767844642945139882268623690476197799835575807192582156953874818212960587733342737560544125434147208371985600266670808023482447596657829714688104106366257393406610811248265673848236638269399897420468760797821588078828818254785397887964904473613395178131734191763656290800052195078804107598563620603466597931476136129795971135861243776243997501736919971912154938934180800574897103765915879302566305535014535463502204423939778627474687235019411926699122357603850318912636602900849339477117067097459486260482930881210749548144062156341095598639307733780512004276026125586457486540137523282284249746947992974488201017341128858681683795023019507900466489267637427635862035661142745706525175964314531071534728667394454576433914880982123982061673650352034284865974229153035480364920298212763426221802592617194270210605385366432247601229711932538975562988406366169468240196006915306205331304829852653148349190612602771945812428441516436765381903958510610709529038599991828079027024708314124289433198932860864865863089852203302944785851990893920479849135376432749011111421024811317949691352200923114262965509901700946206615901598511237859410552204823307019519506265952810515601704713611322209196106580004911262044259434285815949038428295644967545155548949264027165086538628987891062599178210927912660734795686677620769004235930165292727157394038939804636964822265513924006816134068199818414006773531445649836923423694100112799072298374685184167043003976497087673695255215053081061958903798083690863604610649247301805089209782991919726170103124601108469962738679456792686958240557799248528568338933076356564546477776253952625903082948359337490738008345211139799738628790124792351381200512896421723439947994641213843673724066506442552286935254502771965324513342285188015088588825052682492274117078607256381274943384521057982656123637776376859552755720720677636007754495795760349058848581716614944786946887792480560421168807173796819671090607332302844199938620540735988720258530077968342978598309466682692273805017646957934586288374065462660205994069908979024636767289866850304695696893166950760837207998109433619362349636479628157082510163093471196148420904612233415370889403635434060585414015035940673821270696607511311218601026135630177518532936066075423323217264090770851149755030620039358006688301005976433205017752789825967118499335523909309344749783493574100253515244079652496541176960800680220434992400698855640975191842096423821064792170644415785331703608466279368012290611456005141381284266191750722880181863850235592040020352953542572323593073612300155848917957488241374074960596595997143787525153623462132286202913444467772571272351300425528212225849652889677827632092667432807097520552139313268580253096895040166864500642234593123941157932795791007266765250496448816814329430162947444553309551721318390256297771991622491519785956188174104833631605554743586662765847729157993502479115573138366518432815302357989544273102131161684203827709603130554420399940935538429049438078662002602024087400903698756999461528750182062629756198258078082489271623266623250843971422548609272556742857457596870061214112244781197840939240327251513093022400775003048542201296146716947086926014897919030382669432279618607845793637829516050262491089119452657647664725042815125425120607243033646130546736656185966426186488870178039471081159890478251017708181454088986926173735074692857330503117149538663724483318715636721499932766389863950426833576585611729336109560387452531136801624539958046331464486743828392474511660741398549600312975386501100516642570158232008836864961418043632189004300870644021536336614557215490070675470953660478853542897625597933265569507408300584066266114950604403952685102767536463729332890036823322213350939408783507945289029895740508624614993454717620635515477277645293547344354623923327682321633649618858116715017213607771913373705879333573514713197500414788059656713917560838618501926679985454662057106540714651549759753181317992272050123162830675023437992212977618037712301256898443194223293492729749809832822713274405971174210244907157418233074477266085784772893837415064481102584639096519242471169911279295761782529651677778600270707362427197771586441014599864294484856195086907620191989680316057279995072585570936996301681168920467347808242297677359922737651495325397683464376549782780674598308555102436929873053977432706308573727399830789211652076359721396127906268363931426899270586467456971316670372713402058601162478742740044965724756592529903221736498672641785710703336120286598531175308909165325998840522291786833937787801559476707872731751515995388670593493290042765605048715381337660589403216930800776003518285313825326764539003428802193663153226288448213833680912591741200801771778417144275275066951527321709029892786915566835877035736737214236181563934005030817333788672510458222096398824706864836008108364206269061601442131155330836120685600889129648048385934513156367071677802308350893285900236757257621745958832441516692884861750226607012589961540752545895271768855539436329634486127209348366926440708721477702601004196549805734266428695651928641802992421302103207932921566920942092133281748887412525644818240768089329694514725477745581432364035747419244082735378548000617337415608061731702568167307726609756766052965477975916852601575815474167268650739936477948619513718890963440044036747999159338827001803300462226564844381841611708044581713381403875776701003131090402920665278756961241851955510811041584620493704048635302469374469018612358747771678246707375261384822812602203553144880346165400753074624710786383336385813633270759411784308577063766219079623045501302387492903563819518127761218099086946762403600961311047054144477986322234817991215174009372685831993614331183478296946345159697747688188637271501119653281431402215403029140019317780216654392318561496315418492236904691757066015515105547128327977345828582984440963266470584149118711148719968755736586573201829493924921300839385595359026907154971104620756383758048100280658139720291331507015590985155317829328046641326340811333334774941299191214411869706153094738366249122178939594137638686567634727257151506018870441065360796423554560403471136729877703900507624962046120019369348019956854575999883436221003164171137893794624758782415184711756192968550800355264820644679290568010117951849322653258921724680246431467468856672042300127852049948610050238824678376067704505984715066312763919630103309880064742175931955290585965153088189408950673091258511871946295971673355069296225730611124895857771570641410555849466225273449672440420749179574337660965249931581242656377177109297672871765415914009476326117658376810171603459930735871155445943476529542416161152669245819430209669077683419995305080341137542501697140725930505786641330030827584706472540088291963057358059140241434255200326878756849616602938832175051936282460790748021490060795249125615281197926270914081092196036717721191749512810779433975164844727369139400027209448991373053958303132482429903370989685503447872457825122439228854436068162657319421805220917595192145880821407136703581542375941186228560004706005460993143152630703978990000266429246000753557737082320378238650529292732309868364469572494398405891530435149333286219378108072892947485243869146301376640819729121331575978189961351598741821909807240681701976880831093546740013452651305590825927929502461541519460011224583476160052336575027634591804561388879280587578458581559180640389785795113682672866331594323742342819318407364700972203237646381628031445874063979716728174537648428210283824603057440254170637384212724904109118424122118580265550053333275378592009358539884534616525988686932780670315450047161926615106166206779945484936232155878822449415220809255066738278648592657032626884003038205436459181072391252869373707938418383302538665802089629886431732784222235235254516219297648608904361480288004073844116922592187601397492993426960954369650398354054338468610175463110826317198164647102159423899323841521598364095550810212756903945578974239971112780570929277896264268604732870285231742186924968916560168841773216385398455637921695843714531952149818759320691331147507928388785380679538715418313456186096052009332358920114232223001363320392253438065950623852768389076866866986110505853357330136076563676946673441107082189961220987043786710323734834819642205008419877471032103421380878341712645288641122253025578967274936164889567070475874735497175893468994558058311309967279135514257685305846598120553079749057153790780837229876992393102412667282826182669584170202160386088900372579742425928995101123885159780866392778418869925184650856249982001328030409633438464677420399017026179337738933636823975423342485827319800369861402698185900850301778087619669253608575393108846346864492146422773799657534362343740167983686987053910472681904974955536144026715754255328994981546854572212543440720408100871169231646514302117176115380407308645875875738533781034822727032208861835502856565917710265396036625935030025285938696932364569290701983696942511087629113218795905465883898290120896007389370467714345433610841572248796118582070892612603446078543684731206392640839486107774769710956287009373713601215271115658875082234781150541790173720504934860608293896411595933424330730343956616744789077723745377914383312972612628449059683404346754937645418648554439090445034616784360359676052027212128921269358504271990654934061394449379046633250570415983853968771531573102575582542661894608202251774691887424402902614004019358508641325282512003918105833633600202139483120961392585869679541211930618821680063038515227041087951413696107781811825627867683795427405763505092500225899924140859551467230218302085131686829586174876513420900071995523918764061909860142106935181023689075644539392106861245243600345239766325204868281744501074840268576581452863785665658413455822398176658929726935059261796011819796567241080857803905060881554597339370174886146087022590842949759262511547160905743047822282528316410830879592089043088285681677339691617630324162492397843478868333107257953852826100471806689833093355315479520213665796870979164121283768483089997999842192900411565626659908193993713260774018727832066638740612390056812924059319191057668025708834289949229833155743247116363754502680099946072071063351232514776137151883115892334049615523606797335788625517385304226502454625352431971366850062346412917563011517757357740879328885459827500620784858738288967274874639911004913154350180070037564616020935762418889066137953584829091764770850208401231559086229608633280576034397838440005419428276617551067434010016984101894661853847284807269796371879726996147385623575026463581433746992062291329942177544280511312761473020773501249064899308163580770961139047319551624582637001135547089980821866867619338224482205914826083617644134220142227386713184501553638631151562562509976594595310641562217607700384815138361059910792807599707829916035993375356413076702889157877013610188811558631268187417987871446017366220759682737543353575888325941493925079414254204454832995105798855760400047304856301429328808222365558599589988063384183288315088640304001107365608290284909726111532823069811722723051853177451901712055581175224164219456342490565914559296383058344029035569822620017710589063402910933311061465569149456101064293458859985098480485091159811816576119665987603449915898990884541871575563024803802629839946950114861193160749283467285331400654436584428792664316390715035874018650376861465897594637566628763613502629774761781174370891924215703247171642949290271925889102909617825000256347224522626460845693946277042843962428282052892603098128169005304090246436944338260330494886813793599602192797604614910603574760162629767203945676620126172156493931037450859890118633251480695565361020611542376382150037319545821976853944320910718564102840011543351761514264774672159780027438616871411579483567761233210911415799946229752773756313554003128008845725222080648887676403272860639395933840989373459342585048116647002064373465469962211272425506982218560435238401038865537452200724868590665840487619238722866906914841804890637414277228657942102955913216022826717806030738499819103277255407801447497144601214342147701890869342922409167972077993933211534009524908464398080406601806997531155040764698442432599639451680603176145927721863133942810026565128726319464379272557612235554180108913029534936544674768900696331891426185182131124539012975948841625722707391407540260274302703919454583976423441166181916349945218193957108505732345582347117516134695559420673009025399340154884988294250676722777464189522460102170175803765297509333809853145097955108685149280166953817788301254072771231425313066510862485806014425122170193495479248687330720823422702018592047380261842274923013394057039360961356740765013348207827505689177310045596110415990178210564641659337442369299694436267475857601276181536172926296377657014687373731449110788766944577828637672973312625183124385292840835556960908869117608667689853055158877093919630668470140846764074796153556691299724193509423668187493637234300523506823057405535779612413707996869992554846933442275727700118938092168795649299345380911092685669153927562835816152918426948467003381393181749824577740775108786895021464975353084119234673858921946180904329832440696362533411290076167337863877778544937657118728534351016246908583290689971945365837900918105462241428681763617215144519372266092489702386343994379996103144880723478612252193417538576474815609880732746753657149842724974255895178845858035967027153909465545626404497266783914459095429898173056138632373929036028670397747721196106872174896513124752454117647628363523260518004942902695141115090168787608964433682811999255284721021711847447749966972207494272655943806953773403981787532077100399197879775550819931020152670309893599346507100942291160692924104915071088646886946497318213397471157368856388412553627803088107889600912564836498601719703562822246604455984863938010056451389883595282398509644163554889802559867489171874168991582008031765611305293827652480339637333837866947649711921848114480434476516519422440831090559471120072587650430813015699979512937445188990230577621766236745874071418145808606222267840259904067763475632525238119632429575759058988107418130369675685857129298652135208574705067172036729193384450190675288802807996216534239702789191729644287336995472728218421993235068899870839645395526764832699518479722329757130979401175170162523198068107141286308923659319737892462279266688565993501531801965452488904340364766149165834239672030171020862173729575707674719379682134373850467281373595450842335022510551943378975026244211394039551241908572291226354054586298358831591338582939679692329235403116653945041092361061181748338377298469473015402605376452682005475568885591792550088007387522222444727201875639719541193057503606525872982353510130735036827403415151681572157940083660711937008538880628537942294268095302458045330889268355663340361347359595874306054911212720743408681917094634391516422028425410934264235562400563435842114199146037268120061042608957136740218965627730999519529562335954041855264131364465310959447199726738857408760202261080944213514088295169086681290370959884073476872721557006122743422080342734971006545789235907530966296898957387613575052451302586952475014336651507839437643912801324677425987248493447891021069140645561044630497419785628800757841143029049552108786182994154547521461993862351912968596443572522923415835852512859953265391598990817748177976387131576418500010881001829571409466649812801088764498834597517092665887743171943113430167192114877671828155108614804380872709816810058300736174500657365937420295947281889517416801896159990947870937489072346222743592444616871106022362029584040331270257583299172060642151192227751599150755258167096023116947472755432870862852517943213195222198131842752525206821954370382097998901575896286982922796787083230320667273772343605643672514823872445157873565667980522109251026775187088013095555832388309671016739319773805351699672042772734142713437577281031092832060005622162533120768344920039455001293607990645079343622122939902025543221190638385267464210868290232048885266686224519893314614406736830111096209826873039559280596202329012998877851366214366682805097073171288533478871384074822080665610091788271911283840155533950508647284755924920947386354832349047486036586755573266588559025699006566628720257561992267878572220892849404088223243859432263759621789787480104862015563163862807691075861574023506139201741578861727361899348783306194987371406839089278220786266053500062812417698855358448113248436080090193897139678021382460629098066127340273050570595059534288830059052111438848897453872778342972623191038491380826407793515108065410978514782748947751556177855969842363166438780254230120557362068433608913698161383434106709239903328197203811984630860757115939032650370661054457715772703218995237928659908674529880120533079776508859355118974873504300067881802711225620893996364821448458685138460863155635582136372471728516792965774521269859255257256024988623459202635268859325030734471609530011572076788616588723634762717619260916441777747906411469607849564380498203709682734288727824457766431556734636191134199235226729390917126609544360014936604651766628741859786275429459251466497789298466185982020913646243928573476827159147238244675550347451492957964286382293978188977956545005901933607353161126109488585346759959146198882899840038930759511351354011936901168646741237679880546232692655763143241615344279586710088193340801803763417854015354759398466330052605523186573616100283799251368084093903173213465094489177929765130930027831235941018013320786724562233387910653497272173362618524529625944871354835336308096613499499060966607794288666807488335121369320690169901696562318651972559752026593867812803557716110374924128090281084528104993999739872245355961835597572160170719601261444253372053080136288367734266420552660938300043387584481615261049219458388899259016657494734512777466493236843168779008093072094949737674399227116828989808079073352270934457196316065858913222274975186947513511460661335337291538948454133144264963648942600042996212348493711608954359620814480490295444558531373821134255273289911848984744474757679669317805914209838248116461392781601648034300875543836805406958632417868124955446388610165648679246209951459178397302221159225858862817500869533237988485940512056195457189919906753160541479363152703525983389422866534089215735404250407858919673815850809563018494181120541909776839762258876332346114885578210452919291167826664558098424898699232049065198194913221039334644349903406625535999621882080466773604380695723538987328283979532249249520311509379578972116511955086509089138644954935623800505867941739618990899348710171547834489135956919966629718450576963957735754457460459863014064237936816262557904738149227833096012308024907093058712478864221648670719250204126570884372854151013269090967378674075109654298184280861358589096450779160783477704619825754882334699562826521487352819936751283231952152793472928964420205022769207733789301437473099549457630927671097537548956987184372944275840267916216732965512594270532996879337517279217838131999896353478331351205883952925452207967759643294116078033148732314902095682685789600279132055443447253700913214909224855679076707910152075541127354351275309084422025436857326625594816973259845487944942899907683647651449551117555111984111306106499026920332080263887508409790647169428562723093997449452581928506335047767749981206938724774257389983802638090804211198792193491470668658776300478724793373721427677263604703288292833227716095469243993454178073539655948349195447644556468509163083330200733921434397352555773487909031123297721159849776632264485150650361420462203655196700484144405689008112198854346841101490555819576109911709457776569928531369225921096989063976570340802043896482219444409496627683832330114523251596402103960388245687386540216645187196011141947518367300882742067996809867779203868925414226064694484607828235606052577322533909392870348870284013611549252556848928480777119455662829350569404926151277107419015633754339926159068043113427166512785885658563316355352213953285992867832802980485345728172641657895094114228485094263254823004169080584342212052776830078173103477713132128807522920112109479449463661164422630762604785328703159766170449162331515510454786828881628965169184973893754222256497000751106173147419910359586417810306338490736493174662376939000516199524303815405102695674234160467371804242073586842181555088509038187430065510819055371686166312417911517740162266834464398743324681193243641478967582873448733400981164680538332907557268151896517328773849451472584051720105231704372079051731598110380405230580932177276329956214771226228139362890937171137426899714943414079880318473541682244212828937890188657476785899599013067548496952568112536838571449003428441012036086205092548345006914802229303584898583018724939844446334324438367260278052788034284087098922675710278059666175913215342966119415290995082644779189811143601287958235068074885213061507601362330067435133682089056977174252404657692249446282109079505440227583683986180915676657322951247513223711355668252569547932556506064795242104239419264833138418533105554219719999807934466871981041024552262532399121696421655197693240815411962194929953416186532338715170659696221146926046006676205695881611398156535281343551931491814649284121750090829852219830403454482392635082724746619426774784968128189738057979323722390530837276047748366047723060039785583772977357799417114757416029851313752417374219382104259150575006669245808754463759727581467851992726978428449842250059967414959541047636311460923753490599850143309912031935493590022504748935251333681401537550623983760999485241249966923457733836118547840803713215149036681491825177146823763109070412469475833788785088490964728806440488403412759238776603082087370718681538388972399937033986011463393027941075037012425440842995381175293661730519903066455777280006421155222630852223014031876428081290120954743016565460606447634198277104071026144932878749142227397265523758661078229110770430088613685123944822461444607543575758676406634474277400749828354515183542550008354054629070027925700774162242728096872454467389019077373953456861960118486420414079520785262109257768251720680209547589677268891379665496968224569134099955981931284631827784916071611318490310134218209543818067447893551467067372914522486127276122715358534902827645070458783537520902285309369705273738260762472309794630206570398290032864573011797366470558355401621787323685779565570922289996362245212191351688859899833902379162180624829023656452553636561534081333932951160043817072871168365921556631417551014956385046925084683670357217407950799024531434778773612651948033725964591173097074324058775119360865232671059035141075660122842233354156734916198131903893928145852268481757336827901741155708424012440171484655110808332776672565858861731977443439618375457522242704595965646063257258651458126419912718085872448588977609064150303825998104649164685527272739535292398433875067821550778379030008639139133305228778446416894269705776868985945720520154857381354694784655094342976276493923821795037665138284582271802975007992971236687975860006612703363445999857571198161703762470861009331069975516343892410830322277746373844322586857215597755081956151090742081743948742608293193527370599058440339022603032174191948951544169602732978652255547226223890196393858351504398164044688119021196113627924879523414009589235806852087351816675012967131389593764245992283942916761093172600616214252367531446063081912895650558818278683685620018924252454937548477594233285689742751813358899030716827351369569973341788039018001186258768963943570026061863514973485325902461297761108895525994084613763657591531525889043937033511219771700105238809791522075136651049124226334908513550896009786771165156852112641676272786178047216793723545146633953696438013620687139361561274401066470508036776664497872195015647751818510411971257323507149909641139535018542215138751858931645052263167111996711228479961917841729560767756726762018422198404547636919717762607639170137932597905212555157703120829973668783568717267389687661648511896777510235872527653074442070341054684429356160789384747208750150963558373018637402097839850967084541201909500599433953673972445236196762871693723792482369235583049457404878606700164931993305594712783180489814834022336693978999050699366987008967907472291741727810211082423586570136227566673978410365702473938936553307094703156540425821138580186967494717210215962615620974134185832493725093737007374850280891502525465998118796465311669056996228320026027170190676381776233303984228602881169843970469900012174438905275516193938315969481838882716472000994992572530531424080824098239512915120377416354878911407847829274547996721035573293739351664134374659810797759496676996490708209426117186994466240104405088750491196973443254378339923811943902022839776679263205346374554411429483590030356420746400696614095490910636393950043041524584253539346153774048088294626106423232059604641024261992142060025030924956732216953581399375469499738187117572835649999762577213112182690950314041843631326618712890037629440578597980686390585796394005863976845064273389827714058854587571845276854868554497768471250638144716767668441318557430296795318308782563147922687498179914500072964851807900112598134258471078127654835615675291849156423749735608269831147939144598358827946052948297441858695376110130623729686069971631499300965306258034684556226615226463845783523837144056708838547315429411270293612276580352313508760521730713469552025482043678440331638630425613591509036224900284760022658715256564115581285845773274870496062377427473734775253552887498895503347425693663253375899501834290390542882417786219588693029525048892121802167494960753605119180231089569012611552492383579075026614599709159515826517522868754056515919427131526518993970522123368218487945740064352218069522866186482168880708929218787282981036502368145078596678621948549213573042989691508840585767375009389278255368252042691371251448801403215273016224826560612646783250308691868288764785088034678499820893211097631232502299825956333378758290085291898457759408505346736943893034637268505205216591358398959779986202781182968453912098865466486243314150716440233134731075861317615272274950607859937783033952202089193069520885047062214501925779110599297632462504187981882978231848603871924844314300151765247253349807241067757449046965643945175442584321180087319638529168752293738648466320105479410224494252942561923144070309355638557686908121301439963873176911269193144168414583203897492338469677185287880069425138469764450034154860536745516783155964432738316771812381710086403013837999510750886188464865955864486096942484254773146428209002366699323304570819968451305163389254947434866875245354972041209866006628866708060999011792708784829247792116796338271282709499614013559292790602099424863186392354101562915118657597181440101185637265885866653393033791666301926165022129397416089177518839793017936718512003091284601705002656811669440871897078545919273866852794989286212405466525229910575235964246542194888088053571131123012758904124888845374407026279563325811644337271544583627190247775739123084906958577059598222647967560746295873471796345961275319530903554029980518612467466775277537991043359265151211129243955693820090641087406205243364424033602601963511563984015726718078876652594401056340262632967935352768031129114818158564027191577396214510183097490069502352750659504326399776706946154789187574895358966633664216570192129428555869557113449760501071869300082425220945934575076330408922174040648922430566970588663020941853747654776421627484730972574670381127330204807527384073555318486070755653853744465241227238472897244151676578690403300114568554128104829723918269878044470788089363111530438123400018400515505675540964359972155497887816359443299120495370565712625967688658235690437841633796763518482172757693214042198672048586164035931334674013725474631240918722056309077095959532609834382860831251289803038528374326256037860125316886604916315779329256120593431384140534452878438204410068857977040412491395015838514325409773050799534785615429754918936212108705643953683838334464042970187223688570964911459698984295622366818125265749751896916401312972671466325721735984124945478345785853817297485936659941163161691570422135885854613081933979268395216480358768967148833275113672644169155648586587026078774148935469007341129603220583299733393340572985669638217764543544118348677046446062295433360095552846197476111791538582991954867572118739743431385675604965687098294815298821525654244531717026573907241080987506580502820066798812128472420028551249533047636642015036937912376339494921257844929582318380271487712216964134922928955241019587071441297675401591097128945621062266875857182582371200658185223187124128182311267062759282433612556333114116396299401193436390346245594665383178976619499335381024519486177819439315664360721892991978865415811433739086259809668302627165449680826971226580320340986602563183750510995900951339193930970226069732889760724342480020364679865774439215840635529806467242823551482662857905494359353956687662355815086678092546461989165928713646724617763861384040821451506454097604978349734865277105963386924880751778449808383656941498515823773295426314208414717798388559393387183347992652518481036801459370332798126366014390934921981006406299760014766865513473985003316142528134437100487758429747590458480397526240762870015135203983948216135649420213401237159539724598250519080759735067333320586916741952275178145290284409301136299949666361555758003454391574066984527266959463554707884977992610886391649579189059956763645463770074334555595354088441819445204768930330533768791179950273659831367548962372447177829289631716611800259024710103281718455722040709491746971728278625067570344666702180175288080274288379930910980955188693818536552413882719930839533740897685610990517647323144615713161185569668010411330082975849678502378004016221371769694061915975583627959624335395034753015381765098418085584329862811958049430721501873763624985277791475315259469021744771675445528746744637120519757708325344567437205009383309499124331883777357076175344612650759039846507497935327778721630081403745892421812830819572930909612894543856593134713135369047661084251724031862903654984225868973365428137771489367983441006997328533670608238432599252901919938213467391595457599535922696081777348263240307649793709736459586743714546591308735732789580546698924131804157718983489050557539752103613335578630902958214853176893097806876994860735171168499658621280656475265962827279823858827610679186071704602487572446458689416858058082084477966929191593740611536230967679354595155262406125402056121139932008890409523952672428784281978116794439698345601266647397991309130957887701595102614726784995937192164594751772316728642241185942649866685534007552195018678581909788193807450924530506908983768864570164043686068933816481239759316945596505015649383221571922051444235540891359610921631458408573133663508859806217034252189521639076755535438967095445715276494884726880711314844271864124772055763122321768803059052878115311340806699290067784016425033850488275064412591547962710192991149859932832871551286916210488703583151333048188570796997445323066026584170516335225251436841049166971711658244048706780847126511293856217019647539957320837396040221108312540404019681244527099965566929362917637611119447312620642818911751247239028068394907508687898544795580289311138219268899363351105612476949093738063843491510289840012859421917550741167005924820037818915993114882040725483363416917225931664428529119906167781728960475043717319081254310512028070200044506566410343474649242095703155684946159413194387114978438831001386462234478882905155982126667648844319268781338176590930851419755292876648448828677131850577252963300060501368920764756782637095862866489466592247611835574675814546137884717190387578476437662960299685942342807815226445243018477759319581722642508173608406157277323547856928584835433498748732543921095911699247615094421372272231739700134250711797243386868874601905025755320318241983787504272295029579246384199466975330239874373882576009163513239857332040049518939266977711102278721953014796397292632192900125285187558578257926816921283935492133738951613472994688308451427305326952559950477291158030071437107483711054608274732654768211262592384742838169723689484851320265935294606900456893591761588109047183895752408188958471815660451936527792502457101275132028183786256069144561227085803611547075881287095388134290647992953225652186406189202983587382699479926883791550507232527121913223658036760995409915030063125158435974655560664241951304858292986141110005806742155294453421249237290115805400961377640509082345774372148539951693189201058139325668030834712009046221809913069006684984279062838205781756564871004445776290795785293138652794135982844213531488090354662368580354665332492624314937682328268882458645220883011122369241997198984177763536552487555904852016988353670990965988165332041216955534802213735578763868606887066898986796204180315661274701822911525081188047028964640919505370506663240001803200044484840161234935899047175973691334217210597456236467791958358350273628892395876143408000688504860567729109329181630461534395414744791252581052104211942059281470232642142141077619637042656007762648566049507548618707191444306726169163945564640992218596378422476881773523351486385048412952765316671178428729250593554135756079550580246659885497881518605460867160439918687845013438526302608068883828823374393224815071723830278994356843685798498036480817908787782088586404460305472058874288746988637675444274880255832449072090693514256093986853646293248293262365597891733057356193534501891570662490428401933709767144501762343723125884075436205740542724313924748105798984765498370227928559344841991630439243760415073005796835659159311445900764794435022673150512572826510156878779460031615763276243735421073681562639947305074793835560654870240104087325997169923299959326037182610386264648710229766770718317257910285701983557930402306711804964718707086835236838778467521033330022539332099004537499221802738649929991621815689188472035141666688389961578385979498349571149848953556711000905659913913270451907644881959256018978276271012261696942510188022381252762413307131282145673128179684245093558401492024147026118721875728442025080472557902335146340033472731861009936913670165605337777995293851473435702055734809847982074518563782749044578867663133348473267254008081189392526632136549679544756978086699625951680800348286004890523524877783483212173131410761086507594124621949495278305828086085741710819322763766080285318534620067289487164718438640794153230567670463167693832121810447171765572304005216058596033063174676664343924024140933702442068111673828086421437305025526718078455947327089579510202907001132946411119789451364477678465946954148302206978512420126868731518795332901868421193285251306950809233927964712496078236297699345225994716248831245103409042240491243164930724517126890337331319760182566515542540220159912431572906964451743611412453536145155976786250099863296452134592078210517995955810094628384375409335990843851793475411767142236138359524498900944037519326642503638667355184710302202494845704659837678659329971292679166083194907298715259975219879909455856594131648214283170361994651987589183690084520320744919473712627117917262521794763227737471830563917492548536188866386798235915830215533160663141298391945588350759332498611780657907680530724851083699821325640703171452623508566243095651801856070784890991698551631977385730368862917431286565449490863572084542522685404098006367342940476039864744236537211348985749446435140852368882877272364878443911182242347464369550552242561254368180470310424657394017516240719864890567146838850832763064390936281374580904909215730773343288253306073599383889257124065221527601991849419583814157084074231421033857609934426024962796544676685808773771776880675736118511144909711454364215003484856448428035790635871366241828123002369120315272782094968645647605117006954399180704057991579542692510271112079677324828884080825582675277759089631774867665454181861670371241549522079346781043209638901619104262185139641013237003011516847157709083296950154596238933136273834729721655264078468075785188169835980724483589147609439278622361795903031564118620365383014979919697396805161718336631239334699494871770040739822844908040688040133768426827898952417857971589007743487345158115671407877829806595858122770907439093959015476326043160913447851399457570402268933693309516243762135709116515411248612586201951661913232124828201767565637037468871123000542337000630608857346477593090215694599872726830480699471291077382747881147309160861609210778537239275690920540774055434739737605139622876290738623487107031494489439968613188768636288654534574636228066295944132996667241356786233840197145726246357005394408382898187848122646147921813876516342136505046656098745316028364386217018252306936442682261592649010162135152702143851112539901412560409429314730930451867952836992891067267207270895587721185734550497778428453671496335900879018737719040194039044426750290404246227085322211624594715176754580290802829844729308661864126331966719086508796238221836135859934322440930064998181208889609446072061689802740299365134942407107850117686777909928903909640239991773814901032533991975455304044015863239177418292175584492934251025824753131861190296951865472825919577191368242110718043357149704250313787086420978824339346080896267379903482302024008932148077107079105345752741349039557943614389639247150344602175797285205646534476197428244946791689687888880259504121304724713912988115836919438016103714313954399843829356139015512815854282710343415033794991958005153272134971435408592655707036829436230627411982741674353422771908448145661554435584378598298386725310119088487665098878393783393791612034697640207808733306885850381242845942679597200987161997103724510892308553503041129605089344062974679715171161666065409351528472497358188164163239134700482979256739955897541574065036424486856790466337207807451293005409598913931908221279527063475267467594652642847394252454912745121419434605825929090917765882284792789652288304695212885907922441474752046723364007103917579075016743360081673027093697570396216196928757936835924426926957850257009537368299331091786710571102912206211126948560008476675553030877953028409857152207264525385482010884658011131675551193177874744276515236698402443268363604205805465463264608550434460144097607323668559626045016888776458433434125759246869121657346717960911936044679317111053877300776083096734849564936173307297751186751163988223060492106851514972872179642389886630048069036482945835403114184273426704045842818764238530308690879945070936584593696043783829892727618770770807409221269820910439752115783758877068089893297344270551674453503692362531401526450569668583269143179158840595119686861826992122570026243587049780750473895726933848910259169561098998573207373762653997013004493497351012053484790262189708547941311192731948733412790996580259433074852748400760423655506884528949834098248737456936725386132792358806139328993000839392005586529118520184766860221900230553079409811017010998981766815363941402265606590081931853249737846650183078938671586779229337580744331233343157396115923689591270339417861979156639041852451407788077636348042947763428327538165687171045259022543510988393004335628089673661525230547331973158902748226525327439655242451265333035806642053720920767082963030173824007765090017026354024554106218588690150566228924630537690139413435861011430343025636432836841294112663624718019330838186872343600963141019231096757102634026234542907644326653615131145821404840956772185918964841134003766086540012053666649673289091198903949260069104624406743532368860601593339993791342768957451700895628012081590442122908440880779048145740415012747983315750213502410029583842019944069940819959765223595857539143635369707338894431229186455028747041521934164084506428918439257054915220705265086670882908239937444963733328393787761209538136395386904074623748162117579385531352696360930407171940992822584738385245580267713825516702236115255669837644256784495517518151528071712739949284209963445258174967246195687933855542493589342363446036252202582441755549325079032840048357909909985770639577950922126770872222178787500177696806001363315525889365851325919071597452264095342299927886934124767608463263380332707067910026549688839301856490060250808155595570619336631854148031468922052963798590210954243601312603585111275313640942911409916717641269332354073701360591105674302708143980481090437150243485413175525322115406144055681583404816908044644759968208454493204622730224407331866123710788169133941374600496245877654140174309476551338133720600114797498377682780754352275602661731674634631624389029664798754347361817875235506145488712424988734835874449020035986177116757893463807169308291424778554958342950840864828707395662096579215733004497285830638224984692314159706322284842763197653906824544718770046946344609404587642214914555595445900581331657003437460530794852062574001174962588502593529316330008823717616711180123672609382217539558353205505530611588620486774877998593171622872141221505108154244071784073754456979854913254572971724079593766213588808528223903087973913587613319989365425555547840348268981013262685588722457010955820472909284524011542522328512066306952121001827822628874565634797150804412942140901552573138742606675729549948866999422474953514763871517955179972219945561039593080629411993799338102964270437803129127901856340210991955803942788378028083996762000003545360251730888588769047849777374645764490059442844443102496146833149484289443390099497009536963798772876626227151565188929298908986903123651932447359603680446018972472856265090432712613859790519098090683018548536383761832891366830545048140532088447752865755604541377503453388203802172479201393894425044577835448371015840507198247035036075945041021343040935881462526824290756120626771337329617347476996370000607012406343960702067281890524347856887796496796649862558694527892235196128140031155347042831494738254719945836827742596766051266265870927407316252264949962726789054319410159084029929037450817705405735559494766535100570831861384987199124875469491318287261283860439347466216918148963164677956713546648578294690796500374053016616111147386338991209930732862687710494676605062959720394330602375465055706871271642491060423122661806000952647462820318902982946723300575936169953896248961925995883117320909570897449839670192038811207971689162336178376051539670693499281740981062909573793867225069806183822188009054415687007691886748568451409267064008615953977862479158430440219272427969385216320185451413990660946197806252358822725063129673736462252118816819045633920169610916737810459434047476138975481845028006837051779971699025592773262826863956642972890756429523267750296612875159055642793112400599758562447710702483628796615141031326868405980366643984060680887764327233541440177811772098818246720456352415968420495483029806574574972139330456877140424665958437450735208109693191481797297927574666945461208880587029974512517306160216147645745811820050449823260443790676579920175540381577044730622991765978125878380650847038399845206127488354204423933032679619163482183238353087062268085374941618872985037627310238975432806273965829149750238609919491818454413595834514937235685099900455980565611086369848679895167344162525602992061324084759582052959431153381581043424108786705637996869622937831614498023251986245782740799831510781203595283617474423342575797816365428056922253346988831537561678440741293352596758062076817799708639491789281802833181357142167386894207193571910673701029805148357176451834968774512495958722396461396746156978274429092508749665940689321861986755328073930320877820847293124453702800597439336988550813980942107910543901993483829509624837575990885661633888754706986814789745628829731182989578607513721890010728942720345202434807868111759883393056642662135022725315432793821108884306487518532635258079055664335305680567986628222086139901104617414176249164136258320706267081154830841969051901878613391553607674199720236853939748737986586250585820608042804354905301442331703687964508395393948884634911310295415528893420097156226116179604963941544023137565066302957434004186008008883577583982066840522345777221539677613333959730408575431181491887289807952171073737875046686255826911897781600236075111467942235188209082673872586246939436883670450620380793560978586714808790495226001766643597429428479236730937979019332684419935732308320584670320450856940287638878542177941634155120180621512209386565989781997966026413312353827290546751905594006932497787627763411064212906289092351953424826704554976443087151370103528875461290854687430672513865922015753242195079059799680965315099575887633255466632699408169815717202821331300465713216539499261869587975266761567742060118572731935408638125831793083856682018960627019732532531900362527727210077833193700774012217605264357500848309301665140915790454231675569991377067928477327275487225602767785385735039640456729123588779108561598005750779204400511422629606795515871024971103489901140266549397774765019900736455881828672526932737808057290740586957227566905704452073273720125552525567738271772505505870525888074602408974440292036971607701045631828270901601506224208850744499222870868838495573828193476288248171108868014834526067080177732215271497664598932127583826220892087800943657033077911632135867604007795651670480513706897659530609930530252156602182609377995515856224145212816296791503750404491056178737125304524345790440696576643687935056708257276081119862033855266399016888641248585757378917810771511981388993101913608827602453919479511092040213922579056312265473615708536521347071314511245946053229314104833159844900111708275703491463502512497270736547289320421760402511273775413282776646385917027287152807603487547554091240267673682269917049408954940871812003652049760991155938103909293902251007225578774099249106458639569432340385728869546330905328405596355637192500088460707386368696244447785819398404897838490178189279562693092498585954268084254548752017605257417018413002479198367321332471291066717648323567985798072879221218387313780085986642425693400407202131541619381349655553461885347030176753283498911599543657264046561359853545478333830875168491757951941112495950925921147227924413636165520577591520209953474539858371660157457648343299667460258400773907206811996124376098385144300816869183295133983181500656554639970071327196138963934509508456025547979770508564742457137732597378960666432579400532162177607551291327758405496030472603220035103912660214934530639522724409221893264695897297215846898529045507594946821296240367631792202144692875320424546647231066138865759628059190150878889652030545855153525874201573897148337479583386768151533029402850211406637463344490836723366785493013520739047930523071328507743119388410144427482234141184280706632272218832711008587798082925445248698882160929358302976355522199922776898891393519296554207069576534234574836740934728926995233322402576042810312474013839348794525289739403211306205926268231415552371442375891069130206959399096871489206741523092443606982948904682026549748242247754333660661034386343801835236427628988732261836357818451023394911813867412010107197623156657583312471493746155693148316012166800143301907779296172036637803286309163823806473524346161081020375021766861631838462679429275582796995775487465145380073540916702012701348983703955911147288157139595988136021418892487233922599944454124341234366228916308477777749980466958205003045606528554769852797708147185989750065946762476730951806371551634718457975488136832293974549207921734389623903522476260879563568260078179845952359700095531589397478402242292950698288591317513273464514693732843395947109658907511240845179629043299938038594458267238710559352357417911621383788213956645434718888651833509758611998613222556624572197676868224830188207886317305858911513028368197492430783116903902623883951800839213360158738878698063523411378800369810530941046449031123171873902631556300590670088251397895911516729795421406893226812766794438728158981766772386714749489021646454623616753839427641162690595119250025762727748688368276664118608987709838754844363526301980122840896571041307897373371221467242580421954536060727435640608725150248537426747544366913740012450234388311461576719940522506149383002110326495682080789522336403446237954235820816476446169090599377535643117549121502375484298628593946857260167845206651357600044170417742426669347103246093947878800610135943964853320663640657163159654985690636976230463076242812139119052815018023603372252476651460744451118395967241376831822697636413467152138304123262188638042102250043401137184407849447024596839796375206946792505174932040794059853103058375792858528366012127764122055359226681190074047559050145347593956776370033316920216968071968751074070212315093072959995531414305219887564656302137952079961714308866342058101901112135257154666344299443426911198801338953683185927882461133465909183119863037848940882692494616216782683864616133400704257632015560273284987302239141022850789656395652871679871582240522126356259321093086417911929459450387574601159770900820589826327931903590319131222236325094215268921433350770993159995061935624424263931597371893912331921793636759404439562944945768344567039921401297214052545473553889238843087533308080140956335591173762197392609668399287241217320630618841688745793905102628935303437286965017760362340999199982750561245429872018561334296086134686201737180288921673493160245003972038488426974689287134067108956391521832212977535040876585318723190467915333023521277274716866008092277728605310086545605430974593151503174152369616032858963365554134367558285792291343012935676648722232082663067305023656587664629114257235873560642565657414219076292534228285552166052990158551520634933156044857155602683744252988179439413665274103608143884043008748631189612405540559837721957939646617575579838660903091026317132514459509686927801357629792703222409424630497562407708578444344106360079719948875200463263810102851705011377055837841965548209562947273529423549549792584503880446623799826903025462458653993132149506021144221413730766384423709097382547616886681343129728626322648554687708173224157394778334932895259065594795739112891522127743284596813058775432955089626781093514140369087953909960451221493639472152124000732531102901132336960609204119127325171282298892878084010670151239914928408140827119565013702742740340217346112698835644390588753747197175186029741793938249928426511731090230326734025235052499137793708675230353975051787768240502452325798910492913982307924795563125394724155206443471913793617936384606868797694164577488010803552859536655387093441292242417378378462162820426920922156455247612796579773258104237343005292610122431486682393967489576956803534874709449336730599778192398075609980000243232725630482650218398292102207737596188108232689638578757558975792265069429126985408035098723982513127362193126522732385057866614772461815776165200413642723897314371421951519318814946767194960831596816355173975611063821019636039500715571303831077525498322072168369983319334330124905342712755961133741519365244672389538467535743377826814236210478444916728121237054529101167182227858903981892945775720865794773443604788139017933227726217861242096852639101562218808943888911932558643996169312507283439867258541799017698564989409333334511632950566990785486277518038964297486225472354500397544471307542060720821611676921495144206147556182697547825779971350099611304792851071007644585952707145685483999815399119116104672404958361484794221211973490195872582731699139743487744581369614682269314528228784688085673225086261370042379277381275807211434130302064807024315485597632726147242033498063477166280853539162110221728090090349399925150713628143097116188222987308697825755324590025354106201393164135977855594281257740870525047553249398352647533094866575012674091730220011164483400472670029502318994445345357640555934378133975174731203778231665257459681212711114576241399417875251227412476058958886159865808102220442471413570037818247935821629060393022216394574235311656054781617897320076412433834632600957090238200839427228337941839872747781679734785650686153740751229750116911005319906249153127828452649438043166621738178377877630029401825885671860870138952549088732180238080686208473605874595691603210881505374394748458758607520227025656333656289420706475950825768576170058582308174343956469957988774386836032797226049369336051284491579777976376575487903388606432043889960485700230140141549544907410257641759156980172399601475615991397082505626705229401677895998620143202561179035546151873406699386637536425416692912598395948004390838184568304939209653011116949890154425120177815182816493781471196844516112567374948477376026460249498813487793411597883389470887688983841050444620979635003300952573121597648163867877741412022170331406999029618434569733616647995792671987441308820723826885667929378881417116259960727104613269983980070402659624032991744859585021472004693407966809341628232445448621108600880867882421216218668677467063861397249606015414508809313282850144542387396875207096714244193061540480469612959161739077724049823263563454727010314742332348924046603906045282744622655284387870320570651933886185520424310941385321491419551241282072450893868437682033069023051161063300031896383818826649569487319752843205597173307912867726396786255477115937634863195667615794446723711254085515508592659983663426676264969450742307200952176474190613718415005766480128247719633550921225334445869139056550410362497289291677730102639059531882193923701161408339150932959593914118804848732942225787142120601024678454178833494134232387684189446859383970801485261044590593201876884431271815089692658569787368456315778096039731392091610368569301653361186020138744976215013593619400070068565921189717342306624519740961400821700083303021500326464882967129726766382147150310328234228613369856204928061224304940184188722173346042044931039674497554255027103427149286677994379038070165329567428863287889327553315756994628214437440276588035764751413103894307385057328960024682771236267779657793291740965592490168171366675883096844457973355194821764977692457807058703718903558516025849535541672036954738337434188867116839387137503895367034978727740688638523349741103742953186757886942857634097135931732966899938004059003341472033783965735043132118367035214632893781215067238284002072513687366987578712695256597677490503411484093750561295291034746902794630440104584601950170718189353002476470447970302843848348986897183956290563849712263264162235234943716243362656783393441994600404196513732438741147048380515649527508684136551410203571833124697595584076332910917524196922930712427465536214879005211408473540341854916813069435068863777875358731317522049490444598680533837032313341406805025280179845145924728467472190922518053490451769530283811433074997380659112820838997335099419796473607454424027747280283121706928438356600064643307751768524705882399878849146100329933558272386760743479946232121001952868286653903312158951943528701539714156696077960841308079884835230473513830429579108368948025955228997694503690717223646760083664845347467651956460271659634008902989269245600230790238418949971522107690239118000401061189678443433655090810056133171432367252598631313451378929747508995280738444043919451125270789847214802590284179518197785938003047506461954518428694747141925052343830080067177214121308458771515508481617777666869275530746776376539546880433009938825786342416683435707335236534857026003322816065077782961791795087904206980627910385416363209722232407921744107419271824487514284812534881419959092797046669238711769330596025015292145709154268284828773978630064396762642774680376960285276612628311655092002097421679167013470043814541729566335143988520204537869667274873687317322057326286105297012170035480639622550424319954360142993117530849115914261315254659245202427936017348043818982482946895202908502160885760189702503289670066444987303592404267896558557657845546139059737601183266728443264598666370678779989105475487809886737444933154641749910927348536322468783432726097041539149840169819272622330924764967028810931446951646713830684717360235600427933438169791041710037302431850237619487424962026731043803024149608592380535104775802491726270869689348162292383129110255451526353139688869893381499279556557118665467495588246975577386231386228604948929560295853291158370801619367713365444539269304701164632368147288414600024391468707474597929543681547224716403539680586458054256668139411907021328072569759106319929515818647327300754854548572070561839933769850407939938989188326504561843426187852355472479471044216881114689197275025130871913644918069957247856301840716375909300704655390224536603591227466614731406857021462282478449641270596382110174821894756616862015769113572692390908981973765189234064118058937891379822047768667854674234298284013038624277252285518253463186760291943256818126309004396687385966961197885856858025509098749650979311596355101981303053482421230011937076875747163431287577334903110860756917104021315192149920972273386410022862852621744274911284719860777836166513232707302846556178583728011896467340862486398895048701785538041694289044539298207611644625053732239709301929270401604799130004513990872826068488348324551652859859530898696130920697767388439909276473581834583873280257138138912264944134675806249970489349572614045953390143196838721230377233023401845363390638963089639250810642155362834550641378761923476973408732295186179100716924281801307634747839351501090551565061656886620367236363037684688934252926973773831184620124751304405757504200623223851496588043787572566933781451851199138931986149382211498980015131312691334610821683011305737146520403346753152289738902235758341471125835485385624688602943354418185105032941029569440876057027560328766538675652259121426862705739579726164482913830214547862713731288089405238276866048017715000526747368778250005166601088618221381751973328242770822135236343856569549917514947330475511793917931477106703552600581755843209807768790587703854102755485525216029286293686503508190118221831954401611648535175132525625695257594203723459294517239844907834540997996195720435487030815695278197009351544262169576480703959944716560172978701325774576837771234269254003274071261592845280557586674770047642043882285478074336555063958140257294347120640517242209508969483438526616989267511760687616148661076981749218964369006001490025479306380032729716713361105888825419688663325311232584624725065838865560779749007953779668882226937383333627309914297607701072494248528743445111924365702853649824715198908085743901716411021744844243415154581048773470889270429939027528474289214789950522176133583130898443938816946120830731604408071299619065735438871557187706634250428605661988317747544543938077644460163382744711513251043163638596087429736203805003566027227359123847246225578944735407294761790181227364707611158409581534339724120753135098168183051341979829818000161661947593276501379580246653784252849456832800490949683491035762803964192939861056540889766126674645600064501298288908546415384120901229530974718320064387456022923885737044634626878048851641485160505337299583096635776695383790370544951862064562741972638424488347055812503702669305161433606828313394329620642490495415356224623036446823331412407367670789190253468855401969901849913601761213482911570701441235732455012814444266765224355454323095102287276035570588728701702694702898773407143707055802044599765287373451626809107201743755400751455092774716892412267720446072087068047157049009498451064062067711228209712747495822866298498904996306511683039251575819812780339345124911632904410973169056771611833951058301411950469003736449060508635525268443272129240539325195873453750505806096355130823286726610144219314054024887702222609567349972586532210864702929023510629980305246180464140322398672009678461168287687000536959072469806285352374322315857779871315545508666327761150200210090272628020257658589815378891809731266040631030776635559844977605601068226100357670030587257789066510753012766738197831165317857356762042455186472051603272960986404938028693293542527414971638328389155169988311742658607997951357377023591222696560101821622163024167161625728637915370502776621585069646874101287012260888233040600489319518177012148631439246781556438480721551115351066145584730647392923262020118255787903002972919270825960348661014104195253411898892775695200627487258362253188237537274924693911433165590198047883970949968918044409172270243356302311687788316513778865098582262768993199659365815681644846941696689543226015903069777624638438701544462239042351737006003532558323814575537421115034623050961098044264923951811081694733290101110915621307224157192551025084660660176658821641759500527373331912195575591894761481320240640242652983669116417260543332282050621252466121653932567585338383310709413498596357846953175236315333196402828751464698376160714334416027631315506012803743805963397043705043909752977418700345381884237358155539417372996925681501180847351075746576111723467970369336704159942094267926578014472747077860963221290796573527880493057179551214630741831926563838918482560079860134177217382240238709973578510221222436060582622672295447898291064870533000057338933091669634620448771055865618245716445633234594162651526471536257838182115888006793216875597932103693277928533687717826365144890564986190721709532220285113290492857227599265907206137177943908059557844493311187116939569440541848009576611183365675357586308409729265235539850469067744320364303868282334497315217577128178258899212505193217209307295072036250113653272416836427530141281774874635546342105123637435165974203944208462691973614792859183147849557358732026249151445700269723565462712263384304315925279389961396617359234291672310627665395171597276404115028182039340133870671795931046255515874680397419284508535102076216288682153881582633129193614694954820719069681895603577643171806608535865218364583661337863643676804734596835345789412035426735501325812097741860898392296290047907185092113635208820963190777766237883303653633075329342955597302380850064208314004222968977914921674851289414202648457285076884549344372472877168472509916948390268988800778751091082066940762064007105072290798391982368637295766975419936158953271502280774465833523682041031025532255677054467406688597653548404358738129613870902977739541380915851210126649806336582224273412648974596823371597892844428820176853060786128939834099770014038661625378562882751756313842507857651360139611790069581581505387874477910200731306911165196181687796398291235393512157572218252087792419990135205235116648089268524209382453547474325038432462951439463697209465526307365407612519536284373993466579034695142000723370446090846614178097347438782468770434184632777851463249761466423159082416657283418882781559200199813115791361401849683761247816918107061711917505118941521734749425836312146212597910342239119288305433576204083969548469546053365730140872183107126558636313739232911762584749582321562492192475824494144344723168595059583426999702417491285967150858460825872397617572434434822681904044635418059731899167964290744146429278955937998087749303026597830799834948940575840322711540834211768582427113898442030190307159002785249449141593547016342665611587921196945158617458925728526689913620224985171884261290224749574898700738515350386002286232130873724690641085407390581350676063770459947245600184852617388181469029664073132330976687891806648770355218189585944306167541197640277531228120437216203351736413114906300033643954516130178747530755897772763220700278266503932092603411703098750385697838661205086431429742374723601223345474382143431189197683447146510178781493319573123344150950272988213836495312492443045345437953155348436525908798271604842296497057631368844278980136779952289301088689515125585291768674562654390615126432912975905508542301327993843994567451629900111390378277096216965054101037534549665383880694385784536690095844161807396888716562106168023766086452184705926054435696054216957711285818644848955368327912934653107976319644975584261161480097743402901919375432865879212901189965917124185558651848044966888427004219638496282879106431477834835166088323173416873817459441384517108929908584725602371200945145114249275415559225621322310681062374100991786590184422806174576489061124064544572314335121508168999475793689926771918574779431076221804794833714352414783874913308796996991543071385760465745901501862516278638546437397080855979070212775755797290073643586697716892705973644312823557083977142037963743698835620022594363567118047809389787315287766489766086719705549650703934431940180452886905928811934910258062462965030642362036838110430744236266346353587913626467312233714081310898898746160761470500284407302791426602535354672156590027983472746719637450975236158467435152148041596279384823840729948817801228086359902443325694861870918058314890550406557619080118756539412049445700108037676094308075506724478714306283998862988224851716727945179656272425452842538259493592443527184355713897437387215673698594238655334804912154286244322998975058751170407364868745017159668720627165508443168427105707759737089708935674916127246303415051139869190791174343848166608098806800396855657330661383429655696782275068656417465609259119572926043947195347202801058241964706427702145237163639720302601166124983736929019585258080855775591172708310973463937427950782062617833230911372108873143732679524050339855031738552383262100460107386911941148541272919593917631148171914808563185472562392967362773805673495363901003829898176072963083732878402192226902335270890911484534371739479208579051221550634423447382664305677078174163530922107721099195888089986189288471563634418615001325372061899651161556162632759225175334295026035624167087804212152392303518526095734512425548214683736036038379017708437153459399307155102703897223363501928933895408719576372217687616588835743641711430393160534855175531902068860761787143117274614784751363122343791155477227159740075826344594171111697915439458404917765664169787964369779512721581762546523335699210938719658824178810398954030636782180239892659644991296234030333160101330997168653370910059291774704501066624878539650340114927383156081528753138945651446621261818390180524882594217380938947436699473093129852109527038485541251592046843416063528666284460683380776716889778134615544853444562498616197999979465867620486642923448988792746194439385175215249760057556476542036814726191446612156166138132306202415293033456776771425353726648499184174410768422799332009250259385862228201318870747557214936755486535635047843057997735986364742375253598637820755800002751012518930740072127382618278695243135645063327104520011962822185575430478049816082550681120341046344488322767828310466382028484303094998369170545374540799767715052280214290739104469104923880210972669957027940046658458440874182894435510850273917655213745203816174537173458199222350498578880182140330036321525429680661382978710802031854109739711495291139308718698645410038193752604164158926975528535132621811071944127286642935538173795496412871264602250490514285793649813914286157554042365846189517971191281060095152765196089334185576008878679480022116966640368794397874588665440256072922399870384442799714489715812153120624634081180096159009368961566565120248352198247811950150498951033889792990036274115081777091394460374701624187242738694162377811433675405800459605043498305040791711397277913211344438311637519862635148190780811287463806340844786375836057726215222004834092312603880312938313267679240080272370946067239560606735078520508882618316537705687698722628420311714663291489114725880017650368496414509499585499103703850976675789305835092664826022701019575507077212364576899068301649591134213938326250447587886806335313144926463676618122129866629229600889783215029305358547451363070063017446621974813621041513455893356956859553412285705255299056978371397017142853344389574715524695643957659523468373481171755150726583843705289197175344442575050821336998750679680249142672628782327073140430255745317481751579671834214984232111685821068236375639760311719463499403069307951552485730087824874371609492067995674287924545270649956799218348927636874407136102264907741205775082885422304740672625608861607913761881921958300500689970128609212385855815863953218310996666717270606196344901081219524119825502103772963575701746953312279921596111069681034079827961246567905358132547857198521982185699689071456517025875793536778707014635008929681802716133158614797849987796948862579584286482619011008899386139291713819509560454265152925131148234806356119736472872017651308581548458921221906981892364557896970171411071284875855345825015852522713319142835611587831694365193151787233034153680996342755100172654639223334757221962099154737765164094086073005913931734283311837139412249719483481305995478655158062086219004975235677955631238937376035899711297464822022950098603774305117308622155489875714624661135256429679184537910555771094163765737964580219349574860723537708660046330067951245256916253137431291031007629960071392172809733048414272793313210591644016668350872506096224767908137279945582153365543824009996953240165047196910174858892227094671813236812355479716498265472265860797671206387426923872423887123028818303616957230108790666920411848693996561117088352979712235728948393655639007429972753894032650602726831787731247697496913315376871306755250822142990062697163579172756284179115124420746917543361254290818831995851932379370647603469402223514920044896278740296924270218806776180333123714276989024750550794908265891964103607243377663778046051087694978846214203388891833741946356729214710791418639134696349428664900286925327792760741276913668176049989740336687788457593288766873602288774781508503603875036207266436507120740555156843999275923542680080140788337345999256856360226926820076791564127682616370032926682696679976991644336701954317687999171187201544243416370385967996791165940529569192985131561201234614655521449821646589060719574311237072988378396029232823254186068136825956945067246494292226806346735236663715128843472732672615000837275664095578102777546147427094206555581610988028927547740258314711982276508228964221566890802922124463883142489439936245225794660153254888190711099793111396565767769583283224080513757574591107624323743748770372361679352704833041024629415749018252902075252323994522516367521467690080330944150374314723436614941877708835642412970301834020324252810496904965437287537415756547957460358154127102117019359892229505001805731988213672695582800329483549380045412907423957768425488268924758195567727393148514872836209442997946584912193456079043061027762369950497607806962192586793271837117129557169657894563925817174222895952907380500365167711717704607207980533029628572215874948054240481983901289856617756274380514667175213442732532263394281496381308027594282429979699363291604202689331477071780639797282360402400073497774547831561192265871431695852608521870520690964445871236709309542757761413569910507866033150808156326780458835434742274940850564027501262532712325267040977646322679596874224004578005367883207493114447275092906213867931281490053044300897322188441296909422558185537996010796675627453445887877985616144358127751082449469265610505280833340342367316553589708078609598643872136239183646956173159704334616615683299580912034480032682327718320186503754144024643058611567777124877617754255778416940718666026974725253705079407534245928758463930909922777036641658945837342076733088306774431790494025944471803461175328650608751103421103819890363339269706436221843807928263822877335528740117714511509880045894311725248319353453169715108735583598681921642812475002567815048221921846416540311354427460819232886640429736371699103686155104679947298568796779004811456010799704809089336922614376277419740076548262690415697955095969572054563036227586758766311394519033163176916399231625118947451526584146997001778095463232557129716741346275867070207299170762285084425135236300305749878038214144293104792277858877689693644140200734842954548646338448938179457446034279174995832812871823764318184019591658814545326876829896106818885308610216543341785496318629760208626318300182761048253760715764977102699387124608844538319549270291169543402521154773686098349366539794373399640685412629055874593954849515262373629795737599632495907428690342798822522558302836959927573041044918490218871506594544358216607726595730313813793862906980492307341813681777663374817528039495333756337367325909811260116317176607002294714920391153102744907013902428725099455522014336975107561801727397823537495403878932582198376192928957682036984666393667618890794867598633433805701374013694378292589594829569972115232712828945528310655564556788092477269526634688897067235281646165469881029206394963829203573215590661100673177146825745078747443185746238654314965419908737613387155590182797613929357779959551128907931128419675385081517874991062643531338082721995964855156352372295822834390818278896042457457231928955832322073673058388587721549254169415501943426335793406301339329566066208791033941811607140448075611142804198762824368172280792455992378159123738443095170791819850196294655621982722535211351940022489497269826108956252188162001732042236140874329634699417882211300203757028952770445484501262799608685930129630135821358813823640283872935585491115205274406294314778083739467391284692193019278009280016909368308377489279972290475955248370822928984743927198545252887907106615761035644027037563948669876238481146427398739708988785492534969040152734441970685922407537781035105107115082221583629415455629702388064768814230237833618152613468691904009286918116173185182014083592716315889155112175787774513468845136250138469515799339267645205460033601866385388308421687065425987572767642690029926951397750279125787907039063249164022802609949527072713537879985826599209808032180912137232921933400306440493671493960331982518475195181474361677844946273038009160737882061909174163110885990264550915102557531578143038044184334131176684095414121707436651596519297078978494222247601050125823450515235056734793253907247741733144629530424434490701307769972014442464749968155451302706389569932948579829712999392842255833400627294918296724425898247821019595594728319951566985080865544318348071383461375700309240270662293145909097197998079628888228837093189185006348885499422067723876558771432876536968912853533116800670903512758984249638610479087371987009868151066213690973262377062121669892263315848770633276949450676969086338619572168404521656833928894045865811873165496830676600486798460047627333223375862495381563852581938482913417047180968772036421647593875313517983689610638504731929791975640425474951999247489698653782704678296918093776667294493955075637361923426633082011770017051732416853908815480174539459318506313286852424560342148282011211068213820277738486542928742516726349199156790898426822184300556880473144506108562530576170869278850753347270674475959597464486792438779717741944497066261714449925056284222996502794082418141989267896501210483351837296411407484660437256004811906583894977924852224756929645820829921785701677865182617437470006633282850474174284757462882584677632891637450305027798771044343739561728269522497806391213421830602557062933123837091382457823821450299271903442497306175474849808379040490205934356596099024620912848777721305833760115680692911988660755739089437462899288464150719512515242560972049807830951709304263589894000248399183846308330051128115035326259779719051492409723158467871362097642087782565058294209344461191299589829390805427777926389089830327315960951409141182623641437113997775831899707999082291095063752295640488059781318756889027952374451605990556442228145348086715804787546136427989533401923727073834791125765383091087334764264184172300819882442552017470367909853433164520663074899960074719530372893248477055642272818207052548765032000391322351732274194858423158345449663427192431503812436599448812964549403396222447987521890198444781923399579155516196547835736442713246556564963759695629554450976669153546708164350046093132108359950177953451210248343373731324254217387986884326134406298580551668118499816177317948947883436603782164672803151951791140255731928449051966270335161125214745985208220340776158923607015583135147640974734513423905998196108711501540693338419191018258619912199316596619986679737897579505357616335742786664962217506673673278067108259466914913611994916132775394502165065832301921790774227049175969188799642521215963324825752174552069183965534387844462750792962829066189849600364599643712447536437320672945612667484503492313503310125845833746405390993597018654605910553136579392251006297756380509681017167766680543152835788673228621994886333276267122618161329654438849437871932477785055027903573594184247665773323010759566036497053085176212556494282824633820314518454168104323704015344563951785627335027895855760616484963907209146103734397059307122892175456944832200409245056774112512248507511396295242964302981931281181819599308335611941206329325166342179756693441140106486114283982735966440729903435759235164056485234298404089289993077804323371975633612217566915137547135572437805366035206926723223473294677894257300560534777514599888644650891855560160415531185402784457997547221053231586547163751506108758241654187987589119286506597886234749624557899818626247612057731712244079686115734604401178524185389697002018477943685125768160896875930015184209742093853629487513642815396940377628855953955973231730258860195767416904880043146017929866151461419856685869812292425967584348781716197848206135219368375945567603676665349596658773082538876855064187625810359469395116587302857653831689027510741390478148054333989202649412582104438007276119574551333444887280461527738019533029292874079010832261310244048710870136822669019168348222875804502631302067809780743578080309540806761380469246725991610421422123020168706778775137682338180072364188466410058266569471060943227397322047119626649359710163206132167507524775098074283935556981511010740610090392885894762344504587032189037076515128166130842290786932817957901322975391414786673110776242165049685205074234161506409312139281041802654180384434027221826768320982630147246309298689406770996499202636431130806906253019904813838637065883739511078155704122227426576250618228937517554678936062949334930887141624338881779516441354746882450872437544805889507488711498299634476796209527031695255012342685219369348637359622923598057396706887999953897564680459366070359155931318672117353179583875937298491916266186881615371841886223792687638288623265858859473357117384482582107801554467657317871368130456267019479554894262561212477822364613892646754073248300442309755753519230934346005174510022754086151333074416937516672810974237637984802773822618531998851259124589268374862865792503511949740490891815424424041948091843409713448871659396596014152959466207353124064542980783001177176469143764914469121940888433377852833557864179793179104709095998374157399141192340698463174227200046245822033614852831846905078577301203446005396856385777226846930742244712628886954219025907890873817202534743442361444161387459963362977741550326072141877328674288393507231128367316525611645885924625206131272362802195765825895672697959596953024373258924597502354004883923431543105252240006200981195111541917834877071117467220463080072491291912483057284333854617914695030844081229071117927258888080913398389875053864622155572837521035421707928328927966068060164674937551734840477021914091339352851101045219633623091204610451911311466237113892410384680592677352902189150467487756154886093741617945946677051409984544923654333647786572312407966073078208287602913211294514759132949115928622549707012506680486041740001453105059121976939770879619318097999245671228482276298785744755858893717363638731306481385763296528308001862859158107111880966950931217773821527513292754474614877325224095095826713617459956051106861690428965299333186977230096289790022547203545350738414090822021253946238486741020780076345099312917052336286645156822673097214031591334445877957038278136499948902358528021706018949265009285214746258523434381989993105912590177116542709038998203778322195954029712923614311293253821452368476502019778981306247866145779047442536333886891679872710462344145576978241237959706565054188537846506461004903723027685802507976220207959627391241632996144991799393695562067576907496225951272961867184215643307597992288321613207957445707419453811578943252346275971024090093821737887391532799893791447611401599008204727290771677499626871877051193755786734510013612253411210371800038317494459006034755906881591483095656693839810819621193460691892230013824878823792799947945640811136104907734019088073093660553523212879533211810927288908448582594507927363101747083641419008061577579907541739763218287705964530033985822788969248352230694696983374944390816581730377763096137053398080828965725204747572463537073993991624506221873999439367881888568891301542804153211562728929066936879607043025310821852194978114767863939713744894117750852909232853387039410347189176777400686063089719967371631432251559470037566686881388175651476506486770624729733844863688066485700276883717592717376795842135246551071522407880745517164535726972143126756550456993865434329384874633375533710893254254999788641864802061226745949869575474822234126621884320679682121207085906803144706949249247053240913160845631590271095845095366856963370254011213923883716189755333831449500414406626062341758615207029351697318173815756383695494997272862431837281034671147352613492538438312091082718286148541151812126289235503194208463663745577490292955963756557662728112083367463309985569072673154610680606053177031789340031278108074331502786463584162781964978658486203544789334588717206476281435404957193184788516787104735002464021610429583977593242734544907271940544303873331338188948268269233036605624332094416760337633473555171515523161868023104148954572092434282588618671769323791071199125914932127632584859293068990999660094561825588515721303758696437859820617384698363903291081986520013600881728212465613137161434283928423154846521894681450812272421482083538028295357807808339720924611831030447083217329433625066573952396589490632319892856620902871849687590678404357447311207733459560078082058268657458241540558827610908904275516072056128055821641990113738180066835649650623091224455487739785101272675922676533554194102157642420245253833597523251126448360520348892247111451541077605962742914031431667838531743050855853164266279490742408716932928956764559607114488693950103857730441891246329128707626225149429062595046112859563248305222948793525321963264930487231358023469226602872289570439355895412129808774050931887261160194363338478651057332093354242410506311640491706761958630624941083837198285649063387733055366560801965814972769050030525482246313498531066925813843729836390460139304075877307943265696740596346910616132471434616074228291496726672308137672777920619929061970240016313544566372437361187714553464544250222120547436003410539262976703813355966420244008938541467764741787888668770478864446852425015363819197734452752718173071483810668765577754937324594059373768020616151398132273291977015315392548916276546657518403109885675055862306295768248685059110868865252151655508237950169877361940936676875376275369216777647005888445286721833741391521637545890070352169757082039654371144076295844529802948769884784013626790371044645534596846305415147386439969121826219560400641694505161622705137474338573466272231486523548013946943405385590114224819334002358733193447100628015432872532294350900078353519839266043219722747654670757601925822468812949674587271575235944179106551024693482469298960800683330294309234413692294801827720876721901426084387472083385822362500825690271856784010364884762477741859706181368656790883465936129710802303978227496353037368053485636027274494304086125832122796884345951101377516568826929963177327429738480048385680656305939342785482249092280826087851389569350447593406142700975443399082861069333801576043288632472640644612023978121078299064249532779600617510887013038901305510911979030375700696297460344803276018536255108169690563763763995997890597174816897529315659577074754962831534288612382015906300568932078212339103851982902811216485548439632093410730121044856244631492479768757720574045715901528019521301380383155875739802394289097855897363189599672290303834300282404165814784627278967356866059881437051750054906886745264652379858361032859944307435613086188926862705450230411361760666829520805120857702918555586414104096733183700367084146476482525903658036117094490592388679698589307976352785924352770734636600384660464116294697810290866710957092628698916768527710360324312115569445928880372698300080997026735887649284052156362560771455889923922162656992453279523859247988816873016320699603463031780688719523997489792589414709369295036520036874361314251531223263012672283410454115599126845780458619722104910828339997191767090765140391631161614159708876904776452530387105888609998379643810560364355394176677367983323092197799912174877080362804623419125355986265420581500023485765390722025059724736519127978320183139582388960659860137039452569720972207854971917173371337203343247793372610785205299940233595723839530423615531461950663583958857014352360675836111837786013946927074027862335474598612248821700602747146223782746487385930673799238361179767918081034982849360943757099550984450999860149323816735614142304989750629997382163298569551619713769009632801004595205958313785081045723618314947800788373134692602620771992552640005495685428404816007668027989831956417383049406374701252319718184554533811975163550089072068187173567978427243975153706231432447186804870132691649425805215832769438341596136660094780467756845208464242615203437209286981070803520997473656505888432355751956523239550004772123692881059627726795715545089330377035512386007833018762588230427789119662085329509716829004370514171199586826242116229552604924744322107807536392799612750715673654364988916035166554245261962385757649401179906606076783086525070842046348246743915796010238787447807647561059534366459064628004625848072560901150017564229836066032110332098625338146403091419829488871587765312980097575931190951845545962563565957990654418655674249247438729795878567677316048126363347753908131860821946726600565808633503210502731269622126514155187589041567934983846549669739373488471538740925067510785557292440318251749329055339904865000157506050067038324607439319182804950350310770889084524423982507515119030145727739418649320297199997348331664072737786068034998828129305179376201600584250750259345729930837718565797936254588686363076983247680250010452547601429038040590639753630107673825261609320867660675377070507926280863265553786245680888449521490840890343265862074044513478674970837639531885916426389648690374033655937081820723017668221550217680902479062108402188664014264747589903666928542459652870864724073342180276462366972806298400149824127330106819438678749828292048419214340791858851603734649952347786393285175689888577579710599565183154827070859797059246557232178697942760352886986375757005633441192237288376530644977806164710391403869785044287815013051934861864539274491276590186148356946632407296192209646725009656237949195679710744642091934283229192654647300041176967892713939906831862333454927185479587951668086852500344660658289623360094761821464422443540536330727395150124568958310763507907553063694536895958296306883852660712094721818390206506578581939260216213821717827212770543613479394778061545096415023472943117271101757738647753041847865221606930939539973220702981162068042526668924565421794118588038715770542647260936414113830748058118647683244587943249430865446685087318623838616835075403899166210201834186816248314290346783027266008089914415181056167551066054676520494148376582593443453575923877764865274289980703640963167076384775740860442898929137327646978850735406536367330984766749057387092653699483659141324126850363035374278053031991846709873328311686551401381404006739567980555346478435656258713369536616121347992877284584271033805532606333276041957118301590348216555758272310549953045387217767579137630742034169587078750405449079541354164986020435893190253070049871787371240417415789209404941638803779410183335685256478976790706856090138296402703834107578965621890621434628974857819625301235845078377187394801049009294121486015814885566685233841400159039228044707260369939024713349836168702993452279376548304932105438509056840244707172424935852880413356753951753695384181670403587571548658961188827781352212864643536937775974126088661854493261541113921003225384092355682908268470217158173687289432939422639383150185078998455496833375274989964468580618869301203831571191080884628959607966282506138650648495670029113191072431233610532066745128956265211318360253786939852088527026517771245093001436378256668423681879236172139190306812628275020761878177614195675599103813070724890019726194479903460860893801511151547988555121450109336775817598761103856656039291013540431817641152126231297710693589327444420659665382513496538286962714959584233501521719090512984380609226411090497276500974448852075011549776961675624692439965211212529587695198689884010116515481048266390731231843833650000386787665852980126743736651502262615761372762057202302732004607856450390350902401108154814989267017013220712587710792439665085794815934985333920326918430913657281959030362233821791665148079000062510110160845727673858899199323990732207708404777577876991863680407158481049670844093759031896043334814998990454228714040415308351888270353985206576093802141778428980027750304894453202236706829386336281371886296307167615556540068037560297962400662673900865191063052177456840507776584800329955536028753731583475870115820766953097853865900378646996341892739204999069302339389785044441261923411051190030877464428460902969290544163995665035221702618349439588824661598334507498748634969965592061841196534300129646675366721525925757227712373759939179186291113622247098813932964132363962100091530194093407566128113066027323092674764193553862099655288330167701574285788742447386189988497759536923836804839764475307724218556728758582042204594813056969004663263186610652512682193663119482113035795468152950243490809768093542931004545519687587839884728739625097571822897414737566006551289124073683482117151020144736018477276327200285808705834650707166854850426322426967083093344470483440227895357062571228688413183965851471900435956328751628249890988409218678850907599201540385629997322429683568770420258799433478925632410158429063329320161942419957661939780162406972605882331655800508602973348952863118416239081008373529913436243151616897204600478060797631890873325025616546497515308478805308900976833702527602774573643707937130365610065703976455852662948649036446626088585011524148344181134245416008243658351448029449632873866405918802981719005203478238392500714383386595152660817326638502817845816138127115260021897584455947068148870958401936002906155569597355792487263196127762746822585964618353612830084511968567390412640612101022404621405465333428376136058685667696299732593776171438652621173715559983916170564754624213823050458382022918543380925970236712938600441266781267170852354975316847224037815277689521453058052092755028825315048170577097002695013408710523765476828570661880586049025776392261778067447435057906057960422349514176010557529933460497097645787099921525424187595280202106094700974687179063286777234688788123330078372638856167434648775772264728248284065839820960336112307335542972977203625245031935269531789102342276959514489571477849190773014558111431506814846295972029717984468609701078060404941783918040852544808671198172520973807399293411053844747868369209769180122138410225892061885068915606916013587396577197865678176177802495452034488214182140963437657487246012753479198818536733602577918612458736306314103719361622936303013017105944197913285971803026166564084576503516202344382403318737030412371788897807987101418984739000951169650432006621142492396726591601358366947785667138519383712628387042847954357623435583142494721962137920417654404707689124921681679279102992778799966154432015959231984322005060220517550209154158734018566382001743723975835705350585552606913893927723212988231880910037961467506853313475669370851688580945884415348784075895716366628125139041780718298873461493380195563095171168540135077531412674469150021262066608325311436839378502639813951305856311259172211899416655946608771826321963328980113703925748047663571843281911201557973525889905437448553973636850169389402368427583974888050666859392657360527237210448473385610130140607510407590052538901052387946413591102940818188716157593226532956121268985704797839793854683291645476119407241732907713811144921961359753290197347578313895728004657865308047981144203317049082031681117614636359675638681606226282802973977023663749454424282639030211427605093551403652472666899512152302546560302782456910013909572434927714057053193630591083389095340199599212303196602357791939911978845869697489675827759102060756843924049042136797845305800730915491559001572493103000865174953963977783757742338010793999868516257620140529436848174911005193474437186419974773458576413084015953897276668915351264343956258267579431484526620284217761725268199338649402857127448497949613736382637724491954236230355543635432361349757932714228478640904515926187008224088261089728373481969804232631337029599339819756473353388292315524815230890140405688210309370087199517235164453811825943541196310442188125061393459148228929991090811025978500543838974652966221209927642944974640311179158914604348228066291895440443574892971886614417398233133135669887129473419931414768998930789143038904212864475026446278041896082959879987400041432344826469726662509898045552430665737756572999458699191594601067052674925850912178759927071507736427675820239906962362971421135986100145634470758167551384201366856881527761379658353057800720287702204154558834694350508525365178577595037988306274520786776398972990502414452783871849739618815498425559409693793947176741534457569169794251342603186979113350508007029750356644474759343457786763635666974516754430411599132100340236833514055656163701398883408137025087021368374102073222187629284790837476187655830024147439770328989197228117134688479974350636502822754415643470081658387823431565359317473177648204046772910404468313038252779925279269226264289079902734010363495676571687029496222583161425232410983039036840195240235227859033018851566234347720085447226491135504536402167449799850522989799814739363411555132819842342270713884172685895993875074920631994299266542316326399013801814350441611669437434246649231932482139893591074730504182225973148315172918074572953408556606254877810189585073262167564774968774593011959383372262785923529561266637429985918325505137399829987834202235414028028921178881237481537888756268895752790365633047309980852792520891710681426399045032589254381430116105968129095711286719111756785634299083929901841358269799713457102385843251968729799043301138328529922729216484368709900411981514358649538686369632438581705900934024514849402935615164110675545486335279589908981308407262481386149813080308087425661039800910953800902133109676744227943113724225551852115037576271818894003407626898185644449820482262286822717259795262291076818807247452007958278203608818489637631519112385233616123930317510977095654801362183868058188890351076453731437225918198422517947175487035083473174457395368491837896949732692375118463914987015017931454723407185522117125719130851750234198981348036692724498782911542796892265298709091325324070588757143074873484485144147941631497458736185250835161661406115890578925251412500628428613989308632128248765143259546234698442211533125847598896450223767684234855395340971421378389729157367964127912692829872806410917417809581060444975246490398920765472532056396904095521505223675102525826088559892990748490137524617789033113612538047956898191461091371843380542764826954656413592001676637847160681721395376442644695659217135809477959606612859798714424899899735985611601388332682350450304793044535090126711130566485246174289522357906371886483582293040499489996392226151738875586897035155448219992001631928219625444165957914573366697120417879922101330132209582770287829089026680860339365924681826190464139484114846998329143470279101756534942032909806589345143348253371395472148762751538333525443805341693202398526879108941307218765316990043884605839008377946510488245528524376561288160377562708725741397020693772636120245047968732229918511202843753966978365137920872553633003367285002392615827963006016455111665823605890254814998023921864776760333873439649931653009685406155421022559312748218767998910834871179126091383912131300267018917068172811347230195629039271711312965001657624861360730606631484955575607899858635025840720438794707394688559753833486877509283472916967506119789106797263300095766931234039095836093458688444528344051608736572275515438910689093361090589782795687978121564799424591960729573656565833743374078621454681469298598948094227158497298446185347003822039047376217277728149383731661406748544580159230433085909424541991383183193368372710619847679166853330203359254126660993766686802819064931277758776417787052908695638414155513735148355466913207012916049668325987118785258026912510363613442113580344096941094907544737544184099740850466477906443960506359345074852854046121087461257049066159729353621083850016160919325326656857533553917106246133660751180374369555849034270761889103185040981186475384888653442757024909995549143628129425449504238131633916685068068555505061651645773984750115069466504676234125681111274550020825399094169432538732672187823277703227666305298423425617952138179606689001428653450944813305257509954534150406520426029615565874656269759018793734002271875291269986581642315997101487760363652323533072001533962586316414005286932445115330005113033077362899790330490848501112464708371133849598185812249955656350786588930863882044618339537213895409906929642829857036267196544979438240020515762531747933535017825803826059807626669048534170612928038390159324104321204318374844249401002213099023944908706028881177892084522130735205348655970036604928213432005448951262743630305203577108581691434392881730520625378584136504929969091367468078806218029621186575326390540352500228360941023429161897599424252557660268696267241549436086548163585795920235131109876628937890071050990979734658064377159683749178341151992485973279197496622993419417297700898967993264572814509560135501148998350288523034367311574887147831139808868091527690094527014947504958972486083974417168065143648737188882213036544778122907501032765477078537472889450222993907473306218213464657319533763265291807258528334128002482766290425641364123432645409677435819386801411938273524306819033385134950424327934336710368803780815813756965356386485257672766591470410170479590598118573532805053606050119194174436230448830423669689136043773437998811936029527095190840341011190652776549045901220250530303093318028029601263341974506611960933384869025109112318336383997435653812691040248951212525665901423371919606795380412677798669630605718465570386862623953514200002488973154371770747428571451321348317074226383508787723417082324925652550897249056756234725419175302182554580305279836071826632265364607420663717129284696183050016022070950512362525141596286323102841534239311111200058722870440096029723807741675198300382770335698972492302817803281380293451146584080164051917004391537324911499173113175414867655771079340476848278188738903440209075610169015084690181289468643345719762701009478931134518082417066243422417068706697102205059880073037913019530661711808202041070828406346982589965436166328846939594576327522598601862300784378084704492920550229513958674092422049491855170951213032507362306555553367237496205981448144024173968005018479396890233358889095275751196087650718075051856978449092338265373803968395828272382808553899632367314688235966815657979000027217569514338427747409248836402858072425785284747712921364735984581098145001091463446902731887995235237484030039541225209605029536919960963848418428762934375413543595316798544320083960609554181341878137566112561508513642024471645889444970919529236340860138600868492548601554377393065623402562941560550611270297498322873515338304735586602608879269462256185584380104452779575401828980012013608066967918282575424334085541823279106055922653597815773197231138348283823921268505277935736366985374708117916719696448762411483560611263658780014776018193271733703983421070724913701818268991886871228217319377100438846792993910667956154056690434446706988945976858293395594271146215534375848050733245087487027904837087285092762069192214577239749896896491322676731601440028476489769043304256426976637077405564662461179091449426259853454005055408280912020459052496527177867937684724090141258059784330785512511935551545695584569368989118666055930835540314294068322384783836650030781696610381964261893092432430963177590859269727850702190568759357729482916853748525298702369778329984528478369531898476325087956782438595832598910541429998054596980845698433557092451502777215399868197157139192459154456330504101704810934918278359092843912227624514904165191667625070997909826818476691939631424474254117906816879550762432268905102580603945086592920570956086714368422678460464257045569448150485939841473347002448804941009623209608253460513137106002888805860061329873169240182881291934922813374201060654199578551370530200037048933092553199908876577194778122636351592452718083179030740038202484465183074410769977879819968092003303706672615772429398754454104796141676433176514817803687887834614258084912797619572061694882810928730341218562505409909770124125015054126130666372733692473771645957020954557341435861518408558974034163862782996076268441625614855582162083577506650158544604190031002155173135221540540632280064826983459379760769757864019381276792272655587610221326290920984729969895641862406013880246096612976042346735160841401030892929154857817075032100365366294284411829215874122515057732099178787696949046255466726630056798808193361638633493466292658446283804967233987025429696589716155410671682552180138288130802470216884924774985664358367235255443506226555716799529269058039299898418853509418631965603612596966695340667454351531484490965706579045425786003187878290010775873665004320283995570664059144775224243886558977519435284872677872405280582651182578134562350404150679288481223772433002440140560886965649794725010845534249585051250682422486891965323196747489612470452084971566612538236555802953502287862618296484890585478963496424538545934448285007720629774938573158324602858975657863558023830802715108088650261493170652955577726830898791254936728340377926379909469092440731240523511458665778895644306757445938474522511937754123241632800972604511825189591486539070363827452538814330134663496289615744786795797274737229843171994741596032346293710205923786466485213715000947103635806443371574556713288064127841931905037062505093231561696677070890931945305331755911054587453281622239274362924072988835631975818321787051139217888078930159739128429154022789333641131955387959128395760780871884749339916950870909738288547240013393293319707577257751322581054170447403875818165058266435623030753252715089157659240961103965509910860514144432504021282549872156924887845631898863530342069537591861835451263010957491413352489454029378897808032774637310469267423370222879829638306610318415463378140271624737898000383186173078053981367301166176483369632869537607668274210587779505832332148319248536534377450139094503118457867755850829245467914738033358789533913071933226744235866490674886367488687266605832689780250430168201200644147311584668919248124797621332121476927194443429089127886896521505677243820756332935869495022942759042256584798370766201150884982157691520255769044360671512728883553763836471550277629239253130037513346701090313204611596313714142358151479323012380778885957452270152513787389463180629947718379352817152662301996828418850090588501309963133698885190050978925858066675265215773256661583692232955725896242035230272542091925415078802082412607195238121271615676002564272917182480487887009903842909226938321396987480643346820902710061355411463205762112387520931938958407363430153366865134481971988433853235343021596319697970281295770790869532804500752426294599786449635523009943832203758743396871992104827688121138574773889893110560934821126538955886828166295207712036345321641875661098568100158657397809695582955193260405591288194811086901773726877400945520866336686159368392496804676608434169411283217991100593441560828553736422824418262958294752066834541397360649395334129656367967245776249049304591029009723995520738051511274289184505067215994282061276236474984404627687764598233873987105463191985019794223249411443067026854899827575351985073498081785844202103032661058382868229896630246646714537301875198543999019797056324332338203254535396479924882500822546640516936174674768600780256693133406568033253230197654344282320478099469759859509041261649515493407048743850163385094617645935792626354087693848006712721307028009972831855735329403607437937501257807184509440513067983164860088899965869014250173971673045577691606663579255496949135026594879774676956991352915340915273257671620290961462813022129274743813195275814945431885930234360712070803564152668016880686289054748561978497416643135324991359521551256745315578456321518662334993272165546166174210096942638140049153567688144362527991309823221710582838271919229860010098158016598701394250645517933223081145435296014313377664669965154210765206212196149104577338474855367903621881270080121150101653671978065764966021672949850434383357145072868578036322274877085134318123696335459910380764498487980568955727728724817111005243757454363325700145798386368126624544723829445403854607903932937514492471993843693396487458681988269622545060088085088110829179929894645523921577651247075834630859191221886845740749913569018849711248395461017493992983612591040427767882254753228121387111176011285866595373824962923983511017577862860585888333322454662109970563429111886449015679903944478173731737583738120094906156612261272363257490631187796237744569300157829541626918033059016176268266192822544376024576492488210124112415733205077153457235222574218904623892101422946937914875408581767779488055647790004022957552943057015036651927425497967347743394354770133752118347241038859605844947849442033976809703924016916164261086890952237912967958187320415529128911373789655988005511593912246739793276865857769294898115917664794823303272284668017877899530957165379605583338433976061071814396527366240178191596403923166781463451703927003473327030845192535429298006804568679710747892296027898813143055290729597166694705037287480600902524719047975127225244196165908415089258446722307967089966348742983169071352469917414152498119596428275148451736595841842255917567373279452827292613698802214108270922195260280781961643609452783424289526920208842863894167845688402519648565783409723500411695732639840548900123250417464268236161588760775170735304613680581341081567471680680856965134783627227072701735856843050788598586096584842184300501546791069537553784216641185547589964457935542631998634461601170887498360511347916104294671829092187282151344395059492263644761469916403470619135009248431075817404132387665479550928705737961162886678115639980728220798302996126503759030929169605608138834048797111728631212444152699685181110074878966751734165522129673188367903532780608673364711717741938539082083876541864308419119289288989172225528640115767901024512433776309539455671568623645962887846936433027588086228559272654728405515934106610266680583200267194130731818465799496237622192998572362959343998251107405734387312585048231915590790752582861029755127491421039215908759816239042582069882737613131774324134405341164051976024279377545678245641919890762914627079670753578849475934272217230258947382716949408273012153334358239940536562103571634179451091957591852383920775570695269251327201168704474141103322573823241925914295712205003168130677581787850682743138647153141558941507928683201467706571846520184211509377401455442252757021366740337988637833705024028141593634008023790075362021391916702166520011969223969268934989277507575787523023877239734202242859352721612369864973094383741692063388689982856138001431070637303042822306826699815667794321742054167149891422728956738627008324113029713532207650062061684062370890819124306173634145241479349745995872026134334073983750035780857366190120255476909773349493982699353689148621485558032662015854361609916748807623606205527939292553532603084316731153304751134268108531093399549790905694342458574220229416442939584227498393129106534538316632774342282431023339116730196930131464956959899541886042045678308685383059726580055992106811841924425463033501059153548617694066873152421475151108486542864954321944527142896869007831954859209790561156391373992953152779766499939904363941462566257364058443805782481850243207763038272823019835030627424633826717882524984886226789877664113193167482579029496986561249708241182434880885211829017264242493741556605090194304036187696551994762151036419949530047482138779577276482569599060584014763438303881386726792652810872642791011579657414211250145600854946355226430485606863749731537566010133031383219764469149235235164522011739806090079228564929352731095735388687861829279947568138015113489131398305054522512617623306726914883315180716548237265666173811094553633939856087042483896508164871088428860424737552970751666938858887850956068723406279413515187480581556732807396829999301035891553824521117680495515506957072127977154508959752832667187591983162523267163178741663528210539803160491215647917430346872114208570084087623911411356148053673918675150802531264821122038525382514111609241366937305940652980381044449683474589986653180529311441170487875096195798203923605729181897805692187300499682334762200111527530856569539581617161794053055572906101973348352685458984756435811820260662996060002522357357162055112027809871862772642666253250401739247947121362984432392564127234755407118948992540812801125559305188431469851618990254966604684024415974800454459208670015813119983787142220775758590554162770601932852148888361425624773816256897879214454626986783149468599600466443938754335177940465464437149223184272108423177080207404865045976910632711539859948996231203170211381636363660409580883946537348459879174712859382873727399718822118224719540945570916773215545486020355500298434246842389748160513943972748924560011618781819061809780282929615784522186751117397606924789508777428153321887004226368463260264777751893219990295786671505137379619303727063812042541803114011700754684728994506798380667898169390743836318241047386318389634182915002822318850773120196874468182540124686181970356382119983353526061027337950757134134435910892417310785601590388273482905718164123097519974579273270617590515525409603390321273644602010575872936222307882360602871989590239772343044442226659110643300285315404821743534253238599183716848671740019504818608093332819893593151557655163834130562307893012992710607845081358776039694642951827754985283595662701143382627249570625827214165824215502375009349191784729584612655172843937296564036745954337242260363230542567732925229448017451180238458937904592551982562228728310053222259227436981743230108573199955511293068314772340467610870046315782857457930888213586296923455091758674269147139724735814682713450361148841051023030046267994867605359527205174959170767208394505649149433992116960762337831631661398607296064675798380997575232751495889596668421183491865567092814699889129428085933456633787486447625219163272857435543899028943516562817779017084045429662839200264875768281196812194362065670790517579027526863880357961101956926803072892548741969976463702241302459756861501920275754105242281161183342370663189331735915917969991526093377817909934450535194446539813913372582556065277499444257152197824834243966470141130975749538048220128991358361406833922811163766802501649509793501828025092417225356974721074837349762666367185349554518298929424584154014561336061004117124084578849282066125678606122565278629106728813927711547735707465785311155523685573067195884828350121483027957193053197747889319764482085499252962474593056665460518255980621045623389251391029023765822850792522656325291723263795127709375666113253462989543388049402285556342510941584114607165520569669918117401986457460420692085620560959989196621047829452730760670610810221839125010717477195247160104952137181116546494521040619498561020941976313758894844570799656253044078208064888224885310364768120113175722958856201855826819900824298215098214409693834944814606172910441502265880896810485460450344223108472174940744790359940466883133145792592616368400814062578795581358177636497195479938217139692611282875246876859204455632350319773346195691251461185240525424454979565537499217188547092160097609177008218506872033194104701268291876275236436003546584281053147616904811678280710492817553806373128171893450351146760468554659413038907401449691764921741309304914597276885422195605905916814330064220575998622934766627614164201973044683015631937393917873601299158205544957990982879192911387822578594656677245709557990200324484473241888772652215960153573529431042562955942901275568998592936472390784011500223764539149837789395404377695444120898525753745452307824980982340419826528873815951237899776061473004561572808810442921722028994745530988608794318699660497766427916189679757574203349588722717552707508581143255958416944325168895134157196552742990626711260543717997784083421990099131790066674712063282127692324085929578874395626651413961473761915485441966891184605004021277410036875910379275426296539993181600433173731812217007219782598580243362775644944540880142044059689665336019511239358783877714522789037306533784088484184116994979704697648921994552333818400648828766692945274276122056499913736592160719148078860382153414416349843419201100572099563694003602299632461309152657680952185201923951818276749543059291057522336585549968242534864708030194424144094340857395042311831760262112165327311930158886049584149152142565178384397788461169969078239129433223797297028459416866081853297480816464003471872744612240680244353787358071742381248520902525348887255669029892659474230800102297678635777992182854635826097541703692886367827027860490243876793621679594159494725239787503283413092492419123814127015428775318741199390269598302126756980691966829459492503625345680216284966512110846740842658756006940929903043278534398363868947664032586225532608599746625983655769099824608296866598755859463446750941220952564734821283235732586070789744801181587940558704462265872299337624788094300384908678678276378742934458646581862564798895226066278423759586569394763358905118641325218171773715965386913258255008176321735350460341843791922463139431476197352361839665829771171135428966115788227670229854628881400295078790969156611260618851068443076333453123420467946392244629918126308573489225729532285693270977186086830167122380661984348819504680367906445996904658945112298398156216499548279320234289574958069399403173518653567392650836720308219109799564725297748773095988779139714353947737011604615333135971663741685285317391181172281110876577713389926978642828813435451715804209447613319157587364419751524100158966732264105197341455944600892030103539663580819739771828666814515174950171763515132743224703017290869359703214884190948522754450423410944896994167123756160962016013848296059357143660103103873206266839397379336448971788363030336791493350702303769010697145495166664174526436558283168874278392281304557804754741392924908685455803716150711010435893118718607549786689144867791784635325904634410514619427859463711806571162281494549204761773527626017253857792091529469512334080078171965123750896733428627788760107028013799140331196308785703832796559805168878342773796616267601379836041416326834047676606731770039167079520213080380065180983846424207510669631690374339359253233609259721080972900678726033545667364102429265237234762253011097724102544182572573512063526503485638311984054692790688158421188322154657948958457655084421476959647953636259364828286259669584080416151826648010021141454993658211857704547091452994628129622860436062639548234597202529100511582868379898095847892602670822280594816916514597656817062520664317019768471938483705133412773107016128042132323399775203099562903866858396127134358179178545687996147239750542558622366131507853943391147932165254792877182999011946441826020473373736182586749291590931572289199260983007862070369343101707664706064001787934833771239944940589854800402950844609623709709522816471119055922631982743011290682432091411148040847755748294394566939877501705009362821530123345206716401653593547232871381673651016572051626508010261050528670955684930001018706771670869567246969003914159127274700088079903156288472700080638724319292456237432067768128443196921759872844586569097316449819198067242405624943088674531893985181304625691791846822685142283865340282679496465791270100031952857513979750086008227345081248108717260496777719737020225781593705227209851744820970235130284367453431627956784539859213604916925593928674218328929070564985220706914156460929380222217213176816386188854147260757011189466623782327246745680513919611746503572031264533114065561421006433052045317371153061070824870894981773886987743111137758774236643215923869688629068940346008124054064716101025145570443905515068051673687574553877485444420281926932759091232057047262453826224068446539736651020605834994278605399497723068415201707416196214700042753287958455215087189669672668056479396450019483554038347560544767569416402162586839146548685338691861919194605529980145782544509355067387308197376644684111438421308422313357826336887746120046891366480318237632640415588832971490279655143473245196944041874456897773775775255775062900129930160569450125778230791087460890039574054945400376333064982607554681612103488278987048109926760437604662498491667862757339405360089229023836448823297758460864350731873614370634276752435643800737458969535672345532721037163232521546661987251397231527047579482707681437752367365948570928358648969146471291670807719568200066531211342899445153783286234214534532411599955021026903025735106930527894007369111989850603169144125208633616382650302785930489441072238789404177935354338613578735439846926172585035296649543900164134808925027750600938658279610646401527867987723792377685816258324933549080459613411373283542692252214520030271640723401179585865384206693728914226794290506074707741688190608466600544205618675639476194489401933464627160530171154076800167766360112196788561171993755481428541055681654545922501228217345390871454118462544099280082630428648793093480764824219576094270314464970609622858653928474264355085447135649012761160912896445019786373387698933708678886205265575090512713582057585413544943630912195383487673672295028599754572695607048768115098104001288431768107674645517114713090368806146431861530601912675739459275954777735605760806352920668806886613126567703270545874566099740812598245409788568819916020038037504124940882730567747526003221307806082054505231679483199119773929475092444528902045094409381855032446013349523355882010610932742971498419670865135340492501681453562660078412473382457031029897666408385623802668418398512124779389882880732605689627028940802396138564558298031945203275631695055969760523297004090573881248514217599400270110399217999988155659279576460007960292581120839002499684576509590547907178435119422431660907402492003089938967911273751043255763592518177026314324388683554309576361746203994384316824976078977519172826130379929897168336099351511811417634747790110885425087929048430710626397926060052064389988668491838132242306786799315782524657263839969115623938165708816822634920649485803848365215071547887354983360455227068027063447947772889798727768545991696730888339467284152146886316261897732657126997043963170412270455659077763690555253645668279717713540090090990325478452632835348227328063397128413759639285224466314202031766521679426085316747986934485907681208976410004339566015048077401391214925557430887050114574798063887809033296116514251460734996883999682110021976866455471328543766675880884816244073730521379007094388503766202741052229701184201331046399210132536043324339607663732467202891178284873735117587732088651926297710230703630225119960726404415080490104014464789259250504461134047358747384518608637646581072077850607135119685200875325524051081584514555991788428418667910289868676296760055995935187944666885792354324330910381648557579542170377136960174167728208140738493167443994471119997221629276389074361524957818922116558336772498631122424060693717605398016495514618509633610089788743539298220122353239105907450666461648898350164409313267760363074975400067293757882642005437233846168770649449113011529252108519454718096843908526115969578392197370121842763622266402511971060374809869888303901472637644711137647823237617507299273395309966417159529380947998060373868742629768792024201382729679151915775302523487557633926716270812399324574667433320733167102940742901441669455111219616066914566515553772028085773891473808507676328514474116248058373788241521023152042805046456997788494894303089933605146488070218248042746580301971157896328346612806637457594060270282024571984211998930940243910289275538176268190792562260492850307355382809624334507636611308455191303400433883570941390818898105652891303347241304913090297207726792397704864826696381852712492667436060128538149093881171668517077549559097992280716654217494452865355749313879372942559629352050283601222555535952672025221719640284105523646721139452591956193115258061185720896642074191044899968291673665825987533076282696441131382155554449178699517237365060010076850481076479988683234119998678324615612969006513533001592641121081319715332196674766715548446963825614138252867775216593342759299297982532356309506393159039354571164447371339949862889862201948250920141437117372133152175157075671963690315000075887527771986852714745056827003932669059680974624498052287815301771203778880132658881257860770296505800571040838413184304196810557968410720242619238766911690534267891154845525465633218637408669455881859078229547752436703097346948478113775969482082220684423156035330046469937064211424243072025172968997282535335772971588212479814519739585156223935174306954409601883480249989464844109920999637585536106882537233985166248566714860701605100287240406792324416961884778831615198629229665939535638717714876593435184477739230612059609590930586474013429605086922284635581990606010389673838118733388142247847612148307545302466508431416584802423646756407607721760946944980323598192752182459905702372369474999832657802766761444670320367110404767977275784770345913523669352082127740483633657684934188795853694813290243610448393249588139709226666901777126267805591013137387985417490254698742917694425394127664857378472913360339084496440820454538933575948061560423170800122196223790437674562975940251038344971406302452290783550083816285394335784881916447441863985031158175983364884075566196038514338554817481739655482692962483843906128880199130974176776344218395547300650808543682297930084317351448869637531878325430996561179669515997671401576554858468312265149317781525840018976309474226432494884767406029761075091231917342923754953980151523092460833155892182230145681095678401900214511665144298680592511162499379074992623092945651473513390440858733206935821997204807963862141053473692036198511869543840575574601758244844009667795379930343989035380355631567501433270773751163330977485183702838460350281718375921145999631201903364948493140441239805380741158439918544454235764391064694207739280926418959997974118589631600435573117638981605468493296886008631169077462235006377404223133237462233112195079250076835667157443005723004198702440094793750366127780789656555841063618509984670394788128422683527896370496897606542336543462279288366822810743884653466265210098578988318833700840068245712922832280522582390835511523876504312289797307756084329394339517473192601196281954797676309219869906112780129027248994010130621009530710837647017988304034723819805543118221760709163916969444174109168210060945944507276211653199634125743131535743124229310316286062886639439795789543923247136623901465960191204755710234720606164051962519800935808698811356360194199076107210852833309311953767089921467486652332708565452784928841854963301261335278378122259280049945067120109942395994175711134903189303128446084698065423162949889054281070168053469150318492594618382179497964165485131819715754967044882124369531461316554222534314993203099381608924286118856595940712376694506566551015829923076977436448653002818913804269959188732226961515697941199549124894529901986921068199953787614673350780777648526822223317207300872484784064168917467410088641343617311097083820084905128420109538380923242022190754496895419609912487365179057944427191209400962374648351899963999229078773548810083558506171037316265409392410872606760682720988667138699619113806024830828544823111790639541872650923075328415068238292848770178648822276815909688820890599751812908341908541748772695711094024661552480783418303363476273045185345734499383543500218901743152166475284379744353058787054384692469699811741593213518230749178993066789983263255009195795600555671761941437358883169055585013924862249932101012349957547988145214266194452741074480501267660991491883235626666643387909482687605640705692347954391545057974879678853634760653101562113926720788169472668886759158119856417926248816264072213243622305131247889165179559207082340708253823636263462464266319543377271154290809913275847413515309281246935896866498713048891327779059744794565044492819229234827093217033298929159483771655532994848825123861680934818035041735353448098242084539994674390433429862179291166072252473931169901078088969821220470818276528718502215510801036106607033018282067815202775714577400383639777661387612240101114728055876591251216875446574143572856274523320282214555225060754565457030493365982926992349668436614414813887065261228279763343404251894347131639385648452359448515812152986294563099002800125321492243303518070785462296883131073685778259329893235087601449714402560861801251263202105196477044100513401575649635694356949679243858530583784286043621012336392367857110867946040466424421081427089828234012776081077316190730436812474437463634211666332508294274484826227876638390397559435716053981317673404473626162025566505722170492773290618310915181265981873775475451679563991298837318451875249869472673468364653427208066580458663386971340354484927007976554192723773559364815813541739496906985014298166378257534391367775883144868134396972092064221142615745631084845362343089585093249371586107539483635664843512098105210013521913512333148874605379265841397019357680851633193759134616587954418557862120281396292082634400033586912013690667415227238404035191726139615948937679034063530492123193110705342442336934042886820131871459149252374656680453604406094731016876379304783722410008629352536327558569162726026654499206202419442941786732489622242756552649756463708737391719983074148825443479324888400925968151917610944170405362816281362795714092437945344379586988651674041745267003405782702667738141354792892671195008882816315750858231152530874123782438154814505813686697857397677763670846758992579879360387916792899247962332195599334722173048149291155047582542139221006973351706124038972098076749748120165418638418564423517884091419054816729208398173887353857273809407335216856956025093826328479860784249959989216537735746505667526530986097153200743850504654837047719466480707539614653183682525460067636272827669615823569578614039535346831508178381329287411768878808275374531094021903457082695939006166909844267314204215626590380171667065072442041302410338395452210049061350255393890623485104548272607500450934258204362859562738888327091155958136723801082805006221943031450757679074709544836031039491361340149716483550482835408685664397752623478715653792113272647553679497130160053405144047256224531495380217619901538914798550817163331131983262060819712663660974083641422069374223065481402595792862740072367693440320151913629553160111645547037306794580752524836875284603323483953765985081997163304139484187340031465818293200220239741102809919439677500580127428658154085732269370607382907817558905146621034869288924527105323253023139478649804979579227661160698121368505686588511465094769230976437975322058050073147358002047570273509551759187296885130178673787308774759259626188668605210994844216964018655074525461863539865653645868212995196849248968265094166788359559774008881979612685412276479940481578388122744266427442773797051227172083536360870620305654240545997502052335965960814390134072877950406117575487142638170774944146174491762879962487200898105743929984013536135641892297166671616605541196934152456716373332200723551147462697828964751028915055202940950468941472938983769991870155995761678109085548334828623870799816523523971301881469386687936704650679065555333867817673723587412325926264816136647947439909151760827433838894100875349264532115444739981151314846529390978295593987922008445096107666441947334312488547785967484756817938452991997003101959590448263689134275951201306565294632090031109507511675398187868683672057139656673219128035439080530422075384828034690191372794723452554637511116632163299972988609882847221200247237449560906526176064478367701764386763279962349022346501079310676026680232666300474650259025862433540933255136341504255464137186534253434273911236138110498304279923509836768617348823804417992390506745331173467987912945065419338451721150679256406559310081954615518212328381284979764813896013568459087724153550242620662105048623006509569700300772034618912660679229426710392387354977533927777702391041666944282385791255465145386368614085802646488127034968524336050440216548151318805996013376525292931810638674746447095963293692849871655577032941154239093096235347503488343042660048802857715033863645286896336241724522675843756597397381251668619168501839108624592125787201041020750170338207722657939548491499342855198881877500607785511356422278105540006936931435411066842136158502898073981662779340837476915692634166441822420553017566847751579592731117994276396332419676048198201626969257526825230926126393214959892830634605947427333718837798262825708563928623808820651916083911532960307911502201699075801357469465359589173982472347010245420873597706099078554433913081798551094355523476569550384094344691660944466402410104374582847790431872058993060626115222121830583931951494597944810814824992806903415041226996802640571325788552069935963300256326465216668102014973204427733351139251535691267103679183101691149313457279045891921059194191048452372203207018692100262144594374776007105974837866599483260591141443142959308785994747340163013888196961051519717928808757466565500975585187804178909675720292322824167635945066768142556372495022802856764020925843850361457204511484186260567290105281405308344628565764528921748966099651153648088463123256228559822928451485045542566750064072571392416255614882877412289647119006151604269439916045187871266651250347769781363001131023915904319288890355250609851368778635759272152760812255663450643009474126833676824035947493105235382778391587597067453495916335612880188894070603136348733378664737100461096527660999419972002200551600531624254465634465010316677770073314577994707922634461345461478874966753793657462658079159786964487523185324081912161314060203899542718343702114848034248257332257221143659625350035622801332361077429010307619273456156002802013500341082205066322651324626290371047185830564492254873236510315474702591523852169104677723790901522140263624213844142517510265117080437435763979706101027511696359622148790109044061561330010289370479514116075685487056110117958026227413206693893432401424486442132984707147956894653775364204807427267992740718493366400225206767837043722786576439493210466994579221074330017967960485972155965681426787092034203218183763188524813451038218672448850512530001252270088645385288587284483941450441750603889672015463907848479692856451748445115848934140655811160877040706422138430298106029362124632740223091734624609876798541905328778603029484204039909028635102148855155792097593697562841875201406859262056388916442129513725794702517871649387502026940913147616408605930738404921208242076454993397228116787409620067950791902374941014252705800136920657708759659974800753482435756498265319832259947825242299591737379286909462686272394765649482332822694971437057585131206321132618428479971338545710018399452301983605874617412187159797717355463332212547437642903093003969959219980400554347898643353067457742518098430632722090953626897529956001228036804048454756589568851838804191415160936714682541127281689963809689829536817466821174416162608123399551572068437572531335538398667110931271381573171075346057149261701009892911035294199233747611219311557820631525193131007612791465441542918256757707637818563806674949777994237085402419692696135842791364505789794257486516221514445122036988835448831697963988836955478908551137495152874738878165665486823356759903338571877462904646384120705048062649891852518806926383406091925138886036297032774851230361872773760041628220231431242254726816800318422641578557822149370685899230698895502856966616993958297648516292771662188673358365304003545844525199120646757246335198838787974879024388535469265726134742170359788296506650728773096962339306752927176731931117581332341034055228169943477757433369324644187849079991697952154059840770818704281518515794490178790656937418492379027357464144357485238074094048471029338371073416847664223453655330552156879563593680662310493027880987119952728073578915338389773357551743509412998945016380169377718494131759666029353008317186573044232340509286697095225453052544512720983127000723326062081612359200859735309630130098159409311130424541095136279560277697590423603202160726666560829855514644176467840607995910949778832986242481577814961530708291170782887995409347584439922245918222764575797496022152594246644128514987953938206353017422170108516183738262818796646839141327092801161239979255935035998912954567932153512164668865044099581308079825062753409206516045289662000383671746208837464932561483183926270835032383631712007149582717242839833673232932715070346440292616166907997156397046000597352792586017885967057591089694434027975296977358057249845007777451403684387067296736600074843121389261199353324720962410732160622752924275632139051338144154767713617797677852105890255366502820221451933571741080825621097839157873883677218065250813745901774429535165374389524292430419363673838858188285791411312940297338041499684300838302372671930680455074499707937592449842014001635738523945058888761827440894927886251331909774998515692746616036954533687606055812991075303278521939861433192681994198334634761580304842802659702420598792988848794671523488015218037691088368409282455708068551577905886397003306553013727017521285546866896655920074896868451292403773851569206102683184431306049395968705506643432216464703593727705645197590572310592788724028088098396992960507223247741304516363325091347836393020520506707103971255768679432545063503392469616342493482403248718010309352898295648862191903147354360382582423788205564460282347080429646579492268779664455202255768610264458676582012313899506231549933952362937860713723569506911998018667507706626112625866805800723116396703583589161460061474000447180979857534832610354837243588178545066850647770627945821980367431158579839415851529037101629516374992691764907532800486762695580080415860069058434012436257084807674583706390891258386860284941659804801967136970849203510025927949612113874546454552334768689526272405022366855055863066889011456695645039443571177565252881467572349384440030332904046648426035846655691650613829304805571051823294393394533986008277131369819943841393753918280945022360963621140552383171300982596774613931643980523353619766287574770598211007811144243520540291668597888766064956700142487702177577952308386443529252838721692107201322243097697663753403669412606708641139237047146495938209846091062856967766633475259530534885549068544493907798808644287583459665858577639439464025970047513453693998827442421286580123468600218266582005877455314629995823159439320483100342515304523245407624582824601019066008679566262391885588519829962982466291963941917399302515269525130194198073665979838228399549487480464614138707164303834975765038626527977022949759955287522087459042248321067541641372524145155678794450775896778172485203198078294701404086369998870954803327925915355830263319740697934018811132043597373112475492908110282694876888364609412267741033485004161009639669326084323129258090910380931414146842608203238761444106880167895497700014172805999964107039189389141092809075057563504624019820802474014845888687284582801985992628194603218772334232528314139847036265429973443356011250389374755864239044541800496482350410431551233013348394908689373464296012233308713787034214624789567136073618064845252167341297805092271278095582952360222751632269519778438540362771605138390428196757827799376590826322233479032914137018475695408236487284207755589219697637456008256966098778814908458519935210914059014531526625986941659239206088768042533192573185072334869208971437023160701669827223094257308826719781290856011424065868593097732334400405128055090735303546559971838325929381028534770890394660294108677427966324995194768327595297167975594894732437843524509813690297878315126411255743192208057631869670664754968584571205542012763470539472897858476666718294317170235593296632765091529245404691986142839342271955721108140558379929807773442886488117130310574729110065147979953057267353938490128047012432821072005816335767485311297986525072105554583522733294246375514181337992689210455012369388254253128895117399898635575239738113799468722564976736119075505630910005948560701448038637902958600109992189364523001752382036028210691187981602440950662918025023196581264858632912865543279942527036082071800384898539323576987185804710302888504174026296174818862779279950302962877562113465567762979509428594258039680886534819431770391399422491371417232179998874655106885126220454137590370166025109739576816215226968983621956762001287806241643583310297338987043735254847314149440080173192614547784022709088471252978580205793552461660291237654467426254607472944363941607077447826960490268918795583018492109779558970924526307391526584260568707406461530866497098496197812493587628150647712264629949899848365664713955803414466287397179783556079283932532065792104912964149549079923973780729581853707930480470297870691294384120149503617488367408522977428856055587475322296987563589202051865812906572784943739615827165597247092539278090724174571970641567884444377211800110405156382514615002125834593814380249927091466365730069778404844289270303308979503115201459866400086984869902301482418879214045693254868998390449147213861565179979592434800690076140695690081896575563591671467716561507672685884441049923519608357726623546050903473055013859020644029285210139833032939237490467328236111014486172412089967732636141244693515498698942607837516972822054785950783497360357613217035079901326572079511404821139546810070502171250791593667492693463946717387908598270759049275306470144740604159914950461362100487215366511753511564235210031507961931409135287576641160784350888198009543798394236668887755695249419172566955596495096716631904984372873909271810345415500818488862526075064115874360547331240192504741555289599315557797964846663524116930133979146232703244014566347436710451008338018994369746618878406035987346327958666375689444820364779154187682943234580842436088957546105244060365099121638983238474781601053448499739314312723065386994754078367031510122718646226504997280212208647193598627416142809715593880482646244695883443209241602897995897452021773488242548363143002929188657193648988641671201883881567429060361383802256147669552858590579947276981512858630392766985683269554656185276594291302641221467996817282130503241198277338896495601984726761284454849932980868702239496116148237122712011141400460968126142810077644164601334575633808625244048319466068856874730708944948210387944471096845820346897690480911049600655024868869070580064480394320111081769991174095556171358942279534327324375661202719734508190162466888075413112060483157563130116479280805785797716854334378812229863383750995624671381706090666215534644816311846080476572982526299143561075465140086992385757833357798032400906205184545644262479032844560702262139748536374747781290928278795325532224085030492533322403936974953140241061672343409781274447035886731403352970286751973233361897477193239793353596562701526360772637519683289469738049371535035008751409552403979645785968135794926706368724199987063175016268767770638175728690511554230765642751244200308528367077911171617011047855405270387447625499683408056019806148015247299416329820642353165424185621951131241069768476453857930298948787734686301127430196831967716575715701330360053468432653711350946723301614284122702995629171699442075671281367659105364124020483294970847060521443595866448000406786131340570016222820172949165488714138093793440288492785638318661013318500804040153925853228494964453834049240247739820876093543068105809064072283360725110539738723391093510907236395308707403623987543877335998891900507848057391286734083698144078862184048472269779581827523632941307375933842597663954404058781302471023370522431624365962877837233968669407438408212142451478249883244636976066574063938842911581726154053877595607789634000442821644570329395515838614808848321930777171549460311503517023230125468468920612522281179789250508828883250438067028228333128619674009621373415661736777873468520233682515667444725350170912975107483066363100456347910605516102713346040476269755283336831653757951103222188281586246403942533763118794368448218109634411182797199537670252594203176073961723619725273706538240318659896104520425797416006498840822852305113792036460679794228170180858324708604214758699006937488869259731301386294929921862479613597560284906820090806931296129122818974291774567727716658681937891503357417453808326348069405502224995219893195427974975777237317602083646773990372190752057761258781834093482644283205293482833858209717240922835528625559471635607272774682074802650477805361687652523627175004555026376231007911359612568035040313378997267655620486410785645477140211904280273988135660323847881475961045158741736025140732264058983492095853809433876414971170492324738176434175967243193431033557507275019937510157905741186938828115283972639884361339580053809552237743762973953524829389214453804524362547057019741879992821693183793615170525455198778644091130533288395152596197866891903437223773533971147534147273013121927487106814811880683806396140795968420530272769474011149376345364511559513295066972596818926926834372439915352220944575058591520149465051857921565500580224863700902259411369890134486424087498183175917526775012259366438160620651160563880443661633357860447374541100922783224590471543196114493356607337469798361771298802742006962120937934567812373758030851979541074825800794580218036619455646204677120301348248148755916837693149589070982655930920802907328049064845969194677120030786726226340449309166520583328828404932279257450725992203637840860814888121100523383614001853907287228985291077607786007462842363700478934860326276916971321282944815815276411241280941486481702591167842357749232163110573849558530031324963705158909610432898168421455358633027295222149623807823356916639173167209896089968988449520730155856145454990661517521962163735109354309497660426826339225066230320133475119305067761367909713013566193529537310535141133786238275712181094507268095035307987218933282408382221316349928697040681484844189398287928260391126374388806481798871400471401678537479940436400104502848700155017340995006862940616130600398158627138123376526235977677950393585380938852063766733748372085924949800600070689516245868187276562862666306764441975981896708702803414878126952346469132217792139199602183706677682929663510764950727485765092651878024212843404553789849561203838073077228482564867426847119905602435608635645841032807733547254143727728599829936059127830764740672099741857213162407405206818062073352887860090187834046336937710895431151975653078626170609306161461197811427156239542037396873989745955935350857356853762469098939631970207661381033530465438510620031596585978276910549419246829791245842188846731347163022974514890233928388868728979001043210440904512405123850857943356578068065264727811075939411090629658847178144423818666939690381716636893992388461248919026747375705872876905050906764149267410990866729139160813002031937531919476398631323028690204783336685199060575665981338441206916902005345563579559933684281641815859751643874930878946115270609873276841449877632980000767698018755539426338327361206343788816959851142879911451561860825138194806098576459971524966942151539759536382772731673239799424658927949065346097959280500967919872583442942145965154336915792870106599194235695759837124492651337942677301241237610368911654969374801124304747766786105178985506174254918833830085702265147372487584205574275437630533976599081910627323317301453606526544154300712265192466527632379155887073779460428287836295550357196404436810249276071513505683147055951773113969870027459445280900360394362423232505584258700080706054083227019039347611214267341661550989354998329229344150019268209069640837187095015334848855631702052947730599118915332540387154914667550048481416670531034813874500758658313049138560508927328109774269475918523325363435920484440877120871751887471133697925928579536031254367879338065099306310428975745409930383176091776929290264936316508475952749762957113411578791153007617139769633162659744906316603519964617197523291900255234605209555421111480019531140829263810321939099812640775663074089426283479558692064534980584551193637591778633660173786403592480457218355034136895818149633157424428293803095240654370930181427500593784681158556374534396244415280935622734043691222210888609186528867645686671649537704862747341520955028665287436305856951269813313753225998818324951594059304572439046013089196035473012713831203834489931863544586552998310712487045694545091890864445630955999637036716802279181183938793545832588225836447931257594303585800774007880142250946897277135427440843345417425270989900173544955293722294551810267916510477242498699080314188609444619025992153913616377627884127002596075910242352766272720201465083893492948801851655277782130631519845615886099835112937594834753137053465278756057185930061284935625983235143038300166918246989618853550493674208309101789804935198860067388767713451011356931028084760001778864319777738736094975737006527917578196031936976790118447733127882785763918765020664738160074593793623166388510976886830740858209951227120581286605888846058488516469087371146859121909684740046373368688258910867565894716976030083323785596310409621297715145462782856637747194879516628683977422840185341099062479739952383613867045611966380241948367088384150957066021672419025685760882734673764782779142311573096263681542929566576749956241064413599129723363426769249022884761318471881406693192049471768038284881305344897451808087837613981207032308879062074060153456508537386843768944995103041717157985062761463435156551257914881133230412395929779397814310852681680657612717751034832529949396053818578834235644833730509682081929624785173465956992414660135342875833468865960433017496177729690962388266871481389066336100215256339461656080406687657983951747468233462258212393915335188635137386393895593124085564411476635269865471875671727259761504637299854364108545355353678781139450458996000808980617845930409717782223148106761893146290256225654604842117817293915567723659581243327165143550597229615144901486190013504212394868101883130901599938655712890189451117948637513252648230016594702057844000028847075904350832034840381419506140983719174805460556899245781268460934360897435125225452840465831340534931232480901366246365968423222978460327309965687207173709755876130046125409776489403297397524595728481777744232661816956546085260848164784579381526299802653535959458143583028447962668496202310400521422652548077878080224416000827422886513135666731920362689033560274242524327520678721815346674406719088761517836626702992586977397203475843633038609580861353729283803069633898532137223389025541827158542849486329071657366547598288162319640924243772145381699813187767966438882075023508229715296087123649501336649502306653679360519451338192270324761908790708672861690005144947941408241720738920470699971474127372446605087553466535498541717739310131968744957473331164339482833307284411760733368890602790210113320325088533365131769593983307357291761506557211157599971851712504566816812645553652937262053481281728255885635684791216710122666491581193108964398708274178615037228115647604335070271992086675235930707816262087425669150542370848958492820825919131023455093647024083256398453095982037756390301734131234929321841414324607795195913499442575963349802324463616985461439651066803239100480239629246659564035063754223119608278738441856302515513647531668045327244491964512759874937612786195702963564052634963959865351326047064200361129098470736291022696085051901510258893887536401707456396886627664906696878006850819818527430480030081569778318396519213630735957542375894810821004745488340229303198920147814135840396113307042634528006975090699634542661962488569728696933924193150368828162016405900717232318310005146539143116807537501060650285838009089341736373883022915449712801734504496556757776300710999838616514741840135464108106230347428317853788761897656937725529912993055841685312123182918973830120742006927793328341767944830452349191713045940646762606173693033685588492568413385852192876162871495547670236599264703929576377843437681646510899960634844500066257778657521389998253722617592909887631170275024971570129598795426248742424570742260662263768203062073334083756252827534345711965831503837264718895203781260888580722281658584064495457506151269714409379263979027035099753132967181044653987061383705393082517608468025678126043705500134379474612652249539043353459389679602263642891172693776441483903939944881182352640920757708186456516089441668926722454673071358026153991839009855547474332120343275853060948691776472727062384953735280905355279969457757045025131310579430458285606447838684564080714979326940202736555296872905946907736970912686956145412084023554254556664290244430033188220336864521980238690386465903438975436079356184843273715924272080059411486774790982040868410477972084119035508597640145461660969672929289977567902228811226222514888274228304666017223810590783894610216914524528839244476439899806304007236835721076693583689800607703546435764891935240345164437584689375995861848467191405155679828698053326216063097952136856388276967367190196246347522990150886407691908496913563877026323196673403650688656418335707433214355034289182181813506833258258114380905926705651375234887156003879852871915591225022793395003553161466854448464952640531093602862469714221892331456256127657997899944777351101006049677604073122303586875863146895303214953631387099292335451280053590233722682124425213326774251676388282028082170768802713705633663952702201585647339512024806816711749843653558180116126209092212600971266553242921770538614678321731456763846840367298302596949629756566040237942260033410844793991264846364241877820455700496585336345545930185628990616922595015745920129376296070237862787224395103791850679271432494537981773677781912812646346885410134972563761016270834710713671951848093782680554440970363290003113755161929627608310228398967434323304942515709565584274678546230878407051054245637654237207222725995163328874729872541916866976407875361129065671672719725735061588157033364055665826979540462191595041294157285789956008791506515729511035578247914489740498174308871194784159290974643089173521637230877777249679804128128138837581081006911723250250016365136560149149998106534431308863048138628602172664945958113398607472889839922037865784838362582466263685607428562210720907253562440881255822214007531222029576657173354362079497288871612865513555692631756519786258549297730379621844649014844005358341664157797572761943438345165943256649128972237936654890290667021389591143439519793745880184887935228092027049525085957673310296963413425021865644200433163328225390125197491317044705988839690176875486700035440038449018569713176906810141070935243935193468746614031690264823140471983201723728104367607414724543302942376788908222945030695534868280542402818082822895205577673803374052574006438371358378415032208463246585443645740866745778802052340596748666668165570290835439308728314055282208641755689612718373926696697193225444523070733099333860109940159910229282940589465203627713076424582511691817741421103042504897379771564804144205079276449949647532660572517489297631896926388241980748512553935135723235523276927998221576370620523246708415557852934053424573815995805808202649459682474410504958885460401308103713289472678813699275108585691453570762015823293128088384327684808514654139311229537689891454960149175724309991140459782252823746160073746470680105992213712408866027462608469259394616453075796473534774620282032579366482511587689978143193040791423496356819277136401477225468931343961466829689688695116477852119666774591519273010052433491123014023628353004071391581270914663640616027832662381511243618852717218673370891526842178243615529460734894458160291468606313753025353633562155500014504420307388719632418072610582795554547642965047475470180282724155071819019151550454600144153596939201413584945775761461208162600732250686364377046204488125117065357357786117509026436197064174753107018452204161640983364736406193630637035665687389080910931016778824445547771170935427069957992160208822002089910458349786270622964586259789729958220543187922837852067721673185349442714017751926980002427907307382313273114909238594782747458974792100625849399637864053529091056462830916200356624971048064396349530496379305248182197347534070571377890015001940487083208310076167939091705093581871182525057206450066794273716517999546922516579944559227281509654578127263094199944200666050291986198643313514076430679232227858903783321073215633612057054678529725339963708285307715626986217025614886754416806939190940359244571292375215605765713044257876792593326470654322723328534211180916534705548130273557052371637355456590065520900944971278003053673622083346332163394114629849075519017987165635630288594123506071762828119783959964741329460563871597146598744912400034226754558659521265306227946986389160370926271260581058368038681619208397087959077280728444573664980152037766990166888606372141928044899171075851311474852096286483552705902106606704227678014977960818327797690568644187679023694680081645441931980134815239387683089819954423831341978489831384167163072631609112484671498473281307531057877095688628801358105544499136507154271118144866542078185011285608301234501840670929418599903359780798482025353277805063950831044138048375899151802201223947272805314215776931406675465464547863713751164002925107833341851185866403067713183266529178064174826448761036492856016111774838919746674709999903269161764534112111824410837403818075343520347334668276267785083852450619339746167925767207074803334503886120167898609066515973491934472115170925552875987863133156935022771995259003644824722239245111349030033627017974711435179398763422752246979507470490408288941987207483676042044524411885181006075745549936620633170232593098595577859996328611672854554995991381851025758252344974345873561797856062228312639007308767591950351571709911546090943664757108738671557697232202867100485818921648730734882524879410271900668405447029294851392980377536984385097074403721720570576582771866805557393854392656627335281533238065402968480998154114644681311263835799109651814875847524959659971177284153927938176657158987728738803383203720365213166762662878137866342431201714019140109155686463531805976485253131181778288360629656280742619724473328119373536898669988956118188297011922011158966660337198415452601494069151104684674852274069193042839659339957480834834674544137559732371709753681381216001836015772182119167046514780170772650969258373759960330970480982748469699100581448608316756456265511970731788380632293468624333226709072939499958078740296289371868281126449711588333726886223130209983222614288773836528565390458478645034496111784782443404123190186884385356154198949848179633307266665608419290933752126754777448078580377504302142138904686628652588586246796663859829825881149657972480100530386773892410004556561306045623113532348789093920013960860925581544979613103180216552525498172391533515838066301224756576401643385172740659573003883510557258417729009154023098666901749118846507123150643576774483402959162495593667427970873606252991958845648023251669549837719128373536802358481227837760922714408945092980297920860159861732059553850204761805662362100748122351262531052838274160099197272929021790909974760419039097863979177039790888645835471691466192984340837906587841197899912362652082597979924801324989568169336523446067303465608434392066652412663565472645394621888084369908370250837132363172067987980085935089857335182715534668113381944442130348227607543745168411748686848404662504626798846288498399623765483446679534272695335935433595856131924669277270676097147836197031701500373037938535715539613724784162829641846180099622610483254100781080444989515919158244660481919521804713578332444258648079449764637096081212072777142811023693775841507815837348281369964146174322150045994674230283295618781573522238340680801906364261291124015262735938046051088523709276679673642370783698528786794006850487361004651425868299786289444620533286278583264186820450608225547349130879481607777296095023187674552261967950280932382897499622101825564804659267624437007715392281469064823825592143245499249487488373079839515953399955425858428557880131210313504936631964267715951096053197707564924007865179867346143226904255283963912378929464936116047609134520955654242416301035963380402233531222326326619338915335471237945774675949589920488031404835220350001328929417349459488997504556856345482019764615535266189920572664683533297509852910744558322979261639149717439445747947320071742503958910170366837275897374079206100923777208695949942772453865982642931796636378479391426307259821692537700833849698068198018233035158966332683183000132139005781116781872285496098777118181406434022156692146678487204110619294900259065922524783645895695715292819706945021393064261629311234001667414843073614507539404572053814128366474208458224116327155357921403505234245247825790393696358872250598223787613722553683851090055213258705851858209247900862855185348470039976148755325297397834805407138735705962554232960628357123536376244702641845388737298274473201396273783731777412387311629879525299153946304384986218401152944162960470294370254323053130953706850079632150020506612486030908526579217965441909338686827958395501686316963094020676283963416643182559976951199170414219712046288741121089177022149562786582156362010436049848055428308530913708031499283209297399488603327490350696955717134801624975949790826590762735528662411487581061203747161333898551090038171918466444753465682937699797170612095992241749580454566630929333280690458899404762977619244978820338334408182321452380485525845290784191510519698328732269390323232790255242866113498513429723718344022562349160903463153032452599524455006435879206290116915571948300922380419994134857355463363894105166201351151551059901258852166032705391389158562749323696405887857862548654842195716436699140902190891298630127619322335803133154950074534796789278403325609126402905244283592588960735289001188535157112736911824519522516424843632446548383790502557740854131261326887991995941799013245512284096871346656413286090626931253231069531228737197191798102909437114569922001600894247728462000598428224399346545931052167660228854725443774596897850057770687066767990264755517549087773278339879268387188713395546209842530530953713971190419128541388774869105913508729465944600671515963918178252468633250979919475833914004944327031039329648134245235332413425669098097580895932769770175273768486256511026074874160406714780197169951716130057693922459825838774103771255051511200682274887860305076457884145927659028648498534881031128956024002078930819876987375976775945607651938922560528062954846377694284067131342376533211595117675282976579337234881280161287182034625790162521124618597901408918959005150151390774503777102100534160699245758791958692941981091272329426399320614603981491600873673137544227392426708875705390944374837639517411752892916389311627773414422297484576055603519053567748557042733227340678301051642590105095781374539656974218404030177750504167713604799062075093538052956979634422508323262574468137067360217411487584728119104096385950425177198102686407687471419270353102068550716358954758852150260908048316799235656245139518650674617022165102372426428544642258360006903628760441464118070640387382944584757762999696901504968802251716066663196551177195867258485762020763396313404239563972008940249880647918121043603576251754428801146341546301961405645696334959426221509129915929651752209605013249411851930586309763748733067883540704627353694137941142909140542009931850374781335825299949816156400145237509820055421001657762553458349278302978688526628862874353200704016201950947033670972900479676056048996007488228132188249415801348788048041865055659251953363136425260026310322780797696043106092904946315213683580798329566309799383295528192066038797227385310308013576640630396585623166333099519549762627126959073964365496276529311269745390927967388720521661079044077000450076070003071658264665581682930633372725119302171169747997695514677078667971515441863257823293382565567493399523199121002241776314811715422207597982132806091972832152542231817182477586544036036176191738655907668192114272596930957451482524201008809327803215121837349798681367396298466576509608627359223123831813790710314852724201842199856416210935730516686184846575951482283375590771485828667543762041077140694935864753084127724698635614612747169778529764719296607907445133226178019851662478959567115260419386560703595019159366013332767264295048557467063512645950193151039928527687127166447561532327125662208635044292400351727450855350166288753862955985543194951067209032205263835570638119139041949865650355768891009295170951735062306966446814406755550025246011709931522024026653748627599005703306996848969765626383172833977895900111376159547026232467248215443900617878394264765754942207359445993983253770762584782319040102567169377784298783644737637509567432331518622013113667545210463986680244151883702169006192118229923114302030230048121266867602162121200213781864205758749910577842365598144510135494869118380634090062567299678150960548829717764553529119300696156010255870936416627656678770406007415993378767541752191489173427103831730096882312044807184242915526149055203602303925361088726486751773391667970669511555166096914618559958335981273969284592602821482468143171848230433607524366981556975116801652661509470543897349364460096741839111042603165970057383501955936266593308275428560366326829023526347799547931070311675693785983820176382344121227067061376272692261439503449244081949491919318251035895233380547779930352135733395805414035131628727923412167954799880297152454405712743856207863901426727052599699671030084589507621164079391102362929222465793177530890109131121782915658824330250301478207309665621288734913336764797107987758405262610860264801337736876494679314927361854757410483344239072255772355750534871807962122973272792506419248036954696433120615173391771805355423447918910539115214170290881133045319497583854498225951307691293946118293572458000130040236907045831298301793211742185311028404721851660671417207793575057590519549258745923629380367526883596257783819439762929520656051911209580868558288955468130716107607116658001245790307898110484249251447538899688369691881696990329181207763557746622824292226590835716274719346416295859684171316447254767887890508179319779878668326269296726197886643454276448330496185498925999368594693306740597508323394795206043970615684506573698114232130867521527367970801360306892106840696601437320826345655991937508368160224117669457000504483404727011052359594103466656512080554265560034395120885612418715376293327315296306365343358394895633252779556026523123842474328101410487008819597057279998192944808210076414346283954311777347406423858345694399041494092341170085195161041108868774591791228204911562751894646000198524188417225938468911664195344326801731377580962187709839739695758084625133332139779002271939560109445216641403009141879627952936970106198345922486141549887327190836753328089318988883106638553267602488933272398401208762912397078038965817481947890063286633596885824032731081917205385562858515102277548905262673541892342550013387031275433423945428012799719603075932546349425964405153689920737289712817714263654041350935231604249806811879609218492027791623541431392476627647220518447342264931676703676580543987713700174101833762794247358132792364569843076423594501013003489782578133448403879074557627818233745591729999034719216339324207828008290683806614886126485066185692142604876758094275771497988824591044910823707833497243301868766422100526630122481511909042425509105158260404053444859191800405348888866041449813815540572471549682164160741282528550642120681313936753124260901530095672533867121297063560166811689210801446593938835793697532728502337399270321646605280399558221635706404268923225080864070858858576639017333766163859084103285334927265606791064410006013262433067760990101591627281793851603962765804946552546868889766008462763871307938508772761311188687914428882071817412223801504588340072911465304043024502504814606953342977049533993576629842211988604637873685464068078990435854430130532420835502897341391808331470365430655480542216803117796545738937134333011787365851319792142105431960767951206288127836016737359887426319379017511550547172412358381065975814837398356936458068350892627342955111065369379681438943753079436100123358483476745806053605225999657449145160465038485691825436393194206050623936563422885814678947357640663448798657485739633800466761812696623597800338213262373567016537284960061704565014389618422417817397608433597515029269824125440038708796399421560203220393113031169909947400971162624724968355158332268181106970590486842163986074470780696178217486349978041216421707904937852544069376892026253486868723125495958539491192796581492258076966981272727294835024007423935311728684164749107322292620274193732717303629193629022871066733765590580511735258153424707240059355402766606898329418089976692587327406334670019877265065309662870409512007936836068245524684918410161613369846937658429312934694185201802016999773643589093574823792262638961736076284629435153469820400821871495814935774571198210183882242275121559048938987113303228666699218074023314888728326051900330825606885021135386359834360789581404244807400927578185065660678397465898995933392190526311976093549928220353309029323175222989490159327317187219641609392883823160525001466599304799945312060658783145280697263951550457574259744453829789407967633375928766797342409478820167065367507826282366276451771164492309358403687355865094647223473109264497438417036678396158544668911394758554180809977239280496236851936194655050714006744619345722450187697755760969810686270836672708851774714798381522012188898978695282206983028955975455067926215573189817140547818849723835513881879256083666889762033475492704152717153044904613650988980322125738953577753497752594047008530169244386995330815959795042895258428026623104844198686894361754816416665773807631946070242493977151869610638148291931022813554051100639694531085032488310910967933133618826470964444930966989805825120560516425940665633075196278265380896763850880328093033186679626277748749644518997957314965018163184480284697281863266616152620476308148030997910987799581505159759619814071855516151073138257851389540734700746151033498380465239347380034602118953675269485477892242640847872101789304285387401360753011235339155288856098784220556063089582829664105646016426290935946880997758510313800610003222888882567162337436373434245243079034332189584032765571722428420997800301571298405165339085779164096986722796153071600308106131580834709815664447529688791917118557779044834818755525682369509008169435294870671577028062012968771666607807651710192344795533838206254727225834594875135267926902237511158016978119259519949592317237668482961061631760022004216074240084905606545816017392708713769967632268131328158759943816834226646455407571491117524057743976687595622041799196850340942088916116350454789177454014824381517586626056096740085903055233745439808263198486381133571310365016066852578559303208317211006250426094820357600581503715976386039091016962428314872743019586528334903875608106996783002702520965030129135620342485284645409143716407441226520518381106980770949537643693263744656920600955277339188081374467583689487970064632093917259381250838052105452090209132459483913375819754849325232589472989263888639658665687873632132887816482897972450370673281917528684825010878901738765266583821051656841993124878457538704420736275293473269913315286782459060917834075630596411761602916652016716400842731684014889592212062374170412708213415301436829844001288266948716963953213152662169247210273304146462220667290092905541142525732615094978431380312367710534263720947698578593036666125227073953456553769423529653547461550551901451339436555132917286316199116128820130405701278413945347665377273043372158250960286417473384349259473350148471996939504987291709049640486614002633594956233740156478913849424538953545544076895099987463999267517638304695933140653608570690264885310221990396099043506100184488171629296838336462055548605897762384813680957491109766103095422887639281388879669021651488791821954524017732377770617781023772759430885530732353236264484288636855614200342260491291852835499296799151766912856392597168759258197996663458382634038248032911650534089481781553998885227825551568946963916730876042329643800877764897235735656568187474722472573647604940359045823273939205507893672404552619646153668860766557754243163372625319369004415937388343697844111065981129182734411575626561792950206171769841533633619753104727847073726359520739193393852870950596159592576090835938323975525948773853276014150860958923913358514834669065889935591000366257672485486264760921148968332071908683710070355977142389383186393928048655768777736101727570674531143778197075940454529082068990573076162848274708091469242545724608039522420001478497168491792241808629337045325826316974084833823440882592077222863469419192047409212026667290330407969104157431899930942964972635642533848727894308222672481797912118508943117340730210859137244807996414154599418263864010704305035887468952281981998625358814068158179708261119715917947742623928784917727672048100464889088239182763580392362958530607210757955266200429579894117319905528613485773669405632541689874006336347576435632856122679054030388852483274104841757772985518072881943620735948594322046177006820250465386509797111915815236838431312175752234462111967409151295258953697277304696776397661279446371336074672522323996810414818857965076891463674414469321406679178844254516763204838870858328541242281703963605078686860387852268388457977816257099121512146418435977594824672137368914899285856278419369496671459410310667217870876780028728718069569429064446008509381829987681274509336051944660495361678761789216987323978726686388510967282051278170422225565329563850085712831755934780920173892042607713604369643321736191524323192354375383764328897909407667738662425224006541758150596730128530114114679624184705636379049267110677503384175678924264121491366058937455307522797385027302660350602952533722572572136393666942823708762176351128725474715968720581494431630852650227402070600033794817131126148068894677317002750553130537525457661246590792186535535492868297790964759179661350892846012692347346161764500549800350662886524222551426712515440587797977080808882508283316428377952793773668765780623348900768850725811204710908540029612636037027381567995690809966012139089289978867554190570957920180099101043790300995963761882548568779813928483148624414860215873157609499295832581399491138242202203218252530670564717390767280486985457221809050610968580875089212902363969723964387021649615848616293659318883473489524145888659903321457378035428348883772053066190983497025467968181127686851754325234315779175865983741375240590266890476293546395165905107371949903742741316866427290194955205126755554360567148476941675257690081664355673762849298214746730577426105748544481934932481137439903382734329360149368885143189603930753377761812568068350254810941187285223766797236722552721801940154421223599116331189535262347413174102300229328038480312848404890221865975449761939675865147835493915268008129457000027385329724639877613594084252027565019369567218880038265809118698496890737841165777159731275376084391145305255575322000571054378693819331406449438503461728513420781554629874925131753021002219009517495834842995960982380265132409840930631353052387982756610149419218034597051175794288376657982830438938071979483598335319647814311436929658209144448362583400396378258751043304863944198949411545534684787559208710250691421954648708245675572972522952926671069246307388280592760471000766024889295779489502477149802277939381947562216566163661398361140295410697737746641510081646228503402590560872299581170667421016261428548954820524841405199654937427667142850924566583721894339824869384966101162464475828184588150854717098356709589821398835777910194403190153477907163038599595198362276030499301843557247322946293653403461920325506721353560736504909293812449910270092744648455366545152055661391651626707889679654618192437344873126030383473804501858117147752526009503272479400388226263605737804075064634584906690089337242518152398210688445652392877852738542523647322805825660617124840496510833277559489404398997616731911673222508350030059829875495220586699836955000443482110418993779930856754269540474246365926810134634345811555079802248129106080972994436810240563071524055859866583056594836581076013134261000825841537330295647288097549869317573598033269220870749007532560320741047888842730480736233257481565155690324734869283182918142220802270311844899033225508897432910064527834581810010374621261617089048904228905184999051640628377019375734995350904815771618859141753119048152099079780147517602363753610264520628803617007196529132318230614567239972370306713586186260828867176090582251263064428767229115840044316670667092323890629059370861195968357896721718485722395879138583340659103877747063367422246296273150256834680573553793114063517802094212483866709668979988832970833771852464171701759575089093348642517778447012723774820235381346526430472203410847335283064028377753265025957110770956472295076978826189599928862867245570328720558242850064436515449019689631679117619925358351263752354500309000182192785444101523544228561181491004270674786802316183555898832054368422701037217711910861314731533468062867053721894639855360416863740189436738297394220590274670000229073989699179389872100795750832510315998112858721317762080684087922092650953736512061578981901074051613692507990919299909756535383799347044173885586633320264404837232803594448837899966400622967419093666062384324410374017036389800301635561988068014350557975815615733918191959860541748944271003640937780261660456868600397108464340568196007662256823694894047710315711598735518751032883157293300363147072157264837060328649513260281018243305476004508724410203872466702282791952944751459753011125323025175831828228645452554171785325948593831109229400340338200877233309508127039961854787762357865276520508851817519471118052568063244032708898313112234787622259324531486672279290881955281075442710215909889676207838724277840152788620872306976604499169545630661536128921170292596960906054467760919749949811771474874556355205913336904548334699707430689840111007846353753461668463608161957250021325973345448673663364031406675996460115630893993454854922869609478970662533515728268158863450906517837047531204760165156468313852896960599756853692528961389497298966336394407729587055136953611505079294636737414672883588150083727675024694464681735230451196698952558546983745566254446278628106545513066723923750336069606138209449945941597539885471641168314276010225527087134012845549428427948053146487433116561545320883496558768429244195281244201596322592753311144948879212407307816126589739800090880782067514296791535762845474831591829661269997182741912052049378638726220981508920952858347357915524759950416700630897063186924091161220372884834909133619447261223520782618087319725976446264863146631043640098055713042751251165282895291911761245981750301364576548267090165496828497489499781152942497978936320277549573882141657015921999987965433604157716972863196906660822190926777357317233477458706746808584308777665634733227101750992727879575627592610036826722205102355699542087439035355390852174820455169218648475663383802703056842557372111089257299002342596810722456296785706385819046182904223646255943658856365451933245138534008988844741669333432755902113120420582408521322726437561182811224028559637323811445681782355801037466609222367346353778645342930236189333752481173716999995076507727806939863264829556769005562834827221703123277340913957139543413155789589073028579089562572193216382326923926072576314776422315802932326274744411391319858891970407776843968578729340875695724559902447528838867475058667206774714223164649798569812141748853703410093533870329293089163960182640771344001403413574422405114805848121297521149457037798920810611336156591520893290660765383064048484396683563946393869453584282860741813883333348372087800695930402596576111152117296228386147583327084929264001655656512439121193954178999664554450141545735469756458437395914525394292103497585533452770441450760244127954866280218927772595310645838994878914209013169339279696748919292168026304057991860871194877911872390377443846193945291953761457369966225363411951196751929076788310131236756266444186093967212122227345080150727062687249901587133744476257063103221501321101056782289212610191977656895464781754471988781306028038940350845768671783996354141446272926870336823280613831656174872578665228739191656960628187070681218546833960831206689460360369512558816076593939136246101909590407686587709066917552867197072175983363006936318099589030815670886251803333979338756252251798606636669027006320921484280134322351681628883551311487947603383615210495259971289625029068144892161231317072555229897778242520920941831075946266388509170525260052905404548470709048099691862083337165730261638524939375488894635726754992913644248109674311490435643401743075784426901585528254667531185699522772228263270739239120960786121844654988852080071882534253553199012596700452158503567349995093390774861270051043421305698833857127447676455803610989697782360173762750858042769089080716561947798569541912168073638078908265313404778223540629953250326714247921966089553484242510593088027051371900245168572672585869089216147413607520673670550684706410864266670538336151015210076994196623466355192974364396180883684631276473466369459516439452240719678694503518391844202868577244138803403422196298525369777935551813701318381468618984643820798890040612816569581867538841978980773742321783685594921401362116761225652978454500033941056293909413791662079512021092717507956992981473990360182657655472583275091381393103438219627094289812231211650781307261669795363991032801737696736185345115604754239421360328490400915581436713901220429668630422107760230217201988509639069539744366847422779482841817605372704740845889513789309585704168861407289956793714198094085137154523535127840749968162866503841394485384135957115008242763056547763114434121559855051193418557989680573679401736826030747617555983151053940843381475849084060609279757765529581218885083236305793652602338359398736784691880185668849351714958872827192723581102513299818471485422121812204719884561949470317238872812646752735597981624926401433372187660206625790741997474786027976109275477991776484284762782676442955853472527253474622929362925302937274881970433810896693688138781945723462690653325056997310066579997826138433466567023771737270878193321084689998858504673156764687222528893798664100472224003732039197749456468867035293458219202327769405501799086291685764867641092910410278965411103711422071159892290195680550598600610239607168509834786323594026861532141135415994929898167522267929325590442485222610252349331634663219107899692162725697943724531512077833070953607129025750669350243659489306086858735731347125685616018039922821422666208422018418765302719946724398773977961802133380969039958597639582488910116870885651937344637296093499646860519990230790708733338843603442476094740195478277475989491138562354431318652898329170590285506303794921613481931877184021452963949598800619123089035923239556008736033680074795274183439719231918397690433426418538192474770437567293513737470118256564583101000446500832496064926540108494275047282412749563769290354944967159674645953560430623071684555575870694371383399636728240372537423994302661093491810936091972056892346816622067697872136156351438750565483114744763323762840706672208819495406702427682499914681355358875195097749764369883855951154453242411983309961102966753857436949682763016829137916108337682669228907149452711430829682479904667331425416569165004303240978934372718661757823331861679739345510376325010749238770762577933170160222684150181109005653934310588645516900544798411739742469652063643680735326716987511708027891618200513215078244972104267935368641634242472723001705746886057412928350859862639881171059828093785256295636337486506856477614557100832108732906535170398183338661051259620496225368932473174227280641131623884359484733289123273318017455987129948723337160661953935247390763801272170912269261978722557956381565659488527692144067134531319181997373225343016559155352652941114435375358861417469618041260114439768238496499069926005090267866905309210356851366233448579265391054496797514786231472116428390780352954439536295079918261405163199656824741946601229632602424581837323311012585272608433737166748657604452899054680958884564279454205854828542328542768207482067088657488066140956424994619300142563939091662532934551664528530705592484495950635030966560693386081249412130379828637667460860731928944031113322089518089411368151066801991162479165239715470432014908708496533160511139292568711259789816478895584942410876078943294937456488739910857527899490361492257995409230885470062554354466652811499874986000991712994130397853006382581790093273332921603264148118124192914609093475565852163710453359196707193863446561756432367434396950326747325292471230646479658358712303707674961844301453547344200463418872615190919690091981129036307512579395223441657962717052012777528012876496448895035759076126162171159675334638625272063240045052987812930673138736979047538358256424241606053190331093623918783431385949426999913789458779565005450068692001032192215748646313544016295486447967879832354851410354219324725340594731946994755940045975220763776790148854925967456800567783456565388933791110514968492236633853955714665837840659282394943693128586741954338703927357674855007540025276040879068735204220176559661263285647800665390177110819779339441542544970091982034716018835241535272914060088775469536822299874244973274907030556953847819610543095303683846605482831283007755288356996084667841971991570643819628362116284722594480653254352215456325107609671899335317092312501250904320847235992542887776459543060336727292848084860745453246473995311598852564013118862303047249129342379368102565968467157763097388248313466684557756834355309777960031797133764947192048216432729508467836845276419199070915147694696931326850989967580631235697438192171785585513812560418249085726101587053205097231305339847107629760666544757029263257064160965572971153081066657455038517605247675507911507218558474965593458917216060431490730692435417236460144194219920392983205969180357765741146211035635142419141769659850408128636410444413953034087326351725848619501457786368115050032458179343867064077951107913763736694907511304184495721434980809075945895343085309531726356982784846272699256339927408040608612871979409340022023845596379892554057173578934960359182318514131725148538170703040828931892348812919991963867559419114686789954897471236999341070723712669981758146169186779965840876870760584827976322849711619242254687567649555683020185152098706468699785912038367014498846214335331012913099935172060040220871963808716645031452312376285329338203150259936029754410969205338497798746879980565003157251010225753311402208224922052898311577494744371400890427833800894221832450422598434068674529800486903913952491310221276832130285410575297793955895479362848671024338126836096452480898444364536610603668578455590026166915047229270404472113482555283783280691657675766411675159907519142342410885224621909193110539776566533834095899074093262200750192410194526600464058234793141322968131155295146604454584487053079959427358245841742162075620363667029330203130961439587758442431459761541113037800089129474170969055740274119448889334157132259614438308880782348503395809328842889078822208044690375084719542037925950962552873943443470819455386155247807999553845321261187890035272469335755375409186181588082342210905421692510861891814476530063042102877910680605234974359652650929858884527398874576615737450004453769503595500154198166806803141462476837657555125842073813978767997164552302264092100113127455365279101508122883606306540005489510268481335271230647421955874867596715673188536726389093429290467769814628301277284202706619503058295242549688343470289012029943112431616270433190875220448473366519401616690845792795675575406197514798652709004357969164972147788235181150781677630517912854492511903191352127320533083449813526936185367059288135303671194598862575214499802453351958311211583276556182221480821735017151272921995582465862513394250391811834527073693845142657120929237840556694916897676862345337899127901550431407067264790111259239983948583608180498549476137516485227012442407290986521584810462307545449871273686903918576807662604888560250655788753164348718301415046077415573883520540468241041765218770944433797551990201979998405965428722473891253442010200035481579310778965971960741093800662167384972547376923294189747775130509784914834021284266916830069810165065964875308885230764861564891794615178282791782278620419613565378938393644195692847213780604340217398486967721427042612500707151143841700084591453672740569970554689972236872857892115947228061004957911726906998935164142929988977664379068429850272458490774094374070279185954351676233590573823790995107996331453758973466120588341860983970347695538555940294662388129336028772083140859349200516666745315024297290956512026577662354829086145921472446488837710308177502429545400746357145496685675066110185630032313134551556980332463642293142984066425488054538950256814368346472573340593850557888590896759364193671445227034615734315769853557954976640182844868237647010977939563273096242022501268874381685231668605381007314684642149606940828454709446578622748192435851655032962121918756413674765897837638579034134285515090547168352732220695335595509924694996408916665471323710747639797502067550493561726616510559663406605452577995345775511952718515912502846858201119166702902796281838093471982814998153958505192972876413616658419386121566022530956804031969648411374200377807259805986320070938803631958947801107567902983954983886263767648103469787478038165050034096389723930542813297263975161285977296959846943657135096180250051474660593396856491239212585163871348884961142444798018658997954396046526356395729177401496005914851152238624859161979048588147328681778949144429514863599017424689967206539750860319396619720709883055502317450682358793822105022198562694684989010594692818973604634117395825330908548639306924406435160150171700048792325768330570700948360646656458454000210464112812460628567801536517488381872080556483894750187293407283146507289426062675872683044074265710716925057269143754855391582914734407354061255188119798136267939944715027596653432836515292678325967665864540477246124981270257047587622597017390964031688931815187997407928292511749362005011431357158208972709135888384497302405612474072548606623469261213150526774763304483849465899947054767828899156111316272995146264327666050256825210325609149007767071658423162969196435030117638776675297301849031066730758666869670745245484242897029303701670355718009125460970191440175006476414054128492049474422703663673588199573197504420039368567697925337223939919688315240777818161474777454874774492551137324877766583586732252317603131271750033301984762114698682400952076215005725112736338155243242541067081246952808204707286275227852650229499419281677155644177230695014587996352991235213703491445253309380742434898420078842138911263726137625072660125413516295877828017430995702729491425944155669633321947014840502627246131211818764992394880253471613987067030249059794890172948962279502034097922893409033868949206420412962660255268881643879935061596183207689152148264211070622441350794916446597815433096824410111498436792744484230272897326486579524246839339142770003293244680487985358232499338982153456792118871526336842317206213069694048424793414811828023383805780480625123714802966258893278557600434475837913768795719256154289341787567854275374115201917941744998497082601983311044396112310251615399861126011117031496961611186889001796332052984444041428753915530177532097803762632026251081010185585346583673805849594541802436033772837357738085879505366330033776692333964811092342674338725987756978109918343006393018398365839344542955833903635348663161763998603837243687274937372617541442037708990802717856315806338762801791331257705026822303840501934348512743991501637179357254805792283853672514323126341295154877119667212359533667734637472570665483654179154903045211555215117133280476550650328673803911145867985873418622011974541955774466923817966106990259045778483127916952522812807340588309354085865956983209332083554691468057771946127164007474663039848098019068516924345073775571946693539063867897513641564280314106008704078205750688237542843944161108075332444670434074318309145433863744305228082131818086122476306889390037055894075696777486737180204828286421850114658364212384322659819970929204747213344776167736927044102037223744461935445941575601928109334168801692762684532103380930992272801516648189199621029000962625304685307811028028787397617659766316818974108546395077688860624015904601803560481944452408199313229781857604417010095998389381869348136578284857904084902461831088200763324800488999584014662243569590379824336012231778108722028727128307228411330345280243275596775675981172138619742131906154528100455543235472424679605623375533115774429407320771464276697155015180215010325599894128541377029603513334128411809306631255296936460538452098940985601720819884119354009154417268277395009788363524106337131995673588182774449611463166086662621994061291799381149715704145789346211660218558486474216891711516620136025380390275860153702441716863683206099864666829620626236610956974837227642309054143911299242203813441426151150809269234254967872310490471148637585238101796858034659570186570020940674000673302983627636231500547202743942305766979616234264700972797679123376618928249190500394347895366725344020526046275968334879605150070666291281734229516042782842170528318755088007344474306250090234162646407608552951844560655295618529998249597537759504607398188888930579143709630005592500599269691369537465309413460195859349828511532731382869971915553071325245686346772774939222378112016320518783069816086030582013788834771864829841305576499034689536459109179703795449016050295941516009532849027510245302266165454322950624317235462714988014055611042491930335403469069248138057602723164035698870200370779613836333146887426410934029896793105908021942326399278026341953425296066281068471022197151470663913765432716609301100293840826324014291934649032496940412986971907340248156475791043078355859867953366406625660066106796305228748872458670618278626135839723801063800610384539821042493014519443556270577054688669392463310250225675788129181845519687703407329067307061275055130041107660031929507854361228785607117194333799057397709170652114538709527154538341255937753011248156554277193553769943768998968973086756686287899071535263583501541024555355883439220120436860982391361585334187087062239848738556645949999325073516861982564610736658228955022467996609328104622975885302513020320870230404141836996617892776869595346227504222979175215112022502501352576440047145221953198584742851981113912268998499693146946381611120649994050514757779922089806098244309338982738348456022412002175280642835001581583353234875934371539707048917748155872095696594219526122962454491690877364905418253659492965736231223489736725034658372049195323019745777375850050354667231657594358977808136426654016819139476633370053444858558168859183566715413063849836818782162522898042489868096308479202256229415407394341195030841002572361165409940254731916412169377889478217114842109307091487477553673454300358884947670457567300670763037092646924373073514642448068963426056831448063621356587648519334493190454147551225948019973145883841656626562841101503686668449395022367675084048709383231061649514728040418028292939738890471479157106915032572722646386605035401927721009945672858816849738204196716960861566278334758063708436193691800360844719940582368054329344290629858612098740639337712867905182159121825694424117017222925915659336570037553598796084908532495146960048278062169119411728748461056257287488466598183826472839396687108016159919005233791070629849522469021675919421329468959709463222110635670369375273304157462682649960032485479736084062098237824378260385329268967655035136772019202850495216997138534846298737715795318496045423339076291944080944515112421478346966453356372684812685854323030793634508564866885846225005307150090495028474568783716487014508784317642708923213419267336237917383029822130080074063365712199683294161984871072930510137121695458943826331204427449745315931492833439495671528913268447265707101518702304048138325968189395348358678679513181408242408885581715543153796320726864556256022465434907896271519501984266167600314737190374299586606487825277543814310341404341984964429728744830391117060775605001325245977209411269011178235113009151974427856226126473061600770970927702299319162340690440918909638835795881321462945560829080901327522344019483650552146501427287949280243133163330368043002556750633005523086429385721701980864221505353136849248908186493470721426424897822584859108636921813883534641812386786490525462642194335356565797651952216844898876964193264446144517159540401144240392486446307157003380309801001029891790641375116974410343018238010819102905163514272635638218438505552818174226011473346788679993082561588174433456805665703837104226057855420332351533588245331670606616783039242743393932391212591514786165688707664748211676207617511162686498117946845728926530490422959692499827182262293428864161544753839867089333588574581265606291712014894870360000550949173383168954088112856036432774668359317263648256840284992268955537935673258143188446324691084162223512224149579375897309888262401006640608760083607360855044085366083679656908092642479662714019092998906033163242129816659398516287261832903717719532998509839150662760094927525097111198330411881047719510801166363703086413071304861336905689243080400608749708751063350365927820407816232920631406323324114563716462768083912124273008064743255002787894812928766842988656980060597512373157934322869556225865295254701221807002187306305225258085555509709208734059730132856679968800929139558333794345133795852821349868527392418519721960618788048690306624230994872344286628067240240730848906034167643178709224725794972754767610438595727492363251054325584480144452143745257193363154388196535424744079114073347907744574603341194556551452473347480807003929227699843271360699513215288221735749019936364729912365215956923535893093694550978228822038499364492702256061141275894982387297171077962977000925578381826273260160999122285169927634935987064767477095735250487655831879236176327063266922093275662898599689449615137306866853794661768531770949227788946472001529251229326228220649793102107721854516459906920098455568540137391274024611854857219828248035112521535713643861510432126949191806963500720377364697134036158723684940474285026872294554537498761418953735139720317800414047238060971198535522139026952727878716342039437786534381142397418874268641810061379146675069156930052266601001854920073304563403487801877196004109149539004263402293740001009297947911038737038669687146996121321717463855400985432509274094375093652161314339812540289503905738862306360194096046893531429936478206522332735644301348034032210896524060022125872019458206530412393577498393225179600084714771783225150369511109323766295576011146892696962778772324222152247235406247826015247854522402057872012609181360589687877827214164968390704307008558625545077969844595991117137328011283163573882317920043398250266208533279811923155048028775014499251994852295560368408461883859082946027490279681324257163517340336301337308598649917207804492940394475828998808887536008530207894804885334531599502340706643172848072962841867874392409267456205973993942071391988761402710970291997191836835591118617325434747621264225693150232964382881124127557876601278041006310249916616259846869384010699525576220260452580086409886403620963339438767218317386609564613551792013118252807971571770595265004320056483947440247583431243235593687915618411697604964510720066542593060863668183291220402815674859221599191607740685131205201146754734586446116733009954448734288111378692199952304343512708406656879262075122239762787697333630641912947924007597236124945982342817509157751873457988032546546238750426441719144834120478516330450118903212552012817445199403116922838504946894937512899605545775250135884106310704511373877560320091310663462632291050002376064538126556327201421115904851156234363692094534994414527667759748737321296093540385652806962369341310858277696834169153839094016178556586598301759904529502251682401965452604730357193847307459692074407230946823369755325192350300247048804792902787147781311921680142226663922462715331276037049497303878044092249705187108731275544920580967977835529725924195111525603611260555972846406984095715656809714507129314468068809991501451398948680053568862512890031728220050762474429829148947064655006101663380678756634570761778308035067506638892328631383508137027551977602445209808375604258891245134592344640404184938123468781197156577275568950116968884853001028204968615380662366020271306311907966611815476540271898618337708847328335343034751766404188150291098425278430880401768734327616843430338237871488050959929282898069818223588116297096508298302194116724961606666276273773924320924835981297116822843354339494416240403203553793297035576300753353281946239841108852401977805294724858164714434644775086635489025157314274324389703027846917164529066613776557714087839365050335103026285105783529146151044830848196175004810780357055932358195904482308355414505631958724516605438510550553681185228325022731224750079630683829535755099677495503714932651782499428355782575054832254992885821009064490714788225939431665657364629660111389064582744809091182905265691716516327567503989336893750091293674876280053538300841079262618150840911370836207543405904133683495507939171621811732938605689282784102390368817908078759109451179467508492550170013688022383375426203590386087660307714768313188120977125676706554886648071014652392395002749956380937275081460437992201553431748677061033352016186847440162073024925623241413736527688401234369071737326273130132861313609525092518428778144671490663229030516382329896015548021853806713826747014319866803331054343915645148894775547817493712509342533856333828513596928700985272297191399868625754514505342075525026704246459050848719207804352695246851181006532286449909789104087768685270517681178463743908988410428921694917091098863675007806667279138508820522806280132115206904400825499578003843247430452521787500562885641472974624420074289577509447597868683626928682241420420898378679758243057509857787575054914449011021247175696934293811787832107194726488929374169861193112464841320316592592446071259382905105597134124983474894606229110504122851504318644828008914821866223127973194643085620422413613789286059229308804425657753158305698027516586437092044107416984800011056854278876257612927953863623981299483410095336720412465927120547754788616338868446882945496692486554600383000449571282020468437243830677493547972360534938232468871380157618461526974616112504151547225313929962145564372189029020629074473065135913147385782913933517301435354475011523797688486580576374701820032167625374319244703346538430154521147088029793492070466251591959709138977647305871513907929912790094788809665514434025181124860875519602419917463212549035654326717476696193247395520444084717161126714163967298657407574480998278647264020997135767240369607586310818645046887320122420372558359393880005500039042636306433864628155019294055574108839460969716371351456272664210182438013184097616647455102986139299978257496175011375517060091736665427237712620313303216021987768353886916913823707103790955768266219242834615649966005866100840127963330432028759224829044931828203601810747523227608827963307734044935789153034427219641191212977290329623513499264051523265916672113319368623736234090185992085007950249857585501034301629315394936999519536802667596156043374273385814456706130491852584101969935138467083036189348583692162768711175475806532743714642439567082785986114259898766261203298934429544928545358203004874337778317274257086085932104579115042578165681923789602057571742084555491192032116634035273807709817216223460632708494241091384068006562740355129860742166724108535163680974657376300046185060468880040408792665019758370890290339296344224703243689017745396820595273190902936698983425057493750616757056354675166966806084639745919191796728644002466718922221920506638339245988376938460956726331220675863348456902798562805446518358926050851077982924843902760663488773133374955989119029046137137745180965778915837290344736219958945550987638399075870633322666794626966072113359964083388338384153471079483964759235627611797481826751023417742220731853009864790295487572434861725394310965470123017136987353975627452782421610479135598144687859985276242010893745412386115759050510650769234995089534472781442467215684114663374361016915030370013811302803541577808041370574743545177369725004550823720815064133527433945385361233303480956815316472854392067458512136473281024648751618880488888730020649402873472964252974169657102670647494367934078541190659183319527894804837848306421907434062284986142777998904087625561654758876547462358391668166926728750850951868387819831462265913539803600562843448851757306854408664929411397188047101703141461248046655505667920625885795169777521326884137135090314158253057814469186723013064891711178186026132858766474831925726544576693137852686691192731815178723160868425230941357063394607121478018128154527631423340052251053754861511262489749964062638418068402668904432975079101170012516904558490322673387274735339344595966325745646358670572704992143427684970839700433153226315004715320904474726461295114369258866030958490744930156378947266987076075438573345201797005024760851060282011174381980066295952585786013658220720614306943349278926669189810878419912487195836489220909113073202238379456684587171672082967720159891875013981491516061823670974342129014449139779722451343044145471462732714407862166832752400611570086746230730572938182038554401858781451159295914421449856413203394568235400471063967237991225455225571639740927903507755557126767398290973950938807299070453494574216040557899717677463012904372308795054481448173265430052197605980717383487897863527733360313677696899687649166895281203107917978018840200766248626479841932157762862236983430308955479664227423001205977408997740197683613991956598853630932697599882961846131370813538548362624052635563120102698374366479267074537296862166679166794421050905840001224329788185348770315632113837351828662329723439117174592928917259312989190167312801589065550459711926152987432216425038307913219043641804318897108073653618152437533079607965261862092874306089220794924256472368495762948235374940532386382979149509806887723315949818025821684201960857306837082584155783903547955705385657855775787222153349738454204644760458021857985332553324853328310710751470039580056420501851860342999911784472624115662408466814695605437674753991984506591779756719020778906683960522337945760414122640000738985731675213875023816509886238764838800766049553910753847231574050966097457729816231866437665540113509589613539114150764513832518492609663757933332327265513344458246515820288200463013416754109168645757488276206176509425710213262493712672713915848567274359799340898246782423578151370943627314737122258358985677106177472063222220250308297362443599467709165050532794281712802224857313371457263884538841254777336853919899810738754145807421899518747677238780020407877396688606594834236163885337391912543990118763604071076298410325929016269107557139439746143010055801363349991283971961573888441119829776835681017598131258062658741136630089678422334073595269927021940138745143561433918879983468430242322293913924931692255522965978299140170473347877296847509139187870177088364166629493495105601738587897005334276878836926988432743844610565465520250857606896397995472853637562091897075245687855928237449042256875640812040088171734529798717241011260482739114287042496461912906284213886309941976431657730230722750346772492314784849106733045092398782233220790104185550577253632269821149604562592749905935037480873229479318952704085102397258931709739511259239620451417049722335348740056278847874806580467846076675368757952014811794805822840984173047033935708035779084031430490865373772747399798001843033122167274780136022313493463833015135291292561791547995925452383941169360365892925612638695935720375821357175254069400077832163778085841172949070713554129014496968862452803563620967947704426725179338878205445637489054627761681302818554935135091794189694010423550799774291743555259622100079561061160363315606237775390379969870581381651422720213398913316227047727830955310308721138370263395545407014815955756544423309971925467815395369198780542088119742447637060058749615722657443984837120888767593927888043682337994529538565058933665377409739021688807431948270482727474774998424578538357703038127504275736607390861575361540323010933846485593113197810834293365969847874623825024305641107524479239858280017193462233502584368704155926118307707633141039290504595460006421752248358408960505066644861694252132273301865183575275288703925354860174148541730444177913116871065232468410274315231070403546207329152536305573913123435232466055817149981450069750299764028232491436667893160271226803131109467380965420427508824166982882744248860116931731330807404794061998046962752517153245320508459632843924102471096985288551807083458971403963302254409937961828201670022069032662124811986660383593696501489324012106012563145313087131908121074896960707514431166247631876385130854430581971172696733159666279268447568726112736210028644924230427862712346779345781306342202778422167562206872205774055124100131533213967448270991975494346497062237939533597521890778020336209448368934421397359379215248158179956374145486827470325146207319932371306132414937043498336394035392873571105236119991900262244158775928324167770441368579116203634019090365750119955249884998654491125350193188012424018190243906534468716798830165766623569400997055476126732970512357683774099196887538541527559666722678688403806975452803526672349734867373992061169408334475409137867691408326850297761005350638743996227110724455362353988372353896595025434960025084125580128135212951644051940430621572253862528919340645145311866929213930834751281347430471556475930554948885716295447946204697112884973236681229193204645670206404075328391331528422486748967867627844679435637297095992051058475647672430684585503920977237642653623245333176256922098792582188268800437919785797687917966191904313139367185058626365251336950418855262460123155112935650886855339234662578341496907199398727423424147961317882511993477935865577535486957989252570762481115871592618586113216678132360582621224612806693550742554048744748725821799162728888255277284116358884159007916893118483558605089627902298535435180592652822576873175347734794595657265013686140473153405436146867268609661313613537022659903596850016694260909664148116056873613799027949493372728341002972388901922913652983979266010252742455930507695236769719271177819010561914757757760584871939380408534505687421752310697643346660409346906778270643879471130605106778782503049820781638564176707586662822617612107351665474072523369930445733284940031455336623170086437998031651611206376543922891353176514226763622218925543513403512116958003371791281310832331512050289419057157566209399261002528281551940726436324789134470298687002823212184713842853911504619169465555526822524009021812844458680526080437811699589552276695144894967274674216839260751678426897553974840672886141820359325820860627718906811287645065588815657534701379231989142885777305691277513858166637511480678846893489657354680652213115631132777994556020308336278200123195958038450056523653896096264910836017808352508450614680701218929400444674443999827654421938267583242625588481017877862540005807280129876515447062106947981961151708485062320317160720693471763541204150379101315700705182636252249606264168205920130769800172498126545969514751312191438838248145959362035875718285070266312924643284578099474449821582732268749465490621597230677484254412581330776292651585889402619097489570892136762336532418724085204081567633662506681661946375044611535614788302549079262451150257351015266851335546039013886417281300546369281986924820024514356910319893622642644567974874377447206429494564303908816040819081877022220760729705936825726431052150809570869262250265798047153161518231983418171161409713661068981719848578902465770077562423636715525066264203842685545891402899263384199703131818097686874956219371102266546636819716994721890065176592932501511446335441185947721022813337389663395713444257654238663681529291024725246907800300451701444703311599936799500878939876864146174959949415753115136469609297377360401763004800618112988699352249519414190250968334664798942894797713229307266965208681584420488053307825161794502317712285910614500364465588059179275915036301977385115829486304982626441093408829868538119518557485596757184751542848222435440038755254298419740354065307141513677023845598199638769496658436393016279539582090047772916022839774026510053455590575825728225357317173457736485103116560689950050996101587945362671710455493639963739154417196567183417645926950751127773266707109256442312814110721371659162914541455130144814339915691957066741018744066138834507974999276319102798861816945316372066948244494652910433832071634718721736949909968501623720036269973009184263595619352103500766057322745732937134558656507847012485724401699414886327300825747712584056884148943133546589504280493512376974365230001275660073687564079490244845586684875267407955627517891534744580718299644832135312024992510620476561621913668779464866773863719090564870073410376827947135382128142956528456284304462667140537597237704771090174710998538602067619359691196191041263941506005141965612321826434724688047262339296774115948317644986906875291398920050877009613322338539130229277296361435895667459672345439224124522983428030640470953423134130326957692798720926238707454168262384177473378605221667233952253394572824719277415408688440035105246397023126949744521797228050435814897164276536386464199821528256348933560573339339035360301596788099812356363298280910354539427086638091888517775475875834553610382598157876661677752035625897658244450715698440665653883513944022692104633966976444214807324893977148909386078477018098152306726314446319014258252554139788142486564899986326778901749037011739560789117466449504097660759795656027988891945328102518648229096190149910439586393523782182362444194091237010198705557875307593606800493749610789397174736139802402754129969076755992276417633108046394771482182387757121735075485111065719555685158376312903664595311989819804317158739193036157720236645064236339788598637754480179033087037923000953199317449983062746424708853025775381659697278880725453399941868959033368978257654473540481606776687630094934628158131148866717078781210817942195064351646815426605346666949354827412228048571587477324731456881268565404870859908362684786960103046798849419927426467775940576681726565010364254010950604780056469475221736092940614378645631125488430874628706982370295626181862695655564218148808957331311424337868621566447648341089650761829749161260786749377881853446483044372736375417523873482853106122323491019258667301343540970759380775254253375520394606489369478974264654301547071540632129083191986795152062804243389361695874886900810362052254563721496905122975302662413562741560143445014376003749351796567803551810624276140041243894919074413524503242831858346321600738695135440950356909404394830082476112789896907358356320615837673238899951192099206933626122550992911577736094113132518042216117090632207948985886328704122545181232248367670146080176938559669333355941717867154617558633002763418213210762725514198086420301464184003885244508108772364796119430212182785564127020071777430769458932914643276960124316045576139950331525469449718433369543428374977861717510035700126683518408638031323894092010859906975172895387014589474434538090256242818937009806249492308532833070463892274774904066232226021773478424868642118900796393386796641749610966250728331130543502158238607547911236315516641014143188813138421206931249793843755696052138529831766765981588079785186615891122023220182351824799742462511497543649325673114634515223048721044384924154882366073531463029466369678509834419325346842141389222635505892712812368957518647200174741366336799184697964197247838783776852802526059775027685629036811402280667883592878720785721747706209931358820102444808323757104553146878956790815624890678208771921169832314405880571026082610031529504284732840386903214863650365639435080664757858058133532503345391788900699062397254280872356154586637729765828354513482603867360421167916674552120894919742167466769116099998179978258241447571754147859520606120745923312471201097357602788221280671094646382051593063402699680404602721817028955222573380118646270426541038486707847069250395084112390559205680387979042746198176148067926130095409206045273198192838667675302932880543670522283597904152109869056973603030126084402912684318376438774802145259798850129664667452457289215233032584478515550599862314852493856708033099085791931228848134079548335403249859289210372109073791766822897312811683843567367054111309693509292632908740944400326796237119176160166255501875211558342163467373443335770678426995527703518249888598078883519507627339318571700725323692655665567840228686756358709247940140519793514356613207657738677407910317652025093976652242531220586889500535511262419393805391382647852172748124780221595914110863236938958612824580333872214310616223151175311583094476392492227997367753050956251596861969455735570630001394933338630811634599298759167297037134699226044720285165737014262022304750348741751128190941471915714520109219362671310514440478166818609002959345178049564301267739173800019144650074881238271181646957882431034168459604426838522089390442202006723984476386726407927694344804903724113841456744181057104743488673046932821049231431502967684748678272683138078588195234539383869044448585561928832326565298534689865719055079028212633153130788730990725786504630974837829104748394011373761902585878927525896886531221707549442781140700623530440650837776938154584835530355610320864348818732182052807514623273356205723196629812983780475712509274600869823551388030727403068562221237211905955693819103266763159609031093070566983622320300230339042419255334662880043209529991067602634139789914325353042854185451856493987255995448535094161273158359074025522301726734898252326590935729970610182584910818900114879069874495738873796329286785388070928793207484389706312749536276934231768451190219928634427401317898408125801090593544573079067255930209012600319348004435192831384947879064622154301955138684361234669106690068265879987624328964084175002943585319784396446141085738077549717012263887777478739052721168402528677642589022004384160645576294064824330933630332953009793066489601815561378037142076219475422545114705104546903255280084834019149449395914061687619430114396887704110506289530049666134059976417540176773034305711432122967439966167008864955739127979784418134674123142752133305733572729492319652135580791546858181481153523013782363136686671534319105865320231137007263625593288797495132002894376151501075434021560846701193021435016578513768733913208509019564341163070662706988705586534254778614314272519928832998132293766096152994862075937566075867766735645568092941106202855030558922215679152524125693561634938825282898821726100539495833138807437538905015327962433140328094095887056571484581733564248021066675168291462487709587216279629922134823960088247894691777814865608490383835444801276464014598289448835285307156392090088563321710325934772164722812578760188948972800168413151408254635921252066541507105125536634888463506744302654151046113582355951527705155513880993722529233600288829773443893247129711413171395168451782480237214917718537035217746460432977570144604001754421753907398029606237862864878998701428970600602998065061422300898227592657487570706781031898173936207029460773581762069998427967019486092288808859976291908480799947564460602924765128005442525284405026701640459517551475063919573138090629116236244636754625723300737474306195256945376637076313268590108659565241340093843948723345204316858336484695277807417842254746675856369551123786493273236772698471441687704689455177402563983191823263010884068294119099109610186035639064155594068077018407025056009373873475990830667033044189413611012902865693320541940537208276254147079243785056422854194323517420075889340889322070014760760533383346886162734934462549510882261420563049220470300816216563462448738014231939605404798202411701991259787946294592402474434545911418331132650976446000820861246629210104326489125372593800055049444161135186368071862546838141882978408675086250886120351921868864848326769737340721163829469955312806242985354075878227652094685155452471708832910208450301300450956336775848729724959847946238469750579284091229668628724079866785445959714703855774733315005380947898442869087304611091594861392720882656999292307478012488800372612805109252894687162108918292307681317878017624417887510634204827245989939437430687189628602656184815899433223287532153227345290447143864338883168161530226214948716483270642363425248471417584182155255337448130672816033971708857961398206497619693640081396345845558010827134728957162335817028118310858879961161386035138773063318458249087085203917830152896414180434226107082574409396559160812599433764978013563834635878290273699828021024454822156432079995240921167064591236179408910827089066221007760918342327962034672137957248651708868041107571337548090122387582165488615976677436528037833947753611027683574034796983850699140959414410495221938455113840630528146225331027959564912377194193722992776765516304059970285455515045684656987219914430345360468063397477374201746984685759728618532352103995258536639484918378154444500419351578221550680175379608713055633560934610469379980095743652092465696793988541602197514198155876504610838752690775428040791708163591178680121884954281140469143159534171474276213293811573091376793781734953084999305366330352468061297482813209695108445992173333834659261245796830264451901335139960887611310534691941634575613341620063540170867351631485214195431465372139315689948038863378614793122215556942978690053695532411461570338304286975035338518810972917094727360960688625036788745644068947453007981228475174005658540178785099577161888717288379892434748458559272706055662769538967025602252331959359669756481527746498566637825484861032677506051057531694323721192580782328173824978140283223271545916646695914800039165191795180843649219103429363894143652670440250988421157161611885764571223828028116788072904533951033136664236012053960937026476909988888186943831346445042030835141891404519127114579763817023465714725439826078137382082616778673077669724084348842446234496860058199471932602091935233264304040892821959033534049643184114357039368835303882217288764208194422688675762594841622216238305301371257344228581598909211819937317090932875193798640631106650461081877812617317269469677161308111677790897579643009392730700072314960506457730306190997792123872258554006317548289964896141149488430294285316704308238305197110288646169908402370829227920709168977556485620280491415358192324525488784826833806276023654388814081714020561726673330498663289424745289005102953208022142745684374787727399374509743453482995354470179569489227077742777397326765544956590169829572658441544462994114893216515541477941879892673264582134765263490468602506685798260629855356155007455063457736051989062048640093865709108454614576439583233243551082779719513539571333614406110414689031403132409371417142364997263551291633702725320673383449272921365931469169465527600467571897850425187282108169108279381325647566353433973869130508205739499537873927637830655886051678192543611262850620553370124532456311041218268177706390626785874796282844248562274861457610500063255212670638720605451865184805191925957618423604611186917791216800920301811692882109085366560301310572357404268214312883776230466494527059205557673246421953639897335003604471150265619230008601491610147595504470794442897199278937127214075588518836739846365839565443021135721779001235318017109948274619842658897538463125370002130927430441385254235332785281621665484095500607944355051345269908792611959464588905185179021258508521496115086554763328608214233835011277731751821525503954185954721642015325059933932059433071275039458543315729767270143172458528812739300804373939328409813141830954087439306880114421993484327282596519664352896290115325656124052382250459969691296473355239863639469181840265734260996549469395361150385433349522359701138523733154471279420861968863230263472917578543706166033445788205753414708480902016499968499984661992991702940240448245409274594544186601518365072620280066629879473919019276675191520394977368406941188812506778182208684068586705832538259679010462194056225719463340033577199394385028699747562883674342165731814221141199273110018195109709779067384105557590692816470410452676484215316943632451383719873819940096696057057145200633827567731470719826181974147671783094681861786950669059043218396477217956305378433619615573114724013659437297698670059353510019962148074432252274471782057707466677049616475182106257267007575339257994767394346832139941008927547680718829599154655349255466282898643467969856049252811757340035754572354076432437312365591947199398894713979176391403959205247400163481396303097385387638593314733560401097986559711862300623381452909918122773952838010424733004062535609914049340706702971714377744578787354932781058013374496842857876895410449539920899600372956451813480021095905033397768208916876892865478995989862879644316045681021675461421184720988059679320065593076191501697753051016108878058321772340923869840911227967399946294931266279608647359327355750567455811652576003546899505554284810108077673134850860148003213169957642882091311661757204782207232492855537372344177763080635846067734924633539144443491368647991235141530056137427670090032107848884562643782258441198102379044783130794718530207471363612546242308496504554013387803046451260001105184495039535079405244376511132460053809833118841026314966105706203975838479776777457800998033446427322837173207525243352535878673389374528368182651748749266609127224252742982534543865918706775711828153417790500994799447328788985889568776881357642351040725226014168657232152837076056081624327547989594993873594204957368887195173060548404109672301125035208907998425527881662647030320553912303471145734181965171595284064983563943666129260752141993563818966476379094324560535542720716266342166801252928208586210426562550131550136005618856911259849587004228221819226763600766811873700155719985987630718357504899475612132717569862806769258681752588614442711048366102669042377527572859192774710334738501193337491946954142480520283644170094295268796671560481157902388594269140125751319801419131257799002598357003935765592309784631314040592641824850981757593659486604146457547240999556007954721116629317518420710373792601651689831248645055736429314762937463492173659558827028394885124183901966456450869053529307539371239319170115342524749766909104650714987845662104514435824375271594399723190183705014493440960816655685081214220155156870611735278484367804833283644469923547722373207692010262837838750911085560299983409412086127544652489622433534303546120518895896019858529448875896259119041591301975671588587473698926677718004140381335887339628234716665148757454952217991398461562234883781646604427635098856290429318544463930212734958688372797388225993862839810986397577178018345242406218831607576245543781079153329960973447537553521364867732074252755609372428767780490952333905724515768571981328176658789313482852573200947354907879771821627501843585656117798382560186778127078808527467109952732316358740959764075128528820658975057539555559873093596839964106907039030182682813311158835164571659117792978764123860284312512190590717320655406750972247931595578756373345946600113553690793696300365552177474378322776946280493802717793323822728985587318562819855325586562397083003541023419953229562335812327524917586133103813581246153341125847473369643783358643943690758109686079168418370351919112242822891198044471796049073710378064185248628155857413673259643051396426554262283879714284031243813133303733347487586053101226340520011149713790490999016548404430470195567116762921742788774532406163671905316227893265251812239529684824866705135131458555344432963946734731848749784824614655596426697687835560849529809862656427235042519203904151523664168077321860279251255759101362073551150778284079030373167053760997925607216195473154923161943051391406033325109817219392236531443251348751887050857404611756798516087684387052826346143858326458064456914769542437288231131057571508586738257454979019043164319989943662181538862115136240110969624042582256383963734595042130313134640653808256295415880395859481275001289194517428782274995739320215283332434165441322020358354820952326711080160132530229975564244739042162502748711933747737702761087160405453421821911321018283978004465368231226118968726208192754484954534296338318188988913943203172356896486047671566668776025550847159699717770683905265111069535142503951463773546543642717339946841038255651493803471394579497906993274807392942535556371858634811814516272601258147954034731821564855320017322243663718107193705374069250725018943667671771555160453411510043900732972675026841671951068225113905866908815901124599624729954131864457050223917656638482033872174634313472108855953937305141658420664417661860622156340593681192142931906185333707906214601384049498455156116025671004974438041452638327980835170846757618547976034172684209081908670615306182232865263485964858998858106679913363317717100313731004514157090503442189188525672853977497648221137006005993283079609597443598080000494102181040242554895897408773324445588810205531826067370182347785180844657691489815225874688025840537060501817788504787962404455732244425700150163646845202458579833991583070918959968372263726630200064791050817435351781398310492727544737374348735901447749124284864356530723070834813621434000562530428351172072725370236776697281876624676544341824305269132349482439232799280052511141154629629876262734212313955228158874657478439391990786950857084857505212333118542027230865197936973264232062423835431212294128767405653485290844744280481418819264614414740169558112649877303973435282815267471874537617877643963299457957087328638958933195073921051125194874054801455967237733607797196826644794652932086049117504441043890962457005476228284459897320462821574715482698637844424728436158058448677169745529922264197477816490344044651585531852443811516679379703776801406620092803295429078181482887242630475569907093078323179949265373010460514943841960011687879101325557313101454342749003154453990673335604552868221783888208227599881661363088436288923779443789598279541722013273190024453701042951651771391445040138271859093907107634741875616054152882117881795808289210654045554904355773867373246359189676184629025181751931137669441351456769627815612900812903204948963130738942427345943046250867547258578466580157361113261423195787195124776007609149505216205752746467265011467337459082478750793594591115472050688172307124520999388616616360904950108284772647742650837842280558859983486015935461095404107032166005953981075741913816518770888475580821153108490786818520141785053569613539026713017428136030483711466563435786801577548732199764607252381823940042340357433677301756408275999949590988883797253078144309490227643376006727468523305610635434306394119957842076112299897387541422803812286028015381606194987222274748907079645311462377710902266987981290660079750137622647082607760452634615974613365791485615766005827178841919869331042540358801381374317074417381587670608183710809503475091829306640535611435806841459141139898008470214814505413139284297463236519749809242748409333013248926672854342151147507417754597884546880299353210805959164166416786140413769249442176527074613506449102245408524123525394891541355943564249949417459310291814025733360328584428237996623441078520104415784337597098534150906561838361245522399919140790571722622481859049910589889522732798895550596108956472939671886527482952389332956002399184753375248151741068896696511450612962193769344426753095564328419614986663727364147161957735952392676080893470748306333061355503177754667006428198979612871855987232326537597251008593384510958864852025602141394589381829593900838521018586084803642648090985200340066763638829445526988498387681321843667781979680150973108609413231620335769782634727204523266908433941186046613671248705263133864656670495010687399909104630364231822924884146752045564643411450267735102627964648383429576288176329636401777292290005018448548907775750949339507991473903484219879624350153061085021290707884037440976895374305725627049905460064963690134662010056820229245631955587935757598646496574664534215586069789180535066081450747327228397178342362130534549853338033017542783320742183143659099677710289452562411581498214290414463365687924624344115050773430244515257647001771386427754117700217695988301557313900047868365131241257774502279303467636649281501215105188593971029500142244844839604633456717854861289602406945476107127730444218949499083157382386861363439816664081632501709639783212307975605866166199478916075083474603925608421087743574382648413167886062735838919800961243589999316355282877404995073048266011035354562935280191007086449105426917362205600089826870136772753134609027486409318544651088011068843387803981795521170484779427908582353380137820731608591333199594989398924148756004329282966663974865410558620745835399691921839336504471149330431339930434187204900833176963618594951364521253660038195986120728971754451678807076234357204826114991204273751976912507532538304305264576686175943599456820910462233209395229302513624958166449480745961694715277544707030475490069819476801040562975309080857497802967408964904526327211116510208911372857043520194327671509738279958894501274533526058529939285261352932216893065701086106294841296840497253257222650356477234662594327901728481124290742151811995655152677527864492800664921980055486805732638883216075642781718697463367918796044731939527339186490932877495843875746792584207818915015022197827429908278674853746870683078462936685361357906609842910753850221414172013721462734904092278449897253996222544261011818470746244056499038267915133015718101280470528902022852739485461005664327599745846970919813484140514689478435599651635137108147061703561275608848645195869526286997641381079639843415397951056003187391553144104614827839627674934399697091968710131789641030410093955261229571887976730721770213751556313250354232354423774070821790442729987749653826135871464977139100558745998457771005451190564686242684977594510642769018610587145358360341131042329135887173203496695230877536739867551734238634551048099411351307844555096164914342089180615104034238021337701452756766354289396794855408434740185549195447580877768296035734179054921107474498854358834173900169659171615837260435687518945427066173570591784809173762216525870184360986048010424406861760813790060783377909107929573616064583711030772681275021730171967405201901102645151977415659894037697402269356143203785659927761874799249795617680995318345460178193344021826477581924364372853840412404901460964587524997800763998892020560494679572364310297480619448614316288056812206321268157531967370469541453003365353323597218592388839495314921996830967053626807861190659354770717110259794273284811888545519516627792419406779195023658048410613899426818903751134592845474707074319453302760461070112316190115514915015733932871873867657708131994668360943408216062118469389064106788500423410230574971117795795842294551118772393406560472305357314062592425311638050184461950024489525784624193950531292137023762070294439100304766415895951374599431725562230499464978928328952875323052551299967268253355874644947137880818469674452275460393703253974273061463743765208919827222770085065073395556924844663753856330788954240551567470752622642967287068615620629065786957102266249647338999299110954320912795194721713220109408916226749377200449418521409060719874539470551231975615550182642140283418258814658370319835592395579390374515041870756257977187322273289436905347951477310227910924718914451915606486173591571861318944495643140877238044072922070386482044737829810879053323874152457869826405263100816087480828460944831350174134646527249610988837415871401001193215723561050381239712342137669177897513555282325043730508241465570050818340192876394111106787983177299025162740025166351515874195844478869035101610643153528463693361385003540343215141466389947771658493071181927117754115146976833326318509789905104537736194091927016898962513141433056736789891879092185396762771950922707041227876445110083834880284078525640333337543517280399549397268718071159559367544881081713894482475436923085050340530733750521683855168811496031290740918941037043280191479326117463266861492817543369094493715775440745709532808516740732718673313833009860771776588272667082266497002941935508189494204868179532804383836378887088584762514464872339981292884435903851003062372427609819202882621225325966260516311196494480168730875359346911706616081762629501744957288014547173896078181246393456454896418757742728226441699847127286491873936294660217854008844018260833232007422182820794825738943904502691091832601139396242446331165528646123069150568792735931104332135699139102161913387794221393720484581511410193624394709810556391354247702115080110863184060222755324129623556629208277289035796723508999557743262883150608855665760857276103310637180466015606729492953056388755130478523719743927182799430889520739432370059249738904972158662107532912963509501753856748970903649718936943385013893394664207519354138063305543905274541113409843454144501794946806011827503140861525410057473243394475976431911446464791244900187074153974024566040083383323314063714636986265536712766323307336502292535729378874871852755518727414638724673658762016223165146225424333495004466316225709830080440765694485014239645486384308456729731376332947473712973903749858299189896242587980267191303380060267400436535076047486646382722777541176871232319175722614682653106466060678051397397677632116271534852998366587035582605479742444668097323728361738311133376234302751955185171492262033744357546184335379363502254556897836436633421197416392923209463214556180272010842070642020797269254984481940957726266098502848540255654509234734508776010590424370325660929285412008272796151318889058782615425517568563277347135493991934697531211620332166224853491851605904929560931124412897800399028573718325295403969572131001478175456540741174252903265491533805274461073870894912504372995937838871387972576944466971705466989633315496308677281126529091448241153598558073946504148319207135820355513760514715037834294092356024642487269330952341974197180100747580721261248874669771919038297206522420714861947140757473576538661742257420295987335139558623163436561318028302943245503200345882184238188926819975469643009168146984281233491804291841135664954884268809859748613710982635807648437357364385074076454745002418835230336889962102323330588608220646518045597692045156661995499451856264183858591889580261105853666117117332711008518288579217073672984316700270391351374735523022252651260319305188285601760265563663537935191257636089107840209786165756688461962370466597362620212066453024851398925580418507021525668095212016584363197240208701055739438687377126726236788819799927985640807913246524270920552393165894513798158844160596537752451747821976546536471451896078350611430990924048546929590269495447180311684954706561340696284059088215452145855464871633941637759075360078403762172450663525307210069314404066644355368030732373616300276036199992331987123392781805969109779568609228812893306309942338344969705050326673377681584745815515039456592690244062878146126313455804870560817520881516585116680208151756217282296435582362322330821927185019726982698916895995268145692844352772032308649250759029767784511185516577483734860054810771316306194689650237909490436253234615274004776106732708775177089011701955534281535969111727269984082283032650457857537736493636799905895097864164748182287360369088026191586223126085557377455043938561764528223576767862238723673079145515252011521240284876144893483581298991338107712990791042012003746719303418703479254436820887181718051753671172032483215172320459554228704597781690893489940692718008921652104007830376993144166059883311338243189546917804164686110291278707649985986926549936612655276630416068077556566259920162882424966822282584179075468339799334005020018807517620313508615738421096939876322373877435386597970930653527777729859230972492401181101021144745468527141044138639592733792275060637556645411077527564193887813640777471437819871096538094854336014964921591077049626627405855480097239033789619796412449652651654770377722927590387750078380840632371655661818922204653909774870064694323145303261076385486552582947012875543766204764469405874317306914194409769492907300172515959238649078533080289554685825200740767429210154553301267070614055368178486262198891404389865059106307732320554949269545653703901136132582370059547640829512581587239027337752733257060521657813000366138829651130018172585498607008291471737447892389941624364668151578723432283803774508795326840397056066173707289043669492057792662530284478645613199466049037056258968425601028393268504890831558583072625310082257032754280564628792521073965045912046867388608593785186173650556827304820378849978423824642430306906378998927181765681676208160504053177049673128195161080499332159162662993434644513331461782248969074187749702251480667433131294581608035814655732905941442346671771112969550034453722520897014015767021896549353140052643495485175174706703476673366142233489819666458686985755577772374457621613484899241351116111946183142919082517403720260760741146379994845791185407055804646450172378563900741539838234404590933356104891999766600351729539664141189013493995401258305176113447539397094943117381626399220631053533096671218715819112716205923875916056420403159260950373054384792927716811189936400887543872044299180427689883164149458009597251008332649760151028329466066476506332331012554147685412899669395431651300232738492805501566354044765432193561198717995178537324866346083409752872047643460645420972949235527518016897659633480402588490728625791906242120911155055299671269224955330073248667700918559698024210113696903816227187267907081295065669195268849648424268100849134582965024450002500740665619269071604887505089160442697223971821297841315638220532290140239370486208937947584944370372300049167309539984385555429215664346621557364169189144792861768814252477479190883399342751524400921027030322093569306092075305080699411925920144055894673765404683707341256149890674263365096017717803253308689084629922119567647788040643242001491330743417105054872451999463655256894218979044887313806780869036866329307420403909079543832621677671137718954400158348570677393129872134029511072028910023615112788271056860920006912026201930715439742797983008128690796266474126667904962662840567543226745646782307164352709772697595659963253323918413770800429195472343229934245748384292443997121349076951897357932513376282863177092314072979987492459559343601069763298415713115908133682143349811393512105791836512362729328137517181046398225012511199608316769451715305681689796675267694501497455018857917894430145576186348053748800047887410746940071121829608662631925227865916211741650753735421948094565498219514210268367547321927020849713198586381384420996434712653461225431846510524687423394853263730187334806939311431390274950421605634194379847319491683233879401113075638557628429386474661534049640011902755803074352839030466565297004974544225683804147535867211528121532957891829389552587561531854828157403895475629265137930281470728404195672495635640981403818798541904985188613376535331737064162667051313735952807322103626500736564278003326078014723851976496204258876593287399843865154321775056119125126381879681032185373559698869356191964707731677137923748346475625524116746113684941601872036282300304241791268608554012337041658363243230760936159738655580241288071843256894196704905985444573467140580923041038466536038310153016965402351735207292277139475505048370286173483551825335477657584646355057312822754156152291472936744500873434284878090917493494410404107078824033424395642009564781867139774060342767699464981890654623025189684690935209360277081204350266937409467644866799290232883945728549520568078397941374507235764844096774530827907313958371630643164019929238395992958349183072268033437321491433921163255599303168404445784111433476559036579304492484293022999075519906500499104732640276607027282166048941078561869678641445477786167784681909304241895978151881951115013334576117640686036448084131113392027921214882453549509251120671995509132719447291739323187481274098008772613139183551528540318465159483138398540698461753540462934264216226934470812220621865761661913557442979265011760507421302377897889487715150418370685061858579593189071812495644735659857220731251136140331096102409375430812159299132503136369746716650632710671359774973265997490257532035187489578880183489964909849446289319995534375273298633925862964503794875393606832908953128637520742949453650059190581144034870824409453804374209692417193955416214717020986170485115799393554771581531060304239749801003621800306332294748639813847597462858250200001848429976716521000851637056680518297266234098154985162429694542498514693253373762465026905948459914529254947189315978551300088379137205835075279744897715977339430214955632729777411221094352914363946300191339560864511269159802447172068221898492857361739500773237319205300497733166616834853361808634768649175287607906476891776870678239704680271082890113372601652523853103682590004167992366467630621424669803916423664698596084378256150534126922077160897292131607301505518796635662273778444451233838662321437346926748877392859010738277016909229301402158077470683248522109576920520466587848164519367158227578987658662260856183970671144539237505943117037548540008353520541187313939153608433584740812724533188274032296662254521838103276479533905314483250961292970702293021044014634073418571038870315901714140732614779276632635169221544978346099412293129163637063110831455273087352824563109685906879404394187288330106186969013150392647229048342430212687312876153538948772447026487875043594330665282995181736635148768530987919654921964357156429402410526689389196023773804179510333089736248981265925818092362029983042583754874164467596932392546607525176543046201420660066509292649313559216623333862042186148932196294724949247181513562639442641881590206934493268153916957692489878733241787294270083364304650448287218497576571126494339416914351920526711665013298190807243714181397756993313183666642364374884703905662515826090385341749017088448325244701343922671682231650251202351913472986787251763600891650684336784572569935772133106776083363017336741374447396208632958226326261304694188758901664961910361907454003526121736599524635020563995935697993457772593987734856815950306381382976055665373094484615681811517990977919067433578523736696033726409801947466185033514230458314187634786641505467576045384306857247277786340342076550186787267470404464934862876330748263247458716265597405832010769162805158964012114037798001663673502396791973486576774744643938246357998769508711764732364966577666500843835053839842133524255606858647795550181944048340597996794628947194811035682994196084204123565668199758570006876412001699060014706074249488054847453697648196386806571492338754326724088567362536622419139411193871207956203848568369479009691650779247187971767608517233162679061874789828416913013599115847051131473894685832518204481087691803082692258313594513107216942056097902858449723242561210535217757210353671165407660655693807202435259635048032970845694271335339558776563171322363639488229733275093075422889860404525043018216690430163793870755668468543015249496234518421325334941047080780644355425105115875471135189668278548552343149180277057065678827418621190037453963113725253518415660767966414605871233927860525306066123415811216405600287899150950204905386528366238378100458559016763046809539718447926201945640524095053572883660113094073654159145203176408345296571755396286858425639194745119435358108236548545266444775187439195501137220643326203852665435109379246438647898306542735391543982951406297869661038304062393655971830274514335380476665372903187234655510652256270059980700457551611622499091572245302867833918427295956050742024388208380947220554298249797581923248593779598995112046490076830928924202028915944944739392510847493200272232254282388577078758460428866393507062573137964960814454956882925176908942885323958997563821605687463928972689289073650913569995200495730847998023759617756904897779082600393652221220732644040876452445604510848464049189666372254283252356237823605870990848178333079101956857657440835885566583210108777969498047513926375269868898281578314425905652723721682227662383681953369848629080956336462335313064774499914110106312167673278895211921338211279836153428550229121703154650914937251074730042180134309568730889642745553912574643131565827950117464587625085803467044492776805242903161740512603986497970601336729610802399544452161386137270171973990686652710823437937073546101087108419232228368154957575612144528564522844154558450049521834691259596763917324505280506491337871643232362066161340720483085035754199696709076362332179153042715474752738693348106203205448717759201626091209643415243839097879491939544178811369968722586068131046049351523723154310596297923971731789083945081454367466305660243864122166765548929601548975037788321846337935406145204243184133929524874848345338532773721576770006323186533209139069654064015869274901749038586502346560271641448013520959152682678507409022012208183439623650707551285592657319701468648366123449033565417747516655006594956552135761696877077671004643340697571413807015021875731054808494127841790421366974600295773822744032195122231341550871071003197899074526758190225945091459395200042177733687894558382315341429495030030017684332791742315238913663187300329004910218802793600513682696601152220367045082187621334979076054738572970260075392048869418746078076569612235770191716839422644311462749537348011489467694881348958890540984712554927488116287031077141753808463403462113628931499701776414494661214628010084766866005909675413404520125649493708004094912799900254726762573282280008363444329062012284706197769576196665746040622000082589822351810952767494333742255322038000094070939441467338643846264888636343011896673527626362676789621440432802055957981960737823913019198218179017944117281257209779197596511383630035060775726089841849384519650108426082791853712643850602855184499268284308428097858217397479027147460112852343939695585223948314244383892001581280779391932678749821534503128898019594645242555283505662788970105032834758083340977336615433195400130249252313029718381373582182300901292126549171367755228739492721458304005342921988786875207869504469120319024651112734093849581533880091178684315024174411546009959581705669941725824010220548230877332728570290158135650905419479087220454278479246723124418892836792690843553510890929829217954875439948377662909230603925473395058359666666818580169484931973998346454901914763945827598692160125447456143528212616094422487159600822643882427292047146184256405970791219088284657381683889181357065875402779942572569769779926183806391088694799617289501044289460316223136289708206783526286321611424348333871803781930028191275213414457752854047787114278806118406100987036291049711356205286639382180495178217429684772486166380112287146440911296196000226307458967011632925047524665299791311379995617935501379470891551747893767673149476437404678714587013554483672179519043845245240717280026197339771272599112177187415460788213983902508158930634396006268567579097681800635448486335274470304935658030636083544372153153328341450423654278800908659424894981361334655043173038134963245313065688490608092378173941103025865532900966783390173740027637264100960019473896193682989210927593211969723417545853008553737148249712964354121842784228593791785760392124132728153378744460874484087595399462331036204710333144668202460537004335652744071699133496439431879406666072012641496206721341598017152637197769345222061533210772721720192480908135784841250583133145048848208918577979013763191390265652410380588812726997217481697542921071632583239676144899805661738783052529200418426710212951507201381575510181352246629345625449910801755686613866300083116250848577490551870201862209870408594243768872116427448918839441816628332113481901149144058132213178452912933546819362246971067420420978009979763538535631317063671444033555193306845428058357265630304584736674064402980744796950714873733371330940556911032634621305823058296142935445232738705120072130922416269436848193772977547883737606322004580474838273360281462874349230709750964165379860640196529095809097353502827510887560511749202340065547272083986710252725150590639895648464446160861709968767806369426610925843212747158563959384955419091933062868683211149622006268168614573646967580790325151312630677217746523475485574648830410329674584017325510237172893261564896245302185101448696936425099882253727917732775888199575515076667609137623449144858070769277442357734931682195495921235735184883642219848685404280597223874028423240677184834086340742058578180138179713786838151257538465853935584687527007278358444840841176585630224097963304910468746111654409604223232712096853484215737863645978152028629643198247245848365044234827015709964388439509124181785820893036324930556370103813740162753779283360430656018341026068919165232445893601584856612007670231083503822323861639526758669051245237876096006074756438059159885531764144504399727663586379490236379516298416844167198861849998322195551767795969344092776614446180763355515889089925431703824570007372910431526178276322877856658802849318168396708917383075742434803280059611993488002320635495103150100503558451102145992088321304263784068002329481066376540397012237812809260234377301021215772027642331481657089183718014502435005665003683935554898707669759534920307803940377684765009188460931428306833129635620178869856157650664773032729809720898624736354338328857549616804363894659553267378840599131548249247916993518317755981351129087382420888577351531501826019829681311090768421639810555863757459244634182834234424244636565712311303986600253059138282441698739596382069524490407817473066589630068430337072575973940442661721607005594321580340307488947092458862784950047269476794371464229092136865409379543256521114133878748085514935878739050035484610037120209783287680670050614397439294544434252080602884370498813740994245135908951232031426833276901867573921534554703250102086853044317549974573758830004034590306091942196355649291077767960035691658182374011380982210806727827521505330191177622583434265753804656696238117807575352515269585907436058938366814580054335394867389295448682066982536623099535061132634176524600278828060589815100716598639560473534575441288498816166673048980410687452616350361970091343676851207305748173568773370283856809602264415653583504107924472716270183076615043494175085542817562258181763417118951936490045535924965869763883082091696098091688530478356444895521522952047473861564554127397081065350347794867315043377212041985988791728683066160136441330870734959160757677810924847867099039447496818777019368760329397582371617865539155220274290607120919165068499856097771942837312972359603979292358493204401410982414433839369862692014959479572181247120997134251328239309225858891641657887037169112743685948874124576141347957365166892100600478287604731203897537091507038811844947434307523668241651274084578243537708246611187078907279711218921823064827865313469897552764707405686056608567100837527291586945673218859822023778561945998276878271545853085420238093621314460965768912682315177208274167036389150828698275372858668896816348384760426501478200656529489935971045428395693892521909230079976478867720839008106776352155173986048748707072177451037352864658692546265342419724522554121297299765383443188069310917870537176836339426495013813805178970004162777116285336842964279667021170148399355348413519701143124818059905203505266313136079366817281415606866570681509982227164534118331121227548498249178429539751033875019134311151539097667818762744895972170561642105782296889878763836098891043453301479491652791631447917047011175868849126104030989496201076749421456577809376309749353985724132707244538397917040065109425109632674947943745673608924201822592516305444318661866807307077390665142720930238962472626292861943889155095183464818956960974033685088149984433470969420116795643552997617929596183350546667692203777313785121260787790498792104560480637973324244822473927118557715513763132501341298256779827854363386108044220123245195132539061538891676016976153546573158042380921914639367400153856873825897916555934923947089412010274255167044622148357328460392766978089466517689106273610352365876272622742354687022005121667805868171060282924456080883196156326833451793517706690058924655378520566876573767075083172675789349441838731761753102989052229599509851355721129325676355217767591986770120493131950140546313765136993398287114924053830092343948193895736214545549692425794425431424079400788372380545837817897972283758476746969182976526476275808108410734193431394533750891723236422620266359695374098278265714008260244345484755514885709821383659896689488435719608593854248788495300674116082690259592835151239163535062485402564524922747327334585409944274868452476366899496573786185633593636164876618410680424888488021999708828987226768382191443998947893782771334854729187284484682683088716495481453000799806460123966116563424527646909633264655552717126652907711850695718305195169959617713916614873740437453497682209682029792854853324930349215176199017580708656069046490526843066425204413542919957391268367807760993461298224252175208409839992224237726463575085601380351328739457005968398746744114181817460577737137538198011578038041168414116706248658859608735393644124371720179764987691497200647654951362803919042629938051265499132615877676357193590420673770805906796346142590800345880357449529313249916076701006666074282689024273218617865117499571464366489870925966854204942677123423032831479559312534092255026922795802805861655397740735448669577904218124400693749519899449286329400350685702403124294720071520059063148835908061979024283453426791615758706991565161997530829956335827918037448464836658493990089673319025891570479912914951102573437911407721564837393866146479548455541174573706496059043092441341087256113591949140723864046548811925090687745483752101924746629183406081177307855273725296537862124511095096660887608096848825736740367951655994600386875303563300986430200141058591956952672251195339291504775005978768941418018562808251169529666711879365858765263767298372538712354159677008225759957256227455840879590720853045902215027631128519652865145550087324294297903203884848350095100678895305361673955368346581963706280262659986142304181480545178872417209049782654482200274642001106029452406032397808996399047761580906367318892926646985951257000770181293166198831216995164220021859085687266684507177416342305914286906022439981261743799267149729925478188236042823498804348829478362047663222677718104324022979032628497232374910861705822468383307891265614198974227353015391642459005014813491748188112072703607705058388204288048279500855792949900221234862866655445763534666040649554895509894968400894708321019897479690027143591316668507999366571698367608648880358553580577174692609396160010221487123057463526708669472405785359176086685474794287939214344562188678397880402400121380476937942551555508532852930325233456060295233107171387833717907606130535768740125691558000393329197217039672380772654717095931786463742186767363559228845309382225466940077298834201830221950513061228245795830533960352321862909764496697251272952883210814973636309921892820482235568339839177882390911841368136780354347773126397388827688683309035126562300741727366434001727498545883599384652024024180225108992423225223618985056009322014249537377984028772948717620458400650252964887551329384956809781620894231629263967746385744484757475514728130472945389510863169042152918593936979188670863672708915090942104258650776779874499949272618527928301248473568840034877431739999529324128941697393104997014911841649557456307564472265518713940941158244762423711991442542504663589368663754853759540190607526757923801106404991978471172755828519008052672880292690100451986660869247256501857132283589386512167693480501599713200251904555749714989782835172092978668294276524050708550881054127608156581701821561805322290875605038333011900637108559245915524339740147246831451536339945478423003494376511934797593629308516191546907046009925239562480700357772107193076037680638968402581109417058134978242843694598283775738982062998277961584016663113972797127983360739839783574773932461087136845306984811684822884422238492872205325521270183493101812906973022488919791138840414982893966768112826604664533673319598096667466300761324611583073893418644703979962508278484997846783574478474428758124649623008669852547749704792691123582736027849758599126964455775153563416434541295135678160950575187104133523552922648790023507233406008450734569675216443041462515090288178266229832065385019701769281021342951050647949655252620955393303871527541841319394837931230663502134595716058313085373818925114995592715744313861988720831162209124849283549731971486771638818876832315950605826613049392666946208726995725671736240288413380875286047468045905460363597219426351446543756912227699581009704744047851552259715587683191483130850912696954806023949834164594003526496590524196756231345909154743660130260977473903417375025500148505024217537080826739442203815697425818620145586891540173056087483045714513892396114682922585439495992559200385174028800345558250887588913732091891800687497707323418236581420133249985544027944193194590318981310951077413920904282563514721928244475321261331317688536402224830214069811966326115704307814471082212235075449054486510569112040107207312103475086395573421174209743743001048703733610115845022722084241301743142119822233631810308574082400939909529534742600717209275661399029640573042983697473371208508558868185985097141279080279972295528959613287893052645618711197549981693795757281894602492882578163726876031527497834374479483450076129004099280556068080258030368717337006421952981781484584772568643056009415369082826640905785707856359043751177811872841289046557155418699101628741546909137525133328377662895944217408194634721157296952386243118405452503646571656197730382298551175825304458376787796042617993195225533740091079356835787078598457171294238345471973548361923976429640837804535563755812850446054637419576441286437451116195138328030578521195179616699523361347017413714406958349879206570677248615234184033054956013276085002677095149833700634450328982801006048713604301075531931297023065817347998563476673801879691562468353227351160347747313089892708144811839530790750073589765792384759415778801027476990730055304200027195190868486642750792272778465194627692518964577406846915787993693488903547905523762858088808581281911824667806974791639288297723542025406567279535278990366685056497968848846698548793278295712265372680759329480749924776163147683732414558728842381299335744536860331539091440399035307746800000604625436562840341205711672876581080241494747146145735869698730680446039047382996698263500723708788845926135559425635598241373395027180808704272802477669747572675632661684614726948632398237272752283094808077885771769416199521356870875858223217782919949080444563578451915987129176714418525151599513544932503842188533073470279801315715684530727099406209508543133370675283611377511665047294555572316547203719676903674102727572304919602544170613933181549050980298571125615454601082633292006988993550681659614184070332026679338600784613744029423579265821261921681287483546571909291651055192227304142090040624586504686603071989055324045370453443699084393339548110478949781612894903499812502508595034441147146502612667948037982356573667958926752641035488488215118987218940909515511691153981495523867037130189967999854971567707710548231241223447317027304635768402527513104438052767016875755670543480550250731143910869605491089185122154071784936901869226762526514476003101412396803342751392534965117090746240700611695975406719145970303361202792088740235482524663870926148146335827190655828639097790669567234004649379860290342023030650354298836537255352830673428553377889186068704699320201571499762630291431430799026169862451681981720455225660523332105676275683325633490424166487639666860842401575209250160095184571558178515209577525363651385858272337258146443609152232481649687660718475263877735960633239300037105436412706546410183276383775460779983124007882160353333683549064879672844751174444773725146134030848242352688476920175828014608042755546927115467979592205276717004432204150947007908438533182875249075503209017923165023326491925688745753622545558036721821408677982864775538809716975714351195204528324596338456772136662744608895571595146587909692772676662293448461541554167948877294935799114919458702516783344790906674815013941146670647441060562661195881347652342367791808635340556063690655094260890031371518969023864532564725011533676968044224718546123580038871332585218450767873444922976383606613042331320948824631145832550103696875292813853737392465679995887199492844061540218115493135910646431132825999841686210938654516363486489811975648272732213014925776754221021720057015454083036502527234567940519389664940074228378277094078216342951467499494427254082142176365096972341560832293269383519828879551605651894207918429803563253009305291533607083480159416204489531394659135216147150424153998555372071411708530481844542111836282664620168805122890100870721096081217321114464029947524673991660700781461180642188620613107922318520453987352735527966866416291691808909949233340056131256885392692927739010782421192398405453428222353021655074143729383421485113606735972572367630840942311172564053246627196630548701659336621099952503341017758013877629072338685451564469430139589675549609232343034887486452442663866001655924483004893212590990758290533243519416589107638220865986104570974878984087729405528408942192260724882569239165940190758602378182941722726176074172207894668341060944696812332868315336828180244610539970537941790882350499304763293327229828464160294128123917592663198912363136714918734461731605539592523988342638347386217169084921181488947591441620029515180129528492751047165131477329713139681579157433261977187932939184953299004939505695344306370318657498716393740948366054467392834455009823495297957001046838967242606160695255982364307006192159594282831919531215452525676433153000237354462669185453751272637426936465334410986311896225758426111259074710533984802315459821273762806214017222583320321339086311821128803115573368225288064136647444670936286425131579118374338921847001348522285620188187635698287966971194106461612450179538710103867536987701057278013241437068955936396106323601889945714585938451624459773108127277480722087329809414642339299970705446563080326160984393970950620502141444333070630484711156490639220127471779271958557955647458503752645559579115213355960622261367713591411685856957713265914542574521545171631795732276436597027529418411302277179265790153395410309611824471798715433413568374143529730897760021020339978995870222031465462346721919382114153399009603962168789255028493632719286028992600942323109024717870056812413918430584584158161454205891552637153594357350373893491689149835369637385240237337054453230327489632099201249515714847141248161527740724717205844141872818166466783982177400550978994285653737895730987387369718120029200892126904379927904311893574826541936284178076583890220394747883305077338896045247003641937924737466334018774226769123903171122483527985636590913162478567962037986161821509630305613734073250487554619045065145007074578946909240351691359079687208173435433508796370163445799569029240682725974793649352451542379948890631918997254355511340523631404401071330990316386974586772193504612542045721141661853885881447262781189570383063203555852947554662731426039867377093666164591107952435796216177365088935364395315087278910644462419884558987515432135199571306550175748977982165103984440201754766510527364202999634891016518945790748824833534719626546054229129472430436806995881641576472333920948409889140971487104150316317596192491273065617676087288120495260827900202538974545090437091568290805538136047842852963003908680544756366190050546592910922643370486869760665133744779042843125095775603604401281423099462429314901737560687640769834987887916152703924751651600870853341666977715431825651394955660092377620628367809074328691408305383359402649304135941024181828606083873488649150943271336663047674968165325779474226032221522833672822976505532519723218679361186333068232330155995662310029160030415380165833528075751489861265418782698803705991791791080633050327879526005399277179972705639291931086976943079076747768746954459281556447357323557318655211305116967647763942355384866879647000906976723192248966048050290759862965080852378819975534047346360715970284600868013680613082966791975258497284339415840812440756849870124360546528829948307688909215368292131129061124550457687291448804074125326263550714746039209253909340688594610348245261601360448567873260978253957335771863915432693013299141468758561075852923897279637116640653069272837606496396691440065251433388594870564827083582034842973352435523399096854561630352753225474470458072044266869664276327854074629543773203281136242302646273075611687480640895792591983906951241369502482996988298272507142849052014716354462977218628654394224189542807239296716361627977996615606151692525934518549828642455151765489926902690905933360599660997236754430891482350897378512557434998462135153918688901441330356439860571825401930952708467317278425755071699301929630700365479462239964150649504535806634586857119996341846159329716097784372940245178564943666359948771364993897158181924429525919189451006195630053660528352939268358000915542725941739812064336356559218736138441207508048991745430041252538098943696263013607284712773242453870570238388034002655526837732987469238374572857242413082574638694585844227494704915530449068889436683633686240732087352692573722515097585995418678160698212648593631659959927932296927221895345794330584526754493908554149650575130962766834624971200760119607837198056258951302136622260705797061491301216574007456262989559300848421751917660299266125261422146983280567364798332728088142756456867019200727967072418254441255202122078681159565784847731070165192083368913470488699576117021865113218427412861260642045738916998242004110518625915431863597334605919591870167818732038910186952369161909372721052756908654468100808617320354049737387072637677721863920196170429301853242904337796706180363096048303681520735987178685302992685974184772242144676370665321889357590401521285753695271379090854541507200577898223438765068236807476643494177095784864180563903781277431021136767129327604327507186816882677348700304568151468952878544889035626321600109317175988152739088858057661185217695930502543257822904362387564276235006701762470456618625265972163689415768530206145208988946064525508684218650733815873651803942649708420352536183998503735232659767048262708155492463749529830334297224551627962593623479264173196313055900333238898002991879372424354951930797162028018652837664542868220379502086810912866116149083419875918919456464847264738523810753556488726393917400913069900621061366952451582930156779396542066347003132927409634551964551072884530988742834723418495007312304389986479375705677849152089326585537337911677768719445579019862663693528117070447855389436894312496335028855249176619105648052350410567084185617379359295467977490711809184959900466662503323234899175006984527297752675728047713697023049269920682111934489693265096732780214615937598986959762722111136260413698025455862229020074925004670910342162402271298862623053034508103577821459329410053851597365850811265865844971589291570930460606805843314666992250861546854054800679873769143892002206023696411144701106661479073321552926406121163022076274809642880414892517235314412194935519421009176131371245341819238724940787250721422258827552075487090604890253607910283203958624395027902622429436162686248029971769000765983701738417521529696642916553249238921079095610997473324663770722126426867560574268188436788490868459327758389357150452353851792319024836603331831440135867728247235920344961945429428905115405141788333887415852785192306204052654314498633874486439130978054580583403613918616007332276537219866767855017780551286987330784195497495770444624341424249966451661373143381570054059548666421823003326839162912427825533924109689906889387949979809856833825266023642438475856114449941875193290283936128020297128597484854222647154037396315061214544702557781414824702732439968096248777297521299615713635315259255501075721824422846953563644425382655305315330234047522692033448943240185877486295592854198028310126263275332248596141191003895506995067113312887593266602044162466463541192314786667592726935436615010224988181783335719710023718101860142194288617925707115867130774540310496420360936333603088390864678768277443892385870266048639146718776757272132545438255725349303872063123132361457068480069501535707432339349275328368021636557873924022220531564563049798462773520102514201291330296626593003416750244512788979055489682628342934279367244744904570548246016931177102300886285021474344712318041772057423135929373284587984610044659427678680771167485200189594991477145124600389890113295664769326082340329240903628580134077161420451982012261646250316790763174487832683146671199688058973924971162986541131414109930335555863428097107993965184451785552803909429765606705571167456839931542053977233725832427809609359383213236566231231663131145677129716990035694997596385820455137966308765485987292350663937160255411741898141847179336052020109879501293734758187746366103179935714002881331088628048269782194372445610077275899209344232291511909134513592800552644104093339927196037352241741933195076719721074587090534690559171318666479703445864312874384757927452614937185285274883423084020387930995505388961599299305740502424113180735908858106613972879599008107990130985065207209593020528314645259980585627522791808118344659570914062111099821241425159333441953754642205651014319625944242050754128338696379824223868484325540871106484770614253388741025245772181792138152760629222955744941357173081656422222762101948180153840003139892552270497379605407791538123549774327054757834345434301245067262730416222152013522102201181242543458803192055865515357402302172004433693652788795904250890730318306112713492509299674441918275780005497287586381988736455207937845156836231471948950463630511321873703980967490223123104817999702625134562280860014796823688484611180945580386260529121531192336082456503960064462937501536129671399667722321148352113357991214826040509715808467620970179634821292743851171169510719326779263580455925394206626497345874345005081716301054077557210039661762946070217290953397999229066614602590859397534124337284613507005835212460321820636948469207168242751584515790096474035105702637351979936465072004812628872496859880088800284461079441372026885894678240248708230051428677819026106500248333194612258649586350907924184560478443895958261988528943903523361269243527812564735647427583459813427474801576669882508897382508309121037658912746879481660034065064050239802533635056014776912541717822584425757340229942314041198504243440305248833156551333226068124043405813370273746831735042796645918681750324513037643703606372803836467239781109909411602446759185226561833414370626377355674799024287664314189353358628346294613407123542538017076639489314713034685414566208794715183545878831402665814015720817032560760494135765873743078045464753199911026763073534582488404037264671406032149940784085037485201489815268429798754527013153619334108228137092534484497730067132133067134029196047410870748463867997775466335725180700357980952384308126468650790647362907419535030621582922588784912235331341892276234603540038727252386933134299992831824493702345929345623739831368778571291938502393614504056752252819012338898902224603150248011150173054351190717266852441273889983841272976213890160505749433621429873760540558358558559657512225105764837112518243642581564957240790107579928332185093325473839193233705530677686091698710583134508383104769044723939531623390469614009294571931302244159958579442765896699230119599922285115591775157911547740294864683230556737291771257949203313619771108580553922759866100434999331415062119454100428476108775604584213160564732793796347916958221918331054750087990612052406662854093690219473564587144734893566121810641217897378882425504278180185238995039538533987670377043733921221034710314202513993992642142431797922769706117141424600312389461725738234604963078071679966513445045354014727122491768912981241541023277205022552433375880878445122418518343339737916177156367645950132331934999605521182800519551525183471641887373234072619047000009759501653073483249953140018287619283108012787862198783413784913676955898656237606074289003977617921612554773287526413541709384143807396511525454815212998283524347763991133588290266473867281626343816937552078857694068358470931723541336188030499036493846994614992574468205042375972362763833395130934492815159777426735442229151640387455813493196743464440184711559476215587931571363907101604204189378124321724914067108938233108746579034207408821314294849436720644374769873265718922766204999811693434355705227165463606511277588554065922557757621252699373183852902223025996954659591217173675767629329607037501489227824135135925366313672380325004319550079072079598652724575566508177031331904272991537866996207238177335436010892511083883867211757376978422967789108259478907850214402792513885163926188016765810878213110180925818431520595528292526673738040080623413637185611959977224971288959722911680791037929939563308140562767626656606274670675212086611979945308888784324308620935594594834784575059749059302582349150913855340600740988280028376616058180464653033770600845190131689961794641036163708423654551903834199055730854832261311127157442510353646879765395393748305380191558759588528236990368807225401970298148926408282647650014857290567098333055431268178888533490657370791997144417147868664402863353147321310835186995800872313366161801334898156075816219957826726226711620572376346136513267000072925329989426316688356659654763564976491064737952261588040064956166437582992335771046209342246274322710403635731343560570443196427745605717436921204140342752595627142243348816223443192740737969149393152794083824906208409341582488943685316660522532628295330556391939790436724958896040262342981858865690607501433204067703565603798259786180402957163589448239859004945699004141151996221540585615126518846320860241192944010943045809912079780288234040977777702158349193116672331151828901238100833489049325415557907147725702398660253506143583442743261861572137175544720173766203770192399918095285708970985972436078545519890163230464949536899091821493414751931807634108953809359895818668245108847690379885216040755156271115240326343847366034719853821694034149784126090326392383457878299033107734264404036947019953080554397802243485359485282247841365309821686408964967674441569461651514324466465033545059951831993940785692937580295652622486653519715034900040562255716513379920051991040104910802214131416288672133985636242583201268261794977044257605381452921249576200906500904991926564435112953158915454160767656226234317898045338808176222789388807796923081616751772124936301098158482049565740747551398726771118747829097516754640473926165488057322199845868105533889445429492569244964081376664771707918564288227508024627752383287089864150536900404433141017116914747084718233298877105815406289126483228625358303057418639422081874148817536845282430987945569093515174554438496322825701135431864003011702167352202303007609566829894454889970405178898346958571124074379570301338583689501549291257728050751829028879494376173975225212950229218031407257683152982696786376421868692701925481725845082546791208393913534894938168380930654311527127386369575015717373070893529434485303574218130643555904308261365605222909794439201039206639110453367051440892486131845130395796730053512584274275519686895699056201980922395181117400726166972761290311408606554335367931120632539649791276482963326284996243807719771453093998238254905600247748692559083448675013165778861793872071851303131352428387925933959800815464623850548391778993563715527862866312503446651985050834144933311854243640438591327293503713966163834194669554429512113125225878822287607659929954055198842819030209524117676342549999284203341440460771981518389031595430008874361331061251198889191508831522556811374195720285839566006063245112341164098806079284913601044186289522273620083087584501939768264276147362625215854754211002395526420842540267587087828062760850661432016764361806168501029641074684364999287905218720587320611166432672131004908538499160344394872375972443167711367348437770064144865477398153415752844169217104101516132371743708311280236217416963657640301787050986947065813051285176933408329394132574627018759184120583611278542360747320943266657919336831874588998061202757943844146355014008371529117693723397581831390787008578323192154300147970113480072534231188981855184890846683368232909733283550374083949951736644984821730783266704908641331193611343455886051526102698160824361589068811764618219317382838621480634691531069695612060133563990134795307472964055630629888997387646034190114424645150279243006579557032157680308767580720856510195489005929444613362654626132681799882241444688391859926417827514125137176388954916170086161871943671054254737143078874803092652195352430796335560268242638352557196309511030569265095568722612117977416650040747147081711520291627582510581759426541394944293717903075934514602521962437243753390710620564287531209044107324243547070646936802705406622755690276395104462772123237721403951899395237320215207848916353562224223680044051520561334829757729703515236422872470777276738463987576912144605268233581759716166313844112007693689497906410629838136514946762504693712759573852255282581868530443232503209240860015851523242143756942034898482873976525316455184155627650086908806529750787694499696036105651746843711591526047650638231339741844071254914521816193393608222475662990421395282446887483260946068345430472490548171500788646188415781250384812354929726428144498482283109379434052166063512962479444974829302603461347275756071879638776918551140741398591486655139789448131591698684097284708537832898147281737026625422631328799913159087798956956483305920438067236562956701825507534844794022293256334349875369544855004974633911473978387283419435674511829516456317428791627802454540450625906854147615787845570804857796525277931339816714532558951935648414960198972029882249193823945509867850033226237618974966907191079820801953124798991153485521377227721301175720411373683120760868493137645105244503368616251720452625493471528564616898118444793672396407732563109438300952541117009547857145209810310163548594448702848481940257743952371796149221384361090594990028367878227178378901792049608080894573326786558116197053235847953475185967535222245236029479554094439949946638367744996433594358375478681098961937713154643287793058306335789803221371167003719692923572373726759298845587427445151065029543424033899167134677331956091323968738620966144766250979170426865456484411467239865878870168874198803631734805574875203102323108810686408844504255472851295244945619727024231058299452049832218369483418408360152190847028925785611927692393840669241577500566653868882027170610765028558611432857200513135052091225520519630777903246098554683456113239352595492810573237720551329406850243066256497299532685801730014489769775748186564831651574288460253824630672396979748716699552293332975774926031791863785717203312076479267802162076647768775863342098847111339934058484496492966010349620667945258495302365113100861941924670260000668398937322416045313590612245186100174175831077483303963698203120832745520634460849779131626733976229685753506932449145521978986792295334525712504981724166077612820515653341098287410530097995440501420900525477114328025888384386672838143191454253105109331981787446339902857591200919489879486005436738649304138887519046736474787104577868408784389836984648073399815401499302926344189629501112838819557240188301148127019683100076566760884685064341989145179259400849477648897362279685871123049653769004787453967883237229946536262287952645000779207544420972757408743411819841114278491438594013547029379518403020004209229992332238286874503767333519912897891790466213255312426447945902470034270990653304550928560837816816200834834492619848855028442385151415046059243886115823462633687421337988969517474925934511291954552568873145778488210207832565872413734472497615656800846538829890296718922647572676233812948732126632772196759016640471348218571970543302499009473476358516806699946111205824237406652192532238232934825970908072013592996339059719050476839090731918274684196125096980754947558472105040862264434864450173987995728162680221952099690682841319452595449877198527590892824971011101805281410805644806282935271258329720675165089314573293242959082477322935819547965811919225217986988703658688351142486844636552110112265063448634599141265485852890340955533004968818013206359628251594219619697407590118030765189387533198960843306551755498951735542814865532970594515371079054204216062399040041248182416296118569164894797600886792609656283353474149777736354977279625307980168888747798319202131299916809056168970681172219020324371723205956378858071384602497265810046223708618112793795443660331141278800923028849028672320664703630095121493316183032537996830659374920865877238828537112705812834735484374951004620321278958794122221084521516802374578579376404149616251970480074680151480580379286809693890221876982266579542712656738603844435482068396370638598015112173206082341131669787403855806969534515899857544954025008692156145231991881929275724714375943079295035923482629240267898022825917989617558226860055631296205542627268877687545465592985245151821189009224518799144361900517578284278587911762893259095982039360661605467608932663731545871682039230875469389742240151851905515011255308139873850708548455684451504305233664437269370601820894304870932843680609976541826284119387859774095644471194878915117674568982748689923437966691973226876093656662034450084801410963739722018358754422521666140360309231909335437973786060560051670140756584338001774172155386804080202437404969822690182574993574668259732400430519624103039626863805178577299615692209371698888984327058025558107762133748782004947956229141575777610202800974138008666739402067037649057528100008399034267077738619033856921782968433561808545213394617570573987237799868296734159647574329457324668927176720783858536357790036365099392640271168960730676919893616565078217900118773869923123142205259345491313363826349255197025165257466975782469718980798430742500396017055401131180438759457081064477520959542392847280531683969850953851626773820944611244267642694514231199096692353131325276410107694473167000536038518936503493952618396119413055503985757279643737966399496378241285067908452704465949360758711533556510654070215851967163548174682142085167472155129183939668272454715184151867108156881687951165669522260001494223497555123325166630287662309382331640710917553436457357681126813493898749740798091040897823793926004476606519557692794252386226651503524371093173247783848875921744198412978559209740372466044687532321760954636050939577040607249029306896181477515944469318644000223389827741846558276875947713271634536143902407994306769259344721781781518763171807087240026606455923516631889039944683876127633122695727980282829673293600583788005452719300654299715142370952207397269514460163549315232849394024155579306063775602637368368087522750432450373307121223364256104433864441703622410793754450931279329050359276737291175229602305356901642973366756486470299682702965165568489879246145372158854150503060583928243680278617632981743782562651426444882524549076445435710238959096573655427239151461897526144592857903007842367924150791078580163243005046002046709306831396300754371369694622252501471675301939298382914873955491346502806052959047811342359379673203703228899948625937107628407518747997560546844381922829238955324249659955493417046888787529537525671379412361693726402403783561233337942126705453372069351361640814164149130395301165809365969548026523553299456280532370122752659084720332610852989499825751711226377753086402337296502569003838449932179868513560530014821475614881149386110791314857616321436869296778033625409476748152161396569239959289996413905644943822799263261865785189249368417311407019603207461721045341019471058911556548563828560955860107094068738575599009829392016542765240574732577922229552925354447764650777501847364152632940775999654319893951610427147478814868435674614707911103799221523883097975335338980060663254903805823880250909407473047163417213077952865438132129898127105278919354898674039494162523939486941655674221862760325333763173584693978742690719558561271298447300662195895741493748380115681038214562367731480014700310713159670049001958678577663632642895324967771337173075657035208035585336843265973544264501332009990659408871217817844859739864424126128969933843814872201507421353151551703960328180409516727819213548889591864893984401029668654392842934935052838138611747357153733505723125137365642338583112816216153226552908728192476819320272821563472660026466151320614087418759829872379241033078349390021612434273731864410680106578000931096506728331600765804208500352003511654118739381067879432154647618154461873395536914130070210447667574551742952822533504219427364792777122982318638081215581725853355798601332526070791175715904274563694118947169011078908254004888616304468785951502009611707194410006772055574882065607967506501525352621469271741568291786229648404288874187900056566138065078515238887237807394922863859647798737434299203693598948382303585417222673560115424549079827843004586146373304433535426415872227432406940147931123848984513908534607018550134528254906154018123067617363524989328845820384902755371433507054675066012500974128565360720002354864743294784751917967780121005874769768283313815544877498953237399944762584905716697122964466662124461250889422958261860674796536712669064587636396042231556378544550876651467352971268684158500332509254443127701286505553492759191983866807886091314263534062328840541260739815584510663032271182873388661048910972053106818025487939299099873175457334226854167512203506839472535269895359449872884706109481938994317977076669274649139269540641335526215491295132519639529102720620700871290930498365135171343636772250985538428889953922125090837358460572730513376996691394490527501511227468715189699364936258953278274420169525848937593982392331404003089373025813888621170738121018679669340620147176409980654058327431071036768646072283716371211347654005900061512806167903074843335187761138823694313294943377758846056182478047043087659002636715643835893270289004127385131082602746569889648144909321278903450551027046203421340937422156976935122337260625089935064912144955839772254115271088807587135770441374481051938960716197812953253326791119410838740944594635332430723274754255891202629730728105461410327277135691181286529965843554281755675539095982595397747381089857583874450002210691179706987555203711499607866342099079711197440657654210556218290777135051782729403510589591126500841769057741297313900700412444619262151116426058770690979645128156789735828238093287978123219165567126949289176803040642035208791648527367314283506464434768540423321519643971721978346076907232441926533371699887519082568074712865905393690430105240295814236650927813532553931129644771401587197023444468658270325450655755901044746052191633185816074651329672553030030222663408492195876546106135351421649932070442384123292981947158228960576527657604409502923001678671519683903904463698539988180699984736967823594212057949581461611643388136524889935041689616781253980373071323179325549005280464988055043345083045712381162323430401009755564124956679883971852664419576122576789330104188242354704681092990025917999835455323419062663985572470908552631241620664556434222953075139181696175836277243411490081925617289891541756728955647045847922714518193556023619874527407154118133415502738519021804078791501156880097951805263590871348169487986215608071440062236011528798818471035821919839430499734755136661705513581127914232087635584697400438127535215065998409806806289486201569049559286867133980040501025374636856782233842835621255091561625309121115611789185788620664027320998750069950077454530784655951634964940561824643159790818193011164911516376371238252102203161457604598298153369322210754030100491831061673450548995127070453042229362431521856962114484120134271468111550203753945708435575193386106364838608516818969401127149148075862230093369716247167069882405969395466308339733856944449834828999613945586215642361034690067419837291989023122768424215857187003909279813195246624276385373959758498670522131911751522128705381391227238288004943550033816677189286299318682140134515859464773675764780523449165980052029967629953075521154375536246793609696468742256859395389092506545418183673778265188737196607510289216885015800287630071724420580643404852183154952318174814228538487451035798235824193021321680160897500679033451443477710454384996749905534833926296889927965977220500106810468689911464143935919980097950590315323142369273019473364901151376557640201575547790857865685889938660136659058745107483840141329937448332157396515264566760673381653667811580830940744943461163700497588717234019435837095337534258240161475874825193081754974009930635923389968549571307542673780311404563678788465960849822776961991997125559947331295491370215936094097064987791497317103501383915464512115162366863265850629373378891763921504921146002828382253504599360856799913280946518617690161783736157507158832769032304533694999134252378650145940353655298138114488472269646779010009006997152732164575021858260684551939206813574657885327249772384004596208663478214327687289071217024386618588121406038496633842902210386033486145261087942002429313943458629109809800281038606309938096204251221182002795447798251926565100573692084778759632023134146342485011567092301650145461370184659429042992231197124797745447294940795869833988132921491022033919090001355143122573467782645936812495464481917582552467948444043672265818511749237553467814370934639379726879038958061204884435753733426239248169628407390282480023615636155939264648339257469458508074495952697043897797590917012797244132002552523053685142411916245607179629013959757096763542207179547346509850037905718531292852170986225633793962211726179285945517382238557766882813096187466791573586332645403068387143186010585176480403380228611127504808602642217494328945548507877500816443190691994804526904995280900716785333365101814003951493012694087913395624175929276998629814435435370168785334671128891879512636070463507851276901283181578135994550491962041887674553128894406469404311042430207020555621416699274575146833708070146634645115175170030324356716663834666927176091928838608680265116808529696474203085963618549866625771324134399675842858919960227495410915728307498882580262552493633464545915602342850314990491368963236970564343049391176433993766265920029059035567387298735690910674470700749187894835803892834507458473403139611550920716300341613015683381066088931937273480932745262027378049822747464934176565223548547699847874200715891507212428252601741049271386231329748484385522059653360548667581591537086438427040713761306402878420340737861305270885345793535010927376025443563434680852213537610188247230957454606796736860527324586689815103937748865315305668463417391434319240701607568325500250523761576418465420767568919780998028942354617791503043833468881554063685589094248021223620416489804325753554914506768667089148075226843411482105896801262746917163415940802344233678083737698319091882231797484352995068507784952306308544797352331797059508513046734461529250448404233731139823526464072462455992835107401579627625799172238430541829541573911562256872923477672118403330574301535283313355678305263981840915605339988803246578381553455701059529291339529250300029454683796361187455110636098311110123426757895539797772539205048708885083199579311924517709103752222401067749513836778992811966441446343642337451838139948834446920092502092666747819121402775576724241512970739815796795344666748948054638152756608039305538120430155639285505704156447254141126416852723611196767319595359231364018203671714722512201661043703704131876083936950580041436079904066134095733636411763966097679512641974115982862554409621615439247679520524249205571010911860966080477837506399146029398485171423568713355070596650674857461961939738490279191406831713766429281364358646171007089922102176340946902979426658015430480778767331553663402866148116326357056375298098024703960617407962299100988871780006678152059177861839142835046278102539259927308466034036044356139161749419750291918034603890104446107413734536121488498708812490319943343574199384072660119643740925844196179237478578499525318433097015882211053662397306046178095051965610608087180871254777617783725162123523239583890469203636840291394997338816813371426231763345316170742641052932945997692970522196301140602356874612637678691332871066302040626060129503890218355628596840689823482446088582533032236318451875161021537143157185429625159298853768266027022346684372391832716115385188188513197088474378140586963851602407702655706213170319308443484923351119489044834378551223436804554654128491178266717875354499403781711288104635346676927717033113215145458787229135292026625996555313594167139235096781275604721653432731442965346505019114786632958458946351051575948942226274728877909389198976446221255525451486282713032261270854982802111658932973275322861710676719227159271057274349379550686954852458898578247664178141485163729183130338734795904057821716824432482937640782112158924517370607775558791782719565602725038773871407776021615387482177086649915725575153505041728323239897141421664470210109653143487347824521024546619553804853866508166367606735350205878967304896405888200712598321349903701323136417043881280410546439500966391435992094326063175049916266993665810569766416134674587295634205919124810095850682653159819219238364681778614394099823432404795959072436650752069370915867293414408091337849778240165097952935557817573205107127422076847168949094937998211348718129720950505834455797101947124642776518538814452484780029878492692115369574119167814166675908381427231806484187783889461469885439099885817008872829459069816046078032941946340534359442941104781780011584383254324066911354493636938869097268482488799870618343158340844139693561530278628311198834792409425370728319534452039420131211328593086817141155212872678260631796026715341683801188285729976545976739300817143717086378855865009243994612855097330857540008137516833033770647515163077839805806407339679888790707273159141043872053375377839801778527420181229036869725725923819016322615024916243185243215089160273913525130147170953577745890456610639166940804294671168148130891269313989696849018541127725790876367716315524651722277885089063744125931813342232001951085458582156978843113315935349416803331843694848178515241076466087828292661611813296645525703693375550465543959966837005732948324095573587708376366824204844724517446880900274014753360943503466905156902642121931853446760546750566134626490643270052418669228997155726899188322196787173419870052928281338724629366706435768221808684786824209704300554406796160581765286297752613584724789377518229072434068485145148776817000948128614593626536302073659305045301244836146483399018702513825823736054715277585985842802350091978290419209461393991211810150389229352022576408527457373704760410731769907612882514344814033410797689920477565137499613988641264510538361417745352958712410654188862811107752536548785583186310002851077469426269058735452885069166185561167920717186875837242260139802375879430818391201628764044436846386233902651523913021772117995450357753147231359868204703601474279541452973678713830712271687991620861323339629423039980613755544059200285969648283158925535246013658966623412431865385510920640212853089268665421258430525737970501563594218458082875173198893326503382378098982917662240675744739314500250835341964458316242222649618142912051771819548809214036326689850176817083403129311593968089655967857755536930590544079994263512687769044349180832772460907416049544282128068751951389072948037095904103757202206813355516145464491015922850451316341428810591757397519783989970785079564441791151557384005975966929437982226793270194075243311265344473343356582984470236230189249187971959587859609064370210406840828477381553655912836806329083321381754640696273542967678328449821152103832157765833591963656241321995671499415031496270969748158865363827442367664881874668998266758153850025557484372804515646550854777554996453057008339470147528616148487398228984816614170870033273429896931039273404598965575461012734987647152518039623042216428197917980097483699629962549053260814721929594589458684443834078302500625369235730115289077703877716529415118669538647680587099297670290970219865631396408345866230763819533248269764769116625686277507688455330612571850542509729588357771644051040657269052740036626278983227224235994676026454115624476125988493140066594205446128545052314655342294021369369331760116247690521442495276315075686217100297048996757342028291821630729477832913846030481804423759835242637105647563560199977659483380113243230650959918815819503249608447130653365685811096904999383665748902713844220046628788116157353245246269796820115880049930325164912073053879819197504414991233450719029849004969999205562413260771350876888807172112972933295913463686265818019768273875183565193585914187757998949937344400017684971189369572418193632159368521796668010386917458458724631245157400083875296993486050743424152499358917753274483831931030728385901259616943663508943661018749899759752487702538912074293837197690668069307154255704714760759952219371756848718572442266687686488701989582500341617523745770300755569742478093155742762279896199959215686628002598037638266294439693769455359805698113968311236488995287957003548676094338010266667368034275885153799848236154107937415006891463718364824931974104888031797288256841808481760944952290880313138744153872506230601715589169140737185789385126466737355513436545885037433532413476720449986561870204729888213264936837647351213297780955644903695724571487922748252356025605519557090192233631394807377228744259541026662465288777431751203829880353401523349259540462559869603053232227677980457258015176249002663377571709779851252567400671339159772627164710574697835270631412100166361791727925123757085211794819990594756250272795355299847975139362259135878179526887092724579264597220203897415356051093508522352995044573570927539416976749138604511327053201477467163403957399554548345257479638880957197238086492519143010433566523162290355525268934520668874701771449427575747311308217295665579153538010502490393450153643687757463247932092935713415406931106910862371881554846334646816796655712219359679565008336923469476440060650670167051627545275706041580910495112093326943370886928553368672177203882970939418577413882204396162716551999014269032839581703964530545556723332065724476708032885299008895671165269289495126336154182578448106578356599683312932974073131135189457107530140766530993193561807033366126284709352054948802316884395570071882639954507694425482627470958227597907487442842207967949151963804156346324918631671044241734493327618730923052271542035313300415000227167522279233044599156322023513247133215046758643399093411214218678316200435868724071036385024643451024648459231213852456512691660685710052678618769260378719416946747415283438204183145549223880931031607412339377478951892806987813550179233560567060637222591005608352253890030690763144590175171483197734413286737828605593373613547385615585140250554108032812879149112346607953027993130171544130244630772601810039904395272131426264865716734992892382681409419318749545744214483439527771015152301584554140585595322043519395030226783851786281829377085336695909354185471432278251553925154082878337465898823465995467727323640134460424397890322085238974676200226613941072595494227448789028170011218567158884188990843322535585217001663188032876889841467231856278629063796160958505422298531662278754300545386142919425910168892249113910278524587343526450094776485610083501036947677236769622724425508478895194366996229427816193966060122938410593691299943738302677340881176247035416560923795788582018250028784654186009187168550523068222324098521326418016720254453566231472773881226642607053670774956874520949153431652046485405433957006711637259694968770685943220399884311706888271644210097254906318583527731923880887290859267367243985189264111746807808775973059537713696024003627458239126401344077016938016226533176575726982793909771162338721976447721635420879839522047378103325733610179416189464627388320137261789160974128204770920425567279283343101645526499910476732507256434784722284172363153658641019237642514960702158512932787963854198700900312611760299916345256796029423709263481820476428583914696388709845155255980345504682628649696164689057511457585830927041208786441031951878555438591799113184776321890606925301473605706641468392014876591414924649939670096688632966659658890612198433949397638161457936035889827300362011806726132586148582889738150079976452933140457378240357311716050556913105284544616008424316396675834203837824990947998911328618388877104376330707176062170689490837616125670693094719138293541532096028432132023962027151491283997297292957669126107891012436903324440609707116196874397351887677639500051767361786266423766196297056151058694376596367023985264703526004508027129745314664908839038846843505012739490395731390647057692808084506050554642876700569438912603029721368702262403147168206003240668190086590589751264269337810010768674806733744699415798632450693356775236199626855330127543657191949139999581181288140733750058687385565088154171221007009813738869808350550351326654020237326396083116334710252934955519713211120674624913484893167841914409452023033623296796156658862809231684855768124970138724319448360907453905498962039939314917516809961253233027495120008957452197742363714740458811929152944290308179204144848191092774151552134362714920188358961132925856481457540156232844695198035680167735281763654449927884681160491794630126682851192302651468533175755928864241062662223947061456027716446744065873110232109993182346810540902256797370695818815329183808033863791541799726355840064092277143068678238779018176251795258405655652332374437217652117574777262271344246128971465183020176182046568095649020409493508071516796270311893948545739402435049682894764720368560181726586214041791441780948795499861995814550622733940735483183544856691851458206295544061201255503992057942841799353822810973036699439366817349643023286649317781345366167488048030602346809021595109572823204428827748092558326787228041752569368233938012350065963873295038051713188813209558909919018105398410061325817204246576061580434811164732903560777148585586759973951128013537897664724893247325652739383569766837846688455444151851139796361731531569963707282291359570699185312941695896712095453484755731079762413008730961740892465538717051005753890119021035234098940722954626116305924397932595280205905498355576819464765271983493491141861264125925496273897463338179052150529525011620311746608195447053330008851169874283296012373810221714202181425821338237650679920341858000041286538829479241694126929541126789903397659242967777658779136226161038745785868889896779803154813257563954101060309287368743593557026129863472445339127178284811120907436758504567212805771922186199290919874320232676851847403914649903186442942156307336365797933357216400657324202712641492677340612645788728699324329867649652832302670393794806952413414681808568610964130085561455357395627117579533745394505697506065301515500797994217273431639356476658193096912330682569831174291206028440291118063133696788167275061083055536898446132438801961831716552929218940797457320373135679390840410693347968235312905966564173227428163631300022075858984398642886393998535825692810810962126680048539230956270174099459091165898489429188989400332977142797706829078890303494091571217880773603324955658571065524679937937087161216725588229911124171888342138342261803732906779938992418928660810242616469376317262773933139218560430748272072407278052523085065890789320694324170359632980939927437552099515438758983410678537383760829045196834460795146702463512298929084773492896130809926845162967832189170957543287467285235484761217867569427542822579978814811315934662422162910168172622179713726318604507273316033465502875518696942986108297541493386133349427194116436885402740252129981784140265105607339594734102268353628773358483552144799649569139056674061531326494091126435886785410355854698606125116440045387511240927955919736750200258358142940295202989078290304488019162169412584221010514925579390580201353030063599563696868859986690889467752002101577408254083992421173299098338175611538320783446082511632158249537092901206083018762476624758410901808142636191596162127893897717816833482056089901633315364196682113548906949097328922965089256853397084535921225949508305483126533303569556807067189912341364082631656454200999637538750963229397537822946035477606574888030137713975113139953858251181830356465211370576087151656096185811703608381246395385476846935501218266799996063208554118786054454710388119065914422142058005083870253561775957818924932425223026628515408068449279551916796963529188808947846600459032838459357163483524788413223874995976887282106498446562400632351173376862558688359541904768045385401234934510616411113877621060680955674233933281382122796544788860225959555884541072031816784470757926667667891826457490119741418475059948098354245608169519399325100639874322178394076697037643529825400269236269521218368755774133344278869570290546648035632293119486400611169648432079375461332238410799401263716639259686659896297879171169477030675365993346930293105515267029245884985792066620655934677130047120766037158200147666975008814707288491963043503339105044928512944090993294401075647649810723130221336205380411232848148316797684971336772267600789553411327147757500318974144252278102988946863890407904940875717991290088472036802330377708181621830001913681315839287713181594656938428348443956028232757457733968891863810301568628064088348998646368359385455008538759050679305147804548863737308687934659093800487136529467552394023242269397325288569600129550019867549574801881249948553153292465407716790557756340227246671234254150077107940543369486001364414517270924694906431016825558482542214337549156875548693776693134650099625034960042076007327708151392069203480796218160801974508847595691985867477772738763635006569037774086226591073252813163945815325799345818399735136162815932896095272403714523258070701361522614202565695893600312495032645873018784290315065371658851931611212658878199344330935592296242145949211040173957836395831839896311462396600309302403033812135425723262195076084258423034198044553682774950506368616146611016171346250882312118153820074766381118777477707306314565144559532500298225771775323534652814223517345986093777475060911543850327875910184225936197056517762770434209499460083158937777829310471997690975719974712761515245097207661588544351218094510830838309118517420572277320969687452753604686044052418168021492382542157988909741628413688938921389142694401451520342159264368822825926473827962656666036190034438576002507280610042079720994375603154495251790831945320754634001343654921622086121960649035863765165268214344072830323593129867508685067056928488107296063180766187017179261536895853697934463934596029859170218229794779900972454841748190420423372452559848261244150585708015309906718746955599646377778901562339514036541613802422642372749961842147924954565959068914505581263812871688118033389271591527108214279134886381168102379452308298719291495743698838533988751428627495852391543695438943131955346263010768381527868977474295691439103593746987036608120645299038153141380126989074630176506124674098319043870102375505272229688078412802872432255108146378898170515303795543203369883368912413606692479477646290604657943757381172751289766365460772853462876583108241712349854872280955984587940419742848159934134199363429061285514501177884858614110040498087162629287044262984872650551894568013752377747406255995376010657037494425733373965132583456702259003604637134147998966484801474979830735538895165225625683684444680445193505061290206360736578529181128687441336487806817102287989710188439895837123331267923103728435863311821735672122072669793991357781752934853725646597534474090896973523441486253524273638146979289039575168398098816733661684259784609793140525308565294700695215535750980160698123878864206096304574778961847413307201429036840154589999908053018119069907884828262258044456181279350930692383369346441354623049867447934474192448145048311375118969618444790477459450582876892723510745084197247117396570528262901892793712638009397405705406550202388871190101082058908110726358779377401183092581193528954184353857466276869969894116469981608120187900633061205094364715913363351380578182027381211459717163005344022063558132729589937333815650657203868387581788281715956976815421044130636349833775372928286307875476284294322560353983902864969846691397384930612491818754411705104697987460506143591114278182454655333833108363475786228229580973467456501127591257972517229845557553174309701294640475016995534491513199521915692443450461256001925851247367748057773066828791456678254225558461453534456864557690161906424182058943213211751141115262243558927497250022175889013930744976830504852633752468538603541681070888652331349521956488559611995215674628226776663506148148569358784472705578862494068519960827448980250683391417387836798099066241279932630776766773938313252618839478470447046001741470587913505572015093446695573780884121190476542637576908490947478725555006275309368901495919067397503170405462311085593225086524074738238647821077669223281153565038934054931027371411090799980305556321946916021336814784833596296772453424360570634160732723715933037134097144474012695264870872024343105754757952190851929638639930753562053216649622544342044676213976801318661974640295425267952898198605230352481511031041278159979861003299685647502266393738914371600123777589620685133666528498535324460696259672927051016283560256642541615723332003509083713725516197673863411555966549997878144201524173884372858348087322314544289463870914640057513308712086390952059396760509688613620422230595302113630410708371554248312370017483358188118821597055723750123152661142891796768672254080318224226694374241766241077329056828245210050776609642949839766144456083173368207729840924911406921487534313249674784933333077616680551966347675565496160230976804361835940479856819513698605655577526979709374981296881425376248987929282407395040406344376422741383351193545440904701366110199694913041720537393091003145256797094684109039480559445976364127568788192266285597572982692004609309330916991904171784971904000399766690228486890988878721443992112008761751089416829947289503462586945943643120888042523351513054453724005862641393413300308833801950856488359758774295968738815724694148401717677946019698526072066629822821683457706174800977052766722298474327414807421329737877019243958488143619115650609318571958335310437898055894327156804302276550000655684181465231867925460617350611038642571471547736176146250776749865836304461157874098953696495173736121758128293004615900719357934204371005196789696944739839957958523691751649952891704639292553537321769088993770967842964433914615769220529901243737812190402252349278592490186025963694717373562864956289136655147391676185340870216769115061057903936645891717947266272232390036794157227349092797420640599975565164624566944582000813288923991346531764984005492574167041244899820439544838843547691685007415191343667713792253665005170321862833637768141740418849150403795056574048872139971673925228233115342514318625615901659260894924407439017389280439705708485807097688050778880783773662720283154452249938880778025802208888217863097502640887375521118437081339315871527152255278272065223889737248930545277322655824659191218137015615863063575734194205313020248036052455719568446673457837890296411061235503578014353065789168248944108102100748319796051512212317214892214061489331012806066811913053929895744339415987369275829267280875066717372671648561843442317609607872333836429998598178489473204140803626728398404845200866778163365588369907607375234851987421139149673366638155455165155142445107435458399460313093666020249166577339710133534092567802315835684465600437625252246779247788579730781381908809211266561504856502943700855086239661836820579166698038203804009103873314910599493263647447455914616602492156673258859354989992995525563425967262561358111559480260570589696265274652786970200285405707036045177284141258914970849786144204278363051191991431336665339571469100663914127229684863139180898134909043811751370533891436255763416087006713518544417904526868477310503646544974537911711325758001421875285728520330250316126245547062831447154972028879563635608692441936835431668048790805141653574422621651355656560909902529010724428743175961748767291453978625073524939545800066780114523828942636211105949113856804513533798867918354506450014007474020489872309289063440414561777719063017059697412383846709654667495132148243839176816852848654516721163034339047281893869336770744238282948711179139697698766249174696047064000706088707328510396436454776170012821851776727411122753736794722191241505625005054356402448594750941551070531933952825773354356272430147334537492630566922210201987966574216488810487658900492951498083709959963114085413102419481563190493913561576128059286465593168143491349974662783070769461811880568106275255530020597738265468682587547623054417223327827616798165040735887414227571770092518763081848952962049871276264051195665507935329885105005838181502359205194247014522952162365151638738332164549456963387894405914436022246834193027693951087372914118979674310013910495643985528144180053765384729311169068377553900672394690787805950601390018613746242299074732078674265955375288749989261972234257105457408303397804441531093500918961600606539612109283330728244669640521742917345720554245237005243500399008276668320733900332072892938566571488119596463978832900540134322444649857416437912796074510555689484090241014879997256160238629737461857214378557217677837804802851295843930842762634519721852059425405603604560157980805127971524717524100922341300730071104770252226916728729995547371780903179316505404606733318051620584261566328876101404583756735010972097725521074084427798916387632521207380276307884366394920284178908882250181640895502176668932917130010056668867390873774155552757796415913536539094715051800484646356854035527002636909771889478626246605999045987285242334931234910734845805655272118347046260260733687135600155598940420431960291377631857602362947453888660921336722790672452005827076491935926912375482057868439222526668287031977794552732870265058078652689606397822805562677682649989002836572664256871406211554691903208472176178865961902113072780628816709761839851572351814588638813689803486873847672647257025029506488768229351859779307477096156761091830167685156581165336455949103019697121373674635396357890760811883936235310746093321752295727589473868129886548149717875248010025829226166961863545272085785048804605146615052462022334019637055024111535228440565260339727189145606276217158051249188630872031265337787604705617884172435451065685107110368152527633089521879358641090772078070082538850328394048503692788070011054441999221520709649688479741032374043845145944491378919701492426910744071228833889376439032975692155504976298880696133159460391027239853060847311784149274451318479736388405412500307884539545813359848394385403333858340075686261706139223490224191782159712892040829803735193233776362502174868823508417913627964461630609662119492944597104098160867559871981512722202563733036608439537373268466797666699064991743837792911217351998305707477141549882147640919390078140385464144813520100934102398958572121957954889428135606076553948404528810280724941805209404069781405306789778152336390891948004607885105238941895146180089517349065292517233449401679517792215205071849109156852967060502070391462212038901673711569007989270672396947746149598280162729817659482782711320335714279450810523497979193437143866959325660451360672343445852600680642024282114001635923007695283554983336141625543126751908260481852313136474006080141606241437687843033756895694621509616674302271628698689236803782845301480913993044347780301303920424981947505574154218096460976902551395488659823792712087465459734430803467473493868273406601035820973998021763163295960417129782998758690607385724417361591313629437668388136063826189800799912468925437234515874813052432590676820907136472643710632302936617497234325629268987756601748392700680142437002039966628183071597232742530971935647477342070909570042907737046783098434585688363653452094972863027307859710565041316283564447002816624407439067626722159623394626187575132637223792901890853742655257427176398593114640569432071477565017037011366678883393328661221415542302197704309053619808094806048997588604544487553889671385052578590336384288964122521630496293191247552284538506191682685578788635746111157651648316549318588962626985061664353891535098680307579555424451928186806428640901419444567396976366640155981428147714151953351086545851625687288339622243924360151864670055294348828519842192587471590563816223961667368855082270549219689010240726719999985452066030834731823171174105441375947898900955192887342875294926889002504075969399381518881381824024982625097160549728968389793972646182685465381850597226108746064962814213393736235163618915442264898165403262980138516832699549251132197818743678101469641976720925471804718963608802800297731867850243289380698960797789349019924997991642019827360230007678459398642323974934319547735769461479242645326725061378266886494286270605880078298139433253964755026796379773722207854189552428494558889584878838910065491570701208449452504131255737827599131833116509540545085029190724749987759737000414815167460622440140451302469070780193277616522913291037370079450630932854219613479637830707584810891841847941998978379841563618746599472171826630334675278462234241901869231250852723857807308055569048911831432090449801610680188523717213089614470337378643049949401162522168612284217574702284674386594345666548423604599613545697578806349563653240202362161773577409273552765919158736846368413757381335134606279367167835634202882076427290673099287846084821650359563239731458338250013237409383024673869262636781235774971185337784244548752737772607774238765503888255861963833941754456599275595546631025238417570994528687756285227460708421643323799505230102935504353266463883679244975927865356015257552500951727970468095554662451283616842822037503673255883030056685178496323102401456202249137194865215293435988065717975691088302940973460661565242074117378138676762628713665965641071262479494878931766015874080320837431053846800141651285363873350446239535458203798534020406584464513758157620995544588740024979185023547435604612421492648902471045567641705000250107525721721937096870529451938149657865325048175857710105062251095766767723013775871256814616012615749865499404817577791583698163985440086149673132978116350636359621950594452887959967355189721187208032281739686435883473160693842344863399093709104162429991493019355066807973777145765034066693022951846082091864126010456173469271325576169805607332093138889231057685141654588835032513410304818868637861748502885391679649240243551460428255002187487502114456499955763772492295952543619327151893339122469301820354395803181543233940355799420903572438500870470989277821026073432392487441500117634900497309957333499921179017530645760185169716557249002672257981930321619345628050127930449564043194531673153140128169249568358482457253853891675147933545506540821475060873788406164462198591065032975450662605928751674240834804811847420721115050276535871975310921460084254918924331940208455701087557014773980020744317910862376996554892888683789812213244618355030071812211218255939679591543725705598366138420004520469754466738694535139909235239543530886851152189546303668789391161282901585547249566762386888175290571797832255309066164914528979957258178183564961141772144026107759857666432315097752378966022671159613611486648976563782299801330616282849967356363204518935981098275808497491411964364085736936424763305593574777538233675145448768790136369369212988714515084981017450958357172644208226738193736637932678147068613118486656924470616981025362721449709812899234377919006590907798099732171966340064164139753008351291418065919223836778918424102617572802447509907994526260309899870048500895490394778303238511754093705392952813820813423048897415645794003586347309832621677909134584377506295649065142424816073730404012831071157467275907269018412528407417181515208155859500986528860259790364649165796468419020412627736114299682033526544433642727195467909659345485482961145841022168467187984483806063041178747358904429840554427943665896440745075719031626325948755990201067580176041275900396073149492402706451236162072655677931532812453539977647203944095054202436915837074832252907286551139150601050715801377498048954500565552706140821347610155547624084004608116666951867827007473810570828821667704299080368099879791836998148818317754490217077578272002265457933481274964233470547185892222783806491646803645411013913665624111036445499240560895097744343813416513537355918597299195207925407539035061329299060785554629191238961120508818345517253209433168267212818971796374981117421372621150954078386569638102156288127161712706055529055282100900749482903733569512982206885050934503178531938883008883954654073742168943391348627728257843870689079391217354503645811932718620542001967899235390781543700948815373892308034676581682376543207264285163067280780635041506443651127917331502595092654382218771574912014729636630684973328508007168481205928138362110919496308212004749900851080049169474649903566376881441983300519722149862392140719148285503297744924852533638149715662291345047706137575865414157331731586107129222776110833821697240782096575867388968510281099819172868725205306872468921964286965877740803409691318220019786798058888640514412782386115092578283115712146836760184730502463715902790344117386308254519073856789678561355441674526070718442875791264231855522653927780761796211368729823095634118917358679579075062804277274092760732377420005183221283984727114791603389320716114784016279248733025715594176383136842963707105173586750554753285761259072842273660150843535630685700486085813930389121710253922092303409489873347568455858224364425462168791364178005604394454806725583371160307453562549572702348374369377508785665666540891801055830765557777994436264833411341545742109360729281287437385348230337589720860556814905004132008134426243751226281546053585530518382974389941300847954605481976516227078894221074086235640134935110620762515030172107513206871167392021197535015434051801363764499741700659399659453094032267209187617701540239784398791309632748923217668713044880323911576223424758180549088675221092847024419368911914236495225272774082138727569704542548065202616495797648098639557229582093679287903672887331669708446902984812447247460129156554732033614163363035457840176881369594896100620670048836277663466938646639830573027786853698481796241123912696121609411125903488337969985580658732848900430745747589546053700297432172703179055017395048127485709316143056077015131917545339273320785214714052693916790396178588137156656605724651799103064213324773793779831723529570172967808842562034447768743466693563481069587607859947443512443366785485810231738137878606042252731191053984727177618647991683961829463991200906393611628027414593739286773564363953171490830931303696311377568131489631497792573116087081754148273882336841233552903679229830736815979958983767189446975396295952871859392649418445105056245430234016615401119008317044397199940915202776135047528949952730290521636468654438551836117511058795307090972297466714267429509789764537393612024824990539962829899251117086393108717732840859446465881046544875311690550492966895938723202669926251333734096290014090638657514059106436117958077151235232969639433984617757441460424535085722808913261734017183167759774050659410518322377501430560415282765486135253513635400938305053802457404554148675959193645945261239734655379371935439754667118042413976012145156149239366642575660729532495337815255168414150253979953568373844215631904872960948531223509106206009107655982930537348856082410564782394251787853557477246049528560792222352705852129016508445197970184434959168269034878012928591561992817269222370138490052428024867400256049168295623249912023206831548387446622319234603559126282674331746121052219504283538686452289039527595722354176683281545233673804683310002225571459016890601650297182676441273019170420997070991567148428269244001132402704470583407398826913211008845811172188419910582447968950543297337612399853754585405704674091139963333161722408839941560909358396381577478724832139975119204640587087276622155770753820712596356399284495981798961872837738075878810088057040607897347329054229152173361969651373361142801232612778233964878053659575486778219493023121239847204053750206086152052218481072655144436929758697110921450550225558430027109163501014303322212283035349342817027493815647201198304169706699699343094452202369855829117938761135443430210348962034883792749386799484582471427629565088104788266026672683037286924373972054810556324278550738960772414564012803831029651945260680868987753554769916806842639334475813710619752472868800572268145102167382822778934022220719309400067235007863847740688504284881118309730238520494080506386135084758233640659175830679054550102549536202360617974554612669533549124116298823697803411977647051535312754946429955951543812255556700284094800270114231917545227527818694291970636500746699941798149892664680121051565920890946731177635899122883458636320832130036869268514401376698157042800984047385141492289327290158230023616923792864821551276617489805272591404872243008651234686901223586905740217204526638335909944034266683198535730908339820859301556481424098425574498989003872758157516549303590832874415099733355879544132398309670310541484714524562677316913245658779558228054326123890468349017812616226879023524860006199981077313402474217832786564317392402210357082718152073886953712325114693799304921998162968106045710507286205422889618556945225416493540758009257300590552789991377829527136844024923997677301002958764302776908849441106293836098171520772806347985872333627399833154339571466905522500035360449963349717997431915074998392824482829454301988195819457087896456416264307440036067454859914363924874350674891665792512396897114614341909378270136809492455169480960475755660312635566295585139106387390279453760202002317352924904792504425391001733752376226579294908382132482380542312796564350767740550896587306572584919982193280566362984825151763977776952931170152394485396810707889133988217047630943066532964064790434851346641539042608590210009100230558979894619606458494255208234808596365032172720492971882234481219613338813357092876880115227512386201526632877985523900252428798012538404396227125249063447333285239309570501006438860221097121304854052783708276293732234200268375230785860047447929524551981090982262918608048217821549617924560517367816177112006227316168003499424949948560034678938879574367099232214820791297746790186914131140837787012964936505373664615530192893648721216189312808237120224106019086543208291925100461080510372740739147517738325998208887981732120567256495128506502652946361041575158789549710570974049633527388303894579039977108526312453509863935082345037927731349130103264637402668038226203420021882337707305616718973611769385164143434923264285772735600040999277789637691235066755307998910751881547194784909468192281284623443858534583291228090687577265034556557893500574779498356635441419613988417356893239049114839322693533091973374153863778074887492340323630440990593346689288046766420781035359042965129632643460543938219100932052435653408955480880972825054362558459194125811324085941376097841607735127653642864765508964022617480867563581586097518013891333674711511816096090620530330092589029126889248128539449863916174412450313990409544386453148256616612053766499226254417681657305406535024023801392825304453619820561170085772872107665789333631133212618565667653731514189914199045522850847725577831864833549713714429461595388498493945314060611598217715231139944257563887928111249233324734334085220279989664926476617698069806297610607057340571300905980900341182628926798102454085965292892541071085638520119208691119429948089791485744005670453737579859199738555183616872808496345799069900251017796418865879012853811103194940215588795904972468948328658315306127278524498874885242056140144103740529744209104910108015963695441225242722672651078327081631339009072966838927122449558068823549198833169181541747839925443753287522256326363496535804234531062382445200092299219887847844651703242158605863160762251251804483210547245144168103743069083632007733835995124326789653271955257097274304513870177523267801655063285356820530153705616450214089754326438097343558171919616266200030620880171173322737170067422475682956478385221355654013974305429641761417254329492811046893058203858605537223345391717243660285714242800368493364538952519438343581319253116531548352532364439058830171954731266287245375909004222202461459246880673167630172128778840857169962320424831164975951826586868341853771753994519155682434259908966541432418665557017464739181985277118203684600943572583817341692586523320557719825463836025886219884597178468348384834543760866515781900869404591401557355880836153386917339065500900517715821197675080001545937619355780378586071608403340629447418432904320577940692525114682709320268802608522015871104503436622864250519884409623826982219716324491159190221222130409990857490768012846218257122522672001842545661127603934461663708291655436825118391070083139482902239020813534487551622514643616716707757258431351557809865067451256030662451429027177912179331892403408568677782166919394611600054847409816335233549548573176758158947796647092641713287006303617681296412571360296454730917544096027628191066844075145984049127365601417946914519794635821346905194758143936087464659493949934446973300688138900454139839039362730891120152727877712501853988177574697135547650208157642951683490089906086440874374865509275038618671172704816344740080422606745724055356731388291257087409101777111332780475480876607646241122370238804342999459252661036934038594313415057781674873073486894023524991422973677571236499865078798990185588492281784843128834369149654928279815782772769387081160360610118989127002195672483662076512787096451982883376608033721238055713535611873034881882247458868928437426290932226967499978206551219813575552961261552009420896030071204795040515470892724430253202925723306237899305874785552856377334401812479051747326658427609879294808026150685849375553975911902208789721372068561696972908303607083103552930945869884158367537070592115434653760230794065650752328372298277149562961753763228473715942429397667342981219367696375653713754971166716817165526622238504210912987022796771127091613983145694076658955390205265055358971376795700523614008183941384629839032196410388185098441683474832477902030165975168566400225910651763494548467690292263646216197510333150766345160069647041430049521474944715774509322218679687146012991481185727335308321548144039078874643603559869136520316125153543472372818948052372781322983127763890510679995103593191992435853982544242564743675357620159488447082717817988563593298550766490559978611620018291340365787833160073741709467311474311242795621596618054458753740280897298609716176266733889081155714889033092069507392508906464389637818750322895073352037670550812354367992673886484765751632823502287580551825037360040690379611194427121931228663089841845428895322286072661051138895067324900225448535064757593498831197634594839588997269158812448440441253498784984019864756284565452631999455893055172917564297396185934995724181880126535858918185287067975497768344924185238441958966601151812273377895013712796206038463107429948588975574001704849056362211816211406160381853705306318847789854544874480955749263146619866099375204505296971445781930418226268303038167938586375306005791555220926405667606024764639919577935025771640723316167005872298744738006432242970269432630335586557756771138229452717664634375916627101519983181529770319585514939306954834844295684830440665924110333007000267407564840406322355033258078510138106814092576688071210590413970908204139792448334455667603208035834807130393863761130227014490468454359424135658494274003700330890933559033787388645905635305830643257929303116149204110854466928725578691835944542577396732875307128087132378469841290768437908347753835624006673406779505818589038016840046426737521612260214503644690922475504330294243535456613809399519117622304125674180903079314906074831447284441802920764072685163240313845540642172344795739262307583527098265957956877127024969014225320543218701912961059644397235328460119242000139184195425931208663669493683531668548659729104285895674711892652156141817471767045777074771205595055957749654974714933119219550940776422102548990224263912081999021924098855749429315881360426055135946494737413072583563467800141334061688367810943667949233905614624784136244318715059147290197392893310064139681217471759468849705757298226617179511982081713372650228703528895698041612340268469157872176503820559546730506040570104195031979702850256381816630675729017677360891917475182671073156032002618866234169842798091414228695490032783181615888744188784773495673929652322164370922782735070370970685588886210570874705482002640226295413408334344242030603968150889657660936861767050415993694267774755227898697157924597963540592123130046588356135233928915524497154841485394438784565643630249610957719525477538777693161434904574420145831030557244984835306341450980391126487090093787723222538784369078789764206835035023741133246402851094940177333572387406614548181143951804616634566291712913096381168993677172687495912828372800256008486302474350227202466281776479521841545248217508158123931330797147408204115463735467212364181589257749892767476684009985913643984584542569749694834102017452389273610178790655993068795306946666090821475084151493808079989168294188281443398951059070449991991307128336936993448732173042435842884465279938210105353679310461797573761739920471762325694948583200722598246447145022761674510338017528054298168410065379949914916504964088558260890794268990762097533634552056437571237616851973053354217722587073920741703872135320429121013847827042336971833952848368085864826855511263918871272186003416748861748952971680636519954522428656691532719844577344148689159001159075380093332783919041755596907560624788684962618415612429303902541932578068636784409720264017078191779400935082984933521194793169296329411517264619248390635166768806990752374355995861920783672361566273803969782574151224725709110565057412750894963756085992316090602551534373973611282800020287198309290022514777224379420542998649279325380790734572955431637216414153440746629686276556673888975020390821395079532841000713166987308146250618204413374924441557527821630660337782314335221525896327259828784946880746778810373890504560241123610108309516310244800935275534585581652666313319523728177765803252367342992204960031212372816771613366872695454964315544284408644742555702739458671040497701263618169417400871583183959623979802592624184780039816140618570583453613105995090909913730582944400583981446548768992172403709963321265449009560092271923427163017436070849714324712619575318853983421825663333364740381150003413009502686996340877457708747097542608196200885375189995045767323249302694262892620978029103053225900285308091303568214149998420724773790239350554439835098657105415277251754306501702856441318955078492101711127581980669963008843669803934681420501442813891427751448218813666500395907614365260175930901519824138132505204930545104724716513972207891684229078865280892637152575977960359088947814528360557732125183195362661864424305574760850774523964612239897320741041194731483489973256193443987663654827676519072367433889801558600028553686599184898027302676310851676500186528516927176531047680448643775313694349322000992949240697676042929958948253203043629159525809489524633475059655301084729337400235854694979031316450292404311786033248079119161726844430427161745213334304876658068038163282495608621590614935683032999676830273842144357488069973464122930649261382797007405133492613343314168183813249649802391736306859192277248371749537485379872551416246306112295471221449811843635698284315926207995481876389939132090282083302915216892240264887994557683461729087136982781898705574849591832477553040086121071505897868612670867338339768413944446232608879994487557138831352360487140300729037361644432561329421487723477355963166364022002920706449957171790816784202905714151271291549746963280091785908746299611894943933839342700908796753773428848179536555770431659343678852290103542229367841431625968634118891155062444962228696746459136858635607120864535257442858719664097973154214956656698138124683888661551363906697412948179933174736879047280316086984083106891869875685342082153729742683351027935451708752427266584443665328682510798242954003551408976105524635406114733202364384647792915450417726340554625084817670889059806764561108380724802757876383137399680817293457186393344937831741749703612203527437723049778208130670685844132040016977014961946159056266480559898300418603815579626018261431571270620285849750744682408113963324163974968131621718404478480213853362036963851671448597511059158074235545048831504366548499754084585503475592389440867541743355567090307955430140758651135141658677432042850140970764088956276590045674938420098532848219790201800573829963572633163401582440626259144542984016381689748467071260615195376516968087125990793853732682975450423693198210577955589309324802017340132034711065923406179531018389493915539394065509256610407567244279906655739929782060806705064828347442325060026404994467075127354037071131582795891984927941810332093269242636510131987306028450018688050701139890660632078791843645059987076781656858018087478156660534746961158110386302667392673035618741831313578442906910802502858344956624131431333797917511121590732676989462092187032448186336990231547466372867870057424029580788263417171651210588579039358005361373314362296916164177560707786093052723378980671404917671670182997718096874758182240062279215943472490997932909727849946718760648295418481477250069323457079353422126491749547303482001118214889116643650966193688239429661845046879354873289258991400137025154420473900230642434892514330781064132243087217943333582897982623716437674296485109053033016367270660866546104646622045223098120045050241414682063998950574285275254156234361728598793462834336444772183420497055256034662772460562735159745442984590282636253967034880577846278371471860770133559042994432130401684057442887268054963085240915572817920155757779127992194009181163460848424230871020303349068420320795776442542472988723008567312255073153608745164742059422410800738855250900114277387487456633113722274748220008059201677381422469339460351407311111858540258134387790028650935363951371069282108043315949273150790805262275708157803114660370056458929596413546201383993623505981758541288560144851864784041694944759650394257399223684408904100333466155284695783471434655241998620837900343410897751992775046279784133192059306187424337125131087479033173538541106486324159100591532619904575207286557322846285509306304105926603295752243884683980121365124917953916160098409586548700516369009402137118212827972717396603076969047511870780767405202152108845355476461165624499109472216208541746326084113007559345114428521810121111353298672364147027738810472628193049805073273390448487826863070380230540665288969186504320555306932111150922802647267513942075364217708752228770320675167765968297372632559653407004322346551267129929204109270391755466401378341923416523228214263545175488833693466773498225848651032094497283355008534770564200276852175707133279093220209665448924146660676182492333385047266829276720695637525952422558638065625673356107957328349321835071541194119352611032709472357950731877829348788934823917434523436293613512114835796459887965911220409674130096243222526208918602832508057023547980288335246766493614082101949969986789188172047669556364647894715513566558360033633800502932173467597677140186685128079678047475536499192122257185983001153977358571108880053552909076090948731203355551889084329573839466133674822727925665742775061184605459518945335930452750776665040849689261584322265605100314938812137762623705724273956404162853892204807938022188187361235670131274993897606420374034678371375869301211594784435235567043579159247201591263557453589650640563913532734876010962327518741290562160461745473908051321495334769164449644024834885671525444634729556816166398904358728755687191149536688132046288270132156833576522332387496139675595032202774247760137741102793103210241665476936616945491180665551944891447152824174885884388330539871344751094297457794516328985224960977818664563239704323525931197425256096010020519944144231849614814495580024926063794480083209269102344095669846547489968909743141694785496964788515718343805612552981219557380175545243250923628794059713576029969858467676317645893821660696439508407071617232187399044612915994933197016415371317690947084282658600647245085076111529176251357584623723266685795801456284545219357052953711178581884136144494773764306870107432027295484874094006790379371501885276667765657059476516581927827183401816482596826389857440617719025440386457416001225530277036307283078150141997708883416827832661722528348530246169153835128623151204575868984041533088773508992964743645328341785483334284289036399899229109086752061394513332809736685587999194654361921961694016018246346709783094870394986605935108020561694034618924155802400608354777800636758373223425625113922293137070486220804773962518168251196776628175223292994725609628292782436813402646516725836905417273046012235720510045111781253804517421231295324936512095431552503594029168992979687986575257659175104805065622938349429376115831703780195713583059761242449353261303378438608317054242882744630271947668510047818991044864406527058598593967299134623361073714741919688497467366685255801124184761100601744915854253646032605939904376984683751614705305854976429912595365566390506960605987863671926239865500768349815025103984030321231368998802778273724208712856339704000734497160029372117114369062599053504729542948224423076261880403882035557571685398737883576209043054649844858485789707568777818897892030448807317432528991355243835619235500345961917871947713611628860090734091102011918144124779566018952111822261669929613106444238426451506943901663086018817150705747651264153016807013784715325031465539567265358244523744319907491435302339552138501098095701640167205907057751695461524771178337499827995415661376807724945458098754579448735718663091524411100869132176996118896198110772535792876631736897038663408323667493379650095599838288924719828710327182541674557093049583165104814644628114823505494758000742001393496496882127907717083961247730714121504428221552333667200368758198835705096312576570977274363746853700940563894803367424544200429765460730817601241798063092268609443887524520752595393083526732064365679690509573068960741586596498637642628744501619250290444221836460084974201168356990953190579968367726579113731782424228710085771405875190743252552258870884995695173873176774801445159417510633792184814412706341446826722944834256382356393933544979017040631262363368682520981698863360851236619996105218918146058187762635679151415431627226612596280288897896369277508641822676900417458674839360707594584562710918455295660415820983784298127385576046130982499832193749016640575469301298273032272163710017915401902507226457844867143073971931741171540006000192023089477086986172331096463131636750523685795763026839383984007179764483014493850120251593331516773553706845511844522939149674250619316619787709234008145707666840820502349627607446954961599209688654218212880567381843479167237121606512071044001364807400668033016279780318416315117014743144286698208455332412275725421571855830052943961198138736730392252274205610094490075695539413123519878881494475525083720218625275037902583656443787823573773956077429885783311365013846198323012749200089746090367026288641889124918349815944422967245515826956941669712094285476783689397612384393458397003638984484624039044329426925086225764020740988831565684448604165061539500958276667626813979477286528218823664495766645988300457249129557667184474353756393693870931957930649714635430474035263725952551133994019199617960052086732624482136012417037661068788143028398040185051518586702337040925715623620164959508501213540605074877097284164231220248076656409264536570690424884320254447954965620229709350183054003303266934269457771264643467599905107427221799921616715222757745351897388281503911203809911002467845582401433770731858748075329755980169177210787859428763320255376549138389786743765378725415693479634889868809981555296308031758937640375658582572310090981593812608091749926505948948904627748402401653489851657941876807054629857942877547400857613273974870642836508437945198798479109268567059104964897642251424288617328648935860756846256220478522504809347510671387659082888942635202724809518590992170486446103262980518446117845102361906333383948143848057534529895023476579065449301730811940698589022770256300084122075815382148784106538793834291097616751146873656655865785424845152774678444912296962290330498160868960891206984538693396202019931788377660730743973103468704428340870418099304214135847908477634345732316898629272662906670125835497656885561742431196373957071480980661842672664942420952537506532107764479590268814648898967341492480099107359048106364828051024047941320581804855276521460414026499024925691411232927849284637192521153456389724918935633025850549286540418896794381766240810777418712572220412710390929344713254884298066227888669812837974407953454680767298750279628953416220674980318527107885245521624745735912815773938481644502884610914309095669269243285023559716293201586605512736452923836988502262145448446144062814422179523194387470874177746678952811617079373871372990149132934407389819992176569164981314574769809260994976206559174661778800404701931357509908578124234922273630058596054121144893303154397122975112500634158679637569791902127905813279626217335189718240209462063664304873057574507412001282436674338282104815852852207114931823243528817712155008872610165398717063581213323330812727662072081505377810824462569957448520962001473873335596905480304720511694968016488902133390691872676153569155657499819728160268037608822241216562256330443177148727528642594108592969116938443833976067560516538676461854869009954934887947655908079472455758637776612208787812406898302993810017050418066635782898744941944409870950409942178547758721346254085598671783571961246001966282146986904793591325216655335767009278356704875756054766231608355451883352459723607808631359199850919211225149962135030285062245243117212539725722589439814912852529634635081476126433796377654233878858247381010950642806037158284781981074048288003560222621183377134003437180311033455347799385068863411243908756321552054279001637687498232944224612041958229043772000371082894477908385142352637206481109146778286441205997350619365684015663536294037841183874787872626162027231288629369428877986935106289281587898861653289880767724800605530941838573656388261676755011010963622947760515385161261302082126682951244712694397023116011172833506954661262664053359570324245408059761195536416832037448563934343708386365621280685214030467453162470593961871694648853219661855439802857060607204455021087085980749682808503128546604507470712804540125898205099315635583347468504925930941999002968169508430771719559109787101493636061436674348247985663298688839992265013485364830544051746074785001740111118920833063383878028916012238210159359406974711147000139623857773417166019155215354907288182795457423306039009797428099804320523023717830636161600854827249899623789456943573522693348256729063035096110645737098096546007436521078872515401930004574560082737438632461439296185101685033302609415045060150676272793964963022761471318951078199132815609778977203028805873166012121395104381474799916964092634025868300019528382493384199916058654610711400172691937918641130826770048640460562917061177522695126007823739872376207054595889707149861442220792954257993919338715677121653005040260065733077879075694194915810671602672382149203291938230279415100276576234968288952141372198813164127178632774195272850681145162408391874446970252763263289090087675704929299897514871255025571843548819512294601262978623689694409903439371951176453779834281211667973546014308994079199011869953816429688233494220491454652717511209045764127800016544479671844178913262391254943882923213569241227772890316787922549668756355204565807412145490412212348660953003322453531837812226077886696824582871538456625601466087884895361305532595882680061020228600268982504937124322963604004742499738538521107164374464852300602208873003045366880925112859006934292647885094205001629396400296534751999725824640584294308699909082771676543492106713496945706596552430736827939467159132308176192738328970170301814040254594956112477320950583457531295851697396834750289877240824195114432551426349295634154390122662467675306544948762943769569610779695738062475269235305561424172805780295377215675243273343410694577618463028447910600942076123530444340601797564747471711549155918741134819915829346572776123596027962619125145396328028434386111433592163326112492811532825156118526240071567131598257869274096816633845449826107066540557357750090799845273659472164230018386562214328196272531776147869843527447317853698702210581472057590910067472405931934900913800186125359989888987771719828192477460864977437357243396066868715251676683865206717346514626829312906938809296616099421826430051967916475634398737094698724846972118724518552696010176794204573840999934720578972235047736427149305064009537483039466204708771575692985022012744107180715243801167474116553032513635936351439601938271472303796472904400307276067219687857091602136003736338920643395488675050612745365638810906494152401469797617852995150221426244796412691922957329954040152881322780957381889482919733208311990705975522627581369997025856499894947931840144706315524602933760138350484786151783016846667159334214584194059158371794680948343273389634789696473341352182488889015941574358407552263509441406078386156271353111169688942789321524120613192321292892304174120476475133298193395270662437466795471437904326995800978085668224300521936172350276580198690807809525756125637294555952830217698836637315805117637792394671548194960566452628842935584758252379573830177216225018766788804096590659930577272897495223182984227634773936027638819686453909904126317824172097201324852106596840652309318214728095330291952718267089061919963325230914061223486613634837654106979438634036534098942042451773879282353278787937021445226190681169570007671554790039634803622175020706996601328858749912978844550890220086693727073534193779637650285314427867704446531990765571856820615879917439999369280557596280639911245214958192447215697240802296827307436696541309135263952273555172954910272461470056014153826574783010728376782637736103569101344807888584459057732555810981558053871935356369306535891273712756239439687880282185739631991038270723340774101537784415524042581144126390269452732936267004893094739914420400037239891086985983604138814518235542641067218144491426946088381169889917404439081119342572411075323395993001755360869678998379012791312410001419105364071657095999244197721473674084136682593727081004306076424103063156827456046731304477647059632322822179715334407409865357054901753103892006324843071691040027266601898796061357396995540541646509122939533027703627268661685887712462574863940358390783374730641388332353255210788886451670091503660793084604161736920267037672132734960619100890406770237290122937182893076178660786088504583353149621831670921378165226626809334570640987131342960072119962980362183363581752617549874872740683351102844769919138797582515988457419218467326748889348483160969276470522855768077149609131671740568069944272709980564338715648028200563965110071005242201382779518186051491627377487483936662362266895217396725908532482509637917831108614821407516328412136152076642966461137965272488936946201774188583522583330538135438273912211400743540442595179307203019422805005473934681511192050134253921077253786093937063847143535374643044843950723121604754397170619275523633004071197913689197466524135310917149425104655666852946547172820160645902137695408901212349495886625087207924394482357220945607823295799959390280617637398680412357407584035384039538878292173469413578852976058642440501266870893654210764605151936307326372552376203656108338118191533418543108216593559389545233297377437197655448731866494456247459675317933864381996462418917283915263675251440592229440978220231223514742325668496669265978565923336145049801267325520342306499698881851762108354614492127290473268626548384810578536027586164388692666414178249262180759813032379963820094744749713592468962900421107582874289351748216853047137206560351790185329463655890575088989398143419078103013849417234485833664206637425696500130475363876216777945858407489952902907687821343651532967696632420530526223329425428982078652969390253481625241354465444245217024144850090038704007672489973240048810804827964747050164684274729847452686742661426025912503369894566909719555317657149272031985912509281970590373451342967330694411817867665510908658877295845748913804785806652476184726671402077134453039284972657481109881664404100687553298455815632054897156716746367942523889380922243766204250559794046444065091003188117546743252648916841541026324877256139233393387411709728678135914087817326693585884244544836735072508055850267854485591236664215477334240501065301348307495464211315552000246475473606572194966946743784416619330172502534162917665313144020884181938966925694424604678287835737571074000888764191066887157694246949803140469758652221515575205027826925649234892706079792609502687907921251111547527321187497244406147725493661675910076881145955412990710957413771095880083203071012918228769411487928054991323312640202580826039915875377847948396540169955555919531022712222595417086374684700430708852156296688857754652100350913355348129930270954478156698551114420222740228480769293778784203309227663126549065103846145182425466419342303349049724879828643602186737516421356782948266904586475618094887994451262968510455770323069242272905608612791627319940132552511581764721041349116610518372935206323751198366406416787456969589060661140926660671512574258378302812981310878925370052308382552047485251729736828050984894331845977400380246274790685389768885596551861783683341180516343275110587920425751383289924651225389517231468416086806281988118293571763369139799091813595942447570911157157418280549266137659974649610126534537132888939508364634995830697116430632254719657473259422349350662210308136420573522278054196754884714928917545902910797966695851685658165621084433333554283273856928142346047217062576283542132319821748731568475843915305838667348943822658468833955917074445305736285300284346955048196246491330930478120441834652184185689801212550826012446205657893118349622817692087783184806682150295057276172212769047136118113380601661604592747550106322304099451826082608719046556838201397023630804374088714749944055070458657433336279676776767390809406045053679569265539053285273063409325750481507035493548524178284990736731688375903690711847677353596996740188593393841310232969067458443351463285156100824266238293057826775906729911122337023460343650427234829833189215919535786283982599331456328215309404769871945192801910211476578814059856727188187729379787536564911943754789236482386138015384757827089589083914889289111743573330575458148932170904497910657599378423269753501863525643459455290713350921385892328942305262460524508642331388898675850728275491342914821982826215736856765201018854120426384369612992966638940271501553592199985659435418379913799735789281444854858163087829980744067833270393757174563310833306334231303458180288825626963254967591446972881815241659238798503353302328802890600943649903093732742624628955222188020207627301997881141651092146395339646401001075974969005999738993093045409694871959519400225686026463526870433568482948224722378046478906448527569414204943937910657965414891000571401970896306613885666584375266128495006641910021629698492057261707237579934369556779597930533969119474154971318451503093652023773087526299951369966802734810505907635277280552320073343914757211503891968739990517080140543978486570297973528687818778710980837852512526684685226237365959492480641397839208980564054217238651483405453499650350066863992408849636719820170586202578603398442608180994794490013964087251920063296420570300568304880489749264328495254945457243913589532224032869754172287376635501751141836221520939924614103333618176599338590558880723103836140671367710665783588489545792747205497035538562347586618960009605932732651791217198506097498210902764636190177158068790867284827666947588937041400242634320816598484082817842614154197204248034167099145521324203884297117953055812246630244837576750128634431087652896923133804687231312135522211071873449015047727632660398394904567639911785108355553370948649811786536070317209673267100439682659395768751945447581077902009788926196713967406272923489513004672991039801554681541196190375018571775432022959845235068663419587064847594776814101063093451670389267482334865511037867200970167166445316631319529960974763059991897906975202714277042972940262360518241720306025180422993802381030838470991486354928699614568763401723282626968025168522329720581359268248890622023517753439476013434565341546119614726922644528416431177791336200844484261834343902260257851804920343841168110773172355647467150706548620923537667172069871339287611003275941662920543720101569065780780637260607573652097798911305766031379225954237676010614553238223254832567458364913359197704663093284439336606634753275337324402363507364899277760181982037223365658529077450739688916717791037551876376670978280757692344544991755067162240609734348968072958603475443057854175497246588035516400177961861717883618580679508932512592631883670801624351640661296128347643875221786978720360928171965865966355571084023795180217647478117823650539227423543168274032871843204929382967973833067970215658964779263874022703214368123744711257347317670890321065996177759551077506522268680422098879847045715915533942982657041559707250599045900724905599789836479953133250681038932109201132154842858912801173890001299921326549866938199402753656220064537126589743487244160087882736564962313112936538142326214224458768909872701201383317783019176501662507233807375047667182367964143819008418643717943773037985945747434385984542747546360923431260524896459924440303015635619020669806328760541130450763613164683998055484058971262906718264251436748140261095562165073374606760341748837494680907756162571314724295194468336662971561922775580211535575367949046201955181201341492529427130926468606757451920518521069147638645543302666339291206433597349900191631904473906780536477317373918006966425123460935793722525442825115227937680163348876686762773430984621621191017971352558302943247019523862646745493163295818340335587083465098902428561859766304278658819627692194371824563354426194198666678080517117899112803016748940116698531627255513158051890236380450286589504049910406310810510444731606306557737609275420543948464930501560187858475173092413329282044068608691730561511594847008066506254438989469108680313660931434021521048400483379668260284804145014341736945429786911567700980556159895907833643896064053457825012939194892625059559540080932076032345957229547634524217478993091556596671864316075062171941034879064617012475973478094219853908163518438447048588049309029455412063066192450253140772449550914990997162668983605858373961443594474225041804157040269022085676059832263299872933674006566940845662545089853429022162264093037668290042596038019888754765974262052406769952100527577001031661038436759055982823349689998128878781917354606269041472486890421783723121862061090668242562852169274076597931199531907969028770764002815821114407183137312341383679524008300093553320754233766438983381437703869099031173285270408625651933295662931840143662195409878025223338640056344934144766530313131396700972476677210417380840424854596716537361415338090318496071973228297775288780051793771568154148394235427949856251427768112682055119310311621501320522501014979893715764201873882173132561954084522183726745286083372570894531580081198206024978390082675508790724730733613985183261659525777520983568280197585716676984737859814456204344906314647857394227484818077311813600737102297372501706863384012298278301098677558503692054203271550624074713045902516195167952813619832269148790664948757385484197418074878528573299150598520159079117822188967695460401395943660020520952471074662733396329492530716255799078341747741646099376081794006614770269854433503068276256298777404326386133365235808280020956806959566782571101386455661991215895304702121619818872712697105366371536512887131926661524634111847061922329723294229152706805488178305398253797866257932002968836933335843144552351612203561078685349981417890456259518454161843892702873821445227134233322405257000109228932566667694193715853876320210768223260854326268645547566579006605820649029636576870423490907418531994061698344619529316093746684036841157706608330102329488558316000914736201442844602376254739832794492457097198291147129001776938247973796690738074279471972852977133379919302973798961642204370125393506524758972102190003470566499329401855279760911891149087736490412804190966555999007546373270055020191563784139783637168655597443563229589581077500782568792907992689642781074422246373576407032546938204353297753502453994465153635195870366733790443024307832976160178182473202996365456505108216880159741116498617796584584741042047782974847744098047798171180973266099653866946341942272127289537797873615438256235283443408973912268035468884360954573653515078101524219203988912574290493518806520064077951191252426767529271318866612804925629859642216784184203195622916784989556322873201311376265632484869737269009196163576684744842470158437518836690624465869848998039721099121471078046537608156714075933331557296459685296889562446799526050007093409581422347512891266329060950722865935803890533706075300368813261359207589512813487413251233779893601812929032294898604062183594380915858217869212594954615013819155889997025695563529500666738639741767764981224472505780137628243803835883072240718049949441017153519818799231640229483756865162490984952844908089350833222901604775943582070152448056131186168771411713664676891467078250854903875620857983536033408755138253907492274378702893388357638793877533780664830915356301451708791273124725067205160516902539153853792905207240197198817408490482659542129119392866993782621018700777635291742649657547968368822314663418147657794698750233540099809727640762274437924043524929295858073304085890988978721027496189510902263558490931064890745467195417547200815631252936139153756652747356172188895629523922818293268426962715362021964465271016070135918514551366528694026977790516488555005976151054790421978507917903524719615016529916860459985832819222502507771978219408488533681614741351200719090678781978564252961551585691891493195192696611651282436090905528779242813541021023738969633788225756008624435298102411520280205214641931741476953814600720594698710409656319742795412610631634140881589127888997250506430114785315910744965933436641397458192404867533782669236833813893774755630860677043073549335064670784569112732624966965733549910689648992466687111803717247947844321761041351638899159983143146549545487348076323144047242692337988732026713012456928963223391100421515869817957271018078704055412443230046020414707609784664694310699395009722473424962228532742512913045032149990541837984260520838487990343333063567286158092169665858808128720638748529479824603120562669574265768654274539124426274949619761667635948790969959600993099739733629651693016754097669683873731489018761044997834558817238799008638410622665246474167599334303404369999781642669575035945634839929997297580023858870897447817718453025637688939511439247629304508163668698675114130741705140009646077673100666322092741978886557255744337033495613721666816157800007447448842411646162166363340912237925945877394886473916673139673175686941007940975769661799168669091352269708215046338118936116437387017645760609200723046997848821827023215612036258149499280577983730483264932550254227318134902745602934496595129344785221581386242319979589232561380966993360011770128805687087365998769296780721230494103228296372865490625996077349854153389741549025522513569523867560282948879257328222248725176525280986431988640497711993719952132550734965288400331996410619049081399030856728235198333088768409471675221197152971973350687516066879782100096035917173598188415085257225389622082241342935857150190263601402496986532151447301874756760890933989447417071986656950488308534320622986476254320681414310885050202894461928444833315646872212241613551913120436779704846084843251875541006921588764017683411343112379484745318848471636517515394590713980372692698700324569170952466288430321809664480408545590022577318526241593789385437556396946522458245805468936685558655305283225034843227866689147989391596600981571045673050547481434928041555076575452705315349695244846627872014917976533221930360386509649809942754940145843796981811192168901086320353156387284120680246968615899162871363570461438307419529320183757646275896858759601256053182003190438475909557723009279428433576281012370166407593454358348749128992026694332650704494876539800734201776987783973214669613176872314344188763920449634780717125699505582099925095501676508606822928710864650229589082714153932536317192577192549304977958460859461800901754019113577553285968144381902912254093251316938289992193012930791976952410521764353668222818116116063647924413232910373269036362132616246744102319512594977753121311356570276669211792864529347891138277730604963622443805218085408350630096608587847160791562463266014412877287867775498894931100765686660940641955949783082241505629716870921532936251542801694416796464971912708261638192247192728911710250596537652379506259924821826958892147331573030549653540255121288421187414273026819492076310223104030811058068182830750701391164081628323807613980743795730769931881465446434183572869890638195742555387337965971591548508767758704436663367884359039734706562084766622103947406852134233494436130613599832381897480754219822907190663792304577602796517610060832418577497380581497978849670178871685565980644953979662310788449366509925189146554660387823310481170978861223966495332781472034091678226481320645815387955886939792407011226266502790720101573710988847826131162181990071621216823373851066532944587056718365842790352130381753203400473426576299585857890998785487678450375718067719904735978366099580884031763732201158211222518795737520059178294623107717095427718379715206368811049164383042342346058543439634298183973942933493540866833169391848130539421155392197996953584420265681771853391345648887831253384850007639489114296313724921175491951959572395527992649224518292107220819040147428868535903765785089861057790405316285765426923923889096353912664780172348935943645550509514813497416136677680023476813341812532637378227204215713633980449819541051437404996148679278222285852285940689804899692588324981805968955609524162946642248712096224730570405396496478556116542258485531926494013307287999972283821582310495081204211514679346794489007963807507207385798429588188643150304264195538475827411416022935804451937021769388320996120837873321070887366508264904948791669054145537189492851989113755816026155983367296379327363544590516206259426239461072441013667576952639014115379347043829503155743513988143827212144543745835832986004758295137967786163223124177367073501207722483157726742453778104863928845176172056050738622068552084606058780920272963909466500659344217893024415920449570158132533391742804362440595973850442467537064134827782967506741901003266432968398569564562023146106582787782953365268803909981720257768865081877616925521736669976703527916993353461103742489827582070717591117520943713797434200607881163105491110046447812732076895955714892457620049753761760395279628467275003825567232205538127831031599262070309783661433231162829144006855086094501490271569196832088105816247590012370038503471917326920325542856562507205700083065063724124114179515349190209116942495911868490216037694976464063899392402937211732784086131289802352891514273801613589929201598833958451089115827358459936490395035973170025168542749515709537858249484718813001403453390662005766673999383854194556623860416039664523190159053549942028898353358675499708272477984502347392663234920246169357171572683522104979528316160615842242405888221067473651974819113478873928448242277061207833517103021997403202539925710687397712596005310898636999399912201867436119496641456443033153113032108103883891157933504059959048606222425333184549055234202416899016993815478391252257724189346158492268607303014171426107571846031413935426454445419122331267923491306021734756171445931478043387053587455064096882940648863180552111927780850511639073131861012850385215425713980061576112647745951383916465834128449182112907185298949575464228667884272363902170584565026704943059139127502104327741755306209412060677342592980876401126351750267224929266920166953098353077595428371967731814164433420653151585766160252368523345662201427839321759868534752314928893112806911869198435353141398867800610640800805294880840831954338016693454253616537603430477931110178194734447390480219598733022099615106232604863559685955923280584027720983689828325789536720472069627409017567675331107717956445599739784688872881159522297996472146916629209078452667336809430769843788784788320160562068866526212084588492766119622364738648114172298941736037535066294735314124797710131064929846608612900148810030280750175903431017201507839024451155933678741475490049135824379931293099086132009996753148191733668087369037432423409457235635137705920880905999854937465933122717498335991319469373963591271382209906207460196582877487584434918804448050113878944996937920168627048806780468450944989774776427993673936008828810980707556898916230618449762870829377275706635472364329737236757984118069738234673853285443050162520374888529651025426923997530964614121088279175333395774955126944557825331626013793581040778165558955883038962083019144887681022773559666955092908654261474384133627305332546740954994813685086932258710286399529204919156645332620648397832547005213983941035729492320305813417604834431175679893757324374754639868230266618494005926847171627422499363979506441248434818324828206778059513675428910268294959943142518991579955155937226269723791420772318051337928221143085327311198326713025531745377889555980793617533442888776293845375077875103856201626890407825918354680978233474443374130813650032460223583159265876038584280831113989874801579358626252275979503053594795683554637431939084365711059716428269835066672565935349621988002718645991518979242422330545778113404078077842401337736263319917785626330691791389869408148349035598932917509218610030449927550440941615350226393238976187786143662922104770122929186274573752727089341461475242594571130718142924388961183109212078503990817939960987141840882454690225174118086093928052003062870920958849160500992104945776928969341054793400290890500989630980674923761083798488897611124187277476745537179880647866316311686824986864809873725361538725783629991592153335863866313880231275245493015715807502846871418239350077494235289187927723609507215199645697056138515188693962196837604761751304642918876549657165905346726104099494403573907738348472269280012629319656548925742368349870901272247297288255580717118268998575136020847365194888457395410096882336001762089744833215674718851214312432830997068734383982006506025831167658529656152712334666980788160920683785901358295717135901769299478268863963647433364191258049876337194986133227673272738687326755892382086325422876105496928542638607120549158704902136001511040730535638664011555339704835184467642692353489598232108583746869174974029202210166750315752671834991492039307419872906503561903454076016036444889139229236602081223023303593635045918901500904961416367052575827186777590148120751694519719495288497764109976169373572811026548654920561365964716802700505946619418787909264791438504649568455250834462855100459570141412610009688293745370084592636811036985679862672925839501018042032491474915816782456249802573400397382373824187150383802200114572349443083805798746692875491146093769776711507200263182866676148599013382283395195808922601498627779185579296887270471073960767044389433498360495237777576220380975691766135821079131263114748385610299611052835400666593573992958154334735686796683593602523070570781583827725790696623245070691662045523558734034471219686598293034540333130311438947003958845863126714472720506528166016155741558687141403525094920939163914266710348616921557373352687982870567261743536959318256071491251151498443061175800420752460472103895080274383869244446809326169641949266456024760430351048174424944313009135554399325871360979345146126866186431695868001660419412411987762946297900728891083031630951180460972205838910033455030219481204908552522218423607012793260714016395959605629922556479147003552713676133890839656801235928517056024488521696483811820901692455602317558358386635399448254768445607692712552430084714975849306035694082858976061531616730043943627301599345258271871620104815189658427121390323982212692991177612793709213722625050661725116805579771984813328549158434303301002415357979126723964246063827401249957495977363073791753638918304658045897462637299084541014785165082286149966958562546503131858438510240625593468234401700924546258355396790967372868888911388438323996712420313537776852529892938291598586862028928762526212335971820665790808229831488374078459782377913708583274606588650915803641845624672887524242210425586444006447209561422294453593234900684538048147646035976001205901120664544275570041705324564896006279236325243061267783666624847509586445486194638271687796254494229528185450699364833219894766925903600099888548244672531469200514738625512883036267467596519503809446989458503073872909525110920818307837462655625285384975114711046089503198723840192555892640639488181636676625786754590430524210282926006859904886266474367482161999427549635649531984760641932301459221844450400330993316008835770006315926623698456706770482932091334096436312095752023373703687820630078458002966037538579740368433722700489420488258103816600732244950288456190807592081677850644788503496304577494493650667471989001066826914766897689873824376887922369443777851552012090620599401853631929200469212135644202330939304125096900268308441653674571851392873314777782700751027377393146369075410594312421426312883348076881988663460490204151787891816763472602713374846872585113379895085132200270621596132217101645114238589434945556722551259610487537967017349509450305403380816966483054173902996344442755766100884446525382070401055352050105226229858974565114314954496614837075509555388248873263296306850497319932190247436545870416798422984106003991299310894427636287161698772943836737233536732915330257698456264197273993645173896254780717694152103910606936079905973576668758640832109857822259995071815938197380109036280938866077809431239082728454799007123761983099866661120759875347587450971273599859357175200821992968057663217395033091581885185330750319655429689378737279703865706565591557701445324335413034128054754309466979248135606447035065530812636334852395782305554513012459759015673999788069200409801680318482795009062311727149505923113698816248961533908044322338381339424566415603585023314493500570560037536108296832159146400942824857836511744932606079874791776112014975240040292944233725344536823050007184242537771825568539496305600041519269391131204284908972378841111742473904610863994366918297415889195777332106923809765699611744456803393603802241952359048908582787724743975527573220409688447489640197871006262448021371234080948950608679384889672037997791333023614709961325441237695026802143620942035476485295363492822418845310771546953915964708265661309501011332340339287079024607767311276501586045966192584812714547330895399092633605803847868891527169770568694865323731222912357156469143564002157758663391082713069119851995514556328524089661821064046683034860070074014097861590757861316476219982739174810192151159727172975221474447196956795657271638586589400031358190920971284968096468243500679373862656760246674262917031044775614593674017690934977553711486847248421055655445929433176826394533373192814985214362913870071212285710156196003861896788162481378463512119478839969523831252543509159043413866029777113715959740388892143508297640939089769773124395575740460048920640010635726832037408088809330720271895315436293924988567451048218996680841715143684291424338428938116447567956727009987843001566250155314526508492887034400713886400459241282025581063416528376891419882665350846108740415772410244420820711737323931061859757462109661088290102909251198077161944683049589602714747235050215128874405758694222298685583603721364274526283099281954612019472024426012523381731348099916871265400842220712055335239330254755540411800854010603641127984753294955633251445595212946569901505170802096874372302174188870386262362417250263016137924208697544097665999419509430953823765706994742242874227219474367977754395229803255561163031737892515190628769463769963747092795324056014082682109795964725756049410373825628649797001286355350773549269043401148343417021256608122543781856216279207372012663905241970590998634343237980808584540051162541707255735807527228515954899104288394887148791089205129203293282129871286111446337401982012861734535626150352640224180800456742491744226828629953351990840536104520376536717181335816141223383829884467780218272895731638084455987358295864590183591786396831004684388176469374805180142148874369782068350558008127820030576366871754211662325946589240753947512664616894624297423044139302445642438178612481032807495613276310693420682241314095435340717049106084657025424280416273062102032378672718383583042422795454306290837443454525806027794597346048090873578333753968919479331795846911120757034562764801426982086357814863577186265392608120331293489912874765666980617650770444707313479217499119909926085554634492923580636954097197092109307377253561223701697248473136008404316616950695829949720146184506130509160245723389429942813569013111098327627772817171030117206531402333816610816903942338536489230827707000931926806321830734458510422422911338779133854239266732524661265139671703854268640636452908003924382210124676917460345770863068370990331457897413562610147423611256512958472100624418582883616625039184627499376462597588559736009262066767018064792349459443433350318112072940242614715459000207546563873029552448663336734977915530010916461673474803921449259430581490010639767592571885903220834933972025899705001269702854503853137022681547732021714034041419623541124381722213256603181392398529521190248579313349448731832274917268820132748129847280094142514765159653961135484810770918911096918548068174880987097305080755292822287608583497290967672771645640094675912188649461121831964137957331539267533769983079474594422816872008340981308764414936713828937471909009057819010549277890250289751762810776188345366226274263742561346560136829684610558861005926986874541090265754152101899496094694276965939440584392065380079352168417244132964567253789743419985772564418761728172141148861076514848697464669027875765439836267163169748558353618206249695986480522097041632408911171321747335456437658712854361106942119453854387389578891025706475660192821664192230600461144060230329240264545860581176932825673238461515151867318320923381274759115356298609716247043443844610203423468189856976855201317809143593817798576127135052579172855156783493416195396677814439751634092830662059755812405559228148936535784096799249365480226170028142776495846194889663633873142120701908570268911740028447602785592397320581398378425644714806778927117666992301686228845931849040093595473486449476206547849529599371091403155343590726312007102351685950440900999255748873562006494685267558638970706329252544313921639031696900155223439528741941236619572544076357252807154233935503848206186005633118845031515931829954533694364429773768609767356772460581184519505442670534787464902746838825040578017748078344753404916827149457923895252632931521914236224102907028729469664750324465108650086346012896936944407559235161882873181833786843640751007889872072709911466186475533682939555590342213892592435064434027102788567772631567542181019648938536535014182207054128185022299929985490580116997917992801792517340146957584124036799436134762568105183131915206939348562664098365772005576040803004437092175852774496576580191316639990354442055455116450387921383830187616710073397156307028827723961556091130170724525306983802191638087036709113723478369938250354909839740670555585787595590736243012318943714246226856949093529441793687638796891796877039623501147218038112383022242827675189560736926766113661559713023301543880292443618250934214025142215110047258201442339666575379093617814476181497047219947196767779203544710245853940934951151144523755501150425998378018115785826520967382295677696006500552362854124640028431528018936041395053627937312414670424532541241491258681933912527150961165695826290046553914974473828758072919987231340012518982233873119236175097943189082358319704864170471424503545457114742965167957596752714935208217519136938073442885782981216139527253832497440510162809583844793492998233333683665865173679431378185093705111102710264605718652098961996468296816260907198344908986570746954194730474755892393506791271850427027043989942571705628358095976914598904541943178261766136114095087965437726418544296872220867892115598109611828566503742800530457140099344397295592660890940416207737786824807930955442630587613130935661638378932986552057775881795195140513497192650744098719866690243294081978398492692313315088963958469464626984440481328264752756345940600956091838369975251329761435948316716741628515454293925762722937215074112929591471325111344849118408512593906750061743985809686065860522365307200447289117963755088666677320338833594942920181018230199305001780938564562746191146549183184716237381595233233723462237987079276995236887788995993723468693094929019045871392474995338512766331030319762045190831520424046971245416542924514061758661155657047301805077475467600543664313699913888298402410443085395147503784312945950194445267196545676558882658929432426334961305349946620022249363875281483395523241884912846893969858400266742619046336627821746530267845812412410521562383018640314245091701215651341267153690060897122141267010343491012246453655335241949990900355098537565986593823586098721748343230705853068140047029807558326763444584006804508733217483566959661424368586848011547928986775720469843964762848705813929390431472009417531608469358258200636877246735090055418746338432807095263208201821908110475410334082716717862854435000787662208182080321322032712519803203712903891361929400925397178559509979418886628584283700157847589416848597814245291444937250669641586015544871226736195035376664114938330864923598244488266021448949742057955268707925606403544004972509446298108084704268549758515515088970918046301352679406886457458938787615674945578043005783914459930103490896354277305468209693433271240330697274949247438946052588292625746369760040910066970787422930698366840266946218684541470150797186665333145730700556930601822892428579462671206121509331197058912997674831582269795011427723376467175834931302654816010637118428383637165562486827823077636090906502339753028164303189591220772082907371084346171327749840945877491337315855894549882194775994648449194588524960454556095676162073516450573747403118572439146278943629278832329597128678108248679624464244514751735832143348195805017986268162147726921699216011040506564402138004645811105873557449695533432324549135646790464781182486140725688225756847038289373409646144439770054707221096921489187296586624856943003820536299945606073717113607359683040301589736863872921508736587355828493670083839742565920191637416130071928223096480547831955984413043897389796218248138128792323018120929624471970643323810451896854917530412335779170924809894634597857354036165395755826216129182479894879627398400002555621795192289329985711794640647857043821584891690164355021447219434472125240256280730326733231880218339242434570253342132403879882327052251207443857199078144521727622030680213606546902116751977153866752261484734390896135139218374245104083441643386895073084171591111545199752229758690699568862677184810334582085738683735680066369214414599889608834284077703031351402819075995372987543027071951983794288454390415069892562025124948279889874134363550564805906975300366352825072349513164691058157514748919157923882165930697592209947973307272731245097598377257015821905155424263217693813713237115875704591274455762221360128708621458882437961930582004121983709829171688693590225195238064282434925845528930720925059585954403911933492471950534947715697169540176495805595255390823123743767283286335584000527233927490908121578151957798209340205911595073012773169886195150226622246665147443488060518816254143835669523360847805635810090850119400767821024088036757780162368679503224560764028076509790679886618192046874269913171239676506006588759531268204289707224947178240892075826149839950340521406034464530952908753127580550395668614356901926037073862337524304283838978287843366133908242229495167489813891836145797704871724134702313157917130915542270737709673738870892163022911039893028300356408200832951491345547410918279028921945590366456013390102276687839356629129523291943509822573751875491949883122451912414222703116380902869544854043901424321864947563316185488287235803142355628614669888791131009835210631470552309580310456938545656440650573424676300448635434777660724345087909841728178505795536338071503573807988741907805494980903873746621974808302800158018114594406189601006741606902007689792926291328902860451696750851567498884001142017060347232578054625721183941791227503644970485619214879942984662228894002603136858359438880438217624089249848706579539894322906005413913245510997400594900897702446854300363437819763584944976074368877724806798173438223145001480586129733575673967853158841545634043635244222104057807028834769358516429258076608664458951854276230146909770810761945111427857110685290867855774334977923723001603415272615931233290780547434402774754439232041621921482346769588462162557410577394996874475327070104559392560766098985330266302102292165373998170743583793095716381094277951331019707157871909133719187883115830826976351303952167938608646522979794938613724952361016355753698796698478921695609320232999816165649570156183519242506066730767645593587120416867067397826662766561805313156107203395380131532920589318878047557161241675484149763609347673602017171738326650235856714490985305210917614685076389147115126547063344438706229334557485660236580723263382245150070879132998812921648668601215013438443901634459266455768308899214113500364582829014337384488162538560432161913871593188433759281243973587657950949127075377722713330311846325574383319957521115759168220002318866706912889902474200844183545311925248453134375643663280214138059281189886022308531718934166527003715996086728964972765937111129330229678171241548271323399894793048309076733146186949481364601830114520217285906297050850445592536088083256044466333044981856168213156665492406805494251921087598839056193677926970514385888164835634983707730293982165668122995703381833110435395912595416340149340751084268771749289841957037737240198213163083922850116513798100623997624407096126294313512209013793611882138117877172859106302330755887986290913306175875051784242746952396975745147906183139248373820543051687049046258518187514184890979803927585976893328576074062411548399546299212706177580581025891124435760431679738230160681846660795779459260845901265673808245596296026423877928233610325858517821247833028618972757597994707084958747476474604919295699660914524775073245684209734439331006999732466789246093180688299629980383370184373295804964869518893521986521104892335280324384620188476160115632950390495517786955089004001350158245810401761994228463226821657757416721915468836616260774588965501539147999381420410221277093822697593199695968834858522468940034609717220055679062646093747648951171669631683863206458897158443634533243800278053520197955304464356012044006841415504895002533116038171688734759440850354873943609923364937301575025603525343606208608430727076672082155348855122748068856586435592567165019486172760684704493796405401953102825290799265743039243064467151184742238572756620663988169660939589044832167031624378949003515222424161459574268139881822666848717634350141034335554452081131222252738471936368587073618609765192291835365734144285817579918806435455797418444881844301879244811623243002990239855099686276523549787912411862456734904201776487039355081366732617277503954988667974584234761965603064592113263917353205971879513258305597887443468744388384427292748854513376226680393546191341287470429028097764508056556398637025660868356526364575627283517591597023684235885262081329939253499734167864337058129681700211544571924133178484546394313905991851175473233259180250437614308358591769807135164191779561867832493130372735321329738792110411123763738494426294822311315465480106645518536069682132709349445797442354741051922368434141861171196148551266499585164153604836777862804518152860333401283784378368266654803969127538769024186491054050253418082235144404159021527311925075186938355382876995688169874753651941619978748479243172068458050304275412201068248060141396828835235017243438278885177305590039124792809492540496763506256511572216961691416175495854115226546256113220806314665163208346756080280951125189151344572682520157619269938613439493054703068803332916490064238695988508703900629558109662853575535463318990056411347743545603040455804193481822748133948838108192511637904498623394801165930420916963586214444750314384717407905516881790998283644335689148088609254634642881517660052787041977185871314142226135663208246814888851471119852208141958197777129804623511055815943604922222327712594790835518097340076750086001729872400986482856223716635755185488785578432077657053554224397630075511226086909723783179953424515261545896521882574617660456811136745384923908336901305556664000343783931156982464520689650696871813731204100679956842329181513657897403710876219127960055201445278337591041373208494258667841594440291375344338813140072301034058266133802193576945882064670686985369420404377269784507415844939069907382256850788671767520358438540112690556496820226853720322723819385194621718119026358001984569514865762149025904913537297298477608160906744745305320620948938421334969675297503306006740658239014178948007740102505297645904689790270109740556545285995526847920660324613131113569560436674582197753898761557084619798448651009488699872039361555762628932605189422170627446265947710312121631451753875584759515542148148922472839900377719461591395611383313128435968221881113447500301613454753381452061096797233337695239041591138620590463208395025820458434879706711282630162475437600057461951312919824809644011064900555715667294335117498703649837714318932769063439670101792525820126012502721410811815256590197259656496529291530583543871527380355299339680455919769344588042352985500262774140184038879161524706001917163492175654927314863546125245123982104354173821816615039154473210312467368510849505269953388960912692024469524127657272314182540008470328741007850849834702243335856604671044718534017073109794913940225379733627922388572117376115770245798996908220903771860078782105531432968673284207387361709243898327449650834713048304885951862409100641987682139656802410454125017708640604436556055969824531935889523903609083242142409176223695397647938606628936871677555465052706082121124285038611301617101981955055527646248607028752404003281462844323976984646152741797750982667335954315805102349949723587631969584818178905022720427511929652840032375632751297606294580460846837778997853415661976658871241402080345803667523422013836722780877105079176449947930597712144026843694645095140260622782371371192123420782328150308738884050822071149780357711905763000824194164237694408624202511844787373503494911609888364225534437265202188574017605108903614880142146016832845000941214638777727429608913257400403115841178110148327357932357913120049150581863359692204135961586457253187347364322839176262355331816329232854860004893215537529226382933631287243124806562913345174442524695070020962961296982657809621390688578751975174366700241040750903110740910401421089624358946160860646075830201024051408868043848210873528840375315978546710212110483557479519050300020681640228040915269767125415672098935922200735920257292912230542442399337798582454852073397340238931714905395343739242105291970891934568321624293874246468386627850309406059030769905328898981549910022973187448367096651463088847003866896210449423898196803950151368265910289243949451773913216176528365570115013665947860893235791435572976090916030143324177862174548926672577805429195951005218782790351121271510820309171587533451677129138518569622954065491709486776240502241354176157080821839916529917332020462281108798895627153068289129000065732962090636908273578163509875235413693732526824027805777478545894333098918082562378053234452572679848192177046445704052619539286134424161470666579551935572058486778397068953463780358094918715346669154755543961493754758965179613777836622094232243609352896124540550840009535598142063361507087139960248744167933575642692959781546969101518189097282949226515628703785978182031577188606944173674785474198742880672933744360882755572940694971590796549773759175267749481180192265416523907453579772835796181104001610883624064394209049814606067615278653557498776032102112814834457090050097096919494759332922993695939946735507123600197246855584499407491546563365896659766656664381792196124002874083080022571266996784284230667752150853553222200021442564672653147527779758778989976759200477918862869722810853413190573103236925910966972091280582588463007554970351927522346335203705874046347188048869229493208626952687886793858123364059715631307305336040075755410449647484142415050976731454768091200400821388722687811669325440751364754900147383386894201185182724662976634086446479244697511946506143068545184380608557093663225629724781070548515895137364457662595615064398141032187139338224956075735372855872487423633542963465498248962198828013575931830255317830831506646539370643398898030917432077163477762238216536334418749592255327933045911304773653608303292676983510641435646127099867722040831986724722350823574739540120351633675863266212044547096962163516112326510887685805492234814780215427422626422824739170682519098558162814711655100104375951972458821052632915854948171350718408752382305246609340464223693725024547759204994066478382015530332381814768030831615236868596564093837993406728242226988747406235151029617782476599346115785974051539760454164885859188676317596891518276996206647316717328803634061536732849744353202749181502900426814977279269572836644574519121552575381778723918975642561719057101936762896916140506156969934216213536657019978837389059642413892389790247325790550677968328004787700590725689219987903490583136390747300442350464455191241126467551698887299265842210002751310174673919217366769651461272705004606053144973492638729692942270191550001538579263020389565236265148283505728893300330316541602200326123155969820921230895280132567996538686122214001862974494421057532005601728643580052598870060453145789650313123134673647131324522455799357456959717697572039914287590773576003476377261164469100029206521632403565453664794331314284246386933546536895912982715375495147396933839571850174683142351647541343612153201067931597650390300304986456536535277573473414542628331255584629652796620580220486647239109370488517686979830037250302013495121761937580419419576037950683902988976943437838621860840907703012516082270496276970058954031792712175103235060376107913433597985856630097301206568586246532019766821111405720344427619983199684231054995601334038357354374738035112011880521320769377313810283513986622392079041825219192257289661002995260100181416763911159322440709118753050785028712508060601947602709703299261280315968838810564942841409117133534353010672638558448813589731906875708572708659186754631560803509008236891490823136688616013294545787464202823265725392852244517451182784116000460944693063921622988669844494766436317302315288778238460027441531748152005085716593505050221071275813013267413128757884220433357822066932307947253160991618705407991722166340189397900496274983775321066108442168553063154975522158504592695566350458975635476823103240752480730476013231836996807436224641099011402419418772939127685784911679574390883174443463637452105260812878419466820853106327790674721750266414652656159540123597770116016227190043037565058258473798915948982597698714996318703326229353127256390899167574207307925148543480929762651582361521561061082592802073370464542637283183610913201692133652017808830682490350504922696510216702049472098434802999590404641911328871164006531252564999907721246671146759759132120009687709782994589346190976993473504044684043309499576762039107574183267234312457580559654213623057002536424504280105481292640286836950318271829320801070430155974271617250561471166480069545150676624105218322407938914485379572276601356419186050148856508395949179258033960581226245358909794249401798996472555568954633903242791529328170862497429120302774318342772515965937034123511203601770226591317721179586332365454616911102263783514052559048931229801772887168184074117649681410000642733879764225642621849871357437719323356180478203928639271189544683405081340200048190429375322379173227490543809642330646699922177982644763249841756821616360052478491162405746290026476241180362829714572132452585376700005459201924886945371709632416433143665726310899770113700895627523645440878730816338085271541290483260899896892279665688897802014967482839357610414469716533808535822200197575055125402183542882798077402424709373579124086680267993592275526777426169453845397061079004721736690930285536529941292512865152392566710617036462997018477533736396060998956542804891888435572301440693561714426661125888204417576535774797206994309290102562148330931702301228184695843315916823377492736265912290255215659624604094625301081817823648960902594869748423540214271862297534975168241987556958268124646447319604849454562330142861352318286488917581055914703951494200771467659019797890102379381494152518956558511617050506385733267198423932542307650267603756607583160982660573511581056595157212750562460499910283890990757313929600696246134367089260691092729493028103895396456067923695227470770463842113424633690645116445746733849618839745035499011195219242519199600924234457666280671560899223992962906826049687150764332277053694352933509673487257583979852572212247936895031936320420347278127346484072246347384246021946765428121419836761185609902298772912684628843021665279351154767491224932481344441018882678420308184212492874222090441471398695779123159457898648528721597444418660268871313754308070819948414861515986460851828500253365339467595700112410347897934649372861918425396870906412863293758127704866235597831494733682845780190620955473319762985436940195343087968398236766812728268291105671060550849725001991705570391739909216924742460408700180746067208140650781330081734455418234749809497791385097147911703930582226195945161461452700076046850145601465726117227851255132813768522549172532324280657467199879193660326329309217352555198200052437533489178235744123482505347663789083038024879240381801140453513718419289337439901794424448363371375207205311034570779716633215715843811507749126565999664893654190360680929029022052044915232138848500271692513894930099062081686819985504775687196415805261546021404894424082147659157910863143130322250698128709909020639180106313813911459953497853175450660788934606458187197082154220307945578047523939449675001137261708706128511262361345461904883914956630964165433177870583732585263940753660380218527732107756760432985061082128668767737441569068504446101104653351102351419709659535860412170309545193712255427835116368775266646546958854964254299624192088218783550485840528283334791869763734869141909078482708123763228819819998545914337771827317793325322535113675956127443885479145362695740638800432564262390779205288555367884894958970754477168109191972033932571086418364054161786887147983404123700229007180889407120174470981557462394777528717356607439507819705696152126347430273467404592953803359098811045190933937432936934254324560886035949934421139214730119555378134239229590839233928456040724982432405836317049534272359298469095716645205452689747467109759758312062621833471279275755012226019628715193815429367124010237495909173015170062200259376024278248761988683083049468702871688274486945256547500506257484658045985545801435731312211529250604679472218353873804587761704984693170532862615925825236476149521467322762825176537356490880385636126879657539305757166190234531480074167395307723259733796156250508538828971199355872408579925223676083290672380112927946240585968113168194165232696966606124904342321141946039180897166716278332360225750105578081236104473113906918325310987505515677894270579760915416610353448674728263204605087512531994318669047955162809539846101680556879805724065626026199671168894383921963226728677752585308019529982704641230469657237277111057630834353293385346173015367315788327729570751602194109723722962751175265797574430638322129349651572622147564180681082732325751855029282341254229960208388550013571194692243208444394010060947466120215962728807576801885499508839723563403357518167338458774310496935686507405134415989649489238155253605828574300881026235010523794311469451498662195706625152050943754256875588004759862402122253983203580432551637266147309857065144683935561511044641574595195301820256552522911060024156740620132914613919875161671961648851665305254319839959732131419694688509032958102563061956231508975685798255763508160322466868416344428715813925061750980412084058899868098716614240638731034308315237552937793041172107802164983721501257275438302153056864536309824286717329173076045009606376272598684315589346555632390554032034436026633136810330366094492125600008574638153854257919206428953472377695881638598660370109964182777856025150318754556037434795992302347794355564856317544570007886709035880568266267965571201712817160625044198032610079893414968933463964188143958284310137487685685521424128879949611598383421149177426077644571311207208184160341576045336005238333240794775108808010679842490438178100262017621328983071688875990779151103023784469764878685754330912848666684709289640212051930969670669033411802782363119160892242338556781203072743664279819411089412773332428304443969362430902218607010491134555159200588768504741099422915203268893223702709308510836742371385615203691988068547046024364849830151845781509431778847656830976896970067339725427577663193413432166595085597027219631350366449501904843924946780975826945754922578668478751052900577488032254264300031189174796794573962120077858022392577118446026564013757243885675651568989464138597253358701216676976400162408333229265936930553907791244894636087557524563213455556453932043611134685760927980253785415358687197938946789936467128352031046763663176632872612005627414623997850561026955950273540923846761755267390014179350085532693991531243384684172363584153782908720835354003033844586447410187482702414337053218266072202468097505340060400546986893050084435118851812701941331514869991725482357955638498746987346996288735293613711301179546511015143822059806484912197308712762731073135125137686440951672500295867623676614977107366362018804475189427335177380505862692922535021739120433278592813473388268181336182149086240022898821379886088464051544492156221526155227672036181288314256730713329693448635422105381036087272369679716358716496022202684009490616950190082583327699184259040386628072802965382358547243066685710519921590043064137883954383750122114520263200044538015795237869479871991035179004515381287871300792213994434434920060996454291309511296626997635169919886362199301726249824546044025407882117368040993550623567298682342938031341155081401861010696142369015909845433220536363148975427431976679695280326761490928880422453765267788723807833686838575098799007245382410569081991796242190173775389547529225097674506683205022778304129239575265355350303975237956927375421565440408748586486552872150153190039408825690185805943548873296215010225337473075174632673784662842232152639620103060370692016055699209961762627344430907020858310012348752695579046063094765320577498836036591931945932481182798355370487640483592654220143209422708612400071156742152024241405852877479833411913770350720653888029318724977846796032227605701182985568262910185993744347557659886057822068660748108027699038945012065582980950225019147975599393697283743057632907888204188276804987673726895306978179960328529893762042186413648986188512625895064312063569532254327574899503565663003896157802920575387298223866097951659534475649577756056933767706737519258895233933382006139375937370373250129237959880220434071350748593478264827815493131060096999386425914386023513282309794268820167665860673623766591660365792394477925863278631228606711573828124102457629042864439489157558368242767264801914711872426128083272951298460052874685557701667001451981151197908539991639895648449554567631167485066170126543207954451307977919108238943827564715388542558236486464195198392613030277098847527477141265257439128464573899870516632152269186781349360968329380570580449960796229899575057569893860135589495630433621469156889824470567353065650594632594237000217132337524745727191023484584761532445251419764408749153098368599417113805066061356690883611249276521025854065467920972722561646895011505168082767289860238659063715993897466536968430463707817525196234382150124469593098567578563615355908549047782982371470918325447392104584712542921728376761113574019301566718294083528165298098477853781937144436680901563328099950975901984458058026049009669546640321764329488175464806225309149017523882495326093931026817588185951691132738625493290964736961317186027682239145786085804905399568826596912698939047440140985920677950817897131359324535561545545243043993273238718640415287747963782233215733369710847476548511236563987566084932596454602873705775830047446086055353880158307995410574213924567584330126502756046065956376681253192905943151013720900945236227141488647096170088629023936391211796822739297531988657114796916406572164106557168161175914487031189045614349688169680529692968710326901073219154329041635815369010262377567224870969221720394061636352285879449753336687333885697733391589955300688169104472520210673794788976554014530331165035146157794785671389691311306188451341253953050654137058787971469474966834366324537077421907154933193783372290705357353655850346142109317159782049276875110183049481364401305431832738615178510676049097730804054831681076511792930845586256735552123672351844502799787068189955775907625870576508166546952943361592401399118789515608378066730431923988971509225574403185892983908221237641695916151494563923571756311224221599633409418333279647750568972143563130365809875585930339611247124683995147908705523745611004073417105134425285727070723310848835025426569894691915277527813304866202887688730528034364048366084349396930654573452343324052698578026955777076394012015808286089902958044946803611508236798492288798625344774001758057160342257490267923893056978004931917197981437083453404321682229154980994346063099578565677115215597612465745191729677161476546226479028723273516253624669323171344650490634998137449608988537085735471420269433644349525234844198435070437968271243623196452504267131965439894840786056327336946168363000812154752730137851534841668689623895708783588996898040128136620938593925783296505779625312230098490720492206436396356418545878158808722096898767735209797286502664447126903490335641349698929733464463758573516142547181732432639371394839723236326316135476369406229344197291831128284635015214582682959358279104388302156879160246258388647641440512060773229899933007004212022591194536513032924307515379350221281089724534046597063717764864408153159766366860158010810958348956279444373927277457070691577140522502318387716465390735639241539904666434050041030960428992939484363928916803591644892227870149990124811278304749797120446532930379528941795995264114610005243205911005526160142310459915193549207673870555381400838729228536045761503065548184113341547173995867398931510741974428631758054075702016386033413697502293956724868519461273849425618137988883332758153321949990588123266817504900559156330193559282638782817200968174677959379289529566776590734212643056277250276075383370088508594769541113773160852330738515889878307179126903037590186616616604496335427916192060898242895707963199938020636020318329423576420499594415891577719852692769090619820119122082427777121086791272212115693426190389412654076320214263870010854112287728375135680290800340584188476574342232845563525956088291979731697520446203976845511722471638118419413023372172595761164752100825456190362543268789091502609119638276219248114594930340025587515666385192773422263837776296284607077859260414877566979441674347440289027364902106796385116806877228213017046743427622774109854120716584477598468518216893788595826116463768488324948710753258111110683644674388347596772238115988804422306003527028543302897590388169422393114595965998506231230999162313079368295584905098234236080743531453605686899829912561630598492213060923842836711310155899372994300814290786984623182095171740991335849340991608261880678063109283621509764653149170937059346899757065465913591114790051668147554218023841477129898077043562740750554644940322474544060093576589458638027186151411295596778011482668945851094382485858295521673453033731902245908426548962840172284212060136596496235351903895252053765837771872592053238453714398354809621492713647383323732160727341458954203812363190064294078776874256638300592104951999276001287821212313184505425403784025656204443209750230563837414534426957272517431689064060110975884527602000939061895141107476650920036158462845971194716948687347291675953561630564306643366020782725589386694600334512615438993203260850157782313546361241761357117136260927257873234222686761413007182274322244058931220252297751056084491854729635928822805697237190521003187916240074385701873892638971015658871786898636943058077271823192237404494772419478940643254323687022391063500690863700326636563128094819688685440366048839224358428568807178550697924760438108067485916726987410377737085595276436626067695466079145728605929178312871519414234528846352525326991643384344691433176147610755655921680029145638499301960613977724214404845286782289079107805123640279791561146785544010693325064453388257146662794682202566498385787291721545687188915159533900132603264145321459812558547392904063197594771243142377129959325515084214280701028803294275626112371878959831641332567012559635322579124964780112897668111107120326164138531434623726413638230925754040873134359966806441954585613765202673025701817500155468095244312113343250514007854660999983534844472626369797339059954653116923075441753380914850005383487164505426232326421805303386659966977864218705215363460348310353005404404851796012046498017722391666241724321126067766353768871248431204108289826536256172557324486280685208046424423857065152352215471136678666487614394168294709445408056417696414733583233136050390115910625575947442521268423246488641064018202617452718349608135860355321014914841879835556209049194744585174012656437561264569833895615005301394416158053210897642229440719098023085894371539895476796786900755104044219434806079136686394248602669303506115747844793920273103561948648174240566123491016639118833288089630675068774097830481826832042918838198333356936028739508291638873242188914171411122516962688160482082697412280367839882608521188801114573490362342884030508169132000002439745572506886176306218741152922364448703193573033852874648492550678830916075215584448839802917782834801916628618440108432293812311933743095516875177417804321334901884019697364788666920442414177343228063950147496617641025130845854856815514844883201192462488631694199049850291100511105344705165686007242478299091540392115887716309460712044975751792591062274405378661892032645093810656014607653622990581702330026779165992153630561327290013362878048935379696203371550065787588306056703479521718015379500398919774368794575103673122264377980770704203735691484533164943617864825369679826596033453748033169690282661743172484920169172777802247757234824015181215379566367498814571818086812474698998907140425874015027202299434550490442806480297176213372701658695029985715479105884880405248002449298906254416855672926414882184803083856218498777152413224226811586518110913994065237499521615785445963661812686829868428940085424788369053208601157972160628552265933416317592051062714408411129874029718702252824825477543924937574749337441038731038788540831997079836905251799641682200397926870314509566581317534439872248503836937360706437878233485253090787513202455824913038923005077533027340361457459415177727170214869215822322487089151476687928105367382782782248504293732412229547076580750678539014052088537550651074070070488926822910403927859683865298697089209677450897886419606717990483602219441360622759689244285508656755270931091118428989949334690243300851850603710435981391199083408704125932050033727516676079364038787784400550885178487069941091360891838537898420543847207139183452677088677314656623775582875362735789155416288164240731307296689185181001744574500197324616669395478227031467622928688668264645033245979989398088578977712643422099457542182537402947333820055964367546939774431957251638904232442009733105041102628358915394491555431285261657747553369015505286208139866239561920870532645969495511816139720687854257687166690693131108560485406767625516717370902410066543063601390021946241096733090308160994970331187654449435910906754780235260743325239508398838485428234128446292067633109472329795475789638687180324503197453170325545180701838413338082299459750884910956274276230532177425839372202728581719346180890136589722282518289193705459839336276720005516349399572421666802993647370789668330977406785430422225915716462710958339995313564838937970794223338596652104305366330646572726676986748142125132559063816074743234989498114069951598526115924176307158563126854794780632667057898238376218740430542107378746596050033007146206554763702263753137715965754804126838667444069988211942109508210495764276684327861267862459814990684578393840885831346779298445087315440550331255190403637296505672162157666466479966732104098797422932837897726178262007378954022347064234616285941526175662959246789224459973675349114349139153805684080198137713223192625540607764617073703268585968546783148422806142831445277568958085534305496118790797347011634017025155640754955787953211531801948732497427829030761055099133842447719548716921218990116184972447681580041779188110883731673188221010261888578551012058053962161460659471197361907320866077470012465360834253789687597248231626044658436730639296648507964227048320933451561955616567774149331671383305105551082385590688169531230235616229954326280452555412810766898909144656279679760529774879094779825842183341643778831566972172728843957366515180465970713823258389756241435151567396226767183560431372758841905441521965340589246042099410345312818743704161189070041819697872992121787473654463401716045656210778276112666249298434035569654262703895982090723634655809043363487525227467466931522378000311501770372639290685062493692406712072338875224982651916569604215700923021684988551156478366201139874042027804148552881866441580280173745823439439741135534016721582974325121499188060567862638094511702733709789775627048173903312058712520271163412038395113795136409649339771925681279583537268739552463841850883114309853764290887309225753667206096618429969621214783619385345729676143509397112726964748829415987875458010375746942269079206891321151223560768910936076966680081024898625750819700329948972187496695499973146307353995243886332519689943213227763029577069560995765592413844285469736514840649001321299913307094341881821661176951325200400403893387242763331008270806409628885444934303866117235409692293393355597858921080026819939438297564468408011655118028873259062031952047126150136202668462372001559095786676665900186473582941254988457365221454277236331682549157402853043495519648194172396604020573924322243319751863990517953751439077451351358949555965988418126773287599446481564945259814964027244936191307087333914140584369646135874638115528415358516169357199136344738085450786913300841037323859460229467884005851750913202255663751914682708943957329529956034809582863825858699906712532582720086054559762008003828451683772679473533485074507198215722378035343974055066232508407480612203044791612476439794082647166849993202459746732112458892999776923860254035175203368964978286505808037326930692273390149264640458367959197735364191803154347250506065643920601349435232917132493132527519777744357472857117038998946593293644791808298722906696971109987622803798017432505556181369966463678481127623633071818586098462109176212230302280491990630248285144145338065408879088916024617043457749065878415438033719107108540956133621903032751696455275093437622942007817846949589500826875514572078676252400711622057742534770637930942519458785393360893250728268729155129169313473616319302541860535125023785556469138779695103167159892466389127965236259473741703030187610171238827094299973578716082152662371593130892296971300299662588330582141245146706300840601719367518365586861931415453183450425505559473419662833555656710826706147395717524645416360041699977437298708723098220102132689983089945984294850468309116376284599416613677672225896216898215232329401650536839246650710688340251345928983805256501393925458500337353464624246084006285309003107958197085086569898161729753872450940833037160178748323104250476120912998108649488804198617518657073805580350091767127193660607389117871367643312978833354109790381401946258646375368572289414032068419803434748918186750806117993108669999706059965521182096070409206969128024252881183900910124532145200914381176335956814999320261412932004355808549601862199547880228280418381713168951491080044368799591461290149049710121469535541567327929886097327310347130761513175663769669672402800290450293369522388564633392774066038107439107396230520153285747086953388731816000369111795749890506387991964525771940635841658247621602582301835247464143252506495295431584461767038096254312864489005426079023646860649306289940151920117816366570306711403093327805920180259177574387603804474186245475160345079769475180825403273422778618073215873246790333251236993597160836279305226573601313048136036422786067013641671876545257493340916477933160558088472383312535816122424016134243293521039343739740507457388495115037267453973709583301443589349836429626870741540759514940056878388971954563821860234184529954333466094196581819050506196775225293483680156474204531653508689470011726511984640688884659627197692956191296290427827690231054427612210833790483784938196701153732108513406292551875358982871294484822168447765245575788482736919388084742783929525648712254221771382017140721682449459397550670012904576384834638211360143105960988423381718057763384580913379898291689677257519819434991159132976682639440291470194390452377546787803937822442960966961090196046252263726174809001484647450854279674452758076807421774549333740481571899311070523826923694923950998353030324702955452812945523848325023863564354246583811682037139138535242840353496898871796394525139691259493893311628439440599417676702116274477102248416294816626537073341211040578436496868139160960036695778452107665899850591971388937203583308859646127554406792438445389738992137396678058507064634037673641953270942413232263923223880597171563432876962094372949471886102311671379187784503211391913671249744335758660932647371581685315399950415662644852770673377098678468308662544054431507126577448211711586831348275811049662716032540217304450400358594288283253374469211741929287561977858752128882773630291392882495161722537356599479239280172455741371895494281781782258260464004737498485684673596005959451399576669232374143543799101739041475645422988126924189861738757308661187779209303423081999440711290607740881800859477072692946829254628643109261015119144420870259895793795960181829792705136587200022317468052569232970328713194128244860598921506289489524633194895594228937973121806673555021162621768692200128338642046127248479222793906709591434304517642191475095772824210343513275968808278787760768358731927541779109551666878986696769300532624104714839700970323568814845998364479821729224526431308307682023544408325588116400577803831442974153425174595379424376474734513803838967013137765847666360274202708000567585618231273368832877496401994153256471499191410357322301547666773996645146563205043561367996571638675513463708132743113116559984645172079736829935703434590363251335555230678095835657608752906867539213962715427728580240904702924472830959973360770744958939939696611952582647706572696298965173441813577209244468150191222943711792983047583742350536618215124692294023253073335104102423170114113167468039296992292751462339433744262120337540191102150741221576022386182803140510423836481486180123741149415010920635717428253368420107526528191881278228545635787480816508734261059215254321925374324958647956049382703337887755536066190834748349942718015541702689231317452899985731038887195703040123928159377403201485985516262735246167624999437562634941673933295266459975623506934672628061786969130299600150741402261921640767167103760932413304016428511563039830543921546172595678327639730355615721632145674901374272114794672453010462836044732378337646105458148883099934451334395344040326491994790005210619267890769963186397877639162682152909328133020715336245876012044218221023135430611771093904787371562930728116021594760374759450344290660583987889225801493381719899195167432106329061943540466700420040464414835397496771743282675161371253962904380197304140981745690888629401844242700707495793353903330543282495791097259035266726194579985773777796126561413189448954460638389523060691705263662200395525785553242826511055921919856134380461984398694142094355172982341564981509345948652477452055016100085193905392703092922452045429011652646924140760650820273461242684510388780738083850278865687042103006988148770477867963919031374115131035750963308533974718094983969078317816646319062455307010480442940712910092077883558246405632785350357751274754714870465168805940066168525587366397178680412021925003507166355296910908041642276123064952469943467750642590251754772237609204880053907576387454608366452199297858820742061746390822308833815845615886895369162498452364756908590906363201911101863352167753271109912452618906154265168971246896172613105909123412738416200923910247873173242230075119368088971608212812010582198829491246765589383695723427068134733045428820442642874756892858098457199004064121004762756380960796193740594638416196828635327049318935685731785384681201678151629073245954393977194597370546178022708425512683250762975867471418685163177681190468198878139623004640165155360270047180637202083653710686489327857160365773590703583275769677564754475646982865569976794531460403216967269307280998346665620606020669984424307152689805550445845454236219551799609353338182388656630996100304321740738479372131554348004200761395726246031419205366572602272149149294225802264534224045854889755176817923428548682451563555051658131555311258787349035197714936340408078132688134200010408788226706120754365518066722438376009733265400918001788961691502624109678802251561983829949918246944250049528749825114972488268167067423029446866051104068910416142611617208849110981397406025239053062514429318065448146164927118546271116530766716740737601467553832695513968001859873393653112950700732705628832668323281866468864352892286462627158208546568044797109033141859273024603366966443343563238948491648618828333490106955278905448096724739222235880685395822893560420286826311984624909792259795950977372379306079036245005184601823389225709590211038192342431435332230055697004008977307350513148677076622406669180941723762495071931220866281294456812921313228321016215099611372079645943113547401584407897572675016432014941413619010739066341418651805978841896332185887119434154445297343491978665721293809021356485932108618303514413559516683296383218808237210447333134111908164918434658756975986724310100308727179584962846098210870724915991966579594301497484763940345330883207905471795753028520781381765942313247313601277161268846533863193432932630615633161993183661002662518657882189256511448649782838640924221559734262936875201537298049493118978446996063009866594745038314581296662057280267136514824944463312134761637250736831506433337574460867584920437042735439015187682916194436774901416745386099990064826625869004183113362336694257258882918363831389323569894357024411577215626284619724851087760420987779035579910028863051770330018679407957438005316692555016840966292860948230948767852007945612682525566527768245464147501154495211652433286233293279723794870951676643692640099855651980439448382016379650380414178766660003454666198958821696477702442050149893586321875014272293579645091731446211615867719895237799556443665492480244627596878620911645757061887443336720777143399284055378394757306080551078292879396400631542570206760212655031936035453638393973340016237157856742112380615545892338873131236416241201884205278690405829042447314243697454307645837249093476774256514976737975419017953700556054446502765501408007225317062154625957121936788705174678027149988972418373444918354161644936741542913751425892927874601602156091577716754561979375670954090426463406426233365756178940717008223184921961085644162926324322474772869096910067996305967003233893540200608659185859650072209394288038017736330441684875717008009513876505041382874842873783007381520981909152495036275421314167693609754367992325298583121151631339454053637148906435783171300774144748655170193755836821564005452800425647239216619344118800879593863800716693365353044196308914977400673930622389309420340344054595333547074867296521211082286307172386015301580703376314066123053946616049791802557710594593480747799254210221775193872749633610821732254977510966318123504250139100161175670926627922182068040774490192273249453449116548633992383357086305782408977226674116737653823874196515225706644919080310106435803132654162514963318495259161265923162281038059630316954930929118654841486512111564159341084715342506066019070535887178534703740576429426394159169224898183157211455497876350637933820730483844830607999609698952695949039628673930456856710269201147688505079396376827683342976453369740693915560206203968592141625544122322022442811020353295013702393669836091565566272511905693367955837352143608642474629338451764307304567730045849072984600193660749680158447875743770384791326198882480791849816935055309136323306563722223472067886498759646840728870508794217684968675863877395682374117929456791915990946101674819878619459769969858220059727048156418346518849818049780878882828229896603745364611182842525514997665591246256658966155065522029420987691688511000201526063474311545245366333677728166984533127220978514824856937556854098265205393787464642469511782903434858059856716695336188977162873951118532707176587936976244168303590829125431783567546299148328744641524531321200588738752868894167007512719091224126246492360371493712731582791841185032688231261267034508608818588629315529100892280142632903674868344542867210844823870561241965281931014267665417155744967631808815032353820647559002067458580054217066655966841202838309205498135584135047008793294270352411848486655763600884040833233769729856810229929195600830976396030498503153818684760858401663718157933396908547712878908374823336706702855174170759650294372201295571056203840743044601137674789148579548608049703144308624970109004224335296382027995873373361978802328195484164913651792318604828672198564723214753972786846908472019874511886030950894068701696861560713730872405786347189341282178002817340231577073879445671166609049377323893268362197903123508838865454915339710612247500009254600159284192847720663851787186452242970614581215580777144014847910926203194943131083779854825016000476626402790746750754898504182255914298444100649986687063843369661059795799170935582632233130177942646649829837709700582769997105889998552827767554643105140183520561532426930270808436676126386355526830091379388235129966344749277446036603147699064937710921765886441421103009719561932405204652515699353968718653073379026107252249812543662575593583026569715878854992640564490402898142587033479219373240841851753257669258683133675052113149824860887388388276449976360013498609735453804338733858885718636261498662284665291439161585094647078162816308293283253600154547147644715779331949930952367728773465306491832215809221820497018305237576710224784084387071660248857265242795400483511464765343561612859422360534885671309589932754485941183198949853612706458558429451442560439289475875441771764983813160899630770041064876877665687395778399349853139809541117474694452235256268257837046336101579070503565625465416947438310132276305617078709398253437252774150728913489007787858304073173260018638370425915457742824539966980246334635047256705039755809785953341504257794589392499882398653220142837052892691049913774958924280415492587031073592389527012301252381114959582620054317646530782777099624750694048611670880439112211691952902031729202776413557853954329231510402963316945815224357538977935737969450364049912435762733061691641274397649281642108675125780316381129769206055734747083303417245955125546234634317301426935161643328771081010789287547101276045672889914707504715055561918412535071464549902965945581493575403064880848926771605485028601014227575400271199028731337752576103564084268504639063807352762814448851265858660397691556312530326875641394269515115015064214028279901490001912324464148240959949061384745782775519413181658789189088859489476050962276486362517786636607818277015940728811081732768011332144914821710382883173501965460173753307579427597437786983319730653537877516649885009201093195442836674502838513677831573196454535039353039985646587800682949022754520921909801208681471620132335508513986146711269359447459441685882015424839344985663184765788716373091888673189053557437004979797869106652974072394915285053569952416720129837854508384467418814203295580333040949063015123258398669779463654857990630837932726692322791874554586067019843314942001413151707857872214920950499177510211026763549309307418894531076232951352163852828960577021967431423163776941441085172604476689739046619842858548783528309781639130809830317007048250094381648664816363540741077060719524865975306538100556723690747503598498425154831227407177518774651486714980046581048121594208130880906086067976355552902827533089819661831077000768885231719801027783380705409542855405456515407990151238672912405744842489244038216825931545390055433749901727316482672857062799663285171952393236925499607169741953007292149059020420445544650868136586490649271617260118666169280428144775680397813761009728562990208010920642273226873764801190742187397205261912529959693809740051876153553663961405003844663276619747656743665887806104426077953691334884772150876838607818003453154522290239277908162865739208443268048315912758764082571236927313673859864989938652720007187813641960468933494112128264351564152928767427065721571208417671196788329226606404074638420232509155347638641506454237829236523671229504633613948535762468511315527165804173046688025196870533389750237518425612552902114275267102386092155563840116622661022568622797033926172838435043872630870069883716507907623050775344687132958233927086009686592277215817157558290154156825151701315071293058081880870353775684009302145371667290372976113613415682769377149356477782429553559299568747906978227380520500887922926564730324454971895989391584219476889747078721073844628509265398525693651884426730672683907925133388253497663976836589936679540521917586930276556031876241439607716979868607513356599624000283412860029020712256528563003555332433705769711098362785566272092072577500833444074432518031689956972070065220888508262980348336769932211246560741313324585365377669420113772144065346251817281322440213662212192147805603086495795749223521879760591901287874247330309173078425710905434369553858187147004362185440322619655596344388963817058949128562329342112423540045728884017035254535821898230251574458740517573024275752169370624437584169007590637260644439477837139895772685342575131266249668634351363836174141224871083276673483487665568626889338049339050540651678292339472246504929923217214966685543194338372761815275492542052424221726136748812156362977053980247753655884473833622320674727063345725070044999291481043541429581805527509857509602501448205458750431083661142264097517157959978887104343585438863039542839697993197133250686312152497463022304001162858778022307658871368774964676921925856484247290053461229764724468957595545526194348026112646001642953974003262014477225036256418827336223682006682922152806571635959961681426160074763062273448002978432519186776274116687469417059516211460954852870670027459996729572572725297946439728994305525087008746989944988987666467314026326792753594266047741294925466747140402227325460249214978100420653798478632295036769996408615762717983293711182760795585546316605180248756734813827033968637599734695127865646115525589946900525922780728114924705093316829243702637634516012917795666438404674247460544346068270863600288312031858994420274493568440012739037257643943236048586692047365804593365329405630678392830816701029556771761566515320737868267771913090010148961183640234833019195956461011008958563992117656004423584104688998391264359276145226553362962982813127204685758391563945042104646249096207504848787262473713462378368388549173912268838844658984899952127285997685288884104162964621536576846482427379963118605360344501801351432645406460550363509546133141995165026115339315964969150134641895738303091127719606512352918299004844155795097507357555134545401632887765007534319713309022610293354282680626121395335525630287427344675384364857435951936776401317176555203115240089551144103653239401879612965130017537083256604108321445570707251806420407281518217433049655835443613463938372090792893723634633432892199156351852396480502304188868737005231475277206300179003051102010440626858467055318947283573034051991959219445211746256822261271558156417015200547804003091471500288145341262376161827297480167445907055178255686001095662704411428262467450723247644750763264927300658017927316694340602244651881003576829305646206014530661987609865039281975555490907485019579442118013846801003245578753454405843345785066204570494239600230056587522524352429673866421720298133907577880518048442158507385063941557571362277473800939673558872531665772051204458257406613320345973989175352111877261953156473628523727150738171045588711846533792265344830772291096473643809678242216320826081050813817604859158570561331398245049300176459756128593558261669107704871375402723962926140121258332365437822203058746854452273700737489372959681680441018308216807258398944114940007957040053076980909095915425637024209493937269510746918906119938209822146322370798922853838359577472758736130712552195933820550821668695753071330213359257661826139071159353995826165813123703458483815716619720746510750157063043494498521991458074569128201457158719408245752183656872856870056012892910711404344535012959822147403268291946870701861451874324479713012017909742237640488892106968037891634783803542865563556564643075814831442784932596361773426699647987379776208048041892904639433698001009992491331372573607459751385197979959786001726217813342474285697026186296887316046602680777520916204662073578378978316829599555315376410332974786303781984490913710583806955564870426673385328975205541997551205793831816967832514605984352265978883395514111406952890164157685444938205694641549268327523412185312542050534018125157581938053029697931196422086039452342952468776421291177981429729139690741366944563648249635945988847276026329140598691474559899249465858934814243900920211975140912595877964726434619401245223508633333240199999447414222094466647080492521472624300542155459429377209454855761294170599764330666569597987984675617679175773304271930697125392898446870709042396019421281650525387054425077399073252617440090130086706203945581269118049576009434706595285798787226847601235866509943240002616047021746942616285446086722089161272225059765810052696030368793020527372699016892796627330230786200425307532112391862328376907927773685850170383189876900069291906666836529721367450531382252426456823268228273384927841986161858747702242960915287918066016379311835409129919227594005548715379513861339256388647418903460271960274079051779515768651634631641633502686115319046049423920409435576599780305871184050781575637886248758090327691446785714633065864437892007959253430469891997906942488803181088220982512209897032449641819060331979677168521778013247624403758432347675594629552547320428090269266657942543600177785175367953615158984716585181056200160977775734235543967170846099668831742686585380937013398237122807051377295563139480868418571655852133118729617717584415762430278196497159422731271838313427688080134179795739165718796833092293791140232304967863662903720051856195499864819023162827450123884748992443346944973683160156391624624551702439271229917990201084573745326653675761787756356694381735617976639863035859503893066697439968573033746851135642655317863992519329834808924340565592637685772609553556276591940803480686361863928249433021355258370913125913695127889186598822486964307161287555136909815855791314150860556997311342174588992552021974615477014165743827076530980221830940461032837864650702834244621232562125145159455964538260114900777515068634453760720918544723432673114225034622401105777895163354024578217051300563431097614348413894233060770408951732154675462811929006671569457614286996499882931818463086994086599669065542979603624578983457650138353581981906296987534970216485193872368110730985697377859934685480455270975257749291348886190539312768989593025552591300816961933670437584389377411513571209572106616419927584101085107538649841971610979719348328883155739846527091364227604712791963992719296309731064891353879830981437109468149879850896815635553075411131898365764443624794278326740317001808145354398781853276549485566694230594447233080528179240877371078049186536307205534626975621901330335377058363337857163046510838924668967268690412269335514705515741175656353747014774027708444329889868774358245283291921697682389790305279189154610729947986402415572947649662858577435987317763083416257731937828989453977503821769127301829788542372846032327658704988166342771392927638766865786658070373065364635785412282879661477380040231312209427666051087194461379832901291107978979527696246672700078162719211882223507501617552226959326027566539347734354033400084323473550136140013946742274023120446308861856902654124808646372065004656196408265620742409104141376996628699817814748343919316883041993839391938561295593941174290265098402667899399213362993507170155188380318924442702328733111534330162172108943863897106047248101850576428175603321391146073077200694389788078323802638697904956179913370492916633794568459583868660760466569248751006724176637094319533885160038017578462756625903026127893646796122368573545819412005706324561463216527341191845725301134369589236961869203501450312642413730207926669367286433356374270979435538578676609333466835313675502304194152027969955125843613828669934830334723339669338509985903225002367455089950427592826443831653785064048403341444033503788438479827933696667478249219889797907207647260758134175815440567579096645202186494717899875172198950061717338208743972917845963548878377191641973748829040815692224259148918834668064649206013270489016496922478742981276872626388718350670903489427219688117309753801424662354774459362899308452092368671045539939455715625938429844326215055558087563224500174458978421636046576448855493012999267796972763523037498930465149183629031517506132253633876300816109729456920987165568625894967929563301623304598291892037592367729850100917279600883391146131206194246549316785001549319446482724292763995617363765119396600729474994430527864132807527317056987539505787661727892207700893015528361811174654878446024797089213242739114400382721482090651846939814944954322324333397667786752984411912499231066766600080058650121232148529200332015947069890815952869267301605241605019100593183230039482468518220281921137943258804299164444711835492979161297786031197341178111257648817332698062602868436706198625240911076300510577868127518178932168218263023238028540233566704430715118895885451284433384538604024136454179671382500083919830047161855740165067279058320134263343546971157963285304792525494815159611321313124508254469423491871246436435702772012426411962163120071465241566324732964881708476191106323911464829479936325825231273860192306176843859150669687863977140866875697400222998969597124277778260523512656022218244067026384002822046888319128737143615469683814291938063659572291332654912962410499469059562783268015128646160723100839695086722092787681100085280594105889906932533134386714702113151041217270781493139990737118804798604061918508530468866727068289772808428322575488616382891564350153305293667381431821491750611005807956173280557027539044209522436756317211319985765566212322800498715083114975276467638411518103800230023277324626803838719758969802580549364328295023901736384913616254305170714523377680042765274708497379819380591956533701723058245255776276897957925584996641232557444706907983893111229702591228306560630501784887660546158276001088164789119411154839874684164753328761302297901167228349386298732824060771150866097379531618148054547562328329178266086319351653700352701684948403076238811742749294550152177946672462440308845090673557235033810535131721896115988993275809417378807278106831580216661987383318698007739702382233714645831162464403543900506097122520715659195992994373076119973664751222891077361081393866323893489604997202158717881163197934264523182992507701416076078515051225499052093591454597226646695470179451291176893622883044038856734299523224934884253028837001872763747710290240281833435209807563873605514055114636939167286073707156337235472226421531805403718802841413412716877244778570189235029187884744121435662562858254846536133033532340771690139352406554852041365884149902701158104201852948925532041178395546576903180584016809657868697629759749769093804790914801919711315249230022506240171159663094330275019295578043849795579272871848043378343504171265943149491996218163141338960366294804532294553496293624639722346365420205716440797260448433667257320881322160326270692670409680059822058028715686389868728453347025827528929938211489820549215646631882035073034712746715458150645955615843330670676815251430618427099231509800578180267734549783080336254675925342907967288663642301549947843381302479769220455301625480632115509061119448252700994444452686149465519706931751790804797010895212377823129929876074774735850707401113644336145681393915652046892710052190969717918410786166987490465691892927538194854853771209808710774340399704262005646316472928956016569151027863214869915476900991389166069547461487750477674927783412447409278204705104580722176790093948419720100145824188588085196564683505485589222666840969989208258886742464499484765889606677075410343731990423055637783936722027269693068923489449321352647226601057656011706765262371715311724649778432952934099838837139178422422761910086562834116459935534715602001317304442152317221404058332258449004533854404867034144152125871894004638116490848162384983560126275277530554335456719277679655549119603914171713846108288833093560857645431685894988686355937356572646749136708942301713232889236743332021855294577758530414687348326309999324661414749936949162863857538113895625664919679921984450616534493139920890097556457299065173727939088679120538740541538686904673030109689666503139604129270031013025189219603207149756212814871236799405010674450407959320192555339060248695072099216472991338507319326258923486209699925429514487998149229703378537647035775077753940583435688946815972337758820225374281581720286298328741921461846916825398040330170030305766019397716523910217704100703171839125391119875910556583771901205360599749302047400678426342308311250768186077813432944388435698828821512693190580513227712647819622490812321741039508569015885515499501054083741837797830602335739623323309407847422627628720771462346682237421060534052783493933870517908161644903079514969820047432333110922061981858028067286531954436214814714163768754422813293924291954293777336788494985591566034975999643535248836161714640218983017996460248212401337546274456151930145935774133630963486633580287706213787280432614135784482970870173490467903556117239715988259745353867514571338313186596051168797368111666490758731381716585181368656129135930581030054269148641275990202026156524861193796149293007309482454020169012920042408996150426743806792239210471461705873724916071230006704203291793198855055000850198267352170678255070035379487955630697769881952578466075562081603269548810147619069220881511016192950236319760878577261157531916757389185700420191753809312400446268867294510683266342197237450449280874961730887343048831765202523273144517839478980019696294498759303626313362678937287050795402294096795642007653579975663558666218601383659340461643661777444856161569415189238476471616325778332639447278581953445671253829929840676129483055212950358581120728665867910910708991179802615796345954629682346428893879401406984132492902967348212571581303560537119245147526747413031854718345621754656971420338160554663513246073163605290292893458640310412780056173010082022546559390388634057193631405711500510379618289075138941036584272404982975088397727383437216849874740016665935575171511413625349985536110095033469254082439032088777306418900778926139144880182263448107820405736334686156469593221069064651727715406848300746593043614545840168799834729554757353241376572615749552317471784651753690171327199293733803387216708308944468657777975466081612680843727230166554374863206859278899506739584979646049703591473862498625604904246123012458945765811748181356649426944086235166667256230038484438501406269391069745388929865476633421251913734880601801806785568874952712067353425233454879650766838426167690720582422658686287980994552693136748087363211081782375480220738762470250875221347398515439618925184181435410863086146499421268513844672565368741142758749219760523901968155963205745261244339918215636853986634256045471006515703266166903975929263204149317016141966818133911313501656573636539078064319232920967292401354758756129289027167497129355600058595624095250227348863146427208635657624413435948489341905023227449652838985447311455980197914475965020144815459824892649785579945711142477416733312633012909459430678978891613752691158457540172753684669152570557667846035105155390445570463106541708188638429391360802543181718319626879903130634445558719397742408246009747475803519553561290440842459346109229039899927641639203298153238159781092370825336597312402147616178514567456941906245124500956778873963846056642342297395224274081355940456744445938141316119561123326250935645536867830080502306502935201401881056263575372635603700492669179438900234650496636107945166530055045732595935199239709605432670940473577424123747548659136816553909036314395388934939541314248050799369841750303505918499366915970373689498529155984783812749365461192987822188854498605742430037947257370624400200469664936421216205755970552733240190845809338725597512265333898283806178109345351793979812076758903231822138447455086186367637147520314774943874097871271508153477298545917898483439593716002346120773540183613251678322529369621136753425158092021069502458000115578859240401541659586692883842561501049107861513474702400078248806012231266901545944740103012498092280603462723033062949070463322222604460997969953008041654643354501475141287781959285064968013611646440920058432017743800679554375352132316359365942760746477525389977588089661635994211121435612446319564064549075882161176632387645425940142526150004576360182396064927914768872856998492960755432475389234174518707241134331744592434984858026970732117450006450726328515480695233950189871573348330890223321952308584643194217893022716896771235813448957180102162015516875867736277775425551777659254575752972468931423019065729093467808372679829098325732216210652019873432486538601638745617313253236120657899064467200477928101108724050859680874562939230039304089468787434998956539182023441957181390676679374341952637573183743801011321985412116175294179543530343111263547439145008230413072523182240428545520662627245911445744562424026432189233712107225247728756999010842190920931532546001274811103229011295183451019978676165729506579712012636664390611773454817221944421243633538022948849060513631526080051792053837334489425439121850478614844353876421981800951702992232269508818699680227795978675884721806604988472293800990868803669368764575999677137389810826145848496452494924277333892267233957552486246980486997090198411466001387220029523326445361508252411026644543014493823915116978825232129275399372700622474086015795572152261160577802237513204035902045510094536599879180650791138297935272876179156094095851397742931294042590865836432163730233395721693402960442360588557953203847770568884678638883524989199718747900381790564347592553438612701861678436129079145046448517826971882530573115562420027739646739449566727752967108023647118384630770727793826653838029159937753554901577294346593654634635345341861286277281374965094163726463899452173265114296484408071875963531593421104123756706705718378237399302850371866489283457075323879472554071222432296865357999933933984858813674313665494368281282747324627173299821030331168289013109227205762714121253901979690818188723832196133434009544125445113635819768548056086797393861125429942359395048469683675410164353515173766217431747687708931416389229376771687083199276006751602710346180074534268363764622725149962457961782961334711943445233178783983089088784485188947985562590220682722782396119886791885116498996954578762930652757286839738421025849117816873298416883055191818876222739015872488187684347806982716017267179871616971307811300470515204466242020022190214897375837186733161418112499727161191211103353634188479523855976105770337601027533294378999801211497875334158888519291555541236106594159218844724074181049462414561712455416931096542361815473850300251509754617774008773056852926296280628697328647581323477230958179282112152108199670180107949406890747457498997330881176437813941491438804082736467867917992370946892950442201981941521232605067958233432102612849268041922522488262658604034012440151532859763105575490429089752759353018127686795967395806723930278347923205667995119780270084703735457404929709244031929891220463611008325390862489450834452992257465776367170451531985987259781834376571958299340817563563304774401435180775644631724035504506942721601274558054130661906553717918925531317790131896213949535600541922003036982510377568933036028265896175413773343946225798865955625699573221541240213723907771600551489636327163930958741123832682424211667910570363584947150336920352784405112370118316798588562425842662199047753286960120445580043599510268178483031685380497938440248958192595953512629881027522409386763359973333700849760334113323586341903620230682993819818560137875785176630024814298397234963879934581701884432297391568122376946273182920860808542345800860379984395241546673356347879793288188520933857438551764244298856076580999944583101356918687090681467605799509316242995146975267099445147232213673812953622750118032146039983572365476958397583989424483500523761003112092854814799336520732862123342244333895777971801266098286672581529622283898414495857637311366752392255982854628460045931846261056829177303547375693758804788460878414785942643786227698206529463816104385890714954285214205729406051662583197583482454381994777123031092083439401932768207416285440533338168945359543345462015497974881429063414285349057143130525698826144458869260595088402933623511391339984520937711211669741073445072283198398040652155950837534250418985312673654706713192998279673491419031725529041946021622516088595051807908813195804378747426543086886586022123504096185244960364713094491404738827082344225608350733944562300655733051278177180550883761454561815096397411741589903944554301925684678575246309966672624448519414557131092779973130513756620436665258785386727165193231114305546569980152882985465586289010093326157841870088925814411839156102682672245668729763564149089235159837249038261502502843004749999329489292523122627850277749402678561452109740584495389403208349186516175348261975987079532519384344553249927625565218701684578273735287822696119001067112028529896672254693593838092457235779041052837921871601653782456356839144271491495004680826606687742544830137952837643217454924025794523453365088406158648513581224602519903736527393045164464692750039315104432777499057997444361704596488196309544992248694003117904037521657375825075371723468786710645775137429498446940624065646521912373898463997991552099632432371000947771140264280012711723173642125662392264414812821002742348914861396738097319402160293646441766716516891747505793538259564831841346727886060649301336401210626135133811236805670818049086154005797753811950218187004230912553250970662540659022389690997774033924666171283093756515096033440320590559102071940059032252297456615733853066089794487107842896731655845793552597550637045403374526773874657195535313415335182843629114301053330129911804933318689052479141804094874402996195676663589539560479313219735105070649192030144794001083987008396869957899467307365044837466295242165696786859362018178967575749542856698314786406763019845896652251606333846305838683279902565775385109605089780885307400660472113685150997269894098308532950218080434386740456702536392448217241727781541147120972098457281079648000725564750707778806243201659143163853324850035032630984375703766325206392419083619170775964404940351407303700255673054552140305180479987480460450382501600393783048008568401842082325204770009255090134826041289385286694373140314165269626917664510027376180548184750604902664902614907779286785108161902640136765391220788537725578889708337692829224587114188456585691790138678158273642157164731834720579235835497225057024706757052860100838349465474281277142828233574801704409774486558336654368000215824486375785460768816364224919592888242440980691615549919291908958491216339069021759044296556123793791280770701163284409037221919668611523242480732777760710609945610270137246374585965324402888390637592996809806606559922012938312809233271176056775408910940051625817188986122496083191549426029802277808414155692900991815489359629551465028593066826569436185094293290662906301400855208615999918005739784796239130762752591019031451467326243352620985583529079337441010732429496855594777059899725528939716191028198231660444681534459020232662569650754798809776466767928622296370905690806327544676034898941621325482787369944795376743690625512831280785508524164768723854480527787061520834648377642077511744842026928584095506389706499200785269211674860211364296870634201808221926953355392582038601905014872452879483441027871241516044165060330341754455909035860374025651103189064508927592366988166344860798872973791605311442815742658094315361289498886807352469143963681821226967640738145163027701075131155573549108303855624709878538637349750397074212685129964221806860438162863678488184866553445990119029526333473027439629265107438950439665563307840290198901894759082573559433610294394843141277924076712906557258335037070051424484211241980649183188934979690567572078328075325619161261904043422774504787314277723387632068412803690832804023911364114629307647897159905884629956824470981048920190943586885944756692878951290816140341666212459198711219242960808232825226268134274113039383347546992212293012011149137681981177948487449625803628251091854902663538411238912004002517081993618243688281687159295740547331364313839875417036098228772725530102119679901100565985569177018859687219466944974771922526749658841328831117177264387261503940445658031056278989972178257363296357270574595462023639141933941196671067488364458014178497477723077198154280302509421106990954006864797782846007843232664437591919620678197863754036420755823073605016979042634227164146149226069507777936423874600422062081086900144597907050049825429532889642379805309204025901887692185558909258000278232898148448088770046952750803354287237546019748448765667654075071763200572965428589517876382064085787528897779545476607607002344677844719619588420093262703419954739306291907791952371556103760300167540985923237175278507425725873493742812249701740542969403104754352343695977295045294702906436305025406834021203723613515486820609844726095535381967610930054792095441722843049703529564965339209206434677199022637792857818591164449462774032715376530610630686166514551292204297536294321943105039315599146290167514438039400310308003979909226847118318336320058351121014697081813791239837380872732185069056729741896865163502249072183704338422644977444257061097760981965051382778919225400878940148613545465941550511002511666841986580714514452297283028774737535671934832816555388580351430113072032887544844075541558585984786449451616047245805710687152088552565676285527463648834443800772625720704401465932425815992472168110239874778052558605364509367769329783523427403173124316582355853882767615908893291591228875297350763688696193227612143182573641910296647201068559414053101570952687903480204202985540612110285460198631665920936362884479973503286617449901761395009134406240152348320273344267237929731877783549929023696531034459208181325657683873872459900556100218530828703547104122267165672106008459490318728369963497482410912244000536781142990654036069226403753448343519386048587367111035275948743554026235681420612812545051400789718270324919013521190253403453579238891746982815998157817733602210031286262371446067560683386991940037118760288959803199267655192809100027311591657370782958954773960412042200687004037113132534278738480073927926697605544858589650512470878627181334996695369074560944294474574350545887260147330704701350814856121977216327959367748682211469316061512787115442331142047695254915089783594845657326672840077127906949719863700489252381496955827441469461132448020404112727413890100477904271941288863470686509310383586955778925618695270570627154458786098774020385012921898654896870749976540662570276542070689016795869770758860985517698549106921275258791580315591126972338176129139036908877465726948827499992295848820455134290929106646090390139113552188622598262619021049572975303845269773093568455771481915642715877120651683884116550394281451863830422911351270599756072751489596158689766486811798350085292855393551085919739562169925880792894078185155082907158668870818512544192265392040578659467724452175921820908226888628640328581408040499340206892860072636082802061654778890560162963500569766120036092518929719463696213653752045015545284429345321294752800487575425949879952571677054534728420108333534896206574756412140355365809926086424496522041505941862774322251436220392300670410098439494993551413476274163580180866746427350672448840015560760797449754891170578032778021843477414752113909666845503554412688282755036040826786202990189345371460408274429110149916422969756771448340049012083994515788978335117412051929263005260478779227674349855982306329268541388722978404962816200437044983206415196550705754712126767911496802995068497412665039900267961197962484131041387125072057767058582022885992561667201681782613654385260876699744143917659879603807465605091266838158462232152136683592047978630982740297053067025459329455593874085437803080371393776974352355701567644684146987097191127249608203676669219156719840584661205632438195858446053654064637457844077775544247405749097927596693512739014797124073216105401196175546059009056930159096699673001924617824279388822859872660418844995897755009107827179612143084523772151508286365188612438131188052673209844665997463155282114466241348241566983925693353102963281960104954240493542990155428237680713363815352437902316980937549702403726528456168901136441520149257631073322522117269464473703561979643073606421468594983817270916680105898233656894407715658133210933107476586482276442106759643153590103727278495332240375391495304811557229028562215126826880684763122201911082516490297622447135830650547179726330283505483024586482539916652965385497368713148251867677244039798161189286010868690340612828422133967680428752988477503543267525153829501702701634831806803523511938645303509825065844305757145182956489624057958726378488589901604603394818589417440107593152193596319625438391474448450373010569095379953995762958538264524870462178056609282135328842786244576448429992043815185226726276005340145096535793608080295203583318404093827620977850272908398071037449703050070886609025567217547416035574919915169760695299152131626499826855853503759752262458105616351777592901071803324377538609424997394194240248245674104236815059027771194605015916293815962937178630200034525706944937649559313494049062560579504770337782696507364042584266148688469396854196180030132681657447079394049455423867365965017690811168365250764205510680065461719687131052728536556994129373704869672935776592809329710400244767807525110281123244366407135696743354967314263567232728984068297670369797250111383203804821435306555526930910292210432595633320568263604100366945444136636050760979075437827664843049279595293630931314653347910859024184516272301406564985496264341635296196443393884428372544986059497382382055513330269587879680336009111876875403209150838055052572262731812043640983823481990048665764705496499057323232333083155236934553845821656337440581408298498985511996985067088067942713738965822305804046251092487025765272198304200520418799483651079012615903988427306305338856293054977272894941192648174483233944168413168116267196825681187213563401070031056413008825344372317892162069044487168640494368176740702669186126197027026505297578858861487934227655454450197096741074997352169897907272402800336122373378409869958618473018505425058228155542867733219593244269371739514196776507668733135688889057825502176874441819567048787432987959726503684714426976248049683983160065024744156920515700024407362387314632522085388922141471868102026835309000909444287775540607680584790902575594889284662561675464822795896315981506605073714581577214448165653104171154289468313618237736302645472941043396342257249906058394198252309072093818500975276676228264692724571303135542895870899977809950569789476768581035409183310432796065091057658812790226093740210300754082533532726033893296998571664041000157280453494605796256698003375860382059320480556613075778683482137654718781780623819280055844752772362214655338426770436168578358121646210459105603526932213338880665650316807541399372479494673646913934034327555858240910680632243099973297037446891571454924626107709322765886366972069889170224934130693188225165342100354494080488792661361033933985929480544257745300387161274386641273627243688869218946854920969880991525417877991187767379774416700251173737509981819494755645684547114180710753007097721758817543763676038105583209113627851151000018707165244788598118579524666034535436964664560203174855701023111856287732885525919036840659768704926744601657138077408101991314906168207225639575995638215769775212579385182359439203923473679001767286089701559134368714477730827457932015334225721440757422692253910528438602784952055709528102446623210179284718482582537415734605158552886117526729354188522528160226679374295060682037035815422300055918748637631425427964450844947973974387937457382547046117500417028245932506066847153863127381384036322138840409485124583151361169180289215380803052855251659647088427847675379298536104464150400854074718785796531539636627800380704921882582392394224359795185801080135009012413525397239628959451438130572918439892476836743716571747968951639254015241069927147896220327045567620522208180349241411648632419176830170968811823764704525892807156766809443592246413067127461019691494036930024108394593038388101219403584436737486402910730491981411877296932014933395278830598632480410167147674914646912622655901706671738361486274677476071745940122288676155528785323329177769767087973606972405273499054358089965168704600408965548659341184096346819407274152779076071968249314109015100900285951070548154832145656934434790238800272936290733668403280811249898951461171117754330980716537875223093503010092468056684892358518081766525778079757191933810884312206112921326998634684116692528972390279353119542666383082650228870650924311334671003264952771807403105111333639933872910446345292449069828013738341206291901161805427436351890367420452123878358900459366729979661838756437473284907212867455306184309162489708162104533299746918949789296137519502126198390903424408005096382727877242721422087326277712643002560921883519536143343514134792648425848450027043502377521220706959267838795670606790763056592968098892213273707281267334321496649300078621098103844350350954029263819024782866166573435508821788951989833182111573855744764844029328296006434462136806911788151024712888874293832085865848473280918113559088241295913116663017532893746534219499344146607807801051815950584142671345949174138706079753080512448014829803521171461720869122051659970534223046564374682467015939187169233727973975803688615990739207768129130358490660147218062452699633158781141488524763974320004750976776259890517871564721866502352298470259334925991033562277611163309220370607713194717672411556159814618990219886389250846884314510821509548890189533838180012878631577173453572546260726061673777312931136293415765534639753971925825558677058254444704087594104099574498927141697088308186576483011772263399515361756057935772711751554260207063539914765162175636603254674907661828170004223771366008538550645255917360582003229051041975290736351166580112335453228801255338464899344381764908591334083114023589594303820028391687390782361068991505064830349136115690611272365938293786773760324058972096684437585177667633282571221642490231499415496657794651926989904208474740869538541001800639127149417798200954920768207163128648580735910476034505764026605102239593082975220756833522050225661930425509839727780819240897699578263655537612491217301215430802944513489222299474840869336765123553228314190452848094093622073760938643191261569927395743818368572733252756096291982603838060372440505032140887802684062342778646118436942210375460695843444305699920885791326054424298295958205553302049598710415256944185396346577892177257057465323791826454847978759765787793262395057712633626596352791056304973012574539868601203100936060170523428505024514280417668145348771517457407386317324472384554409638218952961472300672399491915730671966623167808240689307143289553620573098563891592469450507435238378592534899283100700811875184049829141307741713726811283715893386125657853962366145360126989972272615246663001213539910459623345155229909128549177141058078625307923777099310428636781212904446623787801577566159307584144550140771672389124223269598332225731702351203034625332268824650799750984775091673373218458286164112105181647516213781481087769306222813404498368230655635111468354961406435254564543745843884418694249734138028295274983999880387727095000336476984556034065309350808242997350485921679313956975013580859103741128464981135047309991794909238949212197660683012329999150666864094220374859370964634158808387611856991591564231422736612136942293138075692948981954875993309882978115480354875649142363422015389168524179894998026920192539976801476563064999143553361270193427414074138139540390186158762242885104917960120489117207732862012997198919697991057240150344163242974753331586849626315332174369288760967202687598594266271571571919372800113887771216446028076023873248872911905332698239410824904752002742495417979706411841074384068174860854722968779759754088392134752921279907691842959555992124187864225563439225617378671772648400729166535044262866587836797940823374480842037317181347102519182683491130785969353017068018643729959408894131620618082260113605392114796877452511028576520865064292154231866627800204710383248525989868711089326609985270684844050755250432583584146082468662015115547798294104320650080617254949736236203342100937282923924657908165990642836215676040719084283255439857530953376614981558012757857380917622810272122637630284790547291859082832601484421869771652886069755344028759941003425322915208934198890678736646937702298953011612755211371407131325030639541626441014508214981019038748994213265509154579180014546762890368172883799125617848044422415578645015331729619339372988213808109060623276300616467394428631878709510023277633674320224309289708676421167826255872453696399885729020415326443329662714129340178665965205790150115192724807387794741914795942158894700518998917021030977314078307612844589162755135937225945847136506247875885580474177674402415479736456888862396776499184081067045430700066693355870137188152862138769437868553579620630555802694797517195851496095712392215932521941491530042921198943538681095516315495463579540781836736208391104299013664014668056610840519214621291989396091533482917596706915566606428447903729843982175418700749157039078305854221835873262056194927174045948520322130709737729679572004365158146571281205140540941771371595942621599927100315181892332042793481231783228109248851480241840863077273811123740153515454956359767347092606933595941999029232385557322922259342591617519564016098514371661781415843824506659321374819584147366763524458421604776842145417470816803970773531445683050777859651209577380433088397690157051458664375241253866097976550361408599809347921605417868743474571161461512166696207547306064983464829972699793988503184651728642038897149111625397716658211875923396392150350541971874274914557307416693758751311897896398147909246317832262046276624538843367594637294170555627506643171435189430544471664808936464340614317736788311970742404754691881554139442320001793505395339416607766125143549517833400460485304465651815674003668419204812478839881244834588372602681611190558320685517704788048484266095755087007602448858531226305057974374570230080705380613234285390490410495463485177084636900294273853581802671427140273971153716697530843455265822134506697794386758257907937408150378189139656911701553208535233816476560650740764740674029943672034565376921873603684399037255523909040154193098519999842191483293541547106905470169824181044469572823252895681185312704818662795783119307084189112729062816911874250817043413820734921668987135379874428193611574481238753295795596149538815700400610784332668371089004615686073157247047899471465856341852735831715507551257302756854379690686773701838384360596259421355955500041159420858159517881444029671450422710146082725405111537846249365809766603757408605852499188145572176945205954634179081188617488068284481882998776837230015370561623201542273161693486087461604097737294474362487086235797579079759371095552411347508729942431563585550360384164457370142166262245183071399280152098093201536763698728280441995645672002936131930450868096514289485496034837708764311317806835546660189188083400297417937124604180543230904183129702668073794912866742493437926518287822626297555102948935855881497462068668004818272893184842427705246173460572632432857118336415157245290162142116343371161363521119546399024903765911301330599936006658996220755498407593420545691254826866787431006516518896880189628814008146626833693814731712162663355239774723745198714445678114038576705046806601172501463749748114363887350860864815445994570948794283252939828970933973142699991995306318272517939447799534727562106496923784090597999296187482265499205554697464457105976860986932634186907038038112508601693822718394761336900503061813021762507701869164832677202705184877398194323323303319860023605951243149461109087550921487406509909130514297218472777143213449910177015516187475672300153258168975270661578316970864218412535811112425001861538080815211751031255347843160679677210468575701203616346858887754715870207959521643103938270279621437808632591837704025525164090895919476681278056977144757213881254485089064773378212616109664153665417150110570057439162673020257359870452640569667043617630055699722839467774837960603144710013844743785480118879445735397787301752043141674829494296756925919537675249784003184210683754352186997995618394801686017945704330357716329190632553147072349151584906465773329494188647047050985860398476066387848237630362423044991164987490657960927973449818041672000544564093430301115892066114342964522979106476197115536528020852167158060475171697579493792591219484937504225748999077720184949055385317593658394366637196126157378859209231256282476001589176403761769197869884622146859063730903700636499403095811113981070677970252078123625823604407801054146230722043032804004852615904689373766954267863088073500884178920307396899296033071086815258907244521953682007971900780604130960308662215040815372939438689991856737774137530355359041889672144169815499812068006803503330157891167840709171596077720880655913436416865127805661354153386034283954829674602629087358251180618753916189342515943525093913581808563638204574692405466759187797481578170722354001079400161870021396228965424289048925131926051875566722912085483785268403106937771615582361638161472009944231754778191450426015265851442142555484426381936381182894710883680698913009912062182596210326640185491053446982535472407055813120691664775336421497082899347611588077820802142524313098951235058564714014162135366666586469397540852332112337620365814966356318074348986557418313638744970421153859630588499162630700330459428252294496905091680602614054588244630521861553624962107688895303893539607318504529230685813942832507640200754636181283654941072250792063032781926930151004712187899628504613775821328469759298739148829806646840081727437895577714246928240979724870225414456323137250146128661274060970073282081633534342531024445532812980009038181649327963191161667836559830054094962041338869011129656410796923344995010250447582404207152030724336948979856938096044947587657717958422253053102903137289237963280984626491608591752425140253120662823610336382156911815610242051469772484135187849570482438100884300791925424958773819219927916027032527863850324331756793649445225038545055598535368234614733744969643044837126587569878428264761487086675924030238337110132626072419056343287243319229916648608330931116101411035305792138770915751668737466128455774538726177626249456459786603190379961870638849284266868137801484558554452239774615922620439443999046429167556424975039421318567310274589760333085529425976513137316504821945315655548159972344004079471416470336956710888111044397168364918466287070006851478775103432614387628093083846933170244919524018743669497427157930331860268277550987291662855170942730043931228620170811646013696375037095228505076563982718657706759954506533595326059101608914459202386708372443500896874028350865040546558211179246685181788231564436479938308418704284584246676160080468164325307251849404015394051678289060953711139638882627325390113171153561753929383015393407615881517079159974094900700262883241160160117956608487275653532987813932838278633314084215938857280767669853496220483805444155285021867087778440869042371020949524692812609598021218283235401073628437912515427828574298655431951143604667368924250428435324323098444665978903407822789577889254193393005329597484338359752617055182096375826183548122783937157175825586479927861662808384297293029066113563448493515500912130470625492476439044898997213202687938868674655293667709801996024915415925080605884003660277540870690597110131894465523280590900207014498978939566218718176245109038334730943546077252082652667065177946562034624138815073966293923276651260607685386638693681846145930985381731674158408029732486699507981797767418907043440014077663971396870478846335894717898593779040399074348335612091660537033020810695531269000148088645133687873809130262617255049643764758178216519982904843285001067034862179371720687294890335296898359633762392712898863531281773286827834395062834503764451036885917422412488234702103546521556949910198775374499750516932310640030412526654518483218675226851059138286341386031539688119965778069746792146881643736771420636422418876891000417018317912948869933101973598928566650395953648581816898468158988932257789498369573244310870477785088982899555405661592523352790990008501904579901160808265214437152483588517476164554916440174413659280624670207043225722276628786076267325857594597869134862650506575231664079153709873494578021512340308996801082260692648473588682159892344179099533266826043793684420361112068280264494224518557578250709656848315589696331142223477805525494829426698546756887099037105977491006858646889859095287524637828912419886477709609797594243398140374951822900748982876766886450486105540197323038496063578696743278514542533895248796229560111183622555229138578989275839729495996824175120606132497377780473296395361943231379454798880328598377050987640103938854044652354765288713541090756960872860396144802848669005349166311291175393787371724866664939213105826424717919951890027794257729004518941456418713523597897535659410953275267534951909563896752127412544271724164424082851770380691238278057181464689495022743491743502973342332949706097466396617408107725526855150291628787592360662968861710249235475426980605043066379814827060404721689631803621264475670128176647663843341739252754703627647139460583501605218484524637982120225724435369800452292195837292635547498306418347749655046936439082954745189196593229469445986234983244772059980982804791184457526102380466335109172831352736940833474957105382156825025069543486714149362347194716837388329291556622518484449369195346653119445825557366716216381258423024485984703567598973626043327667937303105257258135551879510671858750192602101226216577323259958696309826531926771980076081468156497550686951055421232658086256753232070820930526912229699839871959689653513783055028487436298735660118817690522745031136849982111160600942328768749001890484803557251125098527001347493272655933990835248537855786759906882790950203715613941330560348147302897705022233438795971333063096233806382450116024079565284969767263610950398570558549482788313907658708300599874060580892128232434869365470190746756766303741336583867149465914776950628340737601232384160629612753724824528220956413699772099420714357546569782994504972824542397800635186910055889099594611523942888364534605011114390639224872634509799585144506909579112319856824291487704466030962481731809092014927043595548394186188784122690435064730633587256273989429308831667940986312375111370966872330065000118428784183189525763540378732265795785276405210225764653064747671463279186466108394879096062085318422963161945131628304384426909249442791533825489139907411017824794482917263339879422655291495791839200857257419911848366747309832037976516832872124383235277163311298886374862636724784040216612369989671740480240243530772847814502389767979936701381126938179716698822682022801694617103096678589407470492091024730604316107929425675461417174319734225690498554211794124790469190025925331745803462590286364175366326641773463869066190774443790828645736826472167345203082136056344042899459993613784226717315354022838590930146449803712579566907190861083333300894909889266048478411593864198630704040858537027396354942571351774576140397555887990010484140083139474896233490370344072394517592420200746493028037209599833701856105344517438356128517990639537957119646124475926402813450136970513279606301593660632218100224635489104576710993159317008008313161363166470496195442779065398437934571567584972583097287746619890884777220775286509152893566021147792830561494565697537471188584032833797973153392489090904883989847115010807973473347901743147072394184473285429238923980670346757994664868265090632201736239136954579996120534999214352285569597509892116593594108429582787645522656588959741041154283607558141385179869164194768895858655334033329367430849019943501985247936172164154228967543324010168730248868793255083561839535467620532853570326903030807064948101592837281557125923442483727384771798960663203763849185261882703097134143903214237599404238503654629372473271037437609476363304636796150034167248899948377022132854368829296115802558599476786889887646375409590337372084327580360737873365201679260596681073040600302999188351610801674116556323494428515256216494037852374094337721400959042754901271018336670490369202146078608135433339142653163340454864414481959722406876607283972680896970007266009032187372198745755213255850168717563426258718746569612750119879621358679059367457544908419530315871907488823446554841887174975526770826798867941015192610767072429870610872432816581155775631632071127043054204877733641117433769086401238729689468116812321431308835396510095747442334485131354026221474019702899652901299129072533780882442517862878230086024247947667457603050166728668748590255333473975753204563770675388015264053110042699255522336313665114720800334991998245954267363336762435575029316425316216386082878930643192939781757078936008525847465718754133705268206956210251546875286284548875397966792087543870931437612539292310298063849304019707342274629987194047075283614688141067480120811307029616035265656935124377553716694720189440884927555775936290811391915553220560164455107099036315320465940482816572730101520571069810088597297577565435850316982123527001422229406158692865553315476102557224453633776062148133201181522261048212197336428842635442596907775879774199081698740057557195649513872028225117572879359019932963604976235872672038439337271727322058083060038266702872943011222484592908093037137532148546137397992200182830711711703005702526667818400856965179999460938971511116408651733374083869795974942133925437912066417372251798718274738880732686034526710233022586507536910174186547405602155608321296623464473442911570526239890921505117189876851122279161862525002906595983843731794894253494762929064481253800165203389948937902352738470347200303706966046504802975942516246326012714102772957187931045540844036200554288622397418191893269823005828700526042967839166967133507358862249543750583543108627959146286825038106851541712311648865155467179895148347191308726889222106171033413498491738745945772178431055744276261748425286888760410236618018274574872494418206510602320060733170072984145925716190150772513156796494058084646441940512113647383989713225962749126579314646778733500749831033426832996801555400109414623158893227512659286813716496176729427913363481183505208212361991004827312620147332780104292147275448558820857786181452650395905242779636512830829317790312333439775195821735305701176488893465091370179268447320276508123186898293542306980134940027363472291147716041530300139281903655055325594381487690362261439717075585202374693311562517634654832575565661370202069346069331713282764264485514081878162734487754067196485630500159314386526210359640057912133750292805179469136576873520466747641064120717569904153038401922971243964644508796563651947747812491562232876712715020020091452398360469424164329304969292670218728259805670317536575962865941273697465657855030648345328399585819491485617192742494206989082761628312040030215668467296821362897519086184248456212537753577486060747009076555838375795434130680678076056937986048316869383388021472705987767672510831379363898697548414032800087453995907917272935029946991617091652532112274649596543628642935099440939484380998434483232176053398883511133154036864801044985764924375102515767714254464357773604325933597787703492260909013386918964386242706897045797180471485728745872244672136980654356491365517177196945994414985217514253562566616007401322755830356711997090747321603298988705763165360772769530031168064096145394072905333068386604372572840898337578221541778329166919749335613351467672824076103533327977926733759783772866307175355119416948744665271094390208889905941788157991354685794384759015598307591760032384472138000066865949651025422309188846607172421600557471970082406544403588062482774899451364376326069964916391997569774970170002098007560280308461863044370726813871177024951430435159553531589530181030975554892809757421819033841645812674928142602184830925255725398922427942548647774770171308000516763556975866094639001069620280139668563361273237098452411001149460282873909968616244540948012052797532730331006438330298517514260347658322822845542601777928286441678957437639413809087280310522074579599546212636097769919896383954492409004702717449978550430247731548274815740843707552042734084082745411538269860538561465813004597581948486886267916311157523551294707985355987820679736688280184899565854160537015183933393863656918951653903666057681511694455727127186912306303907109265624507142606118341487904419648945296835059791883478120154880217958208596773025981828153812610674862575370585947950407219690650465875521290891666924352244180122066440024142158799070333047345199134213687621953356060886722594084412773420962148852584935703804430834730250988311479990186899970556718873985830086907712102896098104491258471870508670384586505897781364865346643441905734001286506155903006335015685805080660387350835289687329051520906963895331643933530650558407934115321598240436468219680898606234335637557572274102100547360399017550674922087010525385843816408012719085125990757893732732188366449605382928156196630015233883282065485297378998582049211893236188114074287737130050914076237771620670253395478731558537532791677724853464137233735786535326719430585549452927381705568686129828548714118765171951360138545590482607217666062334929034467758270575956165251718961351767808185194259168408968594122167749893138382677766716799691475740391115425517115981105201649265065544287987732295321952357505099375286996276014872414932221515061611755924072951093825417423712811904131324647484768561655426894278395183331709900476338088487968274235094957796321419062605538688757899326056421100583374063925196749838399602612350569252310289685051244934873013617718894301016534553651199851053155197971806272247739458678616415764314568666735032651536552843309662115679087282887469209223868025310915214566612872817496275872596133123070892916857127749131402116289758141192602366680903150005036751762070542703790540005399761864422362837048717204504640588746600156924137938079094144960049064848064048830192845159053412188331084680779800759153509656266661284636451554673223497604910762503857914838637767188081867951866066658882068566318151412583341611184958179388122423243156205387817091488465574810807293416776865728794385330152399402127031687430826959092055852906703601257268903819906022624459292920753503122700866562828030413088635104826715074487277443325895401862989706213830079020548825109508604369598572398576207553104682279217066329606634771331065354525477519257814960901387595253224224049547195260984878814866579455346046279843772885103576154812795862120173018711346206999622099436450359536473001141038286663738274223696351396759242166044268211666352097028141551232765864491784708711664055898146889144460252754134428947607915821678103553059017318515618940983159617910167443474311337277389203525272586544980617493992576457916784844928033461915139009350405841900821287443436801881161589643935062309456093741144076713678718421777806778238031377747600512449720598101234540576184397404126386652275895208361621082896235660794348506495913852318342999232316053941178849013371719534326315049493770787191083807608325486715011776227512418550827356374326201962415125030406468619349377799455040040966700024201349991651436650266970404622411673082405550806735761659919349570344292458002256887437214416542100021759158387757431316666547264586452764960337237266351717566868894471512420784862402017032283073317934949387864947341759982242945617251723061013271366475123734281914228113092318860554546524219835844170642885969104515675136002919818642456464663789417392885561792100651978692572713257604329837348373728027266102170743084611948116191515308571766641799922472911396857023122328845446901915231779706385181730418515890806794711607272839105349054743956288874060576942842074507797334816252653349403527104650485398013565552507204267178502202817751110448388489901853743903539445939887541558543066832894531855024171887046505079222885322429344390441008253286046669816934999683425580715790511023879771361136455223695229118506525806651039412566065632817739866435476254842402713358399812803969045045635184363833840186013528153738950277524456868738791759401309185703263146643963644507221287899142652166388952637291395560593392877965969284985557693620664962419438473604265453977389344587724524927685232941028402181568388295434959858365703641038048296431399344565239775538654234815582841649025695578636261485981968371635633630418690697848528044950075956941924165911249075568318981026338525353136170579697221671283879852479445527112158464833785676602649840347549779168970321247139285453173782188915197308534980281690465793019675441850625108152226498380384302424073160510972762268536151360712309515360857022771325484684077209951809192696282780380580274612400507131931003529759654462282953548576993741726068589793052630594331008430422461046209817229892872514542622215200621679243623949274857836109991924439320632171614303499196550658351418835124705579059476372340660412409556362902195150163625287411732502257162215468488698197500163759545300952618787005651851063676165473773671553784096941305130204743404793699256872076660096088044255980916168388436200273198034595858599426304414930802611834740875734416750238214365528180550179937492570766920932217409856575842940719432027442161762616833520415327918315811119670518512908369513951211540791050498293824964018909615910112345857949812484016177019822865369899172829727091313250533317975422824602125512572007051792669994053663408284478585404975491453604549124576420534120406327603143299106836009293583211587555680915459885649280677653888149867095305106231594221672545622395600027772547419367664928277374187689590027278511898832508852246322735713683246778755171249935387857251604183443346460404589244915373538068799315815145944826785757598765663497465924603028978363376397227721565185114937483517663866008968874818132905577472907086014609364001600291350877237760595591532828229350581075196783680067391738438993729279298547824987858696619908245021383354513416387280617660204493029544733160388214356895631738017302724553936159748296677896895948812842046766296080244425388031952130754426570970715192156591369055861703030719650879453882034281790218910794787518580941329436170933856256094543341380941636213425073928259500960533126801114165861388686958099467327174878406412632899434653482264242011480218087145309140507516585769676789972746375142776566665971322298123184244489149196085769022716171556187907334003171827285118997227871066735056477773682768501990189431494483154835791621491188899860261475993321039291538834894785350946356469325373039627682587113249939344749144890498861160091966629128258109407612105725794028001834816424256190767578585023608050377978870122786189947049320897911572659307855031913205717874587002528002000593094803032027615659160489661479096014615075190581156301908469984789106350736346037574320196139923479001710081586911398039541795770784326076312545167392310800790920219347654721089656091946575638572353863484437904369570665053781898913920828544617612740327721067212278776246638657573629368275905972323303435840175148147031289708893677125716914502336531180002620561170018761188634927789279342759842012108355266855271664577139138916790628812569573106144901264982358533326732445790707887648052585397162985756907261757630493935801287477844336768282486339130015334333883241002965581210883728668361205924416511092457958834473191705539461530688478515843159506740505361293462186761718276631512213157043702990665501846915280673328643623191278516040421323480214961930093506677101998449369058779130420559000378372610309625673293997860659359869138020330427871584751089234580033686346638623716410661842114199078959721601029941773641801085169822291240524549276479520433282714620589823523253913916156844335896586491961965629936767592999798957479747994123741957244663826790386541944593497788984927885298508978565824030203396289386577764927595640895496527512619875243104236914580445842569409862796448251139852732236934687272767585051269288232042327565047467454077900482311153375526848933007759463990451264863864448435507553149383132178164708475141672486948293230044137772125148440277567852136707868029551447617422352400231111909737456011884008868082510474406289517942727205746160242221840904427931982514006928628691630170474575909549631911310640269908796732270927772769018085790236215179040081621520290214398878716569840429226456241032759567419212644214519480786557246192495403223221499094756613792366464819602310318497708412742468016259264176743383227825362378391279903632699882566873479051843068458330887458323615250255385641261592172574656112667286711375313378651987802599057814523308826155098519495366019887354104795355597602472227906351844910052396985095740462089385234679633947459690954699231491820722932871880533622067114690832522932613411001576459596184607348289642940466053507573329040642551520955578100137120187942778968121440626848756797380145641184738993860754880214353592626485743030469173425274645562304544841941419162482627085048420832310263556783704912896121671778634751155802077518224696932481489779315374883369652369353590047391877123718719906233764456023263063314331237775053371829473861181957805006217063993744253004502980832839539463563476000049306340443223736596817677531565894786685240891248489292699602607333260546538294944904240598525228126130114893083112279376566391122647244705775815369865395829696778760171449312353181194094270482835048541674442727024859870607746228671846123158118311142428720424178240141255557470432977249592965275041989676761970775934502879199035672887994392718934440480942467407772638436956740719936125929618505630515463754493893473559349553778348823035265887385689330291909505182563108496562467415920809250648010529131471449516906948129625339965016708054403961431293110357237851006740130838852543476114131788412424602321664154867586624706266160841957786707497198199674104669547038646054647040012821522514568489562816912262205029884533511834668274842998061501508922444717734092209659060995835307497279945771078824820209088784800454825110126077717182387348185346898186781611155268397642904304403416476009522361608477546065073761569202383303418953063731911712637196357321535503489111117962035881653324230849027914007351821603295374131306532154533477640821898413854033106578102919770368990968472551412714686387465882885694204472736098472836941559520678038547168269235312421033885179227435874323005897329276458534050614916874794157467916400641857580587253085978539038412589646898804525705357723035887611357703127128541329019693890016810673522629798588339411845645678803319491307025302159737347306877194174174420804552587044109202635303421396236890692718579001250225105925548272029852812581904586220346968304919195899662724640348747510594851659132862681939183506431888450127508376219801199896567749237401000391639212119629391192249917673567470148236074589549428037060361327653562471728256666208257601598280233218281231160377837313360486893137972021014066727834492662610715975106279415389238391483723990417909115750001160792307524527541539516967904659875456569929520674895221310158068270518937457898330047906194016485028695342678745349628047831354692194455564587822875774804890723718187467983389952403583434848880089557043079058430960740938384378472181028525246590627804589391725161621442451531418425725889561710177427743514634131202943468581485566810750782088811747735638452759771775020487203682839621837981735956587935592885206644328972736243934609115541363109744702088450226662675067620363570612044598528670086734028303815055496645988141044560988797184773215005216933611215216944268171762801531462112968374705177873274589769771271954382941744679299358795892468986175718010775719128881187024290764149960406761510183914376044161747156757117900960030504104850899021724093518966752052526287397367049817095126421289844146737619315451433812723142627949196546086894764909027190518429842231952948028782558280017055944924666268906025928737106803861788569310463693085359052386583667107006857565376875167653902294380407890382186825388503750506466719583544710402917715602914594631242354234763402375716946375401707467089893305456048692043356126417642485203275768397837042078837159922720550613667079794031514938942165243322214523426065550994858125101060641484042262122392683629342294125187326333672347266717524304186060117506021466953085327656343700974356032220962466186117535685070936996473319927732448960277615904792186574574664561893120070492239413564757930563387374615902513156660641481831052799072907837901045268223768589955092177284978363455342015601752331800994196705971085629080483913945754987247290747146320897298050273770562991234439364679723847682852346045344612610785585921720144009940304820555254864629835886907853859776226832956997348670962353889412701567226588622137962658060368167710189485791585252657281469037553326301037688600613142725304553463543938339501767801312677056210221477682153199867121400063331361823619542183155013849634324531847811226083938303026091356699780331171271006638767256434472811985058612340233465716964013188623039782818949195512994030932038929209192558660419586014186525164716394534873382225897460606535550325227719924027863589702458546416512418145987961431509109435102999659539361380783210104288317739504441095425835261640070907139911553410743844743360221286317792579914198470818084017466797259079587045477251441616462362823320453415308322861570498685354497627918304900968899297091958655113308411705842107774144942568721286695831325838462713613233793863139255587734003140570709784253350158091608624425613621370743514261791935681500559159621431240391192949806813241581662107671069863079608874495328929534447519658218672126629303268751399049776091242715340279223046483078561569185231398820998897687051739987762530120512510811976495744038348092344403460748137290140828949121777389237630278481410046186422213866073555481989080873225736762684805369549531580080306956641256865584743217189560978015376264764561419391094451765187994180037341695480003555123025829863999490295037078889779354590158883615722067312509417284126964541242683305476574555602613183117366691652340903399290221567420655122241946773608174335474864615573523258281319002516804208605417521811755967667556922890987191250025627852219845123259543465570220879210225821890210342557397231080322219763234185768458528007325158849263572396640703752529002295155827625341846730010118857205373543247534660769354445644791298463473877428113618964007284190561424091322182780624028053911192257909348904734733306519356271133332702022620442725482691297300140050284383850886670686548737939065724369241458497771228245260978028785108838954571871512726377466506494396043139164159977919412358885769898150639123601242328171356580062831798744139262812110219136042608563048543842911269576900288320425498822747188507601405927445174213654543613723974516614272980965863398908774876219418279278176154403031601961553143628797274740413291383004131892812007840648858909840360565014005868031871220617993970145619586338053361812116553235489610668209592439598141915285535662193429796244747049766269103671533277048821785323003996648124077187541183667483223981229292908537242030658811577401738687518082903341873697875775039952375439719996826727131384646890406569806728821708615131540358751817297961282551892129310623489809293017986085166205504963267863854479430984483879993120693420878109105524477773752260421700228743009184460634253253881742879041272355785784484044874829717863343075904543316296312675312198052193217107633695647829435677664525557080837490064064461660323594513004034076236061381955752348107788222956159943672726773300592393864576122694308639116692658864900748594414147971782675549436273244378420253145632672702601421984690649324058066735675116099918221494574739919569467030528454099289106407627312457142163441503215621845425912577002152533042950391673885393152600343101214516720573935610001520957068886486074950208828227927313485734749152950721905437280086883707670432203259631256291551004515802063515437987765348835205584633860710487730222588843606067685328775555791275613554297087944944189618171239525007749756627202664698692379592539445017750364339977940687455763787148543986314151640344345302376714106985040328387676187392274164608238280136771164540387615440869308652140064703169422052235251330192117746460998178512043986514429133476978238016293603223604240388242821640494863337691939885350695291908093381701996252126703565853535005389592528048052123458927954352156959173307345678984600743667489975929783374890525236248550732143800407817138633398627969067022605818043986543736830667119193047993509906770205382333614313294329709668768584006118006454882601736100453490831172022799008006604109510685495382373215661482058226326367388749291069611530507959911515941269306314948470522589356691614167156736396872490766364387323126484832546305938123772501624890767044748328713801446038218180465535480919664766446023874619193988510718076549815130704598458139029387964439733582937144047235858805999423715838332933619455804140376995399393403623241028112396466436791005998393465849717444087314618017641004056001628909788172572540587793250000480831942029900903689303203925126832511141735560305815898340592521341978011420060642321762439505038606106313784381623520146138412336338398835733543817370983343938777496713988720513032993691308455786120659913430329945243701565526028263935437512313123547289582550581827393182781255777466465053925660957081459082040375498453332877380039171140253436049470748895855574675550341519893355663900193585176620378676909788984678629942894812523391977642229498747254148241888579454640904852815743613383187129516386009607419893957066990155761042094495561992273620236085525083140044843919680835373206439446617591077641300509394957247840096902509400969993581630344574832523023525104241938127467592847368454368989086349794915116119410359083271819581532387233880692769964394123981382896985465230496372408843406744643951948254140736496022024477514167033464509617237154093316028820223913386004350675286790352595282178199243781274011270518805841752880836872942906676671070474175975019028013866260340369386653488078249633079231598903718575407609190809797111154147789768280621788532623517205091753859400845277259049857750593478951911266556221183736222933838706219365675832246381311150692009120621350825679341691278897578335501497927840530886864108319891651906800388991012421741523176855600850400289795136628365409049356387126933443791407022430376651573916425801983111730852483439451470498549574463503403839865729147070601955238680528511084925728262079232951256861794348089082048202490661484019142257453015547906897457729423209773874110026675899572754426684982144847865663444973255792282146693438769758010112104349673501792732622691581408094585471160246219090729420169921582730823714985580742296592233718534014045781311067369392489796431219866378130241192004080264978021427551596010627294825608851352703433534160695949139475212962563791678213548497708463803414387394801589487170808184119846981384401941075963489405079624527490098300100349697373922596004355215524838512014194545395938620654812697368085431124817255714269263394252575958041691313442461659972424683187593928812987253496087860151608333598973419517172046850901807917508579179105321985388885677775479507489665914726276023263631739986359317705496866700950549080515795332704763257344497723277020659569051655912522437382491002182901128566083519135059599282085316520794587149331792638898873722325884513480961172966497295170837400576173673178269554653192527773595331234476711702519265489109581775564819525352468214119793848443258442905017229003519219768293119808403360709291723977737098133594575763273637367036767559443934408323915008265204478419271665541425468459586645722680325693211043122862280766848742266364054209814202084935582483145842863532034514208065281515679857709030467715376877775856883378274598468341088924079951644633470080037885179927389237270424924029418322737911351787184074865131726727864026698876299565974070107945939928092637763229156298964737862476499540138678256191363568249445885386533305853432943428839039557823806291906105156231284804293606793657873728764515585190341207903539790334538794539120228649923636882991152708678318027736779522042611149151531558820195738540064312896757967671162461452713740175932079277489605631149894120335719834765619517200185285023854709087627927917916043617215679040670971816790689040571895211094965872150888548142497773224730953058960750972102491462901771015105729319615874823060190164355997123540289805624288583592345791834310853782230966842151093770159271886938963135067848785661550627571841561955708875531673793392825684774660902885513141732130826905961959440117021424865732467791529169064655375907885154094950226924535400537286250034973328564496555501507664177039268779741456105121009410309131419721696741253115918996127116271868593882422284862544593648092043505319733458642473777410845450072391787599610029432270638257479460946999270405061584226312302051860425538089243093644751981510046313039245773173857658441756633059996621876895311934819786695720422390209768481698869777489070042804356979006014715003439067605585751432019938383980526070150335075708626296072800614890191508428554381593519990964162887532749124866268514270452229621247980142475342794873721469629033098564853028945179671484955726957276847988418884116784304454666658621169417651962506151902117427936192104711503931017105615589228460036913772973624126227349453070009799915052001211542398690668098601124715876557206468340381483296001113434543867264750227554120498736042201938956691820878942250016334499883255503938028424025286146680404823883486326925474806880793930236642779252691780223571326237806376168743134966081961873714076813669994636272948948696379214498051857353911759381147085659665508867252764408173567640887145562971110692474567216525220389271694805304691887467262966077284276486983578687076293793202943705903963521675971873496110403700375347357206933059058743175621383634563615614207642461227227085023129066676476283603686851801420373008275514056940895080708758382211740867139328754699482417444679704935121326612686259470890470768416341275616089600533930654442440415426223410300645176415969703130062301263690903272291868312524740861852103943076109606713459932553940279190537887584591306735875352958699931384964089753633421473051583006325271055370628875298706787682346115293876185815644630072738119278861094814065627503001962194842335841976690954692015980801779220779245776941987134672864814524970013087568004574977481003286158137460169475881696203364205136508054410789919479329217299430563422191949091018877696799603672086641575600663908815897607646155719204653428122353709069497222012225363166533378916709068273690935784178640238997614496030467332256481981043398235717413434693809271455017902909824786764906631806761654632350799095461072394656370887556947414303496446048795211639266252698661327371536660108156524909817708068457425466016047006332513918831215430944376255469686924382435097813303140891917791824682884537848547167965256260827531365851148847005170241924462177762703791487143339418166666345877840191199027891642101826298349975627409912959292585155271515982952543325833012824280498411464740408190703246621539798115445397989497390760013966460901001104908098187690846630681924665834402445172442271366107702183840452943278173956003756490939040713506650109431423629411529118415404322360782819218225257690944348695515332234473338350501157621994395785807014801401197285033226795826135162516295900640986114121363832345661585145636228836759020339604055573532526507260566653111127271766326508003437512172114620570558295436562326832697697414384564086117100436567157875709158406420279240606706024106021288795686756206528709303330336091740809178640862515864331907245377517732312120360568956854192501373106538183451446622998925113196116042745830410119143119100050939646085076954183217751923168833298318202544775573270514479926191063795677594276246414854765920769999335018169904641021009600116682745304960941442925891813708596221093207203934433633803057645773530664310602095653958873751442764729734280593865604784547560559293504414707188237426151343474072091205675363729905800590579736807835479787082544812510856160559700769190657944163859347513448006896739507494170613025384272812238446005407692759583433449852657240315781666513422799762027950215227283544946418257704597210082393527483523368717294807700407328110917741868010624816435763432019964107980384305068879948962366903577695172241335296298495111229385841409950691601602257836207966799969609597545180155975569049522022137487392824950675013655212892325707962692988194436581918838264542310824801100788417774064796600242524979622543820843187935005572629146895932647392711107914087037869531428688875237780740143853748535972541949816357923025712601163008435720646034539208672639262480536574903100657526998191311337449035240353671889795941575020921711796076424025003424327910474306423043121701928023543893266706851553438372424475225170927096181641845827940071909080163916824734200156360528232926898625450021432214635463423498934338053423071556168125416365966675935543675984519952917009065248312485243962460167256246655525918452424537519253173601252929704914139470633069067797695382757763872154430080713363643919822553263753380005434145366928687791832962316991630527041588566708214225255272684949680657477166430283603581931488991577244051340160267909435335948741776894199830059183382353568311510063699367649680825487970051000163096084698084740585504983306788700083471322286744796904951850863794743490454466552001161985207418022783893678946138068788249199082218938573619802495767376079498058916134412641037100796738425325368776899620418056350304317622664595915530274698426981418611349764137620917600775961803820889332432012048949505273699745130753003487103146015373828912330608132641945321580907307656183777663060447377317145230587283986196882511755863037254128202722099682849733889510503019364217377805741573988692462751454284427388515050832621768009714791580079987529932477792098793233323149762989202223601773469586814821089815915708790736836551860144830107665609956384098399879232307894494301279719456151058329859875109350849625038787482315140102003064146414097809255550589554422171839051582396990293088894792662996208128601462254231127279150301997828315889415107644479554876915175379117694456931887287644223015100714526303271979557273925394729262422034104478456577385905288726912460716621030421075534573457787598385732746420195025635621839136252214612040394109206907068336950328024880204438000719280605476807224000279760795235877270296135073148480112999733290059637771242008433963560708709644006142377880483314832358840834212688221753565479701360841914803848134975175478504323381358841580134235904776129110033928660753047470151567721266773318591066776643359456965004576660403628545244530712257971542693297042834768519280989481186089873350457237720133076488335165605588126432570833636590734176262575385615463448101550639588971926797964106852777103040706183455609898817846142116707421492285982109120370934869362050183106059408068396448329710917371572331540537407703788544450023471413169318960631145325789150345380988343963938247315517100046137078970433976751953692578323876277306735183360273543537651376667621879233706131273828996235488465187060393188584976270245632223390259627064307014478438186110168090053709505453548549155530548835962172777327574197732778858815424432204402532621655855946973970989792339208029870616879409587346269922123874816790726216368198588616513907426286777179108602435758185555832218879908817459927812131508760692852207485013991701518337956430711205634102999409445667189559874615738625420511920630066852254449440610444491403105987699335256082690396818974834153670927048968207654803000414640893836805038307588809443756401161003110172539285240065424984972598568087418241703503933830383586474587097636675353820861317161113671756517308612255146100562166409516840443683185156443113766664140041117250660281678644656017926586428291979090058652602693114588723790385144709535059495507960141099423496441356665334529603306705022841583438077650011210521601836094043552670625521647837420353716508567181077383312390924550003503430600669203811171053238102270581038703581597198027075853636970969741448715425132466326134160341411909051507374973093212072142355331597282656314319424526568804181166752703720009460587997075596667401047900378871804968882551338656539289079597732196176582373950643029554548217540549761905498846672757499473554745663494912477762497000367660472007991881060726121011925866615599822713493363288866701314590655362091053162054228289404300114754189844926915136444408915641876533037744422800665774441111940904745969627959150369625569546739985919325774416804525233504676571157384355624234561484118131667350940006445597301836150227257275265461214121820412184827253020738937835382698589846842739107544124341420421723868592853897848269252973931100391547183922502553947641477842783853738260516518252270401966278746943381206632224292280122175935341176304077429111054144345209161744309077866399791732029811018110236729656029465736547324163907646301642983732309169945947927467018960747607505009385443524994913073049869881635067205639721637441359883343806272603763288285838014559664887940897110383160150488527414004617418846908342439365650244139900630223020701720545341289206561630048531365252793006641210396021272201082447729443889656076655587919820201047820475522821639822022838437822211822431179767061965982138366865046537526560827845968874971290775095120090964958765547780515045055507814883987828417823373364690983126471865742078474784948555968815618302258071732113451152557207833531364725615021566718824037168783767398553865431896196093104727966917961755236065513374743126921165795283578507485697000426203406577312646111473053993326413848853149204384434158560335697085054262313223664749882539942272350949483255279272516619595683597266030470475802238616926691608190229416050307225984548548864781323056259349353025876987079783195088119711148911760790630250220666539745134121751719756521055035181922345781608751999924611427809868967310874729508171335223500102504819689497261559708017090545493055887259543476524599004754519083018673199516135273513826283433459023069270551555996992130246345513812859897446239580262375484444346422509058362454827461001117398938418248494891130428557127632377279034963162386614663616395095273046217884024278232875012556386372571467552645421328460139758300738566072959912592859730569044022387411449295766706955799223339314353596469446876770300854520497121668774624012289124318413339668621973536541223066667053768144374862561910753681188199814612813811161880335507724632009685551325602424142486514647736321069735341139387553066636210825857158436653311483642591179636707254137402744398024454384732804213701218247243646285308791343412099168871711177637030449990090166263765439771103580848221810173856486881188914490929019182457560214812754231743295770046363829731175951569338900891527536513477184916415198120000585900590831716162322812345542846862107047563237486460697361630193660941042286092371113421509626378076961474021296009942419472588680548952155842851204540513610680043133625752745528303584122123002207223259487804066767087301971777844016688457200276055067597450885537340135871464228081742972839649456170999760973498743193987090586207497992271453539920506016169977871689167137992582261236113242140776457249657753786984722658720053585697317310008878926428325924850894251980838006270657710817291402786504224360228071453170990481405778898569536145822479939679077200381748908192059879760493302490523081322498072234647871601868931956984539325381022833538833897803242957925279065825567277691010243429895590075234796249250998476469206573628140363686119686792904889759519671257114100464035363432838711478341090934270648471216724310159577228643052736389839841231554577860385540108356873349950139006793584983920760037692726413437745035218083509253369493535056288875015721265178915283139926594535391845218961740672637448971608990479949216191608948413238444923119635669592153267386528033007855023371972417942508468291056686655081228405225020797916970801266354531236189218541258449538704737497910409075870012676070087157788706019110234090678304385528406149044852726808937160038828098969703058529515366955895712281521205919755571864241063237609382496903521039832307756429855176713670994566758828585324129541696744202687583259545359621057487403158227908829645936104639650139103401564737600586734123746738385114177615490952835174512943317793853447562532576191009375388130017492842448794178908578675797338004089318352335044178335654487739274538694456032878114437803235828051858346368949632458338731901833445180130284450700167073969386631258222670116865770099158297690576022402990050983476727483589927281883827146982721288372571643560755168291687847059209464728786419123726322499607963873265816496134488739778156591430762535674982528756931338332753191872820163464884484334909434271992668267553421074558874490640174130834329928999849407223157097005447817653887080052643946691792766117402664203182838157192011439388088783737299173021583668834060087253524726472604206379108798766794908356098073069027730200181934420117321811146937894184950098659323555981863043321303703068106342142459036582529300796049678890919043848813332223016214407366213097985398717221213161951587132823119761392023577568322658383432142142316760379134057043222023671646808362590607936851727093902448621895323782838057816579824122047933098913339502083155906255959865761287277722272159196426791529352804286843446846993279122855386840036217166781837824387959044885368341883172090155204058680766483619579894604879149175648362296005564958721706839625063990302264764160180134790030357063445304460322551022788385364924646918071153833974039122937249943640699309912875352765839266286653305863916923236475075354753966436368287911806273806425808538230559717378105530361876735630890491857623741334190348761367902067220825414769756495758122740808392033310126129011165598572609413878957902433438455805023496978599730443137185098979166088748491503033326625388721436975418565022303104554625261495239266178670153859233615451363511653837667385523104107688256403292799335090601430927613166956382873127792387220436005508978072255949846039765279944980147798600638589417584874495012677309443285243136774089483702375429840821632261654122270300421089678228937164283259342708327286568973034705877386615523672327122702526302051532542984834192588285327113707273101810097852989609242021868415809181770478656749128453769115151712164913721376551064561797198914968552888986415950162435265439707015212327318755453526883592546048839716847227420190918187210800055009434916840080000583983538695237037569255768324944899976850468205726100739471853975054031697198256382176941014714426816382307763805030589763674780878849579356456673059408429589560152234055231895999015765861205848250636565643400992353092369130486222202361463528446011818429691918395825642256884544487085396577538753880991902195775202911319796141822268744770398045836233481917981837891506197861430963310198726884564840469522005343522080549021162715037477828614594818818577618158488834279446096635130794015460978269458306217081831923893631615218623686202939403779370256590976490708332427948225746584937035578756234446635721633707454568220992085401098346646136559253435724295239441744787024217271586174924908405243631096230300697250862356450221677297323704517296644076619654715393379799400685170778118994453935973686757856575264933430779837242289858463710101140831783679483397582426271450083364905023388664199893337805334573780664410403467675680090226529979267881887505588167342853731537042035021325800265879034084413009243379041514412035322717043835071409009577242187322062542142311258987961806539078745223248955008150510017089378029759727335591464681632551629643778881464248617157498661687556685059427786399537450890765930645271806625762075383212711163911000958376250787631104529692490651744614222486554357812999849566281382449267708915606725213383298325069029676918842566492202774196353510027774068855299634957892384193472716774259455527818980606131735720247966489761269658618010335031449593985988185878405468792773167717206019074925653369357500589596860223729651755013536331749236154179889345319915210561484768238848074388144647272370155809234519185044714985333476455834994107070510860219243918561104352138522040400291173109337795166270816476933011532699948143840940576000199594413500803025403313804448500195216138773967736330461745443021308747157723992699264952643817184131264432658075481659797934762190788072469544081991832554395104444400783370101466108757491387712947092113744664205920071120007743886554230384205419000031652504443718519356359133484946783696724216504394587913367369517424387636069547136693561289558300582344901395031742270370021444591095443935710493829721524731852017606958495169090845241666888890979899790538283285644669568485376958318369127484166240124267776442436412069870102419240184938758475286612026823898035024882960857761777180557319303464866874281960665060862185365981623609147882111832640754965270630343808998625389498905018983019051173241317436683461876250347978661374539737172574195251546588123743312452401977937563651313284920402261220393072016419948877026133930983762639564028704118785145982348212500269632029109144186223335572050166269062878613321585398712902682244878314977057856310590157595066679679094920204860180391350376411575248970380136968311161235410365636702625536087959058864128347409579383519981040341085752683846808241535058045300665097930604940502975974631245316206947472300875266509010876940607892498860665496831564146915259723333277821051837428929996514941855445789490256894869858902688366008583448238715520585641789035937458758466354855011187280360231658862309496208764896415500674560533620689948950937174954903160579748412100927092842862334703534389936706733277880757557120705505288299644954760418373031131144365685228606607651065240718742425496827527221506920665120351489254638712792871696191736965951154598185877413325120383814067460676450032369623184232039065233493575493902681114851455785402938523376866132145929357045661766729726996869959341756290687745382496939746174459674909215848754024304985986278228939335553074012726104712877938715590212207596160912134164139833844690405023864334385392016379748699054494819000334086670617249328832494490401038707001160932855062441334460144603155207596532834179479427207752699756405813037459776983788366570490944617948492704862329180526082826710699007898759795190155425219662020054420163919313012009292095288432357945327636245038554456213024129738186858769993481059034526533052266933892236018012954308751416383167244787618141996480870556243390366092872314086535001218441783050637432733327609019722008814468761514236334957164710123170502029668424349104701729914869143656526507749209652454438921042317692214388363510810849047281800184366081275940293421453627941184260939931239482661921109472843992781497645954313526683142088289444206315458140559572868970407798551451029471847090950354097152534562817848503408466001673776190786768080399164066331291092118976487820247294262997418913969748326857098738266366757191752903612349128789773698872258447071057020101320462240898409112490330517932601377408476262893740048966602419327539938668895822325678922863753135022486713082681835525553980066596802397440299863710326365885754853683627532469476305001005670452745436065532096234611798879426376583410493330635635386893106195347036035549003576978940419971889389761454831252023205978538254692022040665576469341134415655138575294246369503844378172508447938506841672679761317488686252871475041396665226285331599928527333062690236543446641939498994050916429277534708980548746637562228417137754328908798329141977093683391242576573182483414115901642905861367225841372935079139267912915311716465520178781164085852271808788152458919026602971965496599852488787894369459102355391486025464728558295396719060505936295278504642259472193255217571228966191205609820161978522297043858541172037470731537950462791966728355761741090256516898228571657841230422543331576725341168186982687948682546719009920064915112382054712092656727150035176379455011996978360576813007629569782787582294434339141948783531606956583272210813554334779935687252595757985714939236704503408935516829139690519877775652616183932838607253302221367294928346407677854759388915051895868280336344700492385137693126790378108876239840546971979574821133661864655639114197515271243089705192619807021172988804132578931447553075331556151556353135453746189946054680129021631367337102574345635046614962173171278348066354111936471787947499537698795061169886488291611177015795204945601206253298137328526594815121703822822701737184882733611187025638317320991600143529409131726563989492872115379624462501239558819684142872585578581087096421974122576925416455135927407332797885556576659536636787038472805403744873977510604964307297070419917337030310015120872479424705433235370178811965152834313758132096801189713841748127750603438439470580175923685779933892760822824416717264882154489063435065472959241442848542662152697158291930472019774730025989615152591386336297546840359325123309821048233659614470035537617153972826046541779422795789344411432615983898921981820794630868476118644085647498396595344591715607453001062708563002234384162888281918331216476719530720785185241122102615421645288126811059533709652762580603900148940990104499359150526940249352432249700687205774547093699049718139879499249383283707495152585374240108016015910277940858183922466622171248503607091121272093033922997899769224290319064107234239093242401553389166423468624362712524681515007063304741401464367090217062605887696998073061326504202925911857331772283399909433942980285376668383855252637139284104137378007631789651574709217859677450537018124153013307988082712142197134073657467529466185404057927511788122630874660202260594312676131872507681351500048179599505844199336992942799106763149768940108842500666349595779003341733022018879251439457715363934765102255914260446295627864712841817862865575916984006642038955233789305884312433259788863509298121345417760578465902644977894306794676336541697198225417906300388298053157532294777344374731850920204868129232081344885596781571792799550486590929940979365043224880659839209775577952714673917207343897290196469327594815365589713697225486136632720351537366434789958235733896672544914481576374923752831454038017447697189114379185937096191268348867652444534406529066091819708094470352128137811691338009085544879512802100423863419612598023193694738154009884745252542973266341000459369663934862060100943875146370239035906585726359966409502838921778859053580690023583370078764536922770055350625883628275017731920188419607816241319608416207819969894239793143843348913718494218332017518294843448238378691373815237139821104481899769430748136945978867755191064944412126384010377664766676951212466343911448207109046067995289237226685986640993904971471206005195219153782648712606958222997849030637405634066244255881531565862268928540558292356517802230143701842927824551123568893702027533131601685767488306986860540004243056140552052678490586787257094014095578966504722779568410999488652914111720418954461530892068665932941057192433267248983387371140851777063721647949484315203558766823764431234120009673294968656163650308985562488721069296391866554141708674858431392188214668864085756921209351347516141090745149332202418502817465559321748545426400875554424183031163319007462342148056940900115367869003783751402540510546467790628684142647703234199913586096342143864733147672552574783234850935879542613721872965064661285182807255758742285113235276590615888064729781728347060321592240592618574809611874225057383934757359488149698811546795135439495489583109529051034676271762232137870550474018303921431905206985351860084216497305252367441806639209194630894848244211206028340653376274034028065546859239431797373091487157843923436162636600387072553206204757568480576615190377972980810398782860059382663453722565346087594638774969781078670121062485497956495017026837222710347183059205505455484185457964296822774557918474023182215142554220207374072360431584258067897749241470717684577464505507736426534062154350821779129204753162710268511812839018691325993119312349084746478446197383927918033228859873216708731354260825982636582581378402602823381323899487485192074267281991123349271959378435276282777296251761298815875569718171261193535609904606541243220721030169472797023342199386871085140436413354992942833770173509393705039159581161372462754136046418712671843016704520847711646070731641333668314221209440997035565960053384573776646138606004638109560992183780788067335615027494061999255854221835488461977378834766868420557107819482873219023600951122021845531920182089385482256895129125984199523067764788235080166268575323422311003698794595121149253947682759522187662594406900246819881834443273771115214963843784196763210058442282142526524468289744493465280822536100198351787897761469010554797231928948643455037062040248339617771154647566720431643300234585147608659654916847831569875563711132926522836264861826193143612982392760036218539361556282929842194987705695763085994812202772648736571221938162160222201013537018158829063909056959972104903755604805263446890319441835393685808822571068006082667599445588458563750656202091164318711939708555551376544760328564343483565418439573737548102837750479998343928055792420302403678759502357905356594436241062414310792414785000053806134189837685189420638330004679134370638449544177997877177484000944557353158862873340854533714285891413741040254056560968363057776239676716764079974858938266051260129959492756930535266202908002318192258780786678634402088446704330090586749691645113169632869395950245017014879658756867434026378284394636323823832023189981843399261413583250654985506675430250590344710815904208851811031461353759704461743111826382898895313816909638609568731909555129829083575134879647265876173992693145504046310215460841928544083714140588659686841340223679882520318052882798253418461136353987086112080000129700570168207573711908952741945286316519024351349238943312981540689565568068629480805257244948146566788180371911969309068789167037618441139201538360899001393809867982185723672965703966631485476283157933394243198245914428451052677182837378784536150496863837442579423747808493096536121963528095404310070686614581624796748157287927294310681850475433530207952012969948321394499912941644275383462330651418372523070890625446126508043764664198657306231872530868136420968429044325968931511330097096341348795889961726856449451203215274851592898855666237741867602154722063123966715112666846818742389626066489534612962410045307939804141506964886928212818460373508208512464175548039730576574905041992936041820370394553602543736124734814792894607800939411261139036241363001549796953470429850095172627943833723924988821924707371885162705599515775492104115654013473245509945835205183820526196113924608779632327851666851088074244344691255206838056777759858004579177074517417479860620323604780100720793929805757206330999834959303425498584555792238102232784290037525212121546347254745094518765188388356411217848259883476946221311894622783575253770925576938899022159781589736610614618781242074458981827395236825838773441704100063841202689626401064238163557747914547270915755816567656534007629017456407124230797893203199774766832112607615390494330169296771253107273604764966554529960890547057959553718079347383919006258014554193181969783917083018855867041240024237893337213680726140399556209321667243867712962692461783176828071811601355808745392321842988427233015561771280671938855401596737659520161601500180966177238978765224089027749772081248807174711311277851484175162921228232190873891753985018639809533971294022640923482245084277272469516297175736570882392769915090093945284897215016483507058950396385396430511500692120520742592911280086315294891389951321364598713011044871257581796563085723977256226361676744727681257788991926263491278338915380838453413422350791668969637707969599259576490101089655742767834704208384371632162722831444382795820914073367661151279781099459470862842140809730296240356535643876781560374649438906421901571981798762965209307555190736666850057931661812208051966130012365195402193436591308923583862496544145877729742303401971942437994330750636228970739310788578320048322050144084513969023808195390034230993085642600507827839488977431497572323744856607990889621231035731266518146374815705604563613049686234723909150808002428115549009070892381143037889339832012229077604432725428327337607677684592139123692287385657464287132969414538615019668405128189943764524327960618967771681151171365589779921172091694318178307866431529043738515201987815644158802496189144251083448038060553020027288892103508279424659369792727549092620224769747067796339890972994890062330370464117201502940516922011028562460451927282244315718187874405244312994509569418727019975445047922335346061303930242189779014275377086132523292486306313720447652534167743955004580579847934655573527125620302457281346773661481664982599411313903801470751873937998517367434385439309600663535174514979638908135205261509966160436679523444569506268306493449821651373945952430323259914975812039821189841812845554871102810891530436185544959322263753623654541471965462903796729294607063559482735643365354073195120739042164849072309330450008930310200645994020632037918057933786466452535749651430137256345828837492849851138021197186342251522313248470431020956712658609595544081799444051854017252817197759234069611584874588900308077227020519459125790466693493984594053696020402342282889016499566545552277860721385616097353203698807394470567854139703541996338116002722858731372683892219546598167259012146832322078362658144383089310797997428802180122671839952696365938529157095729786749007954600427995120268533869924921652735683072902491844273969444032153783438335622968543061379885999242285993083574864158120394553295270222434049695593507973767219978643798304385190644657171267228527158506779946357719660785986195806395405205943811301778669788097467268896202903571607663415344439306434449646740950263967967876365736076279100820105496568229642018151585586049206174135603266824136362662130723541954474283823436281655870324023002189985760694693615568317440831545726596022652299425807277866033436453563828905041385483747828742326499951364787535375461672541340666757452197891451377736145581587202148089076493242173051674319612731903201901898374693907135950023696087504472325382791038305800324601123040284243315021140884054005550630022599518678947242806377426231334029943881066094130535936529522574250074367365415071868121131448200767243579982287181001621344078331756642655228424609715335257208455825178531565028833820234075656248714774154728800756911623441918427973033380785435691756314933025649674055952229451862594542592865260562442327392549270055609116923718081926057231052746599562125259584507174869332024882939805815071762794617440942419617579141931570947866465210307523108859230739771421890380872958820850346526598171293901499270122335481568320477101682482370396502383652823958820598341385016338813298607380524790266785748906562436194224134487863490313267689271081936338867786099646766517096629800008954430505764130883650569385696914502755560881297170268803577672905951141080680931404281546519154764636830428156943014234503670302800397027062746293580052572328895237348367748523804138938945392983196648805391447690184672805062566739350490886891429814684185628669257854051226099350507041570017341661677175300898300705433935041781743285287852338214615821211363866679956450180729279794262260153452053046542255337049212956961768804595902542238552880069726606091694626020399910880674816717535918437139076325531642472453442426601634996502219576624762905100259309133005897976363334261177554789551029662142224666939830292907038170511802158279111142988668215982340607168461362534044787788241791926748071103047338768533564612040715537253451570369996847731059201638136581723268118167223441107016281211601908428392110585545000962300253812205053124192352293294781928225641669238383323567603825836571369386570236011365145497037290603448704333989790559938997674998399228685795490315279566050072715588596698588276564989442459496415748799276039747106110776593311873753391689842777541977224805129849530534942209548345666512967482808067028148151456080393897410027647132885810369239309707129000036021657496811445438756996317022464176171598941735299156864889729655682390617611667305771478467370292528270939441577951232976520127079408401329449483256861091135467901794745682687615131084448335582740857514416992388580167987746618085311023977624172117311896361571036127955967421910615196596978473114048546053664765269596074019464375335017840780170848489337954847377934643020687490792657484091364921394425619551407027822953659690799415057336609733671061076941783633562949176983867571210194749122054929639471690793135477467192121276086865483565449427990662969494089812539648515846996366695302818185464613439127861891600485913485937924324659835454586511250520623293206692142404760691815676642599484452030471819389607186536154497706866638442350415523737588316145407858580068424852647468633749010320187087852707953295521031231457579817126069594015014602145093851483711688370353333739748978125346449642963600900156559552478140399749996166113419100049570018969678878594190264747251616918620283284788016115276338824220617807237690660186403521763099046382739582576780014925177811470219455560730774294356846160612389759449040325149140086507293974392993966724045870508698425565336384882272649883501590098152156962802750391894040782818702034882241631316060493699471063162734202765757401847824701646709421988312084420178821941040480461503828913992179050286832084710499637843064965370880004271540390510728259388499483453735726535551290046046999231693432558412038113134411807505212838175300268818627435541433024992135781395822501095076649905044214047655862457590265606673290531330273993435482544156847561726359600336906864857250714262068898980996345024882831211964550553990437646092776745328827689338635257459185366753564437634338499787380087749938867005511926584892539412695032240840250153337903554677294890152718400217637449306112002713757471271254009399756628641129496224912695026936271728610173401703049972726684778879742114122396119990080544543900438309857841856875555566403258415465733018318379894267348043816648564526900554564112750750674153939956142492981268367644029721217650918293081340101572545887736342635682239604874941202788410543989676929022166173200082039772199946194451966832456511466748717049001501257107147443866655205136473189370612819085317911596321659166881771505606509216141443742286329958929765787614996220265947080241110119397587268131383262468648430582048126367664000386327666257637847090694114739746816235023146854324668388255694821834553589069236045621647832179694724082883537375478951520067602369379555186869766421606343846769210406772585578503267396647206827902166152499630848003486759546101914491538513642138607405896195898946361559804897390600636761856542469255707597594872327028940030926426424937518901939685026106012050805428839033295174241508968358653413715867618785164063849911434457610697458117024717829994916298547280722114754293932448649729433264137188437984756702818655088630373910655357200866889968300248734879720186939611676437353279085606556298519624771094809096492583652417706804090078516907444986117476651805646008335106680030509965337944711290179048140481895750034409350383385234959364417567745508652026561013649575287917663842099772068793940185177247176844235840370710756740587051112710018296375377279803089715965151958568812948908263444050467400642424852778702701404550477488046076967763920480275031911034973720871108882076136174469763581557915114729815962671791435612706884288880111286058852216363171660725638928897140084694140866258538788422799803757092297121954366738054588138792166161390492168502506980329532508953841448046264868979510194571994685426774389164884942008109135389246404435432492971631837499970355239283744076209268407049177414813797971034943491962318899648863535145684160051205012406181214863231943027304403651335472530967570172754564088813103527778394100834739948149416438551515789871095461311865284938825735392794556656849865966704815769569488249404537056578592952637884526159205750646525638692761055920568914925402481380939725147781631320229187664884873646544956588758359831181616539913520816864984750259174273069182441083312933585722866562847878514998976550646786324983154728227851377477770074584132567085099170618404031787350037209091678617054637555612045347044462916738541583953059206010624623451627976076187643191575279844561188741820010639914774699293733512943356320130822271678074599210554337809307051271994091533368174802116302755876482887687738989264511007606140740313095304236277475296071560119945522074367665074321446163037655421511079275820560978511492941464114939680165087225973461322505927090887387727770993688317176944912927250604656226061238526156008952134574439098031912511176124490581692659991842944293222843128143188197960100599131005137192059650257754747089684404877346664225447048065993850208943809405853404536956214129337515284023727297166534598306694234316957527767414237260354242024741448345566542453124511330050956793810562885261053292094427421468626911032738971277768623027287135906457045174599675445618385231100657055952794292092837226441709408347435435204225667030986196832837264797964365493034113068362988925266368408931177654743224887545414559160260584366289382722451090146068380770529894194077515579188822256397775969867145395335485308882325687415619045620507558889595573715475652963603159132259719336423573287277271292218037049595163667868147655481822743887637641338808320670372564983098334133850493034582830702379293725925070986541833781353858952373830948454702041767020016414964672094815151651654214821395052434789866665580851006126492167515943058165693632273434868042915684416272483462905122215382115281837094473366122605569521870246196340429483388100165261985148781343463762720418098483469856595485833983846680844415094934359745703232399731371187778564266706812910616684972847472126286310248729120135766516460859719785447972444995687461281921139881315098232326361250224991157559725091692792905137112093283935191415462197284367782331107963057988600534459402251392991608923404992984609716493713848352726957699310371491629145595406354427794784043355918718398851719241553925753155926939711956803420412539934955328455590225096275195660455628608017814395389614479393691498600600255118787557273042314637907665804613441230328628053970964870097700447158228279982563312286618987188251953794216664263072341029368134829045855985885703078559098706902420591497663993490828086234093607085724416977106741930298224768537801341722105665003877068785613338499547496078511394297377891170736486384926507899099311461617883768030039052409025698433430914614052454931825090513678452310218771489954198107761304509384817043293862114517752827355891160515085598296339972384920436376301880653938158754997293487465344547563466980295212464856774046304047815198667374839438789044542380137078500124797128969521975431661696225852224316731435344864105579012642995009006301954284137332473392428260701549058994196641179261265426390281666968232235964697816686036605601294631063128220564380244314317754196296275838006780002124718387030267630474914624808685734430201089143417159875148557596067921110584148808049856731012056640575889364188480252503451366170409167131325281990251029728082031551854973731891027841647798444682270745948474839698719178649827179637797105093556944658036169769897930514884267252981109164531920123834799782681350971827170046362631348866227729621806182604510226480990098300264274352440975749570601247585138771981166332576519042647003415185703496291464497912850682655849824029540319671169799409521740197121525780330490467028803892179437576103828515994453590824145961365321747933143683610291197135504021585126638032329085863893583469763166722854752761718143245276480812462416079157974984311474554779392246778376360452743198012800124117358196259683791592772343202562579574275872095113004148500585841059671530318245173383984899059267442507409281897843128749978464885884466254581813682293446879667160253102361996681722933313775932802192663509857922558050243674835861604771270773723044367187823659284495060211303878957759388564732032866951980800913260659045051805858852453835370731377879839718443313411698825498617430340067146030314419813299752343015857003089760527494475726480184471868821535190077396815759889665086319649415724460782202806002389941855497521926593221300974179701008377625135547760666979441774893658050152270394610660302817099404130321372120530817578824925328757408648131253814495065542175297702255584207819173237637739696850850563816058183667620402041496564104941021859656635725124074869943366114330645177142444571750296094958343258068970913817468354480211011026707968139340850382519407875467254237837191069084721177707339599106888872390167507634014013656759092350409997520870227578842114823604607473333958806810969212158847728788715525985841680366214859067502407420648997285420562287492913438335190012556100668100038794712032276073889093966876378800387799820177459916304542437180079168229945196420814781758694883973310443788933825576286572221834302540802944102674352585772201938631231936466050187573094033322751763699364882496159973176681031127895394772966305339699342285066884030834767528384473125695308378720071395963733392740552827556820711047948709730864955626809259392080046253490963026441155278272846284894145181287426891857364105305866157557005453268339936452323857153285128419771126712535938856370739893101939871867495380590387693593748760841463416565997620007706265967876034138380698364971503523204437828878013872154698687202966547957043431186626569829605352164659429249031834153471094192420296115598023465404842742587178366805933880259304681434122413072365464044940809409366720227403722397875160576372130729991040698769519773326368953984555163953351998551362473924106366412582401688813435711763303813237121721481665154853721364788253506615790455791497898131734534116947114619985104042157380694899748372158081383136066070620677273383060395536453329458688397940906469374233255423017919759251967522751277204762838161678155273330818098214200787105636790122705061765392823580504834307110476612051351867701016289065025249912307427761894276133356220366894672842063331432268940445296998718889024784594959046823135977507730773278422571077525312817582937424711542836416034508501629659735565226576695005769619885158001460393185600147895481494421604202303741914289751171579233712969680467114056859552901619766420534622841547769288046672004806554241506557991405996954639883294885233743450568666949918962193849271414526509729928607344012072230421790037621109820154245550387238588798195427202915971190156460392554410974521878840365639301160537466414741562177667695007401798046085659523661552453237707023482152368179149268349034845925510423687847051726287287100906732273706885729858960911172429291052927687122397744906472716622744551352057976998101541377388147929866235377864510234209309101388253355927666535338159299050808976798850221203332600365280222261317451284030520887736052421337766875722478277141227405917348798428058990238849456299896046749329208363360893663165405760943590862229224353762887491228670815923958966504455869285378046291527048152151259685727240460206427109153575707299224815112614696990780506020704382244826775245064894582965515594953106644725314493502606727663878099172811458868495943019707010313072317650955234414461561545747607959490322486774518864075328302794262152574277011741349613058757140439948211004421772842327531551649166261573517617758401021422461519059219299027576236470893263902070073283790768182489198626670144395558980640986772380060978393564614783738788939283704484349048129224510394817686151686895547723630095782302409849933347776743483104797787899172654093010083230165260772939556726719460827442597831245359465484496104056777016248512438149035312350652281262180343616626418605202542212266266725751775254766092769397226525347904438940868250117376001402369404496285736871130857348033088467653962708642190092205335701135823970675072691860414809564370284235625756567631349566521301934278876245131716331050396780780653709800904972982165298540976755934268270146872689789023650948589690567437445669750269737455745446612830732796110705234828401326197605389917007758801621218376644844850343222239391936688736523882095664465680548415236679685174935626378017696877373141702929455770842818939288050621046093004857342231595749375831197142057984657627046769441751183055446576524000871447416194686596715542408152151127301996226733460139633218593281578196952697535265802096802651322207280393878831909626913823729943189212617926038607539479010858017357390628215542568303162536573463341541181699756215821565414885510630158574132028616487194587640174536839753647500375131062057993015338719134260750837833095558742884799222433850080976000918669197138965327008057572755462667162053726331527347733807560203884883648483810865623314014476723860900574092169843922270736496115911976907112628470524943862118332725810112877823615084081019960161090973007889934949462624803454795406034517129197702841941321524658429823907598962035135826311706485709855447438014115762600144540068320266622300481727922682894436858522011342994624449576846164582450606867123452516952642902655115489472126496305370259016385748654808161439224789770525929470265952765514045596633000740606631703824912305356465076082862892953824874979614240476949663894943142681958187396401350018232853028327769599265030395324006554438255475598584243043897569506823580676043132299521996735620132519140239159817373357895269233620893764456142451504530731215595796581816600616261778377941767908205675047813112196071592994345685471300395577283553031179404317747311247890812677554260083169791562538804022952799791683149932212032929197323059312275605168952924454206059394977153203686471436801675001276190555825514069475166270755245022653027753610954591567525293866017058889964618711026573410277212129277276813236666388766932953272843019199103507691717187487304189987032729095019110338638193656567509659264972758034149393318441746117615060458743337594307407405189845767366167810496273787193588196298557722368289221776390864847114450758452010248932644699174783257575013074617851251372124245351021021516357775899736631970392491689245045011203285082982634615405029712885780306650397191931533278956299905332565714790104632740168844018890180720974347480832861121102382084543294290975304546943397301467003650329502601908957548483643587598608616446759354622728035263825853471715434934857944485530821499970596961590954679221552820100707126583364466558290986779371355551718033420152948525351564857842363893255078801719782730055726978426747511378578933610662426549080423353723146486465938194328782612579537150188827140693404341226543936773075386844556642776816158659858391224839025435922148740141605413225221282925202572631729181623484674157487428234753415377694300271425149768243266216515290500753570360076037301740986535020066538991551469379224446496018040399491821575511897332661203117427156426129642246358019591182456633212262374139896233145483190314786855413556313281988852080252524389812898637911430549114350900979458852191643522044058432437025778335094965583797974848869611642828083939194068853398112533736863204021076968247222798949350792220621223245760310065023044547218848253343769707004421851713439333899752970674124827466515681704057587603950402432772050978237355442798941837265272377395570806864956961239059216850993194021132018697694597851100797926045327775212894416201573582821478993058351373589204212301629723123620514569487596997907584013302077303805176562610229631938964152044245567775075097132952099009101167858845225335322841447620537623047597910519283419086683719291570422961629575643454171151064985178460558597151894190824245340544925656803577820824113557357007721420039194543093078813815494482940825533169193600591382882562432163381386787500487884890787467312394629620448900990679886870037926643468399521195308388038914992483751004488033278726262132199340657864888990294727546804078625433224304435955847993771677915231287216036084420931110917533243143574978291251073473789920475433195809526830166838958540209566944476851778660302779707911630106443755659205711341662295010780456477678029094648184520602048780552578548316434071032067150618159611554701971222303849285606128759615200324906295833613575573294814576497207489282138116373908791719841877990444234110092195958712839122123434452934614396701030663949281125220111251234618255152538707538091261514285302116141219760992572976470067461131266594664835904311663949086821465232928134100502142897530677113351230855254436327498980745413005015320781942229918432852574738726058021353723806023464692922775565950787064833001087138201185870240140557628585320581635306533969859141654485700442837843891556532418680299244354888233572771251373784605632584743281671062780131426960080780304880926788891533761218684548165357030329540828723514128487435906131693915874066372703231971983592296998748192828856536775748839586859714400515688471383286967652641294647244635025112256758849874808188242716145066541073639253556835411983417473124015636075822831131973466524674835130886952847830016920914905557553112636997718514395983845137900380114665175975715207496235401876174106616239464773922811026667248979805727153978909935353460558894167987904596279707671187486898592765616949560930707170118556154881639738590344162375461555503682141843435924814992292509649947703558804271394982952594750682306643013697021799768197942571277241641526691312397933095430928613831258423916444917591579444075464239899898229703821921232298868386496779132117616818433849144511028391980027703228314050455256213563327467755000532626997873532646442560536733485032093251049444202401272148921085728023429161174302519059531400490756640003204927868693072227538356543712636133022522681050029212501249653185057012987734705204328825382501639083408258744851306508781348991497524979218058324479486807638916281426629441763977441042655051737235389344215137491034049191412413145814550276861955058296504814103896128838400314597279025536225463353270185695649576333000935664032738643924081847308668224825068730230440081929693168806819360796121682039750902502533705180204964120111167525056848515002067125161029174886749104580023606618173678521953917554767722577913491466635668169496886911419811094145413381113979062238984743769725321799313921353771104241379021437003602929026158360229137870990274625453285747068883586060838758786198918446050024402453090818839486254655791774386046363344090012579336054313953829828941137701717567338207593156692671277234413251819184303265512087712740163803892564196388308373760276115811433777740773741025069056871350360463741254491435840801685807702688977133272912024096804503088441453782294523202757220061325669872253217743254694168167049908563926549207974688166525960205356804842974169784781670805610194901719963315632967164521137218265497171845310629048240009086417428667101539288031522466550543658014194535459764105241593216017259463729882719108731182568293196864497028978885997976381168927718357879766532521697227509797673951050476162726890680436752486110535070247577249030243848503989330899896877527239055341780265435208241976700616697085487201940706122046509871707854820526250979629420821054044974961647238823671349998151796338141358487738674918956697978364764128252362544461181920751639596172515855351237672839868367655696718551490502715968829921415276500281242854143858077879214673523400714802175552169371199850099970002139579577727890703872701797443524176405526444131951706202963757698165475683746562036843439005145646688493233983446492464976369155904685924151712379697259215262787451908810023165142308789837071881533273892880885977742454762584489957766819691557292360663526332754808520821974197973157451430660680296544235611133948130900324268162383999830098639241949452793121814756684949323433835482850969028004624240898953581219788238792162483796526900543405791614548876262715252422881067836636998890756002356656629037755499099960155643036361311882350915781751689238194378357277353306489896851700054075514695286737297369845151928506331885770928859527847165492342484698163137499532578546761850762056265003950556689672356791042991623665994134140016919270109491782286408847529170768051553981101055442870058698370036804665397096424672854894689078416310280008921165913609208355987718130490959088653413223173935792481901846210407136089515266154564112934580647872269023360848910082684365282541278125071812118005700569743857178758779581955555657993879582722915346850945145848667933366541036872308365203144783937736306356393175957874030367729506362718315449762675579324027059904726892450253720638387941277054885112538527226732749753510756616181226389081831787306427178243841217168649119022500784257290803434848666220626831495949385408106723724310462834592524498773988960364241163959094727010932776655587749526059791965302736924978805362731924949073725197954885638201084001676390313784065412205195941345978051842326186402263666839535788692449289666336109672931033488000398853634956490079951310362716105932506401050304710404065408091757881037880937204939939830746707818641817461870625023053283305649101207128768117241293184410292691363877759085922470233393504263166130598046381017256595002916723962867673931166345493466095171917922821011219017490657034797678699950578703777395569508519861110927651901081168512910165278275992784349160158933941317379971256268760072348777706961718945483626329452230965402209797850492907959633103875541444335689616142872371222359604410509383493376639747587686555315907544964447082019455500532858640548241697579631065862707773085141141823525392119952950621406822455237015454332508416043822536275504546978248178910381020607709223750679899306909464922823698314617501006921352787395712688025620364583375114802653338544548038402922510684224123932105882082040335060258835583146760239721421107602281482082830192212146625879289215635252480240230310087772191678374623376435259021038977874068962158957768562189053896594757384468415053350507755500707075170638626636399132298872979832975807441038447686853222218716215371523578161111161089591334498765959094845214692416890839491735631184393916854857309248665533651670167902965428796218040388510515404348489154423937307949134862184745886293212629686360389103251236032139466784685340119303453209351694964844610560221231868728020568218389269208424498616382006070073595036993667357496966240989613406729523819398457231329594731064882204266302539041191985582847634586158163950199656692326681096102833130153546456254396650095622573325015521646811620652437263148005904669724268310114614859571989361460101035643087017476427559297751120060452009028724582607243135044229269454610204866328366957785303202088467293570981189670605030101373057752581830948875357751818508148592897983470825796644879838412433490963290285402063493826541787950044808410833235700387740967322872851719851020144923208080056011360060397128593215594982063577448174583319110863346735622140794997763543364357088217573804865230479876836078410512439320975728229840369190382716610397573244105393806422134904206583313198362519934514419917104427093443531335847317645101477428794562855252962958913181142307818320419883317095742282533890197070395514179242107897371437111085758509133175994006507770553133174891825127991049524178516213069629198018872355482529794615564765109890644006606860971868051662508616179137634988600395319048513294890539234690063755513814665902984941833024629728408458617322404905359296946926826710317331360711494207903368491507305760454069230823403297175995873637835522017464841271086643774968776778762639936772620355605313535355171728120139569671789156720024693162490930692869726529112647250786686827396958774805320014910427872860736198260255366364630318755278306378886310911172444846038220550266583423517800587453480246711157797368775698710841907840247269092671399754193909927941369594638777812359124894035774435569182825101692120790806492482338878405078340410541498512792391423589053664551501260718432964048806392361719826314558816305409353414167406394508237459837755113837262138673085650818902262428704252637590128920361939217285194328571179663194137934716808935409010973118405432634457467088323831745490482475903411640564871798686583103611232033671055261817903521814990977981219158302635312498526088598920850677294940371797473202860489508508493152332674241451121003251079145172597916912255061530743126195185119087133851189120903645457117186014834202177344776779161968298158353515385394957296358292074147258190959216250461630799635651358187579196638421586721854146578517689694351504910958087019002513450411049722462828532070020368884641784114831651493434433028309270038161742072880467933883910540416640408141751186565188990838545907577583190296777379754713594027724017775499409412327465248715729115350408461227811142951218311710823413972920992194227301157682428021655865975484897001602875727584406469209993988286957132213130925661383977832473591904466159577563582063182868400849947483761502179521756327667474204963410758755261986159157921260474563049879668263487735718493723760360641963053149648760042224973538514301641831625189582289495937550185273063665125267417526714888386123037999242810585711120580326566092025958015118876528347033490327828581043748114816911768632792499869844135671561364720426186619859516663115427281028738051902184865879609782240785140290508578944503759323196719955060255740896651617328582843726531836866869750631411112957971146315318649706100191791900331768977622936387412628205046973844820576866884344864526327702477270254850126680386195952279542500263359380781985756416341136179970129339788842436607213971941317188844826416290118588836693592307762508616874514743791904836641549467800304641933619868228419384933971949185521867591406180000408700475827084988623902740137385616890356839445675336061781130101762860212986327775214395925452867026404248133149168152870553262680059207983000476058244833874194175857104184216663849290307126214906828403400655226722450431453578621638185938278728988832897629251050948070237379178121864879650062226743683944575266967588865174925622166508647498247185672498867512219169720138832734780704755718330346459625634064628311100153210855356097546120288332094719417150162011674345177553962834733849521156320396901589276406469843783337727664998423387368444067627702530332100541991547887031446142040669659209977860196476289370715401676076504950139022964056074911127431731580502250570716151487032451384665029276165799455873800555223980921014110624765319721035010961387678900195721139732286505474045118952263309178015600736728325556349914184559001656202809415016064286216430417700483880494147263021652826191891514367557760122908918945616341382957944537684424767367853695226066178207370679263884685481009042037916218823237727217065309108807982435427657571001807742417037223619581371941940352874531912578595166762313979812156071872222968279988054670338967327000019566412434884490742586805139114729752960209347373495299066121136822515436133579400197757772891920989194192150588776539899529737886650389176916224607726579085784097599042449193805094138163699630288982510167877372812703777851138402067317846118147200498113942447548152116560235967307687265839177181098100674229096650680664729020547530932440182935178470885135604936783452543441940866377801079885974014629136155403546553368246065987162289997906748671662839122960206068910067376260036785587693896050430565438040592024062899444947965498323821663985765980645902630756278167442105764233379106595932378621486930584782982555919376785410629891506508860475151345441311107149127582873600287918747859218733673740610664219891137161629336854596899482068020453409147607615400437530110435865658218005885517374621589065946175086259683518649888756529472583215156897042063100117901072266707270834256113358647735517595974979800862320361152480547515483546527226024478383785148955075352974973626380207918287592406528862616959412143602036597522385886793813833964594803550648173831654477308245692791179171234835489230919366836765540913938450865423351826617311690974534640787605872420818294327205108045965271483474658511785068525094402273551357646702326902167128149978597664246940382086339545807234715075181553693783111229008113043317722678036623461181951271432782657192180605205474570970163207914149500705168758945019287358294824388900054309919303542175214942374441611111305403056225265509138300347210981882497673428161654457287650282269614715749129837243186829824550377515823468515496217292007266639204397691261360147379337808870139352203833588164302967698079677870215782274227362832153901829128182778757530847240122709152188277548703575431057313115722033670245540087128028660475795564023099123317725569818083678492639316230740085878365292650691598827620266962386977055494915920200753026991787543808023106070600058244410649774869011053649903166436611860749591608309056027155645289803400195144480645671354320833433131772619761912900819441049915515341415859417670425580269752838591596070316357909515860546548237183840858589716100835986778128578785863766442483746154479719840327686432483037254490911802121456293802570901158302602052240728976823018574663983551595309785944986823702473124235735245684340885023422961192957270467153229541333457633551613681656622991461582107540286233060058050510371641361038778109424808814763946011800874253336207669602867655685731603077388881634085574150151020253260891168094192061043478684110256023102613208540973476597978780443407700131365939525183555982213216220280249062422878610184773326531792282068705786624322874413206147561205535981063506090974965007326606811680719562633077166107779122443397322888460268368780924977204816553872628881781219211989683238639534241869529224924044101054514693066162968936251853535181660434967566116365143643171103366743437880530784372054520367258386713896658057386823582631975953406024405535628470096529515439560928192582214040506286546845285366680384124667080802867503442492716324233353267480508100916523922780713233559019728880889341164847175925904950053718353286786128120107002809168772964010011077034869465568243090187371059531836482259334790228165257078403592017603392942497175812552216858715726236309900791149163058443519771058713772561883219839151220331685570038775728442356128820393547434308118778410571804322450990774116399646682380316120318368938516925362058393249303163415784805079194431573631212835034161279555895590979796926201912343605198159659268615457358757703492517905126034263835950573968568374062656085070812057394551558493450028765649789722438845676361274923668590703748366103371758183107566194095285750857255451272077008956715524736102072347135594034392865275685789802601248072326538687153068351841569446392475647100195354520872095922464568031463683267376137963112429101846775713552836598637591128360068061210080934701041207902125308106411052249801542486348215697726367446638412686335200280184956957486191322211306967420393029252935282422844175344721601697027253165257956426025552865256558866429222118619340036939715744882230615305834897696911711069332206362498147171517608115843640324511996648983413315755888830524285859696632565628194960935455160315800487875414777010623077700524000743358692946343032630990556924994923497797788013710338336706152270628341783602217628934605008517561359118911790606444954843087725953385382974516173805131585513941836244919558361085391287851963443710906286586375496120602052949013001297180894886778769003784617413342955910065976251509468093151932559431023434882705190412742325322937825923870562805132698627301647060854042828281306104811839196948253602696862162632491199160696186782408249804417759924016351118735903265998819108989257033980014196478257167576259962021422456479052487456089938415919520945022419676367420369508097468468589059485040403915039249917249997097581097165846403150660764836291192166934700889930637614463005621845280597705514632486529816944914499044145934141222787497169318011231570699170497170736222681461613187534736062325705713684136760941513894183027938482046848465186344627133097128932102443656117529058089841334438600385682655725926089423733027158448859278473942850301296260988694487870057604595720925083036886617703531746246467577311755659119838172713687773150879292960544415867490170793905847351420370091704730565935379788290491471868111785534562261343410512524705429422614131560974418331829448314106654856756662583309098649906291711475813006914443280011525569960786102720980607735056611777043463404548636815341938671094623680062397653105843378488083775116231823863908932686573568458431101865230799617325806569243586121187383838196735626815256934143001663198449916542409878248467620199776418986667178209945104640205380236016132843444387507997913786311971609829246084818196858880775096165608412597080344635733077288612179919393762584348957241880152025466880723762190727106078427770871689151336447634961234283548068319341238160159534717269631438647077573748815397078701286006045036380025777193274525143485755582094838839698674175639183284136089964659929201389819508896676866491080690385120002503061587885627517181706065795004708590626002905881636136512071371370433389974692991150688082765961737165311340026989933485616969745384395380827802677323088133627259768305225542653500353391241976404825951533915486993954662790259709650538678901232298561975365897246580873218223640568501855015269752516459290929453353621209175263629723603752394088299926009935708259551725810386695101723953144103999332071985205321274695565939522628570430800664806996771952495447992517892618047476317198298404882832538294126923314084737095626278093439837170092880908002528033760342926544340858561482252646405771749590549822217169014341062230391980166389254885316338449996528011032141268405733418114254154730830324550568968534795925282428885777394533069390314913145975285856577384056320249229629214110862362420504089458964790596825932363976663708961192385005738707253579422689149303834193114086667886819440690097866056908246488773352707682961447931518839205893080885209170134126906603449324401152084478533130630725177797464157233041405203709373175128096258400898269830427315660308030724175698750157251360442730539166768445509657475966223233672055578718908282570297613026941145012768661411862450534139974786507912867105604202767693618495169884437416874986312174291162951075296312599200023475336954646146029771055219516971385715371690690850455598793469768294617884070702868087628030280721777946584837592151391771043882923218855465972130864285630249415999066200585026243624196047962356527439058005881388206547897487613372405953285537038492647212599976080167580085970482314634843733552821775525381111377339153169534298773803844095568285046697696465534255157527207174238321693940919959868110565023280723857093965835341635534855443939828409573501990358726331300207707388616697663756598489921767753034547709798030247583886234860201935266195011503275678626793933692723477052969728321437060159520898082401897993831179047852498540323747339907766328444737004660927726426105600743723326697612716138966646999513191460234280244793090712061071069530569342301086797836082137762708032538245361793591177322954581962375870787475451685926138466425706834212348293053517782697226397246071987760687162173316001287752662914693843229374951717993663836399149117676337726890813771963943405835575436365767064989245552947611239831880658588195463392821086648405158222616721665512886748779231770727740980222473069749230665671613992440634596803414556798825848703119858600313089627530789063933063176094231893324059306048226413239362256629632714366017976210043312489841006310906560761389895705577397002371771600934912460740470336673987833912986733413514551826510012957692608365783662803950477958875780892408288231324056656141303540751387607166131344279978344950694232352960958442568313290529160034579714068202821697111625310596436632948049695925546238031658649587457056336443838641226859191437127887346677303006556035997922614262240106153948282448091952818203059651959626452743022652531419257448310737098353080352517628360380166638667953504726507067134870946858411702337187698110563644825057624655619594302760153742828288954542383334167951736943777718885281871972836864664656767361073784667961737727586968932863944189696474215459160208053050162990882737838712772011468149505591651644266658003917911181963965502527290630646087013349707480368260472919257661509135488348272987320835195955222683771454994004874277907513946453000943436699230382779661234361848732997879283597799990159589403077478129280908223674538496899907091147784074449907850983184010953619382890501552557835834883321346929783001774484426622730000279616494824222063129004944988654311709261084661963257731941843542109144586192708662925645811361302607799273097623758603057970813568859721485325125033649221760779561719445068838541372669623404870171174943567898029632444035623617212384546702240358127293017080574866762022761940437158100086853471599909876819323989028383758080204852582955384927930830613336915960250753048207364430336122091198524654807713489603898367291957927187231448308392330310169295384026492075600230757195540812439654921694479269344392830259209836882795020187056536759220946196188313552300305063945825419039532900875595243396517155784763701357205496930935443450039611740808444384172884961691058455107198275553192418986058921190864773263565933712491574639919278681788737714495469578207824274047322209900881430667136510631591793090921231493016662820315445577495789604552582926452938561074142007485368931194667870491305512377515440138041188793861869846305644208477408550983185252332335162774873837189907271203184255560324122506474972488120064454199786653811411810014471349874481783969841444319980492039156233455576881980366700796858078059503661986652176193107408341281953002089660425724357339687988131689132755385377115803405007105748056541717857806909559119743916911351249235614271069476322244100987873301838682937276591107170085891472411969303446314305452104341088918541903970169355465899859208897110081044830119480163785698569115894660075158994451773091812940333436283312984741993451283264589459644804882527827121837689214269692322598333190704206610444161084234032912264885950699987727466800984246427370494647467241953442308213834360824963571540708958770403120200890070703301381534756187568973143352638111305164601921801521603707846332616636539161515004560928374683589335818137785429327241930845931729336264516194946531955743962655034367021070882626197888472882841739825201518525222985783529048044092925887466549587970557848916553311316510578590877351428524882478124225651062294388880324633867327586151511501317508736401379065033570752566205162293984148947962313517806973781676685099166660058062175966430653622777639112227943128068905046213690486418819421831415528542521174375517643614091872657729161979560435834551245582995099614461706882665353922249333269506114594287249550456942664575337939970447441615759510513784684497645561463321390762909649549970417355546845944250539707493381506597841457905300474502037876163474631167122509994995182045542981313959010873005186038721450101984413035531286968915673157025128138764417081424402422984588571590253597626629158672265671640248409994095788512044006327947652882083824242359410133167969333277638882364907588480015547147079049457312816197891766039356047859558687768097905127098160531743805474099383254760984757403600562045583948547819905033796370377239457017379531909013692245412020623610474990471666153346727467683405712450361335118413436799546291897732777091157642734171030735992454969140363941063737334344577460222944370140173391831027695764906326959604584456300427928213915265138125991364687688155274525099046547955192446817857101006079182649824071393333217547851120547379224668447191332161706199914799192016261884877583194889333346348074932956590539925331912779311597885410687927981946858738253034706450440018932496945867160970799527377907991320474707914639292161921457177224488819506614121488814578495347974109441408673934383057433302788982550517079740818483825795494652170168950961610836910267339624324957827017155562956290891876928649298127742049027001805114541295446526840892947147559251824994959165140900651848835930843247161998503729632094463150867571203381628281897229498256089584288008789430335055627235929723776455272536252561593820075851488966586716088205418900124407137265482943328860294310635604608787991766996885570211919065677122388319552215148711106275964598933002100956285894726457269555646334440417876684974555220749330459985514822570339841239730836227544342397703916953786319510915500035895970654583225432015817212970016883602606953049636005518205222671855166967587501917964435656781263524649567163618500919660897054034644267319492681315612819327982366636243493039881796808377091836565400768332792005724721230027276495610180251965423027929401682839315561086301578903924468105111535949914812245803782225819632678605776622828511018802007194541562354628278269143105059385667561501431954004182948743144082034453749161649566947773434771310419425451071268455979420370085228116166755749502603869286014380659557778691255648144737105997948693305925104676547303755418427956262136900880079822724079548997569656291361969408500973636446303087002585027316459268088439993549170121852866343833761546013544430755976163111561485470918106467746605496431270176071206895491086195244293974729847421941018809051267189364540663907065035299734462982101310269180718280929769736541268147413522934540814307062146749461052135605856318112465290450083324060386270153713646115707439042042339446348428832639184649900649195439970259484744643848613341581710357242006671756837825877249083029024782350253196266118341516680100039882913315406067777541231196600014005542940768476410445956858641474765616987135310063604518504200717828276984218186424234830777875547639112390482999185137949031142682228074164539553901916306110777393061543932853462924103817389225873519066585249865643065069958919713663569988920980523556859344181377064626459949118362942876128515007330687835065263939764934014841010511758623680709132196191962264388616445528555671588786134270286345384157064601037058601833325110197319668167800035171964304468480046364187974413611002761691883592705179061980702401155171621114823208609191972650784291878832708579275789994423677806209845058182336750097026001236781471180011252649260156099186302141696228402945662865336455323114955968587281675609565147114602675952733861534354395562564946384944360525732112952603151149574442435154878742572811124981092845451398554214164929701296988411159234123364686611743968483099249311506505968962431212045044953074624919214616242734980995737192584226690145700827576335847821896283661004724234667314787697124674824691180453251021903654771348517100681276001136041316027025148989806005076622005824963425904290958903296302343178906728772348877624491785628618646107099101001522581515881871954858859564474588397603860422105801590502237527829831452366735353656800283504349515828272962674608677476067987116627323961969423406713320295479471378512117629029078574653111515533018601773786433804179443361385811397603931752117065161672568401909542458387219464751311225989562852453698306226605472515436993667268271853279448183546811465307531244123745891358956878233227577921438624103417034162278307102294518585907444495350425543318109038802222549766367202420983048685057627031591246141280881764408095537659943977843109451714818606879348877237420213203409622805050355412456530934223225009275062332610908525926588267402841222322183169768856325347324652456723260378735739664692270197742699988408697330146482769251530777997487095529407160109396062157305196863007628033594473328245058017666491757454052157883506109000641390711902867994106229577245703836986014471156763100022483518965189809154182979201460229167851601320363396406058215461990685604928231115445260099748303775398575663429464208237441686553181298039062703479850702711120209795915214087835704680763524418494856096044140269046453073222826241059465710583577658210967790432596608198700932429976643045158327694767601132070685107700237751228719495477028298555966189933729038714988258536116672336710904171305170612539783267684177401991141551153696200995856223951717539320785332360234723489854944665851291549058346959143772038786370275614999173602221310494116664714696760298092810686108205875067727893414983971184507790289624392126874042074834235898204165376037922133079328143392467978983926359554612571141134195492069496258392221696122493962058552934842267708914678810781658772835681954020097902167152430155415861551467407377489497806647571447131588804768887488237929057938439122627131333512416757423404446291390994483932374040117730636838487159694956757736772028500337939053924781050487757866879307061779329699303290347683795312699562198148903175925986980247452371636627820394330968570749570199329060631558150596252033481845133387965740306110379411389607514038312756817895514966665529061507440679854672949058604430857906186779946230023214363800393328995400380575271583344935401601363653142984225698697704816900841273823779932679300176498980737045897954536548027786147299813164646348626762537505884727253339877101399608733174728416454266376808404312733469764533102282181673622258375173523525303548965741249435905834131568023453782611906813427403107659814682640203976269294369328138961274854578819967234424644202211310273647368576439113002822605797237639550868619070978075511980238445195775815117408644562772275680397706139750268582575296606145202960933289790575851968732146353269028460356786489497124214808952992806306814730726122125670355508717395946570455566787745525582267290332396882395367175716156645471044748368480069745513504885544805412276957912181860465996692796525430284075482863249358580536744012798817381723783149449454288535159912393318946653941883889958774094274920732832807241132910750409754931187272463781194968920546305234755579076863735708826313047852801341286094569630816666266246063259525151022839648437937505469957305221262396850145142733872880570954227141433797262013119288044455137195451913352715873564519790307140250601116051383602680890513182580068366951700485926889032566824548146948115651769555737832420476367110554753341056411876383433220372591992841477133577779076814943783217885198561614439858914665734125687484282562910576597899109499519208940035477845019090106236058364731865951818267194613745344695348111782095009304871626132307073847092347587705249178797794834823881277741723461769760325194753101496713718960578521080712984902988697508710734210739113635310694817380531283493680338941371875640906048230989059532653440784622914838722377486131791059418113420398139588710059724238353993319383368868788610896582564614984612897394832137734008846988323336130538400002691803423746397781149236575464787541977461389433104918057531008373741765040039930158056261929861363596488228821341833984566073024431071963495636820294795574904828398850818839848112589237000543515694029759035570069564245850715018030323923570340834749707594827196262107567965113966714295476073116253944559486034162424149234933850648398325997320364148989902060216627334748710462396979263642450852921773601644311288875934895171492888925477055530134442492077857351452774671680139607703823441920667536043945754930227656695805418097100013765732029004283965355835208872983990107794240869240101253761248250127341189821373854427412376847978054852627144964039268319259180845072716802298383735078933623962410138684454126342422923716466663731676521718899637945680846956977244616760514148423422028154557262872860774741217917827565146308275884578992974150149588438036114759426333066514641783241600653563048540447136979036022604070702639167611032042554874104915009140725195164043943984156352812985685333854157960307338799178931472710532662900419561184182297678193227543587907875763030205647088493829393435008311144182016058183126109750983015598060422360310967563897253039628398800487556735138062838599052625166259529887158529042937908882693708698243401998574760060863112059363749174473248114423882619581030767417293008989526221786804581289300772164273355797940361609601458791076007699912977740353390605842726013851863991359255255929167338259922298482286907513292476866793117561581193114515497304351254163849338038261319105739017342843055383424116401092132462166005301707401753247506773644442181357350643056477669819388718253990077125505964283447720847321281034158251022627883614613906354550898543114803327560662367053995960924638555716020379582652469757751247179310168753876228129901825590828008005154246083532269890221939314595731145686898439411887204683447649474404336044531902204555445896501766210084558532184669744274826659168379966976826195428288926338912160090637912223910762126806585235198670192628513099194446070964608018278868211875487411790752465874405290843020159089914515887344138509749566161807703758338451726892980503889950637662503433072771353779200154111247011254626487645273607682707106088689782478065309706369586399032476793596853858420582193726421052317148926228990177200930432384090244138484784522667067349806491626371967082406978524638917813708422792144856474585837333343880680092630781898287764189128779618062442799248298329124262219602525452470035768929445437440604527549505544784517701660390565827330194362490225546631434566868692853082553341468055755793913516169468951504455033380748479394266061540715725155110556812720630841203759441526127352669717973713878491100310155168762979805126735336402684812535874373998667672265265630380219776517083798035354187547532084629062550285316169476484317312351829950919315184472310088746084047721190726444506318739328378032285128437761880102570876515134268605243451610263269035635458034844368644213145206080242656120428059998331174417145410551687706087637670403027542647051543659882771616508668584394971143055939013470303796267384372905023672218981235258098769474504173692593540052630240647157560766806655512646163930336345745697543327356517445513271419125183381550724115512983757058095013467646161754473410526255878121322019099373506317805777401723342246377466574691229446695590743154765063122103568419906416372328001007843603606868286337021450856670988082424081865997327665567375860921884595948916364111003054691781550233628241345193152225141929793061928451394052688471815398829746246629976394135076152740349482224379949729283568137773554472237104167578546080963996305982864286572596063328845086659069747045898353729781382741005610388040750309852416986709024654944074419610568904234780204860233324195498789502566438212709765352715813593326283752129445839015810194559018045943758476305476268966029900946294970015408856733377598880628096175632919899393078385289597510988693915876509239856549314525725711744595499894514785154669899092609871965258162041937526025419865731833674512413395881402688499508837269255155582327292596604400783474645848315013145187155768353025040525934527888325063029450249098293402036202498227839052909792053748653455213881728979364477010264533432315896737694659478460816476565337720484888085988485819655934027443421901002920693849353131992392525742859094956823919247901262148356408741559873184115302352308995364958299883178842790524351049797035161440477891999852499932098613161746586402704477535904112376806059201850494753508588571631556954092340769499983975850403105066222009413756226013989733313819763677247492270632688812223106892324034763880962395908548861138628131171244564309207912774382717801531687465378359061743545299123455401588105863559634109379214439208447999822328322175021260095430575590247669605433895564646999011547973525177869748187199534072922443905559464219217627770065119651969975084217710917282472750376153707674750009949630809039105521323995399032560790996294845333191610949576514404855531056229534557441558863309185835623406831997539822720395559783333592015264914876276202958477511235806592910208448434145216518768721663115441364980782395034950346313347268051255179265979847030118768300234512098417525771005131586751644660513830615026618547575426236043624017449703543949560533351934659758891835422236358447078534496151181711561782605295352008620925756008678838813759719778446615657696006846484274719994963639287085542321207542399151529893646797805858317618813006525111290413269157587151885874511599840763672930160538841944524135886640758560157981082553457474154983014926621785253264017530644011296331643010494015424160519212481881411517835796877782927653313330810641808900994390118609123283946527401488875089464623667601910115205390402729312792205542530153887568008046610984506863152344227090442203185853718747706371753378622654216133495911852561638553709398161679326179167780523325389630681037549330353535933395337975978388287473726317434263406188180438070672352858551033499510805766418069850557959084041527879221115833363506081697648269397750735195101490719366985874515388372670871696557615423410153848564049521802554728355733083811823054527572417848916891567915031955576006609201760371201029134164407225096314050963018002142744194412017484888179640279551355579547803218174911813086056739044465115842348530933134639933531672195400358667885462646856462261494708103013233966975199768071200623473042708521850862608967583542329330972819825610903961857816470426724366656957631371072911638864559406918929276533024169192773926265428285183786893766448117853010988338494607217927292089038053646429211537664022101173369025395649755048336853540905428032075015879905755127066899715384763759420407932064088874957097513440863261300941457145666041684101977726863303911622637358172719759997448628604272320480393330966018061042624597208129977075801498096326345495680177213209320941851819851846520756524189848092861093676527076357665110151569816963503373833959717008579449252330622182213459538939200772416779261656743069470424530960678300797605658450066816712085145077560094881722276003179416180761026002305857668901054670204563624548571195537824386315674775027989620040657923965535595004969530278079139001900405872668764818648023555691851677973326420536286036121710873224763289621065203469226093800383308591363516216621158925457960184637905318127448887210334308905818837893118903665821262546043240793269663966236888531717627391684973175936988548081812405430716221851704684164544923224346930471030054399903066540373720114051132023060145833839175412559892194656988028990181861794090452585818431050741784528224144837482319810817357166385986091378296570070691590601061508051087935038195961186502560618941489904850745594248987439164819289918383393420702266634602314341267883650630789502844257668454957563894890819364582082865748232474785529737971115854826254501054889095027394147268560064735557513623881645462561562633726717701957661634063503956762582523786661258331789674812589414652841924890225754749107344572277850775415389821580583875796923480398720903230864270472320910746699061942628941589235431055876859205671389740806233861190040018463315144338928630138917120480384022231188524357427854064244578715372744419919186364288298238301655861385974312039528700397646673730924820811187948532290622792164023332433796834692472086105184411410904268499847532801077590046139306465564178682351273948498673652068778131243960631396044266902142447722448407044840690705747882612265701742189136268233079306390098844631810389749432683528044055401844595009042795729404672393459237393913940014057625635972454587391749346087560131293816403658265379544396068515614284299316765600264599146479041230557988996276064475687599908391240061080726606325089438157795765766062444272275464661566018792127992894695670449823698874166742009040760785958857609523510255569319198688831554312256181584502334280067461266233396136742649359803072358633939983119974238281929402276250917835073070896875881697760266251578420308488885663472182129208426359765663028448517871526807775558936277047596609797755865585188516757566742896099789144927842718817749089772568325638327072091040477012811149116080578488081327419887995984790277711282389950984049344150047330243643020982075401756126620794476464046723936094891591062380154522679472226323781039710234775414656040264731312380655966692775278373409908891818606773879724214604145855562652860442672603172786487960430322297281513799815123795584545089097152186024853778285035981603836607029515716130004461504767088938255394678516470828507342828073765162917125501585001186792596890135698625143490659321894448493468981199733545862950125674186019502326313751081399774724402443324620030108816344024518361442542407503109656569037653200258440556705791607237989297599725712812489727869728595227988277970069047633608577461590341163569304565852450123417055740786675040469895323166304817094820359467150228872362729262780657761638040391447964304587716168136762535806268230113039319047444826076379928385995665921152188397307974121244497140845629559835563624848556697609351852956155955501948284638246922341622449478576637533127217407882568943691041067068231328772067987448361146713286649277742307390188187249952525975760043011755390100318687752828749668158027667036357492389654320174681380288387807788289304632178224112805835021441320590616485648137483519509675116102388339488893139561460047399768698118478591208401286771569206275099157725967188865793940965601010349555775751112250474104383426927762319778409395488276386612641459933065519725185976454670942538797750915938394582680410746264012126606432905232152348076925043794864402738196151230750177434409885905294034661114654994584930191727646171658783129123487255242898196922986056466181200867527729928501569451538485678773452778016017157402930361687298488566637231007885116187292644789064641380116860002449176745649451656010252339877157216495657173001446105143899002263600889130581879740406051570973912035043133237786951913229080138139984495491432764877374854994104345761260942203954330331075682680739761937109903807506477352351366704453529507981131022125906221702481379217856252305352850296787075757628855942823832425785682241288315393310246547181742644140558587476613838124820952050950154057213009721078167477106319883564844451284321615808335564796952476657662521327054473392765352474863794345160996752701550046091238205028297761451053027988899277704460384147832225265137958384819551061334826828692634934104449803307144839097805001901081580834432823261686204094441389110424902884467960434839804362886310924562030860566598225311700167999045816915157082302757804729901380995491065431447004524679716151946656492813667354416678363832685085594721157995255057393406041568964385100495823918439669539502100221978294276422785784611950521746351871859593456403898383736695072062479462712377575421246780365274822812524079298454099876013325711876927575397127842875015496066495260482362139503276251215613967371684937966316677899335902329899250250898547319750261620617716160113899282337744791460009364480995695623262139022986587901352568283019122250758618708972694678384759082082769493130436331004159827470309701378614509411102135010236914067139467938300550479102869872998625672353381903231441228799112488154028968468846644902398025069496953828542811694336562182095424526627282951176666187780573302402134357334716684004087077629202480207147381004864942370596405067285986726807658208302329328212329266487293826169129195949095407488787629500053021760792175754215695206600554382974991501363457835956833522257709438699569050173799313499313611389194920208221455921875667772025828021888863411128326164059538346012191850174667272767858587998924665659182831901525263587479435749236012556793919391212287970834694609505426084240200272649143453794484493329944510271025154361936295522515054515381716740939288327815110841420218856197496602622327580574089024806143873598208158428295681083954467426064174860171672885544841991692614741723541905305009153074362901203454788071565982980285226970097539161557326535564350078337487651107563974699194196245616527084753306317462313589183590117040563515569275392354241157902201532461959649007181333481709719922304485649715751154538017846892141911887843008598728392216295193002406697014844957414246043016615627081268392426300270968517310263202432647846964553596963911516187219434429936427702548834914031679946609317299134850600774338188123919833800502878581446382664968395566100832403518071558962036805025823054184333359896715090059669242721131001097856250208826997509879281292519852366660870223559487443533503383862333303816589942532192685820508209696796844279586657800103536739531640564446849048839282656454698948196646813505626266570639860976918374447437655925445675396944102476914075724656678501739699537890898636536954870002512422791366627721560755381239589065808855216451749668271727315031953225623878720076389080551690278615479927345588014231801552202300923876003785502267452875602205573919277081088016977214713058578012783434233725023832294359942397815348565556649259387515604311056087339728475435672822844617566777120916614914220922258882639106427544277111824996028721820104053578325068683718035385601784314700130682502730678162165883270472860713058507756315829827666185380688408897361577759573629278920368089493337308566462330026930889796406270863333354742360100047013517205064261425141962735616866899465226019161430939135405363559650166444588160149772795317457178970078125110348509247247750482964288665881143714479552176577843204505465512757122037588002488366990729530588268628376240692152903314536964090826864622940754034905730291362226772274530329647857786743992465196390747166942930427355936369901404031416133622791085486187862407389641746752233453652573292660277774542917474583366657318794602908923408560074157143547417290747821034563113513685887871219246455030876094367963223761363202477779952203181199136085269420769923728174258956639537001321524560075488449696179330999485901989918090035981595457296938361675611998427537422711478126670887440511806716224732628411930191350201558761771555893809172979667046782345893242482211841098568400670552340331414126738430952715988702446496218001305793897780025427015318303719399565567134904658666390455785255829064724027180682666884523026740582646577246390884110732952918198571647011523700138105114665909160269018748624735834978175170964939808728739693362048862272451421005806440332492106086693906258133854758280805317556715571919354852717010500300932084379329148617314840510952722513406720358139224537919060500737955038700071355234566949401371765547580230478906292655355798651795653151380527740553035047678169320904494072785248357495238747790090533511381484280572669648839721790745192507636938893839272972074310685499881295541811078736608541407439743130065717940339316955426207546642584257273427632332056452294399296408610392301467037154484448089080451282912697941329137057301534903406053160502788370334776588527037710279045568432647414426763732405298401147972267148800167023812107507429728622085113745634098745208370396465890618097608001116440055964844666007907603193666436070639345335629244071909914549193054179101855083553460175954995907376424089570808165731009202631645179580416684554103512124611346588444555914298125290826887134645641806982200248041679836376672016347470930961708107199593500398634976001179700336795190064552280084236437204255770268575526791663380602640753996742714199675840344533427422671095636324852142053738823584991020525011048063392764038240493027746633545171677634502739006515991396917301115249051787904126196894083850937712202575177996019604996746236640749022830065723932375422448480707453515986911405435542651108552051318363803786045231241193600436893842509103974800678702396932255302840898927397206135980276206410352935890225080498911213172254013258934267965434841832361626335417712663107571348610444079513277037275056311534322980977229524685459545926565445789143632821287643992715913323506661743108660721247135698599419668592592363464440186232001527376250356250061536326742682224018025244062205089094984183842698014199338198641065687510387847677147507921855296374955212055654618446001334146746019241872129825408172932013844701972999535115916543677422317052224433815778358716783043461615945448103527283282724449151855863889632580719026003175119171808770385067045489049319303993534212165409524409015883627266851111109994381915252804364380644775504366216387752130186417287198165676551781210290452664171710035660475182433413491489196988753401708107802802114089657678238103309963875469588237755313463722985225338037180149467323021579382693650085673528812493460839619621876959235703491445743565604890358627591520994864184720451764621034953022005039284555829946577629426562699833352629547600937537192279442895513953891467537393350873859736778497772491066740426572716359528364940762908724907551529583808427887837457756685908263974468153464254425365649106607572879166596263796171137360140424414082081004305091731319307778573299213058484101463105892271406331057404114581966831821489717358357372990024019546512546737066414700189919888053863762608559122848955353458918380764924398673578890167180849074750712480460611175286829497879603177470304510984117094122593781614250647080749400064743377384322269216989349932709867907776605532237891834613281901344934887080531195969630301278358272000816855302460545043374918580809120464448049497354481591406351651474367833635764749969154739883762379717778034192062813863160410476953137897068477746375945305796499789372589317403920437901460110239851426627697047799728997123458051086102703205705943827426592610500966800654853139106510163924659114007772723731252960921069040903291901513569500371107019843204066782943532392025317232419635237635865894308765065619210245020610786760643493619100128436680855782246938926552227498248378034268714493499066031827065398572345440045913099554955398829405715205808056208283382618453748888703085786376323592741795158558053634581910775315463801018073827262061741637272439300305246295535357600592445062960308721783343434510524940043595413336505969298336803451913445233034387430094867402810054665467521597845940663336548273560860461110055497509215833784910391127723533754900023362978974383116917933801076093357508481778194568345027572698299172323292152374591426280003064806846146947450064306533791808206264498508542031669006232767997324985485947303750758550842608412443696808590583059969034146826529580098025357695276441439547344872639838868880715295929972608343428822835969266137178268959924659455685640594388334236619202594558454427312110102988715752878378168016105460209734938494657777919812502142918968047990253505762728761575827451426239363218778528248561453938044723285181648633466904853374581769279896893229448962176205337061937876495687171136202440196107726303154633279854204710793302280591304172992869685067430313764944781080480595391793951312951890507281528666916856237282437426698126846674153744759938939648622594848553236640755918965719204550769596242225009089570636231922323223083790574224870252798351277629010924843533110189898334779939082401429421205303314868283492866668406451496899549501168109185585291711352460145926060917373219180134597129489705367043515283399141884722859985946979780944707365491484037039172314083619735813700381818662531291397676069742391145799030038761065104361847005750394884678540347221904695144462282767440466514691296805364303147545085041242849139746738762402974609025085065771723287457035550733372279413499747707583736239266920141698379619362800514366748817483215572362359911259688876889313341259512043809454626488537655674238001369400288043007302515811383760893720798926040680926827681613210318044201544474297721419632940205803413025691303979214232390917676491194050295960223827212687727673743372130161401065228483134103997508880861159943396927166321875188777072661947198412397125387815925179432753462498603653397228677720073522573474686564378033449235154332033342696185908055944873995178141778016340160969966528756093562487062217454353206697057424816487174149306798898773955599424041536056560101972453505264552198484154019628747886922777795290475192491377180438892754323749692781405178239553152395650058512839429963900283113164100867048275161031080096643951109942873454974597848949635393907409472464274083367961071802772069522642843303497480626416436937267122748614604920224516614488226432441560415924143643479753308696789400331486590337975925187867751031565171713216199012342774305190309807805063259046252983370273669816337960405880213411550535626847735772052719073858171836363477929005174364878220260877681208003053323081198293417381590473089623552879263900609599150208125051677109826737762397783907424511427325883440458578457987755459036825042563099853143857698813325737713335685031149717007066245249829224017149784674109195848779025202234856896263206124073034055894362924791845341821810030436711093830608414782359450307393071455817117661811034629252006885082451345581302892670903483912879734454609902788940530725333436450758848679171624632925310652693287286011257282113401162994443417661334303977846189958165350508937834664967743416398208226445039231474959385018619407427496611041265046863139856185802271857612337739261667470183986143601261892072645653349659405866552548939907170296358784799118001760868063473296879979233157718092691174296165818692660564005032840890008244949187717254602775183369938638085633943621691732050076316191391669879470012684620869814328895935794793329300026736117347015252542686277472978206970828092149634092805769265734854953644904675963091597270902602066856698666572492080719313141555751060197058719731628475214007721647037847039571465830116148962231408222146082508996922411571236955702308995844701435530429186877113229842470652812791520686415264946538961268081185900215315523008788335296394717667258486111105094822926277360827537503804321725876704643744968146184334546799606609050819761436380336586866837183697465959758694071536195351809653889790597217612751522042622490852094732769937928033647394469904369724449907423534369838999819731347947584176352756101398049796911586672402167177037403593936876390285668872948197841132895726313370045507092725714206970697496518451324482139038255645523110281247347471303308117330271790581896316560850787195124304095973921346203377414177335367863343378300812709002880281057217581460046218514066482503252741335927042137722956727702392946629987756232917483746765221267335133052571695011235742652703846345416446334908714707159563185970743490846001430393046396315864627517385963259782359041447336932985874014554653099563000173314508564296708242012056282007880483343011056274938745548184524103441456337541650445982376790250601754951252029435932531416602474998652541694948775475729817729766590743346009272644396783759842493908196687456354551662972340211653262979608892522505464629460166529127134511635775918391552844505488563678265501642483666016666901399144497783270478421763948917486537357682088415065382335994717957428552870298131438570257010811406352463073223541963768000388227616523062237253885149062763769227339131325722469695121266607589721379805793860199410636377441727938358215959638112061020411668597002390132599629728461480820255175990112988053053604889698224919181741818853228207580837770591811689724453818733636782746118991060681049704927295319507481519153105012565428833161479814472730468884695587685125452296190142820943296144521398303335433678038319778764351748905286729231339100892013231576075661862068534918813116173089414036818074191672647058207840021193216717934174383137345144412826763736642067420397706824510799139340634744497092267030668239490064949848262223256746254796389577587793475007386672690980975293285249449102444235269205500564614439739465495353096965851636402700368745104461212662577605158624227652926644137048473717018588051796132506806358538295426167566406410394354435867478461744897884970350744980698987723811017034962413667457478408855722969055149153236208332097404420724665125860005225697757014406241038295453114361322462725261562490554657892804003603008990750583793777673272486896864670887317327384178440485825541425662280895938943197295979526322889532680124112204102203544989613028859889087730829950980301713428900553644316805141093718257287633161456996872733874398313563327214651472168054326145880073635669655484306085871831505398487920167451629710619709245971189256584816204538834756213321089483862507408485302261891928909744036618868812052020713082514890181531510425738330226267138427639057881224923443387025490504248335930512380412040166173548133488740364368631750618722909354878796086294339377443344696054552351433888162788232406103800464649758239192771646027518917956794764065649001864329543731515147873112124136048482442388587898577672736961503867602815324533214201989498897874629107495315560935704290865546102110142843987184683149102065832545779300235994505920477141322857506383732589396005415600515812284212987287461256284096513967678584673670447759212096954380896059086992053601747150249067922014773478189076233851542946793040257512913574656061051099530938412704934185190229918779818226744395400005864893396437600727373510339296651501916995977660823202462441982299395684986401153852631386944120288822343806429949753600120310456066642054897696806583287775496138467081010836916752081819104723668740356366092425022701850265722440037901595316684569514469239501078397192298349038268914720136612062635459837818691829982184146114621069530204175437266274927904921915159348440774942066955627076715395548130045273626962371646942525145798990015322454871459914368556800167350011822741901333534024377181170079646583309539490014594436605215721047438163785445728417651514083198827417982093952930823307566997779748221238193246898501302032771010324733021210969062058751075804430325392967659055910129492857345334231835923372350683315938707513396640067125378458415474752380995086344729461704122994127377434866983254676360577333728531079415742564510226931101394770333127510562397450229426822637595449345770558486003293882815278036825845897603921038812003992009088094840601274246252897169270413758772997114595881894050851622729359420309658267681038213532312323288217375185792462331062613557187736115159348893941559449698509788760837662386410678835856007443181980880035084365107485184661169459235398461325814489513349394234865801241782877399110432242269254732876596504096817272506969167718007372185919568807987264221242388083341562810665864683005033514481503581986311471306164199298475053442864178065506897702523206981225099751716827129077292632620413748998515211326677512315923385158360829720278426776973600018421706539198449992255213365522309390075203485411393137694592828968501290266933875456637681777703761360061257195138012857380231676750908064302802686481522257554121467911941883173455381895954957342862666413945563465888970236169062253917224121276539788650847837257563033284416512024768204309326248072040960452515896831510808129830765651005970564989844936728732097912743372645146673261683449842737555073404213980913879476127254890439124525041474976448908724699472196657826223250667055194607670490366424449470517997138698471742223397992075607983528021411654774626708677591725634829973265019661830755637999849373834579261487367571354401182039359470037489888273870286986012791302080385129092611973207034261939821280640422331859633154512969995950757634224502085611102767780343481706269949373233591511441299272184993917296447949256669099482481954637847395920247019460519582706571673858782028956554154269359913484239038855518739081234828096067849292499545129711230078651333005612803496626348424626714695059709216931884537780354168021435057707546179898079525750994189689892344863296625759838520771553338901905807593897433529330556986076413272707608058108513857633702852725810542629910919737341643828873739398903775254986358094289579628460815931580335118856203826632662048448548297506347203973460037294023778498981479092475901929305354899295147100937942217626986136976730543737670046543531007922119865301707757332735718141351768048218787482619582270843180541355179341988137290378121723959117535493312138824939326743357130918194449645828060308786818736897308075518097494459525051335760591803904914686058124149070729486366556898949925505959124309653624463802554715825113718097493327119366603669153997513122601814950615375886137656892374144046408376019854575344942147599699205633566437091775940992933634701801436594003541237231757754152029306124510688360299453626435562209162348687065726339372468306774679652219446439098487720248132404046066411371969737777314754867982329631947629437539512999301636872111442723160494977063571302777169991510591784735314209435737732700718324144967343704648394326182597011144082671390566052489088311972290031235546939947118826715791181025497762709318198990446472524241275227039410225351251105602748508728916626610208821200910692881236850077730084700230320156319004937835159127417386519452146092686230896971636129770158008435430434859814369378255844035553236562727958691854506109333161221438396819172284535976328126218445632542952814864668406836481568115908076739181957859376014662852078114075061077552688910770115140674249119459854036742069411701202194383536239378237621119867397364802475400034841234478101910835085314990191570105262926333994903492220204441902563168788420414503319466504376722451510834278054015200525888379388221287428891071902477010026977466780429441787929511957360281896331559419223605945123561112700461953193410728969143565991806414586163505974389659702445065657853597158321559898460846124274267564294224021601007642713883514694696589542632994410123378010179717232110812731036656736222330036319557871476428522415397204062355816360608664429932674620946510127124012113549213871213486571986411973218259145920184950171785714826425981014736493316560367810124134134129810218189127157937364685173849737566700273066977716208414754876828551327483413606028872595678844513913451869064646529480553896629672997901279721192523666726283900428232050912144089232282238644961845438382847286058914104504531359907059393730519080740081030779745838650317154150121023226928454328645766008273888546997897966869755952557648999853216717669959802061355542852140285907071433632026139511431505153846069539200007232203935098986143116543076356315553653082640110420368209341857418658036036804131176483778563404660108059227137043444526209284826621680292587712282270413463317178622260459758015184123089034267899614645186102553920007140489568209595183266183377905298274829179377356584707003608547743923887569077737035860085557085451473197944803738122193384152860555658804801058663482849729766860149113936804493555007112522205216461139693381575952467513057970804284536029024315970701520228147731108276081380857208060087664472176390831846295522140190947995186228803747307945210647636511953182065040347280976317477145353891604436978947669076877161951787696512884281016243466944874741632491710786241036866401193962900387237490184950611884697520176444601903612965321516454445885501459600640165757491134060437186840578632730042163632829326222385073330015836359222914088597718533172337974244275216801487323841073358193139416303043881337549524057919600307467562689689669267167539493118453007602571197630700261515242978664508289567538101076861955196875521716676696928765725660113024056258604637179005734190703070586752665546653722056690158867518972889086928050672411692605566309943321019225196189561938281465939017133554975675269173158832085382506991432811101055713006333091523151122073690627624788828724000445487269798239054890047222361363091273460842277332152106619064467319752733734306843713834483452899592536089873106767041625131955328694054596969511006630109924467665554333201622067265579355644981940675760975752385886984378002899028051651310390716440323148011687335397968713149209025544779676307883495097952813101404632025384516040247497984221182112280314365138846860537797134992459787630169206091648550220257092593370018646093771109484647186886490405079248842129292032799926379650575324988118181877389170377970144930368280695458063121612183975295494538943701088040595309513180489864557654073977183899750628508205919810474430557771776060679336252015003270852674295830718212402188531948974473160324131094317993817340333069429332749355055749785471064535775131234175016941414160227220086933039364785525622531974061552793973931958407160370195014473365683165034624341485733451234963261681900276757542105306344179303267794176125341806832004653258191763399968981998682598299759384773347074769716981049701552158336597944050237503828174470335598143790303323224416139669065232886588903100270441638034919604062797234426210222161675782369349338931160849416630166796896140641671631384452332888818712201002223118113913672727066582648563324710554222117310711910814142762445082974279827725581509289156011017269039256440248694828518548054175499224461902117859115409616522275980152759049766858693070180585429503319924256512197217103377877356549670307423020716242177307003272354300893756039531565056318572503173409018658898205701873299989383111694547088427069048416138720069742062343060064077667676261512306540420336393224299154660012344761067028337574346560371427378088892610266957414679290073286352187064509093307616657761069847816783184994395281606751856401845716668396309259142830488331655947413031477041700546694471388625742322463075240543274485393145352203129961718628327402367781347558572307812037681588066499651480084473025570805968163829818341586932248549380356816303339267039601012923722602429621192834690632901374335882876117109642963900290037781450227852301343292388973211919966858386940085189346830294929731806556612104485866141456533162959513044686481881526000757322890438673188714932002036653003818960022270812044587576364259889609261069799651739337014002812158145266651108120342189338750114894086411763520609319298702683822817027672230706083636541514022816555927583736433183954481368700229246861302177763843359218980157511736275157936528152624567693836552730207489495188093503224976140217305887750913048732350839916457732575623743985867784452406587036524528308914999294011947077262941200807986704976475544492362025080055140253214245206851426165474345782386698571927647576716846783616216711695763268521578964896243816301978810683422640388958539347980606197133459804576914365580198973505932405242783560452186988879166049279647852808551744100291970036712880506363950297789591162003105219310369446662294378343608951624861124168324112703935791105084724063897659827502959350450803801387828112784933898976963756114440712119490489790830343661174120549784567342110510539318534157527837696888124834393345282059572210576680971939548347956141866267818121585989907008747429584094722255938046628840131909592047821536024010045815491999140875539175639630179220837243450540932625887158637897530169549221843235104070504366480302092205454635669688586419656127128403704519336611618427885785124427500011196224661483563314722660277506077516912915822324910423956242237052337730593607276711553320466419907571533118089635584334490263954116801888950810342112861370211988262964041093362524427244113427171769795855619192439546035931643719862835437927194329091678520875178485461692796856101252499786393270501852301730080813205434906292127428376461413262457519176490233888245071999693270812230764578046849576491566100523639912955023810300847266114232603013080361151426726654811540383439162815631105657923248552010839203523635848365364310098562880649861499446631091091203588344624575579094736343720995563887226793032036441043911062109834079864713448467085699554527383372335988497679225497539268471621081036864735813812906095819233295567087385470508407017984629626430067953702129993170894243860321974909152271828502170721883830604603263988650435398315964013423946532357930763430338389947837118520815021529732597335679498186277441003709569746572006073332298876327372023207946098654021195678998697821338585905272373661988628917351272181567499054807613545656474035816067339652824585140482991522569871002082202924436880906815622844798787766681738674248177167238234792807834553570821910111242547655235732677079794992533928462743494745063024302384289352384087794191076290973472554568617169915266612856214499470921687424024444523052242318965848411453290305352583658450289780080034762712256250222442748960182911300525425237585776935867034544618692367502363659748545963112455746136730859453804157728730284915334100161891853320748375095202327099699178068172866960169980061185442810035498356333408411572661120925339008232259088130851208317138992978872644633713297738727626594056040519096217112989848255881249425783600567075300349003671271046422429510791226306128508670360578546128029594225941827658417489622690290054898626553745528287760520827077289182734657993081524662446494795626137415244722457944663268998817441411714658021653049757958497348817419714656525467722268172655323669021875458921196148690997420873197872811911970141168502854999744303929895286897822009251299327319894542986313909035719014858729184459282451804470779396654584808348680177390600640817027407530392697087382976633049507579320628393752033081769094633753804068770122251647487601777548828809160923828181007958542911704513317001056218751363739789066095037755481295203584847283498254361410545172695254826524078270831445144115603868776493178829380741796164821170680496319874605793595839243451990279734021651481485871883782211857530983762732874243614705749622545031149241218907435309482527821994252005448590161435236541476247142081318847596498209361384568384263730879354036724158225009987861259773345155907846257210608497103521184303252233840459711153914069470228959815203482944291939499391702676372624635550891671813895266237645638317413865483370388422311228188381788239838586385561675120660405756219704541383090287456616794217060261498057162705938945930376588773518518874321426047822224516540886458489888300184685287762601448938548383208488879145951064971504970021408598530290367411494298662924591403222391893584100558810718905176293309911626251189062295098041802706481539470177057185227649672953180953177724937773865540705237618765153089687295723099423269366238439789739728481639391951829938735993909032311028367805010950163004353022189380691476616115014281737377105425603340838562078120867969544117278837501281486158399079891985368893848699712957836568427256122273662287871229897814561451347705458859262559866305256331863552418763121020266201998654549756150273185229017265329685593170798989482931445628938515240287756397944658232829546031479158997602414980660910579085512320347786490420530120062720075156798489566703951805181704881504075292421796231167295697550927998986659002236016816490637539726396244858378388472854692838822712616581688445233117943238778862970371797392577323184739746275221575038468996666351889227493636498129171897798936434937771788158524898150524558577423672448362920612648011301508054350753742135363915784087603115006150351720688836413159389576787117365570441226318537142922831334577100902268843913554403404650250222703945415503896252103215982153133520161722703608857926835818809829623022636508844826052284751717574079006810112030305332409915285617177313511760745856136879339416492923126836273600910409383445601525407262509139672137724052934098129100716012841540549410444791247032737483754853692508646212144687161105831001682577972062754957155514030037483584144565657350256795600916151553492346993759670984819691921475498829997840925838260188880403459213769791282678451435958159327747904215505519681487160393915626917625053240063305261570420085785655577556033857694364906597593943506161223255997767020603240732203025003099274734146973172940311097890799470906430127640745438747218006538893343923106155463898853145972056723411949918108677363574870064726268340026380044408116111890503039301302012156507364918130268953329029831244479749242604050400342094869793947116715740003049179043333744782024650772708717456256821723247421900961731480607302417439591301651454878770441679621501531685485091592268762583091835869417364145574708004506450763265359501447728419612754762308007125484405628421128133227854860583336590151969044178755331545471308917572575410934393771472381104587138477567442509699633582085881765178036928463075783987592379211469863858414716309683952313328245318376506354686463489347945642397782928959068749600831827715175309260245279550633962618561487575378056314138963092675964723502809465650733905311114500309282816092545558642271865279651296121654753474584769699543635940220224500182744061853931828889908881145221726425775780056318542454813678580241986427388859158872848826236500227996995043307581878564543461410818630261128925038055823509114121170711834501515951401426179768365709368770783680522689728617833991645571440216119569521159857449494926553279147912816731191784681757371122365593947449609689368043667586150487207026785609804962692423038168471563970517950055132818429591499793834654962000754148145590039825323967400878146277009779549669318370362011109579396136444566549176061709136356058993321512439366151602960584863096405458720701045184103380976136961320464330225610947493048149058934852579639631885231416181005491065976624373608255305170746070099426169497148548144193931565139414792837191071187262771531005256154478463877622358347826456187175194778591141670164375313631706912798197250472321405956564937918135113364627949432360044375576876973743957772774881244910372997206378330227147388413121748482935674431900111577018579494418008846116950710737103285313574735208759035329321875729671111013894103916748675896117283779637476754271823840365403737928537726784425648258941157540433936935546994484268340342771048402681042751576309257330606566149861296322080561262714953756687222593029315943056544985889106578032626023104211790916695431492227555855469532440211359102068545115128931413279798540543078274738719951710469380168288070674323392650225274541421176260711734399497956447153829744173353891785915841114776703923638778269431094910323046774981387157808681776080816511230326289015075334767755062737654776101840869376104013647296829344881381988682424486309813172147086266824464043879875468207087270664134583856978468714607358533312990054839367563801681202962200080782163200265709257212115987998344012238372434498251886103352297294145127890351129054949434656871396912239253226607308739693200724433439833127065055573057368288766706291013609898528563242990879473595517168523337931534986380441405301100545805083693507823415797820296077534289166050950103763742555238106287950597053015549488860913786639715490969548994747908997671462856756121833178309141799391094685424379875426789995574110682492936487794500213145049899901932933940289310879273954363119320794319833170471049346900257083280658923810386471618812850700382317858597546987544437659182187248711907173829638348977422260117088280871445153317255056088377017849253367257516545250435119174835814118876931159060580266302301967537419808644031365907857959009335000615211583863639747141900058316087963154649788044705004800036472318782172231315819773828961567000944113386028106293301061370933341850385941158035524399642769838912867698793401462648023064213224548962384685940881899839864019602530030836042146996866077527220772334015629706621835706441549952211306724712096073899809333764047804162390944219949151699633404617589271270754192497280597968587852830958877462238274271918041511300648778568602908706914368452588772995152977053264377274950182417017832494877864669633260473167432230279218855091798383349694542146503761237305388602167192501618674198030889401265598308207942189221195860254341151034929883474730311781326419832589363291603545239073553645602743222877954402400716620066566222054114642422465595072575505774974717418785273953135013266476009423225362629142535316890860255901876258659380520877160862732687523012063807685169853792994267480624651201209732660749404790028532692276104796892796843216194599746015979523309526417347798958100618954718806869680916443004087283697511984858214351675128699321199888793042850933396991623422129024678249195440800813647287403009516104537961718848428369741213473639770352883960557822921154391205983664573079048824522838476526881705866829820265761124917848790120128832828935355646796040331024031759443019719681923227538624593459365607884126430689263376990524091029989593823931977276577886112033584863371331169369417550852441082030148793632635037075727740803211142885779654323419843220059285669615074128337640998573110515806353230761720279041976903497835369388051386838613696945449254118585850587622147964739650868364427735632653383003939444298480222258404952755612915448416077778460646112867731883518505016226949702237896244561068949408315455997281762223804177664459044460202894032431243594596487658679097461150029187958730438221392579907017017785384844513759239503098691812371042608792165306999140969620974441745400255012392442508721558032915884248743350766050799486786349733525050154982452369049899818430819945495170733941424347595612804305858201711609141768809168224138827655491372933200713882035063179859696444913518141752111107342689877353929621392431136352714785293198327035812542611695035179670313909211685477901943308818216290755306078311768784077041584003975120992138091208189345674558874374775497243516245094013668029759244500234549938383823048474228680664047053891679678324314171509017293534749616875104040292170456536543543892273366406137065355449165897348407992133389858482696446273231653225623501364115774353514663098399703852027579510027098856557977631233911513821899434786991508750389883326437549158022656649690823105684435318493937378528515443228283319979315765553300606979201595346633431484437689612479191931970474830516830961440513576133390289107505694754867088816085602704564299414571228610550202885632489073046640444536725046308290138984418028526722227962928405684673298485435423238953729334122201346985546696161553701680983690996088123527830306269527687536255525887705155157914458430566146737582294777463024389537538016169101863866478302370319399370031876827386970587699133451179161826852481789630128513520757318490310347863435762957500250855146358278573027697921517043905039998219712909444991357916563422270398968928544467817531201638449564010092292086448788050430708320742158679044203734168840542925413274798292609808045998283319798111349051541825238455662780788773448479522932686816717179635413924717924183671079918915887026651963121286684824798554213961381797309146827163311995893420175556391524987677067991893609777873677690490792659006037629390165644999426786235787000297286069557470608659354594717814705123341096718329225053246088101946250760820361495741505265845616662619831492128476368691799525171480237654500743872631734535745254584637211498436360919030922699010678319729237108267908417454261348099343872337940683465953008165487520041873878225272466479230288609299609126376614026654124309534447706087379365061579228202894047638522133949281659580882404056601487002987853754235729013254830691020020591512911868716397011120506383924765368488016977798936137440562217809722929735560942974310765113815644877671291136757492064199943458638521163918153676718468174733390819097568615794810826558930536866005409431072794041668031360747033106884157329196024133982653146402612077537406797796619149125078160027648702831643220326140431531175870637723624867425569713040635592615982794554974389428703028845302376657380744638356299755125920632433497769095285008399313897359897890946694185326534635163946169097068250237338371504305388660569968124914206928382699700384914115857508389859641329986212381669170745376850635236345906607882058415164090411580340044591776595900494563411181843691323987281321572570029238491377090031138081569210016528064939083722671461084812655307770597965116394155716420809198239363895352112094829880634905990125998717498553879323397860490598482916460952893494102679813178288320023239782374464299660111981751914127452980960659578522515246452246940176451767817067485688099787105040289806504230912918851223626965339707270301646631194182387647726512347351169335558940527686600530740762342668733471006244688523214942697616240787425182344027243779462142038389734716804559206393673139368570465146225005103945372050545652544772711858266567920264751115356104072116196323461684553832394471863669628199930086498033337879967983404443229662892702978515857120764769641046146938149556792941127600142783263349453610663116969855771127040040789192583524089547545599462416213259069706430897850939237433154237987129566636895365171854759038232145702319860352229539964662841095079289332641066488181065811244129428003918450746349724877457071753537429522634197182546212688032118104090749609960840318017384793975757667017667706427242764586660045970730148949205135766010419383466716331285063529373928807026777725323711322113323352865362068535829807611888571738095981193622360743764026484906005515852952542148875734170014993070453469400054838536164636842590945765159103283394725549189794435514740108700898957779363596151809231312971646997013345717265219462647625799064765652955022418343851294746179416818992542745323929357579945021591755822891607228878569255742836704472604584444732382845608938949131538746062383380537457126008789058000545375437079407731938057049840922912204942431863162607033972354944150978599300171679076571228218754610207692326367770898992216388779382001763127672561295212429042914030141888276655878963395353809869310748481503089046979564615700774229051635415373177069487829908014296009918128544338772918100794420346875654740904169099106304077078833711927423337150793630110953276724071284087450243384934077083682626224459345927719113791597949093683278082310807326097545356080989982186517537497544397238078396942902436598212766242888532149346098645931948322149602077956986665155297466403245821240887524962262989708040213496711199262290485785100345802893447151435475677514982201194028007710271190100540833805339281980813454717844787196992026421282037298112319219805004444790505960301519148077416736574793760412652135479624722276971621161162769412066472741528520806390857334086556767525313572215409464799119570595367490157369358133350966372594449359932262313796816084115303520232199407982463271620945783965168572812370407134974364414756218308402989409050903726028484425575947732582476798112895883375567226807202295239637659512715968120141050851856548561276047102423377377230176554931398540322832300560956209732935667558467418514999616997257270307799406101524068792729769863407427133563645818018261792618513982387856051663438185226729893420800033509543221621765298568075272235198054506702704864324210672494173736451367635500249845364574954526375752521847091617959229050245875380276813540539174990243940844775250102669149261141157439593556652677541276889113139712506304341271247245382955353653529619155241794440569725457404511216485143536933883241811538844064639183787059549244946055522725433958356839485600396441245742616654446282169063719601762559449278775113758113766672919889856271877194426664779090280838776448780611006304310825058593487980488084623079249506536541774475769280044773562935670977611545171161143830422497942630208031930476838535501151447142993656898293785204519556226948690886363404546045588881033683118614419107882820243131386814976233110921188984247164975425345944333919182639400629469395804669925730270353370125162682111260408845686220942909483314400715733522981473372855268733922533810806928509449295565836261990327080965994046901978130296903178789292394651258025230910552506354999982100828155478875010805619641507092434413129001355110034117906673809605848325155838758487444375225912638018783484603771075062610055608077444938886558010814990964583451865053034363770470653595020758994209993676761477357340909171317448431476537666323392736273303065059871306675558382857424467147155907491200377847453574688443610603108960639946654016453419208781526228991250081441711970916896983176020126513680415178717318717334513422683340426713428698118938570746340482722739201196392139067105874349362380840671304700806245744664439109166010579993737299263854684310359441356910963109402264598046490996096923300585346994252818027242725727694228222706473069292709632174338889378567767298958954225876671263459021088756180529019975067651520640825087744847377447244527864177480745638633511490554306293469868273719577339903171206875731092705537945176828032132979335245985313568679447355119613873830856454700066926877120637289013449740560588022811166173812856857275000948887274754658153162286367945001015737503066816324014351472359845825092733772388009013728368888660679733595102298283566007895940564162506211095116957246341262998019950928111680108577345034643359544106821942369986311139633284787709941781691459295036506648416018460917852375574428229399791164257428733805453597546070150741917493964101321686132091661154426694765699340766155820590676072178390291980149806300955437610427487472060971276528769210943898523541583948135744465771631164437996478600074231797677477100604960334015958808951379557280794456470651510298363376777204691490323877495984551720698077237329965837865221348549080869580285714032101415495535165791315542479699734763156066132328611338423193921894565747444715501150784939382238136275260305800645797467457907262782313497587595519943219809880282472219663120462513565449502076420787283578629746379000869412425011178547858564760972113722967632951077827581355832900153909884895594322240900084953153637807231485861272843146327819180508241542928206401524685641602457949255508706212284604836150931029351813742445203008232892541950404031887460771109567048038070178319010720902077141241647729746174043138228515415757875364979853801424063191381815896210396308620169567122473483636095348024290626529475960873412063469326218911978549623388209316417652320781327285671327130216347601698625291389139615389065749972680843350601147778392738035689138577582432429434712281601131697813155319494782794300378769948034806853863732941717658071626955945845790260263412318925408095876869083480463989338732620473905887449548082335203964755609393603533187262383764646711803058827574592738610522529742679701508179275967485145164926604855443404613120169075787452198321088346146453666729051820132414393372708287348825251217020223542829306298897374221088590618262568378992588519179884292218544356584797751658493116662275486834391924748424752971258140387511127803000215514146144816327898102732342428979389586826702248773826113163748048907982342040139775593370070002335617627561742452466538609815915092602418482643300449842037530663644661208899965236890447936497141379390680993491166980784471178992499821372826690225601756495207451578869513478699450231990435713089220927313920188870146448203110877704953561659714058236752789392940984293442299833484009934065852934620934794702239059746950727046023114619879472523249791606921055536943634254098189378761154398636840551039711954558058406118330372984371297128542925926240441518509163480047780321680707745974382519908950541879100227158193617655232544253858531111113491344215944846675800537363089639856524231423034269999976541346055311852488711757234624405110417675284250866889028811305369563496012837049750587602463178552524720649710526183814113074960398277404954102791801471703252919133745998322387358254766128619613884844145385829726830185254658913425174571341593078737582696993954476412819508316737075390576361156108049863320375997458421113476476645947488223103000493159009206735952101191009981470106596695430977887675161125672625891399008914319754005001282494646179554815583150656276223638990204571650522121313900982739887245269955588085341771021552647376127211774434547865818142401055335166763847616644072098511469440718268171130121091566219211258165188616047974672761716657187857974246466523036153061225732793063137154600980780341200888480901906036592576390160852889307240889798220673728835143183559869914024807950012530868414018932539607103303180010646659213279643068154734876850821123511123815355652132815303819185131412470384398430761084442680924149877920607836473009075752966813592399752333562296730080062298392020493437189450713701499445730814002738853940178315906502604220389279651585965626536626202973835464738949462030347724571022741748663724077839942682643469499011699121728488224470941426043648185416576766437181498041678524611717308609441611014341335031141073349072493830951701546982306550117248858843844085233547435451121404001125080967477350121327531377023181255423326339950301099251073854700623019541778704571404045074004098574070003817026783023823519004262949527564790641084945806045231059784910901202436127826467418351861524287392852047999006923174163850412999989270581553218587153427821258107950154191969873360160461980424265088702610971742369981798118894001096807449071235675049176891834342513676915496381705320105393220475103636536906388407367366089858511001201816287071386841596726068437652970434707377452674759504847436182136073824005415519709643374700725844329872910187509749020329598552747807597282274751125962951897498322785073952354240484584614674594309206613041846380692223646447234073032680488909960877700184260797070288544959344579543080869897761143410102609612643699897199299477010672390784854561006283652097467323066955141408768478276330471037724974805598838769935885590634490315484226134125116390360364259615806236718839867957707236429235705638096967200688336502074336956594291694140719815966549148397908367250529787652714592227780813163140054583839054333953679985079121764523628249042948544693985415329234811211876465123229068088258700430262461184053982419760820810964944851279244481368020312064047986374388210492753702419568454091461962763925790835585810999847942036664291822924104281328621737913612721761710611767844856515563534974012677182266318091557566158381670993483622665315075392707872627193480616965456393166838074022059537498718089361755640549785727691437327388881136637063483841353306700595666352375886551494000136341817264233039978816273854514406494096335072517418481987173808147480186868874934959088400871429383688566357196484262977788868664685892429627039167925681811896053412381419988087751437330146410443898828170458528663772960581712125168806125351442470637413949572357616109916879303034120418054640174569599864037704476818764382844422524919790155789067408417561931823701262816934144375249870533715462438324969979588255017257794564514395003301660264670284184607151020098988196500586601956425384307123110599736751102177062984198252994910080203635141477620110806051567029099605516072262456633255827238865356977776722352655741138124672872303865335094906922388477865015272951425824591333649256474832861618879097508259858720216409112746823646705379872546937464621689106157255253917919816926810426691551312967346060934081732284154014388894278834383790855762499763347403536080472082499306936099536552544148147854483943012910724690140105023164466909888511360892724852498838301636663796560503097033284104029889620155308478950840074810523033031550865557107541564122611874661655153414061147719415649838916934276158053926980607426133769072836484014133223288214761265085574320993664828335066913668115352650642087066215325385481570963970243616247379244379263280928253934942231932274671296615349949941401945067834773654684150178456473031652172939920833464019262938876718614677200440702835498932557524365295893621750083673111284839496840353482363748392416899988575092632629250201289132777666097635003308471748254180785361648215489821867770098910173933883235000943515947479065581955719283744485483000903535743491427715756693379368385150932397520062202408276925618091399077368388315107023698462926126747597438529156327640467192019296386091259739804268148437156821524220860937928249445040790064129454247494836218989245061550989373975013540862354776996740477322921302230752429416824031673422341129462380406796427527504014121699242350353222222104579040887978156945458943315591914490089679103268277381663498718119976779287472922562205078175744054377852580432530889589111795698462764769811754168823213403965358912818604643956980263340737763412847755644942155894851563735486166959338264896999433855765120668007101614043837101210427531721966865765770957487366758837480584382880827539603391209931072960282471643889651133924470732376897081331266003013195777449031838260663860988473977256517180905694572138536713872401742109233937109977744806761640652549209619196858412246277886916257801975432299639997146276362259752589467814202188350225603676329316831344795674127166188390115442038738859349728376892634918299709574595393877625605208253823101864925835573915488535760106591713933760933602533582608412460697086276474330790323459599687593919269561060913014656868853625316072715188690862109488136135874830909095336773853168287614724243995529069770944289017419131229146385911782688453436280748543654890504573948329415093796338093755869381274564548326208689831181679743414509992339833760420387677789357734834191063677881125776893339675241605922372742043641491186442287936169700025957304854155603051829885957162321679385515897623645272828692744173936420025583291513498997137726517977607050568101172017208151678942000551154432953798723041732541738317991001056430877764926670707445921427717727045973930666597530392737427618560954766425429636641583668899425990121438209774960189871872678200504495991740662444672170257921955264192908603590441703887987135364440600225135469594478912867475886599317950328716252820731817248863654622765772870768368463468912709403347972978069437951715946680867388389982228643338975575315348081636987339144141558240175286425591377551165698334858544799679580780912117063939549711756637256826721611650781232735956711552851193343760535973333433066038405884395576046647527436091992737687843522907212634950314661620081948033890406089714746042966983386942604953985276913726833965310937920019637154897482184269747293674371361463815655983532326939491671408632542338505425057309892563086907795532328140321045214973332604684992820693927889445253472191051710381732831260087031669513117611951927688305061580871631602823227795264008585514369016370562552608182240017419752630232889831654507128256135392880539971681801200478987112842671225363141185444859136896526734629669283621550404453783338505746390443662644130835848447509762479182002849266293307174313189597461300020402504132433763861180065606342822784353343576981238752528127806598547021139789823678037890931683707084188382100018222753783701451986054349723539409924002327434131374142553999828785870406949125866567905349085922460369370758204149075275846357679773934309282436965423674874907811065290798713582837532132886890534791114415854823407849728693240671130420213046373656574872320489405809299363209052144969438511062686867751162896130770727180992279379906358072765233509638294911456725184212937302890719701302941521501098307572152648893861929288643064502106477358259361525586168921927302827962099093542080815384416126866180411313546214014732741917207864987690468956889642841127049195460373756748716103529876302432131180250199493187062189517021583433083156059019394394170156198168011836772874469194299076718275831097607992601436644415689552832670493294067440655295447105562566926450665743554861730856659503650056469161912142682802088778966286512821052530040368840873797161893996881161854759710185623678623378778397441311825826170010151390184392498723852763372766906857416757952960035430121620058785195183088085358712513921808886318601513408447762821448965037485409894615930399163636424423343481038535354901226714911019610086935511327417700683217333525506807887710408540337728420057355832999842832015299257541383604075230655236076841455824608475589955886012011579069106078080886714221774231315433187120215135210054629662711049006353809908567683338832132064436873136645526007065183014551403686820850700780153108027471964351918733670484128021308336248838221055538452260369868185815151482776575750981125636342889897340278826735155982051317348660846799599083560051183061901064176949851902039264371440172483580897835472588583004286966842542551294434703543054250646825851971203543324892917017965691844519727077570717806352012429204615496110534092166647850571748408207677285056199688622191120606478573185493475880950831344227033602871263706676714812692721080427719687146118837342463659267688678162472647727098342563935221478863461109104984073274781916572677959146996492584688195386101915893906794677840785975814528666378880024756542329065313715973647432762729188158726803316445346411980911005109283480968241643761926915688704251607828702722878089719786374032235978134281909581964148235296201136346492773117867663938664243594656380442705320690535963396993712349230443264371981274597576644627249108901186290512628689191510342376233023827689312509136859476973718443565533686464138798336990027666171691477167750554059606208731346824037875917171014414899104124945035704586699826505688264693244968137108650363559590084387841586105495588062642245127851380990939845892845546697542598757428506131282220243961793518152844798589635783119907623022875432912576151313861796650683296811677432615647000241848527392489408391962639957698272343147589215416727960625236314955931646358353712087489555448377253400298964022802614714285267305239056609673194322833138792669047212284438537178616545937603629172455110404602879180411203308639313409703191226170550302477878209562489116604810264150976021013902790374566987352321928261376027399406954761823481148696708077532436196102718319000896456338278013326058273612626883967834863749967446708502395670510909640264502892929628760855380411668158636652530945139333422631536955041483450124616824645993736966473310733414237802891387707123855776268210350495124527611516809589834366856513087777019966063308930297236882433145850021939198083811385411441111387673716137599277469398049609898804393211169244586009507711311695242180759448007088502911845579633928143703890662565290214706322580446660865247118082837088921042975932355348478124561218818177820689518376521643762771893185344484865358408772219688252863756849789207592593810414854453175821388821459005967436665942969429266479346257191140866337808210628864193551893570500331072720195143087131330759751517362253053741778764512142502600754954943430006579163537248215170226052200555560439543576614184398617192275139064149075195299840451157997511080034172181821425378080333821852830658744981984702359979214102258401422850689708621999148528099778721553291690133475592732113654205070335673804445374154900087684493073733047084179444523184941645015110322325320915172175814860347444286811746041915675433554026039363419390403887205669173631627754362989513875252589596788190837482449481829545110001759971549351611212600934370886506512905222080873928064651706854706658700217618666611988108712411877207641265471988386007594055818015859395600418061779150455608554590045395444235804771151686259794361934591420073211097289267578739397459006279518455357480227027901570636809050364869427924224503990309341987533211608913242598051781782354499117177787370024328977771236130747188727910053430091815652522296432120468794516579506105044089301508833799009346807336099509646028715290735139096489343611796671067831612911697745843086575595461445866704621496369284211162597456749250390682579409815689470450412668991426407453703700062711916496277539963262314163240644054131068143633662203966344477391383375130862718976420135015780035290449077026672885808328150779917725735513833649657802260643932013130879043951045157178820904552527262696014091802000296768192054791191663873776036067849869755570554180494522151018728337356621727951527758971236936688434870046465734119086452697692653623175777531006056102945058580983765616365961791692194961812620548575118316510222138180799201094199353710794664629133245125917586248030281715511685874572957659263896119333284832924525978337474234515881973454693445790185191686018798874985319024022063894998727987987141532745263329111105061716558858065681848087611132014932355876793808567353114322544835622500502673072060197052898243147347196750571771896752706764131297227386155874681639841611091138584042337876503149544028562708755698575065586102012409228235143248124736470588900402373263541168627909311777037492564352134941611043650665997624367018811407344764918957542060743809597654085394305950636115644713282324379418141334709180898602619358615006309834563970850462910236935338698568515410413619515172223042935037303378551792646540410178465416628980110701847176616542040184449346040933699759297682014219255242031166948766770526625615539022578779682600459125333535346450012296297211963630170869203498336230679575311657550340554884623009959258983620845359772675848267666671417449171139921877228731333917092577940075509417006794514247408387960046819511679081794103721501310998107145051710600455753932837875729959132291849426994239300272704118073488936794143670602886650722780214656527538972640208151466500407394193471878776800078683885500891342206754208164183829677371677530187030771471486950273727992666093075667666720077998454365425215383461492456238309369215052709293512444204926203787199815169210029363433137069746719636645737673010367931093184051295428697681872324343307881209948933822863726139225612342561319228576433519316777048071712923848502060217274298685577459659315496828847032206202384978197869703511925006395426966447761729243362214873012016864414546778635996658645442668184156565529565558933146260325593059785505087416635374329343692563595502982610734259203633912002946685780425931027311606572886168908671590819124253222510722149935263830875939692091273422884086305009562163910330159274915118317174651798786326066898914146113145184648304031128623408929051687891137185154506829119815969811445128173488232908576159309462010029216869017309227627645412383389330854460152814530754919525318743054261700631724696796380412321522678472298784342094708165601049877252316390345872985262423861144057607656383324725288359105258358537950069691825400101201782544333923348085377719111578661514184052212744588179467105303527722832881462304145792403228390707617392193924142438720006239140687134482611946949330681254535322871131658536419589699994518296291066531663642422404963539631476722369237370748810131715941974004639818596629035230201251800165603299044820330579367580720924002359747697673032916664098119059898905519878137279923780557033194579029172838815855511728798020667119403720388041950103779118875007525638336368717703358171151456862227448416285042433342704566026730098253149227212512395187388666600951948180333996724892994405750872624517100011028355477651438289964277035436212384562523493685998135621603060300255912140948505543888002242189768434907039726941569474362270405170679585906411002371749093886228651485318765261450804899550168786131697082100043196628777577132172964545129261463574263954822806488565817020031436673397267702866092964661025528936522656721435061661922275188093521219415419475812389126764118995763472726696413010774259559969861893349766500068447945999533139364555026743680686764184623505654560435481981906422921211303981625072528259534012927184832976696215300788302667253919048486984484876238557985628862386082674742428245063424524854033386526867411752437213302924688494939307332235586256710070353469191116756492904065393234365484695854373182315406125074324210425457971740158768924632799166434249152071417279369817642920625595606686771125355947635593930222293537665689189649207026903280733488571325121968452430670292374690944575529669397110329967716794501082162273963131712156399685833127855808446242857837038041204215935626500564728293367932314634664659189595668356364714299766331336026213326163306948107592769265370705447485705147701821513923449855642611173233123188523279466737052621474619490091782787840351405380449396425983363601335990291406629006814366098794328905187790126337246418854213934395196364154041312997592314071855245003039790780590068513494136519835672778036810261384077529828356359121548427486248625169131491530578433920597596140125888383327226071693922021207102416609017063812026527583795486082992263864062433335473397245070155923930147718938830865470041738701295695304301899661388693556632866606128765297745041345158936325433305246542078253482364380186065927482810546962368338510349731430434284766865849865779772068211738466600010543689771312677908068343417747066913567490683610136197178780203763619411490718366096323631187049096638344511700183177120024867716797066486467562518314976508236141886739230948658900189756137686844804175959580930145125739392365003204957705336556014361980339513558453728089915530425659367917598692102711161578558094350302395791592043581078158765861090003566700649033147341754656509301375558819854526094277223423845799388434190693087086293387063742508260682191234506365166971479974790501759504338445877163856560073442967848413016862683782101812729396000024113135271491220962690238238897883967782359779590490686438427062067933346689675513271217923661825887304504600557507863975591805805878227178478951140051995511079354878624427586796465213829000414768764318716984178380244524714610671441395002875533370798170473815112241132692919627118788341500762011088692478276227885424565366546320453791745711427726487934007816757339993249808694626354016009414793053258645378169881457073382720511278245019234241139691416352717488358764846712743208228538464158410506616869913423425531027804431290111715672654114452537006206574356194124572713961877386941783902631369214202286736073117965760679219196124096375379897813494571460052751007270507776197614287603694500593491949232048303182432206351912791578456726530462775538244665933109181960725955305457585777966755030962309694199029066428278764430285950658583118361092884033873861082263965764103629324834889897225510049113583184765433382427541823704660960674379317041345105404532595911018346520827790781551795354107402629804427338237514374372867395664391719007886587480772352903033226526346787563123864765043270586814719504472545631959287772500678255628485391908542469131668372127862305187462513942959449272459821826602548129868921004017808729407652547840459335363922233898682143103739865008278310605429100821807369066991133514424492128025927383408251219965795703583948135291495022862991531269510960861654820151928116277787203267515556850218494629060721117564936822241062888963107597074549255518794033368178236237326200333858587522756192986916443243358239925248317260917130574656807924381747887348723838519647150979040938982209206637497073804424259888974648201866955686703079229566502941611244766770952254440292212952387702574011925002289877238338157154249982028522247269062229594627452167819177157856119586928003089858132236330933192846882130541081079085077866015843143524553461211792498991636498808857088299325497173877039318576793574240816977552747940525873663256352012927012477214363804670449779637259428183697332420560420558920885098493308014949243196439863369226334791650863262799642305301754106834283504445582942785826284864534530376365717298463365372457051857043088932484516210556101055569805267695349651186033899020731077341289556114436625983279443498334597039035102300132157600416355715179746088591424033110883409471792589409142935078336297257222675321561866061229235634952299290660525602213096829681904451593664744777485715644922524849167027609699818431576477862463258659401418894155005447563754227335628708338572847273280784313735345229860237411200167454521211932074165170330307145954523897294531792693509665030956077223970627518521993291028655702178793263457246009466947784367249016215129574985007426599553408841707215894852077070151433253081098787215505158412742390584029301254872962327280768113267916587619425885836081895078078037578317558600160903894649217160121668137866647181240842034916187143407120116202703986159538716495643118745090137366638028124014701582716142403380134484606758184465949326778218792234744937268748713306634042555581786461551536394517153840427047022568910289364270828014246201080842222438937849711174285935375892011084412069090607573715224853622366242008855456048409740497972827616682882924110733101517193684444039943080889257360108156182677862991938188134099132886438984686110309910593866179734461400660113980406403450096007732091480065204810705526390296005876282180855172551585225793137919833063181329796049201596594807852891974794196438301643747605243729159704654188613519692866214599409961576295776300325803097465176957622786047331772490360762494218286189270817300009971207511749949334869867758890569427996833658278443366243228052871139868992969670575417119023669809566885595497674664834815386544901713943166254919395658145957409386749570646653316799863964199109901083624161716250415902736991986429279843081659246993581193474155173173653615068990084237957291964711145903537608392791172105294605021562977090224909878424792206245496692502541677210803181109053539403061469781273764967847008171219904232018182732581012056644046743461813235759606744964757478586356823215009555530016286278104607880880319896029703344217692085700211051709780952279890953920599475952127081899229535930873206780040870590169605359789306994753703895272630899820855262017712093089120703234374546424593185613032237355433671449271896885106338772678560625379913568466703330243846362549820756634457021818857902253213887612607602095791975883760138009547272758169510240224567171544332446793237444893979801764889692526619735280359611636944078063185808641212272542882180416602991311618154882994552223691963984933854156114829308426037286469290129605880920736101615944290007453049661242356149018825916607731890465657703200020581705642355250050428447904178146088882683967249610242064294719499835215834968050937016496246060342775520355889130391168554585022383998890214881374423927449404522883727155974585011925557330348518877674507816126470090482660459017621979494117947127654968990149209238023933847511083229280279180721151759312982031782271322952939035009199746422899085651953129808950637927324286612781179129580443429651940938433213096815877048253842045924692171781782834768252346596298631475789079911419515491136216339699551575441524737624065480721462873709871840317671560307165241205407374663208852722985601959836524777760501238803946560290099572257611072712831990334036512886717578842375302201579044083627482941292962453921636212702904150764422442969785701722521875448032824978562076467094130825958554868013949638934838273418779923197450701648980177505086445892718023052703372498197572166402006888049636013514545117792521052040989078277679432373473026670395688840876601147787629346310627217641423114711855163765771544126689966561874045103414384864361830752307565301981326928352753619688171213051998067293746425015117095309610652796491511326759586090669098463334208402872961642877225691873676657503824119471518987554369552004548114784029882526355361952765240677001754228175924080128937921860227132830640765724404647183352458746077862088139075811626998027956438359889411138671058409154092550340665489441923374601073262556782657485046588462943814816382222191702410023673892856791108145033510719806315595553692044104239015547330962628444656744882998230366567333049312545319351380936527055985468625370798953406149668467330699130978827514110035839113542745539604814863972058330276484880871090671181076284704019258958890497033156444572410459594180870335391480215314934420839279550606286841310808546858730253554858587679033645253834835226485353627434330147345640588905834445001931632295767105674682548909276955116495640457866049051651053251518478284919274645644308572543239330726323628810072813995476095936554400748079411939923532637421169410002936854147300788619645905878134025197709528459232967671451290974601549360227201848496076319742190275655002342675432506866373866125425119692390796778888305886921305134105995528370139590057578163976511424202675103601668755792282748260542046236187847775137469845519865377426995532704528437832642864005037118616085897838222000942591998588759724822070068576827789845714366902689067440149041348775585510157053481499322792719314186240834744156965941673123478794714783592925054977157482808572381016737814310975969107977608061479404318461681634290450885400509880803790482399881946845217216347073329838389843666828696488108909439339220497298407704813971846841467527455997342464327157985400890048337540286220170105531549044260074781734888695391709819533595861424361839827403635507136902449589983045356461454815919232593169940287111345331557611337115144198918639622698692549288306744340320684145228600412326636929272325292708437502916347649441249050229461314244171355975825930399096188523933911118395190052269047496475965918974096361774738043033963299143658070404206080539102772238225504332052296852915103484735447777019607786399259390227275093075787175997118380532758943568361509840396521883795075719176499578877865924211904278539963305780633487432401272921020030963518059911339556582665659659124851887384530045680594462617304756933011796425652990144337382034392478593794297075408274452638015458401393785769173870818549715449652532318352681582838785331066687132648487950637093411837085864815309808002474773489420843980733545457101131261560327809653135246357842220040648463339493618297822043898013573563417077072620317947672779130386866434709855048129155239575018013644529534808549485976180866390721896595230675573845586110633850142922616206824539626673864895836493081407467186208492846405819876556542649995362473245023737635997272517663708941054407224535162579520727738109022499785537005946986357774434313144960815591113101517578594623465434093444559532690985890756895617710466073831062718980591068053500037042570273088533521200584651315606467971641000170726397445688717967300338967749394752698429875394948477654887363827089389530799887635604582749132623670188717416779930932050103809540370084003098793178982549616712164128519826902158284569042498256508996720488540055428807768825539981889814451712577274864863283780879418710130831434819218854835219783323558840541551632772627541256528368182881531808664417281357157362794194130247318539124919243260060292969699886545927267336591584537119728615375096072682518154942706009870892346532213060160105870887414105862050601320828036974391228145001182798995259383605161131637434681400363314648935675044997548495325400027969967820149835117529866309692054031369122111686845768351910511261204879982517438400283617926640094656652912720237710568291941968952443059044249780561490625107010788562278840539982554741950391985359695415552061750715026488293835104156449084893239967293493027938093457265244873647426651635843774339053181925507492569401621030626891649165048832680836401723039689653659007195603526193271322327223209682313119594816710296334931823915320601076624820084396963010749226818227124909053927162403557459250323409870371714477485384212648042968162012459103605694978432818556012831907664768257664853164350940908593539367192459824567768541030164768153611108580407444293217361314116486697002329081003875482390931406125608332218997262015878445429674311330107354581132757800699481364987240435297431187049737921909762941476376818433479130450613057531626136296162411418505623654148445161822178936320144481886618792537157519979016033957127276760500422147121788252091001938097567513054025545025450673259312220135051136150648483141193974678666898129409264440246743094156873407121999506666102750851648611891082683634104720275821683841798700278847113549046231329363644980499032232555828146057838510580870817704487667472589715622276005198858016467263736899510219929091605096513555626507539761606361584197504218020925435740260457636604251861537296053962903062696701449325492089293157123228927048269145145401415318391388893462197398928227163060736459889243262656752059841623109959239242837634612075627589888762976577615089797577305947081923819362578326673971245523216678077457873342317785375142138457353714179061894082374464790578247455400441722302702338729730664420698474074577947436267730339825978509515286159228279919514904283778480781981827373258444779796739930382328012891134159250743789015151895006513761238874738324188310706486169768038712916456431577293972786273922630202841479579122348508615386056776385585950586461639314321309137687614687665979999827300651486870904393167355015356580925281304825975727405085095241320182358405065487799790153582193495896138739569842206093342168073460794901819090057104395327144087180040838570170646840476998943036062864268924546584638430251596387584255759319053276249258107555527548889628695626266942825825261089644893120349864525326731902333015119888451594274757010507261256015349549848704246810886554904896563651994022333096383693757184167186603502576428422935235850806187640533192812865258741362367244064805527506731287856295538661024265581223871337753513969087101176560251605377358016726310853251133200905202066693580930936215065720190533711625935060348854376825373865978843427498716508140325227497543860618571449212250030198687262256324991207704718023003921872731626817438513261832432089663402823938756437623399710010209386388472140943848987029516301601743210536780566802880469185373040431959082206556347242360201620484299684642825282817150603287361628551140069986590770460189624003395220433524438285217564270582315081968046208522076405400008228028466694334293651473322174719650353614156941357384419984525417379444622883006458280256770115772780871696952641846843792570112318080832034107899192156855528741604180290898306306287350138845978450147011621681971770844253916199473870610463200858372913277810651037924622857276879238844078481392662884692148866388648000175103511082051812842126259677919685142616335981533770132305868215774574371895892403380039625854007444670132539451876455833107274087731573616097072066123962630794508062156264690579814697970258921279675101019773827277675616826469937429983793385583473423801646640294331075143518876898630940777657781660139584703752656299323324158535079196461969274122276180259408615667499750123275779800715158979657292758222444825051720589910359531393542963643157506831104598497287984614792108142170713197941905838949084748989430464383908755476578409209127408343218646682198285298290249088765136574420652723596072197980264973545494847617611652928794130263653408098345603410603910753444920267681806241740593938541620066525864560434720120310814037182071264740348533384384478072323071251715700648455264916172455438145035928549130051048385731748667266281129213020354398375214486717339219287616163808445758359228678091743857887731419739039823557221209210494221924999610317146087485587806069594835274726110214928762340168052498430256227031815991976211699401886155918694230420781734591278847580132665366291913143552986474990709340411718236233887266833400720463560153137897022810341599858999071284582516398797627611221964055351349626476034729690652822213285392271914380060234172530501802942296219904282535314520159956501809754852996961720367298898188381476923262398194588171959489019364129401772469894537758820291754585346870146476319313666367632822012919795326837274157961490633958070890188672796557021267256863920461302721732515728632141746630785007674851907390232721081530626230128868942190880990744525893267746720740254777403292395603018470993427809921678129593540010193033798576341361851973136488727413973741862978546814994312974555811852395459388514775490690491743340311271825397801641359989224855253719649322377042358630450714772586238244288417748225268153727359706789272117427889057347088932055468038346972574718704088731830597795675750665357495142700392940719799838161808382562567514897675545274371296886954688124492976048151413247588873339068067885618231156789820878407491259396448628397679441444549969180037722309203508387920068763191726037830375588672011997325252992786023020199962906653898517320913150682607773066177592496199213547383379626860689781945644538287872709923191826192489970004890182976896227163543041922805667835079007569423570197395781589578150757489591205284108094762808443838011225937268708430717314011504862075031887022545922551037670372046721126395388737274733717904446929918603202014563673197066385868944476017842259177018973110801924866512817361533227042375099391678003574834000484154171848157758051351366680664323152915851705265079407760737059096375044069828173589321742757694244536168941380294153248938561564654602019882765159904091257376337043837506973278999663661580082957650106636844066834370977907849684319872365733749936382708117038874985401860739014774635756492822879710708990272582451806270294173221477747903615296166047056033176334387034588790536282207457235029551799318326575235106811777000415563931714751022271385617413821370681090954524088225496256977869533414535073599394002334526111349082721983413769708850373773743251695420279098119491336134629038046298595057008041904577963450609834837757930194648433853304881337843469347057346612657028128837637001154221200353614942434439634002176816928832674388480051934168661799242895479736608623361923158140753735837994649586226701755780219488684194239509902482307216107931354819817335753440980831997274002983566410263811154539119253312832853060879901299612851107816998797437378954907372785522479643229582913009195861943468612658467387764513208578973140905409240263508167947619893762855112193021219627332507361462738043195654070695735709198720937513778691402678420871027952666334482065086631832895205951273394100398154127710712094934520894385975673130885754502871438685044540256759581425727411264223650191725451958849977927374000027018133227288343716940496478809860309825187279423472584523518722593815192351784217792159354872952091269440213681937133888650875090120542034055535143016824986241577803415438102890902632633176795121582073859818399188245267829794146497455162366607395377325310865142799419507219890884686602119263371724806404340335318271911739709604182079994606141084166081181526481526889716435126773008946980656636628519848533407278484565708020293731253774209691366468419113363618618317227641622992890231576154967172345249778422032040193002410794734896084722170409834626420242076142442113949489030687755201884473840764985636895360376035213068315920738344010562274458524894360522571525626232067553671672309360057421093045967832990614880264300749842654409259956748477489523888759808103895822955502429860093474101082005801880025426111193941376075339294182494288334013064008126538762579858354736848182154420548008712246292094333894159692653893242122711403468861200513749324759910526971619744192984062361362965010515560345685900461693662258831505596735931849130394120988333585347760968556162888350491524273896201177668361073256761100298607264793847572874791861392337904068808107676312306899663610368855477068230926463012611745593127110665562662741889433570865294426796071437180928936185981834064121973057577956554506275750749905704687595506869717549729983701422089844191955446933280959628038143602928673479269971266557198243135257512008353584717830692562595321192052838678041204339815482596227089706036098666880875386803050643198373592871685588681554651331704376007208937360062511114946119006130779571219542999260173289032623447749549048646559590909188120659524603061481691041811575977616199685498267494437670575001550600221436197435356981567386593133109987899897722222776625303982029621180120349386318253661398167589238038776932597694312378917402903457090330513636477508535561467964085355657871668573699259756099179773714601436020427895760695274673629874719234902139203311103411952386313623591065375635857077544321017245665607894157336615806434966336512297371378761222620866861684489074296315896876374329622328062755391880623565647528680100127697971734247825890083885443666375929759015188731987207422883578493883373351535192098399107091713044513411011219139846556906540912697820484788417211937350346548645357998786592628990993114320948520125473613539378179841658518172503931608257347593248000839197241015630888535111572116967733547914598832927461641593732950496695201042179951661946006752495453666174110859587413695007341419875579505302904290419160830177286988805425312355844096306467786729868894213848030949659243378184396379314117970252878333751320818319762645187162205267343856723628024099775001682126339979995570041134233561942777732790176912904269999034267617882083351144282068861512066477881301537057093875685441479478240552780257152534925246926376140745334117532199644778299631546850735592960245730345582556945420732430327647909880444319401258672072497885956631309062114400979403867262029060776306109143708244832479019211629657891397291228573727578098716799532469676619921500637398890081023461940696017388082731986781614192655046963282137343351085905081185812099838466363789288410300567984350577093601443917297857079594315469935475764848572145058524298318577635616826295155185549797623579761839189988687974057477351606550319436461240712983390500211567938230143781040984280010488647391865949847004014317728596384130388556098776468380000514732945419916223537935919102052983921601315769645752865408215971799714521304546982813462150108127169835050140599338690333438008219799081591466059833531464626244808815157514218765372096762166213312950751977444401567192777856843506783373600439022118494175968144770551750132177705948530209708099887318892203032946542965087689165613819961172611801185448508598801998169385708752987362096095108929108052511483287049271440846473367218865475322167865581884856872085507210433936007060524635002047289078622743299535430221052491055371527362351578623397059729091773219866631347195706014174903867540454296972023643535741286531623568793657676972392904507730118528473359670642938756889381288607099940239509623641162431944217136058713237755622241535169864678850868161581268106412874996257224729545711720277403643487105549468928114403478307646326837043741163805440832727759749501189063429486834868714691945383737771283749340602840608075652201926967257196697079817481266610471123466116874387659908654011803947964923556863162970835638422781663743878852330439850702866498396712635211644968488375178248665555351063302362323866975658309547887333591494214361705020551361788359094343592876647848028984081069318115790664460112690759590088960885564288388433334908816418878748918913684577649577005067963802332894848485494959424520772741483347934764905503773913834217502829552295031630498463717336072001949465067925780273121625657265079398502418575259233638768916437113533976103613538485522257915934609660859736917753966405899055680827726773550056684997558886606794300314764393100374002820119775707883285131806349057868220410933053196622489428879990000749122712113989157446032768510458324461705878304857255109443605125034546460720967232361341782785767374669027076425199711711023219268504876513735341751887323912444966479618318090807230047931108507828473668243266871067773631981374263409675532630353876191565430273665717219512322219761744233307584864823446216546512141598030497578214722002299826638088824826230404789496432042274042412082138599048625965150119058211041202808093855765674660344819316330664600547423255188917575588271057556481988270382029430583333423451315965445496822093363446359741442258332342585367151026622891074015452931983574292062200428445557471692202155332408342333107257582419339896117562175476567360938834320434708872491895465961787078136319886517569486546476986082179992252614299724770772537334756355116158813370940515626814368019654356686615926016039650562994934067898318976252059350762807560631181609827538312441740367167716026225625451517186403788686802565796511663149976022037519960390433910944305417590676745865419310699520028876010538541241391048995799037925887030125865503344600870465575332197252955254618105387221110185859387881374318494175369717825035590084081219359863464706204864608789091212436252876496548839554199366147287297191456000635643223006869092093662668606848708915604510758822865900685854362739660642750356410179776783757287833451568895244862675803543542077964364462443854980497557033225714680517418669378270513379697481493035235349413133135301974077485610207933126762523081653027136398731744689441295906313219236150277837162122323425741499489837591271772559569055131975082559854204941443276700337827626651163142306777487509022737033924619348039798155819468246132264271407007934336537909495632959347447636426979641597468305374384723919655138154027823057912649881726351230023184072137346193659915722767270567482574842606696106230868408399075193584014099724032892381557993873172209466643161567603376275943009037459254014688476860946692661166369502969852998905109464830496392558110254668338174705372418284239261071165275511293255075885528621006319312690064594233399449991974931831264223501359984370798690962342789330721721664701103076490805340266179706847848621716885722195961994971500575898467028467161817592355215351207518479097054941694466037042362933970514078587394310289771791553892229345622992226749126240824859235839741786345887761534632430316900053582371746967771880689931350526553708656683042325623708450123851760117828315704294703835904098120772917281017258745306539288612538597803620538781951612118092591297468802482311185341938508617277568565458591595096475302522352865545189698935504264050244982036143578554940770638631306660447509152218380234918262246566369506140538676330493822252024380930564584733767035455970898307429899442690180407617625140969739637874211796161666387373584080342956041289292295203367282758859039738725155873447263485518359170380004489488401479058691358880697510093612840802565087663516003685443846846870901973420858118574865540641845326126183666715606854806110963510168692931414899213526186441285865566065024263050316242362489490051052976290377655226126473266431373788897402437899876578758939340296165687396976680193905111157012693451644520703198191377360011871529917140411423081172446301768595378970178259382526920073006856611637288482756570203229074514745227739600304384866927143601069377264694792766347973552010973834122514105123655611850753859236669601553707270743301639524442362230750976877903978829079841256033226318868007051000344207268630310655347465183757965326309813005519450758030186511203845006169812240334878690387704982992072350855136171333256285421023260139588206312001191728894763505886042219659666571204370122229508308004603348684000004595896258819788004772959968874135468452780301106823500484577543619304617309727940557596366519375906863129160750609584879969609686831975453532162901109214343611554485518661706932104953632149619927345219987899986922654701555084541679367448008215943245271517979620430488322454465168093163549576890125687695617135356057892479999257766926069656169934779454677247300757842314886857786712108450438849401278493980817097282063527043028852928955211921126376543036776867522364364244994560802846391491100494982112530357111203518204876348151325293279310987577162836145392281901225068499263983290541794272103048219234522964518922707126131013359294273548392892381086585829807241826210434345238225679729900763636343231297862655690543973994376260965192040910039861750803674987279168364669119791859518412836856912817078021810762114095570371032962865827363298806234086921661072893572050927710052259814292057935089752402715225884858126527574598918401403774315447899593943892652800609308494850601888610909527459097294870999159829166642385401394240250458116409836272227127430176426557312575652967070893204207052850997193028823559735052755977817558908348836729722202194980691399513434735490758179018996468767865621399063396151832650522989467252957208650370924649145248947469673611794996255467242503866144075372843692097616429795521827326401453397920351425431474048663342877313425501484702078663324941470997449988900104515180306222862461070496479063331765915563388245029464551667982032929607788531973068940473890756561148095242490053035658538431333454793770751824799767193297993636076427562563982472490498138247154546805088002497268299581426991726673131456456381503732433936484808462463562552178481749498996988873418448730698813252489313926031030794261782485330656617056859751003807057316338311691043027364097810976660361410849326887734843753479275415928335581178618888526991867227560416055682618754239813926279745823294797439925711248218385964354231582687672697729651212213307859961973908619299950493536794345463027346692070856504347661245749239178178327460112886576921230020933915640338095599956965133653714985985216413186151996117209077289166207229637335454592967389647392470102691040982442245318273289049657406102503134405716858589569148688738733514748411189159122092778470471160841773070889526139088031321176131459898109723202488593479824418053535454774286634485354684570471934054681646315507452873998483919614256522274715235263674007418104096808982116109318797467161257654144623435408129420243491873478082556159568447484962800304958002747448175769073541433701141560919655572296029535198900151769647690195299905627932140252759087546165409311901961230423877212986010163256521540009839530525361073434108641771689638290392941103093489969206036707987400023188137223533565844009944071415296963362842324021516760583408376634798661541664815987107183670891990828283249410503433654451639687713129052957031449215911289447899652588220416843605043513440971613521378693084861869303284679271948865155230860487805444638878703191388690607988097572977922155827684413152112550388518222984613712825398354650296458740083746129620076710246839954079399383711890400719709774676815454213084872777714958281274121561597829496626392676970593914946107130963070997500492429690275908170421039894352908826215584857057028784546411952069013843541537669971663014089927539446518969962243419818116285994681502269896971250054565305702888201622516089278537112097631960998288516475058866749082384799895788551675074302132233360184326055767460084443936189610320692451272908490266836513488669262889978360667797062251510252165350468892013419411863302487834804182401281560576628170524697961448378690775928658465833114506267361518757317762829773533722585962895149746844184673560465029592995123783707718720708496817238168791799483502117452608024065842414138855245163826720631611150757694465519641233537113842041992266318786613020250347893723970466943917484775580928671543273227206201493629209786493226815870600801478190605878544903491744120424036084738914176757497299613133256212714621085752154520088537276306315279670560203081617350587507861854239959874615128778118984525160829773045648523165158979837100998518347338589988656888195200320125341588786670127497390940032609903754005280512000213747735763648004288060055192931354257261310710947924695125358921401375312836835621725032667883207075809082184175993585199771450590216996600115736576558558484891263658832363151729050710622004817243189908219567382415353624175370130324635868437614324111888506180496232215376994102554622771792217854326951337497628969605643947420670672796866138769067143949570849648653317183796295227871932960375144787638314013859678243133115929186871678472630223677003664062087583954901993190055626136467177763946856259886161462563016170318701242122115757522005830354303152168032678230099887675783827512565217092567612242039710244670135963583611324202756247352809552460113279283344009426119033116921260952065377340622209370629543963181302069602833648052616026668203907288978590504194426398799560600347374757643467063292928195611545809124481267909717700685856616072553221228523153089386195974321628478625960203029355311133336811787938716637517429813595672397332122213031916248995251996271645759360643931453842403951084456738723910409526004694296463714079884405415667525643857617004187720622013293652839970024069808052857233769887595171534001068933051333795070677904616713837350944660412802757717440357049076419997412323242719825695370274112109377281112099406337792103110370123163206363634861697669987081623203459304695617697449541311977733433198633134140953236518109030885661763170660443107717269707933336437784349060485301574921906030184017621363398299101717128923950633749615651392573090723782521935900528062532400116362426725460558197349882662166129300961505013336194257052379074219070855932484383589847824340611204017247059066679132380184733928979369680606396198677296254908577653714152554595720609763676130878685795959095618922893025557074038940856887940457968458894139070911790140461313027794193223374386901200856390442931875063030026846081445408752001526012641901118857734516377591810749419424336375518318253894803613037065145410808375155213453372028113864745255601386778282448812901385668886554427876744090603639936932091833023751809309498018509421907682259874166654455915887768986325412992678332823260384972982549990867139457360039392201465031372012901083585124753476761477467100952739915725261146274239764937732644067485957467533896039679015250230152045713224622835799315758379236277768708905912371291942790521174713785584234321798253723289797104384703716290799339375852718562383875981209757641548255912329190992306239432607937122675777527860168590993484778168001899866616731544566593424333906857326652937456415546928447433545539450841960800048083139509082143299490264647967229632477170082211776127412817586456513338603338127238865915013378725436476204091890910482935204793781960756566861135148846125684211613113364420266767350869917744170064112543448638026292983372019404685300500951956338073609606608825963425401487093990662504922271130564458762980675215430630571186477495483866848928521471100542515335178365567069713146193978844492077563064518659716104114627741164479849973413596108725454512125817551725520992311108602107886215101016957117824298386619572212675887297687409890444889423220266094502277557151141169337710057909890577825406765864197028998991441932436230428217922236669582639807710116104893461374053649750958052026718037984283856100977402068042284987479999910936489329506563771580425242030344015096701134925461090010100716242058952314403249737159444197677194477745023794503676076493802930049853641395664655794330477122493900975315660655095832616378422213033613110633290686355998971163792741356193896974491354393574899392390276405194866494518058961652808884490558835055802464032347051165510445528713369718057993762712793086163818660879494116411707831666871745651500095019750453330701059901636316043489532700585387058339062936838006852319511435381111498100137229734525391279484794084687693079475035452498686194839277917235827551693021195575487521387598934535177334395335670878901527510332419041007036428793160091236858224910601329009359420305733535612573075749126601345974575774082200751618348884009371476852407654488215047396780256616436705733261671806962947658997724644719696077795787452105151735971122712416024958003871701229153921099726317032257314818673232313693677656445248944729316617026154705886521537691913591072003630468221155218017284231298360970716528030048679301308737678463708104417188201278544982415422478098781096392065601496466684400158280358052407772739932829895721292046949048400155580526476989836769537813038743297520989486550480663421670805452373243183947689399302672088598467934895726288128996388601804228917614245103942071010723752227926899378525608677022647853373821028509154894935604791291666103841786009834348521076865911634477109700871218879172600214883394068487658440056055864361527268284211337179343831444518484820603030881055062779478232115244774115636135134109414640858336473043072167181931963674702732617138573550383317147244559390594237582978210980501831116384030916045304074179730167895578058848118728019005197642827204068518419126777753915623892431414107510701797285897648810211633786565185115825306395379084477034226419619238771721489380190101906866391491161872374447626471561140362741181844986561063128392998099514666028634452859247365107133763131135973854675522960119227786212270116126705789633192403397390408086558821512017499845671296424916235690356558713748074969017620786198352524773311649371005524018318577025850608409789739809534962501590394376876885919491295551539122514994010415730794293408215642881458151504426512325879166497896793394315719265581299334385793401695453173224803524576642984383541865956641033584003275111804151583744654954248547886896413905405232459292612684952002856268176160092326192121215994036638394670676918825135501779506910908405157155777118610065567597914078006410914641373840129859831674501993878158691334727248114351380528072737932666465677374481727203927351600845756215384484101932247386631133080492267642313609717064533353636792656223934041610959933157213038678759606657212060928610369554665652688537509274768312872823523496416099708971510117433582139332843312603034150255542070846077531240576152573384215243560054191044628521094750014541156768780768384332871108820896018421054524536875609358450952550332105585605148143691004035078677305641271340542961770516779053903622194476239312620960108042267360262326681616960197806043466511546287946792676729093978279753185320146526697033797928749345793117645755099164560928242168921682761038647623678159605709950573135839070665681865520266366081601244105265336401214842808528478969534725589775810781210185855250456507185962158143806632651617275220731442264628217215901120349869260278691872152651571360671187343283239416803650577043959163350381275102015112895428889384290735715983784051826032635899022019489883704036118030964461929685474168362238160141722857337924977537062624136558821435423300578554157514521551682629405888038641164305423453611029462049488758968458308749197092866835748086588289536742593045881906372645975786633990530681067678818929008758011836420118305762171395865947023216415306974874503460576206085637622207568377849406820539487926406173815796554924893333922280139573203150306526406430131263041831911153742354608216875998724491411471047362991982574871453296947336670467532550456067862656510378130126980457188920105034926727941681195035152617308168836177646081507221061668498553198589332293204085666109441854042686385789897804742036602717359478419134403110626327332960355831570908656381589400630956252705281739311628634340931693823406326358436182570372608413710373951676446300912547639679013951165249876358583416581685822954243553265095165808336687067307864015913236344647549887120310645860260382029507958285229875075641545738650569915926880782437177346905506093944385725769536953317804470437931693827167704025470208534697500990674651453457977305777158890779252684827618417898057618566445456008876122765243471293063085869911810021898084780937715001795034739057313877489775366354932094760846293409326632189837104624203444280205700921311380348629201612258646886776093341913089937865734298321739266861957180366815229782765693589909576790644975048114185382104309637906037444975852499444200282511392160643345601007063444409193327582258037243201152569424314267111343517978405739662252148124472640700214965873502546566077921055739695776509594315496323374063190306353135105592349608084652001231977407294565928938467652548928079420315875740502338520684909684926516068468851566932043471764766463409359721505779160860354292845803219515486057777426147591169083132168518589656588879850059789046582459735555866470288576115628321480421149354353604831811701169321920039877703194411595435230375016426556933413386383281568133743422484263979338715281668051289089420284937766320534031576326138163334913537739088246991072195380957122495887784840162109481674646020854770356469153743877480579971868355753968852579210559912099953413793882397964538511730464837069807776583648080236466470329248450165438989180697104050009329656974762368915566071262205942629856815209129983385700080240682763434688804787943416274766086721630434830188347210193453179930172697259049918755311359122676897041031935291415795433751668141942803829414894020892598066078724598601225600244126077637148147026887198956371961695903592799295623107391679018314718363863396156526504776010762032167533481010733264360048486831088164059998760149473925213898719728013950973995579267902756341615941378139621832242641032816548067971798502930592231387736577638328450717130766853727823523713412245970617824695255572084154321770933717886904781241907786794879966762958236892429838962314221482523921064397237561925210358416095831942341201019426429329843481725581419128726839171779971402449761435579955132476944738593430494854537237965892112298330958034855651811650380319208463012947020250594600165893469816918855916349832567895537208462915700479791807660635283461188762995876432813743106563939424405592208167831483311199501724683834497376102360069224113810339547073139497017305149621361507666850875307508221373267571527822837962541510407448429936681382122736746963096878475627235956418233743933122138836698059005699248432770988428053890653075213997408974678888245829926306562915697605179403459033113374173929019301137352128768433503754977205015345288991787038330586483699024215601634890949776180583597249535451698499749183240009493337750766784621275134497978461864072761955399536815361629150460342028392204614692945790470697125666575230413686253075717940008607583005692893437998429176241205778177382927659696169336134222408081712612730168551239288402814993506922433026807110627060569483039892794147480735036289047967623495492203463390730408669228201443202852312174741318420860764258632281608699598877078018422779415113732654632328020165622819815844133417377781585005935179480517657784658722653054885277105296359063319755409266919607569994050039913470500702923347440578881155456287654185937478790480066011530338320891706451848196077995054179574486661338390070789735177960511804212954898260100481289477381994034619576337880030292835408972568416846583532182425433330225993422678614606538593468915855730275368262757474304386970029199080500249953202450228205248447097883298724435049032105610433061765840587386087225451101236007160998274173674791140132065277556652576969637820603531490731523035414844226484391610151770762854168276373658349908294908340531801286325759803595240704940323863184162753288326820630502264650959079550189140060279704059347086436840689650595509588179924744980147677596006464166913068560672423808700153486866417412823754116653300972003565574201189500927432328383957712995802620451401818673222342248609961163664163755269489281587821063955963647860780356907961221279537285906096698739033583462856135488924035544123031117937055295103672254329920316042144515910042749331724317638727019611460433019311477750475991565141580647849230809179489338526574282380631953001331562944019013501242035142517553638422364924248498093704398605085247786179701509661919077162032485911151439123127338802582876673867549431015607886596576737775953463800543833479291329093427133762972214949570871591887221665480779859651763691521148573399484370971777943603350608004555080189581380910422770403031616124738170299775738377245985416282933947645857284622452390394456905125762811265987751886046201510226362100456059407045879163433788527815175560246610997333655999064368343428115107051803211951766697593131388809806040868567782036452761423817881772834604226164743114186542641575261681250209843107904453677757323058423485195738427215466974511351243856882804768961428362644358306976346743265027994504299391731641339693967673174562113550322537431293086813920174492253079836628424246298106439764525509953849652504332156350151292579319483922231697216217700257612688552772624887351240373456390994838460367010650227136497292801148737437132266131491206733213217891576742719085524865419469591603021540279803468531965448560398604838373037105636225068861872664661546468321785288283064801769148233857771570019211735580442746287734862131727586698992427956831298288904684260009881290177248114960441479178811531967108999356938856467897821325920661537930819001351798800792745691649501671367305974619882941862612699579421257037753786631643609062670690320845486196732763441405578239635062368688772259320279743854248202684434533344598800912804912523921759605019975237106512473394928239116990249622828164266049289203216391746789927834427581549439328525321211888623051952477632538175727059721692772883254028922781109921011236694900566537755444650030467389683825496331314856069860847794939490253392299004443337488387882930098764264957078346637694225211228008347667779382807196656317957458562601300893366780892780521891193519367439256018972276472418814549553893537180677761888767906252895047644481767267760422186809058667725807554614711932354543811965713657295031666185647478281404879182340660449670606154390877803090228997130602756303625768063686562637779677468755191883661021135985211356181428698117691355083452814542483230350130625917801402215245942303449688699136470113062791391182686075805929921926830283033220463463461681272229536873372452481647039301455329189845279011167357952253147924418181701254209293515351759059120437350337030152266893178038765877827044790898057900883995941354428511397802974377725984129016563921993592447407907563270362145077187562376181200931542174702984279376426190014981668356183799112843782128663087655846260809085789445244493445412582339193325187355544826577339323282051254117384060936430428009463658163181425490065290011597930975953762260029038137905389693031720225139797247657035496167819657023587776246853515840714551913589339987090789726321956787195846468232601492123052060066840713149785861800379952567356425986940594024888645073166842319106911624044049953420039649224616657774998143943849698070666315103733697905333791753307308531544412909049976409761899699590441226430120702301318217009139483867581034644060896103650470819660039909413612968008878332753180752996180264731197937832125592006020011506443785312297314807827439509641084850575130901226616170985012935989273917330932906844156229301950435717847756676666450750425326461433666980733738136454214736211359632720408327508498178479245779495893352210444942846813929343105471314289339420008087891070962193795395985512771234489326303535801528975083989394231734924715347162699741908187270406417613498446766957069405374269790681708988567023557935831362967670855891337999879741528606227034923142288161686714193320605361936402191404928302208895226597708665824657014885946371810850648711795068036889088574661050348120424973250878461676695066385755465771230983163652542017804547940418059730169904316494930646243148230063322864847978153751711081440166996676126636003395997041791776685047052098957172264748516914718551008074891724706276486799733391249217274245798012653313680227439483900269441618559051149383248953244270368271932679275367585238971902101172558200500856948341055753313629554327354159254131162685837086008011361927214867801939353113924420612439827211106637785932037129344495937212593633985623591985556830698202570859307072722947619752447523416769614124944119817322653404837449213037385294940781801532056322055556626897565085178940088077332922115329700971782937541098392506824149540805384874676302299552839388774678102817201081136085946105909889937398021563765438662894230817336954692405532231851996551133496675178858292486503581767536171676778759591012408239377726847931286264482288355923082015855071450778014958446367578231554844911992463999292219670640970637780681107810701693773031263670332962706471589125102687704311329330178149445667069058371500541948853356000718987910390737434274247141239404852269770295738818304070052714838308584214627339712434702708212945048302723705957287604623940683063344315615434160376314571620322647721051022556137203687205502916607350639153815197854678171876598850524206956675115956984913469339390087990056302484842143821903098430938803569843631693142823792037793538181250025761037567510936783010657778651390478002634999759902399678254952894900244738230031321781417967769467967829754043573064583001948693713820196418652486011788495597197916925308658139836376799738505778942826096811668709915214827785101043158981718477299941129716675550482481848990940954990272773161411642787361250339850763470492177410477576735229271873758412305717113358876524030533483449691216495420157878536277505648326468686910768885845491152630955252895973148244110562017402349632247857759893067709491871988006142359040069338252977717207448588559546570580912699145674633185951005019529944101838671600953256973074818410287600528508022986853610326932273397843990075085158945002327761199253208290737782277391642284793271478682447736676984780466671855392716585915345431722828268763784782485048539924937156191161653108322245440199704806133069517678986709586786971226372219253054959057918527971798395888794496351890097212107222670477792904323881129330299244517057025449047777011385122757689231940123887918962674119552715160723257116551234901864583694451889474172617346496038155806436209438827166789585096760577865545035918266448655575088417078833784870468268276941606427996748500740410908173295541495125049247358545475542413645786097577606797640581851871662505655529300465837503952651505992387017639175348865078817911948097843986484358691523968680520541898298849476953938095149519040147144593381483663410821363306118416216160449937703799080718185623434275102583512037336384403615062540956204134149652955502531992948519512881916495192590030774447396041665028834709129089537012568703106667126175751393058106864888760308568824439504205825469375382434382327734252330203201294491547842687421949115016046142625491921559872653495913446645006554157481681951086801183071147869726862599106460551821191414771060806286940298594115937962934555629615141030767606775981555137274815542738790516498617732925860589653062243777141103533105534863008077136486082852970695649758415306896867244003642044073518769323095228042989816265543048897818770805048510200392622533616722069552183500049135058076944578141635439183840049294134260881959515937096938295112258537755673789476057248285125913024602040852967836631593620780290080384275045741608705181423216337265914237531058421772369492602593623001869299864262584536003809612054353480603356486454256532686904389333600793461765523716220396482611742074550066996678426436388669223416429292737999101478995324129880969174781158352628692088957632073718331347559242486216861064568694462716720576196402065798468644164407807720288154759415104228297942414854569026877620730653920673445484256197087004648019292031618357278639331858481299494301979971275612200889305227186353902100910054483310840474586027550925783661965722923302192591564849362349148109771621663733085574685339628879011868528918964889779044498682568652083509314429686708239680347732966906129535427211573081674089592418093238423166754579679850693503106636977273914601361596923758432210468282912569320358857507350643224336691537863884483782359625025717044454788064421530736570957893200232455510149329287631701047815646448557978945192074789428844862175922600857728119425950367899248133615377500259361603455994561263285166709452102917248561425776171812642596477118107028030211226708081384649683245613271551285947040414042864792830269027995816049956155247731086086582734616110847540584924620718097242085853761594046973764868240939596312578713867584646358541770835262426592509281708400421656248088571926511578138644941034983414965568106195581432701780763406014285040631235606060110134200840902457373629704763881014776624839528417003208855277271882809114738241240754161758963396493431107956251315417610653513660618074692311702922134709918416197409906252194063178897377015169102537834515073139172017905067797693794445931198712870376106372329875614715839287935513562707253619557826619633835425827791596993391091480340811146563972729516253897619272677597205627145154192664648389039620227600359013950094374955712325905990487687872683922543689254420474150249567732158849709807140665382618470039692538394544442304198528637039952048335766538106429405737736372071565245585439054294780605221951810971973767650783627369054281788589225975548839540382288400360734858846084854294348823769877034470036014016892470677191446242763241837086773623045594666482267689761415777694205624326966205569227439800671730937226133466562322309060505260831676774963264530061838203766119167007364230629709308322337709026947223801556399310971893555113585472822988077787745697167080226653828679983423370100639807528893600887773344661592883899639106899790891121641133261674424864191780505837824044808512470498649203227543252523609476664026247086453837290636527503559852242497685095582935698389609727556177861470596282776707669560577214649548377189012063448434795806260259808131036723795483263540651385285506205906054539632378043432441947226492773189672950656451785932480847622113425499880001055232533323672760857676153435389398337644337958936821953939988392661649421408392068489062012164996889376841893324172380043492399519872254534087107908801376542254075241588839869231058183740669706261715439000354524170862940971578310878891026765540099049104599050227658463158444096594877282415773000776419747341105360768615190281270927823975360854405538233674535872158943985736161265976594734950124509163741850084598370436074202589141068808162290073970010498747258455966112756164440102802230077683755447913802468378664024831665361851744295281996062945068823992247991258216413909775752761808643170839794161517292585441310499633512322652719589618684920549595347060269153131514488304625057390089195996905189843360734746545085389949363561567154157932174564443609331576460127664159596472038343800595244419576129678036985579666282830945100383770731619289970359012955739244313835462226011170083225637517549006727839663568443081839543345636734898824826650901136854903334970487467772956923113714461225770456931514226467306518234733115181945370002739374230873241960861439022959202020239411418693350571058598550220696329793933180359524374333542795086650386141609591276978852413127669086661298555093438690011092075975875539207400628006507472025293233499491611737940211963075789142500413043573677249912749023916761570954012318494823702102080181840467381949234202624641530600272603072870823367837168225042230971679061145327576124495807907855158069657805748768363372225568403255705537437350499862776706780809242508326350386279608298528238110987732941798062129327640787186163462987606832099675795491218379768359321747127206892958746211093315049983421787311367913458720464007843757595644819539513149626347228641523374185816713440241313918231138726929605560786319526431906686297497361510664191867219131549309300895649214555408354205508818531620153759697036560000421884185291317242455027598369438284472015230654841843386502426210654858397759872741592621396676852215317636552078357539034900730836338974652547245737851075349890063113773011210617114604910692337314372479006286300081832410375945893501340658168696700436223704953750856729063145988744454790484906599940607197570779708569184508204933787793833441042193956630596372450632193808975771885440182565251723417373720831729001493015718076167994583447759291304611785034256858182364649316605461703892539967848780480027322649986300525035399612772953259417660491286172390620884476656529396006625266389588789658940368434480637882622779194356093487247839069939651705302281154793235464737440183443195042740164409011306911505643010489099579134124922509482058949197835069515024533579935372771566680515297108256696716133264170785518909194355586007753711668005231073717141084950776583036946627935082107141947982148408543535076174687225152329928170012955479023498449123781798236995436149198750852324010865566185628592087109692427743682122415787186404519319322275328577437388212060524950486228969691934344578486142677997816594765587477346670150168435583162924769618909706406514563312241154997516628793309454215583915335297750943734195266661484472341612183731958353082859199456842969505287117297717439740237264846653073574957010589815737019373702005333469737964938715077179204976108845507724873293187872304256970703926551084592536623156150995650122961358322118649093231038755888520627675283113034863343084310773758125769586743217765384186184318299484639489023431254313930930548157131351330126678338564901762580738412359035113642251812183572946570049981763340618730946496818443782514959022682472385671676603538794099685492550942020979783338245428366821710693426442140375423323614648200502689983499069534811615474394591124996927203967223840596955482880317956754671602409553603177523386815029789455995659941579344404107739229547016678871287309499527175513589100141506151742172262718344117678103433580863231201846733372248649883121420275053660494377818482828378294018567351796828712497624043741093687420100991868278342038639236371103459622672947524696777704996996585554680736951354874262231391111663508611332004871366607554580585806935743862545066578155602377432814171808894035081964766575891007820533123946972744634087777430362401837998024910698082629247160199836240264279748856537284317787944761609336633631776143504871616527391877839613113661881369727143290735561660203700100013089008959476683885896114446446644468454036252693243476813312059468526259879941426237976488518959501025683658928838150472319255384080352739836942090902793793359028927541254153780684529555204191503909866291772425185652073771735429522480638335039015546527392351895390908342479327273093584840806664277765986123434018146452678215315059339118863817077563764099439113172295048156596984284417243295589104119745854345852626825386281046761837400062664216327827109015611185006730725197213349729178516450948977756676345875413882165218015296910932169232173540873686929639165428093603139537466385752682294943417033239115840987273764544267554517755863505012766803719696486950012471292185584767944202442964646849968396854537691859398573204414024840405831565170886106460770660701094976581581420944783344997719375428675692629080064973075106060050341499105539172705850672852880173537970339005861211896770926499193247802296467970281921191998753006011535229070929532041185307860078175373828755830415714955803253454188024045502578788363545128085143749024666894698811355005696724702896810128923153731154231913416154894776758796665825987169927230394483988747417521649177020899548964175950789285041760965289302296863129728613237333915136144183238671967651988696508920143615512182118309445070301637860804741879101289109889903700608145820810588573325228451887229802073731017826977397041167665056028391759402466512195058056872562323977311739183133820834467580004528019494514527707153077974923188741628420078381902461590580152685767862186188394755022275922712382960174799264743277818529877370915476626250432881119036224317830731613498638876458339008845846425513953319483589735225605318674588842002022792171110665715803100326767181234241075742019188564880431816530117442543405780407808858115986610959372997796390012022926063247904353415639708307416860434285530559603953152724580208161461431553970961365356376554999232679342886749136611687274113689421079658640432423791476336057217413564632065542335044898568526139956790892933411665416253232538707909909454966811117254248519396220230573495107607621174624569562727134584717148656283570841440939846422324518601786504341598392352603436997144720201496509711719041976586305805948965821588548693411680836477098610708502456216935932547643518664118274724211550195161560591279147496480214882311409126067359388731836041343056410832462306528030168376883316439655926769387423163862691690134691753011443238109997809976830250204055813770651505210919794362001819366871711240806576771084736601330224549931467670743267396897395835997520705942883880875884472480674162560763144178161317078240906128349934281698145742834656525239688770040384238909834716144722888064766885028898227546127257742228268888796515272123224187193133713411037721838993119705136799663247582642936971478449921934564155189063880663260943186626228798971244964290917753214705181710158078881330586666003545465272016052050273121775380308410218821264607968672887932774818258395280470095863847414450489725021468406539007761654316242010861793598592768468111841520012602672014033962120736553365634316493404102751389533238528681070042373428122678360083995953959783614895926674085316383473451418281593386611052801501683919559838936818220456873641381054207419504538524449571530002642923312311954440795065276038771093582004643804081125569006094958658439309140103996547354399724619158983241877200433173166243311828598447199021065675701879641376294620530009760750205618980315957439073172407688790851082113931373740028995558586314758861043385484490362392629087008059545826577992290266858358979598627035118386539823758772206968371926233804926069263099192266409815625468434660465494663224023428119806549530366928410129358846161119765007870885984604782211438408236374784238054260515573475933016365299269635309083001309468224799107846706392229864292578111663814328442859613715881880867666134794116018112245227224601375831185247868053660513939832304801253262643923681082346302917186945467704086503258402219366157946708123921877408223505949830541648645300382060264313104824252891848447532266384926911279378034928756050693691977228684115871614535151644345343361677974701026210652061086087822125707380307848601420262618134376357540091220770750547433612046918985571729498685392236885341375767932273755890834859865539300541580954165999205566120277905993678428897564803913358028400660124530851922880734897285842953955435926316296477576630795514652302975195006235751228303581322864710116695023317301408353245757539152280621722619752407562505631580438374647912247754275928466454850381857385914746864649989148664904819993769997183703569745234437830911644735866723615219578081338604160076492637318146127962413691211103378681512277841926275162064437974444152799636590648799881302273462616649151432550590099417896977684793242840063819892551558864556834159851051585563862475301219998397829450759588936380081451184602315038998449272610180719606128681956711537370981635616219518471087502574624385364165855163585325601437996137108544886348447985745716385748650851368794245232659326864084407052053343238149665956045659679698448378126521746429330019446154795557455962167546418650957237328826041571164656486684313092624802782199740012885353457097019940624578887573229548008135525315248001426276988434612092670094650996729344163724185782437331822275211672362835691501308425353854670766740699870559471666578255835796174499851292470078926378695850360392143754138021952875145297718932973465869709521648162615656547937075703051380140358812511157058532887903350207572883163431580255983821819962872384830558740038033556168982380588364705596781437582357018715147661806016489471481484665828092617750474085526685673170499362526562117578661994773112778383869866049535062543929796917526956149231090551916787934192562215094613393673907080585749617018715927726491693158979282930627164926755200871216392289819871305465939601831437020261285585644648491360376866748267973311257714231456115775777342960942651556691350487022403233815396727585322354844714794965191542486453485340091566589824683291073199685739905611445279048660950142005283738314266721110493001011310575002042540122137499663381315697360067094220423828920634381549286817520292381770523815656588682560839063881102937353372692778125510800803431341209160785891707935644794023513125532170821676492900938999914246357805297468226008188557185363192928607864693587663937012937324370013289212494921621025077095534727907333949207354639873818458713748144900533215586436418780529833018282422671084425697848636712966731898093019775349813319369439628952501296092328435930880893670926070442720728513926346731808941925734765904967487658151946332326377298390557454163322596499495307621127985646364205751770356457829722002180214757205849809963192858512905583883769195105828080452574951798857577818429367848030203244989023155263891232672957388734873649282290132839125350635166254502385716720046170538484864748740091197093556049088083794349882310750145426528062981177449115863088086427091724113531867755558995426902431870694591483462868777916506446243562051227274521449697335130911290672583486881557181704343228430011785781892937119533691073720433412587208955899698655156939523717533670218761158893897027941074272736707686108681395501046744338294999791795033095141386844814878613898088578944625429461881504263892080311885435476831682992108058939039506049975393618695906807290485760530164684955866049002235391939190489358586542883205458210224373067216718579041121114558520610409786027182408953203146948230003703058146497844459307204649549691636618290079993228071526779620134624658510673482103917141492660499180704656524616386149073274808662261246893187871776516023697341056350617263030894393232723363543593171550227224581319508046564458604819705977694951902783449246507592394192303003091254071177850379738988186260109592130600684877244168670119710029389298221770743090641910133575194136779920067019356347791182454857843149001643743082794532360745403251755616063758613947988392027258876008130480324230683995695023668945909688938923929345168811049337625403501949478606168794160667613749793737032185828661292854526478854515805952802243533457442540042455007818634214503356754885440650501976854240561315746829076254186423294413264098570695319761574745090288709535774903684949213526093526420954181332603422285288433704896924373252303864330681559796795293585708859194984491650683984579460766899158337890653504711014010014749200395461925393129841786048593228862255114989224535723177705899817639601319597738395085819789709063726661559077068133701971318100771146537052623467383293686612095786435582350458533679021847578862526301136042034530238048822976694710721213511416707980950957510129974759735532085185300637586989922773448794051936858641243361422691359736530213766895171712299144148660137160257262241686610142264460435392991179321993513033167767205426773300329332995062615020023150571919295547742998098373660925698671866919943834860960593190752771938860267659328755119185123444807202719130179161619779538040083247395612944207461937270446833404813978794241990208523737667720783646584908581546779901803141726706188300851362308946535996047178034055194366070925743676024709121285974731929683735009650754782725767078460658479203780624955686921345343800589791154292376486697033285731525398325105682144663616992384089091502355923654686920065356522725102227398296469521259226452124483177225001687319237932107626951152144990009516491788601460086251714135567059091939455175283155276827988279616601518166631798282120446546240220669219184012993395525725273010244568354693446148171650482690229111627812101749774760326603760160591676564868541485394789440365677135937793920561370967792708536136692436822095206875807121022366793226469589517805584915889161934586058551415193184628786543951122432246164044478108551505304573186349201341572468320275794717033640333049305946754276619729030663786380267624731152571943292571918734272659638294247807723264877184597838938358261269218294854720841034426350999281028105070459632531609259324969999072531279413412615654829297146635692399608896442724471274494618412206323793144765633368791636604434398479384747559678755973350432660041199551411688059385964023100086388171471325915722915995498001090612398130134192808792425061483309720308237495433751761827414713334423216304831482441235808398995696639550392509460830947941634522278575573332473152948930647575663632596853130991175420922040773616888866536767671713711620397540682441368839530629145048424440306993069486800567148973465851552579553364046369287389456330458139335719089776455113681039095498392191585317419434645529806606969333485477380690854239688672041094361031815412441261809656671802875856524239521534024423123773457727979872484207068722881459959236430690283657840472234956661166131361147528651056798027886732535033639431723015859509189841832182247752014433609857247435367535893344518971281090681887804451693266066424552228896029319353400164005747745956073402001497860238156765155382933173505477830163558912787755129231318718616086310279799764762607806681682825436018267871234254024007942437638539774125522293588704925135205475420511253379569148312914667372743994965685293956040566469337296324212585728830801040823394417663937175943737048847352660295536935622066332570674519383607872324430038446611307203136799600368055881171830037564748060959257964751321442706614121491449344218519809688571367194906919648089842857410143800727193255191503863589870374124888274450011459346166569506962875336456656694132481479315425216424690726334357921452371232739507197135091986902880463994806559222131626796888303096741996380130327089163306905127321879448443200376974311268404606693090532345110173357571834160694529582906199706608357789194123698553413338630989483790811062367787966039056385533913279646577337503197866554148748361476849813621304210633557594957039332555632434388129201676022135662715252761119566468822024198218260460749192279459748193171045208087813166966418418608722194281649237653423964809237232404050274447056176804435647054177806570847505781516141271429817278023540449670232098070574238919401787972301224420506568253661723970918890380135639739182254428341716469554713400310620045243181172914685392018696727752923806137194614858272080968664146353797296863216968638601708320204541107760001711925464599937851369601155156838481316392429727731691767681252327472097219755769488132291906025240659213989905928558485727572305157835243940287200240628924783148631052400402845339715820672038837699036446272636123397285426476960062422153846217884586429950351354312649427717574298613913798720713614390992917369134915731885148334712889882927393840097590845657826807032394187761981794580267091531418277610563391600937997747319495010189138895009069166404773534803792064369586543463778564007371731722968630994790574662691350982249720017475766735671074414780502878423075379478214741984869767106735461538463268077982431404082834276794383305500033226096560313563098911834554541791401805061805440380603791090496238484710026471490162213490312798977365900111103266837233364771439279439117027618300693149281714759689214757783277905171308486985126333664601047701980838118386149162088680743558060598555607289958484646367072835080398245134482621495584132369550877782293026605946581883441680782726886109460521898398118634286831030298347162295878354769682561860386356079959884613278865994484849687436365568745255807824267315347948670843045222061541619720485261398807950475054256939594552434693597354906241434551692601788638470265428316606910720856438351020801274476464251932199010923723908930475164110549015265336176010837407831330299208319773017220129126150399402442416272085829155567468507048707485167367407550506794088292981962519255188222334602129511175016080627197449529952008987424406992143679909220188828585611633138410492120320515957016930645218323012090293194137173793591571700305492437159201177193339343026428836549487481853220971209027597756066810333370344450807644768620216738592037343656209674625578641999520501630992900326697166555717554326806566725944993891006925229149346419426815171063323426647638128390519901006790721849356189022892784053681471444916623007691704646170704441468535804561860602563257620060404668301819895781698219409741581533027319600304884952176597064731883487204901397453851212243994250010032140893071264024822494413517930166092990151691556132095208633288123968764028221182264543373555325300434582456857457804037910193517930370730622899038824188228458090071699552257491213245158473700399602924589558253042842437265767294529941462487439409235327514399948115515146382335096773478825255141640945952742165605904102174001982262113652038562760480942388998661233297538913622309672457985484898253951481780882636687530348706904575355205079110371222504785080871072241794522205535384651646641465677945409154615539414456869255706384696001679036728255212456934358810665029767191782024304899332285637227545885985297572794400432998507884413339623487575740102741708567058039111129540993896575808554519439658184516753625561155182338474095045835785977686129550628551349876181933531234874741739656263967877308867543925030708814348108901176971559572182276235822032226806338257740829798856105910515606156645473053316425271306357157029330567535438124783249474166446769879991568990662718619330112706158823446214685109635412576086128263842498044460236633511759719963334201641004855983862715569082934315422263111216291528748619720219371045983831925589180534963740449902828060514577936063976093880259533585976294339134677255347569960378255624489221364815989664356690276238755630120860808928471862967583876035415198412085788924846162354254890031909532609543447583219862029526503060249204162710560752789268929746276535594992463465751278158373560452752169364453514777106959712315349636734188147062681599699797021912425883781986650347657652875727438902747925565059012455163630066013750651128230796462344368280203974303446288510960932098352158010519351473431350981544695151573212952714243289349840394172948431358461789333810278521715575932469397097750017856907819994510502686602792498846008723407542994493993804019845535956757695550424187607120511824576086533707203269157368252359861876915913803463540492949500281908593656847285678996027578210589798226716483621828759338142613323234607274602950676734530592802160674572094810496795245746735811418148176460225359727680976282282265556019588108589298984306106630201899410555827539119341371798104371371089592538246440086906205886207979312182656887242120398429209137132030434755364703896930481284941578438565831524533807931401881939603507583800546115251061806209677899040457854231472674652947517897448052233663037160293783034726107252958314645480476191094783433832247868956239750209299709211817432335486497342519612815054632827440151250560701648487190115716249527337534461133209634020273927117977171168388129637937705165955541509571243736421889735025256722278922424382453122402222427246827750374156238043566993490139111845527204106777156906979972406100424917283579485999249076163044909513058630748652622621222489022347772165007654503618291907971013152113088408996731900031536494131269663101227725770118977182021032679090074857086941097833749818235602992585268082195293364446868543411963142840161246727412665744551313472392324110670452365758710922649049937878509817517001074364991675742032500302222369275550602950590515903276803048159045258576207737428012185622499958952080697549571532225144767106013463006004179810838826255796739143236581020030588575622597993525766803975277904474118850069638738825493342244260899819821195751946789021373731848678920101071671831708287035390755974008254397355549496747593331580307751167735190941287792041478412823525424589658236900601829976552819751731251371918200979732283604783491249420468319455215026933462788168219653073646282011873419173896165886458339780166406360093607485668137173822344644673047206544939872536606503005214069288158205880601090242835821406437826979453724582458549727900984136388735230773604630573845618177885574020190163956249843894399267109076750237481856854299936581628631491231992298796610069002035899149981776137973671389678559128364484017417388978943319735715879763782440679082767780078641616094258311348483419000623676835042846511972730345179143714801112704665875277780775406198583957962784616500162374694316519574283087496286772256791900180964051139435771198938819303931620951703000603859739455848384108864064008903034611559084822876224231698424749481329322699916970271775749125250393819438787142464069970917787252311525635580671578020108750841539794735165756230327408629771398947283916725849949769963361893484602115438999595077428534272883481353716779274167029072850868214456259371640324313719640940282477365360025994474714512958281870546362371783443275585767130675839656769179843598588188231127402768340191520954855913036134320194848119256947322159147210491297880140348646945433048334027767377407046959113112777143510956749537400907379777915739276004028702827944015274068285859706294656757318286695117535260929781661103246173727512569300855600389347537876754860467142070158400918499357171478923050175098347359329545602427286445571889262859634276691699850943958970632719916639842359425253349969959787359743115680797784468402554388973634735845955237223632971585259464254867923991235644132059858585925117549260944959233715058708236574848257529979390339390850394448623843466573779571378434340400833008126170687409848022862207121358376277533213662783218158160547175928450806793659867209781474489375378767736128209830184574019233453966835140672843573227738505191813471155452347817337363434212217881347290267602449254282220675031834146204918496828892809580317263636965260727339487669711722050427558043660897905296242276485044997455665654842588143342218736214451308410128898890857103951398450609756261675297368952906433869156050294280145923901426553731658067274384045729627963340575920503892346636217299131092011522859730796531031419386218484600055730732378015722136526314617242774541769150195045717262177791795766361076077895709281701018516358766753387644540397527903004707881392062077908047737407393513888014891257802348533244305682129800332531932506547280824008698882790868646552727223060091371034162458099653527760782190622337276890423936319018409660770623695549074928196069386460282647791936656169506464410471416248825318449246634026334324989312314525613241680423742388059802569708101774671589048370630458297386443993932121293738555214274780632856670828164940779442990342472197642678963502934547762624601304117918207032936364154211739835829246870622008314293494172043423290583266418566122029720391878149847959951352909985479318842106948264211015313085280102766077059259199614421865552146887228456811310663645842269866215524609771797813327137973751715607941430806710480279269398272998329719728235292544602222811698708168569408221187819238286327474074254279259207941046571273793695971051036362227621419097613441385512722913315479617063344957859389912290041816567896326235047650170529914030074157162695770224400927469440365336636721532019976019346697234011872883562971458749870196587608789839540426448414069260248664274857257658447757868797297421899344257977754574514755708566830375292647984006557978908444683598698065720430783581949055195514024776414978740248766390836158137976690219409604672787954783589920421292891843533884525241042395235183335692318897068739907033066643365434814873676283930625119401723545158536102562910247349245766759225397507688316525939082428392340639433781514309601525253687869859689825612327327329912160790394762550584541655330681868855293869662668380743923050371411658096082982535738197475649378417216821151229405963440945752923227297119130249319649439161958642023636094522347414087584255151395402941291335544578765653124775264807918112231936769729630443714015530203777783952840904486556407316885508560554827792747329153762121418092046343816250501286041035505255444373656029670566024472825487443609605964658723106245775820081539399755944598279899600418549643925363521430374206110615816828844090522889494788200047271607453660813311985896772338855332358218377896113732574708646090965831318965539662373673956075948760152982942206620429153371704229638154388411119262006199826019171495111031889237533990430658382216922149775488865915808480747793060722846198204998677549742520804413358671591144974259032871541377454410603746744442120517190382222546416372799098198979593207794684459699640959640808814391596718850200273714032554089323697198320292444448151383556958787304748481344259749964130870048154387299362724168158713020603988311222797571565968184331669344768068160093323412041131834018058540605726199321073109316190855842438980047981331493814525070807672483705738480556189520100265148733939428855679848589658258054592692139683567062432755711788082478369924601616492631454520106699210811289295759911560434779009307698086034014116588995605103146453111351901896816797343650616425028467339263495314057505507810004941109632136876666462050864897105441508852761016466030782763404213517467829337950598397219711933217445156667674714799838504299154801357726570424678662698970061202180252280990938205416766814241703992723306568758286433543125606449853282420062348604217009720402411768171287556657900519338174736725081984986753589335338561350900425730237919094427927539705658690067003980742822281978046956012497555568445136206918188771444745076094261292213666952223968550737131195240716291845259588360473341809971270444886041315547568504107725870717030886170850605279691532798515008568472065213202199869603359983055552983482829238963298340972461260673153951821181375487966788723482964491668694045099952656411362445014075135097987342394309770923740991935560364025867794779466094554480857056729280637228278173823850215451185714081360982838959459851978411560553279000828854233908346533943723679144086931679835996157579335579658111340663198316244734865318463576164547273712487082726116188135596097566138075715276382247193619124847108107848358990864958275439884589834754189665950680026521746170195684921496488585965393779798854827779854819518413328563236689433930850356428668337487849589839152544913728632916215271313946912231992184179623603176625083233205920222840312286671576638451167148942858111959398940157010065264615066237612299706800043743084790725746474635029990210135443520120954204468207581384471444259297071004750701565011230003019976605556239360805043359390230885770145353803004645649645332193938395982361446826162668929666652824908635060079028952472631459076433036271904275837259664283233700719513262558846958159389052698417508545658112441096202296125425213318281763587970080835133538181327218675555851466943684134571542592617420276961146109483460227515673302809832085937356735361020816421508822380043626937728012064946200129284654340604371238497354430662929509735384740686414577654738354034181805933932367439810605874171370725030548089051326668985795339741583543993252413749671239343384719916843851590806812639030203374467778719887201191856323615683561203989600062820216075739338302320917758888609422168221790047496305071232193903749155103986753148012609819468790339404228851577174445364122344212014883672574410739612956121729971156768280050085386223434163479404290993667689743568375824049118829544535321166829512152912951795761538454010247000450156872827219319164482952491432461116182178391206779241528763364761961731980820546467639133000301553629456737195344135180519287913805722787731371796454897120166225027063244958943648582139649428364355884438828183219806048814870538826134141111697782906781855806910154295359622445565771282770920355632070946559003212233484415176956490966977509923242920595626405272066592394525809413194220957421078970602105142759148824214689709662778021798627172399243452569122036253637138475340129388615106056330724612475188995764150473944568287351803336688875451141882539317452116635512016731825225672622377903102590448319111502612786369718902889337580414779575069391829717706461926300524836267761582749118655896417030285000815091568416730571041798120451817166497403553849140214299005050252259370270212711492793570683241062403066814247380290129933558577412697030714278067481404434978754973533329662843751189973145977568734304844719811265399644964744173362231122303066710677231700617777787935837746365687417854569868255757651383156595051937767561359809502381542218915740492483250554997454338568255617084485603778810601609196223474914361379473496160970549474289172965563450274354183257152591999273179085372807590249244049941378670624557966979993300041251224892732307724780523956148086618359145009567646903702824434674296303648806000939494024681774474756609992559849902142851775775104502446622086566769793907785570539842875692453519354869356471612351125341154806546287857340177333404400046351943750933271972502820821955983684320532077653225455137494389795849697805059785006285678318908377687506106347451251145395024687819017325794383317908024803630376260290971123491067098768172580412662774660802120772684774925971238070900028799720163110430915981065475580739109067420654167260735495144134946521808696181519089474287860585067976112922082579550453623663273837288491098011331307538598386373994126137545614365991895342926380129205234662988606989010237305265348607542454825817127756730167019451774178807731074452591911559820180807706445967999529470414200315873475688834621979413774273736798898981910451523977332575575665445427757447049139276281243855307900175803182639586220863693324867517972207156464779685197628626617957738999037394779188847129929852979694200430418231011115616404399505111240364637958013506830830872451698900867675741844122311352782848542275359313224880201825197229957109286653936397417426406174928009635327315115060325806890869542415117969935006264650474759415586698444547113143112688430254850336599416864728817292907763759332012529986456957120767375344670291831800399037716770826639665435940526782966186621541046794303318436853565754574745777489747031206189119404285782207602114987932785136630144087183960968592352262833761847807466430823180809518851051868449664754311507238352056223276060552647797429670449159787373454762711855987967211574618928045148988843343919090895583570767215410766764876892973248113214743418471711257678020856149409769975959115069370366389489107856412711801846428054242974642009374635506535599113622269193723255948725061392225382733617522793489361145809731243233740240007118385063040528812584027826991799833730490566015470617951397015931146881709657178028322173281966988395562654969198205766859229993911804362040204690297993917918500714319747289630375212356532549163022343412866142530389569708778753718545121181179846705288741159073140061064784122820003721736505693354573237426257184207044515260010194070860778952259562681652627173601553752353206888004365438749189106154069663140766537005394876841308540403325076232624800370555177634739465967879767133865596916090615143158547653955975994167938928053136535463897293015959904820251963101012686691786332117534929056903096865912616583145794694038774925006658019851898278437968395819697576121894710271048083807717744972885519741883998830737198514918647081348832362203715218328139250277543226422611541348117342943900505775541433674216381822005192171326824006491576355534310921661260900042304395117289520398297215696000236075460148247421008544423440207903954193706241990815980688359693264635695517769384220449075051044367179228458342704738531377272901001887426579574309301442959041690029873070713317994623545441692401546838073042066211812132667860058930563780579174965642571718960549794040486923878982174476254851564989020079083587890668826843389213731750927466863233803111244254474138715294151484746236270515700262539796216822411551358877786801355633318875224093631011319093073020413091590181830393479246031884450137869902812959035103790225302265012554209442787342237176747886164158023608640962499906869493502127888995203506021361731698390463278344014774443717440494694474098077675608896546690748707980287482202287992890065548151431066791015943248844258039600341360303454955148062426394605041103987968347873566394665214252307437177200537748629958342685003939754190745227619197568571229833454388600855442680767504183529703877751141267807784087917070231164002626527902162872363471167273866873971438097248146194647808215756281501936716097793085460211795363090578253557857032807131468800568132537657261847483685714376883280402555772834231489247533461738683471392458112653835146485806517095744830905365918327259887895050279841302402077702552700479283839792879564967704585744879928607347397411523699008548468984834077839737204442510349413381294001647682473045742816969040128912868139862592666095625447450328339329997908171188338228070250819400837015492487704113795043406715326184191993148536132992956007363767972165645653183429305111102055560244430490723902495435079546835865487910978700564253546736764884730591972768901436047872450274814218844125750888766642019456262980646753952564524910398123464047582303367190951679338432183778790811925659089229019840381930268985523397151285335598361405214265706388700838882099275212413155096781647567282888952514915378643594741270470230678202573833057985639644483093189727844960125958725863151032011697473982105443379879997868971805491011553339770889956072557226883205220286877054875844103389760785817632451858792128781562099143255312568212737431304762380723209673676875226961027413637120187711241247588085911106249801580525548813320176475655249577993101314925004725809949910025434962614603087623938891248218361115913854758609442177904212818438747719092807061098078253467924702849316082240580701391574451588139688390716510564909038554481920156254764079477574012378307917730646094588020823079402976714847884432734567995750342718173117864039006106042042513153928950979044070409746185834342348480227823308873238548396735622178760915985993777752746649217524680672207317780409253348241868328638282039760715473450656802594081046162605226227563287042195024842204924069680152315342185112373539521530420112707989956352347923043522650791401456343008309499900743176112318006179683806470667915697142652693806705622862693986596595696849780432610194294279675695301194650316190353867992534811556873134521646438768195733624791858580268072159723083194060808142429416173707649020278379072641249665411783264217312477389353840610649255118890630378134605965097642534219019210370554940668292257994930788129654540569113442944494592696961394883377939169163016890836490946720375065530620793831473236494475528409835920969473045525835524070901439857374117960346966315765715318111578806691982654273508763481158043102551629098177154631665690831094426906480020357774473450206066327143812782905998439100693489657275967228051500373629874206296398322338852110677225268891120487127374797018101390973260997851848219262519472012090765294138461649028180985204887446915516057760156267419484948195972641728265779433930378965547623860307413759937004475593422082324269595483186117978743918702557428841119762075611092429550844679584724306128768360921019526977325872755562208800907733401724393737712289430376512208982856338246028121136685512274185089321510862914207533486832223956196304577083840625080591068863215820116472294989852304158681505543252279463931098612933483179773943474699460396682675565373347446790602488528146056177446195249829262312734068275131015557427665468143266113819523167827705390400015685845490985859450031869855629225735326121252576780351362318236853215454822985427829901647396169882603059712761235690797000277907766863951077968027141247703363122610033878808571805539668814861790204143079739317221065077879047833448352705065705742351829747207208522640536692754537379209592621100159627647811533972634302395368769263801134209314854709020714633488002832934266191003466488752896326739671878643700492104118214823208816631082121307720026236878864762870059835900733657126334303006889512351461064765448411712230532908641081432401379475927601267101067335481215963031926735373810969914070650941594653242328094736525916444216603179320600327463203920291261270976688421372159151777317550053945122185256901973243949649894984420798000082788025376321847958073146298545273243040106592109913385194268817068348146179824542916711434649082092654912029503453456187780900439793870778787592798741663492540293750927036884508111306269849049853191992365689033611102530761137560748761688356173939826964063415923598637737793391929054256408952423694780312447147008834627692959738888693118883567342018778134226737614946479258944494829534772530258256364219341085575572854143281876673585044029465130155641689804946005141648400858395066731137198894025680274421479505211051417363975378373112354404638154950018704032773380748278042222240898836919604946366937176079566156068706956222837081794679391161468776590453349279142610697177232115472340170819883021116965739068011709246300624617551520519269915892548331641058715676049293198995205936716270818826637538388076186657070796302613690385657982789776984696725726311461459640805227070502360738067004659601294186397595245946616703155327480596417019094325091445361952874675696058033922024595370897529257377309663384943175582735417175263657050352888156328918675758237806952425210332073708338815714183281428853986395770847261976216966843645836998388599750811771513095038311084026523500347612432356193143271519339466396237054113569695898519555296908974014838732738187924813514775740742118534860645287782578694011451790721782712837809590391910616018718498907393941038450571365321878774837728668527216646500234203564786067796225642324046630745796510038448999478602928745971947018578841120216936597502812922557452223577412065244071637341593056628972119852529357335595601386210888091197456657042650173005041965255176557943426260480358621587054312753766375888845529873831857726950826954989894064916739958431090414933070995749178296747455287601299080291802815207440977203382891263233601327575851415364611654375516291488605520409199998803447859925816877250847953652323981055451078345213725866773077294971211944292362687993910336276270213487057920549835297676727442404184743279335889234912463201412841526733978646957927232368146285981726624894070508959354388722128437968144149542087595785462967122072875246571401921224147321702405602765683595585436756553252199947926519311832636924159433082027616487050719987531567753266616968990668762932641136465741899905610308559188943807938887819092505847853040033313724278128617292798064540000919389616624579522243239608301796090859098516879946672291662979825046356320466561072770939579280912774784304103623605879295122593925288884948028498303593221125943829532100335758159412761562513493926176679375811151602779182972965897784744885806977140013821433002794881195653426656453679726340508337909093013516742857535763690659114268622415677479558292132109214180844936384785588398110741809613764642129058693018941080164847897197148749796230619619207906350158395903520987040926337584779120964017020183065659096577984238454395935064257219391226677812984657332236780445802015715540089085212215145968739180684830725749457954833301003204407482548652720718937691236812672701917862203327640278783851955768360221511743873926131046758865601123487182153017282780645096323156454050566804852808886591801674641482534229730210923828773201101157450636076720026087782109184778418369271788787820220254972106410493931037916053566052758304515951192323899757203207590506610194775213857545556457023747599489717315808831070348735024697990760874926269078796067414388083570400370239311923033459183768254479530185920957884697193541419098311124688363021948011325022255117997800076888344373415681763497454454916731216548522951220756992074433960015558437348500265907627852884991413066599839514792048974580866935177775232199093557426204938881603571295265670088308782096974097405722710809889064778068347280942040784461393680875600789371699624735646040447536348402547293157414869489816517809626288999526372225950011660672144163739834632736225749982339069840053799278507532658149819813711548061526397281912260675067338958591464379663682054649947788454884976102153769465544432873702721542866258694619291517851215440519408256366270714277622209736316724204576884538982584844997613004294326768351047559931889376820951543125183283657601118550552355506897436613861618536653690980381612731130626409878305168715938732785631165898910553001022102173552676527144368960627537522561034509529316048700648186801900616780505905980119246486740887379063335230498790537581801252268546136516847238573350325450917266320986891019986546361967634750024246625800004319180668714467424069040837927942813541708716409657410777564021009077551983930467166554989842588800361948334688699233407330937923294962693144292586853287775463833683070120525934156007670836822998804368406276843090386054859247396389966869492530705679271077404860379686234053152062011898437153774753503740737060880275057320813278655921104471813379925498021098565524118181855841635128282089204686941899240036749250450450742185239579950458813314364174004081360308559653362417406932461337916336208582157876675667604112538034589355755726309791590561221175488551082316868088768090575858076488180249664850713156291320648857910086177626720092182945898188869537033583171715202484559023362439600388325019849596476703152475132963168562746057226615582365096816315000326515539226787148156027881876004438433620761999369695042944889209946545919146695980690902663777758690170260852069365787708662611099261305526533561304842136773577836048750284176365633062002633384682533230882420866926266763614071300310174922178513542123081431556429231207559945041168624521191161914408405671366519074460025491256983243405998581459974414234138313434090312937420354781889043342050202374939454425024238994869058584386412133502891139772214010648198823375101407921830874089893459640606380277336973256136363354789563420516648374517876813046446034083180971061636882541383892645007628118083717178196384605846190650187695964758025535887249117222159950056897852570601906430263484932315304311604231357125311459366539827426748436901962768694625365635289872125111441759750554613001574981436492210044893146926902059751422455217330927007490595657057193261501673857521115150391396552784634641177019565533457507964132881237764832735612050617421865219909271062778218743616606418416483271644201124503647678567262111868905648758189543523953963683753929600801494589075176398144628338459800946782742693639136836150047883448833820679653148746819126287628932951407500048704498658968246340640201539569732694908824021300524425254231435682805182001640538433391680017386346177526534197820414691587659395617629031827128627065540037896409921168367184982214093679020841905595431921790087884572990253343778425402422757850254572966028420018854387045519972223009820988584696072239160426504976704721660491916821919096663941127847164907298861702368240994051236319606122720332576128781558427302358129784606298715808321361075611499170296018120062242153757795174832917104516658327768321987003529610993897054471385198929841969116105172560788905120663811143209116077357965119600849406078976893246123236893847451780195847078772022978271695686118852654748711458068036307926274129740687192777315775597063913833571769233673096545339416044973673839351191916968048770304878742433259313886961376763637054197526592995271699107364450102727814210733397266605843707450870395007977358979667860891043522101488438627010424419264112044823092064630040612860971528754179606557652489642167239856161788359453288583920998364547476787889366284756771370408135796828361365015113013883695174231136819989457162799303136313595579275934388336686053996227373335707281494293574510110103725772372198141506332350416539062481641345514234282925632759065726514514054394146852701792131982615515561395545668962249867062832475146607713766956655139525588132354616999674917537703759911279494772657925629271882163330378080648862766420057185075258533681792868580037928057969428111573212823093124819633165688450879438568398294074865238158220321050033323191132196267260414058873316787681535365200756264290499322066798168807751660031628466197741334615137615586629656554058673131525661553126764352195332732243510396346062052377736257325848231711438937735969737767700719846692388035100696882469690678161260553997947102966847651805166667605666049220433494398722090920081775613289378918633114260121262579248054835327441474240225648957338664577778795674924516019486317185183383350991840164290800650667507931252789425414427050285743058451237276774911091779130482113857110224524897335206966512379128189031995989232307658480982263789382428479135385373564213456794613996596108477558075468983108101290625085807248579234505498139358083799166333698986102351837769849259985674869173582943492869824712400794046431906657811258131836433539886701287952727065468707134575716965697861002042189597212268183482436896273370631456127609146780947670936023077491891553926352206677379934825513176734364436408946246697457530499246808345263974197552593234087445100651059190603962285204072073527710742664718446406373790527960526520809028625617863280404923381099287056633043213756385304366018736683681786542197628037160668092788966101266641316895536184243887933123564947407983844383498256292926090699056351712723216149897888994997221331867278916116215340741959493489542099233770390931243814307173767247054881802453558905996622817012887402326952234543500073473554468950974718252911108341974915558002484041348662527638255639112459757448057350907725505075166044733710017491830672802014750509306559192411493807286504547886370251102603034645759492162607474876658414079915842763323054868573971162502905128384755655229943143525461587088864057231030277526194319780891351351805789681753649698647654202789899128907392161827411074169879343154816292036399188063794342714759700918249821475378306978153403581078412066099426261975605930265483598424775414444507862001955548841627877649409918543078972780529341903334990515309875080001734055711969192635169682831589179274062495231560153621297804697861101776954346736086453753281117745844950560944165599383675130453566664270408629197624122729783672586902053688639167905960729480308382012446313978966559512903077533697396735029027440330382617668500813933432482560580688253548483345658478799395512910336981153857961991396895984904405376159356393474805955257492407923175894274037329047855413965179872764033150504840610550929706889738641021054432130391977862556716470422332868690906520010430945454525600480857361207310038283490817654988298159968418212784847432472071726065179234743146891002707879077998586221885769254391467298762577415952849918594653085211194094672806840755072318867189085494172521425070557094868021048663744750711914469436392889892958401238951582605342530263418003340739092573341527241579245625804252526916999548793958022713956456958239435797144410664059704812137228546380010245290669445427628956986514798246767772696440348641157385763016019343634589635214473994723910424716687523081511689190855828425607031225382660545415974847656609765456960658192631523477594802542716805850638008932070573080410162431484017223691769208489986051569703278325945619964038908948004114787513065242124463115173529615566989154890288786187017347636547336500782770049305540442275997995707955585824739941533195268224742300991337729606267815166231372641046436813510569657939119921105009815171840914243709093132858574166692809299511285895104014422835175529706534595028460526308965206912593206166993487906001403056004652653518593123762162338610315637756182715235696130550624419471493267664373800272515049619238168967709137835985821731630554548084928180310865375423241856636036567095757572494150161712633065388405147334544332901350716491536308085998567530928541606346848200697651006437796127977616771085780243289002885618327364386505253455671326763882980332718243538658703223757467176277052399222739371530285315397502915528370597348847796364292557098125374721097199749483345426650317042027733950931873038725225968783629859434195221659973479181630674734216207614389318407355202408230170990493011351139725716212396462502874650188948837420408879423615590642910104900352187087011996794757262264618415562482187922138065887251115428950755202831907773416063503690670893207400252121908757579658156652990388747430177674270068747725753802817598204524272828936579350488056709002833707964553720319301207868721012135058578925235457608748562477590535390018559284765256537541970844342144507923808598552767440134230628188256242737810057525683553344397348282533717191474093082803717785554105715906975233878423271175501901218473325998554797649109151281145715003595232689195210354866453656175503027767143350755133421176879079673075179720064946978786630738141251368380323966695894586248872586510171108852442088698874294987277751037496955273565316954577654005231226922666960711073936903707519590235444655861637029314048298861628253754639437849108440768416538857655301844775579217149664064708177813427982818273427926996710853516057759575475434678811639675406727726118471349299967870267655450556274952072395988050675096643886214489327512888536929523361370285723567253560314857269468835651966877082431569331526380998273536432187574898487238901413738459114726973810897452697153413795630015401038616108376281222531907175064438384741076841387177199002870437468880269736103925918913959632898085818946904142062531835829023158653126270190062366589136134926504018831808667995521751792683055126385325581093327991364562247591077707515566006676139338990584801315932806494843026220182082839557460923172907128210279585848759726949638058655706039470454628791897487952254280752479723175653477117307387879561410834125309247368156447760499827290671674933880923770385312243735500081875012909904014532357434154485637160071587583381107558389997047141756412151073656412542648365272740708367559615019259567584110514433672688949171910910922694644032131619228882898528472497652433945392506121943130295011026202697044981127948564711969257784752331287524578845630650945960304058910026907733872759300448407283066958111244823556376918534518919245341984611578286587619133993262556213893421330609604964463882410083684179187130437232015168210112514227781321120057336678844196682075216373435361415599931603871507736679733087762603479096225360399128722987154351846898261098662803382002091814350198597186631858594873898444023473389179207988755861707233375121920120706998356714811125016549980977539970131254170945745805056954508753348249848107694884508310171250925445913158799051973173118489469757820194032615986680000611540244881042403053706189019387260436490243170617945064981252474139791231069813192252013056342735982297766914310162051186213194486140958563130465576396204531529280724327423080617842143557457208749269764531739245360849525092609158290093719519708784738759788718939773625371091128211353811852138811742789127498691264984719012969078883832096164849360078316373564401723355728386369375146591540472377235511627642299871789779089603181900785332094424761925250356026709378413006135740330094772090817149338577990778338321966218412445020920468124165996585243539250261259733833593130381054479527308739351092892849126917036532474065665224024325176758907163138650413994717833471073454361802723864027795503248139761962688873153257175923544697101952085980695809975368848615033111236380289445125656016475428929446583727380299720889240824673039252925938411519521063264422905075965695608748090177136646517293119426397854320051301782846221724450943464082450943339002524206567327250213433808717187884986099343046384015774487493514177279747104443045273156778201871916648651416452165468128622682852202391143818479295082996505535499184031612069246183106272616861147694925465523591350523845590623961345219386895772382295678280864182557390310898122883284896666358721745615227617009766469526165528907743600170363426222019047832189563275947732768903797390202716841863783892142953887944009406302275319395966074322738816714195469792303205555101632805878799296707397237166254180011582415801840359652396206336506942879373502057205531864955968130207024099354074159650468142514692584371170910132000977280073163078449814361432703149942818786438954309412422268329831124236058760860500601800142361239026774494718567163030312959204520488483299181262415069900100457980689648152820247678726012365793073219459104272294806325030357265641866257729724291990896723063650791135833384483957460342421387445681730007644173547925303068085385713448428290668415591971494485864916061832874504328186333616844327700030078862598070286203771892725662474566758051328800519485723534339481719474440492591219440900592098816486177168156853310107879637590534237904019133356716679815511684158470055705489609247549774467070324316679068449007254695641722488303197656466110171692600621220219576300045931889031117716657669195998266971844339066598463417451835047118959959031786467311822985624765295644980719571195881045637202600745988321675219864734930810048478147150767265868425246380306678034937192108355045757753173206574796720376596775460107509725633351031197533062144007993135464076372718504608634318075081228780070610205750596505322169780717084686279820129511673293729350874204630757439940003167757078912482835568411718481554011756408969198731550393067676418030576048072389861272170898192995609117102296343499487502782742247808236730951084429407836707891250417265561309397331290194704251593919459920777659432637260541205840901866602164346390597898903763495366345744247744328936116906237444211742058528534856887838873786065038280793348046980161271835065258145612942119138344215245759363824027576353401342293365498722897969657468515106573880757173399070366083444080700711435531440929494188241519461855487947618408985391567821338587512858779310782225342044398352715662662558233746007200733266887225894861322927612776984087992837481365579465839222233257767693884104213982633808835275517614545835935772512493966222452466039802919750486240355106441032853549789197606536333515789102951288484296925557011578831290127592961566158594415261585190751471420228917774712069389271340176769844045110623750997413981510786942791173761639411274439855660317317015655592416387368003708727846420598859620013218873729302991649885029048464679779759299208563518076919655741374034236233553881297262532700690120591717467486559141701473930155463267501966177718515508438106590982379769266818345437216532721184526241848160168071949157195581417780827312147701941500142794710798987862484553225688656428110539707418355444192603214674329675339818148881574403844661950337967820668539621854643609401368232523417294911737050701598499482592843953867609824940891073395567915963266260397095057647335519843338246037733500587786564611155159082371135508628174974528610953455634691510775865931502322160615106839752184615783592444358833531706147914485933345944111214524837852594374171506053158697801768952556904307581861427019217154392096009111692796505768168790782255210456097440366044756749276455305750174764626589152921024960650163719644997356203106603399123825579455301752380570194147915634995672245489022985004630224080999334529196169936525567286326086543095848219358518514297036910672212096772657267724084221535338531666187736923531849143439907528391033482453332817060398687332996788075129277029442163487619834663307998276509974106644492057126891103349304561770715957210135398456652064286092199636967925726027069781683602002236226102627516530230887824413120526101973815241806413311218473284872988878485156989216462720401421149564020854062768930922327288317991905735944643231339247862157024926752999481984543056748920037197791705418501394293576375902112878349915643141843502821148366802431939272214787539293720836313177736377094690256097773767429497025368121273804920686528102861721033266718689477692258215620564833271299627033641025072534212436468461307454969186702528992812570752589441435253729967481361635943619862453073771043692843146305266958317701286725504388166318425009110338862055671567348829106602890004177976738086038200497312080942495006867384416450734940964901764735253932492851211702768070718253864169039330377630225079718839901854831291486434269062411772388526727981764481451525257393878918638935171703233645164796612258867674286391437989529306205135515095520555208685292685779103280314405244217217984189781808423334515747856552942679057449281857886085585430407865826095584341804119046716263974262247862795626840907839139553393232106427458047470450690510486045889771824135057183717152883986121837060670432329511713513835247720307017018180547467232037944440427812013734670885009999581733821897103717248364614835299592990441159445315943157766291188791470116960113200216606647750714523923385695970042516227886476676539720673063828114151290219890258796610417684584382390354154746572260380422489893952921932947461879670666009389338169165013838621953260999568750560862409853759217550794022442162641072661384709617686727893699140018234854253629556469004029514328707884354438519978284792712167904969474446568980257927117627864250890567303568488772766919305176191625924318969616495485349948022138101570743779480700123182954513518203872335857584602847402898201322736477694271035049410109318456399673980474393092563430688988291388192157911410081239829885054167626519676814876475603009892871945605442845734193006484573972371304732969207249065714829753644756367158928624900810908426537608774898077675555922065655159045956977760100391062575626818411086620630259041380811266402262262971952475294119107524351528406595440866018671296051733657043588330614688824917536863207299779841642875476152112402433412773172924577619106054408603953301040671713402112309111137365445228818010912849471744494111748771077678254396360096086203702556747537331982825918530493327980910873722512207391414028295890735464800682477290106646390545679344106686151948412906824884560114049729959669582062481541429492962762009717462510679635219382469489847937707775718256036855906597307703910911735993241284269484873502110833369345970632084190803237524522826845907499499655115506997177136872084541797861377811100553513675247265918642867816826030120843057411113746475676676943106448819643919843255425851777602316635174617325345162372186003246479141373159455547546091322264773431620707590015129298548979791675778967396917556452634899178696342464696153226144045193877967598965518265912345013818386042201736712661561978466919697645279431234283445210715793603371616398179211403150970155454044394847357522996518580513460533968580735845484046533824391364760919675266460580550686012909190186256835614394911982182170908642577266358605399755699677103822829086511109816311492404192570720345897221937299828666327863248059795008693604336987251488596874891128164463181493817828214228589843320448149801550041838179874736030668887697882622949485064049256048577703015732831768974554241205147249654947513981815450886471298266421503451978278063363437148286966378855981206152495319060026174770753759928213408953385182315010949184582018802746339013270744027780480097097726278464896298713370780519902408028860517531622076029117671090336033617050862766675987270386772887718673209032341452999119051660947645362131513985424925575417653542919979686405161309825291452815717594263155788366942399608833579142376236810634001292683646240176290781199422270327890146219787156203653168105649088036337810783301245270547721969235758339983279460227301301786559238083388955632740418675483558139555981228946165179855306461402359179394210527179019091834738593106770777828199038992198896506740643822642166710392277642451816252906529279865365019279784674613813388656051770705123792237267662829041941751167043672234362266797387781610987276605837398004105114897217049168815034097428761082218605629942138740547743351541264721987935711033425366515506630230653808434236553379483112858923340298554940170996556971991344458455768758575234008359562469822146412035654027429249150513516391800697725337839623568654515493362139358512087535681709353827689478489842711156588298831650639425212335576323819844626997297735084962995923562768767556257371955034102341932056412961398143720770891878338398030484296523517867885778851692271721869602498047359047413587243537973580725734620412407750196046166758735396070858059667282584157562371277372658425895832756157767088481049693086004270750412182999732768994416280301287259093955752071091309587172726418357822807532787808049029534481427418965572489232017067876941769889989051847298172468052882578389658430834225030029275205996605731687341983081192449304450203818401703295948794289102797009448104341492402270083400472081889378617952421825980425658027375198918894174492985508294094937716328296207757907181458363377942635825949284830531453534490959800501957476497781547042766363938160591360906404708522369625267530296065287290547597484919888730426947325955162594524733231866622611994070649302830581784024513842392273160549447627024402661766765280189747537254538788151966881973207167469092110538367451819422145802899742467767019923885705076507762741918399250171456832042348862642497715110841272887363915437595190239272423152465952353387763676080457821382460835830658554067402807326180467298225732619074099647450355179508565233315008320461996156642645915529833963133136022374636526953095214442309940654534958692079413633683786107731267945920622471330755760253591668414873701765657129007100527329181322690578126558794861880859944783291673775575654263253496181100981821443705608947748603999938907013531079772487827098933548427130314685118583747793764520499604331791864961757872981147393490835898465835769196198567668556797940259869245706676909401927825348809125072358604950555056403908797762765717362960217757179091617360652761379236015278570023073048684474477512483149983472105811739283280050934830833048740853740112800060957469376860256718244585149820832789117209105471702086036570700092684662242118688288665030099019810484246820337892288502794181314010680785024110203367114155856355699599564354840068997358809831067043346142055188488797825116035255938196562857321312746402224040028432221942971531976856289928639175113353240355399489228585778844177185812855942457827249697238782830097504790279451516836776797759122562569771641405545188635078122248745460249173216858632088122055079599060293406294086261425825324945706625671317017488807182098162339157786792985977601856553557536487027343474935260848195217396323302913480504060282614244253531429845566747756239833478053392081199553408852623422585305653502937633500195707965555520626210104266982538494508951205562550489032260944649020653349469779631689273140387891900444425028441129337887175706429022073952171352067462374307057725266502552147249163706372866247448695927166439020645952609977286347740380516671226586825440002805945471546504193866405507112373209970177940584871696722016358259475149692009061655358491501564679119015264443112041429202714745604569663283976115596635358650330903809391877512748861692440383529022196640970348219674308204154841690667666813767085703468184814236169048661541256294902616136891337649271753384689084731459562792074193137181669950354377770372638989473506614120936220703330373413583260598210227291212958427280888200450628692261978932073321047515239919800570244313553851074635513184915397977088819010549181793564899173178482998372166520697221664760308415952663260114289089217317776092134711807212274807267428264357975776787753696834930779594373274835494063649295670408241552049252189836088480385484962792949891866293468110955282870615807756300510650530895286156744332271852554213170984378459455024189045632753484325618970527037602422963923128723747267778419744831015670000796880796938978689837704173583412340461191658172553221406637670750032650541406173671568051832890703196848663097689892697542000312968539618098243387922736214679516340182344942338074248890193131095546083020954588446215027354780453758390142821032474532250175826274146426892324952516821653944921867385887618039290053405448606807756153534030401784300210215127806979568347424176058764881894036692416284718182848676584613685377891019476118636233389324516071374508560538438469971471633916608075817404017975850078239795057213263120773604292649757779530503728689218212611470786396908134503853747563999485749240560147280755977127591287854751777990665523635596128618900632290356998835472885309017429387311219071097202718686382265321830706576745108732290225622305401275343742680068344747926367834792445164843133180909215728635112536226034452100421023447575309677630311902548308798933201803145494016112774422868030796516880455076638133581561172227685920407948616409027137692298304321317483600025841608929767920986788792783750679850264664839142668468981772221707918010006251379181993175581510133943569992901877159205147252725365943583323877811431919500806270284876959598366944658343967700648714273572134350118242561379465439096957425422178526718770412331838833005107573573886767583353854094193296470366290713160043721151455274215334180919317637250509249298747122923159419604984163198550806399341149114790296829980103144720960188279465730277533870178666820527068361554198603293713538313892387114386262254526763831616114152465640286958976359745329673566549866311022790566960917629281700547301617588319548154161716825740494934522547949357285786267170265649804220126310288672208398597235879387379118359407081973136633962175852908603601559419780334379213788409359396980393027731748866563930135393248315872436479669748282290491539057778773638466536655482206754092521911381119875253126274445063792940831007213035755207535005995590573929890324790327380853862273838340793786572214643996560623916562406821405676015408707602951030299847662986939685155876121350228678393659697069879953730269184593784529529544474771363307279183608524890324716841283971608691836531598662082156690341362412683309378880128689225231066215365537489266998856116731639460229967157753816516066096424101291232214627891820627796782964608792127369628521388006580412702620936745137568094808500842344065267674278551992402587564557598510641135811588755172847902983320534069858550524223528670787838153711903368220080569214286983391105718285067814205629826657493105060545506218090697218141903554108610609297308845195414063788020107913889875559264660068171557972804410210305117348740228967617008017318979118238599110243914165692855858583002449906987149446097381120378947705550756841671867983276551185884295422708787419630728017187937184818433223397677436657553451588669887500873144232499226603950071057640113099095834338001056111136977232501501287357410568491421070664634255847639742126249223529316372749106907182185117008950392719966978929855836077558344640947755613752795580753194231645263695914109632523016389761005543045961554217645225383798806855435862092060004244204609346238631477738870082764685604306757137920789726614298336519811010099470177892693129866398568173690688567194845437411543369022787460659192389143789003856958104841622298769981003137056032785600857959643606772043268013828681184841485054131838442798660639742986019642632648039569406971043121420598844636266365137252737139212298626028483197422549582029050960385174669837428552134319262803178080421483494286369482033545492517643109386187190378965934311503537160074122343237626675817918194813609183856445403646271801685905936850695160642286996854761867535625777725516643280003824757388406956411835270552544838771448880707756026390793663278219059549749460281807470799249404017898751922894404182690317061697250668683177859798673121480945175597857857146527334029118752352884491417988433389044292672082667484925657983706501780317816839345261181877052699378574841760056082172306682378924587708296135282218443519915230837298950753602310939173832721625044568759198557483650027770811926855136987593511422336349737472171358552491529347298695872853237769985553721570457558353581457340017278578525856608253532566350829329646382181650500551764960026733796975952244023974329840420818951375023464488167321567009900657132782917571017025739399203991613740450352596766450004668362317169526822962379602125859269489669998051029498035493015351728347063391860420685749501558641907190054285148406740187037795489770486506400171751761198411597561187826391930668673612696811287268401635021723405061181353676729792555641491446257622518561586188207509727318633536401180524588436517753012091596784232791385200149001965182606493249305948652496363618515913608523494470295862012742213245993450871507876848115011264698978779822448654605353489929933767285530476730031525399073269690619775579297862369728171321461492935407567626244152525587052028165854620484163923916815381574295652724613238348488649503747475191082548686700691071547115132705404202722640181094838344912662635027728860979797118403406192600001504928861205213527937282859873740058262428832695627700796866451656482532508718073375201728752058205959239115240705742223134259910149976625670601819678516286237713100100671613207300563426252304665005215404674528588608046874504295724501992567506955564555370551125342818398730858851357093137675862691935557198051182913872479167882730986667419857260531707481457895579293029693568267643718408191841293382427738648665524801790410802637556700254821739114793852892348163438480246702598913533850294228005483430568208402983823479788835630513471419413323596674603582199398439465419451344799057528391209132095597757988253628003596823696474316549314216455191634814739972747908277494070113307799881046838388512367322840429051931998651645206775945675074406404536753577364874439191710780263964492707603584779203161073128735037608755501552509535123184202160407329165048855436301039966192648670539115187457197710661088501774878621277289621891720180366693312168451707323888557343918564029753985407910078647933622792915170183345658092460912474565037836874216893440541151790084461171572987506757326043217629398737940443635322962831999088521923657496951831077300871954723808843993329929051107220780471375745694712327806969501034396279930962816043173629928970336729350634217405044873553338183121670422514704908654490905166130840054762258762441806277629106459191902459758250445903392102218911796966580757936339054635655462057794543509795245346710519154754462341660496660402931821263837868897348293313700328652590339176562829138214690008087697835360252914279785541309737296660209450477030697306653238349728243275759654658472694077995602514165007948467102378496697051551837310137317123888528988579187802599255132388421717864123230510802996829046005405527592523522900903387652376470976162066850860502242481763802241505444470615209615984537591719535739070201060186055677143371596334904133186475395666595023693880601167459287500666683371269840134567341711011686263174100464015679770976405325172260690547550988105056552871847820919555964589059757912575213256458509320637166851471036613439153925769874562888116549184324721933585022032323132346986866722924107781474410150571001351950700202621560656826888874982641306805647735982091003418446081362509327643933999839777846974368631938930687834129356003032718004325496153541673804222799830222774605838246340826027343575496277559181368868304795762373563836780720141747877221193575030960587439869060674881684439411658142098321483758373595469717900312210289262803390694534295967860675315002634171782252037476857017190494018895320668586283072505990314548928852495886644868399246977149079499635315506317702595184237544868103350504496302167651107969409678519939428327301912942668874632762571032562341131231964796945615361509202246160988328236866168127831596657544249338238502706509432798483820604148509671921268674895696629855607637984382998218486206054503256591955896231749969742773682543753676105841775158740224097659800171159547042342035284134908283510077304943387860831214527561695465773389516430580864828190470010030251965815759983358359951873683218583689891203409822257042124041559690702581928061897264309255564329439763423054739345271642316018926519641953857615065890223473692143838561095658838091072305101468538278305415448104577348460440543701302715644133254059564004686493806324444384043233543819938274714504228645570402108755520771244435977009551940179732613086495238017938810284491389404661897969516651746759532474305982211373289821095829560575143480105831007070548691218111911324401774428438265819967682293920686371272194250080647488299875506965413426698301819469919716974945680608362982902952888391131682399700832277750676927160253579852583395580265884106057332582942270091099816275840315421566747973866453072416056457874210107152563390810849848356175628315379955505062509619562956278790469799733782068261621519155289509620965758429529742419894265673885084903430612657369359514131513253113870575105238239527535462007165441453326546010258577767098176344975243276778775515609506188288593342199700244328928216951143059170013652838117053102224501285695109291392999439700989956296596685857271639421710189100714970340114625935324357010370874672455167996348708576335886383726241049453305059023762130194617275310551625496113702667952853275546405459688825468990252977345536378442956596491119568100834466151219125842826845390929877673835865154367655533077830956336911948025783884354705613114404595960712901376872781098700021201670043197772139583267073874198622074217941691936984289067249576905536616326492660284393268959937446978218033981503955580013917432400223227064534336374784692459020131025736743890938937700909197670317351639546366153428383513542447992987939193678496793210839948167857214610711119559720818145709962580785356349960008460088965546482888359153425108621465531087130307735507631069714904471344793599330119729377817208991625109581575055125403339292922872689239028337343660256885863071371792852785979506177454576175864685149988820723505186583687309523814682607921739564697534252323562498186652331389084052434770750348931338034746058996051024578045236227100348042760919561200737897101328903882573692087106285719893760210722602933888569983113033411238362039221667304314408025170444992976229080631955146745247103685201858720889479247146073175755204396300771243279693300758378862875849204715012071519795803394087923903044581703361882302253210121736514313546981392915130785776864872601228541719553630797797360232102379933920740669667789898512096410995069815212062981746664801136214775446051317084504313549286323009686090076984582213603407618532184653927835149076531048464650824422100450792546053088408214233686599014362188572394393588947330069816489520419879929636505579984645475388679912475896889664213635949596673615825591517118097908416181843601203876700368495418891858360354498638897990171836685682953646615922472564123690291286211661247976920733340099970987917925143875331379263173954755525268205488858435296204460472002066887590954092106205200513083009305768190794914164457807518932457894054387339417224306396282095685052747668780024061283223427556246647209173020666255691742554203803224969232371185697621319015030998704960615396702273362993410047818570380297341580145346055519589124308022169132736362227179381607503497496642077379254128899751422625588570113449040077537877051428104357288295875739646152875413865417056210405668096629587761676559814291609819913923560166047077467599170293883619938205467046331738874716976499743299680715689649811591871672822217732573134001759600269985374846025812534873634653184312005538472304206291041240270452860060578069103438143565598977229500684254329528580401983390586328903379756693128126917510146250820395218624251086965944193060634653149349037648030418249118498571615412525119504686360756305200761853739031471414616883666118445682636436870916817483688074286550018983820133355607508307927164482868090814637804294101896231230680739948058698913270222500971519857814126853743281539766124365246699525623036074723494028876908287927353656073668459390190803567362053378545522722744567253898637658150531175062830483676448543606922108121897908688019209923449358352809566750558255859378741059629009415764548814103505012985100627799462033221344677121918573365924128669190582307756733188470323439826282634498850003257090692494731789842382309580407739155704287413825464234870429339193431254343560319397120320912177031554391628761716403084205750521905447756142355938986331740477272235385574387179795592734948149494556402370289275856646844589135006946558629758864464928613107202412821370565097348315160358562220646506928606197619927057803936341709931779064975074648815802756285002503285982373375169630717498582793819519453733435944268706593763166497161235145729606851404717114884550525173574008585795517877089139308198228854767988224577333126435617628915270044465246060300107794627786291103532962635948345360126299874091847771071462442953939259547820736083520837319998025539176952726632551344338420188323162831867868107215455158800219755431183021090024258943661352589800623741457125296155430271664597104699596097869060013912913184824280883186483908568774085850599984924717020782467118312037725559517267955355729479135130249478409619312342737976570448707073738252844544595598008961067048487394407811564236873573980398192781114941578376678466075292015117744781813220392569945829959799469442238808872321459894147964393943811881280936109015285595167265921745778187880594401241711434210638261505187851936338418975053324617290804432842492560012289426948586059714482824369650844052190293791658215948271860857422607102228520295914036014287416637005648191733873525788238923328129500500827381392876798128144729590662198315982628196151203665545628719395670899357512387909837763735260263369199477836584595541019324164811050145653573627958189387596529161263104341240268168646544162966614984006303324955996919981663630288769023328295943489855596128453297262409476728448485860640825929615128007836757117544364283161360973037377628467590583346994839093300979143642276885029603425759583482918136934857917994325483719675751516349638598085142406566075631825534471261596711859151686203010803116327095140896308545460145902471920927716731244299167950549119615326031911119470476186489913862623581998135917559735176337625168172796523357647135178569488493275016483632868344667996233280715877086865302084020863020044184274338818783533988891431326152337068297725522913880596179546627520705493559821008805215426937479249613302551170992364287375568091107622364010152840153431323034047534766333537620216201838081261882573117900356985044389913039913550132457201612901521839020150284638825972947312666420722803120184932770549538672872964627215687609278295709551799582624228551703862292139712797317897251885276679960788517548165817434536970946255588296956100325821105178210451873181189582374047099514170698757036998329730227379360068764691669072672550553319081298502825826997313268494193162196590301180303198129843299390884923595710795827496253814358158797171821661169127710683298633176375626739404729832258949846096547943496804561283832197946539367674682784537036196929016332822742232256481176506796088574203471103989460847711374128268268627920254312596304300329740442490063164415268249123561535929441531978773476385076162925126196300532919676361574174269446078664124753841011436555373031569806101746648419864119918391437491284159357979322039921018129283522688841680729345348431198757956281809083787095588487950673006541310328751095996310053661235476303377135869576019537366603550527630096056589570432129016578118396911418674530947763550819970994769827672620173191660506634631415237132281482926720079190801260871889645144799534596408408669103335027903455975459094042488780505510120371911695080444382674424736463896264920886814307881958741340419967490110182701470611549964376773843998174127500246953071439693390873707793489844908548456797596159533809219482628742426443727331957828524720886300559789400625784074935396925882257103492865439385266614971759266037989699653919512226336208467894736149348009265458404331079728608161904378306216808610694795210896227041376097095177681763429141912958667642915126409299931139534776240925845238125477676541586913221545118035800304506167426136122102799819786661095523218843273906940435920890921162629206859678268248457089273532413535598017355532961320523242338489985187501594787839198045893824522586057523855412224869492699193126592211044742749555365800381519742051561404683211244260746375989266551174116854013576901267468935590366344855740544489118931636853065438273755877171502931668808244728122682503912408563606818020283042241416090818836330728914911455633462651114924261148507921031559250988780586818241506735445881461657426493730102573769669919185859883489721175983537469714090476146793263204634420447706778711581348720895945119792194785951462782500729555174688499155990426327447535572559421506410819446548028338211433671869710119104812086860120976525132538157864735146558637001724872715032102109268656065641740689022872275851381016497341993585405299331641287964012501447478643400999375824994643644351591450870838910344257124064866955429315384442266885487011044872704757185447112164793947700621981274638110411720054250401176574679859293677035281292517895436299696404607361101340560036086039959408652394240562342371645187218349370472676774403601409531009511630815860744601670083797550474104404500902302811310940992797023035493306715332227847773924127693446144322709891218916799752707685957263031298706763246432305954475117053557467098258822696239653708374309392359292223942421409682621659209545275531099115968839255521545453021116241077068897859185600847988108237808661979808970144774657396957137441115205690562821884917862684661471611072135147929003540470483702505280611590607815696194790542998326106151769546343380957014756513566120465697072184392363310550772501144386389808571372390339348786191502710114927779396093983684997536022385501529526473337062297412560765566573869994399226618899895347258816863217473536066166556627629165018725004047451975757226168443513176871123398626223411263771738808683380637629971339373893499290662050531319433934897682131230634940425084950291611757528540989731877508370822031756766458504789572009895484713742489977034470278113174316941524634833368368532554910254799537779635830751036379250382788102090092059857882988847514841114595812771168417516160234908027973385749045108191071663477665387626580129329342390200018480424314850697884916786831411501415801912718720386186932172835398662467703538284961017874961724883065301909121130284661701948736869204970941910855248341969874841912374311547096305148030264431767556237299441331269026866034235741913772012771761327897573559396566072258826504041686086647697738236980422442612123022264489083217996012842359064053776886754742464180666673515308057298898726215784328803104436157555039945821276880286402942157521038765495798032098097580574596755562764986419772617567613333418316180772269341233540125836034057306552915003449133951792919314065189817275107382179261494378017639274532576606779922754185866140043096020234801676254159201050924139501047464188654328143095800033013191736018943893497412363601177789347319485991839476970147377281353310653764884301592869788420306320569455292154532913451305239293231719748030783596053519733177865708005122080529339838550600015940984467139824647866392360994016756789990033186105404526289198688843607134165644227009456013119480703111134543644024671799522005441374194191205873922752223152731924055626286055570639430456886745261784305576039978149479556785519599658086874024824342381517733456547729598526121246163155783252580521854360222733541567258397904990026189987159244566710663940445774430536006327492454406962989092647839142674361847981156839937105800549050060013955635488244519451099596105348735786790340563268097512843466889652902904900822500775216671814067189119925805410234882131568015547194665292796708179535687949076618397903523056805934325774663193937288680527056907402134198109134271122954570083254046679206840984168844548970994494433786407627681152417902023577183783059927175228278111500690337508140432049503501612350431676297698333620036432289978110387760632220709593457263831538469121200594134694783097060248803826856946191410750979487229208225812401654705164623179085235937559692712470318197885816793331439309470497449411324366963529533165578363782956417123116716710537276014679296888151623982867563745379275640167912132062259826383094745173048764951970641698799844627223956895250803246920328971401478806853066156708326245690198583556589898881415797192155313113989396199165610211290881090928921138350528694138693110643821835316621782846319266127603117034074209923865825897015350715903556029632294724513377024979004301504353581933106552565163334721671619908313665301274645796090395432760778547108388470242604943652210671062970264599860114105241229000762623142807497225436581307344553636561762905610997127182067566177864947082532039433943601069314517803385244573172123921587248700447186660918758720625394774107881759448246742868936917303836295920763223816907554666828048479863086055754569913972682708635849252204700049533651229026292527446988329593164701686663943092222803355243295966786203121693921447723144277402256652147530871692439758807794970185377773816734460253834890106395389811196068966230632362161730781803949710982574988646386368532357177901738329727627392298542570994834804483098460078007894201536660316211060547547422387293686095205509174453604701626251244126222527935046151865596601154880340114819176518853602810983317207145364105159214530244917723574906665229797322155303997100789197874107383744076532787451065140196645554562416340525824152874373653468087481201846802653349025485691605621891485261995117661241866073302068053045801550997444310533238445842045758323676007408089473427781042757998012081799654493111646574218421086123187393833325761707048671282383019133277986079066699658633837667591156873443120743980175788055197814971181113785090460917698348915556405407587215580653790520361516863517620507591188717130630222204624922189275736043553782094396960492714387112752087508399649367906786476607311634937773015270349067546327082257791673232488955523085298737913555645546974983750729281862326631580448440303124167824594442981721821397508183848876193065923625210587678426391865744357571773368698105855008186395961440572457994752461627436117652780726906354071498546896538708693345925575833090455427143624889938523806087845432762942830094827081698314225082736593783318600929727396388982399164866895699787151925645996864727826499381006750850929933244516602857782769193297372252890169031654693999236158099267006236001180437905614929996083476187997583630608406721841556883904569975379226054645261851016642744251426464824377282020262294253904651548811966635554727582019501566518174012235363670034124399393249357745172685661775290993343911931746790271927375397252363630198511220834284249806665327935074944022356527836181143980538906494648717012967674712096771158734157205185992459096418083218645725719350698613331809905622764558505962339086834824582386348148606582335480972032107854779222794370446393282467118600655002458589638070708536192157964909451721170267232757036667639113192426628455413276059244029009439104429459817688395831291839093747336224525411469620891817652578412297902049619874837514964258686934816300054538475098877543868231555335769185276995401050967484145899485519495655104670507181895616008569203160454456626720289576339982434096662060536302929327230848508296853677225986053729087858585408798474676275470475515596116238515422723616516077098004301051586293052480692481147885375367961974547221192198628430904157777538155777161114254055973026895109726731006495421813437339204001398012798684538761509189495644303410540376778784269501416924451260799984157132551984222702601887895931438491082448674184716127332307338263541486405434789316670499455049558940179598049018548883333050553483532017721060874471497651987553223313017776904452086254717925122374845357226677774455637907311636245871479405110040886187844423475112432316995202075933443540791448883456194475576792079852546992496466467301783767639290750889047123694936271695884948681125423278547767141482137466807648865805200961847372796065532343448042564712693798024084057815099085144427997397001734951234508784508214715091904666014983676601741827537712864551063443829750344383620151837936611078410487050356699067677717579232561623777679505072187473237386085658638209159947103828235385489431877926524404504570866899724050581643348847106714788844963105669219368570021300291283667768643583041784989557254181637817727173923184656325264134399395967667653598348781079578165049230478387913837924767719564275187082456702865519719128018895992952117961073125502749939323494591941666372973838790056904628275744624459329692579562836539843340152783320295068236109305720361706730346528256010365243595581217357996873606860823996041392697391772207303008164552199913721754472868142292337061904593492412473100025484322553122364264129796403921444261727744776970050386358650989895768361131674650480425922604585458016020841663862283444012560404984636100161534627167552232999505197638878665762067092805877558311732875440246966837179747848662693704791801497932789708441716731947838318402462251305013146109021462940024708556808962026494100830103925861172285634241293109717615673822394726487740487738597761368669673738914087012546809351533850973856307927823716043106975442303767684650084274136368709867587582804583883951056943295488757021011358549143646125167024827838591882349284108048158734154921840388082774113288781083401389792877019954566759836403307973362459134112268191225598400944138465424125208444473717523532933342374769106850786959425092816691448616374772271025797733229448389082838013864157772233052931013624309644243004683122760096664720055916286524767101749110371218996117690054964374153654250507571501161478930547721383566682592891872438397899685973205179633521282367102500436123759478951106467023672642149593727251384795499660076307330394139941933169288399782963322330926281526980125072495756809926503229728057103044755021710077114501733170219213330098312912571991141621730197542542227479475009778338106244825130121406513317206272266481968340640273642856343221716850537029913469024340455256580144217977849491974664143612728557851688997444793503408897733463640149781328184609526024457572007672888961938664322446024728298451734264492444399148181747523004049621315279403478605904474212371875968264911154294890200228979506386142236986200270313207693582042878233497128106692785715133172248972513317127339527743694623040935184306394800377680269098540305696314629206864942223826351715745579090961347617678190127143934218055755641725081115252241730396426265210179315374860995747616224373625235813403637008434657823761411834557062513610327066918530722120920923656840851094925314832604447159284316745490127251749176044602701580967468462278049932921924061628395839812318578793119279357201092506863757962467866774505531920627630964420076138621604910728387512462646760975757162184355686203240220945984635298910279479992671463736848685860592556095087154615526953241815632958937610417385569950967041433819805011473050021458784255458656000402910155762612799536816985687140128349334560700917727697596911041643925420868632380973530865738541736238051865151361302961513629852671788961956991722231724004488328937189713575365482699427493951676304046107782080992898011126985504496083547799619426544693855470981048891237388672613652835208043035800457373927770629221699669342231812268120319338371250960622019773232713610395396430309325309507192266451064646454232911446903940648156298102452415218689313645337038800778383474364861747238734117363182277922485697286318675246213019204054141164813405669427972135443561012692102171395129312381827488461963269726184645321739297869760832910669624384802878639893720606572923825496992092035687112142538861095782242151301302464543538525410382473363138585235491369792141321113000736651477318354815552376307000961388110839190598052805591480778818865059062268647242629598466991552840990443757446681114711905523599146259204614723069691828959666906409424908109853010458411422739734409575058994956919395054031916062838791104116106922428796754703261859181594319701983388195112632634071146311944503535504660638169547889959193186779712920951424165983082121881551435947848527400558527793626252753886159129810465106252868441242461280437851516267221489111062663952623972567727215379811502922192850130293621058182291727360515398023885972464281684408206492580728914671105786059857891686140871660751166309205064646094175775214796173992013545889406395441874276398932337895517798512150952456294919819860253549921856642339711305911513605718140557627075272183082307574525429039520924712675317826867080924769632032952941462033718709904314916742203822348279346177658374797161851051820169281188496943218938068226192737749871761807453783302207039288939477574266004947970103169011821724317541574039376671332524634767394758749118968822685460170381928259453018030428656962971634051908131152488414563490403575007869776547387951122047164338490416757572432436616821379178889719489236419671996224876805830429750789071459234321138714493337147023917105077253100427264880773842497052926030972544540999104931367871901113665236850460145386933067281145054986564616605227331637610909804067583153216215773150273006173838432731936550364158314955082031968623246666676495625365518499239119469461808516696412250680518574442047227998443690910534688688293315453239855068549841015248606306369930532145760976377929656679481667030852021642128418347092746487703676908274095562578418086222448045955787114095247779495660843387878163276495684895821615549341908541419677071482349769741889668679703373888676819188240035739489899301160981795851778452920404787761075541855117958437079332799745413213721810321000394812570682969911044491823097895761512337305498694353046983303277474911856906251746825418239159995375883503191656630950099838155420718213575836730216310665071061564449998346172601940902136509142796446999643375951459606934691058449246235923080282061018790437197805366727473024495630509184985509780930537500008036198064478027563078247810798144653734784112081676207263704499726884201433977802914919636224690999827235790214959653278098481978879739919233989518455833812037084364860280037411372122536047707234035754713109807705456594587318745619276068237310184597717724335162222806534971408426932140811338591493856121109487508515713013723155594604615344927690130104576007122317630709135759690559620036186349104634195906320137383620747161881930927524586321249108668408051376853794669833234383415599412502042925528996089345495299910393196046971102305213522005876493513319467352324178610421305254756261211498615403354437330121693264501440732090810737053372921351500115024197418479397401105040960058316344340555198457643291736539280646234926546709388666161132566548050812829352512508473191528262674926131915994294709422647325917876947985769098010891567219906759169807671005444891224835903116594874608706861590446217416198170437467683478582009999623512688815085514957376022353048423317637927298836514912178961926460598714997112107774877228738206551933755951342549173137950851764915313085692143175749909272252030601376920236214667177382659625397387507714670703398578714386147168185796938382835398808198826477553565347821261991993804521113079507102976553366529099021209612091952204301372045089271842785848239902852315305954688691838178611603551183795390156872292833429566798111516452686566131589461525000001972029588652883216499205300959577181352058488870537673046705965570185974553131219057230872569283250298649080898071185910126866703901864928254322439354961713563831837392806006628658155452336284448999206125464820043223296461602671630503307213738093878902715025225968177422710793854309287812488649917532964715536456023712903614297698956026639475241044951513927626218930550599039141402001337680046855579063753050073418235406443219402785806967369934561128254727265119501312369488108601880240523544407835001948748492180336139487423872471679915249912022485706113636542219317881839243669885195884523405607555887412440859578204775852908037839794125517630638921349034663442752531284258633849354062921162236510108934069713424779729240524647046348521822317581990762564846685901072340659749814592631243805789074531097487261193939719012337785776588185101840766036275150923080898882479818742281452111727105106619280779099002764763647491115891782530086314759416786137429286250883224764978483349925926806004288363592330499805089787749835947579782973038588387859328467821371350525933297212790826643007859196992255053844078672389196661545925796554404575016634972977156348254519337057879377263770118889918247672688144695623800454864924179086850883701666764026418488303125613363604555414209122435723610823403509014631512645259231417857459749672796406991091204897612686477323383343975462106124430355396505530191378077522119044959456029869301189082983449237368647854039952975705786562435505049576275649368426285880001522320288324732560721006826383944265523297968412523415789667523159284542644315963555783167134620282755670959428029384169495632367514461828147209533966588137772965899857347387004157792460249417304374178877294157651985972155820597226603680814112454509127633914417995978942243596321520866201399183740218047068215831080269570698958399783522872803518623707419881928032354964243551205967073052429229791510866349828210964375624892978894320235218009493950508706890211182467842400627673751704758794516013529435070535248945704845131468490909927935137313840082478585067676605369092198861902081319509904396570074652939364065114462259266310522241218805311320178008313116037424562762271788209119673914343539341798846229486409616235178840200763481628300227613817249581922942918456301016796542239908341275424944106786564980186290649959464250486780384546445060925049784326193084303842928403135455553291932285546513497676151401589054696976190652848491290637586811828943136066356169213199105321209551856731405810811520277230492430212536299925998844520001087116567999946545456375962532268153299074543960944199372463022984601155963478538835007672238358585878783341195605577195522325001145968599273891572871812453543167147477771074380563294797825460851838270547950966053114235873283107284924707107694778609220621348903487755117432377490924330105423490255541386554001997133978197879876911391543123439770502797634922743615253076690745834029120679064856677112668435744944548095788112719831501812351970102516882357525716647332588302963403925954831807080801328193421855189909477150704669056350521750201355036255433535730499050384073895225094097425608561714571889098862669646660362937832665536550805643349506026969040831756404099669109439548938723517481030987762207565239762227354749568010005344670073292672417551442350999758526390682645412929376454067732961595394965049571262770782967653693205512698511139894594099738220153724698675916978838407375477982565205411424890396543614501478558778609954341063013266033451962075145568652555597849067001648728872409721523471991780377196014997730329195653217621484763935343645008179699582366966219022751890097142334437319432441295959406936828621505120174817910118562118503841977413057314982667912849269757929175685762185780571927160811665592453099474976642661761080553791418420221073527506355383434534827390497073554401002288773574666531179221127933612422204789638153470229095740631354876871390338012504023202529318399434166547765677770174035309219590345986744931418713204652504225093168549353493244750970730090108054309601678435445248840023300378536718106658559643664275589855493258312383369092468680623236561839192215836966240999773492050288681307662060286696813657018358936852898839505970848014000594643136517294629659662958180233619435916473438116031783819251991350734231137217829007841563447793672594901945484305779305499591024497565816255442445657636736070782864252795300581097936457587319568299169598588692340203369580859147708009808586875307773268288524187044480351380646123370656188379911487832934793056929899232757534017069187253543706463462161009861035594906859894670721061061641288227959625806889473467959705809972596919924771331834210651915034663838318779698844742593091866635172244198538839384292601913509120534202988895888656960132175376861670214091890258164372919786537086357814263234526057183701946655919627346449467398722332668991446284199230011129144421362619602967779580451215595613530194624948588697135908783667535739443992593978818369677780822249002699474796940599101858817259004992073501687408444542878233016060567182696259861120498121575900293445739828338038389261420525290834846919976809193148654839087888220353226883711504705490062182882197177184544276289988679335938808046700221103448484863681112272909497604051893249846006619464729795523866277239883984910147475709630210581629159362013520326394712847265683112932589675976836223015678862859375104813623707137262090703916187282740426976365175599421955397263464235106960716740543114879444289936713248086952261611145691870958074187512085626863587943126416204628487577991546122217862814104159537526767614390679275298601686681464361704569451898554481659170389945311857248561138530999264185952005256120221108025460608389825488949595008536719245654969637947479543086965274222593215218309188065727901801299186712719578429635215148575853321573237669127341340838364655986076377602818298297194273368292480956154877130586859432964070975585742942061743120842982301871622213697695440544007023833843927536729502378391275028295608343970753721294285516132123534835849201893370711013456787918822482504739593707769354032182984203300602878043524911118648835987449845877534819197996191468991779645087201532284336674139449669143733500853318084734262902357182369231079558564132272019247482603417187208847246416032589484605746305459038643771987024888127945741510570230877356793012235556014724249460819686568108992331576113696245465281950098076801283725422343667350086243711048300407865945668642030908429217914170649957377460340247157809070751260350979624034755165919121104721334139349534562185230750435730532023872468870855545224295181915789515845987060532817113774391656828556966053231940829715191947089911849403982341972479007158080454049557710102023494606952670486505514348860500302492868328223631609248624411159687947491724677407504440014851143429195157207557107979747480477927681292789185273746255602998415445091120772304803641907666828007198750628749125639246538370968862029650486659321096143257524451383989586066688970539342470742545979670143637549182869593226536479715640657393527974124021186283164928223960874321730768241841724763332252703066181991628883143934067245882779553471117441551667894879330518504237593082192264065599380575448406345870572106417409526930013608800231028903176058037613511372177625693610692618082794231882702672737537866181336625659184668797553729666042865755453695516934207460587791658428726079151837797089481205148361440055926652981674774294508875509261969260307294352442836018180905456569261971555701051317670996524387399374042427110168097483051344218566054554802487375714882350317758878765724765221422159288749023375815987857099824713770390560647489136825583365942853153694565718380573355983753361791768325153045565755420052397251683563547384276896527524679651291624571997037806808038119215624693651730761761332794353704881203133469384907950494057802185687149414006722215374254039884339206057527722189513605847549237514544967666335081154802145620346741465598095075648526531711303799756918319662950517051159358921398419498316693416122987939443402686844290282624875867960904365694612824663829838550652318167443294598485716021813967101853925790027165229307230466180651684993497500759584745522015621038087866032522864232382835012472972840147027521209197829821441428461212617719533789980747220111491774637067302499664988324505176356271066759480620927864363118805662044394877347478301206293690138778699719646010506829449160457909626711091100155753058077364067646063802372715710462159467791537823573652103941882323863418484133617044662352192098202417161007349036207238637998198766493828846178532290801173555361773532264989916468151101564055807251300081684762146125276279769237899627431349855902827898829176168658212254250013477293726925887938553685898481978709735749554730133946884833369220149036896817274588026998074256184271774155226103874592588631905574177713760667951427821808035610647914853401187256894906415870358413795056093484318070060436712891611698302318264441707647603324542540786629169946858059474235986821083614995248358254561040004581816738510546474464455524106799097850750022364807740219434760400093695768251829250547719326206792884552508180821554688018382878131313222609754732776298362076189551783166965773273995847132000892885429060263010131292089876366815257829376347547530310026664843006759300006634294183985610764570259841008259430015111615321602757936272199824331513192309357954240686030674671423852637328622584207838059144474287917496242790944724470423054304081651870252184089997014405230526891063792976424305769615018684702684338489153904431823719374436130076652759476174348321486373060918440322115531919005774035832195378904822547795057562343347925664227210920202983675403509561387325015717050341966424764686721144809901481350416871584978847630701427638870586534444480033112786541394889536196299213793041483823882397506651745794586984601083767426117012109843730713748321123495471984129367736120140351273405490880982930823430948003191773699730994270419682785887585758651895591878170269976363807388962800470716290560736354159671168457482565138692899937417455090950757847848144608046376171806743656313292821472174993755920523372606192902795368398893337683073821739214733064171671716832648107103670958319428633061665644035675317748995103663595377236103772779157554124725507440646195231334331578522712580955426104342119018123866828933653362871605756787368169822900020092629233219497959758760767670862728036330899421811896183984157548691399303786291472800357951510877611547169034986930316189702545702113610415065510284203283988007188453299997906442750836121757093330531328013995068852077729048156574397970419170601919795389956805980036619702068792721593667831081177233417258309176839474483960708325785670050009023010632634707697623498566682713409018377183569477143262437699029513305970385466273398315181876066935391743615453763659943077176522888387395520249206608860472759395153261555097770558670928207224039700842165698425607814677275488050581673161161689152880453162990342569103273318968170581454862850546674546820664257565723831859700579809681159266433843457726274800955183732047125200740241285130151125966091154420647260360082975268194068034451013853029341589583846598406766554738648638685409110208606297736069424327610609336059639079930042806159325121031309607752767968407650870790976501648692029729789983360363590069532324517190207373702660113221942387350154864961321853875391535179453321746025232439647906417340510674419978111329527103649450140732831146840717526656577793540182803575466624004352288919997424036781095076424058961504557694637274482730152749670008426027092458654725347916105132544446982998940373514305023155042716054423752642686861669490271274672376172418847782441483237021397995371418328872628139534269803799530642101749362409539368623628536429177502450284760651922451247220391557922700451340306304529152229722538307134778205729898461333647887045823689919404546179268258807051872357277033826090341753842951799923451684874627723680937008672432085774510308410133077227193229984797989614942540850884565324425830141839428582099601587082616291757832486585533650714967906817563762774219512464395119365283721629247239464044315072868776186660216247578575787743785117479503640552204608525742114993057608291558318031436064814444026097360991620256655799870840613626621987134680371434967946050170737275204507676620460395202303948845582582355093907590004230855826926103332410363729500474290202867193266555377344105901585669554467234456893305929483524337315386000037000643474821412046133164506528469377152718062488345365840632309526750849601936379347235229062676679596472109920818127375631008653723535434683007695557823095057007483017849958122238945529426932272853230633508153797983873903916793680091112741178767676183551551344854205580359475520040117138916410142488175370841676754171595783821116100047267710016394400959724541983413527260986944409979279716302174498532295460718119042693586351329200880784936995869117349737249990659095512329891609978361924746181438704063965211297505210935234151037875166320971416895947809209445107909153280123658082448275867787432236833750009555958670320837891527353659900061947050238977049802823061932825236563461439906826093437045628866389755243520425655773996704331064304263037871485569187797318927036117594142791336863973919926638161883442795436849490583792289426080815906463902050694727713461213689440346598234212087011988465832625813819357285478826754537312344520877527271184625630119693577766704003407465241718711220460374896976600247748880377793298575231081196673340260794962205310857127936288708149286574023386327242938543909661043092734502410821140340436848489873332809400024214444114018825889698484575416171539073275217802412705862509536012890860743711101183173445767496807438219879212004732820317512684313872388527996865944127902609166525070291175464979971753141060583879273885594326454184423822169762243253580652637819042111891150016370139999333242519075915496676297263258520702132975813158403967598135136161871758519717790842263920746971631413679344338429557962844782967393034047045760983470002049184591361440302257309424716541807727464603355555401723114794397983610662732191628620543827342559964756670087655759146820596633211965369075183742603171386100860312034712899194059304958912340460082058172492723135400367612317066062387331600836508883810019236049804332045599107523013733119765406796461189424056396287581582541579329015628451378958911927110707271729928549453504075013102577343042825787899042212552900341484781829938284736406701701853285625829305529370121394966419310995517443314606111487312289956648652293596653106471274650422017499802144543853003354841980652366284968914153824603370319409217518872825329881228776336791329794608456295210449499118775421890046056546188570895728144927542107145540623579241469268945667536936684520805509217303712227268963200250066985677441466321791565585784611745665345811100912366767443197077585769269133637637391438649589983108145091034010431340290612109884681360716483175050826606562594706638480001513417339073021837598851491690922058645909240746707066821764729589809392417979293295413980199313045952860704561840553426772192691134595186293616195343175882280658622600919729480719392562872801507384085597849720522426963779907800831448307715886999882807483952476991311359780855644398178184829902613323015076301282427162815809998605372063710151580235884983572321089573833245716069288521411859061532251612754010730948584085739737667052832113269837718610537492363959150416463928198110905874805285649205773202844043715698354780175167870357965708040896247860975885887007140220928260823063118649740776711692062279923492911050839797734727193304514255375844385985233760194307893440048719010272124439372275126274268975190786506517918149360014226714670121117419951691848068483832361836973679825613518175805018257303094389899943440795482141758990729198459072648831947853645319816738036204480680475178119311970595434414833657484710720568986524085163079335126702559045512491868704049049401875039777524123938068765161035040601533319551854430128131025885352784712185037772576226674041506457306918083331764256610019075260809165524177945738389834546781873712453316541823185672409319054164671114268309050351107183070514911479250333417810869912866633717883016305539816876529443216049428578084170857980431612263123442239843639232211602525087884572253371802716731932463782375209198070515308378541946997847916190607892138736008160342051861894469723840999290703656857016713469333199989273310498517651396072274701343369765001731863256737644061114044053717981443710560252321439166265538670738176542296806429464592707846225851468232841085955158296999983323087745020164298336132128394947107986520538154137042095698229119405613503036944125791622784383159058429525135828013122789087048594843062370041322672805532425765749248714919323032044891687593462944696501179671293896520833009040998693179560002378931473743584870042533879238863847138814216280624530646825737245063683746927187376175633411060685843838260127328427249834114906968130757073266021386678014457771052099886820257931225202716572194500745786412255108306894169844392197651885888704442342401809680631563324611426072109430596768334520006584388883593801448115136236896106557920129983948464121116125935818325193752139066118225691493829873978290976297679964214672080122782855818587101326896705783134731240202449773234655955209403483701573492758638657962923095548992447967257002585833306919323065633534320335365091882909256105073110095008074176481558452835510769797170764951079450301383574137663953070000766638134111160916939547889549669635749095369779007718067674848006034643335587504226749051836374929837258389189340771212714179977078065528375395961877937548270038577170449747332735855771749479381891501723342808031524096254588299038260125816989163638749354789138195222124935725219376763807320534931523734863354028161976375094159702557041151016873371234632689054191633584303477910298262158478653484536462226934352541916092558163328825838702789252172054919449217628752599396174636906403265780745337859583970239690331194994036754266674333733533973164985541475390195785759649785995490560424031279159261804732275740955312581096368730892375439764564672185793809371482787156715675753131793990735497334699662392906972743676318383456340355536053152951386224952274818409945944549751871009889806223677640599674835677314510451742752688256011436886576035757166057846371033600744663476639700669183458588384018758998426888946317036533434019901105077839977131168644662034987499383784352581965201194109595838972640203943610522241498160458877501311212955077627142329094599166060215472725627712743131189570235713478246238962879622291333531111170163847299248279993123519543563105647439238618154513655307699472543848469212764745500336078135333088645975149974847985839999333694843166958585944810919640608225342308760275217813306850028718640950111867218577327038588363326973031441725157287987576369094884887432846841990835015003078349514251775654154101033458035278894624826537193612734857723680798355433233103356025107415405179273455338285748975923861237079218655357231209212181228482235706891080801681173860586325704550278960333595544306608044305918360949608952710810783621726308876954196538768318394164548011729830553784217131804916162835148375095129669494252890982070384697850940622599798087581736414150660001859950768188352802642323190128960535800698781864797548754886140856845445973744466943405215661797365746688935080329517395747269680913518649375749643153476778497784045051207137041004784976152518246288089275463179812349210276254575384755353845835423639213125762456571046489632052857109337116614375725461466459162621814916226316598287451943547109208924271914615409890088653048193035202735867166050497431272589603323922227331984919624872717504959428981345917141864179893074750886691497367938212511428288615998881290794511460764142630417054667847218055170658106783702132233692874285364411441045191993089512885680352150636285721633808416698062816892639267715442545756852132740625847277113531277942858778313077517629920192149584295089169150991675466642705149688426818671572436479812801624370355566710876410573922786232241178376289973143149478090963267567907875160261317090345176124852310877284706076580371025456505665219544709723375698806948918233386796069721789534875602761124794414223046064160962272625669545853628718294312578198005321494404959630573770956322016103719386388763136443796325159688108294000914664517590439739353300508566513093061356984230127631691699821394157944991019631815943626001581610391398957000326166498767800279649621150856020524422037765418518306779136755343707717037735954259200248529346391799396820223570123457147913840591903443200019756219583287508987036731072446283287505029539561520572110674160113249151725257126062106350678311261318886579118325755822351317365435007441869467350235271355199914101794606375690240440449758294500450990516417425923803349304518309614738851469577815027965741629606887836551164330635821408144849909699387747878010700615078431192100926990204097300006054106648372598239186918144196699033013350493945526858533407340638621464175526752901090787675985167996927272026744527079379177134704838253011706319546088577237352703265183014467011879523677978297747464714398134169296736661395938446762108577336579984454147676844272259165275174367576161458334263533863300138380291825135931083249928605326726223277780364392109134035160261674731267040003265403870290262679905573641923873372497678766212512171665119113628372260065287172859257549183832329295560156953875970148984930714547782666285257691056901552559029034210225525097589794132731793346230366148403264520235202267934282278925062831867223912718037498809469544008026141272038321081693714249681057534974165034326909986631996414885679943655472175862774554658881816327118249479214098691614801959012584542486990479431388340397713790869358768523011768274701223880525782377971392676007851881992702104822754050675497108760314508707488320594445708679596486476622406244913593344862276897732798651709439760510903469245936076169818875477525993801301039207997261819580966471547559488436704694737768583712094870356126357353117293484558930021312395643047506690482302137436949796250325275856209583901727053212144397345288057914286837844648205433822637182313112590687912493950521375458037768744189267491698098947517486163401939644514138343481182723531745686282994948427317960290467562136164885658960030582331876766790455688921444183717053285794454687948734466327096792304657148628420276195032090561534655642601468937093235138868427399642007369935179286939272580515426661230934760724642886273458319251679700404058328976053956949363274017926943009368608270782978578850746293283345230888760056154944383707645039394228243217656090349584631375893751514634846218237637317140548460945505259675391381218947645379857541535952883181767533022378552369246692135774976417808225705706971109057915929254906301775345070965348799733361008851824425557390545793670078672894170016473989956158813871936893174645598366117704833333597371020808266263547070840638460880432563828174975570227270071222874206312308269750131853739038913197999673709442938781980341348079992351734144658073124711013593565840105961944412963613127253949379638854369685806115567171074664926478400613467412686755130620960434761562822024261195905016520392737530266419553403967847027275603616035634856191252744598352660658687319542240199952226948933064395296535194441990396290334306857757773883845913543880023858746734221861580307323840692553204233306595411837522878069894228567638125887332603490447151825388374686802835467899180092561796804991496686535848927018759177430262280262440441944278867176711690218422569244609166243560304678382386818059708395494465527710546996260057737227980527978518780015385883317852751522639217562845754904343084182787920435908852115935786830698485938237523741332427845933524921997971104600207533953612314788285145580058674373872380106650595802196450216269663347488970382928377842723145366692368925612871458940142369217786715612091666012106900807019012070823081748140683271185822142427008850387938109569876129085881451356065768925751768414714708058818702855607147401293158332326010382119811421769709273265662195330162948567436900622085150863889341970601333504649777772311651001163249710090933640286429136138022534031676869891055715775148460974715624471545939008981053588175854333269439665275523827893319708324436333106585711288883471368283099598202300410478826102935074633212905285443623666847456200363422270427033113678993111598414556603987973863458562485998011694809131792700200788675632227859914920126330782756013274150168123120482996756301573555001054991539908342577877546983439236113050893331022008069633360541674828974964847652117840065188836554114448603893062777041346101794156329724496623979391822544694790323193973256992035061982324774967333285570392218834126956705523147242154997432012261862792927405173775693067239121045193578574881432108953927798063084215167192388046452603206089291894028476317813506886162184955530826608543384238077412616705275517204394952656931454308623884029379203254612064113386455232000253630775896687334648787915592719507987104239567023905836850587396286433156025666239432702764702117843955937069158840740928906495678886329217321883542134310912829169896654568415170950033644623807636276869600717984818842253246982897096382181192312834050108511127765920876199609483693964825881591412915794386067656159635561127289078423690606394278067779971412448806863797180642206732251818801448705288993532054493459664470294796878214900670013612979423864192279124728668402625095364700800651721733786165770272178917151069229953147465885104378136322270638322769197221355203613344775563590852714871536597668057012900430464331552497163739941758710436848986356640846426553138138085185223579481210738315315411557817348074273820562121031346437583870720342522843285574269322393660113903425988586447396197098512043784251745165232639902844869954836387634949535907244875912845648646160987467044615788372277498503053283493431279586226400391897823847201241603320982316510670781608627793257977954919642612628847963008039845219977977313445697854796956298233169057448857073224250450793855594451448055565799997502680560267850304698474124676889279934142163195925592873318529184978739448542778888357058966238256917323814446560565835520857210365744422988072326069849433889002603470997920358181879181967987004902205667705371346055307107041248122087767324250322289783593885050398339800851274577741093169744747296653625268232686961476191895080248363799448341387317318937746416687870667265714738434639111599036559026976693758737831548072775418661407643148850604683540791391904477880484136367622499944771065752660783318774668345567904373338351958788113844246778936206720495516040901515297134419329705731898382549936072051439640054987605066640211092796984247505432056513304576057258205310422801543464331285514672106673105359487074785897556466335025347933285799138090099270136010337674537183841930186506791140391394469351734603221508608647014076488178883040448400964187306222409777086378449480459335711278655548975956538622707719910955091105532763126355656743342201036956135155706030220611111174618184763080589459056491539411628741216757430002753180711466629570340580531443213704496967391643741947110032074259485310610079311658245406932560558925623088509934421266837173298995415931154383593871198341756041612854468886799133057852362066362701786576798700353284097208583714056891115234064712319589128232566368033867922799468983713792718184559767840586971113012317466458746794049087019436778421617533228445739443049877259080005205472630514229011317095245141580097784347864604868392157349180226663265129763829796127583037355238578862510667638969579114470124508854699921886496447322524967817859619081884433956537345934410398204948471274838856039740271531829652459569308473404309358539490798145465847473724491655607424060499132189880537292973162465024743026192485743654630190361368518172991709707409872020712330446460072298587705601579136924974617983207509722999692057684148336827085738656299466267992128933995655503983590341521254103909782737966843891223884663011192725860377794301318219859343122272113556479625591615200134273946993964697317094002963732980477702859405900297136055443993159758856481671040849341770196091039425671508983899905492386237823135314640821852006785009584126317306327506821764612970605951054574268390752610099424089031370841619966506408004422218557298924693634402841148692356400176597227728297202465479231562596875877226506923525799133820801000513883891352691903475100571455677277453375572200764957731552447399735898638907428069423034831632048629167073283137337248882369108540793602866565973387956381734980596023681067908248820734448196158962488054260589765221498400070024628681260200556349015832429811310599169680244900181879141293521960765393375402483079897967051178391900582230314815931085758531330069038213533882061256840606663655987201720492855055255610582597384818508398252170016411927201517067811915855832159786059618381705902326997381209998552957002796973648545310957053759626403902195321917617653084659637439023572916690120166464118910928718224202606828340397362535990928946147203094383388212322679268323281838891073106810512454271403562423733531807617601646018197784225946343526618012147502572580384898616715608498170539071764215281256973147492748687616622358131375819372293232881141010775134954014818413679824682304548500605688093894336090434200614762143064361493471083647027072722273064258284818587055518634200274781707094593373902295359088557695156690374385399472615403252592497993054149749459895477124682787136988162154429008899171681203307304633883312296468195683674142177501733041903979577069331222925282140085785162414185339939033321230579076396241342910532960028221056775494380168344368004174919329035643844678274776704314552551421594515659094052027076415033316380252523503615972775544960954125364392759272322366387252896770839522398856895332034649660049518544889936093727383743320507747417728843151042821020269005646456482816921591180345453362918295612752428285433755565854888518764837775755851252450607994551817791828056016633185259338213211001264748904311865108622968842125290957425073962517429873379263554055239852199485466343943634297647738608302660213227143166623399004333191923932829423298692316116628347619677168139386743606948365026945442494609145770142494084760916784134279169823495766867998640979954132945285510362128789867708162015511515501610045093793569294860439173528002428744086518095536203780633864067121741773702609164153152647210805292109599256986957504921060957758266288440387061395242279959226230482175482143525121546735202812427390819325551199358558177911640383346751131251360277413254706831558535720207545927564132206855619795272713013585130269838473571836006329099653258883645452564566516536489098398653600750987922313725011405136639920521890656276053340455002831403856211886284803377960714721156203746683347509227310329802887640171392638614378144531518397818561501697096603342550485781871645207603821440894595008209890415762494866995577530464401355243286043691218756434443434564203225696990612568599171854688752949340779116562760696406818150413285017808028743198296204545093646585191535890262619304472054805153951544259244492861940381790133509212551005898867722114477367620612545312857179539855372682285782949807093202033656003074051210492098710498823714206257569837801469421093700295769916149088415214850185907086395537969404711087226935012843445593154584610116023612021559197215620898716642064899263999275701676302853043984555702935494535977735112359589399768244519555932276791681977503493636950661494589582139786329695167997439239443305887942061052731134627766304327392146720293967381382541194085659020151664944285916646849332806378403797103098770087007273816648906866837084895014005247545051647146381735111546731048135651335011130602858499416784927290058831011966122817943215325718250303192392847988700433567217772227846210664354888095800570905846415974920770037566350946729416068890430618101562416782206829052263747418198853743254066385529943603151164364248337621204880442056452238350981552985703358914161062921719088877205917825868707442270522847067352771107881082739862330275114337464641179962717853354378384536171145878078728270333844691291628922190564101841872698021297546377750619710356153809617757593194726946786363568194239564525090744479416105703495563031488177607149144424419602237845207007910223746250688057997312932246288465892255572842356330225128631687660045438108008651685022129722646776502046650084730025459189342213142710398530616587149546476618615994854440282922687635416975382425350935067413086492940931369603071644589911688021332955802175093602306198199443066448600615286227310941705172636364121658503055104518477008816641936762778132720009533357446079708190609119875855130198749969628087108005239274192916382695184250847947210245268460260212757442150821274694238428133564027128746449760010944905223481657773737632548132711096496061210160399746646338691296028914153255045813657033677955933566341495029970987734023729228057295459853371895192100227394618038546952893857834976546077116419300023406003753109704709304326180895041378054728534109495222984606746799607207680658856050459896903115609432361712039920433642188985737785053667942366065358900043009235405894298441400040570336936698341133455087762049570765154136557585500564229445516604601627664446367901326472212578944902308136119708597286395297159816173294982503055644473692948704885884896595213110007339126990599723958426181069810116222669340075046694892675374630173160900679750202493148064862572466293316135058664439658897004156662501845192656120631639183193505370430975779289262097449316263823765061616201789559051938580964438095797163095935437980839202042411285136081587096915794198939061612021780463986355711018198781656365456576289950722202216629370197471427387040430420631095194037425525110900113092473941246329949054333227745987749024222983460226591310696504329616517380612938623972305599591104060342901057478121372838333091571101412565656391205053261035718636939862347403140686534791822370088370750540486276954400659960436350118875679945909570848454208916491022275047765041674368788735545471477583370964390053204034977944652723986578587035496740355079985278280403913695083624209082106802491998582906258259045483039369006470432010118184426438805104726410462318747325473783838639579923394364103155530425196543721600009109479993625909032451389065694187007909845786457200007134815689416800735090040363554910184638109379241310771653304514107075764434330733981701966922362590390345771351773164195060579180550248392619633527184420479945169651512943938956891326134569164274763113568277345691611384583021875232256830877014516450114758287495479467797659316488562907760516069463249453193981736478341786946456345221757695770119161945877235991630399588472186765121324676679358352750564468648228631344434353904259950813043895065826034674569408291411487982439283964536218722003956142297335375912982985603500640491244662474005392173959329061561170559683193748001336183267309649827679416636673205768300431746462592626575807658719738456945295523414092304955871842888843167095301884888076901739960978149059750592433444475014592293477833783710960377574264990430515499512165841954927481361280111904256346012543887296994019554865387272121268424898392831543772974187850187904107536462599524773581855564177137483278222165232829841017251255139991380922532237931641891918220675163154705050601116094521668290337691759750228584473211166196170258833666310773842283964410219556085460629340265000794441579156063256101963654136709473470311551920079086804784701755085310670013760382737329857110690902026847820729405207468829973093079967343822478295630201754135785336523241668564768785913374748861799627090206693990006318407089816399271338404405506662149908947459813014183903768471069155509093834833102654448593695925089153346908960082778490656610565071179175186576689013947356679612980140959473175215319930953213745824721226969568892262596243056937267976129853235050760352005806947752956970931225354395113205012382940258420813055152497317485692724522250293429256341334783112293200214148272539585610743389602693540051852801120984766839723923335374660396424862008168272178366719678989634222808947868913256454985066595889265644018884710287501614322618770235814323820261755931984189935147692157945830889174508054642472001856032291883729001138490727179796070734951815185678457700721477481492923725297839209024702398522180992719062258071147830663942511273311094034477235795752512032872118890341057148026168976190714677712514012143391877085012516497871992720211697376121955108164427988958580974116931247650758597275233842771373964645331272958287945549605404777068920991334739366808290029539076497904371589334436776061897086994566515719955138138439083468686738828010368984683369584911214211177765655175156854146176201090189555059677664312014570810444136195319147780127123893261550226300894363675210675292960390290350917038343639294705816964481968184251249554323077765529017825059007719487595826479130444017196056103383255892530144828072744684344660835363142931243167812604786366578931176305906993518017882141828383961793756681732432371176144135587542300603397340465985150503401777649612215994519095548936554925557114340985264277686579343708413883768823674714237154751481016198722331694554582945767962214386858023833856402746502476794087974241040894508966228635325275944740247128055649124369120936490268923207850443588713953466552352281113111738593474576473265356130969736981244022542334836146827289961334794154115841268955360262921496677512577617273559824006657065897994715018376079057905688662176431526928709054027487463659950704933769248920280845925038771414673372403482522240854877362766830833655949391895399258687839424962105190398161995697730822227340566611576114721060015596102554481172771622724641342670155797907872120617759495580546186305338886900054031788196851219747837071332732464570140747034203485692945438798468809694204462097155259507711015198996188052499408127201422927397597234728399342836299108526276344682402519335051438453813272909135896307151113102738935587618783376710357216516948881833031749253788847155991217771493363815627707287746756235219968963917355948350726439542362305094818778817222010362747253063685212922423833043084474756358682846826360834418144092208723490427164355387116282047067209084699782333544017813251777508277436433275092170216941999762302764743942883011634654226147079839188298396642329176352935927205036725813376200999926212880237428243150587462279913677891487595638777263642793388759132558773152848628615403665176463092945824172039545580428736192629163400394073015362792364894882329913389137875943803905105072895512159475079114528739031481642822740128930446836172422969366035570988066020317855335754517986495463367394283921410741356443130800940562168932533311337671864677970419979733181937474465816642962238962223196579094716964571805720789022261216422332116152516208634036522736306933284473191926317500119400819150985752125234698946696922961034870066294310227094635157127452054144029970562588493865873034806439669654393152883291276966829929755483459078811367651179079277800920025136627105905172311131821553858388467208930045565218893949037998252130230485141497078129701395332867014945412158270570543999454004331282891077355397927516051380453908117459312244317454863731215201658219986138578457371067702096549114735659149596862836225281933642156621662001219595075404461345365420917057797519955719451637840647225275112912500241365117683111564533840549733576775601820823838981178938655339882096913340931700382935062602817464043558343082564519477994848565220538464886085003249920952523883814025063369036314391770623073772747777064346889265682925317805587567899288884629446523664224631552986020423746428640031644169332181364485007220821276358546529644537332482063858882542221845387070396210066335030020431629957784679992422197904668134161995035881080875121031540740100817322311267308542757492540089921187838374918904476721211703522652838829902112513636416979404180920871542764542476029111341343255555568994461813291346733881475639826729057366056848727615972314130528872334231745146617899406958706373553979404831415094279889568017043755862254992150218316875668829451597255725139540702631448194006307839850358867872016689540732663363055881563996643632210655600361597356429425980149854802452202280931138208445398228926170060942508534303939016194796563030735313694347936634317348031340195456528846122728794758322438782327082217456369945905332357625039972495802305540852761599080071582945363494442279346170225138082720334200892998279457681970245969212152232490745228317543279021242946678346042772211136212250277455604805428663707036227267144943165797770393354454240638605891596334203143447065075621946590319513789157001100155490151176006509225922140403808728363458000855007796039632925471022136115091850023029893732096766389802025352501643630717790437832995559736966017722893429152201868521829417509577888246157865608941929205456047460571905742806403338641624312744632619553711801279729561471666110852058171737234369258410920840663255398917032334000570142485195915285720386368363246842602247169702540632167014953907762539007504541272909176749566871343906794770629369772494529429697085502350430945665701132329039158780183718691833951444630789816955637898525587874883041216152788629427415162700597300909159574927711209375270678055284926885718544847691446251644664515479809300379254837134414797319631445440654662609929284439874060167478395245549041662281637512052037911167583978245782712824922777224408147926155188479878679329571576568021905667231112192486736069908574177080123658677737602684337352002993730338309765415282648802297928184733304332517172732049033393058892509026747201527593679757837697619280525734821819133879357113828533023589914550377398165069181030155996937315254531766525910434174370816738268921016577544359545816813630457788437928530404905633838899896994571537920933708219987611725541370061458851708694592624592526709598927852431166453815366918799323356839569443452134693715262868224654957052335655405576955014973775599016421071340981637557491230818386697792967433973089475891249381792521822703346948111866555950096026658584367410911856674951692764782539083191600165117189279450522332353835522405305922730371035063796796921012669723872798307249305696123518829799467856183021365350820743249248743171915687732281625349789300573047650133531310700595082671529959956146004819599551243846547535512000779059978514131999505794461896891558543354461840947792122996759023519704376626578863292847659138132774186786286809796731915029583301191362256276856451784284698994445875821415369682120299025099453314879112551364644297115795957390776792288419138861236259963053137256009356993820404549459601590127118069889015338614501447827621927038125844651826062470488087508213737541128505660530011886472902972062505456959319851746265292399275389336950205229756859187757973979657879922004947714674237670398327005179754124767365633726808793826282071442624199582303655360374064522670753162632608874918496436309097820943260369634144200881378196646089034535505078737814103809956682443316134119065730443466743855068450773256821650194110151356770649527956730819743595137059534292970897675185535382474528980965094468137207344706689280252866536755069850968850907740141890381847883663338862808742546624049170358624366972155260541575588877668778849634752624011094589038881714975022426887474703351775040062257139395946685801907662505438615649733645067905504949166909856855198755986439703727875861447082231054332885752320676931890377350083004405673843572799661682725737639787005029346727746647741316086537934888273169364276493975710048427922974745305432617947630398639389405735723270376631810386712327311894580883871651768152081883287425285903541207483962085259746202809498723442917370209997224075190508343380522907656714063016856622734088006023091222013449283817963236719456585272081275417332701500269244948856811544405854497318547594022467298536002379421928316865205089813638171814123335980895194793587954006020353864953688733135940026649269713438767671599338752223501577999126758580270175075446250325739468982418863674491689400539208673912480747956403274546816230688782818725785787874396703284575508565005759501332604532690065679336609942256389874759665869696617028987368886025036364295774961472125339752505318871336024488250080082960953848095027041798296305957463115060937778501704706811228602780228242492776780756766363912327067462820745562095851769850043176157478852847607500068405308816791562222769593687499582797271367657964495037757215274050035464835328899567273648230583480245198593901708417096286223227137980360509259472649855488099782532940242199956692842886677057423408346185167571868307964257517590795345152993490992695736405595031986284506096438514310600852420954438947290578802922966964991167366734104660061167181669629901235572529290716197323033609743512630763182879544482605646271708928815509760687944446461201469108219691153144786389996388454995872179815055847601830209953751414291115538307328830032362545111492595808555983990653295049221798396550274137154374652992834318154126558087995367326273858971042601019653970133578882928633672518938959439574634216154255006911450135647011086795384985659473051733119756720929518647465457698930113892909473264855212160489858112528069509628123796935363194949992952397874293606914859418932586304011361830136548402591425780093278668312238562751528507455272870123955706481522110875388861644110169404038552676086178210030565558298827220932610756278626305226050354837595651701846394717614431893544590696641067548634416384747519327473350040487568127931853201151036315283025448401007921690078367351171152021154628984092999220986042981174411677959732572064296375201702226218382546227054467514951813133261781193485419270120552400407189440675398913117753879249988435916233379152171454285307934168456905601312054798426228190303101642569067996978797415502201808554019887634978769438264503980190752477605442237435600588695941800755393905600465610886424401554216555286069827443535679015055025243238920504859819327013193787656749053449855548839886470856257251428892254504554283647976550109455320791942981369753516389915308583186731066197320107893814709247623529039463619925555984709799405861751721019787577403151240577759561881385977844088090818522810609877595677527544347922678911729407412358118223314198664912720352269541809034665538716656315530919578008099621473327395113773440746942879478594169870293501157439840781985305166154367335984053025930879402734755019173699234597755826392421050654751154514011045312431893558190529650301713600532832761331630785015773459667636694546401404466284231646717532780561278951676546275286581135864584468831043064466187774090999167490712440210520605301308688283499993445142480606688797819693305316891344094674556859910999165704789475667672750791699689617367897426329308759293576557570737083723614993437411880196975664785124543757152532851418386751776296144354236332869158313789163649651750756416617154340421340229752413854648200571304960479017793140804184313795166557338414473573379871326291005005447100581652781300490321370544862501717265510954825164185249434621496470077946064751432035224820180323492578528150431148276902800125900182892042870549396819752289993418429341945429651297829250209733140489840804697128851483146046053994546031095424650239417336089195641495292021214739246234656363061562326607608783518990253515607505364015074258784380497769317076597578848702562619821143683296701566966081067362581707033436977515719434802101431537090441024587226120353143960258357864685922614728438164647419314889387654926630865767191493033428287485618008452440936929957865339131025307926708192847265784150161548611257029318637902945914264766386703116600387087365899428973480108386224242304458905617474179205590781669111569111849110501753614225293076220801483444804019889157449952000195773694507221525103649907672963155598610932905068462289519088874638060791678956959050154885179817313952397745562455595038295192962540394263503666304153059028487358640692496541761327192185594267869278249464217686697183498360626018032170887852186214032723175058170841604554666173666209044937134536386074446356887082351078588133040670329387700998029049403450259650358752048768272433128839346801198146898867928395356415474532547415465325995390918764960642211051757324391166986016348788387121820448246477342455752229466441501438170603197733886921017201986214791512659276500716496487193408636675868041552273849156043297812574288454141306380557876035586192112383273258529956711834291351842036235816923873114971076520393278490986132447971788700374566510488444585569822434600952744376818677000927660706150354287097418907110857838436288917072144330971589443504627149368887973321572925235353264246093058612837642332891463869298177556058807062130322268995914753841580371425001504112237830523205158784233057624403991954694898776898486262804501870665090078374398670329398087901579031496147591888816079215807990540933426319172689351818831837253341820749658557695752028084330227942141870336928311131667003144656876433761519521511902272787820483487649203263709896807586010181339469732458255828094712266227714252229501541572802190684194363642795854199164110853116695945564363999247351940298577055489185136011913795827576451914124349537379575467146776078110743228898990628078297211286897376449140498567340475815190236981329753798029263468482730746550284939352765089799117715856256559280021311455071039533402922099760992161390880683377576162088278071396017327170699394374986340980517832423040475610099147918726065841662089020382009564968449386226256441594002328262148348410613532421385477847409988475486179935903303107587686417025232149353514914877510001109979992437086364491670846887717217899161881874781524372217627379240922151338780497781140688194588116133996968606318480558972271622308204753770187216683571438160253365390883393163226299590443602425993073381195932992390384164080103633120703513162041951541309150658574502226325901606646824808803023163731140581008075113606552767680984639749054510652641986987477030585568525049849392079769490856618552202772435861061792411454000031213026782450450030696959183832438115333057184435308650731452918822063160840618170489288386333537264088189312016348173764894821237443518823858277802298284842444917000799942363102224937473382603258771006507077729860469160385701438745920036308629139707352881426213335904961695132349403386315681132779520814554265400433163334799405854590919884475514580890810515450378182195075284881285543593769594133179034380839841649821015953913468194777511514886638411337187058234931006813608651270812641720086349912376820200803553653724002283634003217176314872755108497798482989107748409401546437591709293662554778808511595295887976599568448983396876453246664348275234484598677487883628910675107829145887680658253619656378065138192228909370782799058203829284762830764266136516025904114837807477847401802961954639386899998787558030850496141365080255414600944131821313684314976826005792603175581212827982094035760670763706347224344210811299368142428766305546260889237427159694519539044648223318131793382344050248935407550141566818174992583418980086334666266989381203578689019292532490239349662413350509475808110214472427075390520929287311429609188120279216512256592712701199715777713807743302740599547728686093943091474596058877945473783688362829536511045168055279412261355649114797463808318280641993058672335209284869564842674449622961274125723404143668287853989453214655820556102679709326296117268224246967416727955779139849686768338535261512291211183670177178998125717563468126652072675607132514367018218663676598819440314963750718559774914052628767845382894846263905536924364770516921205324114068506273425406782001481712493189006623164345481071063392236604564215948696551002246478452068779704928725227765013051481193642234842312266738821172532010433002292196530765742462292101037834818621172494296845024447348897938564001470207954072389285612671365168398391776103293202861197985681194932836337151301643122233884413716969217218919874361737015328262352800719200869406277968053478527890661100411627619521828577629525895133847844128256392834313885158282546970120674424964673099222076654235107039073285929742561242836136494835485264502446027939977757427907792779412381295212799273622773127440579078058597925410275044854521880132861128277716766518383479016498465931882210517067086258868425692308931892005940856505504545330262913937630797693529939138632467936573131928633485816869508423601470601786774901594491748243287379066702885108536630180034556847113811005850804920486974859132278464017663562869401589666763149715617751904563812994101273401153343684863708809411871176621784884465525269352566066398884776591776776370109878319611514319628990801987401311916966701112050235664279392828180311987586081005291150712705175665920374035885512205103994299168453234992147691731381875739125929196175402438045367835738710706371939619685533326609245465492251467176948292053688971861437298583449156227801532158860308264336136367355500154547429876831425941082342626484923882986509320485005997216781009761076474576176501015383034680717980835566887611911573276846185024483582413033378296423603567687310504282720229661202885603209875434657663902532455899469506386551077785828627636638286219530737415055451303470502290560930951199206982526691401547773803012415751489568015634076217388333695693057885008721441657994735954532542213523047323377030808997285382270037685287057368128675428932255981774034441116971915899760381215114082618759119710179761970338330283279796431867886781109207181035624626135347335473499520299560838985720602668650105539856885513026907267137797102240253568552781454805346505159638137416052732055047233647267196704863549888019667711647061204794708042812933146180716512830036552704594169555256725074211967882817598612078795098512465355298725443630922384484480974213504539240946283923750539789271131069668895625284332577146442972297194903889737964715545044633752283086985679620039925413316958466820799548786419161984069201039851147143897027339947929395044111746681405026995238155543994624146350797509628908889681036599075562705921753471372466740924250878297160832791320386232933054535646664936548441945425683974228371450256327275704091655707713712318333589998553758656552538273578109063603053747995700802803643226529088213037524508623821770150297468118676385360332308341000369151722039824447814160751247780747038791560474529095852410529640579621514415391167459163761256537033174609843792920138091603661386155157613832215783562716002751410136446895487055124704191813395602580495300495816376836885309942955927681698962577163596191036809922149566065227307049222798914194252262725707012496087208145894045432694967724265473715100523517341312592438180449384906134145159252996055162561794296079657457776718053491131509111537843037934056577455133531776493567893946584979280346401747573745116651938408700604507320307482507577275349510995658492937260179956072025226263250899645543198221501588894779119785462457977915159583882053133907693950444312009869683747396158307966856511787126329786896055681563110578669402679567339240483766643954765751104169908442232572488079886686405320013676610825246978381669441174312598477180201828705251008749129052476200676101016730889251088519220211940392012369854672539711409431505637384068268246651969109927931457061280731071453526591524624074510586241556470412987655381953962892333347998541106359473669870010043388423008612611526794821644348981274484940376302995946568340535185817347116375317770881462871000475244587636628942794830455622849847389460765434337874119597344342803628666202107501377026367800478253557730578969792944217462429401901239132529789175533315713597525684915019740293512010873090535116976226747127036957150034806349460112994220587761390735299455075495847054471049383051834560198917085740115405886187703957891821117280461596580246059105145597480282483406820077531875572419539532915843230839139265788322785696699414530321263966895660625580620877309409475864010463598728004219124807921903852741582363903005355211833489675237610389693946976210797631020261375547394625337779208609052905931823225595773399738976902824535807198864124189052894212470400226959885253398066563818037682128725062848236910346101639538921691535383562258466061051952456031396678499716224431338952531417784357213763162710589655968500405590780969514724145328778924685164607205910811184545217143133740896869568611685223748037825692918443583499818220199876225543270220286649504640236727196909430819671548179773006593026422423825002710029624510636034380725505521458040834143484236709274433052593696523639904660483778041025057214482850347337947153548568915588541269089408355200748379827643642891936217112103555823791601364897242976664770262549794861140527298761140959217428562684239154556237288169359454236313188587495697797063275173871052538831047925543626637987777160446173835486164954903610609922879802474668199856110754745761155987319473816046894294054678131016946852774033290022400446538216482428129122413848672249310436876235923200385039684030005396144125126676376262573210556785252687266271345276792063819327826344319598075968586051181901216072692656112147385574040429445447912903198666064714385417821721399964357658523955265551116680234661439523296660432162710654701647328795889199584202342990713396802490482875909800126650748644967786237462186844719154648114372270748880994819848104721326510029868971871978669335814316087746764035112807392166411844746185751090244457332265699747669045527900099185468697925406883770179270422709229733932636051617019917847801015936989975770657465189805363890419799812009436004518261093694812581521460971440776702023499194839897966198592128596564179729314836331912695459644601520068600930975356747664057558515221540067698728042845713874415563096568482799385188228654569867552615003741182252493095904395720459971035315970536207028801223802323658118052416284689652294514985977885390390890620552489522552319582966256411368290990108498444533468435415142540141029419231364730164830298532416286299179308730704192613823719852654064279704438290378936682142639602071737489626969722116292279847878847628053838540402746019762672478724631300610231310519202239863665546264634765118563078100209302255180415102063091966623687338462727978127528432376728610805104400704083748622604324025339229757476947621556969930672163216771294543275944742245790610044412845030112625480986442313267316984603702042011214490481782225006770000110641499634028599061225231275043203456256204033470500038287605895547646946176173966004315787722860700788439628381058671021945027419390948342481530105604634987488616759020635271290932314099945260323469683008481972900311832407751123416112764550082215525973735383200867747978697944450480719237635080366017481578479336335982953051449401501353892106503418582173838167626195192721879831154874332680978086462375648202986520065916284589567126551024987761295843787414645676311036954935436875668586147326251679568933284134149263955171208179615901580716188238470977365183162465944716484734271766339409629611691014236990987441539090511819922748084432435276258350208040543045609112290432570670985352298256970166361254109451721660758310155466696884014268772304144278007626391857299227819878771911131075558398138147982088546861771048538322141835133744153781796239789814735755465936000626446703629961466150084857221138918876178812703636044702314768480523683736957680460984080397080120807795489984755143667328345021567493445308693474893453076034019104881013321479164964521748631721923722301523487785042381231609991189849309960569447533086158824540419126906217024959415637244681450200602540819619234248392538894788430695929222099001026480250350394841182589174503828839483041549000930829074212713402239786975128173988779197058032789950001168906752228496977040101810706620398478132794523647587516995466186627436655720493435362923197296649309857423216376874752207751528026364919618757881248515414408456936379350445107960707905712476804995049520661035477096515366999249792721729705843555765083126371827329339761607210986076673607978944251813304407081241564278313180901633030114209629234127726597625390851216075818532436195407681668739288464502140470465765307958875588933170955275340737529848005281412501629827308299015132987013937353632472861133369274893324852533327235854022090901758631187356532417752059221205249517721214941947786633817305081014082328524650664029424699689705712428262275575125040233918553361786915722883284062231437506245376951371890334616064782153872611943142772149450458506351015136332746437859864271024495968109503325678927679284576896847233778948400160178816821661891292885506671377605283402589851004586231748835831055339656366875188561159198999146465942198842827611537429680110929395090240996832523924356228069758232354822983039251676524765074055496618517743095839002681296574885446996481984790375674497890314720757598960866336144698475134667399600948020650572909138119482931392054031832673250780818883175079002973067915607878245806668569882063354025772996399777987298157915189848720179267169547352569997981185107873089963540501315415163700995321716960372018925336064072527136508111412874042242543888410530614261077450203520813976531422482054198230717720821668406629479136904068873975616630472510467857345005036648042634454050414550304454856823177058279336967056983754869680293754376635375839895827472804323213095309791452677261434086628108465233798505173722075931527704623843400296383546681330388995498658275078088044213979576386513974663199975178685833356364374095389561113241531371596324673538415400047641602105067034378860761456047064215554421973453998263049890936775245539096710818553054395682099412924025384583505905674655513011060765216162301081919521582603486538080228596421429507195233961996837597339371658075253365539713271056992114703712038568819448955880571667167527317291485067746499005857429718906489181876095432645534111438398834749416971989542359306356899103726733595419742520394614816257198236109214796071904866460045827197424683363119510806863102462097916491895902556189928980092519581558079750464202730292000326227904426284410100599158909244340083959767475705105738672794160067641499095780227805645469643383021444868010915813788246355961490109899663513174530075774662808439012093285061693506114117769847722513088596395547227524472155421852109863645495101975157275081167559714038156305309216809657716135005346640099829814031690327547952170284540319988059022102448299242998991157535777802344616827252286354102838424072990960750836915737171362798467225168273315828902075649262229637189860079257518806176763977726158941534866124207351480680376163632450996404919762888244872480890650671396876503885395934689313103091259226980474881695722421948845151081059810733022968921539466405019469457563709548337419225740760662251658763923921583059765230574921356839893042359391117467992758845453257432390389514919410493256270984166458371903985534452356864470560852796447530260781963639364061340857458115621591698619529837320177440363957497567854816343086576234790504329909962363406537899279250446829008579023828057823491853111153349622204087216426440382100270275065518380316030504538169570290720638136175440154096267315038826267640505414198751676061987711872020999228583468832175933919465114755116484117612533251726197472202829563832325835880568550583915216666281736560439478159624879970514710779749583973036091089184113364398990718009675522907457456034707063133744146334631517291851147878528742279851810754164740275457381143003652260432195978960863602910573848777198843116600178209956966285105280975271023243167653103569673904405033377142242909570155869335416143989803049779569182166887233612114876389188161342203367528842914502158943621276406242333386961724588638886352318207660233704810265613404654250368409838008131896453840635908956008343566977708241410136787955902903298587690305617806962563628865148549454441523778111039063109586780018851067146953120305166459529789480576602950990540140596271637792453299073459060277372563337547638211015387918966259670079030137901976905262443695105750861521093438060888970593935173888779406315897885095188815268825141957054519631154500049518584199217676600248031406896974084179921181572079043347243281780782223006501106611937424917438534759607190214482944552202099644053363783177934818791480743017018680254666370462469769497408253912346385611369985082837835443284180846011219110018960656702109703836619947622848232761768384112066981963625734994102498168186426384172019759172992069364516827326394295928095278830583221217336165954722322258438027665449481424600028030507708037895834902614459350597448661488307767287041616973721843237774253748272753099430575610498960681321942519577505142453823298599509199079485514865964866922255879490448160545450963006475931011094804940795175545609383415886115742470087588811923554245180370332939863646348542618479809616166596425404608736200162729347900015663602544329183043204113296935130646984348788142160859407847126781505322257165108042660347340832214784852512633235422213313260119449429557660786678868254530391331284136508401353238632389680899230217152086171018088590832884947933052891782482566583886593350955820437792856820271177715965261429986980416374928802947994097921218418532353288202455632347285344556370046533708556047335799541861260170784487381932819201319140217962227184243920965278544582523943532579952418252359695913908129483915849373329099955540495901330854104648142151268530897549290532811631712029829546142572680169173283017257039173860809982070216639807652768562639152812548976619462104927954083823246106607346348757453893727112195969051670364871753729995664194776686024969165334540720054489587091197595441573878685399087531301782980883441508015597182402983428835758142921132391791476526499736649918267364736545681910631176296173270304118354997993413396281417514031380400815589657259248065248425353413570248294149716027537455470391731289014708308890816377639532681677792466830152581515349534815226321041941058017930336341910711856971443972388608155062517091904298727329935768768885332890958220367534944093014536161364398655047361488115940919131913496720148975484916985645610559455434338780955262409616785767628292163649803634359676577295259037172807454045752867053884373980189853066373549429062393829630484210452006229148561845310212812666668453058602346571210556730427701536064729458007069444943783117558467321963335171376090766646557619495093895145641922843981930119276389587507027583396329985393428823932674297298556343521758003735743892517106698280505452348339676580787479651354257605795701084794520364678718523203584397626983679107589462586964099383178552457882099044695078051539547411562361719565572942416179820054337269580083198018622624202080314991165166275245041664317320243190690857267578094804897874528936639342892873883989168472728382959751340513322841797277721643078448491425410225619532442846564930832014363625686858667598348961108089125319997299455915793410389463236098422580540268402488167250284516758084962665626492342611019365925222122180010268483687180651575499380103405934695604754870086379369788696005394620377361499789908398145096772336840337455579878376412167013247799118726226810838611770493422659497469995350025692020997918234142792689327845503332961580159453556855901190274459290243536970933204456435479151373137938310117214749578083278279429337533877184814290780813602616831075793547764092082691012393749931983935912316954438086738370183907360783786780185293556200964944264554893545923451259282432026088008153325239319616971685447340344649831823822341756721668913318304499211490608614503363360247510291351751412595250416045947396320067135873075068460762453423438558091024577241119692969644103159757189813569803733455848274699687327772861059013120216066023389731205898262070219580962771689237186549979223121200373247678454630885599696176136038089393554870965800354848689180645512933235375281269234048393907676757311903115580590452754493837638332087707895310861390755385795532704929913300678688432368797419281109515399642786449234480772161261834936532120084158470543911157080008828659536557234727046302669757383860507319364509595743213252343301751489492767065065390478590869252494651638066338717634309424872359344334555294556549264338400863287554560661931845331466706707796643984767311638908315984584505023447772203354710849333613025455319217750279910722345276830158497433227477365827533556372587663635943521464862230517676391195848106391805741466276945186323982424858771938267752259845922308972079297857044411211525379521797709921290696227607756079647283814158895372222500985940375979552363823766742036788777575958357001933909069619501339824529245624882710476247859742077527076829768607556781440382145968184779624831985389436888588325755200765023126563217460726440518982595529101321955592062430539069095122695757903365046689912043176917775537407383308522019824686402374070942631842420592354266822781974311221871166385294715502574907894241296259495815672496933937612638120946987463506380496777028450319967775054453289681888045286874754081970778457992503402128983085527777521888177204004055790774355262190199396991354283219746035443818319518481141833933941272040108236828933947828662547917233584562943058423926922320851642397753227432760764344411963903546665055885990374599065927022708047997326887662462653174644034191146683020337772311659370505711733641095564165953945628077389218247122907969380746429284178532588944020873724134992384356482279680651831549795863604083105921119152331782334705409255417821610256753041787982290854640487416116076877765055733929748134078941856929334204284731892918217473610499860028991933022721758394677081383962999349342288350508735852859938270065749224118584628266700546612539689462563797213103715302270253233064755435651807427331771222016015890473077373053361788853371854637534070838477403474493217622120025059941895050760283371425539406070524656624615190816884650504216790769647718235987244164132143136056420491884371604076077173055389212783462689836754311623654988043241905105737770520661037971790004091127253921725793636177870372914151462851382549677391012135607948664522259951129691204238392000526372459583227146766651046862686615201055989441804983340836742047432062335376371724143209682837032368598450088284962980615549004163144214266385228759395342078920154482862968461691942760590493171129161874334617811564569076931531822476709782019326429168379822593821960867498907179777203603514853065476592711072135986296470505279760744987121876709495321751212352930084689816354605825993731895837392607103223248110184040252904978588736840653497007022807850544019161620933204099270941932679786709949024099365159817831378720778489830030958397741143488955487149975392146472585106876485449129780777387451272412150827348159938501891351235520080462194697861074347467123792166698804329518140430040632648456556912802885843416078790913769937536266523046668516014362720318185058993965798632603893776310756447032142165365769523039649926691577730199626442139041515733539402384107139042424051654037007883972936018189264140143277733900639214444410831189169327086383884792531696590977602373602108048583249979885720329378724746813454255598094425021138511096514056603010032548711646208230582102048020459820666511873120058401129532869387824821607402719610944003127166317969847968166117602230558151226691901439185784430304909399072927725423104454884046979479771828264555266874209160924338287310117034659919347411665430731074707450014737643218062303830535923667982571086588399869680638123548884138981918389698778141600458021909250090199792537399445427298530557945671792421176726991629338832464423381106220192915774272724976879672135095906596211923627376637069400331930616250526949799350739033722093447887315845669572575631591798517507386282458507610775831503395954942191497270132783013017666822812094895206561742183184889898457882011667519136363069745574393908881719159592659696155961391988528915359415264053742445537036100190461054432182866895850944688275614749760412423275948254959490039624577585417487047252490726157480398974249225242406469796984689838446917759181353320363670280976473858853266850036591946208915514845383418544543108344485621527095448853889677720868143345094075584389979283304471808924726631383521263384577355722633730090245757393199165651309279878881758422053048337486821198532970189441696668899077425709815362869187868728131676082570200389904975163038391988812892988514821790021306921117246070803867713400836515672544983985395438599992954421011656314930367396823168916060787688123672227987908188732154167480240648753283158912746699375539653319217481869612186113398310280450760947006604485917711403234508894660876202377005635626989008076802676092815289870622116082080377791478679990158084080599250136445052186604297939527116556319844910677668961723721613461753398261264747336911734257597409348331291544485479228132831857071249431953462040424582227480409377788845846171192225677010058243334312134673717088241958920756498848171342238492761818657888635934237858141686421882331311129477861116860713240795054667117890135040337697983366011439489634543645865778007448934487178976346271179169720360197718763349929420634636562793312901422545936600950238113521319962722987776351400544338964403032143314400160562361620967353209853873460657992160512349090676494217663727679861090454081440572931877237444791899611316514763724442410275577149532873348654857270865478723135628303591223803643971806126961276357668004900760504177273737024328256176727372215875825680713121396097513618816609840760328161171870272194200581295676370493050840819447692493633353438993085894462910213373084364615067522495705374859024875160624879809984885432468818738096297976683596714734447136154743296651153379366453135344861767077164918282601983354566303193444664983469807681371804609167360052269717927684917742722299084434667445876834089593429483306601700257818810757144087401498495890056260340407542224953623106768231807269194816916173434258537954409329225904325584232590059598967180399284420109149052721206638802830278456187502068025260146895613956669054711449238994124595736277472821134971338305687623885786923258385839538817667201742716533899567054259492639093833550069925292809723832726925716821818480424446281044640348916410957164304694525291690893734143047587009171661333227535454623089378701934271346833136460038022876039138457725091053454152809865516427101435104734866536382409801716786614862517071586583899930783853182499039304916731037959105565208651054058482888204038295970390699075661956240627077206715180142734278677554493856968704655681382814345863063846168930356970132450078350856183281444698338137239531311283784878537114370013501050216148437844698587403942940274454434899347159375796939208450273415375067457758373111419910530139448528985463011060910994976963206625353389780109135736738122518778293578624359032047619258480127479783131036455701275079071522174925187809379078399961584048213199005055995719539943069588333368718551427784678904330745022484165709456385923897675467441955487611086235643104041496420824522513880338841885845114024327171410732587469463357939999086864769999825673751737220484191242627654556533411869159506323128140615820516251630040040058420427697491366829045967715081113697377762213618412189947597447942643140120080968336130687083547180132095895455697936343203832853900716287377037347552377229198100687002389572031151042793070128674948081521201232899654198270168171574243005580771133755314284144855587846987221081189886549673173825647716277962114736602453507569246506082313164745775072809293111431357372969786162640003234223289490598905089432772195468282200286347715776686106021058070674667404000850871469665664830099771467315981936337611690203734491004627526674065067758457486166170329749289173896497461200507487581435683199582351780784281982521677157227669365108260631249494901386308572470968690397304857110330180582192039298824982631576516662011591088600720873142082176532527428062433107114064725745906988767658117548432088851996850076757315242861169128055476008359689952292839362047673620276729277983533365497909548920424624921540741225919083250362359142191744111053377194553909845714235878629149955617052459475585716462830783824509225038348230504741624965322702110762877305398316486214891600234711414393735793215762481717531967049488364651033794084419861250805176510093641287927884846183999108315248547210656023104062326403157871770699704606507768927320899531144580281739918673186078341701163996755768730078564917347034693352392270526721195727452966904481191603870003252054776008159183755264264769428239541627148138401646679393725020971485215087046926753408281813549799288325000156366265747879072054164758027409372508016076542643689321945581053260880556703049003397218100611886658585822619716443112058626374951337442074086629525240690819807326202418706708820998686539087024430918031657527189478471706482540706554473858864056374688616621476883390994589964473042429470326961019690533103725912005461357786954132087158827183205807374724540158407884917270959642807234544516257849918842365645448850551673185041395311686168409292371336273065624380940152632743405875943420861153050134868649009124792755452916204964082546287660023927560214340185174846376351175935626701072362621282226437977331271773339078864679169512391945126795293214436413214616858276346445120228952142879266178739859886800576918141058227559075020703039274162277585171358172941565057477581588005506742378957680505091048666097749291883109931817055278045702790604253846400451563446445799446122405723379553462836483484619722615877932739417165097383131417661259223054084487474184148868630212627726543958901350381850436137832694590579264550048749202201806921812447756378238190131481365067091456480221167951363317271336260053508818092882195459605607961245354048584259032770045656473400304129628181781519275233778153551250333505994142976320286740948132365694618594596626016250024715764477383791445376425029885502650800917991911932935072099365750384146990805745883483609763839346296968645156767742698038419418482203846219311625780951601485279206913490645866113835591673739656877031097868718274788001894549442905500128981900492428417185655817520677123238301095852662962669731047554706748947958632180816452985598218930872189436569689027007527650261988079122008360318706915465258652762186800991840220124628400336451084756114597168707987491627799323358474361253348083262488889841635293847163205445961266661455940187478662936956234849563857543093721461323114761618543444401068075611401268104975920509844617995840406365835906327903932354645710795837614773784943017707611252392103780031940887775173346963586038505554736332826289562903310321715029577967691923450378206594180969977119285722158721362770251145679729077606667503908365100129635717901513254833301189532582708946109502773619885791870741454589945779585734026700629351563089585297977132022185121412855462823496954312583979231274881176115631362201813482307859648090047353533716799480739622168202438448238668224154468778685205432099391638810545072522479368164618083919907322408341482072985526461564833052993412334576553068692799626592244993518717713973378738144184728867846382440467145219264815119328824839941096111683479307862791114759033644091210786706891262091419588032182752139962579988247173003711167279399981244108379512938305019767476498680071572493136297020025476427027678714203277729071092025771083064975396411265155215458386015339008283012100098509942194998370830040100278087107820125372305728723022373189035554243287429164434136358687677043297607424802032992303169939314948729223851793753211441769550238109724694939927085058853755201312215038164226713833447656227216890527915712012096479637855386167714462042973420872568380817552653473357327894566412352820533420052912768160738481886202608696908836503060841434642681165713813354461190709901064437427638183686723832825285318416896679121041981613426588398651776995642889964320283902519593622958376695729522493279640875881896163411100412249562505393569811004049431074561814580714766534672837780923139033326391898445268632935409055650787128908722864003580764295430288904346169894040735417015968811092450733000980679819238244664334449006866556785984271848459217389812381664324098347938925655864266900150999096275708872360829994046049524153284485336168727041791637031506722560991288154194739215805995087471747632225964177622926632497787772223932114214281411485601134787633028169712297962586972653536207169076723316740209226372727141449706747358239600602248240964139108496396262049044192560159675448351154951072698652347542696913257539511794672998139850721802458339276808070187287423151149255595756638670285091209911995905364124183924303673142698612025796861253196781655852485569714763047746947042760834571142727222413749559594646281484390811546347948058476745706875927891082877680287082953962733628772921587772631322705789975611188834345601454976640668667477014931150820621074033257654237533892813757818943830512729232716463083389660898099600738401623794172997345440752077984968163378918483390173431315624200985561487042692840945624775761876297498860394483452924048712007366371360667510359911589790387931602522573913064923686845574380051051726828952228690600474311061607110099104935035374899992392820504247153313367319908741898536871105603210364902692170937289561107804058301920370180736348854536580947521623787553002657991578816111208134224595184403427610414398541062682525390732701229993012229107988845165989511853593617912803691647545317723032093724747114485292639543516515964969406260145453231812673111327797016675004074728780356263009558523388087512626840529594651127786485241789856169012125723401992956049228471221437079837044824544311941790369661755620853439292261388315824798264144521383605497637419791571360871751552281889362797009178999770444546590151689616390221419392768410711278058453413960276516325749625468693524872497549371948107742496216493414996926886708748865918909309354911114451782378543309748169133183427430747172525542399595682699627803567198896372568086608418410215317672363472322897463917735924345952213198469944008599134594846256639734725428909656914478774853555116578017990861296798717088551810358134269180787423222338037736197548576485665106334368944342482734103975370254297441983723400366149320026468558260339599165252377782435505717197813587025160334116095497271775123172153631937442948892415252798395342875396766860577336237710540080357617282224851646589283337355083952919163180673229193976702887343435764059240503516573030154207590161851718031404282504306184242741179313238460435332451545587884503140061676415790610438093270085226051202380655178089313190793237848365224227726960422834263435737337927977252546537067772158980748736966708686028337724395415698202329625583775034912147974051815197638775251662299567652431725900611135081760596173607438093663656664886762102537470082421349022976876456530102931310926729580248702124146425854771274883360620480559463090329934474275873759681166911262930277929762027077174256151607442378389205092045101648150911428418156023959873112104971685923198862096510524389760267252438496141367787149124312844680839846115866250837659167798382973365893446538457841955178314022489427781930610423386824087550863843378950547474816106002564706596486904031520973938217838840849337514103741143441242031710186035438617078342053369303990017544017853324518018005340173921008986282716830217712336747065481977863190318616799981624668918749079628689375363003261070878211550493506979857559797633003450436856883717037669052382414775690144188035928912882607384895095146387770175563747303608319706952445023018971098857654828878646708871401631518106801238806962629155348896613442437039931870242524122911575685768439617372414182377418325636671464593258448714786953696987370815590947726159887130008107002669088319031693061656826851058348784554861966822497465662045029032179862996115949940399178257177334288767992086993875350772093123907659310698251417753128130365697220511360839017143280602157894341101999866716682210389323891736739612475195104579106367238195919738372667765326228109506363870089903602929628588049085293036095706055730387274834927481705789649605679735021367964427970621361646144094614587946387835146832488146660511468976433364029978985202245741618966814993748985583655870472033313454274309689886176799434242262347853608614216110831550647388904380792979599157268474938142780766445292836288405044372430072867032767657325973898193313633406107803360848063980823445215933919058241959958118260950617549773170112854000241815666408414815124018003976653516681927766015824144884483939827646273266133125826250388619462032738735308458412835686100710436173945258913893171261602611001025501242563435956952773143682121520634918706877926329721324696168397680232468739736848460550978825742134569843367511085341108633344937374764922246948653251394782646594601187021898146705921374990198297710155062597512009868934329262158976571789445103741709419095302310784355838646093864266606366965518017609809565522815030986164298059704356984035017213785821138700250900561554539218531728596701886128261628738301149697510036668857347161200953685075737433876259230092956930920125502309235985105794528750889646352037391973600050881637829123026948357560892798688482190249958848951176956202124619346395524904712953861936466006211783092803354443529166485180193854527967295046524909948410699733996785021490678663115740944981158155118088722057610665145134416459697403134294072131521595292424466783911265692316924362008262256399502884216255072696800829363335946438432774396595904576551090589469968089090645057869488297240192780403838168544236127995814803424248919979659446410406137839803395100652218170484232753443626309672054087669669694835822124472919203945248590181255694646215136990874611146452308743230651417763840214867603902643965322147142723574553963893447779289326548928876181658871994677343785541210003756733719424310099631036263874937008836895238184423167210315055748491471484901162990892511577803183430233790963671840090949392155229975278970117520216892228035927380087153649122870704224659164814006994287346328976170517409093033707132926768289172344833793272294051371205100099701707867412419908661456790533865434883109861756906416330187535867645140694026501329376367652799258710351618797972912140340937752388054639173524526219772609991155624499620749656409247094896529314892901334039165901320627377159754262960693868082791763233561571752326526875039922621302629326669215767172410835069240238024716932464446624958177196545712473524544892279073243004643914005290816792973160647249412879871814619179681677580969652851423751989596043713144474393825394990252603430180636942346881128132838824200014470418680220578299829834783253483212161611644156670203378313479005050085051046405623520478674353408121190456314386030492258059326438441345667657208941843321769534001796067423350831621435523777396360183877144026873059906014541544239256381241348728023871613058765410714552861954783744394125138179386539053181675223870383630168233340843824879138361538255985913487070640532932495752847677187721156163224200670463893131110095464955000325883469159670225031168246404334447016508361684462487949685299017850681942644274741119882315111559086078269156245000593175372376440883586287862644026677765988335563213811038918184704465222134232787255776359351465517455789514055371395351084870844038136400924884349047787513589049569359594812243474962354738065186674357396920433773931539335613835451722633606194138277987935411272902687136327871773196359984069829161428085561691939312871215487955690315769312640360392523906761396147152266699717439833247007117221396863127442390018436956972505873872526437666263945904947599013237784171279473129426379704202432834841941185645903141508140385403582778664985982117403844463377132581984993733718627805872639794216311996168030784214474584257559846777689570947476667930768479574211552132340963888313526124092531232694620076963917557990355020402515681203677197326294016353760792611494998703418291925283022756968399998106939226744768676007102213885965614991559597773939286028772345778848562917760236044693046834594159640680357474568436040094791726182096048112542395011904823034955350609401360131567812924474349111240717296547986954143890975397228611513511469727351317342747812116340987147699952474594006948785060330735563103061726689288255529129269906363677932961325860401216436812809857687076231900209214143674397383528481843067932457820621661735286529930460987623980127713007520626047644767963168044416128437033885384981633794649708202846962292802777935401328821502407378368699045597621079082573908772612469890295268453156191059144981058752483390887206480698653796390557451660451520569519515206251934900694772191128162643871551594157326448366430826340380571009305854603438375760138512019606517176791131406652628406887846988836218635288309589285923526046036087334870805910068410322067840458898514785113075043916023703358246318967616975503998812061636652069903130886029858872801512592308935299954609916435946020351235979076857089039425189405576847198760940367034302720297144767989258841372365353535965237303955664889462884046136229277194097090496157960209818493379494059078569814387920720117453939470219183313901193759958979459390499502677101745450855515218481904972524426663164134152921014679507966949217341224667430467205342667438281611427310676621425326108593771683940901257121110638595298252776009582812846328780057753590228854942387020103403941843210250145563034716493708245902348411460264306080987575906316254652667436815511032393130023139436966688245749323495959178868801117615308901280668653748931615034805824051261861663715140524103472747220709448881622690225793613353939711628286938492951419776996889386184993857085755267616901168250465236881461543419312562743705282451520663015317098984527867890960400985629418588133702636593615043947579737367556110110244560793928465361757349075341824606157353529144886035380874837820513130252866780583290121910890816107906841450427013639510725977658435959628691997362519505834580588850972594095640141481223350752106862352278000208975640883144075120580956777898790234078181658973500604409189296515794626660937816475646531149207957066125852734908135153923264856495147483703797594871898061221468047494551351856902922657903680074430164751850340434785371268815255439676754561392172587556415152829314866252033139993809317900251165299840252492936958822641043122972627931194376644680848398430430746842419654220186475390937680817786211595860570379239574084592033987383842941957322850201443898638401580310339748047533825545711959804526653865756133451716131539537362961786113998771698845417612863777132754329167771370525393720824043083493972207174963586134979225055585639633585704000213868126448433008681134013675448582238665825687337775153701895750945305224859125890147279419214078408482003219482652775090712735874409409405178964726498631337187600658125062166253571408578352301563170246619853933558343923233982846900970324370365413685595290327031280751826740932417521349084813445303370772552077762699900771727551438667629238772069099512687990684325866746741697611707080713674505195403697787246543826762571544232468875004815808777776908444368498954240303128150505926644475023054019960529166973228704722846602488480702180789294516390247473108868676060502012670126241154150338966746471976993388807056982452178306975460940710781048250297825247358669269222881639237265591629249711040657684740362740071363293065531705330586329926428312181273838265279693180219858674294155020106675100766024320829619392227480469775704551756337144186208691994288058518287273200255205337355521967377772602831010970985305994708987028508564068972632265172377915669280916654928774012090570908085534338102729044823198222110934032934295349769792336685378245083393960738734567920360319826675942628316809760897030176217369913566070942615944626217914797828283466327575888493794111463718116677696400382904205523792043359650207511639994122660570931356375670321455184753123667123117290164208956078513922142400619641188258000141358286112640049073645247336299449872210273390288218956292587444586926830668544629211606670334722217432786420661274011241971160530367453526435490898925033695780748300703371082673151736073546343205640379453827927748955532023837872987062992236491832057353561699592521105540701125581816564522625161681636915934217559634924173335636369781963682466112249690695480883644806864291410662396594161002991935496410853024579703241015158412101281362830489777124613165944294669456705512942714293576671802215318529618886636735310838611847347584885134173039895558391390715893772128365622560497100975153220908781162123784786337739381301961677772721284808336957660134216309095298040239329840643100266022224292330795959471239077332188711386247065065428160339506751384643254603658289900473768760359302228406832628160004477273175165833861575852116089462352476791845777192626106380632878493443646108840960986918705446601528637808439305307994334574093938439558977155077188574813563867761246595698986486359628212107073473010581205452519356081848919162191719363448137239934359567114784803797497070473661780832209444867639349789192356916922669721103971642208393171426458661764182266222315411627623624482108217641841318279004051091735699470887777218033020155546474972570257264347136710976750754095526464565627723388544612659220860831095980788380473453628648945683831702939061678782646333421200968693036027369524706205603703586530541305429435444414998269934368910219243261792828563619317897926125928920044651863412966614717097785557918250645922802299832784013005367475117719093191478073075406036115673456259693428707678251583878181240266257431758309171554430990581010853153853159919356644713633727234579699692392761140981863750035111545366427037439611967845192837818882702483057432471016239525986901424572664842790503860528101900888462635782560911591122626952473131486414494004169663489186055341242588585524021996507340527633798826042210805639407831245409217758425359680101471774057638344813058196212398322312451163340297717029540418613052167455186596521057338517898155735881817197303724956995867673704431990494730886643641095595826636050714077512033768417119608360167922017410935176615935605092671066403217759874029726012352692454264193452296706849259422665049459909075758171628501500945664838276022903055603337635734200728768805945519109106172047882988549312466249661457384807422282777031277976445781104572113174693344368044944109662928267153713932726485465420878659698354838252696821586576098433119969855301468546039937844825505349713210662957891709146199977416762091750806708789429166565270814431645728567808248054167672637915339649338011994616589549455624031642848472646476240693897804009339946168420757887831942699111372511047068041387753053332847725238547223214109324921544229207225623458989130112655274942715660311115826521513396974086038181850872205378310589585893156840202524135014154110475935427295215667760792891955454089428495078739221185122029035116944471663612776748938421375208698061108433264029935992385158022174528690789798794561202276375100471356194077170352595397862127433667528756451114040013760420658255010104770024814373194356312700469206147891506394371302177432890378223137222205315785889260221722625256776817602675135502557861247519473247806581379348460207443752570849842825690704262439958950687952172620062088323747206746204195666300459437378168846860974878704334152992401598430705510716402614514514753260270913575568199470613440808713347813371588904500511039996734435789220912644623001138094469679214793474070685910022033956122392828020898960294161805637093938001349505844120047500165704796404704512580376134454743373999130657170770801088899134286147840604591444393532361541245988725114570897443016490074381137486003392576338208436553087097035094264751563590517922703666324715297625508843290938033566127660386176821456190567657444349684187716357152508468106400077316862701837296047349464730321875769391707623980370280440640434312670301711748622062264734018417245338568764917252533129534671642146566042060869923948684229717023532023018302943234469487789990586709046405540445569065900281380706400469963595242291096037353728578892305488946262292112135026551564272143607153972177023882226759495971710860632419485148853859854006558856150977510244354224700147427083901476273191769637951573384180955965047222014510198008215140281364532059045121092056125997385086836175576735016516664880161620472362960301163704880637891288338167114558756059470992247500087843754616224648566773450168590008895994629651247054360500196599960792689247140148110323280318779861966954897827588113596572300669510054929216710291043904190501652505419890481243293303352855464762475772929951409490115470386243525090778558641579963015309317703728993454803032891623894182711217198298394818420703511208944412272801148003539222785865943946471997900952817760656177591526447743389987820927755029053594524939525903088266888210039329526782112431391158562677655069506583835445390310482097891649399655258913835507244429469654124422056615533075763534514138054313246206221453340338703204352326286695647070170256190946231287039924020449904684398399735526842167709613187905149472270609403474129043836780874859095501226676877853099615717453991695603493439337250157351892755402813777660725553033497647592494071856333209139078127033054559825702179136909408536994278994679847409825513650460351213944350358467949752812700554048737715788044796565639623173915179954944137737448098817976369609103864837793455951348469981546453783249017398772812464791408776096984476476880897469823516958644778489525836963679400956079357219747143301343442523804426780430410040780524192664180639643129109443223781086109113805352412340868371390551431351448221538773443154063720747717583607388673971218444770284527433927464785795021987099158349962618055310686990167577212588295988936676804121990586763305032255088402696981182544302168737420647535298260832151418290139244016313904884505014514618660615984734416060520060315047980771374564774841401681291650495173870134283195005387953161093851316420962683802541270887346851139858443201131916007752727367230988030836408941977322860059249716222527375001261922497329930605957678873068242782207415340138636503595237723547015192116959438326236489122328155347000833979963888724634048504283827757921509646456319302504734543760839429228565795687891405496392324381943101196011903225821566792986672658650533246571098340500997887362142016615709963800607292160137863991217964521646003416834461557041569138183288147468348144961667120563017502046962136404881566724174717255263787310228043139353356878217570616877464290537310825337303351881919994728531544904218711719093237758154380792296089657781267866045079055847671482048506118565217843183998376424983676948779890030342012290312475843944469632135529045224030321597230528673287875029764435772223245472417604391028054476614750704345205565544286677685106737971182823837330209207087099550322895739681365533073979969145611714480929705182540348048991929859457728385988168436281214469995593540899098475963874364078828437127999469712703525056296532872446755365806720987287803674763578163936538078607081774268845900149781009090547358598072111672922429317469059081720352173944738069651479412019559766548349997231150248382167797777154036379333015782129641447276369156396123903078823839268555321248949088899129832959224743321631368249324750710462675918120277562606438940221197907630829873573885371029919954593674472552429995594685682708947152634111298196893759317504766903000657310863042784682307118963551442112270365156263098011794376948861413514723788942313772114111133646004965127005222935509308223443550040524496599068307678709380699895203496522071920346119395804850399105611243823616542413465514912374804552949413016167667633910500573663563821255130749931375673241191294787246880116391455969854335634000137974739762170157498118943935799257508822413257545316885826045027732526039305398377471567647667317652773022191320654269956667801176424715047088913762882255675240082451911829430684430721195662625060678937719449224610299510452261329356967982423752315358099630321321326962008019292046791564703424374261278335665796780676236130611429564913881184389347797984149462365048068063037992306168605777147059752963758919534305393327185392310178240646102427214762386747491348629586334408179658056139231053880219028189820986898547666665168792275099859603470157240119650337323658194668145870985581160342112326312957803637044866309841086923457429758444284025127426466604305759908110966612138613470275635959161591839544844191250820693602190152164413358291154829149215723015084273209968176070660453940908781521768559316507978261524881656385439755847930339193317129255560398076376118791547334930257635630685885289719575243268020868821750794363389148547497831055230797260637425808480741301115158426075095475458914072593114674939476404851254423470335218520293135874873227915471664952041683899902877448409755521806167428268048331995504198402795746006054168747789117883582877593029850472066521968881329789640222935459959120606500379456279261025084229759475377334843054483176868302274511805025717052375899832567858599827741035492189506577023341517553740066065010746564663811687192071453201150297013206999581717767145758189094130568600757440996350848269385629151078694467675569316302296037900711084774623904819157881626412375025333324600730299971797082116461000461824952210181278458157285283309465697294835018814007668379831167691622698778069726070962883855697679602873950576927771976661014008585753433084225224099750847406131759105928304658611177391442123027356522185950405621174479234500334720303625932527677328689764022310054570397594007081162400851095105389119475821155808048492775742446324102606673429519698488669224184226652212805901706743959274632505881102395348575673457680404100422623969819430244609847184025733593176303220255778563945866298204329592132931611891219555029604624594355388264067655971809110686077487179126136199014727800466596277659409248398898987560056348568749840556278143975574723327719353228143198775665274398047155561891785821338955385629309177975508162871562506409354148259345687799235540243557051349461418920667318222873375927400916452102448510008296700780679985023616307263336060859236580183570662660456936756355011097180961487042030807905864842236010418923771502563033494399178833930519921472579844175975554097009796224971883539014485348328512380226995049592505076423577354621156375076253067078569632649047738476909723806590997636360389924758008309970962543099123400500709783259629068308666689783148503452495864982274196506482168859471101555781903249868116634800234428551235027127126888305396052956606982058907051005914160990424786342983799342845901458100285752222621283842620153195668429696079553912733671712758448387031143710365710188641546146914592631175431497050888183136444444501300702678388390750586884955348516901068879527807320464354249359834547331646251031426604517298481572976478275671234584469871527159233710457085770183738479205671179520049999092625879379800242861573716316454417967845140149684182107975606099109572226472274363763158560598740278778739553071315772194192438636442204890123268600148752439600842697561783292476672066938669338616390771251453597821331721364617585188820208071667185929904425826909350317139700844929615999341697026473470469058383149249100258379086047789311254647230201460913529002560953944946352844602978678932273408447477325287039890555761533663398598437311101381097094023672851502258599674783480472460778784580753948625491560316369062783456301126555769586944043292098840351324907380979223018478732235110595079740690535854744018741801191036739460178416971863506424443754450476377420484203950145871348745279315131121700123665856146306834043077651710716094027330609144883509176797711632589978218581753162354936188559812669961594005991450778320565620946279044578877165050232904237573649292365526865307849164867669923512927121632675026179828583307893196655123364249641469373431328167359178345752586313611449439726951418713501806752188203602386197913857369311474640294373350570012226890150961133648249759186010983755791585063769814875661438611464706661274325640134657303973106220800958015668455557501333717340791070869440478860296898799758546058555530371564171465296243247456196777983090537391895419617050158344549147255212026225506380836126992214548516169068912530146358032935143949403229591497942954704865179193325769166459952381737966373377010553999545410527187402829454089508606771481746010947175183225325368350278259872095765033006086235321232530689117252552723367964946068234513916835328849115005253232833356800934123544389561065826089223915877944555741112407855388023151347339026384462077982957985022308487804801577354294764803765944128535055565201440199766567856856778246801457223672653883648460800372597420983036403822618073350628440710468322161034634594633164501795041052692146326412665427900712776593322121918315014218239936244343582274704993957506622299490995594787903179602239665811994701882034211057432102364057193464010123989748604364897668708826389192087838969469386185443518064724344185278866093489548764996031027039791037610914053557744014410035305095381578989776795458167689130028441436063606257761060796892110045723489482348434370751295555536815418060662015295075610767984780761894134894006510566204185529878562668742628833459784135917699765716743462860554140897274945577202978906898911993844453921868751110112480718952030971898447602073109991074991121155022675456801416533934892821708094162154120551095491222918084383992840621364213921156856393667710681789299939458957139192841733053592564975040103997152899018782734026358607633340786403232614815523498491911799510904613410861406421483784334803091779114919788588168248609533717825204518979267393832775338985014956102050978546531873484179963993290182956672769530905003946162189459914804328610827774462643605247197080264419145437473809140819887038844904742233888877370599070182160186328284352007316755804787170870386879478093905033332411133886851859095533744958892595799472736313918863404156177291972169887932843361999035110145786425797875566100161052607537484842106999271508310180680718393326310538227513404910449806841904088461203778431973466787829840164583899115307546039384448826177427041580403791377370361283801273542287555916440650337005128440387181556748807066896070480886894994242509565460952817575996977057062478158642557214890525373109134759352042803174695947636775380352974375647900876866615242302147132623039681093362544242868693718061418039753991787986020025836008322601382021232407950084462792129218188305805656103548992376569506276462266030751714497190225127603042290593255909689629367705001104503486638598332331214140244147475478338793517888823608797934371650672335201721397436807797985276292717407355863451703082921317883513329020563708037783950773491039908500974976283920047353942617997752862289513137250284227618608379428656563830829286856405535570385561147209131524251662009187036222016834611268228244619689065523005810889298376057880203619556270227092322278319462378802938391016322147918981264818452916543288078788669231858345585777445976852139010839163330376253452455285829442873289061581104426548595076678962345904998011467407013835359121298850744675033841084273198224034359256540394967275628410377875288448736592864880004662106848536868985557920173850536526984328705183211258547559703709092728906832273965838191937350672361504761139122845205067723514976799553830425897525068360360217851049997781068279888718206782007579535950556315333756538264413238423152772767877481990835734048400612089206594764784768436592608420903555460798580200063576850183331454518966019498000974446016169798314837082446623751003145404562143784822726396324260026021049851453323638997083785545082397176311081819806985654472460098657452831210245432742587161972573786207908971962777500749040220842103967633480296092186029511144143008389236837322630300532747134380796125262119210966698982907155462134095072574811917171716287970809336446252942095321998707406395619731052086869535697925468237374670863671812041801960042878527594752415350220377648962971965837998094213172718541073006594280448808913300091054574815154773906526324505312963156197864806952208173140859454957108528343282316958687000832478352884489401972594127075067504545245501040844197790722562623589449928856423525288579356681829644743900504844213837682837914379555900748393709375189259193367833354303701228544959794074698595927797971703795138398072551680904040262786132753566953235618843867769529168506127160797860706678452925575933082153680148929617238537108652587674068307867302357516362014611072466927173009321822326975994063517248469346013674323901668768000971317828974262751681040806586179922184100608043115541629581738210952663014690872574456850751898536657913187703704077560742252634213578236116662545372648501390894305398410918392708838011477375659671729966521514886017739311661886675434257726760658203698953641329471383761345334885543347740976376601643567062139015793176666243782535009064398191647541398408989089682376216362590857115252254643603043029955307546919001355266744729695176244545397104837759781291300228655319857626686246365563078973183395224143752059902655964814331257207658175129800693347835914229921918393786702211431810240357560509531273760422835734697005723782524547175538265592193196383578909905131743377566501811330301097777941138300760204363828892171279319617832525752804822130154320364196748499118333888048854401293104290596067190934153953322071336482125187285255766686148121327569145767050693514554042658475813306582346363845937752137728777121260299842134653091727919701631009186169826407446269934577332623930851581266451957740980652364041785239459880316445407626706320380860079105975942142037111678128053549790118665620859469593149158136940810180928947394792734962614014840924858472243641728036782010872182570043097850997558077430766808414604566939888107003405781724992552872748047565060806310158769260408752918730962147794598257649012577202170067532671834021149828243442775678917588371545662208475869418650040409655657587869005821802821403460955396073155825308753323883832278540213010630246971235621864862594397672399226948354950073265807218738380170252962051335458838733994527116461564032686490736580181945481297279385343345596117451423794187646586562272709088644458450973620232570537691300824463718178965441023376766404497505573465646367143689158107060782785196123613705050263331649071568276535488079145026519912504423951930738531137244653097360016141828247404109207750181304501321913072923011925819156153002570829057209420595544010775795502027529195889686183315359188645615063799436653442386749962163390558945804681128794265897918279103450499208582799747654191761843293221778004668506363497091386382689549251481588107550548166180210078206813226203802659855704377573788791144107589608676799473571210359482319049371367679170518100428026452860182541234541720942014246882591438806915878113356033753609450660845934483350184117037022907750631540603574735249938442843276735574505523857781071357843637285675187056967857034718480314488886575474276722325632826674595918996634177628544158910435393149023202473551734957313336763954975786773048414065930354725734632280172122619667614016942365075240005932122434406821534104308559472038443166676635616267843723054344633082559895336508917891670974617052861615890477340000116540672920408027167022936791607821787369865125855653998742253945615942171179306765459018724391377681412508664033044077806884970376014244310661005527349519870319611994447756940898191650265431620733472550700852818980102616996433453922712438247954153632126871043790333163888082994650698843482930562092823358398088274883782819800145474585191421397692273241286514174317015147593413174188313881136055657343412614608974678392744665116578153959056746296162489078040391228483051740584967999639505173772721092097868201704536998996807269787019899158845681162265793976571633815110995770609526090829010345578106218552136442247210267718224924070465559075110202937964985591457782425317037030013033152342788176292033388447068796499738581177680431096070180657364523909016603612648196210361065605580120097946696228259101228276985639522262830701416856268938661567119836921702995806907340263411914646119957760202472444399475796333907050298539722439755483326298638167236296903019434103019566688855553855122913217707768694508523723726518285132376302785132324536033827930681704605595420355371437333837448362873207673251431144675722166613557964802801594703416944225825888835144659162344150713171738655310652372972345340443264704679094955618641671919735509026081909711342484770765048304707935021556396440802487208453376436083160294141837122406907990637310537512567498093131447452830085368521503933199359405780091644436497211658601474422377604155831480867314786598003520214508160315021886823041168488887392252011180221322157835938106020423190120814879143640152405599333890051307508071548516987772148975101489572731459255979491476373881136276048688930493696886147508633203090657428332936413198596659706833891832921031470539409172476765016022975278791155746828966983501677187384322600961042796742520139444770172556059561465669567570110135386494211827200382128350622517057839905993276676867124679328366673779911845075073208424402512155913682990002978878935035520794228974347663145423374637348258348070697112238786787617717522139836625209357379157325597795275956073305362773801644292257740395172303031053451014702153434229091699343103464891516207949323239226950353871706786529438666947684251465027240333832023664237778801937119700572960192743580082295917398777009068872459015841541212272497170384670191839883784084069494138092026312301160677489974827344975442488515408745767323477182911470863454094187786095789244596331774204491102632523451454903389756871977156542466798121816080717331074407868908118400524164565520104923606378232387266054375634998210673227638152055371192785969002730924764980200821473755650197867571771335410940330579400820881694593612846362622282020079610751038051779535662134651446076934838849194257158795729199414390820894218373313237654353302612497599874039831103429646502827054552950027655663393467808323145638363485136099205802836594993411167707675724640785358255385920342262416469580707768501924040449949916296898558279296834283297717727243515710074785305235929757776390560655934738535828687129374108638280031306641293234425375215170038420304817942045841275405356919380511068618824981371424628613673753316644075677112900871698528021837212869914699910262849379930035634726894224755253553170109578585770830212493942506812971598280780697722455552361779473104769683782614007665792563959086847593183051756208418250497014448116134676776410227609967132958867610094727625114336338625598506925004183124770400062966526996135259348621927040147637388936366838015103927744139303715602510612788057758938495986041440599303937653280259215966344438814549770112931882970795153030962253672572036423042998645682921786200180972966158698614200714933269293572390278628243614051466554486586277860578126427737783998976357516883278359893215111874417397155059277204501675330559411910742905263601606970571679117756212422565396252873735338899874995366702444145162753108907491869558860223862412362380599907823786268694689607978223818211169473007734059018389438597451353988872929537388252041594341116654229227376704403652567936047514550025268105661007088358573418463031095564412821745069471285209319436033570752238892916897564007616763202962561233643624791819780296767402982702573283297934547007128711818008867228595297855764922449575547768492942063435047642397084743603765799919466744979370253884027957579134753914848917320634038042870359820914164288232120776709523976056068468723835360659381317915667923971516416481955823346917727445247007628060473333813288146935152733729580317752038204419806020396302290922156770575793919343022049095995407408796172152820790501901321210907353082995737745933958401005290174313808913017222062246934024356329757759862953856220799615644836408003913833215882108903147679205149124695136633896815844824174768089185502448434419730821752981017421518989961505135017443478518240287749835963814727309255487031644048430279459507251518566817225823233081531848056817967990229236426566844681551155124854669808277113424795756199338809527811649342292546457726350381829412411829874908408385388247733745500315216982725886562768946622304415326271191790835910621163407192660292834473083675471091166443072994223847792147421777208706803398909861312924996276986315296511712491781864600564782001921761041765412877174836364932430817815851623919884319397743824323960065601790714161316772766773928243312081712708193819392230416970692682001710305794967775675842409034453163354250255962311936900690816206540339900841587930513521081345457911709370777347214933486909249695562046649008005749209232727718277964123746316425975189788925797626768860945130325925726959528526240241825392684436069142130853108881710384982715529028882611591209181405134414900416231184190954195255223869632239981439736721449848574685219796866841441600661164998389219012932292430968609337483527144173918197425684148490645699310612802542609895344656020387574698756195893475911145813565619529408311748755997230889203598706245424890695236408659503140850108083952814959744892252285120752193012051280645064410447590469237906731058569067457204002306254474206070567058502871667859768651711713259799700594764405522467406579606195273673905280588211174192004019239819806178246955391313127017844046925216406091653270024052444931828632033459338911831302708711722659135072955207404680466130576233883537499308312649599436068263038932338166479715133525153655339532572664382006562912280081860316817473949032090076541414388467873866837358566785272777139585966802282472966720121550471898350691194391690829643858766747058084272428807637454608617985815775171316348970437423093216972855181729612947799786701257267133276602750015828890505059536843895078107281832381629451064160181487871838207164485935864899555805844722190272912880623091717436177411823222885523380451758573507606771649679329357401760307757852088834259255130116417331498287616358237651830426436489563641429663951243354366818012043284552489744153472772521121365261690814063181248085910539350905428057429399592215721180503510019884363650368870346549033735915520520664463579619544752234041004386670188822945157745509796885704330308247675849928288616200835577318288559329177745785855638033051691226257135316172180277763384932781544009227948378035011076607715652254472154267154713079341149157260550234073847302231490573864768527267618794774950088831503252489964498997628545178201508568286006174172815476629099650387651633691670775203339814723556014980373227443560141424906062078716717016383099983379871750836231022216375266559692299200626792494979115434397014418087858137668850214577934974550396184293219395859692754091394092523560776564506844590677741276635292320061630426003155378246038796020907879146476843377001817152201859812529006974020447041579288411786779240835142162609254944048730470604970568921340306735430148928531938711499947414636171985868076172004415080823740987508801189026311941324225273147306501156806754672423296490201405394327855707980809301384026069188423976755550109567191439897468161274408045661913165745873818061489758125786071629803263300387030412249349712522697017031122378572611798710868232194089934994319283654171492261519040895166928015268412980916155030851544122896249346269140293978295982642934302497784141446710108947376106184577616768469129508060276880195001769423274991363921389081991874131406457642898571192628063143165843461462376050961093266814438317349645457101536269040056492135919206540171900521929871103314277535476281887695780679471114428778928381020168603749050461121832745663510864721983009918802649061500401341039761360077504449700590629284976707393569943639795100688542955529056810199026022904019833381098169064876460735170820612706246078824196154111105149103857089318819968314925087078844131291638408152351624365314259388092929157262910294292128154419340442840040589530142255023292465478986837479953007327112318673895235651201912632153324970471535197020588323004033590474202323510815193511384258736068916249636524891114942507702435402763004664243014030565191061986154073402731273769153622092151685904625090896671494119639134603993070937361622827172696967029830288946066824427540927129295050403102059764308037689116037585275512106624619145971108332667492250003756489902068990950652155989873463372526961548751667340580876099152103763065308224359907315862818644834522209945170849811697886315765968605290330583154605820734627568724460366688239678845518081500556549011355057316652529185276542951094587247030502071204050108925765372763343243035465616146112093916746134184991520425596624236347777384335383114063815698756020785834010513302413033781629665558795399732960732307038982762654927518678926447842854378932979033125518045420057080045019463697281092769841332491560376022298483948923993552868377913755601355569010195465683506113475953167043305867766968211628658108805959202355711420643581779482419980658501113801547062982177222201973190904318472849281423285043014187175827674719357747305190160061289066345931646002547084528614671473917478114391010024951433456268952781339198086882826347368709847946057874239787411908678464639552363832025374172157180916175047216107043746786000498075350270227784712999401164684080839364030126782787909636366372423696715481260311767458352969243816322071720632849192846964032531138837630897888780220170370339404204091422866025545255708191363214369874154021816437483284521209369897688474588627111981948469370812288388340686306099939067493444691745690199433693863369367619359891057338610329560503654611012316274969170909639887795179954504956645590912554646110747596171655473651479463864628125686930010442163700104525303015875399449913141345964504996238636119342528985272736604693913364214619893138625138704258632384555996898174557186456486352550041845965181583731327773158264942644202812337714269815651730787246942091025118738015746412349464567910867984632128947430767841947033932259125606119878690753384937118094811172615330013592893612009456506059210961464394913895160298024146223013950335382487201524313029281831172281485406177094670413294268709219898128742674622888060559928899466139529277076880974235100555952430036732001595503783810900012355250037780707925514067458380916048825099378132810420775577195457393623428782929313293924547333555294195849598843951609996705206684898289414921085155246044824726096233638788369241374832094805799235798733529662813132916825330944337318925381929539646663375821828845759381636904076286271551022696209480881070388394510923328110325670020066351799485889989689472291179265825886355117602515859845199967756400687200978769058311107743812755701672849397744380889619612944728057387247006256941365198866984706333407873027642718796372861879690463847663292220315793492265875911043494226149677024385557786035803989517407727643962609362917414909889858595646608974997700569131084697033940974839099377956913904766492121569247243616455397604755773946803565292103961651005676685599014752070323783170532155119837221325424413562820763718885773411832917469102562593342369232733630700288482826904637779776618119701716398748776363542462517156999532876304036416546034050272213079152196726228383790748133152973129682877371906459586138283674778613568704935911232923470452372538033050280569970693360048771123845622694488613681134641775420738612668771794022231010140207778814312425514992510173817362673447866104345616741932696571901843177119830064338391171906873884575807093876699073755352375681975990520004145029543745155235220818569729138840613159010125717911041463154732249000596052035012662010012065668718079657985885763638435269076109502371183985179474206475398976703461235814232755569361326854450369498448615210864703163915405948694627895777251198230906128334380177535568727947373650355326767531110103443862419577701494399779432418316563682246825039549351678724116907143422066456029133743795105311168751139282709031001713895104796832946338441078959709169739436432542750643233755622914053885730638313359142669465321313963511369997910724940204596481647001088742320716825058440405820068720480528430913651865223780946785889654873657481523600373170441368945444226240150956852656474088635512913370074672764581614550766508807901448555931042764340560708533700556918887422720528067701235837545976538116599968917957039997676892344304508040298499621401352610030717225780627175849520853714478475305420712770929945416858603143133746353577977720735223734155854808066451303582309212965828983567472083152535248845280090383452036004884811992299113067576605608544239341049731495312814003865672630890355933780215159954601354600668361822407687778614694661798091911078159102054676683670410392319286194831899309908425412297036682418799591112127061084965525624470465901917159448308273675471203066883825328188291648537424599920442456150616611312127580272392233364892148856774226830368003014752660230717688839829995628767419521933698295381504743677057971287146781855710930909950505512584288084211268433413315013964208179527536597634894884447599505286074015236353604734898526721680632656976508747619504702708659441076844780911982080136703305430594736738502771038878962999352418923260470290950797444493038554520758775663068443677846686564735042630928876240425263842342734158576079128163180054224041311646985191750058208948828445639676260645901841801899177450382009778353231660206714124044979782369275655828355319183352943149290907796063945415690352219119011644103006346166001682866362923583745981888097107072409027542393833956601731252032995259318421185100925414576921857794005084850786552163435422364747510762479048815847169926592223651248286902760301758753473189101493704117864739807321393244061658140294678413067471609600867754581803489643989115825102056058038155498216826584649223337229426261057006785015147244631256342689098774390952146429937972675681476599859578631771916612704652720414475240496522477501684623514686816391354259280129641387966815879236952679609964605211169371556921756121093151802077019878552525899558890002600237583776195107646362775753873279468505500643427001096154306863010812863921328219552784892152164658968806545530284658988885802560940239569714286638851646165984405859136528776363979709316956436129886788266340134151468122410988478405326271538459051600288802537320741920752909971554133553606064769892807558548272369351364519843830863938838061574538114240278277433949875838796337513762896322524696979237836401367484870252135604774976236645156402567310685955656334118190182525383042501752353951601013136195235045869926962461977073087905604063595619693068183512301936687891956480154493887252647603946924879778198008823814352056843044105214548085784803303555017212380951877273511129221192216866193031375275868405785098888327998718801372153149129607922677019968182404357450700110016713385746901908943081152197285493785112397874616657632467838372657982969828758694955925252251661062672595381511285701971655762545517901529353835454777836831392011565907954137301571912183660029695146671163487884769381506795797017006741922102668574779523450309127901535627335511882888988430981397617451298711295812047913340929144796288404419980404639739603306018462265259454416335669877272569688126130440843553486259997350832486404411317770538852577002743522575856957674673196618695385458404464704359622595932423592787367545210687993265287612870204421947348907446715389897958002612611374087800106318777049678034411620418397046382801460979151147419673950533933244630474332454759757962548091457493172451507383342229283514230709091560302985989679922815694176550391983351194007065198927559384996560265248605929070330677346133967529503378593414057276971440736343595733551947761754332529733585928245931630101625085495261417690480734808711531094948641799027457199461279546972193447264941177412173022435174290403142676048289835241613659423545933124866909403081902827711525161677406320175432446729181125175885224812519338800396597389511271242467779668853085387317888014759131658914765496192600490817316559534918372952954539732152998922112434211388600810429949438439853447608686892764283533836833497377261526554470192627666714709904421981846607662829540863371469914061582380465236139530558605761591463639856081132401657677675599543112454684177463494300612206783765749044679812612485114740296154913668575804396823723987234959825610245980397082892495393969714442091202421011259584913384964032768534702739814967924779351366588987459052891886546868478310840071208075738384344734825653950284169726012502290170060360356973520032530169358570930064890000632444837837307348382923042007801341006365170952185885987185776866575587787180623410678003786278638865921422206254768682158488806865986808860905218653040906362495629396777337609292522992948804857370863141576345527825284775398600382400311315874949300299653427248268408739122040333275460113531432222080722759094610745724924083451827886609609535535632076068203463011445189327738075333724838086882015311350841822533746032446037078343324503451501320553992362307126503067214485287200325165734659606414112919915095200353169025555275370489861089801935443162063766635491000466421899166901508880248715701656274798274764622908303532490978443672714429656134627746569027095136550822883007381272565024980757810991876070548918534983876405146188712286327955867914144531678089750631121290438601111391774935977366619170216540295924773631600805609944057660792959522703488642722400561401638419384011505097223077472251857216662551743482907725232339953836945419177297199585279398629098502344851911265808780544914900092084841901530797235518110053134483436446506062149975987946208045640922397340429303883154933145988592208522310984608730453162023150486023084921469171064295048485672423237288341780049438777601329213303875938100880396190806131181453865767023171644969452017908929760628681733299723394505329187035617295490512091181180652527542087040565093523336161446197857723400778117228690887890318741397023420065331976347353284171545400216274973749840321840222341516101057980108694961478915023168313135629608298468271762252881772987019236894362860860607184047518671759678763145972435926902051666629076851557986033747291663194198787232108522318567093101836345127594690663388672659300113396922249695952802516049793289553083381844794846306507096716095348484149466621987426562140040333955687230856469919405908238174414929682921435578079192314886168553436792769931689785016881151732660310525167427028122298873572309326913080936871327596344108311179108492360760021325341581577243820926528481525865774686616716271888848474471113397113411946826695238660980895439638555027636000074908310862641586852623707792827775767738979383481338341903379672924479661173995414490692869995269456595657714476782494315516224403577405568166003444584534016933271366407864610602839641177075423348190565209569948216589235417494173873886480632885132359017970536501979590053812257587630151908158053689852793474584244481009166853945719711052368067485923709985149188281297192625704336223897854400007092316683260558362982418767089927005564522907365365504767748663495971513946730760939182290280249031643449657029284681516056914340021577196850344756278980117576875344995429010473318308383799333260953979276272737560464446547214855922102149920666480437088205486160699241691184152658793212799423552152161417542937237999200221217835420974599626122423210359195379461699297334143453500355293487418963629627091472753494548529245899218735028945120661866091523504660599541389480519015078037249910628841429421470484944983845592002161554603493161486491184010598628085737348099423305706629395513617810904329774525310343435563866283191984656658435126839625281116837258063565190561789750080975901529135109500041642663697653780691387566433860053367644801066831014232096196311783606507793445943093638576449221608532005123682612427338142509564587242576549800379573202708457646342640841218673030700261905427151545589704059154519246769437830775178155728859071515732428704184957329640664774599226366922802165252550823788615566323129052848602077429592145871767938698091124459610374893915877165569212112207785922648107617373989421792471484787849488261787955139379325723026360996620181115661476450326495202393346222950666176795272628958564438788367140870001074340485458587078985696309500242045402520498628427224434989211415448690764887593628061814507630037342341084067306495389714940796203283295053098170481546103516324573651151214414554985803201944724156410586431002866720540991177174299500054808871727777678287114254069175264613743262631309708215161311262489500503322599876027508123143622743345953292033751157474436207030437025335435512258604057127744636030889426906693849360827969581629307720349582735306287270174554659240848855896009035112232776347614594977393877399978741574528748024473035451363261415433788411269205511706268666641321169057638795260869682871345464523378694159499231127793828836435627286818687641597132861341647905136710359913857776160003379209433249038468794359534684291266392393826081903308979753884954878099838517246969559693044606127444239327686693352806440807726411287850371344458086415859747313275782944792677359451074363610550476731772421253759224205466956721560133925386636048208908513674650066209950582557043621142851691953612709082429591736625143684326662136934279671801768596742408694803962937738598527255273134137708010673413525821189915769713103906100145533501891369469787832194348981499870225538447035750147474744805992998598893360349529599627185801176731148180852420841275958966613389637815631012906694926829064065292876729049468531968189954294879800990260720864231185995351709693403919824010430334892876120484229681419181511955563990866306471572009555690469385378993129753943442501176742914405751077157639079733491732706219982889951044522575034562960287324424885489486870493042505068736192851142118349513550374543796777332520827142666148093982741123746776758916791839300814955319199437301712767867659252987312777479480269769627211910173528446675029636887724271114550779308512889509737709883963564272668453227833031457849112179962488043920321398825690754040003109646247962333915111764409953609695421436148439455177212151627183013766882879788245590672015662662388614032290474619098567751350393146335098453798934846592763411278151176931344794196821794482683114315720551267858375615816973292717650654305080010446999899267997176948592495041049080001390774319205774784731924029943057323481179886927892891607760241193127085224286566165014209488324271038596962855378897232561752538181837327055621622343913110989106631476895512306980398742919488026972992618439241497259396739805241034906658155944652857526136140698139990839438143643820543412523473167011403194668631994710007949365237167660524577366451855943582429245368421716599877820216132216224410938131269584477565106384234330471524965888682267124857322139928019968587094989377426232324727007149810071372413872366883284472596366219713040054564816714051564429196613364012494037352132312818321451389550175655904408638967126929764904320882678783862639224645853860790149393408235653310246696024108917358977767567728000014313596687796170312972922658642949128084193387808008102986007814940396713035592736524323572716784211457177544643240873464570511822611155754397945239287014347338990899068083783382203453019212672037037458045144977927003167535748259266834189014814254735739266370501002513261086543068757265720075182871571895733664889589257676307498699610969388182323790642262456285806117119671927370709422067648152763165401188442623393355440653045595109747764486669422814660696402706346967069988229832728890860290720220371925519470885700823658214367524401529166328651119560623289423642639077175708081406679463318500569589761691950959575287069543485610776928324997621321136861795201890907203292583375603763843514339909522522566570477400885036897114339515507771631336571579743335835221668332687474019701429752097524310823731391878480563075064042169592673563104159920414931071694989005988234426986754948561152882065031631335577017624365704779422657304948255853392850720150537546142049346649354111991077442475554650140580051169972912383234609822381090839926813671554330412321821166821289824711908296242059523224340529813130294834987768063076017910496468428245173172434433628332521113240815825014940928479410595147664388795423790111594917156876624568434550205017098195934359580043240485875247068442010410463259429843281676162480294908904107974362610953441887877039293367721480857353200886737851203478213341814994293763129277265731882719629341336448539078588777191645522538712098832170691036608578846441527498179132729479972197236617028557265939518057652766879483718849232007010397010666630773951452198446590177851655074423175375318856673903606457654560667554143820871416465346455181272023769720233364813886221773294216676950481148957953400795545634088049726017025415332054509452500680432042889932904262771257680386230440606616082729658422663009491642015027939003726061100434816579270733198122333336368728203188358036221207730973493527203672933642633110660114387788064687017969425850123061440763057544756337332290517331650607944106423598013596876950693574236072421461757195217511287009785058577183429155894199972563206983396309568175020788048618272776540424809160925613041038823434018669059364568143494137839888492489385649202080454880719036247405093189044377663887542519089828041462813958743177485418903451221359677419155722002022332555009539775600904367736275851385066183865242797596603050318882359916336255189797027202633369251024162543808833921447485806672871582834549213672415683527578518397795698412996962633650244038383804440282408190890208473461773062459687678975561453022770197828117094112303046576769096461854785058857956630365549937288743572787722611792694640353864155852572205109630643688099486952606375005685026331629981162822764789222934817548925915649756508896024608143519815237446100676621995183652781689647148394312770146608296808122445234597731217338371238347876750637283735341293971370421803707586586602357704536559976682265551836166490844614531270299312671449832655491980605826486714376737613799918897295814101706894771245106105588919681980393194312219447983060099137372285435436665967340917422764732318947157182071816436706484955567016120252823385844357860955870902069157757814138387245897345209568800264299338316560406358126301056674816838353535872075130606968307602165002679426355857193108646989740135669103531835847679684385881083480944959777334011081913941966897620457014587725993592834533153105608771919177691532070165510798775878179479487990087491798165590969006835159395750534555318605983030659165760425124921794438755162899993920684141432289112210271700067731455713041970442472540543005203448969860594733871593620790701257695914896088369734043531806887164560087716084276607394109184523355005399944965181590378486063837057595753186314555747491289207233446134995701993962260741257457760985465457276441708981337241127594446749873988393346599663068219820851911082233507355343570009159914537239874288617582075130737982373789788201837991072257812317341234254602939401735117145908706305543034856484060314258447150242215325222624254343849295620937926005430540203053313741912565178329024802569715701486260892119833397466316096052402716396428585388828223059746640331491470758282944025396754135479924288068240015910880340360430499559840451671666411715231564436978384477555498482435394620429396816492877139799425996701180069749330987635029175695178455423601441308658216993086252952656760243324365206619078578442192039970058962055945163415504478682198462041496039341505504850319530084959119929028634144050942884252770241084761284739769539563017029569138860288558859537225545380942613116902589538053179110387789600977865949772921404413803126875667333127481585247062959247197210244120207932960153177197340338716706649577439980840997141250071108810264604595021768352665762573662488228729130277803215074725670244172959017647038843421257434748396702181586330030880852978887011792252459031095309147033387454014816451629426098793286390658052293524536462305140180880490661674740395292397843495449390663774875079892007516712156373450329284426121280563599231193458249094247721562082990863655782872900116322323101591361768343453438018820495769326398112761438472695983919755519555516943205748802666085524374420546962562431789450638211686709157776378893151073464894104454136692425511911878923628278506050301388519878336008020963677355668375828912412199185887999407663780221381361622545957637285162602656881536132882768664457257519759254504655109214442391984547652104107405160311255968387260487342660237692354253020201556843253811382692763792838613441243419299180515095992406975702696194946349409305495131010572536456267540707337977985385138021711123354658710396857080889217934585452191696001487105542203419944287679291453510247083118950992577755256616671618747565009654796963970000511358818865669104763501730165235938142035809796488527732939248277542347170935904261453634333947404454286898518793773342685794163194808129675338131702437807263377486924597612415842888766464788194206130736185168473889944400796310692598912595036467859301198071461318734657665483712097710380177822947145366961019823669416323198160932239193365982387838212189416218097485854363672597149006684829021786231531766940405645679528190135064167135722146965776109527974235196798409966404526537017468975264140623739433658366742452094153940011765393991836687585407579269472920275136129568946621737556411580582412145268576007753194627143703366969354558622371932976034771896347930848907228136360897742375660466253413316094204789527255656294866095848241982073767505810591503702954918337266271551913598733532348370659654666963516418320390628335118894553751854469526292107305261138787506776500005880876472375722335413483184924425504149738716089300837558898255380694397696296830392897758563551970547507875762525429191609961557204990515313342197503928513708361352800548308954614270181055133482907484518062146524755161033653839383675474533926773724749591797402027109037769645571941958295822683903603275852726950643501824246183931969354035119380892225739501159903424183908750333509334273396191220665022660584570498876210056519231793386487080901206657761171610757205941672521074956767440781329991480856597320733995701961114127705726206488837707726471477292884264118118518806232045960251862125945696625374603185347907452155449013440811341183696658856680878252081559114534370757341657980642408645787159250565689987420238684551787760991743553937047574447901349413134094780128868783851280932201569511188779477867294341010625016644328624578169203382208879234020430956421737241321822341986134525370199752144080077862583562503011272116807982302765362376670340107915392516453530604407987443324538500995849118680184795411057150260006549281714569145296992349323170681623863022553933793306562080909114476534129955651303336504047382658595037209321722474713672834653571257378443815335590468339846204923493257257922492200740840090222191894459794001707404669119283686351221403853754120836648053326168490998331067725140048673976372224381385430105355062125813624994883197938965144213558111697801223334573029178353351142860626029586173063101281937005073861223198393930766310353348567636032014037859477072547451761801546736061018117304169429887967584482478384176963527806330179509871846087613955419611287779109020873484982388554740592086651697715960797270322264146847678727332858204177579827028729453835879920986982277188942395224368668688019031138694623005984076314888707576445519786111104015449721161951466273020671686977028890434850265683135403593914647694511240415472990016733297321421738473787452471602851440934771880302667521506481483925871797714045973860724534355561159749727046120317004708122452044528263775296131014157207376685049018018894924166700022001633226058264312602521367356317775526912882851728798880635559641727641945245870362983076823030923445295181934814182006401027115721740934780731366759510937002844921082886406838529548867022026029870944185808276205026129290078645943894404908701452381056017528314272306630233739058009891059750687954147350103666723666809187893729600764442354497888192154971457608806997505065946636654815342510163948186653001438707975473680769764917022947407974008619336134538910978164041846706724324126052918890049013171067394622555566769067363993356189722199980904857722800902394893680118675685624479224784366769294600476686615583060236268921122257590536317098886601657989301984189911625192015467127874699755428397439510451502792742603339893472045056501256446985999670765426295684611046604243716495443648976615858116468952518141477483905370950658685561540694213108154533217383341742319624912583482660195990741953022631108292087866629622560484443742984061361987281163171082999258595642639177760500638773727629489682307228471855148429659065176680593693030093888925562144243430725408535252768529713379379241182403674256658588279607435325655283679495828114415587993964967604612969445138731343789471171720364827779346179080699698402561060529110879347776712002768026212694580856002149863100351546288241360857152029182382871639842657094370809744958351317367840093979257308814695242014021493553911626176829428207844885547252126035314403060604377775647977309154952166930319970137511270048892967025177487822880344422790010924734511125751016091357101354221832104440502043589092064514249983360885228306177902058445385490723282160822494370334549094990420159069916730667257550351686531151340576567204841551455995609270955186847297527802654704179151336449873962213342071536266758344826511261167749180028081290032250933427087345251008794156672215115428693576430809123223281452787532226017422991458162306256602088128901650706675732519747565299060134478782744049739624059537067340637829483095932859368789720234196605702779521309686096319896486573636462720931007075992946541445112583546420537856354703096012986267486301143876547512261336249308280565255352356557035556630115825090657619553298217869733617048158791268403970190549319824042916159531284107633656018855777734264952969766942923227482036442455723455747374254533941544538792953940291145655402890783639906587783775626007921766338160631510614272882734045433386138436417428555154320820582081684111542804282673453258577506058746836029942783955051187741191632993287424280125592280359349815745109394235071660776387821554501347681355628006241906172609859887347831794174236350028340807563622228107133197265951570931157267509638250727832611412049023487804030868899514200182533709158824937224986494554498195847325373188481937625620864649349443556072052046800027981298502019096543134996492933908086298736041362954705237883879143678143651749549984423062100716693578938241222058541673982260805456508875001839992202276923643756702809617738964662135535975708708132800480651205531199638614833683679316464396206854344485741256204687208605820543200790764251143846822739555463531639713692635640124588548085231070573906234936499680502091248572173413910302078064933274532628356391355360503624960501909060416874075912630098782550693188284225947652162314952069499602878837920139863173541754533298181435007634538760545218129911445109369165401771975168596889778644724472117977591852866178198130609937569664598996433886521952951210599258467825561353975640567467831172277533538346281961370177022891991400673672737817148924762058982202199357226238619659426672009621876508126692004848763155909178735910764541052977047706538788560643582651041196822145769448096896195685479850148704482384421830997735528463302698862020335320145927416660784353305637348452578086463095004250206331643529724745398587601474313176754288297590109348221061223823006976437246453152071820180091565414316971144120652285963944569285097096207818062923982751519485979322928061227863932417606255093993737178424699445850316263603289989928104854883113453960930177608341009430901622136660594116493614666790281914422829661060903135882831217232967003257899282747482787624095923107250966430831571135838507182488077513222222468295213715169266045782405619431045501204826782784845404984217994277579503192815432221758912361353186735249476696420113159729674738351860586011646270403585866425501442291776799364293645075377560911474726182863888301506982361527919579214729425579009501827075501261080018632901499868987515068596720823266098659425501133926393627097610235290138099481859469550634557028307531189140984549263365115007173798044759266922427260667512824292519075811091086365824887173313714232322868318293502689285032196171286665082424514339039051783478175370081925247188373516732704307967457144098057378692752918727181567578753725049199026880867657147488045028177361966190926578994760409416837585355467684510950129200081041212774179694021341479614061791459423059015170351731262112173877027130341425635752413651621331584497529663151215697220414809188736966176376016032043019098341688964686217828279955201117791497739454971159818488223677999731798289388031961949184910014917102266568569844958246771129756050058457095518658440639615929545719251498638648851583009147844852387799403553425640134312610819485533694248982858497128397493907187145359726802926979070469514620052312058203266635566617392049535394596082244344743400588802356117400420279873944202960977601384086497200716820006115220131571033410480421908103109341320444777916790846512620124680080950960689463849321394889039076817231757635361331013481751021523517961817778390925488551584989493879319579426901903772952846918640797492401325028716465684607057539566624213207319613372572112936125740449864157930279947647214519002678488581278691845525795714715759171472504780886467930499573162972471968212923552071302421363516656033264514011977437404797285720298486638887527358479032758737194759839681544940592115483688040367501505929563142239669710614416149820153509987008785714888785811405384030608206325127755035674193455237221939157400123163033574890889075267120913045787607647074285048947767277578146534347914877943394982836105979198247806582634921378688623631157958498291813486294113284410847409068018228726320441582825964443649927368183360419550759275491518321677858714030029642314157636331200562808375793258760046818545369449599115478317239990674511430126938458747890457204248317733934038472603420876920707461122005726712099215706088993583603039117993802866816033976782618439272607298813872168009706960181527977075595874674860373200357319252501008077346787650694379791344482577223088240975651128705642680580059786212876688839733862786495462100161304259495072106570301268845957279194776248794133077481146683286005387952709010568596806470647813664219885417079566592833660540935176995925765206638768742388021961792214896683472327438328054061614086798718691091142870083794006239774263158315375802368106993377783646394600682652462149209201452953830794588441293523930662250028184134049467385341314729548858943741714218384816761346352775955896719666251947100583204111938278774042764690907410673551384971832915013317672357583630852616760560127716788718637986103159533858771575620593460067491049050794354944538673671795229305102233480035364727212924358262165312304252335328412140691650534798324896933993044941905014241517083364246067892815251274639351159237107725606955827999022444497310893656710142116469765356368600063324300367619012523908972388867689322772020158135196576353797258499932710331801690439777643408107124251913305644878778143473067245931414940734066854908728909314456753303187498103915630744625791301957671949712873340324230597527794218595792761572162124000086790501334880404458482088216654056779791734678592463765572349675471181359630881263739273317616501233322895044052882937413301799765054370971225857299263503986364844784761698811718327921236959950181854683357430673021256088360272499167383193293888858828834735081554377076318837918734726593133003927459576549068078241171223617398125646499389160735231985451274463749933541943708122860191099314398137692277960047772989199479005880272950015485033958634076898452770606033760822637532650870347738731036730156198473460700112166437791868609881401668300496138383084816292202544182945399345115829745485810908918558921257500754828360695808218174260719014842838761776584348095844417945279809628669761592155860951156807528791581951937364805090595878837162832489101790299673891184503897975878381976796570558696661461844982849756645191938832591872445303934295797965952513341050991408224912550132054203326757072768710815867976994200464100501753280822466720076945110788515956329626202872733363912596996435879364715622436900559184621507890913084116257190018222468908917793221013400908071852706364284495151795156184295567284436215705102806350702126818019930357970740958026221268850815301109474692699004394662103877545053637923530302551346717055657301874457670075277655720954122366112777591780557333198165252242540767338418607340193260358240324956444633731830459118112188542527789763720338674681065959584866340461658424442221416791134157970410559453337663184759203271840678363853857452893162934704540534087611156100863401695424514374441847561634697353447070588427819415213317477858427426263181189435205229518817111929312518680967925095518807721944835857956208739639120965626291756896974298781605658317619304552899532186955644607969086373476402190914248118216357566943257077092486634912196113588729901622112654908547229986941454173169060174800708667239634475296516601353892050782059635190083274396794542072160522890455169160102216212825664543366046487111506759275900331408469437568036786156639711709757026128210450598970339378782127300628870698818145598619969583648929564917771618976876090262915122616521265582195446524199104046127185018622177061484601024070192816828804913345036438077988024690084322964320783753289710049359354612999101502608225862475365675294934766716323398696504980487797279320663024868106220364066187053909112302028882862149533497629869149131793243735716309891778903820751792888986146025954815723845778126493028245535269218141301399667354740724777009540171339286723471811441532605284842896541014215078862926591436395285387387846769513456033297434163672928937645339618580088509842264121498067186342558578201522542773141590935314369282749638392174562804037771757749656393832667886234270720227612850083699186087396909563309879763289615937947399663169871631013425642720232046801316845949852462423533696944440026461875438367986246523670301009264205386203386894247188999144923160622188907423144003700352379717761880259559428885530178240207521563341195191105182369855639644462434718469093057563084084563400000450877516197216719046416286563285992936250642196552056336611534191298934120545067916364323439635676289168292767793345993696880504152481409905949985871106145300250018417175374690988383598501760101839024295490650265419165136055069971852481958801284569868114358631084472946159162787234370614809912909733360498616553970723428566231263709076466725172577117364160747216837538436953953410924522825610482690267541121308444423535769492421625744057354783384093421500829292080892225454447502561815734729058989270917815033738285042267088993599075337067853560847079273628909960421095300154804526285892444334871147164946052611795558052277981908803733879675687317455236383251667059140837336164270163733320104215327457778247101927235472852574163464093297075416964940324251752321890152657094986168084710986220037118389552595888319405588023781468796251485747440399785099914027512046362700007379315720926386686246800450798021196235604404720842464656874276675867691170701918228098616121901494472972433590149652209371539327104915296387198737656223081242345262299480874077058601298968189919347847633310505468928471388686663456112645268364291465753601151787331717712906818646247565965563116721063044999053752928563533158781183103182926135767944066745977089862224309420916505546919667109570358179521429191966332303001243384393491774890378877938030800500312075080000499292404749019445730004225754751479546005598484659000865838083454126095311498075355536170459696238999716239225548068168847742488329152337522932735598408334775985215457512564093354563703340264328835348857976473905616163472558869416005621152089250562583318588001980375711404477638689214770768238482171012091061679634776017550098271138623513570770911935182992073239549725150622466511480199591740619436922442623380250324482238745339141617313709616949408046597187309813816898222163888892720914073360035759642377919743797176743764312291809770024258344360189546376172472688994670408386830418612616208245529886001885718949820318074939969450229613824662838742199205125522177006452835293677220441546305143717322034842589602943755407230225250371606320547141797981924914066798351238624616788054460279596330159410228223164200730561380397717976133761909961792882259040169404436393565517129915020291457106831120764034929220491041751927571826356589711667751153278952109234726928996758033440851890139311006084309157449605677452727732841029865945154798153550064325918468674456796345658279323193424940197132850226527027201762740854470433870730564057288752216187182878364548926832892922790483456297131770357802634326665210731097230092534304398973246964775518087808632714779751724677865625014892093539880646739142707256639952923391084264277746628914935948388413122311725164296122911502068354245379551777703219728168673135097264319714158861855155347544772223127947518177723875065032964881474936714491477445784474751345036810308082397171412341767255481589358940084024582101788220118278687811110401076781872068525719978305370092505485716281853314114647272362363554186487134543821258708359371904807446926834343519566317078526301645014781728633420164652981805226291143318760448066887818757510868766517331722130651562671810228914594634932526725909748371444451891902308728592144738198900071419397430087758192780511080275533911781263231812733568457033177177806019036368849041836860387949694312961556576949066895452995688292687015334446770939864808027608478575182010036765839910691331181969585166100574464481513037451260811809402265862676361336966602198222960332579337816934848898210628750319754393694541799627372248269305434748775953502647543814332455091622077603705668529335867545773487959862896463573457018889014322268448928474100685220609572724426728315190101177669283664369936510763796252860161324165391406886061316184383770860475739034262419128837844841986175107552539258373369854144672112656396168464352260888016820332592193996134470082009468855180262561842039031214793323326494602585939343145482750724264376445221711304422681745254332791018086809932747176491464962020361707467978724657787475934122615087952683731835848224510362518666851882491032080147855947981681686616172484537798773495202724120016561094849561072751124354175669698418417626115166581771334956754541201823890533453997475099015022922337034950911017818817711177662881297727775451801374422348878881371525956617465888647388950952814393140515877058566414351400949650898001273229203856375698970262147202194624305708121917596312471764788839706848229004813060579136087226112704980155171165151136856676254325033028717744489167874231517557742744389333066372839003645560275608150105709633301655662575912597840646773596585438193810319199535822070414248099923946235588604574494184721022041879848282528128504191138122628169020381543334551177617043761631107545245127750191563718536569138446003527337451214144963036657536447370404025533730606132505420588769454529583414836764302822011346695962745598938595078568221715887901858395206244214223807924745449706724397550079601519605843048387111436063127678346222989083624382476364409128482020053191296955498160461141996054503839204360777548419323970659888905162384915864368483262834842226168025139073820077293981916146343367864964586231467474237834122312311060336446423703232042089556424792454737369990093686780101406228882102541594924205359062946111864825031216772143023953341788177309428562570966821182977687467481109389018325537589682458682214355172560007168296369959742629741011403965617809606979666345482599554279069302415082920458236861348666639638236373887388605744704935822318154206745722115291341083495400885672807438671753482703201694136659345905265843183088832532299898225515875899977667780633279194466846025583268477616886655703509391781995219711565819383343426750404548654374292837889388656767850862991829993190810876637342210203625604774356560101662093685451916057673078362370327454678119537829950038978269799461024852684520094482888477909162263491361369541683938134029964386179958816401615222203731965871574599541037577348588076316493805760231279689768292182648168738096808782809083704972232954768230047607124178683523936506450896489276485831419688397480392616490077169974008608411741943786810942627059315510185874542405647116193407688912472307605318866026123689384228033682027246468996791725136926272771829462713326428318911641741583916372507873196514361954019006439917052768154030946471114753720670573745135584137872430235997362440838698994710523524273789577370522974629878260428143043263825112384291359452184182306012867993683995282208244909816593741555240449367511737067700932231455438375411546533105487801822847454748261301511173411601168792202737809633782166579606973087062140100955708941247170076539745774388150264755485307631907839870022386372279583585573047778188369873174190871109950072972949329470474965163017588508850001344843541593405126366636529968156876183648744000108482032301267089094726640465436196999165927267674259134629344192509840977764810420222150457162026880028166720295204297028489049751197005423966934955129789816664987460946138765694355891115594936794336646243611249696391905016426281041414776595608613883205584980587155222345697691883674686079063779971358887354874058053528324836220169070397448049585900058679631964111512650945409917670057453494399466950425976602236818444365231067245102013432100905263253115416679607274597836047637350281415297198044897050618620592011941771683091278653336744599587149754855868850884903052935945140583388782612257022072562555995234443378772618042010564026129147970062370150344339392215260751042093829370609087625369791395745168494797567745086027551303143907203687116302695478906401274657464306289636181641998224832403358540778020680206264948835929509699267374943693175351631695762818342320336673547087541231476413030010481614323478865261054170356821321570184324639471106911792406524362773386291532283077631391195640277551180022523262635333256171614973521462623324084356417889296070736099136782731945200567288942111933556521240664386920507207958121413266236168121268672060550197203612548321304805868985387726365579273806290865383505722955792556020957484032471824140323228598139642124036078418779929788960912149397911773696375458573146547755674887775006284614097273218585712542353150153456141167764687702069537372529174363945471458547912075896943798276536377486310714120716511257780130050942115430809221265243381345843289505389576214739411081975071654285778232982788330418651394574842506806681908221724628496219450672240604846513001708243885963090647617976509459330271202377986369696323305405977178894738133865933567631336606750836662735959609259888256238907852865953434052618969860008098849548676821007519392024224753659741468418771147092630370389991506811211935929568886063091375149907257934958356974609535312926608149417125588209585067358774636315140175432189333672144644815470163129634200792403678084580219579793068022679650301264893468872492379818069882579629297373835722983185634147569637391286174635104054160965630188058248900720961319068951266229106964037679777466668193954801593559636688523173301980594659800067938812943139211625191131310726698172864101894246326837723122273163108528556380989092933598282222869595657905794456243994967356996265679624340257611075712319062632903857168998333944716419266656460949792534362342192445805336174671030433152928714800737875864869528407726105793279407475554379492623127818872717840870097488995203874126561930660755646569149978700490794655231768912969379397415377463030512531404223201785769898231956110282827841350650863056917659131531912506956674863354848521226602267443387666965024117772843171846007044266673839508253686644070290666137572864983095615303453275314225131690236303278737562730748104103803164802708523796011506845626399078902720572698515320089979517090294792219146964746845539995229491491733720372908972522824798125774394574627063442790735065549698840759939658160539830259107197540060398791786045083460945101054828730160571966283145131491906380634293774524796517724293253856846386951906577049951377275248129346223053188496429516577454406445737121670470892202371044611271733387048120955304489693793625942827372595756679138942168257333970303766447427831772181673693993994843213978353680018761093376869584020045963523777512015035740599203033156847406815799178334499912052042099658266331182830346541604285504745105792144967016861507901129441832320300459668929410439135077257101222630799895960903527220236384586623796256364373652106707148874019003236756118790830560096040494213776176121150857339110005887340943227152848950825134817887373348139653956767570953981454429858879687356135554566052208776330666580075798981824827124649654708313407984923172761716528116812446333878150543460467336067313393832480193966922828060535224920990042319316162606527988076400613959354355147082583167513325605625166518731854319799986932240281069717619650420601289881832990658961892381692929858988566971854332249672399539766508862795535895379694717053214013305443973467682823596268984869360288231607988654655885187719414487092351184113099030512585257363346277811484792972430971539892329293503311480916373243966085941436572796435121627810297216109203049211102286903083805992599767598672235778560980642535603532742333077746932924028993746026934337145695787946462281552126744766355918375980704871276036018500331283697064223917635593279727035958345915717125980358619993078068275226789321527922369397411322739221968097559657929516966969561371392528053888770858574616029795053879795477876219693528338903822227432675001984839462011877151292755556282432469873171598691076661115689722123159114986841353847003302856152072846157481444860808806681903588587077669690842693970253684928175259793664459473616624031019319825024267040707660384817924180537627570745842496850417531868384044542186669440113731248700218601049148243312861187615871150418160262163904444280545911735212964416219407183002103230597318546634039621488125130521752006839313387001917179699480282167280324831375584511854728219040191012938424529005097810796293997396125378007146900626852143140987864659132976387780205151251707861881080274812506000173356222488456575899569481364302326162426363218336266686424187934240010035733421489323181943896588763374830291958955438178908395779767585817175729237564998725440468844231482236696962176998932423820120303571553480881983740355811742025255688068110586076246925500295780276742834563111363647261862650152948523810670050737922467155411035590935833769203230833579721812249490542980540804639145407257686657622807828961614038314117380091983062408443164602127702142718306077481002228926597154820100207887422025194159446354054912170108634555212427562161756158851885025081423480433105933766735501501872177941678123241019076017644898415814974945174173635792365886990325640687546176986823025584586161849951778260848680595918221911879019527841281399056239426634196249626913597705858959553544573079270659306345554985394025551717121530042260822473228461684009771627822034719421240778258949897849212693662206684714278579033188040629375529923219635911786402322520317026881634225942889629726795540962113450629784553022457076928871823606212171687916170591341537129067977098059017910985595080839957469948400824771668305853569057131837134790317646124995032976399424023392334243615798082339836120554025442170389247817300350912092186439631758220593555978855457555934012165533816269474930528067089241698023175817004335045944572668220576520668967410787714109043683973225914656672050826452706612873503430770301896780189503516388939007682167315130993967348493869704869128780428718540780800481332397599656764523939787827099596126461909568387474550531875421165827603666991258110133545010228214507138701507756617599468085191663480406971555713520720968507655491623702362206908991874762484142226152901948766028639028452328685264655398406057381118030096508077255000170919864226390948244432573480844829488784564615696591053545794672491021067583890530332588941880874091017901412042471725638805575607285463607011048034888883747632031207993823784920311072059187464839523779517544690468811589295947819781480600680758285449801106321306324639336223218978354238583459753093148547005581683167594802635648893136657070057322015527619471569620153805934504357865199845201693742264613786329887193035640842367806754011357739778547117403858502410959516669194072379311941757293967222238171151129183876016431560493876878608113700527554345619800551854898272001848433331300784496210683901729249925265343383127705714557219325845352307392989489634318886394918399464918730983689174633467389211616802907365019040893891852719819946007135028872830229383641766868172188089773195912745119758398397556461086873994160131980773715796014199465609311200384650673543889824579749307246761218594413423970380232887642268317504548224441222552353026101647630966721017240427244931531843657054150187683748183473813350256246424362758098237136890194409185839386277868457065383652769596197667172215942917654515375010891519248999726156774728471294384425127550438376668758235347924249598418509919282552524483864640613976246273952591486378193165043996891654112984489790506891319489030226699500610025451157371157748063265249144744379128846455889462765408765851495772573917241251380855778086736805679418219551906354417048195442593061684350910108531107942976987659497129849409187498195912759270481419670707984230534573893162598881432340086428852440437834461405772565296795587429595162590453512159519511273181392920583857672345595786002642602561668208737595215509801720063170129245270554404998277420211163701252538181148805025679934987023041593265669000690448111112970494754490533385332758739805887054279289952608938704077513669436742241891723008079951224555869936886794174315602862442230791661186127708244761732782019360541179482134079183500760951151320694182855970152214253364412242357832356404003888198328364755617217525798571364430366049183344106309644465651660342919635729664529548389362676928640130755791965184152204329364302319329726914912896794905532113815454392691534000617675928968033516234504627074706527580717539204730142740659656007270344170329805034660571760006901950615613953043858255631191250970281330108710939723466905530556756757857076832549036042062306672459331712467419129580078340128625545320219786899184095245947001490654189113903532609234799726646871784293829507233365211738004401475449665010762714654878281529053986851911871031716170544740924968109344234219461465128521037498973504683619120445566692054669646766166796342167455151235894018441572343385788983307301465361313185169149536662666314165435911700978173268450453608966577892425594081636214020441810574468120212661148689466895872950096417902733924771532656102201347720650073309122998865933617602790683009372593074079447973310368469977507044924832269785293710281303581374932845824368183638657527549505046450195322829397541192286589460959582926244475494452997221486109664164196887415302626199829547313837296107347936091532451293705567439308984404769678117284427736418298755390518123028054696606393284156828858910486642610296121199941015389526830372047995672511031946545505743753781592634287251936417242222662991872192417895890356723265827334758890026370452299255300251344918140191649799524385201536135154298876216171935246380097551117131628060501567919249394049536767514330564898087332133481672771444127507273972077290495921421715823619150601781586460408493839765157912594189566693997069184942887604044648928220925965223457600442282064639121691825293989144057049244194659009811800631435350009082951071090302946461176293080026198520793873086235011876308011919989801586145727077343537453788782670173895037828124065774509315977602109607045522355240699651683114820664007866027798947181476776860759288627806333026760647069993486985853050764700247129765093234156236869189253264154964257381953488904463271110078836192214475643932444067374481990811970941723176873656251512684343484249105513069280966807533568587069810851962616379851165867308295299017360850388192475373457679145614898430906206730732878454938929141114800873684864033691244176633521361507099307666388633324410084696532030246057306038597442315816215862015698224150609042003041612005939292467663033263552834908500080131123049684722702452824116393084205143212781420638476029417768754536502443338819276623712522608109065016703419052928856594670699300703661796278867893121522932790887963231372251943801795047601120047625898324050216296069817264160135233341402548607277675060444123250413823624793991664970969536584840062348507623351286238059091958355521748021089270618375876827934184920685501417202652223102889270465707767995455808950439444328947988610997160153508216669747444307862409106334730605634866115565224955263044846694519672339801209083527384183126900683317276349373206957892855106307922704230094419109622508421391554595951005988042589230759055564619641846298038532135405692601661701806403880144307634080729777522238525952148849850022711770471616137507744550253900908046377508226238495246480595448193541240035173901165967472064708745385534056637959816362104639717313591775685918603228986625300063540627447125792872017841851458730763423157648881388490959315228397493475796518065161208666718115514220782778060824413209938452741672198425162808020069777476114712422485793173474936901208010458934397168572695500253662458298338277387930689884000337751553734264995724675223790208743246446597534145686225125208080571367932032047425772623844925961885594995926821296285495829043668973519489650809696779844968368874553913920580515013191533091556344632209291742027437290211871540887730634552861233016167660332823619951219192976264108161044355219054573842703524574656475957915051567657784244160081364892980499011254522798553648109200569799868417090742046168906636185649986719216902238238925487212465416448582820558638206651190750452081734907721303304935932534923197009937808597545417067815506003261341624982402172912613015460186653639308024461419425918096505616391073579495722451374086016183979359001244745396214858315698195084201975862113315023739744168192619220781285415268118359558503190605006726789355644707570628808013137496075211274660757493813642220340391711133612980037269922148559549553169167216778418643359266613859477230674358572384454631274834451064442681396861312532937611766445159544401461407973744203842550894735991572654356467303011870717065980615509255524669461280752104091398458199882074972003511655910908516902500828969129920050870120139908230845640954189520820706050378923063981634251218484436583783947636836572078961921712902060369955212546103084598055071816913600691767983681427427541425365512409789713089467374189307931987116339527107065363065701114723104863031499896109572104725628862242200215925949825907173629320654864600355262385808755762421462778595982258921730653713686753807554012182757336058571460969782366529672502995373081932540232833767647142592612189735611849164798202779489981911304041946799939553552181439067706147693170539397244574216044493289703784434667538667200602901286370429976693008531357644263848072180129191229038378235438345259353390148445356835610174515562541421606421559119715226547244296163752641654873326349347571782856028952955282049013595685409718911490570688355581354275452464359723751865277829215702267425692684047677144415556066577987905396594374704316108973891191167623476154554994182627687061945779834923952000142852431454167835416368143885230599615040465037125226603307110352547230758326656392373037593190937490236129074624293240595503951895049060752801665627290571392972020798929692245411010511550830318386056978110439792116772131992808734487575959731779037026445364048280677186877656032246301068153717367981351261660202636729003767115161694851593209601417777244868851163289312880239046089529490883821458962635059044978917246708236506458062310617534542402489144375478498366539316545773256589942578822524779000120730520509798990391793351776902891081522396434399344408110122014820254711911890578323182762694070128250689948674833822918144221519324390270242111685097930372117469666029542318231868712090909318657226119693600120209243874546041591116133048509642311668938658328942428403371124482027307223384679212040765585880127529976814830411104488885855526042559003478300625392140575954820470275590625838281159370895862989252820854599832014717156984696469978438123771793237657006295046404172975670370379194473521968318575689203810196881149685488539490398584250933065083862632880135991816796392838374274291526865686383860987762990936608085158685685404568522202661136291047379713439030767785672814637994995664543735110711528082227976502214050175209049426036573917256502197904742654680052723244810132601475647107187272880189555517853360029723554541376179771364157711529532336904175094118833891476497164163950730328893227482457188113909682599694507278367863377965783974464094345285869425668293636564749118844259286653080666065460869255051175225473296216645352342960156011073556101623876542993882095636807696995725618879408564463633080077593628074688413869587180107591281041960628451052347062644119674324877158736674257944495743999002694015282964099544100039911352420887189151278914307598211213088392199273861373871915189208258685326236483220804067014221456179480074983558559049961409577787273704392069159321239945417861984469057774587206176873712985784421396886449642485636857570598781425091624983252802929584097365213561120954507929013672285422252302054145311412872663574817501607165539705323934207956207619209584591800129750676959438937243533267558240007105320630954848241015977606969212011027291874290973696469252132545218337491934539338932990172048067354612616233181838706332738090171035753444834330770857356169761407550850203203133309412386114794378611271999481543242696908669413896143885468728738102237672838931335865369068825796757633429547918834385064597723219203796665009499083441974052993954191201867440556485007109960088744021301691544085556323468224364680028675367592039455123787356933925864056222119321974111582963963571836318447761027281427802310131928767372904987743661463322537508815615728679207892989711455529284630209044648464331850218046914281358545407341829622779591327728918518473930801986603766236390433632130994007636515821714117895079936278680693752265862082954510386929990795810859854640512566355161762989472069173211933397603988323978736444956417100833313827777633330480726545369358871956027212839448798429731517120114626818605326709818804122401115201246251827235584933537882231148009503035161806569574552830959002345537685579316912418086610998046082319095395689686475517747918372915041112292567479265485830709434790407284940000504845478436474359364134582927033407593277721636901968112593003940399765819427812556384881020856066744863443947234599634194945128912214130569078839789789042342672519059512402073011112196607133478822422696280933839916587236455173221898966404972658403782141807899551153781733916066643810364702559743650171295834371846697268563217122646376398233454792301392597241596498307154122221500243936803849720475711979762366212288572675558522623143168686167931787421474799068227066202350673078916376559629211203088340911941168590063899497917101517906594757468167291501442265490681703819459896358432866482826636420836605902359720735457386573077242183470717607620316354908542820000832965121949556692394598491802343523473237217382727309331456403758379743672390026061230210318008549032709305432475752321403577204111903034443863894137311477320233387790073443271059090850573472458386850356637268490769956639434980723798489619161300473870545833830795982094914331779697760439238619881035107469961617375751269590400836913094127903960676414179024002833458996754869220486791652077670588569874554358185846443338670365871647882126533770790970628301711145263722716820935516481833839345266718769316778777359685499369265318092281798902982289591814369921784977398365270422249213566199064555188187388944430175559538914562803929323062103055469008796300252425319295390514226183848906899677804990909245235442597977387608593223152742265932757974365098819331730849477480905496552928904570003817637508644362008436735946782287022633515750033221209209769133179849498259214170411592302202495315207690423491701615200866679901677630791106768029251293479412219618093659732977706702904163510549518203357585099016768816003798272580929762368102342844772072778629766647131205165251579203285401010923689745122856862476080006551029778386722755579190585963377933788195005577579996946152286639600173798016976564931737527527734013355251620998053923569951921711030281471986186521360014262105692406140949581404495447045709947382846871567458014671344944309072516577016309461579181691436982586235156238098708756862400852940066603687339996227116757841469266270747044449033666450697449020578260066651119082965754494723228577252311183151125085449540160020815648937860331111668440258394069222261674790966934608845132893472828109227626683227381413874262616783280590022267866550296507847188156089464564344877189536387849317989103354478099345086521830445228003147469268481093577618487457450831839417752415185473469425032439055604575032792032595712851755189733747414351984095546624059956032932789516511686769056845244577454122976131231835212088230531218763228547119023941299680776663989808292884295771712190377284849065987842442871493214755354043310338760197197527923776924970361193548246598385236043407739144467500618072906791709204319711621450507671939445845228897635828152630727374684074979011095940833586907944268812785742305623136761626004527769567165769577853937184910159166957996284509670967860042900164835909923859152818762102129097784024162697188634625932779965123561703625214816063626463505948815114322798725637547157021158005360843014210236702523677716368479390577744685717802121739378175571043499557204396611667845540491879113429147411287737957064910285584156252076674295914783035562804060185188007777086400416052866959998712749100098645652582036083420981293246928909678977293548522620048132010137744978907713405414530960653425863162239022173138287192109542618501248576446786855218361056173172103212536947715376928551947714543108760366956179658411544479583297772475567881841984276737129990411553433662110958984195105607616268349635209742243654644648479172885107640497708252950378295474241388183372694777258611689018278717453069330423998207181977814337593801422623426836486206857544682052002312876793308915191348315963560359193235455683024600602606024131919268065391844279123954105754573327564965926483317204072663267118870215198881099815483705083333509456127252390438071916599264614883781238378824156256427619514009318722607848106185911618629849367231123295857744773164565924691949524276212643301923081057405230694846062645131438144599774529940947596200955320777351894588308304582336495084950866271367664343225635211734788787228628036831095230121949719056817527716745613452899275829130617247296564357178036689858194886831886418732228474653293289041257520008913121627636500606847219357107256534819443922167459465193474414852835751044510504491789699460053487236265287810961541576027955868885595317182651605238673192114859212495960280358650608805518771051242543582980621130861687921004154634646117544899217126713710286467129398049942318889942640955772199485985605321165093144974713860231085100257056989878697397396066809931958611504423723302684206484524996223121249964434402190608358394949051787214873194939143881273056562956272676444389870187124370959649467588635779525725798978603463701853187898255082018811160206669406680566988866784054794690139909316386730162137171189825205521051010511879842420804168598950291967032039019296559912019158553696753134026563324736073640839826035566367644860148797445660279107567926168966949284759378701320077620029465680411036758602035480105376701913645848377218177702988111687265461874943802187583865274612877230174886604099575651097355456699088837414501191437928911787352400393462273321815584366216183148206557258639826934444879831205567956584286983298259383488445856791362125083538661372064815105075591259551649351511115864798468140242232681175664341166179898850999821741426016564701712985205166391317752527838695003458061064311186409023195440370287224147082242772318560007746551082133537619190151718768607714880906876569300323598085606246967627247660610923502893162119277023314522129764506338058087825740903992171596212034012822220346057379138138936050374902540220789753223832463923191091929745576841916654929669159198598819755993833773841652723002301701155532495925819329552153728309537305071989907691886678271235118429873203670199288640922657684649358843209415679119735575923319244010996304557279473355168232858830417534992430219812603033721145035310687135453518816887140806055461279867042764250170437334299977305977877684988342442652727354341137247924416799850967125921603481782379541065932960981555244812697920931984089488483710081871765452386067885207158619178053132710304451621571075725304125776322785789678084537483608360032071745937826815072059121332943175934071006161775672434238480940563696830021161411646216845841997462636527970269171630964357958471618688460027145489099708603127219510520828400989718800489988747354298251488572277988135523389796754363308073210919224179127418749825867081305133561917709602305292282062989564280048085636514286190081087126168918308395011022204157365833071348419853969236414908354948781968983947572795615719271454406388425496867004693069792874118200459920903179337008306234204509949131725988695240817535576956939019062111553177830870809954114620252823024766093369607846587579036920656837728679951205813979668652876433599369098081839217374295416975033198403372444695161003633596497789977725038695810398450289530222701533348015549304123908543358550674307098371257517275761241205959203649382180460813341236900054143740774228751688397070003641749587537746936512163271865515846117760271787486111280581261969351166191587304572879652852479986072159665339713385641936954615229783730583093723868777212008621186787469231558236423896096646960185566681411353053983767905787840297727798012978657939753420661307431692505185519746137173078099973683345528894861721315655436921376202130005618680521402989150254080133828971099587836545620383468655518217905976845091829121585173840457230363867812486898250963591617118929854450939045609131990658291274551107551267089557781423218840827793316037395445511867270223562886245738889128143590998302380388930015597917926430302171088172954223362620120800144296700687669629683387019463852054324701648658941426496205779027745082131297258443140329578307477436151806401532570222774137702316500411774372935082336725533419410185681914950485664703025163056503960542722304207484658522187178160338997707259281779800201502874913830290297009959420105389385260918086415983655479173161665966561990329676352346523994481311666657431496484768751324299777054665459468029157175690706992256817855906602625862990893795103838209138378225666970176813081076730431263310658468611064463504448796648489395331137959696254297340951456431222791851006712955376314239313869969626803793591860021628939174509644979150095495350478363648703969452072842144260232564183930941233672604990394477960442378484095561879111604270845661027675566415879757507362025014423235663755177003134106630831234809425003932476943174000876786852567605532335991637837177524205561904901321390558886889518538130979640275475863201854164479152209117718990880352690472590100501171523877386226124081419868322230044182987998837596151461415369598721020116034084587620804075294320082896759754539386438669660929218524616844926960905650054218188507879043085965299026123668382311511606314155702470849811331755971140511332306899174241489368682606990686461795070737668415321224948484891930772030395275641615691873307039425737578629335098111775764720645781014301335897238582794372504947159351450663443553157719307308633019622556652879117211380013495441476078735573740978894056565942782486198678595849420799548863086689998343484828333879283247868459384519894643678338866925499810748196728889297434449181772149628658221349879809826243725333339258144817724154482473955480163520061291525459053930701575890400948781094794322241227535474288656639885347448446651174980659366571611160011923494397081957973885057839804680393958499840790076158304691931991442988592574765023521467968661261299895165846125666114543737718056024634318212262642281677678992435260854831493659666683155637008265711226451840927647745029286935254699747853074215944472808479095278774090036106663824745690312123480158471914690428994524018490949656923721570036230204957540339358040178171212744510824907968298651037939856275271892832719494620183759344532024143202385901117920165265347392349589566875253929611851717197617724287724266401613050743079941962111767859317329026290867591450068851673232860617076079574272894959468432753047118554175067390222727562410166214477864832617942880626527620611494390065069688414771603966550827630620796655580031026790624583802816275382671611102978924334948147254385765229281525396195432513099117141147336948974517916595433387686111769350373006078588107170897303044803512880554370649656848899639500486935311396192241801368216232742342045338870034478317517444106849835921916674940559216506180484494919159391538541071190776276700771931407448252628548251182488822020962309357911429014324854603565016717369385639911452484627840581757579036378708199064710948013315130722992059472259431154341463518814101683252837941778524797700590228935344228393066034822191310472501996572415265156063283212186167470305516643934435145098711741617229679151551992903160071852534195994388047774909127041253508589287871899230021932412467245330554750679649531994098922660357329807789679451008268077598509244718842858277394180381788745050974116785986484449224929773358614094035504996155967995472731558662390931424914181870090447458688980223631203562578442294365548345829748348791998250780929577702258606152244326951453637747913112237386462619443186176747302246823145739909876210313279538332180412621071097202051916135737034291284500328093121598229820529910117360089781453507359492614266531193023989787929246033911394063079864225491418029318315185768981792434011685090614407770247175151841430385970635973082358494228512640223333021896144747929681980934230542954106896338592468445965236486677891661954832677693546096414099757854549032631401259355555533145433697262265435183531778521057046618675052914403163530019803465438505166011889622296499729750129768390436064061863877996378351189611394807825095575643183406170343000566182075707954526721248263824690984724660906108321164751662311333373515758598628217301105819814641769100728048842927343793301922336238092822349324601105274553549247850448998346303651479328339607845783100119351494651542586298032008672636798709298369937165489106190933085747280193341659901132593374207654738206119966009902250270653264089576634686532610371896369224889024399722023172511035066281074935024902804369861822024713977113130912173436373580507138660232551874945681801303324952643520714836867688971469364515514139834149702385408110318783692720444876409101117879437795393901813716566803119205407201886084061977001908942902835500873680175142684300446081413858984357893845007387216554540534696868094575516409886541027826672061496172899013973934625536678429362992432558133165859561146790751198594627380084494706464458776780367594966160611807573526414526378563632635441383598432406097660852637922570577922163967324743436288054474100410594607781814860610671590325798676237486175671146497798815469207387211302355036412489334549633086824207021572295312032400756833675732534660897771053796245949881703897234504350259008413561074219175111731726809782148440159885494325162729743146813835104329488026695778280075520843038275189986398660231289328751673550616470277275665051612606992847006381725252166434430535006935993560611237253154209464818664358247753248429284121265625143576844514110821146749840365158122217099513387743039363768447758752471335827081718669782912673122533421978957605883617030093014227364565743645931728618254438727542249706356842982072098765291047982094473332964439002014988530438202901792246036723249018444930167836616603435513954932756127835509816764934458173191392382291182024542310110847027396974280496843241733247541159682041769456021286785808270160623934070476792680022986930901573197445160915283020292327522188970154292769104613121771882151776969163850814099185357707985335444427711134020185634103991918806860904362473882146327919948382242300611539017722953417405134103996263027180431024962754309912914182802674038323586883883597072719802049067635485634275883880352977582702899231503703275178615546036874400984148323317612609005447653228747998545212260287380380008271753982713116521076569522722474978051749714392061689851627356271577633485027317333067980479029988105404064748404535767542163879494377655559102162736291163583430670511827733495260232898322235601470902011301481772568974793444931494159068500333903022849456779307428739155524644842112163182490580995259549816822724411896160335553241029419811521192585226140775529733823415992458610672108257678145615645775791175982922781732650003514491967632087335317050318912004404508875346163142532279906759623530164619638989965950252460145300639434568091621238901415095110650807205396912595741429037663750155626065081903033918446505510146026541018370887301505443965603110855570808084154448887200930114397297429365017169780061611289620139632306877615084502580180593534514710551175375678428087387946973937174241347547885963425315733906950933137612696978667178122938752463854915975515385902421099446369613401165581164595212699975621010478267915184617646884882954810009967637654461852763761935856251633351901499732315814493224140452506405607241481986442438080339811646921406783907604709810045321380971919704231602789533604257484014623733383335181585821706079543624190582388830465606956041741512744178762124940816207729366116747355926537665648585343195173785644979697859525252897859661290487691552935188311996109979625983505114098437030577483634838026244706479863770739341122056356309974260972796127510549311866925186797174456884216370795643604927314487335837377187446673962621023509869138149926559174323073701846149183951494754217513335971164832375306262950200284860925427865570012785188046200483502059949267757578298216253089921316921029098394765787683952437636812071555257085564379346390502133719829130129579431198370978942485435207471887553240943462543639456797157843138468637758087167085525456107552982720631817080268709135588292003248420331133416171789432862372774382414742283101335812883503894394144674639223106890571503279415319799130811008803173112465973037062750563281384937677704557043489317194719316170625703900859087130481233350378987118605804750868725887614835261101646357078792260262656680281939376137589702612071543413088305126493407063043093859074530086414089220720533102767587501991010322187899592250452663739006613982648778789686803373005964644212872525508452138271394123743606769659625879840321584982029643873608362222923203676346011274540954275289856516186506868888967012519735315430492806203191948654198997960217473444585149022824751487436889931371971006126867702009747547949864102052844153437478189990208620328928761354546983401484151849080796021564669239366893054493041534206716950503530480097348460954154758453292286469320113011935167151113756081594144320944633962917236481467159662548235352755459977611103889636123269507649478642568661366700708669805008911666705728710121931419538178454420288155325620601294113266317249852356829663447960318566601873481772632850866136235630880343851912798159735728484094988569542071408579691893999089285966530934696422732182116897389449326139616852740124619520002577896329992037607186806326411682969321536733368922630820776500947056450957239554595153897061671036840296063834085050879785996235458051804456761120195150258035424544953759192112455326839625205618179988277968341540276615390939260039935743771509084405804079300491544378655094961271070497311313385469888898462428797843997019666025742089595347421251492926624744905959548351059682746233640826786690092657494648945090745999096541521027467114051340423462031066599726750481364902281425624461485523672266007632300620704957207396231932086762735391202224934344186748693917040349084139641769091728830480312208729845473675346056928181417370036528582230695694115988661665126874158243070203558291119715368001421383965024033953997353925694510667416368835583548682694439424954270400270442001764130230103381031323573838674354697215322910639870773305510363477164942846937357055235686267038240849913666182254070541503778204657177945381914375258934613229281492992443080634390370281987236952603404730669351088800491627259719615589765471771951166825066267125528688588337780910325945940430523770258346389053094785674830191803912874734353904745814918008728909608899912579346326295939791733412840761963233633948939918595496223474055262332787639153319759516107133674733475196038709775098092504562310069786898601634861082120695813209844711038991774812933684685199048294801866790801374343343401234103223177011215095255785958132540402889431069410260013964246829309105022412402241105910618975740414131957188159668502148177924540002470578954876831454994683514177912990366119291945322448991297878633541182275111940730276847941838035232436823250249057457549935319485168394003383700912845999152499120247926559814635296285629290577588671602793472358079236832267131516683246959460233200331725496294295980360276977590675346556042014542812372837392402372646926169184403643552017351099554858308109779381614584649649379205399560233134388493285817890640238362341742325649788259557780259692166156484613313304526266326277378478890482615190944743140537533120990557438292703813471047638104919752672966843422031457113258841978454403628042888999242700654252398901203283167043793526790630369401409828408269698103035953802307445386673138578232258212454001833589597951217926254164602744639064484586853050585942686169798260246192040512539460800502287291511723960972130188058994124270178005059918670263177534695927792136841304505632343388467753041600030873267873379971753648022381761953689360147089292931087568799491290510467261014366311003441340614160786619442269393099023263441984191966388442569345994756126855067209975026013113154993141648895663480328367315118858486090464165534139123205001663009694843171831222057383536597424845437671478878958675606186559751062222157480462735295871708201245181647963598676469677936728990164765226256169582557529671016870501886687233688997132807543943932663562303516935223099741778935090744485686277503973722158516283911713198634846756024997306174611068047090161139437610256240952146035752921923655444724026400083556975857517657679979752339741965945456037509193971257636759408195625626734820417850743360011000601634419389905552574901063575519227207223481800811038691027825858660051048472210686886763679552290564709901916915181331756376529270211938536792791085182588374519618462761685228125209112823125879714358797289100631230597618196397246367709926060283877982785755266347738641841789972415052386789457812528480994052428375651043385578351752450328013803828205693252875241399222617872121174985759676714495111061449919250690385919809246776106382874208425033951449612951020192772422563231503860788420786860651668086043426962413862507625212833200225619721835441817827434636604695690406962091204749939019041215491770577034618362458736088596369493715480518587120066520604485724226113074626600841176484213702069738534935115562767941664856022569823001542805410504083410760371994667367119683157379502732395448796968690802468302042281873111489837592780121099718916455939265891774538135061310736238621770415991645219514682979638660702759278477747946694469223937074972562101766737717705282777074655759806763966492551720154203386573842348224711939433679570116947331508355932570931705462636500716760285678044673057126991598325755860890338707225550166514771924326453107810464329535256784259034471684954060177486340356785423818088833095290113900541293273374378991045795552977496726693827705033060391963838877848278653903899313834557516384677744373672057380209059806646250898340587812587044241730366757929294912158637143747207017597423455107619689970077576097301919428403659145850498716807566420084493549909471753665218872814139309483323892156754012689761526993148917866554350082919164466898326483947227685615061012127046592955420934183672454004893106347733211014160488309254058089625255437405296934839420300920943609807800744035836399058942769179709563707957020654806805596264124198453559740316669588735835639182368868460171538273432704840222735793945197544241298932168729097868993742441050213675742500071302929089279997858692069402903184666036157852799941550393200409045748979259050226066547723670130363820839639324392048867847056472604728905202038155311904739975124120084478630591773606683997565240851539051702104312890738647403026553167611014825763819962472460557469848970987123726083945890439366863767258483567017388913269456194829239349311505887484043009037212487353977764292436559629680462992090135096377613477086474989230280840325226232675867352021598624467746331858777917540688816667484752578064082159929019023845298561480701546164213493997444570597515666858737309006317989744550916995419138790828079738542926155850812697129337757141478563406377617487110173828545817123341782053670939594655873941051609305664413904059302623682135157002535895733507299552412235191352056549707954495471877270551799600544776509314873547017681744056543482333263547508204797380360771652630558534604454215579017577152469710205575184549525785778129924067979182380043741323076569666909273585846890271761089912146539061137294966733583101041807433693035337745393797341401247122290644847165032251530406895255774621977673311245227433723955741763915369966731100545596765582456718646819667792996527858649934004000300065138250839332702307516910885925374218799943242137092435957980189629705726477414792619135527325101928595966329651976420270717812134553939709515290510546175297446391507771775289795073489871165751943509428961214052421917685326661496083297270225157619680037926995325540239882313303670725025546702250906243426967942721426441983017229601650117803810003682291196017271970388304777336961544179774950062129810475667923474472794457092234284033855625653138508732114449916454483936914359704526281359322857131404595271280053689760468710767128104025405107427827265766084660317946964822751821651626767605397987512168878966433716301616760446498999709723535336189208089464760758385547338920931994016314786759359534919518745350114354715254811201247220078727239801257392935648728843074968895613415796595189770194069662596819149881899038700493384491043167436477900394321342154743222130060145508091998622166989831049254111739556517727956631323580483919809090232229850160967905027665572601611892660947923739453976677036393849206031064387330225073629081178662265832575708404164049794766539695997693761923362816953865191428276642169139710472778392632235335973234983062919157742650162657465165410172157820257930632741664535050738670601115247713778124626453281686024300536465445637138182514957929312217408337336997769657934238352642041359515879080520532615431778239716357874688955890781160955586378119513879451175703195596671215262585266061296307862294188090338124568438509700073859721284010113581786240775322727666727466840099307313893663318763664007255465379531296984719207421707402185226485666122230225118621652814144611244136601583935642792462038790606180845062063326723120765162835155640309079975811399584580546746965664530028571627920215094980653116579909809002274653359799777441275612950897450072461534834903396380886595631211897895499024649149816162024465134243103545855793327668035217353458613065346712751934154562034413527159143350750282181188838976199046397479264413925012544141395369963918356312496640967259825700116663547569648234239156327369074505121515214032320877375213962281921769340496983193336903814099465280151930517042478098481105245195496489726297101261678450539093394998793184249810244124964602319704949904677561718814943800092370880282765528915857698290505184364740637878278866836477756251722622209913697671166944370971483822993450289861043849950665665774947626527179167613701065451224636620846629203969952794692210431056095155180137284504433609928542078013561766694648976388239273849039860945458367328874654753494774788047716915167392023080532837758165237170524521325434017798268490838538253153045833125729384504871855394798592859355932159802348960000317834697163529900071725490739383356528629754239159723756400639808969729684638798957955145159471772182556700127663976869480956000640198559248531215985933639084586076831280036230991423766560706341651677323067453321357734370171895037729395647616094028581761282571023895494290494896361352966513499590427845587779502721610032401915270729452551550159264380899715904745006554375245373363626814201287105789068678091510991608334118038830797583662413364857914990945655212875246465084802215511500166048012070207670229299663974958876007520321904192751046940738964149183383724700732563978995672528830583046024053067502899381753832929685475485973545065550282257286754621810835003770381756673171597430635284769642507747102561757053744824149951885087385315230705327442572336609331899888132718748843399648994179405774605195660728534318937332634396024836546957318990409056486480014129577098570929367454102755717557882879073199318739566443205180583175647166754530196651501633719554092899332967336049002553115944039024343212759154975017342268557216106614693230449707117966958067576139498891775181894616192790116611429944662557595645580966821814142816967838797813296950875293315950384114995860021773614926156069211671457066222597510379446972141956226603208120153382633133193310250524918077545046372006792924246022372174102362104456759370529767739776637438343215278616980198583531475136224792403208848607589997800292996957756194962542656582460985303890978555339181004194091263900226826411279324084840806388232281520176152601272054342940230575418783765241094824945193407473102135757560329573312773846718467543537124261669483339546612136662743742630840555942544213323079045241619364051290749631123801335716639843088983564467425418624446505865407931439347475120567556732904467598063354307847331748074637487567925882133893024587297688445028515196516408969495102976781478127927382922983804347706299302564166146722497171791338792877344105267612223012889954555664890648492942118730699806797378478190954014852022598577535657007886371459560105045894784679055097237163086979370309695117472373679477551968664240747790009862457799239289020706906383299060855237005724718252790407806804258733110964235067327043910841359803334491081544302242658202789208189343670987202727139653197280207189274345090665950711455525773020607379113137826056673432483536253749591618182476232814601343863238591172509427532387355114907050572421039113555160776595048250711188257654720066050015257946644687796341196155814550847409495646629384994438433459468026550551851849384030797579296622113842855962098861263849184081773965073207714674585933658691433142597160317906609133274342317121479102250246648817483700376144660608084252829360583054126751505719712587502923112337997904772143041464207222025738937760860051171436247222755677772258664961475741593184699273489890423306139292951045170115873859697076310698635457118124195933327404341231023369393355902647491561989751700227807310579335203342749413226819175925061076260094937672893721038890880458790269324137417831064625733057674707679870058104761630542582675072333646500584892557706694159635155048659405563532108751136365472980724582734686613245321449368886740791203535049809448098637465793750137558526883027333561748342997824531926360143363403968829392220843064405878230175539672711911651863162810000205413440522079758830535511849810762340694460613765885936017542217270239508474620448268181373971476035721736860146037709334405207430355798184183642263238354716280068717932912036939767937491660631680489595719361116693675985403459198090000991757393017807173022253270114549892285511819813104843888055447440879099984328362899371690756550712271923009592573289060952123208909586155710420756229223726107580125666619096691400918942091350657946134889792564690627083360929667090862346076124494004051851796326059952911536631985329027503172889667209804962002043276449328296126151907979384144875211854717756427298343841745205851326436379972915301510263054021679480516750371412775490612398612531945742283937002285925505931235118671202893545061460903821264611617805258763777535152876884499170377177286856302234247723551444792885239078741932454573639653593512059721695712611304652285533707663396753356620403061436136195117086150420897403083094687976479358681552102579200028831180309236933665714695483340079003414858333480061822350523546866404550021201407937376751221609997334092316630533664057789302044756394528383979268236158950363985606451365391517669364490382616936605781353499063930171557751052436035036515606202679589115684886715610381067076107038694502638874591141062632463979704986570836174649831278376566956121155370140400798225044961371340125430653738161048094885514867295537027109388475297923226773382050298812886291784350392304314437076594784060255979756868121750209286960225010763770319270393696481106975503860592131751909509954759953022936169728131565860507616949117521474128912161838881490687228146996550896623352675017808471710755474500279262437638526170155054854075769751668038898206821316118061421520678944334301260281717822656932042288015012828960325893953292176633007667477814460665774659749507369881540969543898583753556832699247293727283952050320696441264606956076141600187658652557249306999824857735503045757704896126534480398443617107708355932273324436506907572552617097611928421404642866714799872801433734890128347114541944717214323344399910555323620192646873462637129624387234941502616566671191341039231717452523568180678281463422068550445295048719840737617637822167608112300428528295366655094235033437995537338200483707098322386442465569962282537669518530761419524920715042558425869680612345023771847940180308766175849155680987885210897789207323793724914099634890012917433346933812579965226085744036887423399948430784254169533677153454821117001540859870696422573799890132942279807941806155793588428658872681787810133471627214749731476053395215047790306724291920483356945674954184936417449527020136701811435978607560366502382418422860612723384287626055230525661675403075742150325794405519624395862494302711037143931393676836923004587810445670587623672592624668263545732528781685571958510905523659022107652778902018323033874107205737036857798816280436676233906930870800298644552231348679083107381998415584691463959615688193622225424149311090483486126550970513604108123813134278632067538937161614856452948601009546609444416755102021952829295093708468898804604847505444412733769349500832534464787846816825459304175035434964928890430583041434012424160701292258348764309148165679762195237294814516338682084651639182644034913102618154802029442314640976096090526501491242427974980468608761257756279006673962560890094289801739719629859881445790376397065397073729099046866815422429368665776872601387508841067789055658401688136362337748253433719193758590585642641061028034758415544841197155868662830043838849033031149907461275420009249633627636368003168988505163891371100687588493688539738542968437081565674100688637681207549784746773937373663461406240670810568894963703071281060961730719461010973104798278475727111323889394625529124526152848684913080077029353049249748841106026191905087269927388472123259857435550285371181643455786239377704750921893019043978906506675916216520205384841774973364999714061519467717070299458977059643482567464788683008952666685945401183775970332203575953977299107886454273692078159077330905302673607150054778932675615473117940523389695709416672057624624073249705735748043359364737677667530412353320670788486436856550746292305640379984285553585501164379139507953679276195772831050278179776273040718619424111860168781038018880044459291382138680399171955094711443633140790221994851505415840383104130326542886000874824996286039425439600123929321780678124441261223612344750503572821563973122551509097682687213022740923935620200782604725007147509468639746243863667336333169181979591217007608936036884595344819759984325760383884607940068139485144583100085886723220443532682325769261955894422108678858706041753493236305760003989200570171332845503291006148446810970210512309069080515689935110011267254000758558065650914695003533961395352537331703430667021355228967487666527819058034868118769173784412920506390461091569238027722724186745460184582379890327490432776239605979845608858541498065655452685634626589206210876630106749642136685174522218277908183225623702968715708937168855673035475020467862700188410930002847218510147544040464389529143939053285484190331292631201450401088622466317624290912624434987222023754277771258101765462865928486024450737007885631365466163375738589881906969289990008473235651982447702188566094130319749306435854984588247139275485594289748099035290148871754069518473110665824394516211416021109502108379591623612370005905305247288078130078580351549713543673850736908410724500265002773044052747214364155415076921138453489198055084361856152785096511573936124608559436600229638652522699906966156014714619054073138694110999949418342437223665176005508624780344193843518876845870802302256401495503972825439267968810419658183449494091954761992433482083249978145330852947231311027940393660185844938492843521737339818745524434940948089497163492952553386966183806343609379998862305529277024063967198070938912413421643345474407314610795741287690968642547425935672759527690144357719376260350556774871958849631417598980416631444251179420352812122074844913570037625400920400414411981162581100356793047062356014978661695326469331556197118818553054962004271540628832627234779222730297184942842411270717554493028269137676106843902159668156148158367131738069626185937118410060754248276761694427213588272174693058384817338071389820868918811257129214307506454810743135409158512076800105037074112764517695041116984300218154507197511966549372481245396944122817814619830016935606585732612119297559650841911698584538117518954927460447574678458258859596070800249617673060031308135946136810301880783685880818074642372424150272139854686753888592685180206626698181749627295608105161535739832065878353735406804572482994203118703197187273930268068710336380364701269049476900663582267965710376739923278262472474560875351392368159686178237237134655610723823582501546550156153623745716986872251580281543019820848850208325714017846055783858675349469393920572193628944130564200179084733383558018041856800234014566671646795699629223466887069018869177715754145334951783540376591624410499791716444167834578138151792072157741119581673066455812670310345383313896102105493418185033527388769995726962769996841389139583310391431988806254394921332248580566388985324767666553224050272176304642576458000482079680862100423004958278347104266591866192086157647542516153030642859488069444668171708647098070143164994554500388722539586963689733010191133591557703117539236547119632578444916385854450448763110913594264724912771017312841913633234604892084880597658008747679501613292959411931093201122037688058546753148444192946959593103897864008121181037025362998450855916024759956504403516553863397046834219039778773737959416436781193215302304350663667593635590271040814207054670512611491941624539399803274440709597323022606169072265917331618147432439437224240804073172733578780833163555697936242296668164992859086778185235022305711990280553425852945431017490375416847124766842590190736546431876545906838598206806989048337271176171050178650037870289400010194804669175329382830594677959110497446670131735779267750160235389246362276742834246193121892802445985637567871989651308459618817773090953596339261282946157961843719882674299987638262806262633125187657689750755158839523867890366361946802098099810284055085266836929972058599962605055092625702592097375512594601158610082587418123684786396392667884974326024341553524188698930065617045543771299509816965335504812466323909327235195826813193443775352065946682850919446727487982611866407395293960815486787372050143084722762271351963514367311660701908093358162883783795510482235082858971279332491619747053606576513291235101346403941075484506028244459596382125914076397341968437209699499243716515233464170826448959798551310397271868193700958808931903891518484419419491806060660614224291600373666010283400486368165486897744050945617428713123120950196661649893944278716250269952118917878839354441997417504621441944095435714888694856706497025661955115350337470713737979302379228480242633446595659204773505489694521313317967707753864316329002367007311895361087549624037622438612718370883193184588226592163962635971825659229990262674674092592341576845789470280063920606949422280069304224600757770415986565054961787490965908261324207245558938112549613812620053051909413970582107708538562599888139648690581903984124207108345637378266139232306011135469153677797600338558596987245860354289626089033589868038464928449322375950745483545104696207991130348106182724288578153627282829673670853068208888557746534999341031530443370151455461541166627607186307366998587218965480500197529822980907314062254985540207071166698385882502404474885170806006610013613849893104236511545430578825115396042417174521430287091316724577952329345218381423474724384111938164992333461039395524202057981014584488616240286160729700718539441945220719380475676239193982222621763765042649801550111848542641422289040121983617662631657028312337148911401112148458816913096957922266595859174117571583002478322156080369186365287062303570222221549763352877944517680901972764304591117796933544525904042090739447029596513212030743970629332585881421542075706621803426465929258324905322042485615073379526336447594407151052633643551923771674100083627238137428222684797866131666271871996187512329873686493003200520527816703986892884702796203257918970441024047326685796862880051441339991253245218533116462128605240252149131302060962644724718354571352558235417251606131308712029490490396051158605487793617892809942490668836467355618759942154182029239380255166553307309531266205906118115211930585268365668279272660242705154990116011906545886612867165202084304261601737456975433227996009976153990928267249559189380084309718423953457317098423170184364525387211257092304462490809111346794042215466066654381305531100775362469692284479154556862606562423704681546615619479606915287529741821951854279983181571684482106008867467385967923131382810801169901537424465639639754877089012790398323484277997500809653397921593602412317542734040606216476592422722259284851073669914417866264616850349423668313987918946556125821971138752332951872760531516123981504375700314756651714179175036725870867347679929560853837212805963902463994239119115094876926161416903149973818110750731396567026714560392234255303765309383634411882986880409622464584811951947535131158847229745439633165580368110680556840883345535644626201227360248660784672696179015781964062900115392058577436739647901384942364198191130172369847876291262168851833287085092303070822184351948320259483229691358309895003916426325065378244121498044083893449110052442575698239440036045963302574690194933227930597485231431001615126042344797743945107090962880755863959121582654980735771838086397273954623236219056456449424729996727892260776295986851098431098890917133694665186726609257921098727204352992150680992370210091151325867720741242932889112358278557818453959785516534910807731679417295536175633359895470570899408541298455248451537981536730771003963300826401707692119380313252234773605597564524511981995423440764837818950949820495964194442119734695611253124416113189658455166481706143651735390247855712259469095957279445079575786456587094974716986889528111445656015672758240404653739222968176733373950334200763677893272195189911752278134854037505926117908217623115860534037986589358609620385085068425871482970194920251653573951435451930151482776934038561987849197524176073936628913818655514232918138636080465285023003514228952549841197411753393938010272132611336124444277964791142890393115040587215666175842801912234405312287460316292206570943442026547082198987830176837216728782366450617177115295525920320323895776163914956212092481065673000178151978744142267908460829188011829474192871421651829636459715239844419335131614990930068538185800575267565715013581557852830543469210525852093069460047640125216501899941401851220063984316875861454366316776571977825263300161251250814675704835212762124146538110187998796634392171671006933187357096796059080238484350449921346364366957618070948323244695154129099130577947815115023069398033582129017209879071681207335659401348788937356812190176641161887068078996898390099026298302422083185976115679816507024211733607748449482612522699956058711051451926397116027395756746559299255038340277950332094860906057988929157827295547254099621256491299290850671578564881131183837374524449377070722458661836503618200838478348063978688569439170512864238652147776314901522242721067408885845660148199344348828853945995647601332765672338775546810880784511509284285938342444324540554648618403820355041927045236275241346446327856212921440166900156032857755811509338321356509461272958451454234149181594570929303410160670525226865281755818683428997169424414223385964456881421447399491580512273229013232363600434734739702913363476302751329259482970336644672133749986977934546382048751219784963617050066959662374806046613026976556617438562228594506244729636806549346471941994303069410888528483142928264248908129524698886767916513366838779648004507417961960853095595363431957842308862317804842550551700848696770822836703860904386455491056859729003162100486090021559329201829660823144347454732615862190672267806020655308704749582022700487350989949242211034077879949048828104321458448748632291665736062715893140226761531950508212926506337065925745992640881219113409573830808674781348284026936029150372503606135071719975989720004876161590574893590527364440844260371639614613494688532523715865458445326123021553387131463271125973710266213807899773379788695148878858016504187239908651765658457885996792833249606028882031488523184547489649084542796633779821877632347987955209381792116150689896110197348873475768330603105665402796984094539929757164282552408353937086380751886775424507398961492542541414429584109396607447474204000255113146762554793203798140283853829835000975298298032081825380393181147815736974580807669490753793607072349341626632849826822067169613436779579305346824668474229793196283982308429286430431223674599630535960454759206106881542641898053374758639755919867208496093284268478055610755371952025722943040845370079285795458343884979119768874777014992127405411222043145215256873130201480213336835267797694637094357887818149267380817990523639909739559548467187852383400717749359243848422302498536801710227294624763102606899130932339649936725102235282265153278971004080437647176121707822391631986164126952334191796177010473123846645612263492057120674413043946478838772278988281218026482422205429127283595261071763894162272555371194161201858826375810114568843880198927730048614246737705702386930876060969720019721593553494878191463280190264185632530941414401835728695600577065651851183456354055122620852086209805898883980498477576768414461720427299497075103401077871938215536834056259679526985015261970952542762371025326303938257079565179873613605923399287954794952279349846652721450142832694469403190322871695011705036370800452351783269314334081758954951333550480072737237411849960648261270635726145534647310919624930502788989537942713521293545250605956414603224874826078090182585766877173461844259313981007736718948297186425039976623235177997312764939284472236944508473734342600808091538845649194270129797229944126557728319899573570531859204956415694691490110195927330140939907680764508240746826415081187478373064965102264659987492556430828177525445176492662892019566519817538618384948783206180962259802416725618858491760101364177954922400348262829183984131661294014657709479217587438983657372414221650134981145343109081493782194366282418928903401198500357615605586436005105479290371285942337002491133126578917522349071939311188966869938525115157598450421887870166719587369805905576555247920543740481506952168809085292769093503798043979500999980540298688218603873671909132796332590160103080835865988242622095878340348755903097599216556234264926848558420560702619905127494599379910697818877452451117937509653018761389746438607715025801623769719909033054952879850986548920923981793921606006525631687460744883560476146026617304176901109218427001175719534166787038280180095422595464030899669850249619540815559619956132329337312386605727594956597062207429347427785714463833098693486090610458412570630700950183943701997067990151760348164241215771984308989405719193920352965141468667264628249625523442569151761216455002893016744974488720811391470236343267800005895893937838169688553943551284146863153221674525249549369133067382920454610959230010960501238211809472064448113578685068117566679280561539795989927750625619892065873553614636643860921713909076130980345283611060298178192297206574300024916915050281741250419859975273944242402501360033688138886938538670858201518144000661413996087269290679817935807986082427522958113420410861305148423455286612573518550964549459361557607053824075974959668591608517308633213004695838421995361722827258363695191116931307329922972972105612208057686128539643488146405562610144283108677313835497592068908785078669099822449600115296521659471410725222260847955730837076899168501398634028951096208479258998393591114721376814588717626546578023605019251478674910915525574999086410338148698296967518338007734342766789382152652040731423350410437640921469231703202918984791140100456386799829540204197875677720298157107769856697068974500259613492818203760884083798828230381539512232576049543298121351824066253780480469604037668080042588058875820235580950468282419115002154518254699574372611145591144460015467380023880984786650058181562395853318890144591189299973559751201650171754983071941913496305764689278541886874211081419646230441321962776838624448288768986916252964592900039135357349743465006958488733919413721672495575184413502025899378128399724044284290650296076697921343737249179840178899349532231847370278963578611562960997616285286870689949119236366180220329081173893051099668926870589719205780876971747573977275194048662332883473984842262801230432067785909668464834807853387092219245019896548440387067353814402646679429254519988275684784564946104797146721481017748908881394048498800856421241562916772142870599715375304166119087343592260955795158638894720631427449405649320600680985574144805621506855261665962328637856356616499011608402988312565465407560445402662961045128590020835362254279436508203162030794424792703145732683520931736146283315886670663493675582107611083404139904520863801204649175669784415426335616953405348559658547075740728410517162487499279490566550932947035099748160190394835267009016110076238231602760588870663798477000314824730165354440131525462586765162127968407196431425513193767055440150822321081614221134315000710662500259054984356048559496184063128652228984136645321034238856378091697243021284553232954960576806589856678049080455402404067251014502740825916118273841191009164329047473043463726437021885276194385612828562984437080772847183704861870525138153161982046053129228972510357746873825178680806197575184399714756380920145235874154005827011956863513963549300605666205575250247756536867942393509657753584677806954542575745007065195688248634157722006612405520270154772055161868513297893727546942591754144865783689975232610873726238476109924370829541738080918914644975011558237097419598342065111112309411693726886661060581842124997325410290912459593440092777330069140987622143187226107735661716800845826594928696282454556591154037234085511217326092684778374652365120298355762632048661711374344943711280308659751930476081998289331496896694531798576916509327343715563741083079684387781767861955644391125089579340123890088821162217473130841649906209807158873927390477364809790013612714304514402260700637702513143166611930998912698007742049656080575005620749792151170628028583671503181207010163017410118345316114098823431908862227576546605515149712074478343494336418486466029346591887214449698970066645369793849767573821649215101680551302179566503443768825608450851824988657850664111121268652911381111192660880246119836186731921963928236498401368173397156690640150793292522031816219677627922719738789833469203866766704269018878996031914468660958343024694795796880605323796222775300769136637840265313575074673268637070897174291080108440036219253564983991653042580519503238602214013823481675631774336427986604098188031208433994373688084026689279085411946851350344350124103998706332253709487853698809846237583649409883858010502455758249999880980130943361663106088935396899074047828943739899659462179162864636271136297614825689732627723257827016418439202508009929999489296330356035600098550657075680970941286227762941767924229553683525889830908607855419472366417399597213327848289880629512666720041381631898747424022303782632979612034775774817368652379366617096327059892720618861810821513553213013220429693342632939868492997058665776837568802250061555075835032690021748135025670842280673981482396495711630695481322206782052753505971049628217192215533861356428507298819838285078010580733597303376534904301271205665245811025458161721681846491462136820226238972359541934671117700186429065014327431614780483774900491336054797708716997793538565152773824867956781317640438814565616738712231824628313398770514853743528652139065813790028209930619457473329685412969606935133292331252644653303325074012109718141831966927637080681749401143246724193910275648943931064427665531082747582051519358464791241718651922211808281031360646370167530742382570272431514835399794147180990368670071520604402735833701847056872673105378696206441064802339187565256430519709554369306484119316388051154352364980344544140709494705247407717800746885256836127163248022662569892346823392127842120613969334915829615548437214150148516693345310344927613046198555494266140507717747223718193048548262221798718014810958909738215143765371875203799929975422274199660970207689484257733249703171704408132655671023618541324894275295223427448118781870356588270776619169075443891505766508307779189846726173314380239202253427128288014274575810630379439757179913871670413425902143614482229452793022286554965579263239974220435980742127375073393272300199002073100476980980559399079809302085019894313607724978664358207271942277196676270869826095602736838787431892024556167367485389291478603499173777693044610663985925582159520769285185539613777475106988835738703451686804867382353254697028474981531275698744970337280652732287973629210310407198170368125832282059903680561615692274163224720922619707459810399881799773815808080650281044523231670871982791621596014177092239624041347491084879571460937116772912269056981808762460985148780141282874107332968258508519088001492174875026412100405280805667889804895135358193906254463791525975820667312606067713289170572131064705084581213074022367289270779737012620579432219979224446259501656030573614020191840697192921570256353373083811182734297944137098208375955476899368073983669453897216610123988693695987201909230753152755690147212913708275056334652293055665130396212087791755941152952275835337682750829474947769125985740936999112664076929798413148337403396989884348570622680558954198742700941323065188209504305129090551850937802373279705314071465969112131224161121671043224653826332717666820163580980720673620784909112401394891229559469751727241159509490732422906652221706339101137685358347358514459505253012711754261483548120493750064147505315095823090331446923594676498047833232097269767759622633042958318162465526294805602972765405154191426225447170594217169717707243932675975725690017884054296713434258443669657612721555008056797271509253558453229665918387086410316667316958095305753275441191745280872615204717656117583790444748370417973052026638713068707330202289489616432862067185019888784094143511665113839312311318875634780433842310367853237843126437233706508754446168091192883091623790029170376813754597419928364917975221419128395058659933806943117912136560215890049893587378330362164825158035199446747552134995871064871900128582162937947397100492880704321879264530960851481780735903976079256879910555519031279786810637205438753231470763923549811599794359842018535539765730009369399727826194725355082750300440106690037989502576377049073119705812816763603265926305337550419654800341755329455199243335639193026460424431772477491708800499642083659474139511720027140475892243859678681230618641272273773531253289492374031895089794840536848386403173465854168178180661995110346004091936374391123148251797746649474700491878419671598085941443106955373968032616141619234769522472323640796003703973561127585855460704743269377060453753387952398980711903055035385795624400174769269823989331848758440612177326968728171202310564554954304178361022175277224123567898609231709001763067136750076017703769922886718123557715025242509978227925729466802798754976521950641072499943967317753866336383274643650116817765969934773731657080743851473349358460910477857992246744521621799053850251171362746468877536644366257451072539278857767120303611954764119665120108175944758956677981961598085333407832218553504384804389676696811521895820427139991081775288762607422356127862261439543677373897908626014982549129844660920758917100085545648600107381482835077672050972564790558025864731505369701567989834792238656462620031956455919750090800646074370135458519229259254569424928099280619956780134292830577082880518617904793554106617932110659719824735072271026714468960193846629227020049223698479226276960691634783916065224333627513243866488296035452001088046386439076742883635751339413874909134162703313876398296431345773807935360566021210327536980807624277306294159922559978755078462134334303536091439858661072798385004793123396301175100247970133965435151254998598905738748685303167775380130937915004344877388318831427321667955872460492429537553539485641738523530918915320164962976201151218309881008077162318380632972693396917111915720522809953259202980940582225890518168167541658092371571450650759551705954831494364765656446482942120254723055227226362680973139219948804211842972668171237728403674356070788946505598104589525217865142184468885617653670697603179234263440821109579066644817078257736181846034687477048636970290764533476903080786851894334876442946120130715322522446859204209708137956519588714583525597430975622844129621146708481145037683287115676088905706799277104893059629524022319653760358266464232479942548051654293037420805874160475358330212578128866430951138297764415315957330116218440548932230546044027756689925560406032781025048737301015924294091937172537701244731474416154155764725243972829577429918158379075034704850135763517640783846577687477863572450823207543187594702699897067024423995269046692354021562356341293662309342512229505735755975954949310709684224087374358539304397386370535987259800100501001049980159620183978836811325461778513226295331268096086064658051207953909532196490291857697880773748691151435826380395094552455199373042255153514723418526263207299315571858398335769595283400344914647863730778426103071614034034919316485049237503676968570497481603338680345920119626582881148614914567777796973322244868416639814916752659235795663027133317969860085328081069454397022051576931891082811719944222179653276711972053981894497559264604593405743835389983018047932515829924658472078226623363957004850984830608649763388560269203179508919081601815460294761459862270585219088918514834381457387026369341543306161040252032765684222879550354156749133254664377106745311795519587554487371362057973603355455223026792415760351917287165221539549591564687461578500854650129917256058059742978601310813688719050510649885229287677323678570786726053220750860220122326632346737234976969174642984594103980035405633001286965959141657152572629197708992997796164224985959616693094969896499766455921104269710541511244035895716109454800071171763571736528382145347374095836403273186652360347128798752284558632474536571704528179183452367763560493578416442419370064502506713793917881488116670928260521434623457988218796436954515284679377226710928216397545712777092524957931321957661806263026261180059371202387865403484905282327192561298800501031302818235796126015711154319282380760484316020047204327624471006360025224418514624425753467957281105310858599574547750542374496682611875409291613959737306834372352099978310708847543936736809056332405764301063020915099857751137931127232191906785482018442613679089816410521713254663704819189782211357621694984381468344208634419937433877775559908102464457988124560962920329937500413072629506230144981844398437921519061030883360330212600040260472931182420808101902221180897825843920478281251147488968181808476180675570802332953184087295340902614438121786536100642281289348548638279837705702854643630887815804948453697188292919164898322411832433353409003685078711917243773886704948357162793262440032843958984314780601438803949360882827376381875830182897978549459924019839886189231406033853818199099048847530125572615698526650826200197128192515594550164831731197690324690835762965388537073173898597131428903461946497652683708854111160528783243544600719649685897732885612209575022037269618726525741060744899382484459978281274656100869841577373027534516744472073053398715479790674853659206511788628991566644839390805832762061180045515404327229549242817115209074807845736473455219952199730292434042311541413407893092617024482225754685211429534852549013466193684261857513600166850323248000254690956828755554454353677376073318818099389082394167835121263150759887430549335000901509153712352680930579482074188764797364958875794321214178266303310951699245777014513312756803143212354556280351515018304871681692399016486920452568150598592728482394675334072672284016304805886875407898663752328096879696702800175741496229760517481004542272213440429881665464337721240798337572687596605792764522272637298167609202037805949521870938563978191714428423559251396096837233526832806119056807500013378589735211553890789016223168636597843714295158160511450020233435153151746100637925270078361693038863280783916633418333077015671840219472160711081091663433855107433751521240225669633114964292238755339764026120693863313523810642471935951299077120411451270211598114302263074083072987081476860815200985690190676392500171485565578596734636435419923665256442726998102545278506444543890732889920100158754343198803752751129495902860260866194576615901341687460780328990428434875018078279465523074338970636576429078365610846787875582214577688072363793853804906104139152418163243849100940187097979446452659592731583386912329630326510727387484274296656916235492174990968901545913930094567497125486416249538412318224825284604493537811062728370142649628715466617997997666980177001095681277839535053233743989374281694975927471339596599372382895442334106092619907465761713268435699328077130195254870487540142428036906349712394561409111644991208792232209182296119213084988190877363062235143470973844630394032885849206311337327022802849377135534101829928463727029993266980862961782890287689321938593963166673592115850677268300851010851437548742628373070561033056831358487926025825628040775795560940951908890788579067388449789516194458733073762927609720035212723830027681464053734761967973428307321675089104874232835664149648037526520013142447929153451617951140179323062379830551329946372950784996478341202872873370950467927510103355660818443114826915131671232706003726395372926940768436625850261340486217695534336453583043042683250329434275107897604062680881406467138991284487481543172309726292241978866538978699497624830436947463187531600727522321389096897415862899711799192048128784296899896892882293172363619277659165181266686754011776233471141116545477054808120659812794526507128928810180487154839383078731095981062034596875131365599162131381238373938245342027215669418103544193412098592541769131811991725579575708175259285951335850312265497683325788059589698707797023076707166012443317963241726702360837996025228452678577712874857610011995065795224969787153638231793782536482258613629372774168061729703347011888214990977853196894210681007287052228194152348477007993419514016153195855811816169299320967900981929031592788704936677205256739702599107350581122134515022847935576024168238731087114347103848711600924366006823170910874793487747071838337323421350627856404440281413571782158937818067078793435441729150934408533566014433566075960392163183989161950089428124335898090252517288140066888908221984117403778058788216110437559281141122566946955634932055778147914335096868513678884625633364302660308704881058296631118263833167099054897708340981561167802219610329476407011785739137763400445949683283239499819672820097555090551772571901059768673415377700471288732123393189281518560578657614589847120797305699240640935324960389624471449321996402538962965705849536637292888490507978092095186285616964144194115514157032301562084049246319829656709969759096641771449436755318297687749001965210592697175564179917113476219004475354318698733428105817815437908211918177470275989351262666385136069442856198395681514316850428465724769807562749546545263220399833838701427455131744601568968857689231760950924104065403415532634045954384339438817574758047855543790297415832384556852038148256069806811161169776994120374445039941905719020103153078451993402288611958981997587634505570621338495558235702718375128081606539208021987043517222804909745628335594146210792453642061612450997346975894922814414124293222682408773580372178591021393839317675051471091395426254753719673047635514957981172153298675971504673909631724461766699771563692260683709970859003663053313392770936970179318873475939161265732659110654459901261021962390846221376506970730772793834115666645706911554382675285197736094258290442030313655074366498580397052050662954943750738279152673841875379305040159407630781377164591319141665711700070914337201581406213878364451446637974525919064619436044544487169428634465331302193131116193828891433983221545144189689201340683145037514752373042503752362617191980841510362898653452549273607294719705568495078686010856595791244046436960549878040262182458627192311317204073158800001470313039271804470978447237218777092994570421227339058508961203693116673190050128728246463438151013621006632702994695044097089634021534601515093008690025011548696132117709947499242573884682953957215120615000282746373648773793041200245621543622379440580385726366329992816178457479356557984425527486315568773803388171862143706204627025145108659052164941881536869979300442135203309048453986512612487707118327729380407072736038691778005642919663663529730505405433350549855489831177926544348877124195047126252708438031236642816242455271298615178898548410637388426991294594954809540026230218402658147918687170312732197078840927055277488046677168361679974657346449754204056202773748615078898766407463114778168289661627539872972599203799346681664603733073328554769103769665043705686346674793946812197272112567201372410208160042977228699366207470590845365221999327760791382179966259409623766641468760224042050182155284870890352864171327090073131397747574844445045294053168839714865784313287280498293805286111776883593712982969043905909002311138797570751711302378637713982192805680582755613958370381248401946447613352408722039350853055318231482707154530580950713643904853074013527587551606064302042022920075726516597327920192272648322996178821964643955833109523487721459427450099152067937218948486710891454424659031471044012624160629153630242593284622767747914726449838975677349237244922845190172871899121296550268580520282343437365093813729150020516368369703442566467150048413310804937293214491032900442449001072131252497555960028572440006583825794802841938431878618254691885419313439742678397661659990341834474715533706522760064193064885540671197994618921122671953504598729397487983693406471341761030418391193266410255000911417879056609587119358685441174484467919463178022337602633946851318833649066583048859011173507406459052620010340918815400351069011354104988191687579625525316159297742681049305421972818816145950025971872902023189392868526814803296798637354135828175946440819524004098103615237995042127530293603138912456137184994046843442039508647062717332491928397815147896061739461832758428547545138249368932212680353191204003608683142189411364188874333543728357951862375640379894906459861103512703513761309524915611030106285001834210669823303949076749595607359197622217366782396052242204443558717199522962787488488159218987165774955082567237667357798662016800243036167376354737868253573701048294528101326415474214179293637833021898325980313304115620767075739612044309855685378894288469384723912908216247850438523404811584805719923932788838365738853163665429555416866202485654577741529875063981196641354452218278226018857804621103267597591474024837081328266003513717936161068578834346231784730811855282145895004633668458688775429705872531403220455042616095004298173255267517968894292714629705576521365922777665905048159696862799182436662928871542547385736559339695460547088559255773321298113648561273402063070041902179774544499388633948390727021668962434807140468410638479712267824153295262629152526285139274596084593703872613226411754209041879090283367278167047130345192600525607532800215602424294996119980237134768239233001460008581825279544502490988178818677461258906127999583210645142187733473694179953062359337658562541004061066662760230397791302076702596856165766670073320494838710748113852663164841769524433566467699619734754926944394052361823491225242580894792197283596532505797319349848855849272848670537974382092711708395645831897617347103559333907759034307272837613896912293812102204090498450490068528038863542128919213575680304242391606925979069865843076121480479236359799178615147477805865450623053873661204905763469570044723568204136198642694472550451951245955755723992831041053827302838476006199201679115256887470062710846371171582186699136315553897462817117974964449836120467611387724575810330601464000400312081223770887308439354083378438629942199106199471992739693863282771370934958078172570636355222265966290726921496510536592132159079708879399703433741380169856699787691288348561861498488113765380117620437762834520904599944971504737828168042159019159386595018348008012956417371560835148016221898849517404324852735563907865780281612340840265262136398194355530570165879564392984541443591234909679098902033472758530234218051022096785996789461919233979831304855178387006658543670037529668991204829977779659277682308976224648160996414393509501001884583877343256405029001158752824721336698498992993184581470764719871893669664509545236005013219765657963932532865190357930297694103659658445622825825430589337830762177256784908564712325534211107076524974965346496749517022610842035203398480635758920014284164530345380876211768003122282023342302795576857359882957132541766610083739729543211365031177386574147381455249217607876451666549553678287719743900982067904653268437922375508391880339825050221839166740690262425486787550521255107060161140768687725062034887241071666553873051520977430177510610181631170109826334890908307353738172736707705193315415447199273116274226096628000524706375016999237744201947873359286120480328649499164351279153817270593674089537798625984712321645242914985434782407365305939344423348507192636050085996518763749335175906048022442263907460880706920229899767185942060026091934261956108895424757766598869872526466140562906778895671966834198771719655610989680792191392297097680088557723287600402197791913653982660205275903482151631941891423337968446153133779835375070964352756056647062381194908839499456690245393610786763533143087248290365248886722473871006902399154073058559120181604022504046734999475226155551856467764489951322107061260213462979885912410789563225735300016789987833907088285469800594143881249802486794649670987591634157237596270005632812627848985841145837169008589402145286952455469328625508594790530497858620000508865521386639032220511487182653874809980324318433876531574016896295637970212990172458980307828084269514694934623274480618850249716731153697956482881105972334013308249001616318458327630703239328314842850633515196639296885582428639018993052675724337165873282724108292725952584194313423953720191941688567315630870471837038998711926095437971286035891290427437255256581289306957298043433711566424727090842887760298415644135811518602025215813435371372715163874009886715793775722199046183582226555186368970073537751214406966217070784190974954358227280159669864328749007114620611501385623385963959155230126363779917971807406792006534168894225858376233454933351730040409023255485378099850147609221255033312439119782285875368658895987098357681894314234502168366077828229462976994978541675655916595966338697591025397017570785715901370089131492062912825253341420920151386298362902044865787169898578328626247729145785394734283301478588828413245924332995498602399937480836760120875696947789077172383515387734252402541516870268142375176857523811633515230782997189063516910445600013606935907137763112584533707574779103679127043481197921324142241197129569138810616833443319399199358990867054308868812263360826787137476609637232446290070624578515426711534675799858555191049840202145000975799817257360570340412857637317646110653780485653544105243779102540393464456449721339763127392117580281118059176954277007684347861623977491865363278110934209735172637406037588267918068088556716695149933076542214244532332085781826770335042395517622984040911205568073934364647721015637036472097372236530820807635708208468637799367361629870828619183169720126892772999303929756619020892699291757459619981117359265227002108231354650419794350778867768912412501224073189863520419261204028745658161404336919817300137695093920292029302929002829328595642780819591221375097095323629448742519021513886969914996091629094065366326890296452272940528218907855792224940617153626087005306849191960114293643046482735184757848163897927086105306497153865113181760063457710305632019082650155863030283779821833744851107820203869974935947222707008553634565612201703533467247179791098316324501130931548688099083279327634554265329903233500485064456281582717649906333340059176733462588250682276454546440542344669458698997879905116883800566425950709146962593271858654995480127785275459435871276167409079303426203522286920948225937905253170351351120939979182845315291910272160648926414808148639532874112482244369968667852427149683498116697121349999232960948053481849374218198733080078605273250664394309386467656324933182183731153898728406353305630867849370329763952031942124460488323358276891302224726735368556620331469021363379534450912857102187162009507265663996333100902622717666652696064351306465071331367475393969945647687812493116319253196317309436081797383885581153484861120487253312495153531013238082380550633684120974892690400575699236434761484398696571570921035055476633609156801013935050079054829132388171428712162262989316242453355548794534118829828179589305704183060570393992289605460037959311701966139057570623013098576667404507452861048252235229969036549749637014211334786276303036294656225455239159291931333646762098879707233235682138263416529836141347199384638443398054241752383151103854332355348892520150399654422749768206288123504835507166497892868188584219052471936359123893660235090226473372776074046435130770907157168122683882564572293204922313795649286388341826223987346072170529400057973421589439717912067462772338357824955309601224550680747028803790546670667555999915687727878496592732184170004945509231672985014141854507850074134493860612253090056948369137699125968259175274013887391551384993127695315008914656325186903697271057264771835663600614150768660710879730333918759472991973189776105099202345177154375448922508000486639743666952776347527264821303421138140828043595717831977610413035755164349138540219967066632305848403619433085126366089827015112925005430863029213154482395103607256062397828690794351501257880439400645236124200135660777346904950667463204865209525366142461181935282189878473081423410059834503603332064770887817239684288889618334984270191510565711627462591028387964286634184896374420901146135422316847492424098125068464385590920411881772092853057630577255612382856250586669341810468377587071953201073624782885035010424614327830406010332125605799455540950057008547738865720551946458932605672977120420116771990429281229465176054281203366397747473373441565887692908223484183893988364403820971571114839681507076513081497265912283207701285421266871751883075626128502001245502859843848859048225766596658010453637405535417388768917178621782226624307516288774357076505792773746222598419696607806098277271741354884169116351070560114849952473052257041348411640012060888132500493508952890660034694876921940795220626392675986069396686164573379299463803711953741955994299869714379505105005128229317202954981886510111974032624362757215211263709114926483661191422124259140021505180393630006649401261960413573319064493176692139001336854395291760661136616899793475472765581653082527945353024763192127057270566278490773096745649539264200876517555886320052687956743072628229706871427754788932592829705366384565504989400466451819062449772512817323034223062926295859337326812318284052877272444914229617056692033834949358022082800260410071338419815145964035671525087493231855221016763162749889380094806649369326956956288316493462934455522779284524944179148502822596424673007536198571105406663012099353975025142889356810430483247462576745170968907625593092246040282357145600100446553420758438963321162591545929659090329045592845976623939622585604768029574859603464077732916437503465602268903339818094792072361760866740369498984972886404978373193244148183372084748127364606345449843963269628317423366971608325503473728216030133275341096572513976197721897465667777001578463005109147234563355926005567552316846294904750479646172618425617264975116174917011790274621185476833743417907641157992862633226912713078322541085113590506179510042097215572898902335226395814011789188079191181355691738650416757143030517673306853904416450682852054424720688019608132417323508193389732559173294675487780300237371965216250278227892443719936421804389164597707259532389518340840029857186481309316918183777365373105596513560360130194845440321271872077676789733892535859843741205417777938915776206276482773031240617887923766026531564753251334031539256316914849962471565092215745455756918959551281977518612584101403810985442017034718526999662637292465088960305518325315129965422377281984429586514046193699248878154728032690581108360050902227371394851795171822969166453938543865069449871292313168530940615932862172076326171557548817433188329525598844271418234863541532532542985364101779907986740674533363398170766036105695352499795337775541350125018748973243887381015779580162850528674879788156275557353996218095365179644360335766296525374960329435503408606536392361473203504544085205490406016972427082559934929224877636650628969218739993546733855190401811720713432592681274311744134897328893475384251214532657243874794821869509653632637969805626113096828683515278175664188238080936166538199121582694386141126504721407495547962577796603617735494153661304873289197266252143919604687042774287804992850166503628347888721678189204037234156001761843435271524239482002133228624486840134094771291675688073569765409392423590876384274874713578773287956470487483499040251398381750175446491456671843791497676728039670020531028977448571276446862742601373436526327338117160235759402135240400383021340201380503733932222338295828145780141363776102819949328097052753245081469991625252877023804384040488397191323459471507641438658681948929678016030531457986119559598921477418377022134805978499758876650862120703537491133949172599932214967431628623694644256069862729870915421176980000033675293974058311223251246187916566465927134679503057895765044756724958789444712762168809048867912106730741950868711499770152140648933601656985329491326209823555476029104984216305112407009592342622651537793213420914713038471128749153654727918460705035289075957896579297552287455336676655970006595554269812914509751755388250372283761962215189378224984662850102640369005611711368342572735455786232520671221107448612779693455382849076988320637622871530647117547939715051045077615718592951995184112346558480469910453388586572302932208709998970556095850924304198088995264196456317800878593416320014478128402468084333822940069308441462655145162700664273229288450315742195236283643588442944985578539906320505398385859939378283195351603374705648194688557976384934251986871741784380764740551942617314822964868403404691954289962859766500269001986719963041524659469420415792226010511493926303827903531452479573008483006594110807747323823951068890485130509284141568857002675091887884757507189994376427083977653412999497116530967172340103182085824766889878187432321037911752493953055032937025373406383081720738417361655940930777890653199877407717819610059223868959030209322772462928903832400406311315558724595523334467469272562607696751511358171622425878058632662401069004096504934985195239470536624516452729110953728933339277221355272832654736704662632476980127726820056873179012173258022494709607293226686309820444921865263793212595647620005214836380803463415059243049270023356732091169001551768730155572405178724749880112248781655975124777022413135096298893646128601051104792291967499624852626516383089729798075070158557364352795458250433727311758245962790213429636445384614547656680687565503606821558004078144134724782708284577386709996662452761413307242588113736201538065171011272476004707739197271854634517093347908547794488610236799286430150886498859807774924385230057225599817945024651382819909075672554007290168763054422474179091477055296449895428102062153762727151035292194021741904027331221119660077981339107913820990297505282391991950634728003832698889044380251042061101832743745518181892633155472007317907182208911073884213239783812950012158898961892859672676182944060947640880910736134128407605327367252383750472014367663746990074541443203064174248248546810685071587819849229937016401657856516365255723782906477585914513649700416788525228053851286664048489937007501132439731167266094777143505179834559468895255648059805969395882891605501371837898379305452905657650233639545202803548108715613000920151357651323931937719821099041919658864763919034484489149481840529845833075162456172893007742376753986957565591511483335181028680566049667888643804821350016584602004956390012390985104766158305226856833553797487007126228782797640090720712915561347813515614358692301235338116609301070565264724133847766606556007999000957813700005067856657149739136439694579893154583767511902307673349632038174013993564282412682522932211118904930493334892942999288390900817954918091469913805062679586273688193446975099366980745973221893422819703489010250378389536651128106092927529941450031754886737146104342600954911680549643765417609971661824210821953208969748633562964031823902704550733142932178703738116315734387464828384823160869142517963461123527433860523203109356024547283046668599226918875130019416708347233319875859536943242020734590128024481262042613228943244054145852861897633455547291660055857632938144708109108244229883454835405093646583062477778985940642232726347246558699868518284357011903416185705755512032874115971277319091682815991052090104127560624315792232188500312010828393790957246928170371823977420621730238676972213705791159423316993860204461448459756335548096896019397157547446396527288054676733057933294933992975369117343870155981149382081035418816023429026365207891891229987951318159028984190289501789137255106456149304389917085648710608136472543587951629421525895758205112934157896444183857294061644740681203394665861233854677910347607991324338358550622114777090390722585532443846453814734032779807004667623750267205140492641933870207927493760210442733269822602186088122919178832254653828205120234890189420888133008522345405301879246218936810137999702195997865213479743639515621900265930763901680528637814967995280785544606049365222260469045239064045554741569426351978091934771005397813342630450568484220604966101273044939485391543450830800670765384862418510131995190940531022704251704731595079856674700734304787214146231298481786182713768481640866117364927392387911221141086900160269420072208063319670984888730888408614392040366055657095908367220233850327872119390080731199762053895288460983267367764025009820517050179211459697016525514081409802244920480586856383069705379204528952433431136420462139206670980555921405980432760557537132429846346241894824862678521555166125124060775328913748324357307512345635081618328206742611456452088614760840018945702377103382160196888825863093103524086779176324646844262871454603552320116329294527074104037809858710212553600727264097830114382709040265079106063974255730748067934919377077276690498065347781227344219092516071363667295323994967372814391299005786462268302624309167733315640353826544332264562685782628834828937514530639116644155324421529374401966912994933073464894058996310232030627117270002502861750458514014426919938163002141239597083548598135897335390702024278518051375411742863909150877818746016725284862642501971131367628871205855042823785914935421405833770211051907345248933837620698771123347463068668993755152059687859406332382893934762967239457355010206436068194980173095788709226720822071326323729421844914521133628613546501653065200929778302605769014012992579699991940709476218269857170593530830940439702936345797703843752715718484309437865780642440034763123967796671496414072920264487605091845997253998903277639773201969237794698396495760292058024126523469868660693194507339047184933294058512754602059612006467791326440862507730089627162878657021865449231548154103172882883603377584526408346493600919260571985379450202108740219230047524828946412752564325225477483353870003369113027853564984707523473369115937192521757930842967168843977983620546076568978112464672438521545832110234498819071516890718348619049247344434548370845450670928426563129890224073499909750508855774579449755920914667024124410389542517978155981039450262958235525692358417996429174047497839197828568204205246641727104477599436059222794445285316665865384529766919005810287849741075517768601165579133196345036137280350322407989844044587470350457358639546335949817055305428407035839269579336549318301590251836543776046629100391312768286445253777064190336709679045037375612185419015983610823577589868458956880507716230289072999386446498467102013033663004552305707983157434800098289260980053681245270001026008085561532273085819524167438404566226946161208326109624171851549200814116011321769344107763925645278867226215112314641285885871817466653079074211024084414178144615911405082065699705413320959594699676009304152529270754092049277139333122081775645126037093039160755287403738033432173140614282956445048453177459760460853588503501433655957924797943525368447808308053228919490699421714874329705225992710325088649742275490259576195015694355338871965621969148587420500423729491755778926171420064293134523418077413666877731187946758461926011951604381674146454159935193139339188670795659270466789906949989553085248725854842419174080376958919761581095097213601833704917601820950381164940771247943994206460297593634377945942909727745498911459527408094120462720710449643483706131342714211679694097279324760220177526281101715580204670469228307747606320485463738355616596395557823605670119748512714916518334970138788247877796932444508625929158764688478539389949908940939593977309847722322163332264077944052341662564911176132297308551742887569994037238514086105262078118700927146785141011605418447625857171060168256874746872828984846870595199992925301773944159493055716432015610627564846167810711510986543459901412968294968269213011339210785296141177168604237131161888145006712236366154006813325006067087282466033144368523758311973559290457905060595177218693307284529010773055942566566231444781212404279999532481536979981942479663122851300491605903347493024633803161803768856633596579768219216314862558577183107586482613559070215858202545607739787427871107340428433418899013649730350459490386925942010303492204470465453746871409995587238204951662594180206731856292626024113100828349890297070327712150367086872142354975377725944938663683855398487822034542470001617001755365884943285201955273737275171334769871170724723129732320535332884068301941679156635187223690583170454878458755783707376658367719061960320077732979722850182450691186652112110158865574349645690168682516316118614142228992891580053767252780627145745456691360254180385205856845066124204037511686773895165818062204493030364110584071536110638916141547016089433073620864776363115903462045414344640090455139817943151451190561005757713068854858282742361315313527448206335868923502953444502258102455576249862141009779295494607307394452854723761566257961161973791430513043506601894803264937198254820989989144328639778039103563642855218806884449658640835288346262804120312576240561756963981485265098647207410939855708119058538307357875423854883629900109710947915829520327882387199994733805252259215156696911107017858004176955698944294518366689700526974013438458331834016729411839698061856664691277726266171546906617800978430375442208736659789489847046368326227149022174624288781955328454556227604125940265671433818780131581228340996671631320027121199904611694667033003343168991056014075893347314459622636130662045039092565531259818649840094258715978544329728337664679972144745239279201532232984640248832397904526334573727835722842727762580259419780834035745938784950380511174284403707709856326267568669457952004480367919545650473232793051419451454558771205019534400404541350085895099727552105373233814185848838747192423459642042316152559660129106139997000013145238927184203186655903982012350998317680130359030230034177200149719243359630396252200525874357617657032694233168267800602581422228577704452475972643548303778711049700325655861246142860874260222851550481772718996104246407582576320148534499799125471010922147060139558034756835315031913282257397092134090887743537762798354034050883054525539577036627320536895373788807823630656562080497227313579002999813953832440874446999400671828675555705734044857427763355864087684453463167031103901753239664945138771129872267626118934508433361751917026585967069507202183499274716433529733546221500525496798577948616273063658893950471971812244110602520926279007165422847843544261013370809995167294504446242920822286916576164734206849738961752334678655604219539695482700868963620327891217179006494850806421692097503999207464745006983583022092359325140179239072250603272739193641643064880537475185407766896014908988493154202737323023640715736994537726469856767581852320311911441165195824649297058104620488612092240200398008867865636138720872692919458489207329940375931813158939353550981321058291453614074224951643300110059902759709614320829994450353254434598127705921158790269525048837644343537126460756704746121073202744917693374188723407357141880511603225006420236885854524482702233496953135832691441754086532894749251683832298093163535906923585926076802691816783959223169626633714380105244139431913266703885934555968678027371163961218965251903535288429136502933298313220578532582644453138342990734128022794775904391717235985635291213470832430109889507782679445171915169287808836199426254703113374273805589925117002037545476710644206009072223135523205953598536335390927856735607865398160438653908156334664592373885169053775556581834240404523983511979262693190919344008546839054186476946163409458139932611555971416640031472121126360443439561156810182238878377592867796205984012311914153899959626548639920984507447120071519146195309531607009615109106554197267626024712228116238404090445560349531446499177374602273400370254714040732870271235172699639059153457420152561674357277397221672169274309275330589533612904665550702761566342180405170356302812109522154371075918517122035534331285666688203762575884402471070713281786878109595623813146165802357634844043463674997548724469825088205716915504045605746483364423063376570861854015507825924849470070309433828043130190816766080001538755595395068322018787870719639232393798496515785573768492930662325586512136339017123455545873883727860296359149232716930453370226058188101352962782044746242823223485773312068564159487967863246325804249032775071555259970416208065737320848553515518771805905260164419018604743292974760828506621994763683206115172207016927405051123589502986400129535440555261007004054945706508474610374332541042896846940021386092409852131245738395238089078669979753786798336561818207728176533223833968252422171212862895378742058056752174203962670338492041827120364622503625444482313504829180894875351734810858347555026067887786979900979201516469684992857638344541449918898737035328201982701696419548914742509788279751795520102251975805534174199373694572255386036317841101999094157061290484409443788330881916298007154400951790330696531930134858254844635876584809766645447226083360795904924431157542984146892063306693369161965869535522063747383839873090586189183864355128237768922517395859948954722914155270744670336611790002894396157569418999800442800522637195641496286411578312747698656031002746837772161269311308628264778759981712751501726098445109178952950851474395058337893538323783718814659786136525744986046871508133590508521859757058261293108464300852279922423181775908501610006121870943989396259704379412523786851775588394838639864598997419130291564489605264398420165927500829792523905447771913930833091922062620145431228807939215352073324565354570686115898576520295293048619624319399829121392154455833366753990449186572266403256540214927985371658180744976037713521788487672779361802614650272424685255487510848824443447813487605106457472361001924168085358134979559584280049254860664934678897578963479921300673723937112396942642596307767305611167545998144406099954002804594465364002575060273080672487375098905814808994110445805179487082367126093701524113412019862457007914955434853346494010547101058176926557416899722473811153648559300747682087518385317211419210104804902301601369183487713980737235753087135605740251934350300935059997064763471291322852278201511591577885959907087276726807562624628256305110095936727443504739834510125416746220769070948960293412075373614068576583433835115104616531711776492303523632425554305476397730554926209458983154318582335411683749959975246027817081106939560112542262413757365809355223043672555327122198814857285131170801649458072213092548435761904420795343060228711762584996961184414852513964897512603042754938805966529097377405625847347167413242780962115157171689473578415888233656849153531338630737144080278761182443200599925097892718316684805551019283342366925301483757897497431339178312375227422594032065473661599723164402823580260022802364375265281789841773479933298518867880732887325040464387441392726576559597590293367129034810423603540048131887986502527231836631091746701668085455673138494061412350866958875097964634258536343832628175593818643846353813174821873937314465121362678136459785247921097062428859902633831868573881414515067097385228675448628074303571166218592561555470221327863475993174728105703489061203592148357561515661820922018170540943889413802695208238755075556566048955030286093145611764933181146517565366452457247171814918403062888191262049480571041746697502478812410167979916302743890669506561700590049507552465233918822688569322495268052072650088483524322631970707594051763317152054299286624991525066950698669097644647940218077546453511275391287619183973088615080697286172218699308093086383859964532135820608700318618557706161030376772284028098258292791664335370432273590456289967760277775272228330189997548147572170145437131376801805073774055180866734393707053490126803519906189713302256243504819649426189570579797554555594402507845829257289566642881851298329197180502744481718125196786082301349415685290704206623180954965301831943847084489769244268976025387863168836823240256468266014802693059103338431441491123108891424565184365412710778648582749833895413751563272498936877758455963561577418875271761118158625258942766405307567048073816704889363475674950728353334760262532455391523788356998335933690861909849102333393984643319592180542706920048757758923750795598160033597252166908455954014359431015352052945083546174907704140914444019551819514103235146425005269483356061903431901302314018552482808905986106031290133001779367758166958470528909355639287927229308217659475504257233726155938229728877808981029818181454043744744764716913507218962630757582096005447061533693403411653591119348885254943442539607231539022058133453650310524332069110070383393347572209183953466048452051322144311208606225762181339524457970601373016985303846001639968762533781105227192112520455836665045359566177549284775542059698376779619107444218746987302781224158648605952303272687687666089426352574571589997770938226170800080984184897021901142109902091504746113763617962447016614733726540039203295460621265986508164045023358170440451384830894057420722285387304670825853426303153407024906897154516888648840808570863170243591087356807308526630333334756977482391705227253546142037520925318081245035951918382627151919430841612241988209065089651448645775186678867270593738449700603261401138204090751334145651512019078536261575605962776642356972110975746310319268186818409369787368294620602917444929131426499722093472366087812355397496002632700241643931064157665922966100918326538963953211621578854575298983175139241734714719597529661741754934408240892348338160354857676987245988698812740939082229553770454258600213544499251105034738949725978033646943578746176130014249783840338526551715210434980823108875134780057160589003644447785833405594713578999604025201934234080196414650614258241284824015180335916746996197102682577942188607471859682017429407804186392091879833324772620144118194908725446006307435319824727208723749598634937356408541579634766476708788003346184693786222864853147547508559966448309015585873516457723060289753281921403745989262609190766861418257860358291640731087349291619798398429882413318335839254165625006695179860108393765154762722713114164057944952477010489571009126428159403396617611136909104240741444052540862375395978051113919189354602556265803556409932979485834299966854094412507449560855094289964732392938516756217023356325335522642272428993390939158881234036950341872054391039787902773464433617361819611496166613301606584420031060943435444829470634813993726432143275637139627588408629577244558730366020228497644058478805170533230169673144877014543848928980044109737665824119509050350835537115817049817523627131134641488886298959891766486341643360642898787293566678465859899495191081571418900939577777545013088074575146988269669746948488741549336276260674885443110184233611191087563010818914112506338769769749052607857062159233377388531031538393156548780931256431691575957202183673947916035440537983756588078595967285329244955777602839907061349192636465359587412355225575742399676395621909070955749134223457048388145011057877978548940516120190397422408354666518747636802685813647498448399208397632433261170084674685086528789509118742647311909991866645484668310446773067265223677893234805947806266331978499145400388310288883715101981019167462964855868424868204418717251292265166247470261051269962527361013013015679663415090223263819238986152367688672189694952183123163255221956792668786023033558353980709938451395494459026945392158048399736072326618448977692048175404593051019941711435274446139036837040786614799338847848104561807236701615827628469666099503351292789459841980214366901103130127377693801779659355784021308550963598091396295268126942025786293269289442987188589843134714633114360288073238155493227417668689118977587007723881038005602341354349103006324018048567497218270430403948685109213116719869500903829970984916747742467095049189806097671966224976647051820702623926579597572516404969437642824542723196891114805309706612526415632480083893660459415855658968002846054419577383165446323702622098486537140865333841222135365672143340801585181096628731334472426756773703224355400199956583083309279594373656893268038969440483633602758662481217668445183678844946668478700128103990944490943894820655585817241114788867861600694067298506703986206721948418181044910833296101271094092366881867039924310014951481683884254701035466618406536527776762562916659609476474299023351532552828392567985472884940156731174917805068168867753158640532497920194677648857288042267786702000176983045136821621365612955971154898059230295999505741961903724086782913244942872892553164499277167792272812595639316171614438245668000050918244251510076739031757838374184138735145469707945037199843634730159443855449779814317885751891754855841603827029556174255533291755396806155945919316129517742306635985419090332710739257408022526357939857609498527232348384959239972831641328093456833258830880103612847433114404920322133302651154301126737209933738989795097403176027148240317320848648804084438717427115549500062791325954690554185273351006875180881854690187676587928194979624679726827681239849534930370507490362347216217537814765030970929731103281468828006866260851944926111491438718240011588834671485569874074381485242495585959074765531148283936576764580240695567889476637907293996149614255096289024004163853230832623918751987696978082477821082730738499552547005360908493146601733807798061635693639363719731603719010490334728802789145961504596168574022617692163791252111808866685539535915040553799810714483670944501264988552229398156848515456588668284781006932443243891060724209713884572480426087810250999044242387753588946959744248690846863198894111972188352439266628827807857232180192220345025787594141252174779350678072263370127524391012484723647499089204744131558051315816953595512836891536136029511626546246663874041140688268406247911425796094067829263703245798619374901415296529190072774968876915076531917057972920866606194678726886471049345920506972774690314550579842753289994899787941543228238895199161746346012028849625343619067872328986057499799135536508574354444269998310069199532085629265412963829637675015779593872045163776614979025218961880501130032772182210109296090398231500031644035679417899913778516587858469554170831397604601076947055059413455318934097106637207621281226194147370831363935016557247920102826140430913432898690183481642749987139186068744096759638770780386128758465231676210004237644047548937153757828247037101132431414215982563471457750904167563663112733270388586363840607099584928373735901060817899187674975346576566558637895991494320084119614699371422250448451083224597249650924934562827423801224984488735813285291774354104704848647262107656574283888572716495560911995071373284675192665427843458210910399979561146153878237118157148946642187947105659156157782591096969919886470511931380994992466765028866106747560774204599444277906871607642734265734183303305523740679056603399191478503629272189482003180036912876936463855822996196178164651956429314788760429739003954488773640611511186567181942469504621360418549751192325740651826068797466334233744462199184186284253442395809145502344894425015262474927932582029529364625750290826759559159227024417721272766522994039797071587784161739783302973903623513656154073553332568043991010995359421422792091564234254455267334597469989072073897781934466986688332630189207049915100927646048657287908764276306739090657434742093957448620954343336196726817341916309999857107665748579210015686454721456117734680796806404221467324022744067121837288651194764788762781022041178011266034731978797902740339666206080580119169465005848050771156305704497993059212895120877519050323823854098688713063855342263189501653935328622466243084234722024923193968854971333546828395312767351835500482679267542747111771500617671909898195108795215995725598288203979513336452255003447033784996041919576052036019530597940577676354470043784587649239850236078919341531954854181358849693180189250837072425840972030916181332318780217988703282295345245590640118437914796043876611722180472908671583891162518028284540942890658907413486611651872047391556934163712694163131864155647969595668842233213088352927863891291637404874687895987785101632962215281631528343488649508438440045910774993755644029140375426817471691752901148626011630639898005041535442185597073652471900537915655460471043313632227854870087111000994070800268506139335367744829807785614808331279054864174252391568930227380945168172079158050422569462514669835135022113619694037738077207780119545579867281433371470906345416076436035144968307067294575479090498753123346133372069565523657002799460510718667873415438442766561286164827291188158510696716834089190134468786079567521113162632094986267137517390105873931988102230452604533094839589035110989129813388977592751905537511875871410961650778599236212108407460827757119806259748650986241723047454063235505172819249268981297160651028184940971953226085402851958027789253419883739371307773248031225950555991816328247223967765542794446258595167451256412038432289521382380603388567634866949747480839589491378995275790060854160072842504706694040445671629578817157579448257540226636475146195552301277849362976808640840027910035195571086736035143726684460813504491620842601424108911537284151278831897144470016883802102249002270164085340713258559185137582129967198166059541081757604803798856397002115211380643522201853899555466868988679590893319765597205433365435401869923453785468457164146022900150603711016895577536995228995612814757041427216731115100333061537604282684881293742910064392661097189991244259640171162953847983885156634168295062079161736538882329872545509461654678493989270040420506675134406665406804944937144856857689900716345808640503551079965734900587614242239182302559082858006581263564105564975477127712138246348418486778218880542445234505418362052078224725881032366430346685517933477431916153520404148964005992656188123632962902035528790717598295382028252593574564146091575819138605267962956281108313707850901469136267591814117749221039594430251864500808195147969119882293147749946412685534972640341860757758291535458155854415410517241874645863432128195759833935466926597408470068662034592582990046725089121112898736948471392653722829380236922797047049706873215184385449704443550348752493035606092528879253466516479280491354527134885977822510179087185582126940462752202886815556182420555227034085601017237491399103449911643824656403183479879352288881707545006914885939744558512383007142877148155529550108875867983922934599334379739739783905876098039711081875029432857411332326902998326220063697276343210642199398595694247511471976326070151321184674260129148954302113344176981413446197861459724464369843873418215502453807355981136849698104945584308239613424947573614552225039601271677909520609010629357886325868300152317771836630770323493228176922552154865619558496138788012243888324498583483968333944351265712891384211802553277820035410401494673459111211440234694383006110153496792148507100696913816027919439037720499301486843786128816109414247145380345380039961897004257422906533424214425798621185439681986993381455532176986234636890901194487945861300588047692024566331679001125531889583180557046005719833556105454779937786693263812788372507048168802683764723547476481735944394059985767657101052699290799766781953270244716854720639490485126851250069201615181610051357358686593392767163404996336104310370956612592718594570953210454432125418532296460326258552878889910999144958775213486744475850606664526911719536536322677587263496396444728401724254098713112522574935240859194323925180481672759747451896876143589353938654123915370647761200094865159115057605540524241044878341697940891560556364567766342013480734286900281471428330428765143725298658042953086537287390463967431836261008130750195960620263009849918784906245203202561007522464688092156026561545148334813532173624973165819127191187943251519675597006546226109918821940852112867761866381246972706541649718647295108430627457807932047162994626324992855028363174129841829306875757730739110254421929870035243076486742602317660813238444941267915619662176913303107408757499197222953836821856880542944487060083968050069091496390160034712115208618983744508989678382986687957616022076833319295298014210870502972954517996507518327477479878173108117186245511085993994845381642328178862841913812627681463120670975398005911630993911331308368377030942198168460706930451241113675824729006376549643998539700539556962811148251459441055385520736529295558160475251926160519941409290576385373540143693868547792836701473530696861034540980336610687737349417572715884822036670851302092212283642089158331279016336411662683516874120030235385628111968853438135294408083457169015871420556625109097094921829626379184436826336106172732888209327385319812980178745061432004228164297772102910633310821375582002188004528358237184541373260844111497438893819439800590860798763967923468125516379770402967869215158518946757153351802999193958125728363704598925367069134898130911140858289356150436004131579018907771824175321238140786778387247370408792283083327272910794021669839203202614311432234774851330934782183832774240775314726443580813074663030619160913298904902534775019297763700773232657113508427467697141082741984660158436292372690610263423525946585439901504376571663042801645241386759910005310306171833636062718089513229947018078800723147622403262667758870313510337337720864621110893225376439440315975058869186099002132013520704594603383338258273430790470081614670342308423726603014604504878523537519334080076383037608483508761107539826294165362274238243242191627476471278651312114356281806730889169734246519811896370258658342695238855467752397068340261127652767586997248939570315457278044229276254264256626126401032709002614584736006478355676321703575226738351223379026177664441032469661993480108467389042544151637718491220734859494074355591316091976791781834240726309631152248171884174339610034424362049851133325165003207154412064053685067467528317948461485839854891703821559128191389963584772369371185262079556616194467056117150378873598090127880478962714209793635888019538116723654976341500126779198761926162611910419305555263124195476040513295251232174178676481311027644747364507504734008814492371273497192471445248402761756696178756756763937185416042579783814105742853374487711170744796918230022429953870607632547675371922157229166781097323252140608346467841998343467416718871510795364182829596397266882576940591722078639996723330422383768711161693072229111086411582343498622780493376458712830138316957632099125184960375248161445415797697534815940960289000032977542396432286611406448694600122555480965918265484541626849706064321219232250890250351360697803820019187562555499160599788989779236454271884444986046528881562385429639841494616944508495894431380314964409167508034822425781207249006146450340559557111760995817307958652424484468582153247555914405375736461839486115967744846053799302622724501615840660175421127301366265400397964815909005626832021414388338045017992924701757770324120615862879744000235715686142811156576875380212504126890636736594635529634496715721475550576900262706399795550028977596704473970645886353143711090287569505693347017546191930765194612432520409105952069739767301145377574013809755383525449487362681447662111095721364864989282627182936171664018133152271414004476628590780844313201446391387681655596650764736823047680851018100319647611212497261303839721692928058976841231781898815467839187823088020622790744991352755978752281968326081269779521246802608893725200778638295785079210037421494056743597590092469354206437800683219351668986564149765038712157857411850705641610486493141611480367096607685197258198754111587518929938519028118746561666272776640705056201615777200640899766093388050908800050443527104010430803433254449600285041230753712722076045930794192067503886703032524090420430788771969936840945038367108944889616798741907807669278630640184174270068901994225395026001804930012090798185449034090764146698055471092513481116756215735260773524308682315732318398831204907669849614938665279384073346944132939237232761033970756904883306667092777932668618442129845128199797239072861805861232306594130979802732773586604030897233694269615191166378406246149549951981084191795160809507080937629838216635031767087937965917034551343533283771064689518018674772671936190008873743299489279777939453049693128812009075791414491354071101478008941602229919820313035029731559650288057086181130639839030165248084273571876155071491756857476355637990951465933447173194423271336652667309312845123287376143535683734466753303219257459279540277553145456425467725818104937067525255429964855269838663012473090481833354845361151161341303499883809771025235864873907085113127218376529771576069118730633589545416886558649095494586320747190484402839975285259537052356166691828889662121858104639561954031516643879805241825820526622311876182518219827897682015152522405598491178893403750405837788163291303697010453999688864838276176772629705825411490875669628905069832520869165518544149049767861423673785290708151644308852541247319157585089696523955181365310613499755041475700506610823926098100561684972497513552524632503574569418846306742740342464758277083156950171860318552327600601199468866134038565749015559740738531496155483066822495262581178776126132783275515790528423811697877916021932429403695765497358355984806222889674937389898773890414525843085026023488577129365378735873018340853512269933012416434638675693582010770652453011013986381290058430214655956703516414277617085463591213137395553353439407837098322836193775076388507325601092017093171242648783331111777419798555663988650923211374154497075198515147458586254653656550146656230146291534714084574907193447275084890135987411107194272544177717191709911482137386395351447262441123940245178925678558134909479317764567688927526998432323455386330986247255824664492273260457006685633347314683449781817973786226567468160394533377183932721630167243754131836704740438334897616351591774037805781954695999409517026806976963304700276480730370521132054572253475782201467503696470668641176831253231423696447322598152979801516629896940463224245091787829375543208335605644693800460861416264763835435254911233476409905531937281993653806494466162443755050169988399193218563281159709242545709213555390861084915389885966201201153174062230955189993899253619848868434032931058976337239152040120543463291565934542462318256425316111710690151530022137201314762173250863493288213973311832374487366747720906017958760742802283928967425417254720087121264430766007612206791423837636491868445335129123818643879429993887223230119351154015415240091747828344699813941824863327109144288865255076765968606818236545503020343813846288030077074811812361234141090450977924593522486180126352487786844028479824607644499332297795437567166994695445840515927368854549207073459687277978959553438258079152618180369584639329516171316099509441888575670498019523896852653570989820009691418820655516269087353919263054306298339894240546753866939562083993498258081602607293435701468972636165453559785705716040825781594452233839409176404121668768175984258615822181867446219077861242870632714963245347829871572704388797140962338430498438300143624112710310853000805658437618254406264337253147685516278957197105439623461989126658391152881457593854136384881305277356348901828293530757744813553863139073065314348536719638741337280229227959709603641629782991641132818347340833683697384650378364932552259426836263057379607557732407381604176539379211677884867474093341746633269151149783697340622665042455903593516747963376437480077540347025935635163040952607137052764469244040766852389352592163552875464377953199612587162256405875851574061869575404513297017277373756369322231176660574564876493446602998587126359742531801359590184398343276656702635203761836835051512607283111076729908034551216603640593578680078684905509855567148050563802109331048544573074162747495063358482066462669863946561807534084376500963675103945053870997263192058488972772331247298991349183023751595842008293703203986914521766860302739340390522192958723733793681160716293418168794537782414934233509311155662800288857040040013757703916307475647668471807937827747216557339318836818483073882423828669442440602012922093650169958273368201820365590199408484721804033748344496477699038578501910003589423167277638005652167938751356693174219079619721653171042988037359487990227122222820536806705817946701882815131272663075050244243407123790396676966884610541067855732882327542266638103893905996289059533113691127224105727923302620235754808024021750146269785086091512223067558974919232886770189904005744726466933501937159939245254995684423872877865659228622771043202906600619847999278545643972803744388316695316067411864100681018364385052129242774925474262714018784182996156460317186295493102712129239726882640830256873481134485988536088350917574011471833813911831731864722629368369258454977927999966901068697673580870625218061264308331822891996820437607095655759418254654622481820494057530965397226763084092249963819508317892134789759530557175323860316653256483464713044117951031830755865263064825494675260278074433260354115836374861852794234045003218852602847964271370791123291953145791528980138324272697298349609996599348019760587148904006414890356084435116416426790589476205460216278378735314540697351720450668960401599377540695609254241879569678155851470606267600919522619161451609271261292451871280855231826323527872928631839313952804049690488988048049216241233940215819522674210567923323404857616227536628043373200518906992228330526758746699089361366162242884048592220753980230682685920369507094667165907523977779703982079232670749329370939120981684591844058915865297984323311635139785776357695661233652173910078169888186353521414215869081432316253039388893734843542591012123729333770211621855848840029151730859521937161605441585755975945728438923768149574412462365426478967440964677091912702122996380397528611593678040997906856757650663463054095300554353372441405320748788594485829946349370869968421465320775538227104787763900926121880524920040410939487055792698961110092076404517118520373177072220447883198688004588528135495588240993030932883763077196518823770067357419319730158668751281551758177783152986682345121814232552777543332848703163710357077306055106633864156754186470593444170721396567888405925171064419495926375789204365663637507544948034827797318706991500244283994429380080364758915845201147142596089397419756602046043095794938835001589811594911426629606136288900042414397915075679022867184709271546793717277279773795383057472182998511082000738560280745050560003790502091765067906030062320942957537810930761638836035601806252240904273400279937823323564489088156010282257478243409743417697783219453439665306288357919114122070129352065456499335283511450662249911700728639155157828302925173299817466900516218944792258157488314357790824805512916594362520933112476550989459637733910324468857037898303374564810598971501191602945167524972091755119251705148575464913861121963939425078182731504802892386284554299447623071150709813194891963902454712204329736223184134956504095728810693129660522331398108650998460970999543055196824173935602178351150666036498510525831529268772549588789835849922827439466487990013911110938933406965118313360375420048233492772432376084880759835034022907826499981659962855926560402428764159553902581961287345357442233726968347807305119155671145227536315578551275899914815733286458998973020041216224620986795338938342068837605468789416495894458821976555517162400406635849312617632584399445889344091899951430381001552996702623498387998209535481387968932213434475344726139402532185564100037483456012644838822289543836534295707457818078564590458502301811304594719328337999221926049513141341637665397140895707623427273983131209030832356865723705329216441784144026511194913845142682691281086921729590430881246039509754623028576097318312747226560238737484117400426491735363874717072949320148586200395142103422330541084353107182395983270026776457392724562309561304615178266022454728210375430101221007235962075948617382238042613130225413402093503369664505211266338449102136322755663154191859238239336605727943363380742646213449451318240104927379475733486223411978032275573733787207021845367833111553694633258076231007329677299446519142602909004407064622745939963513151145852970605394546012574259421036966729418808042506185225403633902360310798802967787883000375494566454632337219781264203938217308760143076495219360362241647765950245016839208915037188270761362825540632043575671260653750295605507755582022621063115719972931472930708083014607916660440440415077697066967173789341570963549120093898050958009137569734026403503109694690672173274425861306438380598621263696213559057229740301502094473436778176046512543753799080734254323334890067053771439866148626733357726746571206351094118899654818962763686233385192436969571086086167693926765700874492204161129465351509642238960213892986452329630979021642056251013633625144353189911968048298581329808679553200934150895115686703812497477142501195315204845552525779074645151449008862800712639622002854799844128675323273753003950583493135955553958110203559083172164817498721249581431385800427133115055598543526245770290427894112255235198121550200576019654727318128445160705958723028702771434968305594992914663329746339604106000613477576296667001923584512371881613600172518225609896625833057853981420009761920583038115316170726152128374446947257672476197761719081980946476121334425448006300790852418927106082187360525150404255311075811172400259453473263849245106176775384397486433284294502428801699347009900762904699394326212017215332165344503710023021924654348106183589438050534668715304743558596413148757762308364114763292235410016423693741524396451833182929355784668313296513931344354545080385851349208743717151969159250954713430538081513143407120302176431911879276559144786956279616187369144194212497071891333314074007948490348373270700224821873537037508297357999579225552516830908883550633485455121920478120250178202886323958951691299662329299009495134140453079699478053132749762749666108446143160625647521726122614589616689123274899987608136086557860202276017727402809131097439572647447408901606502074101171540084558575401712250545247590481026116413396668690713733577296183452944335124068167691849005290745631695588697753324944490759599340893202495233207509088088159751843729153413405183999119971347916182561207088189775143318454026589270280976953792933567315651377523037752926904376389633396479582328796590750699632685040048673543154677103117563790356526282464599205881019087586706760539959759400298819478366524075934895959560498524800796572951894182330582067717639383014276078914272218114443629797378629766295006920920152337044151948802959059586657466562341060055164652615513443167581684788001783976745742213961945728678365350487340655364413919320403707531792119664489987217521882929159616836345291218143077244531369318702481344716431776463660411813286686315190406127572893700744018436538372349313766200550870106109538442743846437153457739029638806366188199231341073598630034704209484795666097448036698755513594210990905045347499719532659229910874743659981335314361908397192637570575434077845352432375229771969693869522922279792994028536183550417650039515146278524413517396654433756291726917946603029834578229017968173323308117014062698605343549651801134084133375321963502458634636593484774338018472066702085892395751145151200100000134783917092463664696064927816563207475512215082714065665953458395503585300581437042935718504280277820045620201548270554296742124599689103433951244541081335382843596872339332932698212443143298353623816493452678779154631342758855779413971186765904401513436930542867565438610792072554217300980808952661128081876240809891475301103287772044470382044492272544520950573132649228458353311971355794049347813164293262525089120143936533400325831799764246458761231391031444931999391757960133919678234628696130109455816919809306220942750916721110998029068949817044602211026536011385442497014349011042976574036586729567575281388858458318250037282435902517286732527618450642505661294992713984123504183121790415302299352735806709669003596536825003214721804423711719945920454596774243610968911167745182415112898045491432032861728766377405211997568436434005178112736551675496148402362069505882946588553602740785630296950502995939477773517057086196257574772598042124597878088337769756540246673292136500551630413527160957008487596028514684918862011111797339407198037114900095824264067143404556865861596806578838931340606323716497792538190860838709741557118732965818051047181218985628475927708607735324488379015748938814563413234867649363407700936150900773898478292234423474720843884830942311270927131754337528125067902894731100612036103799446788087106839681290367741018039640670305725412542283611296606630328019869274554449877265645351872793452072409741325568430259119266352248652539996227674200318274308571260389897600285753576368107225396612232916847039175763713574316238929180341655688817909462204387899021763754764409735421947872454379463280758128716719798438075025211747594978804046438930369590894797001353491874220502627026087180397891051830259562424003681061312574412131170937677028004445941820335383300896939970500130847312159147336937851018218628615411532714982656259322704442511349476577557631147321674618740519444876429714939564429719056929046160732446622918368794085654353585380556583647224057120615831140974214888542520728956687409371579937560689993689193150801197742619555093235376088007779803552874368881755145824608036222105446123476914499390527757721583971717106530296454256256113907521429787970890457354299097634220695458444643351738465773796593078298578978660757714138880497674216994263771473924387528264977903976971919124599711909178428646567325272668414744343701210425077008955203836377658806541411854441509651754582292959946023774516944116066478886450211351231428214332051474109420918490542700709874092828578309554034228748494567644228746967376699577961369576152569988671771425206390554074751213415644357525177347959448676584364894050361667124838256896604717785389294722329749621056724936635058927892070779395569079731189014002746939148388708360706651915855557863245752783252594870381511517244161544306522627571136313746945489210107273343524696064519290263358356803675689081487588773988355176509275374108550762811130641048718829318142260239399553630902548085645958596451320550848741494632621362537758306955030295903947162939924433402890545078566163639446068617969647957348573304160942132361601719551730954712473365360382810433554363292702012192964356827166769906141967087350739672754279119910148295929550286883267299682228662180165684853081182458376845612014140615365858238732930726189920946403869717371951344273977084400161605946586910551460175211827015459977854973271667774724956195026823023582255558095417421413394481194739377859654579575378204948860367430601883357412942888115685326300993405039240731902939919266887572079672476266666412214203065332533776247151135407141969304269159080683181564200851690827992946699369021461055640678125562373743510795206159056227611286410764291396351401395413014637872333083539447284606852040245447929615462948989993615009312782767307509388344444209117521212934333937327312635851370708070034781644660775643480255776522904654677564255261947117193155327606894728645915602721942883433009506411913139130351984222876077728916005991492181691360350246906427064872478301310915119241700317248312394663367941753348964067946371938493471193276950028639342974947155647098294415556174864099709686972711517013853493410885731530780630934899831437027394978303429554449963392269133564512391839447456335061158066613365484241968907328409932924258413008466332415468191733629887764943902898745149288360258202737221431291367097355687754180203445285934328184052312210258994656149166022812035150763705551323452510413649040858264215557959676728976795631270681424651490314059029886272324205168101179739957593005437699531759313617438126034252939762576836210400986662698299892276714717491602627584255761963068387359799062184409460957158229534946705536732650232719537996531312116960735172178427003157991502893465899676781572330761985847503686749418914841076076533882400126625644087949202789224499481354403643944620189966220795861434618810420815572403555751999311043979003276905659929933855254299036742792420706411281421521373403611908416122654080701847823087169319021803857629532381614785053351019332160914322683299847644142726305850416645328372329153257562443781746933050713600346899466107169334920667384335057583097486494613009897678671351221725685625636047170913469882996185954665618077978107683652584980639076931446196390880372178237609640634612339734361835856090506205259796131623698603410571898551352238450364157507480378709328112313962674992415716220991558604055869208445080126003058256603969437534073521382774472281606426665291629706173722851630944050720773152021189716661035994528069620150923485157381650731493379984242603315670657367026634602754886767872940891166054395997968118477485558682356171827772990844488304628712330548434980732538353795104281283282727323676151375169512621592651281839646560669628501174705575966483572612363891990403561572985484065284239364245900028771499621587915660050897005742109467195996230706118497676409443619899960951028643009230455594800919738846128369620947962194518229410862035466215546079753123280683574046110093796613945662988875274171471920749615536151312283581568978702328977257659472315558094988361175469092342729397486984616270276410598361992585121606355777285406052322624243027923975746872770654762968543978445708701456762791518713755611182401793931696078238623556887413484702043429833186135540945570500738552546850301291365958469389839453433850856167482219918163993095964952340405594169223260327279222876368360392479386547416378099508491919126322550217013639784320919548730204641182903017154022689961555136966981479113734616896792452013437301000641306426794221614167671857632025202585333468260455968104885806730481727493634969672784031861123553029256353234306801761526187766790784454547990688760094469863412038155677383073332004120220794899166409762011591917575516863060648513831392046617280808629225931585242820847889173303044251844764149607086370405560002068427472200420275421977516277997932270269384488658059026361960950582912081328788894032838057660479133237760479729862640911226908038395886142234855884417224467929492341438172555381626373705626037792939518438589065848904461898569593251034274440154625053492521097083248765846882069395707235846927685274720082186786607229139125720201415283725894605941231089263749104800826614189436263090906137835430094374849669188186855857612016574459755940175221923872784085840797378013117808099274695539777954594613237137581108495833737626647367149278083620159037937606807442498791026401923853295248161571975342705842086870723438290420324327750354438333362612742673792302494051696905243463476626875044086476952679803909004681091114781146257886177599846656197868935711904783496804936406294283969222952672919811118901507897218506753323297485381552659075836471617643467841978115962774667290141394620003576569647030709426211172786626350924022283608688192219712727665424074177653953730906666269115594270915954968274575207973917627069039517688248712007963697944210235040904020816259875028051404268005307511194370783841572716364876564061959732705245618608087031870123203621228921581758304918451774082706684221886812301040708237202373366433231095401440429559597260100953956360140725731004960448631948610071031517320716993654101597014378114411299607826870424042004772799613214973336594835973211756571891013072886446306924593734709615377228423780133491568157243208304330382644386528022772129681647352407096737936705263057830694372391337885550494545879472900302662460938715543640138678226708707575153372103895114619221935911628796418989644043774559739250680737179069218564801789828341139167991576291383341210104445655684810607301480695713097605140038723166767867593287517736454615559834410701913428958187674660619010354616273499140872061843369534083188821772747622589162571153825693401481147637862115185421509236156202714317270183566878235611859212755807238183897255409186441237375135556219830303098435793084000283329839103687433205741018481667829242950309800589315893907283360750845543849797321917719456779041917889179517845501504899072105875427930857608366628928814999208801181795639769146283214804276281915618628310829846370986792348535243813977326039805783111990015178426653037489366218944477873780803029026176247013835513537108587937003690956803481634874802852495583036612577581945856781484864787442801660104170365063703494679028169226113391618328205864874506310348120554501036106841229913459077185076875357885300341975720869530150645036775688115638225788218841217542627959244249923486073884080123782868173579208378016411305814201572488994917778952059580864658340281483033976952059311671747905342062964598572011202612605407605665625109015240259606870252085301865333580938440236031948199281125702988196927437124467785019490832077746171759634554402420006111824158492318673181279159777912974913772220213626659248448767926815967335959728155354454297754076644263256898448164227906560807087202792569368952692876222988541123607618066984404663432312338272911208547321092308124961845457652744937022187465394839541888436177410989280712161738165982850361736422842831927092098056511067713143140586208421534813177290781381796662128879130545777182446828828814884022013129258808596996094044732684169642531181709296994856796590939125104075080554118282865713152750883395758848416345565761566420689519781882994710446243404571999097139075606415537954624091893926141965221848092541977708372202379858301574876446004516972699024343270031322396491913379474648201114831124084059591472440587069846142555758910040363013444599623455017637312495474283408751538758206150666520728204296865309629797489253946435271688830920383141344381091380828753177695511167213203831998625481607411166840076278124839473166949150269439215841464448838705678634878134019042771490474843893361127664924582416942958032109577857657989323688535898600379095660692238653842776616595235917518272108637018862143812483545122346595630359082245678913941089269305965131536131644235940796714736522870460354041839352166127281868581157327577357932857010239538240827547742119649667040756846822589751730198795083822062088639394961908404515229412200660747891619547454004363109779250388839852540839020302383248895122780547325208323937113304696681504395129896368225023187531935970319744919184628399234688473469484815166669954276793854694043390570566583912900202825201641424977948006624887395557530813613684429684981738980511300851314378328388985949457055765257616556994703794482725219524112963923616830590242491851467215887253864102174611362593210292953801083093176478056073778562706956128925101337351812384651164778874715630374014213182517007535530962006246542074177479308643660838347988135776539092596447926241350280295335080978803580413357557303834927094092020659523681887795980203746593810013493542264504662546492151070793614372341763813962013115004954127192690441065122695320940839231358507845106282856289461437125595751039931384874976260023665281425692776314217079887984108572510522462949924102736983420298907607861558532843971363588545156547260941608697465951782956730324604549686803818166959726508721191828561377672285843162403334888607530477932923016025012051267140936897071282698428700640126755977738206793969976610115113987514182846629254061824809435486335090633205986001930430716738283669832586593987482321506086859713601920763434364865078544313349912921254359987959516514315072849497680974287654180789865749555792798784091670751464504613992142392378681565171722533343538203994259707693366087374891380960910179294118225040242904106673087225595750887830945300905322181004999409802731574704656398491138579060928155360239771709192392882051302367344867506472170152928864311657549032062158169425452000660717166799907718159419044519466875660671850620620378243720330006726567738542266635366282354714132687443986412846298179306388416864517505731066584472608967710235729907093669695492395287056945762463739002535941367287476125449732199223003742823479589845975990443895770321486812193418804605928028391932492938688374783078364460853572061402604011650225315326018760362515086581944055349405688774369869084403413972721049931002263884949313403616682686185185659835757576274885970344372965872718725482089164739236826149238313434196566977553171441628812692388136829044561620756427289473979806128857127715013797935899980700428497729280684605667646641921323358689230992344481471882961501093744956135099401348348618323399249628403495983105252581511024022023340989164917856504474828657933861847348767780579883474130307763420102933597977083535090857162987086919506580538130356708042817292496413717878638613887474653419460517823974375771027255363514287535370464554629744388923091960945062650818961656402629905682976735362527555828245906546332664622183495974323196761644164266170668828930061478048120995219168671198020036355650915996794209212777063795568786067125290760646564404306547139663685268713202289779427031350079693388933815579937480668718182786910173582470532101207476318429744456470299744763738523584645339817415069505336937721089299424955007901168745414080453596594464643841790488228609829412451848789499161313836409584202875629513519798580788071968525196753681749373066813228269530825314525214347124063262133448976494656255372049347714236448374169921823173934446590175077669958798125279500983822658420489759526245000984486007300823134068337634634567011342025249276900220975187652071817352211315777616285964321616050354047327626603777931780333119910606747980666551186970657715186906713386926474662519627059512801574853287407431792685641134838323188373738019034437835100910082147479111888114998671243979568165966752665722826818996258519051682809308125020640654275621310808297985180221170324482796146608454967009352966218268175387126330229497517149282707505401698488199514011386457995263323577789947809783680087469518172259500832934617167875507080479433066943622859664975389438433493619896848898122147716481299823080832120494273915803487651452844511531737174504685602764677039764381436318474798467523168776647567422697777430092211324975776684272466857122374109331322550524913573784924145039212036983579121647603762252212959894098793730269061259511888786922172014509192692708345489798042157803251419686371443472191220866736880150613402010770475103852448814548650139803351661861559371907392068059740553034412930094836750641230019857918341309243117216020591290648055662504432012345627621894914149980060124146475292135946173844749303740519498077184577959856975742739586545666416245395164607198308410766200805528662863069749057149667035232848931707433254980220363595405081021632286848730111191920666520965830787463203148806014769748130818358234070477429582602140515994920564748652544700116835776438370394195734633037763253925818911876623707210081155960839603045955773691785667719718744836703080977408614304401133043524003954770304963935276520349544076512825146626081230860466549847213077203540644634834212736081615276898707992028315605074842343492688994414348518480369372733592929732257077891778579120602886039569870698366719913704566446598802777630164055462819297348118677646148959985768842289266348748365412343551652281809194962920600791554134944875274262597816371571213630946193801170100432072903235780355572901717909788127199988656725958055795798598786198792734590686370955924302846453864062932349326897708208993898350200938479024080727465405444379706348485284561613672536425695494364537340874626120315942729798649236622176149735873507095460543120836723805446710455619836657104109790530122788892856623205656508717094523984336813008203863777493814674958794588224969189479762046096752423848928588740810792828281240107085613183358260471497162115064741508763676947542129264768627690683291365064753284216744351116113710078122567687673533705710009012511349202428642332388590806185778953577563550253925971488069301901292335372445865863089775664882056708564901873260035815222113115258401247502741370977415315040247699180507685444055719920428703947746618879379840322389984030174225062688420764115880740362145984396790470250981809992592531422726237899126732833306026754867635151890396658092330099410678852933640025168239572621533921194768612593894586015973142145152966317417645456281032118411577095573453666354867869713609857170991179387110695023508506788566540760714558727604750694138927012488300642443116238746072722418302058077348185067688916243456317382874705518070286896566557287746955321311537432214025607164720622170141533202425769898200819805503524207670797367566138062242027174780652467186605352507752145487181926521878756811083623350727406147890259996128017871474102151673505968349345946763181035062141725488301529959970353662254394217926857787158302843325583506270366824499237052767169281195459494879530182145551484384071269494088895974033456154581812677926752126865279305047268978838531560077663173768643720638685528529018086487411255675409597201690907379028046684519654388413815128649609891521811880672701822496634471304649681944051199660295964483135364350787611672902822534728041146183158817328571063249508269997219561662540469296422880789338566636552341889039965662364206522018307411162734482706671844336061594353980729606219971313899412388482431767399329357005861789045465179257560050081855596927596651025020630688291082880711430457950163410023842792334798211120904547812164162800263323968167024304757763010201376669569397723879263691332524416682194500180615566006850953927937808378848593724941889372479271357691118265531226733579010098749841590899769667231083404935702434956469375106759796532040359363740200342150014192335279743427847934180483635372882069466966929644840067767099140169039046044402975120675430227340694903107467380594715374852378336260204768290847410649657127457216499380515417830335500338090764922263327241948017682181698011753599879830268207298658540568088652221620503844279658724530448275800358045919722433257218633228129808422770624180920834055184943798870294367895840874823493846001917588294272381925131307083007773967812703961990801748988688171593588380260834667935702152214230608991357721027033525915134024746146824411631266529748478338672976216763238711509356829176693921325481307731141843202128855902793678324535460362956146484704741874278811072188960517269434924882993514980344945506539012628997133284328723861767758438195824635667871890152585475145045482839562707481041094791239338012023166530739990946847644782627886576149334147989821200397427559438004869115925201687110471288137371684725172827501899786508991182989987738983057328475223822784959003604009091390599149953341756660476647248119589792180242580137850222619785631558851876151625555654291767747132800533241890129325051034584940734685389283778308950287621909582972900139919838964440207577182023595052766610647938712835104628948013569112351338217887200875551742664981828180608353730259270177806687548058465573027863626741832056008242993742127039746795348932062250348967392992749725142163908170121570980503692006950751457204790702830793605707408490058105950437070017628177033086119350381555065989381373353066319211983067320545168050682675625271281661398344945392827561328540480408541055176961442402585711354772089754235205370663324730910975697271598444080391284379872387978518845660676979051070350432079738211041783504078536988438298120731015049086646273450954009882554758842800265103397511529808741598183117658700204176217379849336847451436200036034717703340046386659007054046345070090311431520303854503099177844399050538990219665576207893274974391579974604740340908025621901481826136370924943454202914397192998575019098647297273420075727582956876292606964803310470379523392725439151562295677279167423046021339486251787873780887700546654895216311677623693663992220832315428311369903664004830547174927321035670917560378464001676293736360189728800859914205317279402836541811655080186011445584812343725086112066315409524001358673101012944259939407104881133907056008700417160807427990571281511273894941882065199630508198035758477470400371948864320759310805966194663079596968543717485300091730840747906102676414615608826444803937807920780083893005931297999936711265149865621113069022864791634683277791749145917937410350392563750840945631768843810122642730506659973943803597363887648800906801252543738368684175527297476421873061588526894030666508663002103501554245621184343727153959329604347851357040615190842049994787638158470108543377648453502148082713351348916849409722757203529690025068259942116428892197444813617950790261656919481437166581111740217151294690536500694142312837557211174229978757613121343894890817755503889369174884581121997918226869900744805582376281186543956863775271219566916164854099696366766525985511998735723674838370545555411032674775481354069122120404088881820153181438160895480517085093690429096143911274846537051382152986823234058918957821472218933213052209194083613374324027633004635077951742078564804705531166108507629785822690158306290401612706157487789418858582719018677618062981048781187079163971866786033164883342176264231413762411524827198684667906374910340347284686649463396556882079273760044661964075031077945393789412145061316994653387806342217396071538834908639398697013881157086696669157900777966681856793439181895257917300060102274765021936064592223303911949931743509558606045271308440473092071347795446420305181709793218495937086960009758909254549835614695507369614260396314076432887011838213403797462613953081777067493721307698606441813023238440982858806577328340857605754952076426843098792075280340975639582063921151573277788851469738083513809254557459786661525990993881868712247183334255352318001078379497390493096522691548906265845791695306807988787129222076586360330677109565417259338654575270983677101502772753824574380702458571102549079361297235728071158973521128101256963142118376611944025728674961510205712728865581266026858741160074239307516626935342051218145750738823662865197869074082117898970709575533824601950625597855161889307370513520030830777477464171332761982791128631682665511570224148921065216982097680237469214285418070463184988736658543388432705580154438846777894687277595224389312531175131967472436334635922431869812335647137158763861402964675940021756236732895363896177617313818836725721208729608730710794903200400620795479612183589611441360819015585456527224450318351121751008791629080559421789013632597997172882527163636436969672710359005513424897280861488862455253130980275308774849815699004883239214187352213741609298013328970721593162972311017822830777684569554740039711726646047403097837796888253471764747699927286865835601762004420402658176452385936387610156024476097070017940869849341754928996731106654518801411067449776662082941695066996208260799276633980034200303116326068191163439525418705891813301772758660160605968436108263719962030707239459683518301330396315516601874105878687473430538181638853000516325668231821882362525596585590271357505376932218697019633215983302680317389963744614643927784874117325330432879911857082353618581657076261665898426816457014240326007094363254366656843118312657888714656389577572071136352855134150725027258987508512910271689537632437839874704132209008988967552707021117177436583225662337113049493905350662544139811101349133695349563448945211225967503045300011984144909846540271141955222338747896486874004728564476130683814446594917512450163765062626266862516823702729902063746349461157337226881628178560098179840937264665996037398008617988851759548963976189373898382892647560629899238774543055287498482199171729044809976544052510460273005707294180887783897456081778769790493492042771576244425378520828470731514170988914290987956485636226313146821428573603367280705095967791813026731749047711316956667438658941465390218965614674920947570523617340866623463019863242266893384376098436777878545481330390379378803846052229424711420841693289428872413218639266246570977622673031256905848143663888236025602845977179431174395292853727664651224682559309374956981085258231203721316287706325559570337410627980841487205185742401065391700984379423821592829098216846650876926943867010702223053648725719643780793483196532033322443109644147535595373551683092419300837016312016464638809706169334493959436343611875997610523978662381087407232215109923829116930744496747987363933751628975810221419364353058939622561564571504984298154239644581360882325173165496607967486201575835852538858004467176750756096381095616846908865248825038291284523229640777006428571456166610185213353511858977603168220848967911179419069509646958657876688764942893145507450039415669874562034501407496025810469931720373151116770433013707692859435000718948761279925283437847845065327227252005718964809197074769506347579861238885167889842255971063939502424147301061071224543944580772420562287651857969419441755283737370930842196817323662531413496132682849912952500200256324106868765608869069551964039375203887979440577744548759261582912490131548010157579314251048733355128612034138249067892357217993871769425411807692217603251237450716268398030916808124841432671539756415117368103890193404998094489150987383275719700303394058564151954948752303830009114884109390016051950607289031674838795814081964430039245546546172914134949013719653774991564620569885392161082452556483731281823469990650146672164020296911891015836438098311032516989610408830588778129162423274628845606021965500900794583549973844228254895230774714038521286368723233560141381286296211190863086904319586101910458044108032518043197977875886578552790695168128509111857642511241592706425763702846344347346203357800558120940827049978157551330589777714760304279613507181371021567012717497238217201892743511444559315154965030086896877243277338931521081745725483428528156179725139932426882501946651483649327218933617632715618762676914551987328069562213514894862935052849569309771900190483920821703977891534736359732940725605442361678654178554301076498909773789579161866996757530393996240807140267687405858652294471426650379248514176169682937113978136216162842794561221067804417455828383356885039106284692334937546777678010976463659597442016059370770354344438147589324962131504009614804823573993679499024583548831587172880216289357271727846084450906090069585237360573885539664161309343576178998638277184445020658931396112817299990113560755387460555553001123625309755937385684082212283632649550774885177035824565799992506096798528324312049787748784670614806973476065650731528156281985842194486248180546442686924866238274703319566890785878889599748380023674925985044605478978892260480328410187128006134920879076168554966778006585063759073625550432935584471368872642937053639738888253360834981278456361025246724268914777524151726218461240812598199108114436607619227399457115956973599252557131260573009301084734055211660778420056380300457869637944379408203230566349404557315749467567989740885369276455628992125222754965297287014104742233473387462840040455834120992748101785207136135590214097468323997550761865894395626687057914562715075252505960463563506914672203627876954875092516475206139439755149817371934496075799253370407619836345846241340467561894123871435872159995881158885659994946023271857278305793153785781466219430057441984068139369582800945915258003239286511095550776157885815045416284307324211743365355279733376535461803259186285287667596455703844126579153257902286010307329708873418420116681671739217801347945154505285870168589042807560255681661545606783143638647588246283914852603263165160744196147881418400090933524049617858330584318591370524116416985135053776075423931043885592188642392642737857388206759641869477193285756237304733361779012763207847628111190566164368614823672536053645939068816889065832291431285766124529433587292997331091558525415434507203179126700217736994902430524758684443443731256506430301962675468679652477823513136020605611190929169120755801912139617547475741757950648240229907703349715325609925265259534306914561692559293167215847386610334893453949423259885909340837366742806952872575168936636496347893195772180870016658958640965724076012744948851348062705408837414554379439771538503157785280041805413465534130372180273303351319065663926234035413984226138512792222018549894373956206326581515461190127689408808335863192500553117661842280599282128674385307530061609460130085891531323831224434935446784011081448181234712294046086115719616630559111539414870389965625957204781728944773662152406821635493001694784916422554782787859741499072187054750711173098362119250383079972264129487380145810199251718369142475671181810963673639133023422012565411916920157866121764045578010340195838240723077556384843518682069653011142402111994429819949242808906146163138967365577542137188297054087070671804934229111348749795796067362685464461184955335151590070972618669940633491759987093249424608256737988690765698363586130392801100040671544679272655669943998464782137611681385404220529476939167756022169156344782171207440940206517213236698613786192421090141247151373461286624947342170091856320431024948337614828303732790172814591137371375604639059323860445234695437162733523246194679070233396401617234395511746590608182186751145872261907951664583051759899034889906789130412631092336786355956899754842514013723346410897975891160926137160814385786421648480715936351602246006692363201492566249710276646313691528314016287312647326649730460357873708958662344821721054382443479534798304480050559322020123155054647221430012958904319101644219039237910454969417895760565537079381810740849518077054309331986568517719613102757921840877268556225559982060087619084233688612442654522065482543481332537833109800674412545473646824526753361727308194878389921356372236405720174816050661459582428457175820268325624948444405584833076282216714658741085933105340894004320790244325117935547522833954009344796198329887991017483378041118187382756763023923978078577723912245845997402031716851621484971751073829062982150667468803462445100567902416177392459298061351419934265560365382015442013116314443592906523772462325889419753561921465356967981570809236495471415290133021568344152390874378636940983615056477232299749081815063477990097582601176530813335843188370780513000531058790451006528357372643430331146468129469024518657398312315283676931537143146136266033897957671357533690142559526781858696757719723999297701287507049925303621995114856403705398896996058596897288822521158862369378867439729973378939321522982855584334037440059323226256013108275328954507534984799867053153327324200023220348847096458896836424967784227768565711070803070134426871236201833160620039430254514099267458124373257090420295645318325069520194848270529927673473230506966699395218059686037056545863090184353258045685280185846827593502501838225775134670505245352262577523685105571112804148792044349053670075384814283478887539309332365459484809267784939259727815571120008671429962027114790854656838229644797908145418683426076335465822838948830072790620594394515783597041857458997418603411481028275013240717381863291708870337903635913427612210873262692769155576551198742191294687852372715323885444962053439287082565600252980110777536797643055901414092759327967030802268779592963631481968940331078528672248126503494156920603542091061722421846786495527585860175284973149828755433908439838085510883250605295911274622883552793881279948762063703345019385317851778212079683002752686422812820348483892032168730236230677888440114901579325572606825830069222734057810282260039917015898276054356819619275583759427846437674781844835419857629517692887403938573444183600380768498563410655321338866615952483663014421726993513023524214795030691326538710324222437752583213261136396667297252030263323948603985708525392012284723959187752447047061183233515580726659896833511365624083324826561428068667832985709913424102149069267655879372083870141331301120390189920802772744046954911225044771263253660672437150168086888336313755853507718652868553104894154980605842143658427143679240073034972385904100434566542854484558080719594003482133412489158785188172393554322507294468851466135010547507924453309660465339505611159650669272375483354568862741067296857031705373825824977573901864095025929651168482651585751706776386956037389018674812658906842695175950545084220784628110300542019468364788262249362863227506309639411695761594085928043749364724547589499836991475762589033664917967471304060226434751419050959049980802638222710845970903745505068315800914909157228033104710826488871072270363897931184549327447323443288036561509903668803869808737125575367311322455777595785608416727867655419983581796828454636488465242668017340609515815987232063729989256485325108455262750458288261063849650919288404911120738937568803514006728759397370432871872590413422220336981671587671811489011515582944389164743466551031087033962799839846073663784628979277584843940377306873697354483552229210901991106653404586180906756492900552742212974772934772322918608413542486471450634297250827357616241649795498795776963423556759863062556916593740484057892525203000892869065083812257009392262728775287707752146629413858306604295687321614904312506963966716620998083372156658970911155194775582867533772851295020081054975534096779941348605207471095821634827283032096432494466479350398872727753908195421995161085459841114457058519009104879214337086495971943534726798358886745532508512164575438576803673569673582366573729264962048580287688366299256725991398161721944510697468676605920088804539839590836374604341053262617560441372003793173006294964719063353958193363111961591745840945823612000604100119395516256992108048539111561077632725043762155387272859537055821994396817237930027590689859298275360625680417239029380401740223140753949928348898111943588408128710193507901968070561004797533893409356425576434449548603043942849206894024097116112728572836482339783006401033235943238672169870015544042551256524223279549762747585123226147483963019341069335343336879305106459346668981232473788992021910507729458383578742880594674337298761181400149159841728155682069952872141782357450624971894831315446212566787039005146534179110480373578642819587944099535711919997449994327430348978470329798901773120698001298491912460511865500683505468726839223634003197971434760507615886829211610243104881337232918694314867606766815905114188983526576526065241167308337662079366563666689689293576080776753994165842394932337916439072762609643816108538833763686955970021880443331497939560422603146501129217482054782571471967080951201713155395540447978501474345469905334160249589679945942686394493619271841001749386083859965605130574851088610484296393367717419915421065767585605563553809382680335906204935172086741699597880278072815025493881051975403980632737035757598817418225315410010842968495146897562427674602556495995780479031714583687605047868196488412870606610337956077334604169143476528616906899137534031619692198023426962267814466629555581817643288945935180274431252277398525269639611868029344100679203443310431366483431144402053937608659586343991275354272051098367703779823321573957994951603861993440200120398129021961074782003983775194650501804379519921284612009219995734332665037563673805055469883820670466771924255803113877959634718459111964380784084860205098077781919492578514230627370181273177029690531748465689193507133451734911096353239135440274189942693554379108930395459501317466637783702727477039157232143293562868470642903582324518594440366360430253736131701385049060388376711673061897696540164722704260055295619257366764467700376453771470647370033430425576859362114193267069054793777610589642516456342742363953972624929505882027563111149656744290765000703834903794312311271682569343147189937009520936886344727084373259803516438367885471887032536775662311975099041192240481056475096088181824059359811544974899184365664444507856755758852729196283543176656797932133451809668125079103815805047115056058768679008674147158165533419099331842012064059831910735074953823972214761718077451539128923554044609951464954486853559116273337988984470511038774463548865556711373066488701022083464505525599413853924551987483952402715952388337131332320982377902213513988806007730428689242601485330471502035520510044483877574214024574674322690671353375151964796150824066491802009732658853364165770500390357540210388211441730125921495975659696758378066316549511289055635028750150236500623993088451481778230881546566144167795476838269255458214881165898171314504589519166084097668029301198368995879278550656518619600999748187417333421752985639546210900233757445839134102573790253958416909459221527566446859664540861008556285709898178099120896845638156989453571328632869202559796226914768025979262565015842213825542018010379299732675343846833229076172096293335370900293167526156608633029654049788594511176182845368682357743288000904327921650502664456801386887490169822813437124612112457289199184371761171403340917057181617571658576230782186858300740111386268820322972505384021220898449126981295871839492343164043632409932231144605268924747419096737019187336595982130975883611273541243479850939398248145576985457453177436979089571440815380279565002731400298918000674052116790339284347045251697653025630862214603817849764594220060104770765683322680611295722620149053838665363200111895948492082165931432892922167052399576352358960325694909380005890961718583696406372710088254719020216515304988272189840673969523829433966113420352091693555303520489440436697785487486719553743826230554988231222981054626783743039404907152290997932335766140782037452595907033267697556164878455978231567224188056934814829408263919654222802598793763744889387939069913571824725012034447060573842637827922728023317592009051053891374800335575021802751043315348804911823021213029298481699702021032298046474657047345280001458442176008335064244922906170039873842002227768883727908049737429466692757623545172495348730458737269119827448368137330545155954628942402193155937688225730902483613418989172809181035617342703247143956877022382605677499969101038347519183545756870037514676261255773925389197952121793110111929676505230410163272964682458939127858406506578632490510370353080941741868235317797867054669801437252073787720542558129823028848022472663687271058479161841129712015640880811656056198662765238268366104801758867017327310107815321924938457559877621861831441600317515001258230057299297899891224624653975413657660573999046786283183410170859779408630308994271654639326212362587620989204687908313692268623019809702482538148510533074104567614627149094560858515556232629216095510991888434475092658088092902911787334450040639819995478509069424686013662929509768917976450095912702889801883681697652167176666046617622015784329792354513346361774835642907506146638433230900430439504687589880790372384001579670833079155150558219851550324193262551020655308949301872270137573515433496379555618739744951957752451481615860151290253075145632088134955018361649214132114611840010428104814850776503113059514082848678525565910039224709143638451542913573113567193045480409610097367603255253770852223104163382558006141421687955197946911286157906689444526404958397988462419357815541893368997778600078417106020407995221421738337552076530444912612869509559105064823789605345823408112410757556629196356235132991621848946215952808678670577759052342388969231906494044307306431517336890006360417006218512762739976710551354390898359269163925592762318223111799124640793774911560671933559821642691126769088436562559107579136930804575562445529430232350165201145686356451113249536460072250937807157917706340115459448901244809521709976243599442111761454808162149372443488605672907238902404093560067016801631320110892306096205969025313482823685968447052551089507706336606897922161506169061094188824456521026240621475759656017670022024388587532694904428517109073916220039151291852378401005179265341425305106138631961030308959531060152067821676802961511108853637291359806052319315730026035408407897670747740702981645607466281751842395828899034067874406278793445363397701633914704402337343578594297879601926052788586456886049545132496840506502696210483722229680117223682157144211515863250778114661152992790984095338025936756501698107276951178896649885347101887427846592606159736117038762237591353623736408500605569657127519147186163350671667284384283861502617626378040545969228359006044910551815223432926959478353663336563229817789165936239544254827809974619271532949071380511610631806204543145025378377645398854431770162661499596625477171763216115110984130240461979004878968882609100178036460529841023874625788104250668940565321693026438371313549426054164141806339331284694362096697493273462674056653482116332136090150198469196783004773059432829210300499570981591830203118402138894914966876285311744953413424616911813212360187364015160140014140632789439075492722432996705982720629675475077513907428655487403891095937665791542570240584677976426682448708763085368011437218143042390717670066223270150230522859695548560981643494309780965700964299148245368304143599013446753287458029745707617770862527993003553929569581958891919194873293247609474197437086126523575369931216539339448791247835239610594601979592165413031236402366850073571670272761147808655242889028709576580884846016552704681901767507016856974852745566693306523831214961791028988758671981725190808120513441762714410141956300868550375744770887932566707551850947385066822598966264319919305686610625189103154774600201540110867374046384042961105967611120589148501187291796877762099432901796933261268361022866174451269713015559028148970170568326676786929358874439239925222928273737425478543379715734980169457655857270241491044382204352611146010835116622044138681480264276010253905898254611028664627947480845357609163064489234160354422017777170536886989335894193931646069297565275022433006152082914088490455480983324046698567319057321066837869148725861864628823323529624159246952851445495103995637286473224479502105621762076731362877921976348992668196577138581661225805609451444509634489575205989011430434794176640624969679848607391526915817064229702499421464276430810336695429960835481797571040462913795946173226257427404765672211608803242697286837642709486999237697401525395929670566680740857026593965114211383338101675169312131944120868384237559226482740630828112973363767670184850683384989893754486081165793309079160707706679677807181766702025739443275995779537779076452155725549094004016668343250635349781497462970205245456577831307749389225470627526022568341259341486156978354613284924104933229349790347562203433536606656450300226346511084798542733898919491730359249770914264969973031060969222029093707039845056420363428720569308067194461992171644111885783240536938177978951086097812587985154491229201692182712062890172346294933384739068204606959987139728098077370982055655393288419457974118758890752590283493192153276684509765909186663948815046511977814068509586235075166756785946863316052182758095629411780700481176453288716416109531678561100438887687166541338535059409661421255756676929920222189729412523452372931195209233109400355154487385119869612771076535041224463673220488079452758304515123202830880660433678119751361248758211021798462827501962856503822149645387991297498416251199328889819132507070167616100333348518556345753322769564210938823695071091552562529080993954737252704028193828546640427520343908469606183886837796891843036147067671594663735921422667123034523090112820046277796171159202370405400715088367360067699792459344830663357127594817877168513013538578349895508629986217010559863129347248879765425185384764476334515240023601458105128607339501629765616550073276396579420717252071031045335464901482490905190730084007260319646506098734260125972470514540798684647196275391417951932942226724779126328168782667436589592989851150457642087185623523471477410764023997225767110235348548548182744951566827006438939263593754438604683041050575357055288619116018716653346533348915328321658661601819113267343306811368764415505857849663376746126502857061538152484869977731081377224955838816086873053134159488907484456089293101135104308823032748167822597355510925461420936299128396263429156904087185947452072318945021642755458396601003246650904739782755515213728035234145802013176048999804169579738160426556289549740447829081416928454311789174123581297230557795019476736360815193317634699523944178860145231311828012571390145330044007707342757011496593333224062360024286391557687843577834798547858267059486463807856069891972168409715859437905727682166508343746266887326051694317694921111356324207532914774714693497784415641658773566392130349223376871081389096169535927435545482685551504701521402552014606599041047535101676817179510171340392903551192921030037603363838242820644644006654948831799657428147402803133415386491513454214916678507333917687192999071828578909645890878756954271232871700198605867947596746063003207193737735203924897711847123649860158940948149211253145215090781205019512672158844125041701890740146559566228839002055060249057688782823375839610547091303484373225036345726280929371590869966114570772220008659166141564345242950319514799775003096441023398826897548189354625777080192096435257846289533386080568805647933483259296509888303168820745510299891168400247607947630548016680061053237993870269187590287949139453364164847272018470415700044239797728095144117407229415716550399417714186102173109990602677422762973428971824951788402676311855424804967530053356146596965137504318767827142429927434684219074082961773567072949645021975084113198789548190399626109011173815242061928327245939339817855029270089221717064363145596867130933311918637551376580347611403448880000817438827397627738770621308782111523344006718018856736192132730081754382668042133507522128380943390822054209147304512346421763297729695327711071460854334533042221720026347459026228559593482999284881208357117684855727810929233626601591108630034440136198158134412817721847703855894046261235683104216418934033662081780327809964057347115081765004197952053477188034888758925810844708567092093091642189905299051720516491761382785795663349591757423582936368310655267348777727288228976884233544891169658432251390709936578159542625090760295681197014976754191723666455570498841719458018664373542008679977098708503011947601566527617330369953640060297534963081109095398020578279465385110440953501635557065161241657386013231785011234463535033261063066910755601762800650001978194683534842796697170219855747834376810287545894251416702885284183627605950661346542432054975174545837216285175328393008029910868024819411363560401884430785186714719368192216458068504666914341648715690693841354686789959047893758384841026050305668112036438579950724781162700701401727732046672363537798030169190802603940027125934848586646205018194384055595738404749414022125533755688013346803783958399227626041068341712692254961962466862090160439832600561830928712046220259946522513910606392095088596557577026771955010643168829423985678210376400175347583474541202495404362072140779366863395156927294148146021674787505701739417238814921517811439626193080591086653953907794431210213232147303709009338115024047144321027174793714822186513821595243234779919895151860265017782953514676824855983449004310904619014883464400346044512170626838649779583532795006573719170497557988823027915107234680763932610610162760146804097284227197818407354942434768250207018836673885419306024184996942180224724476485918112610271043434207488535245588629760189851057924927049240748976529083575746459377473588997120742449173846944463665124544623973431215590113726237490433946258379497629691389359799697068926241544073653560241804631400799468218263324897089771246322146029484950991744939943215652487407044594648526589787739788789185635399538076322502884722815912374425929349411191230863433147660288191810004553221588537866101005645709111042487817940144813721222212886243528218503891463156696910285871510262294037267249856990051137317048616394039436231017622882629181564642788486690543839136029118135263648541813650448283794663005037612947597220512830465997511562273086785219095936085014330389768686710012985486665165528580800964780197033452132645350406562316857697469546525617557479269987758478430570759535874700721411193215961668036535813161541913638332480506922989685685005372917746553625796378868756546014426843321251671736505224464917269845263820124006495669980667907194046632209252845393391540797620187929582853695642770480184163911187133123720345502667981342152067071321583898816944589315885292902372573332097583987358649664715351223503301971293396897672232675284784895108316793808746363027187375951853490851073001124116348304285517763404415353576446495922175255202798080423726333933804359277982413964422556254858620719396178016067395214761768237508443090329586212304321197746527390362328027127033134592148406610920987952384534442077051563435486884356045606138991931255156124894315351928374198464467129868060882074184737770426235662623456033734300586399902544177924879835501618000238708498872216005082135331772310513598717139213374039759559760035780359398076622625639151962136365465945019810980563730743239975990966302821194258508200369779775962854308444512445890911144937702291849123641112959267898909605437337762983519169446684230934153545200766413012955600330143971660158089133280877040687174132329045307176389106559505982005397749294687532712756530313467155662171976398299041554468100003073836929546439578625969855563528604386071583781829185859870663018615987132144917228079414576378370110589844763791159542029708192851439563242824395865613325519271254923709832378580072539936079241680113259541761335382761538754417832195287704459423732093010866058678267454749640437833484126564518823068190996209005509575533898371031284650335471691926155587348445672025640968887239342657738228780614232220047876640238475117476690343741549692370222085087243726632957811333046937184495244904472959579535749560601460807721810732898200562828986124467166253334415903453987983719177807719330190796226598012359193820844374799283152171398243506212079599626131324875968762292975841475374806514367940877031231442289119840976548601132607923900258711885300103768492519709145323764724812644561556368712235966201105817954762363822819943854982020208211346195866718989306927999850352887990508253607113654282510872587129344761674602087638015254740238710870277970020533245210247938484215615319307395108395821023973879941834042044249951049076448913927253965046871688328340517153653917765152194362630773712814164473148418695693284453483299080001980782116635205425386132098121610055714164529543719606297081696981728400458901342112712016113796269707610632623298292696385862928214435464762883419296465564093824549538195122051047354738807151338224491028226936220637748875710376822321689365897114546977690354164676489668779523656004680303505117016162407140989906054482703235834477691535317113270954297863678658727880449446503857901750566930116124779740111040749776893252707865570466712731354505017962682684458891440782962904166990227040178786807684864629479759824625441052718185833949309687034874286699111631183201614918432648948864278669309759030071620761159752363617398687324377964990668833941660347721657696143439008270928339020254620468746541658627536084196487681857753368909146796766784962454016956953735665342135261854125411898838062985716763624249125784489679883179141134127208207450941408584916241288382935792509346510726727339399930913827182664980121320408202177136872223786350316456395783833109003971390759662291501449784488948698849142918915213373979432750862890063380343123948383957219833333081001017646186749838862108534800405779910877946715504012635503934784231971039195558905864398785455090548983055194239230157285235321926070298021935923282844833865003955808723126821645335352325541348878729142868621955193227767150353774078408666301237446793402190425296530790060100549389829195961186626497057589125952454971510041868487313818189397762464638429921024484180297778309132996167346800857508114259441065750049605500249675936312119992739340594573512215477208753989372076490085341900269354951837037767128281836921691940806521479155763310868174859261066880453957411391179265707702462438294742095133468901131541665596201829123305188782048461661920504022764208090822083990967971476101925210608362998980178645150705581607875991055950388174038440723798047607899667787766254448891244009864871156526873569639092002822306440639312100733087846325165301400415834833183741268780151927441383668318173545109954966658076128866112503532710357713151288874790548608410664652145439936599156665421926535643419888780215091283427753764640824612740708162604261313665417136717567181054073168456877536698120966854170932990569625849022004520097347852653405183642987493414670267261498655177344309341470692130300193616655459718273707018183735436401472123595549104771254042091551906917896736157790163153451429344422319599077761930766128342477481689535051099225556745769475557945898496259967005606916036965136827026208519411316211560882858932551251729058233914013327361660591086039116798426035320557468448383295086955292596618015127193808227809254995851693167924728464226401217408918647619511281204483247071217311633044457157534753618791402302925467191304261242799874027572449015193038066391562482243551759628346589565915682487596099178125169987263302139193403836577672443209772900459115585005678735198980205012742092340861691481770363967303257244483643285032896018574842320816519250159124563522998833949828130658091484036246099526282753514572298405257802389648530995476553598148258969337050995302311984384069211519181335829353222523658603718995040065099049721303008291876898770024135865583699363852388345878804732260138506359357476967538389282697449138235081061767119473702918119487292162959936277276646682573435342763063390885412497493416971113294772626057652045740813888482691475012219511329474477542190825544739246795437995719452828799941984235512954816447516208988509528856756263127245042739400808647236795919485005452924975276104060485690571118720186708608425954310324040204409426812016228882250073652052757493469546098277919878349557151476144890409014722240640152814963018166067519271447078288043967557893528636683359470917065211647157398294959086006483534799540193711419185929132353055347340102886627149599854777292707392692366852078538798464766038451717221335481930561748275372000688251443494115890220043762142269663192892467759021247481471287925731990695777989701624766964812915049056308392307689504789460007178167064035650332348887395693710414151704576575663955607569824297619535959779966456171596421989296318927097497310833260838323043790336153563225271113673989979612769200389125499560125443318281379978811322837632893236180926707260050370452955080848809414350742304315092517766995806179515380781225767728929321196548022580508312584630195441320639023598794457850682183280246823987778380145990662670223690750592708557602258203227482746462467228119767422832141832861951500676296920744289689737380954843413826097648201821092422486885096284545902178126937058614605027509454466237799212924198219966446255862901494578081203986107752812214691077448064483604405249997939022928747977596528980317800838109129422980189030797776900051475459398695515416187395647125026851612389631308739935265345286513053598045687658586513046410971765658762647056139091145054341354476618117033448667511207185583913104693500825267824750102479487199052242431811908335855129332448907112672286784883859738628055012111198459358273018605042518181793216748446540186145447160313438930068737522076538377775545750174879366309733965109106135796894899129684340408741205105728673620247713681528878773826303858014588704090323875906174502718076603510682458924607307696796771954538071787732805668117200305683571830319338359135933969358701087858270483911969377637026432571606568487695505955993403999199319994828135097137670841080024915814455257384392763237488679711076422419819156958344272981995235416777204884943833254563486855372667012874281444235687250665359192613482810719239199437075393274738402785123036221135027327941569341468663496660651415619918646454113232993599972177332381685743397051776406284594546842966908777779181794058095754220190010613037185713315887269624890213461990011581128751478597097991007018381389518082176091918768509096129436390750168275467066457471581229579142195487980804162456855627682878383742158694992844414232459778801252099553682834145763677566577864448343801979664268737671587855697738529116798396865941519178408005004711759524194524635083231034829104387628512047910814813383554693376582169386968293173051544826046793036903986915721356480194937107360653591720693082672370409945161467521962603584300685824043447839373705943828707331338371985938439819761839443364921639426671065456733059929011029490722569151250933525436616006991186772355365150481079037178060083251327801169533478175315347183758526990034975955653540900968640709582134601099012635879128733566291532618052433998752587896995086818124450438240221702606494867939834792334352060103038298424673821803878953954777947275989861262025966287157881702343374010533390140031422518669075714010268499535608952407309663145195158792253632071117969796970779297842130498261125579609258738038526750835718398208759704563420223679993376319226607694744521262554939141218302546773863050809370075725339714078472226486161088864325171648462658037198287563535282080785661130180256276934972060482942247599139647045852094945764362655317602546882789785381716997117140547186315199315727204766706834743178386198098337900288273951108525565794100983216084064752550572592511374616297445550505113986646678523041935963763630185477702211295272164088980996897364072871184042797552427676363579125706324554720191521079267546924715680302295836753928368883054908723887842353817056393877893771129517847498568977079889983228112419957705166539666667968321660269437634075408226134223410909634717694461584106293754203011739035979870950772389009009541586894924341836373867368399389811477621529229959785857637138463465338956420961775293743197839725280266862768484059488244264101080958415506254938742821221060174512319810487126964074468846626368349722064655274463852374458755676787383249403926775925015716915143440416084459698540788869769083784585514333385989094913212431030747175055398640614304929714453737058186282853122151574259287103627300202016188923739373110573624464845209384621456416756600170150516087424927128442609411744410996691628682110042002551598871533212877510452856381458097928005676955032756951148844877491367702388210829181602340274438256084546333884793572444930954650069199337258091167038333274644091982335706338498013079466250410918657825061815554981837418608086911679695735531663482085588918432642618004323577519243072393124750200888566622801215638935559864582673973076999262760521168126116961519660103368977052320383242131032846136047662057268407631708477849528672361193587990134526209043359976083568445260922354629795535096769248616339673940681601634616310470573507522336092308807815818989523203619364524484993073759152007252387496835540294795126563766042521498534351482934661224754117194543235933940258218660557320883161616870439681675747014429885566666145344965646399880544512753121077814577426394554671342396630737725624450630110488344273436792543449499517258162212901711403102893402005570828930404405060712665257705179700895603823276463821859007928832626101683558680176030007325398409412903312991618621337795862691456766937738595008883145594232445619873955960131857646547309858045855296736303754576718850594878285118916043208717128645495534800884943270386140772998891377285146385026262683990980917231019886086309642741250762632408096373249795589366457200210490489552518214217377835444119602673660906672990951852368431634540312444927137203787182895504464364746463583629045578356804573822496804732183304253892042475911736320961140424771904623756104162327510235895225531347132460460953113859543045015765444373960262711748079765043095582562936807442853828011575263692946776647930814588179180228480349994295361902342663408972157324468268382551529797421669829879633081677471428619740920523560910943063917768646446970541691357591693319900131222961618171371867364016889750077604560205534598633784566883167725132559320143624663197830423263519622995199393148269131231714839686484897251411902586374524697599469337836747000334479806343504945599695049324535979250312442834633248820630542186642132947837625738731215967566122730777863822363644803346743494332441524921182561627330195932873142912481217092926572032144847292230747311509506954625241162351236968902154466540740286342089523457662080323847001302147254373600415476667747837195104000389137034157468741388516861484876507158372605586898303451048070161092527251564505382682525502854101597492697032908339556812167501639931146987761622905866691164239324862327475057947765701219269689460573169735763038330672929753143978548191049684604688099632374458258466121190729288606088722738629174529346808698508487096412966229283255651054335238317842134058481160499996024738035121178435694492125530962377560631030878071906377040018505795791374722885421966884507065715691525531567699299306697595968859493786793594522958392976475586961585046103530537725550556568087845569806714236400124634779365549518747432051767295104778378128488578147820564636112663960933533936939284665928161917098116621035264180802823366598165111131012472646389539318106371808020352709809341213976588524940518646525869382163420960928532452980737144047520366648806530287704740448299404238759264652237618131016287941617302927020491610777257722126068957586841918966942104404137376340497390637271005547566942247119213570311523431328701516934149012992550182813913056674167553918785728986168252128376665200365194519814964913994861629243504062394595136933109853487044608508012046303056103642101898780670847143193251822544461244802378284099453270462776378403579954548491766488564496258284811442974074656654070842702646777710144716689057682115885891859228148932399879306012424179171717280655101821210361153585303705463360441266195521294139569901709929373908463762983478621618850579762941131753044948401729942227136516323610112245275762295377077220572545291899204205109845512361872264395563092050412781725773288762362148971171997395337309868970521415061443667510509478591276764029190773042448961622460162959448948789371123421543592803250463852278960999771396880411120038231166330151803210479738630550747322528868324127415168841679167501071535135628044880878987136319963801259824311697779137383853570245474977424149546837339966766227257535269806193069555239933223729134566047559102058346467748350951788096940987827999156631530650758974064976349859339364990644469000027488475721390405983289825362630978646863260755653576749836664819530596181200952942357067620499438742765604244518983489142734743178499101241905609329847422348371636648062635900397698199223428918080129405273083840126334680350169093955757245907465843024774355257926120677833514668599594839194765608304717017241963864112777883855570542546978800545657593266334066965137145965641990537082724617373228421861774517964716154955492661440152276836472644173285612319475408871791663644910653933073200922060028122814905883657809760387686377927592902529264355360331187199835698341046612929796509192216158119920195479762786108926373862681163642340348562665730769326638968552981518561480044525417061258725610096222583799201271193268526564939856812387583689545739786460345425275570995665311460457546471310682690216801144154197324499182897574819994760216671303735516866518773354258170659084982717815546674530615284722715197359110898591192344647536686336954216587301096250512543423158140698642489450921464358187249010185340561458319991960563649975397015761809912933176391478619367401461421140623224258563088615104015324549648955400286377158988360760998023941648050349896588059203144605507092811308228800862864176841726355659261999835763566580046707215072845466342238200951366049227885699418742729210642733782794229339617821029139531469881921859733073293986609890272260097626872365290974541616841027139271082159177386502375455350415552548038700086488769948007609444473674717533150173939468446304440005103117070698155150179212698344102656386993245843286554516478261715545646364519101105128080608434117543968122072907592846565323407956408058368506402029886248479032085854093261067902489902275780626832945059641542866544835722655902446088267088620995254368953560781212916100461012155375556115124045068635675902894273827865252109329178322646822709439584499199309290492248236434747429562092540259182772461925262590121428619908481725065362704924888315083238584323879348852517595512104718880417820657379142416664656475900664089078515375598259838749200481265049231078267988202135440162545988130057839231965194367867488817190510806244861682244946147134299544498464760816170564285354237489987820789308556849222117352818051225473565113163844025792736010524387069899482387859000571943687139460239720573372080858334574142219223941367350178206004734483905753114722877510066275140614193224242990854039812192065096616684321093890135672368257123798333337705450751234058459146879551906335859483279029350133200434069661911413689242724087852390659038355473892839872359957664036081008119718353727138950376573255805340438524567708161363619486503206657057740696193991149722772672149964820621242807962427042551255387516678190031696768567902643677508591392299529550747022560862072168634175164303808537161546330146490912779283966711664319418073297861658671375701561561488469953579577229117459492596768077040853680686860005503500576686779608387210001990994777647235277691283219260002741579477163482847397418422864197832228067609289880354262251612298650067407487843189738452314373006410665373054675314705977144529660411515663909379344846077654243051496192986424603977239984748801000004562228265024707147951391617471801264607695370595558630025282574809855291845688127259311983866758881074698635896967214327333517566352086928422207545696329095615707467492189501967960484473411163003739567589405058445699098437562965736568445717859428266406518705951238729673029446414484403382186226775665670349547932830612776271989029035355102318622095399496369729711255382111532280651568697582725468608711246478372008406341637531038769260070352685241757134161022114542778345340078209843708944674101517817559037987399964947967748297950519389128169181165405891294164519642356462646537378110532530051879510702811109793984195596261999636403030935535698840205423597759900141085587279999084224973202929076003101807534349170062988614842619371273745281882936524379417178065322247050414295154176131033792660623716826397893825955415418771195802160458230920017503199449179844570815362777857269882171375763864036720881403175197201872287621466267639949357714943099871353973810856741251983748420757435427486193645013980370946046932868947031912666158977374420755630589342769607381772246834761453870794276219427076550082527465526606453280443488812359978413100506848835503658822893352788920783952478153703226633908426916826873813017862352823644052588424563188165496709776959609365895776158968426943379919199565670698426655108529903870792342114606760409512754654486076078793040270584795818332782642027395420489856852297598385418454293268396646362120734397252225461017342539557387384991570892862450034949795454029029217449520566108474885074954893081122776021669455704395057142897047144608642332383367344472581682487709936054840996626932746320148350446631587136723229429151180433283818711241473360788445806222743295847495773603486035216656888239230676079580841318551449699074469151720345511637325158258941645614004811883723786111023101869891582458989476222671642584917782560605556189660572759402242411130886272881098212321705872665009901748111114027204118579532392484700407485577349149392931793000726011423842537722939347365451759823342903780703015905274191477884199075579516818631402948286857788342815914732758253067480163705191305383945642104466233175172693883859811014361273143306644745745721863340825183077062894054325422948488172651988839875236796061378168653687012418350774176326426561780297920989157395401865916890476324382087747169765365406262904287695724142491669220289615166589265351898123936448841987737461266235528473184969037523070033078790922859189365270863367234202016531095726048334057940815810547929579047992762588984063945982182873509085398992268452170876378775573949001240924546122169046337441428715972235792013206409589607060751998265466643952640531485993242940872379035131309197648124764741070785996412289752921822880964449773112997537455491832914668473436156137985430057333314314069653857861766440787264732126664659159226893611639963630056637457124293182613983476050634454387234422436771337386578403755612436572318036688410484828629383120232178448034724578470047666812736988382963797566669659579124698515431661790032787326922738620381969477256110496328886724873041042758559898936841645789563060679526386464132216498210452942911596854071240294726339094882023247367089435313017589482695184151176500838080392394987133623697909236230761370561822251172059846232642127305367853163910440424485090196371483760362348121417891811568189455489675005520405281877669076337825440951836395297660408703253933782880933141392924323155419426463919124686570935911082689093885857902526327718862572573774536301422322739579216762948577660244942832461714341352202514250725788849479285830383448839156347643566787496245482243325090947328016582395490841325220445880667446198348073113477403670287636182470072129026982075370017364437634779213018337352103725063857581093094696610778804400864172185269631435951713482111380754347701660038144820835140543230272755069774498461653708940464050934093343721494898577621857370816452367509441030913118872166289425521008167773111176294922479765539775710487329632017731240945027004227784204249900708385738828035172378128056163633302093754310373796247148839492976020174595122088936427287658829915982728161621827032558755611245253319524870203607554901083451696901706068327808408466740645414371051951852378946842760027864316098687447097973231161020530644706789741911501789894542291812394689908438595814523024819876867850334275541450897716052330418922021576345053662907921739996186038831231642984285470535140099992251948627766588939850601652485249659526907294056172215391395867201263500282082423474173569851136044416672378421481413357215210055436072911413393917974940382241079164011310901837904595899269971291626882066245035059639745285643396149839700595822530700542702533085540637008151732724333220871290692398878524772894233669057401112709298819027504803412521144861575303482233877822988123776958403415104599043243556454456515516712639805678334773790717312915741838285834551298190008091848166105108234215321553034806855126488488969573034952849163781780267236753846743809087282543063417418124340379849533570084483417131266146369507948093319235727936258345816419174858843334418837332438096875996438831847324448920803991332236398074848500552084455779855802236700938179037387631735608706279344242860681865577875078127629654224974239376474755988625727256680562915612065330991477713188983208056145077391495830639993096408632454186342366968056970834880326325858601664007267717390608326404188917032304894077588517030677200324534166717579898727707078100718485317221655058685781825687170322999343990685584062267809978314048071768815465740123196083790055995206487238995484474990349272967006611474380273651989038398055832791605417058834977383495821469672662006344620324130606037374422050587423216858523036896422677259060899004912393211113364889426070402757516945502095605208677509380003156800246761489506741056376889913055708450888855574681980754393816708047124581829152597723572767179731023249506889983504468547969241901344418304887134300946321554469456807124047694669161702277757766902601122948396952259079001080051919361166898371770873931985454469478194656992371702898743211777884651777020299458130416477263504723289476652163938961206184866424519749684907162831179489331085756004218631307349328948392343722586187167120636534943430689076441804182457359277888782364604945701410443800847837756783061372292063638174700945538128115809881711709950042509908916536863241725211372277506232967706907117760817999812697891950603547419737348516026752031725340211230456407866929283844248615183891999999090692339792287007942857705619759174462120687159267816170006427873274512977676553066697212074248450079933381473448416386423744319909491244942813653763305840014671367006723044324272265289064054987619637322521086769231546826295149574839349962982290471576696038916117031375460690897536359445656252990298412332217030323801919654323966735720952356748386585015676816637082834555023222086978306878233557586710745053238681877694751100010630020470589752550365671421173083041930190621600513707659002039879864160392803148403291474057824617900256184935293647218351861678772806108376801680840242508268775179133613716591123191711790351456422598302575740365303709002627193096234908976099597147166126822717136254652179815354792360901821302556640544223772019762145207161688254206439006311561010823574481954357554936162386747721431238703479458283610913733193554400189165986667577851210454896439167563741707173760222684706551780388902757537623187209218050496206698598852928417579637532691269503109196551987448967548390877036058280744046386081040041706359142908254474275790648648965796326391244966415864896129131039175818451122232568978327451029091409303868705831448471108911037178495532768951121287118110866875795349187040200152916061898915709332249263635217486858046435358649716078472403699841578316644956936528705196082550812967517312436286472279027655394758987451875984928848530589432453373559159848779311121353340591336142975184695603469730272482037133990302381569844166522752769018678385064601340367381822261071215850165508668251984842119919968878015198413711969968459715345046189217144919965970573940767235552773515617907977235531729576180612735543493671348115203474584186242030485979971362412509380713462279875591889155321567591857247418300521303248020878993732892627711373928248169719127717229175100998567437301638343698218177270965640279517111766936267418721359269138687897736760479760074614284499306693111442949534877297752313140143401982408473235911311798207061704722199561727059094224122933175886075226536670270289127313688624328522343873813712593776461636990101715137953601432377284424654092934230291942194121044335543540800670268593579021708253574457804161596046714204573812879097846564698865662395526523852360161473734312319356425619715348975686358628039131760732986479624448554180811835947451701386222580188240598728609492897695953881391686602968732989618593307582713988592654392402877767632812176275849448288529028347639025732884055563406133193995037592286965468905597279936415696886655246894942012058388667140779827417950016992648626832014368935010771655113301840572691173214205392013612642232028141350104427001569381932089128479673757673267830547749927941602997226165889235663749107266329262984423644278463490851773578040430934603217178717078710790837542779111988231699798477265381972775439384272892384104374933070460914392324546429407532724469027719200952460393851437574978546529898177423218990510093133968714463147625873826494350245545839028382183529543687978743013932931328187574292309063655642448812859179247177172971150756897353016085279498933475809080774645337249405591816443342077017103504318415427312246383294844292796033904749707973233124773617862482970500887656136573637946986948430981760764729895228446586696616544857166364898156302922803801196775209653676770352697341205136354029412495120342024676550242859411976036271203611138733130308258419528642325735286749518450742045954460357083364964126986612041260849918108660857004143638942363050073759600273845199166275874975104913808928532609359590715136021505024662969838078483638382686221463670903158659225702424064330508192904258816566280939192742848710160382293785524447360601983430948508875050912551609349095483656164822531074559643627220313475949090123015511495885027493489850597427490946972323229968517085456857064657920277326885605056834387098991673977146628883680490183421967100723330951047586192342304880159293385334757249994610593319572400559030375928585332663410067292337590009758161890153998989995918448832403645093072441427397394702972766754026817117783970940528334059214521001830224192661033091024727149916642665366618934432284383919022000541683597306805104098085331794992265922734341947018163036834475660800669965009353842288695724918829192222546531260446304645332991660818371139513965857169301766869526625471411267146485367176587955837220359224397533293482456492255470649489619491904018830295030912469678199661162805864024054989043897340394994326970013494877499614604425248304183649700791251374250068321409204371154659541751317013644677945869894819217983198584195419276065618877417413046823279485256052729028120917482724617381870274503469212777144185173571416289135314652498638987799887805850609621380715878906661676948818831950866363962366686057825772968863845935052201035363579390743374182315135249702966614233768008699748210993754256301835620411221815551987730444283662066651757281509892862488386328903776171416647348544908274508849981389012916004094413175300287944319940511147827038969086352635443648202330146478503061423153781093305333052691439365791251708265653824603607729118885270050480134945974441999721315757858284513544989379962349929215333630833080712014252221018030135499820788333297308334421477178043273034311177306044916952305157263212750817061649716143823516387908748666977234090398957776949088380576973349735622499312992142682476031760406975587304273160646649843950198489544694587092236189142090543005449177113164935170928140036554229117685484337840920192132075686986240578194546344867661944659607470701439092769410357074629985641294940631770707895271125871761233709689592076421545482654294807393313347221625326125043850541881608108211474926944290679433314023685505401492835810592100361581528058354855214479548507849424292067868296818247929688637404303555726876905745880615070823057931767969997339065427951339020726320914555526389606069296344540451385412368388392516384099105722425705084143767631252449936049652989739565186038040738354673963834640697395208969409560634852406992574719640188732354607712810192127815698901252969913717597136704557799971919739095636396268696242745183890197952477828662942141193742386694726123381884221586111445865654287447283256930297009511797958762400231087192412214839757704642941394499878312348945650692544628612373971859565457476941071023237295950935822284924700491249339804172594857132419163766216638172735972478063118799310510304555658104196660853951075478953648752126230699859638411710387112516353203949219683706321630206367683030717376156953913980484088549097219808393148955226636140204025716010819907751873392762868746280252146280066558525856702671275406831875630516090522967395542320780004620837406688296214121721487388811010664535764878696255146424982077034072003594098500820528896183439041581237683601830480569991964939154785572712921475184526882359773131075433673761736158999889349373871610611446162187592012959755194218770360752707196612180160888275390858075881013213903071761297768308479489628507408375096577385225055245962858424873121158450062040844981898062492609153653406005598153097467786322553709549374184168433929060214678079022397249272459164994063945833572965669731706788864879838176412776606185543063011926934133264500027930721475605344051769673916812389514825591626598960279609988875805578857431456714086137760857984040502040081668009475112637415043528481813903162638891246732792957369946928992277242397179369602246791581060377270122291379548498829865650869553237459741262201328214507952166294669609666460643576921100937655065695845324819513445807400453341486719094002172926921069861331935766157338993137204206757025043228733051898036050913760148695407265779150892437087373709049513199397032076496077964790933582448017160243646422529245155800077328822183904352806883555862461401544537512290910878423856382075652724354169027628773522476003651326509318934230734995488557447712346618886841599842282872904065622101454705102304861322390122215345525034811451240551568089336236091433620248677813832405743616955261163374246993575711097490908217560749931029134455143975426806901221527152650924272205250098214140817354822052970754924355767569438673436049996545436057914200710502921586948343403107402375958845875759456177279540594673871094891041874706290494245220569303290610497503469003488398992328019488000860293270397976132772906251511527076632268491264742847968775558342347550086561785220539412285218815913115239172540968737438503332967802709100253015185404084619155460394560432205798376548346915689916037766445735812711998207238728792033816446785264984157079382165452830453709166644466315798916351266047071403275701392324577847179932930731580641387796805206617313837212824408276226905348968085666595413869400381109394385537737579421556727713052566330629466688760739452172093022541522064955775038654692385284624982747874869123820529805128717533824078340682837082540331641123186902263838289693808146355688089866831184041980730070058926463354643199609860492641666314013436301718456710732732797652121934236113080261070690070336160093600411433668683324188979848828783301500156524045394572582695182028419529050946719530249288581033739763545282202645237140170836546577316991247663877062218413949184664885164396872631408779092286382669013263069951986557569912616456507317361330684567354467115310602022456789387234256695991281001670481565811395112665909774086420624134676158556652220916672054119678385374418210505894368961114070741688405741171875549304878334811217602738621465852768980240166552495070546292688584509696659506939668980699650487090921699512230414361505362759108227929969954107817357304119979420965203919585195895466838726221941964714243079211471145550078499570027652388321863417113480985460775892186607673489327530402377260994014153396324977986934288452421246635328473153221321545755275811701501572143720395874164050209766781072614095616310231979055489725934609989609324283944828041155171008002793311586435141656543578594476954142227080408232658954947339229562118272667679672706319510690058161264292230505562887187782485102199865706642445795170601159710190748511465537803149497257045203958339138735603079776946967673385574648048296687119804315537420056041132682879766016825425037516455619589139840183808789082891860420732001779567123882391815605153161781144724410486595840558082460007141152701400159359744307397212516963843595294623727305861410153214456500017124044254678152000770409278175940371003485953455060731173769785559239545533507858737832000340311938035083390324026534293399143333501337467855124746970013067192995400830022841313004672979127101091494645902718109666927323195039827040909608705642187803284059926964511741723478267307226992376786572726850042245447655124078906890564254243341274805998535094108236648621206964384366494457857518093448374073421081551403597680445485998883356315937240216025980133447966138595248613427891579358633664730500118938247466143423395786080554667179056663567614417520089974303270322936062758299293029882463177276804192355022759987067669485613254860146228757735933622977815903654939967089361056417191256336413910944167243963603110286431766251958295361789732075907448986438536416398409654770692563955706349301901671071785938810367551180249528472547233029023512691927071474496453009590270743353124147597805963351705069758102098147785351678101771139902175376736208588925485811400779327506582069935002542829969840573966247270361785392208789191216113237093281536374735081768556809208125219308387723906344346336644227143873974117145112620310381207818751857168171205834918947128887650573215937914539897365738726005635014511313925553952800514542191127116931452064956276130035069932363241075109926036323659939420169897071231165555933501224201895500325411670786280199750209727738634736589518575906611916835222792033279050536603341271825461745810448155587797116261115846271485685114532793902865422896287660647400940901786668417458465809145995452600028888065453871591762360517640454999403570790651047284695044584130113810243718079666354211565454014431982731848979190135159257111163477308394347661236814283300343171684021168203274323484953140562212001000858286457070735071751322157059990911699632111658148430153095338417300013014374723741877405937894591449623693760639783995477942593514077036370004731593638905552462794817793836338890471060875732728840264600292452777102770132164320259889863988520449975003686577472591632496579093537459659638168881396696966643758478576168606815328382871521319316727581252737727825021052806302457770097434381996149427377537273719533827346892184640478397220407689708722821550743282905103478148257203923027285013065763759241049991995745938699305268235088342025780404210981221599453335547258391715713281233252294355076357687354672881844685505478466347014903483774983975973356605137169926661655155472329935148738313132599233481084432458176673846261839700940232956795820110307255881284709400726831479797697817381924900409266808184013169933988193532976753072960159567893984887972037174980527571888077880352982378396202608588427898658957162730647657148135959648049660792207527919083157984820234262261338968120223240153666912452259960212828480084191520119294431167399249472738168169571562365622195766104261557237592519263073168866582699774656450784608204874542566490479863455459346541935543635538930201930824745377944509674169765598230317606841377672651936224324383292003886512301520375176161885355677289851470440192890180746474194202088494294347118532054753751760186780692448287090433815136477854796548939046950876095371937845460407644644069428976877911162058477040488322381603839615819891390351708174570249508062491976727261958230750226800467457062168180286097559693353551239509183641304109041384271478586959335009766264854885579405530703566541837350993623643545603866922364632211767942852859854859365358783715145631878747859961238559383761770715661654927970780622588883551934105461816307963073666597236496844594307624026265942316871776786274199835267416960974109280069168625646790846646460743805149237704794660091574145926845748396298690152404172467339411969027020410206910677049113380018570325103270596370447576861088438182795865443859832759912504248808221066098654005676854190042599519450506361363177231755223594136239962012085223976649417182603193144514159952121205690024185003431792469512205233981299464932606436207020971162619860829077005986835094780201514156116431247479119563477067611803790408099958984380808958711526764590758015639415504423687223363041592933333617654227424152856165167245021993973120618457911810870321735817030091766625861435859252039550645234441961472425884638455467179355537186774944013041051729753682136399128438452270187723843463386951267668828848217131983272058575862627048788350511039561266180011259002062787407670752871184669459294869207757970782113037775347914871594726406271265709336546875012546671397544490834020539642448585713182728648252312164509526625908862582431337092070137538814241435133410964094569679176191876517113951749332441198467724755170013522794010183414427058289210949377695702946968188924715703484029586812546168091813252904013289365394297693913405862102364405282321237172635734495221970080611653030588645960898004195761330265021596926431877811285625188636366171239179853396578226731521029487267558172171469243869911934431249753883942221295802935124439761239770183142313957391424253309939412081730977412026665848219596390972337177942395536193378718887096934351636197163211339433483071129323477441828410139394212257519261159482458940342093657054866342485653514015415341958946859615771329535809276948199100092610987698417646163978912444731725120768245990288698452063110148240062235142156676234117953068576885903409742067494369897247608742431242713942704289878808687427018638448024609226465970377860856074619849806301544580550901123890180670216657701955436592947121797460103848425958503911422864487297426503902163556349315942280126081670783225615378005419530436272034161641993848465291193905611783771894607361521510071842723043736610136959046348693867033321435093337749936352098908930708812384075449632858267291262381046735744179813522380920995215734537662742958445038899698243415794328640020095438671690563049373221912748159995907765540417033914838111735169832332725079838172152999769728704104723492355123899728063916381944378071746820785956322164786999324831673363601015415854195881189348421168022855514182427395280750709347151525990962984343471017909886962701110109186042341325408250111734822157856586126066734393907056806743387788533313086338371762226745145606157425263183867111019346416857476085417448736899054530897493129011601659063730181554953253002652168979805145672666190205408621886116543379596881070955026690485904733892185682564115419553707307424234380203038270653082234833788073693756394150265361880013707598609272387058832022213238972935196513534784588980035061116709432189765178567138996053004372095744985295822507206975202010494568613074192882162282574176375608841918904696248486538847734570315230503049431199150237741475703655042123581032311049526213104637876821321095321960848670420503304073401670202813825473041349594026446278409704613624164113051492289223135564442835661121751879926663070004307866568303342705162805400216107770429064904839460927930244462071568764089151294477971896714170114706702836413041036038756007198248835098842149737923761778449933403965079035952610662222828166126993038098706893119356568013182496684723449877018419599429081708604794232367929401413501440340910201402536763683541153736355777968660239663507864202918976004741321218115786605944741534674005078181509978380096189033056137683295632786021918467913112238445920987225325060556415326654480395828141280028107494577773707235106079660780212508011720961473570817189911976248576906279225307490882155788701127194853913227217048960744105753202021239400725369077144507689287209613872860388537277186772066109977618842173668279522295191649693859247349236282894366774569329463000276287114762597055726648222113127737030658468383193976899041300712905714088386112568989671703857506428811228767824292025025071266875653986224532514688839547765166859785078791099301333801318901811781649457950023235210541732087455921332417677023656823980288788414870433607578243906442182804575164885920953870189981077602721344433962323276724642714958844245254240026554054733809176471202867338763357475665667173948435363313634945518437924639013832117367041179325095463010532857940444325796121237676901889570985762582324646707207774930897863163402095005504129692929904729870386103876732398214179650598615145217742322192305440711898039483066212682942684097801071337201361408979071954532460402360172273607158800058843806080915790158372463397253343239617240875888800472676548845445991063889361939090005864462290436324234063375603343839914713407956003607279553546052925951986385771423211849413806181548768357509464168587573334772160149312616684050413739368139571628263388904645159258125660679972088950870590035665524127382748546318602305179447900315725939275739898800656364877228103297666466411663733903022020403033103791817418999545557738798628842345511572806060304452108750396072338924955431107809015390864666510357879787885341337369439727890839070232767436974577925881220138553395723484751257877968799256511173525194176054614444458504325377943801279888334385408509123363866415456705957811438475766899074120166169829735923425360717932640705444191134393996773891066448138140688579088401046126385352572747789620130827965534059879838445678181808993268709328266734560591767886257642317891776858451972567669859566520747696767622214853323677762180952883745301906416421978322823274997239184483970697219037020289104816436133107227641051456954892075694204931085889019844183281792175082818860662973989613648195632810308083514257599124802137580825826285767798643200960865548101121062270247287433415579834102597516810340611037876349703246119979548077374120654105404635488951284052578044487165772248936037407715945826145602359256790397315822875074068646168970435963454836848457267691841427876163245385183702314723397928106269945748101643735964523395820035100746716714958155884948957624558505309800486841735134769633784911827284545581668496439751246645830925990959403142051295546259705027221556646455637293589872654682803512105226031556983935047589872278837678373838188879927069028304020619561605626771765709819475962887525136921743498640881677422629971027289638021230844762737837047375639276210313729618126591240990174305169675205507705991972124596313559583408964809124055114350832798534602027919486055635462276906542446143902657244799385359762398176654689221204415735256523099334169486535674034160823802642308671973599835817738778139673503120593525800743998498514069030628279410814265077070903751853740784413485465807461127107371611780698343462656376648196749026037772162908537231439635645513226098922832356443287909564129485662415757879387303717620702774014446736497993339825571311241506080500933615423010690454724851348479456936495630400186011234030327061361379470667249442401158135267804115359499883533244540790045733490431952648228892561363463442889098819498952948645905621355420031814653196192581052940300139531192051622980658618248104797009275758263946823772110057706283821772201897350387955082936550568378377547936258971285237015906954417677334887717860330807221213094100104131542794573254476355808178703138532372345899074857928611099656731670257579134841077987491335454054863769095679722309425694112092512495366265665408456476534034285197277069248260392609987250494120405430042746559692384889514559473303434690934016600422579826500634887475666879615381178355314116260148344197490083577427474047029343777056440263428017379252929245663537260787696066902796187034822733672880388375620232256301009113989968541838536914174023724808170581923854338502836102741469654579546035349013470700570193372471604993859245012709481575617450333621569798188519931830154606702278879237600152031979334713937301316091902723397364814151581048838719621947809629070601772171419504148636426755049013856727650426321901135761435216507751811755300724359708674642997886995051840867273587263295943015755870709436237327211217618474754587335479673971869639957774857566319367201254695482042352232292071798170628793306979212677141974179066704141375452982398669460530432268976107536549599135405157100173229838800156271348521209884184546095897356474659745489661329603109936233698787844755555673284846519878763071884584990603540945505230867754715713918638343458748415727186806314806089986891985049538052247949946475879665337507011218243510150148648717759354993975184504985870229418565644894832349560845635191301043838101902405328911008023155583636159569169599988876464787283580550349150355172630585166430033200388241734867792625990679104519241587942317708227978072698200925730018402016272130888586021081540240783363799178873599241199261648043354573241490232851998331856558284121025630217006750969731401384058464204697702827379894941324889423799773307077543442736007654367621211290499930219564227817722450403144968293697154266466491004179818129460830118159188479307050384653298390378004175598599815215914365078761808438746404529173119069329975481755797061213704365767078581992929754525175936119153577012705387274902711435800115976094706085797654304683876633767367723405252639770560169418052647052807001929737300890649087761084145551312334773485823230680153732013734184503073394062978429324237146930311470713450033651938644454921233442727602309383935833171668098298681902636410189684684315988662494188798305204258665515645883553631584820086856408569482872045534938252736662913383202687653194043940378316606138050399109025517337222870399713799823441638736608005591756391791245986528448961410186417756645399262186383803411831499978052440418992309143793753029074251312842875154874588253861882973871916384381965275580588863230405933752584125670583886278577693639938192828591356605588547624746993263556972592912547091980396500418581880740329563051768142396328847818816018072762179843764399045784300577999482073430679398684396568084198897210814577337546449719700391718588966661773276527595599195117024898600952061628650465101990071500518264141313575522047047230613988280273583966274474186711280220306627994361034895891271212394212149113852930479698212697949149644173338821546594809396956156504709777688847746323657267049377798413992689701154907020201403628143782887069453687542489986341764168602768432493833887763859096119915516126793612701521981821148768178383820743359906765981713998695844212613240554395924981953571470229883624039444481966930416905632250279196928099385159861285017004278164822973641153465387612173000281198201634027822382848650383057605231397872509645648500133400377241417236505072407691225730789943472882294818595172430026376705302718916874793206626649834471495346940389827735097559727186214988800337711877029710185023917326600274792405149745521714499488681378707741218918120556686058989406598783257614257938543257826860594102392564192746952154646136308551739743425977608599960167609164036811186028596344108834565815493458614840595931406054749975703333203116937434360329718258868695080103395057754505296471989335793779486439176211259197614718355214368638637362541347081949441044148538871172505802407623076691761501184575125982252682626463219831550113869769027876202313601923038133332924128044351444920116681909564901068912273044407891038477109962512073538340624238178740753307381017675992793995164847067571163047467182587297974959366100424051044147949641867972572098821418538372457231839531616380134996782225116942086782543343427982133008221290301210643137877558441217800469624272003864153950201865637451926840682997365598168857638646888681228641872591811433841344750956662375981976173775346129016369659388237990025547937176585777396897047338046156973014564700686537161189396557592547499168356261779498852270882977753594498026338128531820834344835348753499209667704450756414987444196542455026419534730715255646857724903166692617478916989229906423441341256566351820384257368121133811331901243556161966025665186606815925614263061740478362045720860931504899810630205936366217146138579360782399092613489937470403418484734246855897564832781273348899781303093505133302982110378831970044968909737087333275931255220180524565045265673570748161502502774834321982947255540544793243360127881373607134163755593827451812805434847621730292921444502378926785292843352780233591356435860205888457435538692528231121963881723948094330879838873198628506027252285886724521852400592492332222132099325181896139039348302112727886673214696631682972543654525569164448027419638574557454661501477706914430161715546315128617678718790222304445550813525846210665046654991546387069545780199004993304738984534319232335613002072182789800085925862859669212911124998798173624477326158749371783939732062209027752513672498534286704067260980644616574833604069898120339398226834021367661910874804975312948867532490022751759564520312995205618948841972050257162904321438758168215155558208723177283497644420224237706927941287817050841852523482965396844156161824309613252668320604144448776693422570009810533174001942803201580631680111477945544379468775924103171564132146881408529334258976883652662400159310850487084175187308887189241635687094671165231952813671816884277690170194648750066035484536556908697151618665691656377328280049986160242181045790985304892101560667864581616521727111731545504209605222242172762740682754695718706739301400558705755172040574279503100011132077908981316604779762728631989520388181040936961013345853157916276785177433613791114564643733337088741161246119804937827509843492461614444746721697639751360128320291186848194107496328153692651629301937474299905350300480758699590879613139930782010699094109407955033773951845096955024440344707357032687402430297455701734776715454388649484417839000490458087851221656411554403752738748402842999966175870875339399216435299632312224505208113737954442038004249520130150431924299221391694935249649000601401821607983526720263478848517426097158614704977771202349130956124283086901583608338129863527188169608842475562126069945841887316614066691114078391954585193203376563168857933198136910162635369308714544679478734988192103861161618443329505837893087239927758430015253640721560172931108751992831511649109615983654852392381892364262628127923360041172236656765879222099571588991776852451042121244605033446955366376214483010108645797863699464970810661945398059354559543619656218887340112570080377352918661231824972791369115829615550616245964100634047790974330130516673686294658382741487440857853660006687517081076277578403512922908454634947391250749331053854915208975504973155323059437445936304728207696789563904435968753878419939281302961499100808680847217101865497657454695793514844540606831746177215877470395091421115841569150534444368658020270737881306530049950064757374408443852517613310452323862494447774657853069044044101281124175373146390641038542612585448597197032824269292681509013013623495324796380065204923620843847928307879965814972916089383096537046298701778875411459675198458912982039059955054696024687506978477659568570388321037890494594447115055049900121405157430353120450130158966388619571733181460321736520347473102232613762233481090639273726845691821055758617589450124153827199995601707127474586619572419388941169411426313007444380966488393809243056549219008235751458142030285325361670945126862148039736680606028141350328362309307386278954387152410679149298529064497133113026820200273464600041028935220416662883314376305637776874399213046944763004795315566966069847139657957762359528746150419525056577818167445429168997138921963971485869377154253000098242637486727703120104446556966647777025172313868894313280339914742223811179780670621052050334873834101187678754178938709521515906885347922524363113399732771551231847215702378272313278947463816688761370270129440098916978601197110851499119934196959042607245477476887623507860822753306520152815984631365991397486499911292682995151092046967627326885419012774167460675364806190363421966743671352884459403690413032704835238785862766814128618204942626970272576270728010495442732278293228101020259871393742904761398463336849004434557078125105174154969185921678552327512715779911591787801101197553655941471166493415726700362163736190962605639232776258118357062338027575421166829325763006305968883033521331788848348149191324626285886779351310576283232001238617105755410880690958257826426254906812234851602483054191236534430301070341499436874028864233159259931854286339062911914519271337812484728539514408268683163423497997627148575018169410684196562226462320190578604123473462128747998840147568219613308290667928202020001961549708625097069950340687946040132951538012717900690923051455933017528918597303691558782124591261771417350399579963062117444939978067149501327723808114951299691889452125458395610228358164191602243626319096490680041727943538267255116049384248281982706111121197904879838421114248828681404781374244586017915435682479316998401929077463540393315856623716570967554287791246133162404796505376152374051774273098833698642538276709786892844866640434797842072389223393038999781568259486946721444026496044265426607334839535174747968451445319618891518885265019765771962499174022772470368674480922567998202440594315584668476718241862559762078457302240840763553799964020682447928000674350170600051736490746238003297226736995399702661060072735783308914587152548600126835034886693785471203054447534279830699569557208406395457226590422746449245937441094519406189244224338738410745242919750876131840085611606829113116532421576241608138432984846104760006991922324334277464979062595149151450246247694740950286433687921101392395906368032226233431519272089093592827001652652445605626374619795794513717407029155447657198578312426452986617440764526385877823017868299803792062802109112440981839539913162347438336627088375003581005105657840663289743634368852729842500523951544270635276389502779051065260971197190874325040697812246467560302374070711179734188029493663320493841614629575302220128665973244268452230894799462947479179685445698429551500491727972094655971561642587653280732757692566937829533775759436143330618079632414022320007844354155555445176547279938757852078991193075359755556870676438478555429534716525327065855397995717569059790599643942360464861673527183822504325501100223067000147445795621813653886314960977245887899894501644936375096893664276468380129513159581505230571041818675812971111958549609352494031526622013582661228098949770925363514465064209774381902167756517826225814395192737204752871591748462054887467288928788308715546596520478827288089142023811302206473523114763398813355493986816132178707284840230199330953649909361244047375735283420434697074331727413359595836482956806615351499006752905584939302779384820124419714299817573211977713865075650047782024849315426485698170623084003519345513598423337602434922479552445229104241689209743278152897874859595562799848923898386301304521190276833950451619785544591504995483321050370881536696572185800315024025004632044749608986917572883157773916394853622783529566349236373585233467225209021130378202497777163741343961249328916765500132782547602646051150495492962492210354708253146136549895935507595879434803983902171180572064474384389503097577683001287758096197265222603721566763574327465264013865353918710980068139300456877684514115792267653881479611798469865854549521070216238884608919935471045655561054375451003572771783820943506607564910723070559315320108356676743326719171757404714488030778512270761071268868947581336859704623969744374140586961151005074986069591591505195515121635540277943195191339012734393100769633274454079620421878639315466593875282814830814605790281693662108800471328506029780535479451937952555382932065458182462649248586577786607245604117949317792438784934657866660691480999124909644668740350813809075496128624705119656353792982882933266177406071389948956073405622589353276622627086939724067248870660780033428398552033990490737526216857642503536110465209372896802572414959251026943787924317165764241106924883295090968963809748720592674958176394891432105932469224777795510242798651546713831534588670829709314867827822751534624890871282120519073561666483833894800408199280368666722262664441656462865642538617763689278860461501402190461518187798237035489613422376842455661972482179874556710569771766893074017857436392609962281880383168376558049207867406466457810422435664737718074854045708092192615039504957870119950144817406130911302484426293866331576692888742657231628291736484815958062242869789907630116674579680949297390099590529372934937427039659975134501896883793640597963430228592207003165857110296248875302476938701127011363345726579666285769777393941485601501105724810875119028201163016426665930542449138137248290351284581974391273040938023091100027252921560672566599993869207622207707521716519590454295162769844474945639083773101541071211986580000228521595128276247056848126561196844052202338843101147578853866774890766683861914203046475878536795649003641071451591419820272786746994224554257829874611484734804883602243866270246445127085365270380032446575322823583833174493796288287952828710025172551876871155773890477531295945068948752484166042160477921579668762783630647603759355828840495752216671997284148350298047895459830796192953517930020879780685033363179825971176343987410335542552387392929251100597149811045953343349690802765882368170109183032006471286207064635349202751594752987371758872311052078338024253043102812744248007439675836069136141742177779256382951921011007899259590218821937482728816904555409842554843975158477396296888577632781966708270256902683746605208436118846055331278309952003774401111343144923935602769136580502212667381962131833904747026638725695144202720788112769225057238685998420766886729093611453305859836538042545672820536367469404415441705432835976947653002090764524706929905070635933584534154008187919383867230487476856122878469180528466873616405411952112079424126872812565244031352819725477936700394979227814462680257240321600885442978763877809536013553504344241664754983371548741476712811620868671775342550335868929220520085394736303333314260521379199506319008107516163556402030505149706902470704285805395281568597544694764658946239132200913449050626475789441793997653661625276201984920267095180230885764521966592593054590690671792149038116243816487743507690711748354909174451852534390596170216930189392362383333557214635475489361377374912782879072426175601211188169143743276706771441202971684211722479439799972712987802816606215907016035498455461471758932278046972234253947896897412624387765763492318828571196819340038667367941464087815423690122600313632995478992684435464749641627396056988376467038948918756214365561812866519715521486053179536249633192438051587944421671448378989533444671913574903629023230582468696413154351580398166038103847969107991554476192148207643652035730516623172980945999510558034857606344446661085986054872775588384465107848365470774001759288337240373203350581588569164441474843401252643168812204473821496164580055125899240687425856117300904432814972643078683852127521992665648869962865904772196258202434411927690927747297693943630914398201660328993215918372591098269022072377460278336426100483272539615127099157876239550194237291672477801646267594038505212925762458684070580081661533243476417859132263820330742983704595605854135893811191814354924421410445110816812786955522578153267504344948670087439403946206943110258828227437740378118720382282238611326541783058414170082288111769576571881739074672990275622949164538591441785357551618826469126423027148582650832259529675186951628396864174274264546577624871260711028537609280835200633272755835018993485641113518977000542003532925006119970885996212255879333524948823670381734053450446499056831254151617404060658569895870212631004861452274466065501876495521913682220910122385490902434337951018275385330339218336705113099242284011505428295719144102779850560236376514033496500403897315319507280904624591009386201464548079507690564979917883245955810255139980592017676466013531952232123291260996623058546992746057080597151297092573915420177616486131455254137390481974887767427442135691355744988349898382229436681205505550308081543341806574724636066342573971264270233545237185875018892481578685045223272934785116002442350430419588577863704712711159020635697094311603948437918659724493988881188594124001466976896958889546039453155281384722701338608367910511270506831095843416751789028188793077074454739716636291818741522926110494774196755066679071969746990978584350626785377615118075812856201136931902789861160251332096124178987294178865312264215139538082873465123657382747187243629713339555965399868588681780948818875457451749387615817465760020106165134775092017255532448961060916873262116246917339206603866576598159093182258501520765499941334633329465576085641618778628705367640884192212874003129822695346082658182271816142212812173685027471739762066386888415131725340281305223840508689499913547636751387534761068681109879159316915483222173873804276529247786649551607747295394557100574606483302919035282482874789195073130458631659010817358717300908915150570838205516511186599736268000206285250192758737271809517672992543830263859431518926304324692300108465117558505972193518161120017491646204710129012101338008572294244196317608898560522244151902957034912038460648346333991006458652989583255424645610004313890333460738608086541011494955165372171478886835114509549793202141973013719365199041068033407821639826041982803135302894607084869979576861909516271689408607657490700103683827239785654271819371782337116673828392587740543127478161752515551108731298850115994225014794810059646285467860165679201250952441243964206579610666702582489046145631985658321673984606770405555299303653330268744147528847834923421856663632383818257780847526445881203159532631251474698166829529121246269002407342379631308630023016201934140245519943993339185421668958843051161301471591340095088466836348825499735906174163478111746256006596422626820811685802809449580566983980506353735212496123432171567888887454446638769085361713155595508762098097320599998776526138275930113189866065619502065848573561727494756225098789651268246335885428015549329198637854367916782105770511105599180440343613888612280784083968559129461278363054016324588875781810272246918524625235365148987781596258804584244089806112574343587405522369454394760997843858344399398492138064466102945219113543885626724096853731876384748417180250878461277059289055669216288687978147856825679047373951456615663948195517766715000824121533262195679470442054150153549791866771142570765044393542066197028426538208286666099339778031630622443498957244883533732693364430959522134994583103277340812070411663721914585126873306488486212020777971856425519923981082366796888962942370935083421964858708781327153565068798350096203969477950443271830354884589069762807575586097237038936102167304190716914432162501025447250146798488663439538477712347588115406176464623892493260359024787298205053752432970427963487651830167597729931780006013135139376347001812760782272990189326867509238432236752629566146079454753073057350370675085153717118466003403277228373425125650592020396972849382412875812962400658455006234275477209106160132608029232284142702882763772320299730879901969398888002007738601331939012232079640534755279497569769071424796129799967584765566417507616347365762851322542126084755460042136394210091315285859222219764648623850955740853524378318742770448612696392589433252826933556954594855318096455365500197141253185454533787537386500376801002408905970091129105570891817362538489371185255254118198848256347671817822704409065136761272861708909808523567991516883438474318492481428881570831027441925194163744497964844802790539406823594081189361938658243510517542758624066059545841756224797417335812808390493511013091150485673863399655717893366891650794210484300256222697377968903323021444775182281605536748401932435149595479089137360956143483309837095309165617692900663642958419525780865619045857180784523253176970312244063329678354161063951002451320584159224392761458330987823249782816101656588615163961350954662251513717129687293676372544955870075625917195425389865971382859167687013111182847695676762232455424559996786636898654486383909540247051961351062867725467220812446224078845004545119043797850636769874681716628208714898865882996256691066219160875712564709239140128218780322798186315020035225268920056094881631191337594661969528021731785555770337370120343356346452989371450845318831026885403063850553823412212801832350963483820360702272833051720658232731318084804697621205505640353354598918432089296005964233127867729354238407973783163337631122204982240917786284605107943426858197113714909264557898655026452933707142066786982851129542651647458545561158963354489170863528366364814242625744752111931926816323137148049102124060257438971590444553559742020052654399630395894750434212084241728485019639931192745320906734117904448478630149264884497558574696618454504728991720628048045563679514707606996550413479688298465207490567477930598213196670506528949228568861181655652334551844475712683779147769691007537885619284853826606296663809162499385286299531422395880526102807514948783561902677525410848921898686841125625523329109469869068866432456420584199743814026024208765330867808418932213573602495558250518991317947311820574545464751615376039657352052422168700399993273911169555338147532249090189186130694497182572347971509410517530022461063719814757213782804247448084786154146055214017312350721469136050517957004673020398849343222886845476025703510453457786625122443038292100944129393345360471065539310299519396476081788854578050682892238490602636725896857384693029766934459142822300898913913744243790514218830132875792828134088728972015040830811550770930735756623009666312596656428498881478992411022916617738287620229259872225322651272049314320601140425846982633941076659859303976216364297676955471015177731106093526427995426955920796509826473770706110228197007796783871269011420027444962099702442315844618364582869801273111501796092551002576746247409053137798607191088598716258740442715336782573358983498325549195215725440934811884811461493738936630437949575449932743649107165664258529272778011550245085396961028171961906112265623964458035711840578895705672011030225624671319887598355770506580847252144297323855106858438328934544491633064196377576606514914625741906403628351520337604319281019572576832527900124667513201632590440712761017146171300125436564882234056208991140822405794127583878260108109470166893248128528520025675406627667262404871733085549154958641740969460388577568761108261066890657770197246236964800365963668826106614291620705805377870524802047931039062423364329036163334543221623524256214763287467516623660049084525234066505415683318373457285546073374809175760251414329639077736167683684438556454371355492953264842758060698917622765004791837379318556076212316304765930495516642809645809926391184986505398092551229212017215918055751761412118338848657911581308101238386927042423193680231735889787653381348361842213495465799345312494455070670305784303158499918398033229569350683071695559207611894175186415653413339619210166831003924263345690537453950775426935028209751056040772947028878431876073646120429784982326000626037561713613620352689891816403462251607787600968586324037915839816590674097634233098634109963525221305090079171948765801675478039059905966191444434112610111170585162376552200117858491125356166828865248788276753467249423871116439420231357033696334353075862996735953557236293833367543005118516667216075493134986414777276939880317662994988897874658389044596492114214229766150188079918634313202315654185759775563005295132014184123198044838973925151374627839477380398867526715269697227564436816968975781857933774270366377988103504608613347592259676282666122763622854697716781293432670849130820513534444030392839941143679423177295543694402918944573537396894855323210476744730707605387188856560134129744605416058530932526948212914389293844485569713675991204221463183513928848049416126065894176389692634844232851343740537903438298625231674006198763616754932304887417722637996930781205821782066604172116140751460371110919009159303270519790273308753471899241645047821632166862900191517371465744025154215143475470023440901373699267432761673999580386291156767167524579766148093955603452639429334535313052106496437934916738921187596560385228285045830911379853162576828818616457389510145835719286952102948088007955290154493013972664915340858089206447217550191762089910343737450518661217999928910281227729806325645811259168370334873328527178069307691321020593611416359206434350967909763643902632891820151211126803452579648018336782573228895154861229948277211344798262496437449807677669619710849507173402839137951818501086581714960142177040664538136623430155775875658590699104387621842627847622805032116961019788206875561654422728798753351159895262008573596173970455193485292661749881114690483668913819864403355440760212880452278894119070733195957897148380420418488473176245191887957641642114667928199317136137992361421324374802574693983360864085614169219815826212599833832537911773810951130995640183134720358477316925434647275648642956883704449026776376871209936345786623979115684802509336511191871557692310121956421713956099790397538754031150955447287741422341706042964254188628924093101365701320788848919537652880467320706785783159194308024411655065356556153752720346955991119032101500304044640923060377800689334856118158697811534981187166191746676937354684355040153812471036894125997379781540150088590189233610745175752781575406356241054298753461696173042019315623281349254449440107192561483886426001826271883803977010259114094479231247193870679064670901198006087628373607498921350422960886466940699176808656315570332805388128628486900463123201310077056301792610217236143374063866305743525852856230308317908350566915836624647543943865796045550633985694121186340615711143746253671089053934253342570135889640965706934290139286537903833651344851769295650559448308483552916521094276530185873981290353925092879155618291492355202795751139255947100472889397238160605398531765239974996330763803559755094523148235712675824459813725569978638806455840872180955707963393232113156654803123872422499305064722740430798581650480421191987708774618406157249588449253444026291824872080243169378171025094403690189481902420278870124486751378068122533100299921401210896369515414996120015158323862259924772731197612785116886766829824889437312625460766962754061170083729815595812041458569381646195392890148331174363061926373744120011180517689813717545775329384322852847753210503572179693753654608359836213430389386312337308487895841104883147277763153968900594861434930140730626053168193333454725071893741394570466492542157545625236456233071019607611982982687937268068759654853714505807676925771992877120671892406150442611560279962384558069535801063336901981802784791312997747953487554269107410652282271007139914601747121866131916111250155184599616088083169964599807976763963838279805467314173595388729058978315980424277522862731917693790830879885999593208050751334861651702310022644378265150709223513240695357946827164927935775431609858742263076707203119200781980051552609079005567522299090774633866214976823305001637405706772636731519672239719205650191808654273612580806376851519772781529357287141353234878956529868698698311261880973500055539776496258517968366934489777556537942831748045579519343583015762664115402879713012289034424652014626329957347854991323855621753067876216303655647657092430905178569445267277538781803323784572230418061016027034194571493899145581287123466651750021944633263270171612587129847062946260986530910635386448530781893731801824714572854574781884091552532952300559985015353281829775263760460959273501994216163260582686586312094870398159579179114019731884026575617133059718565995150289713196620406024574038269690676879686057415416150911999687677986449355177657986489140090256740959613585432974184147444602518189344739566620364852103491151599570173913293839214576783277118768309939558771900271874125026928566679344502610220884048530393463674864143795665800641672756746058818102830576599503654687598412386432857175279880157096233603060878667793168057094596715118248303600489921744014491226069370390325070823977595129027842720305830768702640312975016646075368041688844878779819608370580168207850775062165708476650042700173242990848561750436679275474916070967605085252501439521960526358711677889101082567715275618311102510077480588726595087727785514153202336274192393860686138450462444830195179494351031696982141753946091893298371140515992831008390737803491543901648860976767760863621922865757184857296704281282134742177526398516134876932592842804985955095428326697346920033015293533729667638539846297347199212318992050495106415631268227648608033065706285554018026242789702578250910612356783087919823250238134848126921891643903450095138130494970738011035584800787171499655773594203322028422711466203979635773521170578542928131313366753324201857680109026197837191567125918079281548271657747817802799102917934314521655049231568544506683095139771723054755002498038408685821521692599338964660188350915526400653733023405637951925521876439892728285024579500870203888069431216171257700323989362301951928372695823534470554444632167599268477255977523670401663423774928041497432031792866884561779338702919525074330331465610339443482995834281512088917093004324121619442591399485574504968566309156201539736290891596800276971955538016110329080272116360691448865684128131040656759345228919044606492425468574901291729905240258707683385377551657352263605644394501490916900183291484722306047750504071214820124831438633058071455405981020268785396950045137374138423323088083069154132676929550340234963826083142939423361987945997395514990863615821988708794381176445698342898447399758131669237472213079985383027010596227990610917380417323063744344669197713108708626465517790261444404338199091170592970096364616002386500289135046947130085240867018114933223843158301289955194883301359632286705609699206881313699122207397337114387677615010809434692389334422028824830489734406062324938074216085718738061834097673290471658986209093625617441008888817582999387202321715868808064227096824950986580075002498532877393264055496208446444410996855993916536068034172278963236873102840170736253517326044069314557014390943461833979711917078113060320152774859246329104761631489565508047313305778555591657850562874737642351817291792178346331165002507427816730936520210392711727676038836386234672703791357681843233043740922558523568968927438492673465292635987768373653362170744112329509940674091563529166620291500113929014179805915026650173820053437774224765807521234344105575242244096075414122256626994820877434646811388927095476658155092756672154264670943491018310252797288856146836417132093936456324212872450790819907729289682976936678257540687426022088766727658827525970851260949450623939872787036769262145840251739072258900478087930700392099200626761192094093047168266467059766363478347376179081511518104933834040854264325758111529710001238501711467690865834542875429236830098948998061798876294329501390310358534539879282312422697954373010209983994161474078514474256847745259034079492219747773431729972632596894558371382226995017098004237801181802675515998753202551034785664418564620204650193566225220984155983728222972460034375736967039076854640789595556797346946447363096124880503495260706532191060910547552204694090599990702142884315773144684021931698141308548007733439843006415154357644551150610539811188490847168184538310110312502908947569307591067504423092640533512373576847202935487637052339729983221472197885532454564536435375142882934720658811326326483864836984143895321150856563565780256298509577009977648415032311542728272350520924929226442826626542921352150385289309907673431083234754706254139573068206110478596146996154641363133774007823825269300659270842505372392509341687503947453079590384187011376077028852067227769645188598458693115990682076522470759097553754499819009990189375271103043121468813150546182712583091108995588097465036907621745777100487687829167888980091903762156143900327717721227749133902780144387182576325552917947727075256018837595374949620253018549710414721183237992647470170863876196566708814349620610935857242118333342574053751856051437547005891146032514486089620648695559608897372837776127646900255683996705749822147973951466211575255054615019614726483360166187281903097246626837896587326617192865792718948408962080051803598229577271645994147292217099387190080418105583238911404865184517327858523284731383876449869736933318362346504509903164594880302265017779664331658956605162265220241072688734753074432731152241441683926087815075688482730601710269220171026264276944086495407368775033102914769011517734690948563274938305833739057520220636192357153990948513646610839856391512586882065768782954176842317819612967772138509394239540100123850384532265088543466467122431026612126214328999380584637015445615640034542488514635705386537991599096158393071065422380813991160076564587929975310132784889075092026343563588142167372076721333439574071190061692351271048624291610767377906550489551215161861402230845464230408555096106877104407969735094386210728300746309569686882107026419243869867158916430312234571301305186814982273916459250958127916814569533235514741839815761156822691987554693243022013724207394066972687477695012679794451716564018653238545991062438215369008690873996462575256639794951731381045889258739878073575757440321971826321226450116771714401757595591215737692909050662244242205760932982157882096320692850793755339343279664806327100052825305491789636717060312896315259852227655390064634400488612524196117384322421950191910603053344334546110562041286796490057525717897041132059671341808475658758680790314922292073459150453760743062376154890974693080550085621149423531655290766660727281170062177565447767698836193474546953490061780348279360569098089624837350114357995399051500506927299656396148812840021676099384247411635115607042113171063629675130987298361678310335696108141717652678626514885680125901068006215006016486610946927362680280896012060381447458961965502438241374503455067663900324005380602941165172578741095066521725915631406522246523605142935679040798599308311244759368016788714193350714525184339614450743481841440423547598138429672766597002932387439845172608582760926418495216078466652149530024145598311559806688213046665802312709207590259835728735832693649106287241778070051494456940464131714904948530070580108298683250309086486562181454102618832976151374161746313120699515538574692195149170787537689904354727918893249940128700832332182227851607457911146402529363693209341694325141336119659572205236077367068977489332999590160695647391893960383200504632137833296289273002072281107863998815309861571549961294791886368535154557773412010570529441293365460560969328741078950756262789617904512551137441906339445456107166074970119540577749419504912995949914538941202598766797527801056993346952747729981716266054162281436487328559927273302644769808465929842191581217653312434276735400749836133908425517653181853941078289383845627900904175031813829329683509754006088748334361485943830783925730874162587861084695126120330233147596239084302953014240724666944340230967879927279106660108709128197087333652067702988154196588608240808784269693911201766044953984749256447533131550891023414952672879323153980592128394577427386722386461434825999648346462737169091076907327401690039062524951384673569426573301832404468000889926021318558590090714634666745588773830443408746016298832207633218608536713212468223425713853987814593570477368687249668797914308312006913236737485155138423982779451403626674749487662070295810734950532494745571383634718280252300340601642237605630085865391296217420039372225509336280736760848857671560902230397283881264167947451875842197246128241918149911750768066682508876590598072609969495862732735440895859651821486074140914631548356373700254363428128895850816304612994692816715420251851580409478910685243490003511265983169307219084391217208811767487717508397914504473127206218010477894581990573516713748740105503984062539113593339092533297458908970441198436128445881347488505197108029231918694210447905739680008406125754228777775116101682019797475788126049815581023817822408504274026910560474451872903087492714039448188420591847494332886486373507985761556742211577055914242141939620584249426460985516061874572395489174067934425599423153115243693752352621442735056144562740398581986762924027717209152274966306772380877435815543965712690189173952280224249164392777839875554342161765970024735192890524182793669612871666403285733823518513745097046806946654166806107808734491809122484310439431131949672956648790316187720011087315321710635424342102208590443513641041614160074435180285018351730123630934279039454386771479985351079859807038066748968753734616848225118772919558289516085183425011711833540487681396134974955201119123611679022966344764083623893623568888610778884725226886877183790915874263251795885679783644440379710978154721256994626570316265945198649866611639915571956304404879328825145104602296745863562327650414243493309065660339184971052217132786921684709730692904915323980621858456844560916542511344822133081238969359743906678929524913172078105949614272153072823991637234486679016732259437086430701013900218803336020829885945718365656184663541639916355168921146620840920151240685849560987627707278369292761838680105713963051092748293376086872898002925711359869523553492241809120978756764564270642983679839075860893252020132421223977912890503375464416584704630403822982184377375408849089177344578647369894421969911427290593136626903065889190022303220029479295054711991713792243656196885835139384007060038825842552803424033886827548065146764619022773150477722195312003273754578418502797903033412439306019000524886498162808068513656554470407427497217209345723401670406560772765310156908485776682895288990014622134786480907701460248692889535541230264833532348284453338063232001522430806705023352643361592870754588304583682544154656163635097910212184028832651103599046833491327817111331359562130601815040083335754595508126238859667126911011146325236448903770688889391785804038948839759846005252882622604773437845200804247233064498130567835707079726131712170987541330547012455411348232056730451796192470041142408377690949118111544650860562889500764925582473626805353564703182230931489854787061765562371721101652680569570870449541597931685465633385470406195988727987748790978485921829730646651665659227039630430693784818060025337359116356643633530815440487609220076120046687196940687083565097011994900498654011956633779172630201405887063844270655915552883063669187694041155471482208739227121444934903843360836356058184855035963012005500112874741411231226894641445518329263837182346223589615754879873728727791619566219714662632242406104997289021641396729540285683050951258180426254634382016366958093795353815125290781886274151513027938320829922363561894489521225793161673605810068372845038758996739722896278685028151681134236987548106432631699801445471106591991890598098808718025498258639373302455875153340686453983757603007730711960861651980714711897162394171132822584088109404469107541111254272642771789839572651781339447694717046464234266088891781985765611464965619203985370958105730044785088651215833798429014459341228724612645067802076385622732799620679310541669672154102402134243330504883976744513622300047411010518412725989190720912749382923446301660574079415579208676043282158233461272497303239336627123526105168147183255132419586836756529923194753691828703757238610051433440946100949480577074097122103667910598912590049073124377082280716854583570311741650385964717212487907917208411464943035748103583048358503246246165951155090346086629196570354080635574045278526951192251021743381869860671150463869019687576324785164314073893563512654789794093858132495914396820118187174648167475061741020697818919369327650611646553497744918919173849354441338130975479175880407460962540038675133195006502864378211975961110366999397802719806785491984473442422585406317810880261421379808795139946574924354949904323531591264731249715223861426346035965938455873220173337186024622471730556015231440827728321539501146773459948372503323291706168590433411002957951456814098333025700948642782042160545331541680258952776973493626039737295299178574329846406558115903894011084990116374375690637059901586361274155192362826359918946980031576351566330235106643832317869805034452589132049288356126057117099981350762513670811851525835850639794596470176654595722975264911371102772757826919855884539802465004259081537805372625230261628339571553523223023036122603024224397496720002484548598702437451431534198820155611285885451584629104352367912998605128621707115101567638383398480111114158483528286054675896922833344319602055928367289154432472130202471615338846121858846967638434433580662041342340825181291886362461988130271940105971025018624281823422514386631105065341579321347375995945282645574533330278846703893765080356899107905898326247111567229576876680785809816319807112006095548587967342956366485864754649732707375216884717025066105129311149338027478249204476379405417257865538591318425007433562175136744009049412377053668729622451357311984110886211392100512621050100210544151794673789848139417516954033216226135059186905506306429683618176460228555038471269390021392971310588609330126385429710690345484617518436307885961194829052358201924426122034601208305668326681480311021664772165081752249273655243056232664007747890759840753519426399684062869654079407969815316130631281204052305803751000023153645377783279616608506788942267238956801753490073024458199801743039118216623928301923622192865030644827425918652864268244877574559181624158127858350865614674624510469233029308494828133932100923679096701198655556029637819938915635163461294328235654384538328467452059666518651785847321395642635245908119380297361322395678544032650467011313592283159588576026318218284441390060323843313894285614015865486081724676048769026668288793002423270566850345887945842865776383631142950105987420153383139698912640362254594952732248293802270244340818748137980711858897363056824837893635002956440186025296333209665028631545945580665105354807213739259459510726148731339274346282304977385700939042935858042750172889904106827487222970478560065452955486466400863593321155472642362327519975687443941589759462299208247853746749710350854615801137870175450913388487425122832386558949519762344697250637361595377979150273443649590325913130281579988397408482579782424864241060443685173936814843711206671590019466516864735375065160852161669572264864134107225453707986114536296345831351743198760405585410020520255917961579874673611702451172200318939748780920137530537282287379356487223392136405197964408988694614077387280994229127824503921428972371388813543656240495529986989906637664424891576959323039056069182083643242976076399508914956535902310287380429677826825040767709705358132764008289599964351003028352027234003561607793137043405215380301233219874209312692440037864185960219403044702203768985342117598248224070927898254187330989973667157694545624397556504853662300856986598752111254136834923293820308009516655842735408844804202950511027076327455166218997762979699530392412527275376991983886241836712305493861160296253971478673474341140733297456894275347568844044803265533083658505541917552492195770674389286839944767072041525989841765645571330710808396851466012345531703136733062066650426224872638934149276280689080698691719808674265557928251437888343187635533138602499872029365947160621708198773984982247750689326608307261025693955166304211925390934229004470992770837080717966672635201719596586887475942512651461526680842817146959895008447509479031895313368514628933090391198914268771824074271629744576444193920054988233218655697588390703048692170575844697425802525243929179818342872957733374200529952779220759849102484993028178470414234568197337759545011612108889295807580387958723795215437978407150618163744109545591331727416035671463979339601079145915740743861313031852469551867767697907316736323472849402403419784083443142640983899172144000029265053975609849895703080713608564032126584385353619514185369591144061987433945911897266083783962532278135086259973472833241823170997424880500337345997424607784700438116542824570409810615527354018742015631381478277064983995082407150422242775818054053953341047152748453685714062068104638825616911104653727663927515419343460390421439365244172158338411639758283681012748138238515307252678818351604472669708496521428465838869701059124877752697226988027442114437734376055315149504663435940003652827738669562305100665352683682730169583733357994194117577075942333380908705556929444774975194680947134677751414859997667182570650120693613326855742318574952817703486252613054010893161989365289475813695049486642556549778571901592542314075578271552100231654590417606505460070519930701100879221699083577399689952052507325264173076332460645576265183558244392789159071170107768224483028121796688074433957941131414388902588363050174152893477103180742501000893154441188144357314599700597824725683722353927196262324397480495506204417492004079216310893555036086379307691234317253365448339428501029608297308301131010690106796964988057135706612403773376657371653361169048711090877204254763948179488005149388448129862664780112296014745603097425105620515441631168761895584020975318585956563018775869207082567165158079826812579865963440402489666597898808395783958090047134545341401191462308140105374648452035145474778543101494691636768754375108778600813314326409051420641946717204624495624962602696910728995178096391085829207968575652609522290884041040400918220606632089488763633413675892597712953028187998604410642015933620306460465875025389326199116936680207451970397504562641094030192173422404916800230391663889568805276573023076605944869657407766490988771577680574872659613097351518904273433051127004927904081362120871675752187863115056711088559614594429121349845686521848411027481412036568607043756381764890397711959828222307530626185422644919894401586908687447030994261281879891813839526999287240341079139372747645152780850164962911593515518874030597635848644311115973305248064843983929727401751203990794733687319114148563242288975226685214128030165717680950992194411026871704444278279100820495597265294555009717918091842709676831365523478438299760919531319838303781260702813793158690241039684194199745976743670528245408103441422858161239582097489493046180674707615474608023259325134478044614169135663157094952101874136027162782958130012569923147389572894106192301339820079666720867318853283495125882709191933521419486251627356498629138780077445245919900390216367281122939574696607517142925088040615974577227782047008409230174637127276206337598199119805710688815539021350085724502226509538466903927307616618753780040436104163726113351616994331080704316157149232078289377921727175639271915667577264199412457403790391140895310858737792473474122999663183245746040542491111483334001448808985558385755575311136429320532123896352701125085945891272614454165068988407574794729177538716293285704082095070359539652577288501714867425713546914137991480285997685903496723775844783136255078842782492244985493037174025387029219111660147480148353528390514554136601364575618545666940204936527081785946606412350563364037263149618791842873212762982275930187784203400794693156089411056950878328288377287464507619412098966671932848418334409451617170897293372931555670750255547248924942928241870308785016290418819829668559988317488323287632199140799402317010352121595316531004339591318382730322669436711781641019813856458050952746894675132397192647293939279250989949617331523956984868245587532438540134779792061501428924405889029277311216927100621223200441463874147575786009519700424603463858973969066469191313250207673037159010768537709702753465765310322832289796667160290360827899927150897192150900804464767920486995883323004649799279979945742501787393307500174595139332973174239066681851860925614104274995138676463320125765395840773455914442191964247934692594032223580968404204622313298857155693178508243323018910130467615976731789231843777728198096313146376076732902408432705848063884609424951528732546255971626394921426303969105208634480877947456228982685168192869912130949539963867756378413667056937677280275117164409119380853464258269582762045686536710245559767080741388243518466541469235185615438201645549522400472640554526000751618344911576764712977158325211367739404484634202025898372848865410735315260914047763058334216356496209305153397151395361224150165107056223839051760464985278057354085461195905456157703752925445465922494577449302476825638491398062370558589880942634412080450660709628191151411083203756629034402067587216111840229667880699754077041052603462634364434519092006405751260624217537398246182049751184001813359428905456521549143035561105065771548257135211471265355095831770317558934463285996154137105275253411874808967657725764595239280278820266720580742916485491217401633090274876815636860848615991102973843002205702216266399798067557553975594178716363526187362823984173756217194353967524002109089420859981002171752015281131204160795098398234870433286039132187861909954339413950739377980024620661988059878938992086011724762349551131619014964998908129793462118692180475745165378281062316192069493100030588952409003873965724772618874233686064503691333073525975252322664777271043031661770033956101817434582602028658929554154170035725180392925485152253720803520197144809514716642316616326644384890573837415190258329922057650296415446886818616197399072435632437197860866112068263327594831426604436628634328783073543858186726114644281122341867148031746294698648073330255620604014518322937809439186165829814359249530354253874708885987249565928348848867270819952820923357728407668029675706251208362367882668055925420617207798277289560399659837813640940491242193065178206037319045030724269978444474211498538419006459679330579967135324525790342771408466435869924738611071877620950897196547499166602966837807753529198108088435993041048567819069929877193742777617989479137773881327459331246020732145976843317434554482366375450717695772588368647192506486076203675189276011600415565240836854937032263193703768923111688821198565664715573597056127790970709012926851459056756020887570907417668006247676243191820341906617378137689834270041685395837605144529945804508179921127341444155490119313868470437400835256195772065597173437570785169406943906942247992082725639616668437519198202235247899073968210073900790653735177242183436055031005575629731071160560233648081973542703089864652171625091096901124721324020669699841116250095013010240515719037120626207503547899918844603850932495400688337138347405531865938864975377494084472740617562107836763648084977782085501672522454716826344979800582897569003558489555494458471200809812857362476209565656051588037388454867122539906995836674324574110002179057463874115596482008724613164979108982601088181453721490336073925719160598826909796616715370032656613061501658824130848438054431144159739990156251582130700401308800397678069289286018011331841676434113278577692391232570816354451464384330091036261136681800375776431938926636872599456463753126755297801602230231854417025755735316014400560594508327059363284675082523572274553240128908000669192663507778239442567771636104637253461711550952486368336418269983964186116476577504929115744728111138306713499418872000540854198938604497525080423958457624516985661519812213968200004058901472476792317967476823708834870675465981646822559286912278288059780246296984807229980506873479618711132955410990756219500334813170415274914982771595901569360526439109972352008296474947816364412078914805788385658589265610350762158323827072860002207790902753209387877630592200024490993443554735829731236005935952108006672057685713285318482880792775434267994706935145640506265832015551861162467689352319990174912137487899864893337800573999007565136693643937105585570473895834985514661121146869818616383424858474915222098207665058692779359291609310102835762837584500407788740532855786407807900540217341345421480349398781267436585672934962100544176366457259105648314398405417088690485611526605475866133123590330624006062305590254443237244975557201187135478051978508703111169152252735317444080740219871507672398560312589319752674633471385356044709711115131615715941247876527809662565464340051994258332168933299598210310690920651604138907902010974452563391739719586858805013481677528130552517371361636003213431514321964146242389052023606169265053663089334110289706628801338250702036135362522221415570930572121828279298525340574297689118748363515660148972428247879575765194417471718567403464253239681334527973888730228541317616812199694604653349739573032655291896156969886518082729221816141763599687362730311441240370488446124371167937640950082984430633695642588787081928311188118813114626828791878845579357565457497688086244766407585100968126754942048664540069194978528865299966833193859148353527068585645167463211269521382011888321927882872628703930790763030793690204366616379420604957569139854322815763309045143425499997897579294151730889678125830146107387550423567880787444631770519679107508289545203027770276121499422504950666067260297521744671943260128585901992696352899386342728097723344222454334597060206740888383517018651495596000993734257706330238704338243643456213195070761051419004988038613897381482724403600994146381051708279329554551817358094897054507004810465866143369490457178189376446467854281916564491046598534372128052472130280386948297761415362858945687966104059771425834334008980011543523295761206352763450088463290708781447859009557346450854690884303924916066751935543670039355150802455599996667998182143706366540634458193670458003005068262568720409875141642541250334838058823302224135386388003263975328848619374850969069565630349797683800988888745379826100149810441823616797561126419512085627797941200990254589301478511175689386315174214000571860674374032014185804866647724665060214703367800878475802020088045153741298614411937601315889701036433290554720344666222366531680413526275053126144108377333368677973600322404488110413538338561761257507589413193562373141770186090722005728583332265736468765622105351356963026692597047765504987737206238673225556121258164023830451226683538219963992970504999501407959439105902640505469625427508491309336122932083093409669855901162851212780862148629107311148683518415125493023219428719408027956769231247049145526114728626250435865009239703110386028764476859141984510605317814334008596124784182823254754814841560993244581950505946528354987676107780891201280062890377928095693223528891800681527959594765945760110549501564888932284911386892739849800404067759750351925478999777355337889682904633614377469985776341352139783729842937711608961976697270542394907916011457957050000389135454150988219601616871858695534931881847775923566478883496186967621191978877591335518141129352866052394851621542693161314200461995234690588250121117060613034511080768862636264668208396005489637935336976911374480633981940866467219396019359996044237890865301949884047622468119064457304185322035931096319221264971822462591966994333215116522509580786564911157958486064161347721206280367374729224373529434519065186025055100342026428369850982198243568325650539334989924276648630520973966157476485643277718306249214599246933529622056983632685541392181786468046193505874782155034273860828578752594046838671243587242673531507882279420587655842350141084187147417842750443418769441439973924297241106439304805489388674260433602594356714403215754567127563642086671655781479464932522968665371598662829818327861224224881238256028879557553889198388824012734672103938485462375938250372671633348143173478301883344430660132693894966498908441814572582100028629847070561031939107254311851630398077634251146239281188951771206022962057550325430425382501120632794980807329077631782965719595916778423892443592308023142191008542614607899717343427496299381108118161606196729432006944637558189519093655857778601494265484593538095636255327699556312968771963184367099003964630868672781559732853504062893375817066439845971556892992718026071498445832737503140145218289152540199193312218600526311746105170930662959270734100359894629312826237607720428174255587175141315161872959084519098851420868724103117673999108275178703388635706390812714812115583580814030628586687615315459724171362191894719692732489683190649019515357363836405688485658572554235938199931585471983913007014404821009578519466774910181827146007615405053606640695742717033097420556626863075437799838755942826205334877905741512847028560409785678852065819229481719182894829314012581499104575634484810080765573994494831873856981815367858088093965879637618543129300378061113919264908601500432823664689375685275310175283010276073437798725191140332941741657840003997901498642047405615875657104948920694464798194155403658487993424441468530315670121348151099458421445078841981100080926191838338738079730413921602580312246968544455609892570776260622475091260828151427142683639136942322361161017647723463526765013559781279955931154469500860512758634027633441892739673155142536311049670312509669088436163730101154910576701654758359371536385019110909366328564177286038988731924858467457846077640690796253550495329585361808974125578532987183876096007458188115713512967382915757166219433349116755126763856647346058466637738833381865244833553383040924384622201240715344577490390474687988146356939366917228288074522777342353133658092997192543249885611021347310856473311914706459747610711609931751751177034898913434263854212387244566528788212923547174011304577616014533865237181936327776824882559118831108306344490314071706499297642750523309952767211484496965824819578682406528223748209969890280597573307952517145718167908225415853004584652789081313918093238515433216075464497180495704521465685084811196243390444750704739534778820437874947638184226306343827824549073567973526052903564904717084540938739804031849032110561048775632258956174957007540160244372420772143259040265421455231926076229888245707205585739366748468769995426258166447456328818284392571756690305157030838967370118164270159692637639313121801749811007842213279875636784423859388965602816601411269428789422889905511423965069979392658960911658055286985257461040114466508295695597607603709987329180441870963095694900891566494357696250903718414771029507885302012043544010291573129371180069767801852693685564679913567193422157365767816664784045220146783302376182847257093657471246236153097709228003334787791369071323990477290936385183389201473147388250828700604630796070291000905483219835230239000834125087916855494530196832438743919576291624334742515990846501545423813238233276691997895635412339245695333991368862968192778877948355516092077010083281551915540259669149490563476037159564937767354166357264948454999106231314570359097778341141240710675431634305708552109291140468343047976900726039941469696769328862592160701064446103408466100754977041236410052038320030438638560630172373273798922482897576552269786187014902674604881749770044277916984838432363030569580118378527099780943797285142107562925523912351207669648283432539795089197622599461090394064915968825239496919279733547954442163469151224213783189117507344749792428954353232817968421237586398175483323585256911763225463905754636758516922888346915912077387647383197362638434890377907574095469396836834059151305655163179794313694496449277364723363780729420705596178713837444906302848361815071764898092844869390862341169988142834364645939313603962943195720474723095280482447995022212043836306066396583697862635678498118890909807170169843087735161741797379454384258229666075013408435454191624005452130112610469527130397687684358895593045234166581170228527893687896652661274731778788545308706898122816787549130885742675558893919016706442982636198722697024805688380918030689897248968798141502604212881038825589998686842135756375249433816636521796136493698361835986716635693669797974441413708375342012410297249172001479952372202030887185468610603837583061258641088444146530475471671166516396240744638213039953304717871894829146881642172045851926383370809727636714716995192067610471701717001807556752448378797077349610908060794530877660123945071916415889903540472363914389985614567155091883057548711735393726143670350238043364101495088221466069847141307928890172336204778023359293069097483009570158418652746299002634242695387954367666308152472961126142729310185476542421119260312924731315528547044421256845465565511439996629731023606988520846239509824143027252970859590511201359096182170453110759528466911303477310105039355146766073204040885476145090398184411262272904381736554007440194708868413562557235456934494294484184001677658855251242043797158054456910454739288335258944742232577117546070465020438124992823201625042340165070801020033298260383652703336953906699512348108557726150837857893635939301181720324864173753707043698877603110536372761971783529293797811564912949097541473200929593194709198535731653294792782968027785707543820276227102426459752190268594951769937389440574492152909780041015165004105879740537534845848568694738091162609587411203523989868538821462838792345233576745670820176105511982740075939790092007637002100042008491610800074158420881375470450168339747995622806345177624858992594642493242694399515149183213269920905995348572500038376182401464428024289607240042302227952476165847871622100196439025394335682542343315955240021798965402136025975444431667836525304462561831791048262170219981328088161268725096804647903809905955529499126783221228384840761297677682416542780951834159901001103954462275653776989958446502103496695841967233149488505235145442508634227125589594580800549403691073426757449391203180994514492135331748743429636626130232611196552060710359802695698289916273172860734510827009574276223137772574273158954898346840220665302080157366359423751731435086094992128291955897134179914673506811705865490585022770958982815383718235571486076564927914315975043463398816952614805052483046572027132330128256406522179613420216123982788031855284361151763306808950345042699911061289029553997135164368049957674462882403217408665219776407240104589910663703364834201089896133862840824857117618324415710224612519786813629897083662067814295640066578212089235156981270035892687756972552275283402589143750211518367467165384933216331711150675216735739189856748714409199189967352545632876620808226014647975415789735464829197593578409139051086787879769832616760041222021778944475531117025513236204547467587986112464054172699761625532409940533782252593550103543386124862920619374551434417906364661418517980044448992252602104246550828126540144125252395545239058477305066308080635881875776188987317390093677845208250315299345159225962690416678258349640164292815883358515171858376652141777197213094534461898636009160747418836686057460587137252726294695415564792625852216623130613940359182337605491868604594065748174800292378759257303493567426860563381801918739519100817109011085603979003291817431901426008543241827467301620443055673207181097687450580251855892964290228541092909280417312892180760091606317273916762585641070571140775658026691524795898814399866041933746686908867666266995455151705990182264045297021477596122773238586390215926038254339188561076579760029979697198980495025880439840126866645105526263715121318751432381864189376415672708946044185204641976914744987230516128509536392764923651352264756855221236601238333511008957467458420112827510301621070555833955638803506830289440363539865290712062950918750722283590035572967668549914322577813612526983088911368809993084281729433316923996015147644843339436065884745423098438510224800971015761681104815610740199817925398067253838217894067551356995206091313286935588874175131178765798211100600035592875654099405997678634152063531584458276968726453138592823356064734785303027228150718014977882898253124543711161311250712606013769141651654317618656386925253505865108769124177917014790896797910224735030256603059032449400273422019761881507155101168355076306978490355678212714409839525882334865955976353102250589066005474636511031768158904773833275530565526857620831855630698348259508143267283035368284856075067070003138119345695669325520142169878883401813291423841488147236574774464265429481857623614780412545835146195195718678751884219998822658696792938573022793271427091484024708672141084821023874057717588726714017578439056577323971790010901041915512623377728004064782154548811638044294088015172112611743428579454365474938486528390256361348433613148557014164943011838445733608250698208504327154763135655814391622487267898649755875791546807699226888895210217244829852459499994146613088434731278896246439377683642767843438923579450960832942248656495534747616032649616690490677665059822416703416344507185999990471980283908135365195093823552675144926916253904381039304225914323244336633019472412800034938586967223926054838699787957089011507285007026554786823242743548785937012128813230493626304252833166208147249227934616087731990242123131576088263628733336439588660857638647309734839033430316391881147028170983983831673350386633257948746332965229342791141469282950775477921841931770465357934838494967859549524468036056867670149781597351928508538223593339498760238894473944037354622727317870758503815188697735879519249676660975061688508923721840653131126624011690635346015329649864964941204093161392100796523560395821759729872448519882180569306644254395439824766267916348495965363387457042490193516446635576813205275562092694937805409563196941347261721513287740622878838317572700577195234989490090833482517602391901741323377117798909368296954638290455553694362368876098331092744126702028341482231694553545007993938938737631882542115635415854281774023993056914541187287586447998514521454718278338183096826293922034458023941661863848555268402353577689601057342745314198025448282332677154367451811937331475298607450522835656020822210313887775904340284293262947776142167756604125987630207764868509219080134596542739798084057454045321280101690338779129980737881154972730224147688388600860704071296702839762560908581251176195283136685716779428215533611339152650344108849830777098324125046979823812411210278725339437855678824737155928998388254906751643118968742867350391089309939237375446883025257055425013280389424899171339200369896629575941202120376263537505851223472953017815663679826883004370418295006791824222641349111356783617994413838013496682124664035376039742803612797511013730502705607122018783630375148948899061833437070501485606060240532347180962644576556289436996145262938529814412117671447778432422305222213059869959831201810444526070003188791654158496800350257665896851893431827830922175385554742013180516711944744566230434218152046625211441327126299413135288421476172436928133316179278700144592019456198567836410827167161386036297606573181837240182672953872924537178385826429100504808403858787612369399613324351892093377730473128114207698896561641455540223209457501396233386583980929169041614037807133026080880574786851630479531098849264432463043552043411559155229861469759585662472651566615467474916710776636129971804742094125245471487251878044653353720407189272020974418394704608214461995087063340857050417016549189676218159878748230204185116921878504343998336234935320792028586919368450725024121631731822267643711592151384481595359527041654320714217393286275079291668390636480335650354004593476317377447454520471392416848735276628211886602003142267645887768555646550560681829971028177465394171196216718903667554276312452578627978716778493777594129528431255970165247730170718811006976701811598020710564854210612014870109889502837084003255845831121743461797665107409906713701613106346903815860460920089948829581172412408603927199022308644082760209997621379351209317446254397283971362306697943547309469230462554946307939575620394625503676156000984430625125804698335942414273870805678076923634365703245401760717430756707609747698411690719904579013098018428508375800989978954337325417972796240673546105825902899230938288665591927086306975901515242164164582161190968782980850280000253670201211449512871945183230233905718927346653676027695318241986174678689591081077582144079670592807836584968507786619912369579474148670553732106877592059922389455966949578775664682728138523376077796329992128262782168898995090788531404422487184552588098549635401292519812557612008307753500228971705819309720035475571358153319132612005513946945082277135274523381938331033836821136426971576441362399838434963334853039056087433460308705882795494288804654022264061957172248021640389006129388808923341368906076883602894106861989014966560742101243183135920621500300028001225735256004324261975864236977755592220798059059579592912916698523582550709099361609186372244372591498289517973012181925565402223894695656655582739809672512648015034246548821902709180232356698031227250087855306073233121496205989992202975261420621189895672103495633121422884632602625951071267707810017183990342923055907600521523002559119339568925605303695225363908898618499700123203705385583898545128259423317412982267910718738918911525904875677402004914505302465291760288909391874122230778166908600643929122260821469904589986430687559365354421840690995533374744225742868194700985663492849893739175157898741080679026132344804175901615807732757942984029537797942910972202011134824881537387720385878173173470459302629517083464931328230696728105666111190881481921619991074461295613922972032837677239132446594305200334907945327954296740520410428315385558918548001570689905666672081149587793938134655039742450476255294604907600668844894686434575187988023211177834465506888715409425371710856841210479319984003282248723975818310270657043571508254784684320778212670892998212767496270838544138060333887751438139321470841557609685969403613886601272670529297112381427710711093071587950961468519306994613741500406568196743072849825887425347815327187976773888018759827585156283721278753092707591272027504107285346242311652108984359555673242529984186823507537757282663381204529929886008582722956198206453845851105394873652570805959757490744762602349694856119362923482974134585791981515789857246489216049240342314507574684420429101804792838911563508105404466531602327266945336557164283083367945155972714100784894836902276257386781873100336598459189233547526508624866032933530775816827583351192721738482265833044417770456843029029840705825440787181586913594004975712312531418730736755996293317854324950738457965291667546652679307402917307326013388406996054454030441968804340067263179044692800980892191860403735681934246082838088802907011468224530396320012988569206923189478382144455265434306244697551748218555754015610951711765918765360831138464058335440119580626492210794013164486877686944260162282118638772375195587518469774021543305108553570900590116687877275006618238642922793811040554097509454441940307251405135938848164255778893885412581550096216352132553456590437266843678225202857452387663270306138484725928462876164749532401790595316450240268163422286462520083876969415714645807620123568003886388325120931855451034633990466934924714014470778136546194683358235161769292585445432268562882010795480902618031762502062905223703918594420002796499698657973210344178705843270144789545212649936836066123670691098675029526818291992613126426890774648740047805832724754056623613606009605769306714456898243781939228710534226787734014884738426084462180958882331999010045465822458486435266800125141545470556685607916401730145739052095621874866099112049276175870636929675115638618452048517789257660162144170298575966777701711346845895818985558892128111403803082030797813373715703971839483837905549622607267516262541741810822570752816609279097277662495166382158067800414636974096644691555696431212525756045702054922065963029410413218207702156648227794221322610291239292020759507234279521749923246412014223936095910632882328013708847177885126219493797378264107429991314285677582675737979724607460306644568804317593262586236936126125622023933454983572467220169984557031359846962655536820819413473170596771903917977820192843947860205626299199761119841071905885862143471550764101671731340719514365249800311261287851454773806876529364349115075680496418983195311528229304099854167525791558966998017070405800373383296356579510479559919906147304135667574363617931450082018007504489538129551398609113028009609974600896219452707945920714662998319290427673881823883873327745993702494216109257073608266677691340795902814017374631455853004388203766201904697804551387563972133564322176796013316382987754465359127556057333405982981526267292117382836567716967294625605872593237153655309803757775529020980369041632254188530896794786254434572601683889448837155780056889798484444090504804488317894011886061469061851713077129664772533937275032466532354959955308204722786101063049371764192445138205173052458230525957848015189770538473357905718489804379717723197563552500478932158843833673318401113653996368288659019288637178061554006097763239602917861187541703583169306801228326271079335510379346858485383238037924192809872967699248813096429739271494911701669076272043684234558132288076924709706819710886148955473735178694421343517538133940930369875565379417727930039037300081670654573023349617757027876527319878590290189907611055398069248733873899190036015046679722596932472550604198608233984310182371990304833267677799630499946477539252138688076356554231197639105216988189476211847230450904200355237998159906907350805337612355458884469206877852548823712729450177627049658614024168362114246809607133392377233110962636155619639010655488772521055228637192188167858292557179076538156329437196032035606203517768512020207617287726605063346711186449908970883834917024560182271210585655324188489522621148328316406591941644908607647964619882439802374000492578690408187099448627873779581005215459375402367039664677076939205500067936536009561398039022017720038646700868704365140643924447819886852191570489083538880228527218993316228679766799006091384923297830994939319279746375450440363091976446319103944628589448830284506014600416260895363875328604259864850134411047060955092853606599452976167994179572363004850759501365301670826117283110666567436365500847518516512116022596617470806676814300398364657549447286032921087597997456527282882192939055790839656108061009627716945084326844596532716503299004431863456781501561080805399602141814494165850636384188613429486961792604675614041517423734010383404255564814755396318260199179261259057074882797883380069337840977461072146175017410871581699427076657435177044938340480680750782676136344331665760561354052196403443763136713742737531356737011769875377627401563172865046189868466161812653702157615140855604876208477918595994817698580850044649346067157598805133904187002301660938396078389182833912498659841587114939457216333143973154068062007153712069133286173646913186442126277964994817853687233391400025946165783421415749344595841005301273590338904208521924011061686936212210247459358425767453650192537725372033349037292992357012213444389590416382298474634478587798230289454210734773108168315964402126263699784559136695619376099985914425573388320979082031222866962978749069621025119618165289305545248293427665740545909681551873732986332791669127119808152996746134403498316359064565320847918621117611187341105482790465037033002660725142678632909946115835656437281053108269933617321214888035723992227423257856674018168963594999847800773873990583536371918201002023270884809487731003023087208867056694457522901226308047743472396114547106691277784320596837938214622690078981077735418847870130928941305133052320242648795891847569874438834380946750764297551000679809014363413420858038121590364734747381419028943367565170455682605558840586382046393618129004128349039344709695399229465054504171767275365975054573548717092388746064987508402498068941191233853457880716071102518623745403952139479860786663684415083280308105501883454560755495664019134489630811334230173616612432553941516938199957025811080601566645173503134958482474713645476272153559668329688998791030734402560008113051437736661359882526481926260311807048846642912520329888833761408986133662735796406855420833942347103299152238932350379210521614292058891940118516005790002243670882205710190883209556722771668091783530639314428821242418230489182932922096951160573142558779165579331000798393196706400742463452581332941930574111075194994566362380605053923896831293640290873266426878930114679742959230854272591172530324121676452847447208809464867285915555123359780056320631488008390414643531788218081273334996068441739601294357707743708475006398062332802811838543821488113429434096451039322763782174301553905776929129448708616246241802056494946853091874915610055337646260611622001123859739076220152479301010974433396804933439574469288133038157205001054437855608822729965859219990365795227908788762341776645503066130873208968283742302156797764649520883751357563617471908828627057186156365451342781918003393488677953461664294015212210906888313414859713036767777871952697760484972095676974530973082443662711438631601838539990473762283777117696324736013685746328604857667957501094513511685331949171349899495817440704191696958042712309126803548603753069700125907830178843268780757701964718112752043062399098073490185967010201100086692731083943103565052227893853701269185875606043837682383613741530737226906796237559852683712503549932779898105399482983981930723989417875063910830775861299665261411436201970781561032640806395226034090004261636490543924467950119145551895472563962607673526242140522914601615285753687788562951272980601872688910202481077414375580918138450156514891810141065993716282188104196077089016274719248570752364212130382978674206914509371739905878974057135320756085100607034874877031181084999566690037629872054895481317674823438230649480238160224376919053440365193545142234627481768296325831299983589013849192845357993512986127748848350318806994989036744167644660950731351210600716883694331556347032807255710459203894041819205389050835942599982613405667221704531351007113683966870464458478866378413766577287326533740184066755541148416856752986582946338428345862924252479704335946450180407403757390343639872311407230136814384116324551998177773419100724528001283108749705518333882246404965634634695918081335160979230718076241492308945884884370615539187511077471556135839724508749798635097193933078862933947833928003964816644193338924504742595961827137187016004452989403314289817438974215288026283782816721689949631011045510428104744129589230408906373842510722672493728941983347631681141550483129598083478717369630785609798673390007247204376314194987256570364978509647264297739715846850599880370824696187959067947405596646971283689274092201755094951205818499013185579441560288747953008370835034522165997172905937402226797422002892347579045791507508063552522454688491485896895395685465809572667051377210754955683592453518712855188912502726406593528753394897853125791472159291669215753050176594076617060449541265487838495871775197048678277999059206972679785233746518304777174591794184646363271460762865656313747865260273275166477241817088119276530245326858281485243729880571314325969575384658306620261471120999320128463936278035165187106562677581682099243601801785590061369256001711366240153967428442676511809203124275981662462170807506214498928929943955174262432811758767867831574227037157320634731732973090048162961339028922691157675888444766454095825290542625619270368307374343043763679181821865467785021898780762529825447596052561238135232746817024898950974950827024096646689372888221749059893623336996115929979433344368289657834181881043585000943118974020392513561291865472125800110296435471024643289463031117196365959623683059728048184351445127947959239385878896217720918396258587431329333632415679530782178667073093359091347309500773515563797041436621894663951422455238930587289989616644282198095693109677085405230005617066702075630931601378952368180005154552060746028090825789187990770226226445576990819791382278069382971619874003262724922724063295227494823102554597841317328865269350035346453283704534550160715482748986908656930699456902775768597368002065780617444548684025884869747208446113874582816963539415644454671552510182192077886807126309993396283158728082498722161472326317999286747586504992813026387783459599355661873367359299909759962240617150049209658519352686900501566987392501141820254842530367105059632369256746423001688046776180549292245510109070090110373515676073108416127989245708038695147959352327882559440385455126365669874416723962168826452611462718592125128857023468341812657188591319549753673381401733651012968997669028432565286839601713466203991973506851957617572103913427204958806863059502371940822229231425863693171088144033118800951643577952317411710009183350180055165214585041450023502876177554424300520055024660888385712098433808525059283527877959582547105552134941119937358931235154756670639002186445134436216703878130715537070297989906967360838821314164088135222395436067608070398898547162701517657498723486374412203542372980788296634070684111151759617020162368448807975353741811362197338869920409227981927609451832864785407840981506719746426447132392264888251299933598087231584356092064522763467953587379825449358062004946975360860148739977618803511508692808129111335163721027405484508742568808866296182264489957830746464338451432695557431106093353988132886888077064469289064689179160916730337935282108970984666827722754400426926322005363789375221253811309385143801396983975350471621840469647758380796553452785679916396334039370870192843089341287763272976497956372444826202980819218459397628898778672240727342747444899673620401424372640826579833412803351967721889539435065923070724430164686701963010392061211194606360030981190237028925178721992641253336043864575598588566894772117605052332120032089120861329317810232333919114880750818929619373303583234918247113780950794215390391779940033952266698643662056179460631651306161344033614277412035039267869597469742240756506846138198270355144627963762603164707977558472294785777727581675644450142452297548942887590027419474341042357166908175178784429075065309692851591385198743411911138521103049960489992162802824443987658400316592724933561428883557906229648070412130460044886619930972786372248762124795891633307940403846857736469155782263702841636613939466337828776099659972395089979388784771681215879781118469644745712300598828274569710820311303090502254907127249575758377057498570029811927652267362136105644070855878039933118327689805332271390552666980949111921724421918977999385417593820739143991455567884983964685934464958868241916837926133281282480482328417125569003941609353796411046387888453716251243802973518660086646533841844462587215063794553366334105280701281045949947222056074115651643370005155917645677291402804891231211896363682102060453468183425135446260723199022484999709199952642906827362124032588575323635923749380555075807940095329667433190258971463627606579060560212185249328310662635603624662606656565693161820050253054414279563206829977354956396916631490222385061210531543235896373248876010488712356496496852295939501257673577272761474055273250355302232934547121392730867660518752543855679516211584786628762684942673745345821212211462296816696444560430071568781401554746865287390420560185668013217024220998168026701582784779267412560084648448258142921461275622862058363743491399949167874690014553624444760700629954224630067538031803553330515085321319541413492762711840879510908015421933198710356591952287110650995234186158213947990134282328070440762301889761294037474005909064439926633457434994898750254500173452456265113060842663420968327160650441546935591407627538708222461807282388661503243729267611576720039574013549563201111486712480232977557879997861865103552013096374156615730670638278730523802668387962493879581484174246533258315810828108494420682025121716769229729943759660604644944126580436785036879505276835614929528110177040118359525152663150711396444523289459906755884991364284443423506038752083360682572858671298813381899424543132497632929680034035078016532808369307682335232030547642005505805214035490368076318028830097739358563563608169926160182383422233765982216898857941612487072912694490249043408706764610043769899180957178519205673238713626123113814126383925253753475947072969182370501788991984708316407838048215070929322912941844835690297315864203407778514119392061086100335361553051082560848174875473759422248988641695303997306534032896409786479226171656830489570593612495176039574470590034234835449055228497263045016035707727567509206342936189199908746251601664873249588587683489572358090867574560563376243578968288122632572983800908558007674061722314327951709643249162414422635582422962705098627000492672823159982907503765068236786432957628564551214508084054540547564460979016094545471045406527990918210428496132030292760857909858649401025425744736183141473470423430729562861053075258251248378329577522025655196811631310304277402610730915494186567084261607157495065096244626094948516004121682302110663142982885816628878013023112849887613097029626500758508044452076358980074936657920532359010181185147146320290553185251847939018284647901674019413106463489791051467739223173672345655843919929133066842208607087258557139338831527163924912309621306632963859561784763153943912247554321819425582577851704841488506538242715273742905487246039247335170663725314758397472983622249808961528415843162671003285803233586310803848388996922713017475869799085848304190129278862968097166103956489938140310161946057178030270218405173551460791910061615906883564521783935480650873525361899995820521476671213962536114245078756138692225128425564723531970253909071762317972153742001532605100820490385790216756959941989040334543244795931034791189166507757761517728263653656342264530109195646394580124096217971025091394064742074091800986235985482870873392585584329173159455430073970090142235892583525925200451448310909731644683199587436311062948984403096684859079648760988612485411547313567507656319736977288654751099212152417528990822865666262973668007477300931758833348781818288527413585944403328116453235132470672321935232813502381375210598724210164975786025775455517298407787342121119355203055126607785629401475209669043407618761604383574499525362593384132837943079764717652325963709940670098223028890686847826213162130697766834221176511304226890509524975104255094693953027122151696532076557359185959551726853873886244346825872886374080788350334077565838236672114609617381278908534958945172855154268910447299391998027523550374775292155708398357903124332131515987289331344606578357999142920833506236015785062961504943931382310720749533088578058116717641759682786650867778389723912993889121246621546136600529708342604922842511828677153231242015770368081869845998283894929758898669275714433798297546057879148204024976199768454071565135231900362090073567515506432544528024964353522710918525155838985704596690244899036362528217821494020157504305257344911425187412384374182156879051600688678419699093777469138127124410419090333679017107410935710440653770614355597917765416630109666018359486068150363140545610282571085493689650543689759482125930550232539831993376840184530221762001274991415183273246148509253232392767164714566499564410580418065013102893545062836590724016984958584204720020705095126643333045597118695885167565841887138713878428554237086878287990087785328437485658012322618423097886289717650738159083532972917949780123416692541522058385571501958471572512308332279606728507234505408888925526237933590268667544307973937612087597578871705175794216913138883591723161743976567170453040544754880999876027975709977385164675565725596322037283763559460942161374440854195948470859829127595800728430779929491891411892736308790882732744142556367016618756341411608137768778641250230813379137800912918050961591019081598585647132966249311072668312559679880774012673408880213030169219764784055068552866366307503665347586554700592785645562120254739142056647958224087109331248939609125506565135795936285526079592196131717977922604381615356631982251586269282044340573250133189388508862953372476270043408610992475691494535059139707220758665155801176777340833861152679283743550151565612905791149314314660920776673459396206108599152737885936602165434878364331040351448149698606172747880789700817280815114524928826749122356980835737490942682975635795021611922611663195684639508801310531980865125422602000687575369653365412904824816443114361743763030195929261841169810311510868393876941666608648428572007439461427684899179308046879682231885598248184908107811199893598728289291019971614773559158209782114364995538154590486592976594552422165315119741252551472057211886108906359956224922252956893697141121462849192818294318195787909634141351661625174753834310670502045244586367771535475441038690793409479411605698361486480813274290611039394217165362279469492721899650009622558415097051832125775567574508423022397393608401809287420500967755306421894026872503220380661832628633547467859184554583125366647727408192060019800540749684960747758746276136438516060307684616013603489394405118777014366466312558661101044484445131569200651926484211789654164831626130061163835872730455146522483975806808810474471896001046366612791736712730227289520528623215633482141528885083153669173230929887985582108512040156641381483723594019708683325125902427359292986581804902333433377910721608678153601852177245821339289677330329272170747270984368943037341722119169123373459228653083647922574951275308779786290552071070654341828472168739809795732118486190715134311371302126871390945538183117038783110696272041503064948672784832570790636959592332949345310208406509895410089936126031686320346203973740787670520468873494934291174049560703294085319192507432075375105267164896330138739359596003599316951593534847657590031766001485481752171466912450449088182070172224218632202635915912250666138135549170992517784079985924853632225941563692752503051317633708832817641380292165547445384133814254558218433227543997120350523556475730934621367350899520826204569495151171168933375044859002195571798828858347926587795418499551942043551648174544031986706015410691139195761603364421468417474082222424862134086287133193278985936636798970569134610922363824354707940044744955193518517976119736780849168570445247264393387104822087604840850990806129850716732171088011555621513326960621161200028141747525913074046936396213211104985251091411153542396952420675630440041635437332107570312782226412396224742971220154230110767679620594842339282175491244132637208983146294446513713464235930264934982489082852244485565626522272668625799430078490156682157126414670010180787812451405545281594505358140265236075868389437667313752805480646196646096263440581239485477497704030361020730493883732543978711098299189053428455238175422868557506206825559559310190212669540971334242314797530563382828159113204131963213331484065399470003461136625434490500955622835534720330406278697535525681445231079664963290568724284608660034866204185964976639054590481362285729929714544060841393349820825981197014624526089941999567300604159718684360222528922634699809565585044250845374801141984905970575192264908378073880271910535254658196048407410851058067950189213860741282587472769346792080218789370062937348291298264157631557274176326109917118279437492332626965947038936371172941930227869931726970136934611958769958318116481463807027006295912111618760070689944246293901041020762883616225067982905773583040684303692766945366866773309499821634103168090344604674164547368808275954184585288189149457433524913122143024793338256894550349960541575205791267935391499516265878301633183030748275394482590131711177806718659813348016725994128880859841313553680116462594005273619073680425235564304679717745590900804690906681228428268075531274454249514997758828071181926547332906984395524200140770295605170986069171820737067531207304315933125212641308496428495044390130468058695433126445047498005059932522856151736802838405041657999220124415152104844102021475204817706900346211754190084147741954015389879514116922620328796542548279720340453025918810137875186213042763272245014258057434846011951629351814766453742870345402469674404765219211917473735646342787529004206519019952808547645918312027697995729385833176718372825259681208658591058460326810351423469394230162229273994377614385413233057908233446048556350106555863099087806737726501367678081058177528375634120986390003106387449284965418038319466852836328232189660782401159641443914109535906074798149688758522671069940802328179813742757940958963778667792273856833012782506260540702910626418552637239762813769087420296739762059827399817199056931724190390853519600676763630645493126417040727881646526475994214683065972155138649150821147361130093900359194302144868114616713941202958367550816899200196707349013543240377191023970166966429666168691266995671782927850757883738623294741234808032555853789876754267221391240359553571735109295514302899666291663673937831639241626290922154720290809095628851756267755486960670207068172552732428570657522160537079643792817449467304594142025816909823201914943290383565153288600402462593523178831551115189971028565072138625244537739165800306525231028587108884966621333414246401677514392581517702956979447210356456893873850901345921220284858920648562252265163850065451177611424265420374531837795196702581115811010609504940526289519886510420239367303777030421354079074896976353678962991966844660557154912758090890740590317640615744163212001286883559094971444556875849245784237676544774595119379956108385023860096671663343025977908347395761418916312951924103333637636372682514795476574528833122030380494417964149551610613054281359491576300522920327346576790356812699005763128570565126737467113478191577189059232925108507250036314415092149353324025263603151677864977631657103059971882849189707556730080464814897075607245300085394603964506412767338159071139914931136544348500078286515605096017439543534414309079596967271997782316748888564343846548983980622826599066329593505238134441260135811468614897343806289456081155548268790512035808006202856432267442197192334393122441983959089344545244482455828931560601490039324192059120632616758328231551118727252399406167162899399251311163428685913813421595125267252334475743147531286280038502139307981835368933586479550366172651227361417263442171017501297557468856111653205589494597559455708077722123792214122434864972697541106864103233452628956994642270558635343808230664410866806167959448800164972508087867953792054992262261549471391389948348496289104697568527269093934934159945771562594704239544468902229734692682055666835059636677536770018818609029116588492450664286809893877958786094062857058526713815664278196531896680583069886894357171895314558863640196005442465018972382048800459838144055593984129150226935250459178395158821647445743406894066244349233192263129301360084390268249068163914938449570211936820698829732991351854268988721834924823069391725833428697719948796133917203498773071915365130438623507600936707934855871989089476751434147264849364304350982540402659582642618047454958945126496643056952189345797367979229208990052926686454556026931019935070640736691458454672398515674022296693306370581197283451018951905272402934199573204707748974863175404825334525002781026405947641089679860680412411281739114934090991345819978987599874339207130455096740858111643366079104700587973188007199998227592554488597916427198565141918890776988381684743925178146715563612381409668813241388680177630013963413267287139568891176940955267328888515087851340752504325346251441971764404388215637028021883457585177113687258309900000520220181530298718314314703599836621973283628145520436101005881827632333090072468219473911014615947934629161489786348795320105250991462832835412198926236222360569308068074131328146374252026278753156368604648422937871713906771114866178147025217416941814450120821739365347407632049373128659785795429179562674987722243784346822418326369365003126595548642701902883369875199585624657075408343628570368539943011742512562249252038811016607737481098722995890812072678533767172534071276318228278497149183273880743656708452776275659598341317367261925250517900744876800765640268253053633111669486480097555660242262929324746480993537515634189363248831244671551996509906666325060354900933177645076378004336223040905179367196338225665657016364382646251862571091574233578809434850825960662501717812121522574687838040505505826631482904359989040589773382469032658412256209071739106809359782430157390202096209308757502663303328591107951451748052566439982429307576314372966940546719004904317981786299658534695673305092236831681178968684465356135668583646480996526910136345018854611991494823262502240437958150458174100601283734862077073870198307932161797414826014231584734687030258741887217117947578988197332393210293264336926330139223982333427859156427494469963553292436363974018380901139936136094225544208437773516126629078518641451839077191008124267473522702598557967493592444367666838377255203464593523060920650873848727052843840927236939868848506546326626049075353059201180990424956233229172660756110166820334618302702878564080135277909436304737406076348155796939189137947391090321950521513038797570669765618304662573182402507901342443590141224878730643810224392525384311038191217433195550649064286943974639998057437911182912584659489729330382130940323845442105615080245575129471265750778814311390660390619435054784847577282877111019387673238463520902593411910811464219402398677295428615375346516446687534241561879195772262916578347494225327798506513293492088258892354688290770119552809804920290274550474822712660315203902964536024684980821156759493031979921215419913871388748776954996293905630195554262587540068948940094627989622300807471808523962061711693841659679289953226535429225437381987581412804486540053258353054191179905014845797260924597211718455797252996660981012624352586376657844501333823765598202917010209773113598446056235682586111137251103428368495237698621542316396384692681595541143771162453140589724310650701901234784060170958488882732190201280161332219469166277057525986518245591064908057550446096123731358488989623946930850549407394872789766835627162313496794145876567596534006416189516935524556672687972540100134887904073005888395567078457682842807489242746984614863372069836236825818442904353560643260106431746604643621699252914353658260054491854811582106704514008655140594176481294692154687959721791062914439621416253498267056041864962614911999491456767707727053436021625164126873580689749457385453869331125708075292692611188185712522209196888862822713823643530468342916295950264155714973273531985332165360318087753017714219845787559572552502450546020642718283312458085841007894677432231430102355877717107598806736547311150485869579580811767247327673804511185575462741290468895937406712716044819360872295648174921783856420582621136604133358127606412302568634493872445701240509444657655538694459908660217059559617128677340392971925264090391177592810089150139595668596574235856280205062092718013330079223120869255675238849575181723507055043624052472276109966198790581050790814761790972235933705364494565537329291716729454627222640126794717241577629988587774792281312412306343223682311870416294068022245251365284259629523131011784909895708648635842263209253102586639429549694581191072074110321515949097438288931037625716607179431497917710546135624620245007852540404085373339928550077108345710382933968630171341910534274934462161604012131885711466557640463954482663851077015828439587040898996673419603882137839610107542114007846836172959710531341497239465192656336888744667397278262418347136018271488816252451569401612207809632267737223969031622310047097496140557981222689351653457618054155340517924572225183397786612252507379594676445375908181888063060464110592815664230911564296746324421828318678351370842918357928632607773985497843099057859111533409748951711857448414101811226284860383338101892196408073210817612285624464625970661151717326664681276897220028748446960980541716741294830759624699872972387228645852843590285540321916837336877845628259398771077305201705736565682132456150195745702809744235970915773159828417724424609150838161356686513270977138426500512711809432145596159800197839183677337276509005967632411751812775142909974590653297079226083180734303451848855266144925483681246510835306022722442497326253665343449162651452359719293703007651052250027160409779556296947301201270531666852934571828887588750501318473631632063342762848987837848972529492744654673801138271779420528872660973699725596229719740275065776953561883746314940980648375827958416481486175514358919099286355565231659345082919108064692112030197892438142477610025120572591830984803324968310736811187265005878028935378702078500505532551431624168038318548712779662281655607481089050885882632379344415641222596069086027114844371428770447566090658867147274051828913370046404841044577824215728952218531758632353750743544941372014446298434814592588220259189646177954046159394761281576171445543666423525171598451891014751776487195206615426795048450095841896243067605570996366567589129484617230506287536170006589859618971623605626353295551385788180626210885045700017093547808603209415504828745770672276992111212008835935450396725991160441019447044075834908673548628501815425403998041424414714841598438072468298406101750303715125399645864327395182262449051216787881508820288104419681771123784036086783707577215716537073749363362289759163304839032844410303743972372893905263109184209731708863226099012074172487402728894482333484412463085555823571004477341710952526273605133086763984449259222240158838259502159457755933893673565085528807216740949140559160397991664828531438473860812985755999450847867576942908834739543119829495944131934482374933900405956602751982846113739883268709153217093662608113498833758317003936253603696187706028221898995251756365013790366768533179868329697969434542611744846783417825578022579370117825803737315647124601722280922538942419048276101474420944612734022619507356181634758158476410335749070140559247519380597534414798109164488975431959065649701902465530415515367117474341021876306368587951190483778129537317519018125131458799469374502011230203092349295545108391919089007415560865469804048629975309486723093876395393367459278889047357934312637168390305017415450736598807447047622228319761861189602019645989405858626596618684937057747935650165584670400472291873856235564313364588630593857425108299423677972164133650945885442859560878308932707073922450126295765507949044034165055476063624642592236284148516601659753536903337475888254267971373111630961285536732164624979718580894377536786702899220290731334432374243289917129350790777585717422492437246340372600467244060547264053020608941782016720535134280697316937038292141745211073325478383174290276164170464302869013084989672477519392496005382701013918342335611281694088843127498353954524599785527638407972713034453552285254226786992077807607497161200845387961816034988895264021785300162357948005009867626726823565946735153664918419349018336022468698823588832859961387082341037149729383964297579692955151440843180144470365479750103935549983958008276210310587256735075980902170521497863622011238030755916435808209931715783129555036686581850049043772869452378093615909641696889212096662675175258728914805168538622466332867851759659906389471920133393663623553524848317913069299782657276015256903218066750170292220462515351223898390719013085637856390111044099588139217360281544459817444637662475367725925727578064197795393364658304807048858801400269183107777216846303420646921613179795448120112106561736997532089270267099511256774763268486164180046304196265931010108195918770972568501509552764396297647214430950906312790119401070677115862582139658160765788138985345437055152723719992827199245055687156047963672853579497001376623004188526348083812100826222553633498249423458087621337743616209232769388739312485620999242168692950096025898310199955635108570494077064188066904057996472542132653463128985709603181813221692861561644058199060065331669384856273324049645627813807496411224435905998064772103214826737332751261976106804332286647889613228886087626787814898075100307576878485508144788996420694786134884737696797041855887225825103720349620972508630173761007627414793438577102282492071842811688324827067801960771768053550901503971150530007074259934617768605131121309941982900208402885748352465399039311787977208928432379860174011876065020700638591530242154849862876290109343444748687710762360053443318850969582267175636423883814995280959996261092524736962393772400921910330630513490319687500443854969287041542474020511352476505616720427116839278025231380505955582913680706081296589722309152568141201944819504865375279671169945573728475842762019285664098345310206967944635206336041833920405813775128172598983121989243025731154455467005687200773774987025256894075076648777878146349188633031812206060902040182384588285619389406638702825905169268367211815010729387953806777303063148597810772495282748485719222581008893763351002984987484660751673155715809653536897598302995792745519708656490959416983113079300746624949667317796041332941388833240371841455731282122140260076661793783650992892823053969103008432705144337901641075308334670492219607872662306822749547133190607461442988371993705141395421604837071471342704628160717899847673177187785510923345635800926166794739720759752404842964870063266013983806320380859768913006028936699967818751604433658245009081720152410189133318070008281423725369511395011181470938899644580416751547685756348576623721803682185248416259616812472716437829981173888810409525877236375989336184272143945811630936836620166325431169346899729494112720750446858155950622368007686319169257164081165242000349295903745626324974134835941542261255200802735683314818552553970034830361595018350955305445405013059244341289202760671153750928233587316197297729439835524756184060522874350298308246288936689949740736826152624986248292570630295695467768589267351878881797144549060261898861350798975743174887936227973982652633286837310831461136426147477535739450292399698157364626678051718563679975220001009484961866158626584858528018860731018360715929176926449680717656549716662370472190277837759609454734668992238949931893418450879746157446911679819138867708803715767300720083846779903114995501764632562829532832402071050641006860171472447367546382201825035128930778212951251601033014125789080758859901408176034964939363904855481433734406192085807479799411606419675620975770192108676386573404912352416790130380873516108339779638292684932223232536399853601459001048337530608422775778500952830826390999736751945303003357102579910716378388478124764391855429630354908027759293048991644159943593679438313461370376252294832830867348816845179783937230503586673226128964955888469884059458271592284267733056256000055028784175147607191325078487441678394969697668973068953054264580906858322393003780607653195775231384474948879736324128526270311313123862336726267273965033300154407637755383313635121678049273573783476682880183376893605219772896201526605740642175409663287709397265590686608788252849826701346055883209199634827066376627031452037205521663750455432442247279217049678939526029640646686273083186424094082831017459563125246096154341493556384383204759194437966066554912938917412115881125937845492390801621380506141607510976663731609451309981750419420041504993809905515083680698555055269543184131061490099441012683162964619235176249674112925760782355101244834171655295730985454386557236754188371679932187577684754059257154741451482654859063804058329155443144678242809950748429671056821945967379561064189139768424848639614298481981543860058912061426823297815724874855519609177139880667943173195913134343943468416156346557820573641530868291660083767249260420956293073492507006252960943645303608000421156121080840693163784893423173585035866180214301775935583540773990792439573716975310527804562065627010159516437224627962554136772178780199945119691763210340360613566760713001819068450567156794843041645465242224750386793270433342346235347522258782532835304898163646639993313131961030649823988066668524250560705431356016157281865804157593546744296576886260816300263734911682501779963497645269292713196547743792513760828549975211012762210702875400862976084933659743864497433285007608118303586841233208890437538641845567370882785308178512239865603904774520789408896505759521404301397673526916209427888579192621296761570410488207854970526992869800997023345672929388775455536638682610088462046272992928313967935843126517137100984034224384942672861404374342800017028509616393994249685262569826941578551342985445786436847693973662292002844326913944530231628394530748692026669589053595363838778666203966583501110729102439604619372313393979084829650879345976441624246377985534516758014779605920678292800410648551905866067211216180776630244390623929546770619852919327642835223777559764612469897774312961274959200143390530017111898015671498478132676243812867061894611668460445918753208157022901077502345256312019206327241000717792734724214223514170149724689523531154146994540359336109780332634842026945468528781126995399039213483236268075290374927657865302063851431092718387611125917403840937064661395830026564922538203253791342403408608228144039872352240258191734643484680908075238469564578922496174038815507208179348475060029530063472828562043142703080929252220185880900248334398443836503593043964497042436556893554354338977266572355635453894227213854227628606011024434839780592284218593942601619995466518426404483771234623158214318039249076543754105106093961064297286893926528048906493769411275357886997224580207784600691361038295942769492773986686422775316611812196703045718467549778113921278707457417790316462338906052798167577307213418241735389059605372399591912522424789655855914358693245759441925206567992495637939660199683241517705748070293710725362903676130930068161978490172461377616401963322479400983630961349778440465154002247577976008317491202537844665811561204493623760729188247703936370856160469179779013173919836017120886176568796293209385691634608461304503244029712294805782306874068574412105683129438647420640958208643350395202326777480904585542797205523964207639129639174239639597336286389684596314768184458589703746925908600336135801400684594892365012924878349174506913897485949343320406534005875051013048797239670086684384480452800546309960809545463867968242006904185318571706763720453706798029712961445850121715264166366444069735411987135783071139071799187475194567806770537389913558828559372750563433600453571118423169857054088824497215934424866944525821912636480959566116513543522608160304744285597030272876037961175297628807810122151068313849579160897665970349435588148864493190707388655861178461036111536350020032502280686720261482868445371142673448088838180444068843891120630032707665196012707425678317092667527004259963008556280561472678354189985018107964090437783641723584712122949738775916489489849741393660537231635879815575256444511628192524051554507378068126074484381829270013096369614637558604637770621654680777015545042028066429451624970596517083131577550398207090758962263124153567165485447240550859181929787675420455974039980758968876050999702443013678004570853738587371154072087965361149481237767008856847056806369935991178376802471086018176896753744650006964179411038599331552184059611716423507115373251619591990720951517552475809128331295522198883648228616365535891656600225205891213120717292558289760432665225093664742941024371282900470010591472089502869712918464865377795614993103281697317515624489316257987878500660423989352616359513984189602300816703242028378130864635876994180576969426381490165080850944197782000795182532002870103456422820522872437129625382017406536276845527444528652798178750091563389768435525068671568260631483452259088299537662235958056880095380758844412122968015613422285217882877870452238427624447841637413894624515219769450629731587109037330231166004852300006003200763506072136104801092895900879645881734492761416526136160658996958117856910952650242081986318010835496877919968064811591692095183959572019870793915808201358868605976806982945722156803018176566123695121618917656853817633889465947585542558980417991855097919402839252097999808605479474130199900429094292833331526411822002379932027957023682422628360125090007789189333782496117041046939824584068134414961756796844700259566270878959628066159838438740429658637749991143364629037357189063528214295798871710918640393050853866970772899871130904473666970864093951187574395461904878648813842331738019510420442249899393536293460823093940620349143881406784665498891040328848136986084133340097650161596723762829960559724807739259256410934145733231106584702970327330891839439100955261111567792517663589263958789839508334893418063620206245036590957252710779574935259484645518827019517052421509995197327548001106574148729844815205915556790407551740411319525437037525921663516114672044977657286712140776558428327148205646795151194220917450067286554998023013626007709981967751945410743206780547434477727381690763117047220721413040628647828959990133307251345799867779985965306103214020712297152925591504526564294371200410091836311375026352255158713007288101180357447125461382958768295281535338479156174738681931602684317481161083347056237463713543746564833544436233891133973062365664156150585017419438527947544784027640080149714275111847284547355271394460944086561110827612157768064463707120646278386388954780582667565441668269706402674783249556465577266173744409211753707222225721028573509671886276559350012936404475215510189849716399326471295738976706968982543859922219393112027688338127861192965420011101298736112425830154633563304263767863159975538235237524983564270648509627553619775140684260223637874706597507042759299680494258247300506330448079368920990726893665035464917074434319137906735733304464933842066042710945880391979619363209653108322210211551078605116250321340995625493707198803228323806011295693986053990459983328985920915585601484936962489425051428571450749771910386466965519040556873129827384401124001491371071893380791699690704744326594040406271042236034967782964459308690920233865284113212027662457543079949831061806271488185847332014896691986276417172566818125912354630991141273291358157267174602085894796224064339730519706999145179085748817333393507432729140414625097943091064629951256040835172328482274242477109722481473885776633179802504303998422317826944455958117407309845229472589281296344282659596401178849465502872131306598307268107105548318005058973991577448612083130426077025851842919783351762966980815511216400816607487412757156530022616353763389522610412216100561877538754958039118513568319384781219314977135285579673925857244543995338182850475944747774225556112534510172113359999002133811764929517360661676304470502335730010629774885884237100318946650134859237195808525910371650428431840874195701845766779686982612886677797285831674678285822095372331324715672291255949992579140253975041380672090672201787119757179210196155789720267274312394230152761149192691384678997724893912810609312713822359776349587658979290409766411844566250928172258003356977934884641760110514932193396222038964971898225535956444233108514159073304349216607504511973458238777571747573802275621799988318664155048821355717003848470102367410361230615597353561962655842278811421622227038466381452249475562469720890417640951856667779538224319048909081608155718641630417170127060248682841338025788178896619166917473656962283736324643400526564762571277223324309751282036151768377611211293868387928063465053980139056745041684838766379672112245293063529871968130489568075534739993614174714955613245418740371232091899792194038961927552620549056293531887541177682025743610961503202686887774658863913253469820671577037743784643625364223161764971882459747213204257064444052905738698202724404011311874934199222118942441445613771704964544626001244327687762948285219900350828532285992337670848964854908090456189400335317544350861618806219915558089993668617956012120593594714346798846681855967889423999746941324670702607019088571886697982643927741624237146104954975631140997301457614736028071067879335392846289936571378377286848899993224111101978764121537096340572126069545354235047660121363580634036013479728276728701422475141740886394206686290071620408283589803401252561625702955214822372906401203224918471573238343258462533601468471455893303166990646732625780740718145308035525724905429111294049187988431276364622361470666006525184545801025263469638759771719845203642824571494449621666526012473803109035959019038961826732768731791847229106383099342165606161525459489188338674482750725685172370730255148984548676247599453465290469591341657238862369895847933189083543754362264135299674011251763603646098378082188433508638127686629949253309770583356949940104941416415272126024163532790775355196380865511401266469839996808207802940272235499504373789023132267261727650998041253085178534613067208598656338902064255410682248511300290878011738350720555414106975915677393425336174677794224869454170943229112460721008976931584298633055384896185757636391029677049442469870075916733623825929843950131294037147388642146692993552683158334137560708964284808060839234527757323961647805945713154627474176644882210832057963820838097815037169815970316790397648780927713154340273479477505744106856958201646111794340182615143139768885053488995717010090626515330608115080326499221347417218459371419424280364475504283197716220056869338160979967371890536574283171802485888354670688866626243492887272896067686760573378774917724064803884642918717477220427672117205564476536888444016636946401787458058690798460294188333309898827666319277598062053787174110738712870572924521923818798294440670466008543852782976003138447946746386928998776366073050284954493752745616407467035434822202380095338904025979285190062227821730451335791082890271284349389999708885425780713988848527343648110631710589624936252089389845843633749382997813997134816524380621964598757692166360859009074526277790098490773692021819798233192444595243933484962165437772349160400186102674172720402780451686491414840206829076283109265047554945426333422323988151691515590552684572948176402321565056034174375169446083813059952216109919934941640514008632634991170162263202143347246648364060025230910208019053240463065406269920516681072972149758258924046453017903275707580163946123490794607310071847295193381552954145538324959379878420040428937354452255984146145678666490786180059633892517575675550041092511633868896055875242552201176315970088060565560786204643892756313403455220491452611585163714879817503958443690898533311963944595895710172993177910461919369414231582179513759132765003916566543130809666322980254884083799637315435824911866531168750837399489551362450587937925679689951809914773005473883085343877960872257866155581351631924359442753303123315091094544857995950203571218269425140552294536785927374615000385336792492847132310234608947646023722691075405025131393128899068863310826275268974228716243921226824205490365098742424297640902438027047457773170168137862905207825267381538487805771843735545961957784133576526346039721514889738503025996229239913357783281383876687954530628577979089067258575108161655706682762243820647892128908325046512731046246576028123575990005407587755082304455630950292885445120565314661708333056600670603935430040052159090451459962138561504052268555134378449065605267862766754638553020300302730767300105021811198027299774513222915820412736676050859803004154927285056943188139218614636117692306159271722703351284995151803182139688403784878498566384117420011799874293430958468726738484931594615434495715419727164439061355829455136934713928592649753095448215503895802998620819220460244496286231005636649220400406978050594565749075565413262039816094905703757227682600155871416482159970436386194531809281014167913021278687173334771952321953724603849034614696603460760856618716618460141506728150541106885665708038986838464715682517446956347843126947140865449126070641980529680220936576765203959626092119101604265399007064196756325360501706572491788476527862981553389818258847040733239807922481064756695263711740596216518900258745791613382304610193135500757244862561344890944879454902323383823523882388488106648344393006776557932411967750490942244803922095514462839026501361929573505910216066754875322661984149617673795756361541540570447415558387430994909001612869560583895053431636867946211900717271742406672340410294029434819867446242453188331268554709516741464193244460350722994521525908692447849923352861800902358340814521092921404981865082204904128762989696074513105662993484835502888222021124021813330665750251648332535681440622781010402030685739785187381288441505427076887552157935543733133871647903216139026777064752215841494947603996450055424270691387946553986987915633148449718407876468167522041547922134718751848173734657427002788891176866844237599029299411365339738930137534521253929842680922146628067799585279879977552512765265426945336962733656924847610098573282891817225352938591916229691093799917278137532772129928420867713927333546491692344190657081409952845229423072781112949074099924300710144926657226860705173588244046658406225666236404666660995124206656728030992514695020992278399868839988238027462362596444182435866920787247010519793663855595076586609014557366819801178054095638150059118519977198582670285921074150697472446532981841662105909985040257040099841708073445299123048930015769937978800084250695122483661717217254164617663452903596837195269310483349970746539778320879894374675079469187523878112148778546610230401399374291359581061544052855190505340430781505236832844330295051395614253216943159736317710384379848929522816544706647037393707273459278638756755302398631694811264850241864026174473137175105736485779482014462555267336408732114584670490126206373773430501101272163472967895562756216600002642468156733750930775195163011178016521597581622476124812089870243553836288333088023712012930289613007754045591472853178838684111317483013886758447755731157688515310746910170048435761415152436266073511569986312246818323384225770795637738648519012687369083032982505985911054288239316202727947125425524152766736351658453605644291540854226152415851594458427495995757017633136124591650653276923459718222638362503849893457318950972009765034008062064397215839619858545137425264558764423958781433125459024846521636293415659099812920641357867470577880193842975126145823280827662415948919849002872082429670445392748720688642744157324124876528904391638343498046096382347932531352419744795225711673831418388618231819824494291024789719177098048267849034073595623911202783828311997396104769279031648766456888835503555364799816910796171699673130162483540250187986305188683722684739155193478391130651361082255123297315128968483240707128087783569628889648954976544148647015465694318712203848438696797535959058712087302753896775849401934246681150235822151449450757280826923030994979420844184549408544588357163013528255984094793003249280835465860964978540319798980620613546594453577048574903162794998170668003466111870245200477297794505247027300343875876900831588507605884393212142627753460703106043289790950339912632959280232402081753084271872304022146674092044112054336931532856283877248697408309124393499073450296227584534868976707269327466969295396308633463305453662323238062495084674583508335086254970832401182933169812231925389572780233683224362760803524842645881724208987274837324461264052368373642649266354140585198024659376082655851961494749716681222108359208519752278257715683855807521808420675118208691016330916653808934344757588760270955844821624342110174353665846440674485021791390327542060335456995846087391383303253575707051750641794460024912361430355517961302505304517030550052600666194186794434925970886707639429762010245429953633887977917960593383972443665901850775127843638859439821276615129092768096506793639210185597832346191375462139368965777693045764476183713998900998799232610722905290275338921103432679113221121113145131085384375508765840669746974516699213345280177743973668127866345163246143018009574442144998028166961275599372242417345995138788038672772707976438910039756882951246051431278735340046508443722342301792656791387647512007943747645536065717084689348163627058386993476967219271398890736769436870259872596326031899538140677335286964969685261004320941623040963834385735516285578729679200050141665199212087782763964452309595519487927179985896177788645632931162422625115177776279570482467858355416123578190984538941052790274188161106690779996964684412542464810857487785826649422061020883018149682537734230575076221219542245809974905329921841735959725175318992657297631613835291526210527162234689463520937664127761168280034590178564034219434669924848372839684312944497254099226703178457793980041939877448757572646689685394511995302782684360568916646631201007266593593297710397229577649381996510675373527652788492294194635488620517322995783677746321520858914824448557339942414725817687666835246035812236250451191168987776810229253268492008143572660146608851770743126536218611917939979946842608905558181311030527308317695672138101972529700623656929523133609580272569458445852369495467941500453111743767267899597639595173143660117211196465893821251089829510765188172650934878419797570431741226782171575587656292190355496679407452479007777568844046453246249909194857636250770414576737713429948297698631042092736074773984842846698360489822833782738525480369425872113216613824840526639147487163517682533911266053852373202022680764372944352868578713201846772125514861638224580167889683180895242398696231276109208024562514350267432914946535457767821621758709298806911638607846874272867813028600160150976509885934115278161361703828614908378618896692173669867894458107585359765169027105309962254870736464176449705856374293231628688737196272899723271897093810559661677807722386674652387048353488783244688986287999299543645763770409715074158246971435731863305196236353878983123266672892398300193075805507999705651022479456543226398912456038426649900632764521828715668116112593989887970040209043297406924791127066924850583668863935908351650672825726389804597726533778252017401322303762354371138919274725490074689024174647366937500662276386007349771242271522589383638086695289455085094495993144756277407131341546303640948348019372544114341597823948151259625503587904404089795445913625341365575595384043912224194193793478306111328824062671459200328742101387168600484429550682721916349634781158122524647025792208589014856399876463202845750931336701191434526724977479182077595117270820633762222888708339628542053049355791257692622229871405531145281154847378097299627064645320791064992185277147831268826156987483078256356344404715782901798688784475607593738436969066219995795630191798710545534353907304833831722752743014558330414141184625434439917981391668251295987523731270645503092244958358854195229758701398527773525492273100688916948442619860264018153113146863437426167059713448183769584010879649718396664293759642582321839221660957649590338588432935336183187264456445392151421111588625018278869787302564979921194831592205888084316341557574089437968434636278535665649024948505280061608426885624879527027629458907897413858966285799885770195996452704277940723773852482627327477828042361281319654036978030681943283640540107390869235958249619747106245487963788546982354854498611961729004790758424232067971944458363333617773557577754360173500901951113533103555463665738414368095514465343572893607704189398759911514182969731601281137627995874239946872724508989346685974904912513398239217887434646945256801394413711799066068620066711222113800866762694268676158501897878416158196636915400863490414448074752533092477956910892927044503409433739044942324002660716003094439554946486250041775826272876506404194370537214616339840454251375819811633175865857363890005869408900566348880620793352937232057613236681250137500453797615617138908425044226401964346581538897689985746122459182257859614812907366532111070311602630748538186163416170002646610743199066236315372393132150247511470693655382687941612514844978214120983245348056854221723819840833883984727657374371712907920320805196365492845783300785346175254173737190634796844872325406290326085498102905050192052201920949264816899384681395643613789639691581832450502756342085207814598149494757405813138116656272885559688335241659230277776085530277615970034698450041519404295443837271910061759321556992202616718498467605146818849385346928048815526575274467710519692459465957111426883294016348043996649929568060007105842294220210200219950847995951992631049642565142725748222127061322049199977193355547878560132855938046920939373525633478612492854201867502396275059366804127280108622022728838495529838578221150654153122451337075824408908587673954375650365781150184657018702558807712342324502135833014460709034131327150544865642938244735259059986179823659190251601576000168957801331107219639354947148314984183500639245353416229451739566291400255557528814501298237295565501242264541361406545262922513231869505196678286619546543995413104130974566149598136894390720895635027336608740558430155706006960311519863680871646128500601253486216645493092288632218494557556205135332140077023578234180657817112322405944398332182678356368536692934197237538541581529221051063408555500629859738918142544379276768244993927932029371449118652534016325058600407612994214650891344052675704513618867050914533398032726848680892022081867586315871346032976973391078904903812281274008741362848095169295976501919572721482195192187601010338378285502532876604600134333970189718048523367485663218960200137642438172787263491681277890875274277170906258337215846551210872493998547521546329090501866402561029258221071526013288818564120375302031245309862567472683437761483253658787119614257751757192283702097008336143862447234302920975215561532226215888996059411396061141104664965389983574389359505246948720873634799786419329747545121629512752455418563566961600645397076890352480310352313513538403742687708103614652341862063915132238840009591845474412214459711431312706418099230121838987267594751342401541249518290127008373983246138061129155253063281450802550750688088500796401298278774848413819835486244383307833626797340932222428500841452312557629269707700133182416747124856939983131214633702297721968246778593223588654167371343904734924257873196531626054721257424230962624644190901068947594719179847670207769761323114929600609996241046081357216918874956018348780124200965169009734522077011847612041582085957772051110452879841191219789888257342232384524516293163169068415093471239966551197630139193257164505727816095496647599878652242360547660568152890168933999393235792134264664795534837262027183534330324161764646850294415877418752132661041425481343671839118491487040198341001381415761411531116191429157999422542269015990757141969620295729374362591218667039402298767687840422568313992297187040048582190473756504520099637040523768654756515474080595447116218863180734166156214765937665994153297332409951239405726247668485945916208986009162238239120717371158162835968150246162210108169967868458121252055557207826578821564154780081559413074839233357900965605377615301942046707957626306861783171510911359555873280951785003710660785430991054045020434196876696631092672197891397060523262122372407234450887744222370026139399353619935137925570696630658570382256404389113241367493732288381711462940402582574651459618906607983680792298395583354761110199228577127435152304333266674805701619292806051842514617131319111764391629690970136061445853397905571478819856420047844756559414877787000655106375506575027867104574755461161548083984200215133106653958067530883952892258606701811185831338926535860576220980904732345173509239252537891370936437199172653175832936226721113995344611174217144065465795133721417291573145843172726737265678051814984865742118688131684233831038261018837011655428159591332425150726685874081344654273470308199018659063826991826782521516994059914859190589578626525162040569607508707900953392598216941380277422779162807401863409414803875815435063472504869457161429630352605885247899236352000140070253884784606139460309346850905169159049073724961548728469130794797661660559292256210613856296741684852544078174100083819466571213213667623028297294308207864329819010598236784370221107097915530569302653704164695173074173693943103344118929203710394983371737390135184322402417278703737423686768551562734327337482307536955961818769500687799992299071856948879176711421972734427030549127653384731506907583589990603946229841840028185543550861743569997811814261389443394925570882454896940492556803651461064214400337360569919736108775469235380696966300931431753366141948216235253409744913924618934489150833126742231447995534638306652418374736576888611484433037525848312621974270773875600332036511103718309148501892088781463787966423350331758227596891130287169560328022328314177481270024151637028440562504628075017429343156692614386777405176356860880860149522361117936131779796306633490348877219258000050197975315099666766895924826877643741534079352358738309172105294684435737851498989938207387077763362029339156988516496213457495945148102815600259403282722205652035116767054319105499512693240145721804705885409099569988346667478395670831758631775525495865325454377710834956830536594424333426871833941743514334128810509972530211139701651432957660149864143987482487911637070798598316268369742849544827957347305932311317130153213306945391263033595288768494513401057198146575965404798964964453975505660225248420761862984695423658902587904338424054822874406390367423269361352823559196450082998303442399282581000416840858097851251253251757618218549607223544174580307733631690436215854326363003890495846529532505513319453843021482947001846593986632952847273932615631033379794074841297697306151864938114770371281516071852325878002717007680066671622964711278777881165324328430021621036154081090724727262698373097301122239360729399603840287173328977217486000366581751207224390444628123484115633478218056918190973285502799100343712164134249435711831256798220684189956821921361755334562493671368768977465058515478327107052809684032920479353359115141024452788150501999672258076517309826880375548146750561267131079915461243721360717423575410334172455121245384681269882058624103978780198091449782884431614266073638594287815002869680333966682851881006735070714268381295110466384490915665224063541537756148569147899796474427693321020880324023667026256869561608846873778058987179419600009044500901043400879225606716401930829497662774295821243434627775368742543818464059746112751177022514537852861016601898191172384948643588287751092750905857931969169101079997533583643844752774834520812458337080229222326776684679614716443181088906944221263254547857910857188447790291063059012500451221834850773606093995695819294979500296057140395721549160091304036693290552205329104046431148818953354225229009786639998406370417543358910037626312214692949242874075345410713108389974955396795745894211179693829037500716253058832007404105406133757077420980844505092061876001414874894982958869820959764163883335693248002884514442551885439502040482468541685361880334431841859518877853087012261228280946461060530605309179021305069886241460771169100698832907190427732719996327334605166865244299667811872659621581374737344764435849831579322269655491126886923012470030033145269669698122883206190962575216378024095145941474306401777807514319728026162516003136244908810376077798843021566330811880371735920937646999501130434992571554611842133001812131509409920618175900283534901658978599220910998689773384355001252453536850691622471955848378051182424467331194049008392187345099063591696513560641199648004496668254191044603011859901528632029364947283045240207278677362216474490839120139775325372472964442770343376965296103220039808251285057620772070915896344591468215343073408004381081644493939456917795852875223675833594954180673022910938112958632832528283321084370886628935954224765017012441293785211449425827141815676770406325863430305155007700762485721759763356956447434747209321501480219588481640684513703459498976902849136589442984015918625603572929200034279207297547798142774827816402563082711962915421543068739818318760773271915009607839599419087871130160158052280964953817897300167076335331827948405788221946229510195736859121728248875053929056992234907742208628011614561493548738442492611195973320067201555623463140762646437593475226101321366236950677678574023039630304351455155396010731168985161462483985969608022934440137020394124337911462360798264964550384588619229769937765621164911554310632738782698727671437581333218910550641699546126461600860313515025181306174034287545184360010611688091997886443888472801957798624109024628389806942739840789881020504450154207427832633856324544758167736890500573588254954181098563697479449949145941859152973206259131551461253071296405556283880565284616528967662127808823196676548988573455583876062262357968374158555061110738553475117061009539628722434661486813133625243379059861605210925841043639059607181550669015348140649331891609877525756725846410769083790191197179520937341809981480158880519726814501296036473865860179056303778378085974379218122689600283580000887329364445047646973981271948125629358811755228858153585591720735880438382586626793720869912405324550986712324694189552907687299081973647271911735804658104361642235196257216273939000920904976881108413458939523134508316051107559457355056805936543249205180794784077198556648699501080183019617858214721815489025694256123173358973239402163095955470923477057490729825373978429187437317834147233701606375560220677910500468780560560111639884114532853305476660372426149662403719498016858046881332098055637203429968125404249528131328328825079822299224641741884415940490020909115972386614164106170675819978150598504253865276056833730006720899461745881467791154614807079863837711031800947108598968803732647088985112105586709160830196389755962682367098957343485592440967362458454530318918863197566374853926937186250839015173072663492693251128031369330493079414959094755439350823282989173866269996880515992024906882690886184506936744337376705657655508905197215733975024380524401309294703981384785860886072617954946177627741670269088450078117083466772081249262237727171757268535980741518925798860861420060923163377874635571548288257449584001378562816881662067591109974496586607178491278875302923545644681966283590751002594622150285666685042659281268757496941814168594642731166254225429485132477311931355548830055683922850039265108614597420757705916339698626414475814473257283168915968230836234518375013863184300927808430039556279983071933715356225299548034169113644089572791352520802266142332280263264891170474637270012414279650068257377899129596486671431338217110695259145917040542399320153334971565464934062811113840251660153858330774144903527006777045881313044821550521269345563641399647131334902082581710131649372893234231717342273504411674097274468936219596425282410197613689520509769387900167561238199062291102987019061529715743025808357885338356230749207849843858202426776476886630603120307102587725779490418693289900585992675139363303402196576462044048508130483946237108807186803975507495980015932871016683873064676138707667287195571810121118813343514988585062644492431963877922174308264858586308519613696757052167410991807303327016576739767422199113717165256914545418679071395074773929513175898897317381763300140231324062984716230164245587063353409302207792942749955493285209370054198985216487467093365908416683790479066585385703455814949893818601598178357632958267459631871579356691419571692850939339451458274762528426111009500986002590611430233259765301746488137620496473260528430014065591774290135194589503349575902388993132127348839938870841517926247469043519210077897996441571255396371337965170466739649970959081865106578777844258832198629835302047312492008503603617023530052543324261914184146910712973640445307053637160496540176685839710376354367948638064230322843637368906906612268348435986162200003134890647591450349880893268960151430986688661072453205404914225960732640004904640869745588304999112487287737884466953647203950335266444406172365894412674241025433701419991030603649576150820544974376621477313463559495216242735714245522632834250049261330097010282442004232406396440597771401517105351855913575778027139751028291692131703293830025557597219739427889201905367158515627441307341087873721660016603374356632043666598504387510165374787026120746177835129137660171121211522980641934586585565447231504130740710740604924393777561984511231162384544380325906204510704248406667158895650198315082800522227284561754331977052462357936491220392573191822658599101955591657501395748423873796624515944118305255202481002784579325314956654935582856038999445331467885379444680483037228064462725947924502748128909731681250692097902511088186560211118406438921055045947986618552294846274449103467143136886912161620168827773425082189336893087320866937172225684523300594588878045401710371070938006607931542317332737753940144784390750272209348440776313347498570471047016706049360880125491188773564730004177799012071988214377309399760860044337057854800846307992704433317995165701754961710754734505686720139495559172644109119766294739808337512361919347005042885264910699583742757407822478493858450458580678002799235484884669909922396379769849192402830947163205268393738963107691314984734856940585118684088412363550232389088136498958803020048835471961802015949971442286260224448851804999170028550412435010484184984667410822566516882635247759311942747776783034213347398642592663458101203564278292209536423874116782227461059380956557167643735552105246859524897164879656896660376073983214337360088848877102914891621597299464451560934008844358558572457291913829556569585086184720342278898889183575358809647312815438294718854047346302116755273602527888613230453610984467293161953421674772778121376351751764044075886325718363486932512056630439795634175814623647592473660024546064443448293899923045235471570615103247641904320454792999645646370934241162260166723499761032682879684536480299610791149426526672041648155570296891428896859835988622187480210296951402750762276466570005284974449759701286288933985585700967597736861594691262109244505880098064243233391528230340223972502138790932541973373138760349746491219440359529658645954464179033996656469407102371368544691620950024127005078041093584329346765139892287392493159196721220908114264024781471573543482016330006766835673829597390770572239408222359519423595999790085404690818411479376622132956579891966880093071399488961676856477508451246924031355488510239676228589388576142438703489302181675660651632130153745583052254779702244843856790270396147913067001568551997157380418999580992442931027626828312227451624735752168252113785298424310484842369404667227767991739392157523609359328771003949362825350000373001457685724822945757364716106450102146413667128631571816419157472575786136533376426851931306454656243054953294435745176037336530214234754169216662738700904422769009521411685724962687557073738671641559812639988754359371636492061347360661195268397615569943045579808292930998636080299596559580237935670725169390811980391169424765585268535741380600958655493437025646771736498974373146420384694163225791352345649024114236783250372684684582893986801519608660876206131384253916339539654157077537670946270427420965035350569620481719199626395588482551026372932019998758140466622753434028150344778869683641719180096729266467998588325505967190472165040740166624317259993344474809474333910465238934186800199256311011307882056464185819828655952534461982657628133773203280117634189359695400799819980449376885037443185479915265875720055777300262617066490746737763743471712916688613010832321443730149610422851918017268873160431352919848012918927679308028137016452210542238667886038483074416570378100622298009154801146472847111486418733468817683680673273391757824797452361143290179533569049869725113424585968797464752042790618137839797585972490037880463994606820879120143108472738075122194899218972981115989720281592168489779302868641302449035792509540263052889745448023628854747115302660053659309539862222463353335126987094537905876316710338577292938430702236927229589503453105484449167839123204861851861443459531184440198116112301649382298987322068981329603348574706003437642880513299855081026460019236622157888698739128691775967421650770194667069528149046438233916754397677912939109017135404540374144069550591354785079586652716679467170253508695205742520950015896224192369655104289521349159545467698957029915287623316082705844383524822670395664036814174487395062260178859039258254571916327181550028854886040486415660794512624823925219133893269708918904267061442540469245622183839378785303075503581633270698908053690237608708403255384867382019127536215235083135357123438846218210107314296808147868934703660711718915372900431924555714158889687319212703928677930086223643515464385517140815991183315065144559840731120025364879018812637473139078738232899439406253120489349878805888173841790130146295783806970353342062465850632058440944076981755104441252255037203718179897383297545412455957480153683742381422272611366309819045322024245798603737065488531626987184570829767235260106794256455542558757251594643474768044388113730539935163256592528780234727272695336853528263581666026256737217203048776762823315477829672959302334597127329850914492349793607564482899413082593371452028109540393715069492773089144899682126388474282599633038869063666256181598853292089476081226723281774561840157217263334571928496151716948993207330456875859963330087359475163057436845553068428342940262332157361735259340485670820883908814750508343835226111700343767014741218998154077826419255514845021218648480539945231115926899874185452210357752129787297694651682140683342562930656786836599530095943497278953504563301107053586777978966981899943177090255163675884073346542583880712487200860233582458022562554656560803548714003811244924413701241133831468112881453603520233691175496323013341073512707284573925769308755093391025316738378306486659900446898310892635573381258152786772727142670909126893583636482287922226401766324776291917829772732826798590101743628212128593679915167302815994155799310760607656806506150623968065737884178668101039786985833612461749326795886101271245800857722583566261868323337691065213580264130110186774894045804049911828772757798106980787554140734889754256477791713445550410932045102968123901460504894141017761687156232131889345612439987706186911370597253969714010121949887123407756482331600317059286218670410997330282081512698607669539907661244660586538597705217364580189320606478920559407002379535930216218292433804879705678740887797930992588173107889423229208335695867659709108890083981112416881698225202776562164246528019658397357470139944025378268359160365217662773178618469791975750891624322976138629601087615944800957992881039831348678082169954235585444338502528382209327028746350457550190304471936087350430258792768439978845375331248985672043809117764614450537305409525933733939381604334095805332791212869262776566081098536015927386719026386926052180568818719428951246786568614268494433723368697858703327171611793165710018046553221921981437943227024456476707483438552992826829271217364449099302825217595893178944258276482559103249089293931054324463892685828720794547283175509106153439533702932950359256345153439911116488040868267413141230893223707767787887602665776435778725466835003999563543500516638577409869228726639778569370320328021289342359668416805471230178542766517458908549367201996305519624562865348368571855353510861477156779437603219573317542587244534786752595280601015131985984109424073534024791777743827128446493099986875566529741333186271977879800278139051713739718122809466523889323557258373480168468861695497880809802681713404126340113627182696461478220415777763830994875251688694769801821278631166716806137977122857377176954442785176179299848360573545445830085794810056737478753868094536240270132600523665294832429000046523312247234491340849306578575526308436077917751732117024268053895124993984426977936194668177245403062207976830159116969820450045882427240150948418465711511558278379546018130536298831322982481838090506627167556170247273264527361485966120859314765115073662055425738088402988453462063231924399792309916162451513841056490269072655824142030759535880906071346685618291361506836995105831095503209735411783941239035371953450289923151080822605649833110932701763072518914205213201130234687655545585564812342960682858810407703059874382118058125818167854076176689353304377837023714367614020878061400425213008394491139764463936812695425424959712640726336776516026889890530533763905451223147586624792741903328397281123392856657884580986097580909994867899803756398020509026499332491162802784798511067432815475962881388882604730216312272711982506416752991974545316329732096151158400301640007620681598555419350329014191720498677152234940212943748613801789307459315957716501837744616649154415017757175788902416689693714332132699217923889125812476235246644886873712544539853825338104747563149667643022135337327017255725199740835376344269533137903651131256848699400892913081316380758048482618833162599921507181201387867587595919553268987830861368827861696379701629450213987172081026289764628109054579553675077369389840636715267149357501015326432692608400783819538346854557348417456586285646270725979556222937228659352635325873685977154626347445448158310403145615744810913412030637126544305539121840838658896105271560608477269624781794051627980989089341335938304657337743530624186169450244301100234341470974767680442929025971629676335203766836856280638120583733056647013926882916192294604843016127176157257155238918679580496202328781955866086911644481823481574835738481384193113350886751086524397585436441260914879209017407794570077334004053173965868918673117278828084537989647011608152595204673377423547798938814583371043450220736515545297786391748934490927690027398482332240763297582695192896534657476254826506536376759263716813359767350167083399499863740129991404222348787672197123977730877258027550463751374666462733985715508436047120891746540026883890222580355607996601061783808534932419612786559699242927857353508723313127647782232817692755654434518033737469632826964998144262667658543705868656912932774885681857994361604188363324371927384010709319588525951640465363376581924801286119865209347194504222672221327361775484084230065976258512518678762359547566844649812368288958158080916919702267880302293402663577905916743018243088492382815606638369861758470636860193018226853467314183341982305748156730491531254773998662638672703827970543546167274454348613498969466208751001396102260901110123664780840276431047339295191206962322082648552392775990270549729064436685893257805540922181599730774004206792267565633534408230621439655879549000745152754345176792694276991826736809499471175549162548098939471180661387527894891497188416246195613561817893732535681090606248406761131588306064757832767038859741113208299702283929869754217050055107647247016439553091911246981981073924094699954145391834743282588159235195431388821061820386155215974723988723995273747095345623665432411385422381652512511788495133482621756223115179758936381162456616231485500714360536495618978572053473033246871828548571442945673438189072710642245949891816606269386227149486516516977599044113996867551635570937241480277568624676752612682418345108929272235394728030180523025518958095530092209659011407741857184608306231360215719199445968639247509642654013324564376909272431499453484977239092663595880376737681130910967512327981791142829123479286426190627104973408634191572216265483401222760039300428908152107031887970224878142488369826328499315465060580701871679625572664711218778229682433159763745052669207093402179193839331136028960058172898065602760004256900106785009598156809416688645164653413523799818162394275944950520687136990868399292121202856401702241612527616101158666627824197150911906636851907479737378771460857517620262276764962793336204383213628704618605471592780682199710136689417298431503486614742806360131637840604974106667691256079168510439567283906054613299213729150261463498431414775812625764135586704589039347598232245848598207115260981168208497852218967098187286297101122548206985956004270036744479010466641926818932271334389163520877837399956934936942104480273013019211430769445698380581161953029998230426568957074658452090369223447692550542411954914051488408246324991099641501385890695314142683592635322632126470590916947195118625478615872197070219994462152893498370679756090150990219919865604721560515353259297241862106407900778468110167737792686731043022207204169050755284788789068693843027983866577538281803752585493924076776197604162906017091034370067365076324276337259438238445308880238216712068881172025427002845392304163579382280669104089655957563778877377284174256463944432940253208028078031515350169051653344518276984617374101278716702090434905061600666478109957616705379132798363706005872177845430741137129038341042813457843227721970780546446552853715643130928525208280385194600485974214582676017627902075452538199241728678884003516437829117007291537261826591450124555874803857413285245775097026769902142130906002078636027646902395142039829262381491596548415895432419083941411584279938147249562630934051896657435624335627135604501002664205235136711362339429021583225961977492073205806474386064892897912909899078500232866327000264022492960535173405735388427685332451565850997611647882671530872091300074825608371018593797264039531160983517264761068878903467407895903244261497492781787814699025831378946837869950481766234015471704741230530481987596823586875032963051725658094735636632899002984134229740906595111568303137105369127370875744550157953206898307129435586590033560171109178162536629167546516995989773291195133551891433873286090081307677136757144143608761749084449252974913482802530084160620145756942975006232946664606813449206567149180664857074076847369703258237544113467360980154592762097784405391622213776689395126977453045376982618422297669667029260477237184956232471026649278743799325080122933557816276814276542534074013268834599582911069951614394986149314864086687981226835075881101189762537570262703530454023428762835386974280792226444669521860347926668694124791017777021830847358294228930847153205190603731999162821165838715873525136105382047618536806210082565491479167798738019153600635094516603709095130014575025712482544505407691338586294889210707310730113634157102044335580970755546004486565859218891487612437563012418972357080546777902021288080011487072600185792024313656887130641546211447722253369570179024126320328146361448258897480193399312831161374429778142751900966873849606819086443842712326725361345035516064281949859032174990136994717435215421580716981217752950299756682382703025353888511074523702911776691793964875751708474066496269524674028126556515967422257323590104745314235397969510706833941635368708213173168650601758019676007671714024587300429749351875677113560288191431946761128043342716217114441527673738928413303223737910420600038370361160178702861281986611086857447047644536020935538753141320548453886621028089152518729574423781813466182873058290305660879734124885446661451088716891065384217153145892847005750822733934070866111083108771583719512696686576212308806391051118438839107109292843031082996606061186828722907787543985937396901071319424001513458417777847099259098171047599926976395473502286627605613231001406353465600821405505990071966373972335914020855240059808543519022653042558326700191502795332244659078944956993331844980230075791019312432224033998154215243337304578103035879844452892489083531067616001495434916831007861976654446095164384642349586914880180699753769287017267189844008208550516805595906586618508155892033900873078597272904404466733892845231160973743466912617459759004886675933767822628541762132554067856799559498943070615897988022325691686344729337336107027448215553340422429637841947683281754313982705684031059544127934842274834523095186544330593006552985517486459959177939265138996050767919766425656940940317875571028780497722111747179151593758347036335364252492828418645365281462221299343020920600599572321489429784314406823523406801782857150490620552006850796968322814251102094784184767173927937226222704238686088452576000594637675630522343858659322432129250100826678167881223007776861649522604729820391822332850186693027197560338405855641037234636071679347136780268146916592076643946959335664988850238200157876089168350870039316327013487843226822362204145798692396533290316157297774749517776059207454031070019983547359243739701629876064175387721540839032223677313657111759462311048387828546480245494035198849297293140356512519584459160517446090001338556995594617741957953616746079670063991503866683860297209658604175985127939936264204138880890933944610381230328881013836094915883819315013719842175963948875757094456910655493881375806948487506352708066579603175649615473711063982927007907180979267682341534248117923976784355943777226808882510868762880151130523908552639198742074231075372753184465250872742159818646779634319729293084974196549449479529456287641306846606896545190876687564417830970926067060869180463641565413317911331395410935641135674609674209609685611432970914794973088878948441953380694665047946361939525219098744886538249239370511202738100034100270801237397190396996277011557891141556474604434167346077001762726430061492196983706829922971754851507340716881460621513810405934030195359859783697256210873019405790224200028209458722800653854528722457623212087454692234804095317221381169762568165712349349771350140097842499459513230948541102162180210253301192003713323856954049585684746357506255615905758845463341033939894871792969982884939218153088716151785366390119868074686091891825663902860423026085792258029589366435071855410757431833176634069514614896859064036641085452248229237519024092269353031996273391157148772434267053064557335407920135317362516049190969055748038753371585304334811050312511641891764131021878434096302178236138629557139966529169339054093503192140826122268943326142410484549238446395079999567621927097355964591262346394946449280869116711596396245667981581375697064867957091639178488496330069184093559171455015416402184483240751060141684526421926478341843191531781528038980669466330747784883955116925750950068687661448282534522037519160471091803996254079200463320130060761744755909568344547603292694312355690355170155063878334120592929669351894727153388598912349934168738665616980017921942170029808498449667345971288634558152331484472538303779336766188537527893773550784900137713843829415083513413781672288693991389217923510452545175220419850716179086735450205944850226087382603994279140737742140376990667435359963444572040790840278599703506779826163655151467793764816142340753315737439026160278607725927487623132601124673926582690685239176289253784574429711961520212293143973061002600101645171949224652082870632076002825009399650240258638726033959403975434816741913513316309978925642568831415464431446509132201307165877310396947381043679726048242018060056078605908313496437035154091060689563046572536000029184684997760030152276136322013139952093775353720250524730293153085076940754057122504909999391119925001307039787954102052807571633731432213338844891510278260193890368951731606358556757181215728048362517369735960791129052650000468022868121037689526438997292738299863814745201201761447425934440640957191026209288833694417833574561419461060451866075539815537858553738547385243457974450844756994889722149514506858225411387455550800294126524170747665770241203402285425311302452581202473094235755595104049646724269070416613532872578110737761178822591481571779698464401146500922259877008599729127069938187193573432778246533565189061436417942095765053928099807499174562452521304662525782268072072904240106201936920036388777919509639230704466200982389496446315522970695173032310235258417586418632410552607190701523746698430695338620143006845071445727095411507451449529161827631092529094729813935099932597649758683066860304990040003009629535056901605262338758822716194476467102331578024013392279919138926394994592060093863893674106562243851751530405914245957163714157436055193472783079499614578588790366452837464125598433033736518196949572803629498464986149906635305828089419196400498885215087924409845043837606490599408390364208539178613205013009353286998721630442075572036335241402937264257054017511074082073084635045954510094896167611859745265518833235671950816007363761707597392354285369411663319987339678321948411429922944798396399320291406051101948829625723398722417164614672713510957744343533462101728130297005839916249839387043717419051312217501582186901587532498878903952448845537958210723778554927972830890832535218563023056708157719133914356785161904246382537592402979328500517812251262394484883476987621807678658324762790645086826588146085863888363418579982853498719348876899511278438600728668416092546932895820096203972270823116889670700517240292993278290382308699808018371829502589155099496377522040080057990241739631155740534939866846774827266530008638725972194295039733717488826119120903627591555702866125628232763956241001447295581369656256578801092266040299828212937606263961850473898097308705833648128013892091436603401819244636742550530217537285955504300909687866127942174397502727154571365895355214787496372799472211254590070328561601712286532507085634175432346760059255671349001630223856489468718516099382546420546522986034609442639617028755956641889918797103620946261857256788070282514849076327687225210408937320208398410295079689361302808260156142869914585490335548201789897357895707327827107799712508726513769812997333546690523968512844188964119495499343420354993317494693631797418165148422334886419451934446605038919772744578590931155662710236046445780159022739825473363386594454472600424913725007621450819459868097786330947866046164851165342455172139082793701433006848545316587565869628895001824736477014043896469941206378149949185039062533057109606925261177224719183644158363085040213226091312360192594101920795612092713097633498013455967173904329349995500480010818792752950771298835557551672001323727996718284852478296564959668762989074321554235150684263560263463845401758937702823019474587811495930449862934931583690619808001000991491281205732936322912962879985927416970140548704976246181441851619934217540997279004684786962776382609865415023819930145640916742678259460715074460128532059829511837645138600308775755199206289769896501269878790635704358282105436056597654717995545845079584524404695444181876041597787004600736050587408014878433123358458688549505917497994099562438779577391561281499883248382058311112585587089768163479071334899773137238388694016808019699737049060296803188631097655210483714851843127451569140628093006910353869288331900121100217603661672769185719343216561041589831687688001666694768091808530564125014966877346040430000660912306774995967845748767305796332285738433132608742882469001747940033876516081289235542477622476217981639018678247634921635690197068327078646762833592893482959690820625077413579587430841319164381716967870644483492103226361243928792016822725225760716987839526145808002526009300425245731391119398600204295060887580823430687912326313166494300329758606123453829918428158577983426615983488386707734387179771586431968524891269332888161014697277498908273286691789196373078163705334204575037693281528623968610074121935905153992374123094527724411351634169394303180123617049412131993644494708959517394451235950547065391079875515458955043655940669307995071406916911351372684145238260457781400549199034599982880608013456462836416149190071843788303223391150652954122820509989163381575267569839408739577417589175667072601770715195002886630523506138403017906968393007180528045619191139184418375327266842220824971457817006254216319957977235236026854585684204389782011057498910678138116397544079542066452521394718896750867012904429821949674302270330004563329411659369703291455514003064470211386496479231804186299129684872338570330904562694122038411728444878150781867180333552026852341101711792416689627138743709159942025281637817956573402128272921957137592426292963082150497966839778815874720122759769277880595912688857673253716439596432427454655152068695730137505908699247092629963995099827645314687008117087633937045366400661082062871349739024262076511643762101425364454515070960882058380308031434156389088548397467080838164247358144927720021542588239055615976559967222943464737297485798994287396316079071097210584871099794133640481656283942859389007029066314223461062267629234632096262750336688041975959754004731058912630468635163012857081451581828722234071079721985544223616359241815975163346853810661812193888567299481005168760239211703291409470488470997031214403486722998044163424599572791329499524772538240587100888526208506135823144565817386712756348879427344872451965056793614160723626478250649593806981741731110148509972012384506552296825594738928354934921916914887046035671482872433636778818557998457480585877510520721509478445881413092430204160401268877140757913512410266808509806674799810970076326183282366093263657351252062904995090627415649017171217987248553297501840222858669400298537049902664784022810202004458292448950451937392239453937026462147415041017826697220434232361714840322163645616348667839942138033451671840884261635380820762195785137671142335298797621623700124599959160959064154826191744842564835358845909025336485193350178183461689403367420526507914651780831702489752976033679728487708356736161883252941796573772316665613346538554940319155897354007422289983531889191810264110856562572677873636199359992566369266962381808444225068174903106990685640052724015378286907371813330625991177689217062610163778073175256496882160504118000064146936459757828777101016815537467928252448054624498215647200903081314921848658403084969387387200595971455175659695868660912295266414646948778530492631390679488582040317209066704300891031520763208823304103776642722487152572140708968261569817875928752571267790300089156957844696868206822056661897326495206715177531698548884853873817766473192501507031063422419924496780633698197515836024905640546138037643724994846459433383037733584747336682368471955515924784613755191598054597571544471918138572383663159095868415297467027765060817432668985906586332700023719766862983843799329519650939317931571738407875926266767637337153553022601526777355941533381834712379156977137126347135303344806110277951201055011456010830440186598440889890800992905494060653783096085073159521934905185475713906579457786409178584747279267955599244442908183737091185997034410554818369411086734023322479900845715313923071895642393012347561003580139114343932224160335894692570362767474948259387205648076788591074773771320718167790633019138808053244448260980544339362852739878455528739626544130262558383944276660374880584288921398978936186414713567052263262546152458916177880263902384574701492604118659000353399632695706868039046066719902825465447456878088149565248613830420371975619929416639015067577910262711712664333129456292112276985591633959640218434645132008410558253238623131065749658381240490324192427665350765656758641030673160539459582622495530110961226655186595545269114055889099165755983047900217416979129495996473167652657174700919232237954287582610541799173070550197198379363848994137905914808523044781031111858001364477059550556926795866987880456622968420899965313014260931768885182921585333933505685368531425949884016812425499149686284194344211942955893793766754776283850161319314463884739149058871748173746379558034722065684636216461926821796956176443358503802186479143417047296197775085032066601791207520828320279372862035845708748492820050705599678139685802691255569430116560087779713240146409690770549149443357877983331981454068532274378102380720028378702220796384479458237523815295585798519594733587571948197123935797122071670749077317334614155101273266630242693859133641324834479348483195214360932590538169461034787828126111696556043800102846788197220857081640235807054232989021257712311719573077665250906656994050278770359654232655267159071860688600674118612350150973349244670994362888838929800623811743058636105253304286853425770381258459077755867792301415635328561098687579664431264281242310039357226665087138300871286902658539918014731262350451853467489335289477822568191082875085842676024701673084423571476515271609268254587088462380438656660754807027490241254920798807551007173810264550128058458422966852749267915167613229228598941059035595111974187076151006580707863631761287243774849265368365116484516438663390630446807995282785462588845975977624168967258271550236723727730250306210969531654950709092673640035540716444543583426408878699287069793433266716666549782753059165752772801258876598667912371868598640070855487824297126598555976314901879806369675451752499608636739104068726140486375400901181377244052929894436158132103536075944219043858549982018271784947438211384754753752925165390659363411319307815323404898751512056693737496588834252374547926790590235426374064484156481727971530274845944533879998545456799409258762358488018872486607473290298925462482751024785533417242287537842294316846810632530048025635293048386012497904757244309700476079668910018947270080141361885765483356570693958642368709992747123699407021788110111251075322883306723666904086811430213874329541834738494681494741036755723115478363933775888039755829494487117858333414556925401088679188929342180012608920555624054738707431773466577876207209629558850328841378650079663024399478177537680080001089231531710820891668049733184727078585846581380344749846981690968196357522182031023522555298293740448925840784198546708498702959782225949150478907652061689589643998396688366764285091016202509432142494564639456654852260596597869731312840014033608569835667394764481968475245807230165971444202071411746379981336703558898361262490487237454147762026263629912283826147918218611764405564131089390099299052813009011745907275991147934176776115785542192254372276540424227996773016719750067876796317873602506797860892275871720559328228886084348434107893761369166526764205062333687857451384498840210784862125066450311450923273421931042737570015362983132990542127004743563998342905935371435904752518614843943782709714187732420477572031382286018606948613944621717170935597597870953433519578774189333164101109159071425101449640335422311397056691809560912053574695553203156184384439134445536743001992909880682266878711816046046041785118549092717706594666057612694498077180745158740147485717031802319257512686083431611193928003077348463814044454344353140571438619034185585768351316922069517707262937804074125415783674325500523167320172033462063356720508676081768076839478054863364851481208742344148772764121070526105941899107547646548295871464980107812529659732630007766791928910359023700588639614966738494672496871173758555781639147792336576973130348466880819885041428216873547856024566091719756152481229872786143163265079448433823033736682199854895165512894154054709431987779271097934341202896301803385912156502755385814882687252784669288761333497064086125104840395029124530541060504973786903209718348576930582754869572625554450973901878175551308937778644527752654785404635244281557154719384461777512337981805446848954428899455405631630930758435819659026714676531075983977804397817206440425523589669368050004260845366061497428606554225787569526984539334845637375157187927693388402582901290868682631837301074864469227109083257675680332980917929358590570114426029604530517301124328410076958934112789233080141755938737149445975780536649683750405589302980361914510121804892060979645242613369428343654678528365626207108273261656951212127377788966663369997463395422659900260155867004864251418436846345006403305914835611629704538988635112762780202621152402075850964087674116405906744406771588849539586847582249918800912279136713128656789624503529191247174742364116061396055647401771774117272532038841311141015732383798495198313043075117181337700313608127415138726716036990337971548892099945260018797445445592877441725410336577214204018697862269234601585349929155627328102264134064718264949082228239621812809933839963031410702192799704479364414662826208681413579895372719492079412751262728057560174683661757957910004582625778525928927240045196084135532456348725946285608050913956274708060164589042742215641853090799312764688589919072502112290927369404444149255947822797075788177719683157108359514599795252049453584491207653377052697645451914794727132566154464680915060760984178915586328250175885957122502204031561472414589417892636578945300880079910411911895661205602184595165686508777587355333575230840729304538687849414687422226548200368547873060904896435710308456932230844233528976977283090792419023724313760328119310677220613729766336462322313998296121052520254350285143744064130535681245448913274452326988533488996502123472118363232926450400769180054798865357625186325847679532870943431722858437490707593658526800059989343484503498511723262415064848592657454209561359252241370288122245136986574422165284304593532781228578247414363562263939888728559771599780835241970712178585459750672571786743678392052428476348839412312475419219675890858757682876863013926326903489505615576474306485694401026469199689243582311268945914111241711342565506451615482008947115573901688871393567534732614775395933441762220922284059364460077352852583164549819867068545203544819423353782901836407860126288761506764697882123514354627593762525921262570546018516741594168154308320321323703037161050587239478101142366380372932685848661769368365955030261950384367018530082779466365207742441856308812749750111961072268956900222612143124621542753659755326696435091139696872882801992790247861672525734815512207779431541389588608967758762258192057946428457846387872487835433355341366940671186764287333494012691187748687026173254225819562138733457326674767311235094475249304073921969077277423003511304953098667282476662253412593337486832139736759811441702878223216474567817978157657482711991607229167110246382508378608543150964529641492725778446481431113233087554233645798225930167500730375193624430223085180457166225691964701715789460872243459068447053296954016756593954969651284505297198880854271671236979696474939564416762578384046267608312095784183169874421324063870016687593173011387458955009241499241777276627326957863648282995145288150569463271603788763808891748280318957077898699519391851183806563032707279688981966711961131696976539979664959392232831173097888938808738890472474507207275906363563555251535161746318596503363207671843571573702233467832555515752662019423634205580864834467198349949406166857286426461034034162697827880106365684462154896493853894610493490440123882883630277051551080515004134906238876670556090134924242743059984855087281940369154448997233561323360395480239823730648533366565504366249940469847054826035921050889618418176174031823006400149472380031507842301936068108271383705486427663507360097678848776926195412195367481330556730602012889941056393759905639648730841057312802876221680009353358889428307181543312871839705525786545839889144997769085692273348621648291198898780222564413491825312358271556578778014470859606613020292777615126077201123642954053762202930132157546152200903633746023476462273993608701091281201232470244185141880576512456657488940077271643865596070188922355731718119033097828812944324981016764474797768513585930036083621129379467524033284545634040743421863216945385221463187402523040057446180584889731417588633163819762032636661826278510967965011945207375576039148094985484420315848038879830438453381940953189651629778575513151741352536903815034269377436054818892182540281794643982265758880522766651904311343079918236007639714106291270426786614896013850891857427848131693747389579838719042167622407403046391915878647655162042887888317618946751436219233698896468975870745809960992271227052855242869784621054241692408840876759922208876405168177646898369658166966218624340656063265681295317563117564226380153676634162740716326561111339657176590140612657368887943260723694759118037071310494520608889653414118015812005215417093194873066427011917096869089455018254996987812431400851875365942617257580461215339381334276373768929690597976583154069045756223289189202547029726090791539679869683942080006552502631693992856704273982009877382510462157116571714783691623413209488392675020847895008556421706765167851220685287249778533804494555054263192353399908718879988226057501295551960984636029230243514813953438551818904671430730369492804841073365209088302464580886743775595698204999098488039924034682734060005467837625638630608913158378034035383239945730619206727241650686731450777012180738714859976516173044122301563781804949230842914353500558436321229186999937695588918415855372757097844915709491707318859064792796488573267051818502021115792611235892077565863723338604835032463611439715659599684370229706615352161334844812047043921497428719828495843914852780746993489163901503840139641832195891383139855786797112693692096063225055297330710564115938124257244970949979353537177070879679935240075162780770034502906153803153676357922595574277776597316586019427875587931736408384756176631592867384442854137619461887261670680822359496011944099555499114759901993575177031421478229643407593182181877957385098727777772176160692835128738476296315155048381821309271502604515814077886396653797356566240650123603389038608860090382961062528527939089043248518354371076650858583121443645622173548923142247152160893672586331593817197697284670753469612064359071670722058535507291524718160248649519692954003404328902028009139027559869777350712974892727124093405546609948453791957846619327860364841826022472933205136987442495400533522563436665398409895033721704584131193722881186199291380764696882155889612975966059147755807599381874439355663021836342240617395566591248269309281743015685660499799771302005650505752666102568263316640960642044089086047200312328998576486353610311089415566831947132709889035857384240472705016187629391648582121354789071633409221383665217072179477388576207448959132390318501762589357536508638842739646050716400933687563364534183689458001123066768378754170111061182872379489708629847094069526990485557570368783944423060787736548244914232154792167337176642472347472435907179284406079546328449447413337918125609338591230509471841906103031068873900485332330425835075179382094622245351662460666070146516706951515991854331614693353256261649532648976032444151505955058420795572430016025028276804018324082250838204457053503393972380325081869091285280542295029581347123461208745793000409207350328045100563560334866560632996281690979347016586241490267044367803827854967615063725549544601870830476106331249778622250083422409158345972664794065582923832596040802074044077737446047190218717945543819384935914966873625410486353343312645596482547657985598911089454976230381709200299329911930982401172653825856854864121207859458740991422825459557023784121057563804935259853088808144822198229566536232843660227062622281130941754923652643158259759253162308575449604486126293835052123088527523908714116613473624726143026603088814287833211511505381508856490700694964843650665843232512139394024842331815213307953861051493492388516024024441781655465703126014267675577802443431376422248735552163533953527889083287599708507468721414278760984915676330522216618573843491817247219751151989487304967649612951471271977980911755405954610459612940861045119405751505563806635258304406622175196136177214582805442582155298671053962786297341791450352861130523358331383583546045402343406217952299542708259207287892588829228660414640627769516484484545117708337336583256843448994696983601140683648373592387739715743985432056595619619936743088113602259452903745496544228300317325848341161888976427472108197752948998059375030441044119283027400076013636831278041421574010987309211286915921011319316405760960390743033729628341780983630576300108319265840165012103836923569300487816812940246681516442390324481268532872095538416325393269879995717644255479426691458152997286994298808069406789524484567296156041663604011859375990721028695803582641011048940488853129009339805164126767744323356431587633515581357185610545705042006304265277435372691742012631878770640081078619941838546566867772302860445087471139418609253658957847918604740324234228371711869469988837894041252279272460252943522348545280208619210651635175516873875622923795535528207355866393063554555794148740591133388928277256061044924731407299198349636473851219620153447319218649375515208516529510972001927510613185483976632860652358278039919164394158676495580343044682341506268595400325338079716127205215075571689859244567973127153708735893830781529408997508488635898963040918848242521716981743383740204731030731937579295560967375062783287188967616328776562176629608587289057657629338811035185984445452718562913464653016885668732476039593400409546136291610105927785026783748367422799823858137516285719006854530666930764027133081482177065402197366711102285332259540978841981469724999947834828646650016549675338804773605102945913820377648716849669192895834433644681985070400418904749997791139588203879713053193470160809727202677082264341759098172490592811893392152293401582019337381683015309820016211267912005388728272241777602307929624827207959742982534148895091201617597542856376987634846460323956918690106555986854904881690510619621501594662047013987646145411265918780035570215695568872351096809691414163596227671460931053228115988125741557493763879617597514716824318469937682436208086118152537414464522422367876013550190530395536115376676361074430768930534628083011322333654386960818723872578870642267016350719846335781781889471821177616268116217420745922834126346600639224768153680302103074395410327380188155846679754166940820060456993673423153392699633548063981324194228406939600541654481249581945982787089111817766615808209457844758802062213108123898720566794632846964146700776943501745750465648876847411589286627830035062929358322711053117205946948879294003361341374608835061364278825438889215520731407874833128438199455002159444593637035627679923956255686266549906918772463026012801470707660977760206294703147044135438361515511739746080531358332219796641712719014262316270772204726858490375091453349913190359563765577143658648077876566541600052984425801888867813822484073100148532822663976473864396152059057621619122016640147326816193501531204099168589264382196882194042332641506453145997404610671409412130736813665445477583508742583254537499605234348057436281500477894083745599995482643000290391901216931340968820865591919255910893939458938099311830027885345898896675591059919194533444282237106962028128202486522359924031173960788037385178366455742819838201698473957505512740432108012511199365301709686630093699444980925784214287049958003432040711695312510989198650957258486566207535292629064940125210867501259978433752063313714905768438206017220371027470052807176536736623978027243864129852335150394988206369371020699570062052747354991297925708299866079214681408857201561929918310991516432149037570738118838528230835565868525974717380501682177789110239918592965978511457616950834458599611037657807407200348700720925793364876592709917060265295464269633154597477841738396851170909611560428172169975586391465539179828745787805253887805931385377606077075965628511726549225667937244673237474679666803054817108305102182755574813245069406645265893939985121626638902308160743828261808686865705421894627713235462766734845012205567514232463024023146300717550583466167111417078263458666010199544857258665993476927457907896959479718469049737174319964735647795840506977684307746557207378104839345310653738693230187529262656102934571348386980492144901470462267070550316384719726670254890376349442486705509933455404098540483698693767474355008590270203578798531996113332446175360618058716112043043459103390420237038561585824139941787236726552165140226343167809142142379743130128494953669682168164573882679615416774805704206600553255081349217926422982453170686930927406020571568597174928326273150990562516410970225986923689608403495658897003644783784486481846944702957633732109476918648239849818917210648223371149211029359133175162681411513619229657062706267689216367640805664927831891633843911284120425294560647137464732282460685679124447315943459919526865056270794391048785782047274993356315995314038023403848432488149256643347284710410576695764888240882208308421632170705949486315775638002178523042500097617574139742251541673263506634676483083645868758413252608502734819618165628505011739806972784480415348214392870000821825409044775089460628094064118369997367330999718362012629832636961761245963735591349096861739414239760285900758422171300846547726264143092772663219547742436357449925561762946362921403149925983933164456266985302777663516751502612214066220585835702805849058161310469077145750558527154476923539970386678856755153761143279240299065564644472120925229746359460585397030720250929590848030781981615646379762004796413746305353332401689342886512362943664818659254067045717541107352342598570553991740345359988331980803254440492808375285939999727620281436081585294293313526598394902063052079846020903545201700565186576239932884897443123246112360638639876289621937819845277389820327498965408244171120130604514185958874547584520980678836548724850717444871364246600473960953401047515147216265342895486125024009953679495918204232472216499972719462302599808705458616387499223826078901172602667357433341490060558478978485489769772676637698789075098291325411520991375686291947651357036732845128062290389786172457655097421714878625371986222003595612306538006389340975575625151338374066943655095951711682275220526068436172512175442716101782349984196000217470484790664297632050450942377521977585253007075613942624677740282148681885626976352224532514545106393106640466553479749195228096019687963080627813830872485747386600741152835260294155551635671917341522822388295324908628593512872074420523179514060357774152514627197748737676133551886699068807624671454954516224972088476632977556654503288631484183405849943501901943703842303135285540911414621522824520086294950823960804603354669393054999733025112239014756885971129726552029362230006398232032516637438796072315693495534188195335824741229958596379108023293116092217024581370625610382793490117812718098520770050148798350980171515125475427802480510893137628154994833947218997804926835663978442484869008065383022154889223544225356568412622104804566928443381830560496754783325374650269726897816987099603853575574820860607970715717111073977757717929270915267146870013971839253563227223729636030699803198494845206318843532965223314034574131606085375275024168759443131629869128574550882350993264735206123459302196804625306834631645648776187582456855638494413146382622315733255448344290905651690719990539480264836698192153141627556967004851832720839012371773343766618937490417519006809250796233684063007155214001441800477648353807765239977965041283382023476283755017790709630901326882072497027086031326974018070495735635666317569998106115263246589092409076913881957954845938669260896463228464872985780042004625378827213788327430030857049124631688506666284223794150119646678311984567990685393579907789166889946935463205723005505079687415921899850321505829198681903146720646948703446505592410192262805185834168534866250061647927890159157228256547725244128138756625098994039347442005888112264440651444282476918466770890398856912539558847461049682015601051456093803596180878470460618014711981642809029150485799545762821513925904046630365333003836827629950923095568494697902801305156805927014519412730222672690216979716024418537524081256392634599418135885240608838353820442279706232443060681302646621597959779539239237748045763076958701645204721969911547445413858153213754078962860868797903463745865412757520467686471174000778661906560465025221386011431273562094786741063465605597406505581024481032272303029023765344861807713987340857094857324975991277000826133658185871628850847464128108471449527179063759465689327946886332533818084899120102459836092582259938204724361286589558323889897321803883329957230498128468356042341607178965782680307853275537599601098383811024670803830835753986292872511697968998425703345694998157470094573737934275595961240926455453783077901460174091262485483266255680174209249984410485861726430931272787655358694751726577161158061598525641440829286920980426660629759382204659305304390701874233955373300141148589826520646780307207264230081749441020262307455677127563456770122830208591360553153431945629939295499792480533630827016773721578386779753381933606711564441807345977131199922468472124769459550208608770858504119367901417767554779420436533453729113944455304382189776856533944714066756555319790807336359759946423630329374705659459746477469825702228073314093909432725387653887392410494466968317184829572185820029000451971407753130710574573022331370116958607317445537556270488534203235313037702136634483192605312663952689820433349382977752255285022059236261090029811602717700904806119393558755266370182867942315554708216157261247870149579590177744740928523931289198081673267237284161233202506115509482038289576227179877597588014283852633550389168274294522527539947076241440296895542807412351541429327623500937972440629443472483707635079506280332783536883548530308232268362562876130550665379104480469880788317136150283022391812995622646623431308310110746300169580306288274865884605666786823386652520684670176851226709401044343884893995298474975829408462959672698038501931968880931490228658077202640494468394952058685178188468113765018227751119275388977078848790708541499061731651507108684109967957935824866642739014487647808462701501514095202446626841539100622514519644391196649830975699087304095662953829390788548260490065562301127725599592745636716665090082141962801575810907156346935043460179430503439371240778879924492123149173220623016722926720210624736491021580956158484145215053529117434182887600531247714469468431328772402664383692069054143877429656289872842298088484463690457121354293734892214702166920657607710154039009513052535514882028354728261119273554221035671027483874205577266839446267904054228573316888837791310802362063309024548648047277057944805602812464221797082424546782293088520868332956590670606830546740879941653644533296727452587935360877439219997601201778980895122492501872769647653837905796983794782972916617592572122806470116261544182355175312065274761804959152349623978455144218526484869741325090598020371044467356895042335842553458851417506282076175345055344606691099148623388138023425843320637020316092163780562917761699003355623474212330054405571219974879339650209105056246297008782634546381287191899721125043663384558941024094425027825691219107358319711957028733350779054319073494107564391560707462524702576470993425115301160500577796627137018233662692601975024987320559846003768827963580345594315866664544787174600111819130274690767372235642784491203580824104284202999847304797947598028439197880442573298815853590434939991316562354191130394692167012717563042197304268202930327702111404432197603618347142737709890637006990359577300754836220656341821228540308690899682319318108545887146667364402007123774615801531786340080113801135326536979435965998727473680963600762135613824633902742841751898058609867027049541383475590571324582407280553273679490222473744074609459328193803957671367227338100953415304995081389672302910860973077462193414237605319101751958381341440298181533545904545509315932758200278594253291751630155799791717031867263713837561485341293756516959954217084338382700062681278268491104329588380335058628111998518577106513376154440232835784563677517361196051063705372578093976379603354684427572178580371690338866051044878009670964002870206253649474412594782925977269052291237715623972375146643356133272152572817466265503140173821995919334623158640514969465189269753989488265423251179544809731186667529091094241491381370524251801843923766988179134162651323868955281419848168505543858533233668602692795603267909124500681595994653805069539102247241123843036529875033013978898201781547628026147713958468406129823875421979104561518534429941784104785036020402821226986320026944786543418196942966910537164255674832330199366235219377480879896965069683343924134132519920295318491859753140446070700755041208072173737372767600225098847537972031002653925554545285885230872501988433342557206253997703072231491766150390992245020574377028704576806389616572072623559399299653064613232946010248183042279047739452309674521612014508023866647968851346981853011759751892793898936799054663384028360027846328168449380214907734869548102312500885677601096380792066066065419045709846470264417892554885738906360662798778625578565950173948672009526800575663856839253029119908856567609510007477184198519972487412275084439732151138937034537380934388405748576115751476419719072013997732514370476253103932347599098713415888626414226167033002640988236453404004056019021858096359485394393407489610396332221841403839120425991619698921959105455954298563525110856884971028089831575252641706890745889748176560006549628340367931309472839752661067773512098821982642677030592795133842297445480846929587086546497107345007799245829736781179543839345848428118264492921644349958955804734553684483555476614888179808848780414554578112336142104832506368714733728948075718232699264753393534343956199229644360057619717692481171313638942160303757796267784917118307302703698149062914475541197494191006504719393411292924278807104005928281560098095706702142301008382353962399913125381260315031660747694072330674232368155956359184793112485480586567408306008467897392068980062730053985070960571644398733586286708106954402710327392862157137628113625855194827051363596049950321433537744180522989835824649316855375396543084974982013829565197521387290255517758787779545385285658805275492771703800059237024312070070623864132768544020037479334278564682708169280186481489768152003682694275542253145565648747122453869159409862857024583876158360865949586169483963695419353763854670509032448192965894361708554098120423000585530170637100608303412703920738299791868889834989971401982704563058079097371614908645879480336631374033816893846350476278826764344376582288741929404995600042652743311695378299801846878498840337022454358576554696421985145517513213268553466216278585736208996249562923224661463839978634403895574701538718640203325747790114812621618321168991954314792599712900873058557492818408297380023600213769789450467698663477835638529041729300337940083839721831768388696222368227653395857033415352921923081642809381325836531207755944829647609445816973546208118635522194284968850363248679024259242892026116618083428255954849620159472837205812324425692798051127881887608770727934053316083003306241303738203808806763855552946128359146834407876053743135805487020764036459938705973389632056532315115976700142576435380726218115370483967775314791250779330246228207980746258120216181055142418839240726891477744483574658840997609216992930693921547690656260466171371437390280379695571363758836101659658774236589703182655824374907272141561634376876949448295308113563092144026039115858175346376347517481115450595407561650288271668330542153589595767179889529938298199412548427100512343197623788296231535339470315048933895161281194226708139603070791295638742628416397375761638522250589651682605622132547229668794529885895340458985095591657592661233219329266947169325525006991845212144939095919987758806080886572926354735076348477501371085803731395636923652125121743017201053476403634729508567835498052773229966628397532383830923103822010722715939680540233658955781370126223021929652918933426826956533478933843459776256179242262189442095514797875275732265704660632505214478192522537227635339871251815868728782487238542633620915539264356152280475788667967634245579108244067063438760955389447207649426503715306147097682170054473798745357621178259899249736069695209243685085416082485658613993483143518796386078734300633361560804566711910056753745317159554504578532749899963136333820585601303032789352098181010217784119417327682657508727963812213368119173246545706026260446497310706721238923538518302579701826845197218796246261208706459270831627749774646779122170195983274477289564838494345271919185996096198774130176891287819988175776854906237544364749723320927128840433047529651554844538654837536698215509687873781004163391145211615599460446428789033302371586512727361089585317358710627938521984866189213342007356163915734789336436668789500874586554029520851133474234774521981328952591989179773956356878763960536134115658460524078377245778301167637870750429428511454856097598022819037580289974412177225657110924522422859550906592252128576602440630714525165143009975613522351928422844142189665605011662886030991301267509816227483414272427498810376265840713573166844799029884378161093988363201195556163752210125258360810524473301373457256634201743305772492242035398689785581754285576986693081644231459139914820556017017849795065266917967622089942233801840217654465807575384968609824496151509852935369871702786072261714471204047088784026756825411108318100740486943915450820027266964516379473339334850506458601994215566337514438672871248860593048868379042144231308789059006081730135502108688477727919120284170715018772565412258829671486756590280765320520352243224778701667374121102656183410729634193451648762274564080589353823428387151624953930094893628526030968893267128314702817084606513246238265880831575664609126064375073999108916336948320676233097891758422288428786374481222612369614567699427482066387018523804028647539588769966449720621305056247709369203707196488697895038258095722106033705875949200537372493159081054042827161872554375452700275944901502542169197227278489484084015851158121907383823890179312881593559588133744069102772647235100110654907792767716129968615093332685338667277001426290032116853098237153056926771603865112247943110480224763383190275346819462625768530645859462160899466089781041387661514089917271678104442186595517326491003640620987323136308554022706533067458204936216240003160991353038955292384720685877325255146227949824703426119463753350665433423151977613672981872264424846794670602051413243736812751448962723090217012279867679172343729079168223284335468552419120641023417163378805840520123133950726357523971040365246339023647090657347638799343230651798502489319932167440265499776598434590797192492748129475220997574207466550050578260683678311999597007210356207202795394250841352339006213290052474325486726789401995028110587483083565684877017191413391266378893198722004616808324487922916313971911977226928244093104631885505146913617577681352062259433266607150471580306879974531726753579320965440633427614004106693437106217065369276425763223379973281037255765039772202912661152632357051767337651375365347610139916109611224193430764756438107359414372314031345599877985519901672706155561419476905424460922241671328252401798537606911085266027943221636601761314850412243661792116922095192516371036482159561549367103489377006495756766939647409102305552034368629165246514598968598773452649047046866766927902537057845777065125089131792373978327103462488956532372063579681103475797192563824812284449016429782140852808414821296862321828865948765662694533406092364983121089448830103365994345251052882310832716681529312409934506819646987388161175111952845503613027908760180736062640190816268106213248189522056282035859954812869453244121952318719796718525236017140409306629500089256161074232272233271520959610473956294141940760149964052092953569823093901946794638995296817495867936203732732857626512637224472119473195266118943168322389282890001885039827328814313937210450363912418385344893497954160517934839928160803135604810097295765666831102182874680697427641086661065388177136456805154319582838543083761074880818930995659531019281092245982484995277229319242688474487011044439628069367623819111479016158420136160722216213913255554220288473759162944151334385754031313846757289487754847806844106845005402260717252258398459360364887050773651983829044222216935991812872992300342215814507562373925817367929224765157464650352592601767646567154218255754996374540006441009509519232126656957648722451485485713243312276935076724557429051399738549848911432257259030018639110509760707662004729580854895460197905640646322237000753555466160945672411133864581870202343856274057137685709987512878331001055798838106601905956376346709831633941363077298015764193865852415831662290708174202397362729063300777562848409771161666310184399276295135754933783917006833624675493845223423840219965825163102332400102853196189175834452796915726414746758295038946762559195417073851883292318286763446492753680502912231511085087895913815731866613459710057151267378610774576625936415468144606435315813843699551045116563715020984683698478605184113106630953148865415747717780854806245878583362076249932065868298153933066444115874127070287805629848378382014956542829673336507739738296049012707255852282077313509597168926900392786690763226773253522074770080995539149696347238867849736914942907162125100519994410137681819666098506691130024775951914078276051242008572531890909016919603724589736164685128153435416253255523791103934391711616924600870441003434600704694537044883184836380178191248880331577286775497120866485112840075910630114380741566369356488436378024304739790600900198407684973359777253047083069909364760291311108236590796450451279983796812803885243630015402978219543500820782539754934795833543540907285341625264834700332489469335111479894669567335283988717754266869047570096738026801763558244855822919254430893287234515261037825866884088643772843948379211953042041099668878417460622218105602711754447840243537393010834729105073881237070894136748436669877848110470783038383387083775734097875265846909807731441933687453332414699856115204188153765088567008706873226223164739494082643244311217188075361006935114956493770640840508840911048915717449490190508835230242031837439024633533843501206445252005554658374069296952120578017792807603796336865344964124047984465035036551293932669773997374333882248752119819820119330442866765987818404191868305469779739372534403736103306117001927982556409378920216374337913660833437008340199832919569571597071741604720196424795621646162735567095027251396049335760550800064193871642721021693319602644584730584280248718724413130596937707706355935128419059578397935800225478016796592087296049909012712112205522627508948467171581356518433835909029826193403097241242890877890377014325889124713417572131878416262330804794188479179099457640517666736595592722399924819193495504479083460545864160769205657098265088118407633321184944312034265638067621708961251840352230090437866093499132058477140232227426457975013401329284644802737899264434627170817887855911414071726474080454374870005763251233346115560755252572279039739090818805154285757258952518350513702664155805483520576924323095313413687301109981812140411930294558785736692617395370899508544804139864897316558842268768014213585857309055733583776480828514547577018514044624499593023682805343569242585653169838048230461583572410041733133034260116892973314106169959286811489804653469132771498833732360541348337968613896715418841475648484145445076851439530937168320205376167530680424172435455668623639196170097063194004092468530765356994695128082218497004518155136365477237069324788290188060389189441827660069523646950112751531692106938321021515138049662724683076036015413396858327041823655383818502300685407093668167823017198165163519503907900985867953098054513131108510723974353748348662565014956979742711162524851215981092813671549489757290941847132074551850855341225781669940665007728674549477596124457212148513542545273912654254402885185674977573853255817507729982093232682869007182983186261762847426390583608938369859826749836002272608460126373310999076062590075640156221759564013549941241227435864936887297620865290273418564416464782025628554878550594406737385765841991082857851201938598188076258237795826823872677416342131283295176340721112292363606492486622983307522339309792218772680735807598397967338066911230014633489855580589795387379953543954582750379913126002087643148304249854410864876652104120901170478203808031318832246087707878626647412354195326581493317963861184872887240448510323280652057612988469255377079004003468877230579450209484803447744815845486379678641682277666662662604124281745363709490714344770555147849434261101939674299383071559667258178119003973934890162500248985126731984360841223048591218463193100425539259471486721148604258112015785455352690539986404694310924478482312151161832755484204741932628688798162278888512952828499679381315008393513252037398832525179140448462596133513046758555147571708812292793186704145456423973126817446708548478397730410115395531951631002235501025874573921802184568379823824333293380686883184950716991836964716339052854520399951056367561781459010239657975626463485540838265881541561939557985900839565938973756738297083747935799451715042367523208984267806828961100587157674727503752073075603777156483835907089797946263494132281312627746804634841756303926798351232845765279536383099896340717497066121231747541558872205826717005296873107273271081551641505268818931264043433710499924172537150764959717638170302489825035019319448474863872356766438219976946342946337719124591708912424158625676353739965407619054477426856168364742061767616319051398177527668055618732667784960758396303848376415387284495575164199414660488076771731839279914873201722432249731082783717325903115270073247644606487951245920639217980940553258738532060588545571550480824240493728231967213840765440075258949653588528158569826053228826436093559219212681792861194098834524307846427346749521677750650774723204128149225336827324450478103213838905835055880382062448758722699272757612205064775633043522443250390386755732081986858025595584422321617910399921871022331056637748865557731507904492872858646200430072232714304551878985354234782191667969749863938999127647187299198294206567912104096005416526490852025193715668456595282890902829678479198898646128354514919518295556392755608769147618480900710374679418667798566733125004946936507211470913956012701366086074810219862638107478652293283702618481739018506991755582996958277262958086000495195586431788945246251653804587831108173166450719511414646445931674909912141545231530145681996716146816786785723456918344968781859329001390956920345941357307497625250848422120315355025743808810881568057375748647287498957541714097178756813030894640529144236385002059595564153721018162746084170468699248788252090530755198850365457821372878722280956882190553965941271637164757405886989279801496626998315192125339527053247003984769942147246732776355546169586916207434157796862544111250538859713773101239143035589117638137263308786321354320104911301497545194165217623235501357356131074046671072171394837222492761302573043624823399435138654841233219693803971476730170011473435256609711530360771636736945131228103698217684243245266283502628016371749589078635980780482457417347287328771795283785221667842130368014737677289532279614627800149474515529231838913432084874741269505147246475004203859271199780921514645947359441667679636160029935626010662091578366555365058157655077487448792326169429600354636870596961163011914248760157469742177230069504348486022298239849609731963829361905446253755166872720709616835777039213140001809846356082071645264541064522994615292688284831156257520922104097174423390753410633722272370066620781459191837169193212422882376003743393940715117920285620515447979130566249554467717563533209433561562813649193923148411141381449441855745925536569932654087724035750506631372503864967923308016036605108933505099019058136845137791580855697803455328094103674836243825472922102432122942575474605340701333327252216725560148832751291095589723585607960200273092106165404735942590235789669186327515839341114245069963408823901803575228793854041336571779497042430281150529929034411884369525411186804781948858147351587862499520816746701766714433777934993483546777518679356717313130209228910032760702457059674389213699935049412292225324611876993363707894188407318174698045644997627696789176806846901547728274564075643688384248536678631708319020688540169061138304563075352028055085924871621436128699927743246970248461185562257565868945386554694144159911735447047665678216470531242505445044926036267264694880592970496024807886384072191170894731115608274310316433905247699296163502261355101355822564849522028756053848774494581010123585481944476352683434016386486869630017523853190459574555228663383244399765814018458776785141409988911128012528130154045816536202698807403805442688590461636139674030549976959118062000319369589900645673490592502720240269837845612327845583462780908222074078600343792803343633643414632183276152711510257438380775957661781090578538142356558621053765565879438755194151269319555294475931408430869008766148990260744957205678338309815869037263273155047132738189309462070263684402604770762361647072303688577361753198555305011456699109126280870777245462172537900217472528113745856008625400378347889080243587308478193038023648593337909438179510512594727849933598347983697195798162491957784645647091824026723544658577551193229618840212755935735242887114817964991179814738425344519967736231528874261355037733619868770734884903213500629910516347180679137775173804513495821893003916498465177407928638895026920874102647943441394203597175238190932776183311209472688607378330672872886433172810709716985569157943507595729631456245550378978403506702956481169671215312080271340079478730206955445952231552517575772721825502228651251995427544585518796503767796035582107555015917325098609578850138161266344337126002795873663320985230246578706018816776712117712136041563278416038216238756611513488156014252070661493439983787263537412736274996177001511584149417917280948799541170838545325980566876504382984400413844089665115538254310888748775176841350659137082521519960211618116613574542620591346860198670606938371704116787184861137354363257396223587350884266344403030144244610415082087447025048004041693443098961763397467558575762690551738176761327393404571014823815280129943107641145401474072125975675906100545724143373496985937282151092721536175041702713322927269822093269859396389430799169448755875399239698017107778210804967092791666117930897615467445191806522310694672718378291180969713602991665483274695026297711063731440580157354568972445771675058123792923489785533422607484227570991818876771681610137285487777878359763588747636566342386524967480595393992252694184613017595497325381735210635150471993368897101528712832118363502735756592149862884825069329729160894866844085158644040466517260093833273628967045202356876849056003189684781541059374245219369207363391373169384861563770656432834211903865378562451506868149016193404346583695171599455965234375993911614216425366396860979801534910673526917774976384564814643447101788510366684482402231863998133795742152864420178336036815633298827591671714423368577511002072851505934542979633962252499463944913100960384237080390029007914254994401534164410922573102217915813820508077797545720936921101927678539536723007826559529093538001700766643461536463916186031246001313886950783937176572335414618710987160617405403277677338144022264960385462266483446579254494156801230355923251435789065217918420271175566077516904416127460639535535693391108376888891344352179924830270265159813077970622264742942058991131970815976811111002344167146804789211665437082196028929168335224640980222566518645203477029550693572920429304943077606051555391649869971439409927400024461537679388342470620000599659081511079078676209911636875643761718958203009151379784359378625137813857633764897636762476302286933573228316971220988062781319238569922181777641246535489784761610009440800647433949644759708125996471927461043955130170376875550347763466584123147595089734794765947704615225786496650102245422379208475140201869124002503603430745091337696551830185051947085154202942244414638931653963153813382452777110779287955037787948859091800030452849289853203791074645150548732411975939978897768859417370353729014694228728418873393177582202028216259616995775304709434390585331513574136160884636648508743343985094321019006428530999420416723176109013178593407696969201148262094095461735464457920868265616081372682936823253288519091739747495183094799142920902471162259282968207783978335969259975517123800577459056896973570431908501080951300210392000170147591372890437814081928469582403276087887456059020420394359036730060606552166600141103100392678087927647500020734596706247561896358338838109847042448156511434540386683618852341541962525165505962109840013912089065095048425611701605157566673628374444967462096343431609582290474429883330610476666243414672800549500366219713660014459219735205444453854069297515259162584277809755920809052223455832868929336234000738310212792770125259624652327573833770985682569004978213237840476866440321255384060735810429678260906668872809902176563567114956587272879779290669580991458503926629129987671933915876551907181437795947816469122900326625895813257313168267487640498807507377695921789448231537651871840823999579538212224252188905101031475496707029961812002046359245593882832193347367144920819043422626057631399456603928403150462499157661278309825799505785743153673885349343589389891651834612179274836703843503079784370090231043644102271078897806343115924994458847525623676752238687370541566208276468361757584365494751428221828645522854376057715609771665397516196364179323754204841000803105152273049734916179731619388635923492455587052948424428168970515924207520092426664209102475219718243260350753024990114445026317305856381492585702752020787246727022872945026549898631630819649075560844356581927952265820174508128598518777347976823133510561151891105808673559277539222708972683721375932136769210967327291004603110694443997081009268161187521469985536553660107283586683629419237379227032812546709520092113817663263039878977931128856653404477492129845404268217927950517279097002258769424326748426051875500929660609273317432055321963536268236634284201453993325362606149884058867689293539391165776978622802387070849404327491855036904672725721788899121943049779667780887266371701768422367012107214496883885143975176312982003169421520675740450230807702941940316410881443197325216175248209891715756712004819591658496628064856494286855775797515099257832272408278981190854585785155276451484374555838536889868351362907302058169814361201024550049464830491436937396903858496300191571827774221018454993185588415352514107158444146136756461909345806418802348765078598617051193931793036549128890236082037092467921584518938646139968773001799836165726755394735926948467581151756184968182456951265682395365763925933003976909333818893050839890661157579793156801756849178256334442505029514991541120835820645122588237810888970322678709031719120054347462758002479177115464521646705453129666668647488476897013062560093033577908320161556488833679830270421908200087223139693833808053551895764733549616934410790858634935556156169516879433853351193252742893819128064385688210846160675672708934959855618304854887064293065573831692134267917658299347301357452080939156309396441290975279892401147555380932320075065641053561684572451287513738600989974997524321426250897848417257070307838888184863873889900902067383940820873184193166401408298740558714800072163062495929540753767494278418273824776938519963779637707827593137957050641320881894531092857578679000259055844019916342030943606886735922746293488597491694917012338912155751379605929314310193035011220736159004850964406749059565518612414444934088065667967394733988801499852307434236379594658088760330409691861563857779410366754225636529930059818705831754231694803635841092259661069984356164109479992159555173415628440018674375860116350239866302291141042415352024613594960507902044389049611028377751659389531401997913836801522122707005545345517041409790081603853866377070708025147956410633193239483908022951710547900299252942858068874579400649463227344604792178708860313652085868272486109654000764656843206669298120424451098098050022131179263970616350386635154751115439272042275479147702028606849406198618803979687383309116835178490571810103612780378239636469177289123485847650751417008628357384974130269157235925295964029694284292477716866939992926656599009580166707012299480865165809956940733022797943971050758202817516431156417597023438964572700935550429526346539513871293552878729873297675595837407330321885697439221499215177920643041229345197325361291492263675573511889540485126614115788756501691478082695951584641620854326330765384537098868077169202331619695054637508439021139926117811919559864531402316981986097048460343948452084551917022249182803927707182488321121409074684957271700503195117871756382694102693671368022598341942629134397225912855470183647623513151164909991197469607517360856836030310953818982591997234032514854225030854004197874902015674316240282160607747814552618266836224327801959983274102517270780157419627051056298060737201649637537915933680798834253800236585416827232956098246694397723436885736660804237107713721850785303029326879866655392245798632725799898833854899091380301786083842787698151938303081906906033339082422625551423735432970184396177300138494074013997510734903094750710123099547121868038808290407734734794209120759534959650187920425437729290027631037561377856893023248080190556133873935460078863225949664106507900918354771163780596322071292351511260295981965225466155915278572752223889233292332423007917389669457972570761926106292386607030257271287963003498681058860383861032487729092548837647454155588124580688194523898069682222363905918656362491248130276387330850237440788486768834762117683309857885756905566202953781244909238894651451661999410430382236049668926156379243716834626647712560162438105370777396355856762421904817260095496806405565222996536727479588536996856426961439017870376068240981604376915436583711033185961660282669602326214768694800457618230855632928375070378806825969029312985215817032447886994076806258179664240459530342710263474430821743255190846046921786960978430107093463262903588000894740781974808837355184763160978729545879897992638524587789533153904986611372465582655033256499966879054820400635919874936079286876077351297520049217237691216909868256093613017219931251916065141020658139248232724083444015910334103614402174201571070044565655221196805778064242583566223789539490451332818098643275247530500606331664827168753198592105395367950783004299464011963681680792966649685717523195310527685183404080242493461114151753518108377235058904180265666528134464032100532183064106235675417286138760065116355553025122875186504664756671303751972626342262994872996692803471936668220409588917846469391647311950707610150056290590822198007957374965566968614673892004924043860718373304794996925739372828246257975192250706179293633304757494610345692066479367289544988161878109713470552091796663705454762866931500554990233583728877756714699022319666665079320214412506346037782349594272090153837542381087931789609911519705503050591346015926584502997056903315501666182984917100102406150155847570186045498302946479071208114164016207584799971487361731490423570529094668178149725775988525297193410279889987125456794597771420842877526444049376326710685536581859028584420065108260054382418412759215540391285441029095777642315827551237110874444877429445949955197657894366393111953775157424322816662884316128218242223330223554686074328732670478649030008418059899861235674312903866071765145149932569150584033479872001522007308347885962549687658086030515210986157960237601626710385038573089724882872782062424173465731836180646310956319580954593095742810226811718421295814252050610599386757148202810902080327460597391015944083687943028406424727945332841582764491889886414044696822055147663133682694969988266903830183212692407441548365802340600705612636983242867625294167856898753535567477188075494847110766571403548387064356399071463224886931063778055837653110095624530506678623935378768870151020783452150734927238927199279216736885326381566006734254774043222413163722121646381018040219446045250314068118039528846702760307403844170118304036714985087360000094800253129466608201717152350994421767562205611501609539412842274015062647436825815865363846758646964959768096337086320781857165743318215043617447804695201421442750145962077335746126058369725244753129419060506881646157291549973169940282521955667982494129966841685038710627472411627709707917981564877423957284958091206943584579422647267855097621921753878658500233738192345045802090372821509118654413426414563122232230780032102440103996877764567777625232944184614632321607378250778510270978393174302301849380891324778491589407330667836294678533158178698583399823337306455386017078087411074746911517617917942498495597531338551976690946980863257590449995109241865496309483913234160335949565690758691043891972294596241955564729580175055757279462045473413861311223936584611776376077366705840335311813356946270281557708545790610688238338662037061571305553022053153472392001398206043244858339413325784459809314757180863114500214393275374596548896260928927501477924340587095740220010448525374410801362031715903923565675591605190639845979579477021361488841779542164994644852622186561246086076791399471490702197029933657931031059426311521525795744515536049886589855484592975198299007709186634174375186984917343107744235784595597879916951838286609809674708738150858872354935866523142033053732222862741609823449227323987544201476424149533787403615661201259721595753316557148292541523252097498893043504325921664655108440907626064751783952398282132807887421094246160390706891581198108499304371763833896441476904584101376577793010914035883279958185395765193734957855561449649912219587104527230151660298700300681456211294611985869122943524211784743198758736137954981850867884312493475181103542403889028393384956653068502019001992265186751025707285612955555312355035652641028924847421454389432866288319332577546269493043062982962609918496928273362220274748739497372602349138333024462273632655847791020824640435722439615860099988740497008073751173978219648259844589257115351882103602590244846390439723744595598998505754338285978464977966683172908613473618340740670808815375213260781961458252593542796837348078561380460981941826645857319876981787001200589832724163006309909004495551275080366609318509412161808202148575124329998519721429408704214805133020055377120045467385684273748680689796099129095364725625760841517638402653418184172874614421551948080409174026839580853334587556359731044500844238899747360315921028835088871076510601872792621289767599322862492719257374812500785666080644775170622095528633990715490506990828076533088825850270475378624211017579099772716187221058128571069253059255065924330278852912691472399711436818190352848081702856383780229430580212767237734919017200498910160979976072478652252788618776278203513119367519396911143565867453736624422275001140969893792135524564440229584942563385668716490281907883257110180626540573656405751936504940970657272391761857180546784296390493980013265593479307442878090335640012174263092828619304759081691527453502659719255922861531718343630412894551314933048492478537698826510445917602089258719374735356656821194142657641100024768926049653594692339215392753269252497815096743999101849308989685414121763995812290876787801626346643181508347209837383249830910638436781222961581901754975559987746211266153832315640987734270952132209003320274094358234641428240232828125245718573971665505650301000222184568735981271099718938702455886276109588356512295558763302400280831507188886788406989541198547400335165074081280613812156571324227411567905183879625878906466564308561420937226260400668242415547488263731672615543325257063327221141744204079040983839253375121437890867125324052845751243076885188493540032021074043654383991556637513981624330414570358404052557521427489437294866034626422783492129894239233900099681707382951592746874463040605147426728511420240411759267395537464514754703378637923246421024782316599031276534205022057501744016058234890951253903011175842532963977735948597834911411791548124569288260751663337160891126454390867320508496019731302288883793730861774580936420264343214797181086059114478619970029345958908299606800422535149854395022111384872847158751558981898789076920014564046803829238780558192826254665293980905016484403438900782042813760165146295320681617331035041362184215517359319321838217444640272280550466212849157107503142578783315262852539985335949312305851427260896489657196824308854159753924217136729237014198522090709195859652269327773124670738879505585454833171239014005413537433763726899458376735779745084444022601353661727666145699137861027267451994919984335369628827240687663215159534933653371586054070972169437899320316692727695247615932007342281432047084608056248656834742617638283036210944530028210671896549481207886661654154518512418655220456706689646943383803038865158186194751526221417088926633584751654670031741405958028717410094541679653625165641537559841294580333871665546604671296875607258264480429837988392495700503620336596757107761603069262651505940493851737475004096347552481133290657465763240255877848933577934767192607376105109036225287570314196000784224328308970244447968946170197196814694895036507984290705332944930488357855677802155325248564291521151637640278098976985404754063652095692500948471925292323552165991390297885580004539554155149723070635705522715397764595669781618375792682628659338160173194532760541760256680826321136980100984203291408940384163622269492894540703297874137068080765614147286814465228272227207990499177453530738136245212451091964781940185273752658221683432354163649543184948898545971294302229336683079457686702196789523103796509760463849913874147811506286523756537797600437572504106474038742035234833434515164001009290046629461724594802916238789173281277534429066483159603163272641282163030531282321986498669371142415227252609944240658368343871455491872750526082740932306021590707632570283007907097035029509617199949806191967343418228070832472829016106868146101248699699440342926261790089316627027406529843815258179765828232758489022666585462000321627631529337160666942373998797419342676136128670680098646283627098378822017820250057045146281081045521378779787794611919175250222111710340829153666008963301766516228571898635395438957230662790599691405572229624870252249256083052542556472236417876272219617364952403744944717263153751521882857690404764775167566928097091922707327598616766884129474053638775171288699933722996245377538590357638993152640130804332571640055944749757397657349069569471748130003908705143197300738901330569054812635622632116572164222471843092346258917533027312114598780857704919787068374367237819936425003633462909252407165534929038405521336015056830330509262808761712140647870177593369977802204511142798663744228620149748840563197559301099084253106464151589747406558931635582227916545679187014707619840667174997822077425568875276408107368158715563767391538284183608347669191081459803417082839429672012213924811458912334743621206213322370579999151446285677925919859230197977868207965709924756536102436441633454191550781030261765714954503986693383865171336119849469048753903282074898161359877257827898427288782109423388659208740207366715784706953933296004483882600468484524820153549129781550940011427017733600076571212199965276788682693709071916395363906480014278321408128994480947669849225839554306194705176359028643664262512173668426876214806415657136941228172306234436628239575105523423359527287455083850105349095009687648492733744450473811473342443914111365709072653414531483562892136664125826927118220416760039396457143757192877723855152999046286294611999914109434016582216879821993852920553293769075190907549527776471307567694893822130968914606949098801348349124892130703348715053827798511593226574075627435224085696458427266206463903794886702420720807296430503557005267549927872111122891614089263381395425009326514066129732220890857486573081060620913885227190550943057814715870453806530735277496592669467976112882394686635510313944088798716926120489642523945549747377800399613981375943103401378669605158387529051626589316379333102678439044068173329304550603584996158545324988429085902482395807905447231850923741613831738873921329837212469794825789193613418962987796909555716224052505741448107247311728228475380051932182294107437327849285456128040820569922316659250976795276474547604583874346827116498305616163449617513876513005614050585757154857853233101513827426660894203612893616345537619927844228354750481119903647658376376014603894956279635708004920919351576071977816458966942354372894006991538317959120202187218497536613665468578021689293302601898523573830236109938982287184689193941037681145178412873338808854672568171051366879344893256191210672725221828724244994589278783047215648337444745866474144321702200218526609011770519662116604095957027870059428717090222248340443863816078115757128036462661469917992623451483627930981227681695247071649545831988509181260273749562993262073906896996388086779957890535983636432481391772444505740665095920310925705714148449664783225464059567039913478499132793061791292172354744806817440650826152264298661855992997251344995750118562117269646402952801128573905201448766198758057225586380904179740618028871587731083947914278593474561006902182152960402137787965843355011465126921877553421687871067481236692718057928322227554066657897276563535395987706389973761102143945813578334102254227492518729318830563563945495485089068978448240194532201113080168840342109483041121069942237647161664279506610464193216289313613733296471452470378119020245337935332846188248381820798590469622225499054570626767093206855247598837101999901076254219955821181063599295811671017814668872644777032061706688149685697732545917920845422316815708312464345446999686257201301131999550004284861097634592906306591980953799062167832015793197555352814925470686609509509444683797589819197048653801919944495251965490418896730250847338782055956710669294227353961287085672885084177756594332365742814626024961421307488770439477544633251901399697636467505198349007636315020341614224955495037912015902410242833531947594860240691130091051980196270166365464323808324803273495857288991473409989661605126166870313384086874802902600593884895788153782945115491124180947666058100092963697108614816895176874856174516981460463377473518142344894668607116309636895484352444610546736782190643784690330874587209704477504155377348549758415161639697986432366302802981137960539989001052684585422878811190894314904225517693659470647060154282384070016153062836049983284174241620830179070408074239817146392622094774107334750587457108217517143750811520482877263728197441194872393857359528847574536457369862000272928440367311172754069982876196113463265063233539516679985947384326079449152569559192977067909358364684355232492815891672052512853695997683419920601065389585537587633834996510020638338924029104618478104700778252196526156333319714478293275784492212472371348344204769989272847396800780547376271509059041570204121960361549616510945096274671851353927004703381569982230554614092329406325515560017052892629016822383244729784780172943131678811291989627753001295937812257003377815119049138474523432070560915785017094586850276394980338150670478025206485453818159165530290933279253128420671638552515633474543768914990280529175589583568495081854801390111069037254298724864559608199370400179401376859757407590951325539341288021271707800299805580255370896542850012063711680427478555673022798733921174795722395710279903255947379627383084912214076865119113091464943378562223426760202467937826315995015794541144332137784240987031385595622591825949101836402743068303946694235350718140697018302618069363907492811092178844895755964389437425292026797919356550736622369663414446648789533001151965847825456614409735472019721077033693316294027105335272449722940638256485784538534903841359522351864265183347905308073094380274628326478459773176814691812105876996342898904042423900121010609502406325217965614813032877522645673256567203736636925604618421813956683694952875822375301003372207743777565634690657957874288160918154451742281186624800047122531139086724701560361511811542325238680939008288991566101899134963121042423185235687110266578879306587318377623196316731693124036880553143182886681578831230092400484709655076773050872962341095579910985025975745729981421347126352684827416423628729408879411849530239833625545884653593000124789033596940261730450598149987480814330056307063124992785972457970720825747349660342190828548798278800856588339634425525679635233902233939817117055415154187772573560661435629377305284248151337323987651771916715683617315397393729841746769010736651037740671601908549972250706775604545337539611697567402000862232464673158110657402322119998490381719583193268824325837435242742079969718354192682738888752928586747473313999560783305662405828385132298836525290101293333284708256434537893046227220199216618174177491845381284895529445768744370468595027377406497592975557622361052714159458326836881525193563348588939920282420767154169594141220330098516484408879995240834406252610293968652324640152046242061286613940090018108403091458541546360575684488009667172659492603841420599637187420016360998968356865267545853187931073094882419328441707069712407416423444431615504574390557890595899638214079548908989479217329821057043353844527099777931496048336755850255523361963444879042429093075249158080889428231371054002011081112973009249649204872518785973363339463044728817946340348658988120721206644041183503797523400887713744154664665059753184581998561767975863680346590488856522259478754122413212302436612397975885206544298191620881664809705024129405381430963934817759905260180011701540705292189283387621349384131312236962522421545014536595625982253293626259547015813603585775955087855855623771850744009279162434187395834626533746222102063353591292914892798019177649417162468306835851236301204097625910685795229147990178461516857055155740266463218442254615239151364281682866811396223017378092051359161362600356373149159131987083425567806982170446191770789372429564469204250707013111627844942310859683594074530927425926593073828281381568279633560287733681279805781575393020849836438045493143951173892438249444045885509661412945813870916779872382118850449950250289813025930960979689684384832331996997701184529928709593012970028053151834612089551741287523145584065523796910339249160825847420076299421373605205270821887773710744861253006685909480329658733193573031447093642606300471498152380411499965476415909546235607359454133793201429992248083376108568886615977161779046357511006532803202740704895446683920088914885062110450045782470680245924445857746718008687140899266448380253098764520679470514087885642348906910638359812591404292595981274172561712945200577266888959386470357782466749996033183684479651470831766237530416775712582207604196938368748863243064911997720349227189817969957634965576017650371155695624220122985260704557423915842430237674090500995678368151247611181225097533555066048967249752860930844271814186917724541331251275007112390087319874693743867356887988478034790374011773834380172030662246427757232732707136495017819539254318092737843447079448713841349008587100926255879730446458857846326695512036745524118654071807837189658675492886140384085474884300966710839755745026470978995772510256773109202175912185133721189220249259323342550743718080544566799945350662237548985117355106040837544311009189540027006572618125383100523605963757093877485083432703748612711008128589369724274370396558323596784177475558075670096920895247637995098699698954400661546211253107386745322621011903859529831644997749256144497634322682476867258666544239589304421939833573743522234749622822562595743438846240174234777207790798926252037220990766406958428736286315311832411261153034474580518002631539286237147303318591544382750351323528066878024808980719382501695256345060962459027531268730735198208675157491614634053854283590714416911880486124414693201013989784379194554961202421918127505249478081306279805073862454380578894365713689398062599750640991304273588751644002880223494020593345178032872050268113987166330932081968896313573431239760268849770293388350228539952617696144571718882839136960570752108894382857529792770161787534962034059917470762911072299496902820790451486732455971797390225504510776110465818260987269375826343423694618083877498686059006767234402847688284366315264173122146094253108739134821945699788494675180422232387997819382131472514991407034502335716343477985674851077268681626180362215441380593829205665622165693960808187074049419610626995705909201179538436105479506656763971680318814282109111291860852367039388542459368363277396252477865010289034859835475250100507365917186900462208344896901416545284148954634696187441617115703317354487851625345838639166620440873698643823734072827171191369126351083301468927299049558513433984725235219701692375844129073521970136150583190151891772320121839286931363340010755680179713913390115745049976737972672867455721220924423479509632725871449638030552271482889824018667931270219945348231118410146529089893885348106385294237973445584603359535100476388814859804618702227323212606590571504223486021700428542402430064340543851759065444366400506431692854347519469568246710491157707698803353912829594712007646756347458946909595712669876277249564528673457538496077359546648124033549827045646514654286646461866142021203109555894570695094564836002645628142179518435994519996867437493142042181537266323916390169164918438926109148270485739419709041270387684469532123206532986703275978324922837487633242466310122682907006972462839708086717993945946245908772936319219753816645470629948771736994392658768872037643941257651959551657718979897503579132699750715424759413302766718316081184190029848700003568059413922399163914198232871300347676080594335851414699906047540175038514658910224551352118731028321086423468142053717140201915587573621184044058245128469500932082230389262120275568502237640942650562933831767346467402342327918426308846116284711503726436152673600799831055510348406270959959278424752565511574188896878567887694790880080086535731643157253921014237144679383877885211600414964127706795654434565541703372341735130942161873879357525314188483108294691168261857000480162381095914922060838221334707113823656622087850917150275292242707299194029324203795280867476688270669769804716877435584482648986721773609229946508642152855208327366248507639467773344928183903091172402553162780528394512210672728413987321000927631386109716110129557500002255127606940671115949513874064944027845798438757376351850559724092629032355098919247333100295531852747741595881464279203804182439528664799281186786117966447350657740956677366509312991714394366904022227194612836029529536449982227593114950018362517116908019447772021387674822736848342375832129709846621463585152287290890603317562022690992501225127660419146183266405750245445932630623744501202262737597076311798772088621664824653530669224971449783617051150176042076777258845081240036863364509991435388496080971400063463290942641748909649882771735302572443977808527250014613145330121247690963512107560063359851852003122127078498077520522392941900329159374029088966347481108449749439086861181749836498516241914567617163633931321496472222870351677395440128373046472145109033253193781654437258269033663690801758934474439006217431605377366887994913012112734863023783761700120903627264255349367359296616981842507484454742176513981756158380920963398213298310476833558478433224774279625469756767677488552030941475238443821218604403052667671254103415306825754980075571896952227729689064819752430108589571216376972501002203033723516018895514243448496996966764272578548663774080828552003724340044306193037675003085206521846171691402733862380386055609895446640208503282947458048909006195308471829750945589203938019331130848580887910118733371801264295901484316456474936434287848997400119111210914298719422643520659066011938217249282823288093711181814445768840127484605917150730200052419791919861651906808203291637354229354181460687485622274991354350859995515778568538035848694174831437812153239267214556324252110832429399733011657694051348804259718040225205580446467136259419393187945730521243319813752148713551155614101217002608926107460506839094298029044751562898687319717367740987784384761021315807913143841588917098607267430678190059172242720379569212079081158882594362752905838390776117643731034740604194469154119569689778292016227258145315126138005415811040466758095883794647437243874983038371793838702489197714578012349346866118662507892002627326267542993597307401676171370572818093178500976046126988119079766669809041256571521585918595697393187494352672731878130774264250236483621455057906722194800573199434758275705996096115774953944101161343384761669502567097533447549144428630773071760525482661064434531214783539443425813744187345189055554858353985988670763225404630228171789017923609938278413878019504758019848668736699085253720000516028552884345088787709738963940468234971711327072062734183385535176351522669891489652949943559318929824574225962518309475391038450842788339625073186021766470907618913757738282210757114754569936650379288707367156458961219048007939134528719967811010453185558314862008841005579994519284407232746589338353721086627948210017495013789109162363995543298478371575864937656280964191677017999341324040699110705202910472571170135454442744545703578857348238112095672861213885600187458114935198697695481150222262921487016532196642022847448000155244391378559867351187427247460948970117382028211707652365468787491305879832467911845843821446510096981206884286773733728609148965004177513896169929155118988029319046118686023275270064441122770334432593123865598071383064597343113891166663197532026703236728788311931329534621023168646468906819220891914196517561701499073376276672648535182533366044960826482737460311670140316934225926387017713702901850729691894576992732138368814299859789538237538783294368271873621662922152127533023585341167566701799880434473217974307694133297628721941748644894436931970156607224810070812821376528766010612396809642228027474078098814545036228413502338832140981473205909600055081488671697942682811504374255836499828293655708234606858078472437857574716445066729438228462860425556197722017782027700849356560112336085685385254166369680595795040574371395107262365510251479602231259924907887745166355284279157043735457395048814526721072446866710301224601190766841524917039614596803585675201910401915733129499277218174419807124436667704521515561602161001758714361253971544525621305478275169823209402712205276142090823653694648139784665124799209306331721700654507373572096214081986735249678088019511053708073786553652414852503175461336838245210460550294534984706333978069551949128257405011863908144543469868463096628115968367613854436267138191225825531690826349758982567261170806013219154799574704360094509093188597679353304626835155197081680803336083114709170923940716179272933473224185368402980567362706508703610734330939888371455881317081887966837750978629645526302539462032719128020203249463861639525737655401771126758831907496289079519690401624500859575832195393307949556518822418125435207244072443694037551353084521752954719836707647249894333478926297184086201354747241448810254539604127634536024080788135132626017153109104674905230536725445087387565093672596575941380705213966186605320107923053175044520322730599869972422454907462344003348054610652795587748547741458898989992753104732496066824565543889325486029929348327222062429549177583790202576086601445695645369147364087754442279025113026489732169137943363348137600513850838914776086324253938819701688232431302523504499594232428979706652535827054996071326949167707310439245157603514148281334725559775373005419396195969339380823933283038202819573344403361762928140688119818076654786611952555062027839645854568209010852537898197783906637490518837492179050641131578040155973640215000735370828809133574702147807358666442691005352008985115879721397648751968274631322723309751095427231932941116576728032287332764944865583495686818025097404944404384196840570467261925419299758949172865260632462766911766565280793455525780299584129224595588085696034067084024484800302658302917242715901453468369498185260216376960763555908471910158926093480292567243198026435109627593347075490417380131925050385934096103479468903299041330612034489891038660822887154190589706747390639808723348050901431857363171642570763769610379253048440641402890988926730696218557066207805989314516098875277486037931555309671096800872345025408552584112839234625514011001497980704537742435211057884975035879937104281792072184958026865224263589526548723759864760793080009539504935097556575533071784050827675486377169245845823992020972751852833691241012858143271582714782924784773319513664614420119527079794038915050336263708131027436011312520120319483907134826261598521543655490715469707669072521982244992940940272751860039376120943842152040835691567222338388401304926016393927666260882350446425297474667555325189340266711588919818383576327220967368356535642995372118073868067986656648814204437364807082206758838252425662091519504156199467805789508981724775044966025347206153826608992811149414547137199735215416854360010433682639987769951859579489101426633183952766528315390750685234250597429619228935944514099496488004211857664802527147355942549737761818091640853947571407931126868339429681303574355020482784134315853226489263452921874731608277240631875984580238779438561189041204049057810898185650953690871949818414327968028858395061041463740410329858119762909477422977647282515886251456024814980933974961254574069893229687527739435074664179093961984467469832376727178963849921493700302062588140393788031307814778466488110107430570100252749004386828494516782227497788401107955400797863625594054385174597548341236271731518512513772979273290018401624690322377677515974928281460254666189047191904451454360138457177355860361474610989664558194909935703674228805279970652085690105591803447769244174469094351146399321347650654466259951212294432542285747224999826142189511667998734345309356179948964604822552801371033657420369185036610332265363809291831777143059915114055268052704503292416553856399814637803958797971941346451323621160648592917550656358914684908975119580621242814120242443193716431913918410227546620327163482319279197289851566468698651720415348738532515771767210955167114828737012708168284427055589489569854326896504980892232096301155479741846496788778274347445439128523784108904722527792327670349777952960864108877159014402627558171822255486850643356038339390962593967923114862785996032117214402651211099396970391628264058112624188693330460091358338808160282282874441295638391483002592533627520062575287381494983950852584265978442649481028693536557634914578998173199266533431572042276637283381982500981946908332302976413193612493746915874839388896620317825629226336122620798659997226293774367774029472979209287297139892606513169401094089787286919778601073898709135270889724975184776451830168263244569319994382497444916933405333771235874700172703482598357913935243793681282146937019466084647112020361474495136124228103445789941101385474310825476288940428765391736432029361834420996855576229916826013333309213952421311081270718020641423845466738803092434608141279418285214354308801776813973849254848338259030740305543974724901914375727437986692747878167662987881054227564654098260685418178818555262080951131881711220890457692513203300298123667419870331673354742603759702882445327406563574977991461582378409067600408198925607968623665802252086113314133921091618304560240466104851713318795049249979960463467722914479806974340766754143210278464042752720042269669466258735611529414513480515840952369807395651045257560093968841388606189624320295704635609078135933135242375299809328223193258705671082831666081472626443300125954690445754117160502782875582789090269137952753222787166498617585590178023994548920255520441748869547926541292899519714180242711391955889613999709249602747983569881314889509002604942888152636177711843559343875521217697787924284639050355304029906837504214343438930909402271487318279676891930861296414819130621934181293529280103146682175704498630539133489900076278467774788847263559247739273392856415226039348965604640601169731002268344369461861541310768649727070017721657762854881527269974259087283641756841009994208719731878640857924231909822092718978410337585662695004561456191717467676120390569582472331814758766891391669579795812414220953410101345810906097954497620701942671547267877119806618717083144284156082850356416073402939750707074290963042928184128630335279528771895564667337702608543637877447281286249151933420065005207944571307275875430905031531001757035607807196849372501439071506206154684590822337292511159087376197616276538020960879357659145195938451796211620121833254870549740969211696243226265348438367484812520858861288152881246455277021763933831054826755932637105544517992463478900047857581828764191183727453180306799141373876409661238266604165442473122448985689056702910901183738159815479306526415495601930882881132366510904189138239409008124089540756857262046892210261235767765148149354341132994619025297574626784670414264858877314524951429338739849397787194889562112468996322921129727813371832101080459309406052555991954752546631393527290641744841971314377060262335566112751328996282942609740034717369291522149217119956445708940878899061193632052189242293502873288358047460543306800637698346557869643193100768004255405787592577912885655041140423144812416238950716078851413267702397359600940910830530620341016915324198417796758762672859840023961011764588754961989709347031902362712275365205212873884252042057938707181506305703843276305324408044750908399298125098126461804066995775453838372493851272051653309186043013636204422235933953713698541748626736763858343744477110347942046730511018234221195304866225405037784731969790115335021205604453816793956378276898025799139250960094139968731852323843649874611582523843734997983167846317840223686036503889539768640696846550545252393331822915219850315470105144139877756459565981431570674510511607496158529039243806709700478332929388084435506124576105862399094018852614834633297018854016299541612735063608475663633917287228529348868686538916097924088936433151711433608833213895111526391683934121727193410779000280525667729253529784444382873318850117904664880796311459146886370545657579551555639683532090802422805924428102182144707189615245744774439941909584619600473151890295047079319927069281282714605383020351441513709809142207024800666546295101563401387039042171466250636994674542319195742725804965231568517492043887413258155352428044734678533531208441820851635486264555470684469037465073344634121884239294224304209307741519119280462834002120191054467266920912408850945825771346049883858907855207250561759295487853848528421552904979184845809663788465136880442567010166173848990654460902414225446123046007447268910424890355745739607804971673483687528622239089567634051398810813514324191419423994595806932098140925114511425504086374715868681694276818013612805128692547529994265597039398386622901860574595979402546326818612785357519245839759382629572488074158929759960230319006820277241892197147175489783945374487404095172452451483268783341086494493395023558529741853777596191819260541384189318305577893840297458602534650657479227828679340814530688482374185149812280606138138216863768705469957956252864172875243108787195110228686013702455352354527386367288048823938090879951060021401173187180638922933179900049993193054522642230314248188035363627338530571208122126000908187323478848881454036767509492935703323017014473117704480665096907360577301954346928869888334699717179635164752540992429564863332486492324115719980490884854116545159938075170260577464513791481870109594429192969099756846756458063446102987507065164589519265545616180889345684150997239954290606834613349686120672363474409812635390266671432777582859769696686714024456419475368385080615598619989736465331857782133891000910106343098523793311223982615113203465786611804595348697586798822786102957657048478597847482251620632766746764626131684882936845100151496015779361801736802253598833894034082855426015461784408042203337228431604232176044462110672721932296971276032806208297076473681113748585017501279770018637334116235989846721978079895284232844870400551286778517681349359331872433193254843836733018737760701944116245543836982682500102286205440099591833528021035386457922026575391156435369823923779762534437438607406372196231879473140788006864439863168601764165144782034030124293893487529966336347525891959650463605615725150939435749228966719094801604934811144268342215540952434531796170404962179080689302878679278439893488209688528148171173651034400980396660915572389320085907245387846995744055566272916153277586569225678376798273026197740176567044705493777249977422510383018598694483747672276419073113404534245604961446707482331149815860028176392871145420541439766105441508972386171353949860836843016561261172010624377526057342923572350907591252143383873755137100458105561877293138454255564066614577728833228070445568261407527979315497140677837494024172330805844305336530585789278041668949485689486810896848429173235440225811689337351837263529921767681469590005660167812975996221912285267977182634599552453748788276658726430262794244357313982792110620472927647938153785042743793503402237638603125583177052815873488121109109728046582534502886505081204022892795910631918980072549642315853903016713591967268114230776416509556935583086749755525240885424820585188695500642830377357134607337523836769507173134949052067378433304338859082592801924492968070931179690864411283577900658166370667185289744228008210666508879530311226881752515063497821327889604996103807442298066455609358066425540770752234558829363218681143167528221498130811187633106304048228324286023089142317088069166694484919551395751920845104545711632712273252481126343344869044997579572086939164666727441094539144975827248626406349098691026637095674912660258205969449378929755052015413995475157685105420963909018666234730767843749433425306095564514700451777722670044617215123351101017211952162842896334649554797570173241179688115775345291582877471300826239094879750011702903119989409432541918588394377215898194056464935445655630712581267537288700161642635699260197218785790541065685250641454210756603713825626205330978913948997944458295483810122274602697980520203373585089725891224346691104861242407382129804328775263366144234866051475495185636462736950870028761800649297804203708152641212989344754271356418491273322670912123928088849901933386987316918831026893761701766531245820524052439708568106320739133881044630953876671315856357471265197373684534769405959688898961207572037137417808101853692606931519452920028646424463820226977352091368072171405639856083470349348105885544111255567427359929288827531562659227477934760690437273567749106252110171772323193013247551164794400544119663436641668975574370796271996801273129887841663728783972236943864736574747086458208117691937704410736154133121610250714229377792822404648094082152359442317678703083126466277859011565021159056128483198585598014785858007575623312596011590580711318518240854771955471526829191839095793984566733623529187193560535374725990713399968612165850013574189401810103588159756157544483175696509391132858379684246631234644087623492674450165767865210030092455485039266968823483369317893934512756006700798072711614948465405200623214579567390898488104210011070404173262341925330794931584898279081779100956388677262866543468073135985825956355308147492562163117849973488522997866993178106917048616324203263058584900370152745320791314196475884851837775918423223749688579771387918842664209673469211648749886014706407932638281396749379847144893488245688283707529446180874050760440928194320267801976710333018459150845525737795252919086002066289827253412703462061741006516064660898406877718391133898499253646609805876425210285963104870934680493062068427358830901001199575848199456989217241652866805853321719698532794647994227383661349137287933557849303290800442926174952945167952446194886750465297398648732837199719042924126732816283925967876737600052824391367600821449220981154864264862356766949310618879191075603731393925448435704474519689392701360008162020865104495578294695050679218465958064366001960753702391982712515645359059167029552493229351787503389993813828496419668492911030802550476707018639514252464005703452824929202974326628543214781751662107773419733930676947621173157530126063062955712386443638938643372109542257410834478482850445536835238410839830795709905317533170893791596081177323625503613614340307044721757079835201079917417787100297639962393260271663759033643816841104922641100579265401462643816298007122699608156941283510493209502141242186061592733005150474358271117217738433974443260647412838219719799069169868196075792241348366116466947555726873691508462477753989177436772505909758264769585229423421219065327211834065969440989896980301501653004330310306952836734688550469846598960270151597794862282261785314343003639786397722673479179608314546729247008739304882563912386735339303249557133187098814278744219880741057359377957854119513618214148622993503811668381587596153446751388899193164505851289092598364761059757570772458318544491388607665993215561081225190299319945969970126834988463644013751389673057188169881753402040481232309015161917355753563768235950048997736226517654755884523428080604378152153165223835153942739565231907689623641518503265098545470464207158652976200179380668484335225491352048576507992992292237822711563091312665090846268927103687935826908900509150514189866277241910801681791515243903896842898017522187445834596075907323608475877394423817571875899274261253436186591122866925146462292763732259174073498811349006707090311304599301372886663493879174511957276184492940027783799132201911124639284661455558123497689967992704558637050788932081459015423464477037930476146724485766174457152727609589625182983329558650444369913329917306075822799939150981358491139645941999176878566969768517354266380857813933553880651542735055900992284082314914155823652590442392766994720553381397403530474098245613645668315623925342065232024926032909118035008869783833155335319033522046026127037067585300207412211164966096646633039737932961553480660506070209115000658339377622770842101419521163313692242828031106047534955238176745053441086117284349166844087689231323581651191113616765686871773569181821699917912523060467882106066374689174498117207959728021022469104746192480451105062924397893639630426531128731922158265084124287578200321253904732670664682424582971981012056802135867559438947470639130435033848095539276215826000979773934071771949748136246593093445646113114216170705311232934760809010326851346406006842838590572577739286560574224790917145742298640851743435000882246531962876325250795092870266106994184049218031026396699227053021486804833136051294327988247735138137566273808610562649071558647522511090540810122820381155380681666062235781806991903871545537707090382502954122150713986482529692685209805893047578139579939593148053416320768875782709081168927383677215915546488061034106576264399801960322530938450808189141293042408192875966245102121190519497354903661346629207134424646097158230004890241080986751828513557800027972956857860145926857252928659182533299976572376365183660260220118722420426817832541904802518949427812278259233922566191201097184040561796977857337276250117556895749824243797072856392944210844825556313850562422042099199819618289156414229590586602516271536901100258443462572137179272066445983072856907262628828678915112855905485601964884070056237483212583098718978225334685270638609261715948440200500793819078452010152256210073520143787486998560007861406375309597468508499282757349231403625086278850522157987411096949273993428191103541033112662082596404937629202216054774351880120474595384830389889945193916053669047132455816992434761434497682235588373065193913302004984448614259810490514406621254753853271853055050037609066111414428744185743014622991825967322626872466030465375327972109689616260732333394466687818569890101356258439630841839107954668276387984281236456318336982568836989033107933270703187814017651295115546122525517883580916477984013715147924160708621394738981933482439773802462617479547639601458700298387541533924260749577026676891865013816266434825387349260352874796169021551702999398212950574124249410761621354122692270063193856679048417954321064989565949860511510515859637948250047056003768318989684685385612885327066859594711496232771018110398306803854232808027282562941904486366207735891127395118062130474491947230748553728823130726811572853825511080384946054787762183313012234570959131450791565974409097993848038134366869464327552717772106176384056690508514461508509460628248797885012153784456216908851999993913388240669789855119188296259771551660699319453824278690001997007135920384462484870520424611274548625528472037516215482450883926300714866266354112991630307429702777026802325067324268673059317844199156553263514844590418517101017789097346659267104501428328406174886862806552701225168962594634485637463022754971369321184724670122411902859883756133652306014373496603787916086784829923919592370456213293572467687101830476138462226648153623699316903997527773605810689359177834064690454070213275390803772503245039929244969146063706699773216497205609904503601018262460289621893800021991516381629374095141357244540538063511677545390914176128969321554109880270886777597906717245859616854142784951996366125787229877391455029113760776038723280143088769790295835948050725511419741178563732022228964903217400492867043332450329522331835202325176735917632834958570754219016144633658844438790919348408380891398045898375979125931451066585193972247387983329057050552718977907452160195687909353477852161796339989345660355868628922787396578277977356860564646907176504645679332873118731162382671257307312353192608818231493623351806281973704493983844823353059865654505696878083717984307189606729541045517393889799520799859504920793705117684469504318029883855878517990054133040709121804374937440727746098514076975913450271788879280104283111672030461076157751208587528642086559275325419875282857653959358800153431410222498510987948506809885012949725566993041541853429496029355164032684065182349461160130544118272145990936386087325733716366044390114064731423785251483755202489882258824683100321305428386751478869498172070038659781731754027177535305186520845146819940524782391346091971061830648983760975878787266811457521505161416697256935718319507216383512646380485832253160518702588751462668722672778386578701893782818748418955774775570547167826483797762115346870731922376079613758259230254775446627438953520642651544400083013934038155660817344200220815260208011663253448738065152042240630723060314957349095782474989902539041627389566045343951440372859541919187636516531827704035286285546856491182475971485909900134013595101854207061972778940173229886476252508617199891960137088087681593094811571403028670995450162621052430145890460625539981381503102634113088426147763304704250706971952362935842733396229403843266988807591464026150529903176902297019392248829127122074633231153250608732309290098529113484931557420796720107555095287171899776632950242246564717468631735044318142484753033463142822927340418637606974751211643400173154600148007576444678639357821072006198194369459513583468883782662107013405083195491185462371838438451898787610554126350601924942823575072337998097963243631256688875907946273321776268279186158577521138214218485649503765648908855763046863235147237003406313994055664349995575457434540111475312281927963645977137490525213491407533796102083841824550819463760507351220481193855800105726470645233756744065044295006786589672929932712689489965361993564651354842437448546864934086062291888405455835410651036790141415221187751879410268249771525033174646141639364451162303580020069441168383321828238638585333518957164460497677493151516746010796675666057589782628689526221975084080492272881313711462815201539191533823859622281976424477037463637550182069018087200640923627589375096527915657836509199745325970600387349306128431327301705765393920067521125977576620020158376167216042222367457295374473709102726686435264994250624195869543021817966314608901207222612259399586024691001928570118492852071379807862831555718149498533785263837855116898913986236427897588183322763101222770830386274736273188615807444295043768584149346439004842233510918404818721184950417092145073103284929661443752997695517289084297229802311938447208982911838838487001388928681666590045400605294767407410943334239861405418003613775196894810248839297796439942392017493729365395168287298637685052479897302544894708191856600600514890250748257310186519908576017941031830962275891336017201872218569083415678720709961146255481742215920741542485349981162515545301530978630427938386325001864238649894780104170039553163255184593991721821527743540339991398786078665344973998038873239413678599674981945874134764797934411262642148982208730981459860247554608918023214083496339644746934103394639632110406240614934376115625572506549320233905575690175038354289119667008415613124601584637981309091629079958237708316496163467443841321776018331921744740768431549475345845349434674214756474306515338356639558743933432188072647529771504794447725450495645162734659890798094967193223786690756450450235004101983718619880201033892676927667274365213757066787153980390537057887042491232422053582628840893199526274084565235089572013697672289515614980193734824802840409298084565018314938309044278028559408791973610437870922226701469232715100452166644321379603629736831849322557101104094829108428255921866838188387577971202712561620836091559850679267298805131812121330892052331587795953302638541240824525527458281105036563146155171127043113656278209504681650973895112218992480001089020820033128873458032101494572721475257222649949642553748315400074761250543479497145123984469474803697494073645267156729586277913243662073840512067402272078481178934431857279844327166182513939627812070737665680993545231477630923327010018784822407056310604398528605288971422072107195696515124208690012117415071794279141149958291939861256241773822295244657410837976729049841545162051113555996696573031094571872365936465347449699174361155455428784012362664384849055254238383626433055401245294754029209011994875281003160888949849483612238928614023084498345418845714730677334283939041471381306861371603544152123678739450770147618655709544506259010242776887597876615655916526287184759586876135235945647105501094387118342991478375624062100537392351765179919299644091034782970879598859993907876783917702120353445749375483392035495428850833795740885673706588910177415495880868500096372540793354165597777679114361431174142348705848235009768766246906344581455068424481621477521352929757003132163068392445832393961993730763831512987479922452320270369556699784352349456142115254133901123307315937108320103356028905292932317559735683590362415044582066399742127176987512198620586914361157589442828530879647430182501221322517142916137280825287470288863236389418811252719065517018050774661174687773079027693966861884100741124480791328311015642755277643592718315009863229338416231210852472358450880832445743311028565731624313648642183678204480730827740747448037804127574593883411655291369578924536329000340787087627605911095884484482534150048512420877570464359716635146768334539665086895669858679995752737875294547704274845929888478867569218458758325223422946677432099253613156680450884794247202928275961350444287873380986454523783629316933103964322020158003816661600891713953038257045892715257685330161132581012759560303583410040161306860876628270918879541440448026603882538519429653587326635134224218815317046243852618382479181570345966195579165019910871005314351459204129464426480541353783694658506576761315749286903388636794771273516524113713969567642938148155330061997711484763531270550865135437891202770098256147536960081440775890215442866192340241247597034387224954167451030388119557522797486899418937683353961675971826357155344221625873815987245566441765340889868719589402254778560185437598819331762275963842316244338097245839602769011857122759240132903093436693894715372608181754565402096354578693128090329595922381814331430933588630455255229710021999913992308043213153463239179806060907044694189050569881681544875383330153440727815427334938924780309002126449874375432530697793686650021417303454365598990272402763809317559865173174742285157288646094246083194721042976285215315592150618568064377993773881860505471747525377624543187360736046515121550397865780154580202149918540485659277188755938487907675439383926941080011056697159567134476466396695253480866597554038019365716549655491963399896346866297264076039459713132398223028012294660237773704600674732320776404916395092013721152726175591235619621437424221366063896434664042469559825470709516279784094273532192718408702831141462820462468364960964895884057072732796990372561084773121880027310460851362114614240975559685264204900891504387296772341151731442757417271779123215556875541594809881897990628871271898042004601758835024665642391233039497604063860498509552805999614403936308930566651294419015343892721188105642191139934568686868052676447453011298767836848863240552595099716471193660512552747947717472775495781947143004360732942255708889225073527656894950067562933614961552985584321030567451801577410513116460946496337531435485821003239829728190110449504812981207711318780831918283478668036850627537199440798383918822709881668705965648956053625290333422803845385179570604533764716960157173171986533279637820239003419473895238717057955224666482798611238102240359501989979758594045042822870849111609458180812991581880461496559175995203174800713409952286317788741461949079504742504397264292849452280434617256238545353839895868442456500373756794445577221582614119227496507955888196572381148581834436712041467136860737972582841997324974467588213972344461248470766651501856202066590436040754901920642221840519573337639434865317858707904379327860019706233189109364836207789414037382430506807729059854162554265926007171027712592366090287172125699563957486800867648988950785936102771417180097323310132948674999858436276584115823811001718149480856284309347246924907697557102652079268666173746287359284520098374843941564122277584740282803457295022005843980401237694039868585748231384231861010469524593349022403045593119688061071704095863410359253495327635984790200138990153014712697889754429271126743354348583929161068645521200184036379978791254608781941925963619072002412021617389608178429542627189521225992363066082367911933011195801771790336631156686329382031474330102080078832968870360604567739678257252029421329190360547217759351842404473323222438043093594519152829901025901625618868361701503202473573892999481951106387539226768617695609229819997460782345813664225806964916649831546916018197859924315511007606778326154766562041640236998664298841677857919213342419694889999190473164262432536691237352758477017128326144333538307124864880944614062851225959692593504585720735276469429251237918024209461047406981493092893996611039568996515896742396272532617310525124773922754686076265982677903082458873888931757943786494460452633673516730384455860296064087882436646344328716970738781953402946323367205634635902651649741028438763588866131600819466167885403543664631520416546993793519119434825306335801554520902526421243328860693146139724110282490916144161592687072552798066064094172867401583044789500774712275832949303843417513259574564450811994289585477093866986015598802333657808830460610688614179061088322634979034977019108414745654735107521789512829784844984786091704072750409833881489595015514505185680646379648805360640930097002873877353190363913610956250996090293709231572333605872079003566924608522975788399890687695080736944998367411431957204318657633653180153655797001933743782723032269505771752114615705981170067762002823852205429004356479741485235526059833482738950100632100402035168234816492631185691312064224810503303451613794189468670115223269323938392400571830070680044727013359204120222638048215251817846463916533557665064525434793881532556478561741000659738684928955794506845753638773305890092979273460855702852287405327304742031076897274236468769950850195674689939706144925300126347711331979019136981656952488415977963341309810729151106964839309312535719941283492216710892029774295914360543769295856077442981686499914246565652730466015285118439095474314670368696028442928112337835810292485046767644478102632978198938127742529926643036861291428951290769373228039860603745158230084309095225056856237469377036083823137383871561588568594882135615072371420708240231453063409687850479283667045088319433330602127504029219836426909232921980289438276311104856371836727467296581072030924909396500211823529106628392238871598730326089720304480250098130531456636436872370835432696388915344825265035903073936897527554216225285616458783373660681546766588786215188889539402443154676268502773007340742432482110656975591897706449467626674544716748686731292946288079171068501478687941148088143743214626576452553447662361217908706534675158680363599968421984447276460341045967504859736624106349713617266899318748929854446092524060075131194952117776708811535470457759427368143060007591157363807952671185763021551053814404463504937522961278077816413705139800005784037137998789930424865785046577949139115694086471770720679799726434521879563596641011220740996084951862586918750000225268916902689026405684496290371196383304229247403774483480533029192681944231365728877681897707017046019328065628365743613549774590437872843919597431235277807806057695117785555458659735704389488198703943493324392597172276794224637967094444348193080902999900984203810357372671100802466921646364858865104212736335435603264099690328704475774174183197366060442079643185974018104827413955655638519099351084920851133309005544262827828112099719921196296395478372477071117929481774603376811072210305879155871766852434312790061338597081559147991062807542885085401488121363375535854840723952997743139458097774584143535947241461759162594970657960752366297821262825455563373971877375765558697953001203440889072642555443281593442990294177224484861882227143608582977012635719533571832459605326187226711941803261317197569337970214920845329234695639576688940659241944155365083179295145023629908681194080667933291249797014081387074711681753421364983196792554710479659107611253528700851924240908677738896302412942473081365934032402479542701005592777605356539657127562954261220114283522068962679593836542561916191536864029139125750141221767617485643761469769810525734799078851551034897492524526706351831163994011185600381652039238548667189856381661797284934776374855005671018549371092806724905484502285042541839345636396939403652295025238019588724466775209920632694825309332413650040909036468605001929717782187016628463531024881643594153145491090192081350373801150586537036389344452852407635827689162552717056503822749574535176643882744633734545859199991690977989019886869576869331783373298486818840764994483028985339377023420390222407612199799966881665031389675401455818159488486334549495318731785981059500252844767458404093597713536458349871016426034307413212352464410902507107589666274883488823714445334123806507260160370073035166079005405636654482350159499070122745293224031933095949314691992003963217571141812927409142380577116933714959901182523830630309032705129792780689027959596976721355877199655013867243925072293487538103167417437448420533541807289485441570261639494025520326343975596225883836983193239716149222478746753900446803313126524569840419292822169246043545427900678779266542498165798140186893990185528657664642757015095220778748771554314864119189562838271257986111021602028701408866112377326562791219729630690800553044112068296079064373661385413380507777761030837303612818857508544067881646099346601437824827773569289307100529595029769882958226640112138296465756958566015754862317045545355294026064482691785630374771138476479540078996594913463055843090728205994924711345745688192497904013629839544549183976020800605501341033169520446022364303510746291722901215093236091298566472798102355083433553907137548582228055216539764862445281953611202849680345066090161189931583585703664216222071452430325650260779310854817109405481438756998812155271141424581742736165735371961523279563800383481841838297534229038939832523654645085386974495858626978378915564336797659690754276560530888629331200724890227661679616117263872228458842150655161246774065487206629617670596368818588539812031238612250170634793285195176794389180387165819088479948369871618252131978959855436635262227585255490824225061855887733258871069587255323314692314938346832372541715962099165514291912984200954138946173303002628374308577727635704157810414407277748622160308184721428213575870755682419262066636984595623921376758241042145041885137926779634088680461262825582505628420152256636407940102721652776500040213991071633061724906884334099073928357852262214941354396721881243093188243019970913526612921922158761036963786423716754056359738340242488513922256489303286372331657992397005423905962829911312960761110867745060896711337899999899179812275383824706682187883689597579413763302989286013565716351515659272830157102487592223103148443489844651731366189054126270045217557416123784120500602466593213437772090119801484294104014535004708974037147739262109195869742971539973004453760788416444176118736123049677523261442746977871960341764609071049200361319453278829116139364514332029033520322171391804097502994426659512013688746678647813820537328122892133944252688231314886904184482968159134568183165731932768400775314141967628302283685407722674396056280976125925930220817423889665913990310384494223188239295058266071584091617642760694156663990951638634738693332834333354066134252678973013343160417327126901507822893879464408001006884796092739902928754192061934185532248899247534902812815807635281046723200715186496788308869543784372142903513970949373618882120042310886564745047730982499639752439718053888119156365153661293197984255505615882165232506727475005566594816334753357256318955595979113057688268186236868468116325017606130694028830055130211339115462807176672427383330607703034790088468097894316700840282713286738090436551459009324904280458158668906596609242087069868950297089387994358297626047004408799320719519944406278023155475132283099338855885758692557061078235923813745463238756553851576577741193747691986011737284796136935876858855758173533316186670857916154715341929657438372596704706371445615301161609325058231700129919718029610540049490237975312684601235484640684776112354573374441444934956083839325756218321603165760540031815308911262321382935900191260092401878646127976437388133058865185141437984966754512581221337465287619912762926112656837121213812432714022892916020818444125294304286868426152640597717116480448207781138164650556219237467749677650886521035574384745218917986305059582434964816045107482476418924620859279413893671308764025673385715069862382454288414012693720004344520631823944557994485899875606053955308405414311371886706401352216295673019840548341654578161348450964547099944184406216295130598572812784269680821907949972539485314317620913531601653852003517802593837760635086276517787438393082623336138664608099478393503576163930736387639682941056749241398234992664872442704409967456679894145550442857198523543061166280017702756244936363519946996834952429718985112383128625976003342180771532945606046663958990460435858395126264470142024715734050580453963729612453742167481253977931031928660967817759360778514876872136437855631786873177697772513549651576315228413773325787169057932135834730521060738813949027370813782530637348280306454030190461620782162149323540048897222273733061646651743357160872021344871907374406012783783810918381357015662890658385471870284163731422294961658122168770284937896517047234918676418612824042919414401543013930121908961854515659982068861270083660420948322946814676032206452980782723434509912974267722107892236101178537043987589568296458245824718657460819370506786906514895914144018842579790367132330766691240559044026433248819356848945581920232242154671059492516869964731335030428660763092381962181368139595508409460026495911362481669323280571122047470549309450806285471745509321230576429949567699725048176143772428994962858535934976613891388182445120874701316781934722497659028909914950798049457964936222042862870908348661434230733274790546556150495755629464426051779978146286463295418646632440134767958809992264080543005792046539700485694295650292042350840075552140785181083449570006422463188355263181704414493192664973567014374583051191233150188065540071734816587025873360152573500490066275088359340653655099427141867380511407213799879096171061479906842335821037763333123692548313738621845674532587585481658206715429807556004563108187133824892793824005139118501084921544854077879530965712662686602488242341241296100691046182721552696144154850220365555081100730569082010806860592881780890866356815883670795414646679283477440421935047684482299287026877279641869778510037470565284313972250272923763834469065904474071618323829855065466818690497857355143051418933197512566067247108527148243319458292414308835476875740943699164566244423703987784283980612885461810079130436971253679029942566611496248166451307700388286441941743902319904969795598660151958382445491173615487745699025936596706559237038310004978097193042925000538219761692118693674776871206325043633629249542570476823252610159500011926938928095782692030920426050132527071248358430495981005675309213062428862953816656467488491185687647964910697368316195157905856456724071215318721077461284655000450384859588643421561326158407898030303351528206218881899463341025048692672062055649006268842550959253571359752932621143033314909299951775054361804895881970088754869588014700277996415053670149218923683641962838501536971487078215360738961038260723513303126111798764476581217339330639006396288533703883708975851225256596426115157874550017608064965014707502995955908576385298741807576437114053672240850257878989117373399187997872601726859502172423741955780472236573923006381842101233109739580952683554025591732821018220013480785520571184654563154765402787921684394140503063026467985555807168369880617480321212378583069094618815049868916290966721733325940879354082258810391749789145650343888326433159515871066340631053253412362376515036893540909755835883988423919614593719548167063178130019094517483248803372400673666247059606860830890735650167773055613556983561201367294924870976457655383176276450835763533414610580209723431743626053911090288012892498447238171214421869048483952429123971410867124106290429891961861854541156683180602573064546454259395635147268138118059795637359422676672091492260727471246687829991828897355093516437367767881771492414286958204073636256396866180233650972799330133009410114282089381599800904645282975577606162850828250909519402589938752070674107211717490125233603413054516435695116223326360240959008330970529977409174968748560465265409613780373710381468173653420043761031430290774500426937789111759437595963321380083802029878310623989810631586662463572836743963626819148843113285806268032006250086646803461620582482691059350895478569686566141550437576048562195098439205113442482950978798555154691697232680424016133594332988757135492056709671262901353754237366931387059400361944145810231552979622902386064924701621902786238084864734265484945322518734140624311647481874452068579433040541196594485434461569613371102542069125420214441025652202033903365770467704879350415153628918553107069154619219912291379467556278100509167642621164595890307646046685450637430835861998065739572742611173838832276244231326863210222196062457612871112566315498999821886812989641649826863915828151491423018361429583248457598583141818796122745929608891543624434206671732464728967809441484893135830332734450794437204293913530988495155651051457186766327139230856401302964012783809018056331995712012406123976695786909031859433351872256225081434016196218390314302703308261443684197697543762931011149006852463372784421865275672160385638249237710225143082750004823455491074508010190712325127511303128581087527261493665707891518372281557297851011046046095048871129155079030017877046202942491473717728305362384372649262074543475464724066431781765044552335239245551065074691561967518732792112671092101917715955580184755593803673525703100526830829947944234387561198835222235447727169966731073015727467141148815936351952353460204795323723374636522508620358305327847849128937053750361305831478952132283572079677907067090549828657537260174665719674788310455945685848100390761061190168623034423379859615524541179732156679098384943566343233971207135737746306080821304224385303420842077900096036806965650038735701169312534505084159035542732770952733084510700011712770914951494538852093683049819510407901419460862547962362107612136658703517796250996164803098301168643236787676679435723177298212072869557753451914078591721977125088129661515377205617070778027568501704771486406613028414706761316656700038490921525314918494465674004447342494848539315740605656085711120194422518473674714076079162258586107507499586173714087080339988851626684936450959300731349641540730297107759104674918304563264572234135401203049357745609518154799401723272974422385295642317585541178241194187719252693824944040881966858276816735272990576527041112707709210013780106088558776658295898426123338411681108471236907517639561330483696254348536488867165516165428596390342447613471293110376277351137824765484323403428033921608243398986723953626042007772235113525851777080416083444438849398398332847624240583258548628272759089924009498418585097688268264528819450330403009088772090669740081499944719452861273631500032994928206703331714504282371390327260917360776415267399560252853565087598977886636588656958698355066364140385609668298473679101761106086754143384449356092778498507935011749703283419518195082005441188163928675881874441024603778437295658762599117164903574472608287679277588450264494251570804135786901009484314717592148936885326845417367755700214708920811525542505689420501602296331716029543922219683699327364595425522846286539407620878722172716115777987837805311674740204460162085170602722361263455842814572877985429162582054483148503161267962362972525850049778821756952558883895473580319440538356689704570492824322381070423063886830930021803172806100893149966651932400366680150967048825768469676445512945593084356454718297492000346686727633163319020549141502713680520035320177089417564292584637824632921202353102449193248036311961879699762144729732686208867412785761914220284715522248818488280441870511636863742434728612715633984789633325604328897804486447626154403773420748205911772624897526649257947650437956110398837027250997159287081258295866354654938501563020826858871797548025310408195038655097630458312908978926244313849753149196962477120263003764896198253291706414780981198643928249832578876468758305225166610080584602328200616609420717941561525291246904643905171811271441727060925337826121683602025983829218516530767624395871130666272029270788807858408062652544400958628302543031238856127617212941422293716046597986829262896078616326200649522702034641222216705446924850471778699845295448184524693753559675045203610642938102823253530304570198930487480479280624838482903252714594374595999806061767224605344116370361768964055386274601049778264331505699424571889792367480182851687380132283172248434688569522409263131037443243096007512910852431688915955063395309361200759219471137414497392209434604277405071077427406712117253724886450433911443831661206086026809544274582785036757284443803761442247690919973683078656231918241953502878855903043170010343636696835067498258942830087341261011378247994030506445978381580157787720790784082846556659884834085156045953161196084903867411632438326201767744175293778366331985086092175905380123068947346882752808877524385738633841634650485692996064859115732288294902067269052548327291752813158326504694688850188842842511817920450511675782937917617119308707003493873935386642951343943629500026754828591526517318337601373266129485181428200681188638078778979786740450210457480943056498071975364158810932222194940719730495135237228278630797261722361623372940673377717791769071214536339881497606376985108855751991636547574489982578380755217976894898635248032970925283759667974407429515418322097372198496260782095507948169692982644586411022918947408866345029284151937417128790051816733192501385179042632125792838085107480969505330683075819631837776273123602705037516866714437014902245543554923494713429734012180818172972880947066500602137005754605868133108482887086924253173889177487422757097826598721338500672605787793848717175128574171690804550475245230183225281618378972165088306744635024297616772789370409906881412669811681445225267334091471730274786579896584567113698308066019548751996237888273241220485986884041526742110308544018840862628472256323105478875787502464506852100199481896612077554934622404193974402602765983951100887783068196503647004811600604803521933636242331199911679095675431025608996364667809901455429854149483741833756035743736456075679147269517467526767769292605445446324672389481508349409126519242941281574686540647409451281196908917862346902359423788130753951453196974455870584419501267672780705567137619652639981074378526077549694492326320674169162057283999437554666504183543642602069366324342539169629370234897760861926639622035043072339000076642905997950765700718660564678527270231932083344185504094249919840483558826237727207406926660593466335921403208618927819352698063471261937925010253972603012066296814712750360641193600403984100509274943761013154212272997744379262110799099690712617109536277388472836326615658721745166806693154356052780954753237241420411351534368137320358582181998560219317664589163444936690791007769306625709713794165806831528836070951614853908284609143694924172374587530801580194944217463710907786974417254835057799149047636999924560268416413102683335728956405470346300187728268730978813719137913404576212459483728090241005092909943682931508399493478309088640405388941645956561833344676578424544618082862563611676782536044007491267930234632687049528281625557469609249580063065952132629215831362739821433809892086119980496468750143826578118571686737315169624733024712741885153005660495204565330117561402471180768926540650496444843002900820534278934189032691752222340048494004954734673280650050479171164524519116410337034557593869032977698520815980162407615999876609252480907425473990985076686236965130050649589573410307974952626092536428987653397951040305912496122753146339547628315683054387409460248160101225561512394092850859138074717065745700917500784422064391129173017381950718508745332636630358228861223011053205922531777713081044180397051337844729272425511785688843916478660700538744200502525935338471239209509731156938116740968410734215341869954178770903181911574733110063641400492060509335215887931270012980465239566581114107621320115390920269977122080607399594684905559305731100319339742401911534361850320409050275988368962061132357669134441281898642156969617536153162480068787648791850541850261416167797653480485525213067900462744329084149040633559471646872989694295546055422056533691174136493568758365733778322327331594441342732754133562663653115065805517712327116872469413618090862529064507834620504915875645990931189243491044361101157584535956957757918066692104994233425035745529627527403609244897109166155243262504748568668687464650259760407115711313357487544604834332705005692479566475935011422139149230934447327530556355222850226669490665022387047927790379997599891452566944481633696181882909998883770065283696790674404766216209277029915986826597127361582460658852591622768426500222432504474091001150023824677951061403805012999044128944406334438751964292770249656957264110639901172023142710169024627157164569479550242319112457703308997520250786020131826059374533222520740261726296119248845435211866039451792935386686858896695676623386595191195626615682073606360384797817683798251207718065656898834528931985051161769213685273121318707087853923470012715826234302107002507298186279642384461718832678068315676517650026146972910072653590081323711310826641907632778599682307861677326697807775493227091983588012819737292554699235267534811818632846506688866598857237455993565827523047690619411470034464283388853945872811628791091103668998037043761046724664931357262722805976908920887171477408401778424113483461437275536302775069618217770561812954297880533700494056560735896554266105305884463239675122144654249192977240319793156651996030203895692087615490224796742143588947008434863706031826838193615377409649203376356692594244373439531140390155530211426517873898837537823377624003734059635722074690663453557293056421192995656126487089447414482453965122284097199905216499297831145407853115442249268216099045794428441359272550190244865541165266809462157848533037379465080397278688501748872607654756681050133016093127995811709136021862450431204030004934419081619171202195757573415906666520860789290050795448082812643590954247177076993597989615063037094420826956826524167307077540959500388144787278498495395367104062307561441668930863872930198039154513924557565071791452214144033395172009199534422006851605709407628289373389928242067597414552617520289307260032142788005000544183630236176355402209105709109680120757551680863538975428706807884146826420496291415644369993118723073756073982772480847459365249594874017054796981278432581312042178169211577989560630639433251027697297555498205429646393101478654982537599492321159455197314621216119348128524019739128811598948057553691691779688070876494143000242385326041019497266371363478693602546430333821327589688752093824989962180092397126694101687759272892238057686901468150148595873743412120997925006519037770652730410242603675323189965611909280410041166172321361760202355779335044929074597648316161737415939824287064764975839475279434078717472563944369776304004064411579741134636362831898205872013169163062022992929516949991037046812410572324028157754221491540806825618872240639790875882632513082731107631424258155394601234337678668354282393448971032819757857232782321127972010801065398831596039781541773745139404058689981443377633625287583546690784123241662717306640632380191738590246769641467126436008085116835089593601567987282952626321993071416184700173461609796377621671191531321106726479397094894667936944291719972389819353784609559669163930286386659044280423709491173247485531515147406755704661699034681992992097109940836858123061427610613227511691727753405799191141943521916506544210732791880232883320576250859182798166301207606529747641141758397218849138966338047590398898658605674909499560299688956259255677438972431283457485628319237606434219593786451682559385497612666007201914337812287977366496385920639343411211594742950878893913440875321638920675146208848727874918902766950220735830259411959996997531515259458749719072288305404433985638432142717016976887128162356726537332932206701105085802119412407693812339618662555471061338120727388103709087227432861758178452287390307639916550352370030303072767187553749620847597706677130453664762528464154434551772471561405069485999817471521995722219310172154829866828275087021269107165058203234389737442813504837812320326349924301402019930598957043380532704589524420082477755017486692283012161363537226267343774412912400808304107554950020517589547594664843906040327595305888044510454447212096703786896944030012741093187174829700506526697130602964501173645846879536647748850337329574431962720583300511964777877876741357324754272108688715777899008563023157352629735204823586157185561684712337908289694452596678980548655603355762061968016793087186178811197318582236476758135687861369722495315624508262758796122639230564244527296881537670062399277951552088793052743547308688813202521498036903503117073041131717928259749891213768127573865824052336729171246452094716105044182520091517903401885926301611214891826178563217999519408751501269000920443642792201735079129270537668397258016514918664022149901375294547264401495477178102805596973039313254838814279650026735401304296672040115600497783326047665169519008183400408243396272358502097691021461531978310584160564063668278540048389402078748125163204515223493951400845800441408236369973408689086110718158092029443665234851305820450799264552554994906326518138378425130078050205938236257627093418838192815557313392021389429509669734917559424960106694258015615913441782767304691127756431877011415985600965352480817141972215735428352650685812769244827234495519994942321071592173016322954404154030340475888808805768218180141407664209030401573047952586779940585844640611936559503406005497618526977073576463886459698857771631541051839712831931990739199639033784583877332969340504516546436897379433620921144959302193548063181101851580720456208060138938271848078822506355938365363495701869991972785638411042905921717823897944659725131075164326575515471411059653505191616061920531464805324955875093213643050365704150839059343514050752367757857715240404889879618426820328416178614985155563690367123986581192871541888142598472652030552641159142627947621822492041430753932006035404749063431960999168797237247114130652293300446394078592314922159965605862023013254193075121058285670958504070869568640947889342284675166581525236371330098298996234072894012034679434234893331087300650604142060780159996459101044603293240812519897940426501138145505587154882968859338582237780403955914725943014192124603680717929023494958775344009067082383208287276369556807097290848896387622981383839160353968795390163405035945555117034006761963433040920625829788030614217478221808608058522392217140677368585053672668717975505147659645853218501971407923819169415353251746281535173837663522636528974953899489439717963188089853729151042053140689420211729583112797048831986345112201353430950245378525384657713400116854757191299867934331256461294444339386394337479248828419318993299010074124439278697820505028442978468915668014438472811861588405728943761482104255330179550629178797542078565450498943821987964137193263469646520693465719388337405951165183711314261026504046621727027262613729920291261188985440244601333647054827754880251142566476938064869149511040007502299729016272399442211144517716586294228663530388721864155241916190463740949297777597177363694313243369425864391998903154633734079311996080996060378427612826732636256248234324289238870355840019202915342692578552194388749253834159578572925371435980165560387782189345222606885602529989819793654316271453026907306960723313798868173462616492991521452020998268395673367277045041595147386180516260470523092726744005355564281288927350940090375705964616523893515929074480199295412737072362968421279931295300379713907075905672867167714859084878976376684601795484107280364888974120732098614091616240717354085268000081684098515712776687288426960006206560764295349303212182557839541685101154345812283630387441766434401624996466273622711345734095252630846058474907875662210702779981582828332096928697447910450649251749292549522030713302869240048977408083426462540605472681905040007767240653590798444896981881341092878419284944026833183608617018419430526752668681250217349717997087320309507824494645781494086542966575634808694776805598685312929656143478721059613209801092863274229713952763240534970583861523627683115423245899689114322767908676610229852985914190236934779293961165701017583870258274663534763000936530602752016613763520082255638140161117726776019723570098162950978234540766024167106415931573077231347115048428894651004909880561505115140589177634599327427142306068228885786654282716025959813199380559987277749098205969679991086982037232809611949042453090199671628165678025805743281104019176087803581720552877029592601543075232872254613323773689784827005548869799177954720892218650193196774469250788522821956103243527650779594592645389793155843117987716614389306634526394156264051393211415616127680564872015306804843612053564634559901571305573617354565897217223498717105672690624348010834469967820056643152783083343204201190305878484675800072020445226951573757331063222530184428609061232786058699569114375819804618253000116401131289934538967306341626012648375948488173900847848624732699360420090117798935374672653911949320684997342694435459907754399398093698613948395926465209758635909016439012078469877179530984339542007078500985515427024751779996872930787626983169770327669133666127610997602855487598901146878629199051979482759453459762833973815010393153111689039705169110150485597024230014609689011080395507214899431789826165654674513705558993798873606665232891756363547108689697560058466264178685290354861289525100796024125825119381720823539673175807680507720902935485830016683758528537681561121344563765932467225599771638179083704621165715081194778913992441746216705558063857959668566298203342368392356627633588238521791265463835124442784446478890226670438284638018590692005995239161274694083642902980478878160615311973840981744461231737332492260882561194973218987954908226451356411827786318148242304957617191728736977046615226363382983368726484927251220983197442044717064227255747282252501804493727262686772340014781850691949969952314552391188388998015144408386377796955483580206085745243804224523186618378989172047460543579840244232991927908239056783493823021055245972568049256490573133493409693620622419335202520708431822452942862533318178536186237671865930459260952772985828442390884556472494603519327819324895117111486565147780537113472924033869388341945657546370910441978331092397807096580914697064118146966976932661782663708131422882744055002845561671329821228362842658780869674458521620806047462832828168957855533265488730657076063747748431514533422068393507725234991696156940106288895033569424069548054706775152637762761857993411076952488750441457658166595265454927043043947901601313766029161729539476264942790312248455361358820913869052720966769602582679456260783876536733796856046493088389711994683484775621127912588098563556298038235598111533352948952340582760605987448584017287018508505051454692360883492847203586484805814196004766674452263849006209257871575285391984026108505224318746086515538707345109133012482660166607618114507306179847959809060623601464324836944900161347831074313116173313535754680352552375352866096527461570170231968487036677977335920523852954900218085853322302833417949063866798122729442903516801874673649214747802225844853478379664103263929483433540246104861309176753731597048772333721023658419273564695822058840880801987969893414621230436635592821306936446031991908587037874867678934303482854537395645509206910935106725656186447950225960288021460731779743636002062793482843943812722336233558794517874716489259151626502547912099217141920983747591318147102538933064621793312162183458182699773121938782819257511305834381624368208052402961870419937761575775102758056973437454091363848301170956575216312396627179462731497346439767044208276564845758504559740737404960978883569319439252770207794504388520812148997154506222672753816606350476496884454148933014054162030111896890146734958995781878806090382749632679590941127687687625293769752123293264334297495931458686480155326945286953471617899060622283703398610672127838854388228580447793950434817960320200846303933233943978831165918964870038494385935561062029627260206305027954399046760636558815808336767512496247901150546754016480017459596411577848859034201509580849010350044712342911124684168443754528640645000717312145470327484507108486611396108485336124505325815287555204122012872723353183473821044865511796160003490929556501450428414158559066701371982870323673995236379625358759436550544280914464905386145329383269980392378316410083648754939908789898972456627350436219584769460726076559390196435104983481344332444747495351231847043965087704202825573637635921960255591017153195450106157258074364736111107438711898713023463713536307474598955875330578489619535161083481337641497875127240187874042337768860974626571003624783103015763254856705220945091085674159231479019005612748590461048657102176993978556002291301488888690716755720585617040791349359536598619128487256072237868227461497300792743125304620899892156559222307932978335818725737442574309636290417824062630126833138635053435824743408649540241337080322491944413028049665451316421014341339520389289101432986717613850433879979037208537745739027430763088109767819179215037992470162077762661841492531914836239339476918571399255139372175235007726510726729229164779530361625688963010619214704962003713616439359777064423743530235470582781015234624921478206419763756270473944802761053172974842244874083040717978014494808952371089028484296641845195116245193063983734814608361093543970051255012158690146396600947247556660763950448400331583727354728784661265053324444303027533073297806767837603721543677517597522693139538448662326626216527712264717514829349239460296010130211325726229173122726002145455571369199040219127709150864409508922345095149641300270006479943684621122922362454063013444187688940202416014578281499263601964879325652560187759814635210846671203348281718680562670772886280143221595400458992998494466947086822234471503743253776991066334761513666395509233030808875295375352713505192434349377376309097416406279691010093765486685763768394806140925244542631900076644770107557985886234038083686363444096527949754112492119676405853277021902280258598987821942207763065665964650749072575731810097090873123475683819995786271831512627485182594219918723925016912488401526427624819756731928237870001721006618720387785108699700645442849181572396186859803217246712853689311594643946677840262005258402478956091974618339820308964213997359040902865685010627514381917651117828673467636970386586250763693918097548522983450601626077615901092210511281956353605984227106912408575163962829161813446885098701410689290536073231279617367939950276204139414842319483743815245701868407758794869357242596689872016192394374111869179754401653012798873158903458337908841174787111533682817182584421597963332785520406597906646974007547574769240668854146066143809639199502180262933942530798213988280058029511589810060018352514695350308048629640343699910383806046474685837683036598001505428419522300087297202039926637792994618349433908341822238269160872884765341524320068392893300573884678228908724527937130185570996810797147919295629757686815526988104987763163480590291768464957761761586318755490362382261921515270016177496173856806704019105363504692135264739694875549911382068187627537653737905422434967537364382415420078473271520637914423649928472287208186342886764117037126188929869057981146441926466648274767130887810194455761163083560992324040724045594848037088159479071992914366219142879549410649649360126963734802491652688566807360899792369199261295340532625115190958710137047856338890033216610765456985882370771540134317922317521887816667647574797720329376488411374641574997499795639502500950216590575689885508133667434234252556064489179232915060882076617644171315970880853629174525852727396264493695225756998964968530822810555163178841992789212321029946681820325631556539577403788926123952380347477111591917717683847509114960131368665556319107394328057670109863736276710882193428801165830719003838345837085471014051068973947029391834518007567602733159568499619305983766398769199730191807015408294613454088093349657793832264003023157112195200152440896015830292958078218582786532057010866800454022143471893849272493623410552539262819126274394395057889579531003047557071999062740219219343329644071726406017952217125234109715700188768706836612100156954721781055108324048143678217897893441919691919774139054229473640308398409692234995144144534744557733905366057005797061368070603697854924917792807511535814782146531122994849687003369448217419349008529168428098962837490384199238610961112961249516968603485429426322601038285112140241428479424738599460456978199424323447744100342623003458035673868484422297820545938561041330572981990539544739249439827895882756799587059920668960206234911100286599665657193233986013493982333489601190805528590475483258319935455550439096090016526060659916284312674520457772928709612401065553776308650725030726667084364192339360757396311726397950691780754046796065774461511157273322562465440719896830633456078422742866967834872577193723686739600659774208320555394410825027935158087916312902184838841495909655684206835898268842992403297528565906139202498762800046266635290340488192385390747492671632084785937354671645441979273860576137537443794416740468154498248150820174066891699231533790412717842105977856475461468139824122771983728942573857868407869201767021492316771467202554088658844854720890855322663028749823378226752389693652945621382405204167604786754818770331905047106595170699534525191062765456548133177154996440542207977696749270614027064908476214173824135717841005484873779272663815171855943474356650709535096600700817190670565813331131068316416335816617723669008289335122852522992706092297978149220725163242839346416203726539824671111965679473835748990957598132138014221250921062536390705456288430927260387391536438837702304601598050356353818990254517387135284282753140980047712018354992661450496345902267563017802570298263148469612035409347780831487636094102686595919949009040395425274919689142107540451042066116506514926198767791130308276378524273394027020643269608708661777335682055964802933835225967019852339978474872625829456165617358535685566036540206826913557923065782154093303815754036183143624961326328965915183818064352272175153583915502605524920483911376924769268496411802961965591995463698813520813530006265768875537550967605717516354722217648882564637883617819400608344556972153287251562545831986092153441182643752321513220755982226166715836153407425261781324390293928019878332638678653568837860376455372773631732298249164704311829586432116981765466587635707429771801019093915354349709418091055406851843990749727386558617774915171346952476937520944459716922710105545998407256738370300484445965978293586830553419801510059143406590117785621768221569706681010110002204177434836299800477611475133304180049977917274866431609719176241141140982908221596890062809365043867736374294164520263349052169410302828148441254888663397025724158095926370698374659240234116689559136275370211117012921454356321698393208587189297934114516136680994762951943132365937658896939193547038656661824853600668513646105855223383522378848269463005445654369098774096982029223496309921367054175181058349056385991512913089062407169348370351067454085791638094691507970840070784199351247781649196867133450804734745155236505361000712649906222917343405368910715009812271892070424706752794832225408630622713693095990316283926648910616537404247121691397189962970948797120613941440031208120678727299891974923097899311473711384726204447781674749504097423809577751286034632925941950066209258100299955775664518764602747174562659402840100131586556404737089192263586843140891716615294598704027436540353066487622579184746263195124649396361763476182656643253856216709569109482054184059451087464380321519932952438259343048434347866038981911712247930399131292058556220155389896284571826715078857905118833446230024683315390298566136449815352841636650443238460022430556890331814492131594387161637569203739907983655731409951401996783793820711769630109461409722995305758255569773457038572526011272292560719796645269161815707004457518846342593346881932055953586189421669324875508948339077050810186650470503015705016564723044170101076059351392645814973664697010624713252667608063246819695792000007153831470420935958181387691755563435000254896921651519159207065796750465704481551635296223081977715935780457864710809011722215871393310606056440419652616565837605020566433534060616679304088221732236160032514874946490275810357461765968241927319720231315821840577046702064754489974428004437208307191628701134476674749191368130632305447348313548001516476759610921335992928959503957660430343459293436768115918383770781291094596038993256748213684843491426656854978924172080320108505159637779999203002538368152730167897896267758608272592662954160436994422562859944561787739982676824625205380760610190925772736811738415832780638723341882966432792106855375319670632607430179314910910046705831040435494334853815377912518706335701159477732244713493230899159035848366003716307602760939192633481606605724174916585091551466875824467008581831771321767831550414137474723953443278359180768909037560651381363531283471620288050353529884835208697412097370383439974298063270107923610441174964766589961974682112782707056498782320921281023030636610671628031658488754426051142409746699288717728195542647923615198070937883789457542606626058699017785051615432147172697409376520259440823588089403137821364234105468377273152794521639521171591598768542583057646797956903914985278775163230573192684669987365604490933196968359336924614850729623240599833458461377983288335611677036997399198937220265274346314950908205436606786434146195078539430351557110475905988191386404807944911265349899159227113529551481929602909207692533396481491066695926035123993484534477482698385060812737384077515602738814117889751237278168734747679005519776318553219747461545615696581962307605972371569668349675106107656230907706590508829278643414112014551045026160995790073747955588226014616446184689814740626624003346436062415760858907573822861916539716726455078395841394214143406838419544039524646844247135685392093195065556968117632722507734672858826052947604733763130940159955028966069292804472743766557797194793107546630351810508484694402464601368540160208576134867132539084371012225935494752593643564736374136007108625694909207678923734326530961493909439369501438504542600034899724584161630629598921446419790549870902656397271736124319786917795414732491305504278124935280534197315901088641282447953934050590219503451883469321018710133333352711765458294632109651465239349593497142030821384751337130086316796475385673072493476314979193192383444797046941125995338207519791380829902637296935774508640778811315261137844332268356009926710248361297108925845588746835404396307964172703802564383078698603851110736617910115462673614026375439270681063625451044268237269750016156608201832835267849741512699654045668042181341785586979848938186843272097468106813369751929786601566156409710955489481942137577616183012750159096432474036012767311955487869232999620625778442547898652251622641080204700646036613790220906030635530251384735517226876695285787020680240637980646823423704006381148237189139024485536648686986896451204102319754002958126418162873130784689897717126823735737294364093758821697322038618921982720547684742296508830467265181335345750157638105716212321507233563944315072895432037908916561334239986999065328092260703036378054791722207790539972114825175051975509229953896909904956567976091016250709933337180083044413685572633055106171086308944957143949778391144428889264057807943056439501336290257050310954944318109779028084263686831161753920041651246253635405117103724806140643583943223698793913021861556077681435080460823917879618080978149808611116476661668169723271553627200977989333019130874656055804423014533267985332233854534504446728372949740157616542215067285303050203868991029238016925287314587596440002398746708954088540933512853937499540298249681867685381419707817484512058593293847259776240469166867347380626592372373856679703339981816455332982432735461048664156247038738941371343278632232983160981482702456416371524370787804315575898210295913079825505189174781560576432244566171415582307134702146361368795106835843017247024984718977040551166473672963915429766611926343092863661703296568088975408973455920649153071684139589378326133938460328038556085485289317714140447346097940359044732398940918756213500411975301733135160385716727469259293879355239230293096669983111665789437857655568528954364418294632255377971873490915735427075401614418074733207034188340964296025596841020119217934094916048035911983652444176076781929839080363076442476983463739979279425045539442376470093202870859815181167280348590747116917190216785378381948061162879150510688922926439426033447480155379941937865383012371264710745195549228974830825930794321467037665234301812639708203320606584201183169430400679401970609320062698476604390457503105893918112557595180157752004441337481012904089785190112921204470601891620882521340001115496387408902373979808324275558432732585625482691458561654520988038758553727057857648697970662431956945402058823532583808884053217376607458949266078870923418887363139826830152806559726443791922441886438829898885821624467286060843901742328796896676503201217954297313874781754464534108330660751367700261424894057563637144924068830157189887426900142779452818121524299970753025323077514764790575912555389599163065058590834179882024605984567848749671005659261454577865796740584332555599377196891296471974161681984528770394450241816143946306919059123662405486113664052771180719884610549818035225667631228784297002036249000370309710679902428508335463627612535022700670564236753233268815247624699757343056211585453553756429549251800151598986417696536076961369592429771530414382049822890659753822663984257059066195191220680590785851288709505911674788048168645755436534293859921198510151691887249557619336796470015057909305248806983002176519563376229911860337623829866502729603163945811535624825512692184893512861631369845542317111315671866445376379906797730690709562807214862272129948356696037614029287907743473363907265275395405682960121329611326654843769876236382271971978940803562701167729699134345257120977401572516685225237314579127134044729069467395598621767326833092088951364549403905858173188782913288590066972081574451957943901075899631420070726654581094842671967999034183000827072666567593858981007086412909141625134665701743113548573800980883293452098549575110176584111585730825659832449114893266438705058923854471338312389639163892496283246564778378792866246990760201664401334521780316710254198425851574157539905976462373929244941964234879991392993943851857707773084021806516738060294683876355217353219747936855712587016061858108329351270757650736728914854772044533731169340004072968511820388617165326997235217836443278913543657215550747099317712636845968638094815237354977638873920058502790113327034636965386450627956259481674913879635796514300651517148824341747770706886267056541867018049572509194988895779095581363481067361419098148377596435253790152895542090611793137431257105007301322721693089830685887914828134902267594038166737631645942479492088602120482061392527492704750394251608044385320386973964784106996184648025597587984216727545616590736181959405344351684357167008404561091331778035669236935317723039833199464389745586911555692718269281667157130038875781389698312319833937625413823369402756467731269319928107453771376585059175313541224130463442311167758887283060239248166521536524916230527624969366216548545982336612782622699518660792732343692645856749556875601618517745798292393415371196223928570133340449131606882265337641023120909787832432619020322274944268820682753265542457127467443643841887401516143612920011059323352310713545526910845010963592609068405783972866291761722136633266482506490934361510591150971444640029495128418854503482971091003277779854918764111207994846766110966615884155198908067886500688004050340641052738607319577041941721270518935996666704704189643146005226757195124548165777140486628854776797237868871273739245718641714464829340224315238534072101220295163948567929838905445573630098258427270437709491023141842374007115394562857141429485622198576347298260212752420856817729860268875039175099730197855965489635150253224302381460712105678875847218892763442006716772545362037396691219539598730843588896427364278581216358423297941403546176319002148593164188952348809241063581133439471927104726752951731224615852625799348662400712404323701822578486425822415349345998492558363192166747401867113654836518296715839230228706269958699136390972795847448815674111086321250630316540425314509946477124515640707698353748646676332932127435841928830842741423208684619526801584130257647128901427437780847641148414057772304525064665869663708911273594256385583794011687148541720329113322557609118538897751316582206086778300833816878440763083105366770106690857020983844109070427299538033758126607010777868516396381245627004042185718403723160713757152104683193632880891577549838408545323618668202490653541566149047759649961559064461440702315468763247693170285206870310500148872280387495371584595273301827606672624346743220843220337368527191328183660886678463909486380645027401862817101995071368762184673687154834128175600377723472834853135863265014477962256327130707057267264275740497059719090678598571606059791441131822978242907473659424435405710396048987660372351405914863283533861388936354818168632178745169353160472131473141103719665867671787734309797790631117371570591561313234832595263327936683503320700455793564231375705303014049861961846045896142453907616328755805975808431390409001877858950399659294670918936590104351563631984504158076265831791029504462533968652492508908763765623165444461812510414376720002591705044911751857792049821569681718332567959466961874485092040805042007280371069169593239172598846350302414163487750651321873370647645215718365777656942636426178343083099245354835517005614800326033331553222809256548320776641755661570984573944387721129801546562445191859371858003830090438578862724220011885578211680429436102193815676404590781482964970803283206225972764204011303049067602724892183571849215416305370748456885385674802697942079503742825387577677153572037354283226497170403909703688521392467165528960010673987961885021746728908369795235320982159956741937367364344997755283689167659689490555948496162948690026100677180662554747572837183248304700664680701129871432300862718226740847078832785276102113326445956399914241039463729940821621669099287181469264387700471336886100305690896839368723497847998447679535166299837934047420428208651406462301881812426878521910540369080942978106737227765114788794905531805149533277814467107055444244566787828953155885074851791567484381363889463588099650411815574351064342150501222319729707493433312358231809592703819178095303614510911857228681925102077665183309592011746948415371538042154467841468244667838092164022097409106980261564985720186292943956934075137264864794037715766712230587420202424517273972836468650280097357764591850555297582488379369043836159283109244630606989951423137461137051161526037912222657968229418293066187394777607700423580394673872216053598544110118356414597641099544715894967026910793374250420271764104097780502860274135305433812526890473006157488719882375211464655233601682425642996790629888245187691753360698608217451398719155626337099005075145471248331441828104878823767200908956484627259645116408257548847531993955016611102315158806050401816903001329403642702221232282328846456826770354036146485358999136390950367700799729916223420076964349579467263446244056984622984742258410386723252341707471431551366047754027959359004829868160405028471726227358530348465192545351819334912400458487756452081576804768824038648780364170256426216797884207318905310829501112004098104425665630379273642666782357929289120086116464198358584458414864538950863347855292659622065561470159476642003054151636772828437226866799170349288147456764846134987885827317370469724606194048904007785129078357793591818943848330578837467699820870172452868466902019545278992857564062413505888345950971429809420798373608000099026012223777033220464532995466411141381140302826439345854966802211242093744482378549104008180700029280570232326665031569472664661134813123183108330396423954431111302453730266285960639296409445471546164700321273419918670530445783104120112949426569779638265908888404589328131063680019156575713732997876911998359133025622237397444599772688664821735571934877566349931557415114083922944873093973889727382163778059843865181578400512639918298099402927503941449748556096335490078468308208214744445658584216957682404109333331094995656016507729037556945780047269861771944047868413612406572330434576555908916188358299744679255658132610119447469024210988849158551521406814453890601371127926185953695976023830066166391413004757654226353586788496180521583087616724956427975804428737498044780186294642246824261394829677849085495840098258379581260977967863511838686571142599841665420116738985215262352469163914009151087243633579230446483175675356856513668972388576435429286659292207954190496598458303991021676969172496567627598077594919204710928274717295137119130496247015029573473587719265167794320210008486803830304929888732868418382869720696583148434519277043010134784524598655528271739782628411061308034858192163974705009879668241676404186454116391915672172879375127452759414127611065333958200418215401255963403601840384358909563996409765049114688699500907751664749119238398822188465939108159328932639599619498001197038044469070500519451594817024801458463820309291729285815194956714066578442319696710624717334093675840646263654999258214626256095205325991354688711735921465189422610348741490755228022242989110250664587640383135280319912317442779150245418879537286610855725860906311397037107985694932602129047422034818636420907030016788061650932953953429049738300296179522639569806121892457247894862209566741723473224169080123354422577922088003491587293430626288906175194259582301400553578129280245376151815603714485704551662710201003385050071905648295824813592522059512910206928221617478199882061972211061148795758985503885427146797535200303903205644905103613319417572065625233272386066613444660202726321842137133820886543693477854222724903710225551182508595224504927822701341609071210724405517766745619105503415910162705457996410686235201082619146559473393590589992559639580513449636493368931175401818576470479535833474414429002442289410269254822327177874983222569982627636102406183826802254423988765931915583943812692738370338534232835170119938854333535669217624332603570085408543798422592349633928726311788568388248740404187589817334078834032308133481718888875532761731879723333633718197951421194537526883641818956436267425055080070565846926018014671370908277001936971056516943809671061169992599845264769226368203513069660551093400172788109888659238499584106873208651761695151227638152227629332500832032587819607150232408820739233245520606621099397535001340544587428526506979146969015821847392392970468800477470013130651597475364849794955614405355825466898798765442466547560875546329208358902003656554026358695442193829576094026210857608920385075722577892039034918779271419353315084328517215471343874239437113021340255167678270299157248268260602484392058455907295776826776375004008841002301853695158848099452255124337415092698726218765884567671142704199570397142457941042602440293380477365986441526441586196122401298450523883067044896880772430881895586581002459074153264556992974456459705368553000356078183967187233408673751329419370056101461334946516177879470334082482251409442979826332351456200068360460800206976357360082168497327059390309102025647164419286638945818333811410972757537608239989300668934628754007094759123803827441884131150510903582742878777051125077105737342384468594750346621576821003684236649647443547870465555796778616837647225901650888557773943921714330568685275867091735260962886203896739167826930050341327995466546149025138021800288835965823014077705483534708148470688673745382332579601502024332245446148608209228481787459047422634607299144307554007401995271407587024589861162050681280870354680452648397713051726754882574124844279645002839207567758273416557544444709004065195964230724570073868242962642483713479973943236507782344289403465705077044366642187733509718163143235589219725943278366349728086820045856113912456551166521962031834090581001742054604999178070941057494672559753067578409825676567496215456708931522103966782549623536021640948423044189727182237080261730665436622598389948165851266827165579054623055173867302558488940149342052019188699097610122763306954773883059901255345540796331286395361655686305356205344716418386698311412197251394898093184812676014602778151507571319851794320737660491563492109140069615914515959817233638747584597803424941619741740920434522130191437025281053692424113427986198722377916921555765000088889224863846313577494870226723290931345304425195460223578053261213963984320171123751596711963963987088526191640868566365550274379684515195152786469030850812032436993799187691555788162468601666288700886883554392987599101951124791441732412878842402346610924014324910630867244231149773465612177258754357646707964604163993450761747512026986986386808609725231506391496738544267408918681788989796261048326012721702455759186972455952655130022346048222759833174554127961181703466311096548736995359763168760969454365535563381894697020916742126894998109845564656464617269666935201535329548284920470237359851797176296808043520973687770872070723931746747189022978136962322950653363295185215220869832393997231260140143269538150172305240047322853109199177075076103311102700637831528512099689593185967018462491857731650428593016358905442671510119133579056376989084709984496529877168479117205486160569893520962713706408897202800800271958731915717876989700901611451529659701092164239508118484219141111426707976141150872393638478812993776285549755408131040044684352945992929884869992923921948954383053743911948552905746351121703731894100170339515907125267874942432412715366826389964133802224865345690737113068817367046330651347507862635281300947495218636715392763094731419726554118601086441998103202050510148318255268473808760503021053984662928540227596367957803114729775316239174695445294797424471668830344139587802439643612424249117021037425950286140413553678131423170819315617301220957985140013425643841878779534921082744434417161248504079156905873482263924266422127672855391724195459404087087979122622295834655604843787184369791521578639474346312628028517467363543673513446782827439268264306787105587388382510648367334843872809867972768796503961003767303509332947598417331135079224045009311247090829671285138006007148636035627642291147495418136975477906793492655043607946124367382748652803813387551873153277941251219721241083493850534667356998009777348281902477563385776728512387972118340472898455640687639724189375318256464448866935120195615278148234989830258748137859139955001266358997205068552095335773190970453205807561241284818736119539140404071583344530588245082904832055290468940921316104686100029140598397994153760222463020764633284702130338097216659216648617463512876665504788083856842447131745076948926515734986900834908379841496707276083958134662460390514747376499370877380221396647079616255579577196347926883740541474568982608420111420540351382075826547667683281389375205223634145675100989642974456888564741327422245798713848119377790725986272995152592687098632014557866819933589958211410052703413088601562645185997015000462096845844533528328913176587359640651892530869335681325073108773236660506066269672474902989579044412642000563725749101693674002249042446837380305404831965860460600842052290096411871999333749287094426401389816285979809681946247612364640761844118936052580266763677157227028303698107977734142696805679578287128272772559462163435485056939479430547176908248857569653177198867190068205232489868968125061606010440521874630313453178593127236903874953351432440840405370750568161395157371648233958151950397753098635674124166670908764303528602293872963047669309099881068785151135965002064688104282775011077372140327927943168640394775059373194391804192584732269985591576599045587305730870912566854095926637742965710435977703775588447638643752263975089213536314356245307608006152753360603849761781490495471760114948334317359092783594341798919147316637524958294245107630171383492385536422334992224261910931676519578889458786515128054192474616514347522856799047294332284213307510362363000435214304446546634017471278593352628742814400678969658276734355600506165739921419872488020421954566132975414470228924844525736754178519677642511224044514939825164574381174884303766517227467544866979168750451429875702640170176821233027467062013766279262348130890628038025845558365864898771625891197651753835542768753283928145627048615489792264644823570638355179270330016749779918866121041106218235887352949837342213350246142724256493747825251624638714339082660935112077071727775441796718144172357046763235537050786232172927587265823865146549713401008467201643833563778822086088239643296488226705020120702852875810799217023193356705647314753272241248830574915876526792061454674875673198590745794400464858215614463805820816657545632558367050125041723321490486076878773224656779211694551013391000992126903794825056610109686560626098219189815218750438027566534212632699122565175663213163860198504153975997719612008870935360494279354942465545905844543800613491460113620611594943375717974826725131476618275762971251315519540697082313559854389099790967408488855430280231369890766462566805010401765352917615179920662310664067725997567996921834607318951705062468626991734473409937371016173362585531849354104554562654427499610856820092863263393299607695255793962055836861265943993349439832901965416880696581257865738554698370929503787982991323567733705066184798662954913948452344793652378764474441768618359671426305874333546420075200626295330112403071844656827253681904435564992823840466955206384541183406894056208163546505881929451729937139528524199913029870753801419111399103380259498223365467665616653528816439599927635163190357425774404745506080292961623509946949149089048347523286683442445044827445678027262280351682091181087823035111156138234685261809689162357744876527447896339724452064523764321848829347246009044055977797577170189777703114364481026674840881682238849026643646229012832345331077599484396503565426381937508789626464113272245709073064782093407839341144815426434471239731412343829688724528158007709206663363010847300990608854274591259173665618414716319936311899716794351849278058230523578152685363579178553726669280259138944952488900735420119698244124242626708981614249687515790162115678455295691422554958093057926554190080269365737106183390826594117543825094709161574140927850612470358543726348411407615452962258237757833633758875891967675097107303849900818891771555004127515150542174182707253982146091184911672556340240468362371091971649271932142903668862029676771559070101269159574568112920354148229680876969563834501104974569087442717852234979804435153764545080744356935146538166362137254849139931054086075722421092082644140823739697707550520668987907884965312404251230114341264544408221731651262439090089145159427013455786223682946450516398274787795491624931952445036607049018109270988212820609500665519750044659219213696227334101629481471174617524226393738809832023731315243957382954746642910216346324722653625867951721111725955170027133861161624573053396050135003711650054505932823559090907496769303145407298337797954998901326414179360769856207099024782537006072402892155550113659429894185508919897578671882152278829247404929336570188546519288176098667843997675417668440772011784634888626387755270614889145732902149490033532477623656121768979373873154761288389713465672932865056032818095655188947429187619897936010261888083460038645332971279284068300962785563384430347899047561401617854719117488048169350741475681253513023102635595594380295190791070472392945363205873132141104184761537974867900062272329171328286978642486449974821113830047223049595556842905721753232535138682061139853799057121314091892602225258504740702341749608600829918912445469102748469641356649394189113125383356966671276697903119733963056156996377011336016838745966780872045507251895500807536757467060123883097759347822171705140209399064979913010497315690358510426383249396507666519490358084859449068528650265911003536668903637507236615432257689273776242399970958581308471910907987771286197516670267170092560098579451579441159330184483647709827720424441794413777837722738445269512951129369779013579664821024117253759324953554435953054910427850895647229828478288353901593833475390164663391915118913431496130045704843058976585137250645861374102989292790256217215297137771601560207617723563154487916954781240803135321723131416974105984281015260779126197064587934061250321926080570564051428384735029016427550421358626592294681386381660348522537117828996167111383239636644892181503087643785588819769216608978337550539957121085154001811695830744250701698801312569482170401017332211284850716938771652091612927057408715322535813287494799360596511529557795149998778219605249015425999483869074450514895532985620312599664867425163699531390739248660180874159201785355357859550634579849403449761931281437330313812916590194262495955951910762081251356107854174149772042686907541065571245276158563358868288925649977218942674398539820726940784093924562018493595256326499398616274459793619941781210720945657874193788133409991857507318489415034494660092689830736861112487449047998661847570871342927242814330535928660853653035475544160490638509581400274074633610859494263937841956518648756763718456666069974409753144691166572489163927185934611473827582963526239793291509638040432939616805495552426609174898453116176824246196368829843597729921584038647424139497795878382226940881310559851805644910622886316559294580723363725657717002628130605111156440876508776821879580858467589295313401708775367130705531489482676990962185061540242458783553138123668341145339131964210808744177457678739053472351439165635143226560065600577202363776020621719795783776138264379764241620142112462861093284481847766898734317718391759967745190915168557547348058456578940688430032937179722079578361779056471583567279100648796219212419994557625025046026401026180889639890038586989674271326823013296189050087202636839711537678231934410151923546932260911453170533267383033873368841652734947898149076623258695109618539367507613848016853485179448103165198868377599836704703646706963166329404434727518455589694117784122462867208091362032751300995398832255783678617138310410921365143102989596899786884529763506916642823030203729591315688089621034331859657057345999078829589857341500171303132235560143719727981220187902635811822434931963959569491951791163577715216266321123770768817365138221258759489565916663748575710057481405418972687240819330403328324326223385002298952493147893612901520712809336271353595076739628236998263714110768098152814423469753239875481464438738052105911350066999665424655619596665255547986046714999302913984179437461422461573561289595328007016361279065218743115616412229106525794694298392347193123916515883073555824658096942744267021079917257030742069916222399146543167903489254361083206898227774227486942031017540188789454307453541326765701185709370313986383844292581215543110983665495286922212484960998467920592292906187477273580834089138176602491756507718909254227829473299855736680588075096136207756399625253036416962883341707183179183072916458467392175242905165783694166914088463239141495526101573916400161865133344811675474013364275874679761097742833881245698356215389716363516793490309647062669174147971131919062566071823763473538760854462864424942313842076897014507482623929697123169704054639189427079096661501471262933489482437705448866013752717064098953467868347480373070890183963306465837482453681292129927149521665734427918130622983415911224389728057899621952481866151930490096223583357070505032406210620166153048372553503369108813744817932247916341943962065648798366391502136874371648729462178501855224610528375747944237071963774401354449661710528442476093012981089361502620781594160120826545579897068852463114600625957208683929645193327656166373939181640483464923396336919117125319844957927116304146346421229497790190953873599508446304777701598311222309254968254737492890712083348186344834415411551643510401026986704745483797384197721976024771202204462912603829860806983772252824186967343166164950496028051836642679957552475185204992950341427245379357025165356184117480608971789703266909616493383260645616388370072976279661853846690437878127172836302517453848472049662644683202460403793755441327828430841543671774285123095317503105266573481021010802921193058649149291573011645991223916535759125452713967461473714545477003750154173301564476997127383355371436475530434138552482373872962633377289082075876406477551311036785257656991006016536000550790750867073322516036272010041399580329211391603159424495329984892453780573833230752518608355822421816973777293139991842200246273810131314366801861457102765193184360752595540975073172188899122541728865308672151984633246257779113993010491925100242724279082228992228494197253846902274957727209439250161859920737402259746967855333138922766552795867142819624687716019902943119122749145253957305097757856431988033733680731258511963290503053414898137690772215182987127751937431661682460180326926167218200049539041829148224274423867007330799043633714226457154090500315840853264807665144236083750116424624585625472283631176925306375917205169101130154253095133124409625462591092357094976543682957758430680700308043001469585739083451155621152051242453283076320673919195340702018731647130348642809509639473875285380318566921025234011867632240891824705479213730530802464776952338518737722223139926559196801546231433417849630671244838489698112605261593717709172813283908208128948850709177219638195383572714500899256266082921223939658757008241703240743120662403542905677787314183480753277195659565637495102081639944323602208671062537051659563933938387076276370871514413589722446260163559750409519387750435159801304780725935793796848585942278782465855004012241450118029469633425521157011315067742609989365159175007967962071208711014130319356113853719879587992415000186401125822540065061597842030045072439604079385375531843701353946438678440569488765303947336001578351067525943421703835181405210649387628464392105180069848417191999811993509407237664745870113329512964801444524616551392909031645684530234961701632850781764498816194668189543802310514013464545168787056341264426952093619596388148071610316831809937276863093317201735656233925438768797631313403345150495008020881435295407710059057330459771970915698615532989195733597190568665911177048810089190736762558721467177354792492342280892574494967763069381090846438029421535711863553939455284861656532975105022771543102046154546059890392955098161096357312158654841394653129309838976588897100709234096863515368742094644141222970162388525378203374533735834441678869473715840579363491268189287259647679302315149708256084692925735173266347929978322953130646014915045319576703175041490427313946988815265350691541502850686484967513712652254762782489635163002342240804310186974228018194304491190998163745478973480153023459682988958719727501546224830863698508598751940683342703044003421298303137386077440970682472948848380832513033307493401137006588089910531132584674204598217782505081799904308780033831098198382677932738081775125805687805056900095851771687667954426107389889633826862654504209369366800964414186932189511114651628936720039113318260116284502597465744114079807359115147677331359478054261885962996002865155088514618444894573469747457754813199118230348835735496164841972965218065271565331393899121966591691500442011735319966027667975660366996808989152498883924319447063822936049570918745783913205521893401468135589723411106422034061043572071804586467713579914629119298745633372165893302027213736905741332215179441225977003683436533774834597886794464748616372917732452986602049913758742336980562278531606704627906502654179471149521219930692868424224650646346020858790631736319191802679941861114534086303396202457270189773904764709699887938886764979372557063145489353766722294820173594557975296490450354414191843383885984170513859905827791110421394243151960931382276995755812788585987825856831272560982573594813495478854977403900594290855252482774980163437341360400080355508930883486720658905489440167222413729713644374194824202851549926619767175901407982317489324946785029151916131830918595643168568331325243772683381944239892663650879646103162680568868123876739869872298471851086711271437699881298940940848190660336420253898963152275343031503535602751804911779146024177213517105270686181814492275496515142693477804267352892477703410459057643662308903427320045080448090316053888981631368997324147837974472287216197501496432455712458625242755503702121489252183622068661325009449891291943977331061250885800267320645021421242178860222902707269569521593988462588345184957389060062563943043297588992743708577891157546626242432702721207746129982236984152275869447624328850777292375329494390181662012303254914369437369686100979672926682219168696519359260641792149839027950493669660644814502026040899149096000314343132920708430853492919835386652155033109247781797653392051010447940153055607082378378503067099065329145299398683277342575999279324417960586705410047135907023883319544290452372662385730580442082780386853270399213156371497524641240193125714128031855504722933672203049642974510991450378293965275920354755597216196029793163910097516289841384616241197452412220153915313095337120865089899223617586130783087596352721887604638732134342643469609641760607841462475619973101886205443808069622185253797635656439149172883276902816896616676739949082568475956075863682263108635688814459209419964697248418219026250592513227649083783734674094347138129424375947017351093024924533433865251846267409997334802404594818298111471309268996958088066534453868048234751744563435446432516321449624271565309357945452933067926265669794045672049346320094617977571472719077639983478881814799444447995115776454352237871259931423853335334199412168132599735209313333510458924726424960015193767032322750049590218068012111765445975820329542932112309844844001048714255477148976274997438589415503110684405617174789708779627496038308923244291844584009829154964175770568203076480641219286736106262026523832233760174416593187495717233030720062213328025495134148625359460950275392238548719744459453160410169652617354096671082675085914214126054213787921255364096018800471606248375754463505073165225336940309349292390507346911962263668578311441863434322007816120197693185116678942084807062399169270609865765818901815993125501984910413963906763487179802275311655452696748673504419388552585648602542225229899396504941015605917483429241440041294219659898430386269595058149641848621780380984718676772279342229286600519384758650200192198218092438276620465689997722309257597366328960610950532691038341471716126872621038491404370647445214068972002348964262293654095294850430687270182935788945271215646954281238057273658542314964147700209274706375238872677037466546871985922833177159117423562941332213509907033132961262299597273864498536037664351417551851867751555876545235038683115798041228704865276807069240389109121270376044803597903160218013268225239309451353726079284039310064218816496272287876591094481941174468816515126999331492830801314620826679900620551191931932731252100423300698488376949456193775060570412521945609156910215123652894606150537821089463331607529139678822518050223128614268677093031172614245206792506707345363017218473563442771201863580673163315084699018838133419865276700386128379873827527121551764894200262449636989194758963104996838939573918839656930734179827736629354153505546878034274248243680369546124969035054959002174770410605091611527125873588929105075548800981118016441779312467769611423329019163278950401868318835546854329887023955885145949037031657694895703714986398578358687207021191131063718215054488855185037165829071262578276305240619806683966281833580360597971436546034452188522971305616669505467104723755251916061849724677302828869500047925556052759708637130172912306148485487108057715321366598614406760635693130238992717892785159321602716533441123946804852351348739587005088292266172979641359084985145191274444981044257053185080778170698848678031190404517311927062657428580384669272764443228550374482183591166579061287863940543815620560102972579274225334229368190365111724762162439674027608206811570704241751540829496948167678140205854102516860205852227674508135648755595877990341903444946801020203637768589641132145125160418874629943159137580429249683707277089895515222618982150145192733673882669854768787262723216353722362520074045582152665149030707862130723651513467189292256201658539625137060302102886769960534269019607504986055252393788510309755625271175298983610243262442962133118880025691620475702051873831928964134453739359197251494089947574102597472185068235980786294918512050977970616677331344807155521773382029306901374487943565920016718274297436957620894949773077464834593976389008300056555530605770485512864359879024373096836158660268222086137623316468584031194378482405192749690754081592324260220061102793375042217379552632913774697835561037417896165453120071128202966928849718623073003803170990204597947385733333329142206688347642076711850311385846638413268855916901581408380857093661308400856643554488098068714672674579657235586258272335879924339711868717887298597023821938701412464501108862439491995304393731037302431411919543686793093574754357299525639381239988276703006537489519990547385908710624138197634803835037863633940689675953682746846777737826417304779798384584733086310565127321227067869387697520400074108215990599090213534584195027265723924232385470033970779162760795101275869862341440687540991131879967304191381108200785449703200387727264046434202947407847678372444472911473080731774827655842118256677250447631077482705427783371727697718662247001336165195700510423193371918945903583357455321466751454371408596456467116143191813079317077065259524674610211683531981515135417037743618573673429678234487822115523493929835568535941767569662152541838903234206691202735837415458107825137893932978637387158026284029940392422224977416748022365685426229470438884954499741947310020440819083932583109459307977353321455009231021766084500994699779370649547861670814601090230906057141889545837476306413662740300298759398682920132697233506019978609225906684127689892997670947630204257353904163961103121921421535512007504286522159315053706747894539133585445394185225626657898296699707900577693502279159433008987343643368069716152714746095331797486970952035064408322276583940066491681330345005973529393301612197910791042097813049729784346381986818141341168906857156719821319298923469486036683347116620553364168089722723980761087206298951514510820794061512781055087701353383310925383762962823488712951192295249019619878902103409505281293865268993711223480286243266577778313276969095298318062250497491425750669604849476686233907403915097798830788338537170638967290304118913973623404888786801566668900323586738464528312346084527593098334149172424552845468823031336191843313375254737618184604193022865231758222325215153559640012819241123837462492645840582049245465816666102413275852544667530935012998098994048228316638977014120184365386372747565365978124401677158379952628641610875909270232402428709873761427512450568246956231411105910010795642139352949440265522186824218063910768520899562259266495401330558011148328577406954564125660305417811251870910019639021339437741690946126757293997395965064215095603212112068247016501601457386498442103397999455790657969542437523988995239248192120342675900954425189584250708161377502643887081558042466516082788203854115901647458650597809190561692075812654617281614792417004941722695793531742995374354118177300523287786960179115489167442021366677920440627372431035591793573339602114570673056985510518971330348047003982060539190094405962125123345877241061342021566486023684624109352190323971989289421948834587261369948815846534962500154989089464506862436776765297784457430593004209237565527527680921507822730803597050913350950275781678321272037848229635059348783347789441992952541665766576367013732482406791616776832038533497498828253367110224421040033758059844738737574171052869904197119086871123335174303874516800290086567020584159770107206903303275861912231031339621813011102222649151529589824544882431036610736774390153995322677917425075289902541082849324444072634806105290609943593932555336852226255555503246631553684052530790822404801981535035310471931877580755151185178761522543574490635255653231738378422016505721172492148513217671920719459330871227520415584052841325127333928348437339021441217053774574375892304834085397681505025731923471120664662619884492952351523903173541513137230988565684659386931228262072355524913397617781305319397750138231882442924049304888844835328360153845954108072803260629681417012713532940349187804560536079254519147745255853766039073390391231449365543177568648143471414648361545170638835893252633306586201469396389483000292558179806367715127530988347946817343535822984208521214833469671969950435620111913653662286670734106806323300209983613898080695530079640378635902287251401353995203452453883012855237118585899471444178692469917898022726918771140474542731230099369113595108282270360759604041174216627396176845601616185407569762658991344930323186391169790360115357085074388787466381208150306120027870295520515594055015941485633435926250651583424508718084619803828880983835662602935963727959865249880491042508272565255891411420293291552944430990910765515212363807737777178689244209008096030692182682259980800378415127572697542483146653163797807416264124063757987146202198948897827948345080273196088247019567660768215488219262446635317582601628147357628196210050999820900958094772069921271385067326654649758336731152464723129813585177143589164031578573369170006198769360664232582763095570519243558772651538202601254455829850954313355653829840732294304446600638647188165632685976545903478332463815827306585414379144402936309620161775624253050012798480690150844157209505208718398529831946626056704010748287691669454207001416826900593291825769308456217476108326704043947668619691671892409483166779405680763111632138561727432985289852651715388046059714890637687858778853637650595496301621666674605818022259077008307369162441514266122141765289143310702085563219440159412708956975450482454253762952910289885403110207903921679695676905105081528636989766783964058053894294044741843409508969190457329469875440433783826851458403276191674283201797105051384300398733944770768277290217352815159816974727220796639641156209712093195783583514130730500991263149794372759116733878307932049013566341311613724447539236849871364205815091055540466673502086190466045777413893248224122855814083076370668512877995362172630459507120708690945326887840737144418331011914889980664658211100049593867801542744160802871251172407757129179966828391650478033583757230031722913037516323551330687826272174668197630541520089190950453045672844620096353504039573823438953133110668370671477752905474861246841955858465615226250834784027439524611012710178386065481153467183781761227489926971365856566223270947551721168848437784612565658431277494480922786403980492741665200578727880136733368988085046840708664907145183961513455251004305651787306074213681710633740459942370876373801638485291932978208009506729200665665192684093643964826604931224800061632397044727383096648422255856407364025449411514444221210914104376440675323135018413200348889290185187361148486032779096949859706526280023006116803989497791162727558690778615288966643992382591048540000757049618726636872588705731282482151774185361894333853424280322964754178313567609220255606419184790111850840791245660186256022731015576435172398053426065779440076104750019773180719263280751716539235391038241394908401747329872731726114977218567797807982587567532692349895862339651158515941498250118777215025224642884588603672262002286847611994571189659153358863306294768133696430548106496439911040970297895386814658588480450917171847669028683571299206916680843435285422143533460779851935544787599381122932249598348254816109748383979157266202887085950000816409947506178568671614656257667108440975533002565212988567657044321809513833981981570858349436013152022870422448328415516328664612140094587267898247957372347798336555286068308273405343767418999690665673842471729077678800469757656031380725129695922821983886419302712300600900041171896469146354893824335556238344711385521529624444867922213184736425663264517738606490012718896614505064112282423260965756998480037599707490004582596727331149126820097500230692044170598879748543970340899027852466149034504099347994369291132219289904373091672298630782203640277026458036730536415923770885731812989857943350358618416335701653571002807881120810116764358725026286402666268950579709224835682655635629400714971253389898405859304671711598310280777257314470776925775681083723435505174959645899686111357711234348809930515725569967495973120688717073392417849735903085690040165711533113528129402793869088926027666784690464105370398419986627784840295786288760710950218497277689720855128426888221760023572311853226852915696916842265679366876741766918335829712991606895941428948639339638219807245970383647835606481092074509616008249069077321351302078806841354141550614036393729894142226392506409163538013413756557937270571380355132250583249425733494856362385212619743945792930754032852305355561496577593733391828493685420183573292054054725691235362236607727368237267283123910758789555238436740296918337509159137147132385427077294959746397408762644281315195995114877905739639802055773762842371552590406409525345147912122805241980309926548090317691197988426590151167561798056296082583695565891083601330253209634935951692408790539874260490083702499074146872271686368030773028019504223235245362130430182292528827636369940804395610273820426652732520481476869218708588234669025283623099710315829073967818861853747403122606041880080763260166995355526837818040641038745404438649763782993469506915889568076884392664638289897306371617103436467423893680214373938065482316859737079831977743012773860148938904505060572825832288298842862102622077961806110472667199075985241819910994493957557660689987045598838363106603465450779239624882198501789240213770283528699336779965369895662161746739266036317604274443154511886216115181188116734679676553484743199712045509270203630059252830962271603261737173059889698840952810662235670777254765656398996904440849434022382301822964234253244090993440963148628472567785077073098148745657470931314737957882040494426236781878425850620816119210700155348685688896991520710902484578395363896587624907992053598597936425881725963638468476868279065775679583381851736682356146286782514785660246753288181544420885158970408763537734979659237343479498752695362043626424128020394107173727846416075002047352762568305427248104936362989760109900732020309204994979575342532259045634828064419634238334343047991130932395102232644384120296679899770590294302695314325824154673200735536771785945962378690596256992656922996506063541029201642459822341753435337836019464618945995678182983345317682823592540169327468895129272491828476668926553002552261800123679040996198314198511751919303716827981428070059419297503289139040335177263398479312176940469793956167834607511538613422205343873369898053805766481857647433884697060747677217997831634124610136618105155253761603402593291842433223356955570129227550584149491177556045794272213996204003528480618332971867566781381163170722519740028869427208093732496381005044008829127334261249747800423796085397944372109141197167800337386337153259993933140920366954941131081022431524903797641492718660055017409755862056776028855662522788571574136399854737285289884442703353553747001084679707967229446498165714440051086946659611232365678357260537832589084871624137444684096724809861940289125484846671202914478978218790598514002137973984590809300768976980044693728380713395749489142060831029865257984605398902453697826620703236906105532497647729214753784089845876499854364092581287369109272792656604297364259344718992185169190107818054882170986001131352629266800840337268368897005734755544639555454567511661624748484293446976456393970380000526040487782091119037276161320790937610980984521296931519954077552132858635707670832361090088561362137264598202413856603908477568958229136490789871967025776477443180496191158252272182040909796588130992334376477129319359269021909832460617947564562188280497723792110522208053106535298283911107746939785903272024056092137423597298825154897067453388470312928026273678898720124252507532626730542512991255489053377111283915677990347035124407533205092624038713423760783065559342871573238202890319987518406249050667925328962052066275847263516587447015912587789403259940048116524272591572112413180237142312200709126988571379886672060223274767471574552975805658816153336013919087040710153005305472787251899621497626257025434625122122918991217855556416773687178825479885733662511912366770840816362440147592085423655704165352954846101971603333247834349146924258167040241438875487152516673100355303361463404140715752546219761655388416756803143240805041805318685269127409899010358276158848432364704598194090249658016736930048099610201496060721342523284560344269954069229128083861196139739477903253445279519317878925161661487330632166362865660115159189955765186152773864989219441095622771935721744120669611898254252914355570864658243934251705665618169710687250679766237587637850297387693075660708399784865535096448505431562567462399852726951296268246413685803636578594933501524167575859068142497013832549039966773459691695928891859170551672763912279968016932091506279661926264381853664798400432904499238976530535390204047723624372321412332300760898255341293777631184910513165575454596109231007575797375523145383568976429367362410139493313640340094413992519761672503083460049469192828568098375891320867434155095049107855147563367737938404610794093011174101561799032063478191014782571603669882017920476399938981411884447131640713382597430889207800292357581267808331867020113720934369166791106237531058966867431156397981576382531081532467555502993734182644835364767131996364060025944813657883718094330337853355093568363388623008132167258106519545290739960664436484825588543190821315173477898771277884572850519581704790085997866919823357630570941403291253744058407709353646812842129206992589364199758202701951433661566904890990828614036711658356760808920312031843777798179314723586800270755839580139533365170674314734770798386786701289017327794675390661535820684504312220307282202657970716213503773447621745837019083684943637300378479032623042541706780046831736258800601118538679264071779972525179296248927431266771047431168905746987936986591240598086271731957840791729628249507091367955428421088433800172749866734796521993260721204911873228058923694368446895196499775275159786241788703115494382040277233102386146083941824380452513621735408219126985664771257057711895870630559461735829956596528859008002851579855393948545359172179870850666226533239228626903103872912341412668973877088275149247768022102539490942667695768645537946510072486976298831538523358731467026721029502588997695969546301385684214049283843527578842680849530510996367570426024156341260330969071649836886676611309506700132239011717235965219051177095432740199633526382375943007635425106453452690374430822608563026634495137287288779212000557760845067024677417868554648450036701519872899528330083789282205324460494751685063578305651260257485425514517544529003194981174306992166374587496085435007294348815273290940623375487357308545191605495204014221457937993665718742291040710740318894421590852151285536030990686382780832068201852924586339144956807574762834445768114776093800041843668438006723783008337599022780702013249267923138159225928124327812924637380027156064545576195519396127632779819041303082847512024335192035477502919635454937698367776493091168039479002771655265123907589939647048681843655747288254142873241559960475949732046957133417608364843242798275108446412100873096615825186509797881478443771768650001839657817273975089744611815599202754863477860032444233249384840640793830616942771712008033325522849263908690885339878476416386486168013376347340974890366447336139378651767861945854580340241401815120718488372130361947132502476720257042461788199978383025659661132598764677962826660612469700012333083609565886500811223962805253697577712291709595413720788567125778863866317637936392967344888241111689656182317506208308638934101669863755633844032805641852742456644907102253661727298056939264603131034176315907471042647043492082356067682410748184464679596418744572390999699575425104439845209066422418711479144256842344604437217326904965740019534518591107268323831332547358439486853061270233686490951774298977371681596634030371631260829173989695622927537399170596067748368254353305363117282360284598563209564109490443269633404252424248643633788879478405068416503164930862460810553117980419737830098566605402502941864644028783139301474906307813576887802316272691191684952701563395661027614454675076762314754283419456841906967164056627439234119619257204006872060053958569621847088193727023917749486778249117396238468393146918065114038777410415562230865289222735590406968239646466058816554043830519626936058546937500702030954360793897397426357357043402527768179529390415593794416810456122858335727541250170990171394407948382350120387632585447781635793884527283594083273771550203592176683474883870086923256345109373897153483753159917044210305627454705408246837478480255084040450681563450466607262187899358418422974828047639317067616109263713492920764574608499157477786418384850902657573305162345053571728743148377340846239389420639190713047888526898099758986212993295414837944375361409036866913521191760599532873855061210965144751232906449345093886949250308697808962872442415575337193896411332508091216349586321656301280539040632398484291495108360412876700908101522832907985171895022106362202746389873578886882246110995133045618380619115758671402678663416250071974314874440951649641502285964525919233015015706249222283669490452165657271267886659969207129396539614540039364135581224434450963070416178897698919587096805192486002891134229244120890277777653950183576458384846774051673910460895494049879464211207047954750275020669897094279121552669050780809809501760789412102859568298726870436289150889275115064743014916929882459130447436434915683083040519855663419031986471376593767241644931699384454759466381821020280569194922315044810181383695731522593087183988065745667731312535193927324289579749941604979772460785456558143026257842248438146176054198158315556067188661160020979386143910805781429670717763641202891852243661126138378113183462490613117212217192052465365749081721178366293090040520763040846403582045511538473452266733055439698537946199467494424782850971395772277221485866916173901912143024787697927312637651077410693084142275328409218433851916959908910468150562070050094931757378419155429392792155535486544629814378116371413527952123366580748822767278904096404941027860180660953651249089381818134538060597205864301038053154832226023457669662649290621690358484094863819131407642812693151512648753083724527443983249447095102427336187761922873934914620052874198115985421406849127249386920308294875629199219511008534982122969713550529472624383582493994961102259797248494459112191936404410155674975746727380534379697918832439185210675227866942973849585764721394586652557982646248203332958028964553136181200477774686406427148538060958621697460204159822295867026558166276136056930557983243368736074224605222360774614003104214452562405063130288953605626253131271368721055577894338389862929107147159996243622531541211410803142591140120837391706020121374277544421773091706151021448911117104961204456585402683672343163372339497703422651174450903458136174457227796408200016706942335949451100568311343433035043405752784199311091303529726398935118584143862943258404548713871630328041728386480544485938313816096651740090868074926434470018620305988675443708859189416450094520710500559708502979727824802563538778005142915913662961772772916715738912731800232737533678361826510583721444356397943696837608497683344417865118841120645856063452129496978791213905872553408760832473913986523960121020773212503776535805309182985293195773674035021114390928932511946334697496009366703098689158926605397544616189268339887786192485630791753650697077377094258928187495632091789486768168616758289989727488467800614690152259660859212136898331639634853985470022940245971480245951580204219674575699542763543678361249145331459821408010684750606733603716225431141904731775164555169590221459730123413682249666675877267277274806111936401025152421069117987611439755407440369910913348061852737150822587875077538007566238583130979396396930306335413687398904173122703817104920332872056427607612616413325324448376516640517844400487639276885370646864752499145769508422914758087103171609387507890868811742457218323982516272638844426118006423664181082027273717608729978200282357247227017332722555759966582825430473729183428327003766769409799069199880570074820412436727088252032100862194944924589649336659397313973617757499649800147109527510939937720808991483319761088963389969370273015910533456787743842466523755978155625270099202345461166279479920105310067168182290560407872592072174730205699226660445119668699120643625540364518898967674114432617026458253442394566430428335081164937765126651217511955668954508225490481541093612157933519946268024659775585757130371398855941936905487204720947418222649430846641211141716094727037201509362697108784519903883178524878885284054127007147688713013742045246483687935046417150647697624842747224569859999406539250674755869718844006465914758946723566820694936486892621650000151982699890487511196979842107425325828753650828978508190037430521955219891457820811382658394234764652015010372949772602355691045236500929932977551820337334192565478385770259698842470061218586788008906635141769886634317004669852123678617113410191673525202741113394079000464771198887246811509323377061296782167508989403726982773433630638114900720121407983332239651461276255932316010992898663206470964929424177254004112562120850742788132698748468904850048555598058054285491344845740506827285211844752801654327640903925314510140491252385208172978205890697351353016026613717715964788844290834422473499162869207385717897399450041519351854189394006579507416183249866905322780996296758615852125156882431710301374761213233212380400376109553895550694910831234846315389542898507464942912737852430611434117924674140242701238830025448233171688348098552088446934364882377827959589850864369604665824138807963851636920307320729007327774096388998036946047828537353247401857712069430596657305481551776678066336048160207786637004566220918896491338747102534198812264302763743673133549468001809413599784635319891526160842599225026151749752020004679030635661151987798435906611546652081113318012129858086585739739462494786320578733821206608392410022613572903902771343178381802522607197809614032817522353146534283073912030610408254608901721950173102435452837422704764332096848498741286226288833627961173714563804431776310232288891606595211297757354515455062595879970735601115961433500098042804924112183834365074840406552538620430912055653923564773968699042998908486662056478117062658073991973067358140146163787396088783684405936405650723093446080022011473674447765839906501818163294879733209859290527933621996798031681860492969757040830869322502001356904601919611606477069793643207106708564800537726133932317059132547613524631599565608251168217348825956146293465684840231058400201798048738903939818556886047470222916409203758589060522040185438747674527251760197639966339586616224127672545332166595609300835738863925035246637020042413882085074657528484937744390403681859404748872766851635425800518152158725885494648732331956199687102113639311762205939096499061471018725686183941702677835508313608145748189443633159762556642918780168644653814056383404026105025146250350040268728845279637582663844782043401616194532295484598983547554476120497300214938311127000738005475551968221131667808994433461254296986961277979054123162460175333608821294003886155555361601021456031986689941507781910217686847089554612893563710392123233302888424292579101632394110879652131659629066599166400655955285201784002421273069005977917957182559654130787591299368372973997832085947394575383124499765777893894344825653090035337928386182819150407307076367196108281358423321095972148545687437420690629354012161615058549383720864142371812083352977689142168407656916980561896427322471156981363386112272854338182057436508410152354402766424853594686031330883553949123577175397482853984551978816526161864174379756729264777575645053003668081977601037998239199759421128273971001983690106802133313103170260842814072645672403024186006043775609694763150220477805875068133095817380791796346564399985041475745417621986937983219038712289631228780686759349544285669651926118845223936117135775667211389148989399157098913927400252356249022726228086370889052024734002124028788695004982563673840130758396386499990992047323940923315916258177847985815279752587779539187258796566346959610795274143924444786893894892747567676795721377495856247036522622871718641771372687355020655568707295314438535960064504192359435583084634582707145047005135734700777429694076679047193475319627771448928055807333783670673818137551166476946455938105519729387682452122069601489539815744917709590606728922275753106010261236072104955343139287192032051247776320295528438106358225880233656371388435626014459319696067512418406660904413545015974035504892449669912685215672464679703180547982566614356875020567341372253725303983810792859720013363708677421368316378004382309848703114621899190279620319319005662992540242623487905425825835702199621589199432832381640178320199327966870319258800063576228362859030488927812911201895381163312976058116194316126924282171188167992907364611573554409928721869305718198949012578320461109287928249285870766818469346794774745256455702699091895292526031696748381260651220230442793997337839838524447732125181448064981877243878824235495963149046869820376471939890272852464100203921336246478912400056228601129488794638567497339177439744158668421993938687183856986489402129217452781259195537341495053750101126736729175548171297141689404364866039906336749785365898709703690511488385050204689816943627899556732519441049006548482132663754494465342512972178237331817149587542497332540073836763467418004519828980660618601334676596532844556132526290896019975705185269699642121838321271967879813316254937586665684571154487508637808262932202056762745069253293642336951951679375608821820086223778428103504948740762674578816469018874252066379549567622488771323484841205491515115999257277539291525361181922728597965969436818645000221480703106255762257687153727510218195454706135619230964547588212163164961857291832245823194992375395206844284365560634880186290002171633998119211711857282899986537827001183617961435428255959505159761240536234410500341250669620128265590445263029679782503527008112317282568936747677073762718480383974404189309501008330116275030461042019334157386983181866539328917026905107672081368037026989344865977233450670189285068820821371508687365772665842223128143763220604982277465219395697400544066770387121892379029905998305614316924905027803653139419549521355642649909443642283455523698329346757304112155299329620892233775720348736049237123965713644769004072730926782137712643056803539225698561493475049999867268754330510058784969921472286621260752925964306717433073164826986454973788466108449435012239002194866198945823987741291578208086741900523817284532880478095859155127129831040347251816389993117108752930714763992025291658830880347216332894321449926845429534301515611233489125929925780135409921817569881188227821349479038624228829723729828773755262687828228381830610179821513734392957571943885690317718184209199351013178690562587365089896214495494509900309840264175188783484179296316474689712050723368919021110035034703140303469606498074244540037649812923116625933883429746816971215508218850067107440077875758138490780708100657768771357211361709509373610115681846042035919797044330767383892343480423880738250433123270470339895539773863765911351776863167234395304111613298364589171551811315977363332667624775936210382721568216608702343553426216377094003246679382719903679205737531275104595455207081905547340218060187679825907271309540761136728652541099488063905180900072712555631872623126451026337336623891840806952842338275004387402714870188704567839350147056299822445705612990927119207746175634060008839546799922795801448286077017819788823449271890035868492808949784661743013489619106753593287089113835595042762071818309275503133644649238398038607637951583017553347799366844008701865358053653250496328711127962306450041862071213008706483703873163228719837803729519147409526899488548277741731135123782464005463685102803476487317151405862881308668553104377554040090278212965755282061130966726735709588380543066981770593288984629514427263693168110882540115028107964864236139391143260021764917424225498630527073550308389404697774537633991120673063646132381584275870265616415009527318269070437721678966608683695306239296802561168421695742748453281910236728277033218363033626253951098426002612122879033435614694198549507545988001716176122429847914110504628025989165146331835506790576304543069824964486801582333474954776793067574461993408989639986635046254381532282238518093401685122568770915651758886783814388341446700079871691539465592435080985704365886917509370552910113050995519546509659730889338089648952105343601442868628572218608838038753759197072361344234301363863715395711705779164821268261774703422005016194335534948044478427400860904408228991331221071308445796923527801284130219616281821237196884471473527717396844462202899426907012791221108922425010775287742062449273259034349600059642490939314207322395323944599295341492165711937232571437712377181141418771487267025249311924187347287112087865147876376509565143828187774885467423018062410955849916373013747746843279395261404223818365256032931089439743993535431040500075164610665602686177438539093349685470611737176500309121921743472254868217796723401620105972431999926267443779449775096302169808891296888726679783290090983151260610000450845345205703270147599145322507601070249547632124679293367702507012101665067098114664265403767140800617248178877102222360686046381820805318640915789457688787543437666099335279438319644599158859487549246734746509834994431372087487276820026251980938243593748445581884139509116902495323807754235467470901766463970082076194517974309128643540366290597050105862679836399832745658724819920843203319435568477141134290321703366587035813009757210206791518911809139970562269622682714469650341007964300639825642687896489989705895098326966342737279001985534078470387147191346859547687401173988859511481063079098920118368639995656523860549597833401564699039506750761734263923419214405583657220822131945042299510943861506611887373859365871139233239341807680138635007341620462111981972064139547923438241576564873152056203357128265945891060235930122815903193472424762701397426632162876198932209758494438415845029924200042934637068982418151658497328610000104496533593951477506444417935789099434900760289189271929317745764818027469996554798301760230507667400278211973534651392662598593775225709036000415201487965983234576837740677037268462159401010265471562879363778913862324984769785209458016984493611053920383152868888220402972488042023696367640278088222211964345780390258049870714041649837814719540995511506788678418002006434734177570399545299522216697715885823983983874689793746581896055520270941445659088764169767103202771788610911294339299202758468825661841239126435849877169529866041842310844799027035664087564943078171887777484971446791350713922499684211556947434426171494461039212759211102642071203366398403582720530762712217141320729518663919530067183474771057604818871171025683652999817095654890892676504036806833181768488681031754181100584375640765122729238770213579664816038604202553783382144965615819363409124203958606931518404597362641191953483551981871467328757195346966354461291677906895406915580271026945404759059631136317544296317062554513481106418497649199809272474995569557495860676870686698225549168634431095764718206412928255100440706391984101375346865654467997242766009611076942187297460034251045451618260411689031837857984072763291596764176946685668506779051977211490145675519278163238138828044326184277958060980402140829575741327857264878658063167546325605069251150552385092911725540887798352001652625268743337456191686325185148171436196037176944393155062011593917294272922772740355220525131372041976114119578036402915421797783020657273515044332624698760802876463381511422215941232225779932753352142161426370860051170145538247925634953485264305769971643483498823615529516383575820104924567242359022885102759191978035909844014708066871254778635586547050927005634159130455644173470982541914100373271750553835051391035997222864335547500048325599491337339189167028522405490112981223233234480567909211632920109869169461126684522774284782077127220960477722300436202352662459796845174433775273954102557189802744666070710503672639361855213425265142197665367429158009037224861622502117579371213288603901362804448913913165217200540373562538966454993513588687624453030797132836751734761133224144133170463060453586999422317590749936732407911838020927231388709354425421747960381750270632326270685164794689725362174956348717496834586209109579950398269025367274164308509357847209628046482710239929839824862023559298136906246015037124445441229572741646073457040523745459084164407331125468868986908143796834986234845955742716606839771214295310967577149583544648553359197377193537766246617816825067478746418720402892450855534331614227508247154513236843291966156565214250924842925085875737287732060472404372606444187699566320122730622994959821296239432499233979482048582353753975443395753107104882768491541650802689963210270391374880388964901725870129309871942487036710385765053669735155342675211024009326402761938598518939143829277853657260624472572233239959312046934833259664566150356928533085820564611734379822986796952961064055682221769045374752099473576661327913729435653245458062496968869206641508509324558386785803146746927199106598738894638217423299797194976593123888583356554413326351009849439657146963599718582129099319308002370224900915367828642034438435882103682890779377932498619618783276335072939642737381129757295762117500664478431845640950082528797424156342977042930908026372265977519222769343062359356906500593669745000350696345944373503811757618269236927895698046654167450382597937081298002278272093254365698454075055879167227949980634594907191619808318481215422868642435045332822269195078016729165555024710726401341352416883118729654227826458383798502746026044830204232288034266220311675422287805723093223027548935059626732998138298303062181830331350463749220432026691154823479248458261494313407660209739501304473324881995443546590710571172550413845847950866680051467211501490016354004940455010756710263746463504685717717250711178181573070204124511231856216126642548931179377511452059998877170608590587339075000173626814738432796314073737992856653378944771708454148936396475535106545670771573382724003277547611992245097988591132075504541681246062384350456273185657581163546211528264992487386214091902302675164758444032839390193082714804748784482056882157644385347852374824105130183679574652471516268486982145650134840182850908793748594248522628155929418199536902215501017129651343592774286414216502132415895256650493650351843511032226184569300751889899654249148713454027851304675418084800304957561482726654542761476220208897801550926657431585436835479049416132653095852253098506196730604146041177875103432825747003966074884922465492589858811797029358865218978914969207392633493726850190540381346518756775110049407255320505154196981055276388511544073551560797594687749167149417844176618912638644965592088013693622033050451827314601616223427735444118285342180986469504214872337954655738801323819046645322190874299576852071318740429017568364932497620462064665623848912307211051769873654278157984535395809698182377876184527015552781725659332838764835514167467570982846183076415267674499887852087954842478477550547270221979636431504952838926850719432230093281022758063040540545881592417153655080855442450026521518618617132911534400276703022008721586480492753413607526897447702132701542019437536157236883083563826767568592164740401577315972231703536645153894894407833706098941223397288397163533632274326547257570871246865115854409148831716198013170572440214610325108559395560887700202658511640867260376124256796127836839568774288873779816508419918730731110717237206078282137999446897830319148698189458145845967800707395198134515352662270777943913559105278299789982103688092592770470513433878031803753753650709564777115551947961102524562637536657438903416163343269313002835984471919897776295241038117062186424147847483937890050292302043641047068142374514656502583404187708816907883288453968886539129649454915933783482648096118849133481603097994307551127189765443343552612988231387261937890898785325925903732985826267242932797444292183781524612400135643373972261619147642685193382766346943599196945299283853111185017651592638914561851659516191091423922382797719356748513389840633404159700748807679937042598990325233749479851263877284686522073344846752906258351341971911831116151831985358835251596095062805834310022657460319795001998174904090529715832818259540958193437997767148498940266872857283809255945056667912554964065443378487041349521896944999999140608973462366179679309135705872845037445593839406957394329807635984097546612055443777764261608517792442716337462383949878954718988978586654649621438528918340690298563230397105888842369839348821690249736750621473554544556380999482096910687985778443276581266624901642934729733634783589779931299747903139529983215394936861607189742496596613379407413786888562777739781201665176284919609297854295065238999100925194290188102574571720459683850369937280942661615939172143765761286598649178664547756169947098576379949029604136017474392523751300286476074040634819764539253036445557470184714004635439253273835833099376348572267557916328756537438644825716803994103761391825033091269128431206452734343581761034601181690725147304882341900587701873261096531958652671045800509203644553857517479553780962921926442684413887137043827673374564944425677241773396249888459512334933345534753077683360196267670438892668645595967297559882218285203210180030643013371404192547089286088552904466295550805036549517775952886372089642296666275836257747722254825489615994421251436307665004051047847076457586208594504092213961492597523580541048447537895829602994814311491870502223677982666510067434752656379011810766904523367788478793140106174192771923716216038971184179396733765400231525610713415367992292605956387195288839202001773281039394108596321635251256611642917302333989127474359003581340829099535794958907648024574933308881734112154024554738421986328498340368493085352407838747082985190949836455510649615374080205911007543024094607158981019277121067675585039823429398958224704771926853100477262278086751500360060478349574951409719942218027593786296024505096634233592232493109604274499034188533680558644009128484962985413612118503181890642478562832044863212631658349455393623832255100779257373070277019815318328172995728286298534064040585040333551083883349378094869585526814289836081508446857045540465114045781559048393706201813758257225551495098639945819332364906724822667658223158651793753756383724134602573152334466085901185687488010217757127183942880919800070771934351760420096858045881405411301647515207786369284065888741925387094054958792575268641011915957716618526385657790512842019241664008674814945223800677974940037933390004066836916758990160281994130045590155139415419092964733608728470898186752637799762140408033461807374340384445876053966079830163904685952451969752292647213180399559432348835014794627818603775725206799254754127734209767475708323326871439185153381948222696646653531210138037317781341043994449318830844959176676113039823849793257999179676218896400510987461236696598991657965197837674285043632720128251432964677066154622622172656515491697141647953326110436717533945021973145331064275761506237888099785566654748686264108533680669032615989283133667507247712295490992568076583721139819569132498340857091036950853788725533850601875740207765439613696021802350232719677786878448786444535259401741946312321334921259631627509621893177461605832991257991834845883708005052563226011854366456989919493918387897889488660699759124760101272220499996037276752147921631334196583092035190989925160134738668952415944349515306677787557213997559376857380839816937469808137367625433837994771252122489924739571225249595845259179847222578069640995332744172037950568886719606256989252634621938233122990289960083245782907706181005704954200274623449409518236923931819937568020986758458843050045329296211789140866210381442997257150883130679833157484338857385069090563628232202879330529671030892471273989730895506116605348798401399654619858167037678429703807328929839736866773763522695713061122214185489198504114140131103871152873697410382823029131572250444846101558249670782146090651228548480120492435977297758742798087654942639331623967792629775312846436258415533387837349362874370255471464233519479572332803483527158548485809882350341187105936520079814604068689300529034016897073200288247742287987078968781829015987068484663681040667085176903899967232661398457720389730388513517450786665972362085767436434636130261793161506335344533536422959864879695378995235333767121088769628329116773551726102487776294228712302940871886628639566699428844568589031435609635761501106652994716123866738965289561101969700727705656834144473493110822594514462164367271492139660201299666583288198646996553168007186347758909133342811693584643490812255118079339846233096340618427624410504740495948179084362140496995746325469241587710481674193173905349574126578466450053651473151650417764830647779482971789604373326743506175833791739248365624121267538860188227265657797293657257630170876609387296321384936061676545598039097367175784331718691401099630051358474468285286716462505650242272816803156851270371911607354987363700172112664653221524647955259021517114407136728221656625574497775750614969782763537767201472151843061167307322562649606992917074944321795701893925255283047870267561078055675335664426913016469987364323497376912786809741830080709806740883127747709993324457968933868358758845221759467024300295223671608957725550919052386802253358610197846575224157693892935659734342151790047602299266400335682064327220580420917461588038578272052930241978271066752775733701414583943923501131828556312720421938183167034588827617055352689926506896929832105306635416856956663900281179262584464694470693622786226745098628616074581973459174300200071233508161527331758040118646588383423080821147694990108401052193750002765957359638691348544248180322870492703261065224961519484144116186522293060328647316510093013052534302315321725730607631707545770565104634634443340253803360489333587847368266129623084255418821062177529225119465224236661313259193469947059581824544062700129950969247811885601266244237040100185490924032451365157212181438025821128053858562369865127700270169933813942071852800217913455728513725571833195002031865581714809630709432614604231619034048078035283771069361477252409263186807071034301100891383791256611515364591731605056721182631161020284070243403847721307513496452475559844236793531024405807260202003376157595148256358138502423803262883114397765735896988663377969367380406151717525511919263716170654091267351910018951561080171869813111183027645974732408927755057862830656482193044145890350551322030924105500553467670867414703155889312424191040948114584866380120531044085391091408640268951233960837680210049418241709902410026214573320052597846817299397731964020582175816269332977143083482221532555452720343801814594723986055742529788229307742619665170024813552115355942444345297221923426071262549196534586467179645910772143785006941363338694359313271599061659283920454595820749955565899177179225627772352551903912572579201427113799500225658003602920629157327298581701817826474477033263288927351570683077768115786374648589593209226986187878775839912108051682847757745089217414430046677083118623954236343250405603565084941754468870874764199820471334447715550112354687809836555967906566983923691572101367572503695693610507301819911478175162346621396179973276246535374006310358135350583046905921292409185398857074316842002432129335977486996733463685826235716763506215923868657882353654093755532552357769163988435086083785861708200865887182668894247237031298556496703040751665319016087038883494149376420165815251046081474039164376058578788704725217192282450343642726129434847515105992050582692742663203229640108911720524235199476720000749978738905760069704543720621085806181687021804372928259298352097636445095135157245959807789835113857787274131400822416630379805642282463009918652761268623795665245928514244327815314724571512204763050930775694735413448613346432009682067036823436488755864997415461379047971423846020814390096079131065293722052707830483310274029854994459730243405433883130346493902549076733020838342605000121799645143196231370665609389620868500094805745818459093973358463858101365781866835526531799906483296738175957343103067089599040864470840201795769563354911544603483342830186153572022780878227559863715039105641605747281621242793739058431049436240685643229565625474929420654638404895774228169773435731316775631940236128398910569094304602732181811949908273313380849333634557492725866773509841609092579551534251990910440244621940271579483326009946734719945930706338646680754075562593524243987555819771373911232719888058858494888949975229433491646413485318770011224983314613484778459807980905778039126749502282818804622531608097945755997009689321799034360133063650076048910446811135806938295785194539529780960820416557426358022855259325693206543630028398645017240423568792095077615859787435658459920114388944383152864933044577980225819895140144696539604831432406758914979219993162111055988435589731268893323698300267782643172214637970255149458111200150414469424001068809861639252474299376098706874001320438195427480613375378978176997751265170759164617414293561077879197669878807058562429513826256671981138995386921936619527632224254352329758327476238107733256667464299011342391912838656566149019197847087953980395572269311500471791013377168382978053363122870351861081243559343452570399361102883948158542101788086793213076049444964717402219582045520817636188586508692326794908679885153845840391147389750743602205640936184031378826325082816285998431843242792374447950745097654325012417841844046578894763964750410372648251741856183250797412342302922041675767064207825591251008910487435857379824713257697496216199549887046856155045445122765013081841985372248322834940448712749619351075003733862927680975188998141429987056923506651735562478928210305718143181899588154954204879322918527449893343866636059945370640737011169467705255797401236720517714968303026525675154637010098801187062321750312857811165272708966710185755702937361086705559045764577146180395237529279499266507305744937079485222998209162090603254937922498592188098983452777057665130579101710553872602560281096588493584407287637176178982267637245270833292055403730983622210481206697186273389884169965016572980069302123890411000427898250675476965766506314410502949887668657296922722068245693499686845925430303874824867789857273601816806217331284674719165743182316741529852413786191229226664504865140332526990366954252358706046989081470766215092921843104271567225034999528972165921340526620555358405329407856323512095744217169936875080565440085214020982899051556135839859332123035401209192581789325083439077599988998827311776186502604538543196950969529949534084654766790986941167610301938575476328246621623350568127003573584657579629398781938681937359394959962629433176654702704203897605888398481950186351253458349924468957137183667593807056365843974875086200632573840977391574609387554621182439173387312345246650868821812270803532070631160884171483935248439054077734518321667258393220531158502843239609278156572948448601531509037820683834071402854516913471521206486352355865354740851777852477239191827454308414523634743614773852597505228789120429324492891985214518177599837486122936870891604375436451258365778952195546801487299557236980015463789535948964294781523876352056116115399243725578321505214069754515249477716590847621599674452586995872659470181207122913194159298202361192442825084241123634228370192980690682849552375928951554434202900307663039913310603513710319910977579841936922236201491934923712969728841188026222849652279257963525654943173358613605989688537688924839039322063687179907522859679338796506900982883935207242242397120549537755974930084190528069526671076805117950059819159818380027271329192903252751460649731846890971560992986084842395014289821864457872101816992785091665800449328544119346488620551203128497339181838372331411727138047857552452392733482536311754931508627668530954942282118709084248170562727404645931953361695686448229137624908496473873065837554816758389728600569542410177917884711270501339727700286646469217796842153839238648402409082500063862367882030200395489282239428704851812140119866247937863090290873547779733762557557044189858547692202856959467303942119972497355176006512055407139303061493407330015571941751310890491779038304205345538135587498242498555649073641070517113581676057385474935684152798714677338659745665572831061003628004184225958339226983852040951255797952330430974839271169495009989205326061994116161457148328645275471509028228088053214654614323955804814934576869561808127294381418035041846003775761740670383235517846562613852790558997644234591554032143038459217354541050327782244588222576673054246464229567152501782110605978359500698784128886779319213562709637802035512153999287592057110362334800956921484849974287337728938040771172081387256096465558306879278508921528330606835095692072369991627720714078132109720216132086678051298834965859774298051079908846098231041640791566138637854409087736285940286295870215137945723737365636770342815196937492904447736334039830955848792402545855480531104932482373095534489218706168373641295730080651366559063603207196647980842748676893522377195548730628462510566279461844046847979854171381617610713353012093691169883365945396478505606491732887178464913643874090903105178026511497300339064871193771506529213972868166995015105614298834007595057727026290173641365762071649102610782472352931801675661366458547380606420609082093707251303651383780668281162346060512352586733283564008766347033227675380090678479153183469898502315424535421515074398883901184454665012610685466299141014630975682624597448869732247358880522300385182295630649378662649296926072271586512879585149052098523097678243190379470851834149286363327511643432316529556895518926295652933371767862885840737271928013843213036863777301337844141201906486368896839234695088332634044241695189117844649152390503410708246638361691808338767275467199542142535187347845940138385119547663333438042339259884499025971573737182444958319126094124262689877597282415248428012986192932580611046260949361667497723075860529893100883311449028902520189060635822089904698890281854502476617946825880715691748429250732193288085265267977002940569587550186945830791616652231754080825463933670227504008950945089126757530097638264506929665845208321857179231161576451025167912804443841321876576846041352155852892414027432306669114312437508028048848272084583469863651479493670324647849792712023915730878184137252695074412642279683414147073647164688620496825488719905572382733289930526736581190390715134078846982824445261392567681586717488072488307369331348405855334815833638800036051380677766452536547376090918325310459735056313280648172898721912779327930843199359451685188554129109007264077899828663734080423120781459386731052580695608547800702425724651409988086852329218167736871936655126850391558900703917200811303841162442904523870544112390671521864545157603144576304740202747051014145418248005504973427725664605384244766991478739002589391172221264959412459902333875378913231815996196621635043413318970915350886371241403773112278608513937895919125105453055162671019943137747152070407910167759995061320604437886673950152352188395780776230453896115999633577643446487703345630129319264299930008073273867505310634330399043667789523726202732253457688009111444422395901462787252573491243389828515281315239509373312144862054208328057246013031711284362774144027307337475007654416868634063718965689312668871760705965065206559891111066190797119025808262170753207042942339093312782009595774069533476043575641939042793863009432021169386047381881414896332715920670777564067209079955377238566730263258734467967832603475908397205599207952649350112262129111148245511906890684911444306260306678486250497310561659363750524873195936286660605663605351371740854727976601035126319979168806237423357490562879361419389254541830450364422879855920936873515034928411293363481586661692636574624938587332534152069956514519277660304620182170812493444654390394200524419206659215799312118185735702362303347770912185111371249314376941733676665657749083839560628951227362002395393744959914073252463023153160453654078627842187910206186583372602189018330482878478839483251378380447705474499097878140172775205652945741048344231767934052909652301178283604054066345638519114546848632378600332848755619145278509081044456741855008729858901680702061160760368120453073569580104635292842252439057231501069188203623954941265811122605907185214580688467258344847807507762944189374391219314765655047283334646003944995767687928267858835566505284058173921478207732519113158829332518170874730828614602272650333823943673793447971572065684211396764011939506420818531305825817373307736753959768064167515355641860504379137912776884713698742737291728015002675385558845548305222022693853295571776688333420204898739656882420797681443527599331623022302583081883337400786641040082495624361344257084376839777163671189242701490936727152338907658064708026172645093353667517167543640950588932797059331378243776510652727041049331421770129416245323021236968922546761687520179482093668863839137975342996092036094919698808824507420510828810114126506372657922080279628962545162412162639796562120127589527472568682668926954217219972271700674063642765121874220014722045119039900515149465560315346524269271933725218530147537796570577408259266051147908538023766574695182539286924517084183927896066855421573434197728471373432321408817306308338045136327336436249108129433061353886031897226964821993600474295491038946067588717466757132474647205769169727966094152729538222893118048501806353091484355178819340713594571705605193922975447526824793616046187974451292247957161674233938424371803605110143613894726189236741485224278698207348472638092775457278499576577137423170146027648991615942805717117206518795552543116698226812461509052222314312542212666055316068927946021436502190902680351773848260072680040584732942707458977315691005000645839183136368867109811202159787724905706883845380611933431745905688555970682452529268617522617316552558675539357425724723129522903092244203226475472630963710006633529255052390066616213440648644607532363199471861740333476146140245704370964669191591494700548498136960570954573157243712217188209504838095673292646587404193485685143753985981656840065420772502551254513213061689492637518735247969014670288659095759968520615620583167600994720173950425518003710868003774472638211319478380593192276009340428943845821364457452596137580619373011892616365765367875380718301924338971317475528430944666462172293418993239814160534105147771620507182159011010282657799066420644455865833049164980018630761063757982038560873024273817236215447728631766527288487314598987649270097506806461329176528568618348768677912752492024205112712678287551111665448355333261180543331019410067459489674883231337663348432601631851685503914713825597822704778086603020262810537631766140354445224395279616684360513412961089882419376879717170092676263819551825706983235793296236136756752956305780417519153135520244115167775559029777209323517175962665364750319945264224118403777062304900375296646771676070856586325565345495209266954955190410955000488148796988122244480532772671093432329267164545135988768207576592602209952046941883975393111077518495146723139958894434638526122138793417553665119187842088736587037679083977866903845674897052417594154863540484800153705075499337548405489917572674946628699411500346206592943352351593351266318797636035062610851975063348937562050136289050105479375710110886968986750421183843317992966430526880295916229561937797739507879051379588141346465098634799310701881346763482041472843306507122202915467895375086194759059311190836737044650876480720283931234839306968929652306992044271100445752910163700703734375379554834566338841780408943009867988916055624942170218201913623610213905685842713128750323264497002848525544007500424034729898383530583064403086453410481212659039275641100086125488642765472608398173760640985641377461154232212304704045487645558880282973155944324544740615328345058915503453772279506069076951225124071274676474345683987257669180434707800245665721238435062521720290713729062457349421744918266406305720882695344690417757733920148519175202814390914411152597988256024415697867723346616212622110909799863680826451548060059868450917788745294698612896975937135692933225098280613661501869004155056609275713259424880462471295058578151412480605307591899279776303596707261110666898597012754679816750964944439623773215913844693142820139746846395923617180058010373867430780018848305659022979461523117517401822479398998742873941542822652649707280232655430732142071414639018612218959125230783671646342358620656399110859890154116533535924556074741794091577004112692259813277847996343361313405154337877087305853375209240199524198467247853571171271916811155759389953847616995321933368419637483768292763163990688547901958780530653318684713812628209319880109679698517306572239045376493830304022459382635671347871985030258174538355865375678248184701639969844544945261238861614569772981351785694162327125217413888109378692997441363870195403421653622391324342342377902196991772277772031025315467289103631838285416682030715076514301955087690039991695724546741779287902563929476543957022654149016535881488760856149231340785688747864614655257922653870739017527508245699330545185139302523400028979249591273148089432157981771929741884832624037170816485202511481787250565717602695715367491804449469916591465703687742601536926743443294901111782351485854749934003513715050952736154088629347688968215852329424237998360290407713578458830266723219830891377587360353317533262341371425525949452635263233392171877485301753578608656615463949314205847678162950586045341847622505845665664053092359233846978144414735991754361027322284211516443985684835306814401344157487911014526611264848083203549484781396946752411942603647901566485277747168577386509484559518182622791725581601615660590414934521235086814345850426588017597724819192391058769713790593823040660581990962328477041419765291646506245489850999046498864658858251732232944250447547700994704418964241329874031938140021836665614361236021603417125054528552310456620531012243045923447433476357276117053364995196853248401004977117230029097563359843086923812809087182946117258537543728315094680701926603926422199646069721682153766887217015257984417095845793811000631549107373515166278567983326109484458077374442649329577285982021962921994593264125246840664914392248919404259284018495440777825614274462931327399260043497267903462665802595366264841828990262732134574339932550140827929533451478935846416450401803395502118123433470097422305972042496820628038098072574775859634468275188884844365430045263404206545729389508659981596017463103448013636063409828629664679146509307741474488955392083750872992642040276436093545936864266061132436776398854956999122079191954483456784771317653613820626946015206186266758195789079370871734260045515377515012362817723500486603490544311451871969795935910088602518811405600486466753677239151875289333808945440866992070913399395341297397539569443395504277003772657385105066404965462760509448755104157556594189266279645996849677095549732368626793118915486903646663034204567441492458021541786380719150984544340276607183609243928779713744276174339703567813625190279482625972697341540625488247784409509106075426418392641839555908886823845163828774118212784758165365430875327473929213137061193167240702236800097984704440314742877193476837883485466480622508596990775031428850045051122261604480064962413966784942161953037916846638192437031231892469901822952396573728140478995692809975555170787194811073861573720844677421410870404586809861512268604679382301259719037940513635537631182096678733979057383743744637447564035529945707857211070478568170512649325337163874015441571991920600584487276554304593785467426387397300579785046205404445880794559175081619676467246564861116817580867736796626701687367333303703580088384457700734832018865510606425171970251433860755958431668042967900620291120441791323874498135656806944220665822462168732337652798289676016297650882527912754201366813863131553173222351136807379211729892282623864368226445505580902543779194052781809722321732225616728693492758209044593915362390267806348939981859225666378336231452283027342648289000975873994375135678032292282740094438835919125383637978094015257182176840394369125299724851043329608218677575156700566879962132817844330218591052716410950562329262661930546348095632368031057120536157178743859879241425515611931444132579447770798648946827133540250789787880529849015403663697116957585376858645407612539789019030045540628820262362428209711509906023101488811711802244006485331959141170064207976269025434847771497249042903178108286801478078665499549792392141858427711322653485191484319602988533477183091108052134075925699605427329761765809092217813586760279472676026647704007433948334021373425005364783134364675675738679258493819803173448573042041078915695933219802136118760633077171961545119832046651801715697710196899363823605548269731283563522753484677409079973588928104267194165283917967496595142180612611466515039684739726463773254744171928775537538448350037312475810342006732305355920934226681984223639443952496729978547609040069333435945412956795056539699819921664521587036036217750912205222190390686460170250850974220449707016383751516680811453047233988239685562836644017964825160652892931164515708425281338944911015783661820969350399235630728118699610022053876553542653728542791052503953279058507233729788663533232343142386708789509936485974731756694676039454315629996948137430099857504086160057289828273002069713928501933167344559489790841941662869731419473810611080188493219324056298963595377259012054894520912770218848822669424336154399695253914635892582227633576850431964865218441580294188380752301002173154912575817874200860936569011487261382968348982791819753340319526094609122513965744254431037515090785297289274693416058662069149769975438596925432551774473951579530828724078189423475169982563673402940133493335888983442721036842930361007734929187690168739406360925697587737272253994235969316307143274797379813627350438879459872614734414232212926345813745063696465310372985852873868169978555746587075832739459247132656916238870446100879466087785204853951168906251798688374065464359582646764747141862373747166758347034609472902015959393452218716848418616650325630989223574006017859655106114307121456797103510455789393601681747370429671294362854100005417321049431412253860940470299906177784285092143777225656972331767413478226642204768092670956244655888771430836904473126243116004531642598938991877949444948985844746798928116206067299982665097220896837490798986171265229993823775251830414515040420124645586271566548939130564154390850139773194481423865665995839849025894449501244199893690192498156310274720106069931058248109004459131467414670276928322957860394053512385879606899402501649660705291965932415221873324711781667513507734946649215683331281809429787477610103233139206314243759356561155931576415059235084907211089342705086522655038782788273965873781021123617779576343277421371323323897871108280175501354336845107239123277120294975195296709349395243846665693846251159066724908702744713336382127115054957977936323083231112650257408683035645514045481283787992471496492338243004963372010978441719295831862827570192722888359381375188843551059277850458077351690286096212375756725444760912848628635747482490045685134810720398065908229983853818376961549835321641142793504261822229932272539869340111174394811257967141970376880825840207825450270987067445427226528405652165156564452416946984047172370530907549720499465256593572640735444862284363626272216927162362491498983024619915733286393000714634853448139904437550531085515250998753534399790743325738582580806761129823961556430193016348097299757887428464107692486904704014431956240563663987999182234879863144094914260315231050270523173498697927371651052238912829314937690105127035799945451429660559844887162613573787478315247633213598614676974730215794878308231718733720899081380371015538213450149641669098043863579143145464956363176200621167013168056559768400441866886948751794263008058605326861610992773596156654112646838742450001045198219562954223618074415482320461957902994738515988245837681086834129951295597609338806646815901217238909022544575778074709738669004827767954700118485052906493980824262766007227439901966537451544373048549432928864948393829569707306506327974626307182119817061905338855979703834473865458254251010440713476818301799338563283566163119718791773392261939698495391734121182964134086733817907835475078792140601507832603920984114577499982296301187522606570694842016615830848903640270806467099993474464396822349499526192324118201505326976692176681468304989942903842077541545931984756267327007229051686669248336517400710514897512641924151973944120023186181586962373483380821978836235893746746044943632537342750052225978847636707194588979059180694537648869460564892736776962641326367375205069625807169832663911381470784718272705920611030512658362412525768090746730446084313921644612509649706880474575931710520647687708721901696098328340182661295085033710561764972464046266641939626488588222248658018192611898596171105950339243305254515193224730465985159468024227737133799210278302771511407980951659736506418613728109994138505462805840620587901195350306132375255938749251747739315132332425096793317228663744471367321422269564300377696395864695468566529881226885910172821723513899579175981363137306012869610668206154763907620306088726473065694509038702118283241088420365590657938427464343518154453134455814619200475620959472743982448194071905289318692659225980212566315195838333294553313379501612593623676652077076986723351593575903702181455593048997828886981250827494064774324000487243119637510485503206935302688064933345712159483872287351071241769377637291616384110718845017707232712450669381438291056040945172062300009840067519075120628604594814588865540609610902825139172478873916479508156240227011545922410171856123566310162920628750182264572137138712432995838491062279300637575032839375064917613380834069684236293406597736321747405315766725429903995993304579132101517942616678994415814335062852425894535065927382663348703812321815228129332128103650821227061726317465332994788279494558508198774272773342243157220016590324020592022483806784231344007429572386195531541820114349456769371857266298285750799276480708894302707763126367653979907013034546922748607698365997748431570698715481456793151524972016715850577875376759319481102728274106327696948124423404192123826231149139730514745854500100405343899870936839629050229632370933641363667373136606407258593642429634359671930551628478987115714556229323222655571333033731793936420104830296584228605942211680611256976559656988187930217275722168811733300195007026540113731221701382615273080249522510556347478969445883970879783625092661287782201393354325381947542865610604329236467367235957010311615983740465245388716544106841814328224848387271748678787411315989550486937114207876775337195480651776811782554384248251420199364978075221952743073384313284055275894034793359158339320181849427138235448783118243453000068335672857873135742393491022686574164623261271000578301325656431117628048998163113681270643069105219838909044356641036075466299827710541645078791901949685105660089958472849694815261940613058445190979565158693884258338791922071762489527624921228466727306544959007086561554077376507846633114229573318560394891950694363290830947225659566786529609609078713121441043431172903159834500525769922271639752788574623368915442193689147422563718756975153550392692073852731817841839923497252138834142938160246035408911139472066011750413618794655058557735358586199155007716221132011813860159695557671975043381636127193628952801893874117715136051646293523943876771084768971406371080066255926182666540242795608512910635363999095897907919729881364908028298144024891041502899414115797877353230139824521803721157915945897195431578257389024377491311369392866115108496916534591423244262280233817285177922406898132046414075968564303196272330004535903213178984365608677877810873472138749825886839509725224515930039301035895696825631144594586687822346528863562358683561284766197733249325835356320692883198462658901307129702914107799251627091468633738112064057737917302806492744787278868389799426906594011900992801063282307903858072855041542847670904584566441330055336936579895719891089948645089903350895507156693139325392979736262904597275810776386176244082043029638564413623478712817964332497866883291197527879073673777236367533237304918478821506252948447316832313981233392513082190952342844815947750785797631212348049716191684551064960824821525825174319177569129986469367104680116360870149621907862477270554205277839586016832257043162547751267991886795857195736115270789606070446502488006663256206345391115568138509789268236706676208162040056227207760349248411657534274133614859123474952689915402426928902126782068040920412353419283195806174952063264041060892621789591081341687749989590951491117488730898068372292274621234832895738026787692489144163610043066976895877419149822939492906057996946808296623583683438449847272259963940672291586001693754534536926315011246891247602347494865857355400589727580377119457238850946606443868488176334606678185302103679601133195945988561648681436126209374548517244576354132676925857779609184001676690965644066121014953890939668303469442526750658085955013589050807104697177427059558282055582909933419581842531894619199221672631869642478907546984585810329230828521757641062382364525814219439746652130025193275272938790775814028149069485618916516031500008681758522237918614306482274998999348112229538258290358789782630016043857163223451444812651992272030358859830774197343613975619036711314934663888351488895041579507397848693089412467992285695518648936842746796884508813519712388617989293567182183587918959731627835335866264098280846475581725728659259627400544927496916594659388724785760994093229236251552407324183715678496681910691844516775886968197406619087256277120545686781179591961662741922652415647366636485303038387614422816737570459284656994973322858970835901583635859072777428232988437109587996711179190306805440376609792450393614441275888887342484867436148440971122545576498209650336021622050440065580524248222387160060797679222046621291652497166797871066572778216944330076867863329823423213413091425382701391121096679285806329960266850438026520044604527060778449171259622768569257152161055699189366086104285361831150624014589653435079683359382422883141465951421972569285789847532346698357792420263149604593662627224572962096147545396764102640122453838582124772618046216628199699420533034895758710227227275705725846418658108764262316429828333283050679776337873214662627312542697966907863550286289576356619421221008729656867074258410633985973095295323377047631424198461448395578625935393498750070631753203902797523364964173573013527147802454186095919093484690823521564092905166326058963923196053830704800536247522455169664693707270734105006888749822418961870364864890766869713324149287722655194553542856409732087426894465777361059586176466436928948307032204085180930874297620020647871660346170443217419303504400578308888017352175737368312395565797988111394631073333200892630191544268932439003550400876570610634257400558239145393270027529740496798833153538190920554172368991521677186806408948920530463067184848495107832324922973953983358081486330759278844472546926198394074910364811226832770123388739909706149616497498778256092174693836498423093736727888358010560280720812488328031178695335410698726565780209282972408204840075210768677682946687687514443704149461182363712587737192509959282399855070651384562740394342391397829527070511121311491403077963154674670101169551494043359381307682439337003817214457189124582145926835183551196804959980474384247970115442809600180574100562303338034780039771458788592872459146443815851180814093718282976733935866705637486237023713176382302829560067105423302865770610846166664785642096241225641494496585578738435448021660355600324969311291838952734354734543161398767859550361107537007931201985539668528221950485329498262550889175145138081191292915085928883595376790931596646705984694540517364947123812312818474916096695928128172076513538360043442253061238732669769626924636780625341326766384812352177833305788390540140917102033343046323273748224754951187179559017232942087536587083048457053296794097435670260347506353783612241896290127330008719039457744269773309634153513987536349613056243273403377314805044365448445764614943678617489740518408825069834126371099490979853753824926640928057966298567137389058315929491740198189368854013815103037454500789608310310422001433418281139942792795031116665926365322367883826494185731375787742990590039527014970820997719231412367153001585179220848674338015653190287270698882354919253200679694770028737873452649138672418754995166858560599574033257508978358990695137649677935655749117401925146510157977530125426832422969273869854312805544376304787260507418488077544763125018282175756665407858854643993186632746143063059091588453294471298070702348253595219306006853405370104862027193266247226953753900118651286349270433172875231207374012076961275180816885707581102784149324675155303274380088470379084218226895493954159838216961417537093494589139751835348133679834226930493158427649789845092265826025370584184135831103553641892591729156789933233702661423106717070717408578932308105498455704244576520739952838440637837418633252785251416963147561339535226485901872801100414952735653649584106803882439906526553573367215514907330938236593951173712853513030429124363823756716503680464371450112164580528694271818071228636797902490214359398126597550138029493673732629838776815018817748574058037622512072899885858983179422129668912823426568254632337628068513741116766211650959803815066472396264061124717479010423833254633489824954325477067270986221837954166890306460860347993633661700637053635550138015591802527787996644092847522255048997487205788136546643778474332834663973153692173829116658697943722188826924669258205458659725112235297404329641817343760808477163576064839124136763416805592637802531147819644740170381691863810066097265092938051607833166224780808939183554465101596893846331748462064645190679379959145711343516413543653775017032300061776538653196747020013416233345894828807021516024243766870103849441493012879222422646451104106269403034544517272577826344783899543332572137223880194963327990782582791309375982627327293131239847763589668184615273014403644611699481378396159847163064993623340044358208873426413306632216200362957197716114548551357265813966380264037654810229276925064453316956185417101394140466410757461762137520950424648745039250320774585749975033754243634604275893868999006004528501798648651942659699499162300711132890666658287980437017606839642994396995338002456927129117430626736515906884642745351797508104512850029532224317234750033516658132362735097887341879548784945209887462300350446633468619037302505510844661974275037068054358883778183957264338296741653421095877574106698337698291555778585110779659467994779385601823285102124709197349358039913738568188428097390775913931817021343133290199673643516005068806187116064677106167370888121929784568161989085309577388707688332329784394849251143580783278105339255494634590902395791702716934969101398843914432365284973347906057714335179997393204163309776378165452559800387501242684875280790532921600547003013514660907803782668054402238493023404778454889785122269158980214056190725861046914509437548582635957090902010998174375860297012233470450949040273592620959419845479096526409761831725060117192111764900401456451046534920621127408350441764991324022738850533603272946321750195782018304977377726479870963252297076842224300989125496295437434542130480427330903533712168814819546426587569123463741389654500909322879435926522779435996251282500942452791728721181856294675110650794525960265332814552011473676612067803202412191828094819288590931263793657196721405253647326007985375708035890801312674939775995406468901825841557238534385561979341638226826528096043297236018694567755399296794274344590493725602266148231413463815578632517355942864947593227829753872633382031146021590246366801021510374887214292247518338287116287496518608682960388133127589049728386229117074891244916641350781167766721406061168861656563872117749496599284987973221019240698367874528683405551626145158245560474929563262562159146209971875781829901313799278863368600933410144230279347109248165999989947551501344912749291570354786779379013191627316805130557052144285900528258302038644672571976217440853098536292280808634780689854230083581587991890959283384215546197108073433003407555637502786749763717873814027788471485033349417588602087549860996624542853032158323164631516345084571948921564589067120388007249131567684287963185080149666751067907350854957402884858749419503520641362505279018220756165270335359216425560229689086700168020823383702535818111562159998061787631223021073115856673882010791521753211899422342121407542205673266274330212254451635283617340221110181358212485298446901872103470368929936395190355252399385046063197277576419227415949007869546361054055965908825607674187545994249063629732403696642732413234428688823712324385907386442956578954950159937972421448279676030893719805047166476032949610032348274770001635669183071849971651041684694374906271097897161515776378965047999563889879136861634138691275427389936136632661719392385810981444355243382352968747294946685253603014007424935334520070959473442278649274328248514311252685194619515472840409135123088413083501291397698016887639784141737154323150791517041658332309831661352308660851012902461774279044654177568816700556963038497636727277104721939648804369396218298083572975168585185874047027226845687302094633348211640163038582292783616533998698552119825379790574767027807263392368285834188139001016623807496652737556375091998746267953386602092542546476372510107857271757550282094503001363012895800215640303628142949445942716013186482946733450269854388095498183641158477213682076887748216500966450083697530674663419361529791193640826365044282121659873163780211543749611567828804719792731110215982177413971394599143501966578409766906214484215076252868468647806285736715001779201586194660447569786161549130915060915847395891720869920378048671709527362192153690090407390270045418882312464205283726518281180180015164817638468175662695116069200784655134756985901599968479113194794727171088052102300114969151229360844978112936446112079354445869064434072717464376989895250815006685141416474003700750228162675623131081501589880417935695431804136118382958339691471342521780329705053191351099981976675207141981018633802977921339672725892904563294298274061915323514264645762581655719585130971580495017802917324911664712283696669871097957945565381814576790455101174735834489232774609240819249964889337106860256731560052646897261807975655481819937782891477006134940147021901705121058331709521716759074339920619318206574588140627270697484970347636560907697951917837722943099442269496316251346099757746025245542653663523137415032277809966376282318508276486149416157658277325981763536356486140296559660067165591551795360442074633541439493401104382692522163233688661496699707773791764477324290797386030799313639771892531543467030146685675855558331034269922157370425682359367462089440239419725016683138857115222635246771381268429085146335289487983277970575355708406978756849054183810049616518178148652570550624737006796969214191302511123807432709186536588492152663884123443701053538840750596277398587958143830066938701939648511737517309392454457507025797781380975043364103197803437622624148383644442823910402221371754557432761863475835888177586845849058510029666791140067490577439955550024018660005582220199776694980627632463994435178839751808826127914219893857414652992378387341038167099646452329421909340809078287806584956793523052668796437897865815495232844501447046394806692309946624115870115621871649446532115558232866870203869657133497001325488341461016104560285400387974041314287356015867234789275631419107188799370605980662755557199929877007830899494775277604165133517053016714818355000042875926275667224532978692391765379639371421196594818684895515200590594915409688119236001231971398161938591984723065775796009483874730626349279299872571402699083578860394292778380330741903117513041800912719243884694066467264944614259300898648198592096089933628749858045379477649292145095854021643385026268499795233950337032916526468064795185225989630224010851346985296515392660878362790534131445483281488824766185779742649667554789417700023611853354382869439172764434258507455820358539556940773659456548350306079115918589417064531319423395894085549551365701617417960330393998619889657979977349347508683690020444585159489314567307755477077272357126236770396791192095949901034442016804883146799639101458634714359110026583596184195270834283284621234145122477675768440853931534078170157350371365871232742557792879259488894417569883023427616911245126751897583223197294038609013602378360868102046191246753061413317955780458704283025348620336319206288167338694582064257497936071299564391529686353083225929417931869764211486433577818494007503235183400278180836343555992166490392474823424755178075651921481196483882652883623289849504010600101861975134810941624264175583235646730270474449353075469607965067782428496501763044804387915292735061364769101454174895308731170356711601239648302435229858666130047314833342397621649367466148983823575594736473613112332308463798470766765689905611552575586780174609032979340278874975391786858132525839411928802168974769308928610071560080090365096699505975489872790469031223604198498356517016134886096932979110816561241096480038046451304937596133343374949019321146984917213879892507698807888553108283327219938468002097516858435600387970851523665136675978427545473411215225855851827441692283792044358881775084094131601115353677695079451986966957291456047622672917810939243644103945966787741667221591428610449082156935224550932316230127713110036375232012234137362923607421043608312104386949242820020771002458094001204364323814890412574677432046972837079584070677607440048765337784772797667251862146677083364927538678834666159060449977256910406438093421239312022815525542744920871792356906190760260348720552658443213952459411679156074613355467486845835512428202410793493407259989962938793172037564595490689812294497929578903652192876566739525169616726532809708581955252425951199838855771929882647408436547346913442137830187584046708383429803277523480000421077907153221175468254968854995383323709889980664737083047001007036130207146520626978414437303128970869307126002945369638760120435090494761931450326125207566217052096946998657710035273068643904086077532711972404020350966707762128657532306391174496183794308356867314906499972064508394940275957933594894703064792584643574742279576308506536854700326587016602817732718503662504264044271271609323491870154490122567477345463804485113474129680623136514547922531377240308840225917960405866475284036912145310976118400524603382588590653105712463609790124167363837223763183038794437083215664125869634988067504453246293816027993846608830581600170814101369741613295618108418631235617032452704726904223158439576297848329612586258078993826855165598298595513736956291524209715947235813917405225574147863039186140618790427417582055073180361532454015397033617035339075586376382754416336843896726731781404628933051447409123001053388527149132945212785595653879159400500090237602881522271262721711598779862795529662548146610491037987273196866066131435310596872881501615180336367115416372038257409742079343262389880132001356994484688560233707625594046494665522338316731383053986741662408203971039505327361795320008362838343868504842313693021274200286683892883110249283724916066313050770323652807427901488139388384202754262134091866000798644339415496184827547732558041980635746524013154776437351857737930329624395478517652411948452163833766107438488955631920764827739169532812902850048821311789698970858585267905145124285937854190167170092405865182230815396793543405584601274067725285887034544971058497766684310697475978254297700605060997308134073008147278859624457188409825417258172798796776114469949914476071489609655105061584346615322948148562384732762109667959923219400996065693260301645809934224792414297828579110698025351873592639842076289173644394688592186595214845360192607016805897214954021069102683137434062654205706377212841222679377695956839754746897622182888375423373187268239796821905120052652388719501984047332675196371125798187142269528904844424451191640657792098475751402719422965713463768328208050658581001579639067356106873195147522049164189134652000292254264169172345239187717389971249868558830727886129997708720140735620213313533908284824424346738703823586658863496102338440821692806050743563580820862412590184310154281694209607296539414601291024409529168586789311709157581573432090730044943546555070104618243681854142702768946639500918196335796038984506356669761517649820906083087844369136022810136378826183013216247485987704221541672292714650886968254829395662095558270730017824862639353319317815522734132462497895736260779194447338988288459737741145475949003773530522247357459711442577527304214041745986000745912147357639454893951104168102796673422493593920628784968466587814600259789601623134676610745892058227876062201414126821704202295936180637629458832760401646124056133079304194365467517239556579242073611786383091127694546882386708591264621891414276277267000824372031611235695823270009154324672109865245366179276292489698491750637106211880164338315300032749059329123629232720224648235001675976113484163362149204206683222365894610811973386822228396900679118685912143247749656407708887022423603216215636194879472339470805998163310760045023173325794607849991477637458288108291832556292404400632305427520960244885119550027843346411229908494091523950211728138857985169918116604645791258439696111287579234402991654416835866229033705527500871008006087198211580010322898745188179256502591426499316881370902037632330642406278946809244018057066577965623418557660953218291584848109143993773749098069726241799692252890421672170451988369213606687589563323723473100482241489638783968394293688700355979741005779961848820477354166471165893397348695805643471136959020697684161088964871525769402806612223397235141209680634970376898448071954994923397762398980571474048066617216458199608771218335884330438961080964587399540508411493068592317119530021070864723988023967390068182657583854699209992452291922820025568728701892851012211710308962635302286274083360179728122001927244646585178722378312268235710116155363646466183089229618650665363101392109257425068833025097022206350329268441951577594237424210305278680193451183193888939396035545495938980807253398941806154248108211889403561834892840511922932029090345844482781749362722600911871300556042266546511466713274006592429406364562052438403738765447683212823808409928897314351129512362561226130259271953136062311004788347357121910862127228449807002931922574666854928495173310551479309206998997402820225271884233078853260717404050000102314002372804398655556089513502060425900377456910204156046185319289959477300606195284785312306028144890940880654702726776775547351378991808601944279459874011809017849870902318797279932649928930870427912376977833234427269291270117629429113375299902091611892673171270780751746486237058472656496942565781338913059766595940151089698716543484475010612980768331715544925767089219565548007447347549127844255780132196359489032592752498173475121782823935376051028878264050591120602227861182662163797605048737142182928491462271510183817673494831890820882341064136685814366991110785439154682613393576356628112138597823895765466470968284015082015272439227227171284612764983915896034281785474907054128974863841161795617986158396779734678035950125991722134624875980304111652878607168604400291881123505429006885659306726633467212758347839020115714370814568052156826349351910829849615766895407407556228706868847290293027828315634979428585866077600423248066292873582172618100287956135070093062922753064105520197820541942268928593076644251592568953767553484819391090566958082373409838226219843453923610914338327172436516196150372442914655851724076477093883583696394125941864722735945695181895320179113501089209276060951207099318331703763846026268155939651769793849807999930757811069757952599698396892708971085380145460265761301215344461342124728235585246216794528238841754577113861095838611052113785013223488835744287664523512488371284863199252018233021574889656399159371823787115648117420074346662031416621600836986880515104529681023581773043994169042782750672340904482557455863061893283080616231864806249778725769403831446876590788480191402515528987700277334277219239347598545942771438027447986484812636015198816873821755777826367349750101937192210961274017401770005005703375736022345145983539343505403849159603352562490184917248738710686097709168715421128685081203613108669442275439598632934536314119368159195771224241363567357845884433974943955656324939449983289749417346374346376320077780590286359970410209204651470157062110439881128080962108092291786615844205578873617556724263271921427831792700733002137843030456707606876765602083304420728333367655398405079470527951497103970288618139796300171677373129242003124080622531937171103551072696580799507521299258497384508351535081962537334938854177441015742962143166110193413198379306567243786582128409236978826173240009832390710933009697794138159577219626228232743604770445483258025258229352751321310751894337865781228675361352374634439113207601058691973730180237820388621020828613664448120544100976164236326658825527989094379935077604132578509866141840150319975942246126008747646829614550629732411995482095585406154889958736891600468832670390607685760691879923210959947518964770187344916154690705876447281670307821113735476821049460429150424350932203996551499755850296822225465869962424843571866153200821499132842730265273609472129962943773413449946703166699341893784839506419487975696348091922961237826544822316413182617525056842482060181174584639242212045251896704396987962396742515760542572700381840621242201199774437904981064735312343089240497288783179141002207299118350084558882497012369737617264161435237625545746038627382770795909657181679534885276614299903297530682150467751303778271236504895604603901962147767194793640562812761236349713576477003220780960595553481667698390058079724998857948407799559759259844464714008462142584700588007998027446857369717577991896629916968971877317166775935414449889293168804129991571626908926537340653525258132600748786260762248296988175115260510790171004418272652884000589993013705853028737590287528179298483721944378033362247406523548743607204536084506770371981215796584635011761676191336365984703126377188517938936914369656421947721068894213785317923790683322799857900009127114833677941496787828518335405603510965328199724284053359903381297342737960560101830538135147568368711594910710350830601732966258489064381254394242825141416324396106215373698929369292514907890856253128203045798945552590307859431716743253369726582063645563959147187304519728130491798184698863075835884699655185320038825516466333229982929344552281425204459801797070220020326645411096744180770384715777499045355477968399477462534213707531200785474077826031477721889425915593554105743740384565926645318533426557293513609154263964794016350898735525900088389932936936810327137628163786650973180132196691717260096060323727862948985102202640173082121413236623869818202721465678541824482280945589087091323478983893954025858248693212846238434761428312402441348465541351076929178366318350298734725120230479145179477650349353911900592439657595572850572607936977637207523041838505584183191726208451115123006775770461586117443137904396391979232923538417236774589825675668552356637580974619312612893809948181355255763338630853637023758042348088266142785870593578862783173812742614058156683026503075814934064148980247592715664333088538462433459473498811166040759912197406725737997764582565035197903755508062148441784622454142640469907331067751397285133093891606049622131868872178354577005571346122283373308504404165555011525100278673559916904341822773735055366235724969742069943566313303624796973034919590453442280149422802577051010206038335048552473230727634387186197918419463572641108745791713592073893489107103146878214397402650171953931087453674064790717829859578120640946845195154719221509007289603991698050593500478776030480957022114445283462048695142951940832887055900595209903866142806174168758938245625607285354304069390095212337955462772335666734917728274127967702899146698110035525875285672915517379701036179332394700375259683671402296677884414512721959134030824035208561901168041212826750340789096723554335010405940360454792626612392628813352243666948789054762249975886798923065741791455293804463267296576970534591833082127145373572052243960965459120614848454883259092792662990733490878619624966044216088910403331327188410640589703411855675150691635754877226962928647026410804072026586980859851089348271002083736091281584560547434301625578388500948078097644686257028483267745228726865080052759452521454945606083256744137871208119972533141556565458854612609721834391769114955384645396119023702629429469859918563032797544650414445994595583226674453899421489374542999418321693155697525094772235274112207991606429044599707749245047494917727142467091502119349464199336212844342891169462696388814510728578226416109328225849387545616115977054402442231704736639139302131831502505172880387015200235923704106740120218563094205376973736270832895520378852561800184666498906368260857810824559785309482509492405488810801489286661132508014250383390880656815942272314715709196685118312351834204752433825824924937365161455717229798466017943141912269663288214947519337267244091448601939913510891314182075185204585978807184436050722959093050940713977227683251033331296119856604406781778805310915149335084492832359973921739807678675169307053651431274283164709272872058895596270954548089418021025340417066700373530177565009606731012043381520321575229013388998317441668268560996897267534266822461736669352290084759113205344631913543357260682784219798910614008784303235131582154696815167900052230447757617439259232573268909254667937807167336799896893006156528338952166318886073435555991461669315132352837204130592124857509534052185627329760517650305177567925593916130414484462670767202115334140969743501721224297810971006322996685525374665788459983255762998676532487722491758685115824097467479128618643914704816938515490609739113566092918481756359880841720347312042855568271924146109805405692939600346102092209105463191803533629074850931205911756403654639717216388786881541126499327941490062239522629979914842154754447586095563833210850500560985166970352540924727802664665255100296678402281141542172429710880385996756401181574148662886870620967435629148702269922166648617637245912643404103639498988326978195153641110659847913056705863679657443595006188187763696965122712866389801805320878653989276135388873647757585750786932665032797301850821922281170517797718746624148208609630784528767961538658200747488183958343527337217015917430457645370592170148313211133830769707752827372959327463815469941296903486598024186394298590558061454620055604256575715150597491752065865527433799007853967103648995473653899839287393036404063379295341984152808904973273800413628482778687475948313907659848605930796967331910843480919680809690110584564644145221741187620671868295313690889583700259967550232109775673159449401340313270723756561559597407271795881999394332307310513876146422202225735195164492208434259943271858649461363366881174043286442976575902467329830037314324500773600002989148827186327998065413541058887494233136762564772399022265204099626184171623104086333892681519586537758016268699321871619726006753769523233836702914428541524923484548070874946479890166030476459470408057367557969083998768146565593084110743709985511728517241572248120791520982094217838012759243617837725790989837708429832183860382869646740625449782665396980060842014739907927597906394722713229135759036114785253166755172276066327701774448717507504088109002856612960443966504247113272272118923100922363654018538047796208513755780902755160638773863474736843386507390364254270360119312670243191877834866796710074454546258691711834607056899958404976569053130645813482163397356888352450579701124497892573897806262850789098821041802008687955944978526921734099495152296914562248726675706698135677404235282669217858859540720728841236340334621541286701118000641455068489777311976588286173198783613810684515175108467704052547670153088510437754632099520548882514875849114215573286012446613311069569892098701575590240629290974725482128004381279860849232996179769413110183673530598052574187999447799705164829136981061780048331274578362886791108706412506293185873501608300290120145324931542481312200261505655255003114357853570861208485975127519883383892859135017283497408552409155799188985512880682927433015817911095639013550589720946824772158653269184723334597128071455928486079379523174609332783308663809099653017724225550070575406451671643650934401379301832195487954703274411716470826585710437923993502310788479543085413570817183093124244292602001968898494767671185183146840406759531492587046670632259857272295095578613927237460838888641325876092869792489439349405544660839278896065665520992339825401353629758262084540734286877660501728042870142489977447351468432783856051292039781400973396755897206884751745454510972373283240662187988275061527601095649039277181873029296611692662559065261344008444154205405841171589394428874416741292233503850066954875626107639065773377071022379991421612184775470531738866214749726890743627045745113011091027994299598723928477125037937122842101028860542415172979140431168500647478485861382273994457349890453078121665290360613649413993021821698283606362558386769466613972269861307871883689205267098890101418650819360170761931585759012852291691061299687747920271630958908381551203080316943562264507487816889889561175618040277449064933181167166224670686344851227511486051554939642355262088611652642322173392389136953036741827549171119134371125351773750287903948905140771560784416340769431506814091338820387320688996544906267891523931292151205401104600008470641200294094180481104403552827044822865362952258155995255805996392871611718578266024856784643600859279432396273032697776380824896596521978555172145578991560123558392035604313314609188292525298165377758654103199587946589969799409954627865539038045191708548007300605311530365417589982286370138077653143478791193475007050728116381016803875583829906596682448539780397194477272740366360126194045237830978569499184000595722023703926771768169740491138645967018298747026249711891265989237610894059258389011609790881289195251762614694928322431470000382482436551486480088897890333822303582088073389376805960719437128315419360606777451748453919751615774994247662555609193217704111547305624675838492095613665747916893694827121789954632017398302465365231322793334357132466757010692274877022820376310292475364005933632475565912623921300885238304332151967805070008150477650890370094990642628399328489837228518179676117209292479755633862383633930728733851174863821634352098161564840686049757556531852142487340775351076761668992039652274097614644414761280352751459550831525239731541487238463541592128104253788924397281061259669619145531966483630101056484540990826385732990680593667512204276592216279484317760630238843369788536858761277329443494103081488208536515520748271862375927224836200871769011382266286526274570343782996583053349719623338198404463018083234644679319880897527178474603703812887716878589695974370931115957045245845216274754770664937763848067530268420277261121683177619780848900330713631542235212510817556583140979966375882435826402728943628402255575795699162015559112265050139559491386436631384945947269868844997594580802121480523800891506775591140143202893798216193950266802785431587659185669865091641961280223621489004036280861205293324798794006662041357762815514252229289359258171103796669499558537372356051386254322905155535250654239848710749102327701640455416190213262124338373162793527383759848316206054516114955520865677277106190622222759456938323474544247380214964861712152485997139418271782695156639749419031750967180979908234375363075369083884428459142466524557855028328951403764783594307615806629931080835273858365619407343981198273988620768280198297240312217789274984238205131471129678466630243260044344805252525925293484514064184508675683880024715023633954471094045356668375276396359790153458886695045242241451460413213686344163734481665510694663700695713616437133456870257631068465276405877525307756244008728968387613917653822645563918871492653467888613759954493699805723050245890282753194497861899285499986322056057288650854665652009066157896531905745438287946872821692670489706293077438413427880233194691121954344338726232908650582240346332302071327680278302487955254118108708618571456857094489681462981670671351776063025171962845759108472304618080616013928257989159460913632992471633617368038982133984884611018123088480916428822614321727202249316981040533566134965884595078383585972584617478227422900076083826683836434605141598241860978583539530063588732157447857609514624001800215986191042030638035446385605044517111098393734043877099920394692759788500080506069617876186769732773070120491665293053789746472784589183685358312499044485335897388125292977705958557119515386321483850684730094833262094831904767749195225633787466032564084768623440739121713010137414331596074426393152378008645261021520584066491884100823468938270453313364282810402611444954800796198692552996303679459615922762627317345632954327676531438921325725496976515438981295659292125634796178364216826622448727059947736469176287930700676914791148123103470917655808049333277946113416233089660133638026862315293200164758663944313670373751021713706729477553536895638969557184990157158923656548978627838553185853512862915087339073583485058781989246057594855345694673865833942209313803397195141555799302951601950434350200644659860961185838236412346470244885786567062627978926003052161596716364839727727057840329453255535786738787443999998307865122374207590486102980576438422746577891336567420959346586633823733860804146310654934178858309829301661481096401760590878612845600288543825664493228565649220996779529400180330949997494603387390851750626187977678847572797101606167812962469735344437938739899737877691488318273146462862157629954777346274837549831273576509417803722363205061387379497371968485234954976429142885726589366968813561349792980025675554086222904193150877253714164598733712360364348662943861239116696786548775982543671140687304183768866578554209802959041541053742183857950128651868182847729580904391751435666433853618018192556180321732416086546017320827204675605717445940897172284796976708128160810041045706244700179634290354351865201269215000274646037114048566367044504474619966385666399205750857885482880091663773124092246073843148233997670727226954519685766977081511663853333075716003967659346019298417251319375332684719857551715014200485081423138387148578879866088955560595404984258642611027467591001114766501858888199298761108684646149360414979622512322324500574066748423190507585773044788231729761012665175003270048519056336264258743489411706454257418666064550404002420849367092682346394634022968461818496520461729995896877367890045023781872419191984647418179408383670871183372368968886348274608914511359058314863757972218860931146020050510320176815352158115548411025126164647581378404833152997532497732461402057337595711224038059219405049485097408758442625781856688953223420551318942110385841595272031230091499945702731691733653119428530486988536811020415268507917275280426338641711333699879443322082336025395022721265565772100321857628485149930014063196865719091123455653679868628277754259901079738941678810078711416324217675705290372903128714787740939815759199575224906045382649605220058272396424163954948690199516793787914495142629233554963192016352349022838014787202179847522147158320137550802490099477631991499492841902169742933919675266376731054067337723190640938046296757030694201975049766105774727353048230490998534633794057646529047265488791099655804910903042724754766032459718610810118488090094161921325944312438606697758261284602396063307716104480691271952122596737683124105137427416990292821709745375764207415955872513604110039922328780233660730915054959651898363134484826701668399037956770014049148030539169163862472865770297795728017990749678820281990071138967672251180955835272027699637853631682172172222037518850880330562206048574148592076729578230341282269378145580312935533486806775062075981258059828337995994987833520369458403518128395943742656707299543212217461028765102318570652002961127207638737945876247581354932338229206471641399872480262819914393121989327917066842482190452091135135320149994871566320942940789368702484382940777163784191616575749628632779032948316056997784103646846696693310902978628470689669722051164527707108765550815250859064732051741510172231870539338006035842212491646385285969991691680986942582435838819642412867153216597461725620735938716123722340225915364535414264617541241902722569857790700332852889931025366750735094807648922446086856466812788341259306224770998028159481951801374032305842642218611412345538635276420373657891449823710120118866085541851511953816573654552518056017296427538051069665997051217928420016395779114515025034596754897346642044568937113219580367602333355772817798701087960818791667343987363253663959634570194506295575771718282983214832554355777227136645890947878856895510042932126090785602307800903329883598808768112335349166971658184011861821733245705257659001831592935888364267787314936028021385332660094642695799091893365656146234483883516701807090780104310927314644587952912529840115555551142968758444500789863455461538687421694469798661854989688425735831770541847282484623578163224133444452248812664563975440323494110248250364659791499479177373732131570498694341282718135628599699537502578766088557123323154677871098722653988112931685086589842409356612586109186984077003494110385905169002481410033926063091759173853722465150907170641130903577275958062701009911349640159546228945226644773139247239883987657704567036789620629346532639827204040193869903815540270900033962115180801690855162911589358000282911992814203645215557880201986245333014674774536677683949491461763018536876924305115608225959398055118741322271682150269248727677343915432631896136766790355458570026117403531264076492801266924298399713944488667562824030852793033967109993602645928916230015301531846438175165885870902906935648454434745065350113414398444580037596833082566633837741228805460402835226446591284429372450725012236202415610839739481556914798846415533015385478728601417264616810205734860472769044694024921757923194360895348844682460042361521806780689583601711240381813955082629458570899563133119491742883582438562873377162440237480334199823035835624308297423426122723909802857805287860259352899889324447498720862065279437343686226465035156640406219502922891654122761803623964405286436655668035175669680363401376281241778789936461953847971335305246004251517504079671988172200072796298782372222258935372987966844818480192680339656410593819845613066237086784924001324385506737605916267035261542916213895000781262412163079809353418808821607181361508823075504670472208649676731213860113536626279580299142302484900607287744830541645546710006807037163902662724279612133691616760788439230217791206449660703235681733568830415122321145207906467898879581520832166041769382602440958888838533948298936492828654426858079122447718600034071103189469070763585577908220666857318535915127957541476925679178813962605994953883103856685990222894166338104117758327829194359055152665374658075748340916964406062814848117912077288869296729301706155621197392622122312502567654180056889777234116724917827722298217481223891584091180578409157015628837881740525002708988729446040932725092960539191763937119913051650766242459906013858476529559008390264302388218647905976074152033902890629901161118328264103382410973578909143356167905271643414282759448596421560599417130989799617365943692156488881588328250767846595465903108364471463349307782970848502427432586198021522290039197825096741318598866159513709683374630883140545823581894436488166598834876769873061780545957094550901974904254845264562388922803734728443995865810054452431244091403318473257952200991124753919472032926371786510589019430918849744792166440698924753826948974309353414354515148571119515188606560676464113381511855245751828849865395298918576914658584668796044996143847747750194787142707112290779326283445175826783806561271900827833115239427920551605093559357873093204878851136974452465333308568909674070378167616209598390671700278399540098929527722909598503034649421165701211576950564168242795967845925958589490638081732660046501013435828136595706041003926742039078110258094464878148831895556844367004816445087471616686828037183787984486614235996211157853865798989442885057876039911458437962312187178731170174093308673067387999636313753230339763095170156586515359187581863520249703017025527756792461329855953540232762809314854081138312410394528077160573009269100995038491320561472563412138948617162755378176473784545087233584756498261264459761378927834964896663596820309311659179878018913350363921180986687013395087010560564543287841626644591173308761263512495791462341252351589270131176138358904878721274856497590409342564420881910666349017849080809018934741776289209953957983579201167065222564951879312457305826822961994294847669698375730677459523461595828851680209071502062085819818017848270724603262756629226272951670071597482529711011304842318873077306988931952468232448327215841734757545137710637432029876457184428730334755361470939467139318796942689311934130931123121086109385068264327202610563985931057796466381340130559371349541468753561438245760931467945098665317235837717513634048394090201365002186750209017814678061922693005407725182268550063005843246138825589022683959558210339657252561715970580449098564557855675049673016708154850079246647259025459993107997392067165969479524227130091754091331065758275554090291947997468731064077485768814997455473734208572365064311201292467060918054863783882764359901717109564706723690640290227802448535582381318287156181783454749393499183370301499117808629146558375247822039527928164069558956721374932039375783915449597043526877349087371353194110628933634828805218501137116342165080920472462242014522240414272868370735332393491894240001103949847958592384903520127074623232745266000214504828561234169282110949201242917057449227663727264722726340804889241037240042309159057396752053232061410550238157090576538105092996189497824611227496228587554182946926835984560745129802935073900733967301980603940947569830104164355537356140593858152260660083945690715950157333527999476282015443475362449649558392023445686874537915391776807706516380869860983974356845452470492319019748215402240116914652391710742202354133402612521239940554068070816472510282390721977008421095903616546644550534529210540449960400209644393654480270408130899837359287009903023067336107967499117181466229703515815395264554301580015914308772454895993222057562724022121073858055368712895069028119774582215869964296802946429875963882881201865774864382979904735913341474148497084777414375390457096527034195770486122582513401911859616582687602403914617635869068547701060003940374633077563800683879602535799857499293247118384471852756729490780940548704340799259360981933790116652796631405339046619085680959042953480429888527211835449588241336473691770860230813127296241034880832301315855654691592948119539816789275653906363011639880017646142810508215927203681770638389774009963890609100609862217581511294672696158215879460472625234821306643050770361233709916968338198905956079498320836557329071539559414654193551765570627902529141543760845986576081755216149822368261863229755177043271072996775786502537678124592794374579268353005775622375268451954247314924562993247082206000356094144369249002941042830142839939017411472595864592634606388807292238949952090537796804988759647069197942628757385258850170490508183817545640802115483601592319196659951052443696684235951092032981356396599405653586902500405974871952406124480309706470796728160178649990833990098045959671061615975321592060079429829113899072492655236564765709525409127240538209954735681376312760906692252434069551275467622021651118162127595149726970036434595241679756954698950273591764022416226431186972990264711595804863453402470552182507773623952409283658939767946048300164808321152578327030799655700152770775535188315152287754413302505041351118359579958026709490298163425286292331154823177473408840784954110130050993631916562639549494136606289587278515291366406779012314058934296031273165882373779138143175915423304944735875148952851564115881576955874531528934390238417576379407736742365126676620462362974269696154246353570733308725701531254081643707633588108257455520529422117324503137100146211047216685158443097371034801884894054592545658213585351996626920679068578309744311244684686532551380790261094271204550874029583265422380385444369429535910917973301946397686436028850924351623303418395632768419415942152447107096061536214753524317860910104483232328236949296019718535225787839908273466673767927690248862251342439663788040446419803386575502198911511386663586211692810512922691962385207057413977686521902545782459015511645614417672061376971009430941591532894494127402157691283312790165276496983224410734326603662363184116238674447839224663869965257908625785931209606282286592816132990358943502716410849997917840160119011023868808249550887381456961364961914243369346107274632992887149664392398349439903503020074029354171794197326368872177302399740749943609267355316134467868150008231476339455248193172125312665696804517370672826553418357890335436354051510779377548610186894247272638945709925925546707365192345282896848457340293727626472078333712121916849858713779521487885010748385140850902675147589565580213423232635914789999803390497151331577661967568355793121022266323530758974045009292566593877874978748528476525598434353155239535882271819700410589273716929302100755382761263654380045105085093150723442315814302871507045684769619773448554196626280654807406668263376365242295649696311302487691299403937746553372344674392986968308773295717695731060360459722850238745337827058173338322854563084810902168653754741111279888212606745668717980048046742637929896132768449286675878731908196220944807488293995074010236610579642938025635765678868300517811692320293428629116594271730098082730700473552442706235734113587369631637656985042384757893280436196803403638165032099187707517336192136443482688585494648561103185627289452282759739580324357123378911233334441151256272874125307143309893038944422080130551250077612521313804185293886183842929370939536086370182090560951652844032493132701323027423451816582083579130305730262345599945889513028164923324249067408310869668971805381926914625979224336603859073595203124812173200246329898838127709694694549152229757107368464656081964850587742328557708112583082943159238064744343617205612821825788354658278192033216445912393750839632930104220963976893197497374625313575329564670832326165760053994462456635124433861244792216042241575635602093001125829918605927270573689716166072287572041536036376428453580493645648908898934273868880363797994824002173093144199081565368777754238765508426061228362874723118941644990923428181621138441684053936159525135042068619704531571369107583432915368981125508813207778410778355977035255035139745792948685262192708213906621803329239859349366429634096941133635879950873764890844300463356764830586275773118396276078994493346050675621121534633743128486414697550770136313370559122315841158112371789794900851429666009959715664320003516354411838083486145690084451191661913171792843799557005373282941905319381768582764919600530026028126357118663813151256392657248094095306783668762789176110849719131900165744363720458737664215505164733651108993798066585760543686576437659538696562954377400496846202270982309863178237184571381527615776109399027877897932923010135909227359325124087016117863486179252145453407276561834513465588887973230503567479033879940254958770195827447989729548953705660976293176780495269450776753974555238319610375661300767238449988513730220778142290954873325707802940406469301400594102324667616123900733450190207021911874539453511005565288658046381310368369516107826603251821194958256890653565170309915334407265175287809199795452732515026248017597294922433607547677563678016357577995900595832732112201298521624807556447076220844250332731243390069934089203394692833014886832781415440045555260955096554844230668159227824641996553664441188110538196743329306209353751536509845688848869488383734204076104139846463039571143332950534257076440405605912992895564835404415858211602718575836864590026093736142267694184353748546500366367571934685792217147200626594340162478998545215441312155567585032938939036939259761524546541350201447890398080563676202129196202343123094390830748454793984715397487309873040583733481851880942310296687655421799188234089756090681161802545448908835712656834594481829787198663176314903722442271636545204359467000288672433498151687423353388636498533420866815738221342024222438928052791678715638700871070066394191807915668283099808952702032185173234145960624950193611097321387567663212274484655094397398473873350846661138890239323326565169668023811550543933064354308441239932498424476046790901711703261101162872111283048259373912671551341461340863589898183643838517729754455669719714886004355451488048758926928968200494926311066448133923222325248850799867063297344884377037786481092074989026775631234166230365125758852758552774149075250486337126213697343963496014359173537272832715032482824593107307383710247169741148637186827680769797158240840728171059953239965765058458192690406189322870643030795960656157297057316178604917595249845433305741458823545458024195530378836024492455752446928238381415193248645064921260320117650139151002944702524090138086448114006507971667548585294582393811968533909059060033930611337195301760082869326483868752614077817543879021468706128443641523770242345269197955461785035825954621486389969424529677469922909308016758832132502816109801516461680493075097877520310332840841658572874681994286232941008977536244301725971960432222844792012671482368096687893651637341369524978887268760624059692129786062599989169799957421892775861493784219742007260658626689599858795301012700861805352148003807034791509801945791456923373229560524486968138741030776237875935591115387146330361051213082807843211279509182692999830702519422121125421241601243297628665010695066153162842268164838935826395357079293056588151659899417898905598845542698292588246695124712368942900693133734287404770603407365267276427561995117018289370462246028292315566176630079427730085900688478220845392758967131528040320901492217955335532166510459894029885123299656957534682633052647806419248329966016515270388187257481561782241866258793720734797772508146539167322917224890766386100444092620470835524036163420516552516207431275513164946741479512435337255641382023562955553802785050608198367591535065561985568991763662929807198031329650674920641133532558232060348486040388267624381541454979093476107781992775266020160804435107805370117776510478221545379335323690718175896857364173127771626942913662033547737850995963161807380593863158629954469924684298400448732685822253104918539187361916772568289927188586065187141101776992057037258575308110937329013005289517512559488138185540043792533907425791589088452737905248141200282551189998055098476664743411544349936823098112919294848610480527366724663382964462491531095587597819164909316764454715038286097626768078412316060822477724359557952760490358872779289505968731635135382215686473056597390812920193753988385955403278158191772322415455713495583570657824356138200217913763998060773297857756448909679419973724807764892477380647577663071901438013151757065503491584343213327822208746754857607566034286656642433781379714400029656423757360739389932607464311294115136680122734051687350811985169042644079656214370760930134627830904188517025583868749935465435332003322976211835407674266729324743822598953359201646492742822920391475268644288639222154023720630880711169230650701418161917723743225423435786890812706271455077884528023223345479566733292371740419014435361965381344147613779333077912620848934602522116846429024302775247671902148898428113876708523442622052324099503190813926628691760330164898014997191925969349598393123179313274509215609913062754500064218829048949386432558198412607952786750074495777139379998814025257721420842439705979769231650785764517535436142586919171662721898944979767610567722160251884716244159022641509079343010378665554515198535951467790953601669224823250442421677422708353659201835615333827241339213682496251948254770937257934560921047333267536709313979977997060330487091819021692086748095240775072286199569371530308351798641982217085854537449537159384587042361620817293631277829596004779122974334000110546050694602097797372676829901488945880208559043530673441742354689978606857505593497784982581982673563978480338554118154920518583643405624774267141417823155839202624309537965368988478868761031490795308640332846294865376502920861050243022762481613670073524524922848761878416135432814932535864621234066543125505060279525916626226646578896047332889495222137442019325450576961839647985478414033962445761564742730706060530818514162735648273278835893014280044522444236524389067506635162597406569987416211359395080424210748540679521958974415477765212922014165449912173569504297518375174297780474581686982456491092847545908183609206533036168010433882014128761266944324392575472038759097790739397590259237006393898800959497810002965724364301924004099224634027836292547675758056900929217382060481842045723959010648705434688875218559223836963933228959196649962037352267929179897683894805297310858461998311342318416937580366555580622182388865288727189476012407207306091481511323042111945258998043688723559104623375776065683236059322797457284986973140592686394803305561579971196814718367206963617201670004852067819021283022590422909788436300445738187409112555255940340535856510674778455707829142035608778371392865329928870870126829643212550268039495049121043082537045020459452648469884581057200026780159896433436446339743125730622096683725047110815195475769635917261929127472081746923429962469165194916401785020425943841220768687247800413496302153615741415107168520359326552515117875150237156329971122738572694309567755522087691664137497152888105182993716351513127652867355657641485648543630179638424019554950782951228601329891940932893287366849218870095798875103986306071719521774029635239494614195772273398650066612374041290098126184473405913565326402811890851931351549609489107314390401349666556652190995701700493860955281004396192927567610757935809891253973864525777933208737291553304317305168227068703518314069630104558028311590995699433080194519610488431775041656134456336400963451139472723155707131105700053490046171962559753378971432848381289029546004972119619719185067580200528563345457687491237960478985743732438437596829578163476256580946918733362834705128963112125099730415260644052960604690532345336479917371522053543348072023948853386626166082832134481483148338724601780897336732345793891092530007078259829949728430935203848212101053419624695161041608035900571508541342958889557089275973689776913881345318903603281665829869908826233713659231797128262994843477127828054100963264222629960751965215258504669520345195389026762189188921066290109544999327943340385994666696248347741314775115277258324649881697501260650871625688710396915361757703304266705037703727125113234583434034954027750762433107476232553415189776565454653010220806031994023938019629561635525724238643136220725655508089240284297137310923236558413458024139757860061676864099439220483350073718297196883850439635085500390268476093024900261947540455165895422554062506145682047808738499262250475232518132112447376957072757044460396259467025155452628901108892955991150384199642208028250953538363259261807332141955595122395978208133387211209568954016749164077111357668018107077274109703035832406477738932071278240340439889679189538658680056778890933195759238664814700415381723177095346395242350560701725867045964446501674384585580812839602446062246901739212882490618623479176672241298869136777754960036092862501489412053999033810217957965595479470118809592155807253511503587309900134934904697827659558628311220032783903982749228810896135607688732561013825413560567116985955949767586646223221784100801375850710566648676881682219561729659721812594417835840263958935511881855590797199785619473508038143348670104785103460576318863069378025849155134282389909149923548204003313801397175586867497734722102543264160302480988106649474042155659741669825459904793209599149866119785849528906548831719333130852085869692520624297163626076902492122456246288673425374366827084138605739099856421964536648444731995753368421927721262332451168394262817685623745313857439680374114578563661521313960909201656366404856618879289933901362432639120638001257057498081537463980783885532413015498376875042535149793438649414592050087885564792071851308527305548005303646659945497625768392625845321996688021525791471814951458958249283257262254122718245107834474442335106982573531977227886192439355778474934855516464275001961637905950525653365258908991086791806614190892505561517257355790025229777845292989639238881175559431783127938864255236283077724263961688173311731082877958828670858635197285210021409161294880237768283775566230448895628359866438667683281189160650107735775265521798870229583375884509276881216423695286871809807159896420679902544905260376715597120745580889121347570760837344949372890920717034811742801811023895649692304443668143428874793365107867441115041783647053229861658434331277244965007119502976471478120881060839032450058527248779089041986192860605949039894301825860852449214264094017658237720728370782133597515437892666704194661596315090317157445419311065950358251863393088325453736385087805738967954113907275310793935942135097980350146119993155595872816300922523591086223140786238056906435894428320344627453528953850910346235505176576320747118202467335478133069279576446837154212623885586602176325198777339252203916602758917425493315318890014520749179206509329858180706961361511304202001515103996073915531552376853227054878655249454016197458489439839139646207646489532088287301889822337187141601369478192387133714294892059156571920916080226299756726274806732494547915507708684839843301861715103240624102388293151064829165839380765929207272699322734507518131639314126235919422654690896938913226747848667894765958727396828323894605144894754345500857454163437043406784589324037201610542858260781989742951983487740685402223835668620637942619601898136042954981486847799130165779016152749200430589860706999065182943187942503151198015022093498200763835005615515540033539965759640994553885393306383876889972599747762723933156097183478737646470814252965986065381786871591830843697335528577347642231038071999948998483587644314385907657310467905352965695008038922432734675483465070111187970392985888652390159639688306894496135665859627084327125955578324668029776072007048190453548353073399419270510773643098373671474639581235695864601401383875940486211962898905342686100657881573525196006329962825321471948149054737943259827129212575817528086648914167278748860169828472208424097559945056428248977973013174913092253847838151746784929561237918643044987096839600622473934318314541288933647448162279865754511059789723403191781009701055067126192461143287269395736008607350049937767300506543927389320737674115954364007235054586576602170178227051814946240943282792434948107092473155540384634476151477274894046730791696184251380842200712015528778198441403412274418521141351123979268984197927713434054659362710707553729813109072065092733767743885203192785333137591984064921274449298493679225821165223208891444617466400748114961421990091768311564792419101130796306796032259920464131585368819455317512183279676983920167532332978055279685139880356934112778357707992620259814016475638785686424275839757370600043853152525430899124151915827427701495183604489689421874466488158247785650862518898116547581917491142035305531579628336872143386543886431575819453862213489914609069557334619209733669830197034840742501874992046626724215712952914855913372810247775017025471138236048213321967011624894586788993616175688848587113660028914366164764468690071710892296761247053451085675810282006252596240858783997198023038339308724037559220649160755133195237842293536272657575771368501891087946132998763774360261800717061551175481708407331405171318749010972729786707750730197027732532368085764000792487554101911969367786558120755449999391548947997986906253284880868372135841998396665237901658253902212651226738806069098230804449524431797038555764079133368995124131340241829519037268921280369928636874896056623473186536432778477985059512732748040325557193189283741563504879659630596728873320192007634077594238317243696546591411130757576931334522953760626020290742728473673963784313101323049783872139341329520383890272929453469439853106826274244597045180455355536346771202011911527739313049645971169696479453718221084999442855643221855326794326504726327433791295454363862423504120291249347894908450834710291492645664480417309903127059557308034259045069387710519740255703156669974000745898905136125279766208270104494095880837615216356695121233081279690883345895783754131295482773445689850071291635967828583538867250976551282616329664932963826799415169536397397304277753888479922261633968354174324455842557937915836564648054658259867121272691725688682616991007958011809177555384007136303354399017100601749464087199393516763692228263939407708395115874742281785295615998569150696395364986800613350047477769106999610103755588638668004564216817195729419294060924473154674994214189479676438722370181321908106778453079145575697360390963064644632614989095156685327374945784324045092452014596175449278803147237721223884581479800610275496343418157968689142498315309923758149799837157394699670096050841341574197511072544957532738684438930063355456938310100462253620893693458203055544695186178541652163641532353527838665084598141404219315277679647137735698278189664454342165840342756341203686691550214372904989608530281103213813639088099865183976999549484785125196038176270927049181990187053328001880254802483315736665563826513984049714834537972573771168501436379046921059560450178823968140596806451139187796036833468548836787260729440714893703499181421505022527479399655014110633635501509314488220114163170191783262652976306488409622559944455566925650515553330816005980983652536398581879471111221218660590357279474127326144253718543453872073132472460889686608804106819222302147061761720994687755472324213647848604811473154574532601348260474552098874225809886200661499568345449980218788244525269734441614956748773858264417310252582823679791272349968546953897406558678866717840044731205908031673867799926164700902759615670912774511964306703284498118912391452592361016518138050124463240094988154462013112685182323739474967006350387712533738889333589577625378306278107919730536561952816094444673112425801266805094768902969540771464586966151906219361998082831512114507415033691330788680944903181217566277750234048894344345320001920867717580926240457905526119302062598017255628419687377690774849362409245499935273854860231924702858179536895749679567697151583005147348227050341166096821896126164395391029956881313506647762963345124693409559815591107465214744793225231734859796065922117064192308100532059055277140760926507028889927520485176302436697914389269607239262089149682930670401427732909867093511499509897760128986474927127652267333269762166825728772995310317973302544526200734988932284699963710044945177871334830887254920808262247205326469222919102546325122217924749832433317943968759542408688623326826495261258739369765839665349896147787265688626285833508116573269578700539504363022377160867432751671196567583635464496093301527353943681122169329019475020230655786538501060514945875486684971023720428704559657499750413160822400352656950201440285954988575023336220967822763815482316997863690791939477719582923064864182036962764981899564953441438025761595909450099723385356465592952790296619632047531122428867734324662693360141155096865711520175485167476674718908301764642774005339603177366449624513177859456837346930630169404508556554790573641320831347122288815166035904067678408447544379709946015334406908781777223485631095768713456101384579641683011058137117375924368856934005834500540581505331306120890244717027444790599123292841578792596207296464535891904614046993509785183664295649152365277082915563054967829005760280667939122153139573032041101662409418661849641094704381056010081006842629206210129346481593748338489326437236017573915537771685376646932254049432698300444061049911043439788598533986416066884956526150382585040188779418297927933784279454658251915606923478260086740610377752300754029457707138287573128112576869761846977722264272209083685765964882798492732545682594110044979305274734586371226558655094267662966252721647416776386191083389187979274627717284969113331948613485892194867454019320924370562308711441437747195134717366667677272336152641362681427928743103291498758749914171715079799866340788422194349079037890729516272202830282469175802120529407882280867933181822623406470496113572764239749012528405822915758906518661825294856706311260333979092979161611864501230168968439072954549261027758339569774390326840778563536572915602839035404370970716567907852989588722400065077863482526163260802987117711765838987588229756113521443033343343714038175967891420057154426574601879646838149988217841301733705716089303618542080822511033412927586194168962192289437583403272836689185422021597051596129367508625457047799145205277150987726633525156463463212631212284796469894577636203089433211903637778104882358488752269542775738835252620540511443177244334928538701192745100931163802886749641834517091023797902105844397698602895164377252550643426495885228771523907082183903687801403977301198934265067230930858710044993848614363879825135996219025972124543252383361160327211429776505485295178838846506091127058338076477537568613090251412269796091103721695772648238742682277302154344825162008764391897395228829123212204633182040473861657356687879459922524588235797860704414185317886875911533523810241497030468690905362146209222926313375770992324605214718359663882746194295851453186555052120320618023144822000470339910197639466409752312343869432810661506808121885633032939822510223682798007636775631229460064205008252110435834305285002572478799690675695785432400327700025393335366454143675594596254386389594852493378881117988671175165942058887678107398951639210860184574457034663399837926784970821834079876487088964654985774811434992703449290601333611302173420111737010288269900665127955545064583800763775878332020825584165305329170000175446602335382307006023241252756349356690833734555176654466542965648666142192106872924310243293683223103658816282505776011063292481974353622699156942695800876516168910910724090538097640298528211793423478801447636642739200094698461666074516713781155766214661913444316473654292147152851408208269686116155851212548470287054735984880300685509647706123789993702753720617419720156876769932104112029271543505546232375522925809862562795836452723536527985483267634594040460171603404495302742034111844289223911547541468734063213753789434877594640668372399841908598703924265071653046797143353976860468853491848600131611729344818027544818650442176992726895753924351442373394743107870946771662306491356558271782615861372586019542565049700672815093644505600187430482546964879483106959143938036251306782232877740357276383914722409232813305160435161637764238296573028057275516009209438640297052279232646529661041790184269816860938052121333912715232952708851195359081779553502507452813350456135828017656911310290849902314570709755778128076126675846190549240259273096682791167197754439755422701588970103606505603966428247633638842222837209557331995912214271937417320798545821812609769097269543666108409135494866308619515272804101342377771451135316504055248972371631414960474919986039891045805965936944327912587335094224679885459940518185730345594980580440035459052003148375054120642751270831924758363816654847381805881282563056134510524398510738535828813565417151511684529528660954835634352372869277589057126351984620003938797652853363154904417212791876309967869280538825121701127893249129561686672877550185263282719842665560143740928905780259242351712328871912037786029374284075005434833093709195085184078848797536574835158683312840923323947933558381739948404685860464863198072167448562123431576223110671091892808927042931203456541061965474857240078332904699623958354372622904894785176839918169671262362745565399363677361924904958470456567488809260223802636604388527365282801018190895433170611866902689983169540754318908071823614166441385494265070428314760993662179755216715631786945649024411182570756692758045557294239374202395471295506385887426837253177196426325662809391417793559753439052363411396229182191605195431831263390799263194148695700260395711333803599738626935971467119768989130016194008311896823487056352447828662418425300132350449609296055341854454729931955835859250228172602686734678578861497473841806905916801972025340475688444483314839692586204862867662023896995722844774486571455581108515091827065839995671639846464143910074650002621212933189779190061495028913612221285583396131228732738556104953663804243311199435835406002696956979909611193490717706000282520850402632089042016869496319075637678908539207284162310542570397802022067414287323960456984505149975294229238720132564405089091512645459793886708923290743868648191006218149269461048441190684885629310446873427795781402566916442539361491988614338542876235100446481863047924708001043395003545591191858173091860675413813002262591426056375008237570656132450983134094304489164670344340613551045916261017309283121540346841364210365699825864062430797068294502239223371832040262820160635390931584119405926521411382840803972112822214590800766108076191040373408347694628889418745289406835943180627116695529442116020852884489442670178451071015272970124908006460028933195464382514347078171756180141541513787423016191718051548141381590110920240327972265722810719022550192285720825153890623398977073609438079486263986720198658609452090637610390860313360309579417560848644167466955248405537465106205515882912828813953290348750404149942644603537097596714041107439072762466623440781920522972752773969976035007179208213858115429078631985886328387534842288003391046251637205427374859817481354620325818723152750619990588365364340206302906135404317186700109130983588386156804985753700062150762326648085273488671935431112121493043859754461797331141605248106188957335530558835322318493384717444117778986145831091399144551680948866986271574076704528768285777544609008526838636840802644390935425000933460494657402540428400419849721814257917288985511148671425234093734272454088502938530796907549163841146965479038146436917856582452138200108445331616312601353987653370444221450212880069963765088437161887951598127240277651163516060993386201280597158776214329049808805648573751272593823439673894237143584742509914878950877104560664411927546527986249262873359991872161947229705857179119375662595309692082249537013495851969675958497858385056276256072583612594990542315062323324495832939926578948035604342603103423905961507032332907154387758569085209853504372517561006855155053491994314572345631613770085108266799993901953537186798990666900717772123484516202298964548291503799645490266911600744533708184304463448290751016437124482748987317187055337720210863816328619939573048335465898749635778801781242902467112345865682975912639765242343547097258759406202860186723965191965163213494457481402013506030217670085226002368357617063992264574659331939913443312811712544214211046647960399829320644085963148830476219687474931376175921337342280034944283376007282442854078992345789110763452700154005115665591301771189549765609072908071655045795164679310420083009193077564261890790635126279430836019710564759709296910846784230287124264672259554707868020815104335964248190468199910068903622122422383774778954896946585497226099033922780938001854030248334245966785708904121349336270270422316516044317541429150548178557905018570215249343802833853056594979552604314906023358589346554149419564264589953067403661151836319453660704240327579424546799352378327197936091089132764182757302242719565884855872577308181564806936132517098299689628668495028785829307928823057188862026083479860527855927144798981846411341814646266250895951356265070461506970308037580887600746704382551898225358852175474370094405237957555707135786516815460772398449383812465386101952295376884638325153588770809276443649639207434438347478057344929547140578311606328876363571099411070225165117650074578546882198481586987729896763351165119149497546846345472920527977319362039395570694584237037564402328960681741822734563537788634552219475484223066434562056142848098884599985619457541022324715258622303308917273803388551690602551056776803770254485067351459097294138235022525072708156170167049046406931025560850535398620608668241869497558079252172893206436341521824930263804986663984041935280154318236474762100992912163303008690550525513794144975818741478416800945572542180068558092495703908595620557987006114291078795431280290946360330617394887021444644998469285951139797863149987382725925000337929948613076993003287104408880397455148857564779966906752347338858876431513742744519117077078606372389243045788445423860621196718457739132331175691236062421318784507049162970281715158218067043173233029693374981512449942128356733501943504146717400458662692140706785101522698028757328804261562456015389196611343350816748725408290703094558860401508990128631072656743003290007679448911664164369737306691533850820422446250554176756992214465956714436397196294940533692774210198504270604667862255087153582732307447472628579728238549974282545030957229940862212596306034059568441935650199323828221616765105077565735109597995112804763620295217991441730542324169339271079721558941715367169017719794643002623368417690945879260683220074871885679773203992202200270752235121230475726758636896021204185443611016863867779258258334423999370636235802863788162710464362783528060283027266578309676906588695402438337839531835614488764047547705912548520242058872423752840004168451060696381572299970333396756017562306658662849665385552293266179071680621859335926383198122762469168872867439437952919027016608997773450642311284841513918905528198361469276237716826842568752415615509314555356751207484478778543387722253628970867503119973497731454227379106182313873055922122230518058485689375831308406883530640342167336646958675260767071207137832889002572467589303656130049992296578151077735076234901245514730246051679492502212098822172455658999101429044000668222019120792351910126635644212238697519253340614501020365290492441833680876728298391457735335050296047103678018662033629007385426249943401826007288637526226862713269182984866864497020509035084806477741081377801259516451343309218252061981536829078383457566432416920940060002481733530590499126146983063137664262850686888605914784672025968333833287844832572969653249414972663107428434413128355700413024385868144335322906693513567518112107198993725269965689083818625995870083373124756720257363096853858061951059486061065376466550216323802712076174786961234798432320183909576528684350011032252489159503975075023917024959816642318899054608383158231986230752798293249297333317919955525994482505130092716450653915719351018344679043008524444729590644104028419419839374123971234622699292503560020728277623884704763846939695464219313286744178576419501061173451163380087436097010022892664331249102435979033358506483967947064040055856270073977648790282627834339898664854966967308476663698984258762855264652928196923806201277627405503653155731940224255720935257125347021171014534950740872101536780313041033908160494958248757018017955324575278515668169160556603222226095773785425128386782849012831656016532230222521237930039213158901756993440895136360141725000804016874773466480425587610193649729482025042518359611810016405493233784330419691925842473050081598942426243699685940881346887618878135930640067508208236326827077582300281808561406081240582396128835275966654047426577909402553439501024663156533196006305036979654960080075265524476573517221928910326150947136702539596882366249378237940491008822015051243135844181753569128804550475785263518355282868780143248827889037365411919395247618021247921617838405710341293089346564258367029668733477432046434466104983647691159224182148597931361392865093242805837693715471464938270536427036312186535856834208580528497669823853330536785652679488650230122645651504776551395763969754768888337868173977601561797709373994305002330439041231621090255073558270671999795618991283855029922679762297590697283855918015965285692255978088354105535823430273100369545733139282929874860057502257756794659362308394403842117127353930170717000009269362885626182509490353592464385505918089247606277175954390976318406371028611840505658016044053239067525450517915409063084427263378920060747499699087467587592167459209150263513996916946967838383172264966461870115838491769323234426285687339851762264447677818683622780189539435413917471086610918239531597587137974069949716686758106325300654358819663299256144741522031645883177034389738718156068924959035268323418019767197391348954750471093130598651646199005234012826813305997963713461660574138515546161722301898974809816630488770443794431014484354611840575820700080393564977438088054476449771275043278916812711246890455189391679213814733020781601034772104104024655920322096458585685238771245450350085204185716399785473283208114815279760065479803684385458723672641032770833257086222600499864406339640553564165145122388192546770711097752217753574712302838044431776043737152938231432161464169651140807677367395804971002354717728931337278859378612380769294492035762559767836358832627527313560308848274220070023009800233326516573715655949002715709648485179682273642622683345864401569895533355800756127951408166875880802017735895028164899446075432973329996105361523772898317985912075094462763849337551991486895598250171154950612660296320118253431428417911083154024760093903810877127228433241859976943655876981155567611986152600746186235030950746027881090657027394886138704398942202208890099363135806876136597632525658575046610240035392274959186739777860482222202978836246210423134415344730525157639662794171871451543442891565326774603917392182626719150356035827315067825955497895387996085771353066593625122762483337537063724683702447343937409023158739274253432413867911361187149844602828907715705231461741490278567547312648883757334519751661109245550423604836672257926967225952830258996186846724112392994281672221600053417375909896138707420750620182347547949335141004957468481581525069589095914473650093345350228937976429733878780952675306328269433464693055496925955124475546241077410005113825293054290333290057899837399788216929655183770484004381978002047663489930409010177223527192346980073135244141714547172993762225960487745216465039991085707504659942048382410682159360525457156564032277144702117293880218530839855388314927708479498135710580301986074194693933675330101726840125319260446529724781111258530116649218753602621355482753819659351098684218816337662843580270153818848948190308662472476561091577198829958368086270716386684599251176868001748376079998165132879176947580633951719957449311564775985261358490152849187648788664686844357515411785506725491804747824011399970344906214339347059090717710269687657253164450278850018217420048601175821503281027704196309409420722710424539250637097839677896966039630816016550058641836800942898064023433491218326489234483190131769999346408314678147423298820260060398967987486012765741599978434866470682542672714313924897698914361920902091457901386346665598490209183913023773947006707875215419644279076086921005418926914501563794099404884450908136862057208439484478511639635852976185194073842184616868309191416483536419936497766148163146350721393549680796649045891201630074850508196466475345723833112373186411546296120681167304381065246818761838068646149619348827100081255520973029480239248376468732196079168051155235889331338793311977108599331459274908962609076923020466869111559766156755413356923720562237324310938696113032790828344775601175635048481738494664892178485539205898122782754159234496463715343004052557045118047003322101882370137718490102974716346348552965357100703761282849351240948468306727990885323502228704607900922617500922270683971126722601257407310318229867585852822760414650335996252081672229381355411060432663171275477490007259587074858763341974947638963954567624893783000351652534219273252716412829593413330652571444893737209452013120119508103907500962309520476108517800335255292122863525310116343971756772275710022006910054648526443047535056060423005107797945173978179558313152475659838632048100443681271615402660034714363524179978438715903422020259539169489101813034436700333887400022865909157075797617880279402373990604018295292818911317326487123994452606847395221334828388329397969619790941579684516000181985400247685621077263165833685403086413029538080068953140782376162056104293750303756235096046376486430463923656118694848431174970160092927850506419427760211110473113686766808021222627486681386115198656404641049594957915073430595547025291445829029644936875600878258609236626550426060557872142147095180425177424305175921446521972243319748080425404241933219363944494526254412478662884178779922102831599494646037734168107277015756892177243471177148018482101692407974709882222253122038577940922736786216166825890762862304003382147125776594977168996465725536502134085763354451900138778085908524217635635253799178270513750807660212589816034538091302314002720832915998358924126589941822607789442042874960787092749693179624261956044346397147419610395569456815858920229300487063700264120352071368443724511832331621647074977634347362672871459872728373781774994202617758776059027426508530012709025345028880293789472213954877242850343187706397569364180133679434356099603180411110121200908714554225640655763949771818778757103320517089112712966207972664581953932603815578118902372890704624949283831496991741628585085866382030653526052338664908390260717723018070203252360208017538422534838954289890567661528481712804157670610318089677040839979081408223111448209864953144150988248674203546681841332122533669561924709509862946895464180462595962564982844909216789771499723185469024088434640528619183228388912350677248150116570790932950079735724741688005593616387765329771792091158856466497487179578986386918154243468328638522896355717560004370938523404727558926465279896006919675947949494912230859018407536102974433355271099808409806060118807609519629541376365237613802139637399346905127768600026557925281213883599855880500291258527224921909540673159033999196717422808450926358017101488648703697543293499892278913075815324031279654970573234665487826525682432065748142243334749636593152927325010024228223038438490608249296915989883455820547141757846817846232833526314822997994748041296579470311973848880161818291953912289190574143181942748533417734562430440337229586240023668596203618825462769639299224960261005896677927601517278063018571795596547077189770435344338366942407303315013733951710326632499057315389366727299019483767224996312725249053120677909657284964245159542341686384336834069979581729004417701976319340061840532833299187832842132086206013814240875750690383279731175528366168876568934941346526624376080446960212965224826962768766317190151778123449145192939817641187973859841335531124926583237152289104349378532806324256281524098817066599121681425732190143762769084786451057397173956290160735061527256968191206271864109439207548783855375287356179455688169038358978478949821636112092720801946058365651586520983278799099142712701043160702204530998559911892607197562448631558074480275664470969253931365401397074687720712594270755703901220420800679920988742532406696228608873689962784702539965428495527395579499796312670876859874760983740778211529113886760484929235305064025681248392406287910704502274276799978225301172861520164794370417106541191794626902804450444328797131563969345451857965723208634383753412451247996160077022766183646635161476817538785103601661131062022557673654828547956976150753323533960681056572661280182079716105273235238607135066689979075094359668647553882418789145493054883145166645118450419205533199877272282632548635909447181711097465980500290617707697869877331040107209015489411141217085902486072876430482939519564118024557072265915422172229141882865487095831541712602484933680932102438334134079964001221178292818712253501273078617123118499743672966964317867027763819806445433351730994249633296599645178139300452688812799952470604279618516296466154476951822543185108152274183569999874753397981162502349143661175263014853820910446093171350972249017887121946622643100941355417202068123575184997800855005394736232639361392141291726146293719139288820746042213320965132700148303223437794209145410851689826296022193284287377323520715891826527721112419763750409321884212667465557849859451574450571383833911346893924245396272076173077118388112720095845557745890003354315310029446358776224167714703484825583687639458508249466949662841099364055268652487043513639124019559929660280461866975254547412779915593317017687054959379125414198609597460331474454848207114258652662651231775074386274716786920788791014556315736618374760866330844845390438415423573765333467557454179700194739158766659849147978306257070224173906402297729096770800277178866609123504096400636781246968973915779693047673220550363741712452374506217953071072877329837305265426614017304523491359828061209485541548993825537534203784643797561207601790629337246686320488975169106783302264614837361948481777512843275560593392536113417119461418120976679393415976953090851984915190394849823704648408775511883756901160810176246071464236508341867215934773673251346924706203640574845011226048038148067221288538266528177830187948291448736918531235630204774623635263252895401564730272325888216682024924831173905612327009138937519573101121779864625667147734893003884439903668087044640801334908233747284479627776710861167531089467109924642671391225737798773526753284013923365113087755421782846131360424132270084867024922200112339893372611133401268004597574382237969003975735620809505726924712893706293356374322480983042380611583205794391007242810627339886962929507841981053025699679768593350277557368683862273825997267826433375887937619286055641589273946285482755056859017519475171036673881886053211362740645758656961108904243638838649017102264880760049219807665940918934958909240483341964305583423527592025838969604608229629612998266585157171872839991847030968036695663735384951409085096179292287719973659266944257657554084751191380901598661206807245173016491718688184171829844990215648581484893291607614827464475263697130010071194967163293318209439533421936305014064234765177473759176270187285219542995311289141290044004206659558439541209599948572756818692905635461740537386491644585625391230866044926983080191324195325763673716126637465009552910584456672704058127603297301949166303896416075401978809057148549580626315410988954727378091335955584679147561106466193498874905078038768768212222048066228987730867544876229381663345337851335761002190076667685876383981763947342997970165845060626241947734647631611101229967697463686035078545128618072934418330532436216537938397825184103827634830072260001828057172681784914999308657938246910590737952670949910200482546993244854417059756921562188832079705256329067117044041275735633857318995628795111579110410644688640321862761382610109960321506985875801362971762886185564567636662065129392359246516300486531124856816223811297550516557449526291860487686480567683781236342091620073640214631145154194068793782163717231186714445603751383798000444665098403143894678876880532137411056547869517274487432664682455907567021933988930658998355226993960876388195172195019260417915899764575050585439886936305960639659580193755615930093633707323580529389226195432740968472607957996482532499009148004605489612174763505283003676753745776915238106512436911901006202845602130495000337225283393966013100556985388451611098604251793465157124288144769913145764624541537576292318290789804126528874696793352934322190975106261989865993194227488436279008875738576607766487390571220271262190842401146054432408632231669609450989770743305826919764361087307533336951450761548765868213811117669465311233553659000101062724152426514633006287253227664799568634122154756480318843678719185324076452210039100233563409747971986847465800918265526619504518190900045065321667023958321954559845895158181826796599965656525969548388927799006316478657837444682297591524811220862364177678878010801710697370636141321327581556467007706260404753533306188181416183063321103592573404095652219611753446171989941743855273814817161940297235922403907820815695488850715211275873930734956896076749348635431477838146854638773273987847885816750599401720634578611141899292386866709090257114722156896134189438354439054574396161453745424762536612521825672236040269647807200084006976655811593772820144450167127810639711803226308122354858161426664206243614334640643998442058765888900556856258407742706293252233001934462420003668267444941443507200505374151674070074540677714744124076583797834001098513428472184319095033912865691829271195775746478549036164511176341569588465777099284447719546955845826490444643378521070911545073758233619322807912243317904866843745603988966084858316515360143790135280358767787118832624527574745453697731623511469512938263351277601135036666501607073250234480941794543616593366733097761133220466205426242879766656589926276901911764246504508795181544108602263601888935763700137333006749172978829340832605137910890511565538754368543851381723818472563663521905560738584359397569269122386822637143881769617183904338962902727686677288282709215699846041790561246553844062230081590555451090968405411959549256076951041106702795463299695003762914947914763092840163777602049872194682307466107827426241229637649752558969292212521736211052474882750002095746156645272969586681937810878179941756814419631991723082247909976744222905274238966237101015487957979188576603458292855927424133676802342860789966832483387761662161756050412060022281082360355335303822115456670816585934590011458684165397863893801975547725695963921545812040448941926411531637398353202524954393035691445407704471194510713553662826494081684559391351951282317746823692182757113690031293222663717100408643868766199686592018614851995421383144627388542379728299091053987607122634619655740662170717587088645604501868495379137388821882763443376083090338675164144273962904764701782759170075069131460184945483545862118214746905877273638914415499173652905937990145756669519703699157395078048844851673304045438666747536929960069885056864121180984315035736418632891375564074236447195750425051096933653265520334432245961532961746218279699349781633322410549932219079086369768718963421282806553019806581289920629845431923849942068380178420111839485522903203466012343565163938030171276683219239552213296818861068930473051335748232837547382135133097281247794275615655813345429185865024225223666328657512973560880094376700200830930602466514810527471717855279978618663700880854236022582589545155065188941950658462056084777379209107549866545089394846230754536765975657190166294272217923120118728920866863258129240898252829883369144214566300673387131795691293994635876498837399820207121961915469117763162859404557426765194508552256461727733149354294975082295706761744782011897209783878626483012206472195802134195616684318534361738278872667746580533341745693254075627019637843153683968610278346431169012082887418336398891942263529612163337756453440594178037926347370887029356725837158375225592203791849673054062665294454372231613464983647067538131827825648755495490587369445646281412615961317793479945890753131462442911841350992962323009807923227780546470749479851191880856760675753195666647735783941562334125026878380526920320980665898431271805709718228116749888515115403272301752590980430225194714902435236405705391156370881643828131192324411922453459014937011141570100613979796201221513191273266036301908814114156758227576746735381309386586207256894258820246549182160487145645753603354742645774592484083479301947479057983808130469575115299344780535835541148942541025210912448148353781998203913395986395398231299377865183124504472542424763232081764215036336849448691757286816606685070696347934534900400551628120317973754556038477803532598909268273073561142414416145999785567291381693051705447735997742114953008283809004022494033820415130275722793341102423148571200186804141267426134448217733132593236807504305450183270094122881014789845443067785402843059358648294238273922915387957424433612670570621489715646600604768085439794620614921227804348652556376149944903188468112608925961732147040128602920815907006231966792440841168219145090729183325553105022408394967922530869119169232873434585799924571417645839446253310873521244065821024094071796668499898105595559967597974538246998360165199170456281842191952228169089181476255615735724971929331012055608671915627340934800600853936361686973439921207273033922257626838652653784141006693054248718719158525718117478787802299483683390316329517992252675128240685766284726025636422839984101584855112317489129783102667897949150466099837326186222829355662086914421775715949432678102003721488103919375459110235457072351039944692229888759263789716897984089044105387095255781920303835792373442236061497043216609418878402836603521322810675989457785488344090269331591466680658164386628872767220026511170489270632692579339400505958015031577541682057542244771229186872715629063688917547342687349657677237195250117250047968949537891258202413672752999315417054020486036608723465394286648827079766076593191264325038176415010822984440813565501981383223530012355104876181326416715162842922842946705589380793929137374932025157853197960786789938419396368829136575345390622608760332073568066499167640594325978410946761668750362330064747786992899528904771309316894235189832526657581812095815919247802593526235653648575780372723980374809067909264780714652973060411121515034429616767932021812020996465714184106032917199742974148361050282242293291316935604424263417401543779369818277899333579154602230628522030322272364333580253343771012182497114206930181306417268120180055561102846968282228847193324132433500695067268145982177395623192001434762010600936751552465223677160905317047080993197912106292472192300490413817859047536888157956028268680529222890567381264031240603525254727465853363152692971554747521044478953092041838181555083324206661217250343550956878366301367868857983549777799682628359941847921495841325899169366360615478097858068430399176082006200165015033899439896004342857870238948107150564730997659357391522911958305119083364896484841588171969473059458897534391356863020965329574600835264561554797979173433655025695293157274660443457626657343166129483367543638794941403018317948229253053929299912104209129598190413629265809954067326882803798815051571583836632355931466875677274429445590870606289952226110386402596799390269270263398362299430981041169230215842769522361480076118764849229345703219593538116751962140040181823045940223765005267920359695548474631925014324082473991629140902565511932358008026410010331150775367948905984349499190466463070853712429443874741215531782240307305906953987070124083050960236963191403698513821625022536473602784804263774822212842424936319626082584681730065414004450660440650689414688871325644169783813918737294108618942938642299729695171252221372761942495984263337154579168836896527669490575894008062987705931648989421220855032511580006855504377958644344736695114855137175263111379111106556246530018366130198267361915600626299480536422079754226569665107875941361651240335506516800582672388350405268818587790628208683398154860174357406118702676031046348894546501179386793881629153889493279375157143922282072626885072811880238396916945878882870703639547693534249055700395644994122340776467708021463078660034048149662006442946933160019355706626502161196716913825026715577447106419854353246270279326207219318706462463011346065556844283692256499203228754282885325055621196486743237884106371737584502360194050794882889827697355751516194169765674877067920235883409783024687799117556280634150552894354124224111074362793035974855417708938365029894771062171969891426638014624876284637501884527044736161062164078260095458783659831884259731454362034298157597140450504095679327406688054778442568139706789119136125651270272682374028005930970164748329040954934140308352916344209881496673848587102931537043412086828670901802097080755795870592907722728662799966166415583618036556843184143832757876422283874907011304891731916112551764942170121578128083800414262090726306873877755833117734179121357892834537251203364867331077939753646027169049975311383405154082895128575406233961674707932824836589818026848709759398238043043262567003415593347717415048879166075354378075805872428245704113339911453529067353050083064338076089791555936940632920405773658572654295314025801783747205374384788526125169871310741175094621515632038082182958942890395733738863043239778453426505006065496991060182900069360991374480769448323051370880481179057095297500139634002516863495123108927011252535755665354414448295167025621742940388597592235157117025556283306299838848853397438368968012955994623411153882889564788917767704950878249669950343703957961408007772002698665326811087208239902521718906150037317677880045026719623832780576950435443129843038380623459350503124173345711255895435133743083313762743819504644933049485890072957492224728846588886722134674965257478741457848478522844460506510881298826307748546878054232132104805530963859340730013666530487613915967701595343074139717524282650366131352656366504190037316684014474231141480247389387703615038860386632077021776236183947872852510105685728769559221618951056900857470327865671234994237114507074638476105968091947253113374323069283417604605072555889048076860816883327010206306934574009506426670100610476391462497583551020942084380650724643517715757363524628529921419632137919349518950972812296531934329998602066848167188901595924357251927991403315171008365885050687487927241344935522913004833919222088282778206071609443603184416765597508624191923306502454206113641892696654430165675741287214864756774788270979429557141247540897262950055374313916497085697629053299290800463876025328443262386520522820982220413426784386008833868307696434468453260693125822145991843204058882510698345571733384312454110593750990753743116238580734251060491304251587865282483549684557886123722089771451685181276785299874015906857233796543165943443938111213678460503328326402494608464628409967684840837625919686378659944401360831661654615249302891554033908696582265036099623737445574511318908965539352136016013536179393638392921579894601261619831381347580470702561905940268597959864944927937835154218675600056071010482140856883873177193128608906022829945876946194269953458787471520150902590087305182607222855610800652591927155505158777121899570340308554756787095426203889642500261544605073782043318209489346981135576704257437327460307604487391721102094236823131638665137364523433313916916518960478876661363818541550560798957297312013485008283742441077590683455678710217965438641678740127856668992234753138415933917381930799345948289573214355298612657583392341027297520805992954597277598534732702797758301106663773276459561110118129343459960928696595597928212674173943122274736036312701721317673484143438167744212059003677914530281083474938947906467743707521270202331011753320759463130648078516907948816480844130623075675522470992726830846185925605812288436162687731077613828222674246473686191205153594594553752934194298542075720668517285667028168101499308677850403901319205411471750607363858554773195325167195809309500144384994612040202930567645512756138965039547300846275466289482332385226819133684976502105672408364206314184805959618191980330861459492666844663677811047716338531906928174553177747364840023102119281909836932247261024006450298258175169253424961532945654078906538140163616577988910758161995555460596077847626313431300814224014508084197252081859709809129553164379453315424211978370616653101638805658550820644358548099053337208601177486220660552809621327618069382377649168573835196091391865939087875783512092833592907782132868862709781110181556828457370520105902205159912005078747950594575127872594550960522949266668217559673089451463169758346737427815369612480926578935804795608911768886652206679326133638793478612550865056949970269265738871799292668715430616092268007299540937529064338087992405808745193040581560080075940848037534188345441387115496623897678507626428484402944782973639731899243784426991179979190547809957718844684346697538707372127298802683987280077456306142842437023083445268332576973433201312716053319850854942881834288315713929144233330465177202844437954671081053418594068511137836752432560115302755094456476366164656400933958981622707315224773654101148959092285128288852664404108037083772753182728555287250087142949093592142058318155613272003167357679442001418020445936076080712090477214768802700864828495504237165443232010013991464159591913766748878609468137976846938159043214498231109028865824205096064651043048156899624488296008811398102270470758760062093242899109676481821783014931635475153096551019015130074440583455743287461165291655228977435503453742681666474063227810810249965168899301338832045856634084130725935104822807923960209990446032413272245898623851976587962776588016615894768459173154453994834676394309712738265630324195061313559254303606530047267342274486076674092989451227339120476508987575020288312188910883052138467068544052600942434998879954150685186641208237000024363063443998020309229372118337186502246267756400982156523445050667336378967046236852241870997991521697762777991906553386853857302776426973529265631316750579750275429398536182871802398216228607886622397861096809146111733381314816196427135264313649455156091227320572246766631422817323202963668987455308105853624239629094109492063079964000313525671028305693088610148901400614109175032069490682191919831159204835429704871932204755772421252361481787507087918971045075871791922523533890306641299049577836463712638092158345743726861596916094815157366067052923406701559038982880614674275424922838839520855164399339824391261446322011825427951987723949018933285975797394296726442445197900756629220816817581186103288314840884533000236678573566757505011074325210373156799125775119083592456132860277261373128614793065926521298752165726111766086381776311805181387061977477329205513730247499732717353623737649094073837798414370601617179430808711025663815586066714675815189648804356944389679128364756689784400962550822615515964971558979408933008064937462228261965450803795301444468026003868331994058382514169902011557534411555669515936527533222782815559693514954180012827512293083802293815696908636154201858584772126611077560851115877325794239270249878212722412436201841770879503000805446801995611723163087696556969086145830663745500593796659336931502871463319223365389392736863589285345875582605589689776421405606998740091341275578420232863261496602185769735477231115801649594327080444535441057106981374151836776384097562747145899596436465872939050613940201146455320647957249057265853564639510381266548355003423894343621959060111000313336311042382688279431979507412747554320381630655891442506196916914205208152230494447967808944267247203966261685580492581934364585335325742710413988958222673769018488128773822813343295466733507295398864142465243159692506266076766066040831536411899359438311482982291947523784027205231814417910673298291952130947016589882668568629186773247259276840261751436533819207977016835285796242588914522357320542147001310544951726557736453232176648505115224621737298429468449910983154382087530645329094156640910339552636254594871549948618101649381785755534851745134723159900850519300784421627940207212937653820470996691564723552931412199019942099006370881431196949896857612868247902063695712008113050273369449294167383485872232816670463365510713983830804269866059482835802102729497449918886964680423014748481672549001604789013597759100282086949518948232082099288763005444611549799558650077526501730207887339524449704779560271608575507250954683256391321000027748949850799444424163556030546293822629736394779506950466308467701625639215314260708962017234957203531982041930201971188674774639496927628855324399654696482317056295062351604756912752167625432935181726284906952930034979643283238884428792281818732961823736649865031705868147611840486195805677965511038338555157276282793993428039285973492164154181043111820835288543703499217651543443294034944786063928537775650275026541908178004211209421662117977175781921079807987932864934936155222634918697776241057849370640127444297738419095388910983110576921933055538282754973568650071996735087151674438215185625327016625937829590714070980567122208888164774593793055281490422101666675929905605840570564543858773108293901369765686835270057332135405374833614502401918862658913505667740729074930987942045462483456810770505773344903632533240122254840541669204201952556659311367177266127389655362902009245633882302368217119482578890194484557599709856792110494224577807225390487742144565662871110392850183407249139313951673728426073954864538737871355459211877082902426254013286787692826217389244629446953511691527539683560959377513997769865353361941610398975670888786581481621131043128909315859917580281289424864188797367803227826251232416649288936554558080830424116723945212161796791455269362356495030906916910127519461427444161546521810343565724001132781478177881937268514951776352354054865028489534099847622169084801940895629694995343689650771312673044550401188195037487105419364353743264611393780754180773508085104852403793666929240289308357046483324280193365568978491560911160292380236778563238501814403909968675182963723645079976996142437837715447120832948760215740449975973470412868145305803019090615065055961180695964374131282322749111818029689218285214021593654356000549770542236824214960830716990968200291766602623948818202094179918401295504045587959294030737039508640752443127605554710453601854481766217273513719491525995909693848797591012349779139708825536305184333938457099235518064188829305128995154122527903426214987876321852813653883020057059017679079842283694553642883250209825286545615990856461993157970033852968796493365773826930583814373983328558056034863946010746523317948911141697690498158447346068850868648698787725024712577819430633053626920314281960081890414509221826996008723953868910207519867470304573479457162825345787427848730979873809797955821353192859862473096162224002442614709128432173265591937810152037750144783766366728496397376682697888568877404826926808059429665364674971965625301891323746215561374784861910837089037535947844623071181991113625508857760817811390995797123341567176673823626067476921853837379218124705121323705539981505202894271992299898091003149645951903867630052946344496376431702516618825150493074104636919367827637965921616655248126852959231743736587557348232357082376008591982737556240195568775610143513574555041405762145339300566100986584846420971481207453475294508581261194654790189297141759107374953379316621237788225348943844251110339344832360972812043116022795672133676025663096604711589569697650993256796776228811914933485501199725301244678203283760654677487045839467579954309938815129535840532036879435796830643287905918182543219516584469968702475724676199518021846574417423756180833643297147553740433341673863326943406978132780580839370387866718268779259539103361312700575281019750976111215127960439048884864926484819278338270892479134398629545995116282235717535800211309053989039006645257872601099369431329679235243378742648131742998038746086011139556206031430504873773748759762178649491759247144588205307951698489462496935864046043578741218226302818522501365593602584527150377980513970467311989463931404934185659018854788069139444466978020046719383983857227469369313831541236075801257215515244484021074489514088200042288100051729942774108895925594901606255759686660586037118494559343991853228432295966016187119462175793636672501570827980407352197149839647676528536244982222800495876901146684931079161880947286431171842598748395650448519446571378087520719107782309873816493945850368859559095848085762246633770570272266844979082408968231571058576499604162012830227052454837117762295296540863689083787369642652196850469083519901705590460092043160034235396232338730638686326510684520377099350998594893140622533083459724865014421585006264725868367477791450880735328457025494185301176291872039935635922658998647335650599594997372308578286757283612477102541618769749869724141661892962712566337327305416210446798847637302588824154627864514943716920423112499158099993277571230427469953470965229721769227100142033933702555273068724591750765720579542988019796803129888263719338088119270484043361485246805688531069522472685106208732100831047322818606833624600343683011826008329228753815418244796821190520827797693597435542529685886476980443271432535446773081799665497312561184527762715339972696081960592863075464271231088206204629552963752183061454105359397164131950809730928590151557596936157063100808425271826226117800377945220605645933254768601934986794629814337122601945271006405438631676348585425392245991683364530580821569519715048010717888963837459884848790862742130096652271764059091241539614208924112522683874786654866608932033505281897024117131288426287195524622865889820346764529730861261132371615807609593947117966132156893104154536530155147728920049132525618680592085772955062399845395642154787651738391863515415864317170583950593968528120735112914776711278478330709358886674959282756132809945762706568878056853724149048542151913083783798137470124764290874769560573926035127008973647448893542109413117724646383660600564191902474281521237167441499940776114926779075934883806513951932053856540293080790022347222075144988964368278684078531704403086609933248360906848310739234253578536367303896864848554135833318814514758706699052650210174193543932489546745857226034906444433919073480978641848425530645001512737091477029297713746245016027309487094752145222644485812334771833696763056210801189327307190457580767813153708303834784897998154093303361410521358854805518806108911372200829651592705363469704377110188389648732607605254471372283490297953565738375182310644797965704085778175400387452314060735886309455308313156890018294846912405991484859476290742016253703173317250427431167782148645711058463890455711427025423751826629817088173154889788580763812436471561810412436741922742080078891753388624423189054233856656336279049770975787060691386810158569998503356888104906365083558193431536886209747691044867865638650357748667090745113061602100943597622027025935309982837918519529739083891808203454515039477063428114092394296558089660397597483105638780222160076185499528269092457755922815169089928783699380192829706153483806791528262965464727225883843591689004063643485645782087956173408996262968452832329194519549249952223511552306761353550569939729220693258963486081454689623353664683064758334734134217556595872861926932258859190490144545502821450170389973239282376346203133701051434847667464361728802807024733462045067014780446337541439201393814139457094761283265343233178187201038542971680075784373376602387915116690136931948710833769989125655843315363134876437862753051603154277961283959523480994268967280806487936935416254652248952620349149034286658193260967317478291593545485668034676715127479521332430708485460007152691186285338275773733409912022069942662855298597458245499420792825031868984354355691778999532458150997251521592298484411195163975020366621406185273436349147775437610601206074049885588693071475014994635641144678360323628025503619647797741858820902774864698228821043427954901011659122062687069762340530405481728077904332238814355988455641695396560457527377715439743455613754931228656477852038845098533719434050464875334980938726101354501191734638683736049909265144841967925279605386992958872319533204875453394194204755515360003859588812042912125700539349970082659574110459214548303107865197880145542210872565067197301584790631600560427710883615932034818871699040434281208859596260090427880663384299088411631759368493086100487041421301911988515616631472144932590247271151645568927457640848863442194915754103359831975296932357748402410649485509370429957702502413885698683507724418864658590478437122099255418164418595366671673905698916293132257771842889170105234226041228186884239025461527074719058094573810376435376602676301505555175284144235295272903154299202038235934711883839189869940121719114298221350379242841808485909807035065789543032826575506068121762941591365527676833674221506078564695186716047867998053871299006052213028742291210191460971259638850940674975325416779124341702725314216914305487442230250762611599559191681475539008296142655201262050068661810801516307833451705793248192031110215629337215944015283687958940772003792006019915836027534889168634890022759861395435886463406656648895211860927400493623116254486291902978665904352548125719317963240062816498080423512540391201835941094830142720038097051531343735225738361141592881024951307932288278100508748366311831927889844317474661847491468188996578352415744222238414388770999432540387112574932487755520856393945364273827689347496769395566502647649728935692575071782251691774033448449243598062990977501259924039497622123103812646843190706999999348411181304644045293037562642967302898117776933679551276803818951883516192493816956740090978822333560339809103259798605477299118514046891881150975803235448752157067091548589404744731399884131535822975263116676709899293085474918777670285481823549998687582253109274928983514500973242736546243663142448949757582588838285906065091332808328397071731279096307499654102269356360720811475127046305394968491979379999409808211408042937425694905540141086432291008884550406675169687336030593181349121628638209777271146588031849865164224187679473278490078956208588982682249801600388059905248982958071901277698199931113486190031606913189219414511180235997323803311688469794126809830320835680528403554480676522919409807518618732056705999849404486234079868804056368007735781778772967597529786836130856294092942974481231977521722648075955512661739846029443836199216777148764266940509817523563749303522318173209520142282169794777688037727578810399691266448010054793863948354306214972935028727974004839488792559834124210371342249830770582875595174902930701325517969214501776240655930595788001061320607569830375597736576712497760267703390696695783686581454540906438077542666897382265075961501363070395631959811173402041911842354617829340747248007938059686157419847418920335624941545337867153060466985156420812257344065217871146056467809846383448066707204758133825560440318090346521983612431821871452843399391863125263320686858228422107664604038955929180844732253257992846448404175040887945121972701479858456848891974493093167820386415278074351416883949808186336695061867547223873893787200004107699939319388026224575129838668282983126063178094960041813707668272212503677114613447458102308078589598507736090910530623312503428540076502863139263700637642666724774139546505923171570762291025831404393228947906179291530004179597627264272283745038687370609799992151369408223388145527787791613699670542179554265056077956673007224112431855554069549437132067663243669873875927209687913587044272634871537035594877751881777182730704719508746045661292511449072763581885316109557863701556676924625789348609929323074448510774531525607205268701845610308422576168412263124285186728879856501737391952659278179352209162915303117680426224140452688298189403519761718758044812738002467237750290759409274296189557721275516246894164188332588400952320444636379865246471256314451869262163793954955531751775547986052382320648803434801485509399111128348455452573388216409751970056704588271543835129967368684317501305136883546860850424627091027643641795559906112145452923748995510378261757569305586220189920610808584484975116079480763480553988495692968665235991164253778738494501575006991110023862450017334360314756160689450220399399208299960581845884524786600704629591975290680910132069856811603176165561913550967869868543635613168947829657096624080345541412208720895445773895129914613374195716432225644360646376486291426333272643278289723988286909117053722716997528466649961938837515332436639815441139344814253556712278671107698311320164754367134724824498959501815122340995974307484475313816816796632810154034432064112719655536228546790047936847846435495414073470774022696837564783536516389380053265499849601293121634873413027405713231704082766004001714942951486344245609599671167736572349549380220625403440136158363964745577509551943227744464541361656895970981935799542189562175872737735819857399753999407568308347329076789520255338081886006953450496403213616604186277735932419024009151705501967867798890547018393318723012587612866422576511879489329083002754765927003271663409338200774679184772065015355098647385313754870410544568506522563542191934363419419925339503969011457676449772920579167177320439607251467785112630730586043288174243688547301701347056327520984038378133257098965763572451975124223686284220768037758774843613155216511007345927351997840879087541615829200307238771613279646680193090916107929963873004266778058026358468837551668349263960209616117579760124058810376606713391293285924175668934375427967895187276038463396540326758618578563985562030791481849981570677286668256094749265624945249418869099715667758716668833754694423442256468969329600909773418048809817660627980286699498721435046007221835073552025488476188185033414307973890491666916670092119318671260632903907663065141215291394893010665728269222958129288346910678691496581562207745487430400056204683181453156055025226804256651200312286501403475063957999034206188902601575858882622431805761049632492454446560799388448264336274097219298353241830763636677280598675360602707690516438822294851439817759202407713109416777863553714790356594509067239468858318832096816876134568760875985332028829694373347119819768446365068920814927972932008025142628433183816563192400447894941202911810560798960895718981578487342738622580029108065921609566360446909608274391851476095592149129352293079109058594050128296089759649724106839007295421149314591911779664190685337880698058537622653793366399720634627816046826039805093796902279379709813127996916518827140049021839988322541228240778474021335797263297392148523160477372064444908406061929820162240588974431932283207262039446224595077362942816763095351973729825680928785247886798706135581672776187529690084382718250459553569086889207845191998138910586143632396937712530651553032445917943587742783649399199962664454744183813174154615402629344227116796066146751070537997041833965759984823918424426688571663054612622300085232505975335891250418922445957494534396810160484648784764612114962160097556323681661412038879774596508613745798287806831555175538348860074697588911575589332817596628814734848959365698007608778257649742257327725052583874824349790729648477946336622506398431473554523450873257046366614947291660056985867678692029765919057013281483737457754284422873078327499231539281037823430389371521943990496830321159169810398576300185513236208244847064278986228260651690215724493526564586766821496129773195789379488825850866104532326585004856176798779618676975901830358348663012552979189632663787652554078597693403625556335169141787992752220295879037906375676797136123065180628616198245514764504578283192843760345454516131585446442115769149738439905920373002013922849519599495177146035002546388096582225800094969580410950009023404513681432882600203011606712837319365241719028104684871201889824750537944264858760848942153959122737356680460489306114363434631638043976740602130081332458718207746632807198098503966787212135299660624968810868942295323902145598906769753587858757873695773337314857498252551258703378611474905019682468800752894004425155226404243346798162628401714134527018369737399394472710024149355115066377860606001155594788925929517224392642167343555563780179821354039582397656567874540077340159370998754274644982511816228621300692493119877321725743515539679280490210530676093352754740534012194624950985928111052762520101668592601652357334469246810659968646494198821919051431646932217431087524495161074224520271568942359550110606535146006856480119896070031473496701034052620609587249404547256656182332527332201288738675889596054689255981405432550867736358573988213667397130849127068513149292745006988804008166122610491153429236471151223591770949001686171644006443392247095230100427039026820018088977663278635314974100902553728829344177199335170558296393757493690461880229734343788887794430097557127757245169789736908543731244737438800383236419500980886788898273404467458072315998121925704122618419216729363363045493184303865634657302711261464230893822824641936273130266095581068617191981321469097091292852350470694651166779608413238265743636372014784283370357821306217420179268883045688751812087980443820230064821254663592602545007429527136320015242595852732947051500631650254624107879755248725681362904533250139080172792384593988715517635078219479220749872329727065768867742969941218396968479780789079313680115005025348460397656477440879869127922893032853632132929589471104754227648771656339967058738809913379631175685669458929724961813068279889878858103055299484623742794385202089160810238905417009029347906052700615737732693115047804880580590344724470248755712527522025866040904009385341068841673115107909906948565576566207050991973557136587680611179417625197859143210706217270208709776934733785713932600107896886985706879512348573848847135808314872593977347978786291331612171130685220623429083552346092916654404440816318070976395347984935976251841973594004889556420956799758982578250053644754458526839365868798503212885510388344013443156876435096892045031164790558367919953420376482904345357154658988903794541828775125937704736469252699836116316689256188148764110292240035871171023583220952418691945742832197643949434041027675439851869164874823322763171605139691075601538480860158989582128061024025839953053234192061036877764691986747854395609043194542635811728592218641452955215940106463478072207380562743383203221569485263758566406444415493547629396606930603184482384178449163116943154131203258105855214883974216776283236555829605307558323401347102930297905244126125163165668536093701894428599696280822948911835983201386271042168301878180143631338446542810776074261916872211677242696525115127118393287467304229759613779027070116518949495770806483956467825418984204450175277012937898826792779208457259003091240547525285111564157719574345340014810615649865465307530926785461188184188683333150076517826343900214738210877144244667932877946496188676505759452998786831508256780261835818975272174652117177134344028266317401937653028002514720775226582587918108478084495640334653355676404953909853322489027008783364652671953078665791671035314736059474805924717275379381536005000139931449600944531963414696841689016582580429217395030002508529688094891078238233428307497171275471773060270248779235216340847148928336987423147554266747678048451954969049537843701109131294709060369489063452309608353621617764862664129855564316677824683526239407282991246036057742081571084005849491972560817289486819733615254449867596334567735512629799846029986521290054287586352159675180622822077177519906585628497250465434370124205102719381637175704934555770803210798200997673263453998931264690147067216405449366809792575442956963641465270338287874209708650338792239856763442630609246164003432169533547735865990088549691015511740908347785797495773746048851317161339840755897320386946694070983797413122677234576305716425299785430024103740381110203593715510233327122630888637844160028942767587407118422480104552443690741582630539406413164787243539533600790563955538928528535094763088155978647087252699244873789515522364254167506041031006648943218332164315293089604732413065777743678198168740062670615693715472484211756769869770584900837273136252416054694267966120981501928374949040065086138064198361406242385763027740594256722711241036517099643727210510500746589452013831146216811705391675175633352270970852248723142746132187517251025906076826818295458791266350507353536331873786216125838840507530189729173328034171349050033830566257047726364048071414184289562474155151555566604699982801996820178895010577286297441493299332413613447791706336097596489800000479013517343214100348429799346069943641800737261318655589047477150845963335384914794234373449883497109329384219753954870149812604987455950989124013075731502504448060647979882872429365258781796053921394152568228822662151852378768885279916537890125448725415113029534770132383418631043150315837490949594083757998208311356348027835108639386786603484652280538444751509568993847593951310301314658856488417163697117282388781759233451539386875120102796519887064056425436400974230942483723805563877283225458947768098899777753928378876589357324748657014983257638450152278362236545253352349051750476933369888437380194530136787057399537745408438842193959333003583678193389579585920568191395592603766195267806058881161018663332075279357639998100091438051542296548905295974496191795607670180055990922910932200055686428731387399534249824911964180040489002138871172618446062332795648954202785616991943163828722114655078528405846070859026024241867058141452717752432833595993718517740050074605421329402351361195179374448381638639146597245677407119845853457538781977060678962140989736433321876103746624129978659779947500777785819186041964853937345008785506359956146894972662678700112910079257753787289654934408914860812095916449019608936133989745020594695801438137955269066587947126006742932896470638317349060916945573073164487503364567916455228254605034827079615810153075313635195464595553247175759484165583424456396697449784497246010826019391956253485826756863811993937739174232014116200675680193862066882995411011262295755529568081236120832640549110184939166938354311599101349233894567927512267224332535139622332451033609555593012329750538787893036069940306316970384588855993098580063455000098318298130165925233675295044563077994145972594594064304705069464570874129103745581475504769648764128747158504082489073336333637660196442030983074959543802663603196909470065423454424979101648845707402245390500807759314424596912796537501962272513676127798286348613369558138926035954252146880309978710150344159053471353493202809325574042655972878641919083537218009177572482516932235891263025920896885979810277397964695241060493243343675448473250611241180494309404674835205180956734441154728901122774719369279495990650150873774794254312566479697658609212481062307189645573382071226061090849308212661793118851173343663902489300260899250605506402625088714419748840990197016383302358886142187954835975478188027085926985984815037994333340438420667618283637804943304103790285270170737747732328286781277506383462248735772922803883185792154073576791505113667108909811902185872677232859219583895723608903827109866222168664563386376089844943501439139333805516731243293831886365383772977390347403554456129377330042468704586455678215687716871144897822769825197537017398121613172782128263453588318919612843695031855046766155936643212892029776090787477938555725025973223278615961850977656805504272510482022887599836721580492644720632590147669886616189250084562301718524313654718140149794566811442106555575744904436886190007337206688483904380138747464274436863628543218297373570156274913219832556287141021829289689787248794934795900066912808879604120521658807107942107269262627995956607453763385760423496974505508876736956937708102613923062251872225884871513486249081979300824700823147393934608576452518380698967374618619804383246240659205222652041350339153703944154478876259263039195749017169593518467605144411366249185100125277507206157390496765551548658422206167823523002081214652114001988578789007088241654057682526871891545545373845681673984909124359644351993058324373088905751169566170020070195825320808724143013758573608583069613334230615623314760440608284330799177159529826871817933661970295854416603115440397809613272353239089594581287029099686707637384671996941911556419296170291173934058687070893148850667502990065428741640447801741056800031349398300790296717328942498057888081048048802000056387260253837094661146701537132084162824628333789479186100918977550988226148107008935390490863885851961646448550527073248166511532123970183427876290212426655903439888082999399870803439862163928209346226565134940466835983018428704006283070188416351624355953734537129841773548854111352971796804688086939759745117111341805002907426274599027758227288237436084499741167646884894163295829298369094172781990061179877466816127604521848096063642448726002599109929717737189310009088468609730005627963393488071145343688802460622302429012754284951700075147998109049719291960613037166481794407148853696741993509937267927123491882614099323911241817398957847983918825124425653106568592087292014987889291746035024840436666858642515092548748626133198200430602574990924247989091424716671962181413757835508486575399117405415967161314604887344067127028156794060315410904698817907185382470836560521304860881118713716685266382937815305632411410129184313781458901903466653576718917729560447191873093382417381833509471837927436984721916349616992712051595293986923796488979840664915505184969902083300795048620937676101974331363733258999674804374308515905183120795325529400678879145624613074747182940161360406210447716661935075016980651530087007531846194412656637501915711586286697294490393361916301551034508307568085983983353435257326689914747803108684547289410495799754286454289083306623285100720150077547259949462280146546648535154516847271519855504649908065387728405038020289267109667993443044125114180381633657434543669005863042490845820251813725992959973118737098948753107880323692135477474946708994420751028997328449056021449267615738014678571972720421680458265774499693667167985811658815676925893679770758726488278185709549646826499835282752852176418820995150880940944908612097305322540860146964781971948944283736446733078962208976309838182339171809132714944061963807410271277717798210422652311752818852913225097500191396616787358315499210790920685379017627023722503395629302917014995762718267305092999354075495920271312187508649054894607587161503882025964815384411171051897269848978287425688371058797630644218474399140040382662230303368772319425294840804743911491626602899775251553944183518289981717542547314878380480249779301769493515491252461563193917261724819645226939176370147743850284128702590582573650343292437582669905720459640271553688101229859708419185625611518538464679325705960996475367291469537166024584001440582192702251306132620334126413312494575039988038232008453466441443779521685962871915355079482605049585354609144145728198763008508649162700274923330668257912781195451990497154281308078195008496255900444402170663532311104843297496353677373892975278764116357095384850415514986488048075381017211346497645288277869091977839772267988491931037553224625387956995681345428745445254960400462113333612719666014886563822470396355606766807773386847597732901391454290039985362441613802892047241071137799068971218810592914663577510596144360961609323474389225004585321648115904865861522676270825273823944830586171429778941345843321611548290969330105597477767078710665639572897947548763485244813867978462614063562459642478666540853092079783521836308949838982720581701159296644872150870026598465378767285545923740807049188235606069833014694150205831478323890901193973104401263328607389163858736435200896202371679295441571234732703952889516897568541225482741544358118290088779107849828976222512850981636573570909353616515068742785466245061332839894665827542587334052754496366259437713342564623672920667412520387669266563959776348144190734379587342173269637744691987839581698968137797994217542383328098870568366610623666428578450374452292708693890166604572436383320016379770239858379297521421431174441226760932764471644292211726311356465852971803560319973309011893229104485305079234890182219790574282598873694937012412506808516587761884475931896663088120557733033524018312305372705938921407514511345081864201965903259285476632088168197363934074073277435158822558565342130143678228825172557066316911311639179456872126148337632004508696958275933626892439423675463224259398909383962315293820242285366807173277794662512313475183273619045860295927692662695046690918532877875218018202835503952962750438146199122560402539273254945265573075363224373987577850292682058172927825675456738414179464749315489387643772167474368243492000535111348820446029465155532519395464268397890300539255852684185605872474222566945993586993573667162713675303705919083089097103577185719557216290456660408865876168967715647567975946243635066651606391074168157014191150452279962459512215710768448738175216120343995245738917720107278181954406184461792814877558090688237132234865339384118508224903713788188041061194395455560889984512492948893406213168198382859562361168963352477143583729923200747473586087586595050685208653644189342795691420895054043720238037749268742225421092287713745126236384942040730751599570728574429181943083679446407930919569059859368263997363184365778050402107352166611610041401088145536145070449998186298625062050489958472328296104202361527380857353800489775583667856905828021896049959702364632858225094212787312835084952014223726736593835219585340859674390306062360536934098880428935159924467525771610766446076151084347041153129353515289572807865000585356313935676945089397432216882680047517063047808946465872220905983170798510532156407366454169292781916436909247336810863710427702770819295430866045018833870006759591018926632248306693356760523584026764368056013032001498489616057039246131569582496184833671113887084407858572089068175837710006907709752278275423647473957274652499381333350763662239805658036097294995277349273777010049923125744233215350929341551298207654630684315280733987667286589957744094069281295283225864405244558806862610648867298509868213213097079567755244164705683145676937195820769473659330883033117268711085381214810584017254155569211534256122076667031562340933031777618554477437375416057448476389390896974888873815632629956752183265030677638719444040367269944893270190566547875141270724991974426748803720351987261128310790498074161547629520568887544903092743435869262073643720132326529632390862462795653863580220758821828735650249005426891778373140007935210327111425154131638160972684450793279848993774906524958181778177001354381925222664327089490086708747166567132564838254414689543579726760124760420845505778790856362396656792305867886051330584339471111099736718856648888749320222048948859988430802227032120878251351880549348646668822154381746919886142957119244395801822423480239389952383834124417917611372653360337101432348723541623670364491254624629758343596049616527004994973243075713477579887807249262055330103439955708109312051729014116056144864419009521640044723604907081500331248569567895612529096625726886665084841673157941895624377945946848485227141821751444022193683506487152015401397544595709056203689402354408848780347557525497480115825966785999689359366063992150393609520965238091774982994187454496659144380077810391346642020773317929118804163240025011990385265665262616596190212846185209416074304230369095799966901363802684245475755349492220927328717625202121582463183590898818080042301385135557640565949672474812176793528706244936631327685135645187182095153870119826472981701020084172795582754763206355488396775351457233755444179781438601264599517828293740545506112017336393114206994841300155989268137245834441018511321601208533195926284772911433040221868368612713949450705861736706740895015062083319607299937898123982536396105177441620745908763764904471497924977103656621483959502278797218399173748993988756604174582206950179023056439763619068223331372427942564326088629200398390611673196862739233950135965746602231051035592896087040651660424574695305928138745536981169517729945680438057382674500764656413299848728183761416141067225942671214580681127800588246481560610210830085249303257136184307153991724170824065054312021499590533139516475778187539072641704193837417355407050200741879011029841094734047412042965100071885139774555172234521707932927209873551954606350563835994074063538566960494297664897508591946540071219272014206035721818456070691149937616144389289906987849407901842637249901791619700757583949973722332454917419464645448503946216175494077311357212577135564535065940484778731026104985018869451500829348154850085841743861686762010361933308887027237887035572819156666024856988389894523661550761146866713361376427931053931893578574970194365747540384006844993032153631446597040968146688192183206823078659809518907642144690750572685099223909453120288270512003997642564945156016213410547011249137816609830755714763888357334462912841077647452347064893124296028565304174577426811176232002051449802249345612143039235648213729538309999342333830059228069521128146591681618486238825477005850703660925014139213138494947521581878646752449924546347083559810847685322361931806326937613284496765764643729766710720183376039767210325828071942901477927875804228410903374935413013365463073380582838882934897263772279265778669234144787687966373361823882969951894689776318367778338129982161034564150919851661660957057255885742784894447706726877962707436231106558560620807700932056884760103597626595702623948452373782289414007811889477905756619173783447806953721320083925890542272143566112123869340056187984507407193396410822066543745408634718238965201620627296708299086060697708439221813544501918873917632037720677088946189368977430793766095656085982185912619583226191802017612269285249380059980666633569640719883948550210550868856023614348181295646068334888799606489795583704659799118005427973789357695150628083559259111368010107330497015947160242277945473772634330926537204324513146881968936195394205365777283318243053228336884505456219362694944774523384548220620339284542810544784111648026278556572553733852107661784806612362283394709488272128294602481856777808674314087337308870851659507762189207018496674590771833142301775216939494115678880566860785845187336409421329800827508681846806811279956093834842854189469704514592181543720283925737323459244833453664510771841976071358807335604696502900167963332402477365909370765262130933754811762828451800400210416350980854963511671393083603724950385387836626031307023709349022332976007511677691571623627561946417650997937861586368637952080716382985891484067145423185497979968307521950446748036501955617141593451861291158629003502403953491612488919023510035878132806733723186773518720917172151330017258540223827025949066796527958811332687497913764170570075267213342411402305059817666676816649648325333266025048863129521138373837360167575372577887661201877024688877434484917429698167756207225769352460952063728021441433691772732461372516262874053122000775787035016327508727634098803061049952518511395649378929208320030014078767984265476244080704200333462349937254915349644219566588493998046772046172897960705657072461977678014925061505543808304527941202316194231690398796635147399006978419571702061081180185988684184022862755143247679767087680314461514320297167676155791748363805034404920338769871511990435223852115811048400605323547863359666767718219289618226053597459530312939767593412786368197897931902633634087821851659673882720274832460849444263001834181049026982218878516189604390030276649757794890693883799545978203131036301795519583177670519702316399070682946569716442589821653480694642035017295653919532267981901656883748040832109237469917968946276017446743611681559503230420015524091825220447448307164571858244922608698583300088301312346562769966410410318287036183498438991587765180282933818507622769512652935569245552525300799832220436910541700443188305053338949391319845301506738048295724810651923864637044799308585698101925349539760041308894843650215792318955947958450303090200410792330561413145316838648265968065448575745509224486117350192924029391100950967410918934726514001919293187444068358190282999780514371825440783385319446139114231089185030850999702090050107958824919336290575031949559954459522239495720246630437364747849312047982837146385072460844368548057528037672514638302341346494618164593332480346305386412218446015488998453127771859773191811275607327751765965392969097468211859669979905143254360125175470719194726154625557872217317859958032274489268700974301264789176464705054329542210002626313423367345378472254937869188058988071412693494237589609942494675171297958141597185035672769085677461327425375868431101883607446053671478579421530118887021392930279107242246300617457422829690611487562280801416731941681894834117581930545455818021009927119252066855792625814505660781938262639199394017402340361133357686405530170339779418198574249064629130316623239707269269038449705508280881827906466916299199197614206530169997933108067360529377533894639428389615358387642589530135375104796898376089594310286048066419064740409558287942152621194799459258385348487384974092488907631934586926988578303636113714838117613994101541849221752760197823598551804801363335650298894970807515130397045971479233049229454915048204248831806731284384664678593057392504587010146713952097066530142590980970275838349759542710926596596714833311365104272763496191747924471921799802897879978388519422226021691748968831286977628866406188124942985553911168099190352561642456450434963989235028737445955874158520795470781110597723907087144126563599629012865584107511771658266030678925198864377489017905634601812754877279741687947486612839209098830703045984161871799206591390063692929901702085855037976061636388132753746579121010818913660801499705244747229855117626273623909609176228704619585149192636676473421823900381112961992265589262888540414302925170263695515944152609185640236079685640158518552980479594070459956432244232097784267950776360871773420141876708529455494937499108474353981709938464867781465089308262931023803736451110052958005376453600973954922138644886140349548913387668672871706897998967610104603410325142056681470541216936507845962113105729918163233387234755827302079602217484133242440001333518360809011630081263121021041429696006809072648812526121181886482925106890773034858588178063753762616040969031906144036643032851207446583473653762463958386674369597164139172688072627475977372507891820682939863061175959741982025756664127988008760060964761662825648412067144514794600688606924756538645484594076843451051520620771572081107634917830907327454476010873754942862435177075521075207363630549728892541115661085596001235198282720473526066532066758958741334956544449037745716552970573469756168297916613775966093635978333861152538572759998074008968717168514220706254926320472627462438158480056885562039090938620534296655291114002239261738222435622381463780385587717650236525931244586961252565421099340252144822585227061563822142718435114674120609724864163408741332537566658329498204155551072429518233872757085326968245489553830791912128437205257617513922241689633833097007121896195122044628556569759268937007533026519870083433936707912753607975175677435197268112853873427929000926077008775278257644601813766700564043288452188603098064430205631031536885117611287899060130064255355921291852020387466442362113985782208379437586031147747261774210250633229675182817164967417916332897878960382454089536260574546002877377052194006559993010933655559781740319981896616122223392212558128164710069707517994802068767895285089109486780673734284047047369315923354751577953563357238678598712401114322633919263459851049380900644820574589022989697681591968567847703130311647336097267888047678162385410666259096893709617111674292789653672309937992314286047280889558402465207781970634564241688965320400725704234366580640779770771840429001032877189580129072374977768604124374516504574018825775891678285392116973444151803104742207422164765595525709811018130114074365983228866752849526264865326590549498766181531313860134089143237250248848611239514451485250588926829503162348611629381282569387783079163567951032649446985465142895316401610808512926943568262596234805932160139144596617822623923967558168807954787728671538492197690688806848194924358570580111747366655719420139783792120060247197625204331185053633475603367593457432202897601360394758057981556354970341342130588655992135385068838740778951986557800141138859131791192264961863590949762689770637090699144702353125757747096346718213423402450944718550721758937512727902126733022635212517950474421275899871607517325915973179092170672064066661791493829962983881879851277177636882453014271084979985616342502932133811713220591679554670797613682105497253956329104669804345242980160626168725475226573222084141044733567123072503155482793428278285757854629637178814634014051073247438379985143033185782217815520027745614778200720067101907323509005439668477406076676743162673630570242460361769398098655740953214178924106941270250467736030324401625242470073097670400572394464666859362908375093172721387355924220349825632684967294212438088210387528089778494690262945282199564667856176757833735378872407365405291488792784318812752048503209274748158295150203797665765108212705296629191286313224985484474969585754821786974384932020205341716798145391725425329483801392032275089190575024559604666584786342683323417796233486642326792450380479191310561575019435611094117779375335188375483511397482367985446028569458553306200965949397940690474851452797121738722347394852970094465518085067954772377190975707608871575526473886606330037134855820412849158702387373518632090428155884862603009624991337676385181509200567171684963537800262009339612709011005312635571214050364998641735394116961780962272269174094491878328615772249967152258900591377923443453460679069517347885038565185623888972290269096492363168948051928884365446470339900853907455952493356473695474895690473757379430624331668068113156116868188206135004767501322950081628878762786431899289228096372740161014473136460983428579052776636030566061131761327949610669136193550492121187036024111838086413659907803363617012028504267393937891402521077420200288140032076247806422085094969075341788528779370966225109847372168418502269349174178931744938187093214540120494651586648733824401132603503264715317443921937999529767246900296894675578752312943790081464523739965651087100089610001961498265804020146690814956830721237432083554982381112814209565577086265728768301156792591296800763337721521776936002147795354650337524539846127935865751085733571030434784006420877978555294905824559299293381816899615189793417442998542390441529301161515644742768994950145221835537921583605081458671919280564485308143175165779100536449043711172818911220113397135055467169377514312930653656528730742128845874742912207756801836737286783523604395026035175936432139719830424055333571007325688354801281607850218743033845172097033121227869217344089878428987193625972522189035034346167485086993836051744516479713332081617609955617925547525462603699250445677633398965491859039132219343576983703012313739802142818484603929289079271558259844666145262788238472488461969553124990633586176977913585210462790637830732624568262991146603613707785192248119030240546457798996552066407928680241293817203116292140390140187307281611742779630899385367566466350173797915565132522939159375888603108671162332922079971001210262175648007346057425272775321551846950706352375952617987697503299412567257214307636248937602898966594264156645277229539512678882813986390289636423793254942297167107570130641057702856232927856726862759665528464598887718618926643725554493764248639785759738921111424136424332273863058879569466042696972308518856110804992557498565611302166349857321626173319607098747556721342424753044871867757631208418228783101439443774155732553393324220930406617516836646965609207842303549454472855974747927978195516379886591223427606584854246255287238089662781859145936714371005382051172010834090666367527742447369321216941569627671348799127158895637186939772568905380214802483619027913846379020621985923284444131754122759415509604776924701716206232976968418792633021356169392904938206216040018318565559935072530549832679109306931806810687681947699811407694413782321244456877827278022337227451158504945690867720333401635996836240234946703661497835420381854665162276843568662545994252198595457242137901881957323505374105017900266534709927209033017803662433202059988594825510408199592011358777781809455513755700690060182593597343851334930577867281034723305095320546492857008658838850957672597610676372378044675107998798404078450099865636800910765348388387738075319417336600288714921261531565289919983866768741281794343005194472610242797763180443164575768887316720376667087008400376284415113330070042700167693503479945507113129891600585441355926285431434492770523972657365714492139075716827390269201426298313549409184386827543175184660796893588766790004454976461163004181691779216542425742494288610919789157407871015913597195074649160736621665614146023358701951900565773639269046067262911687588633072299839553398353888807326406151323989381810306326697398082559419589800688197071498357634696011678835499669235169465583697343149078183611378405776517076432676462479071323523358359514370049591295893222830070861907944706190177809986151896398438954188856913062914294472094007349084491148131870168323912840400637208015876515888420220938667123189142420295435043198766264658841165018731664277214300266119116406630212019991307600440457309668138897229599247472126851696969227044155339232562748896731894217109004194138275353517664511322302038053638819973288141261804201897785449929212981470583353808036839619347804017116867838512442048379278990979955907292391059772031754983948241682352864116770714757157454838913152597118018186712546792388241294685079486727653129434474457294672535510419022090708347655745135543167605573433299550988090713748530820785984592229426002601838476236118057241622698120147973834120079871463779429301039310721669461843155555632754571446069430778360575743237605748421087682718600292545739835606096016787447045169898812377499183571954882785829662758521657035095154246713775668384485175237084433160288144815975767104864611726390545553527568554908975173458988382634664330118152232870908773010475867539342076007334230055071770712312189095099612951438664698604499920009613121478190829612287541482112023071613014367433040818101130366770078286237480428568069578482189330041914415289415641398027968663885956287376224748545213206634366837591314938028102666512347838960869229267056361366954328762857947507272760734934732490216623642093695152065211084139911383640701601431987657542742711948329417116219658989865231493610166107172961350230730520691278988282698123351179976468930601656377181583731229333888538702633130404665974128044544515518663235850561821602606370529322880407329740381034189598503793107711819454610790821337395152019380041048210243374778630968456785735077191015409721228056947840856305346702452779393387057462805343782124138346557141870125095999861649035557972478674808029226998863964241838401989897225646789553339254645637258219120783835616389476983148906684960558967869076033509708127782128103338940946822125962278106508071851683204453221054019522513639936346208270413213311486531493767940740818425416070142563605012657564513341124616978033955144019273342498052063351706673195050720862125603323016137517825072148927957464652540798164795300838197580842977183590058188484129563031008162612247742444567316750892077812084772605912395140234847796347509183914676048198672890184020963322604427531669402422970749642751036877398097138843302173336008338253557792296647610452676478812764667198000222630131220439847955948282962286511560236799534490675538955902668998419014286122680764135285687335280057109428250756490922443464505113011894212252406423495698602002522544371317198153903859449854135910562660773706707792665868148583942884378498622536612280379662057691764880349243305741685393297953736597415311479714219144449050890114700043365790709265768001094377587181992568427287100417633439216489299091139804553040465261882295553025768397304764731271209348918532395061773786679921044871660704245496012244772610312149808188517857583273208644374715231016318903243302139206990947104531753831474205736460831137957728388404832907844508400884948673259785983676818121540709517861032052000090043368359413730879571806868606387235293182708805295538990616232091988172641432746790598509045369647894116827367101846332242070925871696950417619349976449787580875369696716922278646597520137291574983695594698992072450877983152502867538747619347076143438723925748272145444325419794659423520402188137440524769082611513513802921455398539803080525768165307518425298899927439394030154548755723088803264319754798224439567462689291729507202155628397794268674129762730037729156523375909720349391690301926798461278523936595447583761064946149803385745517161829231405848027048270453167632349166635426122630092322739787796374821561341819671923666018828770727542714698657067520808979250014727681627394490314886181182944740482669574911820647018108074650003744473976596112770845140526798021687849286538688527525161613908973292296993158511631228658285255726078798946397185330808452003607505475211892948778832308953800399278406436960686252443685183870968798819798426519046566357599671353718774587605846697972997246461816442351656270886143270932232272232053268243020333639464607274317160777168893051386925996565052037271137455264740822872328168367503284035712813168130251968447865778572976839071580179955523499568237786892193310483854665210634415255019833443111309292397521751743471087728471663805154028367593654729760630864591107040059597539778830151281073941572475112142168847072090769776422183988486001209551615331769169495944688008881461786158214123779967699416437540651278695793645437003781726076394999152513599754948718164969014791317071662007893533068711833871837221964826447669333555392482319665183181246093478339692403328201490807268413692814410024617199948341479058414816571049414089978664172872138025149541428935260039961636903130418339147509416877215303668378833425612464272176628179190531556250033911994361839427000563429155990406878886127033985456245280345684537496602974133697958269735650284578822323713337636856164596148360319127241951132694186127058363219047103185299510640776860331067245743462501639564195210059515238439335678372191568192893886272459495163736801429158861271524629742103728997870552563686629791913622791827555157756688566890963592556330733415241463466875279636547278406361170966106757438564349517856915887314940227841232710508795654349688744434040022907743387769656678590128572952038960906531176375740855517486696459015941594586405042233739594095579822116431592953762878083886893898706186605309987178594324298576623926821575962690316765741922666090643133759130440464047671366000121181509261604151747054022190968274141471298391899284762637164907338112874815483273858557186053972773183418502691003528749419440706005325303954975075651638131841154929981182912872229376920750327869372078184907774694832732097241837699618445986074255662516272330396440601265145624210680339631425753251671339549294021379261612359656694856374459254227614730713021687472304515863732314235155704347922134979005331027788042163119033092629263315203431497710357085439007011967370391907420550353800143528249254790061911028024755213681108412274299712250530607634196583994330954968542895640043625358058313669865800382748073487121123566032088320448931576955138429397390649303489675098781579951701222365273749995219001000318477576978421158289093034998385451008949375114502330789455326918752341732733775337065040230268881310507348123594434675102337706910852131302495875802038203738121106377226451430038527750233755602747309849964103112194431397383484031345705909152807565601479295485498975128068088725014482566620641261586624112227653943348611173319850672147350518824548583691805412182551589109212182378624657644449989645780877465771769674130476665205354928999683153368719998044328577895846611324893119506596020060253053504934409554730894487239247744172522939508598201445672325774892252521613866352671963881093890484732485500340019267569161868489735925508858533422701528890384853044296571622762072522831262367126871851660437377171147526829648507403284535954807819094831586638699034282413553134498711442792572271064645874862342282800531168066510348284344918157902838821546523908578243948002856993768749958585154392821496799495358541948393396366926658378802761766096061717552343689851927378204713754457427110439756949915388627749379582196786612672376730735458391310116647835073515716255395783286059851167411548035244280459304670757696625642546358779800821121317416879925200444138972201564359687220018209056018036058804948068469569339976241725415138103794563214111810300249560998897282232494770911222207970787416417299064387566527907928356691684684292226661730711186392302955623266016181390380692743654905999643914385281757094831313531016397292204678529444700515016433135531100937720995847126587319480219139426612457440021276301818841811899989696516044089859732575399394546928269416652117519552237643351137063645693359712342232861528687998344578073286550085279009290260235666874983726307504985083060065197167580135438329809090506308566192282193462141575028210621564024774035531863492811901016631053389876749240245238449721338331078622151462375883608305915582313504707992694705089611698896200643594269577232566401506512603537336423952300360953059989487931682356873825032455822625269510478796352473748982140590132201902888266217078121255889513670447759940645745334593175914509679184857662039440682817524720892628813999386466448291562666070069398913277123189936595638500801738950397815889469451027808035155814189921492840270849753669049276509180728843379557706127056575881111688456121959907028484102720624566807123105569990052321613394232201777733748137876462011004486247088040585457332704855769643570234023947245950567097949031674136663622565838086561176801105764283896994590473763519331143848800993872020135616033820793671728547964486582875422859763253011412490881755166819539216071019682139830994605673137396204586208484296658595725929519646239041753376648411628449046925365071994628360977001238464634398554381870015251840508113551170730709687345278715313603645957380630621553060954728970652688087772508965381625467432040525218073804151301875125566919004594673332708108092349183694793355092407941799697305995549167183317245490264380814140401972814913691753677518676683558929999850831083703306119004890472558750131403682655732401230963772351525329407169411177586519446651767662545580743492289224155233412311006969314279428977839216407739502847095329383211234444400461897885159724073159732526968381239355381626639763897034265054414533926864095227096711862956423536205602001972971327674212258141196063882110538232729764437976180909261894120954623600472930045741968075932361883740477907240162528877657692145150562366246377932581266871970512851191357871274839789123521681599258756693503718438713928872286441867561579420870622141250572780194442389288225360967297818351914931345970734362359953324554445641378912500488769239768987784439802589357415827275888088034725426533671697796821548258572436410057544149394356450063020888416160715753214233479676102182869540899605089526784992641408847607699022656499920505310023554486077117379514598643231592451663850930977742269077413182781619735952752148837373077798515599469434699776453721558805384504281814338517805963882226569885601345224829516668838907295728587669853696167194236864385302175132478562109641328830435056489315770347472726078800170931566710240298648941245297299838295196583173533056996886772055206507073212813993735631088341478920105903163573773612777007514672169466957762465923800744534258580784763707964542932428488661954025505822743228059258228879028418642669781302608401554065564906243419371735420028977539710092038413846850642254979203681303195889202267427255615224343357147022403803550495419219024385721668085260038758582056633733166694150193042790907317821373309592902961903730735768227471513347013716518924292317200269745751116471767238537658624089262441810066644765000227167407678786884565897421352491230574182012144441162710856713363818836303078798697055814628136790167898461504109670654764795246056986177231455944152009334024739868664397407936659240570521756069324664396863902365046774775488003163765152105247573140418391692236920244212630814206100965154324919127532084548745351746227524176045020133892611946057266947796801745902062550795625624489672940477711155522604279628817013764989485467036560085389802216696622906114314569291438627909889585160300790063592371958764797915433012648614271865081162850426502743349361587664181627442681009069724467016033002925742852007579727418721007200334295265373114338683558578756188346062002732443258682882766967336833678843392775408830066159693929854291482161876852417424442865061043091830799709098292744273341423008531086327904127428746471931306932608794967316567281656998525095920470544520878341643460775578313206401415522718198186789402124358096202084176729298991096731007838207567326567516215164485887206658785558675210355285566701806534952601781537744587382604673905212998485386985731296353823433583969015559820888120476441760177483175949394658105566787677741380334389912714267406029111268514747871297710206982389209099418254073123415320620990626011310178056791433115763834262245845666009197499712758491655775091308667743931403901846061625733682742391501401087705366953925595228606490249397851205567774644896958177858758883779781837524154770730423759894926072479096509048806814607057173876664659207587316151718827660739762739115207440119819110547320277550841851841794188920698213557056424115249556041814015704062750264569647974847232293074918775168503208969995306669666548594943738142050018754231049873998076276655289499868299598652903471719282447972837474216601740611428603516972980924842607603303784306149449443655559507962959406627791684610216319558316180235157267143667994281293663897233222460177755347915418813197251433618383828860950736399685062435968079518536148692131046995395828252588648449704414449404834873077360511228281902077804267373430442456970949243383681084198617369261719697027509805169624014746757000928510532193730458794959646705749989477043307431121614747635708370930734975283467643956879460465427592042166512842293641232564408889713065627787299149950640028063213545268121814218000854000805840151123662835295395094805022839431656108465381147255516587843642151700602370005276922118215886875301149218499163555943342368848999630905321474127799102549263182830837191142010077353696668614942343821461221429169573453065076088148529801326237816626011816794258662076469757867866151331818255256345582565799181105396935932866583382254061846244987341813572072311020182721891789697320780048033223756860574262285017137538342140176103162449411402074713621270644195489935791040083800666197125839078123140715009719190567672148423063995741528462581155622451379355437187251868215266473984006246716425159083713650182069716343046873979126289397299268673087436134078094318330559570050485847366713954168676274084961409092413497781083192864609705202323342481140376301858876910967135811121511603846183498937657901665961278486126404090991347151242823582210034796413024652471943234649521111228838412296714086753121403358393194078956115806754859357163324657109794389132600174959353586443686517731501929817306990842679851914736174418921745403232883865918958891084623962761467253064479328319207030784103562357771874845016307496786957476104877229405831337637953701226257725795813360524849469456087204716494368172846024186971182368690746838783529464646641190117066823214173832139644699990382023637402688141432619615481931071426450956104891078167361912779359441330322744065307717049959870774644872181932047619507945001844578202875345708594101013975107870772332191821978486388774263585187328022861083572123567802816794129471751558683364568022825832953676135268154950158187133814676368344798332783254900651258469755408496993694017062663757476434661957473869158657855014137784370320062157705606133038814231621595212702210036885952508892977550806508710165330130790942974322184292381229878112921900568094260612347446223515464744496666934842246000820199974962396870395087781933660749562020279664212378284973417343656716907490083110900928825910272950130447522866870615254847928078865298265133850453926915520785449220709590482397398988322873284993675766402681075888968276938246011026508602374538020157967555647696367997310967944837036731934806901181119248388791811825752771944822854892168014423337605878325543083061149054505946943250031537620828735975259065933785852832419950167685029752565787244304468453141851929104448867667792053181867113213484560245599801117817377365763399897719246645192732070647330245547612612245288661022039873456360536075629960530455753828090469079491432163897483271692523252900380856770149088474771573545737512101172596415019951567238729855218470137701531792407029898246699258828384044632943808869188806428533955132859683079716346515488192007717706472949299541530575604251690023983638574146312635029144261010878796424165152870857840735208456900133860049435123943493928261032925402961995445128818040653237223196701903356930845789824568328459278292707718389906896275234715875697609390795075020552489965830065551598250031011679885680014601798602938134565662751609493781938848210855186720253078314992078612617797249041622364522527020310742597454684707690996542207681541371964239091942745413460241529174394982297794142190990518285145949018903218550169121098949636804007721925733811797681923999038787884566079865863728027060642623529381891895629653251163914491174712887996364844419449130249140648534440382975411823627141899860137150865195968005497890109960557866713361758855403527314743794866696173481825908438259603487321852900862715061436222868378443720871274952394251903899632642367047571755249202880185342495265937574803125279123107869134075188958432837870911307670253769160177472027160260199049148310333345001101785982324515725048146662400243931107030991083802517169201380297353986520424695375090910760254714865300729556674374433922226163455878557723839015619610393046612653132360599481688149733256771665086434051012846227389305344057898568545697288561794490122897065929859687910184089580735788743347727312587634608691832757106761168230389852965367410625799184008950226719344155169009330735556952937266583806339444635762282918054376263526511453204789367888160834099296124438749483724608562793614638272627008568143137542130524767615308164723533231382740316990471818918573116486499822755890439905652117275825198069848971815479298899721520304513916909125602338405719226249442646534692049977644623752504168938032471206391437088202458215675011513441029114475522117558562187817579339076920168389672842402654161751110494738701337495166800015063264730871673833431616355589880128234208982954858906221231615958220488824815242115858565362904874321366981340423762793287536458137306222283813327750379341887120177514884188164055069914270285737189448875369340659088218285870537605980049693771667922152640199441334285613217817234070584309625226673875846521569642941067791585763852537422115873706752831236118259647554315434216234102078012599434440990796368032407082204140531735206069400595361899686887656734168514898086342178260903570943423843640675876364005446845565371719071897859841987555684004150841750249335536329411323445849095307443382301822465230912333493690041161366100991469440966930366648827503807896538114359899112785928056788938421718318756862648764718411054491860325681438745109714897493129437794775629210215732506369202920412222444764221500354814161379900271966038118768568635527535707210358581945051528370364266242707874927252332142325910753225991457292603529467502454504810298818861845074627209293714480387827339805587785369717829984446003490354959412946772411875910721481285715442986284384802200154743853410790143157878320193304162754659905444340745693728184650144173235652037680506961393210190528724607412163874455505582604150996683891931309189564665384932152996928757471203620509435073998122459930177536436684053145615267541032031996510247941811279166936248595883204143261914695923012436127939923260120541828458570611166366832203301674102251878632805670942507019317868635723057711928773737442218798248681568741037027698019567638654900934893034633789384050290568558932011247868752584201740586947764600864773601904673356843833236621738499468452121360483132882761370522327347246183574144882639096573090473581381573206242029959672356429006711864023872230610433735275930317087468753604301398952194266412452588885395168405682993648436395532519754219837636089443905066011451947865452047686693063856812977287148484202325874534062388021983232994347618322678325230321756273495376221121852121447708117145752952602586203974280014866897888863697464642204245950901111331691928586427256908695833031067625794005765680132551726522741282055306156801819483512430266486065878345242514554253664619494971824521211510249397325496847764783707286262835325698308069245527851078044167862429611274128998129276472118114677171864860005552977410914186419572936295379681711759438606610091497350016551920755847121787582190139667811392800174379595173877656168936635006900507394430200605024447540419853501397567250423117675821478048020840041171399603206374523629683918161067211761819148890825468888025956447398371651038978127659110849938332824455288021313093383300395552296091657424044237196586556154874692492448385452576253736143941398588821363545323722157813795612739010915275600544743902550086348416915454359807819134493268638948210620575950164991667122507203132262185292603704220054769820106168729928305507872367047057311805658500835163853557830005392773376076731725278233338243933584855816122990325394544483344927429337919598733847201727713552807469046913660008100867178151210295483081849723052720889401230811886373819891802000823605739832929507053364580727104580074572803622242883747515654412511057673628028521935087714377009655950629086868110730581077476344850638607652273171024124463952002040058780617461479844557369302044522873210007848417726848383232948990292082360499073664698448157885669459526890087191657395331058278579542404420500152460680486067166197401569491011602711201269969684027219262071120043268037534745870309782916670236555416675391112088947243475192594619843076006407923236584729936784328552915257256663610955821088430406280757536666820547414009371042269503256211818147068803122521882852156882980795354792519026288752862329790100320080471267886522239040322363317201473066669849346118684858661445747777097561590064553132974694514592900748338598731419876299363298301461412034603323858243416852137839041709666245623937167031421008707781290521910043815148680639614061358747730267561119674974416279684503701200702290985753079860879256027041377656787476685529954738782034439847813866634410285500134871821353771167504594274919158999971674146553637308142404621911446640927478981585474584048362942846821837859877986169263284114011115991750064920731464856422695882376516936535513773648256866827233816600224435744478271135175376294015456542465881852976557422050361967898725730409413566427112625667751297677495322893538113269973409039143154055143786643527468331172698820132351792745547419754732128405388005003884051077159998886272387531160458104106202874138548916851986614617102357751006052549109033165550156006123737180540824276138030228664581707292666932940788111791934007894093179215456666754675079910247901507798075874267009784354081920836980908357074921728815602863034240118299389667041866476769228144797114537966989607236274065308298346198271456316799698306240012605454662103452193145186303745591271287352490724685605829893748100889882846105309939956780077192936163905804534785789029472917842249870639603514923843454357983013707649777387305846537483449012289603670603993626022195129539710625431234607723008669124253150364354606950276566534477032498334571305657349990632736326716569919350169132791866701210969958816986263439430140966917324600066100428765860651841767808706589470555436721569786431111301941425146233161895005738981472106887294135324798569751433737267960555285623058367696410971480196900480638175632148525363061992523586270814323281377668039881486774229382607384766104352660272923350295133008885219988542269889088798435705620743957862980671861451499945846290917881105102192861159786436287307596803165805503353968270819169632546645300588226301728013392026447594162697318000008309596504745835478301546712889470858405581273171625903542708425980158413140529999761363240358249455907692913084816605057938707518287759592679076053196736357678581736694011427768933424009428207891814204146351144132967765930579856683632948631094230643298241203730449050976634440043850289846016050405053033933739018659807163388098384456030509451283663483250509377286444457248644943952367335387878573426695494382918154073797310338299043344992458150150416539337487843240178462681839393653684344506163239228029402047778135062420661247880747949585530585178868130411973482512124918288242720382388128573840656753384658925267541545158619493588996651324887010867955931078354622188517324707365637238355032158522667264715708249288020065238702891978624785510610508834370810936904989726672713342918235845347712127063384649439276504650569377935365766147374357576507428023306085708330247800564451144010136851410023235452081500292615031100103431608820887323922441040132243034754565300590738423909789374370471811911730281846431137003730943976598416003462779124725976132235897587344832591430092498469615469867400900930803893370173716575696755052121165932344234893269948190594593786965649519327276254017978272157199165162556858701134456074254996276631828629453920116805207145899429622660188219366277367989411402397295091728296286613977505784760361258336584361590026124338162059301361008029217806550437885210947058034252978667284169278356480847797588330191742763633070116917550515145073445570521433698067845100688256567448369124066374486821147537792198485146913989212383418637235206614790147629859391328754510443655601685726206224858459898693619538101054185997759277727573898953773838864590047478502341581142484009555670562042209031471955581726736600110157102865701045131794814769373575617003232416775670580655527451510098461927387039512621466531949045257850770005354669820847170054218067987366283206975131866716453367978866720952278527932827238464413578186194846209599301531398439241463290114959195003321228764226477389224150588745167912342795373807604053144187929312563227561042273113202872189487461029300315709614281596384441325772471383330450314699007756167423238035968536986480491796718996906930477125054715470040740306181952317079785958463869889538657700428174475673745736740716161054357232187765194132720428194038041935471525595943763905292141802412103126387394831461888014419925446741093800580263710528145868312011956547698399226907556649432831144171583836694240623603585137325766684454454016545585883624998417072718492347443333478803838407565939594135956825849340137896413946455303517036083164930882484958752211102635031030046872778294725150378827536709565583009090354635041284686264699667900248432788211452982580896879044882143011901341816869253898631577052220539886891289023339533617642492759581069742371644363169628593197217952724266623256606862067805328394400211673189353378240505775827154502513999406362361699067087374968001037281772371767839105883187609892702006523198210616746574623765126383838654319678613204310847959547192270235439297609684166821851721932345161435457973678355730169114363115409265436392143283557307389373828851002580856841446223091853217560171501654884815025990892847418447968605293628949339274358210453937508062226228825399963655105788312266687993711416197752114511984512903261952664260314758621232250007290694191135337189113366143308442132186317885515606489954337728321688313956588012598929788334699959923756497460179494128407249004912542111074291902823409809627664395609914086591217940132663942101255172216935276567921490580716397660614833963113825322406981285935587451837007983018134445461303820288027003461479676311832649164739657207096710370939137806674021802681464445294072018824706600835823589832750442713070244730223199610073813632685792269797555513505543380842585349813236308351824776967610796023986501505960015142702018393019798439658101707185292672203427085216727081335871874590438719472838590496318812874930812998275667892241976962827184704625749822912391384556770425899727751648281457278233256159399901979829236362162289761251294777977369716522019603589385534918705581296801470642944982970756096636805550422589187219871212086794214231648047504054937456288018242871395703266418809129065198811553966052399686233582667948190044557083276889290029198258277973609700082490687912967044607040020747927650804972687099838162823130618975042960447377604253751600841453617450345439567614319801110053714503876169868657798233806051604837938263271975217400564676826258415400758382283582628115887369220622541379261000733987115874736578244003032606779483560107080566344029592814473700002713340866674464785749731914730766886012678242699841611647836128711433091114825013341408087640505442109851240685625383496727889437959861423380482125608686508368105097219427356608387314910719861758732228285265891644785272129986232572513930737130317028347826228393135070175412221467592778535972864533043392767943578771324714966416632705687147877001713195928277463886480017771248057914701977415098809371323991660734826298459319053089593655290017378213038837540862921151038363656653395588114976840130201762694861691166513795028645117721590338950079835038716203463165141494881268770916311041394963220680790650122292224275012087738575560013302366472762671147174002220255173019750114440674472141958101529891129679419137583788239416764636118067039652895961688028431141621506683334048270005951394298462798738016302142765997973049347991458750421104327492568319904145553355895268402126767465878808067252137178101066438680544389113926521969794184425036231303962822821943672430707670269822007817984452938427253351906632472377018558255346660688026070042313872801514443725070858077207943034716877102910330513227911304840864323908669748232850228271920245063570488490088020170642720215018117410538894790097783654787464336833651130222730253633746633209564981516599472281377294345169864193983013220359302413651902223448211229848163310619176141082684117762179920206794036328401185034208679205873774158950146383309247490324413287053117242954390118625243453601741493704648239937808963916971091458219296578048968438260981346023308062483895664939817536135238213911959216040534589674935488130580383820476440672031938321481150143794978541094459387816678795221159168625182043827331597259725439105703210191830784481599281004163529157489712344878451160438825283093762233795163882128753549538297113323057591542741358813051950054641643512806204418220236017956794482881722736523156923897573386712750277673187739850984737632538419917926723089090693386362961745999654688731307801599091903111292909333655280650859448483483436252765439707703065625639849614456823574177097408300991674580428135273809395400775940683507373411378535861107567258335907629107029549589394296431261100409414933214419033012565532171281402455309141799981740488007823090016480527280039879584415747039280172775031865244678154679654434128992407909160676696658488704903769599086979536417034095510785144690378261149481750830914292821144838034403361977961871530402969700786866862975301156028501898442044700269131561089630012964392523095571428983351589025121640277864255520353098058030726348953022480872180514725805565511971659049374580560152426341525848097615368201910483391259563024834204261692250656344138498910301073725216001698956111152659748809167926760356577592881472119915180022570913455974549367504677171144746056280189220562689757132768564427195889501082874694848311282894016412467334752204141489924054294391724255794201751310174571622102361866220932091036083820976576287850080891756649991352657698655374416198383940976018205714650414896418811393001988484402239145993476782669431693618823598604240251730786577093164179707632388039415264663541371671523524446061945099842634417673158249462739825055613696689891124792993349319276474753334736147805041891240205167869748977277931773593955095893877499429241816297835205058884532601680104202661822398307922790577414848140073263520696975600071116068586787924285044830318559877430870317058055920662630738267883784067355552005712933410837822749533309174264670868952793937343274805490025639554447283807991376448572226146956068782976930818190245023890985804880757040142965971479582089271014753734042598343668625759509072496598839849120436369726236222832496041325497794951105784589960727330939255193226614861086401145558125812765038909030216208735042183647633045332291008290977508527096727485369083514055359486617438926532366992815026209726623928652552523969419410455513865800459609987724224979428664275688468802370657475752564908934025070506111353572222189903022837905633693874378465633805438820743407617833956924743666950870219719709241624680806949240469523594546526801852311169178497067232965009124024544155484618729324143110295155957109416703270785139313053190831458193647515207505095884784065425028795039029865959880966237501479815827097927237614946713835156660545904184576883911312870557729560236929859557027178441393297095296932730492051344493500146378155402426117383811095967186896993277968488603966746125848779547924120568281548139188570900345320012251268190934058051619271925849068501111824547435660176628548707953525231550499849309243467686253035037427539075176873669999301923924926090801764725641756190899787404184217820150691284389840549692442760051482852980305665329669055220053426905321232278325459057160388317274808297221671911755728726076326959320153848455915435427692085462699557363412571153598847792228996726904096054721230363310799309427070044103785387277862780256839169168851471255890531043644883900104783314439975723478674949591772720887960677746744329504995121996038537739487858720661762726739439053513399579231656647857550741533350243500601531618656092097056756646559222836108325006045191291081666800957099017135339020094133131865454338828658890870270031533091540215420391139776542869117728478711112955676180855721177076661735922042077681276928402325790028193870132896825500380456100260676467873839337977071739952477688310286841262028069027716571127277287105160988832879691643439734854883769982813590916322553834496968144951103364405545731967329497896280263939647738164086097612641034070086461126030339259888606977927891875489882909390021213299914145708574909586917939326043398670810107003816783172402781807620915834449156831464628648911468466272461015470918594621962494032231298296086518107027797405564500645353200258666981013614431503971784980388469644245995683949304875095913008634976137623951683514588771924976069730715991604091094856718873929775034344460198404923058691372096079969872313359702214319701206594421460596682279875166098015954853846986528681158068683733193170124547134646992090718232635214168776193258598266832314689060363792714530098832867284328603978150518004719254369439686723225612234877268687672366424191695359611399128217192952499996473693768020570788714997187288070964766502026497066846402694828729360595466979545438672510832466228180837059416312798820501258639603371533451551490333738142818554184903806150628014207011318203481485286154431878661713365001111614105047512597404117982643589732003724033252105185709896077279775716114618953832581336971868572818587824507708382759249960898225627406396103609787496440289121903719313861451975620937012715814416114098239761429969790577517267284233895142935185286176141700436399680562107270096746217375198098084043346402424592111402157805310011574262124625540453374912530611109055385021511501522584087576375461600212795827458386172799911782931800846315656928047998398579540970890556253618866767268520693759632127325558887368216042556805671648769875699955774117090156419075210726888770343538413825059570122048405810075724476062957388946265533910960887952924004508897425375596190567834612975018794264296368282470980908614406161405348082008344069842411474841102009071187545856385180409982165332915026550013073897067903091824432031518213444138491097415595817243992408991342555755903405952054691471308883950398777083016183803716990865621641592579247343452285081541089200939908692151059960483910762664586315707396474926577855819630674518593497903687910386754092610984901898467982913028991524309281416608041267937388470821204276531212715909352885930024645334830114933324699473325768268352628687508268708341932899989534522935705952498210476928782068882253598767794733808422244022755239411640377456006713553114115902122928406425365673722650960232961379017986638836361916526357019647827967830014241717280035923692750928445807577528270439333672472257204351726151558290122494378617647153542408039223528712214579790509344020060749537587669722020593138346884314324122621743997391868252227580493966411239879752407289958241999480349773491310769572516960070021417079250866927338614763477776480198210039926450839312745827061322652201740453593729000529526376897108393207322068921861295491118853940595626251307699272641058011890355148760690973157577794825004813178308962035115234364269677853059069601949095031622526108977239910968071075085820927212965878698178807534602460289896650881977910937432600388965367932563724506229285419214008218074297669201209322239957463547212732126759494597192140117140666040451710062037556237710965406449330933525657321621253740279235311305151062772026539951941872858759513279657149943881184081246375836448887928285881746139777231577577053099253138573190645307847833579564075457556726092202091395107651521534835089396906322375881566474197887855309259451468153906726035680868756009864737259301200863750840466052963903698528168844229743123722900008623398427953488927077864423813142485202063847669726356027018118076329054824029165025996533340960003332568866029458744298657028586845047022300590031751074728632761598569272638056591236278172360005173910262025703921221948093337145222280119959931407288601563014176884232961560543631591780947571970035411420801688759865215475779113384719803193841659299176714263589232824982688069227534261110639997727336191659766648242402652205698781798239380020137689511753275664163175632474911937811122639348203720493721526535303021842607916073846299198539262282985807787740842980805839172238794094759576931073306160268811155827055283246673228281629721043046764575311818702431717475182441946588087989652826250851835947562153220433149386207655056848452308945621458304555970230453433318897515990094717684050981982056662603990198962848572150459161622453240489505437880205786551603462997865744662170840929797140800165600328674113247785137207134573140761821684002829765824591858510270747330412628801066108371054245003462607277836844638059566755179994834435078918675724901851009262735127767790235378860672896578109110042310930876190364083198270356815193644567716135577754611147750746202804400306240149097301383737708116132549936244862776362826010475700937368387571077765629625425394225618196262724332801402743982331216860437048352073834048311193942783204037231813834295935140936038027020085836297779907317906470083178211417667890743050018672859908438353141558045757514188864573799006760348845433054291824462722282681718506327728689508772081644178715667756491156798331699843368586975197633234478207041350690675621569420255496683801378168220843190075446491359632943685158225713497677643005637909414155745628933434807613033357147741301657169900780446233810617315069058198281595696720593017024357355594629997795002116146794632179496915642932412267839568287885215224706822119461303552579847415128363406739173631870304349225428855437924424363238756132710630370964851687034761480725343949794503675566966564288973330325102469462384524652359965382231208460505464069047528952783876838119833802148306909945418613532969781916301383495358382520159427123731120599563245403647923303982315795399684869953475997907738276922735677923108228357362603600598288671078258255010032245728888288228101940828965998600454166105393137954790328767034620880618497259136712351011392659607689396637157099438618050615944565938230944111411933697944856472752275292147383880095439645142679946315470927468950445547957704360840827581109578019662090047538261358914216780238550409324253207792308083341817976973840789475543253226697613522799200440371457522878874168642485730580492858553730942348699104042482769858363630890055506491332689856194932112850901518057316737259375979646501740009416795224031757972119682505608012584876198099764305751684230492691148522952661950543073989935707353882146867808512234935493750907142840600087113178177523963254711011522364814775318375154600675011957396858851272720051105964170814444875461552759061694509363284851602813490009017471108832534066849336879873020531391614374510423079537703793831430344999733513164303710566924509547628828676237755573227360328592654629007864485740208634961188026006841062026948889638363631039147602712700989833703885689460444383022904139156293210513262541845908867844604769423506001700868944027381238385898761839818941925884189116460394516853148588615038310443376798308126500099546975914859395227545672420671741651294051705443733887328768761177303115340268574130765570319537394925762976936898003759027260711834346671443001665527738405509018403970418076663025663209385615830623265746531049653981643703164041461644764382937872888963720570233110500952804526295163002350307604419541006027036966561996581208648844491890433396236196241230966783151582168299115199985559792556517495988580108268975257721263085412625613759315531596379953743448854626592048687540337825636201129676508926928936139042946985387406465679396545111825674221900437254545635982710095695439337890409236696498853432449553689874949717056026901109687633502875672657679770988970569536518423015644562910785486125186806005498825922606712081803583434402198239186680969566067955903155579524793928274143203583407288423424337640199670065861025495140246478229524143781818440249088633059425635256223161359795591396537833501011823450464624693047848651873231407607735321632965912084421086053648491062506520262236500156715104286034170662990485249893383034381548401428268912950532112688814287757299355523407039781763395923605659196143501816750393603881184809367571151155260338241674867886235212704170734616547669951987811057849478611545091772232970054961520104012776181884675867684517233129367043702654051971949319945264185869256380404644332199423070514093836184021783227561430580773884761342848177502754586974495949945422106375579347547489007835057633275907803803862900700686175847565724387849567557495059442999213488515112736637949414549176619477882037682255312968550859370506504048372262094270234014895066315002388195169312997313376757680348498433915777664732683732364176414698265096912864074544245067222014211150919294569628502298604875168974982520074142668817002923364081530318319860728827635517129969574492432698985544682272214730160102615418168680983367752593602618459592541300255101511166757339871087961027784150067719762461443636830947710057392727075302544838475535339024913581009657349141071477320138713180100104332862559860534368670064251386341669668454580670970329837741376655515119351995276697798998479546271003812434036969134254213423384477587259252896741111488334989186409466760683848555662814843423602667559492325734477701246466860013749101733382657800269023687553144082808424778303246481812452780982234667565999809612678217539494458513864357403668484615299114922276408540928471671660902996633705620280406274314260723086469120596681408844436955821958408197626915042102599189357160099924090934872842132511832859720642862249656675422397710285850563994713472767697936536070740963531396176194700930825038220360513228730110659508045681144510295315383427481870544274703846861927696313541459297183602641431779120074008877417276311425754722749492613767574771431722610504703892720612022161413286389088004401503101662629343253279688230877284134367844807465074737326057686762299830108239483696583956203288078193189820866156284469408561102530609944875703662945833033903494778109035461079634652587871229776773269498435254083558764678231964396105706943344546172855169966367865479923608724630368693989056830312653323413758449154589076355156278734118664929914388993860700963316197202145567780713352511434818154669482467208038018848123678328263425572304857027059816086766386897404603239859644612980795385262051248457297704859267405505889093527346640542093700497535534272942226993689211598894349175167731504131094995727204661364667983907020710271373185938022284720537131145126735757364423623094543093270349634464517274057437004744072003556728658123113923937453044569761618687640229203276992633373470936545030071694072246695487887790809843449433589157984178095548813267069097751237763778165967095324741998095749034143052944396443926524951598505769132439948631460907044671956760659212501118331195240635824442850354955633691187590264744719052895259148199686107394105833322480078366288152710472814546806933840909270608533565564260925493990466392210596360028139510124861872636971034321451301700388943089043047153198756851850589681361886860081539319049945917988990856430774067490832654898963709490571380861729108157855855406507938347704282310994580585337299218851188644220550685695466601852698064005802959202820547371654823968046120993773251502235594632530364506056697972284451450285284158164719357302935200540063096542513041483197860682556125611025412775142322513578309757768426410121379027457092393292700222300166916494981126195794180043436972304528375187969982614051080357379257446607804929041393474089422097552540636919007395591242154335768094968039827223716211298489603915431034999911200058374736836897452259338572258742826721026219331609676600778336954053442580220297845102957073839148383102551473779875523096367429798415930648507509593315412373931849916837882916652084136850688560750436727410289631936934205735546826353774915327476774774753752188290875482167882691573382414047053807886500091749067904666599139135221954695055320982308721497846880879838845171453773017148892515807260688550955723000581258149376010308503990925661932575643675047598849884278667396186779798029972553155979231063053642895026082150085106612469045772529170601270681445147683616997253166345617713030839151397157331100464949835678941234922358937606977365752584934939294842218754046631181776590290283708175020822062176645914609133956375029140190322327666114741064651970132355113837128766214244556387662841394141695087693310161042571450558687443129955487444002198009746609040642120417351040034718331686798110953042351033853847780345044471419856783610934414991436636564123261298086641632612549711582963740831300165690833158094231413946805297092754571138557752753577798657048032732768721094357783590720113577563219360000078791653596337386993979016611339668229761180327059895327198014586407411483238480372605823270633252509273413014912381020905710806229208483753995071255023457559496572180363029612492454789305051192745354264741040433135417993697955827842715719656081538827202651186523895531513771757449012253862485587031060870405539549535912780967126141533402030060430756605254602668344002534239164242747283792169781820713820486223208500927976983724052449948325677461630307420876304517926307795635922526769842490398830293609907973145769266966379379789815318916510399549919871523452860123936416104243935109257543616600433429057280957348060129148219271418858525918886977721748488454622975836327049574714077747691159794768779913957324742729393335725474455190255495248525362923388754004738861151022287076494268225561377264958052388942953695771744774782223218212683856850502629174143287427345054863222879659919713340160164944108598489610384420916960176575871968376790066200103341710859052776237793074057815394410070329336114935815590110100384597603227155444470654463420853968884656485519347763879977672619338045355982066683682815556380252895012439720606657574668081829772735596767295076687396235961731473857346214106878198374031645963629081183325268799176104756805859432822746097112188781638452069464354044183156847352636473347542659537602812721357234043913959344060784404402847640030975933499415798240232068025787329418220583489684741609854166360836661931630822248766280883139833329819187920311077356718460677207625768525230973677670264347220432241237192107288784910331152075693632677294959366593606271173511492946891446736371031938480117538333028055469449663124560928713009946676027230602556049753785519082866830558796035185379029072515942318453895883490712162684195334889218065739861793017943986342695892776016104670695079699265442883764313591285504826347250399969307108990553636829804645428192407635187638657573104555479612112907467602353934867380148543823128388158315573153927946849426753244673315102973039560355089494872694286643361581242499878969584665872360009537123006582547815259959488542158748154902397660272509286078967092393581864691975528812272652554943966116918927081335836150878593441899256475254910078917204528551972241517928271244470093550705791860843653111501670437544349596200628259434330300483206956777626019217636379603154067188745348954230281147471039667907564404344116454373072214602322794776142826119407251160497192452281654061728619288382700220874312605725452176098665477858512655364076443142317656276952754646912615476682830196094758182602972787698585173556519022183114877885394683169688926464521901524384469176879091354479041130425881461360330131058981322760336493500280496911528359158716573752028776255188523797556317960967645563357945127520865819797328820446241900382359861023679945858777510018038636861883103522375796056421910688874796475986916299067793078060417005033610916227565555916430502401303311395340599507665383057601575640650168727693360969489434877787949044841256970190525043389231167926833154431666575635812454488705692165685045429695570622015711420631076693214189337467054946135741314619327626776322468200701808013696123248685924347682808889603976499479396432816967372942924385447477819124502271263913477747621426627150171599321432101418364342799384137567935052019967524514340251514609799162520792732554260288962386813666768216971487039204176229561787164363565486404103669068002332125184372139506744773484649648054580960212518927062056627241785056183038098630898387410620444171078726888452387172401938599477000933373744593559156970308861970660054582080345062385217245418023855127807580863465904761456376676777113636498228411172236475629471564484486876802451907172553204618487772389164867857393182916433049356901131182862256234569544018005576323700463968579259937596592915634264769870538466676516572931315924245078555353760955985954710804507496259735297434737311352066081686164589456099706221777230566122066969221246919259312459633267851355665719446471317859293903667167536265122152428864783811956116677606288543703452724295611052484804152013674009363254457210173528285831079289412932266859023326323038793070450817319800830254005670219579803375585059825914064130994286736031384817755556559528882040320164613143199898261206992526532055743506506692639713938945359859327807546038421671346083169188913250903964750847807471326617867004381042102703398175580491317173454533643768187030887455312088981018339613301986372240342892810674565345974013370257657727493177102439264131927790920666572588686522187316792795058313036679334879475964627237618381025824331314233900240748823746674269616742407898530251633895618986571619665040187700357946016079518692136141575199714956756873986159013316771932206019977997770936109938440176925534500874912200634895703843115755844187291472187913231155940093417349462341752872798417321251883129064581687169937759644987175751462488602527383436640038443521871367813094835574705156247555553901578601354290491745039113124660187513359453015862725977182872035700239581571354708260499916788673399241365279744500009180532006386599662408453636347271627696433961624051382233371106591987325451029878726704860557537255571669650660359689924116321453779825120561378985083386810884643533441390107684022740283173026423114879247337519714544729098327468488623561194107013877898759527559239977108569502852240136602258788565503117223567084988477442103720766119353695313043752860752203797347842627689715822634890137050533118609647359841608089432867617317010358155827844857382534796059919534203478883207928449078726686197061720464543160959487333670590896437070591663243017529914981156360772293642828862697978954204287346684202634110916014824339933177908020648901030637241151111733069286411417060678760320494243546421806251261545130542939159535952639879911841521273123313524516589148759974131282872695265806072028914230654356656036432856224426420916906195365251363576303914604302528893277446723638397309127552440196677854680279668155116430154148984553498910638820404344209576368942070483561606892425093912163774033741600456722121572283633986950125632118123436296807716438196067104257955785291630222494506013987980804427854148155472611625778681867130472057159851804799994894404105800766664507688018321470563753328454048615006246924956921206179941597025437722064389445099374823121215875381786433757103686447443253028050435688406217809510921207083193079783193331160938514365623305195104444641279230572861910164554552090476999237397263315301050251318291832738737788745244361851691406654394353689941973446698732613665419087577131060568461513862108399879998744827712801734246104975937296712578015976788711857242441048616638023785364510109537212277031522765585255612090544290614753399521458945013900091867064999388450943946814911980506067189017661068695907848330105862247216322789782849574007265682970398932381444136939433465687554132080902324374715926059317959040726522593204945001389374085853131071742672118839865049033964901628611988268135168816545049919157052499027013386077967923784310081391016733850688613837700800218793327936015288713514914565517762660171758368577432094717194240611072767935680337481952157329461010425587802504954034590394730176245411105904639417472190274947557729686711317655704879750283390247765541834010630505443752664568036441506460393922179455133381723428772700672929753969935533714427723374530040730421450718990608521286389897489481887545138201652425744214380435717362504885063139626884027039981753852482266052679162233789428055615099933437858373139808801983334194412825731755413578631121115846036155736959361972731059246784901028459127432674963020194322361324014799783301722292729693506854043767413711002156236439224352959796649174063624601454101692141451884690256921574446158598345099120224824636185494766860204747591242808971062647535116878157527142008058477648289634680573108205245758784640725826715300539847096964628390546432615426706826841748799293168918611385827506940289088544260048213655118729682471336677316192121951769694867398647555426500083647384585464871932734615495734109801829424248920754196421869140376791031332866470103619433264420588577685421333685437802012227104040017806613909757009650911607886420458303127061554144565048545757393218530125958747221390805190413722061889952387537558241381442581625400880903959684810249348711040470575678941206777114990382706788857200465138524309199487858776224885071342452907548002041625125086571104325060848424423636691479248556044350786223199843224936713720972408463307564506045256757925351855668229600078105051738766127603794906033755379443003875996061001049534725848357151345172988467612625329587512744006598054387864648414428963237674779827574097158880180528907235176372231547827601481042908969535137966886655326053832941297817489825878706893888039067502622948253230285940204230891214766980939266084074558913487034918130135083354476758651381957614980647806382873440460573640249644854541365072543702712932861446288585494923457003406519931746230834455452200447699083541929388499502073060613653821573304770313139338382096305997833859535282731041267694286748544035122946002496913935990550292381070404291786311550831013748936024805125754618021942722411871071127648465478557911924327087524456237060439719507200483066169111279285699297450504386161012467124604584831993268381807440952297324898496614247437768305248048445720794062503478217456256501244444425413641618623265571983798252324081469852143505610314336916040975063078963365391345476099405876369283306059157599544937938895995944046921676336274018483092270625934205064672772286858006605841505878920463764435284389374318226752309623528856162764626075393756281430084240285500470622661332016959125627052033977572999432197799003026357997123531445912080769938815281239346160488579165098341838225938062673160473471147512517694287160060290900117668342935802341344192645558539399117999853433312251456247546676749347166635263429821987545444685657088022174843672906667493218040974456305280563155032630578722949126670559599995914515487444502113129558027269660856339738806113942078890327906906943336833859456023244330834853890070349266360659690234470958551943542231914119676008966898480882507801003729107029361589763430859857029304942989372075895542161170397304098770646295497564525904238861910966791711586959362061753956365433883241264825273881476834261753851799303363213658780285213938772222924691734101981691606789842440230598420706556947570630965043118089859551230893294874709342239139069104779955850581420770997395045314106880711447086649162219163919945193543486742795889891926548783975666282239251637563633691273712046085311412011016053348469616892467858558630670215642044967494257775414558069765874605124828525083360499760458638514017349863757233272681654156792939467361067597545624932683825016323444216659282985164002881125053662460575770280114350086042027450954681442221912084704489217942973672477494271867665151949351376808888123755162851201568547121493930656889545821833248662665808620658277449929396785141306330643251217408142475538617121751539160123207049348996179981507562956470322528503494063939114399476163078240306706737258619856658653385968396657483743189809055120416205585601077400790587269848133507168296206656663062693159884390981743038992327042870705381411979489953865862840492622154986222569668161367690073596657779772287287888709905166112094887552006684094428660430558671463942948754069069931250439039435371419396712119026947302841109594354486087316507728776285923090661987993495864759492737740745870246651014995902757799160581409795208788079848889894101203344775407221337020502150020880208118906717269608946116848093335394897286037838761061914269628188905399596793921049361459963408614236805407556297120217851491287375760888036852206960538769070577248190231572553380528645451300196272971450138602819750361028896696095583403154404516631559557322656845828595259475839822148946312344573216018829480717232313384261746903583669568699223643121658527166587954143922312643170455774457898788422192935543098795479922577601368774810754397446787791426818388572726844996515341981787755926925611943879413871341500188655508716528639135397769490474070052934833079570384068712229375012927925659522273700555379165698238296112372630856402101674993125371824132696292208501205211499719433805551949079228561218372711527103585734697102131799106081707373951160305700786529356622755593405202178082841996143563671590836680428835783030947164222032186344932742301396181943114732920047224917310056886554482234838572297785304976313002538908620345857012241741986540107283640426911349409407518270871157838921252729161568447593671479401302117206924398076139437684378790152900976810643431517431446157521780242835856286420992221130588131204072990371162779362263436254822325485944514888214449747559361162426868044440311870638774237320972989387613672299286717210592370945970197898094812468886535410215019187627726621068617495927446021229654036270452292749508313434235487133673556155833984827706157529778924466680194457221620218168552124459564655068167963129586430055563998324655649353405867983540370679558470078236860918673452023063287355557304784159422440212247560453561198674070183431397690007165375206626838961388418800203015629266176551579130708179728555407526300021348351219801450576972804237661701950661943534887385352571142021802213036656266309054842430218495971394650459925263306455616469190148720252691374116324090931905869799213592688778657909541258008303941820939624452272886141255240738659140183551442432238412409946073917706082872518864206546488399243206172010440505095432301990739534097728533822863540060049014477658601768154689667037214949832798349808708605932839606124315706165245204073827934944020378844647693082807073796623852165869306584436120353139009760438529351146384998058617660140452835129843484416968816464601364191786474827666125922477514132961992463304118258609253049923400550639600693001026856998154727516858851768178095879799576137593812319274299731386634684023019204945822339877027079113758619217924006529405718255584981465173864679639495732021241172327777388418634659583562438644660141899586484816134925283827109400278313323624547659967278069562895932185693171476058453018681686606267646918738824380624969350432857199661720190929980663387393911557874390271163054775220164620303836878695495924904121838040783294417269979264658965148188910875765325514643945912452149757253384042340914230537742630244402139216803281712448806988192402295342545195835373289474068074440039645327301067462847009702430664089778592710206930428515409266961531880650458950695603088572293442579666157213210074246250643283641573310936599248654168682265458307257305889921815563531244428072960014008720389840042938237156705919813681778240557132150470409780919171090563594252104056965117956880084825465636614689527774540298708721850000242531953724549577729694926809863573327419450289055603579131730872085910560305147892056245196151748358083114186446158234941586332502243684437511306796613585605709896016498116907026604678917972669757456964957876818547206501967634633097887612520729506857440717697946183260559519403552489177113347660880376314854188631130063312457909845832681120484730046120844896401137110228755353373880199064833900972344804458503209186391839684675181793651733334115235425399724971569133171791581274995449060655580960947083213402512316611098210458570904262797512628823823927470562718159885653074422086452341531889378318227563740631697455862747748721116881967153934283142970176765803246398181717353500116576149219352551617790817734553486336250239108655230380322650803513855805878641965869498468777426334888515918111827398892146360302416318574965746674816592304004543403297561403267609525262340311451326514055288776571560022712218687948762954656224290969452177907580172749681915784340557554623361411627250067534972210605806673943208250354583117783891732842637156039612966670699925122085524183281678805563432556161150596992174529691856743587848071803676058397353711078233720115802479368371136197316669007380889860510608454781115355651674207392664322255645290509206363589194921158220706375800834177934148315348823757454404573845738629742669328375708752612906548696256791888344952971050891935089544514450757935155563116183722242611844790503954795472003442189157826698907765700550226757524576188451020102381596946877670353731754633407751409398333024016940529057188268283845638571204114533509047393138946565140729837510427143688769867385478369077428513069424912180511675325297603215851840614723904940991248583216555695838998270110678424703179983717062867866081710015743447484623134993400672355161210231943519071369026703097690470747509663080316343824101704635504496401943086526946975958704566824994101454883305207283517185295911887894072059756429603254727394634037718680759947803182982156131118264869852684576933347805838352416621634102395922707277245768386939575039838353389805427213144263538786763956288813575057934695932975303119922309712417032236609565585803183986495084715200066894385591908108503439541508594488549086298497489166368579188686832183407940727414620513958495892193807568075970432413462205859376666102303116816937171179481743599333406612473458598612377498468991381452600195533827592284642091419358471663904602875532795087388976246433253645617693991588612458279831444190693340266283092356293652370603547177653258341367876811620784810010377880053461517735648197129812947781214520211257933109558579184488804512401304322505820702250521499957941917625063565615220453026736932833252243506913274754340895306885944745566631787876043755429467183842865332540957020664747450581583305462658995609964141212761269456728744562642261136610709697577363385005563620662306404660937089775426967847721469891520937698668350006352594897116723987009713737107802293570039898762746702023788222073946501701712556412219871479195608044046564810071983320879645067475400974277254879404261284570848422648956289880955790335169603646270726954978217437551755451410501203095247834890849675215555707566359583034357751967033249436759756541768687038540400273040511262518520633560581595359709044446411570114103628909191283005851103049874522197590716164254742398759903426747266666638675025859479174794597825495906058571571422040724633719414372114609007761348748485784167893750708465321221999241055138276910270798426016387959776126560663675047018123317610464796481726463653211386475055749942110808000666543455183606922347814531618205719391049469675920067401184436958507221799911044181987873564311360479718893287757620222126210368983548428635095255939376705091812887357537300509511894345058803243188303942965774487186472483416551659272276277204335852361536108616919697253855490942951977143999869108235557205958359760846729905811938897097450925155913676632837911716854796728944281401181041302334327190124391863210495408181763253971113146575781889981021359934568940626178530569950719957461029698749656253862351779625522980643754960051403378678734051169357169594147913130845674883865159726266611309441178128546013637744645695124386524433693182038491716518206716657362074890796030094113663072061166249004091076884685088743844336134752466641112021412010468332381297362913725562049073059293831276322716018669010108520397695695932313725551737470174548176388455772741892333096762446321749532911102822075050986865647948773326113485517374446830006144647803101938837634315112513522791647503798558211431115159237841193801824323892496707478035384452639677750385445714542179980122174733176318654769208761119025284151140275952386524399069011348671809535869093969238428382879681939366271727485199172317961287758528289428524851373149023245854645172798868433993621773496591264480069931787557347659972491851044373282034577437059176439081013857074316967435691349703989143657728000689295549034544845266921604818359586818655271966381236414903568114915001296983341827032603226911310022944911517584472985094029121574412946679539239668877502962339389779309064355906619521303438847750977935787332449498987338903615291698428643966948705559842671292852838026078005332202453894179468524662994503975817561552114553855323486324784380702884691823599440980113948417624992414076422415545937902305271732850397793101114418666985402124724339486852632434104137748965843920381435305491719591317583658166331423141499220063201022946479988456411285653943853736003485009063042257260885997798326516678685238936652200886528329717736023972325710222448185411278672725270238001826316571087305863864836843114806331747217205926999763246144152777365239241883455443207272649007886014259417995563599454476628007378203982274119347919898157982533319496813955223642603779800014716106113836121178424187975234726962168662516336779623214729571336208041253011149198023203406334795128396335502708925414089207489564885724979273462995911378530919384373666742537313524887618102965055530935420622666962732308094436985483637399547035377218516502336761755339503442752216403647582991111920974404905304574658254864417035742178932368371513834342537021833245112584774636532576074441587260493305954170704271988795869482052315079761654013655748260595055826105894204576096009323835522651086080487242305894568163027139080068867851012494861902638202550083415694640328374992892938408401879668888493876879555829951719886433362797539113838168737389816710714656455816772217532877654585283588946755559157291719526620505533537847664442233921002168649327704085075142983515046105170777636220758962081103752154314264388910120362424903825986040454039166160009122268892062168144765358181538266276347594232287989439116234957442482529361751260746845396227993902417108869866520055706615770823581087201280981347999949366502017691114162503543261596890883919646701545280707970225864183906146761920449863218794393206605477959756650965339538460238690278065933546209366602579752555736361079631963231667179292990593534746079675987103136929475418470169015569159772993862612749034532637061536773504796941691927027285319450786307689477785547125434796157841203417363554222831652838563787010661588822538570158952482870161929088716634428074131951720557726435015675252690970420275035887342745195930444765529853147716465389552646746489297398213623878917930716770914228120823378075763582766518028067931068017279670327617877675518970003999130626337069238928567438283714223422995532095556211120921662715660521201867664111700469717220861804373191738659714123792715479019330920868907065050068173255375608564698674220599327756158010668265207923154447782175237349375391587396820958651959540178432039302217850134462805936101530176727362234070146687175148570566452318664655236406390588662305062926815087603855537488326643035660898243274929691664239992550444803399808122823668598435955927766142765259629513146551942905032254881225176326990960182085758389656465802471521372223554831193799487336833962974782452363420491407083457035583628300764709506122445374346957396519560082195026836353116314340987055747388655245902003574059796851980319499274725993233223167191969618800515252604238009375212699570717042945865787701766135763863394574545130205649348878347267604336287287431423426978753316994508029090144109093541801911314014164752932527072612732783606792674431307519054853382486286591270042153494998950689039060932165350045909092726773509619821673518653819236070808284662878841138863222147920546515128783657902409067798570775452761143830788981185747884156589608250258298477556448055931031725565288468947685216539220715915128330525076302652331590041094723802058613402071746535848694328494066697893453321970745541705318651908247135172288153206350718813896187466425276121245054726446742878306318883763456077519449793846373739050358309111649491881063730593325058347767929002122693042381653148520996446720790878774435313309541146979342695860784297455435352463485712275186243427008392790118991994980940367543533233888707528366097791355336735296629025367822872027829340153412520688586471170743166870670274695621584864161625574048885808577913631146734642441449564732695089277649674648695567178341027706056398554651133550995330281546644646740327807942766497638063161846747865955582427753194814913721595636075554741450596864426861035318247983411889465484755438922569943037879246478312551272539275763267667288684437880247176525113883665955222767011683769118737982844660180697887132229834265653754906637112662160477221372959921428878923742901517667226093571349833157013232499837152165262449445993444997314984282920064691778708536001656629944643719458671384111831126712375527261927786843138134343049267478022571413035034245418857728275252043077892949006383066215795633145056456406849266271589333246563783799714151998432128419944075425367350154210145679158381360757422913653952910771377286795127974985335984857012396657053193447235996378269061059210058261115470046020648471558265364404782616426664468785811067215765994864086191003013678101444285369698796904811965703781326216714271851977580570436713648075145755701970951777833657621267453924433767026610494609455009280035367818859851037155038095596147251264122433343058919373471911053394508150486385507832060501571978578814897443931485467954430602828259252611062769884402978205086918904151749619489197826772274367724425038033638783184733391947822450554527608735443825236097452832715705921491272203329209335873815262705897987369475571594679374517914620006244690147661958109187456263594507249358523082454965203482897935430486151278299272730209153440304330597854046479538463871667074604835594876445776831929815738527398004673700124177629891022727564526501202818961601665835265250406712799176608583036151313853212908456799426204098449043992533286697025087508139152878722323234904209044636992481907410373721567181643791245322632621261230385221835829145885728618558516675808790286251565816519799677776470803736093750783483085877335622815907866537401138586912861811858782969849027778064864706375590631745126509017092631533486768873353989422254895480022994192947918052974087049372885041100023528747660441276794725000394476277054729286527487964192153864764104336135722046280843350339863878966155144599182253358523366948476508680046937871166333124478834337724394723007504297941260658209605507685658151461488801816463880176704459610543821428992458147760385658762909400094653655650500161059645758137137847759124760299253822929099138036192026694102897370204158069562604629894806557341582414438723158892335711259825010761118872326917846512734080096240220031359427128009806460737268510664754039263647179830054072313204586175974905280966072746923154275635735425259882138116260161157077012240635846094425585314534693811536621142485267528815867103443599861831288243288854752870298432195625833195340426457387456029537315814557570360963441615635388809403021710725993236941208430236392106955035423181421642861412072691774628350731451283418840098091035237505001931017798160441477155545818778149925013024597302084262241537849347281079753816300961292406826277948403756759495758431843306735873493111130478278691116728073829281511292849455368707756048539698760649715884241703593689759567603637647606289408797537121193986558244893774498163589419237664553142526882433889497861424314534487141884756373399423582863808358945396337326785016434765706213565762220241831207990789103452727931944175073064787633214819257085692229232566456487200878031668182203067426154694226115161751431849069653797587712867683430434284937777250710198352959534334542907488891071305247107460101770388707411827425672713176782994452971933377192926692295267461834225350885526428054122144000441690637691743157880095241793296921242740287431160533585200105765477894118430173263911422859922320799235151835112270553740538759417400058154824623470123110431049079543272977392391089684905415235355404128487405748945593201269527462605116109350468138056120984167675664702006973055957782952035736551211302054760250712407500974167415054299560487625325549734147783863671596041237775386857150787140561285703920489260271132667660927628001716555510006933889072936165975557896982395169459801087628712004479677372522848932742828991117433711672908239621172983052839147603464599439298242836475881509808081075248710763829399224492061966296058350219506965241372383450575338918694850371019455435236436222618414783012952404799603545881913928370937431646219120269536760026424713381571077578030635150121974711505121167671181394033106290056510484352719133339231118466810698453896094002972041278482668848336415315593801537065690082568018987169664248430769378851144223173711593132925158385762481771726049363549132725949246327454233327636511251386490909620498513686880279637547334948660600369947041942620374376935338153601229237376040774020118666277056218670689111842742241881850077628534681870234867979883973295858748773263424699784618940315769392101071816638933866206437301376974062023208626859313487163919737873360231013182685493954319408087744401110859647514414776595753767956116189054346620360042138447987249318774791769832156062818966052249133782081120629216972120544292621914815800250285586868513836820082775452184422529923981708381627578210786707446500560925548056572491458748643072450145325524808582845377595002817083446210753827195339688351318988927993296876255917430233686320168605042666378582036061717611230118353529568071334217049985614407651521117348596266867389194720393630008932351355725247453135957232884657888616022346153962804324187704635969090128726748436083066406135065556847399521358805998835801368437620779035562676037360638149973857740886136606976058703534420178489688592300150605718537833141915209294423872621174420820906054370642070352010485532147360010246847443406717919317084549405579212442753250744823339435677763617750809071343849349901473249737653263224894195709006354431004182047329514046799706125843990158331271999640592269511622391648646323967339490524033106147037641692076044938092398577719661768768056205458482120144508943028927690109958739126620138601464795083990103103357902252063820902156513045849404888824119727586188946656135806715270187023831508533472685368581403858020390042504133381580044408273575965522753193683747153445243040200369115473726029232340013447553691709683615961235542570936889161167571687502199517699854535681269925894525797069626619462598423120063131451288253369859489753325064855224386601195301442832026304891642536244435387072211815293931658694875626863925338373868858654447546782865866729032146061695539884699469600048236313848603239773649410902276218017187677346191378044514125553930290077445994185769636559281043378981154025722311516672733473710907090586799570004030660416897979943891616704246211014816362709243324435188994393233293531066307810472573861414822138403859023637502381185295363765159755116066641027187079443645298817248826593751870147346088735138111984967756121729051259838204166344166408158211400295375054309696950889863720462137425953847101575952697398523916008958259908885527221737832748890472185338955603524562404876021477880250088771490008073311949061240302201885612858995983946528886274391744349941567370530906204068877990891683929652715613960636328444593949699434905208764456369968088858264612882012650431682316614255101950964660935192448500683524620178726279842281797154700026824560458822348830374728911770161739290824854626674244594962890454558876006816429242369877124289660103881467900407554372820422373960064375560196793906979211709096928373321509637919835226043615443097414982015287322389192145965287507192133266279772954943094795301613084488327887166522716472375889757631564830750167610369008869000273355458938396881666486746394684385332726636375724619921359631857400340419607587785112799123048210602343832423052727613044897803524785446524521975630945715375371261149579970807274527559648798099806719667899933346933448406588528423479935170655380371822704756162483967917340093216738655881200218147982341461005206110327846893986761016787741462220703418449532527322502097164737828105814620087080406736572473240490747443760092575886061068789128767761831770260337896311736551906832046809254502915067632732485967683981475066757613803696174528230621580984070525343589720118008556792492167836243644931400776184801073147835717491478390940264681469265741464667828846106286559849222297686058509089244013064950444760643500883391070440358251828111150761920678532584632046216700095369872080136848901093965361321081024637569840481049108509431012923877539710324794284966358242116951994278366536268054275505274394193034377167277207334562795327711821289128041567050646363659964784545854269567176635650086616980871646298202286777235736616027874576131696700888580583227630316132954704915961797005386363257693213165678062312485526303004050400985183737123177163272494321453001516119422396105591270379538145758837633740727145064256614071142980173858628325122122798959264239685530909673962949765866682689958866648370749413968402265511709363181422905136475218165157577986161834068426529430445915004824432762586292528766616454817164646852032462252868856072419436535858861838765617684034449231211639212726802381663741865728745291012889596268763198584055493896692708189134655980937444855215922380694282641253399395825505565536332686576214374111608690592033844066113553269447912355200335316340516064054612102723785716486929650040985901585388554232682123327662865183272100774786914202923215435418925193818396140428020334443828559167550934971182475704872204696710064166461324068382680887570264301848608515694394006642535347867763844333720749883798435143226845031758614343559490122128544414825488091760691356082675213094059158911934604699008776310197153382956654668197989763919759076159286596596400971340384111743107700138921224711962908039185223828565776841987531172759163707420454391666204542117583610284605677032498639448118710079352506984195811462188503608479207335395703405890626886048658975691557670675895922306870355669638430651430441811972495492456410872133576200376875904608209337733019841930097651068222834176634894953950757166613707832142104535481495644691780881387226908567479130587531014244358200211649064709300616701337828767968729189426597556776939782953677884720590184667008408375050900963642768135619215742020936005474432279568463702993141385737218252446377271388295964543895953144737775447372752854570823873419808184422195458873130616514559911444575065903175744806449505945392256427588299421776723726510030970566333762235398286960942606245346582126186776175051496039229339021287049447038189434337530071474763138981383984313287628102305314603343375884298906511844824571755219171331687148992783153489250455466859674350639217876228799119140815932203440242421195513673294267324287703122618340663073873497847444682041245575056483242350152032705202713298364657630227387987965321641396760248925873012387355041157840723834145111521179373457195765438531589697094453356214659259044612995028152803455682142460705452607812511546316888382030990041113181727314713720666999014198940512998380782009098641996541448554209359816610753348084700548471866247061808288426033780566698319710438505445838653008159000506440307449094871930385237495121929455077516953281760362888247969352464036170889628224804693563628300630237596661906549227177800487907317717346761425620028141711561642286922420490304710806069135247394556803651467869423188865066583473336045991607529116951635972775912105707645397220809548896567411538771919447308627640060348739445159559846001226975825800378058111578178949052030417007516950638013682890143807192389244189929442521302343637106895054873057632473024932739190985821635765972531179713710343315270496754573763857502178188816288765686860479194461247221217065863771308235168515747084379450314614876607127019471041811553646961156831220185480468260853755175348555253867952313006550916305745263407322380169211789373126840047687353648361052256824112540374873223063234730648253576652891770941729255085882008210154996481546913429949534299160911429758211775327427023750779039605281492391437436822116518805848749144796507158910219620256492602882558959581227759046532447576430964234600072465434062117978702149758568677076904662069113182103716932080842367104814884472033243558701033671833762002288093628931808720449525834351386668653055727516407035300097010906266652096273348914644556677399216766051466260092698088850369986052928407408536592260276795941967193738043434046022552262466912931812666349352190610028292170022882774135220914113267698956444293413852452383946894458698600186083476116380823890436365197023381918781921712846155246332704804233855524401731032581183811456270796928511871226073682387571015038775932423666654145492720383310707725416727182567011853575283849056747746939382181694800034653674785186280933019693702445599295803814031876967934713502481786011073929422197759616724619388120578167970324837487434399485506314673431922499764132910709544055594338218821407813660342159427886423728291347248551009720967950112717674288150414319334420113453652034424758280955954807466041880926646528639082754446120818781105651818262672825450527142068346039925665855256946831043317569821466966937198548026066734124518605334869943961732507205949869801922257865973336452078186487054078352066855511316917104900797710466334457738851125422526155634244408455510328511448819291771944313061940495239738907914745313034998405880041963641966136204472903854043352978034268178173684089938648777827479930761005239495264400374161348364897787528281573147157792160937897848957509564645631098842129021010094088914434307860206902743058525262331137948286599583994114893544504451723354844007793180067038224509994245155763761669777756910216590033910887099033832805862034714293541290756722177427998273574887803413740679596361923786620089870050661339153147548601504559737088846456459747992492067974825961188633890398914308055317824002923625355675605563245565669082335119846642224239402563670420971307863817533643617594648626751710227847215288585694025530854877470995553134569053854873129570974402584129760599408975558212566500969707642295432489176151579853666813088430313778601457240233365238279741215872594060927036212451455589854628881474736059938227069981069977246835834722936273347555862733538202675025575269933241429306486967901445853882953522558688384772966991338439538398042422490982648093524296714932340929634499399424634589989063854433957865405816954704513796434170697682671049488170827535216855310287300307068546725557987974871751098315620899662540937297832660192223602095952392768369986440837630719683500356757442747590644978779287136822146884521171928573307124313554791988615107703059557579912957650588646469150958776826572445583395915143402574094604854011466683955746570797780497503426884955604199967391540043290214250768634331058359063969059719675999585117391593871186232582214807484460976753746497817347712066281183305817807160881561029790468472614046916339048277682207708840935146538029071277118031823711489037110964561853296704681405736931944685262018572883653772372388817480673741302722197777495706021776419241922128026693384058279932193689061043754478313981827702898964569712055762500037126873117217949038269361424114918351312553226566705978800758519199539104643499184540071927675915102718206796183631114683592256791908904611603032993844807600390780184728652166738926317855120444819000342668655633494454882003439407407200852015628122987998880545747749336459585738589364618426748741462158048665070358540839253956260231553425402595074961113089214726804701403059507762138357267508202414702668518785699537770577698958125607219679014473194051254646757903660046779524160145883733882148752873690558079010016166168545105278759751181324027543137014284766307225793703555691430492316219507825298239476856992831942651481957584754957853417292748385968874491938160922720817914902655279108249446003618409912359015767293417735887741586144655146841095062719055714292476023189316106688885917249194570500549028549339447636853116330184291996469905721421457381581866035439353431752119245989754971785113972937635962786070969554574897068824486167786242243776227480307329430384164393744660177656685463015710961432218789871960932711529670108135612713498789377368023148252753109186610709836730911103811373503197994973493609785414929148077340980506948958323879100145299131926335596185061213977120017203824385583290700373109819319001320481463138456251822458948783619156910817198403315847402045024822157778454377832384976385378786363297747292087824793407234936450782296525898078596529997331161683784377437093138445018521813954974341098762848592382805831410646566489939371828354690281354007376577620186055464922388798763583285922224351276493166383567464295927182218175403360827484762958646564472868736872377973476420403433920300190436127488770938031475139505536984672849500871053242482250947598043283758769593990226159973940356219042311476971880120864074156409523181367918328663174058882218821398789474800122336048244048966312007226281596738767024662550213828794663405790816669504734997280145455513042718932366031016646491772226151350225554616609529001813955830657564531350437449827176265694813028151643596594833217960534430298420655937410020443417121817356564001521080794278891606534675209555865865532005053010724450881160751922157396095267668038301828278034565659799078688012223529685017184367960111958597904444969364839825693042635931811971021575217404325312868247378626369287412969039035868794408128544451481781352508370345939267065996528485230897656424889877642775881146612722357427771663097436596330849393667163858043768410491226445214624172594850368756407434112328650974003642009877279682032164720210929582966327337360321209550592138132117576636258919622037012144006232921752571855456975848837007783445648955384921299925356664270776095301743575685434747389995595187295858638424737144813969800072392126269821377033975707064605576450128989404348233151692495041251161335209069578088138181307278505320632498648462132673631825056918573009485723042324581945145705326122484059826338093183421162345907851775590515001550686509601608038423571759357415803802928366051352925530226918976829746254331130441171004746501352973636960037324237762262213209910833909926901938006658126789786071639296872940870179984265158440144556607442611184261433808705829710369263362910440502316301680018962015971340982452925958381113036687933672457954207026217771728976479223093366331884190545160703359859560048494419695822916947003812018146429472544914551239394918681401879897711653466863976833654139206353643996537556570900518688437373227215861863220829175829601414579568413176125813650676992813404960859327427413634051338993836860741812754008196803047902395061047265027201089479427889935521525989307843025988040798497074024848612572156991468402019353850631236921704919420350902911370472067335452329509074104999704108145914658160889782550601982407299674141384355421062538250464863655519539525463498566900415546959917897948400650677909872797027406259515754475296145551606899355457344526334932232811535108374361993533463808950896829014955491676781133276025393219401070371819627283263004170567792416856650389379804734379180506861714194865712603449822564441826351394448615913819691369833810796456876454665725338521847111560555647643377690992078481870546406334400092593567126068724858274103651699389702372265170775580640313958442889747348184755607368440324278339183688308537548876612687373573251389145403733208668436359896784764526265852081067147287879778658998446506821954901176801410781111151870134471979724129660419329578041770241098606790941476922358524858536463088105250029736970317573505788756475879420886672367150368016483374463250686018794739797841439088787527347023429563850094446419626848599528793240166435910204060694281073699530572096900765779893520972515593083968591377507349498387667994735673164582480049956726678812494178306427165395039873958956846901960594649689368708950312802902350310455084125891279002729575536201917873347223766430785495967212676147854986860641010697270687601331491305700951712037683899674394173894480494292245314725457091737251407042958949059329842383392491062257109814158099021091820631087301868436136153589132732695064344082572573713234251704848045553156355673993461152548769685087453115999979238019817254669433697031902273902032326052269549520588425930336915785747936885780694227687163432809315907430246399654147964443215600184301739718721908936360235539211196228113805011153644820620004664681560368239436949509545382653646047929108677200477843500051615332474752842814739191690487136829028186968900738761729394716213579120991479062787059692776357866368211736672428297653836030861686592260350155816826024490936180143271637028282423245750150245696302806640355411598581751065773434007170878311028095432299157949251127070779506126321386768934897892129142810953139186113976396663234761658889151871157418311654917019841485168746128068532118088480872044522935527805233591052734535631413197905334475366215150082880965412701808912856905533187084575857300491006053796931503025917894668028213090854884490116826706537119746131976075100352229265713954321412915092471866523696574753090290773320580534692166859112483308180936207204073016976353086080248361382597910504207146282757998215131636321683325836086836118986534563005334760359426012026008115365791385385716234258773011913652957893609656013635716086665849127212243748990839984627392101496813339010132133911361001912411667343006597472780263987137148569068062092786525011899222741246533198945756910746375341753505457853975502599257079531256769708064645662880655288239863495248071938955140659557370692911007024061352805695551944692976571822274396704048980358879316825111979300146230089563339016142524662367464964638301317757318753128536457430080917746590378432731959546480670728328033985717855998364868150779083959360427225021366457045022974062447234336455068333340844953379050742084196457230290992956481849431360687105385783736298084387144778703892811235490331773972877143960936173718058399335553045240750125295746280486600796834984944050100087265987165389790334720930144446577884892784205901715290904734878536439036754520912164020701651988463139117247219935364004975700905291025542151941675721180212356995176718670290179747460954875063700025112366983083342375996238712612675092734232157641487387422019479809770790265860787835008398676593570652405037242205318715990388052418319268386870318727590320935919359755801603429405874721292213805587643595209915844780368400896340176347188437393100270487243070068691915636985741991634141306314320842092923537932125457063824529533338451387877437873380495658406361170223175173125410013070066849894303310902216191082892613105083848863790200340130287020852755374345883337056848071169787194391026504864967945805662976520045352179990122329228614065703517116942967796774923540187115574484900445683553306615286388903772266439471007338310275562568829410603695642867050987703342923328030817214963885278031970451179331757930180024254081841293724917270473807446877340423268421902751477792725017074189339421111736295722179794627004394013501148437420927151169170978906687932147573784001603742745332352747054897851886362437144497053344923678474049395453284617872494810617637714403750344660426514252340083207802952988952280720280589359871218448474774089014782136890156732301192287933301558819324443884336942655403958551075906423019901921477830086661538813312308881115225983219215434190830350420258596084699722519206435706826543063912510493650446399843241218295034131871690484220868470497584732040799034862712621574523455736932123227084146732794194127486096928496343425939044200227276066617772195031311297609889078371522113411926308924276340173128538851220189341113555089451097439486177235438740152923776879721186440961427091013956561066770415812233809436381639674860547730578064940260322905332094782342439099027940153080382177761060905831964667682344612284337183509038291206292879024024724378903165307240636509334756931601562204647289075721482164779595789538885416810723316439336931236421405685110459503965829880306592377455848040386828651510471367628013247735501370061435579074187893351562954806853942874556554806827026247912961347680054483284469791817301344681820271871725614289797158649589979371201579777088259952119749543051257322916846099749166370196099434297860203574151131451221162453461919014674531603013732117463759900817493886681129294064214826645717193428940091569966928499970870287474985941642956293838888131308870441808424412861274442415057180923571907688355482763015857181700596237378405150844459957378191655331595140209363371225692562844287463663555263514994116652318527456808350622940216496364729447436464882731499014337437565135113658684522566600559373367104324878940616857682321482602537685961825044696604264925821381179827650828653010495954458217296491385685885073238957551514302407347092954919018459908751347657090880672718934753999656548163208155264393170373805129129108921298899639701069816581458898587069858792451440480796881833244892307116590970049456174837944666672086725493484205706254318533788141784779750370951749012648447135847669256240147311777237323857135311863730736137440558658536338245348453101261945271180852147901855261418101006965244198547313858823470534519195367774792452737069852168071363797364797552948379342175479909281819097281870966051934243205911787106909554640476112703853158093312093286431099941289081912556658555796602100653095019171069133820236859580553485685044880962205001736810719314478309279239966189011121471677201193044121894703687349162287239882269174934542466071567189727352905598357130660055774342268585980819656513652032464743610917945552409286018818208129848619067476739295140028554323805494546372111168546933461241588857908476094435482440441560956136915844227068991768119500678616766896854673192824462021398573520797095000145421587997302479350264287752726400263423242650948905936373754325346941204075528748991680060904841385229016894574549566635337705355104123489851956019014269310520844465083918301419130565952842332963939337836698357005733736429377693619921547214850408087157996990889071436907779536821681483800642874409022925335231222701787342873992553714964221567981540408529214344244383981821097882093761000675594862336766547953875445070116639859723379414102391311822553476483440066959702778959953844102810718139414378751306223312609869867605148931308134769646895209197205029010577687573183736777507226245191675373052086685304732006406360427044892323173840390395525278793834445156621147966392421553995219946088090725957156828951020924457713247765613542645936956492288002063117595973061707859976185229943710328583005740086550735873218793793904447422870482103169512417962153377985375118080145286272474234947725725293405839558430540231069285349336772213448060013700398937486836212986141264249729552383246025242883284337686851996847296384436539793121061675084581331032815082831998764560659774044545699864565111923576263983586365055163195719747690627439078786429655234840625088847956222162558286840559647903678378890454264568759076961797082152055138501376054726075687852702439378809912350873446054122393753913587329761350678243414067363214335259407970329627722732371441219464702462495664480091041772398350991504827422329898397509733597224993807938230317272066763133283142522508780673668640126349129448647147143480448589705086543197552685043746886898799200982116661126095571126170722286554534889971277333215015293633494684842374296373658077851228153137696673035543699798788388231348953280997690146166819935143562927904787661622370509697409037047941716093676215504895822558761777842008831767507183249147696322392795648281138367463118615118704521429427988849284815739613636103027375467290597510964411844470286163480707852020459391136980998737796971578713482597171428177654277093327607489488344812715700504673597892404876346992365859260523604920809949216371650678277815934232523782262035856976237815632987975025301174264652779797417453895835532926373591708488847529017445683121371388614587030951501744408343338239821545001820509206691662181029554036793810998905892725518469968014099558475225047662716717089958698970282823233353331515857877858929577362882390770719671493822499165452605027388406629387602118319819615801277650420118134828811508694532359455740495576448143415689197679849699878243693093146547957776125124487199482486023884498174640275468661317846521122316129159371571059738183048903990465776810561598621531355694368457874760006826516715522728972137517459022695383372136831066609440009618806026194024285152120617178646611474668468483972616693830728291134231709314542774719696426906066207294505641400322973324210655863938801282855520419318332722358146290708906214550268105356089341696154986535292734117969797474542147238985524502327999501654074138152451971271070429011383321606312119160922334733944447188333506711873802623018135010623565601015215139855803635923472055488677812374185998821969613123970854949260695912584117527312732901311461602964850610275749550774771587787808157024458445431379883337051015826837349327766713691023188959977170065585508826036868979417635307893671946536874835193164159004489464177810555815707863366692703933119296003641715954945733689497346882100463120224402725248360611314754711099731075310005995001964040440644659111131659834223345760708374141426031845903863209428374996031936400920057624190788204336135636969729288071516650423715758874567023599524507043391611521468320106105958263821466843532412395795471338572496409896420941788302499711215045761110359176816442905170944714948213237696466157305667064186307231825800550219056045505659537667995569311659086626610902512580153888539533492898097629433229615205716431633554064994867893692815478652040905813917053049125320261995364141790646080743886079802365909534471024624238740423284376465662520685033733297335475717280486959364276622969893985688094240006678591009660714261786160328632856794541261911513364938081202393189309637688114486351819012364982156043131874309092027552453870475991510013810628053817120421762154230434505057478125024079857579280292984525316627968090238853211273673207382222023945106971274534172392398637151860779812964218621448923443419729896240693514839749428297830122440048820061142349156579979569915227569155083814703778862421624985254455089426032399533445293282538955654910353990710430557668746474681241766818427403186569821146530572762771892118790125594346099227607014900505057335737278917068494755096187142992521273620688123969345895235364173701289603269330595361931500882406298649156545876492537227268509826824844040185801137203510910366840885082033465305703556285013692406132806372961203265106441326148040160644568868873561068021820581435969659478774393808573492310594251916339450800726604562603367434905675454755151272936071482395142468265871905147156639856889814318953718033506607501518556765130575958235704785442578571186750353306655725612865236284541637781163302296151248665296207702461627284391593712768069900485504081259945087386995857168796524473386122215549280946106928421707373283175060560106903111535283410924911124394282436771757890139409432975191072477214807627999391296543941231713964400392790874777670273058300617852896612979360076652663401335821538069313053289208246728071644666365833112797709630503702522447715425328275825743950193723978373648358482363012559287225101617409743882485998159516806413085460176567270856230450694004963663218972621974821039542271383626268929498678571771957468017901340963571654561219683143422828021127385433444020888779167927597240007800753697000741938299682067612124758053376791176618869061417372215426247885800666320461782891073531183658951644498291545419982754933067754032180491846563114521181769264008146139921513531914959688651936662284526436384518963218323948367691992671312125830606868857254932468135202563069212774576188170073369451985543390024054033610580221530966277340710938131514751068690803032789418511409892063410572787466107664523651175086926644998917777035805415637149540259238302578640411578775283144270854847508682102947852206978498253684870743941379000286773410238644129232559174401462573216212324559397577278034332655969525214253429887497242979365070684006376673794281129227262139920938507339010967184010021259011973914980733190306906705878754956829769431936309572375968886460659093606778993032800540275413376602605360519238724506297099333276722327066832967307451799250090090663425216668968987639502745056965176414246124423168336137089429657085979266025718968366430634638612992863012718270033056946146297447414900783843953176180955707565387701565646569868412025743185616495859301997102312181380982659895052818578833452257961494172583625776627223715112850697138695598397701779850503891116722233342081979694563520985916737888867754078213149463802198822821947106788134222982869828085752987134255982077256657442744390023216880928542749486721906921836690149831940470875651830140896724323030278037103590898477681237003151804212425225195072809495285836250329827232516569750732275487918273115018853324464108363836363772992120247623488598566190596119565361546312268043976815472721325674579431402492763266724541432280423578085288782300370860603951473208160625871097109279805310238238410631688415505601109549415338822616994054553155359102436728458062913927661985228022433388098592713916180241223382114984672716752096526843757086711672107614218350921720662514094105804599869216855884907559742744350618068232145139011488550077440775580991090412296650477785158166597804183805859932596979796529846058702271010397818115236767294743633948376140131224643654442387967783703455319863520521847008553758748397980465849450351705028546874802658287965990424387196951598421289405374326182323589654009334955493771301865676300552328887776416418263849306192924566737115193431830982347957694912168370103148768923121525977597116330802238609742023619763321719037268502804769561730020886503343964490856975357023915700789040157544556289980689394650871983070070041741166403488227878888795738475134278517429808475253085844743690939102189702898505953530254991508895208797112162560564989164283759675171365341273020426212281985637031643463316903741663956592878562215046538913509012518276413759726885879038581020790596016045784268531824622681884894199174670231466640040564225639841439662283264344498330520768274041491386055429080385360056148316293778102519042945021791202672009495026102505989273720989240203287618839430039425234887534931539788989961457468656691588302585433041766164102328547975441161156197184925448472837234338380072826807376238651525202313752728029843054279784665260392867442161241426421207560551741717568003614731301130189703033770780304990332678126345337825840442173281607302047239856017404317264414458316382824730147650088471707271304445576509287006665214083144783631827119282637587007143882907226636283537107922442996857450457933387826247285173585613707203138853753189528493496004054428525443642755421175944312376577685262037830792400345033127211794635988614499976317888319906215473537932909921717684703332632548276625824199939006389902402184221186910868435406482223092024962584617795958079289234474207658922372720964798828314118700084677142297095315227983726868489248678108533690126708359866401796776528896443020224677185243402177137835643027812920303819840550920956813669286104051794405031855338573462786189168132462572416673383519725464044797168892930798838974803767575706895979913874100917246090709046012028185170199691233342439253898838681126278287659322091306322279668925402549067319377611083123864159410223413233099706620467058240604745559465292382997824966887409286721224830065683495600545769763296238115146647006622573209681447574413069552809054429299247701160921066998180310931180079780518762671851063474472786788025760740051902507874936163348398327902755611680143723785866242456781370081328393038565929845050748080383873212922835325306594132724490606500512107636939917473529945795549490975761537903981381059829365802859781180570906261647786936118718418708869416018040825085175662088371983557664980315594650508615944694327564438102333783063299229074550867338300124645925946289484653110432782131508785306855023836376612808000725778103826147932781484865782563676179314710714745174924260282766254112743272087340340503220209755628798194656619825389210777386363503827529167866630010488998828669755643531339835356075635367911042779406129907123894429253509156483232989867465701190116376345074570109270286292828932289649447343413928747604177861501636908090591312501853199430102314565819534780111756941055357277287150740300867152103799697411003917467390148084777445560114318251222005646650331990804207385575445762511430298419281652513638523622641897459220977656554344775561339846106829339584088331975191414747214265758155939287880555946380133181346353496187170303436118073947801712834496457096675481700055550954519655262966297293330548340047562874872775542629861219858302868337937852521439335532712529109173319810393239881839957935489512053676308873466460710000183006500894624865816195900116048363239677190339138636809483319327012649680446263248071327596717117845956306845152543472930812507870650870603387583170077289324785792216557164312995537490889125379340875353957945810505953695152971337193187868838261142420970851213038186131234400255681166426600682047899494633206708986599320122717375577771533461959851127400909370613024290284247224200992697026141543774195578812915077426235324291625441059032837513904106626091530447098269992892510456856180405057240773532806101120375993230312511333167641001371717119653494163057503684303893464842176423467070603626331663592615716061464018385528101198802594579513715657320189116508256263069355144409819945755231421314712416210611244127668872278754252793823633024536332776419996474384217926432651048917016046865183494937850486174020685910828715797877236697612764576564291412821630157200785797882215435545357258198967438093615243096868066595858200028781330967591092624520795540096296526580954938379395318969665706963412950684887778763112884441801192166864168612781876937310123979923108446638913808358748257324246737074919995314550998839844621743964190039356916258221645609625652567185428604696908887460823399917400715377014594460867085846300698979803700777316930620610124999605697828892134297381248781146088215864280898475994445085676665451292407018081752142225625178537379627061876343963583322371114764396948954117962119799803621241497585712915798366029614813990235584090798893025195458921830850979904164754965521959061894975336080602448054289357871187121753187166498503534536112214897922991781226408811962466642846173318079414502409302689511021948022765490205482916109142195600351575420181255886079418400114651206168567244961603457792898922131620936443070111010492379016006117228882007374579923053764847815828194740337568299883638111153578628093232442086484703755463345456148197988308958128121844843342118086659740931296843471973202881333882674946906042778700817324591823499259936356301900945136558108983694479823946749233656836778558172435790819328512175910599934898630112052112066923555288006505285263640352881909524508771270186483782089525652892019767479093482770356781806479308167369633480297907722042403641969580763824992623157018100533062825519734443032533208835325693235660495133441247252641544526092524352947193900143887077733552857347931192948616726581071008176399134890589545258785492972165110791307559337935325084132085035778395738849619911214825966509452104370698898375880871722937750295186445098768023087244734081072377838144789241550645641346444750748972831038869383570648624289285263105721699750424471066857192871817903477329966039380057490173094768638227432411721118337426630060163797331812457129835646186148785107688356260619350409648993720945592704433431816855017326254604994168154079286753069992295244744477413357544825106971868725558452580394795482904289987633768910729949976085769298600899718489556138690261596416987638397051299867534162249869539463560971959049093642766193849546593174205306850758360161635278182045242076330775106243955902895041330907419283952368656611818037257881782471406568379952356382685414903716323794825821456893054680439449090570462744518120655987443404729213252592624376787415502010350421061171964038328463040364042606518061400365392558031758728750825849487821942618880495183303070580794902489300353233439483870784183843721172365357587185636336439968280988100770698041171274572551000398327042112935228203275510889815386672593752270199470316036222742669056181962734967703542354895216897956186605104721713717003062923395240259492016235958362057955751153100267992212539465861335632574961876020748815518592060056953982806827353682711355525779104186187350774974822378042085330936819898914751237676152858920132463930679732468263980386108627151313747278892664363388107794149558972450606556602322601369586855597979432640105021003683930474825531001496248515929525024429464753966636034789082201371804637411730643813903514211314913228402180763753310859701835388702862916283200908005277988396185303348220088227418762796616940346469130730843761925047867752265303117682866201677421365399844443526113441577294088182226176357217434403158065986806058084874944443071303749655477575962244283826375695387547784944705219408884999547349621321928078812102205098714648056088013443300561677750763579166122440111816616905776254613706483259126366069764990597686911542486779616682768186798566945306834674187683809724550590111079856712939298096756200943316319040154054759473075272708830518036971404197994210284275810279946897515633802028446785007172858580931557307465296320331175426310703915458948399188037071443629167661294434376149881437119071924482202433296655916959563847746361241390641524942482038526024956633138603113448456185904672510166290646546160424612144805886326631405936034667920370283633563962035274935991024850701589880372469542559367634384099190133884154079278044026812794749171568651811702819576725448769776983846363393996141125688261054868068618728366513589689890794686121116484606178666335095109650844735904960911048511920307935628963867975906440005532428880419147887487164532588523358250959457899840734536618907898893672687663056680199843539080980547296084841869245066961266989048322691135806593959175518193897209128187820743283017904555523499962965315913224931887842237486814208537659909976694336374720585119611364596324648429221371209722034754598737049104461253725507222389398715579388402037557672560407442827922557029257854297131364720446680977018736345121252971777070484126558367685850680713389264781585772314481028280394245200753374393285542999248351082583783164331110714247732097465768441860342542497936622211236173826116921102249754245093150712202206438254376176604670812174924380575326217128917301765469282087926796779018493066591549105420861112141171826466994878899031822015999355109336525291836061844565174164689198666606992072244699817131929842409912503097021387685250255740234543416877255823434747798281200502907665070287793807924397509753330225169621186182810052885909894566116482495435903409913103447695905366170669264704139590135345866614261699142583208672892009764414962268444625352618210534993127334936132415058619395415852041233609593810051457317322578167917836336006758308524299302387501842588470204870796963954151720616500811388606921267587621348261528121922947044111600104963798220282187096399761212452518891389320056697514619186735114321278203670264120175408390033067521237046482876943477281571431123220182266188988758779677939279839335478422736777654254849862126350762699680307349224769684577604227675683234120554220957009116869583498987988743947153515444255590730451408461423057309737044954082836871192628563746970511053995374114842574944817983940799840906887351746774143843659023917597859885811549124816423395153433128736445213556829950037520765589930910567381393863416069908174334397241631023567263774195196550079012378271304425046367582687545710965849918105498035547037924078879417948871546142531357645218176424284590505952860290248907788796981333698694392010949613922326126623646433850032556840487981699196388871701864875511403212584613999551092163482039057833450037299070927650973507086115073657756897048588398310785626716397906315518170305825983873320669686474082836227750534830792944420765738712562852574365268442816821207880943430645128592816218133712247145197011829836512734318992469396171107914534117724074921772194207146603986234379159041593566252922101616951445894592667225232837458431529749694030639881879690352995535770157113338238374577120209376957100627000379865174469913613631079084213621495415471391203612133205586937136303081981910260666809418719165271223893102441282135124360847323662977104666374792708041274021834312425243195557021664106986920910185439951196433107287252985511207550031127811783187608255192402376386683058168646335275690155682092858758936333959156587166491494026129817182689723050288235535884899928937624530043959966599649778988721694549624489121401561288789909869980711290224057119977985109371863912026308558853409884819036093440377489108498466378401086638662670394639466464667870512257257253295381322176935836257927426547483432790390582551525372620400106624705560471991673141646476512308189743999823797336268030436326832155900174427401550616366601996747522383379293879408663389891955632322202091490106084261637748497654824842679052146071299011411724534777124967353139597119820805640485547488799923670953880231791378820749712511060654852095673183350472484639429698106358958810725964605576570865773372524235721322284956857167014614580369026046449918157986118701543368101299203597371843155240619742060657518140308155000351199024200195250970883559934240173312739725327557383287609951065398126245147305539778689244767043870906537554687186027560570785215325821011990707051531524942944402527260490456686160821404689398800519881459372934450171933817281192487760297409184890295384621228868822230145575514217352178749990664436846566404583292604699172571590304200318048924598922425583138138313755580630259611165127202561512001030519243055867294826039883096477588712803732933886966756681080133854378927649865516933608445199810208531762477936242679347594654003609175947265683618944639375045234586227161191336680884783858208040587093289090524090479167033946218204336672656847346272968084942022679524369373743303752762183773726439594633115851475488021724499259694667417019590786312095298921042327483832355918701335076800027396127056783154821511265665031918406352729486538151578222017238149808620911718543926331424552685439805255680774991097107133020860026678354736215428330812610962573150223719114479471895286345473041883420021885229557754378636353460796770205668513450311405729762781857827236955803050753256772841663095018334874442506848689006800267639430845646949869972264359747706515476641188742807140009277358468986519950137402992861935948290135394780136854573134502281836826610691130851858293272355020754950395371730312164890734224943799615812768664013789316409746717446440023595911783564947104263472699917865754929773746883044998563552365053817568437704778519548769850381574205817649249928186946493304866423152374986130829270105564417428111294306692409498698243508029876380636048158108841250195738216434520425143430779311569009386211434561138846333931637006003857212318777785483038527674798936293686271250173139358419485468288152234198308425511492772062656952509285951480033867857804741865933332326290112906366511480434001609105010679683856434818194123248671255181838634596058728991232691962510441039314949425146459243821630498277540554136898045500267784242713751878447723070123813650807652301165154267436938831377182464170275126200668644536258604083598392098876662375580925849434717068898654487085033310375464549194301738289940437456043309035574319652661392986158015193857063749780233349330524928039480751134956512573628450242176583025653371257415500225083749833194367977457223314983160521711018021482307720016119298902525142078534029828410601642245974015611444246966407083018505785723776212508303916006991920211256208253210280875517918653063210142178486171489923926762043871036781066358906684995697018967909623519530361566671451904989648438216801912763751570663760343479903620410921923042604860905548355557564624350150718706825633158926596420924672575428635661053981817281124113599235315920248414482527166015827422443707995327357817031942875178014186270874700708810640858174483886859954688927187914510177083418360239502606624552419223021185897044641641065521181283165433676084642372858762672887363287388493531627841876772004035187243435966082582075560578285339698547219402762268784939509923674256175457093690040254637131317377659889450785766159420710640869659472065529163914263509311103622628424508490701478539791418515084655610316099627091053455121442085202792135663477161284192119571065690425743698205905491030023405248658481378546875141913023516142229749909409966057420670188710287542345662070626992897166970826907612501518940084941482282252170111048323076480414498779433354893022053642223668711713468558680788811323967355361983174975868948650929107463929735671359111188482590435421185974345811012337446801841190590760823066208897008437600844113400078048832162341965739408900070828852604997103527208468447819582159491813854778039682310401104644464369116614903250453110304315178594188992854805576292562611529952804266983611588310479909178352609030752126690047455091339123407973115661392708311097900460851949879382762234751629230165650289593631124290360333689848578586447287128233549371162600959348604894641443245525121908664723236522511704892615202121912437369024721366209936891089643576250828583732919616109858765171314378720802039783546088646565709245175681403750577408534518672039604219536667525621807776487312248175959748045682891992277182366809542697021905278443214002597972749915574330133303912418081452208189144086937248307443965841608778606686568662207320439225393329176657473777819470409603975963655564227369904540005520162836897547812430115781044798749870838743160712405376238123250147139867961717388925063750633716598646521908706606689225723718203589056898052359934336627423486403353910519267654086549154455513363704931715805319808774657570565489524403871185443153562713502879090678999978422117772885275734035641375285952771440630222203894929751718450745315452083034416695114910494199981134312482114946805578107063271546130607073037755010847037342051506793583753515661380326596239857981575156667394915075963986188979199738791423578051997869685507670615732115913363134666577498049789134351751968343967854500421133756642089463923410511751098962359476862202159645047172247084749325243640850985797250481375951184998893192079835069774166256475819527953977257314488787266515459935009535088105330840207647809778654316069681391906514820244961550384445811383277117019227267789395788271648737382075130168138852037756034886634920647998876950768301624025120025918276466245073998177886401291499370650826190332199307848971301648428104631746325032599833590400752398736859608210645958019291972641433110959064925043137058562537020174098298635837272185035816776949977812373007765206074803097670950836571326888145174261371958021193256429605803420034028656069928855074464967560079768694672698059462548678557465980927182711823945727431494807899238861750163858875790624592845881799714188469746862634187541478111637665816409763196028392779410706911495233941979431618916760250707605487675174755782369089497701125469335440679316691520686499925666591918877878793392169095897235616444273957442840257063185742722572353281244624219716864859866217435361550535479292889652505870015296862930228434661037581731388695232571426474200217954471045317187492949282107028008537284599998489737380949734860860213790538828614768165143589986403569065772658876178933281565648999992707855292286609637648144417880264369803151156030613126534810136724684307712169618592118239798231828659035364232358680100833617694744012475481162456849324089398612864815295231296439741070631041024714378984245157126962199095430150861850161029491797242793899826003101807790039358828252728413903180860286906692754253130236477425486697784800385677235644295690780505206375868198631762269637647245295169294129808472591993119852962104490857755927045067692484332049449592457500669961875442201228043403189982349484650104096949056894221617714200480400748113909751343880150459341729063375583037571091475020374970751465146656048797550611146836624810522479780143365848501117079555220321099683644141063335533307833993525269617751845701414839596934956003511972869792774734623714735173584670800843032229518452957644748148268649383997057888248015136225887645454040825219610454324824852006604229878135505043720288247931737778056093758349574541076807201720650444171638491750916249193907736036756245222932897813713302326220767039435488489835228011712403032711343212249032795193246334942630141772297737120816988596140625396328650730892157380130303324923595139228177506491889579894950933728057140138157116723922607294152975888270104311490938811100784360431539375123182666354437771771908870565641763693289117852214152910207301955153843247284761039052445366812363839270155242000194537734956489303730067112918379425428965874444148580966537255250900038589709419368065425392013370975905112001184069213493043388492595811796709196821984996405458364047951304550781975550832919777680972229125868794248290566502706735811230837270332921587191096314263446685654413897071491809109746743259634631722642960578793527564054402606734302852101954916602917030718973243678579675432429955261267909733397393664885216229404856093593343236231636201042188456651881079915695807393060777348410101821230965937295873396203518621456086607469051490612260011117178425862051201715635229176563354470662769322030034440738674995851247643074685869151879508241136294553809354607753674025638831679885556561686180837463941548780721426585877036728026606235116272683967723628341937415691580249942042457664368066774647803331669578937401147601346931460449252113330078876493237648841971375765195690461271180236135657124362474687096122864528956058926649646259214737472937063894574576353382733723968546719709123750200508860511487160788043510374177752356652757533144011580838318964746089688029823380611823646961187534160551939344844595551622285115719121572546923872895702284377431782576767223423575711441495954852372529355120892126558623797481044399387532589547801107074088278654971494040661077541122343811225002996677576893073546034952884147139592977264938224369284557268352152734258389295847415861119062300807978746385782644122387657471113390784488611330308974854595451014081927242581610315098740984327627630763815215466334344295671568754012878501424779511232329812799214367852501959932555790905869991736183794585772424003023028867051801206251683101497911511300230748692327530076288371610899420872788832473536653275153416680787299765095876150654967607837285351195549989410983552012617930306476461815687081033530086750173812504275842995989097182583042247819194983209856491906371379038011413497842232304536533859224996708679102288804058943118290476581175325563853587907362538349715176936691391106471798658414184853749159191462711458824619020201163470129413632404686336023679475672602942500784915015113245641764911947159791386483262149805098415088915148214260966109729456285098124101783474124738449830546200000696294917235593119244447080666444184558323745310716426641710332692499482399223822908802019708668058565456257698903000687136465335542772023915705737067008294139485161151651985592587011178264286641700916405763463122969464833346867057813014782831532914689595064089192079190417865913985840590116409565209126515678631612780192013972859814720746214649231630456580177340350067069370045290108888628893906465827746652561573297167489919139962885636276380676743315687333665985636123370662107646978275331682415900194163025126605276201008392627573546394764785880361361574385614944113578042617500050617057891868617001726859241923750360580252793110824578375070122178671397022792759910089786424646826319376187427088938479293147597475440512481774813578602820598704690159234015683756306453692516507656190926867582345489376823076259021300083549651332431479696583809813291977540252393050867807132258482568654365763234493480922068220473399430895556381192960606473261093908223032414740730249756461198161308224671645959685007600532173173057058802873047912599099592367816738532020914914366925298628834941646833479398361689940347449315000943319099916429775919129143300771413064732732087296626791828390829211486996813023346176965970941120233932426747514225996301962461195654542060787381095070617180973565100624729100858914070849511575341032352863577823836679638754975096633181788146821046663368711953987265866111011059778782379003508479057852411729983293855565226827866644286556496133676051637414883406847146775257757128408532585601615678676592750889954249935692744447636375587220244473501605254874971575863697396477165552173927037561243166093393110239667774231868535605448854130835403287606668986194885120357350384524846132410079703177275391331311721381784108873718990364874344888804371823989979400358468035573991153384663706865167092135573941282796469971836278838132519646766660162599206728819168251883343160827399513492290479048951124274880500103801167944345467573839083180149705704604782064714513806148143300542245652569178939387296476788914060875329455103281400821310669879809473036496111888363660436698745492271944828141557344335084314766971552144313096236411690858243539531207910025931865640585530863241892100305887570405396227000529294142285887475214236442328603454944748425232321572489018156669188876461835374546628216787833337810928821201145882260697018070764287093139773235787264891369361100785380334278560381970978358860001042137784377836365823675842259930882743458756907104950636329726684445669216790288621893500376469195126440159187703414377621996324825158192152898730071025462294886963962770457849264079088506267970276245117474150582374651922395799347105188010038661709914892938979644383166710518782601737448751300196762565562640443386505988552247693065425532442142116510911906360133310646923022929878552082579543820428870082391846788235607626988120089867969084723268464859744775651155231741973487966562440435683750671242074252261749300354429562646212208959573869814626593246422995729534240530291079970618630376453003208317367261689242669682866748019141338778945810809577521173352992605081180071462881214441661119647310616697448914843279511512557574606405818683079348600319879659441483059704275068752868630125175254176529167501171881229169829052111498629667807927112536501686668867457476915071112376151099843787030310415607831814325244237814888046820856414232790523556948596093773765855578406452746749157036276216056172851456463998632401958412332152294303790180820060393422908846684581041290440502583460263652204190876954919079009781097814248479219434380511548322554069270943957541044804257465549382710961632158717712377159751648257643290536435345002874629163139251284591978171326073406205714909400678226931541998576241961407417171772677406475298077168305145520637425676663410387006882856220346738717529262438969169070183303816920586607909072969908247582497150553282998096040245234183691205605548870676496573675093259292593830646690384805443958800744452873352239186833825776903432430743663440391133159650135778838566000271239316011174065132859379542893227303362587418129884357952744207731557649384829069250122597035724106551055218756530202332498567462056379729304886431557137531990011860761630880427375027373329660853645693692854659613961995949329868431635444371855132849387842326506765714831532495699415963810332555858141537864957321927898298134551362542687817337903170528422009296831124512145230142214022940166211329772390586856325339931997265763673830119679285918085826703125342059837568370676329110819315952797012514321275876316202571330350378201533145778023733146702889585579194536123415801291078264976169523469177830148181743645426648815757004637485245555119600762081372879145007333567237077079217604403181225644499474840641173347286903513902354339717631044531306040067427694674421172327070623364790825085091789958562846503060930968970872635269660429059203183598979222699360443162535083323530169185440676281169107331033427388689621352616996331639704132141810264516114008287064396730703180411431249147365818841208299172006432342627732681965363316923244337882745838026369932615995921806784965916074911338864883681916826015146304510107831469163690706239549950419549829732902854638809395904583801656158895749892025605488262188668272044847890476630409944675468500412567951161019740553059665927306125240143337759306697505124640871368449008153334075061852459188102714644544231788009319866908033462992697888812649788038892315330933242417556414039259874121317202135968276297116665516843023412887306240727683128005268146084380288650256905798538796767900330202692790238430999029269778872580578913003252330294673477603539530496852665733091595472441066674986586603971769608318231442042942608579551404247901013771901266486340081273360860917745109118083824924540984801135562878959477270861462896817059021084384587813464628763469922210433367744114221893485487824718965222510214605834316700777789803901868776922373210412020435602084924868327534802219209013138924442251356772362307385533277544818890501327351189564625580008246143682069144128052378929825359053370959682367411514302342989455935808944984553020692131705092983314340133121458231846678970357824783734766804955949677688581843087818150618695465683488669120141488630250446011094784217016020914715461988887406030212735788874769775113498633465695819296058763428520001948358120027713761027652875414217180448183664935625793447147365593940024667132334555999040657805085671970199691260018022108461150030003342191943460502526482913819020752698378103206740294695534766684865161582154004483088136754650358224033404779293266160685370460273341810939483831568328926366171442969665424189942402161560611408216265093734579580077678216739053889425260214425199780653936462788549978090769848076280622587555837905863981249548576785842376673993829781559673977536366327704169559818979133298050299167433184944108967515974521086263362169851033084234193081928356698441725532063007339173287234845959972671130162851064841791206102632118867629117734277122268303923985102525591494482638131931309063669433340245307157733797743147374730588588031971484960689633475648993309501106510189258005799522364202213648301405546351957557529344945644006835274632543523264088539981494999199913433657117595307404951822569348088089243420207405510927421306312254200216472741790920753479733202891554184127180546689468194591449195870471412995901245900656408667315837115352062895451987386177244545158824763012046012610768930373525962246003764477233712290960593736492925450219816148201733831977654065916785096556893827888814594495881799151473081320890026752031224445092837722221460226477238994266906865500766103765166835830323755957656678693159138700530488606899016818014243735494036869411830920745896630997584533974812622099519871486077458354025009631659471398046449566937460402567381563906258312694528766627581399849653252054771325363600951186237518355931446094386401556671893957141278601359279554117850491242557180223041576237859347226352316911448660160277484489241381507014987877941259235367269004328094103454048011101898844610817790354559533954718221007104394627718617945855176096690181404429136933174981332458024257904416166446104034063149409019841660071709183311239714908710341561031071602776405551547726661950335585426051417866227470822254734543290539967059336780289284876791439278457625035592094181427806955067246830067184477630420900731069526735511205998057052963683035526054863048699225155614423762974659525268449063038305441940716654497828302521078298801176136939044779317034817945640591722019923601216947803389615929259195632265017895912591052611398481027405647323869494383225424125548161724793572321853855070192592189289703327400893214183544964534575412918976110446630494639005821219865917432988156555903744883802934386977310685551389849983083632643545107160697712464620474275980502610918518979478589130647594026626483129922164206518214602825991423515058297089106640033546164690610715171457454957106307263651494988534397547087903635375249354793359231619426916378979029417323489828988915385290837557125196892365346878956817319368840375438339517338625021961513056884686748177838012904857759835240918788999485520946739723383543313747456864669058467887329225181045250399322159767691175396335243085112919380203580275259061134997568503721641324910469159650012389274568505012979815392446901978929644056410760115224915912134859477275034483771554246437264336291970018137744678448353939797444336845731384175319067098888475749028329587805186759261251633367884871724323146178545278150120793999449170555078140498987849055175982674926423596194320522893417968505760757993012066621278394375324213913723297723415074663233001365043057132957340946239733211111070556629493504353235203637247508735975697511106031068365208318539103657513418066690046500144689929521957514483761445699040822206850372172173783472499544614771659462891921949472078231486840204235814184267668306764512030301064948233544136826526854190529216392664818209824150741840501331260306079717714710687301731037449853969489082381976129187971534248637865772851122306466203014587766136554133040797976254786939531059292545114258240118343193861426178558303354572779335778888943093658347177256507549813527207440864217435096501116256298801591734214714884882703341782489568537482527423818692165793993772415853980996976111584629967920473133246621228653700080346299989569126644053498387342701933265381193044686251573403835816110591332462886458837305806238091415187462599630478763139638495889598866722000845313074063583146669921829274456520601278059181516326348070546217732540329158078153197068848489978730976582928012141085341159952336592750690747385482917719355537623866140605074247587761340519959179400528042599196883071818991420015882049922187828732429166024239791738148691118923519836592716772828616390905063167655569208534765426024356808817789832335148936425128042787083342917516478585345975827016024568629698584294180832702210513065396330217303010951226817337871710279887288510147422507085435009847081570519141908775000728259248066085206195188620848077915182676797379015194109494863699431899453060993048648163807147191381216417524427200472014671278011251790544267165499657633920591001210648868339014802943414919603709459048777168654256640341612377981192815847205698567653540821418582894180836972734148953497392547812683413973698679072471493579141998372739622878371575368905463050506356558042217333771847453791289109160599578213722227925090770459976267898658271097181312703089073554332326630163787281589833687220992426951917177429199465291506221627424818173516084541075800171664640568085364208625633699655047442649448217348724988793899851701994690180564145341201673966048020192975497625494982247873854946956351692168404275877986845242969685924331299573863947982344795461259695415836169120256634851122511897960332777050663182740128042779653546537523346232720457528623552127639483153044020597187937658158922960544942455194151056878814271244762417769334189503417911288774611392479647269043685897610552053946534578922518835128348730381074329857870022840973359106014375718159293218477054880431768193717711785997426453377145948583897143099727677326407568320617324749634909182694715437603640986079435559803976201854666005593977117672689450629124175744626238304213696550931885060253440104137746945444471925242972242257780063582514983734275066764478573488020923295468230463538087180564420732502993816735394380956304099367584984396697236275604534471428335662397416074480805639662158438380682280683894189694350523922297637470498990550382198245424223836737821066467239720904695668556893170834551168018541722031678252723242482145424745408017429273753131555701432327830456171247425162431608193011574589034930959097594827613414854539072107809707594673579063474969117317024384730584451074030334890362564964434247164892720357422570610907085825116581335356389790091598652773195531546578747620766859111819903272688440386703334811890684561598828009827719637924507152598032318603368385025880808209271653812940301024418014609806240990537755835648287795107579147180354240123406698410331615958469715996597274894946222163448044021284977208585480422392577338838704395022973764914850492572742399952598513062999222271130028201918624254757924016790501609462121442685540275714791670652412428186026517502061995496127314947285727616374674696352062188592011474786854228645109723018665007203734574239638338351166597624727152802587027358404356343644945226317454480236925877736994873444866726757234893559652173403227911272886793303093440679106135682261697920595457453649340643596188065148218091442903074475772629931007185860846174585377121036382503222426113287815242446091988261570240238318679395490428062232854325441098366542193573318227809040118424093665082249610851988466000708241857434953935972711731098887508232969911304496890298285966865644541575126600233351071871848050615775938531631706272940213371722874764400171420790256682505832008658517209776456933198510397880521717125327599611986690431068742744799733182503240467333744428709888294623269980507406799658379123224805683275880685762926438735047153249377228710080278509038475346969564081293835664002843536054539656745653095065335086505702237258252045555306513025554518287849063326512764653609390470898092561454449450453144670009321885925726061828909238737890493500880863814429806838015799420238072921719644189707897037697721528314883338265676636096083353479743191571281767663179836084755955416197164414546383665846782567360639999515239272487934180208617157676209105430575596359562438004595161841969046717233483175435866841913004142752718180323226595709256972110513618123960174162474201447475335876713214270229181440419259250787019570825369186969737379755170374428979629169039025922972099162279604421050973945968054441696094953751493496827358234418914566868060578361113135202324961313647973553237051611031692177891653710199537856621471743688329825332356003318295425358453168265405771599628084995477479279904085716149763149792051972923869040162792790344398009430822016693475711452023568007105465637104366887649835070980128063183521306507938363166450616643390159446198341161915704377398428473574387064254875803238066728082654519613295029308988880737759269423481805003103261423286768378086922381575405279880684184642320747726469606713422251921333890007281199126808088949659685657109386890866582336915912509181319820313524262125334245592912660833956846423301610057571196293092045602718282410559165559039612898410472802140985691649038450350768689224922444152565305519439005137279372561100908226700320460857070287665070672893323542848333220510894943877916496385679849085762803597072600677188221489014730214657434140016947110963765820737073490775258249093482711121570918214255721134652457725987186470115177778216248657512614112379456579628017181787890839473695258058264048087695270088137035301567510989311977486001147704370052108947223336730777890917792581683448066424613248876206696679137314135401578337088441769617621699352940663400743120905630768496792740628044884857838911721522668337362247689173507922418998382143281502882870133776985412200528296204098985659548655200977241267743470747756531137800092438824328512492883811128186367849858503224450843179808181144364464277040843267940380229644883402087016930285597389082789625179799675698603373176805862507613344984084081209453212599904654256598191163975344762096037342370673041628378678506801828710476506197842657389192503900167422104685660514045562462385648918986354238840804009960524682721361908371904241122635161346833046042125347062975334229375457177202096307971698330834939581786533264896482217905509522763678249389501741725299223579918492074614247373121446424094517419701165549128291694893026007879647138230172472062511573148052479593153922534078344388308874814868475181887822847615073697982736172184535175454485556524841466570626927241084018913453930418200124372529711236708298869851310703365800628457030056204225451888338595678436588339225983541933088949778826921578643939211915926640282752053150879404227423718779411896298350109476621617381132328524832967911768598126370655296921518723771373008488019014226368196395218735267625109492333598671307940913879296065179229348972681584142647710933583324593746710537252225022574561851311402034535804495080618314119790206519343839502722583582025189094923837025331724924438129124073226901815656320063145665409505094830812487992575554792536816719256488168524354952375536460589421279658238520203283466519270634330547232812032582529520339433531926176028218854263711600812716131068576289933231653492486755070471040650990383718314088736607336252900009087729667486246045358479786421995349212177609860591158766755292793225943936132327056114576533570171906723152600466635717151556197196611145946635250132563236854906905490620862384749814275656088268836848104623360259497113249448865895935263434096765706908285597224211067546595660710898829795481330004731678061439382181048994124090556158079398301566292874374518030025483023926118827829336595719335946489830686191685167943269679781487466103837684894709030696281694546308179065331208745119555081800078894855349877850267103784365702481071478127506035442439945714176397797590063872363349495969036622927446373992108082773698693415794810735599352931066062526255175709376059814144227978134697027200958018600350020878312281952983879898827829110414835641691147738005546007288772285923900008589963537517657259384288677389920309689179932966393078021016425761742554048931714360858741186156479701028070303339735938982794799851481190993708667326659919895689441113005125834972277118864585750407177969812504024009772040241775097683152389215204593356706799444652741585208637310205190608761224845071901481439331997098638759651583838906492152554592291709171883146216642003720156693591753409592992231592923136783280940671721775676678292639651342221233301929190415862690078181414633417561611444713873038079591116185942797356547190504813882093488950484128725849278894045090698020145449040584459789283003272465014135019153288722264633627025521163484232725031818147868319927713585043640588153203429304301734155543253462702842846478664792608755535222099362490496334856605173981670458733130144915038460639655336185928706912108967775501410686074660272912269650983341674124448513528559580652886442711980848334429413888079170863717396213768605597750342098501988373221805597873681050825718387084714154054020652608361830003333922875119925881706203945248066353916042007058362303646092120940802617571707274943185757306777692558430071845253746203156786800944368685694910732133445456079116141829388904550063923728819621582091913750358227234279634691119027177801346480315041261133185245122686547290812562905437522997693851006950409646665157851123599285070395379658273310998972270882253316560919832041889190811214268095060959222807533040809099354360408954823435852814104132278894331969227213661237510736169738895592189345798393076979314036669712391889330650819562015121499353852027468842483286328580048749086509874323099023237744360545967140427260153982087767830058348691669929712977298778720300557674469471948654928956585094868998344536623912924990588116887136707038650789372416009683198147062795498142167947587294311554063375581465559048894078414049625138450997545560793743209143922371799496287834246435834278444230343493760110508977523779204793023957883552752658024726613923306889883425117411310360312421613644325729270177570185335167080731459480855445898954023323062674857571840768853280501428393619757828437361385167205496859597677081871014693394841552728743606779869583215902296193675563076271444275387642887198399216045654666492910965806683704886998161929722405500132441826100166643044325567937502684256243004432955663310128543707786470989961904361375359686438346743421855730951606864310502929969436995527250018187117637609812760557897118051648874088585319890351378721610639814888179065910747031655677955682938480953366812116904480900493641115450844880723930012121582363754088712639705627215564090759342617889270357934430536400697680849047041904048420657998257698223295194437088762699123032244816570844455587232308803773463770873947489211153313592797773119157505543286666190247750532430225510633199417332632986470618694975174791213269995371452318354241463635352457593562314607010012395871345661560193900947391699454274849007381830236974616140001917660395236487110671203362537796025107976774634766977617551145203877068105940816443186942564952117131581196387446695587780440655031186353029839950465350167603946457676494601689030652976334504933549289075580602859802436662511564627379180603452605566230942181306134150614565506964581554652597353455892760673381897878476914080774930067661399424726622306261734937436454636487466301049098316360763227998090636081383841819480018671694782681666897386403993647144081000142061755725038748351496303609789606156855856738940076504452396616935117992143259218685060040678761512418898148592541746420447187639351764640343737608526819540792908090805840321890075840490853059997071218006186909620230018268438013668082138695514727750466169620108375652656974826047477608146846086640791884997911784838120815045879069741311633910562188693653031448625484146641727772280391418509034823321392857733297409696842347943421350471958616940337824207728267246827996439148187117503961679724872873198199098520128693418436732869172794450368418221093893229699675048930342928228722790695469730913059729095352269767717835677293807722595266919820378917251231921366320409361226353561159554157754119228124602199804482562463200525122560458407535337646905133588443138981276783304506822130253619673921466746187088731809681530167037103854088939182798755381694585597151547682246453041319753849654870296941087040920217661530742516611858280717349792057769824364038993858840752853075005545904823814008407852355864341890657000483349895748721322179472696806725366481377282408862658184773013432060760506076524583707818641422356539054191850203373965457271851712907263060696415018726938000439751219111664163222701040376171293547578890242257128179808144642584663916464905208299929399349866880198162132596735133569681643634422895757127005271825546647828645509737712310497908436070496325521767722436134966567744271542935778914508188672418818742667641233039746718584611802599409446769091554123368608492010355129185043831865109894490782085885606243260976516623980407461078184984667943093470031349471310049273330755356800566956327753892126492379447584678875007380232775452735064652989370588741766780261916270690037976001100252650524841100949679861579958347854953364610634064633219239216092318865800746273707902859902345000001894361586727015894667106243512348523404859574419323459301959829944810269376176524311593655513045379171615959296434954825994007438132698718291778989164415517057813772689860843540605281280392917463367932880302664946329776550756115897858424936234903375347397371033116519185921848000580742694383443729182064926165987181613710919777100574790285796954025431518577802315879749624843187342774279857535186858197971556577750074207672082791559594626884834602261341923578490116086368257672587801960714362876355405506324665110879542276396690178520871291564047405615555675683579777742448411672428470942782826571216138003261289310967000240727964047074570194985502564835179214545751072537264182317271930419023618965019185374616105162391780363462391175555527443906170965230494657879028468366589284056188220393664785949843483094954862626031579433649257028594212502339279009615355527765914327676688214678997517060889450974008353174357240787915682903882200925287884038429976604606769744451091697018563277490193821757743637055319595211033220567413569343971303493827396867934251548495131820549018178105720458821370409313054865539656407993093915201806683010399218362844680082210231129775593514707096970874577211216936039454712492875615430249041918778657151852019213975989906093870585865672357153999874958105317457805630282669601976794304109868114236722662999841238705043451743955075033455472141608799887031429956351105029128306892455421110051921912801746398889683134107109883854939980814809206887471251383971899004538612320608902827791580063466884844793789828413258205666712228685105157223072356559174832182091240437253778793805034030035070314345588700005759824973485255818587890426289911421378082321896264224036645217959551041079973906565064634483733300071047377151951737239418681226710865600380790239655304948961875477676366575437107110384886934654288203525227769404544904967301240353896501627966722929874822571483332542398562718946117723353240326713254742241658080085990687004784094081599413879698573109537476065731957489466898488641094554158082680843853956504345099909543412442297126518928840204238770600322736886313734820814988004379433407110512838330200758484507942054850578911917235841318779168978468811354318271614111083910746984341057966505789808500326914102257487529061100856972664784261628182383153235014356480545265110418279080984740007672949487327182593724501219245973149914367791411215313803564295369680389562690812266932328440624906092365164373574520971555099255960333192733324891464025238576620608787314580074185088004045010843394810364337664631768650231906954349415670639218901527048565925044269974731084376584828691142529043702326511163497055434285543684040865846709475085425595790487714650560515726765071296416621201361775604774577392316295803383375892050988764615778616300249873631885833061580148734444870034743038115744386126672425132678222973448834267487494463408024638468469614215360972592188962052995438462762846527172280049995056376307340778710774462152407482448944314705720733106937363207951027132631798215800357558217018284335623972509402657537875127083587081620095315763813588051221691586820666224510211991226096979820748716155595987910413075962683563599357058724910030002735671585589044432096145234991779918133375122516711753492007538633305047591987516486681247812994216865942205294944634632571450279259947962673371919683027692828781500837509234979590945278364204579554873443133237184535234963169081667707118194589290247321087336738435402745019562840101657442145219261277739185530168901762949907253853891450479566515684447409761346515439582084013299787997541419259369713503168718712184093235273029317619521478458907327133441205980208698751708533659216423204291517395855481366760261921553653217121739519646910874532046105510134343879503757034118711894442967916071301893488970772381401908732603974622052059855247334525010315074682929292520502942855573950848676049879913993312649590740943635260940112922309137555999993475459366516649970468634879480636916791973610135922713516700519147066734732872377814760446816351008510291944447118916278887268022269122164267863749834064974133462804732481408593466035361610924271647714238511129815956824921249022605565392948969718534072730469897999633848754364548284029032453473683380627013228754937776925181684656076232765730494662568953359244466211216664254861611720473942680708438520266368611040667821056755740777749367395308030463999266273963337191273665107660454284355482499592927630708811147855322955051902846840084481915914491317196789774303850381126263141696821958528323940415010409175838999700473828839037021203657813340780347091063083731368551345730408931651810948065117888132766360228944122968039843622585536122682433406636524207853496307752527919959886497334944951674520352079681153180402617206375121662150982355842491325397791178509816484189792843822442674471867300048794913199547279790813329267171454438070412880457349345915763934022289340801436870165334766001704418821340120888234916239612890696971410447908237787328222603794606530069212867405753448499531647123923381550023401300131286452132343750573668207290458455187442622947665958502146097280108984175947898393245376081822177513351511328624979076737456480937411950168510643337820157826407460257907039748528675677680424702336911945146284388084642725896197778602156488326688790940434037584330423152367391835293198261703929406621058447227498530435578592753331515797972950364561533967031630945245029947725305787179927340672174607452284393876715424618574515332133346894389857800279611431658335780933549338505236395974411877033382029177076011770509543816716537211233394294712364860861409779883286069307522575082521506721829978542007788481142645007351171486822710455276054028292080237716720074110705156275865137779763490942071237154826823394716698863228539703446928456273670241254397371788765503800774846456991860087034756325735466625845322633149410225069884443046306239834376163162984047780878867440732120936244302296986319617363672764879178725759678946450616548316138191560043781121474192607607418018718800045462397276574900619485850917584808713806460342527430817958184624307778352635655098051111023288368442037487627097139079791010259541330796242657047459224129779780735104295866251540927978795126150470767541314081786113997818323493480766507735937679046651221311496166962734170684106453778779290813309621935379922275013862180881521191257774413021617135529209069498741776278918523052240447279733494767886739738404432207591831926970930237378431527133405203915874520322468096579158129099812445307989183482888139057761182274710779991048966544075895809597616355199800602022448989693642121156205023620288021400301148088554169732621808145844211153073916894951527870178809466069015810971776933189922433887869861692167020047953285875820148946302391767833891136100696893267119534788491602157301925878892594023619860727425624894366771632067000902303852136861770494281790378962527261224471616440675515715357934982068203583963199576997548321368057168630065210080739123275388422816454308627029457946563524951303470685402222959200046567661190840105450663324555188329029563028155541123790948077454649683096144095994410721847819416311326420772175025839197715178949647434631462901759225862682369749561338397506986762202627204007283143047330249627518222479742653010959191431601723580656978683446094501450855004052910881875332208508042697801134808459364788848236964741273670099181112978132991375451299841954777955547943492097015228638807999742213279420259494330663316955614232218547213085040331578640698587026144213886016915351810699061375725687004370941184808944785129110813208439607858903084846563167052636795687426526648003313413828323359145301183731578381808166438667249660744267316742729622323070613575512390455822383908740648158144685372997283256195055038303997974256204007974132983445823843485932101983461573401256927914885871021122045353162548041160642892646306380166455856291997714288468030814655989641808545160699010727221213723757410185238273772121861033881094680475716391436580616609022929747768870889587823291201187675162309926612591038049400718106734464763751946597384449497592298254564411053922369401348478867432525866738898011591163447914793242166987693169809721680326910460613278499134332607768315791488979045934022303621480228502272779462734243155791323876127887769493579871365560690299362715884514031601693558641628408340480287550244414311942182790735231995000480214902471593560108942791824925995338505532847522868222007105029723570985944842898072993119364214328472867586111737858886142052632471384515894606850238094029994906926436905072441686424400156814761080210268191577788025738108057878667946901289072798006353222474654381634881790331762312727964274929591159253110653318344985378372655403320241496562142565869699412583246581214385719936127028320769320840520161496946080581044067541092127711090168114523067708847512431077040114837046061405531687813703432293339572924852778521771073643977260247811653294561039302129352921886808385891628420676857478720477473323122018066533423869847933693690554066344394148314199115383435120127282177805439588003405927454155556136802412447999959766538346461138297875203385925359618598189848455054730901373474844778278454241629688650760451489420719889245095229423836547560043619236595221954366621615903854660474692030726112890317436091146172910988925318549017035341799661817890779727313503593855152191319322581806791793102341323372360363804599913847075629812848029501791150362070815601025487336222333229256231690650467710263492755095006894606773896500037586183341692524325568688836401033065968951816663269572304421283604674764233072391137723733991391432048789325110215740698157129983532897780211218564575981443198384609012887265341029192724422782763936555486178536970437686946320693679287160665425369907989186553404625208160384808750412706481718923979967167001273390706172152704950172341755406180990073125682044712952456310241688711989465380523216640451980192750513138519468314193319642920742582958562099906164999414642612464883462262590218700722719220831474826852659949652858092264308973589502591868994364168878744512260745382415173699561166664007311769349066206725088876621209864012495490163668814259989206925954813125536690507076101920754423279882109829204755760862836109218144141636030690751083615021161819066825475121160673736855058604660484564244322073230099609392719876139209223374555649527305262729610470994182492673097035402145583294389140586782419604861966769154977046749948339303678015144395405642881863890525475579705339222857429659170794548274147443111263242102861405183434432529571846086100076881678867596966847589876170130184324378677895779851467256253344373358306849217566605299687986089828589544636336106681982073976792690591657600186467841975506084101584619514045545949851394688696620940896097524679532088710889665274827686042579937094619601359468521173962449698989422512051835518980254483106633528397939804556459735375078929366539468345069843441421616782991355483013573532261798313537356909075358095744889462686591925941375860091352555309968572845887069252267962904072761900636907461259163859073670705868775329039340961354695335932452936367647736050783984997287237574125268537159838188641288336215221684543347748683505970942728983400660717075446879649673058104258350389876062082976264476525150846422163805716469074714537929067991158285404541205929450800784394671743578335633653910489954151063602659931120610797851539535013425269584075260278201379917609103868847157416178409666681482298102587013386996669213984644839487326860325589471289654550917962555636892726506986737648698306366868247520899325017386583028212940632530896419577167255676628091351653972540057443580509610741449884042691728129066901782184986312646071778348806032069225540042716838513491400910263275969139791604966446147906028982171776622476126870736481043853184523380748962580299454679387859881741788006412021870599712802312990843499372929841546379237172238179866038071271236068714852466009465198402781272271033535341431850067901374674718629193488099362242505264947609791268502256045208217360180244370512733239912198684163221233255280853399487393416693570723807000995226171018311059454725238019247425055239029252267002614233520944543639612867526100933979128339220279556050169804012410133370324397436561876355128769591560839055572289825613197782065538084619309702152703443956112438184177755043705461105058251856326065237533018149856838684418570671783818727420976188818488466814072501792597536469744897884247965839419479038597329598733204044478333486953047017160144072604357102401397625386172963038147146497077581009257136645481664912584482292158914996266389301956788170270697543837356609430088472222660437521913978913232184201733536089412367628615967463333275763484903114134545013582397611519851280277963600528516764079022112435992981504725329760345601707070443653879890294366005071384255536603142394792289748412586813158566747107143617123756809074133011668778353451236883338651632253170265883436733810438924887383286009451365068632172119939096136565467166657637778930094613606133480137838208141660290131987440558779488793617358884680447150470804455248682385854666188684876323237143419948778645012576194835695106601962721597333769431297781086370854209323825513527961852667649919924181359691687301821508807167168273368867218344911474370783868198722816420548784349611742821642294388351566014234000477598085372273436214841071719809979783905948553727033709185160956061095980281552997269740109821107196825346050930246535318640660013852168346930282465565604143106053588796157602724488047744764142723432065343263931933676063006934605271034444888894357655588847842914630792183111710430151938548456601731975638094766021417600402341934261902279201988597347200421984504650662563471442761553746357890621942837034454495102329299688426696724494538878254694858934244484856730573638173646563434875847564026798204689335967944078111691660907794707410268462505257436676009173770727317111795421420182394833531062193311473456753109118669194596972822241422085383838296983478315372603613893148834521761665572780515302095744899827774274116350761425027651850981485811540449916903964675453189607926085412593339812126732410504526524745997756830508686931256307876128148047427151204556624078659342200188726190484326928532402813370693378043253076495337037757702605146656895351843435537993724398041350952978933090945961920831375236182680148140504719060540808151124868048462860140511097326693657427222847588239017356338438560254489965344491646677565786831793589180880558245390921808900843162316083267377856272475523664529694713067496926232658886305964836666781172337949350622483074020939938604079368290913284087251294042485572449405322642924611669192800582209222232217267659753680367706526654031790174686994135783642946156834220590952031183624657635962806433263781405306287119430068485022272956497743641576834885204959763302279992004901457674818097087149783437361213483337340004324262474839283342384923333177375231681056184285999038046237540088889073685359630229768086802611664435779755425097021251891318069170940888135384466312089186459302280767502575912483035465174609206552648216000100680362289115249495846876252599175203457822024872337276097012572065766376895922965668048612979903890138365180806402691527771801675412631292902531795079818432707281329939221749608026692855122091487474884046889423045177936791467622874392911929062486662187272228995685584532207156729340304150090989744704911063143426589371552333645881986519195650159181685442208095014643567956649941463167559802096217685908437093333107200666030702901388241409770610854349816805823994165427144621627302602903682953938243464325852679716567002611979742474526746684400622787846577687461167892131118029371481317331208474390293469616612250467165954441307700151662480363061753177144166234833258206484505574735511847515800894307981327744276869518311154776288732082719048223179277624077569164415174792146839326729465706415715150007214946271254840892647341696098236872165055429630048968482850046700775752593009257393283389173801467098260834475265146342066199936506251797027956353971432543605333752982769536532198721421721847665650818377844163819102904227842357219283768507853476732285392920026700114247980125490634216081383975642899919694996560749104494197956002362465071591956098835201190574208972996652221782961550513529927246605562946596711863676086852755027252816899714197971163621196514532202419337365734517580645961027192432172754923330634296816042437614131854072593419819950022402888403104342851501533906372977410010493339547634056970193509158423479555424569485684791991766147358046256549831075664981110043736282253489061200104620645308021207020815378566276465543662434378749251361544975490707639118376047808774269697411163700056151679945547750117901695059015506218221664276722029267774905331771490334218119854488211034014407750397339909776117627792930543165280428540343308060600402622990710302528734225734812855444444552446604856065982860917891879092994431317262708777196963968765434630692445343277719384730753746732962746129101550095083850257996055481697839884692263723955315692001059316171253554565818419695710706051436854620148730794370214564854850530810276356916570497794873971834235712341866219692824137201934007583684492716691282028242988822399270212606995422492779252449430650885758406592419235790026721176096069934922651612305782773634161107807033827765931683326402880712244324653046879541855897400845136951889472341383814695698896035526308330732364890014111978303692556220807490460083769639426854755176669695742109966415863830515141650320994884021344149043095568709366985669338880387648858363785494241913222781287199465499865227106042841930938480903937767664097651600747716129975070377020079468239521444197686305826672835021424518884772113346870905355591179460595395339878913879612199777862465342993319660128570326915377526593471665472779737178563814225533353726358918396358958026784615514189736005972115277537200762300708916246577191469792471398931515087233285829641613441417566437509788539309221904033681906293598284541883014925305844576706678277064815207921262044114139772177507399681834331453629909440812210380825892685773544727195889102441783806842746523971535847517186326134722751364610298423826982277637567534588269532865194042579822063929595136013819315067961414208926224839876672000485905200261116072824187416405720250148714134558315268317451599488523999147060544938438672449173377548901385108012494376862405495502328628000019645225596041780842775423685725543114707536271746260166219826201155190394397771463069178619952719839960213311680464938553432908719923373182622603436272197766869267157322124883037548419252446672788358981864797205417943045451370040654873080874945636369437880467045001746944265750640962313413385896246192185676160243463545208771033223194218416752173323183750802556511564330013377804161243375862386703815803200729737219921872928088811123740912579705315686662211459594021449479874339368400656587590494162205859384051520380287288046849315245958446312448629271665141192419438461829859890385408627861373199020777516698250395569713982161951916285836949917225836582492372488615752858795296211680413457739231399988048716097669246037134888132056279559127076715502523117411675418542765984782281778649762017881524647305929684378282190643864961445116856240743907074660112874243624824204055167872248727047450037893444683224662327283803652253678794996744975325881488153005115758877656362457054983445279802617460610977462733162270902508828388748520738880190006344403937067154703716446627627700050164854390224481922037420725462029434657802984989700328931868300685211991129302867172707951678854265019792017761400696442001343874797144811674951258299203997996503415471878671264302718543459476352059862088572269622707244530009502098246373061709182387277619977638227697632748941515137750381295445191442421972522668257579568216600600456409014277934969531165385521826996732503332299348930163199614961571537724004802717717974481097366844585105001891212406660064288377947769535791524471353940510667376230061042074089489674500837395956059739903703818154790360637839991812543488080531358897572384190984152454385878695683474911445329373444157576842695854404319289969881702434280224199915391725810188122401512829562775506961277869678065513033685664952780502838439026882109661252927368834682676817620689548984102856180622920937933927362140852386253508761776614085323884816308630981961526894616463254530876728162174201310737886828084953052552750129338846533523821765714705980228253040740736075426761016660677335482729332282223302351053533782366608250455179535634144491439319834715116406219802866911115129299305890944039122158413936613448843514991699484212434161148216949092317873731896897825240652668426969236366143450824087229968149655460817801843471755844350546679540905248450604797600385225092411576904829305607070709424608669683919513522949082131623354498779081666026417645992608653000390839779179972355819350698101695414022486946314959540061660980011821547473400576692848666883832992000393243945564735859442180810162696884440574019549034484233693656953366730914856816870736225569047647222251037513988734951859816751913632760395376589498779083579296493027788895874974588472025610191845883053877397179562091461939766426812127194348806844133403035929536730072404608009640579637744200617883804725209569699347286580116337229372527172237162496867687798198908486358613883785601972407472612256572053903121340865593423913987272396385514188682594482511879199345217504530006487020116607081372742822683469370555139753213896397788255536818292386008948636290342544141368756765086429272937870856629940525060780270642771499168677638721512430316890137421695631423183337826533798441040540182498455921955229023039051838162132570423006155865132900844758535213305544104155379249626258452495569505376521035217834597369273850712017419706962009254191546797652240869960342335020219570409340125069468543937854909724937125414061138928593814059735848369294034867023347021383802815050881413803177134268002520051443482867651976321935080121207757371873187772935827309232826165231919737902578710612125986881496433630341505307233662363166485672840914463525259262549517502432481151045485919643953085723395824098447424817302074258725504508698282330723612499001598416759768486616512780733326404390121740518884667529655937352227834744032682652469605713324616180107805340270592514979121005954017208357464710459536999463329590108907282720428031840325134290959082053652178570724621125455430395898029048595963366788532330759564016225375800345731533249948630093442802993304522673338253271980388928739207652455189893037750353416946489020087850528446373002341127095220593118317584401505121248293643358705300234836787030633084649278560716254876688212698668693589234237712236543968200429137028836089903489651575456128487709537244810327497960430467534963533159225439744333973963274131084008845275433269427520845557686162495822808014967870426223991805817139041624825180108954950742296028374557885172161120472287946174290391306002297734452944862840217523965519392619283256720004898427302455160720136541724957577978133028623574267411848443092629502642461698261883021629485776695632875637044197339787922169577482092263652928450382250610292309912453574586798105358519617345322186137797251060489100988414012351870719429351594782221974677939370901767624407597295306082513933651143703045913283801927545711663085042313726483213734906404522271480192705945902539376484735718181327524069205398277925284648522188877684005953202653096346430721405581457755526501216739733750911023240070689413747719856717953128385330252000991723198095996161232307700124272566734869590714541904953792473681399338489003943836821231330220984547018749220093074217506521085542138433443291499938137746995647737513329145288328748684016645278208213972437300750932363629778501305202090981076676556317137621505178404338679854126441790531783097218667022100436731852712089303884010951580248907964261873223442829666806566863054414129422696927265555271477388913937732446546437771829957546116321182741517733586761639122645897141489791110561874355243931600458768585272587327541847253102319320136002541967106257899612031967733020872464902264086413219751768121465499131232262557261435844992912684265028609252545368076859175107249636884606997325470545514783943077624394213630103850485771029083283062379187226864829771796523849625363327818831457882001816971679042475096555044956863657943340265666521488681642583492443258462685596674410563902906977492121430166637593280472124396525683807418462274583660926478025802917417687887551817190419881437362465414909432036082659569394829586163485107449338643598860846382322314113966270540823580346821469745362365023528194981858758316452640247078751048737020394326245236600142369861649751785829974511212790133292620400188871467083468763114713353798383828765114089896823183669397343405446340185515535018645370802592034626157667345013220964182948802824585340856375078911598689938396574617022054517496866316120080991451207619612042539084079021954857395511132803817803313222204369297235914981272304813316968697719046697243637375410930094177966775825421405827591187195133903760924078673481712294877515261610830858452752160520716694458408210601013671405487987706735803950856040042766075281318665705812585439948540837584649378636412954044846736640523170337680798524712702896188389247800292622153977381646153249531000539578193231056535406817695766479667138424845789600653274731816344539592505201834946869523461213468660324745500965699873952050944211733145440443913407772852806268935100067911366704985774242270846121783608979944238792877922704473491886183591421010093569182584536638378969714245552701195664177276134332627657472463589624587757898049720479026513406584539437527189743745388665261299844630848266771644150039980769501280637330709801295930813003773864341464325885109742430486563437469543048390721032418063184466096995776141574230811993816922399326309345866366245410601589236993918401902861133626246268157912248629264243517471862718070125246512480529798808736857453293749556923222097513623594366154419318171050814291785627814721616677033527133547265971057703438052812837056091683874934218212935767704020675690561139361948221815674162439507129415835419913007269131907327980534781819084868759592734965995563218184713309209332566925276698247498475699729563622450447394131714229676080030304794495367964340620458308038300760452363740330788759578452153530293737312423645545612214197905553343443019713719860321066260008135811883428428834004083447440170996131314369904750897833383250659015891545985471311619416856695967338263346835047134448340125302112314622712182244519462170441906915740884160623337778160955813772088194209144028168852170856493205183713259575594970008658070048221297385860862353000464680340432127919413559703505429108763270521644694007260430535610217318452667886185444957334462579059400758599377228125434379510187793686289815326787244446534295251696548653513323695281794714610382559999230414591283801511075256557497673769637911774263416346531359608335948450092237316549768141251328358466539538446935822759370302532058969089147759605928417844272581017259252701309894114251019807164207783598028460448757595363281532533144935502715046168012743689096271101132039515021828039180444880044616153518078574214578521881200244905074752778605813096699174441119929003470766641732819096572258546308196900693840703146770491271370607654910881259766728319324744982434496711608599358848222683948617768096113496626299581229521035333521361012928032021437470786923270868308207165764653291256442879657459776718817300628073066894898351424365927697935449701098398600178778079495366048120869782461720947600751284999716041915303501888149562321965497549007459901803232135798573111619880443270301549170591729370068359945189833554263872224919530188883958750087629657353232907287347063217627738213532108489930589958383981289236827988508722830638499700963106307902361242028877923271437764835004432335591007184629791971244733259108139119232613097570911965063528766391845796186766414150140872981935860176850732171732041639920170104000885483246512101352155043667423725105931621907884420793129333287681086735961999481468016990631083555434239732662244000348234584303026731841684745243404257887972211634434679685574862082888944089111739241360403665947169565535020113150203234096611778293085525808781231513580906444232113806036015894465245320412284197879993844841049875740435524852174653174717239797650290680907216055635533337438108835382638380976960958956429225139976653580857542143546179256069250724983362425981097037327337725128117761970933071683583565225475424975660629979573289051571290567550534079562238081781432822318309422061007092886913738367822424522144031290392144211575411367470968562009861000726561922715099214957076704503607345573295697330120579656108287159048300515434115921736012893046509765146130852567169976763098728586749923457950898444396789591163851047797479970362768419111138828952616360893371879594924271990089821339641259205197875493968537809003331139851787174425036099493870923415627053673911959868923785598911495758792890435924781229377140203956535613623886842163280694917600812509983088106650575921990510677017279763891515826022823083019206409887947506397843762980215944718404477405217024200948293994304834703040094662304919644063160782569659563455946665744624457835114907212102505569750659834970489769586721335000685156903849812184227102971337462458533666619059989138456315821705092762424262184269879606397837414728350370706129672195034432025320688391567499590083540046930381104730343302547855656863595061598545518825581098602796548281246858283015584812831792654601934927338750502969293493836832344051845905281367475499684730504620114692896213966593513518722553787097397093055540001225982305590487316433669894372391302973562147486177778210281852064133799784101947570443662513261296994904796267138196217365109147340477240053197061381591707537601815776062213607540305587431566713971963724409481986907274787415386861173833056979238132535876139305193099581870230120245141170979533434158810298172675101009820214032916539588403343603981884843625514236582705269413468415761320064697023854827533458113740299398663563747863328940070404318029108319942214815438669862322319742229096670650347034751056473678050568462839231152481529387794203716176377074177992444433679354794455649082995772535641109247506207666794222173437691084051518532832608205056848828959044185783282171590186160434609534838909331195343969998925763151524056314120288839646573838407780715519834948959224508500995721148282661564756671972554741868786277259518257013384178829147365738408983883322896193882509977402362872456850887853678875945508751626684940810806201338200512169561163064509690693967004059872208139243704832169493186236544298934300822349378494813271912189792506443324219983331450509753333149332388116751616175940914658771604333763301741042386126026106404378917867605031658019759466068784407148168546462141250590853315906087454377894763243227599560458809404663023968618145711509283988883823665386064863501646729678710623809687652406944311434723788625484972660431697708937641221607191779656583128806136086582420434444624606690190327900178670499801428190583470827068147754653905358243956876638459799115052333145639330954130796049248530481961347295020008762790605868461010212140217034371788756524203614761204889604485226642564537556783486000829283210464656842701873659183117205853851140283049844525131513118955416008150848745111384258891577249742896347537097036505526678036541926475835490529398111932577788189797250895450255582172573079602520650694880817607219778477670682149729338114412774775823753712355634111862908995624042812350960325748245855374367620857509301361219138962940212639363031067433244251344684403962299028955383192228188045691009360998893393676031320436860875064887523381917956840384708755935869648665508656191326658775486951164610306447724809990997053019362085801038055131095261206537978651480137458599039975892330881945437812674718076327045216767869895119090339241674013283016027139751366448507925199148245142321194824303057207533337648118380614089241397226371952014533257988165048300488774025294407888592896524539379867044315009666412601475091032366815849183593920278687605318561388567836401032989261720423734543933307578537892484221845953097561007833483373599268453025194218213888097490415050593674594027241475190617199462879782567588776016564767035962969414517521615713146583150623780966023147267272160873296824811047254579229452073900844665284333742434930996519754407408865447083472304461091353577866482194681973123220080999891647701826679643330663234100858516485253138296069291233118561392913628085973774905070504860950871293352433028721820402677357862814796928467629294165386506375385569141620367561883580566832097908865407566411936798144437816225132146260574495711888212240376473236000724965259254142541909515488960874476179540062577492886933605757372080653249493192317548163330639810394326452516572414286443160197343112333132621819233418516392757832369453869921228080038864691439245579668807085346858833518584922539840309241587642865048082090688400502278365177118380642544695121450285562888055425776359831002386713621762862801189211273386608896027659327780860036237568282074932493405540724795093387089627999974534912522587015643415827603103086188916436096123410970502099024910906472544279855945076593488079964751390912392387966556664519499848949367279425252439012861511284848834958004286030235151161891223245370119420146293399197268761176169366144328850696515079478414734268757691982145792901686072903165460757384250411242950979156129316343722139625008933409422182718763278898062735093823683825825549361215652604505799783749883534775562338212461133793621493568567224806974565924043745290394136301632029397236519663994519582911628814924438958390352986031826419438979288011324746285915050031217377689195815839305014189389450062314975023196606662515971100713101978365306503632396839009969037071076873292545665502473136387899369876910330351113007487370197833587552877358605957792409394299148759390576499354081351396961266316093318126708139232863862425069794242093861459398386587731417148977142656684302599854040125296917672153352271569662700562821750046743582692613791100809248593956424131897063502076081268640650422784236446721927339291330169328125079198649489038046804797661671735480804579639596099046552295986858703060212892845266737005193929651534005555840210469590720699811922098380820621091214048124002886857920330470779365884084610814341939609762464219156314902677434915343148116557154863374638095210534964653490946660601113554435527761063293670951222231335027291279893694322159240314550699248144910639875447195892532911328093725429086112268081628019242758498433364921448476883856813057643293814883364414779134729277178514716286106940905609712031956591633702493006781804106662568937797857290058304915273006664614039107792572424118964536494362149988220731409150382901491396185803506447665295001241840575066732536987802987368476752940336420828248523067175614949155402797902186081884938476985751810711263905338650792033969576427786217581878794861892778794193140287817798790770512060273147348163881099181472423606807144762659654763691992895806019781453930325269258915938136869246281912788672722185644327338352470719942353190343982297641669946579011369183762580016548692390736790843113534969620572746512384707423931652218382452376811515919111879109561506213902657324847725026669809231881494185742222937678950053441816232060572530845468585010502308602583988394059685815220425123066910910547953696807097255463716416487549458189869336139777338990029775658031357331868921284726981398170976531637000269447262444276890553385602551333350948805588251104891967557447694935407080049362271444850470054962359133106014172551974977591194263002886403844126521336763032446985279161499769849751244271280289111398550580823442029104192400644369854894049892562495507177164898987878594630695784674686104376377521451308780306172442644776905828455778947805449021270524004684578312412212096265477127569170033754771468689694638082039650429179058259088791981108356357934596574800585344775103965973524365301830028613274736294807386694509120688150434002772773602750029747620334829188152138816226013705770374910513767347195069312856277450972828249501776601001286586872432704749131364914047745456918591636148144638910977308859329467122817862962127869276316822122252558067973436580209895838613737362466384409599550751959253591215543708820376800584849820965812587384475645478513346108507446812946546368701670913629264222814708680671516897138013633104062539068899945520764272883165149333309777834388593941530259152485454675673379469528824101473664143796246118703422167450004440472291464677281798483673641831909284772584008570062530235962490390343392564397805356115869923895399589394086974098214392673534715643246679233918067918391625604893396422374895296003838155862154937348200187866418614563301089559409716854761614585866832827868995663832533706612092109563115272646542089873032042108419968222857731962530033923962952675733558189291492662503792060905929202941444685352827020153282418329553989728182631209845567209413763299278984866207811112489689794567786239031946711504265882474226138667560056726623607594121514500165239199749852935575171719830960385053275933287986127374572321015422148450495158737373410688712645923804061339931160355099984985384999059102199559018467459896436474966976191773597989089466462902478829409096186200943211794773909627247265889020621964691012672685025166040095600521865074088540180714578671091707429196662606255736727073289885543426522140649143331841755457350278723314458064782933793533336221683792696476169917232987692848754224576738824737110028738679276698944911835450096268722451852082368633345238233532032027415240327754537244674064482225093430973237131703303105198479450073510632509357552591827099623673198334263506973544098967621748637109882937163210082697299195051883929146122164422560597793619342860242551664990529539725392665988816083534703935307263279157647309911312051242221855067239196787869578427243102140024156604847889227281534897726837082660211364475954854540836882071674961439129437129146613021651844100101460395157627014926258434626810892812377879394997692000559678427813373089422111361153901557846206383225995848609618612603915257935897567202702173601192914295498309886915924780210585035578581746225392719639217449691313986100258032510259457540131886964572696155863964955831580461922599328460704656000424434798957362238996237901162951148876309194755726073252653551955683595844870599964620156607617188130251755223452575559562558348539267799532244090450533508674316508261338099587921505307381645916713677710598555639715836252690102262511287937972123795330564686576357851553579056316407984448482202830044564912671359113226581946049658654091591819056205724512850951376187713094749083802076350975270331872931993922444901674547613511761631823906275009701471784664908693813911684847326551727073512553318048119901837120946215296112535044687061988258968471300514948035035860135234889949129387015970864239279308208670345816818162028426405331552643050842762792952796216478615344898667334704436158982027425042458304394190151556984707632022980442437057542465862107344841143097600198120018451094985008739987054540805619510100056419248981324727592441078113986973676837176167013422012931858734376486438170257391010111542852173354438687054411932952227099233969263571916425336358336879401798792898637389226122317935817366803082730392208838625070366290150369658836187024871039090313938741079727905402406064179343529888006685936757354197849847384795385685418053712942244392891614466460277501418376655495823388105351126988756917106104214932204422540272129121419481969219507000963465782526477239180433625485145039211163922305202616496697334909317285606787739664428124854007957869475543872763961460863783876854135055414183080646484791774285247083907945590358780432561126122619875692034494702200187267720570716444276346226410908361721644042328173389354986675866548420366697603318591162076965645939710928145325948177636694610806071808144556362235336223248282635676123206187156798733386792427713806843284650785760696231451290062400987189221594102655742756914017813759393739361810973175026341068479977548126571393951541350922955952310994528670809060279919841820215341350110711722022523633890439069824001627579660860911895054068678167478612117351913149840130892085441440222957181919812423525500970082562169737149132268333050215421923812000976125619490873916985541303125779591464721046300535618955047587583297027600404634142878605357709642807135997556330917319869849009261284399346781051697196795676866667545842529834311506748278101800630805410690315680426203919042184760794650251538555944006452237482791433648489831547896972672345560725450850391452565069357573818963884943675279321891031011557398623501570529901856782535551073894676852642405327565396361962859466784209641653295044467499851272933768323193534564561996621699074213393069883713410162146826062286103214799936391217794870943100405179903948504191978969616083125630355655280962896613641652769380157100745164809362350732706507692186195773903207932804239188579213567476986141664225916794488014067505692263455331354390523917146197786952537231351514951805309107282393430487107725271491781939415587930916660859234243770480093813138464718779926107072681064249188118777357905376719247128597911874080926091351579940721230305142786685037520762953735607021464772358509134143807118605648871409804911960830853411438208290193997053372237843781132392961181016718700361069128555896646360572630428965776007101296959572215878938813828386482614720190496863638959020438694055066486069760719206535563712849246297753221936054056640233115758560600446651322815105035361182755469348515291956789640406388657092826317533632230329374446624265231025315732679338772105489014347469227097432562936838366452195989780319179166674269590955242104269348003005198055487899865935784153356444596226182953300693416289976343356409721503647068484115834685988440993343196209223998420990664543745236948232060265620976291957194894959116743120883693588317227001966666203340800305741538095738578509787903605143257550281682305772429675483920547052464160755936777870940784188552252292760272787915930051281367540315167260936204775276265522279715950477225234592079066714634710103582861056756580358519926554621806508833252626492139291310412444441620193008174214008053129360355065003491073382676980188913915177380744194424879617610186237203172290985134637640476174024239026303567104040510172722257330868668259355699052735562854866466169250870442684663475438177479380717918735767255896212222708922326082467025481425230983900493157367181135323440417770767520581298557769361304517398539543764846208330800704388297875898970980764721590031310722443607889983271643707320827635567888371967308844728711193066344378191775374901725406735605501430299711435958108522694204624859924159005378761902312523881962466101151628610136523592938060549791449833634960998992345866852773581802407362075531298663325450597247393246040361719775298813506886848141893166999828885429941703780008225485418073397795928283768261402813125241047340456986058749987540368017831186171681836575259647211990659608253152447986008149379468827433549925606391584645328333302726601175172408183278979718624349671691245391757985428648608003182091622491207563758731502881472148929174887588729236959484293835198811892270762319662281385623807188030720087348599368103631058753341592402090643015651552898125536755937418751656742617274258023725202883267394276883683742925419878027937469857877556994448731207633155629472481356630556296316095325223743858358177643775790530389718420297639666118970660924801745539960989950902498095204537686445513823629144466946602663936065958618877155632881627874296089038856655480728663724215056585458064024166442602953563036556321078202948651803808808881896645263975221123597182984986663814727538941345653953081489877857328625476774529737308390307351364348692912517553242339040784778427653175535329594737648845449496507698735718034780131603328844443573812844926438384463829942897293635710237516636529051644277064815972181125566502869917528089915947107080150593243482237935366521147266345468285054093086646755767581775081236065957485967247180403840672920537472495248964318883138660908556309102263060556349069888683455530347622228580212859209875016280890067897788690413243040471816554033915189608775786527220445920583756653461400747278560895625893744378977944582196129506948511805395507768091122769982706537278573860871374298353505531043873895260579347159314071422008445682728690668565222819881480940469385044081609631560988762293967593662257347294882777055891514631770731670062467954108953222684707653184314581820960079321414083358503544493081491028422613949316920410780736320072897190432480998230620557385243843864394072078962485050080624564616912753896762787684855829976473593708080791917662037890661932058138278035717552444580272923908714701987610037387941104112778954932467357518264967162728894338279870915669545926067211710631901449210992104862166023778749185251523881001216550277596978802632641215858081533670770059273429492180174887143717061351507872063601645100232826872703089838518313022529593538595217478843858758379148874201066029538447734222526003633571458189101102135230217026400591517835087820731784925942775848069450197714993550147522478337820962797227775711503213051437359324481357944785816160532288771419902493603133123691071873478692167082532432348722281949016312399695202100562928200369709975384905095457690493574689621530353267110180995079440943506316748100783346559160826855280875444550101675133277377221017033292514544480916332413481286527659881695380618013480520298804853644249674809257749410587310459432864680255923473065320794429346983032495622508504819447770265799694918030648818768027610715698510401705680956516867739570089166727457104147883560198386299426248404107608209276642268086796590580679082552576873155275365288433291820368889395373840072187071578984166215868315604397614843680445608170233040777523771278924040580272648816179866369153967258110264462585036177518859840663298647990151009596239690879456880634496426771275264127671468000925226485121420857216287852979544015919595191231821006575939653308873152827047727288337063209128920982982524479843691372346410340892776001224432211392390218379616827800284058074487927822368334780408656334775895733449765816896359250627370024319048203328342419130712002986409930872193069172906207965673374163904257081742926320708182133813626714298067358357963649921073341948287927241675501105324416341271676317183488289285492299218873213749719189071240033339753274593181971328976635969822740841066811382951608511191291374117944990589315896877219606149000303800538350832167378629190110039073386161636169563399327429614604740474233803321324937648011714211047769659771348852981919172870609537907382841983186003090987781632390538843371008082176637471294408671839658427428435121322481431257763462827817807905303326259835897494349569281987048400085696209737900693900948827204937675736966011866973204291031039357442197505554240836110183533098194902859567273474207669321360270669791392647510208502919389218918803524281290760357319175764759478912972546034485311071822576561341595618863594080552383730738474635775664731298625117068354474028816776676095324684777598888853136186672703236338886151664324938255990374515824340729165784022204092706619218195116449379388276452430388598226544378830080229844475849306789970797848170874791366604266416575273796791363746208990942588274105420054872738000234819336016845370241124103964739418816317997724714638974559146778879936657124119507036145385068923742272125006274422821211117573874215724929045932742276732498498094580221715841041035164992886481953210827241233571728191405931850194347197195208825581783266105432202502400864904534263785001539176976050695155999033282488898793502035036215684249377305808036289143855606356345676357509182269138411289996582191562335154470320439269487846710662073588035543591255560298199758414243543390988282150813397644698143382275183706325071891175274842799121865458815784349486435439897370902631596855959895599663217505142384630271025287563885287762633809519466379981921169808259429881768806765034594726229306473622177050497911608810560002058980476562885581859833899198686876370481787567289077194517918140185162434290254219237902146271652370802070957544825137818724363289598899330596883581467510315715210471411531551343894419455197998264218397571953547021848514560894770391501646410297711865989905220169770415279448384936578306648015930761272163716263051557923003600852669495878290376871485154244507616133677204099137255294748802931429254940474530087836831311959131249117158765310461651729120045174926865468549151169691080960573588112891093287467061665320509536179653226818807967894561235992470097419102487012552231354257806735032215834125950542428495216216676772999632528642405757375429931613090757807791824186497940728837047069948206702661310402828236826817683713548986341636443028232403182202849976443613732444935893010673976065106799323231145705641108094254077667618563815778610560184098795354425642773272735818927828558833844554417070130695513010673958496002014841466206900659330478774801156833326988382912337686688297826810706822268182331718184665289589635358122673518239338464468092823446617450173134285572291485573755209735453376947952139324408920201999426314514817226588557254958481643107607204135809683133015202413410525490473021753361647113997514844823227748246935766432253481992870005764317873452620807178116860899115657013668503054205021714208480631561859379531851674695392895893321263452841749334312651643659930924049390272063182027763002875843937380304137801206503998195131002106028323709545079435139527630088896263980093447057438037303863740262725697284898111126407123783969230143060716419599098829901197193232233096966509020870686321043834611322464722590265515344909169260690701866393373032208954733915073947498725208407543999515754999203008922620400799834391183280272093057783225636466349872418556749529406150001070756906004276376354814668410885184963829415364350863063587667273565778917333129992733146368283289020691375923633443452295244727686581488431394265306426302068659283627205133808915772550747825239064713515725076112322969356737643776305698132809341664421090923099088339037481983731133755629933852653882697053544037993529744083275976174434623599686304062139675923374433177071517264832095732833402515157878466229648812833485088788550386899679851632820651323174269092092280971599431684543668702643059407226174731745769676495207722933325658400360862224094017934849514100203527941518590998978425268685630555299195140026662744436236292857613268986530445298258569517833178524059250693403193813135548713630322463411804603211532026748821063892279059900190294643227280814594731019478923631617735265422995633114512641315046189433793366188744344755449943702163083578263197752230144653431691545562261173016092519357323870251884744411837246561177502356687744139995636163873592943899506601369340272082055815593720362472283149230030020562874197051425759819538797006728984868333614480435949689805396303326931574206669912941533595481764494533966959851177741625611633193837659666085822690022770795111955780465190646614143251446093053683685226456119788380350039281355905193290640520459789467593470125118806914948594900294180963903771811556620519973121246052964077770779874031956056853598510034774406088242905706520065919657324611089730162951520907298875909920899364778074249153792180633698637459408859841682279293058491036839184541823750261531956163655499410282031984705677052160531674398454847169786143341284856468504357727074316035567044458174173456947795064588974099613983991483782664894157679885359063458205879191709016599929402048003496062567073992444565653640626669673307151650920680750247855285952529177564284341090130059680948753324506442337004548816902389828822140287255242939774310237230364372240809683017269771493560006865718946661606870032406040380438317661717829820619350988681142756065796341577920542656120720744955238737438695390142066211247802735409648132054157210564699795783810250954652301096668789831952833481400292668910267890855914629751878921417559768205536629672399497847603895529846135774017487347772143673522130063658153083290045098421540026475945119267811290377714615329784969071008067977243418763199362954507384402917960083173161199643741990061769130719640693647044098342768376498870072810779497920208114276782039332085145650574293981346941385735522585073931409588400896302213881798915015856143367047342483878389438990399469287007285400166969796075379215614657083212855576823117827566064719723110376101816780807045844105716892122099539035691186416359521663385453465093441301589360012253409593925686281454475738592994244420950671339462268854799710180963332595415227338484758650673421445251786443651338126848605534165320782956161692203646316254483091793610229645893590000192338359783894856715520058468723645721350458925544807797759170567318314654427091720928022800015958982673223329313455626539516812367497793718342925965384841248476814274360293667663839030449868620707069701045795905364074011620135822009085117117706511478236258887008855577876206987048887534430648715085583269026643495648052690135275598541352361553024163859123069806575117313521691446430053818339069979597381866459854019469807073455840651447980168467094661856701855297234969998478383321996853126248196557801461829153933687507723034830473746491533382687060573433724276314441648302929305449842545072231408989516308754770065616106376372689915090158248572630933753662302063891677290990688649204496004946973151447232732863995769920344191684296545636079619451648983560112764819544792596532648352965153455544984535321451482796931636233384512352982485450624791736021476083441048058037992471252766869763185858858593053722227100236281332878767474454470990019869369867286336413481076571639330446649906666118998903790850164313939922830411607714038486258100601752687541384014467077952481628216608858093132944760499451001307087449110629195119831383077509783366688262866410035285694996054646263569899466382075031970673778402572481597427001562252054082671206597016277559334253956413462006370690056899867873051543700171891085832712179005306293743144792962114366976948262356784444175359005575707549073509269149158806411904557156970684410870465524717347374140298237281537873583509795802389280119525557422127066918279821352021691862494913513996307667701564449318995549032157573790124204365290080643851042504246975423455234524069148305026174329956868892603317312866580556806939719306439504070320486361810898722882051749878246181644087873303481886121713316781083142876488325057476798509666705685635296132510315255162441157904105741090477097326391720603558541304719772236401385721879374748059478835620695693710614764046433032633164499101385622831678327125063503474661242984277453019619513976890684027730985600409612243856195438645189001674272931981773569754290950679473304149494112941945769437569222239570330905868395822126705899125970230619342748424452919340511945813699292600043720410325004533405232849722046532503615792707962110063616542578446474126994519649351306641705316597139251016547104887794295669844130722610728538632403407428787606538490442053625355346145815563728829097253659093440444370629161678624299695328878477599005906398217009213126619688221969089534324327426814007627625030028005116104574618329490671042566373358986977102601258767659018111767999007707927716018998833174498486039391447067604046764673560735016700677773689034735154134220930159279022007733152801032277636093342529977005225504372107918522979035858106116522253909125940820207957901945219502230660146934937694155373276461190110773097074277235680649679032366455474723344998191789098366784322194838376214188568712701216488578167050945281571934856585726152778304150698756980254551961343775328991218100935451892563128332575127981110901537598187880704731149400939994186431129534149428780655516550812614405538334476670770738306917018392189724259869700397405664341163304153843800889844821398058961731982337912650035922380282262222090162308335956594245669627002299076766331331052625192412380958909655072808345490353962328943517502771841415913257907314985897273832667240268971861094573886484328116034299036772354032698636556320322549880094664578173634124035807915074244094849790705817312306424325215582983346069824869753839812835514749719461804837433561780090128045170451585319852909569978976892009971031661881831826597246225795829847263568418451271139503318699592404343140631011569486505113996606888545261105306703506307792312673259107888950335388326237913174414388664885066712381297490021305783089765749621833875046479454282683355193077745536040551855822071676104826862802019208665530591789763382269222935921151552764237171320398445333158558084564040660809918256418040848313998754529658251474451914298986089945360879761367420386571772635791824905199121945729246976015635270975953242591556395961641900795280606754087358602371728476084794024812637783289620906166966481639014846231381449146051517277593275223996709820403540497599165770134350040649954776032254990427945433821606873982580924926304550755993461961168752921817811721572723365712847277156541087897791045583260574974457314449253166158961854169735912845946290776115448667386363443644447728222195717055944242143558949742967619439669638912451299134233490266479036492691183528385971850426010539517636669436783898180298194715360575828441596603425126947608757941980495762044782601654592750541757644704069142584937837987248244965716157632257962649366685171462032375687733397439025063502024316994517544650142917083455465629474431111039355999505871477036204441254131561934764112859740864390898293920423974641755725717784254049348051875505115795534425038203300285448796096701391608648809831720976908493509067883967661124156032948633093339821456671087916163055489829525515054551290647754283946288778911793416722864908836635706741561250176193404507177374393790744102551150478009567370721741623619761445026960135173218760277887636062737123307523119049161586048264299236747845836209102879680588236518464677794797104087302122132254444767108958018621608011827507629493931772525944240509016335828874406446413573590517178768154500114745327948060558592121770148322756362613938004861770601727647885828523919928925584599706834154133869868900363490423088555755304712956322265983035590580872538730265593056926021982084017225152971996703761391731728859170173496971312934166089354048580272702892908548725006478261171715012271255210111176006724933837438273506845204322467706602976280758045895500530713640952214174740684128864081672303854158611516873302117425154170834475658727437269350322953447713197250882847088670671681818090631234490078592794457716308666394727867819563626460078455245967974864414747975494820680596617937561213615941422263158054858213463019516968284899704225739923988399159452448724862565203766992945134347665325737119903749557724810130985014790840113635267720451206921180865410346581402128633110754231560361652122875892024414922727533567517097593404448921098517511126068001981181566407784620671131882675500470259931307720364904823922972843891456749701073553818750488188785433675454223272151134502041167944488117270348478819694680797571006652425204913448771602862878454596163394852999724430876787873883384505308778706214994211702347578445259838189519285817252730079111665077319192162557638413960421298426944832725056921248892212431189175856129679044914507049304953151114051116474382415341636769634038676668072564643725612943169006824290557497045379507884696872939153748821998871307732167879061299302037588019574917042029266707023008120013070434810385410277569091340068278694005357931074020201335795816742016070134119083622356626405521332848387376318757490993491796287469943705094228715436801358092865537686743103405965134244867405897416864421346746324248265789565618448424789762056607764363148286462926280139875293079769203590381494562172155418070197667796216515076213142792126347843365769524720572587396666086492077528187160057727214559817137871363514378970502157342594950492296212434607786832333056172576782411923597170482336175716351151924205508809518082590831013551825807733734846212817834047132562677720107226130074091879879878162641565972471932782658439009145722760644245095207088609663821863841115821062601971185725659300999991075954256104553417737303601737738426979120294281033935631868598170560793720959236590438802957120598610970178730105642389303284275134714006874356034463246205821970279182176480937090380785900420037113406452573507281582547776558122017642797652839434527893713794261895231811797514506561181774912430271942619921759149540728006517427417337896164822213679827946511570417076696139737824117494473506664192250248489471025887520997250087205594901566138794162317021762568519200806616801142342033629093884388026590077315697136767394399130513291686745165467763919201422009648167557525456375773555219478072198102404588795261247619991029994853984267609467101786630238213830039213538184284752299030752859656510765378056380276433765002748974741164856690647824018020772621485446839771124605587160515105274676023105773047283679715123451898642507913733002717625910093541160815869003685139439150715272992438447137337578822834137034197646444874675702942517532425039028157162855855003209947804769255148033796234944566837699291722621040056157306976845484939220870535499349974588653003949036328975739322409938074953811019558811883268108051952128595033068666172015843503366693959795447237598959215783912132659137132818218226132722349135831033897782812550760412761471043576748208257250909996810400574447607789771879047016985006503316970197257387275520411123993104539410212485269086541626155882941492163938502514120472003568621082678651924543008249503092781579789917289860409470699880516519515813128483519277627034287538224330101588504317649494722353640155866647673124322676542704159209658010139954898767086162824238008143966056216965752743297888892520236595258065508605464976485179981244406365123134729253565391704346970956221727247621028326321957841504608464763673552287081798525997821867145152356160823264462596500194367614482395702734266950252675422976724984686118723865333245749065137582178664799621166103430833216677261108561879963808820063344315536867880919860670759762094946240677006420604185214909635204376907881278122411214526352328058272284299600927286215564884395425265118162125932469991861988692421872519565818679366802463980038303245868860826667819714555626684591217060319594409754889592950120088491937697777761109428097950216926840634436472811938406795466794786679327394829053074291883973770919356776945933308037457139897785644612823185514030412418508524675663615037824943144675967247198319903326843059341825611716314699944730592590997075193151287531194664645773941121679746034302242753995984794465918460084621012778045653290188887317271837209685063516776332877656335335786544375788513321665722349856596623466676623938117703878253017861438444402171607772961481159928942619791133809852199059839992187208094782844119171825155605799360091035629754150682484290159416952015546178622659909126925797003711890548985373083964236445422868906539203787498234982198837420245524640190200651296784979084594111722035274288648914790676847785769309646704279869804622756910096581063764817023427321169762371442108539122540541778472898933706227206060052065142194747884801772344314269424756061857250279378456059889293985933435938351948333077141611129048161881230043234070525745725524722796121964111286613930567522517505408469334505199284732879120645229150594173128534025424992475249230897735769216899166304841197104071508493092047436626975238667136216193465801273444911267531289096889997988425663119796113564687505479368049079332293849098439485511624566712968880565417885281158862907173959351813113921201163383073892987576536381599771727226126006396311290342432571416480556933461042187999285565633065012920568415545376814392348241104100487146058334174476038161142631864851068110058052640485187899170252240003759970126700134472827565904283554127548985574490171447647616170430622921256863597820003875334222391299214488058600847728712213822780064963832155951575635924733333930889529477555354074683229396108880385367635301170424603948220017171113146461165182275071978944976311019600675001035857271348219582462062784704982551320126317507704122393788481603122517274409898159635321669958045635178606828923619827387768760029772639970919869125992069955966158928295113798651315329410513516531140423132962186950335832397983677205254369154639613434853594736909062538743606916216129079954837006498687559235117566012946597865826985600750674619948727372275983010180677213702823803852905593246467832339623448277895432850533165031638859798064067885885437014742534447574378770138570847734308261565876225158838582599254142789667914229010702723577111589123342065105664961536029928000314143909786836709890789077208122452830561268558949783844822457965020085479379532037666720452431671896740076363444870059012237753906410682870373568074515960691574567736067159126167969563047922239826192397169720920189907151296433280950719194952154938252918725629865707955926749533740569773831774834800433097965774418396523679155719254439153783123090896984306565812086864033068877196615262365900197036727426393196169915479902456646190750819264425574028098549030283599216476755393961242646821886360352954488008182709329471192691766602603940114160602238849094087053136308927104425794392064690388046767251172589241508514183972836584206304916431646242371108791812424519512743001828272725176067982127635396400432803212817462054196461052647799455260517735927191329280463708848065839541963764875642154565697351540476536270928947351513019570367637803424537964519527826830819421053360600618974777173186644039546609842359950213963868135759486492018536848568847373474362470846903007947346220302878855641742189691978064900533223231362612569957067695461869425981507946805621906717020523833399674651967047441846020855014210529434587772241920402031699841895551341840146416883484991274514582688328616509546014667972032794767720942931184065907529149562334319704668616591571970060724733892705905679479977316468487633417178733017385735526092975140191944760030639807364071714142454581614290316708686154184366174298455576741577984074247861697823219454130833026925729660112243666598877917336103773326308566102313765026778098915723211167006654115882035542361864227477049185050197811395788369858634583240591086242861848094776707013404785168859683877216127727953504694503138154642777136102731447212552096175148895340377271186481527539923768798203098120486407588993643668095688020236460300884023717168578712030334796184268512603539918593799788513153883173554854021327768649736268515839344100537757709923617576476060650073738563256882685235422529611831981660805500693160264065301911818979402199899602727251821883849216465707266948664088172944887946140709075729255721310909997546678367445741921577027912744422841019203250323557714289535851006290039651432381071308045170101336838423860404799565587885390706896928368764981336276328048915283043606992563709530493844852581737476882870440898507415547383754495519316839438482070146954979584437878389703861490438267132632425253419562191236503781938245871751957641854432711876598899784064730761675151012773186971861190043742765244902043481220699867048891651047440443918363940011080414820348763303710319469016081975976565853256431748865288596838693555529132648088927977244390842113367031387206922614947604355250366025982909565388591297800800016882968278389618521726336019833502883746259606213379872309481604632996607155786628257737507744424839253144096069957893716060618812955113334003064671411341344765285975112129332753027199216377232263300335491164532452260910752534096100544634193583341404849644053866851938039963342401939082565752762792819016468693375823445145073894471054958938506913810236979047716892182754561469807826413638541727155480115734306873447928967259571876422500057413803324383924590082590489550200467195318928385460955791910413079662506728564126463073408436429579419453656121378820789404789532581064511060280021775006518381583756454563865824387509022802324175677450228031724524074855457763302683922445573922904633492588416983272586041518873286013174648825399524381608248686125207501066538023195885096424189627976557991284643229862358636216195263352152398767266079543949581828530531717507740834013458065132891590120681046768015323759987285413694720828759630270289882437020549273496988426404174764397347011353266496468206116136355995035558722247202567361710472742032408065218065456010688674069155242377616140904936775186944660443704315215561287021340937558197302577012736788249279420702231757293394342639264130380565167707737159902636030066005416330292115639846417691578013859745874184015560381362118108761993913015994392636951908465810478898786788450587376830659827286749664858675122158996827634958639929878881834299386031647689531045733508318567717909329388924901422110871965089227101832164624161992361204180216752165724410617490730113933223443592286586909272583023472912581665859509893103340960408908646097898693747683363609636563168709900325144987800228179859407995696879719864591872290864626151265042201122104822664817460041502272214577803574129545758059291643105152703149656961599837308518433753018816763784627264948852556788756988068695555729912127239934776981244381641460224451838430099447633230521586607861633524899996479753512590905359547698922274793047455965824700625127200913300741064180221105056218185922947059232465260936617111981602434799606968313197353331536765977444048892048209324524756827368549521417428523944367764612308534498449511227814946107703433904532223447763958703515264487500395186169130303390570953796511702752328135718545252978351634875839630332898885267227575538998616223784715447465912704712804976524326210690543294769005967187848539632319101493007416050695210025799052173132458882321937371621724543392450931405953441648515411098783030217537068310028330064951368796259280430390829081559044819604411117046969116551149450785532660228137399548940760595425315465913643981607864488645114616515101950129474340458920907325996933186721775100984524543339289032547698831948909439906883278312531458738862056155418914406518699620846751207648466256225235697238760862234267764772095419930148548906381394634721811909896487786239911172466691501776269117469061013707417376968596951501162351047517915343138581861004207135088520410000381148786795899312403169852826755061569490401400353286663171915264541588732734422479317056352161415566536718856358917881664537273906732117496178191154543351615929554397416374936331478327848983943502431657811321369803313229577849040761920638430087248573537675231010651253391766565530747972143608353791062615599787113681688206056406771343249620424037202179576127785418009859420645786296500707000792790821259603071144808948483386708436446046562532187111430215020794775333115883094195941489434282993738013244185961054857733550632350360491513757467774631726285667130301506224247560714927518875987424538334223213005047839653574354510145809254790581577473300068572840908948174773363805211079704734735631479449918043059308570017833165132692831198919540844776309196917522551442349141369776226112122451068554211932977521783558303674644696399760025077309149530662293898642552757716143806647956337133835860609521068381830676880843407387782325797993258458667011394982225180774418303554444730540712899719258639767948012506606660326753530205968868989612187529990351861779931984756109048082205471458159413069391999821187377100192644499023345166097162469962436765812183767201571442392955588243561795961878884198929620488502734418248920391102875013418195445321864316997653657240279314853901090345265468502364560829812568225899148003952991683686934945753521824105675888231557695605906801693202625943674030569305247649113592023394246343634504146971767618275079821622351572906963622159831419293609274826766749387370344845819286723772722996957873039663917793234505568109466814060839646546713348084577415679908172649102397500810803778353963881346668414354714554145915268870347493875587117298496258899618579807599892756089895888217809718284222645327363748666498434490584421030952743692874080692352610232492710157178948817865375049010848775308717660966941672389444363812598099770906026687265576459944249486027758928453407055829661899653949150981176202203166947158337521643288982180730778377955538674004012875334061189129832679120891849336902564281854419297622241402976135154781242782403016004589070951504715157034487052386564220505073436600721806538968182222692011573693570975027347363229002792188334954647687680842859136251083806463403640853663325673749824301109752572723098509192569032763066653039367622881132633237897306914439204409900928697123502922860597955396914805759673626927709532960842013704886524477463740182001990542118029492363120739182809018374638438150606310241421675384720811657609281505135620778854142995614690233742757170929620535665048565912113021816362583095138959344576779789653094359291672496507642794828569339313537611003829386560686617148754213288434508336428595832264170501840837398374379905683956041749300006809143015491563581438096202508784410732268932063125602604008124866704478404313622061687550504171221618489947615098012992317514448943273546355104606665495214217205612727423175425689694145974606575192310463148815738421792172104905742769711359125852828894167151532379814177679575140455511256310042504408708448410669209558863011677318209461382379666317984490590948511990128841805488950665640447982013549962815319275341854407152849178550383489878178696755052217690499103820061605844624346393934291016359835675784430296545413604172378319966206520814825877491220248235438330600594319940601543814127165068731435630938340385194806521993568364244933586498776168686088777342362229015207743546354040074285155411515919032718695716525668363254543820249606491317663398693400824633246093804584210849206197222361719515072752384495171873844193646176622377682350771457323635061974829846052968266239778576665211375583219792117010126571870292251924971927537293456532922018156874138519542020499192571586864325021386935774858952332599583235604702872828427704092548998223317248364307990298663124240438386693819148098622415341139213724291760924016852327638295075955149128265173738769483835528244545495625973737236101980919637038162612979476522249925319683352926208023205742202337418348676186256619667784854366497907967341495999485200404466849224665667154021162834455197819793310355255605695761525273233021962427981404842354116435394546772264356050736476420610026519053101894679930187672867890386628864537313419772215681932753353619200566478396127631710538051591461074300498129818115562791811511205161203675287393950321790678678490113214391859636946649556617195333718515902539584917552142122974096924634231867505812426680675918219382271170409754884616935553669495418711731198582343451266679430180308625514068969807385176565099797173097434276169215513222385970411243091575304567020911749994390156555383890085504003808136880315137772781950401861771328283293484423473257165993744423164443744523137524198460377416807849769234456992108498360699142366270489693806028004911134472594161110886609433749224180235573066954007150037158489479988750670632811580301246063138641574557230411523670056699008755270207197174706134895059781185187458951282825397158649715162332037363939810013398717068999001921935824400388627977087228201221911066027510078566290902773378031103102172904847599344042555542481131640578249596223450257494555185324903132334024633741618125237559629062723169726710192851444569323575068704220718341598668798842901561155068332160695171311808036091886056059477256957281455595455484148241387952569932454881474549517024446115730323520899305000468737721909096702892848912444326088091831211278530504902671011323490016588588191888204795087521760038808036867741201670476858182698599440207488004362405960286248564637898201708379976114195477292219970260759755069501928313533190104217191433127365077211379424342923103236458328357859623945596046089483617438383957496149385203321615728273944300279082983922010917329926589686540296045259605388677515509787553552235811092604146793969819047406702971566306308851907074485359093768469593848862427672785938718744301590018397475845224153011150389897443153856375246540514989494057781473398058284247101670355773863414717280482248366493796971569850853502347231813012270688035514091892066328262546482217819338568717316508542204409313756792792933236312855527784684885032963294813787701980362672577524457314947509423763838008794181353933594274095252853776372484221704288163183151555147260233808802839341275071014591885767989019341931750868970261133075112311249525419633555578105185710985768256333373692542844963370033533052961723914147146312002282489637497139132162383140029134155529521688465182015176450091874023165524275817336844952455785249314264371339909878715558553338991119328871956791681661420889647938634651569076050985634197914469031678576249691372870871811727700419842357693762145119439288499122217238163543321096280488216019985954192591930366390866329264777207475739928795778762349288577730852149195324298340858653338618794632786724180500971211883326248340111852259930533794270809044493645961997848272833380170190324938973898379070685373006718813963381935648514661260390498847888488986231583214158411758742149733816569429467602418798321253425542013291777514067021263329529523535498698556653738972799593689318556264333013168183103048029274327480002085314217180104843950216800653126003523141868977569687560265419534263101044764486912369763144071609866181101034188594249705448649869932226806164504742636775626578197127322617186358273046980935308760364304905476815631567610020608078520845144841894004835379745979468575768184263375918520107874248120918201571810903127281998395485217956557988942849676242943813041737669641887825497654600205501199934803138679783120621662379502660635035089544003093437188741629020630488615854441144515628655837200141303249938079918684090148978925355788054800092043087685031570051441272811877398376801169291486486109643764787367278986055897819839349640677778100151699228044945225355758899029583011236744329550270138428403449407849713018795320378598690769163865459206536185834678456547902518976219805954396825898766922453640661064148551930845780943493565996213769081786090982574976051748826712760920765491208557211601043431530689184248230772098497624780480640280169026737958906336853027651622930705334313805323006281877285391265625266936776143765019155885529574039993809184815276659334314653721182270190693047215225845197528541102862671903867546986514412937720672373617624364126466703035501027895305333873601821554114899648676369255249471378402446344576039759845088360044679618581412085106389004154297089519134538065032883969686907419130835659078433135456704880999640279710706324518317121770877994629508917316629757270814215297046489789877248272403531015265478022189933470802530776517199258946550699506289360839370930984288823485230359302493402813339365828859859593222419527485415575030195164717181464818031070353294725750161621792544749891850897672066207568299321790328516295550096728437559565923839654729777245447345083960699126290650614675811600016605815269385534997903569831427089192125189610853700558570597488378626210280861041598413210287696536888897296505433754199176871807977014958271356394967619814740798374942502054966161709338183607080120722682393718735293652313859110649547396730871558777507854658359078787859760389174556410431159431161662126794426952575588699267118826132359523264105816701784459987194805597112564194006342781149568948839264865903752150735994788807218849452126274326225928086754703241259276064219824232197944940262052520109314402998445339827105936903686806736196028703292822977028105901881491929023349230704156644192876652027522572712860397052300948890979372532640526320902039998065273378311759222792945461609872475842706236589916293268030605364100428324924455769150118938289742013232415946464054405530782367304562790481090758365790497572464981431523856714587602729308793187520629629593422977654337470644088387675514307176169391513766423664597610133842717614565394264359890631475789595803044973906220480255965440242572352970399251742439827267492842820197290416741733850694285103579707206413162927768060313786510238575532963753833902359398598360581451855814621248528611156593595911211103882918036087376830082936746046547494467848256244207830959073878127031219674513234072487161210406041797627410595452975454830799422654939839886978597167782924794685745321590285586735606004022500889762337137282780573682931285840548001880877249509924574894749125330832846707046568869533319774663573626580298624343210133487257918858124774601757028488687976100612021620612625857851250299577347149860919827393882885709411361117276571153043422831498713990575167007435448783957187710514145619631262788166471366169577275166322650955921102482859183308235024412135132626102140264905210345087492547825584682730911482153858493473760884792682925898924118312977709462529709037262778564812517624515008893124202349635660983960869701713268383664541153170725257159167380618220481854849022008625616745967651215880629115482902052017031447845521836819218361089900235468601346467054148126836579998840932949824944332815169300201020107260953284179475008970513179589253320259886755551380236498739442618437983238045620825700783446050087781228664707790364000054016685484917302039130538927957145410069692821776418277783499317939025125620516156453636709647600763500584885372436673652775254007440934058819800273843387116345114119546479130589549641719725466141057076159886352128482424702952139095949164733890481101932383961602779517672297540341112214559986222646108613723292301048659663953727116549873476936756512865093209229839734858131289588620732476607459744952437819570074521513994657918755999482093271070385031718723954160455549183865885125348462938545946949968458855952862283579838530916437345439286720033095121365449769942117434291922211512028144134141788150610084139333016540431611084875848360794782592653127852022055437264511120817999057347831153672003985325166134880261082462349645951791255239384602210893579327041838352665847966662398228992106438055286892939532308959794978745471867677391856941613126125813625421495801127767110544664800591195820129987664281970609336740875605500601157605696145351158507197290282727019763246196173647872923023729078125707952737742810840192112441030281945186258976023029362302794227441094615945578815724006625645108152074337155655433337039618707281383384225499843833341243591779774827721247107670851452814572425945169805107879225641942373863780311016613036743256596298267200555333727067584645076138711829935527049435011265527906700457492407161172574477329721319814566472141753009959913992812441233476163836470476713718218175354478034801917781517922796901170426224569260910248246905370527345074260991030682348006792625219907519029883657537154333965195643667412104343187622480168865542917241134778270381512554283713789115347355706933127076676672113956246572257017829895870755194271820327374256777955770798436203849227216749417731769456753106538690590232523150976482358539133010907862575471588358844064690770800720934044098950337129455497841573277144307995557349284863738948436508641325548807508413092215266070081889352946757721799505616730024232540369398772250516760107380047277590147244168978612763818547605328623939647802433523740405480198975461090979208248205652985410887283387409001041223548373941083157236406314736191147835461820817066540288157420411262561932049146430118278220373168171461408527855016480962398170785401453722067002074298749335497425604574943511907706257603444574177093340350442050342093329573146103407428625632047647704284510975496958890356825584081381195445714563969715810026783949312739602254453462139602807179212516668366960543605457063783614823375012884912385615398923394735839757718872395523024418410122227316256124132231913155717388936420548149708369424959224746367363536312499906716312845509235454494904444181449528569177776130676922183470880165214422594791917029248292454731083956212394016995969139754233017580588002559992349235239473331096344472005863903894338254357873215040085448351574347255469467067400898529241212620663595526129543685567602555562931002248291451888943655299042644653775186327571616239489370047548547128169826549935030547383577988555389785054778943328128137046837183342821583845854992816874762525119757822164331607778663471731442802021054074548363191998140836690118046656102203415777888115498779399364340148963161510024109740232929245549924806892938630318283437065476191282465358212212262227363983440162239115895379674400372240523124167529027829496226177670345159609542212114037373646455431714104083063877999881366981506727355088613450297502892033433274860253570039752579883170363652324922952305332856111038324628095520079427265928831422192435223148266913547424146853502245380000900822531387444341211660470572875779806361551635196908435916755864918249935042665703712189281328953257342082004988779661959608896593343162078081200278370229820234316315343487893270593279306706256214628858713728825628861773976442515337245763473706970884966500499200702872141601416050708842508983658511607042093407605328864833846529758774505193420635281552066690175558525365134093993476509161229339390239300222105431915621454542182390842916480541944030844394859559579627243786972010229055137478217144123199564835026533877547053815278773233448704357164558321576146384656808295310475346110723830157697261931323788447586994459056264266460245537563469197398139010267917714334902351537934338977891711138720308965571178380434223953570372006888055601637966603181743565483905664929947044393464801091620181280593706108192459533955511843784183432879655015932153922470916094633195463014833755248895138557103234396878073779629181776367249784678040726497983330113313378190704256152819001942070950782674229345050039012469999213874404871075499637989593802296841907884778048334884036255736310156802041739441720381697392277968297988615126925765097196884280687664753760591327940320814278168607217225266553323222541684303960515039134620236289444464632153718501470697019099675281551378677532888951068071759426559832290022233349026546773002370488001835449686240049981683464040632370071314596733112974093858674858263029771110821833622551687546670117091596537796255887650943797889637824897960512567161863145213579384074993993081632564960443954492104915707578208041828811016723275438231842968310775582257079938525182291339854220230900462832181449916665608902000339156300629721147983507228100942737209703856258480485270617372670902993878104051952354369973395873598225920763966641286992007920158474478092472588810821315597992116905585689510430887909012377807499315862111071660407100919599162189298711110208125335884082954190861292497592194378417807021129719198203919491947234233697427905284585946433993166658616152372131941267615112807623539306192307365180625574362110516898212294221175310266486694403967820871202607918852054420728226504664300358931793716329754084273253352875234380531358419721722401841481742274814672865048712755669655554340343804418353234723935751225579168483587934783481353807715387908750879292017376737495393526987583756115868816864399456210081159769637228071339507326061409795925419072368782164792440672972360617231150677634538989214898130469396101448027197080717519572567644091889535413669705538079993306708236473843638596368235446133994771718349199741231633669231219688638847047899888023955806107072678758178396617640755400374871068578970731313249311386557012469268412288136447504490363050012108305951905604209621248313806959707332934075602490262584549706242324429743424130352249685079651310647700557241075712936859682427183182672925054164083514972485798917410703042369951811541789711280092146142594325885150069646078134319225739302773737629497934657997498518958165326343202831597027482464546291077549357685648222730468531177800375950992885714294557573429722596368413156034174532228748333715425871405784196342238269183050432534887643782080415593478671303462503795615183135185711548660213968602783808967185687454498336326392955234492652649721910426560202450313246770007676992177255700796049878937042280361166749953003881299831600256236923015750551678306463109533998626920327412477248859156132221854586330428533905863956658755773845750496008602280248475073278795062767258792305727207079460541141715706270185960459324983379227792018431622758543552589062610612588220298590391550671732904012308046630755678845794110871140961467619487778180548782929610118075435432190977745713023249877152154524730937970324281979190836627358631632590324974529043208585411490562045253477204447881839308564830432847163727391615134075929977798195048170525773740578722644539954374184085304462162735484688346656821126408254660586744282977161777213275172512779595462427100540339447507936816405415072877571044545165593882124475986954540986559814352503185916126017204376609771424901514898339163134886742919259402407051826936245614415709280033382646008211563599815672363396653533912238074186174484178645615397800377509337387011415407998619381949137732248325598751880847480215687039184084122631505021999940352600953318547328770435292489527872493850336125193779641121493252523725762259960833275761872648721227485591630884416034470127064079128338168274535061454140304463058940296709543904386652152992054763547668387911938240172108719988884509900498976128418519980091691757188377582989171558389225689492929661521406066630973344590417697024808409326579564064497359347586048899206459137852848673495602925195794731201991133696150286236754455558237636621972916711834575062622217567217299205142603957318356010908255113019255193257548640656860137709707514234636803459572752843899795005111340953897222370187146994555174653564887872048404728093568677846259589811660462426509807872847177998126763532917671273120316478917134205926650762939426329865588877925864643593054768940419775554446224510161417173711693491228025513390156927140472064502071378105344223531988339573302599884076748585635977401196372122402480351012265660966259796183939973770903500317237005761451735918798032109424720018498027411494091608542081030518849444714673731197240073161038670201475825947345739977004202039453443827230784335313576333956780723882033628681952223658714756844515763143521662630148135557163300012505455848041920682900126676812465596212674334539126632254732229336582560913279333200337873041913187819879888413495808069003769380828228049833997469282377252630539856260142461084827718622334704122697638805976667065046388628499852210358584959142549922656303395003815665257514068471414798068597345551541023147274661420081166955954864933051279811235752983706258282899126654402299865843529460544644515904162111591341000610602591634755166664281801194411420524253533677407131779209433727703888767534381148691159113085690693339880604682374869161623709149628792401932820791574680323710567416295705759162229544362321916137220481701487474921543432312082446814795829695373604036351912000509691374550415205049051457853551267433650704835236464699775094069772269943030917772873999748442365743176556890706094228859090912650151611404559548141513382382889632031232037090688592091774946332645188173001905756878560756892238781559655424282418934214606987043691518639661795592727657544661558808478131116150344088579143766119732740323716410249452666851884534317387169964704808251787809542227680266222514349651295056195970443884004640035479207008839012432460800291429372118287801012539670187106331987086048630606688802466068398058613302274669313978895780612533828494440326877278351940144447984974824454099297650806488841493241573124161393708590462334383922923542447337303763741152616097905721140481836616746145871857575985323921452745668721590975329312336663167118448495598757884508033126465008755761076441672287945047856124931655252025781908143751502068556635933860604490903733797423534742078032275619772525298886840830213651577325108140986959509954209965031144097492920995129355238367873895478250669263217676781081295327010995334320676863105971112777329360712548002022965191218170193006989984997143317274301003145379759020959341338707704086826727339707308784118961592418130032477176305314518189567636602130158967755082314947745287348132749847163453267045233631057385783280588821278243342314370287244940498635017535965307999435459828709328632543442456568335109562041498050940037316092599943556194669997172256529242992970343968137983768628990791250382537282240698207098214979423403134424269341170885764893499937914786643245945035093381001467985479149953850105125430334009758286121527661887370949849660301834040037597989156573128720194903668348260957854805577060541006041648270894097015837644957901113979959718571699669950987125256503292128978725052634001271078384205408589896390876936034315594697566152688237813194584002929204397911798735324740321346994885376472583143536019360319478339328769826908680218827296261613724238394460505047823490494923824548394629603477592201867356356076675937616353250765020493298399926366600545042251989454136082146441087479348125661404887288010029665137661342790396560940638185397303640141368766729746277693966364763806616968125890055578592865803701058251335691406905359325303479145963946583965359078892393004381336574119847034568414317517562740501567337337605529476751169203557002386617044650606762528290721778063471536790177358778343776322234656558515552106313960017188958375156973017683625539854379194559546668089149592387928629477879478993581308026063793515319429433925629722169848175975567353443053209917494658724003361566721013843579607834476780431035304291502674993260764136204016147706827732164521172635077165050922150139999303866792285190499352298138642718755577228994832397653558414066758887217281755718515896832717037774103707072187162568134678799601163864432909551268775286234341925297380174528701326173348510341609184169092264035487975316623234431312811799778086132907019153666878990691085068650883700367666252599463563975991351779940859527899489776096316345214204000117454333076234747862671218461836087806319862603320664100216983795418971758465767305890916681488166864106353210601434379140628376431278032239630947043111776233293040868645756475849006035534641543124766195823196191159324806445052495148031823592568435114005528053597193300645295101734832429700075903853165971021848978337429061496725516915887733331335452143305358289155837157252078791286804896901130783846199357935189648383544235634681744184212766560627683951504216923660692794938176549883231817005986386940708152110112002849332391229465784152137173172710709671944670655474570125302398286314112674769249222306517865925956932062141593491266269055799867673092403923199255255314684761336225717842505024578030287061797998917122155877375727472748793543128508878730489762851050320822946982270531380113350257806886432158854934215656364593987534723126015115987576916104275954953196615778012537595869057673018827315331055809186846020605325301900668611663651260882467691910934128669901347828708387612557166062942729382269488193476470265191724470942488088168450015259476671618632094412225018328493895647745638870005456873446253828661434002036533496562813082062936422294101778630104807042043519002288303950665044570648733422979674364211924974493444510674758822178384877103037885406831340632340104451605086161769604225251203331898524216082988320919961857380459050528223459628174548634158527352397310808829879114692297210568542585822650413450010169761537102318117425786537392780565633370366824834949362102283016509127037773449843383246184985711884390421620046589429703393843329037689702742882322948246192012147162611400371142730247424666109402163829318017248158565403777664294264594747317104517985274081533604374274500753620512339129507057926616533950101894742619989187512324222932310209808765214115574775545403342855962543877897028040667862729649984105142620864353250943195203876028639523984934566169179036302591897281124673886261283182771872308551879900516724218611529852813693986004333789147776033423478241301558433637714578563505312845881066606719486746698222945976889706300271008973859442869854925833205156108552630072553006089974283961991867033131226385733057073810287223904740777785468571596587367805447181251039803111252212961585968008099419524166824602801108898522136265511639787964799132684859241167470150575887830957878592655763470278937352270064105968579056952307214809465232934314227024596245016661321582709329834737848671785644256599432950727404449809864511103798185451862995339901960473708072204453746242854695311952839826390650118521920601160581306852901595447436236083229844523786543745237494272590438618334066335533000673438700281206155565609668310820039806908906482670307102841418891818184744747965258091575787482289806105311485497663447165064096877684282593674668393960527830841828594313782216367945035511808697623394199319351199078004896569285108048499379635874235546543754343756822432174222750404298426978273657863618564721358428148185349359662204010054937803014143447396967510650169219997722098029270669996522387492406606695510927875979443519551568512631231214379469319508042574340542642554027636528477875637543411628284643029753684029347517994029973860644734192987712898046597581632845703735526049868360003216718966280020993433567897545534908978789986728015050873934303436930244769866167053809460995789999726831455048612451840657275213811649477130094268452807251897892631291815512195764650431420736346712227180637263903048420865451146444848290338591568589568903077804821470888884188323452011924523161478308951143953525848576447167710478953277234974142265993665653176392048924232360203877072864329018671275311478654620775095098814007852955345076392839735484899008569046189701332277920372043079117632746068034123889046335919957161961930678197928081348708181750021201948310093896320933072539437340906226890381226769662206941466380464077845371406438443524525575066580559578270226121085814930674116627444968557882844934356125509037336202604995838181460967182302411647281608920885178854400445092378890649439110360032820092608391556415855715111964613693290699360644275370040692880705300844158985403174921576259149872919297995819848872838356867387407466470561907512504142575862392548292040890831373397299005480465778297461859383328911445303367324907241015859668525401967464301969891879733020682671412309383962158306239872215460080071464084972183518232079478261606503413713641044304571532773749999370655858804300330653592711516868107585047387440584298557510717806284852564026755165084637742330523868552924476552195853600889015237006612382338348051766175179324675646909914983732529143002132153834542493112864027344398808582760995611257523990870375581312557077790779272876475091770192023020202580498187945927644112029494102170838591439660275870749906503481412786421725986255240161610155834451772737955889020342956563327915738818713165833688485671149050520975895862152784990760696974102868383126251945294676811195522950081677039307021511076958408084972915033054992983563908063388763136542914728612016125463993044412822890960433487213262595621814820911858452416369364854563431104591530300980688396503273339422949276561893261845955873800318315659470542374582921677332549020625567548403463377349832070068052341319866517368956379259444752991129561847808211598795951371074933480085856439768216669596068840928666072982537919111650790659641028896718903336956290139637263507983785928219543237376780185536690414524598902893008243244644878467475849305364684730744069828038170287469660865074986462780745474776261779056066863313423744278395798287492335814140687489118714848751585408075646942769972126626195728581783949421528641674380086040044680963292689166683650705419212524592390810960210224234874691211605502522374183682571908129418803935477332735811061895379734748637991940359997380121645965127535335160754320499327824865338303262594057385871313108829779570953312244756111180512608396344208427112168599506333674866471651334473202930312805480968061525153842825187282822329607726945794465032751527899066828209794302716381141149661006356887337951662920042912657250621705788388855793887163418571800374420688104359834712820151743314610777970881474995665777813414830034962033155522177726912900562573808120127879161303459121443350415301009644499667041167983812836428071868277516764981427616523198021335904604260943509121308541492939213567822476769169051959740956328387171551908075206295259768536608800179316464939715857138911674142795799900072118825407903042961613190589146855519395086583846410326211108419856549129674531221171051380621173510307213048460448754802121543296464845866707442423718821351306231394473516301402436670577087206193571700453125565816606674166929761609732840141352872712422588611043352781559833678840066404521684332869853130483550554628545773980856261030320834530486907577111891170421901248932004285439868328171660614067504194488099637108656592849271266551052761495209770799158682439521673310998091475605685424925634075438892788948245384719057629746218739459382345018870139671204575870063551172190714961495190524840415898111947495154497757181149511147942736471031527847759921745433806719229675307383781653230764223690817821401422100137610974243494665989197941292662608856253603427273040487790529821419257081792058545866003471883990937798985557503093933813183324847423424370374288186191010615038903305860666361590778977117640457795533255864023487115963725178931875376126517286032393093453162065502374822156054029997320277902985428279870261890637655875763064023699845490535046548172435993663419877543257714785223090061970839145668477158922224618705366927042777152846817390397685885944828164342845309638370192888670944365443280078825426846780566585537509446263300583041691666640858951666561914876104185848422525701777464699861593416628883498268438657458579298882504813301928681310584029975307839964757445757314374518804383245090006634377427649031604163053492023362919044151744019505747365035906208014617709011531923276062034761761110796727526635769060659855025037011670111910929132954968099421129337504715559198595823817623106903197511816423071523471393539003720505006875048886753417508724895628533279330401486724565410572054358320769020750604502525417332552827524780214052213233649029662778421308704038038139453759200440136580716465988198282008696210279388440771342672956760273660302424246386605830817159171603418280775542913276979950935054862844431057197477248085123228636343540729491560875283850023056841066083499251060742202603504857109219213894062889988991400453836610272674660962451073393393038848152107211505440413088534638476374960505345151665556936893940981875993171266818117368376154219462526768322258379621333852417821916911745427702823982736222978634307466842468809270807147509302220071954441069996270471558710594355128341659486683956085817705311856557306835242620889651765410228068719129098830750519162069062504421237330088311276628583529020079441343160859892594369041944571368333565855362218572231574332351956602420803231708722614088214043618607047761796663120816753490359155668929250960673461074665783825344520367390268153020834527219813214742925451532165483430112832858206607885196420002670473765563624314954316044315194085165765032221614468136012237506279283900660455776443041814228228684407499550333192736746555437194537721675349649406419887164759437769652381437108175766348326098377724009825749940213369633514001863875834019872717347459136994198079665559580867316674256137149534735069833671999015070758915870415661279310731539429511566196174902836801642188539578681139057997897523602477236041126118406065617688691372503064378326918462744659887258041916344924612668819928339308989509086827199225838252720105470964504535123400781457020702977746944620667063481267664309269880536886543481889582916219442321206847397435282985798095921229155299407973339683945350654271903208430438387509123686464067754511951598915238941666182956540394793246580172348972565313628483384241087692389261889872525267222488566275531682559398735427453469923141005110719699521947566916583143760507313324170719730008592988815979927001867262264802151943978011533431098684666392874643786984735387891849411329902330097901014826225749665988054468329921274308204230189206952678974874388092768111762595513433497351040844435092751314903505210607597984918658010047872830620532823631609857278845622873912038824684666911703147179485045531813846662227231567379263799147724574614068770185011331109520681767149119933762035868397784980347726713434920116870980446061953755461685481100137524432977238938555284255405350166100775849349240707850853043917113058032324108028488650688414454129783792967146197129596026113712416298414155722785128386527823192031270408869104169359381018005587280599519989496477348730115380649452198995067156762827518599831757513226387338681323642114226345435007188044322093351200924713466060888280698807509170702963925203689416636746136425768925737197814255919802545373108351429171246349131776808109696093111648124713735142775328128809265612827218072752544724639197459486247707742356798614823638722005838080947806487612372983545118979815507225367884106481789930025556055230297650258744298535051743334183630789758311947979047357637666324643269218270973388262527067701155180853145695103695699070592506975142796421491923414645578457495623759914791042188387608296466852290221018010858564445785065975533087314760694737954236011543578891614122206978508804809751589035682329023064427665611699813819584607429472112951223180165452620590126414134923989046432806195337306497049528139225113965988144265208962597638722992681705583542441637511653849440631994896503985071655934699643330529902286350036044805274527407887159226161428518752824241853580464158943914177952984156349284403966594986256547606026963287144927021615005070792064862429849947007086247901858072956442870097891638907362672348573501064428521007453591713560300278017281323478624196962002918823099360716775176542901837448858230963452711598914640066520770068161352015575450490350059696846145643834976569461577890114583458868276791666117673161666653479797134495566031211004209447690958499882565747532091353241110925232632815978639709854966324858079563332661537846994882954256597224481226996255829622394679118630895693249245953127510503732629044739598274690474205381630199867424905382731771820256012602323263251987039398318269840411449888404223331929925787651756031870664812327058027679042584728975541249702291145969690980666893907929659434872373570864886665849537054071136555825445830919028047859675561677410954172579453903821187037748197759819900819365631662179386876465525909713942960656496639118696858458971227073196960749281498460982092948630493706840325842450101333522337456251926926047244239198854862750334974845728089406339991083364963132490809693587289655443421967530604258407383238251583289639770721487066105835427374211696414587974991927476150247124396509735267041409662118631116803083734262795021623445902909647759389738094313811972209141888997047246429234076517111823037000918677430279168848811395982484603991968052319349034850191544557991179211175970023319763797060130305691790143027926407541412958008851809092871595549475838160836259623919754883981445596936583244023625829743619386324720190411398308373998034147510672467253632196259659331271704626028215888287751454670373757689341104679119439376924571777389202108895631436328021370446830107204349340924887190188999264929270664045455809669529554760434597547405285529947009047424449176574966565082031284177174443258544704540801663748140734535145150438654752724090007465224120959432602461048414043144261839368509294148336482331164174030870894584845393026896998506088360820588391147732593066435103898882873962221839458114918348852164524797826645578701986074620541409501559992018557522824921050523300056238150100659961701659022469006766145694946837946269565849625771351880468666165135654498607677509272727440246077872001933337026967265671890635724358929416641775385761712333205890697766778968384246931563270274688207105695959024693203470253592786468740378430527150451599775733304143071349209253300488010017657196042864801878929681568612138072317596116835096701091958377346589194066030667147918783738498886195601596709645717256969276843276390838354095974280623481990958888436189943224445207021321031844739425725248818966186424836695885558071827347172213165170630887186925120921780797027375218795441358121675410592034420305367839045846298832927605470330706183681064896368939402751734422110947904552792105648543710298008755743002835596810927664391148955842117209734792563460802627917888057845260237676176200446490295891853249795156900342626973705323329023480051949717351974475603938091044279138441807022824147936539043896578686242782462288376460417825696746215682880517070826886551364490564555159390344774873566107072176164965245948148355146081169166177254741017921351624483268743557258122977676957007321496557051551115157349893044228589941138614293148004028131672474206961685812184637583370682373280468618583814647267792653636634507171767483210365760044968998726694911697169483081390267852667241396556094730152292581399099240144564616074174272081177769815914891998650828165137294349934724414691303002303234318787297030030769608000855961255889147791487384020952471968226214108091138728057922026297192739307509654325665397659636659604761114233171351795228916563803226374525156277508335450877495302967358002749377699990980546483321857918292006024095351474551284613396968309035433418037947985252484726231835393344236254083168381096206393425487212143219883220587316807843237096604208270380268258293566530370524113368929393138036576185992905287135050355311714251352453303310854452039993792973737183964328100018828305237559004768035212873095546720608794744067380424150145886642254966951107682011085733503855636839390171661340318626187438919228902311344838734027937330316553383114221479824433227184257274465175025625653300144179180136066184978209400203429684515212388999003445766952977086926265431961117513769080258666871096257559469517403362801360580158969418633757883552784375830683440977454372225957400346776146249036154435420993625847176065713576065009727579461781685001198566876168598843206383547353632504036458404654402800259607217297115299735071197236125699086891801675465100860101086591853855244877731294283202200120282251438464035699579717060101514940850813144494821039464750314524129211193509638503445019881691098774524827132580369433913150301179201673111985424665091777703912939805574458372055299139472616311623275277950665918761310358949677338441477533820525281063834981813331775440180637160414809304462723139909911723834624023265459132913586077798574337206488341005935320956553793281686248424308785942535889196384035345282297926927027482592448418895677497492235947463187833576909999652049325443814176022703216176943361741248216323366978334201447453489960001705529470869364598093642051930061892004517906625273450620247334527282651767776431669004210261291977437951717890806775612789847260957215038812091927954836777096594318608342481419729895534936444501180351437968580064766798339735872296764833159377608640943772383678386446337659921654548473985041350927270005101319231154777646678383556858436076478031255800482647394967488860918730771242128613084967311397110123172189698331016131865193795929662626968276242890565067433356627781656207165877954124291449245925825242799585508007821031976490840028620851050595101338621991444879946184118889954109421729770903459687637864104537889464496944932464655572276107186660753394959229565903252581775580590096202760671671664808062842670521990703726994723160623175755287974752607578497118125194295509616914482185594562335109454096987301177999111810124634536130398011496105377434621560491113178660442668821080548966798647617138163248663793120693544669411989645364729483980055872303054642386808072652846971633621137334661858246752436864907294332718404717939166562500391023746532586862282367059754677381167426376488193486009360274486561147355420196840693984401475733465257017662309826979358552243857538470659100766149619542664426544118850505773562591092481281883885239992752635958979432222051869793333760960690237710358058047380571501959502364694427997532976500721856146416815476678081981606894703377250444821804651805030529985309893366611772595322021668778101428427452035352105060374094882542352694661404308636402824317593455587474974441235362111793743471273949623804908272376652091128977946949766282318954855940833730503416616758576933670300625437432825937205922829763578524823045491052660450480067049302530145256044547034716016230488627606895557269992116305564640886159095135782652776821297327918300401023157674211666310148304708247866740376480208737724330500167202950978635366338503827967069943254351882395172708631914665262499937057760481574382499714939382600412549322853336050374168399096120858399723025558081938781409067650515678412487798757707614846727432544101489865645322784896813238008822750951236904332748317467272626933725917797114526548666523679142061266554210036889739345740656920799504529766256181796982417308894297177182534978913811080384803994674038086567252589104486104267466895813922607396332845312902962640653688698862133034015638026887422020555628644145712945147010528957468203594180580558311346365278358867009141868069402667180180026194012737622850723300809919912327336556667659173285831865260188575773755072848219911558872860506309944937696035299318891240695567550335492442843777065288801469388260476849825769841030264424047495916152889718180111927276921428528989933407988115325640623922946605795220799789450718522939369320168516308630000558315231269643450336621868745344232506891280075560421279244601084631665922862051642756929027026878364585891908970783180580790724125535609879020403589316920502413623091665881405152759050199365004075822416590865437796038449861246161962407357988157652191291261893715371722048110202370599840665906337319332113347690718713639149178861988757147789117752762133285374781350792076446097956594073786178227695609933191687921191267640380525794920701301784672875238491609945942490927274772355212385095494022066869564036520910968025936798717055536956262830806902561353250167249207337949841012768371731083999963738954596447928852637998887385031265814379989332504329268985007538542605001105956327870627419472119138666260848131610807221420109496194994911826981852731590765769243873987944017002160304066651555504264929949067506742390226201497480875943165683106729371317794945822891413997653736792058789876922865811404688446491991747396963052003797133410177822896281695536980969463999151787755369391436633939177011214476909600898401111158230641466232502315103009115784025663353693224114666241359552535430424907292929887996254757042764174157693513726909685374264931377795182039835915310640736796668732649643739397419028503871663286206746371694060314748406206158181483064977565812017289538445459521678364889573048799168871053879763663371204937728034877578158335911617948425029135680156493399349237909432317835748305072638235869290218011010357524647725508103373703493774042667312752298431835441187639382632849384554574323427864520852789440153233529897420131399754474895770312731464932638399034918936139013879269476931875148239071143646683151925834520289097130605203478578144417348140459760468772767462800799015574798654371346217494536091837809014777177782418505943497464377762683989753462859722809690171663840378449550948773911676175490454385535212858830433361783103115274378923870941750167020380328619254184829424003154234774799702569788209379070371657253916241726412477565095037201976097581468963885792749023299851344371716932745604539034747695581060436670803206191878788575070125667964891239729933579289707185390245778523621271924628802802159093109438336033505653964302198324022399416714356580760096245542574560988078372850657243416956124370195911742941557145224684093956089657678756275144924193551938433020557486684022322143181638687836332452642489271288609864065522839930593711419719913052221381409023291916909832700129479132482471436659854364525636999883261903207300315698205139553496025763990177881383770481068198711328948799685388534110768195374042081897196671903094856988937767447583966534558371792537516524467581619394808834155871036782488748764574301630668635199984431296667764904516702609714211926196601500386238557093683605593984257709132441937297220352109575505120353818626158155618235998389557405014183676495911276963459993178657336188664689983696531970667876281053683249813388860104576424941262091036819278374020015806676136985331440551869187782002083338859245665105736584377523543738832556055197930451092288691106420460879101191307710818820409889190959021352178687145619232466997095433585362126280474338278066563648907576463595410883661674380311450074825350045553899816432450279649509595438998087797626230939981063917093296455226673239142922211967891860942115242957390626710707965114433746306187020011654930448874439363184473399450436541246756889479078769407786456109139105349509455698503924850162833669294968722822003856616403076376742424996822268032230047822592860332586904460838451079128163651475119944076308545553758222671014188532980843399529829904547194565973547513800863842743069016789963202429285720945857778206386660104507404556036248213098757956802647872031766681344354660129647482657177872872512223292894413703086381182735483527860133427470311580886920037406985248439488331391246701883813600792188141828002197091706299715419474099251059175845571489508208597320350811904896466534409712967658234128596643449769274488111796313757605882900172434568714014210470472500459122107591778520580531188076395355295225142346850652515453893647735268781251690659864894642330797586681675698842711454371471807344423958360713604375462966609981609383965201323945193292928708829916115265813933973271983641653205551798786040591549094694488604521317518484870781974515409490753624884552683630229717318443815783211645848437804229640363888569834461707632333195436649921630338016966967461901386100025322871211963372809624367677523005516986912220451274575046002399516947096888502950399034097274390787848718799237683995238192416268797891873350426262646162573013963918350943153471064503318988680192165502820116990886229506724268238582489344663496969708641513935231115338829939747801074422971380271495238602144223873641414797641589420739197690030485362526918658712678548429226995736511128401979249034582171045294070584003235754085466720654520740268886028987177994840975792192231947112688101066135238588647898699092455324331563895755179045734016690777183025278732397162892405045246236230780117679960389510165093250334080553528572516998807006005439248584412781176532896272006288012851580539919806797180503115510637532069866882744232098115500724898533680615744802759705617704094883338158291123229296204574321953920254634177376192512167142509776305129343367670217369240265835648911193885134865125039080520746663497424714951737762260203444942235925687763910798165784414683683052917002733138527454789710119460917025190457784495435300310666529398631709639456116279789710294319289064926034672045219205476002437000336213427617079432598739280428469063677439620092712312694723498077831646458975297107619996289866682331271487905605735769822444145786406864028058745547955821234107598412178262479998604412523784183058096556169208706964922798845195037860254531807620149068901553840539472326938850809443681007032460112528351395487587199841156375255934288634699908991433359122825063053778601976585665708988489023848037142528232310428428154973539819947850889315986073223549502056948741966432212803654199296851346551706803418675424536798768392776386083147516120350957689068073048830538304308935605622150940670439093761203864576703434094048449104476198741238129541555745093030469953098267220710745888065794965419737428192099618404663848485486970430269954295132380518681288311771732613561895521668562428623246146460781196038918190354308563915622656321033617819212924019185746781983664097023992616823486221044110438536323720450478206116270769270105333224308142489592726494013791325584949401816431203567758997443465344396989445656321893494318331655873042743063808470483279584545385101475148266138838554919678647605903595623432937563092389528621404460397184864455094609272582071441465336362949411204508717555072208072217878513485923388122813053087513280039438134633956994248678467943757749713276033560074539254561445805742928400232714700291764778013888110062782399906668443830043821803108525870087962293226571525976293631370551489050117410205347431787823900059167210972415769837774308883487801355934578183444590875509253573107142243579279935096067528923637780981959595718445996579174485361638357086448652482624644232806396913319948655471012902919660923219190834497931704185377344427094211696023092196259793744017244651676078283697023797357452008169630526865699044634584922085911708325601338163800854678482828332157179133697136664411249643152480230359371668742190548998310095207171696868268694711033431104466420439643330875313014967517925392524554067845486994380106910374735577403296208739553504421041831669846931532999278557382225147004416749678241543209826341775361506618565698523111461300254147351085973216796396991667253042840828895354634938531089912344397797666801758577076901157989428036101103681402590928298150645122085806471392329474479952888325335920676694195232029818829348899194698828039098668530379777511528126678008659053702543473669609923301535318328466269699006092697845360530645315510273209325555705617404674151943254109218253945700034113590549750063734436095384458176039025611769959021014245960186704551755948780484372708383059166972890566951624859897636627925324594011699950587777704659825721887449468941922434511307950750061080598185360590183728734907334276172929801901255866146506910828433699079710765387553304711312495604249103893061591791673314534337892936539932569785119916335322451507519002446754315554787952143968725690304957506679004003899205456202115080152082186971266571571198290277196641040240304745954402278820277337536537491225448523548088044419618347008178094358392625955372468578457751721383002034639007330129425062853763389894188214244849174687999382174130910305743451313521633443045725187571548264230330494808358284880476790852016242757126089730468317891391099503793042923784491184474955993809057221873383883273195558498345959287670593983349892509622722015477220307136153051358241012354440407730079952292304759717918038308397713885037735335308774511973491501900119707069106964768552456383394206993214626412965129055486136092139603858515262396778728542289562947153291965074259957022329837751234706670706536496547223977668079495017689573857122973320631168347121659624997665523782070251874905536570910395819088179853568450712776489854000246605284713195509130848417056550112648873228731063919215997357684365862788986677001041914118293434595378812950101087921724848381905030556232994406474869539723281800086416001737820871118259599999947152763829629402796475519608958260267372822727113577895613225025517746636511443372907594568492242910669107405910605168164214952205704365257526375643957246769887805130442542518730806280907997443992286922370414549565140193132614822426152843312990144988256910082207233660494446471967035995070397305189002170023637177445791041542526565261680431761065217170440207593608743545781834156921312735035225759085415663649391362708088760382235654552430157783414094937913417629574964673217994609841352743740489299606908847557880653033696604153560592578217492243923649962100084982304359329500300239011927003898689342638022422218084386859056699281129572576720070972220673160451079644337383003495072596300585520508096157827173359362465863492845817556600444321913559537039897178209432989359409302024510701523595361615262138524951703365868250364477518088032542774471568814659752203765569000947138596713749707744080262104872136212388981305163859711892374519601034923764407009117750861042475929224022564513031587874610821991001366965630733873847455239827517433397389316920233374049877874492761766717132942041657561436076130953940482574541265337239961021793775619679631786752043350705718319857459298525079325537861900544341186227210779924938757303225814288038358572501829700975548126141915264093886509217244674407051176050423034928232402969463609783413452643186529630220712722305269606487535221091069502059952279025586087135907362515381825804571535878119458289949296104415306888034101832757045761100468842183798976273189747106146214687482138134945948861452736785315607347614699070797245018084856787656532477522268091103855805106006106640615979826638661045302039762010018721217132805538424887781178015801551063561997506303112396718279424967684294027583793818849757020431447905118967319359992443842887948922339906502157340214062847842722504665054477856825142078236323144038328304010673827087566309073108567911286654501403939914614622766209032609655216788720038433674100072136993057340595406874882108112224141649483308577767988187510915443736363982248264417784371757133722518101399234812321941750038402064302467195981893870711694391912549051991963516568830430487023664837546300742480303425260728004472840479566318088618122382918598780038395280191030109072179969076090605325527581847669408534197238464137541912745546124030434432200418229654540734161236492287770515287875025247776258926559103503682730167585335160426881974367679689165449827037435090783463124536074894677489456908484686795067554972535433907925195161264694265458360822536807363734562440324079080237592001920863252563805174434036437433215012268856555159106744007515743234493909714487000693304555468760141507106872794369502470691343100554953580650425642277384193119678807333097036236066200132840640728082208105047712900468902664780199495507512054603527448075175118019510083773478325785501372642652102999026907891940586184195261845299504354455144508077795034357125174330095202877431803021643572955861757755060325288771353500297318956508069794527299342277107727734218316850204557071674937290127540768365088709910121536311209691504748904507490267151647689371655268320860096595273609743126828768503252952758657159498101802291714992507457679210158995322435196884321199026278592012290079227055042669709573315577090305238621092990119837354044724571961418187730906287732539003773524572496838006572850177279848709050213613938355784887146503893616845719319939382998311812009600964589325216051126506763217795566614656559719179549933143841982908725042151550363059093244596414222602379401867086014684952389034007886758913942457871895238361887779858527189259659284661462377102683652590886142063220845076760886412138127627069115639991966973417680510578501992006497036823661392487739009766417737362918428812311998330140407975993582641923604628473410361560477337289509805940850643894975304578766573215168168243795121412270906957818828153593092817081935705001149010451970130481372910928511320839807077914908308422697341401167882933305347589723090707839450717012855615578234989418856436213752802472967115401452819327610040772372985819169972039228846540067248319803476872160511761631207410551903123190796391692334031944022639084628009116708192308997172710822624414085449972232351133840115883184750648973782769534196787487816088940208468782780382892708712653940392054722413473782445476038642767573839960014346797997369011236877023054438269413564272218625649729455593152743711416200096387745994591642845927430774616082400947075661628052911963517732301889554985472257740227168613698111973156861070388327269655998579798235098155185115864207249778214965910246851946316237380126015631600057874845639651206121781703929932247262375496233728569678643143202392301470896383594929995130104696010376064263344599994713258052436631900321226390260614934561037199671075329076555533929708478897748716054149552155927037553869952949740410025217441357213049242783965109420898605305447032042560208526499853199399419281930236349910184602998912363959210115253058574598250876592818326291146855499966713876093700117366222832825849525939412862438743261634352788656923186025120285417350128344861810714154346180247186659527802028728826859318175218284715415276599767355963289574284664316680014826426461526617817170557849128526379793489273036359351211209313293753711900473968764569709597035380163374494358644480878887853683131284799747026212577574927074721596613896379196989023652266694065612806950680158676213254755943593672457889843801497899856763657630479377103936448504688864860486994989747718644925857622367512629742254048319189008690555945581650124629036122115127663788432597145849034878709149311611134148576916221337668773180160512483659261076771528863532278453167526026639809635540949346316431229072240751387580948439503385994746982904448120205862198671730191354747481237718579808949888710906651198613547251907779770590324617304058142091677582497486885628902238046203549268617799235508571120479766038065406614831509758301847677328166787160099589634037685100419064488602580360526811043207796153152159064185547946894830238130079713678262389394909590909963215914746164119087851068529257356613573719472747867655496704411293722457918902562395066053733405349789415123060051163247978183571854448094856373450015305615047177625652499844498132747385596540840767514126511731547190833814559623225330683838176368866389051401948097372135375040927932104721579700223528706205006491838331042547391882637028122115231367370344802763326744165676807162300152748858462915116575460910052933095090786779591571843557079799145482653863940541726419722920759201272704428585422775481294582709689004357871838675289127804459285992235929771147210218582395904542746279079871516650665332263716642105396281747659783704049725601869691141816524970634484616820159662530425486203822371923430970547654110439917742340655586032780450547588117588499801415296935370813982766680429160465182933056687750455606679868426251873758123172945742641918017504417745455306222734000972371427727370946624684733499104115070772151526980899516766838256840296127965096005163856183353814339322864905325249127585025967660735813211318011536818849729065146254297845629716267355175052589569244564661002986046597765595933188983246681072079018756377785052551204818552643624846274593016812653319637937209405589032728297837731590314004968669930044348109418213331806661392669347193651641681356983683289497129524519932533525053274317289860811596188009255056216606282445880836001320276790161988147943413007014634400237578397924836104845884647696696218129084688350835423671036385625813968719329871889519298475608982577220648823680414794800107086728012201802206774113285216594349946591529436416385745236922956136614792488906699708273071148749373615238439676633578557295527352783421365070897086262214711889774971342113263946997129330932941282697736821073622657089414260462101450914965406414678496396130396046570644379012538816420675483361546593554338941364282784066816045468196033812267331777233389938904080140313192094513789770491947167471319952159812918657732271729762052900160818457900427419403087624055585434220509316990662324178398601197157809653580208800516882238778305761120315429886660036846263294786128147162760694573939133863031980474826165553576836643407171651649376107559701123378188763549060213899496430805192130229338812139655781705198813532629074021441993893519569809482915233987032181925229839391359751878110877744310657546656875240919665441340569367050572992909076138226847595667649126849271283801262480830027565464459759314272507311119536475832907379285623114702551578925466102476830150420577605125787037820342411464477249758030814783101237127600222596838729653987431215103541461455665107197504319895159963314974194702225722916511078893386399828779392243020285086495985295429952223145589776100434563263457820763182547929994431621967173162330251569249935520099997616808376118699323306685982068049457402005284173705671733581048734651300878360935730065214904686342951428281148346357112270353235794277025704657905120043076900215099530959748260130724608715780012749460238831288666842654539752107577069116945315908141840090831918536959454974810272798027320200868821294040421302222282449721395228258065623406055857746638089730598942067023990966375265982913249156780688081873496780557853927280371061568485218999424880025538349535121629796202850828247434041112030953972783764140789002504496080968383520660036035500402838344077228702009712546026113768299395203297362833926083116125472878981073571814687040406239040334255844102553169862411901499275917133937281620949503541370710132111950139629193639319548281785493586083451270136522963258131265558804447644503752904007668525244375811486923486716877637564938328945958911134579134372254848689863033779913318677433055548796493886097707216537210097328669008784818277823787507447419743331330593139983746109292647217073438762747570639028867490189317653179121664111839020195470327578792441912156472283758554848649501334221459188517160610312640543994238403776342123171981843033828778818933067976696923125805538999717722878317068676246804473139541514053783001711273409506102547204503959670588203740081551849940903826743792380270728977020821891846626250171384551700915535611314924546567901341637366953840270437579854885216001038901061300281089267811059406364353707094501480022997133365430115439698365656704928077632096718434023247883090306234965158259416536634315481692190053159306433486990371534821683308671254766139487346789116117203616620557098132625761496760288682130707413149211434295586087565152342116208391334711075325716169698018091856747066605018306745031719753900529205565070130607288057995552096198406530546216014717089901626844666042865802732265767569981413050173310332892924499656419466232403425955656195304259603637909037864615432126036554286018575275981342564853455232359065277216901886166777779957876304895409335760482651898388018546184569874994384558457740880170356461798476749437385575050950193186926576235685417614252763200538856625687468396168362753212277184546169664620864316721339482012135105425871556829592681456042950400114978256410848443712530693991213226803865516602222460946403543476705115523676530080939714042250809052912318183989768671797744491909228020330557829260077046744763987319808966430863859127009786555142833675270227914979774116859624649676224964292645970457628938929277816588954430146930579643217607154745904819304794970451174352500825766271703719260620077832500550146501497778263846955401307851301776416063429205995586802359741875390367360937898451767064273602641915272348668449133790796636980502931997046890745126798467128602468648627348086719102358617874933856982739640720153607302245932413623346559199858528018470647319401393654566856798673196401366846130771953564565741610288097540718504198314388153167706308084035824984121789430718471778455789150493383751020850210858372522955010918442769160612327669337172997053164051679653517436094549534133670182089925763828474956350905420707306921255455804919543463828046891983756355806852097428388265975906496156296221930118790975128878058780895013037009321753113925739411755801742251987431924689916065894867225040251836533765988576156998059450071092155540289378740412006360861542846834488360046716479445376381172208035071760351636941043145045497355778392703634699840599559008404503190679973499187503247580346750936451791293427312953932860182642482537293437337936908450477468782106763465027365484767676414041468455919470392372653032639999200515410924946185517067839311775262803662605269344808996972764039306683914755970115534185691716682901001686377804523303028564437300362139212170627121483758880794621917646471839672874635972275259838878138481949798599136909292442037719144604151574323200529604313563376046586158239960520348528566964602375640935578473990966542984825441459895184796180715161531352928773672267745573241489489695361077791155580014456535507218628269358971881232201618338350646727044550573987809794794770920316687699429923830510328530698430343428539534062018083434653782889134621569321633928830036567398906983731334451942534209163281855967399134522370790717920082296900849431123937021807561124703165620327933593583166084517909559505334647712957662167634556423603209285804006001553270303093548067513471274156587756558420627104822633686851295562431617321786515993728117580963163415049606469032320834599785743006553393136229389389708063131236815108974910360743264768299633042432901209574479231584359491971773626928250133370340853373571085767868986283636123918009330247249511716108496170850056150776212657344646245990986072581881521873300849950954447056781859233130306338999858336081854592185125118598976009663308738569036759243635242486701279180403897912403693717481887588811889094052978229893665893415358296869590558218187074829758698082957238793267620155271027912730335807221965403403033992761831388341386490020394178699397412488438046519299545333409076045270369434868741851787347790512891484946645584319994411971486339810262235254841292237491065508786955391160986800817079791279051146574142954935914734522177401340833791605192272584701387057801414518541064668632100025049418739976071376381589017657821138532314688894330584633521953712871080195247659261296402238755637846124999061976817874167700318835585777645413969263624686922991749770507153192962279822737220680530663493945061608231881458488424942442369299217403839913771167535280490653175563959693213746299597900655933319848972023668193100683991426326410597106627114124238321332870339559119082512944121280096533706956856883842906642152061775955986809581436290609011690347003221035272416693366594915418631966817663391000027285559170402250171064927129171313787223665236660016261708152245445614456577363672432063060864143759960118062860038698487515449638220747451692122343833653544278159413102126006755118673593760715127024646142656924104958350277403680786448839338185022463002377868272175556039410575151956922123943200648264691353347774086408148499168177335833210950262422541811289277767607029437904904332781726624328119984392126812497199349617957676584233454452026902907984154936080838522680286725313230911540482486105975614305658773225899669656365190581586379425314072266917028331038506773816872453731333011118125453605420069063783860709866108619329968322071955635087746035632905985148604561698215914980256106919137187457824827414201071273398125069085581287583672320690275427879392870463469390017769012256413507206132425967177278672255019108639247929196735252397449689241051289487568027730317633682396287399403373736329482226531492634415874701042416909263541157821732815646703394367035561844877505424468748145436577800303282440681566254087224574150239853519532139603819999595325804357506555031148445642375292467517921310457032239512495044947852517314729847869951763245666871428273264501595949317398269185807158468473904273075863650016607125804768379763809233596534001102328673329299400590818113727515469641640607952565179521345040139105739217596270621309172319224268267906240462864183479628208801647668211512519074119587871676974511421310543656239646354345528158773716243021454631244777660487212746495893391567838425523256530620703762526505568487892343214851544013879384115321036754473996845101401156210590519354560116116780389230547962126514588339033791397958532243676161374934102070454556209386484720971809237984545718899764195034562962574649205738502992283879480518285377697561666742138788088606223499570186445296437944973327273392762309740918654000117408887231549447667331723658254996614891521387326172545023451103474033871197992023783914571951052891490938926542749782478620573251681085963353639722128543734506391866032733475982981377391861688797393498060030940795295432535211863009157833335504266716169244408824019941296123708812178138601374267535374578718927649217078196728755269485772735682440421634591487025647148428824365666142292826870496072320264457445313289102059022222349824185493246354285916907597060213992791286808954520842742087588721763551005522972160028828300893399674003183768820843668782991142281510746498597189808750768643395784704116362313880395497296374403748529341091074808714027908345632683536373842009345851036412904943357579250668214082654334445114685160416935249210923054512979210978467991171962780438126460366738644936055435793642441149079665469798221277491356202438050214062035772660131776671444023601353132344202009851238910590104616588741621989627693426157363639151302472968323513513061854201704542434347069425006377948812160897137628103207525813119722977946886692362575257238170217818773083892173408579224265813563481506704299394361513209791059721881139128061608610847937112791760794977492382707628374013735248502640199380690375842277417974162189433967040345494013503283441900076216849343369752645247338554405054094188275659482566878678678614863923707417676583312958377608360600680417753844194267844385143241689779002390187625241670010435602358595695810694148097325931419198413636398801550955425425563481558167430872180741879649239231130120144128477429615542018337709660596002300831680255763296108383120267683696054071156599040284730963365971213869855201076661691287354066446815024241781260641431609209090394556783418888763102857286403591027798463729716648625124124451041974028557795829071998829888132211017832490431325938704390199047850581184966464264724709357095022503918565639804000811748364251014995343359696037879078246658099996978423912387078132052511069770681930006727404723397952523261842707487716886051863444135148514234798980713214329315804095114229161166292973213828740574327665306403172049322314481256765325210014112589440239805742931479537670139966100062429660668074547010343573853522498801759726554315378008225791330527906295327520014585801802922835998462807859370485185456011543391891742929158618722048745459512796658375577915033805532462132610140504195060768175409111648661951383699346611883418473556377860979142179165303880772805457543100169893439066677250715600892087935656403513849357085523417092015463011078640715681822938002829154505840469969218707544108935148297792894398181884993712951519006024741832735571479338686546907668579313664018357674742679698020123915186598907264378474023862376558669883433751806111656786004545291868947063620202590025098417470999749365483555707209894461073411034706580296167293958985234839300416210725280183938574033216763777256099787196072319492824116668781738565292412592659863768135968099506154167254664322092697095558967853535126978844264427749637934527257131436127123182829926176080858447333379708770108841581499642552542268602055642830365596850950354029557839218670243327555245373396460117256236611873203690628864490240172531346571518640199717898137042725660546721978814434778573596774822900320244100204359330770748963305910874419745291843030857008722404116897369632102368109014179689904254776481761236238361899821880849564004894921773477198886946229575688254542412718185726928616334149598186795032168763911561606553791556683396767051857964386845784105664521891712083754656672361142331915639590259727830988973301009710848348567659402444570926800105867372721153964070087432657242322910499076256282640260140388662347742263165828598706866358862583997749576070274163148112661014528563666849855395188823882156979554336013867163481325693419185334008348279297670745961207624938439754252419359126307987184443819852370333096450560199395738428869634909297570581069107474736422552560555869842628289336639297041755032383278248710454393647989976110247787910225952228793675950670721761036873807896004810573870011989630546457569935400562007330880023431670931164733734143321112590884426961889208018007610503904048361658872825408691123464235211041529311005917233479955282395650281900515801060375829483287852488976278114042314042046808609755095024234074159407642792338347093539819255327741405861981339997914795989470868853020897390560008025688388424009678426451882471163953820927057661038333841765945981589051309045318920984973595477632971943191946315754716065913751330672908050348000825280262187467761006511092275132394585916930315291535595181447161968120893388324437261716290883211043334721406706102396313100093919960866855220161968212622146445836680706602319180472582124292163713089313473060948840269449983448938826151833571825924604278674755286594936066324625334188465984103911485182938264398173370778987330810552177744785110098400506930728219773443479587483259013944173576374294780631320605444472058616172868240048289400495168806962556544198010178887646451908737477953281954029886106481512984958288894673743546078701766717788376290081787758804626651691860859110258616798897619685892827721982264576985488317090643334420247902715064708810481146854561263945735272039189412848287259098448473014444081805791286865234593450971878846558883997682224335595323020351575306041909129291284767137244935409921680803164251216756151786673671161524224761738752643428979133675192795104914417166557607758250050977837698689465993332129810669938376288141305046615434400994075872541831293459252921183918135974949319181247193605048019673885945990198629393239865499598044616402160760234259919607020023909465837302673682278079556970768845252838137621612553823912896453920617060747723228805747849838678956925523929793247273666888854349341213288475476943127186680109228171419568406099476247886160656183725617813149880721736508451389812190905840814681667977809728275235567300812617676808045376225101619857892127614898561764738330544014617777482766895993445987612120527492577981487465568906302502210082251012552008330279597943581986601269397169032287115706848799607652210691004952805848431309070416085510468799993323979499707856563151464551951955805808876499865918556165535340568270718996230545134328238871730753586011802002065097916586122861436023909914903763275520773443277257189974361468700439571994670397171807910112119720805001226123030162678024160695683678421297237838228915041269582148550632935210199977195708716519723804360920989566598000585567175389660290062099959384044774147680108351399294435315986111155005215846711818726981419531301614141107669940665422664946794099170127976416617735706844174592983133700326488871513207575449687409957305180510746977937142857390498648667262521515982480120632400491902882818104200227696010098075862704628358180769007040705421166174990898456045826341028298188144478447432178433133907678472100746283029440753640621728705321932531319374853065727169246431120589962486161019011511658785666241595806727331045586103154874011166465519203913698305110713811970481656385882654335450559061857876916365579665590764829702927364908884131392805579552283726083201640951152680287718250301463560751802452823082661525755165211529340187144616774561891019509914266644657971032878427893376704607572080352748317264200754850749173728937653336620266206094763988385563314070504470061042157675259588550031592436942535921094468119177810116753382009082234230517440557030129355444408187120665149791288102232286829246461290719775824434850951416638786487404226259935925724771549821946218072444036002724866034449248292533747739267203686933507225155539948147586825261447736973400880292180419989763641489802881662700344256118264306309331686783355200098084599479151517195039520785847060157584479272678444629578752729010486883129767665070812602365197817093010642978157308283898038935656802063278224006899706288948278857675921666851405582779153294210970477555737527427052553091259112381849537229337191084715257842235234697837151681223327818685175820887554541028153739160465038941981098631678626421045477747765782240988633161587239044310892653675793410637188942942737875450359521541877019606805412765021197015734281701819452889440264401082746540210939488280461111201681019552769564267104958889803632424140012766555866723657946933330141384713595007064720328109073739365712093776997227806262127384213606994195347117045424169793476224568515436907980889895540089817983957171617150982129275251160768609010934275409103584419197711840811011363266783848481541313485590564255413947421212532360304209955705271518775578730334006372812829938741635705905856276240822475282368498823307539525955814054356518714530502415998983981959168354971528547217649419087175767877294909850929377968050884667862991442266197434112856222424778087416278814078452953329181642954215149038610173774455361116194950316157495314055936137677318707577791902193983511371536671155685009408969345094223614505587480952195644952914348374527371906017069064675197063670829947519232393294262953259042483943928797368077977152949183661610201558345033893760402409375220094536316344542526736654384179138915690046257151814423156305204778676466061863011008802612914145521396969417440748910220217511293644503420943436340887117966204672106334936901845013149683673533523390555084601971074441113012140714414047090117115387202584683432246126557825279185196763338437772157842669233914721139301991141915199297068678918025833180959306861118884594018691363427812678811445027030571316488896314503831770785408757679545344887585689074885195976380019441697043784929316536181005537091604629186698276922385815767257190590113317561661120033713705622658971604266581006463891682125210479284777683518983100359893481027034750674144886068435724213142494372620086435685872833413569105843481041420559340308445773694367027148122044940217843406405925145268513684768254485992357197010469016543144355904484970674383979835625689732281152881412752407619595419952347824049089964729308352593275953011847593305735279042519457892202747081578132931997342478727530819837603316884091432478205650317828901197209219561351039784903064613674752858193958407690725013665070775478935406690080853241953310837127202212794196835394846979585957429944321195841376218653049376550343330471990674481120660331722862977466527277052939680820651775887751481590868304462577409106873215888143814740469671929464852656459290013855156477137365872893627211638292540048213186954061129250512663451747595979259555191412673318062255104579222339467764150564026954324922961227593429053327624962344027512112883706580961566614158532212031449920725365504833513932735297216053410457825183788853589011405276513713074084516996484132121190548820465755773695654224731883785337058963753519295342020558082958913141615201515234583461212720610998171148284456173337901708282062608742667760360377726682172131333282389945989415389561819761399398557623388945651444562750438519301213558709023215145791767960125190689215245604846531329037557220224586150806275339352573374820272545382558688242191561180976476229739122185646518832569622672831194725069574674747635066305231457647849526009403904809121328792097114626347249685494248383871533230709356622343940697094372743504964681509176293781026978524463750454316549644278373752542536452051302680816385259502344650014618892170231412603828140191106386958872829760135406322516921546318897692663350995589017618179381125496018649959576329174691196784667715171983720992316606010075413828087282364949187576670150821514234767234963010712289460322279862213386870429293737723220848854214758880678410991743713697774922898953222674427421351246800895336943128015892329440584107357195835973295009099061231202413825711275067983248307957955444691615774418328847578202148343237318001663179264672879563224290493173505406829904479919083492247896725856608821104011862153864878076954721202343625736939846268099385137744072224493248815335128220552887530967486940055526534281502943480974859933902981795887223112983592762913507399200558603546930240270324579643778811317396096481998735190618590271172490958369054831558121929965023818012311760419415448112112866869140204541895620528064440343625627911404333601971871712804920131789087332495370864932737111727484011822810654175366958527847339425686441556893969305659200653995419638496500634803160341146973069883706772830913679645383479603952772379804049295574017799642037992289670729692892363068041754718902780511878965159863475398191345770739178226999402395711800920872089083288246942507811538382549396662908898359248607201263036065965545776991832730734900437572948558086699669166479981181613746343387396768658459924576552133121013291191617804471918865778060776007121523033962145183001529539977418968833728010693087580234853042302377414671661940753231329678156712866994691633099676771101895029909192160130136553109523688950319259679427207109259885722916385251764405290156097575086342696171446062477152850452967312763803764817952554997547637815292221830862159020446070903920621595235703419989847223742101691613206646286208932413596116410948797892477067973941139002244834981383869085103932526851445895862692183804964772640460782103047933554259952527885375197635131208579206369018358351117557330404918952807768272459116251236235113926152868112223905485650196256081111942925924565911851484958433560040425917928034561950617439915637441036133144616847903134267454951457426099131306432982722000722553539911270214626524020889584751285817033654976948958498238450706119838111122185182220966818396629417285517756346982531205269420337335691699999250762962848032274592227884182032963476709550566403309380504953911439784835349965297049160527486760915417846659393290781419676291371687959394565247925429770092446337577138148156076419815168155976880276505701695341671232762830188963189449899573520347061472569833398140954684047429728791561433067822859952694836303927661205460137648939891098258374850339578280340872487108902103312832204934978024812095202035738968870463230402680648149324834099786266413558650871825761885507682200493496195693995949675004885448390478632022207299207697501916615412532983102596986957973376999212832579689811085942340440765230133201081790624763205467701838024614227580778288748268069165096806564390535370058748715238572405141693352850710289519694484728169354686983718294191344384864439775178233128811315668876690211753939324111849019033135484166259429515570574378232198883508375779900140137983153563338370957967147176861444617733045879538774565561294455814886712885837438860962612563276760032075489164371314660124519582650108098048286367565432383019276539366491760686090266929685011727188518919436029900167226798948235437751199545029328561992633758805580904421580655836992436229328753383268461987404807344350037811023158371839238557955717203574184897288730557987739961188162378224756391898667479652737171956555067970694429616221632752324850586312842719801665096883335359797249498214073027869863167758157325249412946684065860849828875348321606018189046605630653440699188914107526079252396569038096828749161079238637609228314314676733021737719771782605606236860367623848400125669812665168357845562066953098334168007657705418648413499079635518599716551364325095182281647130513956800277927522197428820468537944698050260281529621083732013110062759475416226851014928271143504512868191686699465784716435678878964555047165741754960622730635815172515596550040043928494062919830899090721745095779032332813157604484667906371869326783155793043218719958694312667545034814687444247981641320144526686739298490839131829075759244437083565493453973414699266404804278705421956050372153584638153388263959127112112399218706365712074278915747728035165491374168302021836326422815908840952498001158608263337760848992654825818403302689412946621205330252580384899185643656987521911707568770336046359607824884808226786077921035488990455928222838297921040035880663771167487399783650854479934899809717973825085988917645979907104011255720971090441800944927625463717947811597508949122390349714906053443099134067329015826404530267897652793443556720906335363719909034053071112048818431589045345338876203708408874827888569640721493390634169882505916808668576485020317214151287819149311562311664030648524594447224050160545980003263174001036625384066036188870076681038963377554819605946482195643151320911183132986905325174718434809563261041239287770455565316711624466733590311147965908098518135402226690678272051000431522811277961463962214264275338009116306428032255670563660282527664392766012266311751060246254421678800363741932413611239641489472370250713493146734930452452083698000235016257496381119831745651531877745078917738474533066731055107362829255546592374786136024052838863113199188505367484928423696290008267095346557239379990770959768130647163833555679386502836222133074713276302854837785381192284014731335104622441444749674931375786372521347400856013854410218446981845461163559791305925396262274819332900048805081656202435932292577009858850429789616318490040099210435955873452846587573096570691730271075064164827850880793024392697200871146841337316793082570654549438284684124182617980473530771747305078945518721639449333918328251028111420820709108946466731958419955253782545330363787459218022042915039882091201648954566312916406568629803467521977671332299413372736482110636737280604420482471414472093381782766508333085880472926471253056745743188762872235581237527675841860195073065302222944575689906032382870270100161960404668775245770037982489641171003433929902442379937019880432853526208731106434199369473261677558311686865069972260405157891119975639758414713775469234039250516241446792341381261380379766334673799987430901853145716088582072632714405563509363480264605472324370756899162118425637448869922358126906672313413486976694444197188288218370016452173868040895740178911827264321352166186682690379074100666900174806724383449930407197551349019067264142338411409352002814712018666017309905262189973587585742145539481705724326117713200684116202717047906176189118066410528524139656075407774357054858023915960587251209969592533217342420978482279361807836861115767198245224155712957416442252932785052828180438377538608265616281075964179952842083098783639487012096500541483377918864853198196027349846295938448703475208755473401826311532428575602845080571847267395929521322203193085032622204830606584608527797293284482996803145632833514945159766550612742178257649707402904061427447927859741709024946933472460440371286178890622415804986633929895482289015828161952048163292313457175300112661820742662122674323972477097402197796932946805141058146837711260338214601513601293816786948434874423551410792958377255350666738336966123088129088227860802981247222975516900304652616247703311971937176426981776323472052232546836921307989178865021331961828712854766308620618267139142500604268893975282414682736086894617107852767307664445440553902180623025661457310480469208561679701052978520523551663842187758982967785727157201860476138613029880858878589104844751300752956410779552001161142737164062377916485782353224379684383823245095780609411565567944635493413631596757823895403844113126462660905911108331213105579664734749956360046079751316842846398827431124725758820314738932438189459359023866367718035930240955825427203548866232869819020584223937393814744720664947278499712741347550362580235086745939168893056757576214899084064621154463285356327619464677775251462154401540251955281503266379133996614661277593004822928917583044683704523508015795608076573858352648410672684107839894583824498259808869106374432572331934701470215772391059314838788139340686181124936469613742364327194031618378284017473958900405033519762208411211682834463313521395041976881380942288471846613310047127033636210351811703761971220547693939720645191854083343384180116019674127624311318432759735711957658656689014828463452310395257536404032809496893628149494115387619082157935090874625032055560752512518551287777009825048334447391961777011763290678074109750493078684330068644038990911643972527482357599716523646392288720627024586820558003943786671425743746612960998196060088801036868679663976396599878170400048022003576497453624667375366111448519648137206354557892156639745812637066257371351090891300473638981660403903390349520642761223039168120264096676059022271247921648026188032772236253223157339575732324197184384800542020960192764504213767599897086906695590660420081695805435596168853552797566519919357945256645448422543355294950501812896733063098697505562014526327324576677031559233651120805831413031197399971602194510903536060843593473777010258890497438550091388715480492909549271467244683453505479951416602146069632255186456601078763842254597604388192882851623243105692490842257013858669349395303998066259294780765780879655851333273669939095915495838194929729641572963291719908764482640400767264498749934775694095942858748304225857277698794019746570311263079794854359884936017657716830225653128741265146875256044276556388969598246176742980768186222008815342344909004975274872627083260953731257840993463239274282255605524252524190781722047339382269069742537032567464587165950236704568172325271843276318248887630247187948305784590122850831419355637802336292660351088497840345854120336779728822812142687869401840121763369689778212021707379118865688592407221035494100907227781474752746489190216937311513839718571844281431420777564488164169820691182714483536967166932229294331214863909578463754594969851491708534399081153253066564318483330390569221053875997707254611950579035597157312801647819185661092042594345026957425041571356737759349896783581744079410174554525093848326493220848544421553734580220857383789696106323130820379667271773451439128981224360512011229259603116639876676866423129031245671864844817548079218510532005931115014457878703336525452382130842781664546412354481956361591652978554459566040749564255598631236658363475288100034423762088455147585967145605643218968806798560826486527518301514188164155533221279667511895089207386147642467825276121656966849648871386199697695987355155186729863061855961728973139858171003759087931544354253874210853275404227489427077914545523032245495517006756152268138199577944575118672225687640944911487388593791788650701947197038475477200575601741094155888967182361515999119396751976864563166792381558576983413751723477587431300955496000262736426158717891758088847851899480369616134740035999033185167036094290864286350177258045935981831519487470648159883874674913540144399442758251371145972924154462694037096540381347829123625661705481648533391302319062882331967796689789335877905263576194815181960359079907620894957678810938823636874252012002141361795549880333509811313164095219767019812508372459627624766484961469593332824956211116369418861156886662765820721179370573098558991554334831919522031450265518171325092522741822080875943620188096650320954064658570613125928323708807781646836569353728369965702086565387646886874552843935012284386385755107851902345288461711986409036511197689816152666251477113655627113015843998211172441452269321137509757472027501721822667476767031648970023870942282274245137438453540378084404911074857399470967046135349514710036096193788707064394063659788467576676784644709179492155768622628751979297256618732456463257786928780236401834165026120378130119900050822625586534423991256727286602300016919311479125261656036109759979422929852211041548080751073025434971609367338567804526883938839644189904352775525248878908375293691777181113806686637352221995276183577695240942996555292772590997956976191343118580656044400284487492748270111444404750269407667074992649260028444079219422823517951939401387711980097453675719914978595582976234903060920862674525991046615462424586633763997490818290173692598281400890776260225765622478120736448260006261454390183002754926870116355775398827630963128598050584693594643123700024903252471243649574688483660036878703320712290838482395136487804608639356575206335718193508485564093973685583489182355130861752391874115602015508439262413306921683438310606759607307613521368928046743160219107537939798887661773933013781181616067903826151162027030900897828583384582398535390439359357275401176420562935440865640715433529321967047866096798554215943400549452899462883585817946549369454661468010576184785344171809055513941557457831878469590295118450536657266775278226855034443151091902202633786370821020869178109804325298793086608076580667815911180993183982700001933773855295216692885278878493155552471726716518313530844802291016913972747940455973028880818528987450134160786715157157445905716661571650116404421773362125665159776816902852089836887690239002679834777971050025277513662014610071227004519578416695102652868525571043963216282015764733469696293998706371991299333022162909167787002406426918161164365630383152592303772645327284117115607830234585149432706207169757103137046706705189554915236244121737455321224656573081833160265145474623320956514477374344620402132921240914540673665831285155765676729257512764056531452227790342820996123562325563229101093929444651711732842263042867621348428150433335755829245412054959974882813825930206513643073725604858196842905648464837055185777580069005061039831588909078886174809101179498163706573222322810729391453061440630469535945331925351288251740117739797226198358069139830472648036735827735018473862362296437708707614353594958830117752587035656849557441144696754904112285952907056216318997813805473384194880717535525624625634534991804055286527504806220611778126499092464606762080406615538908673605478399721422365229376022236429982735466588039864937642564510469995197374524628037897538903639849444743479078359965322738361176070297522887516585903409275123661043597249165511078622352195284474380967755529755531137696426234011963921399319925732537912345868231850507306776529681379167878572106901761879376936167622515871663277765825858313676437503305795880592093493114779132487772147660137413440827506264695793003070353241546935695053551036088954062261264119124892549767103836596203380086364969561531703283844519823434837189055779695075384263474581646689279219904170042815106040726625326475950127858780026587026099256432456920689178634547888356323173345069559109243317764270068848948464083105052566432504844310320855619077745967252293060010570455659666512636118799832585646483407914564411713739087404723744002989502850774903780977794960371165599778581064194962797168922651024680842616171459638440689585383611809495974980047608283661536800623007067705858910802858893165085527185278060514213191836668153991744017770777247298021834749011873210428571392364252932144762737414736257208315184848703204969253377599138914378257517250976065485046815147739909365624025656409268751733236761177810208819260577563707681509473211220001722902724256392059107745583362599139208518616219574420394445772652730067320952828177350959215298803777261381949305115401467863873427567329032941735755092321589598407395332654838799680661159801243121671759234953035120230588722093377694030925733980843588346835474421324809660277566234956288416456906474551043383645207561505274271672746731669099051370855278612759756097554567836226434941975444618617284014330720668283644086943217551256768014799293035979738716849651569073721437724330971187643508718911055318372038813234330533825225425530894684757420111496459515616013159309620870486643219720832132943303011081534750732641197803260229473776671135308552118149408838503211168346610898828691687749980946665487548165558752555522502360878418430232712213879436199086137726993234549851665099572919843376935065231292126254814000241407270587192967800322817697975191515632594367834782112524035893604550007124473094344195213093135411631026266113854806264058735190478951199888964300081089799851188632447301331464210297799034480222876448713853705048314433754802408218205877671509220479392432637742788705442803938884315019637906568083777569769707752232410334015488461487685592467269098154357295387602251331459395915141922044070877417472613623030794213035628993531991420579938756338999526988370011471196570319538668689332086367781235082303219063234836286030741863803137583150466213670235486069937381486618832724977308098900701348261968004570282908282957708602313075063444641529489062571113105421882023846059053564634647074905444617267490509813629393497164129169479446303137415763346472964445479570388453353718050056787199585168478555157146112105113042998361394641729999994496182310779753464254138044035902924088571537104689208314259663063228925981551097970767932135269248777172829516664415543964595070285188468634813769638107395141003792260724178285702359696921432290494856599296510227014060319027665765206553078196981541476850042290138031007016100591329704748441948154833365044983184697140382217586786180547106169968681925268990313679998087481005008446441005381687159537053111972752885815046832514210910568489960450581270033491613169244933861201523626606767536066701430942606851863857426665854439292835863723479537819287007798434372417438812731827978804544180528804645514137727274237603172310346848742108288032145614121856993336480327392894711657460215756051797680327733433744574728684034803275600906404112953359868111478409819803024828370996449114213756616510635553000019389606641050060319967641723573698768607099277877536160648091234612073996779297336562111750432967871930569769083853031469539120116294797312562496521372360726404679773370014754374739180083452642833252386791622897073205848201293004438162638761232800357899297579637948010955715812216086811034572701645777315454983304662965816274782411564065369076617860149334480171714047107684031688103438372651814090318845593692498955578825265266572413598287090555289586895348271364210292933644023739620151374902459901099831322631413548664206504730621935021222147762030554131946107168252623289287887872392348814383369050639307771478213175427230411855039375187702403062798617714304781900877673179248456141942793554282100186034181196569095192159221641008549402543764356804412164041257097603472645935143451884613077005908203669604227912126466368373493278572950626857069027817939811433823315437584673355501025927436000156819900434648363531691342103837041129093264609808923446975801255121954223630668098985827983255176249097449543087817178686212218954203948274959805374581099143104668850455173513488989729653512510195292492660401457435422939497946395770917009456759457332848342251238267619844197695819003381782902995786338808622773307722981323087693970706106455366278704446314237800462188635123580285718079830293406516405841750960058791112612756564602933211610244936434681062476027873578905025959893765351946839533267318103776109155200612825777573751466763745526950810805793361659081509307756094397243511336329061983162191750571083210103657858872022791952851786337449142438928145205458652431315074608607957168421957227310750378346885065362444995584892163215509173676470823618584656082245998527212849300507909703281461441737827677258996111319881205329548563711066783557113623719187883506391134964506211160226255897774662716165727818452580777468722061419379981989203339334537385736181387715655461044509179765922515904332815865803920950559945481438511194893235735344913190101803346189761523587354368344276862315549730773275929802485470266922814845785206143862697630684082132364424948364583398099977690744794334146843537822124616820565091290282718367416566237730954486007842477569589470549435043737449881740171571004702547578864078889595034021240434127351160033765256294418810766303729632687332517236338086300118453303358910861046115116758689030625471577918722060214786315383932071808771862515600180136549037263628472447316406587551335783408298133926024695120389647985132125464383000448005404382299372152643855775978456591088807239952634768862021912675969531806932577743821301342957029568220747944916487595178942164834949962237441164084892677133864013599010588299527636972259928985665290600380665394185800504090824229800051773462104714858825296587144013465352718491412376016524845362233970260499179168438299918528096969082114834836749693328443689131706671071693054202871286389741471561216237532164075121104112506911592683288186943808326757642524257325741701815294078041854102838076031513756405992750035066898159836652574381615918106847896739390373744897818825686396137782103124981781335972809771917557103774699223043326966976295750925754688910628490414353868326914534937971490114138168658657904356482982054723047050570985189069848938926092189142856596932914857889039693038319374004992672238378272085452939091962208211744047724551613537137175253002139099389487398852422804925983492442048389830633934213067976779675560025159155845808253939224052407508210737071612410174205780585593584957951336789249834813660051019423915715629336138054452732655000371492750503277984961024492951340746849151103680614046203067527526685570918907266947568028132780228823268476177599662086344884840495541668892206264376198262876849704621844856420178196641160053468492251296516335257362331707138802779890925750607358631756792607820957820483870754866852371795834123202560774924758993518224393148449816064945784104999966731101172979992823959209146878902235931684681718041448268941541966040840962952033390089543395104862572768788838502307612814860620067869676594167067394605447047761430187442723119116436785625951868760283790229524527962850721414032999323030033985419636221490288369905271721685471883637870281572083954419346540460979533117753319584202912986415246396564181444772449308300092348327141830499821869925842434026337008345110457918199787729315997113862294891743680079763989981833158692340317729888067939561627459495713693585398728064738111483288234269494994924711307581271935556307917751974496115016622926458768874223820454598830338147718916994930454875645358643948908454180929907897224575021659087863701001574927982403708363068804542536360194904410779532576573499486705510360007522502644791186588304131627769355732281829783608982746880952330025601538476925639617585788303323710103967336761820792866281109528505913951747903231750375254432218847089523983786763525334891961871786219105393929860719127381711738187338151057536242297880147702713462349198695923593031850646991168828123470219873629987720166289732007501157001081107250430677657206722560454535266524279646442878690242356277014884807526818891448765913828082977598486672354489810625381054596098077361830882366616829227799333927968184452844035685038360095246515837839795888355943388742674124629588387629660265843246693252639320442213691032431375171259297233411144323143140471884904148993496108641354746782748862737390490373116739591003560954224534365722446061498722578855599676768546332447043554625831329955652578971413785453096819235265715574200760282763707462252760667205173460641316862243876438564822703347451180326544999844299070224331432310119811325190746200640977457558669183415902483345216303908243056814392396803104203781901969878743368388137488469128472089228239545551262764226445501543884486118661589324160734796587108440941330810245695858990745303856220806984178552854358392278382730423960722809581368543717670494203123406743113728502750211604831582178504594684381125452745501993260278368779414539679897102602878406166247377874001466420507187526830143663007729419451588679172986526377809083661177221755946615799437366498484000300167811233892167736918027732222136088823533784812230686189654999538960313806300305859639967039533748018250038495462986677585278555652711274789727386832408282484637712799044041705147201859191067513354916910623489074823961548369337597776544860865806258178295615702354103217537732247927965253339725187538294673188196495010743695426058483554790146640960766874699743598773914996976401287315358852605623086349820385178395794442279520173887152394133626447741843121132403371611370871459622015497328112548622451603573873724592551978364522767364339445634854965925340057545610107590767516102802703342431887527285657635385448451126379949175555636051972530436759327834531785359224795058492548053403904269310608723067784239214520760301795198969623274962044132766968128809294723064094686080088180212475158916998424054920679974555066419161618824563996709600631503965075169300936009651739176244549743899461702225620194481883311576615463420897634384601693474620280835448425973719771132246481227544785228710769388522750971778800318229439441410992546524914421107510938190108865811390128431723328883939658549542530818926677557184368869101852484553911936408093138855313765233875458554644901544375126435001470029119601644306481204972640008786171102335221231619353302804180710784101208491300010541328151125002366314129498546836648327557910498945115498948965554077102560984126933817846028662758039621577624002838778407478740932148963030179068491365820957933932097003791452686338211240499197304263109503115256831549019495697736212890610939882001881668959877909974176742990484725085130809001039975139544423319058547388985733922706928520588050499212308554562130997938867135604761401835137459354503067973158570966201992725645734805750541427180276880337419181356065787060532876151360757438483326342025632872345022497933334064671420619071636418048114498234515310849818528011849565236069661542495343449032651094665454252956952657889053137203493300672051004829523007206261006851473899201578054994516660080080789595079302369983731371839789563857718839909882032949621376767973435588181014105354744068255020316525262719623355882059722560735269314100245375722238500631692395310145066899638291337493016030931527873158584456861841749979646272741639811679705356614588034452053668252147636199989639553138215058070898852222781123725496041397029501928161299512000796052873321482534253896039996628972670347766113046718870533209866079260063615970452340433728948943423771977187859290782456711651081798588365675892485264215627966851872925997422785281628784137441584789085601870791854661106451249277913926393523924322725256952181070241193448433439421889434738823988820700276367764692802614081594037928088170485278698117873678830309881250671971973156150743190343425602543151646723897707936587529355731835586351405902949242163060479905488644191470667103435160997255087356992977919233180107378845910523269474889674850783380677694267228661568598730447518871055297639747873277305587985106896838980832535929369789658690050613388337852819725722698235268757990224878258346829775524924828220817887876699305058209400724079002631923736814748412855974547558768719333193034745905338027301527870936381038125526148458867657324350922325183254300744002017327719621006096502295641147032867239594984955210576860769664821360007427107756125211672367028720286121436821560458179625190334433837676001514432902511419366911544287420764257754897748087029964736845157980859720059986106290264250339593209796581048451817157689580226221603712922395720113795451954866767400992939469916464998709053346467778608510820838201012543611197626017565644917266076000558445135603521967494986603333775237015540632501069290354622179642326352448059935541123462442418127088054845436182037279821883120020475936650945099198307895969893965753670887207035566455365832413287511895336947849032318457545904786359878704595167560581858034141489345127596003955206515565270043801526494788013736810734438145088813587737742987130950219898364819827630045614951602427968722692929944299820999817764469015741406277706696508734513430246371529002048109965873874593548353940560911004156625518754699737194866569251512860829405120084775810655812497527277715342197471759141432796397092464605491589252901901316083545080651071788751652947087869555393753905132376385655912567586181391988314969755657224813216455871468498531385779192348758656910962132377919276243840002509167643493940754914072679946339100341698766778635540850200829476544494444197549536656599708015731872780109699283220695252074841680578756473378065506541719427443901410841893047553576363513373809993813158820937712321221359196177559224704370423144355148350911718073281868469884476575301760593687915073069490666022117490727557975796271501714041178998411043598606085861223437458171924979014574889071599333791868225494484425161301752753562434165998587177642533904147373240922809008430263888017787585267204915127013912615026875797418644275349752671044739554702928346405773414836178711038004474589628087009039227184626618669320609883385327491010449485816163946510674322443239990905194722757993239732481669162073624931364087138263025435353597214733613749524491250921670926995623989569973380371562017210734057661068383137331542184125470438204565220759996577438677320966687463255631876851757349866717195405465150979265452914870289616742737556514011587021141444454149302120366122446120784799843579925736183490240882872259292804066750715403160122119173818523865789726309023189300501731938347628090161426374558115048453877845927050950205414063971471591453195058481060368489928869225653915643170533764882399134481564403218626036346574726960311302588541782950767885691310800850606791549341441116586247191240801240777758003294092628496192408790156967067195516932338833840803430605934892168993927192741813704095270001033769076228707602939383831635451409577449118936640383936455916872541938150986330708841246496705667400405346061039207608575863000613054896889045479625804017402260569857445661442713965850160441119424664125026997529936317929664562134288901589704737767789754470455752270435826720907147768492390532219065899311235532750773534027645308898143724387410062746513371102735142488770624347524765967687892112104001466786902519546600542893962398332193271929574579380323259118760258950183442914052111133153003147186050731456130777139656934306888914121792983867663331342752983926874547731009358305431726929320877428932172712908649477338992586342766332565492954027341972718804215960227506056510574788112046648435189599540994111056072876235535526491369375727078822796099541045247630397079832641730452793182121855073179064860848003822167386802763282675855720552977183775871867148368377504865780340348118843357786695995929227012026044251108735221493800059205464339835421937045948225794342205654361470430646953474535202287119896056242050773612546047791410714502736516764353719576274663530016954259814243297958393736118856838567626774053346771853197664378755534322703263726161656353449077742886392793321842464118465183253431088322065660997086999258313277479736945560806228358247325470131635714549102453351281461499380718831661648426189211717761413641280638938196540171135584856968585650494339167768258379667764582605497967618499200871740429468103345094987005410784383352344612173142782073804597225652191523885240095921633237369828613768319760631393969560643198203564909267705293167981637142799745153917414420994851881370101080818854076793932914004203917328668309527857919828488676063351234395637603787009485824758236065181404233135962022692992856768109042719499939740942035007413967528214026580297137816888636408636816919461966713108774135179136416852886934484085879089477791713352172540327684549694517739155010075647894645697093234926812673581939776135465572639595247229003848978771799890649323080421085256852933109549239692956913177659877865725461614071737687720880710963333656618062811406655798524779461308734811998931072611976154660257317257308355153031244315815998117644835028042091203707200530095244442804067120408489513060884216341593687880444211188382154842569049733422255651402305750124380476023075628336673742021574345055288657628063872608823487448185821227569085738228006886240262646482544328692602579903054699353027861534164551924565833864890763368100716733019266915510011504321113683025702276481193118258342694725247204521562263154892607973801940459445485610666057709296327617594818833202735783370487804049513354048462144482891553646576517684667491821824260397336300064035145291853826689906924063703924036046069536977986765187252761651812723243937218335813320964944847020620546059656767607211081511181671721967289009815537820384854051722245417258091103909041700878936747092995146844447225294654132741665856801643524581334092132212703705952059116077924259348497048645843998637154503586996697732724686777897167567606767812822977359345824981711216771716173978458918889264467006062907349243429986533741193065277984561597689159363449474174127235900659456860243235383664015408500895637755022633914776372215283657633044582450800136220363592987859152925205786496137908101902056681400572211993308311681269891714593706985756589986693134585901570244659159108850600458467984043921705102594992470802773314282217495359150110899464935838852498339338405904042771290370467964006176098918395299445054442519415779979816902016664430690338090886252798907139750506473842263675692699316723746072215864670966381514835948451351070417843103230100618826582415633798163394320944509160875595607822063750663421944523531896807770086945803121764639269004545211801337768574051200526663999068261654857039919161952124749718586257705584691286093500548023968447139529194458780693086947807735397812599587069734367306326391601131317571006209382697867582819900065294567524556491913458319063209497231258963939765554960436636678743019605050757561810662862819018335189602641794635599804830724158549351257112827870640876779123330188969463078722105876771754318969874554594722364425827145859264440208657221573050578477633759825578413091070331350051521292071931879252195777844679230027996924871218143493160299683212444710337513379100061513276713942674418733910797949262148368333407892978024632562951470254035984522229245763121608957430133050832405771875855422605629272617186000047417585553593558962915857268845860205039775444897551314564599050404746126684795879457954245500671553738835605508136560707136573495430435397201473947540099385581873271687865229076894690528321046929553202302938283992715486155528053937645042702692004341993219968662991410389721490953434237477921807150990907952776287308631609778645792762788155778585133355263566942157365322974850008711819672615405087386233047722124552271537775797358191389792454932241496420302694503797072117601415522366459768044807289469901839048210820717296160508006112723788293883040122957457506954046594761195799994549832107523033876242901273764049492516437565798236311011695047583721355592363154818286059637592267142657385670842094631771592723280265523435738901991685856342265986860869128567953702396995343134539818761022678386651708882161685387791399717749837672431560741227666883907536688521446656113969946200912207588966448835065617460019689288865600855758978880918413320196767114995055088333909491881567589485101701194357004322427132903470824935108376034227207125411405662617690289563358046865107945793898908587925170646227909475804528817553401904244148403764966828014297816097423211897003230870221367353607063288878959662184450699257744409720807838733042258082685122396033267189415446215624280329018009020895924350619058364835221071416932466993425083464463670689998177250819183964498738163583089334233513182059257822937474066975332449532350933458821616006046486584490828308582606441066356344360507000671024764861124188770745048872058768890516473447290471596270086907926524580472798563981701261263463959360689837689557181371709181773485722812340731660180478452627848404243478802755040024273207121989294301155734157386332134148803182605262780855026085528713136864062813865237795600508309339445232397537860255629902629719212312077510055271580494201176070220836341718301326639776333013415363282932197083632847375735748809679461477353115467013649232514300496989548146566002724892214772905796117744928031980019036629904731751264097038462326018271475638250529204068645541039105878573228288173374646703687089502959236008143006151887774928460888756413663945979498333643939980636996323359168245632082592521582220439375216696782542277830596204816810331463598371561226430347848785617027333027929571056932674593808744213309381209998781557455768761790981186995247129485542867878353399267558358056038991262872505127884238643854482855186904579825636750959323424411986224091685537998945629561299515483806064183247150564354826852160489703668505063711945804966861296799566910595008951281590697801372004547488817642414397875333894430713105718914838219104096049236876274540874371900111461810493068045189326801254023130128731365239843326908140034704544162262364048808238190690551026855968396828077560995234338585050768845371822295846318866067807569401018976021361617892751419920464183856138335852976553450741130004185913231249281055860521644701010115941646714572354163345214557301929666782393796014243653312726879104793437182386733004932352278924207884642823944641071509650799578023887063988412722220210976292425553747549293169278826841235032800112172781651455789028798539067163380659108856576911346033938890153009540383469065457961115085287487215090696929238364443820661519352948764374419390382281012309177767991982714754345613171917813861614442999051688508047170489440520922277654507577284480805925664605463244662652263858824051071372873687137397506456032930759371882651962129641011338751183206425082240225360956258483564583383868337939127238173511903810555574165349981747421372654414017703429545881872982576317102664286325837087560159574773246486847849510127983937360720585173216487614100862575968759657832531333340286313449286762013812346262773743092611272679837735615301197814542089755208910762104034223817949448295053038788120734302860289703318720277191221572672614169734893625860053834390752086416728188421288948074134433714946376178883263210091222302735305936650507270796977118307085949234852620477465291289431958813570841694097555846311127742676229572341053387717838603770408941066023939257247877207536874586341778309546303919042447559408221165292281482692015197739518977261795958441798018399887081705106552120992044293290560563269831048657577122228101377857792742317197538155914803562036575738479161795675175987356574079401860624880696628257443729388425164504915504742229857547863331740119140232175679476116008630596312016298646453709519762954726058451453027304574785372834701203470374430905426942858313057903209810758943348907596580542340429091395653663439549165337655415208554585826278666508641150490120070855226191816436693682233237495943081186518021023089855662413388416150556836276436879720541857769600613300265837118613127935569502110815330011939040823329885053157945617217457645687197923129958878439958139704726086848484688454776965855579827296228489893044456775289142448771949204809870736415803455821029427628815923736246257695181933842522189765001782884461174108120917589170931042472650878557045409489099854327403581537094040265671196094870188750003019111392273894436647994172004921678170217696626604087330168696379995404901388623861594143345301402676063543171783810152804004587888659297426951552042787485870400052177514312607905092858176734688607604598438585307238640307302234071908260116046363880573988025790735243217468297464806870410934766707159155205507759456160151447355037261240323545101077603643070086512621922139275027024994156200876785537926243689879297053241439574018560512205048419803949796085299846366525434882122285071683324382006817369947706244868417357221836821319234197185910350621748929717254179705715577364101350619414560527956813920239682409676234387143231919533586943743000511612267745136015816636349137032562223590102550951709158624693088330688972034956525300995670562257884744291744500776812011552990434604238155418868819955919165166510148386446222275016766016280881545329421709755432232559342828312130564196506462229153798524797197727793598603029049373713439118040063030177389877477903257478238749496971274553182544468597867495886464418767845748878616917380038453279470746475038573241562870565600090376874080464404632897897586691828043058928064458088846536251212907130322766425800816015156526326578990728162338490343896253009129701652487400210947822449885627892267675218322351637346311285783043594778709812748079831442476676001303886603705544409811669812178467765121088729941549197530269779107290316349624119562327576502456642593471263432995062019095422398555769050657925714075343681981573262693855301050240458600070064731364161727022092600949954532825448021144639608824507266192286799898861789075582970242042346733895887050052217220279803905487694636135837806245765338487218230416943689929230647905789989684539992234200193960943833387255477880415960205002022773413937260375929251420124719095483851351503574389488781165335432452133632807418840216545357248248725845754986832896541482122309654017261595157207163192424739341146686762735702924981595561489299910418419934946578533421291400860815566332965779045385367488793469824654612435676182020868789187185227802207649916366130180529541672773814938320398637337555913938817588504292651404087542287239167130174732135405753008497587797841790001539209510617766755619532820434858453321567990140838473342577132838595934774194292227036839015566174527169632471929927069267075092364175762636214656266372416109611625493393443659998852792618728592491883366187818113305525779633270748914269801462890654648139703589200742988196251157271031266755189152238214345821017749611681995165383987663692766639702642205433681157852802651927312224894994386416895608325608152744024212120603895154085743469008932280345537468701456928198253499534112134895719932489823964141291493336830239359772565807392195597158279860503948744668458203376714227033610572027361363708054410284682390851908540337985333601938629218525789160213033685135173095380934815891499688007307928423024755064564660072506171765500083485453211240279866418557119656778769097268281210306746200729647188245849271642557005863463067299683167487494952451074390559240571344440236056884916004507981673321756810162798495822965038134065369035948040794127039448304237355284363791092448756461247565476050590405076924420412252979106407841602633968858862553412196174181165704571726384914128260732946851273739188392243877727416158443258329663247854799216366155671133558663001235535738394913423794527306478916936365661523844585635247367276413778603927227729585184931157016683749166384938895208796064336605361064492711183667115076073768669328296598730060711025066894845928826346058645879717190694431598021943145257491970334769665586290605439751298003302207627652514645994615047575213800104323019144945740749005334120306805091293030774965741690113502694037077021987294729106773290786409330532576389264481812497943951076283532063023002868132799787708518041277383239744077078636594085298085072307493868757120786745707351301877568587046495874774321196976251310856720611066464197267689002539568898426531771108145001539171886303566779073566483652135364971907667526038286942865331439324929750643827919908064020619539007516421311362806668478508003975889973431789518519006600527925029530057799567836935855243982253796876903083834806761150919712980385065034826540061343878523543273270399250258950222143862784702107413909598767924995860082152737756752651564239696534838894531227217773836349891060823691512871907942965506249182748984106321728669443030933326310668734978237083060217645465543749692506365746723167911347939718475957388537269153722017181455965094029072534134807336147168095210021768082931372288856146488740244515246939633210763910096996864859478957006010244820313992031682373735266692130255045164153778598272266833323321843952077562768985242002513476377736481934283779990042498635844411968340881999666569632753028801226535828842614132099695144247353471863702935368393627404234647905431283227483779936307584816219049337190611660101296068229821757675597616577792669844309056107380512024059105023352392922975062079874123240047082131019837054222379485280776719145004660348203280919974688015128456353682397423055615674827012865402494898221309739952397348725658510914738134831990921076959234211240806800097582146974112091774278993995110480556989751299112123262782811774173198463447088307817289116626382071829671329285071638109285805051920128855542923130285976441162959874334490881308945194647353323914891170380402836252030039358197545744300920134855114888909783221577454759597831765375455204370013632412054539418904042929944838066241082370380784235897596264180250324877135241226984331238450678655008756823227654373086032220203649058141990072842084739406017342988768339767960860962372098042797886348373469066350436946668032276141687741183675278442885671327457933705991592476953702035482963758956750402440952772166315631722541825887897221811814308752792221846634537132206512782106426220832984297311562163987765947192568547162916442428262460347783751618695499049746254862724365441711715821003690011281777824195354611320357161285473521435745170566233836552070077623154183719124916863100136598140981292631657805238714550199776893491511707284411618316996077045964069499525981354569871492974591261741056250573268738629196240326943434993288415182383140610858560158518120717047338585099223036759300907547418270929076184464287401300941661648330758342286613414475692008034115143442874373770510773533595101546689238103443454256075836675740169409465364191694323164690409276359079087130369999899004967140227349072091482556279467836284200014025774441070803626154259641656070163969398176226029287092575657513071734872611820245944364426834810390502237815259125816574356603904398810730929764106300700300452749616159945508986147137398760626586659848733200714103501210768648514105312624293188886449886146474129676899150458961732461939736041625769339087271672439326457148706631884656251006691271840488682022809901670447048170815259557553744868142973660968353060630937318967240923043156353702140983901547096607430734975369061829327808494201029448787873386587686921496034328184383020847478567998988393315385336179971134264119291755407513621153073571129423852443271229397601453178077712777088411391842223483672017660969964328171489862808552651343380706623934106633885998981124876210139081126500308854461169148697178401084824665445790630320443449749509654447015941172203869992672079160954584025257864288558884801969423459540941103656968443268227267496260642026586207798532631351811694980951267542159323361682526417549534433386726410667349341509658570680143216057762434559555014256561826095766287033481805699220135373105033607469409987060480245257297685316619635704702857943705734636126612363632902574107197228800892228752189275075251699817608224482895629173038248146418935550175505358821566138962551083798790614644465282924922201864115969985650014745178101188837888835185485124782808606217092550516295184375824346139625847145329603973705608730058019144902079048233429777836951016038598900003650485386248770314602462615591454842399471878903036335526255784958097612574077305613547749264289787241788812105238686497778940445685249672662218921356002657985918141662721935422103029562777931355246718570130725655071054806868815668070266020615789794313861202103528738385883648558427056641964676227866219585204671349028256072827519901522091672607961429794480192503913655674747502316272633482882334366683561635583196621989089739546474038163675171184286225892435427958329814229578342253458578798031989360123745584726015850166069451887982974331324882963945586536350463212582959152193214339426917541968615302466410530182446339563614404914613568157260780362755538703273426882236647519370726184636649181959453566313888121105740087349803567633471649683993435163949993791769685345632329865373890772880692153157175452372247830155557470729983727991869539979511902752127667812635133693861940819605585326074352258725917460309807331416608177584212929513369183702721844541889938842309008774489676164621738038595569596302476758809945146904154252274309913336852465512808515500118893287156939386722991680572446550486342181205822414736789366389615456628580243079704170636001260016385364340490489363783024180784637459275205821809847787469541638157040115834682770376459577805257417743741988714732878050898533002394392388702676028760903877944429037634918824523877335205825485948391351220479024752273160932734370022206710691491983528462908040384249650009541177797247209130661724702029294253351895819372989003618326853123239854127453347669425471461738398956604276514987080465054559097758793554611557987451949385297973758474216393217190464091156394985087756631835701356740715389296209379658955478275948628652102272677544681434852789163360486711735699976338551496528780203597027834033340910825273688349214709593655368778229791869646590805534677406737981122074182440757823051633374771754119816230634625552019936619318560496851580165167889164520676079301488652001734562823203677871910054837377133196158873247425705633857028297445702437432441555705204330131725028260387264057688722633680622174842773803442696961450744300045565989716745499343593240877237594600845378304798847123534709035938025903396098950648189497260297162754102242928470054102315077405378113902899978644356500429831133814285011502306698719367047708689420104863146535126622918394125854439913244752130909395384726395841807783121771199056000967093210053236864948613543628179007098455040837653588898128183465124525101382263126114060560376089830627172385436136563081937325725347825731848662923192083955620210352601658120991265841576087753180927497588820691435885533514737595505034448980428651931605717182199308969422532487984388872170468111869032392288257680035897336433493419121735386824081677402067212438352539120577310061578919974775058162982788697504768398322043859392167717546106792931137642793723043596689023863453683443390433306805884741727588134690250163502280946245984138436108708770292318467363630881091520625527629875527357813175787267606540291976136248626157213262641457087163719898547216392391336934670031229045682179030547363363902883079547598119829742262186010637278471932967022043878870503825891192275490798240339726485627392417929171566725530066694794764142678906618923945466818169258439633346402898443196568934231989529908524171715711039691422604723556085352915468193481319305737954387656469020012174395397210193849406149653578987932406545050848536227229706370892375556773823741514210281140655555581105870020861887783765022549388509349273128160430112075781908077187527371211322699408695809517063401991544869117934075429748826784580610915419743429592263222054483875491007451397559943220803418597614772193310056732421093827669586219217178650451175229573742126839163356816761074214344645247427995342942723108324404014384319154035552821519216728866579172328937740848360262110702756101631934563472474316428645656354738340450443076321654886857152429818673783577073752680446532822009883412498270360484540456609593032270194019169002773428564904199835079815252337766506998193627703910480186908792782885384208181747942721334149871056532825629030900132563495125558126723942492213623932589076272276989962158314994415879408271921876119003976885808030793596880129315251150425940310483395233752429437134051859810226049991250084824685971599121174232507519603157729464355663263084134677034191585481740873177314476826278399920432054993456553039532970887782073828331565252071527020005516643342491101434414945652669899279979674793885581089750578228948132041426336963722308658687647272616711305119182156717901366120229308478144513025462724390602142113745052150123703495611765642159613717391172713296622424291641694388866147777429209003018678719000878256914123208426455114581268616097360685244740967883010776192961847816604315144714508441331025778133909162209532746636293964825325316707731154793789807186531448623477144674858896494474968804096231691567435048431065818458192148520791766080020929391825456327038540230274231797356902205153581759991516650585236171249551702013635691531066513016153481670129706566610387191813194267985406876166322020313321938215859126892758744453294207290970546686372324044365259203633417326103375606551938199878447110425229116358378061236483322895125980861158244923971219454765978333030578337253841854949087972539011963296607303363216467442938207404844533608791433044911548937363535994824410475898875214525357218566833081778207733850754932417894007905582498159197190788394823662298194778509902903066772743190380878936273135863902863489471188099189939640838355559319531062132720893124077106545267709814703071593281952479944336927248106121174781897753135119751775146583365800083453558204159051247955170113754582583965203996606308551728841133490936156385308301309382155482342279132092824972214514594043707205157278688548051918221595448173850980426136695159574158462755636370720646856712358854695183483819352642042187656118870514820813430428959856271354037325894972723421411062099907609207051865411586792447916694872915284187215248250411298662892186596791876837378473771526416445548047342974231640493974895183188574479201425423539601014633742770783150474354952224762676234649565728575691652258901477076541035477403792644903893511392466577759337352775573088605103882901720593876667112734718751856561617244126345921000920037546984421763841072747581677851822332390305947039825423728012437117071535890121048773485865806269216437907960894764066162237461683998091055239280285060552809261460105546578998783653759843711164383952748679734333810302602624290584918978348494223674759052741519305120374685675482215526481784069431342177549069601707203884941124128778102347243096557126764192796644685070363054349131404924596373164823578034466843027587028091243902536190427443412900589475483980258908513790536420602233694264398722374190983913417683675240519457905685234664183842339608672892665753528390178343361676399695362106629024229312198876684533448462836661746783064220010108349371099568259623780765560724452874924001194099742588071861295626309826631981283998778891796113731677793034782438997117946142205740531356214001209214880627279768651913449240479462161591750968674523261440580894266475896720589486500315383985263665621437836124657650801839264069089941547672789584324692644345923674824807779196958695437362088752657937745949062859331054122910550731201824218972879162051032336373497131463017205049269465283105181832776228421717715359788297779379519062689901547502191803410749520575698715356702063395449324121072997721746886394188856011377351112945183158253406068737518839015617825181249430522361559015280003853552625717749793674889911245874136781176019251310756324357428593295030351800636239709707417942416494402326566653788385540183659846328854360728892077361255166874222406132617040175797989270467506367566700756906128720494432637285425565845054077299148811446305489890468077702854615773608081219051597940332386975680115371196203399120148181521027523809679273387938636067527933076750952382152566481982868917964147715416665034796990418227983432272182945520479569976312509962305779896419246551693003913747897257475763965780344145627373791574234107175731372283528166456682388647167324699324045454809688048403255468856812802536544857016313862008398568015986094697989675429865128013076507626642329082537042805712768133581333424772353449710224732535693836610422914075372621025801998147362712264559725161558398559963115409680557557195409713236447693889888209327919124029258398551570286976455233600588154325985426141817178862749580903967723507577293474949730610563215686830828667958709702746045555231651382670903749808661614977743969577660021986799990665643356913720027283679017184634280321389151601078639254018528557875914118827519828346412944777603644799148623949805969451261328787217039693591081329147078744630423191291164313061398972331054426145213187447456157265459694982508202763812544700602949722730908804837901425081021947382162010137632149371275044791832999082033579020674911238037988716085268046090485487415587955385938517324796326543857976427395520972264483240459111768708291459471639411664234926233668619632485865159819998834048699769593064974016254018176743965601264702310189441840483363798215805003689336887702429498495247956696475854960754935954689927862328857848750005916351504010855179614171727377400516281086224117402079431809910828885707616281317917991108253048756209419373059372712762474323046551249038369511972989632682044132031832253472713968319696256384806424055639265837064837308778455978367175487676926111213056962623509559656919957408718703037974968602358827986451731286766426599203609204532942450301282244464271452548507795499627466252114076064413774573379583816711666453589220474096877619646448031989532570774598975699333060223555856733700357714377102855667840278286147088302161419487859470755166431535695592499541874491237213850146921271978768087636105230632804941472745727910538039342865348452796979841169387862808782524327598960020924037552333619279355496948043135889293987567342417594452718282768990590775208646371747049423038622365133747562972220512126340055605454452637359511596963634009117397184032450714350868882120246872351988517559105239423767830362773748604675569350879500879769842119263720535562539142126887947501299960214773068615898384042621994411538586235656619242235538662513549746453211266123095436971124396278492961290866270947928370037838389633784314103027380826072646844052974472757063607702493432842024628313185386023287997875507164229912462867469991074949206677094197719851718979112445011454463807942161905718009030047180354711039285654359685572578098083760630078053653766210257628822892791088257269957840234861436793748395312198757696191193704280888129168756181725639374681617031391303187222405243682483292953863498037958519443389766696453572416604997994726169704250436156225635794392856708468587525665086815612112657064097528516001682116737504039512785518683320303963202103528926925577571890171048297837196123006657525559416039719957414900811328987804433723180811533794597797715641019273667936155497085872072899185737274182740853239698251542949904089989100634948132859567121905312136346602092780803406677914273870457781629802090048593428079122388928292083676910306142643991337237690937939355603500517019333924057953527654793295180363027693487186557065948029715348209260157355483277117270015919583892744175263967722644186440513496952992211704836797940737122880412587715394776277921816646228519772764765998502257706470327081726218292484749838278800978905500962284922572901420054342789218468152077737612576028440976512181094509767659391087842614373064227356671559598267546636637938615465270469771079078789048116558388209032960729484777659945895371046173449102909593456326122438743818093436642724539390249614993812689065083869536425536588928000061963716468645613304970631962608001196351161910272443627018664062164963199614964943949804652387228351089655903735755748470288573821031375204268573478346919582986986281949331355567163987745405054980560654300599313684585039092298035691005811467661145655221019476836967136578913125611689720102996139076256011346074686941673754725422591140232084615130606668618218878611953966724692977362759876423429241567172658022741401239835867734014158594451885984858605642176225103139953919262302984596509351613693720824310029971271153353093135691926110569439570825871640841626796051696295970408582461457643400846279824274160401100035555341486917595683251788423816763824157812799324688307886865045631054361960765135879126499048226853198412669269967391398302464324516591211434172251979268672677054371277374353617103221709687859077201380999969000790618721714525544046635108845493726341826946172843215986804845304872069600108667701052363242678712324366274626576960998238898206530911988435490658156129207482953808174716841740862010940830160909477086504446369991809678330872890399496592997632947411003472098588514687210592509541771095910739460837209603854688404700740736073039818647747844613244598178507467926000621066747138863239861495317438209616544327752407294728379879372970723465006155332607860573495089039164022334157198306165192133500046689166441812543218072784511388539579084765026233200939815271196714858312817383889116724981317982567808610859790558935565946881251341078010763579587416095459245660251358291561408284630782871566456418007536656571854349467475793481051211253876795267617489475256761199468750388958311283564830102674068951596033690012619599007768909057026434472627128143484178056402674206972490348428704318956423730922200419977698496306988836406676795687726527216995310038093140274438042136317414930041374455409899963012450471187312693872844783484249081340190429531300024590047171844278305936608214224518458022432551540109813079656514289503112772156353160997002263279678611963487498390712243455128983792092426827510078300823538220238684145958547481109131622310470045876428476320975424802375399499083371756461840578366960069160629592990476582575106720197975636938930491209205946618950096308505274389467816158509500304425424125628553362635460703281470697546618330222137076184390648636840897789419391547999168910338673598824969493601817887195652575539963508848490903868775829208052174692780817161974250285094508725194732776886143865528662302792776349015847074979276229332528413238738601266972431734161167002506527183917247227497910937420647109410220676661111916773403008727267709297297122543007053680874441924969499670374190877950607465682722790459775070261321400994658717013387413483597789879383782484822771738923177489156253359033325196977940705046259080871697780305254537357723578939260957399065050728135093285478253761233875105803090758630767944927367574644494698906888485805997830519124962702794823786264703781015432804589977387725083297054316865056174272559395880429225392223387479996064190464209116226816363819656612344941759220957343438616454534623172728322422263614327596791861064490753038129196245630223145505574913710932528882591027538570487456791760103328549315143561273673530424319090245302395764738369046634315059168051233105977183457644555862980164121206655340566194331206146257357693493044751305025137764902568755461506291803887554821285268598935569219149192837472298835750380346392533584009647358161733036586335514964510278617774969205412507986980663296370597035304951326107721581950083385128030038992303295706455413564625989027111777573150662098214730581513909126454291386369955491193473519535175662029478762387782285345565371548545818802138833985991208089923868566709516126465846517585350375541236616842995645173841359062090880439295333128098773766993510205273183654552109925592613730803519781384186771752002511207226327753762483021410204055269299880413106027748898544166403089827203046244017545444338593299489081644066582522868944143102050460905189591865886020768933699061666165548651258283532298692967759542004690554430481117244804791495998355222571481912077473252244695997683682871151925816025221812245230515321898073527961455174060936337207843760103422593281807940889827792042582468608436569247850068913281572963416586014639186697148295344392564793518286153039114032384964604020828778997537274900699580265960693324391608939248918882606340282601360278251067480410441355535321804066454671868798097868800932623961430410371559290381975233297438227932369961717181717195025063191273569589867103050138063233814908677352980787221027148842537200324786161851062046268645470431599165975857909949690937374371605580805123247552124345258692569757047303420995737468883658209258500975364202521828127452929069696560212422795381756359327413298214949711843819368530273228509570583104580690569007687701418347277119418393299447613715660324390822555101528567461541880424147819584350029410355589879945144693592811665977009774117812053798031142268748712851234264565878943165368837482937807208982226134341899110374555899507909392025646062071406614826387797522414058002232731757828757355667994565948454239027073268757812656404116012625236319479739822474163660702796231009054718877720835192384755644893228332033780004281104869256405097355449908401239857666539593009338384929606598557111274365434483447305851197410821149496449081133157679728625214548623877292724588967099659536895623500780053424037754539818043843184631256677400299137312742267246359046367558014077108606368695172652574852216137113342180705352159372496445103382398332441301450231772459438836212234817696140618719411232806304994934204322104004385148005733541969578688468528731921685005994274862718226397927905986911041952664508205359493064158441021117175525930940471492363002862115322096834881255035805192080680800067880545237567090008043443888797684350069770924417445315168032561005589999699132517846739824394879080634280643526616818675081467092819899562586556996123870140975228950838244779057193071654302305942422216094577897429631106825543343744321905210682441008650607781639372385548443399292695708577176103624741549390849624928343137690301350281672629127766128615042560694808567220906567372238322750968544181121836259529204362074623723965171768680605694728816943444573819841360151939342769844603948379436110755015134863650457361213940408510810659440847213978048674027535659936988228586934226232096927772495966419040621219962969940965827361165304723429383842994632931215291626711017806133205506639391490966133432870523673643192692133785548050380631751617170994910773687024877199813441056478952406411188526252488888281105331466623618401529765765490772608526479584435814367241247875583236965250701818212565345458276967404439647326774426829919706387216945263837521540239333152046719722181935991891660533756156874839128708690673053636698475541188237095207826428951709335879042082345906090850688046016242550325235484025654403506477611923035460383267547538235705484696748076752526779952870375325692103592659082369614341857678378785959078946603199053309682629319615832942152895778709497060416519535999949377487715375610681880331242869604504599216921031601073259215769420723604326534871019347991250422127750606126784630522408212362469010342639009019935441624051461448999289074760768134082203891863922180883520806413957726516079327255509102907929989170280042945020155949566103592749448662143190015821921431239219812527046930811183218264179013620744329550730300706852858043145553870179217726198776046942472112891027739956649276274057421830614989281403287619079371184571845018230893133262591343180163502701230230743544857342525532368503458400940399236688776201694566018993132386040716392981696854321191668789669962726443691088937425490901280222420852199416475194634046605495406361883044134219878450379584101742846536713094669540875078048294919494943431745882971529486662221645019814968377183824767215948388078456119073628524286527330579922576319821806129356543125109476840137879157153526546310928099623172444927974444287573311700609520337454212990081116597252929711864464922957365113721465048826619562930707327998975935447815831118363518311537428645067971991203532885080131747014956613202912985647128390771903005953271775663791126431656489926998462973071034212378044542874073160854276351646898332808574212844853703173500686961954666304283205821011112002988494452029478268840203915891567849074498537607981285635136794515413721865030084263397183431433279470861400830236319253029306015117764737844337283141436364854477510041711357569086905001442327942768566882528947037056490685692361346436971351842716508760468293754433465667548006954139414990087664263416251987504356492384517366440963993249707365040826094898245737517736548412554983421358019432150989829770390752352989341906095680760653532606181865519858532088991503129579491180267977867719718358574403278634233949404439420593467764135029836699032161856258025172074585198719188093454292373627884191269183771106138810509673945980669358311475444160985831190701285567229178440874729415961938566254534372066829520844061893167163009545870529689140208207915689552100726143478163129709441060753062656512261987744916413881280341574288086370566524149271694687892463443137742107176860548244090399492516406450493944359142782315001984507050162867788336307086176380998564384478980939758726887443898300155826192550036226092838273994242440458970905433662345624245388695795381458948826908759249123906892340144571313264043071601660086532690332304458356206605375890543224800104009311774725258011234451927201182476579041005227973211082448970356268889068930190872445033772574222703896418904506798239367408053991350474463097424961487665543000319241576052469663887650759638910845049458714378608956427276412937571170911924767379999252381428194949192169682668576999716071475919411666943612391529282194625160553030791858609719501521991572345781898916309128991956332067864981263249815199527030498401486493977994020005347860074895550439330523550721506479235581885259710914274119894525673660577827724164152595369423058226640953466231147123611202749456751686085516477219695047127351303777742682682676173064441018222368079579777088631131751232861092169306506015183321752846047837642019201598461287568876682906377043007945796005548494261988650488312972167058587003341991347506492277684476129538677125461444136635924848484486740286844538716902137784324498871918263088706890901707608134392290295211665675893973400865014597424338224677243516466652708975550040845287486717368930416718074582483560662100666293772951869735870490441075114839531262414906344353621971028116152797240802794874655354409547720789771204166202173456490668450003111570957192663410462877795573369960196303067949751903949707689383685297653953256408363552563214372389470087459338127171951032380314877813254444067461703913400111049087365689657829574463281784358569372671992085307012718941622047525316921331473863816179770221311090884719831103368005629011976530410455823237625445061586548419187071337711770379008968406589445686020225339423929509420827387976164563008970752968903367090360555051468162342809749924483009200697844624709044171260451426544281856699582667633329257440469197356928396937837931542991915327845439245929019468155192725195144749574836606126387441202712380128243784553293855420437139500650869172002938748403211170541702417214751312275865617399363489062490153363486349876168659075107379513408787511919064289172664602297953120451917670504199829903217508539812837586044338143056992665302414701883913906688451410199904400556860749971778678984518932796003741252717294497755696776561340466150728512098744494030820967860331249640875696342706320925740773633199279730157057858143743325163913262064225136069843665310786661235273474153711676671612104407218776571521603417948643361547132881237053655420887980277178503972331895703689159274949460888953554179390206451433382553280959463782126752670751334506353105871743919408174074386566215094788143105121224540779530080454836393136140330556850231266081348884276463002187308776683576569788167521512982949770733951347761376073515910003161609181438243145493547305589796104549279673536823387402571739291114736867501684171762502090352748480860552733736219485778107576240685706810692656033773420532483278333784862080494429513653652218307977631449769599890591975355224206846484776915628539999079264582601964008119880283935109835526218796546411081119812160657808061371934666632613370091041964871890210725125975323747555763547200635454368455538321672909928652478599615002168006190666804176017969740630384244877628418687300389884755243546743521584997808038409373717845094009256377312057244220159142542408900627036538068653397505151760416803228747386788014188833807306915776838437443118709831118646987506970252745761498110893133928143911107231700026206635167083681808963910552202438771827276842195965069808762728333144558964919461274217522845829361755126239253272538933511475011255534550390104506224357748884366553867549561126901310089460308121042302362571902708994273451098266875824961851730371115177190837975537795021634157608396203486042809794347374389349360719836303814780817041969562714387351485736637270086151325265920317592042572352238541940385849030924284749675721439305550456766135803987245705462066748744483512501296394885973078662246876584307131311403484369139236997083803338984102284940783018008345622098497574891001389127151370616633794774470368504672142489701006965091644464680462197473507848725835439695572934208545396165254515190824999650515943095899575722947396353374340405912117408152964192309589140464044602528498753928988066686098617653106762883184544694473953800552018951838602475943638723255113909311051821608162856617319276117814881781337608737690524018122750074134922685201444972581748086575035958690641659031416833887535555014371196226661571141623833073223458701688318542019776331362268840014861174967450320060122695111078530319712119001343582876487658982583503948651018041996839825521378099821892571727652639562628814422489609003239142875724580629050367042156889820970342855620680594851287996226602906152266885519439485751003496148561535735487915198958604579891459908543821269644014280474856837186462422013983243064315440273278643591748530061660225506838442594324705056441984959435781415407421450671297267884127219582828786741589126204256562564476473953872819897242906233362837893245601945738204592016841860165052042888055715115593354034684747259119026433151837046631391123622640669254933069232867861729300265200209703309103159722054363111734616599007393708055406904796146393920342356232241730768449609352169220579629070438011067779043921544846815124009621982059865131270995948801908099319500795270972509551386899580481444132673418302342829667299390550451299501463968526851899516938015396084102145081788608728311430600779548450284170559163532383661323869627169082015341303414729623382590287570035870452231832063142832793403940288140618064062126802931832072726404263499212623635022599699636933406224428421639674310757272004069403229370656658999664915299851149224609393036190408223594276148556786816814176768982868673051509626352774429868287219896511512978485981820878575741857259383122173127988013039386308450431691460917782789787764757755394203993417092425062741632573804347993731845479031790650566541723906668756297502434846945868483326918735887848924082548201029121974947918518448371134217718818109119480636181997676363527568938589048891249864454320728763534126652575477239838016689855821274723736410177321885867413384418878613961437195959125589414497695841724464636190924686143443760432290997947895827377167440130590895546195510348094249445235652887989574715912652680889298453102591569091527881670293019239097014096270825200883369299031058300527634227988931681749707335598595574834714812333913790559657937435060480725978563914006196815079605190483754774276081053020130411460949971638613553301281576763205834234836803249544826658990881474162510151643191399311105786139240884815288285578275835755478849691053369383300511246294802356863308605862095898879751683881030363818309837634200068260445131832858916181156404938139986153294915637978608367156024759675472384420369858366734280952717563598149219060939408687664282639370935023095830197410976229819897441125517914307180617566376971324841102911547185470162946290862619087583093256821881371894186591940101811800328509146623936224220737302940041289532471162960315259103584465607223415894018669456230179258725083574269792170484448005913941098087765360759920295009786674814014057541669972567823337604598353941649550888581446149792677174106017709839924189710495002370617048571004803869101695204730401189885868942991285077756146144787621232220683545284877317135711875931646138293729015331397312700106801639999434666171219182433613487481084202616525508907634611956962865322458599176155107926923499238346879497633101359595118889777727462055462095304893292100525053808404150518585500071658846677114000580950923293348315901575319866029852754907951920571171926282088766512866125789925101509564515902172985563144074557284806689412949856728833270741645573127212378770613578803590606104684100609218175957399134012595177843641324500250297609931751857016278831856548985363939076178124056968840388728087686130638432809236157685576611497731066065748160240755378594340908629003245964349258193480562982216154282753495251670034187182745117951015946299981187793717247135780532550499154549241523888430386912570759956592193561111946643005141521360754818902790401156286315559897792143854484902799495176772064932463777291134418011957468958068393987964338236758569469940916995724103355767542268422031303766926569383553445489339393740965355478739533108694593164533601325830960080117536104594124159980466280980955292934592599951176889965867214510463509870746505524881811820921021348607639241667059316116301810547601370882630452159634330889431751252935938483493207451959969398050652556756286835208956509371147015900129824197333980237673990372566958451559274312790034617483195926950104647402626753672469156977932519850072542062295762251825940434503198939980397437472338735645329144036484029861165367636388163293806984976820972283452893134716612370989129678598604081391145532264385579246653999817271261665082144675830104849643798589778680050220829247557043364878370538703285140187419608291548253938511550158072783189505621913650824674911974364424540488646360435441610727944715161276110054526748678520785845814226099593728116647307964712526486965718268136902383622600511229530655041219670948611248882218293025337067384722343741745462395349661628781822667395550970256491618947808104937133777964658714575595369132779029232650181806846856229650341242411755716972925656199954806690577532022459047060286463633964452317979076923466118311284939803521841083025110442815640062409220671948371013074858506732959429359229094801009097331271279213702993881517903443467793062080705320373142560492694599912993574849595732527638777291401332860425136485807808676832100120531965571410494896038543288325565966109804735079858453678861186362503209733072052258817702311008640879939232208167489371809215534734619365501515795035075625855318672727754363519429269779409569924136369489977947851461371038046970458859833131527244960062747065884765741587250633269997997411944304052173054979553248503912476944171431995262511093473875278539656467930505218927297260171655870661025387146222692077792935968328804392822738296203568774382833072524947470330298042119736120524448584113467532599437306143027648599409109562623478658196588828665317834755228414380047635150237249519921503321327234778572597055839384108241050259396415468291855807383918007758852913734244265388314864270628801584395607926545864752839533177546081911173490177158369496933761840924459509061175165982815770464788885346936938625808485861173170985803108730359476311444898102793976691886897410955658958400366735921856577747521600274067654461689599629966332055453863047863117820410296872470479767038847718539782735631995541265751067058209194982223304206955289071759347150658931805237643085826873343452101939642500973049236722212971948409780889326140817056044951175375981170964350428364612934402530727508373978137321205693596576769680619905629167341610683780598115506473681052253245174187865786778232736884567736220030933707775181604313125574112017786336524301670260056639219084719146360041821516646657875508709570945710201876876670873759888488071055977805983194812358316877610283783969562909809916152642609647826564833734030323424406712070220310343574674851104039884062276123455994757295994810902923608332024890515336546532455079839582747485420093331272088209267974544356312264218371724921323141600613666270250613205534306794253641052627135911360617905239640428473758700505293861489607651594005142000418776039031359150857583669963253863841552790154380756335545816818737233696312336975201124711468024479110609712534659793990623703968626902761475019380785495538008625883521124781978115374003250607242005248483958615110780710415593356301311964465291779202671273609671533858358516679679522999124134288846436413575459279796201555673474457221542606602896738988143766747957489348389500275984341087174143728269940076445249674869325432247234419887971702394489844543784935415782886492582608399459980353320389141763661011329117736142508803638959342951601120479641987663933281641928450226851576814131636530382897982009308212707171822910826743246422883476131754268068124176274872289361949139321502263199705112175394641112895716640754239245659175233217273664116592453181754382840232670340356628868455536661596506028062369060161736377798449609489587881770155068780720350782679151325729853099408788393534337145919762798838932282438750921798958743663704212999284400730983781831849868113037788021485901285521193538548266641942667222353641253608702151310485376458331885954827220839684968485234034964486598229228107048698372090013936123461181195529992915092218937093485401647370221915285707132801602614654947016104331118430287798518103166859734880486550998423195132203112725876770066100345889652740784123279238538410846013419051814471105057944861625926461097985634004732116564885174859151478207511126871784771010461556151651654772457909085276673317208388128377629201887150675442011495792970805178362949345099335858384745761588131138385904479478025787104576254065535010344119648383553277605674978582073454001915614797912597039228272527398632975502888623509301006858803154812121473778972087798252865538458635026578945230542394233119325995437958292647292627143789142333207031892626992260322473534678562027590248474729039571542291055858493074068292614419747127454297668447897773225603745308554221692481777267188678107867918780002551051887227438267623302829048593662358433157660875598140970405534657981880579470167146205529563903552944947028361632294292753878463669403641597665289566558110067646713166822462021695613568433893210882799626129429302976973646191245262552117400499848854233549713871836657889528907028829679872027874419233301739061441431058394476216990528534207013107637311061074274347751189495370651961561691569923455177538953308063900422471636263342122561320340646752575926498386422061082393772496762647924672886163055763827090526545046170712308833026967128820575635815309124964939327436800435126123547362885899796815922677762781706587708175836869778183923306430278077260167136819020071136931443539215954710707777587308229167715180997640007140427222823094250513502953148492023361601957575964338056762417342563745114945647918434940754056786203267009681362206700681984176178036360750703101561293631224631898062115130716897993712046521658047347573130673474170824785060269702026645439154513193181029583830435017318942319793355879847144842098256437790916755648931534021548218469330741989243283717128934093851079237799572287829961073469260416516451415202390228905381224565867546404736143705902459043647888876215247479100334808543826054011859449395090611929966139214080480949904090930598377039428876998706173506586900857126986036429608375704244312439216512371133390447151701784639104117804535869803357329655914563840137680719071801542015201131452578905816839535517873077699337519922463315086267780879606135009877059950424476006188727060518734892864630595447083519328881598204748905926230993373746507292260841967116133651199712796889564080989110922320778863315087153709358780912263471856813864159960922813968343983796150755173053908191084049733107139583287282520269108149049866668960945872316984632440557914446085515133184074811407555835885516124194915234672377679266109938895565930667733163379259183044126311357373075778724318978483056148164747814761419549527376219321136640080684398340261607833545447529590010347680643236400255891134796818380536022109486371693609741952850336268034320260009488228516886854476593680588926156121098684625650840101999291141829063518344025735933095368908844221458847144011979692232931638502306375542525841477365502102072897078914768582054356476846642587292632003546859650609518740910034205063982413542493130071320721943434592488745836783324987729870548413769141013183138914255301505349366105100352570008995263446705795204505197754482363623660965585953287197827482403396059165778523239289125766859681251243898268396857842021007812693862060540279083367827768281463061286888000477702330073919695565997896949557009199111648394184087861055241615699831006590543870423583518905614314205718184151673740216936799334821623417396450401432162076931676627825047733429515411305529279005618411568213427514324709504597933606731580795594518445976489800566427678297620494089168782805490275748336314788233803610649638719819736705164585171537099534138608452607419160965142758830095127164713371205588630719648121148559798491509797764930671622978591058861263492350960971036925512384299459765100012262656985470767325740386119326456109378838780335859716770975581805485742907631860236043196303689013596603141479041579122909479556624536512807761315394029496398503674184895773771339027748732260885182388990073294912206776533516847946478345730558182824088539028305630831770592952341029488132295168065317923438505579084893672220732568097722349451815065213398017061027694988048562138113537877601775080888291994790932421481727077991673310115281452896691939782589758622343866337965160764859179406968680910876393409200447012122837223118611776728458662541593889512779116742567931955155883875477549383353907299004783431325471806868146783439590332040507462262290813753034528144232447728971984533855843555567672401457229270184471981006869541882398545876768257300349995146353905176278723588677936382160291162914760463638516646413513600067215151006448850043622213594514152445926243700539242556969896635919995420972049191427843653052746966113536760091678387645389827042281792767107888316169153886496166181479881619490059128713585164435657933065034760230069494814698192876858686067110044179549466854560171260129496585910969674524865986818663125927742710662543083176703045453555079101662287402942732728828855934595131881470272562438413091530148220864605764766871790735899956484914088971147731354437647080200859334648333906277822471467670372302181832681216791016725270682964800953434288226951382116447061017964892970721425811003542080692273395097316557931902537138273786989667678401809580944013577965570215601779551115504369765375153604730547422776782133864279074995726057804050575930540934740475603838116499515118714636368860303966357737860554806100438639201685441422911504507198926860753632100453206841737983417618928754982532844622300761353703097197014357665646379122274617311556870112364989815703006498959909402951705355241441441032633119732409288052321232175767222159642496131887852421017173685022586550695354305279244705530412357561192212101816428589843474683237998913480221137814147705098759077003747558529533407362934763606700774673380393914292168649811018396301128557598572468047319024168343872381728894288551589821766890011324654058761907761484349392838662401368096842476515333837404330616940828905825910849127093333437531903334130579809820618869007554629440786206320412027210708861738314408462721688227486943328808301893304650529420659841644249734727938886898513372362028439167435392909760585571209847718062216676819233948910740838542784823223107852419740427525613612572772057319923123169718344529653119280673869136175657282996968456248812695928553700855922221592672801517234156939628514317100189720865343282388335643138502921371163797234444559863055793071544698178959664772899408814222420307309731461347313891378011452438558006482580909726303963106833616706675006489136789905953729540228751992377499764788145820241831039225666424833989675486539737412268021929467778231852663771730209266452472198562928073069620154800873441955151286519356737999975731174394353343657883911081752382927088983444513755165196792678753322404199936238807977703738635648095338947920192680938669805799692340185890988864985282459882653844886791397114444317338188829920557050597825746923672390078152138180945429527172591748524746006856997383899724015522232433604509586597301608935415563192997531078760528913076505584183042317434553323763685336360737632476168221124742522775226159438023906572491978142518553296936805060612996156214231101110238053849538335521569987133774719797982065759113664978297094792413542821146372552916503035286111884103820283638956503187824447570460457686107430863880642452387449802311558128206772896792666571124340163553722842466950982684209523313110172897868085059060186280683605849667738676253034886508212701927937957007754926372835546551799010880473791942942263949037600050166236833866338623707314953042492134167446882194639433132294678257708681809764442170074255793417861120689474821849759154859425717152424459760112929824220391514523766208308318999279751674926279870494433213459424040329311075161685241028648197847551212790754213995168755961329776341116332922596044130634388901699832334543478816912215252174058349472022136924720880123127341472179232702403457516724290575968959608585586307608738463334994741961783328960018430539461189690218036366043596024010113806390168845102228660772719039554920735343308690275848028442483432463138830525773147080826025159531778036302779068062872255137231791528179730786401109955151058646508855407096847034135111615485301712948606460174899065228744933403901329201658749027202567765736350524024085205336046942891403628107370025813471482111218911108453708688551212283285646284814218627615442555113619405954889781997797724626590286184498188787123732974090965811921113888341360575464637368127647365035029619012674052622574833551600070891265184148107915916092084008245548110535953262281648631466151552886595471602931429442442483657787149121747720854615287751510969105181400159750870976139281643269670747432084027551849352730620937284504392858142077341526549263934732463314759513724066871993556921447141213301601145288661647049482521164860756790002453024727377986869495286360023951656449904035031902338431161854780298873662873484783856147862491023411968654430270722467430222566477675158621518715314932991045793785491182878645455723530090605075425604364448142971838989393066121774575557649154826819398487589667261771146393395232889240557006007325615498518923506534222802360136051766339979196818819850284121658754575530365638892356648695687662774522789523597049333905414890693715659744734395996479210689430863948078243281956425620458863288546208868791249557167751921323872516200137360326262502844297781367325485346176986344177671633254097037196136332710784399351565609363836569550501786354199765726269947086471798422734146550877327512583790723949877368002604534837035071445098864572889139786091155783596135270442014059496208537240492606463202667011987765193514240685583893502534672034369945006960261957410954489178144829435660458497634752483397459624830250063471017759836535850052596583905221293986067408232131631881625381454706361039659280010872530245545355372157943104888548947256957400323022232255136517371235024431552313487968805026746068513496841248815219195657749614172939028519020524665892552851076846587366814275561312916441234938739903530855246465643909048228856016756090008231585966479567029754151697142834260543121470107418906790270742539031230477110536921482031578306843426199218029594646564040313574788056690243690260607748178585006821278114921562526014779943040184093851524155662643537084730661246274899183027436218363470658309264491419813999946205354486761950014430379106258560688306726156282047787982110942130473479261106884637423998323442356356451120658775948849343352894676324656235315827552439347531551761825201583782499941885954367514162457487834533974370125510997361382667050239336728992979311836704185148673237187421793879864248889001766451977889534857126165996045043780547389986807324965513673014124392262468473100498441194987585854150398048688722469384075131351277096710347454029419257384335733380883520413527629243757360708952746472958205693597872886454554921665998305631940369960863051773299144672424555158097247899722212565125653671564886067609128442515638063216179197422023933743607907984451323949598901905483217671951524326915845351142700763404832919167197778273087347248448666566975602177216954896398959048507539443333376264070775676408668925773346451509969057207411204622473946013989982432403420554342700169328340246004983780371070197060419838390821168578656280691391697228472525523070191797615826843526782177925972190719835603398976984557478137684768720370947101853766361784581201392867592239398266245639212880483258037154809392274917504486127269978837577236571435702575892576781517049858572717984651768016580003451096534302929307390490339296368716642650643658135482909158225762936606966951522613143191170508471889701756582148518902041685424992662313391271593061960218498669637329156807187880724475306706043898788523955870876547269767779989236710027484726664692653498371736166992686528111454922588267586973098890118507350245868995765952170649883471360388411065910435114610753703801547565412468177312683151531223986654727158370981825832328219738226402272255290040857218762568241504679922561907696389195765935104749842464129626829260340039137998969180812544455702843866209120568171786363355744591567139500166355914892063910591827798734085343669813958842104969236477315246356374780021871198467454061200305182596739571230611854663376414306241218701922539343001525389394611273153992771231338711647319591977058491572853420116165428605457836468230595331227025144521079962153455135082520493633997669367748998799555285434801523338417306550611760369490163174337280735477911380294550333052230195208645976678243757989422299388587109843285925158436886088787141620685644855268944353241867871639613734382841585074370360845924236025300230551313501391404006844050701466128655767921796669754228626483531852595011986480514046483324673845325849881829580433745216261930771974068350588844398378001440690001444196504723202976641363910957719366188053708716600827726380550687523225405203328691940213898918737346916558757368322682560755961777917267825035010318275001598809892784294921680360282961735788050731082538655526750538889281347516793933054400327830207452419372211684569540573173655729648985506705948937833709377478018697069937119203400075185427862897143398576750821046301973030655995984644742623384787189736723831382494171760088583662843024477436710178597798740919759111746223127114985707334704729107587304321940541277753472298247229688636435646850404232053382478096280885047818491152826508942722758011437938652500568082198842886948222708376821872336741825553138856665305232801598470678639344129928869056758619937906934870972072765729889045230312198494381304025530801325823173329326151046810352797668899081825944513597270543734011013294340358562430916737710403212421684016083230741954601396597274384559169619845764290699806137293832041931617389946794130243804252648154417822602091237192625016843188807304876239371357397131715305251615547632755682702259747858306422079095779077343461053441696237320483548174301789520738335529709534777772441162971384525279361998236863950863487133362003321949589065167050203444755172328238201567682747862917827622224357369951147217197946393950363400961661225455937567083553474985932006234471394816577102072439271190210954727070790329265648738980148138991777984787130436122955262827706329438750930344343671492643921767783554057116118073015214985518507301972857302191324622448761816216066800216721473260225716701263355607308812057909803226171552287332298796332681024056019844756071720172401282072978366816738668902961971925773708876813042571013738735460544154148983882223069186251180742720564450992609778867310148057229828503969313501238331131880356872550958466667733629064176725622996380925479440078980157051270263019597576256215493941119001055754561901848126776969587053116559820812402889440417794546213385596460210814846678970490215625130568571496928195794249928889829059871156926827894744984214309738818823535471771502166288273305565069834443449548466963188737289105576329905031928486869412428434021631599415257153766996753720705661870030431244151591157046014534460549037420547117348636674138807210246639044413733073802319996364579726103018388671651903299617570413081938984604855361700518203484382404686830851089837432121888661394260077931310892439472317723669935141815893524809041403746974219650816879221141452556261431904897673902658156703829260885992744631303181309207708183078725314595539808159167807829750372121993102652596078628923927971248185576571181329330671558069368271897951032945937620464123063732465375482905361558860605428638017270677183961548248780512646359702676141206773544954722774889186018589305561380947205782885335654169976793167468866295752928794418748829689751519080264880862946722641088752163966599503771042852103945962409003191489000493653179926369639700760869006574087886706840133813603617470312270153571543352539971787082649757372745745277147791755313886667803222524417967191389206030631348421003597557202106417870964075485464225787956976656998802230696831185051015414584774814359817916311244775749506177370460595641122741891492773262341524619336759283460451973912877461805488148627674460597185006147089836998519894981449246418568313881225222938787667465292784009287126748984879853653018887904057512385541339373926366078174861287247844796752983982972052926181101061739765599074045829375344222945962902585557595830389615437622048584062575620751404503667398367515128102279489211393575857811873420496621380928875375927497411144257836375666149292358439107378337787818559263010435293983835294072080501388050922374556180881219901849150942843336001644586225903276608776291392223952714821228232148711309561743625340354631522602029393370587831930093216870531399767515415714236505791110609177528357799823901586452386429484462787758272089552912884437703772084512083726320733311734844852374217424489260089080339395794497604552312347862169147535063476866173025248547079828108025348979037890784668470548317348822783955169090595196649270100596123587013385494091000555661656589614907076233372691834579966873803699488422043355506719641718198216958303456788561224324769055739177101461733196977813528198156269016188569232524234771389122373980556658170191249485248241177952158103111562474065514327504061315620977138946024032656556863919121079661474796230557904382221060992966531072064912100399496695118219042881671252557145910595761131050540790569588266423059485856256062184190175322243087104012561243967727965952552542691263134282563291705686014946544878175840210521875224694194595748361580147240977460300197126249861922973191858827351194296472399429881752581372187280923651919995328933338051108837857488429012690253561838992957747322338060345181012630203116278732653478744934715603575395640640492293078668754032690574097480369565057456920013529806189153909230176683236881388683895611762872090028311439178252356080820250095791141176098271177292009572440977036867006304613857164877416712129241104118439787895994293024593939897115787632205535336008425824314134456926830205340297788251214881170323605606902186517878573997841673348954949623701173206780052850762677022495549038916944058445889475098438575331454834913213581300918241214447045254575263317292215722466079489052948681496772458864521131813219008545297101570180949517488947564862348160499740387893430810928491447472636631332117286201726970001605951791300419155448856717512552607444012247142187261217767144356593018538212479028852768227969712516332049034198452579549592770135030676642813674676415866518379103366203689612903539022509866506136213928207323658520235600674615692785642263084153536613887785455670168638954275951754162622680170746707211247308070975543110700264395574987670330219734200303945268132385616801766629026615211524899534116576218548756615333680781219266526748830368658408898522672943056957413807621611812648162448371436904293248503569720297172751104282390136552905852051999864822436049397458405442546437547601332303131408075556665421704426898465025900159955115066926638985573026422146589605331460189330304452674941978981132330103054314585782814853897475322121068038999427559529114885422917913672308934795336015699425163197796265130972454328595174403715361039125540822580500790863260134650506182218406200030407155504452203161142748239506573983267498839181324769054539900199307581813503312374569516915896231364503854851292187972934197492290101876310523267621776892463530631564936092199550812719523157855207937366507455383534842946126209460637017140871427748763706047911044613773751249320502128157885654129240786620823206526937108954973356644945247716656039172573099916112910419993625542494112887805705545889169401168834499244476934674799856790714491100283636494393404181514006216597026112738777542104915701121459258339763089867601633264410047265386693066101268685775694290775994017293508339743511832013886982692557201415255171129526469087717100196877525376987290632817272597262776344837644570439938191395191495560121088220832326493040630608363280148705575682525350842802739024188427489734133589337605673679235292077026915725200178050167893393411630239102919095642422022026138469150325820886463802590567002744724427696623971788584639959468659972880957292775381483133999134201667895181724968351788964480231130230185243029277977320520082832221111015525101486802349000168429918080798932629983605721385903519504224090439529989875578676907616149699922360565793847138297700368761136578126939644065770855621585143259330270592855410501743788916425830335562038540637992634681651504704824200349190338487959928751556293332573936733522754914943712104304343332071071341024360662668300692308262271280446016385558351383077190021207352100312976654207668554036412368391089414164465673652739929744510775534129248111188924321472386482876799130743789228272003202364113621023462151139170563311125369815118188300912317431764751680861025174666021050715081965327853522551985154920797277612928467583582176702332125331309816162550460014899628492947232008814410522218513084792808815371749295009968918214347267417158592970816235913044327123835685663024082860215284037558409377391992576931069205739617106611708402164159920829679602959418857291510784309052393114733812783988190503683941344055088199236574971949495087526143728354531402203974046552715638445705992629508417748519164286062377867043592038864802293714714503080933104450027175199370895706222131806030898908060412001876202970320451872025850321233916963568813721556294686328868725055116172115567546717187663171360070336324495168721705232135053188008935413185548051073853505139219762678317247281212847095412072838277091401217489121108376497403803468345995367840070184555896452714514378138324319975841883248505096228426070160619546976122273170712239166485058044967036800380219317696783188615835665848938006143798865124068009295915947228540334907153373726939003918119991932317651645612367096366741333652311483003547644545405462436722461810405568607500169004079151394037476086093550052871550994643888699147439439358923506821059352903747075258186319160209709776812482324691035253767126128860420474856112941589753070725890850575333189817345944186750370672737396209020943491555344194904762519824931939823663638980157513226818893322890856809965607703071585251503494252037445174927676379539342134336563946946120467433137096907020890062300384890704488983557362664526261125836780568458939631078741351992139161302931079941085141963024487836262300523002998371981697720432935931575910400156104685781090676207449935205060891400565714370083456918579545749350650674994360912569600045096497417375562524958110239210884659647195295027876454298968267800041319655041993333767995925471732220023452832981300981696266882744447738770036154085957110982780873665034163858424627064201106804819044279823691882439171020829683916819651210788518695795403734182277256636803500233549512856977583282496429923584932127365396879034995680941420105814923400142287147606100629726652424573340771861617525554334465878907340253108548959003076935030168447781798981280863049768396577911868908743007766206199735176123012076495210157791062064563146231429525719841584486563103397768034702119652920757497001008594214065054368566516996711660289996549404064517664925549636829269616311508031391212906929694773815786259450725765456664265920464741581181913455354764589962680207287183539991112619863070195597961198074454608987907422903570518153912278749528057373940008603347354814815242879766479749139318998413964606587597944044062875351356912492129080229481108987601184455774264022097954022564289901317554585867727897163879447887504067647225465595712996285218674224307539586409237764645262614365389618922471166381770937235067505747049539152865115482727571588480701914571732003358946667497377413353735210869379856814360082649913734152147782984724820389151701014686847145671656098287373505594419589975135926868074607281199537959382657552782113159642410121488935229379188867785971685090474468319698779069285815014827526002940449322447232081788466673663897355314294619822869355557155898471275041177601961006118169850342182660329698983691374998571743024380382738724759758036659971137163049878380868966482291779601626279641070688248805143406965490762597977790063438164366833746513984347909568464532154640198240941089865301821489543162776899317378828849867902235688943216179400555742704256000361562317600261909874179911412004490508847581728499526034733687242921564934274178204124479520855092763003371052311417865433863891465218865736216457681393492905877900552381540444966920034277423225066848432589566534133099372863430833538581991161459459228450562619614722579432113523618309311375593763212334951135932918991507616337990314679361389328771101185426156142352552389245532589071742298387011499846834293340244656315961955514839954508794074449380590587403158064445020748738772142124457950402256587661217089412036347783923010525218666170807253444699775086406260294974398568661443520499995494808193752800595253786890054204929696655835878438001136937061437683399591001000833395353768286094957792473846943714055333376351005558200510099308787150382427751620993237525113946150540363259800249859472203176270192778761880392348287281365992362680478798070340907374078067814962636798329064128799880128125184937492827510082193176774692274507282304572956252924729363484700590369253580334691365356747339502153296509259462988628808018481522123009424508371417149441355988149149023374257070478870912717040407384503256320673039262448411028036422748139443294834553623551534060692964551964841311220848342909361948693068210312283307404164309827255621859726204012094963881863858231127656653249651073273993979640042236315284670448036883791869563326801256906816293642751866294630347839069484086866655539877850939405789792136182538786150099329584304271721198585467208114190793742891362038923810643811483651451230153203913378615862457615955411410785357994939261509213952697114235712749501798937671776282250922304731619022117604947795857993573511188932525364446368423315607907811320866181465865019210798883785109951625399046787192648153000166771467879212465047470125553254343603404464609970705777599543851562833602106829664986959801846129599067101724519246220484618931466089489370639625524458467293141387280148071012570861060712899970812243093567482644248824330133767953646760136530881116920122675491738994771670624840247980348584554270807803250470364360116389395439142309783099640779839689149359859400849836694612309741194336067848545097426450616516209866965784108807812019695159467813998576776378242567685640586121217629966453784952730812674419449517246517641001139350755243907579114488210039755256379682833877184229398687339497842091412661798705408671732047233755663682355894211266706217686801773862750426556004175375301474986808233823011248196740233974873964441106801780973362372942189016996693303782630399608096024620611853853388629571943563646562443699691289557699138084634628387287296988479605042365463429354727659561729511099370511370140736238523302783398875912960678272587113615636996190894810701353753350289536256875606002171429404582710841029036972339828885746686666276529376765076358981963461830222684106316439407651361617343851271212337123687434311866058543725941991352377759825972458854703957487162754173125756044750571061087954032166478278221877332111225215157129227868914088797386546998971918690525704632206472899067288665821379702147696779856549266389777068564278337302440405514023672952286773557631650397550503483345845689923599771333068839391782452968083153634193292616425596646701977255941326428865097514372885360759556828908549413465925522765248229131476508254363724868801759167302199531340530029965970733372836385142944192627018684162180690302544441862823749073562879019233308359138829566923718276527223656251036872537362848093731620371051184024864849806872868805068768467120268595979841417335481643494209964560880176263391263324246874303388977540607439566641496158355055046329769428123253858731222945724182064559236004342796818582286370097618302702029351097203533774793612782538763627245845088160621821673390998179297543083750506086356412569558278049893333992858824780784716337664972481659364826772600779436727991206131070515704077525658906162736880502930934060357847989537850724544402995656772567524726530237571196908886758975626276154639329661837865813607405538543266736794716636618252669914141020697911146234635537082317320186586975672720255802860738733445301988845909388755894936815443673470228310857531165483967931680833099907386620542215824094513574861927356287245907048161900189702235939480393408243309293826121898261388596214872133300093159749797524501158285113351203355476892462424029373483463027247106068828403807178539489493519165025077990127423685677723528442765998989342506099969873028012119217335929290943786081253083912355593704460744149949769039740946540928523187003274246812670657608548969737238514408402078304964024804503914749784290869860394286968783154430070427843756790997057385399039574496095956411407755012220002501891697885086813049247666960696760584551871065793269385228656279280005637026021914784031680231118947037874176322461088089070727832099399581279441448618502643959067614304138098100225046229367213574225227246381430563814518403105157748562962549493494542814569909604295187174287234534221974142174842794974731983347947585883496354513797370843663775626107043378881998952087213423681152824239054378981984880846669512764968809488850255461848797429642144139503347888447343378497702211529064636163138979752794058599720263407344048279191863427975306275804536453477984788169496375336543319117720277411570132414212202190626202114462701679923763444654376862254807114407426269042727717866573908616824852505647602360021407162283248491492366294806433686322714981341871580948388718000073045541386207883512426716868813860958430762414898794634643896322464028206117448504664127439385876585432613042571971758966609371426109832095073119214931336916843916618990964363975285729949639815318913351255540346595041519175712527415630999720563504660107095312032973371749541486855022592883856125447439314420274841319243773966326171668415164404742611488435982092756032952090219494577836859505831762440916380875902101310256565869257294649350749159276299043957156624478715539094623615564117709642805481281242915879890181142446441414522744471142866347568505625108171216718004519309775776259249145774771489893753480573232279091679985248017086889271860696645312875724568680296214598367473636705406236442776815457442918988072392375483027895354420009062300396534982358951919949995474768906512695710290745582222623233812115620345383072450287156508239237514288139555654590196857221849639428504231583524359891843438069868822429368065199307015258336714948123933014021278859776808926709452474580331054939417003270826274945080936744426211468760810406804918475626529439667613556680472836582954569442947439949134996929803043296629341267686935903288507813627348803728150028102886810289989894630429044792218626560895782221740004912165060897727351417272934672782400121625150316876219405834633363309179784390860315279553808451296158078771344408380128607228775439769061704968550079744141495638772949234658572832243952524171609520231287172727995189489132775705071838940358100020332337072741630736236934435312883613109141000082816976677508428743635441776197294365821431319638806689132962654305949939166653699133948493743260207017265268333462249911053637948574205964703179249808808987905958901821989879644672394970729168871903326248160739420006970141003032692379472948644787327389891779305355865190957692995324263247456754488406830126785051150077446640958761526281198919396525647428756402217684398553524112138518464463595242902787004494599005055404275576585036813003333974808140359385714519594786324680036529092864959879705465196629052997776091290192134238466411619523530600137947080653076769631557160367827476028472072451854604020689561130618858038702973925135789557475791048315206164472962226635653822550019084995685166447345427490029669360935526229504460432568444442376504128422256755594518286045467967234387848792362777018177627689572927815964410319474437423923151732347817902491188607718650400491308411107219638257989456483264306037552817209435822269669088012075125298583426710831418098286706364446749567620547117870802830493207657725100764646552875211925027456465091941246961788072401263427016479953957584356959713889960123710961564178367171460252422495559340098239125425797840982324616187396048469924320341572458866303193842420393557326733522598122390339842462307470171314469376879700976642718826627700739152363733267534685150636817988079626796047165405600609507307822227316354849575851363858763740052716928380361046064988136260691496375035114263899712173351998567552578020117267246306189358732344748460702480790252328759867536054601083698428143673714012685715312085897545504447277924067271074378325226778486742079368858995665757255563402429273705162103554166421768946574621273759244890705356914347276031283501962247028546612787789115565509793959417830057967767749508669502787834234540043011969247308036749274034922152178092452418585633566312113495073154293410285099548366487583262571587284967022689934334304565652216347515839064701559653893860002910708438577820922132562209312722584550144849732467819572181409263087806595471796430370755577629621043760370137157472075247339258847087008120282652117118330537208898624539684282716091846435154943127784125945407996667390166450602773818918908546578559121645891912179945570742108430165978970536640664480706104670178726532316247962496923997171826857927496881482961241020727822168656207292507091103907844928469795205873246371080305531160238949140421232024988030297548888664877468136433199126340616172100454413194764492111799377483618656242600771270484794551218845718261916740179723447387667752146818433248198626158885485630671225148384373583546086700237289908093318901926900051584031144801665017762535325981656989234702476936823541563239309563730544317492023046277854065322320855807416745929943772086375047143119410873604436941191605549674733605065296023379174694053442170405461776805384075900054010858346597386677135637649680629631141668725162102393415214347603998148982017891694986371321149059755323897257262405648143039337405328994795742958164942580693545665431784579374773804890486755511193346156051024279227477103778024437557310793619797128003595279060081169141460814690002511398625737276077544679270714627066252112785536411575554662047247552136576726418015616247930141176395568904007408019192427751494520310947413323677220070006661256847221893834925797858180144873155700557472382845860374910777402447014305062711797186499826306353598867311908886822596749875346414497052365182042014720092734098123475707375314724731661920307020800909599810886816934812680277900964643233366313595715114230073239678258970408557566027240699359099423198771371130728256131641285605486357208327160177497086704751966310448636344990917061275270581523871207572575965348107709000252632415895120234750713791717816453952432756682359448166242202240307653154645006251223586879668944368173505638303780104885690156706845016043318768116332827377012166000432007330887498651772082969329308700644295381361736777798531703055503926601905386614672647084724491789097073113395169738869233330755475205341156930721280267209005043296129436736885771466982802659064031597924729259055340900426385272255024834289829017513185113807987313554726286563693271239661464604496688604075780921939828678126408806465728436697336718124126181293455467637224304581153616234816982496676047775097635153194538344980520001632131359749165382614530428525787804540294238501381904521363884838470589131696441679833537108474695972489362602695221877780265633924640668766652137395913656694712570638409149497288636244947716665912797217415822313442624178853832254645107695404806665775621727545952005716981497813897682303563891384098370209118728617273578401572484316249986901169964408724062206465427731899048904058801911458928524208089111352422505384002781948552231704881835627461376009182871680582895173530756817075645057543964405755616656961212565208150195784945853139223463872459899245091881197955105509337534600978445153704926466538444309104360470314643968743084411106375012709942969856859994904590218080266038414853710580131764470576888231857971801949082304344499394303888546717765895193621454493776098054998235036927562608504349421543163836454512615729604887166775656800518583809398744483283253794854950581599162760775149609416328814232834057695286114905735136523370647711181943406961746621185962203971127106727783561523741840394233282353631778182148549360724462668867716773753973070805165258575993095707526643112107202656118828841672431834848677370002414834579222564861281721871183150721795996271460368246219824049016816125153433580782092591367012804721112106514440648437708256153866076539835242118831979132819234841651575749255558570905281679560373753151089459857945387201228799004146016628769533040764602662912096856866328408852413800172484965786178657275385775461970527749902248927771098464631250137877152563163359321556165132363584890360384922098636471345567112719778406156869229252180211367831439574252757659576442237423565622631092240248573133714613756295353689003307091691082291426031758057925123572650863628731517783794050788231787225915583772676912639500068026412075030572945666904839408977779903147443656446711391977219130049197318414817109645540208736049248235656318521543810791558399293188777256646565164445847835908934075587212501504073279274936603196476891690648588064742160231652814278361671351277296845733113789988808443418140259323064768987401435116552740705848938925031083650987874126461766261375370106238561218242863261654565992238568805999288475624166095651002096793765553067011299670087553824884937520804265338607142999666055427123648890822060785720277947877255585281373567664568198707279876126418161148832588860024613088681836402099743281961244791222486573736834667832686486117811643055483001481416317638696215577882234425347439598000359595272234007455125095607415168488975238775428208509299377875133443224798599054059210919859576524508370657375791590750503208384456678874658869599684094006997697435767339037988420461039224438126201580926126511123164364302490521654401632599483531977044081262523152505164646891053548373537689768490493435215606464533188755430450148991138143104781604476818381388235251987269486084156147283205737915486919875153091479894601496398058157665433423483679516261317738476564093132159234101858740399519360572630121609128757698365926854711431648088739631571440816632767155330083884429122220384748694494964071773578668644155858358157820496518006072378802996026517164698136557879464124910540086837777839651199403199502633854984698796893544184583305558784558036622425679314437765146828198167780686306809370242118100061683839482741569050695062429618319807124487710150646240760989339649495800756464082741225084183031521112408116203901219006945223857929673896332055104171698187773485106245110947420101214003380096342874207829041712067986106901077161578384877674025796181172044755608157369211204362193391380974389874023113428050965506588493988267517321838296129057456499991059623083832914392015003266995734741798223681743441833585584467982001844680711117680058075572269057180184916742580063212350944569454082970900065117476407422265054848265459243749109685888898587979148094672314780672283044294809750087376540456584469093340851082674462323038879567183504713660957045310641782298871554195385998841889166174713253919280559709517790490594158560736369707587427222994910367269083179900530229027610745310553568143180190787126529655820740082815522988329746882048947301408247490979216672213990771721005091787875925981485531735952094677117086237373134996568718896933263265405562591225993826974717902729542356036555308564964361225706545933868131916513183098617767619043574399732932541251837061744976032777375326641818210428276774875064597570796389126430853419050516882663429289620877564719339023888706668973413189122006460595033968720507549312832686288281022501163002501559892543009213530330610132309661233893615370582781824056483908297565029042968780350061332501105923006670993362650148384531220734982718684098584871552470198293295134989950961357819220600572176446676215730621118744271023979038656289023652106881300140266286070925536198418321252098192281363948327506338466244866049935955606268938082145303765141204594956003978407976114099793239033229684755217463389079831783564530990339028732520343786579654251309617127292957438966322980565611716406917135219754780314616969104740275431879653747085945362023433358419839131067909778588802054275106314629257659314355080199195994587258807545911733656741095645084944149826341449432245116189023961083485912284437748614921672039229138297061067638590339331099793665011851395043907914117608760429066667621979838572841300465120336637220714945668500374900012931396061591854421792393907752225798604792891450336268196413891520709611158703325300438559996293865295316323638027058398875673221066066801859724839746950283827144861383410527510938195333027424183014516282146623178875709890660849999491956596653623023766184401052700947806628792304158367384067614948798522354177285049108234156973418954607326756598781657046209079702346142147803474508374589118667219403421438817918034285329414070186485070528146912471469169457718269436483426977548555052230865440341452384240192733801319986898831270883669595698928116203831494031321147895676979339687957411899721537243968404002021463844277620876633284499604854438578969856109663462932025214664071071002738035418492522819283319267171979182550799180170053493993754650130116722461530878798876717202443872837053185406778385619408242744669995176429381237981755778589661783655891061077261027601054761760611216658895224719123109224329128923990011251073991135065993522165321310643403932623574583034259834987626184616563029341498129016554712281573049425584174634670852758588721140035440474739709834510184203241803468739919072483442912274761418289229064158328688134467949491788200506233958298560904041305128270209966896281221737409371193666315946801517737663381574701564194446445755345687183112482481150885298382457192432794829817451455459810058880909843714786751674573864848635571264752308857504065341585273564914739215194736722298617841168232251506847060408938566329344584543878630942998012429013464566372334919035292164476906732194042543214240395408559266201807034024203031463297674359290839401448199605407695826871268682030011998226057098521142326431023564643253554564380282677146473166269758365022488063354569419104305095266064034328591649822004609576901004468595326435240885531339918221243748000712122463690619743865163282913153915651659632822395060382562246031423685630957428646582623991191676883263330513570175218829309317259238006626539430787113884525703095490384100112630694909142151472426544720057405252617825735410549864988660858760787977635267832855867256262915112373118548028844895776063026228019736860716818659236152586280509411156436830073764588655919475024668901906777758583443729781062292325515942306785199822119914859832063326556146101205164875993143529831472646873834887498504597674232287816225905162282183228235671077715978066939923368733788414504274799170895311331331132737017141209086098492838609531766581277472758048021374200035136653805020321054198558903208553118275559619135482168316408925731863010488456240956987266727687827387046515506968572702703836414611288808561175238280502360472378014105456975926218243080042151643920585966827794764367326284256654347799832673026575320184805849376533587713695737886537281548820064032742721438710175579291357324412404983085149018031513812016455272916154327804798816569090071395810177130577876655426925006856451667660743506501161569125505719208954093043329695967415858793060503724643909758861700357230268640886095805159255653528477672365778955267530825979909201853808122130631966952008041840754156028865649106107508670932056152030868346419835515948945868435117042121155999268230189634595159807237991721847693474763754280279718553943684166552906430232475394058445866095974587100183743855026228476997275463899693961508755163394826091496199214781230240244348294598144053079774548103293844165859324027229109883905858262305460061396733783800295743884995250454454074148227411397379902313780769824348430009564586445440596409067420735518349054963317671384967210152537001608622744409063084873407532948550630430927437280954363197040421724833162113368927643342557663516726049287767861147889173317821451464685785051126825092177514255740207083659700083086814082829685310120887577052161393804604542042945690971555926595495715061744673876863896985840636677311107953108256498850283719487684618418797513493744692612727953461858206242824430156958104297280503673357723804306346998608684201222794943635109283544096738021373379223889612620817046032892434817462600070457811900494888402202743346261417660950485864488898234484390378591099334247398909164439443473252367882640595750362908994944361626818617980210415858481084050958539020909819917666722070340666082906732634428609964345266807697899624791852675769638128498705152146960416700789633301067405684735418936293587622322644078629696792959788204967758263716300052235595866010174356140284137167412583128241899737396240780851899459096701002400895765269422591920458500876956439721485840375251834585723981944399966378684561114303194690535875719128927118291658994203873694468511321728342361319292995093559549369469557572661467817422421452278318378407566363376113156358568175519343162590682527910240447771032090508169857052663339072783198586534924285452342789965993808418339520548265070705915558562463474101154686850640014974196325187604878084337261846068471640649990958108603471651363825546604384584881025055532160606551605403761838910813753978516088103708545632001999033733298744458505199605586119844452470610648747837382095098370615657337531640742270563896843404123405979830304994546809760321342414571904094619277531616590976196976424715520153271982702093595854792527452315408027003511609101790967660101902248084429465254396928744760057873711306083889113707276669445002286302313139805737043112025253993982064378222971133961146253805386465671216947175852985014987249972422797854761821724202031303040220235156191501756171788241207305218384129719170467542013222423017134112343547820374592839564122824817331480440757273002932421534851123125622408015566386172718668826427053483281262906921045373841613204070023234430127106945957457829174764349836182343125969740535357241804966690837583382428649761795060642941280181232136214853665641723550501627556106772967433125189694622225428716593890950268806109317049666379269091066368892521659081521426361678063882525567330710314896132202884815181086657782149597176353165916369804267785833173533469413100824457514798750315410750825126864031250425378042060216623616066692011031101413221682173820943289070667949979196878148027819181084365148103084899396476834826506983726884321385277188586136235650929924412588025877369241213971021518123706081233387775443908132494167800898699072844808302585706869130026851130882504937966626504121638662882288889830473899604185451435788527580529684347341452412860600871531369441453311431802058735981033478130688590798423764191041682954417480935242190058621866742387517013530591357970492128574922201365604315315829324427732823687583875190795012912450520125600324105828994178511344116503229997928572204035100060400227014937698913030696600926254791104520315754345367071069294052785449627972436972849345392489228578596348120477313660618970498562415839048574661722169216802996510680926186920981901434062821086818985022633393563015939613943167261513660917337650982261949133545035623757513910585357886345430720449814632683185567698722370367375320101893024046779866246953271126365560272168217067164932191080352905923260842168481926431605201608844023204483949672162226438097230085212619126409253663255493737997013800815290148781047976415628032607288359931412123990506252492899277176191726105590554304176518580608990294268577995239566403644575370496590931289291086177875354380350945471172149308488991253683909711774252869496521665144916636758480150879109954210282970288882707757232749956700013764140756370631420606413484674972986381480027346380755868689720644739700888826322071717439291427910177548173278575160381150331860794371070201621981334976146803797353460286473621236919557117421323330810095978960783079691442353831459478222360306765621216830018707257229839121984902358261225641123175612990707070861628121075013172459910795743474768563585610072220597092684914672687211845026593130703163584831869120885282317165119886882430791913311221728732703309211431423464002256947667030502498015019241101602934550503987035915164379542473604068658066646067653936303531245878971920752048145328174825011296730332035428392658762291257533792112319720152601238763819467939099958272334168633462557665170840831713596488605729367290965294152880190154580015539085401967879843347249437020474227381234319940520585224166742962637666497572680839810025295634472829821819750171379081144376263493954358902636996883634881319798906576301782175938152485439597621506346663701794638971468664431859524874953803188457018692107089604754842073045229256579465219255225488490775422936070577692266080631222169407048628536757937819874096537859572669482317709285677336639578236508268052210290052780001306192450585076593906275934002639401857723046169026214788941103510798614446642819074200147460924798400828145982025946538988954863530278765187090017551420357910795165858895430032248438329818095041112535856528997141214590538998786455824659481503745005323168935016266643333573243383650454971683043973121579536075988630569425104253159784722374100963677345616866998638929219558951991657752955024908863891986812731284174710711966516619794882850809381356963839458139865927339869111094044605258804118872625951002379997129518885282228899852978481967266739491727651655636374258675601169699980195904944337634813207120298809450576955251456663953436189605911010509189473697696392814770694879949541173746772455367480088008535604373460615250481041463841956353239224419777711327387951340711215589950514263106113452984981815106016563635386180000906313929279890447265675785475161147773357154574640063720022885893279858702658050578654495737066141051230107193624886582756074924043692937868120182745020477778196234845100480228547924644909833951913270626423792129396652520711737209006135409071766848444000469634701587463995421264350839423999511570419738809859443179000750038270808481440599498230371813414204944019024941547586275654778252749268572172385328321427430065791478446472512521696540209404203677406043297001642205506588637383162350560852432230963949379298563120558478415654875808662183361796443551136908610908851957712489335991705398273115570783836291632304531707783179324562364551110267805884026383332402676870929781225588688569293072032584898908353308368392756467172172999372616134902057868020130579190069463862194703557913184562889125604084265956747460943118139434326301516974310291162029518317698112171470057859353764909085372942992781532216973433963284237992456403435197885713272946881936344324219614345652189232923567560009198239263458836691917818937249902334875651984752839356390070274618555565977261773998442988188082404538978871109433220260027943547335123919584109189671755976645095864193204155319410281364460617169614779758427605309530025327927703057199718355660475603577186331505073931393942374445029532413573257631202673869367585752522075472186168578582766735683178540647058292679573317965360166089546366354989678036674897967137155962677962557445011125270339069315733714642284098780756576055204926428792287918792118381696874382355011784799860799546680581365287434744234500857824513217978599462050873625725796319994414427995483324758987337189368242428066447317442663019265898487108284490572113315126658338498933268523607187808209978793459916755902332122433275976108230442546742778393264334747541199903411273172722879636594115318389868246742122375204498890884360605587990113349369935530986767869563840094498882768987949897364724491466595389105317316271937836280232568876027354747161139303617475992543168141446525859643665740452221980972504215404015503278714951269789144442667562138153753197427589151161079766240316640048570527745110725858131268248814031791421982973433487227677846527932029952431432652760326350289075204440287703546981108178962825526046670426337282648888762237319324267381239959997564930970081557431758396512089048209531836684451445166744851372983367420065959469450923354503918557322548613579622507628845162943482922147603572412816345205624669526198799848207121522220739382585816962951209405772923357142567073532871373620590869435318318682637665871719707320753514617708266495682315025931497650441396232585745885974211257565000057663374434913710788283976264761908037330581769131658363677410224697108721688545668804703308876899608512359429044378000704813150932695584041314757227637328779179438597691004937995501860655453735725648581531908588256116652339604482982221718488653310439039937610787537502168777502787421076453924470769950467051647551016844752996888005226256105549412548603867711467324382844975674068647441423530010280467912842728578449034758377338929285714362573080324749604032040964097668818852293534729475344919191612147786325803690339333522411540780270146422389332374108595820183385742560714890510334923066630851283726690595872989391722541646070385417282671707264544178470918724249862857989842919610893327555550473985133153937312411843402669953246252620527138869505379960062444790381368762778169920043352191151115322053496799503230969244315797982213637370286599587454421008576441537255549235645652965730951058918445011636961429377897885668649664133319846425046728934198950986759955722075051361592574032474940916755002286739669128939924086361680816930754190517002701182003695339660305586063467320023905711157564960200211027887658309747063856868871607461767575829418135457801164561485275377519946240754141955007037503778936281942574241990834004016682695590961682055662389034095053669138188522992112049486285061637192799441258393455237748950033641380759270815914819225438936570736361042885763846562422875485669706195215368120234516426383471315811262134612307495698727289352783614375121193906343199210196695724650374640138261286071712818308903607912758915163058931812096922696189577428723808238092208443021076830634075258146779197827013442852335490371203887795011522570622881481827427812491988486047131717450532122824573091936988312452301860636032773998904173641374637041087101238405767796870955055973382470461876244840780544238647525731739065599861292072589071612961857419469454946547842898962144853476414846455933258071595411490587176025866522455476756948938488841406577620767686565403554283911517232046972360231254335611915752637312245736734693783171457111072454761341496711945883990653675713121275337036469232573839111970042629397672090300150859440931498281187574118047250301301264858038731279287024472711870017773348764124765004280181284856241986949944165718396493672663450874402930542383521152162665607462145537838314833857350604858073478124607681260972118454240016824878875332882595610851685927801402491085800354192227456929113407619128296681443852310238342164761617508239071679625793912025952068139333574412848470591155271901479310805702674829112437843208633600516951900629342328242230028349758597052857557566468859319190230095259770177893246612567075699399544725546246629858053838356434813558315373809854703315085145445720048092703110765340044914259433627547487000077888274365399196310576979437138146955118537102343389041631364247071795767879997552440518737941659847482864968664413824549546190421828919226834659555436306409116293264208878796226437540011942159232892324509687947685333699325465599283622765588060220704737900618094640779415172124990801546028372386117049591589944697386695551757025497424042132366828021871017313477273703294092352071284603343328749183322751990894693558839012359878835907942320261488521797878375253021048885871646677374314288072207386332712966147109140636008901681800684867695533337518376623688989942145615439013594630834017580591930205273317851572825071885116421120869634176228054451342587531006125136773551753239953389791330798144070203608827389129618007913568044072083818312564388966263097145072544163194116250926131819593637444748392777235791248372149597866259023381314527123694123764060980348327057660448598251937558086426217177491923337474679900369159727809510776025564109854239994104448237403927916156955603667018017900421856069309788538970038445813586975098788216254928420560848661263997565002240062103620268113591794722620950500995488105563655018190101616572332602576258128626891890096931481199454470963271931856464290931544937226428415978155592557422071321361355022780188961413043106842115152204682992639057983988512777376907173912507410484671091449989060106994493999734041307674626574930224589839879476592973064214690268027164010107927799360025189268598547528459946764595484232501898729793434417715244480303633767785424936610445465317089744065330549387554128302312685201336828169729493255358573996448376797169442994832917936060186269703007844059368411337303311084570616839998767800454758808657702760243007735484390676220572173869821856279100551646080107753788487640249679413906863439221951169401082695813287720516321778707761759081191615765141586151373968621193871051224510206476155144973645660115642892057611249872820474033642818024988658934999771027813469565254838532359742798838295758930743874404637977236461222079500406735739707648715374441702942014459782387839154360856855097547289591506414669207682010382804673980527476898789411083564149911200532822247738277582566149050953246644598225325455231489858010526203756156384093898405248433048391510868159043617310623494536770104017982500169380453125767772551767287900778806199862636709011271191333932278461480872967878922023434370291401476016494487743420185117813706544760414399756085186663412642717414453350439533644716654077777055302970345221643884408448584213835326995072579077087280052347610977114309427694394831792814377794100763352447853561620919117537823417906710835447446694947629988167831076895222057298045465589520014697191255539621256176573222901382744862109117774543162860745845054525219455743890179739413669449299129072970654556839703720158060027697106239874211966461687699274966678729443438626925119216365357443166107393639249699915688000506208077820711746712378668047287523229568863093447198571657529042542744905538988064139185381992520980470913397769537018617370646007269518925951237121502156203070470131604062468122394644735266838685359030252487484602320400375007704024134316105134318502602587846518154698975409743743227098292059416773857336148493875029576011446367158277608333837238395697241996911463570008808944694091534631616083835014568594526631203499798318010314049645270747030453685343677048660275189116025782862082285490665134553559509100436949257441575795450715931725926717174119466605063104424073967435950299304453642786179078680798542862621164508883762955602651639032058291717113428575910762089844678761126223406931058903641321121510400064463676370218391015630139351067750934571133468263611857431655951046970113123934707842701309606759834371489966396559973383501694750296341427024452625697426066985839893761253620751176540132875960613372419598430013049039996731947145985387548245175690156579310356247124048284704251885335013367797299782389776525408826608316088099158000528956302606493535086730524016783068029848609319065380723326295084241258435869949123862010072364467481603329426376605560683338737462044720558872014304871616825778692578773588053701834885754237772477969601657678434295842578204067533945056576902960743431469430624314380645523704817584452210928256918245915046085205098985988640904712111508075903593041007050886799686598215164510293176222934915377063566910923516379381531028398350512530923685266457634687232566477179609904853833480481776150779076000932611107921089895846056142522960260137850131398457751058059889972073032122639238689963393341332491497143011160134523168171676115666734098499618135944631925636808694753082982505859284065856203327569656434428442061020349557098582247485336366527309377480691571753607330459098397014261846815365967172099370350602507843304594822784777532648629171194921925553109473982609685784788341001083690611996071413799405649616660524055919892070725167181476194855648857416170268336914900635524838142384289759168118298158091586647201065722133825885500157469039853689305096196928596498853102306294233653519670095151720339181715509461149728224718185501535324475176898978905337118011618892597466211616937607301051776747823073109529321981910830783961461279609531431414598397936191662066595984500311782876222723985676461815045097797913445797316355932550544679887801073470726599926425454883842461381165503051885523221280019387516374484591735076338551886705954398263029924226333141301754441179457959899917731142626710318794913473594292244560364824842772982437179296134083825667335310183095109836927330525818065107412447396460099906222365597509411303028078426016031968714280332539974773048951087226170013454859185373471763258705349767561876388551890575422166988487901453863225177154899516816912851893454861228162079261230417650453965608009819505725915962879907172521673874934774200333105536607340055899157968501827658374966801158529747281482547255601628775676573897452883686239734457906261636203370660049390062918212396834505463180644615956666851589500906246795370168842913359466895871411725470718899670214903697981247918634300824186013470095127701038675164795106694667598614938095401017579058745711794062313593852742785551421331817850916885735003026459353710349318343765455187079550731041376339710004717378297770559856756217545363297933297651868255063294041772081313907803734487380954778068761312230274977467537252289893891444746780947760726829857246568263562571024314268845427869611014824434502485120085264822313868953419239106460250256055703499231128453620320617919449760834532030458301883552486992466317893503399653626131745218568317551239662708145550766187209044663754109675017812690242618233924347318937799138376324046546353199448349024153238475414675712702195927696382477610233704896708839110707828772817616517673687476320191576536035065143508875820831902102090283420063704194386456763423035940280088583529121743515782731537265219545703588124292214766691531503635649411599173921679332126439869917300860898889790698921218745970425039899189142722396106835987910190252859877875446649635806296670587090174931310506589349918253476465589124616410465254067979320377358781357334892516090623834417904083071974165637776767304311278058780625591035794410675007407506785003873104686141022299586017056078999200415078896963527303793159960188459279785437249534500631123140989289716137784602058258467726141223901941939883328110897530585022881064442210644695547931907961080727301128056537436152725501106768325365136514911832710464499551723756789729176997606095831427621569755667466767161268034932571647748030073725324664580391140742093737953951407939782974076624696800678269890243442516958618276412509842616032036694886500698298482444951245017813678276508898285587531707319386394053552065077564003302638950948341125720088898342142528046943064602359979423671814649719750839618765731128700495397686713432389417532605880430629726275949190188512658527485008883102221018237630006889413824978390159799106562554325354442430573016997401524679724650597811927158692832751372236203171653261132669542054073346097645548137616990661089335023577878713726626005184653370439359941212238794467418954664325834189405091750865420550484364068427916544319747480210507189665741836241874709308737423432755289661683625909663879434953363059355027390782138363640252867897908695274996379875525719418028225059051066047195350215356165881205582462913696537518237500728092897463079783141990057117117303077115995773962277046621382104221760254315929988254588045666775979686511046120184523297861513032082372144412132355209568365939421269205666313142583137247859356761826602321802279322577347677366835957189996404996823472489513757097365129020497632229771749980001059783324580208869831001684591282231068973783148964520931476133362723206646534762559020422601491650428661646057317663136874108319178786023199484470768620769942308748828165592615426275958327772014659710016920736805137510314126723542905460865271103291853016797733210611023301173198416089761154903348119784995822697773921577074901702861476935771069228989294918239075634758387960616641857746241147284080806578431214387546000975376350669747171429496769915606674612594098220043435899439409988437174341057366576727694818768120281139990314797955197731669234089698786245702897008686607607507117977431456703399813474594733006017757406496421848898021142231791047467542565934257208604153309475705367792678233574867563304865814677969425316475182172647089293860770135738810671258605448405406328050866566154404873764874089798674637783176846218170504059708453261679254376194997020043290224476084983604154199801352953820401242046267937203864391733783183467696960261647734593394583939608159329648957619645715034849600099891915228952468433850630993908911507422871146075030897580857979151556923066523100542222525757625528304967795595041666951503918627780927797798837936185301030981133999377563214936179237234110306195230783401580475390139313957924333669021369240519251132767278454817295274022427439699111122270308941915011313452905606948043302883364098832857300035788050343571547597710671658734088824638035670214677291859833536691341274535724915041573979202853148500021339107357062645641098616574826677544833496070469197323357509373008903582641013038366935549100869033794362551510806825076157819733606770716946702187769053542260957652032848482647068494841419515152699570030269963463372438800807177272050354102155647026651128371167665831144617182106522911478503964874041040662138782863071457936680983226873908870556439085212565318220374247409538596734741488345770542805236726212780318917048830755115928616204936523687912357996151580317820960815365228524388536162865747218254522826733046424589231121931239304496466469863496170349468964568330205596564797410234556144755614197468684965482145006990377290454635593249790846955376892106554808267848200556674144129115919301847354281259166571466441894970943654773038785946661211410730034078568913995097387757225281718640420706459053768183521743034172964000472202256652304062197044864096238333779667654461902238392685550778321342220924687499547451254010152888440811572285694567757547074832008953604465508206481709155754250250970031199406864485367329594978908375651420701089941262337707730060596155288260117618752865029689653994715953699972176658075418105190005181542516675999766085438130091161454023077740327040989664870829834250423157802548080304118275590135223876630320375519345414858588394575460209212262164663276591037261543063755280961762638812155261192430539115166452342019889130398405090148687864904116774635938503346877018616196705617851530270759584309819412752590675639086900504650129399970532304283505495359951029330564849904482538697051908533236612225042847913568139980754443064712872076466765651170776494335779295572457325279659561349036785357182343455019444251210300356083402781476559171198697181135917015696892102741351606806230992264437698066026710535086160688247432404583085413931120077637753155660749514220269571954633120935675501380681770248371455285063808600545265138930207217227282520583898746366781055631173263895140219870220045161144390244208182555007048577967538258970076450499420309471213541585067482325568323053939308618913803435832185326971957766686364180341245017811335743967059708440522158624311807836400527548853286506317229096391932138371987867673380629284967464386612555982847006027682813073486509701904075773191588207515903053990174004199666746846913470227130908889095463761786685708045297409100205326749016457976788493099340640353316451768676340373868152501621342595573528726481230322940772166990092762066118719566269086022532863431444758760449772989599384295144899450552858473692357035857832677184445400163610343225161023759067226717620319115248578403531041663174516498130964275496770458204151351296715284947986838059665084575025793341878628411541574458686895673353919353961922822546785156211400865974503495555966655800536005436939438328470564302222708353942656671330353551648724890036630937873038531148588650668620507047704335700632915888037707086620977630513558385772420887247323148345755857617183163960233678244208668684083154627537067399740133198412520474951300223223708299499285775039895514414182810716663691169604559396754247134825386337872023169623627670688764227627946887944343215054211733249854511494382755563010085891033875815548183034767744716519732034620792436570361827265215248806301730132840198466978471280827288155582686664929443103900734860627599901527966362243111739687631490015714459817685835287935873784566394496173797920329122852381376277480021239612617785078969221337566905579696990333160647612123998983478860791032837264123438666499091555400724198238043135204755136372841668307380218513975792239158775922237387239639143490957685281160071969581623275757268435125116429086738534502076012535339849608642473871366024873344860183049924911102089919106701028316748868137070410186623895567020124105304167514391443511007234936795638953105529871625406071369094179775466799713600878469293444619387424088355579414105104357518829239785509561824602939793896459724007642979892246472729153202310963815043811289699666828626072085682240813730253195316878257711768403804139993366767683061466351022403369036939822458435864473073884623444490610320374959984700973735696553350022839865488055227865997080133684198722601296993134408864714454300634431899122696313665596959356575826169790866920815061194968328364424960219372685804189908733231866510980562410620725958492261613146661733133214767129863335914927725127300407256503669601833109481325454801299019149912865038176146973515608685506472945527400733644711026831421135826146504847669613941532956805447257699849951766715433755435190379826358258811362092747540781231198531680918844536071429343904799621716725705689516182932466359208540941280764721382417640022252052659493747800773694751255705209466118248652339194992490620540127394322779191146334371019712659095392011202150340176890721173873559634500087170845820355037292993585181112082965777068316934890161494862110607421950053471374977770881701446246365089137819347175542461736517821445541619298234336350883086143906438853028035721251110053903160818051104047471798569537214049708048056643054734078617741559810170281675115628518777076832194733583104472554764555772547937768226669709333025091504209875788083724344539869364148595063251948068600476095283119396046819994983610398008610368493366012638499313991210191013777328799483813816412532339993104664211251205225200509039379270068732674046229964910726198380366821509754854046039843297429048699341591320915070814547265125882744851474070095790674166033149559324965596283772397470415147136890543921362893180253611365503376839482601614320681017781927862136659362514334037776900358076073378482797176005131865684906257607697129341891592369764402987358564963732247109098092703494908719692083657070959377786968293540747141325545413547307248384718748702965382766485374465472725186211350124209416190102310696289505487877579142054141258054741682499697742197482048126420555230952565901050788364205735283828882516719323954878023208104956696583556419429447052633946473076023070347776684054539720911800448299955302314266143387838639637515554200492676773941121466759638543118510289129956732343587674232334273360799377645962411402098642182205139251618312237497435323506281428051785973480351790422851638457940950377263404259859388423320008368751425837011114220344376189615706956255188241062701038516498427055330824729313134302886386598052773760393751008724559708139536530582108902078236684263563705835783176287598198186884452387701502074267739136276854106085360573828066156842574630898376146631373399438628112287176457450572331810778680565283981978056074860206027221947832438008206255352217213087085453713396521640141058907396702038435040852684463319885748815475220482308725901227499694135865887699759987470720483358101136479922758089054256367420199987132861973438447599903595003716000234184476624793168502512849520515831944338834774014196946778663115573249713361338851853428356433125373634777931118123089627804933022332370516182234801080281927607546862001784491994173554982977376247390019303433737823388849626992612211959864110847160113565029547185553647627212010062854608141138311567252195358411098738603267801902884781565502435370376444111875551775644453367095745648012004066714618263952651172022772817186951815059184339702681395725553565736543192336393904557692951752199980200834233655727731516665233178968825229484451363894885665651546958506274655807608639878226639104920003032969870304422407422807737278039729551684896263402633555229456037193354222999113676455313641288225871343779358046855047346539319483071713066226323197443947962980863812147465676673345634256827799884039100001939879103825798054393656588837387339543340443507526237955634177960220678033900038775203439093313687698845021268663468683542696484808916843164968525835251453623204467769676485328702748169812645314893668857268804283022417784235347392175951932407862686645848032185208879680622409565137492983532268798906201096550427602103144878304344654658176672619820834555793422449282064232589339631837909220452614183448747843005164594539616893963686237595880230074849689117874036844247304016347118974705035889123683056720057190235070738974016775658048087000144926823120300124707967142500047096386433488215684162246839399041782912845335409238210370335115373879285676602691783673999332706645101373239294842312372736562704124133233742335694874062473335613905174930756972413916333322274807605180399433170201831871290850074203335339184498590386737793646143481938498271017916959207260566965701209844402806584531958148111100136734541683424744594057724804797468288028331901574539963228520843256813122470685577524581552828510705055955664445367104745031143831418410886289106729197501523280871953365051916381307295476575064876053212842350500287861471703061848991914202714371903922977054665334759221854776910622584489330819530277864630488039689551666201854704200612479196400658465734124158850019089735114875145034365084329810101453145042758928145267582653816479199153915754529647347889930158070494422347166576502281544299300027899784920465968291608080280030334501635070011644775091719165873881192201646702677089705039695563402819567065015892062642981529245375486451570228699279165505663317367767353370603290826402471451891121363107457374529891684544987504408016150959809259223127705729359259581731588305649130101808926961280154275654531584035464047908731790520438590430632647684038149328342041377547439821068030612100097661921349357346494666983953479561089270881756910617355684242678827597260638999297770819041035525699009154781607744888728428799140985857923958615014263222359388804245672831586281316525472435841744662625453155228171812095241266238082822333569575999462582453158865166322456033944548879066545753360658559477702485577338585485072654621448372611733698838740644824637113362816359146771722302404761787208564863212009824374659991442996407583176856157443620913312473491381610039378029538723846343922552681361217216216987382862624170345540672162700785095793098468663052635475836929302811373386754029533691712987042376098651949856837210686256903676210852368200158854837497292792849860004409197344417058519089448165721645358558518366194384405836533812891964851360921383382937371458017501656112060606428427120261011724663268320004277323489424996602315368803273574766305417236198230940072542024284135218985824619744867741998182206701500310098182455418116314842187140499133778814409730475029100379947172119319982885585655206456408538752030847385091948447386005014211652750569726610268131924655103565523645384950696562132999939143642270991820241060637065624387490850098551001325715001484174338551041715830603019302507814938633952276418473061766184852752131980347991705745819003203881667055126214540467218104673813614358130692039218156660168358138577967103455464923169661863917078526040787566348861477466012843977628213870728798106857695551675602024904733084406541044724348804536654882355707402614084199696365293963301572543979279950702419316555739693754997947896812493881624423418394139414186203278854463687324078821141388483652399094212208957715444952140223858232725231838489598621007175796268806646432602847944801250445503305929780071160976815614148637273831395867705528049813981784187692864147847483842885373331157082786145350319616187691016245231997875869815956622347160275446126449257736175353457500751949081532303989087176379446240753276839851514752075474693688386235144364485135144787670337804033290868064792952844342976822543552943731315005289038539074914767458019245754905230943613231984732341829170290061593355863846775066592990574291406033637024636551667059529103528613769912598313717536453619365498841504611991169594633859272507388237777871291643382616315460183549819196584356762765685573562758745688240582350300224650662043835381002642792162104975676730465523171992155271291765242674606170055354510280624029451177672162656111907629777433174224671543776116141606008807005934648393370502566498372451288966132409366407548346188588517848644817778042130981521403399796183034158824509260878528968069663501762355074627116120711688001784195055643989202076831976697802558361369989848615981139235625235381944109853345306995499685356211474626507791999804360121841073106123514867109715064953082724414651058108966594539225871031570523059580112985401179384971180607490305732849696701423808645326436764476846291487923652763373044918790139618746282636187975724786955525003442446050876322302368603677716046967087093332175958091073962040493524982642770209825533647721879452117135205094658802195742798109700323668425238183166440267991748193178645940104796719250077662029951211567631366167153380173156341709310041993612753224203272639155960988538827304664570340274129012785203650641018632785628543713487471680784023700089003684711477237463364555033720910735024827986097411192972535387993275381047579068272241359550144082390431031437548375119702140405389912971049253349905410252469689332393022946927061399759889217858736180218520924617362650449813547845318784451477670151791204518457214010725551612052572561593101471090956593642137939996295266534692422600074359931539280128887551155454178763437037712401627786257164460625465440844260960877032647460788435521801643899161321152196210700633033463436864916285355248061186843177029208228791757939396171866142860074969639790878312657033375438010768199999868845634867768287966534285582754916418616513005355091336033474109217530430483091920772406151331698462271801277181584351108281685764335981538473102762854616368366214313206796754973040798094630858424395489652221045895310462923917323101348644112428323900231378446101119995071286781686798587462819211372145579320222099456268050400216477705671808433298858922172108081444554424469387409822006049002069029999218320159129707688510282060871194838754933878163167029654067112637403080578511495179850534433524794606939563691570218647222635170514298521241728413388917815717430192690802276322818331913406037235240661367450749149311277783295529928322429714311360382302789177277312260172141498061859178200521469298961289993993759788732217597191895295837580282053225335022797020302674790116520824289183058341650814860621407402249426741666476512521922187424545812359998367269862576935626033151972649926424125044610718095254187597524751590123687406673854925722567941076495975235370361154644216075402436422550699067079807230464773391529323465204401929166123478417219944699557948286035336128839951273845316333917809005479919557347842618343091084236606698668625145934476725867807219678947569839733847610241032020878689779082360923834124361235980023825611732065603877226494441906827410227579318399942189785905606632410455214984611731801850234596895579786108525885399314475148872216658572617400985558073386430425456590130068239871889733835583286387536866900357809937145995658460884268250417294858495533896477227163196501617194224721713558390391308909096044610497284940102079107674106231098737475976714679163876239003417548160522308514739220862049805014380350866871966003822020974126927513320594302601188765009130608180225104549196236771945504178016107626447681084409617658573673112594715465569038198034157805252156088195378559537078855825129554866985829088880960126888611598029094170339526479966012337673623966627424061652043613184702066707086365700834222476536688719530536793850625103849065283608734228284869168049515906089714987519023957147813187277533676344548886747078795219409152183592908901697701193732741178968180950330222247842060857854419992735600550178094102306742859882003640942564162086617854880758736812665962840656950409981179404260319276464492103673742523535145455071118948321399519218871738496336586284572118960108846502283211310823195864320316498639770819054732102141685125352619044806103737429035827089764669190088451285231274430627020967517935638884416301620438573455947069932422987706553899999384286278099294833898829722515195376478491855516792423570382333075187842801380622102928882008665077857578024080733668850582753233596114448167763563184668420901585131718169182646896002881947968399284398537188748714643882270266269610613264612438020604591853678107051077791138974873141175830920320693831566206092333339339898305581078532360814839222700641293603492944689742431854283324712832497066931631552835539225830642910689592592533477990295120471629043976201473660298811122738498942806109274962489048517453874298031440970139973754437360844511041150419983402222871508060189397336119843271450154576826622442803025097393024658762935294213204671137472000261436680351775717469996389196102388999357211231943666595133472689957492981946495936596070547218563842768689848180339635828812251696934750310997120251440209570874729028407079157216625556346770758828024821061496494194342475560075250646332090550588490811441062574397983826780090538947190500124490313655729153461804142258472819752531994119527767194325774332003229550986220041370386946302032500392195993227078819784093076392127498303848653363321621813025627373123405979846544376126267026356817233241710391997524629870137148624686130891326119076781030466349937892372531533474389396609879467022620619470649041778309758668705265744731000652235835157969406695582751252779017598746580579630883441401504430162164958585029915185746768419066411742647027142220968444963154283808403827862539951725159747407964577597144314675127716339059978640468679008732263720020670404302811020274404798985576587693114752085267242413391603983340273937360530285297328566982494647700719509627750084255575103400310811563084399832830704639147115201698143253565447101025257330688134543761167128940225599946796086811340452575412262712037045207285708277413405527019043339579005699755860247496992461866994943169502493498792528564036512542585327812077997467493336049692929644240716627323170488844530026229222645596704890953468644578664087772298915244242723306026170041668366064010909900595113194369120085873758950882503493405582747512490566370344154673353039814085566759313573887361726458044153644423494725517013624366471662823841669478696918285252391301646778135153578622490935812657447095108938919115038869706341904302444424558781306901624479710688209102448995173043076479130007195726835810417348658378684836598503461330203194554663061100711643962987878399911861757908667643600061065990406664651322442714636567735835620499686864759777364691874832191515604652637432914190821864627482321851527725123167813578327908101756684488909146286136494374009840262613927861852539323177666086995147971983815900266742737684794402423514098076021569575915841873442454951975626630473985460333940404111840714790342282134831999076381357228124411605272102647857635589297813471851231942553169763606970090029555541680554786807342306835765844251706523178133781632165504691594612486743416454127496411587659854842885361551859211544057283967952366355115477726627711930187520962900593260372843831481213352526452383599575932890205871034539983466841266903858165048239821218327182308269752966582107232841171941752583482916850562558705366231974165377497112512373806657101776896257225763020317102724266720789583824160696392735069315803026808207020689887052318417593004002141206607218342008876568325151322321083433465042552405104353057503623961707497380123606597456756121163043817383159353601846526279646939439249500074167148277525255966912153854584253330402069734334640230596072603125063146849986225777277507896225815341015048993804922985768436071425975974912510467609035193686813473657478893781514719299718436388049288672249110332653434296466780385587757225341773930318888088772763711590879267953689778592444063839839412464463031661817786055593052310859078480183066311068806730226362453564390549092237381342007083989122946821867662927234129974109090901984212635045834497697567180653570424027113544913767387852030644282556914993906803365877612814725182689330457162798820750314422705493499824533696420746124560876457870707548650462644028812195893591657774183924780519327589259621800830963558479278250980560535047047031643534308088167643382059022458952183874423224173138620409323124929409332127723710916102385364588712754659455524221978186805007415050555059076252390483129135677770529528339638754211898909877854938071995472918283870621098733386042514377665636852334822908786233035401138415532793635015120143278424611826637998607857850708156848175403504487968511340608687413335732635266403844726061213907245685643692381102947251051835831100570452106976506613414943175018317254094553499684780123484561124553289253142946165278277507871720602995286290273651702026569528144340737967884568216859310919731884437030497252368567857859873569523386029560842838433257855013508119142163673608168773979707010997566591410650626986188530530239490167335123603874089838872668610877934710313223429544672417352829843017251612991861629299610650749781943101971666322860675711653984510626297707411430575989994397575914315630322307201106402509904406586632558855507440136740110562025335194439059812183925759621768580593533687330885311393821261675873126454423522655534336793610084507429414891254944676424408870190390613134469432943655285425587122449218959836732695174271535159470745620155783713994828444492949382101503507994524170682233370249315697721283606144072336345269094876921821129519483983754087386938257625735285114863117973761197833689939374405485334822617336252920753245676036781132826496178172346600877339151584154026488928520201771337972743584111139082344028567330270057893891317450581613750470809769560873529064762823053588424883352466309891844250337070154147459216719290870029353549844874577468560470361358077778998488420083013539713391313724802625265381578446113121714813356152022617172124269589764396705290694695435762180544722680701702825950470012488515150335254189921901448920877763771684733712809086966018958120409215604832523268297968466901693500928063025543152176668120638846322723106902077062904465273042898466550623436191232850196988866339638002580695061527621770786079745960499290978384034532935509699989498721661319490143682380588262362661059979997869315589410847970199356758093294771060343754015630902184733349922805856999761861451134925126414331003806210370512540419531571583987183421973396908226466167051555037290857165088399135518013323511036329743346596799179454131445384760768902506060342071822052910600984463944225886753766828038061410578038952364924862251524330342735084577083637343868015945180658276990161207100225092094851038557188141476756543236121299258369198454380413589048761650286901956524293007320517247384111904254217727509004437550051321222688451996827612349807703256047064223980115394276981019917654010832729997385234149011873000392681278189452342740801698376141136293475258290295188431838849622952287089268836737807187935329747218594696751080477107515389646309945492277159841993074526058794139688987426771572117086374198007711212534884803059494475138626314165948114227271757132262934557429230732081499484168487239386557782944729411467135898356204144077166048309095559792153040833567206457831249880227828316594847911574285803821667347647836658083397380931936388606980223459988399453455762115811185286835424360052008487385939847513962453269465728349046974416489463112342199063920972293346052138286007572961384392153410391869269300516000685996529497477606078307718884833214103449507666160899379916009662151426458905324418830092324298325428948207654975535392431234861852902868850515528852978136967878400269711443746403785526253804257528428914822168282979320257696294824959321309057345994725605458748861220100074798486346283421481631619205156311607208836843790864761563636577570006631315346332344961682690550623476556951003650159448137739915498803440899866117294320413050177096838168905377856409975265414571869730382391522450749812553123593134941840183980768043263441494049459791708562311117695055150435675019670833888743256344824585671891656451821475211595960579587607784392530587203392486425310967324463428158077731442067191303076266734480330678131150341401284680436377386466123358626211724066836554863056366041287975704367545072599393551315109336474022188366321599734427364690673634791508290320174659170742804732339203161604903006273478036834246964595330636698892747481146723320100934221889356075449433108329919488256108945198279601072692258703612793852286248200014008782281661832695380886786584364052015370857867694967239910425470074500718379880126514077656018062838532502587453931570472124372741293632188506389637493980491638739776353469537381694054304817878966699349032905419356409440227169517165527231651191862229186106875249625579651268264660839339958796922623959118354236382006365188606217589635169706563320019251688613570219666968161683059054829891840323227951270516301952270706264934608806679247865632626738847283435324952430359780753133400683515635732135304841186136259941989512960446364228958100631061342957450315259121265680738755880579045790178822174411701549731601131220477494334297611196700960751151359081538841388470857150864405909912047717921849627940736078906719969357947092570712282845764303020414354127682679192409120871790188614111094334058501403523316600073752522382219316527146572091502124647447182490515059958802218005138526060412304990376825073219864495993487806487814628916066946438684706366547279706853071391369284175506021671313472328399249840580842900589546820556089484981121442668027654635510123064273016483991999499808165484528838423325602687550960651217969932982015484979354987580558946047128806061526341057380782562134034754599998189352690925774449342005328466599831914786098886987060523383453358318309232300762399355597925667559196419031864290763329360236565016807645988631062437044905711542191300047605662927835499464817071767937267116506108303573670361005585370302881627755115292015091054944759715714674640936045458501887698442261928004472464688043879795772625503183859489966125014451413223844689212542495777733721132183626924151995194894255596666082843907590439904840151239549600718342275480142962171768186295507912079526585848532651424341753264658748293923624307248528565605790715331580032739211328255992578774634512966751083966273616218940383615270955534337095222410759076292392489838610664607535117317771057013202003271499096619820657200808280238186097361674212101669090154714545523011862588943083853123483267725328362776556099099409355794021699622074900714985254590115512951963894177304044180731686883838495165212219605082971657353247742280429931046658747968124261419511328907492108876570741414283560303054237169227854750754623789955480843502074158800451496580751230801425517026649105958038408951005982293565391689341893598941173643292300002564346802532474500354922217576497753887653358775897862963131631343206287356197364670029357489387310534607841291090599045667515303986507743394845736110288028653041038219273357379382659054943572476290281848970933689227227273213186005771190366243653072265129114732103546132556893589879644445298420939862477154048826667776092136421081102176911212808205374757851839083705678333887099729121083579369878015296825960644889999240832309121857591810602725234540937396480460415337762215540253395810718486983032568944649839974198682275783135225798837229614069064847575442140814798763581187976104123271617930159549958409420820697356556323625025550479822397826799512731021259370604934959073960408176529437571887987135140982082513733154664907678436024824420357360097374236939424841013990462769098101879273425893563808193467784127612375472021389962065350306732001937807654591367241788874015688509133086526218392005056894891955167503522981525991465075674636058154356125500975310162366250200976852578250908989254866592493074970066663646248229243553512332763857317361454283187883487553098359121097679082980784872235900260525245693153995263149772048846194287230406823839935893618795435159810748035785813497144026809308627869402754078778531107157884886090250639985137071502653909319808920673204370287255899489950060010787542787368624624850705634863821823027650721580331551916561442315815888118637483548037435885040621213507061289219746318294888463912907619180510659955032083497781957973546514669000563463023857157607754833034378991221382680415344796825542929407533499742774411678762291244549628206703094047228847121239326301362242429481207332090286237267032664191538298271766879899755766959189234770059773267641591614463606511099591651043623672548580217521779286032805848580809639667604063570241028535767904692269429763039110660247096574014067691540668746989757850281968132267341520451355553380113193586831877460318963488459268808057941321709406199728061607919675118558120163129031462152479785066320568383593209080111910425756041510559265378465183032640870769726067084341219296972821363759950782408761157737045579033519003448116493788923721905378949361366593573382593884225830267049386707185652902446403170217286590745469837049777190727590724041965683366117894184049165230131256164360955992470167175039262333535745860271251994972506662834019879307671365208609121750710292083342989635965140247524139161718663032633459136001959980452747302687383255093003292934753977019143236478951890496317117516746711377853883518326825735799867355528084320756967578292264378071982840574270245535420240223031210752146801486458325739197877956006346537978057086223631578483094650860588909329320129634766093685305031054475866862542695738708622597626311183043946725246839746461470746018816571408242919154830474081926911482393556616708076975627744214887813012546923387930858460030553755745951879608818207555630403075616460005640744471519197874395958213918787190388089140257081117969995682922061745331011842530854983470452355236631128091685659350108752244928903997095985877448621588989352576127774612762119843237161096600438870238964138120748705560670954632217172176396325815643734973321192766039911011545703015052057550790390101578341425130361493047948259622443387454992466176872373454008416241203480873643409153487368137791076667489645603177124130819864984095484429306161301604771194318825974718970512683196842252504704982583197715501773091811853551164015288738412026753501211660041552337666486300750438326491831121037329039524727394902098062816273340327054938369926743110571581394368590857225168285532510652423716163703929170655994985908340189466697145420721602727603810525306523482120750967685366641982216410435596801074002044239957066133270252145617540865552026477364036373027454556773612447556020232546542714590026525496949136855699900553565595214451686716499747029287413897306941587832327798656507567459488375786719493862447364625533352412127717688870104993500788896886543004803563316846871406148126970994840732216927714940959440576231858059775943447407105214493693627502186020408118469465596181501126829084482347165301456839903245121915563065836182665855440411164981989512424165607472751640343511994918690005361189269777397691578773724820972631269937818160274616163192693250923049035406796392591448451810813266510727107348284458310690731706265421832807781536786075873015864677846207718281240596153450108550065174218958100170281793970797437128530263456522458238422465510699473813508934712571992516102052874222807978502264709424006468842855413495463246442857676308446995068938621818819863016571990819324705317576091563343376750091946202133546722452996765334943126379789578514160206818502375392753089892688900200833870729089970969320853233385112325696203739917573960017087265882560944884408849274730565380021823940062672166188115282249808552202600714069259826685233538191405982510371306568848391851560107819834509345011135176653517831056071918304564555051870147587477156503578553298893021088655606358199881215491322348589767940778763104702337066005422525346340378359407313219945817042745609604468051883754466853121870679346705987002607803225062324457580306026205311779294823631733652225529852393240047078971404796692972600876714182408564738845649411775140747842144485853566285225544666933388638312417662087273319811546406853430382246282927959850457685295663200189068667919025347757293825998937841517058574825802970631154178476516818632959860295825413298835820556214035979405434816130957035919438644619894315616895515413788838285754029387553066179855970445998990153855493939717395672664330145555312381765210504299946461186881710189649432974347470936073102048124581754549777349825157164918255567272122560652774343945411888814140814966818930678265643301011726111152452970670218021281586507449342164322423529680411906916241577118443464880602483910649734497397707330850637657482034752675865734866732736126025600790315223895096668964794567470906548414068677233876040330622381604186262101192724486935082268019435937151908334170329996067372584466236242934492805050164077217222646138584271828112615423628107165415714508055567973485391139571661034236935696072985100996499772292044269066820001331652376371935543009957192776249694947357270252116126540182715830864225471331722014452119387034363629326423329694892784773617178023828736881997434175699061886524230491593163266001151469278871851192574865638742175383807756100489136126657420820657610517261767631356324255770279784323983182716949388779598523152646992160111231033951604330638273149496342195218423169701796951243946977532826132020081535052988631487643454094992713070332722837980200815182433722994483423104702694172261610419254633509135558110851682576249474514539467082755256844085146235228341366353328114172656105986385635659234957983385288622117065900418733920314563210664646021952657571315788105337461475245418186904835051807116728867933561768694209964623535345816745293845995384889670850260319805886895837142695565067165079987443644955241281986002306332153375941734967263165106266910526265820616221130693784887300351218123257848782249794964823977566097553163502411460629334069075885982375386614731151823252271508785232407244934712270353980497618168298047914977545312725823064274053070269975624263873476690236210303295586732375450122724105499373633380427528163803253943149164421636595467215844760078078004869335289421981609510363112099665659634815131307814974859646952686172515463079914457303888256311403243242221242705474108772636317182747769563879958362320162633838112770679936809043196245751974400331237713418940107661732953810288944329971535249205958702067222659558320116223140473043841637253914797377706872573382094642130672152289047834837205335168122531635804333253667592315504269992767584736012392046706033384422380900015271296397402474334411523020731341326834629793171300939096457920623101600879428621840414756112971499399128109046817367116545604116815513417072059600672727529862535717263282977148854032249451932095744744398551017640601307962845991659174497752013949835432125689168992886296574651740551964803678524003108645940509689350722886849705479070478467294113970489728209113329081429967125219938592106102708380396075326279830156870046482655014510946762270495571629224123253573664719191694218528161017939260249467311384273312029239033285470763043195081401265036135988010738927378653666452355531838858893025909794161340982792079352698335397173348160364239433665659226637734140542542197659642736344994507750893253128301331292713812646194135341807531712036831071439048769862844969215041809795202006056189447796479964347925287094946351952786366315347066288563047894323105439949795833575546318958403354091390468720659020268573149604818609381847617183575344380273735177172430384861818985409200338401212160516643885239731568952836610266836421584316319889324757942631907113669714843992800395857641305462602282385664928786714765531139405545796806871938425556762973388836735803843892741422674600240915350884506616161280379827151610688594924449274480936156855403689473792459246436090783374119378607866851034578730212358583266635571243674281553770761062635723738593419939914760707138825454539928775725258962035203779627160791887412411073830201754073968363450065727042392895564778203254170467740347558909793376778482172650061236242876780360127717959508241470860537692841453261770987777420296528385238626933607371893911133421373789625364129866964335355337088998597966409029301907122182868013813793463127081893338141775230160657229109403052949392265846995319541135791067659824443625250059515194721179609802635110311425595373537037063006145541676951477253265431276987524095564751030822435685907637347260856823835888398952394976371494941384462721967941388568822900766895224324664306385610713478720906080626929893563033686528529582609340819402602867941036899187066856135088775790479362702053468866506530721363174257209581136420984832014321911135351257569410364122004405913154124345890184765288896964468040238202112474504020283986283066277233782607125620875044262937490987049323943634624305759970910450679435834385293241114688287622197693178261068225896338717883814042279817694709454254845861902105773690855909613361141802461473246639653343377445329694519056610218745799469044824387420684429965313871046664848595712134373778111519760484464131007789184225510611642263286292369044035499002878868848484878848158535156110432800165084176273081665622549198549693924497657744311757010430221748006509728568998205860664618296577255380072208655886748794859510784334555565293734756402928863051505282324949270722425256995658722319011052195487283777695128800442933190166890671588002423309144385330538952356420907471705567933404626571469214127615064029728201745682672360627255588513174561522262177686717932149718266254448350997533485132620765161542895950561504296742738011072128152508771081455438710980076841383001673443914851851531252374375786452238813444020235329267953729731921254432504576430701753075892640989652566594061144049591627409736570030534655835898167682609279348367898148093085884623820669094297719499680085546733930309562990926935893487402671431307409843189186786378889984810960105963111050058870386619083279174302155801243691027857155610626688109687825231729045370073797094105212732532840058310411165254961206673210173769424526750386548891565313090608818677222478845387509801846259795451766226788807336750436035166963336839822119752613919895710901899785279999467387346956770580073193703316483197989533353400050075767529850325767055941136054765136742048405426130599415262734087183577241260956604826738690749260925428325500932229451679010553272626474051100490436970285915713090795921329160233688200616984832394782932261559276914796265391350682686795404467332479419861818815952382624984657276547033328982415774744780396484999688690704664967371270739350565313771221043834872151128578037983636944660930132196969452478916706737835673885988690878001538023234409749340949291189399395709817436624476676654054451831504212312233310839670122563728924425414994721183155473041682598149149691522764117462694924193953230332842219623084945508213943859006963179248028673297670552066835977872473261327498868450502543786248622171779252954599738881931644575377308737926717265531469596050275502792585823177198963460241558861496334293218781073256307606985519902839488642376020483153503129134034439455411112219020740212007796347896324706490165644202924468449414050878049401295346096218979773202452085238686539979294737382728714843524550561113582434211582555385175249869454991078370807513895505614575990241946316502700253715515672923862137031386532296746754741402542799386514655580634533511644039350207647717568096838304050227611660422797570538433250898401110787484079872352972634636831530087535795470406783414612742169339085440631459548099750101733895360225630819664490926340471855922683108759187198233469398129884134824929753549821149990156271889979102772591436239472884942439107727513870661916228315183643394895962281601713159753288525686031003786939294476902629377672376028519241128578773967506822072547585678954936808857867991748965644755472099855350867652004338525444938362411639316206929505812432725679356351595408945460402824390734934132333701207934890392430154791917120700323091030080044540509622628229464249802396296423257165205449927406462433314356090839092694215007275065784334181570303614546242071735711476990594005884181739726735471668021540109423276914989688943587557883290282964154742579317903592497993984136587192872274908858677147306129025459133345006060814257117882898455159537764326100569964399548591617452666981027693560783118421506162354950739037252467845384121484595689581189353358029728091809073758203531162666637641067914287304478072952878484548415297797614505843158490848519797763229422611594303017587206686523732568826646838725971517670629607131754088602209659320585607594684677548196145232899969947206197827919815153499055200553958683080770673033932641493205640577613160515820133673969976955480127259206033489950854833862017877978628063391011886508010167577612121070595833977221110700558559814906017433861733586695768970477714002001118057837178984537393140273467942959520927068837588626982148732976178778683782496916835466905890649000949062088268877270165505962198794336427152193163318129503722569653824516989126531233753493152393295851294268223159220874754576106795721713329676485000693456174135143403321641354310476642463355944121013873203487623022247518977402062427564859254647071139017722456995902683052481356533350318153306928274733814382402423489935877323392663969660041987160453586142192640536275458466983678689506115980780122313672318940752325795186483862465076320760322555956793654603372806576095311640531950607670663779827414320576129542563441234087008290786343592308649094284480429428498492602960367992626032442733640090109575785696637567525467652113379078333594057898976368605829510309097156468052719690676850036264681136859789225715799618140484307797646749852276440522089109824967395208457112216259761454750266619196150841074403174815603097836160990787038889437686557921746493947643087496090822999379314370215445484853626941111076256523251950963565403066863419737290204501781566885777021017376689583462939905516491125708448315711833119465222830036517087866788393205459253866101162611816657963835676445449887529956336470971609124011981437575384335040235370782491964888509643213801036424849072731538239776937952929294510939167082250828184812528292082544370523361573295691264529589339174041834614849893671676990265907934823804829043832023031770164356998182548900057113243100523907341621844197234283209683520699567894795615851216792291616508867914389951947605398590091124101073458437206620522807700644491120700124423431118192609812425022848918616552568393182680693393317707899596881688098334337801772174538423708291063405340656773357324699924095117762946162119590748174253958806243875726001573899373333563746012602713256577441059021265596222905613388987713198013226350234285322871316788057785958781516797736633341655732691067223773552028128802869982377252093061318531983318102471323129639183231080699735339559796579555362434004510093471488797500387242397385378704932311675482721554341000668586504966449818606252339257219154966663302226276738193810209791428611112673346342272337750120573458557396612067150683022975395350982579184753173268543696344844281985368733837921724553820086156290178670641954364277770361574744718949697553110664690631621883165910453688596140552070017123630128464467761116802924897195517980799166501182763453245552135845333528756656487141641088745218423125889923148908723591477141584102633845249440063462967646745014240448437889923699645657149190293982368184117339367458609692944587899011028294529312096522578236796892770447407055243271122957569568607701916343943457371140606525758709110606651977602996011003330489802670633201733031574171681214556931087692464740493313784310606828033710425287178620429663017389489472315568890722262789088446450583159785810251416887684127545202908028401260182016749054293036938414899976404240424272975349895446283565673168907641273017569601255874113085939610742030472164491381570151621254685575499307552295356029753762897750265412207694243518643703984757196779119484891335038411290903715771384396334185605005231603957937630681073674480757645953575560410502075039583215595597389245593804045496461296164371310367232854169705482512987521928837628294301550255768806960708371363732242889974368529760324084778116174305561708169663539017200999065731374665192399581781382211616537243819497482848287267549612934047900746593638058655071205090227955706970280966214320278049000564107459556233594388591769948676296829810544170499539964711880468852697928594748137644322589325107296687183584615069358267619286527248071394282998077947223931621635613923918992578708149653270443000688662040737887235816638143798827242856289249515116438731862351216874053584593362853971378130710612607420343558902119318640987896823059904193079740428814573230440886309927881082452403163721276925971299444036294104489614093934617025697671456218428747610156060504387971107490983629010603422061063044433866232139355217600757086481631386210772541911631759147670585692011227545075675652692484495178939053112934031310947658546836517539549016372950041549760883512228953988401221843091792180241025552480149025918452262662831314663566910493119544563700624119160925673745655549917561456795747241452022697722245257436783330489222739223798181689670643264053635261342039761446149871022397235904701237120842727584311768337388951560032522824674073161731131718660496462843962819729066618626293132775783101315859282958906797492845819636793447672280930688402877706814424724939434322963896001039649145898516978425548151654287785292009047595224392147291024234268192281656093012891049148387139690055326802021987696186615305347347185581321824442884343357307016497509625939772962298413157955623562227849199433676073040402406280458682539185973069845608852347826810239439887709291036865970741519069803758737273977628841367127682616206754035116383979980977940250839040296506608914927705371659601949670703932351975278547699613097606499460976480665871327583425491879643138679919563676837511006657052843490517376274278687275353297344893090737076600469653035852812960005479532045588876400139228896891796056440606326807593734305884903993040589340406115599570990795164317243772997015469911308087816733292510629083216252292296245143550832760565683563171357008510134071296839286243724423195816151203007456470094319879330594858041397795239168215969246923880238401734082169250286176281179917486734412586128074966450264745026151761583307511498988716545997802498606175469765476902904387534975051146349700540947199618187970538292452877877954018240460083262663168523131720508230852739457278751894514615066730009273724513507122053260810676670907009856060266244190155314936020234944781687306575356617147519452547737312819664081156516172055160935518285397560588265416561602957080025095824686788331973579904400025899044872113412763667099263013666585617196208581016497979779481381923879237506108958875067793260723764359552599543509470797973265764508218873791840853324480965983987628005266550113707616244560345154987760997928761912489803184716560829821538920883052555003194053390605687261843084472749080193342044236232763990435609494932635887691577816955020006927752279770590581361301077719868646660856503789464050502240459847215582305596162219656829566609108522140891381780489648756242565270121876925833238812676160266370529944704949694825553162530935986557420300003089040526371390816923704019257705938364165674690416686531671242684820352685342440575678332494907615665224996110953388108605032018018045724848804456904208421412025944391040913547722639591949787084396850404218068044344044984454624370679690250209485629057368099323699081743180677082828349169599469790463292006026427380528135441675064385796180041913527108632740145918331531373044432238154108355024196369102972528620531660446269519522114662879927408115351354024908298985006781796316604354154624766472700839939644824085652653598023784968916259322156673876707847616625463865598850174951413063151095099313964084619130030537572535580998597913871703301075635461893031927723484704886158268437764454243167041912066255376487432224277557389437872010583081760531446404530171914872999680967866367551352076453404973969060784637793322897849214011834365762464985465752168877485417076100467044683998109407482413642758305383196930382421499581348750996276264939068214700992305821494503341601135762627250721014525101359772040076425459847719605779170566668806255588090315468344140331552603235897934218180358688746347099142435758608610259741619715972208373384602028568155723054144088601771520933294132149632144466294729030653975646716041709692893112640231572640952821043758410215704525056581496481656691823257252543527940759383879485185284027301481320807387207642863374388522749703108798344639456120317588437935016047072585277449377638413929303346844103463193136358437271619197787989240401865516568216236014333236970205706612525573247256523610307084207756426065438881126027878514746028540044917538117173682529099281618181260511665638474764795928425877368726948494372111969370736394941957055341020796342033741392804311109479637305362108069525041930261189728641991444130747572539527520936361658599575816774335873405873061211136793657547407160816425316978377203098913980828118399582045356503699147762006512723602196537819067166638399094751290882482150572534846223127674673426361992540269540592417693186158066132353289390656512952515336137796919982659401834571495495943369998663161714871096132858027286726008808093277474131740484481387839814520020064234516293895411523207512217839355325403691388894596571746164683250639951154005647629297100927452739174405628401968844251914031899130482311501169227671736667123645825107673881922974640695164256142699882081872573759358137126766064460634043700062116700649403756219211726558926189492545835398432048507941034574377610837476020333449700192123551562205944891471573657108225716265719851661139138835841059860813618978954123437778849965882966928530301089715446040618229079697682409240966507809499712122123585027191986962236991912883001296747831139796357972076635499375791693530440167895354488680070687340410804922279943374507778407503770744693290644824223490138459899719508989627652953911818810211293082034430153125631695437257193305924916464467173265845058595845325723103043943326746597291912903082022826127939326789514990181500579091716731913229085881500376671998423836761196358102781667054726417761486342295761806369791035838115161361718014134381531283920258191664500445927305266432595591352436345582757005029173111030223109198187889834087711023650691078884290710973555781423992920006270408246335500076573896402116069376764263931555653842708177530536594960062067210837064921737554396579196949823783084633528626702166081211709562549258507913678664197254759785288698192488263245741910398323321100991620124159347081849274459440163723526458283019446008470822209650901189890319731358823910811379638841975734422964479378055559223115928199353643240325228266054005524249884793482641979249529674604505880207827521197601673746118935696940284030112017562178797158656043701375649830779293477859536167646112837853953145387514778034499712177022441020026818194128081745695275278516043232220061722015474286631598925660902048295354317135998027729105756663778351070646550286393707662065656882912148365204455717384057486258478097721248758778425778700466938823273999611529713217973280685865266596804855908959376172341827785391552192790850910224317481959629927775862639634074972860534306711868756103383303327418435717361982710106601414745016085594980574720004621780744264057481241281150495310440168186614108056764596595665558931438055196535926295695715611753639714244233033955364884525123714129991668600422537280324172945752917787486778824371154108979604145529039841972116698089184935665066652623233623125822694786923943529666990402464247424800942506953020114852797099431349493459955318287986837598808379352193276466806685581057991578487179198777936262997612088401507726672838765421525435017066371811748247180328332664734826217852678729533062457637655007181907099677478257614908050057185513812948969800255243141099848117583888610669801603333172784313728831703598839332198920668165955720740247725715321136822023038161551345993627874410636054246236911838186744147486483969251788707919154752316760955666000604876963344323372569511103244490309280063085536248229942985654846249769512032331339259014901310197322919857565945549624858984514569777206538894218474261106290631915737278871499637809911394867049849628219209250759332725430378209614456547606385025587600243543165963798457209762139475134203941559076443532084933116244811896267240765677186022508038958981008621331840536474647189295297355737771244877862067953390931746242613801239230013670886934413924491924920804018729008950168547340527814357792551251989090953568686680148968436720856456234208519606564762559584375572558157059143159260523371718887896660985541730865034644022711715104022063328539733745447725740349557278807431977919738111841609789355876989893899992328751359973794187553602104802586303055504854153883396058580272892223221454238777424042323987779920327635589474699451611389814542754552424385217933477952016118206395644835632750101017002988628113319568758099950849215083829092151001506299399991249195752610672043686997371988800818315268646976851594487949511174051177693116790326344041295086999676646651502907034414016538918337043482116101347791434882656204333524881807595379781930948083861105470105668343229740284779868880037043793306327791288742455720659510537855938104765865002476864618676801807146072770056480033861840519027105571123501611512596812165485035102567241861475966171503698379501590592240987210478974455580773517163996495782555743388641774480489697924846750770673676417115290323383613335157756348276992978359202392262453644496993819792626109691746284389846744030940166995398792651648635165779652561579643716040998851935645092689662672766107620004546622445587784432482443268751994452914040113526985356219638509129176333162457552048033509971696975830949679711035647447901008811573337814109587293915669702865088159279339693204444291367318531098052615610758974541588572098800651348403472088569898020747218064989382556735353800205429307054216650374947092878259787964823363856035979234653407065797804749325943263075602675210883744243300595771277850592666177640014535829712843060670516063031842650667267230828570114093241814928144442803669880310152370627153186975625246353576010329612188487636498763462187586664738564230868557539991392883036099340348662565788561586750617890704796143939525081530798882314230437142742939124962311932984339118074075112443395275016332718099243271592130919613233077524211630269878819207997661692183168834843796899428949114963978843880816351591392670001332636687462016712791135171413603865920541105250114466958694776490117873937433912999107349117535169884395713708916494306652576014061869153731407445232891420707641803887143936430642459551725448991491087029493324685748318038808222101104906208051803816225067120948229813140902102620962134076565123174335609879379414767820803294853045987415083480523210867870299295449525588109840158824640595827163056000285005538348324909291285607035947654924184063334103713033976927585999227014158231524181699640251952501437402740161908593414467886182097991654835585280593464441722923832678980463496263308827845795644345490033934801382279849392357351895545203426690528349839899390082833404245474583844482433735067186586202386495707538392848333674136627063798835032790165145841160873637137595702391868193295143814994189649990226603031199003497304731233148075805841320791247656529746968066880307430202506690458468962003820203115728153169574981751159712202831200477851713298401292292837201348424609896415351416812775288779927434353725553418090275856189458406421833435280253399618420030131133019931187675577031204618833063448568560260844841324563601457335684596462076153955912360030235210550704716405210822390502680137104741383912860654557924880777346683939367903902493589199564805069211470745034110063878895965857391024639346669807883860476257202767219785211568391592223555450016433476555359055308772314405509418584626054914537726340645424105387986781952839649059419920636218616210211608909356957443068008206924356467284208462499275012576084685060235274923001365621606295736123572143456682239381568864821516968244714371746463495178267365465859311170861187860502377699432053422836911131690689908193091434244028625086970137708034263003779565630132449257941704500390206079758375876803482835931664079669024792606461025465069672654497005061520549492534336577973191298831014101690072054819237223635474971582548783971738250828934920029292842883131342057471218053700451895468589433038698439058886151360165178353711263934899763936335385857569859485838715274754121159110625817569970770773989677454435479316264077045110385059950658681518447952147684764990651859509908515931127843491725639188454484559835204422418255271086888950897330420745308706265398760776573961916656437515056946830898366925289069271679594876743510473517048893238607466996782673113801368434858819976013599897810047418686697251588566826382849045625607752960363064094814963389533897789306509206491502053064661302238866978890954617988381756166243862127687657333955123261948094178162259211690768664999931829719896325827846183801594384992466216166618975577462745745637182881634572427723627599732820925151537308945291290400120860638653314596691909056883922170337211031286478711103668286067010152194978657800395862355103174333792314688169585487404750573935318229467271586680362195727959276315706275516525752955428531397476010785556469693054710217222042865554031818040634772379631329879439979037783066576566916642276683245569724853028193991176545257850111676151606279970631117254069894206319439421911325677668313747448224986578808457641548975579413042427924052733242860731522997510306631439478030020333081813685624797063119876355036186499415049709577619892160513511418325761128716656237765062865757085666725105505664884527050147474386681335995888337348785690414409196051133529702240496600078989642391100760115409570211739761963868318108935023012359765623866848929016321978417326030374711498878222644004769506514987686785090096762327481947298870780131659349740921525319830092760443562096110472813518041442126745991590400223065619288750408365742787155077364767693972974456522910796600868101454216687593806782895390310709714539608908492751661349792782259228225511299700798572692804528768138163068201008306429357808803868950090071848011750931059865599004153131615834199093584741428128242049422381025536467285084740547735714196737463117197937410982911186265958297184168127075460568924495306876146628696905977141743341139295398366115963861903972904666286212468876995130848317155653140461810851064238813793521802541692503951576284182078452280511180590260207083365683470967704275958324890566248894523007040140893993431574784860424970958028453278018182056784717629109429691353584860767788758006705123696867109363273464897418610291381077429733146354621784091946406314240937859937386754357164648927540731920156044657010285873363554817554238277181205734979485537115287238541615314709772832756984072532139723769757657901135457619271700045755586179078133063746374144502527352842739168695010389283131557850678066973033856673910698068079480673815778480506204259942510224871952981801464160483618288084493416887049877210347363199887790775758121769945131404712109392417643735554853410134849816576660214064745054602125834461161613490820646425242810798325417839781688095091457377582139793532591394607801609398487413306613624816254367348793784308529938157303998790145172699035135394391627479928861508254834885767588351456050318183630991926266251963575598237765624216165753374975302881798966296124156396528990801172954708525038811207319738481822878042715971826637105401257724645537049672089377046128689585016417845509007156877482434597083914449754739589554747795805592625888208826599902366037125271977288653570237649962635437016314840469737839198900389401852963110752100683375180525262538517123707427377249752426990797126253703376432773390293681712369893672008607298218423036565446260583916374270626996497090326969466008166110202567611506034766352084015214226144994758981469068010563812942741303526668790925270098034645727203464557662602511389485094832970115300413481971081025348906517992348793280923251282581513207538128927189423109627484836020426438796700227116414103368963428834152853453918039337965762283706676866896109697019435799220459382669651959428778629357126458195352338519420668142161885472410566995785083771701496648601672713198927511627739489487741306635479817339164730985646347730124346046945278190584075001635554854033357603070709172161041769712860340677635219890669591274733817996233925787903471905579272732303149853527614015696023355960294550970570508208879578824928818652954247376002962919568853786031362556493399059673015900804229487202353057466344754289947030715970345441847970538445953546126157949257830734547717240655512640335947751255982764934220688607514165738804136801247033980083703561054048721428149956894768296543747230824587902665769998701557498878786784207314374187728059501750960329702307433744840200957721497219955236606038209317551463384708127945718775384770609720442563000973802209547627684205390196454619439218116730246563032420573367339952858486320397315859158845841022543504554347296139561128036440207646905251173796991965548463348040189542991625121158268916611648687594560079704400290725704448744979300196662846034780843059030589272061722643921536205138717844287908592146049548161657004400907714628308206168899207264061787130055410778344334206826510325386274296736054419330851364604007286247458637487537269932108614605920956646473874362268095754792574026285842706572240458299325476569946711743305560491347149150206400167910928609741245659851613819170602824131599538737567870777117584558728460136144334114996671200960147646023465386061566084237134738870262592307684531171321294716697392533984306138971531748960298155175215120876227453792297658221292950437325486624401434605716492481212255073429640925650527336335091754477942194866191100491074948886522556647464438616977676319907713930108244645976187933341795027981977239068459879907614238089405239416732174659278592756119725795170468418401680595100212586267316362187086259055414169694725691325053922869433877330534698471052512334264049969019859842605961889277013977415319161654474207282958804342941860878399312737135343947272393947501167187844828245630800745756493807498067864834812297969020661375313968244430334323952710794483828472267227700047352758627916735429785735155583962089021767768099960751827786739687468044491811938838917762532604263798767391295394106985634705473886704524432888575125387328585855482914909652799152909454484501283927941720837021073412071193587092622760960257660073558913156080346682016644466536524274655590585410340667340867683889807579634545232595725663335695063828012779778629460506084235698126408130000023756664355685176169805464569983987978138762651367454519546852194137677862405164737455715753209954456374211125613267485350782520480911210298435571619342555162881927875636689395300042894435246900491740873834525568819272740521493107205448945216205811865052887117695878999599106167598582044389108464802636334978134069387413995564673555995546421939929120993289002163050152595508892169120642243448720320668676218588791207091625420905116444712259993025407248333936973183726628171228597356282983319359469771821877475166481667166124577211154761778846819772796991289241967989394250627970198227830231544822750150836010837144244082314991749038145251335044121351350852098159655993412645222200251499911577239335979188381778850305929960232847945362428940713279888460152131315429762404050952336319647479358149833999227441991232298337519165558697876299041038525793130150086772211510230102580786115834489758618496430084781923187811920675245866537579898915087103826071810580801416173781605836521224541478381842402844332408181777253613113620930206670445426471188332644545160027933169472662241051851200534708858013733530783270458741375958772845649441448093253831004412302946390797577975723318526361635030560087249886417381354163232070369894095346988594848694878907395649813518693679273972269542703697228992861821095990141561732353171351269124134527827421125839634760151802658365163016988329391845258931113094646152354558531442590227884298907530245240337242898744628586971674752981613711307143111518286602231525066488009498858383448750535773001081288032790564521819274101948607753033615650806296794699675628277778013420481011963072873203600231515067538399116471642424838600821264409855453977038346232350027045836245278596261371661770411624770643025345666780568067871149728691455568953524002630667152226258393676910867410318635216402461454669615256027010946533286843740216232695706792095323440965775468749519023212051936374884367889337214799050512547801435791275436240865758914002496647977504727140746662385694045184670369177255005808958301097676768442799985818410390085511225345795324712138630160504083349769160522161590534693944075723255585204761729662333075292894069248777199580586864126986183528497496789591015656593304289732056912903099710113462212493377572282747572501528827517359554771577871475532034973116412423463643357640019902560037350455073944899238409009622268348742413747582400086934374567861132613799706088777709815892128582281015028365031803431923834757403298880979101645911695608172138569711091681742866459469449885440376932315682286200683849450794430866425115276182056657270367904763800038051218918345790653348783955778970279392747550136728947550115606502187126691820336235576644934413488004603787323280624823017789735952022103622634947398647262162106403566052732661246423200577314087493461404962832706381324549885853338490170070094740531670138730121317709331873231849391662289181840831387666959581388963032457073734516494805800992088867020310850310502794768076655417820130958113901082522563547207365628999019099717560539957802915338685567998001865671742066411486934622221632958905960150738056738935908561054461356937023371272604426006052680052072819185291522726431481913306059273792696125651529652111742045368528269667157683491955763557709332865631411265938705763651941454680584558820066196078276997266094532780318317898695776557808719352371283319068592170501999878757744669003807760402084478478600355645845833847511512673632965425986224577461733856429689767228832690459470381589453254694306006883028264132211655469650267026196097655656079728996662047962831386468971196224887246264815138127186372257633363012181137433142582427915804289583241822801052084799272368947761161818950377494550502505301292397483234692157816943712161816710257272952774665479458613480677746119236094872432698044663139397294461739338586037004405658670628562053852692495395322961144300098065223925082495914426123831954461473167808206356218014913912039351458186743805956932367951047644109542539155445465963441475393657108017383413839619812368564721172825225707068389911950869538660912535416197297456337820128611323088214754042759201934685919038238277136339393846286732311477690636620909353989185598489819202437835270918646438045130778783293921064307842517634633408813918069766890488282940117672511748451309232050656729771845933777558512176228760409868573117826766956131038150592135653368769815484476157401646830742614215573042956647684077542091934493913082107095657673981494780818850171509296290377399622415301079364794904401106165586975102108856769107924930665998331913384915829602743161691862080223297821255555981564848020299327279972724397326257948433519613591108891423063194133468839421678908861571755114293651063045671009047943497178485103485887207958813215812710531915030704381344544006776307470122411259192813937750778933345694629381803285356481656709465012973735289878846285128289440786360898971733832683254300024577672677287691361028436681675830642529335565384766001814852623297107357409467955603336013305853414991361545491765534417675653606628892277478485621801558152368981213117183176107730465338020175249405933869289815406716645511374230401646559797970354004980478921710098282399780075752106046240099274497886262893515512407705989580277361035819751179407520511870145093008760174243726924879454941112733570917799345783535302238404654714965280277931778178751958664205938016164774966948776170906067010404496585582578914070543410000011325454504644056165184662893594775636068810039181203878212073711218731662358843460593267626484731631924381636276074812283349014103186742273575194383538811121868305912358120050842277249458868757087417968865395796464635904902531144353939414792626139567426294228948535936411961362262008741479511856393775653546143014241684925915142374846118621133531085746600345708231002514271391914009435562055783740472983092833266962906712602272462935342716030888754482931117864632938672362844220235944551700187445196487705402258774489302382355315123814317835173927220031593703615849173831939516325651535264084029063296213048653620752297043628676420415171782293955297824398800189763353430091482884216448013564782778807658068435666586787836797110486928511749255106803331386020507889901986800883668378287638888222892967680953105890778968202260493096359205514212653067833710278917856184976274349301561365828595203441672601258819045563772056153346984081250879988074264335492831539423998034348973067140590170668820075201657056693658908370598913242862541995707133220518378139459938500144658735409345138506882705176393688155836711355049887109727576962403659050217404618065282943289273090068513226054669144950591583025061331951905798937680187573577692649348878170939484584493432773460974063705145607779526808009220402574173607611054816955088494826421324981606181476822788943433479107554524152685769383751017758403130993408200330982267970799991893116115927414936374128127729597662420536268275494129190180700290176237885199502900681089893164102386515220274864634001962727314612726681833731298590131180791155051685957101665420455950542117946478754575742943123985410215774830514875549492352557509743109534394790102060920390166110140669448659774251334088225041066346093415054265177896775747406475866413342892145371615353702701863037056415877158751597354029565758548166619090767752793286677368532859628281116093542302823855744419021309447002766238302958573528645132547759893930929493470694399501061976932669695361372763582146154680981310873740725301574029185635108038125110359426319213644768143465779719009314987356983296581656756664452785384215972765926214915378691402122621599613684119898806650246211252381216596014754683567634726156421784776891515135690194166899563288486686168374123732768389944635290596993503636822366893659302448105530358722435168297297748533329465311880338831778071646678650044511813844040991508368698624369099409624047186464722870877333419024204683190883027174201398917912463248503697454023970239516948211474591009070124908308705965221299980560221114220252299455704871069467424298670247533911801334474208512599360501981489993373464865217159967499993225221557463722930715966145358438792956070434182831289469819359407980151827034136331190633884187758630125811384483280185579212245634007852616960394690318059777744507089508886596760670914245318250149407530120287198991312515130094812112586994890944164735931982509589235993012982535974511143563273484329179851910173070761966244707427167033597801204079900827154364464691438273119023329842552447075155302535492656419754910125352889461304135025885360587362696601633975608001835229771804364425599045362419719451931523446851237045493313858916320945515767718070429994479121281496942382195575151690949775755028856074858468091670064514994101828791418592370243814232247107787464006520175098203316260017672646710255978502450355571834732952316278676535866174299330718253390043433185633001064425415246273936021357654402120203071400310076256252640184100225464818747464470495754851666227406166847790499828067241778260483130524254104033600008474952822363681213856330712972587902608637475791268702395441888487257435961540296117581022645760381727195961060265601571695876295738360667111221113159522818603425858611270572391018603918630896866107765785917163027478040215111474542636730749020326162249267518958146753097916952703137355758888614698721642564522629201615318680620759100918755648578378084239470063433592161348911467720337554123403117293219659586885371231085233127364467783316636875106093945321648906200782032051705648526134760930369107390720443040138741564520859080424759410171157007425569056185184268561743424072957675352570534678090207822985655296815284621615540783800203382824570521099769943218441798980693998841045497359842584963917135210491122759982347656886351175429404211474195404248568101060877566489867913002546463127281059371518723911482657240520435056131018487042131160743429232412093840990216186193908459185863590312007623866958512138519657583432639348748674986125798050240881286681476940146992786954680423488381651156719999703326290922524308691994421152790237911888643919204560151922820428040754396315105122300840544608097446330147019815400348203524326659460367155044993811870315116968720654724517988706007290674619774797932587694780686003283842982627532610091495347775271398161107186858730641827952613638476069952494053849847544450812887197704125327313134516246202960043083186633413231530919685155669813520064949508804133228739020731313466855261862830652533304042579792118233016337984356079202459823812285109731802939700350246728714624373627282144863566965082008238343481419732543420204266362234438831907466144503493993462475584620606345293083873661126389444509090359257972708073969363433891064004481247879731789236249699261552378416221781952617526669138828661738731376095576247479744504987767624955367335992136383388368857753962387735767230263704900270039865887860431448696359681460255005564252855669590445941903471540987194876941986258728249582814432269373464395989189982023992295016684269881705145362068370334551967263390727888669156009192369863914408152197914893731389549890437236973414909154652228143647692692602621196637862028858069843128494497593223669733373818214084366030746943512821963514329930790000787123795882635733091867719203543464442159678047554589603974034164787068464410538110688025028540096828824939985674623446907784722229549185074067680703592397210291106325715827440048395718559045810490881761294695079378392442083970913286712062484754124501431318376116344075901935533595191540698099700865588730599816873588945179441367825519415061785569780536371220423999975931055291813657077292392738149959991278748721273843032792153266032709077835237561387022435933205666803755180546270392132121849287887450183522502306974620039752605355598680131812818519046855486540018248607617307930809690410718597804656409833124662323852349370379801904624079573684815000610438713890580652852916613712668333882229966058986510494784446653296431013338426611076834726254363008180948838232081512021608275734772840185245928498402850963054791468384843565256183563737572630978751296942860674175538286485395428891317015303066148775033735998483292102669968247185863554716174920442538770368493708744231665019145278287770517912448749858938003740608837164790078713978389155206583644037883115132540129290576409831896314900101161000485146842749226325094928370061428914605843752618323491746622831314630541619545854467089434338609759619509804568506952547538219873022725528038731323595331000691917572604568345851383664090918517251527419766648572003740830535183800503593888595711354412526456082797078948135153351248843005787396710908030451572453897822098627272327195157368443673067824724505767974421104871293579186241823337025466825733154425019169230800679083956482915121586894134752194373845523332324166554756479824154973098358913981194631513662557272475018167034219223738748873916396291159374264352823357550507351837066691144684503631144614602926353759917287484528738468993742195590090867701850452964047624991917807061653763610524428180924223338730331543742068220736725048775829512571043593574191015795482997783856146813728761277031819522595857087843194210132672598014730573123291573153579787176607920111193293485116018517242833680545589232131620913376768088676323170666038072075843620963190015268516810660123040569426205235313501081990662669163123010543315589709246176409521185219120388396767805444586753315825216710673135518611848550187960575160942394451471410503207281931849983739301451324579459234757205739375174037243188849056153982412805787535973056171069292677494206094319294466010485867237918024048158042960683646224256252480908291267438799786215162913764003438146137192662845225522273564746240840597926030625924536244700383344590156722329815488408326141953882202614076342679539591360820640353691357814241702065162532572973308643890105820531575026919394822444475061852665757618307159682504078070593087624967737464875351179817643458273123741075739790226339060674490297091660378081256239858985138026632472217982755798785099921475110140316389072735635026366313379582230217015960099375448583631420031622388260806839148003750685226950013458313345958169616583562899350578508692580824697527486616121984557797731662736091982741593515245996067014377675028640732454842655851759504819308274502722588889782892883999049517233997324976240942735122743742124536319946999606283063411228630561953546257980263002545539916652516127481528160738071619549895411125004275488262274596501100860588553240665264746975776934761872624109079092493998131804370863324533755163658877157320254566236069013010889900174202828659653471209659293148151561761114843430501403328142649764195398766761221565006648523346954986558863471347898400081144513662378743708832749670115167553915787638066337362394075944975932084128339181964330182961952856750883183022275871716009569083422803782334002176374835735669528037244132187261149524983711111205824190452677031048315265497770035203544545139922429981965171513932719562407952249653113844756860423112853801348310775845248618845460931815798386449609012634996393411935476276155586322630684033580233491187510228826443345909668562398039171748541908714711853272633931085219750880390742739918358811320893546396327498140196527879692453636970879394369824880749590587393806581718138523292820686089328373820379072540359674855009011399666932020904217727325185477791656517229750294356411807128606351368140115348904289150355540261914695512216136578774188990696883470282907390922084261685659085524608498462315685715870142279891189218147328185606441717492417503368991041463520126153146763705273333641296564898401510069699244630512817181544769866169459165340428615435957478378698893599958737936040689334254560559256361130081102757325879403937745979733379154012676538437905451359669233748029141096683892488295884591761728826187056432663204011316863024532507649562565466515241501860852052413786385896583976267801359900977027204407649294409514998744630727263916954252746515753136761820432277410516989381816488311760714239114145922272181715223539005567813342646608082414571365857526415120866115046690252700268253066329520091831091239971043111225011342531438093917316288278900527474985861711993819790469311744443839989139414311118036106792154976907146030151064109065274719640471402072762459763014309649448063287534165013928609371802312621716555242060691425102041705078146394483671099097230516295446978578549338264322040033056972328365934655785721822272147620719899571405257021262346503064063478867486028584956446859775065209200464419243286797103225340525101139609707364397997097465600378672529866212601485069028219276749260669408654266917962494529271755905318100139989555215949274836111769957756553346113127632756668066867978599851871680301750139430812822141973045942153925279822363133375160383038910693130117090175222820591156397735875635235285208049963760399450092361694832603151610846482940820974475656644756685305366546936382392614710150573331848052878384659377305585892718238698628291125423307571222311009750395224701075268930018379240010190974878140299424427442723781134655672781165507765094538329324393222699982338024431761157365576812871239849613473922054794082988190945341542744701495721085487599353002926768619705410334786724934364852808296082919260100592458540248254142566124331631444771599160819060304610193844419349343947935867657732599313399258722267558796610276372154965507265938101424732746102518750113870868434466994470343454368015392515973438691091818822871288371308854197858057156203794420830318211460721564606501501926875251447783308778280960765047812369839769655992375068915420671214987162706355821011956319897680849735376880814205536070447643992619827995114390778420504922038540569307138734274968000281834432335572020633782789007467257002901382490865351890161985293339484484154739292862623490224258920943523966897557097737801124243711330939930614206712355638492469820842999124355441709461029468028111655648629852378439334462042511074937410535780464741290844464083549235971226834215753062105534057173452119099001845053677181381087682868154213169113812270044667504811011843082097989249342087475921956856684542973593592302242446718661905638357034932758133359654287841092100498068791268692534257608029476867447797964711055642808862244875961252373966765815641340009834782817366958834718098912666930019102579500485153866539496682302852923481634383266807899586839709964533658355551379184627133389921968647866281344274992625917127799984911595982149319584344853084029792852558096628100530358766519283890177324721961271628022103431489307661103647063793810845910671343173640916677720901947164583815907135120841181002958547229938220330889471600803943491874786308338598366900336611085543632410775099347505032012689814896352145935539446603455668094032450149293099386579398969480428012605373385577012228125360346039594373431629722171445654532737530428267930494228901179116750340817592017220808024978860500520151715081741326971602943395318390875755173021464924313234212729260990687648606293566044024232572948116002476878995463429042618294717465130594856810368449484318473302261223445008730644756983333362763955835007562601002245199019192049133167222372044874891312205713674127593280600143625444029271037505635770419915617469317581054887804654061122513519531623135421543966405135434773201802379150986482688163473354242075555449145881815363842561540250789976684621789248746073375949256711525876268404151962371462868939204257815181332983449187638297934358426012840578972000239914466033273729308367022281918322389900404297378269504045625802024315531183533393488465893328304877362604651724830237760614286944923895159241286646766475829605258295784147188363409402747466698666971664601729315571715706544054258771081029437450478932646791622391078784601607810500425687707067853783307006076356643480255505522209583493525091032039777429011867437869127452053055395957049562681368963814194531371419326910469518057352025218691925650693264341277837939431950657870740330832343652815248205059699368694749313604231043748703061016853825088796795728283577514256227243221231512309021926620380387374619285747406785498411512926775869063571108183993297975643508884368567834669858665305516677738293896398319584318788535869064548344129816121060121362133191693044797350772517953236854687821881106352894989142806986293248991672654376194760244165573698138658027900623101166830149296102567170948283299988678574391335099417962100076607527849175117037490658672422064174631369195889400906025204492656114288259832703748874024519770254772990689344409206889920303780201208705438122328151171082777591213807947209044046317614484921650497677043202010176683700351057204876114869027916553322607858019903419924457648468768368430214850152224277762384631091486112858181200431858549457977530991773276489198168378582939076259333549003363198197147458533807860842430395845904238331971392659625719930376887590375440556722574348285620445740872651078101846795118443676267328888293785609021665626450344723416339844195007459287365188842317060626138450438293806918467967754396587155650026109061901851941640581619111883136637285486500209912579442111346740585229090940258348524916040636186221593403761479090834798647533681660286772903007503173632836494107025780680814492968249108455131738165289254383963972869030227128583746835989970882248886224750491700285333150630991769395328279614391922178005595870874202201379390862253216692241939697193505014495070336105122109701660349207531953871315249958669975850486891274656369002885561097992393789203780585195586706801376302113576618109769141015599247901625728437365179115291099226430003891132578270617831060753526337297158621808812547378573211486580890856660243144573041970149587355820496125667399875853732307341728600451907042971488016560509783376414171453073965496654664712360197648018832396360376887316169131654078665879782850493401695863543267927713165109833322299673000034537847497175835246987230010342351981332656061192008856785746412916903091159589295474471033326776080575587373883348098466394094137353650813570200795520248070214630243735890482085289215054412131947895107565183934690875209222532547033162654425334821727394791341465517975338396142585575703510241357728024547391752539687300283616835298259897982349110284996272291746244943682030044768189650258058679336900141800823514620366208197935390104388189881493636582951989898122016342831044772304393096503522904346461863413516051830587122435448534698156309409235407786705788245886806531306944710301605924860884189193906680193021161558406305636357535641826178637251420835350683382322459157127991262455620916790875922032829582973703950334379017856161862931484805672520609187888627748548798125688909800738241836031296995042638371283818369651535132235261875750820214311917769681856250203902839549135956638771654154277128083207747711296348648458912473231777243710741118473193638889084488530532611302402344004653520874839808799773550529269054144148056868840595660270955570088886437166131830790025860826334900899847107623860816951463918269774061774369168612540613475567234296928602612895845656571286595684006500473121415729687099886456876608237555567730045368268708230937572281257538565046630052116221560524400908994194892201047229226637150933651710746987852487550923940419844828552916035127271589102262863922601079899657962290356003944303624035119131536586523950028104398128408287545904645950575890280739324525146903062722995353238601701743870015532490228585321108116746793247653059703422646543914143517112336250377294141110353844048648326089633568077769356209890928598248527881553767474085120247952316944198255940483465250215853237475104141268842085660752180285780763304049937012222671548502427608232322020266362873596697005197227410287799340950672096670824256037301474614460685148374442656793144628291756557545902516181872890836600072106590450134336051338681745024042498599974184303824983043439077070955905107983129868513427235420682968928945579603299719024001453497936367753304107165502092294844017578753305821173917891066867278015736213512836232603170645604418677044750964771270095290269435618337744852234467644066067658356246530604734113276938227256727856282223121071468054900678157685956761643915238992850937776957228157932004986669033433507523835786417031980099114735722700228681515268811245147773937024485088427494497087868829175363833420951156718703152306819941223764732957850889132076843313356702495942577477248132034577888716722285405467522689323448543494838241524307432482213073005140409793658809398265847484386397662217723647177750647565589124184558123957210900847963392538737661295954718530319343983354386157663036666579022561512448985732861255354001374444087684013094576787100816154831020187172274184872393269413014640336314495130261148413771255041175555426252220973356053014920577784668154143823746711932830927072357954031668764829672148622313207902378928298099676298499483144962200174048637382216291505228126382793079808699281217234798680114576544162728753681022070395357685979614185728771875899419735242795142002097864319410519540439327084617872191284798201493260330024160667013574393885742448026664520487153585583109121209436065215913219211504780309016237325047231244581717747641898608152203606476384996814991630215851087929393382272171023846379263980116419654521052347640072646842190895574113676653802287198063507743988662577345901248985745965848730737987574037282759716302515641929247999204876893853303323832029204857902765120720136612270152508076352433980955225134982074122204029095219611513530884821651857846955005849014859695799092077317524970172087027767261943175557611660832256758125584865190500810495813992202062000044551014612399359472519660861246786147157108552711396350732912470854207967727428179037342532213661613291148263472880170771377487557385835154827185293855688805161288383464958238277271110585528732573567248752176562959030896045152219440888194635387132405946277093386726503664503120099687879073797449264064722427216617591616787038789427538519508856054846393921491066090807939728629652719227162945682577867085222978793247594952187177034835642461930230962823821422813385437724441483715753243407736612300698815701548737852515492528713335297286105174360511303092025377071820111358983632599724547625546978722855451160536405488149938132208322724346101285794955809229294966009450734373360208848106308814608850190385373473835324652739127849944744530845199797830906654324426812991402953878028899829496306569935699399908059328569635827691126587313807025958947878251240068566043645917885168135132917335079335425646972622108831798675091483553334097920440805062211908444040400024892116088105451614537427151767308621311591077124911225133803499092606422529501083588832534286492175503898979335501212904894792956559931377276072574080392796605909366187072667218909905450048819026387435115706016171372551644422533989940245084561957486380783852191888286030328027603499017685566608559174360538424285018036070389689734533680555726067747475412292365324688052677830431881231649861187656007629202784092712233565447405377617311379776142011293532170799839079017698846748601110676827089073343002671476521347342428018429300544690151369785373248583466246754899512781202516093535173419630188312843258093790158139326238569031938635359825378143579845754005959856845193058943055255381267576260537654173984266640880040697857134744067019642535022537288950492017332588411452910490463708181143483701492323727673882507527105724205124126668977566196771438136697781611451917878630489151514737134967333697879143762170991377034072982335827036654457469496967628291999002775942082586798274473332260961887973358950106444011475067493214137321820993755430937108963798514511915702552967197266189335001772038665018143616258910548167119008663947375001679564789344862333709961389237124564731745839422028263254656962205457282740696524475158649799563760601226631382842688929705567334886506839705371622031987733459954431691309558633879058022483903943533432281944756228710369004127367981728480024967662719553857271688897830786242542326688544040715776830403519221956609231916260656438169866529147436665621419160880570148913003304942051435265178820990525670261863832817113437392920888965626007975052337931625811394416486204056282331272040772207334482128132290401291319951341918223101752283746154411466424383299737851109547522661394276604786539211163834139998797154610823674437520639453349665228981173327746703370690521060258562747794348384641375421615681515784849043414922161086531757592508803089851362881178968743835036838318723804466671087338095297553450782506760073737634038642574601082842753711330223345525863729998851098700452302880692153623131825001579067212623962597312132233026482715252423294898372424140532066920557693374862784763988927092091355435645174759552931231717733520192084729634930760440385088539097448941353716273965349202811822788051174232883894909381112816519454316627939567271071997823091445652920614856342713989635504761497005437436196985776174534749973608997497631955195867218448923644338844996476757117145112877044457128776857590964793576799173322036114819087218782838781863982720599802599752428354624052737411825715415800724972152656593540565872645617386809133216012541720354096865659723266064330346185896502480181306302248500002163178872654505899695469499906767569473782253116833946461963061641960773308190629879982898427852593324120095980216945365047754708119794862508023623698472138721349196285622490363076611905594069803287126092873155659343681693994895774786493870577161253536139248264179483103760415924399065162424122539101746708269282413964793379924178692721761438118301815903136440088078765519415447144174855814320756874024133504434318757271492337656615022527223733058639703874155721883992760879058286391529827899453540712418521808202914254092954970021360736561056718145443815239507140345197061419739033969564968095517893181480492882840854003954654561235934780341485793404601163823563718872005055912938163330250653408714248488156154648651703382520343258959414493135198803235331637439807970784725514736265174186921392599705574002296434616431597145067910837219881834802698603293036040411469505734263618204287085006488563428119569057619896695645022994926369791800846628343621914798481967493633123236067970455441290278130052997767769082374139541488708504394431090920735640063914513878285814667399210789783593786816240524871440347745320379601124957073310172043422986747884802458284155305870215646067037301573833368167357402406228955268763828734021243250149266442779661600252231538274645070332483969524448152707290304425558184200394675596321193344907345023922974835800338219686454394884089463776368837747513899618180282357979801914224460099074222423589443323396751225821081876089804102551654194146143922012987529089185326377460385157337917456321724902743569147863376093882306538045577651192907237059057981811677878532612982273836923971838079913504692800551973405793376306395158209210091915486362585701836295218913587891422339057295044264324323412353765414230845348448116968525624531171335779501775699469791063156735537641923964219807036792459853155678158488015867467575894982094653736717978003097210649427050403440002516232589806777568025506153509960996251982356843176944168080259193019161219652530783101754078267334120842329907109682415323051479365585931671402356311369486760200326579542912377580907292118406918885065288669254391338108062042872215568113389777146754036200914184711946858596049251566843806307152601289624325914010110591242278439651009966539533224848688176183119297726534476820558583070312038695219754013439482780398174128115547329942041868078513779769198107073915907027449513987885703834800200235585342626968440205833906029687747474939381635544287606973813761311601802280562511232676180413058289954181319667629438254321259702931046286495617464271278121890105078901367700042193608275018870433128371094137073399302516934220873085476333502835098219860121418271953485173646052569545017752139986290161161682639754455184662820406344417803941676983460629322801855735014612752368640617357151852469223289576746144236322206959876474004394001235622814043444040641077944122234872038259080401797450547999144851740718029533483903089716346266802113038101971690642196010495337145997310379371186089010974895967546601527724356720909922185410392595120349325652474718015940384884662609453920892916964991697118540592217848985290065784479844930934924548110995096677466168801214366625713540456639285497907277068484980030413668744471587458818242977859342880923725090280045815904262120286040301223181470502174854257306548822738200454416626753481617440284929252615349209205373387347202390153635094787563475734474695946328599040260961346406765850889236615145625136334072266038871927036198414963348507541947244150645214976859227405024785302530966792438288574556555133006138558926989860126831036041519577570421200256895453986019930548046058816785245210083259399661681410436088456693166122806190112177569541443344869877123685794407799686176770545443696803871659380583338399923530451226115889171784137312390872667497684987011715275159301008740128597677738114915776565180968193148310014964481880189028370338701683145413301873153639057252117643464716680768138691436689855707141935290830882051684462304572433378646830218331426088880684111922349666015125682070190735291298083592091798245829757530441867936996359539626295678706693276009070945401457487311660177100766114029860870813140018688999393220152131931060068234531169238737648501016113974231472176820731881918601842197267376774459154521175432905073048538702427114729106744045203877570478611598205560710972823112165840935096066067376072541318792950662345156766184173495617338654197019912126111282974425744116275053715425194121724882812990414873453152656978448673730817683056770342568761035444918720619430839350162632543975971977104864238272575356993076591651879923788596663778515554996824115026822553080694972180519696061423763657447329040771191906556344500376086613652642615401075491496988669792794279674641447146546841977549199866495479528916288576837700975520284429443160855396252857817170693029829375036482802981704693621597453867023840347608938566213824270005226893056367817465207043079084568353973455391057998918770297542277653240200972895819165002183805185759508501129325701588571241497434190957256314488096574887796485656155673448572724349895697352141908760905550922088090277008996620031376630267239155887444072207963329777548819436745212265860839447369732533376201463048869664074661089535086111828674899605601146161810246046745289700871323339173521507556379216323052634170825722236437676658779163140055383263880576018754839370621458275796766350139745406567669929007609695535011085293533874771615718532740297468252457018516317098765047980686615644467139426642691732240266446377373733303388658886357642988785621270319256448374808137634308637850888738091638473815868224719512006206579051895830633311608322799096025474536414855091035904382195170778487381061830508792875663435078741013416922719937096318040719999544716717441547052231471378963943573334204456697506395775562782580454505424020868807275912984959625632534305077712087561653549070368769690103064485643065488358967624958335959533050791626185968323408528363448731998467098021889050819004918567145209604052477254556748483309653294071412342668162103208353192652033119026669038027610505807999662541170684181354350028065465128106131376644158493745788809612850146302423797589070452991826796958596150919201527058427769745050581994798484446444728509129365480904457331155814751051335133332907873804011893626468638159181808764928987033271219222866150770327607053628414147056063210991441932286356154986296001899148741947755650500347933654959124267812880071922685263406603453726469000341079802545836517883524371532379437349155290524116780874475658685920013863697199703994569994116823569396855375291600530568849232949524335597174688903465019441857198166608161346227560331150150399689899503070485967647013479185630360934419582462773995833898551362299968525217205675783045663866764540807762417917802737330576333055042276213823513484979237530704703507607419087838971306819264525358968593366362719624550730468245621815200273513510494574634176859883049514758132618321790048110092166731426742624420250768034678744162536602022390225316656452813065113525109301987383177475343838195784727883480414140981180505414641333023494823628294497844803054627195479167599020597260035789895166800165915196897956289661975385025743277545260651587099823212919302001060573721427912863171519942393322767582948977584785085211691534799115923819882207860033830185635575656137588189203533886202995534100972443243684096029504289652384706616321876465294599251435320029246442910836637535378865057757948600534941312182587938477833460503041952286573540948292065030776820684983290991051821357813196036651149603335335832100810615902793328941908386278063692054033254749098977378480237296144328266622509332903562410147903635581790645390444410115136332980686858629921862695007131557174444521755246958512699270229802603425226142236002560086615459951819695329677692088985796934817438847759411419688693624109657488791020089977299124808704597925394252417667860269638960810357014566035155058990426477821837603029416094097861267816172075092301300019509295248957102452677303390790253901083044943797812919076412961755738081552830241794237117202048725188878783301126737753995734289777441029325845959686698636384381230736979745275168620108430331502946017438403369625960728453987795912634108251199748159447620914768292886447819600342749233629877729150975114122987629135335214997610382261638387954884666493272530125583952270522901917787591126217416994661550353539945515816888760007442441539481607021118495770718738265157175596810267818863731857718679051258442454842817278234923397723646742830800117183199547498382433404865326798703016222353068348463102891507502628243280807993683861994398871839944987256324061044744870087562877328284711278006540691381501691553661335018719254549737818734383198001786709281106626857046777748250837479275541792232133325600517568634608109489826211421418489405397516478140326042846956606178836246575361088114317385657207280797874212394528862995288251754004811561386152925240025695305265112823021698567712987143590432908910016996633931236535521436726779610802590741340911388544878835885404769143520989560800920381271703482006911324498269992040047395836042588937968074353974042008352102447917377637529531509527122237701109563122848435781477240400543211257286779145694412611962132246590455194142953651448801044365651083230829639994545252405881701456644536423774562760384244751476424419280053193011964346945951008595894162614149342704291274574844009749703145162455710148642361803861031735505649526608841547775138587658618425161659647007293988395467006308482572324475524057902388211939690052238186104083509526161444083904544134509814303072745028826811238513498290188820006031642938038356907258053985257484688839570452387200807290306232927329913427589240504230105002920156479251121040256177724606078557341609541210205800664164849611661394220399438806673463815122539455114705224882029497703917850985774221348383234295779763590156201871114016105353538622341442407165877287805713107352376854220117204919886071857813301302188152776596694146111016719706841488935541245758192878183137233022238603837370819419075176124205179806183273719501043614443406513089534652568393039773513612802962773648487844096551181612663104216206411951659944686211627654339129917277047385846906102336755854024252856134820217642294153913331293324352431906729648100714301837296059653475981327883224610542512196818874760086775859713123121830637857860951926767891254054474830740091158259302657851205676078407466472634232717291797732505801647092743150220631302048612163755840455108938686331318079505467595640575853465536420308953730103828724144306423451107432031068948815528898095963506923368940933010290162448191893650771126712266603364341228015682898175786297366823601210253072081265205410304879536355992872657117631397596642323032678214724110971425942747815935520039186023079231094238201344720782776471528576501598183123343716697550194088791515252104385035717662163844369355247097096314418140029007537079571774492719570079748746687074372480454445764984128637131543025280840124324101817864573825946759605214124800477761806614631394073228843392897970304698778002969610516182136242813791112485929729719305138495787466861659710401406538870429988860950403071102591827580076457118489900070616317361221932765033750811438359384191146834550088297979315185271267943985934983333725780384215462021619450700961462257995958158123391658145671974188427032455176196120005008164180896615893893928486200660936698370478888140047438097900659862641810709528173053969098835784254986443019169017986797933138046385377456256173325415651765568255982651269369096766032501374466449074225983253486175030009299291555438501510126126008262968655685619109008958325082015556973797879323906911005905846180671068305810650681252508314727230735137456217436767020879461144999497292727848121624571529436373900306639536664231611957874158148505921897943603659682159478223889597935307109339391442273987526787827296684866981326092679604546825366083260339155052835993694520353176254791846389403965720811721863907363205416555516246808413117207914695436747475194417624705248635715186978731466951272255640949177526747640192939593950446649212344210400814993992477902634107399614411002771262669630308575684114970044633461307687232581614150359551679092243965092875167796726335971286830861584121397623338067845979906165140505203619892649303428194860517742448833050021718329613532246434152036057241408313651798740300800546604608742683115964984082384605195131466514897587794896628914365320451324161434743078952288890811676180451179547208814854633932131776265665552484386155601831059832688254385864940639827494705082989786506884378877453175126449192932962241713616804153044627452559250402091682455658112460416243264670572958792719807280351621987956333673786997486658529523739352455360409690239183276822085393184020290062754583876842147269619427420784659518305922787221142933942023726564702444376546640915413184491326758212689884934529408130085771374515171029160488957163095472327912773405032023731577544701334000289911332689183764379177498464452483041253230033580056946444073917652160361635738844876940386757886208972711559416272728805506036156831182566153983467490199848238020906609323161275146616577958412399969470953444704967691659000612086375825135563610600610265592216405725926577869624844288918267262901371843225874281016098970897395741054110715461123734292664820895410038665877034144868078146305193690371764575914709533653050930993435404701048168150210011777317329543847294267408334971084091375153556863226588054539047686092695986496326549911705353859894808088274686946903605258725409984841954957474271133611833267417276288880358386992431631415688639484456429805537743916780885366399033490063890447949968883337062216566716418543966631939887007862650595408895306261357377031789789427762454190053327600082425652528779286798195636091682681955974027892214795036503003657056693784024205974157541819126589777397084488251529455774961202846326786329227890865741940681932982806621982352534140996168604863358655488913010648951230843754710630397535190075676858658955015146231508730039578423948531570687669584760012733915144345090276519916032786744337814895968524106832810456119897213843106831029393468711369783353193824693607055963957396560133692567745748595005811666641067012694918158260502592214020537430262089800461702819721736292662515406376430423409910208052659870154210137019038096860091945362343480850889187531393298704838825291057230356311897758382099388892010904565717282654650257476526537220920027175885160669014989627957809133284006419216535262102881309715790562857207149551454055951107290062534083786640414427223130182486625648852975872956284566326370361236352001352657227042449097945263433412908873778940813654507689812986381818425652588818169993596429494779845159502166239883345727566868139314889810099765609318460156738970262082947663590309414911944765014285072597725662656831171152407516768695345069675290764541884334865577500778273700760260153896370218452787946089016031801100269649071814517302572783066449466923239684361469403223876343705834799396485691705423722173728603748154945470678424314688876878369597457494773033709887265852122748665572288934418531595565320706525521372832242448475720570581728840040100596590586611642073778323750541784154811633687884293450857494143779025373371433576415324232237789936904846994673984326932576546706235213698379989317782814307160416452419675745355718117484067811339716853817577239645888873368833138890476664237647411016174893017829499069193889126380250509894662706866925548715204835113371761426303155142131069169995114646469342285443001821093040835712200523427061854237512065243620066241263694237835633056581949068521020447267188744141707966777291718361291383996822481772449832938198413963216690685743641187336659517566166493835485068339623763238527875941925600325104006290580659045073950134219856081935829794071676191264635429855839141033140005460819754462208578775491076317311795482792555360080835954083427393352874628592247602337294793038149278896272973629628438471751942723109090626392821645695191870402277048317348151004682310263437496823335227437077171024143345712040954128723379785742964081871642273387917606642893578052438678786283038965780150031852290775180210399631498324466788329581654343549661307681249497510177926615964788126798655236648040721464254465511137589877867824520790135751865981902239926489396662856406894607025773480650160707817370815980130540891255601929757485717924635071537220982164927552634117872300213471614933811827148677794093538655024794740740105656836341020730322400779776974910212804545254967223594728530563869282103822581455194897178469415690992720009396542978535553547446388566374927104698190328214597292811009362052570478926534205168927111137652437297508727956758756409888200744338147206472599960862933846555970327409850728782348514270543905666921716647846639269209004657178739065612347383167796043650028125556182430066578762042184690036455554436913304795346349328489398085997948023598188072150276114660602950828805693040385164981773449370999594285567215881105855801910742477291900938824525409855677721253295723631165820452045910990888835876421846058923114321048355754756454948967337462829681367173817447575660426554363269926882326899622737998352213633491268675308553926140177831322576732689351994174126903863243106928121844290255933475508391523919062178325408058112824557918185018025416707981616035112408100752597160879952755669251252819052359649836311034326282180724218968060784815558523046727967921498476405251708977099683079174113902947978497424157485063348990392710408812906040572573618742548746607046203197851879396946324367382556652094232585622247669155272203994635722098207371489047544699132676448645755035482331109443710732390082094568973726161291191926750745974720229128993912058400508383833297025035698952653851936444102381745962909502385452022151023177730864331577763659237622442685993083707134064800143505800179118953276167581256681850907352520157327811235129487860777854681402575432349223854428494816072115112567891829752140821997471127493380620175076530141909058472808846179168812843243571052004262320131866051593568780459843564486166124074354516677413348963186669032721718088558426113931720873691156525113980470287171595574696949834042377517232821423295582099442000258061305994293650923707105679198041628883987238859745738669117065799188703369620360120926751435858566310291303434194893662994833982860117441185327576174342054918717802245015211554404321759218806142599908532998839496794197680418883822686170771419391085342814571502051557872148041176084327677604624961923674724766256843506245805924823742360558210636706207437042187604960327401032878072173191235199725793981425528500560504259897306328204853297243620402784145222681118990778408726015869969778978664330662712619552675037634892301158403590599559910859758120458506973101146176906377345886772188050150078857491366626047100995483176165849412108542638212451047936638182674647897905586054248083097003712732983035063428198436951636840949265438432214337998377925352382440883015836113319621861293248893241768257288432608571224828137592629737055834290136471356548245005774199111312875064043811498554448461580800749455990310368627352313242355550923044194024909754136408218881356793043732005923156837224944281947277630045988460021358673873342786850296613485385264631910252849966832869260772947645641799588590211477384590613734770875158111335902923909133930748177079827041140221763302372598586843801396271809125543768462092790456286490189048610773444615498557232857389067195132485066220817759191574907770568013197650275481976759857539859711408055883266100476288921530342404811922152884508991249855686735598068966200617493621643513219707272253479656565055459706964917378388977673969606247379331128361712141925428563272443970644943492658458097806265487217401084150556193245019478853609537646960328575685073223126015518895541300165833774041752190082362753288405456643830144438745817623920753412003022445649022202013886851536256642682879248610886917123175755453767917501393859100383206052733241862574377017365767745245876460435713904348300676724386475084033698621718088090831960814698557246371761244371898324896326097479454040855424122128057967375290397082890090818860252126720495315392949459038819711978443971877618390885898554354086631928882444202068204192413949588253460606402974340812616790827769087327662896750953434843806496004835581632294427451382122044108451069033784582833354558576352375210916094889786108758208777560877584388295006369336819341747441867808100912449124843410073009617105460363715915098122600515530025744779802577219824063961018546595690255021313557096524025424169109145122491802522927129615197657331127258731618508449852869309109358949434681184337066123855662647717778536584865368407717399299337206889188052657483089136321262262076340131651992606401968778541162583555215616048735916473330429219226490798112703959842390343195465370414285509629586535017156895831696106327412395664666725876193514500352974860246694916187940846414978328951769364025429105714566592642523074190154463969700889967241718546412463010921104921708882304815538654709259307872594014229610936325067430565598048938474052010206365432563486666008197472578659657974317789397241352220701611318016245278688509503112973125761746130946615528178251641254449734714017895936624283430813278147161525753858326096529322495161897558060451000871242786636426638061026942285957989155364064525022090235130663592007809165980144126760538855525896963982836139495957467224649334070766781752412888792260686685413741537429125086700992028606412179525261412413803661141865004051402410491358257703558690681693951381822306643451403551673455176306414117906262137329667192131550054313753088992748006331245003148601099126593654666567991911365197134092253589052596586301762222593761804526654651362479848977989516901795297616885531589245245154114416626878885169684096575475153784965618266807878160114595894702364795157124207155356893104132010868713582002328170460912207757960077131688927893178096923462853372259608726995232870639342454742847809060075038611790449566404392344883472560332037640807454294305787763323170383810622775044955840619036742628755994964290447379748535621344702471124545891024021615934663331471991924106902202814200654707278641673264391931770188623834874730960853828070403247525814901007589339106871494603756711422322873739922953610650388668916184544004272642052082721326247386420908417758401833218299464054412369068910565935230933924966758434854123069563869902543057820572321004595929331207125503488031872369840210309887087818771305173218803620339132988530938117299478169757174207293083732950284053026843526617807885836658327682648377171824035673839807621352985723466324719450188154131553508545157890431123154091759789326828184690511575028997311341691121405881013935404584287847921290700846273857910795623515019431610457174047454997759572701882724112076080802884015277324997062394708976608842891653018665282653452786823190873333607931699077272035149626419133350644580290162310513350916778913588394019549338916150261258088438472943366523929393283384389009775114137364435154328595827672953583837850477559124284944725048256055220805356177019446016288264416476643041519522134074814881244893079842029450880999206890368744000736839780665659749273856645199706516808347135446948372060452639064031195735860571055143167066591414241935011976781414059439322006528100605704240278843788883811750694395684368648536911350728881462739194498546979958414903686430328518385984379279097571206394056052739685796884046946431811024280919579010159288203497270486803553071955426351437255076094825921973903399974701823692991972264108265561075404409999937197010405096711467100678913953492577481025590140561346313136356199867724607463065593156382941814895040390782290566707821924473658533282131449198336263384501028894780436498116878558126132446550397044235792680021866157865168916566089867141101720721212061585909094593396105921003657276054443195182846666792203767875601565975794205035062525260681721867499254775714224492817985616248163885462378259104413873273747990506176078721749174238451113923785259280348045874954256281990740002765525056606487416631767498542795082560537187037525433844891920522747799268916871737477137088563893577887981810466950232686043391447494039878983280683849248147744619082527448413624044364012726579150135006008274432247211876965187906661348784221678476452864227328370894546385414609735277633545227114144526586869090257420384907741467206265079771732301393912994342641364396934316581910530042771297554871474541342490171658829227282091090366679095133131390570508403450399456129637753406558318582360785287357553595053622912373425951263694596348461592827650445123720320603956816543618986364618803843538945316544583872625535532616360150923548134479335496363322781036463822876373338838472109020639211393228618027533282467900118604984983257860167277839388995470976976065890322268405953958656343843441524896210156465313331049061547964875535013579485355657382747852568524923936713363781496610715481169925534659760541503675181001621323374432040593088781295362716552228869700483354674962514787456687353400805590213843111913794710425468903509712719818440970466066972671637798971920353352368104087466544613003426017137048420138007305091641428764536794703867109831116795511964724345219689726704309122740580000503073757813080984186890493859681717797750024286529592624218553627220295908537091582877161509971093817137229524922783896701856785974051476264323396519874313537801661144898944645690321212130750751649105756350965405070024415792021788149042548636369287864448909578992709101655812056683546255891201456277592904441331894235888438247205744952476178033190273946856592848084538266025366939172977558906210565728933544180544830140115514874703027249755393290498452071983795512803005560169190531505433815010224949446009640610799529929884187867852317106184604594464103387285639100628043895990578686569088271852154014574657664362574770429353088403954169780140330810944443640982783779779856407198112794557718606130090801632110179918429899948556621313171218049121903865709736172145361889141027423279914735421688430821216875352974644529066964059378659903745151766641297512066930349740656666164263230196411655609886300824302934845149735542239405119328809408903553208431270533494199163569129705095200175870979454624025605294673479891191883343183876186210877759264091758563714367421116442203259950219457095780466446697704576519733210172374506670061816073059294575778630093945161210093540468732682198512312392566395105493368423235201117665267814864041181210577639268057735190194641621955107265936677998236830617219255429762583252312161627692497406522658326369480468237097996273489646884550646744447304075031128371965651695448330818226922547679187579156827309078083845668572500708987200331799012888126640936566375913661009880333384117629650289758722476099880520242439229062222560678611663711179428733795722104971498836330043153842801893614242686843505854579416872653940537229493274201969647146712373028035489716044407578964807310867714948103788934300719143219502003687231098757319200633544678650097253092793402067963604708902649590949514133359096408215289673085946210977199714954680757184399055601053821247473898275115378009013404636307824949581241705262441322093624051616958105511387454365688160127035877720020581250900254329565525747267293778818479095019578847330141578260122779686695713071137144975082958004546385425777810855556712553805269430293212695791918473706539299044300237558586981306168377523005762290242325165741834106732340518737662600505278161767902868981780540181954902311710399399315389778315720788113314902741627354339144724181341791180393841316129082722228583611137308293101316925515353312722527374483308309259916490707361739511817491182079204497355454934575086976895018880306907247022476956994544197307777892233927717029167911285143012366972903593877729411172781010332403986882742250254377483340968803389780589543363052733045903697302490790115846413456675226374372777756375715794519209470121161355738516831013110033628950671635233213134388362650662354633325942430309182574769161870905087531399031382100586305141939183808612934501761985418732682455850922135512955484057974608290664375687458402815994901761298998533593397584886007289574752945634149210045727670246746902739891598977582729312660532159325360034072440045393697877534832827764465203657426880203086535322782225584485204714827008908636041277048525532351495427534393079339961535959346128505262683189315819877516892364488547123861197621962813356012754838343788228137740544065958646616263688829671480381476680974296568471029138126493605226006168347659819756841066899667513805736772854492713780051472552138049777616232227855294009210956728567014458057383877380210599909506974717965116094495029851052912770563297662448234754620351486270506316120138353157259980545602331181142548217897132881060053037808752038504442055670555349121487223335311316258911294046558873246005813150719867123867143906627766990318082010949516327984163153643515068214182281970913673704811092289923041550028102969571020220045228837243189490351445590445280677362572597878763652849733832989517140283834132366958532188115935111023797895314754272834618677772063772371562875188993945118783747916276513614712685762922329198359476879722426686035786726727820207737079477313687804443477552520970328824084359133699228468585320195094726759090014359418556519760657212177780487542386555073016993062496404527943118589928256366923746164101540072874042811944761162655149805172535334568383248437980186733384180387950859138257775819156574612735570311761679198937861537149333946594895027823173716352224948439222770089311196215216240076685987205136639563001519955404802020267448949411472060915195616182661582187690521163554997687743983013979076853274511462732158060463584630701535101199878563648884988079938469164940840828152138094180723276885109032030824154126731781097355200602809032648765101624585716542097198123646194664289588905838866519929643652344422591913495365775287549709616924020105598756005156585692557048978745608445080824723702641706310268472393001473734175465416179816352429691719788744572431081446504337879411026020091364541819359637639278811720679612906180508460630807672187310803482014558483653011586734244417935087715454428475548947678818980549579071652100597004030943153539801438052115349102875613667018343334546876381254991218098195564886937992172251685013213347831969038118313137332819869195146873250828946367400591243224532982284914410135654845868640217094621774677934777453542133227402897411271800288710692973596119607973139701014735972261908393810310613953222945570361551011052987931896652887164999895084837672873168510778840745559793543013342501755554402429610286204744643602660751485609752271403838544358054338095105347032527510331713904842139715672911588322619569595053430816585413906750820519768168558495001490766511876778534411592002864043353222353727573721996536351791296740753977799121295645310812609350585231201791678902747138189664066147853628472092570597504035318051102937537267612475728451588214053967484377300764810279959720875016949727367456154066252014177810154327254277013144095857302161453087893790354272055548894443468372584694137315878498506166182628911706503021198202941441950836675216300078557009506835877020494883590091840497468349009824212820874399298197814744330935681963632682249938055395236953187240097477780369680732482859109645950477490060028139690351441294940436924085839904629073449714458338742744366411445704070553793205475521096651790086593248115985407234982244091662231231770977578878593626712606153618111756974675456722537440513043268298107632023842134657921715244033975496161499514734448078299248745527356317350684713591443677669898414585033246901336454880682370758053518341654455951743656550381029373553448153866553578656623940381171748076595482851764069876546348322106521299976555821727520885440132730423819032373311736955362591566914628894508844522496221013259425491346090108889113218404800552190999041167355469018066332347743402112458353352034334343630821223802099403627594306047922216949040017729117719609533726803655383293360544053396251140271444063687476924764131940623724648078223954327955355406984890850350030916018313800012364797322658354051729653589923233038754963634322327443209712914591084250120435185097184859384895526370705245689994700700073033502881986539091381068370715805958162155742775834510987585576859546774643816393314557378047931091996796236865594538242711586644455400198496925570972902318908153930625057131534321720385991349958531423978718902680733032165044408115799938101298405355763711608412917386921560406343909971469616395877497379796343951457639183051980344800931998469327502588513060376995675616817681298870044155907038257285677993977499705960787279330752056731336303640492029578292020022153343759287738586679377496828265556071821707691686919094350279263852657552991375254534181645774956553341870695833770178089156972357947017013671275451529815781429993565390994681696856662378965234687294833409547111423982730989390619159973400337710932614594374515572550131363727073109184411808877865767695307221376981608031480491548317044304511992640438341964008574694944088553691407358818349842571610978357428588851768624073385458913447113339310050227014612967416920614333493432988084577792014367562850780499759935801254661857410853308602678711432606952024649832220232335300475750348045249409219810531894751223077684954671746916381748987426387403390267719629610200861329072938028527367670254171067687971617157874273973254003880549435915212906929094513690128615763688458282469978637957017499258673439109491822198816302994700137566202353709768465365859114861532457432144681438539406069210756104023045092126393105307464122581776639893503729465574065136882593946543434803073957403271196106054511003699023920734982157340314816246220323496095407259854496992884950740857366444625873181164159600414295587494712324613662694397010125530427505845371316203511385431589240980279980088754043929097108838558383170704230557189167065741403745641586956717878200797894033071666228003468908978145800095753172789450386303616420611628763510169353238386529739688850732564736338130532389161449883573995833792609415805941463174965468941314995601585506722213789570786188582520662629275624922877208086063373529603515103825323145830247455067670133276722556697038976736380849765098288562573165524228069132471395554683459570143440230739868282910349058513966310509147397701879958385790197490457186941552821273720576660609918488355650440607527165861544555404728309215684925799785407048562074428408260282152728131478441578619348825409685825582171265066015985633795710906992546531482794079431555322905189745321989319946500513779525064121547091581538668349497801206907964875706185729722037050620755180421138804058795720517132192905907183558249671302834073731791931048957898532454864455254814943226396386250085330298550459985175460106437261086048917014945747348100768325350009194332183745575628827646342867857525679273974670247548734420352730127031925586515388768308488661721674641621274643392550706996593703394085074894850320598987097449599831710622464857355864639319754574517389097511444863268324603153400909872196967118766236412233172213368842240345936048716262322065240538241860663542180329728932891726094022856824552154140179813163450050490810710828158749344784484592390415327796037356197003772711796946105686756721057302738265555919516770164415351535614337954373953143810388547673505504083548362986488455129541414628350051874389952748422535697535691745594452890196691814484412294324852391005573003440595463416720225799872912475616615016953670310273319325710889866154307173403864107647458603511489286521271923321578567343637912009308187020512866682019996735079844905333950673589323762979030473600313749609108884347018313661675939205530769160253055362069431243767494808186837950507971112520278653876942935280778972923353162997375033363143203470034198194764804426445385146788422562235672258040194373877829234771752993437537174180303009951667663081336606272722774377711005250473293682218538318595907900521426924132595666175236472286737362922516286765044370400089922825776052307762889299659403130412082573623271119649843961716570762128100108098384872485525479950276621750869916199211853817715363902824718469816444469004728864571978740696309302544349466004958864106229043283770882258987812430853308092785293830873269415656297925971678057356809633337771712911880615459532431425501116214871025207750361286652673108542885855987015551084184008146782692304053001028728477186232559754733096193524973440380264791990428038096406979070623558558213591365629519945856386918305591626022033244960937522016852095757468663028074454483361859251535616705300282853242838678814356892080942305369028674690983578758858331978744207900646477372223797365795968235222523087137167736619339525645297098413216174559930410424117585975984356534499113458830226888739490878404907846180684245253969710489431280642434120065428046300185471927303484815862056290985540615798792716514332689738382237204484514444394434178279599486476287643396101624172987342006169539859295810671066685992632891447544666180632397071313396847274234150772758471392993648789795564797605423675143554525779085397156727353763583284209376693341428164244715132994590353152134962975351995555485634712788108878434142113062752212849751737168008996841994334984181286140831082945712643090853312661967628644139539836372048493285192027025840185866400033365954532160148168294465154759439019634671022473341667081242595183091900709237981549760442990205538399932546480264380992759673132887562134599020533324144175215382304138030934864175313830491636526907202720261016929911582091258569181727571496714445230011452255363589996013095865767514599640129224442876149565911227154615562946778161196391762948160524514572911966317064769589042716993300682687464307425828986616515823296827471441616371040936847355130111528650307896963099621659698912462707870653965288839130309639493496767800432721560813917751044551665031970886283818935794842246075130959822352575082594666415217448610713436565416756638466421208510271606048986974885884791517613986222588511735971358732597493717382721757437955010043393440276892497980544874839570142032457018133463588938250396807693426987102223719382626456023449852550979150873060886922120955362085397671250697076440175769789403845951497085723908186533609645006174148209019633179784380149421006396198027581183088134939749323923908305103264265129720510164566741944790518768697681753822090984982059480188767058905243846193538704315243479599121115570718175346368957874433137460937101872642261792537993006895365089331609612825613261299785676938471379651255736292636448860281141601160756394745899626337590660773412447886957963361802967439359145605849611303211792419807580131390429032570580368839672161921895528915334332495927808197297504078357559742218293922491531328001781188511450767077563658798794034549996691937934288404986260938713126912449764975220628214327344094696993105454767581183506101500694833348621272015105939849208340892389295251405924114382066363743163333189129246017785526064014199913477587186024083113474134554266884540904335346218579997707315481451172565233495119929114506192533721648883630242416266558924435901654111344447501574538070107412270160674481651427078235146151650118311360876330125677947116926150576637643256127613483171977316679379714414619300449230330746736964090444295016109017798183319034492476533370554865416564100735201112106159884771067365177557949119387312540064873509875245409745452082157617856314660134802664983142755187061884251704612450041831060512965530428765086737397678158534408740438902929396843335325430690412211413402937024639555730996866803405632551544813434143515662604504206796992024140151486592111331139523492372155487049857151033849270704764233256020534223593479848319135017862775890858831762784771798240599987151676095616354160968223197653874184081929956417479815325226007999682249945680947675534533411079640962325994365555584944628785470196119062018923437905512808615870348215422541788107780230748943488229742494935625698664296107309123919374863657500855041414368887042732023705965483795997432827305693769247605523986652171192748752444790127476176785643931992883748993142940156392397966876276439789989982769164169635065981866639249342865327468468043708088873523190650749149179025805129855535242005095068321031936826214115658578108125807327220336562287699232646320108827051691206140763489942609720160507123515091830982006744543306552943284648767605594703825484994972481917918759031867734261651520629873916860490638484445342324836518235725844927885823108352178576887267178380845377919020831387209045376237008876436742541259846876892859502403096493934584953068502747492772948822546394398013139229005249814715115013369720882568920129357620006878092966033531488816682604011270326154508876995368880520121430108500058975724126080617366779329440874720254656014197822619900750194941949667511774653409212042840166523157208816694802806453667952519059917517618440175129801181086126350257261016337987471434101313593298207267243102982294373962280567705440865969275861192054040349809214942440812520014598508341584183238062325372852414651007902685879184295137298343906104983434795102608240969946741172225426174052407010327724743765974283755989442348598906257822072020470699187909535851724916077060823051422200369057253749688318995102550567860076763030139826212135276253210017391364290446220384370691731515570117818631801481353954477679964068384735596527421691692741508267229368737756259898287418529136487163328932628503528222451211067091515477627944662004130698798181565828988038366791617786520900515374415555448312226172102388936125550608938449202653241155236473324337865745269461154353035944736500116325240644854684968665764365832284477214322728206955314858056089254841659068322912579220163379526608540633599159718193837458116951978995126418794924525236328736909203577381036025705855979628087821374697931160949171466419084497950236811818209662865688780342391498498885614693682808709965884178270651378811215588733580566699351437823003986783755175746792334797939407882614748302129502656587416385755991650501708877308104507873240880391228379706408596728650052464317365491842087118940032654715117837351444993249219049829494653543686783841732526257090761787543601029005224061909283687354025335513672519154806936407256393597818069008682418962593442236639098400815074064862905668710986249656813347261394205495097394859009569412347495525670729760849590639795900621007508785255912194271793215899134393143595687730501216885133813445943715526687836288828579573842592225666381098365575409633029350822270763947457598399667745677787593968167168094474377773856228974770599443800470616112622577449756199942954254385030447288003154757311352634215348457845096431571160431950233067985806665687746739042573917818330300586507786830465410256299236592416931368216041669084167646293543146544003661328452884036548134301412758775712140740472628748068728342723021936305120254937993167923205728937044954171025829396269396237697934446881035634893187580683591316638931489193905290294602130530585418980886431608480037267263523888489129465448281825287433770841800164111491171186045067045152781709644561912820770778895170802636673952296555248437084052718059973618136449808159655021224112670323453514729679778844443632570012139760632576051847424092531295071287276741016221306329528006549830150329074981239591512630272395308303056685462451628930514610331318223606779915033103787616246545621485475600767937267231117712402590489066421841407879235079904445089213949419314719013885484168103125429977643097806701794753711914770272096395612664015737301712558469059561187225552515972217325005935772642946711523130455528552181780873969059511947569956723704368776868969932296472645290222790721852745171850168819747377688808068444880162170081427607215961842936483925916110892991366129447798744118022377118986370503500614269470381619256909092808856425993974548226887357920026828629018852003374445755532994885873246809138364029830817182005611125251674729730149402608959704947593900956969446608557166604110376251940875791226746966413349340295833612554131567585921933204631403791566652977227885085628012969522958202179380745252546210599991311714914348867074580858136279596556598234962196354070788420607858418243603076349907402610751831393589130966350985949093570136186753544802441087990618245664642988075991715648920405224236012953653617604098991689014467399103192649777203291050968966130158960486745930956783148590498510948169822467658144913056512439601832231615984346837430999807075523322988493221842233641415382285707272806088079403884573377759052157698769360773430207649188095171188450697751687788389799571128445278964832832815648722941065403477842580739075834960361444362185232565837624577450509350827038132268665442012842442699683232071699718066565079236223934955211764973379481776267921239287462336907273124183290596296402609120661558215738967867649485398860363825466680002482239518476553533207979423456238778442656156665897433860677971287649283419772414441898681790461972492025883582929882493119602730558518592206129542701056029134369069244193258446572211796403287477734284301469757712001361840762804318915838606881207563158349001087528920145382244529669978108724399492494024368501076508838740275963729943558257951517932054312729777279646563757778764559155077037259083582032259642788081371692461737821228489854187854000655084764903768940407308121039501913575727235543008799626307920340868675837127317102800225699847573078304029921967272921009292480814840975832529317577585958176263845451248511140011629722002113702982909060638200851228490704937378851544502890588988920951467009772618056993244456613785058009228905253903581669762116974999111066697998147428383592587214763964695922739080820428894949069834297385841478357765835847786927176103604970240812574949914797168361859059005974120421321685631925760721129694868792864624735680654210978022135752676060031708548759482443914145536625341742471799952655209761845779877508470838083879234171447497572057006049215451858899391622854447854176577276075990170003246903612049188435071219387704615280634109544728838333993747505439772263476607328289440087487797868145718600481314868567540494464650884797652753461872452004504841815364092129726472911934020452179086747301029660540104771171403421897620588003968354122925454305908040775175951624160416256990962002565413187382693738782868864437706643910122289008564219729635151261778555029526837878144667139422426163316641852174524641405705334066966745319212651348877273125190242915636324086748838373281089720684047994041628664807244740864737015987736180811354817801273518285942707387461261326158077377232703305922910718295024195738555582377158129297960919612255467212875739572693940593349079574406544782911858486676045525444896627144190650058918269755056433476951041984352353080091898144608975640826094219343024752346167967549390256177734030231895937177163543521902255673459856984179063053778154802587642411128644422758235175141044315707404835102491254471669819822068618393005918286854825171792627242219642820098899798363497050047476068521300954871006932762543540618238291375062789607599604637753277877800621559072815802596196975065895051992194812036526032491089951038591256779641250611026677053973826647235818233232812054619279366225798378432078611852198914436051922780231204936745724083947796296668397389493963466960338343792495307815919705322431442405285149352126386813000643066264989573843672969364768392836878367857306785253876673866518738331373199539524927901615231533303660729081628977791664040284959652349171614055877477705421705807621889502996411324821945722645498284438145800722211122184762367102685064844184606911459711509737799128572682341293539872927345693031654491097292408521534711083126406934615613778329162103355292869402117004599895848449741248262791372538574901210014252876091722237411720982998723327219730630987525457824071683802293510284758938873479974171974018650614279431982246094763039031949139643232947105247303699464336103115700888435871314246929502408705661774787651428374596263158710732801847611708017981155462946565994549328890546688587200659241040755221166156403733250052944177249137681828149413707762992018817000004156380702503141462800950585695348934946797864596302601767007658657650292445278510211468836944262443974362913672060789245640187198822279679841443683817416441241709704200444018219260107270150832238496329882342197857147822237821701894337879330352512894160080433773379934261970169688291293965639695696901675881711522713822116902861324097154831217555166971280794447313348340655978710179747957088354153412537725759423825218040226156040569436026909641387582463410165164528965219398503380183731317469498162210442166866169227547354517554175097997332351530216375780090941624616865375699312561010595793874965471151511508311132600825204505725415238394129111896553900525053101410127169666120249727106981004392340323073730187543353138507037355065038912295174643318979221882568527250241312433021790415079206130547519572430281577522420746697482598737151505773882884307391029518754751272760190776395198875649903005454798005617658886098523102699413537221230475027347182377572672911618590571048494310052532819680444010037200726167060254622927081800322491506929448491051409621127548429285115878464830181417994743944975931732521704259459455493370025967046395224939381991798785256958139509978808196733433291931813240763000508841096902174378473350066312475776882460765307864290332736755334475000959408165028363700782994444560851274699478137578906316065781662686224287256719642381692769309030018429254016682337429256142431527811797106544171054278204302925621029133883561743386753954416742186773932457832533268114133870333890538676516152032902535559682090343047798214667969090783338451833862486540776360267060715353328206439055054753815440269859761437048358349742223146778918491934899618559056033585464612562534477879701137273388959463724408566378263256374024937000973861507136614808881534707631547205912425096344816813633994266789820011016683074908113362090212909722794406210820927249489093238445692187693873979383241903682997334857301372839938751894482055499632534922272575759271230497502661168427771541902851011581556923016607558085512011565157535450761971485114899521555020110816180362860544777931766700554360130076865058812927395254878119233599044233928064644555189169153742558085679465295522349677029494236227189139993836964525143019935743659828469331499317890867695762237845055848717615205136021583723853639750360417934065462380089333955143529693681474167874423119347541414148550125579788165935878164659216265423882518752514593229910963404982983028124954267522909813402620470009237517595608278219906971428271559998676190946342766854564048770694299665259420838400422927545001925155271639829039712006167531051088282711542160148397680457390693160437785347558442894346276262959152254910670041722405297713307457098673570199512940334711894048816224681804604163988922989771279623999427005209659304502630927464309701066338550053988862527104210842697290786288005321440275413797240273729499658166692320624445538913056959369533287071703408689410159377439368388399304678402670981459725890746546462611922711065493653961772032254682863331779247642277651059068828265576732137283895085675325558833189764954648442454007509038206964089681727272869132412645188817794852429065707448980457787536845231079458480632144096019000710714352800072184403710866868970284801674633569492429773843365665104815040285811719745424819329828378208361195487993182539944357704849385367234145365231398211851578899720721200680501768234793106132646467828093001435367458448172230783890424148887083540211983920784714170204314591347213874794878627898540270817936483164458391599258018467073809083330633903682719156295869893312481225466524485619636098584654693918645859645360057658172935544686800120971501837969535818013217910624025554894607911527381529104851647188138001601059158275318353407053229856524734875720408140365298416096670040157056875623882330225683666531589259455012459347010349668496201723911984295209258838902630791537005514821941844981364622693849982198456195075214352607380511725089943294663097990866599731538487865278717431558231836976001479079043825858393493024260926048203990436752648721549101583396568873899182574209021243233839555477412238413055310517420735883031903102669115435124516854984722443860213407390972989111732175824280626835081725687997958993753583434203157041570951227192309610508505260641795486417550245885039303418337684719146903043509284004145642637740127369040942221827314458837722843713388996414935109298071663181675007120971939181490391789203261920698695064009887120494538705818231620176200278833532867594795462709250511767131656649409232078061544240222215418160238052024682769636338631431611953164094398057607530047761695809481339236801654966433233971648606672565533513990398491742115552943201421981280625549141147472433477937192434347670838714554946916331004651525109510525549750865450125459612751093948443387373092799924073585898100293119970524084357079121828795787336790250161971148551382324064270815963666783849547843047900083034752969307027401677857058035582767466196113015723525291032737041241620774650663219730547676338114574538627740151926375713704817711131913827485610113054526117155260108842003360657554437526133492378674592380916754222684157597450888995962494538093881277436872936850982176170170920805943383748592772373666553353957401970059537597591479179075728019067398700484625940532619035476349070204805979185424639783504748287650177759252009167525705583529937699721963690014978201428112806714725130955062416488267554760280361314217497716415507493693080617041205610312689679906729602366641530811140228651416983488051190583232917806678804452503984383490807760895172943218620089322178842458344378055068572178197134442354194709294562443209415429835138939833771992245108512917583840411132349217955338213012474370219165162847874523079557897352473380603549384857837282542415297592100434172701814888633710989453801724322004275116751832076172705199331933299878009213447689748952186583832633364230924213533115013195833498777714234467848878187644166662073000669940336261163867323509390068469023911438552428436397063678714993302800217808415410754490257404735997259315620934853695426492324311546605055561215530638581163666628222424469344529628908245713105853357649888508976634018433508424047027781874230479190675281465515666891822471059243700757969707440942678514593035296664442058071827193496604299738874912261136075347363960013105360339680132070125736462249363510070831540669885978946432723726480743037417981123142888157549706801225499615439238113738992752290412615447248653003088782468923723062345334131845683704186808209600304702628522425346954544776037750759128024417114813439399454117532456084567037500058038582402849131895293722626562935623015094498886658044728152241716579045474045170127375040276400365140665295388848321419595542020261700401206021850993544678237977903386200667531830208220499293991337969586259375095868888377051176301034277541295059948997192679680005623018635346686636607711888489008506815550225448945841297769978287873035433204079827533214224148619611900604565151851766151344228835288062268395878927846264283659919042058747512911636376794762324312775584793896258262014007584186071560542443760097731047775660212045993825881967825270957009877377648395991641255905518505743798701518611462000790647422461147953000421956516831095678179755529081122578943003069586777710368238162017988893053512410265592584608473275814964960218843735182276670416715546023559665689039176121301458227062443356820020697512014339501545674422692190090485368389412963508377256518645125178493501245307908483137210383050038920792799750891745268100545490729717785546957682374948649222373902843092805411728420184915931520060570324459586164383074398986544146007842539508880230344227217239857964638500246644564947627387303616025293980055633500689702889048609845838470428446048697698443638890824266952389066044270498126004620425872010896575662272423686509547880736828326159462069697725593610193384509119234166996469811231792045162883466066176145117730615817302816691660483899462421093089263484676183415695942212484284896511112522748742979778681448234702771056795877924598960156339742657696096630801700925686997277915561878512104456544352565585501478656680151521420160378998454549295797108714461541973771868323166702396397953202898161645075454133547759670644914318923702161969967600837069685640184327917838311477844882889624282992503685504490234567601818846651674455036032346250224654463357912241164223315413239750766425961598237625399505215623967558382844039577491490449977127742906359222368798831309954458446441962969961242178198080282989738435803175173441348543153803062766337406412358689301853385724251995744185116004396468955059286434759688614213571977194162329776470525337455222315645271651819791467386022961473271420102522467187481933168574480828850795051758565607738696792113720627591326654904152765733822494465918762140591896201378306706373338327596835253684450939699227733106949229531617043091826985066065550715526732964618197935014579739112350885784011423542442175808336550697338656637833046412509234838833397176849150446781243691257466293206611059924804125716278812147289487293647882996544080894494793648327185909570895373159378630126277015926828476522171677493007840767232802329651793942342608884110978555727481593574851952341839167446482404746120143745984773014036577101275993235617924343795494347189577832961581504295378207651103619532977794376587935585637442204338590306769933700150176404547676704789938744730617599578435541486105321508346976296804540155846738868915721334358517218261678999790050005707362160854464473685841010612162075709658009464941683784524144882686490687262839432937315829053253940378286937997542268805023066675736305559512494441629064712739259544133054588672567072669648532802517646926343548213644074683695009976879334571652277526137144836428885016759249333094957139338909407744911967440924204108015149846127977930896882870560920343608543609050822203527314716269068322422036533044128586240808793063206767256980762251849874442089365043726449896815130134692031169332392706256767255890513771541431039045360598927404508875852823516649125338673769435278259590398237373977886187818957924269457371349686245352872111399135248441345934071895307526143306392166198862722938296798909537183068361487436128411119640287944407965527719252553407870046718437131882657236589623913587667565201539627817364515928598733387535195093462882046095905920011592212154399908395445359427126064528349683447041908979338232509588244900302464103921969214490693365864110325177781749461789336660795125157290060096570108091841837664913573909861575896706189548881051630751701701965973704949819856464382139603666780900232789820912810601810233268610310994418308672007402091473422299006203472804620180488128440229665547068341234708756160143525880677508835411355257341676554313606637671596958443339265497925972172057045989523293945117684956812531803623981439054688760301034703786497633919013291965530020922475169006538954696676583707057077133816150900217539507821146075727582028331601008533698107857306975966457274408817715959831401420256541373630997687179646348425741864401498340786573393059985794756772494126967497861479311206238760884317366914202222131427245085561830208660163152848290511544801902465861765772100879090553086882109338931275731246876287245567952246316362392527592258218698608994615012551011059356321131995349911051612660654959652860540905309048776041100835847629319865987347323792418765232961468777027117634027925803459765028348956804564488850007595636366216656478518366453596999628440405624119002880081665102376297186222740450693895934641505077124709584383059639408675018817485366435570186955593248439270145590701995386262118804260133680085116613384780259848913393372918514148146551163829423177344553978555250709802939656379106825436052242151357248895244365898283754764734492848674148352692564936512432030150603595262461845585771628085139786812960257322888729999707186600391076130031672666250619204867239389830213191004892421091595589032979211305168148387076492336270478417194011912015624967216856940417242855320085302806616917488556207435973381489938668616430024591571138704982741462118154267995983767456575623922303824096875125545975620056809921781342324063372610865203552420403597361352263955473678442635398379598983593987797767409123190407610300560381595177177334763998517967389329347981071436200291059254431434429765105150114312540137483334401201038621847619996595969899963087308570732741249788640723682211059554845978924239433644434537422628273022044080496781941248731664569128011014876413561054725347660149225557584022634207287396678200074728911552310356973872725329806172821101819314585168181718890481174640766838523459010663278288590382068746292446585902648168757156606629069799241173513774004982655081282961100160376992901768773570268014760526044750271212284745953030214013369740142945049952712301464895576416081387852224852736344380192764699863369040288936224695897668041826573819564045233987141990858577862983109603684928310067104093009533766914278884155434574212383933486023138617211640806308177666931403456911616133035362894763727958862267260250420773032046946223368107938351691722317212444877740083260379075006425317443302803160763835507228038500650190428529060682055461152304198635615343031169418756439175262970351225185120202404509104491400127354486978560375612056518524682804039004825130488168095730945876068149416067319331369903581590532968889951677358241424433526065073732699286890150901424544046855672147672830165114701182360911157414120186869613478974544459370364578990067066401984403877878934414213804613185855408607784728258727450979844686737508391360571228373844023338928091229615947345842041995927517191139049752119518192228745652652621535448409190224754868567864043274992021789845560913147571514724084944741943014689937570315681737486432323817077291506750901623229846654256938416945819248432832058656473275212570560233567747805022136988894666716156494191831882619428920283600353568789797455624560616859048560598056687005659493356790742703327820106491143541633434586075740885508664846623955380542063633537389788058495055802874435880894079428429474702253287032118760555128269423638255750840717501157265784389091626324993274354196039384007681916042920359218322528512689787383069844505294905535724867811220203599923347529750728983592678624119563467489510610255527487563695071621254111213573380038972109271528002312803967690831121285331422219618263673269924050450487360452016414157905319513365557930234592067464791800253764235592856196894740995541769560655900691568137369449911984415585500266318068944069339117264793170982188631510298528808644228184361346949548840724353997019621536867135947010923192915346695906434933121598538192926310161515427933601755179219152121675733392956475860572752274844583498614409634672732641081837302548354055203565341325852432807526905689345569083940441227324245163694007791197405071810668280715543518945520718308087187712028525499069934216444481501357800826017527001687411453358164942702648146104922001844107387539386490891493153051470697162459160808650920793723447832764566694138401649088742735683015540258250725448705926319491422619873771957800211667461734198559247607185206340610440120510828919098084412950667679887602349118658231160160696020041746231702362705037785993729934818813987604248034684333350759064899417836097681356326112835158056061115006834748434306923413279161292429947949893512096151769716759940518845699560107340885574136146612893581431587387134057871917458319141519747962388670570805243822430501236325342041268406090410253707067411867505563452844535616384511525758706448863045275992561166040261310604395767899406816974371902228566145916531116497455676015187817509254147042018922457469653293108741129141465560822408748216695162285023362490910314617596283190123034692583792112284088615301639025746354933653710801912637571135106019511280861893220094669804975575723793768822758430053059312430788884307382071242650331991026049360286115950220090057779645949209948521066406006916710916328382758622648154738038158626247772776655689162143942075340268345098055553107661380176780211732056438116607707977050534834997359429477774767759671419040335979854211324278639632003000553613701149164636546409972227190121424087603771946070631149640926312557607396219687444993637412442459235420151410452231511601351783207450118993233906929845461816983346694666596863086872942561114228244114200064067084133073560066754180592180862512729600191752099248949040519022298074169676094556496239448101921991322585309193026098671321122928877022553147252889443980658196190960671001258997607317050159518027438012997427229265624162828793312748220525862580702077835711075100786612343866161532449955800711244888808145121468400962078018193513924441729932516266631283089332880208407042423716797357899446731202233623064511011148925861175085186831918722299839770777448613420222552546082259297727670785218078143562107122411499276682904924795273734677993633130729013987796948762754359210138583857005028822809343063726464804712836632285577501128806611666121446409270133561086597052518514765925935728672637834027212555160809016027599712900176262168743513054405831782767176198308084418831498658859023838369008140312280574958787932842189556914023102581658595490798321993666788584760579256596494532072684405616312252391689390182976891844470065390698021621746289984155495726469580669753910804034896032555215323098749869346555415854665698367020618827048247259724731050340683278221888072891419784255917917706523951536061969702002815314927475059798950703028820798911716901100486092544310982068111884554088593407695748169015633236015655424333836910222817032556350452422507235634599912090309590570342288009525826438619551096299986045901591191047421760169826930114866871750531707340435827104062060125178079262946930206158436278427051646547411893243092758547627992712408397569222623157669125461274976199763778304809233296303140442601784250928992984470629128892882552971651837258578289341005572680418478214972332181363005808464408968213251161746906506270430114098274226662899066341584212873126083591317987518804929453121956478083908844826792801293642009102115064518817395054566841776888274844215907827673072951737798509467441188676712403672535814368040405352107219048262076654818321560183988690163489037097808390037328081877504340551057140646290665814485162383027827537500706803741500424529551720802686394372097817160438535265206346173032349478741778554361963363179525104389550592128043883898792585146705891779635684641946624034030957335508624926896002680553366621003213083377685714786474784413824890129799206572196744543786586069704030884659136360426069928325592749934593649122822026198932371593074434603999550787905929505749173991566430749521877755256604211718665009782732333821111819377926027884155031770309067740147152353399030775308637871059522099840039305898588992207244108069706661064954487400952843906567200765877716769649944125940695944600761025081483011790000458831477904955409321627111949251374306509319693883476178389127580149108512525908002212341461615272021573079243660754306920700031735527208664348375169706023184208522657821634464264716707565166080374035860880489710050941149255298231547874242852013312267799303011619166919255532996738150279083184094455725182031074130672956618046573697606539574744248869621865033405524909891510235401108902622855545624950802473517157550380700676606626590598882588646363633227545704542404683101997707749150836588637480997848849232591159835200383055458872615466125873175724228591983844830628812777121467899416007666161151174474204612766975047025387012230249566680057760947644403935634964624750550472386380176722391957433269240465634297713702525078242184618329269268985575422645261545723531339568288484888087240378407048525152654989172351094421204781482660448303466808467526011145884598929685060242076201217158092708704302128187144038802252382928151646273041527860665027301942684323805204614442462730244200619248494702314406797185400467765862989777051235312487165229060625354987284494111874866237978782623388018124708963472730554956057801088823448708676078118734955524990422688228716238259319997207334907229651081690709580279161394804123837545522494597884949072106720508262811014204063318613236953955775485896939007649074693888612843593763877546377182489548587608499364925694369659282470211100344933087239692801015165705371054777200291089964394387577068710371429065706968172534656364206201865307767838255119178269545509624140121431687940894057195726361493748224055118445345240281938648386158718899420184210500722283923209502782009780446031042856660750805219177879314918622398701923095480088447092885553902685596849726040889221127001955965918486587676562482529401013882293352609710247848965587294650021448964131913542756432884144459946173190174385862717409854702041011129164683221490295821278566247811521288875439225504377525225303052997975821154165984045357970561476207502685801909155393025790432957429689462543025074556269284244225246923182684281815288365853205058953789759808718845834246173404424070784712968889342254958457456474113062544392310822156419064670645903712849386232438268602787363613479437191456385936562743448081484445839776078710348041438302937670801054508983640746205037890996036091648587780805015288511130068530661976544261372503605282502473076972508251253522950670190280705391265257895618343150544716693989939122942595658672057007855668786901547976560757512303498082766557541086828463656237851629831437574858671611322185487056230672670877498171802177727554254854847893617634393109315911994925309700152133326800990726394677225794123161013552234219445528359720230690341505545248652106090196329356123821973246491030424385467050098892678837347572122878417112017737247089745524843151393173839098351083614779899312707866641411507063240865010250943080929791596281000377385661013009514433496797161775215739659636729020652024923463517903017141320342494694334031544428177074388453461832435508366331857378808424485536315290350569089623128000450844203117767785784951135750673993415367261761381654700615326820902536090189696637480367584731018066661543972470551447266958995715723531313538033645619039936749533488882646750291598443676376309700085985844173766141446908473115345367638006349641728272213053982517099495950452493804421909006220806002874781482203210606011904492202135704246913209148472231965934965984021815866336983432653308403506219989120822118543134638690330580752438250553224581129530543492042350999829061066737541023724211254638617625388906881939447484628783814140115182871911777449570815221001481317826716987342326099609581120814006460744925604074195475086179534744430012450104769388658002640733527607704328832777876523425072677691497267514738466203382989265316570358976188643803406978911353804197505217658095073230491719372655865871896267697201617786868048246235182464985672833140764773148650912697434319853579333316405482323254367601806072689839561152958943830232480157142183614850030684496624981880539869658922924428423263295080500932155216366556241000412289809621156190553054718607250537872232698604599850398871194318954703508351100987920055441837341312652664765336896179586790471700428348659517283975315183026053041107957350692180961223262130518098887339894735620733386519805825793348999072722134077670935808380584977300765873794351041564451485946954212617191841057813512930901408561752491340666597735605813272317502348867335434174411605625999349110130912822068026138283129026755444643241927017775966047436734179393593114663596949149451516964311802502574216802722962539414601906212111743500478157935763559412270294641057194972445263084095288239443224897410275933213673855962587847408073328239287275797452223269620593021118903569280087492360386402223171556152694723336476623786538194409189603947646722700610425219396780378598646799654739833882182322001880523955017005831882070361326084512847775052571238181364982111681077446962702976277808960316739547113218051076359088058225386813831592139723196302008801722914796561540740847321632332292056539708755749851551217508786175644094050300681519686504255889213113771743788437426861744746271997637692666964660871642067551373270606036064705130228885610082506505444069228458606538195172957211471885443581970241768041222000232150181420413578028677824544248536453491900434857094484155412846551851596509101400992251731159466123488306163087373866415033706321960840178148015665128765047712841817164345411624220393289487460827247074731235494390265505482860817554267511957372908572809741159393776396306023699987786045260476258147096836950188678941335241067865606568677840432741355098483359870408293158617293869933749548513032243741336583728634315344298730326621238176291206614842278037273328283047964859523956445539741168407994813639544915735384057117374891273024677569342675681623613395078472025788224926676368285214152923796335452460385493475994537089798518125711372508118586510245110405073082854968329823993031644422970319778549776659256554888363815337093076039528427435485778062593357977081412495431823412223619751612489838228654623503172771354204584480429950044636745000725793205498337446979641191327819401452764175101348151891341831948051993537179776964938259617210576591651168185178378866766032119586605254229321149804685839920821152717698596411189028074337394662266619611494258962739888023330527500215813825178857089032327990648765457765110735087012276957001902012570610107400712492310506852944011153684785582728629746788197840574681399804152265330333286290565534629258852335924147719244182971300539945570454144906750333811848728964872448696530762353834308192699866541280889210524496526869544328388422048223248644754283419849670284128464108345031218421741176140863889024372994582011887029331322063977764469766784390875732102907833291658584387482278428202752135915412392654247509121921629478106480680487244363215773707157821994904033657965562811052903961315247527098420592134688486857587647453362038448500467835167025877810569835939657528829979059946798977357761535277559849201724228286594872284709089230412603985758714363130848794190742321932017031581781886631365657316475528890074221117522928962559185542478073518708027225124398393729305395381392383343923761477977938695362044238996142712948934863355323064467096866407257910687820392215746056583441686373883620493961164512568423477371308090541867680685002382181557179347586986883363803717550663782291769077631934811611933864346187051272488932016486295603083565795378932625995507386291483887159669162947458376308809830726502948112250273447484437389697156453772131047817416505465336845532580337746855605050896560474573648710242621361742524189909598033752759034242250798342274545256966016386916803873153597130910774361495350091635924253189868423556870257743612372773039112026573915059336807843497884357360781593791745236077318342697047619356681671206389151453588367467210596207581889506848204773315073610857047725967341808056284715115450958174196254838034149675024555422110373422920402775036873836552499305564215158448556645428785125253095380531303463533633684022325757745519688580705280124690309930829099472516517564130898486508774727549639053501191208240804031506925239679068581894047942806360901086854984088503545314880145252341357993884186864294844105383519936591604856939416063345363243974055442412159588039499779468524855368257355572136949769445188767733396990332671420487406168322640663486696784607810744241671224354140210191609154961366497757415243519811711352910278619304674822047507103350276076312054703339235292716217701239935439466649374938775451602265498471822841780859261884742058911835843631461616007768205903686701505500114126506708472134665265973672415376119516384204712928543021939969305600312005965492561296806085911900768797847168046763413806733560904950076011343202739263094257766701556235392744524686968029757661148629493520256646917653971627750894020631982006061765898635936721001744656549347756372675876018026578816491030642700956090192287639258227400895870663534920082989704685515379366549437599033963664027848364017600710563935998549583760211076447334679055514002352864054452072846950534264977739226151520263530799073215589108615435973565297396978313838665919808126973336502832063568279300847608911907051111799035373693074445363482998523307453484446383403150251150299393359816561844784388218276159832017496769828786907000344132982822791587264229481427822745052523276865314638517012049702568464616157437263189149288006499132319516692445193304216338231240103805709374950935292967738169740947143597995923719381214034504713385156952652910958535042764385979547983416731804169699489637532837418323065067531529399932082651595540373142925838582911531928131457484417916409047228466563686870877541266347573203279552548411985294018441206223475154216788311242650261484865059667818557195097025434503607969850227674654812895933266306708351656642763213272620238906780855143674646428955831158536294725672388962554029308598367688399223588806599748953848831739107781956473512488649087051947073788690699555435026108622388209176611926649638336933446094312643022992951365170870798390653005327355362589953993975039409867502223820476094522551678974444043945653347834236868041602613708488251141712667830932576143282175080311164050198684154502370596003628268007412086667746588997620197350019699056531133482959668510086298636471734656309363307472858505522560511088391505565499575763991136499177805113095476361014057558012534506595321134109652590163087764387318519061310159848489711900348323900122234803668486200659938171776763758010919239773675129977801003333042769548816034996850133488715228940644184239527137496431003744862792174924979057688414141869673203748712385915977117613830320158413605594338427929113916497863585800963097921085535182671069385406135610374692876043157668053278439260156881644228498693703155640841224436298977375874682639980750817528027100212758591628247291798049392869181171664800583575279117503089935286233589524490682005034503817303667746021112781493449241196983274999442660417002784161837121532694121118181015730975497687464278587727770412215037264297011132654130676846259517450823017985014497090646987285783811155535336824068690911283297923152641868711995571453076410479551345972689659662917287732355605003889218164510064595750571582019243472611274076133808937393026883511185413870840080664863487960847632288763360127982076960788060707672188051839641361254737524100083919215606649991998850853496498432619229915806757896987424488986435842428282558705562106504858909874293026283714328664150328914434956413878188042835117556621131991134204621619200087276664546894763317448298970775201023104372325914959995578498743258826260320951728797123218979033926555596989082517363228301649820589692391044211165385644358542154031207898080320206164169981797661189561006863171416273734665900081511554823508860808702764257769403471447521026969757938687445961019079264065249057838425435363229538878429598476223955969797793080886205912527694659892563620071104471588038613329383616215299495140401090964594336259554930751846471418189791363564224248219533204415705365073692360718500202951259047742231438046418366875322080879279938463636187157673519584224998830273222480860258921339354182921160517398262417737310506453119310286979452177947482863273809395671241266731304786448846438204390104225980369405252978974525108983862451623289171843288541487569780813713380637203176442697873886210353223986232559963574326343693943836250099791948444491758698938500203122629147095492937502162514241259399713472530100920429042704677047547162247218517656919639444713298096995789125254506131645897391737485258684738894782342884573709896506343485043977539235539125980640123572663857259394014194635756247495550578653728292080740581093280171907767020471739603482498768503072194209096679938332454649904872666274561108225069530301252592245327757792405169633751852971871910684926998804047284312175535487775649816584285873528340628301263573524861475698918931800441159903390603030144886835165978579941285352229795898970872105624830101300450473990547240717574058150165424890349943485017918853191710848554340518513749479546390825279928379981289299985690183525316794866974099329868028756295567466909604859910687162372509390536652280866952073714083583840514004188739089914755095641593573237742337894479245109159193161701836796015599764150313472091655977505286546765567293524071651312868666646126106781544304645473197340794240430377366661882143082310808091419551138703970182768074025376456206778623973388249772974829591268243224205409172417401595169613034094739389158340420858574671421242054958791539389745434370807951599233379607802597228285125927121378577399975014548003613734422726223773103272577012195047250872025530285394972151622295838271561480890177510766652317948848229023479694914304851251297393883619168076857428732378034479408746260845845125656645091343200176830519466759633633949760613849126452100708343676381356517557905251204053127723651866280279055878686941868055524669473374302475251721492459748945103283128647864993288192770212185323631318808860728468490336713985506513259362607229979177897159470687379201002004944410532810710828848910132377528053612306082976147271198406304306154363046445597257473967137272273048881608143015198168795290367141221705421879728759374387530524572534474990119163032517169925554712505856899857940146133103679240541544745655023041819828500564398500706854814369836628786541905669167837868412469983309191200199077161289780756132003100638789896755595158117170964990946426711556453745206932974961212725493347846427557109129951005512266101840730109627537810390690047277293187756251987822401090598683453822052848489478504249789446692781461578733442241642059661398833137583894579939768265181049155047212253489074821018219958508921870630686460893004166765579279745467922628184786660134140451005335503050477084850728141781358909662773579338888559577454521758318377188192704475395496811994564653413384033963920897070429919608838298947268732653409714219633607534508266399937687237408861801717927608781799161535955612079514355933268890124873778668545410990802248254195961883849680814846151342172713606474007298176629697024678122228641810049490304627510789631833095176736906004967807121047720893701551916310627162906886343300651134346479522676428882029624292248043207202755281044224125726754209914614405238742929575199209799043513977622219588262320146576230516426985485104292720508239220060420848957369188679199881551889267605764666208827931208284549580523907627697857258298645992379378354975316840874619422108492930388029550523953202370155525600573323532083234654108985646493537505804560683093350909027124000426179266589156416303324082078119574668299162039896929067894919832983352043859687506277678896151138249501031889898825878364059399136148066476358038408350742026986701053618596919603954931850104628441033866364477408001700231649442322204121921625495691889678285629975014579789575476140962854617874597754530838589971481415502166235199492495153602806832768017286345239751032806712484978785002705630807252144165574927566629131873516143370758187498999341883067849106945182109282965498446365313270089537561233065570488786279141590446931311891191954658043488532143691380988577073630513689746476018156183654409046375997140948576870702406485191560184292355779647067430565746631541322236229104808874180031834058306583315353335698097298493410339032651755628495157784705880219637310307357009174136927613516056540770102612277618374289625798951972904507065849501055194796284074913069881487738153673604015581885975754781405191575161827336544000826988159915009291875740029518248374299369588918127456803363267543755812671745200122504592706579392557967310057632102313104364876653373225450720828582405641141145075871490526621575504174488935064148321596734133459343696130465747660045839081190917040367927088295455077791817608033876584917386400177993693295876842218746126329532469227710447025995340984657636209818271374894457182630904737390601645252292556625594923721392227187728993039419358393125931304283854108096738514985370610583057949729992479260486845023518163703781141890294542691902718930943047102957643209241311945809930667423691453027851761600917457623043069140432663623178863046311968704207285216821265249345506167234121635793556666308504399132919962310482191191358450990448761676082180906245484308417377498211137093066731840661729476610430332241145668289253828607657503522953846435638842839920217512241351093148431712786871415141179645948251560929226095922730515964037402943075870171135353287248014631836697472499407144170136806020125934850051855468441138926025688948029939089070490463115484790285729538523899024643174594215393528529943799545167889333444978032674726979655925565985078468391709650194798443103680757606692646227769368590097512725035275738824678990786098648392154423666459224186044688894190790460486957403313847304544919182598818075249952534488706775236810472651479375381429088104065659078953396762637653704733702363853955834423175253899324882581645843504472974717009578687214228945911413673701952942122614369594258451607663113714270050029022613240513933913699058324665486497504146954083640356547014895039145695896427251570552164221749916562710033113560698761733521930859317441734427353154050236339493585750301108395786391543850842409634359897143005267995373714053809640419889997985347913562299219051753067322754481334794367987296937282449323965719417151002232732570884236334925812806625142809597986195839068980388378012524413157230825846679772709289114527687756451813069066551925749205865917151647418149993511220561590440596134111558887333410651840642098524340975459051271426739701416549516565271438314258055219061324209965486776769032140147362665890262382495633469325959424677380862155118523760118750071367744032341460766916918526465155539169984585779632100181155413358046905797115979010832873299225386260048563909213688426462046924091622791246131287637920876338668251765579540865586158336831503584908124814276319622045734000342349629151306267247680159721207658496047068049025422406900683769698169612743813555089888531730321592675852581480277240317647714443871800664222291895282283565013237824149626302513817325228278552246874120746440156452127223688684138710829923608327479017136809386692704356185553699665481200453879539524234653310934008642254880834258444539722746592360025554230001035186717754822872675980083942180420223358045196114301574833427768764275335523159644478098733531168996104923380922646900215415482397826645019522970286668772407969175511222300993651319380137519896776728873723018480925904990905674835799736037059908156566724577590326038076631698785975217533559374404473259089796935604323395250619774862562639926002559024338099362290908000223324226912904642864604080039649429746453148717865065151418712267591099456452398317534639403634708412334235926741257350218572855677982592853289444808257200877409832781325370100176543072718280868938997389562801405843147305607723177322154369084623045978255158863564437139981722054689191655479450407200384376579361826903174514077230075373074157933264830447001761749716019723923113950915954094656881073279599784776142863406604039523773013138669597052851056855087289796973659619083346719739447476770942798534967637983932460512654759934365699541704925385005965245982584866131176080901693136195659921159738155899362118046700949513005965892457050254570878791428095294644987518726320788229099957007904902948088455085410805311077775778878175080681161903841860275937366084837250397667095662744155669238265784746074853434249934608096818013298174386503210798816510195789334743883486703914197451252252570459344319809069861010326934913258031561406303364208190238548796267892559601731978014596788162097259128089003284768410040310505553787168026818648632994385286041976618142685302655036806896346410631943458229996464302579732210364914527970660577359826276790797417370301893039868563719014832714756842785773811943147494594371370761613667735668803264538241187273034991534123213606388076632027459925602048347084845712161708408618862594618471477902991088253725216970226775685259997165131970684526088532096945128481977386672313085294106632675913442385408309039966817051781036149825550613768489863044444152064064587292539273017307432171904784875676349203355458918429560663050197607867487811550661715168524697385678574035648765542703816642950157851302093648287315359651761005820068271061454400852080548440604179720305913285422755611269255255241255835344784870194773413880823821464426204957322650911845854507104823424108580958750837471561414752022345384770247483376895652330708482541947764535333217485132318257512132948063215317843695707457671864426541785127301187954450046848746720695251015207827511834773984627480639230634681332340675242773941853461026755664425264219511689498499661026870416267934082621658793876749597792260879231010641703308033308403674525619864480376385692855238845365686470932629900990609472304116782501288150218394012343062769841573705209390849746922142165659120452336989772938447676335711677382822399813456576947871854544883908878150727520526093184074739046113368273077985553684689155458608744763202625815318232536143895891632817059060173797688662558950307634106491522776024456104943622224641761584260040371957333124073062610643123179406125467371283375785679120431715743343123123208032834615673456346565635834133589626795712567562314107553668787656185382091213134973992942542908888661570728174872546543246901132327660787986880905427296029813749206253715063180016360736861548365806729238541073313836729996374174057610344142034061080793100912590624924516190845385188062373904419842667864253282385510205845496675592328020563506124839393250289642133781349152199820398222765626281079445637488625707010536679405427291304905257105230100259966586663508121934829527614174827039901875725371799377381208119631964000409417965323797930633292353889798265778739971749466020693234098276864067758315119702820641429892071215814766277574866572889887281739425374623001054619276536531671264718233029442524556853967840559172783080556546211853081150335831524895299425861411510119362923168907812027975459162509861805251209348585044290141734448914329866751522349636600386961366528798803559410911179509395316977906442755902846413903640334445220116622346827158852425500517135556151735178825706263979210716086395391714614396302320219582287352916037015580908615817094319320358658623318169627648472624404285161082147342925601213408968805123528742108012914896240686478967530629961070485207856957428143483978435343544315921001858462061537473274449678768853387970542028292254762318774207046383069300197768530740331863151087166666312315414301468558941122635937144169880901822241978034687145835586560059737026007903305518905224220932807355459531296465364135722044595568030565721644876399722676065141926250550079105791921744765748669502369451144239255090717464194140747134413190975435664588570043654783190530664681064743087258366024953364532847385322234156780481433300365472813643059396338985061251936429014235510046999577473026729531114258580162478992148645196569908293368918624274529435256495735226174495239973716274554602654140489640534068213314205214099956153039099993972096453652492173360620826465396042377889789645469281290397503789660847536834980103349151582694260084425179859699199365663260362392072899544289164564933834789496744471964443446539789262583101157580696828924982164514753965376701371418596503439898221249187296750480315323308361542151011943351756614762854391024115770237750639751727085294619960638006372066413371328333125332514017711982759286022270197586918971639809887119989106838444678641794530284761293153707467436298077748420407456033409832296323183731334201629347868009920195480359003008544785424923864304712322483982197227271050146139704381033464456487160725268199033223815525697693545692994669109942335893731724970578798341608416691766730764333420612752833821857990416412667929300988798182750532403558978119660841869360407319618154782005932327915726564489640652839969787171208770521779263225195405716775136500251227677120512195611544837935545563654187373488672794897380036644212851492990368233893310136415079002430704643435232956341687572929707148823104968921756744632281945150117791805817666097173169260856816692342992077015802872325951831282620927946122004704439756667301742022397313115899158039030812898044047128577824286342920579928597257944076643291846163905477331814942990176327185824194316906266043951864910290351055678228062871674540217101521577048956845146334365220081173801615408863984624156565259841449749567834697399844003054825170831021993457231260372210713171478195395966519459456277330658647028044098580394606790586743387627488092440006215216115347081434332190236732995901814706832328555810121758836318200730483712236507112307364006027775083704070527889521219161982348654476200120681620170768194500375002515237166206166167009558354277916206685578002451483214709420573400339452807650592898487157862813296578433742919985440151895341026846264915919155382039542042917621486069977200205132179848581639199556754377893229034978793582784829125560286974394886600836697071415848977563915309209203448930167343624893926840139031699269600050081164629049267225596312502130413344378704903837798458935675705307920996966538773099328054623445868661334344062699452039727214477821810364351245753278582710619854975865571100848015633173189446501955781499951082716516847134248084059542394141875620746330024076000321679057554180034474807567640192161644906178413383244122343966843319283949870585050754718660735169296417673590749689284115776001009076372350442933869805446444622618520045727079358924103188055255967843466489995703938950084863389721137077051440755818629988810915973540441559573381352558189253784498136138544118478025556898148498321001344967416585566063781661000421026109367120130977220493763280100659894480263368829355658527898306352579296031459720365174112590048172228974977706837096298399621922897217229214463292873328183838296171659354570571136764845953880548928408553701470287572886379479764613215022601686249150874568569807691450131193349709624029813791881857521147300269495503338979080971948023026973229105050053094919578679040079823526412351860493804496543114755735602166333391259110268590058523019810857329986155931636179782559358707857294894262010365388416948715197842040083704328146244841815700408313140631036990728828772328716452940994151705256394195269002379782598420044097861827613543690054383912183425582078690779547524108133854301280790421439223655590982550472323854982316987507419936428542877452394258168869733478530210219319989185220413788719374291313714267946986906986670405404054503816065393583432723551662296044389258973692151317051223667451523941715858829217989591413856633154044747889513895443736808626976279833859194992318548167402651998790186286974731962245762451865342768224966637668604319853852669816040861082071013281258495133223563274682118763744405714616815790512392194360379285987336046853353323303754000593088781343049481366746899289083999546970060622260781649179771499929828408695762836214017583522818062556148673281953288300108232973194138484279721529910242954259889707714055462997370940271919057519786919100214415875123557007323777378789859413629814973799797517634015935368579937978374374857919994066909486591437648276060896077215043172154701639762391914441463991041180351251400865136492032272319184665425204397936422224479960851884159785286676565611103191001240453711036581540223836601120582044855305299353702863393708026705429827987315095777819618331079226470772607842447360562507821424377533273118780355184548488076615887534658289058313006264723855613708735463230187762961471534032826744970419306469466272167931096743340410370621808625773320947295533033970818004530385218910572280054255698255352881447365821539744879244316097970883199758097247008798707289085535402785138559500464488858888005949015816191767638510735356310869469620558371393371078464843113937116223881106629431352322999310054860866316551705010507620373170894740322171766374005958315931622898428631092546411534695769964214628769598254571426573887593239539557451313066149659678011614871484621788561811087771876524128596557245347854740155735318248487658141234071530050975489626721809306403103575291253023003449008400650976151528371264145617060542653939195036441630438289738081384147210231171116679760532362396640794132760048515790047406215492323371162658714365008627883924356870143600113092249401197509822794053074339433847995345228256243607585193341313471800740044466204312086603736926303542861780858068711513990327289482841874896841138447445993344268281636844830183077539218787723733594015792505152670268802116231594243778047368481158821221318956256348516634093895818752275104122120990311772080326953326536343853482356724501171772475532398915016806919625506911888389336420687362764642005441270981884410269994797168092333843255194998749582582588282115216857902682155290324105870363214384231444083036415570099478831200942803627934224350174368731887628890254241321091595668143208931380522033784062855045845108621159733500228892243363225379313066135399378310506061547629376497570021867224921511162683927108218028848208491009870522485766215942363795655440029967218547383709601177815550983199346017901688431760573106072756613418141715226228317720779657996251958691894560675519694157902763271344960266109436404063287393848597293587571575947618626197586417624709289172448875560734717910305156742026349083976081934467968633660904085302122716916091340824738129430954322370895180380033994429928948160254531386864788286718626355724531488455000001236655897059324478646763397737233309364826231167773432805745259865958441594673696469621219416757906087070591269565131728463193181158718066630152912438710523955812812734674183336378625214150654101925256705149524067014996904549304604261835249912775512373335314310952683798007009839488724111124438057663836487270331288542824211786592225888057059351839536104608078916711716152790349909153870371489110254341144910662227133975841640104428186478234291724912383169624507739478069522133336942438747879794251651258716793396425748660379313165331043588814796501177314866002717513601059585100456314922299187749600801505725483613588668554792167020617221307831198909519355288281439503096062399047440220495099900411678745671928681405080163637330168575514663434313322680735424415440085779784364686797555035963615461893853643524052297365502676948138673626451181910124946710101537312566890126378746899578273462585117103259999052020551789634244380991439214145336309241633437619842284636569953601338568403605255030598088413921780388252871667172563112024338735622815035757454362203434502916099025034634062793142526722080719154723573834518255659829960688901920261948752091294765711536362960800920344912444227951960790433267629178542736708531355492416069099328046089620706266309940094120765009839592197832315361605417179957131148681956910295385009860712937312040810609453413758282566090634164082946528201388648357147493050596598910475750148837126187116517094807553949392447972461871893226770598907558931274209539884876659919154910240874660431813292777046446094697106542415105048448717825440215805719895863051042793113070541136217320960803022059464835362003242093567516395824211045094562000480436751059579229101571712661089404222190864283289980735451415658661766481925200103324554794578311389995515887466855002668606844086986364892910005485747765583826398949175146496406921210784276399851614336566579260828807239799080495665365283940834656133308505534712623985660561252129052574164811719356268812267446777997967957427676363368460782544212840355175642008408894243399064357529839198295191664256052222286215831657119312756470112136359343541123608104362082739280297790781280439184174851124515770995633351318823244218279879064702828566338305154107833806692890222532158985666756057680710232769274147430491795549424034043929695175686892976503748677664963641898238645508093562933877525265476174942851085661942860520248877041609337437235284737876315740076744624395100148988572987647649309614902718573441671491446785354484920712450204938063915985788431957797361396638759356529694888891335149453601340868186923793711845939183482277353207387523804023248241955061064462127996090641832773849815452929937991695113358940951062806552024039034026329103860772643472884914148545217191399532121219447368860586175129762932010835165367107626934797782015235209827278404822873729007528303513484949770471372416110759067849519576598400572186387254930945682315584033304387721824685078736066262529729299153546204544513423451173254856142407971294643692694308499432618812393761558943372167125877019788179549919781345954818120976204674243319525323623400183104756640337964377714350691895216198737434878782089608582834728412343660380003805559483159947470040886139037271244343110624768882577766215112235232734414207348548498199047885051166647318613097330291867265098314116919373260172766487087513183913163062543839904616434828653861820496256039271050571268765386486103728061250036004108075971257290159057470898215728823149392157712734030835423027907326930409277521154153348505238133546409619397524110135070898620978034282305122480261315891947832284711463219725044525124861684645228508745036860504211764375406921418985602958692299733966861112925606421769458256697577277729221505069759792798151210986517127179578219511902681057654837960911324842977653377181540264041584478937132970617960771439891321482052265551436453399672814537652697866328039650951048761210678479132458290163600768890838468296697837485203412994733984246045319541774228307855365040770081584036140380377092461281568953996496504425673324726935530606519334459042770403834198881396327473328801066464342380817522017785801914945955455466076861607973699265756416562532673724519242200520151136589908000942662938875222753899042652665680263873808525148990119759193574925651315903610161769784638431726000924015847576017405166310639342455324314740002561068861692632504784347334246790904118872250996345783143865735615764985308973532873133212719381044242725913543705454025066774545923225901359297904529606300539621408400959640038624317615357665097819691413990385522073671875215419708054210769216809982583848659143563892786421156568220876684252141742232427472231661214773135469730259345218703638857484346293330892274192223145373539975881470785656138977221920759285353169829283488363188618865225062915176451784759845471209571228791476299274041917873225839992699275018490427677271475389125016031452150816789193229870621873247766828750427927733330492651508265232329808016639901545484466151577512669307569989770297228269292728588989598213236821644201020979135607107576824370147490116104697449553052523878258256345299990120889291688969118651764267951142556018781410065204325240746280331962738556975096849267224003664603356416082807754317034163064606419679287779941084959884349150521962616006695592535226523782265823799424206639416856055160275073825245049721636547680631676889504346019720575023729601303209756003226633571281899270522317268095192293809056902515239467849416649580293552390887302122393132861435294640247280590960486141472292482969477584313943114503937660221289402216766005158708015572119450631908150682705678561228718696854671883773251072021568649728104713541967266733577290289051332801043974726138835393373524049969241077314794675059645811536272684827572404226031683881738384128334732971313725640360090108881305641439562852066084620180820034969413704217900571167331390647717236458247576927385521384519541996082697185234245210636325186770057567864899481320793903079974991551459829988614760393630443869584807303158827049980147737227195537395822026992828762187045237621997209549824232964662394170715094259044177501275984670756665671501880474354952144826061762612206213850202846228959041052488974623517152451401942469423525558968819823782495150393605766094695141197771799687867304518949349107816511163073679405915045445551950282867329987986173207407637877440210247836190110014568445203748859981428902613586635513362536284435804702969823677676346411496485764672533709229576535447373016198661095836764535994196873134349767044431787272987721755026678386370039554029641152789912226533943238053554772511112907901489444134447509795524405169194590486326911752917055936554605741915299270988004578597335123315409650357671749583174104972790993810720968912850027031811251558494528994965636649148493058755037376758570592740667118558465615045463918405123268939098729139952114518896485031140438508198658251982882469174737702212323320726796126913180425795348675986020651262275681287618238032545780325851539978741331330005387295797090711558230672263388639836502261149420335836601423994539654534816276707750187648605910676636869592389282263053030857103879190055541475318892141351791506759816085479312109935814438875558440769806622206512250201070845348750287395041788465807992939718504540310571421097249817886718871513633366649147002047096247131962714682069971353989420150056230942196612043021153018248461837076346002791017531418900349767351675260639050121967866698449962981900028198804278845746849414241281453214478197760878735351807216469696332918464087047374621975074892215833873267517686812486875007443490357544962573213483018733619551876356846290248826703336589561960060315611177725302166448716924356687477231204376267097847720250792469349582758361163096103001478740750111350971737305535179351911456902929580453776452183126001297987527074622340601805726624772103500138353365543579133721575776857341232481855918707105347512037136179021944017655781829975932748168499680699959519993462744787953427392175487184438797589677094820580464497939216703779188020999446773162304452769824425259513308204630958844468391980636699986595589469045927708879204232095539669341754436441552809299275152177524644885624885322611893718633786276457269467635224851447457597683245925952231626821432324445856604320290622309490236494294478934345707919268936942162943959288820479023155727973749797751707557443602873766589768748121563179413800658088856009164367310763151994685104021916340897187140073292449009616510795999459535323130308010007293007675809364594208267458556357111452729413396217790420141962434784899605204804617048830516344292528418733463623569839176564817000819075919401814687361537445609231609556856460784490246925561318571539198792915188940497260203457062740677990303807591004929202924698545001712310568527465914691981267146710560182574215605754027333565851828133703042644027710714722352423300356539482942192396285156695603191144041575613775106649734306016529412438235629650584112426737560270426492461123165115823495196987358068703879578695300666264070875465092371985537671655390608883098789931088695325894295812877915859857687415133915714703242905486564403383040372687390136617912350782306829788509151714680001633522068271075913733624946027523194884012737657005760397536626868145343856669122387667175086530100623118861158744019422537800447050018139060580894458370829416358661703094128897273419550855750142397584745542984150205248347159387391135859824347357501545493146670266678506373803573621972907485686465885079310340607774929287251241582010939968344409369075317786396264788659433086685896550126199067012730031780010326341587929450037632552195210716622520522397899137253228171665567312414624501000436608635760634203446905014686049487870783517326741752595001538077734710736699698349191504508930635019177465149622070861163191075232357338254626277018755399355167943713797101307373678469981288026039064761461321257843332712073845502575690636364120959032316122212429550069442584408753103800647163155204760183333708848221502020071657012861204853100919003336935120656640118485210156311357674005696351845320807342376551878671709146639069076323317578497437475899535627704740963961677952193238088819348913475769613994327832461345785344712899083999256879060762651642085714494458570877169238681820884831481714166304795673348460420714921359148245724216970310483206874798808413896430096470104941640020865671777912481904410878544437878592141882493805732113886610022511441778849195175687026038913326065524459838051334790768552204556892730131061509113528203385089105713892787282277582646062048843779374711015724305055674709027951959661606799220466955373265938447867163024928978653176704689201735358405874727942443386525331727334032435277848104452131298203270217211968428823983019938148384431524620792019417404132179622541316224249951305301376140681657657397065834107435224948815679917674021794134436586432123085387919443130928267406566252410170105077481542328538465109373409896989755273511034824905598804023939392686666029143601594640114665053617773726158834371699886957570707843860529891561160939702284565360612987382355309332350562059154499716989130672485167861943374723422323585123755251469231715631544540443867034091887067745443471846104853153985073674813269677846371079515685062809871160718139351060933120992218551197489430250126479251640950293853939176926927406517422760026822464870662578696352509702161388817916540151064325129181127562050325287005735446611074827078528936860933185110835359175196898031711012211640424126515166030162540336285752764109731411403241582940855965000287179082272130405302551706874152564996141237651754103974566615752856491858073424600485702906070155705814645034964257240425480165575823336118420442169210453320332188834662380690616182138423911836296617999169572255610268493763077362555674191921799040759331895960655320526718961146419551859794919544149196594931982744583347660029187669828732994282999957311594090965121676136778227050741721208690150325362471919197492224085487321310947130682091438208784481532127069429207052288740020595149642249351876956475152334622844854849813115648848606742141427737720159745629846869643250101555308639843314900877200823824006218755910014754132773120514342686939614720104403041893994058091443649209445038865725982751589216990496419948755640196840955664566366303832430785605938414727075816394355336628642103224697759831423518211561313313624753039991828868260370520946662729152441771001044742950703491990903363294201494132624220351571884409310699942354210649252920385532776900657963197301582187586763794923398037968514097597660887690555440269063885763402175859251820982654382273160813697362519835033133067927772019390319894078179112373973474960261281442912521546568636868282257699084383131458929998434856806716430819905183257442629856434884729062315038414618869873675932239363286976398305330496433748504895363911803832833364137222876780192545341719341978360264444883418014517974019064372139655113100012192740945258850940910689296847951624790817694507298777645210020581076879416677037143452836328441421331549240170737426645156231110622675732213022232417974488717927816905088020631650800510937928112898824621967426298357495092521815096537097969028350149408934966914358847875166384942640705397374267116614063849673010525619518149779561949539491288121298523665947522390167276564048754657507693488294088945019203066011362392517719399191673028179323559640468652745860013092078904611313860560690937665358451885683738114736072989163726600354328329557348189772143236850994645398136533405728352954070215056052675697494029833694609453385208354598061830468432635039263099889970740590771247636556895450424194716618006356635267172130231683964376828542506022707062822377476585887819349851854882839858573403059705946185776780377290403281463013205343723905570590032508272294115870838546313367017500838000639454029187858279801140431352678610742715889805438011252978421857607466334761345304770693349807731133279872899402085281866482291204650669525996173191733972493133565297519388811997149129403912550132429235233412950070739230108387907294809954940662773278100988587678615875445348088196772239494810843900778003462820903805841041465121249467169360249564117910600704904488646691894741710492702369534645684868645574867459384186772029381379026334028358872829095575218770988543376120954254198180539454894261747710456719284729328524629816098149143031628530668991032518559597194856746149431654864722449919484886255867556799368500901443439343476185333702625550029901359230053063058963660644300172237067744469740699285279855429897737331402521220310497530143660741891354011422012515951360660629959600016123388066188811342420808952512738911475377663978879172843744667964011577259653441065390580249921778689774574930380650354177575803815340026911760855694378346174873204848590999769210131128701167602963346541632364456164665641421572031486150256481407734477871719677658611540437555387722487079206462348670966031651816921694813789950745902503871264340618740185612802474197662958597194570092950631348695506321639624754366859954533940332516946910419320088036258247328926613226611089180378254930878821115433054675262257863676695214994192897382533875334269431700416996477694536032026251849594319796869941859825305534255176447428926243158569270978578739500278053930678316598374238736412858654026484289951587094080670708516563130407398970712924028345351675737362878143171155836164976046734310518156623906822584501199453041431906970141332584117570615539591570643731883359620667690316284268922250277996005334019226403066637854593896052856113395811326410083217778044819503356403406617511889487121709629155966380930104376126294188653021968247900955743933805604643234441367283856031936000828706311851247807780944885548777884857020559233435981983075790580008817037904520614901634508415780377042678757017475158117207111811915148900948274732644136084018904232268127018254505058520484689395422040273950076543524274403793285548329012942610395703426917403240914134558260222854383045742593885214086154829574656343212333314213139624895041476093096909308953920906583145304165752818446795526136335508054923166181220499436310288110743504344064220965602671400223113438097483471509842166448563098678066961059603429007295051497278648286154593653316128632863409873736843541874079980678946728333613568203160404935074841730050041402608094236192667711781890791863942078137549889450696378710202932197520092385825102936636028900358994257450453050199595784537570442709991555226832830242339525319637456607444559588805709945295118715790267183734526186342338812375391948735789005627197546158441760090033150285300640589205011282597209224765046169849675693785391382895665738607293195699447800324026281510401740956192505453548659484738921610234881872138534943580231779618745952704077558925988933480074900015176399408248484820783879701892961321709713279714835154705782126500670979278809250574564438780991109005664117788919090032231474446439098230394907235689404931553003068185664109139767577703925427541935553480542710626443612963724836414928627696395812385866767619101877174490643281765613678293363333426148793049094455788275879284646055627690315503774321340277490126957061835168185165936713301644913404913571027366222058307774653417584264858966564269104513462383337624865407803246635233137535038631292356856615152538986518254025174745791472248060123797151587226854007605355097934684559729017138058469195830047284074055345528735875105748255484366692568009038711942505818540159812479489816462303008289075404943658837490628420537382156394680651178126157678485986913525267387663263343708293770772314314623004888894145812792130568163079170668431577843430774246498538518268351963399737189278438193026197634589368147687007152908983187008433803825356339391792762242107095196919686704001905547978599147217389033575694758570981485078322792778861202029704331813421490781459257812031972626017877913908551946202929407535428147219662373676986642492645650304796624346824364448694766691091380722917464578080469467175763923783711118155546971119388718006800419098348599563911359728634711003108704126246288240544872992800996432263457876503172895561667418091926396348767799251276257655476742485344769110387710402178974070394449625582519153298192218608814723666397955960921019495855686965937519745947200640024097880652406110627962296934126088943039631780536494801818999501080689933755762894926214417059608510514485133013111008906454526593384799123275105085364459211713251754318485233668404088374065179114789870895163064699027096536537176878431583707626410981299689436912311986224030920519542085995073899960959597856161263089778875902767010699224248632346864558657055057142838470699326786854856084863378384537799908886917408305675183305662223154998237622998868652593261457079330422833232514348247346900968526994639433511831877485976204272782709252725866786478145130499686746810098678086752442845443650974269004058452418465962679690809654437697282816140699334003313783872010655193014659932966529120741419191407916697935651612843826798202075279382043834701906017717388307443003869449373296351256573173805618405151425973387350856348855473650787741536958590231651277804374287733588100375908738281753500691565293448892442231987881851760326240360951923861693503544465412099229490629951530736816669019998791549967954549909698316633231546563973347098000915859620021589485151798339063572346526578017314028561335345836178336412486246393860957037607992117127767032642546650637559119859407112201726095576401596896866703433084471230327310518236222045267542981095756468178583406712954506007840039237438881382406731809994670171166099211968369269036141913784065763489236811621968622493393930819340640584455316119112197015948923145678471807262643194087594068958663271720931331354677526613282028408637247447506534854742471838808171171683281985054711804611991424920604993700258083757544622605872499469794043599974486150487713206292943097420851560479304175265438601967297372058988326741698073496917845738002837821665409269824807959686126152488962887787065829774606543245737088147623184230442901898010755240591316527715030979380006181212497047124810801935426179168003743131200927500645415754171291923280405936076210730985710168887227942965064019272903347977323146826977959372693708038903100775055130658039022820963199804332604524959022523718465512368047033450744279993261608043768207220572195130194277864464428457627512990676684085526049096395693916720831778136296785812926211021981101563384149228909787256789768102120593552846054235085775631032917424722824877795332351162157202523504468698361446835816445314912351772609526312163751441641073184686359798689130407302440887134912003390189730299128650365894820532369376739479447486286028258331080061766633488149619757795723142841246531365874217464686537064744193603605817362415120672469150631050394135061521019106630516591665331956355957161669592617889655122404858972910487165983190419715000462016161357278293747940543322770959814074859395141489536750408583794934069661645082424973277225263748092428880889894296365232429334198535779352786066034223850562894486348593036536863103928708719459442500918999316251406730846264221100395641628640884298545542712372808088587915783501577123926769463696630191103948740048574590325899578092039547406503969890767722688081141231904734147987430838543672138148052500277872702255767660335687790141157338647816336271155241736062219138773521316329024497314887639258584533767736561247926883300518729435487679472476173687249714679948440338440311590343120034291502639495696652708518594111618751409156786346647378326322697113405250467962716648537813626858479171474851458236205031539670529138536649514325890003967490445292969077740445762403374325071876687305053308086763642302707547448539705048973908538910834065860953764026583876990194646193409436383113565215390020149899717400822514029320770409410723014389420925985553957874824311043519783094455912049639301570861719309098602179089781244376045799706933752778058978196432967212040788659049479094587404400865677962392728379749357718062228524839435942284772764427462125241312493381930191858522938888412279976527628441213155528588224603817379512738195870854017875791829968131938696547288971836729602870867570172356562097292904331787884768329733018307513812774704172124682391810989971792052126193727173008140914621466373506003527689390653908362946350938843041100134721280656123561342368448231795379244998511197113762507160300087609276672044957908931267545330482707908925447543026431536640061180097046868988442557938081791420841139034927860371198158129734735091382497171204819231857800639623462016329244082169368841634295505540823603629825653912271962191741442915448008729839504057938999588018280759298774547943880842724039548916494054142447002117763754443081594736360759876321026107138252331450413106216824055739655079529052079804780850244026511805615670272913846168581768715743796672034824106385361857650449307429814399669301501117088851820255185250606654230642510263527361688611337511124785566705356829245759028227087677747338906689035030040230949985593601632636227224487144509420248368057722699082970239659094128197421856683388452135204746337885608871009612174756900214154916704969824606943122105779903363698109168294292252617800466967312579000471664143160832136363882579548207912440954789841257201458887585364461169145824723164051845007973512391430004524224047902811014136675606693493268816295086209819361548738698140092128982187863161135975232136082455178396855115414396534057710332077536695156396389537831224527328046632220644146370086039999580714368723583923839553675464115489962881262424415279689286876036123536488239682959505727523389390587943611502935669264182222373559342381894061654167568104615009722218936123283241391422794449352324055724454887968773622927664418555662628787821245981218674415440403351472479884316400301960456621074090044702973510128680909283931297625943608707133723517975915885696277583009231927793101312871706337035657601780059546176282323014347448296791173764196026445600936135400092207899201207430080994637842643166203972213122039602371719667443799704702304349737962140997373313746096915423648650023995545954664351917989201128635896564056589437740629811438709424126406750213486056628945763459774751904240794378761123254952048344285426448072598988101514780592132467581480480955217643271649031085669464591169938976234594454546173345968491009193727449818500998535981512672241681006902738427442759978231914391144218955516158876424405813746018769165031316177550480211183112082531375873129784069108184884370219218064639698621753669926412416711552392687207662098106562891032879122742501536253995411220624481946344663335101009619110101876817542708013137294360435998327357797451289726439091741176703651827491961432293190894516703413838957183379060080826147784840344477808707890465510346946605989192347474318042884371410556146622265720976149448101915764156950036918862094485841708839908805988837150403382277580366857185118211233369646053488785211008768236011873387130671406156897419768565277508970540709387743655082642266376674238561920115893068193862156557408480997014954073981635334003596163539324713425719549073528538911751801769170633630950146944555951267425027068079754996615542059588075200935819758609448311497076960747482729447603387821281935792124063649985222948064824613114755397513719534004386103371508376116017192152462867113078710035743815524007920718532365495438087142714197362259873725055376399170091093520574276221078104033413102531270188011707352112554558785570580191050441144739982883083701139462845042109176574305649788175060129768478215903813471482961574635045139042247139029621870389799500500729759319057506012174516617919007872355774474797387623492972470320513729581839380203370120826776624126925448531015904702018653671800362526395487858233772791548992948158184271778312521660243890640705535824550328073480828499368837734044962270198734747567075048961766669425013556926549213525405496698176253116846285552734409120228892365143888627879353199029903335532809815289895149711003268968381140090942496285195625919637838021015071264463792594693571261084840473234843229901590864541543705426046010418478826603396384943900859587417416468508638512568535393658023003709079243009379502313403000161578570560376668970245963807574524747685147877231630124977425651929992189966561059631866550622023051403165771835370768060486499763515169751989856369243439062585384820350471299529968571056009696746144321271546754216105916124429622089523935815736423530649000477342886719886364527851914716453180316193892090099072105909094815107690378420976796091260904545683408371801419442540594388366780206122120516332185076040807931105216735368324190752431615674507227310350275832191434814673721958018590790133068396341951191001078480160853551352197833289058633973444254887147022543583055790799267654085521113083597125335516672451322741951494213432118956666422474449053115190774228841541532685386376402920609310152221825599291250692078579165801612218145466473995805444140066204431179509373326612732429127799208678131891688083479842296196427991451083928012868916131539948557951194412731749329607822420359236296355236431768207492696478791723554786438659879058881343224914503536344664440394863812998479237792905811521647737594807231335883194231473098072459450127356515891738992526437872409133060077623417265770077695992123166409613813970668230554384593785943203996131853511268820543136307447594517487594131981409701756527791043743837436477586078948507250554545542960426189649042689834042331582281985347742324450222702128775896998680120489844472572723248207510243575338803100188168157562427873358279422222066804865725990505296057443541131156595362443947401599467251804901438942139985774274147361540663733241630060655328740859755600752680731849166866484148784223847069783161085949136846509605389326098752506770296434593173595852832015748511355340345836023707801380973051537136495963883820467392923349406390632546463548322580941919572819416685634866903141322750589432006842094412550527681381882990936208797889295402101598097943243280363440518401156833080178289452468256121561952349557531365002710303599636547285024324103336139543249939050570212172400696972526386671003139097923649803627681040263103877166709590196348608770352189287911112493134694748099299920118734423918266001400454820860885309347773956687475713262514109279718270842394490137489590660682229836534697160099005970775419752621079623441375698449254546031184689702964391256777515884440972825390674632686113122045400486439652385357266558016016967666235877104115402199159957701246195438087164940116078050070178892317266691210533967848725578951967387657935192943564717411534496749514494923929820849000537876038792166429816665765701683992467313272277030219682962843129391078405853738290367602975303175715684811478291870408247821609096712446488336780457856102969057272398537957741364626729514416673152070723427039320684445357210679660033649588075408093874391740466284978260515713458926257832453037255072912483147427693156798543280098732236531368131791807250756122397929172549715061370649389938016754846662602270388243440412879427078821336752457130613142781203568574360490853570718101133514678174531571847144100916555332383230779813699333818588904899049351194519923195086931416364830960730782087817738995910600586877535589942682776852093794459805803971933580130165856423502957032989396547256309873995589436605181102579801463482579729189928172617619440126343432376896279692130845045180417473008716294712279668490181371860426240026004020447419400362201383959329113406848176707542430731826896159113864125076622819812097300777192361401938607260860514972999837707943510414013857470521405710643133487727716153203262837409147788131619783492499942115802752786028993728240093240407037572703282714805517645955685855033269756471942582171135351052131856342832425013920318106568166153803439295618365671313063523840423201773863383840543412650862088639629415903444415763521362459686672965736343583879955281127700476893252148516864408778051079420833962267658316992301862799041070196995657839073692721101406350709362731786658961628960850627030114825651894410680450849013741883493643658150769307263336458485486474365770407760840637651835234253142933738772712610956439662842629793347497946099867348608366172912020493701786044133130403294558087339849765265941878646656064150712658926358017624913541763515514137583654214028852285123495770708216702911994740647329135414585995900616450050565512499574848145552308658977687018420013034311759745642457665800783183741248898854524665532533887579080767593361333808791086591877469811579727009381509688872867325888483534342962741647897747059228456409786550663576841994520895346134788373270989557755064771664202728189809723814650666361287820749950455768000842572337194455677942795040792117668511290696843081524498458867855432355399639432739526734319160929254982856313422424296102223719929269796765768616558973906769251679423816911565728099903102282150840420848593624064930620856622868959444275226544495143148011029800228317290252646765635631494354373001339639954117846944086995158460511282525090446645237614902427619743328785789826724683737208874822166738338104642635527033690289191852951787577298036961298702926030725456151094956081463280075125737202319399317087546789952112569192057937532203400722947175943068767426141863752500238232979764711645548571285890679528684392814968657482398327612792039008779755183816228261167874886591204361499353720311737766254028054520292708516558735957656561713172138270424936376703822566738474993868537391591975485747252544744725772864658156468375733877350378848604071903868866089654625257154394118463128633147119602848467961019406755752785838902856133923039004369170409926921487059832340957488495893367854135154149030314262945355750517091894295460595844239026401981164064590647910211660670726210258602180452536043365736392005772901782756327061671371552609011664962700522338275145898324901970386807207712997099408432597873726304752404337758314411058285321224091157721143293970772177835365346163730538484142647746409773397579474533286068080986539507905448953685202239741238997398882772981963964561930324413415377628167329081973520847557569843576559702515234769628391275258260614517865240984613099919930572861000858380994717353071415988879683660411651984966174259293692345772587722955115278777572534821262864814031404902772973332659172308962674013159978263449443859436765463306224378246751139184687542405697270817547169044474914722980292381405878003074010988990058812455890566707432649489494633552575587977875024708806428826391306873366617447349516146500226813810695504543829888869171304024714588052023015454611145792956329383144126656520538662241318761896379744387625134818457812586648533045251882961652028000188854591137218900887821742866041466586018814775056299890280057582796254265217580653667719954886461317701185872123749655899632549139919710504069150695489494277169508466266951313518027859467381389970525480347440616435025471365102759675207754590940671450586520090593060120926218166174173573896503095871737341523758440239170378058928656649111237954520294353611503442868878297434848227283961807734966380009845395460362680653464606914318823158585795090372444090955049134133172932269412969657522885074474061420903497891835768259122473154419386384833731183061690738670404807825676268807337854551031765720054786566688400483272801737429063507539260867244569946753073006500433626911751494495069636591525617533409390617777852258831688404237843917114648285272023886235145148933033649332058492201749440631808983744233918744250040803228011840740321990532248590124036428980556137156875984161860757918615968110157840659786537979403423915193540218645209138872389450326272328356429923293729151575750668571623619757561561347804807842452940729682961281502463083174062548645840429165085250155211529247900937262003096341030462362798485995973377411645376987081116289460997990969694031566859978600211471385794604146480804680951475945636309694744060409229154417372427475431090813030116538475612333880826385710135809053580071437782396138001953439849979114501857854633972861235788556280208481493737894296404566693625021439324601032917903868484107150830887072632001090221183442544607704282390338962687624723783257340819879471692284834561323783784212188493343545755451525845408556712595456533669767299815482824792398300860625823490424612403698518564075856214508377586567678465179238829505160605230839503968619616328040404051402196155010751281656072864564043623376657041357659058399366012439565085859731138272393861542696466479815177573577455399248834169778871527432419478625550202220573987626502858715633824028037308585115670171772577261441532128525693583516370521039316806618560256962174355095073090170126945155310536595142278054344538324251455879454936098418313052397561393249603529451760924875858503794671794723317555514455133771190113705505574217018630457719558190782743685458152032927815239933330976475000882569989924913082394015635692274035639290188079642458186326512943548485824593428933159778829195268686150447414803480502864974418491188419495355744989036757641276941579438165590725850007398651077262415364561196279091658925421063457477832174217734560867245044350088500540319082500706538628677624776663926185770925202935604410382419142423817941739706315774249637176471425241635377408305141495139028207232885482082796166132769917771071889989189863334625889840252022879181069348470246372737077125555035244046166036625970455975809328876435958693467974902846251952294004753960399418763807023025594263194315584849808762942189953777756325409897102958375327791334671626300880013031893659719093389691172645614241887322426490712559507947623080668577993537261210704789997743968693961442292230392197601255557633010710793747680286640558557138235328052877791352548584029422816542757257700474226566590224106048534201321649064258130166079567989912820123335365449550869165542585346074665943729013242719140455013381728585868910469721789005964571306378323545737005323582475160729200246681882591333517527179230928523425338694113002524383484231097676466170525202001516596730384501878971183986735227547990205638237681870721159985565529272923123723686175227694226864078110349225856694254894487007012600691281955573955214405365605933482093276588822041557770622919185532234515808444870970190505818494540991537065889211795670195289457528456044138458930456700309917618098385269489069764914246807107593861902553766306232245640338091143069221202796473176132380388483391573776536266477252709079792958785040692892525215142798914492502142340858502166419649144405145917234203182472364695284122802282663199996266037607663715250816558605311789225800318470792359652664705918688529032337301586663117472744538705346310211674000207916403087389896951354442108255053993881943505317362686120058879587963302437975952081916276376083420977979982040035766842701474844646370241185423548019333161881380329300524605379127647633729510626356514523626898007791810415892337719830327486440898352202115175203414827543082974421821838531162822452866518235519769056917741627074305773393869211667561541436460873142150925310773349468006691326778645752229232748231326314725955935061807707141653969204682828593919027665820635689120122516888567610873658156616192417127275317002036010051934992854132305876982091069161502374959092447777775238878071274949503378895678682795722745428719878838996554509346835251114645936812806977061977266690214319076907620692982341594635814242841517121350414442321966138671435557659057345512642673534855563710501029315385272170449658842144212036362507956218154044387962174104270030943042253025347160672497610931389110525465348353199437511794226595323168065450506220178908640219898548399375004331831543460809444649952748827505997427787981822719444027043218316220398549324140583291103641506096962280443482664111077047329495408546687385924752453783121229655150983882383360211506307432549418420735487779586477773512754389638452640349719072559763451922967256807311959864033319955156228924723677154806459983158635640616526955219530051115861192482436554512691992485358323071396562566130821056906769711578762755733984888391188857649946870894333793218166236150176429193743189484847171083642208834597921892026611215447745984316563757886577522142951598987803660369861871307531009162565926830240816104766071138621804898866676104430328206009090351338219021851185029434688504583475498021198206844279092884528180098065170767988199419818248777415682991475508584177713644049768564905397962766835259331915286811671490505180960025585905495451023455215048626421255311872114698295417350700316400630799402613880791211183630019980347153787214690289279159954825153679354644806431635126840549004927920325315459111893255286446821669729853840524375367936412737038237179424446555286081484822532977183467795800053185592633572074661420550739680540315670145988919848479323786680818078741165887517999557807054320650899101816930407373624730850746605510428696070125381677572463887026155060508513251247812909135701393450591459535043190403338222032708790777565538830261553406954703814096885968828905202361796291660317485755604760316710711880278734825208260309854055273324686853106332591393739787710008992142572363695536895586008808173829756323261076836823390069507567676391221853914195350024917071516536944770396707404264357686578680125671339002865774653881336355625843101822365919330037395417428103901310876985910967055888570791060550926566861129172852580426039340845962600423190227675418199174900666121922106305552995385865875151525193231219531382031724595177012172132771073213953893166607332863330863773848961712621192065886020448761030379812267691240653420383210678474081376069665850578342476547303014606730295641101113021118134938326980360910642994812710112910503471553046511116186976871955854205120949453784634144810127428322725150948109914265586480328420987875406876440672337433066767116982080297036073599549666121975096575108730468550399396993471894835313767822266201983751982731111002558432772193349483700629613619878198786186739792130522192994165181454661154057113145381534808032244897890888207922197422610406293082664313208328757020706940306603885152021944985459543376619984196097729917740251316904423368635616846995696678835925950146638863827058886441555590353114727378821873857997258157343762540118414563293417898304472554204032161038912026329879174272885330394802434782120428072794585236372716843726462982489622013556234317594129325575081742074479627689219549141040738071966624450232392835165518727969111849965175606722909980071859223385388656726232675627775760373764163769693827789289780970696165932809533106202693512672877058646499567071594760691100995202657503444167308616924577664396930079146146382300029615195647405620510234166081759980869367470432723631415794982244225565732213021200067350343746866770177729445459175256666149557069330186085808937073349575128586071638224782166105785007299648224297501238698352932539378928557911169085563673551097216161693018243937701326371383377011517519620348822714960805350239873194345368865522934640738426262392070022373541961820154664239817456919042508179032826123157759168633883589547577909230959712501755656944099387026557111612953229932724606558210500349585369349808736868619033302762705825189264392205831065393541662658915129850585999829782449080608655163210818539151865701846083021492898238058774595099396162844412832170879980103734686604507652467373436889954512334910197229043492664173581237441033265058987814342763808092361499710687252269611365400168911643140457913705489198269221678574754884135772724178275706714336807540980785436257095241061862216524804034157300395184950886113815657779869047002121360208892129013902359920938483347243727526881432868402681650182617099938699875888296398716084110298988048007372477456135949637458236472189283485240354071159153038220878137060171908096669261757328621801017400209236236209677486706802576308720362357769752327343566099723519143867037187933122867521274468741667931105716451791550771140187933837155480656563386287708348147354635983344079043412562778269746136374778094959092412966112419689030076952302517233540684314516320944036679272276043971219296359868212995306377063911268851358579181090492371677170208487900166353211422723623776075333283846181002620866471701073002578152271866723044320529509360164242135711522539987638919941107355507848921667307581212203907900264462279707079741083463347902255399277380576626449868714690193501860084181576770716583593892548236175337358613156721051228848053121369636201454167171755037460602727007102551090033010188282197764127512830482570594434496987429006981498684314010799172231479441493677040697699377733359991533020919167403441264004044740352512182578589136025659626972927269065871568860352594784798704033175239913413448939232914667256962162906968599986549569026499608654359343831498737700972340211388482446639233762283381478825709773302938737626483720531863957832677357812944095991779793066491502714182342901556257934516191459869989258910433183762961043849767899191208736168848203426063265693120541855427469704330977346407785182494143807996323056966215941095504627470249700732487155738268354849178865362536569464353551129671035944704632352724792195944597651982141180789693419612963761596934994744019622120008103705702118490581768350462064374025348217870010762938913664643512932479593409391518697163604035825277107773458849475168581935374986492662997332199869315971210978066682588331851645011183378390289505016492898037548422398554134719144612406135931929861425529579210710925084704927535292107161043900019158763318059580454944496754050074505379922848542975658677600428214026637727065683252868717665276071393128426352624935335072950296227367596102816724588601473417449159848856483813992909951766035558124496589233577528526598877691835280501396839991841947254925098395708077070216197163622519330771588222684091723799342577828502295145287464390329958761302505982419769703444412789571040976451837804957226619180368054414358900075076189137212640146253432842809392179883222700978761435371030695239724251036624809693064139607317495442288319831153482423862573068691339940604968598042306713972031956298377033882835477873918850733092246371599523580480985991186174671171732749837268684220621793195457674589808072875644695649750149541806959005285925932533146291495027390899699396251368148341910760283775146832498557973742899673443871736388282721464665347876449732531392684779355952515633992671041830947294307431013571321762871491171816303055633058778695199012115435799213000634538536300551498009727116511111031317653857259895012741433978286737278555804550245516285233748381677744427609817554569536940637484061249608931496379919952177413658057561886492507798050818777500566081038563917292674749822587820748402912147591043425340447955322995769612773215983713922280480139182233289289668455294617744831958954310106717713021993924598267379493676855417458005924631040037160787099692905602061567224471233497730964485344360517752382143219902542545837994470414412338173184025336554248043235117496375055102474214640706495420133125413134051256194668135382399464366680509361591403098713571184958475713425038709846413684370375420209371875936937977701667146473644663657814529128968496806466694028682646034233207978174237962515996586378032749253808853541843206924516976578509863228449189642991872279531567499228642613400868704046710891531307437116857556868915523348538296053689850960901918693696092865109769081315208096226315221365087988970782208040585591751364372493458688657728674904959186680785776162683049141607846134002730652383127653756308636326047887925161138010077043655924407540018739536153025235266069124687529264643270069228481922818367107193339593221551567609070564178924226251054208794571954535787956750259410315700009986001337306268259017399846138965748998971286159282671208090847898224787227674435621377365432661956051309178766420717757833605114987965871241001972041315889274390000174150132362932871854634257709076845146586254212918177658819368981119131575154048901374973880120604480418517785495062187465863413421288281426647812223938660480456491379587761494298048091253172173818955627876117481819886649886921835071527133705158790219099226075045004760171981308931999027886247011228442972420325536549092596463971166259284486032255606222046930384117479572929029878545753107302973280367290614241965980488764918881317246492719935863690162354844492851095230026571843103653283535655520801745924415173173491739251852586858227293852080282380843826957595919525839015578555404811320191804374245022150612809922850244556930213357950435203110905843986560453282518129059063163254009859010436014985968046921432947730559020050257858156274739981361587584903546764161065899918565824184519576224737243911980750009759740640374983475444517607808065200932041546626109338265817544064639034732156281985040584164775614409165087850287709127272791456809559393532511389690635224156334169839342608203555609053252801568695873136944989169365289346150709471831387162411554390729076884101323020039485403387377960350074109282324183336273402824641975336525038514769727412190428646143738194264631701165286041594334284498863512690790706480132678108542380911357980579627694244978631494012266641587684949028608168946661475705388022873811840910968439908737421996192750735848131129871125538166772197527595883459152423632179169613336387224551419965416357361340927420307500522938669576817740361175568668217249988430709849694447440984129704715447263011345136540228490999850702539430513537966207274887488570897349862696612807271949022900232033462251657696695651864570817747487248480781678388696471406012802311499369270877702243733892901685208361772705180332387365794868437782690411531375356486525897593421382452847800479469548290544804857757303912251951401353327763819900682929784781215117800332383439469115905826272013415574953300628384292228463098610541795867142186428365302834359319545243241409979570480452315464032164324361516396870352749409099327791214973171257184342206481784307976227262202261899895166099016774025232076423610708634044310892363602998201445039934825813784179640084287751093979097725370646866811478440527757405239683635939053014853398201664462865497119768642688670135290218092140289093004920496337553718579220754745627694295793835059878087634340988391608178417305990056279570838401727948341218465999714888617981259551144754108807445627205681981719776642630745027566674359275004531862148323307714072707291019767434236188774147906934671657026975012800554488822646279007619169221703983650452254233553422622520337185309538632467453800177267665391118762200120189269022892853587255088204827564679286695951547336312544093530514156153762898842719876722311305752095375625047589427423714423561410415040772115676090214704493027867938280019302966060270001745239802103759924596726545215732653362534258267029959097833980300198528429684476986359516811101069621642720273444382775610951284897997554792433299931403894141846710357053160261823581814781763654623745745346135621742842396419862809950665348307574262293501163097401258295468601658919714967499697952873666592665351050330153961863686128967624452842821332501945838335899525666393451373184149708878551188791090311740514049874572417510731230198982255610237639343214927405799633090502235952785159817137108016175096061956638704962463469729735810154974988400526259059267674431235390422982835212236091350509151407672015888492974290228422055864171855459651216730104087408295397582977553388599478678728247155885506588438405514303262803002138326095459907291254099492334124142264849426207886420457772550558067737271078795495345338486706035120576998856502990929819645898367869886941349954481789215046753133527071755653710637562410577301207296382682895930632878080886949330403822273217163046238001226549227146552013295236898914516396788545947746365666669994779555746617070415317465180384112379387249793831095963162191717756558095889265078708475436304052537710750649489386723291389249835738930509584471445884809624800045862172976892243871839721054112197065969680557063179845287772061361332783842534532487969517009807830665419102372388801325352640662129999084425517165399048145517646297598277016423819896161061631134285901902378281373764548553192059647204736094449292732767764564802127526105774100012512945226680087224786052827049390922235106288920310805424029654865755545396414623950604721234449286061569608825182953873285927611700774799913501526169116161222213831072015139951456642246323717093260287253243938805387348930820645126397528076738568922982450811007430038035778154313018113660146064261947277330210776304386492176797274379443694816350060256962012770646641782339263403147398654722594965671675025972746022442358867014438000693237893733024093044318548055593479037639519991003141802147925847431957182069366060898729042205872042855276100633104603823897044299107592303257378638431990289850107050601599793902949468450926050798536580527432170046953958010774722501597155789023539305881998418276884985768314554116848147032734395481042140530400494021097610765109138427523556051839678293181212728980872367346480662507062863199033097239497334034735333899647270699932923822931066347793975253192176648548631620071935375485966273703747140421235986156773113310280105291276826925989664266607169553941567848538645408377525482598691823076432843563740434400743089929733071128271944775054327534604363149207470483290005316254120068290551406851785907238594784261564003987709209703746639509552184147496339218163176836686345703930827771362742395716485612346335810751054545248060214410134845670174278665410092418815793855284978539929636706838903351855917793107691368186480626936219936727693081425314442771848566529169074231836418523961725009804753068949583225986696682191387256937282396515173084407210851829870457827409251798320665913442635709100163395694210918876002678588594186922861147125013120506116541753417824779973352518889722125980684498791144510716070039860243039164286698528678065328707214900460886881431194668641361566237405336040636396821938334660314902347906622057888671949026327853963055795167412026908590373851748597217655003936809671379278674848939897112843625621611175670093998008715817925551652769108207541745145110286153669789363849259720896056069479717136447324430109035372424347061451731747104126154582362468737597283783260028631317194652991547503179024127500915127603775458231037308447072106911358208368509696462040598585846859470211524504235678731646215617277152003086340035493157585781719000587533334930153564792499884665718313866220395060617916176957146444601293745547551610585265976482332414250068968139248830098072476764527745268778905593158049823466838943177666030728662916434647159126273790290931160290449836781468630345635009018001217724034465912306604261096447674250803365960305440124262144438319167512180190393226962317708325411772727238665791259788149969647713310159829321447212140552702679696374679037064085617162233563380274500267896816790049625048141449140949610615710946595638310763937930818156586338564912596625207404321496887578225339383043058093836757590845301624583385367676873778821876405350598486430261937116439210326056257251120816423322328003174517746692254565055413647233600886014469628887305947479215526246591822689046200838650399632341698349086122917546465691575173171108635810941196059289372251056602881470781038600896788354501406716405489979292913259029844131572907623693423958246527701894094184561719927795747626890523299518977293388861807576980616400852417625134921794566144084713556870195581588643048481109545716633151770277623535906611689402936340471604607801953896403055476233388843551599337935257329158729906672907071155969890566414980551381941135022755971578948215942927470797762442559155201537924551416362911542063168806772229142259980953427083466081122665629006484978947343870564264029445027096777909395837774744720650251248115165880853444488070928389022831163865429839380015053299063466295725022332016684510505022479415769732533176403430933521947634803924525022303432490451709460544423253334677726237381596110871533790638913644281219620027654726599318555747231727483980204446385698157888352186114241441621711272824894033908173314538497636104603090288998913611352149504418292630901741748431632394024965386856491608139329686696971163501633291092111870631768400933752424011883702822156906037825447902798536805671370519738586194302017180463307193277821489471829700658270381567189420333717425504887486019270958316441059330703688534099898555765634301056112975430017713421864505166140080116501971769105735439476447101216477781525535048857740480981212854592908616701016195870653596157114895282243453255169964794564999158296619127420346482381109233866830362605510592525394511667812292866508489308359520965532252272167194961800327618984546929293033951781359520723495140328301491374651160332614909957486208139662191485753337076140671983755361331937231921026192581551891343423625708968798222935077500115492030980061816410799999375750623803522615469897452761051362951954999238452485554286105613584383112927998444103725856742987964639876322019493929172355840560615291781287540141387873988238964564036385905256117234594979496317764410668236028547869816062353631411479662988105103702806553363102244654124389892814364326615149940572710941124509872366368159094636495331155101290295266823147851759669356366867108744259867559000476053642250486173814274888471663678625621948783847504487989558468442380403260700639532283775504938713762077829447547484307220349160211200688773804784247326095666876429774928579408551468213622946884655047572002671962880339834689433396130154617975241137533537315717418852339308710851711424245065951778878145427324684334744427803015333949607836100909192925749043161714293539942181158829565624905637747419916103789539227031032749369718695232348420226111329695446434281764601062096931153847783686406226145518959872619508315163773186047395502651050617135154172155235135695057780390010136798096932795644693221897856586788195817080465066706143332822294084414277017013867548578573759814451077042249072101306024596408818222481876112551171002406175073131440753432389263293415179083158900942785714801004155650581369068791089911397725881101221868726862977283650847394858053855894693017927044993937464453189343371078093202187071962162660102316544411709048551544694438749553183569372182187918754609134791281854890171099027771073379740968148947646167544116970986598669938818660898990785122111143050936541165516455264719075529470297091324960940306323652760412919788277703986345887059078296960811595651499896101868378699683425162847069097158770856545480046295666906849775721122542465333964061278742832884935203650227829143447936247373486841866416495938793887308808738945596576979897388297021654630999992001137072931115952352861017081866038633241113155050153726390672862215328730857165389933801961652345954094701711380290718927592160954560682246534150341459524586139039109697332533084496669095551876252875969725117144496465719156112294560188871618495223622483566515210285892590350634743289833778545059806393395572063829306744490000551188814784236071421940371462982484019289832260914229929577502995254983148548619273233023328717778821343391518098037443925452463197091455800318038292343617740720441980599684365531875648604092220070957423183035911629063418248447249378244128345381958165264130662909169827052172257231491399455405866445165463499526535883380676422736585960565111908354460737095436895670652349229848759310044838606721787197905740995568123503999449072081901140739702844959675205621837020998610056456271556488883272411729056748772115910673005922479967367108500067397455056620736583500316265022726431759188200874112906100067341133852253933230993285057014840410109176824474423135896273404587018479120697300428759059705130035391951388207809268922521700110276895082490529321259015728804642799032366215994441171645177224091777256683057046844048433332384331275204108871936438417658027004748221124219113251688610303231885555732479164738726924006230748723842399370274165844573433048842972365633647979222863556180817321884300211908331786282115320983795653376996671851090319950835811492244058860586584729345279151896958362718209928071547246154046398261851274190542029927121989854843828749320396415254482407622289576705250622724705081939468191706105299607049866397569204040186588626492278724170638463928256937883930743320066767634381387475991323488020554775679598161900700075474725104769853450806732847479603964008645964602037871790546038437993754748820925978041555072892775144428179520949890899265358195808892871672681039535644002060297757241062610000058685862821646383385331553809490183523200989104425146044004060945309199072168391144968373914508544976729362965277085089799410589592863882838738920539483030779946326118350242383461399490396596883773475279208429098575294845171487157287964227100441516760871698560316262559507653519317837215699093564463269562830647430772242671560960650446346698621371040711052729865379184251285036737229428191058637239900179864291079986104952223518599235419820014039407895076206616929467369191288132257980101939925433452090761643578467669799436083130901145468712993058943707609463062514525046911362710989099534528673850049498231081099455044238233625219293907543763006646307212530978788768543240344419396903589606372999101371799918488324308957108891067744476868922630738592058721996110130369142656876803324340624893896565047460464149419465420821997603808734819069891590452344543973022313516081659681584200477325836451598338776066101481546629703568916760445335067761042502768107485799464749285414678065434338113783150509987269278310135185846407107803196657006115620957834954577910116112908394227611641468935479134620697127039892724972850708820419345438582158638725356125186408660287513738871403834212025645820187775209688217472205098613635097077051016818187266015128741802520680390166552521669357581352562868311421905635208288149869603323737479684188827941143362328170198698800311240787778054093897508812562547716894920176854990084391641706867492724277103624851833942271081721485987729771195921813679973220844992769228813004454935704018456153849304579970892065447830604543399254282730423107872737066478045444878455076364828131738422291943037799737576184144087116420654885582832285166729498381226920046839607152115684431887487344502836387236356171562033743931696944636019617153465563611712054910357803210458210213995988628843640983221302370777454384329612814621610581898921895668907689465053676177894444570197905123385496144046784976896221558314999494838202662056201678534379591069589521937449115242112213461502356151040766862524239028850811473692955685590603013432010501970911307629217681044024072528767988522507016620647500293118880553328421128565489550489315913461037943582830468690709369755928588191302103974801693747483327880592283391925732198148494600884879779942305359883272789756319568296285361839635305866213170368389715885543577298297016950957054382856101176944604267255899385743074292460490820708046529091220144442077700541455304205451288121469612124998320779465524914497352395409549305896888624011669698293438616709600277239938908249562574280738765163745701991809704712732313111423765794508264202371367237151918417344586093567033789073770883363145084668093370228341030235407608689627366237715442410543090046643041687186618075269181926961821286359956949176965301036172269534196401636487725270578264504798053025577577275496603622629112742486786207408738236010127356200064969500132330874992280482931847847797673681121061181415812199128435587666604192927566759461312324550278076286637494941450225860133096026318965086481638841309629812697510366814647237066761300645019167561100023615590783138926108111228746903987795676394096040371663549010837870925028669044868636010786278221536382806939644779111468706236508282324186603903466763000033258372407552665483750048547325827492525609835948174198662050373202873587684549583692350162188836212113995693723641878251012976706513910915556405187720635587564033690166654458759151011117522378091188043230782839210454299439861669452446684745765665052074288575658028331250105310815256839527684335875842344384675693909564621430362193623923040151319353790706586248119711518967941470026082224721515119870498559720103607403747158283444903261472248226623422097772587766626501124306123557523179085217394324616800110671705963287943131765781999853244065604981696662116305310928097462139015904297621391171231706570074250232061446591564776563953518955791921021540840174198061457276872791083301291614253823276216778785927577713291111116412806723624341527869206923413972789992725993739562139918807168370573031133743864030039657400669359694419870700159814680213273463768613883395811765270782329607826019926257367524434566119839127093955903444350270777670374685076200194390310204270497365693482157364988022594047854000621710753689568221211311589426684611056132256347028922065543361783321078760343545110141450153251023341829126503123049522706683338355715465392705583897559333426810896078185509691986208145742269074109904345051999385298668276264093900138672107332127645042553119389525064855355760050146715055991163922502725293428592974613067290676601749008894807703119166725021367222573984030817840022229631414747533492314704443912161512685557010668031571066982533380490121939868162923162879694064549213839692964430485257894994033305295844577685713867564735086674807818540861258110148415641970794426563267887024012972368268322461442822644656699081304741286164793787647948799179768045556205953676969705726935601640984634400530333317027141363444297263622736933574699278194788820119256816872492831738028573917046741984983020364924640003356776490951016641498387729058472215423122664502046558085710635940836198286640800395004096398220775235093551786751388677835914144327616835325653931518679593247389367109500697200628826612174557286943557827756380557543073004849576035993482015705215367085628848284022852007594045247321472543845573917202733252091787538087749570093598318453908781049653304196650775608797524464967771063225222848836876454099002280259066351542264259398347321573162487300738164881590010195836214750793512187750601923927219242038631996713228064861869626317939833228803271904012405880264638140056919789278448317470037099986990077563486441004654934416266437194269378095424543241177557309617101038363141499289396205946623771026498401170223174407067555679961365523948434518668950112881837135900680569143771854072410225646587880439782976032793760353090911920278851608649600883445198022699220301559211090751253319388871276866939247028657032715598460132098420764066351363969561919187453286226250272191497617467399880199841156567442001636502937150533817996854251391592731427979506263077521757679631706652094578187478824091889076944926991770329539882749980226484673088997009610645336501786177281632381591680357781148223794093427030805935711162349895305310061537501071795106072734351300492229893830573539188410015047072135203579482289841820976441652447305840881863236083440457955044334557396834150036570979539609312070044389699828063616013307197355082635334366959207030816736442480437063482194675848775972585371608622583189374582537567989414780492755009279922292717983058747936071750728134180747428754590681930056341893886764125360271129583867139616356900203587978240520764740903120085302807740478422463943576772089165117152626219506152401519413515801991505578334690536678033910396997956300061870112443864118416745021990880838531973519788758998453084734008027558406731042916822572496865944738061190555838570359930241678254564978514067148671179469827991190582196641336579615174831520146967433948682743270841533661581690924875062046542915287361259947760776680980113682030064644821709112788981527493230230865375285645472001762946176274099698804905904599275114970523472667230771438865493543176775044270763769965374802195126575502402908850330837877140586267240410300448291782348101553348651604689020570274474640207391371707203656770756364638985475204338101167484713167676825910261912248214884764333667482261870386375760955033889844435112879089202439529449855394213233447658659047287965766575996861768825936465316721837537591434223037221217589146566834439782549956912289279758721298654338141048627531871612079584785877714806353604623707046049326364845931527603602031731344845025010783738228667726581066044020692637308586771490181555019402474596159445796159323317873430659946901493302809981896047337787879019384740649144612042137549320926555198080842312807974416673803265205015642667320307235971090413662539247907508418654521819904376698001583326557246453354646383698626297545337281473190093070946363257028009828379280908695509593227242454313595406474167404893895120809059152632774172510229479788506115010655608695412319565694543031078771022048640601719206755174228458143453760692008331834132423568363430020758020820683948087840024726957606347355146844705054813516348504314027668387090819979729200831810367168339849400911361117031321408035857390625614280767332651917985172609016042832221633329280514823895969919350917714105389315593539849555895383119820269460471968880773849804783795327510059904769355144338719599698045572125191784865532645379699620043562973174141927056625963200455509870397424696092759981480050915767448163874360486560354430600766039364095653721045418753336705896322191165017504304718791580850876461429886315791980038390035750696569282341471310943425734756111516217833181835867534467184766676907875661909409696863954095906754110047419013320398287399812934622163425857527724412032238841808391178774463006691987407349935099148129434761164753028293181828547677131952751397084237493355194694399416607897019917798588366154624159988926979498987408637044987546984781334136465241696766972515245892864937062929543549024832984945856090750973788727491952610235829435529459060309410373303198715729148015561012287337695644545576994423433973432544819217400542132635428730552303863458082877190041841806625164903859784874736224983124022069706037989584134793166906150171642788116583209322621395044381872020618510312452425030195027487359478687739622702829377907034873583353053835524694089230779774187760674983786063509365229794410708567296838617312442260452412726153849443769433832738643271439595706769743289375873078795712483160493132874298742406177295592928589758067990893022818355743305341075404997457137172647885078931537552571349230673751341918931070289528669151062157719465559492370119182254114458414127474758966343769658453043147238094906093981182524744387350571400404696362010786536419530562298843932750794750076953175010259233549287106736239729063157752801468511513946385822423989521966441481807001110285143173006105492768468605462347834744934692199782006101833179767914714762607127693397013157051207277458811096636916468701857461839592838805687006264460263731331991663762529028683840860873208151171145636125684885187973195772891588138518706991983377173374292219965370743220757223707185692108809965391627048200831686910990200318982750702760831702204907970580552615614281540286488004148460142951339352060626392841237122822775169775037807180337245412163094067913467920454643177465236209637381714444027935722512808365171105301178856844987919689190330250029479243781455954600131570504247164119690958765885151812997748624515568978973148008844147968343016324270171171334300834368045049719427937754253160813891455887669331278875162871954824511919358660128479292255626638838672451219377540877281982199341331613336442544681118069892325221770932413968858454542021784424210289015782996544677883806611677521082432175691544894851796349131058932258921086764278893627312701029558306674788014850309518285740854346978515098332444412466305007743363487718395104314149910772756635980453624905373206027009211577743386381628754672075586982536121093774716751796095624506456202734382868306371155512735613242344545346988298337211772146768359895519297040167339156546334112264588260484228948733736624552945132923591977053207947435358099557929041046408691153202366623693599394617837889529164615678976430279726957912413962041663697877343243701573779397545265036887122974929825102547892302001335439410542311743790051680758038177250542991365986514951397593362579614854795706087478141419756067123830392557015630222183048564996529329577470502935543297290992137611935517915576417359315775260231886328808621456444012300924544211810094327589904807220615103952614219247198279675498999495615818304026270755533021637336413279015602889451813509589267837711285186135030344448898583011966939459020716056650793184499550616598079799663481433485447672635332892057772566079588233189808678191116040094633185597623339545397832945190949140857672420798390931997079194811430635898807309207029984282434146248629060995234455225234065941693396217613254263807828413979342387489356431541923606593530486716276079847102725849967940863541739054744909926504048440685902550427932898184117179192974222258349196919326791373855475169426933319804125962252105790118436936559155332987801768854894406728455998021598631746821162103078037637312938774878419087647402423522953195408373995532825954338445549388917811984232836147518110040706097421094545541608338578797408721339002310229938561067924852352036215065433001913944429523913537761615855695016777655664679225314890753519287957836973404129314383896752377150797794139077368530722258318434801703110862591298124347019436390968916097819108534758587196170275281500639226472281626144735329603842603828900589006955595710060831898520860567703570094248619335260016166194539665254800781449812905217941241950610164282232732974863327728345470057468353877939008252160472883789433528173676662325371423279216996236338294612865038355077550022212616536128275808553824686117087571558172397367112717715483364808880415938613912497633435654016220099830596762743363367640992004484942868363128225305416591940156430196150346745670292426707818891185143080370176125342757820888297703662315271908502752064790574815364129041110506667491508382163942550615295698906019073246200177295395730218312389996461373327025172930452229443416526147603924385716133304650190338470922192677605927974587952136716784425724305534646606865237989510286403505804799268197175819497909553737887446987941829364429029551694537614438661075239030358409202424325437532334338325106170629990457498763171371390545089622753582802132376021630005395708041365801617872378132225861687126650377157182771110405350750429644005913678374669599714783054243402537534105650578990438288915807278898196794833394827234361957209405886718614634676603718972143454176850983999085433284362904462732103456966664926906088548312794959873822129637271558406487945326136390505206535320852636389620599664241202730520177222910231431115443209522172431957247360207634542552959389408176651411780062980275878713268150918835328456383455832641298135321998306872447560686087042431355933308855140798321360571265321704453568927318252544443828892579757197277192000109488769144759619633476355254446706640223422950478228860289755542336149187680700447387321695157002609001944611588145244056519696124061281167110819945692759867556009652034506094051915612234289874833295245502633811142578229857486781023888491372656516692095060032921053339482621743659331478291349797605589169247282617950911389303653225742927161986755665038402300140398011232891150132440900702863221966014256706540806557427126554938802438896161311442385612737997040931535107782498480172723145328719407612618866678345960389693641240911003214942511006225305957784511401913242900644816578883389234530731426795924281409192734081266694816457061287093043502616467814681956692423094106754992469060301425358254005032497401206271913770471594609812608077198181390016073454180276163305800654181523183311602350495619098466844779509142958303895837655137297099255903500451197641334029370700275272987009152721083122810834499595315370194852815435395225606628138552413366549853245514224202517877743096048208007926471664372535703658361568799425498464899860319953589970194957897885427020796267041989080405575223445564065089738758466878800401168859608189881328644420449984055961964668949627951654667963989887691866210567354623930193715808986362052612310397842774074672762771461453649845249274841787254028782202029675268380593027715507141577128111869798017701449104577821715128002439734803421546150983389544376987626086815234284423027859016847317652539434152053747958321475328724140508738244189943416480920034725295061277849028600575380803771800980343966804269395253541877963747211821743875285761752966288157567083920322132892824008347427783485274155475882995499513453759721529516451024587078052344045957362875038324184908842609620240805565999244014136435768715808123857593820559492369950390075644423110857716285222123699185913951742467306796328598675628017522183190211620104000225259280503049877861582777555117237120724319644503353807560716658836696335770984004882755219237921073920164316711202420358375050966207706386117772453382387993557401905748036465517741941833675608437433631090847052194613770868795758633467365067764928404870034115076154426734963127302439592357456663160775910311573273792280281358906693339549645609117176552243329166037131825965098587565937533070493492225087158979777163963189941742135458732385979154392383135794367067687128679866434615927145665859754429981734909000476381698179896658492906404894050709417550879074377107410968103471452715100102733838731238958135661931635595881510550230873162911900034353906247207331523456627613188562252850077875587665298788750435511537020281462132216334737764399202582074049904703843806970607425986193349262105511494968710563708474621708169248704832192413062266556413033305574260293032790974042687428810675374161079862206841648950305689552980352620133636792474137106642949607080123959405008731770319612344612221013151743052853799218332355817951623441708255032137398444137740893969808438306280740572808003076134343007735302359481691001568902098234672831916417281664429663087785624372747519035085191329827404539063412499205676812434814783301256192376248988639972249826781851134792827399116623648518211715992815873512504292032469416441309713240259559111309982617664975791581074907092249689127974145072694709236153246080286332671066968529951181761626802586062947468065367802778756072984748316121160620403993296672578082744638270626431892676236822988177292418681841246231144574374602719452126370713703135198304171809076071329809289131038919991940218066505239002651926925435041773183959035333083573073734200141114320996438937013045676044564678790357806853401310531002735486864693199790311703043422516450764169754148986469381004018089862607729447684020639129752357521685541321547987853166378453490826424379339678852081353852477398510326724857644470027150311854676592025075221578116706156856237270641336071836892024738925553479840770109734725499964173268038376396667756674702672831985864171130188651925927359331809126537391157335780406475137056657549233462208984166266933449312677673429397615292561082731253218574103275511171704086678946355508774117420548615235826210397854674209756857807592928382586102580542967058874517969508318311310457308269982848028407979206090251598284233275215187040747252465648167863387792069632142159948803138724041346680016066886261325307639678684929426043366345275214284392159692164439468776792928753316088914374940774873681669387079444178297669298770114862038506425841512435415220264147185364488637704751471421606012989656635142730129761341752131504315144500875140365730333235808062574377654808360362396269529496351845418162626502836887081881222028242399632241929876718600590574475992927851113415528389103683941508723727057530177542526623112196071472910280624929054516914343000456278484537906822903203506866665122588581793281419489988310487326586284365858920214531295904915494274294713806745981090024779252239155410593085044422429746313445760564141414568547619953794949852289546048958460945964447231779566391761835103230875088400366834324340179062547006467865454816007005297825213652617983679525108389815773690478797582482279893454995041180021357274328160743086642757082222740869799297339080223308231961347929942683057393188696258057349968827251405666885024600762386685883764194113615036187586491482535648453814820878995749468421484997142497581002070115712280101851899449350932938165160940587809459210411091214132878266622179200959278342727261625149972852131355034357636150492328301493948276165314515906509337087866276123837573024422970784797156190226425654256288330403948826389324194801220963953335922564709291117247153431513740895503088618121184437271876403588629790668998623316104362804329055210997361601297044412317965422466898623896349220934986096732146014514872115745448510235316842487381765647130285902889592658431339491803820208268256360202720433824406255790980585596637286453991200364801127861492619107339633047226849395569812484218289592435048518791455766708042462708873042370768772290166287907528276144770959807664940855376036653881430446293083454362105215273575753707267648261101439697334392608207425307974071607193481083356948064172316364776941853546124510543652668944070777729592732367175064651055658632856605748468017847220406448304682952175839701635100318874938051010379493330358854593162039530396791038166737301407417578192205666264883768418020078437926233102688378970832646586052699535542480705814617001782082840887618240471928824218085496621061927821258174603729547696887471457721364743354964976841487874752871800895776141332668525554351775088436071857717633751054102125699236779286012669458099661263531347106840955432836237762891145053964351705326414279512012031359802105244018011864882019627562855668268519091886641600107994234296517803618701078774462223476102453539462633121382449976388278424217857829389247117603041001943791119800478478925256402767656585120576102368826615735682888282067397188382167766107766355678930600964335567603009002472566738204611932434732060850203912970510195437374830585861920015435120907328793869006734352197709321062144071964812248799389678707254112779586280645291497839563976164420838380995643053080423114307481780672154935494300249035682194816094632738690548588732732352932359358376255535127021530672145901507491073225033932019891250358283732316485584318495256939301301604043842850294242607614376413551427339383532117716149414630572358252775145733406572177939985855795568405360660372726435353485036153396574852832378914315211153408432034856517347961282218815858159125057108954916326813128165075278459871087927776167439300782406494054617826728407532888291948196247912655117608196114276912514926412798345093807596294839019628882459921833761976046426616301997199536753071455116107053887773088178368203595822940638198238026395651308306995891862753303344890105821072693322878182693219506949018545132180873860738604521613829740466580686657942849848322167668776615585693036866113262069323203826166069561429478677356340527917922161521727880537206480223719336809619443864988002419570474763010459977053869948017488530166751701131296129555450296191573754814559606347501663463342718385345893698994702424878668399205624742381240268107753048820597515944097142894551236893882687213079166610989066119004293721189590707119880058182486439225771559016415706783918032664956300742905278506687731845469307581656206205788626518816758395741941531723541958964245602962541567036660872267794370934051055109229315420356308838301505889360492994085194567726617376154820789261367957724707214929729622650017847996821577903974493031472483867146694663198843282644500548425405624788863191494420512380100403578581773485697366949054292966051191701834951517565516701678751742445935081487212505719732283063003193327752188952901479182476353563810724416912438042247340781324293931969479239874357592006156642887155313149547728494590548685887924632491167522076299920676150871338069047362715617627712211072377865892441726014704383287584772420671083499029737811787310459898796948334435100545250710302718940315453464123761449143135032562236002745985634391607559052835161489565022940466467293566004865340896810296803459070868197828866568002183697469858405902070316418582041171153102166310920904273031467033203317427889889641604585670673416288995816459054649604852307583723062683393788194836531358818475923816165563351905798179208484911256333817966072690910043775002075942903809710229465546672729182411022142182266031116235419306817680137539835682315180289347288337878791542246568022124359521345704864932561171626713388662200921952430422483285280942743880582736270098994394023159898447416298662196858262176435702850146664064079582382062503691832033984549505308208001878040523859960856998188239127971934378300162147610396561986764209544510306538524360197842151521604209504146762237801024951810488198996414883160672002637686814214739162159289417257056658514621492892407143490125470175257098193071381794972573312697479263401829286438743741552315787040678049447449284088623471273502065252236582560273348662581041212925012154166347428488581415056104960005230091716700122760921640054145812734354450005199599145871984346953622090389008212371870817147664119454989440388522453388301316157805717588823336752696740292148963387953077577552364057484465645130720608165713360344017084618803571156171871299306920091000002417857589535727963514260101531819345827332947956573209462738285570494444774790906165073623343786489611334275252980049890290660244587405143032379341013253708904125843012943762922632617039708705567553204274387428279541338611428730622848388824738934853543310370342046914564861153859822688910404409951126905122559400463033037400664551277360252418946163459999345256130793118140507671829577264840486751863833560378291841985171995538734792122112174890494889973603429639221242065687955201477165257597494607681386723663866224038484776879463808525719726529470105811531479011855569227530794904639198631764671711482722414168152210252621110210871731120808116309545695319097687857524401836512804362210462588311174137278512743533323763898868021115968140307821806555369708966020706332163991493016336588044615601489860226974772326983481192275713895838481351637001742487712494804784772345067658596519054054716498966112771352502019463169315291079216600539666444526135451534175261602542717582240157087701953619929419067282207994271619491805474524335014949854669133801531636377554102643533443469931388048046049236766180632089877081776001437467873782584354967425080718977238758622691903728049330206406825136311507970485032527967449947674420198370671874507891208801124902503382906028393482893051482860590537034949909928897326877292863301915224439692521937560557597991839457746364317752432078027699858705514307906889703525401842863132687547135803592367693466493618228758121414481379977864201997366779738043578490654056936984681396291720862636524529115717299235897007186734495154500837595257873903890396927458073477229610760682500976762172597101101697894922665693493630249625634855381370097401081553340403269587123851910024602837155381271869604527809921938066740421389576230832321404293122931274220847497411222804467563105314953424915525007461624669186340471487649405443099666871148580899331097727666700837006288872285311780340827430903651307951943850590452885487768971060102362780324204693944023492446904193451575703936598853102467442301345555525907718686529742293720131692560132455217615628780777079774094024910437336190497716321662872777537428072753669289513386158327213942582737652313712694966158037419617697845194126230871344018871844009568452176901796629937902727917767299652177001881512051881718267681834533170793157842869575565542955434224175824617036118483777181298815032199822822790558613106349081793504364973099840861610341627106566470666668395130674021995463632998779558668062604522179972777311760082268457958575009494002554730606321534839749423564204505356498852821170320801199683838268868503784037852065626679615810194386129619970486681390801466459019926230374364000898971687656382947989890549845321399127988608465226428112978140805241285495342421161872994113477866601297695228684784788579790475061894375838707462207100477055650176768784196483063417224626841850123917310044720912959130376191164245630579887319241265961135569325015929225475603386698879469252533031191818178984093402604238495096980129107974771675704479165916202122167001302850655332806836690734703753591216245958046205510041611724292669788546464079111038509280256832856040530551952472351831894886268966225834494536597784341850353832546638831639208775038746765293482495530501301315664644324875104958660205096770761297697209698713884173230299357483361909629806065308933378019138801946500246741497200962082778055773484286276865391232049331881096832946590966346979908998894691122013751475999226448268449523656428126618329204490487606003259679705459530107439885553583053339726084601266840966068768801300781907842945664623176573031135558663862628874341993974165501655084505155608016728719578927739360932132576239800143255867306903677556105030329879585958500808440597693849024501738636331103773023659661055993702060586099513992624254718213161014041860747622228420174850832746710151803772411400709034664059516677453119461434180045074143925644860893228493677585815489551388321753131519733473994274920655604645938645909751304671742966285920203698250669094948667244076727163882492020162223731158568750358501080224234547748617185040747574637933102467412377323870534280748343811761651686202939890763272105204668765301757264212513099481863238930570392841633598510551145348257887782447894361301319331784657620500561713396293580154370623365657904986085827270793526555399215322716516375631324425755796438771829953928279910743916699455581403226478634169243764148950032885318519861991105053216008842859334408900819734679815123961210579759444449839870559663404229966779698124837538996025462013737695641049917340327305142819170177299969191263283793273158348043063672559019690713131612337967443628552936132479547625274817344231616517575291262098467543854417555269822561141348809079299902823093466126675343817981589631015728105577262347927266466908146662822779569570337340646467202372712706185633096822560403709269662357079780544296748429219781264914878827608652292884552542360146896325213008461882012521860582618793955111768760102178356087072127688940239498289382318006561541327599015667206259788989671519900730770942896510603399739192604490673322695342704524498053387293615087518877962480114803277683695218136440297268592596794622918493378762781541409092924446979680588576807482766966046167372618081772192345479178579955517796155361242600527881248311403744766775864458660439453401574897928680003457787814186533511756326066725907880791833872524160623377380871326609702772262793820137741494097437115857116245084483213983601045827611954640980189121059939697774500528990869043999337378477374249526125028598841614123695942947517410379611802025247425663546721033977379925958496399757736822510499544770153735908217778060730061283927532030884068589253996392276004614433501812547116227201671849397011503795944046331275208052605684956342010609666788172316990231151469196845805713227176916321963709892565632883836016223693661740946127081632781924935573074418844359011413246082483114734010484210944166789112026547480045350114847440512063404315222011643481895159615409139533220072600056724107342898239667236678802623519547393099013388466465627478617316827004461858898858864021518537333132709590817489578567989015633150303781240809778050586168772651294970269383722193572024990424749086286128442722148917792129827330590969506274834814952477242013824206687928560706436810861265749370588233005002498553789190504654263476816624519452966809204389162884138189076567571478086742346096233736012869614144704996197764523770550184204626500459451246817619482476213501826260009323675666986042061693762371723785686060792806449899354801289479137841647100074354730374604375431649749022543739147395741159267994634971629796991548154450912505392835979349640677483529143854291944802449160716687893749360959062095005511042083394647326352445162783535389071677551161847306425211740259222258514354853096677420020196330400271603774727363483142792633564753308924925641516739095807540152258296772776650844491868018232136827359098835304076049981349688177106612011299873826815024165405145812478272756825061328434270011038526565503005732480665744971820390945485708422921237483517486321060902438739047054202202483297039886870026432157858596298561354293913042033245279808217488589768904344832995797187310526916912124273803008258537408778149522811169737813167241266311136421662456414994957570741019579880690844145081382371423016833587108922460357174480809688791749608091401222767972213941857811382625746835002145251066436833726082126364226489289548778431299430925835076421782251235597479572093127868330220687571914756561401267921627778644945192198190083625274412310746886341878277337565900634174854251815326723505224071884471986017383606607516896416397610542413589577546373153388845589595644220255738813658660447861787759185800920024336881424591916232015149508045676626630375375101229059273326798502880651390619046609573356065805558955009406218681695865683491964207596536321411517149540922519054152944221894995676040894933554009374229204979256863351342797687372323254510062256433165374491573821294375214438581359238635145551821847896293705590680493585451745763997188999039276267510081042805681491964473954048241976849492966644862286412750928567410454811920404495147043727250260847439340267219278046722889495569559103008405629273566175360752191402334056190153327090754351501266203683011107658292614533919071487111260838268271646164170880012442731446039440189672652702411830551179177872543338057474879498945650625065632562041971531074384983846786656322012058112447627585816323592435604746848360100627208969968804002049494656428029477830109699543987331905563522393889333926289329156936982400105302819556065510470318327317040858359511180371361535952001910710849078891538786255311931134670023395068494974839475651614976558524591398436198955178901308074213679060957947038253463841213226772140428994006011638951057946182798674856581912186684819398215991720692737347568580150710257709390651211111674749398364954376581458117882005473424364574323413617184569236177732711235395738621346402435624107542976987357426842112667275843340342011621628111415648778994053306623094460439996637266889428738230413032701741094384225445745332944922296266896466416237470307193866699992336944707343747222793089137252441161699654682263775863626258463374171417722066824492751722696928675694309384888632139256791120015326547458001067469147159068235331322730348715191969403783049944488353538434277769701971490560588680789999482389985646149122453188727724659026932431988786336582011328850233149834608318355342942555292692069030847438485850629882587167975125418544190668481432169664798581402192996801887138362533304950554766570038090301300985518569484790877544321435026735043704155844063540651227304419812982500866198182036545329192023499484886346281592233028557811940001565136912597941635333081870930523524586231102564854818884700472358603235203261604758958922000175317009088711715314521314484120682383431182534105403562424292059650918913747299802068427398618379456818419381242276759655535318885266893258896001626101214114454021395590795786328847852430361329747739460903225829075490995302444174715056774093749691315533998223341997595053405094339355226895497292341312129609058212768451183062131696991592052557596337278794006641055127478066508921266449676376017349912502870319774092166378977321065267520771946211572773427963513232978113564634033403960097622016707170119894098063652482206471066953874493205143866070646059228099959290891890945166851952007397675167569949173466654991057998407410695077247133332904147117215326939406873603928832576175449351902605325611083110677750116805670954572667011713770628614005954658363406328732932900741754952876353585128902261866586291179182131282031535343453335024132573967564294821558655965748658826041541548298048960278749448585305068453541891275291960429330413486248574441045421055835406346958217903207995584731373502234727136584551815617342293208236349373916367998101966252137344503814532791271621444049899162997306845381878648522624918615367190972206825588387228684729047668532639149841699660930835412893647814458872614111558917394525663028204175747728472944097900414116796010903499452100780261070708940691064200927142755431555298916862865313639924452487953572985319957678507975518758374000313029967694679675258356774392437603534534193822772286313420096750614668612053518960678620832769459493623908970564755692987806713318864434388646324541141660480962453964496838197505168665151177378365389529130201562239447923335924570174579058296931610909812064304395255320262161253124515212608070033047646919790866587364551291257941794380210689029487964679547743954933911086488638048536898018570166738303056177894326393463583112503212485206289692192403543637518667633183163764421363173776474740238847836989905814009211434695293495032845384200194469979175882587466665966225272049421091318779481957004976612038517108324975830355075179938379765165836702803969162233835387063402174519320491882577589606225834264062444452792002038337532131484347840397341541889096632962987793148969486708039080730559760976905938242722932631385919382124942991539267279637391247150327394211784575470418692485335683638733746597849482991758802431534629484718586248309174974973419164979569829690605000253315344373732377844606507183049455438405994517826723287900706144613336839054365058943865997317757010807652363995405659221890984309174319219625441023093750853217777991045641137778404408474918534690979551060493157117369921558740791731376220414768546613145171169861145805336098705364211501137806377797845086875741715738446435616327880090938058633200563099167346326262520290239677097189108972685753341174784513739361946860883075777606425597376764367844006676345078510616273630298787180844821110709346281835624786550646968323422592010656795011354568002087161547950623989770561568758905220792054609554352782874808669786824493626549849011019920565794434636111596745480272307567588481605775320477792822663772434633559653918655938015724808652638076860052458695118563907974078310719637185372276750860005759899269208254431553511362115794038256953013405961192852997815648984077045389137502138747224500726702426927692206083813132410249068221561390038179076795563085822506263585338501687054288555436387993867231366195576978942374915661532666057920661988706772783107750465736504586153512099019509721591900185765811538387804884035987567724129430219064338565651012891636694945749971650090757732687715209595815178972888857105743141099958705266380086151272953120315758016934864391544227787262485286218070256968942841412576453934179620603034332684436325890114716953752756555739779296010654835468056932303787721483017453123076324070429165375043497977618671634365521439361041805029422688706817762244964729760816186748673896399563334612492113027023172540464453513362822571989184798062365768272516820679748124747753493734873865163541513939247190992837746151318099430935901495151911558929140612565283100066657749445166531178960760390818300694834413600936214372539232571490021586820882917483328609538298136806289363709664111383950036201830723802162148370529000837366076751115164642017328187487114102880892510997383351195003210963912513340852201299835397740152272081766452613356454668357975861098505191337652530463005584818064205501916646728271863236124642770110012158407967665360115314668029823277854383148819558116827816336252465590033770909197378622048295827239573529701343546078343582111006086155349387406725230985964174708873903088620221919816621842032437398112771621953193334996785225590042702895378822808207065224251065871065810456588104773358424774225442828970876737653626556462788589461131934617411398489079400516266940657647031329407875586755534840105953092971426449027151456401594588379128677064694785122748444321658547673147583041898165849180213221445464002648891113904512695557134296724941887174993489334388291114943503689698088332907178422752362186136222571874982734133775579410201432033235574351715335161140143517975864969598403249014108882908681697866862541709717774910466521390495203902657416177284100241606013434365299653131330856492915367011724414906832371664079928347389838509124216039148096040724105680498288970196086641411472914238378576802978400885667342293984796827006703867183766438284895412166281989911067140217368521487757478631469734378539185771504146773054116845700292790009034678451123512458338131673511867720566021811736256473088123539587441152502617567639610597053197666418305412892703859944388196040474140140472658874093384158668764341173104978078808806498022537546288238128486850377909346363159616472333235777929849752003830980263167270587863358756584167905800373335453751862558485158461967691341729551261383487535586993101021130252522433713300783508272130740004693939597683709992661057473025004887577726310693442152735666473075704410262402217133630082354352699775170202876943158616512002421864743659574583062335165022154546200479340929557832374817667696002057657239584095569293515898210448298166850229243640573431115449257048154672634255399175339685462078748185066065471202316725418823869519911380101506020828316321371735477516479497351850111803812883743418822569548786080373485641371101963317823350158027392443753248350333670414800489936816728873905846450076132509940151088499851935393437617914645189651988931534315223747992774576120836137569429176879808596845625578542707055287668601072402584713537463804116791894488499361757957094465478446557241820801877553586341100430149178085956113691706490047479290826035018737745233844784843356684068315836556039253607443440159125307762361935271236358099650082274569861197623948559540878888034924667173866469712941488909794000188855834643771448154337321044465235801913441543460411768119120513304839251467069732027318229085674511535989865667560535405402252151277582808073688618577120383346100731028658936931525162516109594970763032784411957556703131640189346351363203860456183356361474336808098254107764832746481060250112830256062269678824044844066300815185347209675892796190732956643341326086421563823765601683700029719699088441182388960951169245851547598698700987962985759060958899799075186284433691135881064925551600632220068903058632914048910577241149503198560240687820659542227096089349431461168540594704655844452737178019957051092231721174693804473049691557056205156366555914015468208438686699507860024224850591055252793555484062286299916828948659504826905908191654816937038361228699183085279801970838243485069407742794815715003517051747296899085555905052238082892174993239351704166781028875074907815659785374756645602788027244091028133520539725329443498031118546349060953470377408394234545857118073406949027119954569707125280372472533917913430960887981825345618794448654113696755353565266850205310758094456056482444361274277139915463859311241439509297253000829603662520986903621310179714034720775827567228296281360029429357156281104765162200086031827025603315117735017032634498948742563845141581376493398181533335836244101421667694308321372467047824316902532956234947175315940437778797430556319872325131050414648910757956636435044623353920559320267899251844922215891181304140204820743533928228771192558002352781687611229366920053056774439832001660443041456586672092937717998287021576138149779564424389199569244628907336597733454792597727126433666652746343644887569970221576919478284282810615989677633752310890821176530060618930136732450689710872373135682224137166251411352702318270241941367729130120164728736877119961022012262294188323629389835378321807762744720834834761924617184503659147306251437449616482318037627678881332284098064227243954250203216229257072740034719223689088000526766272030359533958732248204729858740749463688634364508025366742827983314284743032193941453950974301625100002337411180186101174371389018006227167785926889178899581715445872453427033954460443294034554303085559474226631942158610274627015123935107100384163973452050050604266883997373213474076367693718491022619802332995963334815078428892833423286238325899256289259293731802668217560068678779032099908793998223967445032753555527295797994529711165220257024171858624647201803801811770769923832468609053112893194462562835531040088492261716377090666317215776662247631700147117814932140953806718556783786684846749860655682981590906884176845980253379902243680112080150576486411358702807967319306963362970050654691285316375732095792774758769560526134890878953567777162818816737905593830460871258352925809187132515903097658374288732468295182502979775342626926563429651587671725814881402791424155997023942149119114857899311028303504223406666966572006445097104221118060722995419687267255905162380902549261126984981348705930332755778838693414063526613980916026702621045137400025806185367426799334430727286705776747110860659487353075253040446622512022693560593151850521501008944055897418589654391690008223076467455170703383449050042548542312131332303315935181647424729642793858387948059423474202869255620533167477122845758442081157785441960495239632820559372038860686282148911452098050938888294932488545194416530608573757477307755251229989822182438094013464499834458067711111775080176162204321083599730651278217069436315588980457578489464858057638315522526978777852406628340065030758057398600147070457276174518514524602379814255153622820432883385339521618324227147225643940253466516041362877247724355013755466228149358905830835921238126686622635382836273864340366320501550501281991644175644099960298840863363356965832352773430832574198516181677014175955896094091541004150460954746773394600153719054245710464901162487857204485404417729502282937374371849534711690606086501538231168538782088726606630730509550972466575297805545547074803624134995256079946334424533922726553781431671544109003605251440106472389866858619374381639768749506972854377323379325177905960652509039078483062290687641805611947677094382003085958180048453888096694881495787684260272369423889042676935425300743953835872114795502697733825134467732996335490569108870821978696139638370974807976050142217435095201683780115068662775317965097430780179987943199391417201154131162680885532917226326329070705013675749574825488711789460396007378225568007472073774901587364970891150531122189723720203206103319037525395256375207528943387288277307917691448644493276725720763612372017153864904268730198635225155341084547767718538136663244542439955074936637130132890993824895159878840332268597752192586636475019553550152486992129655189502140793990142430555588727338745092534493022731486535105043287217155879680369760256720411786397845458446191475196641562822577555234376355717979497223869563043687477865572140107206427730291709469273097830272673858632273492256488307280531920236993839974498359081655371537679002896738041242553010412256548427877968056285131029473183471838892118808525954856184513642959022490312403965140290172392198515330087761459681434337985837496110984102725239663923024487363927047069716447250527910430779118919696628403778246695042932041650805680351083200684758065425527993788070449715885091007922064321374550967678690340714137737046988828797979641265027023863833793284676523401282094171680304821425111023311439345517687690035877934098860720489044484821459859662949532103861955534216318268557641855909066498848644599927344896682628969232870458593594685885149623105556066087778758992252740250048044112059622466083081058923775110185063649609050204887207298354107705678440325369294955462680805337362376559454568699786193217809991070503264808723857825673593046187037566756272551836514308052655519356355341868699584236456494486108725045454972390730184781128875938118139657138759221136577028799437986167310974841532842209711144484103210516262560518038166444664227522074289709839047801957664745488513315979272573429066557591957583832451453398378013349551367660651910130580379857745576313927316354779516973177644271693803990226251259540436944514907157344570429580570130933595397914903664336991533841499852574161630885688465683259459565435836995989148741240615915725347701035937387091175442312848141964884276080884095797763161767787135717451305507015529027323491532696706273677460700100022008453512603995777456035216660036126490980502743801110730200753686288563878242138973912332159948091009688274004486357277463671648142743231443185841635915948198293002804070006082833320936595191826358518294298084091443253295187602282746231498128038697550782039755625850992726104543249252759461759628880818481021135867184685759646169107446512171371750596975958223187024157587124010300775319054651156024090795759638465686141775077905770078759457280282403179165502059221611436974224129813408397871195036794634330203736766143439362354538606792092475132900470558147028409963821599006510258771873553744456262556203498746892243312217405542611927185774864769992414055706811065570920939666261476007447377889288320525031632869429492637392788922949402973492693745355320231466099380828380411838494342679198614125360829692590198558276032118126343426549336090550588244765079189171955774496642167073278663670877255045564619385295743801793430972416419980778082295479977748478806950493838833793107039622115505571791919062186370597629450148884775849553758462162139730929871429540334322307219453752262625380239885917519838622476331640601622717020780660303359319648863156259380996619768403930890977031856156474947914909264333127996728750108370643251754616694829244538130502238776817599106121710188959975564783355390641375552516491700169630778088394666757278343979906026053370209868160958839739668904937121549255177105418325421825718469701470377606315195025067447031217207849695847168397548794817161511804779395296102085692045824814536726732671165543611760461100784210626842430805860789964603699430457705787606936998671935339878100349494029875228056652609832947450425940726181341826304273195706680770849561804740804083214987264705484033796623128739808442926889828723540346609503459447193437729580558299588158824896735732198909208235395087107122460168236002438812881754415336299385942692233140755287023370484314762797917433596610866026635404576878101970456673926434321821863854219931170012371469571617883993717726182013994501018770762592227191476751859253615065111957814945075226671157761113273096696100095044649016358608782356155289923974792146427484194728431855065366981298377652632953625778552656433898145030375053235874708482976650202522751483175632340102582329876501956808288046582433231005825430787269893503924709427435921128573371341884444592740014392016374878012905685464398958027742135501588255607070845427495018739423014527583777327564143587582842491642452897509902017777796438810567392232999779996974887992712996329298744588120863545467725208208401040876223197964185016158490316027638853717712411514621385450633693166421614636778876026777404858619654970604864777485554360287976859934216297423639398036138173562325898643080584394991136132389814159056312989607836463647513451923326317641067194067990880091079397947584311696778045012747457928059165075383263325353459607455197479780000595715587510883205477570285944759340224986206301312358625448516513523829597231277438917620286008841802772264876313459442361054843254873184848709425733168662182931213491216706422322481881714663726139783728036716804611650353597640036204607527493611810204153784005131610656072473435879982942612207423513739651315757816796380996425001567219138670862231740850806539551718525262585853172534611369461410366174326909938215660122106052942434899460153942765556085171769825830148624561518794026397548078704147158614813303580091530321589576567863028313466036030472557041912589890453754822380435133642639526990826516793250353051648803067908227156778977871767844429351704027513860423220225666876230309916571408198834557454530226967515070173334988427283349954065547231613186709963907694005400109285205919310280256317454967761716369952420662929310383048430375654565945730876706494211933544182874514081949237472749204861409992357999809176819016973191769504329480866994582110207323413014851347508385333141412318162137190124308736743792961851820986257682429783182189340883718039189877757876254404874204138783715261619371102392754315637781412778383150355228911858518299617538873282538687215606449706718354142770897832936007107238744427643963515937583856387332818337584020551903362971173678803203688486623878658647397043776318262223813100029447132638175614652644649590199539240496342487939092719573190629937849793692871620870418640488432875315587942123952421836619357052065577167838782473777566214260083756075006400295440093882952019573807076773430340278967308264799458060887251884094841445728560004905117517192137992995495307799760921951530614778797808588717515441738570113320770596996570627996594721577761653009101277779644603634792730376377223660736696351619572843338840966462193460379573243591674130796012465976195646808736385811969158476407508776210961212247677737825117033061933543118806300661626261973924282414524710477883238265935650017486683892570754296011237386061929641038602692915189759335520543392587228523315633104286807770092212932329559529588117402529328830964971592938303621880302942836776175877824376900103790704558119936482783591528932453709490734206049620892342488209604319105536478259097059614983529967399523188179518883444907109380177144661182017654233630271566029787050756830753871892892224893638788470103551462084088792090919634617343115871021798776402182758598615834782291113056463220689947286192270749776104292968407782004049184023115013554377071954227845059653330263244908485765532860303884290445098874089890490375239341900602089811611427043379799369639156901702053729888073315289238178361050516326672125268333747723660523825181139450917396721805496892670310550917720805983072565974336426828315100924997860322366167873621325622063936571218254890986516017758348201579872631630809005598163555664678964098028990501869619058843965698357027701348751963083376984379630436577632209301501395176842508878788415007843183311564786016953189427612834060514781589210410446822887429299270269267999402647161559863866677256291281329907285243184121252056220091827746792834445352628015652246854356346984908165905936209013476645083944590883877991360487432006168706747759498859400530502109769119267434247481559903573916608065749033755558910354787151260119683451144511799519009255438771088466614820952981748527684578933283123834835390801770066731669788515159816777042491657135656691310359216054910736391352908082859129721255640552693649271607357970838975786979580001231326097207318564511923327725219006603263119248942902667736872376997377779794501260428768135150600845752898237845954123737157436616324938346196702688811846016607486589729926940285223400628315755233357413892365617946239436016724077237489218286944689236001698427063955103588207342108908798829047936939495919844245363968365992062314363178285756028000040424409023558433401716888889880126694247719417842718241679630044813936494471720502938767726168420113111592418885689346716694317645727900191060046663733883836434125905546413224309474637337988887399453627660805701921767115311790720097056060324512339625328081795243646330331611011776168059274980656304687696236001396658026307206760059385380996861701002373105526474492562356865971809371991246659309191074006263245955047980272453286112453179033436038540755743265660497189537471846551781305896457314786455048229435479080083168185394668366145071339809346833728978020368804966273814470902521392445029757531298036539168452763099724181773535743025239320290614976108466540913550425428825581449425412180882255339486365932780699639244716350192935427851590232258617039797941214995512905771044431426843202005218723704915864231653009961152267898144005040127423941872044496263480566672758165584237467942258361787800321127361629976435451435389834461460054664848001421375162290714774090485563965920945546739171854953818011886825022328483045028503286224477623340167189169255647478841981263727498015258674366806450671111506085437436329627438864841582695322006086675278520769583764647146926767730453083554838250935776185320995964621228928844654655514871121626321840479949428882290484213729041662027754905319817555412772619462835928182115022350481232385054688092151998215086852045389819491524992295174618402006979768099402488306664221524343561750165262819760218957636454640564119442553651856440707707633455630868186385508552455211169071604934237675871441164045211426361355250584126553383605209071451685503865062336960220445896535691779095542064940563864985535964351806771671197276538601303950038561665373102811796203818117471172678331233198649971775187024945870583145125147418008694282903632584669326058311649195706865327758317142278760025463670450730300742703598587205670553641786521294940367033798167306601928799892962081537694462442762171863843312908539463553905893160066680317953187262796137287454646742680921411574084957576706591082494907809882593083212857859782454892589507711653243940311189698389746997553968457381640785668038871128102473248524815710144492973728506603200553323596158156673958645257419051229995982680888174302774829688603230315251523472102223877446777762261267039136109669467612871589496235794752115405346034789126067295178771563213707762043457430999370827807891732364723058145646115402505125539769383046375461097837709253299132918897956823295706197872676921293839241760998830974886819988816379724457203183297303602326475642387590934196277701353357337046344465246087364742311989327217680010556198884544572563461765958423716673067279664055719562837028055208469114853356168254733738313355187369394363220378083727816527360498357265794846123701679652328237607349788932875965115925464269694297879294437792785859021444393755569024937965508601502710442246102504886575232415674842204494535198446420493865884238454724724548246018668611457725070364360375801060892755578258123825625681357682165305986559161904617310304116366502228968190118531467129780915122762306795503769642486952888333324729796522083905132062236535115643239732320232609820267229596351599034403549872975859556380814168950102676531513656057907209715116556839396676754244395895514005863450252457864052336578467081994953474983572195205566795436696110906400837139837455347667480647700843427801281065689836559639741807496536229292903405687389379782346601332002442572831894088521258125666085135750296135239743181636270650897303786255797081443937152233975625684196548740725721024732822627806680139603976256715273644200960996598781602894075230620288719942156552192722805829995004872270875792353568901528160378227028274237343363641835669799203139443451843422940648756744931290935623456615707757621976335305924417381509335531779584443822110020701327449889616362111940152671406344780394135083154039575953722042217806260712645686201214889263727464765911365108751382766751021448195502772391985803482901940881034504502481192687602323635857832582114201329691101850831224957525142487386200621993943348404458187316235312197701785751426666919351888960069889048303740787497334355183695570360969785556599461454150293039463632917950103439252317170451317649760438973736952298017796343757346618504211154151056234374067870232721903369557411286227645939863638710160763460244277413904022972759498727544617798712816736942706632540852562018298685930602323118792529939453962483169879212145287589967694906226210184140935762049293288222816678014787944021105176421429696621346507942685365146201797419043551136204351289016115245494540683836013624789276360228036721873107650242602189010385309448459992727699192062998722638834362198254822094107456631074058968965122308810781217588789594658845951786784379820203080998652885905372355953378155766980420413662695886479185785589301949811542018663343364319959308328074374674174401059457581052155869210987747242211568188982874983079804603678194842931766581422123948049533786484267474481910506130043272126758772510871726955035389701283222387988608056286128880515748349778337828220541141849939670134805085170685236820121917946729898527782294737185274655929857668593159860379927314479512033209009359365380761286142157235564262331008374119762979186755485861076810793558500712085577200824819365891432739607718928456622276487425678219118662423787598690505178544974504031596813984252503114140330096825918788659766700362490820168038607876250375024339818960426991168960862073816569694653853329555478610766115684895077118409934007907014204696583429020040356149617721347179592431982038683181354853700232041360030427151217666595450588011995961508871464283433733936186920175728785648271559039709690177899839256852311370113142857259750869554316163442192505797646090036459615177425566998131593081656092428945538309414716039124271872858540816318755867085334255649463748596915829899362182408491034446544867156285924551692660371386590921290287017428677535340908495431484039868893610498815110982446279774156735328638667222346789172205452563223933068167266514511420730226704579095615763042912294537118931124625300878134434366603374504863055731472695490564156389294292653537577731811954934676741752243983232279700220432538408925009847138669252157629079163819903564421820299613580427951605485661548558014405733860515253362753878841107250696546112115617118377276636222535709150356367972117456478046231022501232798692135796090841312704287471735778955731946213180685542420774713536992694670551162696253654353239625684052451309753850211816288297780594915994356291179476418120107397452431473941276840929283543791845326856801221292482537493392025382080516884015879050387821212930338695162981809789711560266938458371531871765788802571018259011049786863494221686541887016114005179745976930093288063901944714852309950894993243226847719402909778517471930450447453362850271117026062629606358537259878987074427557554972207723792628723853258651916067374985971172335660133630762023471050072777414406494285367805626569637370311950642279819506197809464562935694581578498772739518745003939550151393449125381386830220904061335540624751642391036175017014631098047608777021052730159605324551123896552439876466546843204245427519210517932675399081897290717344229908398082812430586584959716588246930613152276883070999570785561638990467923763512192801733409263760436658230674701478481343560866909544713153563094334122271061056158993359425183767698944161214719400999173825723239103075449914304058120359336045596133772424909450839649970822863772256757475406214137621598693538512650466923640930050016158786916232721469758021278129969815896984101440076249452543324550650880318082358699644299854943573958272732732360359571294966909928415217657030125342554397495894232719684094283393961667108440030882696242147671814664261223081614837820094445689512704133782290304559531408690680369302657184009204304620798702356361411899860940833299937377941649999186422058258139214425054085636942447663911793812168629610466637579300175861587525664007151454722176005665856869301264255338687229629320020328320357717733616325403044181556230084094217292650041763711719593080427416060665440845948045409896212148680270590747805491185650095970545696911890115012425247386646889401994303958865536479018280548790455467137219656192124632726108218081612125583989453909867214235699583503784162106547146886088630826915957573531085905307175594091011969505531324429053636178026097033781807601954893800275562699782753251122367117128213249460085018102623051558532014131120869322290312932351480476374378638019756200300541850600297601841520418439921275126103976745120346713337871809945343419902847829211384671145380278473778453960051923460275069660818091670420066186569025105466447437399308593064364344426858554023749234808855740699004960394346627416693802506914036811054087643435013589644703061038782037098534655929862065177323006052147962241283313496393230003689314412351737145753051308206849324200118193726226554408300593382262599222908375834943703547074264207374008991600179001655422719273615289147039169430292992083100730980783315764116987446017091918197179909645041838612176892835867524598402247034585897607090715854102155295558557124314656235172959853121912864091533432307335987269247541170982534309897815443164600192492974312487920925608323774378922605950792659502001725895713484019768256221194052702274119416797180663227061741775507200992037355824041787264007447807934701159956010139678968236450555272543617726387678248940173613073564786443374114092638720010691450346693435806671467068038831629605137962468970948999366503847300262710076763472727518290743380062942290992652425073584939085272711611790659543303179926735339537308451097159747584407477177762177113332323518043804986332976745342116833979033769021481491753403884144839277243961942388557260751928558659285103822678850339650773321031889714976242193098241358269417681227759073428455240782088775391980439341423741408195439557594488837667616123356594302246236807451570472074465600056584073724887816294716224119101799297699063388639339626492307709536626258123262633063454526934729276096984307706539644270232869855001356361253453772567966532757886596864866565372119797084835271082001962111343476290661849628410428978844847924024368588829834034262308555571963239938918136333396661694018517569684765211864972650107451565546807143910916873963564986492868328020722122579214905723530005041580002695272624901625256559468659764913179911973264719298985799498382054952228852851138812704514604562810813534371478262645771489901162137867411000197960542532653020280951730420126025047332336836844839795328083357325156538950374826849430530965638271555091039184501802034945160359257764252343715776637314355248456051178042297855991267990138264800259171304363004924876078980073950097639924661537911410479524903552652578632288820699529493202807804576498441260694955615864760548990667335206719462545013745793236005263947392472535683972544176421098497824067673210923709968387512197366908367837673679539533728752206095381428303648767333146707346815964330112502826215601171284914432171578643421953750790522737088724284782469941785135063205191445714378204237818200348943852118808281030923628961256124764170863077403396726541984531209176251776920641285962171662452338341992327516273358703843116008401265898890581613411139392158718538904038338720969760813471048963689611506020526975457125722970075222808855774678878024325990537472004166467461423486695244981241749645453413634518841150567281286633731232230696014127638913309438886772711750453052192128527479607481587580271069109395691859257414024286536222832188537185348290995257849656189258229125708643233620414497937575171225876411449030229776092453815320409976524227241983038647416001930041829572931692124561107386936659731836531243862138163060592663565525320078961731215959738670542233085395723137711692120723193485807754476281622417974913099231968896145654675064834034564338022249714078938402794597980545863996956219839705003446752573715296660341130178381405472361080374531152073665634301644627432072732110791979444994091699361358716753064427679430004837290966510158052243051014000414978509987816637606570798283678199088260867987149273435583503133620042135627686166514407902090802573315761896971794779383471008870761765546778993714200091510267012311363301260136150374161959556972661569674074452359711717953497326970581369850721816039725282122731415446249714266998989579412965847317982363233594074536659990249413340539921323086788619436853949309865361645453055035252851341569851621119461583054332017364686724997449568010977097556358971961692481152346297412758555673920018872796998928972247287774350129991270921292461444320325488056188898025382326520267165908794946348998392319438348979326925189063656771408209241787947942688524704634361371691944997154521100242319351611355398139580656874335853221060845159894802456480684608176154475357918665623146443007021956135855185302754309483726602097399427744146723062775731230488319794038615548686776215107889956196187922378944459353193221726741289283846945524648718610614590484330953031721735573339963061314845365701649790716559953500564812348732385965304235357494937044333826985144368176131459634979787572048462110181223115937569501170264200883767017044107858543662618705208114879902999492962771759207190069380058119234099992447072197181832929899635414904606458974588862961696077882279465557701672021849451359282371609174710300816693907442572421522533797615558836805495922361962877904116243029403929273925069887036728381037341311818080482075996606374908486042959038860775777787303556562187410073590091298393599037872946197993594319404539332920187558310488758746022389039527797784983552580114050276190396596918185349531255832471342565697032171387568851847403109439452893206188910456171425504964641812956037094844127656674552382612062768780494302545016769975866328195914208226986501247415654466154862702721278832641054952717158336352038427252197695672847084874526271343999080553037093817099330480080036874473072756365506707769900389373788955655004178252479451383122612866805182682349611565472485196541310165794368687309554562160572889038391606366409975439641409105115443276667945141858074373127116544308825191595289994619466245022205235571908044344935108043630082865410631032900687415807639668517234199219257570532395258250236562861773458572843363354506433697610314619148202090082989327263166424338564356191052205075832233992645378924747380615353698322342164811188729362301612193293369174438635552091031000314081193852421139157660171268713501308221365032542077224256312918554107546284296248583532325221678136442206734651430603606727946246879512978273729947748725873860056303531750238548043150542367929948823188319608105849902876338531628983483010394586124178106764841626718629773781520465489059377013980982842819311271822964634509952490927307956143574008059233389265814704230464199471225010673699303643386654632883110143391086496400355057506941505169638637088213830628401459575880256131879471607691557642720894255320231047049988640762284736249592202312291807183219354140605345286399670752202321288030160620601164743084810482786430857283301689949907884682424245916201572248050560211651148737837353995899159232032734951532716230936118775018215517906588667339456747826507957562041696170966663002797224588118211518856210904840856668327369028208809066833411683565792123630267939493602455404288350059654217843546998679820994018323358146689417969583793756060622156120113822736829477499739328093256552639793643635858781535167095111480378948612343829195887183677885396218175493089342963349738211969022719078685438816667449331262262807082942101930072607169756140281968393425815780384165893930726810142793600244116485024013252995132633699365407062192172262624646662721150150727623630416823288721779945564226678894479371099334074103066866885995667225847901019202659057231018480193901981178919883065479396775710884753078703976425948981307380241024447529346218603387190087256110268909729827576144397104745579632854231995238266052347582835553040321125463239691054391584309224049495095743456401102580173083594644911101884504623546399475105627115632481828518096738351884128374458187147220804852442072931152436883223544760624563270951044733778693648028981821553412451459090990733660761363886600380090754689681441651629240719155308677349403177035033580423059485816964153856562096038250225608936218794332959335576203042239649595889930520152013400794488107995845069950202811055801304564608232673382642683181160908757809403386239350428766413562678366583709193617601363309004845415188604954840515391600461669105550539207990175896293512987402370198657299268544335435681629699658405471955817796386012650706267756838986719466328277160014408777936494041642436055638090846923678447953906319021946991094431582266034399817560264402724960420586829372992407088098608871428878064259790113589372035082385574468976101330841245706683900165658270705047732619605206831410195143491173229776360300461444330776499630440569493002781324636040159600932760277271258082033152893333886921961891554523197008385767234336912578504998681008261460019793060374342590970141276286250132023908477432444758395946993391771186572850099491789873626231008824797393517018308456716310388143076735063187387573422838550551749512421308838696823348095502265866052253153014363688188317072014204150292725998709592178836675419104213417317430396788069764366459649164798471180606088948818688953414458150538499886443812117977211142228783498472437994538140688973647924418822213366672847007805040417342360952806782760334526839798334049221777320309871626585259273317631966043664644686429796687348918099126088023204548854364968110849645855956253374537501161555059501930433255974311530843941283837543202474951011985617718235947746179382456827029720194974020682886623445402596017161870854488793418085180458611847290064179426874455544831945574167320498320494161673420580138495348356244706899797130963328915772101551198961005021946017357342602360868022966967111671510802052456868810727645208474158972443986698117804628352536784141928822515083410036562794790147630763779958646065834900109812322824268042418448512885773060295883313960274195021565205858573228933910856451799143575577100555715632479910421021474729981563192927182559613496546104138369470436498316533229669445772326903531684962392148362142398907710146383602409787991359067513508384365493682216238876859876209159421994452667456680444366971026640220827883691873600238415687637720693258716730239740937979880136913900116067605062191829338073342319867317139453949935299565351216341758131155375735722409047082963803334599371413529950009288138765867585180125291735261818040381128459044172569686044635997175903695632654496155500023301802647983265024606801670587294467504419327744180141862291609646053920653198162049189443025567579946123313318849980902278769889571538455432566502809325402803561105377255881458866970336288369868844150566150463171231557548532795131015488732422958955978579277974146009961992113551267147024199440373669542060547774724952404878335300383832890335341546126626282725151542400502452433066827850516659498908703035615794446402486324175006796508538306958413493343645962168271386329035935606691167335728581011318634040580689846064026525508415028792331818157638555306040385153798532443740183686487449158435437845239135052312959892655029405612572273344587168727391780411838255822071473094908068233099948218079249348525336410989517558023374954077684665712913937101280901382562071633130627619601077901021996160025456208019415230576760576425500690246379704303228653393666230988084299661846739510178371940000701934001186469967296676724057409887432482104897898492920803581895857253091054897193091314056943095152435643082820878735351756396763259706230285370216812970079471477933536652892759388318755554836364683874370990335468678344298125331392453354012955648160448173716420305553977832377467894795397870171979845198118285687752435718550256718627752246271881594384130588020458459443022577758421036157070005528602713512552907002777403716122482617087798637450543300729475979411620756239657189912786005581438436770131963812705393903669475406600634669571189432520733332325999162917670947159747481512118493742281193489597769555534864504004096602352147515059560688696175101545248790662067104699177774030724360940087358313781001593181631679113688030477307298520855166795174330365419704239065025272078005719767127339946438572740582877104383915287451846206130144862263768693208515879970910821585090407956648296209727357978578482563620420985845413998527751695553251660233954250646478150563212087247459248480656130503982527007014642975085188245019889646867115687462145249232225610200978323950953846403358663604238362367314802368720221590076828759067297167651010094818596764994476857067676105630921033523200676054655670272036392402344892408447834395196222455682665207449524155107255742519528936632609828496509679936743442489263217598051734803801782047366019372207635707614505467529387200186349202497664995101393703179883250221358292026161121647038114939400908181900448391824610523336612000167054607180081176736497279015558915828076752658373036310076893806074105546583469199463630416289172288640165842472904239261485477421992313681515397822753308191433510822460845000253488149379989155392934026906474718348715058292383867157182042268505338886504581975742294095679758583004341912915213554827201840476516452149471664916678220166234231119390790500108636618402752847629364098842032826480979547591826338094828089005283495134565713318854346967570626000209900407852555783604964377995037693046131449298507553663703236004565040647219185557960869076551554900835517507599503846111923024144230465585526992346540137719561734835233081739634717204697587389265344959748360113707285427862168778818843483118586337268329919022022240881694770016686955594458185356952121271442768373807202791031125178907308400548498283079406386648292805373840634087096161564457019224961667751505358093790199785831484058843905476170135408260216883256213755401101161830644760776092516611865085989725817542422256517838106841735928229010851679681856821223982522311553665902598922086717653373258199656310710689886108909087063237698244835751099304538056915788979493976986192715222970111107079495406741934104080028850790085753629110990324192714855108924659183148176018878560748043390162007038983330114255063990875392389895741687593805390050299250023708990834792164961358064757109357784309826541609401339913229359806486403660642660357487063134985309473452749570439248189458080782593928506256885584668232817963740316818923829883767651667352386586579799302562468102832286992231072603004933781802456108109234131786426536219170901461462354425836215273267728145378404665715797589758005362795604395349537734469110609178251725011021226210039470303047599276153874789842361214098182967707918691037028595666464457961540568345886111248534035388304509933401849258642344610928666463486129768017738892464219355856357324983402583607451989864916529206130571998951560172110158321274094096555039417595369862234028672086415359710363427544854581863636638142560685707923870445817003549240817574171285836279742180222873339526040874439157816304243543702325077774821856269185377610143141633542070736431092095113118307616969136672570935141852001828175365225404832025217259265665591987164242283007553635764820937095939075902809819070586928541854669356823913951840746102044736601683529602305288922497042409565064367294616275626916808898652714881354099646387520421812534384664266567053353172767554763529290138963480960434222429365374443617537232660452480527942381261092618125518516092766635565721984740551618103802919319300212561533030896824944181347592094868591403974768432952082153223061999883038169890809170315300399421839958200620523217086640650125050843041820812904832290229872913492335415126970402575301389224908893673499040113275142328504704734827637297864727993375965865301727853729284838408429474099567773306604520934242235602601734092983728025368006481457182862653511912663379932436039086058500658025744269888793037325725313225004381554103117754204360122561830822491127588729074657073281905823292228740595625730427032718173592453137739795610555971039752890234545956008408436873320479108589646756375394525824955284394590704098146940006101624469582208369962156044032095140675599150050167615269795888335085858007523005469851044412538144100981102630615297466669195248403987811110386352389235165520366982271898411260718403736806636293930198812350612534749995225031293540538506692256461873511286907564130665943850200562228695360695730770819064450016655332517196707186626848701169348330197846158312265387978996187329461101640118657256936646191353668475825136272246556381136320870613167101480239813887943040182382335512051591320348609786292851512016438209883773847032500840035401186573684325631830625764136397939601777122305959003255743775288274260941854840030258810151817226048635850061603814477596544501052857539379215453327128021836844990741539338006848681505366141850286183394894710857200762724323620125209360408389800734646305059877207451017057803744585316856282513190848756620731619501594296032174157740986860366739675461931950076101946563381567788041435759635789693157714488543041679708899252574822363057244220804756525071795728307805194347837374820739372513662965324675306123927254252644081164865749487651368363753273253035114872371778448917797596900691428784000316806373640768745808976436238972755186389889945599066001413072602640511520619366531170441564742911178327528997378887187222674206616750863736926124863685328522085054107642437250729149174513955172346603740422237860934702827236853923863061822378736448915733131888315018858935225940993035369261779129479291634608422273574285042601261340132151443357611392725613323030888080469373180416584058784268490068335248440032662080836792482333919636196630269327066735651314982363246424259092500520508568035284764100060952581374613865807298433389466963124378469299560877661912311690341452452409324598418634719057892658979939630130450216341149550538478405564060756991712084604121667849559714563460993577337401257507006664025526505744397946707150018593754407920124577258222227078511333383772435496284044947695818327150135286905444162243056895428485120159439679093968377190625433217799233349178506242772301104483108289966467387015497246164993945224233084107596939390553866507577882078572744936471194739476896485734057188757002264665115093990174246748989973404727160080524132758615691751825051118023192631665363322553009348765068596554180353453040038747877609518951875579362077527279278307569228766638690252814297085641069221393116154729222330922694177995044487859262312268057872173010591266498122392547966547321820066033116595201804944962268946342416936065922568405360213126304267741067535232257373515834368390383351189051681482657992279341744682859282193961064290601607158228876729314382598444795595719870047726632278599972784708494349785167086216377603683930502614665581984186418225491576857325820595573115473634706340014533960055816045014239119648455187867904981801124135445562862116252101535590582064572801496873116795748020408608852018912102827137740859566177383851693097141414881551287695732281841105707752813046421888469281756785477801666295545888600770971516929286683682206431989368789368712300039374580808095189435156898026038564381760903035776632387516533994989760638690348708135177661481961927066475310930718989217362709324957743280842326584953586677300597287588947637955694242426554772973867408875232544677850884220642638284259584213838488267119929255790433244081007569172395143582393636578678271959577663906796717117389408720400150043672475662614938284744861132005074221022566778665016878296790335254187041348307247118888064861373145657050988659542242886411897591403161758367434019356978880491324586133304716052474584919101743961769760982282140189541110396675390663490989399163621880502108822168466236351457486368611611491786169842124520162330861268021184640147628678915193230614835737679421808649448099020405980320664473385428980799066615069027211300916884679370605789726510041634617429884503860289471584353880969241782629836284096913246259239730676755145023418238971173608856299120965568581638807112114380505439196873077135228096253613797443113285352119231030826603424546255340185345097785018287035127343557756957769050079281163809055223742136975786238033348019572291647048307209109298972877921801884359762127653871853497590737465069708633285047943985973101617331562699350345650190726708887799241598464518692478774604017783527175338175957656777270316149291108715769570207060243505067655607233150476090021313575447309284161342157871543969964029271814323566400388126821808758626342811443445003831283922814893750920630057591031499425435497597777548009249845463946035921298501211434709426170338906960231197428538679220010610869802919382780519198204628904179019881726030835863028401429301287168005163737973201223920503778100345658778317372314927950267005757956573280737956542856411264431083453300200266647639002066580819883281390456465381322094535607084968282981256034102980883068733730808413625286462803471536114058004302041896463203825023349744203320465936995401629864084698080723677323311781316057118081145663987297815554036648937752749520014799165049497869547813342050538551455044058473550685996370523885388572439718442536799948990646823102215872924019340222955241036705564954334144945228664829183697117445459094030275699620939993524132641073282208352659707334545201431457700167388783439569024866355157194325306319091019860744090888739713540793248708731002879476072762995304849110206337804123138026824547079621755652179443207723751080311580785715710209252431629936399773747498797450018504707171546748485956291167048233746664930932422595433299754080192140393317230616355184325728723048442746349730996470317302252567990909418359325781087984075923158520451224470604864991067042305692532602238331262476013746890681051560486335224760479988639736956961089306642191303477941229999161145107177502998059950861368875802340154617626220603538842422854116615885378656850180368676103861799006225206510363407572348001057134535193478987960644434154668459449181530663895185286209380989967172163259887939180462812900288367513634722664818559814242543460602510368021225257118904700830145612125470787061914965176108049409029239757896000981872233381941129445895807884543268477521109364432373078572538094507908385571845511603219185891462837575335876897304731959064056050641763974212361251977638771696980876142132180078249516442666695611451518224732087390570150988061948614946120988367990123374556921128549884564711370792002050237840039956685004069077851041246271271354009657884759838338000321010688353768394432447700041400085831678613463399433816789149455626609658780621944146005319896950806556240013742325907136230159770400431238532908285404607569291476201134039489882552498189563636915839011567755545057317464183675317213103825635759437150741214015030346388355107299973618856262849992249971327084032327543743092399466904043160485791874113894484924145321866721727471822814330527670738467276019146105335759894953707551520797125953358656904994272495506916480878610227436330852129451047941749752080040068527664000988514632401857963461942469098062987354049729800080365811691063800016029392230995305399924217743005229537371621323455154936825699428646020588022971573288978650718472456773051202775811675293102700024629027487536724269481518789239410011489016187862118699401214786686803368802468791788649869499554433866126417983459085865908059119194872994422660523722510075551071973385978233916213003223546040568268701612940840285298699607902248225486981529213081773949562102560120206451221907587277402106350652222005500413842064460330313311066836079258250603587294667672446914283591051392515249666095796193253607625038854390575721734446575801533453684148889992102407201271149449040053642323157174609276568360076500202658567752560182205955324023783311392334098798239615756781141858681471117228768782975300716483498937897358202156479250232325226356341319119881276895910193002207096116176735014777053251480190468963822071789263849007318476956729516082800829027049108796480753698268072480761321936120736264530249299837306075782969142564817018705490772085703661851973141371716834564176867789781165098930673992278456516484171493031525661325992356402754231986021682678210031262518245678316760379800309795773183788220385472032128580450943323499758730144077189416198866462442101396218437271525617880572238011229321431137486453913511580618418919218415095585838567897126746945240907939964138900714808359847797442838644033189328392890084574424610730060178024120443389294057408464734603785619294936600879586067492539653506326743052420196176066271568320514590450778881370373001812540169783219290653188420037660663188267662717003504755152561179366956730681510366428655374716643701867192625115709436154008562428886201772386425294097077435675065387578782468167948812115255779310768207038746843920342586205407456936259990623148305111243037167801568076752993687629328043199389063153467503632713915786966956858629447012144010734822505326146867731071959191256335704505172281209310267342890798536800796405409270866646770613580241227225343449648846005222123794458249353880720654868639524285930301187012794047836793732233245203824076678773881966781795769651353039960890388546871425019912771481167571693702525040785454209454935325013831635955362708764733121457727190463958527690538925795429664237511178916313707189384331279170855630657074424635807800440942443141413607365607937739253636889657443895489719380839926943547797683400580680132725510926949294985520222196469542059906346773711521930255250497774424506717192561824977745776426515083025250148334030612497814460916267528904793270189518592583081118220759977789030241162666893190826613216852037818898705029320843247447621518843852502011572089477647814270438649243303879320404908416692324027510290892523615544665921646142801115053565853808839990774687534434352312604643306190665210397494408312537980875859641792125626601552426794172766084969807934692823460009855923400549035214788589851855239992966370394265840638143906667036593921318068829692952232820366353004887986060503045611338324594739479092270660801513105224686021590549809034853935227644534121662666715801429559508402773066515739355809423937288054236993991384009142985519369915794049434289836779077613861825411346929185121298478394174853213004808447047902446623255351442595793678518052748609502556072602574685752979962647748699622983423090846631900441729899579737311266296696738736675903035062701766514486313314498884142270523019903893790342158043301299990950111815808472448409704016218214674561101518173124782723744738115193657970425364371768409934635413053204845677595481487667702415556815038284110424047836282260085690522980223481921533678196316121161179182670134485533421978824196263903707245997135575428174251816015974736268754748602813506099503134413974582407820078008654501381849638850644532169470469589135483524676723761864311941596490173410983716157451132136768585295004709876172199854557830982502738206051178822181594558440364006614642387946786212892228679682487779562483952099821241213277598326766532861004275189739503747824690872100090393621595434646884199467691440181633382829858897762898141676360425412142625762652768923788684426715928971640073099809418432162703138240693495197905594802764776860587938328348379826191843571822794060717964120833689727282749055007957445544248012715125204781570613905328031151957781711581008668330743915389524786456987537509230247630356033131425911471935226221380824850709645182493525321642885273030516050890862225084702498333002457358385114503710502023058899010611852447232611009086787538539615444737122566185486150577024406102033545767752596469000889632806392744913892545666599891148806226506729749078188460816664812829234121114820819182446136211849603298855056955616688003194481154321183600324823611260816337469583631800453452770618417977951831918495882982189457737511001858352647833310645588108561194528929021325781147778788774489046338015245947725887220216774870732888136608256188592745999838072616045024582275553279293227671133762039328765859489593664239633903533523463075121279777214750687258447048146363542314691284139841888528731607978236799672048855130291052378578767148370064552473988847730146533235286492384001156266065039505778958976537074664565411671686865138006245023918610009907882721568298227892484193312240176316793164570679705360215615068280433109728515896444899666350945159100918417162762481631273686508479240376317852827149416579219821351125768996596646269749447521628993370806401249520643282342830054998694390139271049058664524439216037992873182210775780517260301714071282602813516858117500808966318929874762022496419561437604586668049444545309095371550121329405677125784511990497901143407163085791046720326539688324028426916917091491762375804996776954001698494436872610985677978838658130443952905613896602826245490313952649498910348352446992151452728539223474285371305962561388212191500791199524661020468728101350637197481167711638411103589082040514527757438928170138458226363728108921074426569610751677126980091132177956529670011626932836900825961202446460726161390744043109853845490919117890768591091845668390832706301080389554875436643882852343898224693914030078601755450562765870963050548187820121381564619098531466129511474426583426505678132232810219350152370904466336757119096870739616118253077707865298654122044303996781018457422823725533466036831073900531632020325838121818453294988054228810378335290381993684362729668808951292616065341967952997515807690394690040479052028078761017742612636565567620579776729207445134503395398990852684940535769185997469995890939293195557484293487065766317114357630258885904624021843928954911181105190083576511872595357214407061195874793057882662571684751519051325866250101031527926983296850428461678228883523755555051464203059133920071819229104896107644075189590899762357950226116021972149532947276491969086466834439759865030318199060119620331386441225786532629647645030409199235740045343128814514952175001073246072012840925718107238016137332809568230413192029382728092657050349685992283026608069915744500270301979201043567325573043023680158262919060793340682758017662621391709483728421336451851718976459717695345639339562056574430763982573926871006750591512352507811561751680653815393741045959907727845464072577781318066444312030030460123728962772721845874953132981521495070446635125840795793642022125960274530542986483651967363658531674978511417762713746875201157895046601810322650783378854136769319321607393841062889627391378380658428635995727653149685815757598139396242995158239852376464563060936335964106215850653101916026591671140193846145480126229379881157168848473187189047437405172651529983056093642218714163741830406000845228306432646487320239226181588365145446222533790316068629261550149428127027814296249414974220345313371982831973026664875537550450009061029705780710620883042831331203763208046113858083141632172223149809903236164257179336381821312103110797882650974259323638243391635901050445781137875291621625974595007750722499788771483068115142429392861938230066919530384295875777520468469353023811150222407517112872724512566835459834728552955783393712275716775533369777320199071950290640861453460958513121410704837293448406381637139954003072278920754154361609587227248222572046942516188225904369453856704471744493808354256278866860678148185781318654284445166596677065592432914039775168949628133708890786881717666992082585129166258141685766023623968134414299558345576794147988834675520064478058638801235847061390144366035902084831161315418019470186583370300665389591241602277482187399431636085714344592843322332983078734788079029678358333861953423738678728740354652120265663653390279556227644111524771184612957904918114728259738607796211253767411305171111507881203353503319703577144027377567879724091645842752109781542735549553938380479615948194579824788377725685049052220661963588379507743892449613266643798235513758588295180349121871048279385500318342470388809499151630514495996292712243042899370173005190499829922714329421886293441158512267533563997862741390688683678157369685137888449920944530581733879491154811928134574140823183166040242849463380875885038418851617477032390315984458216166470314923934676472672618298659844500399074520858075673733081718418883927888704358999309776369055541482227928344962090374301341388388198154343496919205894440147314065602791196764101381533914563709013872464850950920928106527709606441253511773445811988940436409290713626793427622073107419333808797002900289482673391207666836329032788290440210992520066590896983448617462808748620130492157624823394625517089699280807076580327584198247163856139194693202506136811610191903738928925408116771393623813505475760945532064219452073345151341551219785565561775525083605365988065123301969458234511338014497932544098728260259838335429856792034415684709437842210390968222241584582186529363687600515462015856507638382005902937391321519323839377407706881069474660940695572517386624567091641440000985584203227513725786549477378427922675924418278793071930046396873319591308798957984213650424852917207342004308974928361800417194924268388741919104864664517849617840381902451676083724090253644790659506461412127039798099478130794703225093841188696903676249250697966559900604346808010708478430224886821397838639387982878526228854970105040649804135362881571885433474531487660778275813662063154058453031780789148511212867503715685688010874486747859807499153176520813637207756330595169023689886698355970426841757475468498534632807331296712120668633067372548641180026290476285903070824227486649164081613622734582108982616506198502783623013878775063966730733301347674569890927879194806090672856725959210058836347743599080592717421118902759369663959889706420304083942483113183053850364072581448326722745245145727964332404331775791081805682216985121289992493475212356693737000963950796307612230111212090765844739727819881236046400734635395611756903466763488069180517298169544599047093506087962681369514678752508029723623096401114125923250914168865576554731544335047138110308493355429978312906263853854940436073018877079068727125131586201334423744436526114359013171108014769916446152305491671192545461947791724556667386066429579244126849272702823586243541384902697624246644633803320261143854860703834503061802556594769406746727751699214907206685775494782292754296430158036666061831525908780529415000024979624853614813238802975302704024017426089607893539120700926494650161660477377729781774654361890427027895996871496011547892094084543305008907279934558183091925650671769548703212912271149810694719249367308173210835229394540097008044778988862388451708614647819339217970145893797848795371929183414680896084246480702301308451626358796080175264322342189313489698327987853069478539998116279953228244402726482113446648537387944751638537574800096529620112073484860083564504138925323807558843305705064845140130479744809997259403161642861486141993187876882361661685754109764731385375291497796638544954802123145628095434432439013808629969771982523141391897824066705717168195456881381388301940440720766237681246107561325594384348062249834631165492498483781085125977156043722983691309296411638106774392214930270142761964723296887208339293987954732009126465824230945094720899508605656471128347700266937964182877768181344244515889383414446076139642589110642303698324745613553201130398835819872615284658753027972292223186816318926268301682699230598422199433968813889525337687891134208752334499035100671647138554507451490600071020287717621483923362226178883210825825424547076903907832457922407782723933797658844533641519562982221273958243532690848602351701551635696838323584763913129888690373035414744552718545506950759870482826209487386462811551988935131441461273762729376062391135034370261089860632926209211272340786124798347227281994629610619284494154757691520127409396369663034062964377163207753342350274913661321655635995480151622678925754465492342869244818755662366778430662708770850144765185574359657337362735616339185067756002953399935958908847785852609777369542511245346222569926780625710259470022222381761535858479562604399368560987187884213822510231835093285715823978785213348575028231405283001614500669213357495904562263295598464787778030833537866983083448120516600382975379589567899471588273181111832642683811136846631412136365708751451614934190976401339752933847557293775286665856078778037789016753300050893316661869055975762299151178685374859393776781141499387300141752454298679606777520327104621614635278612099469241693858433166629393829038652843353473230897587229237031657186643702057753549695778041737067730871066738969023764871015227672188307051143050878697553906126957920661440231943039815797782190776821735952813990799738249943494021389662402576510041005252069622877474753208959904533573129481384735204661454122105217604051580540291379965125103324250665063018021463867924761503692318898508248833473993136181602432380646530622400845675514931193722935667336129147812556356664495002307611581599339696388756848612153817609033852499418478291222989435326246387637628569689326312049731247039144658713025918758085790870567964550794874527218731149159995810255204678535686313465465814512900306753909395024020934421551125177394218360971984553287320982026766993678450880249045757245006097886896490329839415478968414044366823042261837219718584573926970048718637712453653139352130850459472207762804503919249488076026031108423399957579356389376451931370992577865433717092590171189715786793428808608506615501681245870620273009875299737829794908953002362411439313960653991339282754062450186660485296702506360304377896118692288581519940745099645155568761153974970481854068257430190861904262663938802274305042184596272655314164853114448767202441200008373239518949005772422384135689875878620034279817663890304266753382281725192598626698860941249824746769881255314148563894064007798128142682303573422056093179903124771174050198420962595170930858484700768974493659235607067714023377007742077798706039620308220951420312690903886143193919257977471216937916955706858464200558901756657180524731010843690156899462828615444700211134198055402147439231516604904195525506550581525832675676831345794544649333130100709498411638704090761344342725023896031494786327105219184001264086349534618548771529151201398489600287714983255724591803098882127609335700064005535852112390951801470334595791174435639894325199503022972103026521674614303298797884323667747339309971178479226652032022199850972422657629706089002793151035574000944287042221193153856058331854241380444022071149069358303290455483270242397667659863169131462061204580471810169269249449618746587766689948775297720203901546841847182890506778459195144662007494569761693289715591281237689668788493743697531534022100495905535839974655351131473949492839264832813265128326593301238157490132068920415380150926705337567269159172899729654210155504207862604968025487090934792287316626875673303854450507812165971677928224829384138010695932578308037875336395417529732478922136523268786926851838473359362861634511396797506834565738658091768790052887893968991392734432013607602835358504165684786577534475209291152241757833015450316896243434711593633468978054903716673840955295097725136374180251710790036725409567938696940053759585943407287379972463411574388622367183183204742130701583936040533708283217248713775772803560520430107036935263311559805284968288166548398576304158064345473286834063364050515303625314766743806036431457253224470012356050871660045706712394775485634609332851647476019599837971155197433006285937093870653257867140773397442193047158077466168105216174651656860256674645462710202724020216598348197367468471599655877153539128745119328757202780745979285053379801027564485790090819749459052902317654363232823550110842771438732824841569634546416550609272301883203298666232946560660785346895248854330689026338000606981939639230955170779409215377374287800732265945386045018537042786110832243859508351746873150496431773061361097921262251868763915829812897174298863664752410088541274976256192199115933578449542373040299487808803383849971657128412474548861474547639794516684268280121215094720077495920456431660598233936389063164584769693110100497372945907316992844695514672299813971697124556344829787650087248313181268797519482128563836964609344725860821345078285683378377414835680389118586178427183609878900037301260326232974732269943556804359986322843859068755408233310630576067796955251587922909774095561456508580892206546117189728490264763570835722145476266432925301930443994673246022001775446629005404887765855318470459214191315328969395886871275450922524017056503226303599152007961450519503105148732359863253434874913617992635051057143551936835450808635492551476896797400801296335733801282297722474399201550739016979759527713050710108264735594310076000097474885452218462913914721058914131843140004734676328810007691797034139411310641790786226053950096137375048747926543682592172192855776497437767076710668751320707641203249547316648191581175669142910320059138767744849188431901409078665688519668496421876691399590985965434565261267891994325856206358131618707863703128019175781022551000612806910529026294508220680204567613105743600876643648922366780300103541145715758240727813100061174856382885412943161553186510222746650503010283025194717887205669313184936433108335929417526160812035333464438809833410259429093218779546526080408465776698799368814810078870007320125500425038291090959371399279948951535041715316257403203812828516391471142559328093251495433680888324186645143635245890194244570901553712976070373510513192960886304405578428608507146398854061573467791677554667326461635713357873350069533968549620739095689883226551574434342103134328302165630238266936380502347214017668767759726505719893551889120198435445480462843533892882063648647562215128150000237610776014193146104890901201904162809133236076548833239952705445139628235596596884931021721228438041855095106334992899590689258841245557629503328448260531512652475813114769947975856055488138274522089377889865023346733264728436395963125861647954752916615300150367173642632301177151493289610646204286903854814429506889578555225952600817441388243808490323674336350776298117180690436606234632215771162310732212227043314508970442171770638399509896742009751252359479785483464619562753288368108739527412201864664235045057546909932546352860803795649253124582868015639398699233879934737875893129335664055780381477428547516174205176256802504159954391595300466110314490178296345423128397758581925874941898549328291086887813965752289228299854537783923667928171806751624907055579256493736844489037628685789445555819325025337674755091827093548778452091125982782635158094913621537924053649221627652522287573103609979095643001506782287340299282411785486029512129971787572818415383118483166618303490582436991797451101151159653282471860885591487856693330890805559350541804787313569090310434593974960042082791092187062004117979514731606621154415598518185516078673790027111299830252837393829091745574387273061204744299009192655336864316391214724528827419808613520915118553471060288271435829979602791900324077230861169176719094020062935852745575407534830250430822829387578099576107705325793799110416618471954798349064130259867161807444587584790841428779561652140413983635371648272437161693578091856576560069176575655870923868518946917515527149516813944663492225174127631125116075920063135514658124727786561954358474524541318342593683989004956814399144449752668807479228279477641769811928259107204112131741350509017662200138499793753956208371682923939791357251195430995392424238314602950822013477364954975146529443319334223024687825872253767385188174598876893587068484501172661678707495509660973781746802948868607841510568631121244208841921775805298700220451542114482066356010671660168531997718825478322525650907822913923404516101495406653131252006891636650168609177773439894170125884623856472905145428950368412398499371655327361445325346261871358034930965531938906694841312566636406610460965327161664079992071809916182375302515874007714513825382374173438727617918071364490229761916554993464248619162275726565535175843798458705068441249521625140804400427495737719576298396627064961820370746963462756378907822029124723387293551115002161788139882866545838192938733579707709555145591457792076700672544204750870156024438764589766692349357335249287251222364531015386800700783656932548467917095541073535940287898683997721716893719666912900743811766837682090199782210922810033496886799172285275024867293724870046206015595623801722907444144851821236622969089469950603156173333745535288372339142819310914959656634332808096084064459849465191924273514616788316372782655972685340089666768216532302816311324780240808757892789283903950413324482572842462240229722637315558216523332389062807129713323604401651586114815354245054659886847841678084984860006687281722797094943638066832038842709465303554310732943251454378647242480789460063405943945077171082198700693123657502925183579015628990751344268107498697213614771040082824575391834276913333916452426940918228180297211392562851292674424472593520686637339001328141090164306646448010363521094920924356488543738091052968095594253064945423910910431207858204917831747169892476815622681037711926197711865619156082957689385484640618199021067117713268935016488530586993542355110091502876568383792184508066594659078389711374396254046119094097869639969645852636880266112060896763218854663488221920051156300116757362416708943249527145720735493949349359877201770261937509988105933696544785929737374625649694505115012023039166865031437561794308684462502083587848392874406242806272392928902740934368536112084767395128759832634765805493944259513723573051352400884968453802246924180709036155591767889041423628985705287132471955752390010046845910942510874811784775036472897431298583131185922862123089103063306593654711324569668791449107557574638958520827137736769559046274373544719430151007487055258072305452624221244080125622661106669351349971865784536751163607900563155194335747790689235672533334957761970065408291924572776926457509753556311822007028605383161035452962520497633725013191259458327331357987070146949765356691923457018627630979753568455297137448045831345896701157983007746938363710519705328152182886879977190784100836775329874254431082259890368713712646470607078488523064601294748733913889028563831648905982652955938258133073444007792259308140697877076735794501158526595199136264732496630723393503669507661033092758166997587177253877850880373046792941833633343051093558462627358721587713179244524699928032833804018346833541488248085279033225301052341382293396660043862876866330139111083596831186704925630710540442546152577180959077472431114890397530845718951765781868995126506194605049582983522556586964841648861322826696740319783752302889448701163003947891317914393405793480302015914871872940368628122175675583496904518348772387439099258159917187607952879772143795666429126201486398263907429869033328911790819737209989284605853647947824900497959535403860389101102527081342937751838606101570595357676463226999248781740253256712226696714336489053885356664971640611515382800838504799336648448027492282707290521312894121914750467277975919620032000881308232040167218616097734551043740309552882507509813335569754889373192953220988215304141034843599337862852010063041021111480378962589017961627306257940692952763240045700460914874971233044792270903863648598072845444065628797507938258400810455344914726651825978610395913232394772633202995959112092780985066714410072822100649329312107241786449782344376443470231509197671797716684977127811839780776067524533251568634733424599351957845562786047915891214655127035562515554905905081273004953267419568179683975024376118012704710787979811659732480269313928637148783153881912442582022333704200448501956035359607056771208585162954893636040984304180158688376593240673935697141881705544760445581361240215736056388311842528272070820704088247211000233251730934184308033881243960522871899825960960081777752097192643513070451325834787277952756754781730720176098807527519608525350075267983836149645305397430596960064384192921920495319156411274757380630285000078086714838185488383261398403859270862700472317129871737111061791802717053977760199850813183382050195859944977056909037162590915330472984480822750259674890690487274233357564882796625071679506780526501333396810199228974982029274759616308184778190363268086071278438489974032040693136292962923965818223837038664456848806961487867775638520546003514922532007467814341010858536547263721383452292415123629043596825211955985209321097607866802436138895846899767417594132956372075815433235428106981040561825958584698457792879323723684889677018451821639820405282958358706153997297817287028643719566305523782679136784804468831712523840204389993965286995082778728764901476327728423669714595596222852552039100604405745718007439733140151492101239910321784080485245443638930427970684645545474379649227832294371253679773245385667893472289158164138616186848659889757841964039700829316208918140146818749062836281178256373043399362811004482074155407992970513690808422331053108528931221084603551015587505749729074655108199968203302390253717061234239659411867795604194392581334978215087680085581852374223359402158409892085942391681331776547657557555366146887203636748010045022575302705868577952004210626965125487281610290373202237657498917236400681126706991039215389823442496391592572538597163659247382051268353035689319834532188432569658103172535735200184325315375461526680776223065551124276981121545772571459380815407900792633612963097350278923778372639187585443156246173856625917746656290947288013479084731530679450859030381829563577291598613200251512814295849915885376338499784352230995651018662041951854839687520101617216017476673070693068800850503653682919216568941346015219820967223863343126364434485623760605431719769809280010536924568494724953487720795820083024321153230269739223962351068598374848612761666132686312430707582202619011608590304546353417532273418056983455070248214312726843409698766440565146880476723561545464515596157014856717862226259251707677435971306502386279515940604326921894280594880249506887776484759901744778672555643782596752046143696004360702336734062217019550225886774175459165285455905898186256526002777015434964143063856725645952900841691079740446524345684478879105183841493354325498243636402557326943246994082240453174425155035997549318781796696995241246750938907533144086460934589435158713766367411262358732668065488454318188616410555268806622034668071222931168604761424449464343889841277008901961847575649036253929387224491784033640153537430352460482769891932213056322651431659289683093175473065360849646976462354165262668798284261758261477369198421709905073932390298605771970443715051827484392619954528118841917533318207469896646426465337703872155642310668722866082590069522503247881854083224295023284550341789664689626902304110450385736759843853680132778742277946871721639939132821238010463700262974753410156055139202870682867901767767312891537238557890250692579276059456800623401016585052975491607868272806796138144920989333126037889245020586063833274794483378376352551803671817656806240347163020864714193165678669005169354665919113942197959729798454723437850718439680238481900170175400970933343827822141742521644794262613181648551186419787233126129339620535785337550074223689341757989837886765227504692134311943453159249128051792814611864737499325969013842877249660864531897270045611889170805960526720136785054474498003411173540905620353127914207163948849004369976060378391766060959560971184902916156445628394176672610811102579741755642286797462546311289800010971690521161932468678428980773262132856961752925704830480872457545675905881564100164157963848990664563456757722761178718445999774658814902184796337894646831747226504408120205815679928083713300954722821453529775969484622942893885526225629040347047404567718312450830725451089007119677350216055119849571234390450683206620251240803186812323070704881306000020055052331741607679918862468417552226506613286286054768731040727648148271740421917785293639843868463936216675034279343753353479135447226002183467446508307548655310021741694811048074745771765462355097061062881415164510424046183963721521290318468253305850066664326547765994973579045070595650933316552298634931812744062858373498328836531903872586514373818185424228958929172705991260951977056618204589320836640248960892711590158112956663514907303246122865878126740900948982188988637803713705779193805072319842367624175567109800779082736954489041710243768101116626110176763622351292016142884933329625373021609059006750689117214120239673973913800026040134718042592505886465537474520155420349226021228593933888348158019375007780680785562878577491696781758662721756968347822231473843248246068658155610497536703543754982975766376326761651843104923374055760713369133291308808042189924944533556554285921839663086433622846189334933057533687382264524837497269404986275636505514414878733270619695287430972592325801705974103020335395122841989480259016506502359709003771121344607572612129274628429805163388242475091948604180349109277646607565085213064019902171454857929241472089323330630801575870981575271782143128542026286899282145489975665204572796076045483449983365973268840061039810191966055309760258816976928395357505004442578840064243729140016787985560918101175662868745081381908043697450537784561560717793414641299045813980730840386586186430644249080974860043345347206363128592850637205303020069464496955139590658935983029586938120505289321518789649375727451861250966625726525351900365841090194895627311269617923526453541657912332610496330075872814566094254251127693776990539843583687009138820405122455108107043684275055566308880747097907031657502784037953133956967925473677085158838851412513661424979435433560421774828111073950241417536828219092921953707222300949149775963278818047152359594029259618802008809996730856594747726543557301711054820666477369288835873735278358622923230521281811333950906601032618421982023884718924643281230403362356065412982749893704458842427283815937438636017798115401935894443105394713414462438349498807990581054887503114773908668896781641745889544006730466220478286462771300108239519608920512754373042485435186419390677214478964169647700666351507423816061921500909162901044618969726390251147427334852837681331116431359740274247983309625678928008407218256138557193482694346592408318146239452181920933456735489938637977104038811282103202766113330095021751510734352306679749155016847014946514179445284412510205859014751434353680232315999169366374295122909706300877225504159897123175884072357400493709493526172091885477455295571001156809800426576179954083429165555131555015713076301298646619830713359770205098107541499231497613505658033387891249038850211351023696206867112661156232392655557846825169587599995109187913862972564738699019695734950525901137795869098569103072286818818801458716065964775299679113732872599932157049509422161911065093948877623955578453827832983333846703692235547405459002433898816649927832451388956356606972550981632661355344244752732290227076402935020892382848114701083483375763388566878414724658994058179364584333685728239272619043668042684622154102585165389768573496105244971702631724194004744803730085161602439394225372875222489799339354399948365680172838945750193453356643164294479614404603827410260285033154731730145627845911759544761956419347179738562399694367154562949991544175281758301027650188686745566201329163517771299026807975030537046487775292220015337866670531387240014112935636122146417906468818691544583511678771605425098761203097776930186963935875924133113780289275893873224263769440312996485962125448503739764847749441873118767507706622109282085889604975580274631467349829376371684466616827205648860473508009807233296678744753988984398517999902703469405485292988027141490239187191148578136473004117072810382984561268744778335665538829918504072821869351901570017705988650799689537771211178429542650362546728182985484529643726906671403162901475044382136099332644799942582441162355068023828304305688455620903254942543734678469083055049306249627298381237641374509920066290552707441488427949438774351669405390061561735362464187409874084774425156224604363554554016259620641993864400457276883926354179515667078181353267790485133971032745220766365659983687848080911216834875874590764968387626674397544170108876270258025048091345463298731130312557906005696173369138609674287835098095228244691066773238795089470039388059305472218414074247069017234328469080287679450209688542974234844673162803978008789366659905619031748370561519131877483609985840569868281901563028162993542286876822813728165676047692453435172848448494739316502253264358002332628123151439584695520620841384037184042700718556362287251758055610840552898684919769116963151735725873826900205209140177541582605017573532110401133567929391348785401336699854945604616879956514654677023680280632600471320705314100521098593191864386307825089167860052468392833993296144847723736787443859944424387553607376358771321627728624593834698869214193021026374903231828452650298709683175016177570096725212755757448654682943900167850391390949144436514046567022385339427310423009780602709224417205170700945027724578642483450543782847343785679077192270349861031780359097021634164943904377704612705812744125301575481159423246671518939827837839411055808390661291152287890142300730270238967202287357128256693790200651578551860181055322327200434806225544865721694036099011518282660818952341488240564331363279572715847338026247907622624405797306005632883138118344020406658471853544066884341263665777275202393648939739272785126468606193738001639777109696147292164286369482632411272543446686353237648304700112124127994462069079079344672345652533365255386934513316847534894356962200894638334525993091347539805413823697797990153700935171641442288442528924088652381569206910686523880041976121176639519479237510574112305385434026526441514777379726354575956085580646340578580202745549133722040933784960700294487354539942661894511094574524039455092340123488198433403986127719326285062980137820628031353737162679747687115403192308270688573315890900312814265329437007861972875119207658542273423575431677514814763630433176715251357263937299354794598818300172679601138946054813997634311641642765487325908874781062531608156188120899538480907807231364640084399959774290016683456287370723781983187637432375067894672335612408653148247511158029495336606048545817451949259299715699253227918961017546839924333299761146908148167838578732243015254150387630249740610515951819948660603419216254307581756539621079833289685404752040535009700325905861622849326093146628012004917679947372201344248523801142786813655898092143386908624008125400129416550838158083347097496311982860536024083004483279699983825691520114501767206504804482522945742279363582195856113198942667135404411494406870156412070527786179812283985305666082065916312047673794375884522583219003121934700059538066159462432686639978213680130165321200959132085009359977035408155796458826331622152898183025743637642842751018353092163861478135771533300549118919212844201766219450829396001898975852519719608954979437358128800896584249666906369124318229356938007101152433443964801020430774093806599526380108877283216882779121390645764985025088625499297942372575910190181275700376470618176073827813367778472992469551128181459535862227675837728295426547305732492601178274621685665516302764002133151323514131319628110477547192977509868498721141522307972318336584431489743833153975081641227520864713594145565822998885595547956695167954225966084292177655985365321473859038118472388330085923316476323945741841909353331693316545307145580531765012839888643911188621854663559020221759754671296272539475280207487500335094158070693820166579673013411563347770998471548056068006678335850489854770595443618569064159483631000328326973821052018971460323547826925309101953753429325753944717434904271728172176703722350187294195521297930545033060730236553682176617080022757844305867753731283025475305803515954373345845858073841130572145525983723130776797664603546155540258928309759330058741311560436908220822268634349280847584972715974548218734689386521122001667812842010797705214974926315418354644519904731413902168299783518158655551964797270859992440536680870144739445621776794975856648430068570828389701548929030787744312449501495995516346397304185713515322406702400625135353770846363395027276294526980805829832129760295378117006470257311948514160304562336063648750400745266703516218782595799278807054651128647505759967909976321186468077998031557940868135708120168806739984684414039894666889560619883729809348044816571543628807170792124682776397185967314713453975089311658485187211229794606115032591627679272684920503032488571160232412252800251480300178170378935994223066895317237320084917372420122165513836366457469068490278569413153255687463068703822420421847915280646527671162123488248508718887688772904121956469486035681184719039440719791870032354700609538185815347862967184650519311821740952360346414296522816200705349158544165144382059904216009260369263351621511883008096448770868724214103568669294732391342916362363960934753674392785486704738475612664899911391921139570677552200847421232035768356570724218500881962289347561921284667911268556716398839636197809934239827130832338076392570581484383117286964421472210178277158492916868922939938791665511623398705337387464158013251955497962248886730514957064216958109929214748929497426823851351721558936251136381136496542038012867890136400315209549121646223244166215293418321868832376544568311227877594421676871329908048915946498663845236145646004518380622704607061915784911882119793448145053361137261228535620641706210591170362159619946172952580210735310950355119197064488048007085960940403596756907371998872232419618002682474225401420530152479194670626761033963051003723815583863377916525014230028212791271642216453704815675578435905210878862069467204279529212977614070659655400768393180454347418950696800355963463040565252435471652762559345651357766676351735199894437224708621355733136169358340155450455833294892460538434602656626428017129939507708920874878146349736137562786532053605467105556105664794040968596666817973408932230898246325676399355550144145325032613683723664443721838131521855811536067931623993393830749464093228356256815808377714930770382091494899718662778417159437686222479111428030103049805492799666799747701803032008312426609299502786593534053885481943235527383546432205734602850979401114244425140134605362365964668926452736048074158613660771500477704267643771044355139807621979251574955212956682399830204668235713576296322330549052296915039166714439509645906232452641776656251765630525903690944634437218213516775446381877199696490743431972482376648006135182867067146237152684054509905534247685569262362483442452542510284355400318922830766797757558670863353807854062164067592734229531098348927162271238216704905303469993995717283729629947511962965272375602312175754246103806401703423816421314417026894310112054601881058428182365255901160158895231639333709371860462445409494757304179737839486310980370744551796354109577192181472600818156973961277261316756442910350741127095398377950989265917515711416134659561960331427926328941618142216038170813911675530862942051013983711087971430471368278330311606205702459051321908008105924623414111613131232020904835563373944507097378215538809513606865403680868342688071702700084717935216343537043253212312942622321988478608554721136975803403034147369184750882838376628861157118057066080433836288260457083901866731661990855912134861186753307877245774190527224425232015569848187661205705510850386218644737986910833811261609780283983303131256709632496060719220020136027478854773462159439689005721826542882310355654839059643121113109763145292978441713677277548471918259014368868131450887718544675767065176615261638894790926054011087606491655191761415791717820176932002336056667079905123955736021826842424297895051753538608024003680458552979324991186762024575002449861994447166193803081928350017728910983485926634546122270971021340772277342400994805869364454558405154899930163627110992450025563671891492326617061436923811819427430450203868146031122781930124429395941312050743688945442519824942246048538955113262928575019992128226764000930759317366748065004380574786730321193337037928058993865567038176721946069897335709941856749786594931784024703482276891677939614519793945182809547136955101226202941195750813095375178863051950752706680267629822475325573653449796391911763412154927305637598892920500231323643933252560720668193122244950832267547493203212556630342971023785654344857417835950318978421304066284384703716144697226184840115553772397586586632062253530873954639603994305023425605329167089838174547866406791363782359128720796708415931305697306773589801774613313293385587811532757471395820548267350595768476748750251003451774000346423067649302422031009297912147725421829338729118805167508737833811289112293102971788270732590956153448651591439960998910397833271543185331829397762944914539658877469593676083232817057809342813573053385344859765718388168203320570597233838341853795669137178108256955217414456306252180961052086547257720113949293631638243165577902222783285115362653074154920689783307574686650533732867296899215359904318005419507440940748149214863441253517435666744540547892633463298217837097319484665293245696031991952855822899756652605516812032118981638516574622873719231682995975012174573724937745504060759939079032399926991945109724536933645402848058757376549430089433589661797141545005725130984483730125137640363917504579185085531976538934179757854984198288912730055706903136984054088245620988881761883569098149070645192186391671910813382340342552537258866730924717459274804690341000055622622365226971607513133708352953043181585931993914682195163981637379648231750105115524602527731927891007417181527731623051783346674398956280704863690063648429958884726229063838978047839563960722247990274574133544497585952657936191218964636213481647671842891795940531527942157044520354584359501398712358475993735728726975388798095306480840216565822035064248497857326088883961791607418642364100514692519528586904079761919425566139468213025172891710474129417697176910869406547013760876766377491483146330402084200620854670909597669895895539347618510739113193440112849749739847293530726506528692831146575330899691461701090619809366824649884935656880560784075481574231805927717373925788896904560642786587769638233201040285779100061699318799900526300309618624147598709165244251408138212019244808698872106243088197655275250031852421092474142916291726553182717296495820957570637230421042603674754195161204395618100421639081027100066512025657271893202403047790040832410163498515481489278410856894012464083074834008776154205955514492239264888528694140446097604452273935926072049401211691083840199370474755878689372601063803659893165647190116922171295286873685031731859594327423413642417309035075674538593821548743191950131745384042917801407643246669059980282670242146688910292369905548560288729152418990084852562798962120635104240206210273247002215579721147273185374003839793567422283630582163308138837091929426686107761366253916097714811779101971431473348162179810608038389078210596112234767565342910817224529145782039962365339323728165530628878348335837280148747362868083777380208600317935937388483517432519809141528344447080320485227695839943629309748910557293885839551925614673057858943199173707928770413275505080310787903949129107103975932853387764573390817323973530742396594229813547062877716466757621550640686830409641405064593088823878298132430107493027172557207084896854902343887567603103918044214475165457417919736261980619648879343480605219605462276085366604073303809575748128278027450283310985848865574755104429070416108638992152450925156258512138558983835913917543062473237581601772975917022722255592298283812212509719185187906316226883700372849109934823738859144716295623602898105688511707647065388037460581851731438486479173790323987054497352488548677360490205162052735098299520644991022794934172781069364816943416585615459764996463154095481503387071964283121878715223969762371190530262037257357413852278603399226031286045019945393082265406434040101905173937289120151473213089082928539545109896314657932379754187905946631825808741065174477470467447969355633948832004167201588304280801730558094784509882021965605253620528084306050801666328462549067065218194723682729504488646834677866514047731614172108056756261060293150855159590066744197413611005605770501250646166333713618610763596847015321181020262808901338807107104019194713204662143824613921029203885234462791286584682332490293708753150863133960104869170919254933086747045153699692262409223261064808028851636324375352431875090485857480925971141045390510515939085796364300504379979132734799201326830197128085422636585966028720907087596000387194883059332860756106092999311326023748991553812079904877848521443830368630443157434593899993195981471537897326010682944458753262515395999558571872885341485103720431595471093861849779510728527145627792082224406165058430335485698746383294378669723271254086318005335954118942553066599599703559960305475232037680132583301325861799481570359032550129582320305010727162414955708470727844388994056062999104596887138507353049295085734087514227801142420814379974565628372312998631406997855568140976130589610194273672081579979853877329923821874433724595813195449277014293370067339398719713365621318016047558504175695919825666774039781860144422934344160491278201139481332357055639384873693570117199242567127162317964571100218816105137426535742902066534648904600833685470810250932551799507666043836986878284746996831353167761516912515512991126043588264649094341045872346975197395088153000138069630366188403459155596042881752762242808799947011994777744006165395758010541171175983038127888631725960459408619694465978968812815388828429918215018012800747237689817797413477513787437764295472628159233286486928563850876638147427223202505225445175196297736647432488483403900293505942008553403590909723335695490397461018936884532783571708183037807635288348539399595540923919270733631046470077155787276242881139152472403802251238789673323858312870596162789753622611122384228922540998952550982864507532688811701175312080514417330012185439224142483506562466416295257036769838489008538185748514671293187670011733598464267483676397616167357803837001328964098632498653477663635209954282819722270323002294965127046854119653571821916566673294032583499184452157303715847594664684012830640789741465727127197927752300407313214061061820330097131170648153089481147646184608932089225066717070884328567854773255344318895267329852787138826040527999860836463738843652505778252649971913518595560377526494241830402081377588138020921942641119785096607873723368815848350416118053692540221021630535274068168817883629797134521433567337892657246733585277490921177993821320224262056354068627923858525590749612119425704413497452175713381117017348335304957384709822841778278874202871509106210562784473278046019646167389729627045524295314175175197380323505211249381434746322320131275135008791356427046469582351210609400382156676035223121695434922255531795815184634441489090557869999280571321825291802762776665576524203690245298808146475176626539266536934916033355262060888929319415455544218048247743339359788529426291656383629182976989289680631448833979790585556062634572658181094541883572591472741309046962508122324456921588649699907947623010525822959239645452032303905857971600645998055054055731537824674063319571642627232827396580453505103064944310864157543794317995443075136995781530714549958368291461996077876743145483687536958760820563272398717136782159859919561704019752965083695081224407265133923013845507456095611660986162209026233833842068331297990402781210804309455175557368471769477253567126681495244926501317423015738681435380107090307035706486898584644468178098723360000464748961936066050109902457468422714930487214897725248842878041643708804310240915565891041046938928309440313318265108302503769887575558891422266464861571139432020003804718132945962995112402338399867293950359596637706943811177524720005431011812947535324105909380521338125828816313983097851874043907780009253975016158006017578828392205922841745275471116299453576067765261306949422297876119245761800514304111614572233743451892905398510667450563978838832821918190127394503683374273761496362408226259945343922931721500613395849608464216560141387153439184136683648753092989619305906770514098490766369616233109636207434699662209362206484567942344874040489005460671141019997772236836472402374132858696381327516066721195658895749759846396288351990444506616665568540180598399890327260697154967264611748455008017796165063303375239067699797323918866046029246273382683297092794484328065507059607424536388026764185286394892951830945582772920599997552976245846832004895915134785105657853441554909073046467769070390518827360785916707693597466314590862012738519391995396982231795606082585879316335343071047020164584973408333862825369851492972055792334115031046456066129886746092411089563467865688577064442872965057724478898056317358788472875485578196538937070737878993706866857959026780697930886433525479448918190016268821633490626004384266330646278066297199479091343827926270064773249937395771437886797286783726477143520238747619741671036451068182570882685244404279928725815148321979485836260508648786979970258159500371162143335222791035206921609107085563503509585034719966542243166948915425839942326606501492215652600425223319800602217785941543600934963836299081908111318439529194661442749611932136070057107026074640166046708750282484101608642846374319126074362078742591544002929488026430887326580777368675983127957110771450224927938347271403895421601876223840750250880379843318421990706857689627340580859328774986920926791663579772821772109460529248796440849636192913670411808827752384900997836482178037711042904583623545394430301308037216188721192219074828817084587260611155785271423883962590364260985769113050418080735231528718270979675987196753499560527899575719474753428371686290693837628425351548260641204433326328352448231090409673512433083520416467626569425670189499460476732522415682181896941559137024730429760358960354516815787995918550130066845132447048099282334376265454716843483455669241081894253190168767913180321968941746139269201252427234981694338369893963248060014465769415524765027035724662919520513761665442210707439505306113505987486249989906376144102291149059682178921439236588281327156534545822212366278345799964412777275730252634282327123100451518341720011400489532503372329962399998981645339373227501795044152377027316906568620991033888015389680575077656293418800182559088818412873782730220068286284890499425253981351878584100744177103948315314351569148065895468863532290605349781298504113589730029721590561391945172043593327617846750777219736635636658690160733483767674287763109600423111512311847383231188125177025053498257855994628733113119721810861482734773221094920367805432990666068741966549342132940538898110284201136122686411657220795029609358453773742155347008060385926546749305843643375929964434927358834740302339249469920410973952402959712471182758715753841931124324976765727071206082363697393701866206190768573668637112270542066778087481928586092635191783358790222932965428284604034027112212759069237963248966630641447941161331161881762790358255862257780622264601817873591974247943218803764644040756586260866780742378459128540524622126889316663365321377440181897271509586584728088553758902669397920512902439554220886608333838849083622301000636112964976130626641060248634114023919130214868909295493162627906907188503746890424435406910069578671037581741688509148228204987651153231262870687426932828521340961342394265273544010600079303762153050163587839884853751095368061099121689755124963152778952540436304964875668070703636867725322733903913300023151718052630938048606992418564271950947230984810118523157977937171172080770614241392005132707502935285270429647644143204382859427854840519118785199455290734740925566624936368224496309875438880207957450821141733891872554492199999702074316025894684308913229728717865536070207778671674828640744959504973405927371525096800092830155707017365051921897253405841163763849544185289172309192309093322543001341793149503288497250585579152333155323085126918444525841644269279896587088299209132856851066515918964453128715140616042781220527812298114965464212568065658470404327255251180239313435920667820452453460955078833694583727674230212695477584546451217671886324296824592664257496083336434951545287810775843716489053144108165815359894137076938115034177976483741209395190673543739085815125325234902008844230791146233301763428229732579410136900175161269114850218121045726266429396001888485852780853351819824377298493364218474816150038980376129786022853213215693212729006039314776834960563135074878685234953253108320384190608324598829500150792478594894212969647373699587513244523372470270016726230093042022937589963576525256791084025217988412492126974627228916285482737513894376986905537622570498443104540239561504529159097001031571245979923307127405826317498266028257404226593726304760020888087334170351643125530865722184729514368384242151860427084630494965820421792973470582711376718722122469162009462255082039737435308064600402626935648424957672991065479836749154777118012893402383308599411919971960527636260013595491025122154680244184871319706320622567007114249142813913669241554668296594959683834826319632786233482845811185715047852433703101737598719264752634789612699507922826474468680841289640983516611757540641543739461743840983914099309605301612498553688418961201616290468230221853419825779908554748030127378619474305477726676645298621163157761430086638314546398518703527912922811044668443924288883324892476756207978503757819569683462372262064261129572350597538005244394551307521900867934623269405513279539070698256376086256343417816026821765074109694832642017321559396720009193246891784623794502531123261331099422603884315519865751368034803697859760610277163451238488180105432234655215065092243596206167549181773053378157661275120363482577899990274497917319268926708441065931717202803624998095788854578218255355793436413490646144569233563005657165651447731132693402304775336883274985772760006181997704805361751008453847660095440571005072027886562535196645727661935326884163190850520797727480209198888803908446776615252450206924477664724948408658780987525219656117415923313517316376124372648175509020265463584784954102092869733003407278724594881195364066721833243047312481563628312935633841334376271927819249146708900981937253438603492508406844196663252222833487978240041875660492799508043606706587073520044562040160267662395362928162206884438411579547264052402197431283442196107654771538918128220507565049879825634934491544017708858265215785214303652433181969667071019131412877164638211314641753227159171640628983802848937965539860501085164713824251362923329452749331405861556528479438628524272818445237876782301212834423521590624540563887869183375605356832679527052610829046795976859888296575898237158411664614580074165128464710932646187469781741413671653939326140954309509358964580281501317975405201772137426385461086288180855670648110573576479437617614305795691177786209063480235274676364470672294637768927606604041619811444316567011991669610351287252537959704589755287239136206935603968502520490257684043706860646409113735394298450348528460207221836254335731319964619931511886783340592518100149297007240008717682537129248859116440769320279767372718792675026455902314405031004547183488674033192419283809668978750369171010400627952678779318041662402905995262091901118462260851508885828313541912121940304176075617608488276729391030239517857308278440869920555371815856042427114805791907183847402489579756581665566306617407253119481416201003837575503581194596477477668304233631127125062656593394490002392107460545513985456085727476433123676976175563630687102840700676442784907742673224984361272689935202804502641049240455638016896619930108302433602419297534382872521125475632942556480438662930260876516184032712199457872069827147300948354524787575659294108843112871295828087050507052705086737405263441557173330477221252351658774091146787145973853876763161728218463208836282876654656045282655833709678035435109968653971378499074214006434798369029830900158489264661657912012222129484030380858276472838637360253871974478071327103489851655095031120569945890699087836011510276897190973067183411429907483583801407987824691043189577127056711408522752766632010171882186021997404886357598949971840517312252143529902047869899785837933473351036622520385026825320907522548410482735597036567109736082047621964185334876906413524111309992930887003343280972853254819985514756454959830481880005683495672497561521524530002554630243339384251102714482792829750583734224601982844965440396336700507387413876622095516910282355855492820024764580479513323348338539328975181377001386078256804768177045527612716895649112952733999493232757158344650206950619043362737674778448405419871825140033188236190476357878674917495615540956918225908670784490345606604210506426480709424081199843316859234987365030486639053520802497639908303693247833306576974237025772850662209742383589877994073123225795455575400558790122557206702893178687941603731624254115001310271910165780971103999250156274277425026551067444139589447363822905237511779179954870548221836642876616745572978701006132810540034724359123339226670137931199556024642229444613675735790525952421622881614616366151948647431901268397193402141703486663520943974699722373817561328793064184832022594186844833644175427710766798202708407080610764955036817851088719944477638257426161107512072611800948098954795520628945963672306289951608298463649206356261806013037409391502571311893163783771855596774837619789260741369226046871290406009495486830345510763343752942913459150391699251065999115053443082428456828006054115509467485337093759166570386178249901436298253482611953991221573628343709772875884784728988551556031911576765072394720457564743789607166579147378826090972615609212279159887291590272061381632211593584607751346193645263172669432168798621405765067508395961173619715438280717556065128053195609184617524898915219093695486874905132943486327475115496051385295149529692427891045593093807215753143673138562032485508702498177508138353059633496982032825327498612139914257012414255052923214838269952179559008247237085189221786584475746192765490444797614806240484827973334790731503702101397284753494209769847002426691137715005038825231543808814993455022340039661906980801187894442686142969964400672287885826199287621734020935293654752615254748194009077697206478323992537235522835087144689613656865424792523950078831997968067960082360351276717404649311522216153884372024839197600432546681542637350510160065921400673159746344949534033442581675957522662862184264061733660429005063761290218205170632687258071025711866732137683178667246885836576591559801554719789113090767740524168181414825872451604808612946702256699697549665014211292736886316845475054776606167575528076232540217868366794052745479817428930964680934834131049006926953362114406629922884910575486745440942794717527626013117299920591414793524545259797016551203484321862028479980236189728122110870086273488443708746010064874460780007770029697304349040478750779038117479713310870089940925362813171867104215171921166997558562706194408234841400756257983042624740527994722381618820003936475370572587541943297030484376273772299836277478837873261172685093921872249976734137205557050767880142003726498639937768228665969714473972371945724542492466799516813699627877825774980772985367331529846469664886291827142260791967075451834869859716638085832836068332612008348331247939747576889475392173463411038061067514201990540255557787566927491439932345869039175609471232950045218068484062793854996031466273324132634902706538030078555840818908193050013769155329748918513911678954076513734885511380145172183986718837895658919843742014591261887762059220623268308903479020388449078989535105679949575015878708669078298198628585407125193362944758134290441108518444298830117958312460480725270108289193485838548730608628828856942811179661634148704875037949091651255856832431850064870872538813277141163815485103551920125527312768577206996164998569169796758836781918592537721426582023962827518880423781035529140169669050283768270900984619323728642609793926343316558379543825434586038818800988908474668881711529221824165210972225722623701754511788614212962760619706551687259822088075604182320648410792869196071369234323294499783173981739127515487694484413578654822819792213164857830935913772980744896594319547065308911729533376791459393928100616987016160943906537606090146534114020937859898707652974544516426101778691893393318069435463232491612718106842835628831435779735380862361285739898590291636313696295581530746467300037933668426498271296475457093317972068415900016626732289900669211823227470826310523677970672925267644019634203605810524954511546513130027503968335214220076697146131485204869949059082417542584907789971815908043048397245238184379439077816040527830294568996367688319973454753672130820657636662596034771174137606108226185135586565126939632531419207486682411472474065655155150812865728691311737907747901430021162216123162762407173292489833060425053261710087831761864835505720560933551498400928273022631398391106858305229361981264285398715195120521508484827485508043189651162834513314858507442730143784644975473011128930863889424627523756747389231565889021221409188167521830955676409326340990340873291504823173110835368427863131232337768239219302070390323108048145209610240183377286344697282337082722454055650904017329315304517892303295994736360138283569479816029700024702633707113329529127316229559787940268515062820958471121483223982591013147918211916816373711758790304691793093869854501911384262254882701447430373487029050325122151579404353562316259416450210058466137703946216454704698291618420902061387540736328349064033896272573316911109375273171469420969786710734974772877353275886867214621315550580504038704395554098310881534101462195683430071224601257464141756435498756465935539764589379678347704320191286239422801511536150384987929171814525858592771985979477533255611339701492223585300219558001071686740953765043872626280240340759038324493082431871060716652198254766559822463213723937512465415920156820787460404754364881335756190974457844325352644780696077862602698098153097230812962090372679397486922886039864427459219720607570043187309783258605090833647380246866241740806902450585341619758449927295039218658040254688774444413521236660786555474369546763066451487990468977144994168014740031321926166512696739235580352245955314192853921052266886188195853079047829107413845778755508307701316941764410325479798465399365293500887900574345883917904140999320267978042190199746351763740361502490650955086589510617110337069866674173603373725102619803691937253816126291407797484893268251588494661049897286871969211966105787257059102400174430304957801159537054697238926248767256627963558867682271925897230474762147357176397380668534988046819213629651033866383749839795480824744559799216710424369110386257679896782416019452179571281735981578373103194174444036166811437078229286779319285756175390395515496511408212829856462938765281178214214260484004545284820368590481143724163691515662962704465978586041705240684762981035073839386839813291644201188202786240429713334236091380758183068543093617717597750593115108563873361395764838523673593046135072612498317459600459366733833490487225393509812008333985410604026023021708679186626181884686510998847753347204667667864726733075219621622056579497825960362159701583545871641416506777689926775800140446054509098866634095037930777150736176879419742996659159950023114976699382542088642564568788167912308649408906001667874347723205804388849801310905519899118321219446433626334548966007401305084234629352318114620192697330645799815253404070241497668665196997942549584031881862585010570160063969856844830971514568842997661494219069440619222906254172886770662037454338558109367604566373694168747730081715752867619367810775939313205862262495661954846296835688745869125488170915219770515266848840467827113482925744962401913363791470568543064512051273985842873792478727012822882497330367010442176276085618675221413392277454656109125747345420576597435378412422437236267456847467924597470101212307740085210079756678181685103642782820010169247370767139338958231413158263671645934609508967528847913715060180027535711235646500565418415104273533582045036810231244586010656230030914091498159933227933859038185764194953424561788964813037393978414569374343473809870981204636522074424245780786779514342542836174656707569586461942029292286456954767019936414819379308820992331757326603778105902126234843047260532980846242809552201440792876879227042970341228480560562459856920989820320099451088324439428628108532362446655753135275034930738197412061871393411983444918727341734044354951771103811892836023110597777720618373410873621672559675593533905061968381905828255303217640936092768298496308203791842780292232548076160652616120285342094901092010778746466451541518158061368292109072376615729271352279794239094468201787286751899560210398451976459298294113024031520620376041262074279652341478977706389728899111870736720887989712593308623849265342631858979845283530050565552936044334775345182148441415053707509143043161346213810279256977034226428641224097831812388970041028043797550254692330610330222489329121159313175561688225112936148705051393345055906961554834870048854792446420050833801250848341219802392212089594477397355063291088524942846942443504818575194995042517234381915107269435618296108143226864537359083901352960208191789931571570192577157953538690485918423530828600348550946566921004468557644189883637030812251865368263652443524822587258965939831864836349461550964979864378873394571978574934636163816808596321944921777114440848507673472951695753569594806699697195712888373187544039875736344365421021310369116340633051421366874443127059830698244090714933988236617321694888922935549395657641056478838640677997700048172215628244299641745361426329378403941115575568265137315082850457294841235031053489158996088031810074113134602610043491702997163201638941321037795678332489361837990263426713127318669765904573023882778461438424966184256501557564894049848913084025221765927109177647518353820193100810357238087122079504889335685317247429850077815985749426448816352719044887780594803297276618370501092702376441273023815639189637593564475628239263811967378462738631639887000657615110886730781568978948120573029426588203964428173589495733114037655975966454597354554230809527318441190903987205370991710576743103007822415304896149622030307560229807368456664280079296358747385832380780400894741349785768801707268047689501012050554020865430909382556450576667478648040674314903618981939787341860412983776784736865164237082693921158791533044459924553470860533261437016006966225187794603150074258682644721461515270911147033718633726501719412674211613942248394996726762599839217118094485766591062112172645951017056994710356829508988290893942898745900762615646638399453637960827795813774218155500104931513711026504570802062993557247382631211676920570367729660382089785606178308148809992875192860868401485022532341125246033455894283096089066260823840541680296471579180312806979571304072935019422065518495310825488276769148906286331910884969411492615019503827605974139026461295035900021093514579379331048568339359785541073548801713519060157580526369248300930964711269895435362489674369185900262470103312407548889359315309286242505535219899911869498815654843156561978099187270322722863505927719743905854043798099763768427062372248907009118743817591878626800793477195004614417542867025797797519310866020060636344296240397562189202955733650591441636459740069665471763538323359412615117398564946271538033044018009387526388737282619483211554266156393555103196160918962496398196529384575173439310076528868906557546269597592790035885704186305741914643837349100157159138087325827964268597453906303360554571862093443443573122870651160814044364319967042914249812875028123440559024727778458316413636459997048812219841910972243589819692651178683428068419061040169832122481044435754264001301641060856047546213405117588227317978457636018399464928067079242301223017866356848451935089070228701026992757654551724386513740926649807814694130730495537496405745214539409156382491307429468289220155597300617138305855720906138575023506159176968556597060164045806339171265451434957049698679187222889892613441000754066705727313535182746434324134040890734116105370604132207140697403218121293411426204985773732708846671065609644691528526192522953509547617368120516549491516635623949183807570131037932943323235872657865315475107667819585027175592125207870656812998122446255024719656125135068222426309695915759541620229502134350000372001166551612092333300144611246216285832018061008272589806190882816636858820236836999039894871917455076553528761937436422493727740925224082989386278568639319480142279308593830251338390839351084225303897614935752719346357436516284858882274519462184445002042723632943239465793289986113249203030703677529437924169586113658756573740572828923836106604462110766111808705321462684085969567640472808341721136902571663585204118732260733213692953824288687257287406227149048717745570917069304897085620294632517503393607368069312140424769081710151155255095634118745849045253888770307505844160796495519224257925675986989932712803012525326284252287531031564471593988394777740584948910569243836145587629549432098148905706305364953068492048123962662769661687168207273290605400471199465573983591320084262137541052626158473992399831509464713150765340933726220349171935600802581091945985350788393735526327249743472110465927524679456147523551935996770044370376119732659378730271141509666488700754534538885917568099977891685362530231009170741563760116092976947923233432807553347552799546244644513797775969414675937065920744856841532819050161637249212864016760147522851512427815180861035015993878298437603183406764697515044935319141378880195543351389815851143206365671988008620455854772249154675112301637674676170190080664701673573626452178307947207377240657840191079663821628080862857749976968180536988127341302969656053699485172994922613185927480494392111775599118667709024027712549836654335067085135498484118750511344931996019825036407782830174687012421576575737914578824537540999206970728841811492561512078493599478158318222945811146239849664864860781799112521909720600908788514429396217802587447526854017265204538497086475037209335610147386416657425951265874260534066632866470788674560138027502334469352090599993728665077700097872747299402462112973349010615040809736154606731787511717347579062328436866398972402795223623394913063790849150556167730824855220330494969683199764013295160631695795172893927098326443767843062053868212243584432479230050804583198103098822149099678833549538292280406580361417827546539993183998631586870038522446633267002646916177903546271084841595210070668269358700238324406808372118618428554395731746312273765351899311990709070517219046573653887902620127428235412585132646600661678656794262584315788210970695852747668484060383302505907497511080676154683598326479812456742563606258500143176667395662264979911860629982301215212501985687621254353004000026483393605492180030148137955708022141229414561450669140967493855256522981374217292771428773446901770621188344569146320074062215519360496956833091143339486663361244855414653894872917357169157881596828152955372542269383127303632936826315979901853939560208759356695299866510480629941323995678900332646133841639281081056320963383426245413319818086467715855143055979034902253555448356014515002702894969198758182025194583176079471786584821005326373422601211914745160738164046239299635482426276408713606051129207153392042716171389349424674660136051738967531726318230595619648006938374406937591173281127067166388839151111565142809000249275117867069994861346390407420972797339791375043159775429738286328928319296307763276584694523614635099185576959287599320643702209196023025818097857814209933343467065531874348087948044478143106469064052982585407336196759663994390721860288124670462203158815700264930512549981712599306019380354683145644939732584166829031281142127162764530206336142439513088480240077654776059559311209012758200587431827109901382201794579373424578513075859752843172499711422224575412570965433290717052749876308558040338462120177376699135984659586365807251254141766191086329657611976304255473977605505301835311586546735833545125859330013725642075163466128813719507189948247809036662328075444592842312909922032079176780350921930707664501813640660878820961404404383170546686487262726151706275886946421881939332165010613767331262102901228510980737909893303043425780875992433980235124734617043712630041748968362019593658830653872159426031682033173428059112000982286694979287054286774669119291136448196516445447361485070577154801096866761807974470076065103144097462595657807429470339660936045624862652622370189311992507609641092721105329789845730910861396108803975841232158074465242419663636063620114030386461034367560946865596287903668910557967206992716957540803212072781781765286429301540904515592172851056449759535109805267682331475261481667603783168098163336366056259277485142317015124359401362708236741825198161460181360292546991014606502915159839580435362826142903899795952302637917369970694992087336107973051223816660675142971304902435441576406403206161995634125121612209785403830114829181604876272621747341936011364001093779570673251770539604225492474525401527386132068537979369758126104509479372763119356185910763757774891954817121635479308553953576390354211824391640128408860962042372480527675722154427970200819753481289259254570918737591572119907222143224563665979797677232770979879608528080857185934328059523038739513349012301517660058891419539131387662144802952932426384398642997152496776069119294749023408141827439254132443137006466921013851629523041774269802671219324151644097130732674627893457600763964303609187151667893418320173304992485326991139487261319024654919211414547918520618827108506744604001400489286880125065530159385998318695152810283205226368964270802294656476436188853224592514034502547183553344569289714025080708683730145609417201113115756048182090769116943326618577675026286217082049607541232568118995672847540951529024719891120299528920984283500796044274356671802060140747282435784931323800397329659060102693802560208702771854259680023309195158823628784046650069632589139557475414180456659991658733208092311329703687832466949203943435932516509558405556802965172523212038232359363732995445478119746742974422274163386248773479293892484649764439673955207341235272063603822320339217836485177125731943326667765730708544383946038765787214561504418638613941204533964515670799004382575413158023961645118239645797829631485107865940947327431488506652050112445229095361102309744849775774584679925437391976962443601687570007622186244263782172810671777916083130047445950247671698377496398962609585187909460202422916812831859136446666641121642526288622929323912501444264541268032918863710854353919421280667628345287287903166520725923485216990977731079260158807393279796789753517261976888133082887955776621295458336286657034285875698446212066364356792554287403884625299102137330557689125433190021203415809411792864651119472105898440201242787198874775369442505919901458157986735672384569956320423828477839744295915470782528937850325225898102575535474802650133924195717277971225989886535927637786212158882484713106282735422717075901108570744850528097134934237344938701816777145939447395844399699308223243905518171455590220892502724367507485602715687250973561751324397960988198901693269914647251277915883821709956541722666286232379310199460512356050696989171767678255769702501006221152316137460666594455187497741712272877850112501132826416658099607447468251164857802212706465826773936530801129942373068712101882550572035663384656140764714537208663714113997068552619394705219837407067780127081518345315586061800651761347976060435704234186541275308828304053951340337408386229292898015160715870876718216793989379914875246789021618694755006550658209844393671031919767054225417521394267858024148872508001956615776613985879291983356304879226062036159839120519531897498750535618903748489110526780329152026414083554706836627154037098287493245521480253804505514375157182633285090595084180483937336488663632645940166131669529160171939604967216486941453798804398897339143950635728860991573023078837387149131633098037659864590376674520734274900683445041887168900653722321722475894379374177811964874029042911212977371976339111555868504568925615722175035762058140977964858222103142388677247290611264018089698875219664126710863450549477297094815882331401734757077802077275159720600028981665662422213954791962367009199247640936188149619347599002669616429614093493919668553726670343748470013180135509410072621196043180778258399461276720206212861988607308157481073731545420189930360947144271997310378256328475158373249109046652689841166185016347624921540752148428463722187077179022621118625593717721825211092816339022184224572916635586795675144171006729949695158489686830224145009375319805942732127424950952957823625695864481423368560343380046123960572531691321596526043683149657099506958606819667048174147423465931594319275150607298010053735697168995975509815461573531030073789143606711719416620165550516018534275192383050290387707921595222733457187810705597696689849038380265678882500517810816986772360328658799229165202049216408797657234644135592926212292269937052649444605313899953191572441330509566283717065998472926569734700293861996319790301736577914158469287353846548517182415600204882691169401884837222953465018455587521681159889652277853993876739380737708367515033379805940813410121950704556324848294181109342265956857520987663439306125352616936248256836260411931177808677304327379579646113830619744856548499844805561959280911483148121631511372962732837681394702744342677623588539112891509725971217755141639280188101792859984255435604041879261977006210341217181824454272038355161488883843173001316398081951055500308650581085034105620633110987355044088502179219289054163286640393369526976646929386877826153087746764702507525260000653220725833385122180859886925306170845300670829574374071683732391764624693843331580845907257390962928611452493546716856237557205095036984844518071152197038013932726391293667363928311572571686152699824212656802987092160296437168359691860244598066978076252743160882781386526950584799196951035633414819388451743710619870215439803909298590728577612954348404254981910905940911939873199144455691677525133122396891719913388605555366664461574240328048222906438153066886774110647572573934577437394473882378836058154808115327809139223900090609128631547248557272025774451621654612228922036526107372881260480786751280714967049532461705433687747498067475262934171903243947882044070255315970635028345493119357176671298749448879600832484639797346010389546839570435091756439324659308831237085707308035667760544855093432309799609496554694719697311227507100298677720181793184919852598226762789248594973377128315573361300047076959421976199991015867301992096743627489232582920722949120376074637924942368134239098889211462517832226083419831656386854631201572768898349159021520502066611405537856003347523205071521161071573811354814838826798189259693748456841858164795287397990248350896655717653640387430831272676218535434525297806202317972381944138073980795826213419235934920800737616205672855287916447859392356333222824340581329972947104225613928910151981471466404080320280810154797303895676397293625323277049781759981616816391912244352792842411044907784403484181171116520134210573989520873695492775229364825635430811071715737299373333072757314429029570834493653623353362261243924443830148630627875558439562560193662919906720483836521010795382514871932352804770381234755556746011573384782715972954133416713411283354799990369144809036301191891488999140969780533994086146902269086922345316368324315244950832111194129309692390663579539685843725924353182221521248150131670183418658012688723275559929987071970736992688285991722626961358317742051378876512256382956825619888529623738836624034338000876597474959496613073414634789790742177428375544443082501483063256069224548102123323872422746518030966817138992151917866105507929301146003327189661916417728190590587692776539718256295908850629320956417694991002992449147730727815995537799296594513751172260101034379422501038816328701021341847450980682117720025551859888257445998382267384455429894375883345170800280675822563214191611177702689584475449016325882061743225903013216314001046408752360601813543810311117115042289247456754243456644272339304631314561335448759965916518694833663270928903301300594687091289703336586762669123204573328658488646154284074520041103828561175064407615231065222796846505786681531490060468817366056201395333370098598939327380542548680618291618120030783129154800687489856443242347579116087821656538255230496390718149853437232693170555650140751605527338434829941076840433833975732489238289445580975227292166858205805004859154492657393236715833793659717276738157472800215523398872600320131227579230551229641414826714105410409794716265946382907347433822259024202710266451044966612027265614899126262465045094719509300900007559168295188461930540477354454852015740611091618262941752804793120879852912747220679370614627681224915137130051607167436368027792630203367105750875216910914409744245231496956417564602104581187798944590932034450269872405778507700497299986381676613568425709244434762245965050415481436915734271071314931872022444947156223800667813122538293818555589872051096419522984893362515547783426814589237787454888371231262645202831164760617998297561990385409451578831221226915085252559373074668080036607287493344553215490867148427380219560293379328092260314328286138351692336148017888431176278729752526302926182059452854461172690339809927851202192137387736030007858911320211843233489055134539721206454681618603803236104331707616187865692633421683580803231701590682940549656929800766738676081213464465711800672437986183150827813496093068821427140563217770643814248817090057965104769555619436738474252193682677822645372526712624901910268205011151783162589219178625666418522525028393164157218454444243113909249020859762508421887606589802091286829269082725492001707197666396153794622824515188915083537546535966661413788595803138017810762820839719304818855930183203333903328477543889405210926555339319357354047327032711001784396914769194002148908237341816785961094191723809044398047822176919742230892169590149697727133611457376348078731930680219526134658483503192440141569081806125545023287164820804218425759867999423453533043813653374542072267472464715627097282387766749814210240415574872709536472318578814219177844601716164680193383045583745432992078861709601677608121583117921115211600279927948845770526676397165217526617208906619832541355518236158445715421438034863863499089834954346569795459804873977988838935648742087456798677267263506150709163188070557132034441371820802274804000701449161088551697846004112672455581404921140675408818197105729958823217241199187741220236726449453640154007517695086328875580593736819290015255774384748934256538527180241051909015111340446196382145943664312371407285487048427122069143837385207405520883653199077383291789842195076664350943776208988119327974254525886752049101090860492141326773314459548932975258374538669585160852948818845420082075610485581019059383504417795215509876441401225897387265237811207042036705481234231593595458540228472518670272473578268705631961557749350619251987230860992714547977654024405246632325081179145065673559309196070347889143288699866256717754315650317901801678297516140704990486174704473773658178654143660955136890344839558134389792720184442578666311793573785467675902092224360533928806979435560270326910189430105642247179771875155092186637049751804529603731007023784949899873693314373240306015518343199761960755145809586525862447940646149379624260526291809882972416348947670054416893293476149137292354639916491098221022732439225412584491165013740417692148747089393103039345368680129483828423146235317998063994596929935977720595171631822663604669509549226373002931488785500315355840763645449437818338478289545328769525868560199250910328190058459912740955582418690133925258768790744365280433157289967156512947812417409270551071236814068742298939188642735420379186943784805539690568083329694986682308080685133864156071625354592823231005645315652269278234051523609765972035695518256541484832195725650328781360835419805077642778770675867508200348878848628490109628929013089850647388171551886807546311419817308811481870302392096130987963197083125391891842586776809088295836796040567636332612112068901188146377222346027556150136891265007098390077892656626744501137908989926121305134212950091534426616105608648360169781117819372517328387833611311877340988088244626022729614843703122673564469851085357261776256724889493105529528860379401196717848665447311849994482714403265032810557910295904251687079952450382432600048751584860783558547304597017255639737913316020381336531143636373572682840813387544434091770305325776815380066342670812245999680091853140933689996001894392809615894577491129365425346324469180736351711937446423122228657015919261923918997744709386699252963709312720399495633173836694633092728012195294364699814865024982937917870778173312432538489794628314028022219068498989938547376904251898571280813516798104811571960474138172654689576473877940563481494750869291226283030964991588727613986915221911621612478770383233852876168967555507457849165294751870461239322569319797285645687115246936619344402527540091793820028508820053002816506237369167440842415957895174343954877470117500229375759315033849344385211900559016402913832339637341380260581750029983461074611774210078011924806677071908368057595356678400165367375824318220519310149547226220791614677033982978627814121176864143850168525578771880968295062955383118656632466308229161500474288542543875016044652600003587059258444303052472037837165671036250890666922997302629900623953993646672975484788251323875492308453772435715781200056105477371938712541727052831115134075078720685750779881708825679411657873614428479762261526377312707151390413845103712173063690616971307664734676103956512906719628845419132314573133416363960243366351285031607045549540249320029390674718113386708962840678061684411702957947756596884901916947679351442409320509685265065904302263222041749939956024978144132590120470430947998291942998507179510036787845331155092565467756481828965647793351459235118532156583437552251065999867878742797276369556557745606588110893753218866106005671909630473668286784739820990394698631016962257313156559979082261903009473628782326118268526826460372123872660090891315774022875019507515920771381738813202877670041901113672415089032768261140107282891123402142202924168693812240015934271231202177994346787109388668322122498888919255957189462052424114780676999956155340102238339339689792197752879295031133405570376718438855623245038690336499068573981716035286137227183248911649001245092741294703308950115697520275299623711899980437715540837756957852166095368865386714986070137268062768148360382048546277082064748853794296225746362777300668839294445813547787772347490165808266396199683792091378155654096359832393958224565894593487580730706169251509582151669758753215429263432108539635197300515492866885004292424792084662966620385265621264269960969572640797079909528865481810745140408056836659003518534380707021198973396549174250055036120026841284680063641198153077092549008787687164312045681395610816524478641716939666024318797815045994201643638776092325987150303765439883773132935263601168486870748837922681007035772037696227477507658836652820296621321099172058926427305782015447360557354611372115090178620650988799524283624357404695396454722302086228233803758197869175230826095255947199489970446937864763400857848125034146616035074856519220822753877493114568955085970578778585585126733012121865611940457213153520509080880099297032267143805890314788935806627487717406624594384191333897400043267182626880816595753067718990879900532485292854161822224227770748744079213265564016274910532423090692352878968857817223857722032465438022453588538862457843626606215247821238581089390701388388627793946043094025678994485060202748203313683999127848029070015654292308112500521039285627144183516495104850289409962073755932531467404557562810032364024359943315413207032756613048923515760650561873207897977754458111520056858468640858516002946463856078635751691441081783455104235601051150661379118456749308661165418402956526199355222017489300456431732945404029073892377499064609710291724786232165160572694548650575339693674136835776515311330921814730162420752538416302724044935746516602612324098884846806609830662523932233566630686222959869320898429346065070456636180670800527204984360214341584074602789491777139413188031656505657820646677882585376828825330222739725870022688262220546668809851870975618993147256474644727986109479876879170244773232816088206144551723905910281294010808919670935538036799060720536903773900957743336254164855453599656147750226160406935690279958727643328670182738857786819673245865285196527791734121296535186571489340301841181256697172392158094923856156559642124842864337307502318831580687356443386461950792655881855685837038948512464441228063859912544416875033898619642334241523297320343569870379906646212206381659077771643901486987163012758024368686274408486533068716532496008765936504990159617540784402291039270705568398817891300965729702929621664818162733202297380187607157163931789656691617823976141558476928874573967204231790106213493204351359708695692010482000866402760460587951214817973395162014814018742488080706381952181007991842138829990428616346140524791148780137480688183354256697467202084469139076806562125838058574010794977004723370779653657421437582002321637470921009399731880032883039741023070875817068780679509445194067740806100307965040760327025144535399983841702187212588066638622795396564179607980395945441595963987769585549083361363694928457089214374815273270480545648008381145497148779116330210468223386540204934327461728299525891054820341823050571987576928392937691150960468621650238382701441114433419799572089376928512347253592749156428736043572883547897535211010738732289965893107568234883182086674798168434377655306209525867336027025879192742341480241127988000060733905952332375522597059769492989850827225966712700296501827986228434362563261431058291528490485272061596564353691141982511326898031053790750218105102922400543415259566194422605117365097067608434076065657910558713206843591700423688883766887619868738370898608117031700243922578126498648268417329191080623338140733111595105952437435797885395697660198176525031120438855604037782102100934923597794776720501095422035791881969605118752511086134591723812364932296726516345215478445381634771842660833561138407530949818951515197912017323781746280837853489496533051547784400149991240188724517611422936258266175843704880105354053968823242984165461398773064780838475862558037500035516522411263126316940699852567048275132251228220368522249781969926090784966472268865153709642481483771120350407595034862855435301805311860890398923406749172732590914727432398412504568726208438969915693170677743869964966468723229287821470289647304564910158719181133319970637100974742398855945093684275946344213484813036466815331313027861197322763167509622086995497871391314212268236400324697990791293705629155767037077024763910337731477517738691428367923882942141264682587138234021687924868760502170427037280884508612544264145564734245063766037251139511498163463398812689920132388235362122603183071890916840752495298414876870240397109138561652803024985081481170716129491875640383656406743772696618311775736912739952125704028233652527560092099639596045999312789571034919209111079833331546363561851217898613328831704000855723127621130020173799835352124200480489493627464387648016627781900988590737813369411761211945422630616662007722816802761255766798219561504193378057357457425674083220544081972781587782271341409537264181343486202902749775704015136682955506280315963129267379025382111575632780909154615286553395188241706425536897960686290451799420462626589936999935092040895130265884274422049484020400095234178079470712753519667725192512538272652507312010334427896256836084199175613982674956112491946517169696721432862088233148448486935746778939027987523496416414494682560176225535893593584628435092525778374799547579765107895608548783666368042016341821818920819627300185421947732948768728359810409904857002258678061171687008982008569018251002875486727770477703985835394737774718276679783490680581877184794954537303016111100392488967791324114504645319609102929805970922520477498129665362347197420502015777318633483184216182535545101198996476818350949916534615218248113316492223833021433902679355263289093458965532821005195866676561549452371340958036347633535818549688448597929571163795319158482496619803086360126601365363604075299032367038043778153561017853072742853879929687840039291471798224567766975654368088423433557102723152403599938358829272780480625790676275574483690569077966639939094563790332630387187860099685384063359878209062286267516900890456395746707024503745482080596142494062053206597624440371129300771693168896737031249243362784430083453214366863102696748040820801210590806537654134985124633262671456999513002319343736261778071787388350627204046397697113085456290006124902049873283127561709782546683468777381676007164109678942914216913595805621505948690780035475797977986715802993805901569454981806227701042862819703346518228705816258156301788911221543051498754971706591898512982086300981480744638026467644950693881482075446373744356843336351563969924055189376304988369514254111104643166428494674988935568135781226883495638377512147092912298921414534580224950584093863633792794431832636302914347900102276265371329650933594815427538468746615980092032205428434840386686207387516050219450898699575950004524012145179413141914578188198802972315127593539252971190716252779078489549606402732831849588465805271552352755378712130037041549100067327292572635327648476722373568377655000603402742744700332123164502329588859539743676437259369178627383362065858022611862293042474853362131059496296136300713744009727859675726586961948624248349433740847587900422908512591384776668029912081226629180596969851521260328646107083612995413425353595128383218564997085462221258385484372701431576786941741715285830057960685838426905673711519567267602275043832093182542887861599434704035726091202880047424740133719583992017061454344204781281583672683802406128385691761332860064822826068960176625347956660439805824771731105456119053605589077409464109830174943044451031959485761088253846690055880196006435598452719561813997916267957197780605496691401996035467284153877486787812191164482164579025976043508104550143395884706057947366244547502366473619401287924982218697508242698061213165429639949863131308024711565184164956166497076999922843638667400579964089109075486336918930596697315276065970747106184367686878535816454404961188062306354841758096545586683124354713821727616657992176712738586371755462561968910691038819636084686368978054423807515575707153782105351604049797959396433584809131412839829635674915368361822412827050822899407163756278277217825190871521509270345354253172557850527531679321999517587771990598030128265524971569370696015786765641614967529484398958711854219387239357628075542905937499529147455551048910420537812807463931614745542829386522911863551247362695485972566085842036467434950801521112146997423410313698934127348602149740142797513341369397535748513231853312777326743564955005414006786146928347667329240114769605246686260922655770693725547681349867326015968523894724518059271622272422508011374614382029924787224919261390188269412628864514585650830668577487052672691666997868848032032549289061721631035411161237918311613312953593559764727070397803308799214584388256346425957634374510634232292413141659735019746407379110498853573727705669489850232700082707291696237613560177221597767454943890489667461929232014381421371297324922826233194661846491300409717711012313688231645041556206304821339614074049999574408413652189474099202618029808553659704884126925983739243748374422589066991798418774917381432017906853979321479497950422290396949342287659788385775740175925150909628565959135998096950162091457190405006274146317723534173257455602204759977917955782933134446580891335806573558032948690332966172135508440191069092163495810942685197738918263134146629090806559722857679900936725944513853247933499542886247646667316470560257768630822579345094529703341040661875189337664284390965618832289052037574294991212351170544755878987026480117454079552791614945681908458966765875506691500894772166981810740428589960034371572961951277080338635919119719477040406314123935288756055207372177949540050086762462206000224679054547614468372602166463462260345538509475181570481508596654064736146754536123873773071507193377416598722410403112781605790739582146341802090036452221609988308535391742225051795612676804549737187327650755950660630372673119984855871204570850196532269989369613441264090814233966422965691303445738337699073321386508552135037809596428695871442085227646722069162658567302637613189875526235366778591230355925032846825548059642832710269807629019339592757702531306544084987658993265023322691243273377588547152754323124281160534644951580550130737112299958182904763834196373024490333257669889788861981141726347801737404514314337236999897176065326585413782467284282250898288549262910534027120471137619581784861223693833315987205802113550166832750656050093697966489056037337606047513363111070696126236955714616899225031832404959605889777785074185570640242840272371606177525691237798603869883458878519568941974307042143374309822677264330706212985298337677816517041990560428401387319429277581027702897785874409370404338324170989591998082698589100082320227390308931987201308605003235068995495044133433819569521396813599685603952714881972097307038465623143892167918631439800956790090128631026052107807217143833401426595383043345455856916918111747084860799422469926955458171046173442203734503560785197609658705489602747985507587799560689824521751293281694056529722866193433260004776529070605524695254047145467815051694193251741759649281313016231857147358653296036039214496077574687146835487710872022221270233057645728722278742348726549582877988758298442226539921110237152124965276901564877130252526437951251814467156688647501493749341772082383439848704294261111081968086797744943462362134799364510410359870580563012815333426977315386281815331987784050873357574219168187511342198801680410190989149008705172131947621446730725933867984907745018644446293938964534510460534032604391842276425575949502071691199023873995870780527075658206536761318888371977569633539215590142044243043808745796784300445978156561016170190004073219350762761484282447669656392384827492484715628874036986557569459930039879987359984051936994426680107774451761759536975747129620046335893089016636881717171115802208170940441377231652662035222772927425625780396087250638094636774667784006972874950534263203925109602361379825177144098319296926983428522671777092964404644182360062830418828216718342238273149372547850264072426734004758765863190217665178921680153255698755598562819418993604225621567979188928148362646975407262752224147634171228484766901333040484128786158822419130190584760273022987600692707193923276048146157560037867252652032634524818036187142846404132312574711306145936159297058113624601296912919747743379099706380144635656242990211710510188144925439357457189006157869496636082828434933154455924738597809394661565320147742215674310148425595151798624648408570617302204887978259640395122687041890529310393309578731975733589496090942347868557946017858226168743628262307494350778481329376183868188939039111791710559308149054378517032124776176227239334142820192558796096647116454571059438559749932616893581286170781497523582017944626602361615839460353474555004312578991208225505616630311090597926090995769301311679841312984379116075843130353956705887104032993838895731038938762511918002848843543159594778951837664348751935478811333118053406967029753335207180845546014500612486132527164827711209035290237872525374222984935664740871150620877518099680836183601102287067757276798956788733156434904403321224222536178333172936619804277049545400105732130762253384952790231810233468833450100796837951069703868323253518267039885344377124854833019802400167374283583051792361380349350065704569414976990128208910992641525303550854618549903288293078887151094893580836650832783967262624459935006326196329877833089062526064382015684073671349767631634152839565448904915417166884721144949029036603186190807181010084892790970401874252419734706057243602857974637493553241734966447668196035350720124403296386222424221546446555755873816520023331658070938534368670837162651665039202649007157776185590760581604527205497594136511453091464354573340800246670029422906341690290309993698514980918322269814176251622844877038150926499949722506965751807735186299654902896224226798912255337568486850078177521104214107321956681182941381747678777117656866426285053167949675977949883495032288166693352378424452109702739398360334795753315624761823833603087039587460521672247369730841257968409892650329104210881465128751807726825924463089252064192936452924682937299243007677467666458584399813192861646237981159711279380036869007527685341523628962178056549091377675715451813088873946073355647433942464951810073043908483399455465230084857428012440965493449744324723284054767700152492824369274920027046437759713948002419658958318929550169707552422923034835835136765962613970680409846996811542276798636389012182977907603081539924479030732677321145834446750702676685481711315949338637659132342667268040350327434725884710633280196899468375487674218983223578760234230346621350392534508203844745470685125261487727382962484993119892418044807678393229202015596327367348255850687082061191983007554167342569207686016140822387288590920694327631062924484683049461493304588113925542038228893701029806742917323541717948461593002479410273886181437115417493508879571371613126866720011908422029168306454137900833978686426041525461651071900905854062796275378307976564006660984045881067967298932353323267721824927481080274363615319732033348194893254873082277281161734697860414738764092623418475123465845958671387645392779070647614959903958292175320643097852303024744878638873064019733324949364057834685522045576782897189599443443416277515990767703262451531142393369115486314361701157265653056615543618666280995441262090654563603766800881104201411140623347895206986990415822570167249336507556309614751725311306885361325561543045050210901926360880890488639796709476239462417700100576357137094141721610964996741417264738435572452715061669330998880583942427872222903849818976194770477770835317338715238900165525685539288978608769493953190799423181229697480608764324692327713199822060776672826812657804071747828468374404017774569898074081250537352048046994805366265277838179371913744840680662760916400871896895936927075659808092836306581207933124445435375791509214044993213787969130535120143576636997295764571179219024089947629806813974738975107315813523472330572985440175178419535606843585477003695187430710890200108863762418319780716299686579294720485298666198277909409136453559732869582403377894018186873303843868354756151760993304735237373174463077350285261798740178567404919335220666007146145940732208818613786561610100622699271358698823607107385016760744495212704428761089262826523047090432309419567726410227958429091731770818541911171462692165408418823607890605375303941562083820093754636864463575419990395341763517964482952724928082715604947424190296181499576888666156763005337700927781414551359165734307119634108024989496215186685333168181004847741414499494535985624067813639849954336849419133528627239257459953773715331681846634329245845076027145775920745155621574494018478387540089160913181552150210451932921970944266691395093180733382191872885747242053702310046863736785776273941793327013078539448066040609775148538835603121987519863091835941955743075032502205770143935007380557244792981126910392810361019612032633609974289855162631364872917994723484978819325345729890222568359723734841308765735956798593216682747188143598532469200139278559731135923264235461972727087691345345183021924460291532806387262516748949753812124864876989304932530432025420691582180547696821639175643114646541605083764270445782023983481345021898922826837146797760425663502888294122175156903162065313240789793713782476147188700328656305305973994215974726841711125038438472784955241288252108440151596305177640186824030471679483596025796989304198784246962493475042026899917395963661136828690214720713583889001990929975318314245517629402612729809409906432627291241048848717169914252672674801194264689447246812680850870747718240414604046950567131362581414440583284885697370772151812701886006752006228315657097977252868580884548465650061304161160816541188542856248462978348771038418399059957540762245549037660084337622009542486385266773377519557512548768332337281131492670012449654528014918493754960410396265849507972951362015023654638483609317950256134756201445727567280474776496895027939154856895704815695364175898786153251654257587736288037671880110514694370489718501042297223845830932385791806122076803396026841285217347420251280790005783710804717051540935911965881090002941256567709187431789766311660162376752439414109377368022580228020351928840098963583354313181388459501095700622582766223944622137217270613086113242010296549854505395100640538627624639929390362696121368449087728674401739797820508760996151972646250489125355905077487858889337371661349755077680573087769377477837937382965666107358873081097927059904103152946137834334740604092783951730008808567734198112496165995967797917152714382561902655123097843916649406649095193560330668214530232747737165201826588667680018956797519746385196484054332354596861848128605305094411970069602162696641709536441208444254666275952582591580372118310294505585586507205801615673497506440573137060792355042918313265577430537587524455879687865523534728228994629471474653438524795152280411700028030937602737298174279287637656839180957405179215403053385613243997875099163167005345249181736391514118457837958406174774393906121388020237906907951238983724536106460325304035465176464399581843906982253589265077032823480871252765650043928124480541370254650377724496539408788948262684127034608839963974177870386669180996545154924725564212664449908321152192091244721938155961381269338656409319546035947549847624031001689594257896672002853440404925650212381658351422424737403348067557921202630158032942879517503354626736509434222756789796786554073239316125917274153731708024776922964008726413421565036812191219915092402977787538179094789667941587891782407527417554325121682211728534318539417863980610033249441339451251733471561127878133536328940798470286438410088739431099223836412561232406527385689283672683439435934193619657659725022002119340951170423593926746366173242295654146895485434363350254857487880434427586597725981817621208011022079342254562811347622563939976585778715166573230109468797222407485586400448042007253640664497228454527862452392738376474535193793392496651783221556733092366607762166706848257812281239174461059063788930226434834524019125633945216279249364847263644255991475356373075272947109398751692747472923889361267704932155857754930831997655272862551433546760921665640731757831893856990508196815843143901431476323364974598343193008690646190278800592122799958354005262781224049382637689305365645114366078268360916323977438442898975999499231488392171671552238064984032314301986099215160855806397986493655692564616860207078145814586483976085362542112473804063389824200522379537359907052990696130449105107257778616140685733297757914015014846938935817023816971790842836284175332568995502752177366010414897337154341673295213157193480684840064813188856615297085179972782482387613360789735374631348813139427967039138468990412574459845605724701563061186713883853054728670270838187241363231972566130976415781211543064813614986065244398838593757225628145310050074052556495473491655667144347307448478119617599622530351161783616026260576532670034718485243528926943765895828177220055774160132078140282199075211586392640866249752173558896731619214105034357824834229363041438440513715743530258991115673138486497587031480504229136288529827770976021975505535547021705867347803651383285004756866276006878852140801013582823021037935004649334317629332894310638391417268220243085007489612348114352929184861013179800401632000717500184780724058357007595214002791206397914776500353408300022232490252757724472676137616588694516068304633552796052722672827887847324567414236896915341936127744752481386104992519747822459993875926667289442723821826772638512745662476093183650224170624997809939328144492048935348230284859106337356835366571322580984088582291249460488826285796719336940659689312758779573121035603422074367398581131717822243051034226873872892571387138737736808034031611052618444732510981415694984383552663601420911586117018346661307054960081193237590352189494470592386815453145434416145480428631620175777159318407310249592977271068933239918011666897674611633538722295018045627504113833709780727594680377517460562465385967994148223707228993815259685030279820081566218529548618121223691148977075847182460090106520036889154551747771900601791947452587871334922607274939601955436686218807104497422632413806928212138172113728870738548770928984941704715714211110038998301687707173287246172443116182084538956442885456174368638295451137517086219671056141926759007412396741157036147359357686911924459818102396207931764501508675676701896002666385155872272241978264673422291401150617944947649108947427984449813820040581495938717921204745875413060582921888083473167219535355848110081934301408051072784545297678154417231928581245024556750514459837160033878593681507298580714286062336881506161377837663940590512650827671505737842355252270891023225493906384197737530690245092667510066480326864859346528676085255765495302080941784611144754029094805246339362906771573915774764807696094497234751624688167101703943202559325621905535705707868985407104823536803907241621755934027119605272591302474650688291717956256245711259547465238720523955384994215600582917839954239580592739829387206780383692819184094064383797210569346250367094133341499781365561384208767329442351173201153463595806301648343204846905745233472743903125767465557101139961625933332869114341203727621672059454224525380736693814662456789033586923473586430866493997549295453839056511230077356632200012582202639208459134991734979331183788320125327173838757792340852561239296024710847905155542124617387935446661912930560878899657459021373469676178568541171873652070520900195768859442604936332872576305082053124674711945201099210285676888292374777040843770184619492215073470285084378190431851345070448820188451115268644702382115348136863301316036338528565297134189175609032741536499575752417654230835388643783183742079484927282151993070542570689266659008876813604489977524457980891282443635427464668553457284700821182121050256213003919234207514026287375678428509209327583670441973313062684130632035720284346366824064606806930445223559739417376089457019913002119273260998718054448302972406628258483281257534340351714261274639791249147811099004600385402416456597627772303839908992907125188876601623288901937934472849854792470165232805201640731077337917249956249878213402042755724685694187106866434885605762942811907241523895733939850983608574552183974017490450764796994057560610064344219970602191905866777227181667807875655037185094217722660964018468470921574847738777381128891935117562656878379657264805222654328946371127755472162330205552485577825472829499417807125119317016243035777099666978103992471193945994195877633636043291246486185962771443346576912410623548801558235928048366541533632070596921739784680770438828424873658893315419719916737703496287017172724288145058537527964082672876076340058493669025657011173813635449282455659533847389844644070580102602849114374553353852618167228832354228408889697992275202770004289829857089499909229116056571988415482202424704541460038323072467052228324854529706229375396912892290820464692106551794417672196989897855833311994320373016714932382777779528810810336203543305494494398564871226717108299135659440906789279756006959965416462200815898509688161975907923146694106282303407036662647538797504262787865967286298360333130983687079131869796102935675523090327587533224429159006723480590973510259408256709098669767701783819855951369439913247313245295933768847528382074225707916939379503355847781070581455114322955957900488284150060206833966718275252976502857257135783910453992857618571212368939146066927048511029462674945394044429556512721073972349093197031181623691901706686589169763005676487142432019872891661969486217355349297248890162736480874754556045249960371393503686524588222698395127992509067689481198352735332592346048788925332544195035335991184952618469646177264926716320680946746646978358966071192517018172839284209486809419053591941845142708633285315623789496807665590025796394809427676487274716677252768097947765123291394205107868891574065702333176591016870957064268814459969844229575237666283291771317885364717241881227338920324417021187982958638246403085033712656804872700952233737663954822100059172548484675353929565649781547021056501468530778877518369637501558086683397374278032429279832143319282088237380148333827698533388527290349732649865330723389389330910346909156126913364316817806101783304732591238588518985232888344970577453872676085766687234121688153690175785178679155718724473195042705330228970980521384520675507735874615222016014863185216574209672136933468732986716906436576002869008028851945575556579613570885698145744071585271359936383053705393231960149777274629453157349506129664912570693994951821272946155043604982831801318154553001996219602090182892045940790232737506522236602345929720205628302291734015874387794153324223274706903728825038644771284556516344611386428299652171080758046125770620545128987329081218451924295732437760534053865137095334385024002757583204534929228636334326919198867518883540201539265580908741005641264993981772850147934534503309166569349026864201785531835738058391558710046030304256052543701842381215010515690331640615506511983596943367070785305143607536239153668639439087881453327044858730730029200296848552596666127742957693233753597579584469117232645422413531803647002507803569017459116688250386254707358447228620529769559260524629191154684723512848097118911075833484386325655058210275302558786217866803333130142236006292052030583133853558337253223971078641614915684386275796773977975518044933230259160727930777848500697288289805915715742238353894006571921337362386366083195808680073773133101723658217046479249993248862586294871556849705482136526466771876496063652377982044375116369366885123911887745761492264747433550670748293945177628862551766831371263578528190921036704401274726593532929878878152054126803591304096092731039865361512738949097593994296951484403219841567006448129775454833713023487072917019978665911130852367878937915715238275881504703162744298590500618993188122583626746854234467561614643744664120915137349800854787155068061662716182420413827955625067050076501995658573180788783496527957358568774112674617034334422961338944615439997275724489768323576201555563826701265158720732943205235976975920174458603743732046429948033757667939765204232246483007475145601470702207200766781183641980798889075402583509752112640267018781280877834339848458580253365132205032124549240259193346931512997787079131628631963390214808853994658657499655317454171928728190279918587919504282479445219273618665821186685807365955505647872257750822418824131151078594139883195284992755437454554787846242678713094600629203200999641627321473693002276071732733178224472264643325392235869285972896085361194778146527477670327266951161553231039710037897449585555887230161257106558809915368073045673247570748696858705598113672831478089391572144474275156231358328153919310596440145836801470329022306019389525424517645630717397237037871455538474298329234751013308627237737275168837930139240384922118236601774196764303547576789567804584953902674016374350672985890447486241095395131381928971010616376693613182414892261615867914416198715571556721333411800088206357520786735447889386440724260722749082236919924279042610934921430310916093551616835318739712237727136544688246586023721737156711540387480962476984913887204383965594196650075556958014183557531436837647485977079448971873419357494672710274429837909599595028372876177246630130740369533220109503868975054604463211059318019665043358036417457210226019549408766885149157262146565988260957751226902433010653834706815369025811517510298255583177422797788728333140773882411328977688556908766839875226800141870861518973220506397687806719563486727109835655530920489238438752855441136270755087177295615027113504728991376594794857075144436007135821782470050529285410516949862471995692412362585915979417537336762756107575837522965356082844584298159931013744908848215485003245219443807036173056402325147556972819732022803813348110725548710536680613943259237096314460677624189516259467404141618937021705984883276490508261717621077550394082413940277020876710891348947253857518065379710722909277129222351892389488374388938742940165895738499441267609834702502780159637627428033343427993054503772583767321259005606932025964099187943509930289000686796885001057292346787591179603301283063603597567900330797348352102326796577862302703482727304985530571610119007073554610065818417804781034513678952290437532248870742778408516106958632730284070465239362873527376770351548906189323634989028963197664154109913328869909404194024436009393319475590174714937697314703373174447279743814366603141972789842912811833243483988907342445728749545854916513117643999628444066828646226509559240850941350117648721285474110268153379385067561670108017563323433307059417120591827807904542151272210602104646363868080420048415969684762147773525096656719491083238360610671090391983435770046585534260280522901087764181932802261476705223284552955885544646143728434264719874645742846291330472402205834966835570713239116003364803978371788572970946051076398508463978021297194728200624293870029694833694264886177051396088156742395358549319186333182791237329349451170981003195541601540145848120282612823010595103349656874027838710984634034597529369964856672826783545894868670456448840110031579593115858310671704886425169953773670438614988501836282590359274224067819112443861882746060699636890903446567051413073473769820863353823911146837469222545051054089328598156689869629748211849316812886098566423934967982740539429078291641545767230884935282695938384403355178116994661653594245600787344081527294745476515770046048656586615102690053986465921973597754087050007381145815911875262631457809200461888694327645102831376589344831968328431493742792959396546374389453272985482353126360464674164830315051298136955555879714735606716640372536887250257988269113770882823110200504183405191840797060139512505389557793353008019897564759509037519157704436341098662832045025342109757493090921943623430210488182490678607485106418440922230532934794929847002033651951740627575267954125122190978587667879883016869965755498717096732189749172623012540545750722653335847963245267293990906866908339021863180252798303447766715788271362142404495955232044891859541453180451926772525776420020641858762128206901493375822591561431343767017235826774774771669118098966552489428268128653717458056390266204601053986848377171490625049396287357193042849540360149095063030974338050656328388443253991075530235727838407180702188942741461922546702760195859168565201968964684301787556671994175377417298430230087756663422806763369701668276766969968759179575805400765446094222720270955225683276764380674902770194069273045487867654726854145966700673808269457217770553520151965305992481237931495179584379272478227464689430474498633638220785061366169992075779158690595901507763349448937221864068059789661491431678947193556017224074036585494344715663885425148525400189702319276921691011804231072240395839372854652211892694011427131439073067201953629702419442233204857020698538522652731607742296995421073369644157794776310857877597096680486385683356490811700104205946511857557570244615842033541496692934984786920970169475867770090775604621593728175735996817619932331082933812485768654912189063517260081357043314782638494083985640116428070616706775835588412951613097712378302877162440283076988090995986466766507210007357670101917666976786374966698457004346191673604075280580172339855363325718277355625700042338661381340184674781262447862257543164154343156419721104741761893172953792515322587184923208889533062853718658913327082283587605646347434961771607306939017669476933623850106351420875390016692054026551086887674860489823567447224391492369812065699473577856910715536783392234065712158723122271351701239590089966248326231192997103108538029328548012880039596303931050988336768725812850803637390540865641267455956499305295120450662850128694630142685365950740257176353084557857902680489094950922386641986441484210865321325642884723459158835143045421643660896344769590609261679703775970519683344878387099858580706310683950445373907313858783490638786576632469502884618616891979763871218309015420199293962169112845864739432646016182584235745664483861733135762877296696105614875620833758957847615001474289651333473511245999964439460192454075290506726125777424947100709560515553007573732510527530383550920519803469332497453192602871248056886960585958321587526977932718747145901012735215615448006198505472081318119226601171654117181895858445518704987442805113189030725017947946666041268775523110437538905011900367973238379475086388272004885412313644001831701544022978507995807876961396406326853011059712181713183373492984932102202487671675308513890761131757762032707181792231935323062936748396341651751413084021961657982021215412852537685449774199773622325070022610688156935645576406417155548915052448613781023706044822169418656250140952684533425873671083690495888684894197674327149734615899839950260498118660420954673976248436431068747431374945684761583791414594920359735307905785894707845560767538158506600302637358192301008547358578235165954897395439134267432606017922822585728189077602199413347112497543460920055156160667013104895384905389194214189141485182693738940028439663843055792969019170416719637910508292578551754740162438787009924466256229259930472533898899996499172846655727663530578530646248982212508133181022869825525715703436075474102115655737003255157212970301381450589956993516220918009729062607282613572717057728618825663939451619062531559809820955095279552020747528746176553443571453118818405255947245771221804467005254349267954755215209837454984464266136196699507784714716043754462046203775965680809152896294386929909698839395606519425805702020589189014932383913965913604748467165590804692178093652454948309031555670872185662195028798386817267007961559830075260515752054242770000095456705144578752008980727359828669124825764937887674373113757990928681455979985897595372455908369665169551169136026268257175978217525849124906134528428227343407593621208499090579260517076130089117185955358924001122880283800066223423887750785821564406806219256111647834925941985073149334275557126854001286707855714483382711885024335221474653052444892395117147101057309151747862975880035555872807365734953409996609658002227203951705735996900691238306712754681099256930424028684157794389286567566390599734355789721016594973214943192371815418368326300060069010131991585041811506593953299859315238733358895668748545877934517673181261857524376023538565518177219335862219952996616003808001168161480708575398613026040662037409256617044784497704907265063353421837830255885085877163777948089694368871087187196885229980684643982488715955015663635766738877913225148166603637151191796355926723453584999216248158341359493204798674137679497563463863251563044108922397047142856078583556898945642614448007901315775762993911256155967617086821589835837644666419638829761184381896055092197899190301557848540747879272997741096043339267007268622542508347916021248053090102937693634517315330768945001217757316497134919072066577685259488848614887593734059023673407530457934930696204575052401650748747937818005505760233407834977471472610234034630058189568475215188428805363256259481468699339060456847295651907623944438784509486682548087541551663854275232699496537612574427435921487215071856963621007088491151431355070775893457455248805797907689617273864558935005207200484007629468127954586447777062518474861515689853435726837444048599646573658125052432423875759391381315295534392966501979944916823551963723279537530766563911445319384638996187536858302356669966191774121011763713591856347562606063279779273613257821288011800193557630035110541348781497968685445723440029482169307589867112489389876764720665747096508705226772781299680994363593109119595543158619794705985236598252434187575706899406770205833402935212427313638911549642697381595994638819834571410149698107441594954730455447263427003825987586444946699215807183443761121381049578121219479793674784215725808937809550099708684592853644547907559061048220204942471235449051665174793281183881749841365204537569727767314752390731526715857970252157637008121695730375291362999283573358637450439790273301561628314412396704804973850208898791465542122323291220120884450334447721661974466502528695954424717501592984779615391636583470143414543627464619620418134042785233370638382802447811614602785714224763134567718702685303158974623415918342693000713163552748945971036293239943484938696185603772082985768246785043517078332815095426318770750591515825203455765859475408014106919636607749267581953611004759128481883487903177663300863842506821653305773089780244361143902359681791707171859800018188360162964845138241203716737697086047233877594512770833483442037989461876802858568988941480313388094345244465511070819531204632692945425547475220266787873532733435255978763693241024910493360608190197982419534595856761567954717288393197885709615120999639797327108455373907649844161228342081083142537406741962520566942295883821714562138852859721487532662615041557492393026710905497735700999385325033238053893537685083014259563622574075387471544811060538481936439235463876813175970572672776081091167340675528249334148382405915130628155692344363663580970579287085817702511646468139844002610856087110592626779511844657820977018616931025522488173037032729947229812019605121321515574674591918490594650376281270384797137440446011505604236214713199911123757323359077607089583796597661254718401933969846937951415359420149209340825343730723457980331008448559908946297080652403006976555886550996565886724851131832056091813023255032323792535822679245156917483718781015307031759524923105792409023043865395559292923200276378571795238298708268020461360072043009351949853871844519746849115567565472206085211651246465113220893616317965687783278798698741902027762276848034888384795206118127363318454911361800073236348188236252798783923497657398808630666653461739508802415314098833299522535158381982443547786940392394519096891728365091755812214073086036088200625660267980470582987173152114151154399977659956415459337375142508831797987877596622489014621628160573029871805450587550821516675053889995055818431346350176803870626891107376159865341644444609388280523555323197635581931378864098792532832779586962295588344334905461555457534818288961713625265624348201218268869416582424206751214661945876434135313789932936078720303242006004246859549004222172909533835852372184921170740295038401156139325143347365408165815685054126473745388078155064644340805123574816972141423501766342195412605190670904054974344763548997443919314375428790134146278226405890239608657901013794420771642287386484629119994819555956315259233964540555239529634587011655937769545823168039816712911973067931138110533735442736887951743846997521005335101730129490075019223653693768858986970502381413680475290113495337834226945177541014548541953921314827873917788816755502050791711813607762503047509872386011507372189750222179482134007107847071556661033339026085481665633672508999972673156693252035381630667316682431767209281678756246353333227133111133574246212596149305140918400648189506896502463379561241428216067755357613165537764617644716228733017399960820421668227192743540088743949034455820773069770769133038914495671376337604611147330776797727607921809021471387567438196810115847079647301911753834524779586642442208063677512691893040432844815828283659043938814147851141843971127391461375957378932105991147240095650520119731108727593706953584806851497399167138049048738339367951804360652044072451769486840165552660617415814895938550256091276887147645823766087816612226956454824395801374463207283255495063065363166992153998604726155210404568205674797306372981126828256465505229262715333944124347247753484022532500227969455818415466270162817889474730255180835613250430524120242818168774600764590037283736536624300473217402883826862207258793243236423887279428323555429026367285514951817917568960535924402319975626695517679037639277005306281930889264846081938586008559637375426172461870209008807823906975642452490116802194182027964367062513548111210420140885945754834886112956978969691131787294416155016462698540122627990255921402164290669727127137147009090677565964787532949901019743081317656831383367858004384404616679985922309736668096305476950435956460438806380841514092941615352310740501611803528346240084960080363556903845301607774759650448911723690158793052595787561584606143560252714668273847249662099338276283091140786858383661579480206228737855745448013613964036835983172460397345875792864829355971140321103487545537832391188266941587183768510836996875249968230576769685390981129174670658587271234958868029126216090472794628444411304651899307331639117375199224711918968045068004749228499105058504744710168807691622764597194278540185666508062978335805974261303335068021512085460065400295630072822160659349754484889285822636579686808066858574658489418430781313922840392187280721023436402918971134453910899856314638147369338588792829696560845945472714115770147574981459691113425187324513618767378717559641727170201761928418010034089157822587337530927953732956701763248844928146099477795248276356159727976270045959228500330410202161309158867820847113751575721137570536626992366883460544547242313645058382649515739396260394404927760848698094147666068458000083764624232021236117982916925680979682597860890730464820895414638852648426549074914963927350758881127863715609150520824933738711333146006638406881987461535488971000787807420810736954849597908642366077396051768464467560587537356474953572258937586555676064265270395839697698006934574082140930078231163765233777253636804557444362826364756668198375778952476154809424616944109459841614705172309000220967454727879527309475601623620834085704347618922607693529571670215123082374506500615856473525816184984775367917202747164876533874167043665200230991064778593245030263279221913285978555358341961082436662409883565240888558444537127454924855764105445567581800872822355709580171820036775353371022045998698319755320601052960574703688200032898536274296872220817502586986792390576398386656384014586152402265188488630683536797097334187095244934623844137876460275440951529583818849890128382313175207285731647835993374051046079679363576488344701166568556386436558988812705609298457357368342991248398485359189405092528147302939051903252139380490483044138011462612034771572645423720046872459973585620700378553336093135857512340835411181080918943725693763655293783279505475979291322003458108151621755532061345418164945408753352994979563184911730090780246430613257967492452165247057265970795130103964042943758201839971421992072459455781850101575400071243521598734231818600809884192230904687914992493669498704687204430090324397323256925135724656705148941451062871265993854249993511940155635838647979114791098209772608915955850986731520631136898591599839809640596306050911631506273476036465787942999780104427806243450474426687069903641635801044078033820651826582315200371588023364782465219141483967543450181616858141757251715101796668232184946883103645924589798572016349046664467449904089055606041864481609398365670316524098787463968352709474980761067025585926338241737122967153389739735029415694282931845176160697001650505293907760009944993470759722586932234121545341471603296836840522401102544734412281068375443652282437756223704858982229291224636367197717386355595102568870850318141997726550340311812104839069935715701311762509244146390788856993343767899128263759039512464763311176539660374009886884518568175824542209802084500873731464637567854645777931182852290292641790552173467759504186649626955636812266297773932314063837251404921849317079535268080609813738514472863565011197498752172969479641922174020026244900622543757096301653542531309433534874376711412767275415865211844403255648634434596336530596254295811113321245131777640982255104179488429317336934770705488751247445228092653094996943458340869878948188329195652932431025894160366501365191198338500084982090245666843920648659925011416579750657039638233856689850394561904503697896540763666342109124239633763140299054496363395255942662285099140402709815903791917211156873744510983433621885703280231794966745873422361015952502363006539563104417912177399473087830280749957290106774807819985756552793744961801798582253551519330248379040620324824492143103778089436894102742507992371533246199034479047640726182314982482594522405837418820691437686516208363791512417344038849890509502711969972053479803509783431823881321711566772349727754247519692073749714443593445150650572268285713520910645246027494860789804873879536433953582220683689862733735043651514695574588466624059908103275467784974000020078244520125533005283251027287528841241539156185738760218713669901240923051899272451778486955591652768229599174637799781427635153698783061984000796669400697428715933053640754661933714707917638636145009631750783708497926315137231028162492092039704759738649489930627736190509784552099944103355700197561579088130737556981116743384100901485695961094563046172523718274438277096642974968431544898625950276636830322165493969471044074781939754235018346995768611874631991212342162363325087155166388237505633060922245806444974895567362196895274145601177641974623566331459919504061897900397382412797946419851225168258329012889152469125798181438669022541003589738659446449355053341112875748632884973689385342555484682343662956092725897063129313265534347617097171006738007121063644760861618215499322038585661954697430079992004680628489482578992157598444488056082252192760988330416792177477523933673697338107201090111306580479013253071189150953394249730970917953814533561072568029536166686050779354343445431914061536499021678153507001860494655538320676701351027509864378392641172888647764480336550778536539243635758720983085613590385079457123848531436399816973715462242927912356395783315727038482636932667182249733083773986709247655940098570115230728830137802639836595308229955304726405785777358248968047743817525109226035194842168614093060795178599558695526154477890906962135681513773607370201705912419085604684420008327322746255698314221849336881679065332423507279379373430678103087118343272330046781352344950876415126004189605271685158286058559522680471165870814301303094219986541405172147993088058385301539255833981922515544566637205921781906623492709298482864962201237878571262045181098845846500659400045176203987125001511704011155008894059143195015326449185037957649074001460980419098532427393183608552062236323767583949389877624609942018792536316749777248857887085275083783103852060553111469902579530609880545220709801104422412904754741105994687420724340800960894296815527141201829892464963978146554527725495071197057719046307024185735800217439562967034350551419292478445734388492022697970955338327861317319907757834661954575603708820020184130934579676386662196947552089089732183896296100934611939657640495802547769288465213547705305331047662833187833985252088617486338545901426192379789194720196353373876783065660058283829769687836643234632896691211072566611074628537736388369740411752322480309745273372352702480455251135649312350690309513687640624631603213671404113303844945208866867198528340107300768488462276918505192647840806047517991657320157973321436457466136830669950500961356095411799021287941089933097435213452255044794190539379196028468476511733313949284103270836115355867485616998358812807664780602916323076262842655381473998475445353848783863177439741732097437408821512674329374150716308111415238306201428796165501492556078880636636643243130158638763613917392069587542253174784839650436550789436626636758209239000754590261535202212729253602253600300673815043009407573706418438106644655111531198885573081824458768767193793470577647699371901955023049458052769342096680209553714313768508465876029059072928575514127254780511374891559547785798384404688505091589786796010128816086112559892306106742449675525751299446608632123082490519862625355146616260930706394238036347018656949126846623990452255567995746066824660717088582554505518981741926414454581024262298124432995665341153832305549888346558967726955206597218487779952096416145276825089537726684401818950793117161399163877113445531200508538169974613614635166124950827462398402356354363491369428239307072955857304151223231010164910371150159904745462194202432137401078653890877883213458740891731060048125610788561197923666609061548158477332347433940762611764307809183237178300620842125597928990550081410728098714544286056322499453118479584912236554600645466496508019322701431445610998665268535654655425688507639082960056495201792268396452768903961596546274756209601342581869009058341881838873482198338012148334164696840847006943105786430817046182507922266544545614901224475845273261294054959404656287762163894226719046444105959421475200333897411179282129617800979060456189133208269358265582329366289417007071075039791260959364066117110226535047875543954559754137228753859431414906756345788377489929063472778563695807829679236453494215722119251180057918740334846871723331059936380459779532658768471175187170541804714198219186590570403120525654125783562234733838838120268139968765968192316712196566712057644510836817362148632102588242389015739520667719618140458238378881291610108566288339545575814868349024059616313497894489236957059181843731608568598389707691921421800774779771219534627608719261542325495511262799886849944754541673713531468660678083736158532610750813794365157535914352854003431050654225357699607088969024956441903715851259186814260408943872441784560647220952057848882408966154075821772922761809942187542663923942409277703861974165047179707731755869485901155386500226220884398408100235851278517883951303614682822141107100318590454897071831767751144600277372560003547034510509221840202428259499503828939582368617697569739443306495639076709700121341926378151140328506517736662530764686638903574620924815293950674160163413261923876290294479126703974821053457958871995269660213658991120863640413028203665476646368771290468182956860121936989030784597124314534505832704776158770040109883321081028964265170751715623111750388323659716708723566523176404383309202014151808370424314470882805038175375745011197782209946076436407610951971269371306917286675916722582658654577777568828937558846753118610143964761557638777225410544444712411165436733871434446971124121223287109816019118524447423557022732850577675633356047603067036137966253811892855586435331068261447246751752590997650368736681806124843408089623493828173547398640715277353448571687632786935085829586853442615051211836472409149320579335231627239922845712694712104390904967517020356749410125936359963544349851731278093672997696024181457420528029672855511579764148620442245490772522971646814072149667795697238133188102075272470037346646503822819584492447910028037396519856101763791170934560257490231788523278694397877453821694386328822270722304550824619899729035960260503236952297859729604490454609788574262851584802028951004255666419818893087121586545457219127824536966086488666206831830829542557323429542741040490694555324312948695683779561702131217331423262354034990208306920920059081795073021226246214335277384525614592479692317079380262943681611220258166154931835062049699046165026116181647276134525452151061414262938041068304624856671624843702751189663418417035640567631357935060866516105910271216247691958242654070416855574709744261588823629245697982382378607234260551051981913359078421790358441557444475557361589085025275915433681718548200239755327698807752235720763590216008877447232285767283661946935004310157528618158316270361476978867549553429179402136122650955696269624310591446623607076581400732330016355728989515160176434580371396391517842805693202885488683620238838887844058890883113948843706201822167674548679781199031032843840677820354835917736508440510024644351385196557543028507000187782354894777373565707362430881395798728512601139437980482711427043201749762655267297537621321103574040041199125700244132604463148123209571293902973580083487998748015314143097734196792155233379959063543144815513645785622861074724133808461158408261113287495038705398650077975777830996230398121806587503623064842199570706026581218265593196977084908550894153303908979907598253978873673332328393243394135065351389668274007252621065541198482117044517575677614139178270369134944231325686152069864360223963979529188155038960137445495909601429151139888259108253515589733403762859472229495639034784173849117795386502700200340633921888601796398662720854829202413471268605145667757068857557690713377756286904525248821005709878626716226170297851724670410540291725922676254336210908388129193523873751391646425246407478736787158749643214105401934885887564777478327074438861644130832426496358239982668158626043287622943838735085547122830576464268310837343266960297975583796807721273827924038552051349815015236537839102105734925571091129621881109636664409899660813573887989436290682885069111403037958125354232285329921430326607010769465562522600013535443269247253506928085203729683405676648502848803506764600328287332561375780120734069336714439290951509876377218036625427558481800160621425106989450157733422939810134805432928335629239811606980353016620202866606795529966539275326878049814891525440087524083810580523532803208330048284320461758073617936380854829859678597072038350160924740847265178054231241039391369204591398626911786865157725910662360701207409781834014552880002008687585333911449194343179046587827110882924956214226940072772402924968091720709333540596654528478092749417983782546011853877012617041856676462472594109097603156628129974075718791607921536641276042114011269421841778074099292449083198278239900504500039800845807692388533254918552656197541795942543256808325515548187840115870834625202541967194107567558907556336622701466143238134246035331889762001014647394296738764320964263945163482619717437520127515028802354643093109350420998221315775777406493836318134016590901410551674076485056849905128887132592981269728411430624948884390920600498942813133449686022468422970293837857578730837228068996059920364516169651270521166295284299345558270593072623111952062391190776012441726271303691291654831105024765090355724602818325478000627572840969983302968417878101166445246836006736364014324827544260287758771637833481829263430135750353986457354372907810295044076190734457772561079575534448047321912102981197842896619679423034635315378090494553671294411209649774967732899202750759542629484737455657610369480903237768054375718058312874904430257421577687275860015152286706439263967288970417214817037714834544959037307672882855110731181602414029099644472102649632691328569939143183568364176260246181572967093593461448776111910093854210882228101525451120788279089990200053200753873677897000307027671857564924708914617287228134533252071384122669949933509729611517969078713367957536126455658951546659293904357399024405250466879335256320089666779440081636639622455669012031310295116231797834701845076213259237526325620064570358055204887910925644962336547896240102078208322829574494523408940163207252434721460689002972451997161508466420688014731073539231425381702745526046887970939088523200701997015115835553470185782368314457076587451666866800285547243740350830669802663622537186221735020065024047447067908156004759281685698952981131605948252658667092607387457903186015176914643773678601456582723987222168292025058074004162121901773256858738860192249384498536015872608012089382390849096180761540538111353168470048671497751218115232581218116524406572817520488234350244229152919385151505441699304421360397877724702389792592330324018909910067291581617901886638056692392855987039390944051008281656739349697072156637742492611588568071909774758098614961086480818740197460885890728683203626807932838893429190193543163350798737098501228966164416288449797412330044490647091007334441356327983885189750118096127570389991924236929331157408622635823084422913611760976050165288735371497515319654624407151048935550058953984815738775686599075404818250638462102344515772491858576434366981232017114725199940236124625907836344059944780146550826223069980295151898558946572753334173112704969786603090633588240707323406964849496212656279629049774508592973975055164791431086359433643341614026716176546255626370758731410216456081503910369025289320493542291353522423383322650510560891574898817046444674381552000924600554509227383307571625348219760390811978678673841779421163982719088287652396949666552602668016907972582191887325982779059094242508628458676965566544200304573547352355447446892044264213791344109995554363304204772652612346610457770115668882881579107608409404305683757087366821778433016044499593978515700592685825824602343261473010352364663692953946320879585643377291832631557011801139555107825119774580146958563397383513209724544209090378210118492472405174310978295472498556261050534981405533110560346919036073757863870439916265157988357676365102346064937992093849436415285348714114271981373874961360995224003753775835728653246089375999262896737584044425875908519736883058015657728199758989783991362979555682807462603830314697658025781999297262958684090867291755526422248116204180473977030195660055547256690142424480469819125923872995674031378207363982494309196351900834772291507196231714673617840313721492467660214158362386617766848023728184352668824188140714775277251450836065401425020179677705811052629155714841785428224450913994706798110406616261929317489011923568152176537575452154043757140099738396212734200360838476056473577760943620506007522816898573680490035595373774391048433042290462709403227298327623931678332830660141431970660827122085082427931916970126062193099494795343385847566858441201523653594025033252975214698405933700959320946571813620966359159426879125917082901866052872064883632771414273633644631636484636569077061946331072520204774824179913648570678561686045803312759197119304224768406166659559894168206584729769774513262860028043700415028332204838939175032301946671034866501389640945450839857386330851342495479077293704706769968823752482510128167466623560676654170342999195371601042996336387917514303210196770823862122940834158026133249187218802892238626618277448824477071678444073875800429759498869320083539959295132998823253937952120383007941097969675792407095043702868866238597677243673574010572041017669986658850777856859250287711103360745822353136231600846684318253082675659177205271728116290821250616130207083746969952482111948750886644316406827865077885640647690296974192889117428621268466866063744179110609614303738680572101440338829232044610571532213254893588710476515677733092756245597653965780100693989064647006141066541332271155072227885474907847665966861916706837201221772652192298766521656258070475388374790997949944928360184122827617000183001812705039711442120484095544157649665728066726683495211862863177710365234238631028094590767890386364345342998504730197857395883453705598247527398751169578930874726939133608089826817460416815330212377517041352369507579648681027814054404767361548753974984856014141414643743965667729533057732511489128517189988171052930354227228972075687630375150923050403239289615831445803720626652721617181608261667067071890891742360452024626069220623163991829110943794901571168932363470133033318602132604619401310405684579366429569400743573642638024077386368914211100105633918521105657508741974949435902244893359130214106849136360713468077147302427136731851294468304997101230010716078472901214787126651394705240514619812227677767817986804109118810811908738427524863981590197939685195876382831516933301348491495550297196697951669500281842952324698858560884953293589653003392729399840026736148150240601976993839492056303910183322799826735454758246977176714468199621380079894956796760456349584840505754865130647055157092374215616349113809196220908240147789880601417425944085614418249261749115602335729739238264281756090987024927102113887398899332386865882894882474859923059502208661470989763348356628915421099109504357919171623369886149356601734154896246061828138395210754631340992579569061785759106720319402514153684322858505334639655608483669288107223691914301769348890235041194230811842423461211891941801523849511405095595464067343198930248390257392299061930578976671198611776875041001051898901030697002329698859654931053888121444226066476589114521053075975920143633202182022086128824604272652943255112368683707482877107024400892014575790239907904044951282381130646550172730901559060882585976931553682475817218127996733254279692050262788513437780744224114147295362528563105311069769705410717585393764873987498125445739331070112957917356732445437685182198410914486484176998884714597051885530049523432857274110953749043569670981594771676200831066689813221771309433419088074982132439742821067218706009289356665705965683151765151865014856732753308852753833921499637598174382901128215251038674618883374148128032548118134947853904362527219625849310389612602828128381912206156291939444578717099543633433198224839139834591665190972922524065945160698386902588865432767754810487320008856953764955269467643807854575499810485366278746553045924963922465876717454095011153825080760024492298351173987283221158310502629314878809574576504345497325096918064114663101214088642018841993333350821783478813192449252909298954979347433118676412447992781687817700909422931129691888996383434932109799320957111387935829489313813894046426309165132776005254779226017004414497555727922169907941859206043804451804668330765089235663329217862553991997129410181540135296237979534298803162924703142768462522664979811190655732877976786791757341634996025042244196825693783297623545560465357351186832906602914351477346275420893127279744857847217112654165207775288685068658649224071975182275598728869211102686407961496732927474180554177961586177484681786617208254938630957753998776554076150138010167781089462126897029994498447151688505818391058655414240233276378538812244451282110966175051386393680365985729395454087687030482788700868625924416831590805159625659937530896127036676935500959593198977966913546697658918451733964493525019371476251337011575464384875020405143673213327242193040516987333289519314590708777527192274530129709211493006861837715501866273252923090146003619051019324539230222049252334254889867848703422604989454194089647789576747728696815421085689771868674180482220503044680601691065881780826971434956964429486491339969048924620910430120762688874219652687526174612483668437157141837062025163628454115221228583113835201553421354073301615752163761438476388836698432085390172194454591131151252259925745652199595623436062257146534669474825433233879813403636969405442178564511768881452382177162675383495157200304773969746398675683797359942862957672962405762904441968390090100086747906537588452925885299177943501006528687246298039344872280671968138473284357627423078512469410992121449388402141303859919680608941649025019013782362122115547533999036842731752624573217759695207485707289402959590490955017834904511055342002470730808871138933302038836898812053850075231086184927023190318499564628804907276625997615247047209542345747777020052486716509954244033921717229302082158888715058494446162404360213813300973414177187439180107166302032835984378352143911497721149332041839133115277459296490158354306356687656887646998987766601776288313913088829461660733859682378860285251524333657263714994254055875681746008162371734687528789847149033186511644728735267570676871383639105351402064094452929207586796384384335616105742569213781833404747046425026292722291293878446063583004157026039835917409925374464565639545434956595980970925261880794227639952394456015470757893430195124330626708460324565952901584116686516382663020822857038163421477140240586090167195354359381986998823594392514611618013419718426089594396800427226482715507568739773464671659281853180631014964021489873098582717123200562372383956220143965591512363251358065097778210416120329856471997085148693493626473887588881143771034873742722326555232011436571070418994953070326348204898056149926454217363878054528633593902781564361331253926951519372255285993047377188611719409935465774063586719900614530072889686178499706837873816795542894950036881672640328977805270228351341020308756853290860603256142701785000547665312809068153202251521790930871710467629601207776953696469526577730896357408807261534986371244198938824579128558848392021483044019550260634905227392979428822863212579247874014779058832556710779376616297517877928064493337944911862971083215642829546608527935510125153069713184659241943141514213464447106952156253114355012725464147139656426671635302856411417296685579563674575808497954410939697905315638608196184088246219708628430593112097375990500705756527929879612027549007088834703461937808798266287615874559204320632992077242977975200809109214708712396001203619985847208607895985019073774278153419406753616317534615975805728419476079311845337500675489919965852252671585681593951656808537098574931905640053631510233404634642076371445407108175830450906166141665576781083219124009979223051019488695796798307808429715979035400582914209178422764908553774225559856145591548105270346216197105243508493546805331784556022193079649964829795960018556292697835877093045639211765886564603934270566378369147617107287585581367089300889317373309063007699929737575516789430140256813507267237764099840983396105248128126598239610992372163546421403604074974801083354312474472750773284687806281076997561904598188469552823204841475417095857161577828162038228594145223399942346235369000391303337560171553046516203779808290573108848490188980255601626779736051617543655403356570774516725323066208401111787380435445218556521622868367235639417781099152273252084541398084855717899986482301965585930728467903146996559316266617241886545585146709886469515069355189128911345000668758260135929176897171891336841844640135053999098286732889920417554636752666859234193164780959412867991042310508546050262607757046160718671234162931322629997158248632117211925937204282414720258862349470718034845650500533344162839931116647770327581890947033593033765348075541803740836243591300890526960139107889336057807260785797858908194510961777385213258546295571749790784005281431457234054164611746369639653389480615464718845493672495020328573115290965003742114510177636766161223389209803545675846934681896296016409140237807419141816839432606442751907361120009410690073555668547486735589820225326676188765699661449784380596802794250246668602096147798549706086057186681241560128640887390587949484173366537113441565228641390714769336951994304393716799440784330434822929310791413434419550481828791959294200964613796617146788524631063023287683621228212081337956049512943199892243765289969810650872331030570936654638096537681851350415239276672195961001415351680885929171669676343328320066556446600965379099006517909712674638569982649853220374122919962949910234217012230672208937656958827405015622627148201086957894454585124581416638578415336150598961579416642672788665947300649777386428105459836971180181505774813593631795777007658979367654192737721544891825239988939543617367113134941489145144899241182161022902488753151051534427303714142112567439055130929020425218173952409183603750733446861835188016113717094447416563819053938432047200922581982222427673018316711131619629271588234602452138464106978726952254146467959874174741746797422371465535212263472524276357880231722444754777566696600915024068473250199427736790562028165402867045517634469205218571063379707247766795423806334227204633725699481934812187985908702276097121219677299244544352162414690254883335494776204501558356276549625945133479436873353221438035352501371340002168147704253948266695496530054049313918102453606364520482416384405327678239162085330589324430847929773371501363500345234437469126378584563329402772496692374374382029626884345317287778513226333684865609757253268855367370547774354430057927052416696299867415924697707733336961468360004099756865591827674492564958569226321586816663543005607847291149074758833318690260000891561180989036900595518357393662106270795653275921678411710991299607951856215506064691404192794193400338756308224712991314510466979671536880706813865020345535939203842151601443646177414867712837142539275167113765674323892866444087392924729957383475683865074219106183307426907713499824720642230715569772621977505940257813107205590217356441876168026115547730561778561860596456852595292987937305132658079417610066233825592569109854598008344561240316891970870359091386465200407737439815070642824178804216288274148770521513887875209458015467866399010317878118237603047943424583422232004914457444205315331303446998530772398246053796220719293483474081349099550850008322508175441655608886276196839471569594041244646012167967093216593752956933750903473914404319516827192295425797361308134174152345082723354156274540884908233848044421234244315107465971940936681676019656938303153489310952941757901589786438395687034041439998765552580713347106536154948154853472863305204562010403244841972516453213029169890434456109860090587308990673254503509894690638436501667984541943573568435706502769479447832737166299847126050372183536701008729061829897972316328899562927771956205328220287914028582413332865591623923289214379306550127214970503754727794524728401427089053689454096700981937964001006249236261123610033408566849817702612486049774025058170355805818109607798587171217308667567006405563074770330175735981253024990069702631707374569455587826058487191410244786372565387038887928383836889403949791224209037206656945811858300240732212664391922464159190692350248251842662994021019663824971835426638152422838405895117811228574737882099201528742502594847595058986053913089224055237026381853837603258527359410584483370547265228194010588033985660659274816768245354345112685113545052272537585252924762219098819205058749132702223573198209020114017070249756980953019811922602448341118778399568653318845727763711746266516079013022611233032500008873641936734272885625418050794914846258329140462740324447659491787064484145044721721408821035990820309348247036714182535865881590072313428493678056201538138453072637952496728986259034398128446470102825350396029099794722202413073546845890646741965261623895497179978710749322626315486604084073911159058623977854748121051278993344982403961180815444885180603768910418200903150687382083800206846073375246799811515350988996283271400758947929431462449998254649605761948726083028710213860323733141468206390714549346538503541668266551248078614262129122381057656721806810662725024878444663197080678767880121816819387227111212654704616447107869453149971966893812785438673585989171639806225012523164020091908324928405202466754057844099668530088955760783533359086667438964760822889040269198470944426632468684703086418402460007553884909765761828081623145910848258947748209689421690124875443384928949553629426343573677485893956971537486980569887505559157369643486007275097931987320539795689689815690335606116918064229427109825633430422519956517386434578899737148165462461423721091034459460480222921029792451377061975111173669825997444463938293813624867806688799765598489649180677986863343268286663730352200473529632440074183103548754145614993984265567739167068179215527993619052168667674421270839392105302256911387213906595919477958020175816843732191971314861203497296826750550633304755908119156069450453384922990333754805756055650607193036723228173357579682595325479772291504101581111172791078569216240984933534738957164366202805517487629034898146594164232582950825558796102008438154877303714556505372858169314204091451782804276866408858109641408919327255894803909096450277837885007448705687746188829012855304298901620471607088942312250461119021807288067285039630202090156619857201088535545311194032239385027864996267380995263952440366026675433158060918638143788385987988091209745054239592517181463611819961904412353699961434418951882291469335922526468740825315363440671760543559609883377128052323018743047225155952812009820760864768405524978713721055937929980954100285952015475252575043002563970980554596312993880389802786156057924097682224092996458410306626068427775142905076035548499149919306693174815990399128869369491796974007617116591593791607355641089678847101744278106808146496116590885928319062459657133413071610826894304188699370272654388108051522745683370420447397909865206187386720117582817481457381505915857515635663615009517344747255797796568919503246338090435113110438612179284928371614123574996953554024723002020587515507274516726308191392262648217976686878471636231363059700230573703037573862998380111326365360517701972817765378190865065766216734806110751913821334966972213885450411918981001177822186204665160968678212075887138179943755246556609069310469466890725910902717882846001245682206849509607542881062414051701763950689558134932541370272144192121365870574505969899008422060742167285029961095714815619439625136292253254159950756786926376297342536226993959217154895100974954067567597565231081188674088280569877137683613060374231955783912378978515904447813513605210696097424948355387821769761192061378779365812020845904136626892974753488250771484133775927741551623282778737811449401875347705533460921534507708308670787689831129229141081237940213605806563877149257269125609931620003141432958377338867587261241524383072842259353493597950875545972920351079115077839858939089674171753387906982926830468898501332976943552555879166298058244361301825459191203559012173967023008797732927917859556644154328737785449088299159897206194645693541829478554381200077089331659219745341555386047813107929213939117189341996445234532410584954465186225203407385560936600323865697463272133094390869754927697761715369954132373053231665618243529679908550020740231529454574711808761507152283174381819578232116627545347982123566034583739870820117805507251729901124364663275123199740100013213050577554874943915313693855120679550209975423574127663427275163466293192613099954468319802381848342033585668574810939518554426246269803980897238398761655184888551459282073413932171528753047145326139764205517958499355744802607093429062427905385719686379124357703770819953113986871516684096941989807609855311675415270818042877551571367002326633834420738468543010656000154221687832676621366557163928245170408990545158363006735359432295864848018023641656648685609133234096278004425081893634826234033776075836673801260383606016274536050640476540647507426286539343849899284034475802374366396207000003060626189461871193013448014108703582262230699302342723971966077042758133913603036025313661936825496162614158146472477082993718904907608519531607009297755370521083022294862339816758970756912490457242530533452132362759759425351025064701093811098653037353319370332154878446284460349448480595620181302349258010727031842270931281346848874610714870416315158205972252637755969134217255734300680687862530470714824784586374767350582467617375458388899139144401626441664229816184864947342896884592899158726181660093827093782781946027662007519760534845392705843185189881671072665264465986651103393125336265603217301776274972261087322958303937314036728063279808576329412042911619782825778725587908446504415775132376875313292108720664308719828683606098644945531933141990277405703140039431411875491604848323450014959907454049527969356889313384878274001896916923944810088199566686681625619136974827730834206495041167871671175541261403703020768964009642866202052259319938772395744999523067868652485413923443947637309707784125102214081100859044056089935009811844424903952368464949856965607454168718436414356244475659880677675057780737386251505068891658618842906225387982963879963161899967602690301268878877728173183872814024091772385000514476063765097124549527314413110781672067562281837376752548304328360257310197575871132951389484910579996419544014744127900799572722679428573349528962042084980657630883115675911683416785416392940591124504116811818532070177698147892237536014399563406653229684244373102694315323742201586291946400309389833093685373596071081303703693720110469406316789344920612652315280895002853590177500803624020376366013203954092238577107712158189705668843262649954000847113765997217555011803089237205266223149782876909006938416504839832402848399633184101547266753399477823150731609526066748534586906228875380124308771721768153807908240075917486016962965474316974525229290551119557521887831977313767817353936545230479890756156576748084537265155046810595613750412187628460004480615538441625973774098502929827776416507790947153841175547531004944542564034523331655959166513109118614082850510044144137403415069056330977873974923167095540338625856932001107153268861409911652843311931071134801964428578145589114134371048163007540135767904551171675518910698168249077208809688721255861770807539691098372125900622473906829690465989969064556216283570154209030271994810294263114934617176397084829765552954025616393223040511504085014256676718355065912698098600401700252078092097362651992348337666281085550881901630557994770086059622663827901132135497390754714527388993826053553481965108717119729460414431411782622561623159313944939045409377182781728012416220555942979355727931315390447132801850315563255838792459007455760536724618312370772261566449840584315571386792870106699950438433212426866759582499108831885148762066008866551287661986097235920199368759130863681974780188870074384050424967587380581566719040692937278363272071610647236007236343248649994054118994208678445409529591447622846520791649795029722685599878720950155899392750288486277332059684350836174799860026303336161135749646680535874398030245304556698251212721718770127361544027090218988141152045822481655211522856356822373074193255688972877141423697193986902419083478384982414744069242962934685179256714376080689543300790967712489626199889470117455868520768515129103472824191658418516062778811152141782764736084454526162755344192550684989581832608527757137621368668166781379237055267609980056910163176503477030633074728989966893314458375773400075883066470016725889135993005516600589828404281723269007843814900006601377780942130594979346214991267985669771292827838098346444747255970199351206628530718404171420981374317444892800375350464784142110526408624288460401610402079847287297766047954088375098802735134374394881039631326391776964217352207914925302696813103382374164401613025169619019538918111158545524307948518803473030429767499486422671046068908107868479265038486751597350413971526813151982440536631881458798778291145113720854364427351444657692570903566621611550620639067594023095149586098917099638793947761149248440131899243627040242748090784645163092714818019823553237734904546433718239280876068464606361333679478242393810205146253282031293716779886052069077972918460765971538208780105346530060090778846602869628899597309628499230277316192163758796159922625019791670488104886170887622424703043977471349266697292326846121533798950376831095174705906825748175341083140327602851636553609828446522123672366429567054690197613695561541550864574912173847023814552096671376901386257589508586085006087457787436656732447206326658388307436685747032173834600212871814167303600089971043551108379443057219921588619435136120281788670392981249542842268323039149505640254989691246066901569328983562417894026895860260652680279521668788714269054679760566390568529427705941734897026207737939362845245139586292591789373141753505891007917046619992441564282198104723551384594276551557397215175206510673215327423716664056430937517647018462199625531985063305204463612466022959352000013056777827784440705892190890028986830989014280876245141111137632871438948708885939612357778138125419562069467538968098109404133268204772250910364550268649965305731926761452623000000566050361398401400728727671208888644209869031899712355191675670371600277232344206102925986115675527127360108457908665027554113709868138269656594068346840820535252969564766236983234321492645661823885473242253582841976191248215120214481760786151897728992120558558953382532606311118861304263458271029984309845150478216110705586837184561897281245598369585179913689786716790771270686753005100740596411712221120150690860435275796715485002142126153498098383768748750424908982588815186661938196768117475075304462347546519453815179429801681737121566343887535253904843751014291259779033318850424685484266261408306850479543172722538752064195506058633962012748252729462748159536915508499402886455938346268370633939248959895931901394357955655078748884046000359659695737807209914599418148754694483287612999730086230977819569399398326699986657447067164505328522758748743551508581673909700882876124323589001302716672357887731532062457996756251513959906868820273755144605091973410562632984686882742737915032500066728622587278143008620747760180964533945447440950265632938912188885390125701357984068682785027200440193499309026072716462326816062986797789523247696272508704183223505073915718931968871496856811101001992134427830918389081598133965479790581621592618398088949900198467176979450963891662637699296385395970122287345697335229514201647182837856333904387228424291353931827711884391661371329528872534938071285263653250213511749825721204455782771224963292078182680968745938455078171320424477342616323992362300097095222973590587969096084327605697045841747982326760735142000536002849243557556210171495765724749109487779021872954094673450340382331578063666031439258834433143573888009527303345598423982873454282424264706701698554965985356846177270620493422862701939272800241043017594911816560177419704459084236696478123227338766752784524902168969502018256035792358542531555287316457570561929915473614844543255427455498168095479467388020526103622618607899169440692149284986092754378044246825530185816890519237755603566030522731726394285219002011020055051980471812648093794561572938844085508686379454170814369983087129727133541978402140324365620038509293182637315675651078720585240635367246332836564927181806189561655574969056269968273116277755345127918578840106054380496196697735952776241557242484119899786399171330844173359187176145757451411200069791219254958997364985502981756832121499893842661038198744286105245243747097388916015099350980813290688676944592410194786220176126968876509319271746071885451764155340097891340574398442555350244701611020374758660580263334907278018696241452452186283311582103926872287386459053423554964141818513766005792839364005437443910804305018290315030623573305107292694690877640053973819205692613305581536543392476032033519813698383308739256460522732412718260613126997143110893716174337978617609719546575130058616542146556060866480018813360412643403015702275427385394576034634944380492222541694301621933922100164109578560104304361040514876348256545335477663081366382033877750240096578219377650732101965997217125206431308911970615565414335190714459899112773797400154381256076538504906164763539808782750385762249346981845209777392961411584321710619383153152132580612422810543994702135698818293504909421410653989225946863901818796630183395914712436900463037327346436173542861553412344066086191955204254098771607742218500918346652186788458496010097949080536090436361985231046238561388078178857586300798589357889944071462084749816582277189420918035992807729095309509587374353906931624157642403426802475790592431288475052450003790176889150646915569288144440594084148748133820771834522472734466954707220030130823935304385994968945599441287581173806367562921761162636290523844063655259447190784635911537480234530101296257710086818342671882807585335749222661120703418069640893101691231556280829027650852946929886254041120129642482208182748186055212472318984168734746612987606703451723160977057555778550879486357682999874736559585393800000103040258609760177567544151722622185006627794046841180436379002180126103033519641635228921215729833343174936648538638989228278993934485058475715248010429779699643807638356848737697909562248265310368470138211688638119839229834579142504376964548071648595691250725358118797824855161725429556360156188278483840967845389245290197738711723936057465205610894696825888472474751335538705144261462303361272976747048086488687874278060951207577711952222559244123083901478805681158468960499336555473732248303069807380877201434550050929866835782959409122152967985038519458506785111920730459871727349977698000399485083705829416345707575542892386407111371449759432773143547989357863878226229393160645281301517256138009912742040459204883018887243192393641066864966626190348159619155444848408754177420388012797974281570268103317313650751347699906553320564058427668712374889832461372982975774805011341799610201923145355395945352411219233968207341451058942638179249897501030380812992269440519701523818805684495850609720645730904398108707239546174469287882440309531568553141928669156082108757642037620662548828226171149304134633068920925111055551717206479189135823824993136449095712637076159569873439895242630322749375838817270967652073461451281251457846055332329651084807885475239803095481465776629521062207301770679811516236349025947658721520780811897429972028570681174087018872794918224041171006371105701296898487574421297180284205857145155040100548810688088419664621592970750314939807461861678763026567601606198279590105325057457660885173619899622808662112303664457340193517380522948421046166024347121738307601713610433374522698370147030222606889247531484089312895932963444302734735622318415385237521646637119664586477691136445055788913423436170781263536965480929483145502592026708402159992694383318786533812353260552338754253915926742339190530442246236940695571647549652656753695106211393676579772579804345880393441577705150919941924818722166545477592448928172163107446199225994358574474016571002950534459182689171923257112527491854237500468675229628986464064084815909862976159688735283424707078992453724241164819149902351983993672976005826129035704640171170601602163092360958450771340242598659885777245399796767936950861972242853711084327033869351707611189353803906788098605190031516342373051559998815726353588825287267766009784997392756999966475873961955475120060728027812800879011727301688610392549017038123849298359995971156457291883444688235266026223356218581633683286773553820427431783543706672295478193822886243468209091364560259487089211861133136069250348874135629266460847136234540378330114091381227144230658971824209758907670620737601929356090952665750042175942761585667188050464108868582032917115142089157257511284536240172110102352493357351964659431053101192120526902811512113650713096797227745828195749913361659882572220478031134543440351209543852766092654730225637354209009826182265185637764618853606432133424042442190218169621117792881380971762078219785615661180902123863531128972347749348903448960907831650219117724460369931689990081231179830416422946434047130663567349874684125172549843016357703415846541793231654061000753351193050688607861894870446445422574039810768318272757146773283348723087619684180335843656227526252961904680966622054734506277902369463419591639530524554299840023480725286857747236677509526807589261563154727575952035150018681914857719617743438268906175418369830132446868504755661543821672319022829082074211510214899095129055678350579107999508338866758085949349395608249155638336534794017172670398731205265398323342119840752027350230513713602639240144797261830787251898633688957271339018564070514340291380126084615126620652095118094574296463645459234870221447068568124824712792674874592521141028312262459105733925377445857892592911585872171652557690539009667333051264187204919050914416415901850678530162596499787731342044970175041707370601686014231193938994794767288229796300751453636803572352868001799618417330374474632063956376215950965527937621675174857661670059365337733265285674136152350996313793583804511499757044378066581246758254270970636611507209381403992606728488006913475093595289758909102197175935810357189992726974007982975173663743517300057561760126965714112626449446277441962989831973181492796087543147996636661879083807755751864134324743167109683809438560326155328066402122763158715275077866711869870433938443635342141204518901563037951518185293587872413669638878608986507843799099583101977172798071565346348915645206069632750609410835816094899524907741081009458187431649522240772504458118490624499999647082530347883611025272721786946533501431960444805481078602364737247106579914605988292679899251529067620985843144304391321093924742879696546548387975865032689801468498629483835771953205022896715681541997357152876322799948181830769706021756561762004925617877612499416286157698721949926021403412006980083108968153927745185222964034147180901403076123075260113111317482826557660558277921391019682377133294811224865428714048272823662885992488930817668950324774820147309948581573386083055747405911744918542628020702752842875856098190450293718885618645988545002033417698919595816168904507261994126482228478248659593628740015251507222216879145154577778379402852239038635421110237574451909712029681144197837468365708782849293004126355111259269105029354436554883339676598991657809620043908899628046890566138120038164590807742996564747909617845975582107374772177508792853757782133476865587253229439603076557857291978504761370378873221604586859430828347671470608696339820358557257661250347870769941644017139692150490628149781039814796799208932372559076435969960261430534579135144005713041492801329426883868349181788846824662669293768132372352932857399252635647490695388225629403414449283055877592378314265512547050278876565743229760802149611175566975189984437279168127254170774101235210266912648512073618570169805003645470596281383524940513119122803745993822139103000332723269066314977895002927700925698590148752385999558202136286374489450017889105170324946201843160297942766641126701093994525215300780161975014446330040367625154034843119313435534560559119685525960763169274343260399457279526687877371675863554764645335715518410208364106471999472781939878453265175528392488858163203188254412606980608148778991061804131582787967253911787540104432385516019402999352407999054102583550292125186116241071794658885702175499076298151996315360546964109965257493581216773583812321985155661856209266000994821787061825875314217120007191471638183716559195732500720923984067782789738973476635691107433443882592676935828399662487181047228755678650928928398517687694469084675979792755876996887854581886454205803302174571762034964410942581504401793765308284573591482198266078650356283444301634941350972975611611642493079283963035985076542631422291871788857260663700887422181669991438764530243241857607430671480872473503218452284804344521703426868870879611119230844056521457361951260734552279082257800798317870474858069475757028366096632860387230488384779074022167713536109374925995503768481418961781148293767327210431031473835265036466903819279770393189951463910634042937375815370371762267070914269555357096907976331852280742210214299702251913250331154288330189164870562155812653071147843549528207084219615874097933254251906637512700529461920058220656179291255597777864413484908466678423428689969265591314641267883688580502933324446761034246420302704629031345777652799590403609552803495447722870588547751361643608213929882158200296252503121124973146157524153278279372624183881146237678867033785010602110948919374901106882709697950902716918165855346750051227585154966587389399488574040783226119873082979596240909798476588231899756976706819170710467625991076987676649045977180199927672333542393262759599837555230087691269058609526868629096069977308590442124048787196770099924608219678430524759833631248963097633955128469288376212790444526673628694059881514457822605390101383066832660919223251719941009471178153780340158285046749617823887569704078131119149516944448530740300512547707065788028132244449778001474603349209852431216587095122614894094670453579022362197905514955662152581179109204706279007542834256377353467040966334650605018125970320099584273265797569938393137241169299139626708197055756020400157722083429382823240434834236355733987336248500619932393079098317112785069409327871634358899877313446269904089760060997068457870401203977555705650407743467900254119002665626975631147841457848555635112656868025127984667379021191920336423578947422854087146306437330131780089627518577583883417724857554382993824278952373809600097505015877422220713154567173352369235659535035635124407847089371116556072336164732652854069307028421240970463454091204891888677018135174908458801926354901537932956036359053537376493555054815161425643654188682301730313013361354666853430074836082555962592221640018910052621991925646005811051347390640086465302683714857529839690303382670428821272898330608739041092382530178085195363552255358638877815684422783311765973125984535937426787498601734845129856049325068125589699819356004201126331850116377311325984179344009505450118533394324428101617550293278037100364949130347556251517250920317222217946601010140835827322402255834696358237368323269153819120630542574943590963800888810223401217974939728871779780830170854350794980620844406725216115344233638935096011277579634340267652566973691894522607817510691619027034235857765092798704077927931910458173806377247248827939767186612722311782874498093301959763458028685439804568939523786497074374566630069874336670913179104646061779452869194250065844348244917654269515844628404923131501298134402401454021001496834720238625380049873722907535744486835531229062021012946707185923440904852022384310829262090934817529261229447164475415584461564702537788124866338664323977720289002953487986840659775110359773031038064581973926314191925695840527379573105370449211235109133163637642551471860655433075327433487754366938986811654632551515302402997680055535282168999553748077046784463297427091512898363802278019493855465334265802887962486749578996653102770444463017758339714599395341219904617528705020685597358662962823102415375305734182888466174086924790794397452282629204291528746831674196538538458735221172093728069700910657043828680749526563415010546116699819487920556222898176242736684942457196496254224100983428633500904425400182253601129730558963130217944066637861143835592724491639825046699408280015440919587102346557946618381325386880997140668612888490946941756440304166066315468645936840800442801383926787937639637408414178084304782343344326352161940450841825876119669441489275329745282558813552863659529494865992134220419116641270473329795987239980114915323690338097313099430139362061362937802841713060233686689286227075959554605758694082755713469172349898012839326401366878443496871335932100363725816620118669618919594863733568710630551737378861007825220613962421898428125107516285553971408771485480999643347934937654258181172166332438364764077175747382771853119903013277636556617661258379245414697716174961791548093686728002230898421144807140906724085019610194710156589117423977635121386494225278096774290013273253609750249434828083819227377063745690005466762729666583706878194111038857974818365989132630023217099191303019051026577101469513716629987997205273681466833734696617106423079914274187882076625020005321168328424633082288541300018178227858828729916022332815025060341544541107039418877141600359227368271295018357679140101772509369259729148408221648377836738925702275434676903134165741051417362638925151268389873437337409161939496389997989234771695375185430163132540183171197413293848689725151310520681767508611155100775587359233497421733721775878075225935482642960256607135519591438778924139294494621245476213166277341623843397862991703167627586728436699834188429325803326437978456645482852959697275436745025909874260057938240856041541544012831728054124443125058318562919240438201370230740700165221214532099349291206351022637193306389663825690328894736840395919068443120059324253969714824757488546337046130165040920101097178758271060950123093115703057549097105826051652007555764422464177542518294753692646760742118956572075109989290763220943989223980780469764697466972285361948650323081287011652528777453014595777560215201608963243454202112325405346556654146626498554445693082351129200795639458114162096219883663154478274134223476747475029765020677877459656423095117374150102685041162810897641739526550426148929760885016129438471186403384372262591091203262783766758472209670934262504099855611253888216377110121131249784936252796783883198234078503652433880996297002746240548202718003220134949556934770886864312050118128714843844479327363698985193171355592136949676642398609350367791787027011069039835051197905573905818018850252974196014898274025441776437268489069913358568968403183603497578418309381121176459364022885156585196576290815813304772427697275491719417550135000745264034882593505625329838776048348348582444273499460493661815293868548529294269501101329501164590766122940453217333351006487113679409320007550493610297030663865083495182788405277617770574106364249068140952533809874832784494044939903271153008803993525243254691763555252866189506040817797905699276408135677785205798372351048693337367164843553749582013684175681271538442621967693371959218787320457248079796374379717090670120074311154621271728755162944856789765354997349703563244106734989792143430949257166817491864550381203265412638563278385924969415262771161967181481421599616209463186065454833444883918196949877540653990921194869150302304556716701315953640548273097001143177858645836387787613545120407040954876769536213625616788656565929431662682548064398118425281858574398573625190099319281847745700979286143677874541654177638570314247330724990115234150639005414386735720752089288113379091384898163899758286122346163899307353669275893728322489023108280264648935606735749579011269092668772585396163988251660339090344752633692761764819863065543747456685558619896030990941201325040137975518105042541121992782990365005489715723995854331961226139399335714252087099744536189876480314094700172550699236205699889686586903086335927471916936297246653234128429505559611076348946764365463013712687389104049366175229271932254869948950702734844533104209190363172158381575363510650003045101910861063865376457558795475736375217182655841910920141443292460629242786124370493191299117722320243270048082567788956240515216189656006840808874005558686931713042755106482685643791002907470348935039955673846760493437376940714047727370545293947448499143493771156758626389480417798121156254498081988956619359214030771102242519367674406526149101896276352949527978735044232593227141957933074646599737466608992977929267950010558821604286828238512781705210275839008661199857403664213745220663810869738343701221876499979042755681060452444806124478007718559922113803961342093410285238197077412021279583726769828215376709641470412408411873858499055618475317363426622673606125946774499909419218447565678580942950254393160974987800435402857374458301910037051223271511272213301837442667220269120310550412961410991397673564212000182387184409223682986433313045782532757475203130427396410492327074306136446602383843745656130764163844270237160538902665113221861034304374417067750451897024693174854498480353925622502203786910606994969492602338431346005951922931467578165159706079824120234938346472447263769125385840656907855450753389234452718730444364790625909211914115255200318446213126439958390063807847941333770112161073851595799626786562976366347135646614080223169690489929423425191460386552632835909511160360027846006328167776314471272607309971613153598902781866977324204720589576011211116120520709282987281028932356146562748237334774125529927434351080442846256517738343178624404351058669911528958785564440918313956562242891525207201090396884164058799993753970435104763221016904225725667293933176612189533277050246085215733000512321758486653693980613941051213740276989731105451097948655399803880523630219783475217642312155153508141376317647390036515831251164714237880078281484993993797694692777610918233105986872945346545151352542440747568919389252669229955260036725293432692964638499211717794388942886723233054594129112268169867276874202967768369825503586550496257376459120605407849736124653705902311341501485770543914884582350094958011170228526768910259173113569303802586574031435372086412728016334020284243863285514067462869181195089313497301394358711785760717492649464434245996449420205417069326253185247481982736659594878330748546611657867334246016203500292566145790815676933902533683116974992743713126086587127738607916676275344856279574802114927266693172875789091252589206768656305060288110235740068697226061146158020670367953528915586447345951398382891259593431634065113387873542241021541204832060001207545288116269014005634046319062153259859560679639185781368809572903920277523060433189221710024798056640538868170726039502728067387675293770280352541165577007812271018783858355404616438085597445008742132322728319996489154322012310445693339309627445765645611709211913741002457732806217441037528949187438347763476302172642461237634860170107449707803818879012269038834993751824723325393953714454177167198753627563510361126567488141982965490328758078271331398235569953388134249727586244435530813499919196029406276539153973284087851721270585752321780490559827760253060964135233068794318942937709374907372755903006368648652183192961799493955740705704399350442143318967957837094258072416254849735294239187961468054862397258428005807985038524318960366178597298487706788547588539710882864934379023465438975881246001387047846296530987777154700434400762408686220967383736444634253830670999346590104689302224760020388179977312060442676807539123192073753308289013663421649599327003567133155837196915173136697899695140986344228670771165062561356580751884767587294302731610356832936746788891110119567894822616198573362796719651707289064831380747763997001562956454343950682971249169640319083872147314072542079167566027735003635475279145215411532158575873259313100078032165341514280390966901948017141488618974756002974902616038754171823141802941398644149463031279520141462207991125198102871354073777695450822610590508924511802336823432493825417195779710454150065535847354664792558317055701040995880226382662605108303188494751733442636016685770192152025663418746974058382693267620783958475705959410203314099321905892035381084357325190175539315868064804583870297990205425309091707039992714469340100939737564706561343402598639662346448887061457628182149808148896619854250865496518046479040081174388605052603608902794166359596792368228572466326499666280974148842370655452170465157384603174208118683945692346489288820383431204619740893454301200980318288703272755337341656550416204253186682584796883087728623403104334578668228388912567550961732714652542267799795893843619585078403211766991700675402759413852358609820879804164145450186269954678250503450286557001686777851269691116396633898025105380529556266740664012254233026648335500277308973822519900049165527789412020926022106732618111886009093971309533543365959162548269602900386305258655960305456854872766680081675966794528979521979209196051125676086305391467107678960521146638233326264457556733557201544028205489684031780488105663653656321902032225211626869012605781825263544637925275251395995384623133849099581027526738208484240929980582602610600557380219558322044208184837708314996438199125945273224733382307478686120697788200152951235084630176848659011026263741001629076471610488225591810343450144402392453456409396572812100283635135812499252567833058253934603700508843695734389344353380181708212161933805254658440501045264563115558976388122528191772096761750877455968911588434018204249291259361962388213831042438248486327732041452245533459233978241056868718949815982033045544673755517009622497634455004861615260151662367992146376964837818654256818060841901920492982622335360709734416721413269909507298249110700479206102465085220622997524241820895677811163960443747839221148322872433984442068309283544263289772083595554651044641751649917642439673491004429055772390313157639623029441271956402815627749516441877901971067738390560451026960865198652024303753850228883717790855599613529325678895946505857373141246254729710268087440318948418393647817842160170080773879169766216527794795290583956768273836661341488748026555910629945103794551164541806863475351401005889234570878240132826299945593278455394878533973424453066992739379949379408186437488997924235723144845606714590596792993452546338761252994829666771022008393163026614276927446702231007073380804994421354466279221103330663024993744644083824884206409773114021037028753436971304787817009920821224318275037474174969275551222695271216349616464208377987128299237254371968766699182446896748705439919603374899816433842762871222952311328370566401479481269012139444451349781485131182779860513327879657259450860788257912290580998656596802904623333850960641912930497956201689626912450894333474479406563788324089339845237767488719627091972592240551481271726896678460607666564971585915658671065243720392341075304281972395440837405594187134664135219465734133793403240084090115584495788032282758342913303848562693035021882676955145556235069889544305225714526803600178398534831302712534259697455763148534481908064118751544936081145028150242815478140743679008608858945135942544887096614573002434290502089317385338940366854239957880113713775584496788833841519438858969366209362703935135679546450530217945532456010733863158301784717286495329672367463925898963670538064098572419517608261569033596044999888464419709942496709582642253925213152309346586256838415480245222617304765559994571724707009015636688597039436891463895389701702031512428846511034805564065294518732220083870635555521672930805023179969856476815940250453634337786983064799124226934764336085170209765037725682077243606370025444456021518571863796584717266769999615688258008785954734186597612957725296548688871285464326035384609008698601986831293617295897596673287082614207238851296780802433509026613124235488587938512167911457993682853742843765528690594537901218885536252116547945595339835187881839228301281965273011928486567610495642713133768247283399700981760874469840396672955352503173797374223127181055821543222241966726603261318080411754908028702418037315484207186312385450140864089618791416262096669246916159207086699885306059167489746555235509029929345431763810455827435459066568664396222595257821066694005436897277170631400953337472205181638338806253540040521025647988924480803538698054349615802385338383777332598729326877442108243217703259937965815252047401236173112543834389376125138243803248764399650598170719483307446414425747179322234609513351157499842874213189590304730319372188954819393728104589440797231325915192975709081594712405986634104476229968247716800813157708337022127453699479908382317817098848760362633216575779355963697238847646179320862042010352985930940317655756803076534268110334311952878989766811059752912221285539174945769757875079356920055965331910611844871673182527629356330776363276920159684770197773580077457992447561854304740722345327839252023026370032530425099094019690736051253722021961734649775761125349073030204580489682074500287670970005853431124534916425983451001355001736210800011409093117608218403845942078895185280914355700207652175331530603880212079509739916415128901813544232468830478949817571632259156396822027018801251189336818636702673739268640276636915069086815150480626925327846040746177680172153968015190198236482038214311736699096207918029180356979398783966603409582938934907976651274257816112438789336173000178131077406621918993254620230473691356708561219168782042632235172182469907133998532618619867456807995255853607063113238524284852979538153574726766201591186530350956122714402806689147564682988060133050978301887753134403173679393768359159832427162767624298586310047302610243636646553083984740754451632118875246376454748354106266264878410628539990355129078432307594077937117884330543596012482855129496096766488875834041280742922297851048483287746755295579225682413858602798964377551258757992401276127544341855939294957745813585572544531223147143208808155719267524576952409996049184883590003488712427447433637360495942288589532261225454678322271484872948701582953202769260353868337854251119423978753440152928970401049554229500478134505761225273224813671622872199750554363393621830270555494662758322164241563361968957013936976241268894201591655632706491313610341185922132165844338213445100194577731874864965119119568496954804394990171756460497332409592220032613874580900767850300557041560989310396960065965300553746733467463786308678217561179113612298857780415699191014855322168881296749344461719418161509995426998855824875827757119174614469306916668501142089739992285527954310711006590584093386660593281362799548743376135583977145449415757284261014342119090557199431987082020490372492890129483784534550424255142775003513953468632911222324114415588018870034122152512615636391446620892200148546229051892330197084570929238170693383070332560856891107234549813191832521810310990918193045111628839903288033691794852521594966162602004358209022987658514616496451572832543827524709217240924044752707641667054841781882724205094449188565282613673217433646079638256086690869396219133245256708344877986785358777928249829247929395721863820167869557182741400657889038693169698002962108525260197064037826040084178624565752457565880626457665966093261292965489407747090882224845446707378713987525541653957806966161131499733996496594067668831613041421871628571250213061663089697468777401842093630180514561007298940953188644426700294088853856221250400708635897931963645932818036233458275343228531719233727967306393034095329852057704466391470890499344149391119677578924772118907782849534887408597601960533177541609679177971693811492969995515909518564614484921724781802768514213749174698675740371785804482823470522582592322121319074287773307160813928163842949701070434957602485584337844308570914545986875615111191007031478693053866928533382635783724630245352969881154261078448705187483400583910606818215921752373720190510486684637176571115175003311396809801788056655651980640835204567334832266777847404882909183719747438974697619267271742048959654103393074613190345201266976750551049133317976577263862663156806708965741643857566033924586913618549476001971648447199597919711350481700184244895567693027794581042308355583250149997209821714454642898665350957538271623846029752906672608219775430087970754053177080447419999268324991611262571798455634466865221077050951603623812489225022127603785466656922085276446604897564565411753096864373986267478317747452848358675612449769362151987673574707937820291621003998582558777192098175135900957951424361302395138524408594553254842828781784825626127222721018895084789035580211325354676019337396585882730576480977379687310411830738013327735080739162306838542235511214830041908695527381220230915932505757069678819456407938045346521346274750435422011660048745935815580005209932792847571192608829639584964447886941586991240148728467909601534829402643968367534960104701078796358724210643281656696089229768084309767808840461324767008283716542908154473050216036335116643097248974215208363649355487539551889617591302739274468480418194460094182427565767345210180639446658728326358227584312049441934994147996664472237701708633499319369543020836991853595591286096489588990216735053985609336619511073700259922861147134907455538791314956109994912753614565638534807827310171071232372547215279233472523407253090288165645692379923969618859334978735556872343020874635168815364820541585223307918671409610243964819248134663259046254763767715287642556399145146156873988122544681708735782332382515010329495189319731039110801487413144221678512739181311037654609352313469670402542955632026429879327497550819028290636328668995249807352874477540424337178238095140048696857609196672410110077580576341517837257723174920246495368194466640553644362559650144525572468410765219210599941079885496387004933098254139984545389806716772690812886247506517083147309073636952301357760989115794270084028618958384386068953249841415214240735285199969176225215222030330711667996929415629530627371099537563881060707754895867707819274449661231638194577222173948156572270428900854171287638220630653993315133897596268505356246909593583771169833766824270456775494933003678637849404231843679675562130532645127612976281478650221014260147373651034210264857050669439863352058733081204963655326613547760453355771656757055448421696341131967073025893035572142102914294575487835722180398861493933212573783524782927608109826896067572681591916231021765263864082877535375009345010877421988743350388771785682191371982323940703464622411689440134743530415502833146954775346311434614562372078860553027818511548181241185854242341821311446142351033966298301542406504189434907378637420195629753199548645918528527325668918821974505781184842819377249185709143004149943635804250945959417618372654211518554366744307019684520562460378919337860201311754149047883270590371498313100315698390321328299937219029625136691889462333391208568511636291373588101523762326047861055250026381764404221971164636700358809440608690023752802898678133181443037612079498346675010433019416609435332987304023652631000031547781697550193937926056055206216433260123263867864663024378606358717860393581281570873345386295536843414468937883547399857148595825608960630979347038445597640589474441021607632043043119988066177427435139728443317901003147608423471524245472095064344455175359059478638442381506127447297514466519567049781882370122876491528746353867554144318456592838226739572267973153323967205217540587319412505687679820885750604662522832935584975501165958625793714949050605783191455768575822470554514224180179381909640880373608913709753454253217560657688469856852106030095795804083315565720378625304394731861655826420600919161861507677079909493818830592412607545086637832173773396781814805522176172662246846670545017489146642386259746471014818929432504810294754075450259036530098705711692571678325615927868819740972016467559971187797227141520980519339957776508377437363052647870843110217653278006686034897090721252682451138616341906433659627042064996703645193814552209421096361595837211771175302485947905969347746740885788603195065844074938268664576462331888464479579953780388829358571502667490538783352319457851094814710807917419193574649657866691804049365240372185059523563238077469736453380862087420478084761398434374861772314402752856190193090927792141119835870434759329135104506907795306010420908866361246961430421529517657554549046572230294591924575328017838261892029895409429711783210695746104868315680043194429140188553447008489564401409085752566587451299013323498030851675255077755192770721950546182530237426521490272528229736636358470605025242501371931346207138926806967981920143422204444352458872524356222507706637558577321868550476670527612931587499207346269504209371102061919457293293095745155269859141695087071135821336740688338995927507585181527165751597766405697340788718984233185320426100533522807850627206584916382478898694049606248370326049081105956892905474664289535138983858254613662696802254807064367602656000320731511739322495951788398822758178704979559016361958891592741367791272235595556844380617159237163196117031858659089968462588640205570778758528689632556644787166334797350371091746981521598071086991528378705558045929978298900453002090763347913820923898885116093800967886555753813256173300239452347923124142171681280749093191513365372452619585947141837733119822837598783578901125943607152341125222182125133543220770444005763729408781672433352061714759857141827093286163624543547191556116767176725660685987261044450842709944702676623118423598399989556492923690787824455002439348883023372983345065214689827224306260807171970485435691294293564278328649561712543777251731607879496213121428629709338745212384512916539353794932890908630579053857413822008143564101616000089152324535586900562853320320398313964820796350486635520169409793545701300050699088343620909997644018021245844474077468882405284228674358022216407081418614918772323411388992352423962263798342773554916656540531296332259990601825975374021379037131927111939638523919024558205516147407551981326038573733732306836002092977140907445838882181783095262268242129857261247424331073804330945933019845798202044408817651196346739360985974596180726447614067635999296707076095710244096150050150431023227998795643349639608172795684339339238504292783901769897517622290835080443050173336128887207998076235422067868374940253143934921810304103682871240593038140872800056280698599377653684520923655502683334877102438743272833467308399319657959957601524720671751932280667920043441928990153352706383970572540371591603874899654766751477367481018907844329167312993172749642628253734612127509728258082159090362131652176407490712595416457707014478368585161489881189336937773085008932286564743078059837990947088465012853178339215757722184444293829957515596054419765472980842960886256230317509321208488198810650823449128839770627208975581961391508658535262446153876028153258923848369057963741840750531523981817078213525557522543546612966701457074418264032209021954831366243554476946629718935853435705668824736428497879704876218238768261751173821716120898083246223358985164621073470138963573914340586263452967037066692591351203289082272596694636097257407943153727809291208719089171222853783047704272824013611107721792527972772354867383851405013798081499670061672850988767813448305035152982474117720857553415787473774435142388198914977779123269583401044249515477694373718141182540477354611492834288816082412387080989930500912211052827856533901749335650525920335737948649485089467604854037327973301038502761507678146873776045545122515085805294359502945258088161355600160396455704048050666607794377593123295221135231178490094314129996753719978060321789036980199937930363440538265191814222476061890132328474401301698188907523265832168674603363621810009358478396841252127137026819218258761867839344053078028791879361513750367677447941471728537623412599210967020423951923625172965236918144338961275814035040686498599459758664527898903606214177636582543979550339638803428461968946867746720989745856023362853706732148340313068713797722359549236250491400325190148279264855016575879223747692469042510536815033862011052857184855887227068715708505360385099119347550674003957907920029810874157414773230431541339942272448365477555538103876763567398469815144318218574015845646974113403243330205990043140780201458372356114227257734574048936250318046375591611292773796688978639259065833911161114651674661343413098932601983219510650128227869864983503120751089232479170808778293097135710397459750145677615583533365161920748954196257131913182906135621376212274779049357768080781368042855044534012575182213621231730053727968715761549148753011533302872930047725597500600169520635425700500665517538428639945693665009463841791668553863373853111287335466673134084672332220048790537298422756493479967754124651989093772940211910817876442491251108915026755951140213078660812628199775698201842069331269386176959237436103224578417722402364858414093266073407267756309954158939638370025392109548156972147519419222848309699135483114659596504974401787695935860834028197507184840357965760128507787705603242135790780838182173778829444501418573020382328743232079423979368240243377480935878292024069503071596916387181522398797468789205360098654956548530108665040313373992208820828602176509480278952912133314693810126677071940169266060929588193007956914400482861429811790676526633672724652471388183636906069555542629902942774937840094737984765358270020636191150017865598885794222718889494971117759476273238830707023024750017815475207397935692597299553937440134966552365232199211177504919233114507706797438891679091708022396350052622927053057169746170921557866174698139199567468900468607457306625366706802278069740243077169457884076962900926555008539328891785182768055199850226299050664080883011186722296365272751466326048243646928060711318055763110405878113424433470310394194365941006770746275342678241582818493883828819647433637321662548890819474192820974428557106185007828371521951233148140073941763430918218980576014729819443521276421838587369360280195472160996788215549867939135008020471543023210219936899070051763723700875002104303157132081851520146248711082307644300674332291881264530322967516019753610212536219924807436512401856576675607141201880209982821182390360797264120792562790536008092674267902778633139034651273699979233942913239691982432723142405957841558638710042515697710853036885762256225376555097990011525963353762079226241484066512086558699394816374684514779342106218929852752495225669007819751522196081877502743972297767115790908638536671945082521355541832945943272694177040471889680817458636067730464818316950539504125360217600567554800443929701160804614852431736308516421181805410844869952447157073767727804821670053963545285450737429218901087262821025870420541067155318716715077469033190571923660925147621293337207624702302962514998957956276147356325975579321506399597455889583589403206808592582746877830343587662745052496603209848444801745884010807731300031018362917476404175203744941501447524090328999968903321568320947582888958970756325349000539779957283756561723087928504054437734155237068476383692926289074704254304301686203819214293905824548739709159872631526629996431879703148112210652297316220267613064355247210085051584082973761367931687783543196135905356112924257810703712813307261591273644478462229411422779744789431797032655989327406994560315738075830615238764320951622137390002648035618734786854325073566069914368389094532630225211589881716400863317465480401380549007189254516756416649255075215498514860479765132380894351058226985038613572701721823278705379178394181190251660219596172964632140931074773786170916944104677098913163186679538496514210460428562350581912062889334960403896762045851103269544086404070317727994870983024733286852413021309088004959182145677335555005096811729501107858746697200352606947675997929803506811741842039344402455947465917085494481803136368539396292808775660140574291064639183534002806523190650943458063958764902250632567505526294798022127454788813593538321335593862199614266351806125376299745411040166407750186148966798905615239925572646135508168735057994808895514335367486574182899631558687146036588600566820999575062935526058153919015481849582279173976230753174575974072393338526253400407236401035804667031137649409446472319159666152758305622751201850651376601096321082578857210333983890574908937165979215496055575497709972608075265823438353445225929373235947104277634333851433297696314755393249718118549755885846304921375718641530005398204322439639231575633351972614408458217409170484879085703216193040947880562528724104429234427643279100145848584628438046604858290093867402042033466397417168748079593936929603486344651981538072191567506815548215416610327917224482512714733950287318680140241628382242817750697317364725483263590020228187820186674027096139960449470000772190523744064095140061411466935471459610305758791841777622454437964932216362556327259340339871940763918444698941432198341381244437772080521788762607643900212959008901056551854884358568823774819946640781245836840710761574519089662520999340826684771672673012177547172162383093253521617661754011162476494713347353332117341653179321287938816342829499007413197501113205152391965620043569594082219939582123598395989771038035917828623054758083697534722490918112235773522613217666765824345913899390835046842370983445219222499565652541576138811838817056534788946642132296991333828922804986800061509328362736349423218659895307323705066231252285589867490805596132990824711863030943193661036906806172248512113085982277536895318758685903837570446940154709174104540921105857884378550212055745388579166108482451407279558517122575938171513092093481865874349336618230271778184062532034596466372958575493463064586211432694233172576715550770342844514268449256734351449838502862856584233482676775519784577185197661360934254144850048366213416731372687862175115004174720673951720693571246919446457489331768473280087918912909305251903781207927593668348543194158045909422914669788653079958075816080004649381840661223076226479962457777846549523576611556836058757225816583105861058341632771251048508919501617987319591471366789523925456332015294483136554056534179720003763222653690585021023633358559150825246847892632436155972889623537076156453396776861103406264721378796701461366345140614204000024528853253262155306585544876818401919700366438650785052974572995527188139641220583381815545345145372797067230619790910963312316211393696614000954597804032487003535574708805372994725147789550448269816443383392039339805876292937971157659759846544757781838015480049398588656154303330564689927335649545386908584405448780923407276154966518159054599934324688464720069428401900959990179018921063895937907726162581457184247522848258093375313274425229906141755808301052928040331353838315287832928207196692738290900417719259168551368129035476790529600638665182513158957927004282823429461174554945555796124707560017526159134879917304565403171914970776970810098163370859975970148701829883036515491896837392940938293061392238543439641548189506273749138957914258329388890038378295789068398591700744120050933128643682912071898143479267484933962367725114667351537329213075571044379472544116691168984772943373096396365540047191785399373459860203090480883413533381639940792455467597207793870967351159227563475358033176009475377372185822559042654497465431346415640300809355508424536494272127465638249766089893879373680520815128587678353976726235701368570994205310833460488049077873701254462697515729030790558593191332508233746111670697040868984103221501933300779788988440534112811163370471190166010551465089312183513826075841061650641690945674567228837862372967324338815123384013734534569934956570518758345389125761378272822907287145238420479309841695181411857583972140076027764311632980235771559051381551534657534977347446699672903898731158050118496763533665183543541761559780449220379674995667262971852740854176693553948966542658662904739596379565681546431326942377150454150579544802195770480512270230782070350171457480265826532728345939012720267102554775862483122337523915360325128392894349096903265565849780288140178395049946901321188960798207116539134348275328605985505541511897883504894020293899705271518819758628914006162036458883840387892163042917866180622728266314741004434487444550707403256801806088751676212463623792502252124909877729813051767789286259173058667384177961134922560107347192186166499399189345963882400605851707992021074886356453693534708037746784114256368255249964262982063669847010021155494427708363735565833832985935601954329162422798789791104726222459412570541256834642335288644856038669909926784329155144279579820087575940704204085892662511265591287663902343378454263781365239914532703537615981828548801585291202966258763861082707780726038282879591811556760087936552187930293087820744944324094490702218576806467063798354846371753964608574925428990423480284794255768049923386172580317889610586428962292055965190971024243109018508974955362487751616643227823014755334144431068932626618341687752448855787878300539387362855481609435816157331458341996287305702998248383044114593265330069690543959539127161198524102905497219976500228543850000370626903349441488125517747586860125180558778307784299766889926451312369621719440443935093422705961208723722510955560069236197333616485976059480640299369472117313756816503390386529772336909769805746811328377954728986594607792165199802356493464382989084740787603815455156893782348481750814334763764200799809162992174154124411164391346429805514705908764865604751289796630507908592087786515045056414502568449821431639350907294366984690066676295789098388630620518423332113839716183955616656373041808150303333106153277686324029471098661867392758557569348376743995165500329191615664004588201372256969759706846424887533572920648875621747272278839879108199871365464323943156513341516004154396222762344231139976085652238854022808679673884347193574952713901646632886333191800006606493045333158636663614883915762730046666621698112837843245729145714535670556000113841416249727691080654351762853865428597121209928802250495362773613482849320229717501816982465184246584596827725046271861425421915428008517542452005059229108994557913857206198798614327680220883761046259295700736451125882611474492768542726262455404786823835202078479238703516071218476720157608463667407541587503061094294255221499168183612927537224123347080961093266282514349076977601173705495690509996971999304695877646446366846023752009437179590443459021290071388269072739195236453265021413673492080718814340520241697122416234354139095261686777933450966655603605358215615868179708215233092880526345039970781906004387731560017614385980347503111826623998982957586396053674160471253589949108696473759680094358965580391279970463787714084020803740359674727076934761076151103418527578517577761098887679800166681300631819222904454083986276899123030956983153674365286211148732465777609328784317127210259230938311938297800662801898100744238467807137256258635623324020057541394739770388999072783840541092100097893222872816184750589267971497897381123560147994262533259232500273803068830277591124190921480538625479054833168286726254093092360690588101025491855646409230139174937752193093781647832650407955013399751294920022014389544680602088454132968209684759461403590426432425168306303110927043126984199303127112858401368737976635202020793727077636843764439943378792641972994917970387886508869009233249189946404772779730120979599971618734437153786890740291122285071509871170552825997053614790381920306142859164350960366846637214109977900240480289052830544100197050629645681027038272934294210898965043991913670989936660848318642560162249781246555215560163983085977474245247161105293422983142728833597713038583512265668456786576634807998884680513212084764904123673294088090821444367843741013796541748433663196137479924982040573663795972889810885162544462196231795423022245670291129085973187916103573640153452393519459512996516173346576487494976951292579122632341934829690363251084136291264196180043821110340649769487283649167042102845101442086465248127889501719492267091208735900441828037563756334612360211985412347151741277830757433931746977461828035164505610488059413452049322953620559003232976064253506917512287895096847457298556329203343189112309274010095592669789354465867231663624386948818506285052338723739392678056244574906670271809079302704206094107236012819592574441338789750123274319675823147657370396146687683398679883920466185535232070450303970512960696747169910452219816006079269745837205622920865306579641592844333495103370627202503278539255848769590117874633035853013756391480740686274263733390317631263042101509467033132225988253552646841817923911534741897577855498103375386655463990750156083524228941677859235594560985609435771024333145624161444065075362479060899326609597773171227132718149205252512730177897667761259123587943681622960457549972242379763854791353368194746755935200710071806594497274366112450664777212310015284517659595506890086321874259621729892558109694021495845042566232801729421639037624037599417656588789719618188611136854799099316172731897632243627373708375484506877768381122129646696761539600238301874476923112392924884714736206957508043425854875265055895119939026959732103391315911702901477528772376445868469599297390946311339524174978655346634602223916187043354738259311915809579056920267558070110589260290613880709835566939328976355077045243686844422610480324352238448690475414764231181951676651881728143112628859685363272588772019599058153121106200730294999481921592895762210405397544874094296518818323804873938084735803112759023892173311579684124097516331147160249394533883174776946079493193103386233145246101782228272471417944398967930730823892810013645899415319750328270346516023426592307336379614737447283472812781230422827701090517920251918553056310587058709841486011519540972594838314927867867509684283979776358787144820917127116510447226394510102835749785952540762443325695338666787678816368712733435419158507113497049952489706577516253018919720633269220788482663965554321914842882423683462533105093965624657633141774382429124270987039058558466419857496985454498716701752494602562621634243171626568313470992487124179040252712600946839107585161452494051120422233688126539915218598097034237719077948477245959554222313746965595206180010861847020920330117441333840657423831118182831766848599458716207144993744499329620952643171913129320317118397775053271104923985888213588597160128972601115487160307991738831145333388577410326898081438551835284424404623584405297399454680572281603508100366578628435653630822778102314860837764250962681159008842164544970389685843755534695884085194567336552419337010226640180833059933366269853748402282356733611342113878518489317853545695080351478764956123543936603264025561035513393512249086654526291223969575302910201762311636355276112318537748369811285769839986644784362117654159354645860821218709098466742931074989980384649009078887322136671291729197339586806402957688011229643784916444831261678785489301569831986744925683483958916789885216527450076271820790765780091281403707998234834730149487010417409058292387698578602052926337255265211093952452777719605568787480615140490294604448364457154004871381339631571941682079271015840459582494393452161557619933090666264160247711962676552651849984380238911545988979417425688911984322507949420478574020166809231618867071514106441877275486778230519396191303081036279883679059626292554187415056431567794450605354106573219693013447083937024572373541822791690361213202043161798695188941840039620927792422749651538493356284797467342734597817206312174066312903271849797470533813814896352532326626161993976200855883975630678069694180574056747614053430819488525051644198678224082694659032841679144663815809818418944557199155922236372550639647961947053041441520252448239818794473623138532525009555197812591673248226066612898802688899371761316900059397179816186891597379971089928345143672907982740637279491270626341344234212612563364967650647448209727707184922644568848438785061404211845526328122517336850134821654161985160200062244765831473203516190074360417826766099632073665298588855905956128393382235143992922713733778917148021295706317759619395698048933843974822735937570315627556837485711008338180535206644117048980715895817652075783306841556799901800148781434971153874164777528161286757754397675358623210017904726075282645198027621123432367803525719932743612535410118160854609009330934703393338155166040200333079156735976310141703406485613084065874662958442962312862342850053999826117085440301736420547925571802682386789523220396337551532584605945342411173082528489111547159389928870987797085688812892364944413970116741282740017752873296968734440751067642467783663775311267893393448912402133145246124406229753430113394323659107631276130971025923526480298484116786586821261961632572394119715307150538967020886675492183109885047929582071717029846246273030163288595476660013753925413015181673403190298268466408538664374500195934695070348549420061576099672373563196179467860986504351035231129902093670687257167533676333609930793371824641240930390001583692317814631755728017761464342762995285954052273435046752709556861789340211099237162213695710173711477844319817148542657789283200023182392061345970527131515149307462933754468331446862937776077933997035031370932534938642696540927980738051807290317465918378892044669904818003037603054534768635096304999267000944347081526909353075097100024852636879086516867212218371053328945218745847222385202753085725143288614838750269476755182157445929176983940289604062699521854251362397162862599767654531803243283586547391297495781050282749846481674010296905389567909826314425654337351914873294193734719956963482500577711524589136632949071716133799102382514665288315870544951181651203048569119829446052053057230071320233484486391036883468382419685872942266942575973549496150857536853288779791107888551024609833137528623038486920890398569579516011622405030254488219142526680937315559637155101169869989556917522644812506636197666916014265874271863652106054720042373235859951720267025342528698223847781903033772201570753891396817444464494899696566839522193872624168950156833855982369058179367331196840702932049136438891211744434990908405365304796041596664183927806486317502046621249298912126329237640793478994344145091805327657689829225620706948045875267683481564771511562116638052294237999735689327981466083191820735182307991607069887447509980853273625542123559500603679697983304637363665343937325990813320575368396076753144604610162762537713103234521156523313971603366280930747306681504667380774826043990203968316927196158851197677324119122785597772575902065712193190029233491399841578203809438987064739139255896228627239888412210075433579876192819165722885792616357216517040414854181732803192231443783328489343992843495458571448624544313859215364759303793624762891962158763451483324136951071142611256326728045229261702452530468860139189659664612306615840378257016781465001080621077841429701515204197388767643643571262147167385032402112737369389091919507217919197335251509099125624895241836352466320597028457884703126715298912514292702001296745898220103233277025285446382273101356700168296927728853331672181982854875891144729725803803797442589368326235929569170276031791145943049614697564252533407933919409440621010878198912527533628096362299433066688626366704347340631818949284695991207832055427968573282107420497977008592925726788726176914495287147739373281206273662109700065868419176159364928346401114660934460676283003060687160090208586980786593367913446020940814078729897958084377332952432533294033080339910687951513928276851348506705698854137000815375124360273624264162719900502756568176975903417342120407502987038195546746620020756060406455236371527769328201745169446250300826771703973815647656153621834966689432729181375450905457133130921354188775362631173526130954224054655757820912149582200508503607738660733426147443740112330387684027764058662957023444516708526871632413160374583561549271796288867195896604611871901632163106395603965787621349858836124669422455660979210151077883623887598703031437723890057460987817331390073795973183500463870745689555096799295235271256103717143967427385182668823078928789844406995859965519993442372669039838231487721759358532147610165958293218495300624414061303906594796332301164931197796946511724443196363691303438012255175302116270228821087358664730896315498070247054402580102757707393682248172199417571932310393475728144539343575451962553812898906818321609574795758809434055786744607524118491608959350296305616883493688531696537409855461164085081437340767734338631567216318055760877129631712940827858012476731229819159674398763237958901914969331276032846066669103503524151295035040489695991103111654239321910634083960954161905031867562059744619169800227013672639812369417185873301326060072266029643920930234920314229803482729063826933733920868270717105414300977347850475144938234348634229611977017598164467597470278050739826137336452554878518766888696054671895832758880815326496214011536401032291234675758300620619920481625371799118656728179288144939766315115575197062384439647636967849036640644793033770748653474805327338210696601206658167712858853041256943572802584805152203157948465633495111590957545768448565844843958274036866644433951124354734463430315840200903063469093825698484142858825593535166041383245027555860774859295022845844338948251451956735673260563821585449799630081120251777060139081990218849698426966251990613377600254328741675724573453032826770161059599562644742638130021985848906823981819007384888923739048166402166645931317171065342055660859239636975896455423010039918490708311906911485877883669354327293221737265149642801815754419897966117380327484409019103149702394282771803412183539616057737490529749363897140167044255108728168671049801879485501767924073252701619859449911802512673969759472017368852895887830664037338926038843052682185996415563275669241176016122817501616853251251769197932557515793857634081395148620851907718135925416607005571626512411203010968278237765668599342366197308890069317410004803340264450422937054100725603610017770439101042056842245058673992926600471758112611594300024717494743788678053365283027365627883010426193855122333233039694768783716312787192515622821567408406935276174256827343483986045536566719754917042465432865809147253049351826221215905812782306666001272182339794560641076244306183398013423872480303244847420153221553257884173665164075940425160367193484604098878619062352104564800234251609965546059371099494023335495559810578762110888692454087217846205316645623505241515858461734301534440329369835893969203735297219233311674971138095449994764963171242626572837972310284837160837670286411840961423094866070634698101579040350916787566598446209251713130350391420764296589847610364981066990118534297219174427422211971811840916739199852370123954783724552331597801482448858840761879945340470702404114561070028203493979387364686413796657969017743919107359187939324072648193111471454914785595176359091481909212769222069767504153310144124801289690579981696199412581477854717438576206286027234904286546521984388422873149639593987010732941593746137466420717361723626336383582343664804196854775184467301923096560098366498075781266978774469938824244177787725113009229477913351143042177657613625976376959801897479644728370138660577196580316636982073994064427250234755950544351041673507777823253252577818665993587080634626592410580794473797177101243018186299491643896992303294353672237337586590960851657674038980840138484021656825096368831955264285442157874476068254737476298771724885862939934538954879648187217587664229534645883282418407238720847402009598197472691076913178787786709514654282592753046895117365027456136336127939696263285918362766597125532001552095084660136563321885228494395780920524363643328074958367873581635679177021365515495609723840159333916596110249203578396778033637789368265632992114867261779449125752682472974014737011556553243359700100791765791607702293504389110682342323558526296252649455314770468653679642661371279160626423729741703908690058812157483200028580712914786337512690768546399937592332060272224564380874492926285786701887898466572180243934302029956312030442455856286539318553400113424922865599953703297614444352698213723132005021855620693313784527384480467734484206193522860593403195515270764041171977169881555539069732717199459121620712083216095869125364401642436795338045088553389466150420648112959018753602127710570135419344837544746455355629795894692843755570006351306671195126868058203348046657295746550716992274070284246436753661704292358633556164617513938029400219152421798937740044951311825081304979441343060936153346416482241113106494610497198470455089143614218639706649607649272599506250855170832235388389420082900449337613711703800957335685131960897259140931273345599794001842123895449212603297060186239213479064188767577841478762486935863930471873222514694812962178770078010382877200108643052790876418074689013659110750656024481233919984489309916285791684457328177392114528912210529540870833787540760242810804917621335714306104408575077264713461638561565755462263863938530169999386208451118858884691408443610648096145791932894276036092630459211243609998804615405039747285287922013958550997380030171499296110540055951839121912355795504209759427335705967146988106217424870347782764840195130639043065234216093222093688974289491253388366894361410120146825010598688881380254986244859951778664648378215100115158789713314696541020806330031087249998978714667813216375859007929252039985570528967114846366354718240861363742036325656917009749107909895281237494855475132457490328679025681044386376856921593573830710872062692797730234899221231731295424053470354490932889102720329170793153881440702565676159203954035496770752745605764386388964400515000580093154817860583762761657628849622274628285273049074360320848531014425994804142914365677180080830116975098611470782453326115547804763782872279717651435018879039478204993347341214438010336635025595579333847722645112983250844695700209030177879631611592483879182729244312398047327881479389445065102445961926352553024496585659419573800851935256400893551335617636410267224603777752151826647639521329391649564642500957248621084843392214050156850007137276121046292168118645798767717891028143833384719611920219184336510517849454896998335386602483286473368112740823824834687558952860243024236010874371762240741616742336635989124295913289260779147289786947824960145933282815279629237947988846999231021046987865350272507902813301152489026434861416871560079822591330003868331946913638665882827650737973323491184006377677308127865001142846823116555342677642270560922376319222324833092015673377036766007739999225286679896986143769258577213222584854758488731451744336158530691239573783358395020706956039794036036101956637880181246046791118450210458215312174829628067300350573872872003113572297096595645004096707639809423882746502070100457121946068919773529086390068103816583650465256027818396227390670317291458954930206169474743745737151656053375351191915804695413413368197890757032561538789944584301959477284498790313143783713539216001580720403035241884718097539292921470263171861529798980550083923009523562341147240616527175929814857273173471920325754057456011773330066330224170652527958236105128423047005441930833680277093487599072224844415434911398174498934998026759553981414991508934088212588922478353025699045771780447884362356199074836862660363975835976686426378926435687988820954380445077722909470077771082174287387620640721050859410834886896985778623055449265584310901861739260705164932688349900765860435247086106006095702780449024099908343863359796976500352521448018893459957650351765474860339189738450420542850282661779167180404612472606411600207970645203309314635335385284853774472060499482983747612901338438493517962226045021795920847049074089780474368139603825546382394456335423621695977719484914275038395383904082986702819230243466781513505934052478315423761403635714558228527220170170446893640509069133474465610345665322414110900056097996985746988270304507477814572358657654224215219159917128710077026772496922737916228044430673685279823172900546014611802769602891879055443017755567720019776942136513259622490647061416722342540526470890304332078288325907595482197057880072377993301671760128612920975739638381110097359730796598679253478477132294712645397396687323552136106113399708830703950122654426064088652548904060126785182413609055440383507231005483807517441682171331120768113539959620457607696888004833808763990111974902345485743819093066905571920134919519641396116595820812148785572806824050030477182449891035894082476107152567594587363822716296010964218293624320108812632981022799575743683452794304269439602977220789488071518180102710345941188519550862733939873898474768100483958763222342099843692241650786812394029773083387560094241167131455855791605578753179066556847621545273438716134254122832361055005126693287864532322757512034755376151474816797396974772414519483956479255921936835860993606026068038023645005404780781749552487076933861156083186534424728059935897583015685983722299561045450518467126114837591063387940349831194120834028406651835918892522494592710121171354687837789791708613736144368026385688035245567163379434657841091310672809124852544655308503619563388127272478503427011207019178953220716155415991345467899659227953866931576003223311296510471355695272187270903766477208994577261578169588602969772276900525581785557017593105014147079690085972176081639629950566100902884095167457659667688200914545722582542129947911265022544884467275929379718828067887979541733460496399778265962316640232866670854421595784895731754026075401709503666728594522326572645067857848012578248406289988411472225220214982231004166921126769366712439044029457781876619505654230606616008791776799388852389023386345252335896096249585299599854943627057306276577689677833772316749617557159671350044602342476048458364723193819513362539848822486070503998627876477508214215673261497982985037375616778264537789956197553091218231138551060322384214694037429864516153218978225765538981621824912523743826755076448881192990684738807298271310898162705161343313960188826405862086360528999709341836829523345798808349558912734002096259917831077456029934552447863844534111403617902400098099005895972869294653924218150554625186201890989449467201367745130064798198533257722150056504383815632801779500988514653371734191977312867078646674627708671970070491840467369474729181378273220502101503498303269834301541332211175956626253682216038527343274442109984655692922574169799232490966354387209301892259773461592742653592287326954611557673911529642775820805756914889666543912714890600210070134400046953524178511109683150364274757293547368974667484803988920901785928332571124709529607996710979445012555786448524437440695722889697265749583568009384122233675909086435060099258606342168790780038814581947726601722146650382063440472038760624310472200854330850905697831172425133284964144459992730965414347114421278782645447004873804945842648138960494615361609651930095557270055437782519521426461831209941814702207671610189693478904170946870998528994058294974757693040517251288252829142035848781520378049240473243577480920699945432231618694478547720812719781129825033594958790860992127280045078184747049458335040847479788778345284059277556105692905959418876297070210203147465828773225484131743357096932217656860091104576497014781737543845997061501854726745069191047333305303407688302061498393148788002486589158246162866631071305877296446650321922371252219978589211010977385014284541783792460216866867579785537095480985399407510328406248881246502219452774736428621655105606032352688286298243463718445377134163767155816251704335495661242204054368698819898315990050567508537170758049988611299765124784698608878596243362610378141563480970257868653322755573323176743120704633911064948275748412898118415730953772383957593760878746354054674400481657339669406160765467230424131813586163079341070542627956438275332252081900347243458854340047398722917646422371105022280540533802010238802841534006926340779747174855326288397470013199594038359383310851875152478520952183785179517673574204535036823092982587671484568953081713420255068717619206803416143134688116168848427361831499787678065811623122854182957103064004631695471055297462522447336678210760845532376094946831873752540980043636138014402948558791182094747103316802103679823678635922300498847983639910358330407559331861896368068537829223096637324775920377559429973612724568166315046516540339718232372964216463191276501965145217858778727438206647680396464673194965861436099840652029418512895183293840152427640232923336816296680599488918514551952632700937838787488914646746134795573314867515224028079315672808457627985164681592592827294910418842452780034251551028513306043305671576384504195808770522359217037961850962185829854379392609769053722383745957879151796537500709192870107087521358237320524090658787801449302212058691658085053680713711458659086112280458484579491972087131762077437864220257319683892069833383731277490280840984602200876345097726021453261169930015816696574380112035924761405114294483400216864628564320732449589251713663040287959513177267738495882095424255387056608442761712381501233072102714345385614942795678270979867713801519340917181796572951416694748854651874109871150533223908669057507606730036537338559843764169802327718772018290667314602770108126466038124030274340156581568802865476542362082362850797929081137307806784145950960625092037460129075234318994536791332094103294854030457542386072076940356166029520177350341655591527830016629471872810674647078431012235119436590044638917696935993425942581536018566800865224157589835169238245407176104820848308931303240592394937174006918877720878855742123421592071395953364787672422000579494196053129316778352734696573150903984461949363253302169335325265406276172246814335407106116016171452685052468775817449773979698746510380546996231492330338844920141471680523082283318347664922525492668062810003646538730332986996271414760945058322037972384863871816832905267370398763120094885427857678950556332833140003548651957135988947903250336500072484397807830220776045712534264584050065900408207921982812363345398849107000591291860014927310643161083814963888688465996471488420219541643177600964949247443909430641065948897811415985347154852062930532084066788315596673243522559814912027355810284975499192324062691442471877276446089662747309801665761619556181373313915948916395015611715488526865863399847323553414837977969493143914923845038081005943562716778391095544792820481016986838510978689848123103175030013362750562967982154042634460994760613660480947092459614047098489501699636665387741414106190471687944870019128012908683840970067968249120605302903280427583159191068009927326207360491310199374236979464045682764750808841234888302018849677304027123882952108635973812622710799788314082608345756396201492384541756023586634269097748707255331769630143446904383477468170813752833163872798565671592994267050996248770510180756811543751201886108583411288699766128650849343280887542199046293829062424991711309794698145638475222888416666950989266736279132768135727418498765676194008625391351957555717120628703647507671363631393028420523372247616021402124815178963988107442528440112809425323133957404423304112801833821819574720606652215694567182959209953934020478994611469300397318548208064117613763305269454175712106105620645680348087786361349643050250261463250541330858499286241092316617184930266731443065220623014964652042644108285602875341605290794263396216970276588382511178860060029911154808019393387126936883369257244452158824888291101346504078033059974120310783423655408072553439048675031836893974656606134055992405934444082338351765077408272022832387334812138092570888065373872215157198956545165636996847412160807963548251013445037749683007835774633324955312487638338149913770695615222090934436501203660956231553717915535821055515578241012856809655554749578631049658650371028295808067197406463858415024688462934582871533879225880230531051873994615804342962679746505942383217655483368814994799175940320558645683216294114533453688916801630521726310662089941501263020309016670554680642468269334898946442148811875644969034236201346345500687503127782397411861781433636686260817385281352057913134511536952042212910934992217499867320017771361914923192789660443530754699738229602128893002724376696113584291396432726434174518662386846550070807942413789609639688324919335844933123209403916053623071845470165663088915925312892050788220509909157637895963327547069948673776528124014215602783336615456251598428512097746104551555697647374659433912273610836905096965563037891688714385685759825413434583299202631120705171945733613434746493741744691489482976646879848639283144741181846784878591892808589227724006716243112861811516715198515441711251763564676845020687756426537815723078292459530461707016924645635971993619363708900941295656901601111257895745812417422311819182547935439505996948918088682732476786386609126034860669162665610806678730818904341669571080758554344407892501149546297103528632573811328468483487109484687961668156418382254898858121488233024849679065602284023154501367455926526004957278025968843557494237519058713643798111248554550583735571428687815836769349260770362790519659900085428446791457301759737157290372834645117955447850646681641698284136574227580471571998785805227309914893372878362971777631683641931418950157568255406079822639228510307365136349160194131128619052319000927154446201035217645181995541626035170546039347205901759872726180480758597626667043627426749170307140321122484251822237596834734577922395663383054106406560296980635112297725965501879167168565488527265941903130459339869510564892133927234890170038691333692020365620473882370484465696176010786079880996599123330852594512994442263357490396204030015106246863713283876942249935220997144030778237079529061256789785873528255481207289978173687563217959553979552133885922605784781785690419638449932328775298939288745262078792175442869412898513022963538376157400590707816607325406273545102719807438042072480017240680569384966623607607975018390661679087706371976215983764948629148766359308643630139675282838990780909337082564895213407846623518113796395235180647593506442659121402692159205035279598059101480712255567901914519340431987722674899408108693844385822361921398109081384641844946299824717156483151626045338057732293135032056400247829971473427065247429793337443909438671913907067977089035571991771468532582315950133672876378808708896028690884147932603215130061095910828651424083829802995758436079588833234514161546587253469824712816834699437289247778101272087241009566479250446517734796265390953882522989249972654001224059136768483791443703850750011372321946299631943873965846560966835874154435540037542124914075974519499231474991072017721761237487710710089616486763089425630706710029016995722086400583975190998600593340409077713298265074888430441171519908130127764979062091239301670819293813251374012120876580381524019764136685823389625381299545197227934102723592540633400913983862131112856625492949370680790371733546379446877887258863929811118179764963455725901353779347553177040234038529637680209798932788594603925832019968138731497719466134630999633769221126877275616519091450225078727162774372310937848259845389590043628401602319753380700252711807466218363188307671149409592840582498273142402025805814318794408981198160605891397938109916731253654762547573446304695543740438775955436461990664403393268004535039657162738678637746972824748501909344217599874148864327244143695772839433967967500872514516621580960469676553847983730456323500943052335122440124275978144870341754864036250504803065168905071723966345022584116312819737306631448236116557812142502181597224320858463458060024367573376438298703828048618917970116886872045003833658485707252863575987680846035407578638904597715415694999977142170795003207400444636148283317276050163304872441118376979008828334287127909678930188930052944797923852416746744150738946182785269132805926988781514286432840181616953792543265977241545734270187901512842693902154877213104777589028062242257886798631244949711019046660546758018732213900350487610761087631451130258317687908388433078792233356123647127915682405285360193375909964408717253233522027619099764133285320485840605498244101434862352518037470741040621090020099744874833453199954684214123448360721485749079611004513754215734216331989913497698510562747915730422546097573518793349676689706211397698795492956885295336379266322644921574961917389289982976841925403875281348003395501312414901548801498036710959364402978537687474590976449830938747526158664690169959375724122575120227840998716912038978303283458983791461838539176900340543146537853321086440997222665808109690384377891778005639750955239620322289291514467014683749589334886770172418317725995308834871957632132084332951390374813986311414211385019020785842928039531983114803327419221060027536390327555985764217616489075135330495742540391804850669216434948169381807928066610306498890954998957098789897640791451750473567558499937804568618544786402895166721286425137978774724183713254313232268475256116767399931836980753860029556296519703723212901163538118893582708224093869544877452331756831515697075120560887442091552532389315986533429763463822683458077738945128805914958217898673976157907561641035983124306841131333844100059380570866348712513478581444012039833989494718184929272799830403664215364786614709956363453313360074717699931275189607405580345598333724213785448243263933141713053831471070104435572954265536374771169349419104487120871153041053193905540660040062289378266325093553421001270979845885014546537417161599155173899184801508136386141143684772149521263331360233697274869196108838088648394740665013666708406441572702661847895350872847167372791327462926653986209863469221417512339381319942783995739488736568603175532869084889780648406394027667559499232000483520600926485826041862189362256406144966988348166805149003821889872452909416215517119524033461064265468781137046293840691168594808821383366652683479671337982118783096816822555293550698479232921612127216914557725108242203609754816472395535856133575777767508102386808412321115262411978459362420842448460215255027288580112675343898460530371451857821164854245688131360915683836588811916007162965083874407808242964219888683744029880045743685556988579864479877568726788760188805661592156527604335903601992013345112732058983593268421775996893959008840168404902659775766528061758797880715697881683522100570678736048097687632066630901569474361984882509150319679144896620457204504293628028098564704687177110130806214236138448933767393949394680117406252555500691506862119794357101342077751717697366357976684169886425482177430042983284284674703972126004609477133794932546781434807039036038769096886493892931688851461728082736271184530629334819508532885693330000970642944172872716031743953939991108283861950373602796422473194227803643546790763079770681342442412646591100977648650798020265783851783808052370679446193082748281981006822217375011642764148955960737051305834512296559028314088729659306369981080167081621652760696124791766204036426120318667717328164221067099619281225354328116070575823632970485471973607080363099776356066655272190540519195332355735164282920081325293282795398360531500548367797971296082607553398133781406857842608202279786442974968383309717410632595015502988871141966762159658088105060067289802073023113569414120987197352213183079637697173000785307873515147631486053722929106174298654639215735776221775144310177213832306057698924912718494687758378187729300224924974958704063055414313957896316356249920551402872182359362166997419528071779571155441821856856404799111464922283206466935420311986426004067617479618901730343368788011243292204441542647320564747328515868363108982140988222653672821043458693470652849379979086007356846283170639469537389784715530602862728441327261657187011421556428669337489409892092088852677474066693917456083177347740501738415715224932520998001270355513445949597392539773171764736881937309280382790955609811074979395716956820855652240355628991557337673967120044543819297246645592748218517720506834799480379352936685825194245203105929528730022936776290381342895016285773758145958476283804984766426244171359602256325297127220682216324672573839163828939101585329061284573128530308573095518110001733289920239929966245729504677384002729414135107986107756097644895294832387903655133032439061775943544460649025612912050821182059257941086979617687342235605608973062048832092554753127231158205161705782733296758194244748143242138448308276889856728674533953408019149591560400215045241570905024377217703733903746536727814275126277376583631783888025853011155783474567904595273899799504166686033355686977150873199854502329057080601976399808106124459643192904093768695105506975503994572219551853310237197589597910022993836650871956887000165940655936368425801089210151662081835024822936574421985762739173401706302783693715171307305991766023126136391149340330858935906400052411900645678988998970206565098595343054552935105691987406212100973679718679661449282085094963118403344702602192675816658790432579868282655107129730243640445934878122123291702233683115926206563887905635298194957545567153734808829073484426448719352802596716490121882512001710369794810519509805796681782951340273146279295073576215409033280957827799878013712513205201463713304124582368640056260050023225986047795539940591714080505081715086920608028843404368832370368416034035926146499258784487189908146682443254897315093541902342688675675267025923429032947070612447576283828356485549596926921542668870881729825505327437638175795311647305521650467787893743143524792305904013675561343375196908603860960071714446917331807503011293984092669245227446123577406227924896728327776759739024770309589232724311642951620679267090561618296632875340539781173980083891939822934606271680688481620206819895747882621437627953389472576965594704740476576511894855430786647689323297167273428189970027550796674741586457245055058494919340256245411600079339074492275917718021549782955252066229739199658239844812243005004990369815820144931444841143205866077763810113959678942288005482119175643518884956146195660110472387673575723362955914366258532159678017224769169864429476616994697669895635403783497885589873797162985479444897352104981027594018123747136135426321064948811961672874875822153000596804009322620574479951448759423771675676780394187953362774622463882103895127448348945417148706109483754989090230579097417681887690108023868110748454209802666717139268160796772270233618877095401982300514449480005508371648674683733013719772147809305369381199440696606465483177049023739805679331181066563840777921214950602207890705353266490183540020844402695533609310457127255027868059385588219885489032249723279372329026081667215306502005191640237278540111254050219269179798359336444909971614282107532257211170864971440851205790960720317415952201740948403084018627043186148246110345326723800027150139938345524238300728613792923334867211772487386115129380495592639121655626756869132367412925910193238364599354335366871954296138601676575971229661916943068487201896141956109920016543032642566394119494602386865860012755371726637422991860838304333181454822123069416352888641820104074356191534759492838332103066216838436120647732385129767283738666260923029365451805443293392198701532759568608548884663333740274798776003862762195392710334782422817278916460025414628454850886956063904337274506173969749633131107686811646274946266257313621308938863707060073917484834491938810103655354833349206494958493442339296161848946968613860787356671166580121786292769854066573651460995154670432945763870735867146357222073527102223771347912704146774231969253584600986769486952378756019360440411738495998909130090980496811919992813546538972624636795531861782734669454523399354082267883227480600444980929828274207526674594247935393482037088293570070553539669928047336343936876114686014751555137120054185752467713896035532787230646559778062747421254505378982435448800968491272587664969158448940578599657401615942624495295305443159373052652572725222152879174494304419636398198068536241015939448583839096545961942051472656071238814687058363664888650171063170321818659369021149151576136064177897086165815774464004169658514409914959666209555663850268987430034527210945414738557462627239655806345901612009706164529284771220419483751289555322204183709822435395125508889358484852346090644931964985850924881034650572851090814821041607751321593989192230041717822367380284346598356629204148528358185342067966866587318641131962655061555960825584618896603964011254977753575457167243481927931140476012143939348599122385545947638601102826569106421255256669608054175964729210780034793040031955601761164987582139486005799983621747945849236554007197956672919448830029756110605777005898675678041639068930133195715573077160545111112071473866219662131530357465998150263832686928851023442304426795428487382557082669564260315434230879368093664689123015890904925707651697297998906544051856112258497345871547134052278757258739111581802750803534605339461205529530496658793521938020266209990127753961160850339528004580398008169170574497423476998736940689399648973844267048852079370793913936580074483976531195436278915677007919982339969925860447070101692569189799166837371091703608408827884789604992413807906606363271769341989090243987763017531312818903209493871745617199850930397672047689341916874121529119090979783111719263420316176171600431117037799844937078834696929700465474013699390418956851117786638255853078150345010931286928776648171575650890071426149075542648924570672008028093165926067029154512557773266818234312134050820688580833337269228041102331975464345575663095965662973395187412901769518500557934601160970719826968651561296172270481386451476968436955261219258149776566191013187801317414531944107317958850376390910554859867470879279716846984736846391591494519746660600502818903036213313733012637589194760939736902453815517517018095731887659104904836209637698988770077628555675267627721264336760726037465561920885302807104258794496664804915286372727227429943862185011400781683351535754914329187086313842213975803773171904030493338694638070403744931579881194272825213601745311155726252651263255676441330758846234451264928321500266905383323564235980556774137888714812589534844532469037288445945423844881746952332533786988901901325028177942065815344737770779662950309459844456537818497194183585733295378124722849669105728515465907756987591622705894494857910637497907939458273889401583030180555025988968151760691547084679145387453476284462898930099360792366369915143095480810582859140099643662382618927939894556726164519891984429687505481752009995558631701585668964705646214821511933687206149303499909180916889601175428546710722543681874526084681220475381924951230892749459567012458643852700692417110711679549455005917629467319266761539977737379266385834892027236970019614394841903575244176625779510339633352082221066337842892409237791644867885791580102205897851479171007975532663816520597803216501622618901792284210672649864045665006012748239765751238141376635709311277865929006712554207192141993383223142031182781394782249997946671310091521983017529446393472064777845947655501382661299888328262221677912514589982615991147050641324911906769119652363563390931794943624107215481838103571034205941045932831536725460212149866004053359235438219623688391927115001731207321460046354349285698508297646127221565803767885671596209926367538677742001710507183803912806775338009518678624501405194538005313778780395310947956898146291238222405381036022587308360761378106405050394507915644953800645667014239656593768961841682218902424537571839229876260561809502859981215934053173192399927722882608791675937195765889731525256194622074990657039177869054067311585686383477870224683031964636640727184388458411280069730202625666469625576670525233090494701040540617437350093885483089584889608962765271102230597641352213087952807231799307268489316207899534669985723323564421896242430659801202541298116554766688944167118790948342663758199882365469224985269259125204156849058037800766774915530352314131302667948244079407438870878127150675067157828492666675476046885226457847266073713962552485161551138161130133857946188210320431933687387551539286693019049843288173727155901851735390822144609693158444214635773834154429305722399538810693448381075747926578841989224117813879257332471478419234686996413796654781722925435646428543993660122968584015359934236023382907874336042748105767407595577728139441966952809497927621186120906536430788684538674420690583864261001581603606321913760399102305139756686240997039181332730925324001644336488768107811958277895923414347669790369047586935580272005569331207845174874413553612342774348363764951006127914447436136163235317139737723516488119854952786622183740639619061026972419720781498180256758366754171701282281542755437461713680407989767190437782426179360231202748100939517385627906277621484076305356152672677869101583741750480553000217417026962488684002987885591876400254178139917311626710858329355347369043312643016363761837524154916849616909713881934659855275874398150561226510851928494567575324744099311936029195866878906460477032614326737472440948010484024906059209186093853926549754107909135854825821370828979851227220019956442284929336560285259536329092412196409005417252537131261141010248840277883872147305708446886406085422343411458066310454357936736869849299681798347238666741816593096880373260586541710880650048952807925354601870226137323711133820827774773407543397611144004106481876313902700425581741363045559352430483398457053064789633807710710476737506055829081440677346607137022281073785492594625663211936420664606447779585022301607261414399582963526597447013499428670994197454412110135448535986113024794835582054921928625700367771325897306473110941692242988204722816508328235204714053534738751831607068172029248762006805932413824074188903646453152253145223867964057327551935362287238282242221181043787522735001099064063303622546563054398100518686910835548250436082389740419099203491064822004647189583372151274702827795625661256412972248971223753038472319761051690911122857111784003072897110287810525074215332281797011796259673168228157319739973011694474785267114134188051496145288600820314057365797220124312172961473329898795318575218480440246875591634285854394323193394831950808274259159306305417134269903401520283267896254746149653467538779452129413918347860534081076777334022209384828129150302231031802328823224782928746664814597154645959715992773003276193323426590736673954578517655089096988487517097435915687757529611017918476464873911191487675006176511608831206646258613989698001304007188982308037690188151535825240722703595280000495954976556690123108274821983952532746134412441229864813840407981509655889520352243039839044184335785303745952230355702043791069281776858863817867743881579206306512570712240866125254744007952470763524650403995387532481416932231215205110604321331362552812293666319113550433714254976318257995333330603595859915917202603189827814914964509880023421442008150994067536598106504118192612404042405847972252540341377706184889800468378166670331511349252566155459774732735090778745812836665320780435881471441744876211091636948103097980029167635995701264525770952544055137850327701117601337892915960217951037417351537702056219271188588274120458345971615860873975885450135456794999254413835715311359041935638143079493627848727182274630523749836246211638872185294876491229018937699166391863079395712361418281245373839432414626223617200213796546230743965845190166594794972717435485108248609758418192126678728769505481655746598958624376839540983911718855439777373496769993390711699615256225710683805560953825869766993320680409476329604380393928947941804667288489660332700787414462754863468077062017940459268378515747040332820337675106333591620460227329939261475134277323177976998256596853840638468904132023123853513131872978953453671106916957466869335351532644990783714134109571087309611952459737957503166402823235018700761166237491295143471095807076792002693956102067978921983366284266632213134288101419472910457400404884488149783668209630351669532785383356874464212796728684439383870732588426643329326653115642188783919823495091531679341484263157336164070742813134538791957115395291769256893003296248818188815591366792922221997623936411082599555352069104811848970655820898027699641065216909144109580528303825616777675036864756204437321103097413161717036284615278932365055802315023125812085609900686756613555486132283927013444863689180668885376226159900374904841654142540597573119872536814980760732564778454743851869614580673801133295378798232829078524134078968194549376892808399544457596199291735536306743390598565633263662095755038259728291547426861882648496785869248974282155542482676756268006102812258971387678598068324024611566211875830632284056513024760932284421738114424350487265280630439090309579426347745437943100879866803935270592085384477666848217494944356046470707846809643598138035499538359962721155652606453699173790003388836651260042871857374095570562360855958973605558952657139275129434743758360873954947835814082706398688589940689075029128749322413538764819449573822622355325986593577655836923805397492052891007011481213823971194655118678111907503129769367391285840089247730514595507972931452112682556092817565324562057008889870522688227878836400138951170859175740150496394811419352160091620219967066766218206264254147843607121454783107913367255130108800586578720465836740243835208281052461707598441720469230505655669650571996522979368578244377813968244772436323274991477117251110584125836559020100172292062796574265954257175708802647042242035239452026625565140073017786802027527232032828109482432201615495930865775794531546058464290849910723269775786975586531182876528547592446379545065722495727393681674794956153455885260887205366912375049203150026662730779548060012166108503025134784418756884623594489305607597610248033265275218203758620275047091296296777349392619359184263560812075658834148780442935948119756458691388977685196273243216583613417397300743679866846796914353203771431602893669380020820944891899639726466461742118182043970924658413824219800660704051171178639787284500538267418861751598016441413065517890097955861024210254993610158091123884934068808959597652986881111352992864771804432886183482763842022799113162178291917354094226090037448011025986601794396347992183280710075616419779106488540211735052838289440308631775291418932823831775298094285177191906091682380607584726504378598087791180013707597244836485603571698288626402598313002338896684021021553929897978960481410341334865416082561286906919622886238410734752566868448978134936377473038307159189267559454549516428055605780415303415881060657342759004544620514161674171348881552562204343277460009558128322146783591531280247433434341393009265696558083483424275131391606820291742763835847686178819046961752464904432046728414011842215843892002167388480697599140195347713862919883433218248684222671855252385342380002386853263648809311331549656964151922939025556261040837834731064283587309577439616433344163660106518721670087130827730935870905151687405711898853279369993363027228101891913352937552747637703752798683370961638213137260740770815460239326457954936505057767735556832854479980404334794298431913452788925323036861732687759647307046509326223309152701177718841281159785935724862118379374733156659649430794467992123057127633798595719140618719499157336589331144295798941342842177825640205842998359770638699533167888523624569538669468922572735323586213140537256662747734975495324652747817484865752556573982239627816109482577131174259012647487760802926122233756630454891064112717271607368290225132228739912064547658099368080347565613651301890295073744658792917423076012272773098146092989068747800236900026254338377501619930993638898379135863960458107026499993109270972836870149797426116828045949074145178143285234528636650973230456623802464637868880882168935254708054084902500033131315745956279045086172073082664099949328418815050658604803833694427126747794579460583964956805634433948696050925367431401344071536846814223703230997297002485481202308059186258635352480780895661261213948000847171304786609230455299469344698889286456599397082357245675989805018708357979853188757052521638575996427662424251267561375100060977309209347980999769169127406265993795593200893528956374868181652689967382276015424943479800126147189471189645932612522616786840059987426666717617869995771516906924613490549611509061706410813675767968403294430484331302901900674196859524331431946378507911585145871142817612713257860747776760636788249007289122706753910010348358408518924031229559721488349605955365649267797148077252320677935394626593214999209085571853377188828177977542927703639310489473668018588989875791810178559189115970584851012963226113288737560147413047674151416924402191903521226450605697296453183432082680733699738632346481412013310495704853060670011793253235026979846748746335600261936161947473451540614631265628730524644609154263944777336834771595503379445286626756581457138608389792416659959905616665245406347580765729528087797447146938570742847646687561476672370865514219535702410739583671180023202638135492044333724055293169694805560580748770911417398351432891793738897764415162957443010786096037412026313719570230240860877465430592505349151562641186956178043078500650121845568450267507760515076717772762695146037696344121484247319441797313721743872447049344914776508807188502584286885243736214203574785938381939445922646616729056879459986259440231993570785323764144337991430446191890661276474464509763985842438299663309807517935560217716122271698351823897869177015631931829936213878422452102133320778198849832621567341093787741917787514499988404833892862351478681992184619505487434625387450578777154116283184853715809435022170745386676473666025005635709219636201938822430784738611991565826953357855014811216806506337366379852567322391210278161436872405747627830349645805107973432305285748098661087599113031897856470200477984590372634170351658211949711752068028989434644628273942368643085671949230299860972073926706955419239650205647303068848971922176633580656256137403217883619438969342855512863441239669530242314941367159761642748576601090031236625416759469209985981103826107684078540059027379053934044409283164222766397310994654962261960254147375121770737767077503883351983768980017406728346283456568648915540194126247961418234069540181847356702744270038634340990886665453136902365283546416550403393453002514886172504743079090206552082618211040380357150634708600187150961850623838985875246809206512650510792535242925606956838915404516129559185071165523529784344473138199278444528087797341108896464774034644376891894246891061452174921171105073215871901148024233141227738529314270731826402233207577663169420692512429318874254789970713664767198530581991310753572384388296464509946771508103069579123893494394648235629236164895080637337777435402860669029708453763713713920665063812062208588195388988343039696437736410040261921580990505141448416252465611900059186581770332764791019742870540685489983501871988570253367000693610219975596974122624327644338388552899281356385249247117959476601357660360929895562228627993304293867290290891877922754882529390645288395824920000690173637984833172726173904624891725545848495144890765131335709315575741094009086464138168018901498103712341980983324531364268963612541818956181699033845158262456448595042755035428883457876320832102922494374896922593307277019721287211167866780875577481199018288565178493687598686077290611978683771035854694392541682292544493177886304423230628766696385210855154221403420815746990423042804044286125985048805634220752422994358596107155687975238275985458520522412366787253393012951552280922861898144904251901554508631104160877177928502465063251435949264926339106192011649159686316809413741012505902683336353868500023560444325241695336301413618810206981046411147084613317621095759291291835552259833595575050570346620495725024173791814154528775284439586171276940752656003938301362307683566650881051021390151561297344648644496141330230055893143753999088123217549641612859629660003971489673961869021746368728286122310454493731035835920273656876637589711194834833766564449382306691266165977877326050703690724980575882358001741741294513395937146056519992291623674155660609415764438458000003542274274834450649624359142264659636827020064990932737733389113972558013012551739194471997351712797913939923950903934893369930580429117593666315077248693409382514301526371053015623599358783554154629048076699425823434055545009068670584019184660382648016191472133639363376057417767927349622531367005052953828359515819064331523585427492999730764451637218351626173590104736228019281413576301667265004798164288267481557528120817261946684253541041104330959364549893621267425447694782627867376621413336301736330178487928316939985101491396827046073802652333226203532359591126551524802694405364349051655832668328139707420087182594086404105446766350919182400634782989076723402781423436951869901886376836662490600244017128326365876854020979814815584202276267514775640443085610519807938505568294533843787580137535837320242507558100143494951832281555203774752368992510564140603273415136559266643849328438323798708442385117113354182648959210744697085744776810847721230640904203694613957275781073832529853776871635998566258628289839802405091700088685565618885468872247051595106681784522366209510741918048394558627671174498277869353894682115775543419592043941492245786186205998047238918758750379500094654158330321435447676411504507176277472199503656485403201880130797736979325982244287049883905286552799549800826695038548950856348975174608572631477706597593993327360026274785375976029431107603020196529975108043308379563041585367765166731832071595616990710054044574349926329214327377093493200601943256340095730064201104880659217174766404423723494039242431592823960187444455566049760342180568899205432956016217582030560757939144004246054599231499713102697727765881161320939302230687869527080537268672818827103304302334744208185832542505603635599056276507865173621491186319353758619692610317216057560801242009838602593314461030165005039062282906306911258337569902445721175781267381884784021379751843774179270315743360237971922123533356527547447714623433653474496621421266699741512787746515158850520313063225916009699751774845285651137594558229266923386520208748317927528126742793914952451786906488339333071534466140975834938859505661196904984284689440719774261467836262106718444239950653828343921358862624569192658252824861658158847890417124052047336653901050694221280315618275654890962212135859673092573240404429062906557330557374420771516765878141030133903687811206423440245575907471375455731446689490324211247314940912335091543642848979648887057812508144846126324386619641603472448400974240396440395524731828262237131312318997893157237237138400093965547635296660064232986370960546995026927938764626820914682597358370217759489841211160000065856303422764686744601677685639883644859846150452582655915233057669713952235274820847816723556866306048665021715513588788335963197019250972746673796591692542018529539934407403519310707595260267546642620619444198220520364820470708754499061603017755333900893102218426631718819745767119490741815886439132989687083602928390089374327991502675220777931825448574160536107949435633403891010542295089437201558227412393545704966629182476734278692012278911548723085934308445337122661075230037649004441914449865073166990105456459120237614506777959073730661455885236075721172899302881542510851313253909640887082550580014809917865745702762564965628913860368955986070303231761834059404175962035732892251953486861619415503569989725619469661483629876254042174501772391227108455266137003612599101294096208596048576491682804354358852590363277183170158274185694911386291957816043112158657159080057126695899709061936234391485410368237015230073130684907714825743493932737179355716296046075128992880444810268877456744233980884006804380815507614242356299475989680637095603983325296444728870452669793574840069002423398361993430799170527549684049725146191342259617616359650952847189065042001757586028398810707290024492875463347552965615162102123286158115739583743037027763745960712474659819466945611866288388022937589248699530297967843972819860666807275809007525699559568753216944199166670686979481601457236283081913055810194084142117275445215943474061816116408080367538585640035681763706811911770462629800252905752533987495034863643136925002616898613919062953311246402238116866256650887247661398216855084376105140884931193943165566430187937858507618213815171751618475156990854864908431847646958552813015261999908667561002109235168434939900438094868189182866097581893499092771631183538761788756355666957621711464271793709680961147567135445886297144239832272564157880017280652383527567125069925669536267941894998754333335819530464854619352090724312425630732352855711429142222387596438341762367801331530974036928698540941289987469374439209902231232471861789925809483351729155960071089828374501638489816526740540046450970790740982891658620996324413145243427787377943386964822676161566218806465073399449240626379688485471777949739978163865716301543900620082100685233110277186919801471936256203470528863883249819414966452033891391399105227627659294600591005670810674363698711062028676304939190233569946840969895801749274422169299361196598870058420527932611749098593602883528964902027892805399095160107809375901401469142481566598066618590159330749969671561269856007903819925096496904046701097462910823619807658014164377298576822599803735183286420132556596987929962205873782191991618031570650408673222380228737188726150316025716075533306407375803248876204641049025858586474403690598047307565243825116053774271918938186568167265094167116306358501202981670619705703507231860351702454399487901374547227337503905464444310299403504517455117269366792799491653531715586645837235496820524127891385892285981956499962089508931830246842153291858991707570660130994315267645349420653736903027916923380599634590044582946277636351558241546034268100257571647041523445458212809014790841572908433628391721903806068457681030021305301925783728224586326826089460886356682630854037260783648111871887270926584287576311187761235030037691524729908104763889782822684979013096143220725497741968372236621762834807263662331620660651411536314173060446106065030832885608328624075543400225127101423868694682706088002378409926511842197255419853511868800288326029449800178862466634901215915345194866224529112392209825141509371519611770920500325292006306851557980616150119261414963865895677872712422988731080803139603669963574174482881836083345341127173002867650250828141985548465826376442581231991482482835149114960441529855764840489324861204614534826301664134570895755041032854773793373088573998511927859117010628006211723981005909791564281972587161355682114076452772874514168210834743214050825530088148054546394287267994341700842100544574474696696088980191862041531551614237334346732993716265337864131079266664101732404423397220315118574123816068200456964363814438376136308946490266964701487074476648919740899686542263531267410996488350352333593754952121514418265916547953008270775714386552177980089495941033019602901028801670253274276965498552257823518766288513641109550005565341872332241315065234698181480449698429404458702319056274618299036554149821093490371098054433585345410495372926908039115374166434190126441929048096957120839395466990395686923480366082732970338510368126557101285801714288013462850883833086831178337757777416211585351589917054130110344407712179166366516537284455536855185174051485518998724379596570726587252166961700116753135349128108397903878982434445828917385622696670828381931695722476616199737410616678713897954823288221236885483216358017471033161609976688598238652790769702580342906714014849579149036668297545525590716397608455571836373216695872124873789730630072438244886435456577328032455471803800150788922248710064608204203429664540952725664457214888248417241152755947413325600514916934467073788371074475135921563713879433684493290039504216776449645647833838361615677151688891404230914212012807307718842245834599350693370415363511051946710982736441761473618050247869726707985875080291188170972898017592171016287447264818546240766922402041101998914574374724429267480264233845813837011325664047445185426295014786853617097516034554268669525957788570783554419511409394797416174186004061275584835264180827024072231000028592272447241440514551991714570911327640882031129675584468294166306218811128707369311937865034027277738564182280960715300717054867922931769163347289203749037253870620277015918890424781995710370726390905091707515890274024815182947985975770575926852911230894970116337535831084755868912273721255187044106719619472291141350596433092505624166255346815637494189459698702338273047037948493749778697158238348733617828096140265032525414489884139490915021880605961020945747708394335969055475872894499379095934510627265303768746258114657976167243797780026914204321113173593653986988656275004692778245101092971618205906350578650529956984462792954697189407164341723749640504225188321129868956935155826158859001000788059704995513497691903252794447332250692521299074665053576743162515990908278591878363892591859311753082047387437280141039391753007726372211988852632962779986908882355774639163594055205586282255334089569853629305902391073468881733655349978522582001232493775138318531607530557275433355353980414861185138982623257394628938046910565996275184465316703712494287440497839807347976943926546169159768573885429940455773254210857644670151917028080448589071223284991075026730185289736203914361083511728952378049863359355760105732559611788276003083679195500166576422183841735786737584565080819597559818084996913817823151377981498405452994599583860907421504714426574559786845473631711941265854783041621331090746876217992791630473960072722749558292561987724007721357563669215578149467685834059940948566551755226921456866846973851451569945607430994020174537885753979854997585895591087218607072968364458341543516680419569244907516318505491558877113752847737535320505603798971264011985436232346932133938211778965047597855483673927152193357074262597312711237158380274182741805007090404412873691931806121834892943509599472643588433268271809013864160161663444202679638682054059759758981393778734131210843984273252279447421324841920272213517728349145250439417931929304227393863728707914528154482812833996874532771774135924881681160660541925663352294947431791544624017312043983757359845072219565404576233260887841455592981207488477534861193891814779366297522889365531974145255830869266296274302273984969551656901549594493745092484258996577463296932484237487518472064884814287340309609908261224261409505411791288896717517639462370367453418662015037398963760119672731391979313445634481051643279254437528176742134325736457089170858178053647516916469153876336712076826929269757274775702967318004415428835386166900546474476706802002169485031905248748529226888313135290611283317561684205986472682564468066715763770503347160222073468224280510163869470783207025256808588401854978555899406439762296595038785723249980927193715714874744560782831947733762860375156159323186458950435842941997211737532572278467361871538500096692920505392357669292152833018048716674023505777313015534204477832170530009110283604241308323356825028851063915193347923871493443070110375329725905826557308471967853147369313666417123721103562720519403211846050629413765934412526623209300581122800461008142271261972389319727545209072351851331009470457435086278793167209619351168595651138009839413025444973651859983497802956268934205727580901906047265474080155551159714083539280616427389535434614124498517977330864920713272249062365373833188657640587669929443065326333542999868074137743496016962261374909153637382828312484894146723525916408030419007620582616973506136083949734210211304027105103643403995282940219709832725345258271661836413198402321019124360342943560947470922505616598704967921685843987156394647976354597501644151731683317604621001566743980658317725070178231689474833238734783667355778973953593833417539763961364182914572298436320301253588348758542824480094422984982927592779303485945288093163486515693514117741897229240161046886230710496944131580190110182736495555295088230395448745643661786157937261413751170484505836345981012748200465355670374354247071969736462378003245440088287554806868024720468692718263483975397289942356775363950403923232806923379231882870284608290818123830129932110220744951967626754334994040792497227218923065588419312194077258066875157097178671625232805562138379439215823474844068180548043781802598912061836064163213844569060552895713792500071827467087410751191859297800648142299159447995433935318362595454749888834438421091901976703899927880564564761960979673774848379003816782013004586762699673404866628793300720745938519908265190335000679312183036533859702874841732415171095345844496265872344238827171835003625272515674978209063807011475892084071725000588804346830571115107488136156057807945866255301801025662382947317047356190127023397026304282073904396183074483483012985556822845383858863208219581945262631528366836343901637279654703966750414547932719582182974811335705439606798806397572079725503627980632487547029375775373857382540044586818499744403878758273570955351884841637447459868224406513341438109401831597196442502183897336717534400365993061157255040664386645625919188185923236714940693452832295457313000892475677840895645047005815648141754835867482425005790532678571928182309120576698152569949839926518678851956839595225638460257338430520864093095799323772219260556263040445811682781326749620654686314157442591108510134744960292457320566893285840412104432552375803247830658281395022914134847126590976902321859574573020432134814799449847498882397458937490321763265086474966413522063014000513140868223342731535664655258676171478884168161889074812141978118900306529352107064480098484935743764079426214850135027194396354643849540143686691305340860111864190736893603610427569829110910910009174800512553092708770222167869660254071870761274635183832784082153827321153451712521606712423682991961245430517938254890820036870890444237335902075068184538182797277200595626800854565880135781290064341879602140274136976071169452592266772909724958292243141489610908799522854354914480858765664778476842257757704402410172605156357396520803619640347488231414711166807594932140256716298061605548778941935481412143620097109595546051920802953168544400702225322756567565906442394861893280195527711859005409871242487168906953187865152713593122143097590315754391806225160478886338855748344813176298516177664909577225108719930190119279053929035374112024564133657103189097785595190109900863048557701360515360381145902560031100718661603608932812281644785765872800171584995455867222270027589433590935430681176038306977895895271575218382925599189713677366270951735707262671429051045857872137093995108792477779675030200529088079310014482029355452300313288109459873699772316405193704435185235897181257751699091267120403973844844304526609559988662120766778455344046324018770337857407585490904633521120203613562632105014876894038655024468314902112743169706464323431907420682771178965764599327564789333314743298166569587919889787925998599183870455729990190089693926316092946119356097784254656901617885664776616732070166383775693588164871967797527467779210144843552029231760511603939446652587840432825915163948969267520468387694254383848343082182201986332940957568066855299914938318737025618383659096827185096230956171178961448412241056740935407225242711563591922602599605865946280492010652341103722041269808064596229992698229063390812597036898350915260511294279019963789340286624987928854718839344121799364611732626340130318212370053527334142100961653659266565283111799400278244618224948567483349548596663980331344007327384875623231668671213474322573159301149709773500862805188739240896784323454790226438346454914242895235087974535295941544368781623025044878144074545558483205629093240786042304301881545987687775451635490813400657090883002053407611823359995579667544422307577982806361204339085096797450026329984866815503568435535157262629804342855451225675668833633437479853181467997933321830165455847977473603633160432462952535272124325257855511522664557559989735268198210721270320695698820979569281676052318442704894791638791144637922081251148381605294481045849095859200845655891382133387675677251339519855540193459775611411340846676432652137746916680878658396086268603206029377290405507800155133308535785705987569165653766117625240087829820808746932207713409317749717757190455927115734336064335371308071460718795459981177162189400244133418054125582743060512059516850867753078729092227624855452621266154703489460053861845841964432515149195707165117173492573313457563798254275604005130331752302626601085766225856863240542250666817500795961780720539417879434266273417752347388311570894644940489671840335356215283041820470625144361854645335174141909423978408610840646069537821125992125475614952503234898368629342457611154966231629596282221467965228828070150730099294369693702729385930552491960069412301319865773179364642706815433009383028057623832561975201180104234934257212840350070013657067396394670974782177287717702668741285361936211712930997299729573568400354736154137805090432651431364928947825030297283447345014241989832718738165693448033782900440331066021933386771583845769868408923519007646305993557231028983470447898705500258789395540964835920966696991127454584688147330849208817661740552015014595793576526474968963222242514480003289202607340125104934179139048862588231291289100012963438533739876791976348401792404286179843235160710431700183391895944378111485321173765114607693147487913265604359735715530120772144584308307410885048511341709030799166516097699383675332207526335317757675855414418790768911778173218870386360620965680390405701902278333679270330763567558685413714814091138156665001352083506818508420273056366398664596285584769934262550181667462229435396916072502843752504577054029586447845270283573909838882290203330887128125620825851195781906781426903189330902930395841882863655425279494591898638634262044940291580212759559062022737503566212611551968668319363570323305327465840576849932329909230826949664868286624842019805962785723976180058807881127272530770349757752453096666038364855416635560542219288915965814086014719124113664085289255445712234831495041864247444657430085970893305680480855804738264099826043880979366250422654256488609143617950544774153482594202820312828906499839804745078333009583460947500675665733292695200434747843084225501425870004574096518043798133692429032782267697040491672328474320566610216615316439204785708672469005002555153365422351263897103940736281244394291403615281781190878385401168933025597980988147597491280250128259301992025864920600784957013879771513966978766103782157364458399905670918585313780104685097837555805378991687634292704370774405595377446726995282357764619015941846489324364607526220471921519001348502187540322259899420629357033327298838233167715711563283932563093140684736559697822517121777012926642885181963798775750480276621169607560798473854739693875118985458089410921149995953011470231504270096230072109099360178418421634910382698543070327399453383270411899974873718334068812956637057999368759343104497462305197440786735807689301516108049140077133525665278137133973977717860841430247753244148373171748452508645904168190065080941724280533977720635715191737404743153903158460481521782096953844764894244919617441143291882575974366072722543351531777109815827809183753376693831874541998634487164985444568836635690400058491459912296305793805840227873968869578644410154765639505929871631522464137508967371544336308699260754195298044986641634715284751201479816825265853961438019033906964012761376839281625085753948817874512895348597572027149176283230630352903200586006302079555521433645297538725694416319479129223677204898089715537932068828444728252213733016018152426647894327231824595968902376411641894291664846178628594942276503795086285430057726391911736677288067875425804556211863383770571488981357999979465272233371345689648551605090356691186567047298295012596550121904970573936934956733316036419917449633734857584774341902460163841661897145495627481841393173799970607606575475865681266955521426198857641536648369282944876739099013227245220900455146600142576096146107985621618700054134211739601466092283412777059253954489861327140114358315782814005281578098156804053051923754012234672853441752302851114048248383059226379193348643489522320683572275237979251363127032101356206051559687396754457939079824026892200966041362203056744285829594995460925267348411715488518564506459804723242216059544229981622751304091253722461323584910012959290464188247898431155614029520170260660005971020068893663257493005806251306860117617620322772828452293332216362979380288815127179730831748718317948655101691411566737698922696176280887646362748284645256992664896697401753565547768939221579841560825109104400816723073049339751678183570011235038171368852229013292519779553036080304669446433776519240972121655312634619632330267154892527070632263100527026821296496568757631967677752803408871202387715999639787577221076581018579563978412725459225909407760071073239607942362949993658582240524845409250207566995504572267987755177302822830125871597567431214385439016792785137986864025642130786291613307514118265605076743543320121306316546662809073660425602731729293479193411928489683745319161865974667798165890430874756560956996889110154748036241401507291967487620915030671589414231520534837583766943080142561522236759504793730088512777787422864586734233601402823220537775911914211320399151372135835957687745428912177715312365434988493380091572362731263569103112602799228068875049186914147024450011018153195523117883994884906579319638631225461083645583414901007302823689972495798979165050493794270119686953103030810236466304749838310416334726045118389203751553650840142790284601741425766742994593302028337817670429187235936075749338473062248730746412858988047604320268317724535163054606964279410213733476981606774138245529396819322257649854218726296162999385042196836401364628901604768232335955803157138430673066826433882476430439442640863010541739157476278643682130679066704697386913563461885613386831925164311979296238390628372375695663715779077426002432455746565338612918519389593800954046004039406426002166871644056510746735882075114565364192072667094960236931650362975799534111817111314759886613714582163650222766297469107593322387524800592997020414582632234521748318842708067600739833296328607160928419964759033405667832534524224510223849332381131318557088408747547558427609625765990092207872478962842070294241491009102730525359601499674097384379503937192040673791856903746717282618394441180189622434796573946210881156824704383883187967422593715490674009942330014416595040989180434503635308749142677641526464396811865990185940733871731075484434961181380858015787246190073008631756043188495904910514029129035806732290527118587217836528471007610920344633004415152485629830934635294437514366864315472687150060526559996118946724290303303957933530278368478701092139599850538690824963450918514846062941990311763901554959978826392125773476190508697971731361083611732846225750083325718227827732811519899383409086430097913710466915557542974369636289025606121671837162514016229540635851919261850066201282997269336711271249170973165158073801355791596994931718281408362561174428084822581009519094698748349048951897383784687760954459363566854413585666793482655905807011269241507701511360890936041968436429336415228284645538784776509130956193653559509333331658721037407213123707997950383771958613562293755785315488398763781950270081453316147514929599446579203470651730632415814830488027586935646672917785501751440772945167138475753866220527925696382281070310215110748013774243674108588605387294892699882807698512954618632113979299117929949699915463050428303229160255380989671521512665771875733311004076119338692130153904863889896848498849014811260666643912834528062269613836812778633992054618462473681481424524353166463961979650427689542538802526866365773526353087500497884081429503109062569396007821216589964844189551081460878940297516192333085023746650520711853063180984046373998382687823569009842228246222285079837212798701373091951624062196294578008277867376524359051793102561479610129080478019967310583003664883436910447767436208192439141760070059639691864772121942296565250489118693708840262119033703282860154029194534207471995624125366681900929964159541836006630243336981726863423318021500977102359767157376172431316271045563667809920500188055754308317329675552946270320297391714162358012795177572829132810164619909597387757833663930969973351767225537852070586100303161330321320763451182445789877902660531983340905447003368364027160418948709506074764567242404344016304876080110281873400630125745856851182735719116011131553237388720361796021479265642979200287949748310404847295403902460172262342677612567748147104788936941008291030962654990528319682734187805226318151226767144748426826048296375488613447927215640995341113309978963070255203559088969033999762798075740974242916968165484522148969646746664709225589403494119041077014522986298674924330520430240382416565801470801743747476799326096752300021760649772919777663253071983304052023693817798370655262093981398180442301142154643209017013832206755969646403591971914204669236315995694690574311734984072737982592111716339836495882374935995477044885401870525072471831904868435422118351319659365251062033271916294367571658707978805542155943442823089458227934937058367498500093750709833027059161417527738400007687693431804853848185658053347448292426667124587108203626646795983511902076084117329747331010701249586942191099367912451501259993249382320152729279130434205429363082407687781773549474180252182790676173297659361304589494259895474663895008828564845310616495345687279308685661380416945524681104520694900773775813304090492844768356702036844941458105170479114007812061670350364751425878833300034532058798746467737599121308640977768364632656933736228234281103418652840348349557705782393752763138123901793167410502040210408162140023968734838920127240162098817612918584427753781475097640114760749790651028823360221931206052454630371819319929055362672634481915511900743232941790697269266365576379528831375335326306246501044548172876398241890381324083098940623640469844129708597182025322168196413426627024606219946710171062021682866506692388960164947781903195154323693845150409200857921207495250553656219974417670064380816752441821891429518349199876997777572389095398530311557966298656593595589930531217739299810770613963898203089953274177228541613318101184369341038086617277311481307082394935750720606631852032719904511192039182250602088632659197293996447688713644712450938730406957693964533567331434353209020935099164622532716070307417928634450501972459571480786048840400153781872770307010111051248835540795782935775158549634843925615175404317660975839101945099643766213777495370030292014752756663753053579416817216094668817905379345037667137819822278429823249696492835273783561966649322094219039257833797603976452156184298053787853820679988693457235179055344575626937094945011999091115040611272442406769963210095884854743885060296713358353731419247134186466692583224173880485940659598423964907826521082365653138311004324975008316755974146652850107991806070874356475923932277581106606332575525242640778609468823321330438759759191083939864063455731977590348425655453359869067528129908845367681663624754163763197686783756211783213466467453794802053086101571466393310500277022202811405558088578053732341444400838095285659748655645368772650846598093005180357067772574687316026819409851419190695109644527132141284533955632823735537777949411193507907150287684688189914048277828319570006857462326505669599665592689628524474638118729600246642240950653545759702507746300755150431945640423204295816144138345226114805975169404726751917821185990058834825025023480559662709547237237457365070373172226235000094426531000710707111697540670530082981930306959901830161553940723527095237492277076447244902746048007974140262260890437066242435589860682524957823382884135181624451480420517027533373055963055116302234224272589409018364889179856033001372678034217547346497184121388847161845049896543278673088948470419919171649851619519904351828045693320811158020499627127533717003977823460893481916194220368577850487701150674244606945904524086502544836538562832325684518600339343687634291435300473148677517869965909621703401694548402472824955787182285615491945816579958002357378088542470320694673818967236089749287421543539722825154758752541359841902689212288679060470593839873261762449787400154836683652931602838363463835008366831127543143928028626833477605637184529730812529027205319897885587021503298183382648000855552868252188148565696703816564819520602774951554194872557829291469442399384692941684377328015417648032226720086696988763374742487766595386434817354582005947141349985570798991128904654787060542706828123932939876235137348603796322967393795074730517201323590489550435640198135942683230883360435397880698603157877098444546292925731264204464807845605936509449187339812773794085422132371141270419945971383333599625511584766438242333753049412469094428511461955191210424637326257381321221447864404609796970106147960307743497057497945635412645218163123809487410184733318278166472206288887771469904822167549871793346163597291744624508821612998169069073470136066878113210324638517709850260725835082979802729864477327068567687608359528470099708248468263433731109637316264319777730338922055732647122779617097777402377267617674149490331251563688306633988448275222272631584252059432446220593487279646951288503703828330459434970093011385503936458513338706369484076408872157092439114014290778156513120823470403385731482958649047667097488226501844576024265123683215920336803255956130840615534252539854089369836308932497528927806064829560897691613545759487149003791732469868700120787431387697485982646162786070136574704909161590299295835040759529359894906747856096125299594050374736388750581179965484724064867985773085326280585072326461254358197973418266614856907178714204644119186231364821810646005053197444670518762101453984977744676722118734714361660993761940229347853521320188926303616076889206530777408479859772446136997053781309225070406280869683047067254500422726174909822949501019849453278043607202267912759872120012633355242767093490976325253339534274416797863881448621905249246054715288846961079338965022530584104646176098484196180161989217888006846302115794790223140440994096355382868215275876537723129057867740126430436662051235228873130557154068239309077593826788686902350254175907573275504998889110123164770205761592403010531884673167387680449371221874956696928388671412901308827929754365046077948153632692014230941390185288769567050290406739120310077367597445832550097190513138749051493584806097750707222085497495151209617850997257876912688881569445277608207492049792588632675425241809741018752317348968586191283788736849640042923624261815762711751391936060459686284156095643651428089808019571734525075503246703580334744980060877922881408368024238477900745206205991001149108353089048200654175614595622334102760610036410979407390365758437545509828488782451276698528760056194514438127458520551173728178503890469175361984422403828485008779376738425702835564904719432833868186664808567801647110069658215441691817260465853954166991596182862474896617772404735168098130561373532081607095370025675818528706299144423748008928353032415704812951463573221173553519128588843216738090219669582636798217643976614375167714979566714905178562492048971799372684420684319523191727878659136754587063409144417361838887306948538760388944736714343284268449281982076310834542824895514105701472008080530796292386793578744232361409125356436666818877527212213627600655719160308047199448038649182016105431861103362936362358595063746653357038801768183156197926388860765589288534870452817992713602104242363504981696192235656270731697427573367231977822081822685037482144937216885650678838341263613214368193732099723488116490218026274610762587078933774972256979251780930963528274624362220366743780984405333045076506534127266532639037743766842999895605206303944191290805385508928861252315998181162265280052066987088148592172187124815696487618565064611785289763570063046089785631915338406505971909297961537478173613003915843593663128783582754631423602532724792703662545506830737831189267731783254881306081086082108593374846492523735640544595358828599036863558390430953882377328701579196434038323177231676331512978916972499112776633736155186561575453089504285115578350888037484429072710213706661402724312376516949087146504723459326219820081982210521813269777071221810948982737546299035715598565657588297993050117802924264193003794473626664157670860949573884139256398167170210871053050753788001659033078183484811553222204440253433504521525424445863553693678851983095734761261608537302144133779010183927391714552413370340734499684351939631954768557151980930077586128184901488061756643733919061285240462597004181699312126373628099719507739155969585831880757728755752298226431129656182522509256590578037826874307733521215400432223258506789298728716571369337950672915508344634129029390344869854645429377764052047865639862717932182803316570440191335057156685323378174123527613239095471043840134246248004813501935743138592118010871364609811349859746351306085758827522590848989225725165920245960103242769742089941247150187198244534782035381368950214837565586172404097281988281107589770110752825629793034333558263202151385726943303640169331576574745851606530951518046916969697113414579304813472052222668792976986917097835232504042448190772247533178685394692594195885898689545970922853439658796039941980295519853267113290643672826779676379591957724840124011961139235376381027254937143047623227869054236314728691499814227867571372738889697882021110235436801798366310033849766866411720187509746232290849662607744248982140278221417334506965606815748189035982898430623769932402930593086798938122774695407144794515616601527525959567646027978945295521547437738920119361154554175438778358339674953035832524293562468528350259183255927153003192905985779162298102656039946433074944732225641287439022956467394501453583716816905839232491980703990268864730142498534422199138802734887657544473762751081371285932703787461464079929701697603636712307079382065652880644871192978490456258104811560804999306940858364780378164739590811260787403032614680101971781858924492245027257958713095878922196911398237828068668236743982365863555315406883543874737324165668242223689752168920128936908314124596762445732691071155392237718337418476970648636362877795269997574657896330652317269568093637549967902384549101325968956944048391183699692851475869152623229855265673445440906861554522147438103974964672810897671285049298555164266767782324481040495427310786784639296672692626107370237097796963334208802448450937691304005778747493200110608445303429229668619810880958095871826480538595639527680904595741936353691111434790863699011663044401334662547821855074161532024436682054562796375703300918239450208769730522657687558960426625855082480651197875284250465650493950615035266739919941175394366893844181685847590078878102982495495413496926191484514399392456384869198285531359363281816610319760933628495067927814759358299977442200423833956667803979788308950201160938043956302896689421949725267597713804131465877253840586995577782290727893433143076285640780749334110161875356258223652340058080836645635195835336572799580675444842558335230309965823537356589865406149737789617161545363800884576560107090459232131147102909428986294020226181653235009789053150384728763778926834807616495560198045699196161042874228894505350036613518886451578802612549079163925515794443455134480631433672419254918496396149388483270072426984654831062617249227075159382309796197085193462352797982451477965316930990228770492782396165529943139082797502629928807313069845733087043749325392618960800752874989632152901112578216207097152501324452984092271441456973805207532507074093720179096130583068190905804505707136918038207320940815201935312429257540002579051555043264855897787618138528943520207365904332844945142342364493523928051818218902984538271993659634852944741234199829402027640615417817817404840923192998129220344471875472148886897440760479529629386037508647815831939318452595284275217950889466954552778347366682534964098941293609508429504433129508514177091943814895088633680983644589332195803350629321363430787677956472272784226958954817968872229275178130003750159312738397451475472684017878486441170733713442429765545795301843358104964459093697675947324457252810237995605318042689740427527676208288672712013146257131602597240823470606066771874206701583061644069119402252548454290291992296037334251147780506060885033644878786189749109027987326711362469524676043829201710977810365153581273242482446593092991363939204736072552431173168937123210916508411663736536139859606144079373519405205118272968623206498741185806323363764108842633918444294066186691871603483256622484495959079734580489840530996593875610737778811292849936321102134306880286969683146369463348257945101288063337978866353892867787819416991049007698356044109288832449362741161670487181538169580796526560991179159193450446225487110893834212669303300775905939837872146340542981349414673939764198503975230523006930373457723300987465092947138402462267962457017748147729177043020986693356289723371195947626896486222743168626582715977120911367669041728625756438439610958793916845983787257992825446742519581544554895771127878449730665992508918015068248241181072537040333787204533514543160773868151668492874812617490162273148880211889839133782138268735760658116500224732141765565900287846024873265512230115369207939997048570640145118626110180204481117096864111408942577821921772111727304389624053473121826900063478529494290739448273052356920361550998878941190793946979382532074790503089779857562789768872788347616988943778103773812790635532197117424118635553667220655240229090075733656647273617998452101818591043782200546642760570084293394331828296514180719748533241515683708617047176638014946266876235366265317835561932112016178126171090648393020935202564820585445622001062652896788760563767457572803057394627504525458100063694636140529712412228966710537187701378327717861930166912951162885202470217510526487483599733910119684912768479793956148193495410018628003372010789992841525420257466631322868889492787839375218098515314002969374673004043479254170355085459004387212242453075866076175365286488138760372718466744609317076411671506389160922570664912928062464742569298240140446541533880848187995864800526309422900222083105097400448761397135849279351664111531672427022728198714443361280355163498823158991137912305551064682611576949742413711112206456168704934367781612869593776950681099309304164035115983310666292439250646845952725614446271867517448607453830989584976292428650133950919792176754566162417950464604770940643984945445474027750597914985263123384924385454320683997139249648294333282093517472325060671674483284520546502848670092218417688002489408769963749895397298312353840776279594013441339269647310211020180907616782483758806281244519524912208104874627122537378865878493131998782469023249594187748652287553714000510045372087411498498580068469820476347606838792802356512938631012702450026515245619594848376451393515659861329388509492293388905600677104642022020011845090831728632976239695059058880482113546043519554908286033979867182167567108214474337961669070137556189288782813643105035734568338364388234850082861861069224296597812386370948834377058597491375782898453036286235989789356991959247876792297248909198149112999548436699029250994991612893679275388679057791850663805877811693300411604585914038804945933417194172818603784964798243261095418055047635671853457676764364178469336846072789642564312109438669762305606230895837553017443833156295220498651020540077573102744139151246867918346008535363179856997969536709737617016051135910453902967998242474155406119021595086502177773908886672816057455722529300337666624305991793554071413097031949104103536836972318604713718136223512481602805308059358275486844116782285291062356171154326884249756009726762147738537014675844042162562728583402368454574370647513895700649916186196440458622240504182244382829543584663187299303874278279877088611473177723016515699853396114954930266808931624039828878088548623901878020915449968406361482865708357370085524024301480792823900660484371488661123550180288684860806685431323861239095612763368860708002279702902116740032520556036183390211253230047880439580016575204061613429489838468565748999365966416879371611043481502130906704981716442398441533350259338563626859211637979100802700469254124412971174110643144049333373255273475677982649144488790849312585976241120370729540989090140265380532184971167333081024734621857110799054974060330104051369454865367764168416553168303002356368822381817900509602023388949530805723872917549938699954603195428625969232120832013783022754715876368030236916853919284868024267119969313895252705634412859723601938351418497439641560007732217392535626947396149765120352920581381032507388762660405288183756164685409925372304901712638926128471140665377689649654464128469768044047185348475840627663179566187309876138233357408211226702257539694533827812091767937309390369530852703173559503820665066647658589778061114303731598865158126146809964831276067535245163085847737561526582476737668348633694622044945094675120424806409771922673930757482267244999693862803257954118039577460881722780062165492333163407505438631565725609199648317850240577455393604096648654204654721693843580830336830328095970656620861130439155055063858510514984020838656007396826087948571670120475940904595379944415960167904959065663013078279687177899472633707311938247943294703942169792987105654193249892384463975140111762009763134538993499096311931632939706517560305149641336928617869634405086152224991280088379754144972580698488331244237556631132775227275775245666141519772000983316533090842965344272458836651298182866276701769315039505053230927860006883725385765283476853966617073341625877314331265361440090226848480680075210167742224588501783621200909107906039047329864653644755703858184681173570759209997595484360754981712316786147258843643172424336501213570609441052670127786834146457655497874550594839092783265815076207199151089447193623403133642721768046422152053230432290520990006333034704133636965588964334202161564097935911317401978256045388631342811910804835729536437770564545403917262771282134589305054959444063649662597496208300268655200343511202689790225977571499195925577335326094609674654839743366398044140664774413854891919686846411454077880331331315863433003509078541389716305586939530476522051068586772262889192388109410562629268315802228367224154109213153308306504538476009928580117893153745789693378221650149099721787359846037916177423282778247059906816680542667482133703185648492566655066265468457221213817804337333457941019205640761178590825087962482115563898423382690666342196596717297580182100495703544852528553880829611207492177426311205564768607001753340669598710908360105232042530627842263824135658632357314376810118471369885267462375783373485814201425247067800507901111471396062397525171174997330208694886674913225205740837646548895074103785154969388612089012507758612887146726554109067796584058249195910716726231680181618609115745912430223485844828943444580486678183656542165979630279370415534494671068252960621114732687359099413317128931658890015906461166505911895055819711715541198093051915889553089213808339366935403047543613235880528024594847545468575143025302087709358323193322450244494691149567526981916899118724227357985455199112325332465280682243620061434812374506911199192824178009269936128208345292068946534202676293795679419674777831821120546190976887430312824247304143273848050909644140426195004359667716459562080964878990634742029713951361998619717332996051891845730418660647920600046561163589922105524071071832433865765374693201573487324114017801534638119247992804089395603903126362044667492544496460912719439173891742530946100784869931552116112805042413710240742564886589247025731312812482901694724083314200010293553471582905464385744681869677827325801115370646953709523043726534883360065000983101853650220282848545985013154657413342467803792695621917278623103768588678782760628886428667308564073120926694399395078567849316566586836014942444928909191901147015621236317725838424703747970717739017516749810400555606863498851038572300901870910772667931742604750324712761662885822116197743946449388183503244245149610308430307216619267335062773839288120630535273838214861006160952014794163005923556057674754438839497650334136181742521385034913886699127545829489127093934248562579528571948629241685246839956824466254862768078112736568956439202460327060428200287937640530112511486524217292466493831218495911305631578970048318401740062407998865400033115605369374777168455332454890065834475366923285089810235470894759496444628575279318004776413876945854678025243142200167531063669472964500879773546162080058248621501305574043244991361716074446978791107675036957299272952351704455803015164214461665200711696012327570241898560555546356175636275587176029561220803689000484164206005108654749464498763661873890234793109521564101021203957690386960408311683941890902830127761710924906386503108862864665391106529067892836469575671926706228852149358521116859595794612138005328018650854640569188131744732769283138928938654461197866701353716965966637004197171858600031918219598533363074318987601968497062596084879831883326794333641509684887583784845326472482775331731427300598174926728698077647286137520285980747164181719466529381444914316736829657643110501873295029243695888663316229690708442850995713277289182124231686138039295504975802741852102387103321034116250187897709485261768921981855669226349446123249685862353555798864887250180963710866897237448908686736746368058606491531104529047691211397845057569344540790393287557268433143218840702888919907454127239411227761442715266817260712886245370092320122699260718871682797331265802437224251187682293980786152317461664257869095430177637729534943736163816369684569781653147930371566461760359952363394492213121314989633421353981564478008273540786399015155173274096471382166749407086543582620241552247182357116726878832453960313945294491886252759057903438099535435850464325696626272015905861130573125529622249856206409378850985149089961200623392679970148328697024219734315989159535921427192980259832681946690796736211248149962515969258732775082331033054703843499062709778213212629174199179468385403330498060918177610488200377502370203516749773456747695189070435664128567471095590959155840770199524577310027506628436629245914806796246044078794468979729120268922107491971906917251256679924735566022019321237743315771070177722063857584442076402478207103669966724541413380134360509012111665634137459251799626786403684922903160299102337478992545539531299644990473219523858761667869397931895860264981485390400250178590349479037448257893361620826900138342709633132563615865874196869518397390036423344882940705141011750307842539699007423602804635720669936274553556010932093218505579218006712031311003762972716544171104176147646984832586455484298136669672000374792495454724031697828619324704700929908965607903416923783674717324602511414946484473985221788419193192440864911677511289326219986491473884782632414065333916174119306521159992479974848763795425817622372462295804145384037394876075271645167772534980021185454837186141094922702782231701303181172487342480065579385853368214209390341070680610242700503728808860501450178244016604548773035912852196049470111713123095326493928067366836606362216762594056218618683512476554241201274644266702378687798937246330183782926049539581941561450981245458623170309205614595441733144246954958459115926404982243049425306830916893078309500126421288904323597176352135936029549214915703259890276991634800775207517173637955953388371592700896667970352354654067658674222509131599995765483117208151470399411831108787160075712401787795633456480632249372383431486192208945035264881760436760340704515677260108195224921002021663645204441288219483039493207808084382198459192306940865339961747153195295086818261730576981264247169356682685998407565019467170014085189916313565168610792562360365017726538318750339591302367490695288773502697732234873491154212443935920893275072458488152611508191285721596204574049239580815381629070774630804474660268980319908913746253154754396543633033602414741370499157470948043114794457740568874340523494805747366289346598512499699125197398191775113804301377313827375385725982524118309557321742748624308577096338451523222891946135826156275325329483382613964541785742755245304023728538138691986231923918311295307015555506312938930588934424720607170362536002316033933008964486966647477452326538562727843610556892243318877878637812675234107045452108808706163254356711158047484379572790999686002864113236128588519080100260183746254489197568591927395090385200953709141019076741303768538064941502150599379746937562560889169672799049441198891586811289514159224090796506017786621426136987471681156026865544389064081456577644798428547740139097070426174778405600001439682206944043336502176767551448347681718815065136951587331491380972060364535672294490225510267279665290483027706134700797359623687468989093556325647504367056025914563598299045714040049694005974762544943419697149747696447476987397300076529757245943296657723946368529019284255301836371128123742096850325208682248951894967471730320703826434200537606727382572052300890935116523267408454796946575613106103413328732150667321054265728210253158650537989702724028726103224716968561900606690055006794562073182871327166830262368581545083346939842212591636871634172004965431468626307595745449131260786133845767963943141796371203026792307375931241854229517002730406942654427217418696436001644913850064081552858198395812742198501734796398061047927328412334461242870432861724148167661001733291204720955690374233584678754016810806116126154862561139272731026985709364046140673435814052939902647467870013157387863504525893109678174921895906852369389586448732839790924669958672202618657002487250308702429956086085622192910134063341628471526318711048076636417083931102486370532670389674502794282853313430791576086745211704622835910384326872320587406892540204439479283251738164057594160101583771219160101538921137669261299909486339334889766713268186038673890428032651705728485551231427993789049881799472496192836147521680072015944667788081322659693049224344992664699032144741466558012788010266810266388171925414185803530809567178352762591672595667443929846237331068748321056923939689565496242359725853658662121129508334434771771717633619307035768039212970673332268163744079665453389365283297868072061564945655749862747698695463294855574805678335229222122795086343551845261061965108177532521320867830693762057197822629233241058384375192108834932052591514946888072613388285958276587187306944854520833746948481481100352287160708953052591546909549288093944726519819033479617032402125956188208159022481778194003554193660835245324852549653205143721750690136158286902458227121763131797387455219791263130676822019081744213997450692059428679425146090061345829153271042487696273765852086914564415063539740357261169585936349679358911152135168117569194866310011631488949185242195098678085176936690148780851385648678464791890347614280550000825464527033459573944555435079561429193311305687307673071289024993532204665404333595468499961072093708722459313708657423812951715000439340109355207566947554846310502365012597674785300863795078191092837156407888407000552581117675540202386817286310723236118207171362034894646425657820493456952909836369527670008584192482692822393573405952298194203094125394070070117350173555527276311730590412253674916902817346664537288705623661147886954780836193119560215841095556898537175385562731152151834847247419362470307593851391691931648424355403784468455616978557659845772581018482068132725148064455341133274218969541825230470785789596512581135859824570924970834665227157576430146525963021611790497173273063444722243531609749061628897262153532331543193123336341922258443084355903922391261317067622015468289287680823759414844894188528794398775027290507436801223469631634678942748781940693191883332410700791097928619785697331617055256368400423926911839817493134146474617844294772137674342977068597751099948596816774926248373715763333529616579168605569728052891364238948594952641118997102186751334090205289905795955417937269109684714436277786019105336271871580859955752894293559714359743682989032362871051601222419895110991285109195243356168447791778431054102951862608402988245781210603749576109521500243533151392081995399987876799971181027482097892665424493466810577450182504739797887390029045601641258353598157056982633185153803313705874781606902215312415904863370129244687249258115019725819593610941534701249017693717595059029882064462009508115122735838438164913722731766795568491000645258804630735720634527152884091195598314741784398672221344017540152940653893730520769661868148159631617440109210556088963691715276772905523318316758520012620209933912862136625682840170377598559029029834134139722956090148990253108322949298041580995396610339006669799789118714893209951501232316812114245634994254246947294790481136334502795471137576922011116840307699579482170002516372529067853246205612209931395434869442845931371825654944015571444004127009006264905356005924399993015912664618610960474971176027326216509078234354858634390601121785629918927714469549374818916092635801816516121749398129791831463853538348662377022931836307303441187465769476281637804873937200870272469410774875085315721812046982080292637478006875397233989814451191966885933376880059843185283695443052377274122094125211888059429758159962660274803103266203566953901336480726870840436114273571420102398845036178018403399115713884735153449203159813618538759038105587001709307039736934257751922909453608427814279394800633377539125708117850350432451160635466975799934291083691668539233755134241455224257939719774435051984070282709152854174219369828980814828865880021523546048659869925787838291417586748067178678798151808453521097423896773124003885841062420619594722424404470200729347218188535452397866588031592693078548337686743928808105464751549315326871204221485819256527908253187061888785970865794537258117958665709511929077138207351844361813456116595279338669028175014327449906494174152884741771242760898424349889419998107204233389237812934995925752816437629947420286040216700007530903272974914917736002161112202723092546434897511114491753846595044336553680909012499750964794156622376051334704881186661912643576980397773284245202272043686566943602311480530091141261294772425803008885217303749952628885797501274446736704139107021033252500221431366439610371620575040639036132116100876842892235413641076166371744572305718299448434731134758072963227745405312413264145471489328810043566508908142717611766152031822748627021495089018370074277024234929575098476185863350767120049181251208915438851681055237804353788266152295475001316107677154198453344136042646668559772454917216771531832838686748011644634855366602376894084533854121561273726925169017313357483455461086114563977255432667717429035651179537712037108098663192244277629834325067008765573028408998979101948716707702968130180056812773301294691238166661084410801501902269448079393085026154888930019513649503977315754289547099262321107058360654983173124491865416253849905656197065383136040312354585871464633321830947652985958756566125408327360532795531918074038809525365572321076414460427759754944041323250414908893554509573394014153467092098274710594895079450160770598365055542691727036790375564023399634391789735424457546548233556025829373605630706473546757474113544656551177435609606677563406376790625316940313061492346944405661415042930617169846063192044542112685541479500545566313962427860082041864866553317180707164153544315191401952058705010307178688230906450464879420357337535518082800211420757413801229799202200596666998071192852415325668617496695975727563348371178583497823029633185107451866452703913295168021024020073214224756852259323485392598540075744521110593339079531207846815785934234908172403770197900544720079313322269284513248788732012995165066539117331782777632010401052301984914579126734529421667509249877182325966011461074504508294136792878739596958218198089786902546244008468715942964487028982485687584569589744322954298372948939855520424806511593379692522532585427234325362616680915172358278201271751292064554205252327170785810492571518558698237687394849181370226740735967591530764792040035772024941392161732586483602692646219172569518824003847098397698341459168679919284116018600220399312398532496363409863873489416792458618786042557661380281987062216722864522506117231488604802356413403444141813898584622865363137402793498651975151190419280522575198648025867836443411605553756293184906762019408057074204550015430128981842066496472273028807549472540567175561675200613298893671549507093676507374163015198164982885827821744053421288672595481148629130431577764111382050428552002129927784198894540999799454327197822640748118022247194526029456555760701326626891953860101904988514397604465454221689257390786871307739049390481863791887859883214572138978761229582727490864104457926901199939490673830729552298398860511131269643938008617037744881980339470555603718024737669117226219097446726814229208192229224091782887949009850768783374569296552299121166550849721765503786726747172043918570292849178713307307782990576683181103557900083840717577461650989272354488053226504947816606465953599388757805687838003138815439130734580148746888437134001724758262973113564281073842618854329532469410021045138765400072473360611136729926675023184855182096590347353927001719001307994105658810884794113726889469450780523891809666281258985223442049817778712783322910646665329014092361746014309158172264016376309840367033106712525889711155442134663648882879599074842768025899460187064320385585117431683806014810817786191880302228053253170241132715350976849478748811624523221276612754952336503676547697059420335827550371192560163878047458621884540109252610655292941926079160738887603934919232281532284773033487104295780167797907973236129764790387778034297255116779779412468283913962178576147400308238114519744103580822858149028411984813884499486254308683069132490598808387511244540123184556565973502548594302621083928132319554216602163383277615661388988166035307947966898326042308795245744886611601171528696882930383484811506180322012296975543530353495071095697507518712514997639487263004015003914507665195799207346753421102406118294460490033755388869166668565716537365396814714483402087615354719509719658667094571076252033780814868766426793553638231431995852332171575779331568573249508555574894435723743750937084621164318841217601741738899291340408845547019367469579253162158683959252581520734668797520248933624411559956407910886829527756454641893216032214960619213612957229320460146596256343399684056767340336623330789657411172888788803222751837219076314760124227663463399786155928830270521850048184882619546385866505744969122965589943374984405231115033546727865277521107441275271335675164147676480420313008938514149993661009971541708380085979641530770475075049587396021465005099243176070528702359616255816319380477234904188085052988747406553434790641635747572422112782736918073533705335307399532828322766286691959619741963856123087447117600205854921740771805808021902853020998577570621779411441649042652980028214313920955677865256171686783535408123862333338448526629353900040836621167384316273990187734569732695744661218128971706790808939424407184903533603697066630566502583422919731860914858966398438383129540915505835428489630542225259063483217168467479559804950561546400600696375449840879037555010800879932012240322475025205819851569332617306385525323221268580372426117213980973969008567192783431057639915045036454183925618451394561243720904928524883166504429708387275238986084650497166525507973308281223294579605108576961517772403812943919879528228530535834280342578145285680672631001003267435418346138047241152102634437903278564247441360697514284264798381738911775182898629959720365640025909993046752942337010580079726411209155823296353248007215549776744189412431167769181053828118729023163125715126348102380549683694876279226058030180592895940885046759551188657825448250863670937741604638340748351849495790196579232287211544221782941789623283623422053174706558777896179521159394267196607709069889668898392808849166262955940195678316264794075052862647396957952674459784712640426171832877364387860988429890934978944261758342936015624562678180034108155450224662506247667132052836349385534645942608022820062586261322802243451273815783643191603574082399903306327117102386395935750440774524166741209440857184298275764222572274623397726805151793834155497666027844962210630401451159128260296083646964306101189457112254683908494997983954208441831651486179680425310093243861694641577154322158859531329829892368920445964714630051261381381860768297605582166629907372509246589753473100348198253425731062389314329702226076266064406013037071275840076033786798112613299469558364805586790008909965060494228089549726242379793632761951051790800604074373226493296937743333219007896211344331803244106147987748484658877610474388297897522860584724887949866861857120398842472103218747527360678863683981012303996208064347690923844395070756841973261430779688474270185774088835311787880854898278201626382151390550932750375092357241947510136861750483315670822491055130732782505198187527395476198628205276944682191606837083946994378178361471430963980929600854381510930408468379493010810198838758409403161608246963287422262501427096347139601095194766413548658686836872639296699652068232344469789831391190834691740360097819434379281797634379619056596283768791699362858355370897359945201179929481156491728474204638997307749103351545243268418726406306701068483755582997982817695635396109997344919400166398801271618172760924830636850355422495042330805960626632466612345399122627094241538370383976843332548483453519503299642369592982810994284197658097952455508041299324865788758683761657992021365777320298632370645493101638825632703538861424840824545338715519809171787450434206064565022473473165119555221282084039508750142892279986711442315195578784700794158235605880191036233182699871717969395999449353714843435330275354427257420532368609048292051420674190794048841705867231900293597715261079262823912516910023883845696390324837429228186715135049268026193258230159562724708330658614621643622001317088183259723366506495959178027507255220050958312817057488129714016892440110975734771628292518968218798933151853782572720023554410353890343180228517781651460181932761339756530494181848593388455971748368530504193681755935839078535612367618814186343646832063259421230222512905920368310190424413156962163163962939207831451825587774204217631170277999771928948226601491028445250316653506506852435491812676395838277971007545136719679388496360887750539864844700079628914250230330971524699895245604351540839692747633935526122924302657451017786861755798721930119718225230397731890908672484811017132984405105994760194707908352482338876128510141422759560617527137078406909299425730450236229222720626185175843129097553173551376185214827739268762181466433341085023775041594016898139960468046607969873964031767435401647822290602413241850181389873554773746096181624495613180919044994824371808821566764376972017483872589100489006508926306318325557459470036137681202245443650753906706960709662782793627756376687785846978878786903196611922943472247986862698139318629495520871429675949009650799377155319998677964378341079960532779613212456780590185952127768656927169777046311289063151076514331653142591486181817129387482649767274144981203742345681429812586934715667561076164016309969194777688929737705953007099908551659054692392732714860928372522652916445480942577536088103789925238984814795240246153842210258242246551717848801107372663255858410573764947294094911221096455470727390873988930228672082188233142450303375776267078147493402476395256549655526721784036423402612815020407995339144246467685501989843452310514458412645529986112086717388101487146623083731656266662518784031186053249264913269135919605859619788361012720534074229496491995735826646578023168728933811771826751525108466763840261340233882765914465855302574224432864414765190060398188357038791132514462181725103480602842771850221300122545243165593971488729920922068898207883987769833614397457638210735540416613310884171169935364893362819637440743841256256292645920977042640857768748928977724722934806106007062970291111935067635614250576503716199757798471933260738141609593295715046580926080833707772742918193269163296139832053490815352256988994514950404439251431771823491882062663973935543976054207389886869363123170065080935223841784470202876475717137649019047830957715468924875683534281518180503444589484250237150810880669577436112413463045758303666984907060333423182591914676450368547692257733574495381020507274238687953130178148296895244385230772971173762005197011780231589298915810978797084142055347509941807336719060800585411338151121622573760335561577123233926432929078022281911636822453676975739494105800922626617078995555680928029141476094133460658017781414409386196132584274834624681037640210245452665903076688526506053577530707573786891209741904147566328052157979913289715950477245349655448858208516495801740460619778114447577598879006940055934498042866920738177879893261218697405965606382819246884401003434454070443641582441689274416834153124463626124787975009980847538089622609763954595499582620514719191104841737826209913843273444932768418397997735217567829279461527860229248652035215217305583255151293830471226858731070689831327338803214098001240743039597231219822406294249370803053171282688716258136318393751029384871712788328235286330122565170524587654154932349727240224377682640702969429168309603642395329243562354244523743242068524343953810748810075927403969663792921987982023016915082048796752142094621372225799126299001972633687130622422239537198010950619289905649875170529338730477222002489408928850215805443626094417640024168545582484267922969692316702864723251135610440678934588829977947366104947041898707020691873718726001545559844778731244448580275990637795613258195974105273260081366524637372023446384126708686530283067326774106099924953535885317370100045823797841963762125385694053423500996678847635226586642988645502409570694940671430504437333047939826588478449100056712083883952642299446077388921848070934196467351229903305877052618479252089902451683304193015205237347988315898174674191177599198465769841802810149900138654307398150028687155916382252577513624593476207558045736571736172821781276550429569609884888612578449412919318477954110658722786172985414803199640087336790864487185163167772029049737578076869876955347431813120988907082318505039139639108969887930464276642533877443346587226939160545153945349061674365409135101244291055897151464958050628086986562319491499085299228799248581698017307597939320806133581875760810224948272211507953205612744499455549478442018479207960378790362117398140412453769705367206721882399236979944969991091631344271786583232971451153269749820364034748634596577232161905228264840866067983054722272367572195583996823744912011690645358299359091060179741537301299626957305432649672150528895788574197358818646140125820839653461776576744378630724346494923110799916413438618654019934945273370721383199186352753195207437583962947459242712993537313370172882182643377828959218759715276768863656602352518161067261320926723082683412414391191216552522077959739883789200180343261835097362035690777244748202226513065523310224505983781268430797773794727060098332960544727224303410910209635109462048523790982424826307595093092640316639931218122718513973211637840264601984326880809141701421430649091113240183445241267869233189091120975326516881543146085475180752782041271937553667569514786108609296676798867825728084305574381362661659327911412827972465481153061604345050057573146439723829720046042611750915539162299915809825582679752060929475184608194817462367206386264837813296287426918244569569874603734722878984187562946533193362126551905312211286702599628592807489720451567326400827233828510830901071866908765294114643168843990157372551646433530387806972482376433377233665284911373751261729803997258222270109132472885763656673171207747979953699725500755226639138427193618438727106723513192242567058088366980451458038705009790988173158803288395476849987874220031030106843053126877210905727315934712731372974079773726737455240593102734602952803893509556630161798543094734696713597531327858084422687720471505636311114760221061442130516295215888254204228175375772706014639033228034583289460983266067606472180694167273369317295260848618485203412283455712867464307938270601204254101807781892038551793019762596548122281653501355559427873449156504419672276728637894147136859095591117483248294916962169843641851782497712907835256199978729738453933837416461165232405106384440465573354509279042466492262799489238509941517892783926437615617512180011471543166188811608202183507948254860151282232788732170476547680243096356634724599172396266451686977427167387510130360256909446937369355545501728965949895927119034220307699619942972422867160154555339545759426659231619294798883187476600316954482927642319219556157490053636910246162282258396642652935461745165830416753263166421771989160372659053773802506255029142871059699839802122321421986223592370511384423894030834758475485065955387947150445229541005177509807659330884738911137664052495604130450209548631886934628344213794067900776192130241801017647227210395864972792669617121727647346479414584734853906901940604871196327961914859329720353150784586084358857464315260686666193790265964826261008876163965232318618798268813712420258648213126642580223746438623195817543367212608905697564861237071857667755790557728263351373969822428385105929106210751274119608907767275924893167560811435364542490596607740828374325999389473336710503879543316507696978124382735741744223424300473127918238473752983528086846503865835759357961844458555444456262282003367711384408311881716104359613871642699449047118274439596363569873663352824422442096799118817887219642659252259441320527355959844057354289637024115301282147461910715336252182655045956981865276416959748043424561833711683193601122477686066084115242509145821253983913328347601877477054310356742354663398328310455955562248554973578358479211332235489260356040792802907502565184420963448901863552165305714506830456626857835919876521725985036325847796005613568605245649653527916610407079233451975281929341330071437213092531374165856602342799679030495306323413634634561888926560108330853892295790535924700715455347936182569953855907476985201116088725639676950727086886949385651705305261718729242599021227796750083457812308272334969292937109927406155793623281157642816337387727100469421950823701020020865379343163896401520476785755537142052149696989086175426840444330889361725083489567196009717776830504491740670854119562099357704105405435153992835847929939052687807918717785110573342578716169951636490340436487031322871308873244547907843387286660162007136824169241665067136978572910023036591971323179196052513398757887246008660297626150331127209505172191931287176896941899853890516171551645257758102967810099385643515499300651248021481776824186328994381236261717881007170734535200422470603864843046264812504803544379818152556831447736381307243281557468524728168704972905567315665108431556309938655576369531340593524359262454843080196960342746102407437751740972612627170515007548395620033624514624263542155216700014473304071011383728621766668328861770867856342425902592591304060502353469247522044310389211843296351154281502512053596271496304908244975707534221692329902340073136663492854592603275725431585487425918196343405607101896111327103043288253640916656544448007210598343648490253755517905011207020902004852715849514930641100809189505982068104877573510757361104940612214214139771775882580366266800059321267696445330211603996945544412218970590235198566845354810784051311995543174405301866508213454765629173154881797678161920757364970812250670374049400768213989920940568548772465216908357036850612154245923922128046173966511340326985153985249520142611646969317584510617834096143987980190610097429100005344892641298638862983798065483228609854690524249107318916459405510456325389202321056217477320937296645464048509984621938852207138323069814348218090762941719385199343216496301528317475663167494843548256216276723544459034190816602148561640150873462430489350928162017347168570735791544837147341339551779121831660405107095479082633441207893597498182276511720242951115658850336194986167165605283406322735713697579844172267404237151297792142544462272741544447406328085329643168795074111243323277368833737757633688266651505141541661876071610863598268272034118064938414413486211063253170911874366618771774698563658894210424797168292945114684825493918397907140266070845074543069739787501534959499167685805157329905447190996281434536513903075981252583869805802392980176444786224793519024013735069903764047947157552510885270038952918634936315404821241213063966340343502091984933554241893169446318529603080760122070647590204434681580495920605272291252183477657812066573391857148769011860640484605968038801725446760469370271431683859928944275078923868424669392043990582572747561636214120073161833772213841022118786214621520087218413463118456162127933932042371685739574426226132102559394151248210666853357898751514778337764370155182414106591651980172335062937060689081538791405040671028624704003469774718903991734288988147129923367762810932306251529793149436226498269073784839748413964431445616591225625135639077308599907854027886097505055390397917284080308267746722925788830454407218034073027589865205313857413657399689692774852049844325492886842524736046163238320338673090726813123565488980850604346838324259775482651049508585323659381089021914440040673098465773687336920153747180145720647279839063403706521525061471034241713830361514413165627927872889542996442400080406003385441941574383304814286193404282276224482584773597795097407241276042540820252440529526649440092846407585291056052967145828488427913222667610673745525046860245145479868969650731053986439755371676181113114216843379899010601280732406198114303525351388458171288828996844941913493891445127850522705123982894579568096672162876307413106541819471497289619669871140953660588941934192707658169695749598847467360432993127920911361500981254561611027049486746413735599419876412371322361286959166499569571388095384317084970548901179980315217067741633597916964728084516800047285324341731041241533116847590930773421230566300990515522419174885991216248854674013280616375867670534040282575328297279979968175922005837220442055734621751486267051201147596520174208658327551498167098297866032267130809696123632428727715472289290062108155457044740686146692449905544263250385165957215094076566712256298051637651265382081300450699901006422403328162985501973413139763391350667710881168150818395738529225515660421872980727877969001192708440104477742014093233085864803028339943290551883600827384609927927256477296884341196516227885818116698642083284180076732036223028880041985905979948725475149946717878190564443694122498226792673211138682264537123130386123814236935197213784833706175983006524152033440179011615739726374835849776747409333016579444174331826737290042268708357313524749629435705086575214408185087953189981161120167476253231446543324543501935289751385648528782936093760128034433722748821392930995958788739064567831157179598236069318006319256161448231957332394970705739830182433750027796560169732925402765033802642402832425249777519456463931303128857990423691647269406460658605311483606313005219074209278065481383237710413547952699995722825672411862297102242532465751465986569068673350016038561123546093114274462442982509845277629676406237838190158508438145607824702577340578125959371347392526595243720720521906527397043756456969161357590813494688676213244369099361766231984422355668372494462980659736552330786041218970404737529266450011570360818494119857208138734797288189416464253270345644401551477238560348872982409648428865608732262307737350585147414930467106913486013990515266110538215925477173086275356431897942071971749181651268532434792233579214732781877601912897358453088740291996696322540416007234884463909622500173921039209977021755687602886523385003038934693037676052319076697973751669457624979801946555055762354065420406372956964462852429968447232189553202617801819580338102357739603732809530902582040130267410101608891919397061575120617962488652582471083628248043681937987914714793536905580066270504028337402386632739495840206325696787009295614391513401245383868234443536230855722337276953380586222910713992724410644308986273700367201283050899349566024089097990698006020899286763196539989642207149657559806416929166584718352193448193476353364860736420925613251915647300934266300414244842757393145333160088334654688066155384130519618010413220537410582160494976797034969318744800825539160962892918630760796239111547139766370418993615763826131632326645946092985424310829420734296948807259038041397272851466076413016287519637475166139112725642159434751556536792122505540555627783612784201911077840412240510629296439399122986715357827116247503924507521222650648439388328247077854133120141881370684536426987720600213251986416443265781110215815112637479648223155314358607805590614213894711782436516456973594731950400733546725372387831908846562547211863145201964311778920441387033306659874366977979197778097624987978636975031957087297233542593723075011414180919147170095419840181497240137956729893925389675525533219821068891188173156925140162884954051373900290813660769718130340330599420737353406294876251411254486293388289435329268040640958628563971574986318699616948844712465199878230146048496074715056554998892207807960392684726888595764757132376288512091609399626876580356357103871561067557262489469276290608220624675134972188207359982609946478541103053421436582961102203804435742383674703456232442465086833394195078337290083336717627341051475351057749327441130115860979214526491684932630725374230300703786152377198425174227963571401147997040483096117119374378914323516195616176065465953501547251795501961238105850932074767257275116305509903349925992266457556126041185797022337564329027676318377303399145882829925750572799775181302714080416765397716018144724566226534629449193882170649583155489298515958211026325113351810957189802621576447744580249105155640165967197829633482218013876878631966758459753230359350864961484720784046081947320351933623625466464764907609638591253434149767012782013909747063912630176525937724885584800736363464072834356859410194028049277537835051225421428833966975239105569459196590670665517415710050408970626885936131236459061903433049834519924768580955348784780694133114055294433622963153209791118416155774791161674303595886764462540801972038185194806883425671247007922486230345086820595431084154526145886343091860378014226287553554614494309439481267329442133012049009695755879572028605069300957864609568899864661917023324302502154359087152335183518495258445077228002230158010860914896029577555394009177165845518069092331144217201606125359114227252143272858120775243690927751693388969909389098883203869860699833615306080022357515986927209462225615264173730667932677488975835245119934083828106964859839004922804921091166453970017112287741260945308946360676312731854187281349423476882549963712202958114531158638077281102965653646988244536963004922619858868708331269418536277175515110243110750616973997806912215684966690174110260110945986947613818032666115680543861254160739498048890839054420447028643182587894935679024496857979341403102642491095467607574795010235881942841076884439148842747234714627926326287416431641111144793889728403136289484967039605407981464432251329198848226410744818924475760099781495895411589882220132958509799015191416143001740090919637480742575285202895037257644080423440119705458223069344318759712429578685742189810272546575245420705138054931532130797955580022410932833602298780181136568886399227300896531146429463133006074399872726223016080817903173841776029704658435264105341026920639199981398993575867700364240049392503586203558543916721529291648069510188579419746156753349392246255866255938448725220717649091766363115271377534302688841332491687786606501505471904075305601390163602941895973082986356749787449045092615613731735745977715044424263155598290979165589219459161499917126517991654180643659992489055780413385483535499250490097715162702785103721910786766731036065070089313863028219683197879495677364596158374137756592649563112226292969579756004785619764053409606395401926166718175068042941635697437030739230646386937087805369056334406412165812589908180164863711388242504147154297569086889649164049303428668360300648253807661158565774330645438646807155430469096492255814902424133027889826254817258861839285205995117477734039862921765409018876984329291972260897558369796754357456549760377741904433879918563417946123740130167804588482125498700649770363392378665768037529050251728900353783146800022078201308401405818941955589412219202548033227820220368225274757577675004028694646321431791500431161106078124415925029402875995686136310422562460832912182157566307049810939144237405035562566192286522668169480390145396222579581845717877076111143191795909036727607198405368663742883528676524534058693219132143337314960173510193151101515583150208599111601832480083591942947695898454336376124683566435452076063205543531428127493598310317416781470169757607372878130573065731827833802018885337354318559636007742287711867762175403925814956734482590433546928459372764036909544196156204448173359148132528063519651912720104193780280825322219276315213162329616138262409870708791896120766915427098535360598552577353002608107089519936308055545800989767964290172114242940398858992423887357266018023206684983521386646381150502825213670627525024298605802011286799679300146670422962166025314682593583834870782559626895401096523577494888832686365459661813550031661377722341051012593708083554545018113033483875500948967289788755801133555675379565304257413631763528125541101358036431391191632155390954625314505132045381303739770774141358025266779193547769423097454493465077952721981660487903835823788704405114261317632646770514057051005337832145839571924979727673916692624406621990676830496949843581599632859238648792155495811067943170368937649779931198404844452592430278812067216803248152540067655611660737619423842184378924304652476038762512190369949316747931248255293799002035635411567520636080827640863270153730394398253048704974171103020713284967126097231905632412567770899489350968688016479097104920202952583154236882271840357737194815834550734132863022711869502816703129951481880686493127139532321579984192691309239036063937930748520962533481640878232786997171998524269120895602130856923239034917855139174778965230348134775030995130539796940159786193812435081341959975279914632453671310236542934984893897264458364345918472958874553037490501137880967736236288673157907270402324539962330737438424266948572149697330627834450325400559303619572158063312027230981118507331160105387059793162805626958525200526627775664721578202417234876771708128142662814224711016135789694444403887522553918658975913344814252862176088751907631080242428103435591036238058372956374926836986696219881746389472667147646008127604396491294740568889976028726508759264804960413009594407163033909076447576479297097729938660886160478444183481860606989559016663778569233015127905711170951464562496051012054977632683310563542076352267436480864303873710542455803527883255221588419107418919266870183330231706008716879210195609797076649850578962277669498624465978841838785803910662874964737368240104235994381941154259259003555725782995810656337995536697727814235772314516881198161501380002506518680271059699675126958068868933588564397520522320257406097700571938613147948043069557462328097158190630761047354228843439056517761132390932753341884093213147382465720054575724451347673055109305383126498795442962311888391450244367331987656572125973867702411645840922739508621474131562735977092369541771888936577042469730397543561097284491264621958551889707570564644871881065286002396461285706227062901064316226853674062728564902196065660790331451439411664130268871060687942954418385884828630154066782926891949301907961548668669597114083153138456931310706687022103687195464787950594244565218505197554030651689412560089903198239939251704861718600644236673405202561610269251390892875973649300738155738619961368107079378452312597252281983384382820879672243330205787657887501397957078398710200243474363943064098240676352760057681374544303532441183735272599284737412040291789337642794835539329508053139750214026131483592439365920348441517766463826555488159867263061578908820396566730501319292267742696813891573658330084707191482275711026857323979385596239161250345833078808042745134646107616469434035358279484770249865467250931801665240646489973149025352289565034255490155112267450402059788410983689717581153647300772962022548382670776600298198363118065701294604590820324941322856653055485839489054802688295056039363425296967965657242323665319376092313536784781194580673194213813587441149574220450851994663503229403240485839166009683010197381581800924028668474348284818657838664612681186272300373770325723101127457659473358690637994553599025346228165903249063375829391606494897085017778663044764183169357003938051402986003654766388675932152094259273600661427407501508632750511904353828198205358057314220183042751204047043752829610564968230345124100832030339229305465731792565355877244022854359923748948202687671999990937134113701153344318764113904951629834926208933590666489704509062958011923785355515985858966783913373979604558582835833288889670634998768196569079414514008682128011459864396923847778458673452236657229451288375810660180926285110163896510127787394909477566350421652186947350583942176860776473944596669308216127872938809812689997197702589373961184795636764953603696041023035968344274620925432678976781049865706459206113223059343922067637377773384197839564424748220718328421967320992750664899379543557414187086320844438281378893329713797330475076090659169717918687723063710585633934072612837624687096152454572436463754002008816076040953213368851130011043604090262432202500711288313279261463002011117453642725416193472881353146474473631561538809003890800046560656588602515905344087210709380653210068480597886246857668599852721218227242286556986797759496962162814918974040122102751715463389413053149521596568158394961266208435697619303400552306145229583433776109252039428089040725938175098232038448725135730789091463495639964158286354452063223893247970502679768571764899621493771334333461739770889176704374103953779547897664300462646019330716794147232759127166931399227530121535209742619463739902457456014221877742055164747167786137638534402776002552878855975652107141952867270742344588084882792664867088492095820567558215854770923550743297655863520519896821643018135849292516160553280456007942168532804490854158496423420251390384769125098643916234611224075034177173248005208573965608840453454480391150045895875391323664122931272788796791683112850792310196111466000690400971706946712951494668897800850031733998284101202396643863335943872803382687539959033805860625486072398087370742651121122959212335836172903617572207252117490994168864830969140066926872577147309893760077252115344808739810384419651233415605726975304952112864857453115599988599002091115228912346048473534654522646400886498106817778511153355576132083671378461638437999586775385017238129763896178802049278068548714379996858397463245075865448858021622032188485625254789267097669648824395911845853907527884025113392871924046313097091043767685196206278395554149294021062361506164831827997525043269134958312573855006582611739160095250671902636283419869582763997361195667017370754726455146189617229585148530665992204164656205866581270902453201823720018325549818625970681874167718715362811345288456820626114106837961144228937784714337202059805433307461864268293182572454772823321584704261581519966903566195304696732189453853052264028237770817219105875025896184902106132092436990058332101837270012723440619310593041910627588432626091250600724159503865259183228206674940577573064215618572136581886242773022610721489967729398214740443658246637720879499274977418055154276384106216796385498385012540006793031853760605033954325066762700043361902723047688754621021765518948090204336243905383046929374303581001256772949260381271079206310943499569382424706976004869616123067054055078022933366774076160266678555037112889728205980154050363640029741791237014192995000072291438419906277851570494064623443561734352492278046656438568865134368930759859849970585356616875805440046043642262126659116421189420782628106917176740626336171758157298724431597389324745907158548281950342554564495230238735217526376294749861318662645637884030658945736373204991981070001854209743521556869565354995833711592032619557885167867844954913748993423550231653783379583340058666197819192105092584611788075447577918261621355813789650513075137421437695812701104935214590606005798242945956726820933321600473561308029695339297620821515670412613124363681820996368607844730361899804609862859555869510132983486821678491721700642998722471630842888639729952071375277254588353568698520623339744445663650264863882864964232008133674889609693099853318664303916094674119144283592812527754549292769688049443345403195803560556268800733265749849445972086339830865945181438827559526230656636958571881224888633027996961002980279397067742699119977183944519806850013957554110410453981931705809156878972461003641152072354285004065304782539439308712429622748837455458546414863802494724170765994783676430889340359038124254200553197371043526225255295591612138563001075310649158549786345136745199773821594877874344420109279040114493716292196488711393773077798958608606632499306679022263090932477953485892124974933315128833480713299959692319026734730757689336619598834467895964896722452902823881004820451338225880638400765472680466653558535379011249734033135282700540405794896035057254087394234551056676913280541925012917247051627921370369374785970006691528577335655750525535289954806883714962277441995813131805066777110982209884070926697476783532189771888975680498315790299311634775390067615851719801363341049844562984590097988405335413105120791745296248626385993545361633234583919125527211678757142515238178698715380775378346511511601442612608655653027353789082592514780016442424014224318337645385269640159918134349520409257910925772632669046622162231948763814965758355041013614166727612527552029733921620787013692521366461880601841374431252283539303711011099629110583830083649731551427668402441581397468904526200961806522315284887069950210530090883543532196254231960981037570780794642631784651285353978440051973356642511752370292257757068580901990030270912105969276030786970536294779339402614541332308436585815341905209923286771815250513766890564940721927669580776090907044516189829928537529632570504059604727925115619791294777228305479631229365049851788350408922352860958498125217418346914644907634548695228552772216147017199482314887471830952928498059867407358502336186124393797284406733391865335279301675787112448532800668986543464964639179312044474816056868885305148958296049985289222658455212725155091833852797987228387824965826272406700582177050029703686242798263885708136835064519009046097205293169982948267705229280828841165415593075101782313464193816431873035017272632177608541732969179458361331981076201190345734504779949641630543584687945022068904443968382847044416642243367678408303359925646836736196442265168223209925015008068188839798258831028038678226907660871766607249936950275731575997171767984007609632900677669011434606845750278931674461049364948649504239387819299729545649072130354106954712924910883689924829896630642248854276694375384620859471098581327024293448066793097474651668882171857229679459510832549422693471902288057187842109752522270494519292617318006402782335318407366378502122894838043794489673031594936355067512769109803865290437706156713268586872687052067972578925987704570031145860116975543123624294078903920271821586867925922965353999525708828921203083187473000063649884703072658129506770288979439180989564058364798198566794531047890369773760778216202445623043401748607830181451757140716806242050185220347013136376503751802028667452876660945776193890380628742995231702732139411479771593349282061677643072020908139548805495624523473348963846220098721020812395444292321028600537024130875015978378436450834628593266015672061897295227705528919754668587552650131601454936121404186105167766511821016628925276473623875688798125677977493735484774369996424542480643823146424888985276403764984584517996663908171197236960953357519963817795608432510409554197730407570625308527448256550573617895950679046030691502528557150472861603811137677712927899565712718786160669343414129895395876806786889612030626864734999408571767294383515548301394762651139928295517506128407810342188984534691004230233016411244534969290538766312856871255634327495578782135069070500714655770135460692711633117254033472065249398200501138785236760963044536723337658211203861790003156184449463262522298628229399933238559375172326530548787247604793331032433093731909844924848027123338341519848897831944433625820913059641400530005540790771137536766565630449414429862101358771351890616380889396730095882452298957108423988640319980609344768622387644318996084642322178181726407093371169795434076118583165091719223039419075833221561267620279166473667023288438837483465373616776714654285527306109718731152325792551112522277910542211188878584854353745278489982379803580730212233488556375445938504215839312481547629018484173261276109373669315156769755843536249551330538659859585443207675266382888736734112400248868971938163807724450368708801189621740095321349839847385363478586939472611812672315314485003285730985444022672706779810737302741095675488875469047924765879767922555661549138071018167446803665263754887515655130207733948866156774497267813607886256414788028686732563401458120262970290605637133267199477399198588258319427227031140937648165808361278499329306413496695804589774514962672367313109552798096911408124986036330549336804165366179206252687596530794033547218283807664188928592601323610678321751190081145503701057650238092331037324293503565101840624521042476248210761979601548406982468123330716237751274561857288034477807398620236454100616150426012328604091011914148128760953235376236109917704733481624910272776205883064109945198539389064645565770848786249460541468647866770050419163846609200289519713934994035779908868536115683507295415974866837750769929375544999279444316044399836158324816154433590670982262446611162439191522826194346784668911601847291799462787868764396645954809243465412474929251592935576109469400101543726340483409023492081249324890400801271416530505733904052047930437598196196494729653749610731955645171510060777973025707416438453907654993209293519180727176321798188957447527340948294110782121390652610769945354015560628567535260960477814959400657364998406831650031721114249891952800462329356363191793077502339779776340089181969403975856182845814271797732396310322166663492586666093549717181284201433090680224057447922016231538535273707834277414949121211387030882074398557194929011176692558913708783515697426912707305691687314716752767184682438121667538481701484947461206635771262619374669380890947604759880973164479556163662878691390804604133473353943959446937519018242008057316380530920354708780112583073463463177641023883103360374495972390280997333463625058242729406117009055121575502240914899664538572878640795734254145532881296792010904558552044683229859579316080368056882830990276951176766740566487824504110841415920386114449607646949068478886671050208214562124761139058959693284761197508907626662233458143474976255006974816072226535558283072545903322877836556907807718129746481368674550232676990513762556708072462579307279781729498510084842141145969831969934196838362832639507452959077093999891221831117266737347119291360459960291366668580598585585692689125309027632719884469439506028448090126414319044232401425596386028035539546618228026595339597597771719383219613134274716894898481458670764283415714822151774099024104961787799953837056042092698498987144669251502576646572699860357437216823545498464002552363169107043330644132886190257485490495074973573237944416466696237406971462592556547994305462887850605959179650874217792418686784641839784918179398801402925389169026097744473849122426970466176025497455549244845442574298148321475064959520883478951236333049808124104969816632176372376395124177869303035807496654854891602176528119317932447998207355891654775926181331880376044004405590751480572322357651963181396315636867598795522010581330431354530540318795425882017886761022433869864307431289944061589681160740642706001264431806162741703108389811020081398431413501144165342488310475456881501958669413632566974372995458502709256617764577214590925875488228952211920849965663253306511258787883985303534805964190953302867040029018081082482491501460631555042324946569149023836052214875099452227163907338074750412543931107472948974774834200829288353193485619582749369262381033089867781311631083084077067236034110972917281757126178546619754229221242690630428163714244841875643543634948209144598226688560982584385410746764713525637603661808645123670547524317206454441795203312829083608137531699612685325667213434756163730549326629456379649962712948433852966671660097871332095166854371219895718570281329017521115365681106503044633407896064950897464660086054191016787744564762308057500047448738470151282121566618082559386959790244540416767036073199699295839937465336012426866213808556122898743479834213353843403270106873219084960714496925669119644977792117649532555858847818086801339090902826907074331763944556554419979888272003010557714873518988930964039186413466915770569502609548404158651169460423745981577947614626573452878120622468997751909361002431154962630313264159386850471622459242954124586050076058066555344393277585386449800777045567837250521281061120327551712998068173445034141122839358000023911507426310575919932160273154899440243687245740173644328278125848459754920617136565996416806973248130714714694568866687125816900930844780410672863722611921711338181062851966730156875970299082804629103163525602353519635258484233986817091595832006802575116730895741190650589373779550717792495310564289416767071661303787795556993513187287790516134096714520005172196542996449262235666422690052213439105666546397084783235083560233548073525650557274633585149948558752786949339043559756182482704702892596384471864303561780006191984910090471692102483255236949169137797911396433386565206929123481888806297683691117152882627734122705827714488419465302227257047563539586009219891686223213470780727126203077284012832307133951048428851766317200287203830419671035756419254367784040356320849665256914035524465464124504041507284526445708052746491317644618449007885617747086959780172136113180944218969196610351688126817279384686318805341781600702697266155288920118065599844044486074320961604021712609330331886594344960782289222192546277670656367035783195113189843378646515434960442955016708382276914335881516685849453549782136069168895104267469953550016978708908448281674644231650667002559558321385531907484204377730885145563718421452216622292612787566231632585476366841514254050443090863131236307918146763610375485642716488113834655483537822577562208167750846788686128431933062148796375599181253170403480575326997670552115671402332476830142122529298503155547360464339242982670822929649897954237012986075535821317852569307003059744729873362729898743660703376825235824894623162418710308706728859241877653238617246506669891159621011979386217640692010888737866837562736387034951778988980335131032785023547693928236371702284898498264016945194135446122283376041679126472129235046178260075956384216073654450135066899825180413475710926785064912678930624249233696249755498202643599607069667903268243051047998741963936530971143717511466123274965294505652554267032633675967567892651360430910081479741321415935992077644341902928923257844253030199252090665689429924364175279584580966032422522006734029154649076428058589491592884344604446757654957526049261263867772246565560628246704539457332238272617273609102863350744641014489063173154406377788696064383308871530429436182285665343564544470494823755345788805908134961513323490288677810482854754700877778718683355205533346555240520497733247182297920130850265308224580288877361831915297814198735617811789888031800443171072298597722118104634245857259230232655179380010310781356970248363770840973697180018050333710308746973276796126112893505828630812360985599174065122814048231307902618166365854304996705380122739392544728155747927122284798422186146422138481784158926351668300826213675447987221107952993121635046797718399980067650481401257724732395802339196149704650210316266214461699819207389849020866800026758527987802157966392261729409400843422375271832901382302705351269947535791612714500856948720341742902144222678494833640546706722691345622021413500278005053690345688414180561714384658811867000182042597849274474803506251402708444539552785773416899318893942819391461264241790880482990403812334349698388694419202512675224011800438661900185274316210210481213198799625652308991369641267987656470974649450483723469155849930810683790355339098854534133108158438422293490615265201496068187234230830761429513315004113598155073611245154350675340245005885790763279673814429101120558883712796224174779597722902175205270216342394682466787589527487960817174873727797420982572189958364192003105059556948422238680470126678152408294623968716210322733644742979268176857438298202584310515733870945345156557570223840400501401680716241346472345796609682063627772753872901190944493639968592066789702301198858530648780111371955752731845171080558629710491652132614130466761536655576942207847684400849280552049218257175998103293835593574070751181412104828642140027488853216421016870069626592887958590787608942165090401282165104371756647561495782740214740261824883105862111559756065986034673187211319823398170038885002880560763610967408485859312092266361774768027850056649010375079783178951127784269578363096392176077932347998451168234630869401689962726393796763728987146933022204414383409921892935978189511475431781206442646222773826990839032844284259259438637346872922581876412189005010534566838795726672061062197440113413747259923378195581189426480471079341595177868897854208394462518401991345133525756780785030304557437897989969434934955184241017831061419627779429449049266540465467041728153374993734174487048889143196684720868364070730452790936765926965809588692126263147952386835570313164301283618883765516047264728868535857284994932996316040443735012315246099732157667512680276226603855782232266851025960020716497839429582003587965836054471251180917223936384824129459779320997967952818299311714460685748513025093317804947408243669441427873447228204087529163253650853115253061310991964644763711632115916029521715525972487195014358346097345804607518837909344942534782269426651803498632270975742546313974688652380397740741388175064664628602895163591952705272171425277730110679485571347792794577410402439391472099741919245709712822529550123406032704226448367596906726800960180993000446135353727130070987815803447591667900401590926407988106852423970792902069956951274289942825449887111907526599706715756276058552650233598497293162252383320830137194867020257121839751026768958312581751042620979402568440154289532258099617846251248550276464663594980366941695277347849773731133079592234898958737879833584208793472310158438230274173142377509542108904136424425500977499125964272400486146891796474635009841803059457038451778573996646136888974480775153771308874138884121376454291380726075413376914457744146513485694697968069569724906872216596909604462592928602746741051982698881638077004440871398090710701711509524019904730481783941626340630167121491421512031281993976974779056049382920156435703479122829614423341742292866518044368387867456891955329525983891874854748909422043653081337829913193850930722268479727392098764828967146619306951606372907187420498477332310616359401528655666576588296133108757486539968812166722655186981205850261747463559151340441440555267484665778443056124531887536118069662180873455283059555642151723499196800335331439663713765597378525986954917994632391707062723623670604681928047030307409069871144132059133323896791590581166771580864181302148731627096772757926027590808307419649673588275487446926912906183386626911473151249607381027543298386551031964864525633641967157281987339056365274274795325630704209638515679303316001007278706211295712246409838710857464942767661872513492653708491490490541991535039762488675984434586417397753589532008704781029709624938303887718061703567696861307110536724317684259629603298591251251677945280114212092696844435887026767799370197814668566875825229236358348641985036493968418516752080221306471477758919048797572704490943321131432093889912454463248453057155379171237988976332902612123402858826120530547715853827215229945742055680366245935462762176888362481000424805646395213085517069700011223576643821770880524662140271158018679664367579094512909901210589003419135612274116868021702962057505755360688574386547562209048978881722479305981911811561269920330295926974380961548915318077539276033572798729724978802436424192725754150574618604297153517826965197833666497815537233192088818461962185889329311625601500318549424183082490051752729296629448386692552235061376169174723975652476657576650726593526498869502126282293007322629716320663085600840611754551484188388216216653337561812707739102237324582002629273539772259099552471421889372834303828985122144735124367806500271834976903560004428181627312063994758101508192137103324069356115382845207277312693427632366454789654455381256639421791473624470118254723148526203646418827380819796521637974121020999426999582297210072396432351450046087184057497860271521294842719345617604983117236257088876104936983163698753354905096748904955330650820482448063354231606979630841209943149533485237492070007000027816328058096129834952874431422732060306703246270607156451051570086114027746934151890859076875419962395821815626732241930926051020272732463572853176131423162696792898487901250500238338520546803648727129303980565804915505351053404060845671312422530665782277323909343216811703049571564543629264976659517936685875253024189670998188534747120714226295360325171230211237783154860257343887804035985198957081475918541649446152967901461154447426087128020842508287855738754439713750084317674607302724204351831830628462901437441443711849200665149652237315212748913266974334518591434883502603854628880333853936460774313199850662678191303746135312214829643978862353692108044921464780590304713009570956178455921565082390382956396512376451877598222327461911074951490710574177209894956345736742990786266183929134296562462011072456543275187312495941458244154031198774254525787258502116325501432886858866339812491121804814553094540153309775531487790746824571090403963113283707529810575495817723570734422759198148330036824242519808475958479350962968214789725491411608624749648297687760971457331858848269421424570818707897233186365330152088453865607341693452844017460447715998248211935704048101382541885783469460340558940428020330454066117923296959472574727893933736973481288530880221359359229890278065219641933921935608821800642441289855398755127645019512305553892517805770830929022173214336455213842136937600274827958406324904141672166798185813658103310382164852366363688021907519465563316649021969321676972986315139297065863353176592098359014813701988886947965172555652855481031256084638536875961041297420081018411261907867648249630012225837369542982426485153707952854592350147275105180094513684963693752527780483615788365898440040441281378447624398780256389773461422946063253527218207524097942765213459600959451308295680045673935368121262180822198092775737180410584555928931236754997109681853054908110804814023211110171203345982732464865911715737954645633551479759946759138190424818605095238547814878967435157479288429845034111744014476984441115850320318047538493376111413248178100099974614989792875777909514609105841329400901168589109656711466537828674151868361196489313637729547682507540434464344508558189412016612556001024195817470075508557887838323104607120393946829698547695061885881951735149192509864982854538919906926274856868208405371533068156169940719805782772104588991614240289141738104945756146380533137643663453741080452267885548354898427294317540797704956504319325466099636350854959845655041592594572851432846149614112912242398876800634318812424363810511036067944594379311334031260192733214898292192015816391979763849814632477287013053542478588344944390873391430564058548542915396768381831681835915882692816673367897196659559296605544507692001111915211392140783469294473119996994865242397045547451174722727602130164871726842847336165663151094760733511543052800608301410103733571298812117882092979573152152556786079502007129084433543889381312412977217020782027168533987772907513876921228389704550531465762699940070336027041325414529459598324804073601440884922329770382480322663869779601601994478277444007142139281220750154104812996667577698652133791713410354574827908188306161507293642795298331066268926096384876968874088768188350408576159759542501665360040592938243216707957256170223495515009722863114288989283968478456331493337033179980949832217216820299005321474716067342369475209733317542526129938988078567872122725451207657342615208735395605359194717671140387619942818030768761903531651568344244063932756553592767700364241875540784321079462813916460440102800783336152393873220004163424675836303974566242317886372974131519475370416705694097280300304608689441823413941558357324295604129706669547863708952870164444550727863268994709906548642213876796667131833058267069733807201399748001693895751775307605058059593576558157654352148038507097250274033790880072000721493142209326562116280353204367536781830824787264122324162647817678796789204884952144303659732140188890371740466777306032606180557866984425342418968255622309025036867598746484871092883204093075171781121943513254667549363611054871660169601782764525018871126167852627519969248153371121898378696751961975969810928465467444264657406133738535831595403164293918194499302043259790537955971144563881967619282519958130206489541799248419818676757722211133434813457874118582427239124901444756544613853501897097860733035596299551530063263254784834617966353276775613372003545169249855161433214219107534967539468083114968369779517019738737432465628011292076250822021671906489156508265429396282154475698991853225844158907619914717360796494452902956279589362144176633300158551311949904487533053778334014196511076389780286617765568400640881394344109610011472641096396143400107374735727793187365060739618884760589498083592315178561408919902621160160229819888029044831010754848423540166730649105292090511512024123546696073556785022349896586943540471319531585416147057651049205963386972641114494506741579560908993659406164156725645928955796199471333447815681672588519772565414407004018685959292104712163248261071303430023906189190009668360097529124328593999838423658043074647258903133459852139986400764806523597641448646429011878536552155439228702619402501808044088341648880667592959124092401287337495689081865789362105908017060248680571870381982493243360390969419707305906265880016702322506010729776312521266087650470766407581665195745908577693978443357946504393189182234184918056756337788095737840657393433991847133991723325235384198556953363724058894990158551157608206952489654734948103811573607890017987522033485020142294320868921066960538891049779166497413991834806100223930586534533175905355280854714859070469621249602595911697530838289690684970865253554793460097571081602273762809473218742067653460306286488092729132507473915384414764087442475584412650161845474370691239800185754584576835428158175425278276679403926578144915470467817322379582367669401603424305232239530794427737197385599770375776026838130906216042572020359782936825651711513734319896551996156816575104780842937148456410305476169899666101693172931284042842459264194921291066046316804541313490952951816618854409087239776946447501118772908091222573790611645035286273531319561241703529722040367810206834112214302008622630598950129691692838023115796126182797288399255204993501850201478051219001714531722144582790536240094787791457559409466296736544895809913700515910813886288883144850341812594608417242079455080591939417893138732662623944294661311823020364905911552379390683669554241433630955035962304673567933553229452482895715621112832218098405855749902003121493776089453589984932015802741755183096359672839626011371934677573746818549709755994906667796724186235185850942595728956465896309121475343091665717635402215533521939289451773707168295585502924712882536040293091591831278840376728640867965523526587618201151665853114109188322541952490391920756773326581358584083826836378138744713578328061578800034752328511400545682144385852298571826787781675093955761261215962669985906868899247816357215276004024403394846151418099080435021246742379774286417509562592485246772150836384054287859459958124589069514808367327369011460496807200176850479980392636878476730083280947668105713419717732487131709056889840224285807784816043133044957859344866487451971226678017267571895248685514879020899983745469282122550020116138611767246234384340466594482912156997691710804100235495016251720548860699018026777234130145820082014009725607690303486265063093152215293754054999791478120008456179426215437972112882182795623086562134210307128753734888333648932971182209783798470066874804929758068133406330646886178602516789540176019259472955607417377467602387911526730627794445931068126705081966136571687798101918764596091728048748487324183325245921722333326775450549946164247434064706504038267147470744800804900631950571896728462467249750448863767032643074978351500631032803889563982218620247924908767179531071511536966447079730735544226466274073527928191181695426609160969075139347461592635482148194490720992097940070699857197560961542748396609544599727566085861542341782489956027547534970800400274466057932634437733853508509352230366007867488679284072155726892454972546962084434648055265574037942242328956144818243541234815795500319379516941756543774782495213014657608860020089406613360897329849224606903748421148052476588587777315658043575895264273455792897120558421981853565918348509941234312284820675126697088161003992801267354254926600924078459554108531219373397536711225884184281591303056871271851270285004734242619184964149136267799931737405956411386691473008890380126896051799724684701445661829120945230260025671145526625009217987824894710187382538140928278515781642962453000259501272771123979343174441725914021902197850586918757188955436306405959689325589376124587197091773720119858137978233771967237395657613424734453082157274088277777704194877883166441719658281701942833396359015201095510087104737188010816472229086737711728333176674531822058714833443605574076438629093465999966651098891921271668863759708680128761756968887647036784774956820389272860127854960911734365483669377184005105719424458247269102856536845266974066488158812910979165855180825097370664024255598848087970014637331855539098105798724517308266204577626046715361365885177157068652415680551340876053461416608396264934107317963171615235642644916629542409935274342207796590102983681565087464415337799454793776335097342410479066090044129646809279793179694179340956923062293814139539987974213110536851416224796042232112470778953071464257094176044581865244541696104953213265735247970657590698750725925097412345038070046149833230286301639858628768613970753775344700480355629375868587994963162863599164186618131534947860987296706565024280860812886602538325848762914355546104230816688917867317087561764164374096965608615066211309759867409621552314783801574288307052308986262487144779731549225585044749731356896348548600130764717447008228428554083424373127120496320339344507748036678122741483482601434193956726970275768939545583273034003283832999938732037326974190217355244453010526804815203345386768092947245931904457361338015374313834618024120095193037387226605107708103041491186182556853122494384494053281128029260838999687946067288513839889206029243730888633553062787040268280709808069604368620564726771292821140453403323141053453038576592867293720050482525090645008410446354020297585712708860936490088606835292025513697788063282007087303009520117532739840572026652431618860871465638593820214904966021393595595862614051333249879740281735106432036275757983657133992944744731578867276243262830321702269392025497893354662779842518128102486361292060876889473337516733060084870599512414296889098844398767115480041545852950025620380733679524181183909963902091672627063078348722822651998497598531276926410712831791220194641702293118402743671497166283016430774307387978997939107562858602992011210354820003629693227010350449965617884515421887908527966069457080155464372982190959533722046200530226948648362846383843298929466686707859140219834477854772175432956178245095220664256276272638552135157373801988959276816397769330043586474746683113519064349417620820447976689275077104672482285144580359894824619109376437279676608756613460702065087687627712472289551319320921672097800001767078899619615999785486146108695054885584041396988125250841754974230979119823120837107715183773395756743381048406331927433389002552180584189560419829097090347179950611371369905852360806865931107447680209656666541681209121945914013540492761532652048201468965444580919585202292992391078927780690130895207865810206029958597501071615426369271159758590468264422322330319905797460520970078574946237391032827078294729426873476487166305659692127590783075217090200609419862103348343090782898897881246781822969908955790134884692987214753729172171179002675393675154925238834668342232348242650370311755745955308372048457999830236621038948772877781179872989462751783293264363925379539023650178145313085246569713721094342729013182912829296271521537295358334047320463588618228610475076727013747614355928496683132524508581301157920785243657133282207626741070472833902722459218790315409669800006508520496106100916377143602679013592201919247535697159743550749360415914763030090706239683595614683648618938341029622981078914879813795419886419993729097944150408421674448047902119226127367431020827598776345127140550761650971834188874947861989486935295991569421864875813917165976444315778002466526356072981469642927986602471493036026761220961378141558911780126288316770143185042504735885885397669219332408352758077822842040378786546476193422308739064615683446046018935374333834473275405093022185436792479146434220145764864165504905721432515841764637054893155789683040533527873843768877643907596322325611440531493545923721637965172197710971075867776712932362942467969892684461346485163564174645343587462021394566944050459438458630452645625373900717053984571857779467606761388246555941948673037449056993545050874793501873634367351876610223807918873223780626125129712336957328288192384480669770658214015924618549288664241833580233047828259205783524436848511082228816693632878487304552981735358130335905176723062226766215106566023812089070058619815213692561246212793929386549183914260679226070790495767226955927629227102715427406972240760364480774923092596285126106901910165164556567257603365539988876181915895457432818935822982204403577522729331418943318386070025754845026218289127320527702758544420929180054543391894222931571540144431885904500241281095369880093720001790790899216857320315382546964124473414945707360088078094264001703179797627671553886493901315967997762100239621351416400270190904444459786050534922927662998613775574587213252413427619423594516748626623518876757970469192616919082836360159429386529447351965692516109036338704604814281886100588121488429847457867065585552744950376113988808366555438232595670635838821034016779341604853732484185851932380884620244691542411692131313967272666472545390852526723764679843042785468010848957023240005506866839866479285182871513553081760595761278087334660515909732027928414250730990581898346711210309560721941720068621458131547665147990906729243021983575424510340889994923049802865752028937767693541023454136781310605452589325992323931907369950709773193001613784192023907819633154555487005447363332435793802016858672196757967092197930978086208978025771524024399473916999708910317334606883609328568957313330115317653791727402446937590242011679504078988976742357120055849077135845769848555719914909611637681051065405703304578763618557946287684624992562939789894149581609711398053137265510160475588358807495893723018254318197585356698880115814553480244216323230358586693307164251061198132446003180959556246172295388942765219361119478784703496916911519105753895145618859089544932497429825744454451497241660019014352776863794061356954525216252606888960672887299253439096984757039263506339123798674978629204461453880692226624430145721115844277998448038345672384446656281778439047800871411459377301368510936515702944823523037775933683848048011187896500012459363330628109458237538306911741510732087883490973985575458435645721282321534166507045296358923848442841280184666693426307089023477043890467746479113279123482766833218637809549295687513034396286290342601137999899156051369452362902651269611514342505305945635942272595297144093681280794927813699859432612960535907228620865700198111551756180487195654282337443484459643702039139169937435328183867276477611162427926605396768088618988776228085349942953635271224711836270904322220440733215276149396791567317610900658646254277812290075688142666975763798706798246172536737638711359109818570422555269574853447067047806153982792087457022678453128973520856329326435695630483837018215956394493017191783827461899800865137785411816553454443476943704896836317210161957087677061301962401753241074771777150177211704023682567729609791472410705827838656553956539115291420663221664602293344559911403405744613680051824140200512598261142821042029848650051490544090686684553034233848496554037285395545638771162235803987693624731094020035054676334506674282829878978291246036698386362827027274751147296927417042329622809213552255573056353471434982472712704361007027639275747653106569801918461960428804350038371427204020417803390179657413263696833313689518659431454112105536318230290710602387470511021785442231972752456301473793009209529415811032542584452733466133020850933746102473526434768735540842535660307850058578859165551915464608901468342655059323533616704207545881022679526346339353559714809705677803438856471045756856141381246114820386467389326689243484674653489106980863106647436448726797732555600447271506154254048436571474288649748131818000117639952178450677641947632421262499541863139395727593125912621542641686652767637989511278658688193661713695160073711947852134004197404332056180875394094404019392661167361765855122601427287091566093169755297407765104323633802198311351810357081794446272986372589321909986451104308748042452449684421396755647031470468934512991038805959461597820994292570086133712693357786666595546531708580722773276518149398206878653703725738554785974678891388436231640990812083847776324448058392149141681314731087712867535379913623678657294418633742508356652405615024571226680647541348282843087761141558665636267392747496165850607501141863575515312533575608109344706049264800515879371812479655044615993985668212555266368268688567636378466412048233222063945009690763053824929364369767520020960192950454908801330817636718084710020834310652284634377251166196253951853092436852944197453098312948544694696768024214696295619540373300663714801376911281158036651993946581046733182000987878760084441998685060530406043605287756126474874509576226731446624932028055237684244319563040244229447711915363482205333110000955440837406936969999525676859849281460373193916337247801042729067911769957981759886035240401695803797589050268129315800282163984893786440932816635029123329099448683105885279262856283130678061966149852690450619098340581745009946875736451157028853706319137308501399556620186165802405871920573495016639942458652970620844618169709848325860943355360951938948587414947707725293201359566907626666959823393729496166639317939200957872464614434517823669466186117263280759265491355116716156061006573808629065608055596433014236556698902127971200762831054694481640006941720269514805626410755834332692609828404004275902141837315973251686464799510540285422688554394962717775196470766264609886713148626719573423956384078705544872285042857347774571993018003462419800125868272174873977845808769568593501578451056716773583978852570273241664090443569321480937750501136647817010002707936973178649310661933073627361897287632918589935403768878324712992459732016413386215967896087682229879282506836517849213052875385810183704437429984067497162727000914469848485372497749504542960716880260911556130971185188778092549470079894271748798622945989493115166883861304411566188803200621836446663812747956120680429667940269128333435706312230208078338831286496500147295802964822184465603376156364371562711922464862088882256715121217879256659925252516658563389338503094853791011630239404311509739082159182614125591716671062899793986792740872578193771261671704150479637652458293254229906636847714391409574945566391442361587973555604246045302470185698748607369385291235177506092833698596292868649163132303745355226749475335565326213576256401611348535693672138707679711153658544823344473466926118358819838546988429660508606271963904394409475502318657335430297794636800858159673220876575337833940068498058424237877028666851761202706043302512134528194434386509705708056871474699556246321880418704408619908767534907502617698210310030905410444799111815637747927988233109433351774435740459404698364773283745000572015494583326894572186986179623452540677751712086918499590711232378164264525375903526556269309637212064433458995085710330787707669681903502970052767079660588196163287749966298220719332241185633939012913194090309015732788948438028715695912641793197589819504744608421772850331824055019375244703899029300059161614692007933957801343490201397259379175451376085543075528594408506352804618309887774895347166332295324562181439258378775951244545211767392576642949925980109211620958224922164232579187153648162095963871432545502051587254319012955865982673673736033598742158872757933858905553773868051793900588050138896978503797223721836014205704465672167028155274535989331835587648153040776770911075352189175178078870454484570691388798454132064582044584250216850208831202145006156063275420678456513959968437733197136326539635123820843565821148009890522180908022262017743021900731139647451626141274404418968103292508717981786979227895824294058602690051161021591595802782822420691460210283829582071459608221728348559582402623763491793907468481162228057297764659002620782542854037816647095620494479491417270122155625589387469500904170514228386324683800336560300659172969136976211505286521458701347787304793600892110088148111755905867417146164680331074723144780884663347191312835979966993287400934502086231845606006621764397534647260219372037637595915825794171661236899722250261110498189847244313991080145255863012307914540632788121189339783150388979782368415917452977089570600989256726541640087745996122211995769164391109926300195980367176735290534265432526839416710542581393685110803322696863609339657591552542260046179562178427122324244788798446266182754112631815339890564902292364177603463092923325960704151689977330685642134449432651275134464908165146161152313893246907188337821627825564743117480580790721766038986027400541184852085463080316770501506805739358707643952074237996058700887158161991284689036510172241404296305995757409724190842258016023397566451977748872733621939692909761178586245825144006454972453364483207139240725071506841096535637267666275045740977614187845018654201818906372003085713071375932018896410659785083470277587831075961870337724999927386001489840241183205591214088855012299178003454985690250054278633638629594714814778423626189743063346264641108686045224502276069239619211650671128144621868625549281574332021248545730805596077221162977459321978009867219511371006161841191774655878973461774113719069981356653750650989308246357283367369314613084234404870408649593802646906218716249675856414792079485423866671692335041870178470840176548280502189981620374120878650222031541486934863042745224287674124624957612115195284100972153663612412383915816697797282582631270787101534368355977001279638423223361722030630794958598636674658828600737196352046193363850273380525631078652994911394599692841604759274539098986505165531890077981492440808402979322748655498580897784472773641069218658283452388838305819594166852996603841721556574504423418113958991321326488557089312828558172718305711783018621899506679494974225322370119076176724239649270884555739299774959584702586512140748395231038683688942753126975164688354528700950743777944470110449607478940212501467741506196058342686252151642180087272188456946726377733408568238214849955275579175094479651877019101383475117590659846446311388298248056790721419941130838146398752068045742588724252792086724499290466517635449194841188815254596302483732271353316459749458279374272102114850605777436324335720099609061347310946980620943661225230062451091440587906787090751500479587898795420596152086052818081188475853432258463516618047467422491021840736335115862190516493104971959167258252130016428262357978332262875028495181656908666447486597427732402170269972141784362560797449254261764841414760051472384276866032581230625427174665198260203976859840106290630012875162480638334180550503861236241838494931037515596480861202496823410230780459108773897217750644752427064675294692728946546355304175708588789559871395637556378029572115922567529323391318938512971550385661601941976956250555092728152136279569658076844890477853368299321574062246310932741861335401535053824598495421719061106886528045087557418724711747582221358239596230851009006861534446623080342947998178227255079692752334581373629076624093215800822306153794002308743988324799611326178805394992873849775686795474900055297155390211593863539164933574117461030771728673884600774225578291277576698294280366728786505780353537479136281285039929012081073169464923336873308513236532251919406531789303725556462742940914551630842749746964939476128124696286393195529945873066762405725768416522280288508961007638500700259636277816472497238191025002026598693272415820128268105074411627289146500372198941496190729794295525950641606325194501566359960430349146702416408707155437131779834573606075177301946150897935615582551017590393976355898303783150200483025199654446826527392800511733302107652064150091060164669424007191058686898915475433462932109650441845422438746446822647510084688618193696432157617567204103664741945296425982277325980001777073434299291023878848299749674593136146031624992847957642340864705021074837648963112546068799517222315901244236760751455879834588268140392015836556971562866926829026208284831706244694108318036032842693158739355009662262798455741567109731054740770872957500842891955498618782199761319259399221547469028997262037109574909350702143684908958627251273342732910848749825756220295402574020081536825187799616091092216345099122573275474753528727424458335076491650772267751900792505138911562306982534641045856453673934904780628487320672547165426370949840321002830395299980661555689709567695072823677270495134181804983537130912246380267303328116420243247906858693315904533051361351619921983210473354736834671878054312851883459482747145920081909974361138168976165635090889848765668193280477879781428575030813916156287708727310710449493880018063323333963791876922336432137474166598181464344869920881357339855652214474483575509352468932013561771640336134747468851822104960956792756417999249085690904218760368808067577673846621403667883576839383779514762881620687628432394600641649236826921325527128597960773212974914971775056410263599035657361711332548774804262194272011112238695113707303001170562088421149820540875306879589707666335767901413004396943781364911309612958875385640274667489394948832785270730740660009614474342684084979785716569504207088970141793278266221358338937127074505991632457620953822903548457967409690781730481524936029534252369204517551311039601758960015018440881337901398548199695870462889443652353457651315509986499014246167465954951143475075275451253822546180860813493806120399358050036179009146251210219862693775062427221299637631637110084188791726721635856250245491663387613632206298622419699102614618050779761953593165567052598545300464942533402693782280768091968636406943901512550590320535613449898246185510781600914354869281323844370722162565547767940986099069252276166518882836691268225166140135048969387950020665217406743976409339412380453023471101175741471966925768281762264841914160874149148362811329323477631233744661855661293404089596714477198592777981361381885721274410724826106174863204009185517724185104331631929982426332296577949193339357269191839808008408554041565029904796795388903048702838470525128184504046430462948464585006473314459625430956179626912999545483396467585740018960262162121302964223774496366758939545381514026181143999691261752224160769495739986155701349617172742093409971275111031222539271643459857802083830108471937380039839131594794657643162387370193510470215683011122145098078756302613614564988120348702561932306414908083490253452959324638318359449352066803430374041479096231999168906890762409064254599080899826005143280983162548864889456995074341603702290163808174922257680581401156455848163804019098318073031006550060653260742753946464082072581609741145197266815759048885642831415085793147955637470935274160330095825312427639051785276735240423173094440488381724793213740516290668410048930916135656206769007284933601692047874224164232161736150549671252802770969493780600012068000938898254200870477544652575669978135953997170299093552568539927928396867872453326813477838542960881630685929600331452580796222968799854141981561210558586300701484536158217574101696570126451998626536507631696776347891719421169600158989676178507235454770870640066003247857070136434381166099453986741932493718055371865510819428572718152263850872525237270090034062379858105230339458914716504076118988474967124168006056481650363503532995411161683217873330641215748455948339794465104404014273942008636431566980628457844914861535057066469057824319586747578171486641852700735895055935081551036466633793300273751461932067701011446999745413273201772068922696089942860415953422066964252712608529922837318781854324595715418353113819674930914213686050714449360960412788041019049016807132975668244832867610911824186809300241071994357901822701339926652682504614768491653698921690391454518021309578246458792753782224779819844073086543039005193243161807009989299164578526873382140304912078085225193289840093037168926284662730375500814537394227687340245492803409052793606332429395986389472767289775343020059780785291296440514570609247344846561743780337993217178999625379412022195369693185441809957531885896355188185178268442033417133568366555664015274202950927723392133949302987571835119730503301292437725117152642253408912400403766399128718900943843250053947209804604401135542899082600813752973315563539558304727697718735469980980216771045182680475329183174511994391526277719547340298298448004923840041440893687880633969618130709782466778349894639384876779834518354633307244830791669090041328735103629291553615592721156824277827890397256320167760461759747269922181610249083314741246890475222779408121436740649578661013978887965348649265359205284914294484907368476053707082612208511044141108433190842535110639658697351623943468391305249869140794425023062131974524803679910003562773792155204967596681508194924602214414209526471010042752973061656198590232454978464024444747856925634244822597197703824930282010457399002180242412244137860899341902566619313831142202046654633802059620568732073988406238116753973483231976198873547937719702080237188329227189737742439281750551267217287325249283326883605556068956117166895938599897307770650278598662520905958308936348333825640407807708784554908009299609883042215571035689654549299464432557546987512823016943672827915409093590750477239309947474352000214401120674014180480371147036594845181611844268417670915482929747414310715987546198000330655745523802687681286175856984876467559733548766182216847313131168945774174704332119154280605827737872593630779729637860396822226506905560630225068760341987022779574413664778578777652876471490113618319362443019304913184265305076829564873875209283768007971575009719347385585596228671929530994462386298160690195631773976673148795067741893466404420703374053202573414092708169896308265194673211604643455895148270856789314647016569737897067211646805673092076095705291268314213233839000994663210015678687794003702152042952484671339443737599782892217012646259763175262002645637586175497086577673597184967902764638022521746199446156093761256321684284940480647108062628262565505226868347408657677198943804118415727718574246777916088227567350148661886844463284584275149624972054649538617001963252664985944579182917341970507442402163943284653653767596840507620208398694109682798377659169884565494649925717933588844233528615894684709791043169687497622122634002872864193691147935675722555283432171419373964211093693838954270043375047771388665410818298547278899791661165548303456659656918975975447903406930419375873044599306742425780776306343738666291124810538020416506654923782939643717917063686402374822131736210081842278135860559509998958631891092524972192502666988133481185119509653013049449182838989035312937584754434906925360188591073031229693754662490938622142363059798351951498000370169529601631146987527205565590091904611652891494357472329207096850328489507891248539781061142095417651610073971118077332606352839496695963670723164803565033548843507043408462827957265567570789797319060430478062762879643921400088106665412519205202517135724956548553357125360863872546751275625257086091170243667362674790798562479903231483965107866881101929485951394190605861411711335559555195350184431579015983998419518152724959565958323254114594517372832958183360958254294123518132173288315514357060302325283382334791052173043764115430134059060139969296069972981153718648807127207613444897863526601175378854584747020826455477209017771256693179196173741633022114552997241138942625920067127636112971842688703930886434825444300429665828204625719845884520035050551786585628974148203811549263869503222497364924534301079583863676810957850774688860033259519590281204496283663433040636407695224943153851816907497988346047779601280337545605024728441823958836142283713716905889571577738551646974098793807169578896706091320312461916766440421970133442316796881878718407299919591686949216240865152618717475508288327836996162353455347479833874447254152517862692280607173483645510427512108072857523161616577729330165760102342743892253102311668820702909549114729542300464013214289843441343647245188690039253228247121120771754370157651000950207580986973446578132104232471551870898751863915350171705740617610595251658427814630420862503625334681995592688681486378806372757632859791710769365983646420856776417562477225054404840641478337019984221407022496496746658236294370989217235734898352137294047871179021917773551381937470088099813127352218128366959868128884571221919721376437322633615454490477141022260838103533445788286424204541634373304751022159212874559755968504744102509081612437847923518716232897283632606935870433158920522417923758743996917165751048510267407429643901956642404823794639965427415534528866625558552271907374128224672550799735727496054973852769249612428015207448195216438253844884976739714993308455878433652765707844038964763587475394800428637309206322600393601529892207680019434519520424657782509026931014245387100566420565372942878867809733136545586117552223406445261300435309854510980453482962833691691580934100588860895643765066576286971009500816620928911584590947100845439727703523253105121384314267674582129593052936141461584127934412140818444745402928771848362666578849454852184643024729491737781262567294337884458515400591209130832578780084681807843082174391396874019271851682275196148462986707393905610989704717110276099199129680034355141408784829078846670593625444042941080630365715231636693576003159051981032532514991575594940486313106390603012629607203256604451781573797717892036167325954198217679663051092477810486990218320766248773499568815789080554777190166881627108926287434081355053345454460247596473397079860105845527953160802998737413461600954746117256843411268289355934554937825328685557578586466580743601594014485932912713692588594738714617200114485729406507157776609188361238419246740343841404941616905692301023968319911407284640878011407682968642432797296430050725184678280888259287627026935226176019337605757079303972838801895747891495864565653447345822488406170656417246630916133731012643772144141550917560556329694355486623040675839907313567143286028468302522165486086606853006847943761398710384819237515805670227369457936664858596913725179122241804949646340038093071289933041432424231178475375599779629842584192542488801952112026057548802046004879811776685222275292233119766812556385955529906007020500768540957543176670551909757256654349635365789337499355148548171866325802276180968759598313431940887421145367518818393452854151395637185468856002348726175882967428277479044554638183513559553137875327528070352695836105049198061938226246881594095982598536520448634669823931585017948022530298485919852317717209064784153963137848726646339411278834677559457792366340704895893549708626065802616380487872751883632130706248875840068421396939723621688664857566670997873277614865748281241335235899277694066297864633538393153768414302403780021340348205982665332992451825868956488082212682346104142026671913380480564886736445105482342297367346394238144331881556846836838242333459790668340037178528078175863460670447345988703138860692885758963678678495934787754978693157616671899593444369993304317363847674466200107366736081712781484669220783709614185583215375339592779351522660385634368649090002554213887804882468604924030444327744027457007489949315363452130897071928192870274008063226083098922285760851902639256343902872354922290395748111405333160286232092074058774789986775375210343550562573320231266810320094622820812297305855830209925579197367583348280227868297005505922730008828256532071483109554441881754777284842695518920366080992170272007014077960311117256879971211510897200174465780735613742731626540994555995561319380848276434626351831358159975924459184977660029511247740480675668011287402707209535492195802199784180824875431981560289611431332207752788382347196412809005095043279453075514715256109076212801911148320840859895117292692959168833062942959463960972002532341832688555313043419195209227592319923415598562879012687561215060983774671461450000234090682756515250553955988038868970308699020815835085581330709514599706684925047834130911842161978219552694290453007801560178105391068631335907130602976020478438135685524577500560893337042327363694410678172248306463223006631650742035716310366119258556173319122258026971392176103974720670184389039942506434234609672227673078884292289442137611226166620427728306936654698215989765185167109632799704504901210398331939413926869629305916479785796612187940453613885858027482732888999163723650680900735563132960166873101542751615998010613859652120764419157976393642949987861615831964077298202833637171780145790000341647639540322863745008102190067749719146709647223582833807327758227551427605697545950853581719544488303113517086215693737574154814468439561909281585909851970809024540105794974084269518652863069841090165236052693337319097387705048123560250707177631659816132711945246774339219116640132864338683231888390618612917240875597057352770217393864006482280779657680816360555577445555031234380362505730836269150684461924313504393216366591352238298713637735405634571974711069382243261659130070968714708953185472808447896582732642546355194743664809329158934359047361994561683016865647833409001866078576404612010984817268791904464674889205773022097135069227893763062006256581064600401078314516588866085102215148929506960627797489359731879647900779414941730265434435692728064452685052022738771543824721599073549412060960029367835856570832456998611189714677803449569057251770908373349650075139680345064514506891142770736158640597349123240751555046470555897039957862011824332095973405680544680362022353119906217916383057599673570501293495746560647402588017736687032969065668512287599223879097193838327070212213835215006290033058346550607407678901309358702770505829458991930908913201689649941829747846982764481888962876938701121025823935025843657571919750062150857180217605491835993762530237027563863298664158229456455839049744584780524053797632167257199074843648803748070349457438992082742233333829421438481664090980914111531366954458584842214275833889976006705644131656337018498767535607044450415512727401864596765335244507721442180368963775101289216466349224802341550938501786960846605449638045217212284606009871380278382395054120283894908112583208868866931314850919214074311388139686156721959510944371226660582607667477983313717479857059963665597840266265907084408018310831066408542358917416056611168317421563635930190709915466047260127321808935354997206263571531683574357275121232416748332803701338094455010836790495177441430045545914744820639564855332322711297808585461604339158654577524770066554584823914340043846301336975008592960117997909976480598546146141431620859872470441688825947302936031855537367899197879093579012834923552873488528425649487895746405607549389006108643523460396176452491474831330843731186297192411877454471802732295676505304616158631360968065667751324463282140327125618082890058830468790420639055968002942714778877896679001449133079317970608211588179137208127961967809317356013916104810228444570445806408052698601068382740131495201698527354166272830826531539800491240624354734295698361992850746270800605496755493147011620715260275500973979425397669411372957732980565979990706854803437976955148337786041990218511184305914873711777373537814056834170659014060530478163951402120747831401719889893229818962302256743355743080950380375976563223196575046098730368197000736492108371005633701427968208489880622238806917029159524533256264665910543718740984476034727720458644968548787077130003556381610354689960177025083478114356276357257682674480168352646634132453039475686118878346285250132309695122432379739951907544322974092183248554585320809161561667098387254852629706527224342839845707963024733048897611214403293070701853918532858706653412033849787191308581874358315222103281359781497212510953165865611855853844240639363162502002033818332420263948242132994298215579963552897225376561667610730664763766557164456132443356124343507948382243875818699851013168324054217256912144688009570647523420017085643317415487840240384884740265697230734673354508815484947709512900628623029480042921656593574830140282141680301463764457923780354118008185151445715114147186693772119092831192595492553190032349869016992579218132753375407725161049723074218287115389363650921203889872099749935804874298844628768048455463023843169733405553281523078806948030686768938095506369059189620675341889042871001086790929303449321089067961655302837943406141705131009854111833938825978271447794726689922155276463230650523768928932665478596333605874901014875567614039106374228287878211922059531500409335548416730775171560065149854704826771414221773614007492115149270859989877338140235575700769307448789010105385704646656844466553562464074956090487997135288901136881067473271404841784161124608819337314364355585998462360296677415950410163214400421908383981907513514836928783591967587322570670651269823965401132257740508267505785018973307734080139935898215929245788405893790587804050041950787370931768776804786954969097808319656343156847171581109103819709340326376909400167994869849957422306472146183758824277819845025453381020884065046072241308029073316686413836401944887883763745606079391890350166462988001743002475736980260603846069757865034763666929036535980110646117486921492656232884041843579829090410667670116328368977587978232485386357342018354751843590322357288146413443881958362775724625847810851224467856489492431324872570114693094398086322114013333796690553582255750257293814874703220155730081980747995883290988583177063919204060845558650371078137517652201081498830241260827180400542170929192665583685954968668931146516884066515819041836608392151092246769820743340044938482194898073556640261448353488757826353939716960607098181755136971546720465764166474664804368101577383817734414079759594029130923937199340712159962126377014348590482166939915732481698365555258580962419636891994824759972722487245759419397895374696897868208261293953662642267951160457812230117809328073132719823423352219362832812202505445687934026768534224136101528194378536684305892762473858032519625735094247587006921782421160621531180736393776305256855580219637396204104434677871928021069655221611293351078515117135687165902096020447196432872392079172318771086790341669711307808945276678883383946229064238384344718177631419439710986607104217026996618983301233999600614138799112738115484116855151997832198132323095742699252522826159562941449097144471288164586774911587596492947422449582438882355443909610302725934708467955604972353615508469930627437732933072459870595306165676079487510527151264270807826342012179736645884681124414639584504976891558390306985394622338042980363241490260490898357249354356906197494427734036940502438799418113776461975895641979784712444934164797537618777649011206104100827278297649995871214736252554863377261606607531899514536911230344667969038661656323765604044673689011975350937187154636063974926525645152832651731997722646200780181364423136156303917353894174633876257100352935693980628347413216075293190196123302345330874320529479675696127733234310640468636825286645193224656483555027397329733660051457406977019868000725600676683156013566563433359371108940351334352795017094175917075346026310236037761679143970008548557393823538460350671896549446744658941900074186670512302093744937337659783386302186726973169103703888409866618460151448461161214863232698933049268097070187299962396527386403283951553371559152432332303527384615763463119271106051610008771074985503317951575145630688050434762497061906510485949318791761642238240908567682584969712403532925811322312167801695441885681949144963032368679052728618781978462136534936044211606285027723625273729716682491516317623647226393738384130715896857934085072504767653319054026696945245434976961197929845857627048359296138135305772439644123168620228394587161705577729029334995493638541023189352146746190310593288271619337556264097402313328708089610211625801380171450646214794829860693452447064712754771998674092454046870678835392843852946963019303340537233127880368700470951035151022606449504441695805151691297100528654693115031051537496294438760349543035569817688831104495169980314699695706426098253390598436925769481725244650144597236044675446534867329607346941471742297186762870801033810637003792385053083862836074204169690756946222809846662288855754016898408365534990701656073630760568701298906229439836058264706252744802482799565833155855240085145900720117990244286514033573077722924052580656164184782833183755805790410310553859111273103508657349927601079655336034481829033632020063638419078313311178495354999486624786307824114699179250708610336620010015416825213635177194122046214131535874671957771212091406923434097400326511570232187236477268927416832604914652003159855116601859660854217849285102529746674719882354739422305783426717920138837145454417171119325717975924796137505629966945535546842845486452388720773911947942297699465234638935872492276166109773100030925585276788496715384804793732144053024588516036845665414497426387080931881578536507525647698626436559889114746227021142814714766544376594602239113229191907477038566719745467322421742393784966959485468675205193470578463820140752300404841191418292799308848379705844501801712371897651933078445468861514056716806778169289392087622838231875235405299716894513999123970088040453355608828302173070271690030533167250823495202177172764190499571230269819451602349104996758764298565673254720149042495913334853742186688125544793022692535868369441705094039775377732970210169477434872912378998996760862350071416254508716534443534758736645054825172093181342596363430497620383807399044610092525693795687233537598923855785530183217112240413794514757094729953019031297396223634885890406287339696148691187396947732743912893630558638824247494335071515747250893370995444726578886832046683936141414239969674159438682489709118673910212874333059540948243252854519097386058362965137781873184224765457743278649016271554645127440972925232099465740626777838603212968824179863621391258082360919614321233180213170083547287719143122372832522623767423677494438332071386774379766082992905187714079823038749543461375077369857807719644049924595622068704653547837722422227649088292591531163537546887513387670497314406769711963387945046274604047604454714362324914453041870681950314477083094231443962198786204990751831548271258772064626904832749189160953659124373809084500602196738391858442160846271958905879622814215322098196320368827307999917535255975929763946156784983267814601679291888397049441876711644572895286235319060071548135494485290838212994787419225628643151351409267235073244069054544013277980280935036882838948120995903792823942851385531421675778168994088519103299739765129156472911193400661254324807881255210553736316424694908635325575159666141633107964471065631329232880152703535054672360965143509824930512770324025320994423617325440846993918546988455993088907184180472418630174086036090559440514015388607348299617217909676354796781890163593080477456134832469902463121289001035207188308819817823110601666401784152743481854309929863154819944656687951195931226218583608583860644321793820794269450466374282597771291397328142526285833473542657961576370403983414128676888275145511398808700382277594138175989118471472268048823243301882993689551033376961374754982970794819755867576510334728595643750975517496980696914976785266056331847543800068354077547175387154918562899310656458787672927551523998933121006734136311302537769054964647270976074149936215812800227611999038144601658063212289007494148938285473623582676955998737754138286577761588140004715460504536638968266407201689537640732950425262362774758895336193502487616615322955366809559169427059879817863602042039168139618733942048324853336650759237790789543380062418795828040935106263123730517247458472297633361535640478317622141855170300376384158101822350371794419306878248581335750019474749841605507562135931572551385545336691999542813080212751339601955304212721338208477498255170676084481809761952351167920386786416683365086169697718088133048944184505832256667399929033405372357193416734369074849231221256580233912592555745227602554626977382453080505651561488911114443412959086282465606167525979383684987682052610408376844691366586840622346848227133477602700868715017678431487350965662009448553550960961133037903767671694336080843690547197862972266184942132136110535491318326953415939581617855967502278103721038150736330917065549696597684987303999062572591985836601378522503584629928459201492763057870497510637701300637506784207225268345225280932598674107007679284149874950426824764931868857368319750941403604208962877003705238945361820998747407938394838880078176826767562625916522825057548635819763214693756160642446424885800019117579149859130304139718594317341599945265890415630496467969998623485391914058060763127536108365791953847032789716484482489472517624083796406310504325873443170711092814121917516235189744946733712035070162491453247096739437084958709952510003777541289144859780144271525618344558295431782579813786571957204079000519080877115738987050311523601538212355044560750401312771663489401625003779843809302457670047107719185065237035896905778817374432699598712605785565919453455217830274371623610368975482114671169397114198795467240180226283181976743806785199608021457231836143281802083521565710765852581251230572375192817410851146040559920622842066005444910404745067151937914689662665121881714051119209499926635163101736124070165492219409211803593628033140310390649921089426958630267988051882576406488411551930349859128821452645891946109530654614463987968821073391487750366685589919599721119926293129615711559358812312985978228343105564453895026256538103694044255869689350817568467191253967564144064283924692145496721500100556733663276799116919970196882541755887822811342976174962250916850854311113182235711175502990322552003087138828580259780277741933133557522787323347782779958523977572824054396495582857582008827152180646041337374912054918320338174781468757604119480612451332255174621972456864737749795720081094078548834443688947437463781202123464291093962391373081667410315810368877461939056075164378572925294367127766756078050594596816287074105432328824041517694742363129036114614835086086508198962634400073331893391438922610115022355718074834725929636391613089009028910050030116406192471572889205522471400572265991022512278287674233436245396124494013151460877244396755002085073470791481755716189255630748886473169753918001684693552855751013956854537580666631255199802630617502310335068160204150088520759173731636680972936981435314805820663912368753937643165103178910473573417339635777966915384366182710314302333887373049127679266435435661305073775505283489937314375011923173751792438159081977434338051294121577254778126227661955995210358483577989846373442038680614156907538351572202060848548971873994023380210343298762046123341949055526504913955302336102970578615318752223603765327348930903314759409666775099884006532702556507918928477983645258867412533470287779471756688331840831813100755351390670398077561681295787988410859417815285831839286764228129573135293171611647809336796739404495875038923644486501624831599712603041464642498292695896829221041711040418820515780922874682962175946571499921109556862667347022077067097096405941251203800643533280360187828727625040796368078683027264784352786769755418435832176047316470658528430567898579043293179944791026804661974014053445744909672360422629337398885244449817056818260177325235345929622707901346321239906335635857913324817769893954165892205254153386308423457608505023438836141007742198527242674101691189824862259924613725318379411086060814171939072898765294991872252133361036606551537452732646843548911921275731276520878653624483599884729902678342742613409145399136799945584790782083488371125765667784431933532104052122703791419590180588601986257812515185295154648540797767941257989589127569342167493510003957924511780360033853551493690090466020818976647854411978412698896342844793782865538486072351927651429788385924505771482141460046564508112522472670392737656681132516799993458228654345732700993141811033189148423675021992825149368634962044336267168214382455669077248033351090990929458180648052944126098933265981040047073975074950473406993050917839953697972335623466874220993552758119727681463313725449348439879676795149559779825111542367397091867359764382341681796731927588801272315549131089591509107801821982879405964538393664257152493188400827155806331868668754185368607216308070181412155937416038790204416150871838668663732319740260461564819930301743343230805514020753145409818910115794834202636908224170953118243389542997514089756749663057055717247198807392338453713701851380298726285785235183833049812469581638021160744348471620627002073894654444586669877833002920721786871320137929201351144690302226610596039559834964076991525510656140411233200839595022277425818669179805427552860713950740147947070713078238437595544108490774057408707790408927040616379828322282218286088021528382684801219495888800521527468719556939886920411789590048035177587981155947072490462711831108251561073091780036585901011397040204125039013385241661818009095906867180988011356403974436708498564054796755142865985188055315477552467279046424971326761110704215995256175256996911683090397618413833206221599615272456392675128127303099224693666869855748755391566072371705243724071281295345306652522173317946719073947031387528623694905529454658326814326153121619902513082197931287129018908218396297096704381751676499078718672714217720432798995916296224066662051448872009051586892540638483880483891090906757971330919930639651524988162096769609100770192355389980921165419681140606302303036227868238555857591550048984114450673068814977091252771014101998727192012913968235921231559517501073382943392638363623066814462520640709032193298496772558814959666010722226266616131583832240589174868608703964408050061429888740124365924416049042569377669323300698590124522430988994883522958947835956998637354948116530938558140418747089787564528816595922369347877239373953239533016106934391425204493376865223167812811293673910185410670355294350196692792534966583506860471079293791663128923068419153801725513137521450114783829631057602737381919206204982156464336542310230174791513496480524134182632321145100629279514858228837369945218076675734559366732531135543174336674422325228863355708081338144738122434357299192466884992813078954427931499330231812624759768843198166326825893640246781193802301847592866104856161242784934673061397337753947871370552772332272733515880410420526107040195150548716457608566341086356736840614173076431402679517012573445767628281465150031550492330612450185605613431715360084824135409132151436404184331365859694792628456251915382665778303121198247953327738155794960541950614121577554762638500792044740584986037794088864954232829611947759478697659963357776689563160329632555178564995806404224740811002369078133372842367524856838919280061451312591382860774808880834770318466121432652117565018440157013487543459744940203279168351111079650343738898783899458789359071038935517840379593612211458951831130149222794118026232462850023989079442315845918917707728813268097554259506312409037283624075293092447844509250478320135750683218467832625656197539151344969436599559670695604906423173020159099112990657136737011260829953559892588903938393710830137969742134765402783542446393311425943538513042745632093252651496150131707092096688769478706065260891022391238631139097911425581242837287754554637413672174277898044373405947606317945122557148359282745250060667171325669836950109813180423059127805311051556604681454654379413898350994936201046889511764429774511025876383624518137758274768295007960350375365146906687260472341826622919110970348371338176030671283546591652620232523350904013383373351070676095015973734775234962561434542273430178637352391576395420845295541359535092173329964775512063985023227057692383534092349037322989538256930527452083189854159699302235296257364826181751319908960063261234254458002347863994557146350119420409393161292524388269853994719720554566453766500368691803350477673385318344834470987445781183584471452755001371264940461115779766834878015446074680740655161742218424424323474335448749837724373350969530423946539611367256472017651239550323480416363205097296852366821191475438142944826465405217599567208526091861027697390528909759288759953104796897692657701920996803092603738728595514240445767913393236051518031561339731100180591065032974420741865867367665668940444466188778956822159377880812187605570624923722317501660280401720619700912876979520722128901687499582641429561251454417065441335980104634436768796722862607615009028554798950781963386033848435230057442489016288492477473220233175289201239440836045786782657065516272890005012912053390050991734569222702674946976250304219311914815902657097571342465559287395033964500610159179383137087566929876499317817169708302426182284898536944811027158146196400648255133886476762519238591273867193318124824977654967916218013536193002944849734844559474741358121866651583973715542764858884400667110172356188823486942895098628272105108091961726498020274464142176094106294618557219380315130355845758229801064122830414417110645351441147832009214614288052142306844186704559538135550328946388437496309105033592733037903945703392118573003744579334018295278767387920571590923747719770913474382115765996955796093284058323589629303666770296277829717500602767985353123399940192213445317526751761569343474571729011300415958585287703499133413114499528407769694703621637546436776666199460441829686815303988595387696313486600369639910995730250365676479127461588661062520435209489206288475952537716200446735475290439267598583199230178491444569663068859553952396592350195426471390030241133632171811546788697402066760494283700825260446450861333975679669147463382652109078981029483748649187165144069491138578170226146730229293495666554437510179633528930398035926789770693424086508923286898836423493406121309599673338267143554055676121457097014378247034280774822559756986656912769580205385068647402704625065178335588509627692011630770833004899914943107862040724200370964944161552348551454368475468870436172055765513446770133318421068322097942241018955142241344915982772340513200445032648766634210490960746832925008718825017415287959108200917853296341568758076944638232393399661116764268401805436955354805624165428242260262402488566873349945267829579974050189571634216511142338444467923699386161723170946789975578556877838662343973119625243338662916567488191289124275706675192762094052233495828900668833606207677655362017922883744909818415527948741612620350617729888937115116556411133049761282357498729231781559674481855629372071814673907687442435398149970612158644149685645801853529924206268216284742204658161676650531349390502393633409480589966801610808612485351134689186919286489789618105656927912624214872655375378419445548461569392017035405673012417574020248489250834510958472220464443952632828567747877896392584289778890686576126472683278228747734120241574330234885885356961013014711446723332940382005991015262067435006274208237863780314219669111669281694306392963346842869033059002227935451513194725792453135139026113795964155224647849128463760726527800796285236941144770486493937033657331249651316770046918407292323475919293088035794991023680409275157076256157115698628418409480058340397340564152915265536189900994967702343570943031110260842960583991013564859817040640672839393350616719941525334567443167727912099307723301849703828005377866014402073531836448789686861428801743920449334090926948415040941566267844343587054761232437868356206947683300208406997450129005423159790163435145251340169994007362434354936903677613099016022538529943954917557340893694799597115906679806354501427716204090619141813552407225266848583306609317559512720659626212437743531629095383764640383524855007034898782091009083195379185521036866209017757735530380399956153991419924282343082055132438946793716694575402700460746661624269775969690139729514409543038480517829649255435774558374900559937178237158836430775706626719208498768039962693039898357355180635615689491161651802952979610521367929209888438873530728326242356239084225653238572472328115373201008275685880956651626694716032042258499404823610763162063676369131411617291209876858682534426522643697699350771011608455249275324441917406822311506223087390443553017556498856796690748849555756154311873594555537118859063578439531783979155551193586019942312999573237575120510628762302431945653357486094953025080306201907016774396780037482312772499591235674552665061121415997072187640538518727742378944243786511408810897915628942877431821745777964896861569202505114863839056531210721997541712881325943497352253479984850419519948179060190379337362930685530641911161544445713108677407510281526719360180093189158898691189238516540541950507379043294194017707185975202657181438292975460085368519606449458675195603523175013947882721283201979701516023192207432713615315592528260337432465953389260096881142347128758991065816815655285873557930447745404612436009187893882296418006795738992207209702221328745582246035630806005556718529948304083838658465586549040470774420053817366104498376046430824673004043062092861829944609826245868313382075164300258831960275564935740661227905714349409284205364286546941487785565980493432354382058243210421383253494096616256912122195165060145003481121772021959422160385424827099228434964939134486893701932822494833021211635002000319212697691582559206869566000325402127685472174699311860999836017019760516705623109617039823567315248440730901138004334906496217861829845488798582252307421685579826639808762400632617415849027952737023278184314955181294731527840507248907789499216428617934741949114092907276211129213142722192188965920262192042420469492441461905155421330889062604782939485687715691890062714095746289191632803248547222875396668206306399563212119880063650352366744395712197845884999315201451471307630144818512860007182616470221105831522799312548732269694601474487565619783060854963254432012829158961478401988467693460738788767405711701131628899967224844639725255004075126907052099726188948177284297461188150328674600857246597354973683041035521696649843012652456004587470688741247696813109495071442252759411274938618682544138645153533034302210032672448516107180162410118748437775226817605057717490727150632598202072051829421204498360275158787040915374151179711520005215073823753825047757219492211379434865945974539737243752660412600255950437368124441437384029833609166637507120239088148224981631169548597921968579914868611488946825453438339646947699014220229593362481453398137299698311905408870272752253356746633453356218575650782734518822470233749627635651411345399163409388880860176865392230673137172301850903196798120120882155626785066134340375955388701654142857127898751877466664814360090040914631370229430338940237383298293473961999426822101189320658010491136089669833324082709957489718603724442516357503874341894735508281525444117731426008666118472037162030735315272794575665291463206001417123975791331406291905386468690260166516096393016686736502672731336717699189107183558288481625662360798784229690694396933434590730771238819588786119736269058300518809547630004715687322567881863856530787022205667459772757852670525501974501201043420934939351169939786669263562105699268550706063531259843660151049806421093237707523409030805426054713161814723094827123462388720247382271011071695866739817218045857267441054296128198129127598414534435693597587842081897394544663861613356720336228236962075407361503766295268364991109563289537912242494968610960739386195396558235112075884892250241871373100106333972341633802575320907576605078574370929741317023394867967402367057129020045785223215850681452166659634339500346947799493253711161846524953515692274861797877019717183842729518671091333497374143292950865352845662808372894370961528939214999528769818581532693526837941116935348425149788057320045364555132109234805384385594201279976333710757548070090527396467588460514705319510428396707590162674669780871444830366409935647763385505220163449786924008229432215047842228381893480390602643183794446425429642196603125019366875673823670153654021258792991633148204710245301944972483617049533722680807004966267347923866249181268845833097697309282826759902814451342873488249920157623064305034507119684966386779071533047886422193485997516865396336146991573086475727157124847506380723031736515938246216008364372151197101629547731079000822556614152434154641886586886196913690005870445490691200243902433753971910681691205333940997501964135051700155529120867128428794950902861180807024095265135543024068283979090017988316645486217135165082394224761575717238307540876063589442129913079692978072681238987676013394851242312687950784453051665941876498036283174737984565401025119509307250634470292779497208408822899240182950417915307356082696394164359206978229240280153184981393520047882497002248419375779997142506738270251464338570947290523437942510556669015871720145297254426818886308931475702510316624252417521196148354019486381745810151429808930619308727093589035465802778864517589866922828238359122860073382650191807520801327382412492256080217253114247136876286588848567909190801419221408327710335033960058010175505910051552269443039160859933326452691636649309004282646596895306622779725991548208888995385502622031488708391024957284705643615522703599389395104275967200958468430704150347678847005598165812163560034766066564564359836497358962561439218861232374750128942221149976819051164202857260926592222362183505973305903789333529383743581209893448908454765267440797884321538117161539814587580561787595125707274746454023872365479611871839306596032505224810229624395155873827392853084880795893705315436931785278221627053751198139204571753820352743163890229359255791995004690122551604748532519022417911165608066611873864934881646403966362245185847730318460011958545365959685101119896159084542547936314054694856057114249338910673805115533397019049166449816431589063807444226042274838155033887944775261177314890597088582000638817432837868651509930213868614912216509426869625130771985257708456015229918194728641781193538328151753166214240278655706734756808916405996973384411621756631819955399350044272875274754002037765048819071505555957717617490787559857713705525328671502159881277129352656648921859561473580905748617279664417682579570036803894182778045456764566849903242744498731012780424347435732699035206800792333096747672617650755045015441196831916063784731307916423019480192526824623539134749827442532340984271176437768776923887380500893220589369458895878520010959575753773116338106058194644684467961133398556739731121755325040535473950361924904866931511868628136370345843823400375126684000173211704075762866586234877146639770596104859572030196964015166009056601469320982631394102763712584623302063446203760257358379356019935928164691275732920614470384670921840958653197870220400215816286604884806508033971984592557978595007326405296791002441171712917096553627836243472624848797865270700489211927822631290601911345128222142236142330743939221390148387582990979161386859746199933876589179155964341913842922049039884268807620084056897045818568158710519304275545354456504345168394917583369359208939740577263783621092878099473779099538951581185991855264365347304390268491931088563417937614342657391460606471113835644492842074458018612781335985264889610212174205001468775371482869241979148745018181292174351678265583393215606761476529071282966053329711593629066413843737275527085899214925135029935789238108166566964651547764041047052323687121888796846019437446673990779681571301650477264581455148931565213609781516610096513065488884934573989497245911833179499926362878723292666527160168388581613232433115549384862931165559954766978703295741330377430778508701386550815003281868743278413565627248240897720050965129280642805494747813018873539479867778375958984858105957446193273543586009209332425902987560867729037603854578579502496258663863763210463250691698536039087897561077089908467969413498410425845657595734384347375148703916020059342461693386953522814177258169349650285137873488557481141128491955636853269022458709804239762870989719786063047059688146583921781370041251582048758727946098264633770469264670118198751513735821619786340457833599069756812346707614752543868820453005827584378907022825418785723819191386596868394894570910225671072850348076486297300482765810992009715386063836490799903103264944756016603074813601210683022890403158935012662488806294003442679173038599620141669465568202468055387629701000171760253479931456920028202121931055708356783316095866329692007914718430719691961532607225089397605353734524484514161384985966229631380853379414886461537410968207455226607017382993466595035967992546808267547179327512066421970800399559164065608403326936795427270679459140494488446840013024888317023779045052976549395952678921153426583832598365621353363441038523058798920848265287204006042868538464322343599140011570513124111331258768528104565198490691598450718829249424279427952533843635783917390889430120809526993145249335187585931033367368910646854153178086037851630019322273428403926792219052758255088979751446532056894930971770059798914855857097261366051690601583022475834940870451014446382391836581542975053376736896105961580915104535626658512028629774009302726160676188561117026271358496349864958923945506744322658423781945251783568447288533799944463609350897475949179086432551404199298300691951243171998160112700288773224950567247731332666000100360453821638355447483801649647368826762811006880135010540461135534160265171090206642516967984145775161966836278765722942766905437993473618281033576249986856035400378199378612773927911032454101214796764027011528055702480764974323288964664774749889865203163412672534963875333891179838604939866982711600111236235714234336072867156881761382544664255746778762407855143878576607222873608319414866747329332645548310047170616942538348240036170950501132171242271508295290235049088471705706004715305475973440860014041291413866701106281835669392256968964093459984600650822664807448803070962604148177647206555469621723533844638795521835582674521429238589328753250480802991526267341887916986464093786917458565107060400087580771572463267975599312988374505468912296024615666637341545138733479410265369995879663796605441914401574762222076367439404020106056903682353265661518130490155051561836535245959736461533513210659599407756195192767761146026256908359343936178925891140841191980645513774375315156762259106154374205353050517874038583784407334366757152676062740979253012124068457672135562202497355814972757300072295128528584681039127169866681541273559210364300571823969750533275770228232891992756211621603286859626402193727514456881180483034071960392976036229721523281690858906537416410816567106677649227180483291602552276235361039569105839230840839391665325551947014309815742694323849709841875755682451561006400706947272513493195602793229594244861097261824593249235855538498017272064369382065618563362331808356729535543127956492664826137160662182517650140624819131237757713884661011782738231975911723421466675303042655875013204873332271721001175578352611124017625284834742214142645744938845459347146405430093911935186977184632027468871501369443125911209101548836787995545585193599366753443754370117377432120214549463010538035259147792846268989511016296667972983572445196582149578071151367627763049245957425263185914035937768455893671029712263068783429015356028481312827381691378085703997564328483024347752512641945172796540152099841926750190136824679906218666744030671892945346753940189628198086741869527860351312997949376378672846386591893693635213991186175492876459866675350089359322290312977872148364323941434986616039058442191039212826921183658582697043355727351255086269030467213851108718712488567514622964437735787582390918303327850914051042920857974150071578705277355412595391206036817900264702478646691651744104165828865894213897822455557981309665331135146767241180874127129353180797843316197953618867015440413024114944189004846706894122309896810408970078042875114438453947613991002612053265329220852672093780574869620054281729099546848357568370700665045587926530453271008474973104815688387912275136669123415979168929974236798302368317174096899216065068964894830152683533008271292259443135321872942140807132012765725877584564535009199190706705357375727152729882066303274587032600703053656126658960727648396570782296208588504184337599028192461797786974613420762035003031816129355623673959027278818466031991971179777524736805399152978448172470902501592282133718041603896811291459417540853455887213294532425388196394731250207963550279122052245622967241844354892331856786804268850648393501934339977713209456133752995859904164829783538854109970800096241191193416714072869835444599095337329161008114722913608780968037987123736129823919801468320181097800261833376943910977142486247758609247837629850689947586556940676846698287411343327035680838322580717008967655069531326331861016854290886213887049909403954632672472343410361540953905739937749638746824162892399172461367925152429926097099993820363585968576118522535733716387711097843329016155035522227564594283866954704492875208631840995645509412260066014032415971589466447102869290562476845199601648215970583336394086122777962327452212254381452322263534215115244170846940239651583786496321096451064465192073419747940031758462286837334658557570553227019326699147177347006388048119122264295456732100558680152199408374736779371799986090231728598041775106063836126607948536464342674984297791022081196715490418174772647343975524242205912897965433283655310950221829872143155608779349200584752796281892654084219919726906819344296985425644189680579889983661197293048892026870463548433180569408028565736508402215604682459933230187279340799350679497208992472788165814138877323813506307693342243903536934202125673006485791905253919485072382168073642869552062042195806326472050330821034280802212226149115882185229651780412920299545337375894242110568011703905506256466561853450337484872470160060705683856121934769652499829809881142361291054768284687426876345129971378602936163593096755157391465741634486542838278869269918097459817767135473550567363258950206757792269827830764980121715950342021223283724459218733034456362240277547981238658225460130440849658584961018211036532113320391254455138581625138145069464101650886664652908013605388548990179068747406097339155781701728909000830636981833627501774725003288189298507673481736083357540299586134914770437133716665125107248468141016636496965207193682470075371101156898985468035445247397728003467273151819643305901810219267539110240341149489767728260078908059150787393368846265969965176973266142305112224134994465390075843190548877808690358368543853541370530611117829009921910361848257389452455706018425495024036122316096061098531320779645110975257862274222985397391574061604904778604692956751641169623286422887511886552003139751211511907307322714084713896677835668882119081772598018761764810543970380148670155338270634872304454355332848261192347977194402897591303715713678096327571925732059776844975925360051158704582286493398907790685611750963178849070084347304173140281407208068043980597926240284689927946919400700596072880690565510885084541832441737232478102900473878598391205817501895551724104141162698354216126089072728956066287979808635986314375819581528472791087845004607003512214996358447897038685455900757621143766559465729157676805936910062603909629390902120073561248049113847557898379381140528891191032578138530070494332649397352835321450998039444421752747135003224457588206378560802539687879219765778200203729666346799401634513865787175933514164552732909851514496209116862868913323677801886195602202893357024820178601110833820829092747169223787026467286017597304041737288195948808662425332470166866317929489031522007595717195242288168160028278188671995330343960004429958060755037692159131855186312616089118420976827745713193177682608821615957681156998868959142403331265736383733361952242137709776959139675040972255644465304990934106927287950557338917906321440328380497726381923202094322108020789875294512725605633791617209581151532242488123920586267996219493980199073995768047151048165829715552005714267958429176621734956545259211326984518817797395549699189021851402648197156431947298502514588170275762513676587709989092105517142229075349827529832567274604022882261424976633770708927060056565869782695646166421077641695240192046725327191638840500211241912264228261087006621829706045863521279217702138925279524075737567592530455729434350419744326060111520106147853821828316432170110057040546331062381783893484938684795276499023976056113151756399993924918315139250303096958110889956762453277313211188467585005417700424871716909355903600161886133719422167889820318562905494029145211799418815711749915773849112380924374042629235545444021693166709572748440356613691849612757203690954100526953801702723107474344645228159407041600040346083990337940461801923035120282812755640289386396703220826534144960511473323398956573120015184914950891782140555209278326057055157642675992758646000204909636029325786618901013048999268450143103347358485923288672956812055726954733653177669307401381680590865052624271457123526372219531497343224527221572531397152427246929894914946690891820944823212732432582924476115093631227508753503583229804505484459926630888148068935524547690351532325543978950993752833947513061016244484471403888455664783643538445149194888391296963467188935474049884351452168738128240135198950098382541196854701614982611535001880522251250921984367332043438996770529497139072249974132669243852753439606317308285219200500098914994590822907692652297313237623073092365027551458739225415431428748873184966975289472214875875689925147499811242034422641762196299812237085918716230419284196361414771304791452540598872447725375479034951139639014354483843960579128497265103106452680561659017163634462598462129328359115166235928731319675032951603596022506553610003520485352181604020906101499691594749983595426582885771089288807439476638507616936406654038561819232493560357233674416000053479779122481555865487570557702867973943064182137940087770641661587679198417357241606639342713712101849148541287831787616021045596002346901818102008668214099786086088608855584038357104390738677136799925064870075928293530162837060615716831972617454606828416589804573790362879446035008376972533526535564807046615606075230576819053325956797030118810440969186426583824324803756808626618571434632042454146580411654818692101517748969865164876392398554336724585794145088420743434276228185214281772857626221762560366706313883448253075011933246922527585283347809547353494639715534861490900217753793888499295459966427050585334717198844276680235277069468897524351284964962371715557612933182094886776329413437882424868446984877242759528395233397939313946426643564744062995533397498827944461065279642043262022219238436827788943171795787550074710939659771272612731724809556947657105391549287115604813870795173236781042014289176436803395888219217228331524126259505851985426165312814320171494286789307610065068575854789269861926391439341218714143320068917265324175390957813662033599140810722194701678544026264672330595020835147443672782580347609830934733913028144440438427045784199252172212850618648671055140574761449114588688827817422856962776049747396124765489922740222620763615729630100810733479423106515369210100272817251976780908354511956361354607722654406187058221694204171261664617276032202980997473762277599456610669647598356108310535518054973158275208599370333187854111382417878464480003056608500343994760685795905577258364405714464162624878096255668145163087965182527422920535000137510265610697340280918679322667628617492522044052424731978141388184505186778471001397920687654204113983009024425631585036401770713020539296462787356645998223664606597717517111204226362757012725280985699982746484891467664300662252787909865804243534361124263794605752202047808867918566198320552038832123269255889119786674248619764303888178434257550881636754000317258838439362284959482078799796950712801744905081300259758987814389793895146884263467401431384966073538592029347926480697138104931830774701654873021706932176919811063923074367802992633281009883009523247808943430254913720268964373668983533448897430130938145803071413792724059841527016298637279412213638300651701977240675905769665800702192375276129884874701322671410660874644623385435819343935490033705278467568896405697621956530166153513079550471604207887354647930458215441535274248594054289392037647365445543576538889848064268625595309397730375308195288074945073196858025080514459044626112622691653194265739699652060682659648671819419735322805211712406160539940486253014238689766442290290525955128557905045989287111117938316285493142422403619089425288769576810205981391079591072813842489348572036760107158614676425265692418501712902706841246339727527638660389107113640030962035421170098955201350892947972444641478854913587085673655277786430636071656022914265540030096334546902187183423371397435354907494018341610056634016170803789429314997313753023127677871029970037131271030771546244481826816376193879531409021036959350723942095691020786139323151399413144980268589861450214750548784744703117225951561326869567538454879946387529981742551455861287999653820569849296980977141598214101975095412288246464101406545702682794083295433958276171051785728180653163877139988487597981688153949231929643004194780642990944079012491437261270122445713190290717154973835434888281359908194794483052895586540984237284724672955642016173901196049817134086739412205919405062615589386709440098427597097493155376314212934534373412387537563942940350968630671166616535609187271840383326552611410767872341838552139712806222062081407330044653622071965028960850311418025730734319252981371161527257044897878325449984937420396983937481358346686012242133769053226700389129529015655190847882658880660819492166527086850570086678596889609680661185895416176027302983915164053366098419130111613062368967559982299381790898001282541642719742503972939200497676617429966100798086782186780507791375480973935345133113840335667607610750730227650050155653764527083473341296475187012861498882017069887955237284240277205601331479774430415343181456514436185077440604380612276529313447914052506437171999434259853689649261403282348070020039504666459571885544635837753235714798737512028874612128754253641684841314559394901217500544050902597252769867534359253340715430924788918419921306106075455344922929974303757959635965736805101149924857150385364638670636341467082536179168186036064678049425297182232595716839300636969881010499594320100181474477323764491226454285440647860435902405135109515190444754975273329052697135712815187759073315521988499759425364116342439042186402911802289198810068540956579728350075630704063199254394362229645579250731842399844261530375242974545712032879468741779426903213220588221430426827385212229147081124595958772113675577230550703929520426652458218097654911021600706342823262942246213167693727620609163800986371889500177546807725519471584539911979421781058293666598774122932921023066794434446963795544965746808078617730528729109151117413127139902408943199157667976848642114989376550281884612840619306104579584593762176247583210052005988926657441968576127098052857668048190948906423681223815672032562578643324057358997682866610183000523362484748896048356285290303971983506595005225898353866681117093071074962227595608975008560165070010954273554787392267767609077001125567370139243781915407088747075602229944615980372511510436488385062224046574768388998825075195970016401989042109116340067199500337494172012708734383369316259609919522589494628126638487602903346660971050967268233120758068247975429328368790338118515129706176540848032846478556949292315228877420008886493782186405419162983671717884996361921751057597239218331947873759967848840284071803214515945265576133199002426718719878490971089480667007349968456890463593747618965044367171081716581983713811953579405313690436202527346186394867617056917513606843790588130961588364183249486690724492648778205917961635705070014873692764714407846065125854837773307541017711227724544573538763166366505324886623469290353132344550104520511832284026566019495513409354336949845285252773103182654945923371371881423836085930848563064625790549066204719037579551266158090157931406177624930764690673009350476293483996464963934227892071598143712057716913262866283164781972024121870686121751137333853602890165891725080687807672569438681535763424006070317387993102122832440495962130861702580682264654277343559327590971701876454980313441950625328734344865832667522327132545070363420819130252039677627847483993472105927851212513736640696612768815856455313566142993605398494360070595812971155567931636609717344565697221070414693319129076823827496255202168286798773265880594147652523570690598095525309950835954097872333988991697699351954017141858936718508199461395013994248349974370144656199252697222580199851110402447590167470438136180428487687076487217250861643001732540803481485312693247913000652500190933859257859595424626385950898051899159617749595668363165751154383608331943961639982401269347229111121871374238887777474725606125510443787457102162078063326198502930991217612473695913631726483047138566152580475357552742518004419466488124403311945317068609607933077003208468570135647367381764516608992022787723045834205296982742840198616686160280513206651417349545928793769283625381350632207689171295281458703477030016565340424286478773273532446347015810473223341023022459370824744876508913651349461369846679724289150845904017977542998199162696685450013250177373989877542017667278110167595953192523316968410427555372715614847553134826946136731636288698344449244288647648078265463233077195234023756471061930408630754946312579369781763873687964570527054974302783449150554837621454183289662327188650186188757964632833419891171786423146308459146582016841989006445855675601573373845272517032551968196801196824589868640716848414350113282390110226968619168028288364891383114100582224938225248559334454928501698648190721028230558375896282305837560197564764568381551395507532440715496960732638094190377484449392783398199540466285630869509012227302335558954485786103970376277476700906913885929895882909741610555976583497565349197248408089485526624240241433909101200291369827211531439274404900402503645075119408318692754142091242848825286130710789928536284335349015884032272313039047011516076322547030482027455997688205994094502414047743406901176959003455767604813266979184964930069733572095711046220559650952660574253101595349999759098201488084851042935621812140570393507993543560995688741630382002326173402629362700571950315699793398356056272874803016845588608419834575107477229065303602467860090092366825441818117689066564861323403991766203287848722393018150838972236808928001302483023458531848407277912349282668605375063757299182212817630594812281093755536888904981060731215421831231115550639099189640074597272205814818368472479089300021503571312237775851372227389229443769543546377528432031889798627973202752029189725989957336073987316214024181464967788615425459894616027115858961291197974574763472783468817564553157270694597420875193798434108080766895826935995352627449893162099508466818491481737168208941809224540716505686858568842863444932955965893069215151743715580992521257231265312509315763892268323580418307672320870989045738411842330145996392255184286909276371772001212191982786392350608924314542625984163845098083122750537412425843947334438661779020445434928129866977035057649118813349496923399499381042291039855147419802751421609613009999347802708153074016511808132428211146525411471207150682220433596383919771567552108466802940608811141586199928976293219282523724608945719798884119138034298672779148368837798874838063986102756721051775740462425261177861054381177776835623878086836020955854958492028692836491644631047008164289564438505024371625685446019925617968802458841961991631572963757465583237846304832660759948307424618662775376003404917800594172643660595678272833889436702028438129248860466483874531757251675503241534255905359381089576143502365754120013132639015758787038236303296610943557522456951481618136877009131425188048656092359395105178239446370921834740041295922834011300757710468582282173078564533027399544216496950172455500036116526127765875338816807768302096631455407207465121003096152744081096623863723466778502436275150582678576404750617788068152588694634380182659603765957629852642956259825779754730644975384012838202238916897305947145009277036571483867920798851891469490381111000798855743910676115904052410614098472832253491678895247097203494442407167636115546329170906286889758089873918470207917979905605201359482220271938623081524310576150278309883295922628219035252479060748920942997618660522303116738095313151189902861215760697386656077958590480042602597377867098529070922068890195961493999838217641002679605818919618950554301452131650437894105564065770406156788893364532718564732407151316238028230227896486444684864197729279291930980161557365277296148493392172604369533662455267914071063932980403130832189726661518317408700825872321097085736219958659023248862660975919592160166230029801779800057557055706367276248391568399070623423708919912616559218944587299043030501279058341077689886097059422305132533557881038040694111366196921990909684531780079648116072931201408721696318699646165783113938465071852479788833878062316479263120322531787536221482100143842882361524635242194459438419276174750528876980321901496421594335796083034034824102219549517014895116850979993363264588378478256399259737725627754907043174368054656791289378537004838491204178861634951928584678337232821038481800214459609383877453978325516944883872466679324284090208390845285846693652602495423505027385727181989550772573465704250512169933223870244412891065233135708133796909964426510752805001465867721668919498904493944017803319456615500281210119535228647658513992848237434650525496503224072844439159269538198861591443375333035172722058540927822287978754830268941600824896503858353305975607227117806206682591393747390093388862184639295328727599939784275673308602694091199312081598095296292670379580201428709791794226424292051158845149811630211254652340250786533504606850790742571546597142921858839343570395529621401051334066213309578995193244746577992428585155633407507960079774946782921254707864741725039781884819224791367439908720356484541083107017313964799214512878978141372748437018923853636595168541450888997978327729426116940584628718609835741637082628895676407404031030370676677283069472150942458000386433021560284424155823938599124892973752785400165555720896126121000091734322840595872261908168770133031116386354092410631409233587812781303679845990451752054023139560266269850506195613972280323279603956553307874374637086069775848706203991510394236528304134877626568817320109143167142327760288065934575624521487872502545999998266485345548071177822069407931917009687434586143435878774238596009493891835281946154057266024303594851816943976903568012457154380617175575843410204160973347238096029969399908827837164179082249934224378409133119270185711721215367269783312987357790211615477689617477633834866818125965760116310523345721228665423960804842866999147290259715592490266749171402785387101129244714322907077850774534836362753900600770039836221725531445166346414585599422440315697302123627950568222494196553023240942483361801166199736525333417705466869756470896324889010244319909414701539743033483233490954205406281545721731272705049916020431392958483699414840608550014946486290048237400412864334207819740345691243764011429880421384133212753530954491583157972569427566043355538448257034418582662270016692180097256034133111704455008940081851896672593426448320190025591885298528797274054625336870574302146719572591557366418477661572261772202578463875679209661224180542173249811518177227172835664523110058590389986733500747169016793005309559972918690582876556035634713630316486388333874339135781848102766375494809230076983644871135293149553076557538052222908332460143759506136500699578646904317719730774971707305183674069157553996148854399539751200260022223329715683922570061942612282986123302297359466370100088650506207771079850103525753406928936649436013025188536403703284027371619352403626419581062969834009089321139104959359803358379983421570906304980503508085375022480760249102600566596759866736494708032963821552012019586689365320605502673038213857835901863491997255374508859340397478682070986337539725500823026744735655813558042744715465961779686273625963717520929084681824808919727141696978042405179046413806653410610354054846660727013167260914645150912115446981924862055269767750462386749884824259365192235628935105161264227472415775624028603619579361841536166672202831467464209130886783407043812808112796409610817116725684464080682657710030161394592813589353681787328756595139360229490042957108665254517037452413053014090474531824335268010595991846271196036176040125615907998841259136746983562452305997829141499459150107601799926199819827147779028149532446891706065326658594128546385207777026234946817752299471058904937432591009046341413123115758069597805180775111201813420120426257311997563171512720069405003773948872442445062940072944440372959420529945139077340657518122949762384961730736165392994793300951123447122615990742444007071507042535978757894161052369710004739822943532614166670955541985984406592708313352745437309708659218955676753431841805831783460164988024180601171377102933662229016324625971704921306670438949112069537826983544093782936526103857758643314316137125297382879232770180419674425064264513465185890946632797297855357804646175022416909650796718548033527929927522472245107675150815623934978638097210111844886684195974039002085719421357634783748632362306362445352373374838585803017806390513347956882663553137596749448617210745913909470639173397967468260674783806643658682717142580929640082034045894351904820936850465994922333994681510111102592796428830947335754044043905329248757997951744444670512860879726411165271139782751356364909411802534374856658132166301967157997262698011974803483218772252139112440615539035184279703745176807589200251617421904714315751649643486872481909840555450796250603253058454133637672948297201569100705122277491622847662886993421107205266516735214567299328925649374713444288070797895745160066856739335576253593735262856712639998086117504701394935669612343118759836208188055103717812950032199711945929244945803518989327310124522138017080006650103738482546375551278653485654643478258081229897328103137530299693903036686030816948826677857242801487980860667757052276299677903367064711504409495852046417918226576506716408939520150027909249423360187863800784980308191048572189783176294302716225781013700282811414682892717878477066530520982996706119710918021745343773082597983705853855991466012954209259299774995780974954323695341285837572204799015643688891529300545243489978947264419244145944245025357257313070498336919450005411218755516170519140317220464793705655968052121164631393471129899793366338077210837504272216127507030231282996506590130200939950819959476360118158220560799182621319991522733386740269735525093597376900183699381028663751395168587661645453579955863959537774249349783158491293163336465423692982230639314340041923153739161251726703916824986632401857562952168986765665315303354035910609896862425686888603932607887642020761216482327070054916898233190324823085204232230078592293367127206321550332354165789634299869688545673904429928515377334022168745485540128130581374736620250771312697027022309551308154653000128549429413054805874585301126474668577897064172945807547995726584069666111125044127517984855018737080196809486945098258129983937085966871381895144831533808085312087960151600979608115352245113855580970507971495684956375088114386927044195122957299578911452672770637113328863327035192292652798195454051558583959817648728179741181837831416265114911153958713733172270516583507350839810816422408838046831469443291986376470520020312175461882152832166055117843375623573278316705987055968629812629516547157772435854531760573356198320966064910399338627424527166573482283213769142010794431265617659968438785119323828486073437742961663499579726731778563699718119769867160290312699549028611382143026968226610113746810403419865599329520145260979517003695232794959424041522046015191605870859153913471734100379952177698070682481052988352876629575397733610239843351538710351041216381945322311556025904402203102899961127272035246518104254542244287772774297635599239947116243254058547516279039632020154110735193945103496367131796664865230331352862126512688290469440974908112324386098356705049829880310401389785294419262200144033402743152110927726599796385476621718570418680622389314012165661940167662836279964916805719890002109493497369987559407418182936879559989776152723810975792734884477239495699261724223705471280814108169254199345555232436086948879902002233527760801627652042972502225472581730668686939845395218135784956045381446957802616608604757026547605336358210333177245194600709215256762649859101711597675411409932731467371172972428750384708927163117187877283552516444516013118312754862637918291727273096043642395546254090507302741240870026877219904497811713847620518092351557447274749014705028822554296363045251474768226462940442014817566709949886622673829017375219863906097137462485159063861393626563762363228146354474056377237988789620744409624178950510354759142846543968276489837123906221942595070500399498732317658963132008020064051810275188942587447204752258964030420129601970971480041513605580256536813682033583875811314108162786375162123715600118844916921031323073818273241653155632640751978227030497258651290819757959990637892341354480097152139458795772150492126978499225857404995356057212787792656805467475302722963569463713307355401318750869968308333025100317918291701451831000533829226876558375681461041582637646418902249064015170015052288488282059905734356401940233232900777191221964166276496293933961723233579002394385356942482112496174414990486704147900550739340670228101735404571381702184568617501806989857746822162959230773108891852894328631320318463191904800552060899594837498813615452271477701615872367120952530621379397866376996279479929928683269018103234277553602411047925409582272548619661206226703739355381049434456052671011700233859998652606408166315301702441333251257326881585634665210830156763642347377250799983820763309030313811264441846037091350053532824772660461952945567465087470863522066042835143254712166837457597556325546058722032454243447987133422780291180571303827223341062772240309951757455071067813188848120762931223021648337964621175810253412963475327968455505680036810524031487887392389132071748834967600683704136119872269247629122682665392619008810962288894816637878635594645333131915151691504855244041331279641948062138532172975090556883682976159990507397547036958920891763456197081956880842043031619305413452673189618188526077855844624757226406343955897017669649816917190985895035493088227110132865461889411253040818711506381314008830091410604849800214596113665372121012900855374592267645489399032458743494908799024041595936832745944586444919334702427889601014744416960120248160332157323961654113173578367816186196840509785788563344534564801837274346422311869201320195830141899855376780689714260276001154257040290706538764070166890760387698727814999031548827834044765882981621328852386248892154928894785470632564073506325819188611631459403632410478347017577154507188870531839087998676156554707204155973482438222448583834801046683581586371611902630522101635232959490000629460754057005507758289474803864554362631095712389663036518471743546842779712110043470415642669670830607978745389509700507259789010473478335846819915675954896534691663470422416335606017900579726139251817757474589041440175730022499551815784264421108225031052779317155828839197938791539980477993776187850637582542410336249345828500630902298806431951974609321804644527101303424397120130413257758422570989678595310381713628112109971937779942575258981075553693908818284412070757536701921419204135984939411464470522221180657994903566904137253900713464330313449886663366658019649887057662323424894897905075905830708736377735959098578161704604027212653644060245056357190063438588212401663384741296661045187605100435219814721315882654228416120480446948298374140397038111712863451748101828561456974754712217086625539663829913791938654015262927250215191534324120864448036747952146283208455566740535131240668856012310461208853255910060550933306794924673034962904732828713262735000609551001140062344990477163809067807130952300348285064765772132656573823366319808009988349269952659258946143139910513505215763267369988206068060069169603485345046658025499774554164249862673482285347177925149992093843904254721151656904311573856078300493096380407988572686841011731198441355134520912543531085164703062309165231344083986902620171199189296929396428025544737929598649796996920329794334318321464483169678658150709401752394071419873295530814180753969914036488517566985862549378691237757611480639949468943231728462325095834300770732872932888642173670457026990465735682098276003244890797670656992058437628199634806596121535043261619806837746063985478250508069388312707339018400211628594926097089307825322796806296975460040714058863097315956043241347815143878653052040238036964102513504206973585160179761797364582988798450529677424640289161763715190589522209026496357606490880302566980915761512006455869889088606381850112878489059619077243765601091274727418984650536873795118885304863626728281801787559825528548991575521740744312059593770954045489707480708086957897733124604247659671236764352415919184457579966582219501750400487462107787756582057222438263724451431491661970713074924628377902944653504804789644336768774860466355394472120445367576368736791233910201828912622900741195809371580046197717056229878208598133773449999533270445400240566575017064756037781465833049944477856732507160013450995371807628664873582979930402282268974156435278085424099512879792740440291754554589541808215189237525220254079952088387550513195169120570858841822296344451346819197194665752991736389726992796570875577044954500228000622029922645641058896947392695350738742923134701170175568327804548041389602854157284544704743736584180703322310787797081858197807045425527519343286384194397124050510249655608544837700639293489471109043269714908090483725063253184092571848860358870862286401216791903888109298933505490922395754887050626603869573813960866190781355520640290722630399053714366410362998601692020584566304571550709661703758537669453233620767698274878675871683781026235758923131919884336189612804303937874512511181264685103855162413311427344111902961129474828823768899444733476928798980396976829878750353068155065051462000847696838683602977630884997954350045266650257025830132121394277463292415653245831583146860059601487290040123591585377640898622999913193069388303763276863692587647005695445899769144850786925456179992012334344402577918256666764056166001145414428405902211438854808889172288450659340797544025018522101794484416602832952727031553612502922113060727793784756011457339889843877517773317628401519016125807379477895390054997953490854107747044025991727559145968825249130505609407572835832727598848348044917221286193457491923078082645483613419255245843625214907455953643802509417462517238437699868300782036791638239988231366357153680744670706114680024043244018580472804774091020397655214289463351154757389461222639391735887573803439384662046992271608797204175488818771611785491758314531108252177831452376083409376654271434196868080405009664609490710330418879965569654403594573255320047363591964314033605271704677132310912805894987531907437776678346519305489469209879438909875788491997220998171955428394337169356439473245310165707123131587182376099282151771835133788309484617813865086232216064292326083573248425033994840852366004247784537167020593325592525239495270345061278423497104339589289860059933657361263031683526722636870941032180175271698131215591682775951732640250004095820102768017384399373535033121454824404548070890176470048607610664420807587339105172511863214266370102701987412501210967921383687553775487337499641170837722510612827449227140015450588255009064039476985394224972183532467394890334459632425761757774916063995260556783659238021958732664947085155719480502048038384781894611198035680455941990005593856959394432536229653096829336442653340661292676131110049434177743548405917568892727961388335934532263827706320421534830762871966734452386506442320070168598335657346562697871169773991469195413071914418894463417237287794459811841284221034673331158234385604360654181976999611996683126508439454953600193731780014208094146532363668169431701968736655711783247000056869319711262375688681272018238104718493264934475564013941597302790002236694925822884925104309032852915010562307155695957444780601340128450953620107334615772253530913844455787756220346941623685871035823381825506351210469731893675195674623579668440977742963514338095203230812846937444504447507524383006229125598469641358060219431932626414101794098990348404931416960405045504832890859237193527921311455678751092314479612626814060080436791623175583834241152675196610263160905160087027468541965115152420251402014757513782620477070303351469476642191549953907980886446351802977689305350310197448916507820464238683878357067462247254281640694575828506157256103340577292382705891779328851100772294967994691379902836107290252219527860477733932448290429190346532427033110755939613230020916305073728726593641698736250485344709656958634668187546386628716175670038235479258365118100471912349055599511501079386972962978156616949377060620331868587057115363096649859218835035715459395685212646187328547394614974604089724336427502593629356763902023811944892723174041061433778741990096608848286330066867897921741466350305422937047583708567611670051811616512314275909768198663591756777539665238090820027649784139524835496510396139627229350198108824509793096831367565050071226871757867447599116078352904881956972448869621286979660155928131902259295772300722422512989519170773204140089595607175063260699785161726787289043489881692073150329921980627418921885053947070770786034187036249088731940237988183021295880167534001803953423023309548936427400184109808183955387368954631935932671902359584175532920118260761636781347482365689540876044781330047557069613688637906605165265566104425245363345964892296848883548256108525924960489746531173582356903297063686426331722459582221097582410127433061737952635000578085162810428812901417322856374788182221029543265353463023196283829653552304487540453934643560059099865473738617527510466681299584489862792849781179663742204367618784914588288488827801993915511743544145584418187230743359124241246179697917367986703167693392149758653685522319200314707070057696956147230515777995689386293419445918611728955534015949003895152723250142987272062269040561635012971955068935672743960834917708034443763397454280790934906247286257251873314782740694480573008293563052230826631188908951197759749805877165837373804919277898990429375005566900065139207359508262632658730882282548897044791687481356571791489426357621158780366719774790042230510109189661619885720186680854273784733752273017863156753020021623820452693184043750609292826765016705902691739758370703334734243518072889845817635796450427455369087219321878931543754849873285149129136395694894137516747380291737561718353855704623422685794084045686014602895478261321554828745498326879972951723582560509929308688312430745426738847238720860304493867039751333988028522634943815653706617359540339876104863652218266382392039802338262212572639323724689186678028990820461161548307683158976657278243747182044466060690132663243549625299242240990452050849571699076879082871811123541765160525445924237390408921077734724728697020647923273029292605973859381706907743753174877267867643919554131996932955317564935190404940855663747361941826822404228769176294632948277506364751177678425543374229103474738004875346365487583546863124838132799460362179000086249233557691044483046815879847939612757629443373886493827386574207512051843677511952774487585802037419461539174897496139708096776961891519483307869700845076628099806367497198190065878304266948393496575769170144753013559708436820405967631370905724436863176552711687689029609605987762212037362500205398731934062400436835112550751677154684626720255473436192647862455333872168487487076508430261436466693189952010104496247205202309567224329783266797331303349720419553444553713524112076548667910820800350761399075834768554636367853202575019165603776484727493822085078701639915550568383691826227296644757195866824717866801819929100427919916089413714465094750943499472093923202439625405598514483358140204750958705446121663310536441684837382269878213603455766636384903731882171689135649211545882219033520072443129904420365465692951099215694599944679628036248284027618320202097495764698627265612217995662553018346160103785142372837671802419511555508494573918417741698960996563083049114475299299041633049981150655121365030886183703705255668044099198070366287903161638499146311631148350121907297177852511043901855229571324255944336169682128240301712914030972457578457612820631940728258432063018816228917182814174060026807543462372535629484739900602640434877072689278307681527160329404503795575747990636963668801270605054699370084013670246544699534034745702737936679070810231386853630815605786890476842537673681404128839815138062108663233141433846590793895845860486234077797534225202705247804378567834775799770462684750934817008746203244265736420881025254795862583608376498802410910484988476479470883594557262854115255527225506865138059465917544406924208548376548332988688758429334786499528060010625112397426281180941818261866687790507749405728421487531306494783079654790170696084033434981662723435083859626917122806997975646680234966596835916903412181586836337636012446188746023927180818985677198182823989644229624847650070794902302971370608637834508150125970395722183483922983873705568334111917385432409077640822269351618222594071081058189870591207085353645379136222737890815237446934172994082874624830617724684269384267855809896608181325014657306551442285840634877476795196086817304829169433469279628808960030245913234968036127203742979510861653037565324561423291566752177736915567521827422236008264077125961631731769156489018092494025530207176469530994829679769449800690302655597134754749153100442485347395833663338456606555404722760518642977268990588910042762207472444912952672049724804817004092112752657591459053732604557783483187617488618464167000486138565606450179263683385983772382713357034909873568268454013181572105887348584559189242704671060604287725964956653199247091441093929353097587197995977035986225551241527672840387494708764696436972778662356761273854602308798809629885795936505594251760139726258597466765393860607940524755629700201724568116629836819347884718503275148852552060778713719929546495041116818569754059002676316420924487224262471387180510367269956857831947854233346802587185306534022967678770873537056842517126843593096470264205460479428190303203556868538291075554749143883267208518327554629414710991265421801577700566032562796187522232535120778265934401350407523564112545076282286632323907981513603253385089498353242747333419694335872947345376450772398205592470198040041297402751349718858612504512954433121803934594669889584418368846260742534210112174789201709175543827567312411020154260355281566942813270637845256866399746291035465625994649760138947017870967505529923220558773397144121503852125898407462296944897704786131562630795134252479339956443075599091827151733327119443138158555594334951661671293340474265663226165918184538388241839355817016034728141670226109165011146654623935701302912962079466144865311707061265376007807407022737732380636786986913628038811995966606599880001046030967917241600433526446315287947480398570870165591970329299558916133229549121891173248585664730420734343503282326892231474866281124072060897881228874143229561882889278931209530870037110190784990879471310240104876213772087470726836456538605320896746746354572175857374004282545580208870911012255868916064786560248115334382911971819648260494160252222880272436923739042599397176251227278797671356326170926259474315213460560556170169651369274105026559131320849172055773620717052781906963753983805945514430790862342847556164789256998010076656005720713266306465929194169538725144493410524309603817379254184849705229365217994786899249741818099990872834099972900824809620002301817231987012286272037387188278800209503766549067232222402668208249122403064578152600873936115186333070044807733801293202522961656563381620563734245298876406067487366838167129736975341419693300693726298468928489951426454340707884974657207088757549498293969871743068089879642697640509121602334412124186588075571056583354981566720237384686247464875698509587800366735866570160986672022305439165489744643931159523488161121643522038219845442511226018556257708323232539119393474126196108810605540640657988630916688860262417424429709326443843362992271281610242747368533168044634514243383326099165939324131736656617174286602596082364519444007555035537122026070294559852256883944121768993735599416917689578253193085540292388819644889338771760571249069101486973688570540477026047649652405538739389102650035707761577423112755032544835706025221044573607137146553855886401062929065736759865137071943263838195374423678405265271904370094892344989355668869427862471008039209887782045511133340418776504145950349671731372242573477054337234902243983343048688944149026056982822842070857701304147137774128135086953794844846191104211963818152345509266100369943208898000165730527892964378099898574501804981968201419773544030692864910413031413567527894043686472325653558291502493389823974308081042170257669577515235150295725327905124586401923603330051275311520933401358057845659323347887407755611816361561068607813889578698831050918068859447319884823345634589373800431415458897211571335727404043660095732552670878492005784208635358094896954561472218022978220418162220967672462594865701997983728701051581072253480475480245506933380119121082505049487580812296433285159599423986101138957551169384020059892040688532892950143349789022784816348766986458146902936441327748050416594987147778229344018470743599168955238780366257788919384081934566220335717765784452269701927350330136485054445426007101121333858150253468611012302963717811333002763128402356729028656518506479074512544723660447956087412495405304403130458843475677978777005880658772445053034758943719690546701040859877102984706757139273150369183307996391997874523833900548685840608090737232377897809876197711293251809571847273373478507987726419458288140684978152479365623403496689861339204599859904222771114181133427887352248044327030862366830963267931057532448896792908698641846972387091832487098980280858786262634608836135447430435403790052498031635001826314314748726137246333962717743755959520107607599358008044009742351744604052216056815569268876676981764630699979217597772995016778349817697242407818991054191068197533248541883120560161359199520614909675573091492219450661363109823978589702492673329462168216225197378377064240486481478943951320633681857847021157559088419686426532091706975309189453717297632423483240424543599253539443868144110562904456443285041474633292015088290356048605258517602417943480522288981579468325119519213474511790734370098320435261340187797585504351434636524772603157056291015735421932801976841611595191479551422855661710622644954595374389950396985151553126336462629303323855632012820968849604018402575035925522321371296377338686841627947082514983783545352854495078014758033084985331582750260962618601194415175365110199259422391372620907596298947831901080840335481725845680580568872575249062751465656148130463159552983547321925591884299889998765956964567677303000525123943063311254961590026001598305347731217690803476811521079348526863783353187019878840566139539338165186788517215176518520557224161805710969911852259087741960159377550445583838334279893896848618205277087342345365522760412068317085072174817025902363501753724152392974497115868179316723731756246124218751234977731415799008602881752275987418894862345563405751016761539512858085868429309655152162576754617567886496283894023312033974623077703168958976807215195122470602676938548949837897292163489979698822412703807541146648731161547320702242547391898152905755016487252723103014502336258738925695383254454038176612174328749343260906712304233772478166670804897024330749759352824076997462984251438376731680605573254137820089881006207854609312176452748542151637593206117210699213329420757874027274526726673910177626083581627812110420235712041299550417938243475321275927763938861542377401404406303829079939771893258997052016505658197531900675432153497880304456430407304274086289072766625573483085971730670382274664547385687379318120795009301663781559013439298406074964299800446096960075378512545231651410283626538055095532980117498438156789564354702115975731471373716564357780045778713053071746283588686656655746622284800728560324091438246691391681486261748641420142247845435849225124509286367278545164891623256729097397583184273664289857374571048386618601180988120932907538299716590450730488642664897363699118160190131023832483127169455167768036852737596771150888800421596689058972139776415897426264172970735917542235739344419158781944941569862100101181857998769211930465342890065779452048020235015125528994850910034261642561617671755529656858424829520990960994552813029562515547958545974357683559666138204651866380385358953383868667441944415729793335182452708922243361115754442163888182312053956446356174839333609197955952227055661928334899049460190091005265515570405832991779614702507258197309363577126774275876266520167386179459325687982920964852159174952496440257221276811130662670444672105149147593583327261946798398888141272832482179479535995504619912124611643530842114596932747174068321957099875003248864847647867098427260458908538171946567463386539362566204475045986288004841615921324177750658146904743405753412790954597601006487245137361066113520238188571888759388019304664973996044177591976088838574801576282063871664415185814404002347361657255715880160247471733751135344802867338769359219125094750379609792421670611642227343649611740777923359314031325308909443561354232449325013823096278722559408612748645943255117893625588344382076121562224118422062729276444718270082647392917596572449147796485379200588595535053932700843147280890009665749768207427065434700030652657433055092518570550601943542538145069753582489462304636408134997739456609618923809230008832481094595912260996891634502578068897092771814352360337449572507763192254658104952968721411904895512428552343248275535027446963261670496897685826416889757376561037863736846793645880489312721271453664878023168320014258393719364299808928489421442731263516979452096037796524728303781233574797877215511874621812840522507478216597843211319941019101028235398962893843893919983522811829065013048001875220244791274826423059365652621180566767920549459844558277373123188142272620404734485764493596882449079986464957984154683033650514663109638031046321773680086666157354584267844590534505874705539681956220140067095926555078226067462911248110660665028980438396747110526304332192511050928139148942607798877731189139368957026667289703330255479917688443811317297789278495671525543232170837001899845424307473818794418810520360955013776616170642850762315039890584360083926856812875903738122934917800841706880793368027941748791416822298026230639016643271852270108407225803000702476564405107874749416134441236122349133411280008560857338499290934720326215716402278780831487425569255513386243463255085769590490404350720883495296522553319302129874513023740829237753088706045534250414531709887401307809627073636136068854544823141218889044995849090367433765733783254888473602432653657828368082273887948334026883121140326463418919548002505540777442045358063267220125674570014927842052168096526676734464960373504073109084828260582455168509523219214586649302071497438735709549525325872535973994099620056840540942458078256331292121164346264016245991049500409797221550836151421638751266505657177729906517522258249234036815676866650244146947745357561401880193583069358708671806119380537643230540420129255405209929050428894967888288573076488016080756651543780967729553034973903403735295999530466419434925199601288017400746676937129109658555068547154915901790192081449057486053034940828604010962335472006230571070655058067237138353866718737470656082243658818727840461249041231655107182619007581149333635056485113792801030001813628394699710496371387654102742002982840549431836230155468842001364231414231155030173487956724610548082462550445456063067091318763942804444033598842456377717687424180306330411588709616176365356079027812197828014011931193914860977447562857734098258310908241353238881904719459850339417037136917720371315494284850123888869458449697551687384288422259007254339378840009461000871612745822588305338141700213543777138144995682774420776853475361718016929029705176655553690738956892573712380107791344325111424110487241880487294073185962647011436768561621424059348687124232972252675480282731719261365730054987960975409750407516436596685646541680340758461994172983916907709523619782506873378804520194607858988535479011916508587327692722545147559666312371709103842612142803188626944043031218498843450862208438073725650184598298100245662758825226480208641428051170605695655507729541668214813152735485114153705051125820941320055463849014092610667448094502441957060730564698633607851421137328680356686510721325098484881886001761049131074878677349039682698837768522142919029662161877878962527688047796304154612499071942676760994388222684674241441345789124966132902461137283822461986951824238294650101420587801134759453740538610997355333070096499968761239464694433049408088140277832782436625147579438092438935395100289669419324919684738304607416719886339955674908287129649807707626435169047235304489084115034847842849814002677089331639626367269833531817950659042678211169473412704512366996457914435741871490258161253562717109750893055952347205843711731851038202625607830458695892912821826580440847843011225186933998108548295485564176040717167886970386744153698693098139057011372933032800344692388159060312062392872052621935154983584652347041526339851267471342845315235138467213142428991926168205948210423857958718780788325595719255218812233001571031168994897820622886476706682028285894868655766310722755399774312452865731406982314913276733533525055101825314056185736127774239890049361815047396428307627126214012178597812886181992316747286088986740052859750820372080031375964302211516942061195791065852454800565156964230969969610391356772337083113800314551845603627864524460113890493750201360295777783668210635505774785368770638982441314184303467366372066700273996446442852716465211678997638574730684927586248412358663726073205382217333475400322753459080457105297795260071041292341755681883096969920567320159404840307077590739352333321757463596806629300817751191065206369448258195016822949385564806071260748368655368414886217683369570726943729483972367642100860034747153226144995156256173709382588873625283195161303927392124422571640109113770907545599838028356307345001841791647480585995498991232083321901381633471597076813558933173167748114316777692025967254853003026087075358488063657155907930932160908247621171712275401360722331067707328449584190977604847047606448881804025701072884509505978100518539372673109194950762319085390521427767474135410208003977674428809677930352515366085377727742380746712498142943176486537973232564303282413292489773472931897327510654099486931780168396152217131813029891242528465812046482968380436183172427813256598291736121241262653525739262418507863810587830908940048668250235227725003098191306119589929152533865185932053115874258562738073207174282858568966867645820341246690426218165829762469114261962730262265635126385810436133619645166059741395993636931727803520714254383838602877335410596207319956121815718161913058609309937732364760864593338486297088581544284127507741241702567956483546841222340742777086186287365328616291275212554315211343207184443220524604073912064529951487082011726207028952451291500432240226088541279737775207059995061554342963639588314162581357979884569318692209860705360906934149086706504035255811827417086543329425208743464478623364312904980439330994848288750169154860050172937416949294758044000015902359139566702408917576631291746851864916684366146316434916608712948116985095242098548245151883101894946236720681329995744534205004019879690093494751025290360332212269501715114943013567351560515319798569162395696558588537394896300390732921344340087074395100790248733668792687884118547221812243706613422710127022079974295636782958689510652199901107338236054164175557162844617536289425902876396748772963425320495811581646476650732168924820053597924777679989383723562977865809316303331041943303167247812888116343531851603154864105604284780184242708361167184508583300661241540282479646470785090405556286903574298107914739425750844173410471240111971952151114965905040709348823850941385889617934459131799780129679821625017487884968454709549166594126470650069805108256240544818530069352075528894882347878809917901072974311407352498843321261632631795281393401520957306148477056441368431478694595849412571031157913294643886853164156329469230863191346803304321377173585149253201463060011929128566252447870363146206852684383730501329254776022093138143441776604784823931833951010887655109424739297106819297168413885239333544228410547090801184101194937676921350086676311663154821558835585385675144720868497012322506830251831393462542723640909413030134379294550469261766104374533668640270857126988723979504446561290811915570126226025363374978570500568562920905886143598940659703445356049420148446083517162439621519235879570035280654356956864299190662933320088222848886391282175747768019924050935380354091243259332833529899869319824734279338810621605715717709044710449107519554445731586000441127196209271564404466547557477005267927877446541358907991857019286685894845324977837129789580999955776744012912708745616831420157601563816042625115041807764348143150089025373222026696006479270211809054961802789076234194910588448597197633081292813313358997351690488159609930577616295063505170923143213927779448476767972521751601111929669513283651224002697419974639381354477972320000916518050658639254444653638956963465959804805021272330625097833476984998606615542213346266061517914417015545655155842471277039767609259068071944636339180015022937561560392671630045953573906354041995927597456942691247123871877723570459821975366900118842018830900865072194181616122599416631502850085029049842598142532582897713513720340488788864072919399546944765085668643786861351269009184179898541007259385567927973855038114922908126913035985479314086354229704505186463315291641501193076112850089371879872343616924482455051771819409128644024910633769411851781837724901393370955111359690280140339760647528882363452523412591966323720000599100173675504383015617435845340709830196771919056428483228197077093154738220705866697211862403062891636052208062142393535926412422978400034782756168115182240985997155902349103939477146027366017369228478470204171376562204138546976694086084479817629769277785398279246210155456960068385592562397368201492305421771434859085984137771231174192961241150006664287387095528494562028266590938897296799162356610327165933178481644775003347991120727571626898242282774539734484569645854582079722839771949223051672695443761967197707245372727548615743982865128178885145456999737822252358459170517992052138044018943864425758726649390443401633617637530595277950317097892338729659934039375714182574600197929483760466571123951128704215045583939258865948861480684262814279646766996615258626972720712691490794936195027005592449425177486702908629365830771147543054579484714493883905516593423786381558763607952864733911858121279750129313395219988599391687709702972630834772850686082326668995885092174646241367067437515680784356862271589869531256415455510690570664222728706790137320956608515504021019135535063309677097664153182898625373581685276010008268171833043311652007455800334100087630588321607384802053215289742714947834168053142622679930596746575558588400504548410047856785810451968250579991610345487237901348797916469044003068921604247125572880483523494524430817372900817005945562883009881505285129530084924792296673263161973564052274578465435740972683586709722557533547541744512802380930750698143410273617354052506385237716806514041607015529536695679343324996508635092967960176287750966038902797975028747036615747102355342436547347531864150085265813303665523140598698347876426527458102009936807760356422778368751181414464987238338403560296719118887576004683261099504845552634854507913084651979001875712900124413950285189644871403763501360960126601856082129569492550900362089373121873559303231517048331186819853624344948730887239152889683321770389529056826345750872590724499354473853467525341443053446175002373262429589462793229810687946314220369839554205617469766778130237684921407729457838875832609665573943027912588157335616063873167222703215913418031086661249904318707932533650280776824293270702083195063509141476270890467758305808200865441052393666779315166332628168810899616309730498433165742858080163049755725307592494881000354186190285018760469245999368264773939050709914800618727192651548135349486083841376919589378181927938999166438378401586770858176556650133445444903516757271514007429972509245625463533498131997382216922896063970450333784507650748832211670854705521704105491380717039622765696626731172314168515044579798532754674695638807424102187202133594740292027540400865386741099023993657084521444655319342321352907401028444446450662166158756235904914847999838104822931943207503848607435978212557193217826454389017750105062536650263722517057336452522392946212537160181869469472609090560398440145807587805571598184029197075886628391044062298528916250775326968357249941692951100507717934672516708105718791684821613822648025538736525838303855833895528645858694504137388513195719619381604343721768555827453618434693124270397016246968080010833606725614048918932560043289336003323119626058283239376245181609631482139729660557755955428438735542859266811597429859241754063295338860481333646333891237180549632097379333743091926835775183104440191126734236321879332221177917718925933471884762553371092362678618658061349169290887276203557910728203014738126291037571956737104009370774516879085277025345573846680594911498679438217194464800440843158233984700637683302541781471347483324528673291280701616012418366581674549049764594740674493824811214099164979432287624502658674381950124649854778080975724177968647687964704008141762196059674015718341664580267630974229625103602201732576974345125954569298997948332481233452059278290846398772231557745518734417557274139644686368991914324222451246133611281729726584477887553147193538958000017434160377898553076789090785946753963926479812869981240452780887604862581264522429958973030959689190206786770129819488113558000915060144065256217262708398643969049164644820276623377127818694403399829972738978678355537004502741483192316532293482122313969967133080624495844360189333071505999342250128742370273199182633794755053019628027246031907479017202064246883776893051813820871843795619374804554428174830761401571362448945552039895535758450262663301718942955416096176881099362607280107297827398924957049027342397751601299964843905547756136439645576288721039142317620797386115480970597202669835822931790690940619923576695373221492819471662931076815711099916912233585515192192569737519634172991475692279848366840829770452555078759742896565395933435983118954071551307761194896834168388405616829027341432135018266871532158723222355950944602207675169499576034177588994544602408462991938796507586359090631772743938106061511483318441147012370949362969744975591377643337082923652560434064268573229815961749440510862277987754670845649158801070407517808882921167256591552525518638951398996815714335744116547651662985344224532621563237312449543244048676816488541618608976347377046748222854222641299067500384793560692443771793773720374545016885202947135386324491697483092638247957477489596205280218484472985972036830355416546909813372164819602194920931545708808893992717064271896314650332544078125197836709247126590486419550949589507787112679279110275622304774488423775375592137494571722911895727223086623269721075225705633493962860284231438820960230892662899249337034184499619527608032407389492114840673045925503475190480784527714654824393415950883820591055755204739996090150438781754221852792112352823255909868278050496870258084928250922838889297155804267542674153310305192481759311112930173780000228733132771156054068695874901299053149401941880466589841942314458349888684729728812252986306742707396545073031319837999158864959047807322551398151308170435687513068677217603280632201627845610825181768849709490641677248137247070437532306834771378554908547460230681635834997677621534412554736256389846620488218086969042534604753590038383229300268763179220327838973429848869700813382225132043853567829975099352003291709402905778342115760963332056161550515676115154872383231873589833169392409671715601717402190365394421589652140322791453232154953405410186598858641631356020250878456240693023440170390740812986064863256087794327578888230523966058489931968307143882824865237868460241416777941090551419677415570858540999937688330576076534030901875898894514371566240409849339240420988281872792598171456859998352562868105057132965338930991416967178814775480508588450659903684023465749642110828001256720900980039197201145702469177248594114471097807326944962952954444327823986893274601965594456193366509836554473615379123814066585956129059972704121951581708445558744177744169483823092385330886592468126900830148819167729209856386297030114537686060319994599857529149650535830710025780442303183525187912107861153483071646936733748500557769854641914032544607065562323079187566899315921501262093644428608361923557403268657237320598590804582370137775005504288534066322213000643578194647307412298946487751594003565314647675462192100219716638306589720655163460513082109334270926948146807158927092404469124896295951636108364251349078258616033586879826994196949349199734008219420634166504175135278587200630069785686528188863552013207462079537833430940479168649083623452610902454289463670033373322544913822849987020306982832979206785378819006258745297688009908569091449240857462710521570916690621536270475109742300629615656215340368109072262191577488287450785452965218414891789954588646636869718517884741154926690896677138470678709838879463072358207125149790921593162986164219758750540165458435306859187517246290783864968844544874938160350384786288274995959923075279720674818892721727232701404124939911439067571209150694133878179735762596893963320912680447765105988862017970401907242838253480513319759632229921275291281919242494650691067584512067504174993781937173234452643974640316407623678868898157111595276585007612558848379596245724055819156706593272703898548649187009756244445328496568031598687665678242148499351463588756406626861156489418993444929402144830217118878149050332505269757554914113871932743522885573505945130350986779853764096709602112468427108665619047796849849162658083994772477030098887243071330737240066866281061862788457591106820953789367779022897038326996662302957850211193920266831279909063005541463653980960600246122510477974532109821984877381660321353502935299686604820367976619323908455337973794588657784416241882436215820203110370999505877392121471389052140796708945234420359720810699085722288691801160970711099963826551097794005830298364346189332234585151221307456118488154394641913157018887661119499727399601044909347474531756712671768047846984412410951358223542015439693886970183659487776334841467644267630010966054779314056101243578411767469965778469450150502363777119887380960164415880591867319587725790130402463298084049886018596273232908807832994852200859582176310383615613289628801358608663499631051316279306989428615720843059231564126400100381601378167639714854955188458761841695496349650828181598631750763394501414108199738363000491514960155029876504322045158712479493685605201888157553579758052742456571258805743560449453963133109578149521524210479747012841553682349636531531219971248845762082037342118627090192334301382770621864522790456617115239155690421024995384707127797585520102757756238076491065166722333039582305951686191353201897505737779616057075058090863403917151250330162618023508762603124810303244122248652399226820951584755109533224698960119847560654180368855476046559087543748625532852421925111012261916968638580792876232943614337007133149546203688496691852369383216547313562243100882514762251417941623754976892557519810510407995368991223780576637210022842400471891918230213420900601190197045211092195903033505793210219070943849590702735388367637966302020500401062927227044838945151261975207098446341993066717963180909845847052877355009732836654049620125485791200102495934421797976674816990626457839376027839496355063241666352039333715504260987837513129486326289266548311096220202182449743782544866354419025784851620907420047818670711031599416183928316395713986578223863690125571286046619941269739832051006852119622375481326169528636836773815316279546353738599127613600985456837827989679582164147581568819138655122708868644591728613547467452879131003372432532891711023356020500584630067786821355368458846924921798401470516685721031702907291739413254195072877973782649679939487572339072674689524057309450231008254277330691601212421817291135255465236207328064455792902450740888980779950212334397480277987526349043167559662276401206302796456276832789440685361191133606450686612526628203041009014564362702159322917205388397996989879887618763143335713927093195088812691310559793359259567071464439278576466610380688793936684639834913678089589261277114389740648771356387253472906113041873178959225277884596789167751692915775048450739543032250616561682362844136578077685631929869219087771991911977740448519872460037008825858175256455496261227110231615358503183287553371636383623708481352185912303989426372606777204364742921643453236838943092960275569512634272379628917230996007465092512699833438231065062773924848495675797961288903600732375964207063526416766697823496441869558015983394354916416385772381863758118325260711643790607543911511480488721071732739410221676355371419739629878076932882448025855471930606772798471832842695863711743200283557660257206868589558954741634307037814116147003324633229248020921462605499806843926113045732927464698103810385592826712237701140210737369356074072265958934581453050380225765923715891008131364302839776896874287076299264832469099016204129363502587126813258853402839869447225531302708264887156383656566058923735556962182194792222462526491696603198882800485525050742932515199861052741007179982311256210765967222337008909297458074034255791136590828927369762246059103802970533017397717600331539905838195115754456702440307462361199496081700794088068902368260513209075648028396287718994044152995661667086410133507081648276486764838917587012622570734704432336173520180566252199436865547474048177009295857140005270192763358642934507382661891598561819630992595008980994017029724463387480327440213373668662068790036620977162357449462539319616337688332225278849372168871019122948975458804805840695605493370257149073669744821976101883745530556821897532456517561834505129095096227363423104332506180099685619931401167552940241231671400971797095069343003939156598966546706936068002288260337762190769856510135644791736468715899456847267083424910160690497274176451011578662629653074647105708019559267868067506824320823124824276458639881020248440272883856832191416988605370063392073774060182670268549966049231807418634440447499507135405618596432201740415435922536321936785228511269359619833566007124064961159958538750813109539224916297318944458126287865078088120383393512040502645828132330340211905696837930530517152803882449828405086617444693604102240679645865632281427546344601827107932148620793853382448382135212483866149301913364479029941999397389434732613299837586541740615667862715529699564489309078379463931701204806679803644467263850470204218562956848912810250394494718952978565159186872840184118835790040082059444434995306781511281794700344526789671693993766214203231760381408074182063460815135229208768071844683907690192995617465490566694176223742248682401566637077758560196023653572498045737458172064873647867650157840288306688590606743778116974372371886831420109058984920324382711809772434933625061997246562227575485220083926044211897880011095132630033964489985100166759519981804066036289412999426442172202861058017151637361186889784401771181977335477520219932423414454101185928999904735210793769463312944783223492951769592399242299615940436323413341534213200383295829988494785315510570942424400105989658762618982440666406989345697804766469388646098123971621797975655664064383701102230490174669340835850820729713892018479292376193957131728433615651369303889595620798348994974649663394700559813599792397110314267757617801118328172236874971667274247332576310172954104216926242532635630061693383450729052296724648318764764583851165022357683187663126771569656186107492401312760633850137963250466897453524488740219325982031681113298614695062926471705646263790158728810537760542254478779308382826589253954338076223471102012182262140748476431730288914634407181469946626267692596666423938356334894710642862060259490723664736030838828350782804955100960052082369678604301124698812222025797705618332379257260727844820662885458471543964841292439895329380298371139033143420648549742598964949490807159665590169263947568304676228704367747628488626242406537406943885188804821574665220163651312003444519273355759234833956524304986952986554890959760632491014457199702852330894140063354348205162586666116354434921721151599434106913550653190204914835979093200590840887346260134633122130161749789587284153646822610540340576358595175024381231989337848123100886601289914460707779029481587998688749704870501896202796259171672391987467023892847611195485102467655635911365287867040739108157943513813848905114361420868014319133547284570444544502610382027305161434735600483729741519232915289495640060461142146552087473455356296548530154404810778838879654739785587639397806496314388538283066688701805230470674927870456235031217594530207975329832556411283177102810140167893551921768447664129512935163853368135939371548317523144190424610837381369460987786779137140418667830610546130905451227485618200231497569792911027911357447740602575289547670987360335687772813866687454252562802239216935514332951569526192799308555131017045879964609891640783567961057909590269913926357217225406875348213077467465517042918341956221426420412324298249193775652384106340513198646156387429814907892545364344620489370085973154672996480815247368206844280575622838300485765761274677091763085282046897304593088616760748842117499398132100268175436072066794116455916236876513499022608105688837314679681372321867692017327866953255713599668966200866542885894521601475829054624447455005334951995345562247913488439837724590653056957636682582841529256948869025765190353374360729355211077280544333008885363166516774198820677489173159017399373805551882955753701756725010925141496023977468956799576659337269361252272476836670372788807948671920998332913994188685683989999163580847184340340556834339842518863429898470857745226379128250280374947365242477641449584875593447844857700735972043762572138148967928262972059905552437465990286460704889649146962716682572340346806838314872403447180193280522648371765269319604413256359789064504241596004995549924614869383592788925512353077647577552900339393627822476102224844910682971246988658478312402925409585046651071181582653648310830658705086601055466815198898234540737851265495524225976254388152027347207636624417233489523365481729662403475594772681531941932647537572514672821715630827352630096898413284998454613900868027084570209426641072863983176069843826565648254570842051496324698204380454924952336470795033395378316927121582105043217021022334895093704695789247050651561571023778157056383170874591725303867765775718426543791235196932873085561491042188417619164003486679638382156923992733991298260743393667646469781777440909999068869281199636178546199117468006946848864124774720357936649354536544220649448023378281888509710791561212880746837119145085028310149626480969133791949138497377774383641264761114295507818748505664952114259024773261107487138584257377350739712670302606557485009976854567527600980744396789613161044366276118683262075103077775005072923027180479833777693109014612765459576030799880397652611538063665874690995936928653024960675949250033124108915472955459557762727434386516981182738876531779078541096670920783005449867688531306944054874140662499764487319414514424192191718650009062039946385008867288399512927483543287002817051517954585070525207954954821440846471694361202202901713367393407844742882555776431370769514329445632306109608757597059541206519564308492982659046631944823079919108523179435679512378893056619858932578780734583579388669951005674718645263629501016814702265936706172046162729481301423145128852464843357893299606165181227914690359933285896140406231482520055394242138461923479585922808899314843961975211729942083792075866824451274277176008190399421191483174633376089941918915685569571202986735040593843787838158872083037786344659313538346009214620141064161729123873685127342775495674481051849268817454571421774206900844938198318437182226755358919147151895843121605953277066260288621763697188167207802470223783354123165032631684169549766388111841650127022298024907064934867079064995358465485281935761707003505160770943678636305395956975755947318397662060946087149527303018851263539194317523848183656276588127535718447923705665424601715233239940040093917179539194055693018807824573867900623329877745378452994523660738083806508478143430305814324740687218120800880331312949838087875902340633933673839730024904284305311317859922140653376867764287719246035014698068595624762156260825268505111413434598764517286143491725902175068337764454935548970328046907594277298248172737204828704769463123677998773171327137145829236019361482564574882401413185405177586965856182524095264241634882335459717571988138380499156735506659537352521257195524216652120876832978134823581773246091378192344246118673657487778020362354681771695284849933649572837665956034974307091798001927459464919689540158839399022990851454645205369811715486566686895985605414103971543358389617560971606518433788129399907682956982185087583342341945726311367343421961155294083754271101354496312293349096725855237348158909762372854823178918296421209638084385158242416484888858051632431394695296051138641641799121117591548955843097473191069683743224846772416532524978038799414120246861622705972185098607185532520026581050288391857938944610260380062843773659516269019691613647838304441810661980298234659411929254165931147073737158323392508382330957528478716584649147172155825848504880400120313835862089301554558334427699950273429022959457123113453906955759184623752086102020877408920404768301984631301657762700026526913769055527228141425408579711571996810275945186978825330366835942394812607879932506419410681485870276646415453693019918258155990090019296371940956215171833985608492506909374695084553336533066439481177129052146371456240803588479607731159241693285632785850451829966501659667289819855575369682398770441787036907409346692494017820808357067133677981618546369146928131651960173355167731785848563732858842202770499043911087253013635839006244857666374907935194002639834187296212659502629052077298706107390712532135873897988918263491407189736366592629667551365770772111838405991348473293816765625043115757504602959846934731004526263496675878686812033293534157746997241588196987936584489592443542377740692078094300901750960430506592275984039964630535937831867871147462577024363983259044828756103628770406204234724468896757404180446574601659516142968774538779073130642371184323707037664364509735003128696933479298548800155498654142266881070742199562572038771110605100127742521913160447134163488873708439932979236623013870487317532214017970103255983022200711535704875169424247641727533228010357504655596057694941447722005320626783691080731408500215514283050890826092152876454024190568723234968700165086309066044416626526273676359192239661076167483675795021553691486277738614907364805365380571139648238923619398561832928273769400959146181113778305517965367637682632092308489680832766937609657722795391848078233273169720435559313418077426091370910251718668171626734376756453518277752687279069417017568065881059890179507790791105811793343423972531830416681946749077800681250406180245256637322801904391124091479121510495193353608669129427087248622008796127186547473847227555622671155182130691549117264778212391200838050504125285064812353108663608325094920906392556716430020876513586004216845804320712028711748819988559942567185431462324519730504517528399485165782060000202421445462728443875235274540511532979538268191467863758170047107752117297823796166713358642862484352649849212541684018452192950420461841002369753095779526861110503718057380763041073777899903461656205918777274129304317060260554012003440238248615238640122096528824926785204900667794203593698628779728992497108994221662496158615687408834526408616291948335920247748009239085802450934705232400677362498000001112148401225870901648734380889279376208554534150411039836161737954167828102010592764041225161341614208718592562234408896230838401657800815385505079417404881190830839666639367012586690134211670965751876110491554567581647053047547004644220094295734973767668015680053020587311015350587050652591923372004343360501164708434893969772735821945839161125495903139368385171405019362112511151915698230414008721046880685887203556494167000094235342856894259292981950359683722923106138384007108464582285305143925453567185019377866927748431783661469063900943336517194097995602258326336312906201826189063918079978839113049837087392915575418715855000364876147134471052679767504324750452716570558297487865702594920322550526320072592983923675705610108237836216642753012836741658288866881072745323061446131514769087776886521358641835570153887483072782871867601588714009407636354766291284653659165959876148761385605179124419205367567105940591679591278635841523063212830555879224097591318203498674299306784417271752978878076837135932155750007231156133118662044081074230792026172195525453594586011854111630029127267162291404620448566999415710749647396631983455698517890098687765241578332215484093296262253154138086344894143154589690101240850715408235612272125671676003493182784582013457253146656085629175694677864465887013603076388040443449287722344637856996374534636424986047342223093230220218792759585278721250001244875587724039190229664441987149192370041255436090394057909512994082949279770123078801424393795056456382291453426980468026731065746370723258142002127781720507534323401214991404023907254101508519033811434035120879982970077291621649532242539855122374538154529668438801678414940459848510943325191826163385097841599446086900339816332337738750023466683257573614129791102587587615306142535597468256534715500770977564763878215289594288747482644675931060865686755181765203008756851578836539404591110080518212962711887599571676564194460568658535186616061038077577201320104922443781035655944299247733598492531624164643132847370390638817594482703533230689116313450569237450467603031216074521355938889636236080708905320221207979645437293646691850582804406039933774524894204257465640029422645580941035478095955546606860400153383369736986381710495363093225992819370246978156835125013185643750175395588696686446098057536424063600255958814812472858231191658643935033049792233478827652264457192982572873725591563506218615174193074280851188969235880132867947643592132350695702528662790804690668365869136577972935671935272479781469284632721467427295299900536724616401269011442983162563848258395317391918219984801918734366443810846719009276969351787913595956966209260633008878074389014907850109970024808548884508931966665324033369414118019898550612666925897983336486722578355068417445014685779114138028664184573966085714129902827923040059566458881271675853836874605404150010407196225540162097962925067640687321319212490537772890928488316430257002584767441202249242530533443203107020870153651717440188013669501612969483420859291825104421318054304539305476245812115451823374418011983529202142543265794494381385059749025190384966475595196972202046069261796333969095285128516636314918333858763080838097233498249398838052526500160851042788163838679619487489415377243312385884119844108078134166683940682334610787706098601448926550699617281012033002177238517624260015380952345854798873778095964751963771240004295412546800592040853896846678732052794541168617303403627137042601615796424873051047731262607942302640842847682148195858647051257363092028615376206981146167598666758172195886016130536714703517752028073166850304294866143676411907651899801730745281597997761076951679358418911989185115047523715032201518483683973701000703925296875399964807690036851523753576087788736227952198846432291506136975139177689863401283188956728627715652830421769797317659508752754775689159468202941544804639076153935936323524164534943982225483929019192088014595504673269600807011304153174285355934911922389006955456306771624544635754703563726237232534540423263517374887371925013409652641684777763532207744708272327151111593703994432485401965994923390963938123181494339459009966292401355647607795863257962122813506384436702646888034758263375136800204703682616490811850997560087053496659061216026828836520404725509828738770972029957418873326387953722728383155329524171753302064208208239789822057858765217557022321511277416225228470930052570055726684739348582056713868988556870520399927736974803308528048552075079594331589257170221323204742914902022826503653876733536194212501026816854588076641898383326300728637736615780213444826580003963165220289106287400007712802460231221500325945070919898150756940061885770922731745313816408204690024781371275262424481094750335784824506356389906402036890231412386209430552359905278599374267487697243316816734330757595718325582531786613280608896268653211802050120867409436778882195448846916048107848150915723193359914787544644583994518771926280093893738386046595508955249787822186124581566598981515911870717339715399468992249799094371582472433361491651734791729880585578528660350264261790695834707381570767854256056146707407845670863416053138867412024972243345287232716543141348201095983993895917807015079748905410454210824565058202902798896270287856509059519405968555474520538742852643131783840709513337173259949942803708245012401394299218145470844706584719252524834439635646363064125853432826580161674701639677804339901615597389451890958598716614646224705748105401342963125966271721577803219923809451499924947411618196746784442917371982411194297824015425958062119055200401900123484406546600840087325220085134564266867316185825882408720062105961750200413065337352457484385013419789002025478217409655351011770411877929239899623011209638642542354002634771126530322902967949847786868473490245995478107600381648146517433704336778387698389146720937921756510663580574702014993235386403744528885302880921433261045627660417387495793411038427522141123047763465630053958036794808830157350639504301677702014372245895050688768434433950223517165612670977620115073047245948873821279695250332098970784581916421259843462183993675720614059460851040749904741158586609515948183558659367549963966803062895775919447129320454488375501768337376676254423717065007392134068310958627133456851550872736878623382250157371396903154929930686458626897156022036700166302900597037373809001042913226399958752124619232925366499026585936179416969994700928983013655909593452229671777151269360626674823431584663559887972051735061461979781014109264765395775811950382219484804893015117420947629353278746637195994715251300327932600653764783386094792297362868714284094522998724331742922509232543128986816017635799146384514566009664081488265988842465739052059249223274491014113849174369145542222530391260367584418771242307643061178475902256049087996290570504557047635246771982064717376423308113427823707534647176526677010843025978510124497500740738207776790329210803274698948143507318102832707574480968081204246894814401923317252883140956788824380235963774368750686434557028142081399460338228593572538864334569582835405240828591683570630301051108666826785339485484048222524512101023911421587771109121008587792687926169800619442040555364805705996185688517318008049938134892725660954763630474172507893108828411496240933335556987045991033411943248946154709920019861004358494390769087698058699206469204471048708636226557205157517968980519901996693091687606500769463254175529110383407435636120603225049872787025732966500126486065560874259285913094403683378450429304932547123013710121597604621874340943910251532042865474561002345025362922120039877479838720494912591448661814395327365237381514181582076643721200970310624618627975280051600567261629546895987209267614244028351657513497386009747766512281421821800733934604801515463584906148604388448866069361797383017468126042461953887952884096557251005112851553011219650059752353376051220716923463238473252521998480084282291065782628375788195171469208179845362482020609960666972035475811150548693268694285395596782083662729421328493588700282621600336728353044655644154457496724994298451866552502768999204210322156403610172863500090628916705511379675760948157462205632396403088914662711372310369341738565514855709583082450323628243462940349523021145274851098978934769303240025503679093024391226965157559248931728780752431387589365308499497073396300217388308198890478744786383629371896863027319752855958108704295958488779177707901089358348623157259441386876237937803531812793785049113767319599994958107929755161924086315380960757351802735290006353380294028350427662387595576080495732281827902733737696288447268221743196697355193582805328379963041416954999777018754435405220941989226708603890513816911301113429153600982265616298756042228211966983234617796393959431212626965885175884562444824752794119277320450259574349934789885811951604622495313688430637009905438345568620978295777514644511523964448765108192844450059086571713516142850349583035347140966794437387541687019074497740494349457409720438482288388242279687648225313672787312284793062019466745735741609385865327261929396773278428623020792842214752936541386683328680941324646359521004369191536015329563687098494734437052337023541057426305603424982549055244067316185341547633450397174055527386352581784863516357436553684361389544625031029207803107167060059263707602541122532332818696321259009866917835608419559202966982773266423357541999363505449009366316614065432430985140467972602052457355091975412512126999757682164634417910801751487441908493004917714219242011147610892966814339812764799116245807196939359356927476279787392193578805060906225460900530658343221731454285364566119810470868185197124354383155689022655209164076653795174172316531606586252632584059137777522726794631951699561856119275213256017704139113507725015262387596280511809781663164669674854669870421112382370951074219057288553216967336424218042683756430955806749063584941785746332115967882325774902114389523492736757944405146639087165853131022088700926020582754486552276531947376215344899810165827160829666374020781353148421494625926288767064817017370408311815320035236385503555223281990654437840374337048520830287230536244553030240475907704271663410493431164186764091690101426791484708613216571143075368671255004605626786436720681271932060988910773066089445935509221118070724233732542218619914430880740494552507098890569504957828483381146878136384645576563248825814766578420289707019541317726698159528800085070277920342490139926579769755755215481133674126989448804786476937691428906256612283440215046889758492908242719216814973494329094468348964723766565109078594434419298035779126478232300382796366194398378464173870387130831537396065099005103989601234054304612106583680667215885993922246880633054146960261193101093727530601048819558191191261696759305831447733952167817446474436294972012328268873411372081167026755161862470579089203336511317774894158149684970042744357846341107527162932745181750694697689740529160369820706885878195101088863933450907691920265517082361309991554618585322350239851817740997923667342563025972740204528569726900999396884005967264206312804031643251933847482247627411369032569725970198001880934706229871303040099543697774223861027756106749632003004254922499369760739810985454548412587183456726393197827010018777400282343624094061143907004380351289611719135787095747106334130235468798793215550394551282690399864132700208322054250417188785759704419587200897866704464560633142147225897933531101938978385958237118038625352100715006018010247811553018093683931500765386255172654828035039935646496289065028015089342568297124439168839126300788673657973199030785206365098947851635362297707128608304747061923876414977510111430871178510219857631535050071501227318191323251226113926206896396118590575910729676693670856324047621422795097304734042403788226590330569497365111192322797791405851576853119531057350856843344275790702953258231729078489386785374323879762304350717239284392354621381794647101036901997330186506638033478548667448377584494833954128308382722907639283146210139612380688933366960152028448127291673999592003832366389543043181082652015090247156408269885535711339642625483963990667421464056570988954429748110721847366781615797199447943562356174252889482457470446995585537049515590989243793401501214222157221010275478868186257941128795187974300529222631988762901121346127156032367465290932217329454973583280854223854979597189967106147538660607018389505007553624707871385163300912469917972009741545733556221849757153592122207777559024254591331254156718522393713396372562663619903286164587269076786629912961741099936149055901832301653748329191905620405646405162231370923451541463649551962345137368900987592420821632011212871836938530008622282087634933874098257094986596563955036047279772470158194703797805825050473426688765046127119051935004758649390690705586399151006274132907657939334513241184871408045555439892672223565167210457893414283685507774171860144917861830088655815081096680196791949343482226851104037879809519791311562968618860481186786315241191247912894639938022467186887337357301256173165615293301722961244901859001709067715086626272653200256202371339665821914691893017550086970550484001251680897853756164124809805218570284829932779274408930367408375689847134563352861590805926371073467251009858509121095442530785212662772711552467929363844906271866594529052552943159126380491861809428575458121487754424079167978579639300097672524502936506600078972849156523077716486164591211604858719101035811483310996539518826288318079318626361111558320573901554000711855477109761271833824009475019543155990525728079317480632086627224686932539810010225555987337473791121251518060469122812298124083266736764060329289498572998687355129979446302286326391862506482975461764026708584228285573500425029894858134761636247017148493080212944062237285821516062411263124892165483153350235067251959387277337912562206786544417997744970828301450089160336586095301531426351117192095951228277240014397827693509309138100219684433563454417853808063314070892750090490033702798454430961575504379768038598916602114425284712162539964903517344152975767924911958559111265830736335161111669789552356873127213011850013837355856765343060505916547344753428025649874230243841157901575925278573333389114425919943825780910165503383985951307991051809655435193937722418009343752652322648925447490152208947187849948284522041072174975942907902294571930451700709967119296992452440420315145270781342394066563419484191053440660918397274420225849362361791233378902670717932433369710755047691636376877138818264776520598598788329315150803805915296910679491169038661765363361491411437895193459319997619749101695181169328642484242669475142025044222967141352138181895853861927830951513780807863133924731934995019025324341377655072111455467114196322558154989755536432655958336405338742549361891053977799166568052690073210546910328511965054074113608358918628643781477565710133803253082571616233838552806322195118913030163094913763053511770978231887254736444900963507011370810949841904329727319507741730791701882585224589885016282520851311930078231512393966304837170244015428226421848226855702718201971818443929934307028063567766086659820066870020749643604919736461986325154595192124721208841796784065668668569926539344991113772152456263626712070107265968543745085784160899675172873246815923112401987941110514506932797532453310220936752514569312111005803997860460589708735335556010690289900080527573957769198014073788905073437990335271022478582307399993124074902829407921667881775795523989639051136911385270145651028412874133835235039008571390916497594180413355095784901231345006690403178851138153469861651655606957687536742338890791061458976888807184062985129472411588143881935553637089489964251063256846799407019796819018265543213735676547714669129995266447552955305132447077416246525667777294910773941431617658953176350555975964758917916211520722402981957878488603230719994178938179074899453802106371354301273673454200587219444442490890573202659569920938369320809924954334423096428484560168938457198211887578188111060588189511665026640167026583406303377920850633003712035166540777091564657051470501859532817785083716547830174711046699238508675986751800386842106381708234077667800063393842363484166382313254163560418811963049040544814936987102768506259261120736696169963898625166488041924969125393206462841104424928884459698770575112903720547503634884952541339234980343527940166271051189294294856978316180854135745704437225688416214114077526405012449035045009438435524502365615518746195270896551708138856612671592505457736732609994612041175779219565495933951575468121977561765348289396119780470393072597376712278830559068813206221180570167188801053578594590176661751631777084423309570188678898700181020105209216577858629978917729295774050170432038387678106260217278899015497900624136103377634424760709326801060264698081330151922977690186217954468289407842154758467077454740710293580349294903823593658076628056437613184887472170250715049821339171621446505819630832308905730007908815485465096612740915021980332210975357221202976140591258693367550772011060967401424103686571519824014098984762359738714562981038573598913136587168928385103069635608507259988676257805964784578796499001975407610649911387295927426814061203917602936069277973586792268119120580352600908293009732657767120215512576679527296566518773525888937896586348102582062509600290920817179174130761025382513449320478577676204451712104365480017161476442023959733484153670801361024938369023610084858839215184367122450970537991669907855980284611811783325364022877741078307896963055076153967319988210860985135363478690962341420803600459693178495496568117753812820806814452884165525454694416043180548317074062168616079452504895609074005784571421982599034547954075389503492660365833184664888740383376871439132433856252067626450219187192313733314747834004933176631693356427781305318190323774398309012088289048612533580612681184965804704967407759197399854685052858923971958822769978051557370366619786996593399585910296757399524717012265247714486592547180686879054616737738954448890865414233743131653342858878170833241774869704430242622047951503611889906341110802258724505878751123142287133662560491299647673747697583050337625871450152701614214013904796182641778209209883061596791285128805343464182343704030941925436389850835464958883681915324888953060285284879862394407508668693120297294674465501016111030297105597465274259538981735244382177232090838669068116813610716189371243345057796240072190417924624959150476255166314664989229249481655013062892796233565076574192113243231725807547535078111785905614292405242312908459085622652637371593489625149439164224490217991925636357980413745398551867552656772219999600002252692540383508799090437693530490246597510818123948539175233116413148463220802950628317253785556449616636646163578260070353812225984729671069019795744248700655025309116432836395412035719939738141958018247985788717877394541958676216062220348730335853744455435806073791501316846016282373936927866250949947258885514052293681262083457704984591336713580215587075034618637821441105323257176229645541279653294130879916340055272047760820538365319321795356123716579745865120398513989700106020377665957768259188799456401937228651425705975321781368036173384486852240357780402773759134245675273446475883599874961719062535762753268636426883931762432922427621833585731199910620948064752307186650421320818968208156125561565219382169592254766554872638339440952282113533054424774144927064550932724842743299333623491766594853581762202766473107199971524941860985576878549305017606710402418890019083630493920568262276073625870892742896155134352093447453023759740023085622775618212484203141989783973164517350428952163516071939912931010131350403827394449176503940261342138113492037325178717082322461639982470844351460804956564488359304060149140980312037453735406362574157588212407589255235930739872953615127241719092884642764500241732406809552960925065135624446555853309712571763256488257576496231362468233556028785996317767448129019369421716319912173452496963391291282368944514247989484747926033175112913605635059436446005449999014161078199617584029490687454881091861821986039121820829950544546031962400479239256079587203172741944786411938890078099826534820942512495400579002404499024412828829297272112711829953910008973547643591997105625008350942978769447589134337492493333102548951684933971825081402539970295945708249696416078170590280053640372528539900381567568492963465264730706472057192026770965417547892737363456918834303969295766951881524256342614143537354802146976097384580544158129793455802272280247223456026101408380831962876025612529462228003100093145013941078687565310337344696666962484031706897750272559321027726710641845347418934933838172673185794630014072435306934110607409297286244532520667689970712718128289231886669187674529956915938486136197062971650753595024938376191640000937415477312200268158891564391040505150090012074313534538403151389750443613498027130256460232091521384923117257987259046717211262149644433833672682695501526502432437455286143910669758899268006030651522699706327577173544577878795194651605580626087308600986572012874248778156906359168784580069870761244467552769345827560183169244621877667155576170105665031146294381257734237454539654500996667032146825171591055913568741394979694964860174150819274622831285003340071030171360034993892874454656952774533710688170428632688939822788866195323027123584509125576842410730072897722874228138013888915414828652103840733172597673717413917293367004730801952247331480498463892225389333157662452260279441169551329170050621849070799314851846409327284184514325906203460459948448709660297045279060052981601280199620398309519107899091615177568656630627312810182671469951309639819810669163292403795357410502450679217895762937227610959269009484872425431438874896423087280193798715844143218991366907394132402803619386092520933068199564622081324115152375767479756879453737556935705701136227083327256436215800544055001255095186114181944051092354908970836734215354976948487810581223203322052153180902564045242945408142418255591591514031875774950244245679481781592220939998574521373033096019418365051847851621604491881090050707286578917262221255278788622904184759691166174717083674236380375065110187581975769810144154690757388375383600142410314834688180350221452775471933822572883570013116786806798723589132940931388008264072853513147719124414204240282068543167917159844111940994952889835825756018288470401911138188410634780820224425969163198175611272108971530788829661159781232227366827197367540732436304262286225673112166131210785911800588156237503067240360401437443781014374448292958649730475005192966359606163882970135360693943427382605381985672598514556703987435963301068484640513013662075885883756719775478939328436122410882841069891112605302927798521160002563568066627761975632933454027740158207893611613163553834033773982336880103936633389195414305737215592529268141654837506143062400957992465891925062897668691644873029096830700733846920461375555727361198742163753049905622357781057660248015066557154275040959777414081511166226490798190982590266097192697623164367855225065554796803445048285865738804772807135964203143967201623034158367114106864505510536906565690477760888542247664449418459319770440743718778084075412195933356011686663733974366406176691929585131351932648101055942515024070136600572564360829930954955972441683368946402439972424710401521835227580190093771502479442652607768197985424618372428960522887962625138910812892119431028351871463577536592600173181658018992707281973959663064153371307304115977023971821628058953065190729492041891282562313312863862987342670601934997018594187952178797050734686497951754139624189435071206905547622224746611911955706062464758062362025990698302998605005740409616342372298990647435333565086227976530666984324785799719032975897933534662189619140753780356441668528725357207682001217705186763872865387827397984866796327954931326986623489631774295144431977310168469460985839959188782878901249734315659035295634052585200117842006235598310347218939662117797639680053156945310188194511614134796434799687039914660185077020095385886597124579342754525001477183638608239774505666388386348872136740860736832599602754724321221766543598252607417309011909887976591588615658784461181411199542499326443755090288083022064550039245525383262202370089192118368045090408164733701886667822038848378450619874052732151197394130464366907571560454924674854308092504218903867328298178562399188154434758885448595855371880096524655190970628351710347845852288948637784507396338410886854728073481131169013905457173138608924772810583485250838288630379297794095906374810704933203476775429712184465976528277503716782349765466701373163977743514105339760267858765288372518774847915591910220297361189798260455083326582472756775660764010518381145811299236169399114436978449597482697288371042721762549699852765339718088752335311460740350535039960001857776650972267096472672584140273524422136437670671274625170289773630168725226788211439084091690054663858811402266799318384892205726643528735614812613059577712088268642429063443843816146150099382542404624993459469914077594759784898236081221749868581506471167341597984532853234004406804425516355012701706109843267011100579350344054242235876885726958160252789460269039739396772725738889039145121807768851876368486581858746089801284455233342016885299703457383221984192324941097056046354956619794457392467482048466752357659481374024265784974068823423083655275688331869963605807294027405566366661404511355842101148728918551836447177043392400526965490543051185240534877136236932532000376365535565412175936917883480898750308181528146139033288105787769810160144758157557891133692877068294792508691257190485911669851656505901096916338835112215786140752463240143396189151417472354826841481325750754568992588343277025458936527049344856276468467428333143951507468611188852368886089241094983554534660362587634048268511426510480958508722360314192747216486633329699098704115854972281289439017505850338340094809663341724916609546849314910122225266462492963047382527115751887919139491969128772230299591372183851741596970297100990821844291272185068470455482177634459518600677288727954378510993479065729349894582288272195834733387891124230460194114612160278868431068120341469772837436591820076720398220908605077547306007612025599283714364147042845633839019107079415591304760873644002078573714258147913602834130596858348759226012496787781256888044120498531482828230665383812914710739344858163897830946246112223797045294007630305006125132760464175972997519894038513173203570336232959278242386770201937809334952111593605016008916416515182380222066745652704458079981427457035179181094040629217312316655979198340608887215959113512249319193026546604077280639223443200663509868209610568304461950385401846445086342079004476401480851990119046702838897963041254196731807201246533673512777997865532120577378575563339818995397934010651006958650063016996139378840638096835562703651950436484760312901801190693822780686782751282621773748070752917446694904075261614516970983911466504305521735630792453217497369282708571473061285420194748674413872413747707493235302592536412452152271326364282936773851691602485135575344336287198968607959611486322257725389159457273985858653741815061118628457497902785407003929426861278280638535763938968031225523890906463808592812285137475561469038572191265577030365846526942596723113392705073988287701672961641962247040701130371960320718278672025587679942415611218862983259859557308369451329320707533690816391663907929891264141078336652196626344061630221296490468222432585215426275383490999573559999609966709343637340162227140499898355209671893560532308435332326626443344392666725620665924958606564076996357252700466816939204833889695946139521401650602911812428070887240214457105736413717679481351420266209477591866194607193267912110000758067227759089542134506407717135496192419183911997754810446161941240707355074148010361543948501276420791183273331150016144945346794338559982412143119558777270069956848874442246625945293707577265461809517708112519441210862595970929760747566078480641900338891904793092509521490186103093106513298289554271294479615477759991075455720820943863317144298198522692028748222299990007482861665308918166022201370607881542463514845277920568833686458867022617896790195927067318037680964245521775928671673798923586124079391489055061442811797785497102849663969869803011771792079555701702643043737685252361145456286794783997699847463108383348608871247351174172400699422617928493537066124623529483664787598977905901711026272165912411934575143642666612251220409572309088586667665079172189694577428374967894938220519515423889267877870357846429601395541599626883682279692171807021008310242971812842703031824991254809923705818064111039801750963391002306141483554725776203065101854840199249607876611054492738036621865556647385181051427391769949724995855244194252584889470186766529893958375302091467853571051522937566196527701393084856464220114410607402477458521799808194479936729987054086708398948284758692070282164469025192476977514187942303617643799003200723997811056081465765996681478008287694001710056484944521630587844483343283941040504226890796557609025957134890712018220530028130086020374036592334097070442716679721914686770711485279003210711024501938926972036580225584580962466041826718398275167182740563476097636877241543128791807610672680656822024637085206353376591225393196439594247792938582024668803204417240085258595301756165646459648391787975492201855612852054445586389224425884873122666678350627632390746091799657379995261308445315139940348179391989999749450695563349980870895224294456637735376330719364471381823816958442044582089049547242699339131634009413360064670700069109998365734487619276002125686228035399326208165362203504705899646997675151210412154634937459929143485701725690060209646427132579059980939853052583965956777045372984123190390306666595699225320375968121700358501566594266265637716936221336588047674457140614116745889642772211232347839067397676560431415352469147623341719910233639899347630206912551568681462671710038386725527176281888441629148538762273292401075371074616842522654542551138298068225301286189584045113612007924832599526498852965911198522739081455375953031139538320321620779881478078612587073075583812177555186032637860855287272266118266398261707076920288576914659202655157695255853870925133383084566863752586962984284997561443960771604708645369097554367441623585065478329986995803817751759396386709193994137379018637053480114972398245332083318963025929146549035402575940135075646592052495448005613350438625870215458624896416080125730628876407237172212435682586559079236200830382277494635521680432112570743456077817556039034213061176848211530952390221211244603055295574518205595070514598076950065452087704833232020230086285296756463970250940654434929235336926774212685273702013666163414985225451801864213720628814402990006149848375644220527654674867400437220881871319320243892831684746326080020620897785640622409923204546832558997828070009640146307477302605804559254814496620549996121907111138252322593407524396624838307426702181527027507453283642436321273448648558269074328325332183836905556505928393721786065174852123032735906310699694151088977192229236661229270177922229232699211313854273283651434568174149578341009334462127800709504569934724368768681913016676011850597774174388361772048166386739385637680983259433397416824024013692936202178395536030656597057246193554357262496793641605109969333263596184303230791597843840869054110153556421889174672343548645577725449283533077115365590618270997470414845569238804565237982986343410168377114849752438868338896969332125685525271740966154046996251048960210624356195396795543235572507845400702434242811975605196650503198375234325435517279738197515673421622668225436441497832533825376767406463831222351732449087168722565265122733682918037337572486372572512781426395346702064687946039728952400281422023822651881040982741972173410923049943554918712015183053579516478080539066401884430885970205360359438497780281982011959665084828647244162225948817376863280180575078568778310151663104021377688419697419684824623581359485116356574475761586707014964688655560589195741630711416321547770283032128758988961875688057752445403667063183104914323457780506873363198060914603700517892865018903411257140209153509869755131935170055711216834688318188346421003598568028997292967082736596202404301601891700414879907948688584133673652714195025599190115711584280336518873881279245813387766530490634073980997157780692587003671346242156280192253930232653025531958671430302157320415746111094992200461229098846779839259973118068198015939446951526839409754224364057189946669651795726859834250565074267342651061007670439849222419210538246557039585859660806207434429309442195932984321498947720520808425771280900254816594474284734657914030787713574793845548031459426226238916075365303108846310281624495243800486900510386560468328532104121837519274426600144368323416409215553542235730492609661237885451924147169514306072455697951757904069362051697846533454489350194612539107903532931576692449609811255198001518049061850234130055076633359137334510037020509396369577909434791615957692405883801829280691323539680018394003117759187532972352958349139960119111415975407287507580174996906013954761212238602740806483800996923044782834353539478297391577357794913593198846217864044566873321764225720015789053895715306184004490246794113236567962118192335191656545877684686954810509883147945535613163226784914323902455796340671855834331026309337447653883286902571082935820245772839710209656444734341542968439035806801390291103470094191050887488624567363074697937727291151341016417691088900691215456904647803778354113556384689510826829052186346035363990218719719162513256541067344654205476798934913877644817510233987206413244808761050311542029148650192869722691524536617592347464585882841706427796142159400385774363391964685102735303838807894102829727518588508416692380879694965354699941267490934170468173753480879609766660576807928524049441520769932562315575699820677867364468337629422326472673825319666392149324342596510293195630283639551231893685537077850215432357702713911869323619539817294362379982943270384522941465945420149010642344688722774259748681350513647376318476973990363246565274228441734511945575232862603773703066775362992494923375507669829470398034341537181430006786168803361427540561842969986184613854767614450336926174227861923102349532645101032082205059351391626802227609015960392334570736831558567335669843968116374957222123787500227516124242709285657459162959405541736138823523012482089634940169355393359663729863653272966311532023041933063056598356503457818401870541104654212083059510711323517583816115121820036935710834799109681678308396124477031963105727627048663589573870288164480650904324529905261735640838056568779141664650726097612089435791484014785659440475205658183635161456577471077046815874165893432402692674904536497607461307745277551757171334987058239041877983111661981468595283307977514765644674925249432485419667461697163696275183118118544961733874380027810531986269596905825314896385342422950463335187697485152673738990809275285380162208427893099667785503079126518526213002050434395255370800231953893451754640440460638681959707351707834647335481889337257669719385862823424600732514203689091960105857543961418964863933160009607995296329060096928164364659534941121053172276719719405299145388963031785458638252902828259993547970967749045086193479604601915010124643358898798440836520753349153558099760331056500156527416430631103920191233790133331222676865595172809912341282156084354410988870864629860711898592851570760297958173436372052993566642379370230784983437659610984847015494942483694046643201800381547030540353676672707418349190049209819028937145972048803147053387909025670209870575936794273345695465382057351222511621594394972367326704772550334939700977240219912168083857589532217309922584360190124544729400268594426606021615629045694416841611086678096851115596626761660891304208874014010506558352816039804609373922951814236874845458975292032503194460949293705171485920689001982272428585400011261464963394587255805820839049067470104362639335231322658933411500996196333925542092081954364687396453335141733632187223134323114653948656434927238730567355208618169767284106863778967328063385302332536034671900132138325079894006159579748750919597664582635801928732931563753686558862781460455589095099129062703218716122874286423844295873143990074387567811790160125908000594666653152412735826245071806508845729635464758664402951368105715839768222732027290062390513991325627175650111036947040426733000610044513385755142217184317267218259975430395906020812375263177993543840925454787282577030647142915800663536267183813266665747017325574359666361301923383100128703765212353560078149314556269687990013155998604911591107521365193919498314248621888426257365031971908120499752318168585319784018566413980285355411644313564723258022727521962154243452412910544069552109454136582934310805490408092877746343036850229768155557231397884852286079702839211448587280923403490628603362970385932686292698924193032330329147159324210128184383252449103175735135436612088013660393461195465288083467246696637250315418211286767358081214524780919195136843710087939966823024361235820295665861282872663649164282837330296179795242114086883480645056090173961585919270889010200517560675197864896123311226126305335644144815942646731936034728278781481146879877777751851659149235920575122890879412481595448875409526452102343784679061895172458066084632269273852809663164073411021658172767410684883537803087149083800428862346219810753196867313345995806509990136003352011081401949370798660743738921089136836414806640648009774317920537803971910379286829423619483402993481145943863706820754246559857203421390612012207057770643015047818970658384679173863446417018610280073554593297343109015646034066379752683221327853012626109836651620724840534007238828076816649283350074285828926570621733769387894400918732948531913916824262060959563121910893995816589704813093838248593361551869598672384423652879749002385679224898288338920050872873896124561446115922274557388383902953676155388830806822954892599153218143902091150412861365525210851683310419736665026761001845412841012788089495955755990958137639111750865120070243048294279711970439141076454162820326280648554800645734202209733977406027959006937422466417500888854441164312983332947898421148467198685052156935179727271274441711572347157465389191751212315268072828251433848853589501236776836698086494574707795678765560338071920041424340137571592331393860872938639991812130192945087935014984170198002464522445673870499815688627776253703982849061108857512330886852187719020982274967731893059643975622781397530691701233959302499997224603320917110089633043426677941690573468625206707789849172258541347575984396838018474659488160610145128560397767421029884936244093960329042110087431826754469725716735696535155147812337567228853498531656538245507267606243989645637582249954472745226639696913288143426676184801284534845451047844807775278403962315023981790765090595048364690484737512430371952230657009671728078437606201030469800787357113043479896846995324193361319460041871280995316660421172927036855922005526924573468301641491116028570011247195922203082241040806602984279877609608164729443119301653671570393970651843954468735338161688988600527155600223450076931625338019314879097052554031547202366389815687075095692394834059756147978515954945299817261379907601874886218236683191803538467641606987048627302407308708971698144799378649919324625253389626395312538478152740312918985762394132324410044287577927651123133574906201448041792486943169653936660427505570601191333447269919545160819340878488013194861662379096763381978835857554108225520422674196512833471624162891021824050693529097195934475644907547028333632711998984801149301863813872311598065766253387462649062706312057106809742908542246108749983411723315906007135868329758096925079288251710636208071685115814093970982492507208300956689264315533571398572011103150323378582323707216216919111544497093555754607428222803773000769548153439051027835523268802540512630201822397018202540030304684283831902993110696909736034440749971824542693458090271813539592875515296873011609102370354512895853675481939380692889007468524493049383114727830830765705492534024858702336931739764515942691448060473380712053722800974104461667357618636363374165582025218425060396910535872602145358465887745140074352034223334563955274737173965373345625677302639395465409456333387705412406653588927205984526367145805340674649193510067152146475091916587284733111428335124565008426160941517937010241710231885220176074028052328844664445404085841292600018471903488942442307010701560447112341333814663442847957834792309766427284726095952063381078096942347076177911230854362854362587422959513538259436119858832865322122144179647175095637173235154040642924107989379112602389516710588223482493263859800614884831257561698901642511228352425848664441021634150336430667049685679991166510651171600172714572894639372967083815692166927751440043737155729237637329209382923236059888943028308921991728208410704437565029020762808900554139908445138702392919936117124681875860886214570339553735170819269220848918986765908519769149325127622111681584282721813480532353850153042223450561005301219031627462770915347295291010636491290397209430000343982571787247922944605392375186469312504259749687240197884148967132078552363860626296776624154113583098261910977612434420714389876683111458376999700306012126973550099260341767757621162134368703540444897868134221743449237554721943608068349125502459480729463285830570169782076061062863156916300282522759795228982276788075333358007218495438839382132052178888011944229812730055983126290944479048601416847587546799288832944730436193167402324825309893606090601928854936876030962296726516460250175694626932542703128872581694150107216138137687947119304185351723099255827368016676527267515482006376388536453827031404037833963892470138739196469559046694556466270072095106084746985548786326704670548454682128960578323734887929952742659648649069952358294025989131623667515741188502268912508504307384867675845882710935597233181582166008010019841231188508260685562126420632837473474744037768290331865437889596323969570496584003359390437440744551468911370570677432673680400906006878468499950763624264257819335663672367023764698440483664015455565336131209201209862581784327764017719078706974162481876398733623291498273285211989003755142025558067718569431429489778520501387306820052689342719371371227342156369311925241335165230995742258051967301304912996585613690898461842321872098249305044646080412593424785617449751556860469368097053995736433478359986693064249336378478683807865041949087509473480145737070624374449648564141765593094934709193354104034801129694338471001717841945988238206852365033437905012440558924537641359100330930832250703148955577021283595385785541500312949896314578804659014852991752897036432261543011295147103474913534152753556365562012533123037213405860568442980670613304348483890686459699391702508112182361492989077299370576017363123874377901112155353503359877716952929645258283002886909482921599217228919259715806666598396488318138002412787361840034841965961720743497915397493104272754135779322700611541156192836038656805618311015806361606417649719218981397398356249819697973161975085959868670172127742425770602434205627617838881951658244864110070160261541817226974004669843813863197049797097067606064446072770649132931932346119481541354655416210751107744842412980503647043696801969170426354989001116991053565268749556677586277319436248862247842395601071608751905452142709759289363330249581472166611410494948862646624388235518485705978359444417652217532664305808355569636541615255708489414205439723058954837599864095728017036779610751576633507256435648792746733848418360178958602609728437130480106902565730882198540037351354315255820685633139354679932716884401792602251643536592546569813943251840376448939385337256878833221393666199449759079832322706668728122773253309777188714581217831601994943732080174247077733316344190231218338384449163488481917444457527233747243648795274422348832242427163513616262858370301672114195738480645644246371117627676587001432080577505341921334379474154759718730890554691999282916416464167746554736514685499161707367993383654173810729870522686504571366417372621851485775373899143971112394308750141046101326061312506804323864694633605688957749374957165604755059797307421681670458087579894958308854911758397657426546479526612456157155235060922073618766993623007358721719815697059277391858773406917209217484804593778977050894600130333459660391197347641484809688218008771481830301654663729320780948288901975406034069605055981383883834329935918138852391915626052364002020860972657739000166445027432582285699735704171317426161568589967417372968771194344254744097415400896336853184903173190316977818973328924214029712929499914353209876557669713712060024817692251816925435205868092519412879344427533380524406476754271444835898729554778410054956664334321516943371407574827933973716447757168090592360241331620755955128850276696201550816706644707516660321284311945787645480324469173146288753384244567084593752495464782891399096602108147205063711018558413040886428932417035433276604534621212159951095624748651659823238977721303019843903562939828070813007555319562230451113028874120352213325149933744766531887814177825925264433280995726748495984664692258028935948424178102614392003930035913638166381303056022444531014882659639585289661871518801525656878849269991915486754549389315584126139181981662013548065940047082480980188844281003130806808651368072775414778889790900668936743137070298946769732151610510845444229259093571339886226328012677591590776891354453893575766893066164361370838426054504106831896269708127323862772219665781182047766381467410742163683502742092704074536189365944861431994926742938921937133161740867352241169668181450128522763439295422634560635315223031682012728672105353668286412235076333733349889996171577765038218603051132785549307494403900501136028448547251494017980131636465806335605198830167827468758337324606838980126136799267896202003347737678898826612177167659448583104158817645740235396767351019959389453144864855634721853408028421642165911379008563700414976364655479309426552724026609039040273317484476933149756844087883323829613796764731371117484234545781141869979239315419062947233380437956838285922305316020676460225790983715491659698171227505150779306471896764668992626121970991157686127004399136733081158648910940252212073673641922182221185012022722847135146493012972016805323577745833052554392961256663341925189075765449820007074573693472089146207002240174137816878824204507865909333854213023200034712494458841412440579157075109161786742007431160424980526977520675984029915101813234148061830329718306449349011235041171021447526030109120840906388953493443851466407138348413872189219642787599592356107573375291860707135727143766126899273764029849829104356720752767262183219958196984562057010822641028747727491784226489386555159851875638505652170602350553035399055744154189466966538111106635418373694581814378502241117697301152763693726322327798660486062176126999543527573035043348626942940704530205096281328207170578940617532621704351161525240912164183851884074611451607609256276462620887520381958261709775136365291963377854282229372305279558031765249127213804961983753085813484443833154554104575945736067076687825131683504548931922587151897113816762039881654453724755330117964992489616323130768264262535100254345562879788891664681982180651035184499606012022000980535198553304128069718813333369414440622873281653505785869059396383700122307012444599001045307892720594357236359662295460461624072441443573299857532476065615527900030469304239286504961547744046669727060856389010774387872512451234531655492854450346123623133620768688079911964158117063332892475775922564567594436189328355246375604018244609247309082176787334316598924717611339589665578594999952806528982314602166084253979594119471438338979529996994684886518191611447976057861963673546669327254646911116593864511771260233480547161220428679494945938043765812541736129000592089797646437028523616750872820793705382899589701710772935261895803501291657102951240918047751690445654713039293002418123223877744321911604599145047105872630975841825050919212247651435568403201639110429402555010589012487094714011127167872700567771402491044767975808053469193598294576743044604235068913659633654757822097922897678547162470147808474095595401635632747087323225030255457002448771852646291640071707883949323198117945288315105491757826562229602886773112579238974738994805838727942316123891852301389204232770569851794133046654205863870134490793394796143477771743333176426019506338478977635958430515235722752222395697095960489721384660901419911136712914704687407476758021318631979396691002780179448887145098063667959430928249530793422973451809287358034763381669240678458531555480479784565729391820968400130850973770286950339467709215507732642305334659025102752786668889017628527340429988563057130299489346689046169943969970252974652531358135027615166319746536537584183188831110448777085521278067589499901038524418298798053019771633917324094187556957149577768285273027018553492842970324384999546904213766699776212834425091326376985799416948269540414038360649159498968762450042797763619952239922838300010070311244385073827062924035525069236857336616958893883092353587934532490070476705213386081166385778230248837027254344886282738611787959389264858738083482901893040312131270593785672403298873246185575658965743864381725407650408114123030474828175724000379062149942236471345960263994382682702754502884014733956242732955157415207339352096611091904668677736861769889486497471190857665767954510513732623667900254314429663065367543492847842964328935893161343892200563758399962496731987416007988352642830585947084150586348579107464426072824464652084729564929973382965872622693925713376488050207728593907297584895506770847479051975883312684230040716121365622948045873170554899472799872163896398965135561253310278136697828928557601495929087585207698121238438128607961062104726952307061695641767582250111526812693872257606959829968783067693957675055392435540978981424041759978549970053951004255001250783389721741179406667038199681462353055984329976010748970652370434450145152171893009852091995466017067469313112402318677006577301136369519526628957151470098507059094874493102623687799403430226645795565607723055703292840318526860070703086837494022728274408770708130207297753125594001885619972775185339357036721333891605645066355598433454856148919957454270098247006570229143348299860805712224582661721659748035091694363716475334846117785817330484494770445645738404287067092880354048723649221709723239418079021979820127730683667888257870631259596290759229537939154228858162660006863072616869488513412905662077339051021561229763225486614969728518722094992675549223511891810130749643070029395943025385022916689272432171718171604362594380509547744871925218926975793023075660053372083406455947503517550323777340939161742072804389741036830399034252759505139811264188003011413001732803886288893684477362707419339573519051773990251732548092683579119760526574471608974102012059539056984250606317035067338585253235324922420822458338708578774065329327073476377090766517511338413247946863224172350296621104640722092721789711569219653181979150115142039077524203944691331978660081574170018424023471586424066211432336331796396374308342152592270384302500419330519203296735051890993189015585214928771275778326905784159128109327721156506670639924813313967604013925456021346561616165446304101497400182066270972776532058984192646508901133804506050265348038296114905187181456528263139969418603390732274095811680645838539145012951015081427469215769069970356578386375992979732762375634461927737183726785966710641035293942710879457339645691483748940388300500331778039523101997850717692420005887382726423078557266741492462284902464823854670871278319509437606018587857334335243850344320714338761984630833905302224559240863278436848196571529179221183878274312922505188879804675443649377013829934142364648978944190274782372340749261770683446574512192827445380157030513421489780151254653180188916769949672226727702924893614031544437124245780646657714195307889764418668539375517886150948671205833890067349707605896420164048207798620820413280713920193843785117616023521986502204993300522082781434209247706228346715634350358150149147212815284365861777730673413770680229460133309775230629140045252291852603987820570083141196322996559961673991967581251906811404044782982538378680392885793785160890045805884486771868931081795809439348809725657047930010847139505523868863757774959534552954475270796755796030988111963833368871757331997420755345306447228329706930857682961246627776158208391953654433153762782484834289666288156692902437443752416055708234056612072845523748541890274862119433360230656633140626269983219011772872350247300498562996702813664183528365721829936676441112885827691762550100522409203211155625383001399832524343212565908242828564333377787375577619541317765393947002162862885579384594696163416249193707603737558595928632286093544739834935133389565399738264058763259032955016731548727033948046716441206866708596074959726780031646746393051715774819784976370925142001191298797316015227448199418930627943044072241495426998385757860465374169861641983937183093580684557170891581534365520574876210551879075315155179656415431722535094278778658231910707371957833326232926879471221092225078190664796922322883705046671527318653605455042419596333689502763692408349946826067949448924733448683211435338812644253688823097968579444306817985050585181606644128787807267734039468985252308199196316823060270114413359398129975131164523146349192993561175432300606238817681880734764822576705846672900046558177278362293607852176943611894038450695219558205839736747044122928835631525840251640744436303866669258589662673069052938811069268207282886059852971632991772249076862751486436337671965049596485434521633087835945302787605841877067245515742815852442907349712992420069755876498084048418105971712240818305051210123104222673318274262381952867813692704557244900801380303661609233465594203487993225804459491977465292261553645713891678285252122620542838881017542074849219720655049560948982161559127595210634601105230237216693106728622006121615039902353585516983514884971772247248970761779653847607673509499935357220232197561368057010119014316642220924912275675342585597195191723746947476762659265696789574092294740460135237636789975242662985465108786131064676107095028098508360430467516152706149359681675824903140454671249207372541411279897218163867948107377560248898883571499593393336859565060895575578176318379086917992501085264784553592121171333788424310397002144373809832203115794237339404809000919115935791622483007430959472254391114420918615853518971479160850121227521252225490117811937863156919759297235364261020752439954006419843745146290214318546429171941443101746123959316212046323974168503447896955032839574682380686911897871918989745968316436994959827679887924498491579803638637385626089340580372673123564186168897343288075687368797517065891173372446877840515240197113789523813808899368555415482113048716530744183599694201129862537128910803636879096490832354264203989430059999432733924122572408257274105176310687899265327076862501367628417056036672711024381902419395761665467521127182239626192473698713334410156408374468166802304740173403026961868605099153567221128430489079732143653253713819100196974949339192073357707011738273333924252139772291975679869867236562987006785174065936870446808384597846567867354496074401662439939248816155765914247116842081179502173060002529148103438121993888944881994857395749549641609988590252090652286258084198439488678157526341520659110332100830274398867709781938797123636571110118819376297097753782167804938688152470927761572953433924128467881628145081490718829055997921756178712690501578204065183902443119596783822204835341751455747229174678881552188058924502195722278636945092729915436723148307845546220874275864327836325627418644290854880323905825837684517502887125060054016810217753287787877119656628441312641786230420050302286112614634037262436942650680188237736492806464471995230821580075017267890996873033998105622376254931357638522685175212273956174340112444503624079149523201016891565437362099694102262756474660876485837377195399091623127524458868098951594431853427326513126246249582495641207850592235886100250736684801160643455711734800189205541794709943348134816643326525430385304724820861122726539783447424914022976424445862778839830231390955803024237893153032350955260624222332726934951450136684392380960917137650863054608945122827233619897020111683764394206986555429776051374146842442155865426824632871493450835044730464038328897259590505149224738323476774985853585793438532315119489486734738209387478091139618629735818042652977792675402749340536575620038736297477577187322666072933503517688713546395346533525383021699797840364880763608492151509307393153282839406028080214197694345064093884016293664940859441003857729090751148966738286916490879087840220591256127823341122400294626509748145456562128168971011492618428754460873971952591598131392181709518873250804001409845094703608963607181579805632205193618779954489828817403151909637768065923656202953383756854932740265708303976841578324854752949578639439266817587038318671380566357159943063408082130603777370580327354098920786644011900370536490093520419185217981306088819859569578187811292003427911739883140029844580849913759267348368540846697569824670016577086436079617650296181623230167099447673724945038977083461314810789347806196160047077607435945705694985244427542513028443334831471227306003540965655156210712074258514576851374603627281517350000030936580888196215573398757463579577722160838896467980227145183348611632664814085198796452084549674844453143186454048334351481654985221527394963418515457654746695558477042552155249516404522011160679376156498704392095796126013377526111442435895247515251513866585548196052350296150715691049553575675433095553135398763558155914883379426423256287953905452056766344977665989647681638447970698217183794423018633795010502288332964377517115262301915153328246230248219552026908116220016233084197798697090565284584894611791723737177449120841055193776729111008629621565221061934091776608199718589197802633205620923908715845608892693099160207316954251455467378624026543823123583565210100310115098229473576906269683321764035612837801277004419743763894421971744398666526258430427776558809281330838963024698067259862858808879948502858155691975668795473467466602516021791128860148812535192610760764115806288972430776455212682605314218187864637549368259056989407256986701405211226436935505898172935189675412536149702735252694124624508613600562988677954306825586960742138553191036019611833187971175597456398097176937216499722548432932301550097600546954941702948276578609838851180108640191791821204247624685527096935093158248924592441235543258293392385491800767995049149831999585761696674000219585154338913073023968044670646067380976228693934130702786240868229483418577801706898168857935685687106551624513865351890227086650862723511095110456909061315940130783174990660201537172177772941873117157339175203861945250791837851659514435974046129767630521362255090536378501065666264634542378585450353585540973613268811549233707734822435184626816587184256149159273239125783143607045412332997306004493275832568406230094933115170621582346475051602718335383797914870951186105875791999363431340275623484534191926158468128569714125928513319294999789656902923436781227190579258702712092645624818783515951210651714943063851899046791676278900751416070723788905917554478736466854168010117806529848092617496369349936536779494587164915023161167297770305323201071959943581948533283977163049674315178983430910443261942244291263204805247006344825881002637105291646384417524588984335025239633241232701395730181963726253406943685253656395929055835469899660986228171731647223292951387404211611715901631682455599067506243757544861618622735750985903283042792919228228006632120069118767307929973723193184163613657878641226525397674791003985102484302700846568043816156139611057498211586168415012804373528368527642424645354292369997778796216942796920159446508971931398610351099333169838883992033667125718694349708084323907897509025748950104112299161843780824119852248812779283387207305520332329366698580434179372934801960273642194067276195367748882627544884618986813019988028054853298923330399639043031445142767785415205429797794186512067792032659772304595024228101005584320761464465829796002572963016577571269551076039995909218439351341726056147498320987771381054148584750891171226619105657280290622751157918032457754008188361054124223133455942044810057206957172480275271042539349791669512038692790507616302173113599602645836032774212981429735664173971420308979093234384377898748503754263325581178914946152819426690341225843611991792433032990323391640038570036027515041818735666883907802260041583795511582160716058485887906890112028827317136484659092670329661103601796480583229818790853850242288766506422544968381949806697571842409424359422320512147889191519802705558286713502874754819471141212062642229187813868112085707985486515590815795997685023614967741002691495464432166945053992873558043360597618114065393236824778074085166339180520085496772123737514967199974691268617187727161009755026919289808590613719691629216425201926236110650414023919853226824249377496046679075109997162963949811937237987080374816556945968741220033877638491575560796126599940725851626451463712737744344859342727288189330795992951905703563983375828000985554818712121416542897741029579188868392934774393556529201151434807473395669576339279929815704913675951049639198936329075733330070846738169037372808043927732793031913736787126653074598186315093657495324877827797977728223276961996276820826052642069147207658140618293481276297882233560862125048042943610863696659895135356431648192111806573552704965751496057875736765151654910935704431637977702176178013685416038106281544002791712206123520051044934786624959546249181696626573259950323964480128085025550665202563198890198520078869699018810626681582792566776850083175775163663456375904979263134779196905580987109915491748237407458110121158090438627058561465552623664940287444081489782007757639748409244772286329205678921819133448159408308208121964334443187189582723856354203737280594382527669413103395144829824123233882439366602333171955331741671974836891853380550783242307535647819442045415019032333428438869224549235223228715385137806870172263969496101987580547689428987321409809971012836406248100774458018192801041085564944816007387884218055250855456196905790977560963577784248242179687047326749533184840184745463894414963614631104243811539830356064305034382079836556151922942507837697601908765193637352962921042128560044508171061419036517388175685467125085855880717951901835884734393223386241843390245442390690964103334489055352140231431800823060918792257462481789677955464208104785906036480680835776119709142845078017293399599551189619925672287483820088522672560592682392941998887700685117872147628290836217584840601480814290766407719115982759697159449044640292778504249121223331569020505231245685212241035115128927222874085095254992782442745895208635687820406693508035110693493556134760854719418659271100974123503091262802504530355011049542836711117217547418933245903741666062356352075513946265136427559585825682384196766869227834059243372723058693752809499646258663441059281635825569081078791306722405516535981301833787643501647861931434139183666119060128599059832493213132503317228748551890679744155412133674163086063052123240129632708394171892267632062657359107968665446089897751217622625274978670854721955047728806932240779896842984413064342380100624654257422632428335330550506262009752645848725898980694303539502618231611855355110710473448003232236693911425386916461932610381007266781250320195363583244969307651073538819427309857517318063905458664433478499253621021991588178419266069445142231170641152265508776681931388481670961460277417171450920516703747637225715254494585403899344919541541830173560857861563999444741780071380127461636835284254415880005156093245133718552299320886781253661438662703633417852633994393676023034997879075115044737715295203798745154178507797848535003166289574504772076937507749441708048789612009466394398372712811400310817027806643376009777487300823642906521574075159379655166620019930277272512809029142793913899356231803118019014390932890567822969506414785796651651871799568632997780790596948336236386840584231537586412374563128469772539031490256556201683409814611509067812635883036028737632272751574970753486675062233981369231291928724953675167313834189647580147078710330781341205018271541845288812991887494468476352207346684087564605873090522953642273158915683560266821572577104603870510344587749853198736213519172424635275154154237230139078699713559766384342381898630129812411446263898110124099333469452109523769968170373849859168572880790350113975855308691014192397268583198198169245400226742232371216154158992929181814471392115207999005235125972360036243551347859158182803693020038924691663266576401607099819540323363812766682586328372894979263165626171419023257104045944547439032796382634084650025923393607791834864233142829220494041815140599756128941625631666311299224084220659879091884279592961812912030274305312163855429478314714665248587423647410119675808245602452761970815507823927867568332953405184722435706532586099409209190269234335702592842147068023475925890648825047604048730570063668765912438954471460862096607189787522371980431100250507292846091269664682207597632529212047733958846532076804615658301523009487488088242407054985904840517972004077300058244447896254864304034978061813222131926961466495979428948466420134533929211603022879646656695476025316609289713066520510236906333171399957618070031105293732584026476909953178332008628227533146025162250714527045177766587892656879279986568107722479243867385313543518779205049524060738196010523787755261310291194294637689572598750218474628188830652406740423588347650649411088157969566080378030961102811019887108815476059981222915822444381088787116767317233626300574820275303870225354443856457784701670896870262937415186659411147348871377342838683098375638800893238525704081350398371677098226159417323248780785366512621323277729775609556142212588675939471342238754321514591395534108004895961788084244804741871200688980231259415073485951095915155794485000604307856420341092930054210789070828108348648374049383158378088499870328481598268672829060507497269548045129586620662769125205414136524339482365055759990383405869439618524066172844162385019430096416301760102768247705932802970903233214641850804130939096495087122778624187133417873536227493760577419706661821108151579312200685023154449468111210550985618775506147513310425105008322922136310847914357376080118638463570164782687616717327056154725422445640208595393118927989765868724018640481240549505447863979522144447560606249822098596520672995296133261596467145632715382629491538458308440511243202037777741092174929697313490841527630770747025554220713122051827867739886085129765908805346767462094983135854533211539896467162002078422383635543650329638383024560752115134059138068428699321760734256197259753091270519051379803858172482062250232280859504361093199987572383305816312399624127433772395219849087171135191072305959253204537273675493854996692350700726970926450013185341517929691758564265362928448469717845445227975720322401460588189843495255212790119680829222584875989261870019443002933464617398884584554135147925127863618867076982261745620274397455119433088033429775450722660072045965595456684897327545602682931261923086810334139532298714830300805216391208528934627000906380112809021902772336286973357326176918238713049424121286951589586250301961898228863939528702475077025137368100573322695532312935055129431792197090360822322481716923699891152126871059856524666754176832668891389229436916189545341083687074798098146403026898328355950805060427031220863145931280926711225069858142319922760830391701761111860042759623986605182623304114657855655009854088500292742062342804071191170160689020586391182958003454244772528694760147208617705349266073762769614011163314729122744599640985882226223424659868900567369597170213557846535333056594512072616186210230529120210863633754214005263165971476171281012348725190026228754316224101203044448240718327754540626433536530000087523491084681374211237956559492763535179325904625565110141179779258758729337232382207814486329398593483743282758512746249287864286270189261814021818675589076682210716197677514944606760774834513562587596267905742654044440666044678422557126706422699463872145653123822637755203154926822550652139071161628187974376378516607453694803994273662801342906755669001726470859627673426893982956607799025146261179409438723311557668089579931923477183613237632248126057773867600969859888006710821954995075900615320894760406278084296522168186395873285932816344316674900736418633701703850779025514687253824862749614883540256644330940455045838221965019390378085943335708648603812336059091135086947624658538993315896115970462837463119091336972972059914072712998916829298285219701324308553662192875598463449205952240913037555524688654342376910833689495163894457514166263004493882024834810301370489497724954562846725462222779266424731738056688952715349687331749066091491391352829433239139858713709347107532839331096823404671827510570767146936644227100342138694266692560337399170196546482962500524348716502234424212402886464989317611882101208086774755640660580161233329174639317621736785820662195344103762924427828339606730534351960397306941861500206265792555066720842092937608224774453278492872448557235728098732470376266736720861645099698875561951548968089514977229911669094175060440722179116723108664971078640460559418584384889070956600378251248427574675376516170433033795449083548790320621733699288135334565641439938545129703312837612749557367697825931486642712333970452567564790008480949713995270994756304413210050391805147936569836153850767410747551168381398388693027919767341792921758615235513848723482903209847751358711918046496563163202344384403697646445393785497672335694817004205869550359016912285955174731584531294404841610594257174545186664863066618913189850676023944282670216324151370788353179659015395722313425399894272081364511271339755245697328461369471021357043142492391681172222292379509811771911393609281308927489128487194546701298513298287803283096075678826786935837975730385905174897379282308389284339573903780162359965007466323162367213553670017050184027087120697547518884757414628078876482309183607331809961167685758646574737257489289124500758792191942450047054367183142777540972497986390117474050405616684895723893307348811062297680045342788584334682585405318127719507004799101191906784148674487907448398059528035542171968226678590170889230055609162946422317819439209394988362083934551288891197452939104084580023959474068006772015753797053055268670646191087706891225611493077653422650784568321662410589171059287572394298834691599935034843958074197163002039402004210286856089153070649438041505176356074076379635531596798495676747585695892943192217400444367410315839204167884340203177402105328201143043674542936488740821736976707302108459466681419309205022623537213603496875081573358542279787077173451298629909403076647987306816611757712511059590127284839769632913180768555600268096408253728425782670372013534339052961159701462697033858123896574245650518128724128406293699236786175688574054810204749141925992780918341977438700277835132014209916652501574269626849590877157650244201577196234706264963512174450633582521173247937983127284242053453811290516506356558896999209525722458063967490702188229197175890468571766607133451105213029390003659798591708656202811860813484433914469816214057410638313227802314285144680729182592637199513671863125594777584883211827477814817889513420861378777966588046623887165013823978668218944271889821150992105028035657648519301732813342320809175047852935528097537876939680426206842289976507874049518051170068528029639897638756640357662721638886198614136414541437766180032676467888613293684269525615690746146155643855965903042968411659584576506803445948121578102390136055679804462794210218309506782349346670468128664658779895001684265780824870390629203575011527252668410855395022948257223134936145667596376850475803185729469892339122527474325804627975578185794100659954884194756336555888970265968104687746281103333897188342380560441731184530827257871077096909076660311819057247921052765032656629642604983744704416516822858260848041326756363236199062840210569767956988705026022170887144605164881728810592512326468959022009055982829327591944915355516333311023403487329647410173595823844716481223311249578188135814564870723602317472584821856232627880302782990275807249715195743057291824988315279394782300960931037258716224545518613984546107029803847834146979915640438954899656669438782846695955574836413518143189087536583178689314798710551549028622129341542599240374211134757594027504376738381993792545986227381691317523550440239231755806737040685132867770360783120304984805291770687362286975366354931591918251806179562209857097103440371810564154092695806526360537549541193385684050993669354457669459017519179984903927866435303489993816721389622939754179781679767275126679105697211002737258090485581790399048494674319760650470638925789937312042720765456832192915246154969651807066587450481048482559727642223388204460946212647940079633012307485369115685294567271513309513845203457564567495941817341385596109908112386395603588665019260347984226751614116158618654311815175747592633706408074967141553740986268126844414107235482657931619245063297141497566640202562883838339503903653434911848330737330763556514975792115740699957236999976904998720809769573880947222368112467852797250530598596817230660111687679600029675469784253576927495432550570931992083313046757930294742421104144878691035537005957472893976024846790072487926347388006609288167041519387816558676635322273766719050142693658275227759995932386277068393471728391537749252476770052393441728979552552306050541166683485405010168123152393840040537272515535324168320595648644173257388325179568070052490707593746506559968360841044580130863038604447065899082498933483990618271198268917073135859763596111537247772639214085689871753226724214585333126428703700567274285638401849212565333769902435606832100420610435607262440549775702989640841992243240820753791143336951676142566653230605033271629852574607243891260043128175326500105870880591755430902301740540639640186095195151829414215332359638207848658158586300587834264919764813666725560799218185333167561928105700997615308908647998544836325437836817881979546966224123760584380560823065692021158970229566840052313548112611694770148084203476316832266995118361402847195410973006643317641791703672849713371386330377400189675563548176135981946183471549992245999540678510109227845215128568515550168541802237563153321769421888662610033616019108859956643716847765946478050903266533203984716483827579637439244848835909249259871176728356982860454931576703823206811947493967908204090404578496695912559731412361097894320417953999699814369281581000847901215390351143331563827684985637353484168955048295016911732967871823684642245102336464526651236086643172346493309002590702418850654711532329454658697571890736856938244994934567931273771413152066514232244697043334669393474106479756923378954963657747915435335638775364554869094322657099891600849355872281010838447851884877401726368516757244421096466357609016000081353240070135360037892259326530725749763297723566905623927587014213472867499793348659613544986786142666697791541171016798047884261210514965731081404573856574251107696831381554384383681169400630681595668083802284981828505786977977267092321415031513338155539014093906717091920494582230147367431900056910412361748504085326308215675181369925084876750109204417513894219267557768673517344265776451449959897052966106646588644723547318625372701137134684479012465191886893092849926053778100376277337453544702381747803475944467122794832398615733292192427388669459576679453487152426075924056707600343554314972526821360581074536668557547608739075419015967069455568842861911726509148425798415340274622257994227065754256156952633210873555519708297644195946596065419407896702606860303365661407063202217767329546586117616201865944787558920798725178834927016611043744261185969912945340353778944758037150539285743511886011803807959713094742296436902286428354902777068176547329558622021571198070172997546095973101207738216315846557768433571549678091055586692586660954700229465264863297442315880764615380087525171139282863606817660070096418031268813897916850982500358671365240079911226068018887712260355569328073546664434985607436257284113918897517190376401746083170958284339561911312676527706935201847589260064701962109332947658883409997099558991874561289121441516188238583377907096151384110490475698284592726591307076330278084793025274301026144050675732046701839419363972684200436629790171814299509538602971373080867159278875251422371211492804703488618876744861981829797354119299726430006388120594029105218869698888581869179901131467779689400371878901382371778782953478045164446080848915362008033645101958795748212770758441068659787384002044267618088329595728136748759440257470316239041850441217425648703000451282882274982620581070333630278135059922393327697493100381766968809603516751893708455073154850926321413148348736724550592560587556034997142834699479657762692505645632914053236644690435552087542584953865221564553684305454319510768643119411119052213339415004839583187465190820783808232226625368968457055808256975728940076674910999310554372636310890899316645810678095940125096107954654173732111062205601997154038356031541134934772985080388521030113835551005885472998463531487270487074135197163973106967035727243818724604255285778925862035789895775070224371032498983304750439724756435120267064080367563649184634540232184579792502740102401600589732067757211934864407497400101940555123455419679422722948407950200496224315395096633648552548211995068610382779571500786276414929609358907826043480459316566388894972718428744537617979937800892776267288859082429065402897537483028605982178124734796414173876122515721275319551199041060698139467527103887262365932711276816148455508283375615802901408828742962724567998698447473249886974131745824799131882222933544915176924300263276271534871351594077152217929802882043296327583852367708237817746939046757920077573881279155018478488942543110713585116855273660175596366015374384213143854574253174074663064289034439684540171302229940872856765101434370533557711638662742895440305563556143358773055430092060579673087712493659198649489650525511945824812041194048723637035308330472921674355602942375325774120092053617590483310399276494047376668213048706135906383705212683894358598552352046516788907924265062439316545254215387883994219902284736950944642237705000365720297298073061558246409465852424511912163971293392226493251494700013509039104539639696251384014670533691184017752867566238463325935803339847621691624958652239018366843853419928151615815452074773648512304083711588192426345185380172208753384165812256055721467043241833007469273404232028937228841835086061270873412956896299633030956830378498240349329701645889759172064059434542377588456963006349859956450134950762583025371338262034690890405996886102028096472154673479039042693298265826373887599484800689897173832884040447625383448494993072493235823523564927320362980797446076607232099705819739384176451970348431177043718426986580937575495142183696533000193833243502748120603630058453167732834738088605829452292113027493784239146803718039796405607384332477422034593391987924285133922594913076868404789979997618240711003289258210220726752065617401256705076012502969617936807292547495674814801415440885340950297697997179990667522035341997429208905002935861299361181582439644922011502634384396180151055893481904066465808949207265479595992539302743852866766809950294017950572496162746535395448109238434379843010028274305314049642811155954187426495613172771723507613238220235152971589013219423038004647926800063094966736551485226016781497449990064752010012300735581024828064042272538883162363858673396385389863125263882035389941616318458521836699260915444046481310223380359498743809041504879296931328536698322266736958771829380635261056597704908829381556649922993886130775945797214883521381118011045844052921932324281335317042489483273951046157422740052580826805330518250912172490922338388664712087134101100616566545219695204101496171344317693259201110788760192260095432612047357489187807009342892847309955156054125136826728197732578633630469849596092088537856020585576190461450305789806553822897770510904485426204974569568245035347910460594125635362367640242271450573996465727735021412723673898599264913411064337142638238171858631255432472479056932278361956985322649165677250287115037200169024893779916679322866033131006154832846314019035710811888449727079995757743798450677105909408381023529163557447691966261164788581136027092158113586091635017039707317716889973543770141264240658802004979453860816011028180542775064538707845007026601881060793469100509719171929982629361689546337650776394072310713635067979071680168332759769396154632550524254906513362958038871630328126218350589668597488285944396942667053354719991336684850228826500085363311465906797034590425782973437002515328496467821016211584614400200729855403131871399251180798269918679753460021581841538444664357100338670504096097990099343125544960692938336827128992341136963115802395994352176255425790047822959458721185489565413402011076670682159332508668477712804791325831646652242686746057559089780805763289390211334883298747447683053053106680290678906094269228871905789847295728055342659837124936686048789389496403734863525167222746337154887481742311344573156523164741914432712934352937440251574416144700835824603237817485270955708661745714295666967213228739263076793661461415141694113052231436874159876057401726886742573308045548990695988793347563126251443373148039974086189811276144564785680132020599358055498349553624363268597545253136016850292786619292338988904037133349432935561278248976030452891650183157048133408166594797870149730472062354535560687864054860604082213433161155529748693874991708560810393469829884596170307713814213339641530669857061995779287027412376159818516404534534135957336280932349296897162625690342188939132417269276988530826976052660823467264340212115096710495322802229603632157325661548525574166319632470644379394309332789612438343347293664281363873789640320915789302994763652215051937407073285412970873154764941653132154224937685343000750625916954668809009856416846317512204221449721871643418502942666224948101738519841651497827923696577615895098346573739921241611600100561236281463205022288168035030132810435591322182905042520604390727953525075692853816873461137566438417613939058107214239652707740483816200565500778168526289287039767041693908276302516153655929880043711449811963737495314461862812112645114909852709117487839523077834907166944060072149201885894676571279672531373520809753701937467991044727433610909450150012771043176637643020045874541731690402068126409168587466539699824898000718243764201202319364680242536792919394457562585515771850243596236724517848461746424469301347451431331273927077032522050075361823842129731284677514622701552009228546547746839662103508368296798442532913364792503653876556246903775757703136500581313367536562157814207605792093234381647989239353053671837125077023863368299858194863160207731133847449251981146034872628493204992735698594454848861498547395493305392686884475629786687334673966088738442377618931556825120295638759775909792692475936498823618487174890931409169795769520074226609503102217159424095082245237076721324637954934715839769642150744871635002900995782862971970901965323255884401410121611185997973509972913951252121838305931888411594725676007533445921584111976043138473495786836454018209776811344046256829934101823939894345813574891289952504035956330744790124106023491640769511080227673247763986327984661676297210551154346203228769482854864771400930274874861407821124960283011352346454830697643333814401569491380934979974534361566110303424293144162106924553876689940686468820402401879697722877973876413961141101950481107195191640401041795917647841061592759526979915059871989828711847085592162988159555490380506529086033067430775112715868377228730338489893480468263096038569466623843432651128358157592181274728954580549155596062755528101290191682227750921963050698600485812990491559622543864937537311269262418392991154642116106946678044020440622557936827336795532582436420501415169860972274111105934478993317565683383484641694526783722033329330321138536267741292287401233108744963651621476708203448669875299813911786515910671993805953588643181394783733037427524192739595233767963551651986845797597170105990111530238645368862960054478435682560611595023685452325992276990071956044655334674078416971612635550297879590772316308192132453070236454688546417745679874300387285150315170795285435874224578087290531306233605960971327971815563802380243057076401160261456880520141432908778704880166375051163306375027596555047998531615651198251416691891885684052066985745385016446718452581626430056630014408622288156056630545556692472658542770645791211146953313101475674903476118714997405247727680921046624895002223854441021415372875925376429777897238572118665096441474785452144314785194635248548753494105715196624207427961479917203840432770839063605786358623244399489305891355458409146062018260918766817929842264745294868747629705476941070581733530358146426576040513276421495021933665500467449922894832303559660882256969862227141996007837547342250685775273277727141668115865084857583634810858816053835360681225561681559832997249854308301639552496189300490142538714827432120992213142471474924158790788880286200236464527673130990542606305832046283334610984872810231162399134941845124617792727344651883918534858401092710784397695576617383714819888234262644980195323584080290166084189718661673450476653280090969836852615323600556487671130425397118898237008664996208890885561794061210126198432014628000786797229927900043731992069680026821668050250270388778180796447406131779190686380893379550559895640680756464494274467464963945789255087859067793523793133574899360248302496711262544749758777263700168468760378303105507136633179024949913164863075845903853327291717114514305684013909293594940374163290194535134667304342688041124527551887010226349002631934578797533671846514220183959728071681882234015378252558685045780080922937127721366841197008282986507824681099307677510066966339908559455990034611610300410065852444097299240117241161203333039242551905216610694337537142942750188682025351321042574156360501459452519211681635927481442642498369300310539383574938435509231577761125907381415269033847389256085398357494230371676025927575134561925424112654288523141163354671500234495655402846400891872355533066625703752282547538504137322278032999465200638448030737630785305980386167921365513726369453062452127819600315565539806850209605529660081475718753041137018791939951203916597950252283326653978539922204731611255981619166043457724128657083822650858893339962848445704085123876993698146676176057357041498627945743995169765406351441619397437681807850894962343482988384789583310085918949270107181645465813123763332467401078260956308626518480992597467341659447632653449172977962776666979243939074227940775929453460768857887437110307214187301617062476394287204709999414769343882960000611773517917182696896205815874924176630283613315951276725835847048065120329165345426930302768846773819438705985518782020621682622164133660257236115233346626354572751034797756652748536853411127913138021540304622258700849975792783660098784092328825898860853250523180741520625703969260856834333322120850524452490953597547788870065468246220289163674728656682160035060696114389919105185655082453490428700781876469007434315477045687692336282636188571770849238170888030716508950915540110304715130185330365179943716979243557192989388393393860800444630026893825690242739519411477813047123494324388093634073830211055232357428218868507487517247725180300274147170256885978376966826410141169744033704375115773201338643226262211492234079632238621411384281251270291105174948057562747808101991516186266258347060433326820441248417849706578017966965620278763110296831666516474213754365512601548219642072629971502886715041802320165144231355921869824111582863871813848252654026965059705787773005464624450449726336565612464352495485064970568007121936508400790025768582893596190410997197359523566425308386724734924760575209275556199852552008917053277346735224190674392719144686954296253914830616848330509158347489914448649605228043074339753961917437616468930275525320282766720726198669257935669061091515286934960338002218040159447530298132621750894579413344711267993276084194263298929764331456552647249773314822184968809348925834768052195287218799801778471910026600796913223338619121292527345183079377826456419110120604047185291946021630431606668451492132151870224616093458182376798245507348237346872488384805764613494040091521437814855065466109785516389394047506275218493680280086385861183103790148399494427584245642244964772516964142908539209188036240355868572928416176119562319042473776951939734757148493968595122750373053486622934688202396167579940189686304268915358018247084579338275384007974426098396669315419422401899361892830881781028658641454750811946010748983441323635474682760420490443610730236116120346233309875675926330939312939249767449850707886215369006045598034813307424312712483223605890976778604326223081185988657601366213489648500989582053776146862047047715073573254384362650210008061378242660570224599735471112748101729919610368277569092808291644380912459753170039160399014948537981103527395432454469750807810878846768512091857275058281163054230895247445022265169903128304097804321635602408594953739114973096995243515447162204410303784647200252884610477436197977649138273006347271403983932781494397453428849892215111535500040866107301605007226464600032107929476888891552621126250354906532403700286430716668051905519419871631948906001840593213175078987454035514366368095600620436419727622366678440105038745160929085392698435801104137290313927921735726183273936568276133471044419393781238738308181869756229960030677654247384887398281482287230355516602789525365551780040040516318005931587202378917336614216698020516097661155678601343861947655263748104893828330718681576943454966904844060623379517977946439394531273278275918525857072386388889406532440386300741589473748259969123670117480248800332766383667751737575810793448067483631030474132943285209628175800001316271049787766263336692395005516404018362669634826962655527394683016282692387267477418054961372779496607911237222367869395372126161453956536440592734983354729188180438279208477035182533018897314133001802696015744562687419038046162890646199720448486412735076169298428720524329748716618599368181994861853423314137917205217203389119544703273169098790465822845243539402712266221578346942239194392844378731217168377680708292762696476138636784524378977585554446196003736474931909095460209055727009952083064252217550737142615603904873760084643651389204888857196510022169245258830470884664348088811173300751174902367295940647130891207275730637570441884165586418896441749472149181475801690959810116113853715499054238963439058579714437424220860854784085837105521541139165579458316482252870446614464189817226989114730409616808119137551025818880121946845160464964769687476586615326857396241325083636690114892447883443458643022499382042485658152275940061692938687989438048271321563797188067543221696403008253249774100083322122053300008938752099014224766638340199762366004445357738634167686717715970043537857689421692933381680040396395085224706701049875441231583928545838545291298291435147402000145284023132607093733923370256267851440860366764293657602806081668877800560986233226595561263761170924127932937582984808345186605756109430572034530265948548805367458400272287729806670894051767355520832997612884986730495623187313179327563217525248653254925150785528969444967423552703138587213016820045354554910579719979926667432154886392499681293400460866693444087288163314672335715821031399733510661011145395564981182940853561548487867672153392092565205690823084686687220925828147758093633608459993905166144038835977861658872156747986508649404794375275311992310039575644455832747974628773520507007280627475797289082793970334428238768920420303967539995020724815102692547277328919860775158019265887119393069286960752694061033930319396209018285274303249964119460585860969285194235236138729656310022550377438416579123587383827781642101979689764022174222303803671406622816103879663979438465557050928011349246161114905664603409772320877518733574017427699714149593201808458824359042511253034465867438304838020787804066715987822948836793532192193888081526404628926992545973748689361787551938075048424510009530688599543235367653405656115228147271723332245841644025392145011782819802175525869576151335750740094299392574629367657759126691664961638681564084256516245326406761010196706279895855065414288034832287932813952209395775781473972992651486961598314237890981001681561836438376279407559106689060578386501501717780433297673027498056407955606682319369850636907722549928899611394468483880427174293560351234172520999033037908654878590427360751340432201577187247449274537514524849581370230335341530266992686349736031126500903776669095003146562647643956478348031918680582912612733155701203449563773096494859410905401558022445962311242330690932952691000638672535419144854105663758572454543262601092509783005229160564990401609467400430646018818774949173220605681651694212579829022266951384859328102357037079688143078377467729152147134914293247998366494623084839515352431915399415481336974338073117070556864145345407731351596992444541486124101254335706378938775995848620116630985905556584983768602861271980186550165073018230000237183701494916435801856069573836394157916652878834325593076410481090523232558884901994062231500576791761091833928005545494190588478410491596783964248495060329529913650347602375757629089862121868405411408445627976287836600076903332196780673286100806608551988793710812523653947489010393801455953718878008231201262456314722678661665499021248430832499787990459392139058140559116594767499652175904364468672359849739925853138367362531223240543066965326249943991764175896774056380093175670331018646032274435433617268056784472932062193380437269160190139719947068432494235014783737563797646725939395917892567875317748767241502722404560952570190699532834773544480539007284705901067085687862765305491015086072551133378003224443654702044138439099172893331709940294127799087711219836574153162549526935279069014131106668899110139654946539776317576643610699503418892494801586254478170575243885396167894156492626073457982517057308554123457432482605875410518936116004684426232549828533292640654244227843109026017477326856075680301541174649100073743263518075724733236269506141823854655930052260668591591007638734979189684899775560172396056493007568156028763403645600260631774080754154826015511023974339863897768290341980271930755192359001891353134949718136706827208522052369899730925297166387223403681678479022429490329406125487703991161095555448289669377124876514709945133241415276230149927717920963748052995236125561047779011668228093166146406142254613768637349843794193627356555199232891666225168971966200422749903572979265870637554608916971660969121816726252585827417233804288914826755027747365780732506857756436048249245482474440326911242582137754664534103421440515832686868935902996196481709709936346560121466792667038228498215324933587048578169139991669127225195595110032771719326846870326813063242317943278063619019857789349658080361074825647780141126438543162553308597095206310228146107187980641143459810802537080791480306596928596841548995110488365958959989864701236045853980807995775141763895121241606222257550883249193127239202285094379685961029906813901962337898561039205382936298517754206257668549673963910283525738552762727345474490410465837553395190933723087516232909721185384968973076357688404113276037517771695940879247342589170875733704827250367101995079474845474886731928787094542875246600421655857265393654087044634231086602078870558859447475756531129853240842272808383263729424028823577889884451428139165591724839944577505798579103704222312537422011858290364420822826285684871004774178929802033727321254909847829406163446494416488863671640243639137427762625998924367395919222216216491732785469492900666122343920646828895084209846243297110161897237765044833167039044678551177549988633590603610174513130340451736992313565804172863926163377391693985981452129169217377689753160201365729877013088893025180961148188325686611895740068119033426330011260763736574668301770616507894160163769670631343732150797102939026284895315998534249493963486925292833911181348844756624906238401620516841374591485289294815501793319584301652008594046145582853846996331020857934154652750729433808351861884242286076117559098079833582045763547457926615547950896827847976391650268089810180475518858034789921249923826403138826305720554478431411414972987569506064208392425558041218732526766890116717697746639262150450155392604947802809010139375301169934067626332992630033942619967526913547594458938669766841761614172913692401722994941014679306701655911399050966733225130607154323165594752818505012715376823533792037012079675696544144091842329679181090062003311377372729233049426563766618157168777339144154061047347718411331543971115837457226825972208294189776482333298038181410308308296913965237087651300655794687015262301889985863171908158425470567294683898205933239738825032877991424559665082407247120524149293186549241565016017957077930938209567199497022639394777225078088792611237763466374676284715493727727973836843249534037757520655027313583973530045508523248847894285194602389019545573850602237226533125748262461573105540628618567920122825393845113003760002696328221019343938166751656477964315429536082028617663331189905658354160880400928960832733055626145376254580441465673409160778544677582534226709201220768951669844655914164107171852597165097988136335729045093580247008983259591780303043315443854682432993297412451229868523676164558413012681174580069018554512140469441563849998842796061528957834687093171575152885241212308352247504270506914888191583184553939304531005338738871387675836569993279807441889113736772966039876868665658936497451402405597242251593888129927232064380156864443924057853556949830919360172572052547244240649332628614832849290479484121156722914933878498079138720014251126337643310506779315436678908846609960249112379951368555197672577811382599709529956903546647476434560131948051987458930075930848493017963687414554723134698183609688227134373711700968560020136899933738953075689058202969153515991112666437278334798854831652740005713603541412528132232242952198395798316688261598027461931783495855468636247434427533244221065957435627531481583835720065553089122932266429133386979326590012216030370210002010565921719454467332663195839103038533756184491950041804983092207470547982039503363843178640078861826151104636392235548634487836748949876569745949126159603029962150125319759156429735894288466482171549533422030089352680910440289615035613855258401738175309874413593840304054570545066657885873945960225099801975860594250829295276270100028416118740161402679698507461820992025031805230672951945839147688561739074983683163588921928851859440352109379282877409889483920213641009571584807429024490797064392048663280416141101623169468730891856415040413255839706366012424799454034627884822249125403009861974659305957564778990043991139425415349401721156457275188583919774605613002646744521656682702478558408804611912215606662874992600146588579240400026853661533185751229304550386717337349861026241421853986194627493846523344677524767514133773362234325244585720213276365419751659589098769778333991754446509418640421470960000954294529407276903489573301348202595711923628423729950286355532774178732501134360145573625681868565457208974675000854530799438129352740070552565797918205287743311002039833027232239593966912381561893020382013108742724550239289132071397746773632421919082669626127797725996285674972749167264551762528124517329185580225754385432453393595513344462730860670306921500446137427412332135202514957221167008424141373359392790712283518451743703423267023373024557149948705632871338679082275885310876780214884925877475756664679145062032904625951049241998314732200537460161659122330387909885564978021668145779121371347200279955169814086545495450809329964474463632193451067135935314419098255111241598024740467340696158785760389464390339855864609849121722874692538435178922534845666252780677866011776637672137137628421395344230375448752636003118933481957241814309589358194480333193752028713596640203505174052271427625152324564879057429731480593239314068229312909534622138412909100337713885782960520329930374473806800256124495786484244406635837597981429893482817703347314926302576620175725862142359854111211112612232203001255672754796175708844561981246957727762280259942702575648097007689339603949111460865477897139458858919479296412452899720203247337608764965634676435071684528804823634340105291127111223825591938873841353608862578354156256434997403904573751242535723986094404581235892688025941965265371492612281012718923804175750062940457523251611689152349920039265567476412325466832385690869229510337199777490031248339024686305865824143053116115375342858861257909878370057444120708154713958684279597542917391841292791062411464967632867236008045754760271385982142945012341957734975919809159055528536992055617937070466978025615080473907872933163554711743132052390016707176806977007782041324830316112990232891778302492842511448047707444561468260059683235301095445183271038583138323029519200392717793257107766630669314776394586203275108227681084707141662234264707789751054581133146320901494022868192935135223580052225392365642292441280597876309426334070891899893519168249263014458345613256034877366152482783568756920333511294048758720926816042935877807851958953719744197808482923312016949605822183528902033490608675191191659793713570839070134373068718414643944883583562566159201750767223426585405644829639552836518711243158146617748455385931709086834471071347579019452373146436556986321125262791769373541332894467982652781672138152247132603178368665788063197632299887045325701735698648011861821730482961613326051612725322720747436588756721306064452319182736186915680925666700923006585785977663514601593626501939077159462630107874677599621553116887936864720675426212581364411310604575606240117050900734605040512628859357260051967926569938424833705920439853746664657862214041952503820964995344521913786906216626165532716545627754164550085058368898598481335043329660269931804496539762960737803528692105556764107590077940678410770285000844260844183155447825061896848163558786453551292484708694667894168407517531613660261458313012211834877618553284881767150388294363012894908299577410747119185924403559766003313068686202963718167946991013847607722837698088319261454833734324542971370386506124867477210068308590464696379410651507873729907167861874464085497996822289690480216590747095551840985687578417079358613509865886696661855485084382056145248891186282106736069584494339316976797038113101891281910240119597640008568766773423806765036331570726680671803591913625110787912440822144115816398268455504349320214998961371958018939563855126592294753811146331418802141025091464154735314352168407182434695485028228270650603159692334355658311698826697427561223209111548978878011533253798870172109829409799558890771049917112236514135704255019496568523412180262850051424376366691891760777371610354319334855064931686367440521980800709690759610245015202696755482607777464915260833483450318475777068158479850911124826859782635265082368628543136686831727860827918540360513966310721113824429722513216148803334533537020507101248038596057360493441822172308755056664506271378504143974446323291388873155990177328271845302626851257250894951437751769101742451379194748123613624533286980837420011036314068477885820186068444106324493241020770068411295120925735149729564693919939163879240854502866199857596226497689291717440926618473006048326551048530115941086620910978357498414565034397152655706055953102602534856350520212882902500192072001910606761802543871784361481330376544490642362985139517613350593758394728308344920639505137533761237080636799503139999431567651842813296394353609044733772827374490526096501042652179922621083503875606541699138719573063288847666383352131636331255095287854601872847226428896040040947820439837273962682757100447997089867625407675798101747197063138475648408378675369563265216811314008415309754809628624870375914463315425322058505931883569781308081065262026901009134159652187986285826787025680655168004893672202305258922561640521586794108401522962098558337391641438178295323025955627761459911387383260643788937194989444829312413288756564288196522259302650769097798255676172321188857693740401285033055467871752476502282668006557549195284983609606760568549880294770118677225110363311825728811359999916403951320670571594546174008369138734518510165837816019224398468135027676796162261919120635503457474670201265623513927008071902266724288919724034818135818914540222616851305893718247174206509936362663589034037518210497960887152358685649322103010980012936433086931389782371053676566438557839627919146685495230531830689713219644322021389924881303946188335167442107666166759643649644092492916040959824938613166959925846813995197823054369041567301506574364030298245238441150574422393807668818247167319185966353278782869769980298438525126592134782691064751556324895861539764588208928134285080455639472552854922527364209210617555611001930545042754990465001444676634480215093582862217225749747183734770172212647740663473877466855531193749598027286779382074637143479361428110570210869714911693132467275808049494064842344239908099491732569222384592352246117004137055806324843259303745143540268877966135086077799876893238050533141155844957796809348806608538942915142156162326352652215428736977892837399886211757671486818474814860051569190038619910766682024790874445414164629329016505537064798502616922473445936587445034439460197542998422728702812027802016831441831899958578270098559333711276457997462390352088862894814348156043829764219059956941270496575508337292447534079886661323100010512635114196323001631255482416594125101236119736506798053097659989056037788689513628470074274865290580147810806590545775964150718380598319083731304350179508157338937181390340402557710519842664725707624765232706462993297381618404226327975915118216218191775823146930960493041738531395436495212310726905080579845494004048774566377753557276115317401100022169548132805623668886547033753509536205933081437890776436685172912279046767551115848199234529373931528871596917909475305014098918351163706345339415632822569874800318422215234902757111221140539055232884789312903663459301790030161797828146119466967287363739121269726311026543026807081344301402742867338894895053442591143153835289066916359379036739537912794797706646381805008780001330053925647247197633002616480444765271043853955873216029053104368899987793504135860473210849277547402819478977044211544380112655300035289023500968304089695868625596678910526683544847708230839771720626854837490948875993551577609418613710172903108350032865149945513005390398643578611891500491344096527862758805061845884869497489095369057615036363346081532886596442424200570444381345405858610596769503535196125830099919796573574628059021943064846247595017413616041053091501820594574929836604370428916979178025091606069452093613736094350073138316884433101053838783122410786452926817672698410280214479264436877517058815149578610721863978882363649465522759956872501551816132546923552262438602264616230565644927400735279312040316386596871113560636550473375562233363942148831575204508034009395612639090348073894066912690798377357981011167783379798315628747681112603239844840411501304442175083061174262564037480750247291053215337373101499000880205722521472410100817115312250256491753007041981891731139531946270311897560105848696679669915011584175497171602006415734057427671592995844560181560653667840886236681887880206410233307013437506652067670057909422694386394165843794251756923253099613870558522408149728757893214873708780769422027054056836550810344345881157836548260132806058765950288405613018018004815841554903195486614503618904420706711453284511876923485227575118748085022382022293329845693408551306553444192718742997662683602972855510037660816734107671782486921596971953236688410386098557588143382688601823306412149946775035450162766654325793707120926292550545749334428868334556545927735936309824337607105980454232645362085555410634468885365438456848169807124469316490899876905617801142755130964089778119282004721132696482042675120752784584949942955290564790401143502992941485821367317282821642170863830430715497645599185431237980241764449756599443432862440789307486338912933162234703695812990757750707235756777489907724567443311343190118341094383918871613253642457154655164296879849517781792383827545914396840573668351827035535283842963329434600251463546115032601103461795631265564145743331932567126685768794016813244752727905080858457761010410277082244073467083965237765927854183352864417809262649097963451082600535076340902198776607169074788715713637520484376533229434219416126822833071926018987257301367123530780321995039348149852675872698190062694279942366838070083721859431896989876182154030410399842336318639639452366697756791755311707565586098950105018221141325458159996824242663917989860493401157869958812544277170007708440013403171014134781848330288293381354424635175400465880988535958516028699411558682131397135488499111898061415656216470614187359457516600293455503039566580852850626286452820865333334485919260871234503861075826255875622957051314610851591663078238478531819396219064062482931642629628044346233594852033119425448810339100603900275036954961829178658270307735152259414501112593854206306147707881564151399240950842725465856976964982406543153950782724731318145905891130996279046203843787929533443463648605650389508179171190635455126632990969458094372366308103746627494667056088280121360969348712396037211266495351215099493407856200999206793572675937307441836061067524467376062206824295108082398345557648118617167071458113752288136223756153811078374392998799434075284652122175721213216359630958407739675505736445737322674219276168779436609257918813962235411131410171680759462566151732390178356434235443328762479651913804758741805606167991046114771697845449496040257042277900781833998709167309920021436024972408274712418033488085772825531989747145540219034736810749911905278386093172852380300068130860411804329979845895471954340762680556175242299424767166467624071312499524623900265881218603418555667025126238326678297488988425310082898400715805102056598321301398287111541537040029100780072543602536696022265285277952823937141397807254513266265663398302210819897183905393380259460741433267904311409931100162501449411952499296480490414121349539628430095890177251425987325695942791740759459306234046434146351414779647306185048489833947468977940050021376106464725670216301578458587059534341130449844516855701478213082292331694094559540823536122796757730386344775060581965784790954005906298824009764301642095764560636495025207278345753408687025991528093064077220113896612927911138825106143281654945637491761959207856395997856694289704871434911848549051625383638071707293501556847174555501607073056842360784267113964081475836696168541929008310883086582162820275856638602895522702368078676547102609141319095780525310391698412256046106781048817521356467697892453941146851732773060200370069460329419600687565443053604163960740055850965459361051949033021883790654334539610812616984918655417745444904215977442462463656860709382190724041738991067045465201451854581849462974829421143198169392881141504667651546772884030764595992678102287170964844621549086353142043234366735022507701942578153795655407403939036726397709084055552299165142100161604868722043687414467853275397620820927088875033403989271383842071480759774847372362594467887381937529345090642763201793499073361143587068787693653992681955945873854719109700763257079087970153647294410019871319632645992461171139574796938783741827912102875275419655939601872862092105540754914348073154469785008090466432020063492611672331263922705388353411932108225546495394416989096914579741637390442347653944843075107772472037561863441241267025592430581584294188519798135367435991233738407888886572596771152127602292554836394033496279275953150064964226187894661315578577478022976008820422444335670121378025153744421168870176490237851402924871355521200222345657729895765939277800253106788359347861143625028987204204657997889730076079813490869756426726494148072328889461788893166685180466426236075468310927757674403752221143086399228465566515337073506669684113504275954375491351619434562611172693644151492222458285160320693700300654264133551160964410949164907314764731238278174719066196054916918476715796539664107681434413318399662198666499084934614314563333032656628473711220203396928008609726565999646990542099180605019989582196633782069186459011954110685598650968242247155254779723173208966320501706481130288946657478506836362981809565768754963058931361597505484464747618391472473371416839406623570505427886956554325585781752199050133524729591254526592749764030583869350943653954023723903218270950458285996429018892439763719914941807339768120146219964435700371470970645009408260355856134406281456206889908917950441584237469757219656138641635973721263107730252949771472239298567078187666142434837352421036042445034689690932944162916113411793219853623839051794063251686234608836031992287529033547694446029998356326799569275492791625526131350878100342931667996195569933315065882933439398890922345690277293639620580382621832724279405635758277032458499388071171417316501118306495225882329152153508010476391410072149815759343563583979791487287286065225621073218262876737347044798545636623235612442131106621493621116126498465443511412805275669509961747826149985757103079422667957774487646085977572909451179230799032147589041157193169958283853455831286269106980679206659980386325848976630199458702996858154305464326247401720708414142476174062594724260227529081064108539255858057485814394628435421403321388789854422576821735996542645047549756130305726164268359724425696773119442362516939561961356224068576511352570695443737464880452020352309975593532420038709682690378170588051951470769063849934006834114337714266588510400983590395763408874163645242809861984814406583613952259755980134967771181335163175707004612382074948684722368533135542796170101473734102680163920918271545438091938196817989069745663449378994496262938895438986272205647744683764176356574435070129720218732505666595679787358733147013381340974551371691297133425015247367437643576857735861007952956882482395926704408056640353046059772330001715091892045737200095367838732626822287541843589135401192507642161504073816285686109057849641754279839620693663969428260226529651632821266343042110195633180899571802439998930085559127427079922725238585217386850966986439000306455829221233845685150971321770834293777220315645527803431308183988499516325802406707720255154810969394057277076802396167553563364708028459252067495467403098976775838388745015951925818056279465384075684997688668118397449276438913431488589661123956042033019786700496254987096500993418759575191306904532057352213959265469990636729374082502428090154789469736783291969936029445324882528865382371618232401582645625819339873501830659052851495900124315157726912765174577563951053079273025305718074457497332587609719956921803053633006571192358432739819526927542361502024826541064344009167716628550176786126375573983505528100926208802584275381271150218574119176362174187998643630178152657178568667188169805312552671356162826738815989458307119549566983968695200091481494895662433594918986775780285804068104869639643954320568528670368403559626012041451609449544156213010204810249438865709203912098088563159815988247604209435325425232795585267440519654045370757815910274423543315478705216826958488349041979465285382772970636587958184507325942217113741604060728818248169034977594160201054068959014283280514747921554734659771733493271724687429053713326782442904063929926059925874379078542886582692063353410538620123810360466313564512703894823697517375331309695420989649336014805820990448888355046371670410120905110317304382029404069620908223837714623358837466356002496783270324993709246703777314987112726764659347898165942370056567933430582215231090399395556908291242032139958743707667609661759326456030799206768289169828929417563127352631094645091928679486305374623755873447021474943269376561801784044043640623822641773746826672999663687397276987021117461417620640728581722684254175792545232771448723911066669830419332279352379851047666668153442867673298080784480697922475822161253977810403878822001054427475370414926913914681462010616406447365473892700685483641883068020003549656303244173213919326870362253475100420334362552337817812905591405421520516900636448451308965005736460637486656139458729034894768234472993313435570533104106530098550947994658102039214391208490269267679337369655070505889786202172865509451346473198574434567113639275575073648364785780928780931270514428132057027626887457876697594910989281344260193231368773657273033263739885589480950050495551044896399975227693535315225162998520386643505316281985993072162816025543386498622525136622628861337991835487132847675035106327809955121032082378111220341442841165993806860058166036441340753901392378764260920047822951150549212446983343547572352836160788905478004760179640572429347868177795123489923904901864241957176968370462350447898282703080089417619122907354412728853355196781044427875801310725888974362082179705149999166475826342242349533495178937225782446866153143887616133509532087017607732444714085679226161310065669282447337897984907287212612969178561050999830164767659978503058289258714490652893336465079250434352113731834647824902235811148012818139958805376775851602279218330581133475437463519444992935425980282483903431209222749338519116152880271799053042478007763530655214172010088889498557569578064382914642398310740543284396093115692457232046861136161748515720305369552401969344985300057191453745477577804623544766504051278819840941520525546477653906504773177656368721881428381249618334744775687076121824207800520293577142492106938025119269702400025659095339248355096082089649286087677989473259879945879580937547262894648060222776221466838998553230055740274623502164142736643758395348691861296144886513722901785702524134511016427349117308280765193217024580846493893324464489044989940897488779789150375107249615038439398014982458248942537551903114130085780917577497148796433044655869718722241069253962209240141701760941666820345328893388633490908928393235633940964977546740285154180071738360307934728169708131322285672190986462190303882577491632763841008624315140301969535032573133217801956002201343143685080396226124537540904586712506905041445411665592042330755674300728431991443159563770957569566267013371372927626311954240257503126252135669456249807712383974978513541477130036309629716611754368807760386472478389840208497231462684800303547622087686844197518318501027279327393459161350852251236026213549151363818289823382521096523487301738991635298205786338654980869841655935258193890904954796503992917506095527790270591471945950791368572649301074321185730550663147350379909472019912782120923489700182851636713225667455852804371361811466461938391129299908958952695637280063939386734524303824614140594269449384967797873424571337243105045074073055886452287641238782243840541754988378911385177145966975982178809932192416347967225317103791951221655670130926797062108507445839627015104530899373953727279640154512416769210636063004858469983422469854973943126916188877267572132511739211466890682770773191676124821416352275868725056890939693742850849833783629887953636928074055023834038569995916459831331520213836161048366427789422969850231397754270299174676250443777561533006818262696934338602766698474421517433220598854346420563001516953188070515684887253390059927438122283810825213835789764227080095140092609102010987825850405975764632654115326341723092155584530862071566255617387600683799003069441395447143719079089262290184620976838884115922460170413263463699939200561012389262236048508265078827012549267625290998094638149089717419250295743250989838632153649518823729838635707970355238031328390034832098092037083052134254057246854846967964547243193138137799880103252606921259276975028238625942542618939808755123398703528302954315361255249533878283547080328248720167415880010589787546291970079015447983342553163961545632659547607758303097867556133065967387904868117293558276283749139674426781046765997356084758906808781632655022336398350301325211204440695186273754779623362614928744033189411042551756406207656755765391569968830275847380525445729570759056295261432733639001157470785082068086870296528574894317128277390439360908712431549165593545309014123923044012659713240268222315671656813918617542142190098656371841118249209981431775005585463364877566731654052977270602211134267185693403070482849105148776563882899235191970801202306765083360416182038416197230200578441202688047384756911717234815539231472484022023750928675220036902361214782314210035966174950776196457397993036183344571172874572294296816140263483099771435952356107674293730640299857949419860320242774101305402204254099828492731704444929636008050731060791017483713388026492256727988876049682086654714169401830990146270505532009962836827675292819458064111418666444400955489082221907623574266257132319857718358789651476488556220652813732391688390546304710183621068668525663946152490036420874181517423618144868987569799007595800148000810887451279597144419752220520922433996769505856719580535753827855957850070982358809469916023661196733565769878214821640148643729718002801775290956376209282429754111902105243024846921179232478505427779009858534442438121891798900307738436555520271955226144261158404931705696285961063831193404697626837293986277902906255360391956538043518762530339262934859892430839627992733363642951839276604017672777646307638845272242829090586179113416754823863013470084171323284298838286427138864832850126691807831808726016107420435656731759656260402089978578521500334798272977545654380184856574712748643651483554720930656034029549812170102245514541224522907249982240744057765163546091447530623926286937953442094504730948552140407658225775832008729290445264418003460711034604387415257903849568712127339492881159747515508692090947164175801203526396112516270756045532219009675056672340194027394823917875687089847150735319317161535414653388316623135637452374081827461972957702422178855979386772111813656570041659559488055680210204746165178429763097079436433917834276600801925111811539406612782129352105911900032021809700268107140369124166861485155166181926923729631110719755611210714118396759944026596367740631148333565211513065466632518383616382202373966289183877769858342587465460071943726120334675957079509085970863900160318327240374229305444711022353504417162970170202588865588649486620486291949626419094576861257600448316989802059136527769171388570618406863148999467381507050020354560602829148095675469540940080385396129646793144218573186962318578082792418342360820550891646992539412710223635804411307226811867080505569243134813310967233167460375204259023658869126148524325618353452298137404596051789930967948616734591021097573255657446876057214646710439591914885082271900362952679372827106823779262259487735055089579344209751827320453087225274437457608709833083432804834996996321793275411231761287617944443614687026833080915155160187157472549977153923247016748932988255645414189686943641636662549508615540597080141537914045993586696922563164605079820401511040533859735358009364736868053310261411959460656012942915869689441836018158449063852705002106818017047765977679418665184348849414174574492237755673349755316272824140608967136456399850582116530966782989856168822830375196070473575156734643988469525818654242177879859073038542347215407780551233686599365160792555999701491440066956882019095276116588020456985236298010535505938401543091483185970919467769377621764776919514531772747216224707463309601382732470325349384182987812108520330313082802497656472272518989534241239913381560613766433242221933011989248133957284228232154668380448277175786407064548755594326284936374755289548305082241203187680520435440886054393601370680450069506489855961174072003616005438010629476042303281223809716877308235258489355100458094942321664818591265118780349842219884366057258727928063149154941644697584973897943738095786178616063129743003859176164556591934272612827113058231419839445418054135770084930172316866400952388169211198479611858015385379135099358562749948699828056935231645745444147105785711559480589204331646093664550682303506977917696294610964134506499671489919856948263089792867827714978757653767147442292394523919799710533441768460665462698676579821865481411632585786151458061152858625701048301168918834067894238733194530110055440309594324641786030363493718101554796958677439102358727264851778174176160748700870286870841368288520590871631910669715007575026570490788849426661208935559212989991856005105141221296630429868624265233292299364578136418922934785496354654630877593310041901491028006003383960703504239758938268561857510317241882431259085836314578225773391830116748489153907639783639408209966637468646940404288262806382330563649725014301229998300578049653550507772544565441205969722041175903922797426132622642471801510254246419946524509467339503830589340752799292754072475460760023656859239556552654831634607932496565356265073357095651548243499491541277038308067349861519546965461723087698349661628459606873700854095505983466496540168223196539794003307933978496557758643380246320780075734645993013425178049523875687842016694674301576995441559362032773462084505298389418057564586332309295916795857993928163207043006296914664845864010467360690609431289378673345375023487447690079834722416571840313357772330508040900203627130760202635543692991303324101756549867666811782534688132506548134222506530713182495145415072067929151240740811280653353706905815409009611788829409842620023702157565411118970693679066134381186212235635220722021396114210694990367662475868460969640108837256747439435198086241672737395636839492633097287433120143196544322000940746439640350232469183457588386944246750135249585527855370794442689130875109969816320349874342651919245073379550510840430908956440771721318779566830241909073489442728254213943480147549733945280752036655506583316089110652087177347139213478183186084945615057993415785395003403514799688781752635844158711724922770303248082809772065965528237492940670065058673930952449499987999216673971562972619747470449050221457946638208668714322585535199114941013600175758919971024193517523593631445310861148814331036453301096628340908435215839778659174121422435692364159295683944761191240535082087723311601310940905994463982195096733862441336361023683700712030618806371272319630863800229203005973883421137481480783916661414218188218847607565596094157060318232373554068193775655035528488703562749370679433109700874377982034657498225728913011137945020808063072374883351470954385546552000774594409357630607474753787694904541407520673126941947558607142935216036821062974594541933865052007599048161341131143094458058010328921321455804097574376165823246878247234910365869358646362346501500379013916939154498050867890240323368571031227077609865373620216453966021557770042588175556473659038329298748434343635848391102858134617686998919514013033968655061933525260695979051185720830041625364308311632168552559860568938441631888978072160670205868504233152749092673926731169158591871835004264139629936850995788454915921057247121263866539173290205467507998897173845615516418265936129776113309614350277917396599047036502092433401687765880568276432890657645367292826699360786686810203867964000075863890347064412187320521050351512403106601706239509910909996963694329511671587787008371389589619626776150600944138386130546483123614392324419299428816537235998770233235206726235751108451215120056641842343707819026083818312744172760007955768426656602437459219833419870665630560364015756890389779620789446634719110721051846614465162931941934915875763708007719886929793161528676689887198797043800293172259262469769012466279459772292014219522504817078080347011976883998621089999009984089191377817332050076177155909536657305748194214838022713760046836582192493350998779139844416913999796705503100618793084119292341060926488193448008276964334250406603406218544857490099282505607870541481462866249374432287115539652294138043642898224414626096247861250179633479921082249546078666459896044050002086788922591675787135109188755535034680914204958895170261195455809153296661859786065361007854797253067197488056343579876481399629280983111430292466357411427039225999887115738350878999670802764805412356771691860569789842557303721694290094169543246461182340137773849721449637180116963656353391393478352377864372550757528531553859202290066297748455199085453118962768240942783497063349494280111429139464714129949182424560882595885707678348410437548207444976575734685073574465166856558406183937119386562393903375323790613316218477539950874546870217828485455730038286585181845200361479630962148879904859782349038236135930943353065795056473355417859282733038295267772511827703885058218949393910199177736037847260984677305332089777506947536144506811363521168461322788735916194825242921418872927430827585295489901507889165187468835890542442247105996191335497146890293983786114439671315373974899673217196907158862501946101938963873339431434931204873828713792374692886850257572044638337238356519430004717132886998034990347557018253034593395687737849498383841996965595957529179074593698075838446604657233437788238385819874116153643347656118729763339894938853217876302920301814973053367684014304740727569216073408510347311483056592702253557058080528076302262398421250481589279265402076251219091993433104827628009307294251242400910667612481236723544736867703694399107750973967193475955888669735383523143014699027393593206030627370192786170984229221598926604119696421820812056920696707510495982106587317894580160277874094375428767309580060156475187624961659437163983506398693918913767217432475081844727303758022053000684312487533455346408274440349418296018696435242748948471722781856674466597344478770306353417159742580231231621366688571764616554314591431493930680652495257770202624882232513415850520974385937827399755478284326297177017633047941903510244089123006769340820369103916743745520529573424200303045992821841264791412770989487923332629868642230763327246521966792970119892792870309962077363858991994480573690049844258773210174154383661919926128347697020108947772143106450145105840981915522251764232884732265499022131258603593874974579183660700455887889610002771382773283235013065232927276280123965975822711244182865496854261725369543582790583448841828428475507532882216376259568562269416245847886866576860456244842431855281107720135086328827628479097333479913050207900371993324627465409505725121477891047215190221551545201740222718407743611195766394189615668099598881048826296983969183939340910096736072303495966639953430667372334096726917524087083476677633080921923148257507921470726305757974758949000057948413842221135102750332130759864406864613522896033642896969642093605985421793483038680859476899650817418384038370407896502360930770239019025123429999712454288828952087046533562462669659831296034922915525200610426394744843744222486077654378556048353787043811476482361475750912576472753058980091684990436668874536335617650554785019942947118172888293146826781530568190067808025254326188663573556630779050110625880478490616366159587969245341651365494944698109943634742705353764746315281168405776282205150760750332505039716899608954538823071619828326480158590010385015864367883564604357595324919291946180910734485073809947049113872723700269631280297336355620042756924411260597811641379946636346931009089859450778598016024237651996028381863692252345010804755653215940547575857739725272026959986546874769069096535245025463479705745216970119973956175319645271046445436902863282079670761199929240940586185426311793845025623323560130651558018183359797917662305035622202623076853133177638463170371268576560896401415972567316906783989738074676245283321614728526635110665654112029616183141695567750261970133158931571376673599699714787699992825373154931743222492323266765189580444415313241510963989701304960541068543572529649741860170725065785391007085947293751075680493413953441962102989282411214573538412274696709079107784701731718593044720884660869842898301335384643353045595332297990258508522415032428017460058455165278264585192954867043628977671851583402077801170756708665777433425306976201616863203636503596937440862635302776473622102204952855544620041168257713049633151405782627001187984545094743402926684810062360830797177293245715366785455742160772553333238559251103270804225614051756545522612328857243360512437179237196484551018806829441819360856053008570999985431038612567439411611641576342436773019494322038432862488472579081551822777895655947960735222930778308305228193657761769784029154285604718265064723271977682764917741685110766825353723476688304870015109379460846850949248906047432426029148091311804895302948534678293430696656649821697521424247584293598927509218313082599912243344778880715262900260403300719314309415540492661250878459939746371236077493007852644705259197114166941379150029692963645106344770309070244422822232968591737003313417044516715006757385618346204758209969234251903967953333712356006477788496911494233809003583608912527818551151598142681539163671107979510097771778855481547122438061231692202456343640536007602777263276914293404306438291602452908465656743811024475450375122729562370714253638505677974232321345865857024562251082608524015563293708480836920014031839544537705403802877378046839183859360337343472596091075516356222115359905318883829972856357581004923317612366164608040844407697410977509844221529032945465261369839860430595634585924750726734128992512045780540532443777291592708411930685385255173365757078860245180832462390769346753694448802867884557477024298798044420140795216125376608163711545595368342692147440090481671030856669362907242693605777167418582180885044413351810598797711832586294032828548278696067614885280961329141826272494507324461995218050829996426955896363270276449051725537245356805530308511396235163783727224407931473547925519112672219735001306121928311981428039939269006065844055800064054820642144878371063346555802848116846802503222178543891467573334165162124766833890480917249354505859397810519011580601861753782625048798487786127778009484380771330155079431164606890322122476926377077619532538636925764662856930365103372062256128125573686423818520098875143094866742167226964930348520622641149582538849309203495221085494880704486705126709176777525050868712919986531345319244731152030340084292050306013166738451554817293959559715232611984119448576846939610884042680152709449491592838705121973569851646886896836707554262796552461837014012073572724018346069493999092858610757810294509979357802612509625378381987508478022555716619824053583476088569458891994144498479260832133703926671033591248912878864325782781691885528092249020701423713836749485856842491473352827147808667965713928295366771767281124014051396995606602150653034497358848655913414329922159840129383279499892265457488997079277109540390192976116774025236298446749320550355960023198872581998215047900122342530312402895652171451497552310781790076531064887691468498215059224416615775271314405068823045984415933125636483630042590234905789220036042624979467438356747144599480995797784804191814215134458323349340551026271013856253744967540994555140925235256072563695502242117774725077894165678755650844840707029392503185003155407365462424282951311727732749734666091714483059894038205704170291195227195003314439520521778397670911119974860788859980255076653362357966435068830105175424200383690154104589726081512217675718995764583429235541811559236206267934183987519794746160539967423517833094842360252897207191227214440606602412261868978555127267841773131774875066903151061931191087473021562797176535183849160391352028775040701377222095933852676315143661412630300284353673271427289097845245522217569780210168558710313277762641777082192883364059523450858038427295822198384997661960595804007539460718415520625011810662015156234578173432351270206475625813769409569882202428626814884168540937033237604798425472513325783195398500260964727805572081252854350088537219155339694528145880311337178005559021166564609415690640412933937555037003130531621383937852533258308474951034144523847094388341389340015645896392922835563931510620605900620033035192354584172053659093875599952408695085513658939856457759370864025919165568693255043638014133240296213666272709036230260111524647402710087118853207835057733514714998726007046397626426234881850846420206861050108713795686967049406685994055990320990344273582263489203205001920083953981793195974431254597236995032614154934786120715386661196625688044611441738422768627925677447720715980870407975329749238257973070507224615004429696988338785693448597914220693551132764678940846483772455608126917111540133676022165495213222165476699641980957790136083628062873569683841062420901968381143308941152988632082521907441969150209176662346869772717455579323157636969701096974359404030734994363476001342444788133845753460130506925792122306770395403041656983321243442898980591387855647510287503800760677924420650138165730291610256784417210337563232451328983598901072234658030822725417485520150524878280598873346065045346490879342986956794554593137178073809060404217611802070020625900282260978640216543747593750933438761402998006561760738293516539313225876459567421877572849079624376926819137065894035329454904562293648102893474097158550913430141710422498489402307389200789920363160310570620450044227067282848168547971338536427893436845221554689886889129539480393467392651399551634275135107905519864643335279070941477247732057865249279896930912815629910963580772065192311475222062589295109378172338358961662943949346656345571056519227375226020706827204458764960272407103666615545397709016710826187786915073727823014798553235262929119231931105595638423891623154208351976710245476252037819757767211571674332892168181090131384643354134376956106218045627327732402400946290829807213537878484927252270233099336625074762512233381243158121492262617415175063668061586516870691854673665905894952992917038508521687481374803673395169274999681613345617680704830429086900463461173033154584234121240815717051892772575874931480042584630314030509463893880717060802144953469485795966933145686914096741029418553648321859154175930433412588174859165876908826521101577507408810220178998426316700378201536344274640099578929574515436385050394849767040130553311131157549004775335209888168611874612101919342651744951426483191023958299567130463822085998910866692489908139326184203081619898112317308087527948682558293958570848123364858826483690620075319634902268842730251241486218988106512901244110628133431584550305726393446632227937793895980778116474709689248166930394172909624603007892656353525299572349292161378821695412215772494794421544302531838061228857643471107535818482042797065520770691972327276436805172794679675595949792383827618149314440541769803317929228140211476979457239241806560087170078225765358949150616870727225638992583213800996034639195773400345277634565986730839864241069611171761612896350190739345135325073898404320401026843768620527356154377932982496543894106587375601963453497187529851121182499882944536262616417193125024236851630768038298977308724721951073919588334963119034516260076775411525830228867798470876370004619926025457471139069532286968823791233192142062486973183379724505287180135499499054573843478441052827261086170750915512644768391407019246072555850223454784000944853277611419581613137331823479348124612662203629155108936690782033643241037977490599018981762165625206707880882163704462401292637644644997291533401862691091959051070332636855567419768886737573833017808080103601185060952585565868515567056798225765334109580959669433592624561483102514173397646067813447589156304747488547050948196993846279520291150894201534063793667214738198332326467061311561369532467068782026721119298215267902437979174422686513783411016150292794819208654289304141035409504029139954825358064538649495356593991090932104932604095822434416742851408000522041292984404994600736477922914310499579291373627468828637944996468475185900230686534514685002824962729763670073176444385601175927059443206877862539507031834311719025798406747744519376452685174599373678127584880953769462430932143580213463904077587108899354122411200248249718871430696704668440013840675762262038779413058640858710246333105913335851502713599788958749222674267518336526218410034553024537175255907841479773135384811088454204019893574032010582632803145003431153870793442614995834419276193550257326814674270101546496498350546878919648779587957666410864504083121310940876864222964198290150959058971846913992065816310786711361673550810334608640658464065343190810242523938376520192821794779245171244232932602441867042441700304785486972163769897929746113262733230070505227163774678739877022033599760915402978922671642122223822957370572865621484596417647106323131823608389975910291547790713462492253447205956853738793852991519273650648745308982087127233054336223451089118884819217042052611070239446151652775890442473359090391082305642710090673716173334696852799951823850169874129632639343253495605312138262362570520866513553178359530164982070888927797801468842620093432636976326907218312197371667749008494235512655626377047545675020627559080512890902195350029165106585707526847251806175302931385865328185180274209038960549828985281930489622500911685228384424365152344774230453750746908480228514153330056147095712082154539662552716077933308248662510095060954200805445969897897963361252930497675842973900250381123455291358219723043052048248100552568480117141691557916891453467114123165655478740696431228670110207447302825128467867925108247771335417826288254822480663151889121413286701323445281326694991475326498255588281188769953760088995779411618860656613988838656919335550227305844240282524109296211369676723081658348219149259965095431388772170065170314524039273378204975361603014208241290211814531153542827844913153641033523424118916594333720012268527552673765096379419087292309987895882679961577271660541639307425927898212533769563497476864906420889863896700962950546385279635860064726016147729693424676143977655689618010744208095462865241506250975545423498756763032340286540184116045717578232760187582588697883804069071821861635987463966625177033427091999643230603737843460812233661317265185068036333802566404159142040776742482041763852612226270991645008575414720895793843362854173916896782079375712210191817805653537786376982333011393768708508509601822288868344149148011696703978395358111537217467466693463577570891082964868077506331843103618957434864639760193905228087305971483811113490255630161153417373451018984353320722137419811527094480650112705899607798082589062035283104558153410654222891751698092387212233895912485484359279216840669040284707315037467529397229899049054950164056573698417458728617581506453721193618347360142181100975818618907150893653049202336340870538896710919045275138406310620198855085561024045711026082363621248206828525537915969972129593834686982218148556320406917082205983330666778555250053107065908608510264912608227773516034420689779832723149111436519608129860843364343888285441263872071633197072597873121024071731034072961317891973166231180522766787289474211737235404337698231549641771316251052161044632478624045392673961506049845494945567745452565778282845604659738648701417076408950053434192608810505514791582087387103319987301334690441234890997424315463044322954475907213927138550575738623610612632323996845114888065233238555324133054778797177568600763871704029484830267319038166288039990847974737668264935058033668368302725611514218331237315321674062461663055914310479230653297592331073623912591780443236440368988111906805805800193517768807034550212393242124221617076740204830085426170162187028112741798972554265650097927272033960517643838872713569317243716328555101434599083954977316192721860394472260398919514223319062504284041305628089761984997082109933719253457550660954197883165927532694024327318228137986245611065934592057404000040928698741459676833074566857644710587309187467691050611809102133782852312674889244716959002798417391164285398177173078317125837208463989657857565309064620772691930149496490796636223166842054956970950935167719288553149187295630402710572001035459043081567118667035703780931729414403111864576071390769064194124814584522853689397000114242657308800593132756075495764327836635883238985735781198389625849516590984414604199610599928036583073920955399097866472329428850289544777094557579812985531984997477261526196654605684640971358970395461517491715175984009002879280138481324928435623269747374538796164595950967980125303704286262904862983384483619048680030242632614749594565551999594426028698711812166194326054314220203020220828869764404651584837081961876086432603891388865886676497312218004254220563661468270357250721175740507222259327523887960930235978580344258261527916155515911585151269043007486711132707596441368871563332749017746256440848566500922292138521459761164636084850706428596273974785935962773796262404728506994728346945726848175903224252446151673529184427434707432581525728059549845437994373968328486961175162265669875268973010862632793003981246669556078786819253434070551845139435526048785861086773962258633597203083741274150894238227341231850053194735129887575455825448177293885754175081432166685826578708823144516557500793923325865237204579560033586095993995277258967989165994947503785540884144872277092690673963320690721643155512359878126770126445405591102738434616068017786195137219177368410307227809129349625687656563122442176815727078901798537778318090720710593265822316869481815457873994608643744807725052786075272433664079190278917680983245125064062573015392272595225190436985647695357709609003902144532170162845658449901842554448177869714755035960543811404567776107063916606337565878209064892231570277612500097481187584225586670931356203092892530592393211218347667563496405149271642124128586711238382573251328737133914980810605246528729927077776806571320852694020572035752302229605825961039246125112113930692640010938422171569669480085997789718358863646036980677536219256363067794267588011098410331918473114114586073382590454798267278957417605563323589085984448094668253663865251938043444668218098127202210827435702963020420221030515018547013879166918806558717315448195563861119944719665434727712967740160421649966675105958768449406619936510753274679716985996855884315172726431878270973373055691218061240314633177785083720400911509344687511686459473159928218476777281098243535369785165760435518938335317039627935202760387920702000884864736105651083883291185788121601220444604585746101744763163657457599026214697570496368125116068818714913724665010071380979909047610499879965018041437643552637193846729578114647860281733986406634284602840866417619479657296177604319242154462411539906478641536051279668608685952330331450021826367922998348863170363523712885864130743322953585398112076344358022661591768892821158544641905231292301682349966589097059047309256604324606286464586495046594649612019841271592321745681223828846392759949579576261849183614168779390416410266213745570665260956326281993061289035560183939657449469923853827536635265019741985777023808430880808696838130139519333188890322120725041974023104735202493114806980381388346285432588551642777400908917533620604626023848305555636946448880429218877448766388246031530131683874490037544574202010668536482267935633103514486621288864068658042879126920026471170411277923403835137487586610844265560868045852556401500091114418150649638809272098620199215987701809487212219823320486106463882507276256461940413629970635089414208980034047057755448748060664398660911199806553666812029427214349887876059390729393364523741655085271344671982085015058175466175385378440214940695519277872831603760429892009004661126076428818013830750294470338475493010497632791616430249958744052563582114075323744062244006872109704399880823505910344355201225000152327341503725387530855755273173892663833367999760076749233765519082128230891972627012255785107582851022705039938368495281432830114814210600932573662373305831951928226572646476011638233197985490259611969411765991531138494888977634065190152243575337938945929061725531062329716993433319664312119027989675482396282789101680084391844243529867709056482276564645586922394430742065642430282839276699508928075760888077604060997288795720111285666017595116046730957333413430657734596840626232355995656255160976809550646614495094393856215830681755397249512883130327935371397258651227681164553453123764205824974027533885042397561174357664749313642168203960326569010134784470388671555040173784188337532325434328791972117011896177907798351911706743279124296291093647832900050259995902844281444018056111099637612769065623946165778880895177829665368589360607151815684236009450597969432413798760189276618156949991012042651612826319424825855831434898391152450222579569476316237429377698870529651979695312860876433881806627691324755708815032841616820805636627411174991235085359552040963509096944419907331293874395646731400438559625653404132527100109088770135018682779629272773205529463060653541313408656312848323271955278514208324627343698307154008100270926857626082075799704463730497025170576162621458707180688271239791094982488324650156331059261658166077952141141787595153362618540083232118518976879542001908162748025193181363754137830046064448455210811485038108597197750110005280226082035109493689941445011744596650111824946110315667368154569296018220303791445268339953534567478423277070190722382226158209381705507704671798586838456700576104265939099196998708676488146429628819899485196335122252817838381428482709904547088253825536221290023247594888509137565029180379717316080873452096146896714349182212593361729480636887158126332119766346280572869842222428600977353415244330109956042512312156195658455365315172763808503049724898170012016211217573474760167539752838669147872818798199823196310128596133235244076591522061741793527782877375611809725170521377109062311547780308515080384856058726379040245831666311404544741983906868403154108916275282366667795838117254348640639996282095503859317596768566917866491387828757923812129163402124007308440671208129463537033240497840076015111663692752142093002126661063792443180550486690575674331955520907912690614491706304426793965664293538054889845518601367931883331924130071128806613584172884016196680634096696333417043014273918873397489464779034877066007440478411409943440123202837019896939622445475950072426183139799677468631907514823993530373825607093412223786591669711393457244021326758910318788626041543516309577726228337388452719822124163660599431123922123928813121609511166934573439065301174250160131111188649128460114775554520432454885385516378491903486673084621194739613765594146909787118795439172275698573514693943754226461392475892858265838580014616409786978933502031460954167579374281907534257311080570071724022217473806287510529970957271992135629322720004712673668358577723647684435197312721509566700394699433973962216535552193940952013534591487976074060547234697097765157312143904752557905457425515039863923384052453388782207062109289892879711523723195503655661054295408363430869809822038723294028504866392509129082316450001628006725169232344754275000887855677594346290149343032345611364937302816136749213915784815700958650990501591585282219645355017451216592825249514635113652132258367243859256196088792119630338925042007366621571712733923286741672538290544265210945254037810833931366072615191684605394911904303777438065073871266564818941664144940415845394647698414291312435254671081044464822541297694725398011581676157337301552112403911156767524768011611470948246162340573816172980020875139825880338365774116065867770650633180680298773061039722813781306719905299779731719882924593030291011233180335878245466325657906956632595002471888388381977223141077980574302381180314709304975919030073000252512922286882000946589739557918973015843560268778081978515984057054397924870796652029640933824311207511492571777244450149904406780221112344172763603780264462907676751570935593580825181003507128971676667158351549641827381467201960189608385724407378031572326500543631548836335124172807956409535975369090735490711295784690235914792592375366375492022001528673614950295359878993488086828055972001185732423319814828479992331691321067495810754405089793422769577989057912257627171841106932944029119951176109576109678029301899695675731873316226790121019216470900192940470537269529708151012708206187124040977070171776121435640356147128730813396517393125214382272167951232574837158756521622219823490490352287375078912653550511060155305763115545253394368979733822951017688028081408349588939575617445756709920874363271285514031135630010601906004421074052413240439523757368466173827266277876275001155188930337892356813488059782815103674485406757145083981040348738637459369967679023505830349498562240110217630958979202173016583117045868426686213267598198373806565505804973937050494370436141518942293911068911611788241692429130713627985118900170131230401823758764995021628461308422363690901089642385975304092278507964910814106360482049995956051237682061493489567381581879848798002849345857867220503804045057093120462363167088222231373156780129812256619764811120222028337161812728143614780943090123669437570763569091990593168157658749612458759027798818296096672012515085368393335647623654127039192306424432250289650567397922718792382205800137722052021799223267809150459989902986047963560203255292578355264630564083132341933279321557748988823097606564660700203052671963289971602970787647108746110018721983305776319056304556021945249200486371745497561335934521916471016206828967118932675696484550343114082450552097086420795242782986513227802434504252438448366634909252959707730459437118997060668213571847651202385855248537173125097083052065471535530935996297201230386340924051756767206193911263555595017832978141172697194300985976714757426531927590053280771644448881656598917018469918092883752925222288317017458716002507229487010705000591540593506217339412186850794269409717959875760293359847035393870325121555284745374025449257514039932325969806287072666756406429950704870303641133993729625139836981748833127263982055125619846671265885601927079617885468705864054544260645099102193689909486420191567209507471778357802103966857856831389938720584342220534744651209410700988709938239860111377218633228387220092660688595929480325592101010704109136209981639555692877873496764217569274436717572835081519960308809867328226838819450296244927157362393418219309597495137856964919568590672203098248943592670954130355644527377026072982761436205576025033430440467920546424815640723183452350356589271371389932648829280043735347415577388148643069284658255857863837159042628016920098146974676662264560841890239857322776333280938552983882771701127685316334984415413131787959801437429310655947702433832479832894546803868597336599574584540058228923839968821368241368232821925205992681330725446161374564135837549290035835731759085459637753613854282154990597590700982481813032153978830169331434750219386116756121430120820619134378796350653871783131832992356574194309440298572970526998654439810818683553537649403211132009364879102953454604542524180269363347351831594735533929634857964260718219405085496901399182548486827399531582056453259846216134027850098900383706004800512329633919604372873804437451193532426097544428124134030989388144230812632980950740942594624678177561536327063734279450850306982346594735347859463157357091400766763965212863046719186990282944523794853319279939166732500502429255441256077971810583458332003449509049542664417756163016306605804756751585498531325073595622997301839586718251906160027256688014545729462543054933093957260204504901011199054441071461141528970577917304825758283263363731639885048745889741383784000770115640149744406994642078006074407283204610366853182640413028334781407250103993255421635945774750466724463641573465372044282478540681795554324614849659204340057019773612843833109450443273458368029483941438914643270194539517216750146481412122024810602071703635257314092766211648391685572720810969734290403347242622621941470346603722169831002434769831462644202067762261797655851494810959332654664685301910050404300017510121795689162263475866206524803108211110750686737579254554615624427331936859103570855624245671832152351871543148411464730940421224866491892005328494349233466460474574251329569030587221578305240582507222267187698725258037238208342488104490227871572494535925668228824694514596254039382190084374495695753757111091559127360716595949918689346474698189294042053934973136039026177400861590555351702047234076604485282646112671479650436178679835886412859170035407418383747405022163635741341192286826306084570715291988224072551276307400920133201136317342424805741214134309636173909363219770521880319962555020676555528490453221935327731600661376175324571553160034901567134062796189619480201397499277708208023589150414947002129108994436412633845447701830993054912477467556722293454424898802266532698207089699852187162301994255887174871035780882711211752869816313339716303862068703334804981782434818665373498416312992862315548050361056121269568530474314415943328345816415666646969204304904445199118440583805094898738255906713673117827503268855142091394083456064202462743078790228387952574789846110786965619309128527120768251909703658492011662814776818398234663853864342478559434488535312275136104852804839916198472774116876791285812769738880320472546916560272345066344942142632091374581669480613735475423289199924245768715025955561061515163015098705175722015064587094869307856559307796531578374685032490134223324796373664969554528664890202970742097686070455419060548901317886019671537018593407068296370538776278749619011902570749458641731129608733898380078686406112707012473510252228705563825979227266687288431999930104965955333786619072564512083376097471587321694366463276814482274952987270042682462167284337735664810025854906615568134431569019893096547274106054702039194336614568297822272608321193543124160777726384224786235352061178526038107870977323054411800463317081780600525297581972538929474796192341342001694570008112459697775311613202854718534705447649033476150103037720728078740998011897289804764794666937041618887146981747979165094580142824312319065194589736998095966101232515899919091549352044973616327708619289609140365212827848557328193128742910212052287875376604115295642526573695295671711102568397652614885979456911585626383135417160398183525364225237561405043109411638043859100943338042657764162364874099271133904237230307948397527184771524122634957000088470979822371443221515939015357841194828264881061161374844931079009808296102321805167582435913719176545742488519987196115120254784949486753734638702971177941557177155800300659097540341059085166856437980856754892934193387570838922331867059202783617314116875807040631909883487492755242258172150797436993571817674329691575650218036836778460723208297093215675609032651149895946156551859650592692889036610038854181934600126187624937595416255110885538902893444891951343870959261772568672824473969857541002305525560259971929043557560643621346363410232115049806641880473285606503477276300168625062934970633638731391411817529489532786908570449814636244973694905549284779592964703198188754286795474817190500678071647527525636087681739692704352932327869970769593808701494697637447389383924419387746396011391777007813792054231760377764262656398009615313986504239166560643101662307267785146216400136461497432920640530233716209467070554037485840597977747290480725248945283592467305657735157090684699780265098437190397791800781635955635718159541126473850902905639476842551495323367126391949358787980894877554348900870014596443416984707326260193858153977864382790347019126650850944558100173612616897124842708097995112465484509487862686545971920167156439435297067757112068875676328461546334496444420454082189565051936265015470810655139661856691644296710376062009913024514649868946957165064542873563632983937653728237225409394062969928687248293686075071169947034701328072863075926954994196966892261355497216259081887175169878232827079560907176796294485547240812973958789066291275671882477307512013157093888801659552523430025332729403792629225615173302867817651820876362092932759451282367686303904198536796868115284883991195328475470007562787764555882951085042873461061115543294592001624267272303261527019566527696468228570756116908592934972561769882775292337952449386148892679182830559789624607032643613429858120610222674973628220548318375380597493698498553387433988637149915139198831475524546801930572316025123871637511586635751986687710200789326212387680958959630250516624841982167669348858076560938282051041563002671622666116033546102894180493392306623703756882893504493951438216166029564838394864500661916055342586214879091992723760643662210433357979464775074029310478901172262811490171449220015824491643003154013524400948202544986965909988472168820056882867073160489566132052103994219945805336492677981607369496969351176998456314386385809358161566985106717769344529907979356837562176365631755446686775299007761472696435988743943696394614642652428463933631883136644475485434963743421646302907216392418235159632004633726051008481822873856114744305018852093480135282137664712968218330633703680470190457024678189010492678434121352814462370382305752344267005190521701430812809155620661081321443516868489085469934151051907789630018474539446680398386288233353161737438878693240172489521256500349014150415248104939721356969978538045022087123269671621436966787582902442291482146782550085512605510829886984119656845882276544960673730719102780744837346018288291275801285956791743144842697494528840512403664076421062833168435099500102426835311234420502074520217589332109305148977615091031284534223123956381250271518873886318486406085138914709808947882600688339355654842688300918921294555656538595051833134969615412161388029456515866803228558796736833140847896199995473110522345765154902193128408002638188623621024450409853137055674555485488419917004287275985397111177830248687305656030067312582168943633072658921098047665466476685698111101423954089275148218332629173361611200080307013959979114992017519597431342984025700784640038075184833740063344278691720705165600951139455486508779903479400688050394705045103649999176274619745155019781001135695032314829716758680794077181048995001210390715873540463289037406340487037716374155758243518067332513767773711183229630130844284174166176105622810998004011589384403255846268409415681054221274794671613391244035507568085659466553189724297827204368754583467583612169773349608632666519746706992349624811682935267566166632038524369563315422231364337632571055729546650373838158870271884717143966034116654583430937381563918992814026109363464773104577943436532948735908337410322725495119034924427729034333330073378355362111625644287810271212538818140769829974681550416675119417314877391303116189722362412133871497451109808478683189604878644006297494878882126583500917016211057425625904906017304288123553471839255200681581576789662127870546605759854902043969679133340242635296169745411691386608557375633364712712321446048638371389516266945581905264798284198269854388227790065806272507188263682137234345337318432487026773241026503678411189451032636701231714537543128915906224714603744023960129809134006873058992885481843688017411089189896263259611515433091752520708169923471578224689829112381608248719900675890694690080884926127854868280433845650566711688922251691502063747625546374503599874063507861542686968114594998685954067130928839218967634177935522760615710885010103574084690590771580474100895737798021119026840779033483279325077863924967309242717182586833158175435093619771737659802555377887550197869532616166055263469441908652533467503291298295094670375037439798611540297072588392977211087894015231060086665351337221904657796523592817871637232001806343901944216427195528014786158504723600222538481839169025057970092020627016792313201184049894877545681503109115710590595389143944144691381033219208318872799455492648061366702238770536320744677431445418724214655539703053329567695309657875979218751705717888009100389950462513163368792482512536022064870311830946079302281521556062713687839003455006593559402487345261441279862069472159514167476294729836346619076405797697386586839198387139447370521812923995450860199557377923990749399889748302472483499378085613957737702435344346726208685883499569726527282201021017442419412321353318557064772949060983068622196203263235897424559460702354853099947551387933834209736102693671775416235839610067371564542688978406691679042897886214158687372638485479213577255850629098705299623085150606195303119785487536011869970488072638164129483502259110986928699806066076076575343489468716188810467212316694440323950241013043439548849204542439691204679076276075358655709838254356470604776149980303431408959225140201950300491327333206490893436231121715202230200454928143073428850235496547976221795992138000806116857211747270627662141058667223968241100009330725762821061626728211681555038597401586919371172718562681584015434640506404557699447228894374967370076776186875199087399560023981058594114147368926209031716346477065011426280258627514443288240265492631062436344509332845600306988803327237784776729716407418742185960140843628518015971966574696919968115620918019865379115684423235637173378916486166498943432613868065140533915123615587297682239911722521367481210917866427271324607182360008565414828088357215328355008585289207227800326185011512735897806290066057662604298381571241378133645177175729644232050828589298612909155782434585160132249152116939955696518577391886839954168089325485583814284963925044678446740468750488915530838475847617086172687238902654638358980876465578193327147358047264164918363024877297284298810228226069915686824437211359828884203727233392025711364413204584694438203537093194779279539211145376555533135687035887171266586982202061884433183886372625097975449663737998333633858644327430282238642378777062501544505608987488585185613789471307378068389502786466977292102898634881744415934204523887736129552209906778283975354926714394734999298558478019093796796938760295185257624277092936772642638626036425196969929267141354979787917953067012043286517589600335987469205464673431551927214126611884267119079623899439637028274094398839198897405966804822651748021266479503643648183686285675975410505332931451722341364570609254560562983589558912943762130085045265028844440742775002527871215947410145422513202582206792475097326879982239306845977339039191559638676199117699816952845655678949105069535147524165257417882972299633001215752910816939768852522034810770456308020030970973867351287232525246400617743929770042920542983058440251196019422024440878657480077482136855297202561534787731567822442255076295661170016881892902032065662787585028836516166180047773448739639466688383034151236043194704385117672153227438890858383405339418375380135222524715562615272991211179732165263220041752442215816127334868817428702188524797330970920370894641891443518309058083592335904929983565755972348765897013095064324530888795956097384758314080017031432656026541753087130016462138203520712338702841919761319400098469976541292074857081174543085656359669615656884852516896499417211406716323519053265367908310046797805203776842511048500587581083496092703556001700102654958295052604268295304301267280391102201824932333356190520528919257532968682457963216748338526490566463882832458397880382852608275106821205164886875367585574167670957374726617155518558290465509816634023171277243390593853960494292889644786131144675767413674184161717548884776925875556789092202026187753515698677054947703715493749321972697189662870645321116829885796032332137271958255129059115026579499172948985007067835036636619616684973177142801240000823567376497752806821692491176680471983067413033376690847666936958128091141889563178387560465393752260081436924757512143442040530670836863527324273643443301344682696615427658263424734506915662684984876441828077897342812219886023121161077333675597884909029478410775254302880159854317297314863636443667057837197832152144698393254700802326237212957686613852380207984155725805030612958967605364799417480273939866832962654519188162061978814456923133703808421408965176705106983607305126854862424457500261328114936926230603943420714881341924514982198162777761866367067572001124315464718944521724822990603896379091350286795206413440976296022363619909687716019866980162582034102995904213876775925461727319947188667340375142867025298473972044835178916575686815862963130258930113536792335688195109117165225618313026712398744634204265956652752716595621104795842634649730243930974041287792312307617430619645835278256773309257974470771537294976689942861082136963155358013474000276998892519483667154890620197045735042605273848896495004987466563647873820238980893214506185046923431042807490287970603305942955627444301195729539605144144821865914312298535514356535796673108336897119503076474018311234927985158662884507655993111783594276713570810127539432618273714238693828995955243596529794938772570813076378318950696820341063881053613148932032858858057077776484984896528460174565311220287799569630112579248910280324030516661004764372461014445612984225656840343037223738551800141323659415191689621095502229150913239681268955978512447847538726602076785110194363536780099004473677314786846304411636349277020890811941268505262937858397973236775177674578695497722592161957515127143584213861348250842041566458133071446174453368064110084813960014177275241666412748101893739806828339943093458844153472817621039632420171466627498490060291846355297047869148523076330642840438494503173283697583446396334924545173116832708189120592200025243655259515728819996132693516680550840681229466657369497756308512893043223846965544776354913590635395158906081219956993735375692537978462414106477132091769032034227016307325268582006526339438150821634533424165215633277914476127019171992249068601527984555497762995378198719733585896688709637802926412370835873920049372440104798811223840314179595173234474450183460817284612501079253580368779123058645929566588395675973081187316256257015212887352045644379186093410997379232147170202972028027373840576958488691594768068906728452015474707500658934432722935108535223538271197702050178804324695979967859071067875536340576558044896743672570952362931981445200346607478519528549860254950189795496455692206223221678772757253161814558123752676254316614417193083325521241092483981143970198250066208809221192337194499382590641819176437410931204830587215523864643541148136867099923212081104946310445799970136892340662336473693411680526332651814017375690158133789023812913585853369514009456924630373123801303148706644406348364291958726723085712657252557698895430604869301432688693255055380181246137789451424296386873195567792477988744800580008031053693758169943823189393606813643534532346813007984608211604181971093491563843614168457408425420776846475210974537729478627548843826233752796235261444891256350631557270392608295281460764860600705207243121893453933526017229638996802852238853638697947078192216429316459054289986421419805108587465600010695461026946868000084246947961774043222974796258849318906843191004153381989273495178466646610684717332307502445158558746214065926496556501862665949072461285641912186255432084037617130979182808284262883739159046016120456969625950046231673267366610289215170731738850308927851891797154502901570400912216489461355557275184104640070262760168019613604337671403708595648548186528888429036496030805440906423364857636572440286356733980374637999559268248026404723021122291528626394443067330249301752219681663627691582637120420412307730340706209211067824991227485622757087692509068527038847047885008851599160021577513369061726810020446695005855965460472330111354986852141369138471173547325732688702386359414934214269845197693962558634325174996288622595890506439841478822223002762173038875916425226843480782244347879382605266449066452947963605799102616777721396804739071657988978256636803030862659714634949134951779043050949415452175402106354549226696356687524079249022359058061708072426982110945228017631406977888953632353259373983311549083012546553923125597520118022615937461878410620716057108922106620281694027690071183501323233238544195494680360288250835470495535248609125312413787530886294738971384112256195821057957359029487553084471636910463508711732525686836768041725296955234391819516399691448574174684697258354866647959876481615732400727195731255121137419097489826728135965317509190664219948015446863323788227554944912837118182096370133967851878116695145082112847304553926080057804743775287240513334755404997796494776297781196464835738834945290051277695325891204564571172060857417749911192525133282417459171191136535165839113622300499810762944335002859288376383638761268378101896841446002340464397952295352656765705533014236433804602379888377722478976578631219714344733964210120551752835529292899826875127827203174954289558544338377042028809152728123956058003345166301855598268672829234526560759060590888580251229987443211355028898880852636119122494016037852638725908540201102727372140466559191520906277852547985743835766490867288359757127714668471487120180511261835709487964843648261554667263097293583335022117262193173564243989915283793813219883664349766788956593325273032260526575253819616638221796763222054598619319101968950903263069138491306620905930963781228126396135342994012617426106659955020190785896099428868725700376250568212895922876979062028623005273357771602779311522294186432833811309712615666227271088015460197122177637433560843403097334682853382166023385379968407509061830622744756057959351655773489034798543360077446929531131513707835950318876627821191364891788716074543972000090646379863680966811477959683748755115987933863153577961020033712075832829416598111263669717420851435979978943889321530326531430667525246235392925401891196509841074407074338990333131251273585014337344151690093907194210137700547807063904374394812532862057060155763315015018814514371124550168996199240480865590684186287329559125806854438054239385289280802609941258032846643147857871539600237606645400965751895287154300554058455947818492517988411013656456837654631090335758694484533561111831293630326012819138251790351642351101189988174500618965743484289086556457544765274941267070235147321714847655591188237449351796376203184116864783786603642595684814285648180649130261971855229032696175706016092816713601364004293286986186663183945832845007659621670530253273558478694781100781798131430960983671699667879391968542021447699704687394440618848612916907444712802771191241794623106998475959600533650044177606912785726446020849518369867849572211196903166938280789590950735889380340580203957228709202677654553363301650887212671636250111840909912882370361160402752912554103295778547652064000518361083253603375580350812457969605322875089488867458924294547658602833934940504612230724962607617408114475083992114383596467574785337219551529656901928527129138587451003986753146823252040205642561210537812129925893612719204948645289524070325238241721242342022794330331053452137424892886158156085393831610377282537389284584734528914360923313912687222927777226427048882005226710945165268321911227065373426440403137042995612554908288601453449321640803233042773549124796180992983132463441110207156712262160713528473316818384644371711628479762463111812421545098246306292913698348554808910415040039425816669182177187795434616967539050354916075059048626209557552779440326361929698616870460229119281206245738289816541210272610368539045538266330757001499141393691373668199867989525904873375721740794838587623679243914907825704680767788696946617444906561600235264399254755348089616332986384515892586445831450508707271763907036472843171602914013760110179413181459686325502891694662413776037298006230789890465266369371970871555400093927529131618222421823290279357404480403643567417817924990564751951887410246865660699191708909786147196481653670215367213729882462540276135535903891377976377563180251695694759515538188674830938077043297518071201078550017248145026937839834252328811226132653053608934062766538999203086430700544071284333208691936467253068786122781127658880498454038985403465144021381474585490703793738866760583323345537884266702738054235227144707012377854515421856123853619898847458583664969627772873604069664735462783518927355561516486399111993441994674633947247489664756542770408260433734819801827954819750972072976926672796114694155336201384956945856132487256282647766742094957443415233074528491518343205293617359224110648495600506425631658412363582889108871248001810178736722100800160299992470109044265851572041593159266006299534293088844055621996100732781300089695834400836570318722106883541190649768826460789854203126465526705677553901365406025446806992638418217578563378344525654739235488430938218007866253207344331782374586015298663100173294137542764472126839231513019378672539583139190435420844772148532027564282881541174972988648965044931112036579419951350164699147494559558804596122710334231907175524933153081096431262291022144371943451565152195990193184217778279995561042645786785604272273220504768758297541825196451270557576120511545322412518075999356292889021458285865472271350042443262823287487838578444199405612785338438959468718870753204700333548167796277344911105272155390325838949719433866663596655298595955403316164891133692179907212974798083241931985347294630987285642809200808184302700336114829822327787599671929470036882851111632795390117598465016574856364847830078376459852198850724353845784421583026736656747518737822261306540425998975514474870903270398691818905498542208291760779517027638249119402370132630103054279249391286139028480979362059401237262899351629011197729550127292609303576529756167441349182443623949856093708438157547892476332174978710587764096085291276326443820284120123970097000852733461148408966128361684051563705649686808070246588602000292213896959998950192821974448100379521404680104788129823952487912601551299507227191617078773978037233815418847179677940157633425804174035349415571661492162720785375414015852195560045644638029870343900482646399814761864761106022488335721089061060334773461858519333118403815498995990347612972147635981898024271568174505729193817864872889789142668532719073357577201987495723663600358712278834835851359035177316607669933709190075270426704586613641257936903000296610311252422671231794886050387697043963908210096438020036384540369311972026346807465151766369266805539355617327351824184591801909264155652538830839096554410819642253295199606573450751202734618317602975547595840843956655846545633993928965226757051568239923058109720476339178189440815611290362414388751412456965250707715126810858472453239266843360646971847452103817066093956277310857269116087257744478118407805661674487741702935080482286836122486456143626861325281219743538328915920590983751235231907840887601296420644121712274456493724592867559501796233092942916973476963403676018588519777726498327981956889611356327617609333182149493060578816523493269638083224988068456203765237854201002429571481489235581547183692430861288302997005174382104834488586529918388956973890680666854334494959622734885259632748387888043377853703107724470698119007887603188215995280432772534554766750632251811342664229238064075242556975313647341554998813365282866638930178323119250720460072071476296898118672565097329425022996254758192907626648441254362877633382361311506414113951609785709526343813159095380910363317658549043779997136539841217033744273689960270598352997910828844695647963780074722931853358481624557291100013896581952321558063061255654877005239242396055504842730068985910014669016511457118979345149170683572021022840550584131780421241876644264706248299246126884335908215601610975508450780585093642532499820585036959210843780233455517418487773691770483441443830356566032428676901476527534281111355513274025834833370725220355446840658700638779576088078342418087560151501936058406031717164987125922522723698360991722619224776281798629394210136866305140212436034725383118169317258139204591598157195534297918381877871047156491222787892966691359189487185265701848440954163194509790210073691630687433518799614114452131492405059260608041717531115574194452767009678542129522994131173938980768127762243133558496679051860112254186551771717821523362177528164768332455771353018545471700684678519041345455252948460217700149669720908682804209551892348813812267670930168350949554163588506510405305132473298721107897716773781352927972046112252222639459245345652631288590504352173296848763213061832160802441313978032610042564147283888368750166614446534648077130625339442188412363997857457496894903484518535020117594168814608085372160726121334864467837564783807255302633965796161811871159961529195847780216177399169466032215013035031806864149788218237570274751065629483821036533513613238317716944759196178853156179699786523795675254221741563538483223113774359723865509740026649072809304343630674282263863590164277174037820333868160545232218857107683748083365650479689945953143868684537043804706809736274371949823312987397100611386653149114960393579908508495821108494699342739968223589919053062929948341315548429902762983685192541168688351362097001826676761739398468947559846709387556081309260575934041421364218651161104908284135060677648666802179942259055062672376905509163309744367589806200658548782622058060545382847375638257409239917529022253849748012184815373859049437554633664321925889980708504525190935392574305755670775234069929242586160945336260360490830121202608199326793606485431770097166441248571391229233523192315652425353368260351265772518195366457501906799102982847522978851303050402213250278612257636823869949550752379754722138277425652743864601439921533562709572338064107673454041539988638948927981801591109870339984175345483464059200671336219414112992899413357659312499443901372173922786982612495478301566758583587394622852400596122885115744066020363743052410848396408804183887182608923820147753368543152372826090993905572590240721330095341568379362919662199742879426933436871363106727867395105683275648396516958533895973084582366149424900379493058026675383133518877342590462661735240621651622996862940407928783810804201063318269455016491585283596248918891334542907273885584263457293146657861643006519955712923775247411542804479343461581654157890282045755407177964875463209088669645596700699670872925880584052608410726151138122785259473705164664217774756865390620309254057999903199031011671384401826701600719453613329602993538975278096138030361963232328307174231775841358166209458875797020274703654270118245706299964029034281231747137648707730153810594995555726093219598925349122851545567557048111974965680074600241885994655629730885248528116118663241826000676981691105040610924099879008173215718837527063869684410656762436621015714876112297149206554175573713138741520329197082953854388518269764380275985831599406560051448575926519587310070999190095362180901640887978819045276456162620891360825977404887795760084019751201304461190889531541003118180270960637844869548706882527977273836313194836776035316869464494573657066123194893727492517435833141456590478240687909706936968722068188588202270412694001756608606059252449743978115465893289345868142764531867459368618276216791525929964419093868574996751764724057381150982970809580931499886677836790197023598775154918560522809803070984836641686764596322441790247661352622851059535140396469957263047583168773073622556906669180932241437931632703080680581020546890631808654303285161815196982823995338746549156443170852142450561090182312891810190479037732672850567205332627477042534417966578864992478571239218172572425215160602733386009580433555199047958449080978147512487232456890341995062402073736763492334861946423294923497847406136378374765098197819583317196886091258843855994075186670503987233004304328634778475643908643006354688365445625246363984003275868227490220360878650677746096339949333246679355830025943344484802158164013852095279066558432277767544196389045352502750463311102604601095067078718973812797543842182434957388326927409578619373003810990197844706812691744630082370768632015037865962272397700191000582423729349888809048820484399136808927722400481694834243505565255256358326381611289315882301775252675422051984015798756413281762028368632785247691024473682352192512016275375648831525308010368909277392769117363502784190536904800236692616822484421163060093862963443132206182007875224712818052559237665509602162624248494473636540055002044536737244098136338690965286418831647878341016128564642597446090468607596306384440746888897860591545242529952163455657226952052634514746700674556434164866618460819257515235823899599537399376242460434689242533211114204891978470913393800018367315821397853501164816738588376146508462915104513049370504081021503338785275704537530369643545061216210524263918722896192801316548289197992814509314448229896233309039089462029408211097894626467617664438023879602767551903127295781024069496464118183951670962310002743717338746602640601210952024515674322802115065969338439255817346367864557967757706241017914868782183092211066362848428529047590676976384151902578040342951047358688757828302011530827954940183569750848261202457880406814722432394032721184730261761060005873151260424540116081436533419250130863387629443392993062078072515968481967708948925058353535127451404534310095573481975934538325131759777339426593486415075756893446425796605077241610806299519041305922450183457360791739979484569450262511039554826831451491204306467838745057277438892662889286381814299838213825752427344158796230455061304829409718638963322124015052748903345366485763204102709115080332808240763500952477597399532716945972071164756041032438969527805961011386260340944934798824207464221935799531249475615719960192193545267568570619001100384412439718180732858761145307877655164567183470645470054973858006133523502116950549147734913408689142562667701920956554735694453428140575526648138582772828945935448873489604445666295780495354592212568187999218747128217296259949925689700453043590272502812590889941231111492336171601372404232747067899131829785719514080776183076196487817740792504318225572549941421323909246853198073897938780128596032057415822124987795157609405920768651582232601392733538900753702620689900108640068096885401281500253138548458356117060630551166674375292360289031061619112137944566022464860178639505429307046168682810094565734385661823830540478562692861500109422852290831378050938508978203138149232208811134708382852276947494863403625925833946052941981558296434856920620749096199140424381225582076530319055059873810019684280314451001457558321366308079298022410994496859735051304246179596568849921795180440850402659221730979079772959519995349091763093129899064438975745150407686238739705185733662882353695530334268576491256012052222659783184400118110947828012677092043836976835582234170216809880842672632896474348574610216129834114328222817830995922599276253351998816523990750453821280768082260876411174204667040668512367996924163628902358464225879942770989501648517816616366751786664307245990578751609187286115695913926024174289334170635880296325361247332031739315836800420741311961222630267721825467726496484449499785715112195394285778424735778656562776709645589810931164588747716439123431451525432995030458149496386023135224171410625508403135076038732919271248872084024873413152934607278004497068141228643784077610018076070500655961473645215541248046961247595712052000482058651434886657575721057159072416203235849844882724229049614306114805484219574586758875000235460850372219997387085253975920399677925615892039609283417713644301209049888169362416380588087321728862193065473859488890366582409934694329637335896940481854316608251405493081624450322223607870765883840370882123692559090024854005842704584392082256736514483318020683178062562094946457351912124196099878289747285707337224828920593794111814715267581840618346460461062643913310977925319141570055239681995297435598772174309888705465707152433334887704956555909950944234518508937373581128143263708779343600397088700808693148067320457827430237598288071761594266578501724954712805569504678164239507359391050208129022190667634417665331944363460791992572008262130726743626742425907015839982151446621439726473052388843758007188855588250568733569649242378707539719720135502483683804000360665157277803204886269951283312353298685317434537869707583231007872079743247524715897849452138416709512822635885053605811331086854228986010678076031096289589344678747730861514797607250935314155733519830301328205271428843524549952436683764023069539687947356153879915324076000160015142264169470693984821721745310055163553720421712635639557043560589771246143205947814917344293163462317676133750316829541330323519094951047440227906483452754661947083271006003047237946032464730901781788951870092724111820275855801559216458923316874762662900546628337062529384329375559682656722964864224626267044392840191776244277963775680565373550825863744502723665831580055707453584924630308749272545158726351904245051329019051737720144237530358734752816240172641037468208004252745298442612730597239247110118636232353792252734532801690978966237489530798962201572969156496524728906639087750878342366092865004837418180085725535693688235165277464982073325487818495867127221767681523123566580202132993346451696766968452363286347786878961541528198029794801027184352692279751177197206598503336805149186974723663929921267190590840052951403070363672130812801967621653276651308719755741588878895637722177334389732854425252318643613631050318464446215148049625746248033929675114316833402770010231804078918400582025161724413568274161626824538554713063378680968896607112664493067277601458432459652062514308228508610791151768410152868637360462614820793370935553947663974173951521503732748299502997814764087641313694462796547325734137280479187893310170190730159406683081006457491396485827916744460730108663698039313412534433164349185752960968542101344228778071801094520104117475125648286245410118615830783596603662707165224781302846187021767613678360547023328314043372611243103527460519516910641680091604171545259084680322901334336001573148276756471943843850140550193807710946414458468282176670492601364110942502587119668026591056732349448368490667828893954313168987515868384701166855569406039012122407197665130067609885470823997256674553329728176142856742572119214364827737994577613837596072449847306215275514935609800094462224646886127805415636951780882177520157433392902951148581762337518180838112790056013366152561095105593699581923110910323793289800655514067413994520442312366840504016766196328226635773761638318539545670273244166125995314361889016073374838855376167498067800665426698549949136808953403370131756358658368749977717338170298517282458655297419750915990969227777998125185354366644459108538298104676508741160425330889129841876820553563444627682048507461845298962446707439691733648790209087375129949655672721491299033034239651607139191081739842782857150370832574324103835805053380326522513334709552183826460851474296383715849082502828846385913160115544962999729579234391070784662760656870413462370398663515410211850094538406537779870449082196703646511793493617816094414763827687041276165405680699837613346752588756298532780770431895372559410353074738154119417495150228017928608437977646386866653538971858636508834416324143937288176584134611027520096186980491161756892521655718237469162270180626115464698738996088312582658088961871258008979723347473061292790655998942708958665443430555114539040265019863786954863127133500142642864288144846773343365736429416082967013269938912899473661882443489517312388488064950887541398355580948736479304038556649217195355503435001020263938060622868467085690017607815114529744787917457883367841886498531409606978034263193722800134893444388984336133493727264304669370897670559445702912624750100017599355297923452109438117988632310915990266900845723882843260099092729968795326441054970757435916026726946637207629237447468596140633207982376187502679924063587373976008402315815532041950448884668792040592721741038295265536885324909707273404595675923223510398170900789559972506717905745141156028292926342608153059645462036489901234761282333118466178824345913345445557509369801891577700423399257720871627714386132030837889403513939660121951152093465647635078975852117083456824571089698317326003779387440164824534830131998201499035474114804126321815221388977982308449623795879989862690317799955071242442516172827444264064213620751603894800506506101738386875622658219802536104248487518935725126077192692639460965520859558459211957902367553083568343979314132561612944023645291872593713670526124877584524768112813262889977801213275295538069837810961837591175354431461179735794226400835707634574756464418209070631839965323010139872565902232441852455584682260477251736287946221490746502142437766083385497840156724053591066922042672110117333400040303303076179453280777546817188747321012530067896527484879221030271531310315112393837810655443923076740497738192048288083326414491363048918786199220042691086230382474695085350715437932618882949417038979552911009203977540708254837024122744067066528887630883532099803727057473794183405129749227992490878235625832138895243472032724582372840244179320372996632372044059523000813422752225465575878328752631551412489363279361797358818745484277890027477474690100970017257778217662371565875046364810706627149637759563977990874803520687861754276395785672779677078476683942429703118130143162228001297297770703561893128980286593103628833166388757743126421974812097665853007303994722548130431998057913916126929422908575588980751284520532637930741928879633367804559765901560343101866549682610181462729933133206304617516249117626631709239393123669229179958502144057506682408849661225927493922781730334568984923124497483564713014388276381020740350168174876729209868623436937514799735890895963863325019020949797592757339661725399965968188029178591081854420683966731219782120446458077191149296599437532142187327726479868040833497901354681767909032623576651560912553677937323816083281505471056306014661844571550962421823494537286153917161923418410510185446416646465488324478756515657430899625096755711018341648579958443577584696039121373075221963759305066406200888516606072588271937732913910549324546291957735158008966290489053096604525837454889817736963741087024670487369972192737687768529591279351557977757345185067711006580238938562045537091352404117054389584608728309975003018832811877839367297384139194984867212234706950538644104371313709285621293586722088997663422589396930964906553857583373408202771414668151137369124191984674581939654545510417281583459734065603264902009371223224412395728968341895823386455608941254936492912367889627747470503558799339391310959467514126673510761522688910710846725385046554035249839689720906650122961701839823683156189765877937783286360475385736147766572959228900227823486618119598851313986170569845520187121972931706363402234005801906771747295100540137605388269194535708259158718431291066115729965522658672376831404351275540014548157160756341743127650020796224159817488425736947254634492008143636979346762592112516880141881260102900102559323406723497784037348544421497007378679711705123341363315517134346351704383307563225382006083663220464848094919236460038278397619612076512832587933733955479144977219751402836038726464903872868151546475603081849736811584180097439076612529097577362450693282114294446406374528542951019084383657673111375850547103051970624203468674059949018902137584026648019183260440129750113837463769149144691562574233466354162828574537260764874351751981421966788399983597547759017953801530092861134662178328979937715026820445754413968580075297483949386349099551388515440104815837438311072543358396937454414908046832596712803103992182593601539331964092817579221043975719329185820519179882522770405572301739770301524513026169756944856549060391757185432545767681302681747797214601913157617739411960533357269178999051259639740488668433338034676738403759883144816473938110198012064488602455148993010789489112105185696637955181254310465991409502509321892802042924678334518669874941827433745498206141925569445536515982468459398414167634824141001446088475642097541561972700492399552857148348556365939978432156582716732480945895153417268950297258259730065212890044248609573918371887733510567411448222969953085974334773116276699797600310550089191790823885640761666236033395543508406582281702266280071826571070738908649988653855602027453960985056202951691906488327627135487756786556399635694145807179309735055423768677870297804663004594798371785812383522993266363555664709516337919979123853990089659447026996301579195838078052335569309582762768378904875706084952804434543086215778082597691173579534276900431596902540940070518808493590455758811440717870569498317229809566710221533818018111530594511981039147397102569292474111521089573867318394100498208014841122506533095660974588100689660262035995851268583405907669233538590668683792916338057282193707211567942016125127029018607371443909516393490063769610582692674257726858291331559285477500141474416478157713046688606192885442356716169751864180849222338214617444801400651266667138547851358485781404475058704760990272497018498417439023976186227896983534412493994518830547418299170544900118204895586998143705694816657542451967742685701627430952304309195007481064934840370490279800837886808737834411128579434105039956446898589849839141183193691925819574327274156415439265843088459470160784073309727384396759099402659385959269366034301539148239257681292831374860785991122156349212552897092693777619539024480906444639632210970044678998390224772366850811957524481187158887658332187957210307328403742257297501592301549560899901669691140218143303829100027510909728796286681666167850603903480045140860761748279150694695617661098606608914835738180322557816393480931200749157818287712761602236449282166031941362025658818754481750338367227045747797520122852597317301758609243159371792418415579259766682172660347216444978976659736498051505709686017621428996420599438875340775682857014493570747755252723977348160728416766000514959179511587272229104311447484967532513275028411052238519153533443748109799951160747740826945566542713101357555961669909876534572641706980494785679837532090455209250736152885708204204758365571415442851357632219773830853290668554447108528485013033522605309854990148925722372886549379000923727495263294704623183278158427171875292209345356849824203307934763304524698092430187677420244401281094633260662563680757054055971205649754510570654908865386317533890277384509505521211145723613722622350019232714068816270358780225611273432175424905187065276265542487845364121854226899576223378634362533696865648838666074691875966827181733537673784009995141991270459652583039802023942537598207797044602459050921384787700652978281088947235562028071546225475678855657377830605291678832011989109251596841558494665943541468083776518986204850294582212925331668518672938920414117737584109292313373931729812183062198788845283386977076299058660711945209933315021935661419027698040720216059782674661189423504582316772076772019017988854516986289514727700524721246917500583172237029722118872549350232349350250482968166422556239567051615643095534559822376563814643813461249515559588051419123197928428580656946496110683579095409696063149476171881648515209946110075626555333051560005241346147458003656364378655722720030005356196012859869622646149914993100671129666707779926658017888846074353122314623845418809872482174898313655012298383669100819457656537951915005260415561419822478740140854438110151582821849620725810605587542423442407324805233043241231550523403847161532892061209233041054002866836409516035807454350740407148585659024229050477195755472571105415957659049790384431462112639384254151415517932885902445213516516805033360729996630569469861185434676219882286760172911739241644902716400250160567564825763789976932866678105400696241542409147222896412695009029022714947600456350247206878427502721512801167877244510168650259264705965099463134784926176953105992131720807217708892696406609351522358025222350379659720564982631937487803444748530484764509797266376319849603423679560547369332064897438538891787435782578616442307892185381099993210392719950445517181992518113966074140442107490623320010667510250437402128585947807843702987974415184321655851058607046243139033027442371146520896314352971051843444629311319635845627735687746917913108513302869792781007221631405281894625163430431847274862689615391974549789261940068911904119777664177125712586712766119384733766100621768820998217146329424445390762046153255536826531560137104953431531539070127798695869103108230589503329423230830776854725691934264784547566967971034709485610070663653853697145099861128215653785750976164528717872363066227145940356402589041447646849788194580999237079164806362050829059994691255727758878637134288406101269668417365003727422946057229645197898841832869522894656108006712593277295979382175613878273288610609212644730986410010510345276958235968725662905639234190275225059966805003236452536207385701444129741161883409705275652872313680027130838189988728572528667387523379106689174814072946866837606544663474796105318510489402972795319710384815942238923207571664879647703965457271596422081470465840186278700936588199198276001498494265741148837296524051377826371878084320894852930625052711371069566239153877859944792821364826278667319230461584315904311847685539604671983849991807612612241123816464790981622994002488709257080319379939281465513528500114633902111601849757760895214862502915570807800844621204093746997373553786839777857243180655818845339642118656436886199619728701823974789830488408584248140041337782562468378640865522498268114222301972402114290850488332674856210166220631598294936514055333559180059688439094580616385401454530998827695917464354479136191986842593111699559051911358701810996371645681698022477321424519046877041892338923310845907721781738568794743588602141752571270041492097575818793171526488132149605753641729643459762412967887110698588880265363872050068261398481923900012349757739475758503846254010540311828850204386552526579595363360405046052534598731264833245932980106789518774255866254287577174118836393949028709708041199320764460244218489725536498452248251074952379734272665107639070694888935366788528399059857023851741027888430767654427778693176842066804551750532659460235188048686005166821092954167830301088464811759682469812862532345223157649954872033116113523769365360681408167855454563896085668409870464521695148914522332020815246750985779399121269243623063997668536633360990726498373494041422711344613257494382043075534245385331300777543040163150438736160462261577670887050151249246898914530985266330970270699614837316590898279096311131922340801621890232821027466780717378230584301240568516055855622745840347958490444065097306356882376500912266040182072912077263854385664268373561742485620376106692739775464456097457503562869305634714307611815720933571676583070650749397652012851956848139166068473797512910402394367265749382626778042270052153262916248391861898936364188076939169512250685091933006794617148806413445431732460117369257220259282562301484758226614328837589118728720958734644915748559567676189995447288149524572115130510767985123815739043468551634203372264561258597741258228250121599261443133144635775328237189125393122955129831290339439163365700559949040025673177787357666857588450427827690167077724507760845902684988123410695923278495599814979199084551528240261402127653081777684032202096374388557431460718053545200624910027379435761760510095879107826987288311319229647102173922920477816391375363497766937663919155409401758919536449697744699406213142110066637161929109781078054423788292696180336915804988904929080941433053038594224238220966865196244022773372904549751941561997242680398527891355244616271334360762897959257513506797083583501091709988899853626811174824233504256777003752227363405804069463572615807809240284218129749427796018659497068257068356868433899900256160902605713002258573776033882369728242353081025398376201173274084934054182722245301426194220410451455920241754988303326210354063346400466589363614340988609856854189407971033858549176830017828595716531728815529982795772153251351845019437233062930067608384782225463860124159645183143254882500996328869747890976751961156112602604230754830192495901437326561626093793636061905802686577166196984169766471355689567937915187900622413611457159450211046526671186884700815939579016261207868480459601203586145670583585183993340534252299460651428725250791204157244200523285772776399694708616354271846148364800001192939910875129210090572594792317407101275878012528879480875771409196714796599941547901058653214126097272268436294803906832404479067764838310977724319199796747348035864536059050257023019819833611381998049447801031635812152861888184559883704312502472147171147376747605446755045659591431954915466138489348541924977010336571377517784073262230198748102687665520920698192651674086658183811006809228730846414173482818011260036454491782725034217583291600037492706543411244658379081262592350867767278859660158560114155162407853959755558832322390498336088704912753162300341844813551375417652346817051090832329501201668481007161792043584671980072566225813305624921566114185911707868708853757791721361361995090129306730356036657652467529617499085141551959105973224927599235281016331586243895979882919185661531015357884011091283920711099573626661173599321016317736732106588298559173412148634345701252767650401336189377358599898582429780780921538220022561284216326618931064285204115448404387257943424689386383317597431228702270937658773211284038044254189709857508126225918291757953143096961756569681132194742901534912776361829209707915668997031756315166978898048712571529728325122779854269430307377320291851498570007200629384751866317622713290841905589912395557457099131517669693607329656408298954492277861477699850714978773674817072819751952178789348309214325997619021139311324515198610838438864103657424026031049722631508060596817665528133326262081699439458802600102989187010572299642863717859661272319390513304803522445718204045650334402526830797500561038446657540290074309945819760547557423600496795282005717852840616399857973138551823087927664665918449271519147200168694282782670639230441389139917799072950878025739002340400702758740819862779907360442242921492000334166030765107869840948905661968640062703987102363363268412124728549983315494794881815760388913608126462454977096046554469197667790060999039007989016238466583704668326400294228505219669107948253513892892026490104115365598675049592781546231237640089324519854307626449724746190725793676487815486746326887507651614070322793579183450741298741020746586759032585823170092647384104719575343971237615184125091569714942928398129803559592018414532832994919146427906156864795123409062620005368927672683007354407211792170036928941505089293511873171505880870785672960836500041576255955076050907053904690349127981165242298996822153510721531043355912520566829936100763200205690896028672507324780880696914503541459726073177361434199812510999227352997700362637353186424415981228532694440310236156978675791792384902198327109960249633511334250275890254355450988486544874785829360266237528164281524482523609201198608165474284000800110290535356368753276551660258535474870823942146594718432762675208810108330275527093891028547302472058591932854729975445032711790044963192967637691536360262013114179307476049796123997720655702246395785996569319159481115575701556483532175464249353093947471107470214910338096360574757256183171418319917000139277712543835504061829886251655839623222881271266005648438297456864334068521935139989312371498144246706591187334793439576564130042843376161938902115450715497361985684980933455582828050177485740927614240400958857890291121558432990415080675358761246687692975344704783053792776330977828526048383060954526322266514455296989251936546622630212581007935339327987384884603514497631537874730911888908370051046198875000036276698443606994352791176265674249198255453833406332825861861426745335617978322198553267829095706837858967600065947203539625570150171748496564883740295978136096210243237548639279083567947998401652226677676354307217765876562683570473436813042454808108479495314911409606524469508165033725751446713632332953822616794332811525098252519841347136177797829822515882057125708352077432068860485043453614154450826193147188977703571384937872146742559329996082496057258477044711285880303587941510129611836359560565995000529567564758293655086458637302822426570400708759437218942501228622455615017246770338328989537267526823612332235594709667382723398661255014210754938832335723725101370702698730508473321178941981884028767351362138566964357162650456320536549509439009087732528817469587653738270950975362542698958606344486442638160862255594065340293614116369083462207075566389087215091605297812496115779380737305668597859571726189678027350820776548711238711651449655498416128482308813589125139098275565697393820025643921575534298308104979108053528889695200326553414167588119173528015885380116325828157539315881737649387054367689914937535843947838530178999251675520391583413296986489574394836035497759428651472880087967921289897774135752760327988965765329131982403696509200279146660071632412903718790949514380594573533167915200729654336916531366743388166064780498905185024369285118866507269024231300677057674597370933876070139674336211276454791096015810493325790924298428072186983091939507607158281201805223297831861620922176676751661988463862300809372530512982019857389668541745967761100642515095636513668446217177933350401145488785714929389365722529822127683133361215760079342299351751213407618984529529102819673190115694102657146777200868733003142946081302391090708880016670284016859013264942198802133159298969861682320436040033449450126165415044566725459669639879814916637481207070058847207571907846279305670403289236284526296389875155755569336948178362476133843069398903997491057573705976059979524863937981166740055763936505203381873151721563638489155201193575483557746133284896895973268642799565744013872191370021338324771219530045732586628978450362489041317533017304939973058184242495984297182017035484088381034611365665943576144094876638631889079151738554017742161430755336613546031950929262286817501228349100909522949657575051568060430436937054592531191524696720385343639006958516064818871380501417325897834978230973544645851664483176275934694202787370036138815099409660250589536115329890652725086314110201981369607909940884181292465126771107561371290408259884037481247483712028990058345604337055059807400295718587004891851016689238901470998646926360448769551179557536434655484571627166586248492720062610658263449014686057568326313400442283029135501553445488757093834564149360924080428518639887624871929466258307037291447092381555671382502474712573981353207586826073164118070505033198912146068063641680289881017140037233359278402034634883491530107621517886324287033799473693368879973954242582428379032612354882522309700362063565201883504969255808575112818693874366828256947449317557275867093933547845527586068752898369546815688559251844338456238046926484050869822600687693785370326252374927142173930786342246819605628416659175264206411370094986423747668209354923158285129369133924761445359757439446401023137724386544055767143563020042756557044713343068339336948152988032627954978053646038693505586225121118088217739852596898695895030029714798663877230556642119850786575426167918636479512461001330189016794542110607101660954406359936974674067938892013057801676236151599985318194728758764211382041210083181136926483522921799910622412006787292703658269453649867462389669120085374586805612523291802980088275558617785223307631546276988484168198392879785594029326434192708283469890241447421692673384710218191527978237037307917772039417707961563981537617340479436538151820314990119360309569061587581143835878220707320128773103097645815962038591270507709494563509181756173982397788578354624010450502053838282546759122069133522555372421678792450013897812647227113263162517806830753468174642016791976934449943387291881290612002898241059849698909026340317232176185995962287722222685542376106649169485851308519944751237614148671661662304518339803593012829055935011836154614222808749572847957094191890893066376506230060818545394701700666047120018821530746319036435374602288743224727370101768027159981040575987669299339733810270951159609071758529569330934517139529725380630408398924947622823129554048779547519109789721001045380463669291853533298929033620239738742374423537508860979424953303097053491795022746217744009415319890633798122909792426059088309547075244009583935678348767045123449675814668389829569638320405316286263457278872215279186164746554660755895545830785623884179292678882838688586189676840107705643185214624213553290807669824129076375203802499271128638016019892155932853304596950404920361760957922425860008244017360539825643424853742464800918123029355811280127690777437098579087397407599403412752245910432061014487571903108778718463477119889972572463182745118648231782210520748951682513294851601864744201738476744397024554466821245516932910861892595673310148812079928686449571975994047932039845498806475877600643393487361747464082912143580945860072021895826514540999209889383522630922995713362400510624719862662520651331235055736114717376893450167881580426868878995841686859065864822455118416825055094113430416967176172846518304750972740492414258155873029472390406082724880852758110820774036548272305806329954411945088409846228292373028637749517980980150523080992033134953321603634510168084607624218529187111137091815415901128800698218413211742800338984119512086306830706641565944863230545951779020778974963845547302105834414089400564263867470487002787778193370005816649810398124764342858911796117809456250042269523070260807238737403455876579947535558624693990881582899163623734151859133497953084905630059124417623494966483347756733879187878941805188137364043506195392453500587071862237279485209819713810852501442619431644140791932173030047598041343273643852305420341040232821206594686668692798444952483691592234853372149333954774586954641727967257490971878911020126274732559760304272958699998236876377734719981077624332067621109098011963379040080943351642083538059370904112274433875927849691808079213331066314825492488865317334411757827654524642336301125880084925285228944192657678014348519278671749727480546411291873249928161827902055492033348371628719688947773010284273582267620130930836534633631230045094461249695806403469844975599471484161724507354641088717078472325792735090854768456317078349240350091579257354729929903234440161726204571061044887365054578734488224798733616192606359314783677917818842027021107212586374857639496748049921172254801305396106417692009810987000172260965709569653470413892460203638684046608345458996986748175092837491289371776828391812628843863398056809381491881713721713856626632471832240490873447931406152751790484746473789273957657308249078107208777862381780573536825060594226745963520073408254829737477680136654757028848916785160156038791303689025891152172590104782587179937651474218544326599923067172772391860019941846837632893523171079182272319652653646441049186899838846528273205587836393800406524756693615428307629797691784443039483172046511300898356288479520080090404045509075906926760529829542752345928669554008884554402595966006816108720468326472785772767511945565594085388629589511789311347309813674615074528969787886517833315141152585136161785032390271388118538991085007881082990214171945941811213327478888051231715026530524849597935581543823535195585811963299911713391370925743770693476723129927795152241507935654478948173318111553785903199399696846445937871716041305444239472379275695312937733170788182208263049119243576504875381904071847656425716543426725913232038267510247331043948931650231712777141203663635807850936708582642694198291703329766849873977434252953849820662314593542245019099366050722399038872493828032180702598016029689665059863588486565952521614560887768224666353208197437432521510394289738648319336166788967408268295676457002502511015447914809558461280029692202314015145316749227882838344826150908790601917619211147666993861977736893873127384214620350935034670214698457262911883629668344880360228947094980551704399862822823562986211368652086231031306897761769545836220314173677793343201142183679700269184236091828991184753231635095432224035302820464177144526122044626707433509764349926052630246067850764806718962679713312329522168901481922132509568206141674898365699454454255917649971480499090216025364018189174541560130888737700985966575600495461115725386165803761888488009310923039605007321834889677012673176962523027526015333239575799893834406682440037075516516742697629299354577397473968495385900998704615452222689363208750698952001611460034171289244982768863074420673869507147550223112621763642914719383038387839440215066777716780244508601106679633086444867832976593160526777596791102754301993543838521094261756938321403001225859693175540430405635976920095105086842266929446549483400504982470166345778940594476826396262167661028786936654926453385345932722911221648575691885430765093874987615332969632306374032783047395404343780388134074605942051162524198721708786732725935609054127597006273578896068979048237655620802411841840606807862563925518303214460147043389159503223553080155036759011769193692814619095970134441765908409116924549951908984440775514804017980518457896748898790436247251972356727336622739558483550424963146682903238303992183051985408111984683423239210985900560430267493294774000228416762356112251223497926121197259714506814158369240161120945925200273694167175024604213386797667611068151147586409797454748172019866102416383729834247579530619178857233248260610324777119461892629480046371253287936737605032278894706519759710542180660607814478255798049623739950504809721617640685913280404245318202537469605182704498662904328813139261375400816938304706662304087387669742889307109725991599378932863081950996023351620159477639864282008521312619746627081237243614442164250559114139997802735613968036415399246369501521772698996637087499679327515568524263796712261487656762976057406629368574773886020445311622653124947728991782189659722226851651070160318190501415543091427925943136746229100894443281824301239254374848045013641716830071327671796219114072230183989308889995040655749763719647370540409046841983618205652262476546115904885154232980484157627671896670993285625954240234109132186755180629199056327815639335471276236428865918093035198450452357336859484006122969158954252677985770747855368493976568900040617538157431580587619122409923867827842506901002751357293896377695772651246865883514399177299186070337395673327549975284948460516348231665946974195411264219971400326246379747480579183660802815474698760354154048150536496043614795973319143940601480754611416476703629194126254642298396918291162152925822685103410815095606692235129094824084875287841023106489526340277027069210506777872989920969250850584909482662626174394019439760697568011552430027733991741157521651762134244962439952737259657813169660125940849974193822649354023381022862546331779405284373228107773524544009084774450834843912591508845531957337519824307719839664973179757749093288385672472823374182940032811396701007300880315520871232118515089287507227407010698985099321207254252959941235735363283827887995497320232475398015780594538914365860122206203141344122759702774694456588266166117673670437461216483008639409888966708409393476208446711029482938992692429305931910518750345550163943648966340372095532665059217333911469402151118645997041527548326690864653700377520805114658881447803943499220314440767037282524505238521767471494355347795479803987468084663488493177668049329693414012804514569660415026099408104877029899690958807055590005462274632357465322283123549018506414923594100162467165942049983254531507297183648711818169954482343439627883500800942125852154619162610496418444927353126564562717736823783604103850102928315116982263878055116858162398735036339443078132082454398790243493467381865090868419778525287692045787510373675416794175779277791186012606244507744070929824046038399225663930885571003657110753040275268444268100650808688656090945049593704920892520425607163843096361172997447969015210748084904084474966506526750540814754330578902861150389147986232816391442708000495627471186582108446729323533462105115336624793166789280400729521735512196797338239147651124231098655258476008816891693830264616312450403068098956060881339916620671564234263818177219662340280329450294846591926281860666222049159419775895730206321896463752940577246302332459874234277932911981705174065744554347919440775484473893196733369548927122528720853570996815878776999458510932322226105704560671934483004961255317815409470003809847047395838862451962299554300516188418185079487352589242245732303328726506257133219588415429898679840253926776005872044383758570717973687499039980078115573719702231076774529611021683275360037300491829755100940524886818605472281607279076967883185251325414269620721026148127671213246942144087868227605319189565137697094379353786345058650485808343985902536231857219476293979574892294317010665378067524643068424174621886826083848779873053240163918082503114092156377230413008138055376543825894772276893392581881315281513774327934603851329579424340637069933174933589074905615476891834796393126075367944901602355116873525232402427234234498198121775517049449562256533699181446870367722802611173339266980013767347658526382011788779584658500764817202187878284027882348557110410929984000424629258825076368265640994041644121788675912183050731427501793089636357563568634773858915005997185609681844461441093959667290194439528034295723123100392841174384001423341217469283328225885169016945836061001756631360583637895396778515568651679420523421439212660577204463084751771492237881278825090201655650624210349648336488150735591726039603243189669458482712954845695563993083261754658553350879913219314211548419170884929362033962978503715076319732354192854416954136022309878363185128888435846260790909307695001370060406768241011645565560827688695983026508209168704346061245531876473065628641348429943799931235765719977946446168655461978911919873191190242269001167464011902081841707530774443487273583858652816376788907402440170619135530185459580682669370586271359110870327058104081378181070424733986869334462690501881563931269037136762523051383985489885076044996894742607912614327756368199659880510090378236836051974094957137240320355747060946914983464844624131083703866472419743247592084029859250509963622583825912539244214741062579359998204324481027743241692344561242899137039233769253259125255721679996559713419824647141200858312292143985089078740251548524729370432933073668574178351080758981479204127341263971286034457931053002811318507243505326467981997880966751493619183278899156185613484209563682839299777769001082513869275515363997859268417027629495995371200313584628962057755126655229312678171863995330666263306978284316504685381973552152536950689947555645368460922681294182363806520520439386532246324478237146758228512039871025429049571477458730275196868711765636287073583376483124891822734936976169556359337628850137960956960523717410031185982698021405861353227144533043093776842275128668971596463776112385253297522640281854725540592591221656429318746100686190486359903476922277951895586310280475552603318746111426617770745210036871851562955089024818677445966063880516295887314690158097050391063515612270197514513276490779439377327992943282268824643335668584623396029829909668683907491847627611391727710649579636164866789861907962890884732493768254951395672607352717590639556307809380508235163462538273955638661908299418601229718087511466944544351367615162883495511662938272700063158262861050690468878854345479556954384685644244326020443383291088994728527451068436301233695190150558898158388282419727873713592915622314257995254795847564899897663138648467592879547568669727167164171543397280453445753117081738141968042839919656384918766936021392349358443175466679631248007176267338715431864998241122097741505137606365332105520655235179047873276567459034947307278283292159620090498576439011461575935647664195016463926336051415947832473059821822341716376615908980538971313493949853167081980249310412744450868373391446372924843876226704629351566550767476166786447718390177025698680218347473201431249667329644679699636200478050556570018033780926549102085268741036224510645048461055587581549977294187490487348374147170054695691126894621547659478674872559824889446620795666253483318612684074803789774798216584825931115898591070468724952894296813574409862508163237352845013591199311319900692894201516933369757374785502221519681583227526809184636236250972708908992993934236310863108831420370076210370280260698161062332452803169621209344125369288409935977095972059696652073463174757496707067069431276056353679683339410413743230666811579411007576314100750086605300257928214980559513219769968763346435348797301165019371665164051262112082173210439682189542968926339704958478872075532860388284494977269824146205306589148322394990062386244182722541365194361164275578609638960063711154478107909363579414135639930998043637618251424262848265724481268865651442995672319080515822348005990966974938993712104460229682941750427940500935268487996365137231823728069837626669878854401135113762769532347085551164458670648437143818561753180097759305345793120756040902901313496827301742097590980760425525093225526257577839609893707170504247339017802339417375729385999950339242131733874244426823391787236844610168090753747331001559233372076842428043649371226699965511034201866674938261863051149299675512618687340550543740633094983504994516965544070645404730929920501935714001439648941046595812741834577598270949489423645628438071825994737889148366427203258155141240584815192400251934155283865492063884296810657155967168239811421972128379561102308455282155187127281114020561517858880862234066826476918981834062738302188401651441467494669967249799410660034617079613587650987945449184950452617035869384997130301172214687637874784676770949159587362572492779444147066086363199753309937979085002394010408500822928047388609525542088658474560115942828675274564302771626548327206644908555591892393969323046857303313614662341809270540133773214182378152235696439183223833046256600518917688983342146358453767613542791753575394221189913684468535483416080291885090420194724045447467817076551339189685233494743160112709607971521442111034348574551477670267497484368281685734880701315989108675323427749080028088086357270935083105282707832615235662978873577701782073297479739249172461352648215768545258674876029760455646703360962320596784775730437340552545568180847916330969402011750474101158107408296236280549934896553366666931040180639822465898570937895252599030568573765454340122371116827416674806379826442311532264963585354145950277076119694117037745028208515827818219147983329306209568897341179654841607379310253371221342709134669475685014404009781828047723121578782959855740459600307951058692527544056241602027178300780898998059516263004959834583519513781693839990218452814032534700989967909959665088227674043803757683829831036883584700759573875509489441495214174538880883072604999163788113411453813879679800363106546696553779723144811241971801905922786029379763525003526224100223593244551832139878899434685401829874784549632076325340030912529311995306539616042019107382101800591299395175178861438838085509056372493118741259246335072655376777889750249850966150301135796575107607594949483323038262928912110406470000216949709875795320746251269955892609102613110865260975098305397271620439166353329411085335872030279331712855114396522131271963100170041739569224037428562496774636158524803881611333051387761447197914985270782144144507556735151732572825535932982865468005817562529688707228304113184547358326731090448510618725988059514401039509262164194418244936974720809927224433447258778070239120779354254185500037954909582628213950861588731990312891151634911430608817845780441228620563414020711518848777549599042467198145379732214293500956050244862148258441186935394768939754853705053443127968018024945472404300012338068373396184539901749907139923903977572343263982314205234523982445316087670331995812937317878362108018283203435870206283282597501884909683320206149982138705244645165877466697219114155905142215157642970822669774493650410113973285675359881821354717948214416039721818334052193402603830493988874615132460441974552812090814756982601855545143973256522051651652830787317278431633041405976416728140468774143503495375109349985273308229600625084793522137872073530629619887910825195151188157574700482068218278661169742390076086391760882314569243006197405644714061142234766707713011492663990370326124591277067677693440927855919102266791100136438454669981848112962184492769400027928125678910866996776201238576860062719334455241753941626863739274558047371118695432753562772114337894266298881830726208244276721872902236458131575049841085585699331655638171577124071332249265996397528603637233506960314215979388432363556814715759368751459558835052305449575748095097612719829155203072917769321777729713393876395608564052779928816316588116229860016189702002750555066188710116128682082598832099992133727389900090233807173148913152203112355139525705859810816587718530691345323489577917707320531628798852457579878899158019760299529290375794337145163510493273186562480771140207043779613993924088816547919466627134242120341376849582211040472043075332671372672217497921326062491946476712277423533882849737105079823968903319596835151055205497107088590353951737458600883428631187480800079832878168266871485661645277256306818111922646627796072471913388259914811827149050184746121984710576714991539102689825493101442761403017674177477272770966882151060924948805310225581189265912379144666033195050573007614228092137388461305074150357026180312778391594173010673741382464025954036980433355558823421226553687560346264723216373453402027269976619421576402675764119372039965652636045580798317326676585660663610680788590593259501073386449876138915139008062086076512321869362359947083094596244927406500241129085188453150422009161894741922412495915823542882824708031443077335795715882071066601605861708791061443963536724052843826936230605196821248701587250038469277539258535967041637886806359364028674263983566649224244072451816533528043042807759854415745832881726352935799726128185426380309638872417528848062123204866740661688765171761394773376882914589983216567844456291536638944299402887715876662975037517468691342015220123212105919934833399590583577441574957325390970417952742563293864080918832022830318296671099049861643606316056565307018737483491524114724306131759067047070711430142724490388616690548829996390139860336584475983812211329409682723187480848565914382741804884123249729217630173034985626612696665707612584203844888162194851907980921831801672788678835377985840467233478314530985951829280604605708354171408533366333329922913054637077242341163087754198990896520560247710679805130982698633461714310745363258080029052827674115341036528508382213000535510278391486166271846473737272921154717471969430461158393399323460366506804357142182000111644838294194652850549557594205690283039448272911107072231948464278002233246844021235052421837262206802106508379771141043080914207683622815180970689635919483286526620511876076336934602909625167601839447451527167008762128580327621865869153304977243547397333609601811254345994692351563178357227172939476156200870571612061804899986630498228831124197538058350309073412624393945516025603973219080703937620909795519744106814675534160861211751344353429505927455247882201421738835930467569656047491928561244930523178680000582267918255224402303165606573230142785375634470034482667113950054563843992900949827811317528279210392594505491362786018543353097009561889195500438980171996628798304580440513846392580989342855387821845028530015438269606016765823423472351564902468743231860117745747228258802235432523647107396363186771987587758743986095780284704752110190853910802681751698586803749113136351711297696638391737499114597548690563381917900704185231683285264310225915878812170634886037194307570509207898882467417873261513669899037493015449533275060883064143848708978577313755369489478647371164833417589386357005948969435119386867495022681769845308884497042453251392438692689144528735309726359780523533384971036379147873785863466365429776758667891656020600437202695708963248493735241041789046876545964787644401211859994412688264444442025332680435637503066710962960184120786675446815367417093171450839549066188374757532756137247836418494457913028461333195021399269383625916057216486299222036288438337054281361297285778781037523585430502089211216114662609233770321546381794238731216856414127323339415665373359087787932964297323681423427020029756929623046961176583890719885289071203761719699567346316433726505980254825277117934649311775090173459036290097960279951763146074054525620302505348200750087232313959451495275992449446992747248836196545804743876726925761855304085223483327604622282043047033406142776252329348531626217030780304654024938728371544801482265344796611292416641420302935837481826361825068630574395572648571328330702195652990491320132592179939083970301020222738007456913269763184606875173632839673195411547556832359670522655522677463747756542533459867295428714014776430734307924515363145042329841050765604189730358616736776172940480885120738236833408275134477469528433396423768230448238017336150666364326159470600530885494157337099421912172689273827483568424903368157611937639061841079752127852434680342362942754341985143124110434713829241393967776154768592520644691887658302593767312260746201135612384498421838256696428199228678977470756142100201566629172140015100478235029577302018354916598431609051161537120561753074898061269570916051318692355432439569128056514127614301684964308558689296834779701104428540796055388899495486025576463159996505661410176248357551611830254539224694850036944106161483155350928787748637113567414167775379122560028604308847189068811907937084851171351536291652607638043545350367697272046850888140459136898445022438612751268778642955404960000455429258286284674954839674465423787090484981519740616855869030420498075165286266823106246027482441226296523817803561901796741123384632463950022510751641128313293051177669591694163400335540111606780286656953304827252663757791165849334130737442582088855542542712620277818337567194069099624488181222287979897670703445702948920710360255162105333903773205348407684279719992000688514602693572120663521216498954742319601117464515395698117964018483150247003638565644259858393200349723283404430506251294172950191772283801494365844135818821691077169553065202240533776355285838752055741857631497354801421548513421893208915978591903516251796188066031237347969180508963376736623525738799482274937904614250978736574421422566052635302187692153183521184113731273440264450972358529137766145531942170207977139906143796524928489215995040552413839800509420825229453931409466081049526545852407674428732866361264111898923388701600873808020176021658053962454674300450004535824519933662580355648602559313623261400012963339466464038280431706107637394416628100687642010646833002302375210642215936010279431191958554887407492265495911929486830620170115606106406995181601193958569661308887834556076626446091558506948279339471035001873255796272809459826790816048825041805052788909790048751049448807481885617551324162818664048267941836902791840444593480611618756650841451297575237402782282534353471624726452929212141815574885458294177342183125513298697010453480702540343038239669146720542994172672256018416277252058946635108390933542603328981937683972597016554959282797279178405583242908508993291909895801745274708247165970874562085186538936960755017021962218696702559926002022352719137080235268223285244317444814257686083605566601910803408044489176166600489255078576133899798748659879590275323584970370573966854548260136578933075401455256614336527143362555128075047656645151900746101553605019113676753334655117643724075595830128200085689961176259714026116424692089452942622574754103207404992613942277073538459352712306496553744360522847987042245422048429659078608949824000554128873552893178907510401205903098173081181246641395882220456278177022812158505601867443022517550438408031038179835112399644226138844113841615726570265340064835847601128287607778745207859872688892830011133325487295357407221110827543830704748909400397546611871775632180313796706137181714247427689299997622461937464377098958187717715321805704105947732617206072111228334341562015830654137753458347649985494972287221732623687490117337541790216501298442621332107242469928282583405899580672816546358503101560370531427235317372802384627373188117186883185503521241496569256659248880777687232065908924983820464619744785713839710268752851554722435154988796312734847306270734456364855311817216166081844645972159025907216484111623577844720195836081347344000403927870423528631165350402764037626494036384615242357317742869635328333566419377831460779276424349192225911283704276238340285154533071728478490940629355171418626501313002226483215852661960827938620932573927689201741231380695440355841152460429888936256539496363129346927984955418808152021265005535791679189811937625530869094053553282004784321339567879947658695675359271015500870483508352160241251406291488462148202250666678180926324061561583299036959250142786513474895270081031058245729604010139823739201799144978232705581075200883986498802116835130034566644576823100712236675204048748368056376293029551504616150794169135923329107884071060206676479890814881029346759279338014559651855762583450906446003182462218574904861320294174432377841098727839084085003909834920325841082354812694564881602257184754928766759729341679133214585915033626197215162612122217032140634034164709244477436194506848787102241108646719003450078800707933964775153135631372652174188447595681373018819178057207050955763870601515681666185336855168921068793899645718578328645294441218173673284064908158679990226955999005037072781003963174415718639402800048260947090502016663625107323663684009341606661571104492143702256598256147042441792605649541810880577348922293952440430926294009228408645176756691871906752628230056382156414584906338382322347951995580088370261430289604993679446116390029674459283454544102593757404964040315220158959063431640865106436095435426867496712908519067485869398257118400985257314698841582190051520480872985408602282407904323691584271785774248945296755247312723473116461796162035954233023873916470227933637379382026235956887829437377197434746371415548906251312450235774508058506739107061520217051739202249922162217271804608790013573606751349962055635037591019687083998868817294335899738723549386939885202742916537073852594260483770459407396636290136200050698701143443802125692171111835006412672558476215727423891919844279920623697220635690970582074081034418025916872129644503119158359388973871447442076477243931569729100320101594129218813148769941122474143857655486350475089520132548734134182564867944010013716762821114302590760460872649923577965728106488489426227046892189183443361668169831672667094949842845918236155884446904570777457396179018003615603530888544843438763540941416528468358123511398243130601157979351518029489471208945872791293291116661682341598411298282085367885972124351273147895863454615162531934283376557346101582658044409728647808551571485694214063683960569866827942855558337959923585432854172187316377464425478737875881272060941147214839481520829604482726957319386339037252993256442868371272700802234026816076520804500595363837618386323903159170850755515905280060133167391789669581952411293652897931720018878725763005446120863676645414182990175738244423639042065230769052125883724534383075403141800197469403313180039069458190806739075664632534270626273562934899166502102933643741884399502818906177368762306338253002619645917190359492982863541061096903439123725815778387635689547331063445861504558472523342746011833556180380877174959711315878381163852368416689440539293800152061356958644958264652796775236494445921108314294372618226890771822492581269008014291063722697537621784765811435317274124066785795792330714465743441820834999490812496856548493584749502401342133431441055750399123996262664129274151737136022288811905034347233373856393172479412243572885483821401150262774711556876767513166316918703202603034423580007088450829937275020596295841340597301416909997798250329044360672652241198260550825423868889712147628046358313114385001695538183993474626921041418071442380139097540849301180010760357935079506615092318711689166738599877932979751562834061430639551979106088855950243014788468080835545354306969378852368372835245172248764278640711482995134986582009015212884914358094193750137802894279650606044069715987693864565951894597812809535535660094870885402025997861323903852198128391353666660064911728762242455632623089420000515358377096339524394075074294108789267104827354321388681946614229119044517160382728473199893848089569278055728920410818125779558847977614542922912624552008998385460065440730862556175398859221649785853004324353757681015725319217751926910592087946763605969322108609627040102124933800411097888097315736283249426967421223089893567099243844170350898386060166057807816201344369653227457369925885686860398942232529861055869409966419764624805701676383117686203701912775820846525523195491880107036655968892121173518315203779897371543877129639896226544355219551531807641037580202265897190728001987602723451485283909162932103435365528763014208084971295750980992041778630232480370695213437165630460348532835982040018553173193412062459187939583198325481068131075639857264389844233695045382469363388382515833974589797672425833695766530518241309429559523783684582199668048781337617709535655549846080670452978462249031420423387895609279153818238817218232832816306572408637188160569984132715959013936779108479035657071898691130893922238801736379250082842112127673201754072522963838934087192910154990990096621289045673100641234874180674680967957612278682089151215684766803754715727713251539184893444293207450029404652605262410497459154002869987636233025581001035844857461654010517636195776371389159595289722547576614703942792543817441782136787876490593591316852988310279025979060131316846953570761509240584470133849120529061815848924406443728248369641419734939741561028862015215523920215896149256981089791258587257241922014675576741366722935046926751725723484138533826773136350383182726949392375145816598715145124623768849535059623700696749703050599567144063512204165247205604378087375844520767958115599416884055771313269231122847876590311419845245525343047687184918327728686871339987790337440522383301556689917394060524334719346095622006121267995551331706189269274962250471656720671911292816339798368143034883660052542642724341453421568273817882451636836905183817467370298055143728209850634036446764041578466606979523678991886361337281209454018560837465431979416188737810297234897330693708254323137346450076797002257642311093944553416380253067617561107912562751418424304809499431915707070355912841006285645009399548185635412552869352929484066218188727396784272733070089302918052850322097609868951560985610115041698934460436794041511642207542368125817013271985553590962732213086927556530971618066061088244596479609145230863060877994067669556527262362675709421916988357480388225026933634377253155951487893787077040825371244398081452673156404465389045219938940181768476265307042534014470532686329344180056194148266996959156111683669578299887444108428857838055417019324871648292447837763448459368054022815750607357515763378601741880422898501392839373762838625797746832697350886115489032455693694546509591736600903162572000067547035072079207141396354306868273003451316595628255421160981784391283257937559150643295893857149299753004625228541536376478621633798842433968595389925118143585473323800603182779054155409450683298576617877196376437236072819380589180258933811766572752176987936358361586186498411692411966090154301427823123498944166940265650824857344350605429380632424331310589150603002968116782323280451765378738559694623345851584423665465630232922865889904947514686336961655616069804394611816655063940881805415029050317390251312386839764804404776571450054252890860303990558336919129108361332709194630326559296352741015596082468471929232374273487584423594770756550676140682025750098366277506393853633356928715344601458068490756537503217355206218515042894907565524051126391552493479374056436369390410893069195103637044297400539088682096588102677986951767515292940800466188729917918878309145631285767262317718667705004927650176107045641581391266681022044382718476675005243954340968217496004582210373076970208685200372188212597001581655222869488140271600381826096828654270040105458232100503759549431231187225518458506613423529297752783351839240547248531113181192687773017001330679451531480905714145815456247698621043999510680836917315436518254592447819892459879946524038786616241802631448263731279015531883270637190631279915068703551980851708530068044513238990415091234440861910163029348680191625145397842415424370672603195184564142127641620987594398495903062444865201880717590702572694302146614019495672265610343209349022730945019758070633245204388179442398099361013371327659646588178764360240490203829864202909542504403546084367500213081744275275993521519596572233808415311881480321285377683523465635581272378032168796258680215272011416990862606842260231070763977478057546724943033944993803282082320781062892802637969450093311363004886788928370424415689714390824895782561580112341039966647509601852906789375172425454497121898325252629469986095031258859630967822997725234799214277404947115158362939922998902323940470431663551026221517376856724500106790459738852341495256934397208696171923781896303599165195087424117020431737835369617022273360065977926280073080080333336135407815482897927657561920386017018142491915253134783417795929024645379549988342847294190246052488520302553155594355640839651566089574256564759290910103473427281878181589620617217237307172208714013038048511777057483754324736744830094133479835278673529028502705263167075407588839251191308087425617025908081590601615106316763531931712835455811494905894650442013271025561541912388057190204491991954836552975978728989515084046816149355609244300733023409497434527250676434722554008140964580695946895562999210970490305120938689770509537660103739981793856875744894087480319439208699327831068339705749844819949287072970047179883414874194479522842929023481702804867653291267820140749127109067794703593151897577242284677292712146042703463807772424607865070679721816414624942522830965299175875640652712650263177828232124717656692819193491261126545146047468304221036795374347989092777478089621835452874819455061275286908035257662241160341059154665850580883809365024646748277750841239873831086149136529832425627992517067488255645656183759288837460262014980849954420923772147970634630175365057819669379653009501476950431735091047374121806076940269865448798287226316529853680386355313439437617559730707946754665538560016055335164259771019176145214003260159446214428652727057267389823228771391312211392712072561407684444337125644537561134160376259613758193698704818270667152429953056567371929454764217241992449447275416591677093272941880780553464636814859598542552559956358116258490214467358730518359227897417925740712805011154705348621264198383644433985907951359022869819517447827752260147143152897548153350578877954866310274716082387812854522783034773978303677945878996803972551220424932553027561884828510837664512964921186919774887316558447259379905809116838642645691311039910818674076970359884701084158801646685832745166851752436398726456389542553197790590830295056510124666786097651053379747384661846264260292569376143061363883122847914074444424919038520545849421684733664466056654321595077981756754681552299533183636029287610536868128869611123792987085186763884442485248324063865774800562416670490607071722818074495892374283079249164372126390529437301120959592720455860138372320993512564271549588031751359082002800642617395487748707500184982589749555101060564699285460213208870013083744201117600216952629482968973076334883799098167905976728776694742220454886068877726251042284144292726204768700444150325370598970874207069039132836761062407571888911642158601611031914632869717045842855309325397614586014997160548288896219414152408376714538820886128894488681164573067198294243622209314943888254289094406160709891368362947816012432184969708892708099185375550244005788708171713430661964559132539835741454677627765790970814098160199157830100267654550040593271624300961636790521547803416488868931477867204726702376501466798567609685408607145803153025239203445627084652666796894159311289881031985228663509670612731885620304178404743187968757593044130096582942738509843773653824053800597845954569836578885377144332283270204787865768684897773484781633535377676320495189822061325010724371435926918826338028917367264502277090505935715608436725713709522224362320786201650045531592290151016865548918118686947966710252310959857338283131865370541643984771126281611521158059288839785927514339121632721994788598716300724878254930152953641881484445903834456145035312768897380763663613753695772637435006774613665785817571507238311886852319257181765769459915870702186823684372731397472520103173193475332129737164450393776534962102282522693449178551170129514443847744136860064496016690243903070752280380635291220394348239411422279239720955517873085532141846064061781644178580344530733541587770769443622172283095014096037393755933221080498671777544506250516643617867101951010128299550099387240032025818514686597966109398282081458762556327314194136023730240141039567345870196966260830481270084923380119868110483154113283678999211346639147528439966122963365683993751348694086103416183809988536226779671955883430212634730757310335308003367767329486167115247296764951942119034103980977948527205502893952160055891934041374211324087844316769509515170601894615907642261547138918047595783861684445639900908555089512187929615422427035534478251075255655738972817606599850548588075316411609552741837192746547769740548022368199976128547189406074188968447268605524566475113918448208632041564131983883285476279336875666255691897484065528047150029552677569409534421011357536047018588951013474043697447632791859170600187216656821769505885845205757926532348401350347131157116584253205873443184982138324788468858415194245642762310990171851121293433495935289309057828427141176355468428647938124266477677890979639445720806957752337596811336864159872205815558178048306527082400767892622743585580792884167402025052919791414859521512925039182545523102869238845686705963854366940076126456257798378492526871700393005770563968629199513826370567911344108367130694798094479148453439173697657956775923756101852863357066946262329957515268542452762347902537525890617221939437594535069044642379386130927094977230382228838951154415491195968088200986672027342193205385018830892584772134821699198949257158784161607227858311613765228940743582263720581021024226609406011952813806198909119480725260257883574090488749833163407223216580561473995547072058957646838796857379979747335040087170074875034121295253889756692793908953841793033166892713261040582814590739998505150208213079866413206540959749538738562128629296776331518651407385534445906574685407144062686909080554959365046449246552263495501511576044247576753423495035151622725726207796772624775646456291410324914786181492626582385990025878595842238995398917527460673619858960547639815096328111294592403955449476315742652389101285009093565465479441487654515762135445682455870411243979859478686375830003400630267486020236882594892153734612144807385815036044863572839144510190208237163864465183244310334963391147975994194084386747970663801138386690302551769377728650947055132283789391082495965539705082301348289677733734674412892088951466065216926443964643622378700038082501574224509686221567407622838144290355329107717822431201303342987715312190603291929919638076140345752715378995288810252963051016405680679865887523684155028888879771494198451119089061523305563076277477242619424597392629668922404590635860051760262125986965968055963526026648422384145576502963336430238662057206037225660515579988767981672346469158827860539437547056680061977161691564483075697219772265853412949946067410837892273705588515247208350702925309309563135640911799853412801470934522761389974136650741770886647276294006484659596477205844723496669532596381263796177616566081086802232547066049435623236717398678406856278250727958584489117044623362341372443360624302475726261007760851349769683670678362712906129888855463812987109555669921976449963595599861377139563272764418398850000690668159441229686374569417223909473249828687038907579431065202857351414749275879115298520533632066278682916441215404592701818884724814615827936190344142804745592300869656551837418895524524992286272472897686695222292758648543780599769262325567254912188179402098804217938434804918070103194680808948137287772574472933133107415624872406221902382635602245874953721975560063511163312876741093577015836712479836040803996894605847484984719352898165760897354457983999271273292565699217432261606818144267882538512588745778185857864485436806883113376577679824097369202804965608072042850601443540856148577129816518986461719009986477877502481516667846304126370409940855953947575244956444330432596819463077727942132095952353187134140023586096972156080772544007635349309759673256700807879565756877169939972491726142984259443887500341790843188683166769913990965787451580711709237182402943340695609708270716642931374378694495011174184503412390969245412025162622143151962245123596282163659285056396049967680348778930059923970320577567025456639832441118214545094335805306692576724907625707086951009293600777596801821828816915959840833481493859432903282279018587359244378453948390847007461132499826187646207953099491339984910878084468430449277382045317583719278037352612645503495626945894364925084612663639167955985512648228517437482801422650802627581780755880500686293258562024810905719531669107620630648337783397199267044137060558143836818204691281107583071715125629004048112248311520359992658374418690178624413463414221248925373318396782392176341159616091145979374597440714920089306532585942379598978921361205511402766916762330986739935449720764701147246295258724872448858005676332612078818510987688605608902317183876352057875784877814051290165229841121015449489259105025955355426077501266463396947009745118906443115914020597862321890192642802122791188108605043305002097852145974604705981231691267565580048805608039114003483937951783105964902178201587288995461329566483267106316108907299314961815136655699398250270613354861285203617801976605006124134329199884637778204796833310016182295637560012957950657594801508478329277992751485690373374032270995470736960542015079828836464411841681643062598230988783285134779726464728637886843903721740547043521605815097242862586788437370903333196601791477722820162784823349958664193341557925359547138824620624338176849759348360900721017179101784023616673217975891550590940410651088319017782159035011899337707068990924909635164824590240826618755333462914626318905733055203842927471054981879734007958244806663764338950709293282461713465832204190654445548606134972461040139732958290438306620154658359726369457764833690693841156661494406263445821109767644464015688537650938618828406403512620216839205341091691344383971751629142459800448767329611309644108037957945677246334531549726900143851888477438933723445167150322353804673878483163829032626139895299844271503137192644205179006095250410472352162322445697959778798587352389398932282302945338414651783318537361504842875237100321760422751448394675093397250373718932454356108826778930937802520933335926831537884778976136265382467681053026924900171532264997075698281938735532372772603057698557120483047533228150298579037046616080343890900730036872370404511142904470054756741570726840652679791859678875758296807353880896197657122509204430800560269467410855575704653027973664144137929402090007362184383980140117910605790847384302132116834037822597207272841028699969552050658231491104264466411545640781131583584054149657951945271484959359451658112769274991785601888485768368513759389426052596429200996655131435341955972797496540105405296260436744739270321309793038167127971374867013534098881708523320378130676247932957489702215675965102884440114564742973815291335858869732576037972729142000332919985236806642311391744060471612832254868818268510099397822303355618751105763648393037396444911944293761780798877115890948740174176633637330579293525680751911476428154947181392414989417639308251424473391510990929324377511492570960887723421226970873340052407315996454300756802478854214971770751968013091678601484421577519758510382739563843997819047809834696971945746926277754457859377343434827733404022732237149081197592085912947029968799634630084283036467404331896878894033618403996612668485569955936590216775409239363228108065883595330652938418706702621330175576404416323756214692355750868156714965135862902769693481997360568048458197333802833742517051197989434704226084097457902353910356230705164987915406614505805982880962374460008988350439062301949679174273556840035440370752191365514465052321721442224494195348042844959522843661301402365380698057776859336671236004517220341758080564475854491991864589036452148300853592262697800556484094219701405185544788972672024863940192946124885676596448694603210569330350172550010138422259717805181336573495051641505323542439119152599826140145294268218533721117752390172451543826113336330283537840970833071155362190214285276467047763368058180372300594005540108235607771855731605065274091624106154937508237636584170051769213649205362993225430971301633374002375847334586846408123873323078691910544822065884575625133771809108519556723857493793701540351684423664226051540479361265968597209078471676002907517863935157378463721746305504880309309412124133233633083622599698703375989325725990604234090544859181021451722508688056782006785180904969536656660891774419777434602940281737090586129837587699545978504166394306759098366331918960130072243989832457325941583053519490659583793231365275564578721554142216347844784030472580734401609531520435252763227176890495343708858687067888961912242312193942353646403131300866951407958762104697879205336277636372040986124754110459338786416362434992781839105485842455685402710462345227538250695491621542983563833799299697752213618058103633865776735009605744815559315413495627591903338510387229278280874917119081495012439859724208182449178505015392992839261188198872222248051121407722214504736052004944761439645678831970187069674483715088776849404461872796096905783597163747529178832695452111588332021462074170222636731442303293253342208248073190082826129436661843478454849765621097208880413227690713501048780506498883567761326010394788875886992616329128458172323310262029633725396119535997905535647198751298420541862011130827311180737476825737531059379480364477750547629992346501952156061716961264243884752252698591700020687704889960816194062871245107304987005160395844346478779413513681696582728389349699201753783314901270099506772252841261590531917084351953709694654522483480166078798883273350358584476350551007383850886883883957172257098000746259838382038718352499858133107250250671514775882944520981944702516552950254742944744106722596235654701328755469294590249151755999479674486827921875527932916224587554112600054277771083368088383671772429737107915820102104388496916111843154518435784567618762979045653832624516524434255378927987489507979946942182359543471758795076734566419048736828514868603114897443249102774684786753772348621440075944317185963105453109515117193575019094606101980128404300090090937347169702023057836722728690539094600815088812925258217625553311915557891250408505640529371129945275091256299097775614706712876462599661980340117310076560876520127912047485966828755614313806309837513589051717038658851558514396609021590440498007475598593074170998071743807343851391876081110114001198732401695041799910483734668980071497635651380696029043578878180006824116637401638491826467259751182369840166480539669984778654300893787373965425218688166206422341867488690933743458346361072556003190424167975334530891921288920571233019387401877778069178464260520675005147306072742920916099489376839117784491773280556447067875225329262946927628664901147845811818125122786810253050737279303006835729363031552460740461425253602220300467811542579785845360767251439579597217090508505176281147796983877694687544519279218757573219765687197077454585882254626201202685314996679775809204383983453119835453157672515459516327827443467872946084350960043010468525878162337457158771202588160835160016688491156875053768919755790019305551725262886986328946417237353806266501160664280314026756730590107175788332307214442424302040640669435921517066598243396264128926255085611997592203439987371326480032396639105662614250062720592195964146668034889902186612019658486721661888493335918753723104001309245397287464917903876878020884278481285731859780478033042912049801789316587706763557970233328891886945285319726209725569560937155517266112165018054721531515735982448239029721948735498446293451899531158198654253801964562283077318437606690888076533097476149414205596795726284085894310027406867117449831107316607059509407940551261210907749140760215645568382229178978449789113214014445747563522468191549572333834310596642477595708823888812669918591267385552808697643028696558765528460058622395216103709291314129264864596991150840805024203739262105251939640704710982166860613418363320924002746939039824485773249531519454228686393527546324500431287825335737495950294674022252569153770276037355675822100669770433199421111848930949668555825778938839945793009124235653839109901969792071947282705821971343256527587812245756420579165469076631041424917985005099003029044819787551832711726581758938947431821010895122876577765757714631947842233004443855501383050151559518172924018634142523879947076120175181282666002217336459240076933780276454314382643061475762046052761250119561464576520211634423277276431949457656559922484355333355405117538169836554357346505812490893003206937282611682868961852241288339572815847967283227781372361387806786693684387015461438373669507739559079396780614370738725075807876661454370840159384418047828452868944947000921190681731911135660145827741977603396790971707927380879701070030401799221306949967824796230193618518285404026117147832715843998993531365027791108265462250371388580181917375453514815387223887051450980782719490375321964916648287202595740249142294160534547900043813499400621817845594282129910569201770881187385162092037896680114359774612819461484279452279746596489238480673633028517028795499941558044981794217725149057510226237345147694406985574132077224967313097892472679604839137174909781806203666112417645974030203717405033748340579253484216692697243676101105758258096169301147422471380255307017060110771609287667635550874901734390435345937851111237447049846736516012186158201333542223141693985848246022989900831018391595431210092194910699368193194919622098427860867005727809709620711405527061290931152060064409176873540302988112859331402999065481173954427930132949016759256101671637390715425987222034255293345545197863751055086183497454520848759886772499785819902684708471554723304376716178736995770374561335455024631452384563698796905363475114034607737987668048966192090768938813233404179852328035548090364645683623104913463614408857318060385370253330102040804763977899479326010421350984865718610297078302367360944455212192841044430932468499782781832851754450493048029999230650816190570454599236695979851253351063072779652480433042276594704967559082663823017448399060412588578204891115465774646999531023671983212968652433682825250554021141989719442422903609681327754554649684005010290998330106482640004954817760347272806131403936938597950324694581707911876789846735929147471183125514347900097052867900140158753214187672733771297684654040386788449984381656259112511156030379026264320795650240465067772307297542862242539568006967560937658921391039068211468393536208858238725786955304690595417889189647470935142526644758835416344446238820810808350713946690587274924250440571774438356371349618101428907624449218663290855752287874099398270511091578192031660322093912373724772464570204951814448888949973835490056874771049931989426319799741652549378308179571515650184133252926125788539511059375702148217307154611203566097240747335319554415193657148182612636297321817685064950588619999300508510271129171201368912218653810133541022715280748902126266063237588023270747236831050489743051795160530889686535749132745333543437396210022437015203899977826773627216870036579227652145619227382933518859361721545911525219899281700145771932607390704179534342408620677869693248624355804929791639269997519735553737611206200208285515490491407249848571949272271391945330324976500633339943292515097141545551055661274745533944214592503414085836685045436999876574785920105533620730356029650304657508777818708242249445534223353502980353334760106863816309102127387042096777782229647724908687030374698356189870425987999194552206088728609195490862090266664629146391191236475803084517861836923540736295651037330019259566762765000902363916143416266270271147555789047161220093229970959162123923526297964240304594415736294052823926118897542430517288369426760432048098218723085117404628138829752095838292889930580406151803677699453449923533830199090636426143527121761877725959051429208961966639523366149073811652320279166196483734767815920647844458010156678148793985255113321844382873499325168467716998684789003000474107614002105298158181441274938477460615072364110344720739713816969892565229493982136157111467083772490362258888233879899390565480637921217750636165366993693287466223405169320363062269364684798056206668590476490877720002649789227081217970289356485699154577713770565566194555821834973991290668576964461345941118043956778020923548256337476141048907369618621951096542469984873081827178330646571607077449993135288491412023286585575701348121932258446257929143407437650682849102362742999319453233064078533803151622756666645079640040776196290165391881808612301669756769218982791791110409967734958440780665337887549177765048946197774391153559413005976248945506371250374175649689789597662091489799869279599654497541182378401798803878010742273921241079935681573966321794954667809256619182827906274728839711540879550710824672964119191096031236112739084421974240064636743316723766357498743371171086995236104857090312546567820968601033081163898514423189702587060593552288733338279000416679388971876958551166029975160430774908625229871443512703425527556015604487853660291378020890658810556585354399238576953827541118814960027893856480312939141722498934549644313966092738383848557052771374336538522132984369332031255578932299556085751833561398474905528378297945280120598805644205957697594844991017982579982528028547789164669935012357463640381730733982034830728658746977827476339901860769342405413290829724817438645323202415402795897261845437553037082390244916520214505880246209494575343540068400386065915186294145291182465108920068303204286376465084780444808310160153386185082922031317263922412073954572445837617529567017300401671418192598886617144174380298903886168843005042545776681095015993302975924053673531515001354800805935845855053947052350389458100821578736494520516669939136908653621587947514068430123994927721830341947304566924608377985375802619232213467845455388590013239823281216850091336848065986417599858497969791928672619182193952739603650190242717051933996952155780024014586504958894208057417545349417478007758853624802057466290643522080194193598687625963955638297977932248083239538498476857281205412479529785501592801051777099411036749080286703185534328949052294875062301759524127069910705806763645566666807206298082182104096053957162013026755493235620146809472008106446247219037683680666914239988236954643899223216321404961561805805362803133642115509477041440211568644545371001401945793502920182849527540040758456166200515515047249562675081740074183804935983559680455815368698794141453339247817593437129228022018973098360499002912103736600338481049127235877406712528934409581981980482543525482084800220534842015991440821606119212964268787829428718488785281596069835171352430180514444064117916002338012732233087682631620379852696337352963350978026229008550883436460776507307944795912492605709819613722726951589242631312452954418467351742469029057748389298499804157845830336422889989232265278379506777001844669965040726010711635131573127179791342682000123923851174298026634692774865720132083722566488425078707608395042277112872396585028734079380072766573540346373014094351107821664901863638206270003399802018191696757321923710222554016599036886021357216860454907338874041881901497178674988695913841832700938516615784461301162370738894058781629256188362585794606942483502229735290595832124106423743236362194852684803310603837418490319265413524026011695132482422873132957432659008580290177199967191220812717862806471327855968547891322815701323032375689107846864719888449884251807276901194642509477597283353230841381190497421652125954778451098311308101119390008721749189248706480228275888120236738902142708801510360693894198122489088483080228427590469791662962800811657492636757988929909047902311716031873543511388432043316908674870665622489759871305619348451550861227056743231747186306817448105214946967481825006924591782478300801517015814870504768217645119956007023797782186546520961181172701688338926683718433103243542917422930322475800204823409754905704054765714627541445965206601018527101386151435212020587900579627271557068465876077882018520423286008571734068159701238538696444937053581697907448267995002850249595887948441122475038443224544405673705983095419393595897893028822303748592967811292147205234980429415269596458400800307476645528453269831668626410296584809946983890139592582614655647414549205603204626703575814758870126319174416770606345592316117935624181124181314893734417927536199784020651056255519005823589937577526195330636325223620059934953589866102749979812591446521257160911504304538373405510419019634847755665887406818828161883131748188633736514460523168124869868060552843814142351266448488672068577342021745710671609101274653899705230660486614739818322996130126132498539634810660220048085479190233159714511355944719307795145246169717613944855565735275329457048935095599605793603040145105121928161267008156284315445312461640102743377478038299238112634523865922499619511684942175959962666809431894811228149085836426266072617753360929928279018913382701475838656339879529778866552734885142372277606174725474062693372866047954431866555436412465439901046263489478290067325078541286594581978582054523577932346100062905689301099793006178269946902264090694535127284694482800001512521364910566508575832397844996379684525408806485272433781976150053341219627873741034840393945572002329357834410159642928277833658324500306202459160008026433259905332310520946066978534029825480765601989466395549724515827610374000712965307688824333999534661516229175977675488741772881527139876543814740887040956729021804894383788598750680449244661227828763094176523171589119534345387724992745001452906874483995374413244702749879021202150269018314705815212458615326949214483993162119624931119029420627178454906978207807010247723819407504588138945880695666031460216948411368556334617746728367957627677534448385069518774526675741936298366451120305693821406760580834433128035748474511015256532809030617960762810601277235569326905463150555860921625798369388170829400388274580249833613847316607280401700988513626883661696475938823754955910541395600036400986839508962478256424642466721433548611185455459797176545404094618481775697561728803374380001199440513618411933709548716620688841806193492119542424345447767719231420369802073514002372067613931788094193179716576906771583213922855614763280788467946187302300104715198798713540194609772293696316913618374739229233906925935569558347617661590411826442438681072989126857701817310043083093589313984744546445138010432440956386850772548941385454725133946735626476997509760812582523200318319098113736601960987379023076091776630620589005351465150443417473412435565801774056370557244243990609545007864136584433300259746396570327547349349177554584156354971218595144227884488156365244014394565529898433031749779512015419846182267604931299066295075332621248974430893199020080786433337501686778411606453521134136619752402713224041540087402579139881395806164408838952504533074094577015116207967594683858208509498602119974128769911603850209129352522756339008352449132931751125882242411651163002024516376449792143332783263720053677949238916364081693165173668612799643501046245916360903223200436436841931476984663977780982770502252136026337185016718847531837965280503888401217794240785465194102529699176876298092833614817226373898242210797094023417075228456834170624756874284677285906917313189472819518909751572451456804393539892345609866027170642099466410270520052651633960409427972634192671408096927255140558464344277540133362003720871491340266033486492264261994514490721354818540435014298261909910418490127105117774241664660573259507840771428886847372300619780297165778628729687672954308158800269449727910653882002813423935118991847171363385055222218886652805684079280819688282933219520562035701736872915925638107960693419943193054720892173388004136687173867094627200407186913515443869188313886705238533230600052082580340722961154868013814676630060172324918016204995617468660662585551004670257580071547272673624524626573409283293135295256808592690370604663258551916727338454912052669739561066901681693264350966491248104327212132283962844487235266459086017328521031164289153674003959575085310133093677848262511407605137707549843282741081109877384541401262573160580216016791707910662189165606630513293534506234606343363001560622397815931218190774537196966319294845360875689849781737536291858179594540693361202613188544219037429221401167085956367215984348601220273245101747845248953219963284506197551243164570563719948738262474855904133618463885934377396378956321551307949816809108687747162049151330774718028116274595365431703640487113079544701653984284460334277198538600577022812851386626625882049085318539662322819446647972351769642497555175232577859466175113167563278062020307324877521081123004904819176702259164490463876141255857139024743758278560374510919065654669553378547226913628645809939611237945458890699667352202022076900799223925978139018194001102770807462514776100415890617822019056919384598867315806884102067073008147024618687992666935979955353257930700878151004281518511784423584826858454037561402245509688344993995186497136715822128315814670487089871479985211267869180961565123959828669095750745546070292970540778806029813659902239686978889959462151839600452967139462571540276145392953466304156588367847418080851862202933263271812471800169621403614211986073623953595733517184096132141428665181840621491286367179929412517309481043908119547120362833738840777982114331968475992017255610258266172257498848627593463129444340308885033473193857486171795021981971446246589101262913626864579974398451528258393703389865983168559033766327969613224704834721699699819050308962187839195126517085686544473288320526615441632944922064009220738648816379277973295045045863684316504493563418104205868621679548389415818136127196907276769939029376770892955720210881695827313239071600791926263411832979675659381335130598617045413126059899793297831011271024864349311194239391147367454125877818273496282440243915322446132133519490613372935313224362422339147046457434875539561143536061574064720066700394245004425626316616014072515913300147133988071891936192422728489624044591054595762020562375125096379805833356877742597238067168347257634817911854897153446629059997415455928416276276464936143555487356463549368272201946427501411003098951798560960536198341095962646636954563174182261013725861767630483858350292604347448963969510825095951583062510434926234581797882561535955001027568072630097489421834615662843948532713789285049082642126687419960809484021989859429364509534630283777758713934393227005488492770630056129447462027272151811519395984898588750968819256187266636068844399721267821554575288192975358681385649698823570475046801680713309577517985793038487538187648194291731023209506304437840416685768963318825608597563298980813306816550576423624101306196803465709181100152132036926993126061411301631222352115322468300933311207568170612181937237636043785336744415018890791116418533369320050406819663135792595699144725706609931931749697967354843034854292848442273410925645607164929879517338016859401662714059336869865887779694135785159295185924405407803925160656445211080764551068881199643404172258330203462650831679981113848828838392768993633630147041467799361607218420167882855305958480592453306687277404250484901257838663878572432806556849863505841609066114023253295405695748266664408914453956451629277134509026195484038879956285076350646287505370234518568703903505174769932531165503635844785990861597363246829740059870617445028952088318509880292166106010915735501851636693266657341121613985036056993817752612512531114802104751319949816283582871990652204312160359244281369227694251663675212009400148489796191071112357001981931096343029235574512011605675321012275189691092830946001174466448966050493027930942331150507812707170267832158892276619726861525901742695663249221669194044702715145749242966566775964504122221219831598834722052739055664907932890427779240752816686050315676784500853832407743829612559672375163215498278994724096948263726179556404991891418352191866446425842889897089401816082451101925641746754377386815130952948337539979646479407718663590885193808099961952117558589637085838474134536072651282581964434056037502018669790010882158004530702683457488271592116540190591309524544398439981353602208082381639165945815742205541822779732430672418223150060139923779898998820371815699515321158554116410604799574936658354103699826132320344505172735393427381126722338154573453650480632732779404014857636151459161096431927178528674701420046986876660769779400695193074434522738176648785557704791585685771906452510503718993044460001381226767869564412670136974729982776012969483255739649860692263282916184714810061475400756815605665211416851597597999845748439308237719497358555612883125373466214904541313878408963640109455464771541455734111196146232866958607651152688328954298786401434707839411524733660035972846652345761333313523134776056946078019431127064119256459449626494604689209884941478450969275684726448988130661488738564755369450097708341770039671863557716421285804346352966327515758769076249131194807873840194289790327354284707860291037115346629957017529571518841852435319071188399428418794346476684618642093875289199493344212450468027151109855307800768434697943401624997500075752882311911437342640286503205015592141442901079275725396607185021249521083159309570972445253482082223701464220136012177127399372189085945694393707017065002828765724291538726595385809896331254002799547961272151915138010046898598577317296961928056749262168926065862292520031899432514011585614322988028619051121267570260945188046632199115987952908679189023026568916293885210109251588056570337213264759016321968131182088863512178216789012950005993984126049774292204218296254981261885770470286772684426267557972786399186677588226868900748935139388381774684377931213299427891272981040476040251065502531235347729610351462630591447891086195984822342127608396009665398408637663255799385655453867701280095876070919524020686417736886421521867829074540846426769006825361202153961671799211294790808575793136057255709950301125521278656253316778152140662019604461605268756100622655226374629859863516677625849947507084786795330178742381346455351677872546266236080540818177170800825453462230055476565603566032124702185653394437639985180051822953430224428456306348319818305940179075181146637910241701706435597153057964981768820379084976647887300852045131076801376225272949955630028777238592311997980196558593678459579517865926117042092863415818316889057629172387760618311235117778079792015558580442350250133572105205428847757624187174119316070769657444323066596904786281951909058656799927993185868622572817268135301109398258851999942568260674723806822291163753644629479669839408663915265154334799991615987461512605165691045699645507624617246288963803969793737565524788866471838909820940626095414965170150616550001936207835338605006437796495107864003158445513307849138396977123691273363748609374378145337022529920189591225857642415334678560924223532092835981750157526484147377108199830001531411857517055418079319220542344955383577532970906942541814769427042732119891541472548902514909115465040154134522018720395284150971704609226421879685652730903538884283044287193814114569846937222420616048396780330986409881921565717183306058415006431077104542693630220530040891957970296561746046868370716219326459834798070780593451413756167186273235791433088924001705846041359075724547948659678609789709952620258816226789508975463770061001291379007224109030040380202871282109976753907560400788498979880537205240474543548343354493903236941749628778007659761491315055384169288198933260008980718246931148426939429946316743168585111509493276741867039319147465350343148167825113421693548280520968508920769667179819032374110793069142530886906238258878521779420197306293077416598028863259195023759412684899566595235150866574352004645420358654864778193382626495603892283479080717128449333571946248205636694028311950570675855096347598769373867950910881014074263400591705136785627528486672807856297674112438311771617109210914819163219656442406478161801736675499694018133680462948461245116988234610769808161511400997326935070517894852499176764530702941926976563591805180780179583055070749233544097005349194692549188074811726883442514396898464985570243364462481995881420511169158464693112585480794454740326167964794763602955875594206192441048781403504448041361638980277110803409811644451538334570216828798336942086374125553881102726266175673077168070573763897869090388409939733721070335322791447050865831349684600478143965074429557218457153931766794114868818463792594526376908815143961849429047064422230901263001768744831192525186486854550536008497758789010925580198593704266380036276163295749538658898931343985247185573434809293071141240297784806847103386033335290238552573730864024221968185880283645393257711076582443074772588340429298996540899025759160212975447889332956561382879864306446771554863079689698380178083954770162663795756792184968690258088052081248967817282775634474671198339079368977584538074742799090445726485069387375420967474599798142908560640537464103741073070481926726449648128273652211012172483000073824833717483850072883402327259497515355938678985885439515853152899172804960366705113615709427051604260271291791392556567959250745681370183230878446885301432981870254853996650342911208868947478858037824012764668856594383469936703022478584930107259584029608506691986233830531966189072083000545326518279852634763892137772789297729002279155715934039082114374926264505035830716414414391538176005988140959180961038573517903334505432225490680361988530292237090819196162168245666852481201971421880069303312237028304478825889368635574754515818090848222387891106303797323864710867980648029531674482033171836536471089007990132750505538803692405487166033901939211841690874359605998766201857488450781388164115584205399941120675827501745892494766759627269093098155452413481490497293063570576232226395452109199556425888506354540377605460531611815793047364070400114396573614099318001235245846736027993336755737015249579928062256572186535115739810286039084664539616090264100345014660164109248311816864332790934848096526469127789040347841306467318510754750573079188079768606817524586942167920077927975851631156538528656352152713855775265614131827433364575129423892926828712420133103188301108420111318995845438510642934538801023914726497179895007754204328723105153107349922900872704111430050260462409694053652888910323740494658533184949466922025678400615159677209832495942628185037379866068164399244756305358199363091511973787550494281638879132079501997933859478751296866013275664601841988145860982502608773316040135358435414793129355254906073956579401183277488114463639650170660100400030522866413110076246516667622906194559739036184728336406891162499541474554715904584085921736914738621945331920208345365066946870824618750929532942122275490950669328735721072995909479322137240364295228249343719303653231086359949437030440198169680040827206798480458251480509482721502828840082031168079057728032875495948646519218494581482903464425306599709906707438019101820248854412549160982387208380917002235514373335823029356189999435920748307641814343023356936182654192652138882948526211498429940740082772939327653411452900919054270728214223473069068201441776784412039006471194005235916266785063876394731862107204996072487580994381156932758208132830521376287921467521719528888463463375240338885862418462766308223063211874895554615132302381729313383030347730526671589449238653569079465303496494343357337958206405441566598735290299502064779188257832080897378734907161305048323066136708959310330246705095554300730694493285340543559662807493431395629494443106423216778200437070219752387687012003921749664266216617850848683992676158404964878084591812014750039984104736137439860859159149625261168130360098786439251668728084235690611617982496717286498836936248465601764497984837474734501208413462466495863839120044124547030379039041625895427208666897338067761580731724055381269280653296070292798166434410002178063078215368745740215673589094869509431892786357709929558697388029404102132424649283392275993573889720518754905783428178086959816616432221767791965368922003862410482303551929916443280080816749725772326766977477752092846378255161574639952450986657603440938021341626635088833345168246548408996260298314732266611452758849426532872086523592191455266085424127427919423731103958331945957404540651622635205851845572885967132085748157995117476883786916853120927735231402132678772608688247815515340103672742900655824503531961013912787747569597697037020863058526673880564546388353475353518687036277286122826836430503342963358856564126525196325174904126146953822873358748677556067048985465453072768026524873838996487190702278663986448296349621404601092113475688535070361792910136998832022516558438699269770511859226757776412115460158003804476443459000399091533610805067804631272326745078697331677039839292823255864473748799778165835678562794569551761048506346072859953138788845426650365371336687876659397002514240590711261619779124868299973026317510482770270414791546937142486707963161560593197360649619795083138537860474027070008319184743526226314512724962717059539406166334045936210276757509686076013022702784597509082339957461963986344655907726936483568992204898592699359024781176383276250636621347816898182069142131903625994111299428037900812417689791965691380049997814604873930225894155623338911831823256759494337140381721031927308999241154131606955648940832593318189079213487045671921157117253857899008926283158675325113836188677337527403039931685154692839465491818790286768268872575209372343126163668772236579850462694172704139780832504913962079031633217404558898156254364019336493929503045931279963832386478156230370407445175928053029805086765733029414578088623993362199218259304121570978773510142763521744903086125009351423459622034959972209829388834746394974165716826723695358892119322070780582854330831340217299794356052312378507768934147587961063190521500123685080624926536772063035281615305317571809299643599044817615348940959291299048365348249684316266180962714623298000819004501435589682193676427257615459095956803479072204925840279081834276985401193360961292436454629856742235059826021360306068592253944722239610446410794296229291789914079956789559804172623464436322489564358217864888395554053383380570312594324149693135938821689314009389066491655868083144317478701291511520448156611683402735125599850924481994547690135986580379851211948367987549887531586283010280701877574120351305816250502521640847114694609016865975364360321288266075679660511917942981725171892925177376296277838033131165432223020154057446105065804288526401593929596463694515064995109979546745150367727459350511327805236683115714898331835747706125870405393277017075070807157558324580703829034776879054361873952628341050427634168208339039472289051707241882252714047668175529465406883064676751342832570684472283438256313630642868721437234778089762290839396529337198381047607890839283016490602114430681005175365793218740639388262722988497464490127295968327737518934345072745492754449261633777671481527153604197131253637989912655599786096489166108456076425833526042817885143675990450387850521921972575662568138603916239930812128668824241714084472317506511961501081313535419344767310934367897162972273411879845120053682831972234247968185503928845213153539326067114188531911791655033957234187147069907671977334033043622499219402009841057255640499729927142953677089497260774983292260847438433438632897243266892761253994387033337914956299399549227816578193904188625933050174880597459857995551508096115063713777323765369235912745126739634521270822694879471018469880761785955779737816869580966645384411492606009085401765986517564296710686981149445285732996006615740024802324929114648922055178385573857360044557519059391774361928758353894177402607910253220219282853399762493554702734053503240024187688728343191514488014921675422956140935903759172179084029941437060106995101167370524984844448530679551702607733651354588495713926919089653200352571276943537958990827244773505762708549919936645242524327848076509090870787803565574019181778771004361287377613652627782548351290376648997021479176039923998544980298150424813788465380545441351578837093996016914249225391448650406575037501909362455481429766164342409597395330863487472441348321873959077434602794735168898572616226668879993675074209319530213138247906933208644662277169100726340362381049927744710872173170474214996584933987388143379382239455271761980365949404121059648274923468046597169991434497540574896516757370255162407861478644623165085552459213845979477762982946546509278959026100023486936078926251274670824240248676618529457551844286827690343640297293261705799842176686313729193835175177182205601068317718290964523413823049460998379297771086186202832369028237778560192013277304340809835006548996003343559983219601703349644188044091512433242158044581091695416071040922156814153357525849680552141453496451109395463618654331686127842646681973408210881174876636491750518417311435676261817262388119671120474658891372512684061837143373792031142992028310735904704831896976095746587545024520317189332060410354416586947423977127710827260365890987487927686714193110308174075825264994896257664214441055018679578551526586058495928792569064070907713034871103156593441761860631833171397550884871579691037363980021974089486500724329652998523222959793129941263922390619588942180067396486122249257704644485033796983583447164756852964222196319338017363053184178283922480380218653775538919888035962879536537681768747643951285167168176863944153133989952442474654801455466136581004081768704817745649931008844512875282886444484240072353720460564402114160524721831911930342223271725523032591051188744642963895804613317662769112181129535743527424578894859010016056755702873553184849851830054609730450353343580026757075903424599515944724937881003919265014455747400241409072270448169791522446780443188348660907558535280113563511856022958399200252148820535128537895048586883306649129550756205846506624332520088605461909776411371132538240976046207872467756760817998423711389389934814767673061920979911703159563587836862903764050056529975674548831586788384285629004032284813806210192505058327155129148593826061276309709228235281256168156825423056067596221808751864161043507459290771741454404526223544379334410958201764179787876601011509442916743763474920527725406399964438917887651277514016311801007037749830418005302149203770174365666978483862966996722953760669516646044457883956007418878923627855992818294074745006554127073631611562031326819876211696635260025594271991937039809698547688125637863476086641473168539191234812467515743125695236265679765333878300537724638320242120251391839856312515332913619082440090739868861034129941829549550944387020026782901812046847625536664989358416106449546164436122751999238657766448819943639745050505073801062024241873446294621605018520072156966596388622588799196865050591921093613205985986749451166070546070147153037168937151721315219146078333446779730400185069168128785879168479706994952372569947104488245208755497832618137310415299866361917964002185614602691776355939419935840608908959388064097922241593407182492133953674694548940129400503145709843554957392703627253372658220542471449647359635508081823653414547619791417670219004049325685489109721175580634157345995998145664510265794973859554152589812453722842968523317491881370170343121752275858984507026600220608590747034276352078313063109447046987718028331966060858236252037397034889423605340276138974086058253895814063769072554969962014552741926962099787555410614489314849070176643780048423088792491814372857500050961024416108584189957446021560762052023268085670762613914720605719366201769837671054642514374959984977205243844092285137491459109194262819816295800138392631913843864024275208510503810059562624119021657196441916363361309944834762436479277073106219036494578763435656294595088186629306785660062943697192897695340260239818027820857350197617995360437611243180971012732947073070291114868924844459085105115181304457280320640501717074468296670616470991612132322437907489709481129559551570169210319665922227656264014660233006282018118775364059215095831908018089267236165077943158639057286288224193324522322894076413981612349958750835586358112980426408868367947233212945399861063687662817834737307006065975630124880436449951660164258044745567451513778912509566333608595005911433521697910159065837911945809730428160223404188606262662512235486574372366985551842495896976928455693524315326529708842541123484748012587870429772529235252301720869185598137787071949070707753928579550940544463360330807375086914220263093044751651767659695538257816924551807032072073035350638113328782435940949977127965742345883011304020475610604261142678896990973398099053797445048072329332535630911205668610872209228418529978705561182181527463019492620931526564839377290078181709458195653988199195959343150900371516371428995301393891464314589420475139214921765918949548252359823165430616451506303575693241287808453841401802450219176747007426153771444278121490594271903997102232981431058397647858057844305558301442239356147874517476156336834192454158413248397661981490429179150146267453841387085786238899851301646999417105794736495647829124167568340905120515264883527578945552068365051657090884187750882175453910004156313799016526387939742233339557829453908637982727282636016264599215114446050185277564094213963565667891571921180572551956201769756395864625450075823646115583375147452443641705784706264510691973836817485791041079180425044672577365593390413817263199283352901388516210830030168905167676377053470361509693444524842124530929596413662021071343762964030685612871330992538115866091466221831184177617909409553527273102579362605530350533765497578249771864457079491057120033515099652613524973341064279163567754837529043788227527708303132952859988367236236195912852501040721427478993695464343021742454235294674277580902144401732031241332782525877689429578987630828442980399632929603239806160465391601143900284773230987648689685985038176669655854779108856448160192339595316653093650061393802736209849041186038020463331299246032372781738899744182295291713188261734008202121953133341823320631876167868238340676727317092932386836666091117882758375221148982582675065406459586765068255431839758993411657585213068698429280871933293412391509877205105182499899769288626932910435121123909241717445361081131219623676755575675955124851350014313818553942833087954079807560867946197547033702606808312801122422883824209622443725400118011740228227470900690130142305269913719915164148180512968579576689052677392398542081953778934686046545165257074075313865498433763976419467655835603053304827718336279748447890558128320182892508803373875568845693905592535239961173553603310409140030020032020567016034469393828857793226285311163787217359831897523809521296743790335608524732775999136690663555897606016877138663790010805945194884720316561042113540018031377478377108899229173137347725380200931847316067731683958220204767118923387526963801782311236791262373082886742612537711667879389417538762079654723015874070275216069236567795851354530789459579572911805592904941691586606305944004401449193764864852804172680547475951530573411631824230750901640295483565690925900949646013725851520202097293749224036164878515397324719267624292753573258037439580856374386647375485348879302552864831443910221088996315546944026796244546155242282176958800428730730605222122004880843225200256246466191849857735642211277253806734890919069082533208143025026458271523827856859752203359368387714054750525796641831293969331952223038897268645244765508297456012835884251355828505485205328240580183629789394199720706848104617163887902422643481910110268505567107825398482463456277929514351267523244142207197771873049644207881589406614496706936719821503858033305609862107660652069613195907584307852567751098835245170741923201506044795352418895654523683661146443543127438568329456907959868616017827708265871598246850627498991495608428148852579356069606742262187843008636527867793766434000863758830360811347813970487323637219573681942083154652654669664797184300939428280218928247530512843809788789815859550886036256077142057577588215005626662949340869148263230679522486431135405844455321213684264311065926334282471007519083740185653417605968306995207774185819392453574835960821384036276554399710765526417017252975916521807422644759033461995968887110500148254503595951322068248273508553895364412842850695275737795076056615486662544441165665801824989299877420802319139825665455406475366464002748712582256268227203266548329902038539707607800026051175876785208581351513128757090670998777076347481853066755935617930739640830489928814345558433405049065494338935535715092103480403215514504359139976653243406003294691997655435716718988957918308076243104248934233764923660559367220003880712904581099936487764480290194057148056678518017814942272909876537171431901964131259511061453353774419690257750678824706887866777334792182523225557520974201765091917306791758991088245157689099279491038196400534753139319878180215811377245224846793084965956105801416139941603275220585866253835818774690834680613791382331057562446400595146663761766345021333228440002507591228915320193011286027900116768147173059631352545845411209090269719663737376848228597692608544437422813039951432265252218901479965598494013176569063480463898880305688427258174158463410655585268075170939178219695617628886303525848288455009696140113397624714826008290822688596194824276586232767148297076566059403410648802613832034768350872490464917383324430234215732408946697405874970574742677279131249285973199010846470216253221937152159519403374337373203667664366835965242742348729769672231500482366656348433464346575973722628145898627901332621096786547303271385331701215215697805875628416063462778529841146869358826754436033005395765743715562944365318344944259994516555162571953583181566452288292396790854035834069722925978513988990599191932939049309048553215282254028293940773878206091755761748443909771494207016262056202234036164348188281644840563917662173145377940276168196234099127805492771612685534592135296410491693460947248707659059838132874491422607090484109160673443398104812366672998406557806708190611960757969870673125019401085562529993379547038787475478798002637348803318531135956475353760699631098766579580579395481450910684818832779572444854029274475336873228332677532617101977216997155749186935901507610039204382239012589332313179084288124736827285275792383426606644010161035305465286657114492443390372003172834238903506229151246092989825021210689372183958114163577017286767345473583971576637076822505572205804568064078327239519320872579686664363250077001694968412511504060058654124286215721224679247572759462499236737185650763620009689409263257504612691840895554921265406293275450437468520078268278875273988186210269812378870940479707343536589452062886860304574097634645191585299829744678818185421168828670065115682585758721474651715093100778412071692577773871726339614620316451654178976226435937182254893517806237120822674647138509871377766017084463706027201805340063362311525795456489653031435523595260674554110942379811818946374244745971857830659199435331000609394388096451649021167487771369662424876666146358118878952798080160324781484473110241465875506952533352991329384608699281545646002261719421050774552500308655146552148286633082015177166731291924538103413597792628117956871438246869269835511260837504595767802374937895618631096106512135172439942652512835579710619632506565139245620228537219927009906164258187314626609164803694689286202899194920293862764098676724149874706257126423881367356503450086668663320781198648399824038397095013135077834066151519331363540001097949821955486873920393536242987939720612318393138257916439733650144003981703488543200365384118613040432002944676253018256478569856045169435005116631203970612173555198602498572449730444894167188757492230661101815048480655607574916419022142155845904503341202568248130069095691764638531600027173334916862171547528019335535945436775080734664455931127891883853914722611833757798771531039881011530270530302056586937735660460244082959857666845289354408050396264281637949119566162292666669724925424374890486750587073287785609324276187470582151465944859903420190794798050117061717326788915344576690130262413623285701860271015442560035921644204746590607803884483191090077213205121113785420951113269560465363278700045403918168411183315385927485964730979563635523557804683534103632020726697012327034412953933633264927807697058630966197063473138777954428937381696999748250374030726679864647244903664213431210638656671464714223139177360544818106972201463171713213026207332231336431536800293363974987636201485095217818093756147492595265354944543156647415207216193513470400837806100417730536967036160397924819698564827268739851350488860414811329995799749029319933188485922105977576204422160439485758934525515522128604986484792428239559327363109750730810001714832995428451391908946368793982244044142200043322162347978890781881676235080089683232953866165228339120813695553176411401390676398977791151292667165868675902807514802394157185411168884971370906122347800749110569699425097824216587348934284809328083953261788630231913423303018477516645294711338338059716548132093813184807119400848344463391028100524303913535851791964848361615359918292042591597891573023889193889518425471857173609339581743914054445556998925699937478911470162600214457445354216257187792885778826806019396532114400578149538200675502670232013441907641919425912192404714828701434822349403589882768593697888645663972208208836558343673608655710617372936750997353150660284042280201460025170397008909456016579755060809101947404318211909355307931345112253438006876453365271710881000169598155286429854607884503919322721184534218530680036309782770010898399522493525586741621905418996604714668481192875816368681553431885907076122549067078291555227678078546536432210748064944261891453707636045605732768944746182058064257824655555341092124361538102402615605325181843062439830423127629550068431488482462164630810214859159816181894632794618698383679326023941921937278330202946954389283176769410715861630069203590448268580581673162258291594170657277459855683581947228753119135895282072461361635528562622171705767433799267812134086487414422230381543638536316452709669804541474460595180809708552059251715891232415938268208986607280304798294324199330198561372240580324626353152759283618451934645229003400365287041668376072669246850897039818065176407404208896542868120070525873284472407949218531333054734085509123238510016907536829608288460352539994969028951027266443759119225157590566553758202851511546554881981197369245711821601610947685283222085296294094387432630954055462054914960608476784120507003595739623058835178580068033115800879501953972764568379971526219454735801326791382663170346282613536180445209123880665073341707533347056209697310046841596892047289209683137427443157651258415780861423946507579290842711875732908293857388700640328000530942234684841665140640834105320373749034244450706634867513834209305490141346002169273635703482207629451901719606089999857189161082849215027526249389386355980647915683907643137306449904483196116843092930434129577429544048783581818118037208553977417835866717334864188183696211207319184065164396991990037838137047187155783897962058592643230586210788099609934266351515152425377065996379643779030912550510265919100997127429120004418411407251757267076917901308367017343706617475961898071526634979322266781813865976523345742574098000139361354128929090703882044769797139012919450666182211820465411973166132234836307706304787841795361248039017499253679559463848830870105017855696456270186750873545840345088573376374541714730565667180668321532830126669700318789693438365551000105330055582765344021698035945203208481143454168983385347062227779581328006368595813092337262158140702015421898289892622832309986184646763309779029248017086914996315670055777974820721637450134872864949440131521319774846942919899970054316862610228041989801185897831271257180658812204435734405844697862982480608335085169632115426004358879876767668907114789482488131162435978357162817163766554474807703193429192668824739107483411019107604351049812961912573168212188352415472293308514324709133199436343476528053291982438012568274462552260351373192217256160297073978484365156313531810059027551897413899268825626859717544756018632852720706663398633043446921373878538667283706047090264000914897624057041697470487784263623444770223594806024720008879688870017481556822293713120791928001127793389740918325695185383849537758527336242230445801561118356998524783123053000563616876380826606771342858691354741618844716227253870444352596795629350982864604946850548054544036207532586925579828835441176920586455284522512141810302598662401188034254933190635809108557729543161257010092058072644240239260799094185929027355079678643569172697690033139057137318213060662249516745505515573807985215351417234360851488040555957311954077656613379066352674831868400611107204131203340694693394480001915631988519569953621991862384394137511419016367293508595901811957439609585090832748931150216563297912206357174574313945978949433614295357889187073672974845068999806591076470901860836346004668692023086825159332584611537697624342368900412228745796576582251165416314075813961814740178863686505164905369575259849344397604944228005710951268871308415576649311755432388781024145599447078346133397620695088296887816321263188955378243503938350362808443923882787975174961717618571554153663999031850747468523672133034592773961494574254130953499403164927986427620500703086009112638341947411442546284827715598749331117902424564842589815292998226661577131886011773803489832730798179214152044200982070310709698095320683404317902461583812654776692819154360765775081556830944946272614372683630938568194108067154911406875527700095585725901595108744268564091354448895754644181843168525374700924344546745543132370915023523986254813404697589640316752282885362986466310393404670465207962298388849304523208557008013016574311164523761070970636303187331726643981544964066479802871647850864844346129962749831475883729077661231948761999871131540389514251202850512984667413311485835711634994969753910300958583786066368096286201957865589644451908759588316103285881242149598035824410161597145380054137147653815666963590739704899078068036184103310982036067069316961541259944527882295639009322966336870728444151701768082263436135998135040370448414791889715622421361664131987633678609119091273480624931373217645410600244161096047727679805375359451132832460150395141301227830445232765443271688392003402386373024858879099049860557951493028254384168426009386471764814848670829947275109628943916957121220531222051720437788892488551888544563509668279178348430065370301453522298655483345996305993535707445344201022222881824490528847166857864941306182329075439831215200288978009523085075170332529708892114428342231100842923651094647088578077317451501920312971555258421226658865964177496879534230659517546443949282104642212240172137955464702046313104563892921907172096627477749945666086680384073349375916616275982121648566229181613851030288670657742495477005742940963813978357303234931559801626230521773108144304761331421026560252171733185272651184220782943701197383756545825478323806601842440133746369031532590055049884992915730660158854181054530584527810887342048478223998682493594901935773199144933619891198149915352124894400951905089678355023839425268852676392224158218320149027779829533918472891627120301671293650492626407822320888440835457603110553017555767324777761719866157949825883577024729345239796903320105058677325977008250662793479773910764374456243073589209600369724942758177154885833019261115594784369209327728831131463542805770020520511752203699666085018233347003735057767982864609943281344194847844823197685326173012177117123691259067468230032888018124552942014534585312507395285393712491775828699295417172113095830000663092063737456748555117786208628270010636408069704239426337944961624438607679839306085137377924319480131772195088254282794707232250726244738314133231553879118681877916610105351187600596912917243654648497935379497167027692004317048272112345002823172750219041833441977487549939538185252344793117424426514623486989052758754605840236190955511570613757680089475933000318864316476826399442010156794021156359377184651358620695654464322383150544277589384343503727244612761589874634665055480126731811102941757681996672627708936698678328992305037215790552177544226757047934276891876596365206870725057275184909415028102042318430909285620733228393176892432235505740580071238027049737352689778978638961534703964904220823047446740696660854067041614336265609840043370526844565675865441784850402931663152621601881282588933409694424164033823192377645204798887134066321097394153505235818287549822604415904833383569728260369888514884401075511991818606095708627659051599279994351091893242173540151254662691805254941786841058244906187639829936502756105585276321819013481728799415618475887613326648339338517389490976579329776104815109736089691535288614749656346880537979458180566221008627912571449439722174402535480843752120861188420313505850626754956028251916838828634124816015812316082042788719908300553040013315457944115103023199212917715398960008469238527191002994966175973662898254449495110647321960148733916075130201519121193204536866486662802220066658463936808255550218727723187510321323752447835087775815806823504566121643478975679813928918849633741603646946532949922997713925517252247703124412886801819948781318476433588263140555908398269540608422362924691845360227404330183353873619115985617526715401883722622881550373669759118271409549021159016940959071639401035571279076274842520290578385234945972960138157352623110312679171719558404002444485302598279542262464571701817801655791362418925042945180938747219341577297881074266905037290968237516544224659933318392820941553190063222910715334912652249063281289276708361434486987631649742243344355053872267504455586167097168867238254125041479538261547092946355351998975356941309466436472722394241882112944185143794019124308394383767839096960603048803979553441191357058937733044889785608457004413051708927713220779969915772084574406681997993084009910386391690971359518038780824007433461033131599943277320546191474841057242675582507166818381280842554798808834449626924948142116101389251849819670733028841361250059302679467226643647454563630166234786983669763796324267871421806047584833348621979926878807901454563768091692426130062058376489078995421950695065038182676872473000307437294238392241116724637741578216536396694645931036040656810166015240376998202334607806666805766483916653625478767429815567426308844519174901137312808341477153130367124998973137891953233085916036117665918360720282596383749795591661087194828544836592790742588804544049644001147454349207703104111942242080644540931848139006056515480680051122365481608611535423540945430993759627390744728309405725218093299522898291802518703978168169735814053764063073146697585505622063258876276944003133787937868613928042689741850205926939755193505952406646139603555212302997105979741451913225173733984604900409941724452139208128459039471977770140634797062247866776844332060490245794353032612795052543752801793639450404135805097710637937698761475192118932320698362033597860372524937466479428163442841076669587782952008947036717728794557424747993472045626174737845519848657556417359777580453729342973705237081092942725181589447439601030269799468478824801954974730539580861369255669839202710373683337075929390963121002184351030042006666123603804035446866599556216901787046157187942096726985021429317736694901345056356092669980312392136663184773080511524928837086130586068122912942892578791939734065349077605715255088991994392047857727086072409436014665032879053400492899790188110801617467717677229893739854772673218055886909955499355462222845988701810539922635944302867132446207864632954367830399429285756104775383010768026623192049752066794358310632609003206829055970234353659888127175491385206651154341538241434121897574229705005317689177262541937921091723860497596902584585256478694534181137532606675818286088174500008472427006848719607390559009284070984928050245638059030257656956983776514161405972564903967951807053968021515949415090606012303918470194489379785253752935694064661999182765685375655524313121153548441044869819061160550488045842731764056571271452521434672409742666647727202285537549599549389563512505999192484771601624214524392927531186109401585327184551355647243918723551769282895725321159957293958805935616581620819177709414356075633977083067095124421997773796150617708246827984918305120846570531530715898150622056001552373671206855180933031025174682209692197674760896179313817719105629718556493114006202026986847206554188790587439751857587136757405803629216393482322958055632176081905915086395706644874843829258215223019405828161123053494536842721732625270696332991850078266475904764458835390903061350381425256481365295115413161470006908874816318867054381042246558698211241011544805710480977676679062275278237794298240834677030013385167594876243256324008692766196057346498200033160933323368278132754456087881951694488250838276895193911386152279112003073997901392147254102262127569364946788922774160680356941337954410998542781514377627657127040129661035313441225128783585220440991557236114125266922532613514503026809910984414886490468966491672249004933686885500510248729583626567133849754735157169073072528181043220194283607742086679296181439080245218377240709509903148715946755198406354773302718381279236277142621896357046698866039086521658750293418308859806049026916611734187834646189773037915851834226306446327146836750484937870197759961605512956224140459430799367267345515370236991094171761903561485490695072978912899154960564472701942059371237796606928137299589265420361271681149371919887437097545079949788869418395806179650674420578325001399164847169270966131649609258390927235853551496181328470339118285073181084741874904628527917159546830387832268433926133951468595994457173663416194394940056791100491488995676197562259490547173673071685488678514942922013986349495723861437389584778933174418745043052036425201633044801822968307431227465667855833864469146265320208271392307860195468712703174365374988960359192152514093086628063259986798659367387245768078009871489595544841930078972624873889941406370731072793114084914048052192613433498497265815817768834434586746710267809827897585294283689330552271236188647012277047265775415504325898716438915003177745363926566097066564427976276425741613378904859358903418607928082883889269512511684334128717297880052692527211915837448595862742361866676780960024243972377920556628343589796210024853097960341394597088712199530033226816464786636507167766927572894381939202407261103674035557957536290623903261994519787792496409845907573269426854567590345061200698066673475874806728085454001808597215210112145502584945017558570663678836641988416652307120107682378455116068500479032745299182123784548963642200258950343455663226003910555912369554465896960899636390599942923230459211523088426411840269034690264174477338292081892030502255829670045633600082790418605360087664762365379339359591427203025849118820507542808197218321187591023926999542312994757203114447575070386997343625941078509158428253380978407580477474955958476829679945278404619156810690343786826549916323674772454464782245072322178598573373488966405382449706203992690112803888052794021982830976779772744345866866223312905796970005385048750101398728372097137970258568861096050480378935993203745017147670351550860665310999232250389837135581297792540177290230305055655225361552969684862752776283023778411549222681914239514733717665342891287965101698284149578202008481485882915019723189033649818642733742303506609717129349682885382351981354850239684519939759302865731894341628363117277944822775881750376633780253916154241039871402887412264922577410506819114428889359799222778537782098621716936615754044811843803816649315845330038747527943358312284305915025023333289535280218591503666226137033183762439988342436884132035503607061109502348624551725319613750082242047216703497031278443900682601372835450415383832613222695601706013364545232786834209865988374640068197726483931969131812990090061143171782755851847519662424979949616863933007605212413395084589962026044423004401659012519125132133924759825968594823798378224943817742958728264318395274322067756595694029480256985012614935319286230117973303377452333471810151158168043739750724033794141761668952077190755100783818168474098226079074069823881781363618596101802500269388988438990907826665541939946236003247525827304381078338408792974880195829403038877014307880240202619200232036674706053089682286179201935758856226728095417828152255139813343624749710278026782452523854228933859682089066111998864557761363231363722131778993508369702867994233296899702899667105916848258827404433386612427959038576987989276878536180446533103787104315174258516306527401143496782791360364813975800075480455698476912368589670129079516968587441950168004330520015040692913319848987897534895215169636674479572144181416336150405218995558381176910780469095204309611389084067970858427813551233344064841928436297069083915278354718835287542391560276481284901380980300951094639388004895791575559203253989368405229394748653481842078029668224006764731659114730876705309928579383373575077469365522447608890346211579811958348565967206238680067077957749650249754854420279980095311500801426479278037248989291248642261850947802705448405969480295025089278639344220295876310628078393317167696748583452420224398878606864417852788510847731041496719235479113713575877757327776082260479545057696373090934138174347752897921854416099082084634160144275991305002028828468469928393052489030880466341071254276847492759470960329236963773246527732808993621409408657595356664495151169754014515219541938591173325631170305911961360499450729759402060124575304034415261063028863808428672052416210722185492903504297049497406273873680427736154431600696740389119717372837232109143835748183544629684461734088717005916329829697736951755107511843314483950023464213243306858895940163230516276780273587955546800366436846955187145182757504226356984978925832991527189677636959284651304908075105805778332701302981169061125778090024772077607184198251308033067810057712284331270310032226972705982439952989284919640306152511370040421426480147049727116864467646841262813695370350133209286470007181571840976415747325938693421178585139282408035838113604479902468589828707857465455081542500274095874343823410523494443047274171488262728347040799246315458265314519075208758498956962957053012003800287902521011820296938096045550756911264041555027917206701399153987318211689155044529439798681316633956824191537908024705612151042783727724552346210836912270434824830415450207783798075831651221738052038871724840897129959729732033788013700155031819999332971168316505782675317352542542741068877323205016780454806092348185307631782117016028035906485479935490301582014116649845947780785615794771179773393709957035634932423648598616063194071813555712743479241391290832691000026000499012152219192323708094878827902270482921915092771844036914140639438092053827702744456032872124156312203960218250094649788827444488864970782270772201914299275855812705450383807951991478429757673795409864806160785023887316357069156944127740111369936041970016316855337599659693952491335657683671169835528858618902275635739923673468164623049670899735883418656846624467242696698980757671667715044359379954818321639477690625640995710694525979985220464024733375385649018775205047202040101294226279035776316344871883700509353908461498366753173083315726543550055692232767374605410819489666732062141490124102157539240366581062235783163410137041999970133133075300239280219504551675063703099239730299265312962104224831554661653342870827739566904358315728408829013793892943037770147189409550890669347755384264821050676776813155437904469704377791661691021953853442304789765264114260468280754483158516838028842335000380240454333497080782690673766566840691216710038091003027586597905389833398856023699883657721272367316834542239646309188494774710864637129773340092327661642248727383969576802379561465195350483551840682162167582244270903201665725286506880980830674980542909634114849513377633963019683733968983490474921779630683498937076164172698281664377989135650160199356185402356154741703771675016477574759951727441324043028335512864325938804425919857336153355386814125094291407081874521690318408650058959884650943412451434223197717302023360135947561652030609776956834210030720595887282449417985823276456420247725058759565772322685929140867656461455835812381322415388077062148297706569086761995128174277056379060483078871240383789278020943757153924921525913911284516037616253242432011121440591402452601584131740609033911480393496630598876877156679587658844695229228090433663821647999683682645707354784109107975478869537046139141184863215761966900653687942391479632909877699482878972006468842353090927736657594799894151012159207831460957498441080187686330417708890763425289773448648567299765989911459991024384574568445177232934952972196364145352452075671743810587050915832105712319568954104176048030163028344901962389069177550428275183927481092734412154262423699676985491862790813532095462594850311978216020865098353849853318274536524638517003206153301339393798263815285747995547859258866542915307031212889586016569235860042846285927914585452401675660193233658557955280615739520490177852289321448860287743593412831846673815251833524061010040725765027319470874298561822607625518308218699207955757899067207237530795498831593334357925310237173052739015661591169787226023021983938877650579744157925156062789468992735545620819434880545474192571929804071312020081588281855400223251930269298935993811041318570817388132694588494737469222449437399868875050717172279230439888391689644521448667461083494153074848234948989151386814124882533013471644926212682247803835494278311977101174944053857128786908262990099574138402832934513521950339996146897989634522807549356123372646775314898391191175820029379492837817624566121344847466807573988219015858607513625785955249430641035576606814874904562005707629221864809027451433085396889896905878431963266324586937440805310224910598308519798904037177152573372093494827852301366012101193242579835584244825261774432901849709542475302047640126016558961138559389342165610068424532850217741892978323518883577548361407824280360732684666753845853695784820161390225236034763747383975212233733733982091913875926728809288335465218435834330941980478201138593624084465433450687702130563874963973230750698484083717000291968204169845473439311426068606004977169887506432891969495451231681283684262745725562852069599640631617838563033531348416304389415362973168221527610559557832714855649268014020207835247802807200257116632638474421551338057706381358195914543106402933658926434833800421146388624864559009748273058366833689266197559944193452449711562144609412006197856518243709480964067642582115918928957347471953532933647856727444768018912304747840862034742174503588058874060165909918556970098234097302259891857561517979370292245738562914962006107167024839661607645140969645039312178316884908396847173991742963107113605865586358239772393718132203637639841003616620199870658684264598882103585455408069461009460978896666529908603107140553371558320644615209900630364029935452944679592806675101610459560352407127200324349972381659195907590992919405728231169015996929474395659348137763519998191687078829505397778277255487846820407908531286640478587485932847473148615416011459844212809607306258102428046407850109698415671859273428466784174780978238830977529304047873880999154925787782344244907151111312776381702212876500129883892379149128760804080116161325209364706879749254407635555268335073895770723318067431461739561410439546294386637260294395726594600494305837328784738231707150629576057989519381587438792376978391610611622600456846703385826825248849502912939899785452530093957267816139907538247847131022896018137720925247928773326521308907190667354221854885746792353500585648738319447793772059080196625175088517259300726734277750032306143587645381984463274929344857032633500475534428301455936769954680058900912426549460641303216661665590165248376982143132669232558013097109482957970850612817347808035667142462431767342550424471542717403712243278348739874161174775087029939279941209166381297626634448569441945000034385004333437627379444825559846976377110815028566393587757029336008820225371835876035332810591832570238397617842704542637036628183236482973982580254263043697908843299029342068293524095245096266214690362969510507972651052384814717226891448763193796131266529185803056647935623873387804267574632030806228043092439235356012744170423213787653513321668302167491825046027020005031479101404762706938221539023247543654244704123037892725783066180518552994868152196158076969979526481319494870061705206582958114896789067401646558925846985771333907753322204746339535657987538080423806052351481810599649329171863203801991904244188664202966739319282273967693854567878243967769781723548988019064661307223261827084659471079651459029474971971281518873395515308076878893569970193884598052942190220403113404853298940835480368283022872570987562376482750695741270927189175307904697242979634553827692477309608084081068233296659870522420938958850328465652766819540798725929350431791101282948284751884148198950277436977627246373909454232130931858336177483854904150818396715489195356460675677174687124147451328383172364597183641210736674142241495741401764770627713129210182801093690757338025823421316067027370651622820506135126260946375088515015214991393995595146367112482603045585843194067980031170594264754862801662209935699494656375588037443729505956663701080247978287816070390112668253512980166079615508551597251034919323557488218855077810605209239362880293192518384165639080121700405055284066839766102337445152103366668545660473399291630724407080218107809517007861726462666010139126681493647565110046686198938974046232261509793779633531141972716945597543979267795599527107178881363058638171318830335061895844567439853382993742890662905748968781561962794896944942635126678557972227282869980173385888453039079118184989052152346557700193918029623751704502295034486765973210708162515137095177962308288379526928645358107902178554585128711010597941557092701018434128527418260112483638626832667358888321244386524957392108502222901085751939251009948904103547331128591226466071725927424185802139417888674501807781590433144226862317342486991652264629320813618489705650678338002312739806702378914173590989637779980835092846188162747129181629590961367288209676211296876064083125112136201680280206243031027609227926878295456241504843104440980468416884697216733659913403849805523716214590727295039430574556635470298020916504515381820514103228552245025081517091499538853522971609146474956655564956361188937732392574679702579080882616733042636357790490182264315980004362150176170863656749398047342184074328837516358145335154543319114307402745160931271791729711179217494443743625396116032250364256113272439881199197824090538852760540622584699231045450012810292336392190043658030334079228802668112958552319624906791458987895572141602382396616108771721558587924954597959336353515215875422075050680952193015160023839294962743948536768238039964344239427401152620892227699946116987953696711085825260583624985765699368149200104952264324968160109897774085239579584610406159320373443996764308623205286748153422952494944814739244854376072683413500353515574511858202093092349157943269764888182253023744020113206349267552686048455296030249934306776055840720125561293550245308480857365685426286257490579894089929991104258856722686189872185542225704151225961148300200769378881810091488910736152780213918411517124712939850766188601284120290476709072684905768181676902636927394920384585917495087069251665435302487445342428617192743522373950955655581291276582774149941893218876574286432818932641744767961196998772307197032809997571579745724682474587915504442779285609927293882996087905701047786797366143457212317338351844763877545974673996533546017545390909370353127208251990375734917531074499918560294182507858662147143875289949775118618929631324820854190347019225969609027328727011383059479996158004213741897809859367163892084180622843597226478936210390904910412428380396419351188122142174695025155582912781343921756338750347372860505752195853152575682988288741802270791371637855479152674588482700411416351319081476996866689934611906830082662854636695102051762139122740102201691688048493132968298392233924460886980879107157494107084261979455053913878340350139202085819934237661847852115434556794860489878632561575715729373091254034935886297959781199594057702237100286014433197751364637093556671182176092423294553299490359312031294784071017917311717938406814009391786226240329414968999340987639198229133662518670810870945187264069533854730043868116083788692401268430398266073108759683979258304739819126962399830458947666000774638538608351947176630217188615025063960858920536976343610667376715618931865024791156504854142254564298243788874494177788466051550655648728536644332597621447191384283224356955651691321320082868554575408346394050502950401189164803269816956991672697532008199336266864264985680578451273557608161088200219288870336836955913047362157359315116655329923409246613151326213595008535805094122698124045970870462458591755466155738560400405758733466913742903531991366025471990903032585150479509915235690329196614074646419812701787001320939931366057475003709413690905989518355552273428933700724001099819024273602444218211979826335849175613971431204799608480558426402244051416807747049751092376401334473375402478467100739834003719053064325510394878457647763054332739965422513684604082156155596381834241264072265155772242579271964344771859568697639306423247422575208137115617913578159896027062672420478872234404331842640270785686343553495347273339475350208998332910728546075340617400909899064351351905183884772416183741024321460690085336312513020461193523124348287604970652873665926343161612561997198099081892525932173527111948331757706521902302980165365939411971751435462470191725829885226989617791503297115362942377764554511411042317389063281702063591157133121486942525709808128503072576278136564611032215538016466408442272124427305023264168890869198259286662689224685674388220254022169074899713350941586714196081130818648826395896548093890135833755523269776379409864762516531632264355046850308320662317710077998870649897764065713493334787018415105373422783132953780148007365357733311220341022085285002611295861860144811128629467474660779133207274727883654325775379162839278312514944901134273088361941653090825473433191327143197628160958462069104534748356989208274585500141201379891961459593036891582394335414636444525926897711320343314369739436079948249578664101514847682251006549577746367857838324440693581158752833820603248042485807177357984258666353749553825417717020964704032680252315080793790870000748590071883425201237292564256451392757694737954057214425102917515064562259705117385871866696224832225221845693637554450855176042102292406961803681507662168277620328400647952461800482019330399401992979979149270467911616341097477529496608393768629484513199254696405758984525917348840857411071737996214773845994800314391749066282112675144265176889503783413714547062691772368143669983144132101534591980999866098688400410626132471508094164499730806559036068886483729478904303354065294539093685710847539101776686954858480409468407139062482356003353334506033928725202904150061179817603618045049966681133657366113610543021520321892734493227370639289276556359032812703180782650438902061896409967925050112819011422888512154860604753704521987296911779511788787453790378153593448250437225411177481951668844589713198833708717394195777671625900613301644935967569718966517400939514811735409007771685638317958028010538468755519062358207517334678900439671787040474589084414073472886506415151975029333943341038731449431618109663603504789639410257924961194451623233720318964558339388632273783831569052626306233389591672019852254435581712867644880217721592671474498168120855011433622183064077742083087561188301245996467316601146378297810648384026777640671274880750718147379733282685478449055859263736975560859253323655391852095106312075214714587389818168698034307211135697152583183258432750201695581116147966097965066222271144611410245444627835708188936672639665262623726528486988520050929760906527918310814737195042328740461343051105749811076869943239191222156055370915455876775361442993444342721735183522203815606820119711986621776684682792137520302750858901812638284032980905087881788278688690337134961060091694945593305807559476315161305928334956074423943599024077897918215985962345281007528068869451646286587275543875372884255002860118297120310165175629516406336340146569594570243893510962584290141751918315859601001706027384130392878917101273547536615832315035848866320948971864041549815413750752775931586888774769699288905833100949988787586346497017860974927557735746593850490278915880989933372797735769436213855282393441710918684255040771264572955987121671652203601458480309855085760449113886541428263193381144501930942122206814737213645633687823734329790320425923284977579966148733043704075546682493600602820229401243248874427151489483697408550888042886203104815072325883300199213755606857718221484944979194375520437338065163934131929880224960219922516130987172176636873163568880845777420044947672573705744356318131382407813334560333192943705227796461190585760946580797404889198357303462182869982331074841578857171991959074430662230590725556323619924654024058515273648086481603537818288384701832712331632232893430804264885007774478010279513123175918145875504020943796773024789336844394810293518680325294274453510597629447212133190487782801638649140849801346812454761119225183795392196661859991882671285704475085106495624256926385629159530277887266770296154622242367491257684176106408523898886050423074857410738581695052535380102244939095873875575699651107364737416014102577647517985853668803612822210741842313845673462823613602705161895390564708575107185614685453158725551780398897930498122952191766271528968740616448926030977826540831210416203765069237319058929238030868391064362661537030149980708746885757481996825379909026039377413325216073229367912683784228131702611044145739955263607148976470496631792590777006954441683742783378134921538834428596877658494413557914702508882780434822291507539864738072174630340825848948483476036563455208532805736212075082441964156358902996830222200808533208016739474998976869319396682901073775432646565420900212751115605874864322871022047255441785818294500177314492342000908455728572964378758895176299287867033586930469123953178448757280231725677624941214369889394236244928291017827829711925648627488535327510403904036557120458388539824635665932612835508629654930940157267095487069539637779821610645992997067195854092828230162870995577127352544012842821673696464463515414986130986345128255901559587187285801095453514224033178582395518009741900414562404419796569108051831718650943801477247493261571947658629852035337003107463181853609110576464477142381269821120918890342113657927134812483115256789833212486083804748269165059725937846222843372989645234135182948376386034400997251321463332315630229032727982989013225448725922606611354169514968205860759026591036312593910018076697287499277529726306947593849604553582743857233264986044176479095703826584818312621369321667633030720093787587945825802586625618602368082425212713021664741372776190524154832175054126233760239809139577023809909116720949060668764830273037468946302614964463206919318924123524289348066991176957924304514419723277728004456523873080074327352485022296442548768886195962402787472453149621018194290714551765277510999473545766331216798264345977742014318623238163900456140821552116336600402167274122485148843567210138584111760645711003390906614867544401873707842910125444894355947167473189822497369312463162911226138661962240930300572145758197856305825507835152093195188094011784140785628475916634083507874898100434707638972659628160498605593557987316454743330831571241038692721253352417756034912329103978314995904405724108484255371335631893908643703993077213782379523080302167920605693803263410340289012876035530423546772966139758320473224911602106979164245602939954762687774859437814571809797263573305864742506629059485367008001991848612189954261024097887059686923085258164763301138864007453746449161350867138996971051686584946724885052527573169257640707911870917759214649962996277568664076740587817149165637676152329379897341370974160439433087793441222939423577951569653119869729975986411762092871371860815954255544982225633064634455581754845362321934120948485911236047170730576045450341113231672323738578974216950315533789584614700817355819458103167969055261111514241644891247752798528129279784844871409158969437057385749652401848638675471234844803179210153994391841087645749011208922007782888038744892948544072792254812640552334458238114564902981721359960570463231049807590822512853280036311052415403285302863064161957101310104139711286083076776648145384222468383680176209464694610564109468580202350514694415030264100795497654130763264036315969805279991431957695739288160790519307978772380016215061153683653488410541575408632377780861781414745920755801286004222053526836163393625367568365624689243929905458916960613575789058194182746394225048542233745318646653697254612829638772457403606026109870327788383171396067955745949357278549937857830049875179613107862082343533238574743834032900150157981524273415051881038843599389957755635619713357335697285088851058243289997840579112243745236096276210574756975058818394018253727671275110838630890937712632068397200151911119714209743381162578881220860806320101285679437566079088370913892855213056354287800847951304022781681124827356117183623264795262937454855995812334906766914204840847218267978291267270262187197953618868365119442670628500202625879672372743745235032684009600234442437624319451053744288348476358408056386898467738652551159429648539777835601148810043248170612722738301154051619315533507751838566600057472164025981332325371180373555905683967999418405974256831767257679851139589889373728456599357224593136778828266229698050421233898355215429410323529777999308291331895069075263378357432533921434052191369160401695812073333063136012002699968760098081024887288812457519274493653646534520749147802797441125124654611310254454830775586905393708531524698881338322854936450990524803141243602455859773549604322836126173631072372978361025458680456015270395865588149042484624100944313262084225042847887444550205856690328151506124136533265146687724437952198440434509336530436149656396195926527038287354332477268997718634028962649148393965312519699391744370328723809024301543174080381150360979417298049006456681619931338109701315633654868082996737698340401611325577003867484823168905707720665674475329474822701767002009714276491883497787861155765539004376684129209054860178143451512174654792421258282870331582467945675239541328849061339384340544839090661747399635580841196638295808599770971761980819976267220865749747788781762323862570071221718209699270359773542821700810128148833850610881318171890582174148166816468984246731884942968744891492975040457234179729331545663823460364726356472780198419437585513647704188599972546239600914937671928192133290962598688049638827906145853346794548523166825745807224405361786696777451769799984580611627462450812656305908582805462234921712092260979216449520222295123076237808127154850968498728613960242724291121323137681267070945091059598139094433524201961865334831496010465703054347631837807866206283906219477655969044876499296941341686308807476448098549843890711938137060259682943169871288181501850453402230262529165842131723694686740012558183039714026773997814132913577882134261011870428797797464554947694085000360216079232465040546737732104186420520119437358680220867292969847379172088867707578068910436428034204972919074747876357347057727859533795194044508203741771277392210014842413664926194593644471225246947175952548208002525957850811862905049804411313806984862439102008345333006978092702624603762155483942293628041167255659614516999216257117387940330183240748689720595092667999271599329396861874253476208948193731300645892333660331288402313912149867585147347780039845790001326499078849808172158882284749131446277555036624927268812862907746612033950342789149894026619470243162310450457754464542991368811374437071095142256908431598213331636033261787106892338090716700607222932523074104059876100183938046622498057897054175284036382627850740681593013191547416175465285980268264246734442666629560560575610382578400884041255832527064128927821998632195293481132606518333150916514411255571520522255207523317195546764141802576728366223288955674888430005871984867939183260229029948264732885442518047360333385612957367840474211291168429730101042402605298025609043948795357675734010425376251715616810597325414550326244744417788022384829276298519474502770812780929766569251176512603330093771436890990670710530518399594444606070696348729232877775077531151595248584843733732314107789965652360380707155379130515016831280471132786214256874437801312398648173339161418441862349115326897711824805750979493619239774987072083656220868469218207398254099861614260174785795611213084795802369563791440541671935758990301817588647999544971520330884951228585088343090268565701442377201105659606676870407626206960805075263120702119686458322938496138658741547967673412310908178693005598850158240843281428030783363580224073653850935241950993845836154798734338785736583693168214521166622305167042595254151082797782056263294692088891217930378646813836377086594753642882646850429826046798402868000292133975387206429074856078915236578141485541916297923517707794410834577610517072335261307072139655937495759036058293835153855753362032616807547945537395023158805065023693586024865360064053489444725686246217303212606383855882341466754080050566144686849010400517292621124419765511186719869302680887740038691783435914208825451354711532242031051235313575045035128564747066991895077621325377596925010321501514282872556136290540998227349314611720405365996260892389183619200079594295023268027067444157063491053367369670493356110017776056920880957505338516199321454220863950773584461262196870117752251770757717485248389341438170950107580623701625398290308901364588985589153428024697181274173922933954868404988011452155432421454352914103514892627768827978324621374201804753994969523127042475250542890317740398684277213424582669603824919940748311700243752579439234740848460338524368476034748507462258933140363455753149518740423865871455465585094790467188106729432527735268896324845808139838182977194273097889431402808229304314473573006162433994657524171738744825835201527557358402347865223670637014331155563149910878381985209885661169615823742873560956584032588236977825113334922058339322530667227570948048991743261766582465686294823355278024891782998051583042612026403684844825447885876338781837165742622786460867857163263033215053056742786918711636638039765128436431261982095151442117647250026561646667043096982504039598477090930050130194438896203243569957603613873020378949684998718267950274457578605701671421216190721856347708867736431271857913386359413335197237135010652647904923377100192455639927068796158553770313304124982731614595197745265334248215613960886374462942895182705737355245600575134663170100278850582787216724449419046632845108848821946873863113982205736894899241784907397136029964174571802343202728938178053831783560646454398887690276426640139583156078920770436280176566623279453909060176221169143179178874157121507683636361260588955999554485539344537415604404063350777365995478178386273104205134945140904901072303713719338065876169587737898424616527904662951013981342010683464536678274796109324006273063588001112864748077446497462457950582684314388566665173072208172626017647725023495092321644860637715202541622264214969796064967961591373784955641112105282374683401050912857307446207624750331165598606503440012542392870696052516813091086583787381773028139957839676908814547526343670580922109827268943226443394981875734507520917167078390675266666558296030257810936249986960587570855746792445005185881910900174063368560626954289970575232205447167715793447188925884912390567109033013089406590831791144098815420445618192999801342503994637429282604933547500275811644092916026519659212181636760047952439545325428524273403517063010019545751923828594606070214102507855082404601795329313271529931042572605928999799455963299239755844760406961024115465266710926829993643398560728819521500614401542827677408228810956148751793642673201666580106849220945576520306496539180656727869615940587594897436856312043162855775799380302231833164910624842382804979374772352853057743328403966344241865787114185426328896622259734798788778255990072419940831916994369837192525049394531951753380618794646508243018532199095503244049695271607676561442788826767014507744475765715442559287265528734065006236968093699027762550474938189919919742345618915033674854599080253145648731698071262270345857716887698448341709093305463580762968138475002210914660139118584549780547583207161117760676126164514848890463725990240952027054620191961964741705353187019568228524564935704687166593222317132991599827679790799424336727254043820100900422484461467359869063231229193760463693779097200635396768404291791916157332052102638695591381964658834416959111096104550207323053181376315410473922919863191701900068169078700439543904124380001807793194442425865147583796813731255176740480539375433355496114649522674801036160435570533543266117614938853683443040323537085319690700661834081483792253892859398280614889048855151089367120848911273717297846045779507944696886410173504267085439423457485270935543451133196425395375430137081730906567001799517093116806139457728773670564919327109887670524766796159584716375318847483028809234262951128901387800220909110879951012260318625176982037804134426772887757393613347928734429313737620241804994704220612545979799220274167142867278809445451937030097801209694039802213401725946036760801853966607761788401001396728692393572174403223249437261107120342282381061086323114303604920294794094313480796724451683719054225963427629029772201894804891130580469811258322328302691365073465337609921363689236343656057360817993876444990599469635803128054287537563697455510451505490946941997892790124506416824039981557101703094343630948548895704304159067954531610952096493152486839606108473426547699968128784541924916086148586630130225235747932238377110829677621350236625625156562297893258431192642764047191767379111300560380091977114984964219063186736708378858744108933595209350242163461415502676505085742099314488892329369407134358423212602280494630557788580621228289061261829744383367967168607522424990034375807468620771706262596530899912765879600351898835782437952386356867543409577755867612052653931977301953023720437651379573192059995862651862287364388768270986595871821574867280459856830140725648295883572390993102379188622620564974642490864072105317550627036961203178228392317399494414566729153803884838970695334295424240347740178347326381441501690140358023181238336103659070225410704857102158370074871040014284500943917482164907126368315335216236940172734942103229453967408051155788541982028377339570115145321088095242995087490936477179695237720306575031560026805380755099871545711914021280742206077829731075717371405333479386028616400188684140048090937426307898786300265299872065749022881043051113218950714012951781668846833946884183832152175718677350522228331441699494277812011951470824738758693937077100155958941382669619472180228111635304271659953010540708281924449481837121578179767001553674943866876629317981546661907512210574633253941596055347044249729896535773357315264929248887569342796776602949829865789947560640422423641288184202773171315112123324460489511824412080114777516923220697750033629013307773419976906081417057820020258924840419382887838937876846913501242728798575757821924456346425421948357555649512314315633043853100447500693022853282530036283291204762467216431402620250646248848119502160221497417890985622361109774087457511895205881642368108213258748034345516254391822614893241930421668044440363226192688270880591145093872364846922581655053071777561974009729490972584622750276074367029114383244889628491463093278855681019776513828796220162147258912978032341994474316906650509379201226149369352801611039629771058973915807723023501078469632475043285920995852729813067701368596693503349398972165453373508439848118157824091487619000932944177115628957794562658944339958715008320408141726495156701089630934177481248559131349150378569041585581695732227400276951240233004123324018300422324462056334184948751559212611127866654980853523729750068867649045688051481775708729217526947731845115824403814148446475848817952058582812188342927847157430429481172134838430584364547333690614369854122750189185040288423281937382462654856908608532456451691072782087894471554246774007634109835301025426763019471263527024449039238321967092683669234473728944918810018966523877432827477835987843243091138255860699033073807604841430630287496465070838142355504084002608564506511500097625881446670584524425511213249423353784570963735416216599145718500129620280079026243024383405062188829928140971968349888937637690642242380192811030854731233416941275015362015598997917818703087412727064505473096301284716718044491851944491646495657798008945000711497876968293286866610505823503717978899747272576319283628301706638820670061613474622283477319864047549204371793376649144409890528318340591697344444520862915753948935044829078420202465877832717811100096006371194867774431776849708247041819378122880353538373772631073798759930537991648474779130029724664178957928410058616698392053189786084081440211187364412701048321613104178462497904462193577181231924436113871729898418565643325913787032722748434801963781921295129937538530987220316610826665191188498645136101680070050835419424635981031693163137941117335719678194809870887639871166297141808765734236470472297484611198295841093124341119224227640169013889059534503174695210877654841364430184475936699841368868863825891018036512569918338840356892465334990617392322402234240342623951196827027953840032635578696992206734132430462990227720770545448290133013028484696339290578877300724431840031424439969179934949599745512459287666612500041216889592396211197100197062501349668934430878406880864269354595154130044027514019221899307201661814389324561970957260830047419482401686539226150693720698692863914039159539464621113815956528241498622607612885248054708759375390222460350695375546590118882442345225694889813128450854822332621433347869113337378766282617876861908273842610709123310498497359256976330761891150780628001985678570087809497361775630104861997669434784385376065045752811728109712691351338721479784251504240592533603409147042626499384325767192970685416442453666867920936060224393678577548629819299438338683526833884383330592862768543619480578974818301071809176247792765774480884543854243930146914104919135182129723355289858810117317284368631233218108701763345088904887176400340352446798234881416744445762270006833669291010340380596147953115432528913102743112296310518168108597264416756747461642599029398145289240955009337162885550966724327590225930833021025805254974697732025504824925156867554603914616323648246361570141743559060182591729303455372167257873494700818232662944210534107757362398139146778666935238479954295677610026021131608646111345301509650700636238709875879803177061410078811534532140682290695146858426023619932329778475712241277694150036785421685982384197210036556488013429530291569988252252129440284648145338017246833151108815428794794228280376721373510690473205258633996974715464289577485232766160528540496473298239014043726841782548562908278016048522637643591050178949252378029538637773241211714363415531524326371821731710611014198692448693739087263818492723657078799579748831807189608886252838046308180351062161372039140456198881458910946926689609337938023676613521923453624364944081108692023706152798104821011147659344298876952229929377195771247147548081724980807054613168163691198824721515281398419629997899169882353857539369437570665180162171888693954877508520880093250534553932121390605494722790781332243785125691527723395042168099684455037706260908590308646294573019196064847084573047855999189067326871619804723616162783781662182355257605023626067342348126842178709869864449779034702640450726328458792765527587802953955000857254019365634019740371161734495316507134074902858106272442945809362069875328943316148352577375507408954427441317529716870342693726088088790722407918375212456796577682549342071657592997032156758987276560605911270912561630146466167809091573032437983785762774701202179692472999204849374866992053978369217035947309596679626100695966293436080850818958726096283996664093293604990794851208359997857437643091986604857406429105541641052361372837745354226482143378611887967477989826634424400075025001195781071627438409981513731331615215507858739988573118393543163915548445797127565541572907695363415945915197093638620922929045938645170620949192600155788429648115333131943630329511232047045430277638805080678178805178560210054493878277304465348306348197792225391288004863755725019288326458926938171518089671365083150728047673389757019641381194596519975766754219775812765020456492804480981232726364230409437333654899606533349387465505449367840421485635682156770324509178374956821208619910405311530566253562469805550905133428278668182511123301881659018452482631120708361915778760958694534583212467175594378198302257728963693148317861717654040705782513111950426868623826002250374303113433590996370640809946672771328782186483651371099988288568309468317081300901810097319199198738903112777817865951851194370184485230593275430637354137191702213355430907760370987352069250996494742228000382153369991935686366946153476626861675006528635864727555431197256006973544153159336602804647311272123745435073129009868242139956122782889823702834053425261227872736712821647035254618936524815677195879291192941221001287279216219081509565650394942742122852128643228924315757256343798123141507893875838725382168632379882467346844742398491403209191114156012387797896834768260333832088783427097262943990964116944825852230300717113275554479224719050637004562612067382305730067104104923879973722957349025355049138499513425509572329580531515895918540502601575438990512749863074395052926447532048273105093931783575677241851432798098267051259435688609566083743536817335256710524170580200124667561255409256220568021004039821289055638569862449460067097229597457506053993171373609785262266570361418486728098011087935121624583388853590617320080299198087126634912719638153589898568357449122283246641431888449400550393151588099711071522811274728244930125608466402920193073317230212491427805290273557625303386200525934502359759185633274563303367381341177072876595472398489517038834408339072915299215742024889133514816378108521553257341105924447633987388616605685485962145050829322732048973862949891372720031083494334296591932260429451323979210169255118129816651519953062061914249311209114703823933651558040909892283667814926462303972411530316955098723334626920517574023985154116072271516941026258551306544256368408695751375434957685839500140687384243557241415239387542667024910324504086952701676990370975401607518379305971096366334029714793408114684882582963762173230187470963569232148105570853509954381014428506505823659642821558884069607899382727408349669732627232932448977491382231658006310476186022245609878521778118560562141503211551915925397521269688849490473396597841858378289633959980510147424000786410052804060274052988797136897736298016773415994266659490300603101414645030060043862156656119242005089906180475077491509961936460462319137827930922985530835653324109285759686250190889627208496884693383282228147768795764249519971762305603796015336139239266646540241472227955596137471603421029627648005508515889063152833989690792207019382187514531321113954218296331968445839918905104838086537618790587657817341351294842079960893673983024045500306048440754602825292771157897084872615345569940467224238390774906146557855194264124327186049819513807082131539425084203171300664438587237692726112199747891073738015075141730660828733480982757673309949117917504768726799895746635042577702233270007237735272484053817041408230657601967766583630780640297085593150612660956974951884066311345532360426647073753017448197452230921949392695365874996245360556754911511612382768475907316418901529994360029138236144361115773554541780737489335549927223616061502015635852538793975565861406482567431507316274678870817270426572696450017410422372355097390061803497952426662679965732590817535513954390783431177759707091878533838748053864535905137480841062226921101800785502883892507306195152916712868362472111679890349705274264270025182801017825383826039521609205233884357933129899598451625194597396531309857475141229542843287983265950366382789880909375532095997436095742375806295622426810636378027468041889435044638388445734579959661865811516038164989485750105706871698098752033615655890114792672595078594909507231179210046611582871235854440049554277856769114507176289309502887476674627834261368411182729709800346036603044491615608542247448094504518637974648573129921927884632457167686922628462758575078664549776352798390386949379640194697452807938384613969607967420310300238305746345710523925041491228105930572114300816022781823613219735391132830380536156363262271768953398045486013751815030189581438076172675251872649382189792902910652562868102281225341174904306043124040449151365044117961566979512419742650449179474791316830682691109636517594976662803769223930257229431465617414802295207660073935023601520290093493038695773587492542036611783090202518265210813037848657502087040928304643076329471763565210435746529212018589524872822660502141946386152651544455420480596985250112491306884208636033053768495128786943774458263661264024852170198255048853759220261408259136681669470010716456659915507839467380116833296458576643308989265278357216440902409563531147425570642701392277419420213950632672075161519881145249198540049910750625410518715303266575920700480918561420898451865335913716599550303432434055953851979642063724459966689085671405027781151142365403555628372137937592288458753055378764348721760440421212573724664845938915622020754496099794883692024928595815866941003744963786624294694177213968177257636767403745977590506304694042539761445320302609706821731187246217025624149799930939662324000008944049637793728078741361186845211732486472838429680337612336171443016702390164397442067541135545690918517836078990894500236850566583146443032673668002357739344032086001658170519383260429417303347270312029764032222725295102123592514359894597691666564413304481237585213360100644346419162897538397569042152718610869789891395837575822219111950349766801812476703678678482434275210624195018564398441396337290281849525224853057454032465269595487177197908606997517288712584341139596262674167391895144624563180587904295331272571459634549469269927871354572254531036258574711931555595194765396236355630304302244056924424854417967545673775796742124186816900939581684231089566543251632116405195206470361929332549354130123403279853707783486570509141903508728321782860171246726991562472278397449072668010116752445919432400264633361808565591279160440829242346664572601525538320750432739933911345449268083926444605797228614998684918271726541977985047974529102039914250794976939919444325942331285814660147037594860191458869393207508915607534207516566158355256634344392529632487853681129180163457512542798475694595893677432479473481571106298872143885152480153767900996436126133217861588521989147023954646593268007711221344486755372822541452812618837673490447979543495468230471073599569747186076064876010806372194637356313130925078709449832727300582980659229292349796970483278799210981880287842904913952629856789548349617162177579995887183333326035131829439055122249160505112716482467951416896272515984480424872373771401200375257823125256835498153624775748944178375142918853864008710353731444362560817885014870827311089650835935335632371099318326603026166463234643521765701056982303347240054125704920277392426970166851542556370001559931088057573406499193951089092250521160687551122339931654231163447569648661542843203162252213148361356871564106034027185272527675931745365328032250675954856216223687386716993060041426259061721540687478792368458220311170357115222163164404144613444372431533331548108811392215161171733153311183125377545620566547856118851251878474232461701263617667640362152482593925855567139934325909851963903083664878392403890933825352859008435877585255270393862054510905664431015189219698444583162151401853284282757446603644373138643436095825101336160353896581198194040896031990959977669877910173501683909283414138213762050737386745273804399596034727413066118915587228974553534241807348779107423841677150633392605942915695206205495580735475891996961919227951260412089043489831084112349029834151130899257085802889276640617254378804252834393828224364135023722602603259626508159404011546491435981983437079157123945154639648606071299593933437641041813289644162735424001500814603448655399794475051323577318352710222136758599054918603268073602229125414753650045520559398108023368768671945283774407312977954267067776568876112294356705152900175152558442552091936762619799756218998130775504026556210348661841530484116633501051630976164351458963722656999129306885031542090423109160766430747735967788160505176986773847004429748891315697025887819368947556236056357455517200769483364927101568176881579435795929720062579649011037004435003513838797396963204362039104080348135399866023923582561877720011351561086057813527789654109168575194986473710961195014031624658912294386781139601883587481742553461505610081168257657474753575567812936976080581960028493057982574556559614121106727296777459705241134656707707077180717681166001057912765828372136297316532192402845444243791761376831148496733943176970672857234677767753363882922238453553317627399455624408254120343672116019040374988657111144606278224552267510099782355737835891256189128775567642320340667720164658117055300854019851895596279172555181301595137664320552041781475608947934966489779504371461570349692191446830147798694232824266554917156769137683540244388615346117319728308704163049073450138936983437674233714457114719161452915321022266115947551886441429999699990548924706604792961870157455537567219619581896686561811447147234037074076327712430944029229140505037724815350271860788149157797727713591090992658983835646600733685473491890548812335691857173496127863853204708605650779297508058920963564355501264796124277289759649899610145217358257879069561908101620067676119880189648960887485720465862292719561719799220368829257417599702580464684050344608855184834503860084533005820100499209795561346231895923442332419253573635988904793251766125617658684267249177642375528079662964596099637177168008585372405330499654582355731605373101574107796202223418607494831048880611501991660314943266635738535636896967407357949489733471520762441576031508320660342868791717264120228647654013207723587214592838453898568677416697637664206390063798071197099163799078174984216834256616089239513006614381419321781503400050775590008175472033958545712570707720200190991422757658516989190644255702808051346102877822424342881349696793270696189999332452444594646205721348136086694679880093826983107248019407246988211932524300670329045909242729559021150566531719278721510320430347985779153879402151372264380950044135365891570570498676393258317666319040401832463899840234654794102081837345263328080510021599425446528216048767054029337966087902336583045660225734875549563482859797551927313735167038432403817012640437902097507766938799306996425461145917006272240926210529649008235464267866173991068269137814536849841980468379188426841883605387160609779653818355895845006664126793684472529605988129887961897444460646297716340806991355021728017894459066600907746228284665326568409083482649353536370028531836071032888866417020289521628315636711805370427265152430641807396587304900227769093599919722836543388623628080168912486208377527781159989638406983238078287052957747040877139970965892929689243349770788231291000755859443019595450280731995171825269071681312143188056334797912939984318163953332558162089837330332940020628577292006449597855387818856011825230183304361768589101508863584703639450713485969787310668635571820881824019774657434817029542058803350808026594567665730298189751871398318642914080848891359703626635981269834917302190140695170574260542711462118997768743265780885092419701260229759447830470880485608319716381261955855835515448618804823351153320404384790091234064144775238777596655739920131147896098942021835722154457575770832628871219634636428251824887826916465338745092187642978244807817930721393530809079444874847148541717263550023320134577433813003349473250363114585882973296087209214075694896472944957802042918325844802869264915582652777876756012208523149010593739369315989887451802369974864266983616321012668051832363892994910358738767857407818986438076477650749688140014958074964342148770366348488245352124424443117351524867909761932075000457465519214812578352347350616069651130861763920637657826903691665936058361864864044531252264421723726761733310572175288684379416954922773776497091798786487976932717118662157450740139582281412388051922115457860729395736152520883037155708217358226854952435959262269932532621035380603155423523171687156517264201258778572273091865874012683098911520281523447387153509652139606910111238234523434539919490357329986199067041048278185218237223405185159433729013636131095310019904865621918967780949321468241178351492643798649479743589380263942743607665826440965929334082227247433424040105358146255103163487646704968369145577802694598206264526357405359916596614956856917398590438351570683370843332983332001659486036368787503100791516678088557566784952662713292151038564182996906027316678047445895044774186011762122834369654078986038813502780990673196291478396200775832806757449328326094334054954474504919063116673813330114684973880137683680564958342385475583914914885803535549329640384458105665113216121845563325205839856773365307333725100701844708601348006028944236511717170831432863910110906034474345106868333941816811410476493912717208820619721739215046303167356058055097098230409595808529670462725799571163712393967729064625203425792496212020099829195677049408194017347788803713385621501230053383014780060395521092504880434539792576335326622910755596532321206801389443465613188916712705505864968278642223443564012941718764921951465120096295719862348834859226940378982571324199253921261773448317664996478643629689334128008497745227872358106061791568042264069754477654910057708831966007059964210058405595809383572232854206368216556600311432431227914419411605361614347669529329540208667361834189915984514919360559293312445852284777290237950470148385996252401920300434832007782718073500996736687152513523197362686842293888817441055944595819395520511834308852586367144361225879562976323201052977361207108627264961020994115942025395347696526268419816371408897292565637756752245743868739975290309812276342916460535264911605861979725314830249539427827742667817381861735837949801271717801412100728236440674368655691190967466944679876163502174444277990889960600628965605825404368791956748936397654206372253159686950113310418407175575248298993325399447555418868641499242333023979548067055648948975749510996679455941616084663482172542857390435923309685057323456126989495015578228395273340878047953824366746454706732384194186558255634441093340590873682711296864137561528960430841096378187023591230869547985760535392638110603035153050275090480337363380686728051950698013847341762457857434332303233323462019175251479043161642578841926050814009073992947901571200428057903769953460848868968883138927238775294024933477295779325482096007261252852608421360586111303038877913281427312307552705670433048607381641616843045338281418048186036580369324409584991423007468451254347524525582857729725220544783020702539699504963369367645904219761434491141890112486457195848023350405450965736242145688002713035043910840289258534804806758660317293905058962755697665448087272938393822225252400573538771901823215827895262947392827086415566251969001067518697880401892545185834118319176540299266227624951697483782698934492295318413711285154176714997928545586547758890332747495988577353797685764610582574019314440050418395684926493460729698275058692709520315995873156102054448709152033010501653756762286569380153721642947045225838499988978972395018754357128025998880629001855806198185739044594448914035079120499864686942811272101029076888847836750661369516965218501981562017940791804886754899350411170462358302624120900372156567895173009675066319720987379559882212331600805218785955877782604116699846005006462283644651885149117724195954558292267480144707912249215188500592176710119086629224700526135399748193157023883314699743394973266299890268456476063001446408019467456569784279349239436069827613127498792461750781130279735997040853986013117102906169463554423291552138618314092608818222262581781044517981129753304581975096003356567947753684734690426266706989906062405758056607339060722583544875719275230283351267778786812300042069049675485185109770224493654436711713016342945083663030519850028893773566516569135549660431428139957264127897015358451134280643543300235421441485334535454737747514234253432451060762150982514002130205606283702512531504830108825642228147142401977914108664859001220340844506163162026504767462975792718205545233973299796724206771316616810887214469031315189471519225076656949687094974550982439153111482894672010565612661082504886235081274015173370912702942542312095072336706190456238007065527070631959534846166127060007213510616870258091463130988845316650059375849139890442035076422612020470782567195119322948229124837163647356160897545485090404093547514895835422342867395903674098913177094975931874438168308498753626576003384332905492521612624439966650897971556977031833648854684796230494569816613453682083990041090806088313003506044674780181872012548453016574269909606665133662181862596355956685912237081439218459086508778797798340735905581393204221262108412441057478603985495900259436031794999148378244703669710739556244316420499707431477721331800771439329988367446753037238557824108147668356443958096050885604809647235121257635520068409048923548225634097345529916315642208426495235084572345708483654885527004220767836312805945509197517815213449652834996845341472950631063231638188098392329714891420533369019502282538385209738174852313195775311181885862178712170010211289604065167397182130457168982512156031860197563194253875775241310916251030266536131108317378289400485076882574924677369160169832716113771847560283038550268138707223683082980446513496711847568000114264708239034631334883795401097011212392700571434789805460792373350350242552661966972318900642729838327213279699582939667640399980900771942852487876939950042802970782034594510647089695967259106235882377624830273600884332139684368033556026132855419995662009049143077708916316925747281054096225373314148120751075758566855201692638104590467037270818291566757374601643045459629790483460010307343690773448940719694634632852115798362938034767416777263977550455534718925754783694692838830076394518630095155793450237410999241022256369300210585762212414214270074353722417053170289018427036722657508488753038882297288771290332363558387873211142966173279811388541658120828387332738491120238542627783422871978052755206693177933629779311380818584521946750032361050662064585514797643846348415365316070922014676543409660195382370355085089947094821144197277284937077590858077291499907986266000124629681697103490680289200799868350958682281836956217792095173711128652044357603663782714873639658220697846693152003213956240346416389498603595820080450093980045457284210362463323279587448627618832458758021293470382120187796638758614891371065368923727673485750318622959203335303474120735853787883966683645159087249251499897482270181808688023999974766267980935513520985499827358761172327985711600861957710058721160841809342088698540292191919971746162684744108776954940330087565385365941923540116666600155428836325630020782684045662655464386115836397067866610285701334011437804186991305954702965740302704841331879873013220118229450900801678367689599980448202107644428176881250491349835054853648261000709152876405476899221476202569675241428726235126997086182704243090460964520862893468482722329489371660345437712063848956344169853037943372064332713619862820447972748376214005393999086555241251561900368193749108943023290624188883964782570837561324773152327954741179202347312951606160687301024076413636031083363796933998907847887400650121376451442846975467788228061643363867046452116783537130436070930971431833026189712395721992774452452983559592411521663503082609181745295180731422904259184214886666226971777818720987058454794789187174177801399205813828829478066347588276814796792624142656984040900638175240307076186138130593940085294967123215280438789952015321859076963076856308817330542877192647927065881306067379725846995460818817920647740891513470499100017938859926817819883221878499190706458519863607050877308048847667556694357766468135798554893359909775594283842180637137120900966629196283773375825218255284941939840939065282765973300499755100502481921497280272559647786609865870084200742468014634391667830513417269919808938988535904878305195213367913951557878426544279466980135222591152442130205379148868643433972591625203178654566599009833620419055446450424917783775480889155542145511619073635782668179230858732220780837883810346386175699816510821330040616321618512582965242985767839208544843215236523150490564868472445876570483880786284070324558721626591469262361684618939908329731045564020981466892028241810318097101077727851804628693357913066576339514237944929179270665399894193508878974049311542043746927720782217164554148088134313238974317483430841845417034445161323018776641274231923722566744097823637685740137375205139001366385367915901534540249719446680980751857935046103329937582293716117735306142777861238428209604885798032889784751074592162441956145776638672953472903181661440736265982499265322464046825928935029879432968438656109393921395368157827151913141827628011160253749951050592228498190756614050944981440686899926997959898076992859784266157227558678427058288286215400544033072660859669329381490101120117988280633515519878712741549682884740467804255307734399342640066175444433995372541674616357595659601666824527676791968264119743458589449075839590779117393811528990935765126873446573247123004321239130756492732800454941687236249542373871148698710931903301468353302835812445696464483989391143663634630459764899274486369702434306715376664100709878605322429893791920507643070902110842041859187759929782826844312454403438238394861734005465218843949246159473727087815131676072453855690353514660480617710874830355634955478410552320417929432555728343342276430500601947098493115195055767037583282714625827298538597460175724745260368890529171851804663903745822765810950912186435726331309626408224053496553759792361304718675540806828027400507826790877199022651632263792520977553438892431981341746547476211777737894599022873397491490084325359107687255201848202084938823709477503528120784157690334020333919997977764369655746168363911085720368842905288756450889652583419712462944987920981978217892805002202125215969060268660804130235161242379464521511865494572650783133731766103567479273951497482120806252466702284246287608117467289002677715896929413305455607700949916075810533147950238281619207627958219578132960847521053201124999701031641045704483199126395780737420741322271400742398300042015128471270947298558557268022539281694318131867974207214970337402765044265316164596479210837437532986710872324355983754224496540551514904210646969202877886874666626946596705241448592891380559924219134042775703073709110208365693046402994232368901204104316658828859764543530796897065468999528749678183553978782454097753078971315839767292815253762342042675677272197269719995224657529724427601613382023429074634534777495491393095509063571012977240963877095477509266661230310205312627722974345497450241000353862167937603189212264421645965433883493612519156313850426706999561414717599300015208628183251616208434409858207677482435526182474923554068517974857408476507043182791045920235739724430890784444465123487774063795814185365705954630041210275197365923932020549509635676166039385585843812299154324814208513064485536436735712793273440990106299520568922730407684672701008540947853798734165636428788565958763914609133577391069129370960042126586426474941613171915536534575566370785920435962147890536314824024127977826167503716869302903272522569332759866894964786840609047786835023383316595025976291078744053814419661482524210242948015587093845591677054622463185278821412008768327999354197893830365920753976098328087830515454033612703929545893508276027566976491817784898390993073654430317838359327226594013103176023679843786256473186665030487960604135010128481698861735931232801984532755559280170399432298555444810376189425052983809699030100016245523016312074656014841355855142951619205204120713820349771094726397275352808087693714162087794803642970234438289851293843006018205884153251335509375139180653648905535606092546918447758619273858718902587552182797776506336121538708748416279005475515916408374524690518782824888212454904398975997847526393601174632958693762643976880405805021572226245665429534086161757853287039266231670345093433409994597798142645142972356724051249855556066747722711629778729640885897842200516109178860835477068628715209335807266165302411961273912555219559388956832861948920149632267377822114219930295233858559447030049460728314995419447636789733056139354738752862994301190215381726512986807782964581957213533436216682694362571672952678648092824135771488926103090998298490024286068951499749991334111112859932050235249230697771801974234340335906152376892944620446559567258062504350202057847284866331723706935880458939214499257268723444270357881747700585033252844959873739331157113801463536703775936941160226746521770634093930049679319877385149058573330041366499948092792986125685295086887006786367392479712418083142021043470168693693700105439626946403451242609518934083935791226227340173146544969039042888288946057479484623142117046852980185278680218210567037837979460119381226086863353531367691859489079794295473016547858945684255539728932843792294268534153011452380776337582234239036961866027166281616508948423265013538758805300220639260338770617222559015826816034692295333404696073243830347746946671460148100144749483865116276466738084144070745152285604371947350829814944214731914570838806752224476960708014882214415740438929337870635347133827586536289392735885481745360523029998215646251773892778420944066296922207028205030554045972944117165231486974847527400399703250530327926803106009514854342289216337043496071144440689722689588617366452976055982396394149285057261273373065453936850622820186575706553901681667659270939795949318140479565121336837033497246935925807153811891034142634409671860060176756348621063786791725024526703757104231084511947095060303689511386859320243684535073626904811965610709912244982351553821316878597441978217874266752860097278385356957940214432998490839938557732391570676137621271141361526400959601246791332064413252988107086191197265192642281591459678827373821958757171332002778651807901413592577644111164138955608509435150626928881768794872940314474320173128017912647400614980969332374104366010954853725070577124198228841952896423658629315464492139848856885522332652603450339004044574162659773633116121807092601109684294440611788903210816632639243962849825970352065251945265937149341856078738853867426969596144528773839279634853930343462235620125466046523940819701585655146718239853773212795868075219170099834361755810833178492750619478642967653253102494765861382037054160147616010019525159341197419880726624557824972831015415046818672327782922364221797802459154532246786694287919500962982332784876724011706864020584225752321446600751146116789378095060502904958673013595378358497030369927423882804004112040111033006636398086238836915361827222934554287571326407781454589393837688266209733565735110446962689129720387156883747412867262772838396133127140730226978346796673368474483892146177851851392377618784741542544193819188328018212810053633238471692314650960092612728721685575867222252977299489852668467758995650884716227824773655532623018789610861355121651001991685133665540842270198270340343179967727829787876897880992881647831375091301463530605490030939734799241068143357397178736713800210187900620910932141917392294474772854890223300148087344897936268157935799528486540625364654388562514469901427481389132994907894138058831094356369232455073763538577341163177755942460862301041981642816354479234355250040992459308619074855557811494516968089530262016236634602073476040940929946520226458366927138471759430816450513453893659384276544217549895734411120025196927329371655789018705864627698585276571173217044419743566968664783151916047260398314524203111104363501316790670567064757839300715802117208324813478156115996161952064221515462450904763844698607063201795447583050511158977057767908676411281413593336512832307214142090289892489150763262658817250314717451796191881161215566729283875393217444111073855898910446374839466568071994639227377842336307624936029790135952494150212311490059291193677241229543436584295876843117467260177371106918489814190520027488102103720920383343826786340027380984769591360981179913601477551758991654280814185512081377631739666751830146364081805608833169374892441377741537635803338618772535202154653505770281857542825140347782568505809274125738724413454035805933954183423286438668078592976277370421141179990956059084464974354279337829452920197417346022771670530340015581992224323182459169803044700572063275471107620322124370470965601897891425821892406359469490422746808704549078129072064029048395806453631141077203155784601498871331100770136614382786181239102863426562741637231896204314899452013228098502652858435100632714680822718587616434932652188969864466237725399759811341348043167027642390829114871951746969925402136014206633570455151912754561782572771930066559133189297986736707322861117397631553285507458881544203558884626803526527223526328843826816380123053122323432060929655104554848945779771450945282891989526166373042970077290999655932532372589402341612725392144458759220140128675312450190592221704681833898434983205370176225597226339837347181060727080992250619193307735596555726467803023784138557459795349008888451399163615175317741104989907670934892042756640443921480201828357826088859711437268763648806112796093828539142532500287625702939800219873303696276235386725381446130054822470343162669383871492591146891810757170528489463600214273931725548667156305951952507573318479212529997510908955427955302955036802560855255582663493530223868578226649830387627859177413860734491654793981500746008215765084764112240162162898031923574607544550768995530439515374351247886753910021597084831795878063700653026776677297068056477605913238020250040478117031058440035928853267690871158745025539356451896049191916873632228854862295962112129651991489392298940896837587539652667827946891772930941605006215058844441283208418403818270281906903914529149308144073639263938588286744410840459493838826213728083420808798740771486506532450852080341493021591039054355649758435231185410750866511963390918597371149611565057191135693960676619065214817414031566450585540862671847070566435360281662219904526678994780230683822748577224427624280802934360008501945442199734787723325595783921952747657808402608196328582965546924461736194039824247832547984661779885463555792610058122134759027569143744080459770258207189252326102607670225418294182393782238462280745027885939576578653765436267506718056196271479374851972954012779894197478794771141712581411628287908898883962948529957268616779806857374996038066317510758921475120341519722758213237861088990491422700203547584140567676603755710348398524998812842181396251568237778622436377550158752617841328747152701781885041790984182544682762230685509081516066772011744480207299061288892877412964284385349400290273269862229682440966075893567093999431978175543537497600625009892268307330253800311803535781031160571169988031006572766860726264749615085746932135151714806760818212471929008666855473327363632258360137167855483166533063006289106910584485708991580319087045284347074023996212888411704446851403547596352607723335980070468140310297808833340130622897139095301116139446513810917017406106677442322222941000793356094010705394725194727120532269421068971327748930075645219546205790178599472119051635767683368614595704257690796351867904523567203377976453288216916508646125394455141778038099714350286666666214261035157458363837595356283585986067866060439671330662105157250333845666561999103719396610161308044742283268992074355529615850492785328894532029674791299083453141715302720572122783256814579755123588309287595054520551526446620951527223000497883963861446454881767174045487879872675146242408936000733294246168788124862265405768143517645695571293841244054883829598069448774189901383056178882402621239862467605371915113670914888686164721510327501985998748645515980924505329062895021809048367452073271997143134136881694265364521407582459957981535146660121682730368020135569267057474869616476380619399139366126717922121556627607713018805400162669262478868277183999151363673959018702927247443731449571093851539273911061595559848233711468162952938292954392912865925077266617682568257279100785356066274206857860737346254882965043972404628619201565928263569846926226422287573817298103747807015479481654168135741640555504116018559387634505733514172187413835930009824543793402445018852831456133859747796987685665539010409482680725221080133851362572856637332486317729103499879591581792451878636246690922292868466951437101579168468408166641022872096075089922606727006616455810381382907941504406269168079586547654818598495980043406865703030885065739846161022245822802009263485731539484089902675791828377822635266258553479163871908491040542811860117498897294555349129912242038849164074679132481343509370883527987512012083744999199671202353429336310810242010749350367183956122595709348415060481778222010934281868756950351594107537193138894934107547000651024751477380130573068136512895716750391736528078229309330310663548636306760321138782762010770420203691568976640228367853792314811796916186023724687366169692357470374542014230755737123808412386955039268307130519883482096154622309686035517155393211927578353920296760127209354914066269561337353819334924605613353136946651563658646829201488013907120573431145988027260997583346629315519726388712294621033107163304779549904786462227349913153465799784617866686437511488186400420057450337129912450006255487881835075161489354773205600703509183640014316651642686076089726221001368742216306106290377046634301357525808675442966510050422701630702234228991313833039857001341588373881677719859259779055059352095353006617277934972766945377601918528918564243386746108182002518469330299087565423872665759340438693760253915332355036285223308412948920505642910619813762257352914371218213842795724462935759813802386510267241529668602319436217386558781797704588189735023538760336537468611929799280724903962730763476555581852203434950446929876835822407920211732528339868514730724375545355442199916492062871631854237197252165883831719893270988554718538749835849264011783765429018209610678430915629653087261558115782442184235901522375451250724595688413041770395862284126395362907831468642170478561824307758998658118900798450024756589606491300969699735767796795837129442498799065447367629698577547434139593992931576819642985736439352910964680840078844320004574584306290181627658351473214631360413437769280219117801860426249688693699429895019500971816666426536416604182426507003785427939460267526967992306883881464322027118925419446514668074837697478824306897771505971179331717830343886083347200963479698492734904317652984486691793795929253632301610006801200565445518432023977683219484737511987141861348303115874578126561719302062076078076120434862850613035351953537077770572661303665614399809635383559459574429786067654502539017212376949236939809521569935101671504852121156448845089913925318150646454547073525654396980043168635785591373156993599030784367414700347520212712583646052486710750440331702040247444433948211977137860688988378702511494602740331190335827163609624880652624098152730694041271425918208611216206037429839238090611398060468206539462458224467863300490632044485052947836148132456531176456811639268942154839681712970485022096196633054887099246270077761829681727585257345842580127839710744622415776681129861603758268205185463999738892685937160987563887760739212777989065047626927506853859560365395056325852869632841447959816837504921900000331495771216671196926202061233449635685599786726190468116317552212073325751182355791799101924430760462481576219275361811693112676453040430521387695090715661982703754112716322186572378428842114782609266205400085815998235276981791308363532357182486759975943952734162505698867226300749246299483214554446448778290268717038522823913859986523577410374512943597888427521511073787669526044473667876540230005367155102917231691704004512735379442573692792329117062624515719288767606939713375969895626598819027989705319610748905963687519794250175173290851640676903897366328444960142141330753675761635017206203897292121608426397910379187417711570101172387688091277500742994090495618729384556294361773036563106262297921529586311035378044777283636322189417177091956806166623011674520052865076972139610447381684896099367774616893463846101664095451413154188865203063731709243892896015140461684208708313757254468791080042057634359223425422682618760092973548389909356628843661962002241118169083265756916520643108274331112207471640564718835296397418240604233292265658449215738588614180177205342635999396975099013608892479205979828675332484139012990526846247614389880836275577394806322078816293386233393756313717571485377706609976013964824852727064600505919208463314601315421215476540967669684549427775414121211625409846185066649155953577947621604827648828621895695623274880131369549972053504420172096680245235557666345452916982077720993966803369361260541692147987624688594405437605292189405264223053574442123044144725636629538559314645224166921597881260245134793170233387443330748712633955857027117150603378226382405399913574880286436451587442531403630710179611499025535840779043021282743816111354068982964410147297388375107071219855090409075147687260355706611051179114146439114689725814284477631561552926598003454202132548397583092335010764297689481734312826137023553838200654368681571928083251694294227122633430450471261872557508645050588445185807416378484196971137577875248733991195567554162337005607107632952859687714496825100432898206124976014079627250959575379997350646454092291272262568628408821772125652183289531095782051498440105542689354229077158410207871418657586672210014598836607107669419209887200860539711795482429356723681062033525597158131539497970803999466249018082147684005993815856872583728524907626746299232535309363820888642082510423649405949582465003179686328632203498831563315802848631134300405610661975072887056672669366098798444885216648398318577539527000311694663373484543457338383377458134506115855437528375655314825686257409492216787567275133000527917272608581206490693870739495980544935420145349106587181261897582142649663138004038591414542593181063650954872189483769448884855949353003152238809419921026813993308195831063675314761078272368412188339439034255227227646411452754930225586365956032456372171296311995409313378453146659926042113359118524455439361008273273071461580044899183695870050722009843081112319003239116523075546558486007198111381498552912454514497764891909934333217035711799383217415100006785693022214502163862270282991569323304773957915558780641681142329647658546649956202158404994970876448051921264856277474795521966727420606874445918994408484081350436123352725757880325058465717818200226227363276572770537675001416941873933032492865600657582291256239574808564664625706125724739391884080353843870921119542209851505507667685224456907149695888592774863296217214469733903381761988717533012985487829345546519181365578507573981241051792032213626201844223711099790198032557036524659934162150787979864895010339079469685671820792589531536873221315541081619042821803136997047193360944251391731416792160722716071619186560795797657243466172977253247838206723240536879172866177534655155684854989702833964450472013456689986641829078116209041108431196470289251596088168646364043598628106986531560973350842758861914888580399858680283294364905690682582300762883464976593877660245303749275656516106163081304171243343171100634123387115280576876180970703321238286763871150150913878396878654844796129010401347075292589841911079561044960313768444130794273319657236992921046318054992883552483916729337671872567493125177633614295070553112127811457285769219678539206483106236522353512469841913341447328153675035118537721545943347954700404824696086189133718715770768471488338208738481455196385070717550727877736618417757795606127720769867957836607128381371711981199629717713507434054927600499432832874806864892210087864834173182514156448373669281111375798108372918096283444526905708951978542089535347610650159806522299922370225897631930069711535223625392370201243276418605596736419597138000839582694850007143832464118337769063768656315905684254884411268523565758047645909242263108619724085623498644665780064650115216892523210294841765158531479954707249933049574396539363540296829306561200460302882830698823497347738630469776392205242664315047096743716633758540587073266417297709797890932910789252182053609840733417865057528208273611217027547215469059406492419179749810210282394201198367710113091464027113528711809602091580113263187453137019056837625424698930379512102784318570238410263955417230591946828373437398946194162529273655070700217813682885130009058125558400707198989558173525549481987405844070585659305503804047411813945222621403612531471913161076641127037714517316630449111549453632716763215470839674502399584031999722547298268193888983675441841411059176092838399158169764642469646874112947916128360235919303538471993956763010264511443114905050538810432890507454509267661975286680336512811778901481495868644473027302039765562945789167342531168240997793745393216011185556551997291364702097662427147239137572727956148521977422983895570261946715365744325152186495110540421519527040911313096736294057245898157363010497145830546073812176937344568921083424488816534466900668726103645367715172984373894623280154885703606074360156243937216986757670481235369767124938264092881799020135275659801417567892603178287276936081298441090063944897759051529261061261042493743254764431885710811746575649240782669853052020295672026695542179255272795056961179725348411432814512856044041405654822821725604572232681744580095011483324011987471988699175863088631626945200273996842968066972632787411377809503648213499143136748053429742556019489105143361382031815570161955980801916336723476910660457184914866992551504185978625311682588985804202804660527079793272067739199331617465325194201615757372494145484315171960857461989930587721000590403921293166229993229893345433223695047579995139172969314214137360394215471794556964310165325915874260138985131533079468756542269016735084729746705693691940784264529926010837878397310260188996729077054362162918211622007315691654521749155875849957106322766119898103600260537215993436086776714872362942101892294008359071059803603866972654794467220126563881127063636310089261965860254111238765706019807938351962064829100561635014242111999901512239691457341801693173344229600224529812616042603604939277941692487006214607551547761640212419559108039720934137983433802985313364874663849968000486152661788676711974520048462454041201125511107722329757278314781233954366841360605511709597822678708772284430811334736214219500142527384028137823517188994255091471127280785911321458695860399825980095980351609462286868223225578374315325168956954782858657958172446792512516980042160996992758163576502668158414296942782955378591369736555990783479052324043279067266577960336264608488755149715456243456713942889177675735432183795090845395377420644008164361661932240889637433892802080228032298259544015759406961677553913638161687934561300814846162439021360469028956623704892255187280901578386535298494380361553030894546856856805679957939235843292882515400436672760840203740508245253925145703029424848340693347579695977093028282395066882604635048441120248023364774484338354186241670004088366513326075087428240957837897954090392160719120101960248699215816333592421406699725796671318830523651415466660608147245342552441962400534223373825690740024143614525137084787542994193056811247757974367439743819437737718175768636887640555633784763243551147861105720009796438232740866218839230402834405502531396421267587258428454309963770774927848711259264649996340421683702824703706387941290971507021376664501017855680459717085305325222839473850254181383945049328449131650359975888199233847117528429337011441127809183361978857690378877761280538959819379978872913743545969735577513007607351133531842734829931108454165080021386568851254368535311414350916696010697334317035319247297099237125930422213990115665638274737755513624720095124616684930228749294155712489096074009445714106870704198041026872749124297569232447349740084968985328808809860229014823088494076321116782803726068632937703957017554322045422026547731033815560164539193254888630487549335171196687197552420882704494815716531824801037060948414808135256708979893237983094806704737835193933095268009111298316238247273537786427114961539909015671647692774219781238945744574258206007484446578903582812924013637407568218113867959414658084879255311309584401762621510022183138142854409177365153633076897951301921428467511693507542074148050758045730406225895201562150906413100121674477932421337911334350891890329631504633959976145617434267574686698220364936854139052283602021101803608282404881268506949116302891531608920146836012653954367595381051524524255028035983507978107402463281926717447005407336918528752717696593273390237246339039865469272859165834683961646969375157198887499628036760283947976762427819676170559418546683833516299657204015430812467292317481570394453240748053868527793624653514898419408372088474826601676150578989500879531070933903484347032054844456796227273682260102234203025371739154818644210381888230719345391983803390439354806796124480585558491697133880599408184604965501424066756457216330872069449318258684968938407682963009187961838648920835938874360401698295074413746604704153321164425890649796339996371021533115581103585336283454221541139184926621283082074397835982783931420776884805380077700055608062211308564266684656465555751877971798367620542930466427985654832601313819446883723761581039381938920373808460287031929750486277048105427983709358385419396000235863308796256285232742823647345187392098538563772902928079546911451318277027146349195696897666309218915523578938990082540077218344161131728374409750208611193794599933138850887562056086703590877500407197750433236739165233534242952771891108967727753166814277999884209578192072831875580645258259261360331371927311269503851188692811639938650861870254392496369491556676923622477779240167030727005308073375285047824364235414824858294515096218988815558300558922366425522671016491564833993862767718580012796689248930559835741550095057364304884242401916139375885817865045392375339785249622439447576762381995467210113216525200465616275150507232045331649155638498999027905301858395698235741743652073201266976451908998827412216330438666369092930291120802648579542787495380698803899485307288397865435499984508320445240329171959213000605778485555343894565511222146540323972726561234684008822067161452894778535450586494258370235098487613606240524829607852868451689460221852453082337531852575736919499580572142413413780263009036129668576411184005156068123108254474672605447876868732901237020622868730839467621881805701025443631928215634209411299748561171434278202101707816253732338175999100901552620712816726980300926772249697184505374819299877238706003700904575577834847782668035795840188304446844832012766597847716206537461093301378143972540950851343334345398027721730773421638315810460878119796387953698756130996623054175677266931909282241443443112955746010127838689340440793680131265927221175592075332010639261095848120296784313194334242221580527706862105301431924902858690396932349880473339418334659768555963080115089817732865427513494943846369897454950724695179770177847803564153766160201053732155753236621430213369903780487293056933688601065402907706447795772352126314144830694644934619733035201243320396826672899162219935715132485079854472628313911619812151905527762571023791006975369748695310543490008216747506442251822061809753053637964761429365279339904251891559001629271319189848518268798269723199915393292982473652646712456281079870587350578385944936537398219929077766841501062777081515238290913086425181671991202637720936759883566636403234797389144212231897304649209818753471072827266434365271357449979960356024424791472068384854809298603346786199621716108659649001832405468993530317151805475765707814606223094660862670874506612506791030728292879335888071233602466079870272405295283648639704395309555039177903416311478474613011461843843168796739039673777951335380083643341849805154786413776031899417181874580626301580736982391496995912117147854952222480818039900961158543327398958811835925984578327169028959713241236873860269911335448906118415421572616304339712047710146605513223690214098330036174883177754360344476653575916971391120700312909575453076339205537273745843353556178648586774168412066210695782242096174869990807348558503503970188245625998074503144687681669712544388050517388085709605533366184458811036741789764306000273517138676571030289049863577000027487443676519530197474234405363348681262853308735785821378998515378277085515789274819839450725518979819157150617653267966594731640133093551192128273708986422857989444723284764514991429485851292264611862316647109899478769541836381915344102237643734534869211820580227764724029925952780319621128681042522353819340899348280676039079357505450044669554138956419148077260364904406038413220844446999624247037797993152117189405890096448883741848703153768501852629324112508216869433824649723580437405345986801117840274959464674941810656535239488505699724967043907457026496475529663540630498875647349800694453237064794060112580977512738982509185934925779933407219494578756258235323465497858028037194292870727647176013666803429622543785540547382046908683979251029485625217861889168559879421829728968831068727040952635810364960287568689649554650619894584131533725275362221333112191797848112322926415809551354831268890153477236465188225054082499382185752784320501414967970990386734820388774965462328392911828859705687780213207866975989848521107402537204863476155834707130574298942512009636597187329561838838702416746721555391424146545189126404556861249358319399853270814481659786244613030251787706415220010044757394513340946817957341085601006076898932778055420906890366201880136119151391228884372692550418700526854868211839629999087721241823213628708422405066380889880935172939254483768649503656278553748170739066718275577253292761358721846813771809638313895332363507116560065961188300779621428496118828090651115177419810158973760021063942794502885888409321634659997440293920347979016425564667728901769825140380429336621516932508854082325869782834602658752081245149977717400408343346450607058520019248789080102975364490329004524226826341842857702653793266756322115029485209485631683183702910283413537350698020874356682783979416242691455729506489931730016292363097440717409873875139263117552935113483692384018478842974221777544481017785300764961019983142582098477386169116872978821975040300177641176025227473171981838482327781107205659367189368539871612477490108227699530495758309769831613069558576879632427865495154136312253679385714609303275941882064539568727990406950576237046616084465334247940054976503668215397752652585489607086324033410220545491503011878772232802097656675333264263528634329757057178931932343951339112946198102943066131105851432960090929637086702430856580916181661315760035986971005622162060369823424087895604157514647870852463576201982617770834656794026834984000339355293646493161088744081059424191273960029709055787160627146072694920474423445723431535014001475384065629351039972961008297867540737982376795653877421408876152711095551006145084875268863707060598418602350348559135832302497860535158826939190922922747151792812288478557278307187860489832840945641736455714129041385448654628189801210450900673032712286683924804229696550195381601972188598722223214381059379835878935565796938193714542133715007654155588759306822919168488085083749942835705514257477187908618835786929777065947761305822888688981887200189807654961296890810125487527724656521650602684194590508261199830896444349133224652647726965589031734991966468037337438881895789452217873701410835829679896898994935894299119148890977742596066662054447326038956998690273648261757114236422922330671355259616315330131675887812939533664844538039328109796522246369913323022754723114788224554901156436728650352967051612913648544762053194011892740061639194967787625270161572820202175377586103847640480400162274372191649805347757303848024090902820666758973006737234009041220209807428605925938341264893206530855084667093301646000674707323644838870126511836655844289104372597474308549731301441031628891146911749381372651700915031092580905085285075694369036049553091488366663488540086227429843124763369077199992500709726162430131284045794027401051543192930027869713771343991598933845183979406633753864891877017523709914460667025783694532176454786755414878187157631901395918561300901170146898740983598282135599843988254753369898465323071567206033648548705902372833335277222024442969926126795204607603301211033136080280066238209508238317653916489744608845250455307509866811007060909293805606878554887539806417803867500075608435777241500524850007976315583272408260462570798481123337179716395730940763065767519090109422685827265748568699915522766052837959744500149356112586079899331183845864024207548547402745854507505906422223195277583649710501687825260407696794934695304354503682956296391144725045847784124763932540525905358019994108617855883997756246182529334942287949656747906635334682750751644194297554571337858800779196145311036644367876037069281565549277560156631648941620087094832752870947547845369659403221969246205844452988577409504473074832090309851199125823528495440614464468156600378427516429346167850345306388613833711549488326869487724740232836130752276786068453019614945997230881861227839894626126576071904827513490358067631035780332288749494820800335229636412089192410298006680861126324252731678188863741112709866050210436284728740378633703260383410294869661669587342957226185296372560185128280235862060661228670219842736130169869281073569566166238537805811157718451243427249709234682550651514608370542969236416915317985375627043106615489562264051564822016281022619569199483648229656263583606920634596821974483365456925973594834158773103646059244508371532782944765054441385239032308740025985115082556823128583597187113040175331357869878585940429433058467488297704392458899057219900996563729851673380171561905974188258096278563195982178237285003816074402882760289625355874181981856149427228679331161411613906373863581711480009504648013298765240736211738884196234060809870804954866219765155331863478318339645695970319963323612319349759746945278523866034709343741587542825739930113125503938695956891471449206626713774919701764087821316115505867604802765832212250981829266189867141459495829630486257020581836340781916711507088766803199254123942688374755653084719838425932959241605358011035242503889422958641151039825355299655987002840870381508566845418565348358955157060421760969162369745134133141128864204593162895908982664930895890635743706337858707327324490837346369693373953436848451647924809180620421474078262854617814748494215198032374045022398244823274421250273130978592546049442101250940092035018009286804775711322488072496545845211945355471694442178249210172755701589197245900377687653657460641264520011674025242239499297668646503064494850450012072530364360374671289448977356777720292314981237669345034392037233640826050131060916469050286599643596704853402208022053398602851724742323834984128704240990109502026519774339791175392191119545958032517813864083901201490363554698830491280418091106203844808863602993306612555402664190828154732342858015516367588305691860972921218719594914190584495492355814026557151087014811840806141636892023263413627887888458330643972170286808697926630376170542534038179788371074376015773304427906832048476886395451556243823219960516161586014896516548413829222340142195521945246404749651074553644666264895028665517572275729601063096001049953097413787705315979119274475223503089597271957579708060938111586661592584365040481290824292705567964504206198716286667126433091808130051842452119062620255371626944433833392478465786148116340768344169260681463458486107410831403298653841742171185433740773424917910375258918555548658618787691732150619962904414722990177941328953925077024100331431768859430024567259967410378440734913607518854122168406691329523826748015148064830395698776378794483340045039118689129899805800879554806431584868258141280674955475082718646668336905183957458269466390451086131009555558898437499336269522219896008274210241192782066574914568756804796615377412418639125989701423451126287675352406574230122861741986954078723603708546751939494817358099114983574734430748659983098432454493093296474671116959762014917202182573158983865949688689324980380666194153898400681673963582640522068045070926629635281587241563454287424061646002864685283866021861355135519435819217805407779278395416833952668666265133863507723996769786500361990259017000943104417457250879023303428225174753548182788483555951309594741756695718125357123565432309242895803945910557862926695161750159133003588121482744373200393778445715139119848691861227990977454099819712864265270148423534911209910782803785138363937132585464482253836022137093058214528656523516284660151479774627041021664409162870814765339815272644445089908469957132363085312886971622613029686069984493902456552714467288511101822134235168339142079477386251503450904451893388160192612459999395419778784493710406792155622648688418593866749484192134357232948347314312175249398988415274189174177887598691216507810974244431194564542630059124197065501836167596416027547493990069140199677293236826583588000498152540286349946420668404561254521348275117747993175866500703164524589905848165925967291741158787046992217611793298560176423467712022250322881002182147911715070453566852684946936374281845826308216691647517218477830727637572473311621400547997544401470679889372729794365826470998602418953577092789874332287392953476555864275696398427699351398430675820370483148967161760778838890777894570233691919548313112702934317759304532324366722497670694486934672313384081490130952635203442118161126933159408343788450773661580294475991576583932233475534182783451265617158230350136760641010608478811321378892471730753575355153358136213753835878631295560758033007576418525459014159733387519006853524321714083671705192002140015149929258939270388563217270056282662883640676657647551679736600088316941493768274840911161951720870393320938328096911706577257520403233334197961109212747516101989240538750966192976368363465815344886289616084616066333525547138774469833625840396578333556729526897388073965769744465677539759623244975641463347188494742624006174035601928602542212297414751555276252706876457944684519066652248236578431710658263417906292625707285728433615996352159668515904103513388393765038887766463324523168861659650418126467335624864118119711635175924386025868598393324999135906017335550159173582484408272951783475161376335642767410174114282236742320365253512370120986262848750076814421665162426333514523363712934604180039911704037207667489778917062196309461820589718667086647816120424608952616006339806360299348688806116556689368741643316868920229748158738598338980210478090835807099766825451194534292722152596971845892789718686525997087278009163189437130760908854020124810470769525853948878058815788485058013725453088785807197846977957514747887496136571988358493186023884397099576889905836279618156238478316399640281119587570685243849429020258418029288159352313420965716520865628886512990352650015304831602032291178890813186444213105360799359450158079500588511156990423184409866095901380100675825674382095232980436207227190023134675002928698639140148927283833916162289073999262406832641466386663906421308650228394771557565423675717471816260114997550839419959861382910699971811209007831907090178608018720506232471921875011198815272491620447654464567527020213697530595589004515064800488749506078988990888059826590438282780438320669953719115261629674279283446229875695825898693112961914480632649467214324563311661102887813737966762663753035168262661510106338425772476212636830510533363911911279280874659054124086850068060131010662317215375175921992082862151616266835334502304834423623169599425176863050794658857483294909276983197585120702854101792463934383711497114513833763861547269838299663969124332116832213631684186729060881828650283832473987964873035134814675228404307534203344011575311112705803043482065393569476036098493330231598814445810344203699656355675902706283722156052374145656829668453456016650472286635237570094723508287799222006976637811346223332068642199678913962742003635876395212935509338532402405055200062434784224381763918804988754101673292472164070296775720273074788422342130256612541435136959664043424422586127112180516054831921505533637527167985614862382475462516198022623470092043496114624060759030386810444480683040322925649149528593489681714556814098950313932396279380588839231513368335955183086055964420219958557035717393932008646656761445566301873522591396640451497758987454578027679207714862032860702965029788101934257489427961296827287406607796425523145301920684152008433129803361496952046254066369009143648804824898789927913145127238604531074370275550673184882317093042805533442897043305221346304150447132105023278813812038794331072278816623621789606877560111712404373011046106928389184580697064881441483095352430064415332940026276967546279998471825484500417528644827020435693463137194640434338538487542022422502412116652934797276681840717467075541835673420500193258877569538201974808544061968214422708313435237583511236646620897533885428799482777011252011987223638688659274000571245954329376309102050964331730903770961058669636217153367040286434691768275496971099522307857918754234586818491916305666417479196352641767352470545311158579790293644954394078010148676119235786957299786023130511627979951391766645524503036309890335537376790702509069576078620911331835685676263425994298034776637830254536615587005892072705764796434729431370764410532523173941929960125241487508844590709407179933923251691983161703107485083489631079294755444634820320286913635440879826331985437086077600310152891888434259791341028356431515987300175267903596374317507672282364972930763534670177673808330254454249019008630167476447680172033908971836263445476017869539490996109828232852020124789748801025941182274548002881711692635739275860316793923112485325313532771935276790952020175568996321598646931307132360993766531075049950793097434691997988934535500429557299653846823898144668469302522788059986918172849394817080269556148506860086040303008805912179353111545548579190739056031239990551810312408270844788069293063448253077008957901470942291955592088311748440770866879482380614881411314218253103349155460932528253969767226609579929646757081427365176673795081741695030019005995368766165524525835315787202918762565885560181961509390885982748677732317315857014333715111920415505308274387843856940914922703864453772079143622831360761218870828288940941095542083903400325571650065215332851842631250502360718619416768706740136543386598208724142286298712343012561428199610204172910307014478055036015994584525685665047035154735513115631528830747279698255172319185241518609259792379419567975709098616092315071403763275796358353715254278994454059163493113109923168151886161702714039231238925053988943635653729699771812376800758576848768695942922003376951572927070226752165506150931249103135772412956049728015346559144806335256251282887608753974393521059466256931979117919671817166840686599711075031457658408574913607733688437966115362422537147006919868876836124805280784124328301281694872563891185535354566061578117252794404650661218480173043528277162172866242987493707687230752705104854891407646113140914409466200663979286309696158078545936769945858896036539887542365668544284171348185395936098331309177103955899327798891034725874897261338313641731447269265743815737264509324920317187145701897368521228580614554057652560883956379890206350382128298506218175142506429250314877321540540321691249811040632653876579995243130179934422045752342818266457703248589840881215488942407009736844283054454151438459524525281428725328440316811391967004655936681292679492969943927386674356257587067916371582177606767014976436460355557741135558484496271444960407627252586870660368939023964113435377474719019587279505523748755283522692598645848294167645957713358212250634644631022074672321109965576399157558573418447244534672455087438363896862908357071173309946512208721774445259176813788598590500035523158172471036936342872796257601038319657139904425963866826278712439836786998712927561613475721782408363417733351888040416312542797013686881632297177084853056553030259027777190213011155164289134684997485377300019480496820647990555193126617886008333515948290686723905736052000628228000428911375593607622744170132482204299127357661167376772877600384198504406882902979818026852336704160024020999032289627480598766341835521202093242896363231759264369772010469070386947571811739338721582233696587678909544232245010035336882417170161316817462347538940709009796605588084949642484689892428418261989784594092445961397402516231304367068440622552885530726479075996326925603602129928521620515196815903715279466342296673925577149058208019609795330488529512854555581754563881367511174669387950107769205400016787082560748731375888163206958105703374352848515126353335508408689968256862558425665834235956167610474911073336655315827577953146892372843069948822379589325527552952281956677957685756346827646724675190775347842353349725170812609036129786937833298699808350492434408205301121892202890346973561554840798034415541876090065940101529792980856393269340008068224098125419206932908154614627650890338423619028373949635363274931011998644570099653260326272978742004263456896719407177686808977287115798814437063804708114446174934609645694931485612445236934156146556730254063143296853875337303347618490956549329288559475835634256200731915450107657154243390674651866647161511158087355579598332458433871293958466442451075533782413125808509802555031576123657526717079653901346574272620910951617305382094752783518537704546102725205932021706740590848349726308977075003231053633820424674296719335333431156938964221357279240511597363834700771666130105952461587951399168445214061200267333660304596882509232854208033641312690099277161622018544730751544663767120773536852144805955100003186742740815948420540945316570583771643254418504801706497233498983603740987412888843116282853413522713597803060515830830238259206854612864973160893007615415251955567611053467884645063306844059976461071348731558947502822134620588816521091881285317168695196396050837654845022922978738610726124201016865918326630479651420409208590682419857855648318100431128604572004182765388795440122595957174564051968565607346066140281717096000578414752730326613031227724946166477886314001377554270952427933138512810438292890533578968760984243389292114272231064818168099119787255481400303664637530318614065994507207806175781183825837984500574840706045246760634975160830539071034030676709563061703070048502356398815104739442952468584103583048049887069174412711971543225215996486055311118951821744218180074881623139065934800908244528155661743545507134431086878732227663733902676329782885647482819800565427417197927307643574839841254504045754149190571006891242522714150407933612287922548316800581317328356896385176340013593759071936234546964772955783685162534377049975898137679505393940197873715532256855841282488374146914308326332914815364702205476053505907215393903257506520164687193865799127088277856121075115937061607060706839923537657742485683298585960386706401008832108975234542531555474500607312079025423336099814683198615457774781732144506766489736647336399067198419886786769975619307339879927093554942013934275251922408969532108089888263747123637804305780593803715041922728863819120799922994736280351692934462793537490290304002738630480475896014302680702785157286713227996386581262360525691585081696981504683751786730417195868817953484222528902280141834643568207526762575334615440768330835478811205989812155380825775756935714265405386592164834508412331604945339406928805017365242017182212549898258417350185114064329582207391393408975617681629283793678159309362577474149303509712607514436574492508011444280053190910931643650184433037263479489579003564074796315587037873691559104005033743518126700485633884420555569097415022570023659946658535816826039212244184443094930763972550760926269794571224428229320638226666515622432736236984795457214805267649103708286918636220294339773255745340137641529821450681229461295321084549490906856005804383153276877335280272589296551049691354086479339745002443776828215696068704639612816878286694134921112206643698429986926259467243758417992650336767337737918149563730733097900766600220660940130175180647196512291804395400249236885474928859217249042840795260250480302447348926337016807210841115621584300087826870617410921956989013674796752918640631073989356546055081278746793880684325128097149710142011930681518935203806455171280087340913709150013504509258453117874164098547681391612975443591913898421335613875967137080649897294839214898993919002985666024014815356293950248232969588063072092548394975329139138416450127560637762027692289723309663169682208916651886864106407872068787464094923656185843079837924123020588184330701089848481156582996197314236645885665369000028367144435965645635029519133959517262834382297876577943312205289344831282694039218614991300322518260050701649122305007332374760086341709451575970802159006126080754361954521164356944157976577253258258910143715877458587969322159729705885855504553152059411578951688557061282702259290717804199998990722610834487468883212056789669717895383207146125529201441093938510587925482295594940785477458696828202035121546859237809494992907547217484455338367512630753238497407973777304790004060287160196810510912648915558636815146306693460727450622399879799454970343650530525019018122206645358122967818677711041145861402018332620938751126370764549819344610875481027478377058160544401784368585812054809416478057472191234484990873380044547406589213126729675232080642121889440378410133748732939702689629929399253098695730061673638115524663628670360627880155892606066751330242982621679814205047633477569635797665892838874414961584050715941594077212188305894807506837553770246419745525256253760937967857593107869003661028277725789383397840289261305237192639902291428218553095784073635514293287483955186987135831126422336523529072392083192708540598820794699075362330654168947732152077195074418069909974922641457548509313769410544754744162828681416148582037724211171159673595442849321199270370807075786847962154728841092743366743953645067090226885424656291463878735294581242188414131798771989653324780218216602205973639209240078594606479211110260834754313358370910903943466825368883943392779096215198275157692031166263243268795868225838238540355264872251229741505089488096912658016370068769113972127284005753707072585250461581070490013985297724595915004861735254341795918402816267093739678469291205387888806743044445768438875248242119699797292701624044310788536745457078704989365545966302361911462489386959889654572677611432777673200086044148165131181997605443255414326376229766531824424586911075707684236641052198691530247581672309683347840134127439359727151672409022020788910164808638710849897205606552318679058759330742443037321380285331774656877721264081530076826080274440895380153927208171084507543140596176169110508447355547270018556663984933033412326041264541343586367303735381712087110645847595177749606677979627497863543441585514432527802645984300635760163401312202795513416690347019557489140921907757476088668608977940110128395724808178241655901541426253725394712507900309275605170335740935641594674091961209852295022932656205590832277650237276647508368881389305907992045406191943678716967945251818642049270607296965163579819058904159875326622059493854085468480231511505608859290248940990711999593311043247809300997951115018494882737762419289323950355264270572720853970797174255037374378896100605701231773833147836678135051290872863074111280228273776912567852673317279983216080018003268914616362263939262405653072455220095489215476972037540634437863167374834697157976684562970496419235328782841754795931972162109928937604813846913062818082696395793307023763742210029501185112628287194165107749205860634253298659933369513767128026174862793075887627207888167057663954504093804182204528740147769369052898522053457147426419291274321231215051415280244183689834115929928206862273539441759866700884035977435181742088139738074186384812939521262833751412193377806125396341852707453128805468800663182464571372685707659140086201004490093115648224004448235237742597340342158904852274875586930509309693461084005916035301483709685853821172308166990104100314093512437453106159906432613758041703047127436063295381037318985755625843462918926510655629485201288497282622157919026518508409711273192606027187946213410173510598227776784703975623379377470501714149925713597877877067985656207728486466920027113274250042673189594693258955855726692654546472170934848260882265030943565353107297331770559707909737068077354492552532500830988710488576102128967831591435643821189797997311114337738139785585855334588461052625149393008454389488153968800943976003125150248105736753707134102752572998480533435691311288429393441066935560957162772060499278772647501871534189580841092555371320652677867116028271446083719055954121102699290949704630066652696270955546147591488978574522515348992514780131402419986931707578570930695581310872656473720042692950205233205650146357311464323087082338420292502220111407414067387081633066818294577306462271825229344925908458230769773665749905269256781869141109423982444211693218544364889316455518133319252759096141344591821853701397184355450603314606624699464765775876130054177518730094899009385840556763277385038503098549243881754161055572987480506954546960175939283851290741020602221725319997200531969418838731377660126946934777766321413299988485676093844795135306367115839485870525942886766844307034239617997628836300407145802575299862258922435148960695615715140161901705613625715591263115664211672637178752428470964341542855028722100229287258489334420870853843095150168078643062139932506758572725074485630311778225557727690506936119546525522123973064316051856643426347598193709079377288710619695928523688308632267680447099636211626159861253263278116778157185698539543907241899643343138125404759403517355957499264846807200029773227676503186106302907720324347566001870142646061127755673914020076213363410459630241466114901963765827679007129376000499805523501093332188889768589080199413975300459519214607970183696894152978246122234315641121441720774828208630553521699677577144178703374145386875247800479099958888277815874714617796923547827529213393937122532531691681208324612836255352193398747712209088635252538552635248358307281793363156198176336661532227316390791770797409779650881389239185125584187240661083017522264841595651243225090814222927830279965669357121179237985984971713831300230389612805814048320739508394220169541597428696094037047310050267237468008043352317477788942537779618930914700412911567686711586165560474281665734542221730814687885623682765094018894952200930600135308295427163655298825000544029443468748493166263270167268285284738869495193239501735232330909076058292326224164830225268745116694836355521358037121203819991918551595013149626788822993306679215366347809541074782573232249162680204141629040748898604252950649807259955375950654313486709722123004288170685556296338110950150992574132246364974999182062453939221363828433404797224190345898778909475528912226111829576787824276348685325246888308394898095498382450184387221813281547729741630534079564804764040061102749022061937908981564283125589242875073288668395108393200990222318178692407194372271306098615759355258048838502152770994589397756122243646032401676635234913822265717259668039720533446954464614112825423742091942647247935903051651205169348364555751884352652407094190457770785215936734483375661710542872324971514915486575935597027038190663839660174287213829243179702729631874647861336102943391056657919962454768248012973795966387296986822824294945133082164246033746038657285435974161340541927354946054906583343334773639541069587305756392671266039279495332792119419291621463756389286421249957870169156779913568488521464323323888985829597414891581060538017880498260396641675008357357800834466412722443436891866997770852205873747523818335537013157326960031178413524669579722333801550026712276991758136033668695464958657947177696840133611130089104925149636296096541052036866626333063067802477098453175865857242331061480895544616808302736118069119817812449848502122587154039636857319128593780583995547966068819148915309510806965446559584814274171140426432843943943631547619543307725555475138760318673861350204014574558177291905526597640947228019268940479474356927459858264744274396597629354792201869640440794247162419949630227236913650893085597937392266437762596939397620446997867907343318265297277645020349698784183704262205129465098487008059014454316008991103950605296590169792890953340879678529281535232702184611404799320430118645286413742290165502366025557251775312247877396864640865496040911509472887990919429363904203918382346807270884042926412359028656852451955426807263437389699035624952411808901876494558919400355780886323733711632838677843076650088805008929428534224124802019564724849418256386781550880905737419374442280860675260641219140731186846536193847094884540243868662261038904619326514396220074322973838849692165502399854109524181283846513365520138232922006599115865033764257153741681761332481275361269788675788198710601186338794287870129874595020080657837699489372614105426865015364708773650101482202906005864603685523057096374636589210945604086434297695191776759959524840427295591511178177165028179456570000452646795817659398274503057721895214932867294523473749963009017401219951349728096855486181322140757465053776091670038727404526854269958095060808707147736062835733220904520957782613255662301915150455543073785632636645424860868580712875938214417696114856238975823550972603811164357761571047207132891765803357802833573019237481863809910456877276625221444856274625383367818715444190864487678894619135133402584620470885592832523045918442066699198832255697955643303890806952728023018486313882569512651788996331135748270436601892849408173641087385105660994817871292676775690991184007513135092705604139383791847045999890191290802432690196874369455721993527202627793699409474798863267733359584464487641256240634566514880979035866765888932753631018022601332839402394750839681865552740558495783144782879952913079074814864863024883739573671123361826062451541130668769584995639457276322925958464737168612789755232545300881365541709631919174509183166359973401661756318208041871844938156056348587379059610174081447688585585364769343646302174121217532096394562237603911879978025636552669140608625052288702663076344268367752601434034128709278551402880659374997788422948640217580772455768810320598395195970777276348903348746925010759376959251490452735650628478996809147106181629229743987244384711658391363377938106304676360388180958446385258546206926031661021739100957231536143368018985412444917820294713753168945927672232514545222830746640177912299724297284662359827768496422693865097177928216215515771782690322655001992798737526133457011187192473784804815743114934616154840439300871328555349317710501670255828592727974186625344705339237239322304941047909017439546439816327891013001773765481931372816846307228675745029028255762510003658632493406600828154835210856399826576354679583034108439684980548994073817731975170785343837232813681365579556152282525461746867914967086501741924422752404929411946775834299231984777189877028040837995345519881018090547240512928620612104980543366112376772904904185708179925794780284565302204288700051168972617541068860954527044307660897481657327351192608943553825764921983448889346532228506951575966461054800764160034256771718284863766484480505638050933442610120209336130240708210035071695998578628578359365907097861755148666194822731935027586141677195803507209299460880387197023478005721241885558461963761059780916563377295905339170084191339452171305178433558376343269821028485360948620345026663710614806238239825233494288390168098132095171182548427646627742744404783077252278353395255288414513128509482680414260566464302094059370976610929147420606332986389015343641010310135024868873817149256779662579808017755835402342071956886476501824848493507873285099372020102429210106313257178126728730927004142400373226669485511680695688835034404389605881574344325743537608028372509409571074303907994028835853758488423904060559882034228197966100665110211498113298542860758533657554487095548649217523254401682658628724352434767879589820532692734009863082365909918388196565941989723229280026704522774988364452026555393571919178233258185493473991373825895081550971864389673149148413734550938008997528120617634837305735416096676823239833588029437073679720826299269627953401110357418075009168545682791211528326963785959152097536611757738851191898878610121072242785896150665931343537651510170141623841616586811103448905611307719895621548796590577902384833268594395607029068112870859731571410788829211097855746756216855980656653442539602817400038411768690977320181792782732627972004929248181807962037354165305545807516699429408207559373389933559352353985648421357999032644904285504491382117130609578185077304852237073271741945608312358520005634596143420111832046289390952995936791234917211134203292264366875508719775926268074471624356790350334318056490418968352811625660687217064065123294906856125352547152184167704783484341808806977725688708093067080745854438693245242075171580310668239557821767100790639006672038386063195829462048950566493380257126409952823797801671604141924960023831408806736423348408254346554667018013084377022602127346207030396802997356045788495097283336553740505938160428511631991197376299563773126238740578171344984472466521500658212395190619486016356018565097089154461868991229693724179222770738863911692059696483743923637067100851063725937223806127866992031198986069055497782201710697984781446589545795588492437625108155513541794611733837940140317383980709057716985268310881981707103458926150461074366389307548240616739488705362741929377658897538088149942280504874462270140396691159585607113150142319573852798600986440490823508740914356732124682723492837620824527895896969248283806769859267401603880510382366273524051522177840414424735478999482508653638049175464629525565507280027838382923338574198602069193789536514940663275323625282518812556297037720334472756860527399597938651683703208406391406533529776842583749470514512287385438325591648000404024376298240117979266661921979371680380905265643997925720698011652543947339208583530743742109802306895700779636766813489888885796650902203769581688107968285104461028571448716867213688898307452898418211378268715036211477876141658517734598648827727612077055875721966871609604491663535203895210939365121338832317335630612496494968022740207966287891648251171612634500265057429234415284798727828793910582967591790675469003713049796041261071698802987409145938364411995759233577982661613651956785071578585158038411123337409528607276801333161145107860057397103791917883705923058098825141438324274771930064197557056915191920702077942975884576761256785565598437257189894278803559268141349378982364744235329017202274698921262370866471220096737624162612437734983260869293894511222005166965016218291863328916044542477578848551650208198623124185140667794422253778078687613443164273193729482926461925523352350694669761289321946040395977636547160054785699550667136097267180066495410170644599908457619071349513883536416880980323077506534845544966304472226042631919995323255448403164547740485953210946114676268528684009017147696260702819558670556777497488006300388301204245533392269942754543518626783319486683899576495743802008366883631222504791997018351138261978096880819546287122325727249550895830194987260395893516360509454469419914872287263778315860890106661700182858857657607480700684894385336877422314557904425758514940834476868288611854437866845954905646204287654971236140255617179817723783346287711554677069377073816867800320637257031798661900164415969996137357615340506616063225019114774477887318625431569283802719965558230548958121791772593474361491918507170487111385571586205426519914692955429043749066494713361322653252610983975016594879316678157259595976272622333481390406327591713907764227568541067195149872478610935865213576194111331797436303680262206462167174093072573144928703517618925894875709604130804095845266249883942178639174225225768196946280680759505609040142895909453359118707211627241787700280281428621004978344741521510294098198060385319625364637363656553637239203552011692222173778285734941290870935158838201035918626115654183233146015834270532660492593187284867693730447237106259784428419853568529787087156503913259719669100850920576514528374108231149556016380586309433169750381753750482627114351918103824940294854918190164064663625291304998069766940865002841438419465437660478812485865177632149725879698556308798056029927027228051160193872274774839792500926064418803551896467879115608677411742708596484798698928106582161418184772671610179341077798013766530905995083652270356141751494472131123183119370122008161406307068575137505313132369394095913852532467957160422436579395496303055255035129009179287857033499616411935230790719620683527812131704612316106690931523751183112182062881198103388362399597625304337349698863530480562858483899580296763764497739301136284622609474773560157617873511095228356266913193245348028630458585300511746610113052399470145185273138301880776354571610678602846400176891291683628776034271051106175262091478044773213298829693586552611464821564783419315490630059858524341805588283189606474381360074468381117005649838563006663395985679583660317376119052765241703226648972974697710788808066414420676276858256860883673752447829958942398018428779169240027454251820558807221927780393680043302001684221379590596844377331606041726756463850447258496850664485919591352433826763068786708665806606799408460580013957727852584868967138275210237344120855058357953122330572074790324331977644444677727981644528080204776131605667186920500945943924776358423506492272994057115040044382213234998295004318929988806872050863213244117414618193573097898178729461203157750208615506640727048732801752848658282096295192095994387507331315707074085586796155683588869793074721755668715408647125069499125358349826400628694899162019723578198818996806694153590771795363353607576570679935233399138171111141118542117586555292876985770131085385051071520678279948038012179415411006172025795146139158080023361235749445234501831200563472709497652154713080940489210932238451339106958550604705742472811560240833978062035143901658095119529546790122457531443862661623382761484555588013247743556729642059878004215027068544875379915485602164184934160450896195500710647988962341120907928498662926650327946395556075376495675469571716743697534400501403251654872963934230634675580044890333998169051462898083459377595262201426811325865790233032715972575733144337028784391128765509471348196638935477068049600913040251874107235583924012659372544893361952322894482620222172954764128555508170092075978126830329566571452010587711544957512434583986244382651393514078508917504210882364508835718384932074986568215425277161214086862718484053878015612300205250182140159764691214394599960795623000902661272105304331987413107767828288886246510234877064956692920785010875826444998572367381717814590317325849834037187959237298444032282910494939939778826159589701308099344421630447799641957369867626876349837647787133772310068721024648931893685105158805402764507152688594658373983114510662831283326619416143871198992132177538863595516284719245987640084620366843977960033670412409814929669266896618132560395623846995082199859973475860238166708260386635099715720068215358403120286019922014825504366962236388335029653448351761657083579744006453184855063207069236786571877011684037670267355735410198717820984120141115523833171029984283952071070541117915544178571188906521532433072869081475933630083794921274506609434151626972204628095093385325189170368083177187954934341409042090842912931534974461586864160255680459968263676889961050047488536154301631334382340709791433847463769352675888765922288551177241695103702711242614226185376206623113969087743748506687797417188433937626416463157392940071337813188700981598621234800966339241134290483672879070844470081105301126034299050057744821716848166948933985811608026056805905993997193542384375060938807846588443138508773919005132987682819380545043853679483548897164512821237955112059447228419824621229727044257869268318416950878121866070846727694508816799104077806015247193775959602377452847990166877108131908633861211157326167440578418557121488236070437347258622838417160981450492365232673190863765993926812049096686328664259442865444283174481010004200084081499670288737830654294018469405085408702767091201328133282205233808718608313278220745373102776311796270563187027433229363662231689486698837138778587810102340849248962803611979836018500307607034010003594729158326554186983950072201434508182124862245713375734850113609870367315409598156996536712823421198146468957705149367450697416708358914528416393443797210791636509768387782201452379139985312224519164488534886127018366978468869939705510291663750134157103406012027697950422098348363788352581619616188761741206813602701161438573588528695640008096986376965039390755002940905741191986852888712777387047705981507068839664683676947765384892627326558647040421361700642959917974792321447084111222689299467669999894597868172996432496814806698311518760321633059350474947295089769070837535133248405925225210806981878275889690464212589709208947690545089674896321465088938187119869368981291952206830597756019581293615557147658689086653096102692683188572444524664720196089922679138486557643604154725441929466386312051189478528269684217091266051493702444763163628345696078349137723693398876276559763229091072482213557966306799257881298383408069713440703760413591851129725235393725257861727976473144046218748178217816937850477050047835909383380405246105067184566425541834204177848580623355647893896399297096318752253533662612494106302012661108449467339321078415538931715511601115028778069751406868847367557422502833231776924627029854744083328858897801023205997865957699299868899338107969195320399470822914619101361609144329966676853801967625704308388577775606068724150452335563673366970078618371278626333605071906709210199194495668677455401577085613347511481223201716715912326151225123500934348938103160268253649782869691336611532335825808946504423362631704397180875018902202681395356079404044765754894449723391883464424783023308861328140562352154202047263666652423948914026014415690319088839731985070339287511645942026805725820230358759849153848444175992935527898140790233808493401809826456598492656032567552345524343644366857231222107517632863903591513020494869490460925381630977615642765023140397420120104984599033225077617878592371612654532033577436465193636442776388562599233309461901221005156299005656472726759384211253530540310607267230001969182415369872435989367634541599193009604646299533013578782023127191490309775534924227366735156597568900459349392286535888237659619737681504445619212369738859912833418990139012593638743947871276394583679140673128228661332769170908363513899750598542831035645728083659355060224238003279554620184401135597624397837027388547235987648642868431340002947365295968618988531878845765836641469123383432589075746117551245841498537240573189581821538854660630936539396462943156315842522539432626742816051620583505594481453249004155422119917949385650447705313488911534206043267040584589718899658673150991654186871058898283892876082739976582284531547381448883749763538988630510546246321923637712459552186403289305175690259934599802665926678644015360795173022218097751950332757484919667953588546344689045254070233756495307773392640522001330290934960167888561721440868928028704311590531771333050642257277678557891380559829178181341896429688892916122705310653442676150675607874880161243549758773177106381064047939656976968083940827778655244069657361540989503690726605463275494409652762303281150792560222352100370584368800517460095733344555801646634149519530323550519978036792828834720358114596451849750931205354403985971654167033819587382357086650792977826968712909926470246824696415901913353383466335329449953023031059888636514797684755892156800322413161420348602242495802866102162340993713664111163833668301293793129624570012284448976044819040798860387014658156154478382434315032603005549238013866392315856386670333091017521514497048605802988881044003502975438109581921034595501096555399791983334585592648471935682856645521962047032273407856502191253125479518337738529718661843811818483505008611407337971500714291496215270326947897296559800848243892653051201929785143453368586401390825683797688844745468767149822742519224253708065804908964693266695075378894672267617256245625964404934239502579432958339561502621179835231480805675187538048707069872514281541327505143862346348806803550067302740813426016990270435588191694007385048562000449852885482863631205347060674814913688502274383987576153322304569312119938817752297630513136227470669031083940311487990914352904024740167627154505805671818220917817252974749063748859179310347758184806321567775223574421825545356932178424669099033144616685012237041361149798467414288565935008973616962668180515836100126067983734533059966078811700322257135304200606997017405328181326129729979181129570725580879416926067188195148151809884045894792118870884896053479761699461797560646884380695135161581668296813327159975563413192950809769412494290161115570853462814936213001645728165851891371514768867798441626782848864409518017484777934190467819213618158697988708131490409493952403253232091732543405619735951564546229568322807373344478522375136603140864680159952853535365648220302958545400222586514731652735446357413377001927773884333272468646713772391376707335245201409752055468894876365015489414345815861161212591257680415603080062040912234433405498062485323245957045992424566732953336877548194395289679020230265558187794694709156403952123502110929378291266309002150948584692258956194655536113212756206682270048242105804349697295213507216640237726109456281754418472530451413625927919481816444518162927524045051359887819440577098952879741032027113545924430509879781099127818899753215778893404674267082066101563765161051695220577070222393360224310152511871644596500612435236919483104648334032800614142088630754638946961858271085896314245539539628206977429231096088790298990052194820782177425222657546777377783897670577353940210547297977430215752917267994508084617635723781169592112867069139394372149894957729523423458562234617834018510450579140599609841884273314428627863488547024554164263406761352894121256134139377193133562011102477759535388899082282086019870984683166427924189134980908966998036703920279243377931300755582306081572076563510734052637129288234160746389696563592007575371659708944462629467974607233170949311652126507031386953535747947796238718151362109760888378978952599130768900471322031031368519785026922055809829244320391078880763694890630290490423737897920167743391629675234173263165527784207975949323812785149403892886939532639423299446293524576013721628354386246661025596944232565479432133652238503830786089366629755662210657966731036138154817161677886771311514262699027751673665204195478695441654797138017397020008645000449705370763559020779061444550008824361264601366237065006126942252177347305410796312512295109523551166773781211655253713811629081983008876777751292588558494931717024009537160867858447006176945249478167704366146375208254544591186048909286918821846301686739254482514783909528722726999767248324161091208123895521429707630940944806995582443491257056411262859187184702723251503145604604454078511786211127280001452285376990684883464342070672798316991106226109344567315209861739850132321370560177648295666322376406636549144061941056954263120745683385249011061721536482310005377396470621417206407999827717459461539019861994081523541190837832538355445975994648895826754419365523238838669988795464905420273574407230030362828726349634923845360474149056173726060048737316915823985824714141044586518185607339906446829337261829206951776995008643173837200545339963253220624487805442673328280696310007863469137883517498699109806277577744845877856256155391458917373855454679864837310700817370692252347115803405966858106982990180516112279122708515148601129994441749867245173354315814529052759918994900753836776338965212800741589507209579216749060586297879315505107995397711757876994678567476751593671689322185795577579944263766827366430347598494035130185437054079901941367844115006668236537875820182041971058638991995050708921590550156520071942369477531982919348805335903517929199798733593596192513706677155345617284409605179988843013308729007350006072070467241475113327782508283119300408688180518409474752242825708567407320178868293264382260890220909985785136321238218447052966795385690014297714286143375746498915018467340982838556411245795720988721487085315542886652439975716326404851868929502229656005954677428593742511848014465298500236188840162866846469302522315183982003825345084077771995635041807735547892099043616981388965866667395699806083480439570361277370587455073828070738377824133301202021560280597393268898898910900107247424692548273196729674202433402107846495846888101492917041927124532499079584091137137125816536771212653198830608519006554377719260677985601485099722525941448270505674614277188228097887384504416472329372872196473902748768616118310119673724709197194026341854018174645283186852952697347558150720460632012710113618918082224327620049647734301694390518479828900918323721939791577669454834964802819252867054619646780458557456388104481214719271311592691299520093393592711698102183423256117325814750680273714179816148036392359319532079166886437775994240828316903194616359081937098231064978615705660837548029975474517103526224586297455848182690537004249552408259530673033103559426402232367446920365705335406131596042369998381486578738890670041306404181600516039800056922070291005445678984658196405254110878055702470527064437099232454673855205660330822255637514328279689809870055367124662493282568690782749138160718520207165500840885098644739396338918908476524194546764774763914769341391197336090737299220522047109885820080693072750418209359759408257213047224178193708220603958304173332666769136489669355725053538013154632926657673306953126146855187648593237797712566412341604875171425709544285491771158864985377913942560644304694297526355910523707419046486700111688722942791820567859677017443251479039444960519275955289149869672010827128502210596979162890326580392783903666111962495519654554569682474665423858164115734401927853292071427701474442491021321249782926753971532486665820497837582563217609943586149225741060958307492606371236532012362889633471463413933637935818918051361996438404340015275296576597870834019051620834716617041259307914820402640008962635510213100525147526168558341699799046098516004573404307205818954960648408445601172386304488600273476410340360969554236461105379012227180603191312373256836513800127169467080679834412844937128811170342959706149580427810167615555498453552662851153770429519112658564920212464088933902883972929201696664698427769015414184979440063210383830487149522420164407658770541018134679211207516136421941430413428527319215902412880068457247342450343000883971373574710241641192028450324250919383919882415533890527622923438681908183385887539928980414605483721333936329795519709853747987966787916204288726083595784572939690847328454867120206582871256253550640280810136128122163439209506866460689143516625142470216371129626893722462427130132588634004549968021152111786080081487733194980526694264075980120691719824526091200256776246663284027169000377048641649455523735697235883705791072788577667409999485584700126497345828810259163437770994565505096529721364126852696309126064054425432462477138263731319072932429614228252894611809147757367008367146066414366230459549700855586761495992054258016263011951810243062356081441217410642785701156625047291721888775614309890500122238361567787752246596680554984241722692794417745817698000431787499019328468716066832373717091143690183206642118523571002024208799200331438166827662889151877714001653457162610786515823065946697155191125344690636037689459910668000275390441735860338857061509564435720330861726325133807753291517477509311831758557675615542778376240461649276224508470962941970612082272787266692243672770181957160168522589637254895040820735249962278923785940195539957310430493063221437632587124186161681313702729133824833809530715506661171356138507164214606817622494029584473405306729087873259885420032433064759885621138980097277957350994055219833215309782243968687944087453594535415562894608552409686159936888266567435740753683322848455070038764972620505680092554545954833043286165533204050454895519056525822677683725427835086781252427400904379208978233829991252971022626611060264204127609918686775165675273147687630604760589598405804589162670295632726040595013585375684790371527513233161251127319199416119691181352628215371944263548758955707218434242904343627987654439413464367444893336954595720610719497843260092320206946046822229939772255222754010390110772209892316284217411223175651242135624468490654204926327934686881277074109854379925577694078222226131154616092165044602390162115316137635598584492614222448451540649208339416622048114928013814741200808949709285060832736758708560165405305551342997367637937205596241139295097887737419716685083681103040668404287275484179595381270036062916829327825995228776194866212870106155799148593037095085766186826591566769083300135809583229755949830129652655932685261747594244301346119713917639791550160135040320488769237095060106207769649460650599629275208992603417824220060436169427296609405952888383580769558944850766285948347398576322369891901274835124641577251078609116999859272474089593246890860296187800539953171322311271120557951860479538000340934218821210769280725544202113440253929057896863658894639470586895632707125400668460163543859397526051091935644099843937585808044182898662425143635547982721198350598814371533184071560387465738881185474683348912423491165856475183815823365051411480401751211334309585276241285036351907278891326963948323675019925837792377257268017588227018602235219242505351517465881035710476111533343389171494559010139564532459797970169844157462961836124625663873719475001362154084771040555525310685230826306488646134510993350198666563670038355844182442128293903079167717790067021176791021649507536562548912453292083565775188435348520436966530453375609341270366894755864531032767103338716811801498794351514531618554854473386448936535775949262161143913598212862274470828514446640022426722481234096003174114778983315398892257405017994064213898354096225522353960571026612231424775719734976999704255487019839741911098323733656911307117561993588389485317311745325852862905297784823434176135025493487505085939265123932359477404958540021752399620545310690508231363527390473858143908001531718061370054891245049516251684469012544485898182940654528303605285568198972064449028785688494523219001883384852395056273868782857925937612644144224663178976295380288831282401987101562245685249189214207947829544951427118178982762636714352953856238855259524410932360350535894451079882068309005671012924189106702648440469316074245626283935634932601297970694228644656852187118575151934126258959731585876848205983175016955246125168489964122363209694330502979119994559712146973728127098834454170528180532635196287167776380766899345781319625347820290913179825883990373658181218969674894443768776130885889873436488440545520042355876534579348680710274325953575736099243877738569674389432257325140604130605606257480166933275401816618706636788698453806888808662091037700122920352199047086267876889103066694741418306641996484412308832450511310601862167114653516547807494193554277258991717772808666665185648528656185785349780185630303827654418621421524129291417429972331741864972684752712258100471505945188636655288504608805694784488856622079461885852552846734891370553122150884420697370843692437003121761336561912526336576427079276229781575852490248287339646095205057106062714400313018519613037834196453610596137185843677539351936912871593478517961736729829158057423445721958547805591130761306039419458085913826934310432309976007772176157648630678468862834325329854518230351758980589105622182487556140904974381228940726332079130536720555982796235562018497002756498800615161190204406475374462686909421418999756743176743456759606030753634308063219251514577727706878058194947669944351020033671366312303612836358774050975818703331897681463076421474076418118910040296114387439049295239737375278730816693779997599040130376254664953760960699068510203047508653000195230910317445267872796922719107554529703645335591321888960896463499162167335899194792674124536395786010723643102620831850637769062361474985514390279216213858253113318239039075414259517255192658693297653540189866777293529003022654008138840304277699708084854421142267614670793485600723315977206091013349869815019239478082646656941514576005795533080706863974050668411636413254245972831703781248136381581752819206557043975910144960824474570957765884625782583139076755193552298771502238234817195971911185992264750049588543763285734068144210633129829703806358581089698861028107726676784274024284092710612386500785259674394465809277747466505704209566191340837256023464946612322257632644711603901495118559327000478595535072135946374611203534013512749277506437800726239219087087069603941918655902090400671540001028973183194187551038669807259500637746255652282540253816635350641382367495695011266691910674677591085945577353240190621435347475774641871145109982591311574161558564672147468353717718423531552388364341204620975144215201349699639873241745751131912541076919509734712414543974643432849019861634391877353813347358606680405598818537660568867092733997681317184209948230605548277535019318226697706841509187444093859141501320164872937643220699630205214166905761977503248594491900010560700206443721845530432334233101482333435019859803223679279774512215698906402486024310500562561717302892966599132177251390489280262761878074538499715503629925918093553426531204265535618613475382949965884017686395250163938225323789791870826278089437562137978347415843752736754505263308919091014204427061874681070003756505544289895877530509375018627390381506041849262206860873878616377071948476188285409154313205620326932884707957332796610529239027755957063517446215184114904573621993892196387508108678191901496383650907517066079813800622381177361728874737828794003155317641448978761270087482720262971294670743970328902826084595627388468602649064868786486678176338983388140752161549747541675158802875396320945962826171839030690792702047158061626064548157616705392165937458077996215926417083854276338035254982778811079509834670392851933071714037199892535536950038970954758737741670701776836730398867418927268288003921679825858601851883114000627693936883454139390417489173883285524689236178352629969227985998705586759634866219124416348104424538466638090225051326611524126807961447069748801858187270714315931909217509216791295000534382628588075903479960254890377280193608454184492715693980164746822308414679600871956672063551086626677072119711789117588691685249697184061428290877185099335775484998449914564531427439358029911730979297198759969841597967405040074483331321383619140480267821729111868797164449601219647754541524649015243702442508229608185778117806926126672752303842505162004408616090740803927530699132657156576696689559747058489757948692320530412768750291928430525989244288938235204689737077266734528198709561343468522881601493849639974110826933467743586448117567952810590781046281934460149133794991645257529133222354923027935178226399915617423810037708775084713758023007526311634038914901487502386467482497935176472220771639301338657516043839020009585655914058097177341411823883001657739837571385406504801565334142226564650685381393900951351239558956957414579305147139458956267663828322608267678245560087535974372329331389321125972394637747603062762460046146490718078837456033784614705033483098268743216602835373371225471832774863790863701411298274066070400440065108218924555658839029359606343364695941911100711879883395959998621370020609332308136115701640218316634910576256757476887380853740837168767485825018984356950888866108863079543226831249283368108558168415290887308383573771013777367413008412587446564376027866065544651218447342612048433057177313292871109223932977835093655595683953976672480839638940205499409909248210619238840343635287464261471389938705634094758715364343960882780859232413512319490666104793539059709441369127767124101042729251134359077377557815568880046233783953161367949484782876445977727614727247062821635367432612878953101408738659532285550145089139317708486242803331906734102640117834156898278208437049775714902893330814920185497059189136934279455634160198503864084963431310702208291648732598885908944671946071311483789174026862575422024317921756395949475612100093999174353682228573873656748453639085118485854011158409408536524981963924192936302067709555082058611683454428990398660800022342726849376021224562526109202011428226836919407678400773485827461941438026008787990456099937974004840111719172863493625748550075844785258969676370880815264372438484416314932129148336123294055925890995819645655984502316927864626650124092065820386680629028888737264921345793370825606521593092116580016759042238833134044988124272327768218554182487784683839199200455895613047712416921663105108551054610938098196535635773763999556914664656739237185732246509490456770972968778320056020970900410634446574401652693763859809663923065373017982481246516182081260630091671047416084994610587162220408324140719838938826577761409039212765063731962438062304186065581753359512732322862701501178825514133509662090471930516350599383317412633678701714877754026434393472513681513485111676981882385795697261277224438987917245300167449072781636038341714301040405933486711270815212278927322396401219517186905038702752272727129734639649621971712878916951039162587783798346573311605625189606569484533569264353463248736654194421428077513410123758299442027890783243100542361737302896738303917610119626691724254282598005820024833087545317631267944238043097849502969037217958289734072881195266419877765962802883265981634551995186436056440167957888712863239550432539875012627433240596976187067678503485960165009003845506694816993823629864626729654362198208713145023550583872242560274046448461562739210458253900304249162097059395218789417768682991606207701213347970644014499898504775975170978043856934337194305003420686124619351229798508139550492196268029199366621107448763680085632429410941594622345422071328373630224070836531207340872621021581305706110264095178007445847284402978117216134843348491685993859865349210578102243108404147855780686173418854366005722803889086269665606982531509761863216028173595952190247227882183433334095798095714658277543651307878557416336507514752075394879832976252699672862327947635979366660579685354529536272669998241224053882544520386166486646605170382808480343669340999026086313893558645219385335404378086502994433574538867109001859709356344775991810020950742520734658831487930291406102206268283758725845118958184871535791985171458537438005123761567064455872102344643686486693631532902507407907157257649969026979767269669845341913849511587974472799837312600747175145160290629753461773484441928559324021301301145366705548023485183312668597986200758820215192397933796961363107880115204390472778635778535566212444430558245480983992503350108700261654132264665328153933936166733499684595015630549636678439572244637323534887530182545245018261794423005234254506359794206076420622331572719744569959828074338478261814679316810531546961404060163652663219591888816749953825066880198082221730710929432362045785573626422983504777269902616015737971097676603406691917326030920686666223397535324355027571948787808603628409048200197556658012413924813048192603589274360988700987511094684005737371640204447897688503844832799121572104784634636065608184465318794387128861680728174182380334659120831083491851479732280674406967300440854772430020521646080498462289256088738936141961521651018760995064785082903688538189640926614229142203484404810742932704182974858557204693380826303569429656910511935273528753219899925248676710282546403790889383696077859344315151299799154820365036372303336120818440947173697569650040343208345092899418827932282369066193790747867624134640392093863384161030113114158677560072140579097997361160595274948912147339451025366338333520077787672161741707473242146646874552591198229190557243567365343762142475946686684681220911800876044583419920808851899579112907646674845952509793195994550819066879786698290492561869654726741997189552505460492741681823778031457633670585913126007887467365740016614664807265848445404936359704591857601666942678360490205408605703247113393941532265832887670880411824346150542818379290527548278845742776548356049638960058069051902499478155003408575857900861187953668856316861724284874265281924870243589713605999702386621416399624784761285475954119997362543322666615781931939542208378204439407348790450600832239539379788182555093105092593405731431275244046272839293023777458528183352030810702743259799721463063683822943616435036421025013456702174270260868854345452068020947816178068323305558000986247242891665100810789751040765488124640046721585370591040887532872307922793921993036630118774652251106374101462864701632984862113533127386419111994672432366501544670147063560948524873660840482363863170863988253084390290757584968736054924218550191018618595030485737671744449593231900123519174666386069018377878368691705130422949255459852120214082830067559911515781206178559994049056894109862302388890672594988020285721433943623431299698358330504749619904160206563003009910413997282510153611138514014457713860176199149954185633997848975587244623470209625792894082388542298804881979218060500362097553518977316868478650634570162256022823472211658927690287284061415437131408429408504363338706560291422010254444779445390414894690758017911968568098665336162344932190971772993258322955250117517604165847229891840620488259941604430642418364829187356231737599929598243275601493188716324120313498935950363605213649597597818582600685715566634282114559677028056348730686852052398178203576736608207733865859579875869439014414582105279011760636239051442005424334370376241912498849449315798436363717141983629647909962926319897944821832868626214290462511798846851697023719487880701370453612745221192663866995464902332283283589769677473757511843182057070645998159336117722090269376553013187499244421623444476176016228183329773645880704298974888569921960473350641106391069576686789286584881874784942301605655627376206340506907091379116248947118183903289733292744205736956075601211127861972581966727436216309859084477235587613452451110699410376282686365530768710226994328387228999472198946633257614710153416833764188867577813145764671089094255672492753473900940248430010502338053059614725865216171928292785045129108456541653789640577815282939342385492978526505636487406811233522141659911440746475521960302562374716596861952440331208607681665610565879896479030157276522873974722046182353430912937496315988944459514647021239810192424444490582823778358528898973946018790356997961571517992606474397995249550404110242610370291715567301831721605160123666201816693824698805984508740568136433471371086352662897519620098106588826430886820402074702935236170074487442419983770672231076997744750474911874560348666053035969379888072097983176795692484977073270903379389942340131887878594967563467604422172660082618345779417365007388418282691758367223415012904880379322768828634519167290904565332588929491482162118657124769021247577129275653384172951088655563574015862200223540615690038033045643564879126879270362103472238986742974303702852754388322491705810242071758131191378570282731778986663789987071801184854128483454914270631780483425879752327733411317152079191396212875910104915553023646921598635265719485430293999690463961626454442812768221564115843890215816881385925041217732452213338866935988802836574192857679139519965689095803581205097284595649187685581404048165670975668942968566392311675380967542945051538373246136577399289784470626327086241902390816226494234468511955619554966626471003904347004293437342428474092705851501579397433921655968144025904508005231373116422747754044755221717090864285760369492672856750292657296209968517600142959304249218625120244544049856818368287927115954899754188864021100153125866924875389621375836132166588521729882859474390601394237264682720183820484673928933370736996420618002070443465018373615211839300082805001513527542138826743197885761164522197868019649284760535073362922493721615492588185562158959048853930363678665247118065439297357625256751369803788333903571127054231509788336862599009668497113534857434188694366384649237434362874851399981013678524756004595453449129867100649154560621047539528226724458040232625207707142904683368527837143729741847288353449893443976317512167113554799976509382195309214023861401796617789966179708838854012283896343080227237448943519176763149048258939300230706082446673687359518725606569785566436012650934607975464404701615045557000211188532344666344543846858089967423050010958268025098631143308906412037408348153426967972095343308502267899712859040258275029004090317412104863759407428198860794553932221123800965069361567168197307355439805906948569682513896366145707923717823189428588290088503811616585111764267960770702149567601291239925265476255826653609468646228508839916692805563075687325622844358368625451333892821024448576373048385889065177918228189597999215372550421059177045967361175831841021733662370628104513975648373623352340476147157478169210023499535692404951305466033481328282082955829072375486464378236182032843572230828880220188109531492957628242320799020100782595201522542777646333447070264282125671167229732632802724436751908587212106214036677844937858325106808712261831706525131327453973741221459797971885883749598713556726737100294246974235041525234699275778721301698193546078372155280376044833695684305204090151552883285499385089530694872153094777515086747460661763404184151196961930853791015640738646909234362593337863620246768710918441329957167645249922571622856674117405236893272896863781775982860089608063056822256572789025647313604700379672309392092267494870328297817277006644491782524828943014326350324033654269112378699378586436829010321241508729728308157234292226515112668359609646683599661851640888528602684299135981130122383752988669620155396249556501754974058091073070933747611372525889988639652301196857325026984160249633643578602972248683472362184791548276103126817661470319003565935865732660255469804274775138685148540089183403979852737670179048298393660358323109562628103027106947122536624027654007793359422990330378626593683737267643048648263415382707992175248512937001760782972128254895191947692455590374699702262017359813850148195644613462883845639437131648841597472002733379584700584880748617343603675238744654541538520988309948984845908400128973914229783507310726260121602700242157062474940111169968036796484290349596897211403660473320436496692074759352900601149721137554238341193330994299258621811610315440448025109019014118925092767462809681984493111665308244546488436160077911337488442583923201897807000277178802343462893561575305470733658520053407458467641943145297367757308992293182421803010145032419722787392819458426303759209724559700835986222920103962415554833627825809361143812744686057612302514161686555594220739640858120070745836154296428547391341347218116298824311966178814705880504522554966774800969534669470715801192042099316217303703535781635082793495058243985442615774321262785547641024105438481369797145154781728478384525450393390440576762292805262832801675885300345045097724606395044677219941984648966900372990460156935345639497300381626567598698559797775630935451532634246421156926019318489503704188472051954655680287300399074363270395744642470168927839757048148693995556011805657458574324893680084057405756394082042952883894843557986771722984891426049340327348997552771990632741568777120831545008223568222347813211535120021594518147293214836317639123697208688437213241526472722396958510632312563056930695457144388161909904803064872435921501173389156589052436048164843750439881906698076208109596721553238249595668851708119367867418563617767704675487417298566971630672064739173917659560731215690015408688429728560904685374661725544926217936991271199054949378056152581981542762268656292947934688409547094203840876145640154006635404521400910755373893810431573506412652814102628867259002359033679405556997255033039066346234022365774710423726306781000833203854758214675862068446241502237442016891270244050465655333881095669745527281500925621583529988053434052299750554356059196777584289578724875350647124084450545227121755599197647585188222191006010305882730586904695144227865545277430336789341862950942178260749582602409195074921371218719064680040857670244950843806358464230304291532318115390890663012187284049896173007849407534838004590134865695614947232885816088093993934729222041310692185000681958352656311205645750696909016219055337173607238692886660788262757075861874858485126358822242957522527935936824003265434967052534263398879022639111497548379695292148311576847581528813087090094581475246799758874939744800783313008423725199855928492982126624809289999577750229907598345388609652763442061937433993273918195147945833620058053605842388321363961173371181098440353623547165079982462689687823319574740664262916139055866756746983234998526846027257811226693778132023274340938848428998546358627939872565147819667767750473282533638114872521652540897311219948445315858214997693666868373339919218046453004470699628975918688994788636794550127280671521683253744984531538151025342848655644075973373849058670696052215359595894092087161370742922810330318943753618300769186483689912259160165383768302487255135464609304785038152514545074878655742746381381746214404275924775713099469194809650683634143833510021188645070844962261752375630015810593033331513850455455155802859282234119067174569532919245470670085898405725535291676567773460339794957534086993539194495545486361049804580133701307061904829235319880649854366230540439328063939127228897693322797389006962297768010038330328319255121561022637669810574530259855371033073398593288785580633494017293118702383535437965937607473387540501254253600389702807752842888521860005053447968865771710257400075616779341313222618147187828206905910778500268303488730449739274404414329635223806105834468427867050545620994742461785343063979727385230871668605910940213711688153067567677496042734096113971462800823875127377511027422531119484831962205199317453026504199597275252951862751697589122843288364778970477785602919643537260827641049633238514304250786212658036338323022359206284616101749807204454221334465603954031302870732382117551824592323440302998042663222565710569149438213665599951885700409007293131229331470187927459057341090721872870023024761519510167123500760643285772081921616254542354500078946926237802372982508225986372571793354162390141256158780180910076395992473818219627105803054390236613474567584980858188398382294103391121337767981700964197826803515150680083839042230573219556770484927689795513661094972316041951462302179113837230715472600832564694600552323484594396279120411625874892372789690107868725194571362356396482057937517048951263328379720047163803965822967145363297962812758062774889015873871052784660848612568284397560569578800613533247837380398604163214831103992500878190049064586941882254237357587508012580971353869318508195901820683347374988085190170684019133251590542279809320872926795359699844407678322205660522212771445450065218847467447169784637579501056962758294975438545826464335957147111580192426736863999783220652134522351298928052612515655263578681556917495205223225788483868434756456378114243982147626999636971898502527880683793257344317821900531597414298317438180165423382608213992750179900071222893179322595864434516233326623525464904039393448806109054343155413453364934272493980700849321604194723167136821199692667624892589534586643596795948393632767722464731911550818868565082255399853567229973213769594925137249360536991733176126393881477437888107302417101727399945169648618945222755510096088190614270847115037538300563138865719295205141331414840457762700081354644760593413814350282980222671376756379557773729693933400835596439623661696599158896737875606159056763955115384666419416295527612304831132753225632378165603731682002529371566355978447685107935054541457364393674600733272389874157152918105587549150217572322994973114639079024616838909249690569378107345123416861187455459922204567911855772105576154752008460508000345163863241261687276210161402817588229437726448494414719503320756708023681667292248470739780184155007106426637425238802278635633174410159546558244135641397620349113124038746265314504569215047474492502032847899270152894442081171947883812528898444899261731283700087640641138168970022839703121206334794027462309364083074256019515336041090089457292560989856514489202742184627256767814221517238253823757742181814145965968100507985286365872433187707081947670164738240580591416792664476643367675068708017481345995944543242504483360282808772196931033617088589431402701721428136194823188583306069172859477818275149338514022393163729700107964466286871117171612827098710566594758622161604393737424169813301255920776853084486395817725797359329467400837653727628068459256739892190049568529937277286594698932344815387630876113321915635566759544862571425920850050111340924361581432482291446979873101657218445348619839475739049533012673944301520971478673618128119217866324879960287802369866598085534475133780287607051099230046365092739224235112523056141591068136453346849537684364776792462669141802242842941063248300919649318529680438812089810545144100303959627338150317342983682643877779426241491410528204235811833493308123901081297320936346323888361189925038549340472234777070673382219085380839613801873655860193570532755623489336097547695717186439484509595318340980673533780149983058834771193931421832450954799617729710232226183877078688510650905381039165851184071960417066970652824971958341496342077103316438494285122058383358771111967442654595013903932733294169533611585474764191221624094508879423747753817810440999166266266404494735025732179690675393865448134033132481825197552745237165500048733434841258453727426946521712757782142443388618568398333981086915093666602853725544557495150298131400587179064866351393067579393626132306625065837047520015204401080660547875590978890782932894035802218875061241361818893379071924903541971892888393824933196425308238399383096636018437790441484938611093693485515392376796319890084733403811374334426745196035745737936122253472213915639647878533880692614032791502201971534357459639583246972940791934239169500025782455684598088024215997607387307587818439552156643156032755413363302974143538652562525400229768012609598714933417126269001944149516345254706005301941658731859633531555058412233085851380072772789176118547141463780738834802024386431321281246285582565223900699494901965499883678350304067469670829104412392395407486118297313953219140356498957038156052149284513207817462345779352800396617582492296835586266387078289774658485282243093738786428904279824065576936714419901360951080041796854691114307300903876788189821575579706427861648813336253014471770223961827086728423748813060558659970090504872751885421451630901676056989995484060723141602396689680526875727205229589141102076109565566693759296063450162123045201219389569466101752111245667567064663729621029623491149449005061049799502030888983658120899314168843564573973977823293995399280718464059283922158345775956504656397335020221003980952049276663613037884519497977272006394609092270278124287382579877615791223246005437815126178180469435265875776868398679522454675976734654002577102917800270204794984021731846449302781641086811620226377857114487732453834887301405798893676197729863656051558542443634093667731784265148314899515359836051208176060985173125019360976343642578057148707724828057482193452487788355294963601341906234259592487974002928335450967882300897889788788721579226655068005658795882324713591325374105458866337245807608141004241853955992737148889695153693178564599565303695922351453172357488613432803792481746817659278687122371155731940841159673680768988163416957122656293267340665023864400385958963546619518086457540768916436810879544107130811513762009714993668737577529046708406130203123656149376011774156143383319580957996986305552954638892169595338398855603558003706950019986319218777153620013707921196739647352313893835123524613501023898179391974749102758539641644494801459885348298208258812393395216881495039867279346559501185513007382141481665849757366793372558487614043215394296654126551871216745783325932722524827889883417220232099584364662978143366371667126516890553289203784013093755796462578096002562103096161111293718783463783637378317488892932414758863066291461678381590316757515464515378785632364659494002859242239362019279815070226666115914982560306544376325698280676123705240220086052142190165354475808248596384884203372857864660511006305540517484460859271877668664633263974153098076527190115699124361267994491355191125644394335885403487207008129608021823373603272284159155503234947499918232488447457215487623811439088461131618388774504477651525224504017552774813045047083179201996736686746948286699770823373685962190447608179342245516667346663687142634665506068136922674673681416283572231925122962204453218489186705475619961042810512260324857467971603973587809796501854330177588025625527922220629473836352332926481438761123062114451306419131912946707221705044254798310967889167639538808375647412985742121105674162537295844521331755550896293341984388826100827033456138864670747318513466249218948925970859113512254531053895516884930883357009328932207168127574359116987670131765299860981857921545037031675366563354062722437690318077762439914850123444244988322390286984390811989171608459545390922002215106830330640814913194789788474415981812470259282337893576684577709700705028987568122399383600668123857416836385879450337474835137474031964433454817035362155274397465471017691083055215108063381042675210969855215032927871484254331170268461123785717197512477481431023791300258584267414549935429244440612939427913580194305264638429185721099646190405097777422233632722542575729988719330235210776774527820182259335138464749010841992523878532810144933106389260377426866955453593749402804434855075242410037400350805888908665774688222544282635202113688510871890815937547095447363530161410652267549365426866774021500630763975930330295226106138329741137994147354984724562432631065134524260692988763422579951918644678244647536442415899777763292176137835089796278648011092852392207375705953510008694693151907314224165913863703402697972530436860044367574889742699536827814898037425855744733220461011697838445496665247028004615866524299063301414202068838440940259933608387301185673574934331151369127668673881741349482980211681660658176517376430991345658945880563250470624319229958046595590092873060132072989854210339914397640044127357202291826732709088041721514949325642292079770068673336168729404003712206272123335932412453109438581576380781421797262541812844440295825585303783143444423825319185821331501999936874801379403022405788032695673137339807423335091010158598010216240765767632729655495368713344885476629303728388164167065180131811678815711635504524250920509881781555387578563632923878464992476469144204378705311077179438106436980160845294632953218563255338354116843481674126400185997505958938497447214610557417968933416447382373854642401246669329922143017360298365033300994704253752193413603419202689428990969095126279769180935212808154045116805514015218009996856458667900536940442596149075732040872775595863275576044869949423399048735238600032872894772700044639153938772833304106296612331377935828207673598950667035674797473832337975573166994299811297382494108631307362741135291991857080106551819707765738423858982873793535390908246771064454760237155845251384610011328110760002613673793115712043447884821838559297700083343947606074008829629297024268570105635064779062288774706292939530625329101730876227112136450921670553836023084762495591508241372587206248687079683489200835710398638120732416272369193214178647919279882770099971466426061522316595095310986834570116515532785919848135387936181105219996015057016134145926705918851186154415803285314585123713370703374868206854190442154593872890264132252329073063050522290095398801224615861887288175011294639440720565152327588929820361960418060196827498783353982786089396005347950739518643531780886578197885736754505023066583812054221708414840275971263538852786503749376224521783436437043709086221151575570899778135076837529738899216201650647862444341913141786886726435540143779767050839291958779952874895346948779949633894528526712837529568018159827810854461304056496572842246620401407311676733891315437401638796013451783711952927342644189150352381430951528156568334624076864710771535734302290827924407316114275413479831016645116697612388003308874601577411505578526292521506394004769813153195372787427214453988609399593153741744132007762953826595881390333791022187535568270722139381554890880429014996082747784499457895028151908094086578370447336888767997783961220699686065068527254658573357718885896317708784915472133080161292520153072957519292203059730092736045961900644045731812532096422610404439174820869335040386342964145310386898289865206476776589024690679564390856096312198866731417542581578889876048344937681130960070384332445628010588524850069834863142576735051585190620392266107441927199342857907770298504971121240031183365609971774858546813695931200089438047265810486306910216931131782939235546997530172120423760766871113994903651799882450824909042941797824564564982735935167817845454193937948160369314717127189228938822687066969946426779649222398504002250641467390540799989720993850518599580948848620274666441947466306939450423453611706526661587651083049174056982162066652783494479120381882751038823269809103601770365796509810188904792940354866609709856387557721555772691070146554783995252209045163715292024956577890903828222576363479690481077442318953733919170487118857659197212801732484065953144582629135652770192019970342891509475517738968454885503307484738638279488349720072092957689253675355322937059720079782400126589270910733603499340213268048148759923188389239899598611648837829735185612389341842387099687537705857329347703177930808650171901304638230094516063699364116567226818340631396701686386475162355083439070119172468578395847543449850869841377545210549614465083715421132891128412608720812267533814795378032637066622505475990007511326195365487149825945530024322404406072287277540947959341969765256660080651862281748952717796423489047712308424029387918353463150585910425032041615103722877881180508044229940591416171707697275646362269894297499230486579573208656306652125238517176671546103030739080764840829557996816389680970654688892185719220068883001189472593772054191632062166152549550257164930820727664652439094477617823656658963893212570787755451249477426830212798212075122790547635838302713701444973912171219452604477910662154811582964441422021014173198220234509857720782972303163226742138937703491440155493891842125606308584991345125028672471320710923147474926150168436763716150182197559910440738832099857707299953366497681655471921920876342717132165094830042551975911292832737021634466926378665833936354245578279808242876732350083464573655575244679835897928306771965086883425847508421061028721154957420698145515016082112921302537427715774978429503397555903734872655908078682065825484671569717397842631674520949439733528021177488090025669514824185025249636992447248502167432207893442129872452346873545806035304430623351216200931992956295918544529023822404930518683272819400835202809082037631652874180871962898142799835721316414459069790078920322153217654054923150300398447405197234899511926189005026880480261915770112150792714746377733033201089419122652874787034284483837446987638331082205244982495445751389764538233246828415842191535401805607112637329488097599224711516165990242950942820554471111488779216071117506525449440952979906342280700450885792435016794741289575446485258864827200328437275215999904174301082329901332560060665656033789331313408081536916661803716014620811106017165938173528099690321139696063913103468809919071413061958551001506177710416809467331349519607593706787335369575731474918449828793063453080422300911232428180302272177914125142248567328588168794303129951152702137753407110835343197130567402516021544513518783933458163607227649294780465936439444512119673525696253835687095430087871457272725191330996660649836191789128916355200847173899185877989622372555726563189665992605311277969133908913320568275783038489632107903362616663135440805319085304452819209974029238859559484158976781122462464009948881904260290429226477957119371441337019181343813559025973454307526351044124605380382811500068531969271251729006319903606060025027069556195617712005696363424750928874627134635723878851188529374272532584398069848791390687277657624585833871640855386008496500845250068551004295594306223255434430023635006018101047616531797480089574430489782043941632875036848833904886130344148048086308472923872337813364062080433754556300209224015660108077939380264968567130119050733432414128141218051787180128585208501177631639603285079420366232847394306600144087491272049805028183842254349412955532581029355430984920084308024523644135088570835591789994214296381573864071415173590815521554822047434428440000061265202150502788260353018836229032165627658868334293051769803540498237152115041526698489777958033686744682175844395990104452717643567032019271585504004534831374591743385047400029551225104193843322828454615728073694573805109862216533336140042612890194198374631520220873951098836368349923704473426644350519278582563409442642733029535105198911289258361302106726267200340581205791516303777179887342261479367767711641319801095227442702911665908226439578972342748936033320868934577792810344436676395300461034036779010343579657485906095539107747868055229939133089441740177868121456315920574239423746122236736657075739102937336789405783683461890375679827043346850109599262441342726886656321681372200496879655306820223291766178837726198512406709013680364198293747110261254502464847004871304595039567791628052654394379402240651487672536263653973160975422703480546322031840582742300517278799999683623745916697115227621267320215060772057671984571610705089893000183068967709535834623376406245419580227776137405956955625414118878344979150843570192411221243472628256051807236633530927841749497687544186414771180547148979861261710636411159405008648811740004197985111336051967265411297192333760685012365913944289220142835915995464084625296290768832155616392324502953952079997654204904093278905124713253475893293946144789897364328440138515629116696769786519349985451357299276034130469458571801286197193541433820851976302884383486606576703647908626504653611729853069852120490825943426232356272338716422226062257940178569051585469363050810151768944817921904164194841459693934014266842527411797892039162759409241826012068815081384913295746923469406039722098798399581556345067851640836946616326653158089749465099995143861570567669837575078484640418609519748557839542586462518106470130593822807375879397210978478103163896190497087498900848639566051528562906080204483759402645681809522674444709048582520964298375415131865580377138261258155746343563408355624562269845244967915780731598097130489539282103381399591546257984544345623243060255161841853470516324601432086723544878994951311666535238823258733152189910023068887660490621569725077308948061976675704703789044323992249850111302047248843048508849749097459839087723732027085490790139418952171550121976421816597374770458283543121727379177779668102247372244280631251222945277706434761578455186110746471797131751325772238526022809962883317067989544444864149828610253325696603607951017661414605827581415954004788673936837118716727559470774650893169856316232650423565490071643948250250693114517823371347662111832569647899267615024501486330932817249447348070064867598911925291716734905342943017402969565836804595177038301151520021547068039630102831436530607228332690098300882320443581116955432605457475575099841090035180662131373169435056845289302071178956327403906039829006211329898867859789094225015619668099132548629327392490970573183476306211371325896523559532047858092658937969941809296921576565469161663983502584096476270842324231996877730758140143581505300734723422416568261339973440124936059889603494324918464941906594034582321360392083058353504104613782977095452593731892400807432295563988729433465270831956543905219652199579301552562819914338348287647944820706842376927716316234075211287184018026698225690645746436182896627604222071212569629909817529294569514877416342639676823436266422451141839341618430042077597445826506821055602475979508569540898759871594849680928197472247060046961378378786459970801775510586378501781305431811443157187134508136940231026208017284493103230580073649300930792754147196551833411892547719677951462764008675665056436485609198168824568174621816055910407406469883536290390538458850419860879014172854583519044062415022810007105163317835275539113448621702417452645349059795092565554273112136486017177033657833641864457360131072870451822414567231755162770451530881915187851278302181439774461793005099118698396838889802818862627197939714905389062022827189015567467653994158190881271953405983161077061404552135060399639466632076347727243883161243175235142490253339299671484426963159522325229240387397708251841793239702601188553591182289978295201599700521331000030813430224188598498784251963564843941262183554579076836599991643710571912439199758142917600010108383189495119060373077173968026328586729731235283063923236558982771765747390300976847222666111790563382619240022057977638817710337179788279675887670529297282718962487886145969492024256599156075773014406303747491926606059559270252971415812784797683622801444796043165084300912988066759796883599585394405823911223466111072809897085648004803253620257637097758175584761180433937744574168159450529121635668041240986366677299958640158395461831297928419347315988426715936220105895035025381371293180992334634651367597318885144454087898047234344132956184957294826609849270683289945975447631715841469174771074999016999253088387736503021668493719470468682769896101347477389134352086346295160407363665082532888405408325826976426565737808431838550296292185301091099481347445857937025284290894152199884454722102823873235589169745358825245867155669289950496770741086143842043941821795775736646546330010559045031322497367711493444656897563898421319979248221975418882176440168392353774742721456936993638357902748691326045234340534855394631702830773797155069733168839120331171910904459710556810950468598898356771091100943764626701626219276908483337586393309756820145555803621418297598761405645253494998174790505371486932994059322328772798070464171967169368364514531121644425466509037855419067795059276246240381417315120413367326106645375754790263773622500968620228536365094686530716994374352266281152995566003548163658559245128373062101244566229189030500286658486568976251076735359193057349888103505842741257647808983805481206268937124496568296796050547227741487854434270082839061861037493354335543798089640254868843957113561125527168818342892822668682177069883385196833165726189448055434972159678409370987533025952021218744665561516515478122088598679190176377242664543730491017675884786595146558328593013422237322697300797636148205265687675951071670066685071311105710688093962496409715832836060834328881940531844464518325515795371528107627842549314498848444610411454209504098661355780249894032154994226380757574002091032872258369500916780069730060461287409985967857177628981169061294287805081652496977421872872914530474180572175597521745700459449761482116750993681137871736437748283413856868393940894172598209274223971217165352323243515323721909921471056916643122425567423522033279181399279692075246591240691714324668543682739319411428509327364028262154102474791026880533135556636758179728075460678617247996193651373170320492343089329587902626014671685853012951130071977966404140546128525223699273287958079670326676482453326182394534209635576161807336203519977736877715566239904228241078116083882569219135498216574651231235595535471575184884607944551133599521676150469384834809594223512674011012048852997196395021310075314705780012431078590298694352736047858595359665967736639270976765014546965527292792010599852858678726826008609157179515765943691221395974800902029158781628898450455869456866077730245302871466491269243060874114828949505806442674981982202250083602490355524881665505484403016656488134925159996717074410476970313081645730483347852343428938499098986173460809490124356353419786097876523154801230681452374474425103329516852229452599410290387611332299150836860737531407889905245421458980821167273506245961094998440274990308001379924487217169537508954908760291558073086069023893166136088403260956592546706842468829413130457856044303749113649511499662065375979522645245709443944044211935417698393663627973473749576990666361067631549067919607494685439140717052636392522482156739152801949112994665361703778667419029552737269986159950793975077060557676668807077872628554387932016981638358129688849381405472212505162874382613311368710706599985815247503849553195629843072701313000181753595908125527341949135853224580258594415924105766837145436270113105606556111353105235543100282080283589750829674671902173541594582864854849526167731099727908073589671795786190685816012471873458803159915430905676636070155720577611636260400497437281311256316420472327293226460135513135736033083618162445976288561689533403697872575000154419159020407356959247808891010256207832642010311965055976457964771728571159430487975716078529666558745156783733234085840525552717436675587661433092023171237666788895778687794221714052122502429564114181975221400574478007208278205011279060219808529126616788448312609055697158543278846751182483464387846171200696559759052627325187741842852716209885519776742625779625881235909165739573936326822051368767645170354708212226783932689559129351032019798307134843281721985431912981189389316445412199810266270247599740874177676248972600326911506360312242693403309979530525521647778073993215359393083948650047034233508723132433260574781311167828699807389547321021971266755637838146392425587132128143828671397126664065513849783054781945900883330390008660176566108637036079990191961474347100802026396952631538224001297859225877947423857489686319029308405621495077866624486434941938803893069064190970356450812031245335582473900639886513067860218715018140972603483075015777365185320265660747087642603292171288083680703829665296930499290187279115766602769801649984456418237697300937714778793373715298179098703329101540998697378305054611525046163296536192908521151618940360116147551563665949288204263889087079106038125318946652414807499458417530984365044199860741541337971785809281668771986353149072083127254324287676406202026493162910167079721075816896192253504524186633483991625104436102152665821102769002891917436922051884604880462015471151891788708947384001277088645232887487794238598783366684119613410710995755388700491543940103097703597683739095397731364739290708312984940374059246927447665470130896390080137993983627836677561487791787697450899419985132031870573398525928450683722185732938711482001844311016260640680572175032532954478518821142422954379777478880129632899988646680344283315551926285036823802090118623354144517773850487194660476731159883124879695158726466417642002688703425638441953901540590982807842440625483184838419613746131552991587309549958155021706524713322744040055591672572063961238603956912326326378143870690990187050721022212701364402725890157886664606230702364665358528471328402332613614017236802857449554956963764238544658323564069540546350646592618596642763147613535518494724508903807452398786014095733362456959994667835485082049449485822791076482615694069815021581069170108010285630950191645607574473726344728242948505303338051015558134416481971324161880174480814167250797896743077461516396455499010353824009029342103810787187660917933518359284491156944647821965900022962068891804764955104416415016536730643393668744676649824631703064729272139291322457480917032667078479149018468314406964801519412330931582864197942328980335332230548667246103620677939909909614838697308772053907392182085950908533560488071010787171626985439856657093441830522730501462948243474596034770069164710475966475611935603999924260159828900645446678511598965453183454345749266846417390761158375465640193046083248129466218183242872300253826246919385264172589071969975053954183857437902129093259920936634270446964677351115869678278687081594563503665366882899064983994203318827234259267146418764573547477708630190335390087174211329054231525689623808719122114962480310859764703309684001991205980324602868435387462498570485591114031508560276726772911007325387777567919543811127381091349395471551832791483312212524223437006687202833739713480979022262517490753546237793188840972666161182072030915601937161068503380612626277540656805627642618680722982835323927687228204270542741953880096020766596159569180156014379565115707146986475518448190824936210523810714165662919971727295054547076561857611938504642076319728402891150228744501576913789062418407663906012563446560062220621658137649005825465648804244132270519682524322608205924390120977023675540336872467185054122852560704757300862732953268237138432165117651881944559207205269904483914525403260256269910621883698189237048483675570732044750676878509855176154982790054557028061973508960630471670814598700475901264126419021060490089875886805102965950418049639060079545533229713904865285358138237582166103794826944210926333734154241308930886937493036907017032394230724439917543261861027532027270830133911092311393452882559961942867347363931244785765941855734557075624913558141387607998258482035392549328174347708138724863415256436505810469646411615528655219415568747608006960644400963023819538812442278751824688415916136463250806538093585425012490256340313309410111838010473935700084861792257274578491547434290900761468734178031239742283922619945293633299516451434956178871915957222653434107382248567859580978146161285854708657573959282605025482375158856474902638022434236543707912565849403809679065491080113162986464608020634280694648941786748965101906585078467447603731321198000795491007583654116843541412757529476716119378229008521910196810052403962370967524853008696327515586953774712562064642733491419125352109313525413499204749321975896713373156723702725145591368940825926687113983554103902457482697855479635895885932113062621518219640498659557090546302699037628651734226082411731857683001518292318114058450313039102702082630444482731910140353745052431923893453221525105699800916080269186506368644054562962199884468950582811880242422887630792851087639324066569954475594847306909910371750288930375253462378494548620471234620331669104321665083019552443264990911384295283607150505268350115151997473054772494026323977020217362375914681806979546081587912373686138907675416574018049291546122218123194247443989685728487004841760644490719838489393200100286842863931271566165048000275794738139684908783568627517540086344160404276054094267380073569358717155127308011387479017586940836923836234465060544037393450914969289140548194942713080290887311170033814652374343627359277210426993885269217555371180742619145005045146812204307185919993680959420405672132626399318848361838273792191110357476329031927996531708303302341374159453839380017469631810775765921886474344149839599911748426992534778625841440312446740048233492547368232647626944887896410068953207473180959108819269204389872233104049437116276140296632461615313594489831185366780117857118961085302138253932172722382957051596265256144797572910135865126233480760549977508382220835974398605132284402872012511767496452027328824786815364279010934745716050481070307491693775572278223512007248031536399830399540128804955497211281780612213549487697032640947663351642167045028461766094050725908438158065238165009867789753357660082221386114934116095625312483863523883422372588460809708250765012877176991760363299268619064213984566473566741841190703511702318975871538536770093203829565077292348022520012407751733598425310809780264202180430955317045286657528015038941551140264734776695576230215239645680143356595791917251371187751537759434710291591169761684503965732245287760665996102777336788813469093808236821677007193779418468258674245701612418587039690296988063497159159572572056384473410450490063879344634350593322711791110560535831167617115954000799648394004619988830330068749032978054922300164241832239725390837331081405451040248724619983160119443727968930034871057893179709019255634915869983153458187506834134696011137318714854643204099767813595761082368456636037970612293354825373889705957249489112971665193464942694635746132916806884143588593965045001340667356830466594815934288558841870471750687258616015490478140375929863188698093486776953714692036952274936647110809761111074911398746828734456257446518483463037802999827198506025770357477832479708029953383300601806129164430683853262734241784231202298985662042237959961499085166955224436061187659488448489082001977383454859376836313061731007682965298237369142224499554949344826698433659658714655126465872891073500143388123165788185058206398958354532609915494006875991618023993138268723852159484936463951422677597194801591430600392861330594451252805494919307274524727570680615093170060658081852805649703542863846594937890537073216486919717736844344987729758935344991129412625073698297700444654820516492079824156399779937287584974567858196764107415120468650941470281407312712199245270712034559943648912131922340955572418548025423838547948749920624919210436922708490614728260555049565736944289549187596112269624205016726426034177435802543188883101498245112305966361693212201531277190951390946955651327160426025954417692043556072957180502397857912928368754903452861459313301012786560789698115366009773311555473800570118756533296442579573350192780422382233623468216738275967868414217510308268229509170913478082156629437441624830188311635362781488990344992813519661630370961563122694171740639706830537899182959983045027081197878277165215214450466134697115306128391722032485866598304516693762774253787266859052225449409548705261783224337575651824399550775322887873772596684953784199318041327547041725871395502981189485684331509953694480277384711896894674768524377513475964776084795137802134068165015122341915479283774479453910487691328307072036856899235673796428920294452698944680593084738465731352480209629120737697112991608268029072207674059205571272278573918834008403149559741397156162944665769842681654188965338932467638136285914125892950474743295960973842344338773118831001058649150499768330668266237094655933113102383785085155828812402851162265356650551435135288321015085846123238432196598153081687908822933226761257284373734107492597558510974628728587348599002818352238888469653416585892705847873763287119414377960691958016566493911484998260766220932489577958865832079471726854615995324236432235265444896578233528596302244071436009676146115241663153163181327492393102452141461449429288110656385466665146069016958905314522686249117374060600889100697938278959765625907806096545916545429364404700934451467625478491302041435045295553226331085544522237690464922756907712321965234067474386062274131046850672159385124133969061331036337416401246952809533790782237024064173186894115037662357577586703833768950207183619350028362021497546632950633766722595388094892642567061811622602007626710893969743540366607032507347585526799893458233345493629001565911801048356156082893312850156857844366680858181127486571304278027305796878537065181016746464122300219913918126494939240436606126783955074523521079945425324584203960669308142962123413974173279255689049652458017804153070564010668201498387844173112675738168918823701848701428914388245393451893078943470086024910113639479786232608062565497141535970578427123618198755572509399635184355302815841573307297681662562474911051188420512225291854452340984148252261964183852812692054159228749843206260002708431685274135788761260717380699337028364255195372378554409961856110630049676843143397698527939905007078793269288696938698167224268973412746919398374646299077656484974453627029167183008950711551105071640365061489821527034653414346074261514009526278545576832046616966733676342749296397353314540403253021323889689098960593911349771888322177949125098592758016248393168608337166298659005251005359127227595848486203590535096470129692533762971681371995129328082153895984475002395520973263783385765364472122048191694209146106765576548329472324460594153110662158632568607475785727624517713176128011424434747688867583686709878426601162929422834916419763365936734898943041311645185813664681387607396093959845103085344104809340320895476063099017636197129726627631826291779350927615921820081285925107109604079248270397333482470631197322279061697702939297208640655804321254971124148121098041753424450035108456343590137453320337086436843480345325830583688377752582508034786985766783633250782409981781183870442169814596888007379292699416698381050543295443788788149125316417418143490396749462552182745980028126362486515075492326177574201252911876633112935588186529739672831534543854471003417310825174863998268873837079675283172650618382554618496666428588586869740169279875867803622958476468127069569785143801107104774099959711403192676096217668950419129222673512510463027743988531376104268129091908545947719813585575305526015364313880264006804502014669079247602871585781605583688064650911718148291876952393346619744941309486568342368262899764004135752152683394217168162733747186605152593260737981717540803418920264606425921933257127454517759839552371520919572770248193358963981082260704863192920295846021399213194849018102338390262613893615788488060875068098124010479888508460336030508839568266484209589458431658459359044699588508781582335479587438576425189564685518682902940542090550754135640815170029779975258527859251967226956488243944062966545774558817049229759142753805580053939771317772701865228428306635871081808107294227863032282356231832472217007647833790278882441815824939377340676839202862787168185606360484809740551311734549012307695813784296414918991657395583393831118646645239971018669535858862410397716573368788186390930066985527423561603180045824829850202514432890446037448684939789620221580062972305122857622533106143880300391217810799381794530679613432194681129576770880139815093503630649406802030931342475379697564412553793456201423380087776924619433123791896018571216797142189808526700652768514785720562524599467075023703210804008204810605845517086709256651077414033666116237545297786410204095558127062987554308723835567147153245980427424243601892703328526540175521047668011141327062774084845826684814311486116403421545728903428252970370261352308159356824774831627475328704559216034544129626098714373661355707623909768385847364125975064677268690557942842439731611872341938947949874353969848610439476408726669790189373577194462343340335913105581410288822361566288378435898000728846581870592593920789940945989729693721700066883072576804019088127018407539300326480525680703321469693762601195018505254262917329439983210143887653188188877614356764303535834182470124550571898775857257659848319185131971476327483375710259717778608802710592760934403269911535100002908395511146371652511896809857620691582409829338809893212608647302415104302334639412715350927223832202154230418701212546546461131604348365714943048812025151591654367682706017438099810684199911074126710458562127950678401621251273766761067480417241936851004959169319084840326168266381135690096604614541331512623419071484572051555884218986604257845307173175615343247188675270482272679255482460378462154278792582119712915805417257388326068301121748103681416141186970524688181127733413923177374641753729982273075332632639267914876674652662356023634767450035088969792254031917148276533573855483812030679846599831869920552631206323664878953698831287794228338562841344817389615010110479372048861102331055208108421919405419397905174380775677094924006590454373373208473803690723597952217479233965032139625662211896380545514406592873707652182426049276235935864021173230083405145458757322538528541839387960079971338853546745375713542478253226841437972038533730716661833234500873605388525607842483267848769392709917577451842373242183204992164383327321225700354079089243101585541699875646672780971199145153124209155655314351316319212976976009551877879259789460623778111074859313812584856309287544734722770199820975065099873138057326815213647529606838023001211614792705789133876357201383545854736980262875241433194317161702438836207882446577173808803577148831939309147904302856192473485356348529369672643955388043738039880609501080268512206516585997286437858101714164413154094552385524059990461890867011716635889840729263096901227545922532706745127969031181571920621796330195944542877732150847282116578536676642610909851131928849605842098257671459971995921184847973045749297956298928131868459608757292290231734873629028309346033121308836347308540501586491254124893360596806453870597237043118105469178566959370058936335915361798378072869196021590587648443047234961651230752873996049863842730470234449397488281194542236826580665525012985817151752611646519244417042235407094842732701978113132371911129664529775506744750467172921874964369743266468999963890403409703225594817912909631316807424320274297143849264918877637108356460161250265867759964864679848024129234958667685071488352815456577999666756249491220483605010340802722817926544495523903238139113908784112086068856643327554205000595042103737665811558345098416862916087941799779639278757806440250351666373498786942051157286734838534672006562477508318925840493109853669031754977512409687327610925649023439013699569570805271238636729530841651567620502498786376142415638552319839046270472593593099339111972228493534140584507557049259252576081766074460131966865006181662912919902336690362202995881733385534014806539608840814170625507492920420095399975444452806394240835768923368061797144610414823799766955688997833936900191378088364700939438697299581736060233266067122345949878955132644125881572203102305992222837690308702253267306245413233933632003631948254910318522341283393126251703420583192113159962090288144301511553470355080467706132284777128470536117868986114133330008977247628644948839729963351896673936029428604828871847812770499175443995639754590559683859353273300066260533358026347464359537503457178688192990807615520386881599582650061121429832348324843798705551478554021219616950779981487896713583561947941112601528458249747273177614059390028742699937547010360994560357508826531889953359108420899157243397670863795600949765203984772266702161485704477315676689718864097557322528594221970267065008454241271707035746572882268186340775962515796164877665723553435007452315295868613028804871813646379177928601450677798710300618001024588532244982339475635156861650521726725533059246174750737928611601297652008700682197682627524286674302794044436726035800247821679484710676489255288405114400572884634949279648477611446383923577050217045307052859592722690342331533686242152842249026635767425786298331220012820347514561486047833870208581388644590941026388330112829067886718029768943572643279551539588566006906356590050342757821249582745059615309072353793864073554739737376682432581082325881704265842914853632725267758234010461744106031815432134483246501038873456494918718356535913968780254144997788937739397154125759628060341796574716763259847179489427676109885426104693611000850212203231028635830466212873691071539919843770519785703553573014897456853448080437974567093721409861049070297759929405241810820494095726644346526519450475586600082251872301201250383664358108418729722752492125002250259213706843392383515746726915095267907424171097683386566330901872861224632948826386817947328061495611229228198681192882501118991023082680407569304739184158072907661504221234959279708382284343098684232423569569073147882700849348446310107977638522838414866897592367624753744483545032968742802828119867558148222954547169287739876250120302086667388710056412230230140179308985924249853059126833908578530978525970514143452899312036539577467760549967748617634208314545289179333409363813897745892724442439257659095536966337745693634021172518737088439821661322226150702396555774370300530675212375404168962445477635496024059568128724502995289687362227945863856603654563035590740413096869782676614681182316137623554891419300127580306864172822744003508929532069856438396570873056551560972341250362895552431586589833163653565930828399727912297488058209400945645785192846172020397764888600695126158735544314489451445872456423319425929766421766339038527674492242626947734706117952336313246002397752680459115312912385462112596889503097855545022428681502924063037097507566187994763322604663000369452701463153529659955757170539682348693588417855147423357892591843264850664637452213081788545797402702564058240764451355910781146009870716286824595029905773787619428259567059520969963023007247136574916929846723556989759050212684169077073744832188075221489429904690496655667940720232230168316304399512427233423797073649657100758911748420150457301125260908708193629593877653541532184345550173415766987182466095260866451581979970968293036741766596989138698382979204089387742862890136466123290624479267680545550831664984429153736147988213285260140961758362281374789482527614849163283477019262418537415635383920499084086611185096861942196333662140215599803138850442720674513646540474550095209119762849962580589637328801173279129870206413528400514479365665678321590567088235869583562582022518173685461527013796813223887512063420670212446358483742406899191302769813954190446274298354627056574464719537894418706212857284171572893015045836367354002858060611895931328395087036849581754325178137782713784754030355402593698227092135640504097081442513309399839458285784260937793578182255656902375896657751708422091601769829646591239176707309025843324703766722655386421917228826022823704518712857114104508443540731588054983785109831661658757785368941819356195452479283494536052793335341785143091865297553842638983176457477149537464009380592184025350272942929764332643576397142590455479644023496213904587614627782313718750183351214000426842995886057494929476966405436901032725427522502735470278950332820473949039169467051298252199209383573766577888196892953430300166430140938617727205711630601063260612145379932607901101275667491865091538347124992603407127088735677064125551131693220243703916918438950896953058156753588774195061788460990681451208683652708855482957254245568342919975779348655789600221644548965662717072177666537904018477447935752893485282387376653467165221993117209474727551080201828570396806018637222799363956716391835383057640423587955827081650372343028878943040831607420761159513872466397354391417419344284273788250215731754581342823167375796136630004169186729571343313321114667880558325654696029543838052275376601717377384301121810940789886831625652848513196098660392972052110691969617427772991417679649816604221844601314207778423786895634417478079283780599866658343073515436766689753573869593533237806159509065591304963310828428887120281534452693888371568864634518317431858390697234601885080063625843149250107279022858640608211318868920761506146428509390740422467228376890568912457001061078437693717151637602508235293404405180547946425574317000063160955630917339962082740791593368994677326564086292205827529942855558718150174308349348660259597452000575909809931937375945629869090738526856024376081406721378227572063002136461838507420407363438632074452176005368205126789503003066959645777006628854900963592459644450907441213386327250397678414164215848873628396353241048852515022426470902144417814610044132444641070959904095300557707188586848541004604369370735917579213551809852422561260745264219056950101560305298358554591164136827944788224231216683856291322865236105989235317251909792082201297645888333563267618309833377125158609018057700954653312663203622198929727407779853991226120048725907119987928632447642979725360186000554880462342877783527202930588973650583836120426849498361392457940084822586427245930693052174969766618226555135836591295737856553084713986157366744840804314178898704574550031682274243210058590295343030513157853718311624456159124246029890666048496270946616936744003431317101298710066934466334710545493312125871724248545825049941742489751026861803497969241079098323355891103082771786154022791061025096187470932400571575707340867378961847276013009265256418599811155105997888822553873915003589775120275986586355702820823903354116074765199926524975386780722847148260565312666771808004695031164256572693458721562159176471298161968227353493907735520256012661139189257535171414579476162602356871460872908086906378691539489176802427745514041468843586550978291446242302082795281811807856448805928340092979139509849056509614606008197293765801545704351843154088327801680773275335001077616676081224426937199698334716511086438283896371953999922797880517434415663477042811876970518415499981405329239225088924978971299996159578971732224502258803809817640316307780468593231925853216698810596270386102575271800104295932753168717981093643543011252268138666585530048150238768576165615553069847652208948580152379043903553638591390870089258635248961615941704809188027234246793982712003552947175099904493957923835771450418378062936305368965933910658229928504979736655785663467135429456293812234950216372832986228423632681312488030118705105203588075740338127929484900854718333984515006885589155265318073831475322998355864634700222748728129859085362021255693487774508568342733805506661096083927070548816166703049823248885198525956419893138772889487252451236116948150375868422788055085489952679428373202215410493757588894975401412548136217414076084157856979432392398712602707064302448469305059712918542146816465304599776535119000635136180577094294855040187811261228145819150023197762240530120557741268964110687179474395789875832003216708435484367304687387204762057426135371050605952736099611480917807417159276529839485767268910565462180808726986531918764958969327804692089253873391260743762493380008702016462225080950336817533480118119998293019202215390238862118435064268812406555351374296388210373032817604974855294669933992916523302085801423006048674646579965119079946710654429925612212090119024199368694637534039773692377464210661412998703263162531911825663783255263453119769729790909304277796357938709714510502515084213935504721359240711003874583225836608388394555984017780273248595427297488430023201494853147123913887019288899649374283340648302108590553747711486020429240968191352240764454090637732731499113624554899303046089369068684045894052554643716063115057188182525384362842052025212769884751362594443975849681796778459901374646167115753231193179337064801179724616797345230633969105438169213816025955591368128266112240121162721636643374878634285528350671622755102112941209903777719433188807063301078186813123410659174866357915524629370118031323610617649860899668416663959875322152848446249791490477481481263150733473681420631281846970508070017884734873556364873720139588321711008959793640180453310019209034948959095385349114026359451082450271924586754659676892977921804067693828074112396309763834573824192574243642035773787792268362949108961010897710895982552553867204715654696194727262969527087416628841150368718841378708368124179319861073650118406574214978224444287561121529293714734770458428883190646464549324327088143382599002524028153477042666148572141796101828350610934966243704445653842230914375976417173921021159972718915475186806642207729337821069369840246805953474077574259083388980401807771348321355191662797333304873009965200054749248398945049140289983481344334562656438040771377895049072640861167170105853565618951542312267865871593766191589233710508029552723752453312107192685205884046141151350109609857982262476293599586423952652480738460790726623139870147924380896107113411531132017388196516600633768151326123748892533413268399478882574137578623839997678474238979717992549816851970195022421114843493852020166798387818085372992082207376010697721164598837924916052474686116071278134428890163537922392041369411505794368732350186317444118275999933295352963380301643734759162593109800624383455792768036246040000887838358613716377305815341795994780695818347913968015354620356336408256400843608796722137004468160485513884054498369586775765854746301426019711183946872783222986873660654608370145073690165382880818007535482916348872956624614542039446396434064350369026625001639447784559791327612271899975020601213645445704330189679268964023673357469168419485350146196462964975902191142048702883416644005305237998974943308670283715047481802628031844723272453549144008595182479068030575571671909133781438803384988228259406180969122353711899926520908198216134628876344827515341313949158047637035892837142037839971146665996245538086343183115819213083821615941740325462032498820156592296890743133005538031704208078101801982472752158632872074846658058405021420170424510395883763220961258257447624285202533710375989098712888695661422134389532888603378308192350329678898134345911391541179447398136204980772441953848916097317147871321872811173408218524072315379308467902926306336157255914751794572175945144517943671194324185706320186984167465568609754556019014967829545182361545988715498113806612068238647045978088885655431026583993569012628101865991534819928005366863101534056464031829884705467146988188922366110241697870089632325154929376691052444886163801592036466066389116957643344994002434133480655084060868222740653022513057531863962747151440402329778792390872458618939174950697294276595911648109716055351953681052044223382797532017232994788091054177531110327345700239629490820620177794402854423172091212119829222546643050245839899120520922383552023004236805580115135399682193552778490908861939003891469812534053283451199478023400244997374283964061180893178851985086869584306994260082491063121884208742967266302693997671814371360256669559545076390423723477766586253995358655961595833113619757091174059709292134545611073034987553924550120947045586648288667606045325387958955000189698315480773053160257367582606127477434550684507325852596669242810036915482866469302792105497092669626838418681932501185184165548163251056841286431309588164008127013656413698248135406821540066888694512042454822439045010827400408509780266178548049072965347623294837129146056288413407114788327952962514597575110080172049309730554390452253604592991135548767904813978664854880960446663250515100638946212764581930695441659536999687574904884075780377402492818193753532452270786398760027304647691418580837244783034410657747065972972831770823572965611632107597667796769157749860089981426244074811689036175827384215716701428437451600489681621942171768782975862343378634646605379486329472791793684539120691610418647958898931708534937147918936237586137865190687505314019293539506195944231152870302208385136947860126263942615851858951942896111373405497649840339917202749943768491285509390856744155993439422095609335981691767748549777146527196499274140585811720908283756240761226024936951847531038879534088169813958955439057109539673763422469215450474584296725452667986963086439795847658971343150992887455118022749731850353600219291583763119329633486102807241921693869712378266666986268297887282299445577725528197831916124067201552212397249715603112451682152045259535057849793416014946890417179037528257803438590458911134022743207876237670282379488229583648765459873363602239031521218457437910572836120254354102988131820521238893689383906478404067807314933852533280156421613096483619407776427706616992739805501455960508236418180079384116392725295589623995001083552171519459064162413007319053419488099900113585219338281699469903042672778726365113723071369644211570646704048465193197450253376987283712906318218643836539937236018541284490911617672064292255308837960759992849335039936561871923352113378115372656365435482508815368510943433472956042899985184461775154482909599297377204253011444855950167750324193561761116429016017986579374741259287131117484976184140314824913970765672112874784015070257599486338544194341405890055811846318804618497748084557209908671909809638825330968320971504714101835435758484274251613134823895624129501357341068182920969130513495391286677372614147199158966866043404482669363416345905330118414126224035523566868233145579382019982308290134813006248338839724673946565435685183035960778634176127202085988521931870765535926108230878123350590008385280930981340312374606611426903785496843780333312815004766057312983073043079933795278790426299008092593405465034212106904371771037171147668899294665779901006849800401465497772657639786374857325138641898105724867653396392198659711703842674828301936481536633724545647017914000081621333035814956502527169404448498800885970312267854331647569487757852697064329306951397966236244744343246977759182589033615010247899259735932651752428959737120252817193764575643336372208545074196554701843580513886591479235041230388993703144396544020365299087307754357163694887661785536759155948192712682625213152722503240588344467351589919275685376545458989744748191856302510789211598621009079957140333545170454992000221967820409886028247551409568268392699537729805454276629977432509098691259321513173787652772067105457327785166219761257475863208022498782294507124853709750328230391735020663729186266693352735652111481025217760979278066505446305159418852488014858641099880586080652049626308249767749212412007307914461618797852534476068456800117006724000880970852484175427361951009819929565229113372641265139102409828094681224007674382169554486895459156433250625760026707753150664771719585666017799677643505883425041597213433455977455463443799285668009107758944944274771172827852494647617886964692814056691004283901573104842049849428242189421393677388414362242279412123642124247483295989647684530417072296140245872345310763618215446704403890792036366531134545899161643757701038197470570923596391321495588405603412359846012876313057674841360241232425836055106430800507976508231511019967165699957567681926151222750244673574177516512866135235532485009536759492275492085248278581726225322080069851512826719835743906610093762919114632150596521457053444856477811419491197481107437629784135091043460352432900088788493321128040628049799911567803317789232515883237575611024522480033357698095231625715636714706620363417420282257485971739284571160641619772401788636366162298328173229712548790403292254406532312401568128518390811921206906263902516562311339121092265799344515487748832992869545624145911954749822845492933284899235892122809458505971509014004166747448781894149558094562862454731298420679924451209091242002432895487046993492419545208808002583038018611114334039873219182851908947427874489127189890745534729965639530830909445069822982048475977611193901670036667178018273197394050173539838077535585839960512509002885807293269029187885346831812838371423705505927636410045699553853224323851385620378058373881304078516280844074139752724447034677449493056417091563306325695792246903124011124605869572666364652989336982126931382671583812411135571074742458994704890120069339403707599848577524820370506574913274907057904295031673421145869728989221331077727572406525757448257180241725353613114190574018733334478253449358582838224512535110252120691428920540288028670160395888540895025847422029590501068152803708208012422451351405725015232406069140874321295680911553908089993698770450528616630566174357813255343229303475915451447377110000884332531129645210968991122055298600399894330156815630223838466486925172885475175103675961477019179584026823676111662042973091648470372196809377340600819326253500782092019544969776814608308292159874255560174590119693153865416378687121573818110564655750721131004078197624820933908714768553110664893681069704062930516191010474077129113100888012967421599998371374355172969807014508223591677653006350505318175723503728262146520340314627269117935501360230141109571529531518981371012524922208390041986083076810098656915162717479385336195847244676284369908860372389207181559605078219775539116347673576971540545262509959256778106583841414431029122248888107881387041352888320030171943823608062742607392482394356599721163837433756027789364941606674978646826132194002630006845218541239081481926965454314830285604475582983977918310661961462801025634255620812453778677071014046608343580017730611804566669643606556311597767828419977283485086365194695102007525074397663711934737941357268238320471698756407269835410675652901780486202153185563537355735748709337583420413556839082779237140492434720607835010228310547854044508863441256057219286181400632196337566013013548822721030596104780509000239200257758377952848986999485848773298760585895265143321013047699050996227656035437654206681353621806943463422837426427595291937858951214857471998901111122770683599594594994742162566500724606138328365730330427870634828247465417227375137549737367428617052860641853242499533850390305163492901372228952029521913242078100826992972987930259087975220415814559476799968068735004431466664532511273323524552406540268991413967410939856881960573888666754772114971053221410799649842398211573406964377646105082563269411205902950840479739155573315339879467923122087829053807418740847142871844593728276867532032729361486657131872805550326043085803004937587443281204068378043474803221140437185006417523197994135096763279640137721875896802656863829659939760825565084028406615323303476860613913756098289701283484538112828265760529451462015481541757472254058714027109795076233791014619261024890595290849846479742434088994672961926726246576851967221991387309970527176992116473527495102300642119158241326305390711310552883580122126527981475781745361817823866788975927502299840717682623216376769422243330210630046879187330424500869602578354858286113733095127901024500273910006951514206293697460555766605382291814242054067383620659601011767350846712078867159353984817375952666047841989445589889706663454427732223514371477469535116955082758539579792048716169035584050235096550651128061502509432520851337113693408869602915994452539126646025130183166008304042201210952139711866912135120433762609393363498974043596142864042219287953790932306651069829290104687018134975280712913547301220653009957370707369195379082199537986747400380242371716996602985297214724729971594279646902772988769295362511727017606485326522409319876900108968020315646483159770255192215045983260243051796492730693179904363086252105171559441266275136854886938029074648724251062152372352497240813872812317033018685429004854320958249684240685475131651290818816803293519370167189381766604323832672011638555131042261847363898573932379550606087080785012177495060770192443806731708371454169407625496141877688353511641873038225012774735005478772576862232129121041961180953398354348509178030796438478176718656856107285652650783354541072732483481039995145751439571397620866826597836419706022453958742002841455422677656244673175121264452066494667920896554237681487238750282782400825842425398256286027920034452500837494801882509486326423328741565049052713656038075523976877471933504846561813527482630670760115710066891335408699795951243618881593034369853098114090718480760652510348208457667978853851295290983659590371794372049409429762029793572653848842260564525681439920798566821596232695849134300814642893785590784711950138545395338871594494255499853252027141560319535649408612122163377694354764984263003631663377570780322837349145096803042877478446840471744986322503506844553783368696610552206786062717358768413798889091196329386755400357693457122404194578488764879681829257621956730499448537442619148241616898513155928935966607764252150400142745557571880135460071384821251931790061821905950349803567049748331763616771491588941113847733010752334089610938932386401888094666817866277193532793455356978958126006403030182784279581960844553112544032598428402239224949292273234412065644901348516858380987207996972815045695140706661678539944324071582433561435590323046127251137753818097109293810731614237451447692117960198447265168777316268243909749955237581613717979477957797939952929871335274877560298237293665518486289890054665291440582714935144371978765004530129268455645675128740258431788530306581786434123753514860482758399114971965509128342117001838039073820142724476574984872218321112846568064847199885212330047745270257683721842520582394910512963661080992470295276842580731121267528259935095839477936764069031923740100629585204002055893268854291793860000609007141281908813434219913486426936649782248317007797648939950406129542541215427367801984862689229430285946915533960531044086524833138222078917064039749800925456865049431861000943061971314634751291438727391104860623167790482163564900861057203845385459273758351278410421980845351248539187578978644750457329102093623978655489752536246362460753762572768802601154462233795561547021127367264855438364343509805779997696999004207252343713613864961703673488479512278845635242858821401719980443549664485550641018479230958287112672351563238248059490055570633638913800942203011300177474316223871033629847050909693276442695876319692492811143710491531438025404115397732228364675551966323141615940823588038761108720656710443984997997017580113072512202992027091761819353047793277826334079301771617743374970070037924385742502500195776050955518409140789857715582721526602478339658565876472948805864087340753943396300107472809777633072539482495139667640327799320869829973407534125112217467954107738648843842817835589479250195806198037678838086150272889890796407986361301949370783300187185426907488323848403587369148636733615473404999210787545077163446241662204409864367467747902829676928809676560174082094527199078248242923004068039673776430721121286413967666704975751376809009679643637991424544660233024454354130549821064420520195643630273060033066093798416385739494067154639001479643104700426781442451321311857792324732825593763722211013923015765372366450760041173528506867318535390071958473089345037201600008494925182268784725961151287613818040528618383075433782990454231134367996476816690262961677817647621952536593410726745820809154277669738525923905416034228420060566763530655455623248097125322942209415010778270688637206851597030605387496306134159187148615799242265928576078219134934851288524423987635139440845822050456588868343058994272759406593298442593961664615422512123271397314590316626428934316156917695346379358995662473933931262457231748115259351393809532275052757145047819251221381409203320242211341746541911424903996202767288560753913415543149757664340146629182216892831646638926033597842906287426512953456778678061774148132754505534205544058654693285732389980327948445366631749545244233032214562838853703439277852639645987695412286036869529605591894044201867656953882235975454174942437399546199973855628891286171925386021299781159786054753365729039312208430861604375986830514821796832795103193745368162827361426496537698948533065937771847269390564049769399517721629283619259910791839153610214156049735346092432084621181598546204832480384024562021136400251090760747599808669790523543613733307902713088923835150998007875648178356061287249055648521392077996823319482693077185980239445182243689813090802499114408657643628287640856462593021873957370364754070852490042387744527544927517150186197405445918237333494122562758610744787028252942074247396247820537164707701871126946889835831649936096649123721096147849432538640027654486827594772207956135834791210646349724909816520563783726210498268635564129393804554725784173486729119453785646899606273530286093590504321855891422545649074586572429314733136222995970657896821237242953039285880343193305761987150133598942683584734701771446304767702895058082057958483535274876428946727120314395577136748289518877232471723852158719025473773257746008901382533959425812002321439930278034935906309854759845962963379627821936793158639011791378015479892146687325074852865204477380736310629821225397263911196779961344795919241954492755284773513400691834813427827391576101771339869776152164526484516105274112971433647620749641823123057482894225716501830689186077708721093220069899632288406502586294272549188313479036317010989854767813641388433483966721868451157940227347126074720932002600808300605787777200293916956571764300861712082608410916355103562950114235296945404048264491301483515370911274578755466531057543214312540213815132932344261201932920075800011021232509715911866111488667878003443887332710364715401181272404486935238061739248902647136407613455969256383032278933482817764516376592253874071809285471340823842279980260273575629362425084429556715879024403225646462314805448103948478450403077480936490548916454499552029690054474093180753776470086477749547073634726664589396872942998504299177494858845622670707786472827621378693989826740910289921137320834067451420055061085043956353815376515497095249575348645693775784964610909633355510591062046896702976826299583731616164910089615873382512341156286436853646817320612903578293545026370513276632969814964951977916309067535225323173623757600489390516607580383883509022432813923491134059418302189321865141864099283477186797805434409457358801458137514268196623715477613986721361358467094414125922661136445956036176238273808659318730096689791119853253175975734633465365255780733627099868988326983973359048495561802001853534441267986232355246118965486641199398248404912928404717533174349944825715976543536025576057687625618483044305785557124297280640969134375494120431106206519880517351919424724812890242434416085063798036960339167986131542144831609838996845684325684509868334178551733309401996611044405012147577548521630629461245479181083022965479194635329442943475763907695551433066651010437340775347758880147956081054409180309553720775732242174685609293563548247342880566721487720229050959275645213611187348476956579144949226250388524151510453682354483208069855725275096069318842548428216025843609013049020190486472883530552734548630004663086439135754295193251297160657203940816276411397598852335173766127651105275135345396085010396688161388261277727457976684711752340853074142446440666142138355697996110815183053076199304821838279406862513290590972376676732507211233628418175970696121486723042452144692679046873987717132466388823440284068315504665026237375726916505599671226485515394864226040682764957261732256196478391995008144440410995230227041307861501645028432389848057072838341090492123420232377225851799476556452722172763786537440606884004842115393604821556564180914073672996115594974454740898223292406568982291305624343044272110122480626858636259037794907450497774936464291947058838112471713997530846569144791696307647743475159139737424801571486645605618652637925988461231802758432752888787742320467441547222267239999625750469672813312051296540301483919782768763080999359682966437173888741355782462364509678304291731919312596925193828321777709266461980985976277014598143396389746412016638867198543766629808968601394332347506843685386611883640313036054507035604754751609699387972848820350312374503131829644487799021239612113716089646712472561903077799062830792883388765906971371525252311632303983290498465720175660784208253726431120711875520124899838237138387096107474762131142153394407845744162440127201029157935462920621195929373943497934684425558377162575588617711689100661649783280035039691789048492304677193669803833166529572432659790726837205282201945649802730447237336489328398125332124883931113564263274504537153543381519805997335237479314431879578845544445783079336505207370501878554382829402071544210655023060945576173222103338524883124096201311195159536817092475313604837925868995494625881178968841550896474259520464675882030631316014518529561747220565372151825699347985463812346248383746376468368470140363399791543012278042818735420164666036488722885872064797538851702181399646255506992861580859879325973282000735134347309270209406518525385643513244172718352203991608886709837850833577404105822775922686918211861081698104742333761195945133141605255948875651064473584221031389747792038554878451582618602497915757213807159833156183279734168333549744924746097618065684843352149607282132208012001906473938376653725980148462149114029759786336171446828286720132124022369843181591029889792706849554335323122154591895652711739713113152289772407680633621305584723493124913755351014532876469741070122554750077248391789969032501361503826073327606576629462476262340162241151813573635776825441532533660471703969685189930950476116556578562753846523018472997909981356433045845246991214411555666589083628758881892726171354206588440122482075301086375850854289481755018311123795866596787853958952140240020074192607436190344338613342448337472129820787180113199381806138042215174438198107373136972262563303844455797615245679279337891665914546467927219973132976301045600844741884938156233720660101795595524942932312757076146797356922947128999546911080005501453859506073045148510393658671768107572754935966856262072631418972859516451013293395672053317911605366150420179384100618009480985324637503196782121429674912295846403256793917403822498796169491082217918638491194187890910570571402192531633688441085727373597967911361568864597894887035996392602532242187231263139932808618970205628956607086077176129115749175104141793872451139993965881768144714469022239291336007298695820024417728672092892256551867644211982746337826485116387269071790627487109729125043268436004579459861111989116297795185881893367692319326070119130472219801935244307047877751254034618577160793967704107789931385482136856897424347925412135271276670351227211348267716022252310396069242284647190189790731452143140014853135317590805649266928467250595684310275169931043851999075518914392934835317025705145282032071372954408169412718690335753317028895025009615407093625220511348620160753160153395140211990549338718872672905267720617468729103101619430636845532616566270795125592629061595433642220698896348256152568806191405126581301000939781743405170421677015702592200281820138650018332840931290925991378925877941009563146650910848701897228983127032982316637238114554804229876708848140853270066637836788004231160288351097557337550850292674665627403195690496791818498649078004128952804948083051265845385619703417460041928775537503245310518719522173136979816906511331475625900979223718415247573256536061060717195895597839039396143945017211387905179144904302754868082664066797995979802217869192080174158317877552797308291588707979789302390471103930656736835776690889532807869432630172537449710926944069125445877305131679988081445711465946133127603856857154402761349473656379805082075043057757571173890992096298565979826173692653872844883289326611704246704565021013224134196239220313814869548627232498440426869250970380072641512297780193098943450118878963220751667391983635425062219281354516728545311033025731611084288248835827502190536642616049061982539584429271827183828303754897585625395937672020428311695620453952490437068606407496735619201611823523446818720022939538437913764334400656271976200596196566552610161512769757862006574890934374169828954975571250264614089128050566586972780006326626416606337977895501780087380912598528663631091148480167431269051204674203970668545951837603288931289431486858845567298464703652520775159501252392285281440337229654326624417967075391404377336241889604972087129163819371824505311154401910404692718027170700735212100591571438642778639693589883475935485727145808531764161610444903470861095861734792584681233825200220648479263692655082617254383643640905268639364008465422778089974236482838764584129995908431379398138219405673124878116981390722868443056110350910766618621545486686405045890601323260161481246873911494899518245278297452122969794793069349767718042590230114134299004484739471175956581226840691943422337687649946994398111577025498990698660879594929757729659513692093182463242744190390852425844555538034788903413228088926755679963176451707324873726573654632663547204851273208829578696334885670728179442484947734178508195213548162515430714178832167623020775521037694053727646194150293985297164718314016795200237185731049264195172600833305645109171675538663058563554779346761229636935073014377209161203216656040403348599486725174362030855183586963128322985904030214429567657936469613190171999048499011832545471922877119964096294321132859966289999403676515898007049474889771017018444776487845095923404515819779790018296910434621823494560386911201534771088672182028447460170286599525677183047731935404025057311996140138393624816818214559592776823581489432960208185205692315576596428218085672240409647235945323222030407100123822052627051050187193231161624944391024801589797703956408697579733562328758574607024982902590016482704211708597984538986067395482131588462779100863838970493736802128513454562916856591173181152624052077028400802965245936686767414273975417104551588687406893756618143913590438379229175564536406943108868906831747490209883843249474874652192712205993942181361201448750109954814031691543413493962299644518926421372256167040908755578162441023350013460187536702513051063864986678296484553167203065534141083836433867554775406104263487397799309536860750151311205820323416368750581436165570703349391828188128226008934611317672199065672220522527953811361122681084839905819308641294708678217118847677733596514477110657538484583582324579894519809323041818616676634084130958134302702920439237094613975753094798087617578727878701883311106263041659307971694610297549105217196610850165464586561471716572638720162329136005453169841642899270835011764337189029422053584829441395080672006171443804730904921478743251544427242153636699360700124810565058122472774481430650998700927422158127731530615816136700457577225861490434081983877161005517889796512988609000217679186998138472221481080510369546844034717328061403340015458788371046041927517141282626745242645881118337468000514255331314508327665391458836503414913620360211823914844884172760925901533375179624171869323455605521018781779285497559431279408133427141047738095391768723691272195601655664841278449915200569893740740049366714128054268757590876918930482865400010844186868414501320829872199770389850309986137186755126686544702151730161851628502794916487617819570114941890176664191470238656138731020205052293203248448626227633925177696070725699466794638661559715802402267950198096800636796396484286088935328485580736106482787623720792776682953034232463148634639168674336478897356268492344410132156663520146048007054808761442675847120018313965662425976302970233040866675771498726621754356212171238577650751685205597652261007812693462403036515453393065066769049321071083488169177787589770353236261329109465071106760377335767512802645975705315261344058281918605848359661302254034004089234389110888809646932830892008338314651624243718984932131583963641419820111802603146949126153109786517011489297045317138012524216785832760848785405702566847060706583883672279997893816074458484096508733432313727103616638042764689675764136911972287794526147253222441989001487591828129251361821608669671385083995757787088823399891413120145201155968513998135342723483922155733401304255859827163211104858735270406815038358290573354012000463970161703076839517400723575542653164526019563246296062849653466995307101138883932775317516066135638594064584116890237520905955063759874636758409514977012218473088571941201580513792530953658584887080248099181455268058427188740591386532964168059085071467801140069073245808190185749950203568464530093080758360708963993186305936105617541321995466849183693931946864631061544433501557658776897645792102228181490601861686454515760480019620272748413490145767737562498178566558140245338137627729351115258200970288548278633959797220400720071402385294803228164741031494438433610684164160131577894479964216094707142398684566976175645097234047125183679843081351729817435620584387996093131438378096896959557719513431465448968223902459824422227802304820897219117016550472934736068648088516700307953883926920582925386319366560647556768033470020872954340696229819956138897040065834425306598690093288424414684721552767938229504340937355355931285775080043984007454150031675005654069020873571244050887742791008507027104432848931117872250732099921095496143391141119373085704749563890521525091989922845118646434389647787443795701888692547315445431971993158427891380618365155620056703198009151241249964774475540642579323326052231367334232485523691234792482962869208355560594578771652365438662434961293038509798217229437603724344116210369364623886024719674219564431921242322089296159180709020826307030011125742760129302914879433797613119585210278536420381648822909536111178424478999933543916049040431831794661431917290143081856437628695649112338082744134022602996302589781394946488488183575671675555089034257557154326662314546298018325987688255226077689548568820533145642283526131390582636994932724784319827554180575669367482850081122714018601061909306463248353734840362419766908213414078326572924216951100938157536105897728464227084779521655015190142973106873576994115358990972853910476261624890975908293067884754373944280857737398056818977764371826731997072899699260861372404984005490178905444648173880801149839632917179261172909204096129243992914446051751770868477036974883978803411660979706288436052393426186609600663464388873298221545012746168808099749858428976453075877559264883473519048321426361246189315387179489751022954541951354728424228547615158078756772770077073516237623882684781388953363338276001805165286192821385225820806968616999251456627797988054735802971188419334769814994919520996304530716647704985679112793541604899733678236444803515115187562446003267930969488693868581064067232903480848635104347824949837994033437018552406679666255081696704813033368431387930975691954878935266823560519607479476907828631767147796140074860658207964336603264147025493705485766766571698186247228872994419961185784478572068685573688594908233609252619664437112348645777770536484193523133534433772032364032106192484698833497722880097133839052097347699536583717113764903216960662045281785894987381552519223924229990835474809865102170704611103508396712012422180165946987397932008044912134864602163040539908691031381469947663087560567772570681445309637193956045301890338389258910677278713955233727410747153994443425160146815465161401132586557047317702826522130436525887792502740997266919099480174152777311689494581824302908209661108771084867730822300765282158949081091675922030008350197449049720548622260918212823018451167915766753458371464536711490184596379355878826843259643058431336077699878791236692121315763815499730850431886769320237905094377329324127509067528966329104653323932361887643801672328450838084693439091065659041450913071003798662542657060271463705865762896438098135805805753898239055817664099428864802248322763412366188611157045942488033070362169815950583482056014399421941409181733212290303616796880149275184715546169523990632399238941543595905437357286969173054132368976621293212788219602894460153545356350175163725944547215855790342169563363758991428287021657033688310045077656374680965737645337909619809002454927367219578596186381575207366035404352296294901743706555078766516368060905117646651028283017314462986368166165111620880312827307538034676483884944233079802584443192353037296660104167519143490199102130157487355373039449769749167795226945098968882457708618800732204796354412089239361818520446695421434853895218315146538088447709316015838922556903349548740204499680482758809739408796701620325492069073804580242159811921587735018327742556174077976473459079060467046692856921299874968028212523457887319489871318435048709690691669602456129352784705373285042214145567208377065533734620581072025678347802177406000195863709350204164084934993029873923443123005605547232290565836733829279515948543930558987365810700861668827645981156715476545433470345486755765043184047303051817975514424142706343968526210870645890148415640637566030463488313595106817569999898935188952511038605092811335087411486710816366304016045126391127094739345455036324350294316051998527705101644221602829297895727327866552840693257772853825998571398355409921435232842316053605474679873272502375015922134131466048020217668378754719051984950501205078278317801592953794509511533516397403053184009810458455197680918533262681779524213942966052717786559722769511495756402978187954764812542980989497590271563567301311898044491221645582813476657281921473467633660269962260843076110638808194543735672285074291742664256798680388675179780759529562605917748606277733986758400830705622788471118864297038171016045050333162548575311581308108920601228601087862249956539263970559882182093640057196442572013550689669450082812079110308712315495019372425668349494921032580987365813358692671888360429719285813367275459321083066769662945900858008921748124852554651990410388411845307554851589730181456676811692698179808007594904247439800807701184882795039921911061720760085029224261734275646843973354815678036334370925350696367932307935559444614657660296100794544696375904631044192741396462868457103718737807155064878394878529014770180699094745667518288297228340816502631847320819621653276969150321661233628683100251166121252916599683233849961833943005542992398823877414542744839225397280168042638663060187233499136701508141358407249879950561860624114567293122310249553429482512550954917727778070892258418737524487394415221156359115547327845124084756387799193579456904539631594245895470838811760526615826766527829551525524476750609462775308040317489215374310285821918423885923043097887435103584318266879539407556719726519646649361354373923152197966364057171220323391079848939613181598530034760044441143824195307934917211205027221064200956844729750188631287520634179346804695288264189268125930226746579500585689876635082026085220100353303603305397013506154172448183951108977331967420648317389168315303000642239527933314878520606841862038615085874746183746551378642665709972300845081788495642683867152534556301828432387905311390510904976050365827565650862773096789714966151384134733435874480110714409836429123311534563910682164957422071697935096758762050066108692651418218938497801892674004716295632600714046455094552710756803353663911844594689062243379878827184398060543392557708609714384395657624769295588560988296909006673427060956796983618355872988323464207959913575968448202520707383289375128228183777121333371813907651132711972030238953615386184128086742963773799834691568650739405069790423690498015210481131558722474414117464209450060909129833538036826961936763019603904262157022740220354242378794923014226009318572896713587806570148610784422201425897417635521248609416666226980169006944227139279357314942500292716242649911436808891758819872176145973899962201833862001313735582589128299062247614745863470366310178156343221124987430323861103065887197445954024981750541378042006695149552539076592192422847917144473808352953270835749282502924923174187746201862469118184742480212863852389645986159022203347464266329345563784554028036955027141056251169974350946982386225821689854697031092028383721563523920731575554121381912853256754483686798221281815388498496238934133863839264518415638519196291049611912972007024473026945663455540571358439364085142439408973021705571805786880145780332814932943180925573858561281297527761384654522479295303967900651197388464485901620716961623336653735854388271774276576995893273115359146304830592617539767278106406999817870444464181856928336337293010792079382233369943125291622507720887327134982468637502020059133895508217243776564257703807546736753823308214501238114951934737585199524034970172818104321241469946665286864589456071182632615970640736530817766297438593173251036777067051143597340744884659945045828276972462434800991108376277846884816188436717025606844115150118589820062804668496515672369833147180029125123607080249542170926981225225142550536312850999867064507676680202684521585636329234997816782525763236432281811571614571593205165087237535462642062969097204512284301359559678681650112990139589369511933149112936377077800300261485340197051390828944191427654343458004939667148540535381542469221429143540201690387236822739971116271325408829475509834997644842300295832681841779775323783869144514052215818797524121484699406719224602384106996991054965150767614364305075933035661698507538266701877856589648703295569400763223122815266486033358462974304754550232374744272273681914715862848284367785886012149782198632092896371558372093711033462946020654774792874816274114663692428860119242022386832743745386235459251281964014708794878673501584947390193223258798301868922887986010633493678037380999809756200330399484099000313611060619543116286237454890899829712665113091818640352410190632052321942748304347972380065100504974732192135237733027321144003383393788949982472200106473603076629034296477137709543972451864960226589095642543464971873298295174620251519048864421452801744214560364097860247396986542507808182082434556774554730088595172876173160364847201080020656766764960096534267185859537337440932256815516673907842083593678443176188669228778622088521537032329888793324931259087798463398214767547829189004017749097414715618147431323675799502524412217304690111888710965815013136521383897905821576215576316781273978288885865751246007785664138728921042553503058469462081261239232851070065424345069046001048773823191397756124501232476655719950385827592027704438429918565325620245846049624251367230554454264084114155663818779997724429846288474721565789549701170629146525200988625726829865593562769256815832906594130097417490924524479599906691453515409675553834236546773354902183752212526041342598677441703224464601648046187890065063760438125854215829613658377043007856386887985218703188376782770885270389777939807444126307919554622586908403524896644540729896391714455295716269995754486179809639301613707141351820618547336793543549251148242427721006846622439376099506183076934841086068922666574804764002996360609393237922563722439734071872181012771823925366551591647320568952876358360675263239221937018344260308683763603102188373083856147525174040147540176359326433506291095570060656321701782217607392827397330255443721708091285182537544185447987073979159614246759464396406560938651498176222910638613470695386376604306424703162482580918347269430562302137542079229507906435661856939870878016997807330043725354493460177487609536047415426975374176216890896728494516393114451622534235214679403878282087228056033011957534848207310409217543113294479091127422713536039694732758431037822871182799089659963436421065312240821753651340732250863587388183875099437064038166842958625382576260210472639148991392574364641282670298308973175567134753774116143860129999144268853531992035626298920842247712921601462557122673807568295897873961210663306809711813979079179821198996259511533184687799329278232735624523848288507044070407881397868187719114019046043744603463716022846624373394635762829596239553169872198961305203834878981351443791737446109733264528354350631690270160344450516750742287858821012335363759814111549233983712193325272859398968005299701302310892796563529424005904187289596686088569628367063196996013611438068326820693673781366594250886449793787861964159847907256535114580553055253523008563199057841485404406530118209040068190820818939506118760868616772923522056091375735581236994255128704641614550208487622213999122190027902225371083422940130155570093451847908725628577263190823240683533257710557969326755177415212076560447884303413301858791545058731541252956048409130487912936785075337191226814564727495847192729135909738695493292897372897153235754350360819544877170135083381515429127065061625260173587144695092628586143779219464196438894214158991483936663793810736154537028482991999146609824793484680448080174430176177943441160706215546706326414353344390841690238030618120616091972289202064867134346062480683619536122021666938915912610197209619149337884149945047821846717784693723372704982113143479178939597522701020619095083413673889889047866393293219677086105383728750568539941766497225829048214448941438197191980632488850887171700388306921514201961507050502451791847719727666378133590049918233826871614718077743820152843896878742787374641308943830635600274366577203355751338265979969260604033244913846288291199917255479628681600169165895980553873615364976637271005721587881772154791845259778456168500646697349969122115595366587222093535113767595578147929367025462022595179530976764894967611261023826916228422127654401017177960237193556449314534725674706870871743407032466153670043447477390177844197111909154460337445297837798306946327653499198420503827135584082543171759715320608345990676768273643227631973218905790491136033956026509102025006183697715511014516822172951139884015098542661679533220998378061468128562994611250163647144882823310784369297323385003306761469605075809035956107902181465926909721811549999927702675215847078832148854886429829747619649273426618396265084835309180250014802768198527990533639150866501139258951071310444060175385645771413673146202722050524051634094499175126047885862875510833134877106698810031205445712520254878403109514607285781365417407321958429129851568633443440705246021570212970120462008060567380228428006942830761446846939569593630929117554789754574101349089293670312836847613081951337004655539759697218326637530590444118208885664884804562471774970378643811931160092121040943912009615658157899094837597501878028190765912847093886040333846751215454557624402391592662649223034507116529439111956408926567776485976925998254798205017527784616776041637702726886242544196168156746531212336968920589063629829202035983428847911863902066772078492890796485471066728975336181435708321554325808318441681538425322217808230526579667357715741890475534410011504928853625069586467613551389661181600418669878591611602401152978567749011922149606316553738793302520616290571858546397439469454869094209785324391373593482409542043666600069744870949035721342723549931386090610488564848515988392310481608422286098325972358915370709870462179884271482632773664810828710912218430641778826880532171552635891816848686273007064796265114867128001480094620357593214810191802252316288537832710513528890406903498228860474227205752845272980605723848084403567142192716124102018107509503242833703907040952256288478068000855287329873419383470884182816887313477280475984007376899454534403577732496177813005490644644517328788824533276072724718950617432579776266547350135537514437504246053849546375812398701760696287838902011439003843791311522152787682123168495787831651242031303472457846151003523616790761053963592855092600377995107575314031928216687797281492162825838011273300753666876428671409182884515476339761987013793490212643521414501912171295643654024823138548512075530980107062397578198643070376236914561587574979434686704868624754863321210084012188591220136372858925891619678767210925973550083122608018601194949723867917734724583346601124277991835996344712890549693498271556191196046662523057858125459212663488474197887918345181499158414932497075062017068882452740670738669774885092677075577660556837980703120836496541097303043811958887916554762763354225478625214993353404064551876870732912484961423220543873620345791355274434326977165305857488098369092601794181015073566280252851091704309467717893370970071972866876371718059881288047973321585555398934335109166004549768734277767004084337728986484468477338996027571257952342027768105311575156846257541958334944115070128241381256338310972470587394071526191731075130908908582864141440111127524525262014893990721764494606897771770190077713292727659688384844512229497818806572258233054078354438408107313432304274034189593876788272287900992891308368284564337636623672570610465127388790337370367814747526302123226120185886955592936441322259688561951482707982095491494806927729330367623942412226406739935289500619849684182056279193024002524602689955282983180220734652783977934064336089729857734821502784723459962150789353796615576294300644238505807906989445530135426970954251076376566079853684056276000429864823238851918498581866030235038096117589960395133933153056127064848619396243531328410045189625135235861825657493721905843426126268613925183031167009518291222332715478925125066816466203147910228794931222989847833031758489867798141185139005831666547288844610664022822167519489394686313677560360522496856207148102961164255860801448972849834894821673681551410560887910873937525396256023166799973879992669368579390878204645017963097079548691211242786776883568391204660262143156753286715896763060586843046640509489960618240596122121603268008744845059525053133333764587354145236267929496489136702693131974355456993331462242838136308217259388018478360980378607048027863127715908946957069628245530998685143153805254939798598615828803923559497112089948652217983943263441065681124357009548840513040840734466922880251553968809777404216055002705807527970042431366280284224657915383091510337308776256261414963117983743472409246457549468168541845720803267861457827916532605678316910071937007634908340006211696702055379760173169112496915321144304860937971045785547657029986323984725569016187144131452228868711708959409939777670534801623432284922736221268000242562697294636402383221817573120134848876358786775993616754863032035361480747563519246451888830978699591445702522760770616760688512668103590959485131522575882924248753961887741660981897335095708396794645417950477533997592261600116129907532953422935039952141986886196737927800297221975502059451929478122751210284926526186056124507846689283158048225130586173206576811113276696338310032051613952150859351215205154830099370414811460636571442273259976978427832787664162992703856497180336429706556520217443590192662062711915714832818353938716380969700286072874982996910912433664737855348058155129201069513527655182952623373144716460961445446790996229624105604416642671708121355372754800507721064820602528666773504581567363630360672012066500629976489996266088705581453260719011432758136582741858723067536783057460202811167259670229064125208336141551482737211473724143712147848708786692193906385113358371780277525413826440554776798627734465684752641193051441548947878870413307210452343811721072146485128268449654581363511135412492979853839715021217302896401111063283350081138653315048575698466681609143470968504891653776564044757783042133636117359414630685961189932839706338427309792077364838204498538177323497888815153907742652852420704850001093522113049778798081047438053397112872702571433610701072703621649138654498709455224397428310046849398284705423127143790394660417744009937851678844338023598174073939719818175890543496418018623556021369782813812692021610118607704389009723031175134523207707609316378995816580557958400947391415491320506496416081035349656044198476027629911038252992027427714814651538816487619716523060309954454576252414871366932015532874048841409507863875253866342498197255709882463205149549350751327962832585046100233402566379412845305718796831038383777588217212698828496326263213960828468606925188428983627665864117609243992027557348178925232430054837718543292333664324019974363347823958138485106708040720484602280934104339698119235208286248522628073915890733736803029648284665060727978424905421849452108967909602218751013920090501304043725273428483983934452189388358011263706094264662941238846012139028875440844886951377942272995271614124742165365232964912018451853017784759722875486054915322342067742856045929739063155394694628294681863040684995647051025475420253638827724241749100663181951161585198328623029018629444508623072946227091379109311774173675725239505294704823192126369536736944116597644251321951119801210048781892770733405828255133758621574956895824374308133624543362070856429411698522795779950721124714966718311275870923358956026302922324354629893074415736583023673991330778349324296811410386618104567690361294425139826152689320527158073104271377206934193561181397432210916918050294979920864960919091850518297955972522591588981712292660105903795236179730308413258989156563709449262272236313084301541300082309512385009932068578258001772164137339175470751926131677743336187523894023332194677743506864817308507570197716015458142631037453835867320341213321242811685224468820726478569673062223287959179766407034595674501968820170169704237731592694473059161860580659312239353565086108870723605286145800340044470424660449927869074559290328949706109408250063044438847870649724678541883207842535557755891503950216812196407635944621745640226901501829798003529843634277968773073365477376500790400414476546576028297869308136394755274779890082597831558791905040292497655700593537913611666352649791270556049811304408357427983195468576004144032319971822752382755595342932958986365122260090818120389825385066348559172766397312089147796782387693889906737834012935379060342085060598646971096956942442032769882532872196457554932336958685017573991813319080852323697266853725509998290276734005792307377594496419936824211456823741003427462570670733185949084695716804417044190039723587495506938178499882727770906904071953530292373369500828276592422078599573856522137885313589818783737704349114372627267470636189048068349965517112475108324429581542875908380287788396694807364221647708143741330937230519840923128963539737034773416700893938474012400404885717489622358532217521976990653293155413729037932392436230273694434999198694417072866665523163987557798356535293905926762857172097900851394941997277302631171303552706427052286080260727195372026423114346656151031208224884471835720512648937175148303076960685845305368878674019694510312743863819382356685005969644150307065348442838771614363861872156438164463680398419661078449184012361562925620073868306692357051549170310148040027455954529916612868838870000690033783176594316338362603821518267243912824097337337960417610725817826371934754884737416760722920894060164157352823582857526315360166738330426409926920684462188259670858460543919835230501673285534343550349571299933614851989231792953749319011891653946041271805503687119932173031081509267171293904772022620847636646969749788555389113299940732286374124691046245903546010872533494041703737901748060012919166941218940666522539253354927457601439668979032618660266756678053300056950474335965028079271956958432365477304652685601621113620304410271536149621652412967865460461501678702596219291302818120303679654360493798392991677605158253660181433921856060199124679578268273892183202389537103445332791523331687762253605684332928713005017013310282560753885955053948231080825749215890617649541330915111772352068397794170001737812015670716914279305713283660479270977249512220938424378967451366947536020742148588571179196946501315386047233389364080057253753663332148632870680558406709820346327125168124337520588904129754692791768079561766475319981542552608050314780524324161540664275400745410719822956155609461562984622972855875640801090236196963063300858600744160387602543772281972502079469857004493754417961253750857983193439989635742042068574695713646586171622487177506651270791587780529461462853705287866100136199688676913210251421065224550893438429909161916121774178515337039967749304961635013993780467348264814531939642778171267453176422694641212192045382484792090412042668651358248872377706899309168309916387945719073723287796803091180347722748731521499202855522957903733448271225583945870777910809391471052163167906112138392917311053918080226243102669483387721811406722266794322827796938978870665519102963014478540807919217319846403760487398252558173358554083919569610865935923337025714037108289369750940160198355226490195084734973446804405796612618666436024278975765534268927080361497667692054740759833933211818870479727485937386378818470263481660227266121260841693377631751574338808124245198015623275858637631685513092864988293101537978053865418999029593803441148730223728034165796882298255329571597471471179484111121169896790018862428295204679429522752926852172595500662162856117328666508773533108623989642711672878347027837988240463295326845932982151779550825844082688628796251686978061175082625127336153352698102537627695910703230210489287301872203920403018186600369971358560744749515075352940041270535390130927431449699941766117639500947346488116981603298040301763569192730785869116534155326692514836833423392654307445074043499318586387797724063371083113816703045257489385530795294882272733309713503484967621578022550872896910776194881503439147040295961446722444769062285986415790015347726841802472476678333953233515857925874463235544988894447504256199278988424998309419971343643777590448337754340997144890399930567985791168941490519939261312668358586972236815328151356222020674126583912965816000395880301884931047673885005992029405187307501463025708276315684132208489260031113249340223899331687137570485612862878943369869150880144130921909889764433799703625535259587550607033489929342379246759878654737847042090998891148156648621959401900473324903161708771359073696704352215242829245724332450901408651355573373424045477960431846055986886424261648111752876258939720388125768882320780960384228400554091525146677056534579388836550831239398944039906558927011908444747668986327008353867832299998793939644456343148273100739539558546853319625039688866528143761275436782448644158255532323077710708811218650436847867431457218169162204406248937183656764931360994977031677765050792420749960207502334122348981540791246263981532403674598084833277881455307125252016456249022819498357892233859199314368800971806988391829359966482630033001619053103539368573810239152055340929685445596703816883037474408487246541333334027231084178168466540194004508861835753942174102339790741888511963740178077651939648023978690206714842739876521968493463533977988211052124051936885788475658668646744475098584905197637904967794334479835372818314385081811400642897946182456482009867400973270794335777959213854408899275204654278633918237793638666088021050240748647850186247935016900995051023405291245317021280545370151643921785970142622837879192521159430354949879897348144990742423747308082051091121589340304654543941281900323765810779203835134417957164622183299862662745302672077542426952030079734871786878377300304588431485425899230445252091164822577022074087180884986680086127891167921943830106724065957725983693226805652353975803373357668129630086665667418321155037831511836984609592296370650354658995121883879684610635147223120156922916021936307285433776699816882590540082438720356088698994595662301839901503455422246017998733072906791539238924902230132976707569935821585952708564279828968297154811781280028894273123295158826855953555172328254764717643518779048104861162221768198547100525210716006782670734717589901565566238781284174270469192675836572623597841215480911932986977304191855400268989464735631078963591299316465046831422691150920393547616876196045851227181844080112511269452776824542214141226568354151610854723497539347076268398752920781490919214964838164384447406898422487678081667981993007791540077366183518698856631635390331367895288633183621595833873535408715065206487961585285398005833242841044580170428309303164880906174229832525342986476395352313270135440778705844726571088847910373045486107260237287995401999663956419192295604853078046361740406575455656101381111485783665117371199371204654950324555727491833320508325700917168578442280858555264307040197586008640822860397625295478033511503200360797655096296887803953454050296675047758217103312569000461934644442717567824603503870477968892439073920414505238121599969651480756934442109907897161188238880768653715903247962759264453925299554336577664425845989704944094682294340872438252860106682665062658728024972606823782516280267811429640157499427032365085300675448702777291601058163268611375096360766992189279863964706651327642380072785662247073573842137230521643199191857030828627697666254427379144188648535359175374382219011008271328027141952724995906032599204750744696445294374450772423444923397331961267624457404334968514799654984556083850734499342888012102806097581172393442329286518855993611178938184398499634837052867347345402395205303280768457430141471933767329892625864149645052348282742434930186583602508019114350746374537854768772218325745477058135496224021495757748459887686408577484967186878858681467193819162466370612071708875009088672204708683574713429647579699772733245592773421441956038024056249466481888004447948657968194062080474913061423587444876632951294286658613076967827097615621677590668238381771118033194928879806870540664380040001178456937619431869307934188461964845923200790449081674810078768730118992591607796685507707515626537419807697552815375096428095444403917695789918640610163301005281965137239114775819682297909838583527326571163653049032263505669171629146696774607490877734575940277847034888266016892652094600938515025370310221938224024286403484061268804035422781756412978189524341252269617657049159687899438162457660272460039808561529658692508109955215418821640180730866866475638347744996829288776041591540458323373392979868070452979944873911338883527495492926370704559135307863175196364202128515715509395324742287936533292831602644929955314583544059047415387692552666626615633293169439164187834510030534884602812736521673382079660952537910935853981419862395029659283961940311022206779779261436429618971620770983729148618278043073906122751290643655808982291097716484052096675655422454329875752247034668616840468625077617631110783216057948264116079731880175665166575684045452918020727407224977684525667735508934416372125522012225121109733841664941681338327634412083979221879773410946047021084131108885075920160684221643428922420006063872811762244938462221409704904813618656793924698451417728995697405437978161051758853452098276040135788104696691385909572060196708657130409469512978451375020195516954024156490490143638882271303269853160038043371514176617159315106283996676987637253185685806207616672001059556986244804131207167254433579909494122219412978723777388583296144559072192660417713107003239544172336511174907441613459560012236092935441071526148080648132200889517818693970963021380448399895328186843386408558065486458495890901029370858585303547167967641969355915512720969286781312019545885763082686848865178854282881415641441781908506995563246903488573072792455572683727066977760088262701627892668155747833230461098152612056023285576354427012672759985138406898471891771166930356194945444733593574155088201472358285157555918070241441416714142115274211429637582340189869151303969711477770399113556292714723919017192680884629915876291137497785283285835900470598531624632777031132662140472053099759806252260508609983540351704997860136892408837360089334790358769480898360443871264040495698981703124960433938406538161709669223184731237932838460863877988018205778733186090623093107156481814984791349175357225466561416788014952175804130585523011936321899198578253709841725681538159628460178626273424969551029218224236689695421953183954214219048170434307459668845753251757744770085832394893215583981224081223040083609406037102413881086392637965339262825011267904445389861531240268270910975276516265826258814801724660472195391694590838532576870850153488465540173291871052335032496180804823611056255459681836992122557654619708764152258174834586024556502246060257077248603300987617425968317635917746921492519854859824842524243325164642719368990778869609124367598498297558479192391154316706301004749800549412606817438777695450031746116228892216583965059516210979662719133264680389832296919383588351489142629574830908647350326651594241475907192424924903480813227044139760278099734663690603832228616788167914695278167396719193963176875372465547011031395187227297173678749772349095205049030054709469384420920680918718507950597357647891980934089874594322090512455958019763218754305981694487695335067978507803224067909695971311234728834854793566036360782312146276033845548968033592908966396188964564161830843561932218943706703841231940313232946275613392923147398317895733024954406765130350044187575420691633138145528147679127381900830377163179359064772207328225975155506225643293167555695635502313624880627097446376608229111589676197559707450167813827682773699100571730796387618226997181938353913008046988528208149610778904276928773241938973446742750164919221523212040319948045288661774762950008056169832908715664549812932530777615093669579051982251139647507364035644896338197676432974746358864042336318415307337347914475180401070489743998589942754236786553004614050007545035137137739249749183414151981230553802151655046733960426852521944040042299265422448921016264378399746871061856167008899306457270849942569031127261755663197749629971331602370546553369859059681200439854580311966388795397053558825847181206313148000598698311288720830219434636358902003130248246165045636775213849727435812041833676038912946323422756855490175354819012865193343965316461009183909230279255652844962246754851653875886013769111007507237805683541837155173126294312779113081070881557342462684531140391461242873997843401842892686913446092073572476603714274044624339617605136810147062761747600133263924354880140583357443338730462189055091362661817789213495588646266221929838904617715784170755679893827943143724856942345895314261019806732812589562748635368512990065085953239448210287702868197155150532476799766271712678920386416590142540052913269949830847789530817532081131626524882132615879492555111940704653630300023548787455495632642915722817286374441381236227405349480454620475893690387155027149173058824271811682315359138526892409103115237209506762626715006443300098990073986249766770914487681534418234373877003281848965954500042284629430424247420940678727820340413316763466954330763935193089851613486397462181967541054075963200313925644971362715598672314445331386295961475513536350954321856584230977045030182066296681325025955730052244752856282713002103139410723755926093277353604917725336698180159598756117411059821832570884374938526005494513645611194308705036342319056598446516838652807145138906052406571539265229780366077456566969792452026334272639320978184763627185847761220193748421873826337623792665091307838117851188166209105522256485387180498578153388097978385235854935138154271009861750644052963002435738105521210437350617607516396832564565163441700103962924389629697062978711065782868027070165413208750052197755738750740971183564581606625826050019589069848194249965328099177426316622701183328106398159122831222247199517701879639641399873685649105844296824266143649159803166972234317132199028192441954873826877195753694920620842782398656707496843721746385066066242440703173793184896649629369239629552559386576339848811866469287329587690730251301273547000335899996886050270472878062713550094606510624627737120739598181714512548146130464495532694249247514007184200875586166917470307427945615594853736646416748841928408593760709288762825795485288592667037644694104845594618128054390315440477238016527314992267125707035339722745800338504089542433918902377755988199752233952726847870755693603651166502918471791021764962344414058856233176812042152939056773082618907937310824689597304467979288082894994970564951414814881189928722791700501867731622171538625236134302847463553461140990532091986598941412466993591344067334512318338433398203095910472004046654963432014643569528813724898953006235152267356133127852499343181327170412413778832780486740645607269226524689300845924013710601222538037528351476697336041046262840343846723983926816344311302501118067115912511980483010399998629158650427329971511875113529752662087264621001986549310168063891206835139037347448380895603405379373115165330307016601150686913895918367813914890558881830215764428216809666897216180915087496397967730406522363621820941534475316707312416001409544000214142366921457174170479601852419513923991034428591771363164883137886145049575889774654687962071170534967792140806772309909635218208040234341036595825556930757357531829145398181023159606574056448306066636526039403747805713915584705440388198511817505765099061682046023818759065844491142886574672079239397550974601926815857316301124672908378369067934005196531833152000137607515180939877375650284655515989494400167679427321779693955588540282681141091142718060807656390863105337332280149810096457030056299702014832992063065119024403277765972669073214452639297541837836133537485267804352973857419777571451418649079630792715810881760152011963544514411951580727068743550334640048131061727825691520710611775292098005957228558922727500456909788576608475937786558722250559733699302377379792134741908120730442163861709975628670904874970929065457346253325581827115502609767143262729831600706990299344573070274771726058422049297318168231459653766017912126361886936995364712196262205878095555928497578982657324960051049967630448509406289549235690815303440048832258552497902809858998182438027781376529800258704932963877810252883630613027292846026378837762671642699214239406851339116722558841370916393256461350867659135989609782638412676310838602235761089316209260593508538091554184509319683784772421770567858120183703576736852991958341753738037650653978715618751243702118870548602266773779590954544897223257749534983104967134358686519303383259570548260972259372023137421371570601662175665376388597204037782156442452519578030644237504746526470760466953568483083839751662244106004545697476795217608707738315638646338521983107266269579803880770393052407480920333165321479623218839585709001623514591983250176555488890885213092569186167910869676727152640091197920931658094654585389521154607026836423006631427161259663185337871757488192744203761012951826072249512621665514805391152182689532806606740022986147545130879284923043146972688324577199083094803165697764550597493943279017560568971624251063661500261218824732265076631045117295331841124831297687198782893896721054226870618890662256127336507742357324284847771130993822262604022798797851035075834324184320800088657402666918085947472496206182180694710208732538587393331481364733057401550472371584351136928737453446957658258009666116165554160934303750850135538475551307604117268487786161837577798406723282445132604953505876835451242205168021168337293439493064590382249868949594403256960147408953323212643178214914392436608140828346772915691867516235297743175483346478716167409641930306218513547767157549811029645351227069579106792138644122585368070112592686921675838496363964851532948203889299438047049034269874567334225804977830671966162581480195870138393055795584584431924445058759915776971949868167884130491024251134861471789979325925035258101496324135885037831759577923783258947398445037413219135429459739837384702169027468764868820608254103995387427123938634978153692779224995648274031896501652113851002548091834246769257355257257382678009734684136156714438344428230404265938764437588847596224903274283989505343568142515666921975232117765981420550081735023957618217874731158861304444160709881222669230306511210360365197157879177653603739054123900437579588462207828401108526133160200117578046516937139558620526858384706992119968316373513357922620633186004530518639959743408956084728987692094081154454427748768952491489986833462665903250603426932057654072010137906983039960370048148011255559617845160379480818627240284676446548662017869575137846523345300175435847538000977461419815769933024989731588312694143824676587913777559725163910914576540761164284535394766681165050064749889164800238659211967330580903968723492144040004714777884329582755376892011352238834892431446746827375005599165912781278273205984262669550283659098466962809304357952437099000649264843262034843674311603612296329497497619748104618388210067707508186425215987927745656795110000893673147768287382249711722584154206905603074913326733519634530298029936006047936186256705918940090479790231884173403149050016252852858615474820874717646750118068836169641499228394884511627222411907569800044194358190956191693103158015787854468028517734362635747911985019144207616178391464945484735200402927884401018487527627171496655006040850623399542407846748842959142433716737659017973466254905643391674391752927082004702250623156362588747081639471377364645453185309299865379488886050497765701991444802520273180681394373973336495579662503990091517774048199960594015794709098836819482385839541867984412165754460501329017255081256739043160586448862427704923090891355050259844463019982004216198333736212186824655496278084100703641831353290923008750975674318113513621555093080371920084452853615297404773091686745780221548491180267007884979471625083557092291855993199141359840118847102659422435314096302546680426611362448450203970402183088746635953122595500885452600719454910256057772927144577864009195125049396714835239654602869716292300339847902738870722392291196571027518456590633599267665180365418320802793674134205509820050368352497671453684360609210044294433930052126909793783859346726215104895168520137560955559833078406604150987500882027460112861884119341043575926238153082313684967949790269717354006975766063915828490991707850190531812256864686421040693200727357944720122814207665505107988956919576284521822711313876731394281312319702511805789159894603687334675666398982583843242607244521990681930138508093658635953513200392701883760498572834721274405079131518362266235023982486236335618510142857954036520263430063292442160011077112749240133992465377747402297817100787016336501509735861137516751146743430669183099843206939579495916943182194545583930313869319610649690003823960817415691450567386856630874390676347835880236176070899511246903335051342900867718992399062981820073679353029297063440339948549718109274741531710485508708474373493703637978807704649601790458659573299204880955658621217767334706844023028435613544726461142513259084521473935534752363028313236409415245958184319215533528750438612319512996749118134483614570884660187825948939873122298837722582979544988988297463889594204674616927015560668363825888567661102552032193968646843767423373167460897197642680659180701053502069266232596465303446273304619301761378492876016188873414017956119397928828591495273021016738276823187375874094572882707183039832294887387212911752507108787049032197339391129600168427146134107200972019327994350139566068308625758989975922380194633756358043591291330666233112866160690658949644541571968542939129158984161736765116043008973415303194381663976783963319518274938670436151755568845711932488964832398534904029798317431550067910189842167940150473767107074909269230192305932559228085593614401692092914257699547992373820135037474305507424644407160067913923276078434695609401736632559048233268397845268845293489873303211047384142559654220655090907986554755074711218516973774861280414722026196536575991205306701868300221294289135286262120205305757572715976449736431084040395885148345075308957887731887162820706076540689223727625443933138882049794187695231268492155872491935893343776346300709319330513168463159083608913219094611728409626051004237765018402727160175079247691732394137575158962291316866261250710450900271480657994063525204043900743889881311251080901652951863782868653418329070252036720392221744100486893947994076368143188608830687602048618911132450514795025786447474337797893307598747800174771659981106332588482238361611083922710527668884864705872998167306131506779939393194399446773610520830920276780206802067531641105749689711356717583051228782683435300421327361674121707337841759689417490597344051953807088002236502957249244044438289812341713208280201482175743018651515666002746317919166219142869837588180522586572332906118639530977280428014568053848088337921837225139134745930326883961740819795426433800375588873260106203628000374542429030152833918364042130604533559494037448682036524266196890287914982745964164940953803176846754921172675231809778564727195804667024007115348947795759184348156918017739674752496640251841162933249043155004974608278686639657763943488071856703445355921974511781370915710621615291011380115653623074007259707298517989252563488110503461566927756519719872898384756547683453575343925686351066103970543507533673232089163714142632977367197491911301574910701447390263781970984396074560706669756701182026891559245264643708622795380864869858047360678093982023636291735594102266301686516342607237819523147237324097564590878519036554333928314341101660234165867665717577824397692638948272039218268419277520837856187817025266583228131205320142934697837599746857085593831498442509103066928996704863331860918508091384837945352754944577380525736684691772690843613065910752247843878967540278663081944381951093740741440691551384066592076734942134016493426359318866668472173451753936747352115761974316820336164674092458553859357492022591271245348773627926869891277316736957842484767953723703414913922656691480169227959178577719514644786265444566949803502435008340715865504393459579193085050385921504647184000118313675830593860887471939222896639058763000587459324804173846136175075726632422936565785662564656424593434760445939320691601163943571201057772972761040132476177366671837558144363993885723093369489095181366495048865248550792462149147010568462858364766376712069118322900653907005826663951076812591968516548522755082487534950331139421972832413739601902830892302034715374710502352007635759952658204477527853806773607908131651387975063418551851683939030958899244594034932492790416274229467899674117872770191947623658403647457989938512761040324819263285240151628730157139643915575852921245897936116014299291778114506853942335718419140241182904075926355466633424212365916861613908934308787165445452610531037555380529217719851072844291912896339370426618725815314597914354939517430180021218173616885480791603966640572014104293829527278952681555455752481375199601225425239098201875571171177801665150991333665086105330024759499484175690217902159397782530367366766125239675182141949721602558215531121727886156170671049741477907390109655538624042030366468865595414469339783158204503818510121289353012018867896819160728771241365651442676892045919697668260620257524805423723963508672564972492080130537291011693407187177813759682336493886125728186031215531830395177013826675489680419313362863032348964023920037659596973293342891706049059304264069746643924678357999443501281202048560830090724685616998483736228380214351735649949832346679076440710140034541881197430190546075778736930011629669073518065954528387518997918876757669893445457855994424189660011776390642584324239857219013097252251143722722127218367453826018932128760946862929833964266235629470183980477948786748201866147971579211362674217951821692981012984972680500234710368436800768236259702277243591917730640099719693991977073684904139921036130300458341568693855403456499521056497748585078753501824816831573380994478594981537409451502011725521474650637151030624032349817303933701252700934998594111711715717609788745958027595331975156394280664611472781186046931753794759741951257639582130087799768379482783637898522055439095583175813324742774003399911170287492162106137159834705504330662393349095784459253096199633784174503187820443348044484848165461439053117500026046397605098407083878115500748605060434099893160360141349756261649071255488755581008219817566566200304619386856879726419062657634999796283976800763431017663392838380996448508035152721300868955319042986388946221142789412753519960192501301713963517715798005096004982382015080991140435116033355402956813972402221074399306040681557270184349487158571755906080720809627131873069529733872548412586823125424640854967742335454290595819231438990043615619933901394609331568207989563434618077975395292557381541755963819864224258009306943452995019727202536796312284069446527885907901673201321094823969771719664706693571954245837986240346580389448057896160367907105195925798057130403989917719287852169617967133336318011569804434261140172997363744820869395392787819475276598623386541571238262887238305150209613469766287257031250187059229522746746059472789468017385096706679677001196020368872278234528738839223138647168446502453664616763181394404901501446775734051943993883145530818173612813073497340813525810525011291285530581822217460266415245330643719389575255724469274950728194580163415911892454053129056440412128247118272319241729927779922115983953599925428469530840301898497760381528180664670536370125530091131715450722498791934473163993983011903361231690975050916180400132646831628399232770588160705594702893703769310586900860445390222081957180067609863501544053370492250239222818056205606980288526155537669627493488244805119132198370904878875061384600967456308469227720633733774723475252225661150799195537656448034213023090710008033359018738386505829437189279280550387653997644420456020439931455720486075776449166783778426623430676611582746267799620975629331772418143728473135822335368873492472527269985782870528532928027793055106812871506171999034229118209986791382618471369984291198271958816166615155975797295381596944732245434996081629999185514916873738856826824569194415099228052475670913960662837266437968584357170836724698424111173853234196175210319239791679841360749280476057547042825443962479423239645052615013744665414303638502008351024676519883526605554642894626222848762739022976780585778143350732519521451315962300035984844622271166564267031286946456374686274333853435296030431520378860171888210640912313112042310849537051449181583705862986412084090032809408320039723650063864788937832818728552728082575811173388037538444437522194125578729916849030954295375183748423551863121846649021040987161052420045062827261967301856747162922042703729366525207707848901529206022231247971028945638762338019198582477799714611700578073275369490299258999656046166443249167326063998608564124728292039241680270391808155816829526995284536705804497069824226777853190108258557597387458404049040582255866670329059419999239188236135794553571062240535731862504089800104837728856515738570406271304936886789333380792230412534804230095686295490820748717114976516177925805764033793198747107373119247832409809146210128307851116038700379848183020650881237859583488636630183945120627377362695234960238094625532348786632794359285486278977428532115217404814192847804336428998777373952457176895885432898676276063657204916210446258665263255670033123687117524028479191603948566451765158881268273083411257370186831397578044751410598812499871927931182370072598223025738388943841681283471626667341835540697871517365495608045436309718822445754465046441300684279744656545926011314455582416253913162947214180521528171022204233960657782124553919966225930751681324674759401619922685787618226278387834756247270125166723094054774783612831403037291631786438743697836948148156686766998758827571785081841987507967369576417488904011473214219704990958806801515460541483589088132688969296321244651576471734136832352600123690374356023580845118798938743317204467019717255490036412811776637550818399403183342372653325862216320235625961794405346208568950484349485210818994004676858443193820112187286228547831451432424653735707157790309840275864766250170695631962845242780342712350861026512035598719136648498510249547618703055927940535674093862655336457899631593459049745052695336608849225156496735096155287076034594328723502350793993573670336018271845921552761050598250037615626226455802917036078154851383814989336168628300609003439569597450396581932521024767352126000175472124059854272056484961541973372434521273482719653137772950248077882464958144312157906683768953020123146154756004331854942846190446827925054048651923167600971015863120105004431290075318343353678370062555481856830738700195919344862781419848247235171371526479867875779414809372934925838348749290217918772473322890869237611284535792128716179973506286609384378857628810141539182068775317993795722513741920667250089776042031579372811876867959181972933636730112763197587275194502929341464391543124272971227145131803026322326592301969436030648786904263872105206671184611545339866167505699069985930067420036740969675572362494920924760268152269205693953373622426545714831010619410648137311545815967479587394904718990967431120079709785992048957452571042648287235035135151335423925977280038259239693565658291068590149492471949036338646302869118779332260855522167631155803577597286295982341136762515154457789052871879060927223126754407733684248464917288972770061306236226191484130496965376327386594215029131434521594950133543002269053844138606374721697165988339210170550605361260779369013702322112604777586754390325007494777795155705387742604691075117907250213817071446904816015042331153197925536514593150466418387132582643469835445460534865333112514820775912801748157951501665162031153463911470699195653415964700217746895899932997179064958924394770236324391158330658439610198209762583545905132149260561589888015605423318287774728687794517752778743526858584960782029917833209917574518640983907376654257655978420338086878300769218747586730813433107949442792553389924490174669918013324279720078724835612974266281742949983023487619845789402316256892726690239383315784864095250375385423234320596048023171273849195081784453658940705624676885147231471380220602583947330051373468572714895617650608097080960204706900121882222634180522614937531006225093993979379364273349435282680036622016585354440672612697491831921006447230873679773908636553411588662057324963683976325580001929380675919978219122051550984293373737273248958042386519287590331859089856696710948099250513493401029043558144787762665478064622936225689340124449692419191999214994711282168001869650658264558644824912822450519258706520729379279070530715317657255288714728693975884286976221837262586593411722059330703271815364585661577743420608876001220796128419588314550326832548293308976630429520434909872287908559985012014978210933429608861315193945589378369203980055164543592420472383307690720549638578264160072094708077640487757286405417135400784960442479033926409206805807838539117817295486131859774266795850828225737863186778519836045566942224255739563386483655909921713195999334605123469026951993223441174583543864049431192707807663502523695173484243685232141416035053446899668347001899164584761797112227339345644471838047781687841530405571334508231678253419037833033716417562225157518017802202436760948059644812896101427784946067158594098696107932527621535717750441144498953643645986263818812103647807684343190692108891126237341770866622501111782649159540643402188730982135853238155544422099823208712374715052754830720802355231586303535524243016423844256711592882483683381125375326971843342004285352752448867672002879690439999195556688942506512623766642280201225625721684019813367212304245897878043938948984979168474660680057463750263371134238774865188924679618333783079249822344819208631497280638966560606004126307418507606385839609915729503464516851023421135552285981874465007933535645785801032455143552015772528080133199951683300454747438556042931086885881542682648838763111298383495005041585242109612575407113195090630009629203118482996424116955331651028576022041109827349963034803544952966329787711954153522834674987234741276230710464468221183420058472871503641247245655904546641589153933117406068374025825887033276543860378105694957906985186316833974945738799748651273477976111060809038559505061959817368675463159877420690602833697736251622179034343600495615968276434450068262644222826922181589787650104249208653832289740767283968480055871482382669999940808863065016873322431384147796494636582493210101064738600325347475700602674839155906809030294296365661079728752564815800162427001183260261349423302992518901719647362686797984708092920336682549059504338279927599446730721953704295677652579485244831007179691018411836702630206400943199830265489831666209877745641135288773377874847061435349098033546489651123737742639713697901097643667969760723802746672299987294305524114072232752846876844076966362316895439781939588707989440722983257611811487744629201646502019637227927347575852159316954370658140745466916789541252387512861970953036892082902401052154677115006551689215499963972119995000055889237986080367286480899272476375395096141229386335639857841382528966213190100494255552705189834049106215405542805177603755256285462250014179839397778857954695043175152461146319525924839077936520784949805800142909294966707653695625424973002372680729315189905209444913562928362593519113630064156122523734659032713894600393114281402188606754019660941930606426537889919501304665963198374115397720758789961314181046126383687047996778241191014505181582106526928657828914087836524388795280986504827458383383169142430715877720135180371998780695194389672458857462662370909423668703248489193031411891708727883579457206747250665420181275013365508740912602203884528605863641891218328355162649403915070636578429204206751345055110010335013975531811630511434055810913512980977292921527643558277847420899622154196103511915264675219078379605019040107963979595917353660673674902815124505082721031443472859297594567313452502127653991136632854656342299541825079724329148032827827611373868202554136869911509778225787401543130222533397012762502142793106512036465932929807615493547453143603437836540366341648409621279946849948368086261716931649659049119186729123255661364001708491884639217152932022188434794079698678591090437322260226255501867760558554827520900735545296190495433331737688739567428449465456666823716127597414733970551177774915936337428720205905744088946606761806228514251757756188686697132000450808069524037481552231872580712441379929930249193616303129240530401360814724237033595412416765752439053062514257134961589833916862200311529739917704822888201245229947103666804467479808885605679914167908407741180677876697106768258991178652040055836163927520378616198181650440692671938523401583115687106505561227775962498329010045959352528255928594063298242023860537534828513652775089253457265961496014018369407137977486610031129042697799776150030261135517873499998832382457323227504935989558220218414853924796294142165924317519748466171634491077883593267750985081707195521976435049625766854137386724774179451853515597679930033736909262188701902987321128428118802474878784222530925491979084235926740455466891181083909356315552426655064880105326312503555973616977974683409345875066257502485535924674030434196921205030958590855667958497274903456856640890157320819353063887698996110686080282787776885413086383321286161403219948970866401566968034764813605143304719096275328708675674229487245613453804733611376326517826414365995128838533322066769074493027950075707418878058025469655726955593976165237840454425701154914207874005008796768439373072673689061791881045330250675582120365611796233839381944632959310308474522592256659879840146579308475178675970760280243832303387530636117292615062411123931046954120393296733239520006609172240080992776084311255411157241875269259711144981936610347677127817876022379486964630505265092162321201156473155378287790773029014517056124571198287946956774981832069078514094090125650243805928009188315739760978913414363621791717540322719411707066960641399804801807818089100692373295318570868688627781889382062928105663579399907852434970185014164180668712253581630347577458148890468150499826471379364471957050895434929976716056313674300690957151146018325183517682286338094275701009180423228465546307061987890747660449297343217251726522411971566520248927269685391735679747256155294521236413105894009429844227675945436156055494682432960541348331370603272369375815749745595271131230679061025774188429779027768615097839444863197934537910635297693580915517040636003761292773678886883429882992276777857142889296568228677791956120502900142557750049762663593312475477821758628298261471348063237503410732558976329718060938536759154976824674055684013730780683915319159997270523199019641680056311202472170249231323878082850248161343835777097123474038220511982526030675430263863283679368725025965133512498617664049691702877819294165830543575345132700807694784281310037772335083386126785815736073180797972124491040486889000080740976924086241522114383692479953057613492662081316376665776331035191718850575701017615510356343957548324751244143302928550512571871195357877203178538136575650656772526477982542061457901570900122843465024511149181268645140158089165945583119870708773086629210160238943982011414275021740664379133165452804180222505063993177470066400377410494103586652678228207650205168770084870339519359887059148984782935944591565897359814627313911398607863619274366330572996437922258830469811450011240629589672363583826269152791545211257341888613708440697569659305332188656119063789719697049472024748236106446680232331913356618600292124697260409454947625813180009207021943734101067184625283848821839496451541793775185142494582419309513731174100943466198325640681045296315751972702895261155041740646596033837699448525617285656135597669654320526609313296382832817077499409797053365729136077189613366044534692459962661200874171870657633493343529059703219919867730981649869617014023562135269485301882038150748266765336192144013083780325500171406129461438679666399119813560501687435360541250780870191846514387011108282522392380441212203145155597184393944301322218404655647035561899886546733531119041183482928578890548474795322488789831358909821434408274877690877213386964212447785591355432230364431786910937935363363858820557259325436897623092181030849315680658951450963818995015063615819570913823638720419248843656348555904843143763751594415501908513640629758690327378385723287065541845768705720470725591709770635434644317176282320706173206599152874306036841835090283371376201838746822639901453796235111211496565927547438586718138643460541566789326196280395961920806996612681363399441893094775677833777568541455692040058276182357135936741602143306346126648508193001533275911308836207686002650845660115734427023881706727986340467631796083175567719910746982278152135129770073906869469955861016967721988283418890618775907562724838456643598642078149386535096778801505247409375981757740001328174158032854167524823355155873816940361470596018521774688980518775328262738550465767894262759728668042167428280693703674541026690154933959689357047182746538576674759813433803516562767428670139358641529053121840507496415029883448207406008087889686297084609761096841405215442718987022667206952082021096785866652405983098711958783749659061243653353421467864251992838493693651782612280780645598464794329023133134928015231695307728452033877604203120161092343300692395691744844776079212582470543092148891193450483509377306973119735217377296921913259778918045661746453188357871820498110497605701568468470783936490936030655071390265434426446874955347012473780242605845282176823502860668677561863279683399137717662410990276807025825287953665176594716285596219171443140556282683810758952094650418711194461546375611771856099385980973249321993647797975375877763734141586357200904633911681957537538915684662383252564731013458993936167060588705208852226176145461599976477561407208095728636328829504235028985182985135516537695918163215257023563404262702179827931285830051882955208382792648260988920374967460438785423064791232945671634114760369422887481400028871257828708739517150632521539390321197800506368131436736790612089501177371179439427730038814165000638486624141280553024102710369401399184367256195121482112011633589026671349872600326737904160620123974621196948765856537021558418144857024048021937562088521262167650209602314353328679670368944155243797990247758611679404086992412320761203514482662251222093876182852712205047988210377317999629119056280832261203756958310155069277569471390661552351865550209872182392190567854287440129917689500243792840237488047845154921067322698173414119388862262622950652404206465907083812255489922983226163620231879630960594345706709751091904946938804472726107003730782443451586152300181308418160418537705474422024877246265096425905588966884382137684806996161804613474932469306062765230231722680562807088730922997435217662312841666295016443433482034353743449818923960932877369621974963075335540548088793536945438322740397660523304562483058150546132569474312514983045336457412818123777163278108080156153682942012518278335536206265712125984385749909800831732239142246124716820702341237910596737679376760790211981370943014231742698013211636743348180038111393267479664297094663300901344314986746848347901553564561496764177060674683560599611873697290075941316625186761914006683948212762453736179495774417928247047933751096762850275428933467437701391147783406725679369427240406041090181119777114664930687868125590692732818086228887899702971218784135316297801651933274120871274451801030246619290275357536673878700347938963367307193239193182762882330616519958112471651800780041303042674248864252374358899590394715985878158177460028256637670476706865369463210313964757021734362124936870268192706922490441010921492353574331688527811267664625335731900169170794450126120393763884876211776579658857316753860758436992253164744963446071466048667620320545307730118152466067172396738159849621636685925890619918825506702068322745201425713379363506247715593359743476347207203031998285431255055421049173803754346997200809118218359128487817148833484045739844816322509683134069993986080447278079566829818544078269112247026373452010631619029822631379431965622367329047903406977937313703340065565352966711621666340206413990580264053069788507825479097360007415153774548402425430140683742598831332536481747349437669334126214852222386856215149818226932018765807119227700522384525940715046989170508936996432329737894357043279304496043804530267871613650899177426652984741666615915421455930268131706093674733296018728137508699128208047861813278805257399634486557912813458622353148537061501538408962986961770173885514887892085892438211332345964211362128240477086986327062050565012921021988691700434056800647394122303917150283624654304301676653444961834554582370476862776380560286223514490909179862365793815809485913018972677520153752252065807779835217818928112455422969453080854078513188631050073515608093109581044143630738045824368785528781068509372649174488248247141498549402439925941982473597304844965282174163521570263831969185810254963294144928141084021702059527093215253865650799259329776360508399796092073612000546867717963901339363339733447943267325406821882981726643875530553141899380229771377492758036531344324675187240577850560989455452966453355434084286629701285694298139492101449895697898380937684073939439215420749250351165115706951659862123435887590098656967201271182903460054093086754515630739764440088299573935994362060456495885173230094578107068647613049882259698874003320231005490579267370157153055310134285504890620443775309577825265799579871985543170096695562608284794705554348377742151442136820029654248407869991913049750823916664070209243451195715445788492557919216112267434294406810471045759330444955029729998722720406018692768286431185566994960326698718899927287687130244772463456474231178160935097083251434300426576625456572737948593772514679298805998423434978269666924940523517366631318406876303583690894838636856514303692478116895949016732555845751516341480153307890939521788727958899411054258543370936053799369876204457873086233580179551329198129847369121325334950206698285728273195329712764488888373851978453441660278902793119109482702283501537809769928392096222774635773292010582558414834355435184373935801193226284742362086229966364573179603689076779779515031470501846960322837970700731216488728638564736708843295147418086483444882739342317526914189812140550624881114232072593712139328614027112903958862986849369399473660761187652282758682067175578045656008251239757498259310621441461406200549300631382649860193604225774021360767015521210145111078145868186086188527702400956996179152156824305354401595575880645996976969162402094947257566932952270534411658281349864027127398010428254892412888297958684970146114774998034990647495476163755198192706300687417334867062210121496901085843215556696565472076996724744603555627818735811191810106194813308341463571941857974973109806824690903588440421787822720203748720252355733595246187589871043283062754970313381311973919423255051995433528151112609143917350546897141642062998707158991270451658943101953623250500496596011990951501995935510723215378278682377357990239267359845588760466358498054172979762066473251074444151072093239069324778934051297713673117718037641241113560603504874652090722605329821231929596100168347893444424513081548370626644239803917211135310819864449794980287159038951190008208887219445526135940937753793513817853120503729886593516989988724363960801583575250011242146492691283128692980798752935500933682285463713689711731826365360992347899934368414304414021301606489868877049653854304776435709816195681852539981998898643169241368745493040993386117425661092729520322796277957203951503000252454027915304012004154248182382042992305566322460996575541773191323904528021207193059524958391076902596303800064196839504279290344131269973481930049567181387003843460573151116972040502215963297771053675045259416815207368835690111850982525478376712041837453055646006259824487787390685183845756044278091083602488063774872922159703889307350118641255057701613784639037103296690681094341966547885653525765046642089682371133360125192558995079947749208343214294545377840627836297355278941627009795385167075372543833582113573042370521835042328771516086655114122857473539602185040972117548388354019225983573577516801416983226418656598575372635931743294802850716262701919797384904768081867454954790957766148325976045915424063809288668909992375958539692654014982958154452526896814565124375995349239359383399893447836517207743275407959698433986893320547892052768509978737856245127762914017860913908534057964914846391322442613935275925891803133329604675996101115759778669121745942009377630410253571476362806131885106596203630414388086957796964865808876262175677767748604831123052051293125162326076771415177331960737835087137623923794226003783738418555104253859752752700510781897492897887147351126923399367258194093075006368681700394069023362680667659425231359493653728413146020143985339709521683650562754763129747982558744058406193268103958174774608708840065138685896799702604775844096604152202501631746513440641309780654616933621812499768988967888947742785652827720279465891871963335947070939954982792950138472922088864225301144151164499006326555582845205520284876629703000385952602118007951183632829740181434949255912868298201278489685692559261901342676400187623679122001106657183923840037035756977560015212182339634319850233251813295865271768178706015686522806988264168527637521657146591889800284110578061712388803865994639871605225410383123979512545101414691309748101112656325510780694928717170328093533147012395562521234442033205493454037343244214220801455213273575737320631527313081678559433510695865352441077219447302396265588452550981404118700212795487220596675830650877539187230232279723885858079917785071928716032409345117840645255892566849920583762526384220617241828397666851245997167099742576175091791086130305088339560987819627688112267912429877473427541232161383586425999903681965328350776885463286960162496369342945813440700441199086260601635073883138854578685177441602133783488271983019574540943066232554188854818870514057943465337859239451839836561215079130201361762685862190488059614726621929380882728002423499743858104152840161884515638040144127399068727480881493035989873121889032294448567755094315854164551750961580707613847008101452056801162470128230893970352304132094268289214068541280045490125371024657877179633328067611602738581252032805343336382973652333832685789618131408121444651673454903051971014244178878181585937045702461648278961315237928695672407839461966016382204519322146321373776253057283474212425583013392576296045248584382691824651243689338692593838693892270952444316300666509715860283945064842763057647388996530007678803028322516146218776843714921391595939782957145420132770947293819676454026331508412592525566107801927830070259357321076896004206852378509547944801977059745784086193892856618197769761926410827935068147377732737276091314038826114301771278672472873337473384414927530149184013635597755314526813166731065257713549915665147691720277373924994504602424780402011722430864534965246664869525445958636412105272615040441364690064032995734521252302822099724595362149678806726652801061872786568249497376892967844108031668047945667938664262578937856441014106516557635737856668773364637081943947265510580240388227044554412863327017792359182535473137709664777153856376364118225365050713084397430318196336331654297002893509520825854118158378348357160778243360555491048230674638830300037296374372282383045601675398238424883485018834104482758561773491759060917883644934202233245621063587975001765131851907714141671965361505934259825727169167618973278341061169471823788016694546148477682134414798502350283034725342314825387912788824014216801401122351304920475864078543681634462643049472341814974437990932616523562679542660239046969002048790062308908665788776874960913481102477542144765084847044920473088782360262444711889620094074938605197612859460204377653786098395098411181890546964224015435359428929793785705213324850440681192322413021868292761826799780519887997743785706498605500818478903622798216614145321622695548010189440388404711786483929423954149850654537816293615008027517115292834699812891455850602884754393655193174626592799567822888741055568437604471157160152096554977065508700339518796745159780475711151444547396306001205268070265784600815110595389331652018187227699227928544659935703207403876621069690117798469772932444882900622862679157145342345218316555166450825164779763752734774181967573698392446075461525352357143119337586357302224814686267922666718796327838058887926046013453255574861018625421325455762103655490364041031938397749861083783071922305758695601421320067914794632851241415642272453876123502996251118472156178042100443174074983533685734651627244159777798103754486827796033844971919291878582825220484779664112813841427978130664825682306133041033854368898766807953611782123716406931503307678191866787994225766049433752537344373551080434170523358085518571642338304150605358527590543651291244229455627287597967612611927471817771840162402634306680149577274390188358474977600487438986800670820123855589715272678002093065799661351526477023394891504213409530315249060687946523589088775217921941247660899024116793012876092960077671081616195180732288240498138821444561022571104429082299984363408009541671949383803783481163912746470592024145718601351819604910679967708322129085166847897389646436345639790080702265890006850505523571573394677948997669347529061855605207337771222505034871224332926886013820527042725458838992360726249279926037755033898406928721804274916648003534273866439652674452477656243747610805025181857143112590332849823646360213422016626414402445953023141015518805057258728214371067318965551592721849983475360743344608040142740413792805487100538162064101421666496258937657246444915097616361191344162468199624883423875414882317203633575974516354663511862092557697820689568970520753034019631488427752025503268851609038486425821744399133630860657588145344170823039315831762387700606030651860050204257151993054332727965607137670835717033949757893752278843273807393004075541218526667917335307195945693639996708824672034744110948802892573709104472371206459176841259339272050237450023301702923930589572183763248920352022047514691873330392498819786914962078897641991554827754646937709330704345795426181667641728404503609496412567351156027178941519189546502675354639487843785158648755705266995001792469038606685215723591066615204814213188254172205376814134439093184384520576370489014954595019535502671325607197555377917740642686260539883543093677254694994294309469827760814686562629084395052974953517892876837623707240443689588087018688180124577528726206210769209913539889839798350490652215492713496806113347830176276753097162070585798038200839047082231144001846887716814675785126065028002492733026245609929186567935640876993016361134187553925274219884764747319387042768321317146489567312552313786399830185210079522812844934857656463691025435649956698465956006341934087004951377535306414683858945388204986482825173994352958906536915163437570127744222992862974267150563075321588847591030849143007057126366845344654582670178141836197270016656265895898541482346979141397050928838561989806647833797428554174502783028084289237062186618057403803420447414151055353777769382825251969696810706828030242875909877629197249643644793613821175144092323961522246221874760986458725077490793583231639538044027543220536980066069600631230304026656044340018941596084870601965746223029845314217635520607340818198649777788995910741690879610264766900263950525995082406168499925395094809132470305252963274037585059883672734081119570177615640412799979299514489322671024387216745160534426270485756763275123488455530171059774036989279656004581386169563660481816449844122768527784043859690306631460944671501417208574435569695950386264795381941144601959544349108391580098394681379471424146871951449745231461082934943028526763520342637322648857102963553551219622896434161905265013265343999927926572329510351923280616146310068285155296312539191026007112360890639609007791355808532312156431712667486614534288870617248351364976752898938103977280237360418563633258027766557371673844285458964931902106000217856532294566113304861157376508512998573000789358307309253025567734031270989505176309811131702112639718503735137552645469050441024697289501639155252719615020926601528908139980863982160411151472318962954650040192735138856966461462794851648495042886479612232113884386336075172528228251449610319641443364703106949605828124642471790233071172039573628080714217592104789472199339547199927935591567271902765043059990209263310907038200335671515417438403408428918511155660057591986924435158200592921010823029040341971455311967174558197789507674028973602438882666310107840687838818250992717885547701282697521886819409186308696577798367484894825458055923053921689554960919109191048437020038851073243623226573951890701048121522015450482982347998950963746682023660053659233322794174608029713627526021344371217713598781470298196897492107669298762966046359615814130285400050562691285448409706285880373295671083375614549425573133152431370627206616241528840248857756922910695355371195909193541946492708498139854427101206397010400042787285900177884910775391851082741074749214919027736455913846039901306884667945084956122066072771306144898783399076115753990349742702383493805416829661066677186124896536738971412923866805768319060163737864471681357539145452920772628842192557505181335775219771832517076294424320634608428926025375147338765887484855218538943919671965711156736011321049219608073776558517653134059549416973909875698179632089143970491572719566768986615087075940066995180841847900765531993257626337699992567769066271644655711155966011666142464941760624106965107078607313873119735204320257269930518814077881040759373004103555369857157335147690121596302986197299599209010551920691891530647625085731415514297128864980268452064986831828997227493736142558267311051968788501848703923003212470130007242750330589622148608993910132226717567213548239904512251469507231630944027111981973226783224600978486388129374658788972885452492816589947978359675475379695340545982863651749889499668066335476537332701315775800224932270783113673724258748085770533678155437860730864300510045602729826041574972598702418953034975763495155722036606515936501784515352052797394975638341376702247087877411818042385012947559861812040656234078442746876138098757852103452284577476019746646417886730414873205788352959145149169161316163470369953650322571792493838799395398899048566807841536737266177468413092849416959261566004109717657410456963411944040852586923837689469598340549840417825098690559773230414886287128696872213790553443365193461653306640225010685081128270999343739332652249261569788173073415821616460323504710812777467931029905556130778834311333994098456070713870139548081999963088205083482733186629473605415944541881941086457331622373770931054127533966101180892455885602507790343066671887952974455993128227031728749826109877689122241688804628183247181788614464222508036413812134929008118259922446004818536989365157500405416989893761598537228078223070961952868146391909517068010743242527820464006567875871980245229209914711025760347947252518614886143339877607135218804633943186217665752991289188435213144385826515893771245864980602360340667656862071911163024996321213404156438565400921271930738246319395462176127377755502162928055574413956619050885881067010904500134666347751211350260493048419137727525152340376664347925030412151908308009968039367733751075011375565450726918775658003758746821872716424345712307064091896927547066219152106205839316669139839929511896187093974738540263875174279519205597709705022716825366704280443142799832817250629830998090097276284202682852523740873144068205200275496119894320414380646502101188341390241596239514948397133448073428871810479813265320355776520049854352329827868832593567209746180365770044939479629592967878726422925819430603907238845726112040573704601708979792098803973219702534007951680304987185931104761500213616594367759690292322606146782595266529474373915863166646854357966567411921328156859082857575269747663276692102904150846534660327113456331931554895387228052586486813864628303341856786287775312988775929629387894404218077688198125502622478861056090093111268237196912811670026007288399354916511861963876809348132763394984133881993586627642642344660041133091698189340326381421053088736988501239016606655671612170138576610066447256325571781796111703210752320356943608073264183964772153107620032131917897076652180363663671585617154756884337946418603716606691748650738137303646807806005428863750264187098186549944297212161911185178352832485498569248013824945735655150835365362737162124527885696029738301830486124555450524622664974452436692720728726717061247514839540407229356735364366256737185597349562050077816581673524439478422287842474026656600499621505966467646212742622905289289585759325811552101225989669456146832969941429774060455458719392712390768441991504707234514522678015217009872711782705325312104658511281144192503917085844333181340183819644309454797439755502708003156931686917852184255744261912331081474525866068765062767989056542891039062753207872767653136864104223039583504497371966124411599655850867043120095149709862098774034932049515660126108503352590228196629419747897075459783375013827388595803681218379895551882381067236555309856199213605455122234170104660381967148354972085163259883858014526188092367281343286702153691319932186342272530107699800784784042645447777626097813605558613456088149555914535451645160775767167555862808994198332620158968443339797462422716569106885199258945563612511738004490427414616156397699699023517610702448958609066765091491122843297053312931884706427666099166699615517138495447233051091298989218572071097185417838071341110279452175958290589823083033579983439529286960317533715913017915444431786588113553422560030574150134790997201802810060070531548730776063179405337098803924003330373522417007815421007422096303534444451466981514745988407388615073568270002107160183834841972707861493197171051922599310115961220137105113110349860554640425655691909806152451928789616686151971301043026088470405196817470773677787313784547440664090407377925300342322556597165382235521206438377972903163627376282416310941960834992875852392958733598199772251199123426478301466068912660953242690697606143036948648938657818483961481138008495846227566721028986035524734222547714493202377397897868130546809716905619742344612412706856503749618941507597002899569044473806209436828108818297581522264039444523015452316966585283443476821128662182751096867972977635696658016739314069738128159864253088608491596616155890143091917223603153589601969468534240894024753769337023935741308215374328578579770350378687031614271369046649574994323057174304101969364716730091081119388871295095878641907563092978821559005485588490188342452873058853705085290538875828171363442617563367002365670305443396850579323212887316633518750057857991548375339815009325841938994128766529014265927358690829360263806080754957113400104468376245367594909323937187006897086078334649121198273888392799581409151824723061760733196333531481095482949910426536907186716240624098879928975802529494167542840879966564678526497700848931588300650308867208063050008214638201763346344892317351661974957923751638336690567486629716898909399219539313821009556943930430823498861464605801717891256873173707797950736220528191288663087080749615306649764778871913229341287888997692095865996571530327240241364960238661876684015535424809639074545067190778513499707821625763369137746420619738068617136629601113756162168415665383748096303015635614821836012839066618638340056183191208316722711539610084760858185213902650150610361982164405768096580243343864811255119641410746431370884546419307452585992624389667538331315747050100679840176770850166742655739181637338432038594705704658746281557532940561261382522576168997352616150734377060125529166317707003297837583387049401973334600621893161286088532150667971968098251090185741579847680100229209815283844972463369387211576923131098675758054636503496301406042759146296218672975441711331674208192063264626447523587898535232585703717032901287060324210902310087067124586497829698841713257734282394219226782535183924936408692755538506658614642956161618761195550869621692236105261306200641577783389854322981274968856916325449490269261835039160677473694626386669395773432456602671728636574474019246227192050975139985672250608686991700288785126094605895531403330706562264318281278549836882138689892704052860846365228764376194716554906267160382894988437264332892235530067747664446894262703917977247127609122473998651809857396522174869436146810137380623664698438150050265967469040575598045923103049952299575531398495104868884854754362090337584701069625342235955455074074496254318628732589735588123749594234075610750235019432177188516570814550395543868931238212186892179684192065987231149848178188220068776612256672952870942105290810454261235061205605461008967570013850364908135160938822423545784333894451058250081814915119306917484507015492363513807522409351544124090805646596012607107252117480057039412572476782981367539781797457579272183971832105666298403376555099959363442143424872421831043324166392358475252289202546574963842070781132326529981431923897495737028650349116021918314994449210040794362194962413073605732062557274714953657066448674652224261105515439869065297987467476560423050029769690629334134947805700490599294945875937995530426976025916863017790468500074047952595051842152705170337327156962094224752485092673293693610869289327050729597992259674080792789571229050171673007244524656527458701967473593460874933834500434316407027896309929668314232764602161047151673310301337091243878197360228652825432230088984118515681356333611356648534715149481816798002627619672123865026595040598680329944486022107977850285759426094543822810503025143394910008904198761773503828004913790427302216430209571518946502912024249480606971600772146563737874936739609690369478238353261485072217443023655877660696500731776486739188975914031324623565405115346747186204080365664496968309511657672349006243923502527027940842519726664121659072514687459389859827026244463359375396417923844788767190346042871363854940554565161285481555690525561371970187110658562411050265263202825387235122594112980206161864625002690382035233026827177068095681712239276401555690639940871613307854166093985486089664896793737534237211706104317662110189133015402563254376639535788210019587575471260186467354728625414359653363197963476939095112630907108490128874573472654063437050597827819406865646504895527353198390947121211696989201892892848191903304811434114940555535260702138600618835376960992042618604369765848210618753583189611011836614254520869384843666292542369228033497313541501517979034930923998170012689776067478321394637473481412020182139181399446492169665783403701097428987118329551391350992681917386733680531091837913671175265983479060662663475235122636340140952365262202849872163310646089147751955360276859752021928641379470648420908320828269569775107395434978576672385701916549498919606122530561757441545402183556947310354437673999813800199379889130262056907422876797285863941719607969548354780474898180974109906958127205110958702260325132559628251264269887442795517370788142260987379659507771166011253158352398791839036563482439936516563376869167847015555604650732995011348581673998308107743716940130263612062002155463042066754169503896003040253066480170314864087945441843224561385444578412603029937604807377438442616048886585084456557405496028719866956628420686911867196975041768645065330863987393162384869606947138498958629434257769374324724698660087488011583900587506461374392043042386178673001119229059566494221674194750579295353782262451116131296643616332777881386931266985465237421140421727096859955500982649542114633579031143883654104884561854089281616583222958945032261580232527549438318304829800238147792699850351682908146588191515969056215940334600235386982412712390587797508345462171490123165975859588681271099839327352464041204581212264984225697042398390923486183848479139823891617098499021946577863006454197725841985298283969463408961300832429104624547273958358523832518185598436735871526474087624732086984628603584665336713271005608738708924270275138094605557543867230566206166647485612864549129138240352425727280995593448700528844840290453483244730767023569622334633616995478569759343215540513389043161495967679637718343898096003309681143572505252679206691971560328977920029231929907716573885119224483196641458941703337180675284919183476796871143385937963010508176008807058716847127964842680943103223734225056006818653016678257280685942859778542298230618030157954823775480413862628545317227642559499034837563166839022874352040233965154689959710540108444965764762209021410151200507486711914622402577032731852664934626500482371154815807931319379990672225067669144765277009505842019173453956056021397812854345954437444952988841686759293932248468207573560232069685509317385199062599522309932990948651429759184149403527264726816405515159195076901824020248714911518371578093474775609584352742660079552236193237124303511149263771719277305682699723961915847359670015352116718085647098523798773913452543783397201978330094721824402228608790026516030927438416424035764612468814176277463827469910525582778300348344982732758193806223473874611783225029625268485065404892896226260055955721263104791306807664498389018172387854767074371303951609306903723511372194662910233134169851200181985374028216159272370495835740238459032004920165839744693256361814726721217321191557270158372702194122880590044667377523336630917620217140399023355223086683402762810712063531776113524591736719135446790138092302658895569237118092971243660352697429924870843109541574307461010558077037241553510185889529357288504962563492519131443557203098070825943484665533115886574530960968783193752760782767055241949888478624637823763450420138712449350255031855139817622590752493489611238057168439273439927454553578996220241836137601139217126069423132455461836093825729584529558221490069696786384156526145203168390566936755856916528350907508693411254329633416632100558856482340722264855027756857340036496799726083274970847828426617831611188659945168401089361286852960026488904301571399484864326653923948378956474594930611988122955983043292832128998762922500863974395687190752352158019021768502517788000827079180448850808166400269915799739212810341785493529051542644995824367967894488749519601292357852752213406846812832305031911236057356848681893929508972767090590642108286106789940564352790682929066344554463896142337991286483453356663537453700904082760460135949051328907895435056815438021211028847182427530354528378892951904939773428672717044965039853672732577551892243308641165440871727787798752119499639133935236235765945935252088338014242233938772229835563677068691232234489139200096120384334325139566103558043329646430323529050044884305277349140382791718408504491124392277578230635211838229189714751541956212107449275260237349238826330194129045321008166812777961780432770663092406422154291214363957706153812449649353247379923810782397113785573630169539884809126283835180579702413805655013210612442495149969386387809943347021837308541341650701892135749376813187637152151571345638963757878026895429037560574367727353660473466354444033312800702492562195063596490540633345498421638024747802540774531074617300926039472042910743041566048122844555514451947578433321501664415788465945108487720666592086597283252991587420109845596041049785819916772722598415086889647351321755211812805061996624580547865589658975883471250664191950609416095880695188105820810221458851104199493582765753686350774176077702377044866603662613740510908391378447177867780412675044036925010326550379422868149454923147928580951095173345499192883780104405343878344525308309794322906864058024451331572233983536342113236981668270421951419066799207941139181537421731317544952921918157762094505160435689296998523263764742697025286756893561685373106941997530326949013810072303740494784746657549345377464217702605567620819965166334273881742027684005267738359583653962287296095855505998690146699349280470378928118109960174623881063453915449855676912968665049049144921745672083380905584702458131060673372581282525541693212684435027207015498246072078877492580191535400200411225480842949270899237570443888352887256059576798695920150239072048620691284105742031919516426877929130255714843106510196213030592258660347779366422693105749678318292908773623622812661185844406240770307840413123237672480831517045746621959172790781774144201435313650074480368320038904129196373578407393236517240126335397119544155638632792234247713413185236776790865494461374852035194505945355895052415026593055877094465740840666268414260461703998995296726888469221631224869659542776633342897841955909537754662630043265710273229556590394090635005030200206175154312849568159536624052383306880248582188372487292119262899380035166889362858038970576764570489058249021263255204849984514790443161339276772075449246666290077183211560494294747782823979152055879094999399474432164137058229922030087956650808363595171317071704996163130237696716826405907637725553803960238454696149382232108087560022260352381645034115599973997543185287410445691707784677280180875345837308375965186672094292811042891785326843249608412553585887861137556994426817961682281720537349498899472376869799329294897573686265566668582042352533362793211404541468599088548672372409194712359956423397220723005716342703362002483115333861237823721784009115671283423031706012894962068893216732010569677033383917502152593036661436226732176967583230296103457699944935877597630462752472454022988175601705063646794037657789247705832440432021923286955478746152505961729037700046494194955291461260224308160799813529724798208780002416158733497333431854878205389849257680637689459265745671682714132774299297012614048249282031595215582013996077674742621367203525312240404970881796024230812728728460300438949724753065617898676937420780994446807686908853956725510847776131517708435333168317997224262966242975832297644049614460569235176724044406907635982903805998666579652986511531233200456287829475808729493096001536445434348851960348633904201206502256974470447815116411420579050920656635311599034903615804635627018333140112004022280021360888430197660893622591756632350586869180833159583291236790486940789575280050956011855940184995601873574777424700840892591172408099678978260795372678095438648612102896345203106163518438512978693973128540497855198243205553697995124176806361837612997620255678172162616825999573701295426757461188483487474646817490923276591300899341342495462558910624766323397466517048994144861068304873747401351499849163149649748669036053368977455521669864483404176321630509326783217147307916714060792628780929558757827953250549319844082121405251931074329327434120456975500798389657309233039654319762972081146942321296902114093502230863825130289144624694177521234383909911154007457116493991882625464070238214415527991916597053461207502557846822482017208817574630728741687977862416123824593238511748007366596286492478536307911610962118275427742089602583057186511685255414836081746176432540805020325573954935491260111249977282291797872606434222614541343356802001650439350790214420209236655763932199288883150338931661605920759514709029754621985987020433540575848048972424414757591881736755188847568072140354625046298005955428814667230752361535581976630286358679224781260837270999073273079801047191910470667543496841797941464755215415888353693871779574285352763799174940275631743838920237334513430078128032423286433958311396213338208274657219499044754244921774402959495555918544732022063750934637319761295193257868988981867623049336333564479425316614025771117110770430235910123416093772017002129478819531447012054545711338440839326067278007011362297569153753934530125890341227222987513850129801358615849980189059091513324008992887485105267125801403959175816876084756819790372045208734618560839283953932781471136391751616869983332746415311423043089794144303235237521133061352082727843166302181403704961661301850199892861175493182757958576594116958880236566404003988906818488440831105877071075562572467820682024658955757854621918421241932030845752229457513652644597192915824215856894652889376588782529602927277233827392701373965890612434307241803106640086831132561299637935564211042910972507103769434856031034493848641903137589017536490594449458551056788156128286417015964829956731704699369105492111782852337345080134796066161994607744126182262574389545079378793254114122249700212987851473342610622143593819224071138650148357429622627681259866014997317924208082660053812349658948965120678983046994979514404848279065539964728866926280492334733209224268909957772102348340534550792798281889581827490178952818327384903151665757898244745023574333357910249133258639664944811684368928856254372136184314151912527621113849390474178670413655935973138436849804253336809054096561605787815709879748843877017787156320926046944911971951246012112644693869632585922519582801636300795097446618758429059009022970845335141564442756830608090829612489611369726898562129903151383170396054456296277020009320183241040369555645665639213074550559340246857483469410183163853837425231419507230606899364480298378540815337551893599225198310216556381376841752561177937281158427746826665008347978512516891082759700390205050247255732013441227580767524343724967009359237093296848128425456664890708701650694711061956443217288701294108509308752273094519760433905188040216117964872511140815140606119239749469304135914073461584498846731365679715916618398697061143999737899218225874929154164604091953769795499489032364756452530671784871458559920688060100346128360604007384605964078858742968922564500095052999968505319909635914257574841857898990169108555013275942118355412542877963350450453004225688240430353478984935873662287353406370189262850535510699757385332178804063047636795229532624226467060286662030974634633158278909308614375627857246229074142450186147427303350473409724019810394576328679056133950687979475918056580988456046431211215146937642319525252408348644195118987390105559579477915796510796814875218044871512271357923546724125153575519580881808280704234885094085104915823315345011546586705127013710886528718935033434312944861034258382464978318454022202515592084813000353300188266177221658764658187052477764704797562148941953117894758674101260573102869960737742521363574344096513117360025302804375475881867059293039498405051810619767951534217548827321802792128644931038187983246363525442055010307961155953522503531248794083520115148912444625856444557340824105293673844318173272140816713203451727347755952177257712812436687165632572350061550141367738594013789404749178989531498632631172457497767536549014336299361311611586861446184702115222299631844492428491356184713850690588428547741337855174447911332042156777119093843392088387742439427961450254086766999619835797552266855079460237494248605715585590207222838678463406017154312259606523589289622183738402623413270519323818105481484213833672665921220892357504599836532100457723628885229505420939635784760337909855607369814382566799706150813855771299392371675143739836556578302130722318531458587426550985521683558069377659578143420182503418992787734922238206505797872705986781985025476882294714712333373464415737775632624387027188627658589724187368161616819420249783924006169647733234445378310487379419370970855486917597836456828338953180442118206258775770487394699683867374723519668877386662179140913428484399517960720947042965980833132254515878942610724555776678053445644322826346034194947146334206897907790394617793727637772952176634925442556389959168454290570152094549874160928452327742983148076573615320381558558610363801471104136759948679673126542038712125938963004805720918443820113336775699089530349624635424079496836736696830495122892100973672783213219376179989824402621856707201462177951279428402728816038096824551093265238779164565616724190290161459244827540116938581396978470221156869023875136938794907607138324559308471005522643003381954923403731707518412217420468346146515210177543042950949418943976813715145418795641024831163890785666245622690683045994218645942250396823641500683346278646508589720608377219231453610990713496581105815359570825607213393037953059999583095900069426575302841966110961192807438728407612568134849841201766877906101002937296821768507813784839958818865192730799661589168087273581138426137188158973634676552920093312696416207515846230776159335801704137611880753904555830527208658118365148678709627788998866544252400687539947859663819701438988869164566284044899951700593980014573618210812037744516029699190247267385405404188766604337726702314919645119603112328065444281447857801490846194917371861687534079678467771749587265888671759440199824673483880865531901354656587909926465146134676182186322785142229197785998577973333677037909358236320816955852228894179416754377325710089087311054576540651366365156741817145718766948005036306455820465658967880631911876930599103657694505669840463042892208365314732898337013398212380376009654708248260775246805478657675272219116091177540738425632866963672974395042030784624574207656956139154026853505931320708500467208557593625505182952040429673013595674781250501178023936698276781638345549623779179448050048057315420301716643308889970030589883625710929686757803984302142017032297173483703538911162487737371339488938371600373351009793872075397797837930908266044740487495514033324679457886132793459855977998453615424210613564419735150590724650040865807187697471261258943286658110664687680972704980293679134561717533174266948506437430343193033896240744914562849891039016517805261363190018516776387637417262121907294651412740648776293274758783864738667251170497824310079441625911723937441220819175349652358771274180384818186803663212585494985272786808897833138095725020083572516330422848379991714675040076176982968042594735639006316341307092566987790369264073950210207890481775365925504012587103771509137015245063788768613392548755404500746668287629623165836939245257728645406113610403885845311910302397153072274825704912606325302333729434698282347002842717688343501926296316055291581192864687187542546905966890716944578105066585388713384982899277275204345784768728823065126942291046125763892297803721191570583818942440104496510011597434000489190249869971293991976324173485277178187588263205726110846801661220619651877738661262222351084716107674896726604029220539373403970298971180379898695747720526743984870013182967710325526586168731606693747287354112123159332773440186892932342058222803279664565709280149184907296722212027124548753816952295599490507470076799918210264927204919986311596315983346436057239849731203411511020245161015983276419280057064851064396295100972742267443099005298780272375700960256148470636441110417804865967285118108103677459034202060223960570821733022475363875807725515061950199932905000161010001818607427843141706189743586161988356863256103821795803230102562550255307772097961696869095063760272467659717735086256789702157639630203085490726162784096522773146248882593810158636716560843477448447453246562110252089379501293150009612550111644115219472910574671852742642855663206585906657905279563986388925333257878159175349017991877480335648972012442003963683062261115887511115268455469921009246740361334866011923190990308713907347828583533996359791799064901722498212278418720478747929040559810622248090441187384946258159534119534841669927752953695285665976597071720119021274300484562182557448434290683566137290845307414012347593999163334268757339576355072153733554699596536824155168948180100742869675724072972886569957417506853573633174382115540212544007069086466414815184466228932339768295713519200161548418291886195014587154060978452648321780062666740057095741251930007797663178190414747631006610369167462598983885627271925966388990283437898889618185103117431322678625688245920272619695133697855995544125683954002118280709041309651482594248369038122269984643013559964383455760173717895585138896206915681352574202609904582985918579443674410515756487785778857321850371897639842697318797122649860684935625789412394493824644065441509158334332326698529109692544087905036892490646299660610371370716266151624384459742506564213807743113409099357914203812491379481886522566455989476172430829857900682899747318282376671668802688439242737556000875375814634176404712472934720555772543558156667200344209827996920780129433240225386981414080902127832835876616710162706242216656345667830855107185292719283994732052283250411095377767841176510203189249157075354907342070347473146694969941734024994359931744058154889850157655591370935870504104783610946530531273529957056180509367126623961538190782794474198678605212861923603427697769395977581292457469788293099149536700350556063953723020860746342474214058674239964080411557437820845143558629610600633766865361854370155175846481827431317356266432566324621444192786467876373028434573370242064649626604474177796779446277561233822248999225347304839768903040971014752359721167302718952005486847691069694978215122461680443816449393149098009748614263277518613985454740781194260947055090737438111519469590448365657735722153041572139395235709500348873124107414948343156376794887271389515781384392349103148687422784394660527561350468916571558237954118508520686037634509586318082728589827296716275359839205383893670093757581991059441561703908876802906899391571267540470234303598361299076664387922212828102519167153815475770430229863304306889245192934389570018310489396874485959657349891140846716233342541146332326105716460632686356345018513709368879858812962855817332984412808431035078845176553740481236349126139934437030949795137094523833195948488330999701331107452925613990303310486465695177476404337266423291180924968842999607407001365438469970030662013806154530762519383371021412611215278058061281903855957285269834181641859748305585815114497335012816649057970911639246128279039128807540725345561605609179682562056194753905149852392211442932746441900360531721031760106825938857254079603204106679820875105385484882028280205498344725113763579458159723568494511327548960353051766424335592802770597117203332354979878634056901398195188605026348719817387340000673475166299671723264117448442020817187653043891374333826219395769711580530686676264154319308514480929838815487103128779089257928538282440600760983705324953537703543526364885224022769131972627371519029296070928632680522961966785054463911701724245027966581615549567318883955903894787527854054953639470275231265206010098120290085216472972188391098221624852432850920340531415865872677050885176097875055024832066893209707533785221141426863833902933009446786093136619193489510962241723906919195750533098241917248409565915452475489346190668558760828998346813368535947359978561001979308682907436734732516912904631659267432163016066543152144505601025171762277544672676784925714709452892860749853043140807471313082042805738626646421945401685555596963137179151798676043554718095148716626539184962024130451657181485772851781920741123923159453307609175252459449071972655160666536252273173343586911907496026198747533882559238293970213257837399645763953005928402027999494402402083107994455414318571848871396075916048329296612882645036594297671930342137901998660635263308488155366703141206018027930792697940548591550826050690526949499397260763030302652456359025216401785016363960232600148166646994767559432063726514345166830004740669694772221895290809109528223747143005352748223972444879632523464587179237250057274333107891909592011873165018972000181208937542194591042045557379967196158671128466082204334691123127832002942625929183319223067159194389760822666628538050284534394282010362576550926214168891656761896732746665355780756930215493166274186875887919711131396137033944990711929890705807448659021793291644275279709551071784730351604918915888767477727120767915361814866803577696834339998956466152048389562404237782810703402488003289249679810443864832375850513199930745357338699657846691333029419256419542401421597399770705250174064829142104392638122381861099618772987591187978224383146331372358925984865363163731804795598056450262250713472764398820422443974854909309061344802041831904251366307004527405008572011117298308276110152059126800708909455234596014391819427386907646725812268028477637515948972910841815226444671724524183866756102880986149609086218691039790741838417252524357928754908564592981021978877387226878292342236936524909127126790181008012797778910855428979798971715733923359763456706042924382172321591458091074576389709836732555887520911139480690824109673490029552414503826689641609427975382595675745235361992757433477330495128531314632271291412307368453455178224259008175542784505946098458428858080702886495165535213053503362110619706538282467068182134334901518207684748355667089894368453091053361251889229876463907430201349677839937893170920229124485433542863209089157673958075368086180545369352866733555770502269703001885549484971763881527086573989686471716845256662028786394467619901557199473147806349163604457995181713114971419722525568602338077261670229094504259568540693523999937217387796035105737650457520043322747745439939649281981823807089594588992193424256662781096781050979455990838203009996928442795974058848552040495708555429778926506166962195231350367898960738100314443746186091276317045147734784083649827380857026918842851239208799792101202304239753270117171422906395320482706465212496608656797391250349367407123879369337345439728538864341003355186062336210541987641174169988013737773152137384973537836979705239865414594760280606461836216699195743523070264364258237310840565276155347766614994011070552904690451458883264008407631294918322851959332053938764486109785191356636442821238609076191191065775688284265519205203650234502998782807859389370440423664928116053287606663394136676557390835955712258952362638437164197340232778025148536339727611604483698701917721663236429996718451404424434484760672547382465282923901791693243780811023948846599526535599022818726618471964301561923322142885692231100389129833769534860064310680698341410133824519268869389151997764705820576912586754547907941737677508896558615660107886785281504187789814630431842307420247030176144834415434677924554069858899645713920756790703152020989190295545591709949630398566402156203174723161036638836273767282365603535368743151135831873658278745185740874997408205325528907408018829217318331256561648737067906263987950125675658713713266593315999576248191892723665617751276140187651083736408246678519997503141850168160285373999131675612022907067488993554395975788154027953620405263860133367598872693251223411227531829506886643374586410365238273058388448159687355873831218066868876689157304765249447169918115290973350165896112233067827300736168450386453336830408375948636876973523503512256286619368517527428636732184938711759428830609981916895978240053344714285695965318618286106738464942230656839727162044713939778800716674132257867566752884559644478120008378666180833256228045414322724734455571627062976722912638580528548101824527371064783651020472862157786241731816897194983535207974936856107018856046905457525494062012426432742186864021549997125708705606470690238474885718469698666215744069156252564991519707547626786457892354136273307823163119330459131060809493141069773964587852835691640548012894614980203844605876162016656315211490693312132144939709413646684523883897276392683091700062947488572572745395381279855184513456195523102122669260525247330669293630390782798270372259216052275153045909111239803307320286619070982652972491537667785698362774865506269652915229150279155169995801512081155533006288685008624999711671537033870557882528512000946395862646715009885252008221359782479153804094174030715331939817926883459711053386294368290016697788195063552804074221772460459810888994324558882522891581766765771040580449439602446316929719179807848565761793144571258968667770767253269214507637579667369182971132582681436413218079818555496617016766796611974948910782303846138608412327159484014568469839817681562798018392214801701439853494266213251953634040891654691549701567575648820261597816013082730882726377427408572946412351289970576117778135578103821085744242205345748696575406574009194744688862779643177571028076536155430087762693635677271769859391502891929507256330487209754545487549865749306972369826897712395897084911844339396449209365423939752966999120239305505259397138448573440517077058956717214337999573930785734334024429558410854195016834652658536760145648117437392674789028020166482088111117785744114550328849917874404637260364739339552756455067492395749378084710237395592889727924930201083238380282065086637132682716590899597572553236056027869619433103848495464389635858954473122091784193310024820853729341181458481064351586952679921620439242563767233642052959467899264699239344388570638715510679699658151957623653296981551599754803757073340426691256306285379685192057823183759900261957973686760835666870364201580872623459049033648832026821736242319082474596510844618794532339301618324460278948432856172492045679692217609510730332593960905236228524099678803382674917197490284664511678067762089952543080558162554058987973586427039163984747529068304648465943721940750679043027108200308175777171076310604947469557311372109796571282872149597422943688998164210948297941245244697730021910675446629816363851272577081639345317514324530152654706844252630955640452387109964178214998002946344608877716810888843866405512431434463449831670260710826287766984925197266402445954019295372649171575820122359912456452843329344477567407818208876008911336738682862553969246736841118477323553110631973104706278127634123899620293117010464111723900375159166024121606166822060237917086911752180185644701576610547371094632802300253704431412119147370669124331702373355768216991418026807877902539964048789378787093730416255930992021797148541030576529971068891814291667204838909453088798769999686437526108875358619715917231983990797687552832936651925472547800384248306160667278802325546459757653182942678271877259513517398377431575430956837338448558925732154534166013857007414360006570570274423597560922938195818853101265213207638044892555444656064360398850824661351164274440671433874913614544596297552308756796638258376984923899267301890375115717861610514445749360248928672099121643615203734995099548860052708221009831994840029014324446448676757453661547033015762229274998908509260389214081241638447016502303306254548105298436701622095751717795254996458870016538963766172144857845895875529170177878599906078871105708638396556860077725748073172273648545756090288127532054403373108829955185341153316932723221448366503280380915305874657531813670437462869873120971969266817198422472240742251819640477071741150536490572236014329418209046063778132487916706080205267719408784913856751842187607277987538480776884830354716448513955618081471039246957090599799026624249597522903360419625099639268970446233079757371238345094656071983549373663401131091891394977284089485447269256388300233739442872331305417959181554031278926206941654719310787655491055778735960198493027511153280349379937466280911138738227034925089101527012065502850244296004331761623285781415750005195943686411121093444535674996950024477916457384781947026226364339608849288506593355771222400017516669548740675183461184962770947076110086837248244897118230604420818367140988635841573309216160250884372498086559346816950876925675047593441510523722760246653424117160396654139615324592241452363716355700340005517152050465229988227212848709417510857836290259865350399192108736566734881785058633331473858346124114878144542696225256953712944188662458492055455617621928889690409198671525252887001628547548453307450396512861369669365177204286982806751319626594780175138997765858590725314549894826006693372217623421677457456008274007013065817120539237200228711740193214845811509407841670638863161014529464540423041740434155310720168618055540913475877813690322199853149399584609399463394608398187183148450927940461859073691345286795336712012241626353043049058112426116561851855371347756205498236363850544540744182634004585303082159461826381081722005086965826265139539720317705986863800760845835047013551970529827035709257851015056104774462420285294123349056459637808491266513075347981863665197195160303395315841488975271873572874589016872527156140359895310173692598081818960570990010992758182499885085859431930736522527817902049665762462106913706840422808479231157258195248808116551663211863166709681651436140796967020217336185502824408631781822713806745227820159102841740587112302832626709683320079527669350454224284479839426064384711988998121685184562487394976467173553236137945193474184282720740965114656372420384107662976631853568128684496751086566733654940344110765776348611273619557596867094388445518170248749533193128825689916435931572746842047458133377686673846002282006715012609778272006269634736988818235636450608520893497498769249783020466367163825576161044808026722371073788738955762667696704470975652995090797163223169520144312404278540947440214570129126875251766250465348101104274317640001514351365259534588668099593630136561961804436367377641302987956785485325002241059754051098066863283936158759055239012006246873552505032626112129281478555935696821314380179760409322691160345024128199344681586365792245421982291521469049918630754525208086956268293386563931384112232993095092482556474637135734120459004232110318797208961815095209752368587949142085471833893195029584813762867096757450814635575929523975569269891200147084692667316396826184744901981799206849283785064574398917093811411371751626608726853143637320246798754982353276899967105368420042375773098756111289636611270442701166875507481852447368695042668310488765361962176508809744250629723383928088920749715873878510995356625215479746373475165300684281736274814740176105462883847815209987256447115610618177179841721814030858745915988033133761372869252085491258375776376856852829459098093602947149232256763791279432413162195912907193363966341608613257664668978456479382010714491027361144942827090672702984492080918954020235979066379522381691486069767211532394335791498453919434937477307761858258004765181377117063971563126975715228461618099305851677778839179988128907973226294560877197109963730776534220277763517233678140308613882654671739710848177257186729313054313364055535149425621395029614432821953168455774771946446550451176420463657133762992372102976974279452823354964484358326689202296594494964569639795871008580014106466056483980590427175436985532264028784403092166027855549560876570699061537705959390885443153981234512470240332188640541234479836991588889221607720711392883988292327837578122368741888395915407526203915252024332930284987964576157829214089794397760641650967165782607802182196761757894495305614066170640522290941738912519761723136468373984779720312315158408117312214169209949601601574623464357902758629153500252423432471962214087958811999852590519818442928933889357515871068598197936219607156411533219536939093987426218758058404252986077609783357941430346001353720738408909773811081075978540352116072055599564579710250534606194391023036320079478307095482587492879597021016136687352769672317445648851774659022988414833523827257387211547614535847186264993559872236189267569352492884093917536455178583926966200032201947121089915988948711707961519421061395436594077882512697563870710697987843629631401940265915770538377297836155228997852967239299174676570040084437502526076984594939420315286984181521583206542004806771140618289339392688166068652969008189288080616517133473910466374331838733383129479061763950095011938663387129125623020932772039291159012332645404195805253160983042094106704326333344657101758358110379407661577483835381464006510039167469556788110883438919346370377847946117314354143394017756616707207627055494206624954290420649865840385953452959197642560460660110121955464572061950898605105223328620232348579050810899682248498778277473260278703376000870391913830904290299169255168607402931550813746898077267479446854141510943838933212803946349841940662291673607489330566669347111575738413655857685462771265748886811152387720892623751187578283970667133860472709682976349247619220443560031057786066402068839978266902761545446300502263955647730422789292615895995353558980715752357114259852128181810792700706678396993867149502303645161603066900973421130801602030444070853676733565165509915405668419687649344494470060582988464627881754568457774799354926443334813168745739785535387780732369517001891929632600451327320075052249793664497225337251599985346601333775636308607752579372100973202306101864775681172706244997996080980330700571784600573915859630336721695710040610796285692870280911559580829622935441429209697065171113492393678013549864937711163464714198280217951459586405311467981881166406623149493444835600383343628437898247901566714600678014692785039524455334344788540322939802728338002084809827172103613487718065551020994345336939486922585121185959492650970496302968934158398717413904466071725225109227547118582822163139411897812559397711485515518019514990104630224054701079753733316857404683085359597153131229389511744553191173528226328184242418709598700956374835461415528124591401930279801076352433652155415024600760723355011968215738809948318164611957142289461585090076473349828592583551677321363710812798314426199061565453054488275120598633314129696521381291929723260060377556496019215207879583092527378083255148086627010706734886935248977100941894958066538729654584780498983002271733935790737170563739181803167616028544145066761867934898230246007939629417728861584707178809261168395040183140611502361006865166675608119632573575806743703025359955590374521262539544386281618517396703185622316413728780762761023872947500290679261873897606464322071809104368745070393485843618401601507123563539476137763696693666685951639543824694639931652418509106647543430215524964121582733794458772042681868471819956735133255994432291250372675326672316365098767293599782319589136186845834264878854376373774690216554021956776958609182742737349675945763998796797289651669098326311681549560877671148909453690619946847051324131554397499414888240718701314624755532691334707355464443990492828766950221854180232607506300328358404343613121615324381011091769044455368855461020308689598260894693455273016809516545961786133593789249000479184557630768424201106303459478985401309354795080222009942931311492422184048178456036389312531793834131884819177359829982527017285402563073612359496591467150158311535358020559539941284236315946502750532501822386779397061726984726316915223297832381548222406674741712404932643779154730750876987079445856745033711078038259618294899974191822904848784785190652010976160642675413166282817738508650856388850039031658826036220290083794729784136938708687817595982094600163155988454349673594919151710137595672152397956748425337154609885542131256757932561526740926303440181659374026390167480425982488102561692316841961639876545629068090299831179893870709229713257603288250743423046914864793502682528717602640425404620194345546702535469546959164486730137485787677234240781117421703344128540086989209009209588113124995998114178240820081081898111456338021213313816127728165796669011274925213781379058503028498734122441477831145524752769245855399027003413307720472154056285398868065759388883921541507562487087382128939658502983081033655631763252579260413597371114088607734700601722685832336769170044775550852628227272631503805107230882268981045152736643407437894753422225715756781534156036540478889780487429651334329520169200352814989613947210387029304980378568513506422503541858590478698834379150821288778915202315430414457136945410267719814717065477531121794083908891658691714635337114845824808491504062136609933129477800231075746915347925436331603989167130838626062181560615303399124942137197436758694709787297584967879874088327203499813943227625612187178398395595216628586595018112031882439841978213950306502063042820670183165583468638883959327325267258326112892258623796345387131810919862103975349741506817640929477915836905961027944956661811402764489346216193858492213193974519322826688957024980752512562379435792716606187621462062556729158950297422909543196319717064043761671087580233004855774893262095544006891123159205164028828484074608384541554280417737157876863764510376035844244560274218233023785138231942158680684004423056591546909937150543702034704677832738899272805706871484997752446928325617134873229206371478473860844931147949066965286444704211234551370590196264170464878512371294595656817551030190244618113945131187990242038931477145438024026531410180098623814662682201483190946594992309795237421589213065537216127468389004072258594494233504269372856013545982128980431928772800115436805167882780161326587832943034518079014999891742321758789629563252432096988979435139787249029192809417333640300749506490376285550790010666494286598966201332878607871280833164764553106773203867106174094434783288871878420811006261492950459992804604586665021876732210769219749958709259481069792225084128071795522215985164759587478188702040980990371206236387979557170382158951184431531351433065400774598846516687518977664790545925152355126515214567977433924054225167501707246071595287493016867285230610116813012083793194775553063571176456386600383038500460698847842599495032858678618471650464452712805724159497321534952013495245030115054636871146742470875038870817517165320326456585110858017125810206741360331498189763440601398010356371273545317012963151017318277347216864238897047184866288655935826867339409891863983319745944283918852741612869828991252935231427605189177887031573028112551746142912678619871232192795776321720621427426574593303450730598666038647071758066878365575404597256280649243373985109930634082880680771956251657223392643087249259619473596475553192039558271890860317452396053503101813467674331440730760663217296282100860169722327718985057474539982412124832889411362644843029508153539215702770651077372672253961709488950527362604425187595005982418507360366360134481820455774176657008867597217867351899689061257894347534861541098815105370449605985854296990644567391628027917623501805439458984054335117195399479569401928085923159973704730868978625472646258937839767044610360116479907333835451825095110068533419349410545244805768837131040184619012588216055309162711843564394170640572180748891051916395089948712890457773765411312110485443935489538540076150242564009188653712797253473232040845330528801591645583131160447999066406368133161562853824858627808117701910760772706090326609017358964109986169753918197079854491759619632332558674210113790544152788492443596830361468450398725338835044878005530704752012674778534028515337129273079676115241506287757563339350879676156169701799633833216381845655655406197334516724524050210601066021937009896712487668420853026181377930416846559757862375786755948239178037789262761817333557033168415446010035922935001486945254610272177965385294831042049972474391966813438409766979633897507468777924707036852473373812361980777591188004929226892194597599145914438869044007605176890299942960729277182595913246737362613262424333877609048731080571908470444462094995849789129676326736214513736858268718726354243306426397162765050955004964164878468419660556254652508846767767285558440369327115636986034402955694484980121177055105308198282479213984256633969346446746725069530511360180675555949311365552859503314422998413229346688143865070706358181253007463048109962859289818913940729937432043598655691071218922778046359133582492800771703031956340195161848995909154456748715616280521023560392730028593628486512149322916075418832244190942405563975034555517929952049518661035786791072341859725950808584952267939758554787040625738735623059966704938254344183664594289493079253095391399029583486995759629363525331053107074147219427697364693295061768193566084280413594140478679101637109759549904868043461549261975027029994318269277656273426860456098088848879741982803474037965936738177985819905164387006631900469762718186226806454411871224376636773039349253569478214025385711028742198872650956915615318650897868498023095386162175568445565014080473287346633849098352696757651243948117556606576847602249163212755474172832487193034470631538075803574156783806512323765790143026887267327994095606639100331504922916177104987633104803723225342784462198857077718481898886841320534842303647239870941405406054229679534936837956532768334845799839118746774190400137628636897100009517020417377617303439282748583250889200859915742466870238434014338773479283108742143781217004906938038760702101414169769941966340634402622520441497935875820073257912509263367205090801775202920166614357518587420462040506999597937970945024060412860454143203150424525741066258248649715728917944363383890502932630440292000075947446689340957438037385314028416041743136951375250896064948608477686083457409589004498769658053683122993764323973493898569075863703343978810193524517536400188247813761382373621903460113328487275616592906290267971504921162466498586449426111244257687817708353668932036298271391596022003604129529080730750958299213801059565103773605704511399681541189835156746640301897845171903455693490895714980011576504041773394480796713604043772764504976974324467217844426213390810219873654411846497594709483743848907298291864319909649944449132648302519261565634155531319112680411788885578227938064606415361928450037231010092849938000120946847974362966934826768312872587607241474691694033294167601602810082246582938860334485190813353110811786791032883112541027715868419039338007258863771995176780771243845490940363186546600290382744862834183541921739236617936242426730756742481662839272084141234882450401176174587542500007983207292411842270319705573078670138519766703813757744717880371126569566733365672725733874839356834805073062364880702785015605296482412493080511374906996506226499281089647025563982740364347796519158947104710337285773130778962130770764308341567782897400316750621034573636240403212479037827530293044854122269784616270974038490790281433966970828394730236706907040329780244048403169858311006359105937004552594229644581009417384910638057335403040396092964120262675804681225918817083331072350872956833110101038904756900036625904734688492206855961671484593882943775831361549222410840596303987517538502876356684337007911462818950644555335138768159880342657997709024932840206904243673938022958305954063220187484585848743045118341023714498001033021245935882678761925690156627187912013643484295280825139499668962679012805202841523603249944452481481473394103124458621545546659627613327535793717217727552224672118472520938455833272394664711641022216018610962448652481281772414530107057199967591946137743352405782657304202588336417494484290661938912674998892995743706800318482289402612590208472499201869357271151443296515862910105778366557203409971129705672381675677048995072251754929427783940782334434127449277730024229368203694726325889400960380424090085952931436309437605839199798414801226261567160484588158764241054179094658889333575375460672193730194332424248311804556657212628321649580124016853796147436675524781292746697115157552540097615518085187112315889405179407768882487969615569281619207487051443136347509082095974607476939753305605603583840922158524909918327630421542569066725315393865652849525656317272115823802971780314319339300975704788435677780090846652690503110360975094926165656338445796664329593132384475986564641106836516006565771441708393877524914018382525664698496276758911117835127453423281768153161284605571163306214661680828758204086913996630335222279790834848535676391697985875942851129356401888760100421466280552111762626622029660843905236884906373306580496490171400796807062214759800458275767034688637772297969856161995438765922957924210764796815890090594812109499767094910361761917248286226935139254487673592645343207485104532926801570962786005253761105938333941897336200666911003834440345851507778137122754606744803095697315162294644601049648591356884470951315344527005548060269706953010813986656852813229618235795811716741913144410893288231155728100484159728677258619766265601313905033845632102009709589517008560851037865371146258409099042336797868230150809163832388546145630390992853100479491087983797153669489959656880044355609081665696834539222445494763683605902126267352667930398646085156207356004457539796704223593992068168308522085373754324638200529178677735513081311827389169127963779589571280437636556573952758990498084463826959071957940316349074748699404716852582601987889576613125429305905693532255781933841220821430628309388338569877131101088540581916778323600160920773153971864508358194896049008463842296904026576828917285515947443140047395419208881904468972441814532089402897958292560372717795013654952641393937657727276173395594221417064982846106414633752682536969618103356802650704462744129754147264160582459918011653492123495777190600587714039191116522320448478279223557752123843999281919042902056585053284282375720289674543570813352141868632113639519293544318396464127822656957594818745009361759834054161609390179846725592710720130628850140099657531123628967183989756823568437742058922471305952281289128895213467742078335841745932606000167413789013538505451889287154810532128999285819356791312924944291227114165838356253121090947156689946935965756574432540288453948570288440141504641028757568258079894637995503710123136681871233773311863582044621694519019549867835258258100580828657934180516201716824438043126152361438390813957991801242591015905009477917156630794288797622594144645901710698997790787234097144810672549547347842379851899640197007793271538463430661876942354064423856145914306395629874386215060148691575299240225849158904114651875992522034594113643241105620863438927372364020758188822339975070698314838428026037643220094554311510969280551317738338460164577239101240897460712143881079800165657140521374782511569345220563334834335811400972794323020698390920051986911915970489189590568669424841296912301414709621590594399622334252285022637263918810946889397249906203496980472836136782655421074270672817265855261694687831721581167807334610691925810239626418434694920320729314206805364536502776973399108486439595372183445630906338167220753856690028311433898942996000189703341605032050400130217542103612176234660762558489175471658599023614494511133057639652792739348116749375288563546378633555880660126228108541944687947958400270328642477227953795790845369908396200408582499414670489347643657882878611452210131498900821918984279692135298865556390930646833771489822419455478976469605786165066945582106873840141955084261192486993946129295870078449770339961867757196408098219291181645259609969589469459244485264677507652498512110908404214610416194409439321606990095420108492951534177063498623672387216270850155719394771310697597742292363663979006360342841553495113655501626627799016720265650233503403697205732185820120727098527389984778458182771668660464828678623733056758314708555381347044683134784016194009941407302658777650909339007931517654251669028032144790052919723930432173740650769636811175030044224378100969449158112644255893469648719642951241960482462244695171030719702853840675091536034713879487405154273096402461665536383223694432873443302975084942070776775847290019607946935309275239458609650777981079015477657048740421037543580522004984108683488201135994168095023916211612813327139250482343791830149163042631733969856303502418038892319711773996125130796441931510873540939902753293633524310896571148134014738694019114748338281781725017587188130450456042049882015834768427966518310179392440480386217036711405960290937318178024328538861853562253587359105474875678942589483694459925834436380344010465126853687462634938486366936219026104359805674000412854939928843838567751241385794380411315423363547271484787713205023667398627313291002004086785939915722128752519145538396500232493338641143247906014942300960904808653161275372476187365538645572764179071273526308487746683827385109208361373615744086539100419492680938925727196450359780013961130758183981133862144254712578516317790928832175275878710744987370580307882270632589907368487983430254367318747619091011098115840474129154056702716779203011665795095715891177037847346010847295092419388317588685120531069525154003131931996004216643294653493356440288463202133056304722346124607353201219304274954929902930954949651539191008550075854986462576746493465000060531083606868983716183129625569391621458173035388329350083053593834593784055699041517078996912242425254022211839256257866502724806355056046147361678721926695173472978469454397363269975840790016048859547926613350971697943289989329464321828239097000814481683086894485999280680739863543932242073471862433593707130245990598720885219793205896743538264197554457334088708050879397931311881959662725771979334265939156221949331512402684874373731372419390144051587243972023694284243279448776016271644994628081374256067836031334802308534485552084760617935810309007400883615982171532422063801412272853418586852652626867491602343101410271484353612302251374175702639372917365995086050631955029863602340087690133130916178658516035660200677690886872035444292231079020220682996200505876209735296391991808321592686228790501410817218798932085794112666816482195392107658188012720425725571580274240474544306588747711706741479274847060574407398577501214926017693387285606735201899585025699873098585614075195045966921248257448641140421278836900331251537242383440464171405542897792597164973613355102769000474059434366274598963599362584922638261266529168685958404662831830800977747146654564119636204375765450039450390277254997869535293773095903098069653462863869761206707036664194536715629263285893735813821575945318900043875263899946559312473618611215525079346397266254582849700635466932753935403889698852821093711798438054155768900800490116814569983948610461388481559293433077315098952413072422566795197957581187329908207023463543492584851784736392165636781033326567012978519396123791465843446119827282004613830797123844637422311895751762763545385121651566652903169824458269170730669349884617242760702431490976580557952582561558875455699436451013647262147393813301278045222439447177332668200815647309509360897606647218472872193769831905919247861461194476897555739848997589700901571174682852486996506109826246331761553241841559430751756910434098055435892169017014600024994347676334293622841022327028289688944259239320009326526201812480764016868270737968571853682522408608261454473716960767730970915598157734084228470893867223863357918772756018582782343459818507409670170017499613261175235232637233038174590703357190164429577451103163074808295387099754455049038645498301229998093632034134908222632313915790407592599820838319986300658959605818440366908581214918843040324566936931389016791178098365135646521890217814308478416432196040594331667026939320668645824877084468606049732059395582932547391434336258431929546697518236006326257660991940763083638760560190451074148454248383956841048061463439790173182081341567937011175005665275182345185275428579899123035603370145250772686065727133658500804054647046054839253146814957895523857667616624595007528648998313297933154144600470195272911560130487434937683571327007214352020407200291317700119487977648307359106884499202555433556094516233091396276916874985286862694286736695573073758328784558869792077291171839572106495261901310276993313620329459539833206548241532941928762082042125113709049522226776009985875571004840353885773416667653473308287136612153636204861085183267075795961627779745628908108748033809464965096750679078470537214758835810477191241940060091343489576473548752863073293548038840929061941434528085548068377799568893102635975054323431237975486150632671356203459859809173242660579767015146538967521051751405376775062446876014113541606268916703850192684325932806636536733476312324315759654941416011657706466976222814838956246674875928462793707084392577834678957246759039031621504120547505815885048551922314136053923006299058899576488757703705328827755217344067587279607559069012362524253275822463036949767149932022195862102742036243727129133501950302433303554350327421817504291463122931804302202770707847401322532969976308349112932789901318177860692643958852487058305342300074987793169944708935740837126671723399075841748263911519902401542344201050527772546614664721142091825387238111797715971434771186540495444335368422773086997578650985557457688641613227093813708581344161317434176393643081791421113635523170863844803606384629588863804225696368003088537481298979101602620688777064849875861421966497055683070499373560386988667910490498714086424018867104496884722542754907570825668494522544715394040778062893218047111505031742369558974391506819183604163593442811542421268296228014571317326772950633971970411067211657559582269820302261829864032258035983497574564747399289248864769965793121109805894153355680913293236894934814845605223917009930527972522654350069726182137797427282073897879447007379493352427012265957036780721000955852585632783452513489824928112875877062801857996417560577832189703533538759046434903572923197344434283919634409588490359860529480439821709893274715411268100298591774375572329676577368501723334112050422998515440921684476267765383738519196550400011817461950352366047402920148810550600767453471755068594177776108772420091197198740260398464888925389430773677808923116614278532692046315822393253264056232404042956969173191042806696082392163734454757379590906357678582238423602526414122495206334319123003371181842596796465101453588975720961331783711401694266085258200993956683565386037775531611013178834115427850267814481072976060932172488225852414388910559168777722538845816208638160079585493152155949724802024403338826502521333167593546635799907094119258251029521962446532912056460121312924858173371122648556352754810813264563903848298087668571931502242218235972802663285762021317277732882093416626577707828044128194686184041332277814627597170557941272902797343944885635782350781848218082555393217507061316256632039059261785690452051401075293284038714220590296545601158636483359597394869089011493290884661265849284096515861609292998275999204895482795182650721121235653788441016593994727695698262215554987385459494072491437963526078874975374567057819726730472171711192905870272249557048792230460934627853391107466825301760006323749119387810295795313289928974021626169708859268115697244576467440955464138546788684144356588600950069072436166990368921658104638427221456285321055047917913392791825854029289147103255540294219227241055625271098303344288587627364102326046982925968029067784590400563787316458898794892024837610437312813759763536521486070617855135906951770466107737245292243862603014984915560247046625965426906027209515532164782710372560608524744348628204577815963879560716018600624536506282281640451364195020421214766694068331214320623454585037192637738146663835088375721862555199041570854930682635404764159578029857076393419680548027302665828454591388739594882882351580759802184185543750818427775500803152945958888343372340554588946419223567537890151422123425321860813532236790676368834325587661379749034324236620874511901145172097248748884738015042421029077219653818213076253468219172607300755994177775959467901259773200800225596982969217483418248079857999080546672572234299594651094489332459331922289326466194695075249851085170377493349335603665967718808839724606949727545244983707534669546278686951973546303384432179870864734722972324927319800826419714815732166770074915469137463119842190841935461304443230691761756436845291883958293457989884182300885274241686692882879259750738632329426818517776860657716953255767873379270016846139163089324712269022859932744596616231396826746113969938090917575968835734910152058335214902280743562004146438102970311412052134740362112634147681514806287085493098985114336784151788451789487693649533237391426485171756332953645146221324008080372190682840360016527291394390772816815722196054875859001939723065556349505352521431482307566039362043049884974568001872566229594961413875785127655062152943484649938568466050028065501497338272052172707858746327874891372076755998616190139141142657925930887052631700008299958796492364412506299748294615429575242851856466519198045723967224924031542685648165715322897242145542266030874074706640897703524371031943235315646390515088624750366109326391253733702695984026251517705675839336361038054468895659065963141821956893657370792922890805021896060498669865416023711602680628548394898118280275415734390318643751246636488267084099262848662843589393655000727529979485446653466358115667517188961270888021946102615476841940346778459187707773214847535506948261984420432355357295305137301648251053055217411791707713955240868746833701777159495047547718490308779061785854191582204612106682773207538030794620553434481782764121119793801520524530274838839286829178603735720628270823958373158030627506597550488216601738651982141624991778916693390684638652903411548317505681613890683254266977869607204414247256635496576963615712384678685896571685925567186934162890652854379334958368308824513064886826312747728643581770238340332111085936004165489935124623315537373230179502570040412293817019730681756131682105933292410386967990555266682292834845708112416608458746949700507267551258985909666690150455511308802810214685333801906509521421989273223058617568318974183467390459369588807104109323096926893642047266605558778783682837722296429171564021138773626797317523117502410355921234851943368322634679989555643858812755733569011582155274932176459199138553836330332215858873825512929685778446698353299205886447837999202794948027174294936613416055565201065290213792570699869825294099400692035397341545877812398072967439164013445632043241012382990471657450512047533759283750918952479482180855154972240871417667163676279226806902730498709325535015003116759273121074533296488540408664745489536249980516452551679034943835676139840365175458108776285008039325462590667277217763827548403190532539160839386529651033461978081202568600812150801440038041004389642498985087018327178306378706518686351735089822915992995549722982106863697108227699095688015544939233834342252247881689401335872288061282658757788030715517845192641141287640495083869495434850843013529762179082388507039237599223859948829794240627839552936811268301485273431235982148389596701871333522360964848362014468696718413084217866485231269223565416337375255468317301647717179112503646484593248240967982285426856827132490371599703552145391577370955969968873822786961508532033421075675991171907061842242258167863579934573197436906229236788415526240163512145890905166610123267252375572539239894446814964248728010638651448329322644071021584235123481280207926083751190652012877968186572458254788546319016171735897744392562715575835748728898292076909500879477517404228035186727940017600232161413697288185838617173992619555318725568807984118222332253354029903042754236618640792937876592969749837845978895855371205111183843751368317979557066839529492628626999562852033326450237860070855234517657560309709643410657425475249709485220341444528925407339923509537133470457317144181995089787990303106075088170733950808627777657152297602404636635155668414010484012471911880023373682504202531414209768871097599651491243324287602047458363860298055688424224488673407871947411802128904278236755045728648460409733618100050470904404060509824165959337493141068722335069732254643905902582237587650668936994432370766103060197495007815973959794688246792392714831150441246073018041555245116828806537808455504047843533214212100129927040978516893499648968062782413624859625307919483960118883792411775030519095055852506950347555392959405869619036686948711494860509434748032220442299882988755057359779816253656208098999984559666469880013519969326377171635818015256867241048824359287810263654614338756386816624067347734548316939411373832022526218843001522495615008394857074136952135363837751459594739033163143069617429348674129861764666067029350961004499416754078078702409909470662851724013917483631211227752755462241518927563771149369932713224559322802611972632761559187582816411360685621400767360374021621237715503461349311336526288871004571985557315360049648394951516761379342733992119099779760497808021770180081732402699239257430587210088930405744875965065975088764163555751158722268709772095417360224866213810470933771122501372537865327927198530731750800928443852942993146669047421066050741871319448223788637816791829860724511962348820539510427559751274412020941781934864363629396698625219341219785971248679092194556617045763253061029569541538571433777576733411233297914578652326829844655100693983283931804758055451834466694182008682400057061002373807182883156532145628319948756585812733142577344932644953113663184474751517825306938477269444870315228262397523960282910726851788671914924610785272989986770967663936483506635346072783123408859501898584323857617181790641100952259038515194213736861965644592986849815938361800816314558594996978273347187867879188350621687662109721499365494018504110169075233943529130977839718985957781780376102877483847227704100845821197984067550039150875513105543517377150635289265427636426733597911193606308616861582477099282582101877987437510726317435709261365757543546706129591965164394028206243818787082793634643422491656876598093223706629510058268524898552319538988911078872548384442614381449821107172174767076843533909433924933218350146040552090116238086314482873662681153129317863078711173786601520247967847984910361036797646620284964710866704201869408679309332028138410404692727844482715899382703056963209583424582562995414496157196576855164895323536910589151341454254596534371624818113985989896708973230172382647946924430906613724508794738325745417684905942537337842791644768141892244226108415379309291691537761716174254297539211817015807145020315980408642261841100516337852851368506123901288722508325010804346300047831387538353132798707954165817514078216013346084117628989806817539191948941513089123699963631073824287861560058376952456066981477983660197461731778691641432595574557814638035214132368601315044484340090640548216132676999728754129523997602666102751595431284762929449615377141833543795017048729845453712404097299388108833743415917878335854021961859522824983253685920515789210283151992700006974230060936817358870057569667800288716047759969742701322693081461298700776303696904344243568762941790563351084003108092977731690090491976193527437657546398259032956248353705268839908159888616498204774615090809988448054522253044979857688778336608188630372031235542701700210465718560541301573943514521829048910329421877644089782395230586905739234052648230939285106292734014473840278679297709165656667008749914671611868789403984983965534568535121874319406943749004198143623367579185243917900886642212082024054692390520389691113656328892845249091770955961028193938617236579510016583509525403801617957995229580017169906166751223172133094114374253346907224159128171464162962196334032718603201030635059189560760400687134887199671022517788087804539196683572025352543870630231977305146252389653577266672244519231636926176727734104220462816673007877224674841093713247053284757312029451949961581343742718050698556922050398295395725808897408475981598065064493013331503858287939763809574075122632555137455479493422177428442900549494623488256475608392067605319296407484552520946488006625645234296249717153217880992229388724967193752897781733857416203257231562246008434683489054091613980152167444890430262932198080776854745446866967166719167398641340858000136565289927012186606389126903276694434141368189895410540554450534940295500067047615233056276612348504309892697186452355594149999981709551582561896534602698232452081683769424563486332875910610304475847716306333517899018824316672679654166338190882474070221627544121604492858363768320640905556927672758451057456850152210371711344237856236662734643397687277237219554039427563787994438397579796659344418592542040233066146846717184534329350923212296447689023725492257684342760350718520134165311357260451217360721667436476577277948812139490490272993444004756907523208473649216595682067388763738317434442538508597245326946223900312179769798124275439592371388033799447125558568897429788916584129432894399625711673011065073598661657956582001735704014728467441555690652340858491176335263769619525035439447372235120928373398819526398173243561002316050895710050167370262163452145933628264418431820043755156745828077964926129248239827722358326720459441656576161490199081691973852561899894739141453150776464165717845091867038644503488825991358877502648494149343296908892271819921919867118619902033033522005979232643926333134241858756189786643809350565414436651469660165059830377654199183591968374535428493107305410411857105221330049399874288248587809295607746005387574028225903299148284975809584520516439816521407846529325760464406592917149802485056345298689065518665032241179012570058276610110990129209637569348218937479227253841795093206364774927175232604827229912033123102981324651633701863592242892660874201320026948358986918126131929522533945241316363863091550317065564233759769205995310745210128490245497575720138426499515928875502075161994469895902348302467206396536799328448178248057787405976953848738518080546713393755650730101981724834007936763328865133029153275159330479161222209065871730006231871415345118922591482869065293088610918809196568372503820921458310986754583408875984872751468979859603236165181239114746491613987920060084588961580735502945245254210332558161811028543691506620209745588884541633121875949002449335644064461701757700838624097928535001083968341424027519827023920547334989632779773110884106706106306328400718034834752647512846104540345492173152518587883714456032403299019844412365589202376256128687316009166370900137604404316205197057655323806522345851718171169375406294071539902536434933236144356309396695162022585261803163813263308282639343113024974250209938450161490611109418370442592955742907229469967839504317825802145799940920152963433605055201230621409837803548014050606930481503841921605589017909298628172748492092043031049179006893209014552785052727121657520396763397523787162233328334213250515687935586806089704776644542759583736374343196788386743809845020908374411624454812813794381592092251972810424420074839545467646723337063798526888121175525272712884053379651828360488242851457373124923581008890963933989939513406178450045493853057697712204680992751201628472172438779365744761880457827885652697183202285741785953329140628390387780907541771714146070240862622066762143180969612610978501032912647933819408983774668234109832964595620546389357674729716271241939249509331005346555390214832226125700262554058116306744666605898856825068089301944779902937811750238608494051568269967781515344032902655354578572825529824437706498646443501189596036262870371850272096337347261611174888914219650221144507264504451428331965867944408402171036285383174347386235832449076423328029060206299493306381992209592522243529530783818292039744973290052820368151082992093596081955866702788461202651812854169439232409471773890478530766637710386491439271556053248598324304924658826051998882682550714637353277227976497541013841529868203478605671125817116055871893386662992802130953565983180175560095308648663734910732884147589774504668761370786181500310786327365384915947360966024779482298587455363753506681678688863172646441316239741314709763494826214306484450710930591601819705250482560572976590206864967492895274919179277669584678382372278738750976279390098370963060812952559672905395250024576485376093855062541690341951558911310674877597958217770238852357614206807137861002183441213471934517223090183447690518946053877984952201321662417381049511269282629298394687411642393207314026433432756338507371388895093696636869619483541579600061972390902921718126215066036142066788072020591872864665581387844094306793769693990672987057874302726025713554713928870443245853858174973395075839847784678386414785614666623655217547188321039171562063597778484626446423994809014346891964165552908247262398275573377875735430431271042753676414915472389044610138174224238691426381089318242359113623668569918338133260505732058006303908794593279560388871797470617278195771775284688554551988650200425213853640331452733736811064961754144166583477252814554489262782056602745643212637496262365611192307029370743781925651707698220078315258458384821187987877324991816097155838861627183427448439393448335371810388866097772203250787758658289709252457227560211631211638200377906890845731935999069778510628548953918596380993890386499983099643588115327007442348912171548068396607839850472308066361779547692181422373235078903327200670759871177095009096611861181815463932929905691342815962415526103421078469867918812964685053795575597323550757308197535263279297773362154075176036304793418869729673678827492014958746524869884644402982221312211197828309933763752159422646947587737489079017149305351297303311096966203758451983922206104234641356791648802088504439143496469692570528348079909722674237313950708983297689164300951722564499931585550424408413751362042274045187750764256080426607909564187905558390346645933703011245046537520858602750518137160559302789324888382524858823607409188291712323827853605479690948549060784642766950517428969512666292307763811509104873361135603794884876176633291361809601222435480418551935281358356091430508207052789547103481368373317042371340079741649746535231385405000839672291685431520728257447189826057757194207141106476036266644066264340354411290113556556585595869086527277908690533999444440616604392834051540478318779744183987620133471420161408928853968326512987229447255590498523992882228967163181037302516330519470194240099416353808490700510846928204249654608708480155949103729524816339221425314483623957826799229845309942074563281677103817823933409074653558899646810989307335844298243082392079154261170874084155262322693395685390897874689962580947863553867758133324575439763153520096333783164310664324832806082416972607958240000326856488372411597900015117003645675428406910583959236660910838974010739603711294172304122773910797005789317285733997498938193126603986331012598056037434553194860163131148471110002222832943190846844139301347313865692078307184300652917768664493592284095033296076125460245041393051250708797707048525928781735895077778966224859191539351359338567444960328061462556257133249056579681237230581490742882139689195219411880272424424844091210784501222734690352809074365019039375735149101045173816162585248028444396594302488957431507194757111257796024116221370342711513122763228428868753383597798895721337322217160412465907223412049483898764991667549792706820672632649312856817919514037010226622518747075523574149364103940948387260545651708464221382732272879504571762401743747901379983469413022997273091310582847500364369702216375911249224042288065607392928861344560656880134570679475484987461181106690621701354184102283509281193348056254216823169121190981958706603328457441777141923930356785638529128486083431714413928854933584152564925682073539518710718692323655531178750719251633458765349599481253500367074105759451157495784650253818041410924301872197646270269518098408839242461524025468592701901278290898799339312814598376840573984965766229978453619024683109531091945192168247808661890610686304933794442529148052813801452468901153682568448783851325495047211481414816612448683478081339585888069019954911561587424636518414934111836593766773853583059173940982415178813090044993404229253127137467642522587667624647413664676171610176906025570349665439782484787194403123570494140616726536862386726493313267055527820730856619359856055730961925813497652717940461484425317825332899738067148089567078901778740582675646110455997978977269404559634744244857797801369967835489195073745975298373245504890085273006086140792154047576840888852291511070662245264539275631724884968695907782775424111274226928737352132718774539880108928687578287218464360284287920714570615661826108195337646819238180542427306174208816504203350132951999538873542634312361061202983626649551009718548955062498807101434400808589495788172724177481826558178700242101784071953856023426053896449372479715907087574219138834887683566432740851940279714124536191429106305954239085843264091400943652763610613481843804620382222940918343712492620972499497568521545845577017029826117330980970855457474939444698300672998955270544972315472244433467285075503261579377541762749623440741611753836761310738781619616696848789487486130770429742909148078890970685419568164560819673337351674817340050278310030809980294767829050925423444268780358689101350786198496695612563569563471294794850748936538016779818264206972708907198549829550496193192419997987773732189621114981221283563154171021006133448363146212916839397709611036849867610771385838882197288415558500871126600067553977808627778195895819393934249724769289474355167110660523857200725487855494127189400298479064156557883632981078898930232520399284895897771085733645841495375817885862730914216303472620602169737138518900315327804299834570677195611135376049803345371354878064865251236126858241098742040394146977396242606094192362336294222172890375746375627048155266384842504831800219150008173653586356718797059899927913142020396871517297635563682577962609020123154031446549523001842441423169436577531727300675050586763167381337292636164975941947928960104044291258041012945782811256246951418617520238451235209142880431612664820350914808465197965122754739564587645653940752427772940399647408996919524722572375316565932783149148494577825841348345792040274063368701509846357420846593747295735472240244678567481050794184209418426156521180768362122540256313100530249472464453157807956605892555633923062636530462153289238121471840580683816465455416012107133719136375565138016954583999385824835691509391437457239636063261817997807309619030225906217346265557372818017861539393230973960416897845934807262503250686482921076403018809071428307544010531640927145142255451648377856682098744308061186597232965909306046655868468678331196505782199946603345683257310992617319963298339649188457178395593254424313108834915367551347171804170908060747197816641823279998735943766792302395509295965903238552418658696540824386809592318446619795137835023804941158552732758535340095844393893491522063441730821619427704101263732059053196453798946356525302670814813887389950720355185235234972502373757701533814219796158601574034147095259467516241212877182535780474163306475915695362524724347008847000485847966809126324904205333968663116075385531562697751261747998038305774904615717698911109186603728359243103563610286141340644197626713366723833942027825358842852784057849319804060386944657120203198598898234265894819281554120401129754450467906640835872385682912332941610983350236446949211110796878545177317088104763424558027945455218078138314396287508994111845962989891073977171878566101435380758326471741616989960866276706205319448984852824267210722986882070704787533987846531119154586714170988889061832638361362333835175007117528103433281970258815159326716756942130938333959632269877966764700924803727600647922996385149026414216482551633926357475225201342978494613954945149933665356268790596967219023957700976175782076099803522095859935824142408475509077432039989971567390046963459790055754663295460111352125472676146148593597342979557247410269281224354157589240902522668337002923160454918982838222760287487254624785244229165472333599933287609594412230639263900675247286790063055107218532952797193932461710874467025144216800900771324932541229278653231376711522907792912175991567297172204002188942021033439557148922990158774561376590756635665144031896279259665414333757894362527995336610886532496496825015297351129004241675382681442473656868227502402798000369300827791836533041941838347011546124719560144264380960831844785418811203849945880099637180319786608001375661936588040493592340547660324077889104335342480225110425803961383817432200603690490890966693546987333748331161185803698499444492192923525528766112417237818265125710229389585013149261686222765483797876684101968744201489833971336842268518611300893869447789482536427456951889625309402358743739127847415889865206466718064322630441351361205487616306070048672620083280404853683710615375467860407749298143178225290053487324712377841650508623861529751989699505394267251687418609213624535988768175326726592612626873250587153714003423349346911657638107467168361416172829666161069602943220456412144872484192509720409864772796523871389249772294792315468128383748141686740723700352575054723969064502967744944591056764020507451551894634135489980925334120171609967986517097979323792448235766430400840259855650009648054711698216662499453972345436552038365593512791939575408609624427222647507517272870935903187895150471507320300545253423164160453143744671815283769521846340518907068756149318938234843113302169287611307586584636636225486044825613955270264257068838972037441676202421894316677933240859693569441296244911761385188524507048723568116980270163921744292206871620186346121035534658089829670111336676583646552285237447893676373583157671865753838025580078875914374050618536464100118705751592474155779204899564430151493540788733132490527880592824598823973142397666875201782169430857138836918506532020164416147234215995811545851240928462155568828831263315446111230051610673280376947733646485251354554320506145946677480472382011356557167383367596402759128967432610906654955767949423398624276784693092791505347887472391712724130429401048893841846448856133010388318961163863366205537586697593938670246055656039634276443998541793052771715218076442136641255516344590332593608563755469240062966294589522146536491677045659364694412764188454959250582140180747774803291402722349900089511720771125972403392667007309271569859025822954323682406555149126433199373810643250115870125930211236629985904870369196666544424379061549559706001792272068692484937083359978826240281546210219777260913496806488397506180097511447718752714429815393292233801433348381534573710892627413503205689681249581447458896741269338819444930369645970049140826083775869338323370125859931451519267816342773393904613629642656921138758964274898849482029194150585451715309369305529112660538995503805680064412857327115629913807060503149400629692533147155679167711141848234429073386029003135622132545410476608909720339912039744661037239345958167682603739607170600805697930822415098531171742930674515071583997411019529256714544675161062994163707746516783208460998640066033921875735922498594096691143735968122198969493373057535816250791745751502619466809880141075815147500035311179434283461322267411584163169278747563061273541779279684634637427669697373096989630632976382130785495290238454467800217306600567482832010920497296028505805322715669174547750400214687390469262406173057356573112785387433400232694598673161135642366183448205986323282855228166929932376979316154614016630915860994702534608328917762688891429403665919654694884893030335649835916591612377742169011275676560617729840230157508170973407224646120610409560051494568611930205480011035835522533064095194993066627865212965122820634484790898476204996032884140156657697237408986837703701395542043024366229157812546498418126703043264776391116794880814215983288689810443082180664933317397616776404167765736851197799188675055483180512430185376020277303107183866197082759499537927835877154870600101803233622202489780972679057610523291367853395528305474331363066971184699000859344716276559217422083084102214804583683888748671634279968809209742211815359835402480970131962220505710529266301368957463455842120648948254367174471415204308271764961686625950902788525802799103690948144452859234091487483440980456931250515852205404790875142972997485171504517492709167281708097211594403421060105979505950872540831281366541166214425585248965010964894116592793513404271809307086654766063102910914626400370637446713467238079331047704018732871979067186614683405766911566157558300726536135742363398999273516372738694111430598649159054228517951188643717439605318056619735001611686362872594995972968306570583756387547526918175036699948344915397107721798802203222493719445353432243886988616166775992988186258921794431773145367949497493769387678772248759191867449317042986543775104978344308037977738918974510511655182383812877156232729821623887114741385206970684244662718841080579971760730342051347717913253394349733216278479267133185406835644654727985765241032625754637511426914483108288749556013098933974968111661058580012547415236173463949853378904596393782083771468766029382329899182478006248294139336041656748369048157556031400228966123506055060386583521420844939313609359305691913140770400468410299274642754774270148586346436474195540231478304178701679601488937473395966586402524155733680863947919885119325849922513600710754518816424157937566928369799107628328958064586431270350488860152823946984415848730657205023602619110231539554873805375401188932787739369681441873110236805167639061398428935590337524426944072822116330306405065909396369975148848020902861126123573523560875395394920129177333334849904499436459274995477583759140833504935322303904005282126288397075790749849339926792098207928148480147293456793453451982079167259545210395994725096420940735442807339060027456485296482412314210818444322356258961348509168578486468884665403022580123392168827656969992671153637848077621505678267172496507679898354379773133150800473996508776128333524301017800178198052531523152597871610121545951261524050103022013544087963456391273597610381251128358868106198664219931394089375346274124525437177005692036406125695115125432484623168916894401322858284343824592181630266802530533154469506787899708769450627217802932379159250707516942273449772858204626898215628776183056518145477686035088267309449832730696843429373255275732479484720112908521535014597528276103217701025453778093947632190488287177611375560304604656166017268798829956351488271965784254768509770406631213244995055834969187204061632234080421209417546187461004551089276425749286269066577287411832793705413357985713310785067376326252200103733690227248530557876586292824706989885557361900697494149935810492330773974026643713710790537139249190272345487199541943454632534962739870171899313240950304669348572599534868914561599657003285335058031700401051713410896399755418077821086390594191970444002407717885237481565635174574179912521825388395877779377997611002341762091928287690292043472031377638287726727284703146199579000116880627469170389019591270083910309513766010105141003053303711354194822549872295730250131160600599916264265957873238894561212606616570134978464587649861108518107576353930602150331403374440660967112056400743881784170465624708875693420825434471905614685375410542003507799654741024418803731119581267471296876201053857801003551438647495492049229513562064567175812301690925101185873423738978799672901859677606969195134470925212354700356678422093748173734782504561078642709722243968147961843592471686004377995299715716821993752647518559550230596810295073634170014437728740032030636926412330489675525375928544538875386122425715079251088342576430990212713460067942744615688340400778863503298248100835140756719358782107416526700672555222924645504727895298550261283501504379008088714826707617009005232639472294581054228566085139148753880723391844271093022086220484921798208351836079959981337334407363972538136314689709270116378130355967730909565927960638366607697946990946284528331989241733976778588222519112791322013712989066676076153453877848149852338496252901947994770632890527971599330686783284155428553960967403640577955139024241190471127591022788203924183969857982594036306621241523786092402840792304753504253077988889082823911639896525431189325430863610306845902533464500870047108924362678419640197188251573481098919980290940554722415747608715403964725918310274644080918575193765621200807903241196938717619094790508396007139837021319566096070350035508133680486414630282854811572424845811897347028268224378271993857691136301025399400005964277852301471346766793300584778343699410568511719341586582697631564767529737810726355977675036055043761313168857354045792778202926821098235757220015145736480050061861191020021221709382393364445335554075883367695887029239807138789187326813738790690801613882910527312727080344596026099518009111736969907084997954066367566053408873247617416212726037647562687733942682781215391347842353740369050952724344415801784335554845218608007653416050694510670306570814089515943482685897357357030599242969367917441837475154355127711453006869375484874800229328076898905925984652127292766319712200753381316104169227402790517277443158203642117347210264619596013453983522451258646807725221778852249012234383905205108061084509468562114245979164059063458962588542915163111784365277368687125915579476004403422446291639668479219575759348118815350272059107517842866068640704321447554676885022658528496983361639643251731262767403282007224011296307755795329277399165864965688792012183751310248836222799629410503564680309037260294834892322861961094414238029554187176810597549122837552000362528929680173479776121460765240972089299555143799565910369566385298130498053125836751108122773730530336937442904566997061111899473868433114794921884656838478560860418467451436276984509304040362822068386878583122615706475986577759103556233802692272606011357103844332995777967226092676001951130485139738967612495253575806808443509067940855637009282985831134599424281282447650359155096467644834923321481398404167394451364967072108078063990267279266907495101599814704647939232651539711999955216206082802501685859834372398238736747892711193515107474915638620455068619670065791973130536618336621817775449112680703939227987375601110370061185882749120828949524497938685410000205713131739690017222377546326561300921664589081080130357194333541607167321391975310648057967924396067673135138727632038263080590736243015772085998628925965737101584511333252719479232758231476929716979854545557703276799199955715859473622531044471583599704074786917372740952337948067444319583449695456582988684526024706840796001869173957778185796414845898075217817208427041146215642910908395077047690263227469268967129727313630244722487976925464539289595144647674631049972984381087175520864792397672187110819895741734849985232520028888927837518046666072185307848850342916832608204183576240638115501360556026303293715133990639135618555912752773344181035134965289157756034228344514312433895140890727624142809604526955684995084971222631060370604278086223272693855204452448548009847898719792560995860861058120924771132542853583386951386610968179847416403836990949583718044531458131579307552252727206744293652042007062114243473652115980534957392823981823410381937104602581106463997617396990112751152008188225470162796361956109068883803155046281061817097555140861736606371801143391918504923924754735676326308554038485443524203130920882932129076612429155593173955041082785562759952674609316978103307835115486242502250696217748486993626471056531940606775563520699965154340071354647381133463164384704267174553832406437566964011527757119074326554557642541259811920835107696232685557434536523779812122387424487690495612814841815996070205521089994445519331501463765994413044634812817263689064711268956703054720025079066560769297460230653821296817198582779480807061588172192133244351567413537474047364495793003504748346477029625278926316107576421082791542989129562697362814569090086634217249619544578047093873977965106005136720620170206600530519055967981336945199578559010641525546308907388450970788355567451091193832366068281656343820181222332741823498637932906059571610560281584878304465992697282496625951431512372600996015692805704743460093420756446898427016445889807179968807101831153213881691060104942911996951036332358682745829233286459298273845701135027864195935634170255399910007597928093761178984125127134688967841912656821778468517900292277669200877087383149248016924309167558630622833609920076521806612026164103742331175238830477943400574024276816416145462225784358429077262319934872986969789421089165219133377879118203220255943297880098819700150378014806331384794800784720283516093689761051773454834031480636891944387549720288798204621842534770685637778924551894765778822264702193880599592282468559735611292611467305960112493694473435248970536931775230473145617337851688826616870495836784295794839934894464140154611439007552802025067710599754440283130817384595136184630273837266280047140630472636276310469114329116912920218620386263124393863624502877994586729779927884585749362168100567855605334182971241245505881805981556704033527398274651822532932200732114019760861189160950509874730975699212232939763808509215477108157176502300439781699206824736889966640779303831248651844674841488446672674697646013495635401742891905188296866782047746308962296643233037030799150824196817370540187880916617505179636964613872543678667732618242205562085594932936823383554395870153748606881436623461329612670347145935696345637639999953887075048406650265582150103144977882129992580243644400466611392791309165804373615379190552519454966541114462805452801302933459504795924534628778910326740404273542482474871056805093470372914985281729983744430899950080027146062264375610530354686646919646850494572105981919814557204295950192470492611488337882455957344107072043347249085136746422920056930128863857916682307367462533726575262498312613934073639483694857950779507056646804671585523947063063226243103601432898116780156197168913109978794886248188958253333201986018939079037211245893911686580034713683204501233915439245729193262649454684718112894047555833026284240656483801585301045599224011031829122205628646211676473858939614299595646133562433202344966743452230735694857258015399550447117513847573032831004228884349861093805800810387365286880587910020599709563334630533607605741631408709642767551313645314040556627952554205240584124875691317497877197979706951628901104892383690060310655550295652579204811819415748539842228603982300270555686199318460509927421288740794693756037592922206408499907683761230918085414359434259077911482057682746219302528306684879569938128999853843997565506234993535783049728757659737159625829579896534172957419965440196370516160326622371208572121338600483094218365958255064746597112619713285351437429234165802929084315349208505551939460228056842512858504877582498133325821118403444335316964006805921272077918004103896357367452937661238900592556972985062448258347252234646365955546071845623178987641493296059074819093617648187983383420704598085282891150235473730128139369460113320325500728330229377561463517943543433913257957246154360275833133527981368370300671260097368004807347419421390511663996660730703689423293790949158020701743777016800546051311753688270441003545590364301442452104820794857143380711562909223402292923832847263231535405558057845681563985058526750966075195017265607110809361891692501449186192222276525170654652822757265935841549893003015620924850675180094682719355613322293322427280929684800723509109378155556845255382969020937641560799287009880574686747364321869642512932108012722842636504552134940952506445534182335391182422877189332444232252298363442728921052174820552504153849655180282520040011584007613118549692692033703968936976408082506103605083898675716010944806296094995165716317216375553408785373048452274218759925241456153282195137315512863405418521187639113868942843778255903453803965553079229852839583364040387166886515411283549319310220335597715054190227254994050316957132981545992182796681024854296405043778647357672857881286124970650411595368061284831047720446527699784132086616507910050593550947192521207287291757255553501432938368924184992478894009884254140792193371324360722976613227429138096027089215763780776737948995369834120192578883659149148964332607439498866628511652019652911223442149738332694565894100537829502241701449408819198141736305629496485718257909661616031268001060825210698778295191555738886059142681532654561370411282707244249229197938852780666980148891849910295615624485553066132705698605225324057216522580637479381107573503380422130985860234007017810838475674782172158642908545493534183904255910889009948394961594231428191049570963479280556534806225220606697443460721362793208579086611778381194509221333115625902402512093597758418906562159160523738682925723503878624558380377989192940302509229221969657875521352361173603771368756455714480096930222686898876459705140353753549102625590719357505430325686077220642187945618316886664944809608647041051536898744935353713580310726621363064794355807826562241837187029717753396968886872069198278731318124623376977680965870728501071372143455589339066485220379044546700239710916482425716584558697987082432474904288989300205303802045536047443400117696153534770486889457905026175392138493896575129072692680056645450214387662164931606875890452559787066992774830484616584548301965751601599980038968554609213364001237068765960817241266208695803096263369941840536532947056562216079843133572626404151135042906698115644763466729283091723045086957324105568832231724406438345868519039782776333677420105918270772433672830749363333994256889390542136996335586269954349786203220028177628966367062785393575491806276032698289931196165522414021446503449611510179315345475737084277245328946072658573568739174136912140856531062861515535812286028073486014538272025652428237749043283835836548425520379347883298080522090707254523777388698878273871346220387377261288203500163713910110951000884438596188195024531422892771412157619910363997005458719357158051203689095111497138682412900107340027584544975743885126655358547229556595014362564341477817681830988560374476238714446329047356168328630211294208217281477874832645887188768218341522886200411650038965296224674231684533462264779846142891027026118672164003789189055785692325544863899601141863873632494407488727753772095457397258009495387278863605260369196794978866042379349725926563415348353729828224842837001284404954758155727120528805871989673024148745697781991710531812757437419412265886655224271379390050767705224403531773809863655382366018586906239967546007118692503381278751172163332026384121596292099581571983522655641052369485477904159191719108373952033828505684530217476999255271731493955497226938894146831297836143619860951948929527869629615131623455676851060984308098631431778781076682399808359533584783660517740789278591143488686714358621922317967367698162336206832919958227225337768864322364883100072428562647977612652975073042093979512351358254784531696907753890705898785907844903390656587530050763906275612175445147217384430959663378420169824566385969458400682587025711407645590786509932051952048854264846405528476990549611094793115208118060422815194291716992032370369789625121489856036001863005415212941637245262541771763102087597531344157281509610679902597917288903431784121559187786916097423368497847495710167105264685150927804698218079103410456179849081552367077136641888171233697207307183011834807426468671736186869879095678371520511228265190746443431393995197932139792768468547301318911030592803319011743834629166957289008732785456894561186332238245653885293268926842796468543607975261894288360475748247102683021896687638355981800010211146262540693107805736743666994277707687582230394495542203521406325382623868333280946875704022239239286803313393283341527789050947064888070952522783728797702012982049449384875768608917730302536572852653624218462624219156768551193895121214905245645541814198007811348591782966611683715163659596360840815753455822748716771125853501668706887932504763322552992599379753616561677975170663265776570717406555980686868590625804968040330456555369790906249604187583687357590613231252439226975846059571715180179884404797193915550880425160379188310412383130209992302995399829784211259283889666523474577181847763816731020997716414132210605574432429014531122080192212179446629278116680139125382907998810383273337094887388227038872463849082062833894436265433984761549932846263437342359812531347691317101385745418674863964906912375853450598535464169191442056787637753816853864572004342076464733235338938014022111967901138444517291000978127427687531569912277642926636443821990875501699736263607129417841452727458267634909036322782748140491552450440083837919902680855024137202584786745783608550848561377799249396812313951109121269549116291713761290665543479277934024508069605903007281710108043267995820335762987478986226414413889416590708332331345070581440415613192250693163062635890539670318533613799268924332958609462916590806890857844427127532928527902576061287973476579104837837075036101078930632910903379940188356426646618348795614023867132431772113652414085570095085290512637638131855149192502391862667358351260311349019217312051288026530649945744990216787336291108384629256093643310331616179186025495962346125796867810432298495466023329576727369651111366867067772847712562753366613454528712227514489369921203139381811059946603423424004435137111740872205369267078961837958298982875274484726280077975808035812944775000960255428491484732163743946384098088539495516523622469141018092832193965688612608872407624457417399514648119365844633022800772148376970311984431656782101019996815782651737629105651786725593988201933527161402132750811261138732652567028789061646143132008196547101104357361131218545508296813103970765536851443048803315537618839877822466305267191083950782907036089330083082810498651783202523978642261243565853416217909072312237662415033804119588872532642141733712686186507772862326084260566517707157226415473886115042153248431213851636563424288664602109824848473984844236937029061748703248437501431129594638628179613605944619321759778761972201541178016727432717486400076873656583546681559578173904312396440705890945116401832518229807834682285336499579181998984172641661489571219933088184682714741454387501416654494086426715670638910671175714463590341207230493719862729011253021092158686474866902992365024609108802791817615122295731157234488049117112106591591967372748200275077208872476513483441514305972890608662722568439988786627889792561972324564649181561551403636643277432409086788402072334984872274131619499665341424266329378454194016187057603646646007825570740172158957824947090785584419653697752688588028041957863306390357829067481002349134600970747013161987834311989262252012571561280801612831568907231316348559218947825568456783196744901694020998633745506076198899614200107483407193097708566235546152073638756226125388192432488537960177827771723449820381994302501572590536865792144088587958675589774309838262089003577138357706134965168500866881979826419830633161451175603889674383960435629035706570940736640793883650707584952611628688087388088701999241257995263773628782584951190059201087101914629405499933450891966532165983084412613405522497200207917478643523283802161009355900944203419529730187755142248083116408667881202305063734240334130215436471216290086293650025963805965337331491091924278239516917863830242294306465031617717234153269030469892574883206100173868507328470116533051172877127892323586865496502756966677875886525529093135871399461517014637935809721064996230237353819068750004689436902450459442936448400601383677398497752994560315713678195944896243319737474324498996190339313018886621635947815738028132040214860439669119483103570711078470034523125559742332132255703287692211734227119981896133031924118842110655364167238807840905475302807863257601313340050403812296447089704367431820636251252701922581617577775189978698518715026091797315377438296755072718354356589560343005610355534961799528833231454607059341534250549555058784913180270651852827448653549471963207772735427024626482586277612034806441600476611489866659669505111984941680649581367827923676770737747695085861821326272215991598219785013402809990088368769643248400654945218255260081349356478438247338162059287576956381206895964183082022078709643853888970859535747588062212738900934420533636655428959459905761123944777231317835794552845918882707345314084917973494961142079383136854389914409376532948622406740293951484787826174431340952270651208634298545749487200292182312451192444716279831230394712461965270032148937898977237089254703233253149491673787902672268360094801688981680798617726186897463236953207285786836126431129746904947577367072894445721191708614689465349946431727001275162645825590080105403495390938883149502880678812050005872865094208044634176353195770820757326748230832203030615622772697833661858951263161963669435937942712367494715325820974362216098028827242224243385451514199214486561353150798316014358084704444559941958284671898337200726783960821213997812820880208252178279902324076356648474823039749254925786449405643783680321712804614635016766300126387381547100112903301868724715829407554904217931601084485809907057991024701793329632421583639023460529076157060674253490417293914003364714482444923350663715218034633086310767491914193985687379324777938819437311880644325269559680286374527874921289738668649161369032044622631837238654835973413180667411890209748146610288640616288163195704211290669160618963697422487786278369109647713919647317358973453071829378475201863794913808843759355443978870670395815696870938325813723860255727646104970732933433192884169983573283416151815927617675081457722981729908880741489647527000559676368940017781785702915888879530698424819058799827614964678180847099229243940657930577542580227104590543808279502831504687800634635797405629770111639414137889716040739876359466558850505858578652124375755765102159619156846713743807345854508976871142957847858106869403631071578119762683813596776469597129424631014976442377901032238294057971721411196211824460716802343234332516436792758728445507477382560757467844263586032795832739583463946315343712336001141343388873653637849710400980441487473905638739910356051952092675166624638347704485079704140619077093538577897309491510522036294175832435860167048447714743253902242961716845825713142656237538847828797207681385831530385630345535724920036074817614539607182819062531147599559931980073693783008567265793183184580741023528583127020983619645269175781549438657679358874816463902761409454482849100972427319762426007283241735434304078263158656894321331055505723998263879936825525741224246663071159438009026630315192732155279805648994135423107590206489435362606382119452245129343478613970090177203349825018080903065632700736061731849323329309848059118792350292794690017786659263372930650502763213090837098536466420252045383672397469550872027061781091987097521788282358728679175876006390016656118084789705588296309582362395244412038730513487599195832614923504686179282311192305629575864113469903770801101709718000998081191776784997950694440623689989601536541498595814070260400168714994476343117112145532957801942189829476078661056681348877099870965768417553571757516401694368689374264541468380762924058476126963825076833211476047774265524796232750014848662972939486342462048493030572955477664437041179892348515953296712669672864084903372630266746271181328016006385903652438336650075996415561729135893316779494784887753845107404151221586679893062949241101907664471582539697179427084576598958071177164361468828560274708878390401533350005123233015225420639768433904802709600869696141689612352929763220898531359494589551110320725174226355916641003380543175225848165522910941356176375841230532089142808030628126004397271923376697470175575842494698217998989828537184200464466838622962749903865582935306380896730423046942019573379071423949412075454378437190659964898093120107808001889405121083757701093262888422137237199952156429740481446373419772726010791548714347773615559629725397309708282171368993998235242892892083170095793293997378749709318955230984383578691328391809459729310996766161361240100798309647357297839247890013686793543717451704811073327737204944897618729611692661941491825862092531380808792406338648234282095234634635681307026788554819517651061039261766084117942092566508324383627833508681894430782513720742984150848021714201390151624198120873170855388541853930749828432193616963215253291761398908059592190177044794250814342057303498881732660012985819205779010392287649178720111746172489569090492419436018373081147671788904907240197703215288383295251573771171968672587080829190072976871759516775873735858671653812211339262748158007526213325671336457230854249505671055327561206132165978032148993105715126371759016549493006920697061155629867668184752262347609819058479383841120792514791230027059839583567411530188521133135213216706767983198539796761714387371538748437898370328343306099081199801612489209866387203809387834211144539408033766376970350732466094960807732721472299073921924144738698912394033440479187798039414602692521760748629135150875028525837039602800327231022266010068293556197859719196819503424172374961208669154042375917644802187992324950489899724914239953046487152693788787360199712591835138699403426808957459677429737899277920150820284762439805373141194477146350976011518430084243068474953829883949012521108265975823895331298647337446845865005863350287363072491058022405242372855848297333750021413592574554605260668924524958205041909572561938453983631416918104264263594145808548770399354362042364726787036067906813199161611019253860667005531258190038122359386471019172276595742276301729976099648498812733138982831703121364485060491943024855904608436547833472844485842610467960191215624468782799968701749937906485404778232460284943103970460061745753278748379364703251782903432204898644441480733008247925735657258422333741991388554919567416023203346050567705126003503000530086754527297737148806142383888475710557261421591781763043051831573199840078659033025065056643691075883881344096375815785924104413951231929182029569961297446155970574761428141004238692055542369674184767218451272689550517376579437923480827652887796367716315226201057559185840041149401887083732575426431033086325513682645734168343977826684927469936867307161245568876231121437850974620296163360997040744364127663713137156618763473204123021112440827475993189188819932267679843688489947060334484456820252890837497812969549582608275740343834307759398026975563656033752838250432298671550960132790480025351684551131194874894031488683675594926479273005451863447966602861096141034516815705389931357287335169974273065103751270989614615796147767708133727096919001253438451097902381276134975236625892693661070316766961394010963067022883164470806866116391969380995316130270792817532439100462022907527925802398423323739356364746759180509864648944311999859635365184605595591957617341259308595838593888957482411046746044074587295612633003753423740150317097716667126788007472441663186250139013909471013940665370920149319306945065947312515537737093644792845740294671545984833736557959763320271049388975543685495828298429892618143786735505101016108217363186226635250183350233122806348491526267786189058961467754474898745985822889542233645888355329258788215415911250059850580427696268985079863045427758323447131069875176880759779457402644683154860426969074612128582286922394539725912818600767014819799566904157952207621541045352693395868340779679303256705769440760803003639950437597582114643716890208254079003157292809631478920682846087077803499152988831458165562815692740731413639195860328002380340582147736451565287580807656968816110724848535758294867601630685702572620890144436713690483030152293600022029243198187799739750245913184621549799946272667882472066868054589326862662843192889554760668681890385484256776897228071702734688857821873898720551777948974363861505906058222927643878525774605342790088119398838797738637687863671872602281120817135805383676544893999564375134126092948248500644312943385473779747420498709641640751077193405003214409504220418568100934995415240294555600665519093934287194401814419468617871953623449342244897169403439630723156306840344372825220684949093731126146353023282385537349982077368701644585043515842325354275908831398636463532883455999806239232731969065621691990137814849119008653764642467163081066455895559773929347146482738099851104874416803575029659966243859498730628383564964173543900758086801625650579707866352350781877493076186113690213561793701560211492390374501451014345082671022354324384893437575328037052350389228499197952796470098173939585853099464704699486546875019024965951739340438833102578193571056443946248251086085479369023816488753021405062040851972161056380447574784837382131617692176150764490359512270109840736900546001049098558050149060523204714795313787898268082466919953390405343523703011783079756052325502038596491461183442089494103039399821632882567994506903497218636688172457796546158266859452114761626403697097234146605676436044591090372684747559038584264880957558899218598591437304440426684103915588800309885306319014421127857708334044936277218923892135035594513413862332795977848079213438688008034149520411924070718390281555026542195519290628697871998914212538146141193821668087970104474468770040797769058452906985799726732993181460679305459502062229361057056670858695916104256239698562411156903194148880295782281327819127435418963187581262736080742022193798665216564143064058096624881263201180457479004415928427490327612088569597590687329543087800438880968220770174966667513130006897976289283160438558969571700737129318532647167510761446137568194325552743376903781100748646999347810837454230774795339328463012810067550260935517108059906627446826224964599063016439868085850214922497226677988357195212994814714050785734433023861832554200925121761950026336540704835419354736658030514559127994623126087230318450997546133246537742646394991619379918053760118331098628371359797919815111525331196287926205014426293279490635782890542756420029888867077106719497462766045580230439567953617899175553772962903937633977579701024768143974281112009549603256007849670517380592002185997765455397258043731607414204747944527155972040767987693444804612429090152636316336614885164474927089499391456572114079928629678380498398869430003117420238258255616008825397489942780157237220701351050767389753673136071834293963687288387692813721005782286997476714338525904339557530254370936260763368403742115366988559597358268196842335299875960245500834359724663408792695805747476077258221785447224778780173148527479634561503652476194481314304902440862782750165918345691079263427831719567122658058287429027816176767857755265871911780829795020915467520332127889297635481485050526108559397835618112749079191990199711085149102911060529665213878321125430017296405185790479468787021880952577388608467742210908178035556313716383764318495467593304296175620792690637696160185200982492615819415308760905482467455112611664105478513524429355751945288362892769397081283836348249455334664890318844213942609664379195955177460359000789710175602614989897405839147627106059294042410010567686793958376087600083712687956326352244501080061327294501398412006892636601331496826270321710929479870872762797533425804826840260898630165031983525901522113404850451329705743713893296233251998786653901093645529552689916454572930190731209483967027044165072972196938259842892036486626676516692524276191455503345937342311421867597635109728687325663817656224598927187165139287559865887618186320838642529617040147782217637078986554934648368444261502012526738551961714427178422298676104454143574533198571025226256396255933902482861957521910514723767646698980338657191865212729618614532045450868979995324260702516066177210301074336637251190088454203767419684948630655155144848496818520949433712909205945104040732580290593793177976402774987475374084093880896750109894232208353527586520064606091958182425761192489327732312861593555831117733784879021912651479493223922177689024904802892942876449288692121488564145916377298752527867243851450876289307052334633756874614747322685391941339187601495953903697296518405928736331082324358614981987518093191961637265958829271119691729168792554429309126490769647757693764635538462659743485055653721330996674882289076171218634735791193566350681841038243405349949854113420638975366514677987451368904698506720450873970857065591040120164315653077022409917866701649263593042955849204542214336500469556899614778990556506951245106736167084705152150519862730480339461109149515890649438078783781027464205549587805200148808337932296596636045636657788901071830743539114845229573891745454183441271564877693723878716415861494337119268985706010263818889478052565167524485662115462879845410033867511884594370778817900541792903329056426781621742651412784547887976694650164430453845669589981467330871831641175560107553818138334340151039145017764242831630978688433767318758745001183298537470573222943343829514565127004006057913532487405703843873548015021668325209861212645265515098601106690148656159025068950910935904607938823840322824872043335588835048560512227493161236391959690059385032443003013321121762917594996847143019096291712517168760813348778597420385562954258431857331376972283262745413148263566879263060227610751549748579878623795207420150725843365860767806610804438472476678972472781441496296971252564550025142113008531036009898029980806896405804739433271058211005001391608843091281978210717889581266279412714897650118657994380159520163521286684796367499354650682173040788307217996741020598256546000338875564628712809676800550762120731629622513579758839961401862970919428120994274894141637365032867811455749956097024563768169106308446248384521409477994387639200002225012819260925725875273094929253495775270242080617308172501125431490468893700237360658114742241068836959508423544377063408100368283979141549012382877815645526259113140954725319866825920312928333202284062273612086876734053404041487851652188499901932990264495439804414127875614422172530829838529713595670681003029061993331842549234619166676236207263680959474493571401199741919657145794326077502763272823098848694324656814834637023801989708152322200856925720149977784520780854391363339965264040672730820927376789384437710730440443022285089897328981850343760953453602383427435206817456362425882840901228036424963685720988234345817199653836486568952873542571039295990784952421968722121182627557552629043284811181060887415888462280669104115690214718811048321591826236210718496417383026584622065975428890582668433633183467363506199545038976927352241525178240073226413117807389739562440415317434325153141068303634974693113894593423064900166813303727169957945664931562808318946619757614843060365583286345336769452433050164566379113521187354657133742975414566277439008195348362934166737537039144478518330689868878167021664472033420708478180327751784874570887639031546593939627392762365344132027629342594718181748045182425063844051084903682747447528768361770016702649373695226510078056195774116068347732203124461065866469635878960105760144628851787225606692238332676636115001928517875669961416171679693215647015227133531691281036657964866960553805715206584447859340890377609263695055371704729879392630718876943492404698091894054829878452966620981283432874671406347334286906423459196809192582826372908980854220846508394972414851220164372790176490075294110456439794909743680868332178316322059677251039063559051334085187905799841959238440005789737227964601358208557145694928433693835208319806667267922777253689876267268342381566387848497300105506758114616878598863591389618251145916322733775747622996989760598165332880805449558696695376923112527690642123487957164110024617875974075838907523694422789858208315800355039794194281655992935957456324338993493481773759765283150550528432542260767026348931095115593406030147174982380505395476369824890592176390235260257301530692368106296521540454398166738267511463995138792357767724800564866718948489908110233229846584806600986860861864075124149618127525676926498705887277156168003447156178484578004285551645280290058441255412401244541266731936573548061520509112569445294936998475708743085803692507801935633165443801789897817656864654872062635648039578834591245528488866039002458563159070100663955605375616123189616004066056879218589655395960738379782771878578954439628900389267872955945762169575833940259347271520823051590387503150270695058758673067285624676153279419693191362498921047909145852462946251502530470393756483010275882860139994174290428048150021084335063460715504652727114353994953598821405846019451850858150583302316217331153050702297723809003199077343202028733591845896768235328872868273623047032221999089613486250299516192725340585006052847022227949939186032898212123885873506633686988872866723597663527047855361560126240788428650942432024287018778597152645088069339635871373528916422600633884395083582372975401824564519522251324167249128340698886305781616295097540061564866506384334811554014423294046673652285216356158533682865569872071236703088758641799367790581600758230820902860730244306107201704285615891631646393948184751788015718564784108186802232540431051116662389812586619944603012691077004928903957901396057851857541544179837555172394757122732526901184897574987395140282199482075791988154044618012750333364745527729670417927986740151439022798812620456211101935050615018855570671365768425767498939342922906567695280090506365756332010288095580337099482680849104273310298496060748407496603489622639106930644640209662518919297819941063688500704992568895918570563363812542132465206964192662551875802583028124552460732675754441293326952261478540451353751808039145737850263785858467898905287548760553698599592110642514771125172226347949816272032241212217331581053178820652356866613387857133098849377786911837688409703161917630852547038822631971283762688354934994158607278831507070310458132664221437370332228712578020247317724432972568600603463800984556333933174044190056101724428510699015870622970998373440911489782296921060015636662332369599795243236892658518241456685739355878493571886473149258520563610912721433248849495976692832466459649129796915283223925995608892077977231451097179026133232971927172121953062674927100561137142694281188820559069889591025023895488666945126257978083139649118861759118581526640145625601830123818392841324804853319807741937136262627434574498179025459986316497396379085172163253030305328172931098633346238770099677121810609866705311977546769734736337355723309740285190537148333148286720601006496616153307547221231000935939485820156148977631630959204451089901344350016227382365244735705582896543467144946751607591257914841657933761747951139910153360232885534106823445740627646018677108777493373600398526895233680288509285267367654621919201266805093951212928381713713528527789475764113982780699409109924776691794126497933001345206030915336463779144245268611070727579397400416216438512649373461252607090686843700712287033101286313616508874746921242682452908465082347199408394639400966060269275150506595896340857122925452252162968522495133511300477598991865346724773153677233827224608356114786910001927906631350880136178525528281702580053091121913440135278538341157338390375927622598415619573281367867424905731250065892403359901960197799844303851897978172009183184645917446406456991357849268375849039873925916723503329189338145355641258770879185549672263993366679207740719295420542015255925123615936298629118034242747585884638352167346439364357182574174081006643432872624175172012612371658529487721511378833782933256542025864110111378751684214409668980182553367428971583983260965483143957703572675412881687605979843916912891734161088433798326225903809450427499884560810462348913427159610329940906343785571049177144574309068698900075986175333808361330230098334538919720062353125373074744534803830181776199973353306605291579398826676990936358828147999038404182079744372877351282551946621745788330035045273679867935493064305494891299107517978328394045376418746493770228769732779990955882293206499849712346963533920036781904257331608495701515581763803040533631636452675602687976431279892883507593345832541348118514161818178413647420335387572725865757071146757577829632240574846804877163841805945903743419463309626017526442040515889580140637272179653507904272506532801807998388445406904706886392838681210815687712862165180493848842831816033067495157573752215095465908997849250365600545868556597385219619015957229396262721704605942362891705221242703475645168753915581195203076595127855592859011613137817691596853438234919891079213944164493810239547654642133052173642383913566980580451142176403787771584375336679616430132770662450847371529510671953336040681981773319513075105050860480929940917865201187512753968514196433518594852672375900557661545402608455226052884494021492162834521899461207153587707681401124402943840296168279026244577110898647472079771791623493886901196241971112076734726574513587277038134844186606817461623213645168582857354628252875717796739840419357797968617494285455345576586523932080204909714218312914891263914823223989948019124037050101263058168142745653178313907536693488748301551664014829753076773330211959686938746074977280728157566122551106456788296133142930344303216468191676727757436282049836972663335631365298420011687313487595337963723162531568815117924263616130358541197226754833696012853458354983839899970925651205914729131629414140754928896690965034029925196101205138941675915897303711517216133137343724925123513341199853833771481675454698935852073216034076689472840598594111149062112999539514256177541674030978765345706658770359743044143682828703438309637757236537341360257905781361740608462028212354751407145969214721039544639232383232997524099055436250159849664371016033193283588462083517756521757806877616364560628295077977924478979046675434481602611397230650170749728998864623948265791914693921339304718173247330142136333314114990237597125666259897349861073198800396071526717982641223376012941107069779595866478333944851444632960793904512959169538086435870945616221726835357955664082286321921810967363009167963216714235715932050230245263296894245657397742328983035640109385529943336186355242203414572232351945549361093107065522256312644916713119418921688189079656528793700052870274861441059838670120158027979483841733598582073683016983369127895067577366588915457273910606193780823815603352820731717303765041061618020362589333166669985712291209392086203161396568853256958054537808805150674334500440763833351197725424944902886245141858748033068997983357151384764377314376496215462829732740691157592441988034346991377210324319924136238378357484230209488194256901126058081690049868848311285103947057271617582289265641957867625276560506651976695904008929919970718611542528706132133477046424446395051574011924520952396095761311421502523112984728531522227972568865646353139391345041824740922741356015322236365771131661347988432279546946314017383693709258733727609011500814410820296842538270118367005389469817270349012297732643672453130358821521874836193232926746818946721470061287575251318177736627902293748855416818865680016900625568002481216474367454951040590187692894570659122455807577721512642822396890210244984128920780077127087859663353196637779149198154463964223933978141994690825678006135341757857915329692183074540514040062684467660730966757977944352392180481150801027027711925059723039885645195749161948811038659673456903848077619876029207696230334864786524520486750928996379595702364829941503493626351970806072074523446588322106365742698840158752259577845787045951419615339806241929209568895314973470406964282344141926947663835406069997311830598016486916933796990348963204737200206065724575833555228249780180739273883432019346655542908487958683450174398655942884786937637025762390641603043235848791146290119498086968011266645169148269375447459863945628724590178789284224263197522491587771274593090876763977581871268976509318295217547823304654109640494255353864740147945555622047769178844386120401958965421523608254675934640895934235623956401231376455482127570904136447587362224109485158309906836299665492996994522397421862428487896222383214074642892353999762056997625265656456573449145964100515050454694023076383952190996164123121682612315131762822802829163517239557021504741090696677494028022847546436630550105212115169687859871243013408667979236420385212958530440740344307774215422473067692695031463258631127019483826036315950023151804394285718929876092788024185822454196327752806612340076638208744772196774241584334301652908094105549337443586731807634541839803573603039897877191149875263657047937902059437363034861127303006600692698534257119616388299499241309459703255719406904235073453120695291644552973459574868044099350066440868492831132092195803880789673958605964889595752322943473203680946530434633329500441825875131164613001827716706115278878605142423501449440145562977290193768130863959787065206284830256130684912429349178181738033570628487561922027044883434706033667583069944971278430781022600856904580847494692920308922306380165622481718246018713986738949216705496491858090091342974704534975676050371725475761043510789411273027600925212818696261442254888683390769434240828313078120401711190977124666162373794624663851460563643795079826374358129044658490965179589731059490088215958745110416692166379221904626395670594077788933215726134252026336275397477036765145576724394487714697881890949014827946992200655422264879346958801766120367366055286299900064320211728132458086356385318375895307781285278326820686135479997137719502363644935875836913867917445379004018877295886051138828177145922152231429368464216425537540470985216804772301446083237246454631871765428636164385456696870200188817739482868182963413488981007023287844065941957728103440324215671715345082411063567331621040937132715750274494438053793410160540670652315291156942255959386167680584551758100053983006161188493103194257098341438750832532999117481358477103148675340811201091085171374718797154506516017908576226059576099838589660347818127674873036237036213906786829300235906720472486732467035269666449624771575369714000839604185704475969401443139320814123270774358832557859133827571810877493355573065603376093211712853023262509326401869686516223018700890954508431737440649509584938578527509532697278753938276031920527739101805749298207300107039210087121314066251316228142084769763913591549185673919534956856140797397528397612223119992886719065845683221832681138982182875020098252779465992790560509220808541532591172958707354115871407355791701005221437137878962387366540129492686177812007679598715649208344845116650944175443414632897903092407253162219867821691735366040227154760507464612047827253851896344766406223502226267348103724195261133968284407029869474984717671114386087132811435444453972747205680713508276037698692527801510948069201439015457828210970736385055933098365220826644321892077410052651006027267763252208516991825509754025362381315798505683136192610937749737486993037571310179751745232490004163288493668450476581056329774403505953336288398587945262123992922866331222529356932420473738944478473586254539790693930709677839291900599568602766572081741630465196302857856093840756517444880869037338792593250065087257351151776877098313236892682567900326685320988939302788947690444630358187233501535095363436981230176445169446408864458206484364031779406150470463462940784847946693410156502157381314231942788188493455869974931849043074256802256421741834046605769013622824601101813383750457016898869240890988907902736210415430130253332714045498863572602818356211645088685688066797468956953669189823564600017062916827344947864939642883245583656770200306411782034274349168803718271256019274520649830468435334038391178870104245311987625121047442560698845154920636528224008792333124878968543428430997108134980415196081649911904185432268193736855909274339292102606085804694631114954745723434897837775557858609627299587536399788541028025093051941572510264109398240136155237222633071993114378310325766273595376033138602083414862791951706516479953426925734176657937022630649688938625207319744357560208637430092066385877819651494590548041926035334517156568351300578296576931996151733439213754229642314138435635418488582824340563603710401265828163682025542927922504924601162039621491461092783397208657857726337918919099731652618301457343920757495432379006954712546899990350865803718993147076002550279977147389192611857392461397205619340688411634423994880515293602639980685798091999174610862217338545162029838594465375351767293847339557965111485684334922106919533077913178317715337826189594532583239086549484675965850566925122128205420140229106831251130420027504382355684403906894920837668557028335264546029440188282369703283177006233767196241271904804310075985526344977590052466794691714900570059030192280258960292216232635954129883837665662750363303385959608051500711327418031146664157632682567346181697641005897298090446656322526217629535769700984333240351135622070613744612755703861722946357397013964537474022840599614464696565543742047819640379980902479050195273687177374219095637298828919868142237966979854615549631068903889655936168537098631480774209489163284266146660581833259358460585198770610345487581915968804095837657707806835172956740371946206644035517503551438504993968169408819646094940597205153963402044875505564623916823565272304110862782868101960968265435324623556714080052724469547968349303918772280363026859875504606179762875553847116789263367245323534179212823131827342823077412651183024225595674398920257356049430274176199291877372581016336485129601535797308766449810849404706350308763662927926193203336415910877639726733351483173355454756497028882437838439811603496170592907839242518125451371357330721308734946432867198777741511088193000846096869456368771368801889318052892238586253825747115392798433301057633982592048841907932648774702236043361500476780885057363420800685892144752182421783850340011166366367354249170761228762646411871832289931303811517348911970071526290293337902617036586920509714753046190617272314587690285546710574142565519679105881057165851469781532381561013962664207557482207088210560639771256077757482641646690296386473643819394724873648415023141967056097445004407346949666977059437771664490881076698052071171544148257849275749012772610151518601842247653944848172868301705140728131719575311339520015949304687976622718733025361028717856532341938832480043153415332597290450453131034122842938962185277934715469174004392025322308658622037997970656492953212102657616824379634053222274143198560479112322789157910654778905419473455681962282450677814871153035517530125778923199420935716267551819155795120906106141372108881141085883944775510907245973297961301898620634385563109007923102445677419817918065728523723240946172985562136837543947406062244018721552975692536303793676111708721094631776042147404836551743222632497479110045227483547615032040640963732484107613348469080197558290906846652680730832166949562936913736192442148895073134645168394367045181195470039256324897387240182625921354086043060817027065963627614138783248164189382357061226257964797020349075356534254443456198500757286015168297156268966575405994282862690814760353171560863630541029804565252636749787216456492939512839327552796090576482920718730286132541004194604879999943699702341543626723914540195912674020523604409817588841841650652281225811807140803102939275875290486606378887934381524311504622407956502849743102082489023035121117220748527626812048646450656203597890597811096675176275351001130246085805739588610192850056556771331148255290657673425402693431093641233107410535658397513636040944894713411446652842212243129352527091229796316121059267100123405984204765496732926072380567693030532795759784955571925985964087268349844845921446596305256511863329969166106065835735427538461980143750900350413064566602501054847645053061035517213088378753689702272643487863290682312418970943277748917073938176551234454721254500569297176399903878990227996153779723186908316754839864183120169437271880171645272617076346914275859579365490694600813454958806389090635135128249701113666875009855077589103513997210603490603778656783028630342776869296598761481018008657859456749015529661292782347545694691464871493611622601319009103329144213542428437579884557242360933232364376916170792001040415143684759283808720134362538047880127385366009502161049638932499481903969837699435655118279803581675598207688604593406012190505144341404767139967798252318800237680776728102480955994196288527505346893874824466212041282018279272589445333324572699103464660441509895212734227733797966406893164063898023853363882155514778424729388075401788278452399113698060184249865982557700618183951347347883447539989957825854229505056506751466779745651050324369796610461859473808709075146594896162658719986676390195163353259737351291558530017403595796346309319889342521411728174914784241815984916524154834808516833358905060605424884563400983276732527804545508915442283213412283627975938582241815955792790251017016940738970077248972796630307923762614651407565805429860560006193109472613560826015517377995291316028161464773972533448070734693077729633411651914590639519922943766254369740541313315228435300123361399756610628420113003856732665579108654434911806091087387724892075346702710563867207690994753889366866807451690176391551851955675899169400414402912563834187091440958651335373733343375967570094245871707030961490390244449204771792339269014072586777104919152309005267645177247271331646233082381529438638947292400556249515762362423563821094534411763753842176463283746110978862127703093308587611399473061843540786335843270642531593503425713575333214589084687556945789892835005329352178827288787720110566468924196441317741680338990276001360755177474464492447135893124921002603440860297145430456002836667573351002262268164903249771877370627248390695788523991667865628727017878013084684656563035497649066056051364980761798801180684398929074644110782980358551826891256838424123816255908677050783895548236439401344159566445418775502018307081849150398987270709303089093600551331244872089442273291774930146256201770184296025512541769869211941773386272559415490942569804721340796082766822221806097350970697510740384599500799270471923734400969217729293923004220781021914454418178896402918464238440151755226441166606764993958157773071981257663136262169059767358306613032722896208214720114089148196989287793601489569606018035702924110002311528268174463264767601349858255252910128304478170249073322598228081205146684000669119057631127853520327891644018257238648078175273711502345380291767028731458633791134075461351351244069285414219153530530453758597587312558095105627292566042205819008619508695778897546509217057508050268854407476202157349836049226032220512291255691055411056260169911404180701164699779438142985729978375989243332970367395968310172180259401742667499982993698829921508378397583763586050458548120929755279342328317463200458677763219707505508166383513347658314313534919713447634712181950261474370513449422914044651894603577471713722974986922138631633086661228947809273416332587312101225862996690257837923720197386203787286212246487281544829149590038810707244194826788979120674366651209534702568057632083265222982908260827056594294063778746778347307249623616199047294392906788154754103692762313884152941308238030994787991955164036065347249573652006418095752004142869959430824131076007802470525483561244449770614254592041686655588761894267310586760612158769033330622775111920327773088155240236352063205271461142331312358659514879226987802536939369511549859450578329743881624549889853336899224414554547195959186661022171321720931105123841334380865420907853981443022820073571455201477043479354230063349693312210641028220039463255107158969715033266417650199265013343855119934169879347414528867840690767668111835946947861826697317852627316588993330611964554042293206372886691903934037056574715536774569050747310280677387622903669464931123406152327660876898730931074110404446078300959881571471553688757719057113540926889467060879995975590525926248456356233471171297960242666667047981422830405667897460578304392701920350510908103859828803253692205093003249341106637455670347306162983318214792561792515047562656439915966231263866700159676849336227403731151766905975088903217756857921569673163779854565289363412083938062906631998436741360426500235652884937193341591372909635213455500263879323378622125699241451955844321196698630815707232584872386937353146429733754341000901715269150274928929420473722162448019947419578600981903933800333678463494590432622497349088149523575735944308183933692983643682807457052099373804750103767447842831175241710877130240716800856443264684302385776460007616268041681334607608786960278599406951984096053417445719247871533357997217356422096568025317884754450789337179895614190858380319499298086011043407504155584416868646319596242868501566272407153643011942968530430932040272551364702680434073752996094036651164443183478686030943788403647187606591506934762454268126533064657642283537837108758515307094604714800966597601811074144617131440143944438244912813858440648196314046650626530135739014738371329182165137983094445001855311258826582349706614186627795648491182380296372696335525107873953372608658141666433815648458548084890778459739717136758072474943572079156689003329995436715968027388235189239518127420703121708702669111007648259102817513021063774605275706704562192774878245671642151023858337643562832853162254591098172722536658501409437945915138948112659985197848513817811752640089973562888159361460460260543793813596100271893565517282520047779851569931907945156391628508216897483071465176921557751470517492805894253350939116935459815118460048522815098369778218331516962173252922413928981756629973466312173599877511422094084892716832170113339394438436957875558856802407255822652980265708312506754489406901791322500001794874751674334609423896742408999042569147722824136241342610381278536440585347849524986551900161696945629365116350317095349332118551102251276113456335710844056754300501080023142574587097880887332485230172039333997727980245809500139626636141786521202140652539315984717611396724931350859703313253864022139115746233471226544595298796428779424962301783820493974653011355891202799168688358524041639618852733420984641749027307243502260422038003951112171604864641479580187772396807639664585283403844196890193950451589016855203733754897257726108469411113246074722312617926419159759677355473029079029550243245850787863748632012059128913706052371429988889309974427576519178014397785512524454921650619246637545689670732002110592488067020568952400646824522493433461710355695672559774646175080904440119105796443135546362733308316003714410825787225181778186709273806408332990271997098207494145684361310565030389589295138366945465717499710900886277413307067208165873939731225736665627411864831734739212573361460931786998410168959807208644237902112815093815944846312735790616897266933401479178108694131980481676541458048823172706384544213302555072394287068943493905339890127702592938289614775729089709745082109637337722796459389808062832746802638570746010900839031914531057653455905746091768929442110777963009753504415065029078856551680630334152675734006979821018857737194352669240826643129693132101577699972453718974291546865486541823887342664065871064519381258879940136152031300815370448532626535719307002950282324188491347201143599421714391790286632696703504145887377470317746969116429435625559860537710355669624853465953254568842324728887101753330368053619273868370292307232070733608802347523860843656758900479777671506377928405803391143306755509593801419497623239478131616984227091687725543719751226497159511717867473418440222458356811044166366757924928487160089709799981963336612569717731370695557560596635669735813911193357188055073485493499618937902128894667798911292930971625234071418367520785884715998643198696048632913775152876674121853944073926946362987149255849873641592824308505004205957022526374397423816228965332188031794323071422291344308338232117928506417494582680047453073419552106320312262198227731511290234223458482435867383344857679371233173950828312898899633738984962005378818359004111927254985084631268717028278127166146014449373388821217173694764073488792533011277689820846236356408128923151441699533329784409703232499981201868613308815070590602636968569752085594618957794865595181274847051104092161114078488722436519463886199439951141381358791120483823854026891842819748684205441368240361137571008935375778591966903111451714069137675286328869675827477289061983247391695366727729417060937356727901626299577143240982572670668155183851399395741653883655482570596388845666002651980843097325669029220473692319094555070238047794839504976213737798603452823214877619956082925315887262541429273205943921163174655899358003063246171994497777468615553850634392082649090235428849912634041323494061090796250954540265517914551507954336686804717019343033013555328837338061390463626953745474693962635009389680128309165635154162955234454779302370547297454444682216697177157152867700060819383643928213966417429052932524613673235135381380588834580158367982521798959462487625353474705405350847943313964862935692824715424501035104229697984076456374094346667379695269646414099393911547064145606462555362117015660238756651624215095163700726994657924034271103237337787705764194164930048275701728214011510704652691374767827483070704563405050537946778105842151443617721550626141954009059746756358389741987862059108179832696799210783976361994443499236921204393167950512661255536595107225022635247646693723031253078129802245379660978086663926181749425658753956828054175839750096167001648021662611327377383444420969290758728785357339277867892794018442133885275195162915147432966420032666644615527690692416331395395515643894501098504036795422754184084867336073949565550132919102133224393813170657298135354637693815188806519938330477472000567413175425888229095172461839806155019343786582176187369036366164459561655432037011390592981728010006191177887855689012438076210849836370387560903630761471200345406563358724876627257685498797055011611262521858569531684947435294022648891500708663774915594371221263342420441543388018670311983947202538857661793860898620998671742034157532872830423803664066286737989794164045718706631814437442174489280511384336748232915644222725885990963772129177276206480921401662495885891222855960486611468962368838346043867213999003216068347121738529792892257371182235181729938026749243654111335675916694342451595057473021346346152564630519187707536910450054778776368043909961519922643769725768935122455817859315464742915041367349647801319276707324099365055773639510920926191181448705021326003618081135234415908583702623359382480580378193494778689982760680194246555313112234784358152910602990229951164766885356347266832902660275435911777711206334388606439874491043517864044395057012197161737935361450694144612925119642017349895649734665234605321595395082176441394823879353799739201111002349685025110906131972109596875741916902933482190203511567536533027084310870195289147905345081614369558265681202462732763469519773830123473632056277144980896062836719500643597739434361200653732404034123613295434330908792272860218608847067547992090763403779118487197440768371699937762483563463354290167628294407944937696483394494118058425170742995679316032251941130524343450361659595537616621797423084397785346454543392830099847463964276485287737396447315719143692384733865509520691474631853803029678163462568332817223487704290172032219801511712518271323377638719289583591768937356247032341384675243491617710751945209299233542487926400796769528729747897707125755248646267235223767634283094809130596073499234738024679036143354143897843642442777345863986695275540281624544309177979157101013256884753856323124421222387509700686601793713734923424782293612862767930161811506774854469215548749389022489252921528557983193316676148274731578010182365805191695188059904405928806453683390811642856222952401855914735142196650345730992058655718663672125391743356313648010433420578242923431945621230382585087877374414341605204390633572522514418258887618324477946561283546374739293369105259267466008039886237477520072857126868981556026426622321343999059654920539005227439891703079142802986955800848151686862997502286656517612944642855812588861935078989055775390526750867808626725324616455556309069346116130188247667417031247698069295040715780432528726137996012796965153646882154476009163041232309589572485688032781775002749084308278049830008886640522870090839953255032116214289257605462089450546556816839051441909371296033169312627940713782347837760521570180691485756427783389571548735065537648978972273075672442026287175259120407786522885450711446087612510938766839749739007846012657255634462517941813098596310883311084616137093421320204429822533852437993170668218536828692149374873554573983193391350526963804494776628873906293517322111298764327409121254889979983190218501286276436702876869246125809143793661777950220185554572730093566001347638602143226655340800773326275614171478131407949829856407241121417728785400403173449572525185168687525692095062606101380988840502140618831826469172331700154180588815858657807549247956142326488855386531649244705441669157927969970983342350586536913132079086425591390720472280932036589863812695023519178448980491318239257146464761037087273480002712164301360741705393388451911354558573761605390354118214693830095894855881711060676548703388655679866538262642876135891632850467220730796044984678895439306907486835711638713879019488872682889859797505806778924905557163880908700567222406112886136110559959221969764388022145203718552961961261096325119716291838261938330447889599089765391190502015042310224601762496205496779272837561655675531035715121079036780708815997961555817810760550231603068347120568408204723015581140287947065329727064201660132135448930672801451843294851301894499870056313198776343897933532523713862023324827879424194854514591013339340298277430117910399024638353496380386536129173002472258981498799767065924015428057146437129704825327104837737889797851897999801185769733653470329877845710591309481444503577159967070921886244030504063535759524807556078785523251470753502173591159606285946546013726092478873839344372534992522201535087153520919700858458225239987552251616539257154057986707091387827310206218024719167388586260249747107498375610287451092708203619213571155371161845062876152080885774424726367541699187601124623156388326348512859866447369094433891870826778407211373196669659828878407061228461562567327737586809478489941346369108480633219299757159732687929924239538134524956296865245339092885401372389961503788885458365286908082381398386869379781656034969314134842323972920311325247952257849086351037919208444307871901226351060154275338270942038275271598620958387655873399638483469418384404461729781763330545135948267912288642050848608798103257500436349015520331254080504463430628923296126103911087618801312684256627634276455982360251724970445847280910815466764138288528614051743933788330865656125181942183150037610445668768528861324884802746025884655010415953548967388356688035609437676029597512805015125931799029524522013356094403088202356217335640835814534674593829660267184500092537665501078837552440669264212387397713328834509157072810256211537253111100628121671394751799509374409179898386230253930165983645979126756789184196625557525787730773106969570986648798784126657729448489027365758756357786399524335493140661008574673947865434641178881892210264268634155858186577794739716716932354215127365103755045331399337461583881026848384788542998733280339747649381637576228014029646423773267399399376634032500940047423569577742058532841602920871246446217892147420489871329620592293721276383742230778217844868060970548695449234481067945531855587627661376650584923117358097197619838158578749906708103277583458810153657797832800027463885837900438219427650092612952828034212326702108245655898152496504231069680702754099878974416337216024915437512563579345930968367975141439797726158889487489921152428770408698104775993679327637834035133415606938486455058306514278819348589971673479872008141121107265484528904182347850476103816445458363302575378441500754116547412151056485014130867903330589369093586067990583742852455346056460554380832962176266752075604490936644290051232700973254341152339420016547417210516874071162446644719437905711826497368823598232218778265707905927826750914521970766477739506801391202210410349771656105781240569869273877699887713012431146878747340192191040906695811382722441093412194892042386497145193210070559147434948320167432899076062964796477514500460745891989698788366228073520715370091179579454425001427836906797261047760763417137954760672259085600278027650116857266034534701793270657861936041190319983300184105255991069675957823537857341179012702878441580014221055715125557537338653136483260990596729397526052552026030251561170080069098678684703791298523846887143770216482547062069437993826706618699534031063506762943538305683248981269420571948670203179541696674097989939109222334995240553292360562996843805530325346038132822259499183352342581875123881776604111799446606656644225587407994107474628002213723483392700866382691375194499626286125876910104541821514591735062060300262644576556791538639682851892306951378196749878652165623318283808972126121517884629181676231855229922326751752796195522489791188941239559255082257178178298644175011056371291890588989845723941350102557143396508550798192255126751652114147689697379291100329359880450295736813640332318205998334700992055301571001489310591428442076556684855333499608941152158092304516094422873332494710471575240312096272637602231402148699006859322589055779621402708908306329400525290488892896728242338978868499966229002384926900603222809730152051794529316533913498155923440682056239905310672510832267156978730226112361917657411892778041141312994111423397672876286078858479091088186494806093959416239446036648585339741540625216392833142498588767475845972478168557515443162481236353515908335376878331969247950186632287372576963080523411923586218664089552886704032209444146949112360528038286265706001488893380132390845535427689070454667267738879536192637140185244234243185868486351742971975906247214171697839591217856966684660160555558586443906261108246531067771057004883962000493488064155402063104122240514580647366841473213153869782036841700537079724999835239299225155963601283719684731877686336504098811774311376240034815996418722706986481581226831538334832797791300840409116169743797109841860100414722934033563232881259267665904096502424545409888175128302182161073700233028416816128389755038382603856272807219100962655566202807545378400641606118576909493068796492567942396189228016257269089008603381730519560639550627394906375550740736389382454609452167374877013141546787068538128052141738381365672814848114247521562471254681169205368060926522111565244604736251685588789472737152603556594104010325906766688523575102928636894712664505050512003075064399667594314404810734321973430081806251073780915807715874574259624032025502142256454091462027466614080268272153286696900077809269478921681381229913577619945052872298152831040653441989509172902074474627492641973496197515415771304959264328663541753629106137862007413901500580909034567542962774069773558668074847416892347265216795836425195028444644495204504944444135580782252299656668131469203599118758514847407975938593554477028687119958208135021049605230382681759379743917680859876726259068923258380473161803940434057364986373108621608581669248148245796535163717862357236931632587231255606389765393065619604425097624714046251141604631626712190265279908301365483430687513566347428530967354347161960424056076647566821330495155958057630942769481987924349087735287746129715705384058224683898491766376608177695137006988663723200596150524518809263591423466311789731877781422037669353598412383404461260671219683916927044768239772774137053650281936901544134877120753385929248986352493211340319830396166960257760635348068573838572964111770137223840452290067336114845195326342073421605097429075483201315588192424958184213367271614290317283739082298897065088478476828943395863589900601868362750153297256796878222790833070402296215790421025815664937384362394537264640888197128912954113662066177702901558353415695097812791750483038288459279632279466874315599753519255269341403712676951355497671747867383839521746282352839396792620799567154886333839019910605171426361340803578063534069469864277217670057068836404467856591562913031310487811295236213277239100177264228881417724392359638829242414873374111109075845050503643216785235948094495710205613213207915659547459047178644848406858363909609863690215644761888936665963129105011405342416916200015199879182537576915818895399832781963522860491818568339476418395049100436863209424861783342360991464608091919775249150209944070692618455276091583013951438173750161794135949056918200640210083343842047218983681954968529414086711575835317173120683050325130275504639524094885453466607562965693790575554706368215106625413717937889267666120296086555221938911830178666905832175045240131472745893067782810151240111528854354554730726907753645570058602927381489744738060844138536843659320070727102228575570881225781309618267936244144795891207470887216197005585995250394708946947519112822123443155866007554457189740404195581710346957685959253421121195352955664206082433787351269303549972019716310828524176334936317205601065963085810317875387538704101426833053659873579593675743212023182312801902077611039107929404755959367801051022593868358522847844031769131609318364718487180501715695013917681023398181994243560431264057421091964273032878804268797390911928086210048023732977339054097953979379173034252654845672937235050067842064532392845077408021989161627958541217183477559653170311530118228407798457532790653065537916465036915792059131326706812497700479546924426365759440109587431640692835946810156606018789077431155700181773011059858799306138046066767930592905771166419423562375852230575837221654364407862014329818039406386879960860109775932221698198522344018340760652940653200526308158413870753853502481678600046321471001062629096959639485875449207597866414866920362083998782535610360181255363273744100282645090498626164134253782648378385703211025300917265150913885784334292544043759515047496181659799201776692158973946921463895398966127208332898820529739370539896025687850923314599256058786763874638736288928410978591253209143399406992430261935858914147524275695756862596038874562618359250598859535774223128860824162900915131777211451801711316722717488661278186866421637293891983299659333586006482200976374837080810918424983005207625815444355519871085122347166644331824202061051516387583458526415997672859292891221083528350659985409840177253570668708133602438565816852458583533561870121716939030586336015945535365051447536692757542892750334437006530531518888035870015570851686584980096190728866408974633197604562182551497201717614621510496186754923447632619433501662855218309373283866386404690711318479779574886480555819234693272198601751394211675222244627171234711026070182352015366456200666678676318247339427119627472950991772304699280950352932826818605767156792566474633610103436295698613490052666235053689318999439465026474682827302568107090894673288275506843737421748212930165021761702389297225152586222261185951458091347590657318318230768333963889995396242794941740937099099329399358219498634639794200251991186627147013887857285010542875980496229142415162706509792447719392727022295197390635673378781698066457880652207258897549638078003106874061886169277212640083781592515411401017761039490484506476963510563309606375237444354043899773644305574792190389914529341473496199852120524537619512319842549484975431961166711447765924829221856373912891493950708060417810766176443111792115600838803480087892892160968842467164081569252404567397063764166667329077231822089002115813988593990720516618607183417655580877747498806161582903084386235128762127188172273399639108610202219226746912177437113980315875116444185654346371781213976429820874769775827265551140985445756171848385107294979455214787636593616626946445618154532639128982167011139731039743740760086408177853836752447724056905852864438677910318950890419957383107784621763524430652741935266057612910766197864300421491320173231783959675713803029096607641545380425793412679940425520064735107903649697563957130540450459107226533070531900271903928567004997542114149987728931858320476324303989381120120230533689912756920768874966133289022370698776676840559653198305181277369491028854838082171483013956974389321035431721578553456386208199795700983300376755912821745405316350356412831360200895190574748018498442207546298778438551313522448186156211906530752583042995327965047804864692176627925917660067904084450646647462560301005762936145711740385790361390596993634581366851052767519270074021437602504558012904742122414040466073562552895097794887077699081088047107485202682003551031029642928581726764284234986536990763495759507562336481543720995809116353470925392029981931397279558796938474971228036318340863149417870016149431252774022991538244311329255518376962112096840267866519980872432036157093499227349167223341223642880813720973461177612770548202081755355210028797283073731822909988056075147494215652716417474021970731233744628473195227892903599508582569384326362795155576340998208713263873295548956907061513995430864727270371580342604550607223011654864239367570963106447843911563233981271565999531211307914257396634243313316323325302063779804555585499450092341291730514619570558223019701818540037851167488926710028937397764549859627898984096496607113574723958064253773836406737211037108619871996100328337622567542972446868585672377466619857793626075118012915755600962133412188281258972894077918616383358459044285653974336935456374767928941639812892788586625229565673815629884144121729673176250258027840981770885974319340773853737399488174593673503668843789796449479491127669370733084044750522207908597724356540868849382532885167107381379329294331477701848657038396914059521671807456735187954214079418725812716098194091026512933047807139303263396783553467667386820128412508954423218227428913274355843318201963480937524625588296352416052370967020709609820699478258254735240498692624559358712476216958376197033905904191442107642935830147341239854111930584769543932899605959870075168726050568086697059066331398092199189374289823033805405034320196477577856204565382411439651661573200506407495785114426707042367403265309576620709575715380063334984510591041602685129893855433316759279541460049575884052840879737628826056113172631942675219487554220442723628968688512377945429386090040979134347260562976033712589776851508837838669490490557216599014768851605519144705798585119162232718153688993699767240742734580478641113129875184812220919524002437391622502532466716741709575874956061910925525196609372561939825018556926493142851924050287145484542540147420979995300079272034845475073569174954146574203203071500185949572344266789337093923457628975327454688029674899315356479738557884027951652019933718399120646528466197148317268170446499442995163124147467402630998078605395539307164011576408471981018155780485317362967093828541503438661223854320410813398876190089974525282909111332553878688892041228675283923236363555156894736190670374319010487869074709728778187022427093003119326645721746126396788063518955967833032127389441332324710674581407638651940473440376815956780306649041275612772389763668915972199075813755076224073970329733317837324815316781224250674038716912474277904498427249905597488154591053951380836055436505152414163975502093355082348838853305762035613763463897060892881616136916356552766271237384594123183660548344693559041252362130176479713161063220220122400092609724780123605275964904063344955266467836414608581986980409389243644028740139231121290647968065096922554552587526080915956544679723234951971123035553975076681040837230231242851156690725762394658469069358160411036310868358081042439213456358060540565178237725252912471061916949932764063841301776710912207757120486029806377471736481346877425299342771762177196370910903308628411508640980072176764207613570309345565210659724843624252670128880235472634421431578629956971412267644492999558228994334636838535647688757247251857416659625502151115435373110145168551066757447289210904468548852341628587752478012008185640935902651438821038156098440544610372801534623875742475698214896912065206431518700056765841734433802604725305241231897982153522063093133051887815562724148650589045917600615657698674036666688814402192665573455975723510990219291011322036719606735550602170874691554552926738745235190684581101508920078906122775322419096491474257827334093280518474562966639729890464956145494872933218303499334012366532802572246723619349998382140903605949636864309302168723878308072601688836984913720122129684011935365292044072404292616242352995685467081402429248982352246981451504757643888793447460951883971283943124392411762777072747932244894125649293392225486902258823721713919701235391009640606302484064833322795833469482244504105530792678825914894771800233994769402254175841395013916547321102116668170735193707173832232374009385940421879156499203682109779395489818126578088521849492088330057024991217917601954088275854744810469488755858737096206367808236919146326175525864152547719101848852011063862903168087677360140223732784747779239928989911716193207685399536428967045295898443000998483625047373025768979811867245800114355660009618662054516800385139927346747383392396597966641292447701862816622691108438530253705718530376751206095136935778069943666556614190817752228761497173867040685395946079647598384991495001564399044766851441299853873905836497133791528627418060740321820104806591884090853298117879027106801008825638827407606126853097738895180497110584621212582771990554283668347538865779635883983473684662175969157236452442253890634705243413007624291562923878833977398774362929567997280185349748680296260804754558301823415241413949312983825632615081442475598900249437661818421449545507777629106138039006699527087699026658358686276327529323307043374306945815930572677053355077370656021505610038116051710218697865551703064324076056570436818028003056963700226473221334988787628502287747721070547602672461018385998218010340396790954790500872390855065983665980854753389663266560192630077601225333767310295543189203857204166225763552823233869615564180907509874284452153978169114250570546209391511103520085265938072087562183269683868520780328345502673836426361058737614065012420397456401480625440707699298834641369146857551138567870061994279704064960566248846176172343943570646883340010249261851554222571345503335174596455544316044925928641726690113115772012754540112590718607195348304221117419583560116158393633391693286010459244194250291899532154714669224008634481743800271731042711533715865440303397016834565614264309007969369316751511994540671506783218313650918818460660679240496432358495483119555877726162968598234694820786514922532316970394120424713428423534249151537124886314219376901977291998612408018474365220512815511508845229249962864834437245823942548132181667936066121246203071352327841017218505610237539726905712765822992138838644975085291461609378461721765476351288014887492771543799547388422347304805304468596813086319086029878655153072632693564697375448692084917180497992548382417784449687760905296304554825583904757173844623605859964835179647096376828830827505965957202248827665106923592379096060423879250743635176754381453762153730942190808236621472116603903193960055015471321364630652246857048058465420317356175638373739090046961625822346278143555526032885937244170880526363807922432196038011616965045696936939644773338794611611587950738842672960424637697956907269522124826589034567646364819963465780780458368182560158448452812920092160319993150525217841665516958288107268728103354207455609036801391558586696262838996168672769943674685505844160911453726507270167276527830621046886360357027035916002445072563468906103719114740277440778262085338238761872078206104211881750283667375989204261100821714122614717611103990466467370932759368857592177290444898233671237845228843132193310485497259962172643246713250009048597022657460788652313593424375903442376596435477426414214122349503112562064140848018910478362261539817172179925631343327613922686824771356885358578995365771267912107247185135155685952923800631183858904129317692489594217783226172236139930240700697010634967166222326837860328778289775983732246090080540298722348889256051498975174649996644049417153907400353030181003393644537537219492083169560368578557162849862588380339823555037078961949537159788476221888816030122327830869974886944626957028735905175532580463390306428877025595589924959904044149206987304707933860538749937802975653080601214287029570715974363152682796391818649671486347519988809924569756760076017096001545264272165326735742730855148624623194068922659151069575573798893995088280587775291201769930706278638979275094209669748312332434727125214678697015578848733587566683660194710269261928600645219719549200176428341894643657974577468896708221884348802194772601524383454705228403796421357087067810269158971940659340442737809885141924124551144347468358520453789528099512257599025058863652134343990138609292321644777779384225202230955032641831322758163051440759167095034718559521164209867562238941099613318102033338234744687840827876517791371939388647803545600880772202011340969144912391019919745895020738498993487752262308408501180781426551491282666728394959093853251405040140105722516480212560150622979116372308995466629462066077617393279485356605615442600988870244920122256363187751798812916326091349607871609386902368150635995154233274024594051227902270557382200853639764493929512224503363978555794182403495751410549815603996250380443071498114429117051522551541545260868624058417017630575511465579504832106260038340470785992779378581156950991017841241761223434637191630195090919829212259484335491278332897441919361857386737840505698196414243979061268023605648709891799930244900327196660254526989606087659440425784578735087565767495272262522850118325430194757912628296516556385941043727514368816376677257272272754476183065020932944802995341417281054059683099438215864607049207975199291541483023783019714024272475066734731129839298503803729389391508013261184022893231547481543799461994359203994439880802209316790028093577194741586091180825463554216268835438264884939345071115708269290156663565930957145271260557053583746980646318721365917654098099647303890791763065869349824308337413546745008893432598881981063865406317486966509150236342815705972394123990932303230917303873650611386252501142905471107683698309099348472150250575344669832052375770981067618164072618033311677626882367897021803533639338650951232025395604657756212011885404749984058674821146309310710453829195426616394149466503882950493719367570363119030891165051828981004714148116261408050611046800503855795321093911774016586446727369128910757256641422345606977406765723061884517781435171096432804083935536023712754432343950582854325349749380483894023048577518775453435471898560063020038977460787938272376059240928153699146696495995144807084855468918950293434512219373860943977655555097545678934984272579733880398177555794725658023035276375803104712416512042878090855948489875380999974936853595176385319733435367323869280702684924549413486383509910493841618986116273569844459033176407012889227180541949714658636300566174972796352717028713416968447023642883308759123182865265044300100886779944008090543234743510931424139810230289881999198810544523016959591607358277944890077204987759397128143599924852421717994584828272801903436793872382306887824681169481753177112456653798798132585874237153087634475883170751393976265120629661769395892803664053064473444382667666840913303593490644106352862594997407027295871613584147897485515088129607173837943928314793339128824654138344075301768701490574007988618042667227644775518704211108868585941057334089901772560008645806801255244956787854536086026595327569062978459055093737368471710453068540097186550482209342158173593099280530209564172447472734238796739546382657197716863499059114005415767849737054891776171516517101553982402016211787944954201982480864966535983174111405540267485534924398158232881249255273739864414588197182768125267314305241992215881757798801409187939564349638574933797557379341454463976268745456761753807812477855631330155495532303504091206398534499756251090970289137256694644281717048308247874821950118597436699151603064110830024235340157749685368615207935452945180151096418429814575414130601262287018278756865524627194589495351644762090494138349347318538043096948216012237906795846713844174459892679448205623041929656516211538256904343745579817514886417586646712120076597728464028217758078137967952799234836117605594416498933245135070892499564515437697308427409682895510266719331467794216616593689745730292907750745282963580095727098932312397980488362859563807529994142026119324900226673422922052417729331271672288907114394523976069457393519700749060849121824426680315000503116024313591939545594350235979172300652081030332148747427472619213607092164212567984417528661078309371683386184899686028707856581233951594749046185787690446492488158807574543525695077897307049578044541222629013629292217756973396253313662464505515679123007294390713639650228679824493762155498317936866378109574985807002084739679980619594123324806391989475826310371859210064170007696225525539803401364162003519636824109319541276013373400363593879936223451979369066083624697941407744779751614147130369224343454332688208394597137614337524115470104726143273216889545045904208902892294948942190365207924750411888942870388927543236645471606619751440857330709895657689451767511714843709513379734914689000680230820974188387886393856490074048229135553156012630023555616057193918747792462818978287089359966737083776980376876346876996158600820255774192523253558704033825706995454433171078390456703002368474818180447950363129308241017420428716960799564902598504399094522496162097169630010263766041300808648913338853546464565125298182773992848453335332057621974572858846077103197967181868402653391251776426202104119216623885198773846863165502698026215438952078104321892204534285385108928381302640465502334071236361759106918069383829162085412561400705824784490409462844017057351882066526117242619680172503418907013041771856035706494056372114140807501167304407448187053182513384623700687976352919615798407810246672491191928934566964139023451544249504244655342342949163847355681020842680590661512249825737112660795562594810044422246763500720957614625129512826834070018094664590887213370589267839308163378526095138366843292560059981155259203516053041699439738015020794145258891849322926941865753071293484796429172254580227353860410768814572180137731549594953918929463112067756165140427142698409637793991843186898452128441157102253653591635554033788275676305299552593075278526653887120158448190921716984930987140664129060054359093298124051960968160581536291560193558609755606363267758993383844296446940780026518375362698600929763871032830250246971616860812306432874648045645105996155220627220842777222745693864227695267245094874549067214346777955413515808999310144165598420049495849028140486982421929470596925453259713252556228331993931648246812362455504268522146866747473337830524715102692680921189334167127685781397372245919327296579221301090100913037737703429597766311672033759201428639693829799188719199915052317408355475347311636765770441087790378879870424199415421407734217474489725820071528503586137890243254731951299929101085176638153468335922387637112598346639833804194917118215329844905485480581646850284839978172649051803944780654788433924590696218208451803361768713798092903548974626376887333848605324932285298821663340440819027020056708856325831317415222475589665326982281784998726947866815842332280413375648662439451345798116960082020457410134703196778029689112219901896158124969724098103797655345893466431981110289079546401879422223666701237146131530717620028090171366846395728061359728766535044436383180446883501257078114203139417448463134951702868013326422833173679043126666965927248806146069297817267801429064050470249658015337461053219822783874809384920607762751688943095068634803517961113757015568226914543705787503880033151830117257437250383768809433293969665412086675526947055905998819869765918636942906292767839437787793685293493630601636697304109265061780068289744503115119110225755028434616691270010655808093695656806925008584901572323709715617307378302722181381903614567973156691993546612802284135084029372365909201314631600943265173514906139047690219953385495287554309245851365367752613559756897196958140498537847327899635206029097796390047337582460450950553634583866226993421524069792617976053358940910317756096107344542212208915800835547474133588128233547689935143642842318440008047059954687152944352171904667320250503244425167253063567278683120685043739939384677116825585895345738818225127151480439405620466744834434870586939415007121152523126141118635428798478226531887749651794259472770153762504832259296811912407280456533344428544651087059821426353760441090298473167401244413295407091133946192701657975700461462920932612970581644241546108695936609157029093760077185493899147336314520480647134635433181002249932727682647605923697658071073139060881237784482217458944959055303755995786994653960528936065395154947578632764549387338601730688754623794014244295308035526404003213480170815411372575647217217796616739450815929494529519370149870788795643154565898629379945217546758134391882000604388392036291508638883928425756916853822432773743011638860982128507836253151367660270143539958505948114098453145276547874072321398926597093501966208120807667336407494529299336112665271227441955237679369523386308427542144942036328010247648122818763213208763564763358000125873763392235209178336521024441971420753208964993308908402728892438267958474064863031822750191626911329824851007619680195624490705014364561027170064176936778578067739140412314120601300777404660722181988107927668929604284840252913686951834332449910816696539498929963579681823210548799188637784019757711258593665696417215005071067447552920387046343450474437953279842450439661509875487019888979085127202946621933856813426449358346506643390721949852363637222406481700215065698233101533756957263234156759894899028279971438291810358707973386469077039285824520068172516726990559856159400922220315822328306944537555674262898935490698602994342171485289900786681988730728248146892040583241685920122139598356608815905099654223589353247228283520937563492089288094922389827331276480349933401777686740076295419422701063658339959811326691751622551778199670072586469164401120403412854343782865720215483071970973404858981619101568137724563056379766068116782130278854631351095026168651629520915624866500051310238210560040077797310220290864875333530967396636393964731297273256699029311334805118249963793778480631826279129837629614968677052752052434069693388167891534457722014999834071797089120885779833532495089728828049292040919386336996370305780279038645799325782384277527239736147701412783944582263644673024699470644272770230539800863667284647515435085439498805895133481968962723210916414772765204137158588299333481024735622638941944161703542347019728652652904664967068096637281334580101296741669843371045713491735998791298056527351471372827175158153388288991094058782192371367164469915812821008749491729446071404719942754760660181518975389686213886868561371155015594168155764905008251461784753089096884810879690595132963810057222049183387827244723423883682534849254247979644482361322108853602068391514613764977641159032065847847629469607192254168889185721418221433340746921192164147989905169866474253934487812745604144419740732776411782926603115821904072819337431111630858705827899236681929582637614081329627778889428672257947012168537416651974351785186531294553514499684221560152513632853726204006630816601443737708629568529364007166013968593275903646405072000471526826479719089365704071758868193913354738930636486962739082642724270764194953897205872986445061249948563428215995940273813903892283754041014324569217823667508309890444362354901042978823052459453847135343140471688235265360570923134986614902390629688503461235989563080815065153574330355836747672208770435936136226835945436552495779262457500862620961506315599581449926802726132175727275574744786065755562853844336705443080213414893609307077286913760948546254167452211469411339125719264840646448904019880368781959209908245259346552416522221034861654981333020075399411916125641847287293607426974048935090160846187496468799180628159367906710544979115508849260923523365271994954756266028614509360378709702709255140906325739983585711481137710622511812695634622137509046356940061172907840870136100255102426471938877095968330185531722108011407947214791690530585889681822541719308536862752402156385526636240746112095994710616854453626426606334792661182818406406740769951450855658781927826780361292238804465154135843177658161880589693958715983471555584301487511386725957936744447387614221483882887104264438182112756174641873890400931864077894984586441734726830356101718474006958246001410026791970950873162028256229288568573271156054959295064308627805949039076522288283416336015947597749495898782962375565557433000105756566202984304154775255587160910525565090780646636711299097358918016924505865047883465376021433964534934798078219882598152969836157086221810261694850340647684274005901079429882615580005969416754070136215258068428014249098974866855190747401261577452421839613224993535905623181362160437345658309678462220389138675310227492777653001261521248011930774153847581092430004334340418473571244497262843935540191507372816769591228615399647288109106643000452454668982055333345011753985000608839025292410230079737969479026929512121148971260978933531840134731719827276661566396811190081996255666484473654432283781242841434412470599022349200372329881428631893003623827996512087560740062410968542177260317315266044239941085779443249668859194353303681422206316557311254907307689111440950197457917971415721856348821838316560682574232332943627895301634329909217197301564184962520597943114337415560290957651075037599106821370985110589639129966763931006791906708005210395958351545590980411267898639776688830958749190384903156392285654278631869223472141710223469439383792096107691666052043430222559856204977074934313822795169836127248804241051349580354484653487399106863895037760975207040791085829821574207521409265719342513764537955733311480349098502643600691502243153540804488403672335680461966185560879360014894649778288395032403334320044055205517240504517096516148666524958999703339406604943449023746954497368823723630814040460442403954356401966510267732280485169012563974503003196486622209749196354977917999562283372876669226612724603916804031410465806466792758883616552778483699087599931246104149125510253994823425626872801028144103912341250065735122731618274647345256803851244428207839325462277473486787898170634700711790092403986153222429599508716423836932367123324987732112250773700590227894538233846832049112868358627175734908958647187216125371803534231772436407206153401599150734854058958260434543206425161465570814902574745673801453613561471066616053227619723284166913724764642312187421264578349350703328258667475305344063938461404686374707923067579339411542097449363314002603155976024566440611411351416917242901874921452335555508881003897687256952569951672205505271650269452760445168166575069539847460646219454720423211040916940661004794620432393483203755605172146300134368871571168778855535535174311830551640554198041383611917299371693452067485560723171103459620743767415530552497010186811821087360006535310317184704061576502521663984684990954644401957237670937629406178357325215237287503160317824433648012957543774734135593721131164042281808214001018507142116825625603526943628906392798000972122230342136840264521071209500484683536533615805178500984172047207545220063724270489955033376989834171454241345861232961109167844116370049212329483490207401042532007885574886793768279864261550900907170525851041460833215520597470522545222290740169462336363499762024742313545303237708418107901343816313490045196020954341716808699299627600147628156106070991122513695092949003877520637943773904259101623141244532859928357075505974936146995401173419363684665535515534468874761648150322843574368160530807398206478039510986712741033783889409355287257055783149847839203356175875636877340403194625177366534510892038723820044245175735177458353950919385094527121983191218061254878825745600694096910692673726326324026256328672030633365062763393851871199167124478909045673903313831078072307502075793266182196238848517775307833084790108146821326786704396387435391150489981348350384936524127923654539306040035482407715477937173510112937364303371177434022534397437045622330389908126138098734515144275037069327574106320848894540660138505489855180559245318219437773455664565674695072712904292992631340506709021140843006114172959864087628764774170850067839279866009219446894320113866399091239686143159479981859832635204008071169398878199630706652705628060307886420110373612849498735624480721398863584057024627510912974252695899058581188898110786949480896087920395150521447763437130111789131324336973607487822284058401929317435681289560629231569028075048772309886187593849163108206512523236992197334255035808754866597999919685574260834774508242387913083574213481200395561818480755462490835642347982304769995647861730282049481812000116640808707273135379136013764544078679112724887115280223288507739669539703347478498131187814849094491441095451503157604300719665976217174197594210439909755855593420552077559551866872859717915242029702250553756506821331216925900640707167120640932483311151316615807373133827908774355761132826286381123481566411508950280868978692128816763554503766872885423578198977237611624233173373868758041686212886701612737771105274119597505521316042833411018039386359470341155361507834655915961842657983187787930621626231971519885533532260999350337230135666536952621117775410531973922715714669037986030129367184539514405340485445988769912581676526940508969722508771403660513500107396258527062470995754491130438016356568007280358186659231753328868337974778939057679928748822172123909069951051591323514130083783769647138646561966043155642952761359137517416228568647396966440762635435307117072634821153556812241833964084049727066556233232197867559329102199385752378539180287457745568304346843521009153488458386298401336141161545948365384936968353341135848340226581877073696678283462107649370822192903465237992033964879989676176084433188464407910980425326690996247671889380593991315638567509953716229406255274573739560712016066123479261933834320240558357360578713294340960770325061793173409075374258263424407132067389258465938363525690118785019244895134595296569457547899422752664763551167632990657034927082112212275697798972805172342813405214798830758477982310062970677452580841308322057596734981470059288806132647523139877678421709904638234302712294175278496418590592552947363376912999047875926368063412657255945770688360544551332104767232024962036038207092375069920365150713154832820768353526925758734723932326162468636016300096336559168977079260178491015093671739218365281403700608292933286838610383655127989036558044484414541282921084906245907944118489347621401676194775676538982981437020890184234732172810880063605688413083422098646631021358057895913481200005482778847798652259121321781474862777538428586042924117080630908125165299315716894928866801737830838924369566822261101945773297743549181169820469656536588073856251853126102055502950016011235849847162648838345088209990160292601698484047507539372728671601212613177841019716141387772349148863320957731643413950905652376541872877290508705866145546598018824907328881957534112868006645099821720591656694893146241633382822552023044569537496709472470755171023585884492023578522170537187886346672973709875195299676861776466773021264639046532707016129764789463629445375886768279905923187113239637070080786840635965214618144691291626021376156368926020787480564985699915651870277058100672676739275617369276744853967820233299797262947028454801203775582514508215302407173402317393250433764825089919123729593315067995730201554098347670395477560754769621765563332650687208460447010305093197817233300651356837697068343272134549273038456190262461008296103339029082561926430934183260570841777947299814451187016271653861282504856112020082413926956452530568572259556255455588343956002499540552804872381929475146645593862229028001237866288162120718366102759910939828622863454544759909208646032738349245059513361825776866698291347857240653513789540571291284383349117435628481620570600779680007620861940477558862138227950193863621978161401130031708123676984477358073333935715532971257303917563059931011412372653442063983196362654001067848695079367786502166820009905065115880843640182564034182665845066511927539848426859300924039223433572795030962028425020206819274617196763222974180267272444659937593215103510494691894766695189943516977684763716274185143017403232846351607615927922225522322300438429716455053696329218285930291773697716013548970903312407563239398110895306527006713568811241849699828770982124896343833832066206619245673274383948822495489996236375214589248668125037825161496564658338964569144832511618435201097844314549368748727374365512360107078498663452019352263731634542238139454465690709069712849123621009729442676166738966898463143664586350112475987856877070120416020243836015925676138793820563452534855930905563933598505348267915119279476338874420064839887722362202838572646679358865945987927782579719529279976215513177239098887926960718808498871147614889912679565676919344636356848585333082304881748939995880730769778861645333011082750987692225696715810570262251703869804972951714325013034837204435831737687766695539903136535857181963964056691590573435519712201903596536197149834669154844170090498792580750307796584046388417693026476532824076027591310570309861250317395714304819641374147323375023834592142740559039307634525149773304455348189510883768692562002665574427541505631269779424732923510319294809407230033340868686432835519289472468911263640796540418805140937939942147150897189681023698727667502906056720469570673112441735589351112637992785775291515121068272672597930712600618899177270928671768346121224907301386921477697120984837561641489762142528333168677568940277265608588186465686220422636343679976455311423330833314554627823381994835168778562577066913107816525809799610674993605220796917114926850261307492437770287516853137262865883353186868571812604669262115158936916843826425486061633202284043871612222908489380954629680259200395544781614431639449716428985078807579544221389627793063086191716921147023764641686735363180666382595040120282192288781293820071048657616420787095213834545533978403081032049104610649554344528995986349733407738877622664813387279089466108663444518096024061250736799932050584929879205274112767917308249865518628207705395970226802062128804151286982965285593527024315953990091975015408355227193520851323225462478077303406217087939022167581717741242560866895132472733251198197692173562545075597702119502356687127114883887310881440289312263958440329963794947973011034488962718665716166155363292618066016237852253467607735324942721560676070625427477508279547419936493390472392104698307994972812150182029228844835322680402225326429093145489077645613645452542567564098806073069910211305483800611671535359427609230390321664316901705951853668085083478938508189791660071277933520203187271121992990040745253231513120223336509943158876780005416988863854820691119368794055344378428456955370994063973901218330585425036690751182812084333392767217626756285714449332317726540818040466355896377440185108301902766023080907390328508351397639520417939491517599004298066272305926168984744824771763958095903038421987725259315244006399808992304362249330181845040440880632710650251383206299493706790378655965058579773132309856058808593927192870194806592122187685628253606603733587683224807114066321397296631427804986906060220182527449571654972637707419861726884277104960406228610286513073274153150357675917080500675845832992548524952694570965806223540103588036399790235267589797675567772666348982137333133729797983154295844127886856797091812652328775340150832522356882521374411695417662446470365041644814950469234345358621402543174350122293328007617885616511300618658946074808118698902192016162382727377789685824296887015584963373615950606335244432169796525754424960188421681145957379085918304482447206073958665259939657751785000999193970756473211270491474284646007470728889782135494960733881975531972995780332091901528202886528603309076437585310513432492472746207846250289104908113888127921654375165998039682774433744864409549466941431296150776397232485581306502458958964853962985268048820068195178856180685243384040760047679811881480675103538735148089551001150405885856212851434167609563557478170167094519171274008444515357805046417744453313213307452106695786987850331996414944488947077024433139630787819994916246643710620142427404450666043567021340428458058961773425316401516461374672328285017875923717943803529422314510877546182998611919658585564860957770646330910103535035391036425129940433065366286599138263804881230522757775030398952209964395442709102196537384933495177904109361237990477730073568196164442422596929169925591090422791923794876808548610850979191779886890482447240532106797797842620300893856144991230099990143983323157475337899966914457111124949014573917501451176244875391735583336110340735459028577572774821678516785323460107483902566009906745026310322850684311748860075867919988051342504284188167746334934657494774952643577775411380437600726046989206036047121662797702201967234522257087758621736467638178565588957007105674551677041336790347608483457571168953714681344261043860540286689308783770524442361575147897076972938587215477477959389375528273806031107039016867277941863910172097439136520883696637288101828175686494593588562291312740829086071850365328112312891781443850718337960551622617885904497032445989856660647046233886400540227837706164024111703402623325716769197654015700700426542179201030133931589641694972074308170065788065698718014522063240550844070503925608305417360081030873216734276045657372911035202572050041197940821825035473400321912283608260451537230589092968627528687047136061194958023541548408439737926941748791802114798185432065802561419424253647159450467101152799209373230527163434824626963884385489686269412200653461259844734331677906331287106602181433430928364390588925293054195644302226840298311904141166608368883835500385144622004342569410918961542516469996383511819257136717315281129661778868637464903528499195844392085982351898805391315294041132573062468057386752055972725166802578762855349504525539734055581105866841742962807891066668977480790561068882673913740411673175146068678759465802152400287615551028096028387542461147320853067668613099702266136916617434618313333493070804886903011414717802478074752145665386074342689367648233862003361929335458360533877515473776804097546647221583115621392075856068448426456906081321522754875590561081144283697865050503021603011637308805052131858468510309970213781497530137420940623959066620453889361429560518431601734476037518299563334879545435756594097260435470112733479408742156745656445157190732738143231997484599229538560539750007501731038209218043758128632093070060176225550432511504069677929473167315212961068237640151150083829427623410454863683497796979172580081777072785509870250996629991623218690117199064223347259071046230174150948845570828190864814091291758269119971753481518138829026901528725567254470863440629872797224534032772465300203893329553348237047891654207311488103430508304434873803302994548459676531149544654138711830639398316450490115205225357294949474715711513922028293150450596519297434206933427371026533883326028090730146601597190289209231143034879011045518232112313838798589871911124835610212480445066213138962958260035939519352257452740534871313980332969457911462057853064166268496698676003176285324986372129567069390136220401306258986499896622707185516023138181186947707392574299328852727450852635459732830702361167344541599420456218081876662360184694194431175585512339565447889590766626240347316725706678208935187206245369415960988485198966312013402435080613760129614375402851987457463927376161523476628746079455587945902473887338872877379454301715402931289252667159507776330188344435408223244215695573031266710035557513129231565228644586758926193459627992434864638970143149240902038948818149618579171058035589850694522419172351764521832677108038654798106091144208149401187860712187318882288291726551715539876338860078502638178994521773398578152405269023599353618394601955285792349022001757916293810684966660384508353261751551853231073561350578756882649984426873579998937723968603330001050832412199112990532148666355465482800530090452331658496662714420409156973650587651577868053699927488501500321383237203421695708444342382933263455530490839052148132820269992213516958147776971697146696666005957685153812595407453072356423130247967769561866442108028974850540496100104629778131890685452351020772720789984463216564785461012379143501128871151475598799534260374847264464319021812525183632801219898974882778941343179323389869064652527199085234191616720650024912579910814873239857652793683709437408880439412382506271006974333390617753531348671891948713143792698009158544495693896744091450142579972584172906759311692138995735022895924568008838378672713137386383720136968788512103495478761119552804398944312855167066102885367842909930891976024240489172138779045442109357950567836671822044339704440728432585705955544417103874836538807203925493498203008514843339528312593832327697173228844230537225193380058052799162568671732544541997573653461448984548751605105429181756573157486226299980325439628643796777428669226383511114693152931708935819589582154517238835289473977636829490763826775370914898947383853949062254831890233473580273024335213386429578221468980700483968604769835195389897554018420444973608305060697721370926000016592742275371291608807475848612278942699159605425903047033991012532640357978622871982556360709905371203204956455376316331894518352471183797942884982500934924228265869484557694959753075360110506834486414487560181770999619116172860666415211037223592713029398323984136197046979203912821283088408549094404714435272033535196810700559734148466900578113040173868301996175701058238917263793857403835660203346879004258698281358147307708845868583405796341535754549185910348327917731944179456191763249550254821489296661417666709914536914283850940197835945611505964795577111302860764512997620605614941925401351617185073350572303397249010843848246042738421956967075056620367080381051427264449936494901798278851817786733134441037469995255437811876509217256813405881122206479127673133273187051798829516823991325533050243545310028247465736698339361389708181887461462750415333851581720519989935109384285603409630091447961767431040063545713996772269070908325100177137483848446380259430635730964463151005767891950379875361127005881167273094895105836608209393535866899923109290356817075219605473645572913658825585212502431528718349507865469500688412984659384906957514345877374208516380117412975055331263686335392110649231497016257982003501872558595633308976267898952200563276290985533243693897632418462370920413638934735042111721599050274009351590429163914415307708407669578139426145199540667263850710432316501630892069355571869282143793910123561172638341832990563176950566252656068991667024264534947484498966121669295108455274535577266551764044111960380326907215963130630041530709522723284136856251050422087756448671610978077097545801615448671313441439210946205337801544677151298927587754215187096058310228680302912957665931448836578771574977419538286558380980925050251416401690745428316140531852579131823724782250132465168566367364704063148574288732545741417921276264938684693298858871042195419149022220456718260281860227373111982255389682640640356484787360398151168250333260449696216182054399191536914396530242277581614720986981616641668584294639531604788546440627885284384555686691901130183605674172729751283519417028293482851303397476114125844907008615086985423705890976204707403976460612588202679032984013845036064748169182933338686839334232916630849267018981896890850033594017044599301947913011670921796531868786344982972121278629378119498341572625415703425049757066957665549334119124255286285874247255455100365360423749941191549305640126998824263030310569777927110143460587949547852812771109737013730654236409309720629484861868885821586053755973484312652036261071865550494039277351196024830626523625209125976818385946100787263123960145717851504562922300034051827882074076910457404218518870494848698450983199855267672114642239278566770459764245645297367882683890042810026668217482779131555039426023503284263805134937029000589528064892234124244751442828927082321620697391621538464921833839467547516131132155588544082259736161272741273480487601326308675814498355587594830698592664555856213526657623157629301223950592430281628449548288419202448244049391371808926466490767855716705901115658739907454904515398020199179404302164383044148625538737885453665613010970143909020574901276296194725356409708983189108587049876912122049690284517693662640011181429268650640369153435041687197975728217638713138768622253390921314969962427547016842863891515708940015668151275932928605339009139883286265184415732596576817532166738716964146724920321274688793723096407117981544990025487054384284927663476315991790768404548648184471550845328410739157538661008440184639056609231028442985264548671970553856518749682149858536302801089074636262117264373060878746535776791497455046861597666739178277577129857857386642532951440768088236279390911560292875597430061165297886904515619397426002108879277371259863583292995362933932013743068610389552869428997982314229909987388847527532122879648531260903041812508634783703230585386008003960597630812072080368993979337117789304725917678154988739230273281372668215931325389971431226541234253292831644343461851414847823275725831908788014715053300432023189254814641297238535368897647173051559837478081209303507461537921560224069919971561797488128104733293682045462427961308366979209259665515288277940810194020707311287443952843903088103423606377506688544932289888782842771751832268169059869877739532756840357045032081211313370690883233055355081084373551791507900389403336132189128758880965859659516937132549200059801261440797567129335073447594247424345415486389327677217510583465510351629047265503997829461884121156826788083172871897604253668306770083410416131853795511173239945906505750035088807598982674193238150797354625157482280681780665439583406201252231781596361595428586092163189540155814265871214767312696085665972044301944685458742533122188189665545425023045991109435574415536641055139198423088539625723306456591803472117851265495411104298170099143856706814956895676251738171348391094249014161982136462385287661736035939596188017497777028031676704885248100798532852804385964446675105367321867087372185755579357018756656478143401371562697056990656955606247161596887178975483646488284728260930706854848891117214688548269027043115972407712780323863620342008531101899463007825895342651521547920881051558400897613552217505669688895124878472291639168072124232881125321232238711183125112577007641421854877237738508178803869450288876405712108349343892341196876427578496354006543041332112072391466772116317659206057557692199654483521325020393844786670262864460187901974013178161530987451974588068729711003821907441792320435042126355300863125652216250452680006855828968838282029620705539618755711025241006771337033211722677153580990137231152221778105736743980242746847823932442508463325495234514254389429434649665425596252448252619476509052912106744425242292177235575578788132112356496800214229642476523563101637807083201777539494731117289589085385535362834894730779639018686316091583447543628494247694180431919356402007067028926341351262496579703113588166488838712155320151267547974519676284005811231401138270052504746268772684140675847024795118411400269897000239510803319392154685662601983472789065639926535100662012371921439691989828694265709257867767390335630609854663204139176504064034802671257758318913038530609937849480810481176519317004423677478285289762327993416485578949651697123942993001198963127179746824252116335555538632188006463386204981209913658490663198042178546799761037251289206156015938440128837940429783714396674623884295721480831646508365509591269934840287299200743775015845377753549077135338851282868932995892228838918155227177706962988857640326927104792681875869669092523159589128794176074671178429426138799090919924331726473208324902296992178491807848872771701844982919896945993515789863488962890839073655691266282514494112832057328175389366701859175124366605256872668498493284690610082439491934194955448854596253002850119824251937350494530360693460587052889821003843947956088350311301804261733990805699342853002862062186887705347759412843423327981009966951977485965234938498583701481366633945700838961023612149787647633516584415618429110533663121325453715203798484223728912071036574042695320983629891813824690195857257588417642313135384640546495137855268632509751391318498605084926428449343352629214728670474352326942012769297008266437300624880148764170656453568774039152582376542133539255701967351722442500334119995519569551872512894647214575896971488809149172191574133980481872242324250629301314763306412603866947116870130521270684858708850152547628788454479746159494067698652877208515376383769949284412807754129416655427618066049564272415846647681101755914499156926624544891358446303650610755121253973585505932263807135621849665740353333084624642699142621407212962365559043070197364340376539735290344010152835624548287838861348854839559091861474667206361933801994569680085454795084718713405814819474986386662260988413272533801891323049659133848668921544264981424059660045573398966489374673001695547696139843029142772572910612895091880648916329997485587738838322982784039324793103460125901537696100581148344916234132763486741201377351589067554164588238680166068748957485696824096179299864467685261351250233237861031358991504039149639059005853684004801877262318055556511207376481450310934136656380276767236543722978639098865613130863676601810663634530756799369579426068089453366746793491759696694996032752085055785118626067263029495174190182756694318690127800133439270839257228656681640220499239365177549741818645027902710630701572770735355715691282747703261560972917344881144021626421475499993499764340675098532400868981052218356675450418767933432936986854394020914894224066841120526471410095731276057906040587817788587852152393787556366333944328629426316921230689871890507251872809546507074352284944228027470758086240720497424954410667846607551820163662973961469031503974813649802578772378910270835835874459306701913227765731073165254110600137078105609194022707745873221881088890091005583768038107945166701650180892852770565579830931887841763302213501824838164296406121113935579215558714030445582377212417256930368801558797744351006749628262857566435765901368349649536977403286732119893536680709588467618224977481091940230482607474580825672909359318090006507654495657388988373491082420428996878325835398124115548860420589357080663044033946789649979845625512384718179078702399328117263475499134069625303494215125770311222377225409093760750575823366341917491744488013316786478181656210841114771900716029707646951365380399429715555713600662732187271286316513643674999687229784856769732098967499848576806168935337329088417826141024259044821068216873879764156080662479883282059605810996300649061851151887869717712438022063185663160217999691267899863581606805013759113188635671856082425028190246947707802719463255606440200819835465240587333724527059209178489651792358675797163846729808449296915777198468571933463804980378558707213514210477510313648857830620741987844280778825458310019454315291260091412734422856633026088054412340818615121604399987435832825757329570367856460523487315812655535037074985177755280153860739372771825247886162663087946740184375944529266135337028600649612678184703465967322633823691437572437995216761503444795915594427419505694500733006187111952740745975169744805895327102886824433892993956090399790562186814835001976498375510702058561960873565706706482499224294195685457737632407952192596585778092805115892291245646882647809546279195362636624178276289880445932470037160786433538376082284662006536976971581323582322226388663491793421661522491777014530841686242340238464054862856487532955301485647642821368124631320526040497413124291852257825210369026171374295460528644694262892691820226822160072463023090756003681883707375487460583150334097161934699533544569953581216467025599945680488261045697515982882158690635257256722057759459953483318203811193328043269677663127822359131453377779139835075875197283894869697488388885594297469941539733753517142670264339514886485114363413498036823142616600048781973690315044966283149821279986319476660930645879514407515409275266262398656836947288914006899453804323332685155287634816775530357309982134404115114693865251285398939370607808303976328188577354634999346864060548456050759946929580764541583659270531314519693566653140320631598887441443944740593945104290886359086697329303912977013043354044620079154509222199025203731540357437805461710253647176134770572937728200982859849206707731569454019314046369880730224015947724203618615360850349114738046245413172773278630931836566203638255017789948432510088569359196962724065907506125307142615686212951038251893564561389872082572848609231956639396965568209047897375734426496212579525764418415444085658247223050318310225249957605507214102017269420008973647681806926652897209849852774334235706807303402235535918731442802002640523954742951857247120950585219478898507223670629890173617603682498001870983750225921351056020732450877161071794589882173246289840547184249732936009795677356281321791130123972018875086015612414101931003358771699877937921250912879416836392757038738947789543832264661965584899134891711623964649923211762230170159221056621951310354509890987569108888560243848421787236632961121336849710350369689454800998911927256648886072768076779133282216774422981902741343287829607882501266070941308394130035479274824826014862103286949856641811533214228285182224587016640139788730939532154351174688157896047835644938630696029642242953442205542823614034445735446923185408687276562224021264581004305113100088010803407021477701313669798979356989580519689782316397279936502030145164726366512171108831012078435010722786720199497598235318602323755629459232992858000243402194208629918622036804819317264073736652898411898654484562299134708284274575206440395314749567946598693855442932549118011054790806870704216302089986357558623674515517758666146421702152270042218575133625686620329516013804071311173963386834326294421845467787384851062821184623561478887206512417023837877983601710125618779546898469366190051730222883269960066006753030794211366262776167715479297511380085766356986249891900904118921517628396646579123647569390133534186631831283222354538265925757285877734657797664800239688560939966350832385279334424395241623170419062349814133866087750387477545068004538930036562056903101528416946492165890313534808100483089936443131569634347657846491227214194739752058957294074196349335195373864380614137887133894362682059216963661887786028343027851492286973746790619331159455269821304933242387272177871775539413453591659093495383021578439611491569868777761270378886134732308739099318489178942836012081579223283441765660851602049309773578492514379804254676953158835543215381427336511608111840888145127730281978196611424157479634045241365886589209690098839595580560715483360895688621838146508296956812833024710154731272948458346522194291699831855925362122200202165787528065543628334133736470903042361963364155415673471852527186767246066408805577976083597640878389918587796602285735452870277079260463788543609197426971996873334864433261618322021741647236525773322040918305073875276838876680314660235292706488676756727966318283093491686258573493508682112212894322310563394487102903773425449984292504264396451276944867864322607946169483009001572386506937355430535080544059016165883578127329563159653251830068473021071878888177093738520499913976893644135631207066660085517350909309773402303318638502515853280114279220874026324362984583326629053084335025274287777528925192009859845152408541306785869871171522983005432452208827192668197380974619320246991467911596889658514833501807385217199486415371651416969158441000640455271994455715258169063502727300005195103959883091002836545097373922310222902133030546778345116489229667475488610204607926191112076963205209758714481831343753126905469575135500079247536294488126179166707946823993192952763228660154803965617407088909568035692937625406789546193466796047381989510729311750906544362277510040784289145594228338282113128580792436520923453785728419347447799891516299147100590850592874060865807583200302614011324957976130505908105515917859639617082158195403026190928020913573689507460002873406402729443770676681381216006471182835803353892467682058119331932253391628635036270075324293569966314537381378725485178138789291464459943004449092120953155944470285545109909733629505774347977819338884659123354133162398960099899464313842019924486636656676244678909310092801438137879793309997800237508271739839325760293526071074701320267132532986583615861004426925535199516181799069512581506153748170335022024849389778983364873383304918913911235064176346361081082711670533180519745019847791843181782051986018340749363001887614231146820338599105324822421899862172797869797154265671583160706455172933728530656526926933001407919457110793372571012334873808331730007578736063937559287035758464118820930722876761769131773600131443593914487705728612345801690199027723638463579155880942134578638309678932750080997506128083640765080447936151853428473618839547713821200351749858979946994775333535294239304451637066269524862447444870554794087758183377332870070765515151435853497659949138360529919847975674937495813021194095752259832441400532922019857461053784369946004354900194938221593923167039138809267274277542179939683550213972570930958553254217391995236290235733698217842561970011183854359695759372108805427508819004038657058520533213394030701566878228955170300181221333734860503929102410961958848445215264665496920481905421607254048251229683089484960686231428405476725842714045268909320575459154472660633644971097847692949386733284845520138226799143443105056525009193077157172643300444279628982092174059256978655246475809748746652449635978561845821906061178313875191007014004721103212155480608603038549124413716321338751656864515823236313308267982108696562278860533481976587329078112984086264713064817712013764847725840143555060653564493626251173922369112509933301068547904043627129840299856347023057008243282169378588097085212953492997687175692556636359662555467659022106148902733842122833055158099110740991061333171922161911416021509761496850887612041196806514467365562200141697473005426301197623932852837028947075683538434109414645086278804389104113720494631191911043461868373465270186269775150798356242842536145370598062075707014957890212637315549455620822916238820870825220911943443376365459767111962481800580768938085326844744748638404436852712916817382897783563147258427128602207574271436942041836148262689902332593514692362857277285940012511024043850744158299340488780555905926012781218800797340446448777513771528064128349254577047550441296318575879883774022746143449711223463906869735441388890706729054006138182986323194494395250384031870598948645181123932732453376010757176120888279071474147032862594179631673599401573917399295331271060799076864096974927297692234952739522305243541427571533629460832299992711612452847426835272059808545920405892207335452328654357729323190939930490239678391039952352836480567811612544708677259448825754993490842175065741254237560545954646012902582844718146511612755765218564831745682153483680117438022315738630885954221950621422246432749340624519622023810779060624261059510969512537191568622213028840907193191141159537799419775285332638069593324633045635973467403273101891318095094427664618376835771500825862822663760758119739314344658158682538876210534960981229996008391290916229930153347861539388336459760045591616812510150548787503617945015515252014216604789558732274623675339828816831233218012147727659197256273731652502957466517495320952768076476126434091730215564647609556919091077692964333043564349962987596842411994695796797533177237540304213946541798525053803694955735105958620620886687391971986224429508780092416782585852086097682664860246869501612450563833727649209832275375352862662545027327985397128285678918886947651007556799590922851586499310622639189760351286009781765892819605768650194403501608508893705333495726284844411320662346179565391547681448133159700439149210157055670113726229848690615693104065145383517821687457265518014970122259847206826565577638585941253638310220377866962028699250418623565687414331426869089257494336031322559058676453421990794862383123890539327314541091784375662261495903407478090332171877824249596608673471709697474008948318167522014605822972005026691597460503921989416509326587906566590880865082143454853339321257282378761489314565988632337204925839214976350066235457276415461661636639824800407790579864365896871551749670092790171064287756667367349782749483692100817854502997671401128411452781841606328244242856496664188526639952365421605853546930407647248621375373116303245553955884972559883380455469217397793429302186122592619716158429544789928183716669295655760946483645495473194135310590136124959331710230142025748433963066701277450734138754280558000919267388033775360520570450274270867685126583950382180927252138210837888238258708245467130662840701008252550775381514321199081802974897825897819521196971527540260374628300060414467011754276059309014914366785613571304118611292692455564157001410924895692662723736114659367940176213687520467894933486977485342643145757559025929621695078423345675034133779158023339491981616459177373900824370958327262052433548842663065673360361376805786518375253215879974126334848179312120817101425035095452652423468712492233078924021540315938080152820413803135905128675668786856642609824088594341131188086895231569673171956082022808297497876786713667216790618650400606027759993043982976268564752950845273030926962800084487730552444202394486270540031595044571899086093213759347689900557458139871741609142998136576068192250102968191151971181596875272805711693708905708897888718344137254602224444987597352727249649901093858236665239296989648981538034434021830853303460012234034528617914357626055819964062574725471863336062582223951209794031288796035052063101866506910163503148075635169445747855832437242075395608077332374137793556839465884419150918183115973308310804516035805643086038134234931223601232543459844371338691683199062353693959324401923349868902652404622420725403075319433662339642786226883479917354289837011874445418563793694149472887941301651006777797742791476876351592390682211343896442505132204101113952660554174191248254840584819777456049041465682346961463285487885091846360828693734015342655163630725136712533578035993323211788813032218768347210117515621891992960996263968861661591091255414958943737867814022174421631434343069375024420191952592734125489352418459604033619580106629951436128630393958892959040503656925209762750030186712185731174816416232142994803654442805598857200154130210808502140596509090354973629280428830645201907371513893019034736622646031357228207643390366672827198091294312662397420822928370615635276275568282291693471697134856997752852289165002809912014017439118191027657309540014005169812518752368571808335237022209010181512661119681494697522280052739866395752607702418810610342346341392007955653702002769687871587063184716472247208495942661470462032844638023931033422791063688289959352318396245359538644123930635791776504968051741164148230978080644693745148648174123619823157385412927691744806100734668706936279494940858948563268965174298392677320731621686804338363049456692330085980477518289699510632672298839480831979541043769195303742506819107805624932671119918229709495627814333653486986248429509135899570984476702374668771657823599547345086643834175549770843636661116954218810810590497373648781400490024965279562892598514597642162639786530371756047521233248157130047035418498949992405519649432959071580977191037010854386841484754970087363154445752330915943969966559837374779392159936903480332181410881744462182213124430734114274341193752399588329450195774874721679928303954756976657515542750000702363472364702402489353699303735912406630875118100726852988020219344276414348337965270411798976201937489842502819947278531623644599258334196148219053196714244610221907478101954280564462944475492798992596228314648255601255305851979748667112616367596721321838471711800652891042247124289847675717092974223407884412460992091537057960872947559839426582111550340590124916905895140904267937681735561903791859093251826866659410669952723046128681517141571581837980045797595083318440884178659073502992713527520139706694949105652860454664608605178523532274530615483437020355524233088752523976055108966768546218199848048513039099017728873675247772915331474419965272038460289833242934813373945729413454652983134546411799528585447545609895618096491923618405162142749251681764793888059125843437836834500214809731016258773110165997327104502334550727900391237499546381760150797771614008648772154362960908183243227098881010513006365363560145626798232534924961100913298931894516096899727668866151026066567568517534304817221409267790554140042696764708353910347991989314995952773083381143060687443526607021969244259208635493351198842637825348327974567706737853158479941037644123733173385323514034105633579338648051746817532021278116743589399233850668611665061135661727338491030766927361707163088796119382661860813177472429960256107900734512929565329084414334046842198346615293940035778082895447521880733720018531865727892658875327958029965574138228528672705799700550841836646846232786616468404295094807062727524943883333606970241799629953442227466042151597203042795967573315614286248221988914469949790220123648891720450250303191231605709521310500615017418780130733607528855938694152615906159955852034956912572732073683922992360852866064561799936390961455614766021557282481459075489802095153053547655131891291444332595584229945164195800658584291115658520429538038444302607829939433148709964946565720315859919578653032106516821915198745139349814385554475266587689811188733927881150547591690581588122057902940420043775662157870568374607675873472955561808349989975465176006003903197288798956076458314865470260831999978364856913727168717833178249801210676768303667344485577691503656091230336046548516981204142950249083671169173748566749822263716529708277230287543575097921482694952230735677344434516386187911805768341055612128762291387285325185477000409542183066868667220581588700282750612076559497258759829638366779274098126260888035633925224893004583961212724340679737432812545552048175235895974176506063813106531875269014038036358995491089094776243360262353157922719678774523272666595423411555647600894874789170092151816475116831272076751254220092469841728166486348013169722993277536369672900035517123193878529043680652928666596967499533464814414416522541483402605225925538148026295641253188902675667737827114942502946671149104763850297246210635993007707823454173157651549354697254844274610518614172273622830068651037521017457002123244881507360634492394578821074167961592922248112894955302076622195395021811606321925250435597193831902254648761689048374769046124635661445124919218696666270484645808590164358505056664264677566731669517782791468277139903933696618499873230802060255006491198201683347945526501438175753426370509767250082586189620257958795111815751150070240884916500892062616494540324625071983083860530792374719243900132359479636213620491267065175303953780963464391887204583272429818982400869427721706869287863067958570189484371322858303362491044013973502423688163416776341961789184073335772904381847113067954657174464565948452781955681433819031765489978858513543793752134889824259595631049388854988183614646042832348638795217361616989188315349268258807940924840299355386072852842671784473996928551555438380777572294657377276094165739485817042063138649570681405876464444676912516303615907413841645965124569579111266584084262647971709828474259298720737217297643246658433756911749026347529428032887240386537755504808818285439811464368335522608794720343118527892375255196858951961841004042650379984632079190433761184848858597456794698928470312674112543198779897074462604582527721733939494596193897337471351427545250234177477829700088784883321175224692375087222346367826885672801913611326980245761920973007459198392615066879526470580526396981008309509508573474831204196265001921896847430125995504339860070888288114066383333846923862841726907374532455994265672731346958591214797369974416851965567958628293513585243584132161776605945317642955916889417996474559072689319968927814678727846006959597458767426600753536980071128492895048003748974772254637046440125753690085706558228863202528432287581302045492030744600893676651898266977148987823225574406536200058835348136414567222094751401045063367183883853527082986109159287066398817963826153853241281653571845514298053272810462151767959909852818261070379289406092660921393655615083046153617667470361109691384984011162072185448482107346450461348756961180635286618863449893977248707269118191784231594951228003688926355916542456361376977701297444432048282583134860959041592038888961804717732031660471079848383347921693421934414525989116652650881858725606469437131988485760408452670529968944253704194428954873162193019324422622031101074318042331340794393934066009394567094017476735562090474059170187991721217421724807338919837851915522262482758973838267698732646222756981589919977219212631444965643438713217849928447246053177904536160618013473201066654042688403742500566733235498926303065228438682165793539805404899525466349740505742758238845755327192153432724047333692056522623218210709992838264303268771554205961348576581105745943661445241850878323177602267254335488307023614379825348224299369990426418927465223949432698854040502204220121507214703064486736156057116078660133648375753016098411511422025487423620218342286354431975064124689100881199560395308642930616362145417354033967493732266899487205165838664215664934009354694914550750148988887286566814506436731749976213304226209668978391855579103215253682956366854837565108035255535679775726976313511188864033973172274518588483592208024784924872040700441707358168412877137544123158913641661061918307565705790373356201461985562021328721216814960546212734221835657484216350045968044690525844452479070915639553318347152831771329549804176854730927662447166020064703532345139924724603969593691281547846924906587448212713807735781923211880589216743799611183446734892640192432641958582644106741140939670502751766251990898858423072495285873617389684441934196509273566791010078480019895408974986630609368279605742742968434032994457606897627845760457544963833009847604120729281233619864849833519092850712929927845944592413185071839236515665395305334961229257141597443805706708657459694560199148991775484909082990829203702856019539417699075676142407464500047779634901188105574620149080736563117003507711465360287776933208808592947617047774419585045153993942354348537832173489229836860852686267066542749091548621585595719924563930662818891740285531011223953158414077527280614244993249188616888238630816705672866362225608581604947801141352588484463673842862892717569421129350055808374973598642267311479029567228204119499152431632218885969858537950381192495220111496294638889151199569922242706293871966475483033170453963592420631912060210379698448121161907252557900128855365578291942466878801079178638810904949330037730855727124538933275097784387718707080775756983798642393040109220723814030771768928614074859948436966158148203110765921382378069494838583788703834633694173950215684562045147423603365791154230872010456719844496167799915684641778477623962334028493350038458145422438130442384984757740963789763068342702151282511223564654339963335611629625302656824059918694649316997004520568414307782490368929863416686911725456242494991363484912548471966949586748384877478345991642560371428263927192725716930016740612202467554396520665064299979555298745620016029656460001833265835618895360244380539343208212224240818475574936239209449277339278868806490521503986572089760958011789187511077604286963031512703850041724860903235304969265415049985096719908874433023670087773201625966889086468427846673478955848648652258847697543844747987291699754059951115679482271431062926076802647905242928337500142127772386443943335596086638709792107248390518523517802827991564608969860395707726600886327506627325089712039631490471855365110679045527468613908239959376389506164734308050593885403895969407890052233317764063288732483215179987944405486687151192060682338102376175676064977652557093201668801990773727602157793896932699914309191187949505470586491239787569473272543131366034557426767184478557373332705388712090200965341513228177387771569251992002927604668876965742154037370654841972666521326910139638145885515416753305795870559655505339643943844519890399123752019603207266434665619235398339378851391151681666353588473224113660439737787622737213069707696942607764879868570701933985166552702254963925081914767022860322004932660066040906279628402091070243195549801900004652745534053890052954498535910389560729309872422677945535607057749831350562119713094741728157344144463893854999433214642160435540915269117134546696269950136859719763362672904963228562595780207501013904439245978464947036273839917615706175359329309918172290667419757856646395410822484263187444968265834547609235333766072095221770361775000663298517633967686607889374225596232712969847024515948088834875769903366486731010296542889711702804044795172919703349453664598706806783156959437400844829420399775227258414516452589988309559859934164293527779132265687783827316451926349603663954157394026595524388471488807051549381705727154440401133055923105389071382692984462988011179432359246347268624765629347505205794388797631957600364280301268415267878974072354481898239353983814105459420430714904656422275865702036303126450804517298551939071279731816037057891701357481252314633876572610582137295956689395343998974299159239867607929935595169300367258400281808283603912631697860417788181704208839981583982165242905964505137540905747665708859702337420724213645686389833065505331441948491716046288581330796475380302140516417367513479899384358343592535330208696877730487570902807773973063899522445022851095738801673107030436564187997755850771599586934954414996558293950186370990479393385393152283405050944471893619095047982924498955405266945683792783240322533986519607874166713100740237047862761998246956268030593290272322234035550729964656957912193576372378842798800802081150163208726462200164312083405979424764727760250694224406876908562578438856841372332549773006222958312279191395689365512523255729236719586350262477780701630779133529777162393204684097193437120101476138466325446275785643528014621995692708735141563618195982212812434520227112045395623793456418690054073916954227329795400671540904588021454450935465024879927670801471837838266495616524054164556376944857783989726067587952453682498279540795308121243908475318385796381871094727167311289029399944238376375611919150946509583129050914871439149162966920935885671975080200200338820648453467311604576628723441617443563548415226909396018746327975384825993614810243252764458243797311902686922521863813802104549537396187461602965342406775065091575226842203566796666005304693412954385166738057781864653122696731038548652327414491227549286538034443783852071362051703738752953392014836383255393702972294173522559302603348353454059132760726140582601577376307530341859968645321000697318466069756084561655663098471591665448834913306300287145493973306968082475762463948645792057934911027803072613115118066133020948838403847550137627356059170500162374221817390344310950465873541586105937409714512639693352324941733764968560656300960600323405120945299808322023733260671123984220153200060958861113363455514652711862123343671955026282598988872146479205127019312504693537907041240218482380864070154325306765788451507717299673091331970145224340358731459626959107386635203578097498203919436018658363544326044074167667841052147164397233096108185471411713833942530337269257805329580525902042766305200007307960286567694204711883185974693330727237446924062090333904273919160397368765405491034549429252831681879598306544485072876002124268239560604485478313511472417188282011738336055537371713706591290999715356860574241409089228210506195546647867214040756500424891779845950105956955291419468513413597468481731883449006042787689274673706698286542933409474545490948328816680343758806919412328056482295476119235744217759564355981541959116025456971762960992904790810581437992586136363282798234940304296631824836000224892223088863382122541662946029046919655001406997506309392809983176245667458698498763628330781664121154317315458799466011077824603143667814368732639638156307070603322150173913849547635845542093898685620925004700278810176711733890099558689100609377997241593045240362737024978028392141458194644935248812401608931649272286519759170267338902811840553011991746761783053907225863958263403549640310480928183967977507722141029020450158336275711775109691042035707698769331206688212519989032042166311762762024986008879762428105430414825903090474800360193413912649913796919605621973998261204553426621896419329229777725701436715282257894102901706314040052552508274172835547334082116113704013164511295537606513660683013920136177954389007785300963643861090264507823384066657267898001689552404066531296145486113999152714209419774852694482163864318329083457616712895083340695891814884247625598663302089661430378087532036481987367179054754287595589922427526327392641278211052457574581339645068422252621877281780351774549253156794219489271594592543265247836277991084868423055302224117065343595686333824759744867941054470771212106890368206083611071496050955242997316243430393751124205807400686893302249509877303118050283391462878097942386344127357726544124825704216656251516527956656220555625880961569266163215037782844194425119313203411837415762282029830902791336871542464315636171912003583504440389660518896442871326814492964608988911495887121296361268306226646991815716300049577740086399126690499520261745482659230592624043422369939835540270359435105080802460019417681032765964012500894330166369935354381137508427079524105158024729280516018385094283722965854799865300303958413037591971179123389122240549286707546852196409288811204420967162810231517212256460333233894747774109487984004838752369302358550005056622102950750054571721987544751836440105456466502391944480804319932348631481721979419541744716116846541823381557812249625828602519977329508717221397532462324357201872900600852448502574703641297255076393260906351046559787849991053135186927284355704196942223035980617822721877713055269448834303295420021450156968420137270396332475515256468587783787735228465261624388669530777766259802234868683629620087419384752885359526079683743819552732112464965323887417415768236450281658285791133781986339079765351885624853259849003001386810310996438403113185230568393613947999462368640707594262764477202192938664955002257515087715001283661760755079155541253608405533246556193694017107607309283131901068396216355674661189186359802313194786655766897826184733063071652775285084701779693797797199171473988181521532734521602085048067656965603177888230756660133771874932800619394111497820928252255177163709523865348023511980263497863822162750633545595115666386780982445074358073945530167817346709764008502180012392086441819457062582509183338639909427073482111233675133764150776981545808026121388741140133661076169594241213689111742842140350114215698749203452185474912112137646401053320199616463316445859838488130161365138026700977743825719045716638581266248567048301690470821585307629042181663798843031338357188930856447321456359035217953388067410992394088695780216996225227981212398543348673151413480372263564542616893032051617869050884632067211559174735239679033658322547146579040237543218392503085480931700049648052763912859730808804471576363212961976056797504335133235726206724234234643043664978156777551451089214344076906265891709347742468730862977857670231028079457217866609018042623893218360143409048599180591377729439037187989165332469132425781970374696576759138058530337629691944823047785255650679133930684699391780552323455870346904449104292325561096675480707313514437581149402717531124560035574082831118792610810901811167082358961740333766885246680672729916127420114680806539265380916790644060750697812410812977116289959960201163996650595713306433458854852631238671072755029307035808426286057697199188490967952173673398542661932179183473023808043384039584635402549626711286708340767079713396017294842842879057697446470797042906729862258569902283160779694883091532688667083591093327722145659213766489569176548763681776947829646467031767521676486757597361982283333135378031125494811787964866773900125149188231786082765623386835493353075672104283066979224161771715369622826560377458791219807182169049032822643171584727473949189134073661000062972707421031938686607161378915126824608428196321270250082771135408805813740407125970255171923215199688118477723095551505974046378490934827625256027367132991461869809324699861058296008259658280520942319878107557547130123570084940475122851920019838022567185955164609680032346593216996869523905803276180895458097517721805158779348100518644170288622237999398122552386320398936679010123567509597230618687956145265500026025676791029972013152062621726089874638190412734489039210838696164527163315281118180511644327264145928287616486983366289615528895314164011672839410324959154177586376544239128844391471121165411005644619010101765909107672163226893752533387581380635973876866932972124293767857742802100506753721334088756170951030866991619419209301151289982672549687979657740506999552041341607576509470355788063164893169267770066171522302777559148002178027460470080853513373489987256341777864752481186470350815337964914952464704918100747385809210546761047655483810991300798892298952591971889093240424810122711684430510344980271437696178110450627696878900399787052865941962179354100688609359102677364564063412362757945077920480597721249162763191863314869198829032815298856770991816407706975914834976256758759475027346059316319700209655497954732293599199289835366199909598505421450714794727168817677320272873609122221459248602478177190254630551882092662863481963158919110185445041088978882736884665835586163491780862625838512373865856574303194571324385795503221362229401563137897732832840066145941708577016409496984568506286648823233529419927119836602377958903121605901369732402273927670323622405587962776025546734554198733772089462312544911186060926410230529696719968669623049465836450668816788223634160160168057285592540180307454423969365276854860799875147766967366332165240076814970560609173069239054793364848899986427544455727097296728517912954348145195263548842314547843165481288266775200038387125422290271634605548959506856266487862878931162931735258680415850870961734969143201402607635503942654201209385847978995750389356533245915043166487909684845976084099949324328847893691449252659541959390541080762656915246321327164822716794428728640170046326751280609103541509354640777884224062581966766604588666213097140625222897293038314876676228955756481178875142098473519874049511879864503948308322363069076659034964870824625701121410869066784777081356909776494967714074542711078529108066169771913970665848429840099953011700835892707347677641302674377718529027263226564835286924067258849767419593204526180694538172734606805008376529924574197268192597872260282330729283660256056996644473871726123371523643040469535037581749431569218588339171608713190634495503708891395896972589829656325085244428470311920246310578548845409194851353725847425468893146814310927636911465555887500977037951260126320073943957428397992211058418087231972502820182232690998178179579472464961582706067127055254368492391434480813236107068564664316705931804207636794069860505832798822182727217942196148339871400056631602483022164479076224529506591981670495589333538401461260105294626811118066680715076223457043785813655351306836799465718021433583270041341820888756990784959065268786945851143875589443775552187188160107632414711128624686942886690507716046772616009161352907559917233674434567490204913425297061157904480020905303274557695149401638474869920396730249054605307423793874581986236924860562572835952832584233340919223262452087387943613716414046963378010082173089121251427584075245618389655931679834145241307954780970721023924722846895773456713968740091305357039669667054711937075367266762643368024257531362521994048506340307709435598838552864209950919805215329025575520638176114677176692759162410312416995505562819309758840693737509923372916398981806156648028105983163403266867758355715746980990268842048998000229346120639691235015216516992162335476848816757946050028510163948494341432722846915253322844280098260397830531167371075668415415767950613292437614196265647864593389228186128932115227085287689080721757832724971142922874831255500171455541258692307435902194152774981181502307266846792989331226616589350701672680096698223881556219662784707209215674944696516702100567591586922823906455970389793520566223068819715291852064949304256956400300121979652519871932939951626207790134857293578034487584251292567188179746594206478741062708108114519381872725942490582227039041200934509229099752899321669527545827850118400654731375814451737460379767242159856701288636471770259716692864225091768459338364404131242091422894613640277778152591788197027731479128622678654187630485375160553349156556861879980859329318814028632485812993338199270946045697655610039545171321200380017077555429976472382526704938221558846073014356840823532492268581897222034334395100162302239823310139864276203818551191504792923832409950896654691128412769798213955016423810665996578037151011577508631706620910024265406911986280001308322517251845286868790482113990317237021297899751714813020635923986505046345576495505377757644689802825984641941716125794714366042112630408154778786805801530978978666614620019498172729347081814610043224958724036054280189237091689474104421338947416826428429014797197463655246034111643872684490069626384184479655963692076780664930977908733726239179575183028874110425656907252756043160925445191788913065313987514610605053467075667151574999295110672263731684336276748565504424229224843570834753351150963363880231650204492763779645306213427036198154586251299453212927839935880590329039897292713761904315865978895547325755836723173332471719228817045981749269564557348832061420017578080393717852522119187056004377953788767262151163039777497031662169724836508270939850059394212709904217938183232371442296090059192853210636407937959668539518768404424359689983816970068494893428935182942214050590464274223888081456855355889342584881022301671581672434858881628712226863189278718666410849741588798042331257500891735241892381318811179144200937500444263743883042156294346491230842459962695551316543830452148815021654407969285299768913578606871343298480551267869596030810829046833442005904649295305608481705544120077077828316536111972922604431886687343122382990959552400027524293837027370505615305798947559177960847242198494053583774649681519360112496551113488559143713974789814211926570181176397335981738170938933118152563836047404471343002476182555157087403753909955077625795614484003764082878225848545399070226620630419051349101246504590822930290941402207891164789891442358371451017246075882046153846520694559991972958277601411321313198194125526588588201096338230214650612984697193561435941003381106610948143385673054597206648274537858895558235999240093932724377058142895031156889921841079490360115634132684405444612775996323578765763622001043671484751468942281347648499533198263214912427249459980666592238375521348581519326859006994416541107101883625085667577316448514667279711722351336264966133471984727845092549078065749923723104744096246387977789332512868911303703315278443947900541179458330158249577835111701995118028167426237133451173031850199865620442663653888554282699990296979178787348658797537678462199162832392183629462931828211770435329380466792954866089795985046451232850118420968885502449282085587197546849032785137774188966570801067565405009463873627201407114881726698928052812882533962906903284822077557060956788206407398942152249689783881362086283520653934150773507451815981629119802596583563988946062784609689627100884901237353344103448726815680263395317257460185470466770479102027725609104577503253102289950537551571922748542420957545536559716723725910402113149633985380468872478073311857784287425313932853148177729989597059593146453310585004693338967551574685635885095246314623686052294003926997962744733984146778941690336778074779127784125167027065179519818144299286358113644898431724913125688990034928476251600118934961992306096445186152857191126843985564468022570483082795796828720081559395509152238228262464188920488775875416195363064911062753007137902535421568868130760895604075186667634181805438105356740739275430632048861480115208499894017994886907320847449898378794994405690261753478491403387187973588954439372538431950635384731570774836394929366072014004720712370228932137603616109168772998054678308361657243817237212893475978573958035573215685424653754299542180286541699593064314933967058725757575291475210474476401799092496631997209233331781912305502469516232738626104550209513521558057093970769260992060083638253498316190694310784492066571425171340362421614018029184545426721111225552847743288336634500464992181319762950705752748526565117673624293786710401494336138843648887006995542790303878538337298788447814427314712435842252480016983001547401861990366094080312616193514244387074248934918836973706766960338747700373361729906330523644104994242515848307661230535396626216171986422865325136962236821489270157760477395406195624704896073643217590235081932328243281999796721121839784202238344510805075200122579488749932248627020499195267887704471430733630694843296214114957968939427905268315604768685847372831779149394139102011854743853834245430591285604133414556992945102728713661681609450584298990868273730388479968025731003773843980308631998187065732027097058398039918605929008286632907415168821300994674405998162410752008095424818716532777268916970853958874535137688239733701080399473483210161295468304577960001695998596827453364493169954993343033924876243328563170140328843360579492039749932141526894624840713036079563271215347260265833563381434006707603957850965012516214876102465499013403420391189170095169119251383255707891235256801957192395513475968753889378265140085294568284722210016766842352710777742437191697490055259550068526997511246498911833887768484470795719364151994173464212309199614074945764193648413025949607755880581410847969903627308015426271079232777800733452271328048233232971139858668867735790519376895177893965712461838543602208648282689251105778562292850205876230625157192515179876720117933090582430229681006583571311714545804275275234217186449402694575984573798553766475445468432370251659577257431052890059839469292030399684137690619560278642596689931354957602720205613779364631468365049185781002091232380692341127640067577226305922701472603121272722193005726833086457292546079828244239322029760066794232927315943267887605702465920119327433465796100304589747819258017955495896585129086758064281812967745782275879152277358197282862344079281981796533109039451023981672643213429566893528860131694122809413373159691146695079598406664135407972166865622166315098662878658439931459777486348788267296437728805002237701550463804102980853822969004257664384942555877443168115719637253412483952209605372082497371284444441557839444961120694369205643615891478377448990848024250731735148198808208367010087212232371745828153710044794972687182560706105024630227186424182478612236927313969636564638364594933023271481900639589861372440673661667918555311955441082533019843177981657081490925447970451142463706725662855302908182926867153050665365785821111252155003931263528484875276049113052478684742709318623661347229705116326439255569218099156315295447461116921368343228121874945552737490924537165091979584971489888655440790282499055381049474668595716758360832667991312965609882774104822400704107075207988864107685245683368418585353430007017577390112502613549162769976805472307086789195246439509499797632736083491727870129402747406540721666096942554893919343424233024887277468245349004035385114440135955475408012883641015089397654921476671724075264169359547378234164685352874504741813644724767114946722646263362435137234309982713156782182733669494751527456314817735666030980631309746438588336587450720849504682193896996038535458422760762809233248691066615146950587436135929240634660695755616140074989848639847293606904469818970712101949176902048506624071470502446881584147829843666422906774271230998642277167879120667343461630153979523806545215503854936211568887641509151124729286422231715068812736252215047693403397224280957282869883549110265236533500329778435650301465976200526998705438172084873403737686810066890190470117452813668100877838513851724003609925929188124228575539745916690355066375095902002070188423526155850079511366526811732216432638665712875935910542662548547046976962593800780617666066334642739459082455600456900791437299274892484349572611991439606330051087593140779652363317641330305332177079921513253684260022131633689192652716254914914741900641770515337563027295849953046438397234054058444494518123335287083475439278542018384004742606214774572764694048911509010650491688147798827727985470299949124639130759629958517392264830416655539971257412542343242827238005991924395575228996990822065701010032359593206019265619686881027977589069492216519580200576050671698899656813356405196837052734987517262178845414717575047161928309173020046030168444032585450638468254040221280512961602097588378088608260966896098355442350986450760790158683422277508012510226629196018478123410945391670357066894009205697523869343960190586107562862574262970745576559150614884936373943818456368626860306851820175445184605088004356266381604970660347479226646334497180652442146198435432723331471972763301900508025922544035032187135828916114195198624244656603431444083814152363676796038067248467941310187748963308304175880072689196525322211079569370318140165193689569854824041312174916905408997545610736803307035172110684561766356390758075406243259906628672989007352342047874338121185756145799239221130505357170610958589622124038169588588131330863204711854322613787707465112065422605319084641270729734729415914615532230933341428248416857946844372036097047861119370208868292403834255076601222177184453318174075627496892330891612843109412889409192100928111552833771390273415718586031668923861713527180205676263213399895452003053931921509990709108407653371169458292572466108478720773736690435156081537091165708568248047217458034223995301103497873196364472954251162936624278168133844775529402981210281115380784359513102784010431775162933434980974954556029048647316971130711815217281763123193292961027924606238022125625214163467160498907404036268312369048930236449283346299347097578097633649684597261590948153531460999420971197816538600628108445197260889698305354951704356261644324644255691096079070086100321185929758559313323035938428509324306446322970385806129069373143823948602885352085887332021454804756479720853993058454995283951142214445169475520732005542988660508090629224838805514788253056367737489789489928736251560038724200760374164888164975330522313903090145368796092398823462040483563939348213276849994146690010120726084482189932149538762779647203610109106035518632443829266450760012387117081120711020291523859607983027392117907324301544020689834621056730201817242479223062508469795315859119920040597632602182450801423351704292081193381013214449634086155923373959893593753021139165543934728857334316080853967220986292774963955442402254798844238417358123020536903861517612751932706929604927158728314879116956952917717336057831044670500661147791798422393803099667829129662858559677204661610950530313807734246016308622083541856643603478453406088023665505746250003587711618021453998420988979940349604495748071109822097707976274846713069387557081538616335495706651155024589418914723751791567148152816144440231778642934051670995819557991046579410553249858085360099107842973426232321732651402264400176171308648322045414586630784203615296395635536232876674973869469910541937023585528772070292680201881379912315038944887515763037804246575219124040519852370311877447864959815854416986468509605676226607659340272311079837037740094589072996425132159226125775066746592880037856594775446225556002549644646452096922111697234899340654532574320024028185719142036797419721063459889670897845889692220670493836125132312380094562401094860549397261567840663863515301717060915394486668719666715876004043850361395374653790240040021831426502222602863157683421923523223880673494174711681144996191400132163546706873092132695230533757543940502416671738167399501007714747185532219891210113218216427363583560338439024979425021644382098807531391674240745927116981188873415655550776875495655110831559896308267195642490309792869292570413641285995148167887705573816528445723873049770538159053991172778307897341223425767859212149945742287852453536179906232587241543616543242718773393464940663935810582300214336883591449839690753830526966696240350205302410320101257902862928214279119672931541560772899200862464040256515454076565510446914984064905925139003508214857423036744277283386724390070464483457969820262959194232344121927128612290163729813287919016598405301566661812044850577303025011447392983374555456761782212629221885894165339634762007247630172268106995417588966445622632985768438471933634150736980354208130572515653489053308793508243814723675577829853434880047954337630627551806731615778968206216059820177214381759614497398191195376986967538123501232974727295084465331900539092080591235781889959735696373948243941406793426448213953608011445195011654621924773585581821104150656042476441707226263584358136946273306927596238441612552865092451978977092519150044443406166031278557652827349384602343834285214337327197814345097464299491428482334524150986003517208831850370944755316672558285424537481858443512870384090348739919345275243085112647420036307039154840302467244901085030940259050022064380834461048678078154117297214014967362471219285484351985826877698389033805082527326865526415723647784580806280842187407734495923947821246935019858661106736145010153958238296714648901484556327522460205502609005169109697607406634058386976281739000292028342577486437924998403639786125919869702204347507942274661714908390124222059251646230354701962765032151463205901887256117052976492717640702265505310893376729093769274620301932271049661467041284093630087407889588817906708947466809083807633971303497883978316631012954590063084650618486728435204967154159595627563893123413499751367813885168884399024516314963659762676060078774977749817378381947239590731984662768198276754909899308061187644029262308134512475734366815916952902890712287034752010986048448359843702243779348900988946758806705338243513402567511027650715184243526020377090687408525567950332451841382473348418351412673298992004292439542354685145536567448466333231979297065815314341188224296184173193950502054761845763444511592399424776184296203537637747341269600393115399369799347727127782196230894058176289646257995847059211881058550693008255564860299866103302173378595580389809908753013134571171064320973890616065202851008331188959482031311538140164334037737164353666618929306060821240249080000360434515571739304109596270461514025286038700904846993238676071327969851252313988599146379289340130920623945552366792800415106049221227574293611340060504271042539456129248253607620798957943319631069069501175795465129838308699240495260721790101478889104163983436749547225205252280655947582846986819751754216341269538295393705461688921716995674963878506961187515905169011928475738839294335353519372687089771263130048957819785835944859607467132410286086675729450139318052242334119805083302849058830685642059254514744668151772224477697406365546497191381752116698089860850269408897175721155138711916423821113356524225740024756155382238125351966099541887440261768907501415794796986655682278969791584731258492598132885645198393152180414297227789476748458018857265930681865842587132674951341006316926634795992417737228339253226791746190373832240347351412637491502167494116903674924419257784831211002366455307947918475663511910006895548266987392531712558914242532900735825395380752025919984011444090731342350918999903574628080340139122079114398192249755643374878978801075632084501035726391130886614732876173002245729776768209229297079811508428115135614965788307960387489210550777915744802290600317948415627194284091638684279061020020665703056195270027562560017800995138402474359505696607978889603540777028250149934362926232419375690558036260133428943346812107193255991957328300766852249705304148332996378153369630499625779929561529418289786660111852233779029330522827361835154810157283964921598107645634583177588105437081624265874107964845535617882104052781918427058271120248012577290922421362457861803802834926954433109860391403006207499898710885523493245024981480204934270028257663332195165318684183361413446418579652601417125625397430420809313439301942847083405234727666665344615982709393850486319757243073026885166145531642141450061145543994889819001621287847474158674587531547831086116961993112224143628113772778513630168245361050917996424180480343507021007770306247651781727257811402998881044748796019267472864340353407963584387643224512014782864479012807323556608949128203911648697019994218078775051704750950508590342684187016949383999195118109633577614541863251058930009222503882427037586107699931674695994866868812461538975839178363376212753125578218288067361731185426078602249406872877443906438682667508422548328139600679030411234349833883906197190497595408231931279335529771589379040533129523114188025180627361677497762146251740259630119840758158561141614094132651217919073357736919312176814504438473272214625985227065307214737619825069958509439176773210968069569865434003625491943424174847786740158467772413235641957681879704549372895393373985207918078239683463875109956915755808219621170901037765771974247538514425657739084744420652651805250114936383794256303149429184658213596323405490893038719212982563766413318370260215366663724920378441919742517085859543089484008346831746212326471005008431215021657620672721609484994166223233310176135980339579429138681846233113422761156992179328984652428724059612089498000832761580662484559614623046403564019960452688580388976345407039612177790686034017559641137933229463022690086117869582558377842132430631845678913843246521810645020759455736388733293025497232365105548229942960931278989583844856217802311471718174849486138138764422956965850136098356879352169114884160375685497322917081636878171544227621851491882450467964284096144334970649568485436233164432619441837085253680694383019818663994573769597291565743262715509341063789271283670254771835066782480611864637548967682723993150153656994416118039306360991603726919321457673307141259894757436626676926224467254755260488721217169521214610899651159836527219788410024533518968812326025849966234881689793860568646243180932140054944121855424023093599825436870780596723238616945740375768738828027422834454991976785268693695076478547320619818667540460915156624624442038440595629911373053901576816848855007312475773292487778685496689374497445860752983035360334988644814566000210778129791461022030611794762475313751026493918800416159012643984514531845488848388714254820938050966565044256065892535519107881405197734545116348110322589109294739224148769856884701317739740320134093951232023089546892580392460312734552379198894848069349835923297576374404739256848473532919665622331108254326212384062713149483811457183426250431225776810119706009106398247237378805349986783693708627221166936108855086543880012743539245829337780000354452463128115142948246785972323341140650003443126400118009666906644524633609474432695150523004354512723046068916672624337741472716439916745195374293894285146447387329612071349271078635324665692531219908429405672987691020868939018695683088216624147368771967602291036364908684713005068519381436614482310425800563843075927821798768569688613408691691667799133225769006955112406254162061439905870588268303009810718987347363711979540802649894143128576526370814566109799942576141314608037256143553543804369354701235660212403582941543533166460153370847854277417313867314412368723090083422282780137649024569759707236499899742531579311129944299743482072197661261115850025821074642105835576078847826226629071172770787404445404924465562097242524485115234530478615854413771256927556637904370983846745235639723713231975174087211130294367753289196102954442195310403434130829198041580397659036948731824642732919918868424152095583036209043545966496750678284467833273540233341786112501410606471549643095685855432064768411690812166736931094362651579105003779948113564244605410790264068071798692468370618957883249996885934798338729001295178634436520539901335443298170076115885748933530798817060791053403779902841409071472735852739608961703223366592224596354136923143068901340336154644932749229138197686260903452082420014942861573501632502883627793103157675438005038564399337437112522029482912580638896778349796852403418056050482788926513021408847109696740615993398860479233613358580415822580027432952399590830680188509492871492657157953481551686064201524906867871437181090864007021959175789900104253725808871263920505977236148661791947460778466314000176802160674408751838657796944452637852106267248901887179455964979069860632369045451505481932402422777012121254660180575769578796854800846150200401731586593358896662351580134854040698012336322968769386518500628225799911756230286573432193834294569226391266805677993930206271760929988816771260538756321056644060267910544341511635328010985964741109318709372425385569232251341683351009268319892874324297703176342131374837526665901549646571538293890507509478701616997550246089265529907359202990196880931280712338110870099996398688982905938645508034932751811775559540881238250248088469116016497223918356307464399542206746429329440586595019079070551404592275083509538946061912892852800014236642801036083480993882679746208046599742793921861847627898202418474444119344173710732245491393373051530359144524294165806946340660275391298224034044804620719257824412179618964003689069748305012302714861991081137220452924338170523475395022155898257585064589208665555240903551877857736959624081922088949874133579357765850982617097466478831607827887432616885775870692159365318815119569370612511708433272101602321354906315609247465151212495525016112183057353100959919967976768899644085974624425945236065054329175124443356274667243488125675349883062259635389997730476971440028375593754767885139820824646190870281008599435709296910987292348900014686431301685227316925027673578545975606645840528713570548285406585356987173079398909023493593076656513364855866158938620358547642227213671758253016163927633060934529547742832900643436851871138252325887471543564855404008156189832022903531300562990195977493739159696120683523753481040558212445164526207571954886880986975902537698630031115179902448112399841533803064688345785289271205543617910874611799953209246429587825107767452017515353440519503026319605695640248582031475841952238973090070617148224903117099115938340936373356110676116496306660995689153361174480205575863888796926062759299832822619027637163901988634782885929682452729586938299405579439818394683502353464373331319542168324870677777078072202703845886274346152821410386021371305649495684227117934669494511783766343255193400396527405854345524997653882582311566115135274434049312671988978678408616208074660564659092831785482418781958310914298848446954814852200742902999762657740432826995179645080207088473818334940363567693084840019815846106223482670913715197509705229781744202450211676425147252768249729150130055768595099883030688751302879762345666457058294583287440043083790175180197933765243506777291041867700228944520192430203726032912136045450808336278116405872899051320252826230920880471124519527211594787258963304794094399073582963038866812851046817163550795803481263158928795647725309264486745839859008884521763835429958142315783411393476879939160503898462416380374827753739963545761136266014496225362233357556016961439784738416337017330180822300244113154327483012782631082497473862326817693571689898774924140616736781111842377389130236999944344437482874083202386370511292946100887629684822564768129821339390042324523354205218295840249371315197888896450748592322665414121352364906147961995272604952516991861717587013622495528236526520168680026420642695464039062416349233087465831800911334023853530722582581028748220025893408626070423529628259850771773699041963219882286910618613869544045544427317351476548265209423505846576639213057204344566923443860601082227845908025763733270038702987922952891847509004542329176090044327941804763119401990810702366998471795644953244335588363937039922084189244332173438072846676657651789000898037385791579191949881424010877693059574826810103323479888438097135919937257735659717183183335273916436921266881250550804761439779450358520619838570634892169306396244364086200281291325481500841418639240401808156609588935800965225030089897785252620842257467333135505762544653246220356644367355213934121696138644083721351746515702959547864090046907536635060448236175257568311533834732594591551990488892267341536781993108128946743493035497494603097151074106287067732472344263097823947304072898811673999232180522143375407782283175458841868208025628720291801051020399057454533821775937776887423795393249944040243242242790378965644415925449985575965021051035374209124455968296347301424173600773231874952820564094180499720874437577880179838823122252368494133705209313758243121563746465610585474911865121412138977565221935283496866582545933469844912545409249648469256406778020310966517631129140372471220906821499497352232603742968822372344284636274455426397813286753883230880201270011955166904918922737594018442826915148241400549116620131718012220854621440132795986596983201646605778164567411484677279824137226853152116373089892385118080408055849234518136424855555790963492592302882071850124216372551694842075490897387035009102253445681316574475539989378218266287835935464772731313689254780037303549177054216160245563488394682738289264708997419348509840504615357690179777376157729960661879832118690304545255200251397135571733678309883388616864687647200747128519523660614646160006806753867740299478375079839283157033290647644148809425534958089379423922014694294742527556942191960508538065665653421470261652948411734436949901162201258724099453116422654264397968683231522587949969646545746511892624582626649046243164626840171699134828929600006845818114374686243097647727902800757115709810627384320166267690072810837435233202525149366173767532083927271861390153578665825781843626111556868748398865886694969168281898342010551879143109826584668158658388340948231624529193292258265295948730560884497912600202692239605282232260065847536368746274280870901715965878918629968769603606688412367239540850301435661496161235835795052187706110608471496402073533280707618664922293223668625061024173370771795852794667481193932754761210302871235679434074170061101353576042634890736199085368161495556774266762111861126807186307202962887567709290083752153773856299512988543816970714651309826109780248614002458540268227039118167471284783594947779641526781702215176370739387217077409011399460629422805766298576266546318774426067390546470780580880955511715490558110364680093761065292552053129444207892678449855074414688158041450159331062541298162164076450971524550960807377918696410127119325115118067175104781771480906652232548347633949998282611373180065471363623295207598667996257166005585183605945627888634737300243877058455518483584484081820400094650849529159257610111824965958535224620745307424819008340356349517191580798462734296419764585127013206258569076234202989561186265658628797582055451817955819505148558936989982182082762982262443336631574768202913286163056575213242934659946118971428094800223481910270169186210146024235455232032823844968625513554589616717344866020459882879852462703109498492790617584589410785657047771125577982287281089207868562185081896935931662884557421451386269604145503956599417023630016555326823458446852491167439676047359127334990132684281922446665078431973585080795820953512629553879852702745653511678916708603976445008806358789440136841256241779578514964256775586276559348302246092315531371142064855254317204627452773129558709312979986476245999093104616036810736530826385829096738209704850909777608399703780091984769486958783767251175606478410117490160932760547236862026658516300991568063944722309715171959020797268947605315526210304931063734221612207585432724409874884289698368389525844960527890652108089522158291724664043638456856549873955833593742007506648027982655446257445658556798091526436357224692502398086638394166542892260566798604185551210825966214984954169159625071597194217918276725215148944993945459960791681514983335095729166876082947843287776569678415811073283609539398438518745924721319845639050033943241822187995158712258267386661479847688464691776257215735423619010286802638347680214752848812873761338686611868409869055725104756139899955829469701722120954773654565029915396491344694993462140805260336235654514746324535867856307986279489558387825544407293803190249613065668850981489585516008170736450011461853994640742489453640087107448647379064926393624898117261077243440029269670994442552547813505910364955596434715798744122749397338439252399185459186958476065882208559144937798764731986782594322021995437504269868815314188379928726529943223911876856784528933019182535090970654273060898261224201622604420512130954633174709231416785332040224230563086543093267547263177561770479910279036792826124502566921357617038786920613091077744602372023439818659452658006995864415790053057109006190497513034218625548335059527058093805455184442108957716768585739317497816140305324994202526236611893111870590914171736630578647476153030505043671822054139326679195673934600081043005397004084253832371888425036192814214270924927604507926486131977330812546003369988260802331273463923196434914983285049686690776868076483151158487987536292064404431076565986313799849044785007392891901076861169341521226007568449020607610561861885893757937293385491650578822849715537853518707324388964770740987444815351442893687605614073895111412792961420141162333762526167938116577506205021232985656620595245258777181956081828974929179361108695169927974603080522911798465294303433350892623642869934956364531799557269500056737009638843973071644285131600791929238978932344593012080478150130530674523041263624906984579013561568702931326686366540280908329768879188489175369424533291022866689139686455413642823436111859180791333267308477744149449312495042402612620283794978670624289857339177439543863919150652362071906257767284721500189017986308351010983132142855894400518812077616401856738273294446113343740330524054468930147305507463531780388216957405439006381179493602553787869033631288990635559604661393451550802138260964139827145653378552593312709866849620220709650718362780845307273833158573825241530733024668358888967017315750539688418419139778106365446388291078716568654171288064996488744590062059867900095731518161894498858496600051540947045004495250464086639010092902308552231085214721125165760100723588022215807577764128807328841021467349837759598630239351418288406290255087993880780031865106069443110071391451916989318358539923784705433461235045420594857581012491163906099760386516103864333305296732459111469204366594478062332083243205304565265869419012287347891442791581571799723450288677432418905179313876697280557602482162793532889018749755816759487094300258309173232419004993155467421939599764890544730398961880946120021966829060340991497194088012017593458946953442740376007504807506585485548301415415675676821482184898501255719674190652613705118686984906005042843943559356982439572958671016121524725163228126758546716460630568088747073819079317036795086528971028151592892686798055967669993064279094128777919666295263024971576132894128684551887293806562217793758758384400659677061942710956289676248836505634149926849532322102111268819303382491125734027797011798101791673921716669156053446302582485616609791328940922741471951511556317760615854972014910841008132559732614186925294693367223830208573686772754124311884783787211365138035963918820845535284064864078440050444248782410491128354730604226047750512059902734253487717523284525490396828293831695889670488766996386724222191442398219765463597168264671035901129665894316444575513710469599622137071859154591450026369182286543067993953182487823298039595219660114693809746726585951048961814108477619419533801745623914125177363415851463600920369355875703520887945934893354793562917681749170469039698701148598879484491348261437230838773837366434758510031192177996214255819097174016562619654242266435220824226358646120089065073597723374023052535445243077498200431496633485067225570252306775060811636266896436605862350795086068250734203930458835595433514095577002263995652508533243602563517028842248732788124235151492124045300250986097851121541148277172287337655478631867534422988881226609474316182513718869480066217686684824221424368127338940473307520609054310891901399164176965332449331969275346419366866459644709095210726741048058793965201324761600158753748320283736843309308955830078842691407489885738176583264716648899057824542782370901394510474139727412521775618113706440882789599138446907546109653277471692325142384844249615962039395800370684791013406195776282343932261174408240148203341933456111910968749316564000826332034391079009142524111532514562906456003539224595531225265507113156461715342056872299139889367703837188567892126056440861579658856121026506909890672638040244278142215143995310364877713775042236762198684112435497484381605157527287835018253936693928095264237250448412789887089968266929612205095298444884064481083706520254610402982842429646222137377352526297243349854536200493857820788965253493880411620590425029934414134800246276649159839413015273074572752668683363539702726908264461174398120670787587788423872133068233281227052616262904608377951215354144237980300042308600033834217837265145988517036289481186224397171499531753906611874962676929305265345641189427169341776685606683470431574685522967818237233633883218958843067084186886462294887064861791741618329028073010175267274367084661270988374980320027647492780966784778534200611621255980963136585578098306298327472958637223855435134092672692273361842080531854108700336796579672318766946100997997808237387767940954201059571968638338911917658844535217123677350047187664274804110878582611851194917841521491996851771031976415966615205718127514355705867441612137916339099207234976968518195988298958167216474721688878764868036544341868275347746395411063791642907037716618192642254639169083494337560970071958133088356023364475625148725848405432858494785648156044203963142770906791118572758358376682078740442713494834461235509055766867755068876440475667088628592714980471328178082530722206921963687401531098934389457158273859655717691001538396816993481580984186563577385560624948016528925448775652901363212285792235594473326081474239219829002890945433838945491628766279008449216926320881310998560904490848952047334439914697114708302699190283307295115921727276789594432507672691083924657860875636183452879999619252862540317170656589509791401792104416602868504198313621209999522379859487804066030354631763402054706326441584034363700602622773772245928590919978654806237725399188329977912656612337126194204793474044910909761831198889192463488789823012714660207563298473208854285910343193922832582997094119216122093427468439595563217445851983920291029905246145827268777404843732296054675129938018004661358154868957028283281178323846332806953538745470479171063916037366885679785619439774776895729715985639704648130652828204780928028851843010817385862276691467255282956233289494437792683139142699369794829409471390414385395312766178725156914980185664904490361750878672907350966571917144142857649312555111402879181355157572913084883527433879761137390659356011216788725941924603000116954023735191261086159412979982418783677604878962386633865162806623858001420286606938226208201286646080625769114294505361365193931705279027252913199265149686921853737679819803263482344731720531080010986225879989988384089284220999521146845069498684240479908774421454984669213621328940127943810770092706334067408255041830941899961612660063491109255382843170033918043691587592619960969363061181117844048879267944877074245796060853854376728524466697958717050323289710467989561743917527048838459620220578709045585805226169784398563226058916254887766245533439252773600865643277860656619276812540795597303578784383156651552450689815501913668888057643413434783303551976518230701617176921603545120491294224859593575708581296277785209362674014702457493272255457079362936192083252504265175752065525233469148804738616184942200866366264540647750947046294932577853335576059888136137246037304385683831758757486238179356126628779601297417751487158754450798367026984058931344210060708072805131675520545328018750134400938141067916911561277727571245560917535604419472729707231592397570841194419771754821811788045332848541254241148385758040764539581762293366268707398239483148091051712925275859532518416419055145795003119733414656033096472088502963499404830035181768682897075398951233553650263233588365070237813220019998007111544913630614151304119044946378834001646978517255049232859197853612921197761677588570701312663852425084158880787809869278237792536304369177837389914853485893364634218859475241634440566244929142339938621477358802269896297209005560997491501770892074574807248766776622567868063279882827636138817896769198370187187222166013808148649916474887142689900630555146775444261875800604988187748910925996436358655423722125893803143088441359494740006112614165870915712889947757901272319946720955944989319056236895661145244388761804009093579108231481774257359004017424778360436518263180717747049074935398340344480385224141113317660468300886018571501239239594833024990522651615273626391991287850151283089270403042844615993202228799441825991238328848218335603534056568954880618598682128603770434201011520315374539268378545134919290700762357814704218498755992203239086061901484766699102133414636384406953729631631770464107073497567072389207602071108739660430168943910452541033323762000428788219763769324233441266421089487557331363995938526168334998664494670190577508171802925930441875370718572300814107292202678060741842767021350733154846796674919709229601332742844922196719163308933828143037229688682509373881347200247914163661511980931064948980174732065585511287879680464145017615337468354620443562986002332432519873602144902188864925347417242080229217732277250556562720184763122640071098332355855790169562621647161427549897525751304657958492151991580557519527187676333908493280139036567642117654222062551662784889780122880401256627816878607403504618518901235235446877209997679394974808168793476599574235440715840144176646807879924355755725548105693315350761836972348799680428527316161859488218605231490812926185287094960890798354483039449894001757211625062793134612652409774705672064643176149728362367450118864832853862781381472627336561157654529810813004497367295512253235502837230820147179543543547954482375715866754097164539937956118898064924443183121984762219117909225278635096226848840407528359872283452084359596974438783463939521667745392561363823079337619991046961567653360701886787569678691086648811708097891541243738264323322379283403855579711396674771189938482139336908911260687092378074239605998077028540201041373061702264847478156966855278265734838750323752439849086691503744051533464446649481181965132376593038653594112332217624323122981071765699373210901000856409897413304616486431736905123274472259871981139159785747089280042240557402820144890070763113640988646014447881017039643186576587683736047164347054938203753990610681685302441855001364774908828864921226129718326159475372756196723749987505950550443440763803273184853964744448429975801178403514834433985959583175252100849123831842713811468299485581011968301029691971160714159837494791362105047617595411187510146375454762038948315713292944905265789229218756859837841971734975764856657481261980269910148469958437979658684076403343397593537276577162874207457661873296777549491564832708758602426865381323839867034555694390790466682043816691820785503658786169410110522450955142611048936384533127095932414437868952094489226078390300974884441473266582813972592282208243345014065924346668337052535282645274990555019229480618880751794526025350766765068877502569584272355697294845025746323702367314075734303947549156445040217166309202588484625887390755808062518866388383153455705814390478282088123834462298455425984735835196723112872911239636569517103487292245778002194848033121708321844527566875612035340751448936714205254368138060606478565152854817835551169572462049776583099488861230582346256676635443697306492135709038951423019200072698306181264433255910914222693279695839585646402926213899850280184457664690164839506431198881340048247516512703526401171120826714425951810712561387045745827359996744539874855324688990755038369293397989837346068951103285292764394159151474351301228900916506098375941649603069495070132819549355963952244868590532906133533151913243232544289587848073104376707800476579106259819871143110498939086311758022257901012681658333484780955062783700788078288487175407979135307757774981130977483638249309068999719499574585065912220030787971903565794670868575882898861651033961502217569747688454468163227246537470321112596928455361825008849449631787354429322618209896710183890616289031156224165950776722677208380182557197231872564135661787391355337065183690822170386218128284264275743067387333177736691759597957994858355617621608472143622917035303657455733306940078654088419498206980612001849084139961592600297101921731186695115407997951144324872576963201056454480187696892352349861785090090362457326262827264723369869349952229218507407030473661363446757393252164054101320872446772891612994177159553803246428730449717033843911973279596172389816223337409040689660539101377132631087502394816396639843428960817685784637920109788305976922025799186365857743342816307972849528042876550260703866382555475247095918946870807781409312206375354315241631812002962809565341329667199801652718200513607830075998984678289668172347035263604145481104736907276812561459720282838841249012400420937051621207006411479558687612415993510091938564885259524930801346597462259552780118472242533214620207515092779148044095134449558766214436345715124509750851522631784181681450295151869344355434600483147940782123451436432138036023701281013593588132745160348584071776268837317674914092331204312321727990867399809302242494156958803790707584745675115833648562977017025398599226854220461765761934998180435004801432296348189265051392504516557251643605953879648805519142954533524745014272453607610930960103651523922475865505079335170812237345252660494625930530915893756861207004149319883018691047060210013709960964717816545588435622914094640361259779748686245304843920639520983945794838059928723605998284237030774105322476899503307474189050382214152775289437604258543455076984624722178417845655986000956955092360481119620320839953429170655369695786229111515644378314773539697344777740038022827917385954081345075134195886038681782070365161825054460364427287521250734881471870260392196372086416493090792069603353989260938225069570861282743026348325256261329597770297016852916447430392938475960409781223748611524649414521899652632988963498056589625246323780144230867802090961469698617989744272366281449839293114485667085253141617965256740937700699048359040290701151181487226787853188324609484208045449411317067673000302475136920563017426501256837448928116910878630769356933854986186413224369956518098262005589027632178924568871940498569314483893492027415937140436237763244508755136627569542285601070958450192186250225885468604184209387327461572273789662384924398940917220076259703193444885999883314655357303483096134937119129348995825806686701686966921125212992473038972264273467034342623409344761910650803766221610764779782347803201442971369268169676325483398986832000354256852639977688668781159266696810638142790145263979902682886698543028241657603870611769910368537156557467339001706428629756701550608676852859352155785894314578212454498835797762621784615797919578307665439143105459302972402753157141716417609925757196200624857413761079288616644877660277803780568589695844754536860417704848515352287708653079613507074050040819597204882606834040224980904835394272245288981733629061016137169966643523234913888624035839638578596311065392675841833326360896465422180968851504594852142882071182820591975785339291079335927756618474073326046190639575771585185005212984945354632969392357632508909262099585193888763586304562893127691197258951767843203737461564315840720843299680116385066534181915415642268967664501251006031668510601709262806093889873790448837292978886204780325586346082829340485898135823682566650896833516234662850229366183251098580806303933000175293265515088011924200682152304360823003154431459996367377446834608199135943542771122253854996846220018925173428643052973432205033268674292168756840388677302180809006762798884138389623129652349550961466955573645687743126017455350153677727344573808489324606616387735559473339414713437124818287948105785477031954936906468103055916772084162932179779138400809280523501038165929809262705851748997674746639532215256179895321667021450389725652504965153895956233042363096527881255517767868375935816968190560413010321351256064872573299560536688049300352516027708799225292929710590702958231995501174392893827917199890374447815058845412898390290379483802342266427888428266545544618282531402395623678762650454391053073115414575514115764716258299629124252343400206782043728857078126884155856451778439034516565135783923968400047075905495912770268803139118551610054409126733648030319102077692439140202186945096092421789519826829757639020602259034115271261846332530952728270998750608203726241998293943862513449744486699899364966004517991394946554604145394649364052894082731967341825988169531817876496205259842970246309757158585067187587494193722013110155298319285432157373764025758321138457339955485018620695817491477608678601706431895315552931558319084477790433600142292297722435483718973920849551375581203329882259722825724038357020179029038745148294050301627601409230856518175731217879030570927397786814753188487889363091813734243790943053757424080863814676556469248786982659043824784826073197051781468747901920294305147858927032026878716717667397686665236012725841269358024238468738441681886681848519520170915615355618145137294376037361722084327317381929403125047440043946613077087239923536771702325641674833754289550577755237403313863422910627821873656915144356672363728609281615246959109513551331071429886042585838298708645676110412291702774228980380642916732309067187446967967798200830211461985754053647489280994548519004898364704560649742246342962431603770372313621294454146983957850424965096898519362572004309644907828299969723139564793452296408838427165989683841799808985136760392516852157508197242924169831654590365231923885820316581066986111819404548376237554047235798439097388391154351589838981576612289324626016366778972991050450362220139234885783248146171422039499576456523011667427401520716456555523214398163402257670201939565388285113085804357888756899311109317178956777184789119609387142274322953627476275254287045247466544477243428189118662535245498216775597563649774919159290551912017092387492159450954517032186705376183711392918383489614195396939583418626473604115237827170589647310351994328559017395272297147996841615517437800523461394375456926097166779313903643900396710661812553952301198409926530625242451298332350622536380600623193351784359684518533608885420889020846971292646615772705835923894030030220232977537899793321012562660194316696318318709092476916217407261299453988737363673864775412691686081910038477880976008526649952817039118110386262179127547508325508988145965014393108046928924164182067647353822555046930657726209867834417697659648534455192971638023013351945206368636913522636461283048872166935878212202027299859386777997658396246295573320999457187757672274858823371787355342064154626239396136732121301007770706262101874422695071545229755101475238397277789550279650153671550382864826652942558054543907649906524629608554799015536296943998054937878244299424536267923000696278094419321734875149626242677143162993637364273679077495188472969520032156387207435614134115899374365836133046021791222130776584634463952648480473896937416406570939870402402062225500100073795902207896527024555061767622598884457573116737587837825584350186700131784860005434393108000507080525887735959593298893104815288532279922462866563465223472940372744468543768407726909949862770504904869852392655207302959094795731849335345210848593035998527074559012109389202950396398110781638149038696539892536970561365765966785808518946780509974734023160137021433483780503080775027575778140818019335937382445120930950318976600271869306410534344867474679369561237606253807409601650617962708552879021927529612691370743150294325393397842842985476532936950796870183446471940635804207470572777922510554803399139773588233000356916715614663327648506473768574601083459010105424631549513245473985124747012171675689914020259359640241090158398525509283880600174923931842477484222429227086078773929462322536179208525910218392558613227295078523894855907507839518859755303502231012074129259631694253826678656469381550074360882144351253178971124361415963508862951604204905499328457187885645652478991349846897424764815535727699591019892969679718806166254476093914779060544882762536756597804083751121915865099647658256547043084434905984692173637494717937025385065945933681435312773442866828487313067178838052559104891527006041686557870482806994133856191272880500470763395370759925190607675071471148523986346727676128887617083618618113946521237245201966242626975848464778512223831885803644371728925888857621988629591240418011277526478547325669622186412384182981622397347666255214647757100179340246749156020550937965890084529110124052619926902941596996804409025410415630076956595059289134406898796263624418714590655945354217488955722584931410025639365787031309157030136318029900587158471823374862326400799702135462061957599412533941962730560768990534512401841180382009243829528906185937593208532762369951369311860574237771543889419977901806582450874815515658128914642475143701135844014915939658400372181755441331864758703695549804297675420883188170638770177981208784531179791997284622678421585956778175413533683997721144197190887144705463526268692640105219932766723979982526369894004786312688152619625893341208893276663079589822075271497187326150689446797125090371776309706775752941003035858329729311984474589045022864722867419717812242273971732105003232826387460588826409761676818009116195248053851375367419351161119678508923585762339104937093313496098513273403625055229307403751527937122362594516466592028136522152011749262846406188236176755175348091845576476846340010144390161941263497431520066640207620721251292773708143394085361298201719031365763551071795008934543467760387120300185343432365583353184739199734055081637383603579315786139423426103188400644596171690190444821249636806538577132771208615430682823390316806881274383148581751298867271081084595776229321482620717651861963543217973116385642574633962714637452986399862719061231547741279431075457767686941383034190981867619579096780014001979708669877830572911302101351816745576292120691558310203337713744878717806028744700055137927147784207691723290751338800959905019286598532250224410605781461528893754753008438134894446863879047743284627847297121986513765714408737062832427647811920922384405172289366915035877984477336445856696341286923450979545179229716212133932351708022837505879956099494992624120747175696412527221154576853720253195618726787101708840626593217429737230456701733042952646014758612695730256981010028397311175062951206950308129935355133439751120364922048712799972515611203279543700517611317356688167923491972190611326943164428779199738373616868312008324209384716672033336824103754185504721509663383526958084648258726337886690003722400646384204675905335466729070291142211323745901482133708968457654307380023199517906038968973605919103466573587649753612440057607390324825552387898429897678841041628365461474221043800343516868210336189605005616734797912941075637795778082865173793421749085641917096836424733121258110647197065563742539963071950305582629829461132930890139981914169173208710942667803615500655110786220534406383766097870627938416945034468867263949659369234396022344959871650897515042450744777372627827149015367181863728312237050391422552481925477113436890345449603659652518812729982517158096517511832804071705410342468576502693455814155945186208091684244665576656519876764149359948684973776893580957225841116320920924100745327879165276386984157355159381076315972795508078510323243648596310153859275297146663953542554025058080552351600757685082706031581195668528800607352086784687270484916528444083058455258831912184146831608648562859916592213506168617840189383017792528181958959149720176470595824124318980149311609041204237452278329171428371464462433714917713536913270463263581715439562008055528999044042662505985852899098664249883259439860054290668539832051920776151735729197156574561144123463241677783965588383027394284684656580857715889459441046677773805189623389205478388042223489432488581670766476919652348203851467658058509785206156393896499385575443581056130164381788423748651271733982015895999499578227072672594864458160209365169775659003449692766778302329217030846414912596724688618530738087536834235054335295148850985217562811678957136325925299173920020657751804543252413739638121126617503568685914857776341794372254324976424325445835783298349717779407359974565494701627024674262664157587525471577234363844234431317866362084413587287172024651095914579123901398417163238923998018318243562737708542367733752557604242061104533996057081123003081814188855348972077014991412090823185977245254195400744290301397885472434414219465412498075900312810530472834750551191700626795329026578285545212014708364018237585057712821676203005171075963928868501960029582675625484935726505197992092648689257678082332752544984955992807080169999803297865248066181520083639321597946418639238190949192977691446758900368752823057407546533352614463026745044078131655808815265382241908880771321037118963894293105758659034798754540100872252704153492009219123461310351256836593732854608629582578290859154844510620970166727245265294280068618227366355096740086550691772060768331863937202423923250072502938994785039905107422596711607261202160262313843804361237551213211807139247754751468412033612025486748261442560178862190100810019697063713993128190395417742485274746244634286774473340842460465505351834741680862998675831466421306679716225134020641359916879313968953818191367509074335945054108724587230468300734590607881426229027268689092042019907870058942144653431254746628555002917981542131404218497787741216218715346828712962971175672391356864962303054526143930082853902249521787884967108796410551795427632146706296954397398426497722296754133613088982240989532889598769784243679986654515953919606736443413944938846112844111770789030623970287323141516018898894030025310961853663714186534367577660969416912914975968012516172484219089536243663494645846543683284470585073646694392846612361699628225546258481906303453846192661403562392658652324088685083016276896019048796374364627481572840708483321356925603242041848183823659458812653638740871635947632167079190041419821768050409039326103077933666543996609124487426513031007662446406238503830740945350554223733815005640442641586159994650029318204095603990700564295023591310524902446284109387510856324670702978280090026915923940711968613155329534834767471054448416114208833931797224084995772209318974601237557019387174595757753476218114049581490673417426320135750487211364840142398833884339071282757686817175416219211585680065869698802930194821811740473623072740333951954063401631368768481154309829526084323760715923666949602192021683246777654012779858872813479253698994621370464759986026326900999135873455026157465354365214742968439928722493949879406800141628657898217780086280561058220432894002160684663755295325371746248643819612187218760711197357660499842371315781102847944631089973078308084112447098273707946199712410607679900895612357162646889917727212801570348620159418784313089837041678860698735997174202438459105720056707606396094075164962913552521820632907203675297563016737229391792815914287537496295370637290795412525687723756803865309343074220971880119488973290105950029994439404391427601939245293978796524146274122308959898932695205870940416983860771731061748012388083527564466267150263822071673413769283347871911687169296151346933299422313963676604488318953280555842468601541416048871839644813156926662394954828945647572546663132272620597455596411369214912986825936583096847084414057814108602132277457933740950734741863003761311772582870517955480000178072587987854394097685222130988431518776591870323566128425159214673243294692414158508874837603119803047219016478788250876597830772609090996184125112604502600201434467338393569043967382467772500145672574853428443296722115716648228424338029538321708257100079612654446441156791769582253758914347992159534718591527725123144440708026635392620706431746792227452513030312178918242893547733869116909533656466902763834226096906947698066549737629780954140486786893659425175273610123202490624535425000976425787598687103594384005762694423103132547639881975133111183938051686823195867430983850364186776347857242179460078088793387175003450583777603599749418966166150686404615145116951838779658382447931421321205770049915428432099013837039882822471340882478979978424539746610567639976928114477569908973654913169283479417520875922567176042717755713390541270192965544518422200738244312816241474554925521786877799715512948412276836035482196752627889607674261987182879063769237620510902283264954023426451077807841471492494276061777194960431276922551890007639131649470963935415563591575083953785065386189388323171883648301393789786810268351512017153966962682363202859819873569833943730512834599690132088661418406749334147979848737238710780987037518435535965957928046062092318613870640022819481541279626561507999894331700586782460455910523947892560578932360888803365710148454850840752882457777534066952326851420324335327140632057914832136086771156264795884382624011792690164943005450491833860258754214521223079026259619906328506753330789656507027683258787422979622722530007053447966680098309405638971495674841654659329838806987886286066132710111041279473378654241117123926744154876166714522661549881396257964417926986614592985943298269986816856309642729214065500886369804985732544856962036315101051126266545266561074590757389278567790732063688379664901873377706661113412582168703889523094736650101492998428280770535453957403081152288799797582213222676725981652853302890455515228744089250790574106552659302168924761079164126196261199770787777459215147665449192549297423046819835994031254981214864662362698734557042233907600697144346480504993342061671073433196710946343172430927264189704976915718574819893254458942086617552157085820391557408962626688679076535720038914418048088899374236170683436209795294682109075144285718113166485272296414998194953207474655800675904668783793500190844969543512087385823693433529778376451022359264843779031531612985683425653959815851954301073988303826059659748261576630207459600319761343265731302353392122922920300834897021021985327067881190194353864033207042994232758919983639687229015330776838686399621473408623295280080950904953432012173149854410911396622145012474081346637997037399485810513931378249015801237666795806919119433127660373365591560860633300877640628342856811791170911720009878160990019990157259997005696462001431969726708227132706699263235984759633824795550773719829640420940129492863074750594961514956039164795852807979164709103453313890950516907074829920043788644662741391855113444311273909213793924572752303711692147985106187615654704481039295272253553435341668968708764706087693381100334485456056256214134043627280227560362730142600589596127769789255347012243528712843227435974302552480312714700618487880586104841002416163289925240186290836218019851836666756780045677488783351209283542594914413100284900102365639643219184944628813151147338792182874619748631200680144547079647586436466904536370276303355396171873620447889062814297595720075020786567363148319793543931303319835643257149931914716794544057771392872856699354266218923889979278953757800606250631965827790480467428024379820498535433905335639528242229608179761128386657210349815741849899972770741954584078606062155918848197924619817428281055626575213091944763769515897942431069728022830300620078168153538839058151987233680507673547951849292296980124841559636914384325504600746503637947624048376918870777858106473212712272967376281682334926573406128114282514160647186132919206157321838071850814308033424119679031504069175272037131183169751937303740844561144757051121946989851497621362602824059653240434241300657453321887320488548458806478514024558035003591861576056437718983597840495561664668390039685564496440414740272502956597836071887547221212654804767361012630910231440662241446148353164336740264523357710445037832844595294555432187014816559334046350465215671294729717271194242336588238221603326447328696015228227782597160645804420554434833997721168561807498759495477769397979032122130644689801197482564492543213855347585452718698912392909109414127055278282663350253367282017208413677176691515211653747800951733583723848321017042738462004874822622792352740810360240175719753358357416139228018013134841334386004978248641009959744011722749850056043545495186142384331024147194553769606434332977640021836228595909609496685571714149638709637928353700930401870767403121571606733567705680986935054366239912465055939806968989395608521176057634453381177671960309408924145723430261901587274128261518141609284866490746226298016998623268693972741986561235997385436573662527467989820217715434284239748292225984190378188434032446340943868480002192813816785884788488350549253851503169169712633221826100307864990181780426902641087168076462738863713879772805349845055528547653800537797277487422769969581949747396532500749923609053922438407631724783120259260980743758388867093728867607299384953033931480532928167371242941952617334509615697504664185166793161279834983809517828902367104704819237207951436805148965757382641391763002817584253945390669880056642962098116078758051007507206013721496723025791962772079838288762974721622687753149096073318081841540220317342300651157265379254996057517462424544807585709261011229432424886505566297919051634648663201030575840518671888835468326193259111523734551461879986811143775955847849438585348487246345985320886223971614630098837908852778387748894041733052994512040459474761108231013591100433971599355876865398883678525457792207994156397349823018286425659558761833619208973703121917195129139317446730532426415965208594778788924273593629372580561062194711687775153978066049045050481096680710339742000173722445893150425709561782742720441040078186865650052465153579617111291350396428683901299831039435338618857413997148577057965655388028351574779242756297768251686223466879925156020271760763847604477114448645713877606185235923240964938072731969064059094084232666623622628879711235543934463783305845822577096465495639758035030001738929268416143983475832841002326959326112140779497710778955534650453692653700984347004285014552288692108624787430320109274084588254120332033566367433206783953886054741106531552847784881178018215974721656622933780441725082654685703501361172428535849118899048469541423788802506154934548471778661672106965419525982844702861511102902518916388170810937156468100029833593068861503247699482566565727494686859265832565575082763351061096558296531369822160496098668098000584677710161676884515003365242133994947323108744621958155027927908496272172682586745431014733027127432535540583333506540879320687502034588677484644516452809625034927114086723015130375629456431762576105193057481680533240770240326601101347113022255647167275666275899667999564834192038826857205538370556589685394997896118523813134709552881421409603947519857880906909866324582169179904518616287683072958533903390041109452792381024308187012031767589468563470245363053096214959550085213102627965174914166808411437904012343185629010963659261930548000222305127402505058576382964561234958557227118472263741021335230298252175356067310190536453358722254278830081396801654938032456563611365929370939503663574185628559922616869422025305858363115456906600254614684423872112336779580381700760819380859032649852529840384371056520466868328263835159065300722112857391253384482513629818760689364824645181040299278163798068647962867137881806089810921698152680561277068572037092739022897959836149471873352597509536727868077371376715003727269298578498060528690824685679705973525392389931320600717707323621759985781015547037013589605767116622416434629075912889296728835174577914183510981545511127252410172028478287775167612197949624008989244703123672984882816860054453088109074502900058105395804520336947107089434696042116306518088493081390859212444358062459457310841466357499985887246893397675260565331967016842938871030199946900920142173747473923858743828041082632284704317445067612043082390012641600275288034853419572430737278840530910779210390628911886435706525649922452465686438612806555314442213906726972715809552216313616382432700278596106562621647657936110790020663468280144144771597490715459841331229291946986334988265470852325679749660418406495466959298353481857723777956629525669933967173884797589251326350937639847949958005111750182328019642078435333215555303567865283908314043465218958652544010478266779649042105926589957414184033638956141650124679077240909208084458391863798702266011103425058057466616187490048103404165345069633596494293088073186862093044810265632747242467919854129908757670030523051268886498540587885169493778735046828029517357599768694540748091351925617691122137086299948451005318952842153121131268597779275812137702364175336420560056729788799753268098230067173187550633755208351422139604107926511513804785189053731856699399938751655511722216728037969020477614812069627543318144258436858318790180073367279867093669572533212879977824773980067581176598776898960544007271332346912097009719688663521421372965004332829128170478802044344746324654845999480612134159360425924800876093373357633988278139319218040648474719566544651156828238316832923175593972864190154662834040890600047077888767366947072003711531492828190006327850040417278274844729367514404918655538091848693931568501731089234837037007440839391769935293600025246333891798620443231482466214157071258784623723535762447526347050414765485363048032918521287255568068995938027278393941515948939715797124744858759707635748370917244305603653279334954836293089276060816181956344844647204196336335713999784668905475782161996696048084476438931611604962535543581128652215304486278315535743248736221120544968649438920077141856501662094688107817081843927302645720938549955592795984952616478462999012700481935038882410124079770280065320118273988906853523958214664843932819977775538505118663284598111129644454376198260328316487362907058887397912831064209864304233547795790655356721282031382633867588236862712907186473690951191122853530009916994586255787277863537329166228929667015410456362549108530477279533393527589818902817984187742764713426791620256976847946226231949924602418607540672018053241939051158100497402372632124167097406276850399976461005289600146074609147065249986617668272181799105394666964293285510030558032207301048575176552074536889424732908006685034200834864947682420788220223531674676712182240393699819683596541556528134036839985804230479153941680843193873961290091112794222387720749805643932423828183351436203763677558951602273261162714264911534227819705547671178041987426690112855989746925656785301875444499235985945106336195076205372531683722272100012122376124656979211075136360329159043141650349469703541828139708571653356501524326101362386352208205631375331654851860347102455627412753938336726761193759913526093534076422666126120422796875435743749583428596649271803670894150386641897497839515477328834724153371580293964376377648546545324941060916241065842710151903422270834037666946128334596904522210296292969904927139950011639753280828400899419224832005420893930040243727296059474993032402844921966250508173263553653886255471242600762851659998882092730932659398819306581837026207937401923525800951278351395107852365897045559334256093716327338531427559296834607395253882114087080883476445660204436626450096109825422898312736344656317214907036494867689654622916881258402815250409847032859519274068094769031677782226224123404885028080920474717340115627034324355581920763701571771336049458393718244982701780724296919687592957633120078987199482549762495631841282316512838424423232062210606558143960645528598437058112921284421944607199072326888954550182556856468876294680771686092458761137871605127079716045929654960995311509354413041247229131199468208511250890713125355979379260647087353992777550457209070554024748081008082585625371186813369930869018082072613613492858309018776737005686216559440558275269487589242859219193512789748339159844484278487437113390097183170281862535050882302993488761924475678158286513066129364422759648224589440734579993332507670138443523749155269046969363789613728922664678515844293484887710314111734179498899401085260878949484777662508580462979027559734446924395318499691849491629927198058729163181689290720453470652985237438245364793874860212996014107205837712541002397545812995753271158058406562186827674633665397475782714430579672726558436702056093618734601779548677030244165877679182784003388222144388487787134133724264138800400688591609081628249390555779459326566235508838108999946367830777059654425538791377737474231781865529476582619240584151978091164706627350420894137845962502964856654379983819885574897999381310430023968452530083150764134128864278025482610338055545017485036044225489239561464159759600718763119193028759232491519409912783341806577007791584720569839059188429391677757716341609343443573030483112258466930711914848430367101189185330424446130341839858695176112020619070028239275430012194189855813632169513201773346265942368590985418590564256984158370475046606464271751432582527821042491978083757531620002429228526556444196582007528594755239051733327924677592351208363227780691653815866936728918094445109219896297955840149655190619918906483620222222190392538776111772975035869518550309221832025948472386686360212071437543738500368322568270213194882672366106009838422546250490850939296469853850221722388549630879845136467064240078090392670937267598406532572079019921191558169361038376537487728168008654500219761282766832568627621810173695034575303086296144083366675610390606019824748297517329083008974859318994500067867187091805897730481281933278553235550153103710487932493139108470618847211983766805587099514410592546634213727081678932564559830093554892696135601672009638861785639662502322885848599335678409585256232806511480606554542481551401826181586300926807824562396701534342071990623002378885380420325408960781425716462456892116393968235865485706411520059384292788832080441550486856006675252487092437530266513896459775937471444816627406743333568481698451199917212489597298573394422753116060127403276549245598209785194908210954674330508683301428562585688647873410666256936543016706573083839383103390346770539124112133606762294480379129615554596343550878172650249914295535427377374220644528257923547922033182660222950938218134698051279242362647082954073932091040413403332614609811476845381294191541619882592143220793700407608742096622675613940223398948094124424083033182694842565694735077167224876203172244380637605739351897531657541318966701583672464338953590045194605498025996197343714330375280375916941759197146311002045609747265242197119903864935781337702463036674939674942663879503328013335591785857118572262813377965051297146020434222184136334904430519443650857664253946387453867744169041128819969423621645356979636903298570507952781520764033183782550058413161238501682269540825652654433677619218296947165196956340587010758862598332872936853541062529371346025835743392049189543077806337975196393835099762903268739772792393187540703204167499551839930406182992315656185941955565213003198882660454878309015014970607890998063784623715662222537801505458744067856342909022409733723693438989545338231687104584644391024679775799022066374788390208760540296724417691392745144782334833842274799789780205271430701426667952806970919832619081727405361610670225297452835837760265087557380850071548309645470619381618163702940969944067358040173144404321914491111085210655639009449510669314215815682125578495309681827009426723794435164813990535519103621374188274395422478095722620502490542501213412865391618269724797234866649068126059015333254660150872839379736566570267755703594265719777078712259200484401382299011941370458044196011863021201245426293302304772148664403208513246366048988900660727671042571066453717869454340063184339664351979096924155104056554859372840019987342479728998710511223517823016177510051426542872005731421963835684213242328926968440780086130047736442051976393834915321702182169399920691873278877429460600264486665423628862686887750692914011121773421954602415477442534413130840751905836191565316388923079701226243752999531461961492560778346533832347747410458657847442035811222064270584357773391854710097444898312346001724581044143050356761708957706971095466673411948938737244320169740912179515769375529061483156474765517706842998258668628931714282459463515404197465681656512251785799547523679122717543941105490231506797255422199730691921364831179437521610624412613653877822892834203597887959024397122342607411104610880077843124228205368984350524212901009397679162950514592740297822384722566802029043948023914744290417204542344531456111758057984698876784927817156651307705503185543208119540362185951625387215178384599556050777485895582110147757087905392145239370070173349010080691237779546582284223533143047575371973259012286039468653795504093335597812626906170666796733926561764837673117547186756890050692395452006974628109980705859407284451619087942643688779410866492511465887751621555893456036776836708832175470131528343140069357982939864332710284110596494135780728750019669551971450703937429573737862841170243924153842765790551669122101361213777416744516220800487085503776479603501787813797315994563749021330830494955813970967588521107608203622302542852371157159640812274369410281682754737894302530934883251018027880724198803246966860337592181008027687829846987381059892691183020298767489634159646241857397021709773972639279961289735292346741900263413937950297982999637723642298800510774532537729943210185048655526009541048820687775200433689642562071067493789701844064374039417716154609509133063767599514106357977929755295683565514237151308417287959896867730546155524136057426866660783033348106009302286906869301101193478293216401275578885614164881431687217693586274398602199694623305417099946328915366667655001041610976512606748046181522144786590320574836528734549986067957368699499773878627490222790127976814169503793219080860608430955473239783300507818137930269034978112020695264700911447931284524444066963234363438810628171358034584844079058981147979660347833176436408512962009408786076578570373773037566329722202860818531640604542945037821545140417158652312308181990039958947150431421006946910310230496867440374890587372023540323551110469559527975915696759782464930650898784910611524355223051090424020185907749010958823421101794365337309062267145905896249597297578662704571059502253695709012358212390578435578462887061670691768273979039655210891675435811327352293319310209842245924415323341855599059241124442883533204320953562320350367457108608183072992577218677873126803065267468902510713180409382336366686867014977084910684664758256302621264746580098314369987215204439670159851681994589853853703202736615363405199517024556755984250278354011289025652716951650945813439755755898281557476648755019337877688330130422622255435206938755848484730971942799462135597880647032121148780215935590681440613589949085889796385018660683604782130290196476341715916598064803249739896607990955003356642276478498711236766831119715953255577095426052738407243389754408137862858203687248406872059422157981536339343144425216572062290269497886385348632744246432379457997837281976412821502036456044182465393058279198649493257805031808636505546558500767686431471032817668868090403740856415516521729748627047048808665460753629784873063982034630479846319682291143899153926433683785376446578174547158339283940919557540721667467905674217773992010305790233948774401714598506439932427575544089076263340214276216056565887734233212705346564934289776023388443245328322657728992156082955921710425726015743874378497206033690815270835467894903816449481094278345682342374442985895353803799866422083492212470759987089028153974957230572515145976325522801425138026546343382827895927617482061080444115645069741873811784590419927465260482805404315850951187511535144887718900928411141636567474161912354043501807377986803915668765678075347019869811126662534981462374107746070114918412501353776186704687309681304448519451911213084130556377249176504557645865606055101411900867551328710414442192264123527682504083003217113504109819065988847753911478141939394093684338385095682741726611650707316490949665002040976230630738865800960215660664037784510015287396237358679697543676632612696625180879034579719589285197850545509008298180054211166101961545370258346959023092472447892146142513923018786609496356640143585903210971857545808296658524966784743443831431138623105542924744604977185054218528086345485287539234708510407916703764597477658538567040214801354443899756382302654473582459308762459646567194704501421154683657764317106905997192684024163011615224042841838472812288061067450301823660818885480836716373983364866373893435633769949431846229321670457056390039307933600002132074583991065810839428214480861957926597683708735931564786178247112584707563375286102425974554913971965293732139209259595712704015570836733457053171975572075366537341630379913491147633458193101655021314495215997324076702165030408966477261093710290143007018708292414511611043536066742859872278543392751904660441691309121331236519499554182472613010011404550285603674905903483626819813993642078142284538714096121874446038037051331457023583732000889464305219293789108267875239079345617724567118030516204152317117778800833672614860421370292471385339849378767590807516250222402315236491667120141425871244001812150192356844125936248983918525134801296687825270393198417649653893084630915113796598001029930349378319073849560940176135441857111529686063869025012552566478975490168830886941911497263166311551655581189964452063089128209409831594001212868802817634207437883545707647419519057849810137177487529172583859801339154442211072526482657815516744097586568788886636083700889725096015728417094099289744616272751165948667590012314111901011497795965026568164477639497194443343021459473504187259426160629020657656021547430976895359620055038323764025491438410881552901144033625775307940208164947457709944563668698281694298982081260579288076357481746673800546434245634130710061090126087616171875675452253412792662625958507128766919599470007577401575199999837016199560624999599932293033081043363141569412767506317035055808155112376029552354106174641061306129063183094144630295157729369254205665866429746027751824130191211305010905440428215867774569465590009010953428541008178068971315401253599540663454736786591472103381271373823819741347221527368560991672300137167360331503770652256192201133894217982280757945862548539148213105590177837356055565334337114098048405626613371777704675388733895514730015860636734238272458478905795537204814023765465812957788051699280972863895913106488064563200681228798067895612383050846906565504596636675997815537798553125314522605910686665897336193389732184698200104261577711900357298793600522961621853290970434146324889253079268298171070670300264722355160882852699268449202830647033248702131875366468011042992649542598485711205535090065145356338770146789221925693256778404375412900131934667044401697166467113897968508895227504216697723835652937818198188468465385389396900236042620490054704431522014479993210071173868172008149864271674668837485440845410590681850433865113468566416456960565151447587961141051478467746196730878122654484704535053881479876083988884525751538322459431790765293647099689729769159503728528953844056899040726584249708335352842843626244808151694987054387012324886853062798927862026406940931099814932395740081563111432455350165465829724880709221439736789662434049849313827350657260971827455035232714337070136289764096517796507309196864019156802746075330116863606605501137489415613570826288192393966764141752819182684084525842697017123157922470781404560546325231146726661887594453243074280956978431945271141292438841498224590239233950191848748949128883438852401745015043645689503378497466280643877908527798372355491084503690469616850438620036830148732992318029823746151589615999847775562435306151357204851838225505282675301168203217985347495158154177282920601764479288879558858531480365805963712925701615379306207591296148108183617724534812291513620108994316340243836554970611222767193375230337842798733434416634098430949124906015691252461157746737498447905168134445810263903949416959780471033664331494508460052610772145675587021077400746362938880211594373316102247397416426760469409288365079338243732930947345230523134873456047699118243525233431695757710443523936604845260475254041537156406872412549973732378814270849286709430815762435414260200745055573371978665075191495039963589561308788533787915229734437485089130248973460513615396760110552866411518792378330682276031043126737357595405291761346255420819773848205509363289825551305039214415354060277606183817875968681980860397318781994427259807289197505527255248564601259505345437830971476152513096391688172237434214539544305510480301721982780305190081273327831712767316954395360999587038399544726888350891539509211729033547485111356764457070654243435145296179550293851386390347254017775887840693956037301668019873253822218924883515326877592909378537879850619272835997286159869774206258559250856999515488390947887786460291289923871240498847410812803982463746838819042108042550631788563907545607446076005031336424704627470932033726682791100167307512082170754017818586607353447651925552277462749696616701320150698760855497496908796157886749245917142838676725097106528417552419234548657346636293099810745105357769765498074601520626971364810063604822697314798172115889793536635888807843443415221301930836704945169853931998600855112839804857429332198876271854894268427369391466829464878389184348965628035438806309509024890879487934921001092803329917177285133931083110555409591573841525652722404421003457194571597369925849440583329894601983449902284661218818366173940324499945844527007939382452327402846136007183806504705970536962265637211419732582519982961779589922173730383038634753991719727657772145449288318509382515182271892524387232991330949819402046172428814557829760435277145083930348559361109704524451738435960146402119163961624205903998815525372217747541661852957790815279922934595454267383868876570942375921407332088855661590082359938632534936630009322408863837742335865582751674654970650763080698888843688696047312182211798318188475791184783201081825580008246519419773797463552758806907505416338818819614643420185448019280391658124471520684126085755972600365871270275432230050518523915411364786284414551613685478562273522596655404950370274216110180133887176598572041125260197586233830255624146208276027689518572004681340810147507456669350977066359515249257590519319209851438517882665573723006569923272016753216140154025861969253678455343034711286590372806974431945311334711324384409769511621618125195553300788153946932932973763941325560136032085637549496348045044342110682105205929224341336673598222069089664621092022016085528810467061646297559830398368419911876129908520627396128957283128365432256620635180852483634172241088885516912642606965750506660024305828184256172093151507983059018404711319891862700551845563683791773763366207644773210478017560804104854019121087456512370593086621649757705627116565777452631798945943264396832279619896065362499691693739079776867169183689056104445949216283703950576013273080253075248725171089571886126716699452443303212210319691915889621785291397329036834508561551874580313192695524446434269858228681841954628579624687064725202999929682635741253901521646273338847444400164775103804457559448604351950733947444710006338767813253339490834103482168918181325275851439227754324234819452207270010801503889675510485128420204451305214710253874675379539230241651918265746040759544246001075545248535806940582618310325004481674289151878351795010162843603680809391202840617607111236913981917508977497392163668095620746828995921329385270889874126839009252062813412020700428931682593512536951026620914115722615721241134826977421246716423026152249656081011492019088549085851213071494333679059043793353579627037412184440810162624237059575201151388994810394429954452725768753486249624256606566731914316612696955839692594048168891300125535041834081285221460453670609114643861336527159376991578123110149751550404094928956111242405708211514939671873863541218911219084924751680389493674091333963622005513186643273693797162502310520456182726271796044001168333609248569211620342973051984273663115885552579056842409095434521724914274181211429141929732515888207329750113723813505409541045638617602118288318196358262325762581720998734300087776135053388602896628129230929947078375752020724609517247210717686919203579635972717029701712763339122662552610222313920107061618744472657046074977603292477322922031525726115509746357527699099330280778796578772323853062432650695103211869894716732007812615196290087064112725561649815295159641862029701213620661939824729630994319740876160688298933626966095738625623264191465859214333621542667351067244001749879831699781058930749802285400547163493119963613201727365458483264384685399110265656326190549246866619187766274522464891712994393091563282499878965820162860337686565321843773271249546879598721009912156773581598524903812734378706378427033830380282634595195257938821372357476196154328176393336876682581519035644753544718128347220829319012644489065283661431656701627599168962233529342873314605307542929310818816057301811320519712259999322302333731133518524557901312585541499385445744960125435847656961410339349607037520609441780584310999561415287440900900353044805492158060562203128937158258871598371266232072889002103708587678335668946210983466539341551940073538705789235039530697002058380420052878813222604101261637772460086651720601692144172009212011040628219822514083353387855061635537524271972929073504983043162573062259363291463262689561331989420569926499946001588716043469112586983796523208182595013357626706946516115146079435878996692703261992719305266303712684226526215527704069528491580703686475416890642736413602675726743302217189331427859402556015948207711859709992564655382529544663393238347163042370321983601325508340520287191710349471361724941033077122205020131152760930967464852004759934343593281961765421763186329216379717965432776058892275137303603085121590584562476589713382696224547200288711567114697679190674412036526661702873108189714073547827734737163780765072524254699669237038667550692848993847077508095019740652577311654935335510627568938743741809226551055369516679006320899468047010894334579558200529752425180839293123586739492194194915266896288577477442862990185275447204786504026123772469239495400023784905402892095783100482262137198447740627477485321557745747404000343073013197304959927932237487000075693223947998565598227069689263119219841030311267819913597607897038931279075150386141314181211085457495654375263817313134704994653917960289387075718568653467464234691325398074431623441809519319177373677522325692427499993909129956082440165590360261271497947066999821763787430352042452532014029945407436110285791441355443341714813769267908716929026632235880809692880579352713267587745099122656039916066324033815407294811720393952053467759749215139908657663604258033578796032099332563334316597426637742533717962109539542660907193010928550778210775747541859263600954886749175863825850340037808585386633802147364032575834517310456159470274419606713955375845325803118774168529818198364714056931328838995359393302563117297799839478637086848981884879759593497200562887782105471317516216435859152917818915270342658941359001983128024963066428483612842015855664949956895806745400868899741797981003476919949307112064666530558802086475968570603463214382227231649858077353376890942629940034890284715883321752211981023796149519915259448740544033653721029531445834713208026361287743263627147921325104016356716093382449166641748458351361326439936157413795555941688863633866710756434912785751565169007630005692130814575750099101658894456679739993121217572239746656832565849464919779950099846891810986732318615433764006167753946241507850386309499781623846310648017820399079337695422454548018817792665458995144190380072567695285937034604022585509262839459074685719265742371591198622832367773881835313496731732188141835118553071016381452838111147563164626299683494042894539990495638612344948695207101135088388033869363543438742797632859917326208184072843722206527550228912012693519955234693423952592252312940006915746867329517648987867394048755557055272837053390824456033781508903226331849400349298090985268664186460586777473316596703861762780315050669710742888921411257965827166213489614770881868394803850330270025187291361564018177975677937071502308870611716760135323779759510034962705386923834359072335642143898261248608187580734547931086210554274895104740635567484793035331477209751172769485308149126285457931715832538809355010898726570776611840606104779263704864427441887818558756759739413250984395056943518456566250149206796067819841345911505158699874895350399026066380587694776546519387831477043843321151333961043493912090075115601740429656045856634129800804658662570233945173974671888803926608177766288922381551115981079993453198501710186567296161749487656418385077905668428803288823309416636174185986421818727569738466698356671241902814383976804767396066397157276005967839869144788289165841296706820065660625545237074021623149155407094934829464606784139969673888704748220113351088870260515197040001604825574139221972688497261650342867420267219621671454808173167523243115039040152969149528497348799885878811889329744750081882310356575326207351726297045058392953551638219947047605097860143690794037397835863335514867158244511013003652745323355472926910773419268970386102451072977793333871787156283731392062557478008575541900924652498785202735874135659721722268058053110857336787803264473697830912388295367964787684584699230633672586964452174924102697853725780098530154626773575489406756404764061585279728772044982723383134407119481926823653544933755433172098718805685252912727028136536848370802341188344540403334964994349389470545763093681091344829374187320856142334658057987027633982274394886914639760444569587253980131471465007620356734571744859240780564888814268360357285229390835109018116109532063928116791099951684068573742548673396447328931672047031621018908071718261829498449678170799094067102305406944825246008000116824147354200881307490740984042870428732344941678886798308302200935752272252104277239602266600548352716064346988036713319336414559296092059810387032537151259106260826845282012131546742653110426358168622007344078883439889880214638029489221507251023283527195902172918083395356848060699174343992685644413909189645102585567664754529063677813636082143592199811724788096233359340859027740502551646149309383944264115721129798037401409783331524012224807850606062838127406315090810010732605351115171875420867720336402145377068203208279624809248715147156719057143756834058415696486487216902024689582259651423589879422063919612251416385124859201820572444773638825159058769372279860172983613090177087005526475519549997332863262508622931043986044922486881014760199599819622210749792103277890955632426395718616746607880452823055188131131310364578446791402991654633569113659299294078303773581492029123194365124136915529865006925920184483523600640025798267754701630757598567573110630887148813656008705524401467145914234839912050316447602149715102951624883976605123155437518036464166362455410237345007831863160352155473994683379641833234567493349139629258945272932792673812989476427519094824922139524452506569323610161829107347722918720479341803270466438748762347567965104324657589407876427695957922219240899160476137802295009607027561424940727579257556004415258345218592099481690537723736274555229854851197532373196943117288061003524397394795430972884352974201815000376364195229784747259335394200304398568161482614523561030576787995834158327223586551330190712804092519159014608841654098553854721093453930048155708407360487066193614097921423564000083373039982007578220962242351359445269815796309297102968497198585274083667012003388697903320911766223542622180803871327924010396774331002962564108465543015071470409188131277026022727289353986169335369350675150347572187900429947952450009439867856390882965748849044181177792585938080985801050758739589887742333969484663943432474827239025594226068432089435081511411565478121075966715002257905440313445963997995447130278169179286297450122305763621720246403844935241281523089012593333225865267146698190324352485919295345926894312249768415902678607802806753785138027150325173089107004137959170931380862211327831135844676715003179437580603606822639315909269725079992783101755792743333261657015647423663188137403857714691540996330566487158617098040931550830971798602963141953258288946297771666054623726360928755040300890722785433345713324154189120337573562985903019343455093463746300201711980832747664828844619058543582448748210570337867423175264045749047657323608504991270717987420974301760345491054997898219848370665815438567824456387510836959621879376704350527064617545333069321242793320732355337610971288760629575695003155241882685055483573290487703490891619244284106816705438319147595151112435548579434860244726324000503342702311997236269999646692242813578664227385175346047226979935602780220985037192192656844113222175390517518003711514415876701296318594628700731361799558110483760488729606791582819313527213159903954421492300981758814860855750956944902575539996334913085332077312379072015468287365338293060216579624416519509279214290181409488993415794530050963627577916472369083211879703436180332266640458048957677454700000849499914371555425021977400395575146146136689552695665963996928692290265568154241684830168983035609402810807006660865138740638783875238331181077625244917842410723802834953298990727171449003698177988934682736154439349827296750415976357436295946551991054708017314555942457473044239840398715567268837644088217146027131064420208481782070096307248661224409247931951689097690831174608847123729333423682461942453484101598972198557041243943143094158154126469690090034399352360665303698426460951434999683908071915606812579439012353367148732325043351480802019290140945748107136594832394065306416929940088386216856834318059479055886903127975307576673748947596987260575300737981499754780735638275676963548677577510285778787336771855335213446213392149570672997269048600464438471430909458087835467441026799389073591736061592260808628328212846275800552648287504064371706479051473768044306264989847926301626182678680871908740526184069469442808200629287879985705701599989526451477400503176108024292004268287811874378363623020673854530331872538799786359122040695493105592455703143516246378880521095127171664006963257343069102841697242907459697241757334940058098011714891870715757786023610095638511064139585603859550929039706386437596378019004750968641813960905208126601587913231983913134940089477738807773854502283556662556268995968542978338895723567491079840840301529773179094175777767193520000188995025064986697450298943584550296676919948380996838100552823838034321467680858722180873792010809601819453307334627641375057414598460446378524395842422309173607504468075411195166052832508158949715353886931015273439354995237685703616718911308125609450518807056427971527804651468098804924701550582441362030754987480004938706573076375046763561326113981673317469721697418904132838423449257013828004030495916251892596733732316305079322778447815096412514342237595017569315275580574698175470503450215360717706268679743585913027425228953249811798137228096697127741251664717991845526971979418873300148075892054167835075436327533481384874706973640165902105598185502640738187969547373821644851908282488189684754119595312859863432516313520357125662362401057334865306023179692496356318897814362607102117520386943855971909318004574388457907707408256142055973622000441776724215911615028424518004576710400769761933317521501009691619804627195770083423822731596903433453163987154150593847309784203600657970466890526150125932325334893028772110494583135246295877910501388166163788205733297077632594618083099067240082621633609138493442556803042418936928370399037798537404934232151473648864947768452695814317625281562211592722663880453129061493597251974841015731661982501314016428318642619724609868443531902684680491955862142962281482790540179482034725003497769112175663710761940103816106561446765191634001120885509161215837999316555682352431985672097484597120500346485270129679960677595552667504316737541228264863338792369019069527665798053148722640602154349805526983109326376693237540938928689288757229179915039321216001434002170398661395789075659413224613282299248691000048468984070271385018432823071147878692931975684720937743844863346008990686975355737906277375249662062565763745515643646362679029879256699873353148452630051667348366037475379274160483998776706643248999251139280027202842237135792939275700234761207387173970473925544489152827785728183666130649944965071962857598130997076696814206088297107200530002273142586337116635365763054176564831827919592374547270606937925171567202842438493341646132742600878878038584087554258795606049203863858921168198938141393563811982023881271258776449156698361551457959252732906077120942725503814546486523290471047282414862277620394012414549590671938195969601250960779103127816554441344210343007949733154361780476215296114689304461915327135692327977571860544611606596207232862937116008910173237372601192809951200130083759570958487909951484169073803236781117979271827303060308857419157802677748091584081749333308500609521838241584024745231979940163995749820294022614286613421180964569555275191322150519851855413320005957339662039983031012296792631477132429855100128296155836570989427615082240159667946015658591183682387141201418720645746170936389067460114773047420803103067823008294023206167173167922490370218100540052388605873388774056468950910832289750916716980776057080795472622286226094869267987896937768524151857142953852832883322219864252768917823104437228646696751615943661165306431463367450673797032045457410703461390779801697997635000579274211465042648730522702680058685646188395260152590686602431956910480024626659065050483375493289359224311430914354298876910725284716333995226582234268283661460067918730664603495501448812295172720512057941713232739402746378682256296587991731290946896740002507244467294146980418606677168007346838474530647482477632744835393952019276786261865379629312300910504809818887892666817938590657730319314553817023541999673677776007469492165833396293415232869971091787669411872430243971085969535801839918092352801933383760785743462943683246701099379951417409764572830890466839861246864588040784201951521332794778756296948155405623939823384601113705703023448990254515638887574586443605757072132362165625599416387328106836238153048523843725813142548147036066879965356122235755937959905403654684788811518407468894706387249685594154169963974660297544475750846600456782344985646295323736052922121537122795363207128140390852898317555124465820169701899844877129923054272142288961110633735658271383754183770906237200210107395744720108974669871179114349067427849572708341095149250090690884173903571297826193619436513477626680774656233170121548877356372827829223845872366709012170496637438454185807837420307235362121182778783423729782725345073138066378860925655786980961676033873240887091672044043383467614633664925405656295888958234100783277749786522782184406269706671701930544551603525664564209691818846395620614498661693965553372485155841228601022322326755678990562929120430939093119673194153417406084507900568040548238423670247504597275803675289602354054434746167700869504549322222286186043540054603504555804091421766322838764108355714846878222432646081018476835247160408363182734791448608674661820623540537559707417754469211185645354435571294014973751737119277268592425623398614287851147289134576914110568600588714201397981365128576101594973445102966090160981731608163119857228887784015469514743582449612486721931365601320398852274268270582863261923674462589299955786171590213896386966577292537710781052186937667940567652035485210320309696210099633424275918844568000121434344061386072262506899317550179413814610214349584979209627791700179931444770845987739899690692369221021844469949038471681815346559471905786176088034151058626571554185825906438787901664755425857740539219432291616864869990801041705225671921642329572025709206304354261730076466065359514404599570641060513443327928489052880481052446257571284651955591794679121916765906923619473593681073356074053366747112884272194440467766033597438422996842570841910596917822842392762536234241063298378824951301342098692774234464326052584169263685393778602865082367932721934285449950268109017629301691475440523753935612976164067598112837450964365405923490295722805366122195381039681803224991375014703470192775444355196259589307697456372808085734612886421228852290970138438747696494933775671925416074414887543504984050913848067745220506779576308938555651896931844278810164451330920969894846696238506229345731091291790580686562116366175504805647805681406767596679844857572209569769607160131661889047531544284063546622488800802519738512380810411338456902841974798701879955759376826376801167929934475307567978389130639170968972113847633840758957727344567378317381651528051153614004622436495353692258033100127636127536155771339046155881437866650082905708804066762991342772467561991800185575851014490483590375887880477823760139583118091613170529821471211931435119445289355247821341927795750745420133018153519854671470921012117818177927557616981609994828826161876734490658740192295584743895924305949209734583758708389518310006903123599537495797740213924146857324805327970256544741917993340482479864555198107550479999356449075641279544050588745366326334054804185039029484309242756738206178922058193563328783320883455908039875083348681977378850777985489142364785712546336565325185332696304983655611861409704285781710371688440737782422655954801504396547983198308355332675026380085876618228713031719255529155965178380857895332930693315137752525019594845996868528089218780054083712096898693816125921928932919949262266181635767428885484870425684048739081349488834391393734127328217258336967856536050931760178768540445129011461692088399715811679231316686963296977791944843097160909026560431236795379797411141381438451320508794061581810625980003267597052139475473956713231518948593217230689726269748580682345047647344583448775227658364151201620668716268500753356121032983891598276263391886226075280364567542869790917058374335159724990714690386892959378502911980713673307265235268951150011623465025248516190556647447309936061393252852026574774788632674992525065851735209680002268131392812112314669734965967144764789951704835901039836562545786389105462551499476695817030548294487186757487619219900067036485451169194548910103334209651579000376693253784933018952480741578265590276345488757225917511867511563615848730620526741815622484874611251735509501571632761796306457402195074958421741947921756864372025618911441142688245958817244508220608326930368072819197087622710138597674341797288915210662077345021902875835791632696200977608126744264784509499770512341187061768816816822250197517044464691391814029241535704837582079696756755004547617449062590975506105627578297030455186948979372620265267399959797765097201365827089482403922926547304374807386012961562773737423774540268829006417183075506518983404600594441996398293144053473053675364511419682597821235108309246326733333647353605355365259859949626026785702132625565797329903518697074316219274832421419054378811141740933947999051236609096910859952934115681397183824060715136091051640844449742368488440239095698358176276503563025802801689465268525202023840064699158277396764352010398926888451405049017015029484251571646938624177746014788800517541676106957685469187280334932599405591584985950832909164751520809330460951049195047761810784439869963258449498395552684093436634662099018771930228884731421917659982195396788919861484808842241212122084606234836536352357540373569038297061351598882961661282918421025716694608857384612837823025079854726192408338968802057921356999220277362594343658682323161730266847978269657765472901586250515177001988377457496850425163617230081533076928318465348240751838237617516299109345103844268944530017398507217868629843519741795621977296229963793391497140572826238880749193890316890300682349644383779845078960036048289802185628156049820709226243400856062180290836177400083944706557469291078957173250061044221861343693411318697721645094813213654180856257141952984950359349141116503293547317071814282767612948742273765732815753476581258190796637683469687603888232283367351308946076491813978107721101244875232129391857246041558628523273790893248777110523708588080647629642213760653170999789366667935973721862410712585204342203288392801853090017053464613586878735427654643997434859518826286181487261793973252683097181656049640588069354985795810802618014884750395474116162211845308757841388332553882232423281414173288769455386823292071322854080910953221769041972068891540436829418695419406390962771585608231324358275304458458188287841454712525747409405316864648854834197721154260917297367277544945577549790596276354975222839293673026448377625332978474980732550764265338950907534713163552979582085691869270035340181750159649052045338324783017912954761723871075324702071076437096516636087340456604868877162996008932366106338961129678713876362925297871027166881996631909980876641182881662354748243500384067962874736205325991721789568723995600224257726672318723269403426063998209089645357650142611002990673977861641514213576032207072398252260343140267924077017688776162426881689920881451714722810171426818291592939804378780329695754129198438186911639188944716234102998381326209918106774340409836956107622784067594584226290629406380973475154684534527872374241820619089659444215868911411132798087960176921325082687196720852602044237424945600159530264544081901837540036269871634605466551508758321086557305492321836586621297680272201965210367603875144432442554161229405994933840820527306800597122144478356494978548689561196362459344085953750198976948322793806791031269281585545969770112526055607860644018068188110379374727748882759401102470779788133801502060722290207738175604910212931566301203924597235597288176448474369896559513688459016804309045762643200520438932238550566195948233661030749125046094201921557975704930292868428122638992511423631580278420439643200513463153394293649798834357432988633046306616094717544068531271172276164128867879504248082201991243406959651666267046295442106095775180301962800056928703364374948484021373289422339193265479622970992061002397735206115101656771794189552998002019633064468584179652386639239840522576020642625227515314654168005370130890679796244541802652514825856566656206889201993514107677669517144425422726138095381893612240121035306484073619986210899168818843041895243209855476392377063172658734957653690577088972158512055200975029648133417906143191198754709339491746067085385730176664741040015521911894490127059518305406332697795497424547128949227274473566275279585510522850536431119315496102811501027721483558558601252746422110518783166185129815589548415918916848155796191965818934356371398302300556290106334672173280406639025334265365001074491748653958574517725728692277425528526645245924754763116284115649221805977028138758947114064689952019899855857517792123026520374220562021780734136888164254635108904438347989600453763407232721985428858442295605185071274133009489084061105433776671961290609968994618989077344945949109093974631083135507673522676661256477986236742921733169333946505028918901155331946900400074993886383189786059773403917295611434728533337047454154254761680196013150027220830127569444146279751777264134373318458123791429015922681274843268377537726202183004380018095387153470223476016236658903128022113014377398966427285858257135038351135021082502067915399988782647963042807153941294175534670089174872876692684040284689593939641114264474353600651814959417727089962649404255091610345861524181844225989205577085216352493701811954719572006629663125083662769329066204200957876784823068735683013449706028922838800562918200777851287013697549462902358060646881762045450993790715179404188669835355037020671676111270748883250245879965747843156309786566795578584122682288380013855000887841913028270020935003694502936692289878166844770682883449731385940169947393924153673085523773806636819492810347133271722802587527587269592044188314630011699880046551145555754434390922584560030404932526951835966033818108508225501338620165858406862092558426399688390841358436012629143232682623410377909134054596513518649194290659958786724299776686557059593266035338664314659784387582586707720703196001949467422402238158482902044907262693898266210951858145547368489741132059019065882068544751511513684609503264200838135187789587027232039619524756257809754310653874176451231420118315498942114438373905164548658896169838046897149359259651458131119743845744327781972664286473120816028289361108060524046691814334046652527158853313155984352089201663782006127940289269230318798305824557464534212677096988482104919162939714635487483303394801461795015726639751446155731149179974167694581577068354038755777785596937115647600355689497486817631519205390412216981389966021751875516481968887759336172490201875522376458057982862949694918617427104932621262394103081714785807355641511986440806752503086031356827835453783765231162032460918001642502471678092394730794809540582349531230879380268649444243621350518067014345523624367532524773157303718709910081432342953940179778949280983518327503734967575988920373257626172948710845486321054458840561554805547515992755538713809417535504113750052768505593283177421199330428153821911751899387757605169907570960668087235954432798006761363949938110753138761971086641657845090739486094612140134038002327981675566136221409746227348499562145418045268854029006914819362937706081446965892492107900098324456004846195598741220964472815989336770925956066228083283216671915411172113502209365921463598966543142172044966061579238610017909470777054824032607406092087951744112139206850073799814980055137039051617676289901314251740784996493220739967911600329823912234407899205414598240482809137365448686137317276515500265948771492749795287457515090195100644983841585311235933245779562847056876669860140604691586959875758108611906783771680998481961991099760350050384557169632943946623794774975443905533880321635803061507979403133234147662793566135895360603630658273799825226264582963715187296681626213291195106155151297913996972324129011338963694323739419783215910384291045853674815902292665236661649774861032350671524324336376792563080218863707071714745982628187467059431710606688565271678792960888345316187787423579057161864735617060962056679150190842818957165247338228920882648803871851969837725663167543314316319576839137979686481260155486866173266269993025019205133183884674992471759054868894503108170723558827741741164343786786329857325427956150001075317518980624135504939492518276490947107058971778587822605841402946174221610671973087423921814106872490823652443360032499753995366902642075349434401876282035420927601780809967894611692613522660797000029916970976399940538501697599734508628771360897366637547349079095077885053988969057365588410321742337926139543725171441519534312984993617787218383258552633112258206501387965690639799382001083302030883715362329742433577988158634692960710695882842260652933278323021779593957600868535782706989544632988914143931688402308888362557774199648114541139063956477385525747388713565703305286195565041060151662232683667354706725760712969310025885338768240345308765292752409095254837216518134119992777581492014046532910727172691182690266814146968380601990192894278470999907494992379291338568480021367640802935144080434224923889258839839112459385356963554778488088110710564490362898370541777600059701541587565902352104982934768979649843663994943197755016543310595246722652850116975199498649084660855920850902288440801841555623124723097581825605962206761608541018129687460876504738659855884479600003185112497478265257162352470086930053620799010525596262057630221456239503964200509877053356756292490157586173038820480803156027346594628813719535836707731317971825767954956081680254646832071941379483430176682517342749221621419001681673314142675962837361461368533049629670179769267072908911656775679088559492927311645348056639840227493748402647594536620520036310319293659691546178572257901910681186272518940264515832565178194617666113861472183466905431657866809205745694798421252918063272951297902705093863909989519159685709843938364957608357676378251725067518603758834188421070621174850363676584707989577064957583384922260875834281515883839188349829444593311312023368745898537320797616804207632009567637640227368918291064818228087397411110661377913299867340795937984605998258582645274568326281736741674108436314602217622508718951864987623302820188985227999433853220970828411186125282878023126505795207812161563733957109849116645423037433556225232379157059486923988751838641295282353921800307344722993399197208274791688772386508176258470629050369481103362290436672475843117260271817819438077769226456614370192080191937726318474810662658793209644115547337699311324037355562585665435206816266081499256025906620724751769847153269806438227142361986172184471089346150568193256415028927639534264329003952457281330190722472746481704056866849769258941015655092684861734370577259417655448912558222735887290081192453524554366255959536281321813354328092200136555475586241496379646565902065630340885251870068046834660536228185012152465193721546022833641815186151120261913399613905485741722837577370120357970286422352130328058501482014726903217943009830279734377853894492594953177763770363782008341411211604877621139367262194211351873311060558048680560087518724881610594821109597273912082922699518573279848590260356537495115848806728710524248663752944725404937559125106290451833525716437365034327174748344858306628550532942613261546867255083153035970656091285800374214990128099606674700789789308398643261433249552659017996308487421757128814597630310097715968570582157410137312200953338131760079868841022896579599415743087642564160288801557834218875918906944056146139173801115028691752968107032699634783188500368787322245575192219328691893343354903634575835865885780882435597973435489567177756164344535476369766875498414064842051222968762158060888065977720402407262116026817185474236735506996696595626064219816797650677445099586008349038523205147685176569178432644639597021713874806421674797795025450309439011830038163317186328067054989410435804992516244270215388513589115812277998998201674177042181483489992661874161886127322864120904224133802676481249462783521255003038819412191057526200002300704917285046095797863991776493260796179078046170499116701580735312643631719168970505349440679964366943180978500715596607372752847812124593922034218336502315966285347292667297855540660552059732591008190274263130809416391359915454569978044387854665801975351740092692572988284558998683647761931052409635176666700984248134197018215033263360953771476764673406297515216933482712402095973337216867901881906017947359766936154891376872823419733936829219689758360423487719084154143282050348903308089898385116816250115019735678673535770231468495587779858509640817250739601966065967319858535001892451155575584518871558005288963776397004056273462525077956663762520859583959667818083786635167834823624880644513018952891180314834724935188123138500461353184836197365342983454529522169670637464323184419402106469575205986802872992646270200854110773470236223198149147630413491630319826272430990951190263510283335619310641504944774955877782516265287286759190666690079422858981969313553490329328652522327856292286927357955002838148278550544348256789070579027513140009839388721878862065801070394590366549342313415579088703793819727695645517677100464196774578291167882954685005784387083679663049655545460342052582417045640659145550410107461170814581603104474386062460670086104098435142117490925459380032025776966450621339298224431741732983848300790031084424645791509708263408691165352397409916828186088104026990462557216777324244951893090704920784839926974529003083518404299371716639782094420188995612277342139889822142874838019817400208040211559085081703355978344363134347601748323847733195529327233967874056748072804437317118485305918446764673943977522160504610958775631082079759099636335760098987916961315868995182668259081220624130952619379768188927803082931378718728309766275231488386527314700277557728281980108571225754386582601595192409806493198696438823400205732156100122284912509628461527973101476088750397413122787261099168403870407081506028604026584779307409610234167141465852465709615695146715642326131158388323151323923874659683202145867636289024400341804852309139799691048965357335641567865856038228509176768353729931677280965260100664868852122028336210519903963164225999823021086983778333289218096374054160198496921479769747885536375392253635452933710263828075394872134603591291065846146225677036252912031288810541015200447876925626982339005687044183566274423341509714196685431757622631900879908160951275368745112533733935813374200993554804258026079165035153885589272685204713960370737669883530353212916400796428063925718612769332526538811669688938464700059046912635872586225697748481986608891693213774098164733088853057440876546618139470788487426820901611435742679689653627956662504147084671581102023772605195659535629341508247632998452799996218096990290840820356675634423271021199368914341656039871643495885747032408548078654376290806084951027491631219497215733334055104606713778097407631478960020654725679963959002148852643321997550031674382957500547330890142373847953193850304689494069628274463793172695409442606053294162663786387379678961539796674391736848031829834771519341466707519859156282344467571187611062992198763458651781122796027923646312105833195934009525449427856906017867359355890226029819778977157423468843513979359677554643654223526772669562601082131817515159989932856682468975715919183061482465152223657450914884104090719282911603945491742647562640663225535666338618856887734807884777031930481923129814061089097313131069291674600373038521365925622659117524065121635303448066437551778170451166303736435850834645116355406237264340036044851090015755772340847751140371874364710543877693053378375418829221479983201973405835394076347477751093987599015935432669516819948021209538153673677133971591908159504178451216373027064368775793198145039996116720357956022326683065209942214487138097013170741914551963548565445036196312628212176857112459779735092105541200318779836036858243883491369239672226341636568871715970118924249771381522082785562561296270849549160009154219312855600978436232726783249656059131285885868766704037260593735165483572769855363228247521987907390674925959876889509107856317594481831328720832526721414026119523074897008962153704823305360856370051038630798824350965157016298640909529197428216912378681946363202949369859790858446767119178132467280806297458875938858840931817922571113155954635395824920621639280874627735554321732393240827668307654558467339356097005207608879953583079565200055959109157052651673591964011858651051900400701857327147736504493742638405410920657558125910225704769652143647287143627358356875631207814138490183732161790893553034149101037986245725792966482489072809155014547790462718874451788759070689474099800053827562071876746953862363225077620700056520243559359377909978778067972815812939675278560075848647918244175003090658680078835339364759294215228910362394224397245525803578727457977852633590754153788518339594966075511346780775281359874835970431167468465028698025128861100318067174734529167069557050107294834378278950121694645336886850266261390126564883300584834662867947058576424282459911231776327518169457494155304529860760353501108635350666077926998835973194259243362103076120528188312541365387886192389081118741904477459812701790275285057093339640935432135938565751255639157768958179888459332981298699990113810650376033843454390113978924251987570823852239246800872864725064172701371384855486263024287034156779322444628155804425365341961448331005634382928366767875291577634805195655014803346391044692831673068636016194400637665369198654048890200610803575668502331556800430834622832046888071374832225273331635725380550347885691428600572345158850036625989438079277757897062880366813041125974889271222002902429337487771150142120030188874899988067180930285829190278817888907315434868877002436199211493000745679289351828706978376759209577928702165936650041756618525395479370327750953789180583736167680564693689607416499727051381615694664685578933649752695688173157936302655166709811401396689757087232095382595095959935964984318636697139396475796905373408731205809092676783343411673122486362832815753015821980089887738630123014002680397331963213757949473947533213697577439548889305745634293498933236801444248464099787487736457244153582347361869713826349829997434157446394944781308322288820468735825918108414938214373289763688964375035866405514076142643840950525724900804213899503958109812437491631964093153230768334595362484689418241434482997129573198258126188418634817392553321999923419015229223410265931410449598547417502658725056034891793041367834478375908101035331855561018326631869067353112047133776028281664055462981001732189723782588308885865373991517037544769217124218390945479348737074110551766005787255108356324198441902217821703871059361984938620781900356511701781005262067537600554993915819360303548374439224219541728746736169443086460151246237366618281929541763494000532485125613826403672940494127804258893412563531552610966210685933327596843101068704041659888626717857398892583948740023845567517469101883690528158305827187536063789297146749737887902977045797118688034049838574799910198493339735652169791419237289277372565792806720799364983894595369456370064074160369718555574817539165368067736227370059227171025914297930411469198588709839179336518449817501228799822553366790356700169991357243233839646220494414286766156990985221454152433822260423716638090123514283655764611430242413070009970621227388339313915941229753211996625165505544787273687102896295741702018526781149906912450417287637119046167928580975093552783654916336934633236287119051380810507105336706558474423095254764172108536033233187593642824773890960569899955332167064807052638205813233074347591162243561807039486183289363702139672085603865298295339425682789262315490619445238783202208589124816527374393136828037908821428029981220125483165858575414739685109922129732258598237244612400106302137591245613321701912274364211205142296729822228096131717185675289865496175518174487807133678166615776728834262233717820494534878673110300969692380083140226572774145641532679801217220936375637394727561062809685250849736121444227326681439114609672992324249723226049563229736964334561964608677926266610866580952980684184015944039546445714838625929224700293001669377757379988967499201651008300201276109884957774347935588121628878747592774727290724278410125991579675312665197858529834804962935843065554686945349736426795220408320072344596543540261051341737607996608145936142954768186538631590622612038275759871554238569114968839076904166298194882445015288390163939771075228949099149893838977512966250213447681585941878426842332382859959873939083869884691893505374564069428237741952965152630771248411269926931137896634872633875616217342228412184452427682905201725100368830501427795993730107593563374629397406016469169120891420833196469284838934487989297475069507095840157007956233974318917049234462162636573467847080403331239261994251672068478821274106740077658704823584331675270818355663651155726888715009044602980894408673141125174841479515569625804676862571936335379060659904510198088122956345958074644483421394927625571339349543548521554160326649474462413610445933501664048167135841261323716569314248523951550293764501477958134006849785322566874657282688438280111252081058716626916534708808972827802293458500545091749515792010354444404282890775293976333231193641908509881853014991903637498896166068215393470454519504592087904287278131015988433556621076960027184229400058304574755590294503357586403937607276060543880235028513379558426527962048259351629359656709865793794451101214706644828581428802340524248110820673536311885507520567975879798004833447904864206881487238346340607699502108445106109940624538579550748700704434946752402123812118136686433996281752283404173648727852129699521672707088167933601162028115525442823025725205968135205611769392358451235135197043313081008559861901326875227841440701571546810927873293961965475416664956831418236525387918065272979497438429095284719015932760121280822218065577106510257496170484354480064051697078806715077454996450273198379537084676233929732617161679303812985180217106410959431223097211604193313526815337142106336451880841191952534700267206583729694235588690948773452928373149693967884662788732705819062091609913986316274837675877636968117571552729561581664303536560008049469361086993597895367621869893478463135567807171392257164571953783965508012024513839153917971333851246421075813002277018674036494146024278729357639848696588327133330020260848267595897288800179934744639473011166279987239310646952589463128598681934455247477712067756375203719681530764645491516664406503053786723547676775358130909837960915128824711894104417765559653846993058175870039084855915974776768571107380457084300397613851990236354162983112636626619347866504513516737426942341192189255882197400139133899458411208264571385069053443043981663405680061789081819583837096762953665823267027061257759809257180714940210469642034436301642938236708512993277588218943743872551840130763175134501946411933229091617452644375400489834745494469230066264094658005144158283193542620542204683572618762078925111982425354287704870621057389660750888813408737968581695939302022835122056603856824225601922730609917129220292997033140932203658920030388785269164831383286501723558417484175577441860887664697299247308829274913925010356350619301026789827292781969542589262206248069646645128857494231471500501710856007284639969843023908969226270966396098652399239522915220941836529895698269513422053908274816140854687985496370060588333501566863663897179662655009335226133751497409015671904090924331282282498690531750496462429746629742990353519923007346248978064979355754321960943755064955745736223489603774139516480325213360573812917543333417524208248806352599038019989797114224921513453326767313250427331300170322248304206340503042192154946285597748815134424780860616414652861801791119196074420695745049024522016707955232973664643393770498800722862287320005221800515429443773765026274684292939517433825432529777262805553389432484991752438315716892434358204327966387517020752605316202161314321782764223949144244012862351955483076000227558028072674356139713427192349012045162222526887061847969630208336405998057139944885585029469243461799824767974240689943386551952128788684846617904321762997917230529878196701500707324966945498433815181954232544692370764486744123367063622477999906816900975097826577114924772885186217961772768158336203800458081977005806889466022043295712024513565623694492747730937129033583133974651582749503670825925243576190481577112805847701876067232856687487767004350972239654929066417955309534186369218012413101948554534934723857446317933081299935532769119574229521301721148122275240629363207532979682630188607048340146862529960520665985755107028303457094248311843913363945517736105913538859383179601692268784445071347775688935982388038223031489461201040634547920445928585315517880625255593290091766026092513907200380081267174594519041231957668214339435484910710468602159629994420751406637910992056268547084143975417129507786687474670491374791696108244565062185950103478720654236953157154108419027989925868087658351418987751461185811507231338797114745081092964742199496772189965328050936146329828454149445516372501545974868026198143719004173393848783436809321901645739134972431712905701950323962399811901402298784489815976262890281885824078030982616945173827028303871204801285236903907562305637942104642391887316800112349841290271101867455096553506870850881669899871866339136386947787548222876322531824955422410956369730276675008022372832918682100603838451535372996776954545319784139514714897041013146826102424194019085726392897975890648285158421169277409475109561683166808864161874736445332102436426002620525605444800766066912602240850038089893643348296954069217283026883331754552073526858278279699283639341072402045073870890461542502821847189345601655192869202637168208353829508318594998601001546396271200905279393662864379690293493075150352989050106136506529696851927731224969443209625932422669413856062843741766145324754623374379007579642367880529198259858377689155143069413278888823985286781043626905261811216841383753753056946857927519230846115575507885526115759403929146203993251871497066300743112443888916877778161063815047884311181014351683833645896671991246841248563708335614267916251397629663112026746424765722210165088257640800056976099260847015523819105371095685301252432958550976988734231493620988660654967392050195979147380618835454738715771993446802061182736864801278450943433636436998078177726462323793628833975846025457635176216358882119361917999015382833890024333159638567340864555189713182201427421118691455081885133617643959249750370207066138194591060967997501384603065898923994515933434577071241840007477383997153811436034054534479008523469043164801078165851635189659938583429225309066250760534682970807474617772235890267270809925978263277000391557339857843208919089899245788114410162157827272871755118742062173699158852254331406226965234422179035465215783488536283102963418234405647738605360266570613176635501837114516160581343361819619944113386677318404804131019846954500737832809864885615538730549954568517448530951420442709975395172082563921802621729280463680720068084407971885227333682601809178135120196130080854661222179554938357911797132328175248329285110591986822675348757279675986751269516926570305535031510003332626459468480470972980159347343188516150062032755130368525920341138026495403506418770015100472218567147385494097627544634462908509861288116991090036021374655228428432692108373501818050739687312033777128925070744896344798610155583772903255213536268404328876052013258331525282309325294102867150083474004749141246495442735231044722232459227691485443333851718443127988685653587879688277858485903099478784510061280800167448522179494563795390004996886478325130816652727356296691032948724118973907857593340042657116826055159230729978386682102259398437762757090827553408058311630736439698298079879100955092883373799450659713472178801900272459981052008115035255019741780070233708635032489630372142327477359831428914488887378039201764156477274521537857406094757432719780961324025467051624029236884126928810932512451799002072425809802933558827673839291204609260652433600265248414247961049448994850297696529562521287719735608627869575367833637670579217308655663975078216270189557978993039544459531310403520494075433849225991211405419454516694929510476778256726556313257598637446813273857080655716248681226574734712723086433558543567794099842450817419902330855295808435368683765830760910610324298465354841836826419405613680400770398211450983627901617595479012432907369569077509827970045650358131456610382568333953704121166924141336737380969071610154304531042628800920412823895183791091821789753581026058717060482341373615197239262142402253047131322269631163421553569881295963892622428949483660093705600744013665364911180038817262969168874318092826463150398816750417248707629286102332850901603155910263687909826201126297971476491626209252034504162527412236521340694425171214744367017012755794752894562440021374892430845447693126975524778679816935250078779184214990288123415970159652365830017189640366817775465866676085637053398584715457462349355847129487437991311486333896685495455639651004364079118942363015637649855989473423316691139632061548527805146568404290119210609961396053398693680485889015689165498907111049864242195736510345503095999372778608435812747679537221088458614875024970032785247726823748498011435956471130910154340458966314303541209695924774901559880937443328038121823351823583662732027235105531467475347872234880005513094150854240456532935149619331775071573789128717482032593933249644680785503315076359052175717705114457154309517703817654429896552313837423120176513830861027765188716030377898125522552560397348091493021887535830961798588408744225842494151131046987138827121179821305631995444628332605199696589380323580106456279415948651415107774984507314122334390669806600459726830496019854909409603280284607749229622022971216361522471680526274433246319498046478334758355896776727227195700740035862192220551172353708941717922312328614399630207281445714500932226889622761895080115654541590988440064528657836273098975906494479674728678396616979809580337078203466052591261548496143216503628074569514803901785421350042532948984714828580015262882982791311095197222275670995084599900873878513109781389259417732758733944199342034662993656534949787533768078580550555339632659023449396081214813911776031283597415721264542666919598207967680464085352357742183249572385302042643676168838791412666786899444688857208940109957779218968317223087077807794361132675578786155722700406688259595787538998739124138072311502012556177019169565870238081660152828237078288371691280459088272649541405469391489302573020222457370373358462024044613235784183186914219786565855731319337883235756546393745502386250991420795116172511592459696302503707123666820235889754283739475402604503541003802021701496249859412818549172950505093049361983589526518792041921523313656174005792223115618087199366987227575939528331243068599746941519384297170826454459241346381556313854027201080490887501052700430130241454427718905676397216112170938144235022200778627289517377850108065306164047206961527813413975707111127656742513419134921212585083595173007718467438732229073297618518614170666416577036431758748220641913539719731985043519778240293428149309195585652691536093237148846795968232174228166930119216953811702744301762968252049753170706415352034097927119309213937491604360890817666142846297125100647634132509642187412867412809724913377882254552616976976026811568497932961847402382864101571281924925558312005757757856564959584710241634427474878968118963401042889483496748444958989032261217767686655227750265625855214909248000106561598476048420522406302359378076451265387949906357188709456944215341969417426435604807537407957390586323182844723724885725623914677106518082828219810578215966137194312793906318481787132850435928085449202181524006926599764019428649373094857851613104562900654939977342682808443280847479410969081093006494732692403128357476329955717716042270030535943767161185024916861213235090379367414135995314378750919665735943289791979418983472334008954638851386804870133277132589058862952092830948068628200615246074727648909493354884523211026797502749225535622335066700046828367479877561431235722317139438897916028668866595575725437891768703955357151638802323047235442347560930123543113760777448931402719419238254727910687299270119668677401446405364175609964100719817861941487573578967960918050214016642748692536820700747044865756219614527303188502174307118131486523291694145531457363901158388036382544203774056378112783108123205829694090404111006612455305654955869238186537035364482775586482929497382938642853308478919545871699890044881402328230959716631681582621479242990323947992171092349993453194124458425074017253345539301936638640445958340355839021823828954014387431227970582093617498145417539227128457134685669208359755069951896080369448671863373604079782801247254963544780528239312994134578747322532545176026615737624804709427497355090953615920101990678321492740499433447366814865464014325866673647578350356038558480286206656041317673163304860133158571439847371267106537495402827535391965551442064773895749220479527447936119652090196709322259696472866963820325384631357113266688575862790093226308319822435385009854203619004525692053829517431330209456621273626125991883604641290307101057462896494671897070629519885365782203678310913209835250701659785100816806293329747999886726360472748548137537473717630250792096499809066718406949547010617931035582080306711680729908976838654147378568934421187734224042775959042087060188131681982789958061341949582198742767169341821713444132587601010042733961275500368558754539868065000571868008373683309678373857645116611275741120217493902332259472242022080975933487006835008875171700555053818593622850350536755935921858491968827595101602797730359084600962775038991035934710905494546004821280839245515535471319825442109244158234705801849018584891651740124435026136608774572658345783592986759200458905261780075607988059101855810284778069883666174804585801316192355308733051335324518369767534128578868652634703136903276456799025443299926246557757909768386508111878542056154967401686492496938824799625940896758666275414209462113166525576737328740767770299160910597608176707007660147664403882304694066151290186096693833292461977177139344947110450128873823059455074082156313739337237649375350092032422599274454849770748177992448585754392024105125683826266757749035001037215288693594760694219545241677377418621393498331899964603294660519178394361335411767812940372522352061501251080625980841997969385624633264221698950601703240637560163809646321565631964138539251809527009531083073766917797375570085055467809775027509338858458420875921323520149158291526472084352665139361971437240364554853541470228068613153089589582138912389633794865289410639993415114996616123864006227327377420299133190571776073779921440270637764701611589778759718929442955627306683058399514036874793580569444016005971620496078843288380789183724829162513490165947084425830879327825524757044287089257254995898485012252567790297392818310978436631011775011879892282684265419918905110506688407585165356909846792942974853999198354412391575568544106329137435331792797863155892448781418320981097724430073368405966031960429367193917231849952419683040544704114227921094212828140926649195570655634236207246310887032726881736255022678729458387044097713853747327723251043963414613638398834280022111243454868075353616728289744942532836136711953511505055095880862610870804004614377852980950660333139644672894893471869960633752627866783159871424875776038660820576085571696945643268381821411534769588168697993353565407965430378637473828584192825092820768727270467242040693469839992617701783969580569456818510068787336583311419735914368248762669809769876992337398428844392507962462664330299544770501224162971584326889186783746410099865987130494561013568216969627100775234877577842826654332548517705388625002415960079699651448890718099867898935492361900392382776153324276624199567873650105988821325806671216760373118915186157812161823091617331638585822094967116171748362958505336366571364947008830777714980030131635064651503496673951030770099901372668961571194778371231389599154718311694343608997328658998794610560589884482264635623790029793518105154804006778007157901935693369443320773652349562120524317827028457520519012595527928478042408590451158304232150118843650393069883704279647822539247944010924426957482815337100576839376849698994903186744432152997565283726826491494409035455352768329767036168534824135876153663408038222192967690237160638995751742589702269420480593165012251370041036048217500992477028104248701364125261104904675146790159617743713170807655665732128791280011177779872821818300186349207638315937532218964647679933075771018914928179692510546008376245571689429058935079949781773548660169226521510271594937198329829904242167097386991760130428533868031003943944697648525474944145081147691183456840762404855090964970015823537656902166493740086235368432762366336580915340685070142923033896566794673197937619670782414012748237182532801449940896073873416359844677209266725347210603907471144602510388290774019483811887483316544971400892423060665326580048052001035924445994870490303447227834490991613383355078199471209742220201837758013535171935726585535279790182791702764397703964429695714137266162427354883933377367250479476626807435550302349013651807931801492722609343933228339143918836632943741658058523823397389717567348013122251692032711379217939835231264838831350350605193351338892369459489311931474815463518531176291960158671901015570070220069719639671265614910193830651131796178040270278257416866567483696810121054065657379819137427616047564276655568194444365271374143625379152381245122447607455997125253901605114249522585473586557401637847308997117106460039091405878789504895129583169730355219355501679840827259284144054393662666397813480818465893056625147897981182837241215256906934410390006460346114592367070103752364011076143708023414131494723559365544945483740619514340318894382111133519114167827865728512814455350568058900014707203711352649220427991588516515670600984680541649656998502873874442875417682412767540883158616270638525409369229780837890138382511826542532157373900000734955214910177833378556369867251888811863910687611922400304155634358787880802522957829618829606867214229681200882362622635742113977542612985823256830721254579104960979534023364071652233614242658410612803287485926118366194695825138508355821981806147700153244108098151740805418422780524022997242393916135160320982095764484269994383276044219841488982513380951181578351610205076600537982702015004207919471331532578792521193888907806220245637703158349221400793768838773236669248485608584844024559076749108747952336083201330744602785526687880734216573950602405684687152766013608933977855320672713139531905321365728757061560701908602080015533654537702608784542914429714022940673173444731485480857191819902081146788704652882113172958788119126462145740057730357529449880071456752309303021018722529279961354237016517378214434630647068220039190291533058691663561444160502764332274356297134503382019052128924309352312692537728436028113181884724505541655759025563022745725649577658518068513375764357553178146522105400516187217805505918191421624872575946755152813889812346556473623154474504831964561130166755507807112715428767822852151437676727515651422221104367520649398359919858606021390491185220377520939578465100438528769259637591753737731065399177017515081377597705900832588349216090659084586863158989805968330223113282567529656878983900849837404213457686040646205623221587226482704508332307840253405642639300957522656187013805555786915979745350101856423950214377776009654018154916849332650424124911063217504843339392447806506145020730391671373282084180474627024062899395902154185953220721059888707833889652433644462781811875022660163874604410157388825314924411638942632584262794534713856971943743392231302027796977435661681354070400051163947047276355050145155741274769734128760327770465780940991283430251094097738519545158176408125081718058663112222679214675217122155824446089392401291286798234526254674302965619916133086669492998920736749112962831446869243573296004194504113994566981984368007437369914473909513522031941277763911187480789009243959287636878076511735859061562332736190637762629121170922795883620353994288594624915224390302868768255213445070326409466752483020751512402860806244485167927835692733460457907816407040187720664309918417945115502338206995812299791664198461175984746717509254994653175773553865011350845262965915789004728015348745561996266551974234514123697371982125902790524231609714903359682732182605792384326101880462331630124523557229382068655520545648221608731229844731448966248467191051561163776465783488738040371735208762954759356754221607959299651352988218305604902983322353070253141153739551158754071795074332606721135330601637294791795177083619352509783637779209945531023053661368337778758307943184668909028282434729632623152148048368602064100820050653997139392577527300587436488598602857575121845827068637084909037372594624217483900588250932428174506018129860350911296791036053125209921766177078413521200050416111089787523695063003489459721157415902558791888337912145157588884926787416486522790083122478916361373732723013212748251996642321008837918312465757915531121132308563764852998277054584702957656932073442236863763194705386939495318727358669641258744983988994866803357456823280869871715574541495404260890918048899686571282570765226775949865691558139648565190245078344820129939197522066898003827514764662748350207439340222114138281534323138359339994646520523201954449825916625161441772373711613609117557907639470711803767777401985569000445916928711606402314592168079488872451644822267536054821102341174617070780256637070168046302810117032931169655193844858285374907574118454715230664261218590196304322249905117513022319460124562418846078655013995990164788318503800851716397914386084989767987821248059828815313258414380161691389489581564346194767445673210356391519098470525206923717188602460169564581525819882490656474689836086945188996919808400956913466700321888910059264570814947861295674790652426602361512481115133614029465594209538531914995576716940359455880527386973697589895859760862445568358009539689253401718533990378658838867754018701156395656006806889387187353858432087120351929426009949028635663479099192523760491842391111544979595098997141774074854632107548011062020306510076013772222825913156229051762730214977973054023624964872637507191228102674689111102400797846617027865757304997504922924141783951405061086395655880421482756921453290534062400355985003516873204747506249819447894105655314090315577812698214756764179303700616986652261040116368846480987652106034057795105415159014477039650355945499310955922315043698667092894932053987585301919417260388107914867290145341798221979925277797711590864495579495999828961625605597084326443353871040179811951340539141147183853995193423148113732000521013582127852144310744785231316921999994886012038602045158859266280937135164371082652412694315874784614165963623851789812510606953259683217668960839459548040114279896747895776313548770656519570959101756384308759909585410296877000830356133375404147705920745100724397126027453563388172509888362625654313940393144610015990192452802608035043181254967790416692345069706851654348606376076921419068393880272797920808884327339253595826801848388420690904404650622253533823924175202965264343369815331010821001200950051801372529813916406700738554251425003381193628264853212743501727373401123152891936101571771650189291224242948458977753491043258081702081158078023574214081899886706870367337131032635325333764717439852179939751077325136100738455310364141676625007205255009673494431497487414300416301007550961147935331746023829232756007849361173311102504689312157016383827739651820631972912567023845133748821809593202290205498940450553939271822830400053355007512297278634024205486859880349363783810848621763530747484156783205715399079534438958052907694513515095963568746014198355850626107342451981003024979107709090535173391159142938280232548153919648150554525910631661443332912324708171915120657649668087220876446161246431037928661989915876178714406728352856636728250818725069687693558635756757323356967144152300630250210935544785589669487966481173677131477566643904551608864237243369180478164699345733123512533781644712463245309137410442520608845284490502905523235985433928880290280417011585643623387203241646347881595894535133636397308253853103814860732305387780908111782589751991866862209245326227689835281563194661602057736831686743507111036682703575146798251371198296161827080455118760760318828358253250137406457377793438312994216878148388573852702355573592657064440848665128257160765310335458174515640817012590874636939398507708295992470673816093731812171603872616787916550840571766411300457426326734370295838560358384787119184556752000093293541179874623278536486682567565367392340800722294929957823652460729755854502233589887291080548507668201137812060238440998700367363089998231668098355233629347372398442287195690412594024896431146348884687154478121626529646498598776843282096734684635352478053225044303191863484926160040089514415166727069669872755782888942215026868297409323008563887239197595651408530258307238338379851985824389968762653651885824863387352161837085189712887960176986326280142816513710253408574332500454773622575557998527124480176999785946875425383979644938540272414973120977296722037963164148177944601570473609221051508278131524867893037051099696116684868654003733965981391040698915575628488383640317719973324560805840341198547156829356463919993529506523444011578353948654160713411708016183247803580047530474927228160156551965678320146212097382197610144564764574888469599373708843083060650642312754258857653022932704057426936530514392141140119122842752328910786993467584368088310004327699632480440753197896256138978937783075535903268400480432468747685941837013911347927651189528539835515908558503466159807740675871744221770493242403888309587725391548847555678092017241129356364410376822326067354096700684583218790031040049358367557828106336405645296820018588426208659189038351911523935507631815541390361536887767049675902250059087063659746286502612733655967459561183617678969891334649946327730474461307649656459335803649579631140183887153077096731842667556290174587059539353362022758399600304105941588026813502163651826721404380960235328022866874910610636473070779913402176064265183797198502687313034804405093069896325542398450835087155600922649412865152604417785949238063877003206303958171881367728900937313104948230258609483686641497230312966906704904724809615674811247728644954817697457293775649523918847615779703144582895383384492756608510922516125670799934935568875734558831703400179461858664668533635861357215389516996905345461452117539659121886333148469795829157196684166152961401134830558670310341395301303613152363711290367760460339410529059601257509593512644978782947858235928777874608536751209795295480250328593654577808568741397285979657728857447915031064207680306132491686165749936243876488567539846419429927186770173342519048157914595826135347297733439945550971022342145319704767636156760299815023072362503275807436026686796355009531864605828026697450394660121495571400997064948487918178665616271018386720635817436574230027936323453265790634262346332042083753001411267322077895592759050552411027375157644873782427047412011149640675536186496775891397237240169306703231163349641282334029832430411455995372095523335121788689051556034093324606360315189119704507424939892793013573565088653559300631893246411162066147441382931573975548984409912941886345013492298234860976603330694575839570484320307279038939378221113511995895529602755933301517079599764649743768748877156920843529866108849552085456996157028180714892500555964331843387549003205314681039688709707239983115753630512894251740091848408309312304852170321600163790003272934040411730189020460687550638299268851457141399938255197997210068617415536177909858639104877294557918822917816967153086990391245291030172639612875741618095064020517566392275286313737846526024811030812557622494720897169966306954481381408985924253746451897356021179689238704798725070848537714335763272728171446811816069878134303681550750740408653031507062461209873496555618229207828107940067745350527967837436685380356578825815756008388309698184876275698114140699698810847275419396913693964227910405878794996860503168243492280058806294321525835862621386352542954782895379780110756847049244094800909755327387569144384676321589761353602749391727078391938024240887130704126062509565771244582996069754960151518916182909351714301265370814632340744427848145564150666847901826330468718578709662773857771888947228667149785224958399271763505161200717853796782765186689604578806282296737010867531047409525395132626352645766465841369614099357125550235511286395315068702490322115415107064799402984091093348348072364789501712948408572379454186187781159069970329492629882194834601316816557203377613603168932949350340268662739338995686281200467837667714586418107087023075905496056700733979081203207409656716338254105768276890407461967662404636495809294745148576334740567142579485672271768374916202315930136359037827393006867131415757264679889240103713623076823521550103289290417906905071310357615739776116800853976484819011844993081266269290269590718028979530189891939226299745523684601768686012829206362722232068692918715689551990879697005749813117296766279229259442108504319940639941853416810381943424975627456071461864139614535229523560480525522993367251447215938564836258694737420600353990855855981441960722248665616766746549881465045804364392040502472855524528449282096932014941889940384927812777730975738427783702689022315225674606369735591913923585561305712470610297391066451497291813570077105283632238294139474881614667517808180955969585468492993609534191055723312465988972831089377892223675701042160004115436025302622126548007885435538594238927432200931622429050491311580328083283529426926047942975307235830560077853966860439066073322453018798298462416043661419625789145534268475182208559127494927886980935017500496312658677448983854490129389474940586101055819771173057530681102288494102772519922240701142589993677056392540605587269039551860204603608459008979566507014482783141422775375929594304194633990874113765564645989025264019243221063935863308993788031734840768024578674568139065811614977171408095470439872479864722600896250491961254155251208010150167148940971966459594035137036859206168012908946499787698759821416823128727813247126946879709813465045687940012686065217104587129209635062406502988018023684105515244294004852691840330783285819036770596923049584681327229135990277410095906454679535603534032043805681772519211731037174998085336357306483060238635987509393752448882237304581615139957049956287931008206600983015623356337174623812651831634604584678057343005940525685653066333159241342690146917508726648107550693733375373530495504871577559733976142803229448493530307635809744082935418269070615987829352233947303777158774410055046102626442578308391659218607438219483015759260342791114666232151403278649413213663084585941634452529255861149680712625707573408091687703177986560438709869361786375395714465834318067604699867277845458545110656255921088058571885769775797686270909179087743314453235129508823245734801671915070748141032169159158536411947778572656511869262926025028929174248287293518138449345103129304699754319056836646628268861268789322085499888286448938404564841130816114599479508954131492019863675789856407916146535006127993271892537505920489810953304165653540826345835485905692309670140437722717854726897415667638577946507908684408423003252974149178254772138226244224545562031912308362152429658983166325772949775775970434805896590431388068719333735353795424815091666700777084113657461463646118742412402905596371430809031071784954396572908889722792835400628803642163021180178762512127772128357021115521457563737508703201649983098379903583713327854020277362742964382799162706235909439815131090391759002934524761805195458938744133489551040385115504116181632693392200424568819026980828657956140006129496881926528667838236459950036973795391596704243843155219955397129163478216932090003284101512889559230736499924879765307237828455373745715476869461757536963081288694888954255598610103863566848167370646428836057758674239073357040039877942188450760368067784294139259897268904379442791156686803370317455333139849109833301465687118593479437630519248852213838700478745020518684453835330832348901540620482342224357651606568227134196101147304280844204680888218845164924781854320837518083318971009256443624946837070801765169927649806149462610258896872979305503628040559508169357731966190069584699528761350041856126198321801405808392489758456812579296997745093629426616939118555010545527539262068389341652248070897698939721087230962816660540735792032911109502469691213922517784053313732862460901807388780041843438521006468621126994428987685388217074932255882754497743210712313546345839615115038295281159087838462406154243987445198111203453421733454646844250175617866504914236692839739852687110078990844041681705731912364685630468461196521643385126002047915495221196405113894601954829652198215607503534519359451230482266900551790614826679650626165793837848197485338533949903762100796740085654488096216378151081811322565953404964340065323228068809455450269271437894947675979097092843079162953365376028339318268138395157791868336099314103684627556519847838620479563274178923517024194657436190319051374989057983376411509687449834100032016392760491027570631647372871850377512937177786606666424241516854593896728394745260239058020211185931298219418688987298522240545344443980130495919095421189365284332884748066086455917203176316485060442361292398495851659844512220363300310766347367911944960496443966797974203798477107427400095830511367345096456855965813112171259070519456545512578622927749220911343028447302666998432363180377059813141695418150021150163376960009526709231197661024221950519008896974886207264930455543520352770237728572768617034899565374327252122378848272544821975979390004912960252384819605936951364471495340626477667396144375674625516681833045213857608852616308573893122127364665729800025095029882996379471549134330038768070385581343980672721321877241936376792727932155274001892195154538476985487431236207172333518994768883933962375839465127488255200104555746426883755407409713286663506153661162038676444262237168732184485761582424771521807258135164171069276388812854615200725978123466527861885879199786323178784482768861485406075603752251056793279900774855722765138839851554142984778078224093759621106844582492530370197619669387785113009125991530307933229693139641934391485056038446981547781608204518889322019143579944814394836605038590396375137988783995299276848300726201615096244524361165257816223560537182020738988338510828366849956235411434363388769354982107369415846767951872666521376830863118899448351629337679128653455565040980915187271391471118427905015302347456244021168296531127368459124952302639870836834528610540420407023530809076979087641052860295083847899613187909891098401362345434237223764529067294318080516179527430073477222405994992259211600900101930735001015050708800306091435729502913056661771172876577493189352412319564314679014025863683964053442200045430029688516846554617308616358166424117837566868557090862463098524136440136752982647629470616875248305311074228917718132255829639349950354855852442417529419649015950015881825303556798706451481794554354972332837482758964881631399688970160665021017521685946345618069416343024114527037797542988148232630825314745502018660372225964134988422474635158187329248944732546498275683574989216301265365455541522868695018776778124380149362770631525569243994932446412032901577401928291022985056045889038445740983695382283431203488891587174633370539516121088826783363083596831558124779918506008816284454212873321636352015724142690109299371114332463082641418873594168759293388831402588412267212848852844150911277275858773973463249991092891671021065049568264682680844582105691223479798205057541900979104535751154123344954015525696388115619878190692087770868151561687822466148007756475032221905492748303000095072673200308973789699862773956640882132425656480197052119056923780610743164060554686658606877308148107930119315816319739877921912094242782412287767026626875409389466157503727071664842121809969890232644887142967444860735696347121410812916898739051349856505439494715598116913409540750340475405606638184679390146107192684051195054585254862018741297344405308916928670422250061332707195994389880206600979759549674195433605204341044199523020839075273252230766731007900603527744573525983107993860872882012364409330978528331635871412521733535045770621983612736309522319605303243675750310124484572314729673953619732126534139753963698286966487096695274002992407781008271024949835092726787541465966224932880892810971836913399197437504508791775510386679990807053202461548787413084516657763013735748320231183888695230040203149407797004283764593565935115575144939853766936036031432166770266486799161820255898997051177454414839390907713590228932402821519865156099735918558583016629321169945952961496549426711054325872816775377501847814409728765254154492586675945886860941953670648211009201112359793639442354293439490232790067555769089330804697764340268432232529774111953278210485947560859352238149192175916226261345251009851076295067259430416887378155827919394879644807062439254940964472574531280755296835781121337528062658821279632651315820526988869922823185213574071955179964211717443460893719827327575642602628709656637187187933985107321875748567907574497979747430909316035353721988988350770874760097188820756127387587720574034642033610954800503251244834152448495948236352503756881916870814325549976064722388595661009007199849078857817806701924329494376472429705833533799615028709380967777912069069233847265314516163339611959355274995921993715562185399598177002561680642654017009063497167151924274975100884154589414644878872248623664237197096331735424677922401907979684451400812853352580129572378738869034834577255971963941902460375130259473608350870659953830256990565465179416215929173835022562617472892738762434009193295265312324908751732286269945216467558666636263900367447280541388242925641667090764505907725444975390986618680394906365784469811799062501903731323267309631998870693340791508306872083047012647561812929267270314660104667221504712281484443634038549727070839479812505308981422283778199242107215396251958498161881926054202326841620048304940088125859341461469400241231787646239734501692961427199443697859618251890927510204225655531013368861318172574075697652939219399797697726810255309613684544588463399359549669541042153533008766093864928346642053497942573875659184563210760945955504572153228841792792787274134870946926053363933361275059926535083770049212533861649934777883260068148530797514296855067062835078627763048925757945839691514689080224622454315902876196686212721016059043195129302432454134963709299905084518444861875059727090882916595988755602158788312589144481967069128025985371681552461584943929712976493028684277925492603205254187182956327712481879968773880852034692172977148066551569501306745571456365653107147798302037382148325813371805791302665916063005290873336290413845015459870415112452995202785444354114927825875813313589132214999305503193310582563883020510230451478587776099379916757812756825366744045824802540823649695638326671647835864825417633025234474481226900213765611946107660177293641366962731664308460961057092092913660192633555034155862998033295665952721311970207421159139584671462677479154572993952520204366874974887612892276651661511415593003073042702824808337001057287170446201749936889707970237555685206152493738155017259722948133196260305532703917293613492318540312363168390587239941987031652618080471677077358213581718209936864044244299406088719439336229156487345299089046748646616152171542401009013254778827030037109073737201137645985084774878270748598961164514532532889265523321164221141052998492280455902868275619501372099785755956223222677686812974979495212911494165795862004096152584577747247431436772938256678622728513589958237281051711089624212542070963276396942770459395750138156784235298095242104444978015255016433971768629637131622603071856681892108258212414174921651470513743037419114497125141117852557309705931168443278585040165512088436071946501476847769505231699687009723457602216913055210857354101940981497899517224003917418806104099359634688958210146165921213509748798023577129100218928851828547401286894916942479024930336004934170760266565492322911856960862329536421921731099685517276750306304786976947422234592883456564217089104537822811301123473618151101406858091266665492836458116514572966350734005180835059775278357213349260321147139555047393451428143253526399996208426902244837036220860370235470986702990254417093442198183700590678272841995515520813668023799129282929838767762764584947222766502287562162173960263244536180113779482288414057607024158310007450302070475867337569593215614498218275336633133627475259364117848442547651334987962565907755271135452259747766587317990187412934880861327141836334533858118796080545855725039262176620618993449567718030793458801410804351255934612195369591920849700031172453715486252419029366547986718609284262395709491220064918720579067419011538293921679346616171955656310877867371693049473934883741331291155411492047931244154273375996403917475680168375799170377449835198779814289397324027110431378418968024846564008459159261526086502685365375839449309798502088664813616286495644126003696881097201055275974666693444118557655657998892739264154131688155570774791007075334102981084704756512306138336148090494344752580193480202922567647974385297636257740644564247960725799411895072990749783631216956809548376861280777440734541406028255211413386830428730837202285325425603762741252478767856446436015764108778798737295651392106610479932581973824690123781798755670182753347169242310493708226303503554641042754663047606224457924203823735983108108592317081505131933060360567907207413330644010606982148867795901794287010082632042639463832623211541852234795059147778509884687783003373139252954784717634645109165699512278330728642698078219721577102354284815023958493796996959538582093961664318434447046620775062341319415949504856368353026930746871239814742666173806482276068583911390643894051348672360700851670405603546012554195730925844943329853659318958194257126041013809475489511863155372331863681244045596047817167567044454992038362218581414937362914780986447712869593180102777116435091591389106841976336438267548887615470369785281471067344694448145601756766628811071391085716246664584584442845033403011074771736563024399547797229596708981686647207896522229387200149090244162306717858734084364478469504946550134573723116103420943710731919335871361216681324237333507803524854421869317764098793627146875850964246317995353593810485191758888886860975290410215237734943207920055227771375681069496488974620676951892374709192875294676378582598139077200891324928390991624467856021075013730172929528723536148904926247219726021165335877970402737905371774141768451954769976422398085417795325465609792506703497044592736971763339022399261109061301511959260927452223592087233118807887302293681685849697258356989823478721936828100363456233190177001227602575492498939010339050151900730540256599935510009321084652956603305848357405193930310172492383426021623344624204582854548620438628873657650851384308185770503864290609085409927638747598733901676814629152701835362470502864311253387381266407058332203419448944076419745156730994604723921089871543334375015044040571933990552589562727480534194878811111028960754077390662231323661769399319845564207946522685660737255472191101462416379686629373933253490544920653384483500432098394756742784208737886317181220489747428309233306472526865195706065707783670522313145299401978768683584813669656699689936454258247669950013200003293344428676805732716680501792617272312177095187452172670060650140590462754960735904066839956346456521764772802476249807678134555384793618786376433819893803044566829456002473007908216139854944592509601025492608820456602191476270378310375868140067874706504738061280479882150007633003313824120848933131124860475751946013348161482813586933709218932752671034671020938414001912763024511096321616261607850366658051296234000486472227058979724786286856645969236874164397448069532810550215796424689715597821016623772278889257611295306658392476719036393188102091875437971298998643320966897992829662939412737921651822731332791754654837201571205312806423188043553021451964853546011814310936255548386282614664070593239467858221647804511963528447821912931465488348517970402768368082004834711505168398360541151444194577265926286877673602800406412151884894076778047238039136901304115209838186186290445325589612335724099720330989091421490310508634472269932589356998324257419542102581380170457369580307310091233423603094620152826065778054796351202731090908760815689592664644090853529235599687694627926429041893418654501811437506394432092448767337420903657230064467833139996335414437427233965221993613865319946947878900043656745569998063505410554927635337560240624198732478513065730178957042480774764218664771841877439811873292237730378787385424413954434916603322276227617524238324479292386782891265202811035417063982060314745217555263359769681507034507650367032693982846146646739468932523310118796674504836633303412314086788656089962811170377285816361439417051878803310371438593923828961177998409886235204826843318332290615692647099495076867651271675362156825456644101747135420226667676266342628168841136592086514315353419656607718387135215376415425921141290387265591108247499192880805381461665618233259418219646337069942689084762292578538193114301651366660664936247480590172285059060071971241693361913424878798297906487387748264956074551210124643298210694052741546385824435424462262346163517899769786594275467227762640519507403163457681785191927650327846560263561588730720960617437415665070083489693488218914761083865724525907265863731779350562715877698763172416255563398236060601553344524396875173756004649152737906705225848238769885441999169924381999874966959637218961667114719855575425843109489371569103249407468473574352728210647840175113728647454953349331321618012723665038290626070346131465158677706850578059513797984636768639329522765750798871238147807814697441224998256829610846746202949731948960939852097317934258802137319001510379667406343584277442720176616906910435292279825725040113464419845808415561786140208482063617006082688690897948120217501085651855892832886069786093287915701920816184029473671075621012210822599233041735239025055700990530473542958788202385692902994897806161759136150536696337833249790690819173603874468183027338694486706648442319458486206597471630742799820743192646704310549202336190264545745214589340242776031621552001739248225713211106227812047986842411477043959369658285219524684859563353514373000381317156877609077294247206882665280356633617917878706288311183205330500507212552905214100986172156538486934678498290542306458264573952529109799048267361156246859575352670173638890438174199081736169673355223570511318995177794329760225845897028167839327660670836812837324314879057256910499445895448635716915785192932375477744769379115031477704933557965900503414986405914888665882977796818356932173046638800239678777479021768629180487774015883809248581977870229558948139623601298134227095480789531876863411058908568561764683873654864599080191442416580139212111892925796555575934198767897982327276735896998481929456443232990975887766713950921862843498216773888586374567844641589597259118670007466643388566089989137284146851094267009937611193211143612045155030699676921140325076097094538986393189002754985043917199819023342694671572091786295673400633020521637341984438193404556508604145880660776347247758284720929664162598000933296136654938224597067860385543239587354309405478108823902325095217510257069663346639181319512906551211200298207657067569759229995560411000022187302647071983534461946290790418776967687743233383889934415714710169997363742882486951897693400488544790831654326659753482829977838075231619884445451991388806987278707900532638473664533190756585146612380247056534328454789584199408732137149764821047225960207087369772462475080693611028356754737518934500790218679829397524282448102752400167023460628116603851127854281801597801364765679146430305543140967299669543098870884405291002689905200311172824316210479486126980504728044989121873291518118972263565992010192631432130776574977754508783772708177723829996168446650513623642298236208187841094186174527811378556670491457795088408876467285284368204077159465726182521399246777536907395011366298908198922811120923788483947473402898623006691859933165522903544330328230246436780110825393129690699718280717811068899090055196343498955889302206855399459303520572361910637482072642243034856844478973980545777035386271938394173185176928601360078934304271148899387182738794057765085384161559749318882130596780909833384684243334852860877480611308547106109378724605605857323980293793806044669254904527192691028204569937042489922496516626402867963405156815577103388147948266990896274600781518830909760002184659554319121132883351316803469758970511216145793413851379075321463063414028657300013876364324759601204730291722367428315813090981342073794620907037490269895840145556917571004164067938902557122483564423342062844071338600793144049425480172060439781509930984731230242462763213439384577442759941408755414515988696017372928143324839733896707871992837829579462639619695569440098351298751488559885267223194872301435383216454763589037809943804786006456463439040332046129208632542353684799500188120101087612114888399334703932887020812868604588611767118815228915460450341135315916379506529695715818840726868974537420896573142621233711525492796124456929830940782228730094854276512966040396165246207570052954589017767694248628581746521629434234187735246396680893919191739375386870024477288554318342416578966223582593187348530731312307819350790136549546554879104703522374452869111499206898626504744166880980176025283517631394520287964140947734954252088691909842875496457595055785724171529594447276943887725971122970005003769397978592596678903158075867304631286572526452148989216137511581367302370447404041528259257388849711674241573839766632652815578964563351285582257373853184557527332737785469225213249488242505032646444597044566757758210954263579820009011797114412502541635648983883181246179169559499954483992698605552345394593456152941879360133651425722918069825960887241452070669464653229476258353735568802982397289673108755617995004636327495469048888567289723628922066482661231826604381550524200144474533499656763274579347617349488441081834064454296540073064984774440753379943024568987457601648015472932380289600730338135538259909444623705562862268500378515429471980483384127881939991279300900237055909095382778696170603164076856418230537887536146626674192990314236142658759290603771254203452514369519805359082684034024964701750780570536698363245618825184292459497851080741490524725318496077712514232530937308894313308951741240312779177402954516586697171764433603254739780822424140644650756433909056847308309640248989050421019617298689171134155464411199637102208648650286058477679526588594178508298965103321336615111438198918781371023805527527431953009636105917347355788866349260414334011365092889870341053060052201637608512507737954313295377536371225495506014606658678364067006250164740926776566223164761043899714661688123833747316141791859843457297332076446176231011195228455413341483097153611149745085047738559115074920193914888254970966243021989516252990931625163450013196368554622285958019257411698484065687106850222022141154904922064315213177214396275867453804942974734015213567749356241294647374384895932084187592861817048053070651023571772569553069589501903945959001230214575582462507117133197641389896667195373159731345669484466122862099567143843834114993540905004267147606845813400192539276728299319594863468943789397864830044001869208880010514762034337228089532469932633071817178902269238524764017009177544816652529080906829852299482949298120472602277615983612923980108187442342950762816419944627565902445175290775633529420338646398497375489602795895481685284780666339769567561645959894570958614617045008188930892275871811798117455674997051277150157158537566946850203215014025247763844347283050314165290777061220103514112818354627075986508413194719695353617507088837619426270832419912745836964525598309570011794468156125527020776674257033507706796733094903759369061379866022445404346870622003584305820996676814115580979574266130402016291520514753988262732762485248251489094652581242186040534675453961163546499422160174536711586090935422622119359575482814540037535291129489654534997668683526524097929362534545861099758113636634141629487103823956181760748324913713654691533185207989474009053202920178791198053857342832534837621686492763195801435668779456715522519170173992421373838680656199095613424814994732173826892339440135182100687018037833594962443649467367570576914292100684561313557307403700674133834148607623084734904037152215840279711079341771986059168850192404747348760869999409757282162737032889861337362209396954282947470264127759199757821108876849107297871588522411664524304596619962543866335439216463828892940893841216570440501478579409224999507828570909430352898039182098237584408146497492139790589635737366154762176435066214783887388802374600038697801122933438488880001879502233634188242246470123794119734047263780896238179069448724741619499314205708882492763330441259009826381612508555817799608781849176681048652604506741078470402580282510430787724168213621388527998523588518031250996894722648985208923750775508905478555756108662249208648591691240189761594111538477829685950548496730523890154892187416126425215482018057345714942513200370430438565896884456736236306750428783678251153489205967363414605601511359720502219452000551547586633445879994938320122726788023353164480825974215773367177432500742228095526073013206854503131295746507786096584597854801411638015418333747732642210738166143823745642050154684127866429910752146536670507552334783889714103815950582415806065612973773011210564008876235466927088636098077906643279730645528406651266870439255846985455576648357677983425957510215338841263094068234292486642776022444640373629005251137894227173326753065489472601962844614060852337806275961229311102411279844650545808258014820144795529166004346901018195127774149148801426931062261198527039124208807890512119271019687408245009914207194516693446588579207893221765770400415031006171875664740811669387284942845346938488842229283450920714105236462848629268890267988301386125965466290916461141309207564225483663415008046542629800704543674460062825989274184046123125024480408653098277889081213915059920236737662969102856526577090023527696316847298077462337432569733607113621541092026177108828952563398540583449040609644131946778406737447828187983766272577077184249690346463204680438704487890412915342352926235619347391112790900213175735770259645465403936521804778477970964069297133266699342526076737100750055623773255441661732095618689506465750464346354038661172734325800722793525413767605071501291708578643404560619260218891173560938003377937606997220261009247045018064484980647078950597996807106325483665263864266702753685876281050492049075488364841855425151172514690444802347484003143111891405594182123342811053307036913072372767374308954845136331476881639622403158551722956355452175745041457155305263367840570184892663884825799689953763429513154392777916445906914096390117889744140453891687022951083228863412627598098041534182175216103499087656615234127577231409599321308531808924276627209948562974965329923471363065128198037801088668375246041443366493772629062198235282648014711600983510763088917698222163434143704115710693131074503189385217944817882453760772464986886488209098036591241890540868307934526579259469780397737923550655113404056868225975202058235061342625659148568234093892517807394294229721320695240882439014920404270571256620407652220146066003344333282401310638439578573253598319719011057699735182220019706481212724233057233608031235158881538902086577353948371332565809896198017780692312487658632823221417593402429130089589331795566139968398694427821336980294619244017851833985726090293883330530982607614216965276431113267833140873300353149770580548652867156087702378705163049143993260445556783616470545162738730583912305159777239007633434938774492686595390637925018162340889418649955746177392443341018778570300804549141338193793802491113344270161028254335979283398006062183010707427805245331425809231010958124155068765115034815952331160147133051730794359986430702061003468557758882686365270560020306257520804359110541977683497612966146138626587794625300238801748895826660279996891586244498063329230036597627084677802835478798579989256838932588641500413999501962411439381800406964725543918051423679264953783230251728278169761441622071790368456769771680788996904207594263478999185429016416417097215512128474597364812500584567433055121276616575865653953202275003990141343571217329127439682892643263118038979871000269843770611541186075826253602509948172118669203963018293512257093933360346506413561046658887026655029135029164458652894249157109146678362244227309295327285508943639255803670050259654374013130659741202328563734242251164072907706002263870206685758378273695789268718051201142091664795410442268220470901375054648025682216264961550884797033900660677832320476694332909467629694434874628473489013810742124074847865604588759897539126490856324746489275486778019153790153269007078753823928837700489031327026280901771454909263210084966485395913489180810442134490022332423239971512606505791441912102419250850780850875522996885199405818146316812196320081398531942916928468059720224839241345593999016083673958542177076694475599040515972366096749590621428182553487298376077722263551335789605132234436327362024932561046876005147788983538704136366748756917737575424995039279873171409062405051488920139269599693024332018094375419761405882743076396311332685114948038616228283356778336471826163634364655384015670087733954614856826194535171140357582172742146443784610883393746657535288388522943008796714530204621719987831625097103098088769620603455018073527533365718853847377069871167682157252585226266519748660327252897035519707936809289215211535020843175591652146352649060330856850583569875534488939123443020286866298496627923828005829765514738172805108260596188346150013906429119370619577094530148866710757677273985805476630541840751072287964285820240524741277103470237433973781595013710593656407779670165134084512748997736535912168562126732702193093437154577392851773053866333227504815486484565251614360459903090550712117777806925884364495460337980022379587834019743819976715334710251014758935499058106791418372977141181563664744889006668056662832466959478226639169701854802921285400565772776004731106200076588726360683825345085545159405588986856626288072268614450586978690227538914302390247272024441378738371170660767558137541334583067927932570685081495825451136852537261307391837588108546952150407338617735745737079795698259094620070325398548905361889730576660595036448924061912674100495127163675475297531330944729795999418596582860492972798046309589880142325894124283406053748945782816820803960030937129051111564000188087973319105679599393806667236751470528978581568346519499213490036401752069179382005363550952397966253635509849522209562999435554795522063644650645651165350860368764402922913753947095129871234995038847146162067301941686295365181740456679795780109547467848506971753352812461360241767701974363276518104865210418040051043861464879096754243203723928400125053507064167245256487065971503887717196022395871114407398475330693465581372158290638246841695053879283465134718537334804013485950806176338522713606079790541154213012139569523936958761401260745815534468838540351531629650748091109085675054378438025565206664668980320429993967212347638897893064833644896988868300091685637521093397593899539554770028647102159250040087111994338312645555429839087779048426716203791619977467921314968545527568783515518722709033235639681945033516429390653802825843206898786842393631563908391753807087559229650456494212730440191724308758363474405417771051270507892124453689294944314289816624339374223687572306170683863902420541802369677834653146006541970059729340672979375297530761813605117055662527145471159694694446185293236004769164794557339913472060873096337000945003783376092035531988605274406026779375735354476455091820652516413009585206535849379738979169844012087572672251636921906658643618638848718341936308955949206623036669586390124662932255585904039487736104848096685206463660586459355234413248340900967199808520293990728170994660696602377971385389226625321083886477729899085768071648360174921903392263052370399827010102605389650054437922897277654884770199937462887344562270648559625006380901735330698100555404179813353093684567450224707053888466601479100805858534048524864621722448988537887286711071526682544082558151724983473847530836587720159289460580074023724518084001152784379327193915515736948551905043349554021831762491857232967574944503371195208599729540659293086609569100930264746015331116160455542566428378766062741881903833687574861632231398009551977925564141540499115798234606426476881820769696706696273080916120720538615418273215753539965330511683887280205790961211422764602388510454872608740634570690340216923132732665510437041296518198674836691863027147071135035190637740021500461626789544162928673923941960963101681568345020579481755455281838449594732446952189161194117702507781712735331809160960707793024717862651522372538094181257117872417600571891634018322246171687910096149773810328899206747337827165603545160693694575574695152922618258792745604712640752411305582489965540543609993996284823760750624722059646201679794661522462613294033539922094132700115362155208407745790558083228750852711229052065071631971522428595592966915325852053904594163840782908712782890375132309399953725804846766076398613324551943123526116556132552234666721821802272599348455711274988772090758947575780250603351431954134306666041979435705661987225677815095671352550541027632600704705977666455941857187271677816015240498243219158914564204057209480071406977067694786269105388360916329139809806622626486677496951766515780055338774223599810409848169886543762138398532512454772534678625710395908920442355531698300394223942240009414035618618781512624664943125614360264935092278300917502612707674573134246232160149144253227558595843574573833264853439362866338368713702992228173211795462400916235057528595758878568528636219925541237570297911282067238910309672756399839065082746783192160712849281237434430464354652992560099564328554149966748271741729283770556722213896352743290395870091374458072557031653906755772022336916729755349046305353425275174003024819784954882371492015337745569701167145104371951400829724547293297695376247111856505369079008389923450702239624805627481255898972043729169769139833875534195848396966499564875309369362531472819918434415380993642328275728005518788386870260684407048299566889881899941957334639967727732545327542272986508764349711877628392020351758686523660410283777944648837112562579456207267919599730758023302592961576371125302573529664315618615411518788220495230035178269028100112208601057243293962635929461884877625805153466848921600771744568205940231828355259800086643562510557217093699423545654830629359634908698356445027318803301063393282566480987960628044690687466492278526136108816398844827263318850165884152211961802634506251631747511594629755669423188832999457161451189619929645540506313128880645205021681928030521749394188844501936225876869199346957802032589752815440358950375407489999813335387926965182050085894213340396581627831286979541504269023192717680704833493698762307192652780161345182311692379243557188543388576643652362833244298997031594024602628339213074639922958755638453584667691432197877728408841033026747816318249186759393193237042664678421060207928623053605909039441621890455378330558130180124808890909950083215588103528662293213782010532105312879321982428211839870024714371252881943716410557776104176836206087013776685261559832367281805041609706702723810118870326060180910655252833411058090247566475809896348038989065188096683116589776318747298294443730061624201479725617903515444400833535464043492670516026151175806952483791535229113109360748388250360982835006860054745319997637136406866266929128287344983408613501286585079909874321013883561424765655913389575319625880965053216461492926163149179957024019013265512413414591189342965330148966971242349435929313799223928708965243443012341237646503480816197030795461129631422323676486084065327877580884960556759476957787988282129102893813982012071215185999468836190848997262418222269323421244803818772720944534668649171632832706652125090852708724048318782500072469117918060721230207183602588124894665990504877416109542613391946916733577269934914871776121313819621294878333294558348337678244695979173207844977558067088225944987879718542402049435895269659962669407888586570953907379333192982384614018178805562248767956642639367700696053447581435926217794751556233939741261622515990981717443625193437180481347193156706598600956336890580635555092662309889566886760054923184645036248279712639530067855419937567538018503666380968657797213991659190149790053479031048534213168130459853441802921125036314909246616941698235554019374042083889672457882799588313843620182485407622121399433549028334514513658302234178693315066674107077866676628644176127772377439237097914939068200405085162845755588238785009645854919554349162445555762617832868992935298393482109672218711041637942762993643664337804572427351661409506559440550338710460767639267783096555227948192126183400757244358901221053098753745787224833774986584373347819496493871016265770133871055322348410025381619475216384282093011480533150307967279920433187857117233125208729636988340831244784236607335180546411999345054559887763765239473160360961215084529153183796925777047092284235296426745841234360789594049675518366009793321247688767750593253656659328165125585470914493144556932325278667329923415303178568830881493418835437291347112627388940405933417061934178312600580039480850436012761986032611147699667797922304634010462666369534538425603591562995558768203547887320943953031736293939388050650241759525854321811997767359278880261900957786936041806193707929276284159149638291619030877375213662926541746224741896462029134339284360818293426489192532210699234578483002877386959188295938433159066821902391028967041182682388504338295241949759757425639316548341989419646672796811544574591972549121227855282767034393868001884426098075615323142071806910779144953052887912716192063204126960900893114337272349819286121433258260232941856985360848763333104279289956148159446169834237988671214467914150213578327945727194568177298322355555193269231522482258803087381667008824480228311216096019774030283978957848605678478432955573503004437506781289676934511176430328916985454277589281283958958388240199161514262537709005458262173217139104572904594884310129205360612274537721384120617829121865551326337138404423895400508328654361421759122976849787188253553633030731375254133266642665878012999421445717767934912124963299809729748652194488592766711127432035602316964176393627330566774898264356180639417757467395639867824527490820371052470253552954298159609750177676725372696945283744491006595393782191493483583782452652689750590907068094953576185261531251234055267001080720282023272230341631026821412552583637756830544348081419904416494577610797050598258008935968870096844465768017794341726843779798482327547565781303687757859052617260376996303134801487050013002619646859713177239870548064765231803054629289158194801289030558748368722624977607396655151385683775444575866286826407941914235764069017177768448004700689326555823883874867203212456509401740540684284130963907644333141073492344870511478017608343679979475452092604753723270691569187554895632129447982770270366037339624580801302135114719493817221976558173240280789862978193099500307918309750409074575982212676503818360266350413101237750549829023062880139732326831997085889320209850324388332818526080015917816571780187569777030107476860812842363199201165146336506612569101273165474244091272972262568346343416285913585679818251025039752811484455004841952013934545113091109882195337122963072002618240170838957131832737190800161679296844693834434545987371392458172307044535959536368558750952350351481179866736640707372254470857764465317532645062450039181447489730969068447985658039082633730462459524400158787135502361881691668853296793473384760183517113049267115708976268814301141904558160115546279053629218327890998481082827591635285532626768841897826884023284020371925525879617638901869083016302581111726287497931589010730209268372004086652764055472999800249818645609999053434941886845016682390502609238005092626784493426597734915031376533238284320497998636563979204593366370579395731057896290415296396753094165244653849586081244024756316481520882258436774100977305696950131695461774513058792454581794134554670953246263827110352040044019003531312470699561353567487764698293936836108266184966763089133858321720286290759793385670254479903397231743445434586409163291951441622876854623690370191698876507532347953421280770833384865720223011127510912448356550020909402714515677251879270264661877277963193301592410028203524071075915227156573530232172490542897677370739811033208327606171475433135295418049961381743896345519433524251687344485284043229484339682340526626687680846481219254150852965255301491426847285469968291334604826402173089753723483365029137358248493080119943801797647512652229066030956738955330267840699067687821336296038619273678188773430262482141424559085943141306201316745029164982526159379114049813150937650183092295196997966801429283859326395612480303259488265337091106679366614918211173387068262434157816975697999593878206145306150506592521225824294011691761097704473899541593627747644756472651138854755137691690314552774255584501946525575277728168829516581173509071861405556376227951669968939687166350617881828974220174704955836443387780841054942991773620965744867290105591943740519690751109977996771248864706836546587946269668499411813558988203757364393672829770339870915788704843953173523750975581900871657344945680030424592241003798702817507727765305365575538643973928885015702429847391693846052918974072235618468724602418073921273935009946631933821579651322432296714407897874476393310604212777189429621844520334657165993279831783714996967348094402642887614780451600482041492049116371707255540279928720720328443703134117901503756241798153397444317750158614613090137160861319679242616378078025473319670645133464214461028508055627679641008902545640330103708710861135438725362010513220922855015986285553743332374076650206890416680603900120290047523645905607328254771410977622890920852044964623833996281281844593662942990585288566445121770517015848286786883153678321364548770292037503189098655469235519753837465328614013664006454366201776442189217028999973436194064074573687467356917119479221424217513282432424817248794091790861017978213212729216462298017141595099612950927013042745335724542772705737595323511678108975700804679712283772494714516850856191719647445345099618227447451904496419920029634168618918786759822282022539173937397073071629656018605692397730241134750914219453788170807109405202296537162728183280980045823265540751366599407629579843980327906969902115024082952263919790346162051646166829434831248082513264432385428166179317606062646324248808462759337292054798757610166710119824918530891931475664508872769585164265000697632115015634600859925310210686396291183140317200649505545260824226736168460009435340372822053182629290540720552517868722919649499477424218766294861111384930587359513429017401927071819740433744876690331823216452719348341655797122619380299694789945577867072742412060659874604514239495425525732282789311320021058303024954998756462134030132699144871279882012424413886501245262578837727866178390389125870176275865337290644811371103425268349490286016169388854822403583346259632196311062879227484414084320026794755464044382114979925864547729944829481574506532860113427819598045293957167741157136455608745334599985518004337937477805656163792887385942887224443001648994185513485155475499917486696438961144810496700165651673477230005605214692467734601686725612902775674092869687058989441635623666485827879842239073656682644931336557031915924362560934362264567823379702520655471760179543928985644029855653783738446735972563823922635545663328916272210670149873169151813907027480129252470884384338756620309270832757495990284965395099106947009030608764766856804324873043901460672260226108867167016598646232507138279025635949942397824773367230488958549855776653989583572990302847602556405030869885337164130577623097152122771623157291433554642530408732085218840931523951749171251449989143843680422013828805944751835497121704526366317382122363251484828977501172884889396257849757279247356269640257062088440113885608176346021942296610858775971440092867281150458296062271622106175200971080404159108141707597017242148808237142740106574260883034537033001202019780091828540984612393176582604977017509421257211569386072693005994061485849496945985093351121586465260126699804965849624340736570478679961191123739039050219408154749179759718893324438772477539213014787814888627019249358221829100325206791383709137473787557953671290418588003757666971980895100266362703932955495400363638690959684396517553897332143869177628048460398765568846799262112281309931680889948785890741761414640856181664092136067363119702462008728882262635189908168629409819585803972794264723162558875257887016996099639423671056280368511528147463839390310596766406370085292314540182159318498964227805015745969336463775239824500375887326183577955855667747851698123255431265460335281137994378537969520292484776243974351777527383926183830949563553418739500540736733992853559758351942810593899162580526498688944465509084861146054202102696788140700483322945884004504424713590013910526726836292303263215655372770331134752088968288784662944531870004652011161952073408039622997368124799016889109600883831535810712169589511187650340238620428844478797455951749064814077532312842541767264976447995983911104277022330893570382258533868784445890124125663292373797147770310682259619899929809160394765990763060738828521599449847211145624449305004322337727007585112017439062755790776809362588509469372352945573428625130810215004487846142796371724382247448934719175109557759311829497311647566114012405520430486795141134893113678421622089147123962119756568679380489776369378426749366642993829113039073392679775978097043446788776404676013642206945794813709150751710225295732887803972934413040803942618209562577345319989149333549715089523582619244888107784595717984402893756740263413333941293110499347227510654491199017988406088974553184955295460456292628666580141020372918025847127797215306309343422230751282360169574978649888568930751605850835200113026609046913082968927729098108574149187201037684577415136269900753471475361872822321396296424325464854796388804313985326139305916469102383579404987394263308275103591840743479599186247523146287860501912506611662838776093686008881563852001652416383643280862192185970157727655142074032414124224779925629531357467093263683474909760865110638712449482134106711631601497860787819489110938364577123334177504779991977409658468698211617440691698538554513809889481253659105841146948112619351961861450954638652220196624686580061058666221832447318839923468144251438213325197457346020820244804038000028189817748459297736197891362374668110201780237798697600880707485664739098066840926713799785266541288486106692975948421828743182597308916052466318065277802958503196601354429777577203672134338326998748947085050287233843254920074895336048229812655345914181260636057690211202171879193179215656299328793316063714624731525029265763357428521026747465138143460523171923714022857980122640643398771610548791969644713089542366234533260651247632275877131366880571403302350808157485361826329803953288754156480264041263388395308554514744672797146089196496533517078274547951650793642343515099062483367414674239685185877561254512825403529580314270490648148006605785688998984165270650440161747499432413878416357281693674345107019436700194388405803112272095935588297832246293366305344631722931249497148899499144031534879297603682127202902674683517889736399217882324697628425074966295494353632304635080306881543539741218688380570928402588185559091387138095020524364342900044047001455220898942581955779203413653927694974825825307335871016696736351447681348132860110095960242976910491285878000392615345474741630473191041815704469928005704694335867909582095195365213862229700277504080024873137945625330878027396404612375398757137335347017904142277301573477115583175282653048978411395409409985601099847759631642954094528709979309752467007367776733374996463558225051113723189403018297835166341261336093383200273077396084530250004448815546757199018459753633230852541214325842975765995514552543418532022542492944327739154651959227968972398402167240383420852329818278205926680291139662100340674607390893544939819387372305573509800746924901117857737419030970288071631912190278618712406101175646174619670777179679180388554650896464027469014422039623692582087756110646863633450982750388388087804098425890457997714617065734965749064796461816583132597699062386794466342800616233607939858250234933831604906183504394258495497311286586392981455583257553079270637902342386406826244147501335509319485426577294504490513498053553365290795597486071197722475316906142011018021425771847667693945136216805555039741950461669204344550966179174113752261023023667498223011519193457720347752486838969303382751388266635474718615177293436452289125845014942853528785470013834433068136507817752826092106879619724237219104833584224180375920909627703592502908044636089963633886532202468519162827105264553105521001734123748373078729219321535932654972166883761070607447652152406789806667560891749512737500320013249617090342584417890300053418666410007607678977560929267521934043151838211655592176938214117705548272881484499401200751186366288976805560703675223956817377682526083902212287101285055792366682269086155450350469793717799167314118580652198559653097424599696694029052650637598920896394259841830361550976256455799656728171495235854324019260122366905762157131966864538348763960489100174606783519050654077427445369586982212580605047644787597306429833347845105297747158582948463547910523363955354552147829967621181405942356792855074306137536872756866834397249919333072613620666456675029893302856090598614680319686083737610236878208925864087793998142526332699824583278427557044705261188881517963248706745131665887145260061608443828488030514765567426487850366719700318819098678884595142441037583859304739779512284261527169987147681737495475562430957688675874677315019656517834694744274062102413825263965585197068699537858992116464463219366281139558077687269288467818619012130367499041947715749440064575614207664725643476900939716767989129570585911055529220567737599377281872591906375160478790005708432805079727175944536721321730426859578993505342543286148553059248538930694117496359701145488105283698709486010192091773147060527389491216758779879663000249147282298162596793886280552713461399123738336199512123848108524810352964696656722054228522220868693810275307954293410061679652472777106615782179416567748247263292149831615300350522406796904720199416327105080207155699643530824270919076569531890200506345511937021478933202856255227585417735509094093633497243718881289845283658516317376568321090658859063916629480463567952435781035954366125601340583096113489573891897944192992369031046689870579432692072571234052954239884731339948548415754845072572452270876509433370535459613358337365961155167238881459234780124072375773308968841078052740019586107737963795788500118439323331014690875714708287712057321885224923336441917303083161727545155328516320450568107292698835286040513443361865077593714712870549756311765098527025379971063824504579971026846530968240008903270812658306754489173508801385496620852616515057069091926079541086162483996930007841544293927015691642262843148423292693075869015404105103861277405644912787358061974858406487687740233639853362071476955994349308602319130847492467707622921199538220622020799203048456308764752497251951493142152223686401332963550653162924459871669366606374197342338069372669704655184536548412708384695502728749181205188890784837550438878888758968465160823237735518752672485990347240942289624744826189149724289472161754458260528131622033818928875574419415697875904779498379940040054878842786141468134025341315073473488989771329264360006786141339241516157137652098939275401589806493689084013477973286541501295082207936990217025265475341142379536008672185194611108037987300602900438971069733955428909138313434179963757210480403206057444005630224841076106074502048626610763272200034072346111296969340440401694810603030748659664927802110135793206561853318421597126472304456597568612132207155658243257111863171306661820006252849964147298404914482219019300010477561821739355691503394625392740698927808722521847667663216200555880450178350165612091154568497334888942422729541580442826690727644866750469724720419816128696521417324100963524097928178978741238659642622015840960311267939995959113896735369609360927316460534914235845172864387143303564519746615018026782273171532883971435718331053540228989606785007251363447342068220833255057387952397883622457795486669849897085298501555748576047134820993643078466368683595665856479230602486419563335246390467616460627088286292009340640222259338129551893341089635796663742764887306075513525698281021928691589753566032847862306316679980813985589941922082483917422963348079841985124993153182954855017511081543835871251732916901580995387214154779311569817181878818389089205507251382654629655934602930340221884202389187581792880580969793346654342652339927120899275719294958624724656709517115537911314956477890772141039145497691345927684012059931009373281989807708350385825768143951192789536898536584630280362864621292824375317456729904160557058127805629072074118075000693999925811579971532126259837154778963306871491440093667013337068641429557076662759480509297514167816012383281570064565943533848251118874601335543464509263925571786384741509789097907760804161259433338973143518378697639006227167834650905053723454276285459385492184662498413551492733508320498761826041846790940701505396835355139970239412570786948527618578868684301099713894950503180674457748487616536348961180403235176344862277388112413947112216739692286174922775457782018977139788739423488634304795377245307264679288335895005572658903063936305846179490021697850334290943997935630662047012083127667812485192528492999886845327671473699727444881625772488898042783327320668313564125554305918392878012774056750589091124271358940870263077922510258257682272873084689402206706203412582524093334936849888470776434626622567866109972764006745828289874499890441309312443260218644352178492163801107723377950457133128484455591955767213768521828392838290793111934493374339404501043435383657475045794986911079585277589090405566930197521287313213439163324139145458589412075526904557670150422196685492785261112891450644779206228926477648279504353990060934318268156372907859303714214251155646981353994499476719818328194589301951613557573020731627220147519502461295627482504428809232215477025219813126352203388714125759219904480972033664980227696917410160296260470961273248305894669402938258250391182873108056885191402527523398310869268971257925622308967185176260282708939293236598297289859905933707329502283705654312524484220411961553569663228780803069935612136903328291215933676504587064164179422620096177201395602862441416659221749912982630299958890604266586321065072029492944958999317370732737606929264798577881438800677317131164026452827341584492606810671436519427694047449781077551086338974175167963691846020016218908444905495692269781502577225506139247186028594045237163424612561883897611566255501543490591162615051605240853469225789382704163105897311006116697233154429478046835415895938676292295024140653186815198697390566948473545612266265615540303182046066963037278181451606599658391059407647791748393993905286827747861760896706574938462407251039224966500742312651925525353290483989313726639697321374211983433564156242605630477297935873965160549642005441149096577510330172709930840963835058214506109144329376527001316516399051710672632256654607338970590312763758832388978673961138160999208900822960246241385348103865634055104729376305616542256703261136889450264439827821992789765386082347331152324536670674346092655252418244324252164242920640909958525049254091928408033050168407327493474779861159814004278790009271911259379011393842537853534234709373535070169832439439773215307379674311756136302573533365831760792491851030628518713537679454626373718027503598326371695276983653524736363353369481689044331030180287115284730324767436472010955559432554326641942553122361184654548447323940741515334330325419836011037825209667154624457090383785495900215412792322850626453670349491141615247516276865644231258288292313545989905450695196488636657094339949936501885209238882859718506194036895831735441401478357840951577451981110134252640392957376945346247059192610537380277129101358396016721974518303219124502345077751260486272709742249377982766308945088643137995379720574934155694745403921526330704201666207671355367154611614461511199572223808841178817570127777196501932167326638678726192010809251504371424628491290010958081506198471297123302098203928337522832719067654014689334302552216640957261459873165036830458418770087825142906518576030491467335658238795266394699475177250829778512607870021201854782704982357696765998482994361685113300783108478429013724227870221053734956467960378914617057611316000283516853154652074079258881422627419266273899922895034703017144534007929134349233386587085223306920721053907747101074647244071351251724619631411130338971072449010106357451954654528897215983765096127417975447933177888475965888048589337122196165190792289203576118526996466189683909527376873540349082997262788015404964734940340476230360213154877505939217332275067559228959550289288549247915580374889289828209411376876089388609440192872454329851902591713876388433965437103850387111433747618425211916611230481725572040814159238472846229566826295859961575523324388081839753635447038134553526511099774714269218848184220869122370843824159530575084404644214174167469174475270766813811470635484907755818172732921792450488496790695028976087431571688058750126482016045485342151173114880057309608425595747993572107460513148528594386248072149341494968511971652229709682770235286624531175565765473600431472965264851908324339145689526512590727732934700222672534472632965601264176427771266201172597667098992556495188209962821560879344827407017732846071092584316367140653250161766382817080102520383065270933024898205050924736793162582775111837546871743955914229611573475549297469308858001225047382631826189095968122880073688828361261012527842314263612992993191114296596906815119399231173267922285197391181577516329572618639999588306117307541048103848821261066878111466351020879281885958338210854642394404330857494242144659267688126061438465818040136624767652603556865878596221590281384884825463413752133064194304850903427146711310943660019266429567326151768298718504365200292273780899954417623359712717408935130167771989342665506057444934353976766434238606153579020263365783231064599881452740634355648537461939674819992335989296144237853333229882080794578703823600374842949135144457564196246064802099364388013946978906102892958211929718659858539055178974911968941574226774322122668591412151958355635362137399007273667473361537649970624275534191325488034017078019185292348736036379461731567803378507173875099966779457517310210198292533221624704092099224909778511213081519252701484158252331357520550836820232903570780293972458765445295516260936561704615167754583089728754589469472578633005106957878304210489871722540945167112369238735946807964563031176291729944543235703379842413139606875526407707182486337240809802419359222729979730195867666246671773302103073437496151004484067919051780888256746804796943851434691443194072267727995606791174824653280767953199282800188683146559465313835030158012879210733330184909474620616438942052688698483178104246555889181198822257971685849509477093639762055863852270353737221850898362299005450545345787591046924208734391459639337124513420228610445639260496366176384713613365902713420231360087185203351686214093748526142365644881777899398439342505686754573694162704904793142507722892212202643934196579939725370031075407013204251101699804028305618300210538926484606765351837358433663561385161144382857221791009311160402743162270610936582595347227668326615901800985387877868188397901157512662814531097376047826694673629141829394964401224528984395671488851091315580766273793093795077458626939225096716287091369557400450071829565288364705269668423367704942907510095035985132613055575237743835618769916435398579219521782403180581209579746630034879812110062267097366158901433162852054708311963223503751273204348508832788983432358663275226644895673143835500690023265057872789095827312793536817723382322081775459901811098908563220890426751082019014728575807994670081247873340538346483401471335061955632111095279235479497090097522792421096141972317721113066311817640031378536497555676785229966481348326078087491419236283567098898757301180387755402019331866415778763036180333529650452440553078334188658173053554493947970306046372107592738419706624082220471066427166042308536082956367145020179001176518625733910776869907496805078075511733449275354296214002750695566545292468125162129582143536872763338101284877311924603599290699484342550687136752728163216268661651240359856037658322893168444570265031428318816360851270795775699234554901425464349758179813478755691862573690151089504655234077806632197068873722365569627349638068609610489249254060219968849958499048602961167290279858622125322587044829385919574456836912688055928982891149970722568470008144505399027724098608235560406740212297992314812380070814860327595223491487165943150187867116179615308015153878048603109111050621998240938904962101441725767675798822238419923528805464164633924280962459898749309201265531398340127987428589085153711152099962833733481857294811022168557075018022316731773769652207516339527299729187383696890258100782467067993944360210089121205213630626169480667864724498413163145613935821108794420599139411780042018183666293097202372040866093265450942053633551593126374912904161312231435238832037136151164085839177197364424882218031649850779136252044816050092869038001552224695948179279813251798881350935187161502173814154594847591156694898941251204756318106552389196370647390121575492739202806420250187391341447917537521298553425386345028829647892953062067109275778927779704248925829360090472084357681718200614741878116886526875713826836408398944962427844422143595831776978931226372079960787011330019492719088078128943926787029744603921729554238831487590916568793008869813428879379135258667814158540644273443495297951682820493845130095291954436038939619687068882902095142693098824611625964715709789724048490692211197400134715785034607061978568228820882351522424601483600287480380138300192174282134608832682382244197255506964439182341515996089842870729327767804608762186277197490065387707245578327226453499286856114602610692657667118867788156679539349361797810876925036478439780116877718043697990454288087025266405526538182217605621228334211032609447638004872502855511569273425068211764518713675917402274642658374655971849024681443436296768655347865171737005802406458536392037454544132554300274979687883101409246987101544742659303805942631881453119977523198867433493158926762694635899679363326415108628861172008597398236250861898134701792869356561900205671761788146531423817341358928445382979965573491840122819778395318002211390004587738468661148635498818315454442868808341063737412534537199966090548153449032567371959671676178059877017884312133015975853938543833550440142677255651647354697142800701905856383629520579830498474312534745669482572064952369193186149105998088360230035478870224533346748175685152046155762758494255626855354409745959179731327053389922300696066501834631420972355860496559715018700552651476040065443338865935250386533311760562259118523539120966813529734219971376211216488885399097157542137037586309789642198654778920033968016164910467263624355548722148954352131226913346373256283996464626483018227567761015515876213525515542381303247363093194982685249881441564579501938462742008852203966225232282210728717406425076292727137696432476886236921250324715929337828473697160960384600392327245595887768584776877768853971144990656086368482247157725141490056924971696764762165172648321848859581748189629467867299821365400554609423033541251508472125538627739010719184446103531849049028268575171664115407069815169686473241389283627810068588250096719710911796898311252399209659870599791476414579662167072701612028784626578285655257979569105735357171676624029746942517977279652115667119478561971394298091017733412223048596248593533821374561731480406407103311891649351248146004206284925498814046079787623842627169859670707479291097150423016170604655876737377102891981178108362768512017360105239612754637251447843025988624255514739408520175686237355373201906462369838958366612885420211874778975499602239888625231160091718300031242257769119145728898346857302827263573805332052276502415295580482047488908708186561094491349159760631890564365973205366723052102956248957042349404048770210447305004655569979463318402659550915538941969559010204406333790007521761218351420210178539225606661297023573163582051553081031960334158119457153136402307985000917508532706506808643734766580626968481982938687720600182873823108500831869753072331464749487125252198291312363624428744972501360465367537210972843527213980678191420844845157796208398444298532485327566051844229355141333811621616139899365988529414195967061582990239835114958463654990086156358924483311110762434468173653189996379564029750359450859862164010459273933394946005916928001082830288200083886684221309135997214359496648241550772085587710961555173866462299542635468256564715208732856730484724034685353212030275451588675998424215899907057756715289190851385767986209029920209568747510770388934650858657554911047008548163857831982735732533595187591570359275473890262699413964778257706017956963846811442837566140580941243513973654270512413659561622629736901390686777487007863982229889991542790834159625982459961405079646125095119633626883178309893074798175007073144136436317057236908676773671045505013217602975013041092821143194929827350841000300530994179947936895070602853155039687634362448767441305443950531893931407312165468556013280884294360377611102787003196661947576215416235447101418734252249837881978351924801833547781268172002973724115958348431352397942424543233717644129399987318938853854187342691497813656045851121882738287350657034262396528978133270756731026087446638640745534993932649392430667486723449174874020381338315693870045420649077749326108636551856813270065734719356012006947119572890145412346202842357732445568643171447968432316419295502744376668721900813802938127520418265457983394248156430115739479833562339647595986368289580458100777041193390842507434086391428649480211373685697572594284522526648373695232670862380356093734503587550898348884831911174358729555866363409078851576537131061227093724627453509666954014556190575784513172161136819925848475453879404974821127705217702246910563005840131008906168985421895713193472078266467925626805854355618002722308879522224284393181683603000991924663418804770480279836480696724579026579857790013799494735605473644375742200437717932540582119169726832089577756811843555109426884597159833284269826439124944958796227116560285667868431393115654220263384463663057915026739938166561293658092093587302006644868732918099090170143408319362392913924336983268638895720829443365152694949058372229317658563736235418294662210085092200982873776281410601951276436015770685887553962682410933685041705905767084335372368639930325254340116808900818505618093038260237236781152944771129692059795813118789995958883267316365244588169049914833358772747941880054009064136786227287168183291466225360479666685564364554815564486143648547325182978489189326488492112520279386031771747961221710336170143613578490396103039191184777327177522593919184758767384294224944546709943388522624681506533873082618128968036433203495996293776100611117413849501412899090924647773862872165557807965997084263522881527822833116005655030268950982251206386686602433099161445444356897133888412579045168811269522367081062345044688968343389563521533062214070940160971487667114549320304698100845436446732451082147573911560839920538856455470604313653815898246738498914917026395960390894955536926117957342861459818835685164169975034989859398023927465490221426263891495207250010161093431963475254402097091546158359530113605912307821572242543762225574610915459671645521172513197238082864577564458770234459444649582274194072568161390033148003694847520933841814424505757890429495498819349573995747962634689561844078326679198838271597397309387958565182036073767576014878555637839811042029039640740525187254190428487538760103119941063484763762304848040416522205267839039596398815368753140565584060978873666975651277558844913570068442737235823597221275345772761092130316671428725912667467394887724732576491234759657909271420469704180410770931542826718402240681513128667724212489589336832905519831799760634906421202962105730559977266057026064681643092219327965568780722565856685192014462357329044515232950170029474567763046642904176200130500142430194579184802287160809901131286667839962253879570768008488195823630364032272533405031562484931893891623651496223956160416604606647439654958358491921244855886995683082357988169781243825740530583844692374481653405542379046615784904166401170832395332314367980467360218267619868609846015858694837027045702553977305815817237373897205099635913845914833327406610292805309836751525255197908844530195809810524282758301595325446265494251357544532683735385837921979732457127285683653040665224966162523625512040911467805234061155913406814621764758052890189331337502750466841486628182397978712799675994895183612396055884293999269080961109183626581567328857984021995344270239006519551899251320500406043863098217124999192623921578884183191235144316471617328958205648873926284316660193897888963027040008120366752488687772759729394475528861575105284446560058476062210802856364020737257699813212290267225008608694284478593056813988147570260218519338124487331652793265542572914057050938010616567826381666423828059822341810971480944841116272774982211983209451573652489389049229637087968143020802950893335166422122279256559511763142963587690256582452738826790765306007514700857419451914635613202272549144555689701734385408319682193883825489155311195640377900515275929727649425084457402337030652834797998238896443486472953605798058728608958243303272357535765797254429751261142064332938017721275280448237169868799921146428934234581535170932873593172885258217993139511331473853321546991434894671223635078707571788436306466854346488092946487169121404051246755164251302722997682940815390869160768782300838998059475311107590038356852000622669975134263103834380660273744382505409212525582751857164799156433635941900267483727540394344680847005561881155244358642072372097129151220906486734909712906025623836905117212567788688465798462319556745966057099176041522024444998868295274916982426149579476832391925344277640564135929760554909103121285424408207928160688221475048254981860526676823444905912399365586029780327819212720390328165548113620681758923165456714234232544946566093552495632390679411088619442745623907326861599680608288320318005614478746843984253272374839842076294162124847929837344259785701128252671576140303343389209235390407626487325099775641704128116011495266151667927692781427631924558636902441327760703569876542593191406523832884905119895609365809917191889477358027669788186939219308464120784081954178000870398186385772129056343369375711523056271508345033740662260202568433874797969188645307792820825870267065987007846220895528200471868333750881610930294281982451215337758061599890509917896814530704629271190416503686957656544189417418563044937685799733191798803320410818873305300111002524072102272308975828063209198270133084638765151349134422450804569919207866530052944798723564548430203395735733517854136720693631911667190703592922453945885413630078300796256094745080453260967521174453415518210421694327420135863455422333847623870895072828669613799519850073730873608814586602538693287291916517844027267124127262861166142096830690677431312320446331920128536914608380504539030920533827387285659486485475522437933754690978133913395671083640689982814541512143418669601692714384805018143363113269230344361951497748944199350608515309377137170058462870898820402723539596255703564813937773467625324594332300950668135027351277330598004782113747907650740535002128980345050168299522508892876114649640314328249204798135465743864206105438615199126350835795307149758654765448455434382365519092667971303015793538929209544479661698708554912807231871570927026020772609937415233102215658654131090870473623738954034578107624208483919242403571411309819009265106808581029393806945573644769880074768782276706106822449923179812476250702984251792408423464568662880957435363939652700575639021553046575331257916652817301019116940067197617362697504904601315677292198299542015313031084149851218784369567146200137913423642575863030489773231389468232446694829853390902324359368065268108060828256339421672261233436313731183144941808963937701944377854356125970392178760548437987217580482032184456942699121418819469756572168157024607192544810233764407763655092974685064017766626236468582251787205135938816315287485220947119184609809417129625908700403513533550363121219068531229515144251300004215328150304018362471983848201800766934467472362686258903223985341062382266292206374081138929153723945224242022014113053741740899519514526951930605163452524739410500111814655894320324091112635410524988618006440859277255284124597256344932403146404554679533123293483142272665417965020662995201530234433484106065211182938725443056050878102453038791951678700279048943636761247306666799515706995857226046552736016660736922700609378914256440690155115398560759669949596673064242874262257266010258058023296634970911300650153420408405116526267888846060509345992108159272136553575492809061488327691415623699996924642254397958452025940433971400716059673201717816444538943197504201858689386336210166933994406790593456956611641097776873988673739878036842473590459051412486681169669332868882232480579757509851008440816356101568327082096661186493051480823142807690261492579708653642137917694022138091243114363484484149172751594766665444003149242636808762667413026808962842410285757715637183879482880829821966354201422855501765380983462376689950268519840731377770251310864678526572847570088741728500207744344643659074628146225273238835798758482911027236291541201677792857580878951142633252225000230616035241678088731180359619190990539569605467947017460195943487675218981030370255187388532779469047631439510297825373632577557983237420539506443320153577918362148758645187275754385756790022456458262541541565870910490981119611834067428725508984608397531216616563801778027898463508369818041404183072087845892326113070850629757181904593109761467542564660976012419219846634937623291983134457926616402904584486410970671328452067180774085078864658171431102908098694423077922017115740532199698148419865944660985858113817920094322826689183775774227730423349208299709898541717011301835261093345708754244297646536384287494726738493347160573761364885788777832686890599062426739478675860313302410134751056822961548085149538827108444239093886490425160347056004186837158663664188501542918209445317348094791737347698465082095931192653712532171837210952154408399431870121237689120295675242786110235022696755905955530845888256991007044281554492027076785940626702074239683418505845793618894127210976011470931548132725092354666886329544219291667609828612084098858326280826902288055314226836100109313115709663428830372789263385276005921201759816634645087981296021922004517638875018002458214200572639888419832706286063046939358604205435461620490821586270351746926055813934479334039598479718001763136403888525808758034605658557708134079710817587199177191520779327949285310254195194772043349685997835203025666748123085197257970104528107472721545951082335948319617166019754958237646190977138880196186463735409161170820394651329233432355928294557530412356655379005455249235865924988396503290739338525388502342804519676562401419027402038710617934994220184255920683656447241467952609840843784197973120318891702920148189976182424017086868201889268530976915492450260796511632189657889073665282166022935601029807548464792873250858089428266360934523832206366406809503914079971851624953286494972576759629026472578571543806122443071429076814582812681562356624995024606251583459816418496059058986944853829836505676261529089205367074787675837096871039035986519297218199517571309012765718797901787475798917587243067153737066580251936993245321017882310225165189538952305546476396787598878057166911733120904834968355523423903741937278858248054398612264881587738142108853663389168949617155109558811849916929333901281650343718000833766231007034124780894146544648540075775570378527193632874712274282308328014055960078638939843549469621769004945090235085725906539757298236658240565500961132156977027077243572687178235487397783571652536563876305387757862491382102669374205032096579832773407573325878929474013947356527390728107442997900281522542019015038959213012866435769112581967483829512031220400629412450689599982996613214509615708788610079884357391890908670741134878279366885650278113617735343473246518654270658188473652783834627623952827281443474215676841106649904465732163437550706081599499873051138002782485926817308814807551017331595121246773217832752776211373373198680922620129324933095414288261577673544496454046588507683818779189954084993199725876382018507590588274818059455382935170698854843822292930252735038579014079168165332991084896383687904154742881442038390524772407167160226611883330158281776681518339658674631621685185360951500191615039660387972498694785979288938377674885587688222396221324657586810489551792894026591563058997594878009826667609742109276342869753751604630235158586831252839065241358945417627950788645501960749571997197106449757890162424187815085914282000948797814688222965027475793261755674012310712061090201901795421334906665971703636037019436380477875613270072184823482796993719953006487616996699485045327374588442240916698349908447478304021090115344816999257971809505190730373804843352348980617963781642255133114367825394857991783709518215732503290452408199601985241955263043687294074429582759053264105963246632798066076196694735883708744589501517620287110821233511614972874657329043280324557886423326875408982594313443923536004613070916036659824930676295437070959753441360910982294188649689337638248797675733143950770161620182894102990795703509625425368823767888764688540320794465201636034309455826133584108798647577432538866200933337701684502886621021521231422914857379480425872070538768822656419971407621920403080307650043334432657177924787638683674712281852592117154060184746037592190053033795609869324848089081422245615060163526195881705640958012219644225923208463870855066912103272409931625709031984325668441604244257933568993775917495040634122031026663718169703153486909240204702448183486341332718930572163396661292569329518977059948319942489795785586353068483841646931466322086226244179888651496048463195399824408429034548556276926559270466784257291500062096150036011642313629797441582121496116618441980203150241679184114935907660325040953821718787313443605009918397173504501825180389225573466468999677617807163526272034282202836635638116808230226667278150277284518727558255722432219551919474793146193273047464912464857704909251230519947895632836848373474094087759883365151292140200279537764413955636756344219610097086496596695670464175404711412852521123384200085181398631935078540293079717751087613052722291309136523060869837391331254344820083992562864808944546682982918993715909655725937995801610653948866754633585124603051500360038589717019090937217148780732685950365513383804339643295849599685286327815288433711714384018154284254115529591734883652675702606940250499310735720978165884230913417963652107808087788535405354912535588017516533131373656308805524291851584758102789433157248530547133361208140807674018016692084874633584817924038231232450757064796312997325083027107809839729387224361550943762311712487162119845477958268360729147996059529844912287547280710899488931950055787671414700115872690024559840404184417347512538426627712968204188532089985989318847818174221386713822345036070642411423132683404176204866194958890171999332626261627727088243339097708357940941411086472098925295449070503079023022897207988310126104097236998839119786649539408142451432954608624050677157468865922850715789432673500674069410806665211378224822695510145322571489813903250312082236592833505940033252022557513459321118281416311573700131284372384143759358126755492231255386578102127783460619881763121378056040029878395460485128768590165707136024340004911274833105714737964128491929032505016458534027635550874154795584436627455323301113330273099230676745224282781098376009581322109252397385271410737163627008395647503266791429426301139476645914795158872328268906337924710494309649716453674136713252212762826596146793203284681211327919362801844173613530744370739960493715240786666697662222801467010703200245062252199052618446694279544983263360970368979816027162305187810814297859185725312395967564448941743996642348851865376831743245747643398763481998465017527813453785503543436961196052923880881732348236826046236896690329171016066123522386655586049132158445853233965875569594335472688254600491884030601600947281339861307734225334824376673437770112243545148495911016247709575482072522038113922703708714472368792258396242117249749579320913779540280661200135622758052936815026220716538472819153650730971249244677482786995730046963943283839181298848126078343976829393790688693204072706385503744029275110907767797789614045635018106244371879607926915397737199518765788583576370914786488909353524831425594880931395200562873064967291801932710401544461316019985851382062944021600821213392414077277195294403684423933056560338733267386785200424522081042857464552729186314147120960656340678222886049081152412206058088103444983563374440385360401395068679075893552346376566103552672169623894960767863458587588958648216679343804780917616072130211865281419607433077703992278379500419820770991405121603867025421329574889200482059816216307962220985435853868597749437043998797834370284431027212906867905196406504251253365926632205969613559109833694059752023415467272184418509060962327365608939063064830540026371503992011235856466235986293010477475065058970617781738464176024567797569265854255895515636958682745743175081518116035297244979513828953219620878519332152260102224320505064024707406904458589652533715464789399824305661026391170097103902945287067191599142175783378586208559546065271752785403264993820051811999988887960514011995336946515581382442247102327324166367076666066887059738262171908419785473456761490056070482212253270643194230934348489291484538129689811754957466052373878693162291625627996444763777065756658482981522546964058411104883632300840180617841041442030504889014768656946809022112344324709370193293220839806439706064183041722457995431089719009859592311986669696806085698199340262996417299320934023023337861964803363860691473011727145937011994405684689484121176595251861600102657274271855153509408794110423185885020467637462323019485914094723823142451764070348421823437500438851236612952516393975837860135976592933797255340566339322670024928999052880721745415830059346691855304535167564498451891768267443759232176156324384666125978416211748596142111539367429597522224964579441553473770482286136575565902010313465292648564366880478134249671084973670660815951678352982308987015911181813405115508640384940206545337388158709342307119953522972942174932044626616694815783330252703065408703108449200337168498940049613011866509042427240112281036853284305059448211267081008794177825615367042458219763878132832211437725353021097574765932929517669103181660954551447921968001769240064658770609253061207112998654322196009782496462784537144547054752056287087149280652412875039939854542061356203215196069385076614496812065615315034055944653066990722639362691350687109448522770551239306411997005022071384219566268016851643773660938386321356581771904561300749643635944130210394793169521711375615207316584862444316918246389339712201032000589220052051639483163715767533225146423519085206744961396000408536260640546169200024021535691057381231915953862382952713519851860101982943443746868975354057311315129098442413003503842818437611255781348028689957872333286716554772842144731693369067188156451006642450549536514340881867379719443998542211059576479328199625336597995010300322237695301896068543374056837631591629637502712704570938021158221081384835677311092874870553670002612787100865945446810983334650628832006757806432528440027863676228255879017989705061300527082315443922888142210602623462878703561065520193773300799539700365653591003671602887529017854100217629076807939025279215962191872994290710432492584678533998188928971954237319239488866340761906919553616160579406734984750828426302088766933189929053930760583399828438745574921667660397049043974540308434859284982769566832267846585668958659203983488777979380499865054298399481693419886561790866506601334566311517232357919147786407115135842234856418723822338732392058000955254034487008878063925480364253058436658125793977402037642863067566059982571600665478826183405227016992564487618946354137388354617278255996284822040623662658937754362845136035762662142788821920677977471329620317573308245210589601296180253484102642447498733516937893703739312388289264034886682086996439942602678616921190278985715095185606134080182044941321091597114561697020824777626157370983157402237116412335962901655896388422165729601131737174295471304553651557597986439521081434958173531635495874080062686098861962098421203002097187378814142380892752970166793048387555854590322438783704179467500669822488991345122359834341932321683758250829300489567423007241888291528390569007118533609671836713599248549585646177063385495833975667565411285792613562691854175790167501645186629447446644754345655110784349459110388307637655275264758357447975153688214714864488515232886260542050438328382316366359962293739851306788311178160532134947195408251909764298709421244989899763099834151831678524428567743705702783724510200833760672409599753365945807149246967232857105478105977528135404883972304252144145475685561081987959039461246537709461377167454233866505652533044781966931501902298997716520727144072243867678869241978347266720587709594718270635037928128428542793637957359337099440018818954439256954777746006453958229077990629947361160565237943125645308804794212156421537102605961520301440334224577100982896067943566367128289991197848016907009396976822724231836544880140022769019880727128737566238960234584256771402171798758358238040915804375554774002985917029415326198392153167405073873773081594548693136514171706877905802763034286384912506561969332635270561025124814386905051595533970734442485120173623440008908013698360834642808810309979466094455314326231519276036896889874889397792001551993213767428528557010533201817421683362119334550034161684235653553620413975921432185784298071859066757836428102246606831902982675010897100160847483322227361865536921795153405904500601223088258487745084941978361603079782019491253105331008504594788941676715879125371846926587443054614218255221710305742802042918275126272392017633328595135592983672091212066087774583954724743755788008029549270143216728359436804976271131051333340383680350477894287562635601866370019239774626771170028430012699241698401476634721932963305067624766374286213116577728198294414803240841164444237278240476693705925259857472151624239730026692684437452855523941785224391284987945979366044807934350896930659553892005579077513399109341124451174906268003308467914795114567589642465721459306866364592621344194283558407692086016156056368972833777443971727817633678755303149654534396602991842685254753912172218458744784551760191254153964951190916604595838966392534421435702251888187593830613826278589608577613021853282296944252494721799047732688682643103318178827210718005184180335369367004963797733177066074314558269675936974877933236176777116985062909131232826359492724298477836751887134100239213025165388092053559906513880447704679121261603847703915516573295580667262443408474275239038797140088486047211026025233858461431861801414932114857716710014970766622293521895152937372314006103238657057647919064726064110915376028189612512438372989075082401768634928652451202224246289323222532673242860573446368269039900846599612965474930862567713495468137021868854025674340558559311136366571300646605141422994616360882261920311131195356932943098088409527622847981823954885834112217386579614165783378874642276434455552251924421740137305025479126699912943403103142512638097007828128099863635326819632830166671447646777198390489777567232971225345929112998465020500897170615691828383283801781335132629369193107788777636874714162610456461406446240988139930090449747649377493299659040155419920573453929174782457383639264653666911999131557491198098121700435559457476933724013186048442127353167761578162279746132416925841040761513575078789527275396706943630457885097258656435059609374860647557196113157339055999050521506535675222325352617026313835361456129595663659428133626018612067100005753274909380699568739423921248381150703220393612758422417141878086878323917646581526858268346660745692360313506970605189681821662441221936773196381818052983740781489586353210178701371174018931811181141290613210435018688123939623154595758732732460229712353679395284289706623115887895937673662711640177325178543527027647297573266824389243620964985475062628203593807258354977656731814582676684469527740474314347287753801113411684140368908810124966274753128709489973811683848679764852538811759410711684540716814836473130817428775703895137247007240100393692977649520105345004843700222217781010795080555061758363940183646599134664145020399541326219255787106794860167692200898067423348103005618267279178001471141877838890615565393089292516698431953284580541890053571822417794304571342853105441860684949447548646243303193764469597735725421018490594873726785925453965207651005442723729394121647706962814051436630268580874062214960142096828252391013578865041220844391529635756051516043772496007336925620857106041703531891427084500950092087806817700986387728868663939957673842571483872630972228830903345664775626479471416131686629095413931002685223734595474717874949065098570733957610239168171779765485790650523989543658381227848640737697639451890011043420872443003116732948803927945564792154577535715328429512846056185358318331559523967079403381498703821225904208060822527340659028113268138776483996499533260871091752566188120119882747105572976995194678149170293157076410944360874561904104273759631383184551824805175449057352473628263040245558019781269709799295020852021066074479014431027825432028473263459117758270505267671311351980115653226746540171762684147267230298700355559610079110214533116540339624367835120061743807105164765757768656645696100569680710966520787470497034723911897026957111477797499480897767897152312474663271450096106642884930304120888677506648287328923028712964036108792320463475113284139388792191678542904198184708101555173124102389422265512270928938756161400158225936774426386618820325781841100559035073088368217093279191666258177327760565601011394455093774374641362331795789429213946595743409576186425498304205279258229018558886733598813858087311099266465978969140543820198148384173010808267011653553074226977658951680850050334722917138588755230801056297565210416346770426873807695916153020428540452680688732910805854645067716195831763436091439127385792514614496718787617882082423665224728999967771065184806933534630304966234498661205520506029357266653942212496252543940144718174465938004431551455540805696911758100164729227706310070768534673978440212944130325757489394302191557877833181125958797575333477412566723652778662283173011247530908179528883342344760469042944525970103023662274801962163260280434693333994637846053767703815940767073337989399595320034119499147072420302536678522602925056799990193028216023394069728066912953521038146517204162388365585739322531379645629236925282693754587832203630166027403267547385900757268448832029642716742459981298147910756559794316415958741069085326191030568280647383477543298316656434383454711892698606582371263885638775974162917166282767670417452429939889996947974873145550019915525232538786099503581613207673928191736481068766978763443522361369808923182671108327079522406423977841313264092850629685338239397318657555198753421137782486370553769588348743704232539239326433016562326382074784516188898624296479768582916942391757826566992302872780055263172763791881229999077521403944375076787744853127526591539325137046124538635253794235750599594889947963625998096564843630944599256234401628452244253485300746837847164173510050231639912803835523944496323665307131316547395981567653590168673744228788553366431254961285178445619945200982944182898897491687222194256018480326840703630947595758700311317115607081344925140957228285084325683718151591493478651280099137510189245972002958197966405255472148649334007299421383225412604431114125325346496830825608407907491907439557810209130074993418583559262946020710712047610328091695690831808398493882770565045794486631512169120530121556203137612587876788816510049287331851626641091681444342973124489379979662975380771440765738698006966652040743247089038006370420568178206115315664134644722128957993588706369352406792281259625544867956756497739790852566008152333177189630319368914013973811170009946989367664612930881495502097095769250563123265560615859301876443737042229511660464321163200469848170901251387849847912844505785992239389274187814655820019127401651799615172761950895864521968002976047539605293805578682566456646583600707136351693203765348850661566299774914634042998338386840240981940994099222425960856269878459258980032710483290553564952990686286299115507968143773819133356095376626636683336102602821259566692302939307784472346674048370641782476634661825212732157046140255359249817543418457462245371501255091090342974189120694422939318381636384985739371477340152719254939076385794416121009972768494662186376332633569984958438850520147501794284516928991321076546702448330147016940662438753180949945997290850250560658642862647385890747783915377687769014357031032611191153334944304059282026328973999364729892246099601732190774100479555623497930536777060342569672759567289789743275857833307009946762269598190337188274509545353100425078399009522271020037132390813293854080428969490311091802795645174311999430164361874833639911865328301936718679522290464437203356248568757076127111461798021802652812966495353543001683008939418127435718643489434912653754977586599109986697215014371250078800314131998180268430649353703865025056962247629766370023160595739582119004108031755871354937460555564933424768278677353274706472163081481933556086597969132264453329377188587765663273029492160668129392332042789557980427715303514062133373130016657047813463307557496403430091273183590166708238539856433371023700870258605296142617633351053504103786227867394508690546983471412278238640184209411578066672923345903594131407791014393634518935352461857534432365780251215802531163274020544364052839537903921431517301345464225582568686746091000302651533663338328344864196510691512494717501924219574762595495004958197311846623396452291914110893018901962486734298677399771555874469514530528749778389329304651763755260953019701307919739417402265809717064681621671584603020841121252676247572954312719251800414617920647703144188729650126076863570801657046388258258799921521005906282932243032387012148669686605550682813517984617608766351694573978641591479483422626446086738963206740254429621648214944613026357505667785497038253675201014459647664838989100810432558160348726114315601926712448069128156248668432900515638668569607237555429392371569587705484650390599375511565649808863527563306106154071380826028097556257590564927768960301113633873878492698570501203733525309814283791587178197710542282691453046363040418494647060424689351377042022504827684269961240826879823713053321953605528205580620102954818088128865700129926314777902051686644601135092767876192586620278134630663428915311788183054503701680660850794595737440066701305562900549533842805194690283978547557160578118224509388748552897389471286852987742250307388777945329403391898802313515558294024337317526332662262292980624287844530289280115735663868878613294375287023470936044597672156840465824271111794791857852774416604053267509289509540079946819056801131660956285326787945546725420881486422228417503123488489098011662131748969853772146983634950478052680968801958848368819242971679933832010678340901866891513116850055970217920104047817041888187329558510197994209926549130103798590248923526481668400932593685412024166213434575604967816834470647578848776561111989898980111345505586854325768442246218016391995514057932652838531781785199838136649750986869996540082906304467030433231256987603102600682476645068912192334825494458548732842191989439234230619185236673717569977918083181520103044572088740592807646608316934992550668918188655612423082739989101003712957869066172393468171239036927206454852710424410795423771034966231975275243826627738275345299713083073030951206236069192583495843327896944856248941302600136978735936768074623225744856295233349139847493295309890778228929893666963218712980303170649391419992488761798773254925999168074718489362562970560159128204130285404984273814273334968622224149260276092488089772012149944333258188013772192053400541285193332014828150782254926026287557775883899617051218353655329334723136184929530497840855183773933439995633064022984090874223232098265026053104101306425950503523958446112406496747718056328061914391855496712198086628798087024996031799834889190329510881292883483173239083074109543802067734248676613777165939318741435110492322697096502187563011318630511798913733713528145268187686280954630762571467206657625177166770468434193045963490227623333562728155608398319284955955365051996480882594635126718085455761241046372896803224988278020957208662006558566870370347514117957660271948706606103596010192062001691401913756455799937793970769625482871934472412245640580779334439662240006418275275475478947440949588946881531687741441124339919948338289313909785225501509433302595781404807304222561107519334994166351802651080713371589074965310409974354553512963355096457065007895264400609622846418593853211597976005006669734898089769896152093852581980674399687452968815763121193954692803270006981183202456162795362888293568928650002764924124542654626356866799770397776971725360386567430635907075600574135560121394329981897287132641588150132121958202731223780253794423303497571529625151158843597586269929210016243427122666669252817386696864265822584029494798689641841723365387624517706999800085977014327934706580739048114284086368802620363263123477468758142087064070499296676225397011600153717226002883034140491191771217392023279255798388720115173368651343068469893276455207896131540270993704128086279389837389285954293614290164137612733637788851235029583397008069177896734949420641597745160063592009088966354902262870412869247959570330945802190142443477483028955919459548904823093001588022660759955179188241636885004003083807550388503393384998711987581695998429711464251742052639199876065635380450637892146278753873334512034387239478376333370757536099862430190953425471605055159242400911483342013355227792607190342646864452194766249291151991943497533056730149946897187273780643276779415616423993007382592770118280570951423561843875636813187653500320887965436162650575211075731789067534592699110347028623059223312364488860583705001229610239417211312306063325385826091605636607754638231223394628967617921431404571198613558369166592326237728362098345369313330272980021906247486714878563627375381677711511081702141920354650961345637413218723678841180916137475668323135213222236745444752665730892209626705157551864442578916309444827621569451174260602598512864037956714433712519686651367774967187180442356205804376188445502499354003905593449311929006822479439821614976766770998176667420581531588022401810061407238554172842456628548073527299171404391757257353647738974544616002476107838460828043232760980845118170396759423931636494230512079189018034033888093358565809538324472811324359326107461084744872552423773856870720360956644189875689374773082990423357256480102783773346098694596065355784788742317966728035429514314216103064185135102057951680338938091496173024466041265848896149995338214448819082188025814009160401892212408895160808597509173579735927311506586298999324020818862072800206282306160673695613101224784294879858329426792926723616027214013077220965476240065973306192793135891985815541818714007521981788051459491061175372335814953056853940876381069651137990902085399627239017800178035220819485579908122290125887335851653919905718100971012761753830047814423053370720113705015196803232498232627646580984048572949499420882684043276540815261142835505384833267553305016423143181454519946804772727398847007208909578168050803800240965766392287156468097405375580817217592410646384120505305645731927362388355216442363142892427811136290650117288633970703743546426838303157428095660137496133290151553025444508460418323515881856328225592199476325388149621830745301833837618325420288297425142199317672557747357786394104060024329063374057468169793287024831514472322933643298537273941601573200166925477701940686044010774341656974110077447993198863695161802746430235856054839723154913321854230714826647389533506581302760589524754817042845282031599905663062930204662979857955085936419307740520740670472454064070517639113397795231309119777394930861237273128551491050890509426759684199217915843747862790212257457150430080989776681623235796272597613849622875798708257887970073019486101335284115196250543594672409355202919550294859060019570471595752464593858566970238689176428688677967538114834071720674413694085200104398397623453251941025935273792993566469092333936904664510289897941795721847588019364541597260708957546368955120459403018875585342457495258259177562689092941395480162381582434703648840395706213917424736422688922120606708532101104965721177837048234417047928085547518336344668163158760976201889992532690324119634810199572036824751264443629373873306189995349015002955242176734530414219437213485450233419637038400650498581786431004431301780651340047525920672964410859465662103963410823230756529020302095565554056154180133491269504426617238133699039907387368806544421385145537387838376861212118239198271965533491925991595596514017852747431331514506829548285830844204072496606048557209327019436954163709496393238714407939813614758513249900891151398570227366912856010853217271897875981657064644927650218563519579355397942920653724021578251325385406480297455104286447957081432206797322211666991457232031234561645442261725682849801934386307107829577046746364525083119622461468338463332788698119156672050463774245518045195227317744813693483511630525386996224318458692522638842086968841316597984086373959350771282897822393161616597202480861351243990064992504166391023094424680454618437804199620169188419720602399610282006049566927613078890373731746452279733152786099981513505428634217673373040151682502229528394923827079217805135256194779930485918012547311432858903782167203293976571177306313008557971830967315586393375318873220470294222194890184429193661904547054990655985828481280491890878701852669922085749658388960178783409824090481010262233802985641018385860193342624628798680971306424048814942749039310333494377963731894252222795721604588533921715630805036559327696070813666352642038726271321063740369807817278793221099011191594635724785507548930111607968330288705180073926204793492046308557860784565698963198779939580133608562496295416600755459590270607527287709686622172854795217403678914667104120561070889747337501406032070063204958120180142503720555640579363368170981706854839955167267545998823470972847101518591640054069497099064494198134790249467714429597617529381231604461836102482333353520758831088086536207989401974170362864312851280970454081558151958361573220206434269596385811337455358292010751969468269424549180043974777014220801996231756900513377031249427290926560350752398926563031955416314045317501054214686796811776556155243521638424158588140031344450362789259532551071153746540341758297643239751541892799360149973335262362763530202346296144783245013514243555539483589675491796347710212891688516786296393562451155231718838868759736109053479425338716300177286560295520224781939655254250430192820534113670649877472043573354033521582954805158859128446180639154974631821965346224959716839038717867365632749064449230712187463857958607416234869858863162541917597821374223698908933962889729328460829813701036893050083119613223963513627454141549506922243589156350270224114803478399246520961635030019181742835952678947073049203095461916956885522246533350436717413254926930588233590270112137558350519089706380828987652683882432746355581878781957983149836481549341685066190393657832160348432095165498961778548522654969849213067763755676437946456567245858507392912188775402684200009764565250873459555497055142363788851954421557634744311287870891817348663864711214253462038920781674961615217512420137440953262717893751869043802899725253150991270629589393640728282197001910997002379048525299799580351114172544837032744821203395313948335566873891658207632061654515518778586565941745769009256958165737358852188320298937744669795013576309081235801514291424101391955561234997039662769103635531742074411264432363450747813637864980041572541299508727968879266181078729751940033230517667253955032080586212197496966439952395968133649152721327090672938038994368181347872310999981728427235811103328635209652618398034013818225822061911820208088244384891058072641413817435357044783876303204867242806167884694040780179868356739481739812372217934640857711478945633292379902513254446917692004654139551271833182046624049997915974288747861049898810155991118753231522890224259830007411154801511889035536272235930216284797913765287148408739988565382983505319423008213454928036226999672974789428939853494656790906912100437646041418628335038711219076399286018370459266495623609847921728033120218384237280138132794928161458123478639139209866440742197927871400529755156619186491146238381693765522532996229595758650120841278186973887172143824033426803054764655811423825561004374354150310645323552130441815612312218612131333533348618688018686366730717843616172781838857057877978882014270565769258869518727349962154874531447287063965489612436607658401436146032070983918970485862587133535269071726728825182861802192083432077912601863310920812612717983894085718165139335788142162283798642252214583394364535052190959569833636375232500831159367682745655997233808679540824641337413488154895622440570300539419850078014348051038835628884476335559271976241447041934047688732676128077273960078292798046813924093092239113269458104122019544309018193440065657247188458327941489751864050019445906809454490074467253790633965427980629021423975508266905233034613165325847064750686599892411125200194966441501614765031517012964015815273697833210097613205999948883158480116437486672381825020792058485862649643886997059054844842417507148239671280473986503137710432613132959298181433636684323703062678927218133579692841555420610510685481656368955667807161209795712798983463210656340031896377866814563995657271712082159903901601889307760849916469915792682908046682150090985478997265368726900022695688786679030148791166019889088150321363871250833371143097308182191401577029475948054736874579662726498450470534609264087136156891621357830727137453515638491034328806774166788499649955814186518720818147669736214632691571138651855034984236488241234762936577003456541751393248519804994007617328932672329416752770214195164890862312517606061140420140984994238893959487138441779905531257578191201986712422296186592727982004140357904686730416438444269230762464653189251554751610919804999648959867842355802962604355278112489361182392583284386634448499348303784078496567250541958854359980583544843315183727013570692354849752655104860827133791065363844096058384497168577337387813037620151190776749536050737507550628314605402029485998636323865793560762333950942716212160221348268342155203352235482119463966243005222047843375540763554284989837479498612505944407204704138955871999202863250906442836309302730177297880458143327003073031604637098205040202199644844846973896597363105608490819585469179198677621883219504420545001642273184129737002078832967229030855871645922438147166314385826979483623943381947397761826306610793905935132629924954183947080422243061716256342083270793588230709872994569887608138254284048154164740012973944313418450439263653019889905134068281490960912636617656125114261794913958417033780210937958339195379024286156458451270107983419276176786438815880774790715018063687343565527333551444225539531126593593578859580361048428326365786128107979665138611700621301721156285091412699976770861671274368371972029800306046236708064000978007113348776978321431660512972171032646830376541928598011869665572489772427333851060370360842729618787499013366666038857533783717781985780749246502942258234872100242680038757274196195188635848077906259824055964196671962865166822359321600805815250943988638071263284008608391052043178401147064392473206944712198120365024360754656901059684805435712535259805825034968240906711190123519501007134921913475686547547421303509961622836525098395835509938072128946155023915222125218982583337461457387515346613589488094530538321858946271691396797077259665990956559505628745358293077514788594184155456364488117990443037027947651392059228625084306003067641722428701470808013298342729335339397852518063966985027737193535806778320360470764218205770177056224816852620466830856267761267402909300482236888577682078194755442107414305739106485544797329943690326065972692778363051764648498144264210529393076917211769319295378714017360338154448763508808015594661968854699492723051546388870873781865921638486291917111388172137059492750703345294826120085391139804125997864200791628879005368398149798465439603136064822007922046805565684743297388270687114733998268342957762559735353127318680568932000838191738473469686249969961032942616605406640225113377794019031602951218469624950167919046693681436839094797436192644586053048060962558380483272820196716006753383113138848543638676339534962770146793808499367525210476885225437101634346822013239860507649046823875078075983270102354605893892795031077600348378122830770799314987202574942606270559974297177782451730934293495518547414730530977851143626707412527269063952091667537675104638804048041377130682460322894343114294310960463268953189453465245765725898513104843061268037323540170160736445822947525160761772042042113906281429418321323204422898500591237774291208013952302647871845377356901335236310583667697652432419590316481215567102280886134023629505164878557387627463152261105550791176067728024064939634537998073084885101300523748059946021459794898372544168289884337502907770437633281838642305324343349036766496535860909703327290038792407014802955124549884546903873848830195105356993962838777210772735263789524274190465994948467667501273361233560865950820182628404378491979675739491596233120900626163812131063956479356346507721929593647816692223801138298495972941642143174562409182814492772685589923069972237408167275462116273167090237272887888101433221758160867206833173151963945408091400527000186588387024135967719047714202176813756643331837001417871772072236314755510114081246202625087292805348155251282750760638155357504482011855859788693288226918865770815979568620700400688433015668531161546871753643441070234779962479988147940932695376295088655116221832496398752474576038546318701302822056599817575555899387567109713742339577758048746101791539336454963511816334763567240901757681070035427639105509984727979987198700624707215641490436580318852931160880180640094808422063452455738098428105353926561943386290028420305963455078040055518186057463933075739109723425496131390845631333282805187137746250494861541783399372898030950563607919830508937808645015858165791622811525400306923553037355972550975938708547816717529915886679477687287011661892492329490172894320518465277377192315777931329515780088644896283352138265091401367227870350345359227053429503960400962030606930558501907219778386398730480694787612316624042549528912176011932831860961661226934026457324946582669151443194691841527044275697586911035192067411063589675666364302493091682277412189367717970872681052890101353056330377489895568711032472870308615350614693302006340107671882517753298897303902436018111637491701402657933524931732426975475829844074866604278586575181431927391496271732401837329231414852063255756799793515486781876182071182454840078840706941040284146726403089895883007858147846475551102166169024303021957411856516960934274531928261067997449477870536778767432180041342534536838563260782608384380522803499750914884028392646787224919735003401814796553589468117282347454882568905904819353561103678320602589742229767895685829728000327738027321085541450134406142559684837089957959114804648807855986689418556739896959106170325786008532599221734145897558200916401701620970291208184727165439684303148158631706970861116078154637544266819508506189587003900895356213861101737626081737556701893902161188565356726633556580616810916911651035575892077465223054717268096155541141441642906640594911638583686907033879400824691190011587037644602078966074514381093464178649513608316865742838527696273525686508636319626209649520795948234289177358088401443050025487974068551904668437952349628582169914566568093612093659522826022009925992094835915284322433147540430726845698603136857324095541969535761169353871277985455029499708191750725439349579334523998015733083594613293406976080961897799109006629962036342798243992708888348278472899131275443848348783505086906203723269855223890554547206338848333560132983015487314503376157543493028058375973111432280254552418373802327568922910280731713630567609532888932950390435642983915335304868594907478236705632718646420244265403452026198608831387631813861175799941872353213402327735757639013360196417117325225477072339196457260141535819403328873373689668485488669620721431997090245107300078140179434347122151993097862462958424700970485041934227994447300844613262896513212134521177106671267199743747708478074862753631547253400367663590511294329641752763997081748062043657860205091900321748751076447486489986625621514797073987951240127082441443656900551166319354029549741063857436479965328799128285817633549183383066925570207039540865219216903903006461777488043223082628020629746548233534785700760854204014687839257945254962723151097703763681307652562488380985490637785190143984649230718091976180493142090033327761566116530305996625540442449584276544500354216569137163858893399881281813462827859852380196933604525601747795268205562269399824670658373095871380488967717688651526966482173902465972129350792140730640091086371397285871405273376762832540654494027395597204561337849344873094645308178747047199994027981431513659609298319245187445679873496994992946585045295752304277195138773305078874100234096319439751173977426043246361590989682844392851301106282644332696836705003934580227494426863538554167369170720430163823441725268786653858851614341666134029319778019357795055293942139387055150231857433525911687202567451532034788085055305748497028910079435347064459273823644228131248912252276953579392087334219369793067603374676521759914948886186785991628452276679721199418669598675896574505249539550298871285599637202231963309312546363211598350525214601104537610700673228051202249662295575940960143700063952566935618103044174712058723753210424047913110009878972782512984360068271491734853986300793706040596327426067006743569356530237633708837804249441955446767668748519853889572828438770803952765923478352918900610873395239967110931768815728182604720988895103057944220746624901906363335123617420655711478440110416858275520980867484906344699138107683729408374613479900569720801964451283998763136415191279960588302076440701092694200539699059457918956627737782523796972064320565297040782190662112055985498930535356599164706975619445575718724973832887489895567371378112739595582645328850489343916235609660426237671535330069151375054694166876654363461891297150957713550239404311900887822411722633605211969848810589397890640791571983848811194772371084889013143893991322244660719881464510322543285707086843416222350883088745635981124543912351550065479998090905577823428963605822399652299167079204260836901440536854610458686728524062522806244286182793179222935596978408041305668091038396547022517978295766908370524024616743496236564283974374937554527353946428727681761804991973296638905899548935079600566489725969893031193865749238390059017230765256524577052551323914623101472590711406279475919050144855626997889171165836413260785085492897355185548654745930079416228759367353391623253546248014237369346810349504940298184596894049305904002370989077693177164656208284983115891177633510992411250635751587448403009632914552509793561035021437783734395146373394215961754209775004236738861425684000574934562729988691076791277456619364738407847017270002594516953164024344953489931492041862078824317567517958764616115697314733491215042675371995427514064205999402761494415986565190271710099770373509430723419459706441911794066315360269111006857053314239324453793444514806926979267138845533292276332320831492483104319123500858883649954521256416074466510889451092079618980124819618750878465681604402191718844567258391576453944633457406250711529255040746156855019353389014864615673752483477849078718977828299645548365830987880796116333751221466761499382981131159386274261391024782257322758537839676870975034167682338834974252295084793990852024142875442314064358515988551943768460515143686856318726571524402919055976742268593429481995340490611095217903763755342428213106892465374370380812133791440308369421541629804516836337197729404665276291170575197102443088976245931551554975204268116491483103914082029195027958483492911986784837621114133288017536163352597712259089041661208820693630581189965342293492833230775238581036246447955353967682200782323881920336827603763277124557365346930735886963811658373718363167231252480280183352193308118875397664239424255263038068851111338683136446611190233149905822419678890092867257670234638490429124384611588297369910895121392327065436428086295698810218610280249414975802131983820262378558375222984399501469259621154418004196213365457295220477385670630187968682975571659424885981300829424157175338315006235490441417112917160957957414682033945002007152349352687750616818711705781498039653530549012049633754589641852779021727944751849285169561161931712311254825512573212276339079978101152233750487713965841020453081039719073794014325213395829248355237476895798302252448287457348713326584831378904395975567160146342569248936564899033743182096069383635097572807308637355149341655401462699820214715916923431035162410452236362770155072868101833808982162997222552609345853566942940644764852649729300669268964316353373137412356250162470420887874171532223385285354548692535131499940494416436402062212688779097222347586628972130707396089555219164248294016366762810311027844613871533097400502711186349425535945065839924118916225605800057082381376706953027860718358372914756036868782985142147394192703474536441829419681202167552526295182549985299749047724274679116805374239661557919587465458851987741386777965413497255512969711804235772088223001994166471367752826135846994387003134989743427266559286402955712213946559382857250875855553489153053379193834741678642663787468955065057453304317934469877456144418577246101956242742020787826949679004767854821566436436254604788738607222708751267156813381535600557864622878770357917140911181419014983080702042258811023145811394078454402652191692444055120715106663947493632105325492585805131899808809132500271291064262056269805627247586109861040344287544369053955891065548912006753928035051275525481563781396860953801520602069394749150467219427155146105852489304587664993029293611365059729103082967095509929914415003166176397600877118325936251085520121998994918892102401236756039575110551466678563083616779309413119344492077193904615356952878365120167995467437183725174458286480186960411313093134618911669260309432819313400451454876073222073158420518375601790704492918133934670264222842219644496463151869048185660181961655733525120412052211513932111734118564355358324526557746238300727570900469984136938207621517636127948764360866616551843693013423722688993293628583582586223999176139443847034913372305250999148014734291699687465925708323598735063852509430336460301632712541771708172907103101533067159790714513517327574371982005216850583138778076722085615009701104007374188567143499147635087651736459531285534942523128848968421859522623492323108478016924688595268739356079624722331189923029295688078312057386555532648424868512075757618637611807160638753187794376094932678560321620049050364565353547350914760125385258756320679397690647245776551030636518422131912964272709049231950383134358327159799609127364640364480268809631572216912842880155421753872085891841332117258979960260163105884667480185656222508874829781427900250337082374800741405788285972814538756091437896307439078496556196907773154261499386415776701388294693100926647161051094762539438691696923210404900373176793125993606025948225236767653798342138786253022883145359893247050773634749291209970891578385057008641172846886573709102337928723199196910322516568597691244213719038515842589858007752232148080776673810389528021892015035978202975274562703188348207234910377090238928847656367407954560340535083780158179214696704676718401705415354055606533001334433024025911290262705691421378519781020973041482106845949816172318641723775201276319090373777641769384016501599115169888608990288968886338377225823765973066556608662662136859004525946343343825805595928221809719100994270618165722456548912505706555129434973820843948320275079421634078514357286824610510222805592658793467785792928212255242266083639726167984850968796832788351059289547144803902166714568760355185568460218260726163866519952607376483145903600327410259749768367243193514482594175313613807230537613125267004454644831636069615978166195535381970987104460497958336490033149209680751957572203470343439838540249609888613128965847288092765343256754411877832165796318487354257675384114664006159203381146812010416348510008992829017867726079143885744572265762074127663425638599012017961648315740051165212836961252440490363492483097286943083880897412448954869193263667184227710039574252825219884024480819515183011616765890794919523118339219885180021458959650774376545050471537554897222576135384230986724438898299868182196830511836555597628498731462553419442623816009918471116051149989484265192346540334230594430042909007010774326278439618201305126273927327483390033137952394157256399029846419696811173339259176417784861931649052761545446435746315744669560481807355459668346653071986123586036172551788797159162419468515911801835822604655988767783980262837871413083867621892053429452432004436155979890982598697300663824181817041799854282542573504704091049171256875263438578011713133383953542949230180141397595221735368649328799404783100708044862156710539599098379404299658442526063954344360727899311268718238109122520242451416140789989449405234373113016894672044109049582585670488345696105041220572800116202497735078428019616672467573360890030138428132393166838265676343415459161394395812125494786531877720461889660969522723354991847762578129994913640688599054585103559430523591737203890269102512265341675606753585808599409878115829837782609245486814572075515887104469162768886995537369827566233868976455356648998536588394637594536165823431583158123107454697277849716893168479710432646318433771930472517850159713286477134958308970774581426612231825817429559909856616271281590002952457712691440797479367978403624906675501904040292392907594027691613137363431290728916805974636254553173618721616598738755081570987408345869748265640765928354647318210378901546905627351841802768618204787659240025780818823217633664726507380004911008865173712448644732422704664330382774367723647786216746268085558846005984376612832322395165089560147589285086679909795188634204893752114610603840898286611895247900342636890137033313896060837626976597322743534984018931591437216904048213362853232328562882467010616136669699361604834622989983721918051090961819881030100896157276806143001631461127957232777454202882846599384383481211700019918037428808524102783695793204927237779475358138400156299063560041514154577315599689784785711171576723640022866197763402103032892374526542073639855934282805351943251490881258644742855709373945742518568590647293781416907342572576042400479588271853996165259022364499459346694222733930786460346897140277799189108003574154042999770885734230540925033621812288570412018383020893361628879120701837359056505134771473645036072932770556813946869563741672861941031878873931998015914866562049108963255675374129777166732930312676314962484139662756051426219866959545268413728140392284880609355949983808999649312049536043258016536266131908992226388865798110464939227888416691344180424196687756523775728657750573237544629243687490985369221057710400044810343695978791265869083336599190027742876855380787503017778813493949184982786262405531099965251020341569354963518014207831072990260232223527611240362581424009214176834195096334378409118303647923427515096502462800065054524172138628095067927492105557754446886583445003946672230011584510279807700464200995878628930216972600200536008328882310479623623019473779074766632698788254393296149465517197803897290930713922776046862456054771313879147652314173860746470069622092454690329207712494847531825396755822665322165444532974923697936459294601877278581339384144335095232322155244750609421307823596184573674715443455383431828033330947608612171926495407632549968940115146278587774506402039945801394783996890011828647508524105616013760354940296886852228856284631312939083996677087233631598056720727642159301205540782335541273112359366671608398590596821948220630094475261185794557058258050401530707241096527963562597666523207372691198667927941628763103937827683850033703984800474754448023215461933065380075059135903608353047981343534084005590196049596722561509753113624378938060534561226296748031446053298242498142075123425769857340787114549216490667041652815595036477260150992543215915758524425632113734851748574598524787051623899778331890507934799181884052854615363238723366544861468408364381005253891235559342260502216420281473201501769196836824453342044081709877759222474489093693192515491118493781925820397960849482957823774099746259019512830667501467794041191598547726881013207913133681672420075588165734312591039023314617442462234762903198770381823322317425695863594092890384693465127732563832533242577988155578876641363798359157320098499377538828020391618962639091375688259163649963572414213586811602312647746736717605102532784483382294965272166810260338447226886852168721629996837158853017099100106132690259802215196665567062752905481395125371564833618210141685385700645259673644940255610486490304075940410413324809847380473524848560725437100249807280142457739905141114465163061189558411156838060672173224702042385083990007506380972200086414808973766475974385809231937336917834797430423135973592424161562918476544491495190625969312431983984780527674541277016435429833637600037744473044415159744785903058787612571312051749182773127371335437312509328682239268695969610246793918818048462477256814593292567502273275430635971326527570118351862956415133526679606216055855022454865580806661899899545993026827753901480228610176357875768454988142408416021018496408204623702432837186881784367756446192055027486228381910420723090494843355224378558229608986826398045384310168763668215019699198558478784566174214351978773805034020739898565548155301684605420354750150132656509264308116633946488875981044487620425335511918584225958723065263700999559939944380364384950963346666016159896055964317670305764211538044376339547298091380359002960560774666006251251139440181419516719699989324570112765273253106970390176355242394151174682728886734655436082305852701454437579947292518973540459933522948408948725408138017737734162453779858272037511806863384661644378290950517093414707305303404377717620619500444938100506463761615616922903455904040365161205914455190212855476592757664169985228843005059081295044209456973728649533833038915514549474565051089529111323916188307251957690708002880716648395047300196887513489243165340640503614921127080558962265070258399823951384026985717144956840817909087907633344302248380492509911734138451574382676254109368590911970766900732249515497173420802266517288094861927508376504904358806048662142757678327428208784968213873921152152055879033245436339614383137024344263607797525211723757359006358430096340744753911173613151292992012854964335395038825663582359735448835829855008276912707888566859930916082554230212735076339014966377475333695755066186066232356381787510752195525428469713477312475580522523665529932146874117652271137792003035134427442844849760669329613666244086170778013397294135739345429727382089977699894970464707907142198182072676982121858458566043729270011701242793058493807264627224300607398090183720691428527311647102901742560225197009260643328775302857353893615257991549602433674540223716976793423498275361310693238591383293777042537979547579713119173563968014997504010474917707281870319462324335884859180785064051982738170465348845987517091746477957565102428515021036315331472443350899146217834001264653326971499263367610042481891111621504131208963515236451397919457239437471036189137716727155339271979044041289079830481049055738566427726197874027585582873044954849807694281097168578075814898209609428745918384850120945861476000151599207898518138955142576899991287064214993812111320417396182799279059718140990019696395592118131342289411451773516932145976438782781025595946550315830399443753460641019908053014257691801559360650918023235279763506739860306359701051726797755000788779771760890023595038964771833039060615680543976862728689897163271318838057927684265741652443469190522847841429305982206005189920920049095879413296090946033118718834572595712882568927806927931533389669867702900437375310836788545862378842582988358127387137061716917768720538240149651885435261765113335837979331314487805857174534341406412609537105512390269683578163417147534555561623139675982671489996644394228171805277524917885525944014096119461974756549508081373596931639094010983541301522852703823824749868960673646247981040119971216985696319988650638510209809768766188758478619218361952645971536387906614321546697425022852839647053496083216276984250648353267519652842903107355892953542435003816576214531392063354011015764477403624245480660654376388466142171051742015122610507889573870650897941129144601823966317346615681381931778418324516684819429551174362168761033693174877459767012889475118305788281582510222103376443385596054085126607677844839382346878600657944688906020133815441526571703004410424733410060008721505224628375289647418284699827138577418274175905373874013398932973734225754110302456011921077831592001829772225753319167732212172355602212354242043071741951533011023222791391060602895615739653189009850817734185709337654447374780884958885949469568706114161414546685707127064119585876505512731936816828698669804308982634574758697068742472350174134832954148675683927164079209112866189627472282455718048109416766540806656691463348278151355318919126247465618566815388671970904349327612972152917814990707431318912651826263976898030608644244558311726179571797965667006274126803491702707115891174739274283615692251898832919327081440360532005649510373744081723915154138853852287083733820160222849690497777196097393504072750279462417386792359972129914902031187043132259787858463344552664427601393821184921841817469600797969683590904278029483187841484466464868676465737193211790987250332173784131175543301015316276347786278321739479065535406448938038152270453441955392598611216537900892565842807011524922874989257126148191493285238277213586479749837797262582122397411606760397888306546213506543291698027279095511233740900306456036304451820421442337539300078061359007796394178687321214572863928563384878774841813903749088055382607286364948671634644784687486120229940214845433336677858621223798607257124624876808891943067340163914281295012153835407749884273297730074030090470944290708586677637956617841491609790117097629027009807895026727037410714730334143467721538162851314540529781172898780979810937306281717003379414605783133727037254741189541079656623290521254371835624431040573225030366445979910475390635416155903562274848736674521077401287098391483112121621230814866325831697707120403195567391712422341864129491647654523210223054141481116656727541842980821253795961688643394280717893048519736804653001480535894811718737703556106125783550783559067703030490756223545865582440623197076401974180681292746264061993498042174645631969795257847127942295345463713871007130479656573452997296151406710066837297961506826455820605153319187653288544693718919429282584204044946387753524869580011024891656249011531309947206945152472992486094724209687572586780943224570977202933030517207849841812557549911700007521376530570050570995293202269776065542164239411009996945647697246002884657809900665206492339595617404577113736258756424591108494290957450436093354388515463623433898998552330487157543804665840858701004100012241253606746534573817605866982475179256642520007487373134564652956155849301039430431884038742575914130147584866912681872544877321071830256910994069253538703758093070108570144937121344239469585091843745239454347686472712038599950161599287227591063095705476613585271563181390126132021843337365487812205556611037879041697425291605015845006139922687657491668957753690535495876056175524199658087137102684417711376749231646032279932280153279212524405728518066494885209124551710460139438143651533716750990435531621783296951626400918914896815438370628046610904375522926399293244963809567480364428369569234389734880024546172416952811685149534688038712517755715816556481273735178781129872613378203705702011195291057061366588113133607110946463292587785749210879378642395724962474293329386280043451622369057411624268875541374118616998369698825592015127691359558779702664871523556547849177390332800176324405098683906740815529339140244985537394824869965689670496323565339337067110710641698770378205443808088116339658193700451034687027813028064502743120229659285500081927168203068343835977602814344753615217605826079212306971698154702029104049674280754227909242321937161730530001012629571210497834784496762440601532829955019841129102899730815130616751459679098144844687684048856569911729282030213208420555212993340459870346399323051827011474431707626406511683884234036758774383850528805898733641801552398822795208357973835534164120743781367603935792479518238199842981969075733167925796250959283374419955296244116009305039025970012565364353218963700700521975714592308074196904649272493773766128370362682445697153415773313101230627413217394994876676316476736043537100336197487181709797784338123850002248362834199487239017301383065906061159984219577127308659569057442474721008528650085182613501802955305072498751561848026520821342969675504369720932457875746770560307985292680446143261693232098916520360143378151296561923337215922173187280794347316385828820938220820928458677145431422100331810480492843728719408402129642140581512401921579674965575022225263070126522485772639239339257382270138563657829996083825427958375971846708284883945002621837655861770094554650762605567320943933999097367450672271713838492073472500165166364133844705981243880499690535776656734512768003137493399741434968631904429547345253468753058481005338397318346405247640998811281862699976527489601882602787767937382001298535422976340275914789558111370239600635775337697278527813810651339845604745382538375654493047199526776375603942600334297635199391108483350356587374422257720095692696981031417339571451651718823927917862897324592519498272212605306950258877643365844483813375284253985787507475334348695317580442065956901845509038258744818871829584046364826751666483548991105528580047590169897581594999825834273826290037445599757764246778110112800045888943442865523590642906513474544157322593349570631081229519051542641411051726660368841554001856124563710749970417580422537978684716714982408997017609119119558738165582804401746799623817727434267719835557403005288746195410580554340670081651469716467342462407631783788427462057708246723052258832924005225317841418365012924650114032335493317642975353884802714297408814903299762780609757778003046437836985040874872561642283670937233803403648908501110115947539871456008729048367163812503350823209830622003036982473339100599382440808624814224867992910739137204733406363683625613519406441959021019728169296280171193625634825869194404698333699734778146704356849754539035502285299403173392772348887479952380699850046992399680955790679092829713305522206217914047183061581031943854631765462658765391937710093911450426112360879561252012809571343377212290534909841576967452732894469627023029899567937251162679399834148843547910442680743975375337655696549441237244401974181415928791172402190542776681483246522772778512030593479699038979691979786598500443883104148032701307052981235066091260635233058308652167638055549224948165954617655365608129429707130142380796223547531173903540734442276652222291064709717214892779168460375077618794055433825790003014199349900085979973990970372390525312421985596745211933140272274622089026219300657849813219296099834726640306781247563577607389419438058455618147748912969408380156691935999484695470587744357167751090095185377281811142331098559953003422918398934677602529544990857209419783241775803249765898910844354747771647020600762021464376367625937520157541760238175377026659791644178356350209235354307758659227660280825160906634290001726170821839953031397894752409212910723962463564905149112245994283392826451587795687025301497038843044115301371825772909238810861236522603991431981928825171278511435676245037542465742996606903769966338429728572141382548338991997604406620381157483972411577601695001242105316651069498319205659657859395445925194843782516193830291811666466963073728281928140161154482126459264068161957492041305597608439751820900515083189733787618792337422966159073829078583111622271873380548657758701111963737064494387836826443350114066561023434227771930445990954781707973267795714565642738217951526112460327461649025289789106979924049526338069889578047918248197922686720061341740678033626743346878631590611226670921142854781282015385024498848165936000380417140019110244508184974865810806642374641926776956430289341119309012608742461141126179676296607150674038076831058591525111990691988649960854121858960460338488155287768990468590142868858654388610764557356633833865917051099646279440423914731565918524427346242699985098119903297722539217709769521275936636695856513026457439459650160335118560615170140162665981978073431415323773449528967379028787872049883027521585320452395567426846740975036917149350951383830936710131168496311815717651591997348201150656277875366352764956692220173072273607372848660057493125541610717962712575340903173895616911233733985181202991072738812162014994227783691034101578587672673584396583447712793947905597269489482059363044346327081077220499556504203361857705142956098065595762668900287506748207143529579135544270708433137654353255055806012823174194900406179106817316160888413783192197092527247275047921265864932646933371269098698941772175558684487684482814649689721799770311363745215603839785028350425535251971511289589361494083183568102236683505799750293621515679967409889655171757916712073315526990957752580097959520768184958732016299583305328094798322686114983905175323583261547228082549607393610060353693407952066922996844299723065311628166516775080846084943784800197251507028409906365875440584210857883068140295505504649108763755646800814690999364788112298993086541988766315996837957206621807643658871268725669201623114876783611479902966976444223036087705830837287476152028574824595794585445655763960792582718012540898269775854807874400614013798775846261218339360665747749353672172272117732416861478690157814303277353513844460517505775560766592079812610202387299514651352796468546490611863426356929390245565339989004623335252961107149030102123525159476642312627006945733398991103813662715475156810411142851168040103838091462864031546243928707375656911185682240843266529160101792934646617081946410663717242002447187202828296504307254315488797222866237699501712760268913134049906283078195747235854920563142954360730438399259680971884483978348221385015791705911337652075312619802009385499314693609505508788150529848530091903891589321496926362804253278770672060733312207153750746331019825317643109562507591867963486221372868641380068013213750296971773586007218849080890352363219696744198235561404141304099238236970494799234289119267233922202301060220145505754980502760072587376465666961888203585463555036585143677328675375655189590789735652916809087274427893688911776799808284625682149801483224243457084410246294146328154335164999625164828051988724848297749322163147865107264993402433951101391042956854294023902659800516161263181736762659748176157054243243390376323500582543130925509935177395919485508143955855802056660827199137430403366020834596744810963462783872826372840237186358351773002208312225059463405639572071228688821091699032220201999500768207008720775138172232313972418510426805242128457422155427862648159069389495867817381702748340203333578824865191834609645023595472197491859214146890296089968253582853456059964629249835809602652896818589133254432418889916431033992366427832559173385213886742863760935915184297310409712675940709021707896346617013720642712400646417206270273801111274822343129583266653126811884260290094854900635515293795006831818369780084898323746721465958174835072813634188258609978561598179671455699587842144868045497122389302597084192521044685455305156356726620851857232923681701097333822538908564308209114327867022145255571203365771455824515836380743710156295700491775006107820604326335170509413565338961986137320485765972940446019109082540939446971233059857915087267823742244947334533267167139141817254043185232000645181611097477266276743774505654457926351852320337041014094201653346304728300193617326544708599752226811590088796603486887674197637876604456032995200370507946771788513833388138349168005523325558188860500222714163594226161001955500122487865589565060599937837044905282326881629030433572969212732816067537171875203135104763228045007153717253913355667469971820144041251135348090660932806809327822459630754679469320453735832328916310166973043212568526416691083207609431846840703786512267074370142629590485317459084076908266512635837150323312963696156738089307398503488744448308680824396656415021420992712300321394601755112997698135835745248726639024116021070678899824637116360556947666404858676474611748742955283900617421795318275019029111361630809349891313800021674479984345607270546530816642924493657395246290379742628201767283965244061829761753577163318650005877211259201215192862457853846793406574053043830362851691316882795491362956267731239441978347089973313419362518735091376831320842796608088214191017919060848076116243881902269100312380642436639566270143321763102483526107001251190947812014528329629233676017933239009551331204775927061272787917172728051939433951840332872651967832153540325908623370548151007593383453549468816380562060259483927212411449510847034503593425075975125812773316421552978021896447325867930702191884519899327137912853406694632453467993572415947974873949427604154537215869817035915353412883439785519571880289648996322198956969813470080532083174818554394713808794285635640428398583626798574416493210791917451128082484281923122476215597627902455268934874561600418339369091955573712510862569628763456697230871693196999593797063310305045255139799186057965031967486699926807097328784814537303509678035277918295916221029134858043269259562876022696931398709523993161379874515104530674850307465047890755159217640807973812186610315842600678028505116617658199622093756322967779779145719399752856997609725284021386225326498398440114279164023334676022078025543002247220465215880858423548787775134047051715904994272504082693041874743314345857007616871507667756256609595825408478448314799122812089032918319701049769757283121323766719401497971932279978570212289727336478444219768842128374300748817668119209219642116793961758732666466556806550606435107007829873236027623043187186407971771511821265089304298099594511059711895694642159615269262687914309745166993219674735055590331077088815859067805641306185405493349553694609457755445653301905378116088089030533285342545417929233840311898601422190574310184180432888709871920182167417145055464795503324600015309548528424371631137098982269716040606105272443204080605072156521266801000449170711926109958258191135446385705498646892668972862469984591323969920883420215374703108454795516941058027668944120848546635849801125057357734166107958208190806187641050423657823612946791547373842097839617389823780345545492127097838577051262900421458152483103213800743840463889040896303212797587517402761736022506898017225166174099107719162460050211564097029241682571025852890391750396347127026949566189599656169068960432529761589254867923445966977138618760809745016470136240484978737354765227876450932690780934182229355022493073465359355945592633118296710733772711486036233050041527124538404901642560562523575925288118879782290727033368768984636688405963047792606302840079406744518756880431001798046382501725746633625481308913811400841241424914235793061074025703528824192963039882456262688326056011110048271314921719366879007762276877600194355576106976112360934573391071958472876135722562686597139588543018052528405627593015933698093048593713223637323153170731570890100629805547718574390827563440225715509271219467067254077102156124725445041276385172903199582207467424184354760257456252117949293163147932640934754490207366765593115223079014150443105174980898834216966550245123840181537028152229035318897445531621333173602182718547920014992594612336898289999370417153448695075468568485506727077807687342386413955798473657827678518820719541524012965984827132376425049592511172599787895031416468853764922066898143145528376301854032823665183570927616615071513293017685459106067733940419368476985435710255667430633074357731894382802957891184247297583508347689021520691217025113838988338551729121683878903632958191746846189900965823768535990784885020956774732905588991495470810804237501809755983180780960297388240756312166326720944792384858151385634608557608984119763620142052403602763420723174849475750888436751849847206134586703680250868619033122908536676192802066251037230164700255648780488998102904808709804148612125240085214486899318306447446064986730387222006733278362219544886586446532690146733179454207290944927952039861404087228668404450690450101464594025754470663755081411729223555190746830533987562149578130608333870855392015657220885546372580379937627342022927124355589082397508561070402522053431941811094231873286598573087019732549438020570221973569479968491053523615458271381335964357885680043848431597522928413471028630749457430680900597802144491643850102160490005525342429381862168948576877864946832961952909030466907126142754486875310390798996876679725876864939002819675693270523663541215212299285544972067104816910567375019609793612679232823940972263666688993331380036312226081826746365323494096334212318603572738846969568820082038323199965535753870112834530919416651859314583534770940893777602608158857351124248666350832390251880275438918895700193928162366160850986588952840207084272656130326522015156318592864864804195482259375221819912659542518287117756724766332970368589602646169596008422812876354671769775063751844668429367895501716324694129664769161371752860494387985120643130666066237965407941855391692431433658827664520890956768667291023055087073964704887431527942094290399092822842941760906308385774279506208923094733181839346875858580323794211331544731575288769650836199938424147150950102485501632631698673896593581607214985114217765477094962431642713766048404854617484394790728571641350528117535803575606168901995442692550880052015416196682422287916255685679350741167047372978155844674988982311174150466619600913107053440718076129124116447348053109232843521673247373435465616780576206857736021998821495238841912310087522374184622220122819555035696030911761296458302760105379617033019217203077051219573042429241920962551069647157785032705607144248443250135240253218775161384304587541063507884242719255690844522535887732326502825251322214564677180591114955829608483964659277519193359540284061690679073561829316474038898589799504668738254899151552363173999432350464067393760968775340759168191637708919606673678716727127500759476668388552783049711518563309431831122915202600472675431204923976990783268049200202408051533095489614039285171116675843785894584851127280477686430578800762720602525961625058514734848049411490603202338971206703137765972185642713312175084875615778667098555379571764488028993792716991996354323371860839348214922281780766708104763107688060942599094747259442905382267432906479258965295714511417593283543046259036648705508499312039586181621386068119113690681496547395506555386942079216940455778426203663908889282578845844319359328666008063327199861581624815072873795567936480727720373771316242776460349828838172083276487312743137294261936322300006237722131133198533628205086492591923679700211895186125777991096758320191044456502310973835068459496322135616140478829262611913455890655530735850433449401968653665822942066480791216539173791209313589155381009249636701391800099450157445375310491792772767365704853090158116273233235087289457033252773581652586634446489204232860885622605961146453253804537077146289522677760028792209249888962938780795235469050427998462124189509068663328916892604856914749207082443324003351456174672744566629980423214628079127268573045309533121543806589622959911036957334101219464417703580500978770355761092717902731766605793258693999847093172156727474470906901409800022381008102887491288055957150756698835523304104548060099937863664883613664074621647122922344057068071841699287998130901342008322252998735145307955552861050797501783080830600161801178280566203771206778611074371965315617118990613688439039507165015290923777505455201348469648371636784993978201033535788586018711863879521418817620939224166611199277138503995823732171210710676041904069055142536610865242898096502889917643223864693677898292672577800349529664319969287793024931657880865517478028132234582084530644521244383235020935760562053956259194942050418023209052649169719120489605277580637524683325017783194161766382120823578626942241624094547169264087904388171233015356669137086783086722351619264975218770509787914088054320438304654691954366124990651297275194923638342531154146502813312616060001557039490056105914985361480580904181744715401128728873710317499984600800890032167948963450475351949731607446958843382660128990836116266783631505972049852264086201362924769106281353307678115007542473597820852555645982229783187730017543555289793938479405244007723924073055962555528484986767170905954060340026985440056398813113135885079555602978338587434492385709879048853927135812572133850341014238366746411758753183236189911559965734397388307769309567868715179446309006935799888589427778149394443258690213597702314146093300411042719441805095121259235845319906960482038312883524153135740512128747112892861726657281348470043548507145472889591608641119637715626403248223890073060983961142343218886642932303265577467669105131836488295341520653503237308098687122087980926700179548312386071553041621113119496542858632183701410573485073057501474780835360659879380488201792936243755112467333732729344525482563778794306703161608609602423985506299620729574713698023016206268138996737479845217292952919166560104122766523501317761638727458929708463457568311686658166548521656062199821542530017413447656565419681551595682799099503573144518429197150054929497161935537358444653952633576979665322983701432700780618966209312210490555209050013982389077133150079390861550363402451470116905967995114384102503163163376642094337420489809364883958674778684078091602386370039166945514457007617192255279602032776363925908496672699671845842622916214598148513710908166752417790579649729517249866119492434890206214899654120359690092368024351400650489722230594433871627087140472433278602931284418139445387050740859088848359203178054846733724110936750125121259809964185123450849903415729068455609733799280279683990705263113444047803061476375968913037315410733754524426034147349458804861399392465397837875830109951576831607772042941454426170631534685061706602114794466283426479613614683956903606736239972916958255439534018919159131193836464923242568832292412418573094118950900897558956160957993570997539512773758925545660457646034141923819370903935891570067966493775711936497400558383370426518255325110874868112949757913941655415403062715102440307764046303922675504167425617520218293088148412954365829158511555816783949754585802589206697870569582161962510915330390704303742594177879890128504643948687414029540868500789783714446299369554043111242368211600384596657561930718299488971901083657781357236596581393815115072758054461790186731647214701319534478917702643784884732323172511589874771372006258059304476753211463914944956466815040448361997015389640682664985101341140195622476451595799958393016008144429943468331997682884959175636266506031389286772890347487937345632707778049326857953679283627001714548888273655531834203859048049342109401927361989396617742259733820789084793558434272515252132931487955552553631007221889960922514217490924775933073983641535033238757043281481028244158404720417297185480959754828944077977868209212552923767479858393889454270680550227396351180445251887927771045436189855686256347832770781203125727962911841212706948827262271129792144093085140380325218253310409270259361120771040182673080237753798181667900729569537258737002983627659754532539778487603530971281320188002235569811737263905562308219603072636907795464898818616298779107704911578387940113460378025488988836472950120046075580414513309065228729471390328527531873618732610206321693621142070829569279826106199162153209982924010538959441125734195917286449414085419468438215275684090634805646744084565915865072337444656446963212687792819930109291383980040592979153249234085974377968363332562433190674549996974698507409437292088319181539189273131168537827471135686636451301096423667637224355347979466336840248940300948036633376706446378930304733230156294132103620824609295043885559489455173779377992880243312641300475965205409603755434373493097686730281009141161128583111478298141359365981154949325943619643619963380064162159557114887131440718008011398576799907352091970644738405307849060504268051977913504667132035485391090992717234151900712739012389049729796346242444289592537639381517904981156150402135899553408987579628028443734818464994861236064622144363739316330007819517791662545156489650799140966468639038935618597558326064515725494720461156427938770098530788803118774623271659266607963146720623637695473545789673481164728046107604737140433905935961150832350237498132968905666202023531707126057138721494944749800908325927987704082567847918445620213143272119667710025912545508768759034105295462652794879572838955479413459531488373573282835563012880325542426519188826405017806796978982300586781133783819948566522919953105810987214240543351700112253154140000235172777487237160297535260126252763655211715848714691991935607447612662708514681060377730473765735744128953718059846901501802780627588361431387048567571874977312485435167653201423561198940735145484325036489325504724975342385481045433981504554617285472774761244620900946776994915220871851262283964043785559430019465821293126194541810375871728922403910590026874845247609521144436996249100284939953957534829207219642906952578729572150832669023321903367455011192580402612584922038738961437623218601850769893077671348116989432425830374027557863491622276489062917496642404257636212360918014183635278310529116404073601592965914806437604772543806327749113380040345679659024094306906159433235501085894818440082564724755016724263146184720954904370329572760441884585212994553730483019024471880518733228154542741157574940910975231769565955864630287677075734376247049179980498116581300910390073070209969357985681384347159998353429094817832532190401235098729448016913998752889082614673539723932962911911512118184190588918014998196540465510794362920839136215623383755871743060005574262770288096779845862892895093665738855373686072335880593313994569946618982566966894109421755473735063417851222794715674452293343120006719493298083779941368198853301884685996587892306233306272555826083204717106463843256132974264033457855949197470990090256054281479864201315909240260985797837631109881618218974842814783850538676116254460796236467083688934104291029008963642783732288468931617464653697200739901212291049337224796960939663054215143522176949608412410527500480303352451565579301665662804961661536388479821988482333764348800998612359655577630771968393543668045398354773795361517722174945813588094022654307398875090700960784264824710009308511114128560031914313988209056584372391508318035087205853697196859730119398882496898803483907769763263901699775931303710552897961916433495827158479412579249179418355897702089372822998735458204069093892389637743067318865692730688551865509149895859879751308493946180531317537895908166432933731750429059851045976028978133367227904291495191995004776361103778179208351520381808573062425928480015038438695986328699827916358162737261913281597671648542336767681428767358808874968554380813188321511547387826616821503758114379547453754658857432661910353283110070741376917510232492508728522934228140141069406540658519322728527776699834291138459354211171864276695332264991285322497198073114007662839138489855106576376553794301331987533356078600127658320302284606706944003788816890920462839958666395510274195130280495294003109702703331758914562441568896238114315344083601201054956657341656869192531639192710760713943147041704139628080900234757216650519856711796942402248037982631096251693031414344321148555486149508219136659413062363168958550452615621865883122057062455117420104178904802090707217930549079741336891213801271187589548577747577587334133058774970947418230719285020446074101981248247599850496057336497941397212848588914160813589586384842664277786720235825798038409231544860676902791014774986993566822213218362638513904446080764924124267117110669740252717578324636237319984101380867833907782844892062507916580048282626918121718454210543106193188770481855940929368108302729976231641542990246017366253043492432768430904088317886207187599280562423016779395908613197331240003641551036737152038819131999983059881268036966231781140812202858425889059742151718295032607722889242940012514763048657796212631494786118985140886441537605481351402600537857427020783383075975343359485757877219656631577288473303404666239975017141538248512526564104092272511575061257113292662039643761794502313028035117869701398335793908326163435907993985824574634555492112538403717161168168945762344636514189903805880267334167332224577861109758644586093737190944710308510486467342328988768894378949098105021658469317105880382328769215962134673473130503362670923597133100978590342389048190209946228188218415717463239264688729863417129898695884832999683288193266368788497155007008040867461718590209090815988623297015120539385657603028551873873879835143410934630059344418197016775661315082405652866509000108085892862495266603349440622939459006349952386588850202182306616490330470477011325307304506805769526258995995509164387858426077342535517894032792760480245401665874425676316015700224437535640271170606761862959488575921676998092896008869111744677394157817157193563675009278026503175516505969333794859443046339963695372047197109195009546464063830632979085071778587821510199750319755315728156419448729643958074658780064717210330821087212083089170514450025595332505601548802724352085432502546171143829895096889373467748273960815418628110110133379154000392045161418115704171726574344389539046594773110659950247518371127826621219104269772240814422348250550201438719702326055239489188485223477037330682984505937927032690975107585708230747434017456445454824905951673881959033231704164959514304580112381913857118088086391126953534548232430426887773554353064479172859727949474582492199368622852375883466120328083787746406015795990403658162265564857610099888867362553403501195824144201113113117679968846559047955625270961743208887147111686280096165360552510557430679618473625442615825696039179550329518526970393990308833967699425066759881195341580858918793369236563219135506424087038370302729972195608034216227877293462824855726615982276026885176409178961934367024649676523115558891695106042711170748728845206401821041499839768466187880151099486437805288348347202283789915820498771752996668674857964670631459132022254760116566496681281975067641514203599659788164508597802294323158902098871700640769476676127934858105970709192317548543419866231079735781611586530542290527902083445094479780492870635151530165054255072387139977071721865399487616245569951788420675452431832294207155349834421191761169738527856108728820998805656978932982160622591098226229825693282140331953797087043577873368857592775251279402933668409828998602623254114681559508035829705688619281594384640015978531001625812706206510160405087991566073989149530476986790506101373991160431600270897826088094902287447826927428590292452658645087892843470410179459418284252370292461956801912013379037100610757562966983063408154033518529069386251147567713991325825519702027339392031166476418504136875016380774208986576612610881791808010243888079823798841520879815803403940223124450368746364029903211871659324193722558700738168014879388538591463070154632644931040555778262220202451461169954174667054074172958428166524098368835170772550502635272902564651492681302951998322955496177082148591148196268108341145560630046799340785301609521364172686647224775989536564228176955964142157489834981737909460695509775085916891632380650634118443356812904291344421279495375763614527787613773007750269558312385494878385145516143341849345678415088809303275838556266946527863738422291133525802925501306165516931890895714496610078714395576423513116507972774650960635643982766014758726452404320462915326867332994749827255379740993973283269866279719957723576153427528394790958598017250914418892979393267752947741627546152842690904870086736382735864526931449456168503421852498976537758891832884211418192567322933089281225817115659295108751959611796324949010937268143890846141626915261753016458537294561249879865473122453499652190952399774819775795535393329236847724816371285920272596330310251538073425941066112867977951187050329895801444433622269108653896002299718869412758815544411117096295541885670465035037299022538145647404299750815215407006110925375410763835520179695995791602465606372160905669598892546560878020096454909790565546264515547532257303758769280175590771394301087110481366343519550406478063650108024416826679309928008837893407215577799945302751565516328495688718266720807860289482364375515772913628986454517534890937066597749806500249500484047882491832487361780493442158325360595118847382453940562484280999638140956307184252549623567871878851159507609243401381288418634598107732762298790541690320301570492779475243403757868365333359053890157548775389594598921153540083325483673061020454837059948590621823923911013672871023171527212989279702853178804422100688502315116963954836424028098456368557022848256878320133562388491730014104039439984917353881108530522796319085809985616599966284407278625663045295579162273985873766307276123431554019592281582776398099072580280899237064806485456818379295782071096367565087655885855652494970946228009733066344685128034597633123911766671810567523945710076765411737401172378751925485261034122051143017765168077375505916078600516404545394059003633627719291583047888549989334517863669117697651538354135418668298312436989536694562689450516442322219977806392644153897033663051021559059118931816941964030452154774570740444371389391798350640611290705821926692860332135955423026532200407803058402848005889616909748473906780560777429104987560457311862999318292624868913309771703094814704023829956799557265197053747922905254950344673691875818266305788084844878862555412400927543596887474437962251489448624390754119201001562129408774435968954220731164346844662956530151563191594965684285007888222819977593681944712763934076363761716831286122695856863121308150033239241304662002953425498983686783281154335730548616868842350883673818433241817341434389918910667312891776558066811097626466693676256781900107365198145174379871212003294494062224699402045707009574900835941374817229047211637928263538988080531743627419425356696774403780181192715628265245163920142020166978873551261109012024271266211999291032271119760605915357201059106015181220961200047181902924159590925047956245167345571350813088101312973259542897157288612670372200829109403071316437236590807204572588239852486085280540595971448087686523585632061636396180025828638023215210920971367400196346617567094034517303740182531914595867888295148085788378988009290822420828967359992361260601943088566874480122345675037212300993515486919905116231506105398489040828753125139046167939571832033610227405244101720872212278549595742991667671588977797391645144552363684128111339045434586082297995716404307842074152714172487359985963381822853695557124475714076331323103651886478937684302477664061174371642542563419692700628668620185292509691970571952139463455360187901319982921262217908454377407291467475900485920499454825816088176928207208483995079123935245049670572839263679314789297749356785765071928019030936143254758890242988152025903477467209367268332715552438642666255252427291991425526461057793219476659366000594696584047369883753472838306618401064019618233502361907918645152826904180633005510860825442085224635756332033029272205218208934783728775277428191892943877814643292463466894749772369210376437664651154147089618355829378304891229342040849591623681865790536796884503645385891592064186393935483286103585549305483869789864364590929102439929634248559103387570589892724056861793875233613373319041330377129636267085242774994784907773467912353276434759499225572980350749519549039271864855936819277434140071564094638605142043893783150538114176198776973617067624510469348412773086875349442919381997914317004918058330246407586090217676681054661361037450122764512352814611553108818789508509469215210863202460675734589979592286941202739222942854584761696073627567624516770129706052001067882975915591795340667347074023046676617043967903751115596529303296539878404504108845923422317970163086993976454284386204078291825820133503622740252992248614273029815259096183590074203043173567901444409362368691256536564629470836890374330834472317515695027182121926732812475129335385003360540110411876934481877665225239675745841552825623478797685333412142994268715062230012046335736525039448416546552253680471920059057381854440576928760147251971279890046353535957350737860211539205647837253159410500683136393742030794375746915908287680516699744017802265693869647852830822804232879662925682670557792758207298099397158023782355619590216141877136895974041142547653250576676890685203186845813808785704016041109416652312234614076033676697722897062529922351708424201740164381003188815702215373892259202786612931822046225263332748710370657639331351225757198417929915692094388772197496670441427735833767739460949823445929732661590313243732672526861510666883250332156198438864751460390760862921746189296221254799364665271910729184827329949123522663193078592288123371452356888145410093977329280812792310811349300909064889645525795405453004239622180407101507186606016743018160864947664303624553425294342225282773575235821213305549378139872781580187737600650966276682941145977470495972474331621222012630215103746261872489308910529640944692800686350716836193008419003999514147743595171418234170450340159029108150355833634431908558843425920622513311592322405681934582271178861023976528129493419104529223971224834900508847985787672809028745758791557316850551444058059776129149948375895271439982192946732001668401125816662768420889042046837907767938684037367604408939283985369545372894187179608600416528267926667736516530180737684808460630710392275076484341628942555529581820908706118566198163032705166226279069028464840407022532069456178407821975158740741838049788260546728402940304426537943998930722009953883183348366251869075963072962902970787489366132973565936243144510170250151541449029013876114060873727921381030849541037528524912371824200372819818059285864110073849826500416304026265333494148350386812866991690672921863081660912285181763045355275769771322835751526785732156450884455825662783287820856677745712770176615501061361391896561932426390120023612818595351483672834604884445552788834223583449093041084391825254416232270339260433229251065622373632178489158874675744951155931478155035218928046274297441755830446564596017849465486699603787766735439298184765491153114776430126044114305421409866116800088654013623468128330459613170788942123106547953056551400722723692758918020087632452206894070270558997767079187277463436920179774431284895180968411679975242633544158088248558868908149685482061084568630949299995490375687035588845264690702733119358809426005956575391523843247058827563112144354991444184845940859391623949386541311865274539925677945231325084617886168509462668374346458045751062022621603953013289609913174840347793437710241473156449160764075988647780710901629245321935817802262168470367913978567536876818004411032695839722038540234920293985162527033693938917904883403529225322128692113007929674464260065547749052583371169857440921874106254963195266634766217351252288956324644929162576906044208884514030732983271751278590195980448307912105833065873057990177973090934640742988156848217234927628221684229325833633183981892836328649021234121948833852908661669944130588386322893595057384923681688532954404060940751737505729739068573322615232068410668402162585999892619505349727593834521710084807659219915581407897469737325025128436065756273769887414146820457111871898161992267580756298709545049315769912402855461234661299841726713851205755409671691783347117538552766987376827253248005660285194320181124685176148946684492734433486976777412520656319438399637383028862379344016546915005756910778121808843567204835606794299432498482052596431150238666907408747951806780043594140172948626079264954740036681108818968839488798054321531286407269602523879221128345291491451379084405529770024254662161646870212694957882076364420563842188630424052998779262263849801530671240354255592959056819560842777971293331990767534639119337651318120225941667874692073525446978404828346974291186953171593916860416981552017329396177730459481735242043276049943203463843836538061147107978056875394225069767540597969893598787336716590917977891233881351303997769558232177418602896173994154542502014587469459594341889428152657712246864507080234539267817080742723312773556959047366083225321530351849367948372541765335962768859566894573131997653152819272542779488470818253819514394371088424509981022362108341445318787430317685083521802338775444611415836362629234436293333405916361033908112568616271516829063109331094096671015360200233501425060657038971347153018644489471320761275582428501934695787886484781617405030030759661310032051363672436278770147951505664655419552570170974282614324824881624093982274363417678112290184269070236465072936702948584545647795848528043655016292224956593021718318080975864452017394678389963401421735885906363843149538950551119094986361483574122203653330707014386765789008439060146107714182620929605092472092811145230359964892396416479905895551409531090275459544227878561111907152623682545807243640754668449080267546204889475231952183301464218317007307471881970567010425130746863961254209467389661978015505986211825787053498560219245785535845949851725618239568538218282443220802565363311837488248755354627194279348104486418264422221541147037001694222991971870460883701911215914868882605017067071921922027162559217640426198521718914491168671215697481805727734868441643114938603490707505471137212880741454663662108156341955671014081982549956170759694285379145097902524931067673128280115878813514448408951579948970304602134525237053284034452852754355381452755554617861554759136093028068698177187207924501779221388905789892719303394194645737276771326822740255267487076989069946295036929314368770219543486872675974050950955662395175948420362976972986694307432839912251796448595375230796479554799017724016552010862703310035552259425528827670298393198729627504356615138380699840893595168256308573230588962015461506851427734868443747118499881434796960313697110340893397658982202563513238568809329336698176242341597711973436087805910582456039214857886374659730684641970049695719723348130035323268708654557753652415956443526492495210558683899593041531175762918281641781945970799717473501336749038937296974354664175210012734356783972179925936988674623191505500383125623501034635000443714932348884063486698959429961973022431107643848363815042459808259023192032968768410008548933083545442581378567699328736429897009425669142997766763059865982992304315035334002234461427040024658476652989187129662774977187886074625030901227704252656765730088266964466266383461856181461046530079011549772879272994575949982800324966533148232883349556706286406287201864245263325763444698958487934794893995883109525614384923250304974241557415074262316663761683325394916839161441153793969044299405785612665221444002174954703244317445654054509657587304862262911059734459392265467063053180449443346022906233371775158429179338220407591342229400071571418493718510672163722962126865025342901057082532635951576902243182986339341025655849502912686468552922329745199542184146636713300505092733423427920611568819143230740873199928597538572478880986489936139272030499194714740571527710887641494360499696113156026379746147110797443487518093678385339161105132060392089082930975281041614536706106618625642505546866424571079714775137021998360646727809629477103397821201923428891880097777229168727426198816009494242385368374091069963915478695243876991550012588514833210438898530420132365173547796643307773648878805532179491772552611873780098007700562366815771971702077440979895645649481204272952607810864118109909498402713335357801758557772063013875187086705053269371604205169328627882167219235517721864922045286037559255921842053023823294392823805575918613527687618717687407883179020115672185109990975587110190163437120725656027423958880178550778630282116747196258709068263775723953302853300960130542529539757480710800883654506640997074652152195059889190750032261956522287424015072639625873072339229678154718664232464436980620937082343700007025901799677142767104925563479182702013004519749545659614736396375902021549494426959475656441888811461183525903908325405248679023842380280385473794879376453523855090486776750616457681699295381419871107203107824352682961093085318835209429067608000960373758806605684690535956753033358101229282965143417028727361542474992632913937386023896449283584546049158709597610111184178709234532388955572563917569279711044057428061458496429314775930095207100305865341220273307684990388322382207751173420982125816399061815696093763086691681330513754828504250689088154129515235287265420139517455138757148665432814384333844882074276815220283598795354671072397925715902519654521427737805211462188844824608238112536919238094476023700510926935896332235297815749328251503883240099226655326385454215735511405938751858551326766393540348288787892689658559515769216172968606580885882798606434347634134764573816988036951419883470126373512917714046436655759698989692283528082634032067566479530079214063658078325052142093439600411477619151258106172777483225752725163687876702820820616621597754338485595546219437882891866565380747128977124795829296053309882077324367047331860635110026106458298145382696962810613482143689144990205838517717767810484913604983062741591075416507462469225394120095672551860088947404671780192962247183082834906612138302281938280925208856246878733041229003384905473175624041435659671207898672526282381225193368839456252381775990015517644366558875018929211284048219755675119358133206399451343701039278922999555677204197713601360772095359401296197507020863166523053834048725455891096927095416134082245156669322120448033823562579488748500809101317017914562820441500201357549699052096364811062433133898355278797407783415036018455551429494518863786776530997146391631692962816129925519079950371816340990932310190796016999583475788623623872065311050405562321111794541388837729748673221586492034259663315289869838939919976523023512314888239452381227936644944680059192437022637612486239751565782365825447178631074519512015384963612853281525319285807100599869517666974906930674876607879527470077446039239383022113688902516296195279065695680452609724055875948006471938548950956521036788077012752507312734937371132631408560654874919247397420515160368376804210878393131007698976187779743855474950371563776237422031707381023667067563831589129696269373930093242880434814126602129674827870462371195277346999404674790336935550128574773548377258264268137106052223491857300284090642737433818748950750828388465217326661311596359134219979165745001781545564869713563983427942652113499188863734976528429486889710275540473534975970733036186925167706232715164677087159006976640180783584224730170502522520328244853406879561411636192488356051725821880224200327106552304221679769297771465974842489780680593676879539649030306921404284941719161974219456754545334206658183422195387098462182033659693955239990817737711336701289441776786481553984712092770376433378975169042790739350011034250363480002013702561085987909933270220108707481718419032985866064840556416259114095831303192001743726774466388837446020560157153763656062175013886401667324072088565918924011853931205350097794746620840142153499270574543386990139951034812125922543843488967123528676057422715374356638592909945427155923319713107868360476021521405928256198005455098130976461096336199964887041906016359705037100011775424609834917188849066868902867788331100575514977483712475826249732490836803164079017865004259827118367715527293667576581479886809715886804344746248640044559280815884288377576093665112956849241173263741397509652619244023867805558420998073909917678932810239305192168976295794083944968470406764021144616974390654765964098599535290819003305416638688962815314685916626536801927426537727710917662196910926846531541589408295759029484188694579918889214075636263574618138317248703208096865985459170718774436326368255589849357611823147879043738139549537531797006607526517879974733665826447663743861452733571110925448993797337599567823055571585133277729393999318427349375254355008357164526346841930115125036058164846090545036948157612338360213159501016923955203926521121856697488546446254290701755707045245255233155227430052041599327261453252830183316954572308090758412430783189600135355428132549450606603427699375727103403226706866248121989840929054215274790564275434121832006674376228623663552399244149750901457442706515441270730220452611328441564940147273841859469252773566917714673665531783534305556272516489883943667485615331984419470622085583403047603229742578239610036115292578707422654846808558015692094754779014099378873458402234410185748836300894789718978598500446322511089700785250181407279880059445200641010128245502211923183180053829000663692135492424182143807918351046704581597263061362432964078925302406019575477937190523266370437561253916042559380350364718781619214113240973618359867524343417357627448746124515798069585496911451486987047152990148771059021259503723130015749658067818295809592566619255633426801774267600420870594364671654492504188438874611406503605306173833493461597821663849172094794923886233593811572990762402471069169663363356254614573795379726306445530808771568340906357503896939937944148832225396272381665139414998858132028612476913767527337757789119510509776555254608904281437648840151850818909951228530019884701001665086560728689223154947052569095142790869585083603098630725121984563826691708185607448742173167578367994057442768127207995919184900635789306533345518147944927671941095092052792028995722293076295730338847971972053550274999347605871153015893135570789996343275481642384156764154175895999303715539293128153131192029830666492447935200677079530417999286392295696639377514348910250843042352986056207930321688310544715472443500218323466261830467471412830857626403034258966961778323756287953010992695697093717345913688953592956086978296485871935955934107283272285385448683804174168708650310737444249123536619754120870892794404077697201268254362520965800625114062635595440016436855478589940734570595243759891392020924382407524762839791243306618894654682045149870842390062663643311398823299422867634819966875292682087146333947417338947730635138654482902307995013846976460129454520689411381701086172408394542615803750199090648359760561963731704226822416352569274810724720552593549943436751544762436858500442174457354058802944706481088177213042594970506170185953916680724112260265675113693471752499988912847823270466657631229317715446334715606946111933015042318619120987832928434879500152916026093587066449881985771917325753087562227097728497025901402362789586503990112268572744393398189908099252502849713690275916510857014450606815875161474811895292632608674562381220378452436012301904544099982672635787632684328160985925130487580854329784931190915747596537600347315138333538445108261819232987558126088754104311994268502877519798381476199278146272702543502019315731544551786862669239436890655174331160805603140555024531176411140514427164613438740140746552144493895128384635993737706415769910393745086869545155058945836081956060218579695999895662775450597397905435981716212932338441555058818142964829924171878777572830965821343305956012951062605913547428155721996559271072065476974008108009461843882729282540033703019586010372071451253938493671473311164165466995872389907475327045489685244117011023687325678999149612134215177397537199639133036863609758866240635034949343590745609573146606984281480443817147851418343228555974195587548151826772467392807999875340592287118129369783434511818468945184222536342565326088936094880593415655388036629167723329955984099548289756047337900129182786936506007157778499625188021663693087660867748907518199478826683019241827286621607765528510991104498698960447438507730645357935571736529676978964156791416167716852844295295783270301388888178501452278635469852377806857004090825227495860208338832805323058182797440208099771446693217206659693824345090772881077403635902983535594587265845401281259222441938111383108782809902400748075133928785243979425469208896372451061292932165079745773580910839710230560780614617813494010147379617849227416004933240576539547887729109336755062562764164784477019978035294577302206437273927711645532388130951231352735538381415576205464714915971529072936856486187735059099229191426902339460308757992360278631300800034227626505995057071870206977066573414812285724595097529075939340174931048112170723578319040054483574893095562429096354285130688128552352693414225727276591199605402338616921372109828886274434306506449414343684755807038449690837447188315689604748461632108791084972859009833921164246687473829860968562434421833918041638011509408887205953986670141530498692133865241092476133295001512029125589369564669300854564537366120948588901868700439873065655489343812118322395178456410761831227302841349530288279904878916462441135037507509642308298077369436762557483736263200677130756023819079824776144446083617471268401489856866791136629529274487109940986740924158323014943929526996339993279668631656147526876677218261034303464688247124277641501433595155647390463012366143990760723795062261328429770715113101210409466371287538612305970503832147811644109056947643901886509134093696316873670242525361146966950009637763684342432864743482185292006788561629430945847086727808837003304933236654104671465660465352552100763246871053858868443217896396320529625058748032237747661580498083546987096479666741998620808663710953884198024331130375741160306286461450025238708027329412550849093144847254446830037583175523448462786062246717506180929482612743166086648319228218762921351922221128992226780523201699661245593812716446950115356850959413498108671768726979826309029282051533191235046456723419634341610365387944245791768558750557572202414571329235547379084209997144544944476948242532287054502878581802285631618490456165562723526696589310980865957887333660040701195190909088673563283676366236034079014645922111029450473565051522478565534584444298217674604815459779063260884248618609684796824365046184039406514312342892304014320310661513205236724978719493893264437274107951537339128186121330269455184049838311326351912393988383869121539891637852164952132404284775643383395805630887356276394521661825602862435491274420148733669554188723342714019558272418582867683715414318639752148811413619999273945741501751365467163503705321315481501938700098577798120385404358067651371486798531503684855235275911234827018350539224101172032418810763948875826875776136508251032462938975591107025687500009886988364359445821994353632540024505581458959710315855087424805592110134743612177969170034728249997984434700069171981628545908257733258931956311872344938461286753973901925593796828042542726719318998579371121961729815962493689062211375718663708878125422822950983894235995498606224125821731679705464026299700995014352262975692334656967413058335674385761120611548005880949479841825161213550192638056268580995843201140856523079116121314483933219926968885570106736210793856437699100507860788467798399774676247970286653143834287956725823723394283119133116227545196087181598709309155740082209506757210137103430998256562374671930246204555436794447612466759237189039763364675555934551537785345184411853427814231396808161090376696545324567660338853429704340933128449837999731282291742120460437311036623899192053541321794995522191086673860752407666299972849444138261090289347678738675176267566941389812400273881312747203323074597399592785196204078239535557015067014180027840628560116166649667708792652848158328268811743571557745056859214038486096175320146792201084609350500561904121277975084054799704480925221229654588797175432951126351073132172360990364514469462553208707052053543096309225243860684736332214388950152000867402832820679100339477662316548473804604689565551736935866942743884067804949918132729386828465928036856714590950222341486621083675595268419601062831342106397820542758647964549557348788733973359642292880363664865838356660958340381651314005071503940776401014724708845558699098988152391018684549012505344807167006094758044744860925206471092679288736109443688718405782611094381455152241507618610686288479082609198942330308305459769780773229074231562568664565329220428484879138139950028192580845870150523356398595187188187245302555366895239000564926697866041708594568079287624928758560653430736374960739000438905526921119722235634634831596142114253177102397166728616751561643097750208073924973614274172852842792386613450058654185765821436618024093682363559615449520210700202582939240717297932596713269606342455989501931433413333249228974074017421334888489740332200922059088758090900661388664629768026942926974928738092033413598679676151421781080603699285282295198287762541116271295452865645222155293230490072017791028811452317670180388330535734129326758614790140956046900403014851334696218103977202108020655826427596161977684658153718186986918406412857399003603755447623992611819474314409320924761876757814868683806359501241232499933159859837312525056279051883979263592197505660901933605400473574558208787620455040549787497766355730550721001664866283051943417655034243949909579484506470779362524755171128158553777301585372507477644709570980834218547184453380632482401088570416190576273302763797900049587960555506247892440737761310930375025604286394417729124351348387778183592818199563434108316436451572985501572154766611107487269287464522304869669632847954627151251276283390243545725193859948743938914693129836057022943045120240192261542838227823142469235511700071105496859271592019092943212586997972858758824236783589919985301017093204574234576180299893777529984155879891856506546033492204557242175261216234503346433115206184672999013087989649163060373658129986429291780614367494363671182041728359424211425921479451734804328526066642173274007498617442350588688162786866110000722882684588022024292733307816384742094891241344765408810804287048541694645480294174724357628770486230092454024524621206380289690889331619976819914167345390420727944490338458316789445970701054110681883443686367982261737764582862489420484650874179604987371007645939323089063180616187778415240228135520782109081659133571121259417976978986789811360141270769701755425935510046661588285862488979570232924583273563532768116752159317884391271798775963990149165268225005417671851286525087559528909497018234846271806061210372483695017555554102002801424520821013692052873460824842785008314035679931751186046720308808138408361500510215696225323187219640082679313036594925331983810955894365140073478756282694410179079969199289471720691219172816199473019811151220665158413101597181461252734380303271131937826206465813234761160466002570637308492789471853174806159237472282557777600823261344207877324617295480067877080021257663405896743798101571459917164004524916789650468943464949910633242381611045882730901308970005227828606294267451158516972283483072917436644623763620099231041068832414560736968583901637236071229657848865613628873842890262741694867785807499424063868077744047751417816761642949552634696035038628097737163354643677061469787885301369001570935662659010599716295562183266623896922170723327775421061338381639677703736105809611208025305143421254884054790512204533430031634461025537110761013487222385291208302069066715406191379638003689989859689581449718952904499459376419599254574768048431901588639526953198201615130670434943039635322483277711536464871433638232013375319681535164413466823891251557217288299606766466113957646325706670665354892134032980473715004215111690051482486587287111813771903016519073592174953862815491301116430385653302688509777847164333750319376117051853141087261192434270659300874354016140012355101360204404261683679047721059900402702174231965390726968629119719823952779173832005087173512984444108606454921858291781949564823700184114321960544881835762119096464417371343068523249954556751114873685190094914374673749913409565446265399652753431138449266906148824500257081176633811682754570343561749700029231210254352731236489654829663689144049760462787776304951717891151091904848059425456703185416353508832473507025819078011551516408394461531758409468776785308562148050052480788210905495944475755466915473146189708806298906277140083454159084726162143493261458607926730955072655385658586881938783897077319505347686551594711386624760058218060957494188315687310764728842182489339750174021683574889008070806202167507246447397217571419877521428169619354442210639998994225901023201824903486310422551059129460715089318424135626569598304682589930307392896585086964967242857996014873856023929607314924602993929904390150471866336704624954004421253076810863281807193876659198199453694381947260298166316901985006796851239068600220145185827106747822804002349117825523830952327711815001495201188784895417582939010823300938552565619328306958647724042892093786508424315917330493215155909993274078946848785801607584425466296988892104378040228256854763805784603548358819319583376747964450426786729851851609079662654875577297427961151786120535092938667041398579554940090041342674036527702367130669703259212051064224683546787247123869132190162002140692772338258967750180974997117677252868463223152994238144489740467186311074769875963300807708490041038330084470029023363980350127712827515657580321015400875961695943244323138512980916298921814987580344088120497070535805603395182209692210636141568438053147918471161704312894915068736491202368310361866949632798728202982505771110878245710854592173424162516421808970184035286045634436367185684676233160593058688555523353067805431051064119306578252173749829387971465344560789855292880609233757741964351530809683789718067536288206117844680791966135854831205565944072198022093766923058380809552388305746582387116843997062865304776286654835730714685081343959001214716661044162240373963079957710087699295456617884600436547247813349966680061621462820113787047372568056838665595041608058452962340978212447127238760851651235702329650216718856259049495938047185294708714850552577488848416977258741162359589865842991148739027481032698341794533059875539674516610880749956900972426873547602097041203679991274160917233313506889718767572098963604753331097392992235539006927738301254001962637531627684584586635610067715202969759833267471729361601182828065361249688818859343200458034255804534262869042422324524050153496034592095486865775767815693751208985534984519008962219434672411624036839939281866927370285911067675124120042639814419251387446968067089221344533167538418229615880217764663353724229243232663796026023384438445030549397212799110994414612914491590569261623147201347085803125866179265217612551160821122099851021797115673317900359054581571065205310901122442904712273241160476205910212770694121815932778516686929972538998619177600938918634437868243962076591250733756828135761258542763339220348158439156673784223939605043662739037998095538762330531373752420117202665421683304280922610167420217612489362415290692308360919609097912214109992370591149652579703451871943578229749668898824899493247807574416054895349863821422657774385680473814429456110157180025019996129231229996000308994293509837974543858544722219936216719093644890101198218677521914950769863983261538123059187870673048556322457172613952955456413523214717223363248018655984316606508298804669782902320695465660709934496554020067200867327696624583602984383163027472848880323761376250605732652575197389276826610711661009033983577003688523016584995181055611950774564880613536342752844227574989784189701792697440001994813731071096475490345639053035502332874565465048078792792537282380653363568860209037638636433190758989216312232885842431333042424195256397997964569453439980238475177729498273975515600393865928226995172888188990522375104908735329334490986835620342907668759034524033382601651485794434732267267737065128230493628597990767688816377361916502156783492177042199485125338431583587138360874395935396338040487302774149578017202877564620933175006329432475880875989158056628963713038434154904858718307124579872456129586793965373843803706678425250570529814346815736551651053743719924481938105257888397636434368304008695355057711539451810333272662958073755200031816891567565637998153731630769641837845589264686295121252721906503713367284514794124592798976004289830261142301915525022443179368251956670421962648032313596002191439616020583881505072719176542965565189130053559338682088467903221759697109376379484785480232745791953398676031781197199768831260399154931411664412527710623087122605709527925113160454274312165904811988777882799002462939960829921119164509854801760773515175752177111762997288795522368964598663233237250532147418677478049478300653685593934670697984546349620013869219244750825001827352462891769546810951307158905702313369688837016871393797762962385149355245888934633692056133496348738599383488853536641517857885372543141171788561408181741472171871231768069993895812531163295339710732818977679413982587037364443959241873086562039450217895925475766262384184113938803094302099783461606462835686485768805244704742438890536047905364736815641595969887691734256643117505673928982582585075621413092000493914582396502103801737296376518535509631156589191718175404817919683798731087275273748056381896875310685280317270733651166703314845369422086795361758301445783439000828372499437399320875850558124343421744603800372943030908016917293289212027449888835401994725294681643784186169609182065577035428386326489729140024748493451204195040540587011183562727874425199296262000017257949196717193972146075782307109101995220708088780324781220254625578305112375128143977916041583616303972837303263876182242375095104697649452668269822977456850712832134094432320065861365695318744820941763934703037741066980378349988358165325212198165729423839288101419134764815008483829388069103000232576284842249352086063164005640358560316625871968009148582292986673260364421322636009028177642081713295917899508776016161972605680363187123036199988126885052119536987661462870565330361081897712510656462515482333006208000587334788828648066030251386419772601825482756383368757795629991232407363949220447080754166710458068936628324202221312215529950169773439750090679543755235496255352022719022775441567009776597808689189101474346090766120585782899811139412521259127482193479281175953099585626603071877726179470114777444778338658078212037395159220181980183761227243922610930486841796892122758167638584459709332625638087148817410917276551127307784676265189954248038041727986020495833089537053759952976394158198069713767191343278096831242440336004147382849023257551997675268111027103785299923645460639848987930580796875633053642166905724665211856162436180897155090872508070191515426084188415067119935649447225671340184261349016746239735011248694406512520462199252399368354330557015669354724206001776640438060254830351658380062648138965237247952011109357784679360733536178939062099192874576348109504737262509018052636319969155632781592275478957425670582940576560079153335061994630555887944062058543082804367391042128482313246109592652632501678212298657341565410199534376108481384826187123878971876547389842605924917203571987958722360205424041502249642046517151676600826949676460080109900672139227297824092875950289221812165177493518259151606361550489049724215946709198536233489277982059664460854434800271320920556979440268444513241793655406525170286639228120391357590166975031254293262319012554899814963505593086647159453768070190194356010051621024186025152883508795856725128352072857732452016857604709652357244598819793132585978225452275159310423059673742682174231731595336413965017496549078039918374951667253292031671717639684101961188576150301208677656337295087130164072646776965238389202025736329544868708805130986284213658336421096589708064945629420638438456220537747966954286874265690777772160445428165306127655924597155066351370391577975751620779149174497623826458427486052236779425499493415451071142990352976675067890499826204852629770232831255478034215545368025073615319780923429079102074920611459272178188404062969168830385566725983905565885723789904799893667965257991345591624221765155722058795240676793958217448088959915410480148406608671128963966162140256430782015214070948586008536351693580104680768151512801518396227450365857808949503895885721062004655137269910435531669705234852031361861827944711290657927297929153306011028935134137781912581352985985148255181893177508893501043802290273744484070304440378406045506359539929214838885012789175917566850222407302449993296780668481221617019990953953379085867117437071483271087731191431280268524904102718691925920362724664075389908105924473946340140379808446717914543715630185913958169531711507701090243154713357504178656000193656221774794735755881491061548635576604201602408467047891575759040258694792552041844688331022247975761463458574703974627504525357281354454392405055301370545574386316967937917278275931767946587704108086490325715095540364179525489380036900598020962773966267566138377175702642663797280475194014247004167524893833822120631537094932056065223287804838449000485103652935953147382969944858922848748520943054704526747384271584418197951292934893130404634824969813868534244962289789399554304408205835966656977318405408949682276070972199102279973561361115586104999727566845284522459611923262959541382689990761731932214097025127867364962736925235508263251315307394513373741455259280189273918566998203340075224051940925700266189248712074177877187981562039957522095053146747870706335954989293872942199665768444443037113963103789661939633840142947415118578794290034385164344806771254350981908105231219297072912411776948509592149815047815010453412653837245440101741082846718576004205691965629656421567855995897707739324472494313202967468062845482115737449686225779024807045545100674406320273493159153216180449830842098457334577397441964861590875016422158285415603333524015127242474319621191214405046412692790791188956302249418112963369551563345727508241350011171087586398752203172780916337162590965948051096319885751387516369161756707291905360565669429037215763511579559285369431925906379357351548898809006033622018102867559557728963908421591336432059428464423722122692388447917217444184353259547199688595789236177495428582866028293782694786072741791385132213516199786521526058030436189401765435964636050378677209685198041419068158196583741549916449576229173701422194753894281701326102821836149821265685599664957136762968795020797907136046557261373084355887270293536780728244926183322151788242157435401815753602867606571396976845850425087207186420778480683988301970854446686567385274982324542169181905263655841384625215455031933105224814664306824769620664567843872558248275388773991418724212734652047835531784246792718186821279259137033709521800502481830257352496015100991047270052285146529292078965483676917539937121389221924043774592578990308271418577712603358357918649838980068472966066488099257345267396605424429245717820985224603027314860576505576188904933528535182815916882806738469419091266310003537232065778308874992792734874163277488451542325915658943668682247486401054469986647023859702268088576119841539132472606162079380120294651222236445621107588950293651927512188742033462109804763829517957381513016542119817767489234868262577189944477498673204998989750141163519309349913846075511074728945964582525490781422043197267369600302765054391862414704844013536532598137884353834191669652923332415199831928807893631352916782421353256028318210521569948912932332297214400136061386445366267393172397534136081419086376652991377933937943378036197539222464066368589505302788747073925736253712683829134776829935701475802461042989205402414119964934232347058657033987633768133872424647239340815714883049498335612919223832814464553634221438608341203231727388022364801674645909942202324578589626494674410602236009532013142637446625488124043584269445667486360224024497977026169274116121970404910663714942785918340998124718165107087099377434361798535788342109129293899258423018156905386850014219485200463308311121227631410115218401868292843359250856791384038582149191970434544683049964148701807869925547822498066539885856445646795329603231481782494331725056347064957624280187633784784723279697067654933027968466896549012929177847963607939597893431418123764106414272628889743508298689902528707785966225351728755499132241191235147759389347729896446787970625606027484045037634161477303128349286011733460078958431169820595481480041996715848269463608951464784030723812398819272122670254319854897619933925535369957734310857419420341768535092090146507165656887048497110845807744700095563734347213964772093227303192333906958483458428712269468373689273639345928794920569432787904068517138517246472549061300676507648266806314035439241491911442690666528496830728075584285294452180994256809362758192432961581924100625591810148804882293452597593137556272181297156212087881575268695767803625959786924245946763148565274658714896704946156861759711413760541879687667106649420540388407081899102384660918869860078887954889588169912335667840981978162822150041122266083392178661463449260788903012850874777140738267656010029526354310309864576913212072034139307151432011458277529101179700373403133272415254379229156138369965218432020502515939824718417328714109882404065444137814825874876491101525626640116726834655293542731408287954571989261140811638689756286134814026196658163282185150490427951535517472152698760724029790002761501630177372327162639853019667271920169485961629023848807722472283617449347324367422271290240323452878502435951137877291749855416892788796567738198340750303856936501817725210665554438058756944321446844414948348804442423889651321035666665232248792059004210987723745108022390867646684303583494581514896992047731412726404671779906987551889429264986512039035024927510647416228564539474013792716666407753770343949665411194619384449383405904803777889623116780365737314673323326848279706328852204674674998734341043078027007313524958178420354161342454182928418623440094998432820191991381606591761333079130988034114507446854640741925095235999622878321481207055940518932533549125995724385284001154824010413469818804193277519444986990601092925021156813386984156159342521110703814313667882791799232327881142142387491360356647576157502246869345279590521743005297446266110726101846603108715639585506354915405993641374203294664471931133725578579669962970205993214357701173288563210257344546807214608112059549206592376420727374914419156509338440298735162109570200949098430484674723440026650521911371873399432227021798417632571564102274387475444301413912611550998895177008505367961717516866363279564775120173500791564799839339538164428357495450329137602070756980330273475554781738066438953487703535778850459570528611036909657846238550311094764408570270870995944208647788853279745863118027223785713913098399291686099811661739267423360135378869243320729920283717506507909211289575241566333815640606843294943466991511600469938281223654503093632925897421587094840038666272491204794650476130984213737978216446616682809762527596378508300073292582024654721489541839281156076086652273448974566596537087400987967138287011233398640348414520280244317749339193834205807133678894213824748965421834385434948628990580275567610899738964955159400152756017112789746915040380213835622011629051411755781607891510796772389809312125036012550852880424410380825817881104286353058933608602605406285428197977536630794832603986715875461020661073296974059860047844506936313488904717461865333423003191117443571467108919658552583302527194319613473495541434431171445916328881500112389976679123902459354224534508240840053719320547008180985690518816064009184670577314924390555837703179045046068246770528299822247422211301277787167518182798634037388226375970650592304242087632699520044958062630171408111121706296774593296341613526385713393589854717126946992924956285658819081956926425441366770551331745199861663022930417729994174345966172272012510936169650318090407531435720262065889749327642832093356504671518004767814331528654806552281936280143281575013516473814116435545767410192946478059041969802528582442083096547463570149336613595070908664887262707673745316668413428896789514170956493222673557864554952842710928590383875381557176574891411088665667672265224661845289391164467413588825427735014531255044497018445288694852136098428155136823171672359018093066580576330484873218146296726330433210032984650783098395358777986678645757008949026504730711018831053565634311204064416594763975145316321907452936594679541308351415889620704959416645123632633438170210755884565587935718542083065038536626762506580146378810286699258607310984937731684611162259380121313991614534382983440948829833571159490730537573197285754756090142991921473293625660912014273404440700301066020039540750203264677044791227044663654241105536921352610945674544087259227752263142904523673788372492090903944755610159505087853229637703113920384347704907966676482252716243963774045371185147976808102944614621040070024893212535020107896188292870353414822209833223407850379504799965768065631892369329973988342414645677879921683393878844968677665036646244489967356427988424031731713478002344215383295720037440743717457660138736192179550129798001810928455280753521873625667972911094694943700487757051699279908598945852373158351715799677502476228453004742715406030059031439131273024426415863249380540973882241532124028207154681449272713083592579504112101775050807175556917473668222834340882166557610483343125493637753196786268140753517352518943020983324877009936278198308723480531109839393045519672330729279940291071884726433256389791823200446970027148165222242343418869846845042730206635467839759100883199058293561381469548208089463277102345099122751465495762036100871663816186373983837720929463185708856461081203779435805718896494159247973747515128300953709024587516539168996462103786499166309970884791460556083912114081300081521734020565783609139400511966653876436893109611238789289169932792296929603476098788277162275682692849792500170046979661733927485467529181766393230569436440591966045934736898433706244383208843932168437064899761214772356974459997505743203123551936563199275773866416867045251842442245508716720971974700758395587543913618482102273228594223163418396610871168106658526242345325671628224055838733869603737562401950579873842311252437937900377431315875579439573968373425100540591290087342443037690374280414571504064216305976691828132133495658601084724591140262912110791005148982213532545680066258169718440455014919555916163027768062261359600752270406851012503115005966943389966422042801912279596783430527390204006769871784046014373013216260859765824587790256154049541276436785134888808395603414435252256888576185544850583840623963259469780203138759009222280603875407092092326799563920098877731950252969058514793546727366373655996304520022439286996538558849809848146322319989584122087282585409258242757949015310259441108722573241184743220343559125208463229317686336018105771812754578987207329814704230349382301460109761652001432389943633212616230124793950164109586217506343951677761180089277993315570587135912332019425046665915933561953640387144474661035359614686483672285020916570695209000214381017590055730159329370775255464183453595238423766471977283100596839780108810872979611687874345912599449696357487595535960902855284926942628726465148062242191120973092340477772882860527800529627169519762812573822065121911791485423491897115761925136034743159234350162734074433554695742704697054507313776182298680794616665269922220903452191720037742765697492938440937923516197628199308681785292987462870238281536967499764084866214226727412521963490505472278843150052691277320234209468658351214024848827456950202803941114822555714280830038286465832229173987428195647815518676352338372281209141616714672303640955777998314594842947443211979077742069797215038814465033866290385607977934149886741145471444802610266710253504466322579214071084645934036914563300307389751838949223915255206656852195818922250565321416560203487127811439761047229025683741823916419013121226466209011508698421336145038334766902406514039111449185019341838432353620341729943806003760599632819251497718825656617991290248960059841764746743291776098374670398100911077180835554657622113266051786384006273130773926303792553949416480123706708454596287049038906908036939606208587658429268026682429564819998530488598234492406585635686770388161167558800408289636472001196449957828579385703295825011654684428862453561910836886359649361109116397214525267797001462758135847296483700980699376497317039583713653166917506981786632604000138288202829882524365025046351814962270032213235058931925134981331760339916855535706592122470192432836285749309284459678173706526763541722728817353110239971505244983843490902676546341166422930722690602948791809513706122291800457874867539473001132673153051811842357031360031147942949183857150974580485889490564397784592462751845282453819024670533910509627871894223302227197410840084844414381341467068118528920660504885191690850755459336049210516066270184947963340413549069606234063539457260444293017272174194863599585414576982607305638162372993179304912700281624382478961813196070967821416723540319531313627211811544454592681814026051352090592615931798848845306671549182906270280059064025177539684068474333937534371764028886555626665265601745061741646030490277127073177586528707625227058896800349352889383722479966354247753767615736104596755035522324220761360717722698964659631314672686479771963684081645240825821485576034665142967357581534961506642800184616743460551207598968218240519257104095947179647919801637597515828851321474640730714867547683771085031474182635968178462080125585651452308067191632243184939517613792385345136481509600896989293890238405063899629345598662622981903020512833368743241833342185461305049559183077827110612978529173529196305544938110238553222498098361541593629087747530937593624245000238105529829249746456787840326790562432806804210437248885080343948404576795351849737651055733011379046560891102430690316407369611286538795265703270406221408483351643554007719673456931821992152126882261804642887108087358622153945235749323074282494350661358036410595415754437545237695053613770004041088919106475574676752985716013135886036367339938366261176389163271974193438292984664518533144081080986376615419962962759853273332669086138948782746008209328981816874234713956312330029829672349807284192045086084489248014420672935042839641291755021215376171013952342341167265319401071259765594604408451121140057858490926868121000411581083079793790823970789220757789041510978624264977359166415750549498704312721446400540636005570408789994956479743088901671967397401887072916751371761170873032235180484786742292101207198707500580206545633768071037322290869503760457264979108884104211369006718761117725564732023460107366082430244275620496749719810358520553057669670796469038527686169280907686616723011124650326174333543930984475864443238182036756217669389107217514935758373956942505035277861552657410169904342511084293534541055382879256310963798646766493515155893847107203543355913359360756181976202700501637711251999451545835446849658998161049703600016701086101252256770113255898559591974439851150198122749273920680721620117126535297937128348947083199061723081950829349732414273516884243513454397025759453222701322636314306792951314388803175663195407098460941199926244897325707563012770065792077061573115823216705788663790690090490105268776740312568664022324242748061566443419578832084398458754195764310346259765316505435104558196688847729008207405214192619229698031412753361783871187114550489662785492909656708567360690115268100978853628030921719143998319139633453956786231340801842110254252908700035361371829503143817982751814844877011106756077095805853959756270704152435126913579096461415640659509431970908446276946188567776134811500734708477641261727079639037794233630337178408773272155737153829495226618311749600744741749947041455422914372510559176301272370138837591141618943268764235964925619503235957286032591105587682612604897169506750363207768564095315727211583337508782194666358717323872464836761338222532750109171176167446294140954288099861986790517648431910012777341705378054809329819525829312532228487034198002310622310710395916777352359057389753325139077017592854520500909769354411940123763566766875479524563709778989234797406536360562083333826960229796727876402582217213664279949716152508079930981461278800999672014092925742149421322056587179605518542212256888377744850262283293349013078966656019641915162981800144115884723444769644215036699035071559743216564474893760670444544436856102627724492902707741406935410921425761279478742400500233196417961047158312963677415036670393833019258048011432801133084502080265116894559412802403738744480643040040234110938132248795567947233035043104793602835181019578477306814978629096553283944009133097777574639768719286387638285578411785399672734223449486923288480433956034737278350335458642683740482437922586003690310136422292629929362098375309968080243115872567337021949948228071650167355833657207806124593572085080575655286544484161749361240215431717522410623143413733112385261146149330023622049878660217388152152715592112770959547655047089386642277283449860287959029682267493112379029495534536591898966650249573859746501211092155009972398114802793661237996962684273912473208598763196486629579890500114765013015450340615339867432025992254639754011499271668408297480391211395158979596074845108179815836377051115912396898135371374122950855930956563666158388707869918979418084200096539567271383525761142345643859252719435442983277786328845659390951134929619563729066022563340542616786460619884374455054544216816108351838557048918009416339469274158319752022089919679874093521687620153469179342270326603091379975697778671543072584128926498573370979671366011586703083800750956049885784189302788429255684158780839732930371298137510010783058014052373680255393027250959736478846965491432818588021994519409770721022725430400171186911386572959589135723882471158041417261619810481070544303882857698557003214712687661071034266249038505869119610257447834535963412405251002584252876498210971401932365684671154247071362908103328248278310151546135567310285163549787557689745708277255630179055813232359998786988539164294578946897053584097269889576440017435923770704044036080527207686402823116671950655022448593241326162837187878774151365497295796020240782274066462029346974239303679958198901972460105962515532454171459192350637911918761922216229857666478133083896593284317758418491217050459619301134757510592383916655400995495368887524208844641163232993699123471839843269514017622364881611596288679347925257907286957828004618225890137233683955011004256162326593111080844914813256440793652963693302273316733608890194691562187228665664653772042695356546810973728263755198564237981236075426244175230076886323276693804384490528970942932841466908008382989874658331690862676423733168108150317615896520569926510265222169836084455541862283931974495477955881611397990908151598319442841482801075108412098958531040034361246597855787128546371360103425064308226234962871296237833747841285257496269473082494863236233280775817726878643164896664871209358676759639284842264861533726819242006276666454504024413742483675837354431243719395856180195143656175871394068387811390990586756476669516591873514138695434420052495001176738975102333356466399956872578821099185299895851856840066058494310706608837533215059489143036247022516276236536620146107404661008594994345218072401833958430067522969097211853663994907802831982843154742761296453975989841597446583041566527786383792215828479062008718491244203350243503978253160332780844490256174866922505037547770730406036407085069008338871997068662368527520672711440028207892751576682239865834536075027235123814089290136714478960640788659745735511580342805984713314878791909899152694408063745206218562657434417312369797367772836182530168013443263845424970197455084211036967260396542076185262885440544693780011482393510056746615255872328574314028537578261545756603413431021658271282682418420866383362347875685543647803495165278355545896456651890211352120388858576554201952080641010445823737631986176947704951797526977893120549515429302134953812381574004472462065765424305621476901254879901015606525047106449791134167648817069052534041055095608656775128868322118609939841743595259113248652805753572296228236595309310888586211936507095862896707985895593233674255196692698484837766297598515979982474206479650248248172469169830940364369286503059848244709772057003452230249924403697908128932957847196203544444941215265828432770284938495850869359320485237181049103422717501128622733414709461191634077233227031878032544721747552553607918747778103529018759490259580393373878310289170810950848252379526839014334710249574380894062002208819471270146845141746881906159453764756939924206767466025754894236718057467118981635452901600084803034630789186484317169354850776501095406317846831642942245964003331387457901275842834397096548925929390312379784660055526200678459981025688156596526579529536131835268894628433509746777358550243517580799341803280592272778172973289622957831253824932390180838658484930045230561395792356540573649344458012807510913812557109172886368997302831560957188013164404923761648388521796217586005964900682975086940647507748226615188508092184297517487335282222526771048008207806129377389142254741497751853002479942161173647790444521353052562115017644687780157700281163770148006081796125625393148756280984043049607870884744217614080099139614911482410384012178265996523031021142287846887110125005724897057151986033909166230354068390417638866826002919529387981430603431898649626442577824082660368914880929679701686960693250729491269550600805674304779438255950719859238227416749428652743791448865495977539475856541596494870338297339306599960114279939435347550797583294313352554586352647150269118978085262814256934809581048737021969149512641491851030930165007807277505114063339835532475777915378843030264927480227477671536637999098989275160227122568368253103098151270711010451411007198594754518941348628298670663076904662352812914140150595267270650860337539292440737013689549231166456965303302956477373322912110763376185026933605465456105839481603135890838145877814744206805015275283526620386699336850599343408036794112412785205364060660964124272217664823491273486444371769007783556470344604163684593078075520667018256578438756393991029213313325630976469511371390015308181209395721782108712108056891246454264643406068190409867598884101640199878127967815842448550042003887924242911465859367405614287828811851269703203539888537886231026237186804598832240740827292921577657617529885046233526988211090323924641306255684855939935644007021197542887144976775749803530733432745388911494856323160363867641899753913530836899778484657610252630170539298073430063094591273150904918911475610561791821980877531404135142079762519276695040891277722768403887167133985913307843516060055857650116320146377623384413215688979180870785015202538711360592372636730418007640613249991769864720555698619150355772975326577152464034042229249489306585489271237586370778440284470097883038494481694793917573318549359846881274244937360349429795487473793933935314199706905952543973247747890324427679904907566998372943992302627313874283332890281620432793275334418115986720145447871528485645746329777625976935695428455513727195920643686980604342014016180898339901213795193848861293725571660565213658531253314074074898665708093940984594020851171558604607225332509431339036851631062922685506277623037479479090761679785487482352855803204064029188460214109079852093956632976746121552795827335858548314472753911206142197057098475392925916027635355783666025054937761423758697962897955528365470398167875741298459549973277956284322576264060576862262773778505818712807354251199926352900776612545265454195514321826912427653489704892041410242866568100146389502335895294728632125364942441132720974358366734712290409720860949053498467150112071494896260231937893297023694554384641170611370262577162085464136447761056871841013983548508233540530233150168401543826232980551938060329936398727073020593892131582117830197560691833498750307356619255265967002028244643250115252717398025647816933931520918585172970020770168157308939211159918727275474533750921402339235306954891090760039374099922566200547414495196830644782352950492424989756388314752252459852480193023180389660073599464500980965593910676989429459889995638817017979903033839540689015374522479112183325456000085482994150165115964360350614590674921371778737299281240657902314014894057748072293881745131870375609908105627941352136657264088204898958669583610061763547395665267442424402378269741410853025653742419921407609421958357434806923136677030351404027297639376737363143604533997260768529247392045941451646833044609465281327848004107733493836867904754749376846044606689650908365071779853301505760648276115350441193640511274548134262324419203846206089064695513001204731394613517128695505503834134166916521628840970250924519909605828399629359332573477262280317723199491336185534170772357581114444442381139816367848659863169656575633640771143559506696516212847628065228171219609707800367337529994757584363568461908424905232816053703879031441431666807030463626894079959428557542427127339809439985850180354881940357345036769065998066966423854657921556485118233574963462654832621663380422889750327335360600871840874487185970190139566046638565161467773264986750323833007815064594767925331214197921001774917105007346358110772793236388422093427114731936470651123624511249662101408569132423971576614314161225331250717722262586543160259563995121193947620860526923593995280675622976543981200800522174369853624381003593959658788360354117607948083273904083152199288372289001681587087444597991870538045717438553248239308485269317216214309975263355881371497880658800745283884460408034695091620952786523029275470726764068044498269279355535828798147551707399097032009597685796627043726349950536535123068472709891818707218506877230603427153218681163671634297662482797633970293752420052307776646923746383886400408044974433984910518726145023761620867857892670446470458970982011872147337607191421605185695888168886959914560237866463917177741152297723118552084822996215598502832128918299207847144284517135194587628817144026562236023989626169855613941046240201665910561633973027647340684692991644720514901059103198787164061090833137083452554615985949398127073539337456884787801297158879635906387561955478923923721046371896285660802032122753441814901096999135012874566402473042612019096977106672961764510490481597250352264788214604262078364509418517162202691331279531267985717743685115497935197635487044566595708291371024784243389848297769725780674545992057766606056717456872340522987784308369118118719761896109829178149370411522433414079033066687070414388733284020401544760074169563811622418344313392142723806542272179873038244190746130008219480176098806757266686386305541335160525197606523758472466633397581284929833011426556719599206533315338017249639679127642116343195767975932737567183822890972224429651909633011498504835880564179813115435354348128061081801823541193124025436900974905201789151701085207606573715334944879284786499649157215494950865156856923546888984255318864286996897055548636479309774783786243971540652815640744465997158100008351958390352819210853028379557106539026765158980514085334506157116908921538857482621857475931389841075657666066739438833437604512767067854272618580570370254410557414602899369019581808609064720426242388241477321606615803319945883771311392952996592821064140266081560728046415409099358369644713962039355313610688804959689271842571692982542441946103158113847085468985007051132278019122551708774340092048033545473840225583593586743143082550622295955517802574342254079885733839270853932931948273907698917065862646440298490830640370951225819501730952813542217440859246481297927867809066042662902354363219477521094844952152720689749508145960636756095111854450052465517449676533475079669495498962885539759784289930208383723320260526314796126250381092973261046981063469405940545964446448949404268981766658530383330685528674415324315865851097666325368813450300109828568717712064918032088663342209809446223705076119229678491084504012693617457073478231173756505639247493747127187054030168515336023523324795556635848554678845099518309537833403365550852432195851292833345196739752307241313913163429923780150133789446522058883755617271711700630265133123807459230672989105554642603244344969679237691383947024792862510512372291423039717975476430687958369765812476115640680862327524100825943870965266058822654767899143503526551056533156446717526784714564152294168590016888580904441057126924573109327750226313047260166802616736407522780521080820621012245682167353810773882510455996254927036970974086164761037410927593620448776301498608912982872918525536893269773868662864573099726821551742774353677374607126020053945410148846749463671975802224455847558918122448586858583368369450897201046406124697164418116226718916073145017746668613330695859019822953875795747594141800578255018166237298564370616762472108558836337333339565950125924578342069988694200704386824975877727820147735115950048309585022386382459972724874518864736716995704160927564034190349076144952031838311715792904853056328266780560447633282050860029144063424740437442507482744742403987501749934471089974489207856372038586685891512229889085658586693037815970357111055774363165321529034894124044787696885539036230836960460722038432454606408272043599056426929986766680519263631836684550750226878255901144364790793000773055495987860384777769581829340833773248619652698730277960576454335931291752677874958481792018342407120999627078930612964231373339678369821815880071273123778325485968317556507124715883752265466724061257721320770600483907600810705513792921949317850759605582903093866077364269135221345853454777090356911449984982459708642656804945249566413558972954534681286553495692426539715621633156388276660749432328164280241581956959788465384747373268770800246753998357297465894303477573622056258355604216794974664273918104184772311973555142102899310889882875880665904405096841620765649129476881790967176572511993969992376961578238094364710388203018362802457556464114713540483830972787549689318497290715481721251053004757322888894882362745580546347975860706111055574718468257394130184545490560297563248569202772677646327038531983613068206495505866766612504934786343267247663581744616000242243258842421006857136925233912802172207138739584316273656999757082717328872564965904517635703579866953589883831473401149251661928968750823928152464374761731870717748051077538296265935813275577904087267664227638881746447683881617776469636007897521782746666265034416476425824670653240490663751910317425377845254634723198417029812659011880600328836266244851184903874719810486575833889810616617775211175415649922142837113127455029291337821747597060804261640988474554275395618953890674995330021269963305902057523155273964875601092208825152764589408004669760395708990096674979947062034660164576468934857143750364432618957594730220793265222445050915993970527053491797217752584621167256560663136055916693814874537805812825687613459753294711032342354269349728627599354990346973214617714536010591742046480449135485010083512834547812377842581577954182928613992806423371452870420463343729900319744801769300848152359720826899682875884500913699744296851692944542746240107159731945418497812227644598652999118421014350693752245054438245097687967666003479913835685836925662354066668065019238107183478341685070001603303989015494278763158721332178175730755965146176700421131662533005335326591867509216144257293352063520742990734502040429328736766799294520518680240271008190206787943477512757766919417358475488058556211242843315738243242168290016015206325415884984807617070389679303903444319762061939110358446298435925843331538205304880972120335433440610907619539622333141459299788652926360581081459322974381141728059151817745238930926509365456850265822779719599279125465391450529632964993568842373777308295001908493996836568782508949593844703553337976414302884052162123867009343661918926313529960434244420680281936373511315319657775095260613766474078600590046954864469905733010525471231121384302056356387154877887381022466047123427151897203636509909983832199750469898829840037163538963194440567134137430529194929122382611990948946374558121847286504764617942782756330399006932677271480008786734289682674619808981138549280706515456590754093752821387838481742088593171432318472513804808278837901270905637937322486959287267701009153059113302575806379437477408294138000372420871487084419506738924644932317111907229873837583291796802665984364810546332616921316101692251148355427204271976751795176317739303101562296008625147369585186211066358919145719485967717776790831812670911502690376098218685444781155436902867259573444750607060279309058929144205763160798510992734668574605745880589073617019044683372583384232512381756784148291912862298700445602325975790842977681791762443785987575452726972690467314636074004523484033674975151816004984114384970010734797742733666996679344547479831136069272694362680062645914498352230307480186010026660066189132975959317093310541932403227499045122278711002758897723495852552391267481840676454959884852397827178414057025450226201909937461929297305646168555531867672166634278004159865951973612564152893066770118730051660408663050674817720694479255008878106306615720734914800923572124864356150934088933672180441389132969790232393074981785271060595603311583858889757204500977687418231589022711707418374714462836909382812242040968772630470460175832790197233102849706086218967655107032531437807313455329860166158058021161594359687396264019810863965552004029678756249828131890943380944653679282329347155301247226710243622082013174613556466104322958763019889063368300386153093639452371567953766978891571186847793540039936879154526238238854839782330619375540735979898604130498841677377065027190183544639522527140110884216147557780342285184488300342675651716995245913470181568401093378311152556070105609417857357076655876871276511827755192871984224717930406570452174564255505581697896724728775440036754183354328686623442564691093636404157331447564991288897977689341001294875219411550416971938156858896651981022562035042795603895404592777127534131649880794384371310207271882465777639628845014616432038713603428827188266162303016321927735874498566462778733189673941087131196574355850731717781774013718202904043933445229732044817366043799914098668401661685418576679510284585993123899334184333441518266961870537473986952590754556375300036704638682830677463896076353941931690044785399844686557768777484426466558510899327925592346491976101449688461110899547622890144699362737751480843626146751961675484313405149370234244225380073863008353811991709186929595750938134084142693061980915138673653093442661963188085187298974313095319473334959748949985073119096065209746068713956729313199817635205479707084140512804588436026994511916311405108144896613071713300035603685636145865939016868242586687636568060290353195796520815885414348185734421537895251811527209672111747038660176715308630221076496694110482666069324120507308242945823882775110197125594783375642522265604159065279593063110313685978363587893955694897751465908608906779455814075480920578599778760472578627901727370276965456462762951914094347837326678902958191524270413803797229401774798157420084010511971238513744308731276096849212049138560320146040875100634708058902309677765571000967293083869650787129170732048375486970207425492823260993157389134788753111197089632129928899559470234224668057446237822542390015640128114140108007632694721513660506387351269307158665697966592269439550225645692002970672153898978638642626067274012982922272342837504488230683870783090357186957545754996963464542604533121522976626671913928036385349121887797480100230714301008115512743204435053653925112142664574340874920191016731196165059645090550145754826248095719102116958200421891068777800931159083067311063588248216111702550765892873885137232969174499250990100646568839357970281674266689002164823694648790088366539106719092632414677375604626121221722764844653684758164898133842936165072760553437588612869510469304013047190776136098201948165184921322900575396251825437637403364548912945422013980647135759872740215413615415216654953667178849432376571235688776041799963145396253428044843181003724088283158030801742088325853478239766276360062483164091705979219581866828347167544984095018778861053304195663725670656286965643064107773506241323264361093790681707914189981779073610160209503581512075397179298881488379724827690327023896160293831442957004092190174743451453104436084844800199310808742063007213140407940188565978708336240478410932972545134253639171802698991179217393136023740049826600358346105717277005002985276319181917144871669389514051990925956387579771024603760471111188871273802515828637076977391251902347628035935814147206829279488130876371597098841525142341922278710939318782725779196558055058079415091297647058230733154081187847099186112449705490979191133382011379609545974274148058008660058801441882501445166580864360074445994313682509316746208897599880553115519753070235702468442542572127506650459063820251585695836210599254995279691473743542457397615283263396433986153087910474077658148666673388233104327756064500712854420325946504541500980327301136412766293730581415385221089361010627008847504945225108516029571779926812193793027402323249985540755034918501766224542424351000139259223856467226649378736688537219041213775700917471040770557272363022569635398265807511014582108537408849341154013757532481459329126411812295293546937120368466961194296934361199976850455011911263798832322600194493928918007948405442597576160238277076092265895768038364711250221876463700203390296376203366754894575285336646287558934266891683708989540200990825331927669179188283542807550933307202591761827367587190057197828021465534789567634482275072514158466348896870227265201671490739985605408439000413292241054102205097858252358143648920975876654972052103410628299982920549404925406994279496473437253710215385939412273243103277169618829087708264329860341277895978863838906961136730543187985052700374788273617365905316804970582091914446309147455438823146072275084989310711945900315214320376470014408356941226893014265295594241906763280921344505885205589261391425320367826200842355405021915542895404200548813563578293249228892736182420028348509290731840983891424039033514773335470490803403265083731964688396164967531598321052812052611253268068752956640705153000157747663617586153312468165959863901769348640556044974784840053036890575665905875017367946870483863368767159460764188245285542576157249095328473188884819897589066732675241158282800556645040627200255916615764001322421176587251163896975430960652363822650589409784948672931109932265779973482129704571005616573424413627826400512771338026204849427053596086922109755951459949555808127498751637490774757524516654862405190568083815705318393554822967242810297631500928341141454764358732592689491160779143507025088676267105688406582988408650753138207100677576410330335214682653175492052481898269618496175581787295628730155848200557151222818508372053477296467745805825569956096505672759647774152609315217986022208516487981941776232375176695072650106086604924531350199408129095536432720634699364987098334688327053319983654777183460686499425255005668557283248865510651521424607832061845696320003173740475592539668858601569312949815607571419981697322334107274927906044863726739756503679023693382835496071092490708180593852620857756780105457366260349313065136227494104588624258695259324063107329190201664315473333398010923226869374667738042251306457710813051351546509804657437961054976984540975555309756144233923475674016240787795265927718286817860224488732276202062798107340025256241154391563518831454025628500902975082914342286444512257492433198326377118671504703507027209150344884680855218526416175239752733702361996811101173989151090286637454847379772615964989302477060045882944545630975582173140097313554707708904843630590103150856676470602816297294054214190134374798180385043362361456524538848255204862890052996383958963433935072897045166095576302131758005701106189447998961044597891594805657799899156335866615964511897016963152370320214708847945532991168916489870378351982122189545868324994918220727919960154016810969011928667504984558734290204736338635259017810964580213727100974547044660508383944474513678831528332511027107158296468412364846585560269617747881212527817722512746369127693356975920569736231047733919100840972946417387016032164748278302547395128582475677216244722678690871537647490803603134045584614019567819357636929229164630485656586153468903124904493214505224579135422473494955509906625326536511103359440860225294591435289415724668093002267402725548745107184308553127021101780325659341428518541605760579216652260540357923179913036535741067721769614859219044517209158897315234215699229118751320379589824409968000394780788466362587172081640895360703559856151843849640899406154314492447790147684197132900546964995574722435316222080647153665068480479681345392971119376762709548699669561343372714017549815062972051161742144805276978286018452225773431541733154346988144263311991763852088957200697961038359659021617301834959562089113395946666777289226440315940065043787545772157068654282527145830203588328631916747515467588235071633774012065838447797257356484769428269856029087891366113510754546653404133016008015529659250540944686379730847355865213775997445705192551242493778588446448338173512151806399350824225339060245950431052573748118458697765708352818529484735128294782048702479778706307528523008527960655085771461181225347382568461005603222735984837688352581630920593397845908368036705080569075847020892889142539143315171941166873330831177246902711058226088137164035873278160140176224707431263839736213873733715294507197919915523713670473928320904366496691835447540627831351893018946948362566849299556217564353660599099856354713175137619473160819634596884073165886330572898868375976699101219235246191506462480059487985608826305673664671619348736102394673556508229281590982849622209683358702587280150554030095522646280161179237515044403489540373489052562783435334765097014873889541798233732754962333139678419920336092193483007198195657443457628524949913807460603866050460299683729350759677294987465074585516585285324473810952688015797038358245837783538929781219796127755559592546030415603064246228823632206779971586883615181797304932186740990726954671265048141544696482620841984669548282332775334525286644881576732784000854855781582545963320667182828965763386482026557980953166125471103148305521726220952764355351785130628988684120030216872136355255140930177302493189446037795613385558326330455289467113549281888810994663659598654998048766497044576701548284019217346982670190261671475626824962836009387007722072888202468438287064028703247245946066308301861052277600126291671512616393293696470974557669764365704179118603496317436644328584750662911852767485026340839093289795455678955583051417138076451806816617332760994513640085532255554561408937778110008197532060254891525086084567760804513631180842344166687120840405524068072577309280652225629283347942846132495660711468084419562173789080477699624778680056364680441515240640108492248872485514388312674169061275158142675621324646842372328209363016881865147220512714411975542129745027968564846209652095657938944836223544794633527497695399477888343844574705183697429401584037790560138232352678142070177679136894698590936897631669622199649354215813950436875892274584873266757653423686180804224712079917615279161476479305215655963150763042049965979669364556930059831022091817064073925700312569992735291767441755540706912480568621865295421183405398929520573248940632061800808473472320565502129316573695491851588864387308927726440198066791249070606355486903531884088289420519865665849691619671198034673285475943199798296566258539255549091750903869968989410436867843642414914779801378985967027123553998788639773006656251798307574244880642604372662032144189711199304188759550174456254170597332530935007006285651490882239139710035643422123699245719022983750259350205693857747789551104389709959541752724095911614198722626150124889071125055200795625601852223452813843874670218811448848020346752037659488167981209637357138889857048626144049270921900433265320614271836932067407917633541281069335601598891441706447119795514174895011535633634772292204081302994634179244254650592218489372277449250317789345196573769628951925430799252388805409443683715929191623041756298028736066510992541567266917882240144616182000761881159473553981862315733692340304885917671447037986364179496852753022340264943120364645573496163834858143245991445482588091802356905393843316245645291890903662412043598827783200693141191566207755420719142454868179276484269049058822828148128174938141005554935683269626233987049488830067802609337551021298609487061929270581940579292677715771852597427367100619663313131083490016676348105456748492682581722499413553214878025707831405465086343905969233690266995970773916926885968848135635573046679079127488360269379830061278922703046821414234118111934681975964219163452603886598512859011157822411084298896663409085559136774656634809506375836037558987538384539873351606281110208525210036691392530139587162458389438944503318521267974072193301522021106571759986271619027736184216111720508519365761550355940786622412988345095303638265177704025021234779432799533604066590159876385237411065843046020029009136031035499844426923000421105701462894217018577583230801346442110907983366498358069769613408203092463525143703444493944220819376317563640075078978576491712865662669609071355175648359096378078856418588791288742406032263850386428479786583917624279939538998925097405325713094223657162686042336183746815149889890102872006491986414840917870521515559509102127671855775630635870825320327303904492911342476097177870798315561166148867899958379578248542120246331075818195722894283968475474803589260804150865820396036505893452143449994032257256433174762209663201320111065099307661234222323897526011921896329560676832245324363275657202236490827874978393106714254439885650503133695078148984104053290567111443753473913159852324550756242010522613036016009421973611937274649064009783141687692060974659370889679496468024425865367598318372823306606922114857321348451213210433737676520137144089281613207437954322136482573034735944371220419777434887761695886286833156053694137792878588517935513130479775501681566420217608358702284675055789424692801048205856923844374706039056808867061471733427547409721768353371272391973735039629564355380631243076932333271132658235355534325323943257965086750267019930976168277772355799743451294648619278577473359158050305452578964750607369156156287202699631705536062755718637867703722052237734415595019267550583274957509934760888251340261924245563572252179177777486475985564307825334982253505485102883161555054994260126353016425810205263625204649281963379920439981129597025308247059795415980542988054320771599273777903584148293766557799093041773838579839966484106896499011521652527224482342881119666726289899073529085327946994998545822538038127210867095620395458671256784273641267593870554136139318018150445716106754466252963005161262460411001569985099303876672727998288799580971067982036238565076320209997657888888019129418301132715704813268755842787879338448750090340130105635030362513836489271318488516791273348868037358367114121517717198949440779051606399005263909067235848987045595401056528946633577712781530470439741385962520244317522039508551489119663819059794930769198598637961786746572798423716216032217386559397564983147082914237034329160464214070466102200883425189154887831631052364806280714744679791578015083741951673605469960153717043933361039805173268512977649637240109267187631160245462746159916080250898090595890120528122292571698373794499926444891718687305167448782999170549845782340822282915068211547771146818978919234370045739071757474534607519153264408492196872185397631620889619033041286961091691754572849669891465898770584040555543614241350202428696314417882726012244599466201825540393504735868712460562071728792567082189654877138495102672595879279457915855925237094166098223533903785406911055421431581278794825371144907454951998615017175773990361524653105402536861143705473987494696668690109838346361228572999288821719782277264531958741090369355570854227215119916919359396620236950610985429881624308892015457939086495165467482137168126620525852678446922837602784141089199883951154103500367654266594727508857846753073137340920627059059551299456498742843661139238241556648626185904686833744098526636182719762193599797009372639838093888542445264429470492869645119966268414961639240105817429748463735688820988699618505992458184437774353620703513400402176615245914584274455850968290008560268316919263495297289717639558605275670274334275780987634333064358729035910243175176630838430419304427656331321174803093619365652239554806368354813228176883278560500371777299118425132535874144954489374814494884751284517431151978204453995468406531317157215322722644031385366963424537033613024514386416645293220709681829945157054737720788801547549175600678312808083455499985313822452104813445675823956371968067966034175879291355612368809324443678425799053490224622097691895547490367955127794292958937562407433902244569712073362359986829775707620979784246802711323019749003515907141436148026649523151702712143700273483494220093724110818857720655108780805512389986565937179599480438059082513065628261062703272740239170140967806495441881858858150216773634285701854581234453582673215501680034646763278005251638318535295987628058793469019503393172418650326119968151463270344441465743696030724793525232906906983119133997572851094394194508609761607282888354189625518400758196598543206681199003323693218170844942674610671806209254100253689105735613852363186571806851110585483392455523477365539149074689966206571822766705099252071959524521030431746663764538461112257600067528667928726121053153074802960192285477918307255963381576161704803747873758882869775662151679358031021253445379657741706646454107658743278766030826552215768742443715745910874221435295716978119626503129477622983284413843606884102486102447643175429455660547469711778368613519976476054974388995890587379686593850141265176999490502395902593336186515103052899983098497241274243335048426234487274169064076045570447669275082817099844729843398631443911805623595900162057245122865138741032397297053515108132282702132797031536238892779942561499063400614717366033255142840167389355727373057512763519818875805475477064707424041628225035809153995900003415954318419013507338743107887980888230636647021131136290007552196879126991958975274838994132290859085594958781203917051799242938604095477582788172041949279564797491992168006606940698071068874192287085208211264444258184615517490970078640268921087460981029032282394510179357996231072618426932791081879971312487059683365703834176794511563057541214512381505334590343903972016059667717418069569948065480466655340202000108115129271259844147256176113942009151445600827305185582578788472211814058772106143553331540148324463344445632206077315267360766393863950198812733474980153533731898164708301481038060843960752628378065183532810110414464534361937817323487324407689983913663035512156065452329475653798714758240998610391339017661023469555389688767608910652122969239661195106543990468134528536848231253850627293341197490141026422862533344531291694305991982473479349434964258002436160214068418853081855309138930474527289043110470810401849100020179555477116715774863381669392752124119246067578485552687747345859483649128313862256076710162818482920655093215762220774321965194030978599110104706766981384342386004043411365731898910545243504554680844423678840607091688812520643006114269929822395268632201918547134986216987738350131052661881752785133259342170349733546611727791817424166942650103559641161256191522071863727817430848309184146644941300942621333821171171507339921049262339699600636933153079009017954974465213350858329051948617029492346601050841938018703312297178199705125384265654211681902014713132934718897855466593678166458650340899411655683551431990798340164830866972389215581580153842604903319453321114986510029346359280238902291516284806528442723708167903117717120838016858544390910548254056283869455709798090963696952150308498833592860602313594231731655110736849591945964882843009138668237722317624722505129916143647668856968456808695087530964424916895726305326691303152172508865564365593823770495332871517636658083762152056432865275620335813326837463137100755901708864497953422680667922104047387741163575999249823551801364271348623809180262474011980763590611464295707448938418414115844860464773737740678712524007153193446055106066418335246427340485396222889074249852716676286739137450198105470108278522157965816070578729576712077876615955986559941324345549930175000235064367172241277326079271858528005785988226528666873563016775931398021926032705935427771606064045360995690649341331366342820265220660568960128372012851867566495671480806581916251276607313998687160736614548201294268710763999480027462150912643662717571410366424489477257557235880048066343408412937113233275154096781737258711492737578199994147210290955621225848446107738196043800192848546124727894287281754208717345235163857426430415710896745730231301428572518425953104890448359106507993539973415086647503031768390874551630978978377349571493302733382431887450738184755141906960820734357312307847006832325988221908602258481989713857679254874801486723945834840644153519122725223736043067615357484284443369873560183574345098296588562061373516816437214519890972912505630278393873366288781058691203569176713155036599033849408253629279367059993663773593572820510350107812573702741120696707224575582680317786509028812549395130695701863707715555068222461040514203713966831488365994678190303742791159283233488561324568644377862973151323821120510460955850935846479007685365503334124251816297589067626385737867992412051431146656580486479197517669653128087768074738392246103176345218798643025388517846211412094116202636504004194961747486594656742758271339249091767946823647844275962835642081800052725853617367856360346700587440724662252844271622004430745582896660163424331344736716517788934645374319614377539543834836645461052551140273168543052686969776300072750850438424883187391281325553777461060769439593788286317435959745254022500967572080491181508858283074927782163079638424111777045251671046464440411064621212878910207718716638637450392507647384152272355504978542801132902110073124509008551552589013921887243955790695978936909681389969930431995539812615091012443004437212081949601427230435504906208843790896607651895613723855021611260553979522219107661983926651232534775935583122199912459876460010703167096707528772867441516380095522296894449046623263881856664000531156112771521017402944762029961015123609760304221948447033020888702164313462660094254329599033404830755649560104578963741070045120967165830072034736526287524065181759364832227710248662699045211626116990916433528757386220892346286503965896097535420995332535221452001633453268772656021015378405257028812198323608610330667929746753508498877561804491220660081750837876718512936731188570894676553260396505370958462496123040420710678806923704038736483510471476894656962730815144704745518987230932438137203917283010175787898593975905633421813802292890015738698189677382400521037721781686088016086051121696911064801069640787087118245717835070342241268362057163200375103905698597136071244977483632339472458736070068561849879359344175075343342820396097998090335022249520742600920034680966293565497493307666260410053931343052652271525235285794321971321723746101007342515531235546558835752092625672318610572603041558526508364219435770746564344250470759557464655820752252495019987293254320528783067117761495736846105589498571859692951398334765329137753185127854505536488835599132329758359671235077815887746203541073319775443249681916047770620740296242906548622425788473472619760077012998134043652817397022672447642185889585100556813268343680873440548031668702939745029561722130151132756820347903259212088421828275041548202266446223327767255389315855613830104760641455232957352497326225275349979512742697571303734468318116799706283428561218223861534162524165672951384998976740006501414254008521139847039497561252396627183305465415969161419979336632529314316499109062491857234922152529486648496293797435897095896892848701957025977038934505306317607268397445087413051203219061518954089143770321321379828453870437916221282287299257911059229165537463685720356878472925506897144022087090067105249803543198336629233623034729664146712301714603599315592171627031014153865814258757889742889604806426353549179093215228798415002639682431102628000333884164397553459847108230132704863762839599660700716917918142184576559896387081167617278362477042903774061569122356198276861379757062165923005456033098739746053907065175748839111077648826885446763147042888518189749004126759790832352585403786065978685927553666271190222110266400522599157689427693869737063134117883579851626696480837169322970759149690814884837432074388429258423117277877149693252392730967537131126135674908895304858368517373547935014254649653351848413727522772318319516294876490503065148729783949023088425641323198074049192597544870058908767895373974057926144184161211012253099990219373738618263877053427571591765071691835587955646420683016601472272834325500117393782343328266490032901750862826901642794124023568761062399606380494604059750130744750013429524377952635953644700883191944225444153170142275090818473215970731918093294264492911286564989653299186861965395553341652391823754954780866149181696301036126076978023775154749225804374405933871894664866743726480689762924035112100464870203582282498742623122864576113240949713254213554395971324306587812722721185084471898145805346928148589046068728773160010709583678383372531329834791709584602408796058760852879187997319909050727137469983952283366748234337275044851107255025373137861901188590441516882475802325560581695961651526349116252189349313492910702266564846203739527633288939584139925697366401354920284101009455079390198322815882412121002730278367991063710338845064806041705396402925016478904002273409436785510671026344622757374030661494061127512277171173221552661805244428163200973240415553567738179633489702035554977085489611837900029027824845529654528665197389939531429819335847876719804986566261246739254711975184513065895205179030795561476295967384187887198355460437768110352201045089668025594677521494148907914031489743463857336082841611716061388808886189600967389624065147751335551919562690995390222264122524369076961719874000732039808351367575301328282645735786813200379273186201099427227836307478513444721792066592196908226460770691669183648558591374152781185078009153654274783651978842354328280496252261365643498690003363322606449567358939161815784711796645371846551186476732443374584434650999614478426889430582709148617302285292859610269857317656200285176171159592188097312765416800715018722245989434436374764866513090563650477559299605037769032218554172853630049229768402658048585609056240224615857407256939771186939528809608475877692362927440908658325537678887007477981293286036090092487715169199868999460584455670931964999438349224120215317570897024894959962461955889411983310149138328339607708210705204970143889555082254134145001266933729061794715660873358581003096863467722937230997274397898383956506870301386800267972476381475196918894387874726151867011733611813032615966671181431911879482035072998591445739795173304737774230466900731030254009053959454877801594550507000462897422646280458438838488298505789029576729629934203936493009747844320114304779595963296828800758487846282960886053545675371977968643519184265738977413159303294374955669673730852414855385455681505413224938519191620365445303657657744391225416666196434965078492641433175506918158252827542556140109240365193804686930417900522886885735505453073370682449051826297992858680021138743864807765640017107691757390652563982274067387122746933697858737724745661889035873139010626847073932825321844358474073657108506932790975212068482721986964090498159398116215218573351097893218414610361501422500930727493450737524697251577712513756391598635595003420862428636717329377165551961625451309868575558133902343837573509101005861999286452074640237910416306859731167986808037528742449488509550773912638836933055157324724403914778347235527406715905941262501397294871666476319742590220953550324013066969290516068123346759151485037764434971665619818096452573715310756719479517640847957203488672020109839094569455011741466869998102367986476843380043205311915498136866662443851353350324227612493311631354179670290198724325614481971769465687734100177625374936347933975652436038560221736378099170978181353326584167600291889918902316176350140712444815314619360769259539691319029325745097308242432871374932970470870138121582018015098824143227105697606380088801747922452556915519670794495332789650720742256333907687364411986498137870042312246615077404036376232915339936928635801493539034293254461740612695052496230318849501710521468185814646696809994668708480825028796392801967294357725033130219352988506388042292389983141174252407827184596726769609378030334414018600223962635582902418590870669748902620109243848225287093548613909122110043067019143685528675995903488439287317905349004293782664928021277295023352321983629135480684371768951638727495544068146646312784547057292869493160112991699331443021865106573006580722874282604480370557519006790207242936419288447378579633789004497899384859378446999733533702449592592127458791721498458375675239742803540477992753164221069984180611416471861640517364867492755244941191326715619528481616784033851468025865685234713662571010583369899472393221104102350120413871937113538073925880016919077519207220961196942544961654009505937311518412037481575833022136122764591449989064626898503252096036305536989412684455162389913685436975940547297769236334772120699615396155804645081000692817153001109749198127233594226695353393215764904116901102598933356041477533007531171038817764323032736557016059984543313561093605978275476122554035090599669445151607875413135304357210739188691579369707026293411441500262306338851446470828941727522314843849908861934590704661601609664641863505124974212237059074259221440254818641650360240162717275871320458572476845900238356718858176590642523307885250893994737280179319515889809720548822230237567784514473793720611608790627228716753213582349697893901763967227763000595407819717497725478560661307012038069523228226875039530435170512327503886465084276855019113077420453442507320399799228379873011887627882176512080658466570024216193728681311590755699207820936016641457115832053604938217232138487834541087005475532483745645210996926057164334713524155056151702753840521033066650549557712266137955807809806603972425742428057609297119223274686759535019594617615431529490041241195185882493558969076204638243927859578201898998971987981401015490959156012343304879476671132540769785610566356049464267362601529257082219804913818565732907295155885893171720748220747480623419519070053115936714451846135113891256301443138621425064731780326589719400270885824066807301501071423882995939166105751195519392509272315809983215700501806599791776778311902891136194855846070405108766062257748690533974243489484073184930219673328777831950693848338920762761232113762956252199501318434167929518976511694717701527847594136218652027616668529397063454524661747117450878521828898752237427432066075027734012556838123088994599863949817213581505516507287746519546863467415223307070267062109857796420408714763397222071466742646069923510219518283869537671984051960260734296342981259897949081244627926254038028023359858710726087995610982322544223533420551589729662514702940562113813685556255435511484163885729574880895240141114281230771266820345855671900218679944516043893040800848853419157911811575269317334821952312747897383439832959646108100698708872283699787328783783851975861183521442815147586772026709774085299331721757527827484898892433056506104189233898701821376531573483665138167975205893298925169972070080031424064572074772583184512740089055384816822228041414043208372309294321080906482615882296934937355915771858650952260945917323281159401715307139074255282736792392820541560633915837510591689190292430762030678166572269421028661993268381750557687314256124747826859161605382096151979011383126680282641145724401600479829124570919428926601765582631937760367908181534148948151230932399735873679016623119922240905562426112369236550089993066264571701542913460422697756908336704605970132517510200048876811759033809764474501336755020096462679592604685057315909117610374399688528628983810624595293973126987084869522616268941326452906757426157360579208956214702824177392767763849027116885522004209907950639079359197728435066094283969556083120074059074404431698963457383894577589004309008874877140243866342086979727153243159331074562623261800541606458227227076996292286145740751826659467972822699914356176983230874887641902519926053812846822406513471090338393104695131574264830377549176961100761102623761450281188571959765905961728412774291983837738534356088379038492511290681728729609299949160503882871270366296715207246418004314006670225039906433900279627215125622455155693378927729160174455446035595889164118696568903469464395721585575153966593206112890570713939050102215572215602975743246993965418820623376050097152380666335701869729969133279643109634758898810128213600869033346076635135854767698596998422108500315505428123044518907020622347333581244850391796999918265561146374273130938494252414475290509430872774782032056528891265732740179272970273088972036772250381278479382275940856309578432516597810702859174563990415087711783233473463219582286237802211315884393090785106805851848423037289014429938642035773621643926213125848603819754141488223820565582608756631611741829430522494825342809156913159214071091332774993089070631092540278040021496527785460755629581246868146388306091963656235744115292962271917556291314150447533962550878402627677018267423991550755200900393425875764522616834694336804950656573762766756180333749424614330897979529032916109239882794408179069213971085572436772096013498611407043911042242505412579838098679771909142047121035367901862692027654843734994284101670902014492255565037985085665717794771087609087607360487177152468524045420896924782340469601631726880765250797608833762241162180878861259932841069078928343909826671756579038212085685266559081300992720596109978020880612931288046308708237204612967755425543898149342369303080320402554408609814560324710651247933588609575858530041483184002918843523180913661562652491402496079860041832274783230754548187458347806732080017734480723402856736158800185251573096241020397679578812618492277940141257075553169461298445458229830160406904561921561849099286631786904800280228158889237540847612366998262887785812837187804555284928503100471637045978974144685621463279547537041880957516282632752496509661517245259087799085743214037777884436533795326089218644854269893986705353392790378020026944243591423130861745463171327445543299278236152877507940288110314592555224696942607955197218046940705185031896804688776276754556306061837460701245729722298057339173957025704507934356083918189973097229157608947208483232954278867377172516941116296603559831748552467102464751709028914774044248185613771761058240421081716541360585508510146450085605532657137641323598663498159254863452559947932457769951232918101067509522636539070824574856412668745340980153389163675644243355181513835018591217213985034828308098952050565181305846621929071708988802594509438816240499613230683288411128468233573209655535031718292939817263348575367518404329258003155847151045012072859429454477728117387529311191268173827953411249811690049763989024227476950114860294382455780678395852870844052409318022127374674139009926176846793415737062809558908626175207960522715989053038360949689695834435343043980884315751227129009537274814755813232105523165623586092330138729744131299604013657457292366867951864441311760316577525973451263574700934835468729971777131451449571583666045901845932605422024238484096129387919440297143942577155603951827078560189390496891235535935082024940792835039180805003916961469896694614543842028467305358387774723113652539546291561641434829247759477414009946137285473883353107408723116760749431877565645296019781411424748278320656498022766976141582840614079870915752661433838950477419120247562602552752422148768959496831749138573309296305854615548670707102114844964462769267544337638543228037515414620904057053524295251953118909622424124898540582990895385269222485893966183606275411400686613294685828624809251018264324962332054036616250012626016492139470858253486844686031621776906611811390936357734998845295677124800184741600475891266421129393027447471242520029784599555591712480800668457850241662531382926850896858540285173510069966146077751574920082581370300086286697176654423237015491272122609712822924911103378272821969428718693700153937756640345006850559928503460017891321986751681596400408096410484313262524964509338949677377726421847831450633414962512800564887454155451392450053628900788855805162388110210229262609699698006136638854092484306218217584750242309438763051810277099995952107399075457219610679491990727821631822549799936390980795187203685182260019403494941745631654170066073275252808465906102304560362560096569430807153123074969305851026909657535146734144676445644929895684790929190963462317295198706270175847056651982363693526524229710755463583994858867242881010751767598120978731881088249841485364797264685503200019934329362060962072492938769603993655978167428563338727856641887258831723669488360134808410324126958752391094571857856655552720456409420038986552006620700018525282326724935086752225050810732351998177101448475577374660616958782144701312570112512085420213767692513571622403559098063872353215879659135963156799239140937965285096171600640065656564722700545661853136050087489890097208579194656489701859191548583096627801359086726256349302082154320626020444251478053575137813363650637667578972495763620409907760083358356859922963625219815844174958740488577477129600328196114632788248238129936949442743726908232079046674009557245931203784636031573400564626643999225101016617792143204572798285658079284012183288498696747013408762532608169904725423656997209290610123037945341673162760226315317883332690162730011950062227923353001269916543904833166645201525076066507246505405595537493261003936648160054583732993349089008196780789795990845312591442466665303826159692146592575670693603792105391377037096134423712000753805960955437540888978666560054411922435216524538958473765129102724249984436640739430922270419730769318495723685340479507748996665052400341934851256373954321319917149701779866354320133522148001393435978111912117771027204094394941860904511529654904258111971226028937972915695428372602621320881954808988642867631279369948122967162829030992257205152498496276397398117179699926066544659296803334890071666320044030639887249529243992208085330929969971916889960623349240572493783796751283339497885437262108147492950762609486548532511955662222518451425893125714006798795963265353176127822397439410128164666885339161624818940990341239139859564659192982424248437369802085986913737683212488215773218289946099024049589966238970681725213679895888638095825206472921422885224639867307110631351092405527937557337274649063553769478314060364312105087253683862004641493716954802890941740116685136015033695577649743918453013071246778554720373288163935673331958449722478128151081512799901119647743024427435519956271405644198933585089920115116886075136560387326243435699500937259007946990387538373371855141095319224639605933309408233808496021022860879343685420330800251911119204393007925284051079175242938128753707573125920743961514332553282613083167939759666096435987480686097595541084461830030773847139869292514598458796049485897304016359649393231359551048505966622191697610928191536291814585988837692738094768725616504960182605028558306653975743880519430182792328407586594282325797274073966017989387207468964223741848194036219248417339238213190452632718519472151521495148220974963498969480797686943596082796396610106551806171026100004545238946899914072825514509561230901726264627041109810058630548299292701404745159163793163090034404866307479711023569937733657510904633449032046976858370089457551637176386245659944362139781405678461278362748647049373746890816322746904876689603865092172586288448134702494344649629064376886822369128333216651247748897232108343728724464186236943725667742825188568148333677593372564375726188038845183281288910607632186643694279761160826416947569426535749636518204300676490099530229259014095798798517919330181024580037351931999972451086426198841288410006908704672775925986677386721214973560791536487767035543239686034270852688297122922548567560670896755670376273157346213770641720032199906223202670702642699179659941087895282525713926990237283845572992864977927867207130363231076106195649204176347757241361223513852882748850691278443119936633873317013281593703216137920551254869930024245001748962702668445567121251360101113299000472101872704147781998884351421607553812137187897469160002209839643015365016549931416397124797548585129206199497631735109867239663208491836609649898204281364180977587815882529494765926318236954208268227193903867111228276321746762436951977051187834597918417477900498091067824364533516627683332930889730738234513167900954114441868950669474424101144523933739769925240696087221741196712720839000107908169684107905832762953168193066544404520168757478141648483120807102059396860625316504473335967705822540656803930694836665598326611412815278701886773295584019440580376644448884152671897416533769464843400197785962011420161881310510491851247674581415276688127472244191227375655798652129910379633763236634134736249731346619238436498262927955781623285337453300484979409860731437917791930987782641704174132596762361806151906343201284439561868082107764109920652036045694771736582163057202352018796693043343289148318732511875954687721828792772652061190540297200173195220709334779829761148980666489620642448486216196006108076563331710557188849017683374672590325819389848465111947387620708755367703131243850267214285608028721037656073413047176028404740395526705456809347275769375948181712760620357123679382673574037348922156930631831453178060745702376860911067053606725317585161694205493768112990476305165872837059288182805793641567791057105562043022033103765018888702095796469052618000918575690190710329797352933908369657512639469201052862838995389916020423110381947283205834570851648341113184809466914355921620597446156937395444238969174690562833798848785984907104084338639448024821166782869938336401632146228946967928718571218857203724293580661112636725873700292564368840424463123476953671917349925991052839990380299504167405676556946744376831209869831655080606173446696930109650129064162457704590834761415272956620569258906135971154442761335729309521191484054413398294119926217861316152229339245436943899302248146874765853867493566570484246057423604639805990659491955684363664444013645632219266936394291299450291947056453778806403256910342131941947837031311373185714106800237039031182048418235531091130336720440728293249547080934673362077662458369156471514460318781781685161292950006381780434033269882313455862617414567192109773809042253336050039838287315095392701802584497543122446735876620953609851118337288482133816367055768643061407545960560126885660983473479161009978388317588727669948985815149452264426613837858203765525157590827553530254338166530641362831067966143589165088275026994031613515511486115626467581416722727018372325453308044136982184224085000147010460608633787231987776810525675299671141224385412810072899015425042090698278297801870618280136149758180751728534397907758868612110083701100954013834520966594024345950129921970371576435158887682610391324673809902332748558068170936231434765695555295101909933239298921808739703504190732414652943695668105081377096836018286998740560577732267381979108272304346354368330879711178801801956956756718476748979106689051302167197456455237431708980981830463685535651579596161383022097516503341852503485268852459873219147521857650738702579862651615362067813350359003994668623845515686690963939812154344567022720782391441008036354371432872566509812640262209307483280825792703767190489117147936584700387830804013069232436018827345753886484151730574108504466344844385614235869164791679504448930765836896328105488293180011526000236185943648414440051411700017051849007954792991687458773015830300807494812567862003726936618151009871208246389345872795929459540779807942221841804624819208096402666206891420260098091297666562095194537718638403279797330659226777681775629969784629224372209691919641974093202133556754091146337853570132959072725793879813185617448059449357168151419920083393997268548256245310173910843621274157649960418558182475970286721173988318686127196119571681226092563196822786105900938310956869764388066030876640247767619685500720080380750230375062371516135978937106150425586374140927310503494814446381902860260952346666303959266761467532413880906908050227151060762255243639940423258506820056002608910097965488045017589766803915778454753181706338558860725004242253416948885045175857521421574430931212255563804971849501949080829384901886202506416495794542005028465466665164859822363930211099156291788871284304340724976487428355007399704198297232529100265878151632655239071841672858379032056426003057246856297424599426243991943228956492692769876339096173711178544291414746003229702905438597272782177585092846728816204374721979271728669926837307438055992346110972032502478953509717867460017747596676475665226655978179875351909376092359239271371060196954020880443532648067485928048521508220569122931740573282114571824011617312463593058538973317683582421539695609334966890934443239504058857366630440094974978226352717788237315666349942374125229573818279853787002964421482548686376734672957113659999152686598310391785860148244974455688245191206087825069907388274666470142442852596153950629743294495635722163611928473513943269600067621442650203831470929827822347202257012496370197420786836312796632925223409027785818993127164097376322813627777658421435757074688305950339942596477562254586766409882753123143058882804996206770846327561728738819438116774804398838500945123642634443536967132398169825707058344921809324754391818144078386615841104925929826123421020209636009468903675698367479640141484714453491702728513951525154965780594585720766339117074520820599947633896515246400043735987671203199034628644538654526632767784514584208794140186494052601078778666246317494950497913106623155571949860743430453550672596480137805143443110790158495290848821555713255330416346099787948396016454964656558751445478711111299274998025333714891696389000931996941277879666405634375348638999048015727591698670967788025153402619059184205321939310752998172954469749974153527056138440228995645565153024370138862285264188872679081441220247932842545747127637378192495705956355243593522569738215806518613259074911660031129444486982698233932667251482683943342192666898908951978701115632224627321629672052191203334055346353154375902329416184261745908388363642251412358296556902820678673870383763169015239242155185469219630542413257228800942197340920818763799851070526060366139358328203428551575634700430233641544279298688121805410187940524702125032506328847792973073369440645992987273259851608088023209826765469400932121863324363820009394021933712558880519571268592880365180866496453287835029262826968913296895446742848482723746934974755184562193383081025717979995637128520891107456861403749897934918759748739355557955955766359836523082048626408458552559431184333365663378280108698613195855442878466958700667568253850367772124335358897789819253004777617058430327333417081893604166992424413473169746351217452394304346192133917696289204647677696749568240054412131124039434692427451756199010217146492262387843824261612649846891412458280542614373955062903534967079104849809456342609622589797316299682688685789152014854990461207826201776126250356747458214232124499028618898639124360618430443266768238267760125873271595641426169440286565192497034336854036397044549544241274884323302005801260973309895783524502147718976915775368138934472916387612899939131148622218634219410603988909903671737107060715373472250766311586505868038720946103413609012677562533735043240491499293783962503343224908833212591546003652311871160083124102089246060241653790585091946156584131147517189935413418870133550207205026628817764956964611569751979621223618335469143959648484293473687365403933504429423074053364637823890820014892884236680225178920683560696660024287514210794136658513733163657358543422105022084333508973449036142849483960390682370069111484674261045181475618487308796802737118808693328781774487636301332166457535800039632162460579444694434134764528107751204627101029664786831717669018126950235982625362176299808950387866146597494666799884455838435309225208772213966355253188665385689535811429940141236643734729197652546255873742457749595196252520053609899413428460537336482997092261802040687408375034942921302964651581572899215120776115925496303554482619240425277574613706334514831588049145841755123893567213900738714029920505783613772757446794946502415335009728754947979240450787087713340538705001373570781695938359747824778774659682964409876806770698774162270238144510181439464497844347990743543391082397238248104371338473653480140502399941924076574876662070006922655942870320723464121839203325834692814628204353920089358807659613029642734635387729773340002429987088331192224230961519643053539296382501292567436290003254137972129700661300018267852204623525120405971759256426385960046178938378599609605951382588664661445251790039161770682894668541554896984078959529536724017450108233611273044886289081035161473461749256112768291115062312211066687492849811323740456769137700814804448821158337700511483278935900502929998933015200202502913029296371617933065104581664573300050423176966388147641135138282727585060207937963871557506564448541777817939670545746306804288643761512819677012758223851695504631164457811907740118198269149950140182951916132614312413500337465342488942181925544491115878618098115378289522147112832444412883319304397174263665836319175845176016071709362966537662752127387077761873423540121717251895049599956854810539524765310255277565610359393459693570215927369448218560021336787565689964415912855495516461210612617871378829062781567025470481615695536170956466286393981695246247687654904342386797565756514136838065713257139318943641102182202203834611058895308387525997682210824935282055775151124830053441338598444707003991963099440489124274359702029783159494609139965055452870269116169254157853792246978558552141753227837871527365096386815421699202307678840143156459594799129951878917910087712263519753436664323804932419430800838300731857879418945209560079025577047486523858710150393060240296256642924381312484793468255797118036726659656824480523721159389048211106639165594290074535848448517028204250056257845403018268036824075902185940136301458250647103073707966223287964772880019285126004191015087943890563002065769480877913440752641116344218924849828956560868053993593933374910106587998711078459133648181049413390793388220118381576089470447970647874022175518469635901156889945717233828469366217612478075811804448275683836094858237337211179223546591045497575900262346380148352383437480192494005086911519438344880224961148936392620882844433694155757992036102738624929752832301737604288550650432217547523537810061614659123908540901833235460621371337372189200933444579818791419975293825296617383347135858619368335220277200256984895699245386831438820975354137690337422454357036279974753040999183055026410063445720714607874517580470431377002891674534848742616145698109909133112937596971998862262231210279045589384495722691778162878756983238229753077984773956522174871613140182197498329403942900401109147931045764972690635565523369914926642561309199638667754290619100646129848916497534181243320403222843954020156093054684561303264855694976917281009772909813486585011135079713836419829761368567182232990658822640992297385887066761599262370653111551256874091367957459591955157614205739928112352453842519781965963471732763254573591954831532920288250986562896137798318833660696881813367909552195384745727107487207885484686369142996573072958284419393797101375278205260301966246747162751537085171993347005172878120825979310360175745775862241631405522254930868093435845638428743291823733507334971822239382439773726161391871291884187341944683413727489462509659187777433328556347211049811540363653902412557816758777659473149557827792140775750481437783513185843011752264299964608096836233371874901796279854899571340850201678140835315613437112395178093359872295953363433660473668522064547724746353491063129475013600852400026604653778050835116238126104780858265804714039170420612370202667542791420461834372624493844347110122725586112530900871849710099360252949996144317757400397538148471309997552119329057963077994711850967271875339177827181315631535134013802964908683762465302782420859620255390178058303100004467047131899634916426108348577188658143416040339064844262719171481929057314128047002520528578309761484613937972277770504201710860053008855753046369710470329271039526253602764876569093790294705299604175624380517423899024259031189287606298073337634105209332475570480664846199277400815729425770346104138053558430798125813657979971382889948401387073055356247417427737522800048415400321835959050359354375632308237514920009839897721636707278216364446846815949446152442908061630834365244557987505716684316571736269762145393845880620398409310275764801715226406551059157268301575792301041749373081042883394768229332288986749900901400907608109138918360617181379552502401115442026475274759442269044215065032520217921356524797691544489626217614517358496978862973025443512888173895944471300357757310644828516205866015471743188015848073846869223579673393424669215845516708031941259395034101812093466867774041480486229634109473401363024082362619890687019600132453110352802312502131617363389735287870138535717611507773984835267705259164758596052837872304556965725062000233434393754819903374268950720168784966254828983469500802912176032685469724030602296332067090772122229532887919513704830983630789788246505383337854500273207921664413404245589978078837557814382368688246825402861380590720206307111904861448653498217654409033821703558453866768310738639941848913839736195182453962266861854087026064775746825718926862830941243579378624904556877559987108904146075318533869963860613155077172998591332059371582157504196720753405293604333556635570018614340406399388688466080361776994031285022995212188448863599933983712494558011755377590699993824491145826613519118340888237416767023011488860060316975892024562608299732221953519268933046766943132745286518316894858184497502347198438145781108471957334994098553238609463653860786615259173158639630207234540230730071435204917526130713191783160426546499633693409100594098123904585578743323902899640750484252593566928913857598759985436131518888495416315857998276844434178079433911230976040025229591712071393203775016276646112600444232239020945607773609771997548426929225004160740673161657981699660464146765085392945207320706302975998418862263008495780104340680434816786545516295344669074571235478558641841669970415350355747706355557393591186132068020449502047964497863708517227725229074680860306177957701199599923180821419389602242997128194651749459687276862036460959289856180529955644698848682712017820915075728815805494676748972023458091909279419582367070946897203588644569652466732967278468951258135279372536898300457868279219757498596490765787600131879348977329388255259416295183429133876042808270441218159029059973600925705894435453951717031351670785377718699060716224494902983364962510098451023240073308132015853307135222752891909139122244458927214063107990504740377753493270494548790948707669164818060565210945124046702009572009977020241607656100517236674444230542722219603924848720299536880183160674752180953195733353905404745289550828335021643907266475013321412024446296486455242649470164972194930746869022057820180513324363183598203066522674096382230066023178203903456455824508838636071499081119125788152582855338237350810726697377865041621557804232604221408222674311700248041321392278584684920726218798224723484238693171024693377753517724593499565032091234381395845442578767613278653829031358210923847832749263226874451199099881554633697124903715149695452076871614726945094488774211599889746815903611590845243482042177031198995174188600821212366771654104402646921941682785582505401382260270015918997126225080227633031654348251884803051136578471063818819387744021423450754112955197354911625863026131260645151164847477196413177614923322483397503201890313620967776114133797301189194316593361380217260218750808827847377135116339957761980112145245828375748562438265771093542872813701271133101387673324481017582557558139539463428958577086463508873371995890043776373539366048315482694849794623990223569117319084054108441828450293848730651764246567082970297602312925328423343494245796505817677061395658627863650870917456579040140667967624248120060091265022161021509419860118526737054504659154220863185651365885487051577794883219959342034521637002978562752642738577143555610915810574761090715010258684064912460967024455798119577078593299378630324056513071072977801525936540509457241628671419774845225990097998108663260486225812852763944193592096007482574977552791119775529037051607467285386177049333343577203577715152097412322037903933568341122113878729903213864548787159454655891381924521516588787706584874336465244009332727025286822059777707152964913414129444732372784693507022578823966668746739795909422011876238010602379437340816473504517969369133282270496654960693316010915269815669149926349920993449590453299681312838223875051696690402462671151587591002959806200975411415545565697924093995404141871276347992262524428478678446167281448711380777868232705635719238323984596337399072553314612291651691382381395228432888482998978129621055398421156588152111037829643387240597016006916322189279658390336393472522238004664791658953145790268107541997113231065087444457754890233498120033600209470143957407124966997214065363233198875915537931662601138310237679761095643066959584300303859663579051658089699827583446794253282264741425128693482748377556990573320378111351886337875766524683552394962271445175354328677633484225917513682286721547993726706214645880206344481805186876294053010594320044569852900950570430976726859890475066683761252351550528114717706031102427926495316937438169861976123049018436522486020080491019936567903662176136311276080733320571592523837909670098047163315239762698117350540078229851099794376089617005831156920356988831912356712454611369389355034769363705088532039076780430721720129796271762980876795642478950247193940120363335801575797942089492781560994426044256213579433572098650003067262351585133406393144064354850770119586832008698744244932372653704958418318893115177430576834841650635113903548230636433008870575206927613831860335319294679140366302690544577260841668517250321052903465126670807384894361871033488672432959340413171512904532384777830502845577464436568872296447202306993211433648318686875958546605352736249937696859766382593163075028129437778278779975275355344057489422225986334166556203132538599503604632192525022523424907074374772749836846731178846909025812125052021079970808299905192689516500450119454812641928248628627957603829753469297486853364750196466004503495687851557601634163163711242588439443466469111211708057375863022718150158263327318487376060441440694084941261205155493982210050650198791006301620610344018066882710342854007388425882552134493915640301241200048119343044643532017585099998771546862640745872566738218315075306548691013339212769517426080227043726359855541060337355135603515270187380568761562424764753586099757816891870183363594023804095630629779831940888292283125932292169499201615600850365508776713590508552423776939982333753585226440488712316468839175555360936090582270342874023730334043126937743752204590931946812579323904365755688738648653636131213760720185165869723651837441582341683081618331768831775358573105944195872070917066735785047342876717909720124608492972955916756014701172423821545036256411097683866140346461932840835912568166736703798788387176836786289597759813642949303321395070160827787401595467084804890962127357090386918832541892943112430019615279491244953542895285339505834950981988974477097939461300409650424146823575722901764305928870144835970891662045546545060046936520908909799454174459552492816121426064239191996856346700291432465864507912379027742660767489781274596591848280156758721041623911809430920218130613096679852602093379734999298352711866206193937364199776441582369596909226560321363750558748218068360059585802032974418012784439035996873592286802507102671726484327677889025893568606581003569192924902038674313097093044695259555228153186555435720971430524012022125842461943029936423791909432171631626084662848885055025118148577756415141133702435902465002520014288401164958758077975305323465109443464911313044121556251057612390872344715546729109317872793352262084877603867347025973129436019357876040298332980894049486225768697036346457934227597916969686017778303312236527334670090000669796237728697607466697930329836899407130403230472736644071378242633784194241902867808164353673718341794086155054214917566358212532154492971146445866334604821226227517166262112059988590290089057379579573682106445905978505391662613870805468446150201525760454132255817867343910062037449630557405244634921789109820358226029291246577806560936229424188676840887241121192314006371835652796687777191113839576114632838178280680533418500045247421467087512126638149928168505222962289604734126190147635143985448253856917554644827415405911076795349929669248371638009281850119987390734647774547814526281997628745398557519189156428070105571445022876782134372245311655143253027486803582066935158014283623011554470242174973629015697884178166952516777020577675611949154370974828872609309524502334265071299874328842372122036556943189471186124530451685694783293214887159781086409357556417144899405840653711475047503768532974459329936051783020961320952277486669576425047230703284537858586917451899047025442395935506897477607094478773029466882116905012317944162393022215118235017791472607815469109084958107610982049845593413604420037514874933420903617196398620023054716515092229808484078775680059021215961448836581799077459725209929089088870940822027182213972773343132323127831507482718776839587181940303735544095177805860715283008938090472371361404534095915206896251814236714355390248583192433187417569527772341558593728423668752147362206870696655165418267781899315202966184750790240329303954177386970254773058129214944539558319870277099853139535983726638902817288845313400291044486849629457624861715362255286530143696510556128357637027145115589998243518047034918832531954636408690888160469069671528587829753198576999512542351346428501130807778369873490461474323038260118073526353645501402348572167611071079133529206128709386647187173835551864974330683945074165403507864531428328932715070685837686908999848023327593572857891394597751354594217721587537766688972803742708717782053170098101144013303356898433302983460244731816231445399114904228508732197878717589172019629037442717025681266315480553039261384823267703041865964666922961616523957944431659210717288261867426261144260101726706716082019819266220619805179777856348270818216071444446321969791182505887235202690113262739279611763481883689731086437012963002856957275615659804681504874279181913828413815083561417125413169050698454844087538597146008840455060481906884850101261708018512205202580201610563207753943170736992857523863359938854154572103681479472775877853152073852055850368422964148768797051650186060500105048532776585349150892749921064427461255669655088080448727633340766195302673006362311152174185595638918619143778266161265998483782103479357870597805957651402846485958165817118378065507204197327675927069054605364123830409458401067935245746759525837066672521498808503407294668315563291619394168880586805430832734689616031616272723232163564910862858728279424780181223389251567869304829125068596228066352901739735478331637744819911497739707222743394216847668137830999495054515590966476652072384347617758871808131520383916229556270176223562045960335951847041343265231305539264764054912708794539134138848724094540697999011934050513143171911764006933420228985837256270931341126621444464679024936506521107846629347317503818992072283905114984429793624599305018592585993790272766131132859097103130574172198682349471754821577418078598733672548200631243479584940443135890479513216166102617619217409297406260990670017918923558684452145052432100928117419958122932733963410701539462988109079629703197433623853734311498817390683786025966666401023338047550604871259950829131145101380941781936342089563437834652248422804486534466148145195121188369028439962834922916939492262572503174328376642003400618029105375999289753481707409896159391202277512237102174443395787322594338287989367680843776260881566749687102039912900968653961328033375405790392792798376906987465122634850097156390231616508735105981327061790556266883718065914940272908059410181768748181328793589628734554790090746133434967446216662445620369600340261456742828731775573234560593351461126977200884310737076881665270808487952459694596926654745255742167269139901717894377037343016468312321247222685023849477406759502228008925789815374897859141282185280474867664139243251489262455617067308088726538557826365117770619886789913980083890650090300594582964323296432050937884669885088373019362868576937757904936635305370367591547823287390596122527018102412084678353073477379276874324973467452101899721576183315307224113799428396532187840025711498601029580357250707457411827279624314775250247884409341819268225562368409520268382773597594967625294173723855459760789975576258910082004792349269021540552697578388912588049574766380670495212477214925119003562752889431624957430060203545986040764402706461040344074456894037106998479049309376396379760962933122938255387026005960553079828561878283621535091682041390241829529272589406231578002888364236214944391418489177760954308458094474041787369655125201570280617082437959646623905121640612197128165745025902826424377927746523315251518399833657951438182341001418401041266923857704638478188209918825165476965925729433313586872587175954016231752912636797739278580013729037690741263777810942722799432729007584958478082673546961933397297395326475919988808971738949856282236612738588357985316913469753417411322708229878535860219489315644501651041759908609789823274604089747962324605963839479663082000698550644447787695821283224044955388931662763938049968026444381564395563997279745490436241072609776512115387203016767198246820274592337385905805331063086102425327372591005711610474293145822396212397059614947686479998615414226901077364838577136994693646215803329967539240415434761051480419743762577282980310197093649172844735975175160500105498017135455744383535073175721002159229484401991587192434871488375584641937227565320715894301649343231955876405525823328835773247368212343114887630414884077241918888370942453230047655454225321831205726442214132117794710641609233475919471119330796113444554367593603302220254952798954335950006809561169904935323667968540347328384113129186317261056363704865690565938393545456999627353000765523987382920537417121813592766635159623070126685606237297675341595712087026856621847585810744426739921872709120730815203598217999039753795115409414537428884108675120196727697164826215133787923761149649375673960661160630737795997132857160160358419674728232881830071292534299336982733160224415392736243245999268469380083323742074047324985030217205933231845958856510898536091859683726035646046835777160996924685119775366469060868602611385627764258263584907607846427836258544935237262476226543192038725159083951388004145853515170295646655612487808384402808812458352523465776677271856505580588770899135471394899160385854874925620035397075980000841068740911478371755144188319464943777482136888795652004776379701802278592607977752491173842059134021838183582112632845010064238029578648597204770791207053262763638072103813531716373135030076874776116735610343732353960930393216712555444966561157397250359234430142098171016347508253934106925633793105607121628188591634749562300615996041286793780281379100979239591768863097320615062837300725771924345752176691510696626465058726621218687283006476522330848904535901340535980881758029222308162778322443503671432042682456113985243359805093203331772342411041797928463409224827923383452737662132945799554852319965034937223000143608803700353464938268739779944342746044900143893504995073889619293824629503509909605755255275436941904856843668618800127757195316184388655950144611817893406609547559160440112507217329981877331174381659976637630061832083250955191856444151868410556914541158887646091354855372306440230993685568493819588837198006064649772058513785076703409963303887552334697045391462238255934061219664927049295694044561174062485463750668552085510832895926246748178836036687532018311194910658856975746595786638384553806956698120175260799575406492506008618709488987543849400851594618512879238249909390035693873717738057977965394500787564811236932150133419122642907462910568835014408994942496879428381804186889362973833906190162713052393209138603865301466871285260181418469923080964662250236867114487508591820691871479270941315750625351572832752061913218430516893580089090587790610239726267778248091320348970484553084008060846540665295155500614345916082384107122282422959400809699177999079780745966846369390781706663007500533939783472525035805894606232003650070551981886518413680630012529231959089646836879594211148092439247121697479668509408153478518172020173365965091798050556839008721322633574434488605367474548071923561897033188272156684637466576598583352694139480766130523660341385125467040255346219172577266930236046486499463063183288061840206634820168974669945866675065766178162647440635657998167570078372567912541175824126262246898332062124757631613177564932062496167990291886649789654228841805686741437976592774182543830003918215554916612933882843593496680422147748702716275592210893382162645966685049853790571137855558817907192584460220395169364108961785894355575497099145080935384109975793850986926373802128498621346026289442079560726645645926683291371556640724568703423462352080940857235737437521335064640628421853263242522622920408478957906540965304298775241951818091295428758782855914959212235012395773395208359707795606249799094869084754361140632613562596968453668670659518787965395567179706203246591982093590369147107819233559377990001598362606089900449540294111489996525342178026446543017364393753738451583671602003773713644060360793135732628844450114801777527281066454715271196149065214008147430108406879178775114242625666967980624564909069750540792736184698248771691317603441477221376717307563953939992244476487152029458401569948111797533568723931123889229003824308902428190428105526986633494865093520615282491554319027464921520538855040191566084332917788456099057164745830780851683067085915187842469797941185757909399842419508794247394272430509523262889896340084071459930672952193505378413771138716431663942074263501131698746131212480585728122469255055338851998968982714979848830636947818154716113700261316342842366388108077340383494621145500968370208361310530951353364655006980197804437890883518363568725695444187381356524804438459546068818730147054395429697923194110604171196439874682976663814110705795991026407387038214897614166235533172087889847520309025097542694265269615925329535372782336314282432885327050641236779613968219869859743803452881868266806544036022641122186850071650484565193231505166213241038450447312455989317244389130211449823861490414650521431574638251608559169975078596637329538943832471563090562587450902297735183094590163517625911828301693672149274575323200736712005414486466715003080231086028792243835545645512276861345537661030238558770936036253061815614733733131566178797538676547882836966321067274141400695646810238408164817124111854129326822137854514708978685478021284865592838094947258330627240685511414624703350742756710455773251999355607069501273961650250165219905410058665733289862633507350998135061229702951516556066801073647477451411083845069577869986676391173552270174691078968346126832723210448633268761866993369341096578612632472519477610254593488227639837619643967755856185403090383145632993874713816734924933450309269162151409764854310247490774943652457086264946180964027091302636664042659112587315678174553779481857114201572550102187987435490058482945609344901055325750409526155469859790465604457821735429215339474593925342564223819316429794321605704639500665571181707559621968969447151055466931107620341666828490293781549397545551586116031834857167609307937291081017795245007019930811538172179667883995234209083099129623815610631551207050845900873679151408272116340283587473966207154604594702937434167406462875052335362356501373908507124353142986259155534319898343604134292559685078477052002662263716231411953205719827149264557196156341191074056931710946876276138063590781739376318850449393170421188539062611375514342812418496658746657628985721767257367358402550796189717019409645772732205448930108836143781727398047544676572270700808398366558458184835333281575352322757860000801103918039587968078655176831917624758419596605504573758170069263110826128314096891824840587932255080552684129338636673223667718268663321217537361534438266767894444159322091545176253976075754154722670981405087448371955492725683447279612181510866900969150608287266459625851160763936563051508328670035031751528685094044017467242290785156946209633592015247207203788470119631452694265234498044107416656263338737238889028320177782220119610429460017233716065552538093618820655613667988590922691820459035664435858873190358486800904041350075638153839633262131954040809761502648549177929131603845533829939039871712392122168752430002676133729485439611126317449841002454338440504642591479938498097163222268990118989986035758225665363988170432208934549557533241004537003481405135197985728592495157195431277383717786308199088282356652341698127199836239878577553304581036077382366601553286374305539464771884820118998605672905866505994111029662510290749838130317632398045276759898378903251284666034162994308731896265176429119660112102846149485156348554170613292277715200183953293628973950780681312952898175269839166537454111953060682108662059595535575810532355855944597057976879754678066673890845919580178074182416720455354242313836380959343676225943123696035754508151262583273683570345763730141676137161746285721230243772955553171179530359248552006110974896049843005228744959359201726419892445046750730070700829835659387036238094248876869200027377531675024828463610959296906208705687922624955024815054823949625425740505455670655241168929424676528950704769524550701514963068246275656264736167297100065620097961072389529100796489956517854858093564998123866932142537604650056374355373985712873501408076634186486392798547877133463698081799588119587787796894130030511409648683832798212376328816203270418187354561963855867521399378553169523145479666626912635211927969811253675369432875121895207398694727851193115131822860271724643445071155785228703715390454045640250752524887524917722255033982226253170433864735827351868743985171320421953728695138936331268473311100295170222372605213205530750761002732772387386322113300222111857304428791062770396151024724975599976959291759972991612626347620063197927331230589394185826877518393642496577930826263467488410450519693704996505545292692870076003993443432127267728256271638325208403201961304952830065349698844266624462891549908212767710442109388074143084873916494469661565566096792491473140328372777083915440230648761643457061701068125954282858933526265653498376496580669698979284435483129544310393683687073264906259853559463124081404200908656884758893387107066922069981430318729241895065504104564296559742444158952191529287201056212159138150249016520038830792068445675143465187748895586940847672374220253890344355599848852404619510169422413284467161608668927097016569756568786176685928995729444779258880220962205431573791216534438499804359419634284918069263568635768768673721745457892431577378631659899788148011667529571757689728600322332437418185298904264772997625729244935602813693040425580937520906554735466525497193143768857941617190530713777360213375054764832333301210107105063004207061813293695172147450472827133005213129038473102816352069190588097547990936389851668085001589935278054795221987070079155905051484769607930705397296706306616314430254548336948987889826920626382989742174860664302344062955137448304530176221250310672666898585029518931108965569581716755672704852218092939058743757646259560691543756610790480276360763526575897167108196841371743196967316388842967635967497506985868768127533431493700375229953679812122962992533951127055949875252784391350022309690916368537579706374361930109600695542541054434748908963351689411605026384028276298749777915577355757959014197351217033361558383980768693744932706277911282119540778503556909035688363396712771463617699879793065440503284889665244299796898989109902480929207457191825092115586783160880489897004883881373606421276798998649566445750644753848122385784158688232451859267239681256827444780158362731643930900757095259663176526497075468429196661363305562298583631366658317694602453866512881972461697730742526081050100865426765468630929810235278204716845143181121034552375956798919497504982673056096657569940971016112420478896356376690757087061442129202885435285908489103745868950271135057896839809179400397155477966666984854464146602562540793645440930425663295601767947041414327832295754486420917516395416468855234161540108517030607617379885709744248897288564947597982316723498659996394008992133262405234899080426341290943447303859563669736080572484726241727532108006689396569591236117822378297554097230729278884601322137434348749266839805381208701293533579618180007734200366351700303840228155873395221039703468385255430549820557779996253870626814560176007098768729673602142069622765703190392209881419909542477202188008466999853791409946159267020932344659543030777859288637828009329662665586789062521068967964950002002477618108821656946187732270991004073013835991879540151506372963700594842310659643117046821603801705504250504064422143679566273889485172174950545177541413867947128349173943246040830744687470955012687390137836811041746389321948560296164160761218654408865954031801360012031772935968914918193445888509648033846467564996275922258039738934033590532389600827445883235591111837133488727611031173145675750881913738419376622316632909287558226453349424570383845314385515543239273580691697299770903825881622932808254367417525533513622773092028699559608897869758421929040226254049506688088886929666021039938793497277011411897161617726449957460334552518141730567009068701912321216730280951150864893661279760373318458324246397299566137807160703598141302089966626337892022960580972514285377966607320429403113531461561903908977491820235963024850702010522479159964905976487165265253275427755609953408306386270656284167630211210301436101916622702550564825083873369529615527327746062692294833306292166899988990822922100583472186496528261831198873615925506013473493012718068889028267104559530875443311799605319559593496262938149684857084012588818197318832114784760054097449006322693784503580456109868585495328536628618688721366137577912020108948118980527797180259753896319108220333874676154566170332419646982235790227013036349539052086934692961468372168378996716231933345794113345331671764207156043065051789234815276689799239786175286392464010851142396307110377252936482373904770414924062510758032104973558579522830145774520325560238638385195748987734668572025491127677433932068656147188533175822614679037735915791067879582443975834490611028229910529653276755418986319255758284203390621882711444678840884150154863740416422241039183732185806246346538740846691578474251464575751414967767409805550121000617188832581583162815388265152280350754676398196082390858084193114098238824319838592544325127439130430266898617172659847639850088676786962918525185934165449322005575508187187124085805730504635650375956781043053388258273342420234883081046197724436650338819962331323276363007412061234589909602329109427034287005911184169079823835889027970810087756875275266089599838493259416829846993727077500238305995442943534017046804599675696820389263900922327284887186903901731004169636804490508301848028915453259939866893143751376785029193686646020796589850836205001023927558197994188145073669905123978898581559375363584487824657833787316817481086093134866134244778921720199224847764644512806905442487070990562928837459160522187184828404341223711503390996285950285826632808266153532176795774378285526470660473435267063050290756890870653182364597750843293796322105745066692473727599932620304808642883215765825220419177276977204892109265406493206214369399531776615784901547418555494167394329556464744741515433360520337956861345749316593434002671525985263473631325534454636875064032800692974616053641679354133185928886113916943202284823287281309125546151048650911782507423003321193189653858963623826781126504282514184589007783811578926976203996918853120939402470459229695681769136625721344469624741612515116282887084950596740297468931166512067376061471878283574989063793645171154837333013165113136359952386085173888664787684910909223475082982858166741051064752840597564369344230048824187104362546533689802662449503070742466112356753037926535361094062583255338838222867953787586242465225617988747984955310151649060997121809410021373689633000673731198465441823109123063243667109911264153241683856100865865705143954622556222524054435898432706106174019270254062789600448260431356897868064083578335805869996765695857125627751650590647529676288727216054232458298510572925938840878034200008525816789656748959274052124800327441983462754178697049798871137980977802723193093855770264358696891500263355538164550439285008129533675716201644205061092120112762611552977712204314526759641244000890952684228336229930841443149806748442956029857780741536861218955810039385682641776187682857167142157710592938057641301199373794901109327985837412945936916635778983372837090099315944989438001648884517899336847218629406471841501160132366947982530146975940661375198254117451326417451905990763834528406178118458454797973855321119377452727371878571548855084860674796389104611443289493856650664502766051580607097822001212907279284312087838587667106286545616567425990989409054976782131673685723542741264435678520313274294432640354168810316907215435953308177270837672140494588350681566572301631767614686635877879524650773662302793136884950232647077970004766844091282240891114338351100147962762364170454864162222455357947610638114953882558685130345845682305803564135222421588047495173997263343257614317182938516327256579333275885348768212709573704107387216720105470354113061757930362684228187416517900271235938247995296168662793172112332310053281046085535414856654265132653538289856576851070926688671949099223342487015773121459478326184144382251621761254676418375173277795759993704527473822346139636170982245843473229443351275336525975664186595596453290392213084599845268446627450915297128905411832793415992845512898252416051231591692061725465055889486249627887492071249242947310278147989095631035745841647708427802551981023629092676292387560443106859923833697112156684908518289399717253338925045817470301974892476598228828951091796430693719583862776504293119444414472866054513742276359381372862645720935162254883310831329111310680144283945211723645938697452220390332219335227560066300280640027968914365178758725768528518596575134019589028352491332600786807422171197404990969890568840221749970186117486909632173478237321271006721238053459128674980995680686735726534393600056825399011593897888174527928296180834847878663129130381037291200436221914787053284138253743420698942419409856107949524272199775814383097383188991821885431821305374493102014304412837147867870398049412293089416387159440416137603514498882163846438205913030693216536535611208382659899678068540894213430541700544409638926749378085818717963456949554470843331758726198782739741472030171259029817539791394854574877522420643201672274431024383391257537164498572381995319708766729385268006473015962227172582891010541780115306968783909740496812622428005951995406070529908410622710516361042101495991175695671864394361474276364441912011647279623555860786638650347572592394784564011472407292717735635495642878982440565194028326660899608512645714924107236849479799435703705288383853857251496722550689786600039441627612820810081611045391794699662677087970137455408427070125068303334773789068418313546396586174059331997272345454606186899925846057630401371328486277299066688410195244581655685650878033449533917476678067200368966199661559528934354571613341396037824103146031599415227111537153102465125541264692815704015016358855459473553167239425749746587051813437126212197979375146381194265975233866383420845536498596649570387353616323815160326685155050104407403772047384407815918638366499344710058650785709857052982212158916464705069263340283657110628616424764897786695783743946084980227220875024407202788979945417137994685285739253467493263996150364874496003259211243360362465444517507449444656542518050988130798665913573769198059861327410107578245543181734473010567195867369792505467442388921655898515710130745607038550892316333044587012757965402934734007411585807709953514459110578943356590604568345798950177048610318952302942928076730418787934052219181404504318880704346479016068597551992418975406939349303000481746565703912788150944547048658902294802554450120986826961126934321588107958176066792981387521893058203893307892654394504431559242456730661127642543734179575792221571528700886057580690148496162505858299605106185051584799929867787249851972096253818187795390416677135176363695219141608179513053546887483143904784767556240561606814687581334043278938511714603272061810668027815903812811621664689100394173954956307154903457221810156413775166848076408611617357835201817652622860617748107291495842303642086831537539990272188872442876968160720898974396854193133538102647063483771664476338624859572366181059295393276893575962490674067198070791204336150175677715820308307879297281956005800467432896083362583627481038639745440615114670631529375667234658180272259169208369566699070257101708888393862900548205122934386176194644699538028284518813237475329352794296337755379072531532294653221359802050856069253544968744135715360449640488304219971772138043437332167923867012157169967829144744426486349854091283947890795773693299637135587337691940134399561864204365647773320205057659914193010764175718057836650835362981945889421020091697807881030834755553441923098949292785487634970890252905363926908962744145868525329557610553238335653854872572049148770403348966844192148065168096708790281802471412314226348156584542617782104512587188697498015392950578426083639464037903319285396123589558883981930889917758295894585792471296671734293793564002015840381635266957611578647908951398111695582741325135876866809404704007119663265409171410857137585905966621866848770107365239825895498342691074006417994116737774891540675105128060108205497277743196525415309396059549016264602581303938171400804302531053869053629640441796170163421402993740474384313662911492823168496279611300929230167678934713664049127657909729185933408046159998383811225474632186140933329939324953085180918547320198559733594596439129856727093221071431690676468103980932711532301818742053738160935829561598369714846187076098430226367270550935034319430991393056238322833988511489051625082118438588030000685174297954182561079732694827795821324564768179773125968377794702172503571608486253086889751487227480148581159957548625335477480507150580575785632725355256775866778586749408149490254107322472127393716009521748912136582770193682520339443642870345966524773222734465092475865231451205660916823513304633578737794810813814838124110306173184492447509900559456218969708390845405804708134650595791438921680405568033941641403013591462101079238651424072475682018543586910603353080676388997762788215383064401182791069385475661225323934537813816399952000617791428088733386423244934515517367223833835088974275748402756116030314300768087869102657132968377076014193896171092247978077662659869532475039546148398737916994349247970326517323296924391952953387017526663683520919299734456580365768900950406556291869646751394659250318194289460599120300075679758610404781777462358449789724850577954444711129619062137829001822755640828024853506381628801008154784426754011124370788945133420606884350964563363792270139314352875044897235375863004570310739641965151935588423826806722245752408251761293915021696666343398232179845488810173501494187159478337439388597732158295533089951124166992384913737113598623510369570438383851223324023060624404546169440218217055101553334227098541748458193359196120518864563019647608402467031030421061841600750923974815707889844302156460413440715768689644512052820766564757732153877111822800458144104675009697626725137079014147543032336603510911699410165231683959326680938913410273019625717277110490753428706456365580605034983980684420350325758340739669275296637718617658979638156534618811442203241353046884232062318532588818296349672280589337718547613930470718912280378830042927214292524219450396819800343978065701899187018275736077431070455111963618585286065363686217749385659403979020945169367175509305298523196707537866079946701483673473524589920431227477929816286901727922313820178620504099065551458208371548652630662686518510671433274829805529747106770609754146588669750673688468648162589281233407555004846004909912204847590102165351780714095224458314279939315561364715023172727040626836076730722539927932758773303497852512532454367439398599181050845812330906717176602938237291505324010070471740460783558470132724259558638481789228628611942364777867098301186358407958269013306058687484968284528693826818738364363077869005397302550923600401984751768192552297195208690662493334231994090486911954347104777440155921266292358250035412688405033373471949401793942109623876194741738199520344744876648969298860982738252998106937117248996896259959579415037443146110022836748144713083772936813568212377672470125095972695180587625179064226023990486888245528823032579757376293936110826727693179592729676939074555731606532843439128819302346596220668136944829577054805932693426457786321802752500096569409542579125170051439770404530223105078579008548540329986011484127374836318443291993325217328129208208807961865445288048144930964215570270972353055854931981796606251082088264100326321612818584905779476318788963672941870022078553661525761247075866930846235054329936746545320994037577404728192943039713695657585833623665354977816541169772188960300003412985977576098097040751048794960328692911580942600501136813939872880293819948567113277261635953037687394130415286344582117809265824714829636033210343036906717369732616861892466572034748226224514241478791315406492070391209574516146944066595093229673853667699553086800210835640205132315106573396568496111720381579312483454386318455899804290583326481542141954893032897262969913981238931658994816530925175075763740301017533061727004094295872757242567462784157850482540479418750502471568969822512239359343886645534423011715980161895016958588903178887709509037837945531199112214401298582751336016594648328878026207751773821427189791309834612465235009293193257078260993847830034119318626593104162276713116338859700525906383914000916685641225351207914558251750488764151152354777515146468079885304705357739151372220407556847585625913635274754993913078015507324444389485158121592551722953119940420711955372763190312097704542034580411101383843460895191911673947033388598881172822019136926409288251446282579051991811892398528319673710723692022627514335601653725812010586023387228037184392688617250863065243114150132864287958803525423336826253562410549755700560762885727086582328659230363769708358499859860841470641797196826658142147386853734954586121922297210038014297933599811408782586016591232036670679316622588142598549022129327792954378766773459424596175848044952071474247739910182470383237741291243494916437983776803994467728927098083816652876169425147504298469088288595709094229395173114687478994776349345345501525251558121323551939996531420893705796782889635555437308125584986640238770977989450818869412300324364433758675575784440610666730814758283916528655143694539004738140766549478767764746786669823871417355898638568441429902215184156279257882576361613538833909356288006052501924332382689440849306436181276060224415902386935213616290336594120044363022282473611671065442420681775220511844422385791593460042429548448740644655001380126909089250022861440115140667768982120756902918930527757844517247993848735885078264463881620784195680939013511779401309728674672423581020641858476007172065164672698948111044883868350469791355473830646516949209590907000657904523257336181193083828836416464021444801623259170817436269807359604808497749851832734815470496834304127565709789538021285494957180498630182477363275046459420555262055781798774233079256582218096699309789215675580668500633943141857118069873047586368462743801069545597888518841670832845760049081657702057261658084444706500150859481737092909932874085437808872046692588898902386686096277779407790235159332237142372367641983462948697329679016903535695970377821927634183556413804045675806109900600467304511421784239165522342051279504514470331161003418693656995424890845569399125168510517925712585238386091821262662070241998836105188670194262253492059087220976625686496767209165065756587050258316069009966774974179008517798963908872903210782766980279512887871700446484717533937525025691537348986829467772601250338428598415569476073594124185583641969450472717710305357690658628556239681308680821873920516150806818789021749700768899204046488143242536733283824219828420157394321138893104178772979536718554992286894273933259031931055585494222650758786815192735231210115403950185349805655110668816254258040906573341586536393686791904901937140389899953318421239761751354384832057352758423889967540093463615462844974762483539264462574692376224966868246683087811589382526243396082367838737696831439304107301706591650081552931769126523659618359057196595160496950454749439234904702811103136661288576250227302471992186674453477353270391763435186534433770674633171674460596130386539217174349982191829434099515305063058541523158811223456877309743892768739842194737702554431791905567516464859085559491338434048948546250883886274210619552660030790470231124225601040874218538679409950333113638385279184507863328183024676493088567021973608708664676823318577722492625895908062620046287759245251801481840310057361491569980849994977924730150665151857939259635240370347077198298663106648252164122859478342294877313615938999818689490891591963800271848295438318257842409475218213557488756169284922622084209256748901295364447733236935329951836902305223096362655699093071597304694296137908925335112340900406946443402667531091721138353223188857343863664411369828798609969701005406375495339897399712462409694916348592538390207414944776615830132364677647560280849825124424508504433625509843283739713654306235507023703770115545430648165002075277297211608241288421021137603744452671799760698594569293303522262084839684799770678734841124779204817753862916843984347902103096069848232703501105363833915823921848135819157281928303018629154221835965233420922843645642698326588631537685689708909465510711583806385187893668495129384015109619887233864906268511473194758330587967146462531450177014996632402764069289901796555334604386432294037779466131667415476770932361636570725130748420860706094269717658146654910963903477969440564791622420232285525716421631847055120304345742213651238762167890575929782032265103880697900187499253877298284000082027773606268186202427623260811243879897150281336642319207123926658761067072166385141726946028036347944046146466746566896950169568736882999234694055027759463999355527553825641541640951829858336426645340717259417497674779210642143164153882975536996623364516035172294228168738857414071929485565466126655375341103412158952727792512645209059968875181552024923821131627007144914974373509826904283022291198882378473489542931623529094741517871027788483807554335356221025439373707280709356935518353968376692656142949214882356997441021445345216976890768607419534100189871187867351241509389885459356065703220159900243688953062513284173160007529039839206739030330391328786301843991755535198584512749052779603979155491112513569261530350502759339098328135954148501376421581663425765606098199583936200708690149333238300851887947343395348127086043618637298925802909248977088629693149945267406541493011332159547441255780879585458242213272064833052517316554068746939551471274575637137674911914421774693824040056631186726338782198910652609301044365734752595900957052657318484152287994001071850214458435883628677275296714949765778915541290737683394953863817579385575204505737871434698278723255139668248602985187138485057070746815569147613545051869237939614838905225172356368422934161033686416509786161551124452565191204550005610399293820494060748909926892888243769184429838563592343525288403675437406926556856362891780333710796490729360502458002774625010827652722541600780759311013553987289969624005099477471340038330818999884295979230271465238673202112391534205883298080563962139736914405027177556415469750871002598187032959352172961325326573734596482699133238002005927284061684962989744702183227722518554352355864835443777841237165744017075846763725707792341249084833822985639793426440011322752613164193565271315675351167927164205208552157842517220074292806728156965402646080136049280927870140061710275465127101504153004972330246848730321771931450137463179963255952028654855971058762895295209567416124203586691714864315519616570376610274453999944782847016197092592810071406351428044275860593084536119609634108843583504060206118412919310396347817210336305591387432340163421293302832149199340053488719551711155326581546211067545060694543535366007982412536681228357641273946653064551740026389119051341504348585965421780516518565389150779800368142471296387498942671752466115299148976536065854620246482104269283219177019970179795759635386496246443737410750391116076918708208550934516915863862418334290400128832906511394928237216559588729153942986292600766942351550834603941299773723996145336439235243461196929637259747819287595449051227019714651843385571870786301619649015787023699314124323299815699883747228286235225928199610654781452063800711833683121176310275412031166710701867397765340572731072246083371514054484726475216447294163647200654280251111794461747435740185587525081274482666647052681837943822981519327786959559724355427682978900536318678655744514761254532330416246143859805270839492214640937453052582983651540779982444202974679160918101507522386736120858953893127036758038967324433251129486724119617718716440736285958050047027535031050790351118796287399386255860084539654381405810990251988381273001588833144545273616833712017745388093050371975230695828249130885355748177279584975722168284644045756783988261968592689298695966881715963745277330596337521554588619838727986929631024086823529332765493795256010708265587689405329843353011056346214467390763785509601111430001669506000671770092925651482278908390436784303323888172399997793677024534371758129238325928056836106432361237424488577981142486697553027560066588588983535039775392497821205524181441168544122081318786513539644766920923612429679564103112506089320547088828757643566733835844843432858231444310194066067771636478792588804641729320178889896739486014107797205853368191175850421652729825368172956204071630821776921560380344386575080688668743858508955347336159110206300197039313640381425218521602623255488212279349857963644026804416591935391638842057878816878504179016102023749172673438734659040589159056550062929150607656421504441434074635765955127597550884910318726244189813971054842708747829205321003728773655321121163694690477395963990950735670166346662876134901586659745100315470311662196253655465430195565321386892218919077293998579007501281941490652861093134822464965716982504616628912968599170681785716920476163928169223078715635637598272120575439688117264583319221364488349705206195820176333056369363504411902084049438466545192457237944269288752052133307513193692335552836955389395613141972420105830980226670510829386069019446223662015831610201049169841821898812827279593452646741778353551084049573030435485704445013468698813654751218495011100267319049178559150347398912554340470499439247147210153488603895786384603545638402855005241491988321003558315712153504059609491277269230121427723458431438772201514246065072163117208717428209894249817028474001090003512049652452974919729028318057968355097269394550042890561179528777364359733001091985050110747104965814655373555091997795701349599594334092425693486822239684967042531343624438682764125530995478175597919627981830388931609566789212012037807987863141498852552254332272102460438364154082135970561856638136354877549164912138359549837127885260323276601030759845778438060832446095906724115863458038910782657444374069691699731860175203948734050778561248221374291799134968637386968340239151166231537255341599342245999796947100603014504664712729194170806726261417511164726146309767178037881242027785374369233185225642210894005965628338035062710448224499175290979287582752092873159148090839481989109718776933732085947603436273257022528044041821629978088448347964749875286878522346425293552320480923493163103832562968784112238653218861810806141926143093837802588003695643009994453351236185992797111366094486345835357014679373470401500235543157200897216476882900903539211081118422476480005297534671372473699848316317230232826085332650058715171457720587196865365802482442220607560313650838072675752464764975116611501877968047342223811151669259660465748530302893473998026004000672632403990920248389304421930540427944661477140268741931459060319978805211542807959800451324039923681288926932150752977372064028556482896102734684881475406094752380516089109111970981308314843972463498046937532820008208246462894003336296026683171471937542325285301913222421078311520296391974714026632184211792278949850176752113427697900009925435742772857513240929969142256119349526792906808628263741856957499102472216449747851049669387778306381571496081304710513534144476270887536052512078071640646325859440205188271709765278983040216778709338053550464934440593265912869934431346679033499102007583750351545823876050209933317391914018182081025442338372111065200595123106342384440899487385496704327308189105457801065230755849845535668040943850363973787244486358020607112685656112590377252394705762557605592383428225194334369660462519101043426379337348445563123871831580937086169951462028804622130809929523755281749545727122460357907591378074461209161033733987183343257775919487216384954858032818951798937046555084240532823679001107624309042225796427513767349754186401969052013367960048314928621724808189320626122422326993872142474701485711514642238418293698710359756163133141428648996402969510794129696742719701121495764971622949526110505113330956570865817122875671084857988377577521741238369899912401882049284154345291455285350031888480356995161580475640999693377633791665914362883471666375360246850684126679761632214239015521444080967694051814101634333377025279319056344136616768594757656364593449374131103335802197760824926611752562910524042313944116978799382090047980260681128174568709224365253145134296966546772804697689473035332887901794580106663796785623160814891909914049306575154061275184081087415907670456347886627010537562677653830599879028341369825504103488017591784332577796596768441561170001076166179389219416302198947895922166780898083553906825784150148819482936654274943679226810745698268581963820438911250960208390634719094169690675137096968168397058484420385363485972562902400585219645602596220730205458025945804725831493480176376003069312408487760920011178141347002421022313985164319774336549803532921644424537917170650751823200894949995461746389591388110830601473465733794624128544071972102967349214614988680070780875750539818386172897350384005068996626567742558351690726238110903179534119409572812547904538156648499504667594756568414271910177391411246365931526769947735411109226168565191188013374683890355665452559375883194777845749140305452873209694848404487948194339288640495718000226669820211425469063727706780705397128235992824828689705992477032618863253670513123806844199627189399167539796259178902495500819837932561074737952395489293752729701879781829319258672693578159543418191235129463709686379557271132372477137932276376660242808829530444286175689110220220111382201157194846285015752998288006854086936376663535358887002147081393060220238978871623564390780374210478426526172593097288951951965787091121898890482782694498080936916620615195217719687010360500029445327393639828263881804882345183843780299764570205227016349335174340306517424152310050329914336607436520623050324470318438697886366895623301154634053723205785442594503070903813621260126621484894472263550160384939017064084950974443692352069471280154660376276378299462723841338175615674832580582159694227325528914161245231555453058490009260785406883299937852012401463030273769193161624575358355575383258982919206050533724341043959097177707712840922589872703077786226910181675844438484030414634105403859783410761457184932300311469645621807597825568027860883524863548197804905154544368044772453574944833674140971522027234774792185443118654614955624980942866142653633493026795818306741765724712842583762516234486258123197847160051991772180623643699123649588356820299621148257248635949792674806893228885310791881031963023591671926704480412238126069178191131941668273033402144493484382313026818438209512667616974451943677270040319724933119648129544300426673797284109645153278900426371898048432711301490297707401613460523060316052694271724268822322110629825588585402124187744042861028593833141337492954023207004091081349609835915533795119889644228824105775996270373399659868208805718066691412915546450222578983282017865313443757486316069383604287029093325634695247977598484905774368346464795893400139323669317260555513955540258991520974688908134979003736304741619888554145577810882453876690853622412181331331669070806982292571193318552513842221355872488529164488758167149381375725892437897523573654131066592830400066525744158427807190996020399289997269821337355167443853607072774711500196084311923680092110853407204961254753905151564562382345808851603309244243525913988552246229852370917275996470520089180316563531175927320844229159239781351182998797154517373027702372658978334906552522320768128917019045431638845197988330350924383506733909358498631370024685073237382118531033260583959819124094770748390859619846707586676727924501823972617027754576028142589938482822015353154992039072683138581654635971911611385065308218690582109664235197175862570270810313252270369712896952000768885812971467632470391364391685043489089491951850803370611115812817997246518300033859593431598446615287558030535123392758212916441444444317360580778208827674173890400850084120486140529171369584045239596556711025625027856409909976348681435422384760442455995550221109640429193972920994818293341160053333956414832726821526926020242267709668340419711660068636611210048892498469210249627875856454068866107699065414741554730303246083613411795611140158524945795213299355234865721668022922755862822861535621486141091581153036786880589746920776107591973838444251200082087289307433164013982326659823265646395693074217685707821813239461802977649241667172507249734931262269814848716501133392669882763849439043827942498649172624628135701065443733052852878615814261112271446483810025204516824741925972344160752194217298965100415085089693000845204081834258946760154921484829254335134824385591744367240193834926193123999540243237835839824812690561212951407250858721876460759539920868275098988481213312880626283504103555779306097371411368371237975384151735401655074936360625575581289352019019595116151572862331503512929108829824598828788609094779969341243937500968637596047203025727439493472743719501292212959242465361403441156925027827405721016332070926218683196740176448882978618519708511126493229364024868391965212135645733691204757933653696997616830229347654413842067803296996343906602609230470063937994720990292590041672090158489316913328543281859178385619388956172387320144906754843292972882571098872219863832659047963056329969476651567755614421307629695135493358354490431763116780664491752691406973832440170128179197906932504854474289947098088275073838508237162824615256328683365345445924464015513696954285319503930345878295279635860635268914226697638836363685958359691022855698497647248816341881604582729647268907411053508974462457268882983016298448103685382014124070216932039390555186940048675754787641276194335352638777502788454220870928870434563389284940346332647719025342649683040024339985047562294473288664463723905947011213772026178884115216601305482279651449029050194309033578430237721614717856299948970539057759380023680014216930609815430518576989146997176012979117577673430624180728728781499895171015012898484313952006603431101804150742316807517395621239862841058331185488171682725549452993695627018674676577712856005643209994550820353672729299261524145300143004386748188262858165883852804276040116163134074071346108715797193377879931417509400422485763272001600830226727757200299954290377525256336770909857658448388612547530805177322739279410083455572930217000204559941243553439082582363564345396154814961718289921158363296053250389623580878642277695166899075129369274885233716666776934091111083723855228084975911859244798089880679492520200562825523210026508312706054956420407893772533734814944363474097779846668203165271246871951411497343838301995879251846227256142412429595711496795136462749789760933136997457298535279377413129780127594403926041034812925541336866087646612469750955125431314349626839426569625062466356901368202950727699464003905291511382739875657687221611404897558936129389793009039867137288832700612135241262258298637104423021792091338586134964473187392784806922697472081491109103850110020235980389307701105575145155850454288493884844040774007749938117520313927293012307302313679874259965936572604328121673335168832037554751993593835152718473873120274291802146050507276956858145897427501753227914449093724518359201614404148757609072360876816192873407570495987871558965596574883228664031352908527814746105017627953379193087429373790522206270023790846329109647832312093866406352832601013131301796882981185431211191852964078676933050478470029696822389778280295324865818796022179469225325342319417276485689926337022760818631187668282843824556339069679147557807091506748228889786649394791123519555616399635354599080740285196476103161925037762730666761388640592136532211331217901608502189703330332909256340359814693305362687166884038204518829346926341626217327839650025466648576428015688574116301936821764454166634482054930020852369558213733135780074059176969618254756939985259125631989720277646544960990429074898857750568325352900421792871882674858120174687400921981365043294951103824893336015566670759545674700492414790124902459991502368049125146600095694092455343516243171850841668400981179033492849544191934580201282072575577161815593700859911254779043968162756910857734059124719347547458908961360641169310060774803047611982084541569143990624364903991608561188484359748411921342561216513771008389321356452681433860949576460582739880190845285109474372205671900677095799688219766243619415149971972772426407113147798025740989491273552867154437614076076419868594753233043616487549255890745507565294304134069254343307480821358869755116285411348561258523501873900983633010407763086207519189474221682167352862320059349784957477814311001196631998633481458913534665395264308155726607167784034246879195667261768469045695647645274303162430996153420219970695633321790049363538448336129630568092813187473932999374031201775113600886916094277640569769649610071654226779445740002994493976186029805009952408081162410162793849792066769047589251292220429926447283673308175278657248352086092043722966788644874443770267118258161218191310754924386844333367441674881412972671592012545120725487733433504547037145387134359230898466482501737413474462164452090755526417611574553585122535517622002195726791090026286868660380847806607681507770369478631048840294582660200707446948953489973227509339693943053531280704541768140599272540388237873870068339001026518385756587905246945441407433756876635192163758764444310578798963934437600156633688549949216750863453454330849057061917647588007368540274612089281505150369995460793772519920062486374435925929695089775362355702389025265933449574416183644727421460188142867836978260188076754585069807087028404881524666825016254127640305615863022014718018528160465666731070538190948938292342507608876395555710662734844810579092257816280376589589148098651104407763865973313120542044677362388598981822342573423634709943607974991709966538992162341784409586898029615247695181342447261035170341887035416991853254062496037527979554432655937821988852756995974386370116228602533215329172404427333421636464667443713715976398934473304290667708927742866510229869146368202283032084562422430314775443914439997848359925462412905157624665110759694063101906029165047214925393921778068122717929521425591427907648094614149249225316604641066996150933511716009773671656440618736491545872007923044818797023837997391418053750388138103372396949156795563378026809103219584058175243813749580252872450748138503202604743812249736618715376218528883626758160058953694655863681480358368520776399655863581225900369728978767366542693237203142238473631750804803392251819687784853559051631332262966234417411144875044634595903370540796274638428708601947888754786187709447738131529223736239718083271225352848560874581129726675836053669645977258460488916664570645330535846201031969282550909762428716099665439689979899295412961774584424973374728192584512751240251516308862245126050714691938389817035973384625216468496539797149653485588895903656770354141086572652072878083145253629481548727853250772917581154360106585371637323389143299921181742792536231634919521236000534567327665667945396833588788627322444340949681352420520861439620991406339402910830090764071432311458082105861805536114045604718568624844516482625372255030043993090867540812929587255137913937969687579264916206749289422501118917905362971896077706153012349623796466091539239368310286108922258322705008012025086088642080080778778995739100415658027133161537428138514478522780788376091708093340605578102134003153174898778540532280744759686018227832750323040245988179375175227876107134616998782751294614702397248715046358496517487889283026885157200217740589150975397496571247126921293215293664762537117730479552466000289360946598699073144216024945552917672439388352182637247375133860562414215562821489413077707998321092310233447295207901877145519715141309680184523667049750946071276108976009339227709624917866339659626442754632111293406306361307450164833027943697042711182004944560445241415635255566150714412286329832504383950338571428700998953506723212460057166403123576225871348144790812129601454630845056686655747321704505832321837338293996958133881008213286889271664923815160059791381135761045425790339590829398868040910184878310859962752212797901181713302095612011930506616367589317248637593969697386882359327233737405087071180595359076731045760269545456925578882055780474059106365413060203780504519058185264378441089689692458774063949001726308919319912234987718378844455686872565413251471140577855609436230341216602761539718331248523822258123347105940767265992788093646529126823808788585818260291993535494547726186876836397042407290487883824238155520824860807481650675399498081460550744869471645935157540812363501072791150599953077174238612767887675767291428895257907783898830804192185141991180632203426709665370086317088065462229790395338276604431503379367895126364270077074544003863125760619817926641048113154098597621564455510270677235841262510348361131403366677341701346637565891160329687536261588550990609108830040390926967588811689479324114784085155780646001579525447225875436078808241510061345784997188971930179108800756044425631349653511995868182369997088259302359241879406014428215006684425764196965758684994414759804051054746064126994365055094384501129009620871450827657806578159494973607171796925281790259608802457474919956100041155605772950439858180312828534923497607408460592564363965112402365420510377474467280615567772831016908049809992011465082023301822099847005268545449383144070712924893687220539513002368313104477765853950544393124600856760349634707994709484123477304800187434166448549494459879412902386450756977927537098915845015729171245122477132510480319823244754996543840742386964605453480629715676409693877673216842852480450665947463134544143393601585461307974719442360377923165928283547627232055797337879600862301819617603167107801092150013579675879635385594034072640247460938977838623828250659272070411028281268958697591579437532332938495948505572815998409964113024763849809672677792828776861073327565426341033884902510963594182956002779455596442359915766435303202142258523281486677078009533707226464194779137256507184417190654190617468924166664880402258030817490076360155870447024511484039890546024279896699958245439892100795708279655844614578545357987212581416519272491730931039768073765552524607790491173669992695109548349603489401352278568692128086141811287742300277374029507579563860999417095221597145187343370200363902689803940476652368411181764575228789871373766166536270583138235827170762281222458981400462969991241436857672338733278953084558279012686988645299107762952679209460367515954326165835839630023219603672721521006291250887686954791930646041424251815267034048775810801764883680675646022428951366068280914206157556446724104199980211402648846723469028859967976694653725042713030417242503404490566583117638124390445842381499118081529823173424030127904905678668581240924213360348875477847548258589733396109247776402509200379990007966558812231706361663423571897522960382036521927071969416722940607257484092926404888856947717099495978344164897872058017044592939160406333544366200938244412082422086557897080377002217151881553973086730380459841439396621946510636077419182656283216808148125088709444853717794579750454680689218262113855875173473213956180877283778258514732195816273000218941237841670632181453757023960590534887097017024163377963558179847679922932900680984437228958259323357409782406772476249100798180062753402320435565007215044457802896447508743146501470068618319873593977373236340421964533052059213264784914087976740977299891019662274929591216856618086083306431279068813345475741665035945849647328492376169903576459791520476693389126316351304390840378628902510342742172633594977737677472853853048044007002712546286853060283044814184673150217841651433105218116540559354475500484604704338235210843652002229853299329798478967532967456966281780576419982211119711181437689584125562445420365165833034614238090133785819917406594080158972637906891731137438697513557224306855573095160452504722311982444534589557577790302751571357097331710101095746518849295324548868171733537676757078928644815059068523337868629535774616741659119820322437325855488782963632833689659651437537497181130034666128861251333034721360861455556117093618166936219569986994814670897019403372594763111764648984771322332166150515978845373679953800464689799787648747299746553538629509993858873754598947913684821333959302861591184039622392070172529371357336081679004638666522089910895113983030430897351352599947056436344593727819420487244790494535021786600950948946750424523795327241321650995613875058295052151985624459330232019798818065461895154491517899592027389325268960004815991214398872478055972677745819332776655455818421879472807775885845181713895248731246359754812381931259917507640099838842254288180750015956502634421711551074558286136299374737568405991587008806340069639316685711586969922856141371478624317821293788075908932892007453355872966549653645979104391225867924455326792176830456323736086058870287692495536733477695886411319628121670261180219236122751675190123641211973079665253039193363148294474739263678998299722205288157970552857848916473034474227059264642989252194393225562177676214694342414127794762917694427467421712465829711181779357843476243656680579329347289673345831159107387707823064238830401887554399941067628468750670116558199871868556399186864908603942536735030047945360751057353267219537821300813021925579676911049869295761212362489644669697753984930171134022917389509262136209139049080069483467065825491005324859889766039343657904299939254494747586738769259244801220354243969975066422561605480733932075126895866398303612528092507261157919319235350013534525919220241860605498672089895115621980346543480576680828787400078786619732017004544188428321424686778671919203753457877678793657837676188453782206920353994842945529108175598453378529231463781887144307097402489032568917555219144974351535952588055197137747591795043529621157221680739001311201948253966198432536744931090700185230216765732406396289129287285006322191924078438950333568574974205134250117773692414868463487871996549731929847964064097635820406115381251976351889892517337834964427812570840430620231059671754545837901695809558892282807296446255778661661413827033788887008885894140602648726240971920801009304053040467003943561755274819374256007418620148707082931405902493256253396925061049396958320260150809605055044186982047490653119698814426986254630607188568568197734270889343349148694345355984129850123316239364979564617602781759861106382996627099356460078873492032060439396014636496103782742906860212422746597437130181923746502177952160752371432553948571679706590693794737300372255050436910611386236946178200503794465875190704783412297730737803264316560930717740938136087689477938361631709362308290826680026450603855920685979744873470896742637952879595687787670553132858705229696188474783908143910634055859659419706862659916387824612087489483147746233005591895922618237657341760479231136048416652587044412134571381628594756447733242607004973995557137946167149720310584386917156239101596543285666134945632814858595309578207987543106441520147119359295211855638562938800255845956922365333384814115366933343436194081362632809999207451821348997160864676310643090145730138017330697967926231431442164918832835345548621016367908524303557181727162215429006902686250692534176566381654615620945293283475410629046874026506546219894638997298266915766572334308828897153960619950475094705958196079409471294628823842116484114354450762812140451754592323894286477588046496485397376060966353682390549855255369010540375501028100727848348308999064080044773613466468925111295909793552179930091420933692827456120026067214711252156356160825138362372940289510718454320112362600717771476239132718118183845205125370951571597653430630076680011501933320217505388897915784325293711984087718670527406989400532190345848806657238946505438147235549955863118133476094102263319424336341642809466982657735732160541010067115741469708685993973985208759283073493084824120282658195084743309148404203864503250041714494134738067303949561964031948204339222651047424987821523909846704118079505344646598079917531176276429541854719618178220035390502970253659953462715410079892154812593837999558629186881150124742882965549979199780441461233600792936925876576938111760036363041790111186536127720514562454096704329156341320653596922703194054176369773625637148030043395324814876574670521738119083429019555056085380566084441317774498554400760361613390709803780220175672471853621869741635180445273000915259755829713206995173763774299829777495328932779993653681680635889250835910734409350340915385203778716862406231919188903455167129143044487053663811380727899038688252823923500079099322893203314231306444653063714910669490770747694401654350919153094614405519490686608874169629583155182886217219089469372453460397307370639902335369636328164780734628525522585142306119452806265449746487217637368615514204630315896868885058448751785028901975243151187224522305347299382834446964663753044963879568743397291882430762448281874388738514922095969874571894859796960776306729112548213547288700465890756377377423132179326642420879232032070005415518162338292266398353190028002929379292293074504337909508518690738780701521122976151272600138335252930173833225551002245431887190559974584017112511633987434198843139868133489140231778945688219708586178260214603451187839941509802341647741832951871572262802554851889821683750497347172888434294719393285258848098634816903790732853946822551856636318548828537816847685911731059416651826950179341373111254170083831977840599297796027595103047805227287168217780445260242211850858492365516472312450165933225352001171804065755136792326718033448460068485284064168300306916965656495707782724964504280431941797050221992551225605876210468207254921138991497279847945764127416367268856349024262619056878409335151518027844654854166585258186430594511812181269539695140102615458704447355082167637016583467163261223314593605559206666031637798638838132424587176432338592916015261486555745765258571060816296997797150810480664779319866563495894834132948802860690323445757249192574496404440778769931449353329084691809356657055919129319187565531520260711967234805338768419127760880496854280665729831664721212441822205397356710203203687779863921959210535138150847918774266734488722396534015736103991320854058931871969047144071396192128422957484948861055172613748677316239665187033906737197355105089347320584862476749549182731360819341694127676517327436268018362280932000748177451068210584259788185814882681595646749918611366091071292651186441339886019240936657704997395973987013223685560099059269195032043362137901863916557233294635297681490641000198034508014977641752409194421960065745016343060603578383505044360907884378038520141882033625383267322434047507957680912676800678372447279577108887571038451079582668513085780969867011444377191081550047931822366478232253175849490486724512784968236747416343253348242249168976967143741586288391277490641060510154222500673667561179430386703358526853406019467406361018539474883790772518394016647648223915100818969700296311076884096059909259756816731276171552587716457068059201813423365943418787437760387252088334008011730288694225870065352016274669644959499834343973182828910897989524410778202251482949105864918232663390562346452512530317878434577349477217290177263457338424542475344031900478128488603374581186270579973740192900689056052462401062402989426504487929360874266429229838619687406915861650628381742816523135582142304113736678677438846997761950469835493813985322171905411363226665820997432238810881280908062522304319678179482779793308071300647312400724487460139217243341942146492557861591416511026822860371117435383033834729092408596424514135673856535276909589326142253367557154082289626714100974611611055908174005349067169661483866767735666214026933028316813960074203884073899623871945933291466775765688546350636323674786538094639788194367186220209133065614658171358501389462433795007265469277768057722491394893861776282735720343495654272990452861436678539906931174323300011482078617061337255986267019895340828267283695597442122628991915921516313530791376554963470136831311632912362144284409513945965006039888333442722974226497411977929738515085483514659687501940055597014089180239063473397750850761154761628740577124444486169363111657502958522150019519648768795691933705691190818916539419915328452964258821123713846934367422786199887311297186747475730983661005260012251142742978832212780434406918663443982013032995457623689300206969466390239682753029880709948621982569889498894228458161442556344299088402647926362147400171077892308196052301496800936857717721565894451375168187373650100704975184868162866915975427009437499355037829387432253731180029238588942424284471557448926396294224460353801463013408942205450407849854068030866761767655823414088731697902604620049422729790358370291897109746252170494909678978013304481022776930260226666317649318716836262784729062145024494466627865666021152996037412576756662898385840118558210024227578922980766234757042647779453524917616344987218213437354479158646873612407226876523353450275532866581786266810322027345891828767819407644224562220184233924753830132173209327909748443265210717737414481961506946034465673040367416251284336826157918502994053676599078989427549748791765148695252128070325101483535022185951863737423113055480286445494820027776424894401009657050229733703376318339362609321048685277652759384713172945925788692872838201540104935175534676971791696337075269626988181765766077717982990018547850046287873782667120168878499438954129189005254282928187764982248866830093706319608675111785253602158194266345212147736443821859598825575963076266873163543081609717147388426255553429233916117766349083074333694890067687552026563621120255321703719425734395191578319534844356703045030581933372853126739162415986824831929134098388878620334674605677709786239502185825204430307631173074856146460925080413052730029166263536562582776051330223477669431247519450492690234706849717606998036828003674236925698220211957907305964704204136262633181265583094365884504424861569696166322139272431843639134545739378009805884378499332865345018627936311917540732572101321123548533474626933235859867813332684588437326463435834487667245965699797011299087952286777253508129912034419104469323796395139786741373214591489227100048029942651860757349626462756655065269524838816956316950775374665087570648894953416848006247203125103706453461954672500716647165366501140313065740691092643867863156702225313065854327931155581285587668066687728512032574455148336483678728088322064106122422718534000112515815656258540908685955605831733926923412024476848257948819048784338170591216470980354967855588967009685371430429592935403418242536889707549236834232411386648428248767022089742541406863257781368071235180117234306515672160746752566127911275822201381099939025437276434616099593009682748229808434633217845105323920119696995101883885889894509081813686719146077913354022978612298756276201252912606621815220068380180128437438431596729668912863763114595161111724434973522662033362804789314948015277738398791655574654938676750007463676260691070324897575856643607325459195133847809452791008464018365530545733150113543183186281826443878729283043685603555655144009872108567495136255664526430353608898668844840232103585996055859755570569990688995967802077802075687995348238792293685825630318750435842633787657468257244000802562089798910023147403417236294854493220750644727911176486793120000758169649109859777223998528659627040715350988102419242507974946935320305314316799653552949153813567236652762085381915686354088363273237318064192609957526525150007411472986606244050207598788396454832886859710505053981838832526472428422572588181336302749043058582104968185982743961530285819644724030831401872326864653126439586259200472026200410963099864024512354424637527349109727893782010483327848359343202720596278012124305426482955398958056818180825826255776358364515756302656297187355897285753707184968009434261692203008378128546964528747484549370860940745099065157544622739521398096733133687345688783937549342842482494498753642995641904059028462216016439551420488169386818544198802022642059813154244641567318016317462930859664359058993180900308579453804742575683248152583971007998478993394401634701426506546828096024231811573273261216563024584463406365356539608554755957547252039545353080063471594971445341444687962059623528137957224410159770526439369003443029653711451110969362034522369436024106692318991803951411421141064591928156256160649503121733678654174252618955610088847191027628497928209324643780479094641554542684872622180808510508016056871625472022767472995672344045717736690060311691424063498755792766878679310687893764368110434778375964212101882212532679113939224438752624453698975507096511658416892849006310903672530199658282118357365228118094388481641853378586469129617595443322638793547564826717718382057180103269085493145133717824142436824860242742748623830224693729623104981031142943117341164085358205834784241465563878723050994392995217992693005187605267851895730099794407562964310968538255553825494707366330156888262833233593647302183288703675274445796158751896605217840032374693316727080015380024931541035783483503751350529585796333739792252050604516619572908674136303179399811195041045584519640340073503098002148733715883715297091913535324254913421576629324989817994320988354894251182053064925357746190107586609610195449637464251853157656149317349335250599717159929349667822723283956804350621017487906155019271573097939243842840819548482307018515572498070998672382134213979600173022558281618148576636842637983422406814433384846843165645658452163860502086471505549976776708544038821042251108521546240831295105544905341781881902178063881181202301189117692961136404865427222678517872548382299109762600716067308178116785397480069536791459170777791331272306235342142504461214825355943080997413963324479589734161604026197568272654803848025910441741204295085809188594948382543341611876527683208461060398141792048824173667031449437724672553465546620290495608047400555381401977009110993895107874352639148173413517017342103699308340994176997534755867501201336883938167067250620868524322372596950959958490038118335824019513461343797998349297501009211120414537840882720261235939358382252253982677202521367264699271972351910910995516707214025703046191970828374091635298863474400171283543058984964980265205338470082484843690474417279041276755952852496315083456771127594629966694914785775780943899748322610042214584016541135719576576521427880523355768211823669337042908476575670828050335604590266126079131503566842974934061189524002799033075878652466467867412836807679456156347819586260325105897737140936436110070122915176376468654333418697683177351306912619056205986673570414539231108785393093889940670321556236203226589723889840869406812521127379296632743702310731802021862189689627328375898410658890582106240215587072908083881874328218948159158230751175011885871587943687472361147391754670733837530321723651457660476918826970704276493694553276910803466516377093829545287274453136582240419573567002588671752837515416356408446610848638101526509861750726296656567360712548767875863967319813598188137408647688728709687667758058349744874047078688561125330687538892523364161354756325474508191061516260774667580332039775314081486831123195706433356714201095365768277318619080840893406544298408928788461262824597549613050202306214871034930225169458478992545807842582660155999887922044354535572935781697594012284348208024490083990459891770422497618834558245952542651101622290634494073354429638028025332503896923939112940268582410824509689135694352717591186863763703342959376384591083458654404979644283809191658880396554571932761372313068809090511636603434745163921876129575023406410912285532751599464008034960356631619583887904787022197912307023981400741855824211074053052829616239689049615654457750011149566491565672243966988804516228059034430534064977733329137156264215072904842769565655130759027186221634373772971800093403431972329040284041998698091107601673861997409162849134188065451112549553729862494146169609252107143150742518351860457321778048404623168443457950910634413160718101050532696251006019262128162079091295082034629091459162918961549542890698629078447791219844422727539841663779397286781941574878848940842864287873587279019235710526078323100550897934763725427885260322710217144396396504130647061216717986646578423335392223121545718718345965863831686397249264822300228967807238363357584304901510370350727892685677465897999692119885428506766366345696402371306649771122592573433446045222011539893576817100776844341826126071786626800521306575815784124246149169263710212793020592054411707426948549430908619422305910491256055735523303419060172501127266293460634093936108916627761111108880967414113792482158951190227760869961834829553137412245220379930921568823939648498977678556827117181210481912150690474142173259998614364591635860423503170158209843385362288301851084127208361034925398976014995498321516813287821896723788311038229415099019623628735330577502581462930074653039416018422174528149078275213373548988725761896679058051236908016273020986253994018448814151566503426267063681333038322849180837492356954576829110081349202701593248746362078338559501177357311564508044284150214654923793819421729557216934463963621576591503523714847680056918478674367221700517122828091998654370175957325731802490835982023420452251445098761396698090977665542021644142087880350963125494090424275231290970430975930931025642599470937734738169138025389679603671541798811895323907818370412532762927476819446957070928619007354876035354541012452376583081061297087959070347191066295634551612208574082556659948367275164625898251642939479269664331329764024572226014198664734956934679569783913460365694902855109260204084038725792910015541728614301386082453575996874111959179618027599480743067066179485382794710950599870917779186918013729048107954014954213462017313536228626883053508267320876562041794597939007092837337414797333693334890831300172749114744303550712094328062175283418614783127218883501869362615713904066621640747502072339327031553384906335497213599685956405607494798205243851303198980002090110472220046787694187108933737566691733260115399971806094820280360977370577532423843478386134882151877821912136725900203537911767071988955904621559834885361398095307877984191686012110040380861652728733311045821602905835392611336847343775581430310452677838688656068834734674716948215463823410194652981294382231236191921294214670785413300041087578554647280198786335434740022038779460419396241528830718688540906264645254285411999961777896252141868711681559416320253513805925814709933539622985708137614835869788544195977402041100692464936780336089532155342467877776721991586765373941972780295834917807499532510506177075756012931511388284453139378691943389699966514552280404975432833109752144835687745494421254798957809691840294412024553876497388080728087245023670465049718980744234878050517865677307456090224812185555122316523832432574232469828934288006722421828548803000935549172312852071330307959977531858883339946586081283252762315555173349098807149287023040207490069675888162115914029404343211284710938798567072266402091896226028936375853929009172435327758813319317500345843172860911439515238600352974304779819357848247301811762458262380610137384722169526809554962304931092601939171073749368231618866488928182271735407648724285140554511353176656105064277686373416334314914843425497743577616241970120317504371077468031437678441260465952784456896777671270492559692534026884550523469750013283993499193368158708747958383186276329000234437179070457384396439503226526774936259937667136506750341017888131459330182849363835226313040511229368106226831235741421545003088943373684890666365444544300111843654712715668159125933266634812901458534431688708962885681513590055866438319328792494172804130541094342132238554618969191590231778334802671575278096668760033814950857201608369173903452670150648489476759528738557623304320714437636923898624208148269531319772863277737128499990034497353241899675821953961448928056623022427819676388830218430248876513168741732722533677124686900029612682372115443093614190470381355975465444583346360255607299652904691329984924516357323827545555537783978652740118873794509123159886853088662883064390051211631291258785360194145866927321181628212505459094115992701576124462198774136062248296613780439046808315295281203661469243334605847848296893767637355307638737854011148429533475931903677174898948781019623145088449720675862963568729089608613777692992966173726703279787201766473318420472323145392599990610432056319112295592497930429783315360406723564419822113751988642261088132849378999008026446755106529798780534753360102044352405181119985120360338738222782266387038565568682353762516784927277358444770664394857540549449540903690557006108431257788742421581514449674904868448970075525726170117966850152447783068924460029128645535518854366607433244538086769480113391560357542595955129477758978679649410496453062120642745559922613710632648409589689389660693934603281042204003463449739925021777474254486096211769733945655898798704199215171443319950633937777692425095000757775438691152592743709847440569545941606595727992952947316044526159232759455891442535521491774779986682269306151492249105020500007487059271680719947065025737601497886178515884202762614044419135476386331254875652514013843439300321853171658359838858964930959749025936383531336354338412899571846555864993787010494930385970817588997630646985017266151959181377997453782542828442384056223465845418336094265215864443750988209484989416991447961048069520066816915801041086748215511632913347483533814503834880554475936021319320750456997027508232436826618626055747614533746817290762930046506103925201573880260895713731637018386922200513467382439313822432623891352833788852677867408422651798538854930379654316162620757252149166054914617264101630918116837918562045304948437587760239980503771959299003917124524266220019277684140290330329122939011777334268890322664814594131768091924322365923378113641663923608061043118752653548749267635533748036483354105345704229528504726398375191536880242051724684861911428137122228596372624470335016900480994527566926656940902209940116005539201790059893094867012171888933551866398118844365219333785663908987394532392290230877000694073843861628967492405882287219746588271851360529711435548339374137158315790381217231194598126789151204597595925785627524774126591889174041507719155284231567826097034676836829039130691746056982054493958976503398740302176614203293955540816672138785280736816984192205995214312204456508264238864346346121265534036646496314395980931052473118733363317309474110011476136231040173461690498018353770907530381246571344276884731482634859483338306437730669596835319766171991947427604160588879114563743768390971964263371666475853756980020217876159501179788628098336354954131643476882813222733853862480283703087931119326756680508160101690884430232390913972838767308645034465408917592066024939414722351366023533717934146053689929896265960601186116461492909058532712424955535045715205611541655580385882804656627785811034617674565189601408738812895710305596994897536162731509310285430494788610387673447544948158954941499691567484680520912804059244614497961904445690012676928553666967248673458722845387614236993843351782925919944098425503332308351435903157802220344317415128349438500578003940236103087099478972557361410732068024958128013106796036127924683902386426192425620785771876461354201423260476103704792047651090399390577736030236668302265010165837247309401971076772595663655405292591076624554905091718950438412125637671629969597878723867109490403653223782676190720462914460546248062632556512306073998726448725145524177805599816196919231957405611837342504117851412647662611481147732754376660958163866658110772913563620156374441202927396319305806734357359083456043659386254851817019321410936162620240621015867645352295176446039501112181114119864724905022107577929689446429248670254491885259807691912004329180106901376388707918006885812247714215165333891193518382280186192849645459484520312853472432272018602320834215594206229514421190789657935501813122305026932880877970288808191379458256247926562424663101964563159545314274368214940545891851139880049037409974423011435037614320798419968026867430609967655426709286495767893831250935741278554172326493063022777165023830575708777125855281878243550542684971333453574076309332132844604367285286959663774175512607511412812892495943076228633743046691953634531258387066867772580208709964746554876716361748540868543596405032175971863181111981835375159948984138520572571767629913105146214687299913935439314891071379891262906098661968166315619783318687431242284698754181750019497396225750665662500474084578242632026599877831052676994548495415582126184711045350093931313592136674062047725227808670684021587475759457487666379353057120887398950876532256513800454538360835794668568801711086696503573478396632959370887881953477597950450377287204058996123042273999239849922276223836309545901154305818401401010813183850064359607735342115831690278539264811569534170386550920569087811036410749795136328467936229637078766479544634890229217764655770298650160761357677900393924564752896946399077027380108467918593515321334733493467412685733365415789863284301269304993981629652749395179436836646224901255515473946714115253765914027246396536297794560836105150352873708473052354068579647535986572027686243365158357279509648220152168162575062400164183195887876978518728524437324618783858247958372821316239136422145869539044854924592471517670813380266753583819164998560464983972370422071017075585811650108941630828389235318121374332410243802035748843667883674204047748443265669705659063359636028563626988796334811794373022754390957156296901467038411337102729424357861431560875123069401482185093693087552816838550445381247681848062665486919823412670594798981093667919713661771194311643859707055786697140214773882656610446673953939184102293358021519670593386957809031416557568521212189765230263347382307315101378324797165002829416535700519867834930896223332324948556195058676117376633909396943729398502208429144886688433097826620035452078007941729523121171645678143899787562114703764433582272222510159317822166313695820513197458131184505461922912718520856111747931046710299904144193502160455996490132927894883110115665184999093915215344006069897115792908884911333666075035543374643284042106448868955823249973228848342598575909219522268344898217011989217013244150462018335305334255577453055862423743264006655061012558091388034093521777447135891668216535678341559767943336663281260137449203210575047719477248194927577527170810587871036917398951217415728086082870413673959510696895293013327875630721775054312606378639109760394321722432096751973630056310561431566129048087577039071591865158064431530242137837711396234003881697659601016560861122827367194919654051725862311575264523050085342075440440707170909004918670531579905555952079844914943498914918643838592505876600288397330826527658857222920564737063499845697672080545209674147961719534008060587588111478481752906573430996091859950861498906171804598081440949547070208470764223628509473517971579573401440320616822129960527214454129336182551771090731036218893785775076578237077798262230829865805826483399631682978393056042052142113597073104263696089309687104101524992950838045613966378038980835780272960495374868327550358652309397671266711546512419405586877513784652424092877074655960964303401775925880625351680588311270495230018074309807120255918449600867600735726919070977716568264824030067136946460586424350222958089806408324196570086128022431760878842228755187208318288748872813225645519816513228261479129453857361734114845243617112948714691201906185980485623526611885344020936614953565040063383345910079193372523283100875615709431992334518739306080782006052957494998543038045594462493026729275087864072429138836358816397782207645891337110957851979425586681015772893821568505441093358589013582644327658797177105648514286640329434343430837374479263708924082170045690006658533407159883414836105011857737740656343684127998636159877986857813864118701178586163987372915353630207267796112016831691588740629574070573044363562440647514899517639424142230300205748034484403965044625126884103129306743449183355409802324242489863123138108416922499459343171277026245714492368449052198551383410615916794968330820532298107120578647227259606283411159839453547111875361231041215409631537730533054333037776147996739158672759940257280343218375920110112317836813145607465943302635344496782437816753523475767173957278878541397063468817966247546804088348524008852427953072821045379026202161045682811183481782810786233977829557919667574758075228709808006307028783093094133075548749472952689136268621349094241127003789210378122667887195876373309383116500607564901649292070678363063446690973056164354274365056285777569722404193385065761405278653543690782117429771053080865378717445040006995806087967347319530039039315918655347030242396449569396393661375009175535242112551100055659066774285859826021760488367971610401917225674321024863448345648478877857218146125382705563416694548526310945543730493899016994192046726951950747025409914251784639140967201342674435323144463598967727856052691150678695160452092859505959265554010355328871292290075316268747246845115547116030484961634077929554302171672775672205949365864290609342398317266012389927634837468580929800156919122807209919150373483663083173610796229901529921443764779600270846297670392470899781242659184057682284834361897731246667272693257710741164231650994375678728802345101261684993310953144562177328926872325330565112576568260026959857225740290153706499623789472087013802241782903557455400628270920215329161650807355691966699397176648851586157708002163569707406248015262098627804639922426766801637405060539810465249763337023058502788681215065415928247940890107307867664143648506139956135704478795699196251191307131649366366924793106051463735124567535976775937990615318532124684961772416600440294338941300078606419511168718315133551114398426302996846364376734425588386633536654194616398969424668900366378778057432270124931866997242046649292612883154939986094946163844776585435245956782043533278798918431975366291478489535404096191255688794432380192359758180727964717756384216394171227160925261867816233527257271108586219228478964116161455363791163814465185664300660722590769130890215399019970733287753589144773164510097277177577588846506549633487829420333728058041161881464265741617913435439440536512849982323398969466221325789444658110378798734764433308986902264553189456177592773644120351927480896214660972525677138728711815759025990381363861453373267969815620068573903645530316425726411803932157803430788289808022121244750264548877712688668887921118150701826918616904287591274100838079261354205369395007629464851560831775990094278499509021164525036359856023390193166978198033888893900164610667390595147840659890674080676987084418407824546097047173777876031669667983291752639692153205422968079369689531746477464986016960711664681886614487472125155960695403322906433558917151251461780705033004982407727844749236520378171928427012760614612425548120064360208360638841944705154061845949604146317535490040100989761740543783448943941280501837820290703141210192162833548029801909522949230503373168675091546347312604167842484221265591212443725577558794545856176586516529917000804311900727387621378192865656747193261259808036703031071991533681188584836285186187051160699049910996938228104099749581354566700788245334260494769772647173459244653401139747230890587042087512979528471975279754880682715250700224629967024440993543738020485675509999931328790517220170280015718481958392375902404586231479196790122385531927313004029677824172553891385070064036133343621076302589944956622223543511556189546445579169095053795513043826346419603504495427731703467460909801301858271651839978797959974328726040781159243241253077131062073983068304347767023217805756188670255233299842893177208166707664430115971254828496626521607854158163252323382307936398980227286765758356248185267360900144172157553741777834913227707735494281036817632884103407189735297676459769827295553648550493178980793094239504299339487385948090791980518305617874977343197301472637218614793894769616377385091262684430282908487735182896247292898901264249916749880698876076342950688147979670075222366939733603108045077127587936310812893081077677655929958599707914202314549443913414535702385690992955399106607505876537215363687076648655438231520078409218685032157938787926762670717446111987174396027341996327345413947609124737568755968942283397290974871051217480505041837088553516826001591860210737374125394609317239730879253907427862975833693124780512937306671921866711672184708166959751640937736997123671520025264655056389367439936825014126650400409621864391758880671089130157925762367011441196418586060510350441300662516393408552099353143554130761104392773649622635604647837113967271694289029791803359597353327820195490214199270038369562733245289259744748066171945428618287272425112039479248114724610703309560348657504562079112026946598954963346549489628537046718758672485818291838542264587191505183533629178956241257872177413634914602279713794715358043397765753423419087281715818001511381239184911249869552875576260734176102305520170426225608573761057759979921912825707285288502720769508811646918789820175578365889902609921820547030148646068699734579445797448061731294079443526424689014364320025431137711434543158631405743149473370554233769132945400800981742802650577623119077368700866943682422404416662759373337613055521439149155851850392837577013676273735662248721161567469579289101994754761782605764388518892009931910316296053624568143698109131793842257983929903415594656437074675271541097985942340900215779733706533501304466672165953212405366157429418257440034628857397686139620119743330832012791929744013603496191391417400926564431686286497065364787018432682517678922174023724797758524446874965881690739687245351396835601766209830429657083905693452518987897754899506233894199997884853376667131816600675312151725005792225917036836158662669219254207237463059626628497658330542003322438241130519400369988458786423819829847335562218382079202541119916666690925596372038669324276310348195868618487626937301352346277855493703948314520726569369227084633740017920339268129413162626204752354830122037259424037079629260986638708226207723990454221420936279049952770846311260673781023638567046712018526974320175334908505818424182486157809026090449402437583947842814528588040694722117718057610720815417731342865651247379212825685292788962766872203240323598720311014776039531906344785650610078895987637407782897229235467731621720779327296994161210578564812077876810641082672337761394597489066588987073014024834162018166449012425714644302865457753595921872084543692995702563222400424440873114035871336542317273341105514543710960041200388863343219662928638412719001136362753028120047532138336141173265904482941007582172750385781396293291023169349589910761030491047199774726602697413239126449501047137197146997280296601643047077646178920077687287929628896722566139468888890368786525540701839057375453248388528940093141435874224150254107305354018867817984150413177165860169310226997864519325657400907882760794692085243063182116581157531115325279021544493767414137741177090337493399769253004837139329333888272657372734576797846334649382421705554919893111675149254243660683724054027764711587415559554564622419923664502053960049094910081915210244485068540071513373728384715109863651288469074899493188188378039475510696192301729549377201619356411313072041811288007994452064437626121148812622495620828166110823263441255592990801219710657022066716958727431241804213373195682806518468531153963522609448081181015767805082558771829297751655266497521264984584899605151315161583034922690963938376855595852587505925810816069603175501473682775007528083406714806293469025721092631042042602950306426866719605739242182894731641427561046839509594144015385575440699813354899599840106596760691962631950940075342739258929792603447929779651928140383840848899688870433491657589044158251196816956221498252534062022771875880227445096847770590154370862319125613589009051815185748767416028463409436236902072711806202122126721292615413374645373392723341815602459061170182526105849850995994971006401821282301910469873171492985061708055222468327779710698071770626356188308769372946705691003140039769162606614940120255667127379440283779888855588128769541394179794750940016275225467636835305778824247092537506261574435690126378709164992857340527607742932392663991433404982801540162404118020871504353269557221490894621354182700152949225703691463369559048751681684063758147230641800025518613750940784093623894889168573663976387430821391010747547431808386370260599817321307841275762312595859238724682592260918553809477948534302408605340685451205598843593885714685118395953756773989147541478818331965008794696662420532103798883879145078382804129983671370033450794914200717559639202212795594876260229111692725138877247158941224980134187726465645587577553934011865451682798002174620164175549178351474438768226065164332813774559015072830810926581496712140609444863305555308266281354640184447349531279831652225439590377101352662337791753309267000506655556536233174575443128893940427455021063498040864965979971380848590452968040697351291974522024280024936407160627841191142758087443443931620583539594880569500585025427260551051714312541369700938618900013234602325210869995367198871641161650468229172066899088647793065934909056153907757239720085000164097352925054392893236839238112982450981954560153515681977749300619651906508637984625459064623743311127436579100281673924690006112467773605378826879534198593491796978825863284133386025944048282021110352870732641131770582189279595383887876129896990248697408297589186070869442539800264676433259664702038319659548266059321893156908092376379849848824821451420562993861615567870723918604460603611766085576609067832577700191527425293087761439235148363083565323687225852422645376380319100305714692768168568769176753174692256592765021979489877770999412066741114526768040218056666733344068690613892701435675391404721565144232690523547275708307775645189100300300080001244983202899432519536445956014496168055034409395686404168566217802564456987259907452296449763326856325739306461642197711542278468474508049078954647708528171865197645428125659977722940397636449497620171001955878703344119767873940034205136869433180495684895249135332916196795527829664801476448666916868172094532445623315736653082847714429337257136229187517828131394505268667853873853485973845715587149077931569490739035683575214943117935600194458966939112359009521552579623184138438709262815055685343802600087467181067692534635544895907616558276284415006542460319182007279684984943714650144387652853691376294548654211950340637025510329876183244004113585907333068246150879742011918399859606700207787668852802002635551172562686363768692966439131514571310505823954218638963280366249601371708146234452602541932931583402818735144838259469359162526746992746860969992112727811527294493501410040100201422145483283101733853495758451357110128692141006768974203206499345845992904877113631343911125596015206477533554279648058822645800440930253377147844495162709319906380263228053314509266229693469755747139116130113564516186030994690165553659522021784499114630054316651399145544411887631394747002315727493127477461880503475990674720040806096355733455741101247503652304736348655381805961905424423424318598035582561348673170525608265720746292997051496985725556991080785697928317855520181588585461430660628747022433835309664081559821559900973765006357948752118685885476967211545538148466745557492211943448151168437824737778416117610580357136381603797043187144227398952470320545662341247627179550807604630933646763999448564466635447897691818825404127819556128899716461493319362343029984320834523872468677845342271669260056449872275588773184827320965387554992072913388171099235912674693032584567020423639397708911417937787920396974619449849288039725496352322282892348578596829661848065259020113734909852037284217930548457743171963672790231935888361149791395352723785126815172517973582979753917834421375237321987659995468336979075358464608839894524884921306896702784067399055964185787295896370024731535076843200171788159496366133965167813627176813284730961990350219628168510610682491975524068935786522787879745070621138009644860857523222711616995099798349171631990067219507757161123473063209292402691713622813298023870375477946298069174861988122631182522438528304941200422841290996414820440006502930075502779819887742038975691759074002064170229916735443372432145838099225729246226815643355159447518490300745131687935046485532542350545737644968408360890335578904777894153615814401004041014292800699274485753336828374198398298808850494827301159190203196647101287196386016593376571066007938010878060140993829063477792966602511424893018200851416089914604337029808233358466972486095248384911631379768646660244803144534317460458555567049462457933334125952043559593453279884894073870258509935541772422799269263105972053636367024381934670487585205468723416601465290693352465318474808154115877523084351960585840515395473742033207437035891529567733183749294621168765047099804714355375807585639512656511252675805259068282415181936684908349872487679575399896482517556743997543554049687887031717357176194138574320588137381094349251487249567399148466300828251435530281156434935734545327291834392343800810146936750865978695615080817684298004563929292750898059036248315315254344142805180304897808410756905324710196431935840362030246248740520010302296915061910539928594231361396223428030659597252839288459071655594513406635251524570487024300704382498625231456633032695063740690084896085481897670726447009860381288135159748441934576237816665160237014855078953106778363679193249673881957718057710342491509942580888434537305128419705135181218093767786560787550894768994341311123270265675321492792122330985063849783661680849313672029698950007743109049700369913041373144818106892992616339481354525102750041832113085332262495211654550080093360114799081261617776759794370215586606036317502694708143783535280285813201086635328601035276373899856947338827337291244860640248256462532091798530669346640430952195916375951809432273279763201154874000042434614061507503605740509908211595658530661915060741989953811831173867555151617749354821386186567969450943651832337901129386712602171218407601096869525377046102337974381285417119606997961196652753580537047998449435452095984332124570182683926598722577012681493055372215460863680967110498740624462634156887989100003356254505543722251294888991779237943187962866221408243485983674272228057129198078146462537934691713909143481260501728761986033096253340016969724188084409952534786600743482344124680171591348925098980611629602388104632510578932003423383788622306197183277973847264106962978256428003257179910750031450824139130217169360909472649360134247867774086870943106802751908165143899138921444656827379699923854143536557577953434886523208981269305427844231963383336009054630915721573900150914634182398266005004358020612509933045796183109750397201880244730988930740851586607058670277151796915206207043810395891958870033078858031577300377018263297012232091229712894995842889626653269485529561926885586725967349303439254850629005187843772742354481351010113171684728943557422542999126717168093029744356934970423252813660555778362090854061478143947877412273324486297905068721896159744969919064163697719857793587780513944677975511631732138863538290334463775142595346671806474991440155725673730577543129950629311516363263013217437287299010352755325937472300635227857294986731431732977535060171718897640417636423932609362044779731073434664189871953957653862051993140404747843197938869379808525638667292212773094170777535102256166997014838831628385524158302946866878462444056885204090198984932101471843389160343236900523063743287889829367882987006166501046528091998701018573967822784786883375569023204997394770304115207802663771570502091610345053177270992862597500570931227805251360131663803817945068512884886384981667954603427386908885134024038710401635253126960877974119731704548150701654467436834175462325207525563892020903588273553606976929023694104901283283022200447831463121029448174264257240811784506160454507786408371472274963719151618706608694375435760050534358973185348678733072653155633182751098294369299541662273058477599911669461212779062377712781410945662458282089548045413908080337591206185698420862113636181701375990725013166569142068904601771991338014446819548084545778064361539512493315940843608487360441540795904379481234791628965398631447317843235647920093791451625645227673524342116295414260068567793574430057676925963606417366947878261436599040509524003529790945809472087675575855316819420023628122507902599562750726500609001772009581820954039176903738894818431274436065689426013211730174673721866953860129031495165167307159005271127112048590246196001956809940526076847071339213612975327308848054092963700336617058110297378674517613160825953539772318558548097946061062703701643651066211461988297231007103041322637121330204029864185377218215914538986742986969511199407266428548502874074042329972407953621802580734755397474911983074167595188040936529331518713283922018295390620405287679294570164217504253599115044694478757310399595079810839001573840507370432716289374119692632332256537579213498170609877364497405065923753565931802885781145798944141397414522741106476404485617268476759223578102727988512399811636203526504350386115884639711585623349148048306837630711635361243083003830418711168580805073876870763553898689994241029260347507540146116164530170292908342453421993652421280683439288018121293882663203048969673579883136956795042771079355004474082525934549960258729275584117104925498652103357371955642604804394010267932488753102700329938436869395130458452709222477768557647329988693158761265645655252128719025573617787912382085138750399569605890508692987647272733528716220596698020699240571363786292750922629090848473262826880986478409707434610182327979452707132353217102714603891242942743368246158772485328799908257157758113552222944654156705075680631465812462517106343441926908847199911146152962978351244590853809794956119006743373428499599559238708442070603002171609892280034772279362795080362730649670099189166593272408576227502212483187054878517255174219156900751330191808126468447964624759623961368689193596037292372766787866493449650490599593555386499989634493555448726898021777020886384290427295618918795608279071223991541799262271774249410529129099065010460208271357414449815662042964221191024249057568132770093205525778547727069801904420702530810810824324460206570111709964208287082762901009981848066725960430796259381350754130256963824225196549107489998289689383930940374757555018900792532913778684279323639410611815328145700096256757723409546089106127090537567347214962186485350442245646541305355908085598107113503136461699645629766471210708850382888881947766113219054041587353968466553108271845901141760601192970602973760107921688549942073034967898736221208897334184645772687206451126100203296379158159908206111633135846911551712572673477100054534951777402130422407756785496093385372308454900313438731735114957374660484877510317194345394789063985915244104181435185716019226851242341141240880376437830780271797246419814210581109752152018182926660470014262952647898256372995452308323384647791136820386971365296684546011159737802238034255629254126039275542918052306340420393272489876492007134513064726847724528817945246610768457430192984574436104837400681743502462746467630492785000898252925497992509987900732885840241006296447501774683435199268060088708437017591653106519778465854951351959870017341612862093470883148132398633570950132172313953500759697478688018801423888145147046412574702088469514961749684268728316938942884687108933534533221375449473616511889778131373776975780340300096365913347786449456609419998912155820342631302844749061899142037075009597592500025923540443203377570476688965283746447224691162288899273167303197044625818169181154866963802388174647125355360650133794601591079490909515045239207380471021437173999637165847296312152578810328028753184199374317573396374808706306892329408138326739807147680142727209730465862980788238546507451258245571287477761417449985121371678172410853456590424805862374459098568020525918632840348244644018980238219413936893122849117084020694185383386195646665641926615644768784347572103549450143161592956264689823041122350212537841423377902281828009928262330227707011533256113665580320351045454960450202962674396268154842141252718065558601686920431953342145523734767547860960491964631280216061038199223031580343994353837286384364838935016757988021580685529954970118337820935853470986424276333387132727929045125551432392804588322706327568472379765043455209084872506462178934840218159993820159046432944350506530304732392668851580788966272741216582594832465285544148975644936273920830970441589560507766908527047485401749920011859305777426488961493209750127197981254521757968337256657181387051972481657197381773144439471951395253022118871790889890233492882386148357399226426214171954286532788888223649086877178960292678880314615338763097782571703667537827637890320243200018603165439192397409563105920930229412514112922470325625065740723240621981003377990401912759945698211874339066079225694600534591929643881925851508671382884239441356274084825799748379551885771744527022423007117436782789776741724047458908656292555274446415708818519358357244649244613390363417616878562717703478926911889311158165021004467422269258977124641501498838657436977475557763779862315943129698564390052373698337544379796532064902917102810760390979500344006222117123107694488195079563447980002385254528425260524099536302328348122468508771000188634100423612342554330892461389152312486114605042163664224856927909351112757754351487253115428970519766529064443563405908533009142497727900989590739339492317165496570718517039378577453800390260488037209357691750426672356057386157681713638035610030882167798276844418460713022909961381228202301933600494565089460109024223171179747008509638160049380391174287795201233459715696926785663533702793434433138920181766162091304798658413341820541524173988381677017265869889952174608445176844737249980910128050434715614751235613854230009431194226407679026484726156969137211484186334966814537724697298339235507669195066836477518397158886623558909932890827700211861290901984104540315431957192835052745668096665604798340875960517891066400082248230446492553194144550934134132289078293065015908104920563652839770048174017077833754514042828525757125627470935831020065745039401260996170523277364461154315395337181631077903670454527929476337444147307862348260118605597014261760970019814614935127277372292285900214739867495885513372144451070172541003767641001153802756061323137015791360146198498578701603248049870320680614781674484767958996144232744518687352116666091721651178813667228407949389962348207167353580785537756697476659111560544171812700381464805898296631443732247708427999668542853890738023558612060366477210223167471447024668535765877057392587323175711310730938306255288393858200537514252859018565657028581098826389945813938898248043829632485376455072455613904486161836742542207186227779480483874352943673023128249935046060260462374602700751904761217116739587965276622167613219131032978491239280157388247298692758747548884269105620165903687765056329987915671439105966991263289299761103576627870259542851463725746925393597236030202304123310935641171045869762347246872914987941691269309762495409015696747792598666409569018032854566345913049253812121571137373487751134436051469902744731712698793096922081307177558863698513237752340068997271735457343437601315965330624698315063942099100676835721824698614199087028746552547856708540395125537305097616040951481374711489342388994023060442421384490508216984424763953907383695724824595789840624580881726700064185558812863951309425098362630048237357367334375984325289954253565308891629989959112037205078658766478234271707133256893431515847436815929717945787376451596070633681555646440496491848618374255045906952440076751474948148106365833701782015238325081644492102030691738393783598659461403200377502407574345036687557667269334972653995208253461803570215834613771288265288924380087882194870954780188079108273114820373162399607573574542143955414869998631163703614661525259566245419506702242871109091977380425776468038757874216223819700300196039130640235153374857741141776258385932533629497108164651972725487759636177169685346392139820547498939499878885196263397219146361161359674924685549991140472570619524381739920781565178783658148015772339521385831218362387171013805560253056294565447383371330386658037186721748107420498065729860992518285015788079094888677676643799726975206940254772218244161415357918727484908971580005245443108142907419875571126531692171126458810793134354644292329566537308038441921712541912052013536317587049297082023705142989572326961887311562237255367424171344493841371951712646809224648958650078464157454223678282853916623754824910499603091872777791207218715063871054952113290680917735904975390581953062510513012201222040001148437925908089454098469392365766804912476164697789629822244059080877639910382825151158048256180985860520750173343378441610151848833121155148643383000589340129934701196016439559015355148958280835402437471236618269247025503871874794844729503713905412856423184524512120053138060320318393277453372351386148906911454404547363381875763931300589967533044887998799209337206723028195703518291430299485706860877597993669341381073008549566514936208418052086741082459358439193410102539798705549985273458046015317558865065798512415625586317457670449290950412162174726118761312341859657091034790799288727334774455823172763326286791783468838844927027455790235372367256311431716645469990447285652536523435498604615080141358135108096684474793467044398220674333612416222023688806148594949407403726900527117919336783495483330521378142448215340527476430404800428698574916710984015054329032461776083385322068167969188491585719179209832790965640435198848221008681153466201102592369255011665442300938217954937182300558956245733316705723137611918373107796596767670541012508757771869849870829734747514822031354154511301885025312427574363708340478686228833402245376318339336479281108537174046938104656142306733637700229363494267915557865970934706886402487525100688433316959589700856877068322132846289109566851104370262732365592778064986092722235163309288355498806576552494236263988714647463818586799728818603096752822918952935985788652723386683913898478613855909469284115675205706974443273601743581964173859530105539289287400939102146247227433450423054222741764375537699322343800182772476119282670146508684771671224292045580911730848208731875456562328483061301526013120190967540422572512742749649037503090088976607394471373931034674818009029840581039749104102249669203950205063502936491810986653589654813229454021523675279741425449877916976895756833747201535239743423977322548372147456013616914139197792984884968376794215612337825976567264012440311661248884210974943783769748196982927070813690282208385220886659366879652694723021904337370150421381155005205415875764973022694701521921093917036126459114549486671788513939129951082056419393210450628390962001595350417579473527061114836916640164998230586200898885500145544873656530750344455560503126254044846058079996269745589160854131071551721681826334885625768545924466553702189663533640551492097266441735425319045922995708041674281683048057997982428804535976641666230746904449529285203542027699319094045457021393901568205290295900205824513767148120927746802357128728320877022978047536704093644907019377560785479055972519595883865294510201371755797163610667741277435178592226435290674450378912100258105264627240965504026027579631032714299466833455846546007803230922122875680059847028149579294875667055236284593449601838231834843678857838605343720122367891801264729149010648259588357839410670141051006197591297878830164086548951682027455947276193989599694022442852364863014571311967813714130460200547634938334442838071219560721902883787673993708718524418137759808533911292140535704698723528865569478892410408827236810226779683751680583426745816116903927580200261328692952796019473186632727381681948012669433544898459852723995328556605570109587620915408904935353276574037555693359097185636546059456687369495100442919566569214183438685127278448107705030451270580070814194296573925543681668262827281429362522539685318655849198308248738028564634289964580312707391683165712560965153705896140200734520384090602740231495967253803915609252860501386213921462857504359320811248005313362126492471511972098043285918397636311222098146523043245600143474294796313339117336960461964662664994834576389375960432073149388856689728638718680159494597945269358024923180816828523559131940762593772816465778539318077574853854324026443633167483864194383750070627440123270588074367616912325359768681359229290403318206145416190057639139619074064737793483052560985092486557339364238634322240635549248243007559979388385013874165126849252918000498690604500365045438953206716532450684325833729228921665443407998374317564919590863056549251545087666453278384580378243574430884103328869146235417733178102807665411236237939775117219301903507577679683165424748126635443107751121689352003569982403594313590172018234717127226165964676723595847026922952203358334652798329068518010180386240887164891537279000666146657877727275110134199619003668260800274456166577208443669467976521411191547642197781535160609915581388952684770663236441567976943051522043460164757942762039802532894368479304228967838899037055252529301843738195986275789035842241855268125529523382940550123191187466423890522953116245573859443129779114762134787371738931836593989716085102585633434945963420870747429700977769765772837109495748448334861088513408109017700414483106885825205350538244520708671198346631168300770623326822287592776209918502045554160755214793076878618412321068649594483444791780287337668870132188756427461734285438364019570653125663915165975049538041763380571047915046187841761134252091770292491666759397434368124378224054289425610945158264174610175711156237323715544974235524005723584284356035708618361706288181882984973910460385180762648744621332285890732858504775386461130689284563858374178185981226193908607050630060359722578926374608782819039413856386104643339416715033558224298393968447813981350329873029272040229891293172074371798893448890252659905020249376144298155755340801728023238792777213897463238314600953916047058768469204173645415178330942198714438743771988280606623747773485533666623565226842311470324970879050897003075332931255015830072457976310481069488976898971756155369811996083034773150121295756565572848758284564539023011761243938124819037594232840401206602230955212164470143231009587585358358827270619281244270100754029280139079789699237269020813102546203237170047611011742981465321073537613738608340199848433579669069687290494946155396465933479654686301257207146543854212811411552458745283798591338090138192248277511509239192470380395268186717092581796204353801002282301810112857622675831008312944671704372279793104635109355128164767507224373519300386715256398762408664181759784951885614904612808101664955470671533588885581010650451443565150748668987802628808333940323500417867642464746355407245202513128732156414904343294118554125971179546185211748601662911884402322991887367302305674221965104262929060058296549445626923634675569477112175978302727643631974874667043652914991801603024104369077125071010482602030303936655425723758892843724005221840587894000063430453739650450758550967969377867232453374029540756576445917280031970165170134753880427191504011020166076960249094347143982202437974905823068025156112867646576148799179586639946256800926736474429957013459685179414189289846075180550859221130388496316730133719274156808623621693811935214715078280104958987381914449047632450702494545525092985370593688553153066893150108247475404442702641368039842496865654028984395743887441687993206983533581411824369239748168141661584940221110697672745680909517382655139059277632579965729183253765315660934027522658888436534772477266119539845704490749444956011199438033105163256355079663715464434657790832203853688517273338949973647872284465000569667099019735555688469080897580696881311922965778942515839689005668909646961486123463994014904350412756816138114922533665459830478660151893131745784416882589043327369920067243562908634700660525166566409808527149176887341463065232726949443384534218649988073688465097589055910552166316428545613811351545903074208567251399418759510388396780248625023570182517077116007510529769272505330723879720176442701395058680556746885681011316377814249684455021006579245741177885813270772495616079525995888745683147267428473724432650031887067930724227629568291132057288957872713375041917893845905845172934169606586314735710847546181556714058350711030003260892546933775229929917605787137610346564899291942702940517878318740279219615780104730912107896806920041791684105432208274873774106047083493914191616391227204131885774999569060143939025414880022007805873995958540318913025374911599235807141145697531478101284463227357690809490385954958805441019868804897610377318329026769427468966181870350872043579686735330366937395495474347822336843896698494664847658167729277581952861783657791646079113228203686569797309720461402471615088094039862603582343126793135838909694048371753867858302921022044772367210981255491125884002409679838439101446280777131007225950856586350717064475943737712804041316543628983983856910148984744939903781675628837226764656281290745110623165080414378231490276146170858212085324385061565296271442477339330661488430633375005706898202273521855190555314921226658153575103346677629493848936800240471771215604359017895579265061605963586937159734584950125578039507410664287505716567021942381412939421188797748023763450738599879862823288010143242111672059567998211116230478196679887339994155285432479257010926864868576712682164119499188001899006700933336458187143346291952334505651538464025251538193372218931495621589286478740876451065240201005385792775118266422362478214787221021576263512872417072475252353283967731411601004063370142720649370469448668421042305901256951860484724173661846762700399710756631122583330840245283531035884065451927937111431606047131586554084404526167921959602052002164271408007334549575153714676792208686064311996827526864728593630385018821795579913825384182389415126387462237445501839347481029972683389647825763368798740839362519446560093721895341373948371439707706954144610880915783237220129195893296223399687295467433229528439968412678829661689818997485056167013291283734448126362979174461532706566831364948222239775528912038853525657429388970992501184377509949645115944875955710377377996120865525116776606268849383911024564211949175078079892103959974464436514900632754926702742990229389626958300899427993353814929973906328574678588375643015649786574512563619786058418242676190941413597065293264408141522918222848033478530157590267966240236105479936662595911992380546104884789518094578214643685128961231536161546094821613704492868207753296512690073336867852785838750980427477338756933355039563349361088389803858388935754573390295274814943323769822776168171840292569394079292891909134970464376347205752388891794004741427673382319084954936317075662726867959103334326346816004178368268406299961272445679259575273277377596510913520725283155691957930611040614005602630486367425828571821736311029699180110284734605981968642752112358683386537570089343370769798296255021099316052388749713816455073323233967724028944422293934288545662866857576242508335761326472704029545862134072977344199312781040550709656192248744977418243443063507751472899879328569436386714834311173948080888981507641756046654104696125776843013822187073566791713657562913901370825622820330528548530006151513880243869797400606157565799514835364824143428525742823781430829623321805176743205018744113253969950097797022353210622478299838312595777840065873669888423279538443086288868172229359662516507068899932158817042656612198586311343233976582114251677201952378251845242050040458566527796263609194949547337624757215092057587565692498617966045922630630715022543490160033873235940118629894109303626352220054653729229926045854934830565490512409862229907190642120736439396661689253665984758495313062011893139066108007630185549778059940556326657122831289849118210941179759556923722138071737386971877120729598037434151615886860890290683465972936279202243535781912331716252954386131872400664896832340523154106385871638112623281422872106749673177831533704223881843405366591068737217507535789458069579360818951446965836816967389385329517204309315043269893415285673821697321517111308140619111282760129935476233645966374916620917140132792549586356236036555697354047217345882884043971492877168918386264598655909650455104958300088189442809013457949981368362212250921658651592266130781479740956045097232157207186651480411412206342581022758359239119143067659586554798978059502331186265757602743881417928129105920833468936393942327508427216628059797733097474619606956580621189619718065129001991741172779893331897980622939250536650160493201727109823434085889348486729441922448660472766360234558617603036363071481872105970172975025233803656745118257879265061318539452331293693980464858279988272213425365990828527509389546134777288551437634471636471175823232090541340077549981257545063186539091700711050027647875026645543199297156563345111274921942103562551489070168476030172642182896742225312383364666024009321189239169263270144604708188416940931912873287903380668358262204637548394873956772223955529566012926908604038852473605589228481253461490850302231029964678719978172704050856509729986385345715680604925983214004016216317397950106401085406048534232580452458159765858707174204484982196233244394582034140091844808317812833771972363395328779696534657113106039080393687929228845403276845258281700666668442064566819853301498955840853452532226770147269161150743849870654102551343942582981344033043671085534756874044654333531880725694783421193985483963715003409099381693894775298181555410131265142418769992355490248141412167820358994824705808610823135226581878210627817807614023484375686436346280926549672370161775734215316318526879971390718657645680487210741637420155264031474707288055693774846690483549186529853714883317656873763965904079979493146572378349534553030416242175366562886630523479703886515335298164228079064403138518270604768110944726441105733159400429292014629144376043828949326097121997769128380350746627440922532216975116253117708849494164350288949125937258738235868175532926835047199196891723576975622657515977463274499094888212565922695602139596796945640400617079535993616025277922000414374841804948173677516963852160155037311220644606079281805920188326400267166407016299479403071510574914049832929651227378685583361163864685287587168802383169952914718953141034559367891222836607892147004920030718428463465042435848177459093001415885959814893768052449733619701819488223406410693566312324034181286858632117274153048688913565791585919079929642638358891496219597189272060019377138257640136972874688791963186918643687128967550746662193806121639096206127058104568799845017863443495323261259261579470753702208905894697432467346912563485304563800997571148854726781616683073600133429485602515482063116400577563283545079963246008467977472906762756636690744006327814893069261721580008507222095235037280986374157959738261316440045163196654141273968846690359599075014484966717591383234098677901719860522082558869820851765505678998533855509096380392671719762545941358417829608583215302756711886897703357442077439795867205452275969230436666898547103795889314864107387408133026651790055366526941067415857190258432305131956938181855998382237755131300789154399258900255078874350820901003432204208800314234306196113827237541734834693732986123755095495279805272652510250654256394361524972598515479683208166231619265228691491296392508070903964529614961066130587005063691163137676951780782231200494409356666088125760710206616729821300456171693016155469727174462483705346520827458278990113965679205175818987683031318928931801177352894708537849611048522879577281155635625217499527871705797115434988000089168527678297184148917972888520540363297964262678855513644020634136866548237606813420120944874428530792260957800013207849522095584067216969305554310548845067891305905611004711291639249961031762667004062938352034827706513512342514692353757063208502346325954700731687985776683589026186899731704011895229423610916516948863527395865823556719445584733653290417582729589393237696970434038972194798543851894241190694856434301089122781738313146612735078291112864391065314558651456043558491282499404321072361501626986031362957414776834350269738882192723552608456082284840864819179944831331561363464398110306599960846039499408827004640623721017831125621775531081874332528064119441140985434470990197087797450098058688981570085906678703522940067231876650701918365581367549184119324040212246668888046579429961128616239544620145508850806548748462553831086947942851747215051560993395476751899819526395558596617705260715194400912903328584439007663294279943336735336423984234862819611137672538357611898723172387103631605666174339557574686853491338946143311221748834243143348495388595000349103474933370429513691176484228659621671612979478820271439328508406030719794224544708082640304355579559727384655141213167919134071590669966425200891621186996348633855020453934705389729858999676310394072878254868943477380566884436007563349704871644596223261224657569836762106009130011390207887529712038389640135708656752628580326820618374687823065778771829950367935199915273566319433285743675490356691319072049496835629000116520603298849045467956017061137851620253455992774477969397184846058081090395487149305539912488523083244616054242450887839170720571481838726368554956256908478396834660877784256671723702862965848215973802215129431271777370791576813825732581555650737425871823818009229562327824049585113272526964828561295403135673097313483983327527022449687719998937368970845537238301647123577803746423562683120633066658251213375404049616645955133206200235202621039067739645087669468092351265950543740683547360368139359775612347014788569864140283718736183591697884272726480494446631498400363499552446933169771641680209545690097036210981690053178609444230450624665182316434443093087927080203839043118364996890560873112558578934588061410308221986452925138380506242507443232142891049616773816721760650015011051742241229292628389384692013460926692538194004687401733553007340732282370354445102585602984192053996115210163298062728347209942984264857361283527499572818840020688531250277332938686520632082214208823765536087197831603667630109281347376039605958436729995451717252333436724327566880891628495939306840233105581875080692209404163093283730755823532635879684448884816401261725665149568858777411532724272496245358116300548839259096232484504075236118629842383589658657272980501341546008851358939169609966070708434638804602517768386070178276504729455333489027911901136820232073358232479854102451251379518222426574708932344110733547885768736988869989638577036251045959553600723444790132854805028646469639199200472340530361189800829254315762297552692290584903723448679139722680229667311389094565836876603798693448301360154307117245246781517034316057648968765157322719213706363713380994213454095245023808321360734296654257988643308930913987180060636634480916221602200328200723868771116910175894312201896152681172862064685934335181736181872266744063088728505609475140692222640349135507887676489479502174771028384886286502121366778546871159187493249036569005224087075238829694757131396503683982157911287632718189978538890950060933565193728934716596783076566084630500184078140373118412242405343753572359312736695828424184228538040160556092285971267863386799127178274863825185875788832461080241282575059104062147003027633209728171371719474860245026114466415867663757332103851567496252679950766952821328904236942597960695037434809390940191721820092003487573100268466612338602233686383735259714740603922885507464365830290795100953538543311481394339954439793705388084429955609097273322801975235566243758593316512249742640867083011122576025492728685367647386740413357915282295997945980472031192486605092060935157154616829662737300080622774661112322003088976600998490348151325822150449732686888283745274990175918145847346229556736689953687464569618779583093519035721682174579490724287730298665744791570772344162886530199046236304814644078760647775413818269414490525304877718422912750152922520792689027661535907814426286281942863118502943092378125578592424508291231993444365919426583820233762549919388813999718682681720433902376764484091245971169149078157670223459113545775823514460445336448169908410149477013464211193388889797581312613274429868227245157013528796173661285524069282893991116178151227369221213199215285742405772339245276902041940246193861611728797319217066297414059965324394707405685820147887002803751121046357483406018265989118394368124210883395515935029135965852850722065216446244366356065834167806476389146621312488665395247611643963803475588942436263732812238790001014014563426984466202627199547769625189694124466153660314517205055061604729491626082507865874004799480570005490371862125120527044139988456735349869316194278466464200296002872513874532160545553583513161919412116229355586772944133389794411652194595651827132814219501589931336011207620566386117872017298436991757763627691236692091579564454314567831332712357749549072893548754946790415920746999781044442459608951591522155236862065177691260223706522264932924366423742408390325556361170119573941128208440743024596318598610758925670971717614728791448518853387954844268045460055499709035271472833040884265075941414994453618895461161854217134069731171739221289098021888917969436891295814658620000190476762339536053916837582186045943923589408066082902808976361671568490464048928853516664361358386794956305126181634759927633821211955417045068821717013156458176760375792283433253977054196391421177002944770045406268066040502498635487749119397005036558070090783966345123521773939387910363213746432397069738806706970335982578342063129444444481326127755011876346833881782754617619563115587757734213462467576974097893250462267277339608229946245490406995470760692439496112560152617353252199040292069673975170759231342516835455623241522810698965149343694995301705439491871635463571096143689503798680811213984453946852654568554854678905342752058363783957408324597352423516777044251010047640250739125060644132669868920170610023032402455186230860266851669996824090361276456606482677956860078650539861706264952740047970959797164673526641319264456330825406251633481690489599507229354585837517979794817587465296677469276046142311150649736840981636601581053577258996383934638427144219978701232038388837780115278430117172649840950414459798328763971792917080973920193742949406500071724929239275916630677526671855644852164640400650002263772079718585257389590593966280097865448402600087881798638603621136523929114667282654577933345665960747790818758848715373895855969952674239601737911972330195245100698518176543739374369528123993523149933946428442048470623781905719732536137429481205730504664339558457760176421519662164366870543939419417271204627394474229893985954054108718418046879274049225245712413364162687327199582705288984215430268505346679791322455153948438098229294334369344292360070421246236703821360178981864024406423699931384545003419836003453893483558543845526255274310092319913869725326619433052350083188233207288981984835451130501738120936514239750768800454849893859821188962475375650072690052745747889227323596272811291352345656265550463025582574457388282933292449167806629714834466661243281518383825476968883922351744080278682821033514427150520088625197324768286044104447194174495356316211395384785002450447993476532528605973781389887898862619620863962780619539514508708847309568777314983146917340208279748986404338664280786049234164243093581677397246325726094256978980002653084059339359323844951324723980548240927188964382501281871756394366484097867535627755014890325883597643583744477924642903676709443983089982608780393176555949641670385638104252480601886623086194522514247439628588144688998155497796018419332237258058685445890655118443281874827497699365164251380230181378131097654759782701838259229900280662234933809050989310521296151228185810119743070295322722146806078076035667417279798671078622474200002815513996736345154697942551639596248735215902857934698016341788309718820940139937186770112082671756388717779584889065821806514673121261100319437735671624866020987784017145797839693749583311193288738362099443797984761599515971138659063488835563909619396950174225579348434569904161502126551429385030298971653558906959127553806293772399802625334251791516204883924839163947867655342774942975288266613786053536130505704628385445527009409528579297696387035506842295206297906021742268106748141574301923628345038177193757915807928077121171229661695196314758057184546433597667421100911553620384507588600172732753392561147098702447157653156204495783738582328203308454481467149558261646070124406554657991183107027890552483465420823973264073271322722515604727289165950501064965796122357625334972893360980712223428377552047349973552914449084368591254640169869230766187332756252439056046738969125784428950945540789045473539397803492993492607104203164578514940599616422124917410214987015310060526591126671546917562654127889447165845925729284449645068307174856454229365251185418116469303765437727268723244420670965980899071389165833875176131570832337976260901743908540122895088188298728266809868377155412775512460757473540067109602352541757195552239489443571497743740965188060998426978269174368122768298513102091238287951434524061832425252030971357947092399164888298662956967833469331207043316404111657409997133765646665911383149266167985970790808547191644720227305751835867249107145756574072033122210415672479147051166453965968263661259242209131696302206682054476384799063170783806979686257170851566541204931492542243352548817247436198912945989927498350908171776056621808834633069211869950672885260101340330800632555454110327693381990744029274516840357882296577087616343635058983939007008885626204368559096099369717613944297489025572271548586636497323055300598757505589358324661126056998267178849535577957092474277138104472958038556515179369722467436697846107671111327478180494802318867285136152880249698085937316782830452214714446387975235810567859282204978707958955233046843650744420748894944082298091330800839845055210696023218930158889021148002415599693035485243458473610650454628961421125226353909170622724601060162080684502663070042896661188229538984631995429793639102208500768281123524936954833308096750351495586828954201246411908669451362130693516410003566215294516712202012276855283620660800946018791730006015717607436539201660966597935567251832000786462257928853012041045341697420046677127811855399874420841309459360070505071145513510602068817085493969881911017679363663180290351292923150128790082907822808934434485899207637805580604975260363050957445527607011140882506098917547126668598292943773020428874299386952668383690146107461789234389197643662723026136763108370454526775541895049800609363557729619018478175505570084775609762670559951349669333977955833519934784735687023933383914937028709020963427768218913506814628918765188248874244089995362420576392819461493683948086354163786144753999166862547505414754547812263114116228105464256839983413693525990680868381460119307163021955507959999965924111061073584387566279515319758241917012293832550468210839231107355950517117280832622410575577801207575598031285599674436638274275988811578841940258349968645403501149643688183472800933830518395222072420596496600551971592157500644553535878670425051824746309156308759913082862772571087779472067261707774296914536012551472192445559638116141997542604456470349690912073302871753458977995939803290757417612908199608182074807121432089871324382952421334008323959435734697450518755069164223229221313457650369726703093685609372432800672039599262245614605908812810621562607401462621647126308762752615782107255433636035551537743782202179587508613895155714653341542999216035588982289140157928444565672038065003282982806759117748189149967531127992695920572105536078408540258715913412582219434578704800859643165160100925676705433913306926330381406640613448930119375093650458348951576548712413719407714820644633636158821039593280439516040482130821593812283692939829237597105630966471428591206546838210093624364412686376606912994692457690936972091171464921241971574638193018057374096264348710653286722316892347547955051892109776126764417244219965050220493816460273025438901838623252605255364122408261543361187923764705487364359869206128970048030333577814682343937073529747321037797451784940462301826598006940115513392732898596157081361739806906396035596477691193195246227355817875454212805299216761215265285133401825663821794119010210444608227413505009934613567960225963650478750436095413474738884870470342524292589163257613875087334658602370255968383646890219816331776144738518100881391669449951742667629255931261267462982453371245663415242402995437928772576635130741136262428869521624973332457235738020522362524743361780274089256387460930760575690440465285802421427107962393726179347554275490257284115117487176160097205287847265088397776964919081096943530477125165039652136086502977979199530036081484325061263549950899490664618443039384181218992782213504086675373782432080123250712092822216779650879137218041409536504420935173896578684655061791897438175209622595065798082413083903700787564401360059637201612953252664390791924839242766981249950970852651437501786570122762361525690985446143196318464151627741073746024246493818174633546925663108089517022084455072308715351229200874733104400998254740151498471372358787985591354132967544984110651670545335370093886969369441474409442109119588035528421675634958147317415808647859814202660206219214947175985260566854398248106767557372491681697220416742030412596163758386158921063718116125015279235855610331019379562138678556958598015100648685135996529065102666918811644629661762128544768873296364912943428330917484010258623879247970976501187084383389935916146001532022183241267379267454968234748445839474927318907410675591966791274311590374984886035225901624353614080890101233238707161934589911839961574059085545157319938174587519345453006221898065772066694172263768560701129424693419550738427645840136456041004099074060556448003903487368348640072133079312766864237069418585461027269891884656246314628601367810689841292760978372232387642439542455706266374483732514087351098597045949826390128522938971394746932583975433925953538679515912850857081135098444710606377696436352352775846308909274217854268972493245212170750706905095928172498084252633071796984233075008681784366545723669652689421006486215307784799015580411091783453376150668303135741104823732917675567224166684664273998914428094038478000035993391198881547744335853421279802084041387076197782052936010903092601465295932254563280143301730856253611797863365532713979285966287194425053738641494949496563274421967882164443329173039884008231718931576751966856241734974851987754548152515780285089543036260769535721916083070369189463161814483847905846423631155672921368661497463582723340794931098269460885349227592775141385220843723436277553504444320623552095046272026024352034129602528190851154874290369043267184723711859864495231701386699169198778138566378053210142475624195330575848568320173666043458563944448526111288675226279432665640520378120272192983461936860422852770128561366693162948387248839625063940996640596248274220816204081444655458721004343484778440433580341608238846775710326127744073642020127205111196698346133534075418949752180939055930056484537296284383684508467360709588465092711809246679010220611345045988345241735076898741958947409377904247474698831538116672804582989985991039952738276722746021293643441617416243884597563835747401859405382812821836999149807471378351386759282304813999212661385087329353818335697066967267228006696654474254448204191469369564108768408072969382767213920660794611393414182729949251567443411615123752971739900454401151159815103732511339981815218181320109037647640185134942230414880154784766898056184000539136029261728047055185306773720316702603027512194148048052668710459093951009958801690117554584599589567822263270018623086866557216541424751990527667220438706482498918467622572480865847221434411806551181003707114236728481991511234688408650651473468021249001640773694999969744598006671837851326264366294547547525537594781366927757850936415642215417489059109273936921529528799734547417994132452193625369528600808648661495985657965050347991593014844542772946933294689652289818324152124067091050834008179200896984103569526780232688035277892443794579091058142669621018882186980606840999709016778005335577209147422641663995997030224319897079148112461494985298935330065906744445761412273678481893848423662773506511022431971280515355132857631811400822268903072823917890135581416730739058594482947414181849803060126674434456365517348396454149840022966820368909364257011964705909204067239530087570017697078347057871653255559816616705827601822232617166847145574600179661858064761608197527400717805042088002863040925555071036431400003382302818650775409754825074758181780671847218874642778302086946468964287675158295763657428531898168351857002398178958309406018095279674099442969485394406812118590316794508777504058673211271878583711113828260880382420260286574188487867153167748818557385456086156285260990727334439593478886854729737898848969250993913879828098661468496775577335844655949006859103027158277024439887950548558073347012482723147942538661711334107651142810500688784842951829958797826859265225007534257025706454675445184033576250199580363340755511254445857519335095623703083715010914807141668732777022738847900225819458994709702562136624189190359525749966678038993589000226213004675317842043411950139346994730391719189734112784419157192372733082891543735590372705856527729378661976152444725923752308527029708599366541708801603288429597367770562753353718421293430593275449488645444014640995828203671161751816830451921040932084191308443588833751869723305491009305289300797763464647561549556385724151965213430523225392072616259398384161314489106191368273838447202122487033864800308112638527483582334011094365855359134817618489386915532019312687880781391951913324471228398089614248643398460725529852491353056712270747768890015260580869314133731545425900783097852747629655830629870221991225773556094095021035167111762340303100498209273751754797808310362186625115365803353118546708756021179116059702094966382312301903853115628965364705335036948111341870334681881080793005763057892989713541059577634900394223481482949011287643617967201475997462669056059215194392992302554277377624464573849550529745399271071017367973740451156206316725110256672173425699522937936641004114341867363381728622241486613596715865116158049935441588732693405495671868432179798670096407997226640619276083475282027848039484943297670923522662329624383630113385436533069732559889604648485766730446461115922282461966034300827911049650121530911633676633293447952343739746079691003605371553040500461845406650393791756124979273740116798242433524091767244797650192917006405626317692465161605213956660652921668049732669951803030443957948285330965248127344306233760088038916309821067135290325793694465888881220003759591280672629623001049946924062665680144331243472652620480006547784506522273613505239975732462298856902742365877144948244883413749284736415200998840668431860612026591723230109379171213309161449474513142064136645355311327970592081558545496928206745327291970505740597152994695554850481853606698832037243170394522040333375660177185715029268720594259967799574555303135190412498054049631044915833691040758885347493149835338912414629526599764884872338046768805210159222580886797555721355235244559774071841528642961959060499270526516374714933843672847538722768690762275941797770493025413667382224136841184730558574372666000904202136545977273902355573139217339564092418573817085104099403995272218087729919359280786124706286520909432412088527919970555712041520902633459663559973606894763611358904165514645817251130580978120256637796336806021154029730514777367606001049409876935260680924365026855331764307520509320301754122930132291855358343423013588980015453827440814555725695875846459168554876187711520970934852150544051520219402341869422186234506420084058726856685672046826536789934438669533863975632899150387894881508117188117649292945182813973707607841545959644949751526878834686822766570653658773042416578720080993617189978632036356163597071498279000609081739050589590577405650290940903037285772666231594738976341220185874804935430628462559920001568295329271209574931287110496412563030612324722487854949083851376089757680328190300590552322572746432179393285636514938368233289820429036273845299005229253128178908203202617228099202123168393526005754995415450373905290999979750131024097146921925852593209217086742545281420631004915438431251803841133079993345649956940307137067717246723261149447893019588968549179789206025288129430160157541766524859912581303269323374252669216186118554042170381291438336107968640694389988093006640802538263547959111491641310667123218732633197835952281371554473683946783343479290945540052390831220083303001373582807460389870740334596722664192988234364074897969573747949473776458798601934948467553440397271068816861866257946633054464247243193012458674758988044729436781802520495809236328677697384516922386454994491370479945672574439344540792203239132487327100838824427659932641782480962716221914936777605578355219961306367941115373335549741705518805966920309736108029914336211308286451622191039855270053105019801037288286457619711923856158481521364513326846201382574993972429431658778467814929463348390618447393402261130091018386856978523794854335102074853586200892381662115899223935334948178824563457912902621899053680731612208371636511819124923842224343952939777110629591752410654796687810759234414058212750732631361207237844766837738638109588437145989657435862478405291141425437334535667508118139772529097829800253734705994457232924843165531535895632827887057281316501645730368210687343679024988692579416611980709700940207540033152240700896676998400608262986414282933024171447858733126854966491077162876083627428592218513813848110769820696142989806334362974182933486558880553351345620240192899487217096230583459370828778516434689393541202777558514442628188771407070355446555266418757527751904593714843737784995006062532171535728012417078019328077643094058675272691893494659238188417349423911281436580884002237331219026397021670459054611641530843339274473674310343361030400485016115224883172814191979171714731335988958292218562396142016681519017702680730943388359908954864245574740971350924674426820885992560136580850236153145491755471529280923779012495632099820946274767972426044465647869884046754225407404112246953630092702703723714976567728162197403285870474719368541963191135057879654396826229577058638777704229985723466133426484937681531836393387745111155768699608804774468991840393789003616655066333326170562570104552168816589270690720680207281527879185436031842214950934201893433383641896301235174690752657534444801182949060487826943851544740391760665496091102944271033558310147982596378617773438482776845092350837033160245760840383009555637003356428649837932482189088502882370887825597168686629065936705636270700616780812654583500091781601799998409998850370131967175561837703260342364925034512801247670890113257796315323592558668758821573723792204078629961915536008841192227139026323366907810033765852048371841490134602325634714483446360997898997588254080806487896031547866084138099605133764591244441466874929141795854725868730091135613832960861071835591036607710115828950382559542288422450275840264899759874456519501731958652631799349494588539804044659583352277544547477675323280747793816346481263608294805810874120778203051025251036354580963476626061467409986789489534286900513700830063713910783941686262608574833766758659102474380869830340867507315486575982234722307662883154731234808439641772116534179296472784374269767220879006586800291170050009700288315772261584427250531402917893152650630495530906027446659329164359927301943423243137109494305219197650024671849880029984888648898280429962574812584912341117068145987508725264439198410666712407517294826538177646445568365854248205837792589298464620836751841495177633889108492837195509201094712720855634615947385395644574680246390686023437937706611135579187746450411352912529791343767913465722001508899482418690964276226161469306226489644189751215268179185953272826058311015070654122967380321077452628053932958507681420845793432802569317004412401913614567547730013339200556482461896018396723812451953297390683250097405869739119341233728634347396009870475243744729208152950491209886083754379997119758770641036391590202039276330890488725574689409015968230503268140445038822945005492259478686970154800160330695156165154167111789536441707346092257871756238466186330477922517195107083429695852309936839743161221527566081878031636931546281018607732092119950612044790967761962298285453216006587541849962177523497774405182146235674490101000819425791468213044718105339209170833564318881401808648975357059051311721114178051246545504040127729305193049895944852201346788281388528499081134479933344973516894126677644575821261527881787297968697763996518115741344327587003923101533874640067846726813415167946236297618974707341857956473182562556094639936005012595910643867195459682709971735431728629725721982008217618558423199828030533977835163175894521893379479068638726486843305682028343801142650324197268186538296917771480528948714432288040563815570701570577210411240183003896217603487451899620909974802574859080048650289357592793081182497374595648910493621954652666518178550910094076383800226821683950928880779842803785592481453080446007836367350618641129116668704699010165804093945852336306489379694686879818474401083869173670161612639849733124385262723159205473210616047290309837396414539313177444243413699731712696379035205697369020442743177923319761413143432035859197113747396375657632090778968445623530349343804760918303354346733986290827723168966674982044390451205673643699138435894085660277061726798559022091927629674939366131164124539466483421056503505397113640578697246042301330824943157953390743312991239628949263505458640672691972676266315265245243891695817444602850857645570373645124074436099699916937097788696080121432826005444505489793345238469590885681426656344682605741798642539967529362566095769874171589822139114193498011030807270963118653421417246041406991107541378885374767949797855620930461330540628529890812783666798253920755399359091628530634028049201336509412420666051447429408227523316868769321307681205065781213756876436783257603725108075114149876584283562110221379551259261670098934654937029459904414791896379503444112594442806517471901271185379098487588768790762622558295416403680521885647651535534659519898881133213717336608422288458788947719278331841800142977027484158816905564716592051734456036550800751054676163025709100771438019065195309349832421584351129327454479391117442322078718830430559778263592164556277617243561606426924320004190133031473724424579893509078014890427919091694426575680769954682403841020619849453643161821681076408037367312214935227383093422080486062131642950354665542266658177383028239816008342976425685834346706127082461904958376855500378051601452810748732470342832424723408872325443145023748586067079450439197342249053638564520828169599809805777453407480133926526718727456579486341887280970175239570161329002228705585029761945853632331306293051787459767188337862069205929117460038290680400971647745877902653162392656435724424675110395102569429913515543333073723962610721084253078299783677355341279398463776818341756263555146834345619170138357647299870972251905180073806871654015044538113713898229406212725735770221442009370037029925423158395907470793308188795333973303652073005108493633394348622556128783954053857211340943452669803984982141310628452462478154565528302722795443688502332928865355719931765889932595318969250461764267748274171395438772002960593862579335000997948700238411647359010595845181590723027713526574771468197629942587531206765391799397963709189519488100271526552118419899143266567739607241580163596030480699274082713209708904359765807793008259338055776962688892704379003140901773501977994958452674929427495295928229000477374692408415781688800205492172971642104543871212437421950840867009511229263059431408261805638637080935108840744163608800881593568409658937122999016197513439825221551381017518829676511985391464446233916693627071080606650415502164923786888906543466418958050013556260754931922579460259910911632209593906396144269352162174615034359978951928580297254396248467211568111792016129457812557845519273238668958258647712747489376038220547127475468652368188725387820956286657934749501426177257474140281726105615781143166944433456046692699539933369538592322722813702130475524731184272464491818098967928141224133207710042955881822911730739549413957910133421048067327035900780269655781613845787670040738724173844884492846405139202019049122053519768464661118205021416257947007824884195064115799088150916017106521379093370285595391707596169428654689193410769894487777249554098070903536838974530954021189388819145538058020868881795704259716071408657371657536704993451978508013295774189985685352799264856812945825203050401619245642874816625592168787118227135255560197663426015045413752444987722156181920128610195649504659937976589021655197518867707000685421438860155192678687756986877193082329277378515821972437868863261531599653953724501987797688154129034257998040883840839236005416185396979113278301292775553456795890411581221027208196134107707816957791888261936260463568538112984316490097728707863806306129276874804310978124872265349671625404842695137969486047186354290715670571147090519757071559839125939616318062297280431176315232257251617574052510648172859934573131224718549930932230698632984223189698095036794585176800395780660092930133682516298058321997367307065022266857526392576556807642978683506348755646710867213327660632329611613788609892069171307884745808442307250057827036777718142787176252058020530304997126703912372075191135293613436282029293583858156183789267828908204800747594629376171186621678608780643490297977074648858081716287934225896059714577708917285712705075106829158657271459487851198895511803273720977505995096059001646208964093426377813693930793312179468366806952702245241529639038193247831394099497377422582533417901575525729787338409645613875805587654063300759058300797261253949482157067913266998966807788516181236990587942287578623643333364614103311377085774412696085533726617628462621636530996169464089003375281398867904582843090910494210591026993554271452865956977244759307118576572291402784451626517635414250954515277729243744851232884404842974913120341764963776677018224887558906729745414688303815559197541321147498719895487555528616377329360555873572964073185736480254492406491777959313207220183460012545792557888426093063573513186719719879765346872338362808833690604921276230719093482228039858231252128589256244263424009777490154337501798262570965530213080356600593551181110347959763104287575549407672268206809657019380060370053570000552635903706128258508765771998074174350656558633184794646656015013277268528142825834261756546661703757395293206582846760171236251073150062713274750478335995078044032154699399221671284025325942168039102537506367304066920166318582178669148417647052107492136924300962359762446542572346434301133759621882893775258515329197056059107332409222249918956795164116933275617852843588312230348443999488859502530624918535024555149118155084197262635059249339748163982989726015205266871936811385670750753289201326190454465455956288294255516160116970469857852767156834478692545693259190214867374331361878642261703643929086917332064893876321189477032874338861038886949264565055338349426479369794767233340223238862431938368237934535511421477273657583023417380078909855977695978088486397983266981224952009425884193916750502884009889509826380255334150612545129977105910142979727349009786110572714833499284488519498033950522554055636238873507032475461475224888542241207956118618081065666092695309980032019862846837090356806497978990296732070163385345565319688083324524828291831795601651316235586250606296973577034845597664335338959442702321591837583243114784944244952520337903577288050014831721100083161008221454389533600899612335014718474746651394764976267080725195320618914124737222457879089249934905517270977510620197446854552377831358175231071526584336939000238228124822520244211782095812076792138787986700599098716508836650430714711108462121754021035698387555506723734761599500233912077164739373528041221143681805911605629855440962274937716349015162846078239369544137005336286996638418179293216948373685320476288069039395409977790471459392555016716974409392166788697637333243990831179252989889834229548253016370913474281693949147246017235935536309868145020820240117735782514861288272136471504024612361799097797951153904193355696505556133288011735416426451854423108734959726430117806888648623796578634593274943698036158200637238178875253773578960766349923787500329695277835459347244145042772957686615399445924080972619882430165316757917518678760679869277668158654028519277491312390747517912396535871184661080915786949631415225868216025877159876310710262653466825038007215982443068305035761158375271697745411403754605485753898315972791388166074003005771508742155461877081594959179655977478359767197277860164020317047974277131820926328024191348094735283512536907639178651009010121972170419209096061731876584113045396598756136072378186119309555394901046611774497712689878046891927738171401434563113122980628162754350783411746072968563532811622291412561424831080138999534895803866082284579770958007412670782702775217726917713191044840872999719025557334547899957277349675552322113908202860252359219241679309597565987481409851963657921142518066668261646704562514421340688054151888170054047936284058124391532126322867975881417739555028197067271679463896429638139553884535688257691756729079822315672849796732001490113757738040795009620237063323878405872445164137816544634798672225042992661246952570733859154962847042271395840547410677767380480832720746970584969107636461270365802088864310886453625779556305099249359474926089187799570864716916098842930322529481172804482151209639844273042741527593731084826710188365897998017594224055466660975737186689952370372855811019945864316851464167823344788092469156236024049393357705713144527735579711426293287894665696540833881238010664040371697920055606393898720964216305620927177954162170267876017069492003185751011809790321482550187119723821311511204618322309043057934727834512203738522206860959242291718806506278939698809744556997662227495784405760206386344737548847625259369842039797715728590173580375937449239803483597472097867482769917593929969304964754976662395979879462350496777834588504117422577199121503639814909284675413118080632377978467012207801184282689094090450570838589333247743035352152725819813883654927324720843014873086426394388692572053976634069278794581573937821290869765512152984423048526851436858769027147467672057070309123020038393577351129842309981547174182425736386166816682467032385390904119665492358713844255266560677766543377529302697698171560287405548565217305690744321866436347047972984297174072836685049360791683870875067477611256041120459162374470004765738412451525942261019704454142249147061169873979727079456456831095581305032454485634637114082837613465862736925153301165359293544011535786997757407381829885614779046128698670606754617002327114745155089821513719212268644260165238506880230573274961256649104352564016735583006510998211116448866371691975774043385894296195602525793366086523663238298729515300935336139501338878090369996880598388630060272039399692541065181867089883307431260682487401518068165848795692723562224198751981951261984070778175898083395942223792380142975480379686185740259024481985170803560001622682092493754268059778730572559838633618710111693380834591242110938725762231427421685681516598324463444444271090277238613525878665327048603178142322742308375608697852712214049383488708058544946908739108505826993260587855144760282329016067710399962857896328153727016563955667252994079198866561678341302747834124428633602888022325836965176827492731516749099603838347843565298169808703338181579424672421831091362331070512314097099782625561080019584973643446623996271662398659257620525695029632672331448580014031554413620074562243586870608110260998597723584330083406581307966100538114587937652354017006470760318130141396499959900743505815363642783072967275045143609372323679707842093848942364293406263667153573839768902424406571472328318510693504238357230773602839060961565493776346843727870777482517687238150862440915476148931055235503917109412989721618437331303154391585577841003639778704939830449060945071687794792766925164869241695158437426928492137666105923791535132811447386731318374105897281060919490315279344262065010642288486418459260342304498416804284792915600354530759447364043875991001033457835827370342518316262992852700794517861690958105059859416738827439267611244040395882201524872063186200184401217562964282499585498943786456863080401624077456390134350625686449897675156074132152148732856714378469197148546924068371336450932946082908785862830555211173414382472909866167720491674337388666386082053928957789574640537732638510390197814728865005390282644608349450007004947230110903144824643515273053391392505732807665610556693327682093482366728088111289035033370890524213180065477494932842410645465743045784204387182415472543102706505685931188240345094805719884976061159795910788210705106943556214751965486022956831972934800658863482767067009758170364637834445949956594027533997343472723186468641522818015154725562595054053788113071390621286750771516198292591003539104692887891676204248116350681474431890952455393371927772618118391419654567040907665779017489770031479307508775650172849439434990581579662940242930700576980684562979330844927390830283172857580005946709923456236461654878460971220836230928623659720129003338219440164079272240679311812364150128427493295851670950755380210695264972151637660638652118728899515501778213571951455397742197383574803969008020007323845812556715388593266050643707758123892642324090656728501755097642034426120220485467842469661860415676542916141526165717908973275394809579992166327026466821230504346032838916155996334961320934821197965064523050315746682344468716587625738089027391238256591520143965499826591224986904039228633779557980049035982071495947551490200530883483581472635911589218610039522530707472839757488480844091597399532066049209461682479540800328726090726985161726874483633782430080738939590574974505518460651876971375307204675879813424958306387832124847601641223063098770040882174301468548628660543996278018802672454852079110432887338993026813062318923281457055162142245044131414099805591906457876447991128641968806848280374894189234789744623961146570522996134612806116739036371422055238105031035164674795475900589891028582432546542153243537608315980031842478185370966955509896811214402114163842812852027332424396178267357686794273983132948504903770611270423797945610958457804554759529579838277706607853112510076621466942659065071214953329555354378830084918738595539618987883109155078164606734848851665287053182297238026982984452955376127477004611872826299053620926013382796303617611682072339745244546993184888925008789474480372133977323880323949192144991025000584912588775162294812817672961559046448960789240393237021023711025556560801025157684032574783233390489208598905890117892112383206566318631817773381725365065986709836046585221658429412127968154664718508972422777431670045104337867854472501032527559533869184198890963355970235860562723350112658440877004483000832649659506688632208874858248303919384842980599354206148835225515313363665096343258743391590033091738248213294043837771477604178273641960690906500268210258711470309964069742183779507191834957825182089832517463309968560913806772485521285239451019522560147193816979620730685116285972308770632322669326155918809410231596687855627886810500735742450110995959469879939779969230020868851706788599093280266990597301663588954316071017428707815340558168526169945337756249217491684721139408593060974041264136628268977295666440645203732832058656862237226893167080533886540247388619850486970603203941622861992999401925600494377546487144900179314384019368752123547004201024861719067288606887832759489795692473856551194569746890192227307997858016952251116788447087581815135505113620968144840037283517270332256819487570499972342832651576521490980487936962962564525977901674662884501201296315056708745621733786904830485495064339045026338706460508893049659151721801065527858605367036586432847832022191942064330427702489295263593779115253704501988477151474417008698356545570061135698934914143685352097830077754318228178003293371213350870859635939873279804818632076543986702170640426610368214811938171707726221580083627626790701550861909768654825339409305064543292534997394086931235744472983821819186231605592600481168153427304380739741007629509028435121658971653271324588581249704149689667510202008242549970119389476957239630803391555421886107028242187634947474659842779958633588296685266992892927096595828716313598240202874507445144097321651877480647738666027150824548005376309993544182303609248512774428499135170618976686428307714848109715811961604301291866946076012149109367826304425924343702600551858846399000734154944532700942300497006928935410358163822329055353734876174316845568272456384724361765273441385861740330290919473311264276958096957295386088842719164089373105891395708617668937237838115562274305851089255749202185339079068001466907515686395146983473443300903980408595973900761140061045189139590713988868147617652063256168332777178015970541620893473818428685203579229647247029369671796495786368101206368713324251162674340053003501433574075603097800356854058778140564534086329980486678310710127029343065959423551852913000623979190454466371028503663761295627360217653173937173772405172867727303210238664870010855764127043627175047835935263673901007493610508392297729725674931834236957139061665685433458602337968607321384443718727447618967977515345227611075649024724098926175809876906632159321959547218981933507439409951002499406763004039765571422135707949506476838521461530261232373249968198354517929585010948920597671151258198378504696910760001165937588560077638418683664900944811126972810462711317199448969141780185102698532007600222306363404401064578555396177430023275611316059852317862419551750896232037781139909080079637975507040893039367288418218542620338223692869179222215655625675617274423012223523547127322271569354521334254730383515906427507390761554686793280067887841695136569397690540064715369967305714429403732011632557008587882096238027110972897925864101885684386972041827621724888546340343878769592781895463230652394152997314360363557767070568590617770299203178592640147201752796002175821245182268064032459803195052858297188083643320191657135686281297751782469083162204015049707476781211713515188833050850742645731229881781163322618779645382974452009541813187499270615837624612219145937735207965140468725959372405353296291063928101256718547157547151822542751253295729791472054291301330778527701352002122160103392792237732224420390800396547522338967284947813201898835748291300569589464585228948342372387780869060500286774564783926593970166126281004308454328376011913630847196792163257440005373098066707543055592813398048518825223053598410080500638866422087409918152837923018412064324713440377838113391656915030950490977134904620019212643594286933291525850235491335773731174331210892532879024677628005548606793642008218381685741893981590993173363991235926489153587142420619260239529717345986296172309839251249449818633020640518662060968726176743791417585015049111041974381905206800332679549022496226169540769490275662263255410600305303757754747254990690432026926724310620945880504792587154135493919297284917053219824096778100068986388472571221560395084997850998127376804008161653663088223161629746525112550730038194447119535778508393916629087036457790572007664292298001071270696551771263937997826662894936402273077851680367564184039514465888308744028059688094401179999238296082286246811594734113465638466558558172014733888860054163088690843400039896016579472000752774638717309979330407231464767448099773621334112725596841833402329204619899806725223160603536789969686205034190394465625134210365206909818856530271148063400449856805041470106608028066060568295287280713203145028231181914400214807709136017344851322870465160089041396921896670871168830869590772611182482585658263772015620732612425600510011537371345081901219859196069870756001221017300099546243519838159167448158938632611103908391496519151681412059733135058706138082706455897535153961426801584217432642153829014801111263733993241290509167434814905330512153649520469785506168094387216406384577749032358091989401508593454602641953704267667178239150417851642623688265357934869744879396075560508971687232340226109894882525332649748238788237262170408934793156196414484454619266321928784493961818055621581616354200685780249213672594933250189503632732764371131630152975645174360536839689898034282121266280140539120301267586116872167967361955274841288362249217481101361399991423447661733630876468993569337924342529842370845223764507715071862427412997786261486113366699698537702054693496501628245316092055731371191932752882688628955163015943248219534633706725275061182789657256117975071011337687024048389512271823911547066073018019940286667081496048527954621006488700841040357186137875388354993638401164233434255085944584363861661420161639208587546979466144519045010034361516689519335694473182088375331062376049576595461534289230682845444575257808032682593408600511936257592019977275711806970104297521929747403894905619088818882684393448252555291030226458303084538030392768842311517192560195784290244012730809171148152807712876888557019016883745210497756884598804321375213278278117577049681076623379358254648803675473139923384314634552356146338416942813338647993977415433553405787001373126080073073521066803465524671563480905997114156690997191953237603821380077527095729938349017165251455992597010257523330889524661981550238251310378395977088610721800203370076035999293305252359381434586779237897564058698940219416342328978333147794659423851042608661786582377206660281362241684341258469972536782489788848470510372146081680851509500221660251826446843512155959488247530259390402766250692032778814008570931298452724086695681419023263627740743506424215063645174326837572087344322644626529445187089317457299390138408484417117783900373213075052031929281173130669566992390733439285814408768667279972804988893591476177172158823641180583465328814568851450287378580874656312939319389767414114701091675846751399836456086702634807459233648336139897079800658690014957033793744927274569503809736937102229884708878228005421065464251372634863179179288388670281838931207562068155601937946168872125822712534972169446692270727341963402685644906340463270301065574920412388598733827930984533801462666128151366943843908840016594481175009842065625281515836688719840589852510080573978202690704767371559832241421081479354650375702641519028544316849197386026501316300567925852307972585246348016947493751632122545564761724611307103238163436020739682416995907961264155075115579603585242542058925386472118932780129104973379335509482549925585647737569138440598271027650018411793895761940356014739413270487643217332850443273217676941743326355232447095904596877819229396251644106614739448626300927216271431714093071327221789683701944199982183012204561662346186704690434094571478962687186408951333842479478100669671403771140991321457847269182012865602936346019106031318742161073774298151617097316338142373665239473259078988072885986954878974005507337016168434847825273319213062065399991550575683498722131777661832838261739899810754231817250101082180847549885439610100175811684468190697966507355786364157511719227546565163118205101627156442132141397077116569131343232623710939871416037209834955797624972591410844709511384335090980353658175151148442914913089107200023584718786765270659550543144185322658422637101037147939595155714539140928341421251296671246794150762672759295734056943677512799637796018359251246238619857325916310953460067223296207573964192820201528266606809415403304541256535509423242029856327107463743239105174608112676077253550568105139452585796279510811816116635057731487685862299612996820354208518202754751425248206429711241844268983934798984629654407384996199821990955702718093920382252149194687547442731058472746570192386541165486729209010940906321591617388403404529905207726112016710674409442196529419072311977440257708756489660211534966999725149505334976998530118359188611136462380642169479830725727026673809452173240236143881144620516920797087379114034239478450410347012229828757536879810628334507703292923173287748256627680544731579956285163565343176193880539929823307184915736619098333453820116666675782319991530003178171322131499988482715098219339763995737274466254929783864171415255935744580290585901347173992475476377378873802048547231091987703879963632038587490134275791810652981978256317869802887963716552374940603299229343195657588458026232982555591439962400366621297014916836612574418954918635744618897585410513746646915875881954359687808557143387602654593377789325120181697209791427816991052839890641460097595108404500503401236572360321004700487113909783038067330268422621652670264768366255014279392108294010692425290908870775759246090790039028715896457081406167190504428676449163805278944581558264186581091414932682302693713851971825800491324685572610392532453563294741634681696195118350771181893441994905194493905678601095429441642516740902222496967675136168241966962783781116856109475962520958958167317329435924269649726926290280993487222435863496640679677638260020931917890981494731837958431293228180955868555021585283615430966870964615062816834615564985518857025072163718285636328626660850320498656745988981779740483727950575966422853960687625870984321424129838155959631707363771089183400368149571721437429624239883614985961955632159828912101649062378593299436232699686162048147575673838237995134618097960043612329144854680146250287425786574188404700677488799890029591207651666950344866972819791399154603484947570660802213966392231590688253399655249154467948760461849798679610617861096957961591078540758154426886102716490366022310187373450007172110149936901151578705298075814701160102922631993641329217307218796451246392898159202795110573452119265810851027947274268283747544264692162765394517028421416835622548558453924801131515357321531472462520558646559352375207782265329872514642997529200214520715589547555888864124485439569881575209837091094795811346412136978508952525905809709875691554143777538648354561652901297086382819940764949862516211980718463388908972735516787375533909328767752639082707496302259427486453161987637880285390843367837128484698568736148515950971637367609400972549052485203303675963674925089547786938150790419436199000579127428707886833239152419556539538516316413689870638132917829293621488523269985481099323102076336599595135860497859465247553195878993595070761692830383069767939352041569446216406824712194193569217313535471575184980146745196764828707670394264805388841625372626274542792701169348672698811190816657028485793420282008095549453446707987510472917680365064725419044589754557900726801726631802999736342110415712933694753201835168609942757538503559557078503012132389421586396536707440150933440178313081484710467586532958589120107340179337612416001433664412211734266639011005112352807480683025192751640102157956588365286570121651751891333540122269879308999355022206376762698314925681782420737566940984395810439306051435670681655535990763151103541842507421384489452887653019172982693409280422673114042766181885705728953890432995126860900151705373268557595832260636982895379645876821259673227903194706753186027294440637298092390754214449008107803469057056650827507173793590754785253699506556499530691232998860011745852640162598279924004475654269626890579392814926803450232198127473747158305800584982638676985499242607186085673336674773638275990994004813307499265869424015477890344000978517524807940269910148770513027358147867855874711662695904409177613606381247350054656088274839306380436199166658878666400937471953758009678484470054346076196249607964565826355142170833200811488543761850533849170352261993791435747564016612994169141355631054806038265020235398952262421252928249956973430325169009905521728260283790982401437897492305038589141869169851598405230662508309485981364062625167744556636439164237198990217157254219382613901633489481333520681355392084703090352434410952190232639666312133891340420445657478353981077299963713707165981150336360906116027221555844502971298587807631711959570854927680718094196643683637856251249777426602995860704667191294197239050947370844742924446635320459987348169562987492273864782938277342934931786485751433444103095675091470798693685109175649546973293391324749242909366502232475005900787865764405358958212003154425023728017905993997460162801204230520087877819281373259322586279552892343813256228499064253630516345455936791479728709225207200885884096560683203493077066252915819927125803928046348102910309120980423929698173115040780898038159420600500410210076776477263875397047864461122539739143622150372799889000558787067927797305853797749196531151660645041338527307401074965007808648807812370072732335059958603757799053705885159595336423050885656257873850969713724320230599898575602173169441831858914523305314208164192331312710234880710166329070433635559606812834612734634529217523003991362336746817964524804659055128436915348846945475986714861746715948044006281476961729005293682378094835349032138915757119324333892607499751309732564624285118602236097218910724776473195374083200034875631227927262978545711254842645966290400129723543255468055315009129278607115606534605189187956984273900783712911948859693382531936398449451734140780027201569894529923353315187378651303609761381131618828060949971208879083047042088256959949548766920981889382890693626939240016410965286433921223723696123104461740474378975901386104658484910332156781031962231434848292031768717786221264552156110241547946950729930498784634521655529729318367154973121376339821175382453932134165492742050550163882265110782856009101040418488571558083879669473326216165459526197738156810569421754858822840032977603401711592749943585772245719127122582014571044524651193186427633512852309125427009205844106585380842339965054586323085230117257601932714330656714830865291596005151658118463113053860195704365934117493550988047079154467260350634591669190698984013829041172693019016313855037627780068495729690362958416253286598919680521548955551390611217914134464784800608173727787420081155308700241968908990570704045891072046821934678111617501336437574730879816023455971597454050106089172579065980770393853652629313452173950616984951631781754405602466686170788511583369135986626970883242351545758754007120631645124216963070553948216684072308833071011720341854142624971904301961755081695614559671540621478848813072537522078268560849821725382250408247656598096710098515851492118317137492567200851660883806012015099990040793051502456477615369929982270597447629541373050977774156901334953601191142750274468610730573550324183481076527339616953784251579248986503300183809984183618016618192593837747363216409810967846593143154651723435596761266821206801783114770321163000505354896417791357578129724563633555043610931155395809625511018248490862432392450393131012795200977378035229457483700536625631395852105913841949357127912508352823148679446603452628196844595403392819818490226948641897659641076230633095180426430108299455449298018433723722968510845227126449100658884373010262866614096152767169714945978708937675170432105185155508238135182896318671759045832291143273401488166596029325558318930108967439083915568499192757917244992828371878337453084862860043964485137604706723360638567218737327130085976453931024108454806749795706211622053830308984525544528999492460089506605527293187659856109518271362072620736574115866302023690133605445249371927345477665957018534320463979960493599280687979293274116479003054778363706793673809588980665181506103282988254668655637252510585206322580248817269085346350781336010932529480735456732235616299474621467926368129981445125907405527056518763191497311859505577564738685123252017370003936621191491160909691110794843399026717875123471574862654047076470900866503518300382703493935541437829905815434943084431785514196179383573992882811404698895213203794142396677933470644672074288339314722087914365915499342116091497717667395227821089099165676054968621964930100238907921441678011189946159066934080048100241188440701920971917556322952422025187637188899075936874688504831377689312977055571969363397844215245937464527764929317333027259332991684290417864303414240978821625119774278719607179289605594300505718492340312294101968112974160558584074233561217069108139804068137264591719331054071283856029748719984200693061371377094976867261357875772969734603997631622206421416006611716670724300273203656683752991389344654673122922169992451868173847967961141283577432995561820773786106679438454068767557740703623307463941285071620815227239675273998430328225260093871230705603519512625724724837421911292873794659707321973422418158673393601215060884762372549737221455417379916766736979565929342489399864908432012297038349316938898295853730253032611779229488862183075505304036784719760654153233622236183941106611216141806778041704659155283963433197790244887755354794412173907952919884841330548680088705890137105409610548504291011429874198350915068417650751665476438177616704314623456106524183064346084939297664802238417226144919955666748621552447959551075520561945392678131452274909376474722256942503872374267297914826139953851880254829153451760852953423246695824902332211452609301058398046675540584527336905732242845845247132493308095587657971834969322954715735724918873478464522091114006045052025938893175604854840096741503090370521445008660535747570187279506591372625320114110381781679850132234810086506940677692822170548730596509582053659158210291134300514932010305419969802721910357793976440024210327465528079599403013613211370768051585933502970102026028680892647743504076172834870551885935810715574022566815131642769413783380969375128103842452697418118562036734735430398887641103733875076766112885639120569789516908557191940977993498227803317607851109441360263580407020494883325155388348862621354112287962777106618800475443387640665290196793944428266733978502792455343318483512097709242065720572243724988505842214716669765480394509767682264906477499546916611787405917029528272858960368735900286577338543165549882542675504418401890460746915465691568443504352655917909434593105403259312823590723458694305673113117209266047649106118138006694293439011181848786816281022073220041165733817245872436418841687085180719641812954761336276637323798617635118154981225048691650898020902465529694118093814668096242057138232092924138319708370925868792690175220896202205603553491072609366366786715510612362124700417294476385856410780199013262670307581657048327408596713237020639541592196211141456579062051578302794455302207462399883449236455486193025681733136663532836829098644799233592811573756184887549865233552239938047393128927050832368181532340218454671799524828493625310973294133140269652231848841208792886786341714011462259112212426430470095077053808542846675171781432448555122026860764968168649479706372436364364765111111274629487175579898834289841100493219565327110260082292790077412965931035656671556031972915677180589130418782231026952067457895231301120613701514267290711893308212137128657571431213876754820126398539189412851989524594925610286146778960325588827233868649278260027457650979050480657668834891652581626362965293335621310761513922988392941082321546324094979935525191950351776882365024801040605722061151615894286534486591080129915247162230659951400676580043325230385929470832965658551580996483730607584711959321991702635873767458693995373416358146247344383955341897511158280587179642934298693911390136389660377164084831266787608494336633616128599291784554340896936985040168215358099895510411133152013671487165767236163244624580811046535142147051136926176499621674931144748701910346007912241039329374996775216326404392003129670704695524629199166868934357556506012485164072397357370169578616734453216224270913561954279483872035190967411335352739859755534349184955072888641660293689520204997786978023694412968723442652544483096762612775617762022140389393010245236281703346254251935367464534844044168188412507454662583792036351714843780899159386521376147185189541132498592153847578204961289216333552212185744185987187760546520597397472012503217921982353790191357425953414934244187676627808755198593149286749471106190546912615305046692728973398127361810695810706929992275887692048004282964066468167137807121915346303885775028474935847455971370982443303322798831487410081368792704732731895537678011765617363913603154929834462504366625451548591604196395359342268695174939568327554923936674900208186815483470893406905430782753752337685894490153155834379488275391897846731067443517582317625923008639678250297077731968264672118884319825784975814174977856436261826550680040161278574025558863440156238824495205551871925506049429956759330221675587393228911002571835524956946868441698515596672598062702936875243920945442040674562543624160719963411517777677258559768077104981855950187880199043064740365514108475862069114218366486212075856851615944640520749899248554068566620422231899461000621081440636165003942049108668659216200335279348414935386857664484304209321471456177174830667397664769779336207426509704370835980103169945561273632275287343272562946249253039508400813223417631165287229120622489099139462574903525528976740175772645406897098751697116560055624680553570355902890562949446294657798987903596740580252992073271560098780458208163826585271468008471094009863616761100649363379039095908494953094688713706036695447034474744911979359163377351304965729943384872648535561250979195664428299218972298681576714660863971166432262799265711784524459535917842278290445346777936575777467860886761025030700695849915211344428627308856332076958357944026278533603844798102225695606895110983310116781895773787922735053371734716586265963509742647397962069518370125870504159922133305827771560420209307540153868270930064291091190488025603760712811879990357460621207254433048360574384018702858820815523551110968212639397933797048885709618287545517410241978757153711531927693454564185966609678101447425506748086142716531607412270470536970868915119019821474756124183285603860989888234907939031398874147778368656506973114123659923496503743924776065778796974912910929720372588078381741688791855013137745644924637511084792035615817487678601094493546774895690694799177444758547475662369900152460524578294656388435357947423954986242725307280709356398763860049307666830438710883128881650824857138537354876756397429150376165561326589618467147279305727809548571131891457753590955618868258848667831421366845927627334714267205675346459425172991465166445932410743458769642562370011831210303102739738528499710865024146714020913627403370672353597923624797299322678201927137209276305822019145287445874599221197339929332482546225683905701574662589660150684675296702353533251556031624547516469257686509781058306529001085462882457307746125096491871692716568254738311809945921277695225375611878832681550298510411665922869064412922428137059815026130717676929288825817904303312026293586339631148273602689233868659223137750660520194931354404561255665067818255476381326360391821385043394399901005634574710271348293213311668632929273772962748647561134301597456583990938992446121980734288397582215978671422099457255560089211291453328118255003359919838048729978938149220724478849503180110491284023772976903722855855601878862336547575323720734146440235587695264232965422135713226542729460276585230093619021828449966828131701658532176568499682534914699885477458723474801199814243879621685250986955633042448206613954778053165506078384416919408004512038513240731748491242657661702969581454344238287504218993348860902494916711780733147415143890914415338054425256492823094030922553529941831979141886906883122137337058984560115474417486217557745002447748182872424101272149290562471908954966497933499326375115149260625135042152143373132631878385333396466021894741161306263748425874495308699662798019656474638596365072502287483250089723656351062917871490202764755269318210338577845778224314508857505153240823771657312111695240731997283763276393472076797179484438825956837566827815401868041504649726292906009328713987618938649860064178519427553123291316129774017441583392949984992064109680812265531338590756983948718335428438711357041833030121911263799772867147487192185002686053291511124092731620969784863441978961035063267824964446454344604259520420509317992436499472937060007862827731473364804446835297272975226582770918154854619830944708132920119193975719418984408500170176489215171556902701888286514998835388085116030951203926338163596747735524958752663245293415709852966815961541849780317515030208709336168578316534337231470417577355151661873289294343600232625239745095405896295184027139235620942840388490072311654473814780438095019995589202959951660133971629180574434297815618265373411364857713453009712491724269889274830066095669211765312248919033171985439703133728979643235719277598900061486555020018196136178011407678482633054606975098949320894811039535360745448507179281423702400408580113276161324353483867544379560882374006750142640309232838737381640094634799854046416536703351272515783736399857879040348771292148085983952885435390086395885389320611656753070315367001003057695824893724298898208625696777802861846624248672573607663173072507775354090787432469569036226732881173657067166157634317104341140877690706484156439061694750533342010372837251926723049080875407439532839395436352652375143602624031194742408288644742959204254036443355584688737910939417673416902176838283952733369334374220203127183405212564994365222689933519228267759682754888687697684647912014146004607581355753404050984857125390212480702248904730560403733645148331734847717491520919529715837119036933010754909512302955370367786317825115155280591646131514235787903287246211378433707322792739582116888296518962845329209435650607579125690598713285053953843509877324313901764173130538403389759647592328182836167861739996331700784030149613304643764811312259009281231310947202661039064679986259851699714588627608265826321809651168199179833982997190716244043559196573699406413266619372708531467291862820286043220603124169368275186551494465671701587902649030390484456897360132234772061632905233580605541344244247473237501708503260800555186127130793477808263652802022489384718003969382993852601794803515450014039262374540422186717854604603439892356620485417485589914710757262751813108831105346774331000149888557416764450897244014584602169700453505457617135352498050378442481176219045385880454360931983105986699239790510975623717532962083025612897578637383541178565810998188550954507561076896420099236617404974722650385063878883197750096285184101307692062301190423722026669433699171963055154130396389270532212846238422518817640772774867231771708273375750141918249326457236751015256163743085366476889992524562780978042661607978430969391768236526080832646685043348671887489228475667430099701502791752964200872799339670230116526306207194602982454598693337315595345511445430475721634814793223205030184090804607988758001597937207248755186172584197802814809369723107434528418263725217776288971691644582276357211928964636383805631300579855435411110525984120642981316861292285972362930967681546622060898006653015985028635526892546840224082893227442941641001315359075668101271092664890684306813188468396088166433419896373068415013027995873955473590531281564007698423057886543057470221297252654891083436035964503863303463239105220550445503712845750659813008653891677991071639494709403146856242929844583386717568414938555394722499396698010885551159921961630245726003886530517325818040140177978575767625962118938225875478141571375081952525043596880312812091745274508532739104440638094204434041893115424477484707001508512508243294919202643441854698216765934058294268664101405571395411636320098663754095868430569248024439622416840659528595163287237643215145878990652141994892706021248696807133652268642522772959864971940834335799258966012071927638681920851338636811859383567992997264753261553560072781029218794547854161595229581954852302787046133352393390594709350871236500748330716061771766714301602628274651047110311477791010424176307050344727645722519731466103840007186809466978457534299244259241693447385427964521390782312814953045272149053014270428374523843181886013904918164740120992155722109615131164629096452536513547193223691207158876139989253825615228903955486706388231826677149390476210433290658100809014930343007022897904417475396555755774048289150860867787970398834180064755318855314532177542440875964811880869735833878761065834080546213020023777090917367585637977993873683508979124259341785391256249786385591436540893183527402804500076587119215304380655304402037386045509056820586816152922583730396521920957256104923033767851312795313068013173767956676720264314828154375289330834330695089075912755763896600168502932258986123382515932409201871065514934788282415846961133602582589685895097506156467497070171618353535971017952875128363800427502710551033025263913874633067593527653884634555312961806475364003156291958391748300951280688650770374327462864634512211415242293873964233852953247350394801235592794803187791652844773329607024806245269839899703942783864326095169581869313589187128221447353119554586699915179231793654177789898670971452525561152445001080735247125720980001617779083597593280461066832095185236474509611058381755229543011781763642471256809268526062446289012675957097577280061385868069799652071853994180931576430079561545456534139197914321373974756399367497572249213607950946287921911403838596026233691938819047835882230819408401972308652737384334506917538424099520936994340375858237479322800421477471511026640655535320926839108852795549625032534386618672988037208627921771475381086646980667227906863857277956295268559936059907801244533022632356528242453797333232093142515431588073714822643248240798798487280833871752517927069664307602291228039082440610010441086068728163590025398996455336672095805495421415432821756921514446855179320013061893665003085083371434628579240713563658343069403456144826543734097317950618111483804827875267456679623768770534680578919341716126991346764097514833932247248918352384016278863884188287282765749479854763564517754755685692355129322976636837578527116482440838295025453249726542154597671341084704085867891587394806625102287317192439432573959672442790764778483487024668624985958606205754656846858045063577563802632013919991313562399200094838403903286240778837462048650201854791206868324923186179181636978197750939770558504001244843362358268612650416534269681490093080604664328096065182497605552427927194759506022264802514014741853650566509471884762753019940220824616016103093100508662407519512889558121349354277110901599439447980964554520516598003903223604824935727770001350915957443895842037030412988627230907584633225537635096421680378712128371184742346301933628051178779683130072725282206238491893271669779763599649177779676340708113229144562750223361788626266002406519370682368696095164271414789198259916730502524432402334701589898482953433519310076003169173146875741795767178150681445222893019829551299539489928167086455770584482366984912964880498251409171811944900896029609413674353978065743743411894317587055776653595238577312344130568685154104451972247096560308468810794465674219658815017405300930429674348557052161901456832744658095482274221899301746279571648997115928526525722967752162411817004011374194582930813522848725041808347336659828014991347691320854258203197683867191034779158175408913550224500350873715545140406080138770370788795227564127772805808223187636293713994693624861470315057571157067799431609722453423013979408293714214184063504924619639758793023020493524704081160319784589664207555095806283271118762157576806596907626049854126284355122829064869298365235845256847001793369780128911872885143733741166092696823789796831728506066182782504026204678658555787648296336731801966659444463226862038909543260814867845389734499153422690142385970853601616855633917907084284128543971449562421849110347577833029029636726837739184926258039684323987438978532854214943538762062481887152961574882211536353084048587219447039354157680943352067824322337036112448690374855870097677269219523292155927148070085443923405258394117238028680966869355577150957531072175458977787173240870065834951437640349562212173516453547445064854856536502222577674645759068492379708499517774664215811596515052859554159974620924788563926793605144443215476638514983071630837321088753777068567330979905126952018925010287512454044862134224523044723996981167489026873276014593705298549774413314226308295800861345938537788240432852679585087629925266644396622430831366736590380495657077199205364986909562880881703446895924558803315737786581376891294974250326493642631918369466057605805006161368393877342834548682241453065923858917927057107336167673138703347482311620151526901168328186786086133045760644482388342278462077017030885801320780834030830712087911038168284978167321094615767824525523808574608272587583620723304325288811720480687433080454341039078005725394378361278867139653440947064778946059932783011258100820846113920645457801011375946357291363362662050759195879496752945674458612097188852207330179050168518400918922781130519816877400752550237810090668596517230858578510508264884160767146088022981168036717164663818017116455639054576956219313683724762385019408328849283619893069084969593224242446348656844719922753289396448698122210065730746294325757703258038659770195565868447891380188960757422276850415984738494763944281450171484760056990650709617980868536788217024222764117290788748174354315882476341138446030172331151992572844878721292971532296193552027919812210760590194571847011027134181823891023942410548496939195444468018398492600866123778423585669423418103347803383162803325214572522406306679952549569887835536657618165607559601180800615060493039593663299117469375015581327789549661528027724145157771394100376140770738388621570199043633054803958031988920236798529987360559273207843450567097053442796093855263034105684673563939756050273778451317368775770045494954290806980690076832515340818357735858965859125623863571031226823830183528196378839756726457791523958130482700108127719257616134368082963515952976691073170156714461252921109439924827493790767648031090511596043121791149587647302967213696768284060910817136390947063800489290750201979971533334628683830811806874812938281745009010123257747274115085184040640269084661175440135027564918630438964100785563685413698798827021671832830016795684286368096909116100822611495868993942972288889841092194288776831776712329204510427331150771217851507097802069152672233848941630798274078053186239480075566863890110516104433053069781093982916594986783981847678652207126675292731647586359020912106743030343901585809194424443354544448265730191787517467235140180273842946698550944562385191325505937200399986778820473652958319550901154006275471804698324025116767380672555173156069804121200393089831720142138929426691760902945122580808504648716292572735516242215991001443609275781897761894259350691019600719170651583896182486696296060582611795392376912850647197648775923251634542910761665653582230580323922893007665741461169179151720779158809764004578296250659349900350924234011430540408790670841627445800229943311441237952802311594832156525165822314498925430837673461118015840293780990445295604760877771412681975004716177219901967087500920184529872701942736030003789076163766829006685753289700784274003353678310074753690541304938282597914204263828439904064043181871173905542485651461714014399840873932077350005361482696017086337746820545871908145605943713615601894525705130204270372779499830669753734508273031419920440935938087343640657997901019179504866643359178418574053539728553100933216628045489404646437865041156938756241451001587921817260578566823366846222023464189948620734370382530919306441234210663794113351748202392466373416314860091672291045857140823989206470421302042576863473013072474687886122141655605370986295849998724509564147315871458471447407590279597788404365162155444769955544262650649766454174809990475452228948415194955565280302737715131301119252410263743882141009555307156342271065260327068741334422784160299683804932198347162874753773338784708833417582491377200402722248195627126756986280865472429611511597534180469361471603141351905629505580759770960516605234943470618288055470953504646667638363737317989574821477866214374872251059663537147207368558669728283960569457263245889598008249535363730710368112710725316484201683418480323239753407397351162357883380518856519925598196113276315817445540673391152867134602581448180979692453763577795500975537055493251476027574219992590835779256844556498329804481691134078220414805718776601805269812164617763280804581829531526798267124340792721141367207319227863497056270562846815336822810661898920967518114481826139200279237166713032570018596955691467325687288544303880920212566634097158320771008411919748496666683400486453514553137124890484420269886235310838736023648636668207934984160576562432146551603869997019463422914294487226748161527771555460553991776070770174492538012850360330397353396243346912197317186491277173743067084228034795633931147993646310814227186526402470209975020404360982012101932967019644887846958206251474079039536919592459099259271531402581587227122100095369651516129236372058085832238995375289243231653936529890427302871316378624072710858566881497060181099066264377728189256896472739464150833856439877884625432319792132475857947759768272386260940106446076715500633610929966517881773039411377946384831496654361985927308518423349750345594927141082964757547734216088016213438648863776182917768095113639130793643398007284546419404522025277488173542541869881033969619580931672986086602972888225069870522768051359816116550463194470115737801540132441691692659549085993462198049580536283290146860141526876865400253775824158218966951047459607201615842110150275769132861132143367293417440402376683155618008065653208223297554023367559849949947532900417014701435168231813616190346888831915252317374450626244478281161486563296928994279173508149949839577276840175264923976608462139980964816448564502159179525809845634023715812860202418617653253084577894558886671903503465450416151440637042983731783837699247771674393436980422886411901317888771048725220059184789082484415738969587401892633358109412998690891906725616830788988258991840527555751312188325535504106866975592385939407770363852075533289488761477785975795169464161944390252971063895824857734730991653212628394523697613115912131773486366556145587807281560687194527311878621890183669371477358050733461639529335452287424474492064886337478062287813535189905264560985473818473018567209393317244804731044645955115669593775915346211368872168262899427720809611459100978197745755143711489744270118538921002711623738937929425467508392700676639204520521315423351325597656696484134001605890971961730726160711017086506327715526168612746752121414008513806341942996531312544588578326878280244703024969594001563367523017851370824007937648903204795635805513412962102159674390859633240771424063766981839944658910043974902011434405511249272611597590643008314274402325317343435649166311695195819372622440883644093851950820336313644116016784865913284617471419472837244836700398130826243890534613752338418918942159716367252528139187762923751435864658164328791627450682255017215565269396125726895170157317356179603833916888876719017231609320841048870880651889552308387633092216253748034404811295054508967796929043935576039461728703515858099925829999353942680147461236854591726052654013348185633560041841863002330285189809808863405207769793481692174426118331977882010283820819158839256179545412121231239066006575177288509183483792932032175591032112869253825947341562935422462050672207713187439240388678568329666150111734970348473641239495493199556612201899697605162913413745622339507693702099262133604048597927494847811371905319806747924279294612928919561928145591230662880654019157982817195779710417738334963108280479654378583002076859360651202333918446062863167726975774557140085221378896269977160076053003443579299465628804854475897508614012047076540246315132103258094083124969972733274428444020704258627799617177580030215121952686651048232892682099986817269933489872683490231863649702920756217016239698130986772785965903083573975438639830135276304858905363149013206164069790827346977591347306788406216892457296199653107316562896901871901292256386869298049962933450129276772004223972953227576123409494207348058822860777077778076637361897169703393768956899502008856932533441135034994232831226114258928871181082639266755576408348231692421881998885705072754398275015303453831436369377699336044220963292515263518536505765861538030891637634643804848564828994520034636208337410935304474767901603762824155137981381625598496978312414961834547616507175849652438461320920233314886561900958019411720243843983869533519324932016730605806067892080328199360758416282119379660122637107694965643493558139697438140061704939697976516926480297485713365935037510478109243607113616949279709833341696292306691677188245807008673778745245175873739192161755210685388700949096990287439038088351891152886940334797205450442474131128145799890280682481282655441260310072534807963994463773704663975032310818455727498915589721064560102179035499490750455438118512409969824436719871629316236018911333867401523581745219516784247796486710233303505263426827416807357258250635568002296620505331042690300301722861388770983509411672758505715660995735660336448229036047247718859011489831869834590511820035309874717728227543963981875692476461503977815651295261258885804418998677691615002311959581179803839958389414415789471459805757390601491247470080734293041586020748652391919428260014369909443593482273788559742146465968906894919662288445845991783018752702206344443338385268270027722475454668866065937186939160950970976101342635132078796880107348574939862436212715146817340583848261200961554622659626156911122618522377720796104613808148514004090625977782987240378225786634038197324935837525873897708027097813886631443543705571775065705467407577820005558948987921290876931081188675690916685109677850725880628670600693868245163400495403189720840179634504370938877218546866246313636240541039681384532163772717020711485737670037804432232642844287592561682360009521047059365346480824475234837356032188239538164432314634519281420041276094167565883469631492195508016080137966287004171150423206579579631181503090401957092903517456796046493426622481917881962609612611219490138802707252208247766468851378122853993326599984772488768967956389415788576920719152030931306783612825419939888694956032289623408121142695201076598565709608621820164865579449984735064475714856508233351849094818734852341325129995197599192888823724310830296622751381184038333047251497314007972729124918077582432893954394084741760362891705416812330642514070708244321420572437877595676243952473356416147083791079249034985735075986289678710437693617697576463917230962632250092226561606681972109307633292472462803996002946360479572562414978945606854528521357070091097815171339552036714382376620862077235216855871069913098902803141569345180819263856264708364136976368861690328388757702070410738377308606478878714346943892192132212642113998677441770968969857678105154208486451489673530382270928096905942822418933099406649624143278130268255679216027546400999643375978434520410892921499565703555186430719393565019504515720446702659471226185800033586411291374866229694146930869631223530930101824813348351456195579531336523761313399775375018966395989671316222149265819729436953217965195535703482351217313910884652540061480259495847799158236215754083657497247717787030932225223172269617131976900583299821066270864295315079408208686466222483445804517651272503574150527001826614115157723242609767583366091837009316862242044091430106610604785456568352189879662209636001096554047444414811510485429822451422543008358595782358444637890845045481529157929457538470688362610189689142452536240265320031567395520704252970977962078662000860302453016694898853280194875227713979582561815391062420980230368732437709910359830733593468368357930681168260350383558352255740931566467154236068455724768341816446271371089160778522637841611772750114774707252642873953263808124507530291339399761366324590803047404252578252263593660607537739542807952191313275004345971962617547150484195779780803647261316456617760692110980079609673593878921243273530825782642129059615298491978190283076331335048636676027834731691227106127212761473070611632968278598787404665179088299143303206665527007727927348826327299543187290497099463082041789267458918723622728176906694388368527870341830809525770744035948565773712115489755164738593084152825010236346826314231839351965966986118553273451260742235873840261471070932172670712360926205441183366330243583930303648450217761180914593709162448146688490234054101592916630141906651285400810268357481166047449468992213673397184593387826271146709361539693585805702301986568619057148319326134452658727267766149227942159567683913265239146339262941377610600287247658132388083137801510709810239272067114203913670684658314608741562273263455825275932328348614128045742402744437096564868900571888272320986749330821596239532176946716987135170842383926539738670777750174272714152166150129960728979947735017968035847574389938941907187852583424416707530405191912673887310539851374742189986468949001071843006925633999955507241121455860252991393780468150801074808014502651226056779218542073373842058546314207686432725981545286790399543238987810303048571345535216628908541786350948775888316486355386329795373663336613211460436715562527818315316990377182523221086677599470707971282062101000496065177859133401948101457190451444610679274752917359349788279746004589769153469386219079856729505092536418045282963764627182043000577062343068657439400856171667167441329941954599948559414442704188152171712843406579053665399160212556931292814020272662623519152657613927731022604151309900738736172481820905256420770230736819060505479728396936481583902170274167382014999798052040217720069908911205224745835888384330548492573379340825615461502774456416756174648070466719283061841872837379915704475809992094874052928797757248178902975965276020928563589590354336035047045693324484345116141594633184140070695807325030529945656791458055368941253490170106313760539456461447389380927431123850335676537242486002984783458051016803051215148706757247312707597037365934717217710321002711124386053677954015049929709077310287750481246698224654857875230951611450386908218190537423336271368320474055349864330267266174701793032679886810704944716254051265460430870240106425506441477774167291819004857907260819302036153263202190131676054327387688260579295978818936093501050932971099145282059478844886182796817347410009099670870554838145115006786922005254679867910574923028799422935636731974419000658216879781491026877581705614898279935084952044329339090721249350939628216271932897305175359283587582618609195676263224368354093222739946887857409466494334815047472210226908038958641465421827807937764563834560597704811852919635769378167485758608780400509698801263082385851365181037927220463432894876725856477128460602665388456226087227670118978681436168668859340622911810008506511886318043542590106273537931274638555699888423769758636895941857997175669735145911374972175858808130352328189628127077525758989979010802388865814828052398241539178686421736107619985823549424117327998054432941049351145660818672772752071305797699095476160696071868660068608948073701385014238564033644338539705276100461138352791052594262812494724107240060198067511414819279700858765962593268975270766300561689977822206342064482910473480292081433299597585228439045761573918416214899167645280848788453489103841976170471579168839591384672520559916488899344498386108228941210463547298008235424229505857719031163760747086096132223113990439127546781905513287210852232776395403855420938951820501713852743023918830967072016496260123167492581954412421884581695180407424183378469365555606038774729924993498791855461110235731929927475991145408427190820790560732752980786604392709459566354867120900498156468044281676279010600616165223509731782414046002234909829096816726793857152155027486436067730434802595956501316834666086233071083984225193909855494155010439665224178088312726211555171349951060827558622945168691125310164403284773489749987193324834017657313581954924920165947247614094936592992627718316646190509826237693911218922264010514605144387844813669960906886234497572680125504793125142578626573061992288028903434655262873756369163674443347826510827828276517400652155392571434051390832313202953994761659288093057039827387388216082750459119911973415244250568576824865941856906727119451711192260959163066617750918081774841664158779223691223543457916526832753851204459948512083150857941382055622790205090969135981327574922334509564058576889165930530500381280241728583277143209847701717080536513652220789181372157220422060129986187047974575366968885087991527037340728605382633896472405146621939530309603798496506977016308564243753526794101802053278179037029577086213210761527582792470524132386794342697920266091031251251088174737479648099468336668237458088342939408213528228302563577453585850868292000884270921095957525452396748230071234761238091455381730079698904089452277488302441672474275506147661269980493134631439651892541817509766990806422675026741525823131056922059287291066981657518216234005171631078668677294613475864250800644880033230248319669475399492108641311668078746250515791237910815447201615454375864750442093897677253685799072590371452102181070955057887832229289736432696617268940523016251386017877967039396935459549700473399086522295481447580305724103967385587075392120007971019317257394325135954568828235880561548150296075500461323465332298483851167231317749687591725422739056849208538616352637704872682675694097350691193174546424151644124313727283140722886294879677123186473548785163700900331306801822382990706033200519203979352899599259566996933987311232507592825270665829969196169109369758743504594054655990776516641371072689678131385253891505568240348048157711827545000108473189211023218349839745685697664660270891053652228112944208731241278000515105910917400178985943330199159612414157118683960130276593006608286303615357812914260768743113044456700449256147041351045166882288937604004081248564771436150994006117000620931675091422239392401755953142022123775630360265547137115036724183525215685468948250020634788618326639721586189932981854740835929651335236920121238286669177223585743669452017590539042473031260448235503639888727920944746689805841138742873995219017961745029269248518680604171295219549030773599601359868277780066540117685041668806032707987496367889878232722960189759498840750082323015460217465079033661876358502545179754698708511307359771933357563998107809132739037736486554666473285770212335592917313955937034997271143125776698317290491021278422718706084120679353069379537388171039460405588973423538988367801808489673497581193648912877877291342523246329730753384006845359637312022507702440066525997617074693829298680078401508028018919376242993910001519352741611265933444135844350651007650797252802792406834523445779030036768873464846007747014296966975139116843846202055023933944292371567562561241111392971870911282124891733149938981579269304943373647163003063888180297282053545095194019294350827922573604105171388107761014708229192757399867992466485190982618395374133685275463569440386904672490216955208319050893739167408838772552017533733405355729205865217065637471937331058812000186653482604046395390734329877022806757873168431872109887540914653072983212199556723284591916292899160273528127337200475740625826583011133602699665533073563803563973994564084563254484115454205292865690757672908053173567268858689006473517210371077991226139277578131769919682140994107693238739505998068182929472104827346455891012392996811302691969939753961827076811972322347370914316129969903842618174465636237990498381265001888310584888502493379890413811506314274192953201984030254114056390979266595187002862201680896284916991542218510516413111900853841158245288314785774390248007596933615151273978086479429766574733434415340109477075602715395582086808728291903153958779431886993395760647550931813009082628292855947392873702999652706535149245137260349874440372024869190982783524676992717969883226838183700633070661095947930250505532877976199203572302735389928060769013301370307102253970405851276510583683064938046969985523595635286830964144374565295646910885171148548463621889836413786409200208703165906245456670512442798226273466236896854423381975325113593351775653005058168747775024066484709594932482116151141065876402624318943766925155297190300191980930334608958750529138783581629108809837332649608845033331791323810369649715291639818650741330489502459144311064767026485387373064536180978489510832378017378237835556181482581692149574997840501604973379457263621067510658616622795832651862221276454970091408730755697288148843946397331975408394453650040908459919151683501337748433551756919455852329022986486426827983319217065119888805945206981360019353319560625596286867485774592189674023673982787138208705916563657842948901211413622597733004884064447298158686295727013487233002309319180372072210165927541354267784807747109692233203456067650892220132706151595509544342784992550591756366375535287931447361903567022788625505757275910536015286288217522794013163142458139255204798455734211193166093548415938724144692636195775392769588416477941505101554086174146571161251550804560428950745338156405199145855344751878733310148946839152821385483740044222342688064616554294038753873900306995337411079540415302775251074250680392823687316744317214325476762003621699473755367337049034144486521653188840207764174483718030232618260905159834939454390850261194032342282779748739738350772493861641269202420723121469053633426167218879328063707903238037698655790607248653019358630036360807593707285854973425731423806271693632984852662796832243787966132194377078654823847675098379794783800732621420805681674567418730583537317609224180009104778092380870156263034433468239408234434407169600885775093555153084037508550372594412228075617466868818337838428322837854808539196115014316181650365288971677585673143487545317017740000955063004946568881617859891717230697362843422717626215588518584313136338281556901386197679308713883636114000924023195642525547812502550138734759329664150408464768329280788790377689792066063878684321949454656334651228866555265794625723558516863133444706618253048989350245739842285044690254015654899517690578690116311566373342652899286606600411930205317900643690137594744572818214300659791758612949128299859599885738818808336557922011312582977675415384099788756782054271290096217781091469438168553563750879687347134483346962624760315767547199994130264361003133741751992183183613743481072928738445053292920290176144498436286687797633953064706806106971522341814517085576420325104587521952418195996316065984814483065685616956022654073982363539934717493358419641546942252976992692932075543637964543041911679586497047518533419959850692467269415186079171172347189718040102768639827154374668265999201834611479068698721317620416540757728137585269502073819652468622393372307077085039877077264583207668346017216651388518495032130428304530207289461164614718358612138827565429633808625389181916808697563276698034684416934704568682979193115900941061181676374870032935656877668007854462231595205053944691142839156101974242241256000765656806062348448028186344334575545617412819999804638419994493745772774802486040203498441310524697172374897083201802925472633812690771262078979814020912646066330224411744013971074368487470871323676625877202130381766119935806365646801050663626736763978705240145313453082632109085728099681121823528587744316403695493271228233826555138713905276898250294577628430230630449463616862105893241554785394568662574296233919968394879909440418669876021830640833994716872506059460794760510066448476968476813374118920235629556199930807640393989028876650098040239275931435473713070855742945364043825638817480426430726183160365504858158240023349487536918946683038615784954562197064509964454573364067790113201474656371971928591664099403629807081780198622076902805832543217807219339645639721063279898670848298452391991164128894752929778162401346990403852907328705404130666947848130483943684772688478871115525678831297041182659386887952948347374687175562935016189816487125117245378388624054579431054020964155206249220861094816473572081091936712663292893556047057946581157950469617901374454213515898551667186901791061600271469805009199744824531906897350962410823030970820773415641935574916321313103606782522206250230144286391834972579099765616422154473157956808555837216713445335966761814858411814425050520025142330164548212698527927518031927225868900881265893389345895236136208688685490695982971944234802732378847246656458787946047046645663527632585519802305258680410793345108412876088436159352440414934597485618959310341764902704243260689084871428596575248707654804742432873249010081499294580417034851284473394058167932392886393809302352084565855491638371584892968773570561328851816813813452789582034082362734780622266753534120999265623085233539608668157986822718908734238759565164091118233739115662945883191065498356875872528878609790023446925849405882500056611720274742810716736163431269635910032013700257258591121590050818704189709729645076831302925468009055289620044799355329896750247877036408054348516692380697311237203997153021511874433950882467564325612773122498594810260802542490784027499902608532919355246744854117851254676383312136609193868584852803282125824879473551887160087078760962559544402804798592660378411630155417109833900830396518530069077063934392527829335446169647297221417152235923399339488373712885910431116992938958620703236586358659734433772184257016362475152567833162855908421308651616710408867358054168935921064123587805915821930458569407576012408409469739070055963764336542515696705115100048948917278062716520571461139625158932192659668958506212824335283268913017040352534810824969859892961784205246924556157530884122747999678115778755821024496805866164010370512363570112156169422416410077798765811577430064949478700524284018445365022101171626457661655298862562317952272384819907575151390322680474483060912057892749433429072399971156740570701290673282884809890849333672120721339601844083904628668745461382483181474457761513062007203853822650837777550560795473664734653992894280226523315404012623990828895726630551367667768130628283698667249912053395851007035735619095422968452758599187642899274957781547916750618893741874979860323093304036170072503724323991666131531260209271561765606127219317740890516242787526652474251597482264619260333529067391648456051910677734281959548334437017327040574129271394134584668055027470525337551406184525805831965057398178518094851738095907489611416245047602350160326103018484946528416537762513809997402019083368483950229999747799415253261419787370791746840021953786838475635952597746320363948875655502142084685420696067748906523168539697022472773160609841813465238653413013414604703495547104665624465337253027076154975487081727070171693135384971877685592523464448930769297567815696590925503186046640266151791982982040266832206758343701069378142811433254818921810405717492138343878867080061909163094632040384370375209388456636846314496602004327375243002480933343195672730898604236228375399242530764496315031398730965810250074372734118214670984148695266804376470903187282416937198492261539654893636203677285820335565062945127249347220843668368889583173733968370974079673615327756048127245410854288859053217232689670121266196853136587680424722741847242812085687252230791002674423604505631993889687621343130129820982044809392301141572596514170617252306045484184560547181838796241070372390184787373566465844864540495070784983064679131510225144570138988860945377760054016405434081104472566328061535550525881901023084043405528754250167658066130487524495619298574452483580188220088571543114867304046410485551178020626880369123285720559535497425735883755821516493832877828010593194813473621976673759751524121067869189780996524388780417761715302517534336146249974375977854906579535281496438715960641131367408014047526815773563437438418852203197468379211360297145650772245593483262932809220219113984694076019233439851710526213602452445188011867638668899535033753827268893044938925739276893138091680210956646463697536399441783230377317008343426389574429441057492574726378553239680483415983791632498533537714365787388512745273463533731867235596049708738508499902240196443076456465423668279483001840423493824680149592559545294096788723084103949220124484873754901234772110381562961162678223514853485289548959030064170599711706405447480437928201760720598696046147652669743976020928647175952826768571558752572856360413183318474804868095548625921042015400254286819144312491026148478860620545649040378012730120998704541874888029592918513364127212131858040110545440486345840538097218737678929898170795492781845029703741600553105225104588558201400261158440360467178785307326748473031369079382471228023116255708513397500697143193169080764681033916886408204215348451110201772435425496686072958651630155294295109513923726727757393322506022196898975617021010082932679643619937507840245755360935175104455842076040144913564269536073889814501876216681508345658410221369991550058573517343263933974034270722934610373080401199405161705042548889704005966795872974389868136522396097360948283260772376780645313912505474842680743177346411989999533615201406082980910521978570102022683701562173407421349882309638067656769113404899115399454652509749839040682932497623857343441875309402462714142176349773726148214330120548881879590838672934221442787443522483306287514654515935787865052281250689931565713655073937439604655389174049005770504574399563475920332208984143514741855530906518393545991961195462783285035442566817293948988755564772876372899087118515575707551632740160878555781448220872974226542806847172443342048643036745555070931184979275304684171434606343170378523063886203456789123173344743829341162167646878642758275594462970384679811724926865619602709560725115104968433352937307621658780895086277991342081091396111118156859452654337795360833604315507330155756790809336190465701772399450566028163257603152936600552676472510258025890427430191877791842171966655970430797368626233961594377564493987715653118361319663320991143226721614775583836775100566233548139263158758612974509232860448613611936115405229058543487028346244419225301587914717731470301114163604703058643322572795622507051652054719208056274583553714343248629103872807464342547198599791449887388948916654571509094804012280172046141793905907782326708470010596075289503117622306198952689718118948752935725283624270208931062122948654046404323855775423422914524978452929591556916494281352731619864335494263329628928567474312813634951456582528343315152992246737089506401354021868835706493687374040802605020765422595886660522615354513585026447098184138701834983744409400579970220834563571619143159254061823656015413000543832052026949701070876603536497784775415399423681494164961535125994771868358968338077026588352412303442587750430022397777257697651646470358939376542433884827041601037209975947479690493203935556451025312073662925136619909607374483686486864650226312345326778310071301054397757556723801846167955795583911004348337388256275071117459565773599637090002682620136493589413564986981354775593374442411672688414128226907924529741244935675757798510418601180057576858064227882320204235423959751261146678192053030048929079677355753694655570040758550370282574145491955888016309914337331200301321528993335169095317335228383877128899807703346445519914432928925616756756089446182448661377061576109780095725455674022527921167625757742952889226355836239888821297791723742815546772576330523034199529577943195406467981480010752526846454776132852351154552415425983210514049709507749269972686740478312271740445101374269084533009600239187448489948535602296999488892161573664843634605757118926872694938520885350818473114208046257449274389053700466410106786331782491367407700541441822945943473549151818902876946409986525307555965277235959095098699700297020670094814778165981352508990044428687874249538663855478740835184636350182099459746334617204841140956165331346225682822291838928582767207773954406154488452984497620490616654994740793641251865811957706647775219050951460877456530421993381097578990391802387724590792720114255813755462948623584677737178108662589131901763753793321210657799290696462977021882801248283685276133385325414408589515655690606253555221517043636322738237982747628976507633049193309171537836662760137082364219974024555293770355463796512864367928462480233745433644562175428647721178896852733124235413692404883170395855344646723545560537645260123064154479979567341742241976883350132004521693806858162244453221025294726179437398659155233729267987103268574709491840320427218048343406646208562976850869804423900542286763144771498704375841281194938969301712785155791271353423210521101634169013435643809219209813246171938939397436269652339129370232415015160576281496802683700561622227146478716294015948840618622521088574102310172323565261471704186833828110418253344390378309503066638318273640442512684918213194846377004705336364017375150227635589200485419405958811487683852069824986911923189595401217915087325132262189809261935100145019509027100191033138808437796642014065725831190826119026539953178706755277543476754410349812565009058712394831677621424373359791350838519603552762472699688937796328516240330133717609377165964627047840897525927960564357715796351870804752624659157338884380979417930293282834429084262770286527500961784462201937207712571303362153820344534368695945997086273734336183928344373483111318771524586054959653194366858394809405994602759443856054153340843357292826004969115601406265872871031650300138864499211225159891513484233001557107061505207467200961500130055158160742010562971808131107368752197851359598501019274961699676926150743921754688274492115005788903732750188126973675369313851817809426319713498104347867316716928066322348053071181439265422246580369659014031698561886129656629817669169225809867146094326113627582123666832070912970977081712637232261336937976617887899575681958587538689068873552503488794403671877186884078972730432441860162341698984539023106241525408026071495202618273148985859625873248880385568393280319663493472138269324830793947410182264599386464893666104993702383236771513379870225220377134372914339186388391259342037044684561316988032197045733584099628557543346369878796406192542433166531027564471712245079416976943168774129944288702437714044936461881784717645542999909600510409989306958039342848851317839960805577088766088817284793228879778694763445020583001620488083626416105961790807375412829875027323039029009135052393452859797121519865134164271495659600579714648711187171594920911868511592546130000588155942648106312976960641624056026587265124501016437233244229552865930451011420716142137237577673847566188723900417609513825183870981022134207480554537828486514145838797446431021930049164813715082143318779014489699962904546964208984278929965069119660505125869736219306224469977630583212604777035427825376268739265899556542479212002954552266708403814493021035765015035183188141094716007518901681371454058075331253798425372707038361924538005513250129259328284156226423667962107233884093623251596554354166981021231382009815960119803881623850317248633427184226178547687874197873830650860922810938563049593028120232667278302872204434086361385687290942082742167645587222241917188561283996897846856164020664676860485224568368268503940601381758056083697192181976508974384386118061276248311971333326046998852186536515805939614060653700766982083387386958288276494634334222184501855078104441309150343708388059856146472605730908839684479063034649588029460611553950882842388348875088401180739483186731443072291096882046871451348151480053869823396618877168238284528597192090723306469865480190337068077217783097067201732155679102993338458480479847925239290452408900752213872784447678395074331542568337567842574744943557308906579217413516512657805487675792356872520928992428181628215524998975752399042738303102642241637886287139791236205557371722615403464737382657536543938794638615749636324226515724103431994658325098587658167634630577039604407831506897631290657761858574648791485243628284545363457951223985846712503558699009031929941601200837891415675710707449880767047544977832288977646397741598859973915958751941888951448955311443967257169997318745585880229831191040427355668911068530947684522736349131761202832354228116888635645669296294101278872683397016688182182092481598226925412111882534711679857574223566032955107979576946135554848351415568966425665793278756240705317060051954364997551075424246362029005396837098879732910240537637283769463685271125489642500741906393167440553183778149129426281953781203037066202579058874236886709125700146229209293796260389149845711368092502613870390759763450494993775909401387262056331206276066596538759552378024309353357074068759287445382922373694594899410107327895386772929377336518115909023220296637245173010730941528778052046446163823219811687250982862794835157592911630960489859933617822508982038885600942609041625150725801085094666133169701467839081425876642229435927850613164986262932057380687074229783110133886430495286950956565527888607514503208724016620559742135652640088808229765842963542102899070175998977459509503204489858579730881413042697492324966493573261620361498112241126109414854831623647912445173905155991054237076877850608212745035522931782788675924210913216495165263485284280131063707311166805438839720859622526718474351582621188431889839955025290501648329309564990157491543884160005916698346725530389153211574918694390459321500296547545260345658460512453036320253221921857266016431665249063045840719981767055520357273069826055317340475446475656166991580899345609826186498881636266225970515610796668103840107115403745294743853774413852800089754590611224512171984450770530399717453566669990161002781292555347931843721708156463867008555471883346111930663361883642711907697533436873971806567925836273338457351753929064544859427269706304164679892417884960117298414539559423784635670446730068169595953648147065510352688179030726018232328532759780042188528102238540672982619309886808129189955940142356923299633105330383749095302092117743835696699763545948877080882532783323100621784678380111888420273569380036848305713988461519642275933389765530367752510023354238041353110800122912410419046048446657580743293817686746310028376652885772653754049415994616997623514310007823250761604176736961163407398943631425608961678101504478530248681820324268645541594886670803876712432864394162643166160759045588487495786999969519808681180578471431049914224449323131719241979602011517723606126291462330296067759944265120421755050616812459671721523715797665482874275284995372611388110361380834188391553636560997920190091081130352795556467227324557999573267761970007162098072996574765094012351673489790768985738110643148002884949776479630094081254551356329961300764574906010694894718952348238356058886028778793669820010119794132348966328182319094510906698628341593690555036177615755695569959261769902552095917164718366976184267368142315751951905884508352295955883957609609764628753434252129962151652546065832875000188029113819377641967183558705296431453341710114794517682620158078419144858796321759486571470867136780631954171742715626897164527643410555824742684616900561682039017306176395828516119648573530712518346360063749018665723736222641623943628877985522377408377190233433221619717821438653237473026680911498579372747099900079217054576231431224802445518726984684359223653511041528000475831945775172986836381410698608942427843806668823592130543782211200434867966885230049087604082209961031706541649928026053218621793162147571864309909139375230979995780274261776123847289977554624037917031488686769101398316844660108874083353839535479054278597190892532853000555625179736468527284173143013059759178757805199306376326356811219058476967152712845228568281276603105507583689584357277643222043524228220226959816498026440390152630221632165649876707216459633232916864762632928463250209921171033896333553449396124380359353666037671743420393752809031125129401042358109136381764445803181078386136201526579870925325705540005701230888999736977220444998531487573887451166519876830642786593021587383585868302811347006403428526051839590856542532860011633509162227342691977656650217286283989117284956276711666306790335749130398079229875081837691886701961761109590563164476189760047541416794669087095406071754093331745470081723564269694479334506814835643855596820702742669824010407523825785978925424870033185437515970799015707859310533770919747177571474746566667330354619499193947342135729008421335549887841747332940772335294845012904240567347456410847720025820704789003062934565466740943072993816069649706222159897863817939112198085994136875639178706954763296270789664206532578048030738345780541014041611984822842082071961761262792364562671940332658988169526467654306070142937286491061937558939180744872414124873505973873831513868400430834484034744912780932169399484042556534944528618421623787029222330483508625682722486121449013973183209089475064244247001229256570802224353188726642099341978244078956051028718721460897917027795177716115603420243622265771649778637143815912799877270974721400904367934113531366416710413143157593115927774697485483484987915451222714656556873556922052737849486791581651060618320035790872273726662293633504571909002593639890560977032843150257196927704318375221956693730799015387588222203566418299473665519610955204545343438145887571201132562265137709761433079748880313051658312844726398407277958566150400330293818515133618216105595510898299096759648099308135119256929201972929600135901441200995267642806414032900551791939327201351705559890751575793057900323697302918984035736652726806226838803337901875940034931595954257957817580670771390576046239290542712391606428447594928585598220307894884891797812981124682174502259329539125800834783739642934415449367054770943727428866501956401372340037287913800448199124336880639916877361853047308913783973900575131931294913462839338871987892814061212676356344123816871702167973510997167893023959537151247302229210834469772390362767494240154077511062169071822616181079159029518853680131020641681850301727984848213298386994410859661662445164170828562795081144268507635838485612141826724436872462250414516273622507192955743137208182037048195441736610220755076616578258038510255689099482875089518522999258676861131651158148674943178730618985021495001354011120540596805304724741455863754518731400718236302317092578882922598595414059766071363707712379922581747514836222934960779544090775990774674945098167371924328301616777965724270026582916484691862832539968463154468840509904817979533482937295998950525691865094902777644411838857302988017688317256991683573830112147121672278693200078934312453231818075715951042756807317223573747005138981919538390901534670327254607326184096470357686774625066823189740218293230758712550597855734607401752304899155925318714780402624435757759636854456654392296972888785361959458105371237929470603818157235544018545969082939958998116057986045250805240139386684624916574404030944204910233934985867727882500037532781928152029827387865544858041959733228761423096632793092950836722739875797191422559496345279537875387798351070570895557368334447747716526572888988235043741817485120643067043817370683039127050222586483595586211876064969014031500654108580562089859141386840823203650624801804149831573551426872845418319496765673673124489987758494428540366954120685859165668102329091404152171069272448806058001337748558419020917542013123310134893987467188405926494413600578929722511753789955542145718601288470679481158222832711638208934577895444482736897866561744410007927427880473574609541317269182898321066051877068074034805369109107639429052705194184082707244836660155989162480455690314342829979403070768258010527224093125391895441724479222418413004543218529401689643993210064492909376504843309683575591228668388714756762697624439993167711382183467160894082743979360917894374456260883809829612776054515766374536357936433740453639046497239235197774699799028830343785568916425510848424895757814698639637115090248524195150970093720756510577132147556166046246393811265507041411912600854735742786680269087335803239512219598383517784790627568600889943492801239024713299777451474538277371497887613464435613623876073396056658690931538204345023371215350681666142197007579962445244746218758254495951019128416555975155204564300826431149230915918974768722723994086139177834478613806320339187061177598588374127315260820363792729648590948637904632786788087092025866550794400570535057114410706065425936845758866313829395663928343660329118537414443799935503879420259968926827008143860333492035519369166102883706330847283590020818893382072170235179760065466339998641954580759880145582122441648350581940429310811197150213294135962184652310308276103761215599738036756580505278278297146195322025940619442674899395796163341846524225055810349013196760050497111398338893446794685810408119424660733310572971165237461813389979191522432988621814360435235290978855439064262049411431496626205034521298963571555460860252002628935399754753583553844575536549923250410464086688810423848824503000141420225455649091668458183156457898799228749286328844995352356676380783976086686980377908637885798629009396868047646660311329820801984213112949186984549815158041618031559951471656776596111528430601031737195413839841528871617982671410460017516087073091150330169077392587125411760814966276696421227343109838354329278512183421657701433686627540963428575824479341859526272966411247878800681769484847507989094429967570442745948320209886085844304381539525541060863536537479520827334431448609181487876975553508733320333950164111095714073192759370721901966807957950085776568336113865041074450740722028214811619208851885885333726685707112305391996237634686262087113900769284234616020888168890305573349177732029780568259181675459035882329350215145121971955708765243608611504189999212813257290297818416787548965893526407725438716746525998237683904410897139308343405921161132171389700123360236845555225194843582782022349255841847061792897178024577065719608384395925604065362515407337457818013084692430694566086468194283235121409634230852348210725250968816809539280041836468589273454486878774648150280391731270621838655422438568431254693404202414353900395297125332292211075579366885146381842611144904566619473148726083177476744190686770908961415309610142415789162138377282411475959120915514275364362726345500823160142051623674316157067035993163497608510091172313231291524768400117125075208474475832352118586086043070852500004233829308858714244055670999346513454449417775097792179829898908567207272014379966279904176466991984975345172682486631354373745198464111695601246667180878392095122259532076826549323666901483037362750412125629677719638822543805396105083985282915369281614869396648384383927884617873078021392744242199874151697560201151126032372738020432800163883348847895531711471292852103116016311620864987311358249460611096076466950649842014617052079477361754522876227588436182815001874895855171167258688862801711795943931958132211398469738604920125414411108414139405111461548603105501305377605135880964520460363797988073791072615119610446510200351616391694292376446081496604393727754107604740901767088184416147296968948793953516734987339874881381583362155647485256201558589608834629398006893891993365748819451788245638549339587188607887730364288649783041060884400513160013522129871898534414824521987100607425319191110853904448391245657741490977213122195836170739760294148428812752254837832867186837146834002070455031998968847721085692445777861862783956616570772681892258542897426043215989666477579013708441303971571514621523989560230324910487105735614985389892555584222203292554426588801207652931541362096396539228441433572317579221231324658754790906722229112268734491558250578026255177695218601064941573389375368902886486653742136124525828967329168713389426708574530406451543382109736227220005267798545849447940063032206014361590299241342008921178177666448369597015335499021357771774456755093943879053916360914425497907438116139834484206167464816704160487159887933686746146516676136504638723915212577686061537748317013985161233189945852433854196876907193168678889370691001562529541662165481672919364666196375387792570271236280351878750199604899228214681441860651917243266837029969650195425719675365179397559219337739733912043592663834565997525422333824907122933653867197906057361055262482034820205930467827939483734123188853768610283763393324339553982768624315229608095574000712436749679050769158991392643831748782964218898103638155591036865041206079593291452806222853356748898881997671154699843263768244398762159295377688364492708152926702803787110063665931713134186890536876123007553287893427581213869716617510986695103007730426991059415035895094207428598378737854565110406190982326270338452283126093389213467967938605571713788909363920103562838646706309268829681028083478983250697341106229523983484815063498944731437658734937709622948085094440512585940423714446810908878479782138383205844510518361251808908680286094607875505492096706364847343044197230913190511879563332716805322882605551310000362863437034213666909140789939172471906068652164895235872496322495973519374554496881893701013693520598294234252739187602596535715940977254728463549896310235864780934300906630708569934717470654189141586984446728515565022809424626220203039258203725401579740421555001678761120031499316527358849669178956341821422561597331212097116642298860181768978130114586869412693138241847335166423064125273926036869087956003078902096608067990659572210450680695223303255029660770900692293281940459403217219236343873435231328257395491192290665751279323499072265464794486749372964117789851954791215085775727581758944944430206535974956411577380234817088768601482337020208666141803877056608272587069076173476850448485767607549486225547105885810448942569504984183778930186087276552381382585483816663434346873343990968659032131616096606814641618019227453168716731946060584448305563185992358336615368285496352281423399061500495379356956777194049600144240669469920596816200108859323866725586582024270286347716729366545481577342144728540233901578288536399193745079255244066309817840988714921310606666845020206980859639612599162623511225996969452916566153995913713353291614191431963225674551066120905826019277886313720509670642232976376642097154763325546360380111024109180879754936472731149169371353553007257058363376414346363756854430620090892357938761392770261508532928823231009626199308301414334540812717731049693433785166505050827866008305803058081833546233603433277725764961020435511155873813357449159177123969750097141789348969608565597309102317039195265458042444156421547491306046190200774699259548308715008627092703939405283189966032986752890965241982876754106441294397224319463135607900992011524506834687784922256270849041650630656319288981688619912174826018755749873424316812250406502403973832191478903083615023888601475043798279524417698438229456334239021294046928554557055548375648203482338730924975636176742116003042826220487194944400717557363158962831324500543674545670289022314762201463473566323951317914493809052167922240524838995333378584553634930946525370120514006752238360795674139308366580523267125786291992752940988578330178498387496180571082566162595085123485716472605317044124450155799262197436603539783597180811340410181747691307325917654650332086610706702978804380980513997716396996064163626033596613811643126126919825593595615762922135516048252470801404453221462187216030586648706510313756978688054304476822856054191848234084830111755252434416295165070265194937358981924291325385346065502690031617554692661427175399205158513781061620661224779726708105126586233493034301949160620844528279860710947299342809998419804503909380245507611373882547787421190870554783258110963916511273790443367992180530745947516872284755054451285117899309972441776010025555424006937996544225403325710511883464517748058472276849015286169269053313937845322033602573508985024464711426960331116345709835025476195372627002207558742517277295980684120141700266934059208498852732146314196061832493868299959454259688459062180947792199293553385129052432658075038258436838831372514723731551866794483672187223200296814025921018835848282494489212929905527576046176911693328283013893566822199871805075878774906164307937464914319050923046104727460714770450867775155258400882960637514596307403355403734896514992653697193269521824592853172810024449843138097338129169839363775550329436902835625260150519931509401662830462784284715113825586321657224211299409513367581032085015705619674357901300058368088714068151035545921595776723708647842464737816869028664678068815320763857804381741671024039117645880281038098223855016342194802147414155758813560373501332845170017087048703319037702245835103525369199728169929215715542419975774297028107310745167415848273771574322138596585357230355870321805405132396010844059271149994055887231304099138395659382515326335334892384145278367333708513440031533007862401781438760037155954351888334879850682960465390067618582041566116929444757826670466437441596705752121103350133338627630607751449003875200272244016441592711454063202238312759702359325912936878130219854908745095180108737531820896800553989604436052605469095735986980774402468219806736548557643024429352950502140033422057881655002908911244513608768297678168417655418392944570849999443130407182256857276894711215790528242054574487057389569474869570273738358447278469075580221784747075157099945254652983687578373361233121872032509310350037526209439242718636735357186111954254868847312159304289846898612485351755384546897516101682342064913048396799645926923367913883189015652218046209373764334854893770991085562257222403729725154970149428898074722170062698030590755686027603682020081496445197664998704792706361660305638297776353865320713439343722536468607866719655243123561300967887513947173739021162300244239279411783786244866152203871485493009990838153934294880135110316002018946359647475566881706919782373607322866754018770386190760285986705515838176110350505476653374614854975186965459595559334507804410860213184142249412669159049023430224116476780924505054687371092954574628825555744699347734469075085135963149865551381552158708388482745895452783589982166326554012557773110953189161141881494752598081461757395371966432347732914880744753393816967681131720328136408664395247505659786992553303738205712171849309309413565836381632346131369729608839651224609423976975634772975185624497394601812037209832877751403039705351757948337705193307888181528807870216618920855402162654926725291176409986479161617990744580614253927577492894851086808057347082504633182285038282796038788838684392271628763119122499250975416692583594830218592452685831565346575663707618411562336358080245808338062952751757616230067622315197265099673734708342957009567232404523344894382426779804132490139868077505008084844999234539875281547338755309401088945453244703520983335923543665407410393552337088352177093394443922850210783113551402589973249723614589991023249709461065265003928412881144977155653220546646360917803783993590762704763044350893245308225001013289874585233949927237236576387820778177922843691673909186174019523415422640731551721411210538486319706341692332477310498143704888403717049119993229953913543875585187010183286574581702316074965639606261695541652138484037529091591897250667050071034323061534700521991862495487016154864433391509158136089538939951853386882369364120467808248928972839576188293534989856972197529140048920352038003131600322954696318100843367819805289543414913244399158540160563292962865710742625275066647319079899701173417914344912886564074324121113292191771193647741095005004540734570826220397950099044348000832396964686455426102310835919504186943158102637904946915880982726801667750273579425272166303388773008559630708481886308525088487697049706061280661041722888470881448008014274742723370625596552887032527532788622309822847304414403927763142472061708747027701321813943980745211869899018538089539179438044011874389791124342476827340779023586036356618506454903726798951164893590103632276115929116762892725040384963052297584202835625867953369111281506177054611946232664214855630217631635614994511540459718934341307040396189772799636665077606274192956043859737294878168035119452933903049798048776445596801966891277337836271736216611660365759554445032638374920757792267806515194204537440829187725570739010987317138045109326941859375606790103442172525836955959429078274301003411320624660262894532907243796214680435436378871615355055599264190778548613584107284693271944911676184608347845453149758652600490167338861001609711764099732123261153135771204393422732526815781848488378871543769737301315898879643539454556394933506288310167178546687800892175762096657681724716598225029049649409087587235217125944128732502033109022800903729153296434703457610585959876327715088460386708996841399977331570506865945765820778661284310964434202153251573954566720020175640410158314613428238904252865209857753815919343879824404852209642534537237165604322967464205610058627894911062243045850231491292360256179424894948279012153007806860361007995789613559097391831922603759639723798913643397995848853910244156470899736090524780371457733977487258701518570673131355581270793264123427941053980871631300132728081504243184575626751332385458830279511681942263062042394313332856504147897302928870158686230852808802110248361948436507990940607309248721029704765449146873736733352238389815437643659197807565830163199615324366003291333056571278928823282241799180352947916739305498966215040640194712926971595149512938867997697828821163661479954223517529488867476708658690087000077467530842020635708199888226281475409092758122686195609821612889717182465320290371185460885134128956441888771372194064696412927110908938463390277454541691231073414617917012585186880145554804285682147771761471195700891577586464689890484662949532497563202847715474876219564738460939720536867508653317600003566853966857730322671530100022237073688516447374927820841381000832552254762875587298262553973417977114152220325643638246809486616215384454933952113421103395722368068510107361358919649552074668610901109208064233705911349875794398597714471316570350779335081966135965830174635801148818496306826841976559047711455305325473541240733576316615303962993714035605760521542717775663414722740830947749201594885200380811044520334955594704501632079983605302230997080568683039186057687296973949424476433104462632757115270768896065874114084510595105276139832496590410447118493683849219838342317443184216849292087305730154922712572212914525261608248086694335633122283907691207964344038809546474552446480284217376340766343267110339042942609057768468619205442665013391680612328094896652990213401672119867254833332772649728727161342686884791996904988926440562650333931703728529192399792033982548610840069916847117888702305345449686644306871972570595140140631373443478742350127856824377144906324926495703001652948647732888676823791142175350038991065922424541621056745493211021089948612327302234297252718451679217456746926626550829200094421760494087146329866624647844336230477334587455152218366103185326800908918387549145015074513826148900366948067657061269701355454428067918368464692058139619698991489231583598117013218123764509109161699934441765289700456314041437020060412978516500346265062373987934590357268137005156053296888672738083042584710937413566106249486366196647388053853945434457959117621481810820846144579252824124930001259562079385116184969665095078948469613064038979831210268463685956866473290112947350242483168218798595319986044690905716118259273992583969251691628597052507262328590295842644323268505619171125999122980872206534661865450249544251148008720573339243535527708340384802058510069182038596344643972074467182013696752353001632606697914449827135889484553424885384341888508840356076635097446954001613009245079941918749427851682273347442497858458447637033351847580262236617651265026306352782024596965349869487829953395856515063278016346187177324491255356518202652640502072819674776771278277117518156035630827154773280484468824834558385641711752833439632468693396066606155858543957071538531366496278657846079541016712340642870066626773929832241295483947693376288305878258138338775537459948724578004896961732581255955476393392866574469061456585701284935289508716135873849420558210047789783423553592642128778999535896336229423279590241854824122135213765141463801973850529018991880952427692776706511093670410719369582953302064695618555158190051945387713823726423419695490845966822604591450902317319275474424637635219271311599504993929584944011874744603847672249364810505387869960301857313180080108281521167219213767325374876995220540196940869452612442784843833748647378454705177434758217049944375593107991743075266114578957100001615724497907467269303861076921909158510170852349821069588062272878927682689555672964684995740144942815977842584548956243176032394055291443660470274443230531485621347294490055178485795464939074215806716737097863676689290716802390228579233098789363333917918415829603112855515178867396778442592212358867027161136181319299210818299505980725078701010803480093939065667811526272058130177994336219962979398384118720918304932799841726404318215510940492665319107943494568436321223427355846271317243818331999115689828331438106761481474122609125710921689573752700564960850917305350408647059831929848890755909899314634490079497833341329299503357288115205164517075687773754068942573006262018278467453791009240728093399266942976622899494470042364170176054620313966294736832465071386864964499330076852045762875245353994771439549065545153229938749307187179040671820282088899471839528903968866295487709070447482150526842379006952949303129973216324560983480267738743377651520562615135004509228328856365685951759944204188630624374566628655488464301867723647836979798527656315106540443978376894573753793166183558271319383607238112192114819363757949365277617356069503896894243488242716007387224794904702055763873691883173184560990539170151954000127928945326975485420435403597012038209389649462785362964671759951265088868969490214797782635060471116667996696833012699458472909048828929055032119154829610831332820467916090040574540149684949051363761912574593622251186046207036618261402477945923263419010699009214598796624357952317972261023164451946038128775984889357476418211787245675161779941618185658235565488550242492901115070295585995913580274988674354955450109200896959749910971707114480501107493979006671255295674803319042414973719007590796429448927583079898924596697166606022277084769110411847772943471576369025642111102998369655447592433792481367893433265916522239120688707453621817091717807542699440138398121338520689774032014718722924111120664250344945920047854750999145792077364199361799636708386617533455221440919737869734617749096575074060548293946919069066166937945961642124675512437443485718303184225632726480248487808101981410666965106001582505543488226927508261311250741538249022825394628453171279557935295103773856594230922164651511795946959716562912463272259887884825953125442347405999706989875847788135995647237091780870386358059718676799122977261236054514751862101102448514791204166084715361075452191526832819189232151591319531186402675129755951156379864838483630948804232749798277851369913409462126176665515804986030429950089364688684003371269466126134646050028590926433008368439317447938242519981984252525404914472704622869281403859735125608155326379947507175151012179987370006920227610716197797016197646985800749124218638370843120440396756262437232678028241207365924144455744359569449793230560625461798163023911768254029583856616889256105304061340634293397525017388589874448466727614174922461848179142642108846823701587144205381921338204695042866572290041421705269599779173514071438126514059280389843705002040715680081995845954953103514686460470153714120884267922887484978277065611335824510380355508466245337478131747971302700375907503218956479655562006427851924846958366361809132916897486337494130226329386135701352804912129291104309201652015416754990226969415506025434776562721474592408887369939791029706284169661266087089506622710607532964062431890717726026549720090293182451979351354578554096251862632686094446728738217738721451480924932736490222875693749574741107747541237019652552552040310586426147902407026238274929200506434101194728470166977133309082796482386166819502205556279726527145231485252507246656169921446123304105458140678931138379174000702472304259124987811434672719482203243050715915425036484461733539506595607294093856014292198591198334709234805184911128073425407441038422178973686224366972182383906137897633436162363548221379208776517690065438965691475242441063418508586222668627674457512450876447338138326493584666899995232919436047388234417082753477224849869039685697667077608963939041908058259448935736008783667824666057854257846697830845202799167787511606725290255873349367464742008868886776409369289484952045343748923779095043017138707386606034627175883642905897706068734935767584748901637395860043549415683538263396202173906327309842354281223166559223139160779051880186715079555152526627269099560579269938594442475120389435159439241521177671362201949961253255909042304595299704384704734772541066460702794866681059759974570672544017411696544539827298176672449958893153519539161420930607497148228107044124372760382727839421196143084138981636683636646896231010794049733065325930227519637363677232825067709121183333488218023098519523117493572206096527090716871895167942009024940785046059476881186445376577154864896401869284154612740548541720510654490304402122731863179789051937322402945953551618847512438838280520809517497691520342429100437537418532556927420863479897989323189348853013110242415700402647932645504671999952385816884192594057710237541971214598738073233343963082426115955857638198066436778184941271582763908241667111750221622955703160578157406039801399009310593465530573915439742817861289729619552027744703889862424894652148337031126169911323342795326978502076845937055742964712696893395953277422498755492135532351541452383611359912184750935972873667107017876606210007200222191382290481579750735148739877563727943091923357959871620117327962187669167664618144411729522388085443179335070773057612932110245209855967752949143382717760682397056382237834883354678450233698979430920143504666840967521797451369476831320726414031394614479939351348487594931153316248102030425798948090338912555628754094053571734085848986961923853627211317141583758367285510926222949126113749106240157232247457183989542970399661186725119114143951798034280550035217781874063235820685700437644194745234687627368143656976515229423902165131458524955438694790175362984581934583229523854680928801710559827675163345703148011170590690778846580850408231306159052704361961703769137625702176194221351626476960159413548655735479852569326545791552190838295430584290206085433864055110534534116229202246867383848147179614767224904349791499151078831166147446574752948669593648738500532060978109176686676854861140842329014093457656227822720569752462601504255693427760738920317252079136944494875820920014191840410372887312030464349986371217988160740175222282808429218586456652777177289197227089731871953581680367483026299377676671390928646315146830747594701993792241459793453296461281337273352058511872751722601545060555223978176364130395278524097231064238280658695046281625175260904604788133809677195442538855471467882610361476041461377162503156436711322303486518840944653857530020599209192725094691645085081059711188905329939459656068425807621665219264208944618517618567017687941681409300024427799093004469063269588039365406059797150511350235309701804076703501831564068244964570666991701439259107348761896466952270097474891035862046150532632471606826366173856076231093538671871173638510849034008182399545241344277125151169320565110164393989781485581896217595440798785483873658942191179582882339622599908033414706952298119269857010030963350111524512254177117888492538576358600202060808801500036362697465602051830825274808331174657726378468878996622005211307021314252519780600020715422429376605686788309608274112962562006083038267704012998312319034372260047563219021234536036691151105774861662326567382975155800426771790667048730991577321628350577641830099752590493165145941715269558324061655672350590801589600053148801819113534330014079746009764345374479391247613277559362700697950448614938187417112717204207025435893228853743813173418119993644261448050906406400874525352134186260926146558267247013438308109698952950411041510641642822275720719011960249020023430471031632706529055464677711470506583483679441619948712999968450287329729331112300271024037507934827519365007020290282680223110240252078586299340377354183202488806053289885491461477233767378171955743572049593337727391817059851334272935041022867560965272652973455090553465085724109342726236647431223611628391465578069445224906785593134556235468848828723339487436305151627214025748808645529862951457310856324029386064093912904748318474369840178358655524514417923750876931224624476882361083029423383625233766412561012383739170788057561913069176301510997732724993510528607610018252188444538006906951262020300873298926456781951851448895571768319941955160461337330743772186223240135060622949218172665011371222059009807800574590800595225217738159691579480625647036771968812831603842907714573093681518783530784883696112562745482743587570240377260595318705999443091118449582338436898637979648992538546786006717062287620555848471938724004359261205274908302893565124521361804174231858978792638072298026374512970058865215245266339308866240076463076765784760801363269521341992067002103483649600286334015450824038323827671163968862778161357746174375444937912737047207557685191488603497586348514810211118873456773629856641689347809956404888418766733168302558089613651283515212691576550940717413799417615865039117074194116812977182332423815196483731787860422697621956636909612274319292152742830856727308683271128779391538793193630723509717798840584054471475741976143705282841934776688033254604792538328032814028350714938743846407218534608552891859827977249567102019762050763400386323330545538326937301084977179228869625750728825853546503400388463851643227008384142714960310736314238724351517129476509092887280261144834595215014816619543464121958957292686949112032193311592649264123292626567924817949214520389105191711100037227438727796252911960284618584694290466429581824664149237904330741850721865833522349437784864648956564448023349845504483194114009453250320048993934532880754988094870882890716970530901484117997692195700801554659785987917970329397065883082621018068717055725400254480741819111431436210274183267366638536814414478031567210448923891606133154523896972205622221431959093615302376191371655230527980788292832041487319777781730315775935834430343607952158844948309503712240319531703734023434618678348968659406807486350802044375033069007289172064915578770514416757287083434684202861883412007535587973126871140703599896571016728416588482803559547910313699025604546589933650147204852999499663304303389031543615201966980484984894431552096777459921143705444716000553744940604879018806740768410835792346588223636084191750369650041994072682733344268348994928465242466305401246296429008929706703917748037579352605078945695680865139040556927470540025684175443763725068975718757038904764777118210066085855696388924719905062162923344936030459600082234892606976116531611836303404005108759937891444970664059669840742285279075640316417682070762182223763877902509519966850194383658012448231303426948860879139967386382126899698488220753629770158542723387730629390152893787304686881183465538952414529691989414989686648857721481879126815154804713738897247062594392630647111129205882899933347334789441614284688502351182685675009708881299504555370344156401664519090133782079388731962824134716748592156752027045339469897735320853038184372359773804320128139739114002511812236697786067011306103827224467228427933070779294527372274336534619661445213602942583629615301982558304362318641272677690179976700659218672437493675313038027085103419940209978407967707799868262491768880091266134988830276962171477396051415468075980709554404122158260925764789911340924810321794452343355756703999410177780408728367507722650195133478138094889501130915955617124289874947877926034927649660050930965573465270440279592306981406773837969414076386682342660333227091358814071241965337979193468503819350613541512918493583423209603112682308932729787744965124038026366923739201326815134774077599455402258875956190483107120760936400824033157427304017776486254229433436336706782195295574291880358789461558207425130294240328483627112901214514840449613163936771489011773747914919238377516912400497522822544744702237392301628743203984033927282038170311135858879065291775886784934521931890129723292228243071734266353565094051177594464815689258058379625703964694263587513883524874214101107532100848065933778742875422934363006124028043117283904379610320295292441495777413033512149328226463166237511878543650202333219765196830960279107102708119390471453978914015627949469688713435909843444463988311063436382335451224279953352810048221027419057280663898073500970328637209991811850989464331549684127338723060853847998915763655018244503500025364412818960655490004701308996951380115743993107781624152510725768658350683962163600411547921511095346242969447940138068747581064508620899014957530432165972502497091860495987756735214125030258699663257581245123755127360268195840375461348679764129810944016641453736304608348191138721022753737637294410912663733388709901656212025648288300039838024541337360987286463402933077927404276254473992344818896799246076320344466277694778237757381754589313760733844894813501380874081232797028982258718387444600963555993520543293833592546641088069012770389584253913868145731257745992927641958820684580500168085475004425203542827949518252726046150973481299534367490623893941183777640056839327366095662029700347993619629902228850676725926205403184286271488578668917245968710491901805114470089983749348374906453849232630996418089355586756973625406244926395240251803497204175169701538786924834459562566390979779162825630072353668774715731397689633017664854229450156952196191671237197093340008691486076284451531331473326294646590981837701534443322564438119491423053657124189295430724036115113029988936205550030655732791264223621322511764941746510411380191874042734499398174366408872528329240601998705146218135765546605380624766516913792680526296774659747300011257224286270257986519874384664601266823300033389101426966325453907500931800951471500367655062192764627526999973728137287233681691642390841576547407197820761352196309220443215630245184059014180120626545483348308641887765429888993345938201046573334218581788821777196963285399337001665004324568753526246487154697843801575559457824031609786416655618219287967297480515994908497229845347740286542457022543759955243879511709990799331307694087129877933025410971747776205114626400777630718902586437685594458080768621861368577829374730342026427897165036099919782054629450833776986907268376892273384084083066090805729288676812441911102414965386422502373782509957800574516925993180125346891331492899861934153272224970248251656269268748246754822998483877106651673874164575173417695219021562726669570745481584307861894488345651387193095292492533494731578575367032628714862208671631748571480383259720050750093789994961659224256276301638303173074539118633848943820235706169944085676373629853293408626729176919047048973108560469166038348869725943011656376818878452143788079791058355621326439823406707243016245801441128306928486149276719809781104360628955250328744787311689537565430172695462055032926787127174556025253983261244676818101481884065297451964281760979273119729902362459999043008312463950152167738885260277167990163608548099220196454059710771981068744857359476326093362259445362680118354444933335768427161499390487683864697747474185585878801183996725833653851610458250333322148389839789300607552315422825206408499726588848634217831827408447331636101897458926519365409267629147727986257439282976940620484620420580485280520258224920297641541458081417013062174688067296673701421931281241884378463042421673940262535114033031780312684643582287554873786422242922769319214721679371986591840623430647766454858813190520502154760653547962297038724574649897279268321531282108819086015033575894577243534463614009399452730967551695115712185215719647611785195704845038548696017378434123840211238590926740293613552600069175283108794963233463860475182085992229990180178620655120168184092379850882708658480462844051576201706387425363423573139167189067567066546679362314156321508285618844963630176192833985445465168730309846203452399770784137958485904477793947664970513065732444522169416948176454540649777449320817048874391768603681977836406980707684427957269576871026177764913337139330735742904142860942714391019860728118395189997051649871930201211643984519951675809868238450548523032708518415926361962653029263419148675517369497213048077655483229664642921838124784584562992325862107324694052361969988609762311989840267686023513281563934915309591688991806854230736090314661507597380462066337267839514595854607338201585338291890137409220985212112274262618649938289720195464391233367464728573181301740103379552626975725748580004053225816991330511236075137193962298900197818283284950838761834445605108134605131512407261146870126502937667259347589068037861736628618800150591961222443274994572455343723337913518780999901072746807900367501833574534602714412856769335296833587570926525803781374260226253880100526386933898224781895167338668267245012479394628954557942661103378323308506599387802155624489323901276238419975116956373405829350875200313322515912547599638112226888118183369740051521345249966411212730554697679040804382166449261744358590676690754108799855442987990796532842985823865545827945088166501330134850850513545357706207798050649280656239383110423204805451979824480092251531721429703419685586120562954805217374286150203416936722139145885635289516320965189003652502586426076163647434823239660225553185956559424981337327573087253344678965792317909181126958197997239448959277718017109279193915159307113580738667721092717502501091363652134676969805056442893895376897268673155775376812849035863153562589614442709939730251078860646846780402120640568226765228417008583668711109515259039200747349867315898397360730750769702578406155464950808127542403442052860082962796728729471869355050476936829406676222670471480271846942503258617718832854285587775239248466302409123042135254417248112261840015978533039523487863008714025255543874834254120608866585204269785015853051992279057923590453598652602649249200177734453696608111381509707009846734498047545030011691607443256455139784816842217191114861280081371481899926450138922539558718336398743205542356745558957677550754194597923989388916041833851211668664996820070134392743317786695945546248488627099973028313713571817303595084637010180553524297899360742729348037675192854700700224606657298940916711280416696088950428244178763129046244455264800318572603351742947448052710688317856870685458595898601858778310531785523050423134723383727392967496614558647457668391373214744920545727643070570877608609785518990835172297876617959510876090157137780754061274412181990176724353291938734888582691226017070948503047513633443351349118126384340143569995558662125702117186564194231377385105141573123932058086695365964750349948349172420350037382840270360598565818767259576400475767947213086255495522421516836923828760784399705073589412065613637898059779472928803547000076688765552946670838948849031254789916720684384880420733528021538019376812389961549249986248280544870945255389082203287326933030734613886490479968029822164169586063835877082648133023049413536043350801819683270137373558832450637454851232124527096168126502654984243904124184273900463394465283203784486083798117559528476154909973330750188409718252244641049779602172857797279311275715752091986798009959888854415360318553060640224758344541960599303648654395813146532211087116377514754634746145387358445733509580217362517153881326816846497328383405920908885517930259697562705587301950687334341696397508990883110897403133528036449419096077881144518474889802694444856251020185171459282793444283638935206778057128444048103669298280939337189964003294694664810571452817440008299301691276421140282830675614516737789626217471105263087093135989697766458401527971604462247502936291881262398164819368305939273659703224499965454576542555467434237045973699371031093990561509857827763101246361935955061366047549225108228903053422449357719408520063126743224540259841887562895215542298300217198034565471198821956467104560809745072376161246874665926860621484546453091926266373496859989635273575282002692515458160888516165143833694785906777808042392028251059796635854651972798529190448239298182068444450003098128215032555961255215283229479192113519302228721767552994507621094812052435351210057547456990805226832615941126247119944446158064379396612245813696396251396751643201830098849438735034953636233839270130597813589755125070273182773685716611335922294639659993681054568158069406079640711284738518198415964995067727659414508635780362770084256254757659890644413207118768407002287966103509456997690692155857807463239088763340164300653635156002306957698029582571152722642489959996433862018725627686841740650094940344727955274573336553868341124700937839366142079271448831904842344829696109097104467921632390679847127066621552330314323703571879769678963339690569556320387765244126216728768277186939388154034936483642832789542100996479507106086604402178293441172032023710609807164447507572542673225067580985187817301183290841068819816024095241880399648648576101714898659750368631298935164856226454697609579487250608816004312129308520686882969497159804767402822452580207269089269213663349202739989031386600198862461680920999140669500047933031097852738479668397099737016105236644589563046441268450285329648725181149558049194654854347700466929536742878043565095199798722544608455907400692256116002584283960011341026059297165268324030062664412566522923944744834252090414118477147463290720638626152960342937209775737250181208114737526557287866482147669015173278554788611802959397607596990822138207420450323818326520485655875641796677544570840878592321427083773942786448874853820627672648517631432516840689506275500858256499057545483609809967070460419665257890834167957178091553789498252707270688770412557000961313947912519945324108493164718725178576786865168634207489952977106319469766201334585410218491791487070040952312881986946170924091301820551636595279593131207878657323543105382771814372390861705196868388138485382309291567890124065813284110272052809674100184620048257996220089930827431464765171609327930836130724028730927658425348085940207952413010445571503218045488178664275489239403376783255520913824596393013267006569182726030807393813401530993888920132551319638329987935693750119390873909737411037711836812051030195299578286953370561140016706914488963194195518759537637704163761115478040833029796550359049866384339892919668110226357368388109723237680521882237556538844335405012720792698015567017053902134207506027726601592744773023030991094123503322294037323021056468785893022596205608995050720224502634663444566410912229415705474740055153936681861833272066453178280578092494858696250419339095876836795278719723587023163195173934987549116760274620496026075398958160502244665001387559555962041845155641943144151353984718027926536954667527609126333100596702557020833487921146067741997137227947274438177981997938559698947882073525762968497710479285324812172954745696789975731006686361827612393577918881534565267476010475797722905530231805529726527636081919708203986378406920364707436936560496253018096045236313196057279304004962318865308201576725798756507820436162887397440662676985519414354624021065219998359961874159785427669646473333074511635404056517590639444988281821855124725604348913189349803588769230305344937420774315273458504504505307477998085579099056464046513259323106229173418209475396987674513834284221078892149989645113422961982153386677116778598497333921020087804197762266869129019241123538842952555149058895136647059651918697984029533207145690465147824199496241257909089762318443210414041686887177530372607208103133395648796442254222868603594752718120220097512219177031646372530109767271936134113956729067465331895167259010540874167574960972402943701030527694019937422298246584273110948097877638266812674890127952135396169842856391028950247951463328145665651449294989369191465904419483429407537938013178262298983029898638608273744856432583729806235398827379635629706081347553582408243333965104479471299287498985969635924778076797329436436601404332504371374411034865470703592914960640274879179855486863303821027931852295340674583498891889236502160401890940285373765999371127391853213013996366763671999341743474638575803126206680514530192763242317182709361816394371367094241928455764607189600787191825515385761807484938113135474125530664946027716057930821141449530663783427685030499692549948425727968287612468230194869550733829971186397211600761692241191654812237661479412847477850064544054077482519156994763035211265007185471064675696645335502350974051894990977628149827476106193296052512943677370186943610444881272036250714287651542230160631732097104022067855132497048592924356032762521049587088296812712069881576942646113930824956539413926098387956086479905323434818013130590158838260436689774801710463355079804161932484507251629981245279556054495008221201534957599199262742692396051501367931655043390225535088592890919957429118000706319147570856619610172449731368263027726157188458450527361392140041176839932372264395205143544162315302728186986168570614720234101038029160425604111737586436856461449639793464263714629397753756314415765893474650771075575906839960156317269832164863309614633653515958567024233264212143858729823813833954701284857036043915847434569975802660587663405441729009032581683236783232918829151504160151554136583724454442787799521346363473388252032593348465660608908341658390766570378705299614470471683279368049156896561720836268026863647880708134895086446848167018452797796843508134074258680907149518597610194987381008216001316407169727517956856143472198428433845069343898539006272852813265205288680117720718401655998177448497040928965044309793217168099691815537424979706133648522171947071225367406786251797512338930152330331290334669196366584537832929958102161700258679701612662254108450923429441023588509387655692610118383499428364145657374850079647513902552882271553011820302188924148611660366146655235709919917749439237183720162596468960270191624664077477019633564130600494989526531139901162832846433646158403826947247335187084011699158250770445068109406809006341005306015452789185500256965944019798752804409140008089130827696427879118977527813827378313340885695103191754111854157299551616061405470707364350208720113171105184956548981172742971660486809267390912061190095852189119126306850706871484513259733622474637230687506024240888273651815413643291525742560358293855639338853210674234398280448702026593265187020212301236730560447548817030591205368085132439411789315213083405659335705266540112680697271034020395400277883179586343479699887047990023163461052343511589161030110634388279853797608407914339965917203153709280263762769858819134372114594112245835986977158615596528886026643167027400385494255966324248941287511011021831866636300259726719805872096255829944541364454746519031260189794734021512910210921289036368333384386289729840716161436987427197952995184050941626232571722222738991266542729167649616098746702797406432966043796617972037547622510571382461178190678241905045167013693883565547617697002030675498150387333811682102880665885565617527680764111786022789084852228265187673136384786136569448823457168171015649183321352630941182833533256007490331187142152719424479070169443905013038259489664171549755779435626190678944908786930929813174274515290939876979139473367143565912996199442153194075513355703410529440702053080906241783379015052454275532408136059376659817295466640940670946095496239857217511019332231854915653853452342851907242801563401639399096098155199530660289823399926469002182088561043242941186798381228146629657960816255882614050095559244246393380499696073903347167410273689668699822752791091109788057458311764678421830273395825344477065811930952581553014614620444487170149726659405029353057563546500999469466797588881767649488390905370846067404295573004791424640166350389429141415538554011039769712393516240813791414314486354552458997672809260366279599296808222796635994879299754844522432790234360105079844336744906378729717251612953110758045360354565087091674487568828280470991686221032353859396580729257734243666796106734814765742660991931025333567186568474950753765866236860861819529574234129227864913952713897375112223079988851367432497425642448231962352793390065854031649471379854316323588777027786430945691142649169420405939568570187840689409932588795793274597055145885556355113614270875289844876652891079184706132534690425298117448505518569209023748683889288375411710307032656828936653752756499724449663920117707545867081850333292116605970152328208589625412554203901777284603784513536736411959922763800905516703464536268530455393037137400551502605469429444992585618626228466358969226638897645452113338392178875501645434560602280766586471055653997600981232019685395213735062314978618931975166891730891063472314063126026133743151341204017172856071621533176394757274135890911211467309631980160610204134911258807526302610100265715306493952195975323434123808193189244276824331280584466595511873824663738668770671155453011562118697789355774779098565987000113949791603798308831294572662293050606422560495616756223964535339144920732271795464755792125180684106984977857322095994958083832496208387156948133923583593317613041157248009218365649669809248089652911601890933818549731795519035732983996904143667570428029602119502110700269839192736139919723861287014368052645815032352584609306472753248478809561052868862678188916519724741918285912919163606417093317688841684770777647902322341916424809791856335301268532684899621086031908365730104935049470445857807575011515948393815831155186202596775726950223327052970282367731191045212258173278831746337417811868260981062278405703331477897173131702044082885851531097399066275138709497679649515401520831305119596432444661895603336307503644550838027301366330611840505618051626074751810962963312684769806646543881958143162262373885779692424378625565190994927565018377617231925967930475431565015255711834349077013537202238841229656364222027426264227285720652793388404336338505905440088710936251837056358088263290114849527684295000782255741517054281591676881727592032913390721502196763527428288173512194980316247692973519441961293881265078656349051186178732335869142054016422597138019898665525766827513206087479294264036682203610679348712088152114647031870839841381444002702606521828504942282015882631672619875401216664874786055690603980496030731294461743367140823789489666312859840995278158045389650036584053052870253127110942336041295520427456861145202553756579099390313952757521877612743453044839210907539288794590204943567584609233981341766652349314380981680980877400851586527755938487463361618633792495753618735790684263754218180303070713843121866270232259158478163024419909740134096207145187187417193464257517219072820391589162001979131328454238378894431351310384076991867431755722925452001491707546407259551208099675527905157296990116904228926262846683355399781193104965839703978063527763990688048445568274607189560724450030937308047056198109728285869701929254796841787456058613801586510759056166385986629690868003672956122460568054044485256682980925269760243702591321218552380211517403921296474236339762480971898956774628325487024097159696962965542713534950464726266969512241881715138703901898721564103975430106610504561528008219373243586566630277347031029798523765239291893442615224281004848089129307053414623485170317244782119097167900126558437479695024319802510602938681104366180513718516711265965306174699507416382462579914108492477909720378613881484611764138781909523844631343220392582431315104119873660523950180914144739852532070591612381384912044251278900686550270065135823165778612543032115896185798065973121691577095716786874736798691822322864471409301165435641280013401658838932274037025942855122772938085211726141391193167137221819777042842532235309964452826430886998747714132820111471502929535264428113403282285972679070590501812380203947649322384683372665344818825827325650747144943514226959143138516302709555726459409072986045013148641803462801577413841834191868748415720694139763873399499454416125423924135204117348796720196706825671508035875940665685766992723149690322426073349854758035992446592703954334108022515144915590246324750463383459435223098483020789400618994186668874279657402139626129565895408933582978495994862752635809776841021977727714930851592452494635906648845789106324988333752501755038718805826637434359135935562843687245695713279953911267300390390905861353396827809159632080522506746437226899756097529517906817492779914981054010399314677281323036539796268551488053143784945098014360645300572175134948680002115260655559586821281157044792605964796704635561210753065129678381805656814770245645742847194521865667798722248183030636987766976024052851554564357594464034430927438695295925339339060555947128933031463173738231655546354595961782572498524167114183083449107991180981062909407025334499668231799695237770584044052136556852199448397690263842626316885921252646942160457585995755973552318264078358674485961462511250765780423586289023933558126498838361538530873479160367506920860689737429638468771104130558965789324372484003786030283900183201027985842944376676900688686417247415422950103616253460639213241630885356686512676109531600116768039977074641622854212490544986886513962285905469924229254053695419149878937999689511316626673729854210075425035372860942244469653174776905974301900331436507791062406239768429063785798069704162124951308045169786635012956747092655586033446447576959853302014672489427334722160021310552475009038176109791741622392449566816242207081704470092668791730758011960893218822370635518098436237926864550555902718144921611127215855001710231774508789603947311213191925619420507782665540378412374936932423399473668069669234412736332335022632980922078151126918822385226010023506938423975565686981603993756235985818709470164891105747312812209635245185182457652004226600360595028467363033690202504035406203387667129887385263465998902292922506019183011121930178162382272933594973637219153625653754696488810344349877281089949721239106156832001245027717708367956337225632227836405411791799078964508783496218362411526957245110367270241066777582102465463304270625989877834013355379059765948539241366651685830850696014019447528691034093777908645622007849968069686387068575984890696436440959005323068512796468665510851462998478668849301957973846501205056954088318014350979367250914065623104216041895699487553132006971525277501735306241642031422971066679562883103201144375434353352532707265491316932896683830571280178763708665971528922317690973878935795450301814518467685885458088032639515774988477003056483966937063299149196100700642964633606984784195138529012171875875626683093300584755373638857832104816570276284421838274743230578134687791211392978335818610513682253062718351520503426990038980701963957382285924097388782751722885284751617653712437212399144198071440117178190390607121721192467288151215232889337816120511189234067912645432647346710692629723659501265542661925032266851105309675777436466427831118622458530970988869200277837977707925747740176484306759808380496109415056607887497699376873347672072259208510889774867824481242586113956117141911124896707743017041338926948260086448816517782393320687550552536572806553776947688857032309586540588564314655323212926191127927052318966457976894603975980614836508163047076515896643467369178063872983586692049191392685828753897761218431236575131311667619664642267696672636294901414385134871475989368075912812975969650868419159304067711324079589503172563333171052443285347522725671255796353435101664032446578543477464956843215355282643919321801480585960553465529466230757042998767919373249526273270258374878941463299699962378182354439801316885395097625181239727110985309458266479082397919463695966257140077759955916584169506163172798303365508674451756717996918322078105160949644436611028818386594307383545391578677447219226972822706899333715945705470307174947702241015105664245600795685106811482122284140671938707602325216188823251984310673601183744545651963677188961728334384269444534918716001051345559437463241069987681470123695484693970925239864349157948417020489585665036341802464005157936107167208892585362402763685189493159261223827364501339619620131664169299752649035607775618753589614905891887145875229883056794088542459768947012742991222414274262119914413574396930502141832699509539596998472818821400891773306965707335229125678559494071126632183005897118040754413326862506041293203657207675177855744898887947494347744307812011469370965042494682503705876423765511933131212715767186745671329958969096280550241836019632046977646720858761654125287989288706058673687223216140250524785333192087506218902805354245497567768440535909522423866454917299879612235042707181018455993929604313929156482905376788646514923819776401910555972980945047555591394281435287223688581707122901024322644062753712858214492612178364360278639351958088504734155183715895362297422409152228117963728353091398911042486668696313930231281748248945521962422058845702117933009562791566048463697615913994658292580737521266673209208228671583960665554624020150904600129718198209550957652686514242351485877616587591269106408404404810539782346820103962975681623782901889998468509359696955582039767162469084414694483662404608459922379983460348525119974276849962250279298425876968941622216820235700797549895335134205089292873002288163156126405689090971023237466485287742917540228861755816804329293845288934866519563146595607623540211951888344325707316160937369944431542273331274405763887876492393894721613687203878801308446511155254200981035748697586214301099006705728772381749919122172858084191834286986250702636416668806305859656894154437922142694354905670584284454195709622950419880560079778640938213774434347485086312154402354526905613850681884990021121397745556057120962886062790670947055748956865358028938405293489173709419729013852116006711828870913407822394013660606569096546378707302765134823407772545992776701032787791389409311698688568649111982944528827844916479267907804657196738849058015645832828602982200606249102600534210279629992777223735105345703320667984184564539093979465809350111125078602002020233680320092943009139916554613267080346198747130594211077595988788487219283339325279756305184438367173643593962908376795795320475430203458164027942511759707579851290611624977510658739973201669611298939580039339784259994736639232481195951579393248166284020562387622531074595295565795828462803876744643775960302540831092942197944818620457312276658869638574291046538329083904777406017594274174514040139848156080185200040721911086930586203310287496293226103213324841679741547640125685379576885441112222752209809010866818861385275197832655005243491225012592312997068185057173602114343624255383718193174998785125004235532283596653059013971970021490149187609273281994977880404908189558139285602308985574268866621338941476453450832600401856218294197615184321948316544312428459169051475407568161414917311947376702046273131757920991362619050485793977418227910332871848512375176421198704009345211242810938237588351431986730756155693125539994947943703193659546176314770947118952458720398016131685610135846857712339871251167335409089757640377772025373266802332012571087858039406836606577866367502023850336249807769783694971583336304883749122822216363190283486969223012714315233905982998672330312147856643137429266883296423084211460501213442085029024576568347548334452807152066291773269523104244289718750125955575376116598512642618700630680719678186025592048221750619503017709332569959644899609770383333120957653429682633399776103989053661628072100738782453952677345074388160689424141469412699730735848007559516397942414394456032506787886523775952529191368394789511253760752168825737767559980377373068737324187872971874550471974747038938326068511018931563199064096401798357860434088950071063758182504394969647002041536936744203421094722814457893120150851479653078260915843569086622042389529131638342616961805897794451988941082942803734687120905453597543033415105508330614447422498742726988687994918510291738546663754248032390560706622727902598746509079412263305555597361716241784513683015618395500438995208131388821572774481439366924646148593181523835171899933615524905882089774870386285367984925980972549026726452489493301654666605314611199849054139110812897530972081770730579559019346148797288994238458481487440798551061459193329846093797875304924751780779221449028055713905985725427626436850995663631325902719614745392529789278221544670847144110331474432236700368118591294504928249841249805716518016921219748560986221675226895449627452854063383914240326347601383406394956596061110484402877044387922028192069893483106827204959432108379745027923351675738600786531838597016055685492385987630910503331713170254364726294176946487662387126871909490395749817154576792693112729908092477857013594631490777666545335535098042389042128936310189109699567123974678630776863183459728344901729879588726426555723273774045274398333497322202860363638257228813418160484625903013841697513189829221714789518998593662033367324705784701351584328864870380731489010850033958996759435058268415983590080695793398218748888428947083654565807000447262918714956141145017752463446762574153781976837830931411733253821920152448638298635161784694430366921088333718922278625798848127603992165885830651851167750317810656580802484266240922785855610118051502015034809006374259861719425432426356108152162134074191005295504580195973169724532675691802205934920026449938656390601397399127933352497843007314176590658533296040306856570585048257188895283536235685240245001154158129107520801066952191828074685418969211617492572082437677065391738170231448522329296529186490937004997698071698647767362874408761909794193461832990364890821404958426564353547971303629056440268627101401765758388194595842427230438145716786171901550433778078463779843529097759015824972608625358485053053514749076103722653971107103806558987699465518008438788744105802612921688715787552083043222130681175361417822048921972890580875380066764459117154271353175549177044027698844784813634643990357894531426359968323487656826267325376666427345597864214250681540386700515957980335288988461085144854523802710080816303629949059089278631845299151737410592077999053710802614654518335735422989774610996961478323616020453699659324919981662187070910009929112707442013222535680328512651159990859542973373544124936087765051173876356079839444371513969756211924551327139720301488007864057372126129724689610638112094714508344804903993104538778936033803678853521591232718884104668221217922647561148401453444268262995618341680564845398325476450904615233258967900813866933144649070259511896209730915107153918863673920149655004144918615505573807217300603970532122157571733392731453607690964438482453963729010951173027512908733671994454681056843475729653149660748787239923968085717450414866594771087240005445152409572601273388063455166527168351779465548646493740592558599102863328861796468870150070047786748482049644135310944374479712644324152866574774902921897091191653803606944564154264219565528792574804137005038363152654454974463158826528134127831558804699271883125115835785047438332797951862886566793921899065536822584910240979698114403116591056574956161748189932894566790049584733881522175857900016316341139934490973412592938107101237933399619177095657512461991838138252494442205204744928318447404026797667194250033672975495966766872143699637199775183834207164132414268386077713828194977081914857252923309079307723690795510665179847585914326486430585078611749837832822458571199356308132046947226310484888764163126805691217155752405677910137033879606139362154289264219404264628227155117673659621157786138158331390234770599294749799088953998160666538749159711633595586033083072206620446710936654856632581335633506887960796422805405745981265726724638802737895311011235715764074513464551515112175057371418057566199083275654404033376924721269537380284620941857669385251068077100170458593750831359637110363282579793529368928566623220013417663972792637442550596645768196734341881475533402711542313562736375186235903559426421163416087125504942968684324942500524781006933846356639459862722956656740822059352453391274654022514445772699185351044462370308258112669179817036825605397198882540459747648874369908711711144948470947078082899395965825767514136283749772441079948552387608439066295780555054471201553903081732977139913621430075192555732754794408202062923605699249206493991271811371303144109239990955515860797683137039317725658373525788219839397658263512536823810958506194119026477388907139666607285721710387232796664939914997369729615443951063870753258540044600801680773666323888059921082176482331907759443409914989267936583236254860579151903685821460932588543571524752524972297427408134158509114200112455839126848085351810180468697198499889003531394661112540101257880027822828516172444046376276682034668932559775422223799586712380934030858884144213616322232550040380864643823592975401405980855534446320408510189704847121885975688631594606576350883678618689740885245213540226838034480494773403458591072875686050238512779130745638872236571580232594875480020472983462694128638059400615908198331051781138907725679657308406611791665317767235326635046951925577002748028968319134915690412724412827419107117460042970179590630294663145972905553885348801850377062732496751606947131878613019619843324075321254214622346865630455004278407896202331367657253123729954712733767772349664813928766199428515934742003288334883700199599060320057522164946141640691277163924028905047559741867751158908018064309863124460308445729344016474379693649930307597179496355474022319870659147153724121525727960225747631796149657672948074531700190031003391504416921162654280148016930109890545321219472535210911922724398592003318029488429702458009350112361224850685342583449949413651838160829572317228763738402932296344822477965285877302860872353092502764476472829789605898519273767881846108268848943476001507038802919168010540248931253974942228150108947892503927886182408859117987508258356027548304036692831049650855043284465437389669989990760719621679038892825690493764555095116495504908620687253874667899871469805738627102391786248630476037039712383809437464272897246445228175003923945772565053480559259890629953288249257390745724215414662976473720530568841583779419123650451568471976732698670702430796221066262175183858651083249442763500087315818865507841218779841847937253746687149627178784773044773531809273478892656281380414016084816950479563813056666619059005230943744207747682000241399390701923857736041616277981235047232742012974910551106508948772671204245649109510731462017717328126793522179699304258338965145398346790845124231265608562927371632689703099174463371856999799220445299607177411783671323023246335626303861345400940555739896035173706124883249033409044011273601911951280789630629315569199839084192913251073622350344124003184133861343370697396922270156109890948385120335439531243036735160070432345496587575082093113908512679709133222920895905004193578087414066148514127876695740716708722374423796602480797623794991123949132792039735733581718391577966352720156669807882502237020427568224504133885824411436503058924967115053298248970677834809557721901189270762531391466529804029082518298459455012345411274115667410393317629446489392107870571682530138925989872538851177527656726473960590078699626520981668270286473896775887992750316246495115067185120924455994273394772412563455464839580483240173866744480678881607537187094365622003657523496457595246741411239744184774564649551838975900687978423781774085716297696568398466308432488289444110483701422659447233130884295221379277605285696061197929981418482848615688819024338792487742815837045983636473485294227247545206508441496069219565426082379525811578441254403908951340524757266139536010636919270449375427392854115021548375453743332344016601964530702814005112172129568257522197261071873969114540845880686739713544379831995661041243981885612026724447428277563220270816031966395269371850375422399676163377806970392175277250994019689063952275082542723472563289754958146461898161881278273162717580306101866796602713344816862478067522534913224621727557876997567635639783812077038924999747019217277386675328624949431611439728412444794831098610029189412636152513795477843682878982956115332777701866784219350654383020522107527723175971167663104390285195162112413568932470396562635219832923352645007428860153570143902028567672133022023863739422853909785383861820737488469732932706500543159902450572796993292101324427010098765116016402572974739375518280185862076533994968350317121630772400048728443969846722480416042913293452592979650245274050555219042563283582345951340754265937532221417349592126492944546486226031282099001775568390067536152027503341303152794663174947654138787005414834528190738361488818041412566777664574552293307312357206194061863414071516729440393714120894583267551947877168565033923176899737030499401224616468023086522252636099125047615275403705807426293544255645481094640340960055502304678161987811196656926662680214554840304856237329640408418294324252899839975040369670803339770822781562633234899562324903441172176371570545381030320606460055935326169844214741988486225322817960825222845200148535035418490347407390098991907890803889836654477472715311307078645907534457496243453575973390619945212614006485573213962578737232655994259120574325616315286337597871692157305650350164636978254960752365751154448168813570069432746678603975263396835758957835181703598099315502990739935079141285848847220965961152615808130541678090705582299938311580301722986741280446272178407094798491101557413100904893300633517424268414453574613332481563438093804985328975964350291807393762761080092870156215081092515588494067425570020562022241701472907861511569085966758121763906897841041320412167837898511726046818530054053611912009707447424749752359470637369821026599649528762427582509413983531963139570604038420885110524329232492525904018932966108841184965806898327831524807540272858784608577658864077243260499582263958825722551955016454832049862453293104151706720358179833749652073198566015383143414137737772318610826871862240567386409563032381384470595421562959373166981532433748638541112670922989072333099334107687154443539396285899412626187468159180034782284777033097102775721706161416370799549544107926832528732118644951548055997312453946566464503236423438422762980191054039150059348986070767215794147193790405975402018732219142661441365012548259557826555869681594915415910405789655684586577587189401089267714842945671506232745607713922665138466345797290748290496085440497532808451748037289303209388849878761330810416839779183681147648981792224022220761418219267675167013759846652824348050261017887873906529709137775931013144524680339561948930822812290027375829996855395573924516417965164051559453746138753664151820951123461293563220718636586551825912133872384973676454708859653141982706313270033970122508649807360231406738642346864950364582686590030799971008509090757574578902866913118336888771629902749539165682382735603758148620373904350097321217137809063583898806519775226069742412069020480320291389637066206068875326341293539194035077732490029911445889810868001009602577227501305329172601414554178723352297033778222069775716293647809877447620944727270382012356471617179738156142481190507292227013998298841506768061363706953623197271118275292192993690583835095793331218089496727820035381310172119969460101407193950727410965343315264866756095823539679699417762071896603682952333195867221049237257821943763378420730596573207132403368036493804321882898615584536360860800531108360053050373418866693528398137427664050631662626112926511087520602289480604195655764188143553755997751872770270128258588687628195477283422272475400724834039964648001488170880712844084574056602179344942864812381468098066622302710564427342396150305893877065275774278981929416283218546639559805191409238484455956839074828793321409963693194303839015319930294895546025765485682693470115337112914261101524735242728940711048998345696207027766285355072729312683770946271245231048499971802336704279596942101167572186919483513774521432949029471123497372373977522242190001404977331250442449019245357456137277647736145378546528124591215024755513339412502121063916021930453087477620001032152168755370602103726233317168338863315925508848799360717132019210284758045450212296198866052388362921726547343509331397721664483517328702379746115505588500612381152559593316604270862904165847038557823807393389788143134849058724606260913617636413054778690772200485592590943783095029530465415338879619134769180538886125031417058395125730458818042184906665668816577317049974529819274198863551464519452209039995108112574431886801262785402474109915808589504490159830524237014796470970604444863502751477655203681334436002745979401514015282810534229359014261424704665775759934625600312717675010259592035490195543482402404958878276911991660592540440767266324439308756447656784155955182137078041721488376050576920879102914191418470105710547284148925520823305393858172780404072938009315851742281491240015657163975948541275373832788985243943563620770998550500189398627222057243303497171378477511813073511105953614601285915600094727746823596833976505125045274681688742321919699693623513377602987375454632005748161648740289795973552073374102301757594146178293365892459904452510136699468264810453841459323623830445874330039219582938756992098401866469637011513379072456316423866586608885268469163163079233757830736602791183278229524845008225502778426112337395589132551487821367384105379160673721545996959544888079356266940885223553081333787669096198872603594151608074420168728798562113521252500582912469290439196254870401436757794495715538857023781462303461013430846988487725069926849684048163992615663140120957212027336891539439828952322063920776827607108408039937122436271383547137813689869466861069194795683240069985293907637055855240408765073615513152489555738654598034192935298718352166285072121692248336978743265411889332909217636839685128150599597853289717504381672697914957053935519846802057638449604057568795485075371734399994882298167901339129907737570875781539521978416303972473277341498009305452857234348044034565758166551943358348341235778274528147604891234643998683191149071570268799666561442681312607699191615281802209291671564601209143499342224557366423692336549740592536491519321576414905618909097900533955160927857452099063269095934713055979558081506467554091858533227214607269727472365800897881112149404819285049028986199864718104113348799979947795816896728567176907603713547876642464795324475895674992177522109445410898653544512627966562896569432925710909996790681490364724557369542061398437595922641482776126414475604625831586439846558129280019128770064431463762568882281829386435262875526170467412768580915155363051151876441710115898792451692029666735473223166506885455770196078759705283079271078384192079964546077510410955250126527068366856301160518514174431493578855582508884790398795120418416286603973832773653168649039377358981070271161603631800406359101906248665920152748115353519620086286022926613365114516710202815992314841507556102095508716197990073535601457594532121116840786917484650084446189482574045893633469306579150002322275927442778889087452877188670117895805399006910242437115543860520927515533673343234755642895577227420164237197883857160748977375181834150180487022022108580958442937292905918853710908558418078019903931245713278410648711930561436813928323912015117051714915853414704117542469469361840053861848288552183724525829032762632149959779528737672770293296324923012122866117958867755035785922513034653765728826099724930958921828934723545776120956688310249194839895166749277844199568721007497074864571987354542075807388367692960436909496111016636266882881572080666829373039223554223306791044893169471927095353194054425706923908317163529442166401200089771509606790836667066366691429615030534931234501922533634241422528909650768979952964138229083543152378454371001737357778938571472103165464535349242972670446574294581491888570429400906653951264750466402517636163501832422274199836542163236570944273408181158655740903014312744829037850594526677579626583082588840581873408071957087076341185788300197678168929202991079114511658098870686835914270370926964343470125577761204120247705274098573628925152665624539859366006467788262118714039348895172783751347966099614473395898229943674707181705592200654583442108777307820696398319618435874979448642950411728966338271871000742111760014912755712696704808324773288582047076515740352253236075953116807850262572804251728972260093217573968682741741507358524223721136436293226504625712937984254617621941125179397595291865291539878217985942814185794228195625470777441500704926864024843711112757700854596223411225412962380428848721646954048788623177071517559970047232299420528672809479479777317950788525688642434092466845445854086789243026989159382950306622863110492582982974516262653425065260030932625054995521760549277307838661626590853217423676572859625496614589075634976371790478444703515312628002455737248627174515785362193186993791253352763371338916268922813477998204708635991314752749524496380430925009935546903914547672058693851010644102828935089473908142503838171619029186531793779686734882783320567267293175895850353848779600321055723300483548236487646445820738143772489485680317461000521844671874121449388006634254770521795140238540271350474584084780328816306980100392306351967863017632671941693385443914191368609676111476123181581295132576499979174503091087204474382023444586542269082846290329931766401804996710988292926851063492085167348987518372611070449642679935047475336876738680209680850631838677308297299304354395879407366333822031227212656493067271978987864569822814403282076808332920608481145851392617294860672771547053851811583530583014629062818096947374479186186664483585064475247932992782411427382284052715036546977330452974508768895035692143670225569877293565220152363211519159587646304511175541893405363618832640027314780462143344862260444123174344247956343046320299988322909138401184053246936640376405780259970674251277250188588839485410926090669878159579985455626907481807875704911912429948399566425509306572250325669585156309387734453513240408703370476637618344188889925304771289881954062407166763269658832122207583549906899317745014295041171248551103149387088157566440140739608259611305768345046660627316083272949048560009409955275970550998252602511060456656200443990004506614004327485073348188767815085319039088245645210442063646025315788013994598333367160721209291087217072066925165324128012387155440145468287208465542914390014696539640821988088941007276799086567087467742489498813009654518047936284347822971220094205736365777472458573797747684624861419569127111615996725226085752195860486295914425896579493471285940360140466831268640630094611590063013152787843005219567036371758764883913622724408421207825138187113097997297926997270684466466740154138694713269938045490886444362518182293284273403592265037565380156237050449700127030816025927826349271822208256464694455763113948350236162153293312349339425046271291767039328566516681439167336275303973319523156960274677750298928931187261607997075206058960420993017051393679338438988969855204602211993123054298812041282740510971645440306084605431110809692588166240243104246842691326667498707064410874826668853411258842449939037017437505192849761137415797130700846873175047967969423226900950456467040265425309966310237995531546896943157053656397387603077926270965191994088500127880106942330024663415054075406507562473083623038256927866487647071478093978728548182246638304146423488809478950515992639353487817029069985385110686018987446528746635353851616580577440870234017723567575684628168723334394878930014878472504737534233105746176275720551665233246661206152497840202848014093344637946200128223689250981253624705202177907827259861201270142594000404720640613053333591348785334587755479779708684599170749950505335848269138643721212399480526386903410250189940590313336408098879183826997759690021912291906570115771934332868449933861446819617635243221067201601890095685270506213891087862183471437952982502011276115096646815518712481804060902530520139803300134516595528998448307609821569132923582508040131999396639907953003717767400780151873878644452497055883818159341606321034921752586343795077167308871509614707516686639901978321910816697662601348187663957441190391603806949610330318004020020194182353118783611380962141372757272344794623306076448360938529755698210894743971261031770688876786268430431880572895400557299771571999168563004154639492748783895558332336594329531120747439019859925569627026010248710338419728900975522356882200633549883938736812120568079774871346616035891202411957292921076547125254966314933421271177159378409377817808870061980129744965731335587942027545873655782087188298118760660512672985357680579822585543384603701103145140242435588789117230078094183012081847959065798406494100166576058716415457429620569542142544578524674871830932613495250024411696955456771473534325838976755474009633442803659606749308026313170693889214241046832829296212976648496321772683890826200661235913416598076212339563132441790076722613159296069346625861522700468491153325924316755735221266291652298357928122664390244528892545529756889461800799725127361570114080600165254468146864947175813226486726220734846849992187734743543302452542125557810456147724894742632063476341792288807949998579334801067339848761252292704827350327754921840482083302120391876940334962704065750817967969670472607929190860456494242466852299818993561333166833528086256890827878902366549449773640413455091392699525347142002867329465787239398298934286532422188291140781471809374348512423490472395167661441331104453657085424813888652334982146611709188516309585025822800825759861815549750164542279367826424683263165082446081609922008627503375751605640712110442026941561219017042539522525521627339389173242400844681127595538009183902801742258561785277585613530153760011233263734767786153243813250560066957374740034115757659868408390214467519494829102646025429288409026919731783778463808558182062049913665265968130757706097044117934204723203968228580583087299113603691637931221889472342775206551171787306837326978703840042067686435254197541656937774223455959657098196969321285977198046002869248123238369979075081636370096314949370240116823550828224497570941164019989415597500225744279176516776220180448718569689441871812627913510211346309825727152097325183158044088771631408839438560320949565297072849616278987077252844132929417843527584927856861265744961787541045543955611907708040324097305242916119367506307863789990888222807859282664993955259582024115955163628574367865040426000595144470312881745420177712173075988788139960650509168726694111677186670943189286270634339904011538814122828700356766238720986902134499406341805975045147756398828295044800748917600431363767267228493408985446901325185686667164484920062579516344605002627679422121302299065123950553050610795913895672091553359589669240958282801340286971243119772692845919643814452605622179749039919651707609047484731106249754547062588857434369881561816137059499321580182562602559719017043021344414296945565072006920828996739949149017927533296401598329779531012380379274576061187471306206173706542043489326754936378810254051645643196342830002814792071163029416839960867291335147178806063751052846258258462342605562272083416847812843554053454655235686397292279374714581854974016471250044086283055679559676919201313120230678981853500789225923741474133277444104360334008069706823341815253912818336531814948606548488118630579689583724531360012546580972202796735320514373573749131657065080229059730417896822211016964630574168994292603232075015852551652168172828026140338008671371916479667137901556125403416465857616950449022777423417062800646521791617952920368921073734137901993238122698261292836303067759797327694820097944138663273196377385968241810026533467069996948120960163027868954822093813012210133733175530472811471720804695471594300362885703598853198026772238560076487189074845969092739844035759868440614051994382327454700604302831630545172980661785454006107755407836189633369371091500529847187636530822240271927681848616548972719614638504172832570970119348740644821656333851864783272909767428570948740382647544580588950477122045289900936295761319464389313354883824168382844673578095373861620005011043954217302364877757694971420240487302575346351114522828930518859869783614948467479785044844504647662727216925618603924438413194196552736942110085257563650132046317024836508548556755718488414967604044653664057306911548187845616866873193344953162840246041417739338176794743277036528007176544685875059525274964084723046025545469585045698289053959167613486175134041327451387545001342888571911806834927458374065884202446903101407592244942631246121387637398031832164396970925362825077886518587753942101302509783143628425404382522159635050529194480833637443357477637935931782274074527602692793796905113387186112087080783555672178732544896162736557605511706318165474495279278046989339110211785655484944533914553555096568608747058320741789625259572388468438574009270563187910910886065052431110344605480245145188237415696738353839532277537221340535940813435359092491342423484619662393658484716810009182496388721655807602130242784190966986779173478781368806715116796879119162693092585978612154565327528760028786650283756554820140214347697107733298664717207537037521877554237435912671640632257031100226839903754043715397919794749066078185013935476464834693141118741231135805603437235411294479124827600390901046033141602560296582904299403743532378800590871051023136031589812587459447759610996173526409017379153480680245692312171253969715387113456194799353911471821401449238873662987240228907004018409558089714420864853382399512408793822736416039098060631175994687473474470222574288853764341611344119527308263458924658017891710327747434239971061456656111627233823167066662833587587639495588703806332999437340982381081920186001219343905523115542613038784247005704609465234586580069616346050514435792876940246325830170172204500121699393898300658860392855715593576162339927838500110019497520833687564147572022654730583535711156329114559152358715355327855234321267524286089654080317864747150726448390185471946744555916296968426791315952025481819789601079205549955758383636736152049671188356176971738273450236521567675775161468731842959787177115060190899226363704811461140522499823549494728729884075383587731474175120110263288424459397284290321608155943012054951257749426255065241575529325170890914800554695861886719291417271938373645731440379352922590887894375346312900353253366290104494685938414648287739733869142699625732053027240312672112732968635735572926518565354736348965331097783857852252631589135211827718046539240559951802750652220110013124729742602527103631459080958184507108073312199662798088423618468595123030527156253337451877733560366910479394207184601444557611298237085750701188955670734017621269932178087583814590653842283239074746489232922695338709620947256838950044221541948300696208119837572896496310712431358694761575485770641769115336546916119399217823048881804085478425298640412225234850996025346809407158067332914221283633936623150830022742842859449978812869405371150091787117775335091410435795213254937129302857745340056301441786480964075624737191901994439093435800917506479734975604441446699115036882906262275136732186792524545716526796069069505675009131094765100691845871776764474936849981578542412806476652426582954238602364377215574065498015012069868101781557148651127373759351496119461996302908972310277054911316121968713423788287048193456574317146649123001463503483318916987325132713025012643352560623820623910481630246576969942034515147136393499214709080573884902159160809645543296110233989224249425365812705660591843620345573718592303376731828576547631970829888188345275422966843232562323317889330294552733748930033966460411361281157279158769907274747255001499459472849094798232933027816829810907364994885454519492625320440668865381306260476483517524569348157506098740614124689944656540887533896013464829862641163688642872842636674741086945840577851760517722131661806136973763006291384950354805798774436982094339830611898487810824101599515142933022821985649905615937089510826803039717716435152061842438206255562007979495003966417113969990986604083646447630708808755166521561511817436259886095166411277400665834852794929873120177459479509542392013792004262083783312645636969002865112807417170494192857620746964440280004976961664147183163581435183187328849748746647776475861106072741575428868992385235546121278472344372164569717777489219335911560424170486791338086257015051258906135657095775617519994179214917886813476691199297604702109585468610536673703877029362833131170712967423363271204081908028382845771818737034749963201375479826569352940103468946769710498335279627046463958055909912842206939275759017790620986704224819904370461174988457265799771602999902188472237876104565153730256556416510650691815332753542298065761472941378730289014510698405956260538314093099818419044664093599022771202420478966596483826765261907663692268700988680741886464054986539500170143362714134268473990560494766200724431681367285649655523600072390228663755728852688786860134765236139015060366438562235430020265465695060347902983006192748959807030018232779104108565910941217235572465175693207164646179505122182090612857631529895607323532327284496225406561166039485423677178774977197317313113466121114508715430441663354341216339464982466876027369006755208198432812015157886413578179755127806508343907404315520502255275570717027231568982117013710950017807981177648738364936089536998614330696354915049392827017808835588283146414628197635515586946478859735892744623406742798991221573090995880644528125638695672245058015853459049903137060698698133941030868214377575327530282807201107271425720529944116170429837391691122268894705225964565659200722415781788968120020228674076015093281618800119626722301686381181169288091949689717182400419867412155832519706735701035621292316750691444175410425688285646332351852162663923654884708760813185696892047198218303235678791830777869601202980669877072871277642304245069203458033173442961151588924369070100395529719042904898254466451949667061649187476758232500812542599387248697038807154328850961103537628945401150406568988784399185987861634194526102546858659307060981701891863145486341995411549568484416564433957352483394063534793042537614560855022956388877911762903490895350697798110737539992176836146553716923263574613032218218537740003226912590159009728692537316734994037241365942092454953965441286900629889181243211998718218612830495943463304900133660065767956028721024041831459155664082780285192953050626886842819219008449277725775061112564340864764628632637434178784676838513369466634703797971090919988838126179825830964135187612374516869979578374963434284506900713795078785747654298807672087913390271448036035981915259048617698131631928894494316721050901090616415010008259165930517091301579716522326425969071646849954777840667618416992104529210029893760303138205541948181635969772897173580576888438497887303669937249384641200183898910392068743691613701015317348503068462561928780813256914814216919155613839509619579108606751613451502592278281625382117724279025741965359234280423039905864502550381926557726425417249846153986727445951582890451221033172148381505118068557543032082085849036388887858828449901132301290515545895376263506730233439968933639268352142354938234501769921512934007696258003808864878668350026481811775457055258324032187708884343019970088622627005627313655217355260707335489430423629304640731680916970092435730554904351965887085493667943410989627619147910805296319243124211386546986000237095215943835698750431771773319400496318713018876473591174243094709374404736815888670876213103052886243764542756546154868665688415550578744026908253804194218719505686980645497728902706217744180977952304249257113727770665886568599570080948184886786452400135609225699511198241224254653296674242324164034315268268380988798476825947496415115173758170926298839291202359521865654064962081899465527803538558957907122725678961453366987713491966454865710843607734951198739708634320240813701185207724852055794923745086467101636851697736215359824129586725765106265046273154602376657254904475836031748578365733884766288788822128450050746149438468881115016042075494179233249533174872060887059337295976896487373018921670341930143792159151079480022416164145321464317785510514095200969551138876635623965201215355392803030274026906796873667094344976695639410703018649861001315473301169161593748824559352613191752084791207998051746263707302899064158228979859264819133163640944315653162384220431778411169981170861049958339995004539174011046235344502002273688325381448191296382514218897582835219383236370257615461388219002382701693992361543065282917951053170921402598209470214670447027276776591798697058525343574879237816475964739984776104926653691184605477775272632116384781677761262263050376589455584271821941549774470590101300922867231792962528249224350875426588524180136071194362004332274553080150275561656774614376632219581835148333988322843759636029647864848124972354400697052012225351340669019000210367209932162330779092931590964007188891073935549460595205299010123961712226215810189608068747630951505295410492065621046743658092237705698287778077850855580125951249361659810846921367812593908007821487224049751464739263999183161710052970213658970228158845617476595889307225466401547975285756489998193218744428366025374943278005709216379616493472937667538388374606688197187005803330424809512551775226584315262437313878075896591084773014986749399327525332797752851260746201613245291428053486486142823619698786364214527508278286999591590230440682257594691830992737406137219773579756408594604116068563242348472176728869998248712658445881591304349248359952405196393966916589765274163283396746530919173506528033194092041569070510516806368776132132277570078406093412308084685579663804729094685073721580294834792985588336597341598711306037617095313481783916537740075357943355234820347061597852701085264058348915915184145769850752151707578576768816207005026274376037165730982409707654111103373609887998053504495482681843159967345249138434119131892015169487785531307764960912764027669466919909939580699139543657105610209471490509891093070869145558590800593230724681213993822846274550312651030198381801517748954550946695410714554859946560363965337043716817626380150061942303091949150429761997663674575739470989468124682069251447585409310373488759338988280607636714670818775666619407971541152193596476125864962254069931917503631823207516505221748146830370817382630106690828446715831856441583009488832428321827486049482106055365083772169302565087975465502653081251046881359214109852194341593612890818765189295062095545255602995690172770590161307863541476939678778258164995460748506594775441932622390938850399866929832144514381556658068611120182287039190625665997842490258879510071759838331923788585926510014990012310096481504854106485524544644305092704444363756610477002730416308828477927920078514561317155267703191660723521973014360101577235599249048717199362432280343488341298242295165116882401413269673257694707842895193918063313213162375519995043141775824254629099143891819076212591971105752799500952508918469746958557969077281177465232324737090346697649826675125589205175985840810496168708329221351690354385342010460431212777458420076969338129925635369194834327169172106386299301376556197571275848268699310730183684359084410660201467979345629017479358814907372821570965219071087065988594137024816065398704083974993675427415123690180031422768067784835497222308844439533940729773443930232500361597299128266318056590417471813437512493155745051554771725837300027109105005588727337806335186597565451490129969474202912226518113506437939767761008771900252932248527478628205180636738318943818657948411638758165287452240508319791174495781375993244979497725627938235673871424616204787947172671768888514776689322199793491048872849171077401307489379588378354015478908998074771174550908112365171015887112973508645297076210869364551517556702674002093662235298051715461397053476242703401191193092514205901782728131785474049022299428070896152964326249124899938143217710136240960337531688484125165566614273553912777866645995633097214102303592180973005284895191970458943791479185418916408666359283302517499452945471667650691655612856729952292705453077731558510939838523060164218830076076351583039417782957360719600875861554074710900500733568321251605529046464379549884752292854349411258142387123646419957056168074081867342541860664465395865267407071973779280546339174382517104814836146353166577095677340046071275110418105998920607666155823215001802449450128504442645130239857476125557005543400999390894763232437636896040802717859724061639524904471954767537800166052665297651860304044036549373792158216649015367475295108510859199591996844756048941640039412802156061476645924118520040254344716852335869186620271484098033847341734921651116017493857234053480151054056814234734141848652396768393524293594007439221004189349103662203903250386975510701583292633400557558281473963857868525835338625330348716383232151609068763063279187555627364184611501099598370348101626340318497333304971665815196174462874559863711921322580984903474934005137682776776091846396937217049016059724026063864075349260610325414125990010320782423718148910829520334326917306268473431413216954297841315925746595843435457000936351595743306481001208414854359537500741431945303919569042888573913841356600387955119290047705367336205969478989761424605870307019797295396029489181163564090426263307680437799696357591950623738343216741003281599050743277032376444776209778831470017638639278621426798048852872892396957941443601716111780697671946363298671023895643604549745565769934939063451993954707265934482208348069420805464134325342048495147125134285937069505568421671858158524339459860495775430368268479859797666595184322866367988485850921900029373412798556523266220439364897592704590806787769907823210439134317139606344151103542856743981345952455958737911888616614594259211207115987956394684188589059635027818360425017047093217351373440607074145410900261355001114405953144883371441422639812381724620452041446603019442466606774445484231344072640870815759661279221040399415663202295690412531932298599898840081857437195266294983090331337994964161016498835217010133908637164178075808327838026814387040601687825699304421284548944938832973009475151982604130940236718173588376500506517957182920637397235586348714141095923490862913595445351052119119289570209635671130223738635020642005986531349889807684679843909054270973618029574765170337157439945049642637788258256314729750148532022531482693390526946113053845329372022967445699938493970263279073268730138224475094634032115661352044702806813453865012562302913230474445066500112663006231927083057793935390522635669310405983785688375734996753617771123645350579463965106558635338161430912049937666231908401766842967497301470799048781457374767210875860267379759577327094697423487566916669181499059539438491646887889490256568291726443859878181303113776933836592915324960773670071853006769162341728673688696952635088637049842728939795767164767052451490534095973035015938464695360464431038348216348310623985075387001914157302002263200198977091023459402386358960671346244000238435874623602778071119163108425336973776952864154166455886384296758793963438474627519538465466266368931962225600289721821398349479226142611913432756263756769037517025678526613431948146610398371684547824695504318471200238613291737175288718070349240408839347302502485583600699313441821902581182583318889843529660812387563835588742695436069940970364420013105905750541464209012777141104301469743031383108145621284184913864654173779956548885543347929028793170126543003840316899630385832166383440060981238315097164685443239697813170178282416128930034536475456054730192942230693520130787542650764876811403138519013210099338839138049766916053726502373438283170681278655046912542236762745621455201346731200776512420426004579941211521213693683366541723000064970522591215609891578349472159148863728235788971653487122605638280520644167834102350638874310623997323117747325480216722181905508592513024621702121125209399846617866283181388984647562960754275903636408886145399662484459960522057938327306451401895842442296705605411227623146866142945494633060212972461359875549872674220344977142335996361004265645591681918259470289738345285842535505146972230009587568294726045968640318273614270154564920032465266663859182099569864814381096873391319975964142606777562951058217967364567168210163765121441023216345712311673137437924812451479994515264053501823255728219686997875302092403865414503832655465932984788271431290273717605647661103178172964746691468190658469733003257978797055585918358515154760815431755625478799973926703082832928976162577991040619431205554342117548140888928131282514026449658875734516600016743356893137941162732953449391047939752815179028262518847705085181374934629434538168984482171348336948076533090821930283832940029909632479040005195663452076726106109866947192304250979601175975171160103862508201570085658129240802580945101850620306303610797732548897402242574821851400609968195851348063431891474243271186167775818445221083638098458631694084922350530350772611778947515005566985912667735340869071751606449126053784692039572500959393600231996087883789081580359792937361160794435721524494486134948489237326204582513942258839747588795690771584925093217266835973536842049322075542364633056471619424182263325210125066899789087626101933887815717089417988021290593113920538601432456429019625976225451902537467330510566510571730203124680504181324092167566317302589340035585096202638197498357500439342400137679878030555195687100310579558229396901288559471855385525218142000197351535225758234443972384771597567912855705091961604682328014098550413508752290153140378279382525881655852209489051587726379326087937054806759289039485846715251480589001358867174689474883347837647778893269493515687046604077406162448880244854318376599720463564291714817279267253436232646954316858170821618013137744454170994862309619607151957888611365985382527865019715758750517487049420029864599147354269891820672892671914746537184900767496984312485791660919557931546110822348670802416424298039502749273570650622374990628879835773770875167431965865307606357027864228861679672238499231834341266918263172648852162883079608231063007118634267239321408974348937691413103494389066274454868249276869935901085271318564993948539649164554116463269950643654376493495669380292199989809910161726626601441108158940163276762788368461894005559457318081607221042476414436715041241062920416283343928372993134700622431614227379701226136069418050214908355889314225926568914169663587446470517251604558846742955654986325609589575109494033665276995687947598903628804883569083492692391620762301099951411647970194368246191079446087306803230927079952520842065095743492820509856491514104617348290859056890764873808489042756453286779924760897969794162623973271033725512298430376983393972761072506798235437600347924742449371835534695381620924618354644787555777584654207425208852278783066079098648300547470362917168288165706553865126504909891051062232629446681588844654803562696729311765623563494635016607255210760734402956460104831928002695015610711342126980176754466585433275217024059528644180717247920117519870515552110053903329394664103203663559890695692644604932875794603260648219431380225198780167655544650914372647969833450207627984894732583009753565094966172490727884860453332246673517378073420103489253157776037748074949687161654295820762835655477249632943249919045433147412081161696507784896875114294899630759887083569508978690928170732367787496855221020329845513954583041606562154030952712149718286955027943378504782101142688397698406114233656800307894606492503711180054021147355067922721346056830986787107610119462063139529185667789187165986835743099018174619590707954175284306187507932118606469011955420124427165979449488411812116447983229758988181079147626012950554598538772125539736977835378349919265626396312267478450790646591099099275866107068610457425780659225474479308816491963121885125194593194923165839813960888428952391483745442642765492612137590067962441900830388535678940766407014647720497287759848487654247611708204413399576390098548695165947283717108843919126032974172542257891278712518304938247637269398995201444825662330106220767730532013603157092365449565428940654937386708989449823897780497875780091904306591930293874028293118352947002073926820380702559971856068452551575285967512725668790654747979086328711127575523032568516196122074425844250414223927285196403467475223072200024691594795990961047372384743901030237245015026373188994664166598041325826237311792197068676702313579378460188011634335821126033984365494295561022413359954477156269787394280464715401321351512407031094488762843215862223780327459159918740829407510453080259174848320636190686270980372621129271254628122534950485346443904566394580177983617650435826564710257982173132597767085845813936285085022511304301918167388737649782979917027091227001030348308330926039791646893695489785655531619968859086221534764018103687835628365473494853773069593172634623827848519216066623939558903876692480763715029195078842882584094907207037971016472326314701250916083137558752637789230033709331268063530405307854177036195229743108913715490404493103055934412665665751478685929238825019582917242656308903786707474773571736242850608504147761777369461726817583600397121398467603288453211239753015110214721633153657783890067312403629562597785219582142346862794541186176563537576211600384238139610099334234507545817848202942660267776488020766260279713917270296762885368774963051498277877361522395780360996644192454938138375552707446587323203068291662966154481653635619704289852617910327962888533448784507971542028685827595202667072118618787207725805600813799577458190192092658009981582050679356605380022736862244879760152140727692661933403229844904628568305536662952860065469942424842154415181210054217579856634126782651985315665750924423385530332359510293475006449766668691346568461914225501758751066136499146522027948475782383725593671487340649001441639430056952985569470352297341180077457118740951071779029951124231822759436037888187301580234236341788689249669151044799417699528391451371047489549856474254988794579649439945752968209164554109117264898386467385242809183638868862998631751570512672496218552205103114089248449550346602259323041994196015725622292484413506414962994556777903032396303302391927418878777855783423975691344347910776853622449159721996903415083857275976332348018804566908856080559713940242497238007899961450136982496607857242604293575872762755066397750644370131749291744515031579663205660832865151593849285770562464656569862588491659408060701661944925748243108123001472953621018184743118680631687072839265626173572870117225402239286062070786011274932338635436028878376910063551718468267512364380701548983624758365927781765710271001674869381857965956827239887856299317151939485463258101708529483971741021812106635907722392657206524167160950970288520967310004978459028326502808071638715443372074157721821376282481226499980390733229734707871846902824453722530327583936005111831660537683701247533896766675363899412162056697425274797856102641615617390338585290160047574474517703182195842085815770125114958040782376440790657943836980347285612193293634349195282145252742434627537477279005000106176328003849198092473796056393020770863602849345156404630683202299452989949895239250952871019567480675684648282552772136839112596948934104539047005057738439144909022065952107596730345687213716206186847260107846807247185359476214547799892385570406771413221204637009928705643851520044684320095336868142308643883915189648020426339962122903072523783202980252248765572606138720072499670796788869659010116020689910172461360157185372394022029638237498032698376000305613833527672183250926839484675919437115371771439183882179969997020780853087349294675125209992353997843780863414446524452159526770520168138912984445919586881632113023771000174882051420571470771935462192163529596295695263476438208248511985484550277245448008155783587677404588322644576590938659106596133258161615002235963675950371172173202083435588223173393662014812752758308000459775850642659306381756414624316161915454383034487281204534391624371264411260136212712339211165003380551101120134939280407598073211538554637326247658684739006283373097281917148700338397186099880870099648116898204118282128270036229104559874454867160998242110296354006417414772398358261245888883857500145959831908385868259382635268716142042638945906126111211019713220414646756047350177564226305569194978638223828994516574601586048135635521091036904523046067647725148149729823368484588707638058965908913688894724020529669553651584772106779871136974240665430956882830345659570744353360250483541850303587645959116435781078562904995989636218985234183417754564635650950021549049526883927832315030413571342114567273690649262726602042267440058965552278198299026016493968077320938882264970860855788860867574646692406412152191821419205632643129529340489664035869812936232415446474166460254920059626990718126835779146812032584209458975149392133075774582315725871754610695273718744621739487629545341866462422064311274423206033008625821437701365272714307013318027636088495257524355795835503153416339200927776815720909768986958679593719164376684759662604634502592173443993522699034854642367081858342649324546087309478687514137133394397907246751349759467623629360274900207973730641909808771012078339073786507058987498168008888532117941555088931938982625979363844448972703526145709229766228243303529864354419950252445233723925314781078183955415701431821034401708205553179041991520606549733195947721766083491437594752215189483127458330985449334026273614858182361417774077609764896933456408038145218241687573890248338603901003444961512994443413182848235423896818624719025356209111314293939243108627784742228273011202294722078984493905698367385617459475979177044846951049327931374464837431268959007079935884535178901514967380676618352564518803688916636060194119629083143785986593686780970293443740221241473940739620386931383177397789121503625005260112744836264013491618807012392132335989307713692699232403900079989142156181764723308989110084756680879839310509143058896244582625527953865369046153367103791614874441642115202026128399967615448880103074978122594466769362787889744171094575720229783599416603424993087462307050643743314789564380937619355741484183012032032532929296298388342368436533384820731877012429718602989883334174139475669534712652694772758197079375108146352624484264019662563622946406144893316090655839486387508687957656113070350660523251728076040874418163012921119500500081521779096561966879113664385477004867087985167344175395315664367626591721359532285703686771033220484699357739795783141908396425309615953345911694054580275423631418647455207197008050122062033118239209092132855102055290262820841332666254255296988576076864517923381351492526243669705866993098015167891416771052746381111954315494212341583570881949838632590898423379114474109332827006012183313698573258507096986229125131719033755346054957920122778369094547786885559222801016049367441517384947900374402862385059301459584279733082454536522921064986554153811063971212637736378444900101668299025563698541497898159388649557473352299784863681013431818963335529856980296559718823452794043115294533137229663143693905009111928987889690273018093568112292868825348117932805216790671373285912777371845394915373062706289217849678535553213744628637866535883958593592056306666897913389368730002345847331278827142823404032369349437797775369837936060960688942296857691849521120620115642830569286422056511505952960165257026960447139823603835174786499768340067711395189483453444698360625944686711792985500719593146154232365275469990659417527329186910749554841191354337611967168082841581178172925004224701169158515662860478345245968083821075627422345305954304946494924606500863081437947467754501948937313108032143052536057105641632484885618943838676685498565699745435931832944023606391046164426700493596332147624517105985605828288439500531612122767013608484778071946486197174734355668007790166678614799640129293245754355738757924918237432893195385533744896022254557147522941611067643616466528917441680153333639496000113557906331396473634748240790123534878599981534351387630088010819493365074218793210646138347636206343042979016625485434292540830329958300449939479397424323062588967286798859477333499167026622409169985660796047417879383931199701819164389621667289298950771480283971871494399976778592726266323401775984473557178575438786418893282459800710898131733931918334778057442818418880375077814587393714606898944922039193082972361933956967744576257498698300443160503687661081142415933682545181010085557261272805711516407348386122362946292293724991552257219831899844694966912466217455112788361131417999190199688721183032665901047537870327162839410759025101156153681381758611837591417632555025634168471762035494261847648358171823061170193217517882728846969462730113536268364927088790849957778447536072862599149576670766640979848430392803562979865072132711617052422998928613862229724460321408646378181273802967672701215217021254268074614609095633219262693957435491437685740559077825180294436371310319982149149965676338414126814047475074390694525343337704101762827099786801313421549088919710601671243347267029983788968272630794829372309876446178948637088816324888477420968888201253215521685616231489671949287689628363499748666904074060196004859216341929521385170193575502925782694161151343535923190669201606440459196674042160738198125318728053539353969540765923538561539751090097426221887877248492280858944005102831227597147648813330986678573964742703008744749576871445489134741162122093665134344629140284515993028010201635386649109486757329762096447576073349716939590364727606316897696736787174953270195984492186916667416025880001400750372791740988527020346447877511729278804160909728278177863519184886500933234500283093543066986421294773891996907300009899716245290398401088026090946324815140230117337123005260137196710141735774904252194025725362260950735773472541549297716651320644342587251139405880999756405503660913112320318857760809086133306142181292776420111399285389848008538479418446207119350120412721294022607517027291316702365330070038453730822389619530726537718233283682040707584798969136064805063309789261945319001632585021631538309184044276181641985722500530994904692142101413199800699680992613858219558539605049198571632454034037303469791098696100180152307775030083553381520470551673051122733077909697652276472349929423663729734219074391981524548897119142788042664231319237302512956386364665302481954237806624349562754340134877395952812895881668409929001183990961480684982682496668953105482916457641127491708087290174267985174688938049116642772716127051108683222914856112174875117334748968963884296232051941349929671062772951448211642379312076855268049332463582032780080145971608156877416982753715751193516571299722726425472897323866377106819487365717957879298211192728905176927806851976942185266447922907211929797499395093503852729071526268471407485423752742342747765091550522364185295091344523609626934607742680604942202192626735702774308416240643085655241515963312657179791967588661999414715899037444318455610665496710946186548185570719391819913374689876108049075048777320649357144763151512710772592460144961330041001057233037404851325202200743761531129845028874827294028038022171482784953199924606736038261250379586591958059795888230734210901779450179180772868316916592914587041714675370376520467653647456425578679409107116065675844895168753738847997878430562227899206902110789427156450945748556610900543676419045387937370649715271136179665530835276713340851220944177143847821633470185100787158179309868125536967950105852520160263131913749310028400980610674446829066621736453861913929309790684506762144640669720090940346502781926849844677420217876790491254998618028865753673481423548341349608765325851121992912973620771155646447013766024833668751127427217864001007737571839774035774572714195446905834938804661187597560628734283115032788147208865799468793075258813658074625149167616789742293546057624375370222151272097538769242292128904344649781872338672665475278237820673259476319175547755454407640883460647979307003730495129683894295726777715820240839800264910633937427940409867188682146453441130469652228143492789413221365411156262022141115101939725022342782939581508477540006786426119371506340277458073751915183543491364846890769987829174291864204283638702957603628495773430566726800254765482409987436850354257664639851745396263025985450492650200621629138914516172860127684414381417386650234400982486616831759790790449708525034640963936511299962470124469445290918917074876767477489080101025440969744774013935722354736653387952273876710472790896876968809971936331881536614100091719742715033013080692890023580740266761224746392116656608791312302986196671987195781816771713319443862199572988664713323451705226347295687863867593664182523100867216586474764380228170823742719629219732695413047508152583175651821468543130488764902219369963491955592184626484901330829273724485448746648492595013219905303705975503203850922948898488252680010864758789260670265969172444041202418506097128150904593080411288022880181041463211865223956283489681747995580642041190898906110802027529813567968894715180011337887645921049177329196822435311756068234755984012852621083598589381164541241096163694379583445282792692030109665638298513551291171191055558171067722789009759977342361388962996586466671853027634773957733098090051372592003631969527848854897588160145954341781596806377841304846974757239333483872855454530993118856943926724771832253123901452871550349475957804239179898307769282451190011491034994063659179160195327451522577903753361491547591775585458801770349961709259789952271580108895853699679091909620014454891505455642529325970985929458315253576801710900024465222715188677857945097976945960935787889925842868336954449340372390728433340290798113872301278642003235024521410626543969617166245857814991033433593043531998745417379279249982837236550174214136429869621095007585091620856592516303764722039514001712719956225251011631996091360502692933843920753947216436486503550572833562493766551524537995030323579982412483079073942951779893380523607886432877274825102499021427642353576257283746761034278145911380380619849682146981737463419463940918238734704178829135125192257550119115317893983134750614574274568399851638413915180561441464017514515471157050382515651391327083684456439098371478911006223635950043920652421571049364323009585340278937502530925801499645802868488132626766231882863103134059555497909604697323449406869286514594163818840621932768910893274728727146609690152086119386449650293770300402186991960793156138465156827627553067838733843754818834449251983575070477291431875032106994959051644980444677534525678241192751340572299643604182621382865468815481180329088612705055252085251998293187116836139390303205332169315360445827788454912672308949719769439036673561068328368876279737661042295608854809295453786997492109955852964781236064879520316212434902196019150954742481658294148321592711678658768246099807215481485886989771974756582601796769246512776958502127886935452298527792186387677950926919031533219716505422400205837941513495145633527944578201284588875738225951662370951697637389559272865409211292930571997107402679481050938218473316920746694527165757038973395532774311716147332277442981708845465698660580549707621032833191136775617008562338031105716697525640481434174147942021131093007748686948407814969533039044138191760368401357646111162452374704633288116050434901796845510445335422222426023350937106130694356430661234429304451189330651067634873158487173182905020612747954349858234518758231058576659463994782910444772508805550051185973542987221100122089213470588405115250774097523453161261847630332861770624078762219999652661236142915237427010443483712710989318908818347468300172686401811143191756428322944324379114881632905604631624268397011280112038565621938823292576599203594012443784625636636556224689350377595320687767782869677411213077719152439924483493075511392197366265555232745983289989811508328806518009694837760362484306454706996847406606521246143634064772818841057305580893433849065133284388647546992126482375478043114090982258972718293225452091549819512941645710832721269015003746314668609995353423327804850690498312086562899534212378322639666923908067931464468784603337341701130236519996820857691580007984663577945658395123342911029013159855169988944128615343111580169388728394677986422292070985421239135978423096086769037238760223067656214130727738570156440396092122131403589494825107953452668942349049221715271732068481603541518794486304945417628107098770161188651547763235916770293660734974903189093542802409237614782211591197799104759671258962373733260257853561989899579432858476737020142663431900359649292756516095662929028950373912941511279962562265743254493048083349619078770723106792332203352788623837619480551680820936616202062461651043077380765391080496703637190984635500659405049031380800364206609313980155031564116598956390110269868881278587988225783453420152100583715740401867935186038835364606415888457274937897243433201935289862262690348443340936826551979221658713251760336264045268371664921753675822656995623656551799212449271204325985634074816423777664402740209780075257713270634088134911976198539957653303051629663556526137222223132600724542902103457309304712928933719708570082862609950030750745186558439603962741670159107564852091112317652772381132887194391821794451077028696316723281680082211284876478768192243411726358737955803138993757479356830237427383609010985769377519025801499207962706462164789665395405311712949452238382028217492854996606821985681969300201773443942444966415960675461268858046693037357719650022161657141882082783895322483663508040535452602896822297903024375524005245764499861397904096555237595543560964185666029375849208711997216511777894361320917928568685774040175687019454672138337094592642043135176921588802071499394129868496544983411663121938516072214037370499151002748199007606514804374328875228289538693639147563508539998034163379652928831084256554652274746160993980029419326329623837550250438775841587639259965831080443026671639183085412808081569941588275039088115998920619200985840426163177478452663859654647658980071923145539945657711810149701317258180867650049382720990506529091797583897106140258700163679499574787646815321202265416561877764278807378491342808129930666307649648321336000955624257967330797584466784559155436436503023282726460560367690578942714594170051843639221620991723167293072973051298281850375603367156070419704749378585611043005979546447095292629442466724504626971993589376190714730566076254901165057953097444138726499317874244268254559773008342977737992421503083650604863098590686876870531526247843196869978610105278635759873976599928726876944031797063801517536021567506382439571528617149186794494335344839658445000191727884622324171062448102254055056293472742880890619376904686880952572592620200732375132783737979185565351089007157499423903159887414851824579073763158370412088101368333054639723264876363127866986021990221049144155820056357630382023979906831737590180980482217258149387627735506151183720364064077386202182251332282291452468641036999981246662682280838924626264330286232424791947127232560310182849099665863666123381423740472904199273340192973078382976741210488227139204378589201506765063984963929299104129106199819168995358932178159737995038096189883218315620988323972251831041702943705720199011574157417188427168936482590621430050220897562565109306148713212739311929785353574239918284971430959709323194343703102439402102540948655926935770426797905614620943404904734074457530627012354052282498897739492042501787649363186424103226423667153941018094745551124455357821541115791300822248990208113911062953666561431526882292794354479809433735539798525212853060238192421387928199101206888410734893295647751455881823083071316498493862751296787692275004725328770680040465006153446384977978398146090258281050405890211130109925986443568876056195923103790581743699565716106018956471515882860517311824251767840537661372866889599923460833883111008436500281069012414299199368358559465408671715792449896135633036178052279556369724632790990250015362213219078568916436467803559275260440450971744698102819676390336155097180812366718898835907525020007926600568118672876904373340448132606919637019522813297376953216174462531600824298352716407593671189953228974022433409509885282342798165907278125227575696864241163548757309051846954289576135352791284351326680501253128679153219482707759488622502198469941913648528328742865827799608637205075600931183901061100511162931522312415536163553635531376529669675752515174195233723517681376097297454746249341906307548576244969389158796884241679284569784389783395190811846137085377737798542740768823336639282482118671995755173629216884085139347432455455655694578508656202731658312852115123258590014880729779209587303571230696544835777289643465395955042711863210835582633268378950253161416497296362878630702097515288326766723744077435447646990356545664765189898468289831813014339834765755133166892101477670272124392047634040873950671612141534723605449462511916994845839463117912685701264790833327001253575427038210026671027491782237762615147526077631692517413526816442244553025391570943751112834322641850921550643995374826014552097345145644583337763077454332383630191664251490047309915319816460252487646956662319787664616596317269849899626084355820452157256736735782996166645299384980331629219530503699487945603993348704421295730957693116829029307619806361357410591994642376532052826830055055287256853506522162938077183322795812456242160475465535368600500478207213375660068002556124556724330576065317480638178673813635513866338132406065239125294643560697711703803280916983865634146297679678687459847711335087540528823057888051437376411477329385631521145828803528576620784317568068240046550248337527313446340247252865326691005788543561250956830833513866031529077771748584577712455731352543267604295584657260774255846823465922730818832733905624795468046066508305885820764301163755734964484688449520163932743544566769583491791255768518870203925771378862713135954618016756529387701770678400133098999374063402769422728638188555986436406413877032869748947237505386571696645020132040688940779011381044388134388064637066405418946417607417762590315656085350966545300834180910197024239264817019108679052229793222304945248068438661844883426266361819296878183068784718587297484344648570307368373975521219729398131697630305309333814506597167484496019529286235456087930027563674499811475375680023910849293419671466488648138021399759401931498928607199043965534730524714929286845351326830588582989425329041343687547445473158244310440864332996368042614188472759090383026831674696680258160156149775563436397111085494459479676641518389781035442351595401336446980038896049434583549115425717007982662201319560792890815185392494974448018891891044654738043758810813100051336969341485451166335866778353864127878231522459685273822590363692803133934139785592752790499108841367055309151999762808268669940527916944263039781205597861082322342896308253389096419924368007811506832882030579316115677676096251740137294960924370878379057865294296072878763728085120046280470448627143872999195123016111290500964735475785458007837553787400823022208849438226445316737291157580558498537308451925201096767672417599328711415869655952206243070219443653235980668145431741495178020558792984243050723779893447605864544594731201553313041832517895076315821483931501148204918947886527363019897994202140191127876407496440683176627661453942584021471273244733420648343619738725794353350325263160740205695648096912594969588476439552711094580019258336256054358058913969004599874538224401374177571997606841559337628372771285957020851994477782031287965513947707199493320790313372095282875675636516638270972669093143586073489458777668233183890933941802320540225408099339379150315413040032731082482374776626212877042996798390764459932633990758561096293289559906369079434731026078686084755090847141789016472695156125113798626976734456362288940227782035648138926358044261638921425021494517711114762079041928807393297318607613084673675275254285184284320721484385120019182454332020407798318207380075908916966269621596318554854388072839841648639016709955591354194631970771577359386077214240043276378788725704431147133534811947919996028387186888347973956507473021425399316424816599684546024517300252702766640774126084435340873380764164374081666327993571848656613621981408206527838158523193328544084530355150948496359609532046633284264412788069614511000629177860682186041004535990224576026637927572616548188758183890943969048428832365566939629369836073857291044982179523129052919375988402654086058864327657953596593657143301360485913764340936144829904074476196425880530069655013988248316681225355569722724418950038460811185294206480058019253166984587682619001040804058333059947000137886322664330503444791098556883667529752917193881492965260979946480283996182715810276341092296975452737975854906594720904481632589965845445387186253488778385339779523293704000946027610256934779010074020957393770434592054138103658581232409705416116538245222377366467332907416281947931942294883719005925968592573658500693039414872041972093753102478979699657207828616935957201040933359783689521324275005449443963041420724896938575167719106608851758316668993927994137715734362484741156932445814222986752215772271140285024758217163045137328750426027112435724812076129411745197707590219270434511005682791817218645056261974647336462987639039142936662092881364061225512120854142034981903002579322532665059855276313649477083915766281597375611285373444857144373356381679714404054906430951682992074925227910163145683641634749293635993136616370679005098939462164863023471368608103094659901296060935693118272596513729178552985080066923879877939652463316699467327594230786605705393940706906751801939367267016073435606923340101487738071376490088427297841658335754003206163920202200567492103596415524462378096922403886855510301604560767605014321198154887494398609962286182166035078889561488013778552235748574663350491765669113745292743955709815285023562110946376530617077920453503357451995188399062936884245729686194583341069462384821286821148986779351895104545330761170292762030837136436373348005174313839667075332228888117858786081014862123759186281100047183546906660844342507763196136983898735235558885906722007338100897106535236970628553618376978221958749079890227300407830259845232896730737792625397971530400758981067460582658257049405707058686842503102791606744833265878377986781627660552578918857236544528836507578245346676624633203158065443388048461748442302745381939676617289100893066118630889275509135506236457498295352359365759873507177985813456521465708862526264711371422992581995633277500449187892899196563963291137940152533828218818312976453914605219472056268210987645723051313882918794682584986844403149093371263925597085918685172235729446861410318697674609474823233787424139344052318282878445043890071404477750688546761071531929139547159948326958443154677594557676615303992198852168089824576261627815867723147777546690729304805900689879619186743705679894525037719858482424311392597026679962106218554732056181901854012530512839575270795174572179429637773165170080772216470452299774881894327348677614547366489884756473880039848075143770485301811094957140339787799643216371934945005174325008866035307924191771121332693852174079874980040503385106739000716228913431515750934469846825074739773551530310231021117741801701043124978096555861701333852523300049521180962444691601021172389876769551593240080901062711323969395826655076541486172753723316099651435830496677919663175426930407102258002902826605197231423700247402235768507163668003371760756843221110232671908648573640588464214115901797326094918349119610247328315157707628247739534042876697120864380020308303042786361369323858152590846388962720093140031146091712095882997885027771397307791744012578927724906798542981181501954602264266008095860936587498679117349576858276093370481781277194850519363446845091852579193034607018526549374144585470464926794208334019160295624054280451570919149842843662126712866678937542564989624652010613504175560672514211821149786021965476236510097119145904181402189421009500707403842193088500045967040428357164041278887442985979207015048875631055019345290696856857350375082733072225761265881995989331414754861092402112029568980507840683845734131270196582616187663001338866949859290692085936800023113239897644553205668617376984625521441576771592805400759368750735787870420455182701164278316383299666304398612303392658119762352322401797842354007565856147278844889059504315301359312078152915283753717185867696356798211242205717397770261948747346050033765718014373071371320563105152255284986056433318067872065640382324640090878846200969573874373781918207613513002625203544471268026386451384816456496583049806574927939217708857121663758799315680056320417316408809485259170540193623022854226594473094753990004095603680205432456236676533363913592950988549047870023504107699673686027757044823873167289587358204604272290438061881758708310503894016423743386295702311528388416630813709924653463689999549162212190722766305744514207332119276269832190035234477007961667516159299212873379604813078893896480290966317090331487313163690252374210656787321317351937010657708888964541579588954509835694168457822473869915770066216969869159464940846107992440125417021945224987263044480867048030635190798066862639587633878610854932299768561943075618490058447094356654677603722231013001987104244705926212600809820301248012718011559755930137455805720441756544951471293762425795949851378973656466200594216881114731579827546621894436759196428410436355534779350235051181004866361211006616081167597842384103890552317502345605642600767026565205548398470284844316664570528663438292827496053408840139790217390435022651658864000218191598025775728090786000139001651103085159920963613497261806996382105729056136548759880200969454989938023757666116154953261116042160050427301160298660920763539867986470346934127280238297287196152351683781680599078236012559972087839222827525906424162339674221091992172883910353884226781211016578055438566574678986691982792972509121887602885934986830863439756297119536249370847856789006743589224992441195146868369443766921077026078993240565039668722842755472902341861400503252440040720089748315541060513119123167994471424792310018255075580972175372469130344615935197982416494711058622937025290820996801177920519640060934350512947589418520156514190108565063583739894598402271712937252066928949176881204270664089638104336388996838158389582010322486216785295597540066717237035448598621819033393507986326509448917540051656815298566235553095923450832222812479378443083720403091533835937295673841725127798025779020345929709987056316257110755741563777333058921184490309986701036984100874420973412659319190747539321821944891893195923421560525913291260830455327014595671818262683587346979260693722140055420246987231991107808051602232300902235234618112073609727398617029566065409867334552562450268911367667621536673663977001036963370599392312575235292376617788254538499716312155863581814059055989526214566410443280404348281672667935639961572191208890331005601678974685486477577906530886065522688258150431659597930037353479292631947275272449406645160355671851306807453126902774833579536481433887580893029567443123264044251108445484629362219540880584818754178326360949119063939868140773552275599646474426183571274810139985643269941073052769749287551475371759783987921489989678049980677887867122246398883467174123053191633443760681791252778368348152286446279663099457951436185499311994211666578571337414239589551923641545084034818339757622336034993791594730317911306372829824313905017371728957355370059037206314627870436775260322323953256115133333622270506075214842591229139193390844223018744349629596816934762921207513598346423216071162860306280022338441810675797697662024449130851400410450862914208784080500247723931882712932749436597877669202507049126136509148158439497811744320779556190893323634780257596382597788025692637295539896470297979568047832252844663920623864052211968321464925988251552167917380795599815442450718243927384563548622187003725793788212847527973191561391984845723312953100382369259998015274908152744345814304101184102401953917154017991890356878479894765934074674784796335076164554461047495926292770704590144675310210689884999938431974909165208554556060115224629363399189237976634216975546848493696414300222503400195050809572575606909418030681611070037160193325474620336833715760428828803398741447249884305117794877959768929115205277851862841017385583271220473535491778092474930686849653309842310091106134700622692557624795882335970294951473421733285737088090741821975148584694767496046011294906785591889097913134574380658913308839960909692648883275980138966064688676238533651589869028261597201179892645784254357489257097654924199404067459545401945998435046553938390104333705395194439605401450556441683735524760108635485008653683831960937677526173987449855912427728990463700249085761840332165360155778799259671526787584266801717066330034423791992449335894322216081235888722483257009496585114409258924618731902740054929697350450701023502614475989472165914183831470780365854938337496344702590219711811310819593211976432196437456190164701321146983600301806769270896783611062200995316095975118563718971257962306895133272218919861027976272156173978449898818623583744591351731717995403477608207344239098657031455098887813079465791460511593986272820710311768736320020626052974019692651412987459068602655855020745673057436197714675406971455258086454376927813677369095312261326116457101219223703699318428010998446894480513007479624034504652182757216796159180619452722015336032364585787140647329425718343916671845445421701773678303533336220678516011447070070378798584193553028994298703621663401885889640382068445153359744634993213057656069007374529942842504026965271436539896473387900082979300390584276310514507209139971033009178968284962631199349166516992738817187856318888024565986864363675967011551641052966176182360619426332076043443766410915640145595249918362231406312116904219747754046751028031784895904014218436406948792845395137410570285979385999977556223643985868428015225514784141360638395501481025566803919891877559094937906986336353104416313790674189398654194534063010178038682735411091179950849975555285213384694604358563298933094886979258145329832058267001628162181147561830801846111011104766844012064189605523284436899117896477066799788574606201195323075898771394917626306203767433624324471725781277156501353016725834853006417708588130805279860373149962363202169898784009985069182505057989487570025768397642651769571011202015281034014750482727936736548967810600982760615409613997653675022445149482206178228424239189354080088300869603676072548046292384340812129034820751101829156726550791102294241330410810485723208916299239870893079088166966710882972108378153759520253754010107129884992038216750914186134071659854024314733294540951431723545947625522360584637599714649828788153964307969810606866777339556365561889675659325822930358519582877875199921026072828744301842300312515606034043487168929418618595462226029460050362782787653616435363218063378289418832057605783556522335398060019007374711361909249676244375580546425206757059861724504407458177889293992270293464531951723569095361591412571775514255727850452315522181680109700310168471133574974300849766010846339432271712254117205402626285797671595660763975952428534819950659132751343438506524929746710765454642934312651628013510529849555683864244501408996292683094802081928502855647660052546108301542338546839022354113304212040665253060219042383120180054585301166986999013067694561765960974812766388233124078990660935934785037544395102679695369307720581807477576752036565343261183709407367375116028533256087842107115076965031910262884793441991063147800988869733826199305689685578522049777558717870350976504808603403185986245517543391021605195081236751683423117899655875673799522832927670007202455406844902303273256320048365157967258530393526044356335103687058190589601676893023871159846850860882048173161030049150264562048253379578578551592980924478052869829232794206658350882472396086927372610199258925396953615526000253113872353662138703238313480482369062790503004341049686651170078359408445771626607838706732493972150501925218429823137674887555005117089808274036957252690927670619108574089580739787668224243572309848245577310480096370439699782096512869223172904723064495100955267525809817169938683849773423791042964454523937231696125567886899479899317102635141558237949480780279505944842262016057457568270337943187599160699975570767888465765269949664112028235270311233241032992381314974808204441626445797274954657964845111896008893772580240489564764425354542937939348338868452983722399696914815897696107173832174001553252499597792688458439759123380615691645808759486498022514960712203893970190559729679107401157236755105388704987812001054442556342760526052727605594565777509690986528074772207056860327151593386821469696461649399338530499492819678839589120254207048132475877766759838443001956301313175175580982293091917339393272991307042894715636388997382727866096678027905879879937238047936778373650001474089836767708053614728101356357585416675783504837620358564761057810919450992794560997986843976045846307635880946928340350612777964743600662403061586363497380045746226776577738573445115537484437347673515884889052663761117994081045821825042721193503350784901907919303469647599765857276623658886009172554428269889540570887716119447103674249341440011942842861409661094905559604772182321408370588810955733126445739376883401576855666738383034058004426118256847350510124944747753334484759661073590361536123569810319518829699655450870835818924394005807801020470133712381030810141474874003425506669399469499974685217099834451240244686046578218970816504356509375038235159351870602131025974625034068750039311050948763573333520241207955624639426535528605098212084010687153161080589797876180236906444068798192282509825545063526257634210055574955872019344158740084897358121276530665457610941321837596923256771141426409096187881649954043762231039383977053248839792102322626299827741751073416222437577992233065928806219963017043202884276546807984633929720271767941060844654236745387635174536609614176046947869257339521051148482813868316134656197903547007412614566789309335060006854302990009234099025201165970921072469137212066333713758611153608706192726295954529650769904714395967524552152075401582479507243677484409673255289082911997121734551859087593352695270588650152915055669391695139584846906956182942797797331756327696687102166946046019214523963893071989999711454297778963743406732292238729998648338582007340976197117646707975907536782573700067623268938810506278142439336094068546524158029928996247920219515267836078659556666644779881213181239911580176640297494475298686523373837347081102193792089288645109223986101880069570314165838564937512045070749748966936926478977252634723572469515879331366481380670591340432381466247036461483160744896335008983759150119072132109528371288350166986707582676284198229451385120610650048106963986054417874461338939291848516412179628948754322846495655501763839707574099802083853004377960407896325520157816225757522859494297470853353868138976585827414589186036832661749643163529045437236977413794553947840188096879338976342773302810709189185730975191978488768878047440980525374420590665314276022193460843705175142390413258378818555891094730175572010222476827935650763266067235457185668166578391300899701149585204636490381012009803813546778438195865609354952907595662137908239918212793466822453829304731301141507780739405301061031358136774183097171278366615062247863679627903721184570567696300076622462439647630928052405097260118989376753160016036014832621726648118195410375568178699265051485979722705408284101360396446884090514234616753381742217719281169775010918225593012653433468199807178203964216926674828254745315542307269139337996789992364285094886068821680927565534609488831121899564870205086956984546706214612078478859681735987136609271918103744204798194456194966615833511891638269253475269835305157232516344434254206944576465140479090466033757714991519977275440954032453726607558247763943641754793271839528134945378520186716260509344413973224749197988657386492576184093475481436198734872720923997281332999731918687914388492141268738935083359047392892619319653888696634567860714037185506724316181591165686961176486791101800499952876818114931025520252228839911473302235754715433361108742515043145555593019271316981258691160947812562322541508626556135522257575185143064398872155850523756537622451893103778435475214867415437252657414349293320087494575368005427935188335392130693356133376825709387498195915796673035859049400860765447062419532236711225330429006437071696489323706014920256653828946698553808748397325220368879435988760271226395999331953600525956616881230672306944173634246482278206024694061309943988703393251041460214610690120454721333516128333757277559641951365321831176467584094933857582644185313491400642336290217509050792526621554232128486275071696241046903892962563171833335421487678557858571977505465660100097232610223272509263967292118913359846259745180221379881360243579614162085846488009460688033899572488573982038529545937745126106477941977643727599964609592414881848906377223704595230596348990982653967525792243294508312927189013415753622923612913747052533298502947563678085892731318650877824406678609847544929241677693976020207650255526767357703356906903918774636650667143566752871892447602044906264979540730676420151584702444877119349975713915843792643707818974446629713383943495212129599107401865531526025945962642787217730346467839577908704185122388164934281864464993155155553993219430834406739245617971902040104728017367662175222900046539660622939716040542957816729863645726089433835563101390222596621972114721095490471609693525513141219992688335679939349752702220211273805630363822519364099892783019390601233252265923892647181279932863058356601159815067612737265166788587344290721592840140466816026342574920895408294492735865761299261906839928617357908684192954272911457544681255273833131829894493719423320516204898041810883628248216437023013670818204764674800269152069790847356535462578765101116864557496214096981428280806236267753691729789783702005479465184194639270519241548589737628348882316604063422195181579920541327468639875898926038822636909042917806367540597059470109600324738391361433133672881313871298714859840499717590023673882903018477807232571531699342737337589010507584194862026769668425632493893433087552538025883997550160932930121801798840249101411843278595577214779587765488283682675869367140914153070398180291194349926498202968612982132461451426483323564924696698533696132233894585961023992176494753936262566683088205224812583652884911480061934266964653730215392987365348170845630012472502224494045508857119991474608120607785709324194308452451962277885382854625307130213290520406956210625814906105709001520304232606493685983862867135232528632519060845697795403552013307152764852190408611978148851473621102785784925513992771952889748834612938442762259046758916760289926121720148467354234274129144555005254559229296621963892177594313091583520906194822870065398941531091785343068163613222445285024619673503568813610315050968712466697126668246353375750929735284941667900376077053312284422462138064204427619448933298721466616661913922429677342292857621416415326193458599105450021397555914262606313975805429309080674248187189606912455602687889531303003390299157924540742348626826717611521953322602624474352253958316843579480893652608328430936973973935633541072506773729248506080448350477581908275194203624355081477731290879196141118674620263481384784440124620825279043993738164821244139031843372838094653854416260253251100182451444885892207609184157531900887654642358937715389761551833953823958110456801040229787577768519180891979127324146856582863365879821275804723077994240022572143893765007368512784023380430906611815703265258030662892690812541889801535593954147052427889489496741892400928930593406525767177857470746789998031071299746449514003446695636643806595444461823002920179705982464867804055233306484622871539610197489683535338283234034384770101765751193147739788295256561434907817811897143959725565431874004615082419994046245507518206316092081763765187231428790237645819656375353955135503237594838007484138590739851758915002776926180010400007540473381156921949492586648448898510901983407035143979333607720377430707802891648898409822519783840850761732901246731726459964916824511285277195847566056212232323634733641144380069647474607863302559864360102366471658314035329397010722752647554795536293912987565702878599963024734756835447302862263064216196311557306049161728026735645380094980289789476546894445628070237889581939308747752691115905102962804568251381578279419568272833675085442708728040413690291885209571368908042120327415592698197501169233554445343466567267413136293010768644030563717964068687278983744384144334209180543595365529185006568610525400811859257607407857454513227244789567531241477784747784448129912932394109811223190840631222915358301090060301240464595114176724425204700608751253380044937336468262216016735082852047207592935304574282909106127182241563746279872720128463886825562634816668578429454125745724123396842245362807586579721561261412764277131188260973020113762217654796349387759820401805388335773095497181647813816656082059120071174006994334527713981784899702074834881909817508373084127070001021931193058019597306409626358194430423086979098255808341054196399622807410040588381230934770588821028574648414746776467558697972236762238225273438249712003729668890368765260879086753597257052266289568888052577221856635861628488581418051871093209286541001656660121388946211780884527114533408328711915110019879112751332984979220355858436052261515880113138066736699550575073836906468742223070073819737705590674707054951440180760893802997228007957635717219340457632608374034444018701424505131968161863571338103906625378175924589159602535765876271978379012611598521955806337331314966573407099554352949409615275104058102039961656395351610441751115109330523082633860252435358916227048235688521933830862015726110308381700565205783252642811763971077051484132170550105346087564660340818502876483997218913757486124135312528599137506242427952269760469439972398254972993535366467145068627916978372717852227736184376640116623092769095263152746013876373308820871460214395598979643156456789290949986287481059600073789414296959581962599097187643552325834531783690233460523352112164470324435830401132779194432418585168895857796523218863701599835198784803016376073817147985431892974875480698866704122318063092019344468670796020897775433398762378991492652113326813539610637440932673767936668360211655002205433455069713903227854141174800466472496416332983422725031590926102620618036519543977860622239308169011441583460601062503412522456087838864145469761117276552192028115927856159684074548397677684289762814131877446737513166457393299027329839534798277706979611524881379654054705177320410105062446111624746344005197985264743821551505859040479892883006397132211142971009936853436749609782956476631837620996888307806138993597885757839503650205123406681611798962654921981683301390454483107403711274617377544489807460851285599612357310651171552493847441192054801820924652794663280079205935134300694574967225690366783078378804531927008495009979120365774538395378548090465223405162602295512602145119457662560197142854309533249213834635473995201385474692463058192062522094531328224503496382390821283283551239609939384223794390329784710117527636399958698267518872516089786377761778432757415417391477802154809289971849351776466373238891938588890991255181498638225345727741449638682774609205022099672908906734798387090655373604191511435226190946402005986681840322123262903191416464469849645741694010958068316130639177298552841470062810824554203325417516790182086613058728808551826541260979900035906589740102219802163820924627635100034160450767723639298636120361076220785111595677791148176611540857453165425610221758867546609783195824409369300090649198413624196911376499658939792028840695807156686017743575068003190525982979323116162907997821307794999398153955417232746646516756944438572031146278689275225165829957174410943436494011424683946724192798919187075926964796895097162067336400260500202441215883283861248016391802503162932448759582616201366728275750554317982495526147786492386907757547806030149371513413679118159874060857542089894013621547818564848451062366425402911958009424187635433198532422921715406317894663587777859055572090001981226596429000471425779756597243086272709912449299243076561870242502458062979372656223468302773422936132436358921969149483201011021724918586629886938602118200392385116990374886578994364961679825600582171697801161178421840323403785456570193166521378112267822035164695274573233790426590117579169955262706148993201106468210012995179702362274119981158937509093483667443795198940659768778421230331935654301635257508613451569767641730326091713077968076816083496759796039062255826069707413201246362018727018584197820729020227333266846696218728938620528800944519911274669515771916057551451090188469775540507217607360149007378218319719953711882131013653307649865554669470398484919092203441021486619716066454978998260962178305221776312776693710801211609624576978040049762202229420001681506758856110002895105041957014405838123063882022400222171912746111684120771405950271573276751803887006842751373986989709310905997614174713565133101602822319892738665437415057679102657435936374789617503960438970385252291667856662709597316898740218228871491498999249333522044402519733773721662496411490241920488850027974670803639703248101005420704122310760663046709089782039700775073008643672875217845514540777535604775312738122183543707567392120190279745330348681905743402738859204909561487255128038271369756013994036150228453037269842755272790498530471688834277215351796762958757475451143478689529134439774044283493996949757165070024833394592598376596014185141175074151930005156224588106581626352077755644671403316573681710384481378862746350509446705059213964981334562626263796649686454535445089382764254514209553157987639212667020343183539583564667336300566382996662424116380742740503470257400353869587921362683377044223843270099310465535970566206212916970015813040840164054962560301861915389981595860062707833378787983895749664712403065177756054591483675486399777310824450934336295765052945188835481598387917367581575412738801907067898859466583149872625828233997463821222063525492918419072066965977132998750297160340383851848294431338096323001873888397912172506906356832319586462178472974993313667096382509258120737829523243538451788686889541505905035790936782249730157823851563973561403984129572031869469336135282564694039392050480783009617931666022901134995623439138550904352471312098925129215623220743885842996534117201123392767554970953827903034775826603926721259424305508517842091885619192286624163718092219117325598960688000800006326930870222621277784758404589903255305792999564040818581982405478971334463148674493115981239261160717727503715946196913258606989234716677624644507385350070533601161994291674677505283286347312567800650318790123304035442416364650949025938022536673205568989794698568188471958319512137918044788582088818911616416771822069739356118325408122971635378868502709358508639459998850376290389278856000322927130091139966502695575064433378360742665332784035286883720738261097345009549282792272806149646138305858334157220074768039446086456460731750578252417271255662728384851485117308019966395039962167589730372617641706272058036658826599494938676761722743877517685379828928317543504182432060742219027873475776443581807055626499451173582664914887349584788077428271102201099152037655226493922248665536557340777946621582973801389236068119103563370129210068098786890421533088417154337475984059965983482406752918925730102310438174743700406185500358229821456313681310918008679452272598291077241947860147303660698331407751832730117662381730508652820780556932613726924778991059291641020530314345056138688155532617524358921028979112566270190891444723973960470929162251092061694237700160148213478344837365596912935011372065075727152630296951586550560714229620938197874170214625794237904949171202166064554500350676524635358384216938766589188471793491393421230763419506662903558023521771166409315319951740493382266194885566609039441529246356777682052344562637534708407890053804224883900492038697099702348411196541124008956667088607911818172533875190816891274991242081089914616601549751756901547473113640702782929896559868162106933612086803878464399782988176552996699841661078485466851596587561813925290748722921918247528278299690499761551403245118942068074681131799006089696899206779084232676513242255056163902662018514160623973543915467728874049618082875119016305021320929405851661161008097467645833286944921132382746633553378279190552392107564913544563316012589699022084311756874834382065857835520116918901812867683103331470020258582704003932127277811389587684139910549138672862807566413824299256734453171672480695916559174494953054619102537619149891055872632320794549976006936528358823153585602372926991178946830539634867109478922682935366145984114463214091120287020091906099851261168122053881843327148230972096535454999466260080100520172964907376826950659397820332913951486209281360154641173109378574732129809383318165320400550345201841795051028488238291296515420533173485706637863588446872552877711993450576345706107549269856017084186997110460517908033256628046473580363355938997488151335282163379972151782131666720568947491536513936019615328342167205319812606576474736223157909237322210798596294575022071134864997426470950429536772063520107979419898083178928234869157150103205244359668462126558167344101859513713761119799750937104795186867602755047499545331431517339500271399852498386831919572715156611401725438431982670281984330961156622044519777765134097094542804534087703997795372199346106534079016423845323737200541713243217128208804549675806630956719034822160924615744194336807782822641498108464620740977374306097574967646367193794107652951848962739863621398897943144776765038028324628376250282005344680533328846261949717184133997397348365294364485736991817924459206618176637787177577800782571464299999672909609116147716208079286057949400202080074379568870188829133862187243964461609966857684119407954600644077547676587130523755811004635686925035529862170940278128202916867519829097501534277942442396487010285767675999827120595958623531411148412233779507048631654860597944424591278779596879094361072931997985383032413196283130405341462268509611951580561083179835459727630934840541969300118781633814334500856208387244192347668919923722165435640240948874721880267153859224702460372313860868686137054097211644548982701581636123135923649169988163599478760620793731622887404712900732199277760778993030779196917130356580257213419546184629944121078295903855623775956068478918572667879084465278412210523604081222373143038453474973595125397648555859183596693221649011735119970193976873438020599549455026199096867092040049485718635554218637979823729397266689365936396006435073470299544408894387491756332080907429075234222198498437901819119115418357506764420846946520334807154839397302490577265973008864083810614967418815482585716544594895110804091108958381262901448615828915798462849546516051557365709884532283589970042152046097137107301902889561054478649446421797239377665470681801496849150711103664126008461892167618399530109809928653208393173840357207146687106330136107075500205648074493458845848076490839864926501031012806762280416488823381524285623528701786098339621243039584464646042429127008935482300694564868925813066454476004506886326329403606185509648598460206792636806853821072970862489256715655352878052312809552902663479921308778566869541330548374767439031291844211907307080502082043559866191964927838723969823341099640258045384479915396714828633617870833276864430552204449140736848670919074505892022046440952983456195356072086187821714908652702395677844123585076657960058567490315337123049507583156983298095203999822209320306248353847529227815422754504681163608458991950983691354071384743806864961929063321320151869582658352456261009030687399190422303223973167923740593267395257374225803079671413543131215980999167158925423379912816870851437611420217602601637221179249973155751627057564498370341678535236714521804834430147982618449614049432967212698743912556161010628384219831089086041325436057032290738369357303632596711768017544975586214626732494853429186387918554754352569719491875262691617955694506058752869902889702397188783834444658127762323938963479163479544010829266796908610676631041394360551982797731997688358672270718365143259283059967527380294333422420850227339806062670840512364937126026489232421999744814638478966811602241756889081611912580841223701405619595306506885097855748065236017170165817211903269859481987289237566334388977154694903549467435253615532211437528565241483738090222626440316394263604731602794495722475399832826971922050683938576219932772197749004997729883869701641594313983792727201497277042003578615550251474893837769606027261040587526771052477087621004345845113029623484675089191416024900170105876261971143813046008424224752203550196843630074115727266134650619244380458498953697975059001663867478944605307772529705795583622258298414485594624500274659547657900154022565851811953540434451402923376115451683745841702141808598536080286750593739306381308071657371061917307855731553915617765597699827428017185267997870140980952218442431995528411291794371870098671271343632513092178479921609858807925999620917916040878693871226040752244331284829288897430901405225185678140113603362639700024228171365009062318210868630563109900394763032087435295436893176178061757991826364205298058678428476821228566801339537308323695993362662733510561690100443079752181220186802867804168173680637863613380820982045698354698551883490773688136769025655147811141718867558105619374090457160190735146252772867125485251206718444849951729434467029741715469005984374470077494715905394740390643001536182597208432674883356645333471611012786638012296461178253820118269326330266182170545104035712326730231352597896701498193431380453167788112803003675218328287881848711751712521553359782502219728463338108766189843606333370901824989345743296750468943304311122008099775280345442300926121851771468964108404533424186858877935621059584264754876433078180565591141487790128281918494748484759297229909769388656057469571665052373341148869361509371559998649414880713175880836429161690026478410829674634742707111932245879776530178568175140269628679645624229016349065351774025405736880182680735777693610765909109000695841344747589693131168992536567291561459009395946196585459363301503030218464321721511522237349051069389739316734291008584323025209872158492462365716146714196980403508999441522009516953064834483785971668037493261208790957614443681852412661160979374331557950100080244482885474679063238308196079842712495841597373690159488106215708325474065935505923203084097984579199471295199708585526396259744995171371471538890714665758672226882312446943973085980569317270696619018519419227944767631143905406471512486755381317329252872558418120678768547326772815836086042897706625561871404459658612677491473161404312496016654607035454747141075967278515074244554536133049737616216483235522196581855064062942689416068163426196221662452153300212156531209990170276666983417980619393922135328222106904612880649759316622413788780705941882222138172514093465496202591832315553002628339203940172536522453303782323004354637495006538036680554520910891656821991414604384707683199682765103664849181032572350704886537856414680798993118191223038685222532565001902224956637609428682115758065454146729130947077702746240801214297491603416097265325969585147365298165075631381148309397404634891436946852073778057619218991455465124134779476977266652052143586772201464124218879202911102908480637084076197267648670806887796288095890305335402626260823190430267661129240753577229934480696050507921731172664866312819775769894172490676770640690538668774108873389098076267901697670085914334317275321085004667041953831460604790735239559489479696329614584638568620162089400690375448049540610171861489868616773491802214927660434117044422916740178164869338689802446856687044389854880933858643584584319960448627141152292855492326127488370917700296611368104572873872278323605529963582595737568413174429609265809408404668777674413187861438183817551752771999678590333009368850911975637413284042463687491505028190734306003679206394198626117210000726528579569093167752241820502488717355060150904471131608896757936039832614260163923280471713604415661668932591744695250628043302466613755891819452692230473610378477811861444538311870093004663464252537851408534100632778863231796525960598666997253398706744761741495813355953604230607009043155691345491032261992423358092286051435750227119950153916281894498400581409155950655857201420791532711264052996061211412291663527427907782999166292193800412138221046090726691177264397322336087419478034610957857424671795490323661211802020964760793384996988020058019903967733903467447116557264670413112643094670330893032529371807504772396380538876039206351508502466638442596490830737308448242322500339905779304795864903190995472558715298821814855155021920257744529075558951170627130562397720824031311805039040223688705361170681082708539703948129471471011667949474178757579869135642762068176333702868382363898849957271408349452723583580949320771967906621340401162994202701017098483864875344577790077551149198094629476255702477016693149728984663807411047887842617316831564674670635072948925143810058515207979730622883996831470167798567154215832549850035160582689286330982665394417358737503865787869049130405346837091798530685225814393063406434548685708918295571481960117426896202143899285309714792495474079196002363898879478419678458095397956080318981223519636675737524381322830449324024324683147507115418754394150570085694346595711436732928858354839794002045830842543015021293374914710126466775388078706708178075871227752146362208057353490475475750260084024220191236905646825887495816363371576533540752798607383392820663618310234993640382009042546262994017741334737388821981333480457473422866194330280303314459071034139653375409320512085679559711105485259902705885167818313658639232158626913127116834847307133291916622249959434058989620678399039510401664130235397331927331646067843745027783896164106965214750411438207698565246849868876119930998610760016851781301666017505456244027220159522185377454827065001563537005898215526172129893510110927245719574869599036789919472052759021580774430132911722039326059364627457241781295125131886343002530012972839810759383621454073398442950575894861175164265524394475748856241917219147999936548272583789931657835388319508891381641213814217124992684565371458059513343431822794600944512694675374546948377759225323534185237687027903520435844702151133603066638855102399478124717315969390372739421503947569282227128284604059365043467807674521034855006155339326064211030535615402394374223739311595948634576865742444830070548812461951738353100052457751433584746160610456137079130637398640206523947189355246694746332421802805636272541191913884616416260501899758394300359593868571633431449070696892400131670225930979199883205701534468014590797412366208347545975810582492723456368104419731003157280192953750767260544812133321522589379859304321998392939987652887842251370708559827030430992500162731018174989201967943768050747659018769984977528228643940245174935594724191676630255391866073691386820186576184276625683247176328241325065992309815924625739939538060872940465880261889305727421977134248266634847601653092607698552004712438992590156144123573216680320881691536530521198771370541013386878027734278598888257088870598114761066312465700925179942271410724279119822751196953008886722596053087322086348463392828225473224008050505518827372056669209954431682123499431372509682202060612243143178764078400698853008804691796709716488725326950368390823725373324262666004744504541986562954277627764686052331722091744434647784463092543636409690325405306202766722407492780066708855082947601204328202249918950352750234248541569189140994916739550810077467218825150696523445826598593258168201035431864846209578470381618757758398171659004163821163488034355815112436916466694629404533438895444241243723567385412294891597167888539023576819773091533345829889972249163458718554208830582708078259941767544843512921680279134240808176153982317363598867906930957576349967980022936406391563304503712889673601918716175086322362042281930092261556381532807324963918512953323168973679681217462510332544797053406312207713613557641948841073185900139119258105187825922011944715601292310499977155180169330919761100892249797853012606402979399546323243733236118539385207071084491025647458689941322218885537777790500551634522860479093222032669720767231380094726675273761533529936226377771545062195361737537466549453380917732516582793789238993707688507192934133579544977894897160251702457306541463421461395730558455007884047998945826126098303086589929796800128027734359981869864363938106617987836282839773542527907254939437895964411431385553616740124809549874142669564164965334691990087245557912609094800545423902869972335546745232659421645582290759635700846638894976423198053369943825903157083371743890506245023534449032591319783963952326298496213172668599388542895604656938656650679562810142520180859137292994395339156345362992901295273130389372577845207012238755595009358376366644159719066584091012627925826101933259486997074340405825184142334138853595084923639063645410280665845949832299611007816878050437969001921061756653787691685314227800297397001285869375126173157300754411060123815646091554676321025409300296139795440433361586626831190423185539921474460492579261909337729152274283621332312192110490927842365231228480274867001289249590731948129118546122349491751786175502337726643647073976459251237555270295340112835909432844697435583992464828265883668717374131340858920333898250243770266229228562551587980814356423452987519550083760135285410398051226735680478709894477713644689443241115326180534403429497544519017571330992830845833012253281064074168956710166091179553759703317039818968913469218224605025114938502653267291246255208689800254378089806476042662664654461097303503979737683175114250456204510015128244111569307475644568009172474893757586088338325850803767237924482247258912809302749919140096424333729016370855553961799459592144567650656560382365150388479958027834262197238384038881146345387399232060881705258918966728468692312859548279078824941297455740653797071154045857025296866276319358620185002026897560029719682247323450296111775523850611940613533173029646616144644242011685679246662790953768030998208117801626264518338568741723365809744333227101086163370209958769728493124893986081625738727783116484999548116082922277083945784099065909901702115209293700713333260879723447728977970075179753825058546940470113490000161619929025840560613108900638846768675578114403701183148916111704987378372703226603650539693225722871123926523537143373356561637650867871808268714722925245061774071239659853281136629472540484257587670263981943638940140227321265505340407904842609356153293248557696280482404887534507617680403141508425285646281072047351050012155628155821830631529579884098996341145831216908079826743776056470086168431145944770480328816713375900474378761525330418423038069055874146190125961609424075347774766015526525119833292148738984263511405617625320919537644084929122454745484936411121073714058140762797394453883949252930663362610690749500357017317459107743514387843326606412680161231866864196944553568724825423963227190000814622364560755461336540425707524102426091162056773646674465918012869033527686004936906025514080720824443850201936903735840685781591896263853709119569507303460586624061910828641085072269499265134386428771940150419947410049631719113604345270572912440259824215594774605172064844119320032488556925815516957632159513441123400157001423503759004338343587948784555995102381280176196568203794405735078857625691962053812949006481970208312230778425009926176607520267328878676973269726869793895137620188969498636946640565900088347175380659440719437277278583162093296547529272649373513458639182878010708873228901626248720589957041897896009813004980449798867442381771173076629091941015658040089672482148570645806106935377102480708617221703013258685255554391262953010749871128510802162389899199587617470465770459365316512537912288982572648544735815205052786064445520283162657997555159255875253256306036136650342759879469755520376804765853883968325238652727538092050525964019411792441352133797816767843688001124803854025339675526172977815167699081587962602030741735526048653998568191654695699703543960449106240161856175443669541890015153561775400121300783703265746914358205870210717907575860344082524811084687352652999885226277933973261088923692431867593565505372380540092448460176872293066382059893481100324945258863881147664448268047892829818172597703744874526795295394693479856031351793764023051597310937609186011191297354014496409144522492694243670155536690409978139839760669608824369061808814164133844827872309068532536050229407955485393865322984776951528677408861671931162767602967559660820073569942660363951172342495534112559827590680722196098068935115483492345851779152483627138945009178844083568077972454734829833041774936261653596389194073655167586665457316825421429958861392883700326203109814385499013228610103206225621865149046199298256994665611649423550432351856673067185315499052415707759835240483675773432424295412066885918254568176053368759463748839162611482067438630902262408987525620284573799482995475864020628891447313015702957192617954916564173924109511170668106125539188856875083710054979903275510476201234494183101572891713060444795008557812721802672653051170171141024161000277905725846804835380885656543948958420746445665681622090628003974597861278992071015327901259656297897010754854666279612027414568944792797572726004915593892857899044559519498695705642444632380019070416326994182563899255817179216597613611335888430985621957355013319689244617756470111738305391217447831162091620633169810822118677822195071514027399284334602946760433944259205622644664072927565988994127439097443393740595121747177344221188006292328950449777092512985947242712189562400556906750527704933936039452775791748169635270499188431312051145700285677492092056396664169122481329605738430963842187608825074853256270892186703438684443465376470084414240354309095768225990131243920116246640287822500050694464406933073955962570771600047246379452624626759133577757294994524726354720416826984480241962964254319998836632296774417619066752759982978882895174844236356621348389668206525241169634769712885590767231757168841287552715303257669378584661109858108982172945240802318980859484493040621221404999737501228936532338608332247291606094368014861342651564887833441355380087780593376265369499444044900135943947170210408229533421625870218456879714510724778788168589418163491229199761430817602644907628836426396585726494819752677846912165106377175513013484536368221452815021116270877981127327335568484835525248126648970782206606398090878519405495471697731577091358484283761971595006300685222198092066304583607135295877748882346538185733215694933217357235475729380428801748254285613174654008222759583058274163538665152992462658792086221804822555855975074977654384473003135348824012794044233182925307990256163893350258624965182269866614391360067387355086475598344664736885999177305983094832171106643228254761999111958805063613675632559218008710208865448851395296855370692535140338518703963785166043042419912652769727288923906781231013378031885231061497184600460661180786589653788830829699210197218034074820969725392372444990867355917798262624341719843199033438929077199805283301190827975371506971416411281938249779235087470018479610032829271634693917837676346831768261540105455570258218060086067290137621271656110473222001396635144487816895180179794703283511398659530774681184010889908572041846532541969415673738269907203604967428210245331498037855469991180216409778208788800474008314037745575930831109666181266551682365453541102543784407457050188428993023468251848167874802279133791831098839000693971840036124097219749004236958079182449623979842585324643962736109241985202935309332340311214746385918903819942930645112795779500570581083759991946061665209023755565872591677960495498891240041529410636336386461935686253294336442957461329179392703843933367239566218808645245181665332062709873839647925895189306300188717201840469419805064886094667180238556013833264849391138900070313791881694054160684321250264257000576049761362685108983634942157209892151787602543644307533538732432508720456952175599880472514983766797242883926695147631449359448251781702810393831427859748589901597729636877030510570215865341088926760711577361106909260534826589374415827896833389702719017521531511917629398959104886209543452543394993103518226215414873991422217467130682861755433610876527488911487103064815842756884785994941144654898725614792971010337909543958206008519045761553770974721650779675413204263674101385597069911980655228091554161511352202194216933309192571063280724946528734482124051457128401800581131240556858813269399167117153360591215116949897531135045785306308657283622640599982439892996849944637046210433211219648736844281418632655391596830788676675291814264311790376435454285160775099943749412349393432543032141700999970119877191038542919824213971048720078028145437672955758107305817280505387328280302828086637766885630416377844250977039980182656780207514868441157095363645356012672992663078212380657930409047976383629173135218006443677866345204615581435462340025769482188837556537617894489505840100820859023268751843810836068367360234661668672432941289887297629786966249403818327040067648699772513951899277079784861474446679046293785562709710651506066663941324698677143760982226201567292011027996324707134050971852333942822172555615776831907196415106366301394402947760179483540181956809236623367067363952082363204392144487851776932468367349111244212767904591715193714347020440724612599433260318935075265273900059434363021073733737144706883966556146303466014101480435824339841484422674511943007901816109820569695131828420063600936118393593526808521270527997845393383263495274513709984581788108521056217557468178799402324590311452021496363540410553149326356903766980838090728638185587167874598436007213621159652788712828130406402737822804692608209192277028384130412603433684305008079459425002158179741014882470802040172223619591103945132293255106118002068329540591708519118308956470829645696983792158695816024643759071979966393254311406033021065315583152113430786607289908712408968203465837758805070015140534343844732929204715843772249245779650661288596373770195480485723735333766936338549167539106603590165138559816995102802945112219931656812253624620314835718011880252958116955407100282004540471087947854771670988937053141071095493165695933760877454467411720441834032418582097884767970289503206621505251588848309052508839464130863256725305682585926404488722311731421151328651591152608403119982398322259981062468996371129013799679075660954501118349470144460686642380221535884722738990410232764784204929458482061304133151252427753406037035674377795201317768481850143577324258135913287341167511637762485806923640234224686505067757401300576291733697499938924389002798395420600332103547495314694671359464431382427408374975512720530955385919858471548697487985422314586501867442044953198568376784467500946328970862403425031963619941313596724152674206212505201083910040072994975343614604282132972455792320421925537270645873853842499462488666071514935117782365651155821477451118239157014881919855838495315092673086965199378589035349337441057718908073305532012176646579578926757771474676500661486152817021476011560562494744476127193633738819102180195808508709031745305590569416563074829002490971876190230510593846118949693935560617642736433013079539335709327373443678487211128284984419186258064655791401909281035083152116868588869233181918285206421677525711607946297323479843883776908239427957551402965936969942847000076208606800237384014103888373266332981413015759984159099667645215447322655352482164809074563886047086459983727595116931413462093833657976344378237506493881652751546055626502224133663280794159918775586694295436079441852117258062933869877290430704956868299362963482763501839368150813750764244286368858074885018483279192582135635419774696170372717566549698686085912807993501001336675172659153126545612862478621750589267893249150775521251260734323379992715819172827561904863484288584170928112097423078909257399905982674707812254627359084843779641724668760310754894639728457158286790203723416955888771485812591282711000307670103421811103423527786558551832281246373689305719915436424474661901188105327394878930215133064593389729930660199882928062325250990624638715102554253837595358443817183106208273063737234123528987082134272657631120882317762559069487210789898179648990431522351901996793448224374376313129873302601400872459401652574174514263688530302095631797144542463077542195519408150257269697758841134367644238734684018872808458296470421067981368414196669427851819837313350182322614862465979431142585113880001456882154037217497906129971151746446775373825200176605521180575544186798043086655920931109647831438194484504265671627600528169760528686557432834594309258945932249126246591013916833133425747580434838650259204434518723864162557663458577947070295407118735908695622278606429160233000366136808283872971196223608776833404026618191113386369343047301200663489299830597101458948602957389672267458684385695393190660368746055671258652995706488538694775975768674000651775787788661963268947395032903765813404527080350714053935539356297488653602606769507891926033823432197466814162388000397560457647022104512899053403085785187377158493502104042678000890310699787183139210235722880748197216014931647312600586762057185253665999043410615159614209472915001675810111623892441978699857173368301619922676198406042668197069722783647855386971192488011131786744010422033376552812547641853570217311064888604238456068085567353655013546404844430602592930478935835760143310471527868559251036154386277060854728847023396459691723208095196815451227946130025839592043390551922500860618434992370593952002858254438122289947835959047544197246674682335461608715987019920739600890508935422184822777354970964014240097393233485835064026700078372004486778300030478192609784562131485697942780625190025730592359939770925039394423755858378902079349178534151749001448693927872155771138658121674766656594296989438838158854920437312378579956619373833058119394401358477642575268617630303183967358710563784880474694095885134273789009650902891582844665813550167478761926840959172773245230208090073842202799801647334735228458981125728218954050070541338270847705735232584611544050847292202155117456289290034107473494446744016137259505399445441998809145097184359460141249151495739045515980320968557364477215462473517531110290250650317407846071177003086464974284902813424707883250955716743594861429333199618510797303737001689500378272351631311223689516175245656275756085727588941689341036287336253582153291764420752624782544906261993433826036338674361692890004682206733529616524356815385444801511933773633832299384101271916767676774505675905787435243757824559191407820992308538588962172662454935806847736820331954083199237006860462370960145547412889654689260647411416214022680704904151361361828853873298214110126986480309245909169020487649766125852590025404732295648812920975244225414269126456355372440570030292832704005711741628471296575895833509011638153439388982881791879751841836034018931820380229537068802460000255006106540572434990869139004138680103117499800373437876668360486205646304601149983441319682297005787014177897490368563484679611669637423470489177852984534588393037001400983300166091054965687238790574331824057710532142172194609714724708153671945247137216932305297039075041507549204256222814517207683197886890947314035848567054603223232017231042758586568247944250028753444534014657663404465771165208839226245583948398694058521205365363803310286655455895694929468772733308526070745741444384467087164892074590293653522447205865087236057679060176053788976015241074004725197982684923771059814761749096876109861122574974810771628769458452374144977671229431255355841759799914126616960278679996522342403792005509700729345392468189514422127033277059924330120539252281213911610030957786529227265531697121039809172619478391750086372079398260650459585403643885012691030423537377722072401242948729591656308744435017224726544097187289394757891066369190518508238225190841876336536489579526106510057719600765799193373016217957039012812964546456566202749389930603053425930883615875564478196874128518400501934150181957636649682556921061281349960066270249800818973227102760526155938188989753921314397661767638808601279373781119704768523623984181334565533859583993912224341695977999919342628374004416146901846423825601971383838340706362347802416574863791976007945768246751797786296248627338071408930386882965110077298849886029151807693391464955690551112859495991038059289200539702179561524269477072069166887471726186459638609823974411341141276347029004180252645078364959691940840725482572747639542797815287775404774658371167103118660376630098197961088348917358281868287937502376075877443426976392481635043886599060010275855261606176995961162847743622761061348391176056679196353205003996011988388536881900405225129921987787991320566542548820618234008259250012041105773915422858477934176006358991710924074649397510158105935786216002798412999032274216307014411877556630476275703473548350774284007719474388850481762774179300455591424679783770597993248122936897446383676786858507520917150824942474910929980281707363811213088801903404985074037030259670638224467761048743669309670102404941409148509959299290993505852821551815938447514843477562678377912118785959247110975112303122002848722823494583683091883204862017637477693253833265741057788331365765994575078997327443138381356365924946433973629873147201285633767641330819123720499256474334664962342415821302660784621980020103650938966830354409163625562414060785640426948459231824517367029098673784641629740800145163523018592715379178478149436406937538455886028856887899614100855206658140031763517939541818050173810098154696746473075123772203464216448436456834448758824399909114227770414288727620887797294374399645795206610920979571985330084692830608908952594304552193480253337075291535453717065537692640003268547816010968756780318116250410853267106299730108617710773166050913825902685270549981715924351780022557553133944903617998073956737548817285012719832432839510760297017947468164664009750089234735032573283291052723509653333814772348283426880850390440524841886651550838913628575885594768260137747680855370283659841609630269930373019454065779383894055572981222365649179472126811848414979354004410407385835350055809702434555650973186713894721509183736940697694149463458939244485867635863677394996933752557081426998240107639962625528175802019699678770201791785154128025096943574273645080133598810342096275574731763064801668016876177514245545691949500346285440743653452422379307166107980650344246863562203101601266163509253057812453720989657639588637428619300638447578593934406704649596921067577939439588676534704327923443164970546268781715364055715249905184206910161570425053565580862218242874392350634095094726648923957425364078113072716377939230913336229574640487262402049416806052632322971441121533639828741008153685160259287871562623938228747507296185820014681803184429622087331499242992258709768511855051833268657727876598784116467074657573888997188107151311818551093746926750400203513361281630692644163293089366677134989002925368230319199262974584561474786837284550538374047969414392015904984426214672890272109687841125476566911578165200954275019857174829299965736597911015469332302701904096759029981759431790025643516937834706153411593497443495144313218479882081904901944058002145218970195625317177536581204262077940143817990065331854067215263726896774097073063211473645447088443513747734359650196593945638122826223325941214759841419711016735743308228628551790440040735839969348219139597867121088402551246386758198410497330551800983326679641926455925747256317796363527803265237495219032381042227202427762033079809081294655839489798468777514615483871058822120178995634038674145816018328986616821089640898316247642650063376701830420571883645662891694749083533543539942817359036251728315831276627554729898575449259319660698942329334489055539834181801155646023565914128857527373024671344702540664867080735941976779838220680712774331772670863520118865364146283003486703877316919244767208632827575430388177965799110662878821933584630133209594292412654568092796182976012543761716634256551185254814927595109916481535042642057894958551752174761821521022305929406484551060665387173619211661187695692384846398581142238220169608828303018032763471258152974514504740665400986116483622980909557512352415430975675575106301563255127297720623923053495182756134758252111138392084847394152954680203229362406957602170576590931975119676699997274978839421968635408827969542515831537566537133150034408272832361594183319518017114662232025387742138512645413399680608619252361663781630342810029733165457950786707853101762471206449821488609363963008318776477713845515210321380926124674142468352693221114257442616308911171826875590525865841507169996466209132598617647844002094069709760482559607291743342390491219823992314655830513151290926047416931613966096035697767613030490898176986906397225336998768605048906649107934859273650514509351212150310515262529282930395415088750688128841017792709538706760137139971596624325023890443066495774499798796144004956203317631433280885444165161742045144711105303676797620695850816680002901438529193286254385259217410608337601839184861719052386320282583140722143080436146094359255037322503694971964804544784573197873098258289199345576705368777522422414697545616568232865766179539913533637306227943296291220779997604697958494012272422123365624741055709240866218295864365317611576437610657297605633697009200005477638200244337802453802611870634363391680754226559673136748888591543260449455959848818335210274343211595089094007385413754374581909626987429602244448555705424539348385142692712626717877504474595855692317652679293360683329787323995631264431302707545150358515331592117507603223335326217143868517876479281089671748749711287378734937332767545805862463457767279011400475245891248088833775049371364345551188853177558425369309568815201091956105417690937746492287948953286079974761442612341220035842479112884028508936073850220142474574708437820185032408251333576917698454590507439411480812220062201892736960302566507508977594398226318126160703299710659605166114258770124852588302306658312639452308547004464552340506632092454253058465156136398740350388593463041417893664068567643630693316988889632186266991361305376312527242285973838940224338258992309908040506599022152886084853842949586939651543711239693935245442252573534904577262852678688036050794600512903002719166127567866476318846324990684010988526626178960707899497177913054559479920470583709782433677669729328863510139269353928406012279207161380650205706762620707158511780292402749287158470671862477196861120800948693981541936262113983808416572607154863609543413612380688460203923594280805966545338928908504975542110404362783024834506191415062946173594324579195695662633311858181747679010567454065377994752675152679801386613322802921063375448587274768855245519617533759821821644412381896111414941372841358540592007023147071276408788825052809236448787273313067132421388302657570398655814446086575464412044537556846254918527479128290740187551382578076157306790589946636761019768642067118473425548162280794982520778631476549400877674160727637313999751799047957976629605914116757270230018725010829210967892482781610457913621157301865104607533835239685295772780582953702932914776954943708153902631522742874439331702598901076110283109095071027969175635322693629018511348641670592614772677273133399594350360746840579155417014402158474519396817740284384649794853852295204360570083751980555629120318590544920006948885935025885673697798909128134988094802835493074052588872025798013885952592089721737388688965687775993669847522164412016767192065116641051040336824871680292673194878767849595800600623838507722222233725609600065934440313914071550708745090433523559477098363529195973252476365653989633982375869071140539019081170485209161106249376491653096844746088998329438972892618421103710332172416938871166634076929912964377638439917431192455541925455117318528793480161546937105987935819169741657168258210282650260001973089291901275874153280784074522538064049481361803277039225724035113411393020705376078746536732637182412197256357112503660422033800990723254656123925315021454041097697943689771130729462181883043497861275365881403650563186740793876184139341001256347326600001796610285599006027049665839933585362290388405197358288103538835962089452061689161010640612224340698276690676266991617656900065425375142587534218060113385561144390443252236030840755769942132121132203316874513886129093805058727694726475506951293318760620822863920376395114058753553693976342508996593962191435427551261312330837040222628829458982236145784375851843181552050518010862356017919340080464366870262433314556281479478275027589325596630467258234091095908929312134348325657313745969690151514326092994140339917142112333559142719554227626720360418994445533080408393732399111863415303265606049216406407004176201094111691695951797556460494303206157540119703613076571478050073237852508686814741422923136401508658783517060955055106378000914631294992927972656869969790552290287351071073252737954500534404918664219792345622762347505172255216547337564432721165911685263768372646930284221724647489804785100335184168165703264224674949089091485304043294660203793255874480844880308344462158434121701701287190768046892793017197748578802133311378164588342132256368136325641835267224402468123839972626373781125407954285029865883423020187583523235900400591831418121070218378779992852493059026473922733456088207015973877913972161511645213208599612204233614600938803668634393221419521921132333701514035237723313888674070026788287236302630550038742700963216106848307237008934921509068990324272532940574099372267931306219743221594355504990668487603568991004603524786998186120578931800915666606929667308082865226405318096708186302707367689293030766687156480113755118684107964401710690507005888956408967565495482362959229624998807069410421813839150280964747125911542985944347500910166222028572540796753823386147943076492529773614827525636937334996684107692572622842865950303136271584374559548947011520893324233209197443386757234798921493258296013971222494059982773426478745855010428773843396678577149655714161194385744708448539506072795186386990481306540259345353619671444715563195379067436415051924261559376935785446399960750489744560061684782624962495205129216018124132887622810557274425446104468086160838045329653753595283336708551021515159965716048691823291989186310477503656124014144033644450434845790515593391698494956269087885936394114132134836771071963186011007900673104778682778659850016614734729938378256888421426943707254678100862510562978342444491846622868773259931227238487979322410305285574667037562229068755241613137856088985024992318152848375415546325775144387532776594136873137015753610639795883255035315705258399943779072101610297646591428697994831894417100069108916889231323532290492182014066547568655207519351845163618865210351161647148544409959482106909840669070097533763481318507088362639577838414920176923268534628296003852372816281252351931446475943492145377331858082506698281491056135953300794943072673812544931023912141119166788040301375503977848332893996337608469336670045092645073729227755410015020447207219302705243860393680069988837047304595469979695573271971106276573568008908322867676465693324188498647405680621811509095523825422291347811812123271346109324171782251486423746626876597724762652671100029451440136332852435546041689577723106074888341143565874868571190739735776715994544084231024736751246252625268206281992657477778701232048159440956862926465924572649268260934806816787609842814959810402374453445894463864248795705934141677432638414433506915525232712431716384671078894211287047516108785410604259372071263650569434253744993056064365200782582900474576003614717424554436141559395554069764734474033296386516869502528531698059527086745478587736730969244286507118829510599192992921080020680872762375166858872622843342173071309967762130383993976686709411181206193741966313322755904381378776050550516324997949544384193111524868632493855700529995803031467401456525416266061862974701805903849482469435753211291365312354895477554007668757691305089847605368929740564738483490953372613171116060801354769689595875536935783352557676443821339824759494800844097656448769365139909922627282860945756480444784436722640378360230749715502475091912960810339532317896153835955272100874424294537134980194986165932688845072738255607820404983294196709412878322143118649654377595751655060419033894327072413029640568320958241186033002269167879917993415381834827573158957073603413999015736726296084576779716311441731620829292281503621449963360025705734591374009615950595103310349946145569804355559749342688985042914226864625568589737857849089238090278694856087083986209818865203669310960803934722067682588696602306092535808020209778490329416087695011917002659833667371459902235310480548733637781645646218756535961295829636722463410993227202075148250603483185525635041913933319262012579192441374967800424724119705587625482413487355261001952015441672504946720409245009888276195660811961658127202366368458931542299255114688306601249970263541377538257292426337780057535138841758271421534444538176768637655961778553531095079230526521959666365936252443180770836707785774078068434012748451102177738235853012254401816006818112544913951488831887847341553034660171997980481606356783726988427661923033373852528625278320653743182522641452666406958669457138692262877599110587765117231078011969062713385805829249810374611925425519229053119061458823830613912917195253677312804454106044339679592005297661190690455688563239589118402462203291439090569949519641936906548070324407492135820420615099814371222471916514041206335860860186791058537149273319782168984193067114539710010156336702346063677185002725188061179792064643879320937515003422924974456929876052001446362219051502761743778495319807426088479266019973989908547229151293979319035891312294625939871967869474994966612633513401203485493586623552906057513185055629539655228927440408586338409098580182372758739708222154342692710612337219365659442832955585559430663618802451602490218477517372464000527465917591561180840445729792825429255667855198379230706380417133516089669840765167880808568903986973581045717235068748681090698628058440743754328765018631948344592367737854154841988961392208875334588364407345299246613993110061763551545893378232204777953926739304241530595937253348687807072308426865448972058749091815629717658323764967888563624405663114945457387136076128186924366434396890356473804772535516562962327735203005709210864881226935804314472545759648830536032879320210008508572450302130375042354145437089370399592740800886583399024532316989842484227343540165138401854612011472219142256344332179947316102880594870691803106727576602232231403268912006678169670993375782768622731160775864419490578976880623790357187179194836789686673472939742700032286440355812587054580928072455548699985676763578099613525656774805114378105494453179649785664309448251758842973554614182035286168956775125191263891273865140876211893094985407749846549764734345762274848927336211396230877118518482167049614215304429550313066853176250377217867434733689052619606073925200138362522204901439699507092840021001626819965605777770458855708259754651798193665343352424537016099593004792359219818465106451014463316550785493335396235295687466878660132233319379960833200749804829468828405028810347398690373800839638532864521653949654893081526548311364514431825960368040706657921990147282631506836680670236982495327917585102171054720831823730108874724104057746179356985116136970855637356429273796052497127442666581197731493493917173218168552461867243061055263725863103684158694920177793434697762293494865489659254045969312442082812413119529877560240370274527484013429529192437628143359992813498460388744113852801743653313568778942816899552185805934046651708208072573159591607802241645425394859004231469795122498061929023841545527267105245638568960738917350737959235116415507171364231821033231838429826362355878746146422783721226648170464752121105205498893380086263059000347067388754044690445104676913861043088307453452321157516898071424839047749894050653396780174778306568025658763508780222304652903226793699057497614922158266312306829686600544832479496643138267748888087782904967819708779299136775026410967495263097972611444027097550642995527151196593069554064793568330688301629459368021043269339964444066706124845302851541119928783214566022077730602918669785533499937794113696605492371535133754560300826353651894594250848224945478202523417087537745583069183179298663671434523642132866879892616845871462759097339007566922968898517898516957677086384506885055213303463038617847904960241526208955467125123849110564384540738730064782908976841240080159293510621612759399546120403481743871517562136913189600928913624717223810180551814446690536530387862357655463389302006214583823898175812034917080409336630632643366016080785652386857848230040144173601414256442064074220289369571552589596952118638404139305207351314244504050375505943840855444005194319441666906008348834930496491555592881928938043075831139259671379513570209507188736917434579418961887314166199720672396551198455703562231971954839805841359880165393274932692368396888074484029023091146115050257574269821988602501150437220812585335023343018988974923587330568676915832800369703708632289465374342029498983511364089420739044729017872213721523207515548692538995186065620759818240597978837679848032122813257137241045431474728972838416402654706864181898341014952293805150026450217503088055779540257528027442496619851487864033774807939040213864294372507652073863335109735815415807126739188568383413381396599177004933851476254916190539122222915443577604726194443634481634778043881762373201689127180550188321711352106348756462762646554259065163732129181961858189373796983247805619413110487185124396959085939573980877303409407533823888093432375155165400339419497923258601688480210787720649100852499969601358737778338483622039481558958914694081930087933906881333871315502096302470496517231001500847090189979549440613972197352212157172135375635732350263984953661128271873289146101054109576289587295982494986466261938856544814515063273723235428436981820784549245762128390739146724324473606323635015595660617709805219209639456952124332472276375129874406089108732616044718313328621364453110609900368997031190195865438072594418992485500034381117475347217145616159610690112287061121919972695220237785515350958049970718425913251978898285543798602476810965248164108736226356309606567664490021424069263249718208926073578959106382662969407248182748754489193682354894240323423376518813134977063075508157855683453139643659951426346693405611674129651857458454758614228234451476288694129132557075660903148150869078855707535789792855841221737953978063679883103982904643636989008207583675087667715712441457163491034789953457190225581205061901411006817058003723563806620741606336342110643754635209033574780272737485003212934889463868767476593523581409743028338180407913209642678442165130900442747659782776676140627133482708133768539843114393817327854139742808398705856142541793565774986550696224746329042033315580057816667087714131813661548532170721381483320315904492129677730797327287679745610943340375968167486472982086907258966704496547943309796315915372573603449858789894899583984900583910917382007041937511256899130102542164868101913235470925336474559685631259887259584698623808184819714459926805042083890390181949138183261794227471555665502463135741717656721805427526775494203564031262895058615284091565055306078449459576408473108697223811159774992232681627984586766756894364019828577647341873277448792086331545878500789972856565791401665711283618783720504946811469302660655095950590639452411663667315500155595902576806301163982178655634890970613891209003933788694370994354638370145682042232709432292390761094583214160228416419380315712978111531972835007592707734036644221146521341396803902737544102446548620786895093410534979368048561998262004752680168514180444930356407582573391922908615047281926296485166443068220896976616779835137631828966598902294874767318010449826676494146680017321988440866538635245278569286826498606811707675722770584897555328061079656809591950558466581372396945588510176956850901880137710582723393143484605065071495611212490182853373106812876223566543386233402030274838395102434831684150024148432049327748258558276962650584353481910586933357396986607806850519381858668571025061885360460898778189707683076507827059657816466930940475699039332949848392953929056403444188094902126815295549592694093056472551796789712783482531745337282302827414513218908381777698794372214998907012000399711208880830268616803704090814065048607097433575389377217231430027430744655529177429611257262032115472212553012123646294949889877723684192396920753208658892510435243309144917852791694834552075784493023720634249275953427707416666622313982230144647283558175283553890476709227576597565303893496510497188199612786353205724673834373227498736812009158788486435107423677828517527099353456451345733939518313600440243490166610669526405311628203137673387470210483908167485217663126093106066182745496195020658466179789682591424812931113002260767344139361378099462760040864185596670244812048934734898559639765246470111215508015515032436241269398913007781298163619182753797199084950976952577410205967321207446657918282461598838475858062251754750384946332581042517654055194402206966847206324219267136512867638050393492241907315174085820800658138954529657355139096436281528473518892824586654503995224186192189741215190861782995981403726970167035088374278188834216536764136735298998258673217276157882674236629394962247449226850757119680171507959886993956734659336594280404787706665961353187439113025392022344668338394840115139456383742581553242141694817790633115093022762386275761615213708208625614230184086098408810111664024555487461118442074470291273760380220153271378288061483522279491090994074738992720544409398719879560374537207454179469212303665118242675040964820000808849243017799045405869341973613478801372227310972670988953160419072383073840238831204102433392049249942831187737213890964098713685903979427827844602766600819384106762206011389763831327004134717880484562730085153493160093211346553066111047147610743071454089680467062535342439922658365607802837630646843567112039301922911315463353073146211224172601997535238812368808871836677675467191115205616552058128166248051103708853660657011370171321397640489638834630691319493867558622891611528480909959627565689164506317884101455360428927506436212521948115637670636755373880793096783736119995445949290535834214427058218861121402341363211592771994318626342785829032576150322038036806010074595239258810483844588264781603232830507329647134215492773576669934976541599612239769654220957023822670983603669053887471513988126572833497675020262596804428016490828192692564075055124510387077359552245235878946589692955636458795161138340723014479256761811268687334939380918981877445808496719540152820726864629493326660196457093693593288643384954587809844202240826659189779607937254522017743830877341466793519673969747394055996563863012022742692680048886040464864854194440345661585319564860538734025487265762235945063877014032623429638012778034228980645865204269874305333689637152543171586182606850043711190987323034589692646474138588916345141456392060472956804621242221318991769207073033374608171082700753135754769509562953195654224928646674071675421434091732369685579621334577326561006577918848189503965197264832038710008505014130900231416957502785128427646081215884665155822725382562355555227872164893912774510747144065619893607626308548289758824915658476830907612617248718046214764596104412091190116096399550308944463040065240369077485042139218099433785646166673445980168695791301792173051314836594505961872442090176425759782209551214020416750511224342680465930697065237934875629796368500306218313034041267748814262894329132404586890650711282483863116760222467776314456775287380477464367419031470236753873710580273218554016384558948814899067316518494201693812913646355135697483514408487914226683141326997967984878407564499148607169800303281748292798163424442307455463504366546951709706033495239323519187219027559012165716448868998755562893482861702145422644166883770156912219334515493331930989926649531507333817205328500816208377571066246278614088017949478797760270603127028645662860140141845347507851262150063812375721773536290556492778721968653706219873416197952903123258959482310866203912820453337738093605848513079615082860272163080892674843486716132082531532466979194921427899794880436678140364721592871280913784080836874324481916499722104139081092383173975099223566294633828662322985784922581701463703233984462565492808547350419776330225591444393214925282530040783152771366550329153838476051385334713328330999613582963403735739046284063885464120256081778440699014737201247773335961496199989866128489666250485007627939189922958934311859874710981096421715109729239603622408994752351387860192618372105198419499406711278978428878699860732372466768639923053762036025822395999857572343294454351518250806999436790891869290789326436685503444524616873110078980965195553248695211181220157379840572846591240330715050380354827243362291485202019291194925370579426287107567112414377855586629709442776809446218660308383294566814052955546151045227662342328579472875133464452158849780159516086051359469577761488327765138230795859993196290740738429241870765547497072293058679835123563746932502288211805194013245195264601764835016898843278455913392736866704948151575667464886225813836017448815811035868159872013374828898934290063409206542245118473433533178293918088885461002763568846917140310333353739029139522451609180457252349506521822985233952919186202111081686639384868891610769834606928672605198010822798822385399846103383071037774407436988492380239694404440519671869879749918429790179412091900395756094090570550164394976092689462521484866076418240856378061592689590927764065843949773690216994253287493206750656012399839109412599725111823901231052158569823073558058587132390124950785144168140474302217141138007454508831272490886158772392230061744738700564912203075376159915994482139965687785788837791659996291916068581476630081242653169841264823685378756811597353869418107623052150636266189960198210491157542913948104105843761106590718578848499444780452238084384595717154068714724396565675775299568708878400672662688984542919820969995211483390273590437033506488499803282179401335443524119125884662117318244616079849607367547532446696386217544106412389861458394593047867643298618655660782614115018707699706179053388292795043620258229572705837942213327228848494473657196147191814346468114451454489973217058648003126564672777392040211463355058358097259107302179171837527380384730718632544108068075382562159481732569155085269176252765346451878559573989935272183326644923163678109968536935748255839471013042714244736981239472136200578894793588271080697034690214318848438420906680534961124898348688405785286858215814537183108091926160747934611675621342530802313174681110519622256735074880322983446920667179347820550681095919816804407412344574151616805358115190269754983491895024749738160204650655270308745052317037524903896621784272717088023075412309470037979407993056506710211500530790136479140475035762075382225889568003942454032320069715329529500450608512610491870515502106460758786927996680151386136081713644202787191884606001175011318508965360228430212221932502328029985796831298209882647042788416911131691892227113958033298630932374538054264003952599329643707485870842947691701279810202698253462590448985836692543458396839556037988161765081755515898688169027580646892672269890912284090232813908800567890627202357886286256359170388597595273427511144864798552573859281075827677389912885131895181705569756134291241436720284644129528704043191812297518504311013999795791366998830796957645446814973108008800102586652235765753659720434256949466170263090045549499801262614684142798340594085119035795550047554572741766028713444893314489586071348835157110043530589923971055987258913764320157315988321755359426730389480813465354080960014168124114513042141996105191519641437228450216464260853935793131966611280387289707499146947505963169855687298298586115482281314287952337058582367872721642193675012492195625017872364877353048264682561329149417332874544106700957176896997237022474292163337326820802034321987683477796073218038608667828375965205940739385995091669945181660891806612060299038246719756290014075923708095009574526285053156963936328688830317554188478857548426043424090846342451684080718917551876824329601639862999726148666975971685451024917997880439860126876550248009826866709515000141135076887025461189149461842518249218710502005480054738165515304252726273780370188061989640216264299432485892289997613816023419401278694345476498756962478429396954584784481624703533195488371365312343322787667033021134404127854376771395111231065126783570660729639317570772652729713637556554435330941930803882221764474606547605929988278860872891966432741330069132049815814488014788747604098052200621283083706499636628284462643254680226477930585126325430419677658939763140018368246565076284424579451065691473948455046263834055225283947275799443288144962919321194903387599772407856862565199356661663562232888886932968728482158594997237463690288710610984985514162399096668359088685418088389713780786571889776146656473116573623205693686332549734844818351429449461372802635918429323789781450583169207887839531338578317486118848469656003982945930963988078364637936497407142047174226142510602724415129247057454516982725088289092190269313597517099026308326230874605765265741600596988110700783116793807128162722142603823675025788944815750982477860773313361695225198078029181960863758887518379125387624027422654481296517817699230881119354501876635587888068496571614777872055188497700913399956470457314344127139948255712504798828834726054985491512673522636201072641970608594105520970233638617498913180749816687826463071468662107083506921125835330078813853115480596774340679386788001366357486532968428491260795701712340816062406015230556950878419428311568994340927996778164426776739280412710743692525710912534244683012926005665329150031370208314975205737824837911715232907524955126408862389173838536727799014411679846391545144865444220710912653267214603031930311531041641090968062887031487901965461805326069645440980641052250422623540883791020628169236823393348538463083257373961207276508310237004387164345836973923474198614626326289447053955791299498273960094351363182820352154410080472014040390146968122327025858652365140417225792797372614731964939363053503503793740073489382268157797799576958075820784531246619541837688621005135857840313257918063003802116143148255448889147867853064588818648525819701092579800094985223902514139045829942285295705506117992823559399633820506022447853471024194992562583277863465214861966634634161157169759702717048453518755246822182155335305772248037930960129179038172683567362464497375561102764607231185196680550731936154686393437483371064385412207784829735640764398560061587797472836561738307233747254169916221011894024037150101915104138018678084647674193967000803522672391219145736467077178702117346228854215780308235138311991688715910425648914461549168446226209715577775408811006965072475778277463292578350949990929239440135755831379290428412715192256909021666745548148495480279307438705905788137941356476373163589194751918461584765883851333343358399854940696075187987050908286813298189096897622636598575446036038388236767470120318635078170145798029214289515397644995440717411612652529671401064802472389374137916407837733738470870523895842188305629915157531838985770577736511072860401156964551614144738008421592249855877678095662835477583676473325946117252010642341138819181840446331158378982619641508709763806962213735890662115957421669803893429239987262293383260468733811039757400196452518544491402153326212868380533275305300507644548570305145722153293512642102142388498292969781550792758925157342758026599901014708296691338078354884212759106854411055046793076991461033122628029267837566336851050313676513085376282507917193542002365288333828744311536471628771855320864853676260470118699082623773727746885342391658753010354175506124027763624018888415389486867716135976686216751493460269502089975991624812007004518732811016734383328332072031382855815007809998191386704884497483677275218373905794791139140045065074650672442471537293014570312684409212864661474065748131300050632543834380040682538232650302791225009009329293801989110277227477682967827839207960975206484846946488238327141166150064543248343645775379760515162886161301350909946353197323163380827475266956412212201518895118077530937445042768080150651317561828929024713379242694494071253509826879559078485929570028107359398049767661265751238988265361524247647096828618211487275718970098984702872451638769006527926410832901700777065408880719237194823972572070975526807287081259068712124907667286902144447904577496689204514371795582774892664798173872520356720426545044453638091689363970610590748021311980503865368988641676435935538702544558082739920081626180899583992545017629048706728693373002465007364672186149717787069925867925571555386478955386722806630188241852713115099587707638231467174521688139859291911693291579543946431750621459811440488720837879616031373965233400184647292918856549424123541024502202503746151957178735447182971226232711189970294575695754210418503326036133367620654304195986328706114330664682722925306839069088111163338462914358491929363229299822988758934301022265951588968630891527894542504079521480638104119683753621887194592641307242372995144802009963137115086530442696358929840581212217366548265255935202146823687612770008378729637302725194150926973335127658107430155164169395097221861088583781315728320159127579640890139395039326741505476850864673023974786753135953129997985090122616732556856743786541906310423181257029939223186312635726830253857686476966256453985452793853280146583719812698559971616599128079121838868352230279974802729666414089880654888689828408554858088622818663863071430814269650056688538446048612215854298815020985969230334938590111752657970623407095024917607742749867608649256933975165770322311707183238787823574108146734763288410399206632095002970464119225934400359417404174056893343486321457016297403012558155231447843000933657741852572806758913236804246416134646408062653939930797749847227826638088450836263013877290012128816203504218302550736100109503422491706999690636635078320327852165049691472304214334031512088196520008603967187388922922881080599212824675609635893414453599296657100664955866799761508253205310470532028101949184264390983063667146978585587156890282661137324980248245613536699401577929818975853183261163539434397266871670567130321475471020520115768864736148591869505875194148425602864056700881069132608231646616282339698504068327206285281728475376764988202625586434506348169900803855453473136331869161243144535282561043318459223472740128627262206927817424344457359484948781741094796737110581795407713636005863942366688236007249090506513374285916725518278538518408262434410376249532191589932636691314900412310664266371310820479055147394656397825822610243083537748389796472239131406717038679700421756609340631233530376296580043805590433098009190150817455173319324170005742626647127619811423818910964595970479997546694048896183938943330487859577336739678795326219751954289785296640938932147808631354273924368293162693196561646732967969259640794213971618799213777176110229402375259944130551056576485812403881395696744326576188933209364404908898861019385181304538222460742653996264397854908682983876851252200526851930807076854906917471429261732763740868913865707989498533689406989681223183764979725569899913380039379452663900809071484530742135195124395945113765200897673744820879542641204273138796134841496394096535353278562767213863981164941260286247616147439370341681401003805544827235642828443545334473779703049657356578201803158980944387128398163996148812964482816022954702372725492525976073498475656826044111118297916095791542394514524966248814860882792597236652841439301737442433256377520224578935828626651579405236036901157351628772293663857131971924066863205927457634668267463686028502841415376142622549716809054685741215962464966155754138697110184910443771545402141397008124167467434092295066996125634274066277953154919973602486188922544140157049243085811094089062139721209437842637629747797152976573015265301751633526093201676872608620570095505018587330405251865369334480790661152043334148356757260985452097304971437260377311002515185656572699241565188731789881720231151540436293227998953134690745518312315865126122564922022497005435333559205183540779901144725771516866882028965561359933348079794022908108860351129447111490788925595089638983401013838104059519645667288744794123164714872041596252955352289773200427558562044418007467492535002385740616001448072051848735963704955300799507808289390960663045767523197879734808869027072697968572687920922969814326317254375157623998541684670068546846332443083356540349682054719319479525184008994529849587793799377255388678661156407405688887394814802824210499975404379840773357348884939886842856178033169490920838524220428358347988632943491193188969717593114925214593550765269699306919906942021270397245569565817684253799277752072054880541940859451394620337510665440450797877562783787416673644607312331770543477464436012827757799160773475316525430777737768215387224478092474829885559479349997417278473126641266726855707341719626359539060186031922606231557685950966341065106868762299269461378876247473884154367183284359215378356931765989700369239318366799360037865041249926051810030623907300346290296653451728003588451945056675375422044486375048985016930755389043386622087106304644250867730278944489769200470829847168035792771930650750263547081227574898891477685560393906923286283410334782691231266974342931545016445257677142222604998644845487444289636953122947069758971803754653583438832853538219247443072248178131243316125329213694586162629187659975584997213218562247932886758168774636025493385154458907564089988661810436443881814318017256603910519599004363522256746289817605230458618230541820594325297862248109472677748134096297392025944005090109360282461884422343048747196995428634699475091776402072522273548951719639777079162704820921884806370346315462536280695316977983368949738528534234760346771101462610760529698715136024854460653224860160301873367772773553109423330790339085796764276339795259965262382235970367652955102718279776237661488708866361067363057854641689139996660671796745862917932069363866636981292995327492367018431493371208517842530652301533213021322669666884958641098233525174247591527283759473950045605992570787583668902950380355201095927450098730510173213404085192992919538051638707767926363914842818868238100909734672165732622582518912400200806292715941616518546711627970944632338286692938226990072001464151393463538685093576924894451846507845978322722319654368687171590313799602998846233404431022459103053230810737175137459259996943460868623297942571230288229871129676126028105568161069925470891187293385054293871084436101334663042946611939241021440133027633704424591299170835855234203193958610385642980690240392247485884228286413714856169962100276217516303517187864953174487537830930522333608482408381639956824873908248394858675624121957665362349280743031799888527839182589232750325050594663557799760530418174482919624875342824786701998775004531647234240201693240667468744901780131930038707066388572190229713496007743028806957351332556640995527751857645272060308920916341356713243867883959212041438227570677916587618727682849504820515074692375514411361710732219621733033768401745400312839788424949997981024012979499676090135933599682369356811487572689667757678959006599638725654752016884396547826826385678049053294242610405404449922297035086734513565767281336678811303325317531757677801676853924900409809929835156794349742367806660392051432754215075596990870886704490026259605325553700469412801313134043898199062852787004147295194285398377266700569833457024243305780006643073839698852698255958811092150946761300841448972968157932071733106280857832993696178735261013494963528152634446889879513354288869789576305679244652388011204466834726907615543778582729277011110743016889564647018107916939570026230222406790425743598881387395618418192257270466670407425863482876745828925695349898048647740045553609116009168099413285767438088436347124200304258793346968050919026820154338932145308424315383252864250173957081494447161693465766476503696048212033273827446315785208424882545325661987201159329282098490182468523896364116415577192885241550836631029640032621880572364410135553876185372038413387162660259979195971226913414139862728611689621305726123148795799501609875200110690749335908260416802660853165968104298533902996421529925592353809038801671863225575882653584524108746558334934971603560794054749262254163614935007947510612146888306725681019769947285068192184492516469725169792738906751025871539934811291031737944643158656806157932277232466316136175256159812847170925749900020892245480864141816405799456482639702312548470118472734974340818592203801105630138650701298954570022047608269684790184148580158846899841931271009077494853881477369123906682940514870164307344573809568513331350932859687768840300881487064474325903379795053655057362867096092147558207815472124170180165500513054589833548550258708999820476786434091470239328587346464252920526062038883690960176921961306082846556610985925065907111186927444432528307527662830827193684568411999753298639642262596999928260469763224203611988605877120994448544625810009057186697403770299492039661403719934496603870152390765702220198496340599124833531818120869456284435420056890516957214872196530751421911907519572382964250573406016180328124314331889697436192813871025447412548769429736154572832508466224439015007978345317548279358669780964052638283764550041625681654169222726185370084478775357564127844835311563058664420474648688640798409328869724192939719573550463629898223570366415885022965911913922595622531886568424373208231459633122978712539428562386625020414959516781202274146035897432444402652003925717646117657066235557184323967610064327255131360611751656951152482973659759852190033662598653613534346134260512114254637333359814392132806363486354539268183896820773310763408914902188642138877696181674605250326536448398193098962428749701752603011673286664686680580399338572132921592292669663252271024611832387328548528833954991589990665482953885491470676945287547352406478936899286617148356393238404330140228141584466304167194802615715847724790315186732406878603663917984962465162700910925646911257174516377656077173776334145556279382613131473484852895874857028747329991784386138413799370774863175849320395633562680554532759839106978475120585807056948331887316712586217540699571960674825333251100581353259129412249896143628338339069777860193784934788196692291494693526743203657270240377600181746007181178048256287495111022339165374213369298467205673418432083113088619987653178992832322888569932503826541101109186095224609325528020166096269382797234182083495091114376115618769174380652918998130614724847629864521440490069037960854403450378990263085254624992548174082896007402117669575129329873893153793774750598454926096368935086636809250988919707154319119565048823594162428173066213599945350816240005124608937932143781940252597794874902371630361459485430666963514660980178396110381015858734896834945752096135280142057663622100965918558235343671120838824371790981773552768146860979939158467844639854797636284779536534534499501087437319704501594103339829604565347569108405427367119862376986279779821194015792325384800707154341382108482018410071507929928479856322852031790893915975071887770281584609844288241820088037464644523867169935008512341953180372748957727588485795159353846006599875896344843772393915796505223189105849092394828516312885831184415103634424216461310966539722447989546841903712386314271940015476845562639851521906471767975704955024521131965426893804932076788266593182923457499755107995658616736647201924650460573692838420321942901182844037806127303188909085076374983197990510860538759586546135922180064317941492922715610448633439313703184520067491126427543391846320210106065167026376828611953305769953375724573465034253550830905344047916560592078120937615170864475308915763589049629704678391738633438064624711352010310239252469823223618901751538510709633964715530094514655059535902019724221178757690689065150648976292805650825391522497819292788501732942575758117308671036919420554901538676159010736272324980986152127558063756235689437722208147840903218778535943384477821652339946156129181171812931837494419677193940003308708119981614232114491426430326877872240529529335068850011109337775425841776131231947956057628904066161799846168971742615663535539748867436405993054282773177069496009263671568599753941689036313303696793059762939318018177438986287581195422550797763300174245493071537260079238755099216566021192075320978714432926381873646207224938230113964520406621044583304923106795421591269231172221169725388517353086603029386516123679420987981195798017673175858789690230021562339147554804069818837194469763104284696764125191886491426012619615904432582130410558392981357709492501612408169452722089024809524795919422797506892088530477392358216195052195383964915021601782117467771621282708830737257688940901375814326845722655430904167264905989944593718343962552197146420850613375685366593637647541147953632071619095050338663826365994360953295789584649036546862701105894118678746593077551862700976107847810388576340864629467592100441740961897034977788751084748550868070631831626840604508012351986323104712127077392034298118795848000276044020517198915599779022152535477599020016497573672203063359012423450624882990400261622139003004300940417277819013817555525425034242670070923478335678709625489849688099155051700773298170626133825669049242075827111915878140335979178751842173936265716445372180052576317376340805236632083715799984224615619698132838857693160547332557884044667509171118718162407321651463425564950233260666326821486105049723546037518145255427295397556972667437278345528358869726895512622707828815140411856073527510601999648491290426841655666910024843754090170717462040012893590293181465879081244718149746887827497248340348346435187074811268481276347107582920739135152148614244785917483818226739245423956621252967552028537971638923373344113492290154247382595301930112798080885632163194294577961123884750278383460395795270886566630241479730049149094718887434843630437118380189961992040589611165589654312996181012417949392339071025986307757103582194114436453342113431845769701075777198861576535451365945265881450293404648861667693610870190343078896522835522394911149583388677380630518948347425295032583688828605118127758870482533649111216191929451925248086847605064791824728278381500661764691506044460402245350392676333662627286870633609700552956208969352996817388310936617118959359746312753788935533774095905738153502238300368287454738177909153605098627529370044545395126234554922882158835215886484988776813508778199621986614255858741897181076031342328041289943733762279195239355504083926607564584428478999671653924920897353825553901028756632573963146257590315112203779994666842877042737813537692175503518934947616775446595011835467623261805525119263853446966756624594001626148284612717146473036901797164771182251612939660198176077335283063124838592353065871630856538007136247755813681858251358332439850674620306706019586846905840184759586195051651141970035373501429152776645644885865243595993334417963733807359537651839104251329905925975810379280095334580427025343952011141629310459003627834268681541079344663859671812330286408381860903665632201000574776499346480115843243317756339965587729399531271535649670605067698366959487531924208028038970259480945568549691881016876572832582115834495655267779352024309520892739101677024854378393015399108923667234430064844590846454316345091517065668841213808293793701688803886981152030920555406501313652292980221313820083907478911849672716732347696307938348421064538512255349460317264081749595655856147786004197029223492799503262768428072184844180193228643506442390332088256181990419986915574078514592954511388288097069287797314652255609777107923737407202623706013865981453605995787146657750944058668620466874041263488179276578907106829179017429315384828302938545420534953363509051267731761642664855047864560905696461314607914138549772687613689550811332901100452665299176645243126197063461533011265089870165001126517136455243974243468350798261884160488856192769576479492212149015911043855696184830921211002941778865859226332603032902755726943762857943963098554356386257243820195256867870810379162788383702318114072353618166718963177373302495222035004167393504287895879030670669653910135992704808886809406160523344315210746206659488192545790817893841320284882962495888440024231514757396965100151755327043408926893774120474901897607399814184758753481301890559766784866736349957246595575984488828273912952523372575846855608797290819530311119653121124319766422793345262439348152204226775141192990756619027438274936048236505142790169952388431517770517614046307123265900285617729964621607051991986273288946229687956402940249237842732053353157428295343360019754961034945962985839591479233060794608732922424173376602266240964271866110626036640840933832452788807545503998001191546745266879813108866691171966239754783895190309401406214697254514260112095317097437128172208615430206884537518921744196551139585225115699963052748220001116590833595845314188587020801605536270128714835140165523891301747035905689074148427714143687860154910467964792239027359636295872727585651854461021268309544384742024361589017085158911111360129964928738788319010445408697792074169661696097883633751281483730701199854488279746870885331589467301387719010368768977815753373764449608710133000487558470668176034557870672169151050819270064601142070945213653948326874591650364111826900321015225988450332657492874393546937156827313487117086486193986800586980840073528267749187180261822220485478831437846329255344836954948134603970304276612689776005030000474137115053976449367882403313349931143569776548357666835843374466989627473413682200099224744412557465538122395990697756602058741652463712921163553639672963781601829345858610525193102498935673143144878132244507803564892920510741895970775265538532208179081174569189499638470896664229297274353051613862912425022745703462058805370013963678627147104434225432647207068540788662315585641999059506241039966880759632526547296682814201632745370621008099032700369365519020643003447202590964502199036898390360122616064648665008183001584353080937594866902159349968167272873863301195581819403667540252851524876664296444182551919507138345096479712423844021979212350360608777750937079524639547014069585496957064058035284210253909343000274662266249400242706548386558643619370032683486933452738436915607264925008477845963898357330617645413668514237114420172245459803472250612184337638696036804143972640503335498973536642853867476714577312637549103171223832610520986076821793569828733423397103232082276285304445669063133482410897541195336259582176794464798636967809591504385997792864077339436565622185583586074103748111086432638266883556154669046371197670435813905191835038000681791763207446818958135760038966887388630357868218563392874814960710501632436014646649140641801738073101827499142399733098791015086606190679591647523367018460892881052993433579165505270230695260387664926158861415150651876415351976215025948084779581124683061392352011530037424060255189927327773410975267645302557621303489047396191850386616274933941282557893587119926374704428427151958236531751844116943171953075845149633299573000283049567081966773576531646336915760058402715970504091662487148458356633876624492902389089878289597807562707068970268997485039457699680812060714519199898140659165261616129016698857075198436753115260456182202846327602583897021856257858648206532931070136280589949235796518687190872994656462643416428988099329109776672150721855123737508720238302762470610913450256717434076486864733477823818633302716618224641849873021460975248260778266052090337117056298709810880003643726339109319538109008982195372760603422263815155072105314953780855024219712545221261888307804214324153024664084344657741077013678788531190262085232408870129582307921170711672270310381707423545056367482801139616470302901729416287535699308836107596689112395912763966772348900326880647616907432618732014235524559276899350956987182796074720781263669302444263727888522538602287759509568127799266528502559888164311534040923251050639362650051837981067929867755765839142701879286116227546793712507521629817272218629035095957282039324172203494873162264892324207911867491181067007458020258095968907361032829873198285132910164344117279831957153266778831312487666007332019551217602763809479658108292886551740199855155981384201870077540587437880742883025971447730678583331479661174307364398758293275012678993488890915853188805955536766106635070916460572813578177371250124045676446675832987051768760265528420605473117894758638655565741597030120281048417914137023060840325804978588474346473552978026453844500613840069616638005149452435877761316776090716715773411896853056707824919336846247287651759692403010547311350301653422383343293315378846905782212763118863657521474276041476713021471777712909284777618242575498693639194498915512946646566355677478493513038876856446412363284734408861698722497888236333541332904425048461089502590383758558075633021270474767064897986275009245334969205300965443146816990799756098636612181286916164232958708015419285808436958767817052078983227155068324646929712972255038088449777696234065265820429550966692657594803850636603191250254172942207040752937939236148518550616531181910651815362432166513796225890896698984586892449146612531337928941187371935727118502179406074936853733468229682505762346623200132336510572451362188720922667383622606156489247649284524242527499665077195745015479208728974377881704403560786524577416236949055741230886844177803656465876609012565338288498937714658986155518071135915927260964062549652359476947064420823318458202184259284406384314065516933338793347136832461486265993638334414192321526465522426931990704748038093683961568599532201373360105002307882061075819594237506308175934483692625084577457608901928178159893422564906222304323217893186876223755836001390559450504412858309475543178558689924794969128390460554593347266098411307093193136719326594139107311842972864971935188466971300494237582170108248885662126515673898145967150294670115826722778633506738301129458524490521258685199106591644769568080753902092250655440832037671384618737382961494763044928124633372580811515532459532656749043741562162615694342538101743962940006422282942155725945694298692606000841580423168038076962467228213834460801955748957152301041071489685605813404632248328088378629217867919012381600143690139258958160263086055325135373001357490547192621171017280254870683901240842083903559926685019312531968242430791282780066393090601482876626437973903571576897714429549979090758468010174548409068165439050246005432035748348658284722658324926204061291894510343710279285613394661355011371944944480945822710480544977917954643939625478724105701516591370430189599025024017775550064507846436555787642884697858584420180408602152217929435428959803885327842821104349028810405617394859503136222002882189257248511558880858431134174658173920036224730379977048154397095050164890573128170914455968839235077737549190731511869990398765078953033969903684604324637577973558336268848206907994170389906335320731712511747466640140519714971832343831128582459379549783949209687883550077459611914352329879957263990870076154598379538382310315510006643996684566862275623198109347854709718452802972895998302879010721622582097835074981717155305226469963525266827076185272549833151503588540750419522244394935002932414815989777435288253972005577238108249223965784613216514857061112209070300000321407075755232534361289318246421130707918610087623289612737815101071046893110758230314644390586929474570034366658574159159682530774708866534810390589018395043773613168544109748587385586287883187653909040792290631154961171615407246694391625222038798152460481006895672939239944128874457252232891369509337885648216784553356241398945645718559267644322078043029373316593549763160052569876264772502764075181244328327997767012205756845748607241564514589356177390484169586106319729799191481899239558674239517450823682801294141647884496999140806427448486988858181055405613946485962692938624576813575237447771805543111467981695032069970623450789845447534498910152163103871443978152256665197153918498165516557762233713592147788159481776871145445363493017656273169125601991085833611380636031009549794446070888499592301472571925143457810451630336338841741000476610143406603892916191536991081030506331322775904494947596276717840131432011470845432019773268911187859629577653366053267864190276829864536242922117016341773269103939837797404279597306608224511968958194003260601303079700860567010468588813529294905128679213863935338695103547970498175437248289405874139583946841687399937756167240916604616716043379047691082423247900190590039496028397278105275834727621447771269468091238954877915530545842556431379310525474631577774148149950356607714969982287248231780642734477490925343044906341392932770251727352018298728984983358619122267518285491747317953724227838492412952417198698598001974237506434943472091135453534507628522338903667974065391519807976970561558136235715708050327304785454702303977987083898909977054797012531605869894895969571334707403658427386042676744733348011499106642157697206421496887708793626057753016997285296045215369498773059178270788988765461127920039350416407599728282674289567717224659265838566968345301702161252528583201725520639359917222468013450663020861393492126804797659484864518925510611577660093384319527551717914176929490184086207749339770515835513658323691099344905519023207008448248528208855070144018317655736667435483359750924244505067513319211625728172665835218413334629508555753155656525959416891043995158064694913740527198779421410255074929702860750522592049796172563968340219345197319520156541118717379796564633435366663582239283254134034485003776424496239018593409479584253439798172365104363538549540699773494833369853533852783174998224356414790236332740968309399104329030679502406391919406491316692942061735485488268123081939571131545165638379118525316541378364593811465741895555227552941278977016857391366613230964099596690298359307268331411312552135452451971365036129681008518579847673905474538556110690291254673695344714468521881702817701829859464588144056831578696437796982870382347498218328070733510599543891235732261313719931299252999134025027229330105565772426079113994623606634889568942752942499221485641173501989327578682448598238037497524255507899745764858648547290247751561364808021579076289613229933259738658615968350263664595716444996832229802024397654055145574388031649519933630349465498601854251341704406184515874853976741320748788581361086476244219794835834711015237381779842569190764389797817319283022632906904382192579078293634338461675299854980906229204503913135125143441656901426939192187503318081882426221808275175628067020073286731318152485487051078513217723950792461553910167226606830412672707625841400553568397837011649793791343743475363359913261026680079423947822104069849926068689599448801939369789881915966791506418576277786498962370957975769055773818012268117297970173450290365548755650383220981495518199716948523369494490967973271217484453369933937086599369143293015158189860474254682356060901293649664191082742964582880568892884367376066908624866167579369307138334912110140990327770160051082175928377635085884670408913676345586276949865246704957649756920146538561218405210605773810723783249446894259355417388447421857598044743867722665828511985875211131055581372579710408041201380078323933580500258414207413197905327087181738485000316427612792500606399238038799228394056326840468222713797873570672916563757463985980711402138773575164168653178047151984822151517247804671150441412563865202332205871211709556302696727730267634233778714000098563109799701550719323151105811922232219337760759018588729219427146877856580981480132824466768721361118933113066260235079755441679450022507580032538761465747298086450754534369669010112390893653394330781887126018570699914823428256672240127505116147684672433579237868484739438065122434678315058563297474790105151531079981515856219204424490592589185165612142373681593639465598707530445492659285752095983233472458459145536877766376479330393331982634348367998792549806531174211434073481032013401270506255193599336882965353573980735231499262315655853169620281220632388780772574700127051486381280644506322930380452894056165765611103705500493281508622422673970146590983306020750244712727647675951023091894362042530867110113570348602071643149664992791754363573086612975612189583931096780690820770329831460377377552778542655531085944910097268426851880041055892661769596123178021831973575036193411093258976506813508395537971144024237325779823302240517841335917626470297433902962509163981030885681889514914071932959269020594552195696195672145334612580826136864105564820622670904503194430489344220189909988091939137868438964890544542101028066135532598854725751977574588066025964101663308183137297030778571152400500347814700462693648895233896206269761055317260356778928428410280798811252768129230093967243460372819917349937633152597912200357536925049920266107252922067591768343716589266311148997750098390037351299983247444536091367024928625553643688663005970951267603324508753811530971527427007272158735298398540602721557344455754716359121684723835299445377012710953080399205664394748603559154621251582408266963124489399131281270399149370109551093465480698741464521293426676361538353557488392566409459363577347614006660867658055680316496587621876631988004280519348223156873787013733053164392536476261219926519201469868478454245244493558575859140101392534514583757835009440278146405704468891048902112907649448675346620198732541459847476185954258423009451271138375666573442023475539783911887753848224083253591424467891948323126736442904813402498400663604679639015203457403997263031856233359028614984554644713963219837272644650563576864373779908433871124307120252075102067417294086267808299154327469668336392046086012409645614526158815347481188565970673839606527839214130078082688865598608102987377151532989009025976747278774231396641420114790065050411237187647535029281610418157670972617247877773136139093770536101831163733911582425369740387777698105526145449898340670656645396334348976389807730974289573926067604519647901185393022759192765718952900951251303618376677478577122372943675761848335046841422274849799670626139507282714776042811996742624491818868613457049430409529611095982523343620086155158966402356187118543745433439735316682818481491801717701525706928618867988585731695525958915720322898686383525766473413917891754122347123847312775144163014002141751578275423871540693785146467133823040687400240073860872631509507375976203719751908215166648337733788222576676454532742744999489258959855492559889390636448850306493195846044046724464330330590938554354966419295550467866823695575285237153101110973765864680841269487097978111179250990190057868811936364831869013065755299086299674713119292772649832183701772700726746002589651378998652461623588314161994241458733127502400013237708315051900622522887358159571563167769105370597403610869202871722808466775284385715775721752967504459830873673079672728547730259539999518103362204471458698641811165111211180146086860619232949621178660824989312119159465198724257770725808685632315900447875863807097646278527026141834408221180596763999897225627429409383098266100564163342796014772056866811291687171407105890913712093355443462711440876312315329672980912776495183287418727554719330937960923636994228243085028352434477935721645921141494893299293326770016004205229302372283927653011768277585241291162356369208108344228845978373288486084450713586062788702864419674272205036327908487107925052196404318806244960015143725411950062238289780113011795154442143680975877599562231779209056084314012183776060395223278703802113675127025229750425649413817284786599321917806250957365851386107374557018525676297115012269363820196680320991172601901655221603265015505281093419797313645283944950329387786024823718462447655394592721442576359456063809959636947233693708978011263263012627670288229395819142115938328534920722359818755396588215862198978072248473890763556041371782276827260807603248731092360755980061687386990877297466341906200259327314636636634541189212747322061563590117832505047016946801649097338710874973899477307132355099831495303372295585751169752993407775707235978490449792425576399397989461786429329063956010187743480149756135035263784097881610526631170673390954545768286599583252265683955164054920674948161309251013644238581136665882528862663850167864763374937421913075624280464653036818185284195526387952636232332091397971710999312848933791699032812080635442481161989546020502708520237152323497861167021947335093734940093884592977894635494489113325420816108869486377792817451035327326154135111514450717807466000395943962192349614286872950754353022547639864027519205035650427177729726382891696093076256256261311754358894041609977526437174962501125294157384885234972777177652271222927490941535345080791735825604431092002683923238962018731305099943469081850004508046476060018135660943868555631597737061126272684490752202243438400249415258182578374174823732770376910308147320998479436064415624902066760999886197941580088481864705941068624105290552912169679126714034880110606186118947698925350607798767630326415184927665285356201122706737783638920346365960969929839988304916723176931977624943562462016996293420303647713391173245679773542279171212602999615199991672878712704750101798199555070892801203078501880311350953073880103820631302852588299458751295735677612214715642134356946952698532525173322828995767561709700294863972809682973651419314104117664396087324536075748127051852331874768019034894841537569831810087999763082160425713106623718962005313474264170361392261458274920990607315945660640537835308351488353665028494328670941997810838064839258593241455959056167501913635829601743685942176085375819178765819687814472351833691909265292278543909059519190952872671946197563340267444687472159006531432482221682310686402374422232596740149291526658362297319986561650324470938116458396154441944966728991316467303476902719723307759008364014693346655196294713131285791880425252404534522272406394598146201649125302448925837932439878305875447002152867994250673211923270288683050146363075220105939580824093394669134344358697280360537859337525612594434469546880291502655582070553270287375759211537491377873064482238198110462933643867597760243743498524680006254392689766695003888971166729363416237567252843461646367005638487399654775499815755727274346360439367764385646257166206944193593734933312314440974464235534156564320357335873594687204589613219011687403020389711580080064187089182934941889133289845139745424295219680282729998038851638645960572201178939858226102731593930164284464178173971936447330230757017782399848920371777459671009667130107874268711025956544709255490276659888437729436112226632880648601570054999156950040849163803610017844223298613039973496239736371016219856555366838376542943142604080800959709127318297094543478285825583666001909168461071693741638894075203768831370116876816785720111087467531713521740940086504915162077289418500006098827966096225692084893873128506874600341906779142273601130252674397889934911296018128088418464254149941635172451897509777603372945315640134680618686133740860465121443928483955038594237874323039847827929705399246695201610916122677686354832806640770642159342617603631616139965373963245690027386140468555788472574907845431307533081626212482648920449235820348466959829740812636179319056279684064806780205618972974907852836077043308489442064330514008869981556927974299117601596241791985786914999253497334935176656623990831549531386564045192390887650984268428490899934864089423492852655140468133323980077400893691602474246940755206696550801270567384881296415303038119246506846822085610203470468130643154757390121489569892203550427118864019781222618900742613522291676339626337827542455725291905814331183638208648468171899191941807594781673000374936654694632567525016003199351730215329587763094262410598475552644098472010571166124975657635890721207426529467930442748941815897414535458857320084160453513226517733366624443594824783911851619495065279307632071229196972878728077397107119514418228854183979030111287845108551302985464729714289535802900856389043455346175095445722996677422248437096091801561859166378148921149645461872615604614096468399822366544415512241611347622230444944080431114152067211450369363889421644728489265360968789464985495082073255393300168065824302846580934062092434476336207150241943596478646859823147233106575893881060740694444352792345395692479232845679468720567365504159592409021888950146792715907756665360966588181689899142097686595043907201061454603366730492377483259076687531397741186197115335527125928679124374632286197865308186950997306239034049070337051393657155251492247130083242525817891594751582121076145365001984775663089105600570197402227122536502419018554840903604906857279957621403357694898793480641945023528899637133125247780102824729350056683420282737050714695759394597043646186337618833129325300362171489638668406466449648435799986302243676865328299965297691837363402414828728105754713966173919518565683364055407368109185167575860903101492283819270347600448338394295089902888246475637497995570155341939956595740400776679301884672497765824706141666146912150565246530070020513894425905294758614125644980766692492294809196273786055470248489935751068289505644949474617336090215817385868817565176361339623164198411089435216611813419078293983626684091862820946082429587793479101911216991539012846766920265577725495794726406774648822849459016781117278860267200572883379229141876345145520843506039366809128514751429651087351289780218425614413661941169612395270579482060588131144962050939076063500588355062602996734412109559069909188129491504193414878359171622378835534263669376785221339701301120732428261161501381707060020893916216167630827911897155675964750888421411320560425470561827002148493812434305559283664348896251876562486775645307150444571546781607632124187589873083589227439154637188418090362485383313916446953664436640945852928721123620588056488160139260109345395853162947569015193195129014241979657955796797791194067983730311204986435088213517949156078527611857912469927176505235146136632402699191242635477831402655787089370997672418217162727553816849404389533004162724682338760079242155317993505504423691680126525068847356990958891702373985820104488949123086598904762602076497040754444906477576023839056883622844690806993721870680212814919921794934333625090005220011710068399115979326956041612755847789428567138822809207779923393013445586221434778880078103616031463669172236875443617038903197985367167817075176083975762755275770905417939105063458091820620129675929149047073857973311232042256279311904585638683778276292620378484550271344581659389417422346863218553150815322487049798208060818158533745171282143421059147375413628777154157032770870113492135968889910202405192817528248936773639085179538313792485828513097677874482639322914639682065999484055435093299437660701576813774191428789057395452630350653826181728364683552581347115326638341761002402795947759648261226297914554157248923244669291941203558066344961688480532290158737830618437975614696306712584857156886251390253194049919630270391504010306080371965930139111410403559562623150260369943843311537947556008548312055926553115204203659258336132873963844414228757540179034119872772430520896480525506160772889027163912514172154198624158792943951265814838038947309704612192039196598712741282906253319686138450896107463041896697473717041013598561319593020694109801274523992007097980210367906818228381980516824938954229561151686015434029379806082163684043187899198728674362344367938750321482197450659905781225730838596644360856829368652168490389706641212137882011232184958353370741527285527381101331439959405707972770341119222806862525858038197790213580995265491067578721571011490426263279969246916598135222101096015018119093071598398429321430455977557477115815697990892061655540443921084798008300906873133413750371310763664728567961229455042794562659925649067124614689788472713945283067254516912467504035837079635087688920196174304177806545442732641353427676959258024444127171874536570745898504271383509618515902991087156840540500421472592277225933925475815619158115273488624589083104310124481469121189360809711141244492962060297645179698391278440383483125105939745662070319855480017759881798418173954477119076994319486597103108222378400910194074880922227848636818074792102441699887059665059524316631569334246550222976809095420441394996770522934407945619224558344056534136904874721559567807147671202267064599797682651888071380797634929023093138013387726695882916724215324891383242682044792872672051240686718628245699845417914359093307956035537422815063174670625388003218348076762543181793985563995124348702292778052628400035750575111804971394141347761770767815091680564283047843476131991233724845891252256602512618994610984821066362845749937427644948206065378254833347588956618163316773336890439194892678594539673193353054447149276496977293375305307210239903898390441317196465752336150998946845561591570539291078859661835375156815908843788216518022049830698793532028078339328253207245652466924393671231606104511315617988707980408730715591226038583474457167872953411307915799696270097089877418577927923936394520247095920492656647580615606385594674834887952515223535235747982817533000216379283166200895276426443306194693732079320967827499708597121070992557512730845291196521873524194721802332354147537901019808408598265950131046649367016402638844289771181655921903294232136720872048235928764704366821236773030903890425123216065533196560808889639272684232849850819586916123645550881804845078286716398490365213694413939625638353234481046065281197994947867647105505642574738726099311333179186912560617913480785066355529633561755752280658509378901050679189974934395783761452893563872182817383630357747928999344984412755729345906372570420941537145563609914603249266876582741492719361157317162507432611896089167285430363538500087744351881172048863757309718825015437013837058034745779001929345556805229613020115757961752917040487898685453821484551128515407950914370291453683522193318972181392913755402155427610062301151892985902457995173964906199131154125496351473072464467886111984254398685794318988337255757648550520312224530320265555252201115235728772271432202185987224308899800745416830645528024588524864636762469512390360268901935692235060097862153881255607387109640666585358537585867066850778917284618770559078909217278630245611209388325807128093722901248275667906619724387845652890500820843381591341846093800852912582936285603425774089528718392691849272340913797205913570340737341517411707903916267954026111075976269607846927356620837046709554977662645291898894401139733870775191527105314539885384961930206560862156979193608207824992734640243204674415199998846210773856159550387597947454978918219397936176026140843228521924944539229299724404532279034324164180017989876930476307964856402377043438350317769868214126030792254844378645653565510708881488789650445866307738374516776270818446041308320678743144312418856193723439787638350740246121238921068320481153929733349076343490571426734552195784956170589848379146092975083569044456659905117851306584298861797442980109333202861831628240608949054482020368011646367854729906240908735174710684882977531146039813796815465347439853338945383412961037409274960170373712813179023359896923883704201784436380064793450281599309990954306729117359878160795154380609419900373301984434974618728297972741681917144574938982650038778361629121364762803473916849571791806037380593959814037025821997263962398476779087464909743432791821847457605376242798148236663541068045630325370531278140900854389074676145243826248837762912670706308659119893720509165718932427737972289407663020322789284350612392416549689185458511904420668860189851392071640986533691399602777835870840673139704567187357540795433460178849060900472656724746928559271343840086447645389239213689051853986589388224426218983590607812327867962064621157347140359034213009401280311161121636450781093047081237105372551921478570103471052628675320861580653369655943255523459322264985176182798151959812872557534440113494651608620521048589542758762146597487982674382051625647512489133555600583920715642646599480385469268966438023541597022963808414377124026592928359869984898953795149403229088998131524765791384730135275283129875416823301004355579943390788776279264065203621109737905279807489894844620039209192456380198842278548745817496547342555313329411262055248194790571707965277097514535574952633262075233638149402608991824360111044216465652991112211542930118535611628264113992155830779155055414222958209003774478249113439237849988736826220529030702017786457988555703330725659397529592929452190641371214082534922531294569475317679452595173595571998037267520030861207982065125708123425535010878163865768791731487735180738098781591599372464424798837317161203125920683741255230925021213906582662021540408446331305533661812150537608648039073442154940302379537007524285441063948218109653429520043099698520046585862412484323627974652608293688216972862255656572056063087321724625181612278231813599723716287191609168624720634376781991507260099646037138488721949454173175199853346539263548807385027696155215149355576653829425061079047731032482820486977526241339202503786725086670092706711679308216663439362952059084919772669881962595064414626768504851164872270241929058940903631657594139545380712021232179636102931628109212381535293853102453151931579319475843918911050577582153260821450555854708918442511293596851950245082002489406060197201905888341821049414312568333957972578289840012385376104889003497312735001870533006636134186169955161681479054028415477551062809117811155901369836778413692768170687829548710355041069944510984019297973650518915088685252029025500696907157870447786602999699074138085836264840337298323664253911258306525781906388599032954406036221499394103923463797549514128849561062587647973391086737575449255759639129178502789421369063921160243458554750450937476699369363369014845814006765569677724415038028460902452879200476406506177820108053215744061783842442042690074855340248090088174477809831693564467921444167040150409252834265613235365612586402575001014174081510937198240747501829299608283670531057139499238531123746838754285103040852841557700423369712859165600017651689926614437035568284394386154500852010311758901225141604547257535841243230487279631572597755109852344297619530935394539659072897802341422978872524982091678739396824571313697894212445741966644129439464671105216051728123353835822312776279110053218333472887097715688015965730880199387034146958330953629315428164771001228875859229864417724101556508703271111181614898139193975297924819637205223792044986013568260508922313957739374407884314379650956130148119957292956319440788810554801744406446607241411599369725701302605516033464332643765758522051352954666843889237461365025416098931256003019779603268217305049938084706599097454541103674665074351857423354643246125998418302949449596306727547210661734511475974147910293742204777467020599022058212783544041825406311338933001892443656966011005288447577321918204669454447761289139982607116222105083580118739318904981805831343566187135619882858554196569374597385579648406491567995276906172126087167691992480668700327993137598473489219954569580318504854532374033188030496502235648688583011034428204397564056036782976852991157888985009202581346150343144628464022204305140487072883007246525211037019728551115292085110184962995626889326601538781235762890517886853489431562476757871456150156082484731831672574162773049426422508539635189542007153152799633446764932291390158325397539444584936683575929684098858717029162760209238301392058737904912888452660542560272452638372008827876061024291265338188074820653700454389780684601952048312693884674343673834969501284371665423007742183025381300754770508848619992114353082658857083436401108289813772953381335221977407940899188193510508025689777707644406524315672071332702530028753324693447914233858743632927653272995631219606903462592645540685246691830146415191143859534083280715044389217774231026961258178967458107998556630893159119876477609471357253722646453633272599345194052117883474711337556751731091598885362676609869814210066245427358011382029649540727290791305990875270940146693539724648822457250502029379991940877697727844583665940786234395342667611962903855815010477258908219115827271635800210557918424643391137381844708446038270631546833527854035690053733747410466469204762890129566565508684760081146138853713719318433716618351708302997394178948453444198992672895961456138644489957150179968374738897937880051908380920373820977312031553524304616901026915332632848179213338930470410208516185126736902418823169303930008593912359809574254762299433387976374655918142478788765274488029895888848606500915469375575903585444659411140962572107175274683304128837803479603922805416856028323947346576596928360850316871768284592613860876497888524833678506494917406570075354859483397446345729705404736195670124158147237031287865744033364447615215550281651988670760794436264874798232322953199463476557922825304919004332243439897802634387647538248892764387807140113330731562471949524465894548265969420696376127908685260581809944228931340202080717128618725879672125349073999803666279095279651245232209455851552645949762290003421606494674872326896814448574141320423350293095441505907496944585959386733473408299900211739554111201529308944771399694578513264032264480862353054998254183771018366090050206511191494925129168581765428379983654404000184958670414690048149340520996636755654157652163180475870845114445652812904023448562092257103877012840417909243276293685205662913306976397168207217735156649864809405385649239073189225596000410847789900197522177617943901432860560886701714291004143279887104342984218062706832064108296113713193026646583207741862251109777050005260704396777567737623078709277787733916849617010067801566079027669587992342123648411087437439447658990493487275559633553455585032577036027969908810754397615475640426005266707394209580780516038569670734285823386337875082230217035047072646717939847931703864360712920102103646262674738780129038994039429460076486451233336368420543133230383573802157562504918977647084364796473786445064582205362665347712971281106261545347964248682652916934749343684130295741610314729520655560851758243058445890019729685428698377028599466854360035393872128947448503001962077972795091970852517331572807462105054949285870560557975686491572803436369153891234083691641995808238741179656624698426551345044379968570834333510952794915061311549690368135764839690440474361593906436336612544336295337059916021943457843502418709632751166637741351840942767689970924538061839377309930405415597678193055191915823766577085699716509075365587336192108869017883248164984158159183757100806824444857690612524549283325997242647506906373096679672146771012484950481540942932341482683803772319660244288025203925951439053008529038075133742345664089935597115046216558362265034167807300795705018734028744686658913959124022105480202274449130169290278158795744241150839211727937808018332655486712340241432256004110171934653333971869772862568284154850093971813485241255704633563588688466036716567480551810415370372391345016689735715000411867989255555247471139682030798168899414805724786320332069720489962056552200264411924972621552944887232390431517741043598348329909282851503202188146307128367264569603561233411421996354561111143308484450828277213086534161299814639890277197462202578757937516061843509986561097295020203542253835094963295964431200628579977226944078877661778471909609637283722555464615425275282546064507112451668650869560279931608800580533871195321314309128305976017470307439248409038638860445305274234642362232156287440261961391069511754652837959362262986208739998598923825440886605132192037620238509622365583477677666041651146300798372350601664608541781125852326960081996580815281492059717385223112508722009529962101414132856555984590750077830790352752135174782447400249704170898603952049135106575067242080411689971160319659672446018769962414342517077370678651406514363862698611500788257469676836734561960035179749526483073257815674996666746090307228199246670488529597312713873239362034792822894764264235080466801997253801588856513250584861666345933566973543335255269063624594585616814981536131603137083290273834685785294731975005296614568744443962834985925928179998322017633791069048707085027079023411408963142316310893110697533031827346068309585934527544913067214216470609055160681821652405420987682141333381658543067092979726046793140777218373278560928665689914118917110070461070752723365404034122516785829478793984652062664560746499275667044671532528144845044272456176855170162207528723419900019159953303550904166719451105722362973337510789347968866108054312841405803250149959602192864804727826444570824629310619634717958155170775946217953541223245492880967889241676672206575621355319725416857191675165482293639522114058280831588201237146867217979798194210952694587311964197377834395886616567692813227934476171808751001966044672272480453236206379939651426999933905165043552674009637068609715598649002424101231278323564314737945695320360004554430797747405172633098576315699305338117371229094864160004837140009663113736905512282282840641193574771391972268231550403456405700917147223041411245040030575616608285242315518791251663938752862384131051038641289519310050271888373383094198701665436975337432737147284750399386683427584209154112463407849587131674984631636490247387397539735553898245811356305232865973234851045848352855608576691917593493498790793542579913381126934035153165809853702818406620783895555433327445581366950576254378781000850037623067736795655819449759949678396473889418213676481268754336086859684598126620137126819089583486755592906589715164515220996556752624549931142465187786318421701094365237393442624437208519263065822760655094983702969654408874200136182424753242482908013310879542744639784995533443361900984707442596919278017387071661974776368664683285648635557530511775000011016152180140944831549700079311018535402581871123180616616751456655827441408791488795088054241069374521151818841439201334603794326442217791306145681752222323491103314144007118737446197734857874377956017713454515531422533396057534276971994765001639334904034954257348494833382728924403548233657854850067257817280753796253735643083813659707877682138077083731807392014756808144489887711894781318317801925326330579226037098004522315520223131714070378770239977040041130913914383118876189080351750230309773077064135979511710954938851364768091211274749609757916395907109788471046468002459948221573602514521789696258391790469571542987672548696865558054551313962372340566262119035775753933223315834929448576925740974755211477204240645694576522379537593235614767071589972239827584631876432362604423328376847217226416915625225933887997174331946727968358458193020563462942175417928443110539660891061770997981373407631949647093139116699020355332616854538586045813481259957240507638281739584128204103210119568408333882682164000247791712395189629289141561469563019347351376509861415826577676271020682919249523131622849462916172963966663333986432608439741627215394479357122594995924014733820896590776008249153542202343161893757370650683638468418716338575072644194303337068431990334363967324167096054350642024967594879338025767717804981192959522738065626951754197640698508527051239235077422885005419903571449034194107612403965045568988824176011416252275159274766703140279353261103699733825823070600795723686621311919244940418289075925592397599382762891655966980064254550993798190115987552220777386190729934425482737049628119462838965947322110816041935364173017049924523418855691751120492415497889152207801600371325401473677797842531626568966168841206948416406206077046601099594568297973287239834642952279702965435050590853999588986619585157165801821506259860920361598338332478262720703449202207433003918895079953058936672556555683004162032131465253377281860247776366724803492717441601683825339157357171824219302683880722751964963504727726792470167975809887334764670544326216100462475525595562656892561965917091638929948062264589603798931075320077502073806577380180342371762995951895983302441123099699250787744607796408562567514453201149679795763735646250761099791491477142991792020901436791105757827982430003099852003304707971389051936676903271211466025101917151689425000831134929255143765306098468342672937506447160160936546968375601500851246345481202066645495795421603231053613479050508307154158271505492106827068077924058836004852723258663825473583677788901356612932498083104166759978349011844829439541303444429268241722568159523662054109441029218436141534623856572422453832732615557725866306490650792323209383718608405661971939455462002657299658916607604776365573942195594596605370808540016122583260982108394428581029369770148104513338494165999876435366466563739582721776298552572853097050390762637856614660246000890197470630983464730953016970679143294198174009203035774805471563215195583855970567549754923335120214322850112011013421222131012427296084832241717057917597607272350896788635949169243679101231337158786421137707856315913165680975434004651169407743200948672379095037942592784543759131604181892697077844115776507011148032156815329415092114874456847786596109585074841893287601797792991967354023056304699603894442828377882741836378636618430240094072976476529138145350518359974585407587660118860122578196128904140268076700389968151729404878284212539804646363856485455785566293994429727056580653213161667706828216698098258032639741812383492168314552676585976649769600756213506253953772524609987784830076384031379672057414242696470875124644296566613048895836839501705291950730942058216522010803049309787874368632470396264846637172183542255590728450654175259087409968004889414660562549764400864595039017939515753558966887486982704132623197942251313466166283358537450772480636862118549977724729295874029182986961339815151516417074365628412406344069765661507785144228587700307004894382981987375356048951702746825226264179699483175789198637447944944268805211308983856546383047514214977479482195397808716067514612735199333003435365055875303692537350964684231942882939501312757665640833815156341914540730141156479676101241851816671742009659374124203698090993196301081103476031722686872095236085623795820042441169602226922793106895412050064969978246726194896541557550555945296237103487859368225202513112966498954164309077700962802313568219928302894542650710937199310839089326380222340147786786578192471142427168043422653191452077137907183938255223667889392551005765697565018122304549990133013918480449490484309961138549118105802110794131009290890475145412478746781710205585166097021444139048455328646025411782849746087508699575878363446303763876351797809015008287455605451392268765916915432371663227502862167499828866712703285154106871539617872922924669234042995674856817270648210192279061394821762454835644536137734018388623467052991855573321052758371966276960937174276932649549428814508112218431507437475306571808122195110937168558988143744710213605262010308775690505605876112320186411880544543434547796967212678622290873671515508244831559881285814853632874522891294845737970621339315894739161163564796360506450391316468867110853909264820767132235547935280410826802763535909373223933321762081136380745630706704952539992310494879357321408780872465655076521450566500285549475659063580287764169946006972930033368158920480836456779354733063526321149429100184929972466520274794637891537289653854882833305733119696468591620344956999838367984366013154742511302644124896313790976230261732455011576097835323736414109118950278072411522069341325638538656955872127972196174882149741907609394259745370400717225033340975170744095443607174813372303941515640168941720252953322100293537350243653935734636244343600589111825458314490395279842664900586442056873052114833565269178029902907653307732580580919067126200990518779084605902954141326758970879906909718289090790144540852513442584424741166989103818653448929000887871060601091615791492195268577837160749674696218195947524090138366393339242501321998363825857877176111880289541808591386556352741018429916370688545812083134527706044802849601837619528577918731162258959561282758008963127888818817831060459253104470360941575405634969633679676494796649658984139644128578703621224935394644279163532765620095320725424073746751327682888158312335157614203755061541635043119730660879561813781209172166716725246714496517173416478752137111237826546715264864373272279302090831264410421234343414950962257080740619782474695764965528459833535748419679142101797815300411402243117706910761976749007250434282373013913592138086024175775270895591381494302381914027005678449212357870891252490124752306992339293128953967257389172319644907367536704453643984292662379982105077504008991823233939096042750052851471279104871253607433564933369553969699375559808320508361538161490402115057851523620273710147399029349626407774864565760585183854694616624452305842773783396203139356938769855161959332444483564879244054315389803227158978538901727373414185012867693071924159243462522347520919556226857965372381158967002058336006364319910015304006365633490357126003339482078472239879721330829735365387397692335526220157386466846977848735145199577643068121094997742931274064479543874207772859167261874520076069128049343227290354313970894053865872359041013313064515879406583709919963621672121444171725003273950631815877621495980099244029972271186268648657808620050199080895987237682390690042068011255849173080952208291101300159081963260171940578143206611430647318884047320341818239626103375313066462727054932547331862009593938883516590493247377984664224471181405957637520340971676337155387327269027608286820088714373226496126965044269640354907419526226629497523802922744357780131089967680735217941723369966766920409365332273674978057125618042950089615059307610993469836308046875235627892138917330981111918799654299964542413627485064397859407332983784491582811811236348527735267451603533516516802744969345523767864240521973864290394696885582323891537690514227096305958157524941690827644163819914718187419891987108553854250035485312287905351068849611502838847322045762569159250031766374712116639618016821794426005081825097866768578318720878761342789601721999901366026954355885862683961894651513315687300913262277446820180782340770619749602240725276628712934293409372404418662469103476652105039780002371809750209457963706461897319212499959612291942254393638276799558043651727919381027525039730054771949372719741162908380308205885466385915664109972785639349208553987346209574035823767571595901484693201445932376231851078573943853143809893388570686248182082061642898263199424930179036014637572669121284323659167003833163685482385853606793460581190313480967059776752792477319735369321686421761032255701709315216995284553307077451317220507254253639070809576994345691820315614464766164570230507537538486600434209874645298238416253496072317120729226883190401873563987338097955191715467119667362579059523590578144700997489767191840942118114791228305510877407698209777546085822035671902758726421479509248337833477389120996679993027794529808219329812664937055934109575538218890283583321185358970901426908209028633307802584300185998975457632496200825525610578484231182810366325814315240734381703354692287694422775637411208695155039360805235542878533748093731663413292178527585207874804387762697319696451395947683120399724819049436504319932615052501236956428495432317007598756025421064768027351211982936227605092717486258673726788532961856163631266647383207795136695582498334818583118381877149663168678204823698816644659064433967062580560323280116159869867065685145114913322170391670352885280661868556494816223815666976345705973887479419225651113397320876137775995370691159615159639610853367301635686080674607815145170142831733478531466025155053513986642764263808690358976799164104682837953598553255275313785274930284784456710446598490449994206197497834389356773167849706394265722245589932130642719609559089241439946428689459215128313654721695727512728008143607331718097351757893532464341634126671691338760267937590294193075328530708618725186003878611577189690924654862852612920920966085446254214099540788205667596806340241202940330471549904286396508274890657872030021825369555447004916564314068424655970517741255717076819987988736937566865645526834276496705677241388174604568540126737416741092050817672546150124417439687704462736933854492272071983382947498230809078659737702376190277636737451190005447451621948150550673995686380787041184774776817596872073268442468324220434583496915701498895478207986828508995270165754032081667884073750193326404797880131095997720204063016445288247318057464110078208990811566833168743656039589564362267820613936181794743772059994405723833085577680647872513562920504069784066896920046578472581861372308402696647042042668418180053246030530207145287224516248769613357829773993321906056503641073331816870104234483538588604561849712833874601359154866051142773367301569684402621618690043773931883449665116274162740072499507322144692960909188881822629619812226951961361702608150755756453929446476978703345961025481797279965568246504898580736163641035893216791246622196077781541929708428389116604158476376226959517654051924305370296171737609073805999346741401486339291874088663478471471199227944481947152055371678346772350667538863247178935534070226764148249920172511958962639197194540784654659696267759054168723797265590897513984071938849533078033693864829181782643435325256348920808333719400725366073628234940370187636359050692939380601262874475379829103004416026668907134553296696924380334136611962621400943799147472646627582773898110031685672292260480337214727258177865467508292556487462974284147223998823739153334138536834309932425362868376974450757583622621387011433832208206748747788068152704916784274451941456578567386007357764551106140452233548143821828923234089337479743635610044848663937550741392865562056535855004589998425251191750004231660040506894569718345042636401898181203075776481279184389736794392073764702498939606809310844069428815863317616763625053067752089817501520551775140670587104447803732754381587207076237199060658767210234104879456104741270360122935153438831441643516125878363413016356186816011756517933843797051776903898975039369894309429675071380673092249263966631143928576260289755221263068826572985817072405613985981429225048329030347214859222938014084460353630277892285977030370107824078554676190084100198336193729820563852967381670968025936605888086738333828172705844435556324478365487254306713993412501531045125123432288548271894576571704482537367642260498827209422013832924744803602969446306393970732276852088794535512537426916336713914680709041293714777413860557831382187663171320448718931190523288024364531672596384797452893094986187896628011371632821302412498608325345633327828647339999605329662675071418934029409008256340356779542711725443152953280885508070014153415326170544305482888713595425050440679817274457195639342527383894913577692730670375143037903724760545562649650024637569248717341115975614120655224265242208893858468689206276955460409132919691816140395610035775536690265454163348347977770590255418972436815196303557722922510537016370563748657366624456788038494732149255410782351593153972113959022793800028033700933475423423275317795208038289895573947452533944799725158653570676036462457806638164066204578387983442875487922519115195968083267439830070426181531583857666425237442620274515725588980451456030989933123802716417448875410940079701648496424413281941956739301352389835016430041470739310136245823442804968189899671723768489344084119509230380992469832840830018513473415411568680310080336516121011223402986568482738931192551019018296823428140061023182806946751009413797726865784046476791145296384160487178460920713869602741953530327370013986286816670514082021739069403798550607890082077237998220215010745346047208159514753997070576534454442001561781772226286875612447333093276047254156028432235431024927389773591070272043280122968097858357818044361862442610571468775163559289162626047550722870047555079685946379003108675074101391948639993314030182098201537695360633194181155514466058004428971603426981224901938359729439571550472146940482543103334550829056323905349639113379379497049652007405051742889022278727242993477270932623927576190545642718889072909030495726874704528595368695273755888245595336417076912206162708162885560101537476032698882854815826790517746276564123027313363794484766398499440721788904699705842892693894324469840808623303310475374058620802639494687804824881306436360936219244016906122608528200672904202836829474147677882694620856673270742752917770492757502193735236585987082302969425261771960925260854513480569854086907914738684299056451456520667003881682969737880294442899526356159522223186810184996965248935567514354778438354378734862316594626318314698805035517459425133768390727027520993581341594899946966904671209353020537546175785431973616246938140990085004221700979215083617039766847423465906083104093026823324779669456172574087103540430607709209079591837248754456833330019815061044690718387861699046489071834895744982790702159666439731007167025032717813037028223437327052866704804019156803047068171795272158113268034489083084609948936023759753538226131281445846905602856360913781276965379615571356494008747168601864360182574586028963139916514261970649265090299135511310122766256976884521987798292867235043864675714929535424592116003845833740380471959725657863593876567640624014478844361609470169926428084891064962419723765710305351315623546149633732945562758264596083144492664445082038884983700221169900154875631715357626226515400722393580153998932058641992579771629208255188894569771376743016211488251033707415085693372222579906447499195145873707063011121709626294471145359255691044717827599568094465019791516733807128508534253656860739411571990215985735389478958141396493876960583430507801899952205743887101771846110918181428763456793614459834351240278954871897474162778332836017202473309198235787385542950290968134806721100690255863057448892364428892597729973648306838353143556108361879341008357114058017552228063230183130642659611131213158654691592023856814195224847100162750815826389599127672969592138443231798234502533148408342469275258108782787528817276608325871968803105416526320843222779282070852539321861740900424736957935915597494705119998827970505353771103246151051810736789716612166071802843294887824306915619464297359717771665265304498837393658225588601683729177762974100776820191951834545124224556705882941088387238186379916136636073895041174254011795768111346419560199430403394118398022858996160470385304546515421356500169936191204395784432973008958689523178473367477718625932949795020306507855818099681806620563205451147106719704038538394577973917464420097451125657526971316963358022629337770965470082264262267031720699539743862895907778255598072098196355992481521265681006567588104309354968663368195830062385633703294764566458542091153568017406090757728822641413103785513856883763074179921008496959401673587828261963307936909432902734029913054078266182997063961262910283644782253391775821668076032146977903497100461089673840239991238598366997078398465735830477657187407121489755469710160635174333826522961139719589070253693489512692733509523856952300453729301968219715038652102557125693702000314056224104782161174107106569901799773564153703351825329384649679361875796599472109638080129734955499485814153947984142398127791741750957890606676676401337382195719515337151368705308509689674557767587714709062623740605628578715634041243954832356870356566720780144753515682041949147011203742079279312246217501825590562632011605284233577298340596094333329953527188697541209601579675265156494658749544830176806802893117709408734995115241089948994322807039824959400955396424548317468836782093328168067161465115085216146049977824779544149448214082962039776165940844519995744878310458859387403791280281544308829304313883948328777151641189492887762630295564265358670519717287422416308122845860984114785171143100881550711005358510125382142108974651848681527348623465984999818015587501056450312398688542192437570668029268938423273524793799802052570143857809781844965812961405096167570719327079471861550896893011791936681554828956630727897440008915239647013175256195730488698418580740712087183643624343695409194275502288955361386578364075034765424337369885730766674026911559122295408104985799198413964862546778883785966076959647473900724529322168293425328305224129903780598599165543775010150936137316822807218123776629714538810033519070405568827741232145056667347456752035069316358895078166890705592656784980365697438053380879573908512623667238936450167360403791731254559858835080505897217323915362467547101899392202014846406824239892035570984992498524361082440797090669293193813308916511574080157270416447490746289524407377282094084978701483606676991527928585819584224733950307978088989620578746092486453138539385452445498740913204703213972612238347460181628314588761828088585084406018715002103888202075625890194720867434625402957468046541609918815855340196543243526039409351014232978063137875708006693038042764249566000249507673060225323605244220923774314313899403050586676572849631898697277160542131849583336302167634974688053940402632055352535716318023608000136907117897068766342760769129766162412627511682753202356308068313318260236775259697658799139692297236067173213848770028750789711581278495532666487993897299267614455271721329056254806501992878783562449177671055146612084702554471399456286871241172204433724153584185420929872687060099086296389944530528755910508087491182339144330346761306525679859626425177081339495531434094438869790320091382600879701544339012360712311252817978388860345381464378015842744474019610379451087821303970744302241580658621116748173346978471871073853803860349563492846100470198573964814995526657765212709079357137753920992566761335715352594781836446095723057654066649367044858132415788135220510859508260144362943922401702058984843629008418495782615356348459511611494888647378076520742807541449673545619567415075976305926908172780574230728924381970294437085234508971342175879405347829147663465835018489690522964217021133712216799197576544435437016955033959324504391593464472861078555917999910953464491353085175113193652999079914043728542875903035757319086235372881680429045058725660487218615200234604103334622785323254968652199248032401421825533455649384199526851400647771320118011808043498501497089777149983756871010234823238093433606650556561035243309414703130763487496016125592510268658745903991780051359820345193401274830844933033004592730842247810695244993852924972821947117809139912538025657509550202413495315970803123248687581824398107113266826319065018266266519794775877643797985638038818189494056526643818503524367688178752529060518724629804396368797480713238399171351021060220420655883278378543009052823487783605712854373433414768408174874347104873487250452167660844817743303801665694288256283198997710542660040958796493141889980925745512510134091384473202316793882070049157140453232879514425959249702137609916936088079050205827222027761628768720183385970238652596260439486021010643804504699630116563133934818198155450840901618001460671781516153564603794800179415877110172751880811210615217059521399337300858196793908530291125985667934247900547329784331929234607995124978196077886911620195909977399434965002492285516043148710260012255825765430240836822592478909289412825339184002495782357667790310336440781560009289661879304130995971703666623419171593093176276745500724102245088958318381434527411978330423994205911429770000754576506948111851168362945692742870684827393866041346187741516574555555093294336509392804431511038552788722808211612973801534685902979972660521228873867591863759429574268207377501396073703572971553827407234370790882555959280129674094130510446200428355455494716884349049469506418366866230165887685192160731862907497247833683384648797978382569111113881127742601678477602959594156441459667980147572053437432810043581463220417387353361877169407334388025756295559242902923792092800206861574785731247420633135538179029102768007236830308965565653259620652964162835992922216480946081118199624943028313294086873342806669204023918226426148418795225479171065352763474166490674275567682777878422079102663878895430152337363047764461201044164427575106465659543557652615438486041289489094769412945956422777236411589167906824400919102505474776020893204221498825436855238794994651933238460832409447028547104337933047679857653772967663287148257294163419041549710401442303577130323388658623487272277047409846827587358624274838702159161790857479856517863900210418403025591642438738966075371725615290399679842768994477753293707845816297864933986379278658519600047567528123852027718027167805298917508768276712238276608332275661113853552484882657743089617151781367824477990196585617147205935206719015196318705989378899852238815930915620946976252702588988125141784782450608515406614226634203530210818142917931527554201696341672473000959272174374946411697048022863177552492123655903321086534751474483921273369804975934927070428613094225182754378482831158091751473370463471345938093801308455536806445646477699615411782109202502711060438631438980502289238892668706479196601837771360861756480208871101291587164674496932177179305950203102219333152395463676352607214372395024968484374001748878684841479178726435197868344795971761512065245068409289946238525449891991356990881287805339372326316873942133496666906872150408308856754209161939616330044174102327769729758476254400122999696516067971161711520987803685198923236137203886278588272754592533794649717556479867780482787017148744574546200606055641345453147812594876714200960395008157602815619708014933425529464530102098742716466764083357808835980543859204366829168344984208651196485317557272303232522548453686306972467250353228828469502022002124350360003250171784442345668537970504501798046092968609238566431593202893083567819164476521068360204822848859350287584724463985140468963403116901190235643577643541908476761819349231205456934878394367476660840526289218603854221468914334564900429381567628097253751957971576749973447055922289897065737533545097287088015271341838460468717154730698235534549010513824977685414943903029866832360192736708391526100994803411258537829166208102678317035638642238763548171319879501011624078804562517169490031286937002826043165782431222563786241604990640658794122909011473635893345283650299127960643700743418963648702787590771326990693766789948083254214837904997754039753334548251907947518535295610657527160763994961305780503227672917059978730751987709824633230728168416717761392036231283433341527130913332067168430759325515878940910204433379372376760648080793918640009722438016906407901927085730413269705560024848365290601964372939223960520571400408962564753682833152248835185654489904564697634117890033559305109815151335141296679326402992231464949509667749589122686220229430218525546139099496923238122428450778544875607651811068255908575581166654889956087853365043376750922017831467781805984171796299691554788362189329032115726595526111371856687997999349386009822366831626916312162810170560740184375461487769065245213395468618545938683409617892269761838198165598334731930523985900943192199829891591039254263837022895999721693565095213472885742321802699169687728527727077053819408760330391443398279877798635345343372832764448571167699276546598635732160301151995329845903014226192322840548992356196194018164555586227857838785412484732229012102680459274982133114489167598688777556966432254568691062837182629643818842383037508183939816748590250507822533558219561475776888081435181107647893543661309551562099911574663802571618410742480123928393855892459568219699141377865549519011010972697155541432319296534481417345835250605860823601332345729005699892051630108695591268539036679799146308213849924163549053619110576966010960808457880823190939821846177799047134960853589930651146875886221794312058240628207448382979469331261938479497053595095864850517543845910976587969091123012700096987416834689508984909722235373923547532939101382456152498331188640369915008627895042781278283716073174232700027498036981492218097245818279012664160951580953122862464203120416225869402114329475504120082534492483759955368294406201654112336153451896410352491952019336251245992645110497459785244608320537888300425846393987679773562697851295864063549174253553852128853385808139565758123590135842400495256126062637992364886903079455749423588367480956173930065859912816251385973583022430038185393266171071051945818605305230718257969526801235640305887559745770169726190173482450452656395566793847450000035232144784996286328800901573111456482140032512220008415618741445574148555301253560506309380683828746901251076194399654205674477952493748156219558278234389366891176697370125479310979375291512144178730431712073532366875122250278430264208505562968685598758730285301487435574109956844017088831451546557446639543974650794772754010471712420289694917174567619023384349607409527180634541476230113811186829920602062451266407624658199957394754491728579529087602805651542313261455924013764161484234862082865035799939183762594822969334817969257650348161740182417062452045785934739575516724775550543441625297102328524181788434114026629355811446387848139085710805779492333695455611666865682247218690968324460049553128368021272584819162854431219420762598084497342041178946049724096272258937293996033477532954729831221837874611325832081651309372090460527505757091033599841095497329968395645269508475250006404899758749813991885505156420740318621194505062170043476917669283038691037131654343479091071664464298264519756697700619203013688437375765338474200720873250552994567858477102495020097726971838940525770374558680161906053942682965527926513888222940060550290917973608659418496042995282165760658305363426227619913289412154131534860600782784594181235825907235496516322199396442709807265955781030324896152071188909045125900903414367280099067422810287653992548493104683279420929385004336546675396291352267792175840068626510049314279773663812926351725239548187459123659349949086689286471523482378436494555337209646643206298043470360252885688946820911998047839502631705865400177462280168574034802062862986811382113985877486290198692379455096273556026242873582992099042020268169203487584897089423052898869339876271682427311672409097806724040950826753085735678827066754693419103171639113593694208042439229968203731923573134441672159775142176084846310310735452031685987955907216744587346039680271881830442715792785593803277656775835402754769915410894332441985876336411876912124364749165184359181303355582403406166561853472628732314526353159971824961202171875036394592157956988798339949892759834305604160688151105724094195558311192670502899160640419725692442091172144135278972121836990628301216624255591833344329872155283121022213362904182531068760108385073261771746114682650930045057792537663366404473042156648982985568357617077095537465916767811008393106297219665939799027178668628697457894070642710891047793925789281512491265990883675499775813175823804675215233261303766980916913553703419147728479106418933159027960869142959276547743095876745735435146588254557698933300675987188533018888659578586082927646152285966333029822699663288266302226668560430279343189201485623739469439535000237501805562177617804599151430353810818387686081857878417607182350339587564359199680166196564241368162467240740404704718143817451843512320235157659079510378049692446477333280736746473304492889715091016489722172712313829822320403246126358305548043056185235244739799255009203588287522015383731766515811186589736166950924305718514044704539899520354215967692813161878024279181491987551127195353063254347829789976011289405092760888745169202119522617137336416485387548728036090630458634018105203553621539822901656262461861214621283901520270671323314625410967140967075743806480053282879317842583477464435137060619111528660971232130359274009655926046506906163694114378570726764893321184506631243264336451450991124647722287408457822208054576500294003346325938039154788301143349531125702251115758758106859183346191571791540323211473529041382365145888474636766109857347852634705310093033162066604887262855163510963906273271134895558994368795704042185430687772116272282944210945625816320052070085921309039165014266558442068122085821391810531240043069061174716212747897948465730582675360985424322791750882858588596908225656945728963199771785264688725838268406802251301211696535999642161783697930652532241732884584875719837218651647265391035447402011029168704711932755103790679964675404204374380423129072167340028129858370673188296991425067453908340316771857732435200443194717619636150410655650335367627102343391728502713287867944373890018157576322813121614588489126134136854058049687191218423284596169515617818056484683250743042538720303269142224851535606955091203229517229486848765875531330089509985322296739152050365933991983560103635722918454044574726499151700224090698183897998162688843617576932145981677649768462753762880978055528008259264602466822550375007731872341105701055752819490815616860627035686166181194411533083665177423592507356256411739691865790235765525154834084024683125528533883640664130444917253524789144352082207257445997715532107395093521488034076351025298549963355522027380250215047394505265626159457612721667639108986984974434642132253922730688552899626879089326407166984990184490065669870836436489340346482570277108351184382184346257226545691875150967777664144292280220708517325913375166835487257185997476077271017294477341756068741409364060243679906122761893527507161985518717140397894497803889811591354256304177469895790432164735186526245615630394694489800809215807737959140331410550024550760368945448412012341600226471960628825212444542719359567553085684154499401066654317541098999990129234922550098341104639890431637840733131061489174285727696443634996561658930023293297723782417996365282780854644330229469814476863296514203861560647544038656255663292973368633689306790073651416283114274347351341341213773803895670621450674335546243006343203029051042667007229459045114673012689013683696076852583719727731453517791222575720652360049798087988918087599994324837890174988660025035952248038710019003820582287530146973930167871842523147561687572126869529295070770300471820584838291968547928481915032451288536136059959826817944021853635163748217739944436937886383509508295491414011062758881393690355392501575240998376913905942434069950123744541900408799342529887343740275512021123597220936509431820776259254106384224904953407319755528874891557057576729557256339240521281498355457828493929920656997738015353997125980504461155193945133627744720147491600061351554938906677901606341303931558399442237796521972961918979194718436008758164080993099134173585836370535200805874528418437782574520710848661158890126881500714559211472688259063679263454282655205955618541329518045148717368022539370893836140550055005500915970630987421026435551483825135327270256666204177520973870204358271079084299674833186266772180369740905040181815490716290682520434274102173125392160406182772745444787656971494423877343543389118232526956359537245362268731639326505397964176236971217404337780511676457341788162050993253616865491306203574177711336791435986306598324702373130828483877077393827867928957633846354132326052697074906788359504588016128548359616328317620351939295619979947759424853438264794511247443334352927240185952583662251808690919125420985220978650831866048183853395665514265055899092030094637478768989140401099716489821110426142620505294085505617692850620202227663686028991708911908972198635694373026456976427565044578025354810085595425156799693614776220068415403016350995187245604176966343730310122479835351714725001961755742585256538107143051311822058690746822599122157975933849338673786755130175939940032212658898174413439471899707207256897135422889095258556061618042867794071191355737361573809983139171744115733726499433170559498583632836872435741092590378282744116331486369930464502484418813516694858714443520602467701281988901434381261470954281985703879814905327167296764598420440228081978548375008818594328462529770630223246213764508255377470122262010210405664383459552892258952588589270215308741852724878582302162914322382498962907108224366040911012107483581400658912707116793359521435043426277670256107163179291991902406811026736025802976009249467573669051849243760614138215925914888076696218927818871292123166543464878752633026326427335201593473186040268841259635320264689812305967446015733229791499802381285494728897157299511862781108986396899018290955833798012629303701291117382547621190060168981947408721063254148519553571576321786388823352946815270150223463843509454055727669449294896336778979088357631106505807205491122840739939269100748657974410499745648897719624260945059819977903208518241627917500058594358624074524262495603017606729853019168904630685241224445758313879228535899180610802454295121971289054949232946484520345921033752152029012072407556597055228269993601460785906981044985161424593558939075887603066121828184593911137247662133168542920320378177525405571083920606577417831181297230064023777379549915671540072304646882681335015112127845276083406118185044676501773566115298551021815264529167924484111364745890557990785943980753064608299437454202248660714388229327027273142763087144610371554998265603102872440296303226343785549229215846049422482817839094913920684086991007721263701237128332435590936268832356237010930782659635795712592631914142165776801882403662171530120417450977849789245449970966580834333551828624747935991987723324207157149749314913235542834893663071692947532760036313492364968584659008208693073640241145544428745568404763236167556609592457515388700758593605558213874350922075903664967684243667011416177311603195105983316706559719719084658291682472672059788622859778167283641717835146266687805829982599450200156323002380340822382109010913414894759922562469963124219697193019478261375452836546351888573715609380190081674931791508199038089093309263749414886783025306197478804406547551299040524235458006721310175933956823187664099579956093882127284452143956995066743216537580270935227068819960376693926849636859241354908583569052126206209085058707733029691522882028027522341031140830357596822540928169431058069360090825666699693442194823873441501218405102904209442991122917064385975208848427052528405455484907026048016369492670401806408321336295906062799154948406383712049305451211707202272194584337130940050739912420230215004875754369411883614170443060258922264993177583951075699278697473986799814062213426587023694817342461171102349628765864344829310008627480493883554300853423759164486381304495069383824171209517495032114930823790576027581446978180332281861037189564147575137175756743758768348593697039930148763229912922870482388304831190958244404278368954869983628541963445426903160574214395277290175885461178071537961579550021447358861125516684157422575439079102210298030203623184882808571514696714776535384740052960192345935186031046254633547567880174913562385236698840026636273899945198984336588492061394020690368519580016440718634096333181926920970565538811397938315310568035914452881744613676048211767789355596004339324006538545051667451412399962510376083939919133311404485621657219958391935787787760182501730671775364446955601512035915722632970922412926075668773549951931591711951746915255388481216337843708823604688034420915164811415581135991527470340814425428294539951086594519591320543911760511799668844557746499697968450769374021737919600596026005460587371544559624459003640841344553727801917566007451955775066476276356148443198755949091782063185274769224625809763269016925329510107971230232493426791115006602117996906277361441323348081519879885716325953142681167718007260420445826262309557337047914632321701930794396465654502288692148228176851773840576918090406569925378328118823383074576337809512192131328308351914290726062466384896487696205638452642886235567216001178961458318634392433019583136358850985517785118165165660202036056431555338425472322058786903597247305562918817000177195425009005502001114517295971734795484135205697978037142837870052712035717357426183400632586230333950257012434951360144531920762693901052875198122042098508511116170733030207786024624997868948659333517805148533256114150056052913925613859195654044550501188185220752689155954788387851545541932426318280111453467793473117536437045189427859191867290216202881273147941149843437331556529962588882634521637065079205131649690208399239457799896663470801418325218629351209676999568542069434647952426338695913258833789456766642355275241874745676626800377171965815246762430809715997248572037035115160474968085768604231714628880677990461184577000147121126563046732477577825737899050310473928552513714940994763717320813056127438644984862483861877043704028037493340837943996743329627425063678220540900938075986823037634822398641169564805833035501751603319820864358553456123205788988899156124079685393089620145213844560828208442192586532650018116900939286554495313864868253497569655870885244496144555082722828542077195533148151234620057778952392399967382263127203889949761414922963931352727770504450419910176169073460502581509599232796305390689945120453764495942243161755993661296409744802595189994511647281310766599002946722767591175536619141691623577611464804287350745156272810107520130656271459866349868402861085812062863934864017737701932582586307705848546663223531145879998829216632430698145875710769004351255016395738667944630779244646466783003748994859796629153534705684854319335430857318846584348997102419892352513705277040302319710730344098229693384288776319400044490916946235445209784923401179889263245543937821898195884081482912427549535423880037195453689229342448200425895484912536064267563309215932159748044774527394694389016436551457719185453821458642384855992569175826585343308837729508530519555176727388478843907517896190610625865511184402211400350071680151289261911909004477380497325855906356123536709141689228768375410508713528833287704737190809845332564228780863252252855849148609479445662615527866239369152906587611673454329269309477771490452813115181192517223502527450990171634727493194393658301077441949555850943529209002331254803949596332676325870106387929816564229796999810317109851960855616556660614566719041425588838602849453926468269252266212751135471092638557056747473396510391171427074000596829253348995077197046820596150622320793428577189667798520049643477704501186721340651758602459236029402996624387415758624139924727397300694921167606108711097487802639900929973243870606120359223643169063904851548661981309135416429646268851717063261469466566105143330214282354101149014053264946412326719763349403132704573178369856580436552431352028484341236815158683735042019866814996669883953331830527955055421070809337378006723988070147632502470508746687537674077357320720843588503954831730464678934251156533121205627386558324439492055640465728546063244440157356772476830465916218163134231048359459727045453293556453350767737104777649328279714641544855728656781842666122423233902159274170574543860890442408824868930039626501459040922316054813850985959219461625740572840864033912361219750036622117009532840783558461601318641989402330505406546104668021541275212985518160261172645040568465789413972235262278808660664979243841587226145137527062217775424048821396774075334166211193645255111158970844841223446142320793612428570523128179112046718347755631328591964945273739282138106026556517250541549620677351239018309563849963362175752591589699185164512590746519671764538405008044944232241341799532899998365051418824515218480457924703596745415486389196099408803415198285069052676971781261100989773576481567480370164120392408047723830714108375152287999336460519147563525450722901316440191533870833953544370620334467500097826287343830796327947272252460154318937613388151088095256470166922434843319073284982696629943333650048129864732782076423136707079945787504266981266002413455507909989137129641341921852777861826551166674589192354071847379620812002259748236573705269567640394872875688018419578596521258622835903751658357371653789766167020486338376106076222050466868094216675032188641002437383395493179375433730875659155754657429289820567047343815119277583061004001690180759133507292307019350933000355441818445844257453713659647856590402650033404942080133104500480126063304104391955163340022349238075464305085900375853057541135035680980462484187002576724585125748285703817722096442403468819169196138209743009200366990896975831277120977509242060968488953085502971772839544785799221553832944621597711639631058896742394317805088395010218138843446854166696697177149951675915452985218722292600383037765771039349283512599378585801148055717897507960699977705512931568599521025543609830968831147914259229924776970854518458585985881931598609228248970593444381044810100935689650200209552409964905786017433841751193223033694934100771616605610580705300571571978537189897926348267121493355910178847787282438301634665014490071747184300764565353096236434577172605646331176686927654061425354504384016792361221623590313224406496644955992373500658176464852423473910725615220715324397802238959372264558518247183443180920909063328798118462033353780164824541177857290911593073119770557405556166540933286837886127164236781735437100060053129847157431738050351096859635945042302089150137771670785997340909314097768780256479371004870231310289031747848215767728985445712677127950507600723493392386585336588853087652433850261361644342921551831735306812842080786802660780263965586234447157963271994432963461560684296413525874724283197927068178549662700537828989443564223408869789441241474088984535782545570650563858544732156423492500148899321285358999698483818932774474100007316258360308392843453833515302420480461446156861277271369324440548954793051909710555200644772799027499315657476359526574516958223122284518505214955899243375965767173205661805142731056318562531607262435230595902919269112430410165853819137344651321361640254186378635192769949142943567473444345037440704792064820478561987734146520366468279261172978528483657526971458458826841630111375028942743564338576439007736272640124768333612752294719332498195671274634153953237231721502250716495222448202756322614604831341181762418060581142601466947142111228147257166855186171540064487021081238839800647382557548649116040405996118226345373003326492775544123928385889250235991200251846732967908079395420411975721440221511609063364751626178497520049854265664703020134952653138960017346203325626957754488103165006386364636928532025147968974900591463298857255203519420264318754984935320480790181211211758679822974525079262704485045258814803445006261606582445784473449061187328622876096597501426766994196369834155904498415245655855977186881571736905051824170867060343851020762675676919431362099640511579416376620341291737700722419948960601573753086607768197660199032628903524105294900638253555077020910477215023643164588368298890538773999715161819543792739138834898135110264731787311584827642310302851343587397506619289126639076038696736976670584433274030427176784198620922956179681619763113049007596111749925900625555922089084469347671565755329741669655341406947524948823630009242191604340341963090890335847743860543847559105925387701003801249028551980529731200150099581891724602250669060187710456193913205535721514171368564822453715286551426330036332510607224050860935160246721900444214491126665568383019172385337747344447014971220575814812495513101120612920394970051356309278385163313685567424105503130448343199026855195499087642147956727333958875860310781508258451338867910894341369134653897984030082065865570535566722557062065175090396643199652388405236526070449484445214087934009327181922292841010357270342461787205763747603594247484887741402017842129367952005638579924583086668819206950527351714950975638294060978354032840677580457862508117128147847275009398396851421325099299257389497304725581128984216886303845069087134527191139825842611344000797795957482285994114638374765470359723322490918316677432432882622103538429865563064435181618210219928101917758677521664925062023304322454229380033970837195559138495887590729908929897496754080079021170084329964721000447293313019275253330543151450976400036519681497948437344912223363489310978994568518918685091153602265874204833198606518220985022262525205893526528734230581080570502481150825112764766353964695061726183898460316163885593829845324816744024970268943681891855759752625128746183405077187657335611772947532882739551385162871625140310466371593804467473061097396656116368531307390159009831299264590734281382131939224302487734378622506359728421978657544124445080087467727388026599005366746978367401983914264834624802394072139837344278951132155540876406736027478453766529692982093976776964596421453607605474666632987720243354981509256050871886551452258382344090492221987240303031207184639421824127139475927841971699394376420098807375470296338406047474815209012325912984316709917038898686864031242597091434455086340072781096909447883215529967078221847524352909141333240081531148544961073270633874576375339760108094368482409536599977138987391869721443224386005349532882712948287036672606535340989810433745839847384927097981773074174505385588678512468798292403438682247396707013632401171360775306933066422166183675954158571438579374809833022693386374265208107616601629995082924272026124461786593230124899007034302115819961136064038294135456509017615631748024158030739485821088133188965704765440708264713857713071049582193872688386815647854928110285116325956834871446617440223283822497852350209695148100550432517254065476370587661348634117606810034681287039140057767409761889821636233065934750231899335612086212834342978290265594561635052877842218787687495611002638127437691008120209898438252545121083833272357367009866218709117064367117170524868124823700690640422875034774855621613887974520966240913875640085028466267525354779400654437568573279311165773395245307298585934053175513587417931309445351545738336344057519527960424732171717989863200792312364007450788482572962707689816323595933599539108210357211350004867453168859022486607630579206853817409016315630655796295340661112381825176768902378965602063919147666387249604320740878498759324925951566276863259756787983407439221443943254293887600963465409020802016402400301093718268020411182285567871675545111563428716697354609104403181261866113275583106852873597442742566217929758904041298848000809624065927903642833559116021073979518490665705970862536618060839665625152853571648578660096963461883992717005207970669762066490437345297065599891504093504092512727493194320030833408820778278906274979473073864707932088439149955822671170555458648069418429090148987995221836446941094600439866607286905128299329056963472417974187096381651948020610515698614996205799980125949303284734855050830099665237776893860628628080299268263868092232647929401858829774409969079088480189166722611777190554160470826613298456166007969154799276713149563755921624026678728310212428768793763862759809537708880270437715673141484453095773739078002918556756163718016163244352053834200289095491644966658486409402523127680596172479497699394843753293679747199303307602484361555179436418407069904983862760569682467683381844685586980832134537618068461293206670056515654366363038481676484824932779983781533086697214543936029066210394508121773335448077542847106285055894941891681404087443413709597297799867958553951182852532826689893660231123356012679850484385394614439849061849388855591943990878811794098892700864522868092341985691134716704077124308222306627229909587339814049338648818232165371708800534298810146856890650924176459628946824582709423688594272062856397180525820175689777924153297328018650997301485733413756669919817091848045277160827290419262215566545885837130818909697132546146979762896854015614465573765915411235056062222653716744415546087183024258948189041633992482868986746786096492223669956605477901801309092960967288318372511673380126703566554898111362215500532170435229990170772723711264680437091774292777949361548824513398978521426297810015335485865572667584466412236633887044973817751641828888248174084360151345060591549876934980555449066598428775270442278800470620423563701344361600830867179419563123139054648984294241819079929391880877535202245990192508425720045580630596294467896658675508519384012210918888378687210674498418899123677426708830744822856005531095923611102833634949204238593783222002256493586494044756183022390580709192308572959906442813212456613466054564694998773654929373529062343907938173975014585003052840586275047657253839403605082631716450904755292514276641730712657317479510221712648782833296712547357941683540223384424070871091079740072595156324301158892674227955435095445238875593457348945445783030245990385125239661537685036890026755289495741889220412572551065789477262131389010243501199474602031741736775814757935183605468866236479955851322339570480575973836929076849844975253696801193701563714085497462865436504431829975404276581400628838053683821797836289643679761276235980794948939067272232618995714576775734057284522236092073295013425946930035758246217596303827040631952407371765038593013476663197662720142815773445986036163972055345717076428821031480141479460190303856494978321771449917736422659257573306061534748844093789733106680563326391124444438693620542951651848446921868984396153072794911537486282586263062366618179142888727294925506302864114978543764331742936606299520088992622656425903575068397006658611178564267944283828389240740365798485166279796138086469662809818340404627640766756471210730315545422787071045187780135622716052141711037220257084215943467081402547566929426890772043059971613588383054548702736879651043463458266852397831065123280222747931415835299990458443657992177597634866423302480719644206257799126872599801863984692310723707702365192657655646970479417578287052033725345411029459480684852115059478639280596288137698001550779533345953709521065117989281757622861357945308865654940027727603460131191505698150367659279902185431093925798064861159722862074839533034515150147366559479484286756018119024277656420758952652379050698825646900886378278852595526600100682211053869443701649997235764795734165506951498484283123308849924836881173545772813181634410236165025324177152162272944115752082988044045203935469218038259073195770581831392569500125339859265326885508445522406533998986556328616753224210721570675503232532288029493932454504719717341463849828911872446071452511082707680764039127834188519547622973681679241064501820781289016115340391701379939092334024992410857706962353033077413841313255737014252797698697717026038736148091483641084311890273481735165734290922328600451357062491373784498422479080458433509499415957264968001014634531816997834530214842453394116384391332071227838314913463358457846855437316134205323560910551163066377626341038875951467675596896746257051093018839091010081690609525968691099016923248519752201184687936946182672408969053472716202642058927778211139437432009977081455459843256339517207121320692288560061219272049617047094715889846902892043342433881301522818935398504207095813477013956183431507623193380704179912395614154004209872844509535667294249969956390159938999578160094224299872028150188480945224288830840458485230181282467778139548449275738200595170374949926500297944450473588883302665838000785544711148597544094545514157047687493083707912279541357076825993796938232214050869630880906658722333094511786733246847247194466582837192650528598039726913085780914218388514938606064161918902467821092737498465017851821466022416460383435811456969929354876764152088526977450013592426588134405690265722448252492198294557268273591368960652565376304151328354937000155098859336990086695842584322336193410133732726410429516249623599584533564876370070174568662755605960015368428187591946304248919992471363099377730407491681719469418911742355204744581120635181740732104051037608464300270710467968225673597812834716430691274891583397455474900244856163647696516273009538088995628694788918459378237144647901933153901922723759997374965005302575656082311986270173242547806066623848287715837397354035717917550981336419915365076836297150612474827442054786502003233957881672089758514671633996177451334192784274751545728375108846103007570381606819906215451120055019298868871818560406078196650077319403109225316086324963873951181862759181074767066086465786506085005211897864393809607028439230310586376637366425778792619150465283069596866116583432763659699214756542490328341671814802645039418592169949774303116614345269968699195575948534269905231495793087315809587779385898700325780541529207711276624806450579486842457596328177959726053364201724722848309985897151329369020186650753229640992580652317335335571455916521934190446616701692021489305494532489370683581893322117413586161650863982053279292485390663242718962038567591221922100106416662646324892036987734670295382729457038658748304962050356740236732220178889733176039300121297506092675300475808740063258636765938971994112202439275804724145137013110741339890062446076351439389552500942652059722139425385303914644079734708452157262245924737309916824950651248939913346281810040236883731338497783516618182641048687264909754690089837224864900919788257312660827613582613714989453722643927239500136468194042561841444178715448441094721916701092153499181799456862661637849236989804831192879583801078900802942716231462258447631737287244719898292653763554060203649633852967927304955046664781899052638728221333136029922315104929900401183467541694578104759702142913853515073709732571362850674342353923441088960978575684891009715866112566741022211761372809684063975336920598024883841826837942569658096569812693033815475764162369263077461176300293972007180999148676796842346410644592003697756875467239376698597403616733378721982494571268523296632171146426047777262234057581232434466484476972010728891400065652863815427767146931220821215678471602036749871086724996183187156972703071119954018765209178043423609097993021895765865497374156024117579018530358250154757429016652717918428314713447948695486088680347890984685568288245006015263334509637849797799545993750184977872493144445345383012089681726677812397660502687474088680912008062566924371777431783437188404123144048640995637791248782713328214680805056728384321330613492064402815835051608778413203228815653674277639620240450972867242988899109103305173006959389469969864661305178515347805811520284258611340207955333214697312114613231463950238607620389450974565276594712992872846812136075167045787762689459895383858712687168086375764812481261025739067305816699639144848959467191603370515872026037532736615062911147692595331103091768742217236784965235326416129686146872344161085797376078525341895873302273716224976205825635579203809024961601433020833216074614949874127542510629816478213223583157358076085159925340877907520802543308405089306249796777750922365808235624519716122841600166584314139509223109276620137592244950492410754463624887277247002409323544736835675895978210810842766676239359246602447851592170216111137871193739284796635346299652129793806450057567972799345962357609316346567771554628271293800998166719712188751955003706339518993465045290842709608429491184283216329336361426034635715897954888044728703462791494534288383508932885722196234272215528209674418154186359419215876298924285994408029977410914239439814607208420032206610692244025082297114194869319922839002440524616973475720446023651731160857792925224291045366150391216309585517715848452653605535902619608566677720749590590470636283754501739015545671944646275167114561002779683015251713103900670070086588621555540082272597565526927973334789782200716622209271528664728474436422629652540945650504641315673308230761822782661697282488158942405391649151268571633693911567206058859228431400855983881857562006005252749986726397349410594063765104807632079949152373168093948839295032259598600166061544213649242736404161904575558149963824991050972075055313379975506539332153768072151570120751752847749581254488060997226844341171177584338097372678206865437003863105552118343915204217821539652082894166814703449793599549750751083009074414696168636018631908542757279890841416729571585133474850786813430352564005075531453598841677157320647695658394367138102745346449309480735505854697179728316419906907188121969790967383165655453887094705936590541663138313881078078964281887404052141576156204516942667163936854305625596156164424530074608278819412582271292490302179048051049584445603389306814904017069040836099215439582284939407263380368745717153584499630829916839077685220797183570943582117079121385771075130943437905886903078797895917446838682031055482841786989757262547771895115491935656400805542998575379399665203443203059467298801416948663718137967109811248529721081419959161765596057505350552461318357252921912468655272939767924168983697501054566940127934354696800874264148821229137592646220499696080384814364389178274513688222866467254248884100047306374982778080361459206928222447042228111422280458146068480821063567947202142650456782194013367422018244915396030187311672505261218468216917260860215966423527922126554501640262472065539367832677995934203886442093864774391196723124843113271456525299466019328994964168007660960495679148145962370822032073635896622714822705771896024958341406592445405926750791194550701533375195125313090806595842455087191242345591219482801590720253101693145204954813962792019063035279796396237710750201603692674584321909922556082269878284990233914949290636818620080829070376582921463650835505600566112610560074587947791808660661332899576324753701994222202627002574937298346692741917940855777420821123601015952027835211928084819955752870058512286705652391186413581210028439311593358412345468563274634479939673104959391786815644601606317176066766240294581941472283917204045927318299424427708918947454434572665621449270988202159246182746349538554848984922152384959807008404405586519750195688449462880483704811225485915630451637318877520104802033939457184697545467988707529261558012650320268323620173449915798569173536491840522939609066432840723200801549578300341920970411669002021484147048949865397711070308606788211276744460687516313730358136017884793245712518500140111416754575012317886142862670712746263983239294523200470520237449111673142597576681640679695227320828357603156067488056506841915619975350358195949385636787700998105477660442520606997871258534355236957739624352598372962340602812445565383596189475726394867190870446036888415595043185973841437461365490534353799796180149831959485299537930962421365556263783506126044211142228697723347506320556996134560134063060490672772244309157270988636260352521766620514467066148918727860468992717308022071928760447330093454048524966674967902414206779697396180817482231738925241506204996830329007241547373625274014723872915189914697076461313859341700865901994371724228970557883682692955755345325791379687416765359935782378426824365049476843294464092014379149638420093443704129138249413595131837022714553161803636861131205265421308060746670913991867194268542649395310766577213353316643190943859551666554674589213822136012010284294441506449203697261633828238207199888134445921601256444437622599818739286693024592111591220991231002050143683118706643885048100481310772142702628270289760160104838060829110071879664083604635553829148070381692741072992945523082154715179563016638986667938146499543203951665301876190349160637371804969771203503046221830747345372572455145430551969378317817240071747138705533830511030446502198883547650883695836135384591419299377541592416656649247131369854908424559160999788055807739399235611816406356938749164693812743262606555620625347435949915786028519689500542526103282293262010585600336685999890406580207487958991223373496573779522847423057736924379323478306599756047042917056052803159873493397793353345915944552332871643078061701571796835354398052793336930043847108602938973044144685256524845977835489883538090477495708877047878701249273173389361185211259540836792310721566328747871726970039598508209598829009555529903221788663840569609489346030531937891797841184795451025546310227240522809885743130573937602633134652552181267276192854170156387682787090088056232964090891852796706680195504534047060685586008974577593135226822525646896640671450336793528715337684104028963441832522224781645676028150519358127189478516040109220735797217240773003920938874284379683383330136902935288515449798883033933571200509793306758508950716544352084731866833325649836417084330486380641686964375807104303213706627652593183341347646445144016081820494064720898648698833507901104308941800163961773344649155836958971036980535189624465739374002808192652902976486984282313184048158555663119433632980434238472898420007690987388970452015182870656720323190254910761669929942151192095201331617395057704357313087679289374498303953056088860318072451543602740978948825161557809818221701201162870013649714390080150915515596518287721590086605142795328508522440552018603190161969123289976914466190792418464171035036633973335484571695724979875999198253352109894002619683236991729628262636011194137587096874720346182105103873489438193818842946387191583227240256389742838070032964139672247951322749943424666018837064394951988556157606743337503634886342910366522679011329300161788453688340100558884271317239904836795046671831449876660364116850730426139118186465143940767536879166881818534250898016236222784646345970020999148739082269944746143965826032224074394386582702390708802569766063548018236261781500671422882005770069729781927347133071288176693776303882337950821779562806013497559542427036196893960955367397994956245970408919214567635784227132702174595633388027874803033197057737665282059179496757530707305386509782966712296310923157673977156657132301985382811619863715098179795270294504140402361803412225667512032173489986197836265966343914660665618654141612335402938964275894389834783956276132635564647542684382179821914249536438785309568510743392675875885310757762471785411777100678291790024489781511739288304350437404550667711453709103949718817031966954683482827064020986457504964896689688680002572065266859530651723372112517908712510175459687237721628510313990732549711371107818171784338157733673340860745303972811181053999436616826280230900015081124609108826270182970517623672782438481979344169682733870196634543331758429419364315178048603536167961913165790258535500774961771622122983562477720338618338966563680718776369211231255924339754208160776489018329265561975543050221894961654020282529424068945561654425165778119581907370277340610928122503153082324780417341004951870799433760568327669742480935247027073191999542904174888837290113192884250852877253720368275067527841270334236935095387854182480729394235216789511659046671134961469397674032487621537853827538843071836234910109151432291358910446304026809253818566297830887003941707187629585403189222526021604108010614527470572936803325572893455189364666118010328160650954673102245374496415446772195610987403235918317051266903246706867264364236266339426687899355579131948243277763101316407142798544679526876293009111152136670466495875255331663117316298330853869050218316403062540614550675793111315353778814492784138221476836642696694652982483606072845808884789484483027287523595243501225878364376786099365992469164664078309163552293334003649235110801180417188369441954216065948360786051289076097197660280132066670219879962023231378017986448018152409993346384406729928079741397980150129118282560045661157503075978158315213371636845397522148043507908042768707546397868521639426910836294216692424146048823447008646943065840026240780135989163604219084522014000046262545151596728503222865840933179914904370265548031706859468096681036656083815532118003428284239540888006734939356711383002813888844696880935995462604078828943299574050272219804325054568019733679568936029493341296491401044206055210811731076544771044714428618867002461382928958035907716035470482234363654963935663765162192143980788741525182813704903596516176745240743064828604689731290737335382209810831366780457771300141591239809910904203904680612462219272481286641550914625364073544911075030196867117112592911388963393739889445649407465240433806771609957375906084155921000553338497231086691575388150632062889835622534350330636232835643388857578753313579576859272345734582366473921815285789834919318115919485399598705994831901283661484520312273299249596755739081272946090119493314844019910503297343873242830278482334811730924215896025408936760716654575417900807802883903660204103800809465719673117900371802912177435060882530072150007380893993480417255446425957877287052960517485420947944493451587324337587087726325438617339297484672483341769530279065427959920765713897922811678436621141377575468622691992154202301893296453884475465264915118326075836037443496317147111149854528966959142899031295441745272919166767535960652655798053515520557324371929733833042259915690265961480553434188863571220827977095828502467608968466567081577581159616883804462871572970260141921388638362131893706332668817814559310457969362887711756881204945409567532748378238099817519212642891742217562086745389523198152835122292699654161286263521064066873506854523567090543193821666069400962922091927816513776290285805331827939773108489733414757775856530207569337244791322425541236630207577025503638719381317466756726272258489139320247429296188540768900332853898024376537459646132170071538931818491440807717319868996177219296055407176468327541475445265343759783562354162328401244332735555152222378565655832403475912344949846736083364393398586760641803237269284669775472367695684656452580694180503087218970428607528031866398446814374150773773994421555339286562142197431376421280828669681948553884392045079656048837884819309347866585332683280108145081721512665559719153249933179737204296690631425061214488548010731884196341467178806437173985271102400614697029912412604468447268836840508182718435742464445330397707025292377530188937731765941891642577694903275650773107152814909458460905622954611055001048150000696395955905184932151208087699734117611629858719883533280734075118394251543336194704630089262304729978379496909287910683404723125554441389986380799466521043421442117731020019957581597328448286475828356020422369526431609759497893312283188543651987998156908579078210828275029564487162080630920805625488787298086194089301413193340991417055530041373167079331181621123057772015440033084456429863802732930954590883111988978679464757943506493501230196038071716416576365284901359204595784932208752405977224182639432812872598666080853998423258093334784202925411361127936260786372138517670610920078278902923405181631862073913202395556655072614468085200350864056042826238928912520427774072614618819675087394067399436187142615034868381929914666592404047547400820820960554624997926158525899580363247002948525969131603737705210211318974201373714911602931029404829537098222059500550690422792152067070637232874763396360848920691115010316246820519009205920917563283469131193601385174308242809942328663109961820696211024552409513216982559636745107101778389543455410790455553824343031509332835397684045413582973857940452178931351109275231762449302025254017912101662514548129397457646492127045348125614804902388423230788192751523454402708664421403665220664066608400918847688542031851077815011037780156758269795291379239846486429813160776251246768891214080093301125714762785842287169093506865180993878223085015889870515398200283735276299553167867544779090846272312081179714591842682691765801983671818830326155510294668296644333531535973708497667353220857338388946323176389510421905767946183170993071979046067811842750071749761158868059046886566350672358272629877061926760019707692642060072368685571039876283365347307039198049447392941241936290510857009580929155903761184201995028164104527261190305893193330108509766885416743339776919734921472365760794125574732753793996742783099305262753251552394875638454758286680694704080561658633409606547711253355491968088492516647043686897807174818225903438889254434369521694635868261624784885212018005635080517526852800902771629724630157295699621633222194445867993615799388913818892762903908331342227341706466916610778296842273966963527247513532162769318024691282618950890432947964038915550726393819375040421897031230052750299846275522793988959831718964866921644251197599004555394740633413593681023663659871544401483522602268516092847893426434369461260961073568982419577441166884778608777278987592053993730446140535873656812780883126734287346325425566578347068325037435719896196569388599698251015906719032554275347222029193331335552049505638817728915109909717055256049807153389448981277142375789852335930977063600530026657693944709349328351136899429218293700396217537397346932130388916156982816500650334191351973775537559514981129774399524160094650842536049907471873261044921422605083524177329781897452934265144469936659449236556415720688539752617662451648531424989509265463138941301798990927032513487284007771202442699329790425608792192341368403021512461302665366721055069703832948034117685793226318101136045695544243062153795830402528178850531450674237690505869195345452186988955217672668883316621176060073540820041917350757654556334646217125779017276758360791554329981257644125351931957489372279112417474677177231692633308064809445238130576845401019558785909996301724932982456066392065642616569291539077900934828971770367143662685629838028116797610592996674223424717598932415266509267813339092516541216867540034198626836988896209988079464488875622529457022320065494097760921564688373780143599005951847461940329561838541966334390863833841800952130305233568553766345030187026425481919400234893755948173937089407750848428708628570561441311133396874501561763399617688141262446898526052268425944908238925005149605088192926208243692439679911277258258416931051523070387535264422024815405644538466821630727435037740401503659926156426184664531412862780746046084850960858572305513444167571517915512544003772456120066556809747788471539112994094319481757870547000721054896892295071201228536146202197946589138490756780206288225679147788486164978241309988291979249998225738563151292161282597375767863976854579893720280415687396183328242092563559310890542293925685792096186561290308045693165966595818344237946679741172877940341952027352496167594364376267232484446634249648514418631705828983940470349522736634634001223456939791253321073736630077259853210904873453761692124096403937015818534745037886240469762510345833316224225036601967954286474196588472819680222030490081121487088973737655374671829438611415315792654847381546122505191915740383376768922990463745973936236545406931972974812083358419638472657981177318419209620199388306730986869895884407400828630686262509288419284692623947092045384375721489202691387527345330211453042673937916379165345908849620579250666400256602888292083937253821374286356179632222619625302923351390694309379581290634095630379246114752229290360145718675220416635431488480662079139314896434121455181995421101966406077942179755375004936577408783782578526311994616441175811434440972738737305257555263377152404767328662209765958638269959405969844896471245030281946186346943247362677034349823697944399354485726690704959647517537113213042828175828542006776239189055398082024464512505644726180844578522440149389901899845543580794494728184056826547867218525954197934433282729246742016504690666638360383400138974164751626566105467803199292093329958011272400486842679579215746815752781215827890834277949882083977049971945941304980242257909252117018060072469115785162672886305518153129018591899785229384766139757075088421643957061005575731984179082264950002440854122591956388011603812794828938002464736773928741574643080312740160301020409512940056953768595972198287704844228567555665576229226112420880893232531187683064543752496781706668674682189713269078112254239736376496694942487954293705620630039599300337889378703163790089358969175113977564146684807402821183071970909970733081726302275866984558258574889295418678350719121946810290353109842504052679679320009468871799236187304272776633725062362336238669492937457158236780311843819253046385587018108908380008086336396000280937438475911264616286569847802159666711715022198060822753119120055212052711030765520807459444559818950597407675983475781460999621998500540282720685591981017675996387752574839396845952364533368083732964650679560732136853916394701411885729518956596089895137337492996301189649735153880667819472503769629365010681982831571204420153790045164957297362345106559573534217306463783570774831815054596771904819262082746813813138788871879242668881953378097496131492963365533451196723920991270183353265573585113702086387208001282243605167772537831431615737530812636544940876423241371538344562967858848317336041245401196913716352199276172484830416709017106204713555897636877110804199065080248654431005908592007808947703340917427987879064943670775627007986882036863940799837185525970401536696107542328098400804216806931465020546793814392868432219444552099431718409427942002525083609864331142676548658077157885746191573510190986374250431959656070878832698185277912933854609740773082490082490827825490134108062681553310643007248403157360317123481317291595197592198235243811939774318960379870578530243035359404887022114112494375550851502000244299864188209765829967657616116395930827205128054277953483354121900107997691740182119193635573723595872078769557800299989473665102072170027510676625034992981550335486946514518477821047833359525801507736535584885372114510158022049819623489974729693138843834977104691677122978877080033504939342594746871503490511092557193122816295182056049129096421711730453775573116140405056312583713742959382486500930899517592998561075817895501785127516657014297027009819873041948795818456706254132921617057301045602671333584657453888274777095327541963997295328171159465838417451723983527357940619098100888354143647150310000825058569714842411108209226960408206571311050643996657372312532596468424729066902082451983515247642320279487485181276918240314222709335687563745916403790174568885601832126129363909560985922857095480944744675280097086524021463695023868589221699839854693673030734653029621203751721464836040639246639404261440863194108192232358263597207275388840693277680172687419493869990127790773326527280277745606470295852896648644055687653960456970149817764495484392757753933734062875581614018952752528785689819552808903942598730674746201554081711853321121683826103291851556830599258096530963794794902817122633483450989404059412871037012672231992182537895950828276397531582429966803747956987002279583818957487217033718015374320231724341355322969028865367847776006819081102528908757265392835513461309294187776420356958182903722874098223161288994329821717608789779033708518222903118951581013263502942954399165284198829588949983948314897411851058115053147633375504800722013425549146604208340416184196275776611775017112636222907712457662438797489028965898300085856187713322772688303789590971682118781707758992061833115866956828334293651504989483892720158557148288744342532797569519965863991710332809899088308009821923860125107741716421694282673135928711112690863936965606284431811259096966389249083788356324736382067483310310106995939857741051668066375877211700980583152787513223522279006088803240098188313015859397309732064454491419798439412942504410908696216044356199823396426961297948221369233127368870348438180490575390685712623867722445363203437252146721267862463997064789931502484153708411304887227432975379183062703165798349129273894027149534466514209836231483206038088468344380509333862284437804329750214424936687587315252108957408820069535995154894185539605055958619617364585788893563674348889126076951030528494570905295696539916338495668311525261178646977495801194302306486700932832357923423726443823982639090436743157812626376784026490138396377939292006370693275413399484013291951654205177997148615571910364361162105217008298372498889209405532652891504467665808417599657226248550211369776201890452011497229007640658032950264031960510766581372156001518669424617437919817275254145771123664224874685493350683897832671468902563190857232502041571427729949156886033530742568747102719386510273562866661923195921235276221179824246583501429585510453999337297210018055166371891976816600146779912663842097033291239809675793303375375642985458659969582050637752915220126533778381575138437018740852459641089583533468822286400663007461755701793427834714994677011913665680468194732586956837033379067250832988167399360692701801649610441295309658225311030028747438494601409699110329526169788122102254121032691737100084666941054998715680367012175934027940595358173745997437890497036985723934896926311786178349217509476373417487899312980759693692366629319463342899662038023161532248000334591774569866130788144651873499848961657952940148413887499689744365242307011755694412752991880061561935975566332769462864191365923249889880483546830134325355940609692626659611635674253375498140826202315882267427372142959687400438373132803885001705495124881182863601094729475078202715128566995855864065037678972500649987927712690620417944156736786155991888739035508550135403854216077803741731469785415108303249842424563153380995034884740925657314872537771027037898395374613500417578022595833698707352067548005570182790132958977768169503969591420469790711853927001763262793532087552231969088203042398951520760998696264963142732390031899548165262465632793129489718370377669033250703519057209419710233158246473900481641746920129708200648949282918484397305319271946033179796076936747590187805736650700209364833565743677003409487314635162641249677921717525978076331442419271552428099016497014630022908016609818806684380508685210967966419114707102974030495791943598458154984991180789912347781703671967505078158404602517730464696740162036932405038974787155068263933865046223554483556194084024565344898491589258838357163272699174509241518345240360667059579984138003473064563154111978094920791015512491288246380948973004569779591778072135789355664797371698424246974807406344953008981699054173284798580252618059643169126371946073426343149784678470535971271000352428130394895006062481836881520989099679509992215018180363568874488085497388148719817645799182293407039605902391473865507052179528959476034281109410182175954388755678449366807145011102886690055425378001365771240796071773094885121024234547077162247297227810835186645460047085686316358954036003075645705880488669227566525193916006961284150014869490695697175290362631861010124359485015854463965787081520572321403898463305007687595744525943952670742363473227146698247715251445219729318241004685015257216130648133790915248423877094977914098530949919639899326177994548097150309824278378941446892338508718941175190244771360650953702115133671250788290425795513133876611961320369934051952529675736477569915316723165468904940352566769045352327812230047900261346821119215515710311587713664741986671798485696742031694068307583776495490734871864738687353610595070979306959670292252236173914665728822235712884956313836063153950195797714763570807775195390017271429826374478489453405271404870544420177236046929382789211205855980077217737736444297704786379576571705463784221439655070325398676923689916675693550522315192958386518877304456445956763896617985875827121738794885328510507667219875347334791735167320110850060110033842406618036831899390197356206257213156004678476069231797980225077296183539917524829842259507953714895753824245485989768956829471437102021381841572050740176225454233689678242498532061802382914147280147287451906000742138941739438921201751994357509226766059789156621065988855987082837167549309876714108705198587492219964066420036220633352101562781717653740896621576430957151614822327062507502761638081324050195032131849194696319028354173812076987452104672339476048049004878663796357992048678222234524128387363164621903130175549938551112666385266530700343919889259995393286163338162997016310689007228811558182671688640580383861651475102298071422736049007119266538220213891325586501686454023713774779017112253828873054347401089790332214860757672593745519624434084966615281559458533223951916522678780149025227752881971463840202998774987434385760008193045672904551509366534063411316407800757947862947818007092673620675839556858831342001273704092354452474719630835758641435824897526436592144905963018285886381347678324415459212735442032315852525924923903907762173396636120095509078285331838303907613351596881329821412239525142960788679833571070797062566263113116779810674104236205189261000751516718795091055580165863960357100331303716048297899661768960627376377265069467162721889204314376109452340115325466948534666476386196537469571766215800446424542566237809367741115800653528194045878009771501133417247168542540511728833021545862592073680107041743025283936179830844206921446465029039730852286580398700968016953387209371371486557564466141082129077796216474708030437086032351925747297500619600675494658569266255672128477774460035483515644818792102963847454048008076394708530401380084631749149392273051366241247076483709297833047429638557778063286752497412319945507169754862983212376774856675101106877121449745336043642748569972495496694334306680841683822275102213669465270622786149937234301630227868828885796228638729911380602242885452556567880350473732435781446033372569720484475193336800150499356352690609730909454209234995982406626361430809244297412776607963638819339057799909541821917157393300464867652746822976708848214935775125005036323332585114096211729161669624034246549237106715840202736464593289066294186171548324589990963775917216115739629564719502798937706297997739974964794753878222325425192980527531156177122905488781704262064377848042230695431507565139149607193581811050915256986574296482153243960581787720619201932948696269927617520391812655592762138650140588807993128325719072619923053277262414401966243486417793030530047749997027414199028126165998828722441631705857595347927132399499897653965658786196301058641014887333795110293983648961032580909128502904183462168726251265229728819238900684984852965333012284706042545597484983546195168190366535044523232582077552983571750055102166652538176637373133035237115418232601369751123754102986289412489179557949142659754418815931802952484274340985804527007546931014355610844353729689034670009277040292028794359729302983930811598247345278337886204455388973181153389855232403468522466346474021981876471379911485438199593312433701451333796283703349867391884084351100460561694486030213182653796968436087255244151177912239556622668058153950768061775624645114693556194006268830380133439726766273405609092582876396616163055167099767286589084431953306262955906152388391787708259283319600716120303059152274492773385769451792165970742307878180163241101058382684073776594254203417172630375058172478175525181188389366695248303500349202577017877835996170941748820277293479061839731209801320964958520033214045574925212316854340173218389258999551483080780143789155086869016214208100145829462934194274554256851945437554598825302537839117745952064763791643032262301210619617885907771830668622204595093306997354005261977974991447492471775280736164112474727046888308038030296722465289938721646487403576074204084233617845912949447977329720532942652440155282773450436944016794542248075945341636831957270338434601993572133975451968937741050772019423725951241476300283160559078179063824982427162389346714103039071078141447177670778059910920337900128997646940287056437815969930940495829585145309377538922836172654272840750680453290959164322471692478366658796799921612846829271268509581997975004023202026389918652652481009225997820182319394664602898113870409355364424464968492683888408978156292728947160240853309033130921779337034322458388204012341705321439477319284001804744368055321665191787239192111276637942223332334067212592432846206123199911467614481652005546171916307165687040346221934928734853266750139116944419820181880993678678129522720056819910109158417151262275159073485489483906461389964228469761287458130548413901316242281499313594954369494301020302651753221752899099179379890892908242692160229543349059162595188843857379792913211935016472206068589357915008698981064205435940537930193429902779016516329157682141919761580159552664970412485203964536036120513634075887653176224954093603269464421905280616158215946959086034134353932315539385966080386086140882022009915730906864130519493402006051779183249198355380081572844927399100043062768384830254590140655261666846665529314988360112116227953029527219841093638881501266566923896881124044540445999890221930310042215166111985918272904056327258352107025401848100104212344749172407967566786432487455258705148647718305500552525375958537185638988855407398119346711873957455806006801417650892587112987398000642455267785668748332942356478999048522151483132105304779958838386226847620092281487301211294462149652225874867943855248344389285484043149631403870473196362832060272251250222011084655495729160263353877915353716717808087663926591716843169644415675262379129384553837391011403548645216861038709833218763991913509623249765162900070681807269468007841695722654749388858479979791081723952545878871825574044143491619030485077184109252520280209690627276450423123965042301053331998399334249542996529403125876012975512140052657316974283991468135227363903591292426458539323861660758784859348393185695098976376100513695045672382441291193947762564321587172477650433197828111495135280974842642490075122326619650828070274334666789413222407280827919318104331278298985833028311638697518467047144289934080689316051886443174400960995768204413124593936026421345408064794748282527966571081193248666471004181920892996254978235393588759026290915588553485946067698910737077386345943274168546362018247734051524215477332020801253703571295478443401451292758862893484971568983017179034634743178018942403365305787056854788824768574886744417496534300817365112867425353502712254738129133430374355985777150375826762818330189777506280810838191382646768305075403672965139705333363253674679594666177784081579750084232799945202872773133388515390635479740450113447780273325657223021406845451115925911818405428604939996274626632331094629411342291813672172954609274081599644137535764154984573565875084794425003700154076236583748498054996385623927187482506193696147472425482352539752007347573824571602630756170864177258457352294642120260728055066943593987079908403509557284017591912853305208613400008391533658829072275965157735075272371203068528482868339613679290867663228621212434189608641053801835026243215161429823957465317341295221037163891051951376025363599814678201178147765187396144619714961839177712470274366854395032427846619622606465107152317229027862508261182535640917865314515151718936938336390572126304992951992749797768177652079233930296000530656907048953871323612121253469158560053158619855008147532266655129160946610371635652693289840214176155752554062335592047441797802747288493885540398472014395606675846441240073075594443375754751619601565279062164657869583424136036336123614948650794401830766071630804832806821269902519457779725435919673456148223967995308229291887142063036084446570510729807533135746731071759392789679361403636006243120461847910063783929029878884185771442363750699318117883433969916793610123696112635292548873760196972716780748700739534571203351646802589051554803959869001539620009688922553554631260251227211226429192185554882848019120545997143939838070290901768562318076989735578013453585296866230472496615275243811246510550621716257214727399051219277922524171518179719589685634887808370613717859701223081532926980607310712332434768831277900047080647846187654751401973844338590461565382947920080043295451182031118073834278215928477844305948337770932774012159435510904304509841978387474942504790617731359623858059288469280896413831877195479008444739387618578036519232684230824682140378538876965173287846368412719569194678807538222694561921821360032662131761628937853958076071829024261966521894017291890971255228775983600949390959412481689181271385238854657168696233811325832985074655032629386155182099384066023780916070371922686304828729247631608576204421870629660459797294709280089454382237533183341103150052356745938655303743950083532167678176587975641428740131850506153982209113990791504422520076608317096325997297407873568914742833316384168942754827132042420240133635452255831203473277632372236049809250987938344964588938888013813124760528164091125871107286367694889220806793361670103541808862835674817665137102708547529480279626866504518147897109777483911311373843162648665060714689025080882541409482852792961421552367148184543126754576388140137974217394736061590474762031942686637482460744497164122077162321902185767545908706741820383636425543596620803045052800245092162194033662541034187618937714951217413837895878449098806979221911495268566788936295192291081551020328307031945976724723665696267510847032065393339552199919695242238964169339172895345754465672693814661496824826214287639289416142034794799896345479242796979926037507347689868825919986922185463118388929750597472101004631716947914193504966511352198932957268036933395957208119805326592855644204354504075957433968638753630570423215260014300248566918979885721533378030503708054259672713327599181256726108814069163799273051826575519732258620866163084306542868984539228619754810328817774727489637108597088912783839632032681979116139671633319089123016947628495190519893083391890652798104499092197368145483152210740146931702650983203715791755851791802899912961363796493393678899571582839375876278282212428387173576719870998655070497218209327264235532681648931188707420539161811385384040751435765048737785178041009142113962017259329404444328011851739932728852668528061355921396484309453726686864283831631105830728455933813565830858063172926733502655169835418414139492056153769365250810315398970819188837550783484620066492780161423549088873076167453043566686022912795108851679088368700796678639689525593310995419696114328880014161505691747882307898879707243072297965665203398717583232923202769784660998139045514396817907773763425312783384100130837813688598716783352953190390373967017750122932925303460280610550101299668264830762512069079361001395078464086296025628468731396060844812749355660426103869577709965470837729846028110924619716290105413705581566605814249934249607232239840110738154957409734273306542385786134029854903587772799671909071748000729939231247841844099464802464575366261309883113557743597071358300302675750701181460769378527934410748285059837598731358053914894269663067644129602552687490533507748437913292889072974602836609222194688450115969532055616976381424764253189020800183248859531656161609415488202205289996090798524923968948449504640922562253713242455895285845777342410183402782238342931702455194823927655141131483417244516396238724449312900189555362887044645439881592390005886272477267386480144748498068059898791789448423865458954045480284196260455351181617239755035125666146706558539555937440520794941118743329453510614151682506207843719269044107382433258203816479407518699136263769045108207078074256655815212575807119360052074743496493026410597310332794397385144238354469110695756491631575037119105916463381387934641381029970537861833957337375366178014074893876850864307178881787408660344478270106347462557669764380616000863685947277427502976616183427521121533138810517166677860948242815716188933474729498389432585163365890768726736595725789659600346112483661515135091072050138861447644234824641553960991182265334570138338536606134624346458584980289886549067176482668792481944249153076401706072344125410822020546768796157131473799315472491390807366548372263598969815054822409761016392662179411755028510531219947903080579452399400381031742672972874492000795698309035819665655389560958784491896666861579250513521434278485017749622350273411090304977550411011794003679599185636633781275033029236460118133848484524853113859189930859632714359869024350701568959456076783831048775557511860239351526339458857633628216776339192532416932696791374556930788499595593331978601117494485905233133229080092185365557867828352988310037039358565282304987769463695420357694553741515028270998636362701346188444874992470330832109719208223691216766736888368614604427154662664838521996210860881148507489680164867857309428294002436616020715930452139637449445831535353527150871044208063172340192485201732518226320260763064922580483544010607936470099145805582264166029269207183369633110760832071017768363542896253267194096000007799235498802325972091468912317208311035365711876806875998755003191407387429271294785278674037654971961374728510195956386854280923536907577371597872047657810075499545281435219806414755678033853940894323951198171600197603303835778136290100475548094717342876003448626683734689325937688180948261772801946457754477556336635737015944063355276430961757188882667896679635504618115569485514536579422135307648179708021039627833640338750032844291273090784789007127953786989879460388170614105354659600554337312829999312340076815251980406355617986131316827224668065730796333094669257210478172373366689160295290263018479483436434447776432745088685164617816840649730048296765573006802250603948501563116389282890831218695346852438139125561437779078208901313776754855979256631335258806989031824258963318170115574355618347235614682482207293985064361774906093328713267417452827813858819069145105572524632925184637483490534257444885172673279081080175549988959883447456637449474715423612543791343420317490601060985036553687696597973800870153050373394573721446927308758774281965240411332935692625814299244000918559109122097244489421352105615522234298805785100575903748953072266034519797479950552014248988015144526239404696859470309225599576771643964350875433579784980387652637373636118202426007712035810382935270296298359727779965955751429867819445699219079939033803192048416752134853368791776244309506094093993719850669036571207945415966139921259674989289791415925478853826809868092726959180306332925914037314234571733089382404657700869769573563569429724884214995729546568544898258918418912078767089714030196363199468477809182851966202718748174852379043506273667362303566377157005249459607014074042819829034621075290281334301110484758326253444429624469990730234635813285764841616680790785404415003513409390114511575071189474016026687068838558735446924659473139075372546014133408573112714376478804881444116771222042926156393210975959952593305444804036612621349293839070926443701272360646486446883126183141681116197315650818532608885590305270088487830365866080338226244080342513853596767212670796147758411411511863005674655086369304961654680008357146369841312746303051420459864693879969447893042598594051673285261699713634286622145502562477708660534088816060396933120766111017991180945433816213365591432472196231386690415397546958950144523344130177991100457115448857214524036233017503397429932308392875725390380657119865556218865537297015400447323199708991523722123074352699066541317086076742711523328278540485988021931534622039044156647226956894063787314578273842657147063625956360103532546460152165862740781593504309281478969085044952744640911514104065367715934957936684129663441454108730936477207454047430380145134766737188920964688600740094403774689418384282839405364241615839137936004459694521324788068495743207380986811588138635041394080711739126686978686521095132229597437808933675771788597281017274410585823205337443167437324915284132778521609750392021436031486714561031463522255633868695401500983370080194122564821623771268147505765579554684982967198197561692020288327366079294739116914259320049601997307684798545879259485523280907793272062408056319504672398409212419630230461022034809220164086369243724496260071503676856587181447015770416037311120430987183160502972143671234262438844606586418142741621631749313702651948657126761165676235306334316240863819097757380053783772579486825959333298533079909244000082272915203604409463987613218120076304476145719151331969186526986692570688084216053994648034218747399163907168520159310442865497042832932194560272813228324616137757539320125328104964242622534389313990638283904318347551218076885992754048901618236635912499395101995874033439842963009957908478949680858870086739456357892592274039492521672425841672783556245206076645123912870955978891378529600676600843508562383332103207495106459879435200695293404730429332225954676515097148283476381660165000090103167466116427910703077488025964624177140833108631417615867025451274771555395088982632695549421437090057380554232603991408592493886332242609523606790749373930808346638070670065635062026941011564816960110799885064595671914991651694032707856605738010983787138381458827557186650606699796738457580349746594481971703187676765632329392116295391587195682145063953803889065352500341479949338786833879139181270171495722455513974910965150195323795496436012102524344989992204842271840474286358726787373021864192610329486844192172524048859941466764019395614117593198451117317072736685495233255747681123009191350007583157616851215319604467973247636828080485940139696448306272638844211990925970410214512316917206603640719530436828513767436655636683195803302025254682824902830498121770907196165798027314930193536179707691863881504840914358808973288252457169043492480909249701553828825120220578090790560479443614685916273033352895190413820089452749813967242731821440777447155278438082912411245724217667243614825433292656390619779042877509194296495020033974686178714402055378163007202052364911650154151575129960090989886494273548427384323826261690662671631759882847409302731101660686698682730984341656993038717783367679888575648511499860052404932858723768826695301452086840909439759007603065896482024336084959237042562810412308967113547419620883722825633093379404926815882919288858489179349537713082095876278665723149615571852028802698500466433069699286002998560875210868348622813518509869769302908644028038987595590926798675783822178623010951116023294910619535724351892248365223763568298908745784205280567864427120155701706813551812469620773000169235764128735243920554997990267358991322032923362553781874693787599756303154914072315918577403342450730552688184261832919488166976586093433717916723753768818260841315392997508335925645020165153029557107733070266887909867448264582033062438800397725371828707791492150086089352153838394580529989700418238043336571661558514932497810294230605002754196826002479022188022101353890637411698857397813819334933699999667890127658716795680779743226092556160194729791604377363148422485852607787955191815896740103578862045402411045254641567215358139999640014982787081026781363225768010977997824326013957476485497405708187144563378451925879970381240114938550051971175055846388937847283284976173151408203298611566376899187572598043951810321427366021918528795986445981538548957146951976657975648093027679397514880526623239927296770948778531879058001745290875674336039953173331337777040912509708850157322208288496088918837424358885434550832336295108503171855401591299399624310494301967551332679221197675813317433501754652013656885142683502507377987084437004432998581493442021611740820495905136714555555261944207906578730392972836467065525649450687479918082619115242833865113356150117251376476804406924069930538097219282428411523844793729931678092555107170264668808324043537354330856436513601768460904903972238142812937734579453740313086798108536907593044475809824013019880013698542173821917948871996481586478482502086004758691278390807355943631532850266859574614640728633405813887797975509096611747469938627748880651910221182454653351269528645916813744746735863728498586591228335943349094235605549976158952299465428388805852554923472680563050432407648630673877699056850662297407876610152498964103796385169071575347598121853224876531981247222909691014458143192929486978757903528884484014072049295559333577385458443774659207661573141037850999168633670700058529806265978780983100180892135779219995807880539599399834867699029929059357140275118323773880437218374525347696708046261438907981496482712391584219847796398846837525096088817180963124030675142494958545471505576691275705975680323983158369492989435788490406055773005021452910835913840658916212149042599054799351185392601701646130519876378712424611513781999876656684743348635446733562086293094782431964735381149502093269359579636860424248389073929065875730483506259215106404715289151321956644415362452580074106682921454429498378711370403941238404190706620610642386880764677466266452367194492392595808883124965904035336580829675438467433009465013908740125505303580551684187564059813495039379576772853251408178383091914964179416752917521715130540830294363130474631876377228749224692881530568021539607712275052242832193434125572247747166485096115876252386494551415738100783785876345180044619118939879628078295080605657478150544715096768207235683444010811006661202238836132096251418371827198503109044523450938747568278015365457413494770946430052974440336082580358775539973255092263315430001970599359874687283122130696500767338703591226104161896020618852255927290711737724462083249329842526428007756846167893892269682129306786502410360831923086909459145170913949954474252489040891662538838425599939843345664726632248914915514889594751954728448383482205207687578472296573497680507947155110489824887670661271362160156019909109872370064802620433016061381467721479717768535374806198166189790959768780406982367015349479322941639739140881014814416339944777886825995656059719334696161190611354460612498295087454398123185031929107712277423817855473164925068134239769351788552807280052335169877281454683830216273080604943439227526379111895693737249150180419791136821080502199325928638783611971132756265202458548841089380673869962635326889967126207228410225579682169546329436740081108028695987957670817410859241720488332674442613137210143608193637248318490186799904201109239651873978385945092130976344960686187940025115710721557512247407957318123368837909827778576620027362466867382823471378797597597118026721595334268544525190886661695104862895470936018758136042125632958289049623793600199174785805307152872609161017623815966951054673012613755584798879097244638528045220971763888031399793450602237967717465012296836346876222134804614291464702397533128225082937141255974605199346057081911718961800169336257914326602523746090747207329207920456176066879990040404378318053045239347863290685132444856234013248439584445371958068629504312400921002544125930055765385423342503158436117108758781172473700023025038248603197262952818452547341804170446823174312822150876240489662047869261428718705822211103011860553596334447739555899619736859580171977210366756556213164875707283879707607373200196488822714116277109796384148652623490361155164264430450556210086303014879900157269532756577687659765081972473885071743448666520953069546805793212360307662885017719130981178485915150187323165342184249751794260982703818130175106029591458783923240219275890171173171375413107333669348865639598389278135681208055114361665557380567046202089793644129572619830099671584806917790606147662386025543538905460642819373257654728274569691760749783148433186456104616884493750860415512677804971658942467352530887209550090331051572185481804485262298778202117233151574877269916172769708776580259315712347576803343828035734090350729074208966752488811983309576869646968117985048485512259414667087725986632356685787560696015412911204072380772134647177324551215278431704255065341367362547506606500526002408697809176042994256910018474140207058965496498206965198684608860200191547938532443282727087681906027155152896487887498913432805210070415418653619140819095333369983512380573125324975029258416042810459504286071321279844910828217008524741724303113223028663491465798794785216569278535387910280106724879755954533713269109595806504380263452354068591663415395864333282873813608111009713292681539562903393617340386275041847531274558898388086690008230753857697075321531707848436730587928663217324738140954381331707844517994252560745709630303678740593519540785711110906064088596058478393293441977619318522687535941084797021671679717922962873705803122982627111247371308856523735516805878121994456949299727251690045345701834521323149126566917368712468138590296458172907087685841415304923891998583129575920481924907170697463445712660459323037269177389885825432620305572019327477561088957609224654073682233902751076910771243394064363272349247492133337957085353586563014383519949448132105002203936224011233271036400806529580974569076123594356301238819917277554724421939241321573720070232063077567899008722139642565271159282298298735631551496176705324985395678942455663262732999581913466539672103850719629595290082957657457067274711851457861906297763463124536186934907040818971159618188361582804194814794656012719218160393891029392829056895016351111877595291202925794630560627573005117955751693805696237123145054132010825846390741407495770713428742297092735444367830915735179037284325732519265774937298011528524401069132897922868404108159260844829861604307375296421590434587396337757648379967537214184827401166809876664564968627372465363616142463615557347851998191721616166536656660936051721619290757764185478084428714172792791852474718512667063637926845593049342818505434288677749470464851356640985699986185798230008218365866020500741231516505911431882013645805196561030287327461137102432974288374798126443264715857926735229216753493383586084440397766222539111562765604126242720890188255521772178458090748396391794370543882827232809883589015322345652642058946059772056233523483626177840238408185504671103758091529587715110462425429567878531358490860838950145799305335047070216569163854095059689399172460049081496231600894648962916407655826631883540525083651107556508314795166481485012720129955550863300874792739574432747955894416795020385680646464676299810784433080446409392942765549686972250255179017399391250775937915679337107738899841788743333888460167404497179888425424064580025559076436106756763541283045696788265180112232176856099152366084141935835647188031058072193958358398343686912129020152730651766780218945117260341862175845190507548565003217169840632948359984921391140452323087473441751086898917886380687595066716789074793655939002479271499354580903457134991359783238879894721231332988983461602665230591896783845090546870449017191564083077024661643427062716548638609129024283842957488603105991856154618117331126285114974263495793740583360658550160006244607018804838804231335420422253091396310549598030294591591282876700187166160964687125838249083295822913148481711534679966235821471157023213633942881275302846380173517762771533509402002838777651185896358026878451943528395269794312997910796090695992668528746974045891338612410164821964337720495417772671310701523082317127144524560455457987206305560620606598850571223902698215116524365243230950970585190170049025266717595290174186586964581155779706587668490769805850436367991040163392239755537867572331742507002765092633272756720894418035101983019519199772253749419550409025797712056561928732041671931346460116189586433941462714015318359416978219379522320596766944339082632117158708645089438641168310669655904348158061541920018546835580646860788595183301311759113001414424292668498009559091680830258393672242018846451540223135562841451069678755303087684742300644047786370645794886829398152992870352199906871341855335017796159118636585312104323115696821092665591081688813841260968153076785970183265196057933399190765926729668561916945365699695293584463818894932143682954800608553633852251391405491694591662737404162392992641746802962214301632617202271148571440329096412985069848922596954091684871213309139970537021430375114601319906185858913315761134273067685762196326890974974999681506591248730683126746565620336093666143179589734075291862276769181761663993098635796116377642632374806769079182127138821912061235201216600435570146582919544214694592017931961272747713220359558250762485814982560600542171831647462503074594102482261084477745197875181928245228033074820977085911807394246733269619581415478476653160302004416252558735701013147040986434769143553226963714613845432736953397108017285614104169400436173786525876727267281781117271172134481293759309309808944805248855761997752516747299745618998328563321866046597803215868950969082848772326330543519190381310850441678103660800112818476732712246769689719400896782179707744734176846196912498697752489900495587813628821308143841299048815868095756951845139642618860057498432059182844160491713709855401134542800937375929858452646555407354041509368550566921261088835562709620233898627896247209319480994839301486488133883554494125615215321379139592230069398740388241309492788013487076129095862065035253883124426842245666411263934408831613685777118329577927157763005721042076221859441560701745149053211192834698776739592055715101764090769422365112943663652320484715725027532153329369372529362995411858636804807681213148175313744905416943840054147124402023243565741313532525748077291925534619865537997021511262751924015355634477267964134482023162603922650569515016639748868364257735828966582837364025950229386475380100878389060327242155999467893812114188497752230465431985074590814745894645814390266674681650365766780946521895053411963021074803036750997976716479229234730091964989962787624933616842928775848536486360129222270092642159733006497909445232091616519237585516322109302576598235724026128146221134286158025936514922320436878274559945577939867076737473483438969183119017808351912652001507224930560775344883142138991215702958287751279965104344005857591152467169954473114077875347931425263952272861325669437174225697138261553963973658514466266018251834428253902913032671408586160600241741647731571000844727605386788040442785285086665654206099853983709564314158889725694458539598302163542156430541621377980644754667581184700457670654245230717468297013101620636527839290997304429181501584441997808673979142460160592119711348337940232223555362201549572499460099646414679492021436017422879879740488296139335213293812142935575473589682684841009079212647574591520992077275440130455032661397795557872956937367087288266741365889126986801493788212763953265500928076994599380029075965943820604892316982976481728996089060166785046557013854578584395873212223733858528805766529755929952111979466167533845838905142944521125910194975937526624273990136251237768802911777563095204132678222871107264287126383853375796380226824309257599215871576791359754479373928455715843179429832160451690233555691312354725570688671722093340265445284827149849351173165820721261645609871872309717491195340618088352253496649393607380053091574829795674391535418736631965061928856138768591493342674380933722633227197815636570980371930232507501097840318799490096242708409098397735575471477829357856733042888288050748443212957489848015424554511816715490953893835154103833137872278341234940148009271778823303214658242187126626403790049511258459446715491090477122355475550074316695725019062805613858510499521311878210433237207447683457046848753486272117096782886259535009590648158891916655065715850417155171008189961805904226764866627889348331130783586071099674266251997259535491371466315669405421601402985947008284215878794653597659147360665590923448438549909573248462437673358491671754605660018574120753851447749280567120883613592954535878178242695517451393157155349556434653193146943738372917503743079845099830810418055674100848816427954974489526165450943660982593604010505069344476424361731409454805120668159135350662276003145735668633981821362959758362912774525985282618720974212227213151576687698878641915381426909288249422855872704833165822685491506699493386828640342584154513340329235446227671425890183504134902783258398095102051314937143158960485200125541512092724651221082793020238315555638994504505823664764199703402746814554297771169835843486618217632894809759648984959976871762046627252906107709311983483722391695170540485424943213163361503513500920891857258760084876622089442659475967114842329369053442032515081870597911554670923457176959236545050449404230423991776420366636660651973770762289674216746791969135583020189445783027912167114747704828216033558009294595487415940721233181038305486972462947819928833920901887693572107947349565637623456159285416662941310618896899700556464277581989421500547117799552548319310904694337372889537247182999210188592908095526481657918790644569072726810104293199292235767478419063768734930462633923364771123978720356415789755147249925573433089093622557364088185294676022540614134522271387733951278182513099644833068695686008598315703808282801064085156548671555149845715545746698942917518410205378137969591955935361279442344168222686738831135225938859039893401776321485353461722510064903239291850604225887166071851353994293404929896053520940133604439866588052785141751545008333352316863133705598632990518617219015415135380968480402645242635653750447030742800152616460762055017218547510241325807272781315281154953266534841881879979846469973779437338938585145871897591564633519398821092447031446706518381081803575697344480591236058808223907420473544808214848907894148340264644954963624559103757740817172381006273975788289035250944825122923712877523646177869684940211163655876623144619753316562127918784896943758839852906539225430535079732567945459596242973824492338869386876412004205850004221076605814699739587378303142532496595743038718874758558826666958488077045918756817199194800157103688351457862073386203262790343641546180932487263808276817785816784680226027084401288605815829308553952274984714013547012086179181738914837310480639817813637976221667514745090276401810321856457875976778254117381317207978579184429304989820486545144529753773099157968672898641970121689539592416861709437571696745337432184948182852133722651433259898853414268399338802169915318274970652784433909673327819803961855330420280455633504002894935538791717352417296861341943487946335824949720885572523584761722938433867971069442514944938123638465305028469050299156924879153046265015384583380713451987045238868799435955507281459687545850702230442069004220222394830605097797768049014722200117220101986494192955299318069537400140173873936250535924136540747129795372250945980891430598326720546904840602218936973302927796401683452767073248723265917539489988811966819982206739140480159730400241621917427680393523494774521804033694206910242247082602818020163684748801995648553614821874677330787489531820203019407941710117931517640588139278488654260951272655591481139743907990999889925211046667251520835004541937089966061829914396550479462698060744169328378059217222840348082319700691838614638249401055332471722438054688705586540313939088829423434362150110123759109708640258358044928217523623138783123958513443830193966070765952985043789039165704924814813963153049828324586045731435476368845435220930101426927245536622667992703964849514952421783719216300748939451749277591979166350680986873669718267767808066990356195939421415413994816332721882728871946149316607073840299932604156834420543332510760551239952789450564654550385751342635354033776684746710598133243481798699488019148395866122733170495904982150917314026177536760099197485887363097012014585023001314256906440752733081718385190873759068551681704982932495359913930188232908565166544678864087506764369421452552468342224043262234966603211949965932128659636412786663185439345665537359006294961551457595289781397844111240671474242533191439483124425141647268374655010468690544910741658865525560309481485779620536479410075583558031146668883091799069214684173868000313494065883003732816516527997903305158651866175557367321515673603814320310821525433732512348730565137113076245872752792626743610348784406200064041167061942128816523076275994076609486824014625657111785578130190924348402922781931991693765860173550331095357093338803796897739321678246720246303249609307818167381252745603449423443957752508827164191047868053802948485533110326318023570139822557022014939893255182783810762890502273849089537357426700260632696556189900521928859258266792847960438570811420848910608015101923779400739836758059098138694101951139115612279546724679035319026124018424768565749159746683168226791574821400773567273904273192226150769148743026326122330412070736550848329470089047444506164574283118518252159117063290380571079656838927824186143506652310844323131732233183984058760295934070900260851215253946751019672731925865197611385741555111749313294875365590920731258774915481473662220205642259084893922186027408216960404576579475901083083904170528474503655444161419468562448571691548781336410851053788604609735631908886920722865782740063140398215379174180763907313799906591715557621460315368835802917275595284199102002423630112468754188680409595923484161110887870292603340476845700332207223674136157022905221803035942200844728209071146950393402213590241036573999141901121453233919831429965391286604701935064667212705270684104468741960841727473459952148864196520386214308863438002463394715166640788445562381129992752586114945029460855454992222824601637711536460923745849022187704083718735403443078275564136490332422697299764943596499808382821602537905623547057188574885161968400560267124956722684606430885404944039459708357161514869455658642783803298767199356469002593682458654911672409226536565507471429380830213493250451022323393029378730850501514576815704052331929046580943355440238206563573052720392463726715622364138770987459493230542394538857434200349598617231532690549055441720523880904490217778424149451500603374252799038304734094889700166393527434995123930112254199778448240428239496536684276432389507788201241974806311708750742424721177963222005877473900065841496529058435556009840539431621102007793342332745835005366088179213719244971269938141070520115871004166876356697157113812010381371169551305132454943673268645547101718865532630140510637322431723671032198913987409418552929858477749536992918409938748680546702379214080021954613752319270880834978299877935491299385884612155364553926933702035733456864858075076153710236020268483766247803733861967107537415764248439776641549317507636521100659178175044318146560473085259083393849939900388511209413085983646353449687751264762985207864632512595313715810063498870030702535890268034406998660869713393165844919952617952920359323820292218344336146801798661727431646560543670803925435952975252642109724386728508244218866879410614550608678677805148505792291524498490105905363512212839217696722561850941630873292662628284135709502307212242815800253527387104122337500007535066588359612477173440299884397623750688529343330605746239385390460008955008233496787177911675598445007967381690664737885708388733042294408853337857745384146377835349919860092789834093051627653523327371708212552390777610234563854806374873102702312673206890586885051783816481290439269110299999963042343054973782811101755801716927069608247661106630652390143704700120369851602734231967653439608568461645155941294281420443618825319634648140109293705477619000106799567773193111339649718106856851900653277356589206786874621887497988584816074637925048593971396717160660072621568924597449340704609607363099832521203177557229695536722778939350873260795880466691527354573212018917682033156264129629813118588391579246939460290942587596456533015610460221038764810937492861401537896882392886675203877325978786769970056630594811889664907292007940623649260385660718880025173656153469482119705505093583460055027850466263524538132938786835322862522784331867008342259911697763186974689478906241710571350042819325989349323048946129190318580007270790455695508620903301405411622009997278105466374188674302298587487840132022450980542525490820071241905621183221635164804134085758363520359753720459181556981086041126970019576350957244311458147970883018818527303840967193773277139610752745701040964386311072388328098427170271203436577160512954229005527920502926823547129994676512588399389044136267018824003525530996291074808702810242849958267804935421636017384558896921496112496654687188750941073275533800669789787944635468788838619298462231372492778611367784813573761853548374325401122902203007202944064317026389181213347929216197547244342343723737484381412895110951831317411784967994011412600827155566989126509027126503148674391998310581357313994276271117525625626258357852914231461000907655862927585482315605943864406202012756998955700177251853297166795381600787663548284786053130969117695556385864404176803382788776736965243889086238954263887174895044212883158501769829343208356668696047845796410781680335894063960995495238311727932688083553612249800526030522120652858224000150335222497037413899249044924962059355509223690459893337211396880230360045221185893201478056361502308565226858411889939139394472528692162994109030895871848796794161958668911739015000478466414921006782345849736014368269149656775198391083343162825552044563632558539939658911791451192295835682473349489161376721828149029842730284312886820660360648909997675653438493848066962561220378048812600012573844269194578943686491864361707088652607933248740974099558431711922050409062209689111481325765657302741648102490846496573913044140677197229835966911508734832568792630881587193767195545902388287382293437384921920708068125752101338386485449886130695152034561061244042786840456934693157617798769760300831612759347494949446706073370343401577597938776716310951513725227424970829393975156757404753461947238829536594347478066918527634815891387560462865254314766047615018212191650454271746347118377396842881332183865943716652588165381544948414818062559304424149440470852980152467140258932829326725777734965009960831940449874074551596458008831601046678481077593700960789273839159048677288028315319710019902492317290166696882262944379872352454773765297914915973578850706828402889159656134130828724586477656271416603446511792227764261994054247339084745684135775620016175483134829611233131417394116360149036534693073329503711024034068374513783337502479391509894112734205101220612991539322775833451012013255359214940450618694199889843973707206482176761329473087771217068504507061395554061594303657271611758133259074329121964221073221221784366966410504948067303272049588336870505927519414379005202150335846391745666174297895161352037225272781558075713434618123935593695986521313242124998177825695432303281696216939972945409595757136218080983402200122482123985209904017638749586614575858482934736222261695705485680493637572188802083042943752259555149013820396555868749665176967095855500972048024702622566913623194225435312089494839631960196156302881109717645586126586705244770792842372402498095409076670854929770090549039804187244832206488969895134681585946134219220791092128000692334100719627521300087610839902948615104204404418109499525237824570564614432680270853221886003794168179760710134694457474307433126651101262570166908021278611287486611952657909530719842789627708866548912916347642611697950843301177610179237654586487028421435970910205736990026247049407718888343476124765668033637961226486658998097340590547730586979521015015929723767346662957640044431133262754430105178342681962788242047742609842818446848597952598002545826552554900610473688162769308626480445822833163168690676654756522920354906846123241214698139397038000849989323622925084462669851511387050933418000007329959716975982204571469419264322724531015587145058615758419864739500957075677716216678235858219009352054298113326350584015185704325710277099681011714352254685364596821697278696126199535531047394367826720138091774443381005301536729860420188445375422119221263172140106193019699192317288299671962751666515327523834057545929207707311063453568237759511732885064801114553613962541729503355303852953750741478735705998932762723343464061493119270009379791025269894145281009138716772214270087512942895001785855850830864582688664783009280537961766653990673047554732416420834831944288909821402429327369580056436247045399787641237994128190697687946089802348734009041977371807539289278976153956624992104922019527019359858668010393200755312497312699299337358009771420208375470201342654700865937402228770859376752660793001197577481772091105817507072385803376752404561688445204809364181013601910091484154364616707728758066987239568849692241104707124469289921049252278144381240127005391042785873632683314764183663753791542047871325835778863907696901353128507516562465287847428471792300167014583780849464210740176754319457753507689944633452267364330839695715760874714104246220113547082123862461845879826219795559237865195486658536398409165976696098703125323598393856006364665289139256668066617165425377883687468547546860512260874575760954019910976068751806224443688085092714143451025227235037502961178624789776996900339171984803630634416947173073352749119756784597833042813370989332211156111539863138978024579136403310346767018175552191833197344530940009008799420044925838756775217254108024399813916259467617956775820859961655566152907456275438190321157630673015837327761339836572815137839320279295916014677699161190784958581251647161971165375682316865191727320421521391584158734590026006468295007490337456684174639357838317539938245836329820554715644559873394674305678628645517113695903066995090785016981915775940703587214582462612121598879848480482918359362560067602602860156526955600259475681989447396363968388166435555536459264658246414622381449564227166801823294387055399508249941671246434641801669057575153689426997876899606096001300325049649701604628117555925515634546687735440708379202141162442995906612366699931721462612222049826405203061532173478567162192095478307649157428042361099864995207501635102403877505213849395754544407207187961820097287323676355155358751688229180967447236810215668095620425281744367187108224811149740939816823313777990408497709359789663845629332771211357262694416783662288095834907477974464666760885004825472874754346138475470133803833536097544693753402645244886981196716510443547217494342357110310636271276120296544379498332283987641166058810145720246366163747834084586855969317783062064637500248204328708560458492073351988150122753133728803150251105953758578242342671865202093991698040413889916010325649215603814415687202056146629860862072874575077170349885285747294911816776979790730293711057575718016498871162677572262668381009729880855804783809926940444543587568627551614116243538624865805954094076156727097296701826723694248966169823116211235252785279752162387688078895593543228915769248721157130702935177747222568708147381468959235208384653717825517087924735464555287623617577272642878142723891617956829160656998788613452171807291720165014919992066695734525461131263148801089216335035484473171185049549276861294860679440989143627046200042972756992089366264414958034842091768179314131045379297021301122648635737259605573886974793425969714694976650614515838821644991609227651665737259146731078125865620464298568996537019950185474047940299921618899263390375999531426871802758877027699746496568869349408036444968405007159378943828121904228005615823768216380996059072831118050303940899282439122738667200864794958882445818364201682259809752576634629817268028379645244792121667194014713048001115299299625820972253120271529466681918962212222972086618278738472021004218375915788589052162679493276099718565016005486558388201968521660935925121202577707065227810101098908459080149820468575391282726755135490414946920278327927055361057995019065361795904884992414798292160580640654976139351204500124638651164872322767145357589896496710874676186917601433147114929476841334297237958382135953775397517917530915535813078353600764403185836318760080707112708128790030728347000603085608521681274579224293466467354902299595380518690692789024082266951159851957009981629368492258630351509724604992480254893315168528462264592526425087144310217039730430383327615721447862132130845977012046213231395405066083052674004695609349235495161678957945638010890467042688082766165044063973800556443084103548793829053749036478959987520386192533772319564902703110055395281332277330850342020746613636290037783630812249156734519588102548447489152961995646457403018075387459755161747622784307153132195602476931256370860986190133642758643090678455849328181753994476382523166872001844895762341723441727345488304531274467002874372573964452762684180590140751360409948783220990181926038619224176600026696500317744346860903258920388454440391368975551639743706858935059946438070440097872377718292657618577579233297347716376180963512484379524359159113814466686432896657854951882594796611495659709380761968857880639866415218221758582585486175923391127864489054722309003509990840474392271574579750776297169154449102421247324861087165846613768294511557961012908941327717867620489429936731406055017984544603016845786056851151659972553092417229679614489850462209989322007874846618278541742300410584722947657431686354599706995953613793913057027749480147420403167479054480616529927074320078898017402403690971214414013093345342944008753206920824727020108449582239928735562588795398482407985245828298437168874459462756380378326970593150511474596920845049121050350932147540788655942749581837221390443138995960479141920897938903599593712595291354740609031135933001014918843735062115458703636587040916708580222401998978536225441564802598332131519434075647873160459979761471633982672126397588830166784496663768111341610400939442682971661863681663056814628917833086568941798930283008034684757315981069227721856000673508689611662773945149111211355071661282005764622188426182391532635736590102740101977802123250439681470988092780069947858065988823302834861840711676802646606253843365415329845567481513258493146997734869854892792024787161252751023858163128256853305897062668782612677477649865729644708197953069493583988679763954400452369193176674098684696742223476042929971976502652088464162938745908664217496186682026016383723726579603414143880269971627791882804551211201544355298469905547274586742901387446497858139670328794719836493783794011380482867571889373051590580334016085543954245940904615301312366763951548175953010662743107128077272107754638583856278369549246938763870989886313366316827531897962761574275543479491253739563290348736354690982667708898954836328187235123310569704518122482974842252256625173517582477917878575171194631674522104026275728205653318686559078591206430008711651874053151844635411731423753729837897127076080605843577385926769781381299729412651573987335861808761532035698152656250652331361077693769716062483143821427461204552326497929610742096767221691501961786720626956225563857687407175417655807567371780358091336752099328054393708128255847366051298126785354440445291770569426810329596899068290276567057572239268044990586969251159186182483136555607402768388794348054543855719799403892783764536175080476678729001566084859576003386193866999043847425814510187759278697990605428181429566140360699517812099030106341552010943635021720608025667217042551751883307264418838093442497355746994729745350629540708063349314646370861137305154438725528338068931848515030279570347763801597249082301493256292494894577642906392684953793353079113892831688230967703768431700962506898696128838226075182155091548735263844554354503052349259902854460576470058957881608623376491191222870311986382627920233836741526306646905845615056403875045930334631340682307994914075692593830926811805996326326108650465024226090449137765986007786658813052036245210955123771569706074812686713197837594662059899335707469273897322560484498900467863783491967636134820729637159637478037145732052655222661740391713845384854131274549415158394713350443060481236765693964745036547730546484824490931477193313227692656585581780263516287746897620995247693303260616178771291167813555892754928686379102091866481363537043647310227799244645774497201449213122191675274537343780396697652115951501167081590178586611209943182975659417030590821451828492514787293236110396864474597721332234747298693226613051364344255645254395359999923282169002454474901864317978940091877749983990493745070152180352050738670728953368127009356655052288946394484948809259971835234825021633048977456170946538005410315989165894371866887386155420304110776696896463990180201269692723825902076627444856027780772939784848886181256744491390414741648598970024160178585442168329489946878946199004491630635121502576252092554393467259381443078500577819570238753549216089653418593986979178652499575782030310941729563934045420257546888204968851580797408419382703644785370576695325687232490416147854682393310404526722628300583755604737527427811567796496059235420919816543122595407884974406818115854513243634341325531670239200012027189564093811851240047102209859755727262804029709023966704920689552593514166528375908590878435305463255616948408337553882571869197247604369167746008463740264485208886280304012905444122489157147558078413476600097988145902848858618852354738825370939295138453617837646820225756415588305501284444669057608441057024081543203888520592728407986121433352314665313164860425826998204472665057883391604376107195742239054725109260133203001818501981355486855967575434494748484401420851857900151368922811250497413404285286923215417661097365250440471843666675296099171069067667319658841755588537414430792533440032099595143545589113303540861580645603658792519764271862830537850022635195114000499409974221777774109702101190908521092392249123100114933617735094462050520265908280226534469967868978899234837336461241345470425445373881641335825126948519832196571109717675878246705306810288896376178411646519926168184507986240150796084038502219621105026022183279308195144512946990199974787512304907261551707543711539269124068974727110149037194196316989552523895192512396964493754938899774027580830433757408816192932056537919956568092245983092424035481677377598645972665219287880540928047880465617120653079812704197000068078503224615175996015566705568028407506413121530226469866884372083807869641056796362624480514630988584283972938666226240292858421787143617112791219741246623259770859946833682429982637514069651053624420977654198915639890525024821256341281634786634563792630870119802405692558421560593868423644610189574984932489661258908266182309489361964966853121969131151999319970679263891806819768376291141054601171860748599103086616093610762765642104020696854930125718523869950756701567613971578687445089783823485545002201581834151505158703222021678293016887880992341513308724527538891581052904613371517699429656831002675714025076228449862002309921364797896065436532608253819672385778732111309221037662771951812035072983348505993847628234637546570520086676764166189722682085012316362257415041690741827630889974059105509784628411796048936555066399533983241151804468213022645142767749065752045744233449157312108553802178434694187742306299285959333389097422558199042319826666642392460378701356085755516509185691367033074882400203872336990489559408094686351008273048360819146375797467247162592635069033311066688694577539409606902725519796108388083664155400271783006098737923937280070164464737695701924502478749963950488854590120456226077959972388500325359400855234629605628454079185879522130212180853661756892916728530925612877271689784765571868328512361997250108210468572250232097323759957865683346613113482850175175190887506260082455856597521920715309903269863969249382356755649728013278468661278297510803370371250874666038968484317709439803007554171455341609028440174681495350083923626699709075517780164161298605710765498597483004002455259585734806939207833557207153983825159618257000516109377756211007070314173413668228163746796531520141759788988210965984052928471942752121891827842461101064067375392189977387590441919094020525674880371418107672094111773221366547013693067806904157289514559811543755524781563737720104014694350179421858530089530296958097776557029019541608122383823850195553410196169060197858070792125632512105775010150284478207957341480636735116407224529286796046024452768921284608391657128264348240461272425902561751004361127562639992554021691848972787577715013900688545404750714938770596966700044179277612203167589050207961316607475001269701057632180147457894693546933964757213065707267001699260786324892580881567937030671257200225458029574869642208552230909671541967790568546229386841896500162855129243910008747861471081966705305187206727836558187093179843523977781936602758499525221060130463546520509146764028263147187756583339669206250114522721717294481292023095020396313095226191400054316987674543162662470858903081674360743898248552473650058109501953582167103684676487799074366955436748520254090441059082469544762915151111341856621990979384354314670453193941557772598426821016178614771501166142280859219388732197042719167857055044118260716365632564715468574693229033862686196290628510935390619039712928661492344236585753981070748614530991621318680418600495756583186410240779035316647836327005421401078027015804987289918357992944600194601477062633009270776945594771133455687536874032224182697819658537231726582338583110794341201584074928193370418856100650017632543855331830065824965750072076418229833286659435203190397730074511030218365217931934958522570745300231353536584723500221517870686580098915792768090116119881374607222138176542211790964071051327167354904118144424755010277116520229092951848282438924297812393084399139369586607432803902626610389363938152555670851822318110278855262922261487206334861689080305888041442878233388326699906323603364863420774408100514211535797874617787485925211784452397025145675059585870422054209155094039003165172384631497485153438094321771859631519290664547159158856286648525181822865509543079320112442458450126373837866539741666095613091642412001481960540383293005738101224998712232238631701625289437799284604897146794115904461683849435988862866711387122972684784333410688603370340137826860989351754936291306349410892594880358339111386034265376335811464456300510921459282088439045435417185958791681667956563568725335859531603055151367545031596275994567034993457126781544103995031470269506092501133503875683853577484933126937199499528524781227502847939943786847307054503420785260686640784386409667691485216508202161371133601202217512932524470621940197690405663482533916885029520521371180956639293751113761198336749596727822137549042867712324893814613867423470686060506341321293131927291501029413546727070059432016445925434177730904908725974495869828576780974397050401592825161411881863509104790170375586408933184688783038498075189029454127072495585759700223666853781761490467585116171045414203138538963002754381503966694949662599222311884763019069803114211243832470959799277236304873043631136826580313159348328724503383786472146058405582881981307949684333852071832037898223205357500865893084710532356541381140868359998566455719206331419178399100771406264241246093157689450128891937508225612668216160078409997614142768447633406680222893003369311398124227048335761149546521376357141543512272744615158886135445864759707400616052428735102007439690027236462659517970501178746581934438596779828961813018587896725865562892829332354761073139742226771577097471252728429370413167122207176342112854319279012076342418328042901809647059859915613729185491198400279204899819662060814297133946831145153215326457718188956394825982463540577421269492598805742907214529082678029756595564895021686040976692586026869341257110874892531659820907947260256026260413393340795367607122040001838709634246431715845289234317015845079911037379978395194682805434483496915840837805322738360709178970738725981951398965778513712608104568082879136677603234693657024995485292175163009675055672836284734113377923193857069504016060609498892144241015638167300844480590838424927128176005072454887802756485578312785190808684658052926876837619113594619865037270076787968290818742988241083893004459279983628457813117843232857194513734451427484332458176561672862985874391336876851510850328879744814646912241945716208580166356223618037735571298668018444002181488136484659842227455739993344040311307483549127152502805146992963324364631501763856370296620860169887085039855930195626024788617411050439854064704794864466488993682638547889473285243469916533935190624918407426645219630833393458146238810575678545871396499072869071894359317814966946670814281019709511917488901838249983423647562395095904527198461981129569479434231705534529141274359041503279115220675075933505640677788907943783562921038870477748642263718827383190877762011843993003951018081613234997121482564142628157431609231230665920780089729988614066442042033401767640934019790090932822152724322451208830306758575069709809225148803856353548137642683742703413857615647986938650254605735789503360216747860357550596021731737681002242991400370242361411026510662747555556260064630511230620758192709202749545574258600922741989388312130998225034930310274842502136785953556142487829115729679289483660966183563264465897100025490497158719516285625806629031238884306443149957863040500604216784990880318098588448687186699912127659917597650870408075764004384123698524607832493244640049061688885662816305382557448080781229070866322485329867299157819536437096027106298672613851454059297803091455129343506117401435667150549275482970038353010125665541732203311440498885666168112474327114731986809895974200296525798733709982669165426157125549918062521038796799829393898377682474471107499447867585680026487824468655523255266201387702522751040744771774578766435214990602217773107450585598488517210127830872374830261393035124341706720215361316245932685353599357544061090209138596524171713116908773305256652707788070539896768511475879765139964866070859727900984867736530270830739429761348842767250339486963276104032967725856011051321655942213461041376614430029661064280755312950853734136220883236505634731371391328747397100242282832901017278004218987863762890201198529180167041173299886690989963728673175783544982551696580487194324072359681180941589179140857019524201334697344230218921591736225383419655592616241193700603289800238868865080920800604916883193922510162208754890595693015814252488073591777088505524702304017588444819626144521186699695409883276789103353070028604658029369421213941343885247525952737711230733416358135530012907859497481231591638556133286606096157337046460421339497987552611913909911394504286178165172981467031009684279640593242659008547656725808178122806930733771217190656687912390662926262628276945480398604545287040193027428853138768839012314359204154129406121045638752685728346613731067064408896815870902671723081864833649237797236123511864053738993813757180781191071393999152352176931879736081063635186265634819066852505714264775512758926588105540525837939810858112817123929093190115777122407174709661269043844580312978248285477678339988292906843357408704163161056150526983909497163400015737711641493208097606119841031616142596470496524650039923193328219106679936203071094993238169816557365659368434984437557261517249691783562893149826146488475977829638060956565595520242525406952053813106445439434169658512347182125881956838794397611300715660333245728136569814140201532136219416167176916772329067209403266077134674638447072031723090009389331557034245250611908097021330209739120681474369471572049544405430711182653274351432622501847811452685162929288858628385526001005239694167733799999197211088767628976215891602433103196178380575207033207500695439031299717063089502398905116486480879483270303711206600769698335076726658148265276626179219287153441731143478217921643789982577319614486067182964716880573484852802540548950558053103784973440096605231986089793892823051000337458034650789687594253914919309418601187459385983820277665681695860352349027294256441205600924407477436588221218025950521123406065606858500273617421149080478415298314857823573402524946749191319643681063922090651629468046943348592249842104788523936929823791625080013791976905771294676159714566328806011792380673940053615419118423726509118232921474616885918469509370172965413222232769509128946259968566283024898120129309504697297776578491888170688750658822246313341807780449762739015623251180381543603390636532846982943090340736794041273237358142500236244418368423463566206410124082600403802056650159935940567219201406688307099192682001342150862506904616595684895196991560059906507270728686035862022205938951640839011100792810139002844742401517926370750555663717178288916285916813757658245058287342830556310922866514976925135709697176567736295149509530895940328305201148702113835720721901866156414087024405169058856138307476008843275867398110236129034219368934132508065153309601756253835371453885639037522933172824559921708969851515119512713594855831114914367080784642052201441856047035287454937196036204874126428784531379796499809926168095724959059266948537398477030621930359177450366423103215227507238590076125422184649720724375656674064296595568340695071719604010184692063437559057757476635314114910530110460604678956659224463209512495685299225139244086453019068493200274848698195788641872149561333662352824802842749806579082983084356762870334239813654156455561195074821178317576300125550661737403224030634006301757866346814827967737918987834856486978646976004537636373368558219276734362364557553389990390122485976729806304467409924953374912230992775214242073721796737948481791128236818532934637531748235150915491190396235196391733589567015297251268618270323134454484825789405086060890691563664692302972542661914932214994674762478787478354592743370060423598391649626593381528960441139043797267344954313959466297661478044369029947037056857416715020326997672498138617278196785870493240242198863563157229092362587425695571226363080321166693791338655293549515932168498441349827707317998434395150275594320995484160211026208875256487797820809911129523381930061411180946855904343445728181590358630617131398824545603175963736607983824340797670706066221502839060684730006613748569667345303130661357927077367016897458603374273632294315744908086256434882610216633789986260974719032137871258336337091256242377861919953049686716246261027638257590852176462470107101836512653096561125744837468687375943969689986221597774619359834382403682639486189958853819580237959635078119970856838054797479892711160754110651747844455638487901818439757460664770254778641307343249350846822465489290863676918963111877236513779966455544043125486898679158387157010142849845761304951373848035230537161093379723605784071488580023254067881976050562945002148595126924278396070337398349971387739383129164661790644450471045572991430282621901056803014732782401255709867458916541534260679484554706979806606483783192390404097242704800195970175032954175915541785816233726793746321962025405020505512638028076067356450115878113730927881920737544337213845326824741449277107146620995083326496975993711420979930491443596283656808742847457235302537928103011623424719794282779783000482116528841308216472248792605191476857743169723956444191135496088381021121906764955181914551889885413766976102803716761435962766476117442208249120334788125268562795345087434948660203102174914009654950455450647071760943753846255273967516419144769884987130132263334676180698902940744439306121894899033775628055510811486191638252266264741720648219828875981550929242953797022795160702414326841409788520706223285355969729552002673391162726843160100490715349660346919352886566713143183749440164767372066908836488081173430457976811181650923366576079011181679756070375868929074099957666382868555735274800828980247924118009503204414250486917428539882816531410781630520043198199607108402102824833844967744216827842523865551979283524304033497016114997968916463684817070296145083238383148998399725447938524457075049948755057197197648444118533141144599743864495042114141340119574121787906474919425960026052921833922433366336390007487701604612227761905644137212146824853774429551483475410635261065733095453136613852661497071275625817387508433554001501321894197292296613892423906743818364059597371456513325772020070489131249669259461462079982606598880692765145220241950662061239028574168841507569603861566700306592558788371159421415137077068735555264493901082809118286057876873186780166873103490043499533098364129345569912474473725575718950960368030062377335914768213685916545384360904579826340733552785349641008263545497294374912048977033390361407063984992623784125153151923945097684407313126731081824560787850459677036527347673857896761821395371415434588541789521166513615385202103478519225701491499960579303464471110999066210474376985510569037582934563231503948249846792891936813074655983740493113169000690043840591124202583132693433749350636113071556904238954184998858795195452720235293472358610262206572801194984123493712918998858023955888452556074731730048613358711472110562323138645168853668797831315177327148466184057767212082633236420133523060295483122455724835950430611845260938108952102055807182313565743878825521428690936869255111735868933620826699862004533541810627068596314567339461622373848271624559164510774652302434249155209621650021655891178513766934555992424368867037112801038928634951192021137584749901367032518827804702895816469915334572470759468172545012596338361015772656701211142840207646629236294892199211723621780907214261851918246388403334180335053168419930907287819463134982572185021073807642927022966085269030788721476681485821695613217655672522575000774874800177063495867753910662038972166902404092266236914824798793183810493095066811813183047944131796749476337135740109018971667558571087661822250494757364732474256724968501595561035585290989625535631735198183125321448790651455256880112223315117399312116549180704405347923408014218366762498155347100254808398033593417759343187905052924410096319474726808995114430716342575920871994449352642518310673788530323527234614979508204872539693692010230086423493205709307924766416979573965932380938883936074545728399133865687651912812325503637055314384383337493582481986734779436975323106786834464417016622039777639160341677847079459962859143803833230522995155183651619695608371551194076722328313624202353378477073017704898563599873595983627048079830869814958371703229573680919020600251484124098740945025667530799888756899032880602872280354714592639461232090170271850905057859020907226584788210496342078954276178592506013879099390426541690153695922635631607435364943909363857865219456923953786498418196417499054382385040782387246207225216841955712410725606358162695194825082147862276838455923018309444387541205251436154906217871350071083675345003523669889819726341129607793207361228266367265554835949472188098431830625182105697994293573524391826851492927855569526566453161632195442784122324192479193202724404101427034604826781802289842603211082213300959689274159137085069723000308720979537027443630695211868437348196170468330884424389707151529110673963609254302850260537949191512075291996750711912062486668935838069656421632910857329138027380950616382184511477125639759484436962092089533773363302567836074474926714109548166739671637441155780766305855527770986013755322346079950082621184489850920027379722591316786394987213811019426667623245824187923949906483705057263849591939373689753923199796251320122237982031973876458262312296564233142275497555982928884668240587915205655953595405074884988538623018011971260719385960808877169795785226180832574523202588317805014705476605682748874964015274554798430061301333862913872052912367295651974273371345961748129497138771345774857517490882781931253754778389297869501083674844498120291257189297482659640143526703226680223112981437052379294766049620814374595231553689123205852347002033790546473397883903160101975119064186066041956419507178604866799544643424750117637447302219673481076732614443910195351132853694009784780973846195771891937354779292026974156442626542102834231074962536020646278516764298029994939841821027217515644340655555232728748675511722104920811302017811867267351605682200059122282839503578136210794219709172310724199681892079735043817390138502076808045469133086905821920936024357097403507183581005170654726323567969828308075341569649790304520184888597469917484220044430280949767402013113913028378766328534255545842757861534086312196501709025974835786200825301247509131556144372321777773294581422913218183588321141442384264978700872324691342575589777901416764824885082622717256473318620728239314808403365723416683216449360117807980227480155244705364635547746071028495645106971719779440822787619615665898901637858962008330909464269062387275106762176419032297617494376864071111838038083975245665214521604981218517393679251996539764682455400106612704356611212188723634850312747335140868942884303375526548624510630150861867568604930463421957590977019054113282969756564243844118856350699751085886047905508468308342654396142937951935462244258211680326631585788158574015788437416354035135009570705032741807635939649471636003573717031867948732643507486064470438421347721112700335005206466248693232613228468457442221564196737981417368744944350373742493113927333000465461772837218154793705030334993670651109527283457934140812704454872569411218768821245237789316529646676096372975518453910109329860414179695260918517560522156907183187623310999893952915904161427337868684165243642567044153584727402514194672793110587183078709097015330877463053993176092528811770722778883071874735581560953776256401654450615303954085395344045696063068558771095132934120757260578776730238017597314914955183474795743536498796826232952177854169114489337468179873854619637256191717638817630730944650951612990428853198704901404775170094318468621063550403765975979272034374745495718695041023062306987847536110642650427712833824517413914641988508321473766788263339874239712653504503477785845565433676443602016314807761517188162243017491626668730219450217944729184355499288755962742419036531014665388881581345111760146210621579553334162842570528868046135780306910275315081019698148253693948747811891187637731438087485545905392425487995643250249469697757843169824140163772969167148034708017089643198367785293272721481579540580295907985421564645049607317736213596556228406219534052561153980553601950869224254976459267982545158646413174164811553884167878584184028557550752846095281155620078961879845803155778748806932876887737528172108484177928668097048289724890106756567427454147785322509965644503704331568324886653539583595802396362042895566991987300927318690331022405742816419638138252878136960779777848654082976721169432146725350819224419744037011460161187460272009738800463136013452696893450845820128768499025613035071210843046969592263157355630523707558246616734993589754603847897570035274837249353741744295063953462439948737421925665894443961710331714107239198265523009403816582665072455188073073801754626353651086477045889292524266036178857909930742688641084184754137022074163593921852048780374032305325625301645301072940972616680296265403448968536417850947286705781252991156927958073439948467917644767539847222817349060161627701582631681409008855939950357788424508024229341900461087180230359390077555595665055713904615263051297010621655759895504651273752590124754463601091414944944924181569036186850365738749583239741940504029864577385514750473287172874461420166542551386692709242915110705311836280724564845946832503537038602313867193044940918948188354951197867908103233490306780104238024536302748109488549004580478321332455787426528764179960088268263878662548596530078251086511406784077832180261031377410512991922470427002242895063498257661253193498955194975347493281689814761603588045713361948034606214902418972912279130734788544178008583150798581477329377849353532281702037143962023918890056350438897141859932465347331451581330311512953871215025743127616368102947695889248792261084940834206641322032505981117148737691592947349255205899237941579238908769542849622249395720969343868064093943686122193880468573407079374253982341946697147711107350876743669175035872567058444187471606988095472080771280394164051367172139775910362258057715971211475431133515898192212544950769669483532175090460462553012577472301924403621763851349108393895560455771128737984022906631327119414197416126039614763783150803266787067945024256671340139397856742023262623213043173592880178521682244188091154792346586731031561952625010034090954050142505498635882962036547187261304479698580278086566437138173765832301571917961657672009171544046821401525095166057033481811272055277140532674987467561194597288461706104325218200776689046895427366334661138644431095041909021236689307558690681014900887937792446944790911670913546353881571838407762569977602552095622311058457146225517438815096921229200541112456193089031625983575544004265135535296212357949197545446922613727189752170718483052643538695693661671697392306252944001178521801317343551433016078745587756640466530904532863644827083241869431575089310740274692200555075440366397476969440046950176360336112668616587045333192056154225427745036285422316068692063761463357896876154722262559793944078044807517072493537776724210059782174891867573942296528937891925519974259381842109663773142515128952083184548205520717363469215771483108455656647793750067525829198864451019128396170728830519769682013325730394077443401130100718454147001824647913594390692129047491084755026249951872680093267772804237451711288029923106979075735200756233745990544435995438370903892055508476309495506515593595395682315803593651825868281750927885737841952567147045253493960685900516043233292532750960681919195936317601330620601662622581332308315522289356183958234239525679379116032936262793682711635382975025654179566439980987577983232433324743661159105607250656767153653689977152381073685299124648659041687344719452735113607109823310273389928937941039661186729411050361711033624453849981998908618635456406728363132366891416980034270700601885091085244293009911268162355415111437287257873249099328020554236150920407329027396601881377780334472752862431862851792240616093317372345921904202249110229476589023100901722338805731116568881361335862052751628668765870664595679371726982836065749305169212033335859518409229601745059683054325383057372050793122554465964657605231571701640618962762814412015301345112438668809735666690132995339320305886421869135153572661638126146346803204896103933410650752156765854374336651356938500364830233291078765006846335076687676345282844646408760851645851367472436699010370827168691936459623590647291076607937060337323799690782605028283328155496405258959830946794672050376829886088025378025480110894093777956996057072380738946394216280714657138950260356531517508017511016168307193541271241564727541863445892190829614091728343575498733115174616009733655783167606883364614759161470979604325843756816727271923255615394267094266319296866484074615922698174234983251974197547153230756007263704765924400983668374867522368198060917578319825646775636689501712058738816668843951305151570505547252930771395777244061605165225632412485976414755938695715348103797834479629012295446725647724743644896129749429218726088324785608191153269697227114524185475025998077861323985964661293794046003828384035530385237144031513573380668756319736823214554915911231195585712869985397608012319095829052653872176842721537002287297762961545752714216528327269670959896157049183132053137065589844519655401106353305785523413577811404358950236883231879696086331940214368875163322253000976223449176599267203574807962867686147539824604843103457994160226274007151781135066756236291403812820588131585618376004605397791446710409499491645733231831815235537699360300764671323409043652697867099324705222039768475392687583687029720774235149136936328888426951686438603162756724075782302369095398887504916799189491469797573493927537527879082645706227430723035357796910947484898718146187986815451793782306485579134564935151117537648330664831869487288126455528876478647142136403215300754500203997529103845346641394024801165664754342013724998037279461917284729502531237109805961425388828360836514890358310977300466643890143347415691892811927199855442493624386003404355774413765745217946178915626822245961126202590228273001966343210735195015870528931938814356567075133029361551799492417914078490802952696485438477498549390353138096642384882010470253390250815237448155609793976968859314139922944220389361216669591859063683860964242339089557636954381655060982028495954320506628679253343888858349636815605019375923361132090091357250215739342785290905564273695419403412544158961124776565970101006862182505523006973495373930481099836635559048700110023692276459654549285585998383495602560128535739303235424423865432578454376858718140975039289016357920764764496187742782427691066105353947613792138486665466700897284863674320507444055620505545868574903033020435519868522915369709959695649637612405116144218065973418096610264039236627311873206674885362607859368268180622455952280107251057311309006881375083007334724407780404159798793532974942760440510893411119517396536940169463087939528193948033959417368764240224836439956030570543131063837913783486897035691729833383705838645039639441605040825880946056896857228916613229240729924640425556905542138548229647609395812322492141290307786960374410740991751920099896522452216929471079607154372241243837515016987272249256402633817191935945273879343822425256617435866661859579875617908989637989341564348326151163522652151099395161268908633466069937601315144399040888196060221356509885129522488324202190328293705139026757973187540703794941113965726311534021529219420298363243346633332624796836616155444320410193872027893207599706705229787266614578238896417383933947245848298608674086468684941893406352645893034008708131229569979403137224271713142987940050447567407269114089125680554226705998064848530319551027385554255871974389508824214616971881732565009057122876890444217711580681152974550013084502034529036647698517301786790019757677278949747322207793307194585795695271685974929979946555203150403743564605990742878538288167683619235570994381272719638504939067756286155034259352602783018608905268345431999803094178302508156932145013501647543892413065983368012597420285296022287187049081778206384074673561025966275490323344415646434372160188475580486109205035065056839018036635044227988836816634041163753963518448879720781546228462417654329188816051117503429412944138782447431902491012944143408458921537415482351910614670889854576934880366497147302962727039230301178847762505316075243705566085707554980601332124523476020991163972077216276846241818055902630773872865248193452366466494192017753120400230843683959077154993422067493214734657037635914875672829275158494484434460870109438152911300096626194223938621647551795029310435570628311628988261110807189698549226004228668065320948288889089096515890638157461764098194758371381196515033220855927279585929384177960829390624015432477200281898213732424931600182462532731235049241045960814803201447126127492303464493146638830717771517304328439680415678934404318401234740916656765680939140004300593357236590834193677360307941125347059809928359617329774330595216782012402811534182502782691630349479223361578133008733124223801410605001640447864636532405690659457356259960875632127979856511912594942231111530811163611346040003473635283819038401022353305142471986165900488285683699572972927958801078110750406964298552312959058099096888117113907545761678141960177933777658752987931451343259727016318147220188064907541705968055569562835790980556073579674791075154352834241409773074441582919304764403863574497110002866967968784824395749484707516562340475832927037999106259887204266266562272831534505113872557720381258438679097329351448525010441704534211334192603392928855517244336459307326485102955737758590273304363401059026558198538787674382149641761205167737307490136180816448931396334413080917490069571050737495935151277972676311106990644140793542084845527379691193279055672789947829228076000705048084551614119500378035034034894912671645262106264491299723276045166912859030621756661215365092229448390216335307936214832641235639402399251442149308849353549164727885017380139875909848830966857343236948369552309911427395014089385027903152086908148683122791575607326757911535567436420801582162278095548092433142046863080312038419506094573307136472283551657809387014643796882670352335260839611275906960050826232592579539021369327826368087986620712999396786831840543023419753922584205322297267437263674034988426297294563288132734253551615638195453768609985196488528301498260694273706647514677417247270819545331221310186039447644503807760208743417227183315528507291765866821016345455523484925844606434808725765185383688095679244552776338191509380641328122362294627455137033311379618624363277806728366303937953892075971875866316159093218292893059463933642766046825546865829673911926949304548325697626555709282898336508452178909272391927500110064995591843651982854501649633607604217575911075384816846316835721003093433575826144905378068600148474920097403876032971130324212296893311260601000798491907292458071937642541882481224397740427940233546385163125582813326131599973913011500545297240298901089146858417889661156748412013992919766190450113836155544149043989630876613855267797095918161711204444624879238725772737990967526948321873411134828265846513948156909793143596088199605691381526637741495699993502226649394637606971445011787778137226582999782907909630360969223658032483968956902045247581557915710972660364640785102698332275689858851593565090744217788715496864286947921154124225828614547550468529684486196007289350149714734464318138446439390572939422517843474212980369458386675668813156368666610455021534333802115329871072846262192259588565438513339859091499758444711494309924019670599265226819388071937228715829284814168225701535479280748326448482558089344485703500569430958716982633214564873524570182370261979704173789461291974833359609900230990890395014194462323924691721123644746040673951416330741271397779945693268929713520947702139086309603844838015001183578617194489005519663492293881859074624151387414325443307546070647564883076343272594280295081448452723936735827978725046155208607376411376932053345041332207476854250591196399741236243254797621057094262695396015525150343207539767120905382153809715407589263103822561923982632063955073364251275138299235648988571017618463064906833383868854785733587288514288768763481978910424429592715418123891890170649891580259833247265724502587908757056542851725814564085923970320325920787742940172975573616649683802136076800231938126515180380156636544029203678067916049641526485061260942024700349818777591750290532867255246793580160779274001116117407614981637657764930157085136224547784968657917042718914238790097573308471051354478675992888413948802397337756699338666370194232596336292902404074989215793717963153255938861621120598525710468348499297219511808087171448985988554090894419316989759461009807438580967669293162788826266622702868701590188478524617736586954429294790109820882724538131074602772553994739807219622795349854869939549834351859868821052540786801897209708554237920200437266061776123664713393619615362772662659328076660398232835252334992353862987348774211444228643741916714895413775548559828879229625973780441388145667048621419597377958514430112384178351715203313921328362998874582988746094999907035597482593024604754502532834697790851557382944813270633157479110319840371981584975991580572203503725379602578939374723674047560531202461580015325789178901465127905057904445564153034979727611969641511441575294065897284774585541702940768790869567333125794068185812624035116783713548792679231869781403308429786996895598739244458923055444670683384809868388963872527755829874032845035601781777755475267569905691344702490372047199405761540384536932344752876241617646576531482533394396896739262078225295549233072183396616460379915110886576995757544381038844823654905809234065577831426719251205884644398348903536724960262560403240969441196007623542800286793284065799194956994305009036096423325082771941135587300582573033977100244588622782621715463191485351462152454706606359166337999236833495794520110143586878286166413933750756477846955897834815757697787245390172848396934570504023716217100732120599250540821988589754653749692242396246498405509529235184034363662011861262484972714717425393392188251693797152969891763362523307873425226151322341257875060916698490171289961068425432630820974945071883261623837199797579759943669829250437578489781982306830184218639012587339818643121673269242896946392202557455759578832912857008766276497513334208264133542007008483278906107216774973128289094389388787361552731079155718301002567089514501975148717868385563242172758259649463183831322260630725773146706949396242264614226339677077612691878364784847830404837228051858545274435298578153347979450137687853253525358095463050729735824487602407013828020772516701745534194770677427880696545488956598648574920138559879559569187323589457378453722397308880602237302292482328526358448606878871450237030704755794706136681870922825024123633317075502849697574383027931833584593677957889105697477724834803010693885639078357767835301042584779819374738881156144923249292653313818714413468173150767082219007360930557891361191282811591017319908380489051358912805169364776545015758191579633325419899404028089634259974110888230160092736468566206394033791225490438456887779090379060893757424246999709510266602946191517474190834297538438526788481030672114290236885904173214656840791530031365142344111051362278937228403478040004389463304664207820507211147849789308858339193870602478303681245697608687617603869644243955252240220972160381262603663421067843704745429467007729976666907457131323474933047936226333704001200558200406619828480757418048222006734021526804404418116804032485217400838341925787818861272672323714951310092173150127478057759474665960791011165155560376519765160263082208554049425521064383498007930374697371262623037284274358834005910401289538092949307916377168339462881889269418149010211775786532662499921289023401010056339032045039058293360076593421244261171100299515331599741114974170834093261981989222770481635572922676988867897575972859255795686896131243034525122311587764354035908221781402456956969516487682935511501751856641578126824818240831453554792090339025429140728416752263520268848214869475640321271861606282167927063880685574167147310187321013086510200974817070156975891569359949222973627941729863321928389114655949901857915414431890111208657335292870552277239667397531285816921835629007335347577824436197992931199770318188718503653027288169153909998121436459014949169489429346787116278384588213226326286338629505775566998496791384424611908094645117056375708812916521218084215396908401779036319893995419165434671935044427688695165913634348482149673979269751944180696770373599476035283342344783870092247265051615591669878937503319414184434886824955197550425923099282909362132358954755688946272481870659542636819824078250102370959567159708714263842886009567667547227759779612925446698964942747564013064334446492884450472060351924308948022976874076253346651637704944389824630650069275760489482877846634007356547969374443339393770550788732767417587649785937791109468834668323375304312767488962634743035127646939144255034289879645315613495188137197382613857370692298475428968209582352294274763370437360839980802140950277599367531255101185918444371829777134061600569017423976268987505089902009641713667325313246173136685211982372057294255620419659365465007377003235447314486865429224754812344639980846113794808093082177701590953799349180920905723776949441013428497052924602449393350002850152778337217974445110280961482224093570024102328977892036568101377752093239625447796000959419713888339508012168106831254695974980425701448584040174352821035574249968911689029643694554222929384629450219629342583820585497053773324046208989153962494542179148198657046836664902490577452923224833155343331520170106557058123757801622104405010474033142421127461281543363191316702098383889089508333869057238458260879698787988104811075532509266954190889452703723419130576646745290959957548938277433368699120426478128146108854846087960226356869107102182153303583172544830114107032174264401992382876636001700536516493585747849863718420818647694910755823757684078144501671686549099365145899332899119169756455250800755757545268191807868899468719058265412579616953176846415281964486422953621180076623717939673898566647765316681259255890309513936324140422616966679317394383536288166298941895360360060109975461236445449697580135764364694564355814865364210421289608665376692172430114834619871018540000845373362404491048901470767700034580469967262312986731879415852885512356946951733453960627516851987199386070420436847249732853207938210756011713061060530740291414962400478669772310921968740159846746098065393557731143752243512589503822862613045291709833929713829763416395337501278398946896948222605802779797855776767390365328573324041120354677969660734345705644529064311755636017942780431870009697857106889735680982035649091216670037664545488492552359457074893128813364109751237157970149022403401386436756166426731248356139297698267976402983676148581421709888447962874172207071360804088898567579222353089317845910681216043338430882346545698612427419427796699402160320144039918869790973093958116509170364944828351494946087914493217857609605565738634141594893263393398767158791526990476802592611539911444329064227633835238548383512691105636722368875368658788390534500306930913313616693331180969039175389723365120375503697383299923392266721927467504909878118893740746291002931522051557030870458618330490574078369527474526766392882952585914041387614098381857746682588897627272006132583712890413119769372934687588171179420971657527483255894801190358594862461805420806334121609966986012246015344477746095477576475270093455037094728406836750029733545212927937334263020943918463189603991202871126987054890136823562921293525057980480843632069902264977835403380485536474011967982507037475165495685137923193335952537908289907379159312738830039155056679736422292629415216742666545816578265487416025330669294819290643039962719479522661189143568340586993706843956802870656747461956905109430870069290135625573031812241717160568703048724581071301727816889917789265012197342106195986014160026000529381994238047572749546255672345208530073901856517308096248291575297964121183003309233227052915012107546572023196932718753997862744016909882516926998881006115402127483038308378935600545760165422914460438644236186098467417896548447561999930482536717950311911679752983719264969734482976682359675936514916580372865269017448486001263804507906078631298617920157938847519066340116551967025256094344463771026056280001746593577409015586590576252845831834571335259182718710131611059762616408606780143123424218122733319729865048568008231734135527576213179357287196606647203257236550328930399120367640701275232128737947834825380957035033691871269115894154802760387040019895223786547738213322910997634701190438102743200227900333797022005983713813508867480082790534575451083560295951317214798725260706078994059173277275856813389662910791631251787277962565378430880421923898484434740471198884652151242279049113388783569345750786071185386357723706987533765861073945765783754801002794609773585591434473181139593248016703947402653712880006978148074131586302821571780223218833957536505101793950714264233610806264610608942206466606916639472606261791388215057787070266867430481503486530972857377845437807416818622395811438587923090149936978748954825764576062262035502714392803442409909622897047349199782847841100853176495526229506949474570690573845570717003828507513659116716192706672114438361673304904867791583327035972319027827410298541559003237588994724291713832583145910949604533182373736027208128941903552482017927009311598352441923001580215761211278231177238386758829398877080313567152349452387850765204604073785505036781032937166589121519494057252833777547907746657825947307953838931010388864056411868857746378375568612260025606605931048005772008580597865729271551159351718484288606569631766607558816943500001051059851973680705929098936775915692138490836973931435717945586548836257101890024383494739613089725279400573076954053256240110315524392217552817609874318439487212578585573700666094212976549831910304418267731309532375947906736484937976544347381184344021405361760686021152912365749899690295911501834530834010990389509117846571717804852470110144635969864490087268146620785041218479066391692350262206239958134805798276083517451475424018396737605044699491224128224968789344349501988826491499337669257396081367800435970822979013617683479636671746502580940954662400203826646814301662306446806436933343348527986994493095077891481457829628743232370367003723332513150558943255542383086989015790842572529374519500714324181353682855461545696983843501472847851842646048364604083989290096025768190619903687764469930066099298632751451297222891002045500024661451935432111154691283423067790861253430619702432641776546024647768168590221770671251979373558842010051326560909168789540414075076036042954665752198579353172010514437709485628200995264674298391800920292899475517622769903608221310323615415538184256388946802336775636169308710454299417122270346033754723726975855621781776104319151621684372898476432704749328363356029571149805952767075386141447997244012052322075191589525834579862645840525629477470045367320464924566074513879098179150713257480188063733791695333105234356533340614805736297598351230519403054646296391893427679403639249998424405391572025552406417268838746267886628560252258443370044406900068502214441809152247437681087097248715554626157691620909108764106982138629872492024637648069102622237042729216848248718487318664226600790593635966972698552620515129960859698440465316220391633521133463853945718618897807219098131369185184944660341053930963887299883261000458962580388436837712779230122827775938652921218849321085336910677261560605515676086916724133793603813177183047497284670133974728797729544522586162312537753839809417828541604182236259235055328683373695578266501784035507728436518710609064966676250067078183281447263783335707633039871744193201757728583934063712657687517653488580671263608136926906854408637910944091873397167304959593445436189340515653263576565944566792803815249682495698116725525952697550649277706605343613879339249047163890942751328685266738410960550184530513651811913367809735044843355629450283077154499568716512262653495765568647256360752021844954540576831740146197146836812369577603376491811510853349908074391622730532912310581816479363439260445342945989921994820854986938305988181306203457672615610687823987024079184207199809432574236378870855638814453513137455573250759506531796098273611852974517742250484193339590346571273433888751545641305752145093559235523176773916519074455457810130772758821078468690436529291863959609644382794822389944961077600096380578971521860774401245441489993015819456504459534579302503838497723244315359254423847207264954707299227596185287080820516215183289541251952570027647356363068883866073748838688067806424949367157040519183749460684136632136039952866116672942157864171129206091884625396308709653500735212952970542084632274436607015206736164210855713390923123936222664921773674357033515587350264935749985819802915392997831552551921885304672065833135549677460025565768926568541554668017359714719107985110015918770007606064129166749114035468385742158314524785910984955513991211514460719520915801400881932242576037708383935485413411329569329135776557471118085854854937320511931023583339300527114112046920990307535507748727725245441222397544744686259347753729015745812532227027361570607550336341412061548334289259996998191581222316728713871021033094433426310909117484134361167638204072147654772985882372073970089264594157873904450542848936430367605852487928503440308091691828521577109138945203565073665702946091590506853118154962284670986654148629497009177288060708506783711363928507578740230228991581173903040114339010331145068351200183860621536549450172711935495195651457564245933774328426447397987600608546982255916072998523886801032109305935311665052577428312046124636791684549238333328750077259678625012802864082148720771762279508285373644505696265380218275793787883257086387576190871125293457654788875524140104065904173128904578069180915250331511402158355177096281606252403949680912893631518564928369098794265262262039301725571061539107355973574578866839131638266086227163471546019817063936591185356714508808845824979038639333256397446018669623150026233768305906817143656322578352000932115545128736913681068434771039977685036489323044536457748357292134263410687107256652182179142803506021443948747435052005664214293046557094011617620622960487516006742699060939426964553613269054137943690917949802736814805072914109432180849191218291986162521435926718283887833667632133346203420649221757922318805188743785213171832076994997722559964596493689492264010774567736183276966925549178551199084533007984351121675157280689884948573515540346786103943027229045103785127185616843894189197468271514887393699376280118122163647726860757990540534212292217625561555795612399920021460449242728110209374095623402637116626279022152010169262565956823966597953899532398113397997995335387777604787435532271287872807292719485585696497357839562393067968910554001507187098605830119053609392866424662569633091839610835593557886746304350705933268467654743567418668596089904794344976554663983214908468232204388470309808371861621203158808067705122531672117918088973900974704510394696549753606426237171568455455068076884293342760494866733921681795718453384702786825126827260657680169966920471218922151862051970173055644084659031837468568559256583183176955988914817220456085597021087994947267740769627494039743455329095914326993075675556273102399082137080164676122264103616923912270952201360304685778226505866563776865982552207045915956821993836093646567901834725177015874364596716753094961619530648016372800451205556166964259373894934246342174827152763268680792049017449369221255714610581753017324966843770841363254854360913048351815578530470972888848868577121534209318217751631664265576316894408646279010676849803629393906460763467595192571312608286428844707157579864537900488023759722519105634957261418280729857413850709307848825236410733874595990212717423055880688160467853922442593533356404560259996970642852844610997664664829201332549582632409060193734251852692841636649535747041851123277380561412895131260038074684320078558037846646596426481580636044249762397944789451734256977621473610205462200983715385096731990463422320532567080328095538302284109078090541832513358204330497251571919646630535922535441243655873689371483531997080135088694487033809083489952176031560739581214845363092904108746936284737164871792587997981635837276917527741280172397056360247879818812350707606349881324194914430108487059340907866607368638738704381243573964710979889188426226144564539737402963644728117817233210232307552367414160341525699077368538758126095685158327824342272547272794864244847489115803237568995174510480277966508468094717548588267098183408714088305092213503888721019091881346882202787536184340620213217318760681308903081590161257270361568138735234917370877343146810311256468784860268308847658316838238521047641949255650894458193400452287991555546711520701907138815535796105831135969540166129332737203366185155381658667793032437624324801025602778236318593880986875757222452783195140158130616556494346299731798954035925618300990975677159011017292432403730292643262643863516192461080334336371611012843363325476646601213774725132602552138523443919982058399922004889492177824792115961311823468368708230401759438266796259689722538107726738131777956050866679628049515132653762305863724630827681878984912033959543757801846465301618114551748717027223653550824833431018594847252822056128372735023575255908353696494225284767582849095380827601694324997926638216452213085289292577311347424681276554670783023188136626336118538627091494580369295374838000241508383296791040558195240441855666671174403392361945861898347188502878580897653263807190319141504326305762114969020003506610039717400352889065090401566773319845743483259772817315133681814290995405292789563700113507024586669994268550868607157124080045472547211170806264610049095903460079945451264670166593009952481595101463847886245394748908645418632020039943465449789969161334415523655704360388980425139051028633696163903685382102931808461701974318080816108300726769685180129153787629949845675237221329304175574140353181489641473766263500655404083838320496868500089357793715912045104547771984847458175909726680138521598790849059448230816527142137692772521553887802295953119533925750888031261743540554505319527514064869869981163961819500745351157300725002428108076356847034522330437843513200166006753472161313329887983381095974414873222249235140760438871080408389113843102525240566075438904259018895968679407632189334162511343180221854928388545205477315921314354708105886100866499051573062101436714638015042742451414817037974098959881253303874185083639371723326178896672927812090016480798311148295476246809073239538999796246660143175122667719171715471013944479859566920610463063952426587877298775933660677970767717392089906333319116196927323534211948904979969682927269617322251296566391437112850258497527339290773500255312866418289027204130528815490315119617693453337904938735839731629830706193577574422762351121357245370271349613539816623527956532567766080410216323420483928158415121134167579106536345461376637900151712942733408700414777504955221163528241048297516049014274102312173931942081234792777002213984367235274312922586961706852346568741215504874095051144875147904381343201958800338280667293515516329497923719274536205533038772165591016280622577456641824012822694548296281690306998632734559121688920025326866741029457875947785605391518690736814696748555268430723635953304857500340283347175342641153108913017055793881694602913448653668031385039192370137501979622523656739956795514550971061664431948958671209729024773307783497904001890730925743275246482805908859692502382719568114429977331072072976228999527867723732832866857192989430109230560225492942962567825174309014628375108550688357282719204139495757268376382052669718884396186233187523461529849267019754343305984160974314181466240272161596535212843109199787026739642527013545449657541577560355691211618999421182752222532014090777986922341336731009377989970117743193590893296487477779208244540692967578938071581331888212850025738922637861346163833709802218577640002389762343025735616799659983336276670746971425392884197457217550623108468569139472623456626869767336558781624944653104994111097463588251542061424786095906137339938294106363976465593933878123184941134487365745848299373524482721724569432980971095618827716900569600188253406148643265416725109807755824175073918797958978737418369097600143480230371112845902747584440676049117776573648292568644654998452618458613320965837292953351317459753101604867695070845734987709931595652949060402178200348003929776304266411476901861909319770636995072064456905585514383981457182822936905305462256807383437879036058605437798974153682681773460416245431840717012412098803877816957209748894024198203222059783973314179852005797869320127640251673187557751622825366731438152282655954779709640030598190896509510095889458035554749286021050862583632675814407896129653104843014917433416982182602744936383184805836865303453757890137143444882706611096914179877827369995786091874820391584727443633828620344252228908905092090850674915196154399450621158071244692156088639738078632262187337121471176521664615687763552853936196024370940193359551277261636329245582556003229480426523918425182903597348088981891118131991971293274186976255161318185751621765904314331496133337244926652876249910905189778298724949553626356798052217189560160370142764923726843654985627984956128144271181095766952498242639530007285504176919678258988925073641674166921196513334567213971102357670919381604189413605424944914073202945707976206957718147793621386614535750550703158144593995116981596847896342593353493059018917756433277315299597693911100423134213081291139206301882344442056291479047658010120050459470535286880999729751308632700195249695995264183560192064775741266138440876355408471208563163728758734311350194078156243249635314689658002769410212204465619538114625138753971332050998030456137984342544996446124288424743088226237493963503865610327396998192056927083946990651414479125930877018809575260331624355090298584981653520758808030623678132546736157252251912726920157451287562696830293682697044510033350969482521214120565175046533352316331850665054022965467597887388768848410732719214314286867559951584109934441728337995244335010074412675700983577199716492524144766633428310333409340957428622858471403795439666194193272589864812715359872057756594771770421944906395960981455661033659839830532782001836770927770211281039583847088303679938392373956566444557645556321859650879771204325907139551994203279926847740582896128335274558612971146753047602589811981734671894392781387241582466821831452591988380541951070239024840978667620746156691890610544794496769809240807603598127670030208358117679297953238615443097657540020225820630265274620456659934367634173535453163027620761346206643647677766602723739358559932362737238231156831764745621004635893646345659997940463199779607136535521402332170097524390331354448749549617480965089256536634677692214591686664304074498326212768409737021417277215102317096833559033686882758805992409643197493622505363103605090753421172661504140402929282776852108018307683314257140270307484172273383255506392007585885257217313474731114424146328952350564406018460884083404622268934978099300732896236558249312793340987789285722600024707066706022248078192366110013027819141884727577959661548898565474231079420879566912165693647269922819735359558506816300719211108283914112841191286249370845960409617884849037172639782507465337914224187861738926863683306190098140560005993131787928393112364197358632874924701051636754709940833284884044844312610093325711705463740381957359866348370817784761987507713317975252683772548958318670796637565425043198322687396001441142719002964078883501021904054167369482702732481190947503087935633568394913224460728685881286134468293614723913679232616803220122945622937997537523577731326629584804622551052080076916545661187359903303055293311817641415446214249751206965666610710989501933457776080602182129677290252203800430829734515305721565642089669902623639823955282480786563757808602092350908704828866282354661248549512403292316455273385304239101513475758545045493835637734138331241117931164065346889121998724787011475679203781089029694384395927067455447005804185958670817498588533841451865661534251424739817121284393469129196591961219533632362690401819045591280644318997190662066978435694931739855613526568640910357951387233746123287748241831505553871765198046033681618728765705829497128736769899602734336949646535082058977668670265490875484630130352004443657527922848772813786636476025534226757215994163373631948663166831744509300813408939127782151769905359687077542828409602874679404288130086622638582491861618506153299703584874972068026770342110751665488975992963240902806226423942390705033249407987686771384002447131524302499757409009094712052989578998335019744569773192244243169697480148406355036117838429198956358357959377185478918236328654678511975630259544676660735091911032154813937050746438142778614488000079012159085895731463089310124209512112100754728672143108301258937384858678373661378808525332626712384913367956501503733355442305381682752693856716712601365137191463881449804507823893852597265187741273732800531802851436206293686000294750188079134559467407517616535124679181368996950642772042105047760278777897388106556281169210477255063844091001246216292098631914688479223616813780108490723965620045708014634830496338077432283032454286228072946753412988203207995289299078912524184249478435055996361365267119903913453705194595566571139006938768383548459866665968410990709583094691669992033166085372601122880448963567332761871625837644006387011079919595664899156174671270773641853494967096495923586375846014176947175458520597637899248546321759850756402842337426349009698160765582222740823052013456800316812250209222480143912458832845335932226871657968660323959509916894669910629916904676884894276946637722014124987494701706502085204162331925714387596717553566313680569452290713816405449800242890472395218479713478029891716227506849970896445730510485789582201960809318457246309772751306920897456124506623653730497064168168199891297758595632374488425070393218813835464055652767981213888002752661540538070634357555470970936369743815413322182288683707145494301979180668179191797020530566430447380882341858954748697307604479631559124369209544358013584090283685585633050910187454082490422970119289261457523396811552002836493768230972197523093550135944064094476472471404465225586826059746933381706598705052964739014147223139519185617162979547699963407703612513037330296201659409165243011835875767602213503770674828677836227261933303424805288514226852893218863867131668587123861211489009207353451721700312353409841069633660720808874607391579540469213989030143351513737166692060251621339248945577614533093601643572637040681229021743011088259971746892609822434860789697992411831261688102469860124276200741947187837493480674441122474429870336782596378804602874361450668184479802120012883609346917868656927821026059840970808234852146101633249033487647645491463512475555786907981755355629635301428094256232880852037033956466198853745049686209211490637465107183631554266611330824999818797727666089013913174577385972524247210967521186451148014679441099752986307181020113082913276441728668612043265028086738908180168984005503174568989033982656302508003364583782873952598901427310439129335721603333121732884026144465885933662367902008764275925227987854885024629560686749793153136489489579387438578027805291767105102580243450854650507580486140365230059904953479758957997717482864796447159200223044488046839543723811449928286048522374388100530956505628924569356272775269198062851842574927767822177985494327541405632519900297404677017541474796180131035473482190776535003702488147752736722693366439446577883371269546106844891294834885890911424637363823584730656699150726119065996763599118904742862125058364004492909131514469607789702159427368602265309588682923377214466886028745807618234353574628123420945028677465207353722111395661271901719080887433805079589706369671148593907643218395522040371636621666117751961870090712457342498744058451141036336265975633270478893546817533237201011107627942259200668158507533793916416769843480477579737965129824198277636150232058260261864676451837561973343236439140735599216051437735395843494383042814703021041088381319972107023605886772346965161719945169000506132153801212434952528717518732964385621723293535174960843571263813312882456372488739668741400342243117693512827336399206442566752027487338919331545719064819636195160414442352220671284483540710672126607053031805730460265545577004091793640095951899042575249894630748467683951799704746721352421719530018034413250202157039616395696289681592516878606097305150516010429646136161128812944657093375834017861281009589133656871723322825939642527013216275797589708566371681080159817310093988439212367435686195077697610589368420587174027867551113007124445904412768739835338111570163737419743164646876037620798412412382112379159272802728729684347793221114585663104350677641981707765564538535464292178150191517572572641202030669869088021667613048663950605296135840472948753544558118111839548101613700482947608028769908938675072250434000558068035731026457388375664894678598429667479442394182950247730602906219093324081662618532126661432748520262186455006802460375077818607682667467923821009126806415781957996890176720291895136001247437808937383614462233232361335502096965462644926450417751042184524618395050970450424451975050897950013065693096094787553230740792810003617854605955771372097296031640746543781946898532858430618625644040836886448188934310122021860672277344184641684543867239440074884072295165983478702119323552467696351838473083673792315115020368977346967909364475885680858036494668211549531930634135367799088152004138885927271300897020781774587100518177932278900540124369185013187926446557202262434384487962933183423762010758241596824820409844275656038325391858553590165587339745640119684696436716712099611657305172398010878310073916806972498378383752106991879205171652995721189991502719729143827746377746587913806934971522116257380277411958695644565700071576057223859736760202462023031534914532265345868808330205392732975665443302267982863402262688172694369205856406827592769046092254366094980581679501896279249431527882668144013802196030771319431583838473729271618908624460436905992583060893534021238665006567734568366451989664867250814747010051155849913218943547182261790689965115444994762404323219422258136297058979537029410395258402160032264355626757633056888233058844458606856199296876790933849823019999140284307053249543557835286497398040187109486327467504119910684489963214404569895863946810317854906698637363110594983745537746636727000696782711244391903036215119879036732680394333877705623287510518172608418992745362288715430757633749078088373737553830838841983272902191663533711693854664332529014278242232398394358082584726081316302663660664098112179675006627581561051616185850384777996140570506095780614016856115211990189972529321266322671526107816465300645374009393220745277761277638747754551059985681927462906596476402100794337238524074078500533964789246257282175129985440454275118623660458412510961150582600372385942608918593143958354929292019896885959456815132404899646451552317166049161342698316368323613573873679007069755745633876862299182159324107362547238091810196719962216463908473421068350926088490406587696450044759895179767756825456782679798411618590020366418936941896249859189788067941291157157403830996247107715244363771963893572515064845408450255537259195148241482328566773075920947447784522408394190483335197154711765985411478744659255312494559700602373299648927714293024466987278469301522707890893686451099242937527119371883410367276712751050236318932773325112915941109911320218000366314087032137622777604643795525568029744566230156518651913868019987429497697702146182769227593061103361880837553918455221726992912378642006966183857186791669185521605016942354879900659456424807812233009373391959929975088771640927378416504080637488068097247691411075825570489245843537524050619332789564608586248638889411045456890363488450234849714992853193812195439191983074637030712685421353551533520534392606800761758123115808598183715141686364031253435561800928439638184205319436365374290532164621825117187147094587892986781668769439004317377495626516377918297343316585635119063282547084111021305170337014344727808569248334674048088944069711925612366145085219383527949872217569125599283510584677030430822803338151398480607567068610170452316319243624890346004665510540411252453930400952143341631918542000428953251553543461245416626058153772164496400977899387590285491361357319136751748728734610261262761516082282731509997007996599073069245374655556339785113628755073712574713923741664023075537625448863727045483276209533480270710604102163021088200734685876350139467891461236398235882272850357827361117258335641889979721582349636904086143424030500916124506653063943025977337284694440709575229189005234288034645712569265023353558110748812489980203099644783130601341428970556554712512005723727406394612603488467202558442139619423091802046866803733433261880146012184914408527984034209248371757656895592978456543285188841029669672816104795777005881650161715210883143456019742062130619027583753220571326301078130229058795067946139880494869985114072430052911616231690243488278592696216830030603235175267868779363302101127764818306547968298933076838006460275060372957202020239562919670737694927961777376146433010712618371131295093544073519616604076524927759866925171752171672628009985456097677528308179388132992009204205909812659073334168288889737992431736600151479432754685816875148599002355781703080783266520631671026355876677502027111392374672306659208102371962866673284286379440017461161019993209201038956317734645495532732976670799881256726693256774741517506080800855350648560320337288611068393568387299188651606607006895688631858302114123619468590395611579768191638798610259359218394095035922982723500498438597632448243767361185227237347807069739440331382655640254301195367985273772060543550036744175141340159597313665162143398861174924114471897926200900302853999331457411797936809805760604294452790381855380772989246445332757723296716452306442717100932431380873784376751138651300720200627802257146911070649218195473914855053593911774742276732090444308035421701754047490426448145936413652429667238013442012838148980093070725639109135611828432563035054401918055760737843143858596867637818018858546637815487651412217782843071619979990107817712213276012084907478699999824382689069311539746248440880584491556518280716863408468203634050030002345988354630325995161098111975565391197802240947642206350903048571983143773742258983551589909380554325461965373877442548820038632981400548141693406634612486310606804971675733426835046717797162768027731097004894819067240339073092388111523022256761984569163986923284302004579759089027309858278298174783581782477206874396762138757676178498355051533878688850106521275374976555319993454767114726222840677656649523155059808549725277639014062608403574324140971829445129472228734364753583168575940193982694271056529204745711832351034710631253864882560949794087050127368350411732936074146665130084409806830328561840982966375838887965847419680347296294943052810664836739361272641503805596608150365224143413391547930595645717551088037250341127347564490655491947045483788518713560128694799403594290208172320242731807666494403430177817525301292635302323158779760804763335419191757942848208449279707986146630877395367616776605577974526108099757205648181932323882504950036231260003206172835828154292340740570581048894308031042267310330402762813281957055919389528129600032251459770738555020190559090897260521051213339011136085366307559902414539360563799698840606323504226010117670196081703308550400613236338437569864342839055759393873387207967477587753062577091127468910010147500838519837525173908974468502623189433252105001061775594903075086479604111724829484521800724478365506225164998833931768455307639660928921457050426944951471238866814346351936238639204184732437937635766517568304762398029531345497299971114405460859492324236745831348497838885203662782849133359555030505734428524575460165776855956712272609896845930783374522565285526970179456221202644790052352863692149407985934059488313171434987685181588206956659531301122289756019734588419901033743424262119811925484521380583476668380721148155592989837880456020692460650315339659859223483431401311032419517598287285338055706138259483829012417902421988187227016368238693269584192097289379309788937916020340038649920818632295690006152882568221140140178987959977679368806169687996927233974142308875032523166212039402684018226737640279572236707919446559810727003347312830780630003093368409661317680761612399595991347858397754865103949228772211548991336317988332518720599729838906873968737462568564978854080587450206851454065255271824947753547976894376394570838195068628353184950786108600115616724201503540416854529630693618578053929148796976058361162123471924176410316990307022885689364418923384638427693676281872435382142450076743895911358224296308581711580376027077049789394929363107628416407646907936539119180406038515391377884142324046396039605509126074726577748966362588569350557897598055490215238170924372804637209748123628589553503923455223645008071466041884981171560208532128464174458687187165346343888032321662496035088723761500828969787162676198342347690621426526265615892285598992033591755509234134477250832757899316616494466068048572366614266585978500878372297775366069205966111408188158259126354420506615385458072928159871868024829986695186279320846620206824261840895502783653488979984897395201552599702212918836090656140675134172963329842267783483846795708853994113565587790876592251229860101732125913053924714730691639360444609179163410539544113341807242664483412240927924483797026258057023149972390355248082108252871254734305082786374818626234412506895007565020767053733484524094553442212023768255707859145357923060020642135545415304815530103664178113576089092924163354585313607477930262600925909423903485229956062052140820873786973946420571893908235340381687628863616442481226803086789137566357640965983709258546049060460995302679920431588181928405454051003441067801956757039742234102337140941419173251220263005159215003377033714263242144639834549136043604539583146798430808697663650334577952149363399303655406505963492981371582963945094636568807829081853867137035592562694735066810826291528921797944009931073746394672722373135515022002794400615335491440406449183191103626226017909675123662388517815835191498603447908636672839611348968292750879740203980509250595759627399465314972361174686592905742256124524771067422471837961333133847235017520624006142253954022712801716282472096535741066026822381850190126522737350987333592557672467682959471269183477898812308992016221702553105119584360608778243662469948525713947456749223306982096141147397082404789692909178159335612881065625179834204706384335310053462359761719067283201925677585716352196490068696466376098148671336303868635470887920653574324240172624904278358603913254868170715653186330806491102976577795564888832683194722190093672904461931870335929652987355496056468783701412099367421799978275445823833199882658734220019971861244376544483038420644496949508023964270414779571747763396479682799925813138238606944315392466977724374365766654108079497534024298166972261719631122776708432765048400283890299758760583713116755203677746881804833239591158018501501586890029063161650280702698182652128557373518636728237393247491101006413640332647544028497834903766991177476696115086366822293798619002701727952726545936744136105420549957256632040363096091904617356146227666317208462816071137923544627696459915836649771437291207204784493938173329383248634572307116438880188860404953849172936714998816331982085242432830920467397879134995254758549114033320316047673717980636991597773766672707614364551491570611700721638000585583571185656704570460620080850484257016944192705003775468184323585633396614245039549043628773338686683851518646507128338631070963611638292878085171046601522912581754222192163420643628290004436131790746639771308069874978533006903258610663300503369299811925206857526162418268584485384745610645976646364630089053923001454393152994232930931591295531660206500313903943547302042234509886094468294865467987232948137526683535701105428394086538439662794348195912923403984217331769863628895066254208229947864744236717639908334698940163150731430124010431565336350429578679594637566935061840362480178793831669048464422694583648262589121795298924423970369631509553936607275000633605952581384155640716884040584717807544603416867865949423901109481734991278607351388183106591493266163638249372319937850304896209725773044485750040687868286870222844944948175350063057229957580605799925257260695308008522484292291968499629027999107610301564693974468229210145137819723279632494948359987553415846593531520587946734196446013083851227735617207938670818098893831804023311818300557889923948743747967470039775266696340647864942940778218249665475356728474953505708883452232273410196532414661787957723826925620898076615845891251550211425178929029966265322227358487000913903563254236008771049770575382916105747036785198072300871936093729186172669328161216920867577673118275097135103344148642770989601343555257125468735607827998820177545301794021948324052598699151241336231475729752931211643848085545652378021738897353488123608635574886466752907204057807599438692897378159160268191405261627489132162698897061754360810591850712014916065200265941039209723612336221116807384450229709772911768615335276715314741421930789992274865251331364920629310188519431361027945297712073167577058319967268798773817278031443522206869922336688638679267828432513486015846971213287735002939954929085795213957170856762759658393781967279360181306184208408358529013303404893047231653756350104257530613903315136319695160386616648366205843840497632137750405470631259670198074451124108926551618425914473659813682945111071729520295442148054588587544206915475255114647419494749699309552920832623980400752188276357873124058672692467559454369509030037278599837723364404088596125389790373376669224728030078659277829787380376518759755798710456687424152796228922712053213733114444508821684950140874435664492572775858976673978995735727268316562344722427039613053049801131772058860403655184904660743113178631567194699594134641709019367667157940049865030740579154707072556821049474650157450067013087226401691391288663164105709219780005109210534406379639716510124379787221754358142062366323294173368613486433348396297358347165276027787521328313652681262440725136435423325945856138698527932341078355265046989251525702820019638263274529981633142210537796946949345734250313231514275744221945881401476946938611584438069436797327253904714016577911092139716226413022882725978457325754034954243823601420256625483570547606124406250907686794142240029994382459964798503089297823988799859493731200294390832841438310144590572788961277529285644277197587677549407058252075061738636302824339890510649707331169948578621300637591822759712925537060768576872816575471250585633355993446560388193078822035349793625913096799005996049189711356947689093083827145412945067990577953519395857764990294331662584253638913037467557032094517479173028731762010385739340045076344118380270110360747964041408061016720960741694075999554893354912466809763391588040696818410765237996580327636779078584889066473059694514284747264454386858916614474014966445794481164802152136671943126743737401157327377236797047517648411458155656796382221427765236062376714900691220754675933903820969186391574794482532894165227653267616835992556022314334932185624211942848620839234950014699039207597031904028261171260005186353047265075529876819280669757689744067848279652399947000559019437615326984278959183542021805037638898052055896211901178940455029882836617245196924891617279147819915033067286063368495972384675530587908058193561511425213764082933074139978297695734238997969786405619289990759046304847582306345497628449350590299118038045212899406679502555631422093028822301735314072039691179797043113992197578067628983238631937580387164748581241114046019703251818021541920192614275842035031668315890585416195276650254124007062071227084087075007147209463737288618784005412499292140344242018327553317917537674073673592103362950220610031749995042346219239501150019390827998206744192045460169240789742268670666449213128812648648362622362783319254360629431541000427031383582269027118092330339605156284088723090365784520695066445185695457655220349343211901811768433302685724203133276449102166191853668245970914272160769671343335589089574785145888617862538968007115027783049529659769635127564833872851942925859345886699645490772233217260371473651153644969972384933076545538963470860032585276700523080120708048382583133864940480929253557076306823255768074991698052968452312353818648487461961133601475530180416503303618030926039209421686529610254863928679592864038510340331317098710566063772170014638276683472566863628532062604962799018671459413288792959003316170193710162699167512065144960177922238348535483795750301485105265298224577164595661933723980586073225832482179449759098721082534029357408356797523299138845780769790941725727966901383742942185709344635455555224957834966954824733976164280549241532623248927782963868351249244344561439489838881330590313974260654996841369429967965209793392570407587703379607888569316124020551649435904168826331857129268205765232630637431086172992524642175938797527216869427665359310415517641032271392481904270734807492822584486515914317801399041927656527465223768428920035572243597343448461039690407183142374511635929739409415768326719663050985445846652382323553676974907076856882026395009776596950825264418765893586416120771001107605950866003102369067076463026391371873791644735859562242764070466904755653576802836633204186536516012287708241947088833991569748735084804216420080311493830367223932562193876072381478471971873204835613134312200025538147064665664146658287569877174102423660065777774303638551104903822613774423833261298502648493014703491946514962159467642478990500763404445191702433799678518506047792362144259436648486166997341109630599701162162626283905386352091128972001290189404290226192760631313125490545377271145400292988129508046885659572894922577486426830116690299680296729508593544632326356762721395712002628249473086742125997823764735971183657562775144897588900919448581138094504683907541166859637533395208299673619675821682585252732710775277248175896040667706766124670009885553842926637108699618174500678923120006843411260109766763044536446819879820851713071909486442725444406500388369047528247283575563261674857151479784094639103616343555992275121986911943939554416334187082968021427382757384792993276029628337300613072627283651249037208769372738032767446081786564340578507227726467632301891841466521249429009325725590922959344963702075958135240697967647612290199272859688732457204918440935456201096791814393657691033386147425233481808502058787816523259278941642335423402841938143497151689313458685372783054488930376837527588574508688895314246003301596793834539769517875638562918198461314656458519503278096336324801214612709401516026802967117863284890670962555572935253840038745486952679572771229652720955666922861775045616232412141322578034963932146999520975685138806174749497956276939021187147980195470301831253181833731041610800616764710016669033792018640068053817612149207030009151375174530855059511282802249137754235890011573417426485608645658844144166976673870484699286626583933800997329815102554786998391745325932595538312757347215838249055468232900525091827505399894270772964424038720586636332529839378596314264695896972368038281098101536344675972842226710211882265174250294291815288021514551588051051435052923767534026865755141403375747722094086481085939608929026618557066473620070850276170968760225793891347393898520303355564583562209355112032041661792638474657998780723212799810705677894322278121112143394285787501238459322006014162208841093362254214441341769336275415384009298656042052766940530919450224793771306104932610393292273181994898775980348020942374997566871827762592759025746785746714004694877127701115177308333950356210273172665688562209067746790089978765623496714221061474473922412840285289106216806841901670281803826140856807278377700498915344095298746043603819268103784064238948163540325852955736313628708704960640108724349220754095895539334025564742933699211841570687288199850257727967730487987964667135488705322071209411556035900147900691621315779220853473656447862567767191204174075265283041120110495337986002507740648355882513068687552138740822632514353436280503295824185463468973793931469881822073512102070045197084334758559515569101757707320430595112721238774524155898052788649644006292058902283036418413394333077566176726517549510834908997922632898492741772594441712395605451778849659960014456773093123804325229868255525135601849611924802493654535112346614415080756248588793368369896002307826546612444694519989732085551957911329758503571362314958291859374971390760442161230229517176738534797775174722991784835904850362032299399241059646555232172805673851039278750808760677188244262928258836573697532467693666648467124213017801857037163987942211657000005483949884132237305694088385898107354298857936189369327031253218250832661109599567104397516934638534938155828908657132344159501099123792288362387488187630893634099370161419457583992667067487647564148977019609811387475553769413066479221024848683542645481318718401442016745690765162368174755367624306170196550292327168191193526447133421761339523578610906561465668647592054513063111645633029371145214286643509050439890799221744019209648593887591094993717718434439002331130163399140982855142470633040474399473931976750054656049046810539516078696634071795589180720761005738504712969693595345881855024645178555873587352919170158684630513225292125158418904734706422545975472227480451641561710180082945087012097454887381326647651366088805910181547165450306559972049088348697459482686870153594739625684368592226935048123103652378436830789307958248876839750474022172269999911181377647256935638446113540227230714899910508940715747130605043843285486533245974839570554705813616437933687322138168823504095102695462944667809142996569034636099595750837860169287072713845815492536376460369464294475395383810211797385345270895930638777661368965109737271454679090221161734955333154916336695196915860281903479259811586955882563384326403938597945660153249295296707064895690104746738831265444603112854374410711152679627975914687749770823064420461171842750401074402444136357532957893474452959009586243435397560241327370960286202408081777069552800040619273763359710229833855166415903854046644069135733263653909655118951964386574656350745628143042692068623514071028363827479644450430631209963660128531513845545833186381366321332519994918234849136418035353204689278217704679503500412392885149838570756451560516450749816492357751687943295759105643400782831606988994845311102500167719208465431881168222380776399654139815700456108508495429568042056432034315905983223660109879689480684935735622937326251331496268414057871649529965424232324352037392767008674397703212236497912219726660555265323764317579730836799783897059828362422513702467668189538835713639048137158513182966953202527410434470810896876922902661156318511830744533598527948097337781025015974324066760067170578972888517089034169206474856667228435957565697985599306495860043158318254983386107044927674238183277501512449486741406458922752340234863052407168626126157687527171363241779241489055398324452187828146482489289537486626200354692840415979381035236273733247795815880161392870729737135177480716458585385485061720503273323468760320750965402207293122314423087443999000723115361078788255937657668145959521055446733306440489937164367648875865847148659261891648512930143894926871589429897430010096812113627381743319302235856850309617341928400818154815677166930071047884560028454606558583460566818176371019947679557529124005830413339798820069877926372717061068376178623787610149654513738046420128728666923847900020823793475737006340833853986858090843951540579109971856706153057067616851393151720096720845886148399373928991340404688032190367349619466535356550433724923988336210101854900522084105244042612740561755486601146640035999863339957383651971532976789701726170100387513464622109569081696105470300068158540694814428562955832700013891118311475217464383675692454249121913302954579348184706435106872077518955488498391409865519535850987287701290144349553677054467790011518026018327266640686718201227956864537241372640303890705164892312640810372209571894417281458446601734265082107346508932862123441532142658433426807180708303923408036433700916627921853332502087710832894825292216054816424711546826796323064036857855334593651441847914342516018501977763773984797071843926280836420686996319117877346693182121988934590437046861353746018468675077214374970093191902027541401820221800530085215110171095138741601307261353156038879775129700472881553727385060659960849100047016430901257805922797674787567267045547929316183165148791311450103108393640035823944189499436749438485836011838101543515884872649943311984068376733145325062049042445653467089567004842214633624437045387217832509128575855572770779258511682544447456748854498668768019621023272858368792128591131727694520292796732226416451520291963263648396805493919596890509898230602156274665419927208424116892457165179036267396010736359827476764939813099152294697213429623706776763070325632047042520410497622979979330103076237852708423370314570357315650386514111222641639399743703155046569422048972172035253255115726851143494241795374539250625827312381265737740186786808018095516175687323317355372349296501666605544144854396188168115014508381476298892415801468965557994991720679395925752192409158996903587812821693425589308642262782216950927714295935791494477460154267604861832958604588431409353864027918725018171217451309203041947553924877975722635760153874904192771174576051383136983064890784336323708087463972218344929261089598392585720724270899655132307480877590969264901748953039026269356774263264445084437062736562076182156455829707594290363072386572738975899637601896989607442510746514672289914718919036901072596179735678590519453775227011946798993020781090463671314796211392993677017398185973803343704254840632927880547594530027191919739671388610138150068915687991819729975666323261949483907761870808788916342137238164203720755557312079724062810143617264785516503756261723637946352774227315517682119902847250014746595429203010861237662818569182446470444829853731756068636134744785819984321529772399416467179053166536452870660750859988544762058234872005120030087733331224993402227669998743820761898856623136927968351486777126423378141668436860681845338308131317297924881363092083561247207207037309908869890063412816620164260170823805695990059367627743343459264300962021832544774311348441781482314674877978131073475443551633760124387885243396472300929282516980324693646668826450108142158613958637048087003157104335340902965656830562934122627269521184355727895419380554507919389724249974956059613606368837310762131091410996565861035513198968072659970319945496858678875127054314457202767050423690146697284104417475047655939183297812342621757460454929513171635040455681193998366604695729017895739099261483299333451008247587094800430510394536860174725263976669726753184161585744217746174676171712036648341985050193620752743520700399843334858005460655024378315327685526598473733087177851787173025693726164604396204936912640894008441042032762850913460232875557428247162758168983703755886401565339940966616147046974409770601085266101788925487666300143763845296308427091509403968040521830643471377090746231581222574243710386590706938042580855978401296670482889415160390676642014862410967879895936249135625831855535498536856086885514712869847833466764730873748639981636156166575570548382342393543793014179786670274652074853754048364149549190293401282437421856835034602074750245171680402518003398059224426168283924691205035420404270525013593187736495520549163910574554820190236748959381322184214325664768004266861842372890774846280186680437346454958733041721849115738456323857682624892706288456378054583918847658495882429907134208905038790746378626411309703986364418119604497559070053169999236201594265478807026170869453375002653676468821025682389430184936200396738776554115107418434258869506789880807978952186881948906512961257490735426785700171166838579883606946526059978692955880838820817911008984842119063416203202015258804879736910012077610247438299624352215545166775254563601399835185589050751361039554027797168824891502274541467510201097596606866177667133241410208923723630035762350107923744362171857558876026162362376294657358988592054532202519129778840606104249342345616610253617362877028689980147617669340947992287962726329145077948800832728775612481944802475238251635530950364672549382763675012764702202424194721467498720447393571609541600559124017926685159418821623183961905424592378540474261914807615626078364211401615855000386068405412424330508946884576168997875422327087865594725437368170732796945050861044060005403746582937604342974608281836860904998307612925598492479355141492269847218452083201258897124114422240806196158163119944297167037240293855717336960231922962930607667207621668692319247068827995325988300603292682611293090668575713295195321424910400047275702097867040487199299086186343814453007927517744069568035645338785515103113913919977740804906308781944503708337264597464624103054805767196264671199609053601400053589942592117329091910934754842678812937426438311697069993824252469741761946984514639383272110038723451562866404056611139286363637000239973054738906863347045639594636971753495206104158069410914345584388660401102543311058273236153647643291506158376709651926382851233608218896868742642073008711580841993661647370449980893490187101379233950668747547841302982655738638424755207241938641544672624620467887547322190048777373581052994198258859316653871128926206039616549180643189989141149045839954107051497652715519123310665010955090704469035111562557278809760384183407928475322184325154936447455155572219969637431970489528129452829397823139111913511684836079623202382636503347257044239257820159301154564630603340690871071401261660562808521559553106849815411764532064602593898186436858140580333671279615091624444487993517048784547807124121503860140542524049806301460897964347993961490449571913020330670395512893727541742038869761522783914734352048959278260808997735060857964515297123402406400541125182193245289452497537785823734916076747423899432178270543151207872496169947680981783259173413461859607603285244828092991974513572066915238483234001245151062576241336832787180266605109565953124078370120470820566352513804293299923676882593055881644208741589479585093487098292058668799622430775398863144553626666087208380506508864661182631090951970429044479348280505979702626621080650099770917761248778907274526637538476257056230004592543753520921320763527840761077108745554503405867797885795006037271051004063975788036984596999733237943074313410149390289707481802922511865401994654235895638686118007884148269999563305536943849911706083773069017259776455975560771796142495118278870457932231353105145729240585146519445092244444654635944704046545143360098774728443767353031221695227708099864579633470475740042270185148139558810769518057610253826925749889367711378323801693452506370426531218981453967490836840056353119776294332063288954278068975259845444209184766699446307465899154130968111040542688803956735113542240464101261020362593529772648860706422735952607521355781522436931901431577596464738942629387466655274165501716629828461934515252362378980214896890252738132582143330485050493768450057786539857419983292418487684199748696883121762633710854409054257407120233116972237867255857669890535684998245858714617403990369146097722905051942138345054748176457994837269433630923265773540621079799730816025293709412799335513799346095451277349935540500255998245399934044917501177359043526940079653098003217182896550496259681883214215916507170017203311985025867805181898777150004955864102193813240995353561161802844360533959568514871407707417691973578432959437309346200593686393227945350000878916168789485246892905469950725994651754582889739832169650753493206921748154535563196449308809305964543051792975007248589832419497804626882487052107559196039732096325350740466092746420403754163870283311095641284338698447330291488497591422291882072462986436390501232876152160172694627137156031156011468694499200210406742639033711165231758514025368785450668446648218582845727608179663244657505412662824611999521715510571401979738826003688696569637214946222783009393310407353775975618519991451938013521288787853684794109062903709999553804233626840138435837252759995778922952143197292683601264063459243389707847756395571678552740535564762644032640329269948490461363121780219580147052879453205561850262302251807689817461223230486089434806096367637399501624879764113815095183954318896328309917059721531396711809286409723298677634858681155178644033786910024309064214643704702084455674732284550301939397726805855057252663690276840678828944381280944777156187826963372900180274683355920870328761371348217081874568946169663098082463988351458035929054946540751083014776357641275775509187776017048127262994027668191901985523458486205709771873982272965814876354894478582856477864511852202023733079106153241611342222262364049883436784515529050274265684047726278675760454118781413175009221083300138108486985241890156895405617166679910345015082483785958701687701436573497601436547967602911735681973631045307272980899940642194047357131808953062768212000713002930427636261915015869294258591040392932238662109141928928044654690603388810574439579327756922273949064438200974678747954615851301080416895692527556246183830138012324670143469049793712460736426897633388265980476477136807077296714444350013352548468391690848798420378480399830433861710589093782121956700746403108650579761435809052259336247344716206770978224738921583746865517376839441042832888224849888271744486046265655194886626546977360267547766437050555835578320053516673763661564276290634534903464847740659361635755014367222913543763445077895848675955154861978224500301685799414621565319596975178177183769371914878605825270467140911175407860907565362511400885775452652579053417532665291479356885978037105972678432572814949338677568238676368578299257124751205391993520293653563374119946118185314622936101938920060105637165668360936806533399987525165810523331666945308831217752240721791619957483506264034840515369956751078895799439719678605293071965475388191092873000776060288105398857443795760429483775704522380668890855766820580779500534524183981968097754992844469105384069595869549470884792946437605665089752779202764377966950555577705749256431366916398483529599082226717635198939333240486877867096146118247729216092312070802976603820729189209349865797392993912630346008600651587499693699057857056946837217102018937693158492080708853139247649893908009292396387024071575677480985771397641639172619979458527475018466940698196582184829404571168661847184989802781344561229423860066245697762250737862133330106701222556493117020803306636374252205872728328602312499981083042285154191408658413052453770143591216249005307494445644358161296133448405904900017302440784370551211785884846647161196100177702873899814041936597768883222235598088962599224135576025170498444118368371149603262378064973205826051489963995893925010799992198223210577589440473206869252860043814024404662408751517784158050599536198088708045833950871372091652840183473712342102309841871124869621150840165209073123265572196848405410911066123340800826881305031130506312625238922048608281834390328375980643858585998611919876748125025957347895645188307429455420444716853924356953250561258365873253953773160899143829492837161172036690947524129167961518108691087040721929521241659100969774477130504773677532708553373697776945249750419993999711704150493431257048393419592429312847420511322663500687963030608670071013746654167650257303631692015765165568969258770937335664283967426305470886596899067834349590635962093246056387179961482706300495721021127007722232277874650808897482600839431451234304308992757595530137268611385740190714083549471042070991768597433431421399335367078410707202464877350422173076205817725730664530402729633831640239504775327902121041056541368846312375464002810494266921988116610899423632050236348299948998557736481105409890047462701151053443858336479860799115291033027348613700633590853959046796514374675425984789080318688891673571305727134345565542600064741410254101407034984752933322476248987795549220410734827107967256500277003504112519457527705596321910500246872215053945901213153394043202584053598547330203864181834105316062693913240181298163590137722842769696402097857715484730185431162117274958563057834641923582788902529893513371679917985331030677555873142473931388884417545465841936569840614550686817362535215111849333905815725574043105864333051945422193831652027813328455737275777389796044270863132586311222803133178081534303965651355048911050986779713886484356367762027673020988175558774005632068813887589599139722358200799044263889242649943451736023947267915311731102273317670193421149719172435166391471493313373837435743579573036539001556578153323014204068414831536920968378533140760325659590635352747788597463368819965253284686100487992456330027432036014963883454381299243737679641370859821310841683998703262365277511837452771283054756981064947593973945018431497044052035098541874659050085326052837375997830141385247357443868303691467679853749914096351860646658871821341860974011958445379877997749803717919958584301086475550404841557078781859338625318353347332287430282592654707028849058086455238568945769279863277590888477704093435082178947219202920184674254136731979267966546111211077215690620694044044284032695742785456307944653041123078880026059111018093992624816339107621656843519631023954353034091770014767894549566856780942153803365216683394174594769739173960718287031038129769203199625555782842405540568223081075355036894084547792975722195169669821080428926312662230099969828609409007408065960491852561276895935366919015768807188905226634182315853617601447360452856342102542728638141370467112918815282998832962520208062077441848026303102606914906711293429427575419602407382701669665348825561337546808232109743068133926891351208554606077384927335569273367218374668557438345278681817563898905911764666619242334331211575993292687953518105313899166653547724414295407828245345438348702316100597010933473107363416220978462845110791079846791659283751094951500006165023969727991089554418702597748878558926975283143092780554743213602999294184241428895924029853724224993204728972188960330140352033083866722139101702613131107391254388706758098334370451203732527306018101436073463252662555715864658832555883463479207584167058205289335186060352250937356416433591905382912772200389641992375416463461502969232326955889431574591099030314652142212109378108197697304429980505610062765225751474192918840938949770830530762230433304355551445624092684119957287976341298885879098363944711028502463239611393929028698089932257717538440918950248575972896561295244967314734730300991225741143459861610298968804874859432272901630956775132747052825689578408995749945883506121289902166793352826593820747465267880154608383724533941606748528345694492304308824345312808494737561529444391601858293081531345445112411225875821470167324490666593207518488339201551211616681951525259664883929341663153601986321021428812583430922500758375263137815341492654332353649455131486006031815881513827863014617429889252507682524691912973470641840650919407384119520323696004665138370179272987938253282202183275915261358038912484942647977144674079919706616754566145617739084329156270536971182939386277481547556969663325513623294349421306341063228379310330320930237808527863933582504893685311408176986895754057156221208021659609604747317358150593276597021519934762915859155071105036146952559854966050838003008737038532290333927865716396853149700083535636701146390969721730689349857076587174715974374950537259781655578194471486921612908583578129184215513309721134735976767706670964396902328890195925195955394104598426004933282624521919932160349292218914332279296583743321164969457843122300946708170345822624770044814161419018138979417575823587092580916706073562278946402905860888364623122153926298040580420840183952114093919512452931962387845784930832865697568256993067166951337532792973049882250596435388022297800237421092237718846849096916852254616601570529072178967871138028525717198175012430977076856210451118630113498457262299411520974532516893253954413686411435232134539799076090507125133804357295786079302723959059442527524621533858437240103330178882638862977130661349358363743524231970915026919960807006844450667234953124596576847379350090618789224437474134660908413824939824462052438385002716902014510750842931181982060052643072574701203319365127822682141560462588899092926635845096585126917131365096776602854812137976683688594047700182836669112382803706676273495527049575886547820363161017730890327416689663250460868731208288206380746923568787059588411756826829068837271079651779927775398016361404505014678775734473657848717789457056985229549611048254531113355998306421684737656957365848594686697857068146486111039111582635349687103095550094984027100542869784938597356682443272416378341034955937453745784520074487557698413128864191815121948158487308317984460915793208672783292144658096479307885971663070361035274792011995663092632891103094540590104408926506999506830215915951123258596727981694004968548094718233806702169113047477137968114017514583083870551641174073815958154877416139285370792848331663744738880579490459120600780854133128543469955368500470830585771888227588068615386301988502636646768720739515641338568074102098286164484624705784945467213757677728131149893047497646476745616691848295562385708289255951969953890883424892787811781592679870222704949737189199867931462827684241134805487699040531501403524253931147517575749620095201330410948908734026195906205121948518728832595516773555511949769496128142616480473527386908095092562277923615930508763222690944288580598541811613894646296306196427834014259294359737212127752703828303626583694671645919923785838075192442911763732417563714671351413881945340081069295959951976313672261110822823985243284364739490351326647611184556165475572812721055913531568747522509381155402962413918558175559237106162442667810839365187600795063004788954754949441532133750722275044783792240902160469761320572553687521518272886351580529356860292413529169218538510170411302059624577084690441642066235600328490524501405898000437944603506661529243745032105345216331866253364435999860448746111866437248070745485019934259746773800052992023748894524528951015793441220251734458930586100465142067514833143203008004192736576706039833257582000132041467916719845206799067979349965862911459696669906370727704507263502533244415065753452007157288631757315707046694969285681556060924190686489081628635484828956152540751246398521024044210697888880567207633310988358311412540760899634240608873558985236196831858929350420291730359224649495868484233918561665644186642942465692659093412506044201142537217802308224715866812124760808449606382553576923675784861504217724387963486676366079457829913642908273335835128652111002077578523461528445517940196750322213901984629729322457651189321210329372422641740481776006795267276923663915920402558614190410189182639388154041309455172770500121336563838463346005590048919825974195063686841488591217164938225114476692174444879283932819738752917652493044440359210179078142994269214061278033934806477382894965126086785702613931596059044337136484180456838578598392972938666991755360027096963774765577084464891883943168121224305288447308812887604217539340757289454003378780420104628753548313908186456811274353983821973191461638164984814873423613649652446241441845980230415005759362008704068080636782498589197776435466996558300454741984463782900327265073213440787009940723475418646793053836772155129333846175849194684133015942128292249868779808762913345863819517788134596216943412656382844008774411294433840206117266449712815375630399182854432406937388956939654341545749959174527202084070367557756154111386013177626978393759388150551421084866733898097595890339766149666606951899374128048156969688732255289539512031845683879511203459590802265247211826187749956468891621001613303211391687102729656568426745077433919478961748785182900704991080486447132712064266051916515051147862838035785922493981093642458285512691654670010024292547650516286030406157498758395046367142293881245208486798471553432415732303864884007918656772556645858553764956058719813925902594450037767966489230019102918765751857013976490304781544493472829342028956851029759573426120036329478338301405382813329670029358400721398266866892755856257883178182052056384054607351836520437188002497009885945125002234664901547224245043207391135126502860884704643527756834990569661634790710863140549412366597709851791623307613092744156087208566032251906446292772388974233250511582609108851045167071091668536045736491066674907634585006026074278530199506265899909705709067043834088288419061882418823263785987858471939650594460060178797349513313105913988822532403294992533978381502498563042136034263205949656615677327148540099953117258760966057547161598339224195896541715106850179954139123896470804443382667083065608900903166394536779844482419064544002194317448267627527047053146575068281196885794574161527309038227322966408910853925629154848315769736122504780711297804789975310972439475521114167826847859838781348007624640799403989814948941422040295790573545759811592353340578081471658852207490017280006237858447939787218425883099868918070614897101391465770443107057505495251678128308549926163007975907566142030810855511698986147975113045830569873708874943488794640306302036750389877511809672354695183685949833219716594392753353438040368500770303071076398500617430237596370114498464050477960389964713844026043616124504541389977426122330407341572499564288345082876131751159371026533824639735727177124480680483884379726490379308982404239665826137660533016257510830596719848351467159432520986441926423860958317877208553756290356310456053374934755614160988842902070991038901056112836369226775781319389097397662865230054504891052557240472884070831709114322958656260781162557840177682939115102826230065141328937315845258181280878201650638484904177047857060965312589478729696556681106341626363706885798567879325789085368362974591844803108492003228809440154133273323359804283643536566671422899746528719353826229386652416534800782509293373644498430342077830543943644402472298900878196137683424039238861638140071317629231942020228077455987021612788991497701224902802711676131683161073410974254143837638095716088277994324691107810331622502801199118126518897821198368137240923727604203187960386949624745105547743956535209518290570041810303915496000444913398025570277222229863428961348890236099034157562369965769812016686651664753327729282641546053903359743821177095465183635269383646559010069277702505444916318877618489672565565565368226965702697926820128865517697282219511566565875668948577940563458202822877688658749946066076197445184164806908386636639481600079523740529477917222032902116197223549714344088822055750365556715253000701930207639468686926575421393530158516569727674733699575716584642087645701502904858933639042136971909098269390180381742898472801104153651909815966292586066857783694424230676103955097617290050589931973341350356771575608348201203036882943108186852539941870355256056408615658456396743710240508940537365638368033416809329080822372953827325538232387856208349655771575041983331877996677791226678118197130552771472587801399659977472109916340810294598903372824261549414068330460513982427253858870873195202969610844247175503261941488068335541386562943242340508785936028972634331687637862674860443489972609557403652313268728303535092875227348467585564631021886015323183407779396556884884927709343917952032393891162294759620349549167888926394548906622678534600043280664244540953257524791090936005434177587305305314790845828734364798601048283848005721197922976594382399756800381661048445890004646763758090826045806608438488120809785335837283148873559096698113883222937589100819890111383062303033262293423385601893387062990619173809274876472178816101904403726577430938709245685911950948347256007674380960400686288292576677855127054810965036477708339439163407028381531046745535135213295900139399029017357539857908631388566753748867306646991505723237933746104137406919889948727897630508762938363262408830575414208079847071342071480317134813169712096235344278031526675544413300576407643387276969588108636813706976032222911252903634160409012247256381548041868351026408969397376917637064175580602035579693540594184069843172932606905012936410069159807170076879904064849554341624627914308665096442103158375881010519079327954783582558540066797885114380956214848654456020854033828928289260755081853217588659864111531296625903085416879598194669643607114881029004227516475592157285603157326236419224464588703883745091409798676980377720177448826017999154783908505652669585429187729704712928598790195076062829031031612263108662923487497920984577356349944455832556980913305149531168867301383221249927638315622622920051398239302266080368109749058776671384745181380054457543315081487415457739043305488836212313106052483782485286696579912748936049098695570063517516037994664312606393238132276047725021570774343140464348109439901169848160733549794239281226268413873844431916886047758661128953965578888536870992553098378603863928856986559372999551028269150786286873197266998485396250944224073584386243693245136498737661459448370520369657453750700686623882374138933415628919032234090050753142110655337827647514153026261664056598569934160091318526444631442790486526755606356310914240271637114002133186925720414612508964931720534356439088711538604747545957067367440637738897085904155690939481391057136448747538449555326170057603484047439501622367458807385993379606595775595618101098604491415844895265689695513807389633162009496595117404277397389306061795788496031708354380959126914202626949158451586045753337767440634583164956004002752079949836075942188474301093773020074221522976941220721102002558096834570771216745105894906513243510643441682385590481867965511751523730371263692170391089006659148666804132015269118107866237301428314448318261288847960453882601997045798996606515459430542120745121056577533165594796189327611462773125676515127386848192942073781375466959110499789167482407574990804108535864810697681619842530835528621776388198176091039285454504392077531013929134445815531216393589713554605788399961042308698654300388187793029684106382679829968652444712091460754208392556718527730828458234937008913950361258859282933013769028785845970551881513353429136859882617464439055367711710183621344757146928661094590374793201618007490768117223261621057214574603522334596989372809037684717716511619841316762280662016444969334123625052723976026134611459464842427416365149241040292020128433178789244643523147643674702031766422624499023055843490119691383816006189850326833879573784386525803836872191535082818851957254315678953689444042723373593514000184545256566690233716825914821866836381507606626701871371164740503290492196243197390457433918463034304951329325680228994756880711569132418152364907632592401186147415497365171348627768584950594424255810382802421097437489750241860010013492468605062490217409284990505277823146417367510572685538998002597385560680775431755937178354392635780422687553300224896978194753466651667461773462731696394335406455894323057952324659990707281189102546272601793713002962364893113482188590809124018132297812746090368779685498586578801472228495165335942426818416752710263056543133710103881269673128103271400192791494309418598082895697257219720290661564297896782468888018148531250372463652221172536786487903572527172257810617974506942428337287732778365107087911349455208372040923082889524213983324482323680932310961985698771049230159136212297976586009339633093520310689646478985906598868810630381464532361696940298435057651428416087429997834561453611354441831997415227529467828324485245888420018896039608825598367371612170070872856065301075550053540716038746966820490932703006585106773675659644054926489748480298216948301135609962109620112815361560951121818475344060578713737846643684723107516127970270164543386329257951789018058723551431415223573454568346239162978115726856523559702911702456733308276130895289839051046434892067017518771203775196317736920911242335784996447540262877718919993631105610539617583029348447963212177268661668202134880606403298843014524220584040921523523635515490353770227735206534395200695606848495983372955295525846629066050568719125863381802571599880830105573866713852999586796709438289783674702198802372797399088256896049047910361496013493587639828613891118948136978233259635889382981386925729880505135197827605139279850580936326562515423233313287431729410963501338412639137338341870526453877931526118512361053122076336344744990072785433732492942607267065320119853738082271584763876474721861437575471059566255970153404908294383065156920201940003729357478046447893413318688350056489261004543352122726059023714390294340075402276614631688757371265318259907605339757999964555363939461925519415348290923625175100317509569069686250105347398457774245066261091909249513610352885924830423046390825953005212761228018911334668987022067301238340436572203967186563381806511434157904731832456441545997673930838361503907520224310209274917535883879658533624767115586947385696207418389446610010068808161384400954957472787468319466748178939412643051750094992227247283149795748696888275805596250279864948686189210079488502914659441429110129400866806381011551792523960722180058957081883849035937589646533861869093764818763892964632150664463091018267530486620735294667043324942591601425240102578341656288674935149267367152180199196741723737186096173583398403004312058446440845612588018794498179460319088009147130197689309919477158643654667930830934049276386851359727195237012704093593879964284880235610039189366412257028123016879602140826705675987649158955988556522413261162981973813499530940175987503180682285440529315938162791049258638566641237572866531752332335635980960851657940494979173124396666473594449403221130123570532424612658612324279759699286906067079232928255269846448947490476781629764381174729883441704612215235026697696292288537016611290310968208956807955000218305281596408338986127248946254613364568074767437974055527991418861428795366948591246482383922270699754152721401772693582186502540644462710816182344392221285731797487777414141393731109223235538862574541204337824003868098214923569986863395852848092198814292324804720916583537685784456676994179478722110266344161493281858134722462692709334215669565941157531128650853387603786010149323684434382371567598707658384252767282090129700183373719169783348050793562285144316207534273591940177767541209258882126799758166477093280331511996221987596363973814913321795801254526220337090204291378595822767383304462070824256949663404208896712496741494951050080406984114004179848739230279057278513547138026689018236478760995219930025335598548068424395276254167688149265093444208111197858336460119107089285788423452538904873675864784231292778563928241843633888132846192145587299834268818748581211858013129875645871213074611521206479519467179360499226732078924854380767615169394948349806057536764824396024134417436581682403319297103055311369656773277785111634139147460477576310109738406449308905037541145282159694511956932238207659954771400571475508991773917454289269184451526746511352507283215454034456073845790924838562776594132753219554403530858534858253904886496492349705489356453404114622497274864206801595882335814120860950539705141621693331407778523933324020403902874273987451879101026775702832253016842390590505849365809275411945787141265177482842101171000370891371341428168229134085198364476532855754633675533555497434773410963100738330941042447253257587804965143682871901594668251851566718415210509647107504221322761949488304937934021136169525401229140098631419748044766974228339865877688281794969550149485946300690974361901367120724690814783721933888640038071688717225859883248625706752069449233088519352974864189340372504461881626653058420289027522214341425941943559421341823322934233695312600689814889516022940058408515110147152317177593378769944388632620328544777736548492786697154326614621967525784420193521915342876130225839569248110020934574506592206316316088442689259436289572172743878507856833613261964421149610885027201097934497959734074795363412545175629116156997434585770891284088629467948735025916573699574825584780299787619156990902793528015570397804346197551704335686579592629977616391167740380826931911022527485341346981731874120086392986309143195466231244108448178247571138435110454383805925502980447986803611547930501128199224091615760118915306115667920364852326692247748617622508894303248762605763426334336640705813230217667390184550374529721706361721530181841563161573312517088185515878665441924878685944550925644752434998949429097732934658339847066164946204305863291686888911753883273037460340546231465630046009349903763480192076766219320590142900460767193383502291767298153579893318304133499634890102194509627133439277536351629048399198437339148459903810205500624415181694665506794493780875918778899378775506430448199805735966221734732247911280391603496952114279204211966750631662847329495524575038342081560433808526343937838687591268951683513886166658854597893768929017600380627135716755551710395575640212204057236586589903727754373901319370359563530563801354560740667415146967040206617952694864070711642590832990752440608606062442715695203808375776075066365700407875135917616895463203822639573772680242504608551050815088061646166048175141282279585988303814867582573901836535227377126980222453043568006524482564303766379142057812786031638095459748231746525477284748732223023763469916817242281027772040396818839234314717425187559088731945832125699450622970707801110369714702053238022608949488580565270632468922952565929487227265865927804584081180314849851961079162124381611149705464804922290682355779024032018297084267119381725866754569912092040348995086161150749061012607996474829685152814773173864293941344884652090220687469679821834284095791767864128367824890687708681207221310938609060080718325500015069219962006074441530562784221129938271871135698319542369085481242034476040092323094936284955504154182622579495156288896797378013274303006891758001469794933377309158098456345916041142759973695525739084975193909531549994836006689485936778159228019562566216333186822613045148738880514950389232746471361364042730511789111655596705953678816458637106977553397547261448165397600970819509907292204501757380066729178500990285059801626695746689988546135683531749422161938879173179067634652572082401668970271988808676728990921346096756509339496410178586773592797020285899950644969268633523599038885925860278215021559073268005844975961978055841270097827732801623607515752376836873325714470462160817461593992446597140966973567526212118388314740695985317673945097954594126125948381174221174517248305229937074721109191732876046225407383247164397394868743279655626294091694098028402765326204560352066800910597189463651200765364980707493850371751050663592170187587381752900936967937371292768187929542685459261303263370892817054187973643191133374363353234309136482349630203406322224616710333396503871571162652266102348330777476515076049976632769646159302950826092683664867984387849752784714845510536798118308373199185427308165675968634518099468135280955290617399393442323411663603662016125634615245635381223973076112475370173211771938563750687053590746612397097663498529162293655946031292012505481049846294252575812720300765823426213992215138093242460618962589909944042061540701086507888390559178243013448395114901754714108538683916808619923721184902871006943259395415754521421959698467057270299397746017927015422618302568534432190775607371743401314879031444061003853665764242161824079181966677189271235248742452240011985247529962884005271636769432508759724391479905002472295010696886618166462954489367026182557321063429268715089720713111618869198560967183573711193503750916241493252747024306900909540156217565268625220061583188411767454165131011587839496504657395767493397402003457111777442843429211616890789305717345674130139243007216281274876856534613949415119629099694894548409820172516456056781582709927082030444872416492936789124015582034725864377908326089473394852978785136820526890234706231347390146864942734637376109117733530065018414752314877867556878367200098145610220678112486534951340818978454784453668532224183800856218380029515911899019860693301659479232932049995931572063001492199075549920378607639557011108629322614045469845185914659848133505373461269863443201019088631694792655209296236106321628669438397993415191802172707884643355868428081097830566700694645896142162109709165933295355003923462895447268866788365703012117231774052140835717231053004806932365750195679629877481737630889698366479387631341169344223161822238983729353115169276279725998781161020593650960419593511278570119806003199037676263315688776396466097755278917227212870818252682555648430238451294481149732024734273534117125678962200380866111266136371058874539404890589787747631011486148178798167157671040051516772379199625703286020341990273552755613987455040006712037224905329479703996388585808198770015120511711508701294261985828404009130517860205747930518647260770682928375278048677130262453247677296397117172197518946192855493681796632994076112480199126359696079373588264711857231559558304288388135291475417743262439811367925438382295389257920135910361618938001227137680902856193284861435199501635569112265449428544196183771286292027118691136998878899609449496147850021525882403633217237115360999303185602349398189011907831400454527342188897202587213355446798701191325907564312073587762152219187668138023629826589694023850702698533340869237791701832047915576882858797938280055629514463836004382997079782252314223396998591152865361505056844565181508931771486704665899945867803638217151041131786453492623762463699767614931007184785897069185348382957108394566203719012973414760963435840074859461486160915723200794635170786455789573592781974773341848452612502555506382791984059853014895315664964100048621008647317387584470076821038240393479714522693966492840915662684700900852829790255342457255448661640476805041473619951077629030294072302160301098650477425708592185401873322845542768079004064026203065108653671727902849716023621840232285380510929690136375070256132925015459042849092743276631343043325137335901307778626791441344539302738117398997568250862838162452739175353287697932863305330513548365103201458899305816075940037793805576205386158223342439996939534758864115131875701766721083809011016747215296254799861742803509015036429741098820616389055290847210470549361400821715501396585882590745355282891904665846784806388745005675262654507094053408970877108043478925757474401935173158742776747813293196481372676868577233440721059176914975774708293312794159293744700115677023380939309823151534412637382103607621294504031979845770118971596877464080210725609454716588017117210855095825636794580881638042785555798669286232572012036607413405448019025392576711208033576886196377886676810296537517896730841203338129458774050636626726998541631264093265343590251480995991974055420133757948468104909231685779403218718491816704928582497847986080757025003907790226281369294510113105770573752075493021286499586575977374203000214273282995682767478959860353409883724447689148328936041059639576999166634293833420341119178530301551832667462945056338890351783192192338494622384167745981012343448564469187962887987983636036274518256878355346960487513978498194279490919247435447224578064994724624727148074267605455011264914877240129079480213596520066471167284736484114251709626167481774522218582638644221292635581843975769550299700572739923400498634705095927720336066424814976358272001849267430701051291124655916020493334294267004724578898047212053432760564431828312328826506227449324416202405460299332588718291405442640818492355302339518320647184950180798363126326058169760459626308332404527117188008874452657827200696505861961910837342817844671483497416159047735099282529585558817019426321585050288483198050664885300291121749408816269654320752671684172611940680592883625418257928791068597005036373383261209370135066739381607185955464962950742306619459051083776418868534618997720499848454125921904411442416815904852446209740758524854705729283816966808043295027520889196362841736169878600716983495391280498215959493602926866634807181291386676794627400988398269261306776970507937089762062908936485602288443872914205655443725775591135627374964835328652536729394597973856908495618121885151060010731277842526187645160785970370065741073890034259179380178927148558926022720189581978895870746679362559959101956803087648274686312811800641545788548964563592139640447477691855139460697095430805880872512379413825934443310013852118708907419756852540171265149019813358882395419684292122851646493093214480775541994729076660290696439435897314350330504106449812267027392782776089142224361466622561163948110469820337250475132129450069322129260969162788261157084800007230822114986966973124736629737811834570331912252947282142101362597477800830496870099745014326851210447699495019743052744392219238485190844601855747408169870179646138933934323998180321720562798216412037930351812530187655190094777513464184226616002229750212185668952413491073596576827418262148017592835361475740177013476015621854167534125074222765750024089918234433618543440837951392983442305295025237445029849269636040716098169447700470903434211165269108937387147770452656832100332871642732503411026647968369023480900913935332668457557598141395597262604024762864758448684359669501975461246909532559948363237271213078990523593651978319936538136796198790801902125091061037917065306753742190110150968495944958650560633467061135455676504938584981359978071942510602459578593984310630512997297342304835715751164996786040683851860383378523247137816892416905626433321606782139439345732872306407584984812415329511098519388979349651307776400721073868423388670915172808068390797818208869636281330752296121722041039566449112621712133983229952294205996137911507586419776916109779474239134187463618333964063915102651401959628755779422209337558342999960119927404813860472970966978936407249713160885693670660629592342642789210418540723585084047452848269347257477569864491941299027757329966789635277886054603669984019955378632452495885665819522667786651707805644175846619462839588226369008391365167244731325885135249380063878502701824753998900773818922066132053398270669346195123642858392652800575206672123017641025517604681548379795593206964530757228334668502765488978586657998964412661918307359572676953270198354948294426283008102593612224388177566141960901945595793813617618146167542894546376985594232819036370194443746059641120125152324681180747021057870447805868102074913681744872484805922802465206687749361738594645759866488465977059437809632710827140231987977575323205075125546933968936794991676560831843148264104731925545477513602846498074746873942325582670736706172780190125917986406012951130453129895542973552060739686126334628379426171670943618449635114213140871002343285941651484130093843078497535205983199741493719918421961645464591562879723609078250991332830907519500890350938135743560680541964327412411788788298057287951034218598185024626954370052385949688297562930559700705348337037340467048809992733853035700314143706600088962409517155378015509285903123720091340797606207089727135796960465579965986280974312524114013314141443315381436318926983589940378141721574091420563250221421396117121439008878016868489543493903484775973340802557942793170324011580677332376668916078249621000062453393682132508925513372084144555239573582079030375935793575163888741675460751259032552779955533208629160266063279027854589785681206963219155385961523027846675994747927857885068133785925496504835150935414452620041433833685093323209541077333370102188733256195751394861360295822128901061091095938573104267499671091228017985894009323508551359618953174676169776209494040899898024976051158022903345806389655962715736476117137039747480800599310270453878621682256030428200340094950624337670165186032897995421269035207174529286551035953285969473305636078426410814930165966545137581901413818147346609298687882703503497015204180487631823197048003296349101391930616243033643129500677938821281948127846206137489844705898110201060983548274516981866733565999025236172592327227959523213875365339301978572846758109286314598631753565647841936522195281404460491705850407922132881790532868625532847854194080859421814512044989249209695179980505513809188866271232870290761896112167177261643994980885140072721072279534319565251123140469301090674282394682022135174988461415991333224605851557811553286834570317372227361221285244039877986387207529211318921455408598316827779730721495950979072626077322204983898963706889351655439176449830427132001455901132785618144687624331202740495113555471474101422900153280751396305268777667015676175825429974201517538334647131838188838395242950196126568596518638111256392374315020950625032259058075199574717577550601513291647283205156896628664545659357569752223293882359057903632453972253758021133975799894873212172051100636992317442806659708711369270398718198823572395861177459959070469792736609971227979551106197148399101611912041295869740935579009529561998231577135868123282391116858326193326633106037436369150959070901706569562709646493659928307615943053186462537592843605527684188225957006057939751255645785186785558087278351919432844868970335081346277178144520557370666803626971224128635096673334188779195711378366702343254856119915273399179195395012346506952288888228331797408149609365484735066440722261091701629909372332211169139002537090598822590937377713382538244818843160695768360604487187713834811386363369473347845480893939420379333046698230878951088681571141614679279931491691588844825615368774796392014998490525106533038486905663412677265402026216645534994915124336027668774866405433769502140381752817386784295067242313577090561977353850447520611360738572956214383350492896640582949574774863363447937999958102068213346016552700746047330937445279768563501723908730258599302055697777649160076168619799736675779266981437528180659058351364653945271442248744756213808324058258732841252897135051406807067812255376302841089389297918295685613791985371611496101786444332710718604176709088558257910557520218530824960934428283695737163773690161305340124646987666049598568779254865158334077293491613855784734017571725837415859999891025721801233059310396921602129738934971599913013871306724834389998421233611287068735968743199974326829556575057265267550349231267945513915769922529287133955704254769684421471748802997245946318126972494953570863182388646008717431435461906451362030015457128326871284082907847171946892300805314326495951322734318495832172085899799168442900498013454194428450653922096216449611465834735081665309679581151836987649249653454321678184881303978657149174044800662537571034847463993652764223061150475460060895807358682117860661244822435116783829519383962127377614489040812099311667275146013164463439954425929104744794156008824909962724719173166253066904637186939096836636408389054072482524887409043179838589482143361779110570660418754657218596733981899391533731722521293755114665662852112586011048073299987092419665866049557486108604895386157838458017316817300901615051079975869730867879117085379064482102193589212174680343061615992238571985775466559827040425524412021822048214368149196620532102257113025175303170319062653202047160082636279579675367754273770668824007856868271864264284377340219325476314309665032948858912292845352319330781985407338447054324833876784288279086227677022279035542517369801544950975212418315557103027782821508265362374203060858650032057934853874657985947838850990253405246758142506441224636247932346276122557011983159567538525535962152860499090644519131802122205555550344258322896234162459897137756886350328122896171679137482599292698595918027006938467261346048978851158542409327033862492743560401199215487819279922395824389507792995511293716597732871739554327547838412791593189332463857968458346891488473023795826266690030583778814296997573634471704552656715425251954945066138480614831906380329787071923199986981879631227760554814079529002030291812260212770970702116737850251510062631288363136939570540242137093128201745804553430269554790587575423007868648045975632238589415802712889004196110684703168975709505826102333463361065851660591365384207366383084460072752010790394531202198762351640699241546556592299139985283435160099641528650623013182873257751122668993112491523474904481529428462893700342741243387023238784710446035480166898546080550452789567111143602488052969714852570863258525133649114502443111635474939946013931283148729202449404257133323798005920748543033637870132023754941426056542614478631076847680193046258936698810141598215663010174480873461871133971467563180141464708535959028965528798008254369172651947778431031297477863860146469376759511631919655680017893395778354686302533355279938632731751807622380371732400990830885309819720432863907275945437872253557320559934556897321031776552874575303884711895120766667114820976488515476898087311480593903330944558410545391270136139261433700970528003570543936436764968162573970790771607221095719223075277797108446637179504588557169792882990237231825854672059429210341440346454940859122980601845185900969514374675087791299390115705956319746010158524624905991755808393794517549355015930440377309735656432563987457794215124898583530048734359738461554908481584867200949431539918147824357090165125715016898759406547773062270055342009508388339278802818618364362290443039800217297742212853006010410700943921081302810120066878076157513236934507336839450854621642149426043877134461048893030657142294850757012081917175814440662641176527070788785972152922606235044800793465991662217043007684685384855527895076472592072274633904633995125839717738527427149242385219304051643695005734785649686600607877052512220924768341118300013289580862740995112528514984427872121172413571258527291721139717787518064535272803187880347616236430745184333652753486258692850465007893086478727336144727944067383170828031102439676795837458818666832063427662577092587274843671548213129617465173103755335274315570431341520480524625450572377216512560081921109547074127314246785488009682347033539898768088014196501863302378879664049224037170173012669880734012061381670787327752204911484969066710974917551874889043921399024279895732553572651464502796778060512069505891318766613594046615002143178706103546376348471618127801390893063762689426498210574121278852795424931289346511983138800320651431546321521063507229751718523725744677609897761053479415064234328312805670291479682873055201037480608258789945979085388440988706595058770699019205954079016362703664416021135121091650402716321554387774251867262918706410749764982841697171174049570640419386057945285064550244709373092924679386755759952727601533779310329863036438319946961959091291160204410272080607487440206676070414719030292957860184521007401830754732041212434552438823404844643438717921448203972040864060766986264417095219103463581309286276039776085844296377538923496127538286487611119214487101735964591104207387965197770025575648064526780523191453156891225947899373696277208643449609906783328269950141400227631662632404654598711113916310602144236846354346241363768384700241593075374574676697334069247842157950578976438493558984803406923027126284165348046299123082468955081187578295450831937490766924096574153929551051654490832318041143286326424048926785192689715995546505216081317093077093578209423183420809322223350818260360121603914287192193705968972555081607229521896471361453753917920528827820029009682093207275369816839070762121879500219275544744975749722296606166604403358426802802289695361564970001861687000537991449086119077427149682955443325287780416185857139940620324845253035997154129504631877665165673995761633124790924012342854028805743167111394915998802491497881699511763103408847403736077477560287267158143178434679379928804233498136347424273488819688954417113437858425159868560921615722759822976128164785613705437583021319898794642537266393250584591049122665151263106978296070481905077130483767583698053785715860564045495935128779209158099831523354340908753731983856489050023464413028971887999067646086836084149434089319880132849901119849990606053629798564477426999898360921919572108698401361793787701213379571908865829655800334803059476538767749313001919675839505840818770808539261250759324239123704124931954126770404342156960202958713059159142399994205888567954062895718925472347376733768157212346125873264825988653895223133385551597885145994595442576129660348069679276061321237477162394161350320418041484960320137721949392711332304517468542409340407285081508345934786636258479111590190969712188715055655801470747786226466233515710073049365229185087005950661984948821525731081990428266813529862784455334896499479771344187877272709904057241372291099461044293606000866722886904714695469975785486355412236081658927104854741171775932682949767098000126702961784800108071667097477862034868427784462701630524128966015926828595189415009170758492820388351355248997276860051465784290919174675414510366837697878730606746769531763003380184247161121449053040543209605115390315114256730461438368317641338820469956502455077803227935918561659427123603728234032581529037863794768637958298833361119574805071812439179864659939436839957044915523968618924758558357862661508002696953637784054056965436060091869137320646604828483437643237693629605197695982319490521723529196534059811908224701420708878856185258267215964478339161684845808263501147558800950502644004556511579275825809419455840210896016601569806174818414214590077885104794727744276702303351878020234658443262331028766667564954145351651414851187865303392270832342630750834195415085527859991841824463978969020166051762342690266433478892233792305659017493789296895966376443362080148338670200024344777057146406050907627660579466409866977722160952631804988525656012653904499066592909466771899116158029757675697714227892435295177608227161062679590600801215308900269845916679479929075592428461090280336087236546079597391849453897130865287775425834708467532029067178030705534858301504792312620036977538372846085695396234534143132692489998923272811084211688008365352773282997995714362885483567144711847910286105351371030292515097529502514004049654829500566667401502622666879431649338010217821783733421244463834935871947591784707350564294990987450006095357763448631976497116376456617338176913913081949432883950402002803862509852462227739998133268567411366703908324423613032076534505612194543898284293952118242228317894930245975359834124087402164494999630418621103249836847360982310665349984780444723496782599016439838317185833233406378747956375917047952082230815145045365817006381683936756313018296711125656630987474058423751925511056547826123781169281552236794127409260108015772363291075708981773201612414698038140363794048633541164491887002304280423427557051603781312652395756336282767542408497979853561656384134859497467444639188142682878799719851752662050431229916498894786346146374707351346682693973599246694867374184973030312518678255628711151354332628486375811936865528078711845635166769846981416452307356959260537274298199578958879022039376557086040556846655615532854427309942333777667827817174361374548867575100974426467118585752561444777612050048026521680798951479981735159987838047735984865640351342535316069714963782338106959951478826655733603381286580134273625114977094313175658030222420296890353828712213532658104424521613490952538948295359732586150350606805404023050705002789007742666166394418501885665886266817617089898370064046972371038633430387526099726133454996405983182575314644742516914790327771458802430386179932333582431422480858466971480092413828463757757558794673076649411873285603953233300331675896382120555356864051606660920600893574187105831705179863321707345175675682286512358432376983112742817960435454697974972222200965042148967356347128818291457546417721671265765674847863545715347964801877096893397358864341860680845140009702232767781387349047166555633443798162672684322384441811085821231260458807239701039962547267272858221127682316324025962064322181497049394305221403927051324651364369865610242714622058516145528520901571424710766360910679504124814599484983385551409340662603072890599131290662843572328025107119334626008077637219382099012390819784703007297987472668529837549550681433369390589242771974159479487562440329664180137818913649360011572581284047436474013479614263802198861425207691878520379887182330031663303070216251822805198627789231587170396257845063831125497340145315350144212440986602390304463292351293988369603849390202969374579318047007293631196280603812413431671292631276803830057287045148051857741147842473781965550689728162016495773549456678694669791580325816200705030844683081761331709477296312958348398671271633567123523447124742732480150540814171928543959895112748865293050965368001292285534208245447693090044347366462382105649836175188601108583538153363700830813750941600066372036131716680270510948714524555481725946606740898255611206676991926154713794940112550549603967164282508696348174732049071286949587148032026378948370780598523067833840952784868035098131536956060779444433383057605196785603798197381271208415364055445913414033055090708412706495941543777398234910151527988956442335719580049918860371602309393748221237425010744817543423044900305751969450050594297379913543320486228390583063957416564535655429673405684947949401586144612001788795172806237455583971185997646456897563923885543707070059469951718318569004436444545509585097987097942026452201155506851120016396832617221040466448013554170763079102189744101687245502766086750236492632867966023830247879408187758449491360127506990064829830173743780009518631597197018794218916583834743170725122097204910112199750398191437559684069267690125212392431133658014420885365321849395188504741714219033816310334059539903415347005465221439911444714720692917884706061479532523510510143932146755544471752794639112718363884449600157062150154986502086798709070021810751730162544091963242901086159437017199039421343214438200519048714881385121104657966585648589239834830709438329811190914344509165515134953030778092983783236554616577510305148859287201512992595197919465233334593637942039896621580689460435797335512181062114500892540683543535141058886869444418361578271524981609172743084663284362835282349289180238350798897076011469483853399184252578831088345306915834804944790984298078136008272670762115139723273073348173978214855576057701361097313444861452384221984567081249456171357288526982802104522581003672560795655993034392944846873101719779043440619541387049376813289255178227168049039903083669533442754841942370988453450145846427599851622450152951995101896849755316900730665123297422180931301457925049035600702203121737833525453560092641762321548454243027610173062843278399930751575643787980627795955997230099459942050231143066343653788889292054362740184088765819996722351769515235105612906701278126299465977019945054427235097259302650108102945131884888337501641072352929925989593373691044432765220781130666263442603625179051507510436234803520381685123585762493489183275547722577430748473722886200192329623506039425634060138834865339518368007327141744521510478830446881761899004859280210603529789236565653076886320406003131197933251187429884351217780073783814762956364605178508737904313230115270096424506948769125296267248306920612575266332759174030708659930461518897391494371270774132464148974029857937573238190230063973532760154759830873662046517066934374464399311945723675389894924725875652796878279494607804680484864164805414192963649300389055205838280484399701333954106425625891385360046391517097006832682147704223311290603149746734941919225121905307888597322212109394626464078668761383591376622813425556970753760922225970117441984953645101341822691165809594522038299069564289998491300134068225525003572082794393101344596405628341725368104019743879781600304004156167152043935241918383139110436054811428344429439970987812985591691656031209038458423771733632882954059338597470414958572752206666262901916879206689385138615835212241742339711825163325344352319287245916283758930908544727992608247347565939865737408950415394147170819755538367697932393933147818469647855756529782896602948879215784588287926235982552282866665827272054632936757464174925911465502472883313246580887966445842011265219748865311397311685563001959693177449502366078253457769284327328516725446980878329006228744414591298114364837247347581000743008814058703745376942549190651407441847134702211281545885805627268384906641604601547317640557036264520627122672936121906869201730516289106271644045525644447659074634210417974031134953585808848433096731619616323613767731400607154771131712784884950979473366331574536255196832175883627241116605783248174615527981465934519514142735693642691708836707406440797763605153720789664419384642959748355929005483616472588755880660628367296650956965687071087112377028491088989654504339359212508304613205935574707717465296115969996385461274313623652932144488730886230329362962577381576033233263324248480396350235163907500791116271845770553480534251335577969433983184138790179953164139493023345297934455172910301031855483025774401627546378798574871368002984570175942714170955719975676070822688803200189028307245956221182371264988626520718348526607952704006296103976651235831226314706183085517816680152068767702562747742930258274700445506091593699820137492653014195733451218843872956096489849998975703061481472740252277979404013958974990588373972479150173577217656412028896354475188533969303502041511144672250077778498971319673089309778408919491196321360926214697441779294044056076596726056210235321195260926978479542358394789074178656839506249606134631624667268047061283042645209909520197170064005330204548459352209786170407956254572161078390185231173647554833147304854614299782547452749686079724737619264015927467960607949440105883094904927952974530240041448312728215581990788097548573454273099374018440429913717553339106107578629566693493717265626646924724539462538149380883733056003177020615938878327003316356153494056229585150952401891465019006088831199419884952661974587284744530695970622176354178664820960261973141105803427641106795016805489920435245321593650501444602079352526101574172224022846544867507045962717856238965817331443649514031307323264089858022545130654081757813943347426601431992139065838882257698130116771391331771173677728668545208216302160924004310623873788750072892747158821374350344137367132629475422845289205831839409037804700102050632629179709274325194871877950764420250767415492160252933955515446811079206933807448319765646881656174075464077084025708273978090416843913391693239041898966975747927331229842437974335910575584578261611897364038108762904672336039383621558999911448015550887743621186562156860166391042345091693278537371753518335324275600637325627204057427725080262253655741331671649023781897089759974959444563940341195753570266650532768718323205222873392302241526202022568075929840862023662912640657521852754854082453029464913280151076490371191531836709444145441143048940227429803917714917485074354963878263538729067688763005789299091032706686417038019099882987596043078388064411405949470466068357202477992847737317417948686967977987302773520340814119983310788386912788019415955832670347910953149755021464929962961796018069770454522636073005266250323969006308644380056166320315253757827309341444410244443346785129759643927072735475284360527473564926395793095002430425551080544899050824332633995152400448656040199836448772550406403578046080672825067485949994605910066328403339717081551344434433562489125046163436348605159630283113930754598833206730897215233784193344668058690191491321606664797672718616710582263027842893695930481032789270940345054949267453463173820188096047771738312390379034168723267298932538496453229773809251603737640424266697441488563452454670271481543805958676020274424141661522087968329512292553203675544714771490561825270219420597244164750049133891160716608932976155591216433969946712238899257673739893797448395181670590628802771397309552442559709229757332037174517759556669868903121440797610457928359526501763042903438095504518492402806089064232406677545095346121504788067193396174261993313390686513166356248454089300283036164435935048742965578836208862601676462421682023012497627122362872820588068517587371659306391361624878937994678087179268786940680212045221548060490249674414232199567785488697147720311494949082218832096653369478913327088129357868872641364377895734439101686599160678391171916120126342221817877629156485858426412339599969263975508641896890321076217675131441040966107815596000041961368560071447001971147099614469803698864618782903537750290335531317804628534456140515083642829015642016652197054126744954813610106720001934448813856005332156229794221847243916750478254036656776953811884261378901565149425584570007884093813043801155534553840770997813182420207139490159373874288011938864555391302474884403218175463206833818887207034865104148318500537989311458573352253189069167329358059928157048770418483935410782258250961666169287641509348317309150787162544497500282373358244239627170581065017451127657834191439044065485834303134855228770138675691307934921951415364510929325061576487004012897447636173524111120037345500068247646243887301428063929547413162596607132391580184081403539781814378427088122149657298038276965111141966820721334455870912631126442115218744655577385365289538857681748093680790429037670754649751619280537007890832353866368806923456477553973530415431618866090018951346267864245432989421271652432021652021983892737193453270766727073903661035377821177944417973597706110691034706796976967532911577702111029309253132411918390927450193172447385144173268320273691229933923053834900962938965003391214870740543354548552897633852729482498761432490417727173713415509233136627458708650103776126908049964557551224348921182526850785863473681714206019895413771876701375404721124744871399490003983024539210883042861446795751921205395939339035538233048002640409749066115084349486615362792396273440544942066374605360172069442617345196425592039627467035031471080489983778126585905729709147587400397590550625196017902441048903193925308304573424596273967533643372976545197840492012079509448538153941317718727584695291327160740539322389896801835985759221178837433904494994475517159648919782616430069113516842935766183614127273777451491336746485366739042179363102782514089949554065203085170892133034953196986347157945817095168870521048251232629689067895418309178239886683503107848221505608634796344884406990034287896436581156177459420805955203665859958159047050484475532575875545210003838560256661328346870063091734908699243752635731708962403133194578372504967257767097086982654568432126260301131673287131341409233312675577809140943816203061817466930393264084949394090788678730895827202652077543489733868713550285523792325189470558618530927894209282060989197111109744609317753929150793800553114643468455790263742927353934794499064365177832793100309764551251850735183094163853544690286489875302552779623564279289986527191060803719775381703291172878300340582265955815675377757294966007088424110195311826783967806724227957728082377230924872064447967560270972135582774746589647415062811268159509723891888873777743763894557653169574961661310460519995267221635651221114736158342690164783235867550659828055039566972074650896637201522617058338167558020997828476490427829219744276891426838392277066494610623927091933041254632138613561339872013505194231440051952848627061183557637002861243547510044731068434430472217511588207227014195541076105834338721341028734363620064758493629976644602521636969134129019814426684891465258982186122708020301090917952310152662065666411683932139579020666775728052554785880019436215768747287225233512851323657665634041008696749232189371597357623829928688427337850231046623772518247855579159483835210301509032319895859685787773063658543218915164969053120329059953819332546957015450159865931643841837940724431095798678344273232127322407752925359229834456432937468333565885123330897379100504644889797711410965652520279980078412968099187166885686115160782377245248937591570551438918172448001562975423928810043214155271970226405500835293972268842531067297120873738732936073136778176416336212469720188292346199166469628207233334198224628832089875232138950673841144910844166418965576539605106737943863270489029233209960906724664380979745535229381960883510007460906478661362308440818684831952969227009845207134193698670406051706693922473758409847216585707477254561696917518245511312307850178607239785268623144598787970704012900221187071194017131245893005721991026900516637191079237245148011461723710409357084252027932127518850367612823332019076337240466441455050484460612620821677987132769568335189422720849575822403221117602969678410379651834748893279182226445204177951244162227658171841440469884673339558119341528325936653374693783826313324878895559916035825062538904997624729288246886951887700209447556250904571595157742557853714355246403221708438672458207002808626326181048007987815543640240204778426630251654313204415039805854637236740223206393581377480654304261870028147885770650001847330287953772797615752137306744645522051922000988619564430621626015798462144442738143918328316868731765370959608712302363307876310687617682541312441596896059522555507949635433014829868787461196379110064478329759439380895238071030350819546106409381677301534487590832973209337217098260670095339546789000699916386554949614883464287187686685364250698166337502614191271415356190611581590269580153858981865687854725662232437603336531868523609087649438263308194480968262994178010929830272933716472007230970939917055067800604186324959067051532145927916892745752407466031813318495155562942792384876649759948416021799587002442940266803893693287818210192227126670932640342983362752943615113127667162946766340307056849913778741432699912437616864475123601809946497409755095826661174044687768610566661424743714045080886821702780929306954216046307754414473554831816515394546636387775329103769074571215245717711658112627342713349294404878208270962622537209652270395002852540752472728821491671972005396011510800278628557519511585379070048886510026463512269160326775135332620614692642492976522789504565785125853949519155560455874688606236815495505539083430352527820331329040084217299677507647797838214369164498659555528555784056358308248650467435172575577771390999759647206051053656507131512447703470444981166608040084579086590071413969658999160582873581358670659765458773245435479270119277100563646170393606264078566311424021105149763326591785856849780452596696275977488133609670928477758568785744071585698266430941571730541115166456709935816717762888811526403982164528546259845527145273195253889755601793619048671127553192916859477564144583962553854906893410365765870604792672816609928060643529980537042033931214958656807043397849712960535521847496248209498214833543805271925148591490871947747716463619106324979746609738034318234027883455808092257030463415714699708552900752521167794943307604154380712823647289391051929217685475647084617785646019158795035128246207099679759988344595543510299326383694967814457356142242454816532355468894846993933199015451549028539102378653583652317715369257551453109264506276729100692753829484954779856029480802997512792530514956250374508338732823601421261885188695240443594201934522402590170627353733166429655975765965981406532537609772763728244942921041103585572418987375543116763230715478469859967010042169387189571877207689383001293548011662260444192063146783062414290787751198264629720687924773181805809040438662476321332916672155167583088998524584112280992875936521440463805910778808875995077571743722205317531069024994118442859208705529625664433179105615052926578179155455159391817955519142419941701082528671660930768923140760214831555624085866990855110167697425592614070059109055054027206807995214633837446271381800167974954214408460077548452034613089033104255996278057795582784203459616727226817564291446081928350858514235793108008022125526826380449904207143482604238602249432828373023986730121272512941503954400518056317265145325408112841283215270400500456312211767488019368133676934341001232107289207994334379219317243816536137086476484850307461956753962772718062293614164304392007324168134464807807683569977816982881718753236718866100204908495679133460977593187727619463269474531435519830132449429396126558105171999467825736215277788431907631893203930568279066772284668493547586204175795745335981313352286428572192020319965617755376717599606732289522606839775221418829880242783761989373642631446630139375237383012803393359531132080984620850346300720084264922798264773695911773953847666769491071322303221011948658752511643167470055403777338567319728093616902440854901743429472898243920506552747955134524905335123236945471217624297419600514210569694054858668926687439422476472395967416679538119070965155537823953889456162105848533850492534523794779332844734024981675508064003022983974910133314826889346280932565724299323960114408849912976601799772841999308795469782468928444504080584989268131384706788151436887481157451125533751948603600287351331788811131855296282055430322725998292446076941529048416434775823530018144673239005843941879980996498897768684662693707627196209808191047032093176796350388650417452637062603177043700356474376988617189170686072776132835270122261757782242263270037962601773402749958397881798627085281934853263363483082106875745979777898732893371843416130987994727331126848067830257133846070972967644704487634845671662312069967141860263807543169807045410084865597135510308028872600635955813151117400527820306767980567855014115850161409133231811984896820874681842648872599849693667514688805109955212387624587890996393195672235368708538004960869974725459775745204069442956926923099362817839322491525548916738413387538131586314494023616100583607941982702566561887455746335586910837279326260851685142142577333761957864454745143180756248489964926551688903107841315263492360768202055983804271495192923938583798992821159232487526663778939134170651063094493714461050812935182323791948818368608151028940267646693964722755195937286048394289264936448258613592013053606214196713139987217164477495976585493098574480373025714750239489763770152076436330306624663360692034425593619210747595890671649783243789688518795222449813102351428847743070990054424015554860840027221963868497177479561692243654553259500001163036848385773941292525413664342715070342083669658736018030893985561044023961695504120349046909470326790484607385505843702933920639102544493612608451370155942799388895810229419496117286379503547298206331100742723115151132038804147070883354454774718065005904116541518533462742134518536761375145560338839714737297816416900778374253816498413330053215377767524695587850395085145850671589090195987096231049778186833909615812299980525801148570019384564081084858609942847713621844882072616003544687028173906784479239707690841479052830092649396360362441986054416770285013612709616671008641772704697507821021620257050391283564957360397441981531470803889946115273639041254592792366411189897525305688779282886081691539007807219706084199172174051757388387311167201786095423941716189602822561948472569154635861247338547696864557176848680281955409015844939482633130718842123277298969305742213847624672802780578814941469934282504940527054984743195470327734683818439613560959570161312035775795690888346234629406001945297293693447421130436893397993978553970723422925339599598297596332953352684162217329035553131304736247133285285111467358782478396507202609182681012822791392394189254596470532249258601544244881557315130951252119065950810854392320786800890714784324347539343937958739142278467962839190108837290629788674061322508736323942102334526229449369806514541553362766655208247913521532497199411812080041006926797669563066969260693453535510266972893164627697460942841335815701509876788683202888089522494417858530580942780217068536228159635785763487692584354579103203369791068880118278451938406235542019375254317780619532201011807932124447680958816566869806952306428027843619547469485290601662467528446757278718039778616854595419396180053324511922192196236261015095155380558197617588682177492615124428700092744588282196287388700176448150880778990828032264789426435559753681540914888449908896567226069161173454520101706872292424016129743677705816548297331896040265222106642234042689815386251435877811835378630489696081616475828780357610070862015812438379692290175613035106941541165323651897371537296088466954446308963609067508293642446045799143091296367641774329039591718325446785903922449755808678030023465071209420923423338240335477065131478481745960373208231255667824629362067552492982224895516014222036998849940372226595536342794229254599130025532213726449032643181227567998940980048249514392920271122950787969121348832841451201723367858750470997808987027444754267981098277691454584216683252234055602228257798751158589785573492158080630441875126310675076136554807476462748095979695226481349277058821365666057143152113070987920886559190092800192431945570549482138162991189486083127261369861486872258384748437703191536227040095750945631844086306227842697639559718711807140820688617217645784559355598696513609155352667254913012499952162285008298938900324097008897672119670832132863559730400192513325562530966580532021534326816400124438264582578209469302083212401575337429295303746986858156168543907492174967680722615680973321213000480572868582368022257691561963828920862050349957512758040327034241302789682771706987480204854149985468469256652698285064848807061623602302030584406074189035767551853217107028581686112483095089833831272414035872496069042040726163483671920145143835249528731553298813315192783278468306200627059159574223219386255578031381299020857280210335668968747075289696554157096241793227219623054369964387151353028289525978178762966715128305277868528073235757922684003952808900853704400401730128196758989321230344348862401054541363565668011193197949639201159372352011218690264679014662044209246144578067232317541050458247180904905573086556186553378271820703211925514784398800539446002366626110012622001827774481087511411239389654384475764546854567386046834182330669484052688157746087366071086925725643220105360800889200650509520585136274662069841621074785357613241801330209738214682674464290280601357780089410928025851507040934094034732587454120343745600371304211068804868549914026316344459958468996531922084533012029134344683513810045478541170838273662674841358934897729009949650489551515257445909157993290676031199845139124624608860369147225671469154667468419345438406595019981581369104331579218266046494558262876612522072041349276006344623395363925360289798544136172333856849386193735993621261124418267576482742244219025033416364372955804593839480691906763996818906211965905864376350442387091938690304500227781317099514195488037553404753055309078470778336711863037564503666927135041235467327256586615698526693046087947790647282488837390336452138874092939824834907665498249466822523949858083879335287865567139889033896050429146123809913190878957654487578896609661096563350917710403660616425413794925053570216744603950212526491146264615415808224301641550011212667850016653513315096622022103237549478360007684596512738229613845233035193162623794829375725296314744153027174097034852138606752021425293352255904970360915513591772050758994294036842865560875825924582005722042759446596403351138827770918589232534450128257136650216432479574108649041920564230690193709150018808232528323460844320772117239933312569469156973275095597449034532061081182568465110759255544074028463750606779195816543282013264710530519133943976427243753949664446433651775127143286501316397933401858671827062751624644430914874045377841743252689407882360984709199453998640624401439661770714508633144846221941590178181685318690594500066488279259799907389210362152355162593076841190754495583954541678619465085042196893247494937123219715603599955889817033044134403436431863716968497831028307615314958438064031306905690981698501957067759055960754268504143734370584739319305500573151565355847155733850272314132574788151956925660627009491080648131578377699639225331614854211619426168530243605422274318516396171467711451274562775201857855565090988847514201959353936537431252935829465327977166841381460949540106690314131647948412074554505323553927639279215709020247127137382363056018736416864522006356294869299122918593283236394636174252661424940817489832894845913584836380906930417905472678908961946737380799214999649778539496879775877239500477465228527643053887371068638298729500657354122958594701723296340109320536643018198257267370985953385325836413496043273134794080092704555926235972337970995970279888032789400532375808887487259069163544959378461427729395721391555987155272896009933600417323279508042307336735281867039280011944779355834217525503997870177721156002289054106813302285542829945226128560103005670916808134047754002270288805889654452809257546350799731370611919305723807180206191341885400823142921473878697115042571944550589992764116366735757996246272453564398705369015547874332941649517222088071354082554616115041046452345135005391003527181505562523914434089836433116408265109093736381831590441955175248259108154238716057629522537577509553188997488342457961878980899960520032168349789720530986992378968566275085495588080162324580601364407396616019661068006538675808234433218343647916247185145564949302374699591508059247188271245650197729155517995712155136763166369798368950817451812190822935737371283356604140675049220609976422886013992680635482622781186749012736881581408969237653373876766480919955454862213156836747994099878042664552497369785380919625029023059542654143158966475561362017668147400778365059065223232688755912566098579082548503462408665356755167917968761571231141909033951186302035914995578492012452786930501812359686759986750272871879207865624513763618864346179420864690437043820291596213005348058593681691716507217074117181698660340723658420521218030230135560067235008768397033170047454577255975115693695788768627341698144412440970016991984374453195772705834756963389917317628704122190374379540274483601943091302448911205598053654747461809410965606739792526320535179570676912752987736797462550054088382712314692858080296206024970872064848278701421675738993234604348464820182991064598681053799742318415595660128504439530405272894658571533671034272818024036089253332321936097669751168556005276288984547135875129150688936003466429674429262073369944103435044847802960050484110138015316871681745421431295577305000455929413070383548689717467377054390080787647740356783848480483128933894064130384978471406240504076817553118634931360012848488685107094589308832070211766431168993895011962033635525292843104659098711219777414896133512775384175817727815034041971044007290099410625198863565549507330395836243077814284890464303680367446131749671012491439441772038403257082001340472027012107210171173165150183085140547545139821293006717082600367476122132534887789851036789378828726936098167323099893794825702712100171460958814443042278095841285877747957531231759742380704664252890380733314438523669157564567169400916539137733328027583441336341422758289744662723846865233255039195300189985474337117661322994632878186907490941521678113499825874994733807826188961553047156793695037800547943425858526939368153850537453502715962598470244018832611069489314065240105021273138153956162741393386736947497489916545821027251281218482011610814397669530947685797690902372815289214469621329588552883952475360158818996041647467490736689063462481256332836311844759388117158323534617471809090083193306197735165506453011989020286103929947856581350668905179056748821084978072856938575390493913046900256712067533152094640926330827367766251764786232307405364897866036482094929137254872091939813649455178957640377964965648054127534332524904899067993547131400208164501192255125742484452025021937065543732880463687476814178165732955192306059169885112816615668954928400096353086972436655051877977092584392862557323459871395556232605050916251373721083572557821463930172028932812508855732292788215977762145104990046118577829601667154672279260103886273064892731694114425814665505803408955838343307055210125148018526398288474121967825831174790004608002525536805386907968322696395095372848126887978413137960901123384887623900234829732410432150620638211190255859277822368254089779933136093456935745634276400653193188233832766715685692640479750761505270967695456584674604091642195735633497268700098008676538603926144861889844415923041563312349014918191879232084714741516774658974941901642764434419923927238825003447477015091442294403147608802927550089695011399420169654587883435562496348045689223835877096646708581830074786490659041225831081250545080197905476413105822064795022499453691903256081201315002138655147670669514407879728923823653066134552867991093030702444416815559687971962358750727706532793911261035314862366682079707454834199180676246847386300234217452267607306982541241645743961225260479163183412491572556595050761537663103078732098593898429685691298509696129675583991156695102080290064626420997490383704672266699396144229989004953954119484369544338791574257138295889970016718554662207517029413782849640957896275496723575312958990710556394866077598610431980728755340534995731986452720087631545691735232733460668108686369561147636962653657096283734213086097308622695039913469966872842494835715017938573127401020327169378619886757663650836153897117947404900601273503697279838109132638797098025922284811096857552206098247121200199673019540858277231944179188189338676356910687009924378693269983622048361278330029691330009473554364186931516886686902849067931996580605294607833810127628522735186457838207083515604005155013614919124837098275589659098837789494567675964226518403069915387555899266510516139786026990262062880502878421776622570395263706285454369878322928366790008187097098319073189946878211999169627022650664487671933257366946370383046803499586571086510090368512126181711830125296961160866990172775277045633230965982797605195073221950709116311416841729117572740720206956744645088538794501590701219969784320208277701965581210383278164392601055125090155262139742381140524213836749179191115025520905975560372509161840225137019922577995584763279415889694265895347913006301676707801682718455017094488490342863045485959219636525948379319916172002164754679165060741288052096016256053184257468873110269672080778445356607528909353218690403445533565890631586794077833184250327606196096943626351852490811140414369632428556159326149590912504424075582384213906724936078293247925116297817319456704311000448625171112072142532412713535418454916052029314669006986938580929236603145756822395303995791448544682110618223083667797127756666925493144278247317163204164280744587697717276977661238717326953943043537213353196052960369764911641001094440689495883045246412663493783276216252307095316743061744122821141645202361991752782958859893513159754323277875080657508928966324348000409078189332303513483040689966561580931541571740830721963291184945985424260407508077002819136903378228524979803426807068336040469421752347426757912988577627443108157387579903941354589995935749880675849370376912735449617734272575585828232406775468902211029923331637612888435154887350243897977741324203509699730335882720461611884994793581108983097017700075376302153660480944955918494760393414077742830721949241349402321348465380460043787497058931118360853189295896557819828747013856559466992361178516910345116517096397208129750999977919271074115313740658501986165615010643614657362928235228616176578744052969663021071025490250966082035947493780125308949558688530962347888094582031487853890625081969123250487255998981853866655034537140002673020549410810825534028772165745190253211654489425347134966971864127731569422575904850967044130857124967713510186137582584522603622875981216347140495700747603656375276399764394822821994252132154380959354778929223165193897880636016827263718317110330146868963288206111982687558701584509543109340051564663011725831692697740719065536861681704441827415077591313429044123935845811452304290732971007583027857361205603715005293295731169740980058885275819909158345570583757429822331056582022363978708469240980914117707477455447060207916334449003746675137617322427977029754794402238664293605670053947980059823966805244930148320127108377140554993576401238940128073312963996834763896686886214366471419018864378328783018652782310577059587794358665013030361458602921468668751424720850587352643695494561334076998877774323890700976265776650834254932473513847919383905316948250063428272003873925923992324515412521678178130663440545088261881788787378654170248629531166406519979573844558937725311827681867769265605466819840731742926583231514586895817463451211253194322735103202017284598969402025028581223444353552927744765314332508600472389056844118512570254145789598766116019876708608903058773435473187826222006157319255817480830178256742379609353167474490521273469869868336212818001176569368135949222874390531427868136847866688521707179714690760354033130058673599120410782330869893766346007344224224189306038265293838900275717180961510855930223553465879026465016438205556024390305570544749208829398485085180825181913287562468972785490639659248196723837390746410882470760796503354371900234132827711445455748728272556934199467337148197465671987513902464271357996069516889432112497472792224075158648899539580706837775037388621218362858103572853693844907242336721842929861775551781618869018492886214658875798288414171714580698096794298744520720290155871301807512037929842081430904481972189812423013363884243159363576362584170747245170722292066181317830722903850491260051992557511146288273311072656574550103762241848667202313356017464381419167174820472133630837141384124585229904236192580598190406368177418192658167454062586314131592677631744316610056505183025302825516582330143628825637250038755518617429853765043716866020075637579614117125854014195344841443126535277538076244881936750223964729445358078345781995690906127842892977128741498787438686802497446179689725615529636843643766159135365479538276831347448940162125100539757115217895458612733498748773666970606309211194196268183371929132543242797204204039388048603441713607258200461791912240200151203466713467859064655686362605444202546344643215165707175879537917138426912479074725191927011801955576597777038530340448665173240454537475034052545878866752793781324720310655481698422322910796618083837565875841937896177706037444640694512556987614491501865957660603824193735936163979485715159781404817366169378239692567848697996124067310720138191542926438785505883729388082780053764466689859310100031663894080768003241289627070929816861135906850511388681109944202222266261985465461414336248823314916113689823546090782193524578038112969737662861236580123826048345298804745683360621878548998360579178732546411350114171200614420712298537154949863883619916974489048075570282166687905632875522312614941481204849016731995003459540289688292875721024178831862156854412768503833252575479031435876680257847473624912451878175268230221099468285292593136315724741821952019465813987494571542174805703202141170830494104296457396673753558115361562983064234940247467238845212493148279142231971972108111072567159195578362129431680043464314124236628158125598543427753710068170930780709843347579629567729090367788498237411142221988953217562843493214751975116190539958193858766142188499177381916548103537107452946274448762136543685033326168977472874919208134883693319776297049414703368832615020017460853252109714403680286516226706701266056090930232377516237235562318355908109202298846839817334639631969438506938407328847402736822966891469698055029646816002386707709863858200637130220372714824663756075615930464738380326522127155445491785587818537474795356221896870747579973634032490145035651602228449930859563123793624177175490718407178005277090611106373484921751845232887896357075560641090649134653618998180066296735460955385517482437391668993188155239255234882152492819446797560987622428818836597903663671923189899323658244425431802809569471098996491111642919427526818362425231876625525977762533531211738413160655973225601697444564367005351181647549568795255401868064244800439347248348677337857443631164264644297754384287556502493696454095402160426154167731229026114173713655731845526135910837325781925403885583437632195350281049496175946317424998906943516858464852272007045454566713223949992920124741856216951157359570776937249058305386543784622679483063135989995463301452598660301112294894153346570866148748656461173810841599438612842568841830738568688326008605835933732071309942214127363094988679837790728179046381434585372240514222134161334798605367756551550847728349547280492694689376055581181529782242810219114980149029934972787541945021123304501769103867980287636446835820652816927185759821827278741003326948911473687646517879973158128129434754969945394960348890968794173046592875973684061070229003934429432415398888963816537809816115042216738272056138263979582776725768938660455437035299045035062264077487474750445267421201438221513573159081794320554294877480958013268129834187673020046670302393261140275976006572835115223606964406847059236769506414243405826441308690568478191529491555187549343644821558949364182041991832962276555064406374464009816636445652336345756350182197886279031693422956269835880927244553705485177922603403545238063799139770838098143064858442181747155769717697707851655780769935437207519597226273708277821162668590826803975854376414606292568482386170952739107998791953329848814074179531421176517739562931525547758764252073813386069452680825205752347518121475593258718771913213294368107120853239311885450630978317734277430402825707019910837176963292698350365838913586112608568627394622869444586525173212195642234998876516589767522804515455939661436450128301623061799290549019033480894093657978682468593910959067213585151607826183482699729140076900602967438468649074689815267319281603278304405962827661268688079388632327319417697708444891908309265102924031261596178461627177502004880230931152574621645257647918826929751103526198385172915201637419425820046717989677897027113001118507072059744488882453402115377795984737689598776472696665259494471277451584128227478550614251339469346055421354168157981070809298730735324461893753340729918528971911125906177234932591623477522616090396392029453420319273159125108777716796727026491334415231532620074678777807934431799194779003741748443277954983570308114649461612430674814404721230372038593036590330563632964749937958941733603403039206876134452353900929236551539293897487361333544553214713785931457110696610939675690747347696972121242896701056729652194647636066774653356863158104421151177895106518753326394725309689257432553494526172720340085173350725858711907470443554524046036246343824417475055077483020724832806174136896395716806554457189328263983952144905900274968697569246325684117536542160334765704286722379683165421848770071854313839096135547415191714567101186815724274078255094238357584833304097143783137175494104744240370887890035483030513512695294247115379008561486924605871096121812982889311706234028149484229312621851822002333782481121120947012447760370171603291897777575258934325370175575419928663747101468939475491697292811189383781061280964134896614255468431980375814135497807384886529020046538640271257155149672912880212130208688924934302031496759049384869587477068387031955682642473440815412964244366378537464188698780147791475488496792922552108646431831317162702910734673661100771589912606031761178005281609842023326923462054049944741314686607718123142650291207948763456714358599999931533458749316403557001702309062028789587615723763568924978427375222525691368522396147474445576194207606053827733696350444929675453528190205247613493292671111417722935873318554834191442042273764549713642041462667015974620189118581938607573697764915725757779858356882621440611261600350951619310553290310479018936404703340893407333311513156674208739210475201362802521698749023117453078220769980638881621000407117929602883523905655474083326366265610543736229317774639185751210058699278687978203806610217230646062736181111552940690820222301994124993131996398761858050728043807248917240291363242373884119400928148828102457113010184161509472031853400688059749938857023684110232958813897544988556759589712463649094268200537251580304660860786745617072938341616824596744714955685625396155577381839611637371329238571515246484990899929247735323043370666788452818967536556279334323128472024851000084712904761329749626453742175407705127128502645196404606910773461065182921067554106091890650201208105438186669723958981412904297283224292295158816448805445748013618211956776277819263900568641987999715031488463548001823509810060677976376926604016251325001251537166628819407562322996506579284509891063575144726197313722884531169870765180285434736496303897014955634869484383076846669375766049359734696738767666368612192124200847646152837714273387423905584639607598135186106795639191676547228428632355991271025867524200088126853989504406205161593810507216203141989190852388714021932092889233859360105774615346260851231998214421761079199000689022196053484752251700636778792431787423086364149376760016075742144564426474185389837944693016416057927323765819433388304728549382689425608024069861349515290297390558750087246637673126671096564575986866171714897395143117717846401181401022219555247081388605810372527303252499533932848118284786050501656334872656141835055676689593277344235174887572841322280796782042824571986177349891687497783050757021498705683720657322229891590708148829295153330624910450834801057139692316853469384339667326030352733979333660842354421235122540876094752595111263969921538086677509759445134080450240829518029309884966628680864526470212971122024965024975128148765419931183188162336789818142880080415533878639935963920640162992697126867841774062410341278806040297657681295334162355481640362129062352605017626602044179050319944270342786738177910530216851818556224730368276699752475661047869515278667903801702173978220028883401349380850548999612902924365674764338603453677174092499934871913286348414910303393200285866194910887516118106926382126990852029662820971801114210630297512121320324467576421322989890691319815063176567497608406764137618964224676809704242688681403879159848782918034542282437148123682002180857977454869253142949610933225297840277958695828464378070999863953649893944339449245900577911375748189632631658174048689493344189649606497976197787979033884531600874017944419821658157722186793941211723516286872635055564056272438276938243526417641758128660043794853268074438694863637033046998051260643693323572784777100441072511914057380473081202272549369502909425274703193373619800810388411655785936234174912368495614937949850440664102369355751202916541689874497031845241305799381900399850338061391509132594405539820144183042411574403150213697764136344364050178303272466886808654054743400793634753650140778893953880208432204401249255397880398835736960180285169085049763208920161847629246833198165724310210053514839571177924416112799364025283903420014948586917198951649164063501139387272018283459492029600435517911961187624735937741227525941171584053620547394717458523391444845742184671600642257007148804396002710560717869783053470162504615957700101180573348599286286916370079529714003247508025054292012126693561322156650405601030482558008463952940243380753144334976484544731322373494350361782435521669829899050162042439296665530951635761531539612660217022113380559821269691316499485047618025905614231251482046079331661424827257668820552778664438918929785594162398788770607051339936461563185812511428584409894571399492720649350951900965546669985737864388012235545996150131222095038425304805824233701371306216268888350505363671226472031191581281753557261353636537554276204636262331503050544435833153437398824793887633726861475356804119220883203912083974235605349924329226940413733120787860693596724920143629948990703135724711929383699304409121141748509740585480851060690456383312100116328826221002552837459583544635241117348302030174184441673843339685374535756661474532496591143619062335620827073252488356920340310066590750534772895080183328209132262028755942966317168322081240244929397869982010314235894140994236254892187719422394519724369068569372583378431081943552200025675508138610605314125666287704275394627940679220838015306956623484932215801052886382535539501458181857944150602644006778759434683140765609788668286657871544033656485972490176188532896204594491311275828672181901398923970661399525755068269497943540666825514474694071679610404683824506262110358430049415636975258895214764499561536804108114367300120286276632341053239766006725567009851552687935036370226448562486048425960415694503818081508999034210363100503716648507538215320825296637628353218961302659958131000619970514102680265799002970455157280014412159439609386812757091792601602757997747049696545987728010661651092032226690415562266216453807347657941752645824841492517607766983828242753515815693063541588983100673529565846635066569965668861307085849760500065241440178809428715647887404834322353230747608980565004056279756355725257903364798796917923788160118278133244622141773473355268163011579861867804528493599853627951286013184702264080346954915029748912976137426555552974900212903771414408665423283005700887316854134075978282829357389586232051484022955876670168221058019767592420393825103528179221192772397004439963954586765661191046935401777031604700505390670751418848208162657668718374177055947874162381839625937846600459003491149604018352473154953908365601145890094893530654858147121926718388566537592904927907818733185690258105266563615855202819143224282314508187150086270544969603612155920482139494821657658169528862384226124663610015731310110696216434093633184977127471871774549282194366277179907626566276565554831652359696105637873398680685751287595220800446332007263534646664590730988810224705016012713582580516319122189267189951649885211550638241538810981448405982982841617165083081235697820662350044900331351708847058902790318258426492807453293432803250679107999531002671364787925579558923806470601839844334332690398680883722869134966717078402553093920538404246295817962247569574917682499004606657760982637276372631139450769293089823078949786716897546793961767890305721842567515228200719019364925637903765637154067839446108123007550310101772659818141355170491727587009122745630414669442454551637628377370079401032979883257693177528944783092789744717936759541739840613295995462605752784766929452227880498684224442334211830050053300184735181759993216542444543673262312427272393272118711464398095501648115923891138212314122616437723321984414842638221286214063361067938026916839090979667237633280197212123272056214336363726409442142779915386297812787077770861781928590854560329689967945437646367572753916723875171823600908463857683822734160492688012647311760626954804910563590766975095536640254779151610729818233161563125624015309166918220806398670322395840401594578215214660808955305886495586743996774781507445093439261207963488038998688538848062356994315036106161769446959372005943757916693401053709806165140217381526027307256554187126454571202827912296290300942810475902889299016011798770046663274710758579462527806304885731238369037299178777253338903906660844248060325698961964240134226638237793121942418668257744259748079027936338756249205342760557391120724241388057181567729802740060169322995483290435557047756705262685123668964731238721666630748505208023003831858105513422977676335060276066509095860785337012261969122431493118537172185514700472177490696801027424005770582837500907360587575727700046295032250402486450890898766479698177651782489390005021044982237621254087676900364308950025392182150861370348067212529198730331955569553644032157454871931436900202727558850753300730792501402530872261039616688721743945319836028645548754282077530572972333893755322443387893563186887427724795118961822870610286565998078064043775403866823199793399459260491441324515291839959471824879499233761217142664675203688172006675699031931668994088188579735294797150613578783201942994248749084870768776169044013242649320796082215520277886410358863606238853914533237302942832088843503829127816547397711987418518177698014098796823829976756814287852178564716360444529343695615748062836249511688059395757793137460495186556908396157218223159729381824779849178905348175328959742721757299982097211392498747585212359022714745525959514656240323382333936589769056162558306816388391405639278821906524587811369157949980507030755967209564699031808987488530842659554296955174276326420171463163222927798311480993062819823258207980827121460184277317557687768779951967838805367081651500611656654966984959076117918797808945773603835080711713169835734880260261023931747830971805728601807556665166524029431820613618261629334669724828732723336606090872486875379440839559036556194102349567679689346094572625999360561747461314138111450050059668145846810782084518988068339388507089682790603453816224513700061383089888495180323236013793501492530977287612097514860065309866987738653039688259738950941558079579851262110597079602505834336340768388385829841992632323451213133798479152860211041819277542365185189761293452325926257969873547114978992029865426260246638803001007089229623276447038391308532064115371636935477391280868855266075126305338695676755138664639460241098271661697452114045336896249349059010581284872675400840013095238170164522524188813924122264093447737669933663183534196476250118409653584624838280085432873559833974010268405905022841627515618067351030083169770366224023930080751818637469652896254511785881225609420174614970317632115270047472613597620122557325732057781026645382942950891704415599195768582787422439292656941363828029363941896503999633989393278296088353930992585657953237552940255504672686340374530947495030240100680521159204389810045760102542510658000074389843601569599485997032758955611498823660792351208104619855445388150826091654050532993016032787486311699560362818946911687530527622351973291801440717368917188868872411911671414800949181865285811228352957641055016811204370382306177229240085743751342476196614559709674727719883906848440488530332670195421739219753517159730480794786883289681017039162525350597782301451132988145091503261187990652618698541984908053573801336418755156075216844663409734206976813531238463154823745999076657777800460682779102552722396107128338432365501103553970245462063475741832152131089968490820338811883082878802617657853878948870887762090354449984887707448632054249145644808474153600223205057244233148735336695726070382804915408618756670750356732661880613638181700346099366634603504544388734416581592795937619387020980617870481377406815455004088090080460133703005448036242483955885133116133529112877363808913123567121723573567755810502061348244235695874239397334452075232789048304092369662297240141530129738768991502792287621752757712507030850637050130539340798209250925963659422126053589910871765722414984622341764433552524325608396691470068757533907356055311770760161403371943144180158556433672998492586091543210225563978213451291259665584590367201723236662039656953043249176263663711811889558690087550197091226059457154182458381127259334673076706755028627328598996620183899813737951511580439836494476699305385142114723221002050642437397653161958543180176070099407726498252278685096804939160333211018602881256622935781720108953632334206873368588197992706412328131343129071215229098363828168661624790686830872711853487890475773416208340145136746470733450152937460639356728676556846492412767257544487456938612528258933895475146196828146011186724929853755859611116239453212713332884942851591636721862072610484747693269808723759870568379273076727634889550664458611121111665345408670346913561281598171039533451581286852298103840281755581223511608806943525410939476001923795297023711478760861686527693937986256770913855634730854167785347966487018670007728582108470240730829016701471686772199342173081660341824356334837881075191670936020074213406250014293753323982038617048024482108984688960808275611179620595005560173965557280543268279336217105908261173534119791334650867415531653846866060520387399898622301543256851227385701158275339703800675722571012855684582673189741147422367405967787535050884591771744617392288848069348765767652908224720848080736944076723316012076090158423903928012750968811901092083054829246679654019692951525761843800746716887071032695330176717856369471476775911527766011646712759574517760074966270199598133912576124700560438324887413056278582082503669247391983529411261204889382515345324373613235256819523120887446071669434195225283114789427411149133652376124283522974740875969735436125207594677808138221588408528975968030336199615968309934612951057148579852358717331305093090376025697325237080477822949170536465462924101090600221531273446196982352234271324652713344298149950086742810800995763992051784766075353784498114920322450666148894869821837236392242422726159630336204398826896171564159531458673709590113871569668468825949482543072238533958627113938834152734247300414630305797854119527478449591274643207482265533652333686147802882199605767534074165171437775488616750211688294133744616745861117055424629931650262580166287935000864823302215836111678395015375053302989090501716168940561224266241215919703406179854900098671121422460699664469647024606774101758569064353574733643767460448621477036468996269540064710895557205318090280031985329491321082566949413018824145536407460658601184786785943016695543421992387812196285096999488946678240250412362789293351968453158008559881297971837805871802820727601206793242916756362407593292428016310308418407027278433531795287043598109213574526846129237968100375469336806473570007739564888954639018457175837632096814203308964948545330769223311097020545866764374438753804898748671961679448182389485351774522841298465807963372780613776919472808815120852365365434386220651535480816665460682620266268968482308563173121453251591569474312368095567939921837825051948512462735446354141766357877885874058645722783013258657353094109772340965033888769258770879934833419228663646131161819254460339727279605872620605061936196588326919494222608568399592517333531607021912846731062951446491610238018052883017233788743674529731859336463604409123768956726279672322019655802772616306576182099568096858052848278951683645187044970087416392573106239134335886359293668173614075827104447417707999920860378126142083312620494800480471472332014728328464220008651553580604420224061975313450293938987928168545974710380293447970171005331982246995784817722975865244113713048720803702419910657178598963793258259425207449187220167264329543533610799214037702037749555408967204252338342454746667446008497594031695343597280074203802833427333005091672497007851536607818235514842228954035102475296291516864471640702868627160658820452727626256255603033557995279016136878947826629990775233440759769916889302846092424602679811490248040604219608517950215500389379849860330887087119212760350422844215528705998800794416731194593583455770084332448096265052002436445909890417230300890204296067854724817193208713330930752628501924034684649175160957140704489305411395407475716725020274744729747064452244268543322093652576280118913778951640416143981722330547631645120268498951755844478507557714205327538019225659009708342975757329045105023296287833551290559488491449002627671205391901923569916674748267330537300530609940226589176740487814350613653290646391117642740902487726655163177969618061577695294587204447245657959721985246820112201447747993776307580314222599988261399212420549372583268416155767925803050067916560162463799016732540663191683009544637373794434433595504590768688939541979308557774254810763637956767457210492793506580308295628214023298794329863831171264143892489042151430972417298910343642237429207165000969161619154956119537335109098667971154427801816273181100757908603012173430816208299683055346934943115923480670020310722523656534652141367673142866902424178538912908735025081088435407267830437604662687488150869220898959030805115043927924005128260552934538137707672877902215743162508334476317604161119693646185155682790136347516425527525427365001981411162237865468574371064975852563609852386005714540205209775086602865852402134820756112676531467492489411547720043153266705005259807830108346227993373651090683991688782100895806642937599032813361670001451645144340426824617456501887885800926887510385006762472232315469405565302250032494128164047979712550849556329105740454438846475093249631226956364136349114324659041825612676125390396722714086632495159063233474974005377572313789533801469520965622352646005369525435375721865310219750756935646970696354857821299273401752700752633824191180078880151216109251244984625793914437692194512349583233526575692288665694810256699361527332659903981844052470884224124540735549514363265131766942455050275032496244253172618372274055523865461660981461802519664967015450888688740734234006589993515549181723610092921743281533427594090367281416055599733663590252595158979487097179410687902556585750889463286516656431638954137092138131759110335427182174873849447529184832494602165168282521534954689801478820635384475443520798769424453077421866577900424563563094609329215623475167470171058347895656514905018197395216411793138006932041769384528977299577997561835610345180717267860681829532529713214368214784902965462163315712472211898325503770854792197635956639455448944043315785332290639719599427081892591835614938502682950864719787389128595071438354650059507090044833240130319940798763358568285047789184264052522206736352613336882617605839570991029067957293213202544562426621069783798213957189876386064849626394011990875506933212648666428485170033572786836346303982536839086100844027737338459129453081300678772411326911315084815830874162691921065961274922784237263712176621969739243226451926180620527102025552627693203074749997344335318410415615737750784050248605142506458441702203492692121528878588748485157441522331423088096597787135108118885085200965812553569568935902809684015046272927960067166141372180778988985365052526976218867270744426013130500696229725159702206655233145057034310199063253281018655821247385988674757758646688336419389586276130627003061565853862422310460084512724122559053247914529797204929047358272290036294618599438813821444659074482268073766034296677544470682585897839926190983606619008025726331920637002067939335484972565898702286890524770005103738681359087903069919476770560677069513878050210872678357232171670793530833714513317835908077819434777989583981618569415166601253045339014241480396321201174328198705912812826416922392899475061597361784477814576897930675286873849681781503650578684025628545998271276139471007809806549375422184588093660539025138692122971183261366748986529642212907017905031444505266639662088407124048918593855500082391761115855899712742712419609476490194776014262367263400806332757961763853829381487065070752763278625840905659634936445476419572148010274375412162982690880190462676553347390200687305073539118246706790653333043365091968697045424241233226258697024866601901404751550576366911921101450342122122987824179493692798566064114482415461956014678979198733226520425063648598094892342070234628458136222955479708284070834893364075092698751135563063123344108826688539391157796202115008007507412313738553111271856762423923843890723697945951471512135053295252253689342654374957302975161721312040571378301490649463555198676499539217177286640434437343293833189603216279820997209264105355722279070109305103286991341062071133433832611491529178412595497848306421236404665529521719431988450106238183531055350394364643127088367177259535956816114643164435648479570687921907764468894694248147520685785312838545219822903715805076780681962900704845411639578917573273629873046196750914832622489716777135087452768200430646065240821632731988037862071656346304437993648594964323259805679744106529889691736957890264605914940506215704966259519445275822316335012888311612228232414466474538570433916585314394871678417850399731130118756689684971631625730655743974470013807889225718820390042590200388146437537203173696846302566115077714479506160395302256983816614384297220860597556773867466744760221812182107085710963816904565303577118133849731844724833171069310143537994090864269509612857476933109946694581119093747251304225534925205269054256233037081987373486072179598578809102853392605317614583908958019144003439850076392238269531966371575740258541615393010250090325385859682282848687443197142139226477034916928093553125755532436573033325147714375594947956956188648884873651798648816266724601711680629067102424669779382080116317851829702604972261707668982282058749604057694832619286658788643296602067223622622446850223959313942628058332754980566318942839851300495146655202668902101350403801807097886545256761507874262754643967639840375905306502095371973263137618485441456039185120410784858405404683773224224586035875936819047586865248935932586665452152489871078875997606521891727890526070893511977595481409387333676389842902690250062962059942346570810755364099991745586377844565773728471640843809244927741039768219633285347386236941183241767222932479777734555789449169207701169043592507774255336095380771708820793446035030917039171613791943197424966703109619663019373738200068796447291678328167820904663521867869159306464447901382332315164964538702369858207795460937207458388802162149263766802893557994796982927648074018734056583940541767188357072893839886567249125737318686572158327348385142378260261096214356044226382948039218664737699150235310775544187487426554394629895815293474935937046239792489483110778974924237891804138776141711016363219446210410987677531826678974807137652338726198472563313137363530640459582970442627809046905160033448084287874502920697985721010225817591545430854768531419685264541888162829555888955512687183021539108352009230360865116326352141085874545655258241006215736941286364299093966407099986804706776187568595204087352924826292535691256913973982771235138783646082313930983789654272379205231824288915348379852692794808660725745223793165166412172762886049942894102303463230697631867160385238276860545031537900934731185202828107580136838124857365502732001321301541385593006598622956727790298174087244568511133469876607223256367990496070144028616948073601957066851914125115407536712783188817531765219175581035610031578499692389941545776951409069536458882175040751606024188825965009697706561388445124604118727323194261842223097575224903271502265577115455190929738648724364204866192196355760242740032502499205269488577926954383280661672763839743455763238389590159689088662961114691284708527097167461598679873377561175544899672582178954030399801820170163454519511734522586733128923229331503985579344073366879812833694511706609438108360026893211049160803252637019416207373429009751042814076600806837240707842700235138626527031166933530956548724548162126560011186695965509289071865619304707292991228444418945254106924421396918779553754952554174689171044123228653489998758308347136610195161769688164031876972276934145134534999398728557376319333371827264629614087828391211967685280547853228596195091589900968647720133191111524378976537371883728240460645479312319679818497742051056402413915436265057932556143937141784711033923521372143920822047576384161832601817914275123021047682995599930813214263153766414313299684133345962892642535753709323979644208881791922860503458157121322977717170492645355369137028871438286528166024735194019290704361242096445354805730546044939329693966411218731958985799517354976606362605821568463090173981816251173562033876529207192627733143039556224014885140479724988319982199755349782177141445318828546062798579666395462109402572397371014625979619026786848807819165612656744072122342546966008568676223371027717795474344137409196294082933297398284863246088077086804099029452333232267858416705207659366272506155945119263199481357116816826349073349894428644773787421754245371953560027291435048607385090983705789312722817721508636417491182060473464011978965028011930775954634050907123976114912375819013872695619748153577607324283919233914214974598119606817459247159156135249338956988094768164516420148502752146598666885417014028906656501718135076523677862282879277867602209428515841247610421244716711496394455436240522066332174885459113074300820653237093931098008091809115836931772371033255876019754326223888967333472572440188046868206789756858849135476784039042193645202954085329074188514488697201266342060746645785345119231927156498985073770007199872887319097177449959130218720018005448997483676917860238833426718756091319754993240137113417647840215154043172660414731947244806282241242307346937421797658738579211921378274107180036814845822003127038343488976891632910579213989427960695329018292052110390637351313509326105490604853180029293052108421706149309396309701246032078946652251773987601013698767915890251568645201074493541784268710473133270178975013669093885435930202840093161392478441571810389857300857164341143995555276896374309570202116079724614747061344886363792583183027806979182694644456388725561335725896802770906699670490393597625894896395241976121191389717833153966395025544390569578548958883469826264596219010623575898196823898922552382124090082801322385138024176195279417117369514454168503926928863109044861010076969832728680122161159969774840796488809405252848102041042624220398957281640419579109942895677711287112665971553374498864878374535766341568076441703492186725061408962910866386632297581408782043425318479906507752188740595146090741644585449124585646402763227057897467975911576526441121970156007922388197078102742059847471398636064779858165505344261179275937952421415210064698257652283229011945249550242372040599597050361316682087216380585435149172681851820581177994990446116975392848360205519029045692066254440054107382544115864355377774796259775020520248896218200428476410592092878420082793264071871498314152697888567406715104031271890347582568280039277637368727342539603493524600182405309531649769697464068944384448991490294864789035919678000337711831547012782600406148125307294321130654871383372163050699724440574415348503353284740732571595005668780097927582215368360089361787617545372629167743835163014207465601467703044414573403372482799368512455160230956002931481703864844480338308091827907732352501123276831228198118464801573473972764099877924027405515566210800003025886334269348908478290240293135153625286728701899035386308789493933785900617022633134954278940556136185203297724453193383381287309132289417468873812689638146750803848920474672663830856002808145695932224626730754002757930051693809978938222555697941374584749724193429733905549391771306973810174899111241201667668285110897077452151662341896815687179401733449477389837643954522049920529402822497438917366973712645602146060021515443121919325388340693177150790137387350975084819588035353988276635012998824081718005490668070999811823081871877420529758612605537782128858011125177764247834229699864771229845634162083792956362665133062213825653916825941212878055412692039744794925463551221661779543671769875383561825930822267526221159767072631709954974244113303958300501128816022051703366454815264932419076550118996536241020787727895968578368021959291082669042788328176011061060078399254149098532049826422213685701692705761512405734449196074082206554301241869749253986122221407568907534449900513059490270602029216408315705623029527124996955304242581972338590535563208857389363368745493149714573894661756933447024033824772336641901698053735834757497350271756007379554396812033687719921159598875934078956836201534091137606904793863271073393408630623854535916910830490792197074802872783713129225256156270254679794119840530445504402361568334123772245696342074919648543436117430321478880977508995128660619948291685615550241724578700583887970958353389556330397425863336714670234549225470907419902218815018015699923803287903108327505422904823648778167593291118726599583666781016559316996350412596326027922540977474967340832138614428534118880340521151034018064137238494987614411827146578846535406454826673367430221681164673911978068038866366560309097451752494240954626212475627052974917674814863660567904859053936938084128600619502458677261911177382457503600965155370781518685564718379501640640027336838046605708724287663180294847681277268962762795341969543403186988446530979714222363719546901551171065051846448317283287549888978544892960993728257944043382246608415206260473351061679952606229777786871505176740775124212754895285844708528268087122219059196358831707315798219703404497865789081325273133501340205206104731646105124310445804103318811531020629776804092284706701447893605795582872983754982279350964855023752355526497885086232515987504767799026427957508425669484964533130238864350139867705267890922882682295736408247426534365800899591224669286664733250599849140482759112226253815513840997484769755042220864495750705356690630413586712074737477396438209299204197454757330167270664540440656505319224946089104112189920377104176693323830791918606937136164475628219164249816363587764476702200043007445263792461797770484032573157853424060846750749999608395973192369117047554050495457674154975809288428902143407198513872718806816610289033445459403492801068825805175263106164377798240813983001578117287913732822813122185529282317678881357354271156116956841892896275791257950313701933692432442207070682851586389028211203593199475541864249330049862293137530372615289442009042625359292305143291046771127740745869141206024839620401087310329397121016429014735487443413067978964807621199425797745664333699552913829398350735844252738546066740245862493510185831851999713091816864642598069827452164015342375537782038064584592316510984063478554084250190889713747090504688216577425451616672658223456203913826720788081036227213808799707256370906915709356768304858462663886357252207944676669176473049702077238972193042024602929696360611057833523031162490332110723114854277388584155687421953340443554245244546343713745723134947300052272148558092228258487881686175147500165618688317818762870785627498091886603767928073964465050812292875480080914634561057765739808070628471437056564804288719380033494549827353691629088600347589349672687201044598881259268340040692683237237410077437491239424258210807583083006724036922422349115589410699938382367614487946300467288515769547245544324207889726799926598231636051927046460703248841977358047835314847566275933733736492238978483822549564405215891072844003056747731597355681318274779134711605008667739496407273243949741692221169609943506236045054986097861691663920057027714452317774418134972593758566048049866877554455691045998355949261051732182272074400932083246433348354931696673769674924698594312093708070242842402707830839540599077155430724407290740983560823181971652280217441956963549715842893741739980566394576161899009513802501444672938870123506320033826261486268746792482184546629688011830648252935982525546202110444085063098421774193329239182200482178827159570713937783925989335668097832423788960623865993478837396563898995816639132044937520614014498517522635444796163094978329292702495370590830395649507765014022218167408385965548256184743101458986822042270355065719978150199559506689044646423366053399794651380613291915182180413474713529765528784679867527399069372494874598471304800830105902549014067268928081971746490658569566291510336704709012271862049092467074814051502070616704186850181526702343865709225936775786599274120101793865637136953726365035642962303585099435884368850215841603991066452051475695279829070096197779402272567776239758943374284012789676276423707801641903427470992002497409969355650240679730884896555429461415255654180074812527562094818760684728436362910180798625717587053453125774765031442997364102003698163532786535532485396563295722576493243597694164578923835792851661028680252036095574723139438112419657654151688989084836246171821963478056530299471307223058289847109664893168207295862834472373177442163156676939495221463290245972629344765627940838199447688482965620096646855517015217772024206589295279203129823971140210223977202610467022309519469723432007435966338287283175732499787385887261450116411235592081957850554649487301104860729750148663729672095837222010127781446981875543730333395903809525691558848555813105956813643159236018490893956108360756019055369998339235643706771125574920792936272574729227855891096697679559997783753379659678245551696104465191211446286506669887712312656023435788684978816209514200942460291647300648379035623286116996643049253979757244777040354545900184901535832519873154206887084880325220914352828926752855297120296269210201289196370520021766712104363867923957064061645204073798210986342617561405669564881691334525858585357072684825409000157345841932533507859042501196576077495446821354338888950129520602607508086825230774716445512910914119420310518398220633835647194034833893555171800057145415928181929857648798602204647216685734687188229190880859166976066793532479277021683932648859467185609199097376244983913495267983078823207708356825189667698642694522869361999730087975858284566509058579868010684389293404466893478768139153592831318446027183669376400449981559670037570362717971060758743994579610969343241356471398357360472401455041115907191900968470948370017440104845015498080517224406732614563445311550711074416086441214614959343746694519418355706662123044882852444349302494102609810690004251781262325291683804665299936021207865895919786815943636384641399420805832740235639874814979152696476405553682372254615870852787447967389394026617428679263632296795837363857356475365655420219300346198899693370774058628000592693321620846111768934340684928412942463981909023038656229121208400876843799730395042117572172070892656880188605468755318520055782140088535047019746103296117220174814571147035923028277035283676855726352475927834631130214948463731246838193538798443706973724295961830633243295682930806766952960093249184322673710547052139112744987997592960846489898115610967649909071200252015053561543519238292896458090047784718384731162849054204514738185914312148026793638765131669482833130873361679557307533083027743674549287683928187458427475300683490658848612920270426576789069119599413861358756577870457784171037579691381963639417688904632555164243182291395177698530486461841918760814866270666923735330726272871391772725914280973124655586686725917643504774493414423793696426832363500547087279993065037130153742489979916345876708186898841330537749490420555747039562422971013072739773588431108430262831969092820272498552155155749948121749811883267564742554207351050894344333301106694056035380365193867186618696856882205630575824225194440245104492894256926035706881042234680085059341451196000022100891416315639077193387254356698772404440334114215238434215637516481679298167501700736966429127836947189377724820535978241311741164159319287279195112972337651819082626290453990295566794071800611303735113821184253544009462748063193195521200917106179375138390965983046899399503500526569903800226908087859816650560736674645720035848008458249075140276529025447021859603389437350856188723512620510467391649866820710296335653169704708597822782481034889804042499524151469423191080321509238050677048175028760462138750576375761714915448209455268895436422318247532236225281133762444464954647622502556882997357054816596235249664222857614714682804896068345260047977755142767278055744081078151861529136278291384430146154497101359107985272332992699685125845718615125359027507204118438923720506987071997938709155340945853864797619074513467442742783310182030851505244740710995334538636378292783503202458156309992283232695019662483823809000455548929959545048922735926893379958585660967114381429344980848830145105687346158845720840990951575694253818712403413491516502759284896795995343482218932172668234438357678786013890375079601696128658664833738192674478542790826735179660451416566266499636157325250831431634924007488044578471058438085334584751341054219540550265760334885336110646386796254496368612960992697296406636545122821582000217775813133755868892239225802124259924789105769454910896213228376523926152871688287685079770952466207225700230780391368346173824522790639189323414023028831198479488372580004140735790501660951334098715089360617091783484222924614893657433295769600132283313128816044528207288047482328733348362612145941920284968105263239262645333817584656563227129574408951694250197098829130174927282728748609125465998639113879697100632839145217439697046542356766147983060428413237974163406320402826463977527858968113166614713753154324866092942145666661848393811721054602336417012422606089197298211603010222758793946146914381559301722843277410876070498749571175723023095137266997806410562525456897370032542616245896633870273726162763748905193108226746870235818318506697719169447000433069571684457900742206868373107389351040659130048146965331957050177610050847349884845705545059643413660809677428304477944708366963438703453929656627026122687979855004734978677826158526024707686277807889998733759427530065067393689550276342264995103331678294601926962263256991428604914377643210695645975626392808585618196006924607304536769682315690999363943751149302226461266885100733969755151930739254808119620168928214616817493168563772561030491062717309550366091387309132390756217773167323118008768625474631478470420847151168610049442331613718616683434335022274940674311989059642599633206376147616667231829373148506097696269231069798846400213713000721400353769011237656723719366961831267514994382378659366288919013705273195868813340293438731702530161886642137146623632219721785529676790873809183362336792043225833147630077574137420303572040479572063135322390455467500227183817151585420559302473417713936045630299801043838584636452106006855851625768580430860306189017969948302259001757772833519570616433802992005170874411214925848523327481931206466325602377038874247472094525264332824108219093124024438916995855871061041578781215019831995694593335669875122971104721529949258401559580891783434581273245436487612701159764610485724036402179605694032646993865846216620943756032353679836289519406215981831228064626464916515272590211498205288715962390769457428368032799720406787171822496548772795131338922333856662218387030764141455352930936337636990315292514831496983254431147313053466947327539754764948986563016108682204235722734042190388041519357170939927009944678044428118182439368813411249844750837457576093321946293644637161359508742891888718270854036356681190956603753821608666711294269729189828799897704138589336103402921472061404644105652149538362802527833452939080712515053654666583476305216080983251237818660594546280839236535496851448494545324727494179824475148047138224756742556063598567414003311947557886201756363853252241231913476830185928559387121991854399752739439632890286828668466966418467206090069948055177559139386012835692378920312574497783612885609737953336389988153604352605641821252147264074998934571115462315054467560070769918804171888261649991513191880329107064022993626878939261940894612892679294607647476283709956202395141273094303531374268577820326616686026838731859166273443417507759298049550289434790020898122907211507368718876535969259315807404311682205163399250305507956930595786631256008765294755150087195385908345546947438241596413732114519047577352212571614466981038655342782207112324698425377270366111644178417626552575734468357628450642769999064003568021790509967087120841007861011544997496766876107848142058552092176309734696609601232065562264339964902550572926458205899456760651694093066571898181626473459874818116454617137757453643351029913464877863972949330696377207015552752243829904210045900782640952957622409791973487094620171531682914077265685763345766643610974230499974470908358040824388544829811606166862789545603430116755676625814180344312773606498220096323739028675699349422103881125844262083297662053708236796674934867508251808698688136724247415534588092714729340952130507054969402185278652824426456339521186501215476168154601020621210822803090719456071530726975323207672575133761605856971791062825950129503622811887655286734908642121655273024678280555516712313797258751619515545038281100057547786911588847790841212688917284389422141151385282569878638638241351773499457809162930703377062242755429936169947387742021962855173367085352565949640687823137681497809179364967534646403750511917737147039291659817863281223247586030956780673502896954055665291152757725619528131235203906982130601439130834487837249140187744632107363414569002723472209344664128505567850649962667010034903105237245213816775869710107500969023218173007733219244687930801738192228426502243820566839953579256222070795723626163612473262863006651234350857481560346272979691750465316535002780824396644031999883641853705378725643544908880024997207890319350395557860667668788370664966024200609417419723887714396301104114385811379584700357754565351956358738393981277969647249114488057142225844552247821515897290836874511207496833959927411254961283144755828902339476847959576761402289268513656162509897164584437388537179564299273454842069443963351207555901076848395146998496191875459410126217219717847334122360332683617508786685370762486760448237442057548172898430560968298759308335640597111332318118093758300672803684239286292528752841119914815104621197859541858648468679364911102085516185495338680877022284592700687368459934228162057971329979991181776759467234422454404061553571853527707017343919984953667639923577141391632062330449909994457203214049650031108227447046000563935643317516559859831109261416082981714535303661478725497918892681338670560142265727940914317533369950444780371142793257547946912500016233312261442831687384045189995241461830775855230956154239038465990515291311760678345055882410015644395863800299985084080986634975479312523020938773838462947623900076047526747663014482432737465279044935484255333016953806663908830863140427449497521281957586240626282377868835278812234569334817728295132694282106151703015418017918431757072150025726233071565667492866647115426307941081373820074984435986189880770734538605452653524900803785391897004775898097838343093331472295134645617599076266301432691889582348847833427084734383583197382689669332992782176624193447952240774242522414236206565992726307682480080526518609223844804591233411487238486232529750596287223627673315083936264526685620324311871072957971973259524170931079031150648786430636692003693192913686484027661954977628609549654590951462699954871488262908423713857129816907994567552962545618341909259594269019468086492115426443576267263743840261595293651918120725216705356835744857864081978256878160815580603151512780297519725362802219620445375463156314169587239621270289820701510753362662499374155854947315695121851888335851711394521139000913784418148450380498221666165336002921286452918148844937603350420757464321454089705355117323442815625341704134017830051701606500627242014278114896809386080495255216773723561970711575188777411539714327144118350852996744893728497618829917195790207343643408918598938234683115808248290226934453534220186497673348693858083503354861221106196082241791153110378774077157973830284112418893545965726017895906692199027783819915628934696390277128741406879516442282044933194494867656997292338430388557716780250056845888331967211573987281940679258877310828558056959697132647614380388156241409540589717895834307453979973708962794731329001921905250136332836430936909526829136497431379169708307387771739136483027305168869557793161989365372068877416638442426647493461092398047530367906027533637985085790336768748029371162182986214083229190099359383593829928061244366585313073760546373050124905747616471619547991265310673967923311762133881797347351536850775491399019832171817461639704568586753269683048727928329531611213478374698463704104679033986171340210130543323969233679090842223165803110533585642817704693502503441893297589216942530907779703667771825709903983806046257295345664870147854696428620380475789748399652085286076385299208288559183072374004304590926611267374291261050927245619088739193818016319393339408983501451575610847146637383204066961270864823519323109289858668054047002934783378163409021705362049039678377699338603241032918252875957291365556516210434564198188317212526583125275257576445270176087768721003219912877658573922954548337548221913629251439815953423189063832461929268592848634641821766321928310925290701992049533088949616472420344696337903599697290792462074321911486360844316546672292078872562136015842227300220364402920744485227525923133501299855026290580105273601733133940392124824231509953193233865164125848133609748543755686630831275283372442045347480679247578360162235685775757633384705340442629940331750830956628732184570610958691738845549342820462607521113497125157540436014826731193699334372970610133199232840466582857408395059961744993191963354549689574520762843169221405650336532105234933951476545254172365432630547968039355300313136277382717767729127620843173963296603220304517708926719457961014203793954323490104204045707251625453103429312748353206582894049725665114924483208542337198375256960446404192185902700549482142529282135161710345730713767262594643119831404626962641968001359633671694088333119165455394410191099980133452729718318604824606054431284063322080625688239975251219756434896209271670931395318556545384143991159754900157288647835839425783420193841484341691067291977219511008385725992778160343540853136543078553968418432555342835528199584812396128276969808202401192558972508774800181429943926402169113615527566494461694299153939158029387506286008457057455478115881579533057491496567438194081883784485628772623165499464565296188227394247638359791364911652201333055745728005317457799932037864702862380161823159062185613350607765889488975633432488200149379824359426504907195086498900878137870891479512794180162942160910563633891843419995143666453778949202781231040966376509310540037292079705947576621526325082446221395730788361231445814322424095561722246609250800770852284715405146519853868906489294936223757144748254423731053517655947255458000199371110079515459806112716369820167665099447842398122691290980504435537313434261404224244181530092126665977386490882325391532011795415123607411383850454188890634326951558107729914827102347068101093672263294178378066891301279004705863682859089618254030235349803521699435125302608464152997094415934721995800304544628136627105226079322844863824074918940478312464212071356549842927477824862907641527030220150130529288933619653823073467203259004842284103175527205662580496568763535734753520167306175838416773110598550472770818017342215776754273925687938551858679362866369833310356225555949433119336109576064369879604539702647152054074025537992624578778807625052815469362930887536143068717344896474438387766706020206653481362277824141766514180913022842042499288596676060647364465284740507248856202043366022644943874960628267748970116815031176620040257583431396177115112773142450379827814907614792852691812829239477354351318221068988377459533027347988600575867272900731113726527598906769419708087674798505298663153930461508685143140210057535762060570714608251496125483862661991363682986084051226491397066116693529117562940962349092339841085867572086961799891494570235338101837614207007586803943907134239639048941738488321019081675869622098605150173681274216567053379466592955901717727744807406594674909056012340195625586219287685815640581653296345401649916300459767054988679487303510458625242673080740867400954717460487792542669763896331902764424606937308205248337645200078557159608302373921270642327719094069614758392604707865196658783751140834507975622623924443855301977208883493826654789044054546694613222513913686594854910461875820807498687210798287441710711873890615769420276960187166492836510756961494953570310532612521434850311517592365027141879736896117731422311194582506546928067630586786931379263455610005201818267400768388480658690660541390611413592304125416499361332213545366476736544586770726794381927777900932789799785425260483428056264491102593814804306970424725797837414250345040879557858572448673111877704599086216456697278818356676653652444548196301385064973734424877220970664728425953422302074738766006485575499014117125536081676801744354119930767890208676314739947030672319911060977192164416560767907637873051495861018265467430655625950083243403025977559802353490520335703630111055441235890057183407878779461355610270646977055668823497822815543306669000128654628270284690032097444637942761586585835864072511524195908313221493358253665102986322122931413985981265199937717556264021244305802333064116711412870051183952886885935551744579002491548927723167228855201377147424425919022975483513199317444327927652467451385886750861596584922629567982451711773129626512608256533999662759027774494280941873550582756291316936033666359345407383012040367263304738239619278575431730164321814098948761534799105513465537469036139963454475231712703702037324777835343407101662281159056869428360865915024602071091500120325701697745589390868876538803525141640922907537406748815325246193161762031182697122807837851007340676403384600018780338922072210429473782654605858748575766018028262971075458067002802624414549609530345104872621269965719223076760411774304589421502617493617357914330337360349495496713417832437972958142026862584710525454516579628564396448942120780800801099383097752666555539192490262254522818641548101904946389918640531632951822018688490207662535330878070770209052823906110218909187745411407970996719261453080723586923501363686261880874113392359396324631730451486844925916615032320695763399684811203595339059489605888747478079656454294175922227722927175366743021395035728853444107889569858961395588946759606715576404542048322196407360844012161192847450118207120565256147773725044559248427417434212989337990823785802819576766229838791194392649583200959348450605623260655771528539329285759952976042165654333262560171510454383331341550214951210945480451023479642671877234977531725745765459163256933065633736996724474003502352253704922152543465253239483248261815749931599116351957231346486462757269360160043270880678548752739333272852908562322119563868588942099811679787486776956508200011941836228798506278440011113514234347593862418084574112374144568096529551227918516933738452961420817903638239309399398856214085291630805656653545652139273799831569334169876730373324829216421925102747705003468318613106364935247512346403539837873552641678473749788037356418872124353286995081666766189777487583310929949866334570336963521859247263002123859118637024304312116386014189441737520024400333730364242615222249100960057281409091992225259329515068981165838514222936749520113693205280331623535466634631112044302876922319231374867945618644989013418860653664703769315761218937305174333534122621876420529982876929740323993956323438890057681655908869050264369373880752026984825518673220990293547303578020894028395971361165048538976039745689598492823560994891082179019201178459216400162142769286773225265070632637780054862670752803908507976074027460041084266644402679125590392843805006454094643816163165720142288536985149957195766691889500469856938319590912481105999685565453397580757312913826112155106900472605622839279856931773543098161279796018925842896620371705626523237292881574622837833835797486524541381709335817868481169058957889037486581398662947696509137532699956947452251322654173585570972587433584611185715945217644824951825383003279606320669595264720607480332955537859330632493903919557885989707970402321663582983443826020696655906481347948886552006149883127019604600571480125249731013150838283337011346816743643226869317438605736936813150835168365924348306406667912487170641729112744206697257507920403161242219234698544232414913204646561820579871280287593426636411258626695166233718976790035829538405319234645195627028799890132636994050494867757351219424679697890623557920766380442851581263056781489038650694106242796094006437860554437959181862126467239451788389518117321677237575513748912990545105678681916597725189583953485428129399150167318917330222888395053980924303552724709511710231252323993823185737898140189671299492080408235505263646312229275944745905439770853202003050700791295347446082702304029670855750256705391312831330514646985631765947459541406817612298460106665016248409616634283582636654351417315265259593506214914741759207759597962827414421696761569925623249575235177733560755798737886250584828909258579196466029954528556313077094106076960217330385630572637189707044225076469405645202275554890533417351019209381151465937417580765122988398543791312145149047204229834648791785992672762377090537189301904608977320301601039623761137371696698746591829866692160052120353146494718706317927784049023682546685500886948830986834982343879766328055837308995764822721799117058941360312652694777921358223319876244414100625580175244563680293086538907047163492566630973265759445538637850545092612169562361478584082021049684183064978010385742721483768944886080110866232830887770709071893424312074001490171661950066026103562023333356748611521143823562927322140454718526207372831683085244202681654847526625205096089301582344582527535928624713987364583766399042987295278925268611031151185738730725491186025182378850679354583861332029791590793821196588694807502505839281399764044118557690024641379652047577323206362796604177393146945482559344463929012906330896911031484256404435761414064161234510184047923162798353604317529751345076889216375267908934083908108280883978079862954000329416497798222643285466884002379533869940911737823264337755005778370360498659084713469602417799537446798077040923605063771555879671044868084559409681947136775564129580493090745407430921328895366793464861912108178637941978250437187859039151780572706709690267899063214236158398793504048405908461587570625610687190903208500620255816051845104524280405884547036541837668775719893733777873457960562409719216281979843394732192171211147167338426598153314520030377480213534278654695738938879207781044436549714616213248110250703441825952985674105444393562980560336359423761199139420726538850912505667872775196804334616172346181326923646638829813596533068039447030291775043640127547460340622015314909440720615106888953221730939975777698767861401884090855759330535367769413612325878072027426990809972776837052519514351192533495838910893135942240091514992871113468253079034524869700197043806663352076486940140940000776790147612325772749712695144611386393892750372713923239068899056183845252465223245220970825813197475422397857028092876437197082546950226328634360120929201580549305912284266567819712615373280760016830117897159348204479313509627310690936551536804792084532556417059208911711748478032379994997132620017731825501509771852280378353754684242102673550511832611679629133399348012265553815821124615479961751061259092458529972975292235048314095428631946999216862031287990139754224057173129900406233877634436911009090944927253917309099922126558706108535494939647897170460367210003213523488772584164195400738565865891640135005465785390840507219164939640574660318370475874993193915488094552466048424031259159892681767218460225649940922610393068341171963076199553404683456096495212816833834966572229335577227150341978450388228682181903031109734785684889872259343963547902382116906403805451562636460226992321173539990918353780715121312336451651412923405305592902557766460378776682874373233072134713484823025963888504992966576380280878980787424417328682245693421932446419518780411729025778467532450343076854480037511375921096166513730562718847389162810812851703084195545965606602274960395394555224568651165490617067844063626781321242026280371518567035331600197713884851915882803167598612643270915865394137818815155042856221417871152344673008646567423306426369117307729106353321459694958372018191700582788169959875985446244636534096829419321763941343681042068818087725591236701842905660564810369205032460574980887891702414328513633347886883722503311943018134963198925724032650131054202018305267449381119198573190315931861246486109712208912831988124598541350890604973359145729292348518441253370023504657430307863624367288922697636933851081944578956044138728948537335146656825673482122119013373315689450140434582619308483518315270217862334186305428915025867012424980462277252657487717193458859381211719806415441725897794992083975615965588536626018639092452904800263719777316595216543410098518005000478174932786847488582833830466633106825602427616762662299173357082688621311100940103288115522358498780404358666266188284652797307325526551751774050577112618514000295702843355821952963703355884847417971793122460850861055582574290666280245618474683961376189117542393211787944637204880912065048660634248581370226824350310586075972188350730454753075433204475497261398948349576268430470884252228727292540985686380779001153592506940554872347134607955944388568099529240742359306474498500806974088271325098359133248887168444948353888353642425560874971665611355412452016887239526356020150849922866695390047738399699755826276964024422009266038489760067488885828544845090653644305400931278836419260630057541160744142828504361814685728133792516251635249646592825672292121864455722306178960329168184766801468348917765658910970543824660750025205082651832684717404464599174563407132397957239954221615631795920765082260023929927254564839148108870183031274878763439554083506850767467914902806322841889830885267425016214719064417443941462727721367565515419792106895841111963365911634187469585218811915269698749029836486347539230826603455624755525565097784157742931829487518423745267884980904311191215337147192476312716135521512379972079253047458985135311843896215801991786487213026249278516155908806013908282567029357371845975721131325451435266825691966149058949794908271544025695904708185640677017817470608857873135081273631550274085803474979458960518721108764785600771163213005497731004561883085085102294219863388120236110479173513240810502659671432098764028258094246903551479837457360257354789784087950151898447176819315775187182588593847069225651109218257862004911713262377274261615746989695880908883073650861187603059935987187048963072828676917835637070966883324217985351441741598125984424802803918660629531670864245388012178994810776907455608736675935115994724246752412641518966867324507163020767089321699415313707952606895086041982476955273622130611140641716542236170729770117764619627025640476195620360703387825828794042036918670106476232856495939641888032384072214379005692806626862372304376556203077798834687949158344517729668227887260004384101580553086033931684704763473435646430491505801589725898675366842267551105228481807820626605471065218802047471724433746436602974187360783976040536375691100513721661824577811425398904831260417767545677497499688978729014731159616261940456981485821891723394640685888536805391092126554477558846829635485707961473117267643858445511856178505752049168469295403801412978280049796767431654903502870254931948890325522194243316074830655690245814997496737606512076266954810855729376678298352652741937711422878770781186965538313639502803515560653355248458621741636231172116605321864216895999523608754981781088647991177442036852700002780336123145413528998979924820209049336095935501889980593035985947898062188286322759240737399908476984576185075377300002447101311111342508318115414524059702414106447711288113746359260027245250985821755533421000040266529119570460961968049093802564269616034076030708366991428737932678179980197784303733236824103984886625833459679749160939065601284803612630648353820348172558226353486209349867978923982143332731367754772245877448114779541068336580375247467419522509777661850798128802543384027291906498933624732070267480748980767508751932415427646481070932626685855876046627384313112854752490208284190641965275547174233083403777875197436050887338509914960067176106491211161885928695613205424103037338371579435162362506309964389121233750087253507635591285774478612864143210799377726319857897763056869223404918153695021828179589974088863940799289922435360814934876132816732010409941303746971409740082713702882604433307136509515589677331424779918085710221901039018535004311160628562815768816484504085588492166787689310503374472606618402923114653927925157863165991283771549642042101826731591852808526069637949524875112197758128464037705805163037391718290495316482814242725222864465360721817568793369145620213829272739808897371788155203582190871303187360127357560972201515126268339333585960385564692056373362286258847773095496765239502077712117035022656984061970329646629797925710457026389562207760339916905511432410117970730311396554896808711523785061407344780536299823093561598489256813031434607619917741612451500239569989518565142386517765196859400112341327832333675734153280418066027685073942832431957517268473789055584132762904716824468796606614391176323195064980271103958439081971845290995267687211002310730129989515236992879887653443530336174899619959588796054595253965730181807837152659265417960170806783109606218597017477137965758305436856295372340799519568368460662011761586379273726221068587394604360787449396380185751782954141738078975495155883728447944289445588511744028241754354788239779886186564347848613746047480882817332846521716333997824783482625136885678581219563338187416902190096714711099794227736068911755944863967157536719236688126296167265387178943822405982367956308469570375208547900916581592493000391796377762671889080979719763042208879961856175620789935311929684617667872529565739092399287900345761632556600483417551641603611561287225065070051667711329069398834750150912674446910646478689493720940180238049078431088080679418043659322947505456283480898525226428465805102578521783294442424755986095624282074722991375654928902699765909432079713142816478109400038210807821710773042112836195056517872453512596414210421651689895861457762851620741739452607410889430288737599554041570265976159782503376345342548904505164718107160623047423476091517159452778121182904182940101001967558445817749904573227349927729465014986205443995758278093948263556984030260418974512163119268840871823655218763739226988636693229162963911837908050441491956096227398694634761154704493467395853881548365362419058426165093349957494835555890659880679135661123095134789417550438458186476474234681314438325009590588873803581907545156595563599695183122093332231428509607325851698706464507639195837141985533935393093007265694361982591317672929480240052078144714808279326276779866013615859548817863561487086134030969785597790854090234600968528387282421631121879439310200308581980671723785283931719943635248663142482791649250801344843507100296053533682015358933590464408644997265591453111627463811761277658131896390449496756671613607658692749265007029353361889308199559834963501105463756852366675370252127601075204765895811021809246276781785827821416068952171823627482296525906427160404859313861450398776092893697615009205449696431343007728274977841831231485452188909187205361461657788160328681600002360585978040710219716861035149228468820983405610949601549434540810219181782472266050170473836300874677142777476807484380152128418760962924399999018579631721792155581394380746007589482553949979398192166693967755398836271174280196264994494100523473473051787462918873353785445955148121145970515698933103249934700129857267904333548677258737286337731718550133495320273782707810134533417944438840477802122705859404611095326474179001788407241265764827785937405635213998383505482819836477925944804598402238786686152595927318527164390404283256800472737134756248622475628048019689403602091508227341125593669966535830604894022558144699484424136391750826301340005731661431472360320012917899526427721674861452097432245310751023545645227541115238623162211814599011811702912272460117889347929229257695117747445594563234407461847219761282367104206375855151896417028511461701930739870801696628250098510551260613604111104997199059651764239504803818319398768484992628910437561076288862473283590316680315136561060816155709137613202871265789576509991453796619263161430125606978670957892508572266889617194601781365332105278888687842942192172721611742719999308327186475294806493147397258611413430443571025427376229728599228831759428171906667735396845616231457660215677420977180822127386336384241776341189770701571879531044252645280934285932475340950424124210003150179387109785725352269178709090490403963279980161872307906992897495878353333346905213624720872886543679024947361765066123363867283631649352642621883284460450492903111845973745917195517981784716910940553555833024127282551118650195791253558858662920964314644467831497388703803179466693754819120744010319520995407919142544759184771087648257649645875605747126436658766187954407429032690603438283931058240682186726305100737245345669314039836303704555651478609020619350787787406133658932732834793707404082993206700225413119141066558719443944739602933052886616498077539930768713253157548733478941258950564474019570375044381410796100121225035469089236486634081911093686771628761358436346571578728748881421976013664710596113678600365526437643766372981367558726789199716504696017374128639688247518171751338597446057204100113459725602866963163246748720316459072412500049171121423391704026769274042095257879846293910365499995382449232427142557902128980221137912400266723949489651042082755977265341108999213459669907214992982834095558611094210443321987354225971082951528007265586293847576966429130677002366359775256890836755740271940285240324286416241893318752919242186810570351016141900409861515203948176538914089187881208850687840337150176079679891228847325311423560783039056283010829865043131204270151575352043643058805714625195774875424607862644147154659290382731594562643797682724259229971423093301851408093060372846102118430196481125304048345644126896115551980456804764144861092554927884586456143986990320769996042857134521801944055722894495882953882655697843857260615160852195478337615805164895939116090645990672179275081058873699275392887508881875746907485057546740601532424439032967534418708749987613380657882552728941193826256670791244431538383739074882057675068198438766276155351352247943320488009270506596307474511895623269636373397720848477186954464746135143876663476168497712562786995669797285866755392319172551135018261052277451004727910713611829196801527412678711709280930794619715044949496013580083809261662756380095664743632907984670955789063409034341046734495391599165406816963997136482782913811969511797754119310856934406981581831452611054344269918915616803647960783866593174628135198479822814981673294902814230209713010220221225387082105301566426990494468631088733206623099415656441306597576356571823360032795575651374098448665394622498420250938858331781505143665215141063627679499785971762444874574094085865242855822191405111491303702872709375858612989865308264504888421354252487265681339626117837994961005181012311511169011538329046083795716353300904185714188657262522861557482888782795679856409211257120473088295012242159276738007634671612181171813202005479180224824155416597480652543459136655052778517275359483157185583111346057415874236783522437957736077597161832172911890335145432629520384424278487810145986321405724375236493030503540672353028290555413295839578393302242337964755092009215148605474865599428553653350386233090588236797238346484731909144666623382553107051077627024477728800802342507136948370656432249169145524572541400121341314969073499208089586905547439154845459075138900582640411066141668799230551934644824491739191660333605360547926364029778651084586617922413071105731931716121050535992299613256935931497682120419763403763631986651430171415929933789131502309945147795184111505007716068274021865467015884475813912803690177387612564234644152187233331977962278464738414432566002495090464456026934435622272970830397149481454365705537238074353657212752414879059332469775838822276909971312920145351982760511841180986776550371012477501896750472494860782449310508904110593721482875318534247345815934033366568146034099656314619579204154179167043589026083977248756550983074446286051402509297516364960092093344104907887621806944554413505387523119838583348485868820394766549680309818750038856732583296108605078820806328867016003296445730441999756600047801064733496069655205602185260740132554673133554086695389957482208064565999568734478436039794823834641676251211089233590312036333096178436072139800144927267475149681794760750998795407339014075772499944121295401335739234925850822794665301177765112799825462038231047591890957696615885590054939585806554897430214757245451579397331253647236221633503403864319907838689238150134001767508583401835987978638425042879675834320058152525761853441672246274459119606428759718016586503066601240022836892974391850462215820205126348042891819828342876396518919843033142632816765734788237090117717360009477260014993435031129018127847486921506623462784816212804301649792762332777150347837808676122306265871092082969415403497223721393390088840540957207129680136123020861200977644480323707961227661583228588352953234244610802057138252245704880004640719638247889053337264290602778249316448636274131062140688665551835015255014911804961577327411224339685207487238298818679914100815276383531874795931868570447643460307894404322661704593987726823125093654159753904258383433776901128183391803393291905334276107600650374816752533261857684080057327390031378213911146750098705398017929402474161540823523732900264936077907045698121730778795652987580290740674858526711191968187519918296242850967244370576520110808062812103884098099149802220253675217234314242781461119820669142886493143697148295141059951714986084047646677003462292135709148506846533233686469173178713231280553382884253255063041243105397433433524035632814252753137167748706257779723634943409770788971726401775704597666952838405058750041571571534686978136611261472814417003578606632283759127626056338060062878565417645498560443181805434141109061104334399229351353973127190380533974339106104772671271613965707805635671490732828625812994959029006485830927790745479103909340923757872976167453752440066182940419812847613035850834974993424793401442701118084286971400520960866542814943122188615329037033819642857214068094701597693158848616289289925545316723083721164165475636072101636511212836363857805019077020638923094618738526388401998252491383593569768583286098880205655792016781329455954493797664052627777626277041330364677507591536499344959728648057609389492894129577079394709215511766272670704382420334544604842678350035981501679520688372358850808515247162716377267408101176388820490124737475953131911240801219198833987846443093210727305264137215492352672430729467585689069629140069353910174136308155880898461799616471462081493646479200356375895168111548837891923233946163685130585456049612372399146665286507312447334682506409985305459787264300946760386642050502267499229196353555235168146383657886556884116950258867471675728868618757752684952618183685376097589392314994042199022484158848140029734390918221478323468730628545143143840456480363192057774468425904941713248088119357584389281335908329446402190693587016887620277901215897154692377409633963789395689529283375877730579587992959257921154363431011398085995276476848145293993449865545629748649878966377423020506747728171832348086692685111263715466326714461994404297461235388990213964835116939836021818855133916146782920576149880084432992776205576030933470802910815141699455504232274628363808527878959212039639788962999593776016092460781530514874043643670063631048770981261194576385991354343623268718284791163787905818675746639570339609522180768100804664086092331842402246715830958067089242341111347027887902813626052474383158291458314361888258258900796037555007043878118680106411680856399340101481886547491426073714299985337708366546583973537168607811734680674843688356430746095541502072705078675396427133706817771622989176416418123372415758292913814798709985522895674599635125936354918114698204549726374865138855529639378016365825691061437097859774544637560117052451009162231603817134298332692956628444392872786738713262703606086650023315834626597076166434031835010853071786493384326660848295924003955526212804595668680416691457471673643824001187735377994508267560689622603100997098453643107542633139877415677490329287323244068301680863967874421429147781117668091071187130085535209774519840006001600682285531791137691684653044753611789316909226940837748465789541357018583538265358414442730166301122187747549568738868649485484514974108592286850144824413792199543578399881325992244232942159802168293046678256383697025380913606187236043571585962190939678337997503416422455278965687768449342746323265847159073669806691307685427314259825553296951949640529942361828827391414991227830488318641243034764137344329111339553826453445828150672776416843240084133315985333887072920059306232393184688487322916838970149677833648784284452379454587413631829751129031326159585460818447949905822171806055284300171699996180701070696480423772926669210302906322883545558513690744183448680294539283696207245348933118046895729995506654420909313150366631198108405254851868756797278150232764298829763904865840599009418789841309572212894725466991438481693513077658254135182970697802574733599319716423482462290884659945817894303022212476457128828872671503157105034267358122911025779491082340778575033690098683648563309626692173294331840351251279598775718491653669881180230713374260714828893614579437373923173932582948954420064671090906431494702503984511251763026282349170475840210451689820165632893513839765947861086929309122350253057340790225604879715725825531410888150507646566656184379379137007457373488077828732960526701540183181352003921807323154458536954368986797186234006354360929132133895390978087260859822641960142804424229106152202892159049586588329421943734488713570069470317985866298757345152653005944751033047618597891914908836557602468439461170784320783345187855179629041933570591332308730955640960048798794081666827840921092393767056143092170185632401585829647752709006472067301857185870572415786433234525787493141996407109847150043029789711094007755622586221746173090768537113080133719609150794089221990956227155554830430768051515275875178300126266976449160914956841333745750461271815350014938799890587665237667045254157338977623635882838644327480480770094144187111292140628280463204397804583290185078052399320856730246234812312884892143040166451663954706670414031402645811619122835717206522104641850648071515143859620266457531398231107303412919598320792572476867122014244313838661039010535103534150086287718002778691714448837018899518479528227386327268238280547356922460377257737256735791154779036484368045801005336039791432687606770077884874626497439697898069182628012976038248826222533210299369401549719955477528154872882551801192427957083553109561606801302052746817146106313411837665877980110969175402886853388244129238771127274368296931515650548330276429798381365180540748583743422316406708638353656641040835551794427848831145634908202428130329949860911649432867503879294614576720429948108136090020713054560633218213881716402724497553943684981346318733390115610718351985320005634119849144456580728790751316037172865546197230086882800986246103511881944695498757951606418416055796263798472656920581382214272161251829101270122089154333954814904980384590128681054029634937744520539721156881357060696868242776172206482833707186549958691494846387370495192332874477573327430565208204659875122135368952790849648625939835306685271339085305442727505009463447394867073994172712365842376720603277916822067614049917694531844846853906297361379471525006034755505919559893517273706667625867626019575469981247311111175976927759604433528114173869251610679677278447505794572069800792793564791769001231468678043881824442440479269048780087274743731453536843960017160256472946968226562403604159594947612389285181821180628021974653879990519828450997248382511400478225393279926067630834260605948294126289618598561011239101217498342108901477018383859642769733252453145098466313388885939540318669528719237974457544452040649546991446795805249952957113683351303536523928071047969090009788559641996041239661852862062439783748438975263016898258053718657066248277733370704773126600226159395653225597273906410975270213682660610648714302381385178189630527400813457256174846234797366178909882083912812040378339975920111467863450565504426361799850120627289615167689956837325647894424628412723696108463278826155715383931095889806440974169905642866687011222066172342953696086447234132362400419318712561252631151447561536687390458814958617030790898794039473031052680459900548903476848173620925489909952756246889681665176149151602796929480494692346218582078371186831482086709801859575196214104442329335165348572212883630420754342582864209071579624720711315680555206063317221850930500910744890700040895802828551722769583550228013861250574752869741155513429452961461306805175369532611736447613344993988552905658715526870742719184323920542502513769471513972608157091794666605301277329964443984477965469422176524772634920592929521741395979796603207586356596545434826934336232681300501320522180040627597912852807012668315238660893719357444033699524140892164693967633427211408592592750019536246095234964660224199090234397195487564363882735238413041996889193774055953562135388140332018943369228383027178723570304440704575858020412347186276147420690019321143445386411630464325229197413136246098902299183679558188298283343791053084450936677959293101017923321223739109189464346236309245664193040117568773999742252616927888072803975085171533085696556148368173946749116313739690301945700085405217882745596307225871367750477016558211148071488711656261820333372894149159181573919887170273639750660327204933564182013880739547386785061629072250255234696260350231951283942132243218732439915920359135328660179067892913280438481180552510319804475915741073049110233930284244071369186754038795859813933108815113709223024023058324639856216679431500980290521030719963642038375311260804497170764390681870833661753238140415207779954930603724090153284396040954170147553659184652138009321677569231133586544603900183380615789549313796033022449912731630005271115199590998221283753472291487535399479589521548829884869864755746354419052320834307334895057748047454215030920011184483294173135144239339744856602547360354328182431913603336487215632457151358532677748527953150356572829072170214834433671400167227194432275675792871160941724648300440020177410624838557405096687655251307332195792604753592057082642434291178597002195916312950395786603886885115820619925136680344203825649611484887595583141528758576175189031275145930695056444280626644932740435567698302329298332559515242470855240472963097803905347058169913023544807870363807551439126010323517570750196810640641147441063223983836416546454222510685946768144867522938786517920665094132704842679477264065632845244771450240924510991139291761386834793775176636687694629799477757200799623205365398313528528694387577641054673421959280733789540860143936286828055967989383581484847666188191685049017542919000818182440560427116593246773579583798276855227898004791359636777307692124590077715913358022322276621339105553356067986820776441120780226987101673201315012898096877017594377504237992830122751540960625573289702545324382650656550478010764680555285350660823498825889313858435057600524588531730031717507744388506681648527058817910725242063949958017186746863711959872880283137055672058617293779891280270703212190555254852337166470537997627634109630969326701556694283833705774272197025615387674441002994413476345877064841874645352071347983862033801067929650869323452425146941633671254338396261255628354792594395198104500210381368783245743317393732804680821825287982780442204080993364027144280676838224587674230946011318577288021893284185286673829335136628638418823327637890854814109484804194434521598140384752995557400804887400033384426451429226896341982807624803973351354431935320195087506968625021574822884497050122368031405383111401690123841613472458352466133841372343357160906520257798724100046230740030412954262848651334654832348281289529970900435007611677855745217069520573642002458051532168340036647200048510417891640948081532381479461061031149550561874792393981945961469269426213086599300002460354308147354183274890114336471248459328052852825716048609674171818947353868901839098089108336676839769268602830476544208843355435747760367596355517193054225723401458800767190751525983172264776714377474678527648361704052781620036025257243930228160817105565165212116780397761247565049160367125746471135980344359026190283577112523867298567602529386639212202098214669788337251852462261299413692254283943936997168198268840579690217537659451039880600459560924314377801921724589925990356390019141983733527152490578820594055208700201248690810416399948686915123024298046844600269727472162575764368856519745654707289486367896196846122988277010059826486438535968486655975950285680283111946399222492820649593482296660385944832710301086885588317047528670915461456734236822068706319491927106972494214405010493020218738519495582286662157475777987589321445020295192755722476493372342835234060597394080242389205402331909052038457319103293365542054631803347161739158167205621849107610473135391623062518845114232022005328341534000405760300516481307832583383743558697869472521413995226860013677657140450311173427393540402880668747956174945349299057856779635616441513714729721637245540518080289431139275847714508572459448682155219778876570094715526641924529942974983958093283476290638722861172858542820285196772332797454716915803989743634488290059264068195537719013650234093649964360686304264288558916249806783483176029642965867851002209955618170713827528171873209016919501828264494617478049047279056315572820728209933913631415176975080061953913609292422835645431303940201509039817435273571427297847112839494206047510885440607900361719334731031466632778861204144045980218368790040206721552079457182486249762694767198947312955309503538494671109971395105324603406819833943525526799516578768572158465366498829865366094614608836585388498408497465830367374588864096489318301463807306571516622996668404188247395937240296685508332402248731417913309145570651317286751769762780788889561490344545694654652354120732900017673078709705300082991272653356552029474478667015607966875635924224271987902546154615249307996252715480010999266602917139791040275908756511644907371424466785056249002339516094203632325590919000875111730686023500876078706756356199862009268721701765466117586532638012681401789995686951512334049050510112472813663231400143087365335976990497781223096212956985083628222886992848809048504082125054844797280378099246402048697692344059594573270502273256826873679280179613909529420021609279565795741137223828114528564229517403251833454952418800593811865914130179975695190572788108809876835205431657510608475937638034966574531022707677684421365819812027729682865042660066788932264992835468778521803443936553222948139377647429576138407408206240902971359363172599331625906964494774393305966768063685688555026392325392221812700786513144802847023102618947551691324086909318363146632188752878351699862570057636053811884842767955584420689240631823658063934768292451358438384204411256387012820778169567513025604836984304059957444042686460115047406080940157501886656165313877476219868426861952963561336682686376017744979507395745527048497310113217942467893015224050084508086219105030914165771988577304572191900160206882284839014265178464513043258954223624581733278707666351505683213605735268949682770446559979784969764074845226460630522386115426273189398952619693785081830468484947118657647912015939749460642028332238940798015136798353649797232567462972934208845642548320079382976576578927847661487195833845646782428016253379894434295181664800805841415193239456649881678013723293870009246629077376927675592851172496444178940885568539174538701313823547375528845642070804276715367640704089914036757917364651250031585031235128020796180299525625048786393652305786727192873457233184350827828020586794599767783363057578636545613298733894128517893257243545494867708824695823034241536147823628304871029048573269348522713686072852202755196395393419406277265077256226308541207958646878397388856643733456524243805379539815655403588507981948635075308424081415830447338275057353795783519736338103575134625210794390083283521347715357466240561299697152104642105406290305793557035444741922491489471963164710764990868400836913802557722483606163784199184068532714421482906767984780838829928851393053271538640671839531918667296594115640988887542852366924524728069657266139354298026217328330482114177143268830672991593534013611574348108428449235595769156914217237442928018282357121896306034785167246653786275096272340444281965039136205467729820013733754584273750479903312697867009563355987135226422378308652366540267642151373072247970233531269655738988063225977082302492806010048486151673439636008504466908749846402970549731836765019753921115418769372991279783124957470345818983681805081911282630103408611141569074970318303431883662733737154852143516941284323634048426620971766723482147631186530615590658310013360594473206702709935642196600409653126659185645679422596962423853270351516913600190443222659451351238623081880857696328214522072503301568295854359053953250675105468093421103732328043307382689505099244267013055224787910997052769606800320551557881885985573169066440447463033896629256906715107597052833146112538869390483525928719719866221484228576563090534526309151525462623036968619597129512533160632990965278268085857447350363167802033114645710520655804430468466267004057976453950250047204508926988487637066835949102002867803220133336548585010774207182016513670205013180724887860449521294592921125609100581132891946165431985380466372117680491543243016190743032342181503061868039641067455800512087801173233070178710149009633722990256898137536161029292437489481715619725190782922808620381896513995974344155964415256958864559706634173609183445210477976340158349832624581604235539798400307933009715845187441187779282049102049615707164449522115134799799533381720716353895350546908019487882349837843133827481186720551153980617867395592802365199693372405661746036176823597409900379262463091105713581692616447876909385735349870160044358370475689989316218386406029581549653614476693407974236188131502369960262306237716425578601849886232455177234864772150908797344830641401409615501623553671886681586751203625062368821147066689527671335962618625596069909956656941410694171622316617998610462873725446695420479566314373201668707903727734050551874105945805586742832236896998897288854275809963375572460876874170852643423024409915784113386057592297521723507705863396566794082916142493752520678856017678006666244993080070746198429503256058281242245860755364382047478194329217300719031487445519696333182963073443776231302318337228184024160214047241931197813704933888198479668416683026160273593153254777927279086977410806218500032321121505783414530318481086221139502943894433874438782739885303293469542687880597312561382606013108283840207044009868593973043897386097730026963755309055067706815013646260174242628424138120930592456001531965549386899725860644399066985792738311342891417661380073513353482202538596302518107737503790353751079830560667101014678147863125224555384822996653727568467379927633730612912244939979420428192709507664619310827069006252585963141304158130560030388905374471724937807966541034830069528758813466809148879397888251262944809468031388341493885940828215483589212258941686629245864234146030552922483906647992808277704846387957343689958244489685048163080358107145365746160040618992630395997479235352261339842595405771243885630954065686282618275900219839872296443583837166939509375969220828869013841379676049086001223874418876084569920037771607866201919604521875357199725296983375600649287824548941856321412299878685601336055485438228286889264285755419997425748631427540169702122674794081206689252412851302995106548170517920870259507427464618650540376216068277261587767086638520845353691068675143410780008134714208560461537477277576209238568464750025690703620975997198670060516940737183969704351540180275264018778826248831009695840903523138248530797577608126190884758429651061737798018133418869152325041056580100502232778362328114406118905297081439251059820882320061098884516149454560091280158835236327459279345237098544538412248867869816890240454299774500900644733171991737538703613809056629747181598235501091041302703515134027381995292457387296806115705922813619973833848954952671877016860643855591170693120503496925740092416200348204459479025401844049156271515819330348539096963706563705571679669967957656888010011277211323469060988205682048020563616924728677744402539769486654879499550140196905211054605928120686541422908545266792617099219623884476386502673228973306808942906247465968752937236774598552765990839517847796208342810738679396055506302416353160547826320202100199293070191800693466768773822723916915026604316805506259033263911045727775925884780231109505915499434690690771173671098861240946621164873063572589991975651249240022327150744840618802524846875326471773584279544221552835539997255264985612701031878266249406300945828938060501680392628791136577311879270895875073691364238188009208946538629637309473208198536301750271681710887945870430637563087062015248971591311374467403712159267664008978503117517711054052313626006938717787065087230340796860101785695541290517328080605189331304593367918742938773337567712437597029309766729999145430466981081814507255216463582235132473025244120212066106652487003386112363226489482281705754741513617599125981442196492963586897632431201042786742643468851821227852625940094435938489491088967662052913372486202177288596463831424735071835706159526674675218787413181719922693396668139185018320831849407067220353394597425809568102748284091195758085461178397147509482008286255465787617664234034849718862335653996650931578826028847269571584274300343729101888167638269243909373801658094755917144320539462258309443562619545278704085657062019672450816586625863182395261797631691799395356375528329580544750912183149410375738801088466254327091780571398661244499767014071519117037567978319366042004131775479320742635414619857964429949037058121056726042946575230410660579624789353024432805569576688830762508680615930610061397644783079900194875338026798303128803797227916127558764727084055131831151178236444447923381576151458020751219771718950293599255029054381803494469147214909432254407943376266652826653467346142217630602850807187485806314115907631581082971948179543697725363071467189289282594497676194067958812456311580605737754030149560750675423820502931690062971309356688276748961205070387182528955153369873633044728103170776342800455745034043382280147103186360875168041564148294854386351588855784027807623885994613586826815063890956009452842885996152940621576262737615298702907767898731221644292174800541986435655966358930894805834900650095542986691359146741548222722596986617312538008207453668965915797728765319897724321676947863958012143665925453879215927228173398648443240012491775363522478720675065650765251271619784390932206750803116404870604361444472553876131049559932722474877198584527295282475281981688542553570369138934683438374718204516132290612202358337958009813326748028308464072185317077747663021033719927882961306621950336887935692927096169679825893624440507763937562768908912950942648755646511379315504428730749651622589290838984121445268293282439251561745432559706433166163779463100993331487587235812060799307744934238565083302276861479636329362875295746488359963569559485439089133672079720173113683588166878696651787072255184158116150274625584878700464262267443336887536610966893458657281100763534598870802902768042293774444377900700408024716536433449577187369286331935962892723564901341058085360713564771817811994470373162225785179484927497395324971711508779834300025403478732678748845532930761386174323604725802897358522451576971625117346659082056648389628320773167529831414724349307874688759085240424110190455242708976553142142150047422457099704159830576879654666948964945230383271131616111001514764734806644790988688582565058754850933388342905695575161405370445386590474915272008742237489822748784312046039218779494167069696592313342752713751967631128382414881982979578617934231526278598503316236863103339408071489259036129865027157044752848439450861720714689294519061222483722905816665142631101520999131936311689516655228349962871067953446975118517650616153972857976568288597598557780143812354366872911534959532218211795805787181624147910268471663956520599300728688587728072927252068236585333081779310612262315021232671336024229342905947764694104647590131205751133578128944712959628942444033492851020929258851379017392154098327027625513193079835184402509862710275742067674069292534092942228987512479348857722370073394614746790859666221135842155015376809964521641566978583591428699843680508830204036728609464244188673522682129348797867151521755938587001652054194762044070109625141613511016196405285536228847119288487418983578335262623398725562594199065982248924697353494633468869117111453487265449564843716797279328261467129826246921357698724928845106715509562436406817955063052297783615144825201339130290563135434976014771446167466019668669687510058164168819462638441958293719462566750025782498571600982963900763120658224544382773202618413186003244190037179661762727064101876319357671678665412564665495568335381398752868020669388621312992380651037051909765019783982500781206941979734051407477512135473594038634894368094004810726417359644567062325585113117665713406129535896877577039386311095373456484258513720229904946066021341622077632543041282429982910663592311374947933042704888396494071128424582769559905380524884397743550106280786199928284675771483692534144963244605230079650955669317204082088217974180967263982614379040315288684369917674797028212116809015677148937980295789946631144047542356623257543173358581831019624274853245294880843368098013286369123033048250028045964909123682438875334180316873387645338085057331597520342107013846833654782336281499082438512725834036743835445592021670911195788135311461143024068965213705356925995456029384902436984759210787927779801631962498299016216290744693858466588416331256868343565271052106112155531694186900547949213543699110733076121342505978957461363484209565293310371706946984337768976537049236367658830834895831224611604758939220145199010532185395643273116845862570944436446580799689476895907576458978789403133694224511712057964452843203383791125183611876992035723776181453467087636496864274994702683150676098909661080925122707024060066354220271342158782787126484720287243780859038873865778902632214990155686411461489025200993086038512380587392479315732773779896867682478706165817178066419960624985091707004359229225704220970002155266719170218504488411979899467934035339678231853396209324833656654645667241670893660635627875561502537641151065790284857782778857894527842127871363212600410236737064511381925826410885177095766911627526038953673835999204971957935994440012512920492788548779889401933977983763073612242618189415839310881162796360721684826118939068712680374029303873450571376223796137081558983673323392461208686334199389265369358414803763801651845559060495338726084907517004968554329740982513956491693460889314979765954474668573034343560540294230935023617966558299587924406765431514811878757832592171463871862338367164678226177777775939449224289368540419325586920795758923787246098743874625201473519021507770511564590756963076861303546724599782738956522734561293619751376146792900644179219471611787901969810890932299287675760530270240824555017958379516090463212827691271006312592006547949796819547239716586551308831416357086405636709482774600248045378924658057152341245295680064843768929253653930178734483777673989416172954498012394093262186929419048818976822566111417395962918173911689927998412897701328368702721711760343446571197181181434053613732085728608014523870137295839835793084454989124495427362227487921054277242309063955472976473110372475442121599243702896474955699306744784441622525938606449991037783708426084819325741727846430481171461954831348032522623592745198853872493400024624336249286740627120199995172536249941244529394745390760043694889803541118272354553837293175660169760146810537860642122543164723781497489379725568184223158165474140465064931011514895914779514089512808628488263213307292919235591749361473569221857900977992356510082669438826320561348930003600500527165359534613559422201594709775179307467093284395099410481864536072221306289159852579088941667964186127788655631445158363526160903138472503098016279793071904361540511591292538860256883102044725572543459874067514001564883449581748305097060303200071598039701944589972518642176805825424772366016382949303643691173320220457634222469258851476814155724307185695150710685140064049321907279547995868483853453693298048855074269821766649985388716390217845105552306433101881604969712257864844748861234829621198882503486622389462213895995214678926110127582854816398489015474506200319019775512188015108654033107486173924137551571358211546789580621398596175967332092367841842646515067728951045874619023610524906975562967575981501740711632062950064241423321328626807736137360497376757730411342631181432800067310813573731804043202749712826531227003138192910810146563421789088975174731801359302766341442312417074830326151478046592970845322228291633217662765447337663636507132370291522668372546685288593264019623825867565887926131782537849710485249902933743263910605192905542110276951073169223077638651206139781357223747420898735869023121528248164216191958335828764243900924253106815619564319690196733040341207006353842403218347665642329378980532753529637165121066327395627094295551851705694495572840481672558376197144106540539858582203693473326561730918279329558964459879040726139632186725073899941969957026251809083396823181553247860173232831715984070844200913325815332021432232327394578892238449118272665797459643249367400155638226488242308384897578615121680967664519857829617589699182682116544134314757004085670717454328597439411391472060068647398604805452773233984446032165053869769706110295943161066543147947786605665349102073400651799307031320315285268672227919244817216208015105230467542794131596856834114086202609252836363292019547474208268311381402334958883963813831510479221009072610325702151994481419581755350880475962808301665048153399932937462988538618833111569902317443292763344188243087183995024117292301064855182852623578631576548028736068297282501304157013847090928705155211653468850275666848274020352632475645464597183527186521983533748519398287094676339562955239598688243306187095035092802641860658184034222563868792152448744857338601198549273974942392159856095326605159300063150356274353177699536569458203401157602569499649596883559387443831225831106538611212760511339464705337926197929880232736523830496212733020791849835977111027743725205768046571507461099968050056183856635508666758322054804374504705642630698553456900385031139278325084257824804714103723515914629731708223444740204250930763864304369166739463566163479787004035547846166806581003118207565066739395397775363172548621439245969125251259631852287198680103868485389998277739578586858316184636681635635657176518034428096005690619017451306334739826607085117191563205342416125766362911594741748573223183099296911875942399737542859031099313767539903313965996837364657981259406059208251935817883512303902929512104201500680139278246791561004750151299964933446458237453086369546639658529982638869233769421297602281676278750369345863897617208617034926491304209978415888351777535565293826654353023060417347021712661852948036920886096897687116424369402249217203943059793013433054655478310198547038832620586037341988285035980497587467835654082591838072477237189727108940664180139749160189360811602312345154561518484625386474228001799257149344009088819643359972735053302900304687318209626909373011338665281104509872112594725665484318997133877524181323129989739753145937844064668635783533685766621493952574118548331968220784596010596318437436572687699561955443298571215661235252522651075293588251531240280340909406956908784477964915425265339689561264657367229083378914010439503176868119217423390393136651375972006240201054057060093806437113901609815615621674041868303251615509925241314114915392218193828085406826661046274591296039223263740196596107216807414010646152320365160833580898046490626440684465275110860014032707127456576062165066611527945097965069651962655602489985691275165542366647754628192912203682047872600759762403696343888218400876706068069530486495236355057106479452096406744900685651468525020998951046389751459046361983141644737989885746241058398648623930465643779393924947992709550311025331866225203634771419891749945716508847578162169242782332020544337834645774880834791317247074127015455715090795552796486916877423461982146565140733060550912637908217698762997190855581152297904815932968361679310270649770401986486351676722595419857611247984220222815135456162315259361227897326950481769846750748580117966073043699584924943996765941685177419175872139631533843266973364137291062322396939426702372184229393777594941028468657198510645254151791004961489522566472021771010186664682406067646110987924110224494949689333930974978862024395720727667151726375029105675045405950771481609615715236691522267470718493834659736013159081234795808605246446198969238185484990958531612964206911965836927008009105885607650849801422772307578133735354054990723637076612300022446936289282806681913849109479330842997010577585267003060645977753805902069228264637636036002554220577505835665715417761073980905158283389648337737892319390578785732000200513485767716983050153577598485396655880807866727434873903092107279712821137955709256200789740904750274239668593140715212629744650714886102338133873859588936951293094166032358821499560818056346579909030817165041940384951922273527153882269081181292039799722356283723912522125969658578229040062371994344224661255702826997842008427903314415910590861146517064783184740242661396445527944973974614368944859741193691858403636568736991242324686228396091943306864463658879655834244876972911503308394526957801023491728206635490447583151620323988741199709100539458446614876445550792445906319665618881012098971055431492925914079646266279933917204143555047551875210817043869196197937781072549495330639897093598919877502963488555674207166637604922827253503318363548827794392215676917123755128911055642865914609591736635691893815907140160013128700556465803742670713189503525438096554756812236279542197667657050960331067360213692436085833228855059110521575285986847621659368564700603547541591154378804636929886658017785735183963290620453709525954086849270259664256669023347345991524959973924531884733382416939984775935526552809803464409277757272907025904347962142225501999840811924828093878458742576983810028376866253192971955658474800748464381346056252545977586342018244230456358526261488155640019992926156750147337722971070126755289719378655299238832072919438016605033627087164019857996037288565402197196258073593580997457003204506650519449257389999411211099044304873574827162530624550086144689209300955200674080689570064460029468728568068832565067137686052402826284681615384832000114020849886063909430531700989969831925255454714325876044420848645153114905907539030653078844521737816991804873307136509378068967552309213378978032765383555052120906030835515327319253306182831232354435878555334167762052955617278650031086373342532278065525668134675549537558315627449730597993288305482749113839743121295424396276928105093747027300869702953073740391229874270181251161024436598861723442470268585624928019047823646161522313320046744823540156260565402552010563779805163983079070008430857220207192868019674004038179934113744052300476235388770197079142532376968447064308070879866677334097377271995514140028511686442075006663301106432633597226893519239279750147114404622431020129851046424687851645587342455763355679436473185011538105039457993270457304258752509310267641009399505038458372626932991183367185584574570935023231422209761955077531830344331226736173565720440209349302684779330275770814561242337151590075032488979003703289786343753437318064871569860780121219363957490416793059582927218577288276168221945429535942685583786481516438888254903868663856263140760201794663212581379959339093934929589653421105034919732206270134038935358320430029262005361444414132619941735082265677027070001663747372697163282404697354927592157445793261169335164155410690720792607098424191655290824409553439588800703100324187744603977896195132843304040059340036656280879285349292154491965896517896119147180682673798041482011530173962934248690155374927269697302724273368902614985297961868438375561218241343737404732464896017076892276693696348753593891207670837283119194241703692809067688154325537746656626075768170499557504653296845084296538608055711695009824879605096054165643370483525818735278013491874409437063864146633658489610487270300306796226385309736647948955252118183988443767910550099616639322559485028807911623554115605646937041044936211223081572085120980022301554168260037746713722669865914281974312989169082273121350101341847668707805128382586650801233714853633997795461920316532453593936984297314198939084815981232080067706328866257637609381076620110964277548119891048721671905486318937296074277027198517414691146852888857379761268323679637572956216347856568508968392731640784543679543819105276046089920502360118682880055500233085947802770300116262859864882976948082558801654712347451803049342132161920658646842920813227684716811157114577499381355850887687287943386190007074389832251714337751326437602662656710941418191238774910859441890417580989424194522278278109569830657097106778252974460728455456623478274933778594969323531976015649393202474363887856045777860277220134028807629787444175714476279036465662814027176846224634598797365301261565999256286455505927549353368003076602006336142455677707733622176628011344799268122106295970716264087493571196627351836239881456847757446453403262033533007307973931216173906914939612717340602874773663309416332149173915259634759842717424500009311108173563272660118414994039227565739928769289562793949644727077416662726085961428470074476214140819844813511666920023048805794129541414619278812877667444275926054154986462999910017001322559415446470818241026908040830943996358636091749488405923198000424521648424281337953268335529368104050158167658369333288852304013740477214633344136623242919456405076073478774475435238493137925894116957843093125559477586545893896019734790623954813553500663472634053996595441096952578876976299986698109160054545540526457279695504075282571367404236992740203976193223306651361918669758511875366195561479958820445993021256459119704822284812373207343583800331962633783152242918012716947212013421277701163536158150454069876434320604064435882449035578179970884303393398141903034380468707968819044291999987687646369726529475407111495046047023655507838118827904589619257880304163319490398496505334667250044705504031069305255726877055061123603829497508314061349432856540583073054866102487019835266581937366261928035808553260952666925972631606857845234089599212093845387494365521382535949563776675688723268815056900406988669445469419123618117156608624800668485125655812006110861990912231992207551962610545239335065449177563946746648271956122068568892956549783235454105135540899068835779695318538121165616700466238391639196339791125968727243912507121322149312275505575704734719303716856302757599005490495521693009551966837330005406924371821013169898731017472905542079656580380602885948809546227546408219427647044950208789641466063385487343218352050021528686448872745688235194131895726215091951019045827096629226206296768351236242320763370604413303396308203503132152883981695460444159253774731011077095904617320300915999758794358706279857901505009514192963026257748653545619666389751835197515782580419361598815847023379399420771074419100582273959873336981436021357911575739704910224953223305780129931976909375792619091672168284403414668531662954311441381206123036390468061480677035810334241584998616554237350246553875639451936495452101409107387136987502637405917339010591212685411407851645187538476393911479046340506924851981631325358005335671733628969583822443449766971674701868363729198565567996214528539075077224984639458001701560459489259961482066114990148057865971528374312689250033136926424923859590502745793264325100810271445237070659250331522395183008147728549984632723531785348187319093466308560559222429803823065311431072721459956843392380283376897838916363617043048046249115189031173867770869114656569592456924539622419213522998179645474613986618733964946428629191876493227886505390253448102878401375758027516857257902531751120763503008545878723585826667143027120975420181299697219195170386482187449640531157026846420701703237099730167914025222383609774715374429365051704882741957335978495028698509322263639036366695047520622049218355481832574427629082036408184724133042303715632648615171760657735314234570771100003916986659827620252294842901393673840379841102259924147750684156219827448003396804594710503473209660871201419642842257728686653821852903355980937267688109272634902109534925938839949625750191063702622403641363569890559734762852999047965127605376412413099799049782285535279064168922813081864854894696284295724650568660304800989712778236549875454098506783548479101781742181633417289654557844157312074212471825337247108921367889573417263592601331312113111930143373264795211406410162199886097121550903926467009569208794047491431546663163465101916665056442443655723467392019270640899305032002579044531181980070179548688225145893039837017537010331495351588255661637269081354572245339081908025464287258282280738045854911153854469522467938365573268088174729223370504336429289808214098190608510594884209975966765303162131736608831556079823329158410325782156963638959688488081607691037858150770192778723834095949534945182332989725323673311058277893164729219898133094167077848405429977908266810957685264498212200752071710295057519796794866073743340023716842683795214855423345164862179111602165716764220325146483277922769162796546838149855626622369700861880656306524723499166998802142166085898414574537009290479508277533723299701135042561985436294176026652799115379628831848429033869342967893305689358502796196673625534421519587889222683535768563732502974486896200567650066860888716289048105024641509298987479727993712957442425957264943219677206206023043951867583274417165750429972370015715481253969944235194386714954082557402363404808252876003589845183821133590828753708009006050775917100887457239419386908954804011044932202977384444015170223318681675597451063619671942670838487417230165286651259290332520774883328258141336425799108059615166259526388555885298082951549050133747956592557971390023475696811914659432050354818280187266827530999142156358873694308235735510718029410797153949715693619411217167477596136979798086525689812825688360815649248754752307388745472535350181284050076957522654945657413830457921795899138082655244130013211131584773040834037493823623008531263544534154586837301891256743350140370435917160037304228482589509975610675702890071816262846471200496451877086004220267636449834199426803245763968811713329480914524070455316102263312554111931987533205948151114466829427583436273921913215445039988939483116227023948920543888996107470463110915024893896424437419310481354050209541581019685986413831878322124838453221357975311002330627771140173971555169606165024529203466985157391608338297504394669732490006944469403275793014911076523612936986904728445196239712334618645238224133838539959220963012883741677691209732703859193371033942463547261240062327373100592899758646450294920890677581705595337945883355961853319950276111866961832171238689946379017901663427267823188723260861563451252517247348506141489808198437102955817988242195379942217722627126928271718880167994318676452167898394812874910286126049322551404662171964748775411938717041626328737445537401240715434415068219346409380323217965118675387084072045462722858551459182681228055738282008768072608283805237787107652838356357384484939600735461774648057502634502267523226779228438913540705807165767647112120241516177871131354998064171924429733057999484893635808128217000079564619888481438768937594658210698524292157282994109728835507464851554024766924649674058363427328576055887670580784438602640379291691839101211023531963436073891507315213914328421909843469072792957190137887908515168407507324760111999577546709049235585926496201091721539386318665029693509625597324175133376501101934054957279904330128317397391516036226500469179292361319666802122606923148933846883510420589944162185917711073940740848437941498556428123741597911033660359466017203708751595655894413870591828073113545756532996295349375739264324724068581996579036956506105489246506686483657327314880453552456603726796745056089165298363481056295787614954529891586904655069121604004157513194622678548778457751711998386713957676901569735248552117914689565729461368847866916122128110636454982760123068389920825299606833751597183782091030041306317912515068989441233823874146745161967066660246596440320491932883430715065459942471043823217684642906321550841136778639241650245048282258129598053085749780813882586316248164445306358762579583167475334894093110989682368743741874317049480325446558698991317973768919731959674465942343250705144548305175596149479222077392112556510804788105138230091196288788574404975265889776183696024762111829515455986059056524815710881889018086663251052678878087429781471284315646446815331464268876790318868966356121559960839493022098953591304057120766836913154904520536101210024975147783366050878220621755793468365541536218545224649417035296013881129939643241124014070091660693353164453751184073588414672881716239903811262965099024410921971358318218819559854163622587893421992001580043974736229379604107745832517992953117846935374278175752865236345153414827525863752553003878027217361308754785954054029699781180369550955955706598142143303110553523590841801973071644114861785953809325298344657752645179362467871729276399372874956557278879400431026237843423282683038488281167122769906044169279356087079980288898997612055192461449249171356777333906396241007106349254521635769814759685940552329269684080310201553026006481371720218083252661874921066870609216457990963943392392652088951866694046395441393426042212834389880289668710641727390186772806579247418764636002801270552684057379515992886402572807041651899768730099512229402991219640631682122455728072845528432867804221177190454080097259401086291841217004810225401317464342089288974773833610679546400010655428400017717648325871568678996091367267620103365603479334708880838576011184616403551338927501491118281371605079201548184468767080438916199138380122610073432652307331278348832950595741005514474108851616480384414333677455881450636505753543262315152778155635666106074890505610961472066004007947826357340056975795501232477818810302813311954741087274713595262072179552295058825118015824245329422198197469712421632813195347067487222799633015060768980614367946718254758276993914072444598232010621631615284325018620931241860857119777464863403005991465871934761516433197640871128538837921283485938346342582964071633517088190580660250886499642459223194584292274267102979996766993508494334108701642808928406212136422206891116109301474997743588104572224583589397198831462112349863322537185840910540873155061419800056389136867243539387739124278201282892125249523518934982212372993120139794630328710879663396911702256345089676591015841487646470005709623483796779161950035862868266962514863398686750102904835995305942139334148559806446162516722172738691210457571605342252277792676965312476686726165737487122418620185186543503133764850931051831027506100078142984376730952688197883498419766986361730519551949051105686104655399360201307904478678326112678120017444382277762040834859900775042523677319450285008274000087985180684339227309499361085540361647399327390869731700640787533603165975499416985330296618231876331095594917521584966920804338854115263903435059276492991390775560116309933542762214803199321905625823201141995995950756406743682504614454370026516845500188443303351852518833478846547324889842959238455820145439938809623612155645539472668131483217509982226399038926731110124865086544316203256440335440400885145111205056304375228281211058961087349463379387266375085942523905405934141402724248642387298804901013854779439045699037127467696766113836944313303030350944273186832333182282090821181501586691768374702838673178046876893366093533048379897502578366522123706850341023285785612926233434824950464687456896565871637739843039743981596315429166049499064839622992075130855610123226846161106684412482549058130540595557395561737408975268331018766793028531569299418851638719312657647450520866686069494149099779745840602764931422444251977345625491581839288627918068147015845371788193846874124073143519811693657607846998466720992847815607314048707669861266843126351205755945299580550782539812720740723970475924037338357352719624881616286593099068807773748242822999403011592890360203497549164816609820412768944298630830755739753276085765435418878595770905978099300913765184813129527501112692248783744406195180131185486632368079496666920730941328606374588916468147148508196748807075139991942615411308626314611128712490715963675261926032252201934843879811346099548037979295059700559655621900449847673114745336588856847410590278439217244336084704256947872419857074188511283223865795905696288779702948925524120276205112036931257097536382690623710209592917225028570271849567049108148416398526831243235858181829692688437343194869429971021492817489175734490091146729705062737489305919735063616683480267631565531973314950156721255139379567063526726159427271729082645444792528450081675259007883722348013837966933593113709885839904454608985694578123092107680761510725711434858734717861652925460462526135479781532685836894223165900332047401762555580157881126810800863927298160935112560131826288470224403827887296633032305560407550697128257624034015786493233293873627983802851301596716842942666012972084008385318266606480977660033832639799769894323159054538060506188621403922871714355327228627704529629055934122926106397859828466446456065841750081642993105405967971597985659210544323841572368997387516589600532340001581389683558253024527127739794627524897020624968988106417492449911244733510566738445437874709063629516213969612155513988090841465718232072832283746207664267260593061653798022227334582543840935230308354238303998596430054426607001675051306296555591138579113548694685692822917494685316828586512406968165732776340194247400370128808678328952977583255257815215969132442234848279839211041175303791318349272008517544705546500627387189593260791262753969761359580421918126870819836059529789419271258086805913895105354706954300878381954850073676331289382930362824083994235371819249559084095177190428784427070729050722816680340973700137213624257509771249038643765519099600695691991087414272244621279724707339871635364991444219670572454449219291104441899486271410800543872266890500392537660015119758182653955747348341064775011557483026325948216559538167590965106275427777720468497159478690037811070385523652223922740125724625877935876361072887306244871210692184713664577309639118207572676215097288771324733629470508917970351902109342687061104506807803673932349003396819675354359319281895381251088097737056875076760094583985032449784491828922406458575838402231932817986223113047506493260234778743637524946750501469003172921482143164987838655594948644159745028805366041411121703491959594100664799626042814669488567820489730279059635380897132067776236470235402810202776510995095297258977281589979382414694668735104937814437904489230852359388829920660695993282135589602936105680466039023341439099343672347352643019384888069335995161269555939695318540543632439684412849625122538279819134745844146600792613238740424524341984467336925149461703897907008520921113349829978536205864435309645907666096178246887891414843916823292715131428867281578375921150192508318766773598718217875180742190635772579521070131292804589350728840120821070976530960631767391270117569443454063607419817331742829494956555272656385253525615871423751596809056133345395923724746690354586724785973769590398173963623373992973059796487930821473967132860352520388521340297287811266143925131964732127869881453378357421938208192283154387191182173236867379478204411248118773022652871015314674818064602171991639243449136288296056872373678554360438528545778861828757679086959842129942393411377769645282872458043927352538801257157700057061136016473704451113851434808906128381295856954212050585666835739731042462497579595985925952911144843874888725795593043818235080546127117832935993940487142006585096069664188537705024388570197365601979474310905979708420864899739965835552051064065199765675723128299775423965391623310788064484930516695429486397028917720786246282235326795368810603182931547397553641625223751356903826850400241185178805984860552652687069050418127680223704025333906026550944652952478425171021044854411713774171776955117320717958202823755729908109753924816775878081880425667037724062347007482502248351144407693138503405211508956835396229822555152137294072934931235247799209257717585871402961185034262243394243652871905252579251642359926907199971991932661701818181811725660636128182493306211529376041100338195938137866125820826136675060602824200727303776778811961677235765244117754504503497306005716648830737144056664723309808193044132846985772905895819108916774408796976725917338055162244451388455681919521488077105462860064965173461253387829247630748039340380416343722488351590353747239529694801742870950071259256829108243544444238530357959429867378533179217396587314180723712763314670380104615172549970783424434124979381872490272877060499355727700377369265868319976852298919113559755066837623966637169357155074332828220780214171634713846099852844875067026783752218452844205925631503906907457658140091461338240601177870175731181673284872720916999634009980598124067070124507058793169181281801077794623884437855737608461433197567225131508101301777160932932035674095041440503170209852232717303947445054964110459666300332315406234093849575401579096831460225882059299695013205978648840908697097580714903789189921160200641562282561198606091643449327336943515147789788040427582998395333225522537071796843442296693310215525847142982015444793549273454189059226714603928067664980600407817101522277412046928122980023341240663910873197303514807605969326090289208930704137757997080772286484987177490019786885042984185165025153517571914130686964045676220813949601650926032393133139806331463105432247527961243350615917616679478865607649979177947248372587920753938031041874856641008884435246673287909764257102112042037889608063121586737097719240907236947924177843593337847577607218483121145497576402026730131808504294581872208457256495538767162186392983265776042736277821568131798877512891030754940135494041606449530917760238443767838518228310825591246493768956004631726448359399568638736594212614834802692196491422900815377853112266827913724732865927734741250478563339688841471064496546985288177650616926095588727625609668312423128819233435721204032319918543628522592005058365028911070110766979387993932150927196132116225104007147664467245662873029372702850381256780001102022088175634831512745730318455531058669179342078890642716245600554162333004144262098728897873016742223683225309241255244858789222278126099356374263335529435532703356663128730073764924448421685333908938101388892563713824486148847133198881614095229235285419373364162192128863255719558604926092217130101649858673928082040732742573034078591281696933075177187543082871785984916994645096542405562048472225682466984076842661859289583946720759897143354609752076673221908249948042883700774224425537214688461329677903434535759189339666097727663338456499877715094254870240661239109932142794274102004766852132027805268337357771895283093047745781462395417565649921514744680345151133779133729015524990928551337548458959285191108368120390208754854328497657153953053044079807561148433581064896454723561811141759829303405556872842194983595026221709239871477520152688907278248944522465597449576887198446100064342609190611223592820493665494304094245312906485944353778529498560318267594702204005231732169732648760003859850739886757464223497741949171227395180490125276416909849664576766879336643588967680616830984661452197318962334048725971377853447937115551337024212150653685120635727684717333434177443808906076331741654487810334651108708059364829931635604953346198119935988610862061373120277789256118420895695178733274811489893817126871264610304543875060733359061504276765580982417829831418548593234129896777139745978383238264870696101257812825209735614005923333651551757925063553036745310122125401853941598053112404950332959367117826454708982651630966333330527520449068867637083400120421665899963323964829580595372217649204832707960169273699925725060245458760826804240380695867832417758842425404347292179058878486692676049872670586456878303059794618903133726344301037829274785929709869147560928315087983951191762628076760391095769422921958487561179189281986144661552844311455860715279109057314086647028596641001582777857076079525937147802790222708920810985836280524628473168347473629322024552018291977193119650385923478183007374302332963267151428662550644487167851281861801700839898576711597303924746089873580463372741488666365328560129103361090293781721482249567025921135873717657618724918520855269410402893111610109469951660883712418272545363725314124552583366694083611583645043112270735546756108355907182471702041653023367125050220794551556353714267257648592288740181630637743732501654650419425321801441848308810798461462646090134925859087083829284336571678950854343385428074865865853570486112611797000708573833835301261707025341827896293586866574482985045551698462638235755100104025770235296894539854664371419502075215020453595173665934921142149958245868749243731928324550613466040452273146713928240424204689407579063047269617146694435774355929909186059401819751390758030293102806654511558402884826968787175389950937748561459432930359575318819552337381624018437179246884442284055216930014110377432414419959606704401838782558914169899877916432498377487316004933492710345307759932816614789972042239306272232788787919077336650178279092166254456757478214870887641299353636594604599180152009037506302539140771374095405181947924453109612243619176809408680721134846459891403520591515955820132189876513213635569939415043990548229891936973502597061096037349169417294180097570037172078356556076302360972317077873451597862035045924584183170663830597372956267855793816631636441111665091520084503949275307676338373994222674095780685276423980500953095091037275682546675929514688018657601734113579258697597427270379788185220874753641278608604960774828100619016558959918879451333686081302485718390409629131058260178835536078056364132557709080025330901834765526461528155614464648684422126395966703245011398066817715349811891356127709631381894021788347976020088453433944076267670881214539280910335331286871139931988172078392572544545516947126095586990010382200205518914073130281048335916513757858860559719833759752851432936325171231701552454097418889831218510603001519247892222854802727040588237881781227952105169334762599585097551421176014021534569107962558368710006003911800981152039492957909650168708230832087203716408232108745985565530737771942611522935163387068069694815480643119558902476462860775199245328682982417293717443190379200685587919005039807485718870221249612881468852866559035557133929463261184135732709180186738537845123245860317595983821758125809311369031060015190926317285349387006652281253584476489620215290165292553346385209669229151281120299135263844257588257784696351921812744160268344507540504849923190336146401014318507618252616979515187297579017406702773364034389498954959932347968154154651913263469177029767003436053832650684923744126042658155442501894884174096932832785901353115474018553751403046728728197090653935344034001022024012696116627714847225524481336643119636664317993728458388489333960000631624126758503667359989400645622525979264855755365669986093271710354716810744466110591256449022430482031724763740886445101323733678219221509812982905795257954811473578526536330845299347020233694125928803239538590341521170867610206777880327210494902777113591045887212238553643780259201985498427663312554419117685143722300550608860250640520150030202791124928445124538491478353239222397316689845287443225099725291139224312643550732460952879457615975853410160486307948630418403433012208660029287911944707559581207068533237874781304329731726223282661187831277746474924081567683677313285520760720712462302362479526905850717111252394486447780788132354130360043856681393908588275556326971486079658253529725393451868669372687337408136555574401542789624202487597468839788459598416505685394627898020307408032538957012653432535609685646505999333552629187222799135111534639700717908237218540849668194972680040363399562434544534409516788241121030019607676991392074461009205987986960370936600707928518038341431130993525912501523392249755798897604333256348548748970219445997995920910136974047029795310835880531719339023426391414583431579750705887736081059291719608164754278990844175428143416256152970553685009794421423360955376020872775188398229057211270638258234026584566068671064075490598012784921236847356362813775469389573820587697789212532906938281815686517293735996886968610871797607685048526789943249715699607861703406043418786393042423949250994719932896778087274157450644627069146230763920775642958460694630342393106445061727950965731973054711057684322375356516908214098630726187356084622655665212328306551764268391990412507482564078481409871468922737193813727387490459309385538444821600612176934771546901814289155051821034116369604319344732051353099701206660387953713501270743652764802007192818353036797135697736109868318678040002590269443124545308069801621084806151596032823614876626695177568493467601737270792470321989915887237443510626409502235287322679531000547067459610387117346748751507464647602529119186229215679945882839060182169875919070268112042534507832750797683404097844047871061524964160344923888187160104950823173049054610507226567325066111795685166419754250001509766523011734287296026624569982687763777420421444109259977832016991939259663769346391575247739633645782999265541290235917355501575608576987086005245236970217152272921983134065541881170194838980232054252213881567198990509155148177999834825350110107298548643523217098886444652141173369089640221516243457966792373542964789135982969316359584089714269663003193826030082535654315860025292984229079086460921351478737259328296782183959288660758973408082255911627918470465779122403629726077889122607167326338645886726448018581133393187988351086626079823215047794404712950048587300528886687237576350079812537523384411780128022999624434024991164152295717294728342505594653277246300937081316340010382299354999138851328578108129785862313566613360481924786108261284177952299714273942043546519301406160083866287593620539703065194585630112174195202081843147279323857706897080252271166081673710809882050084442524695301028145989674797678450027954606847515971584674504249280019083418614861430640028638548146088695341365720464883963525682123452682059415858184500519936455251688461430876363731265570418565540556835647672316945408030055215843235638436644315109465399359017993610224910505484223591870505768916928211671069120706549182709022745485211793481018323820580754328708861354297522919139852270873256651972391182187503385008332356933264781657663435589191026748798738044394515058165555936037181399518632094837344950315069196306516022616854439481603696280165287724781712510248118245549085691206357820874158695008889877145100643926374948812215964176979493832111898394058936478174243253161211962486940308931885139840631442722671770104601223052212393029260336319720186733544794735550166434578668135902185454904231699468207580916853944685771099700985130480027051301135957061323164199142709812019693292182429867050898193301459590248711123742737928354064846603024756983141391516511430548866999149511028199096355879955454137514725258737739898473011683998966980472103376878794218602019879221320801566244793612038580764025101263308356471970790578581863552272140104888951388035159687198800028615109059305371104358143242609364114230589333108895277054671402933788534130178730583989325550992354223525027036036832658531072047411396984973157795294505826704467706010391120793078290705357243111263963923916388138790526583526318875153679978527838130634270969438842032976939676306772949246248488658990639781480767190137327682781472878366245989751189632828128596559259021739837346766313142142787539128669271092248810924309389097493248553900914954882930952882445732208614846043330403057795575035444061511213940491442365333016776202586801226819216794543248256946402814187986945190983022270332513072286901181178472912561062053959432820410124520867387984347102013586811727474571780540549836781539949860132852510189950201305559981739621977266711992383334938473852410629071979225793705327190584389614133960902071512225161618956195698943921414935331917024213568792733418578752605524312921327497139746319516022391220385406472167766696283683517623386433975309900621438531003916228672145789114441978032070921007942791375627418513199557315306670144453545782172785028392879401532627840982664387191764213854621881752729699581557801061176315078207847531677091586785194325412053254639370004325894456151825264309700052643093743296985439581420554519721629323916423344059420091856913022204231156400350179336310408859306618161902263644413805449729457024592309271882779646997576614388831201863224180205617892943700118834865354313494226382146356804937429786495606777200064015240564924578126435682528165910878976958184575226652645734407668084797923130306404335048590186824506169955671194683900677515660893426524687649570767462454099657439791372621179633854418289333535937293951478221958480191586314880381212958530607655503646493021389953340486590853349094373861256016385428202293303635236335520916940390986393487532266048054351255286154574249252778077226697185376943789487426263678722538537317330315474149831196141019195274104192314841598862383215100441286991518078047666186520787001257603724294935282067252237759893733441651041320025404544485362526468843509817290355705007705373744190271159540787221824185978517795287841863062548084062052230763247292880090404038211962120922156301322177994116015168290353493384114231759414460125195961711584944370438959212417716432686618195298191710358665361514222441684360748284275258907570786484163918169566779719484933470744078325552979412321423897542543452485393681439156176827366979764158581744480452668164372124973338340523258075299000171779024534805406147220900298227859132449003812944795468242366259756683155573264187017479065935186535907324944740814231769910193181999994809453189455890451949695004025528766640153847606657532011794545250512750906788940680782531253973047949473807842652638875265144125668438839498156946926511813968445583609061099437183020794096364493428909413452833210910896577490088330449877397997520233487952730354716605950257758391194206609641308076357793911833343531598496844851957225708366278308725729629842141393021725432722141279713039241008362677516045547016526528340883517167449881026835097761039884709595779719427604671520795055921656981219312564101793410158190586291859452187371811879296377493220826024560892278067913517035117207092956508727137660543763114615790170612178743403705921480754217920131263409670129547211549369458343402425353245647141858142345503262448632019571394154311526574058099447553793338824385995648622935436587476383676475864703115189817809658100365177049004288225665568165841405109868803912420527140959487193451244040778054604611663077033217991946939552385477229393657098075334032266018892507393170180768496097984022065716088587887037795681371047184772063060608592834603701488151550154280012450109285888577561940431893502346773126582563129827990450704026721216723437780402233459349563884376802563962289593338179048061064961537470858778243062890351046127072148466756576781930697275987992553359785436420604920878223178788765357354154169307935538472584096136783574739290055702938220678801751414865757411950366104817217202802000823965655555331966085925614199547803706786487102342656403967334648998624855123943572749833134722692633050039029749632536740703671883606054453985788153077475155505903448287277352752907472441403376634087354231091298074323271612534762961098034485436042242813716090842061668498125894974573417445192925148965419475009342688029234941556802682875454550781066191813199656440404575833368716334944171616405653176037591831331840870589473093886563850590469926867208587454484775930987452662013874896411663465306473281587837173315192940640408881106147519836225243616951574752081172297249528794131848020505350416420113674258743529885119133621932534366892287594999820170104446524441856404160062233787369767503932009541063198876620530427500480351308056361555693738635129255368146157664521993450224226206148513082414845197791171609168578348551338186481960460975484482206754069101713081750592526188933668443930808257351384572140679322624398536283293294175330939897187939156543929930640981388945388887316935242554437761869483171991101272951000626015342625102183339729624365281475990609566367161167599207452241431599202710242175278301325740596916486352699650317163184789955428500210585771331751557878080728305055268473072034881760438236011952429177345362421550155649546623334467852032795278177885289038466148071789305001869810272566747866877463227736098052865228089741530588404352499232745983889746895511862323970270245028668974041028495006510307953573471994833297152985371181068055745298628728695883109562051070517385015136365291450915919198880982313901113760620956233697914014699784242981272248306803206840789559810240837750974563260879086411673613580191057246067984940431151851056231864094980394358764357484481087842727852036959404093089488373513726405055616850797757647202260264972859583047768137598311329306633353402473503567640859176758132316587041209144080663460824508407866877783472274812310715615359639449127742395873383186479597247405511904565350975605703759629563653893065955158084648865391810997291634626706592810888053673943157793066727680024836322183762164864784235800321410591300836277538920823453778769646807862240279653158241766778794334528022426858187792289625506766620543930522273585305438999321860050756624608821565814806399835950885451313045642617277637457543463185533123758889881688581611032781942237451232025598730634531843172897654290954843740975547966270395723565060556851332715718836838788475694613691189494330530346965965879658854171963395061478987093080922723075352167217993722674775803376256553124041199421331915406728686069164659301186408388390989968760855668431926673901732711429749867722571441781421876302942550263881547190591335382895351495525409566665188738323931603194700228984979382482178699393223489807724365884746373530437284016522847681695300148023549239570421252819816698893397841301318284669027124391112169892888130994266466647994220045810008964114162598022031792466532673138058919799590460547017123625008107016918083363825709781769790931409361991600178959869673440564990465257026131301141176380119650596921298719339899917769439068885890507232413790229585923187653771632646666798025826872735157345625568713152918288037285770162881093063613265163832748790234043916864415105331758567535224948456299026852444811177436412184773667007012447590574266450712446978544659041497150397334068992934789096478731657098351000666840007893247270369875902468101783065782342704787987409830121960218148156008070033759251252179345570459095192026659296373058590589670605607052148661757265791976845521000480783624805525161790986560096215196494500847192611759994419385518391507816595520050625817671158612005676460236441285790249438782791018940995251373274817611662066984143964152618725859431451192786282519191005148949825979986009449742337419435645561106764148275091870382771171316483058345809731172536858401797876649376648430117950882384175832602151770109728648580021500712440244539210908500400719520145299060704453704805536332407857700058297351035748789951566626370986326729429101050370118460780479144963715462520336165917257448146438464308155321119626077993506526741006797009472552152995872846902682717862012041178004523511711346027630458170870813630460026308025633543589523192855335543268539917730870775589606056616211315969833166242381578449962240590024792911757923340648365286483212095034019918145753980341100650237631290173692506723091130091625107836809382024713770137192194021109050034948364617288365632903380691571727987103141868704791872972093420132323045808820635838575415445212616407516373932782832911783370820949999830366617060201414271264952138349547667713113774640115928041816908334652918500154052288903287217225773793680873939341447134951077362218174899831307898469427187397023454482684352847757351643759855577431279314402626034198962557146870045323045423985187390647433621177704746952708340927080633900752032959707626807466147957095282665908396606266703569881659224573996342020117828158112546165435540801256074998375011912923075977297209224421968766908289941651351474136852334684377205928768984302094723710460191585488512144832211216273903516663984841398097896149065552383772403717487645598571571203905480431294336023969597921674977952021895732848125494549938603486217951720698458164531354033154949395577228599629814314528885904525346737493606045508692820279178669516509854210502913795750461640236408588897511636065208478260279858188690259463928533787363639746940040943517892932155314516084576358133402080534928450236559403544854965787828425553623029258326966548154050311182882535002532622468306423819380587119713121677131825508558884576749589561341918682520603719343489011797808843346421980633614898672857166862417196502180826229573246999218817934319359709033956650787621762416012259888908151506478416131394093872375993105152550488808179844057173840225646449903955373779180881756035999477568740581300601359349394219745632222612540191357023181552246728986039143308586773808420405519138484447655129847622521644160124187764225819485489467569566606307909000218218154452999680981777081117626802870775003957808323242403264658209686933104075533316753709526131830783492002457173729059514459325063125495031889133800921249769101716969622465012557561297436578615010671692886738405688890502568474800145384765531609465506396470741345661737759610565312100223091859628518474285420184638435114247318965957113070445663023006207989651508918187442943485414055053709513880396072393993790963368075693039934914325050118241337121752423296045924664782929921655628074898819124407246352026495848565953090011841514961279090712525666861072577866374798606079904484041073624529716482531585286094452830023485674861936633350420853958487293389348906968736313967810417096093999777643607443718502184601504262743741337107262615291150083972719715088832379542782890700881845803450362818242701232159567066330981376836230090389172823264475940559112035683707386046042179006795946456930986081798635570943372572357882292887943382380390947118872380429462060841013522746180096232664474931072741697387220017681453700491653902043480449811942762308421452436298868516259847452832944899736745381014892286115396387169127641712452696243426200025341864100776149498487911713140177529191228973816077250188361563623135022942879480374383232389909840655957059452399576799843898703784728641340548709143078994208066541006317418764432755082865478509553973940357955494924771649960883754840828930356553136089679617803975178867124980075580992069266236197312178657648023873607567615626218083636579156192246540061576263799423983931761218298949798553100240582076053115891272781429669606235498687657821064333191267052185079790987133376330836275641584436791831877009726905292410483458057990297391998879599568342833737485191135265147746691241601847211541980000184916854166099212535924052586612475029594492364377137549308719749015756430075715954996324569059285466517366213972607609428144633410418113496395109267118319841407072963241721020595105615738058249517320855775003010076654632838630224421753626736362865589976719796803853929921081617358427622434733166069946340837511130075352396954800781293102238061734470680805321453385181670830155118425685475242299479532992480235721697198901060353403899284974178288796071172911718578834473929091898827712862545563217045011473428733712549125494521313082223009088050075924005870839866257627966317511793432075925839558042244268248417239260741685365155844661444530372457227084773907226523327968509618753990594395310166790818832708391619943659858228971884092683741675485822659803445643637367340702388018449409737746855650023042089152537316546041758760864954258535132211204313192042053503134568754116577854029452884071425628304530596825609889893649311227937809704046276460948494832682714632367689862673095635965203752252733507517034586743426654495086309643894094067542305707758664530998709699449130540373536682245760317840187432003371550997088911863545087095994640156741417683326404034980873828404797776220926205718582375875178278034576228107470408650141378047599815553595566583368968992448485366455926837902569884375293031148304461944084432048714834443633664455178362965081883674589708370942982890521645181864879852199855789165633359353602247794552357591951043799791374345014487004549779543328378471460876709560819179317009140563070777732819030056156975006833828870339407530478983757012697101224369363369679884658883103691298261686592197668930069514687731167023850568896684047857174479505377253550962005945391022190390848991358390591397845113504033849325898783684827798673159452107707982667509598143239144966892842745278089912644216879182043292845661656724327747398075878841207411296302233503891485120657502215776071724363017021301449109887134406110782442873470718333984477450051174479681917741742767721074665758179168291820658388160468863530582508921841437622308034169935823470011205932484189435558775117958546812364201376055324969007325662866617029943299397809107409756158651346738534763334791009430741948491064235034580064817299197085977658417339381418709780250768606375882069706151413528915032234094902083226721166259443134184968877451467673403467083664488410777508052410400043752065421323704566436046984515506731319982981868275428969372725970324486348677800664609058208201063182297341427635052301303689240817587070496194964056182801461881844895483982257389999746267255881133470222835130777039127453816205926724060764864573054819632657724574372325450912004014129292412232584431565027309997007462585857397764912192705703238426167712969662079497056090811904900568166379299648779393477738244443957711679056153677423077317623720749677634341909208140265416116487524833796955256437702413322105065731996521398426038520687080887222683322012968776656667419031531076413614860826547571958216254370252151820058653338227362993364647801866842748655820580135400399639939883170617041346319976732807759793514366687262717516166673186953449849331485216509257494379914283047533190404058223870197548689713920472647466681037068543025307385389320577419172129625165925129599300154634928675446530500618932041387395346354026632615782219564982537045937157410003000285259059244775973928176868349272439404271663198600154994297259610080150114207679687813292022010338927564671569142057293274326172221425476735543524450121451461867628722362964176147967549614457718093944975518172453864140488804835259374925700248693832300010026139641219139582558471468550066652036688250088418374673218597120518647838595050247935996895803353918598266130219294146536020580580669983877661513301818413435701503949827191711886998349162872149016809967278540259010297090742110520396084139285519413632277794982624476909723696360078924625603173256428222402951709720456436362547011987860612191910671345139370641799327001745956071222811435132653384490137658907966165268342552896628476816291448901792958101529974588686718542017577920961334189277741704465136555704892305778990135372102536062894562563276262214577412718809486927099335592389738274885489763180265965979307946985076553655150801015460562390110591116314577342129428948125628652920888953113035430695266068561555430625838708071525177473818504443235865286425844121249131224884446319706751514470877399971016846309350470530946912265538006630007426148319051005651380666487927822055512843507640953140241840642307576046510670885544139785334917160790543419837493685757207728367033670341926949999871836035863668268799991775100504029819699994504601361001923802970500309000153571792515094695680465856546185438131701695398744943227800402434205354777198026440589905316784883169696069308606898141586762679108348449432138678704926531582676699435729852072478940162537552542506500860873688858132949630158491636497619594179824281819078014797286447665038055317014582962202888495415148017704935604641765113382754300503654232918397152834423174985722029833913091961053704920284880673708359553681084005020875817115272253095415263599443584274310696406993516991434684462424595401889807349910564089992996264827706647944047179346516499091460944175869771594080615846734051904312906513002175345676140571230320183599932791202505395224467892768247718446297086009095563584569893815855433688690719027007474515741596547599633250618419809101826403320368284327034064678345459451390869797425283166383692915283983340968342809198471328423323970329553651886838076263413281825873246453850031429937297605585001260113209119626887363383671289810658415737621420586205006787195174624146669954648673470216519991497998603750792698382574972003699102738055209972419419122072749462684832538930287795042216256465631726286995736271913461296393234278003061176593105528211417504597590173952895231408898637583735281531137206767739497897080326512554157793384322808677776550524497473718358675643235523506047516207995627936699883986284502050987050713430151773673926129104240186505949890316722667039139059866480363125206666803133051577118092279076296345166131004326861022948327500291026120318946228495628209019823261392623003485330150807516025743705260536290454347280520124305204166681992960610065779340880092948200460159960674899845439921151318799566548330867026588320193859124874853378349990320718712850420367112938438351116911135358807718947174433015337395821028189238125767561156246296828630350433807344134713694972633646457498664854095491671137847992430301146027361427646512505415410499183356882968552508663410890417053955725517527219969021598970776126281849544063067670129482713813196070651674850556076561878749121814075722447028959312365968269868367330473624113898895174209893608747767776885241677438673454234681253327321035944749335261403080861481434301058907211778597044039462517581390874054849118185564619250732822872440904287389914668574512429430231992478206722968958752995813937923642277457600907051515761984363897958034852497765831251124743878469428435200148478824869161031048573650014579478806296909040024631106663738923892907715104296443821161311436618617481220001019594368854469819505088079888604773292127761597361215843330284914744161318289117602321068481041715905582828088163734654672442977326242559496500144029589523749402200021737174029168370793009261496204645138112271230384415921752229127348606995281986000743914660266827892702435882072586145677906205417779753405306478630859256423933445093865212759070163170068259509518902864789327704035601995289792180752126339853035956372974212330375657773393068724910685402649387201408232668258525345856700278634696222168790978626863058549545040295712873650792157415505976802207516684003626652394960746559834530322265714802292639307327526624675073367651379743085244870997625229453785684474886768449442021723507524075512954165442152078561102089826782192713941838024178458262157036052252879894142540430461038070260414299525146326090571361559529866822597984074138572152974575559473942642201629081520469045044437668938635843947964623098497115305129447452077313358297855099197233274261030990243217455669792630887544783457948516912681360792815517909230940268129409949576821316092761507695649670381205158511215200558633923334236832590961101721576665860874199579927590216784428388331973199532448067339050320514195934301645856173389778873909506422431769361119533289702253680169812351599954933387972307033251834307844590753342799561172475349849990622637663836995896041485180615647755383156323744362309795868037325949948803802386375077001884264991614667903770726598792077581244228734154547289287746304278272894170433572948085266983900021944945996924319032946452612005661548109427827232824595261805952535460547111781039563886309002563678005013543348472990327155983972684538565933623541375169229155805422249621815021502545188973896419663580988323570810989530445192984641959541162801214241632519643095230463254175312272921655383721737985167249799500765331775934593714495260255554331653809056680576960499588163575697624189232259232708323892325625918390058607013491466002529583447596304797746369020995069688696034026734644270258656665169365723484313996160321766535357569062498425622092813483083700889052058976261576651754652507117805015010513082702565977872776605646133543736450083984504738096974575127094711789594918808506005455414470439555672022427320370469803126291789174276925295395883225118885503924931951017894455855708070040546868337276171750536613249091064617348850318835459341659895069719383259013734516931237462024256232005695510946434216572119968799899941871560310908554652846200358848054210863127686678476514870916085288740509028654304356593009151009225518811531728367990944430169908443848035608046639596413630929421500276256183944168811746030068413341929548718570721136305474439897776259575374623050826100792880571249879497746701076541385486468345079668296140466170646252679528606195203382126823264743211058060093893890764623040143759301443742172966645717604328303720304062722952975388182327622345205466803782545591910939921430394449567017104310747690227827204988082509536335712947744419616225901316555729784413878088804472614475732046142495259171871218853827619107953846432114554569729481335693678661044132300464075441473199813268515258055238437176710967687017137589602938500972100083366691590734218296899688059204266033873002384913094203308186442962399748690315676346195044255465007557124773037364682587207794606420185486663289849321945538100557400047887573623542698614858745273271830874665518639671963198709149599956094344775032063917037195928800804984105397300849789081789547147139332951196723019037933693682846170520128907323852784167781517669265539543277398902649149328245896834851097225024853760122144667161013175963871966563380296283581044545145106605714226666350302714212559581359099166818575198881172925852354863101462072595613621816058480444406774664583068656723189475759547717111005026449909035205534587294712676303816996246860775249116255926011202703269718340286799634698643164422474861683064117574269107485796220657943855168358861329368723310278960005797955415467272966842503549059225881089070655372036357973110672112016692418708429725153784149094565237716053883180251274414009106199333017563777814731087881895024801076456589405389292656552165451185629297179615589536118992999960266175482135871877148193400377032791653350543150407039356932340053544549177371670090912865015257278095567898845893503478144715793684603132510926902165086834571055041599016272178854842722850561784984669547026161087918174692228028587684030206750355048459467405602932597753900263422135946274823046952252901239472012176441896836331045735504642353329751387265993189608634825351937936641942209896987847912449386851884620110677214105035169220545093195146853815112160546044435429321284149845805954707619220602205165990658127827446113723158557372161514650873356641428826257392876996703633765368655204799510866468145376635052435794700961001513553971668700332052958225410378522623774677769975602187735178482600763308848834506570613236460508421591701454661958609688839193503105179112103456901112728107513778014204805799798455448168596227637022647580645857404893138285812889904954902989786356414874779179042085808640801031774943942482297806250666005974026950049891922592269805734795350770351349160596678111712486731213969198434064869180479892505930286737916699547354498218120382541051785903848627608293871179576851893806706300513612565987680258294289687137705660968061924739425288398655382431322328600724557081044692481715436247590709348981065365365401247493254930182561091278100140012319487567382866224620118993769758904330086653893215912546374499281204501197860369551477840792482193371748925663412712998509169427595802003879080688096419500577396484889709345796334088603707063361680833122082309180029526591296046007875703536047843004298701556723803881589636929248635981847773500998342403497129045531530315984229695668595716475451187001845862203085279656275087383869074014601365321938543789099166203037899805330929966547141397311257754108452572606293066547510238007916266245906270679516388503402632981076667574379332591843964934792212390106088545472206307189608988442078251778369812597200868192840535669271638286238126465844171899959643489323765629097116197291919419022351066361877677488626421795596972699942530282930986769465056657055526935229343641282867140202754975937410204059192805833229277952734899309266379502195260619391451101294205267116082387640389617632663341292363162017028101646904023432943442135825739522956969326087646135063402420673462041210812688014459971353156854844227555350923694515885465457573132646963280066855834505213213889447375531075605232485523066046036415205997679552125614136494940144928008126666910088763469116949044059822061087249079996074286906788679080443275734565452498974064601508814399983065524822760457193380222164686921576134807028617048208327658814876876378278456642953477848839595029533391715485881508343334381452739158547810356388952626245411967412814800167424345888162144013958175234406090798824269966207364624050030744965999792376092319306155486383246967631106072226882432075115713450708299593198924610765390118958075162125159100188379704122469303388912736942233991073614959369922661413491024595280029318743325916400447021581496736348382494917509568859325273346410771376786227489438445947433569054050738737475061679015919425708585713078096004662973748337066843346137540012517581058298077008014540211510935692195461251552696457462485814356933365024896890895307839750653074574913588101825049799180003350969463548220803286823982862868459895328883768830214471525587046083952780334390646560070118931630179590130329964315103101622228792583615594781207962418605141443872995031007443089869323849798678797061340132560887796903892993213459430062762932998092413774900944353377742730008690959668900600667703315926281233917728137977543659612973127978660649325309255247963275633660546454245239301160965681887357341845522715591748468249307381046237212200837238404278444122522057912929080480060836721364195909377614271484218892967844163229587553436383410342431952623102372309302297607740899446766342065816017846700140373900060700723008440088872333769644219938712923102126200070240451820641035767738415119081599683448471879008537839162699225027164803892038169465141499668353243531497838901276855405655397698625356843987394722181573375403932940446598559888462992704434462176927009337179846949274112919014463716327063794967270561435766065675992393472370291937477751250853578934628063135219153369761837501952279486592792470340161652182751233882059060041276301268860702403744448801961330159619608792131101504157932996585476016835010715827949398870914207894940174934910535108394373496900930964890632619906760146857379165289499704851820745224357128750861609276173083103887082314326839506755215238590969034820751603183958369514037515147799112802434479352821805054579765466721755304018313886393861217171760215220824739966994848415948484108255314585564718107257620815632019067593787849745677611453735758501233537689939700353836772775158941567265075712152095141450576820998950327917839101201897016773551422495661094114001592245011386206141063258820231525288557713258228641181611553600396998121952134338899768454650686169408704806661440340866679649512956173793173739312262909788452018771992721751125388231851482394689062007641667315017368555098170607555282797631033092230766149305173480627985806487146297491411828270367403748076743443514677776820255606952543821132776654848696083811582661913355787920415428179714653961190506943566559801904930443942877822413265068514308172167353541266671267051989598699024563827067657036880407499817744157315299756612542310883331551525866386557876060594285151137054778874278846688013702416661745146097687272473127410300279287036891208354679500602845487616690444456879459857521110779771060932058109506315669129059704202957039264518295884501400463913252614203015435350849500826595680840263266550906418662594837788630062611677701085128035134598204024902205210915383633434392713004009423838183009553612076723980556595744124551851728767042074671280533105360309018098613460566376184636198943753883806901285596264547860667660473543391232897155487316571387493128418581862635669378044309982880810282352681610554702851090411045033073836869915753870838146082558618192544393191028847785174885255509927175787148354531420552429276750667934324960690543924219000021093168090717265307971147604918917367616152915458687283096833446495969708841276794944616158274295993033283189319142925253631150027316816959403284696163481129313424399242667060499484419119059026176730922521562575179464431232630155291079253981460690186254360424563812178273048074322735879903113631466252366285085337543723522539765796104473947977933980612406530766719591834213731804316968797565641187317999070653263594221297397353685612876909789071770975905107241783163981565208079420527956545667805222977043956917150262220203008833774728990490515457137890737438167952996670001571525436050358683824704507403148712672796223600676374769496667782835532080821734853977170304170311364693769042132435308535525455828806204866201359532445901262455878048869488899148647496667117371207527257852039840506133367558775958693451002321109822065585503619467205321455295446982131613863622705694696928494182873150182686734227418633496792294201272381140774156964828229107456693771479963089003616226234100049638986176030268551888855646366240054252188428988910733531525604666598334123390629529133106852722464934990403625464669049250545698936606316698409463932328441685244517850097828516535339301625961800411795591178224858399765884475651830467690977576574575489839041593780168266529722702970338568799740037787208132019834631231267585053481473245543504433371752610005628178252322752468781652736968115809295002325782461805864466740246801355628497658221333790487780002434327787094893760871962029444963003351681327216774445787587010514214509943314657059349672219071147941055898193447595286316153961582459875182751191950503080166143254266473618991000072842841495909744492258992470207641152527588336142136881299837017726931149304532853798703981415762421654321891995758503989542712815320207877729547836903103882768373142206011689331255125719561093403665081717858571278041085438562996395712747130965764183256967932616410019540761767389196633209440231882284033149298395634525595234455130797315909088095365387108169572697442597823537558022234420623856986742260450654103861232164570685495565763343854466589362425072828549347765023696666665942285659840821109581122505832838293121667065986335227643020749730812364730010340594321344892619160377552200833501410666658975165756788982708290516944021216453142703945448750991622321017392641535747201572095105152526642474690432052609738200297595850365997235207868637188875672751437070326990049337260135640944776648068752910700280022320023784694696865782891541115897716332146019884283525247852982491797189080753185627834791214240223813451585030749725682929821795582840006737693470834104686195254213215911138614940730468932531182284205970199137982474814863911154141610060113756579171152202341692177243090428653704723387559589469008048799809202446869174603484153974713989830021285852284063742774815633474769328009563442671892948270398906994652652725451286867686167946401053568732258653942921177389268881011056880425848594429670526091805114947498300750731732810553535733906810788385326316253037822852895144438234120090177225620294076839302816689637454992382698828750790896366564435703896547736278025843972002354562111750743448746041954050840913496115754391701650319713389344744877783988876253796077073660250390334585269616932637919464937125974297429514204852043011533604800476584940859089826189008293074770572388199090623376621671683115504658701502589362285199930655917039580261943894488655929847398853562778906769579567199554500827445467610422564040974305871155503643089947943984804402507545090906581688412967668977687434535877967755448158175891987510006975909539711041400691181350203135674298507455792615726111687246483564931698091483316688844449395088351701902673788774815328573166638556984507328176660711966798683181691584953611184241236992609077738029794162607056799608291772552808244655848819604977542100234047220721257320333074694080582075228572559871439026881119334481810130024305681930231678055654617428790838171061561394212138552094692231191904114838354693378092817845881429892072681288257068858312518934965046430519536975341818300456524504601772249528973287575838650385500537552879630143254335752553972359850842939812401205487429260803044203882032766655353621210487225224809988543453248114079925082822879933500592374419397556805961979534436623445757946967417009811976232581312971071532565267721976419590620275666990170566084379212314481147212388646738064940589178217678845394491858459620412938916615522580071064402284046362789153915850056939523581907552678901027895598626819193964191782904343805157104374576581069861828347686796688265041008016590827967319312442981295115139091653532551245483880549264835099926913213841032394532236558825728302408413706075723635323758050121098253714850935095496566381178581106431217266029266572264211838073983487389830358979639303962257465949474510978241162935844631746194143790986122242061174197883393756968440056310119276056004731087184169348218630093159332325206155024265947183151517260235526644318228583932344964654174548676857561905314558237714723057116472701588049381398342941192136206073842024308846013566054677262351421890921003218286145170446043801423947975983488646108202955579772981834844679146995723265658314575694169272046709915515711250858439056475472204360126543576802701237052957006942772116446255257530881878466278501458468222050433217635884504118665407410950870836400480722818811824171959305249375063593610646711712077604545630262981748304314137757477181972067087944525762871687158492356756317734997291163522953394555559124206003740342470303286319249462224477805492271580625444390551346804151320951788547165215637230409372576923147079998896333533253633845724682370349977486116389931839274518442879200426216724198497431104437943773409006373340159759743728846095948969722390181176051448270721524738078801603970444432475444336631840634809264531598407859687895383669168760418692805497886540478189065839635218012704744445747339641834586959598945524886520705112923216753871590930245387652791859905466579975491570310291454806881187676189668853587194123185623903075932828420904100199248134043764465852685249534184002865434470481108137380358225414438503986244164051468724370391114646309094865859533534346654393974005574142563269376566626939275417471755504701555785931251733946501000881669660796125266314633991437582565008830890112261240589588882298435869013272130431473258969580451950923228599179754215937160625770520349937540060197620578853697214836066531214530748553370967464694621323659755024635657488443987587981468853362643389649583677206441396580817196460837241571082363140943295046831452441906249254580104268041655217407586309671026231094246926691529710973633192129986741105963246122687526267097190413410038241131499550775549325849314971449973910811659858392505802493551963459723477056478189215085127601631067613106896688579090221952751083154172265152938927022332792092659146849082344596510650622587996563860053288970012424260034704154164816038570305259044391357461802886789558392378724462669357991521123626374183152104094178484271954990475801983187948561195485362844259177414094649829649761813364861550617942652230576747351099758459814456311748708115229908483839397399418296484913458365996785268058443820167199018140211775121862832785670416224004505397479889098304907120019557511524415427057047500080086368496249933721834118113733351674204733551095719227320154781914207179402498951108615253607154499322488752735183993463233879699459830894211712714817377204734436311906427876089384847569964669856303448253532543863201124228678327856980782213800062632585080316021579698231309916624639705375073995946400318284196843311741542945548815952317904170012698387238304567669668078426468062623904163728022440986941172470130028499079918654408143675574169732488218476961546328324365675497256002192885958819259215772595840945693653618470563935691490288999210652948117719910719914366656776238375565521661401660317275021074873054505182884128530397848086295174954074711188491355990943554263489902298984322879466344393605863236493375863844836575670331700879480534464392298929855002474144801447670255826054063517335727791900709905823052978481338665551374801923128825133333523784396434936953618577544496943517876020645025107718514689840462120603151179449916662293623264365153165756165051876063247119487260954623150714240568500929913690536842303581015968988658559081523634335820727473335190710910397830764776208051903376378345856700006083010637781991507012196001211652121800839365176846266965470506025825818042599158166995766516141270428458345553821545736022986829589075053496537338534810271734255342230097057576090192717807598176876910040390663253972536849294412576996533352426251427939912676541869313867894277041264435991905159308895001772775604223925795645544374832373864442648948671528073465543389837007563448338686082947938253269844666657046280151329458394404510606132416078109311574540448906400263378068189490258852109929150886941556845349224129048289508969903706876715435123209467720469479624102372124345350960519174970596246234306253771184098046030435815999342553421414002693287568045872623968799235535190189042638297634081333537383357069113042794757919757356596506093268701801065445560115030937386112551407043099127750065085446311362197296686874474364750302073018039845076374297214944710813698797297340882511629675361347554280865712607336083049981233177230320913296811599703599691991240670848869908867376984525831364888809229960077946699719812091457713848156866364025868132648154809943281364274376640262877843767849732686404263921616360013480354556546581373802007800884220400972273532574421110699345083222118641153055835938649711940301702163643607625011207256139447722778829050285291747752273408947392650547135361656992416983677474975495355615408319808559328360314026403992209895276605106619731258914687232866225665130130859771717652955462261323445038519029212212201838470841277749431319811571307813354920779502263825249178476493981850048429819365994408915423218713516177018151581241583916063600083374740534620954097798095373067047333299870210971853476656426700669586217875846467270421811590217689086568082966817413521437568824485718526126799356987005888629848818941843563538325034825170519646609512178014533926688363035731634850737310866527885467719264170036874703585458288957036547312261120061168972698369657433704709169908067588168422811301365988130402749588513297250745744070225576656930211944891791974793940452283236342135139072250397984943824816097050642548307385433113392147148742484963151200327546283311564581526267036245844204227083743970461324970887707065523428892382273544846488581933663478567073314474513788898184884507929311155122582561825287525509108340771257330994050024870787586922570227484641926767544322706240665891854969929627508288311069217620629795952010016047864911074180539276079847249040447943280902152494705130844196245903919355009419171639329899568126533985188606635120563046524177978629679234089571888312212187051375822808114507684039086483294114005931860427326253870844458376244475217154923513598560012454088532913220350791888626668471940552073858832014518933635731227116913728562141608676686854215467818423009578435972082999466300159640024075782041457459741940484444992252124246347811497514736037308188218456308467855117589594327713261150563537858765132582924867326208257356442319038356653032014102959925019767777775987167508015555211944016576488577699157848754504362078982424607117882147322522889906184172739723932701688354987985726474986864960736954637952119911211965449838161808786114819652233511813363428904824972167404460671298350694113380683612759859643743111446171921683027070766596970753518873783580679218752348113315185912477520912960103051532288705787201639796234971977292877177992216789585588345621491560000182970889594614156529282196831343901329874982244407298965675607030828134847410003574848556374614904662179228297834241588538980798959425997280922909398327326005676836161509608166447366120259119886074107288869010399085979422165374564412368562236507498855931063841377020784643105483139324151872084455593511124476350830342831199469616905500281301635300165786020776144903845985896431017315367089742860416678895500247463252852135876982137041026602000556272063206647088714893486349587192147369888563549056070462268353494758390290002102221744248658507246713197051297244400470972557671996630310490909143791108706276094786713433933329081944106220094117356932653645506457086159327273449698688678588975488138528597829050872203317968787698501357500942272102419972438508191071524920236176835964909388211031349192956691186507854459275303847107683113158458085684449264218981449899728090551794603930412990676080599310772391048785172321737305880448107635817736899236704338732247476220061929202991683599989840443780715893495832823033078486139765745662210799889480044427719756694749999621548436924353699809720802279036625304669461051293109070846550184539620187939767034183701527542089007786094017625444658630917710537169992554544040678279945296295544045569597850546195495791685536996730795093316418507651360912340293608807593626611513530271328131362850973802203266695591703687484052858762135084073543881958431418494992796367637497287510132891955921850867095470494635580192294757664841428502805821438347360068075247138695195952607697937482421777192253049533560477822052871490160317811775876754596716555539113929348151834985119549837051279147346389072419860125731567378700333130514206574119598962170128325270203935280452292713084221253188871369870935636453798624943319089178772102735122212917646179983022552468322503592691347606300819777827297992430638230747045644306130694262660363963861613769407592902839650374453743250267999406100651185679251617748625254821045428153594449915517249181295635369292782887642485484253607378131954704537071106621477228487107628137577675642025898153889335648184128437456033884825181587788758970433056173404345016118183077864237318826389805572410822266001119644754651753625324509786831817980556911690133605350752228941641812543595152398133168849972296888123174092311569005908927252018961169037239579090201637932531398509899542232333206359148508712310111676946241603506510460569153837829437697442822098001960177022333678435829287254764061114951790928417299260640562646392440220947153269858946782391924096392287401514371582982187248557330769156482237948832327592896165201101761362212747005117820328786306514273981807479297433032286712561728671917686652041973802852979828027799720615338656480765385916779637613012532292348374585999374770176882666675176142451909358590781356112437398786419761374237910332858184273930732997868218642674243732029959556693462431800756491741647789698152770419237355322957427682768576394103578708408812970328128964078305921951161765531154141218816852182334161012131034272983784921200284971065562655437150849227342166406145172337963323424267586478214062585732824489031462358615118161163445421373020285747969707777368350157832005824214867427362542283817211627713701139628591762962044901207903552365140897666386479380466233484952956085002008743237221615353480668997686134989778896144922222290441737381071913712829858348719949363916210664864776263412079256432842840399549485704821440758673458958442221364603496822290095894320989900905282574807232716666879950996447955194166326496013466338292842029553661097225766060848850775712430142668408818271002356555887224119223784270524502819780028120311763600646522385061872071838875161008358880969528239211027576360347880747289581104690719850782275020316509907633704594582263305187727024285663027384981520399788219101150039340055729414372021123841207185481604182217644730741831145357858153455306173044949750724025433407062732339943091203914219662035401458714362929474153232549923951665512788086682029212109837581568321911583642393060066476936915424814273837337806543664361310732183908357631403412145043795554242138864575679802909703248246073857774987772311198887911671372687333826166376765750739772321327475417603983870249492154469421172095033107868566026167313610881949304304495738875558033525707368314462602259971481634754543753400421411785850879100728030581954254862064138676689121444847208208224953777441015669616963919628049420198306955389779943713755822821942507534785054063970610408926210829885058063118205533406886520927776979332736469075375100819295397105278417947613681629769812508871262903480664601588308205773067222896260418127431305521759044963590358295078050567482890730196836446444769870488692322552362286540426239573560354384967571087626272926215085020967824604915206664664129441209630613956672783297517573626479710742381042826536211183779422243586964664461352872446902222253451203947840479852074563553462424050095528073633257592247870876318571314616985212461127627012270652038163790668317269959329412538060089562440324996634705150711971914359341954464421367886750651752972860956797264612446280677373806010937016737343495947553113529837362430502719216577707846269974520653692435803913033578626594337626433201130526278606198908872127467834018737083058679888827277854930312377629161008486355985869898011880007031932680113777510143981581010151465179166073046625715786606537437949770291630164865744980697791905218661201568265731300511163921885111635736496550046177070071575143515943378252216777421094399376216107443733483075349268925779331939711216321826722431629796521027145285275955484498533461769818822117006471700556448462782282212374486835363269326708205730444573108068656354668557533727369741429109412523456550095832333350680228347876258644740187067066331203071483925982030173138375817577880215096480689201425223506287741125312703081998175368347364377647115368995538839558941805146833299328205604580320664321386332745285066259679946242682913591259993772631485927848040366584784407480750734406766078125105708795361188142301250984916063678599634772704596763067071835760981660658964994217653090287816402370608247995931296887318945680770183039098583930793316314273315170620378823981547452991287647293054005356761358378651225391219636265553807263633577296328844160237698742752630834401144077871636035243483986671469472701581765555350807187911230454607248643330989513537753853157542020408426771476752906776852476382655877573894442536353280942853690123272675194488717078678581852986735932457634643489227796505520501809998898706279838947288617247155500698779173801996121280639218548977489185719879378897992905166564865961503179045004258162200687039216991930803882487884787710506615214857714411813038366698728304338510552936254453697964563597857529440924922369080867416215031415798664133571580913714272715554375387794332408257890166840865253340662515273855627849016341663462204301925147465223158401370666308592872362213332290516887431285290975350852921937179291225290156380837813729577565860907999665456415714200161929102470165490058590262821716004281281203125825538098168394415159721328176145251257935040088051899115421783776527186509795268956860975889288690930505716974458440448311483035133883056601866838981150868314342053090420330614108393860529356472250965892382221536056063959190434334803868324198350670720463951564236573780161288732679626648259960656350009365719300229427442598891735521578895282018448175587273502537287525752151833522609815515114630265685018142478264033838388092274601089336168560444666810299711974411116202937854528109228196092088547998177537548979072564637795022909633706651524068526884270061822143813191997414341780764147777501019826540792950063734031918363609037649090982969947685992235953745287621849495573046397965710091593842122406530123066742250716938487915220880491104548275465698595063470139374066804592163748588224485775222379670085499322250823815292750554100717442825386090458327808941845668995453063968938713643440064800645726236047474616699839425572549206988405640694124743565093501431302442828033985778542753743573844399807632773656721950816141653480475841807974185076870987610129520360467910912643775889076510922637376830915261391673185477365576819149433486117667719999597933043787346895535033874002838058319601625637595187610929440578492262259664557993300799954021097137617671667112900878143546016315445897207673296170914309128974068647234516244924924715341270087668548073490740614628180858373213553756359203647419101780937534370348343630373808778148074829805771935424904551180709091015712729492548938295027208521711056647447066050917203377258346262892523615163393647575781981607530062036390970811203480509848123112484802447764444560480496313443488255915378968051887494720292763857503624678311490964201478930160942861591424234628553716515728827279089927603117142813438943808867502585954199548404096744557218220466422797510377201596294930083945959105108508090772416124327480558421091767148104617646507525475627968620350743591498556860324035365577462544322357131873940615334700066540040009616110087900007695852237984460189901432292877194701999962793055365129080904509435769717839155693059753199159153426907505732786407943147473043977044579436248956961420831179442436638056903954971293614923044915106164793262263163490591852749369649952585533393978053785399701348954294760011280312737039393391236573324548053341226455740072161289645601878663069348699790789270163576407711791567281772836314718110394202776060407889670983839206422749447036708080840566780040564630407324923312181636286057847414652218528048545403021065175940951487542187014715407774420354236499337024577195451063404279227843344525177703028625658739716846743694883767708544350013766158694246769602506971015878118353664752084039174519762637891214227496299508227306896273256274918395926437027881299489290513557203581114823864854386416190337428417523063519947661181229594003542478386120328948329959023973788633212730522849786944475899241512579284139780212752699696179358704628661402750357186624082082181843459467667666053045609588891383503880432837584679222425277439830403213932447150990816808423835981169925243819630723594489985984105521794235605214481128902792373352783694295168328555308949043837908184695836959792496336349768253373503337552253474956466757314602247580789388354521386099294766093649071539459320396072469803039324113132571616761664593718498029749167704862265087622000781081594078191918504265352000342188923810075456614917950799988815838815888468008422336938740610481008217107289031225309124464444086625990645931463011662296007978389237351091159464076462373719659737939384604133561158483539313601351618187393502418080183199847692535132180871670381705818047445509255316454484334856474973215279682442556706947933926999255630483984066733594188094334995346744604935597898450579948722702775998182955413537551114201984537030457769277515049787320508694277868960348635652399904916399897408439056980493492714246666334894723070007431815893555377075871419448014019234494217690065355998592031292172052199903168182882883634944883644413401770686429113106961468094294948211323695914787402954517257606921130658364439258071684110676471373935397420391447576847931254837420833338205922816621574369597006335255533862427931082838974898255683277285229498373372438743579908036321039370721706267878576173776816137088417102335159919775055531402162748705625912835500647550686821015020357018298859369826279679446871012069925349119672585532436829773097345854608440298057460842909257548257117854966292578354638285682079359014416312974455061789511098081247404618127254308380797782796285414534909164342184659523578272744813287272597228196875472005898214466988048594151474673543524924091081501663269100143987766574541591387949492224121090271857347785476838917307082829793766279243310589928174060996247078055606821592948321736123804704172900390919489470132210882688357051152919089928735893155989356064585719235321058855413513374216114615771462873039428515261839298740727816584907936281492355515133704422668239489904508889047744743163149855657713882061637336858272987334019165909952398680249305896009075441567228349762833407665430688268078718222553125487090466356860952179741713501527709232936473478731192734116552876282618963650729479570129854811274502001796964126316995748425258542056364261062093049294557392781886656715427757487301884386620921826870590126452662050022711128570827328505109314346030927621989398349126851372637350235881167689979982191656407221565739791182126242752041945874229337164607144976519206378461469928435846469275222204856043246051659400283034908636279424948438130670568468547843188949884241106870867543456994425817323882108634287101455114512336808853814512792793798114553883737290341661452035738113569213007311363108251919288613908649065115688190523409996617856304723888311909759132492306532829149265414202831273855972973854156248320257498331759215574102631438063597209818303580650878445545719158259339734707438127379120763545658307153868399001378539583289573344809582395936887347575074458708028007014216805651724454857334568762474817016905690532760187895915147380289764325478024548047060015711719873353498437358623112666602712391857704090648185960270835216313325854792144737076154796468467262808264330894730462261402405176016893518353370745377032694785444486935232173975953804513567463985297101995770596787685709697500309450336974836712575306699610788361525355663395599280733291789233831922410404771730168888914681860551409811924805689163365962506549209572997180029997334381881340916099906626292667046721892517089324659244086528261964995547268159194755279039656770730559739631648749873365202737535778060216973710214568866795248030392385365687776030119608160592648468557402817442985561063656443583649088864850761192732339125486729627433233577738864726540492464754849912151401369288383194588992058422903700103995488031543992609712055109092520816674751723673992233892223525065502543490824288129388946314545503845484750670809325970289840686197782825677057774926041182493133792625988772853833104393005373045596754065887072530654590994261995644882246500959937597672234398499472291016110462270058100532350311257848770201590123959146295901139714438227128637938565016517362577654505389963352401636674750280713478295609068562391775202110028100674456246142244428714944391112551980806178295831828184957244758196905617400674912609771954931487111690334942304742427938467842780571308512997776077922435992514037086149061087717405533452783481252872048552681803840142151356947843385894713245540680221492767522067873388317202012651757003118555878612275114434559281777182883952175587118152957838674872122047389493718737233421339720649324605651981644115991154548038728330105388470982778140119742739986547562371670185871833278696055723571912001324419926741506772243055955814015776267539580320427947637100930922667579083886296353545776701490365503395404442435512034090877272177336434079486497117260040932660776732190683996006226035162359555867703533000361331871622811624096219690433402874216994725226744717304951630917607492031234533970123753029508639922988016152169839456378935709687718077627146046744393079049781082971677484148274886571548607348631372302754815870280227358515548032170060924484518870369405343902156758673468897206248681812895117499672331100112295637804467317913874247705790511662433259814726688580032779489764140522831753625464744460359951714975591103602175557229105498769113625570225316817655927901305094014752578264412212673294280019948776910120117584636688172464924871815182703261087579336662286050626073200804652828705578949406007309976838696359342386852252556669898145254341606351278550311802741004648569488429481412082358796255747854904211883175443945265879293707321696897841339038590363565456175514368421433506504797682632379301524532551352366220004206208757019484664639958387697855796358573140221212417496419957673729965487616233023495074195194636308850927326934149456137676955773849478114202665900871758429848742412586802617017028658311734259690963438078667729478843827220655053338971656171160947681744598409564154912591629209578880318671892111321232088737995534237584423101476264280023938925050348833275353305972902182001646184094584173004173004778409311316796592721327388390996286690227981261735227007374033662924320647378184195574391875691255406434295904054136621569846571988728807532567453876014238989966560873125239532384548004570042673461539172408116008959288123702638673859324025140908536417331817282645845952027792489735464994527699928180959732879115178673277005618249888130510342484681492656554429988413113457840457277188584422233613353676653829648182860788595556934242660108321988839989413322492621725038994166722431766917308038416279892458960091528205785005985771512872914201110430105955280966559003099235242267069530122650223415868146574816543739081690388640319449663088626998208010069485669443716478681444844926825125338838495952263204110245912450739820568831812246854261088261171375830872916054515618332660180497202653015136616423307817790990187960324422698562750313482585300368483011273007987692270061188665532727037505695347400433329311814682842965125434854633003341479583701239772562667150713796334010137899463153431814128635834387901114506242996432809758811964232120663588066728253357761630014922931251261431032266278768483775240758720002134598170617908079027949285144016895825301424644101371793663797682002362423483754022577561169373145621354858766155387347727361276696111442113078384683364664700322025146948321752667943601813161121277825681438360470883494468520484148806960007872803587629835374647984821177686327813620960122334266717099880831654036988921523727789951793720805098333376793857253603808036765032840414272813695633635459280777240307325767716961678556185155116500395369741791075349325894586482548904497076853764038552872487156313914587756663304445620173633902871244874916944168523447364468258558848876323110095963261754421837001803543116017430132001840105515160039633753521959159081188554768175205476276673657926269824307878844159915567675720076809868940668143400167674810157645317190335616306948020949323346030456069948020462576001489258566606612915960218341702763667219660331829842445089155483975116793345065742663044922142757287744950090316242721611778491541658997581727327870986335570764965486548322767480317139803136129070816508323073624211362359951210093515657735146156501015519801579935734415782086741708198830228487560510752308974553243933935139984129684706449369802115166337123668728832646005593091432881186015145508874701584168814337281448648579287455743198853913201487440935590864945796119400641322553767177332856349575292207028483556559160032228032467062186130642740181203629943292247066514102443140447597974842451185504274910277931900045131888948082658460126178616298082309098821478537379259958534908050623950303433318056149488328971830001500696663077472796220411691978150299930041186810289078937284770592639542647457819623488461329837168308632352976521259696736763762162624734728321444212488739703297826024661852996938098488307334532160771792023698135249511525679534690900987555866950097585954938291816312398753854238508201469617444700776980482344036221079501356265755255981704920795428913493268279340364337938623379588617563003763135005248604060925691285298788510376859147455511272602846058114835424277100513667797480467277146417148505938182603030892060984238909883225387972493819102603989286774011755004135325401847648304011258012945390916593942691299415689210079041449193303194951499263373337873647950936761339758826188332065282520730863366987429612036237876623444759795695340808684036789630424002655834448423042136764081830812862148712980506694593873636751743904471299979241343479395037149518092284561495989792240838051495196869833343648281645310283564397241430269106081563122090826922975107558470704699780350694438887042714520964931923079444615283039987572133792135165750858884880388463290648464294756848051632447761750272036383286425311806026388603554452809522314100231278777468077305535773941185375617473718110436461907791367525891047164084608530003821486824478561859397084181102020066238139561154885336907471808858701289730923540943128691389691135167083369840883447818967911635511679585669442753891451425245343864633870853056702433693047405356240414674488196389271208283650392544471225824578324046526786461553369279658164657669073612127084673513639691118349766719542129727364991892864695902930609122282083763342996986636649377605749860055831545371704633883663489672954414584001171124347130049427604504662767812850979177717181511419401618163674132855383735454645186411845133615107369146925678771584151448607860469792334604700060052883550495876992278969121645306561324815236067187020737018731076185804055839093673672458357366043973720517866741901063489529166414194991216158082162046446450025444629337799318595316536401423971037452253128573908969610902930276349241684597682473848232762322195022023802505824774397827710962053689723931731137941234415975637261410172627816465358464898586477711144128838071073068040650997323534182949665276069826641954327320835860122304097181724813194628099171180096003592895636829420529455731771186822977164284481773746348134983814334756174887177296198636237642486618347383608482728612599103980875731427861853725174729398575460599860876818252353495344418666256193053360360761327216978914893168749640744912546188607304485097406024678258201323407766756887836529236109576204598161434691777121429934800099742546515771431985152109649101794960638448808793578939629883562635673085668304736351914414558735007464654367195179840220210039665762025125003613311818742797944694033542716994776852684296645020612686220690134204644432987119276129615701350984654300176831158453928636033390356303772990816520289322157693884601730714397599256597316694245321149209987642171731771961305155724579320077346220187902215421660625392762541928042059964114312776042007819931691661741153094031567115985509815506037522750597515508610175054457960364756859392289996322039083165300046568522496038840014930094489829016147763642969971312830100016876814371415164791428152637169694148744101736157236758208434231281039085989120596657798987676293628574762785680304447523128448820464027776271379046385813231862078137834914442554091426219518584134734710201437654744236825277635250370917725933131153139690420214402036559240725395729014880916688036499919249110777235541413805541506776595169806679456759608151817737243236214893692325148926426732599200050129787460015031826666627031278527787312694459606729230271616204243600295983889230606070281761654599746950056407548993982068193572312941930779458631417303990861386390917610311986338650091193124296531238839344960710793552668521469756848797875147361839525304899394372621711042652097808103937719745735420183231694206627422498425215016929663549922194512053137567517629561320593183655543462547230995522828613977295371428847506676876296075313937032096374869214807593090636561954033050642107937514597721967278432930171770080910678617397832215751681930072682524464141940662088807293091150239413762586792339629598125899344455262969521292312478046917881728418037916788378110357777674284145693928049882717190671235367722817308584434298830231967542528824859305718501935313469678350731652081462445594643118000810075675891393750149608681788832495867459495887477595974585047067622876925673094747821259309800200894195864231097080475534819101291697508786725122451520178876088839192635936549621576994706867235252195941967976894297746851490510019584447724390240762030104134833063991821100267514292008011822447881746427116679451031368481018120016862746681853671018463801785807888449064225297558003786879649159759345261233522044383335176065372024989715181370598958768883471117155782471960726049653568613681545314662902958839468169163562348684764637213357254383585447994104007553534965812516465843702051452748636199412800928348440380233762695751051022360597653284486345640286514456672331435107732710920379258589517944175727819516940351712891152382498154489727516943419356374463367007507523813560107732019773496693047276406062518284567094220938782700375104110680745328309098073151104049960397681439493327258679996020002624647037411837396103710882679761627399323802972869169383643343654707281723593995392598018238283374513128173715885106063080084624237662569446361628856223531849444643971659682494561498291494103479123937279519555372697349994193091504585003990963624351990211548891886632289677838435378912584015844319873863655747661136029922566437299442714323470660878513767309711772285144791112330623911491572051112385916145265338634108002432949536877593526018910417581471323202881626853237542507059107519559585459802867109620017292699343205123326479815109034953300403369558583463959651047754573653854099690346304451665141454443766161120544439378506333418238339283850015822479550129304738890145158383907178846102361058890312404594589700638975755214656639451649956159105905493031367276353336100378965188077696854884295888355131257888278315773263683278041622054724482299748637340372231684822203567093267266693173171437761354786708877099302780774467285524667471825022263903491938352380158591181943116779593323296471033490578976721545778896634509286738833952578326154580213747581383159554348365264810877127470349695184734695520910846996045143366204702503433822784327790680577050566965530165577795943707263724827648777643868266452875538655914630489813880385612662530971176221025595617858124174467129997488568595249598337587723556178314691603361360593961621076702324496859275283093726094213490154453824332132766012308340507011289788669004207075255852419236162392076559040630772619006124491579733041581796672024246278109375364211329805042659877560464592047916539767672884763510038520088601613841530381142217789240626253099488471118545757237157105000578081727448393530186368807995692110555866742284618589048786211259901442518801873297003097761465533885836272147965606713785721409107708002748481756233161418119787367049935954868545644859224644677954071909704545696576359276065507936245518312671047146834484722080959896265966253868599069199783629702096561234530793927112856860720574859292212824957113715714010034904341885284959746451401892168760210091668945147120734906321408924259990881844936328067519643357603003614066281386940518166137538404215087857603255619826999919947129775482184734935479414545821470420178895687750770096154165534868518610390094914149095545655342086594845475497767572239979628863302419120409849611941752494019136189391565989967253079207014828246160465462452595067542716784765427527907239773748207935259642628157127056834506920203561544557279504623657566476336989373972947607477490717190575668408481585083055992948309970487296345026776456461377733880769263269779916614700456529009281007627361333937198385574433442375652679782386148081364010528784508220056977966436645397106042226939482828101292804717823324954667336701531961846155135611950820900126930243624974333711903954677450752018993762173985360261149199885719024080253411775851466519307602166808585919842003055776531562271316883156339411161381156966059981032977344419347662519482186535425784539353623532396366011812826651085146549202782606565826847765228120139595920980536645515456997204069307605118073681485840325358183901731730113332557691514320943584716841553738135074715321125491369184805691011522084054180496662791263286046459860198733324375782266408941847752873818037982783444671922934273318215843083706116505056446780014169124920136628668507018100821431410261503570374968153889788562686402064351033775346089972345700373509549331225991481905636902275093169389724093095250850011486199985043779937499533224224406381484645550442295072478834894621709634629351234919902802103113056924776330863233663269894457060469544585219968339123483448189105897628166112277856189943752771072099458043962751576872076702543455532917463933616913887618936320041688531094768045197512643567767098917057563006950844796182991675485259740061732146195743546548106235429314011745934369568243174255861023898207415972011030915879092482336820845420033436725457594990417642839970448430398066876996079785952261970301223714447403760627653661621785317362162002806023953034425003315654278298392732970525617981471259418776699319457126160113988978601681838292667128907708927761006412501053937485611349217493015149692507924426617906022071859883295049625212081930168729599218176467927741475205634804809679658150215575996649300498496141108136703766056965362213113041347032694425427404783212676968370751549570096195435333829482353824327762837947319699493849553608442598100945031100183812542406651599195648833774441909934654268005442045167323091757196933452018086082959858997398381798590562050400963761020810603156845162361389954791353459902443268708632080768089018118378552599021259125461376050625866496592018794078327089759882916393091890304850610875625136815639371482010282101459039001610025421476417953473380316101159735460857276713064636383491927619017719660062024102188427729931482614194779768854243684176338758880261546837876241748083521267669509451836650162597331060842678715099305677456729941071267527200569915753518214577981092531180213058047670445417604214693460832350319409787804813619730815519151929925980177567497226110829581163825551956873761515112221519379026396211010040195359271465098602897493857418668504510235042808860185151464547106872815401741780915485161632181604227747437652467241738252493599908086109116469795692880021187557342542131081840730223362904787939933576004515766768100266034116516109992373618707299277618350833532918624057848765991445386369464765172577114045175180871867948200845190799044069154119075783339986840505288295042977989981703375054918279923863625311756555361185940762134608944540789743080506033756920050105616963079591100143554082314528624449968911533292379962326003486332771719264421818836772159494731170456646911516894073454701010979461195613845573076776162965602802545697547386719256496599270895854721480334821505759368625277358719957054372893311362833073282575288578036384052673056498417101785013998678047943095830642801921983419502643915615945807076041427463027576628156196182773191909557360453970908914436322093409925039388856526897494288849759795534803143030825038325830269212896883031917605056422325680254687141800392673559835364969478481675756716256059448662248861394396658913750540478605881155214853648144274673903672882258648779218165684769472586305037043990997076352803111706509623162134936229729020458583485692861272985601128033931178973318420129971685483824769175315898082746215250513413495127300316490701638227238044885740135871244493991900043357387498480035530551134121243138678561971800187839596182640531691197912242850867791876529685092135522895995877817322441070408465136187228606927131158853280383296842087643457347571421491836594850841929457504348249029706488520776319608956342204653786885209250724208816163140997153938148354453217719291746749824833189620035680969201125265374184058169582190438350544140383315566846685662394375769386793590199250483073718714653085846819920478447509980479096121375177534862772932504482202358437980789985562013464949686734472992582975944715421687763057484816805316660029862225345419762388236653723863731906162759732125959109943790964150843205037921164699367738436088576791413291635260824032306449333374442388669604343467614876461147737755108267991072655688862547666634144085722290590730764160265631005315627095886856298615839280334978242469607009219123572543998580605910369726117098370361104634320033986775419710547602299187787927523603800019442576729242358872685920484337899223423686597774685046438584699267863175605191855358134584259897911416297119288465607100000641676786149073961320607645409690658937352567561931046917099325745299747108203061141685926762382802834678871609626712601864258642372902782794866687352691380381502931722285864988353052640459367475938129201454711650028821646651349351856222440011201711294249880968569048327185026962590938309162446482419409927792135140094781438324635395443375743289691416210565163483909566609957554752434356012980838602051767250038215204649988894486371416075767920070780170780899856144295675606360361351218838332844611419262900846431376597113680886662493377269204955164087290784405115993798094413507197459125060690692381636818508894822582189680364935804199313859170824176742267669439489750568865675997835887451687317102996825751522032445230777231728772854736217137918487634677486132089122243620198745283377803488254532975263470581317362605328110594340267778748387310978825097293278148595314444812677050303636231876155083487806472230833790591181267728930327902187394592893121430417332469244473381359483854370570952416299546137970000083974695428709768024740037953091827749134802828142687798829005472435772551854458904636206717248816853061679091963171474604494722359597447852814671827422321679444843204180886251395065502870831579245772689933489036717033176289837227150647017590022262908022067756243037681437928094753280765094250139153486204043630729107294636949333417979647602341889380803373794718158351907743893489890806067742349975487681834235824452851857610319264703575636273899296733085032397781531501513325852562313752041206284518503731436586674869083758085451209273002132728686610579932753040904093187834975021953108347450954971614883691768560810485208704397732888836742324011779993045336969429505753589236184829903081140698790653991865923976064913937908479886304449784497674138149042594171866960499482016147426766879303880922666044995356941547992758445391606400207274965114166821588809606700848084355321499444298711480817847229159386905160967987023820745743107922433519091088323000827248785761816701975923410868475480407098771396225291035133540417418472095746474250089024413419227696490368156556058210562189937416043270461192360534888340438494833319864457356162153671441838294996532138209991979795152161984012621929138471480711036249148926863028563989944370440098406506804335827945046287585922285630473337506968342453313708087137671099905216424932550972344095442565075234180904652422533439394086460098609628891730112321500054878223819545052994402482143020662778730455181786101576135882495703815284464058573476814895358220347733320943766620084581288292175105196568934488992572615364127866814282309017654652034973122364553344807171038633693254370760038078752811402444360570564957032602406438145027869578889951340512699565412054504972338489020341369111031315376804950764045441404245217529636182769486789592020820043863297776578791045523190595277977564895606354078915563882076676853577890185154019819334962687085875882869227513110990387426386962680771872767450097509698852324142179790857397908736479331357057835546332188173889660193630929040324680975285474061872145474268536710004229661108974865676954213417968724202774113499007414223052939168752825856786831442054267042801185824321923433465804796409700888774957387182603132513768033508616680812218271469507279054748395922157226370520096216647589393700070763123173782566949930708297778803950402230809125403835869096256313112273653888152256123054788406281754914598497810511613341942743881050739465293673408096369322616456537126082928853329953522654482492723286921023618968526212969467968093230933044352543994612192693338998774137152754679237944478660689094209830952853142598626017400897492929325298868434020638597309741923612721493621826527355174050301535491036575231274205118062159067863882671075495996872325598647558707750666013288054252293304508661911759446563181996961593271210620798667367813960344547218614810053799707667882327351606731626973045441962084763553605865764838318671586586621734172990189504688268085663724958646653395476861293253976036973896615294164750107555395919604716446147571315378052687153346618772924810161509657064053594374030208647430213603321469837965138525726755425261280869758975118519018439659019200981859585288960551953155434542805068463983435687272309000024388399581499459823433726121850503473346370303398231709918912913651435642902726963863980563904207781023352934543326951775382790622229379136321073849544276076252819356147629287575903784410173580956513765269359440778413005946410538865229404096990942090814324517339415396137579257941891000094658429331287848325357695053797353628653634380831384949074749849711989463922391737841331092923236883144329146007464386989506556080910741453825254076224173444185095534899919848586538479113868445550730460486684588060440831963436816107904900822469000955215094986065131727646038268631349049998976510448623378700775756346044140887112681596326486981110667990820430944394605428031483786669648755322375079550723528173724174666408912794418181260729241647493994960938340690869295523836003508311524435622927218629487080959691069760909550091733724444059868746839690819567065570808962897859120845947993400741383631884397955894522934349472005305430358155629829834507884482730714688941652687927585137802730597904144422543020868259295559136643030800562918231320952090594945927333525567741283784396155635463353075555151772531622054361629899427120471279274622648530434625796060435789264061142237249244083875444141644648173920328726249415505222000434396405021977122652259809196181775471571797677680740650433369648815586384162258559479748776977664660657768688102169206919892689374850512762745701924922226489546593612220224548714405298733890616703561367933318130458887603708348850644016719538118716179559045084422551210572696777921085286685766240689675057738081092168322817096142544080330394261248166806512575735525212358449564044199967439305104109933342750956732722625911181810337237032046321948646371642735321261684715697791122286149302334252543193797993288393482063151840219451389272491031421637787821427370518002371724698109403583801517544019231579780185498578829539711909013460800288670823415465234207291450678769008839041071766939902365145504190593014058141306436943378082382306276902096100232591972834757884713860471186339735054250504964411545098634377672938182266689991422850712147586044679260885844515502735459031777064299458142043931526869292772885509100103206476158040499183027231760338655982529152385164562370905321056391717179749165568160941865135047453410864614232248996702892303158280098546599992841458058300671703883758552034824730912668359237936602883749759760150562184619819561048847553954122811983154316884656437163755807808957166867233145284023178765318861244625899332268775612900757743283924069078023599229378346994910509891406002868624722245806327098022615266759869361948650515786723704031973008364886874332141720339950274607308172539936003657855741860173098258865247357552676306811952601960229632553009906032923069766278915541063198754398104814508852715408800402130101196495756850517706406008060852594659767038956620118206163562343454435482472951559478237170088581543630153010046711205449995306167844444947619030838815251161498865200937207996672608982023843311853955161263852279970495836533060391899721221136765026098926373003261185878597047516340533444246172331533405195561478925259393907396500367273579458219237656639947357151580557394398437598260728750270452577983124225329584969737722054351357060846183613810131715503260409258699269581264537273438758695671610478741557280452306590825431542628312452028971537499513126536429621243114607125382405804471732345404965511890934078833163761010039901933283085928750309308712363986552031674994164001602912041767569298973423928282733112753645658462549549423553836846482275764645386363163825833182783547605784035320223636348478925409076125471763940111052166128301695438405961156371399367786930545424634640562579846194332568971606158489015816297266629107735862041096490281133105582470031837780809484986291823836723435901122796131557113167150391345661212933310303128721044070440917233649882049571646872035887691502857871061197416652137441980131771083711209235269346924880953003504323647948696087155575566572117768683037842992807157990825224308496255931651050374866414030723277879033257260191671877716546171565146997287809766502908540173479589109843510727791678493274619314753802621388344287952326148440264617513142364384584663236984628895585650112502493200209932821216367523059400121614649523598974873124108519260281801327094562551276591459272024213037917763538945458232225835331469629850058689843992802705431339742928747464302865173093323801129875019587093020982235233016909665823855971430531853349642135759897168835774561533493844906832763576873860602323797799377063892050175319117167935353259569978212027003659020726521280536913820418989155652072188295741128321954481475691000840990487749583267052853721564600559626130702760179445933350931584299854270076607540880093585614953518858094641806248297023478412063870122133541714486477625200561083199133636752896847607935327317626150450773728731159360140350277594331550117767946383031768969686501481704805061781767748916404059299308317312797200101286602288971420257742026105791372213530640099062879859890175349746853605529281016787442075038387913230650973279302843297739211895786528261225339847569466387197111200781914072538195788664563044412708063051922188168503445424300809559630704317609339965744976091223758119467660978589944538593094943639635889075184089756057478285840245540369126151063620108109762600055880066816288157046291543472482235162556572897035387654553371807179823379763863730243699412364782353832648395573013216966622596644837767259734591256316368311396077302017741065162239430649509539318957409255370485033591876883574298317528313989136063920731101795378693818925575642285398605739540874552057643861825204654632940565594132720453341733683574958004182470750843271144592029640623370229491661426082798863680209661959087466372875985753637868487318181958370279369454416965855455491717182447166625440715840726969459605084214551406477339586624534177794216009870433663736101369376074031424516515463668200557377794248433873594655373156754383875440198654326624535652178756085006541541583010735264320817199749900892640888827231632799368796910305205523437783165052121477712509358358945247119384544074419159627239445594779669568490955910979457406458054354500044676679432471843149497587032768176603986138609245101263308874763061979031632407132600598152689835183509672327449644293159249004799162847002963904076588838754245681859675712574970542738309418441895010564242801690932889118554429815133715273926787235801712247859290073830780400886599476611194243300062787684709900894643786782963380347162086662230208633020624839013475792674091355900123623626317396706169812843253406649968944252034867084880492878198070809616438655370420282294460077088047450094425765661493211537047582475963367514811544117362164863733948307221212284289950227273557553967479860571368419117843506864236885781784590489989387856875493405432707403539136701374865784093100131961729036438568245668871666832022785352003262719081582465422699922773103734852500067310387908750527142993361236859155700550363503847448320783034058934561507353450713043239069313660649987016083859633399676111727392557366751351794282953891044994941862258670800134326494299485182604453404914162985191907343404378669167574179657404314232563282107389855943232099581657168082088468436585532319616387969517545078388867429360898096564235197204245277523434229092400772244644523166150049033510956121075100000653200950335206296420774902115818204329586212775772129266309849923676710040014593509709129605976901915334618706609574693595562447345173471127241003315955608067259900167340393294247028812125710650328742226958173920567165755962532089422123963502692053898841695750187853657705882398649275585596953829108313184522270400140464153465027962280657827344166074055510629611874043941876303260601764325689285575792968522570768554026011399782864628865507830849100753256510287571060174365535874898727061195257566886269528014486193410840486215005459287098443535335730819880697379200816118700440602160833786476136617881005963168462153232230764837122030336748886765773727932822702013386257277731428217260859259870650838437887349791728029700581910260445745161604882642806941122142401379535262911874155762072124357107914337046409776959589599871452441631699501474378812013915782993622965996575660546298590161565324544477867205267219757841588682879123270301019878016196485759307253262342446126649362568325117932299922430115216562188717461626261450852163776984930589169721845993157298721184872921901320464028060434280915076302456698329717557709909497041973799037139225209680635487025397594956391536778385724606957523056131330676235340713655294683254244973947178803128923082658700153665846408632609071570240090279748594128400368998990057321429156900546297888973385934425135455242003229487496669185206698067554742332654843924145807662765534893508046472071118826970490004057253329842704260940414806786275510192539059431863203654961042685810775042716050278646089565981177890831676757892540429785201728201531581229513289392281019320364826331129398699380039169512130587670214954967879962222428762643677206852367780788840293153687613959574925611938461327478067139482118003033945794728916283436795736009893736291550795274888782112198567185958398505731233331266801826704260605561739328228291576073380363279655458127260575634284876373472278353814492268407927628230953145068800907741532577468152784095010722664644124590399645290618230617560385360444678750359907307006895659150728186964499045987111994990346419001897084834517404498984219088813122108394323891578200676029505628953941542960799291896886330027045754600170862567275047767656830614446547052877657153855704815688438873223407879246615422973517982907450083559316476480194733933878499270547937964939014981713903251004159737882669418223804933793301860939655755877593403801381274032261606601752087199480273261285069081765413792512112062180726084735150999342945103228776613682563177391807120513747619296360245766389355260149101518918653192507277136029778742582607777112064466316442149356127056299977499695669229250884648093456624923526280276123678864664988000819264340676557321520826189908481856458402057996602641799404284585257422099877382113201340329159395667832462584619046389886411362527080441598400583433017246329023732431221607431637076080957319903933367608039870381918714348514573911321710037426719707934738748698531457650290267408720325029627077352901005576600740053279953712083823364752730797571268156101721326330514588242058178123424304510344618158622138612048575234895442203609248223801102070005510762224768639314255612860887703590572244848049284074320100497065696693821558108253807490593823097830265104135504565290278546197431136228117041416040592154859752436912611286219916189181227849659029725206563389512757433864157622616817680815165560867820410750871665461468663443517702016553870806075153302295851484542537059525661682122795380101761928328730583568287597761744343319129950055515548552645760785277215765645424506231062464596656988703962244901972799514390408689592170248288910463969541783520658466094173786549947777197278544514376140937095891584565607278246679580181675640093360519323780185327128253013312708551059416344981356292730053507267561415381287621210971115070831217002509403605051905036819373095056570873327314202696242867149019645045469550147905414328565010871766801355191263292410025064643123679727157951581997605419706083212684826324250647404164250929152555345366251339913106445645626937985292738091049195439634816877693050299223281852113767977832084121368743091897546991458823791223533172085720021871518060227975077009884902608086453359148042369839638658266181151680729034693324971564661421030635938291196503175646805752861119338642036990603192019710878164351277019411658084607400080956688035490914483676413484247926986415362946450753943044539171493337135149916376796367526763605024363011527446935319054644980409014666295943772712697353913453316402835880848117579573136148847641242964390573816436019179187575338844007166820938335661670023780436354815340525962887078293722901485429362250618360867081940128430783866418657952442036754894021569944964224585881141820625874194132449292368569568031719200395950457173812751205411597778224445603737440629762367652534978219512635868849787116244299858810269408384042649240757565879230120244972569163155393086754032090211782233488056317964693047231184678147774759959112111249523012411460125510339463427486170371556615388211281847036189723593683630031532247028200455367955742736430866344074696454472174989120327290238067941471288389735263432544743600498520366778986036367370706167183759100894952281621526399926423015086326996841991146587572957164223608805724243391847810393931380223830045882563153714779502211047927314972437109841118321243803383938925847994682184576153026360617603686814026636906967958059691611935081229394909117090276580624600580785991000798751032324607424502186447506441880868958143034827070807368826023543554671903900653388000136113898004730592611488060719678584055115095336038056720827190244911058108402686134060875308387749154711549545326491180963621204999686441938055241388672343372034819014137107862546488105752106284170199333516240235212744120051147741365573763086610695404909757367437935353207011355118436325390748700042560657219660810809887554371240368204894008044612301731234046864861974427067595981929325943333463910179659553426471053273688057221322577477328050862693617916446266714997852017525929103096903961643397408084023783337812894875847385967652604346800479351527567381645680552729578764204230547138361110493029183647700090437578442362178519157864449503094631207706796462941133497301984798703605472406980985663251134304032420485352711715339094682375598061479052647204772120873721292967030328401729512726859202770765780046781379181429583032952881083486984161480240983698071015533640972255727455052753501317735084607422555964399006449408672653083383911335177775527952824366652326906782817736454146581963671571959892282957086052507535270633717285502509243328987685001389970658111182536715629444009504230143421497697816207533186122468743967818803095613420608872533942989848937244213514314160536340927791854471626523286052648707332498055203979154432347651174290013586942642115850283465417779275596486235885664116635682294718319366734956145008500995802396170002775175486786652366736448383763486219082557062955252679803194938521819673760248408380519424300378471337196053413375546633774472913603158210113746364972927936826810778909361449215550301821501787301277844503803872509798018327511066622134781512403955954534555540199454500040917682948051195209530507855802611226926492314436608075777217405793993586089789820447992638637591213188181630187909743243909701568246593636634151756344404806959340899863086158122780396427789206242350662243960290636358596494915005522214139334161935439529394797196202092616695889657984975448927513871418671708080833392325067709964327483570786082683192394134364453484194785526247775909574126593018293910733242137791300447893080027678611828906677579284603518100398392834699893324642771526481181759375322302898523642889466165256764094212747901108714016614151705982626029849009279258808174183003800426677478763323383086920604912304350499020380946571500375932112613226494716745336706179403193331871852784296772764306332194637223243991961448002535962421770926111763814209968353223345348859390948162905759568025832036921308586874175248850896258100929240105987970655554974558456464893767651697056297983366478618324794588208118954494634998702570836707881337587557834480652656215196266020642462802216233881765733495283758876456746422747284440466884042967771495276836414214184983396499828389812640411116275350339508025402652821029881452989682012311675852997172181049252326684704378199114933165012788788917373912170787778103869493577186375069848249187068399100944701002989057225764228735387944400204385945225365025947579962426524793515126459806516807075620810547971576493180004423007658708929045339236895879067293572764819898873597635365808890473700346473645256097942250866815150479403920967006730598935537553745396217031595103583870508922551503846523201514504018795589120295099499157563675886571354237150451650604097667668313344024886051146394356882161619037504069449029974748623525461562333052654099282740327341578248668075413270364486962677560378783191141751170781351581571489987750375465551215851398071327777754367812761904281566544332417256458100821242060333971765907087981245918668910277238475055094359051881942657822116874069051733189336104338472305686121633635255545989263774295365924395771839042935000716690512756225038238530483070894252898782313387071214799582633253903074585691026387277573008683313243605792299381005825803159950777856875276011282474853373541360453045526194842488371863202722003455557827722056873238120372621401299301353336791815256662469081730932465254141812300522533198829682329701096971575162690573711103971405032713542320315450165080053057547198397565446643502893818309052216457395714656442891344553320032658055733378104671564954111293256558872924760386819161005076362693559676932778983150796498897114186532910897086899959832749984779321939560963506835494892811185576974140619690627551600642397696556869245679098835051225323045510275931771014229342539793783492839400150255675419331167813280416247562887972245937447038864100164723628744705516275573368686207921338753110737813909215798087279280051601534438866524065742618448515872766601952902996503388556651583390442645596924944834034958816137602648918004031892890551255004186503542322768653319038053750881266732961787467136171765582436163102714660443911499657300845158260133303350949602585625864508725024161477228364596977739009825589824580966322371165343767254442641710162555689791455687251360038893272731841922687219927107122960932501459373180582909186330576553800734688146518438543690590592555549687951372793581469045357125996426242252646241877099032806284951899761136040393999852500875318422738445175435411375427717964039534329744697312050117897292194587662814847720465289945037460944181814194119810843922180632419954105219192334822472081527586975053744684608473603655392483317013281797741155528758984914687957422791137269343777573314438343603579941015117217339566267979538152065370177748926586514339416194637172090702491981044554403754129284816622969304620898867308073581521359032433679652764724444729009756684323655577882787890101683492110364715310136590247134644986128334752255509114579344999219275210565252032095850317987443482581178024251141531827468121364358651831077187644802488349546882376480021126129726064948992714038241547486494137189890745048024275760086610776650104894972437207312556344932549933937867700446420098282722305926683349128488337191004132581593932026211021816211243223695959278111876111022798944544972964030382699520386104565541391233151168403554837899045547279832487647645988337261219694034013854599474371331226523533588732551551066404278216437815289897335621858406763817513439398304459674242874976049708219370850556996962097450137074836596046537495587064661452718716400275711459322022248411823832779180140618973274485681011231989035461324984220585986871941838768050372018730331162900920398851477205775023204675471203123303437036470540064409981702298692310242548579960232267548276536432744053057268680994148281108872075347063894024726707787132111135512276559122981371448761758352675312524781351617632204860451193928772721198043264168282455734051935170773076479744330800174309820166205252294871247438969719361408477829417423050466088028361732495943172887716068240571838119668353420664258898862568695293620685640020895213803793746873647012054469381887295058131543351923516892428982622119300929254716518860318332819215728046526740340079697392689959914970159263496745406560768975564792517521232412073592331078708221995675941086701171714219429458760059805849875738275947731942328707775725000853621469611977481680925104182702931786871225254808264661629103141934362966046862835982194867850090507214015726167351761818457079696942295622799870834888320938379572462825036438052426439193427502310642242542305509774558048149336020563704815338702509422019993385155501464930942120391535153068310298400927019037542244383559679917876081133838893954110281561053146917519802073807248134534891236755423253901677696588865974564480104185579577186231428392435862068594900107338446813618366421551679355754078667523459778476695099408194826339672844532621369087469232694854828249836570460051213665551975057163974263808203180531498457039149950923198982213381629200364913743589512222645675245745849991402459066550344241625145186830794335641799621844251609024073881614069198651344628289418031832066352451493517867949087982322768049379695821557617256863030774162668751567344987039784383797781619681474200137683249129375044540446871790609507811555281529720517132234734431997548134944160969398580324945150350352396305174586437581709542659632838328582205694783737869559560515811269520545884551248931268001914652889996150405197102975136026678073641977634970373738626286837968039962012659834450174239595279605219290997326857634352003598830920627926439621679338938562238142537606364142259724672494114512315961014955040397459277560204558245139344661858646515493319977577625001808800161130868853195105274306511871439937879205379916065940390768538233902986273868004976224659838211532625233066938122469211158298951868377905560756396702633539356415823282026981622012135652701807440363037174703235285643538010106447605906217335922346534074906775283248819386645505672873866235664063314395806201480676586010743463460571323014427295968622804078960215675179479439356459185525773127763533045329253795585357475924104406440079346854445764032808668036311698481307644087784283511738351104147787874852525935135127067424705934146804138607388981892706345768860301405247120276904960272009505943468314441162922468289139227820910082389172733854945080450209895087864255707907124544795525029659494793781492958532518596934711603739814873272924472237872580029655553780932405068228456823666962689325553639036925732612375556852904911996837618029947833393268811130111341494094805847781878748546161227939522174614902606749434341364300100785011113230035837023371644546590213961762632052387976041700305505363018674495462313480117815906576872891044134387933216697268502994628123037529807285370590111300597701400586636111302493318863519617428028768061169493076693780874392466465955552839317727719981566818700368657144902964023162027906820348436414541747223300336114594056274442314466567648068089054773685719881913452632439298574316044155005087034216444342305205421175631794883031302023748755253416536231545928399751022979454921260300399356391188099775919659708883147151372800462073605538636630172971111815390758076752932970703113402753211584078033180440958437690192967444246143139859013586920296685912273661221740010092893310940182976058088466124227656974952461966831746815585190870796229361556865134111893926841177487402830743901924342493692525147447478324130941929471933843788614858238524645449392455738932215050103330664572708238894690236588418695094742625902661144155686492672719859671037264242997517643464766148077100528356541762038434747374303949484180981992000482134204275501195429121540743610446545421953335803244785371581503708783647198733345237074429647615027014357275179971561858819848617379984047792014106878974968069836943376623940767275843164916689927106382481439796634737750688189317177313959960052284651140911629351001367033158508193515418154095670370520660405073622821057598837892893640609272524183654484069790896031482656091919917489867963175148280686391691456367264784917980172919265167449550927579767499962573041777348475300122031397981693741168764838575363566213604349301575499915018526538327250544968612352472226291188858005442510225286726797032427366362915354436675533214015261091267231534641059028531113302206083692779746168572399794171199831288985158230738633200029727925676175058142659143612273604428933667647659963082219249795426022247549107533839876735064557844165207782979784526126895052423563936489812727354289031075648798965468837324036657344293363056951106328689568029573588078457683066133054507253141578517194465714419760460948089107079604561954405696892384726178157631463332343591644929080757396645144257292351704842514305021610872454460593396122848191288786120616861424566950934750325444210583664541828947138159738201575875036055732473831037148443560848471188382440993709285375227064146796347990789134074787525614060719666134522694948399341277428826472423216931528351112220772408976262063679516194588452470332054989422647386459435844182052363126101212116710473449901696038665315524746488058787225422904726824723644753766913796495770741366497659642219756868665439819506002924445443862716987962193941673437275284348723467783803396626805010314668842828232972326713398183125709545202062294439053188583537287160748845382571493433171238632005245139683861415695484657868379191382046940818023508972208973181333336836745788512275845258365075774920959665264947132855521645701027219842371788772679928323997174023611722250788377878149514728201903155879955549083915262344761054488313198902579755285280716624743893508416235583093147695030717291457212765453481198236672216158839394176241428906484838538981947636303793525385053455384490762758086477075337704038528045926471612395202133401799783288462460529114631351650992861996191683915014297238917441741472718061834387785334342290357677062928958283902809387076076892937368220660706590799728206937491651218540001886666051471305883299833229457086054559503223231772912483227851220299451411036860742940879884218552355729917886104284430632399118627711391740341675601373610613976287807725107368987008534548936636463918711582508788958472760021959803019854334846789661253293078453460338715088760554734709889514992462762754848838032949972559552683077719497565994010277279076213217582431073931314649878180421209203207082655722639452497127494367406034172418687400513931074210410214796883136489016143216771916956631418990524145997365992955605516357623327369619070267800282833696190453692534624680748366796285823833554238797272128785270058904666696965408994097467310020345483770718585421945944796536294096246573054346476351286724569953789216561587652470443534136945111836483163862151604068118751605091491919922697836209578494244036424103981710876010548281610030801460386686340360182336886015675497066326834719235555422286477096363007375791844420879445014347599031752930296137420312962670976125010037194491710401934004128219176807087380846900447238697415170679227026819763796366712359435570627248433275956908796993266479323352683956908093089170123864755412112337496272115660114184616288980139821411694977222271344039991365379443479098812891240750965231160738524314886601821785044679813062743710944805725268564254470849107912954591654264262800162700752187056570301414969141255803620468850775258885617930673460396033895580911451489470804484591523173006202059599760474504186873946859423627805216004804486939426576442195200448646474220577703152160629751298159197709211820945005930284291095453991248463009339993900191002323536814244496493555925881933349939993415621362340981261529225963173906024779411783147441326245965374498752523136197074007092920648554685571759471559560042877448660494402865237686537847937562506400680352845105393605141427269360140173555219727480475279088631684639743161669847945033619788050634619993576919480617188638054512632932398354383122675282700029550520529986640261572694898688429370399646614758675175849415772673752905557489716783935460798846250126282630579101512127550890678172847535247151529339053617095530452035433250335738141713828079974060005793744484318252440880773200729187996604450482704841798872446698984961742302744683308888455235495589809137229962838025562097783530230674072834908652095886526409256028604751451922369954530686683024337938461118456509617658752829037111161494097661660933617274872358841403025751303316365742465842585660821004332561648031861256704667267925862893548268016316856918741708655140700835913104273237258421062346346749744071549482250059537580064633488958138606359064356519633036920075021594790229575822479583782768659276547105468088983823230711861195412996372970391000741221596585315642312460813894732223195667548328585246946543714972040168395060187933360047965747374981098451275493797979653481851503061796294853284115522617404921613815464201487678189630867541622820245360877423488323116282589536848327659387045768096526592391126214606481562589640124969620743012859318673569127472766600072524970303149294163756619394495602513671225018036419533046848620090104667325128412540420663349875834707037399751193537965985404917590834057867088431918724387230776396754966656747781828727389596607098175524293088129002150592890330985539703784544026536163164323072910272624552383667419290547733223147447509618336506985379713628996630712514599244758515478855776835566727525791514558641015678999029099054063771136882704222796521912252396128576581750589417707018545710722878424960392787735384485705357107771588530623292961062933317247746742424272261231724060545205138699282247163932708880391581203754131905908632156111014691668852472307536148098567253721398741863992176278656216300483080905714260034906487766568434454320435831952521420837533743712805245158564442453163073647933076556631606761912092430971998789542930334933824003099554310194236739336120800839131385284564193125311448711320576361017132611353191204212039614046094669835125163539419034853937074388845767435678528098108993159534605878182444971238700997148137065916064762408927520104148951032281491591067106048632107634760946016745998016332394520373625881260849100316238995945334386398663104770875029792184861797096121956250079625159115564670321660250907838616381512892939312324714209884308808544574455408819020299700037441417413371488248735799543119589001255643289336752434196455318925187031179692385033512259350908042550491404327976795433370138307359296993905264086017036531689970387091500187818237334778922936949982154614728799255904479425174278270667479651524883664836783613226090639244121240804415172426097501183101959421355407727518376601091148431810876368212888672695836653166766321519656849495301425968379077320000699822027544287028319315423506603046751189290974538993669740062240648485515215078592894320406856667267974500281677834893627429187362255762603298417631076123333566156463744718003432386771136894470670651711850037305088234289133286447409810434299332485125114360467163711582131765071672440569526889131408415548571087288541391288499265436970774487674229519114029497254712706125458098065887792857412731883497863550132096847960900672497834661807003113876053866594182182207067889678126213589548653296163785388124355872048221471735537171409213159680524890792396310384166720018171023760937146301701164061514700126760992407287698196990024341001097593400121133997037234004644910973422659926733083156397703245400360514666614676476438211068367845391021527796471679894611063576856362934266126017918485728671266196930293780592296205237340559616347811759089810830803401229841665224519515467693631841842742930636821510731462726869132066434889326448511790055496375771318668835692584873036815083542129308610195039919067551253691681632946976879942261397668550051700189698882103905342397460125497146300375919596854295616178797650404833059441055659223009729998180550742887814686189314696373504869419293873154676207528823366713822600732666253434030651796971383461338608615870163790036470340767412212910955165291699135665766822133681363996145805514614529304245939668688613605431760381203758160161687688838251251821902311746977664363006627360361156131710197846182644906958258640622552964378497825535566552048511589223086441189272419259344004472974824949108972992202697154968851295295947774573204875652871310184217187048493811915343051002955186024824923499825485733728317661592859445773506989669037774371131351746123137608968513635106812076274869511606175989632869247530031602270548382262711148381412816269290604446376808708360672655007562940752995154284316390633279901609040758488296770589178393193908307212335648738881191302676801144375722372034317334487556463872508439655427635141245813181040051603060037925442612383073370875897304091782833868891828852743311900936565770707390837711659680748295330961324022640822718296397637953210303045046565601607083683355174861480890222032572944534300793245985688140047619377501907789101494753826682178694955452837184417629073878329744992120883473129772763496033418216689556563998842152329711057288300239290690719612029520397884802774016404212438098167591003838816266763489296569308249540666144582432605521131070158937401019497937004332744188313048834019380809783022590948576876140167011809835560595659559619247877085965452611358172845774713906094080046711751578173309986190899883304560826285598507275471810607329581812659883938610032751640443175375319823114968656286068659511223978127861999316507953219558815038010222233895654485502649781274416277140902178286624984862361763386596126050150406753307454752748148317952436079282575861298733889531370965351108675853148239040467980830104271372455241577162305269984383978733684879516023417647717994485167161520176539642389149892163606567149533398708979877851570530481836559125937178093320308270571530566111431487693260677973506967783754623425621351884579605839829554248446316244405233686699837263585097961708113823857870686953601033304777155644177674892846333974749573915997055205594484036615830670403206390544259007985293319995520559100647358969720297634812019493269075880521665120461086898197637668418168368493573446787718847954873903158129749936067691876435948282677302950423472992906392986197301304733221254803886884962297215699366892858504631906769481785564060977136857581130875935537046780319050908708384614251067899094949251346571449074121096543917517033599736742523785897742602525319770261004646162547975837834267465651832412001009531137120214328922117129816164164333993692780655350616102092072481806533874966720866902469343123224767549525560146856739802338753319521107212574121055203106705542526093854833619829643449341983854293735137240969016011238872810106105780326218013823982079594140986948371417879296532096363747461828515831233679325011196881668901136133743120795148508762608321340075075997320134462452615455141451384035424568289331078557104122130101085823202704562973949920560629169740848571075871822801972297683809400963743643853508736220772025137617957957137322500363815125533983044391032338434273528529227146103002628504081026857610214848362669835366724660444865655743071661942289965916598874859878170099190424943139580341357040340670499684258058700585457512755064483840928286922956117532053393029066989970626447163003706129005363263289899494571667306029583327821956262393936616974540087507285261645446319902319341941326556649209561666696315909476601875257725737903230918621939597627279219296679224055661486138431097437243450711931467315216500988620682224465378552307850666021514292712059188555086166642929280251814669096747988237725876504815892660947079831921199836966468317195440622814284550259067743345805709210584692819864881828027875253267483088225908575440481665822553740242190360988755598751135959759185506742395499554524291440189891102454430401849222044335139581090179411761751441493845207020158557679879444938296467148997963147130404199732047650439099992873331937191750507967771855767418532434433261616134872937398847904441120070694452673618319526536768697989374180903565397100354759472723186355983440988120500112402490396901971729536027772692698984363868396327603376699455278659288291778618820583023434499400987081814635095376076804907392555907194390980193848364746843803987003079925499813243270860618698353312468967061659882658606622724009836419156018612047687801375236479716282327058860666290523050857344844696967211013729694880320269383052710190971528395444182093048766297407493068393874524940198865707637739651859259390322913885859719966884536455600532868221440805810307894488983925009516096459411533748794540011028351760949756032927840402551002210093644098265811037212953291692434042874977990241403800450237935472992168468296706609571065512250318378059762434161240781657431785458028192959159145526114478267462854855249462867908367779981533525267168307194457159395713228520422992554522569338606903535561774755401070888884730912850342655873571048924477063297024408855945219348476133551653407233811517167039951886929746681098167644731716867076272170270780757178439093102266893990599535603344677003103762589469246395124943121240047878067290271717622806411218757559941095315547737677731054497885819769986105707570799887390810040254215555926664415794555257494228552743855705899663536935870451856869471746316663883686616723184267810069387584847448889990227684668034350503949001256297761531764391496343041493612147111445642754435840525038291648146441378388511152906292092305175488128767251510038619394103460780160395931499053413786583240191891107506127577244808081115875233824061239093420304490825446134808162283886926470297265596433116302642014147215186114403087337390874841796942783788645814952635951218788082349298706098642429179960398378095537762658546935129275643309156852805567026769571281090352109808060694755998221786295413757956959847668457629514308609739990806959029398512920583124170576663672184336171543210026280251085788964726197254486999589558599837695973615456734723117914734095286223275753213370937271258420409023049675842955364220646755008311968928961661073640970478192858262929596032518334939892134007043543216632010576627551674022337855735184564713013909670229811264018861466447513769277768536880965987993495867208151545123622673358866700737116720546477070039300211157618658654442812200475711881813956030509497477287402103080829387068977460524330940201888806959003485706887660414954894708468509881288210435884013409403056892611282899918604718427262230814738344776072555590726690410541749115657888373931041393807039706276111285554061733491972854337518260653291793296633253289941223746277314066820193506306752961978752790570826756931313748697819517638434744985935489076467861169563222157882038397593485785017433901099508890640744340601101400898811007852023875733305489597431611914147231361943861892858445136014918577823057745099066604183959592656732180950636801710495863899081598466589994320335235172053758402900763822551825463737655703751606515622295397760127334424907481675335235873400725376215939664748896508274317877654026894374104051735425848795568888518756052982483148254907929243236563331831536983266707852802936649776020123192363280334523002755344369585697143685721950638159745414795372328207089629303862314760977340871830603123637426252697278835422839371320661250547272737590962273101382606259626852405616179072537588707101026469718475183145155913519074750739668048017076308162774177120277899740218503019315100188890030799090335271680257647668692226669377696050720151394120270627001083322636463121506774059888815243866051727678087145237905320627994965902496968944867174931827646920843349012040320618807836580242403604128057088321066461766765955410992773250775790868117972402509140908764108631414459287420635142516331882774807379493992593181902813022306062177324944051274009844101289139063528911941779217875446828054184298845879020006171676380447829705172850026311195924448795344393378392762485409864466129664002242465511679764040024277296406197000846789357459244424580002926739514542263814415735827744480178403693636406071871300307380838451831694641960684169667922819756501828062444482839732943741399806456502769331487292847336869125803235858936124407154905642131744710402203823396953342074013258138165680178278396222618634809033311667094997787244587266119019516557957641777455627923143456125211554272997350423705767697064286811883063566050975980278405162429907177068992149312583183032368658892371732892017972564034371065148453049278873885689029500831927695669999579803149524477211456449892467478969389249355953836884697575529406125598036777637739231152348338314544574543030516168805183766216074911366952303497476946979671027695988396205259086305997861839157080128095327773147945677106500149902384267512205405571781261360146623932536232244009703875193069853150310836515145656763000688750168006938336899226357596434092044272706451941777449853971049076379395907045091501941988525737799781256094421258548315201174481160852721063818013015367584530770490657896416779207300393386625367144413542508595239231950136127352289035198507691877541355195023461457845966750848243340173444281463700539603446088878955836917607638651095535193150166955822095643789332405866887367427688356423610333293965786209134447913848761438741966894485682358963826701927602101436582968803479571206670387215487040869089031241144647937156464692262416242660337256119111438097282310323115776788823642055773389639234128008684930095813590468867577739278512189674959631227105745091871610190891753538726927571651110060190286727168693650502529364061784917763503271728805746976249103928991782881726156338025434538478442288781156111481714712094406819656143388919632990707982022605616688502281659072044402214658913504956149377918943238956345510770410438877193285187120325602918854040553619747760860594376834450633168856641593183503373290112404424238026251898172379011081979937792535030651101126995102737613139627112808256172453640490787125930331286653240639509043572367588159384377125520515403430845343539152641121937102910198327604389365341889149115716259075374722191402119311614782971719561300045824466568079377973259698839935718394240844574620288714775224423339917079071260376566206069244584618064271449016865242878573390112213251616104699279714434155521250401091186910268918725003803573851189754375740838959346448634924004519758589638743084279964878610043890336577928828992196365477547462547035826827349521429503612893561913587255646371957471619205814410731598421079235454886635852826104591713094410470488397190704720842487971494200242259418042649157122473199733659729979510337180112769649683800840784792002631771140690392815993501430911898585428070768850171669177606106376703575742363697816997427411655867856369078161227159712317101536583709745058800145305872153677659659809776052863832791020501751752169204802537594713111510472970988032820975608625744900793520680299934305116022451024957604261043928065945254246138930704308730124962007680797756730100768107270584797267692188201491215137418086557795254609110101666098688127476589740682654266569198621457390927515221696379231189152286918287349378547471093791764394948684826499568405550410634625111930509451047175151772516323785765273228043958283879814599004967803700436683512222782152906424489753506311581011535805689066683526142603536679748254142956586670082778971229985013425904734730364437295626175745253451967035338605314984924622438050428146260608831553083860620309919156019659929599371186166549303847633386111774194310298845052045435260113622092197918875560200779194271579643805093735262092165549392025606400400391917484818589220693048643284062720083857781182970553147010617350592530829483543155863503528656436804282963969197216871825934405168622516225225700231275243430747747854696735304323925702543617052796634977907018672669979868526283522305993621192671437959465867329912253492001595163760414492315230650890704612897330651957843148065986289565190802508708893572096634806070806916981664192241952513599012914810335274861641957183879344050846881664389519237759566522906258911359326563956407359446027274252974429354372856369051801789252983185717513663885043586053468407804225920440858022663662799650834128157951759324200502162239711875843571397098573129588694857632604063985329779199171519358698349611239840148471495789431147200576934550708868225442004138144394224044423095899295327933192650415101600290215582535257471076896345183927291349735990723950865240197432554724518924594905808522918683580009706535105473157680185039520354261339258603054857687217156464372279848494506041781799957680636445196531260835150102147989676816123761568222742771428970952373281011193853331327869291361385099246156641144706256771087215384307069083283947929318698732302469774913074838768467679336063386029322594262248410764148590713024578752859812146921525567213624788003630073300229354045607540382351666876318915547839585848232703772983422016407344411929074710970823783693153332695586640134951306503651412421994980282075393480683696558438070801492907734890277574145484052651733353800928069098989646884151315555731347480510904200125554510002369991913899927567771811808694848294449685732826376450900549802576059656431782313413847471116674816584232574240574509800322495384418067145518101556835674455045463834478184965981165885328339733463035389818317890132917037321435468536983057523529406821302866035371771905454060557646784271606714682893706422382936004630914985453580563924253643680642355126279230663479855110836523532342600743311579012383096923686094154762162381168715252961492574451812846503032107993525278883502927476332537215695999579043898013519148925095766126564327729580642554422188491117164805488719672836463933249263075110693719223872763864183655497341377042028198807588099090843092498063224535776611836050964831324683956487433849773184855139857718712559798574780361660507443578895413302284720468936211467083979089984819803836651919857030644595045850373516970712442922690786725015681233310543157279297046828436454770878766388745199467792469780955133259060926149473420999421008192184752168942757212813472786259895685667193323214017995838471273106812635799083208298529829680392494486719426898845627846218897529690485664287650073558651130275840916060445287699907080751524871411071859203249375868650990008010495393138828895989963517851655921982184835153520004423130363447255236220552679520488271575798459040533829088307205768889156108636423387415884273538704700507635381722363006078499260826217158857013713301431049242759510081733958521633444165675952189762503743970140033821779120249279421385058697111242741575184705411469279728280692609646306970528073869377115046189024074347157904493471586759783298012967969735937956692828640168788647634262403580399483852318746679588870174176475073055055895064934959338328186544772796873076603471239782782278461887110037286530434720643428611015895878356764247703647696897031031353693127323419940081114425054881880877329196658549267932200454269100947711074827893462202002036619808236981422316016693842412131049464322383726164340902128997124834356913462071482344410623661453180059788639907525089532515878766878488306942682789916746105173305728870777699383379407129143555611812822579201083015501491284422292690831878659433048598339397109140970630389046302639981851835951169340560260481218943975494312913311684294462570422321304803768070754318602050951070190314183273031897403296456622089379398521616713876589065815360997584753330891236148745925243958007989838552732095996003150180873370815328513821660533726651869713755539408923029429124078304923402797403085083460552027704800065852974811290622039914755495880897566427466618329890450684788534775708160339872529560161752666876516126816555307084866386146799839817575370530819833341052161178410537688099404209622073254004925221612222079718999032328766397593448250884194571093834887286387242680819733944374683134479089131685703878534384419950523868307478005788952071188312454180723545999991585130713485791963857315466401997117020014592102883034355469065795669977031843825885533385033731873346825762251082649889066770261382865689100956276503229816890173946180559050216991420340265095325352411929146303845652046206044844681392189219490935708075657590187935298263732017871149069828620866514545114574027591608911359960872376360242170934255998055430076859266800958240409803696684193527940815413248695245000671759235573469290762715150309365897201111592135729466951999413655489163909201180187221453244795769346616640765049779610643781072281919075366886631376716333642887608169999420488616956634699378708270109477199549491599991657532886682553696575672460279047629481136548340775600273836962667180517058688275085315751201603395955409857197279438402577771691675431680089983378409278516923038652665726424819419154652691485791922439542366746455399699265073617862795830551208128621636742253491245747848000004777220081656971910593238712967481552771375899330587208663460599105789733183657149410351185750249388024259914341862011311392304488494921013494358967314586789749683618456172532327655349393273844503101929865645207965302597446727576480605648897864312548873340224192694455048568443732618593596380295963699930820697288106287424065622333282715434572124858649464809388637341672542641340090205882419377653430147128996751110559751248639361141148594856963821445701522311473719684748580027942863269483324922291893141779726500477246937031611830959446154830588553108167234212429943432254776931933082046209367725420272037271618436077561550723487275310978747771935355375356162071247611233649496050026729116024959917380697191695631663013108323285613965686239576767547663196423270337225553345733069662161605849102930302660201018711323616884025522342851161005695099555740636039852183940516076906946657789581687014035875676019280703393605137214732744081095605010815868904400588587364082902794585121503893845672493917231676034203842302575059108842690856754572371749202684879100907162324700423895704497331058581687325975531244399245569943265880897490718645905422438643528890817020124082021990865872814040063127707988953489644387698786855417165735266848587962026064984234498299089717049631452921355074798331165333416085965330358090075345062617083054482335875979484816223750798989089247312793871455531450966397472959809003825335872911511899962311542720678503081364770565570283489204899227823783638747833500039697979625522437711520357544022784737348360325104211039387455380980230136950501533484202016575043265046617088188327140633181315541076492098724723018731355822267364214762271715531546896990007822233561316301972076615554732518438527956988139114047838973414804622278637545707927560426588147835481183942044793013299573585758423028981848121670112774976748017684203686489875631059653343196650038671556249011871843733510131475914813064794389531183765115219006038211595842902493996451770806500509324176510063674374289466480716087151801285220410469344413640315985923037950122165044327253816277351034079962202088147319628900021588960001739471956954093474278153728351209210800737629230719662116124202362263557305588470488583909941271560144469064140321963993763487510530663553517985712221743629749424880033938032463030577614698514439319063535141802295906761152920073197206296345370622724692608882116423286185440513715335944997909797487460195196281689290429135244712371063352816331547497323468070714654360104683448833317013284191859268916254107181079972313174890330338191672263532941651336987833889432716073983478864660826786106242160780810521970102353488609126723625528049946466360137189997218367617847604665353013835950676127637328852019168358580161325764775028602681059254317136677103568678956412318859662894556375626669507796205122177874888534854352341914791888413144664905428645790265771089859055785738220468932242157566789753918851826132871729148069934067127449084867714849255918064879361010845445514817815209857448071680282073060698851564465694640798513029931754611221151179335970380772287073708597566633132430379294945350144162034461484950907718229278279030838542833623433514775866507706093479898429067011085865509651361303314596815701334094908963953691887487164849244763466494495264867103737986391600949764776463076718017272344903853225709071494497951273872594001526065436840875809815159528294678092970808594792409491285500677542400581544251772612825307901863087051498521308813280761761311453265591648101786899562322033118110114019366542859411110107600670043356630251915423174567402977759692964861874735229773691281980762244740713566899429749637119772654038343343122341688159473011092106881481066418898460258634331014947917603854391974428196444920030523937870311161211063428618999132884642292346177761780506474633547854636580324662417167971341830583229340966500212651660670999530344281023770330099497369884733297759600368755020383653824131511988562356830808788591861045342932481103904550818447917079654430682092143478004708504353369241797218240140365652987046028213326765207484871821633539907339183572094688947531768049390814319068706928151542488059754882865774540280014765839869123902142044459339642152625896298089366216848963373791361979799403285952277572865522131881324607219347237731793073656207670261350718052469995569754358829088331640145111794824650507344550594718091684109213659170647864424917502627840457585931260033667680458479030678314106849518330324041651157875970354131462256733580903936565263309026398413655915121975593315820543633732622297563486312378632035544733431132512031888738826562819023492072621436503735332733030144396820903463091802284252917588131143165041126300816364657500480705980664686402730012405904595749558741078075877579348119453159230802752466412819598583265012104685202537508502433098090013776184060445338216050652301283988332488201447206625094461365430912044755464550338727906504537848841215097647356977356152067459416018773695353289732660462705005488925010699805404695691865719430090434273022474650848496552704282124667343517241449761631954525007417868701786642864199680690440612872648405907703688879760511730114537777664743661543894169460011530646495286521662991289233716050852228620065685320332920626348177520096657536704463070852126492141393749104539569840359479649503567799628933810269316922837680530214298548024233824182298534909921459098458028529321965010706909082492954047674979323944090513757377347371524805433450759835012624845344480935554289297767954630189640898896152065394747100907611931402868525986559496284510471199880910392250159507447154237669781838236451746818668626267873019931601678824438435898865025869436332050918288514872871692447681854835920302829233712170271179939253173544483371927637633971398293174357814274420179184443872437067031762513275801102805059989608132666891354047142971534030152756252260434429997620383252384056285430902157901688334547044683801890353676941072939387158795905753477745686750769116719192159381796716239265214496081820128301323055293317317979738054445458330492960888429540758750849249189239657094721675261167390905801662764208714815465980215329387544209278811222544045565118816726401080680852560225250836032040846195204494547907843090490654046157308160879455749214332226046496536245599563275813546344342071731342172037817352935874686107455536148455902424158739863032107997076359160457557987344168425635724259192720521799746478120013739032030615601768655037418976775954893770896347270539681810346077198228362291958384828517779773089822903326032083288160954293967204685083626503846757254360056639554650330003007030455005367708753483932610531602152471198907469757064745143390639692449593336898900612301276120207336956168390056005667815069578885804510952496043607010879311342972793615135035512606500086951212504396771934666302650367579479436196032043698761027707649794934717867403766724539778049549409639989680611119339760265660320677801970144915253393215852523029074094309693286396473731117059522813685039487525376731389476530803171094576868489202102400016093620474334870784893421593920563012859386672812929627778796885296247874833628422298118482551926066161524692717689533637292892658718321321517250441792803550323457713598269846533093206782661638883882282073907065642074199172359181121052770712485079997253583975453819152020883643497299157695714705661944918625391359988429571354131937699738535537998433710721502965996282074284722801279853085866432050010322239311256964236681053200069168477045058553242828901513135777265701445535863439003902756011038020631077522449318600230183325410200067935483054628126811276129182380794468810632124472177902395965342678599151301920181980140804376259420188628283705915777697949008220612389342048322295901404393700061693918416410624848980846545399643088654853604450303639291390541870250834877604081381015889102019325820718432131551638309502304741450012869248670667869355040707239096224974299208867946328400301564625409763247254407765756814230185119905363813620941155595491696812243035853067559528931404098493452495687426049637781840167286806100110414824741043258270926124908240635050030243238441456195060269757678453742210184957691960820175400241117044671707408503724119149837162836944362312030387034507297011440448024464879243529440833550852507384267811859693822199944060424828748498855000433950334777465925898650848616432254065531214512773282359515408566751523555692161398824711206437202088205228097895704433787470351966897849331244303066259827747470074958724023138379228276813666601328192288276965028692081109124082680025629925447137742097643160126878845202522606819303684913598042030236805201174624120816301946530456397118696490745040785498973698207311563889831328447918653224233881725744645930726724867676647655792469845234439253939962438504847520419578790662334520468995135028081968726390130701874477862088320426120598520215017378124899703779474752829742748899842549445106499457056134041421078428035285287753713822819552765644270628901301042968946696242340542098837136175220967067111608769769604512851345668571483865276277751304516959230693181224023218105464546302068027000844000526883920727648403235993654615801472016355009401250588928154584561104221405108732439462089199103398720568648434565008330760640085412678042379855557311186674608305446355623277687339145900241237377354795439820767593261084531545711225006990183108034705235486487099412822820353427130694452337621988095214891172774930496216757071141177844375348471596368910484356143587667812773214371837411211980646633053306786568093411307933393266256277568033373131115841939925334377620082530949618094783734995981347316702874563077786765373153828516965706145164526375824366793853383133695113932938628725225112836426303805984046313454591494173592840972417938245501855487535604813555004142814940615234026217175581419475849188676622641009273802985868509369502505624225774616951544741572520368769041258547913030990044152846373905768766003041599526695506522051585632009529095633731817051173922425666550943366592505603272573171730913975528236331069359171597726701966444014953517414736321299177597999815971268409165960647361876488433042821338301428649823812977599996337368244202942804769410379771109728735930447702788820610896066899136552125156563667852977082656140548921310646194274707829510816775032755698591701174273053944554370533670449017246070423170644268282002738568185266044270169167726008610531882488800887406376947641622991121643781122082524296679236395051617179884414883967558827278346410461277212458114571458291013210932122288331622328594690934834028128017625110556257187866525398929272178060357761062123799249014495360709759424091450242352487186631469266316599555781354301227653476021176757537409257141078831286567413143874585105609967757502079636664278850444453364776140527455700393000374811959060664891964582826572727746727131431546072674088670048491482271399831198066526040137459257026291475160671826512247153753136777720687574436404643676237593501997965919536869884692397864988280016612670464481198162361361628787821519196949740020652903558096014787083445209918908616388344098982910068860432960158771726899678466774021778822517242516827819672793937931849947084040081470093526796940408332146705933458084931045796601552452428135582574446869929317063497468145126411323136054200717696568187040477903781822677071642309304214604880467443067617015880851067421926739896083250226898686870481215631348225236687668015793318543076378619406713683311871252397852585551365790663423296340140779680210932203023399271514886048059127663695073721779167555684141842574451153663694401181833086842409975411391943755179766797819604470951690902701766812438334133090339334953856839830381781747216051967005267518995991410510814801701806337474882471773625562631621818100031413124102628819708055303479509931140719032817154894225981434816620120121271417065491900223421833248217950464258527295210895554772796015859165502380011019381679718477256032673237429566447153980917535304976515423181010522129143653531032264749088285723898667232869260403051743571208557895956653420868152294169189435231064523409333090121620699792482125755689850703144114981411739350425910981592394078313058378911083438037894843344098963785836048789775454730800276291119935728415324996644713485312507021483793890346099199291727568409139825686821342237583031318907103381983476880784464231206102994713806964666957674445837755084507253067800981341372094054454663628582441953993513764769136138897012737873766793214287985723437775032246891031066297990407781779220844391799663594269595580434258170719639059499816445841375620893237130089673785657483273437032673092503290845241106702195201036958269648815112878149785228924186799333608489930795830562523097539846171153143206090667495386813495586228594504369484911628328908042508900682508304405967122474395707243574153265109066343339520277808323491207019907490126236853020874770714099938828062900323542047225691302587366169075712253100895491327133255046170112984914254487668118561011472975298951011113525302113719143037432256280703549945128844670240263219955594452621267506012394330519446391091550312589493267822261495599311108315954782642082258809246134671878063969853739495662874969632346640326158447028588899877804134123087439294106649213983686637582550133869516145467615727851973249485061486866072286397882387274286764674922345137299275618077536085300862343484436941641889827261902403406948591474134314390375539505189989596229322291107178876448104946502087962725769780681528382118363715302391178493807773166472686352574746613139618280947547845060159237493389787111399317327237356177865081634002978178941448735296929835835926620820987089656753068805476294294589790224480593936539128417825479282901174679468301431164903872532582759496763249564276032282625068079081627718957708554061168853667348543423768857052416378885822219459666396447719373952249512046957095130274065590487123779686859531846255552177332211346154761814259050536504714635349014942060354830230899967322562832905814645879626318328201132401615516705785247065577371207817451252063233543076635779463965630003608596743299275567182243147622023532368837063729899815756623132776449312233491362622543918194607339656092363864299453090334397466156066965468774507249627866526258647447766018690120800642165552134128279540125065999102046672158371228774997129603308179903126590422629443527091719169031447752399337481654619346356790553571471350315999736712675724514595881518326397853496666071308992683231030489615395301149486902583938031254460491787602575438169843553448509144498720961856113549634982071870144120363953221076200020961257321240672741041168624860540730386378679264362478691007460776117754408417177098126506999941296951390498107371181864000757612079879081755851361812782240700874218628551503008922868877291378720888250161262544962043759992644691781778967923020474319002749971356266134692785121057096657194078674854657623398374079265979699037625989507169273289063310612769872710248075799966774449421351891096322888455061701165362560685546142011823316898812799728361432206165897283063227950664081741124998509148151977503264485866938267461958794218296681006336069275450818237257216862195903978644992372388149226844959107921819243149225615146544705262989186623848331429798036232011822239555841861774631088966358402682837365171948027718706401893992057209131588533020703224050684719551709923159410733244981416428038208679526904092009100100533422774516581836024012390175852944384791934798668184976227841315386954566027036736531576092428801811289944842168543331385247089750492418553992884979338355665576363953025437286093251331549664600256668284260448597582627290562454100161097134460144863417664088635556043802645996882373875964663250021314082863484421102345792832038617662341390126352528113086932644198422508929648496496649215574371745504524995293455639568647973273055605249451992504203733142575404207112149851260719000223600843225736304449394656247046530036297600870897336225201680690227634358136988851419009527140258428888723448170429329641099032733373789882376334814590013495826773130118356369033178542751924450348559028348292871368331170680809073308545841579107053906647416049469268749988810486634505726284601527851906665061733343438045519009696989298330396942464388907551273129816665161455221490755980881191367027432573999553323226686745768653939533545101307789481373892098122482572292958668689173807318077956977050121107213265597689513591955436491881834142447365685591049936771011120300885746249177181054404677431715301377159622435890145617029851503561823607480297810715730869820633337460324370323311706059961266097248483463219756803906573645991359081380529507196449434058990912488311364488275539991499710878305302017801937531845083023313264657437595168411368670511164816868958125166786847430839293823260949979679067304860986486099025622924447164310564976873804712938442807284693148336717039441953123968867950329877692812006184576899221513210129424584726708067376000033205120512014555505988005364438110682266436714936790138705948474468810459904885944303619364581160168760361105348652042518969183847586558579804551424528449794765754580628156754534880195530765797207612097779365022312332130517476396331700073876051136839475454626145237303832621810405960190054637933459199500050054909247561552272433172058708420290646830699419133896526800652737928034679896137812468621175025698787543198510147221212886278391286629367474441865984388601939947788389359338792455649206552451846321137960891729651604352928166685438748500293696305042750194702848043740444032828797789195684327811662752610104284324854590058572932465399089431478620526092968445719529271730387298101360759096445583924295362349861156545427144184807795554277274269056094891750629688666367266090206990364653683860605029574885981762678942696173202767081867933553855558294789522932721577633514645522075709078731807317592826176391459504832364992132544313549907370580393820130946917044599916163448581524170974702521257230261686252140935918708166967666857476483064631673705555571690964830969273409465209201397919959857529078850309377525436164592112803431332354362224967912849214881731775602487090527364506573981225560978279577959965178945379711394097917129351820944098357387682379683151346515752110312659175916769715741397969766383370374280526270325890304880585202401728705642371376244938693483540150097195566502552291718287743697016404153230507232981726171532990909203471651330050063974041488721300358192433444469340019799633931875858061098228829724808269532200060219077578232401920362938448375554606050784347556604550817997119246334629771175275495353011263055991879376524671265927019181570677250819125310813386729009636033669837104614850842785792247619403390472929915321849241261810236772447555591462470603226711511094721568155956536394706349889748798610166915292506154474272831357788798975835826393648059895827103018236198250777788076876996245748183932167700174956985449432214961293618854036444080669374756739489463218786717291731181906376581685810615214581652023147844061910076720298307801292345775733596762470321287388547209302821042220384104868969993680983801326196574137192108561107876714744750723947614230334269958579513020639804197315298861840264360736768087820008332164941387538451686510162328794080244895766056535885265100808586252672759258305309553711714200499255748024248158461216763823977674120671608583592046271109404273820022178187861598043098211076256912658302618905731632045769324831888419965779912364283085885513135152260428856339930535059869663236584481534666458905868384605969255660612153161504252823145397490022792638664141720907187519224231912987989969333915157384077945606251356968783206595313079478168450958285906544283005452555155203134874272357912060465309856434886635984969235540081834369495752632031867015596112860278586960409385353425443565804145356776737718944910713335169649859521907353166379956281936138782767788336324513506196698040724499462936562814917386702526509254662855552875987844019132289222939678041933912504883542868160579722654116899079975679177297833208564734421104161214498112242631499244254548327212425418549116141521443081125874887539429104194554677510937178307516932413791787730906784267540870249438907344768318390148626163230115126580252108495940224924074352708660210973362154900721909110418915924270192517064902593179023215564228534834887500160136014515015562712354049688016346763838310426845725275781373193112209477503254818603700963436312503190043361269682963328584174932964306194082996568396493789752204074367325963115972050551375263523027860134589079824671034190095789934431606157753000765722920485930073300317912792193911991098112893546194513121991524756583774145981790342881163020559801471797711121745806411911830502631313428954575071437532232410500682671092752024949287505644870862438659957106882636997841905922180192544638711309756644162083186299498601893739903690035906732152244006136922546637388247058952150118971018406436301689011474964926382641213706760910349369082114622821418442481387306078784727052321839325345902129583905357783059042731082465137346795053180538758763803114393566625724482097518827007031851979325046483062986456738068127954657023080358234399842946552017653711696946500494000249603775457953053039221575104473444932402727945643448558737668289382185285899009342198886054684259835783137869437724403933476713269553734701966417865686647238425685053355685982315402072664485884063768091645058872117938767103183946400194139118678846207582595073188321395801283807711434485121415593178111087912368764798399877028159419370289131208275159336509504458591814803097949187555960641486019181104063913027841897931328954603191298095878390181030934942310537372941502611981564038707817175625602854585361347311377157507381286506233417951480415552249348496064620451109150265140772311462745869903020574362619147168506286439337038829746895434060750048972386139762098533320380820646702831115819526527540954971276108174307739068593262749963278551276284955172514007178181961355137335853378535997843364459028088661684600761638569144080566988825090922997410261002161183416241404092358366581931938755158748621193385993771394147795270523594800683303105069210416143648612427806216627920698435409150165877214077422816312634435081206076755241511531660509888117240039963757560489648892980674202759292523125962480897211069204220338736262095119083877451272040443626920787161010147214843274652716879910901588003755325097318019133845895533781689876995493401343243267574028974497351225633428533333172217301199684589207092111139925669027893083256225985180384565508462303990167576223230012950198249462447675437833579070551101431513565402932583074550584574003890487765341851306925818565385992149129624132779607265301242887134255307649459921421757834933001491188016152348134521185380910966643079696894428831431822104218785820984023232071505375414052209319593817805186256675581957169415931942040297178138793456304761610855130949936158116887900991509427018052320970647951768991324106686137038139039236588449440536011458180839636600778069178544638779480753725389665004503482361059724642619910183881959872475159842585370904292516055700640529586655231101117717356896688769342728530950650431335844581551982599526207334053183992213102591386459827162277939626083807824371440621240498799048115939367528260346241165630591803966224075474463939079323264291562214386051241925733345522452188466338239671668457689364770664803368915559450594843895530831059085882250303943896917564522877921136423238713031732067410581435107029624761912956219926883110427482448110830597612365387152920799539903424855867053762394404503705871606911268487719890590179665825245261067600107267869130962691763467418458256123368606984660281263631321213898633216474893989182724979552693432220122782320801192308364242328641778622388914585753240726384695103648707332310995341122732771650809877438902937267476461330009944547320247514284614746318108130535751798627779324909609100324560572186599141522030082056350317688068613246254711341842868199706983093230670490901770187466782360387009136972260625279628966975822593483753942270734147769932130694833165403489120801733120813828271917593753801908075618386302550587011124409864013684497755957256528636533699668460877775660899404322305756250101671540901470572360069558682846852947127916312245189768786244092702482760892920855837951566877526883624664658358707724183088118703818554232267169625866768241965161685715031994065714575291808715476377363865913777848479489400659713214266077021383707695145626832945138021937523418346076377150829693179750851427590297288403474693514442904306299736154675641845228514387838457420302852985236721969345135265773071879683001142831220931795367185477320897468900037588312789660634503827970559004139124134007443258489158254839740062254539585198715948229471480609957321385992340095491819200102915771474152492713160588826590626972875611878786883272948251576119659442823331804850168152584546652948482353081986932690643797595888903396766092837918668047323278486044069811504286476340349141137717743824752664763557508457902175033897571829908802749721445710317058379179701668015520516109607036104816417362422378299475703446506385063176452900387932200213236439188464171454414442060051868780533959739710028228516914818622315342932560952680143488604435980351303229304990203249226839668141299535946884168538278464865102901431200404942557872404401041486933009423555528505738208026109759489447235791200247103807324370256014774608026201391012749325322699131559864516666044202796055677834209397182319781907100908945209540099661995708332755923400091954596514692624169308108886003918031286718196811913716007182122535462580156196340185676769062787439932409403820168866027788572107028555316840330226489304916569713814747281433530280955134946293276749528658968689814396460347744171015204802939996517383626422384656058202111111481189582141184139357687297894547363079553999986122862479278093810500501823789807465910190677633369438747851122733029867455364233159847778896450728031732300901285611410130956462398177961011892064793581529839878478676139312706675791804748669771380195153020438507266319099585206893338317559958558867330517959636583307437224266351527361189081195855862616498827930049952912404737226858662113258297261525153818447505841025519454828311029357616199446218433330943010602358157644435652208757069194407556323881010072170645770526298088297310380341202433986702045011198044100960331318196798781490992224497032065638398561830846552116741170683249866136246036837954917577955144500485923170941239516218158486184165565041794103203844911513780087207045861990837826311123670330389785449660485088870740872691318381759056081754594602139977896190462105764668936203825281202310095987652262717210077405729340408668534511850996276548363680461389665188765644436530993613999662677651019743058336690437054299407466639664304574942423692380599280249844994113131103522388919766476333155339462835873009305066720069502812057143358002000519909309619115090298947555112329671888125223814123000881958316509620244370896428864947347461283367394995073446040490291474315785910523219210482812918033381242824255142430080859086785520566429637758977566135859242491053867662025069846455666309228807956870580396452021027757917644745650151906052381916443163312639191759484679173512145294674797109085781452666362365521070403042724952866514778846309431662392559024915281944866583449173239136171729910331141143286640347393172337156511002496922238284018444250825789455953829417722705301642379169272024124355503822103721975157170686306861440938015792215084709463949769883763099978330931828136893470464884510454591289987669023962161576081786840547709890775072315711055031272907865388363245246341782382883798123027635859026383276770635051750565377694808956895985684705011474228334673140854972340947368317344253351792425589969156436886479676375206115741601055982951053928912514343004159875102714897526230103758556638286578548504369015144327899968752097062491741952257589500153863579134625265805404502347624910554847259410755743973120170788686495350997783560556874382662884153765477542529785689326373218917983119084072556191082043206900431856367284300455428333080414801162279403793842977146320949949575675657348222189130036051564456710163270018840235380637685718556895201196669051454964087717117949605998599747794386477539015347967954311727161353182709136375087586143309895273189096161662324812983695455342622371712134706384358598186488326356011627624829364923315712780524342803568706600273867783603630749612652723400190301090250200637416802531317460976615408310913351055327224620482545649592774422102232821601752843820394046628113270004917805282874775573265033603566196066664821734405623892420948701932219886774802925142399069377931014169291870771663421047112493932274837783606970270710691515169990630302083107203628464874923937824690724897974963329439141719455626813409356338843899072595983589096784462786087082351083083183040059486502220969263390918494824401976018382164022369706556664059764008929392192278547194870525334767222004451276773104269168181414413120860401303286239524864772129277976213056400877023184670957220065110986823816517478299002279736479134306830682949757712103230512029527905318564118506711545835043295668568272338211131270711590098046176904924348460296466767516109035109465564424431471560701145545688404724002658249228082565953169310626085059085250450290087617896151599482698934457881057307974839096545337845648314174855014049031139690452500597095499649841891647831881596024129225174056423698790887686174480739190653861289555583482587326146985795388406532453201229518992122098666189593914064344309841577319415100848407082861261800237115553440785809747034334494643428470834490478946153967023183591718223203365266719805927717766401120848642324223873037849922575762925535747378001054577801338809279507487099440080437169552209702748172290123502662094152807570814951297837539022450513019040265639577265772155766660553690618736008937026872570305975184719127779783632371732826945970204538270683345951925123888172291997251844882665860870478188705215880814178811171594409700681574224940650796523564083109800794728547616996498838592504163646523365183027487256829416825461818731752925312998767321914511533360753247426195710190934165508319101717995915725426254753995799084176526309378143451920142349232080785897899013101413258205189290010759633710169469722351551283606713850882804945920800249845986343241148698669725650190963256180924870119617239365328943603816977888775047421519368530598907474495520160378137739456511226958969082083319693663187798638171823135813177051841874564539329520462361204897203314755753360798379120615028560694950810633321220776332307248088463762856883719742127624554156357893446215020686204260276086152456091504733051062899371397020137192241482348194835099888455769620045205041497928268431456777545947294158654005809712552844538857364995359686290581323338058273866484118673906620385322601075403956688391867266543602564661140423206402954545540117878019528465137390270551111434703589478731477205171085784857841206741302372775929067297788264509296013362952546966442701851922750565027131575675034994176939267373101890387576760494087218342627095357800089618503389984497214710402248901469064697370450034968288558679618218492252444043297550273119468870978928843892977517517401845593761904198810079299208645288254964740189400093180874073870995193620224510364224663074428077964070329016887320160694670090496742349361251056844681463439927236199010509219268419189859877285290094763317321752788689114840350699102601127751183049301076795540096301898844866804778877270494599342254835842257386517454992301767467349940656599920216299963824831243139687670878872515264680011602788941022635077237113551369371766257671495538680510555770922929570824043358531481379444284764258629289773652526475098460276616067213754909327789933166888495425846435058661924257916155241611387019761714665722519678756802000683488194227035776000432851474824015982756339851185111901939577154002096626934667275006333906953324912022856764107269816515203788705905631021308015410077613945113549540193021972007583420722007113154915583654064220011135675410823210815402893868861858538544646151562218049018670800527224459930493790057416292438833928620981559971450931440074980800422065784978545396526851424260355363138336870886541450391671551614833656276890450016448351560296056871994914875740876014819109186126282075080197423277443028432364877297094849682893504492525795814245065333847511309747900919717183462297226416911316951067847497376061622532387185555063073948674994726921244267258473188818138155290305138346684897205607463983624910856603791201073792884920679085603946843810805279614475644671410315740267000937277451813636356043856176729197302927575708794215057793968502049246649308757822174889772885609578074630516753638513243268948541843348441687708076852551614692225128746124790343807987621257130648896357301681581369131369466583590317290932791061755039015623029997303502337272021900294023620585970922694090018052886093173594556034808583777640943773395580269778131781537491720765513711221450190935689258660405916585028885918191998983392867786751118239348920988785834704339703248339535875504885111115109189144344741850006557650964165570620482900245748162279034293821402281287295918245269773138574567408260627483384337811834631338481429610646806691790074232704810883254613753440659063656967428991660120778419862020918402291565942271476876271057612551225646791377828860383955597723193631643928510158307291304472643821597031167951579167221428395904245431727062684054233523256335491638916366633654734542291694501183869594295579751201596357029432571696611070157838429124588737234198819928161759871070468613670959481266674554137315182207267762414681456491415672439152819142634151224930748539311087519003483316806356113482955268422997998593053159982177777916210612850846307555001947409896061852715095413627992757840845395065086904377247629188462120448010568119556382096992657174328200453028717389625554083001761710178272761964589649439264000964486463807338361507296362650076047294192568445001083933302001433713429458752772773968859629968710200950991282455384838703325237385029181622553418115995644764078905224515889535993460191242490077323861426987337582405412307040259214385921577719458955819204166805880095840739753750912248135842501448340724909934195612642070308256947834910376315167383337039746593487773821500917367869680001553206400107235456976829155363935953870652824967558942607044634270850544980385518154396946658859035802410580413380343340100393657040027938495621200793298885957591687865867431360020734671506603541268328387962615020284367820162676196028103921498198989348125860982864231892583859154608568229156203640210021038081044734537309914358924817661264180663091108506235016835696755164583862859310447735558586293977720142313060324230563855866187582990816555453262328917917789831438450853939090305248057492905008388277800482455122079271629655716379008432026577835902286173815663156746195174145729633193674956120427110931494469171139038001640230976159431647458953795982144757511128975042417608236860361167771271475467345774248997866077342009284918117654203154430064288406908155504142364303328299014265099444059845686264871166092420387842025211318106671475262665743580089537367197753280029619133215108349973416063714644152169248738233423277389531593753533279955052742946097966559528199570544538022084868816198782981003049074994733113101308367156213313874529832928590446491116532523172799135947430623665874290574696014013577058908066404367220907238666652039355766294259824132318673339964533540362157575100180186755417720318619862021073032028244516319002994436877985669082451897428544258349796331845306915683293201380454762015109913357573920311335244025951229689278644108522205458299487584103649512365379686318493024562507543789321944172539424439112438078915053606239513901532636994842279459323650668268757456592781910319463640308048595987611804536992304393759844100414853640139092356693165796145058516917317918376627791195747562522059934704296987865304648077260925826261102695264744451683841175912530793708402663069782997637814530983427164010873465438517237730368547683166451411146631554394821728628932544322115205585736183926805998672296915784022096330947952765347306404432602924366137578202583834965733678483253223839634158550144899039593148872422520403356233150430957906460676186114353162152518886146129596772141999666022026032382427386666289828478119481646845760810844840391001916570249421948681779006208085095914387313066835134570721237516394956738576502785471204536538733301445823091255556791165170493521822256399004001723863728463223752534958840138629589311472672033321062713424828505742707984832926849301102835865227849525915681482958565380659573499966965533265320597369924640840220892790082843628431942709958059926242851588066999000192094415257396996344645309964506726424688133237087144812489322280253450955085451499849992887155067527672031994743463355814462091882202250325539980849582672637491332425586340959739465028104037508818446484766696191936741911632812172236476673760603224299833337292265243802626431593232377394220420336813321522713217441057901884339028777526707324567889598987272226474041713748864412040878031925748411940407791193932534621441252796526547787285093363686743304243441944366567767535204193046226662423246782026683973096223422678223457169709962026404146897982556003463288597166363463982461270314740241170848391256921049843050437769902799315544657803855486007355782936953221164456701815478659989371572781357789549884705917976803219325430904073969549038622017399989579874087875423740313254187479117689520444690093241238151313492989778421410920835235117396400312970510689568098272098906629975388878299939521781620462812310022521910814325568966355439776540427268023537001369085641026804476948061607013896271819462525465821754571158569207923260116483579843716722012081303343450117357709571509002644612596752909440343249306205529659475435962019187662872135320652646076702848860741200293621275540792141090891723094671087849339792113869450445835707182316920810860738057926597993499793466871399116500763365667492612288516679455636770334467037173694455882864786361026685984973115253385055419665041252859720954834141722653652341635350185567681591087067106283980912286276162735739352590084918098601879338956237878504888713111632811659424441770285868512700345908428878108779440624419261380437293879547577024976138727367001437173527238495030122532022151040208878123905223930822184934956815862952184536356874369482941093549414884041274490496795061648481199159401990965353252208842643694086224204836462926063723210775924904249141554116237997945021831350870442838216286968862987260668388450391268291546495918160737074857475077996825047083434822415637027338865905808324310196314776258608332892338601324787060641087050952201634271226811186716128055449397091288949230324836008208184765083800748325575788166821029041305760835052510157003239001033192248233628623133825184783088647550622368650573563323518805390917159658000326322683989985891948466827879767244336929460284441887470749565106165074670164616464216634992139394056013901502821023860886975840276281595918663413047633891670866464555166902371451325170218956180490313086336622761236960057594902829418085309469733643966718852853377668969538083889194724952227092672259182161525100312306974653347671986560684556948616785154049399234636134480922622082948976023230256961483566434035080541116686758945282969027414625376259953114954724698322470868168801857829336860026912814143351717706351098818195176277800871203287006869410271871283563882487134946035020522637935464816855965213612750973012702479382365526652168684032666027699644152862740829921734389009434336853557762638270189393979074361328722757113065541564253555495048854483997899635171287123289935109760649063664250374066527739474232838980151781824812408598212436323806382707482613544641666645976066867704869080529352981040098205268203226498581484410376461839147057382465945354565338584388409295847079594177510453085439125093857353629584368538843264488886696977223463692195782117238892919424885640263185951230259750524609457322632161960945677264326033999133266414735492444287048922063245539678175090524423239969992766414617034379723033632929316265792235880851019193239184291393616884325982851476443768681830075004044361985124367344271831297931028512892557641797395720584210550012084008363837164134679487636688036048649368162424528413066995584436458151627040292437458524372388655022804524078651653904467809298445869324512383193396192966216217386104465007921547866342219200982070186165648495617775964933893666356722557112520305577602649726876268115421652026912770333993461648948882284786371746027183621243643044941055313435587244342945211382149925211419508966369964605039712827222661357549893007381875813965472201030792367162542317110305428726531287145031636029281304628798945004224468018402911508601342193378408279132025036234530212044767810481881272965153313754963718312766031572277423241003490193522498429574707940296541070207226819695330940475089679460754264573209593366865918682654155034215741492876423019739798716888371674766962642020121877746172533643725368689582077591080445047959645574506592378319195059276721265235363569417357708946778778292494360247876579328101592665152391974249708405644990313211202723494527873444167519357829577161314010119779228923090654486295995979403178320898008619521964809250897843100715706799179640032085147949748581111486812133671845144548770442664546079426854395656760787543193173615405286406146009634898569754146352514369849604173511312283014048667355701724337004481664026247959843622033146688247961109542039270376868249609118292633739348796817682801402653786444913677008721315504641794858829543457001924219087762033786126713860027410994620182187714102187650371552755101623132489353320745113112892419418763869975652155303515573737677891315868085471432606136050217976020779078520958281268935926033584905662596086203409418082588924732966767112086840498009231001687620720438170531936135816480810061659341546161547519322025127770287077604810204926268482833416263838371623770844117177542483506208900808262715304289962413486622202265281044814857075797415707304562510961894250130635808634857845929401141295188510798738568662739299562849511036992899218035640762588441147239882656696462322654365627685828735955455026773923246456527478304202632757707280435416641642106268539056661617648317721641409147076170417658967311180850396970637923234804937393415040332121695353709810311463489734945288213247901489416780856619156660549360178625147788551085744811570807475993674286534813352300548278606000198327637533113667867140932417595949528795130820093166267315921811829744297979663381895526503862941475192697195644747905513474420359160034205998628910725949910055497293801229306592476126613346341544609176175387651212836845759157472571577289283297484112857149737899274736222847130199297846679904240563534533544095305046150966905176703287446308625214405598812171260710167748868797638175176121882152764425643798700722638548972302416436800303998483103000080989448822171754691352932741581550668411548549333565984270814688981889265263380933735828896472509479034505739330691047133175388881083013981660860301844145650355208727296364620254024047424453201911665416267877280701266097957888396965813881098329517509684162029510744588660567733005983693352340450041111820214219485247042004399133701184256906527912812548082268987741706193740492569578129391795283874132753029814414201758300678993297483165887951811373760546247804677748989790315064543482610915288883240557131074950580677498832785135358092181901009321755662009387733870451952523013068843468670250720175521370149361169355905271620389209803697650262114644903504260194115238626919447363232829695018465618674008484506511481025511258182289028903469348787740163686117121252062746813922179336237805906108804126530943807263008001403060365625849689966475200380503517438753932216671809499107482077719756017532292625965282696375367836522543490258715959912995170028607062287701780175306556608753862355624872556644128659632156282918954195032621263900024358482999482535934893454626251902629713422788842912489560798130368502912463946277256249997290333877889854622655399623979060494245738299405820091054849746315467220515477101104221447864794975681068309864738517444069934522867593866269026511230883390665260909221821230202730654404721396768440885064319512267498186730058063848483976599617820271383073898072270486001310530587990711550323960640851366540154414101623082019077507644573910497647458048372134789291785269255563701734552700144649711980796001317684967308842187467011999202369794195959027719818404025039609006653351472080493180171919429352736595817894510295161299850732729736150303469239496474503721052713840778922555380065248573094178124884576140918444907733920302964222145670948022955757693072363725950457990349804925620326020006843866194732772521875913330278608072335887678856387381256847352621465884655133999859353847316249986965493838219150196514449537643442787445561616870810059115057598463767500372885757158037307506891627449603330320859423188471306363121200208782049261701248695114721640316591505126452340222578830725326121933097221236999427981719722007676346263205166133015654666847336362522487203158638785186419314046300826268334491478855273827274613856749168302160440308531657428632945232871246824467845255273074579308421049577516485405434704698069885273603268276125641005249860257891415585481753742989180284012345860702562154060191662361292022863435833636780297365534875323740909054362081214860845790967375100218522004416622465613855339278678226441913196448867574530852755595441071433494404050482956948253287710138122896955816586112174887735068719553083033164053298219363270568537872047177633244497690919591962439572688656420883000095027887721933297340727158724243513588061317289249457849757337190685530746921077522419591531270818876549844465240489540255119018439995567981914927543463039590853807068634191390994576751264617581746813966533469254700833812891060458885161722488262941506189441894234305295913043326295466223739339550870815355048627945168942334772458858371287856370184109633137716222183174736518481330154928143329122513302090293007137294413186393742696109309200150064667463529283949145887412739594384215132192530117285079733014039225509242540206174374459532334622160670673123157093969971535671034408698155141685315906863802677500248531814090781128271360410748916581591251866701089575695103919510969342366831606147713672391695760247663379916536525373448005605514827062220770361835374419267313088632572082426539862092104201001317468576016702226264299353302810027277744300426955889519006088450194806422691934083984720615258989351103956777535716165505515940324845140052956302758843244969415760272622405857886478396772103122214623914837590995979828057267858480772828006949991852033529609249225792848442251660913926413801840145117859559425681718759185549858810826863698608622970783963011896098417542172553620121072774383509120253166533749443780543357357082862318617611453058438355969940073715766766786590304300628047959031351543620181269841760879751274167865714950988302820191784663319747386239693086696901897136554741212435714855061825923710924146603402078403990178860839299648921068123495015232010463741065738331138029117350743816889802307360603161814562466552383993469069780786726720248096995974408919146907591284225320143399288115958349266058839953646426386980532962683213663893488983451739122694910095461405445685371183688036823873039849021165996562294164211852553086876152300635227280253213859884652681873643154919287672593246572554075475422009140208429357727282729128810697419624221485569507255224153412469142776828751063006855741571354367493432436732606875183776780261366793222993994032231125494977402223023053176225983266843577525158092298974193045951704846519823211168251097720720181591838956403626731598660713088885573817502532828607772288391871872997682377511740008785287658478956644478423476020975624989189394090547811209393065247227651734269335760742539891477218175609524714715568757483321672136335598149528936022704785444058566673300100956122299189781773588465916042540498760897156534665152290323732783006885825095184363406196834400290544857223398230079183468250776859560417593971918998051297658089930010801548445604357424477121255229020540810500614808272750460596331438721829990258027406753996385385229373371444144837595056671601515344973950416320861195349405599227109106560142579618754686016661212115397545959424905359348913746157768687888647524427560233299552328039485633265198568268650171796606298683277918301337754895244760288433747712262235739361072907007503879326948038920519812834223023859868704819446259636211134062049433965885696567455050219299467493703366752361245977363354773672252162782830066590795740603829658837776247273947523056016294364469297762412909969979757511448225537905853905320148899965408991042367606669204060738285281508572271566705475896000522615296063833112220991232554281374935793990806589887413396477170248618406127221888084415844160556271997324128576229876993754913432387550267594588863343415903420929640262210685155862544292769566940633222686412195798189038411261676933430368057902994043879010148210468265988051103422103735452681184270639332239057880865133065434631389516706051167948084382746790598191946549299201853493330658164365460147269261122194488244639556320476003907065129961332741088237047652758188630281230576537488172533888774122948554111299861299697186771542010398665902984762482457496552141740101447045871694159395088109016271722670845250465887686038385878889312916519881394243463999535412583770522983863008204857713854535542626925173110723541176028257731488783121983526594774378747856900449611534768895396621907919691272273257351736491915783144188783238275527908846712193878646857837680045864932085595309850429485567540519207670136461206819414756725168131255529127908429709748725106161501179061040347636996903562742992787779806735781216241887084754354684027645381104228435363432879178600594318727927775731659999207251952544754678375874920114977203658698291474125518496050660374202547189160891267834368157350248453450211336770244633188933258567125409752626337127444466922472369308754570068256573342303660522523707514210013620260300576193173908939414840276520830660908874010072114063225061832327269023775901069995357848584917604715411784134870599993820020196417917813599640305181493330481617501862462063458890833850380296179337724556079033030013582581342501385917933399720675881141965839050215924962007646732564044418368259341876582520217887411254466450160747226975780253116817551916903557535208357198940015161425784604287238103902727424644714364751762342420603448623067219908548313827052483329654148086089598708226270507173092115157338019718264088795484451405932492174342323859501152957394751470100067771476054683706582469467064299402900988456191309413946379348974942278333574376944056403178934276881641626589219379188075539024373283374262155559424785872851986498457207734630820579665644179431392795105555807715041670390125335825054934887778362678473646348049424748657911087059973320383458593771412709150134606866768200650074903857971895787951808683647087205463716733353491469706050315923606087021760068518309798084178801354495831920491339091450131807817818777009407047735034145201071613391790715895592180528354393101303495845014154971252210294455962863378121779194188565231515708555283034777321760157663892586805581061252365165730218339429239490132943566632337224231938098549720495234433944114367606259171662393223703823455351891418066300311058327231920431923467659214271278268834522891535140798749933910946592027513412007084524268223689366910611958237266725987057352876634935819117820105311568294170788218605972298412274138745611075003417861995949963098685597084498553137672110920948554785704106217767727965861142999284677279198667308585734478494979019839290262865567262206053253949211838949002493263850673382548648219131166746766609014976360644289479063905753640923237196691641411557890613226451706605131974901756059470665533732905888467474518644397589926082058286166775850712279691546200897240796116890176112025281694740353299811451644938777116983650681944669583974769130914106276165270547390764526595574867532382591911032580717299314398387209009463476461795950943210019471773312661674872037932901312148109213907815167393035286257528815915251963407026991285848102975583304089161429254640464620704632586161562106859201417516313407992372194499687956829517029166638398516007002591727892924505902102091783757934314872559961595487787197889087275460458616079782880843773688264541354357898729726237281141487742151195123417498300390827048714055635721974779791410448700417867720457522617469066923388653797512975879440460577573539220137115473600556370958803880815059488909315251701276257578275009267503467855432357284652244819459966891864813286862077151623311382745766052318688145796057076381731216786867826063331961400988409728259594815505020398438288478779180760802602742968798425724480074822290953619363303582885105625325829938345824623466970614358768518257322341996185871014310113528033591069485973711561353968087017503295239223999580602400416282001519243172330889900547339883826933470004652014139084905423124607725711006378009861926419489626033196823224328802617935840802860735334925337341981953088530259484740556097088220674467435366491715874557146771842485453407731678154872696919676954956863029476344312606359882254639130403415699075291513817185802527435167772232654235256068286217826958431089456815745435720425344420797126654361421510226238979933853421268882516714111948669007561920866305949889363970665902939925275196180927731768841324481314631084272095728779527239014639343223642036947271357712465263282856105453568535587596906847552560954512901943554154803033025949531559705609292835045149166621004777806772347340938497214275948554121486618563900459491061936451519029456707163380563785224025665415546114109860716365460154923932347117731266230541413618051682796470984714154794419509507606969987390042152806627447202658788508453893289568216300224876035463425295188366061695196702408972726975638764120901284313133956494897672952635003153864237388373803446308098508915011152284036239252839361286137824974401158710616429808352980672589117598714395640483601043945061622782278129280801971181892421035406138850635024150687711555011354825549321037841983894621172655484828667626424529286961373568041048806819621721275984688960093353491484913118368475001754453851074631975339569522336688712008295496326497674056892158944099400797688473209141596653143547130452549763265096374357127867492203392490224017622037911678023354587620790239872554173954611559468951703554752203229446545655074457975940707664663796516627449470074196992459670894236685158955128512131206124110593327437442975856393158032728605145690924858351596350940495205834271181215750790361274002475905829006331308126146189630831352397975870877887258807742351954163108894905906017799769341879741516420218159957214193285789024262536924271300562956783903284774689892723426447974437133824498127981402493937007408849188677659171998551776159487389572273335404694422193613856105085928690018376356395614056980393037047980755298962713571447116054444672631927251676715897973677136085201513602841831030746293091053423411496943283052331373051825483189497501510301700494686660042877287258038393427847380718349697650484688347336739241405408390059672485657430499631167762317235514708098945758933389927174637943533491557114549414713349866147872208802988187349663252791125878279432491833415277592036336681903972289456217173291486400235136360522108126909542782156688450725566195467465043742700842123374542463200687861062040281004441369150251655038782298310298633852802209379465516246554063085534055561680800504131310600756905277463122807845492326201060301913539521678787354373205657914085302391203058947132230143439297512446642023232094331605759630302071113429183267802420368030283775322172576977199857755661643450925020636161593022142403069361123799703273618986331880684577610877218950059741752457489274282943159655967695405746189539385360819085754956697545897603658436298087878219706864074256928288105133416997253687357752931918064447452242062560828488208028200301625800112361265926633017794688057122260227555920229095412656514490634861832549957213470127960400843092947976227251994584729633629177545331152032364305503366856783379992415185136046715948296988944685307098724097992077268758709799529564004744310261355107761640255485405591673259819346082277395580419931519099924312754142602415142768741542583062489814361618529823938170521141235989117611020484810568479838478877518562405095160199249448514974605919192321947481230851261527994526803405267194024423147053454161875553404602093926712529761652402115416644047142465480736597067058058579320264300984804504337906208819255032600851701555230766621268989311041166074116229233161819109237633583978199848155152963845598611597562180463820409517060709751923868598863825899072317094522912095818049730630621695021971592609505984342369788020825932450432198319137446998075736795839599899597314715949646216252139109088469611195350666522994686216979869714753693288852202583613493630756656283571750182746302336206400710957330463096091716065644000003975286040747313009876188800734162544104637903822966404774956575914581515221650096867270884509940414642735957033681024868491305804599192802781398240850425196214556385430964114238847483420343471419208354801621830157952565618389842064119158123120688369466028678657888228771345489834577019829420106621349853561767142053662405438358684955431307730477788450366792036339508023458186639178806226272127788905864616310439013862036868418507404761921605337157942789650404269668526839376559028009456550748589624231602912504374055264641304589120800084579321713958770632162810239356219727890992014339064286522899713443002001942187533690817302822374580460539956560693848579669325143598686081756817239565254897169210851296255674915548394197349794272277263269784680687259010767236792701602903375945358250235425980497615322852776994762028412502579918902634147019179786662675988076902723151251609144417439137475448698528505074291550177733728708185725554710752592543289451997082446757586822914495917829406516219331292261645074739693349818370132494021236989325125979198993257985682216528642113828589916893053518301193932711866995398900534953260443399606766839467469698736113389351019948780725429833416462588608337900595516521293368316122057467274686457615661796081834223501355195726393402727821717681789362183400847849808171002820612032579144898048062231310429273393921392521761120097107284917466602789166998581550063052885697334259196443466647959680615311733644563350214983833567641587382719364649016529359723105881001940637978572617829284071617843123721896355586763106924352835738664854479386342467631913680098891711431938737220922038598777524901348664662871323912562711604040588239223679555261713736987644684143515153271164502411580505385329691803186535146784243584953293438618242564956902808577578261543518406127376344949752855836901571413499290746886410732359133019613658624449412152651951623415394720289147841415726085768613108711666320158640247622668097357551896241533767260252733705247139618072435324545318916755229657946755394363444288503028398914826462144011751230871829427968579199786880329771102741866185868539395093232628724808438456690032214918993930291114758009202801490900050191524218604480389058588298439206898722357987869425712780984373500601489622812824732482607236019214459511151120276829653372428750968794987832029241524935613560621104560585524250204696533647565865044075614962268233964244908175243931662081611218799507371547498190468109098471200972087689980602528424924121050092609584682766889665863229623790796580089629632217878386474424929265789035277310701103271744944234147331790384398939283751023746882052639569021948775381481672775117724303068599813102288797166775486970035713663324018009635035733111673711011775712457704931793975357688302326085832221212585648160073484179707860214822695231582363707052677050051220621011985814116642442376424461853418320537368157615536826864876181888409961408582264034302425016669526010757513377904479683036295516618545852171569364656480861102319484614517076246730829253539589378190319377092778640995243080529902431470947145632514749553028624421043505478293447505546170855799949619598795811213500512347346051007189658407547562831150185138952362639922191864327852423708221743202704685626702457988775315518011414384752681046030337987103299223659372981491683831958747538149411755721329086520532148040556320289661983325110596691182426191322886326464398045798832962821949250906470926325624291338540902805251513738863529291921902643919541056372443607212616578671867215838609099150788183038432958155772749049206596270054548484429567727661972876023451308678302402728785851754641591654781302239290370056611198396868153871293988657890059076960977995572792827821401094270033823411699790696447704561640832333320974959143249619341653537401260331259965339156810039524885071046305027632574961688768196074001953664556197670392546288606521540165758573291211253299304263550780817649155868815137943651349069194569054359743442800449566074930033616847837745676860150007347342974802241205587429720254723187952378927462274919739643149159188930324367006342408546978826737852187733679744315685769960506939205044237141478880918098076895247094967475934186717208371255228159238232615190036891490341211643758246298826554582380197810742438375350677187117421317921001279632471036305304604282300642433501495603801118783567647015162841336429646760118384086598160712995209603575221430018923820656139353912986600999692460143054808203907749784547354991546392903598483023299305873475696875033837339420340853349769273650581141589407478513698206890551097092262299713421616116502780544555993767604832066899490141416261764786252046641014664513417891102492791407579341328207551758448206982913696071882595928453577740196839571227207481823094572075009430907866158279309814022964796390633527873149462973287778611843814809124142002806245511320273532491722106700232782010859941580974715693421990533041914121669503240748934120084513364941599794248708072580991078824147536077436792325452532543178809341895281179082128591234946358825785162034731687017262173155129876704177930389217219589590404773307909397879912690868765063636645103466275364579088484722928325802688902092303583682029041893222333212511274633680883890520686446932847283533106646585597087252650864149918394361830130688932461223389776554035223495646010560381922781744207859038276645471918877269958019921782384085645713563033760114481994308042969974793789196781453349900880693620476061856001607678672992648044911142588342310735917025632550088287115388534101784509393420195423876626620247797539353773347585277646988240802950278189391516891485617504432631460448045509150762979521629445844224661842114601345989963085512232550333312667914471143516219019481569220718495201985376812792913668555272392781062551377343920481886458765334393657125596542204018702484044551617280211160165702280828523485279625400263189599660571051936160671960995659393315400968932360474508417604548182634174660234261805248629414364534049773268612821521018334378944616860752654838311529187266201946475786142496333840079167145668903010933253933665645756342907186638848901907499792368478168991649904166096270674286328412284285637034989566774816752446736146159195118547746516217832636131151353177363224368957611682395068674424756536351611991629849068703594533383162349213661228135423659814895848899790769698187041070892311087745097376804298894133166648743867186335599426254088756665192484405451545136558289298158472343724650441232319382707005460241668264357311349574852973362516761830418230785282501257791307483333788392704372675503408460721545863879946096594835844102121935274586031982793924298731685627329959107902279992944866959323323202971922437083718949487111763487564884476595631829868555620898193531654327782848995793364739315736383051933144271379495088221486599886711767969524046703802607362273493228508517329990224642826293418881365131610611046750458975619836339152717130813299882163067373085896442174260037024987173282076044133916001996391299339415750512840365391716957075922974407377588591484235644341762584027551577305383755838704206634022989445495937870038007747702953760139278348672790118192462713817046682722205255038036630344040632069076710939722834952377297755180548312901974890472512893414855142851456999096264088493892354931982110165245044535515086951298917414656344714737043977887743289947490261657065297155919198154305182137959211223568047561163815701779210086930157828116960883109942221049387241478400608022913545547106638756061678701767825830059001153510748319789989196913310642380727279006799786829478482394654458889406745046546296257616889481347657502930734441534008887765539084756459791167215218249639707040163961914536788886703584796685060941232907958196330574082797042634369697127257421997643815459276306379827201208207992562531567949355543181669421276956279953768359388258380815805154809963019864400423013600647626845268694435869300621215320689199037345962632289654418496489003973045556156129125437431096986357126915285135655765348439627099495230669088958404635796113127624688824947523457043484105077008805325291023610670765605597061859886050272358569552121339124687157024106333557472918451661259661084679227639332832385180567484486380445816642592854331702297448073901327748710787681961095642940731064248336795164366375437712220274953810773114734400190728630182007864120512911971938027374080032735280411591166323532070577815668664405272130721069206266534524016240133053128923785680317530363552217261798096472148007852815125508389259200924161287019696441463585665218710676451591193275753168754168338057731115968498176948463246027304293882710711714236320959981100364662174957461703972970074070497083884155667038827325562462085153351367452337671711808138550587644811714535807127989686576689890878427279747174493761249845156040347581946031139763115461995500841297188029820919183722224316558668227379388400439396244883899436959290310762659012656762811348642894373237559653010447175897115680923371266342299163820624687241317721569077990060557383675145137750773891185003410622831810974510983181304076240289167362694129533848536581703734319430375881187256115714557815750988682761042660887939069164052359928345735995628443723474513791439801174148279302141176538948358668567465973896647864606241217162774909377214042608645450807658753530374329692437176120674484736921832258583090747099991502417167514584579492159102854317075325943986627261141843078613629918848100553087752284735516514756186959712237143069737758933193919648494639296839950427136078482445422116982516333187179204355437031851530556837192502508372075353546441892669548926457848198029261738152938403485714909901128637775133593040486928352201869010058508725648562410814128391498967055934444562868286840966201971514261587396576442749656660697015277383139518710214794551501341272257631140318124147239212114842721413355513357856585724896448375925721398923081568008609321322827960006922112685578009649913889531563176798999326775794938404553765860719087415655255069740748713276321105225636303068235484012662400932947583919585724613846064434365660911217443174228878997742823074581112595936128036195931110929112243039560035873420175648360024624355712448201894316778957757051395542753206646117277805864445251087589760550392634451348978391197438041025000809096671555809995991244226595847305199958558612375282413543486932472338952892782436525821343156837773658534372707443423990483321370391518719906437942976053903893571026519452250757160420285970565369460854609065215194372671557791996830796084430690014464622102504369365934774635367670031392480763098652490554385870420620122868103620483725649803300512213606870013638182875036629146650857500935721243998295038033385332741121098022132731582127051820993779216376954469866579673341635382575898040146952093973190247583680942154826559167846265097759197987854444481114566633192509888823067473693583888387525897784260176569344619469718554659332839104211731337404092625414595536909605207539004130075760450537824991267049106657644665396983097414800763979640774449524361575705480135290618271493338602026297672393112933271937294293626369592970999570515604239242949578863087869839558174058302275871875206997396725572166259390479545750959496281371828251125097458530837943272153329056202751851728088571634605119007659499308639107706328481149294932067966310297744908274461516991686996359926879531462342917963349810736048540003806073745685194161057658148302008501795676233349507020781433425686068682703862541026037294380867382597141272048175104683924772359017350045453160419419595418746615411610054113377932764849182366503933914887149085217825206090996084877820959547128072748644398675008151796576296308443174952871761465132746721299623392882986918210524632118383276246528204793392956198603168667424394998304940665131104955937187426429235285329799216530249501669575362408903247088903311602924724076958330569835977978602576428222900359731129967313494206175022956502890906872813630897496310935717790492923661648477207372194012001776120386992869483295198229022338219754351776684755889601385473403814085089218258094138120083104299265213160715805135744221080182374561062071762085686404951478807027762278208326482432440816389294942954871047370513640202486393183449920784363463593371266181456650925935200530023576555251396694857807372540228912231975034563684349084070088971432656700982641301964684629721509971800137445839109016429207104963580777130375101849071620132550808159954257477425066126548259636556119347113434178196997564114901426562927908687943461886731145074706553214420023660802412118610578917046478290780177741867619330336254091610155372372588323320121771880977042256355091029937034636206966855059953556049330961558304256406985357319844758479458001078455025368391049440512299734495058615706975038073051295342172785994689575437098296023539635961562277556897056761422950330930908630559496118399742031460947491381719802186743726231591727082778333969537426955445763110426872081689630392982317875985453449384394829748601507929317016010851002656092668376453140791434934906448303190211403880206648170406464215551864704967121050771726753338524583966159771720769503303456990764948286709578077049668890945684999354298999991657386094118521327839202412610733742646966656072671366268004578108362818589986878956483136544183671575180168096250433266373848483244161884101286807500474245453869690729550003327677019955549705316290108527695620463041772703374807721180811360659498572864794687525968170038433695471862611375515476082159762112418839937265104861390241961214728846093785308831503387577138812412752672707761617583082003755089780476071214457795281304739534583298778500206214793396910582308207440837276632631510413387057886348291318141818912628054629223700524285685167105653599161654415241033648383966020957976977807732134740170857873354268684320459349821015956648396908301799317369192598176847448290077298368923664483442357216965673343033578151180473555585174116926109365560233405090983866502338307233322778634149490333516118337758753388933248175671579558357856573660457830867157470418671160597522347841779122109750329924328942495634538873144815705463294115299937486326503513386811785888503696274513963328008169298044611836607619957673494228697118955939667443422448907868724223522309227047495657662750803137342195674672673543654215020267621616810155109808419947942670357848904266255131302431577612471369693207255796385256015208999726352416215100441877218118654331509465433328797330823325810961424400262263754616070054466608025856560687254533770102330195622403654425812269034446298282203799113574178901664806518458353813606254136610064070145838973780463837735462670113422762601086091110367109171270023295233092668136644298379871392936614781472804790885217793273960385472965287382873502465404886920988282536251461177419949616757100980642053423371278241527599784135289619359469418222444464357187470205723338204124986688247357675348193120065319177700535318294215355780406231792595510446069114371186109481464579229784598359858715377553266770865860365252415986651815805346618680226838849747436266816457369969549153249211126067418281504984573964432620915822290922052007829060881222731573521253999756870185517695263958012315177996166121186828386753961698171379783907987348879049033575168859098124902282833037229445411865787516097907379192142612718141804547491675200263605485985554251204971686062044997195636527495109329017733834745968437398031947951660027650222754105843054762615264050917172503280841790530603678371819799570590922374594595509554367679039467690720539608167821356614353417639708041376291371862625950846867115719403629918829956033820711589681446054747414713277778442479722386733640132767777546647457790630744217452641245851557386818457694281374137057311023338232889940471471901101221576205912103846581178754448099046325456466192536850683680758724069812345761948245039741871198888675896532275744373023532467926879940268255752527721663637272417735786421970517578888280502501273868668024073859268637504207209321473199979123827236458806890171876836542278846256615189428209867226330956262166361923635244985226816771900784929126164738241048944382086561458362468027307205944060167263340540579421431516734417429988770935395990927771703600836715429789206823365377817738606810204818005229926354672800919094939604276366493903502537967783137170012503555768339136357580350529120246744402324539407169972461011407108061621474100687176959761076469168125637044410365482261239731921677438237720009745116262764289895709711158691477620042649213273669783128458683027872710320126881105031412196133609187714270611888656763728921390455796208376630909352120314530498203731789973655156109285659293453989116523745639239232546401940779405560635618624720076907619149410628477507649654674090544072449973558703104590267215257789584548743976602521632284354921489833779246890626026639321173857901489541918504054537340318092177774940125294411274201283209855175333291977060406854870828191000194916206776648679299106793287620554892717688590570672490583380788610387906203337552352575656842049131688976754865081633562919589696753964985306566754717936023639264794056810026001518950961076348132767376718236350347417900417305128902939194944680425546743053869019940990971594192948970574916551391635949427329157773417585642758922781380948886425760814049627255735360473613132865089789501825170014254205631481336588102350984103059889517877191957279593033527669068002919615737411369661988705879513194440308182580660333839335137216380694353257090594803605782677128394388183671431919201150509109107552744033145728198452547119181197591196076050901687176242310416983410001845804766572533142912648792155487768981131287449024285353500658790739066047417180907380549155999029321028676254513016571734368732900006515925684451563671664630886926362069164291162462818664163180452489204129007002844553430948090500932307689872311918555413038242514275591199860267560323152433433541561653590575039242397047388915204689147692188671754667018959535942905643499624208103002208334735208225367807722855769344518262053341462166530879617060475534304227641242858111217114840909472987636703978490683006319032418609361251024504785078468678405841170000636848187469759443085503296546992161245357421433809640470418760824738803382759546646185200008173323858388365005585043714141045342044376154247903158683310274816435186378968929606064156706455423981088158684092859781917510243978263787631502885182803527748022849163779868576909753888638236662009137810481148761931623852683972500798722995159542629313454064627112306335422686041307857105026198886557417951756215643790817710708588376407756673531799803702449424727422513905339474853319254180779041034383438209537364178831872552295645364072530302972205953234585222108036634089534909075770820585091956872259707417353830968026389212496648727408472552089954339549492954034985972136238578391375069607261652175292896045506566942482759654750873733171211584792191112111702115161290624846573859454305393930576945712066624018963779937346506418251257420987792901557366892669694977278825647022021153244646082594813844217680484730901778425921045498106982269380773001689869814409889618339037695691958029129906258537789782630337655783084689146327772486217630550616456524055836006578575250508581573328176329930042056379285059337351614625867585741638207234276469019039950832119357326472025212472248826402350488200224966288575460408968105304385476927007419722342949559017793674855016777057665564239485355491316529766200755036401214462368494741022284677400031336129576709669850869660775441477749773067337309238046680664713189753551969681957005106456195494685824972989935672999748030802422435389123956896198815675393588735306329564746290824956469846423142819496970254936521231338542637654292033224231093676335105522386702737186764181055398676476133760982386980304544828097277656366037197629812565033336066773523322757353672378587734542657657481365127702950577330887502243217171167332944972704402178632504280566687424836301891283325967786391639494187559882564694195799794813570787418907320341088615063986195699096389142173351312885589640686551718408610690703259467365421295505909632580326620401400956417273185215206926026684185689448621411567472794436223501990740865519537725192712835309932309122517191320965791946463149697753845550011898903679841445257489036085360137075376991078023721034448860314340053987430350094442675301909295661587253386857855824791410027756560650026063741066591735231118128129757841229353343183509750103718553253495532075922505456886152246550385969771891996176768199584039707183328800906287749006769233094853525740695916653336710209264408612657300222488035260245038320780459140347295930393399285209357468397172388021440835898479091352369891268364898220508737388983776634912458395341000476545215135118071133397570479898886085215442157104225774020804973252545552393433994663932569241036705583321987264811408864832529732137689398266296606144613479284121454536724486727489428172058408670151733713328687132847111416980278976483045415108170577768160374081134705302956183642518147545264411082418479596101134306482777927294005083314488768676434998847856422220235056047067535707559651791645779028902805240325411480107259455800663448891978917017694887459818805615930576799308468667547198946458549987858349982792799646776078922613684616056146798593005796319149485653119488982582072154339197699805046786100905045270967322073423336750708609890087818572982002357399476519680913730588330800329608925807153836977164098603530771464545220601543627232488569141180217861984736644680891984314368096323530443376047976150348923710261402107946845691585876211829887317698064273176505076918689276751383204030297214158196941102080136135111706975188581559945605039239545879818890727566923850442997338102348481735826826742901575387986142546837934032800687084846318458639158728795848351361116733326487902228514637195259393810854596070515007874020952128910346059831675467229893928900738264403971818129603587164486532282587813448904782918948473994510021793873005677196864681534964380620559662073092605483655282474790303235674366086961327755498901878699172242474180617227399184399794717337774289817696667968254086113259112577928933326526961246807894080385735121860732210516820865667912952892936375800904284871874382720830455370695921346894196002496154032186124443073379933461009169070600480926599891263873798117761374560508380524131129490535328890931435826925948889448627728176146274471489973982353507523100525887349708827660049051540533536479427382992698253298264654209905536879130563673044977226485486655415578869600476575285105057358853999087042841312819648744176294149178377728166089239788805850809266017095249184224880299786717918274351178125986846571346383564082495610251229493956410026392984911279575061995455223528769604862723406126586842622055520731354218112015070696510423070744517604751319873706831083584931516201126857624487442356107913532849862128739225927790415184887490744874188235182339511600464970738544476600450547236059762149174022323116932564157910184761405255182452610913603175895671614082540045056481341625382579658764390251738321300301684715357451285310756998894199664877229597132501985032735570234332902332350416061391203232280954869495486215150553360618016334456977473977857159314213576243250639032500670265457080960426229858112557731893286481609074578018154298256089177506904073231799942784272963590322143455403889671758357971550536227604784463477974657020261345729513477302174821395835854232723795421930433768501087162548616421189813746072957234559299700748067666745292623763325724055010815329865244757706987673783563677362983529473734702495583031944055777999467923612227104520918965534453671688804100062522268747667912852155688658516163484442805237888706691457856537804205040231124029182816739561397167767208411087776853368084827356204969893634025345694911406746888626383826719256968953329534309213149851917863097493506285632715846405350093245530323045653125954763629296375118267177683273218585441985881917277411100638930200363317912735548121475046604939311893639231071942165401975671111844420969372266842535019436545143648927050119404915046097960337362978167769924291297910005228593936241416707200905458950674179790305881534761875482095711954207622578296066383996418298471303568667346944087811756919939121119465346674676452022700377298945629125203285428390108838144421837338961573038158697907675552059628519606893831915780607321960933866149798765710678652120031958769874163199093159276850522738689407956685727426904924499231294181307782482413191870142078017115502178693748584770962469206927273360833539078403274633480705337813392582375654352811551843689099191911029595387195333216841515369937408384990623425225417688016389453954884236357986423660369473063912878662786268918639698960491723150270494162217135691898378462072613764998546588365655710817495999512239306483520585707454745444724861488077834161821042397874113656189478521354501797570059026061553474651617550529929025795712110353240941457101420625415291724528103330700941743864861550791990758018173326073179582464092610795984826977868094269288719122998683993716968071711592869720647188823486822209957169711306013287790338070980445861027633478665715842599751926390931805655056076260516348385163217548009815121790693013849337918244452075798377300088463562515493890838731997657990911969551733030603131111362082795613844079174791102670179865602618758799176747319560482658656998391263984796337623453826369221248585282326764657406196637218296064474227461391963177827107635444200696374063314636768882607524131287787837331649783309500941905885430900585917184607840536375394604682847165605742847987788399273235638656069179196569751613481585275534046890409869928316716933723894812821670606574275694500845113204987568835546163324313215487987611105070045347235506044765591805742110989129549554482472410675298212658245011078717657220435400974311286366333890578351670926951620539080810083696532231482431390279848798016780628193632164663293594975331920735147463764078044471697935376304497965592289386670754716069180927641343915880042841993641737036887658796355881174661333961622493789427491005240225681336381796215984896546209496509155459177613769654827452804132945995012232927137144763502027591308555990175207778098021350413428989621400416335879991601683912977274176803598075222218810008740331630421156413171284807918418576821231687036778577438445253117011523044667819683534945594626276075734805152613234769239132914394932931235425785189848047074472797969998620059607354822624431191822572105366874056842273712409823694539823026307560101487239352849467518716639686704265650205864079223810110943838539747601187828573638877114649768978832686595512825669335061379489969319355007785903779780578794458671810883183728306500700941900971148226931812874363257038860699788686322680894801064129633404191914010771504137386100510234438848315238303006358341797640463018711498910717261371628286067626209668628701380510022111978342607812379229886205031605206060963640128833141750251998585914189417793163954241595452540965834132505960780151517631318215324006548284140933726990485012336008923070314763908996869538262718590963458511343512526894432513887862513385375571486546366158363099665010204979819167525879664729455792761519288614592529454111479531344046349024604789781820603128031200615719777053419655250609146653791855600436682529559713389535180088319445331347011635450256853163596939517664981267239161598788852708356658133357017998012621074596242581062916829964975453433522162263775127452296487898400166691850636011809743689938550560772297350523597685133631500116316036484500710434265054555551083220316179558899773794801404831948978166132882698946785560804514860449324983769431544192617013237350067881179272633760030271440657074861310989709098327724365099022907783733090037191417689369755895840584878173538619911451170872050982699294110003876941087135803590839986139728735435490718005269341032148616407319443564197458227128917239430908334668808681698326899774255351688848797960634655211445874742646032694609986437761513033802109195643779862662885759365109215863786975056138894273042511010950546718824020836342743333027223554289723913952045923305697187087277901539176721386211987739682034196548475821936366600607828774289571527265113750750094825067586454801088062066023808159199703856025405660013907541500051260897207694123012764374901259227248989732802384371486980599868148801916947279171284622688871663389194516428618223180419652277357785897251508276266705607665062164003059369283459976578113621372117363080641353724739028717856121118805588975443908815372856027612802640492911269559095887475445571605056895199362032087216107111480917091313665668992223031227807103157371033701877391692200053159754674745417624742087778481191637842199802854594768678372519186944469565132709501624032243889942829726022413926886375399876803625838881715748018868161527231182018922499768898457323204997796631606322290695193122470071365414362005132844100556737789127780194819681398018828560381452793477415243839392399335623437010729291883618326150063559633392397564194877906501410469034033383722676938374067800165309617316747108560838344131754379249537433660372244805588402834494447437625548774781855249631553243059103441848830166463205257055550810973486065752953026653134233410309589225650671261811550476121250680417854077370159036358148947109516033662318210933749881332875621654113214757283133283593179340695194000145331515945070092762894421683434630900661807822942129988297705258188486896040392799583168023757791977417964411821594508773452815265954028398559624090252671515206500040112390865168205280848569207650116574440378974757075051667722846915009893513892426922370490789903406935448284318005797496127094575295394526643691163766659683287407352200651656183803452090758830261640758849439589594989183068177418642521037345956274622786980130853040405574852445505665193647598401782986843145883938172417177973808935983563439097695697996625090175683963752816855747159598181152514343299428142968391773314972391838909911706880547114289925619002497585399831910343600123831230339124704301190378232104085581165316324115993140866057292013822160762227605417716730411634255107999525506555731521055479388025574959210628305446770635750747528858528656822745601272588511892836557581840740751990599539763201302641319577485907063152586552139624576370470752955513806127822336616610680669124343841013746065581237760882791543443986827986496987052459129525419996846384127690581373478062996568724774303323398041120687678552741060112529871487742323909158437902800600470204645337122542901014572991077830600637387614826616183778609655431654038547514384011737367081525160760467387334582689634277265848815243280487739808405065458588687444031702720145556373698083242473850700903073583251494966763325317316854318371257699781180417031769076482758964829535131354018357387361277755143686302667949070816403833752001258912825789790889535017262122089864671909063956870019446767103988859854890719149477185653311882560777613266283114577922554056522249723418996126965926898450645080924094257892349521391684507017755959677845667083771952079578134639852062681213162289900514122795869417993538458787396914727327012140217150273160698606507041884942024064053587897359506629538050098221213998136318002015591551864527488357160129623875707548851303074376155131253043905646935408540770229211587373987807014353535221476994977416866451938486429455009719029905609477258015889703868320681860221861602680166078117395613609759716145371103424796437108260144164562405842235763336262518582119479547726725563702160076662056197992731203071176395150384456799033448592449547906927283632578007991556047324424966042504124266307517242595716454006501683064902132624721148973641053086761818911229822005925472180670659310711739104250541797778933212695237651509074403175196453929387041868219413194014790654489426657264594149966935394070458669711317253352989664110775703588404360921904284873618569435929475747670022471657965936285345326117087181036378455160596575454192581165320978594857702680951694225986572659895024968628178115222664703120809191531586066511420155903534132897427549021225170819072195386715594406984767514992629972624605843058346253026718024456532435793976266652236979323382144707539904172394984450064124719007698454189410217612191029252517872890451021774741539247304693196868029555901733709567825163871017409796877395517929136439298848694996319562131339241178109103537920427892067207033030039534065640803906551034403086663501336402317752279526187276232740932903274112819900584711265528273466923036451057785603753382585650849782723211035597223061555803703154031633204148630499315213565142444725653895831982913700911135987147407489312971909860486139041846721840784451972183953724646182879034952809332369108162497087532136518777614084610119506719701135696796220356278208667577609972985869971650475022455695651917255459329939082124646599822936660479982517563214850280653100428295177927779647743295024526775278265917824933894877137960799298015420098319686169891612811937799160290063637948735269827384317280421457053363877772212004922023354084412252715454105600215487914705452765284139269030318820956592267296263098653902076941597511109783123545147713889771104400500220809562326367500696765111886126851171084956214167273029049636906021201873418820125352487406879608654420255633711035451659132707369856286479932242687657311426020426587073854639244804522668660763467699082745208109760607165942857976453328670263835421007830004571098322062425328172104829930252517167130423745146030238518824147377737660925305141211846830464541888536646180582262987199681041342072571842808918609556999908070274373107773532718357978737863983069379869079383792771154878471214065835572420642299184343706638590724181466825732795811835966669614163746765928878815344878013366653775976849540400821027409627891559913963164347948164165139314991906227922199706865486911646930788786925865103096747512626977247090785983536041808230546955916948632632257309913649822737385717992731112155802906724085837873167142678949957273078339400684560511532245074207187634201722411073525061685388877588300875253530226806739902503197621891724334892010107441393872018539230562635154907063649925563197467234959340449217018720379709142792106458608641951856633826563734708175706676080893647246472627669844327387474610147183257391943803080000679464627722946725953521632522599920624076986414774666717386991461248479118750097572429754929044298117174945047466763814218032275710433769232966089620149841207087093562676053724592575410484556582637329710418149947585546176981210346698323885555017582583937694029597737365637117424434180825238033774964060073640390105072399126485305466635004617161627647784262950901849053335359512948134519949135557889348576945076223723644269823401272447254297748031685661199219464428989549769607194680810225705378079265950145982372840810911439671378660402901900266896647174006781265547393955333120657399839304629171494670814122941524100684370529580737932000982593382167551707212165673207703333839556388250734083089926685472353173060330343829614377835575658183510140217472394291919210508397732219892844279042706872832683615101021958200225731409744127936289715194903063578300899020331675523012782817039141403443224169851736927847126586996921988827802564300531459331011187229439377041308901989554862042877388989227420406716568395967926751557495467479984930867134882084042293462197194899573042464847172958852982726719684523419647190529681959109047855029603701382266400980625529873785147935889707558676446182515049295173889488177312061806219475520641263805302630115557262976877125008012363448524163120486291892212165900914104133118950788731655420935844293682552645301923586848099413407849288555193130151306532243677696627467659419109057760303605220891917852238894392224363644401012456933072577430912982641709330676889568001282607678088662863551590816637976276435783290510540317179541570603989601280780736231142728563262284779063439568785150030026711701326321204348975505127189451585274120222779055465546738238285756497800214144093996706161497818733700774676987906789460795815307319191114846598092310215679974353396152951634412948593594858778997574508211007054568533323323417991349627031121342569610370018680287015722589137001000775262858761035815800742540633740521521185079612783881083406818421875831829796905728116053111312098434378651537641605502094675870318176993908706385237028632467411774955606477541261247252052103308786492215349453926099839015301808245508703198458635742814923594359911900898593606065567154472055162933285342332849510799289559870789076014710277370104601920924720791781819477458358505026363288665998614453942939116308149907023698982709803504241692839137788458962702614760305197095874252556655770850012919589617010374245558349503826530825423586688534916586032304377632662873184879616130866202868720625482455078499507080459283993611091132021268921878161692697557069609120651812439584809485414724430599401748809346932415486988646660102533224157080976403834655707418973742553093348806306346868778138659452745050157542698514628152333304330833456036473231972624639274005449925008892026742017490860114272134011821460217349614908534196288810384901700292716570765018733632843868446830528653192526999325380949106588874607124889780814119923706616615981647272178158144940140218273205686930508485426152138603228024676597317955259250932500249741161415846648308025794688488302469312798750506885422991192244313584975956878087362331574407892045192391871703717528275561417609910756187196636163654360599586321152043486786313701693529876264551340000738323629857990264397437338445054762166863266644339385487794372875171649463948625462692563591266876342189624693976468312948488205229275985283162603272713053513060145353197129262986612044144556052700398251072313441286727735855545362243422377972595278848039666975066922124501738541729932564739056373983128609669668655821595889362588343291826457747496920689734102589372423821658047246996970363570171461535109712395029581257128446536591098349362479834016398680299659727827057252707285364314004487847027149474973956583438304932987100323518471710989672678778565456967648710322254766079481181402248699105001336630469295472237018350757251742646659591741790537407495347145248770907489374650455572136134612510163002152362215035655463852672358098324019568868927887103656736627812218126770247396109009565868879867854794504621700983771605494956541008004747488797288450193037762469248664369163223784095308032724295931219233852099934178919396877139357218796703694808331224910905723496519736050349449228841915664576329304156723557886995093502250328303218079694489058219748443498031739554714293592736114250014992595816515458286575078675984330724055073651461587839927402066795784249372072690118220152938141337819706425437970433066643573605327029143474264702262396847807060666997737823123196986268618156731435800795301045042764712195551029723612460593675774386448011781515431813479618909693719668199112401530759001769988436542387747164253913104194015137319374513495844877879511567616164288278345360999891575035760220485621939300681036076253785458487552921600042342189628925458026089474505787029198417870543239013707466107042184890957622211852932717310856638409505892133199817871228863089385886346122101808104382638919642783259995845587470278246460083835129733175691576887146603205708299756259178143373738873663762876876561321589282692973291330858535399269402109165804449626114904347579405032988176870188630024421991748041541080119240930894371540342486746173893303737185065614857733143919962068381307843469624460408344814326999149791519841375719672341930777510819841640825792748070733930295295718971939529837671582109100415806918611364783579213193920206313033467247779009497985852754140165714738624927545127835637336481867831451499547541151423441116060098902045534571275057438584874325958640321259965839051700175142616865230215138299461494182179401890084462934263654097767611653792222477868434717225640782343230156358438264432422836534598238767088275232751964224977566212862580435454600721018294628158993880684624388485940544342418877298425589833404337659604143543783774885469985756048879283743846256802332175519838878880257981766194258139776601534075022412756765602834526578895392310212648738245973171951234252649217424073299792276940547744362628281688604292472750770990192694792798005380797457232095334067831178678015290393344277252447047119538708644079926675178549406528611506592234238768262183612333821084873870312660576158713685159299007439285949119772427424067068182939863912019870072743969199491308407024808755088920522112251734791095743873396267153650963682518561781404414867570649522406747143514834107390283249278284056332739646609614618944284669879747430323665151739226556035444554924283009176667381818420234615252699985653902073907260460015981850029898930721065048092471394198453106517612611613376772446321525374269762712527892649736543672777721590843695985274859470569900972716686879097833458374164206059374184604560936662322376509073842161601400895298672919883466135699584916569267188812226420485937863351545377800401171143917925856614239181857984329234461091640718985136893790700184422084409250797900858573818852794483370964736973743676966249779048681676499262221654279682868751419693778248700256357858666892835291897480993098209936057983087962948983659069083629022316224387602060396720219163186368605028965313240412094691895194661808399667655161124701261726143721215674074037911163889279114529290943235622362981716250711152781014530195800280409030924721726556427621054109716397178621137051928913762189548442738558553644191750904827631514823889739074037184481749003168675119590817368992726332356968377301330111144025644739049790580785346750595611791835002961611016720170222248252829958445878544822618116076721970585270198258021745802395828632138184904082748526902708781796590426738847751510534703857955282857524742662917367489796282269937447214230495929710922941307538378058378510087115946235744851536140689588670336971994797431544716992289095432914122044781170459383441964608355893784427133519900509197854165403840004295396474968395949090046954299601563124895187259315560891569835213527793499707534869170602365420086664066218055305529227996259124269925268700056880303115977032797398587670765833207448577782720534612987576020570830962026001495737532520406861013668566397781536768176990074436099738784738452487438205251268938843659710104402396700836642215339154469384179246035743619487930234669201859894904296383869277901942011450716180560191714543045329921572196616573448510593784132347316385490187750302429681501103189413510392423463476826248239979839080060122420648602966951267796103530384394904248280180454833213095126076561005636519126327291866794670155128139060529636061210930111200557499558146097215426941994780899634670583490547866706665664079409071645605255616037447532422800721258935156594805856524235711988020006116197363753540788319503215501506790064082389424360458084809695999031926001744870991623968359562271891435397833482316213667222997524621732524057531017193400953955416190076528876490857235379852238196662801269036686780455317143315657962796159628021744627663544995024832545173577222015643562666460725890706954425349771902791071605060032104740738939831484164210739585307002896716681814202870508066151760967774290889825634521775573508154187147674933101507650810347663120127788426100555707846076283349916369477004277643869951355020608136745980945161351129141078674274684945019704676088130600315791745378017626564620195147422241241495390446825780642701722082633888528951123012895170484269523917262314938513006720152171011996182352490381346987527701130603964666857772711166099338088411055754525620335420584188998712629390892206897103195565019330809917478456997013369580932077230134933642889197044149323786872197843372966380421493888355929969243775066220059807212576130047891571111526702722816866523261924678886550404596343792598204905833462596597466706676678476456693059404040051340089440601728269672668573090663404848651479782655752178354865490109865407454134899879924198163038090649316463479497212400627135500023220277957829121572601162815281529810855218228101433981698385876329572017648297240596587381764973340045521321747795457149702207113738214645829904188594619478663109373884226789167801354215863226715475983919980676076045789901823035741324605633177891136012534595592354493975814267802426862073875702259018232828814835327375387948290177099105488441674905771772687708982197903710630010601757432845628761246573358725153095092779350349660643593240954867300128985508107416630006650873028592313787413000885951749453617015773951478727277232054177107965393878780985255609481686489108560468838676631318427598984495922344823391060840725998054478570463367122794876083543787896718509417145036814231274765945870766166499469161813256743937676552323286466955088282539473220395321699686565060278823319695257455009708042515927023518090416165121164932397017296861858129499120604725236361506626923668512039383718389852673419361018748169652534832951990552239124999812935643953450850781322820568711670629301985812344721301415833104392514671652754218237887422159650799302899039443974896674326957847778325055674807762321557309789779209618517374572129561949279010107584869439348160885622518946433528898164791870156599636235266788402946641260545030938583130387904308801867540908008811901292410872997647486140611567191840591429063751420521547798953863288113034796185138598844443605051455023809151467835854987302853960292092434296086870052429506466849648584439643495734458175622691394853213423586054622858970946172355488419376917249581782997309911125094884372463031287434007656218403620706503016190298856151039653290557046162796841851822510776556191657369883899603137000904394756917896140000776355325381788310338938985577729396724449076212825195067603069953677466727047194365913772923177324116421508502276470363566842119584855323054848827616712235571922598693194256834849871108469703070179090816219287352334909840512402242043773334975631455841856693664612864437279457957899887809687300336775077947666918519349270182924233611240778545572099656078408321624099014648306598698233472804990441488637076829914871183272449740273645188796682913426597777763896843170701559973205418328370604557232475289326490583985843301031791868341514064353805416755539751303934575480157062554371874739100508935984865535497536670050946691130813818319809403388018414866776529608896870928410623639964791499401233825169514711633442988673409028212010423728889594607377482762158312249176497764920322016141692656345339996937876322236288504621875606594676654955837832628059337238197103579507634436417772325388303804800197773774043510372447274048367213431956216008311975842705352189439505207966298797628515526675275837360572595882279625758834097147740268542707337734869072117359802178418819698536010524644373012298726361106522117624861290225739026873552125039044100780333995722464373453128523317635723742321493825533034882361030390319308517660152695928191710152922248497779429806176817544988787683171951851420544489753928544269471306037356733252148513051273720205860988398430316821937799507482718612210798399588660661671733609501418929293920087718922016257078618292844220868463880105265894370980353499751514130496550073221512539283192884143580892794034738910407888845383909668122912980823635971737351896717030396653929556416223949192006164706352670492925762146802859344512203147044553527628137918771774371508197449904486268775670340271763307624905803463751788242419341393489605017534628686183300972111054649798090903887654196512813363631806150292190176875490950721378029341069391208050846279899003070145777616452195207891551704335688044850246977127114741883520071946030929049310211189426593896043401403739157847706621823285090375889967865366594583867572815832119301761780870618861492171403594072482224271323884793203183772757128468420807201254333817575343509828520771243832622262111122512906774127272590662182221878823079173896694699995994088629300003260854399830784424733147269613366311773173222564390020803987527454322068052685462957837706621486335963956568725965043347245051476830374501959216216153820431961562170665661719967926242951279273689887702898768682495045282005488230893979406458380190942706697039357748643372696359218902554216001385978691255766137315424787135974541460629547852853737396966569444208999626049396306242954866021445271767313853133218023842769017511961658575633310365276385455526906466720527817567881369158698499381376267288061303451601980766365345057453947153713257904070124520335875086893906712635529617492312141137038199067286831772026483454538566232312145538595319731188652449212325888490018231523486369304498330774209057830432594134941468020303015348866747188648124277476675191478833331893868921168174512454082921834422264163176539820748137715005557059447298832190253453001768957357528258501722131254342795710459867487674798223759161028508122591217554757895974690474890509211231180139504892779211612301605003478885089085618803065524480922794646455728031887441253474541404040449259075082397479068113499898195724723799806892495215692905532781548002123770376299824907705593189204651937127802989018495163591692635105277653699415403452435192038526194395218794108927779512561476144245063304314806187004789452517990712713264521162761588299306730715048479323577968693268402104152752734167533781229865840833709731107385057101780417353740146682389493153749681462748372608878068977688737821338146617214889762897724313998531039528411847148572828495193015984910060863283889864675016438473662183148172324811338471980353694824774865307814086578152523882867080244648584275022329754510554470664848693675021403054547643838437126428452870168605791185819735532126951942582735302841018007882437998397427469152944454545290974394149836312943305158376258454609754016225641537867570318092219699987668154482025169804938650316806588043509742316159133803499438174324330122467995475660019380918471562512354390647945761477689898659195498246609551814757122933296704409457794629629746867493366884221130046630898048772258992878790431029843031559428727219684640479775674962070838647126851728383525356788572497311525016229709968919427540875456563686406760719051264392621628678039402677523065046888816394127918227459944869494193138805638816146399469123836092541204604681098043251653674400677989830731269596836662297814515238021719468420543743037882831262581066866402695270006371268341826380086993600342236931802563288759864553324498245331716320035228262931821259217809434507056754563289575160621155880830396089120080880574454632146764460279513296032448419599333156001357369742725101980187371347183574749806381347248472090347122810221725480410381917127105560487758055688100701041296715819753300250271722736285649370933477654245346382699359001069753708991872191532366422127732769366876577349448365482884456330613919271441807051521347151720637717141205892142845449069899951314365234622203730299659137462024261018338390605074137520235845592726295314749933520230747427402931990394878821444882992379877817175557272426605690905286050949014571865823538111204907061264519510590374712841962698011469192875106312418109566789479954253565215081766141356216900276139842007579715017321305986321954526730038151429975784140301503491168252632759579212104766459094209302917850103065305152417123192754618321924250129119217055985329213711055427449605145270911543469935715964769666392020037004973909901813653530313845401566988591119672513692137972327834940992141168143815002890303942896578459857899405804348905018687842698384655876312687060391351297142948829706574091434114272122063362685616224719998920230585110082638878006535188310544356805595613410979862942715626613455018168546695589468657004686682857472186851270018359592061152529290145813091051904677181994847341665395484644249760683129258786580561261458488724495954455692831302361251806064310235241268101885826168628236136010247442552326570739846821221962082393554616631070396824592455657810998245824723571953981448941096954916611869282302244642452267838315959242268763005358250206122315593181568627761630970654450637121387382009478218191022105798547238472720842664379446558447041953200961903775810303997996741367726480326733959126896868190646677863696366674135432633448856021327918825799160223178778171289662158540297757412411542938865074153138095049114882384841197831311836901676534243874779499566644214559667599751035182950541187458232839041194216943337625580880234993314862703240105658829926084013462569564317513064345390764946013822312408085624653568901553724838901871835432086108488424962640198499690400192670952163049222100977184117781592549258215324284158308432456384960089297348195276617184417829497404216365676971347103273048457360963163225615052740316057908161734716933806032552369226733923250222076077379957985204784656723049964633577287351177873021346579917601882935645657125228483354378327679070477756177914272490652950009136892126479048376851579139878491461604024136189961124602348862539075939433267325686862234413746744792910093650330581098019864730676966065409722918291396614515180957102892044344667479031390930223693471924066830207476498089385948081593632632676185228316792415815634433108833823754714425653269240813687865149849203367490898682718327543241608116192116547824256391371349559022967110810398016158972072313270927425485686662630349541422506384317879269431720581325201384889828106766711503614293929627964496298940972101383402681899443918016620691896434649748279707059224488716163351186948414728363953887771392984871947579788728910236278682458516019667910662467026743052731768944167179171227864232356835840364352860189946736222194930743754128442567924137154849891499066352077702143362758087554863438008045039826728393131191181814763373833264054358803898972831711635738299568404999483871423720584283977508832427224669900761234501597025755973572225023836986322305333961305559070465691753894874935685441559209824013272987741145700197337581300269644192103879391224599788856446200364046503232451876262705101591248512290106471518179140976726421048688386192132400267243093927459205578598100408468019574306375082888320989037798547783272359699432418569789171941732408867832301911866311306633123779401922489800408948752243508521931972764353469396988532734738017020731482602275014055789563760031335083658819404839595904470677952081527792129483039079196472449109375661509669224511577733840645927475670872680748673144719627963692728032099376559281103317974300626230183056842318000987357849826168921252617987541047307897674868968363966125391772215239081342991515305988538436365779121686233262920509964101883757320855896900099330715100567748382715373200787404865579293270116038842121688124514326976194830211355449395407169863988377054401189119879308835438939314711330322596076164774395942308615679041898521963292702109790350415780902285025560332244235893859114867920981175351070363683703007012847451282291067493124296066333212636782437227904799416217286497289007584322752308879528843531260033453913882322601288478285753055703106890748676164123938903183192538680113941378954774046678635308018221283447857192592522995446970826661864023834455727214764051782669345450816406596469514349101218826675102573128135772016545394546712524111116117591972432690038887217668347681784478698230018099441823077788599473879447999577976713166491004584895361035368998630299023620242391591234368637702447919309172496860815853423973740567409336748252883512852087631140199877202110326757310226330111505078732790776540650881013454378317980125627894292381180083023790683496995892521453848821545541760220148587526154906852721935668461296052155378732593884071658583090703136980027956282859872543493297342302073791374316336657707924594097761672567076310260360611293691830101284532325547502650171606932559487259005473502459657560462382886202592878141649639116732874822524990127187329651445403658973984150154958853117381851517941110119337036596536964252789364440549260764153564915865105823327921938984340468678158649970532007339213954668747760505127054571607281169779613775632017438589930254332584687209896754820371523088342536828787317708986652718641248879004521823140733174949038137912133256152912949688025797249215501193413151389052759970744668321527355812692937830857394647597554090224166369548803099223117736544533675928021153681854682840501688823772987208012359048319119158692533549423053543443338853202376472457849149336921366455975266833990632490014625777011701992565338214285160687516061134779084770589837112797901816651478595736806882944093560001658650034914561760840278769675161679556975769388206096182029220395145440850349597648165004244610592679281998240664444171137128283972698189554473275549688602265024632017512890764872598352445154026353085686370632026397033586830238495887537412418893868208067647515058520563070605552069229065127200411140038861048816311910334632672838484808985396720886101656703307046577558699788305653705929490209717094409884769384175998909096289267192360477613087033955982115281243520588099661505815372412860977689176113622956774294103811473479177463111042089924366186512769001866954022759739858095706814516841574722646670676693953332660083356052475007391341179335345929615277800717121270157901338572647652225724629292658003717797187738065036168570847056559186496492476991232633847118502673527607106610501082569441102649423527015838632154709263542802599888938030744129156268865050232611187744936798683100887119151632648922897358901827826528420238759263611787342983730505332469655177568035695454172001081386668159547247191983679707817829158892198817319977868198372914101705214717069977569247178175854887034170849644238917875050648170870277670472597555787474179759804259601655736961026983123801559557378136788097584001633003708587850057150675899538502020487190808201898748382205897361345821993143552910186656360510730169720803562800907068897724055977353952624827993113688877583084607440931059666599139791465832231048355558049339530326205329046345294462458824135211563389428429702869642507692661780788163360753419513832595071696412101988344565095752521623722055808678997927995771038697838466078923189999555084536912703260811180497377360462572522039228126227100975394250391506359882559918490526531729819870803299410143701207220532542008111744362313390844268494516471108206462461063270580013350054470503151369807270219927392813766474730313001066134983823874714984806051108934911485779408673361574903157647690832499415326201163323540788842243923219917529981962815656136966943053365850649105663013014432992787628666428106701409549338130177563905975502292305613928204988498691192321673343666831731950073527638279090999535612302038905569298608281788496388391841334752511487403244484292936333867991282318539452587342870206468134343352746939033374253435442380021468980440731921490287280443907488407490397730168540375116855361299983508999016889366309022015277537636882280580685787606626913577470821604412314812197348197237573265586067075954116908302894779369009515710238737507581956029982607253279891524599686436448861133355008941329542668490017947528153923635180725589969306024619181052153627393031145989418548524894351185828288400913603990683513026861602725241306364150852427924173804568974280010177699900504490370010215587657624673789558612363861204395898269440848841745474295519239248933462476995740104072144010186019335921204391804751773484377882558153409737829185755600856132711423661204491724942871640031080229709116175724076030639027922615945615944682929184668623174719705003092710142309680794278931531350606753563488678392071366292165168563184255787171243064092723498068747095392037172152209075511797049455160970857162961909638607929330984046893671958609741859277799570605019013494071307715829908062550490405105924768013420150889347898756132524586342646883649537877562553358135101044664956682101049141815272425532723364353717417345823499242553702894544365731278569261338483223470137096741004897478543765947601111178848134792789148597447638075958074538971182242549447894586533513846888474199604077035199696603224187448340712770348972052773367583347075384547452221603652425089991149031909994360780559897105482021995335796604039210603320851069164783668288636005959695628150677160127631139683313675867974774453581148604320066854015790197179658833921686876486582356678892657461156968068140198627958710361830196391974157980401945097092120944223360784708616928951641744979588061588335009332045547931240786633054131837629188318629116117326404760282002316287788651540566499784743281047087997596194192026871013375719476675204043744056861144095417888580634090709973083487363284516443007496095849637032263160267846998527276074626277221716687202525997833736787457567002345026320459383514089518295730363056693361053300014157914065491895724895435298465547519312539327888370939288342831305385242604589527547786458619340552233309801478266742027055597559950272595829443943025374308511903915425777740736447038467795129558505881805090092310611246531838113294472846474968381846240425036948951081313709022273394067035537488776249435421992967325945869206517430496911688958774083238229539269388446030591584055580137469722828954963440840752463883368082063754016819877768614794937433747365043736979780080197009512800376867107560954567341512864672061911592614617800716007712125279369263923541791436978637851293967514882092146989422712568445394386172440203881158857153156181784362870717619440600673731681958803510455127537916234853097361999695668930046864302670515211695406037576305858904457832098556581131428691884939406582528890323185293366351044956934108101172106882105142019444532346498211384476660543241912202241176872848319942285750145423857133009410008324908043748028337235647618016944228316078669235098760657819136324043155469336484382715047945101113811241045607733975757165684735392352622273661069687387374240734796041152081154406834694790721475973398481361603835308690615947675480195414640833101933273702354536478926792039556551764959557907147345698637949891608307547563266141771830356554706343472588766878451636215501470319941793586446180996634698487584163044520016609127391520677000990422653623535276732994901150737929141874440845148529285664814992241525792001648477784163972834279498104766297115803270873694494743555712014682828895522731551591336207906632795039128044377192896383723880788741481518088673709546803628370220675124332760692117934967424868305846829145823969534101018844388334104248266514348456872259842928733475549218700834495594897677829347212108468500359328122301444020943904792211726360158107308631673910968815736150929785173728138771268305758476781170258600761345871406674069197758985825286467353294156825251975293209203951871679973762065926610262204282837723584585569458812490317858262028913882875022208999174638679164949376564905571746055850646267416118289138472978004760926889567446234382692181107040515561588769003555423497981141651401646797063092076938312680831342985241339989229279282063070367872847868984536233166743681815009328705959838069236866261367361340204305837168962533119078988621895186444321572200991916922536928355085593894563578636929297620467902985753530462788376679205170279024267093518678448242545318008873824047512800238431026802640909277199018847411015129833460321841625219471112538515811641540184489909631663019782014877359636884050690082921203463338127721863548759682855080305346162497725607015967580297852692216258228622856884250255909169223305662248850497579491268334645596850848737263270550542807731232431678294388993928870112087552522849519407215385238118803895370782540693285910070881481702977183909564092191057247176863255188341723496918827057129434029580361260040502901547916837257067244851174939012243323876741854015292305946412006196421796001337255154199977229150782348948675169949230156057784209993199887035973110913138222595591222988627051420711601294434075144895693936653849380900119243924233266333969525838521823534760460993959264992385489138498365615615660728238603974466341265633681587822533344862110867970777999400252375004802802000659354620782351123140969252507751769121256733495478675405657798142017461966169594459473946715843588865462466151913219411290909053338482307972660474785157215386109019662982433242505503569713842429066742692951477350081119575556318800195045794467151323806655747955328303636856125817409050897556036858752628619734449886789756283818306522339821405512845541664872654404370659581347261840235921519804118817935636486329489054448158115764104742958845487331091695511569788753219181045018698519842944688901613509402404213680694201341357550427898746255267517104233460923194025338956636581308585059529187033450221881452987268750270180420164505971091947211222949703446396865374761926468905419762345070126734551825711929079486415379512598903218146679539800847419472636521284120404462987393339879627103930588571677758269366016241160731700270603748611911644859606241161270801352190480058884567330992761006853918357345602505055353247128941803889488574625897824982348816974424267629645526352727595155311707899994825334640465931528405207830920759848014940013688469849174229836386382616538737423987774806477308827235999488755999187847121947469220632341072527611569316788460393907508914726739420581118230644362917039926724864069096406242456334810873343863408450124608140877595337955211375782942483646914892874348268824179075153577329890582379914581077019725361004419662859768520531738202980718545447513224378806387943336694738179944823963703682971862359551117027224455064543541684779551541691718918586521297262248098361516809789666809254560660737506464518650847570241608256650132442150641578180181898280966135772454037715579348429810993841035045520671574287197920620145441229273874474558887641767294413362691719137099715378709365082094088605583771775688026998765792704833574905196053987295680775706741037302769456552455908955323457615097969716883475374221216626325955413017569309294423880366571283265321294864735287511066727058232161508340284092613792780275853552039341978246100025751015856358763028072048975079131535166540707229767200903116524098336066336133157834394437502006737095485257962253715843428161800297002937914045320560598109625415541471137411885417930828279711830995445008776849910924241641746442015331744651420295723976875438542702521846030258086084239589827440338140543735071086172942458723748782369979431041916937946323717665541583424185442372274433838678770357454948101561714119652048369481345993332301624593759590303704776798258545248955822906546224007756275515027754340046219364459165433370552169602183704919596519736096748920425719387870194996529197795385250704645230075137886715676082474176883228801523644721789481835852265550030234898268947260685704293739172878276123744825308952542142983957338486424017326637278640799579602891592997987545845612291275725597406229845667714193749185889183118672895857940740124612293386551421104298897074826191191481284930079874678093570401018822212889367487897614380728293277060813101000425685923949336917816982872617442796277061319353642163000080697822153620222111780917764662780695266258531823090187593586610954403696847671593873464754576071099100654556183061851820421637645293033815993239895258042550498655378695636774646646188794258199776796399111390482767321510888846899406093972762960163539325826439041390021241315918186590223339827876459390690748568052388122600676770374866192656528681701607659616668354378733032662241005400774622371503016593974661629656009097479728101129748882096281361101396979039753250815954621823175873982077817806404363374785887026768575615194560517791926456601581898693836817799535422102253358539983987037608286662421621089170743160120953778958527748520145884753283245922866898448049321363091212358012168138914072550223313588632210569453783234994034579222895202487865008430179270347850723632582314950108612950773975951007063624580565616140159514133878368198684913248231355701309424060444769698294665045331153594954231815462788901403979330265841085886295187972050171992420366800607809458010371683614886163158662988988360929858115867490385958869307155684635679672831509620342032481646120975119975922536354606141167048458384195155414173901967074024998897297554420562983048611140559435538470834911907615811686735537353453279495424564963299520000058776850653084124718913602319612561371889195315517791285745502479001810300718538308086104639936842437074822375649321304637713744188025251993178691612389978734677109949105123374348794704654200432151003223250558834385923358234072844215018452176607512962724559849111844114473798790229987710419791320084175234689071313865936718198051597793175632855944380839370322505507129187420716176176825429276078941818918191148561957637255810412443456240014777673285613023231512943819788934587052736834451500475424958479239639639088421606078327800765718387908826459536612929169863694316179831783226760883911752927707939556561255765734453790994060943428395779026158415128493330387533971196284820006979617734326479036334556401756507072872101806782660031354725359673749861406363672970766351772607223363997252217568993447777736266393323021621322242559102000183100719110591095916989905168341649516825351884997610181014306219641459376784904059001761287410283847706575217319974898813099344300210597191916679221628532686026229991119768080468307182405355204456447338154391872288019211737060525958421272222097743270274068363951611439907724298811870859382584216748860116628096108499027290977709206468839017988666352330581460583523605774096712740069578316834921761057744989075866564056185880892267050246376620928715892385321052188197698314544678587673183763884526130520540895505416062611118153604589362566899731785365905733037743157060683123326692996815776261174352281257194802851039247445552721818997628068658089547915174792119345749253916861750916835025432847959748781298824446672658159601118606942008097868226170432950747935877519367871988310984588362052683830269283622838653108396712247245475212437932533138540955677292118963913673605751904319502074574250115776436253334872752496702782472542678296246630109943000315867673035225620435321197871542982980333876224025661747066514222527253353624952586868246899873872261618985348913752152145635934753157626740804330988144216438505464271873680364713269017252117961166469451565843446224377708956781666892380334334328695275660021987963515347842150210391145189486565482338776060574034475623806915292437651104509552723673507043371372858016668381717455627939570247941122575128408432529234421729990021726205532941411781762183204239919797999760024131144696372175224958488710884361378062016014097213202480613241455127820298535486777787859816986501404071100291542931583551927244148538212884853384706742979561676049608943810786261672762529016796404127970530671450628295923167894304519735147881954975135147427071833222639825320846819919780266491987367180103615931278864538385160805630130330490804229864785498683364041299412598541348996477926946754105043666553867513530929594898704577150090696263368494983062777403504947940256127919166113144383456130570112120613878059029886347555981083189184744066950477862589837473972079716664492311571478010188692820787434437785328090090630791516348764374749433271587971539313115494474054982052038651007740068649412791789996724678088975050948770675069373682852458045382306558003780906500195244101662509509084893826702922368032037634571186979110111131302131805458957250340163907109330822225355141554529104257992776639886913005175409032406488337021016095559910175916655397315439312328954350339975872194125243891063684410079005360266597402107488220711646812465990169903677124007285916835004960025877065934510170465383472870264461799607623442997556487662169840613909386741948742453935675924917742508863940931732648556193446013786449134959303632837380318645915075006847662853422291606349723031613936245881404606740614922891955766294517660226246125486683973842230345350359447250146274579916540986219309190721736718418670168607229833790366321176106462031104728575354974352467668596257398618628240328214951550866096051650530833620992452263852310149809175661530093910023927593870770081301046155923197487170908362125908665859113086309721190252216645018609412458232415487339502356736208673811653397805270909665788456347409037405959087206007530180481262533498271892153481263815454681123932017536863050394991051628121235242504832576858051863858393626188690749386443816911459869478153809645661985813894105552563876972860690611887586070003232650704057200441303917495368959501107377110423252467320594460224651170219174031298279895332977728787805724752727350847045768291013971856157275101941309720680215773025833402320188057337166558951028146763406352780919164027562855813063818062396802948107502125129601199655456282511681853710616890584302998684464221566709427146279961938788696792890078099616419178791340468836600185434629663537537262143349545115485608996600256110267811012878269275275797480818846283925513467923242859447050787184864259898299690929433841210830806477135873416093032522616658960837237655573234804174432520814150333303431568228771532207805079182735733434022209446877186924871792679192142398439532782434659563797490845915287444816946246375560002124844963476582782635480936376454462291044589761220824178223069030511127047233641301947651057498353175924965057876587932209401170600255519575190871412249925502020552545270473960247942631939274373165292746555095474594818985396714564442841845223973625164990661665351840942121642613584261506529219466688012908713406510776216448698885941580769907254264890732316415679067509306570281408311252866101986446459234723112160439194879456306160360131399337301098115104517115669032427517674855979111441959474445738868759789984532972412940106477460828566457397271596105779723234773137579573020352912218841268482225431188537300179788708629314305619686799077851179376560335500769667412651264210138332971609781023785038010216365828789790366350158042712798799082214606121414762755548416480754691916324287537797307637314480103867817243668686388836667894084962881602259750099516260963505201560835342184658851190247113324160549772527214144721261724196210565155776279993681975683338113994432444837183621959682703057839786483126316672671012913272542269390590932148376277084577021673558745023552730422105829408944097712821259548436890504213338972002597120725312737433205051601431791748744628384087760801886578414676936850440379847805645957025849925157866392968123887692724264296133864055910044110345547394749106946798423430323052714277565296373798130177678500248696938811481703847074922978909286548021684623837292825548629587806369162152927497578784031063717150958987149986098615958929998890551515429940087985794619113639142421585522655174681023496171947776584759747577862482360214452779407014816233827624190177530850739653968269665296367375569765709837809809560982635003589637059709591635289358041357747159817195142335471670995678716097784359755328484026733970701432283929480182843447183949825561961766754419333434239334962689894631362568916387094320787159740943240629378993932899845174176384224470042822456356108752309243276234713282780240016907891298729729647485934029823388777394561627659310734999981264741307873958980889046579891418313962540020441794005119473898819237525537757578896110296653441686806227841808927161350555694686161349289027798349753601786175683331900995097336834174597455563650097214043534510249038042888724293551994702621375923301087837484576409013755967665884425553170437744737007402853895903830778543767704757585776325246749791948230661381686114889204761097753204376721822485568853836789340593978593778868127311947567559548638109376065006793721735046025156361915849544491439418373170522380980834603293426998906561375742179620287827082113130010291147753919079490637503117040973191417433124619034904847944783529207329423775461743472713059476910840021719723539477846810625571441984542488699741671027400611165390304385727838974346025607836713151306815342320922843253007254801151372965922393967141107970919452152291526399217859349503778840934317952386202976926085285803974785129620225997848313247564693500189821470478245960430337374899902802927609828353584304094283041249112579817755051533571247431244107141969087334501124097920967487655207341986488777431116235500791788158367493451530512212607939227117836510367478578378412598013169680192499644739509528103109601030195980868375329479573654627860501337450554220070552919041839204036094460137517865029392422399980089350115927764094717468325199123088217754970893209247564686989591323096314738030937700336622754891899643215065996501561731641295862284947327591397596333462913363007991402256497882629533849355261207534259336186053174340640558170542354229132062678855756330520767966570800211505817005277093631471095415833634376915155666954422562115093498280941506546271647258272386193988970794336379076751531227943338564320487195514425716998650072043341684997413769409314672875524681303588057654657277863087160974452749698548688669472263678473939172965563258949803686021970782039193993742700249636827133940417979590270752275077841001131653825506379593939926640217225220746014439381013720536418821544210831155837411058411719901790747662892977825371171293054859157933744934395048616341769436768018880847968769668940206702720452275889766551913972364272323487247388520221300258533271349257907423643166550410101932868679925457269750438168968524312163767544503028191126498975825047825858175309300419445197232003961074775252939924169391737646817543837987094208857067553912497039760083837620041230850250137059835422945187266474637408269752886348735507765520787975181610789951554521767134559559609319062950956007286421176378774350327292858631129547398488224053556293726164803020133090869763867016865571879098144850225541145841300796985215707971031962006200231242910856370769349736041726997964034350382633947782719362427075073849624559681515475167367247331572238482836297008921734856337019227200629298085808934164238645421899508521738121615744193836715133623036793877568798134413960726372441152343235949892200765834759159658438332408623083833477037843588073521600462539478673116738304079830741578504061743526794537565375142812682215198856805835504626862232574438556532010104200529716340246313164169696793449398799146251711149743008888801183453979465875939357604506464559704731237665568623767939728333409540465459266756474332990529242172929821203308725797732635650228543089375856587838670706676930666265672486829838128197345231210268829063599129967522915162634979235738599753467594354599886577547926677613272983471828540076518378782470369851082498386599907480801179396114334898682841805156842927690478831678385315314580532890662224980104423865315875709336975575490482081305561054817091567675137762563509856644957280858982449221950166896436612752178718099767454213591557572054493855610431602065176796099643405380662900688695238251417210713955054162464600850541187354686993462945307794522364635477954506638521179670662945085919741214784796556807997163702972577137692842014413168639307713850020859691520127982422317104185176979358565395322926524189814066527558933543276604147475680513177340788898867799874166546594789395846834366004368588553972230231572068105393609568742540844667419286079070010906535963935549112944918211103652050001863062733739886512207203216666966095826665327069533003563226108949278837093223376431220429947184599551961335654040590797662616647928983946761144192468416190436778726401552415563476416010280146542573229517234666054161750980720861455213178624592616553523376167243086079188258303938212624369523595866457521640869065387010520498470347909155674987825212787894378216650268939437043948310393605673540331181979574062224087226099689567226273654285856926608345609801732150586312675179061999730469129970995807858365027604496973928908764472828719273901952543931113945052786461835252288798591208078414469564898151897424941532928759345624757917277227848116185966337444037551952317981236610684347611740777159221017972067264526728847937992143099583255416208770270582808818255059521224977357493561839878168273252130433580377270808409235764036072846168833484346306600714358838333473118079375281316695461907495559464128882663809081508709073505020787102771740169367295428375615003665824836527597492265098816373384094034978747815671320669596972280052258810685809954394667495258400060267507263128449797480700885514192808728471831727683109461832207992397943604630955863158763931622528600631754507213026900250180095306551446642887188440401521455319691502165549580711335940651614397541135859426536111490278542010074130062794017348728483737139051649704884875983377789477050069507918754997647039603062523534308202616214394047932673360010281339934635469024937726495636216339291150123189188054555438109552653391050583518400641005410844496204829981773446028111462750700356834541123822482300367465103250788610727555487269686196228329898479119974316628139023853691271735994197579596657854990521183198867053919087192538833086379703992124378030202667506660632983632857793761573400976182342282904696228098588499210453121058531972831692917670496614774694797585769461765319356690868840303726373305019278436190288408678624105511789898501984046088066212672860380610005482560907114455297113753582410958772157281809680944011568687024038643173939439819153390657639572573170414611833441505660816716669163113728475453707575866841270415569050289263040926829327894891816869510972271563921517756345060889026249695429317803451436335949704720028936570664247912686572005626112783225753933470339219761860775416990474884457087437034705734985277030454673507476437695365710521651458922360183099119868000699243836920960028248150047830988534542186298191149934483793731254765191722420774775053893437366439417573640818334830110525756371402135916155285142987712863829695531427184759553011275114414224531465912610160119311189414540463627392930560966465252243136044692691978751235015772657184082055083740795495026446204902626719021512672758099057545921172702987821462867954318954205518165574411681329781986990131404235295805770342072168695896097292635153207776794920938462982343960795880888244490312847260939580574504485714620345670809139462778607096786199166486537335402549491503386327856462716581075494516964331989242391257416299768655429720303696813227627660035551178419692233322304373195712184822242224312299345096099090988180693277741572065007025709750461030430745216001947508002602244313570147421212790581751030204290440963196511729864540147193438383871653298749897464476448704370445427100363241638194573057768692782646292783504583187755106528226349945460961864686120595840408571035091180024230809021105426697445013163018256317128495383637247245050472099487520949737746341774288573796052092219976519173025706901425117390938629953096079631939764627122701678928402824169121694418582184599253030314729675331572077953643689204061672804646713054039615662243604248582315415124059984645275829828531015144548819901419153165744983384036193119126501053915188169861677717510657883951637487237289426372459499606401197151835261063344533397905095934782455236406418862008071282580598453249577128173153659460424149711337274018149857582148427249021261809581716248171138852908453017506835019063003553701324189489291531048817670103504061611733551007375348383659422828932878180432824947824383758022002308875245656416881288815517662902784891601996033818022973395902126389648222703598883967616243751911822348005341026288816102843533635600557006536005994848205245007238437092210046997137201643730685867306939870680153840909601288833171904183111192885858386484004193326901275106434421328472006181566423037065202068613608695672117186963493830321778399089860957541693315024328570004952026100935686032541909054352319677027699322774002589254677110160376815399553665153713838158962577411179372389991727792298120772720536394623046686461973422897491860475293889350121568375910394461437092709597517535870672912920154647743487748771392564965984339605868687195684214684049812474071234352596334491144530921367772734093693124388267594023791158291577830525021662559056287490158704910251809095298142599901454141711295339680960227542554385819624145146894789290033527416640596081816518816682287467590085593721692699515066233626749538381075841778160793233643867663948144047338175287918098535536258166761548666013355134324856009480186593268376054719061173071358546641569163044822950765774390617314280848180534220314046244764309476875951591939202608978598182947399118005075511548050674798468034392875889510031075057420926209241652060450890733658751678382157072932175310944823632749107625552975765716313211907064173508376301196982558556235705305931043313506137450922134763846997152306904898146900902039157203773009994927170388580974322739727355067524789675993817886535499155550972263118053201222688557052783539244757532863208066467288100505723868077701723009451800582581859519973614826631752260257632117104057438324403897622242435843308304442864972011790467746989743983014146859356712381744686238355621841357947849140026945064519330752714109016912035150397009379575691479303094551000799692200944113638368745149638147489286529773531766678444578146603962401961259269858468289782598408262770954522913745402421697258150800470415655208672027732760171020610510815467934491776693249896286777488750183655233539465563803138672416478805101422806273967539305445508879596740910902607971041419074946925444011121923831489867739955235631716535588386537525920021328956367253507247216890147251505756377963967753549925740717704254083562063339595597936377168600941029603559481500699135075629091554766462408042969965988609194703486616854261346790072063848057621971415677972442227188789660267601686470767958770157805857366947736228142758524384071327376406953494682473178905685284588528553336625750755064680889641006335772911478198828789145651111097507122598304471991759804803022901458880319099848352314296690904625900120422076980081426751107682409315951985938923155968968361594361445140992156949666604484622757473720764727681641511445044524137863148588030267216937371207551523856702480251694570468904715033277482679479424321927267772963081473030466241644928280963066234805273112237736523062466690269996420075765996977714432584092966802494127646122449071122532831388203743470180262308123075400824414285201820169894123332118109510294024579870545532905050103956828094096234410249502738796077962527610378405767648774453551069732950044321125230335704143225236517301148379870525643914758399769942689539840300815861343397262391407876127043516467604993303548710848136989803047064537141486185696334782139110054604792766382675772136585833851455773155506765682195944455822454926162914037683241989437497976116592623952162512620397780278816377331341816748477743100266789888885947920926269943610962930449310822314630462460033765949642823137909031703555840966817214158039492497798567756117273922430784397670488643689089704309597395641621824497821367508626079462309505118769300616172548077022373948976930550929645782707619368141694469583422176564672174171727051008507458086226366863843761027563061397827377176980311308510029588584799993953976643892526606353409057289229880905446930498495341131881949529063581743195591391892364572163161961404751997152765711706036036095956501701750724461853232965713648139454102618033305255287613989442152706310198371740921239689545277081354209562985807531323895967202154895672052262665414107812250257556569154211264651155036122425485606689459180058215149187352803887758178075811826007560350526029177842659771558185097505471085067498950278951690089900066026312993456885835303802579227982429886961911780204991436855421892617482494176319203633212234399162537491562994194596842756839783414163608187064812423517378285085815454871632051212858821065356438563094476684935062741997939902500774553923086320677450721640924627594969180960347389255676004955109690461895707134208543320145508347558912871704359236904397275572556922015180570392393764879687673593205003700292014872650742034828890585282005638429869566086694547006325089070382754035550832189821401294221284521199287174975308675801642078186359440364804480384414190846977245192455052104172594204248674610705947993803241090290749308104307780684778074801366175631290702935338250544705371590827972044827279451026084109872851901122464993964487065225936167929814085165929009976439982923248594493417674674915450824394578775671593485025178440261756782925890337219576123811305096064861112401698555367556666211467153909013935223329638951894898496765386201249019015240473037607109741769432220860532846497472478105794524575002916433322077005816101741218145037643950131612459750268270487299989359520233142097018201926322712452616133254880355652526520649970138471811032480420090702260661401627176289095913680873116341788498278282821247479745553385165419721942023189869606520627203112184243696200270031081645845845364463889062964094967614390307596549139283957941702178673407855837444696079593275065695265402121770172517781881853539302010175298500247967613099210670090279602705723826185845781591270038080984376973140313264358414561726366249465981275674812231857828676460515372658740130065611042044820500613859733449911885461806539850773269479533992186994837689215617582000361703558690210823632409565430209553306212583244988479512829164568657227761754844988068455864676104224609631700036321827889026125962516964230993464872880219717382866484463641062855612346353750116022615409295700938982475480191163727583707542549752730847838001380520020895125652263138562625723853386230778538873448537488824456729905416163175833359022853078349723496344393743783554130021683232828227228367731098931168423221088974332655309853388751317641033208098292500040355087630740728648893470365261341357167549907284640733851364924504372640037709369649851476317195174051285001015798087603581907844297280770140129179274058383831764478316910551998886617998234125970187207464203663556908258904282538688552887112001835561481751268278196596148188575970234165331907828941008753672012285961480470602001871968374572437940841184418542255013436581790772028723919111940195896533774450001386288095746493950351757483018240186758241042814263968149866348788156284886312674753890398448830193078533736071711270392700676349893424706135915004687010393787710899124154231267366551622734011131433206777597208572868641723716210661090144301353387647788469126884205309085721070179428105795750859884636187562630693183106660001150719949601880795839566727680239760325386971829446604572192264581799616864534043309105590538080170156508401051179886077623193192488035610587109770232913037519704194851451659097568886737456302474222484684728980387001443814028142133300367070555202357859091665173502228014546225434345646200191702203398088948076809846267132434254907199672144811282674446246757435393904647052544692004580655579624800633678897255938280943355041269352008565087066242057131078511865566160083496902788953811556200530462066004434712668020303127469047724313199815146710115497019331014227500082462742274055510692317095875450604953578969744767533931114782607555345229103957561076304058387527628392704740498436578082350310231576159318098597020035224086766226298123458239411564299274739429953832500584230502974872520687996311923007381369903491063450074703949404250788754049432401039344009824891472541269969389892665025748765824528422730623812364921656077009225114597275701899395041295114855977036383415011488078625086705737413238787915659795134044809094250406415912112698134543178997620803703879882413074539575190518390395565829421809137414051098843592137364382299128611555711001408109951218381095763657265471387680800241860275414664219373703190873896253328991458770441841046838934038578902693626030773492500865605101126750700933484437419160893603605964092985798004130885218012570521689306670558003374952844516193806612499897145113478126873475806222311337869846737278261648758121314978754735331999546181898879050351859106111961153181061392285065517412109978434176170218392480208339628438606622752451164879807820668094343445465125169290925518311044427574922367889578019264981565632077721528284210450419458279297015042362248751009055516461356293868348276787930012254605988824494629491993974364911622231273232643732530799533047803951965941185850842367363292405572455340382492033276484178236061551008496257513289702613729236029672164544560804531396118441093527900254608689088079295318194272682810335858233415470407254717322980059079056078098761746279638100841451127161901323569119082768442518291993260516665254701046664044347611634330506473227239138734089914390186393259392413496764483324018078323726447613400426581464027960205775320103004520523539533114750990403101481949099123986485074830689570450004506396836683654086121467238796152984481269533969041639470012242122727257460473042879951121217791705651844182693933412722805612483249493796239189384400936725112078172314983976104199684713347003572523065890323190956984231591340502778508509939648303240126521605238670878136022298505735703303614789305491315243021823225054674495142330951108460057654209059556611135848020115009561374274648441289975153974557984626905050086887558017490085931696783095932429899647921730648493470670607474427390667380571326924304358030466414953779339769466322654236375917240194360270852772412349443961842063237038331991688035489858904127063854059627223011726368470778767885596703866662778710664514478277544463674701820104847984323709347484124192404211702369527597581269252085166852033942528479523559271430911125338402581092274352362928551160409412499027833207569586180891226266203211540442950587765293414608506773707362202346162255702549012032810509786865879126117478710944982826674767024564833920956877053428572424606874058371779791898308376162603774785383586039626155842524484670340254242077515893773301743262185194693788802261172190663624400867368451149033349716450363505384962486665197853203521461302317490066748637885511564109599578521446911149177898994048946938367108504555916963598404578715795585811117658744615370736406305541505719279837648532434163358634867447078769216030405612006234125447832103934117670829892941413472539130832181589097978267282740851626262848807891451491583481374965059702265837957092899846495810118694533067446661732527108979104928026354786712827288850275231844348304804554361613551584952087649912029835765434901819726158402575971641640788707508813882351987150739443297608536394034985190206202628550911778647132393132732641347431639066696020494108431725795109378225169403847152001636656849344853971263249046748049485926354948381190311713369178545615937264313321305163542670357202228465623935383455890574342133571713554489436336341692219984249823867616277311450280642757482718080855669701512624936706111882322640528202796868555600378180118602564197218655412233887640554183733669110191058683372270713572869972070898815604488916586617246874809807539062388640235617830826441552467804129393760399746673722423243788844793602516212908972883532352973957778474804057402672312065723994144186681608063469265126141425360466859510707273395751381940452410275224062679752586498741078146992066786930784023796227850538587574737160449921342431376847024966350914986734038836476003418580949125300862400586686685985380351101867151161401065772521796163910399268636921366215471760893679079848179380433123057164759431039668288489049498289162378680040727633120558815652986769575691773588820991564959434961798973357949631591730824221109083758420310722798953852250257116070687336476131087661704469254822178258777943357531747377555970498411867608254345035263312902455703656124245592148111903873224623682688753729701828053147193690132344856830599150971510536287367048893525592683713677218219665418189224180140410484695231332655555667079569650146869471292282708147119211928867508562383129869605862507134827820311235675400514736338719491645460789704518742343010186078101548077083432659829157517798637496120247218821885742191683637953569945386184110593048433813607636706907953224826538658245805320233920470168925910320898137697176209867822082046001430233409012073810902907514854615635912755335579684299907377324238266953318512029269544336140053876206326004690050267110187640890398506998709244365581194524695432235749441457096588009557514225320866743898526285905267373967230304239122943517430076866073544827019389383930414913247783789949846359165198441206478896592880824699003533164018228646629462724683655079606990807624037839127195492494097523924000489747452621161188865688584005382575666822801194530740490682609217455070949460376866823265210095443198849557579077950385137112232685188692494008405792437426699926848546757445695006484004868041507710387093570794477764446207472498813859687439730265023811777075892527095029984931868582432429577973758014001449560039545709580973393132478060906557852618561021450878413859073189607383386031049811312309519847210242414499957518932683343806016440855914247094694250660804130669969003798914513446486371867691248610889606471877178484981658065582819689258237686805974996081832236340022782061317175439061406930844436130352764608161491842163279977288656138580914048882209585298670861832289220934430493346653180891568307388511343488187630157064621542188895502451047740675455259501457534452640248784718852991973420907731496045068515703908322299924438369866836259373074602391417451723691117763648057995089317516741852475522312567009136099263333159038475617115744513674245719099394561633228436964830796318947441481768170430530170077482286373186684561489419287034439213822129255504684494345139082104539109046959487526938402757522408585123321756028631708190463977697849231305355046850363938516392647431355687452104736715531240207279982532604621327145766248699406473370989084647882346040244238528171263136376018875507044319530415282836459627720304027398639995996755290172712825010099820731408456935403693510033958145817405523598662686295601508594900173836943877345191885284309709522169814778289358851462401364695098583731784013479903995902352702246682444414089577340167425101358867443161767229883608321572315739366791791265870624141332804087173771415101088623394995707162117532776120709595474666698879635839957100742488372259413762797894957854999912063198102016522190378305756430426526732632265321271284742135293422674080523089913609913908741560005237565928428622419764636519445586781398924605318774508006084972936911532939709862800609850403720952334074342372516494112869375556399180458989859490985585299375274419313919046369541006502843899143486914455577125591350867856266114076880826282568594515290010861749917931209753907410043460673857261788629695852016101049799237149198208960916520133483991441501952766399083076385239963783098400705800434365109027538063619848667733894685820995406129021843876057366265337680669580906093351081080671042081391201668741822384408733466941722569310582284152458126213567427610409444943295764305472156621623643428317910546844715509002185962349602138899795642848346562699781170359503336284876089874324160515970209207249361401047598398579056267170693853328010480877698695251057925081115198694460043478147572894641256134644147821026484101600966134730013932143314294739172399924196092874379820057265735060002977139642176914303767740501287230294528573849634497033107974706470515566383614772911601106200623944923512839866693571687360339426383162774093878775079521435825730119121410747998705083814959222467993504751586879811439699456470442643086080740762150626356274392548748110298222430884204088573348924844852462034756760421329230728226974188926676638734969676844943797635993702368997363281760408837822089218840417220612057063478542466078875015327856013907567901139459026660390696278956955566742589849592293463685865948963003218539111563729452524851949830579092261218947755085054670493679491764597479669586904240140384788314564372391346646389358595408423406715891201734555183780752657914950063092608046930177024749305317360764669808791404716849324919374375935496207509211598010532721729115820369478539223514048174763111851641600798021655677410187261704268151427861597162425718833724077694322275035709499087567781288537841108077092325610813201694511307464581873627639954562634734247971502512308443047788939578236875826811787335162122975940814267625102498315963946093142152945995075998221922074850656308449147055459221705299565738486696747918983247882504863774004399877714946063394564338836093437305564526081369137571301529938378338665117974578751861486228663999893331362525948625930360773411579540080517406360361916613459896383818607206477466427883288014842517239160368834524272047001023431921097134244955386731137775582752314819545573926511753649832018244020591079794183226107172017370709270444178887281246106085992750716776792583907397117594186513890394863066059505204500674950859027041813044674811840359402328883704317256993978537383101465786239346990124527510642171452359173263392938965039633481038467155280073617657973901128103036996934035123384216215789399350060194086649155141387844524705389784833999920199705143994048189477024685542379121042337347183939569824205104073690791460924074449664457311219425346263220441036328499745286081033153079136603054034605862945263255020020447077292835464043014297377804845518855885464784183225845784972590293504405553125327148936219062437958090863779670559733608619163892418576833488513865866161170690634204849459277744649186735151895911257674247432747637689447843965854115216801972070318012012479421500921750494088095285375158069510524216624347473580493925958625378671693057678126403962833715221851873653201185415302158059942770677706338707608731795299437426094963284170348083710833640218682696698810871931633597205930012117836025637153213386451841340327359958144347315492573591261087284751599475020974744216406792168572540890216212473852923759711065413781678395549860435099671923637983310908678772325764034502479189404964475509817136621840337377781226578420060089528518754048070834477619737509321581676833597704294145358193579874967945557018766284409287691047847028321562908671307660084255836936734890911299948559374272155428302096051909030585378899021163869504517420155619361374002361756252072042652360722308906207047678810328757245553116277811039835688467399787295355000600852265940828668247870952067234081903418391841587535736821162195396466092947638461801560972240664277248709128177563605216861521607212389677382421975775834819910217446215579223172642964633968260483642476211490989568744703479120261280828286627054382741048637571222979657681800093808433630334071948119644153453515975669179038464165165439970470916093542723380929190303519392920262458519435526993312735166093150869116167637447706280555243293486127854631538169028085254030695130717339367675513597077585944287007681720829637081870414038507464881881074021249256122776323774229833139405465007253872237158263449333290941014847240603581224332444899837736870410299011273390706143219420151137208396063112365968266866284110509630982860034922357911872546953648954474940699049772479558655341872075438218943208024293235114551275820966410942719082315601171473732019807316728433745832281918824780244096821455351066869548883459763888045098383584118065698842855605012443626974939145937119519720567253327264072776371122993011152624509212102999397994624279910000746788942203070256365002523397362203968771379698757630357653090088373841082601735624198892242918777919018071981177195710023616166193032929753825828424440056001969385554116289793671231669046865781273171938074592501155845287596790503706370696938985289818275741941442839640628528092007954699338846543116230163241684699306431785655835846206053905394353328822953512219099590404032855048346937336771705541891819524920867853837252794600608905172587903241433726327536904441847552297349159068450537036225530237361808223900186256225576398655033746760100920890628967972589666871708257591651319468764533622822398847644709551179021376285702720946816852210464879022002035951470715429801317382823723832393108920565231748466883472698571264661134571174386729291867935416958685610671784175807905620846797924185895666807804513608968394103854711843447729469795914320913214122991267879557813852221952597246622670564314507265713534425100928205080004824287891691622198935466519471350796281883385329369013800675147921823234358163887322657470675487848055178264151255807603772099733896176600392379074232514579306236861126145086206963908843923713311527612254424543482245835128342496631567525234299804181218771482482244675733801244274049702647259189864125665094839915954829199863371262816100508805414888106297131223194649453094875159189731251049621435061895099352424234904272227886083940401673410332169492071296607596277669491766006578647604531220891447548305375836473049936206692442759935369525987212345587752849384846969054077551316333826860813282895837804299299068333853493614828158626172252255834366434617203374576454241277285331461097809693344054784470632701607743611793803736737390971948631905752717483019063836808993048260375481544337275145532167732616198087244714426674130657175706365355069168036309213487757684178594266959976350358323942239057115115459998813347961867427492147418549199134005646888104475315669407746787650091333255616473468093721932419643622312505258588695762952659533566425337442399674294740177537794753861584341016855125212140089492792979887326862208451313037623675160365169907830248666130305199737187703681919670828429856325193704931155788368955601194429580891661638176270861173010514197760929170350601747938784242050501178463160102895965539288067345927626212125258758050520528790028356676518027847365942236553792373553371461209535863686932764686439047648991989491480954604054179161836201581233207040028623429393965683306065866134582894269849167047268168403087115530282870779612273590826746337951521959081661781995162577367495660551488762985069217722791884303043283041190994429343408164966262743468005603651609606047430719254958901322628776519663919416817426460460149331760464594585301651841039392979536654939129103820876124559475169024934183385586857099524702855062135820445932435464754970196405870529492112048614791825794486239832694922396358846366613458107671483247569992171694457729628861477339684309716115006630397364724016391070968258027945591686934546123199765938126364738138746772228526662097951111515227601801473631540664480822866072197695899858747661385381602088182106182864087703675497328380213185644212053152276720775168804477136861381666975970239106415736466892729386161345663526591832043518650419933778508207640292231696246303274124727856483574670181612972160975626139132426818920706154749685207738302632056195564963676512718746569507322717775361815715298658771237839921568818418750386525506371239432223520122844320546425544005606329909618021851040152655148183540980117598984598303059150820005256780871184772704402137437314190021646231399330103814249846904852024540502572481809571209944966975473870617067672518645165257597026333155663234436242066445104342280673573085773680465605823074826683381414367343710465788000198179142812117565576175505515657770055537908396878913033371612082195282661322021039283265287399244653294319567593586734715927824919952581532086027368818097270164521211768775051584102520350573797785370520364286306542557110116785855914154647083995417050576693611968931876396291065059292751555565078170147174258150593152662151461825620654772817888291512545292426149971588479224471383724780144151956955004901203045500543982971226135346932605749463361204711556968257486178746224485598672452069358302419856589060803041540082503210946046399067013255033117796284001298422128834050174722645432122858228758501885636289032614555431777708238928635622072298805026467293713755571917983836007674683563263181819619797927634879463441703084261094107617344545822256318341038935465528150686953574172725261651236198457995202202809757143325711940098180605784276302767147064368107824999034855236359136681496763337724606285153456847536372123664682628346197190636332857216031113507647482710799174957810315569339274211162333312455932391877570110288465005265028784503701314032263877805151441071775115201454589587844851113002952634036766710155841815343326266254540865632888467552675985198270853478224209250162278985625136845952336612374795170648180729864503393197442538082089869745265981303323490757725819779440710223777627403843014387835218879661744193220314572100506972415372194459684205676502480591001977322032417600049798537389256764032373653440761518306616432610135291408053006693717680178277214768903318918408402336755026524836629530776851258441037047409479618737730070004302721265281534530775040212082904577792046666569677621709539625942171182869347097613323144015507273131745606935989428023954217040271409940522348060782750567487636194021203434525655906182943346728106429927527063128645069397464760736899785066542833086438229961388213920908306295539121782333125652984589688757769806488558450098093523950827128599122755233644979834204137634945195506260988658296819573425044160741683541391206773588837364430882088387177098718014810542381856175606600027319295676948958479823481549373178811928760406080482146714051870771960763760745828710187368786330335538853113242104543518051621800691719688932204533437853609499287800680836533561467778753522085878186576721412073996436814895491408040263242600526855143035766438091307537352057832646323691274124704650610576130095721500083725836681174920363879911768816428941825124314912505311704881905083725413092243911059082818555276992746294674583998672181230986320735584257307990143230291902694581032145982229466180555086293650161561759367812162901330157374896359233258480917305925262376923719054343316483879564054467435790459164254251048589851513968765988989815475510487015897300923780022093947027795584560075193487568705769126702790332291950463191152936031498828666487173530316951638640501786362743493872925312464918254629134830088809032841571770690296507539965428620286477975464617446862593262804685739613185893207104019464859942958465787484506333227409859210141725771974716831830396077365363135210239233630918492724860113345171849560628600314946032768412503970549188760576456401978956396575366238147280792283261072023819476558570849927536229734482086498369519500079003133119072071471065711172725635530076334821465471609115981969209433356852403493557604182431681816214936999897169742873401010642146764821802686540833668075682406404011029544482259634176923685733341989154466348286512105162953146405571435290034296470716908392234627341051130383813591962970316732287235915957441722987624573333989960178551438717353343753710238976666403692209691233559124300172023802586706886015028721308167281351795253910822950013543614470578387113183161117040247923562838777963263809184103509518025706728218072882686191086015686155853048744214850400921023095780396523353297782765959620511694806494744736935174115680601377271765582380176078395631812288574634309653795173073926443010054975897363852614518794472422895983055561763655487177296312016189270769688563252861473862325512878723274594913446617448593089136878407973113044371802444641344396501505030520764163827229212547208866871967883155203747963035796777728328377487319279187553900503812819845880735019817302759069495572073709185924790930960181470134872941028405081409825061770928306269106093627706773125544463551221500483525889172684009517536648617289009490716742639639450436548723282442460558519050634204668645237054428540658261990777968295299750230212006962515869962378549867767613630242563658758515304754336194272332075331628485588843113540612835594980619503579794775663512138668921963647118216061916405440513671254403292086088148736521673553993110837781602950548050039410452158247882325216028984720675964243297996359564651268148143796431253850017930470955041919291952654263972240662778331005402507637909148021890676560548593429675811257141653888035201792436098553207251675363793908658286705844150666520954189883755280704068839906193253375569232960333708391580628245082788877830496947083005140183818523403185485787196966723975343908741076307146160448013742950124830285319163727243694247841428163634349639944883244403881568583294380989193944335307477860123712945891623585059140580661368643556635889290893349585731709391410096598207273567819915383473886229733211671237840755788907315698757641731585094484194164608665512386613327126780499269026706553498807227613644090240783098053551089310527195775472619928048667929741316612344626511360815505141610120122954777942348972780110304361921036789188135442053551302076303072835155924048629774027037416524095752637930952584262624240521832032315636909411272976767327194645544574029129122549828052796414043850933669954891046372641314115202966704076554507955213509509046060990278711688921365356754253656546602440402501528917076893989169600836940293649468210049610987071712738828312628919343410419131018775798103669922687618123076758367513526967690169415621601626072459097389529322298432322004022713012355705335946896779266866458132171842063358217949446523100138985103198652755418940532319913448038099290374964237508322001172075842075146177550854641918543459272844813250893032931797630644494253510354265296286440371263079685790121118174933686444689554242783423394613355521346939845345440848724307865517682192546703759712201409381509632457069087063713977022795754939348676798270898579263475649333806900796514269814313870306826047805046738637715245510553764348471472612263303204694471091991526725584519691354988019090485141133125245158286157133874102957963972991707423214139887689717961373599499808457340955408059778619766588262889647271706935422778381047924937802611471495735215557352708226710915300635477901536910110351004679905196844015717129278664403040986352850643679974059682054713821836298366386528481841020667238313641188943753958626394836990579558549799838930116544351814573400618906277524301320733961441508998608296969518261406824350542090578873788519918768629525561090408974101405379852104106319662075047950351732822531812937109202532274054509726960356984195304850203379096385028923537682578385760051213518365566427343970160143942971958533425846522140909184411016059586677686446925428644897289644300639245415805747223373847598631101518667137282714254511590815630636061990604792289458426490821794095434580687975152079534100611133386036730095893545849585503084014809462262452131817019700200452828405644821802990182096440131811834014571217470032290348900407296120094881864090818751139305303199854204471953241846913389561132290886604868059816403134385510587968843374274458754341808196842764819163109371251359003042713115528861260485821468076871868845899502120186353195117468389891203370486245711944879205292929979443587897216436264883830641905521079355382912352828318440833106089218475876087797396839367484809416978667913570953720013957483558117856364977919702328126040344499019840248131386202334165864511502712499857920983174257033427934680393445354900621719726246804483652793766914303632114248374297222294499767970024891104686294184742236054834805610596038242271808648232255672746666499718901273915678679521596228942256465270309609275441522956461358268875609129552278482133210728841173096297177755700357452653834720101448085333804326411168043115990947461104378291452902374014905520343549530729199806189492684165212585152262031132046634754852080779289390427368788550274190681218636618217174612543655546251156594511049136995337721739115461939551311560087536041231297972762047243648451929372601779292064472916292838305879202088785306397223105246708287469153033476126812624742443823855502018166368552002755974096700499324201448454787946486692260436183250006620306247521597307317851682780590956023791546639121455999872601638679538280835931971817431071136231492820670758968207197296345072486887301566532789219011492645386720053581390616471997500833211411768172059460523483910251092356387306978840910984985442093561083345134541491920977972187165166439153927312211704829477229270180827230809766324146390874548800044787048390836278628608026449405333468846812109022146725937405200356470944032801010107055412786417540082508086353113339765596075781805541706305487802806877169578254651195248611526629372355075893612898217090078534324996885045612053160169018046333774315433015630411501717569916024532272092856367728596171242147099945271834974120354337325524659176810097923285485435971757788488996836278008018012981637543705109966885723974297022517208810119713092156314836915086710769235075261377736306642999158568096433255971368004485383442862590967322780759590597106721708869857569005063477386427197545362474105064677121000234225148971443117042085677913314349375839985530580343562838824985491140096543275271539454868473196455672434725309966122901749799592202376873793689430008201902113284144089222268775968084879212363665364091833428138308845892415826593499710175092175851333675961469089939068740849267028959348940618702107177614231809816832586077121838327456249828217786194030849911110254665486380468883159232449436344901910252619509856480758260271095533085937680089878709467988066581270893925749557632759823966862830044445535566102217369946517053172725309674052676941611633408477280069381784742362515191531571788050552732606198380875825118011124453755295943125419496853993211391192624486676440341866812564133810401199161041082898039793729789017278315218063796897051099001935140404799915922845695562623539593138547993619237130771363001436228869604120447800463976875500891680394598736161147783291810487326124461889245782392177488443702679142153101862482366731071650526494387736197806142183341227355904382671797966333027494387679410932692276937300028758206748492965202681941200190016434116979180966571853473959509438629830447209712654899657358622710192030332478623737939086718938048750158227080219883735609491845632496079806802358508869346711889138234117884317320572621233667290789986530634309792761659118985147784299619357122336472397093515677758323533397563123845627415835968006811960586286618554161920769684593536795254894271870947622824172381962774992021282139121952890349120942975300384097963662632125930862341067827322100482720451117207433989704681908178059841650917718711128690211489636441572041256367241931723937753681036174666648011397306397493119100462034460609012829508027227407560543352587658321726294861946362456945026216413439766479232709989997818833664738331703075307249161189042016724744373858210461802441498143495434410148815607805566069064143892119516025665721202434815844708263439876829757973875265196368962802824747377813759442521298583305971428773270234052137878901654315681370290659290841803476700393902846268701837159413715635831630235087859512202612971541671361932888735444969176150850265248597647181072462578825445457853799522256271646032806017483802238948091008591339068330681367487645993239495427356027547911131452542359936642937307525407117378630468035007768029934813862088497818180711007641811998826010136282012755615160208630646675013526432020311407910714855703889320010826074166137668483587512110648685034922387676802401175109137131513675819838211495946033927481004016234043976195911440411444259078873302169580744029308344023624053013376921571223876719405269989244300876686531691818292238232270816029856083841628186342072619186587913282957835248787530647946397756472683157575531561205181160957106854029507440868182655474551966211503899248136412421544280129537539542345672048814181331429998334073288831264761671220742179067330269099218197228810688269690991330415711187585571169927048555739366301942384856916276594965481976657828541023746832057031160879731935480019298129830842779470423767069169508041751977466877381687295972089930924242827271523940306215220375661806908915712077660400502479866273129992926350896782500854626183565147979319411994583730684965778362103742442563846311266099850645265461761427527353239503972325701853318339625311857682696666930894227256902015345434442194301281070409907284809886057843417722877306495465743846205972055961298874225235647122121687581933335664965866123711423703335524505161156602874525976958220745880280391377516651950645055121069500064914273596778965822871940294226890953658075075079322285429765320439835579465594539058042474808300537638036226930465622199687372007779935312091371533655594103667574988578152310441912197914090020164410385307170994784322590548574736106389531060487706745518523964238632064173387097229881325381074074890862905430835605926397515506698893036821025113003110325308417206980625825572397709996119942869709502077523770304065736543982689237503903839328778397299033736500847794144940662442100684686795422431843703360512952090023758892393079262674599139778973067915440320926351695594763970014681494449608008128888008322302339916449577961627976334904840224077162446639541906220083053333181501860250304713910280576531716603417562078289165584811670092566704009746972224777023996106601015402695112319546941130804577567182313526936179747533355874839813532155158546197565839773973877883188945639122034913314004920752851194535139950175009510406134506596007281840838444214240209164431899365854271269689139587822086219926100461466189676124182293877725222899654946427033691431450440500324494541306933549561904125236999174611506986147833501139087656159165561082907610535546521967320262450711985671389038111406325378316925544166534097178996239931197691595827884268377099140165343738776382899382784029289061831481951583998757814293729471239653914595864468093682898249946425041848617058039270931666643588604933752032120469853562975475309667735917448729411057219487535596112167037519792934295643301856856102205735422787144758605169674454492035341215444136304135645419719320383707145578134889242880751732102132714183896678536157521870501598842880281158018292477892684638291978583725011953926935923720370156345966669795932578031313863624783170961884015196651405498124757493107220644720596555976075732277505769704061290840705079140037888611951736533198766126425287285012762131174573641384071911785724591014139248428191404283416830516757399501675163732485465802410493725305708648899608399298785155100973138890943293290530338744129572067997135796344467370905471055924835579085520177612376357511671626620482943125948606158128917755858963509029484326777434013935874803967917441400080977592651788835755315465188534277594379953127232330166244741021927627477590900846122022622365297649773391590020458125894682738368781911256324447328800901459566236471292412971470398182920229408029753495781792216622912484542873328711585044492665644789130958248801285514148062491948769727288273035389657572262763222720609754339489428088971124311061980663011652065562041408657290506477225945581351031060955174691486149814191584014309977519415738210137478498304191002781164798531785544164199401646039672757757236483045670743174575852094039134711645885334600539827827962279029548610026598473446937513512191387877802542095747833025655604338437849657787007379621972942841016398329548999882333913639625671480320341915581490387286393501908332830079216283805959560485432750060059643700372527390598166993054013034436575698479183821503755494533552298324317990036073872195355338011267899603138748844645929699998817330216073208443447860895287523188611256010405225520106950080855192397809599759007040812103991830270563169286908592357601955348009531366674890544335731221881702172701389016666497409071754332105655386420957919102632052011930107961550004848739944463779033400096425850812569044922956745285002525762644156065686827522239020645739796769908074610745332662168207564127902032642037998810972332357201221304791643578035615563816755119599664296997465648846326220031550971895480181273706254209203922369181755576620510140997613591399068999401489771654947669003064733741863590469485306671261505130439773645703020054448601047216007881928827361900439646241924841707310167483077856396092535554174555335845966178837457060899528900166144577014695288463820616701259948892628967237826900146427873883132143464917092634084959811836737500227815427894477622382330538670738851911929280083600088258620278643609766691727917076461903349575512910838540271821769322593705027607551486187911784600353389647020631014928236519663013059555149273619592309850467981211204986203186348556179366043292742229164986930551682390704538955238336968489631415268206432224435357837385272166880921395362937889846747308921412484388269398017841942892970297926877717584537236143886883209341962846418978116377941466503951039950663451178318227516491322144552947068236412078549198153870320316816000885568836280474272540426657888744377223262685543508835104981754049597202225344015999899071524630257410397949693980260139435104160237123715133614705627048195869725489191278250658499568744334298160758582413624483162553579277166884003922684853454602523915663984872971546851809425624358880373714168939358404140058106033205104631471541711393888912020380437066082644621332579625327801137103102093465495638148935012454794562693181870773396107311360492222991102155449858849868023025982950541915931666174804719938039561082428565746139520338229120418862507042678214003959279693172952975433374765504355371359309366941728884400319874630361585837887028391055435270014407779507567372197584428984002182077148794596575954818596934842336566147394116851303695474392238994300569548710993652138483039423268912210759720023654439907714475838943017786202783374036469700644413729289968490394511056069662001994023875212293558132918534146209429875961203271987035090430774596108085807794969966235521198683524833399136330593633164323942132235308898778041816785259644665942068642264541560421462474465732515030810911839639464757496986116295039982199027006404942377249022766159194768477337815501162939378472519191974646054522857802911010708065193862818527354358602534699474834661109000995635483642691857074323754370571715924574844655704202317449688202230414303202107572576586490448960061747349090195456729011815117562755450887524063853514272828901232448448604115457188404187080004426667293416984078417714435578531137062242090629413319235164914546640861237343897283352325534637169902158261519985278846958130528527273858944647891999439036884498925079376202294818986429257927699344899264744573453166911807412749317120428363126111332560689476439939887627373778764786993050917938688762559687938820076204246211152193404925605957399734961033408923741474755792099494458877737088970815353776276943111006673071936196182710004207296551681721797456751643333647785379850492931756910405997984797783063784782244126946141388429209934034260036366089140295467726920765930616391024504923267403994090734238509744068788497234519436899052272016468410053650631447911622375785758677893513175486730544636770831727996990494053411756675072461877803951264118433603793390180670091562221320001702742233773726704298573830452969842128778628366550739201539521183262425412894696143589411307388871779029501935547329528447853938084891499337570080897060174063521958826750997548465131428492467840841799192139949689913428533489830658715434977255452625200273364453085128284835435981057888328963492941718156421046548042319546705554285277927397051273128253927169673829153784360395463697542318849237673312556893704154906565358944743881206631004127989829668230391060380177452073786370436331273240791554082998126461211192627033215471804329476891014595199800112448950505709440813478383476908818098060515284896019496118233812896205422913569660342730203794372220121307439646336631209880694544471108454073228894825949781669225230883158602334869345248732669906418146345773966374256637810259884144263540086444731013490105593353924662292961847325924242945715731349141872206500455631581378394462809245631772666793384967418896754930696892525441714475028386527764258434931637972944125855165569823717808685419115230856295844560435161639044643486675307173323773475391755966264194137086109965989712393818546110204779356335393847524609917629269429273466682887275678508894122615627657629051353892634982893522679415207874702451398862371971960495018960076732551189712573814836974904148487989235969734126780178633213403698059093242023105589867336227640628100502120634368170546030390914858900633324877306211572862057698861635486933130372955217775476262394047033106709731479424076587750334456157703833457042983912561337735074882203396470737960584930728169419491735625084859237783367765447984377655731142343318713921045426007707758968021909344466794666546925692527728069161274897589005225158582110197734407870580058981900549953678281344590980458711895511135706117667481968230279745592646414182493284683837191861781129883192814546070824927906048483085843681335664173654018719107029684252555797180943706107890334186511420572009747642797829812125812243165470500569556600014277889510532380084604939710256343031483359238029749515315345326714883069865596379553947415816966393651341850398698406076510947099680508094760345012072859186858535533926340441656773825910008150841935628390994119138539675214110465632164273624740402846325598499968332084160856578371612859698773394178569998078126587164786470598332226142707091376584949769704598094136967922090562716388213364191150784340235425889496239276009742987546989262819709155612380756099475573508412696115338060893572901259027044204141216289536155212046830310075287672842591161789637419095521341475280424324260410450325603995470801292158272752957630021884751901310241335019910966317147489842468966230037482529453364602058079518457566650642637851619202839752565314746990022923801843287376034290087658518514006217083532365380956012534609424283780686243167840060308111184912332484691004022749942090836106018658130545246864501064048398045738385883141296668648395689773540012475309606715499905929113889198301326744264097824124024619747600682181884895152210531974634051052665155754066356609855051889808465538388544325816500308442826406851265490964786511694012323102331980077019030479003374859534869644336219802195590548670936114461648628017393340722848593879316723777601147399199254521915786027571577623487781423464462490011400756900213967752081542062996644089783641151278348929885812860241787758632794455763072524201211625293035594474615116374053481189952750553618354532965432782103753897588768183660800814773131935731181225139827916480823102308351794453427442178317606547956331881020588307019718715717535784798379613376549711657557327872315199921568263096416002885489233368079084140806130389370140178190693653430046440689820557302964316628792355629411774626704906137182798375599414802460594323793251541195790016855309639537755504356777116173373089074368728418824926186396629312862219813218020739329415791472454831252083906176937099379602468383613976084538833215634639675234863177020488212836611860839446393036674626913117139731771455710156285179572766899741354680955914958631332721381016840013930823405934215064041450325460753010842241102753146509032185357254813789764512149229049442205772937846532514308079153179040782500601575155613851111444012105447948923435609812146903735344248677505599748890631333064780283987114815483983803349999672369808791507879355193346921095503798711774152808930102756545810105981936573026334974785334760726507864230269269163925934671753355394231395650611006493306799674037611844752471531110393568407839570981305456185157330868490397479372829562503225018347384669984939699434766973813777166733719190586149968449106710628792614947047884402534420450179067985977391072821071710349328091351782470629447793021136607945703279973068581923788207508200428668376873789172536035884537874172749081388044125777803025631253056835489353865218908375432624630168713251941717980240088106122242888870745893153064363477191813466683589497248460269364685303252049262060759911279555486958643786279604948265798291615926923661773336199613221553858537712819260631922012284567838469006190806983370181427338536726571064276343018959122075022972468830423141945710861029847816235523009434099352363943142759715942608550048662805086712491532337952508044054071892258619593547523517028384234879358435283351135442850418706879538284982842430189395526906631881252249089919957571649739225285901671916382151081809424426200213044424871171132255459990408389522118669397616713907568654280739738604485943583749822899149547800248946236413054579001241413406265598068401817808589658976090676220790281019959072309763430441182103850733253580762655426649604476165102098209231612111954707134699001107651990589894177533187147406860025876971113010284699046984618335035486825082534313620376715181251245162682886427655026302645387806327691577665982894201015034621001384080929825360925870285675420002408864477849699254157193372926437722949972649082586907469477069153594015801819935957100347712574655026887397750806120931600746480614590824501606120496913707664046119398342319585666043691553620374093379682402504151861245779926311351364455176484196263758541367988105300193414564964446243595640777381611853719636786024968024401244921082299780436949248369781728631561792932324893616819170562964848122965455520184865795236675536111393866740507175872799956875119183223325698002965027747826355397998187180534929837496503746574369093721980777424198604675049893067963322479745246783713131357051258639700239678567794791180624461411737127594403627893786900643997568514994913465270302552012275415444375024235086957984295882529164024218720768174867535115728443993337451651207872202049870931906577167219396910949873600492095121218607068266091443416072002135075497632219936046814945902440710288172025469722770905675326389313308169973671552312382025864728442149611053459749478436461848508342422354080202366477243005446727241711964344730092122025544944620124614505338951127266898353116101557384690883098819924388118854766354643919649104645515024242487694414419571045233166006868815111510424554442398112730519540283949703281127876230444838527198206863434872105921626382741485643147177350558500402816948094249936657766609992009805587826671578729861839238517623187121357672218628464578817044349305021862576331886934672780612601176030298723596416997063770703361412664221891191673347191312921308452920754004660603001514303881764577632613005970193367418111305046514849920395915921655416939592945721634909779787520393977748672525801611496736639256841864120759685783641808424256960741887638797132131798650911376373332985742880046630792784348902612253257695996060901868392752522960929976043507332556055795221218881789550756561849085185585734476910559104339604336675040763352237689876137171628652738863883818664662894293306914804145144162293841609549499788228135621234962502187226964357132410868685341315625356483812733720391991995698488741840218607737409445859709377255163231734453617823487634898027881097492466127678131455356874985043620175924700489255694240833438200114935898477964883939806058369416932526017207245514972286579816538144570613939415806265381278436930191693483352056001405530608284668907132426858809127179266179197051253025625676927152768333522646713719418156574244257223426910462753530457474960067799407163650843774460508788901342908433177477726795133064491457650079395496061883927721550181805523910684718709679433644456391519566193777546027902207653725775383962806029509260124797666944410117665358417859487455457842204990831049477844338667306481739994326378282754454254850835831825137578923750670965870650455347370307002521530221233466674773065856906610350299913425944743774234053662262303327997176913023672517910665882439044698085788550470805416684405781554081386298292680534189370353908843275741103644570992624545048132036337420595650391159733883732901763995262537898562108239318668037910409998264313751630778084513399815895015329690668959521084843490482825227523661356547635661603480994564143334722763531381107013415188660941087701384948565337090566852030164749343616435031361108346320422732050887881327714813423446271392402076883430858520588083627664388877991890671749579071525692408750552721864610659537344423084229614744676134095255439593654387377359577797009197267091515382368010670549893303031774404674553249608298929357734938301910855099682899174973300183054982015157783305460420909260602157906897784359990979889750114184942780228568483295521605265967378857570627155001423808011232746189342919230783561246931499892516358837158366826612304309377616710415788621225395123763988114463353066648581547980298026789760017346380735176425969258371027348459335652180012443595032353425524769094149155349488556385744181671243803271865692795249599480844373733298617149073162021284852196682221782735326055161068504605236550089628854799917804774160956810899501117902035120037331366580273066918063925367163891781020975473903999755728724827009087508992377396462511714902289666437634126625475514052427639381408139067326912649678314354405719507504158792681398976507069736523206585109077968854319786510278751235040697960705905631924733224378791018308201318016746209509482982566507550766891364171081849345257353297664417724341156570629865003579391097854384190855883916598628815710825485199802015121487416994375381895161937696762591774748874838809737368667732150188731407998155241527265421980508693494432492993151118071210858610135940774085839034748886148261383332629784590623462955045511559828628467550584270811025577091554417437533697474405460208031290127274571551151738248780929360249934455695119192260276512670352582454830021456886538553155940725987058778742354850394493468082932889729115111473732626721385702029651069601188336095788247495289444976503732859484151357205517707919905184044571591255761364660767779757195176584282019767733870093055644584520880759634172529082214800855253853972800755513326076346643444697806698283504482810174016646169258136823559649337205391298954215781939104540885885983201887284889146397989884519843499459027712783178475745916169282930693812787870703748403044225120342822477430816773477126978562139130138929661324777093671017375607262105131025663861857204540841900659390860962416155788271397210107824905974604753671580379670164623018394342808206965294524797108768488101269854171546136679930339225285367080709258239015643126445298153721911197798739564555658899543073857859278095053437288101301551197538233488449142228003006975449849445365721367368509905716103564586234170469898542555799121675068156998323572946028251665044610915433271050390218464036596978100315344697529892137739102307553820306138128216876446694501889847786748530415729201424222142382245020145928775492225613951158588838376674533352452493214299580774273276856741752689516844966995622408877086664137132112333654417154284864809736910292294293927389482369261049044669896279806592884654271923139177602770560991118455989270487634421865542161209668060633905484251035743417409870703042369772255442902654010149247496627299168814810535193491947849771191818839936312837242028462864463819051242926289256202771235852319352754670988031128828835713158436163449092566598927338068953231765977088328282256318285939025319508985765532923257551781280211052475503542664915467395689648851850379893736797374532308695155688477027973630913177427948583295925654121351157189355021548658329811308852641876360644777576418565242594682236600473727337875261982774794958625980807683353931833160966406805734387046121807315698769446478063638799929013869721044183476601587009744536765212236426851203605510020974651032730903851404277524449710660349001810721551300633030194529939995147619706253377113537579048314740623154200994311695032738535397752382196889048941547935829388784040654215039609759070143145316639268501597008475667246546091982222890685132215984158592175419081074812155658668696050230382358503631496380243649867972478739158395053781405110549747535491818661061044508241144433828112102446594912807327603996981830851316974567049725368676019954029964197832177976729743894275586232201195980002826592204303472249709619039831602703275615988007581616372438745755510589511463453454843783831273860531078991210653490701799184548473381304853974905578588002393613791685786262465146597101852036200910382369637137091902102173366385943058284858712480824512792875723668228377858094326574810847104238004279716323929589929298165327916914289924539301556388268591561342715635579182533106906034191114117074839444362045153006814219862356112183077116669149802263966701073668697756612362309321937018563947465427971952094803963809446582524826485556656422215397912352825305215141404468831356344717192620835172097289287377748690726131430361222087309310241804750536474855703387750622144626262757787106767809016122218165149541199106856475641474671634529481382692967402595420117390805077479425447548383572467481370608525565722044437707360216460955074396921605867305353943169530788931338899104163466944704771370173564854080958031148178641007288280096594903435510886828171774215788020486496622870784196441593740554394170646223152558553189963219918546522465148553661451667926516979211090745545781136003109964914166925576789503804288719716783558263799348631884193352242471723643800039770074681184231661605569375444639147116431549321233564916690156755860274369992504447737983805503975899426586794761879645024970788371011963236503013032751327190615165487004310484211619909220042505349876308907030290450003993199444854634320549988537823843872138063439779906392829079828814694459965517997383943509319987689931722285076284362884526659561320614459876603807990783149547803151929464750176157696619260842463702011344993573823545588998911910891020992376000522101068363309290512618451179041086055326704136840876852966609106864803833773139391645349448609228637640973468540215324572737105002754571427614204471409691938475357781554522403403412200108293320342272850061832419540344067836955120528623431310058082562162167245670706069404968910340057143799713452495418338992454470515672522344698181840620096938341761218887881600242727102252118360712152073140579863650823290542910490060130253167476842697084256441209112478022148703446807011087961490371788674211122438605588150389025083195615344455946068790124272286976712247459161249054567240329566441020147944872589069645783235213625337265474408422592752443079461468098812903787720260953811565471281993367400020378291019593322492788652230291808155815827600444129909645958040674647378907337807655497198053882916057437020822981316550189973904697263353807834522276883283167236601914617252622086002813264503542073730478748960160074354632636033404747032771688340990819467160922533784294672347216359236668333457591677653394612916065485202005521973526304952544602691493999606182601362808655268513982874344250055229856362423621523756649430928181120376905644440502528992906851821756394120241246933939031091808460814186516556867585467520293342271476775039505619593579179628488152300690569904706085753655326092482144508917338389417475694793374998262586232738229025689363504430419057600716342524242718084488168975562174801776293160865442695886027300556414388983803965799119823545671486718430298758426922862356615937241301124361600615005184513985182629428434817827487645883842418028158487732458093335323463151821254819940684972132319720065544482288072961691064805962681180329637061094454863314011804700005199053367949960697511053411301995350232649218042208926542798587203974102501442056319838667297979145849385200294375243660578763803876845215067200138594581460514815963416321809104715900501189917418430100977343879719418950695624506772959449890106396158911686264703793304731602252337790385769644466729591067029160297382388379483960136452194915987645823311552161184968455639480565045906054350309730239233825587045307161853288798516235376667837113463873720806137558760170656145701787704679408186346428917192627746508719038156622931873942006633609311180196155028076341504288438917191397659643075436637597600863480115942244065069431809493151335837707185358382993044905690855758854113782696791413438675458656596275511237232923562712329179627615119778892363834573394902110612953417609695119446603772150134583648296861820746143785744788735402128795199993347764719154648340443453942406826975144033769436642196218621171722245084907819206900297892863922391968117389879212995318785140503175944040960430507723200299335099411274528973673805448389293100934038068189727888909695928064457322319194252108545987476614580637775977929584083786562112682204865884367339995944499093064686981936066439961864976023616481372672157173163779359468360734239564706764889615145463900537665571132988336239551697700470438545108105033725296760701574813542210509094615555599071438283171389809653414793683584949759809308978374664896892437063386328477049624043590767112770778698910638478619634686992154961561354821667296412549873199335168201996828239635091662638899256480253168676881451718836402141883089429737940936506933952864391529060013773588667051689977131499436180115554017077012552761345019160685013689555172701092908315734651283775597365384124906067391595878938081288524661823430879755502567932455306862237788670019207190377550191636671888781502319478689832842854365891835343661231740828400827020650149670142131823584194362641208177632648638164346130336651014891168989109436386177669298949389147407770009709183599853191363483794842555977977940512212848645988319009951535758735306608454239401247320445658156429611306571584726781817788021956555724251804437559747219928286327109955552950638259292695941905480126002519059092531833337236750701905682219054841822465166993106897878091723163867571581286617949254667466801946300080161740681289312865367401190704405704817221827382015583181291961551708266349512964957272534830497469991158089585608248766142556454008015916887214064632658528819359340793405769992005568517547785212282652179310253494687889633632908130907686493590011049681556265756650462789052231270417584033198676525006114964300372455366249049554485862629205214043123207945108602273842331427061232405060342485427753754495603325134656621416484432415665325384148355127094572706910244534799918450614166352613467081346666336219534959635287653530899765436346448006943081697402037207939565832388670460464087981795369304426776450027227134066775281483038001950097448204448011408058707034242682994149167054560174781041174411131399540068673922353308016384283597992180287701908576139585321706453383786926010157533245982688092899365524312978644911609037258006497236330099524873788813835179634342816018100978197119728744985931477558855110888293239420604610732820641104243797555873453380149029090381851627651997401860442151649378355046909613876880243730518869709549314228429011550663099255966419782304607599911877006759010721197488593345905248981552773123063191238397223774424303117969883555246553881811974022556285446194658049525603735927022249721763590128874180819691802693258498154353189532590658351008175179775497993550559883970995864722841452814379639950580066481131440871833842856464958660840385932491439787600418796133454602637162530618431216260586946078031488120363882035492946806130161285474024469324389977428276720575036117914434127341046652642426975983606034764625683097053691289899583548830696020424627292960443871218242898848957772636892600168965068168145184678664066260051706368917606066768123092781275213365448732018120306369965990857136993580723503788753509412677483235856618616598752724747330690195011316449273827070328209739561978115254220902666863642089790659291657145489485899251924108819273283205706489988602825549561544752200462433166361229786296432808671042613511596570823091203913938417186686581935513899414088273836484018350126095685448228396658669989873529889827896016270981838529220940378496411033732176800327607150959474106123272103914604083889756222436048044604036743096767782633031779523925106128329671061208509525311043545928137316588735743214050977291925155784669457232378129364885466146097162416149706146636543327748324594428773108817212486677426471759092674373143575457399397482899084620134656165080888706943287250944954568699903513221259376278614822370232945386507621608145056358271955808624889740801848416551928613107149975068154931211766214624615505414772698753120622721209082503823476769265882473323510493360850820324199466854656601751938527856635430902082933498579379339983418545902114938333466145409102360007940541195181213989218259990189058997174090419542746663900450166936173218276824956645111961467584873886351182199182033063290937138725149149535731291130471393056305776407623895123732288719296382825275507247418946703541704002494281382956015580544922926021342114020369777155364308759170646673672127471606773415311023481780824765746972145743575361252306162485017589622659849342373492005816546360185039449039942728713895184587484117851686143419436142959566338592440626345405180966368029710863163571203614807690641243717324649951482287847706520007384590957859309399759076482639084968471912530401678898807875050664284971212642265337503426008398218858186336211602237839601222914738584880259852845347700347642721244798952242878220843268218834436358570200135138226704097557609438220542119447015769492320703877833727954323768645754719910458434035767995684250983605830468188652711321600678653727539238451499666012762435222831054159186391496607124059596779500638781117803542322028709758446653490974990107138636725600358291601631142816004312853119039691442846478936243977086006505370202561444233301643051038513580666527287603255095992374299438149960549341029921906110273460304957190390653911010353781757297466661968480270173854175293951767318894990843580314163524538760502113178138633624913952961013966957323085007107266781064832295562398263358902668790409441335567539537841136750741522406227506595276945608845195920793639665856257056724306457322705882142338035948357877421581655714719212991581476468320165945183118052271988251552055147318118740737387026956572886300663070789670224646002355413449581248779203282216019935577361236526755736568131922823405885440900761621699215567469726678324979616187213153503500623351099044651442005599156619483796327639392884118937475664723790540112840623781135389336989213199192889079965558274923902327633405045822924486626142320318305573885979209785378206833653501077099837669280164255649070370695390415056530183587262650752092377339275117913175366736503477798709261131654161140035896397126610565220179398366240688021706263594927967664511432277978949621389722022563200907738557608686305735132447793319880526873058931380533710409041516641328490538950432373627242415248187607209557546191336194509359878791615940023961373130888113173707606885833588088241436607920652899866759553243253483066538656824628140694794987062427276300293277073692208371690401631676172160252158294109790471936354458049959331677754011512928866991655050176304757371695137490666375409697490967596929137669471782647349577185396334968683673320250620846557015300893910885131791380867905359486941100985521119654887437819600599681457348918435430374758075696609241423656428206137374507278150338394268736815490224401457748975964050751930416861263588607048767446330555032550062277605962903000855414964762788122299759039591027285619250479451558155965930984199773035639415406724193719674486727430392761382217909355015165980579221514234129393767017370521352971964679355987227903396935950885496912262308978372395948262867869080262437385679313956416344443762657667692968789436524053725313836361747106898182551663739951272222132948287449772351240704437221664211650388180983562983089553051559400097007458542360515513625015989231314505121842859567792072486409269877537130990154024609814354847942011841560335402127903699030646365255898971497852180386154286460572096947485848352845848077082233409841103987180536926785251799041403736465213271738132925334585788420082624998147562006268696487602508149898603621202308722471750940587423691651896512232514459117211564888735542169530314408166020311618560605911597783176459818655681138270947333743595692988907071609487936481982641973241307107960657435542479378418298184082062141488499486190070350558613966544286719158037323078786108293034512599340974219454384497704728076722607784818247434151204033054156791308082251583691153393060545038971588055896841586045892854162427400845192015229217849335280835755456885408782048938826464772811406605132062354050009397903779900549920823015368371602487156805834139894498229126729174323171888966426713878404717174850472163715651959178180522790010878030537158342040462587080666917010402567391823800050363203618432163402583361606452657111565264180411257662321835278462559260697912020841535693284982425613424058248723499748572308620903731835982691775294316132412334909811527779543317403813798793403989018804875748708260481914628323247265250749510135783878431093965764801828171021867129532787491850345420737768331145595803990569017990660426989280405492840346193226811077425101927301400293638755150287828721166225417987780311368981854376231281897268224154569621774464423358043128631914215719549895696609261695084889658222891320529882375223300603828981906141771762881800771694282619403893288319041461028361514981928978411189525071283374970336563663764381905586250057384516917234007139841210218141923605955523247759903104193183864349455812403435818010586117192704297491576534637052937069357376254288495745562956544897063767735985356442531067505868306548511548260874326145697994296970028659082957014802902887379485037234808641029421268620776859161179516350789286450204678349036730457477732054416102062521039121569060695165910427320766297222475496182233440580767930359410663873290729984020446147427040342714552892100138195555631711336278687028179747036642340610869254128337470834168524569648108602332391205824892525220164294666122776374478541311407144456074159810377266084239045433343792548860614391186643209296663886416736140948892766982538749139983301670964064634204434527048546741360265491056762765528118543545542412061998956290609523363451021307240267657322183991239241226122092287143894137855638449064629333931993902136164743080009054068272274275307825328908409945062403391971155273761632454748259070813047347284677533732202357903774822128322033429509238870669629467680690608854274028138005286381752359479058735950642628458284237993402848984627740157000169919283440929519541699093606506950857993572378978220070670916779386788809399188834337842561479523465562488155058738162775874919332052114962254229177012461522168053819156203081122038296650774729738449497954314105547036001084258343216719648355463585872982982843797884861745818948986136544631135041447343587168545742255372635142404628317497735018050938848209346692823110284118391254257009841712960193988408787289282866818451103447375603461511116712308745225814300171825356668855243663271516942559986087855489909443558789005215517696868030006745509372566056336153973985853687029637345846130362879440666109436045675661756329789859547878529742671091085442060996655445206639156861335504946917692734351625159461849777456545868222006201399262891622755473971555163788368611725844879727946539710048653754728225867980590398377118448775445320073839623432106816194510526792749757343147226491722081719651320800507645771439259363528807346582261939994792362722784047307998146407750367672591273010067797411646213785939911519220173525667801524351921668647146603449611071209191840389066556105983016367242929286935859999401421678372534241511402033220230824745684173293324475439022160385004917238078031450166224191255189586727675504335744923175244221399426244472411299328571507476579756577955298909750569815504196058548265891945331501064593694405396195201385281482314299990922147934207773739131693826974662180456125021973674104798413370620527355891601550815331702407911528026486354812105590858258885803921187577716460919314526000457780448802676056504479570547813956356504273020779114591798197851880010412891321195733237499160393147308119387687853983553122790765957631123662795282838178519502704610240857065945456293390087559204523016716765293619370120159959409822489933888819599830325383522374087715198346862415551041956324164287993324537471942714578319342103773181559663890294555595322004523320104626309966100380363044561953936147152305122174655599126855863857700486312456487864188494439542086547034813254036941897334106918396637780369654728003745206620105092733518670410187188323930492779728332087807566967725446207264853255885535236272230228202706672136161785372338915480512613297959035374062864277217241511091530867887647310105218388075788427764359530122266320326588887113551133776294647565969371190756080937122780504242772137637365526388994342334684204985430362167713073459948686141574962585072819715527365375034781527048748181067041644449084300733799413505718375196419825490954651458565585906221228274529143866980115256094219987604900596882425629568542039565085941718575685177968508079377532661614892255207573707136565679952860884299893815470798361238299160553699775013724471695926519041130815749322403682678044261477169558384799872643410222826097892236033452552937018294462476972616144355790049765910473027505063303760678262707240222632801323225674674376466160976719874580547353225397776334209647755820151893055009411826336046141668266462332419204068933103942054984116993908462896964555727027623789828284459303612154632668972953808381333991969044505600378098039184596040632680829995019707586001896459990769156893379090895554089188614614897406288713000425978545177141733884711145973849284308094248812693665646014152771785415839155827150377660840763026710653707358953569423109968611199248207939990576260699449006308950570890643241940126283169816129603016440732586531739877549604127778603124393689178304415876614877303252470028559801376882726860290498336111503242700840580204293102356445769894243813204941058345313264414776373236853252854007191000072268221363315152320116831606040105538533146684836080862716541791583282677214844496861601524724114789537465679337233962772562731830273347135327228745505428140423475842202173328494786395295587955842702160225654173845719817264588421804616067148171779394688537082311770255270197494872498029990232653403849062442191470288352978763790981798903213664415650081940253641877423858700092644650883761292635042891915679739467986320027274505369811290056114559151652335562203538047801983099710222807391175795072035509989733184802071615563749919501328353611019056983369193761660665982196681540847374837371564834125435025130826193606447442232480985852310880468020366011466204040698699971375523124944315923014678839700602785325110941501283466859690552570884875999549084072508410586926393999852248994280082025511423594107770740177014387263782090358806381284011887540266991737951720904552484673763656140825429589660935653398994695682983113320847485770606051599543262731179643846208236381676952622141659967182542805735927173938495583637102732799446674264566185663439780377077335502921888621540284950414126992974231086593296000513933942820217645827127033825422343392478296921095914153871913733481967259794151010250896973064847882491537578750241263847133221164401510863002573964063190996360463683082000863272377458101504042785290912123785287121738700372635071810690551233748817961481426222626793180564757191425475148168100381033790150318638916655169220521717436104014318893618539879213601953106241642323889297210747751817520310335156452560133751838581641706871365854212583959560214551387827630714252063628468058312286740904222144029379920257904039537681413236717576123429156750699224048820462315519348817144010827824008311227647929034336766653916651198570689887765836464727277296363470723503868471373750488623979225229067922189195005265808423716825282659865964387825676267512783551043705769847497622784018793371676624151154226728158925386251718662543690456793182170829302148711700496938240016700537104019914729169173724766648455787239873258093549492165392727188603657835051713967267212154104514815211205441681299373010706689345399691427479944072458249287523190952140574229398325930959203117575796165162083728541056987423820476533398607971561551210238435497087955678056232635109347955703217992260924800193996961071740831926415269294489909401509580297933646258373667209282628141101232864400281216388122021454604650416536294799806022988374305436587603480289407969153898865166054486619678365682318914039413352797597689136250891459754498747839523481011041414366230197007775195628177315190331019004741725411159417043085534321492764762231533515661814703121185800780540188242496768765398677996092542046668527163135869979117665677342028104905354170843875919403090449014986232521349978155411679215774139231631526688306487206512543204533384343747033804902136808185455978718657902924201771961225358650726408205283213732366994707639867971760513145815527966160093860293541561037507022514966659914764174126888932543420418065414667195526097930512638386810180418421502802149951085057890624872740122223357946230553266325051508710677693474923444209889376043437078385924670305680014344943802489665951505401678776888725587845124848170222095659843851636476801796750199979759922858937961698472251638209610325357065396062649637262504253653573027430955398051538364038462929020965978739488167043322793284388106071346296450714535151591435890267146912820957611341508670223712290214883298887608084406972624914688168804005640300948736862987120501460276887984091821946091268567603387256586309829790467252558669410032978968424029187851626045209845988213793240357749952556863580766641508321836306228787706495638444347588131386530165823395715002927642169801826607793278870118848350504024554199284270546380491086343767484688238398870170930576704553766438122785394739020303951521691308734246072775553457750836652430134471574504667350744149522257806649287817152714162469055061102257450789987294065371772871193466617587530663525592056980141226295879636575197538405205073203525381679506999626717290416265352382675294676654900141270149793720857144890605211427316842886458320302610181733327295089707019292658831224104051013621313070321973407977904352331347429619110634064123911954080638203436132463494478141521029847291582199153029738103930681133477751600078405630335683942882438075017493685454988690021684140385498060589010633055324525572296472691207728819694455427444678207433624448639004215648711041097490623275589081306235838807394788016824516853731135400189336331485149109194520828741070120474860329982886301905396022437573223750853008779712374374638910496194964254037998176112786385586114422232845541582418044555561087062649452198099395102831416708538990562733632578974373789855904049771596842722485077520916554500546866265328360570346457302197146534673742597628575066925259580371805100481881080094691715954528599604791587117847859246719030895065441910616611426487532916782555967136287452638124155096615280891467967137699792371414791933013312000488514986744832055054065568971547051466719004832623997095253921728325748007325562330927501936671349076329750009229568462396667001414299780148293544900099886054768889081534468297281824312397033452353518403143842878867203990219670627772068768171478619637364619674755202299186848982513422620452140267264789541174516016841323222148509310065122792383051646882033520714617727277393469867245470933110119346429249241862731602229749414331273226998471786769559563101219148339739283267932180277859603884061191847896611051394121008448823989706941512696799405128799342924802716600116407568711641839678653228028530957437880740995109473044229418993298281328155136146855494045021703135721744958873040108536208753912480306703556102098899276969576964336593528004526576190807963515396674936414374646772438141966823527794887791039087331269023954947451421442465361241163920187390323021788567475012327089156234628814094534040339882138099818280451321929779376193402535187249173867399045832692136746827381776853598771251782109544416198544687541222731711446187946750745383561453884016355643674156699199016688800803400442486146195806247552750301532130185190158193300796278556530791995380713993196629884424187305366630598401457268033516996625464968262425472648410998855503769436040807221721559507597816412770728146847578967483715071151513756505363876069918134050349289757353226295151831660073663191463806415305115177585230904215281903835377074333905469143761840288380183767171691789388184353880732590402342722834085708207053838009309036843141253225853688359408727088037524227867997753805272835893161703377795704029135571332020240278402250885384700873462790032657889506119706437546809153832754492496212349607003407521460482673387181637441673278800771420315150951467160241395115321816297971775678984574318807510177706653185362246533658219229740302237295604373178281242835512425975873813034083125676869218160655489851416742402708973772740952905118289031523282866736311557063356258641097146997606317750665004606048833369594365901927324435710699684027754344302106144553210361252914912773392429021504240961226891123696345682960479446870853666139263981792146547916305946610032326383941629447632466995996576362290753027266081815302015874108215482613207922673439920518752124985744634589263160658073195562418148595381893774466402412131237910840899885060501240051638199535937065323177967409367454707163599646876815777974363548603577749176761525454149429873009924061610695419767062996266897838236593207319394823968227265690074110810364913074026062407969141882518172266853534392219396523048776239408459405305034594937638480483716586400936556981331035222902762137099993199458436574273500181642401718535476779096091670095052224411519095666188362573002939427147365966476467715786663700961933315750214046105793163091786844884754460426474057581601479672749550459910077110675325570517359306338242282079519219900213099557579816854693379228791217615947994728056200374422603225803881431887582934229093762036634141174439287865552077369277341209676722990624008404894165058662912928728088474609697283183001122437623121474587611041819594540376711974251910773954579362848332233817436429957244359556418296804863627059782073289460763400756808022861103214793354159773589038559321372534826357118069781027505241112387237187294568654055681633574306252410271813092776080960884508624457946358986086190224543294929857098770728027850492560501301112584178472384503264146192162001834670160299238744417300034592545481648492789840338357320234314792291508684848473396356173343398878558233707120398642462411917971985665505021361401890902605411184373366481623478284698647952180633396726261038567822147317258953797450299906334602566532119645357034349861648085818734126562708549640665188397292570387553399101408215761689976936186130435736410946545632676510973283809407921242663643833343333501920846983018808154528828797683491541517159424936896065551075868398059411167145804083557404454146229125944784901651463928854645875784253857373314543931270916754319046992457712034797090867052734393371484814041521851125940481837391137876609716124910028628099629215061410773900598775803321084656755568895621668236712496026778256921977181723654946473845885631564960030166155406749510266946441471810073666157551838851490535059963268058579925115279683165361764249728850010267307642820371750883834847186422930290303638662270511701895186121834972885371466787780616166612484264512395896942856694792276961339064147794364696807597420158441227409598119229185009458998832298831935265107360480111413177634202196342725815914232625305766161661709195675121964879842310352743175200588060666989769478097731367765445753464920742872778340913150351538551066731735845788133357938975178857066280423216673112705999711504214324038634207178048187180918460223668297437521036279705167079036303697782980520381420053466068215435664747519183099597019052301321586648506652899680598598355467874444536928502972204401166357563659773727431281502353917329035288230684985379593432413276886293659233634358915287524663996819973013911648730981359729627648901371038065475734504329974989833453210887142451562250014997310057462032766637962793593282770307480343647005193968254733249506354126844520692812618779636949554635839613631265322639090330758474388722655115943774724695397697954723841508203611822599188004800493370401153725008571655532523277781674970496751965039590453730382308241951791090216114020539056710360718571383600554454270735348747770303733262174154482572346235212283064762115271511571367943000410131584847176714143916785855051899749631552118648509904553099401937034656683913241445714588457113255367097651953506601460232343993140409371079452966456135988071368697925917664894847877192546485642488142087625556082879478959386143140511485254124746957945011333747236669004396489093312152997234072106822771446983912279010365396031874446467184364123363560736213405624156222843264072146473198098669519763709674011448250648753676461143040695487685121808438934361742789774567874735805197214887370204496052404644221127609916781069136603325709187327294442215547968009675064042581258876752459421695634197986614580419524814633014458923409458671988390542972194374543802697076952653358846236276089474280096698184547756581960559914029761784079369913727414873784364170577595394474711907301119787314081502719397179001366416892707851734756658050934760191508863137957837630831294643465451241709202903075842270546179206804127062107579728403790558068360458294720378181299708764636001093915537001283735996973842779318450354505362334614352771702926113821161093936224119419665738398875158971491422985291382181692759794446563497663498208410013955559379574678483212879714566992442819508528017098281517201936458658358274032647058238774469390598983444218737075904516560834010196893508910590885522525939745033583786425709408535679628454681554082545157948076068261247936824569327285182371749428724983084540552159290318494412336397098613815745848345942661979341700669566754583899858824802874588829974321805969808554937601870996365433490854238277164325065061283526386152101820375713107456355444793820737036866813346324125719156696610890740890432241029349537288116533559709959668483420813237950467837070338094756225092819445467482153561213289083493171749459726180524145366089974279911612787560596944156526950937683116066751937442335824303249742576919832932875331450341789824975204426209244683736917172338828482084320949263229141664708673994263172481436153734818237162945054380776742818736571062014474311419902508202502252049466597928042156516875466552862159822077336125342841799354878579233877220031560669392401430030308817371780696665439556091746824629974892207909356774801841414160256493158009096009079296256413655037459044965484350757754789186171709652556974504768973708539632069474614190875447110872354733478379050099177339295103554560753947139725059173280465416589021324396654010460365365509448127117667949258385279616749180668116248858378665901457312563082609909587847943466807315723654750526222974190502343598612191964645339380093255636583724203965101878476634558103087837121059599398824961033464617149097581748677975010236729432251287143936120680864626645754158924187863334933189678842562107120649368434404329733449425216196887362029465204129105783196961628901666031984022406022695037748905164559669915952481696283177992090910028326201844767966201507769283069291728317984569116408660494250476936540351297307377764350323292958465157145593305957413781423245804283027951297605817590728953037304807686106021798101232947567948090066299023082117151167736041776146336007267026498747274942242155517688217532869698911999776421592420986695982839805082590478939856251508871859786605913316250624088031524810193318736362313920366563741355962394000497919521261704752675364430275538462560244895833760972223987183224787497811210833234281611306688717148976599957577006269434993667051819258397962359848391075529213067092742935754269400972389058307335495803167880167996623118330722920999013163384799217362469392511170235222782115951558343698941790659146504538821473806224967160389860045206707235352504776333787507783993722475119095893859843548262449382553513870538092524629582916222962487684345735756483552002008603695782915988243377022978053906777171628636520240777131622092260729379813285534846713308923602121477328644806126915964921316598242665119513921560008001405737894461592551908105563635779066341526370690566000379072042010071753680106903653705561672373021637378100922895861359458901078006926104992733180735500432997627016107824123854536263910637687365163852434436492982145155623031684065530562132448649977359880652155652154056001039287699344349788068026935874751418554184837993798311561162809250918583458055199706789297020357236695591710530723304814993686244640494678216644415464878627194262066307212230946092662606557398221381216954798264259617532234832560760450762847341161844945678020156940079682511850637229210655657119100245893759994781374796713296238842199295470494736661823149629174906757530037080288647375720784708677990260762703298180253783985074699525663274899647617493195547836452848815238586241720272742269808887767067704232159796601388210859550810501273402361115696558317181716768247453187813809551978173092874578767573103310938231799239587075844038729786972259535775681308570738021064784049042558326629481053912420277791670492396859231806282675598548490851287912417910287569420880303447058323419363890915190584044530113611449983820827798576706975999308706200054549897056801995524421428984041117285772051834501306000620972328347576912670364152815901926279799201653023734484895563823944183713103275407050184110677456833975235972570501383100658163624921537170822098655181720973074353546318214289425998833771923792068458308686746082833257600258258974294033744756159144104020767372067238661459512872024725904022697121491702243980010949976764587656106850558382875319244546509033097367293846673253658191947544639219135823439500812989584430977138502090283886046870650423747983400314082083273048531008241703926057312652932617375872094059525634389678023988127528400055741890293940782885370138563927809324720450668429398740610513486338147434728355311801474701563900339561196646035795806504145417182054106583894946328219004610904837383323276303834387568043278777679284859660284161082226308690238223246799055569540266811049247486106706850920592924453408205045793955559660764552902495394141800243573270316769256468933096272906998409763608145391149128530588087246011867309285382495381894132665283415050655355784296566937558644901862661797358580408179035869762831943904017307392455274400811001029651378481608533717289635023477521844169954380101315051091615170084078566645308708450058593266262539737700218698846449572696470877172416539270823952398867052775414972191405228463442524325959615155453295889161702760385398050060061605147899031305426948111621629672628879252341526535053418458136845041993392085130172511036139770820113866356469073137052719131076660586747499028339696772921880314979730094717781998811418936702755680193028724205821646788543817094469595942164554998796267053425862364801383688396505955816939705569787986175998044553919739861066807684460800493009975841574958589126975317049338417633947721275251185511123956708342702251010799129464829359451924996268866278547991427655853520071995877677585414939951343271466830135689618836533647456507948974617738061434565431107864874551724457046694952877525232541981761010611631945277276223725484400894612125822914086805628578940443671557893094036758906346861480464877771973564917436651960984064223062016075857758989495628068579007213232435682543456848054818877639160766146635653726934834785651649396343832117973769601375092124165760986795425479986717780737684605291967159245779818497447575998961442017763304136359014342426518361397399116951767875773124649094329367721580477749780173894105508009774583209783722133594220391554005845824669895717021192494478875880841382402437619288848651870558542061386754208715759073180534777901340635447432247314896895042001332436931464966522000071321699504180857075369763762180359000435778998722234120744733095684111233294296089401852486247863894195430691534772208366482736897839379305928534359898645691895719962934946541593479723759743815340133632073444453060270423927811851770020311449765357061597858890852327217074923064029105218877766664289881716172284160797082128165841690031837720024082350352376662154477892492797250752214809834889507274113804776013647321810548404723134337658863776593592860992990096937240425753231517344200589300851918605884132136036331748284002922823240062801572082776640236839449127227862961481232998476379803204234453780112998993780600175602711849777219969705870611935139248980636850301985285008402295068344738091492653643141464966193111069884043719658743239568312101131214789266662463845832876821017817098860681475354076907536666219793751845286644884894842179204066212477588743786177359337008561090807026039254646846478362760750350965834193037401453696597373155065826118335585688398631011135807868970594191120097946158799648269561604471789493947024400583723352890700668463579568848726666260069630234240809719768035453605764426505020465375998434519905916322478686888579401958766232769248887663688588156485928566357315447759919608508475816940011973516077289903328691410554861699721729358475711471016405742942033924578284454073979311652015740379171665103021709901620012265685877267350816424510166809038143889644686668276506382653612101067811978319830344137629536293855313435117656937222551193311463498443335202467043348020495543226881346338945442771689320757233897506507893601004940087138690330774394224461151241955768135853342099964956330256397532597810568134883678964296802355668623430238560599640218242105651509303721586892508415982499473085517038308183426197174877569029564330990822244450173225842093825437178857002308277356471819403278865734169574151188264875474906033488358337495679704652671150806416992773848055389011650293670435404392357811799067020149654501367926128563536367751796567284937984865087338816028790292979102417893425447502044184607638037532595444496498219710788898422302502936734634403966380165258054738808571269553576322657717025977950328736244701471922620330247390836210180009038920130118863148098780323096983072039819832286000643920554624414763587109204280923715333756616559965431698462764843765872103914975575458795083763670289503155225776997563536215857343114807560464797134593226353525927590534279844914551822812599801686212546473514275953024817521540785180568783426025257221980209218814032143799342198961938529756600280381638820510925493835944193176767721132902977096701108127678010450666180118248104406691015612477115766342196129989970480602774923512568101415236640838646730396990103500881613666564057979306798526529278947770323393532766308456820332082626760249022358607556337947972880694523029923972612739371857596893673566581195997162129485467465391335835234719716446486993241977489941335247604465483884721899293968484745105701113420749906446341711288223434973916723212187431555905762138111574154869898310878367543712439022815742032338722602043240421980725013964456711835257280782264367038223268785292031341928257456920261302706115180801999456840252211987421548002863441229584868295727826883448950664241939219590171570028384680500446528748238279106823904871461441995458264613370194111472163347447738874224206612201342597584650927084089549191119914375970293821586292626943619497523928925127660878083056722103619499933222211329951148115858477951398042704654412886011169765660147089554859075934867944627744367930977092910251752210030354551967741822182320487446642209268425061094363731542142276624399040165360120234560443046004696467607234651287697887194745953007204055601518701851346546222192943153315452907038112958507215705691480846796026203211737785530175195697406942794272178839599024501882040607314572489811594815979158911699589288806144478014970758792572707374061970850636923266164629411981891505186986268466954611325732444725294137730092521920497458658245233283686293236277040028049387424999410843390525847716955370886635410074770586069714461042122168035866500694815562231854494665516179308451265317732076999708211233533252443689375458136295722346369639082717570846340201539715114788783890714477519620596013013349177500742187385189800138734804385621821403637126111123979973567213744452139270165934476466201436884306005630345515335856926852824195232389465907111854857081569222223106771038309496022474348823774458268117218327008272656942970139059338789411064434651747112255870472684314909352903827687834314460170614781265760248353473360058382044117206519407263747443580980360340046662916612240697862825402113475905258396034474129025826143111358854432939668394189066659811135663249997336966373210069550032250380965423995981575841306062201879570500843818481788158457224065920020491774664776882979967446806099170995653962567616403804024202118359996443270540626561714294471813066353375056936891805710837507593196692510904424062448351705985766202368091044451436837138498270334121038932337841123314032649242571881060769723808879926143649645797674605022648434409785304827498698705640492569301246514975346351751284920678263091456303437093734309590442250258216170200868198695158250689119238691542646078210174222102901211657876849313776850101162098167412791243075020501251056003514215838973806976937012850782626239378964154609532905929144442496880530178345616957058778979371891880128385330005667433688142668041582874771083975510218500811170379912117723701913540742226779416801682310094198251897287350260715982254367624667432340820215576565407052630484754666614461587832461635566936185485624199604111218818370742565289041616809986307960375410950515455100508118497881242658938063631177422502304210238373807633901852099641096433987651472927987027620242829713478885028095678240181232016706059885857744114665536350857663719284585288757400058150067631237785018852410570786912165817154389246612366809864615112067935531129860760862184467374471431632394681191248735508667919328543287988836957925846505695142214819778771293773007416731694437220150683265507409161358209599320708223468581330051832158790817076886651721970835869804358295036497170815623606843695728602391903522520364377857612321969334125894737089541485868509411569338447785950399629035635126494224634557983642553179642518280108139727720748679723173997305991298286109449801291756234979657204284099830271162946699790418587649710333289100641374845812160981507123336635755609027711986432138438598929253006270699450666380561277975793087288853287354980194000153259620877506852373601055581609989845875827347923663031476155389238205334041778984385429451789758297627851485941612477580731669549776930626223142591942925817566715595229497886034617579774312303107246780661425873394703398736323245314310849260088255357166303699269076750283205630408720955433337619833430465363574876765652619884902915563232905903633142332991071500993154767123239993690673197198824945404359717405877867319868668746760954724848853708292991906056123742915757748143720262930246584640746238671278741540490957803852775425147115105465129788621421006323229624292344317383526940233677216032835691318682256083545104568864780538916750159893585972227432719675187208167610728383452082579961496624916716175242917477562572643859712586190890955033657352255520427526494264483283693615738801780296338884683208986377718418972434100631969189311583863561053375390822083733389608328323740280767767798186721474392680422178644512737114030033741277988297968025200683545877637298202707553058151249487621290639753513625064666095790706427283696620915201250888290405928837823391285155182168170670745335010625438273005524738939160929843177916934432114179955535605728853973758826909193119775025594345699125867294096866279638165605379422393694704134538932273457168060691394672117931703390426569046860981476002340316295426369384148816068934087818401897546602335588197140024564782904800340460977929634591117086848788065717230191543283507836112831532966748284463584009683003750625730614498355806911493890226880791846614559868236555579732801990521597079446994262365940641441954687348961251028960135087689828613315654587236722500078323584935217178991010641855993561275337886160375459476154113232708495871378504973568586489648469085187370133870062104906917631730415695695049854026568020771969600906403624546824610693989102785682068620444204376385777428511890622673447494879602525559464752024434661397814703198701737035106604654295485299478685788425418014078792711283741511428442673144325863256208501035621325060818773036479842378528807174387978515336312956352901056188847283786376203910689350552963694597291566122999908481873156825111219266452585927448257416963525291786550933494922203024445459924836679299449846487777522370441676215687492076125549746618429135073664132134960316809929088973011099532272211325178152448305811493350777484383010200672350996775625979668990569862586420430951681947706688473872204168892699959079078333352625904116684553898371520658452169602247006428185531643486087585352230047091291103904975077182547014471593010329267717132933376471620939522912603750288787390693487304708234416823097686300006787640473426520045895878272714128142811999886595499519661405639579434890100293185832387764578285122234173746066616673572910020128187457972403218795114493457528766005409273241572063843212773374231348566163711180401812527174544350682682157361726277385065775207703122000373618865999876229981355343953289588681978893759983135565654436641840869721641774140434563621369363011508191485598246670338859943654846955245101782175729402664813640072828794548751177147064574559622279858598896204387815081022337996650983679223350259033361192502162968728588134079866511962551657094539432227774605875258369898907153588787080860669729770013605856601783269250389984956901261540292273998153869427041537768482282274919766085899080225168965796883419277288014595454317248500168861827641924543433837121479472177038154199494266484335858892349159672779774820572429599430859447255166895557065856968831041494108962240005635972693801143568845159668529053352461459851959804747255401321227285670836168666356378557547873101999943546817855197331574685406189651165566731065721215138370754893093933447461356952146966496937118291328955888588537756017265980752452882016952898736361907515901081109709585655362345617104624544837563755057862910773308904087549870547059870641591746826606325809154403187879447495196049904062867278289694303670400695406109353085157321760109390590252372360781413996619682486654856465062675985145814431082049313369137257897806354787357097979868920509532055141067722030679427136958791680594565667852739309346432525578674944747640510078010607547611642840064643179732897075671033301456093569788353020574780059144952892963786481357414369517313909094389805642489311120073388969666528280669890744368911037666419592325415329664256313458213131919448315309353441247491840782169351738567719071472028029802477365442733217664352905168029893591425927197030091935288824782517209113272917268803845828689748590466389418463252741072887673207178806935466288931659754368157484851095402397297105842848749484725878335963939960198755952427435783642578026639781400803334336341158263647857666783992022288135746608048288902030917669498603072506066238002214344592391115100537068181405545254020428167590784296718868361664285109306434188717396957495869614094481347643466982421784746618662340687977623321183207499518403455093578356347648199476318475515820981793496612231941319340546270748955255527864058266487499204851916919231035650182869124423977780202020471608001935802712274453569812655365891483285816524240010050369031109948570204512872044165423415786408751056921850343596291549582349480737260217145710051554609535721292597694970664469765658423398509892834209685250620852782807241462839888171924707895602093830870742665857577572886035185060512208417785697582704472610920164834986201704911717208321850912323318516252026465472080763397966526835659300606255027293196454645340493248860810446657613955645301867380033325041979692400509610153242205276435815066984846277284803467413382076372506496881384012857283012528450364469352655417134007454135948141510136588388900910231237137905955216996395989057173043263620537608738602566423774229635094666663670470031049414354625492985005641560436912586559546792469625820334616488679856036155547960554122125536184751773751538586824659715434552405365451471352253546291868634411804607264692986021981360496010807536421022499433741731980166779254374673291789133344202583554810062164499782846390910010190121263500393629133104619893777528655070571338624148014366241362336957876492448622143066514916416702572813156696926996755028674884258899415970478386711342495227422985470259154114015622649732373834249189239653064672794319703148595504337906844709677010047577030251121856352964422923489098213572596597478871634477393116805375979879719436108199590950425482261917430854727780009025108499914473715117415046851920441055505589408286527338871654733474312702320835779678312173239891097024338385079520996949278029692622982333284588189262790285238212629739587561664562036540277151547839939335279795773618103448676891759842610797267964676984339022668434016437510775237131845393452751155836952369923685511308197925352671136790509922258682760764818030441276677951067835895548796863722879400594713305128218970306003744777784278131858314484502715077934640122520295624613141590101289344656760821751808610302340466562178878837199433799052532960125413101242698535967509721509089890908439156911456673294674435087227115646194104867462471139954466691486632557908191404049484623705097106573346527438575992085710662563245719502856343648764597604155020731071563857440056762952775391361739889716080047215864324789440197875935539881072651040613181282146117162673161856214974196110133331125609915218227301447130502179297498573159953757109305026467618405446555703000232459794527561142159912157117994864661009756094802936066198570177501292332787418279123389757704592530216222854655650969243946262866569113707550493404969647022624907419554801590034398479687161814494449812915477005192819821074781567066395261186651750889078316694231485318942145472327371306315082190909589590843510859791985020577222736539026453940800285821648904904806555889036433963814596432485300288802971502180678247651485587508307048917179833084112705842264453732359159967576748406224372866793442517085076026565901087057930601861021650239369947413231412400233327337400691790987399875843104100881677233649965751049699668900661300800484530240019789235951975421896090828141849539587452185587570088200121890765257275667422364016966724151369940363543626388391847346976505891585416529556260013672504001740654601098540564091304095387650814096450700261726165264591909797838007442642661947991982521573720668628356821136544723948462830001885486696036557841972850975725215224109263390531723138432648114122561672889651975105305956679675205561668123009340379655666843312010224644090144403352348072390302062368562625801507934437095338325640769860286141441740065899433824349448324169096377918036138680488579418941230649491138751023792097559050299279893236177506272199561309730390797976183472590855400643496489403764673050441406996375399795489990624557775100736018818661187973180845216896681161231160460347397546277261641692480783177030947751402861550143942637986471497110968993694615883045488021614673129948375253383099932917512043932347257417921854648295174716577360869133475845787221229231376743518377406929889081802670833372524882490648866110432959446761178527755485945410892562921149216577991779014508878569841994006461892377812642845922733065196894161499796510314074530847248109884367033666085060421467531677112378855407790503453285536005928919271514715404107007221179089911329737427146249972116919454489307909800205599594161440922113118983468842973140119451162112571691950458438373377646648122828886433397819647358781910434853996255089715570450148713665935378288151531332981619040137194094238056494357152971465636481574574893675461456888200833037286226985975186934511247725684442456647348309436686311677817472183634928929545207385169219514573623390378125205306027469622210685937640984461288472445572581203140954031226968916081417450003787945413099388277149080933543620907141372078454150986211956644592071375916494646989606492067000627793574456734282486708648750145415435246400714557968362431837890061465943795179000051751356057621456093983465587738888157791603369029384208247325897246336443597930681585199656930850894881300901419486672750779126281301730289465574632927278177943094273308997267455795240056245044634216730936568950669804097278997879277800190705265121573910290976901711009152423958393383617064451550746609903336652302891805474851479406942323428860947812169065664716624213061050213034250420858818096900015538398243651806225188028506894793775284106467061935329379016380590161726548669755138355804433185679349601934915157447306034618920727604153126628881791847345288203713234074607973098554638187939371720575456399460395701733608007322568186576002500770993204330346949479445910246567278914857392750231501133599959360292633353744567336765820761583328240889009628224420687787397609348442913175330214091504874898761955757294254369711050660938200559606426026463941455293934336458207940224399433531244535870878680663803433427757622551453017442297711958356997717566341745865711999171314593673999287288276416318498868369734534354068567246302910952506871542280928607384241546691506018132786681786949497587832124293851893778705519327492922668604876299139833604686446828136832640443321330673224830127605183395608120735368036783956185644780467909991328360887840932466133038480775977165584226561330016756391283540399904438287806057522658827575739584655533413868913049381420150779053914189002299123891831360424563691605706787330456540216226509726984747517358567312199999468642873664595670504504661508139235057115461700385368142903012734750612218880124221105813619387966359773440285467296732434890550685153729362400756606604447764294641855329695865609413660258356127469225512085441208153463035371975966470303369870559034699816564858152400879731073720172043305050435578852091262660874097408860696741445206538291885437782373028862816813688799725438265618767312575500607789503885230181625227293077363154652176996812527761301514851031804034321612775710763204088895612767505993807711344039253598692843720732157153007149815193036551434183434180721432206581154417324017145700497567476156021840488317446023231346459761091260141538262710883560199800357104223431967072232927956503971615975616897375625668023956561975180421202151187677376358919874529610589597518092624968787280626922718235323086793104541116462983272297486228801625265281716637321071141601906022860821835547503810969073873264145361533924680305249694098333004875901509557027217766945015752968382557472789181825860936474308096472941658918999507249229148084926040346528128673892555131521923405156299945857245104724132854965458316080446660037201098565133078812162551426142620388461379591395001235499909066361892206674979447593526930811667215016544201030396169772966565009077955480425590981810906423739078607996903942234268212754190758929740454337320836421683783093934772109455353631370051584858040061964102405177708970328185716036560970027728959945773097139657012754700080400738762182490178320410152231834084677943515172223032471191890555735378807357329897267736283131311115779324729078908568400974790025725005805879338360552468656133234415875643121851858905611867778957180375825369762486549684574058331767134907964863861387941067733295418812442417574891774586883370228726505448241302519184264201561005538968194751242038541680112132266582720359942810237234914482065506897083922299171109791634801640497591432289279144308761244405691007870668860208019370606717231683044166610328850078036100802556155829090033634207984062028578313827324111572945893462099623576385419304089501872411816307873691458651650965316964319634836009464192035306842758454424388820828978310505854393016513519782544774034040717271815342608942612806716686805065713949234348743254508983877370264148534305733310064646241000280965342174482590673366974553053611956576049863763205324144473748552205770848812241529633094223742131167713164504675787111151733922591107912905328513900587004647602185171911564458854324244330228211800145392366523935402719273589370748175757913901503574450648296564343752528152042925025451582358265174378786503525108668487642090295675524962280754348348631776669628259300036893421792149350527173238995186380199083172925754593678683794528740283558774585165513405046082718956713118305152489148661445075432686920743552633926065897891247243522223269329142084247561729212438235631419385167955991011385037991911803719522754386305777766287531017241366741754810068198009819625922906425002096084749164117624239614236297421051331348369177911906713417583627616294349643621017785914330346438052993742977043260155946249464356564165794378446873573666134188635819413639119116402235826874261470290020547060007883827866959911914934219099515565513082150597714385354590085733087398605244205708664611565799040463109597176569697639854676063116712420053367132113906494778112494836281427206391259637800917458136000646438569946163644116875923708961927738296821027231518142664873838507976499142099062186215625756952000930218081960935331904388125671360438781139892402403847035972397202252899444790793010850424660136653433379508809677067011223025781489643480849527113832219349130594260164128453144698386488771846878825395813466928549509397655361426109100531108318842521072273435141577475633171822986820860439801605387776901476401602570172987103294011522723947904610148732004441905675691101313008889177622030901201869618040896557932820447197454285396929596520392168569481465407756137519443041695177419384830869573485718214843405319285450415273950263980371768780940567460372854012155752964167367575417881105541134808628998441716112855902730662778227668256962278434072948637457324946855852325685693112476997848760062744829474307125443573590712392782548007994155169686149250273188333669704449080980159150573003765545198937759051202668948133424462904375286176510141439333493761165316784467189202539977869024623465979726107638928667055957738943147104105568694900202738924650921345878098296781087099742238923883024239527764602210121886030457508380317350516762616650683360628847069615539045872105492946326819109526337590194594815246890291742394563927724482913267968212971613398680515807666391616118455821806897907181315203153271917790466566406675261209414927496438107135704193525448662324770261874564576094011167666410664403572925915473671478184374426002366123498249471811255359477836679486197967968469601262130275457487103935460336121572083111860399660930630843256954942478897959057940113847874510714099870194304900073061455620863988010504776564961503559622269888120523602311797992153806638294615917323859739929249727172561838287487292045862634438385436707195427096529468624607514623016724779145502924371945509305745981614226140059355526082029020792798205524015710153950147434955841864652592728718547909573132042718782922952228722206777250611462130942640271406457525975148431229430348324020803617878381016599702339561077689541829815078512100549048056273393776412875626630745296232345071945836451373416933421430930386253820397930978289792657064626523190783990523339655649058393255735693629459472047201364947232193726243643723101839355143181500498755639677047700959848801420207500985324216920133527260066308767197496180948106059794737724193455854255100085087103629170669847643436180550863286028280797554115030561278718271547147438897800001541569260265937538400215796171301661527706166326723132558438253693625279223332587724372376754142911929834049655006470601814350330428323799046251990429360472018999347658412730177108894036633378872130241262969989449252767937373886411501491113058645092432305150114674774570455990166907985341794294052392353785895515237843529062352273732977148901260983813683107990007473261668949876975382007840811909927253849057585283649966408502948349058146098387103595837006367081166635970837978267763475092272670027684038374003021806657598450916704439867454456104452410091208567158862533981411096380134234496016516122531832886333712811450420203974379016008716252903404658008614483705379483329446228820987822655975003739679491969663094152166929998426967991351228447744804945559659921843481588091149480858676468105969362773298406132097791941700904977056391564400497974788460129399154813423956326156978845138544760311144643795711485862912142628698880501639654247592268939451300060679484223920809944697401911925670813434939409511791452306808011597583587888913597953056812584492345748286768571669683031353700562820422770736254505816907507495543916624667260423798841786821203253604700052153560130583430659445169895416792107532130027049715345951895461507511059497115517372013343517006604253851882291025068930273633228650714040186693908611581599296273976006490333707286331389110185650573116817075530364363723886941686511964680677536822590104324722212566965171279821200790278850651446912019621772773654874730648307482826672749915512150606224015711513024842747304719196064964344418167085208872221012922080570573798356424797198696387104641557507760130331669747064665974886506584839491367691077888395672091118157479263295321130671268490932617122815864897435388491597048345809363928017980340774702516481992766559062660473797305725350302087195980383812166140947961990666921153719473142506529042534562927251792438044294458813562200354328023864418644875341570521179565845850468518487740796089429341007842107460952099472044348546801945031306846589756859304956685994571559123885126572083053120696004081170598123797838070399741300508954368327863187338456664750057381636771665601132357424756731330939464121971058728544511052461323072089679769431583440251193976147126558620140561889180902916731286467430237731021619513410991811359207955455619453525630764312718034049858613865034746017788781047099063022997573805265453281453866564855270917497785273672894683871886873483201351143608526460259385121795735292554485155298616578874979898756057143290199553790951839889790341113506462375595874701636003769899466038419769450304744352766680548061070168401057184358483165209789868826660438720410671020051446476236225051180038515373292487635059470328446298418858808774117101304606591324397831422850430592737624659430415873164451352043672422699864255195970236092993575302322901305834967943296334501372960269725460247956008758745704406889366147043992713282230243055002555055661947923532456991977545048168327713101815128641673082224413934083978318993680983369370668146934789047312086918472735637899979051397647785231216786830926915334686214339810880660148013620124002324451160339477994034799967412543865984715152200144563359839856245396030763321537066816964431243417319466189954213068520503743103317333960565822518663778670343544099462333938847174015404059240080015743462261432261243276248183130815831954752570294929292119082471946113342813580187015823656573902904010860309734850798920587593495478293934552471018711666731665180622886902115888658667557967608609830478478015715260724483325224421403440499508300811594444191287258610541377722630094887363567259041352845127106807807748120171203458767615258529438984089603749967405060481138441780884747064662325817963582981614752189488581270380896573734951302761308753801023252753379120474018258274055573259441728002151723655542760953001048929827735285800220885730131436006407270217172972653391896206653542297435637680046090160194883372782814078027532182113540503884910975171937725661759373613813471188836094278030054370301218202561047666392577642822421586473770684973126873458181183938347668327067196933289100357924098863995752671201060236480405941573342798770402546978105557524062340043731565212389539282487989074584040395474039160447590122929595958560054642985099734358118213637885610460974641900440603741092994290842375157990399808038621688402668462382530122185907637780874005375100864329720930759048784663119324467485402375313338382596390821566984702449681009748171746531371005966970860732303714058822882816822125230364784675889090084818693836829382499592795087055740150326612357080309147360223553757206430247866442103998772570392885894098722102499281351743119835342704403565535043814886431701122795736731658158988060113456515026679257218108733886745952880614190970107702900175045736497865632658017952565586353447262004901654420313888129312989840406453977269522347993054686338505117088109052345556371180164807399296915949608693005562444424536593189689385038682625476997615944596126669850419857244080523351377005843026096731923411162146244366634630504686898904388262609401136030063699677453970863975437704261737915576535492455351334209853661971332181509807865319013729265203842991503978370785429214044170837018842685287865004742116719815902866515703179692053482353302591971741520488995646494371074048570756978987241692555354467018646051069749864827415480442465553534997429780632026209167691036054261325447687897940868546771766288129759959109410631535315809875650654640242780777570585479711797310021866604862527064239857224742674454975696116828925280752508760602932724522518416372696861801181381965430650299554272040455120849461168448157534399063346314152573896221791141152672709105237095659774995769229050062214220421865065338772566879398294475124991264523694007513591769832928033349817621249944475353152173658025437318066395734962865462625326324412931002316647653550624334432167196200687825555432443932787863074596525933691676806195966202402022194042633780884800603442964993324946232068056251482728758867980463120123072275987246093351016094879474922636324076923094153369175716629627372116929619039992634506786957421374757004386063921540288209590467904083542882756815239237341602229869939724563597747868661972300820329134182365646369089592168594918062627071513503381438991914634746725088522298413034418803504791735951664365361740939950132949450109019351730005064152553689992274299077803519738849283101710195727289891203532092784544475605498684391823933869923901423994103974292623034418919619379335657505179549340360808747208987202737487905772260297393152356755326173345403884173813992920550749888416358687529247760400416651392751949274650116487506253894461288365310408361884973637508699896462553979904055621638391598966842675314036030756594313527539247895015672626968275452244776826707837068140245570528466437113692229919441865213721845022313288977483390089629947097208903351800666600428815133908523709954796618582285988944975919691038492018151583447986806257617215921159622278410020697388871081094208621113446404264262248452829089758734576404789137059054293823349573192950781396938662870150087746583704461731442220047909047010283278684842980298524874880041912868674568522075834596091885521990732487645318935655362269596201554043391768932953803875965439106944906460709347917201472963943733710730052258158124784858544518263683963879675986083189670371348318824211319849332032002436959336117759539499945776931600791886581473958980320302344975863398111498849772182165203531512140170159351625410545347141635866404863224164526526600790327800679454189418680761168368792217687196921814708558237928838958081843729499600964618261926721899238830822857264671083294227902621216821900568366836353759495567170155315964401465273463035401666994924874855633441314087603267910444346435469227447145459378439397536707848007141531268636673806264254022583296633171616990607402702721671522624189147742389084331956240708664928644359617739415735677833813392475865612541325581769043878174038531182479466850719799333932741750017404333388448483570225283834512263000911287019486351125186523736243207537292765899068766249388643457184716968738708349231759659121148805750408729770308345944985304340059519398400714528316769927189990687493780814722069347144867505850521325895484288562859205346122709560557068257474218960032804006985489008011080785846884159785515210462823904752257174130714228342153090898027181291529945367553988089993026903548797979494764641165773499930959860396367204346362473252884303838526775178692951536863128863792324229912853071560291813892831675180064911244329999660336029454488660633763615035923749774502181620111845547376867743369791566117516101296433721895517123711927556173408441651536543449757671825224219134791244872509466089802076528015082426111990400707954293762320633084345706004298831284443336989667164074474833308995992717739872857240851626232919275065912573549028765045981625243831259766053265889917493695412064474053220788734318256433952995904842352631579531802701620935537512342381849981929784234497656195441871418173836780730666741488573837406861926232958373263042103984550821626314890042051972587172629547473078099779258784646511770245273940897005846244582265603216483909673597183390616582311113639736449982299802841187096155756839524488263646740750243744755314459473082597059936955384751737910885027915877542299819197956933604570558720966784290912972585448389332238722465314013380208326914359463959266356561059370324103731820293759737152847205941323912093978373192617854707245012691897673008721726799646051653740788197929981749552416980425083198315024489237202218719836069210372864437766602466292511796949283827529553994816510669485661214691938066594646066579022360249151475790455363132519085002814948375662643112422142364269594195857858649693331363184233539189311049343631585730540740858992966985598912304227070433289378449206407411753538885356862535835842904416200802558494377775720002126929098260994717887697091091248760461247414453844501605180148017064176182453203290825288735627305006633360315849969874689709018408800731714378763159974348440038334325558090685432564610084560399604284708360064523167291588367831442920658444135529527111680425312225033115658915616607698637978114863579465193904813262287503600238192881356130908640580541775603648248875540341521451739500718344350371344366089402065810488668339653075335656158118700118971291888575217543697864931186450166124222786649898971339979693309500937156176750008511845592362605765142769557862788733633791204342352950048793023478636506990990674307848990733720910454153194679754867943362222254881145183845302776094559312286166299113418748454237291907745914689510578552278250620751812968025729755589053481907048823151044253123521983395154952665512841072617112514242578938973824123875703095286790972158771564803626215290223874999617923483728293534014307387817938101639130571944168092226370924387649869409118602201710178268600126836705353071020668890087335581968007099388845291902194529779023664224228677305657446776890900679063704631938499089538786077262285203951565247949252577813154846756268989053072489154036573129873363610157216371523587230292198541536771158550286409896509706695506954823642295523611127236456285080415901941243513653159201159519890102497706603760900505942263464356088073913000487279155589920119330007509852076626525469269251354932320762783784769705491602743107843711140453991258584525459112021320448099263783056678790227456843168112408085099077178772383283805243830513883401745158408183493838289712804664646909894774948323045159139809116827815802484624303730004328223081661807296448314163692840160725460108929623175279793586554199734420799085456560479295729120260554912901262889936711145704342235160180073522906668977716569504621140347633468261002960222498597896907987441553708407074533842352955513229816012932025731694868530747211219367677247764228143260181647550539702930172337481780591951692713857428020586510249988525763772899602472144433833299403890043037662166579420425040645735949861520847485280135583259981161925159863149326693163075140234492654083260055958584502670196917353267977650930917794918969619398679374142795333445020994464816147452788068726078249159934117248969459617222329907729252471190110133612076218739387660328611198511898333401971772442616879530224008606136799325913834258975613619693269418641389532540346523430746978159815793960384907900318257715735038395370907921443700252297830623671602514080944480938309952776906659136274978285211829438540258731975718267003985549456694762473883507482793407471871266506602064664042850176339298561505928106724862270300920289572019785421462876314671829076462386566176692984947786259990511732745536537096790979187756889581948148598149808981617640919295812339689146204442634662438811770972057755198572417467014174679421832513500062525152623447489993322944074918461964728430043311034487455352215571781115569359065678113972301678419462510157112237509165767190145284681847644239453418744272908926783149865621878354516538764567525501803481669270314010891593850385945826198474606042184884578204220677700045393334890028522147959806750671476631981347029646091472453516706635821882124629013774169232764910019641342376666754024315483114193006910240309480289870014773957633437578649928241051841775994162211512978348859624402875289962757816446189871024626265076219824784781072454674695600984299696255183625895567042934445221075490390558927966372081417275859579844380952058857240437715642845110586255123748998570649978163438746765138411800793122647701077531072049268545068622806939351702526489207480958574958301728101882012539409372902997273269892797549814199678602060134212295219334640792983486273343007944075912296680512201759375611613319614076360295399117581109377472960186320601561072611624300467283602880117659112535592798647850114429793494038584111326009367883349867042973829169991826225715197491806933591584447467945733881430245040427932334606712346890324363995659582567742569879512754730920959267341943703990063587461464379640037553364574986250431605923562872435241227409286540391802011036389741365760220587395987747740414718390223808344132968189180719251200952347708348812511949272502212964598694762840437313094569104923669565982309461405630377911776482888028874281532705586358915616492055129612745304972698403435349591027691265055845034031721512508105629859720366819275153527039386589671282553221056637179997608973948451844063122465619722485672939341462851745916251251930299392097356730680509997897072255286552070661153487160103763118289610561231338254392103107189540761242193396632395804675403775082066876892262299155400940892757655787647426186338476934525546778218382900977677470196795191021349999765905868239474818913699471712060446002086926380654941946359819528870798028074842022255250481436669058552886013307602181989955350187484910679592901635340484353968935216235386093852014029295422700954177790938919843262681007872733732031909907012377590909617302552846308328719419387211224264757047906379079866189142768854300306813067040746458412489907517818198217906448372740194310108399815690855919238158093120061403375418979754852225553384162742816768031544136849948003319308498763256817299229360203533852174225200888998397226804474636313007855490636836486189776776822085958863965684410047633391147781696620392393719403169035693778256768786766943340525187765697402783515797787678310541974369434521051226658570668404690634794464873774851706204841824294888117625229466009965090963043101334301687764096729720492100804428948788139735266312199683598048881930129526919969945440918050682023146971270612274225278397659039138001859956556566523971586211400183329456467957364470683282157111460745883314245397866554190871833877224892148863704772389457739193389433463918756488857430666313835538303943063144422862985923389311810980993091275274437629024006975082022685000721318286210547337767154190575116746599089827605120663391494433273655832490653271123024777731274754415304216913736866190785825153231043514666091489389069095344979575582018598805846740174276263364764236321055517833616634828801266572410920292447722194889935858301510550369717726424187497349002708454196081839992990319309779312866308001490196538766834259657562107952020870601019438666373725124774273517692510250634594179976864394212954773282620209319803498047160002162961589183417609543553210913936230032900745558806775959538072472403569723464417099454302407811239552900179874334814050277546526637387996438218612393002401539570442519486224250781425592029762838738276950694689696216802528038817373466607202977050198473488357222601724234847945025313148741773053948383480717529968886372203746867836821455243569493451795879208937317755707665176932641482283466750686929531053517802585925312203911791797500661872968121728925403548595788196075475040699267745090565178566622009312009289635766027423370273201734007623225341854488564380653582427325648663476682430773789302077534101575066055397079544018737491433707892287259310241278507450791670119254338124526098706733526917879943078245625669489341754503229914427855234212405806633483208789113313025036346575103933062431145632155249163873460081884489396930975026938974156819195520508412399121705811875659699084625633473992052053230214925250406005221048887457750415274918338582348910970916278169875640252614474489524974660277106072850561780012581072141124980395768610141903653966934081827162210820046536237891769488090080753529278731199068869148484810858659030631157417467076114902054589973623650202184544993354835460079577220479078053437296403702417299850806697786301306560510989028134979642182823916700991577471228808805583281375123516130204382539273604656864544982443650806496481688549093977050204958315513122841030915400166775458170951888989749901652217129774117056157630111986539950201783560938131927802375331743911385557896527944035020748229659148345913542263552324518821506911558765807581496159352554265191113890980216107462373132005044459080703778991865751774744414245428101632374411325426932836960633610988711890928831149108290694067182535948596104926643356471097682874343220469078003660573998775595121781534498891620232669169431104446564863923021782203659490022303132350709403451901780879441384990650196788395348153718879215861362415107164522653459538750417960958129977493182234699769997003601608446338117914432874313102090276401967987800899427478484952782298769832921565134064243111149216680716093584132463986566989394755607102383424843103813499923036220299069001562886729102773704214798277911038628778189026194756517241775132758850867844933203325704314702626096572569419269377256970876965821222373725251140767295025677855233102325492066321183575819702140882254605462687195944942767592612267157224630710993168180939157338414695333280733070297789442458433511485399371017199853543484916078384526763087688147012407014135499930650795848751416856734809712559976980040899405599199068275808970902737465583194913446829196039829185849836322084952027097052126635607226737910945016837808924616018040301916803688991735666700755512861056633541878222549499933831259326424684673589490552826546392182394834484779426336130802872498438587349935873282382280966455328810294586858793002289316734660812642752004807607073747794512033516248502098006968447177644620253424756515391999293519305857530267497163775393481420509098516024457347852038082008942098457369747991882096011926966351380152382475793242493329426380499291588393185244410654029402611555259845221799722165735812011094832886818114092881404629518511897476920858849500917302711202415622763844519479770604194633885199546613646116055170078905347725827833500138041842026381409481835958045609006382467429339794098748517205575925350875771377327996075130944466980197798100756809320933552158556975340200110700309349031971053793615124516058814213268468224312157678647285351103342800048095470668215594921312124741987465611259558664058390486184074014062808475579954645671524746006936195815950811730204891237097234867972270504220892283053712077661365266868761045085581082002779189958705769633166708378202028430103357336362294274355576330772389533141760886533400286816576487323386713211762599613429436202577497512623113295098506502280114090475292002473458922861203458329798943164708293282809909618229491403565623294189382355558085037400564414084800846216796232585047898591685150483593476943939960456323385627356902586113718210549348203457908845935795255474998639023428083577651511959575758957288398712562808781403645932764937100126702783837933305161360365039614062210441831651733596938903643477086552704646757400166336652482102350617135460897527036882555437242991201144293524036812103945706563294201914872920445713504427892205854339731090755000228573336220864596112482085334422860264679841064207430620354898079309301842446831601352883173429236010030927589995354650848488145545007793791308529404553338215505717800387146830588561108532169449353202568759777221668925909106666215252942132984801969300491674078754036766323609407470543541324517773024398593231217688603583045814202147631938029626912132032326223708707792793885086848640377700089453931156523903924919339808647703070486874367977066627659202843964404152147699381731123661223928080504312785097237778321143588031350347491936108703514388183138850392432463017169691634450382236567536528098011719969793416890958823230004611478092927963276263342625733987467971088444336025244501527500265926129802829388720165899066424251638056429296004629700189055821218285684950486505975104812406176774485505370679171354311727198266269565344993278780678149880305793223699822289150658864316722899360449943838754681125008565692714436544056210709149311246764596539669624484440016631743063870189706734446050482771953048593179042329336404915443151450707537732450167223289108577763643739895990459557819939069883827979278968280419766558010234716510347091364839921712598483911738463042174785031404109283786645361831464708293870286018075816496461418101574582615145022714494791448727382967144933725443773160378436091693443851933548296800193448074203101722608180748006211934218254065333968775088535482938487541214777563188908142348960637259428091190515723192594644142316388215516764093855767101192358118331716829752021161905429856606291481342983727470160376551946062614277366197276114112771100072387577442647426274503389617376966854705652664204861563499644088245773390823168453254951138491731685476945915651387755720688937364014069453006864689841300051461423046952411197289244042953006176308517757806277127023110407803803786313690470228997299672761729385322573048029362616219380579828019590188758091620823929506366438107336220461102760981232178869373173430796120560972667892182018812688914356114574700432463512929653262139853328783400914729882659144167858614292357150208958348228216022221034207095065000236519757638330056541728797669959087964944567535403960160657841734183059485360418952803016460135891882398163152433870637150360969371406800939979345726331352203386619545721840471835818895823875625992886637119129266792107562648500450077729124495583986742436783963072764039300540044309262915418872192351244579912865707604105106967131530154665646630440113804389803185223564423284741105568709959731929873827411393451490944259383958816848847453840233055055177245843308435478787759012561970995381565437904816393450210331961973296183697511789162936341308812809770880385321541661010666701342756653062552905339353368593445931047995827530102444735646983716535647411488083624427202459978999828822725986056715676722344186479826652013967489329340678031445477232317538634076054952568933628167862034884481359187552288069868749968948739303662921250539205853366159025924366187761251980895335042915281560859294724469808627260519230080467614708018127746413187929782029460637595174114057355617195461561374683976384448461511094146588383362404758069396753487498814123527196135942338794993546936426666372478374207098952273944076648433228473078788788823982944734103743671446853026347844290848766766438447678897169099927794797633451746060946592147883827552227475535923213338360233261497921216247250030462880571155652686072503820824162675873681172441836462176270652896532777792990906453135532066234600152717787333287974006382754729155524151146219565611030620316990837710758783201537778135589124910492383629865197916956129947809775247152983498313033873663693441420617084710724836161971806422838184174303616484555600083997578639073854013639004140630841787443310135462169032486029280425581657888801242705601226007424614437072165260727011657396419947402464456548356397810947261693736227837561968042038402335010207390474404494355282737108595461683262932532541262091584466830066614547895429937761516205155662082928118134104216940367569816736494241122648216807877925559412379143343791016755206267314648523918325632793989972723360472228100240947113126823373971228214530206492490876421474725010070784008418525949955548421303771245397401692861123994646253768911411306059111616000634904465416513858074501565282414729072110704268465955012597001424987584931530673738657848483587754847896660880081038925658157941322892874765599116848019936420985728112503733171332764752396774896050270497418949504145317170915329602053115023379693374117482788609519042623742432265255851332931275968206623821471522462737600448500356516159066288610462076942321485582307662929411363442136640782030123631184041049505412356565811393167216606300211614102903057504992968299873624911008591432286625394841587303456474683673981198865325955382183204793797990949533062853656838354264489892278594802423897644756500062476669897955864419076579756380064211932850167967523350252426201637652078829510035903971273877526297343737245255708888929071573433190501945304887058135659050351103090422889360702243323442707492035420552601566771898389913778819404569976592112245405477958451935760734655318644604010492330682747453910337103196109037699439144973470094210344640044193759453006132851024999492938996190755842052175748953282874601670851436242818906429835445567959132058290297397919261486651986622529286147886468503990392020657056323337774191933442718518257938114202215898826709628394738782583429534504582940904884002667143159405290433506383575531729469384474006839902285531664444640020212553624060431204148992353347549912363896405756736227287908590870670441716224900526189603618588342210093451803055375557132532072788082635406847839685416729133866956045549533347525130990504693352319324532065637143316665131665238166890634673601873959617943370460241656047025137258823083263676282764824569245152835211274623780944185941388852347392777845348698964530905995595324571824010158676361724287627015789328252185080311747777594509391845068935023577519042829058037821995297439284793775418698401490916122790941090064252235405966880399301981183662425344605137084647373430731885431866085278892805653157581636048951902775530949949000280200839101769103364443035224082705572482388387777750359484000364289708414374526300167097187547452520486424414549820967376458754327445890523239913232357556276608400076991706385819858454923081015011833676894795377606917917996559097429799648922933857581863717696934753472737803102294726449915300254965429242640686095236322620199023327374774413019034789068646918368161642833020533141466418211976622387287879139660612363951215561093426938171533745780625784804728598609116995113473677915212132252090847758609841022448141186489950594478050219004597134191168121613093030167557144112893671828911463085005746606854283058137648278111480229357977989907387096250744698935586369568003679873212966042453661804091555730249065281310993512993803685153281045251439871231708331876864545466423183241710910025747594741438736574115793053610623837596343082029670491679222299601097081434420124558738050798611896914751338605980331424013092026353126874858952733467577960606411821755132945310091052026434433401606195783034107517441604081321943032624848556075169610690607564604880608403244409783993941830226636296375947807464321714598477033854661931907205215560816034716820266439974320857662365583628298926958805986009669569100562641337886184716914805660171257440536446551352166415519621448615662889369268971717049801510289456474333206630928680570292888442047439099999357027981769938414069223411042982563428196795544276708324411411223858113170588927118131233740694958929933552600714374222444975076383126268881757098451155879924917161686741264002501965921025893321861796307371920555411169036973611991207904038771476728245322346235251536338541680965870121133591714906841748694231348463391627520759158032611902118449613774191120939173321111605902584533670855481083343241341647111575738107366517983513827322655812654608155480220320799724068318670506081605405450717904080288155324946427452890978696015858652717831405306525999502706616516522147717024408641100201641682761533316331451017865556406654161105968106906942241884608694827836163703506405238814767422394823087921873720742134788067747301551838209054276494948411126432262975514201009722906878318955182019465861374955342957860161402503496784168680572075838667142158825554172521499837345384475323536213400525369069936496794981599550071758937715691044968065794919822974726801918168387958143957562507347496111277259556069010044514611246259210485778401742755280418919342528173130480208178388682187513646270935689290336992883776356649010813421111649419840338059816857663238483658217039952361615675635808225520333618663355411229783770900293013508792264462300470740784417838386862675718454048335633540859567433571768018332017984950187699913865331534905215384702202394973131984783250945013300289233668476217016362422368209557699744292867323703462115065282902558402774881377072895402735182538137122810702370561263493465248911435011688533683320559611779116586048784048941253562037074208943047866903547424983162677560431583115059897109209939224275369654148348940567137475985751286560886415219929966251973406659469477894105391945409516744451892576477246940422544583749708260112810966414771087354108920416709636810115955246303242241136079565054502662763324269883807144057428985257495679818009807025354884788927199442936100873498652950098778066087381334648442213465365737208795446168203062566083577318190635520235907308444541726867718827083490928022859865433375141101891183499967095371912594010820278571340750036416620784212064956275180912928644185957924770146829401608793789352925067283629378634867502236890117140516718176875110760767533995233834505695430492795131408311024489529203807193781195111235227125601821003882061114524165595330410499511350176648920680303236194576474024599658092200004155007771599886891844150073845215811429958754186734824561474516127647506059711101610880753029724341929999023219198754987413871862770216102516711460901121693073363453378883291861197359724715201218421502714793519814764976698426238323442382269353598781664859649222364627028057557363860244867652774176020365697209579144340448350691899702780046685535101683013931264725925719605902888471128330590782340801184148041035215058642875741732483887647865060651076468904129732145100159660541162791437923156077014920220827964863442513515596922631067427190030739176532752129213711683707632893550114551379677115463640466262385270999052237743191339059318724981143049122337983987385155604232529643655363438446636830140092006523658461079381921992039944712090009571627501382078963136107784748168844340688718404326501311296289082841579829218174979507397484021915488176676113628380473646002758106853590124355176531292670778936504226171553995656372956314952519497112063631569020479982977436612784023018794508152875687560003106445393864678274728853411935148181595457968124075590372558864280995454320769293128100163205177781676552108731477480790234070690653499846348976256618389726956530841643705659892992669529828393249183332083481778245189368713988165677414905747060642419616169712978408300189810616631962218090024462781842321923729058970451528060942813707905596609820210800356102961308797504138102047168702652249871527357346496785724154079629630565606012173272210618411486889309117852288400528658796504152844712259233996704878636722381892797291055478755054903729551348892489979762524893325447426739211221720823510213239895202300315437014079010928579129248995459805180445210388271133389236896061909252952643267087265348112312622868953921274299560041481140015240241967601306453272256924748203114905426746266690732322136485708862599420062672237257582826185536143466009165164540539593894365874158153699134148951715475981852922213980551371094295276940389997492993479598354345225980868297574739097332715288904822808502278093176821673566406218641379779122827212713265423759514806774929709523937940814907329825263316210380606080628910890866250006226475963322808570735781456604208326373310356676328301672009054215835632087591048430264105560248209611589720713182448620488893113275789289901178787971410892051321803032904290501125127807537545011659235246352659478501646760518756800351803510607397699770931697372378291193771616518879594068156714036078335132714325708077627734530103971436325334896559426258167411365611112556567213675672830516242422621684129160713968976751662375670332671935734387268671235989989568979054486743219399558708308117426768376599091563844811300983791451477094918819216266925403867651844014227516004434683228175340061526022061879745608007247175930547232064062220589701325559303285894138292730434840543149543342551099394327656233127617543335679883038140326802246829433716883951346002042614499699170708703256050197416520811278056120498307052996373032856080460716876851530298276472315099919573235698592660548155919066879528094355415850907232833567250849030322578989292209711254585270986538552690332117647777949286300686206960911760226818376367066723622421365531310397785241083381092685755966733501058340602499747066001403115394788789847689907227126244573994223808717006894383354180861473697088269283659296252358543069043243889896484136746844105848720618233630136955012774817908560656407565185234091023660033130688789348402110206787528537488328474811469032810229578512746953582973287677980662511883677751878723078816962769859464539995682774042674264942381004827297777244498306970055713081861626601667483444868331867317654112499644541459509591711309888265379245251084848885444511966696111671214266734077027316867739081396135161672684019433800053154673357061272824591408364759623739135568892789263199574169007914809539236848165578249068648877559450757765324834664987803481285547194235798796265477748498649370101274298811487210107656484816640806872225037420584817373271163290048177336645522212039028955062360295768102357562637915100716799774369363059189512302755670311313150271977958798063322697261288192741083715002710969691581902653215161418222152222028739399147971064015236657338723241815236544225707356115871225884629126537703968417203217873983526084843480409426696633975924275166109262681914087588380434845212660170720922527030932999700979811503590525877915183387317491832639066187818775782441273004780177862920233900091860983981365941252456227073896060753873304115241168010864239221017461269404994486950324173558347507042948558064312850028775772015322288545415306744560750031227290134214492087793821349706210128726457288549834335926029007978591979252396265232961825275183777685022972197519958572243123002666331553456080076169477251933969709859160294822806138813234659612760936704807229573653869823031410129214366796727832865489826881313072688748626923818855084439501436818573540533899196636590641723052916218854825973253445723466059954045609350808532459324052472281173976127820629903928582651372695411635735087799739299693683918223634728196995567087543450496971289291553577415856913528631912124779140120435143374901042145620666814090011505191974910398536697017964587559003184844248920435860866599001033822163611186489014925023643728825766980697137286342169774832621407589131107743354891717523590826098219496812042896183866897266966934006866456683207147252591104627595924907657522287687164943260936723760738838017519771944762294706307115228395697195563749956187251913186240674514691244547538360232604758815232419464162626681974999684729772976789313919177892820833776428025594153439813791536763176559952254875067534482643908434684415910284546951013543225792488992118873535677993891476343577642392793806001736599594695430276238594315003790036444696015636351541818872676557680188669657300446036707449721244720116372383625651205132658608549167882763339244579487266112557843773737744621032375033022642591323070976741259275384571252111998590116353960888014282545658398225496196287071415661051201102063241390517516626818153899417763553011157301282024368728017721245984706714653419524122503205516242111774861530133799649934302744974886644360523454381164889884114176004885072599651774241370480639207332214996789790133210614883147826649879034171032500435734077878751600920955384758072170606560797748004570546049306360583761881109605899927010710819369558294381943585692796527068532582221434090048270531777996118992890522133635072179798351064830116247609929424206273558869540226638264835438877881452764346258931594237137082133300726562483234782621594842298400236508953538521934876417523443433577338716648222498871821146293960991156304873850308982399081627084085627616191520408402171286642014985670169179810906275392213237894921759877368837513169546950919400990208899517669260112502243917485369639399989875147785962754430361813311579067065188314444380846637656837685137192564849038743225962660586806908840574571058796429368234303832911237795823461752465775133603017144690085406380525399124364564115454381881566521514002276980630735381416653318063108391174635359867410140262088870960449299453579114936145878802287752878537143713563058971983032157831433073117181080625686220823849114100861422024323618060699692492182063635365358880776238267619644508357908514626716410122937017688006418631768579012924296256942811304348898013034562790388474152101017702570989297465153258276422972556152122631244864830514786755831795711288001380677948682617813395800254525100744722580033189829583358971995611829432796879170679576919805396716139386933699719921517384063113399985450316469079182433949084214343531646263739046101320945679152682502777732180654306926706701027030569412693050182330344646012845643141790120645553216004420660394674693914023976949996358204315844520272925143830211172178255023816144358636606199574606430988852191388602932985846533097109308768010373467550489378086961926831786357143655308426023953891766535592462575418309609482369390390362935566340624118114097473098587073800398112519027154408337607893155029167333146504358195913039844736663417816941402543128415621506717815494635451727526141913766555311830331869451065776211066098069218306334522468648013161006214207077530731170594045095557642200159752541477261472070036428379924407999897089576736684489925592594035910744958928084279267392233453882467136380503623226159920736212722614672839080395213003931741468891905244160919641782592653491333951624597186645421023460685461950252944501724538365692436998922390749313627389253497271448259026507427597959281446973186124654774184545779556890147564193072074508671933745330001409960883505321002852653902559424903524717816681867367778024793171543325876317391019859578435046549858627707498772414066625630860883638824859277376617736985450682537372078194295436940026919392385282231637153561829153885896640987064131742604599683298425012502830260256248916038529250429923550749237295310309092949249585298879113915463042953635874314943010816998688632740649007296713521345405229192233791416538139011177212030716049120105980621604564063152860188341784803123349004819690343408124235911628673105602276977569621780865959097810218018261285367684293686487042592112992744354216933873705701183535492893785478886151392568635840556147849498896119926952513335130573502521912175647489690513123541509197621630364440934405027783860247332489696004094942753845029799814578640269216100145429088406346772359690095593511895155306552321081330874975612001009457522387387529105877282621461515716485812935249566677113878322703914241719160407819522854726506956613762370134594007995377101236888785155598519074904167141254462165385012452032797128364119051007090987412780486639851609847640120678121943456153991603016005130217348210657215959365578850306744782067418522527936840017629310381597474252489832667228915147399831009119296129583826931849752050864369427852796703444334989909106050203088583057560763362722716591008932048216930045792551053704119201670861794496686196506474782776725698306397840967510562527114974398368522499427634602464599033750038811619216304403304230358348051448696567768382887343928227813154007995882793884894107678384176681560618076294309487536678558353193920060445585199843029013063111838211391566815571839175684866682862490611267307505664355832185459744011192456970777072457969310016173707990088569324742310453589283125404916380928972035935992059394463921901202618174437233111958579561766770074174626221566324478335403250401578955066406212750499634574387065388307989225599215924682005860600341971601113839168994811994661587469933825005279202327515700092712435050180601323326639411531493040413706151559349427287476373968194656238301001526024081203155509043490970581671519923890166566668900321527943619111243793527599489316169407419575093764160005455199324754927792246768927882480662385379543371540768618938172575779172721247148675361168891049518768549918455706270645779351263567755705118807592445398235082277360358630025730767071882389875138511593491217110842837196547499540676441052046649616953387679660735898919641196266841827531363756378383846467731269151398987446999421710768224179363893130363030092095379248536143243608896572022828115168137914570121951168495204270311006941994728587712709946438583580475810965377712629401571375609221341584999430523350586956587417863232858314242007652976418448087683280400525057549273970298660191765036276973395651478604751298023729105642676058859061591464072228017887211069797975278680008733622831801350525884358833829359070969914210911305200456902874242920098726896453627938312747111275238608236226711194012045394115888892924286243786060958719971172921127653088302179608654071692707349643252363113063349893357308673154194943917519425232348411107659213410537414379885326247604496412727457776715459155138410718393360394133855618626290769847788879457796664100714015868295916220412523566076314478652944941092831523002804423122288527188544015780654096118269762433007854295836991289312384944925230798635246214311470598772242232449070216846032194583981936773341240632387077837675820827868321860778854594945366763561616191921795203349384574306796099342015429481100256527257561337844533818626587687121871799009577227539598493512191779365007060971548520185082098305046164160734582144831552453106190056125827863183399339152473455487303783305573577026773612109623240905535071640833690904629629467480762390286011591426849295906944933790155156083676825974726376301053660665355941239755077160773842602294855155326370528372959788883566168804450189273808893550138549512698227024439243373469565200659162081197263324794969672658128830452192162427469767043685768876329863875578261493003842713274342454132517291318204207556277441948896626136726373219766618649993649475340078584347013060126728268626594091395359683656208614076893870491847472920260945290203130659255880427539429808990106817468923104995478429355131779545440692386285051193279247020429855836284420040326371628490708815783926050379666269151460168211179592103407122357985417280651618780489856803835847290320375124534470728405606586802471093290464791930314565246904583947452262336369777767383710508748301074634997907583202355936285864027237032212628477035527845255793172264490817233591194120002697361878258619802722890806722184481650567682718036574637772366428030113043274664462707366459552535242473649058210810386881373720307149458453639503086593609881015283191040148902884868855786984945532169214502646374053385869586434249229827041782393202182290290485709334612903870436488958510680847947428737944245951353529801358809752730084797466927202460275234619195920395332323446581922257115384655123285651426577160201144629493916724933445501596512962895527491541415140917836201182115025920507080557116092479003112325491834794296881177132181933223097511478474855398090259996838233673201876042896956097064389373809265162875071700624688761938550517113457303233617751154023391980526152982438758189757605432938866265718826371364172519272801831677968189770135334015363124794992163429363897618958129748609712052962676598828824290196674856435245430671661585929723985206926578797228981624471076289045098108004170823684220427471622205643371985822745305635201176758412057151261126896303634275467612209565224306170127041811811707407140790901556069885333128569828006419021188204374944708355020740088629750027495121411509895254435751404203362849689208590250984452109826278886880569620670042212364349880412314295899988561193260169402616904640962280333348221520050550515935382290727934645108259614630807800717599405149639879833542577014772571088936191938830346896695998497047520986178957936252069302089324509793466340786041058058590873661908224624049089383138967055902342556141429234333466095849117792440829767128316573613971252624367371070201398832091687129846642357107459743716102226589397958263553329349663616105893590212229680021156633708687435616444812174332534908466792277170547569516720206401808779855196266782385922354223641770196193140433116353994042844315227611124444021343462925033063658914024105565584373058072217959911916537729442956958042480810013773385198242233596414569490916389943124796352746578082228192109018402598546052259309374243064786559498383094722640781924220062935721193846506262900484399239353433526374902611603360222989501817790148221946147043613794209941330624879347921678039625422061181773235642028212610311643846340574351835851771927285842786102856441738607865372520176133244881537747727076557963081328407460632707208115062704045851185687717355355164502117587848368429415432662070372454485961779693817152112048297369634593928883724640074657488471765856109927327701914900979889223615734649429405049004507909466717324894083939104423224147604717127698149532281083229679691115380589145337900507843153988978649914853408291868751114681522233354417239219431809791739117134112985351619511091012345783235331836560242837935473620990380973949168013356387020578316624666434694559752258481909116658763945452244328271276940761490132730681913766640966981204829674644580768013425022987312241955712728302481048353692245488903809735769158897657599723003120994660154865976399018352403484535396355788137190383005456922609955633928456933079351707339561703801797214133725789083242650948927815545451600777775442277628433066739636652662821875334451157339048146719027885768317636683717787941893623296581277418223963913009980625714258203173172097590764808271667666010073738028576936502737614334320116130215676342230624558376643026026025225371236189502589837803360949421096788671770768196640752476487804206236600024715697709269458323940599140457724841099473198222791055406066118500187816573567695295836056682637604018630049319611238078456083437473219368588423851023888079178317306753579672262008098986869863668775669975801725336608763025930368477120602888638665973220880048505941285693801268539386305657238851430659323416981092943709335734230420440498336535736650111061847552885984321211496323059448391037122221914876501046153553093433781088586454665249854644881618903335653455702037477364079178312041527914106046727617215305377067052788583123745174182041976769975946080735629417722707666351368368016502227726002468550547700960560724882222285223159135305420604884980755696298583195143293366708690022946138156016524243332237044982012571335510722027485852539639748511759078945917668955953488550064308104134802717194930366135619787782997290369133537896782527524323260152329631988917183549975713826167451671857593063304815872603973898814316318665193290021464569965353775382266430385680520438989198232419036805849267006814457955445449675043795123595314485711116692001403147871397080870039878717023146110817998337935196771293142108475563775227250509880964894297928197302761979874675194465096754754221982762386188205100733934785298755480928638244624931344195165825256546455503417789060587788387358347268612736386532081867975346862120344482896671562126765293242446191761958534323625680820109023321662670869970966763910481795190841988295492195261402690430528976016651165248280770770577570499674027355498242158061496372832965413502486304651033061972044899300064041268421458177210253062225595156007857953107649781497906116367131707872724566187602465538911682517563280245217470704810536936100024972361825052009593859644691306017000779509048763971654312004474645690589280978589875437203106726398017787355260015814265372003521123290165541978721395372949957471597452309957096776640212636372738602299347476372902729282005497105666455415614971936247161266841873513214423279319540733325566411594984596075720372022811178042271592369572753169133011492237777830463634913727345002364171149153853546112648758757819337472575529118674453198374810126097227294746767838882909268506254793656313561069862511544112623084655972206610191105365563339263407324918688435765963595450830323562891607029795822447687236104078021688142180802873806994766067966552616493839336564204827966571181767686464098982103451764997442954401940878077700974038021628924008911446245365375355790434227179803948754099451345719126516349822545795593972313860325134631511812778315611185791751206023946990507244295174319214021003180524594037113289201405701991858834181306379460373088709328312737982530261796165202500725181069451283843142801134045647144711121447614138051250626105260746838667707046809246933898670062583920619146820775082394904554004479105974833424506795750288362441034875205953793691038508042549690495513681253537083816203571677495709467002178198937712129358684381127157671413548919242116344557102288907008891146469429733422593864271012195622096565343794424116253088509610625816254047281035459999624706882502095998886462779157042846522010267204180441046177033185009214159353284671001606317702542855452239719612848902208205363507832339345035555933719074364817098014199799082836273083540759518615321175205287570665417302274907320245582641698853957631547379969256489879289488009614298907813932862511697542823088867999106140995855796155340415474099762304939632142409510814780610871527052804271758551169026740313425053218213656494799287195263302025617301372969947493932067855098741113307025024257518938179541337719619634493418890404993101240412248142727592710419525351256026107523653649220028343140750677026967180996080431458712355367963728749892561394578760013292446658206986408510836690151772235042219324282180727976160318991290011009071332605861768845567657453740411367579372064538619605755091354852441598141207253099619076752302806632630659356920739614728334730745397680771497380149383203085047687305311660393970587577457611835107253693909043203775468105981335750770687918631924754089645282491539927826984923824784785468128055553188592283398907609933083805743670536720069084152488593991511841076610121113857003115957195245753327186908662525093184579835816602133096697807875891966087839716090647371810899745974849390749831899515652806556569204804886213484354301428602623713635962880733497936533404928286857291822141316652621480387570217377568043936672987791377452034166922725394121484524481230552732568008781072004670788265080740723993089259704668146209092908351153275204951859173309983804919917073418863791766805605869039516456019072442266404951181105090725068933735686204218835265203753818539434602002598777184598709518267258670698270705345926853623368971047520998023905981643040764568952930010875130600094984903695908268287591960244324823430334375692792200104605066500155135565233377196869730129084169442935860477383032721411216047387356852372599865518699063028440411074569883102544691037660331415709470139567774301356518999260824585119211150206037906773571327866289768904889658299439217024432683684188288124941716037096679576159670321887864544496313219813254681023785803388239405691798156054249439998233558506873032681359095522942290143922033187113891796887320364952996030914703237045558744108849022683282311965711339424731246041648940404975182958315173496316196877665153303699941946199502509753975479577164551684671829514278659501041564284491458728286932346961109567989476284833240854917894572197437373213850598125141582714522400177790064694926936537039651569386287311081490331873525947537347717481979226633223100534157425758165097524187707046708169217095814066002396869521539105912393161549359641028632804692000414977795865797823528330296357247413574143162222310485663964882220031260722607943668768819366112764703683819515952019945783697304438304287631310269615690167129194715743656533552285422830968814742966057704785776554895110453190258392291906937419686276579599171616383561024711455063465752811600004135520561257020450808948507937071882283652226691698037432481791849270427396588792183025489683756171444596123891954618276398847884156611372678041947760410013274216031130775470668780068145559406345810363621792587548925349887550894543567998065689008722724482189049520684338251048946844480712827189653456314573851488427248216349318819072064657281260447467368524160588693294763277360533145501140318668620923762868820224880671615795126041675759666757998155413978671068711269156200538219981397917145134557901108651800644127094147313545295537177445890087858089303358163234990633037921745759099424571513105391175999112601856875612383877004098588742137697953332091540914518013481368235944464052122293827052252202289331070448696522640444805448289617252174404092089856652523186839108935545654837701102940172892444254394628186935131810262260833349449563494469342617828194595888932598393666107871407966349811511476095050144645948337211631267907460456948332898268511565184447218438848241765941334895838070786301902483312276925003016929173081116000402644187559623601571742596928274812044594448774288894725825209875923675408062055819469194699645642861503312318151440936605476050736363222976558801174304549081865296499085934830045412906112525487169859926716044547255731331461471304762836451483924639282834421502486156663098953097422433233078440932958333106161211882229595114604152979530517324862008868417973982931808820614852749243387941991632743200354396920592582190582249152566371766085414513836061996066403389624822477612019339834060590233250295138274618637238587461588634053922597681164874286219409959373163770619111969917358723783395050019905502392771668825025617918285658145136942785175407425061182759757241021273145445027239577021674611262994637041329131645481163981147997445824191093824436431037337177613921900992530060835042603524721163647426850073071596621087635792267459661865076179047266008855986961212262753599284306572722179719851089339238889255168394843786686381415091131923786982731031982488691607438105815460450777002132391596008207801110086051355125653674881636007836598584547394177737292061775483081781156673740078092580174455032101054035176568675356647558530886862892268524342981677776731185920211344873536331521237507305333306576434134353795306052948306401583715313611281515917202557901666449092328683059047734629050940061702046563353413535370712849375162499908711512583521531573375232960804506087992975903565706816561364996640934975311064340735617154700617457374003371413279684739021233811859407166841502841254813765274339155510409126916088676503747595012954011646760904078761710406370067906879338803045977088221634694467413765967154440426651836384113667604964198400339160890550872928239071464000522740234592800955899619280622785879039720290783647582116302938649489292807177081530173603913483248182832114299297037142709105409906366836253431234558089066237545344412099874267020199866192130798337513173759172200916775902654221294295732174287825364770230497659042552096013894471086926515840971171352316633618239216138688120600684214584254259048118868825801952857872511424571921514131164813430186900956872240129365372315900267221777232057572372672841109689129289149231847299632530422496930977857580518141639945482547762632179777576171061119918010097945877654136595953608043495039742051695874131669182401130312793973433665977849591172600751106653759960762311723492708772608957661683686869156191027903466087702271529676910432898419627225502219725115070463735110371728220816943288058203571226638616460727423797693376335571508429761983158512283307006692105422258225391579282743743959657681398532971316595580667184931701907153542090227015423026679844273142668180823857700894142589143684308910659965436005595597602408154430881571211633253185942293147415623315448976485412993667131089028382301295326552520616765518179740214728728315854216674459582717427342492136231806367696025698227610391695262074712375231868067995876665434071549600049096368335716986683165832061449912935351025864033028477749762636809748882042233857701881646269725041991749655467400462281834199750008770658994218881817776359897617154728336490958298226516354951443745148267021918964545959408501027774053310951174626023075248614755877249924270133104300504426782776522506318072587944130473090416897792348600362969433972841370082414196959038371225060540056523001486619703024550636382992657217118396964987487632366955616665142974194912561929935733172789095585556623824462302213835762319660941220020176424219801384699401822576607802028260944683623563799226265306146472335706790524002250091762687911405315556227911640651072189509898899213040129984218230159040406947876860887265425451655765880827620401223324000549553185903200560604458037387148456634423770641007060799891935969822973330250487995546972339102114190687291189750742965030679840589105478772274068046911586934827211606994344474524284707966632486502930421018317028703070813608614070265583890518424230107010730142646769411246572271498871844605909467006005771365357658717455732058554819407089807118944160294193909875300232762149733049474547437495089775140560828342107149894145439365615671079039074135500016464485476028878309871639940908683051825335498137605827666471532012675878945189294413612783378675622971131012243867567986406312070639409568246658605760441040129535441603502849379801913321475985301364905583699620894112000742448429055279632792700203968132547045182823011557151717473193194896534579934897702471818665055647153096286153878706056711373694204745704217859151442454908051914878183344511949432727252184859250294542234909215408073283603402375587572976611223519750021837225833744845960020854844715034402911856257741890729684040295107559584567929372931137695152424232101173068579883860582010336915634594115314980419396182773402721110680119812283491846340005256688870800024301987196401703484959189845518032081350252148785138128138266145454110332320126781576921624962105192580064746659095507267873621117499876645406789373581487763253743973043624697271624889318809499175144934418700154135477180700714616017862061251737150239632393968658259723153525971086590404200715509072924670343862777480949977782344345533280757309513836494033161298476608725850559944486360271705441810451095317882053473938735583923759690733971156287756660509497520544925946944528855312379284351439813573082982161348438140293222507020889577644156764711221579002235677292930061054058624919095519862398278813309001974754404552609269662019648350068865037771424932053893647049963756306484290507804785263394418996234076068438688265487370866459995770985963063089106750453704706536207676010918923308232693061549213741463537489085708544690819901584790128619936531998824438142318230164463324212411042945420087964631994906715665514859103685463122764846905342013829673056020936692398781400554466110327904536864278202560367607541737613669189998206267127174393606125274975042211464737725606301308953790849653452380880431020646539053173603681929628886422677285058577844568488081879205716728048434777469135946466541542983760565403515422424768582908077211076815092113126434208835945275561194380262881494215960666957940871609691387680314606975510151081385682675664640930598225907738040751843535696488013924767751668806215326136554244267007139982742897618999945541719379011174803201855149973155163255786465477674847326276198947269147069305464902774981640318644548712639977770702292607731417858727832253384157905522438556287977556865914852179523010729751261506718568120389406274233924166877122836467292448248402930110238219011590440907636026207707280740119095486450089763013507878321359101170389287739424707861170905546186725775747086800329478114217398669590725953405093229795442237052756408648356029439984341775174331800879165758342460739822385238636493849853448412545056366960878791450331099390946686899237473432405305626706921661334591388131921929298489056958657576851393842966331020736736093253422815210508381359140770691966924857449075480858313643838168560381749843598107852675569504958557256476489084040880153081702612301005257290572824478337201118029015058252825343715425037188458239914231703808546386523301885162610108112566411514156490709630982394259089900923921856247936862690536497250262090694668359142182614306265957363564004512000792547770248461904159538171538272438910419383562337952578441561129511214609516919671998562240280245150436338375947487976377067883526807847832837283872747501782198321273441194952891471716110351661511746923445894343394927845038839227377645425118904936948475905070807792995711139192640154926961627261981279772243311642918643663401405266088399862405077176673505501165557264699740834463379500565768617157156817754002449930737113052065236040467208638084894501679180826866050742099824554067033907609792325574875495899518666170563220543495258983684863410791345260573710339985142990069926560512119615119646157128638135440107645314342631505011983337401933018504718963594755986566621387868289160979741546463304803835806121576710750423300880935177343110963541254198774361919527521334052616048670319613131992538933321484351344136286425421502890655175618502604217046891067786245299189657018882271204502386385416500003326276191624998700457527723431753906705325351925715528710109336808558066562679611425866449200324911167681367758937801281805583539913577214159022047024538984670337919730154078354061190043391253019163370998541913804242582142529523958727843420565330020051721626352759878170552788050335225450906225344926731565564845680083236804597997101476354374644762645346861270464619642003333941124283054811094583762664787851908446048716954244462849709757942983927600683057090757037130049766629516456512642645047621092211333507116972525683869973865322237866069712904734590474683281912453310945845424633070746815426592259501158634746933437378190117261974313537954736022374439651763159086345831998724686627832165340354867642193057046370178844366658094401852169813820030607412562367587150835191532992929697057515873704189713045521901164485853760989376635877054680926616335619697587254796779576108773651103387085200779334348051028505616608941706497592020567434304048632757147705859552621051936652226586636561909049608541249623707933893771787946305973864431900636068669315686713409468216162258564535292892082877104811347326406603777324114368892475041333207670681341933338167988518170495145759025992615316754575743882442792357034057621728282652455261626169813328695697067605095979226676007337335107827608860370405971355542278379282213259337079717980790466767076535751499722459592184015221092574232072522281752549912775152189840815777913173389950395594810854649349960742602902278807562253598770833690269440036801704300573039824915228067548226938752301930242406288653026374948830663402035544492860271584710986316484433727922143486736344666265848238302223934578653466750770514738361502716665439074826354067733547035181593560350142274812912580526343631410240127805550289485215125017009470026891493106363046268280826434504208420835049485230128570856312428075596401833069663139116001217074280685446434225933128265405227596187123940970874017072995480989596905878594362285930871922240973949218634644349368480257645259549443626939212197472892698457338526351702450563916429947476561800320534279101878532579594749609839463005000312730299245921718660648236626775329754349226140830206261472540326352933345868690943288973589947540774598589416211270869899407162510611439735872127455936198525364204830151750740086489343552374580260197133166205684627429987849154346151248210660891487759000195202923054071315320853539714289454550082459059701272056459729412813907741501924248262663557819378327811762360745612011734412708978490324368426921474138383123045081345911152836054572006350466319080415696642952860586729708059602139337040445959176293360798520947562458962167756568621189822474086873046177188541888235734589711934823737589689071316822420571369366494388939825166541214835700280563424482565853687064490398861327745113647849453998099307806948056321756793440772787293470965260546497049505692162271824387532023160238199845287599831793015202673567186182728111215704037893090376847289975426128287451980096688955529631456972086695189494032200882932647121700729126363976737062870894238217289443675683403060838812601368656160018689786945066996735510516677998499260676195729521121600991042912745962460390102910834485333761788745389613589461343978664347327189743272286853554806148804631682008170540040889005231375239788946095544055970766209031055420211621604606442244641558881910786773920092601582974827479621530388769378689894872801599921854995573704219163012249806885528413729914491983722960663842404141704726653362546635061308257166016102316643379699055896289886715631819030719309927600684527785440294718601773821285535446423855175787235008279939679508563239838364532073513761354849862947161889583668330365159793323243833815937329187382138548698810616284745106405039536653947822406525471814536398362157533609973060712971308564778854498630510768125714788679736565879416467858472842284307089071685339163338783251291447047438609056773444276673306292977481272125759399888249087660807547089112535920417265233206767293393182816176446178831853052554822207014923455108631927283761397459637885452820387022172895094693859405715036450449295221852396790963636352368611619474588937541825251076269238340533408284704314219265920490134388297205375663998297890090867248244442907051891027762998233303512016474861776649066788645005859085289760314006120336573373445171715500030828638447933100976492822123266073714460715032584982505804153590477589443718792395238752946924868800716422537166850738722215598429291398863411560184951222838418650096786818985589266183006057836305343975054337589951211399122626489171850449415910486581830179179692206200474971454172019296232201419552727958887855588680608461602641246752379103298245670819535839931307955264889740024256281662090518480045004138618781751368684391750097974776234542264743891993123965084507136669979912161694488488164177365756368950241932536612479483536445571451147113368241417846743943841412635152518042777414359960791957586049827176632709867235861564767808287756744223052171733628345475928510228109548066595846800112110431937485866337057798118332222439882868189152979990192170238178281977175628743012364082795860347167014808242302054436830602410533269408194077048150073870065320394212806012588158820325761533048033974167593450327582946935361633804304716899475615333047406777236908121858797558440278099271602220937341602971691225291803205585009914590354976119238634860065347408290632723241951458496085564628688782606534975093832658103227921617864615169875152671160352845460013416190126089639688466065402360387513916020039717910144870012539906219999110506577668058295245233776156177121691540125487164776432086664649372452925397411487935940360789926010342789122372137192872806633980188043225540976100561588183690279909483964765047070345355677518694194285225207368475296968607545672418952844971572938466608607683774066256963371137006421844778456999466958175839008836150993634164720685523178986991126227992327337024489497938428684153400724154213752273692874477489448535129966662030352947826550503046587408317274732497805495717088791149876489060248970566296524036093614544575414142916689147057146474077667456951875258206062498940679482854415870905971956255811954032495245516988144341927042831286626398197722087772624318006230011739598659238555144305611804306529344326746373466256840970102044012813472556014832088136723739866495027421041939222260662411814719434319545438717331169765794828660993917032886612017025830905321233721580018973728237051834148806580536315358910637592595291902609110873283215587921678617028113062931437757096946436772934260262940162802906518303802995780155790518357476653551433309991940578926244774355220751219395596503085089855037079972922215891416071534656958178908728364785639501726358773568781367842560576566356158403958545315418281519194968972370590250357603821471519770788728492154699507962703513784633792175319512993997631960744008163934511226349932725290890899104634337292877568523305951858997104489647794839911920241605229710137205297855486254060514451831254725607965858661063130078210753358433626475034489758970916487807611421395802418461694488516691526210404533980934010986439029008242960109304235103505160848712840554022354466758952793834780937104596572834429032751215646453873458719292032287336026308051845001761056530933778459839190677109549162188991830688325981532892428631764929150460770536155984873179060115587370000119744996432308329948987025590074950394273406751499666435409844835871150812434906932153492641508406317666781000402867897512862731273327001545687669283667470996607844082347969327645896576952115415344365899932476959072138562551785094048067322090649610254947715612917872103024103578800525309239868831395472711178877228669198505557711572476026358100908612513161378947654420600422186761335202837518999320471862844860476585599918191730257086378487000314362047598341179996561050819214117521938987630764352349112129796636300323650755892244945926377470880029632490075565289701019050974131115107165082584355208297614811742526422943131141442335520900811213025599306474390838702754400287862540350699307894254244114576321013297376508214805986464243292753069422333805028929525305407824807702590239955793639567928030857139116608221738053299285795038639650973106538076671827155633289077930102646421001455452416240868491368492889128192028903911610271706774900384412816757528227814315455880239052557833594148176810182505930212252266228808242289107261450824429634909163951137019022420155648536783800699581712367253220063853211894999142130351023272973023139747155275393785688210281169667826031535444124688588936085147152719004130962503110516112475220084245218004730475027701962286080428540674255715490847766525624526206092753385157244032707436350489545616531827206282811171955398083931864857660650822500084592218270073298433701852825690506435740177518634960885438343420859786141774439198475872849411845056706300873989056278873536208238808072593588603620965646079505028376907152300401636874007501763650918673622340572912493314123198776199515206780942692256475662886763702327173583721901310545452250764226426016631895931474492228054424517636881127495877819099227699874308589142874097379498603294382986659440447241102308668093987260145597743608001275213884458121082865759709549221501748582034654120888420947048022089464989165989163972600557829167210846079849622532458146489556378715214551022509106098656784254290369092198978048821209877258671077983380506314539522468890100254120217941599157787445053925402731731380745971490375651993349017090642586271034207225212115712715026385172992966712121582955857030671658410156145570019780620410406657236739539422991722274772285811784741725591546877186803324752793213773752360672624346267986957575996153851617168766895106426759341323767512121977452540340637044601222405620785288291888918463369807674360311031722578500930379434071257301585304545305441700124912226149204279285441083895296629086692582378280272966048554525534687805992833558950758174354822414671840160524234430541331915794557460750612092324219637192519810868215477758799828317403353869066054396123682027728949007933975501497124260952627486173021351078434202864822632045603032453867963696053692467749562112797600682853490098108150978226101889321983307201879073242420229451245043648741181023662017586373484150223602919458287214590653706657377785403205489024491209453755644994127562711512525736221654029515797111432049613876292194189648944933575207489703514428069622766415172325082983228414081331287578089833154973728996956293307076294961051951585859961872180423948037161511596109823995662247039887464479361338280622682079474676930977626862396880941926396470319569131087677241212406520052418932342771619542011248392819171472157396612767078245938362702156352440977005092809850710518490095086877351405038341517741028036247294889535691890873423918229547371064402390832076784631510091121103779977464396627308533335122376226918455781278043554223718932114068152924388584371983754308733893020391766917882446907135578990436726937263014416116208741154473137587817842234683233951965900200922507706848870504226953816689195984966963863674817659207070520483642647683187711879536693147332060742079457767615730706803940724037016852911924490739766409209595469466937642358837483465161094072697197395587958898541906071307903648906821812966237512235356635902060940757948204052692935550610041016590661767890606792072298680636806234836955991560516278489596490252680019056532320823371343098874275633047656824842494996921868363961291558275534688492282735127398395549925886403305896131429831887618338648643232118812724722742102406632464877914371200540457040782435701249457169053307320163584135772817431981307739886846761647744167227435839379367243713915045800086464293673275531285364743654749009728993131994643613178300219326624502305096227689051756334702461223324092363260569198807005711098317088345074266338844956872926410339250711221727096002882392860172532838299738800856802392969529222470241287686910575073169350318240520345874838545097732366306453068816231941646471147288165261508637656224058043149015346791231984634812220788612371506670767150981332034650431312664869786318683953994426538989194431043194498321054217115746806865601539646011621651589024732315558975664831280084769994109513453451584468790092209823521606410864168453090786456755277454598482125006104012599931938366652455019319825701118223221792372019530225047688366663662882253102953116641718449622523259204260467394132339734897474808781725163774686348127698060768119697393201509022613817575203341670729961805050060564549338665697270360103252776788607301376121136683371125982215224996874047414484116260844942757502056489760754469686298019077719277404813648178195394616788002382507217071728833228667367723975415640583604665868827575792018599508152118185419375375486382856341419300808872621228483893057894509203432279892650749689469378596003954636431685871181316173261156764545309420364452566366716065724124513248836907262215806123007326624710474108212111909225676543577334433052265249276718393980438947397856239950208463448912007239334388381155507499817218141625560361928129153559468783133321329580188311796096799506285406999228882097714095198885736480042468016377431655312033044648303953331766629121672368052524085137581192984203761849320571859799648149369011849320634294230390916072265596441476358400383547605546294419848449802881363898249630054137621394363364935888051883551519641279356074220872564387767549877833488329482495910717386670027505945078024728512573132909762555383962954153751133153312290685078901051279835323360018570252978944303631014691170322294543119472359721240478448107384144374475772170511900293898467529537983909913570799866343533703910135749266450377525857759427455025800059331129912968465071742180290572416082484967443206448434838402975034642518575930634551742577978827297591077919660043681314917313510920000841901505285191365167584459344164015336328074634753514865483724949505526031988521629083559142459007543590525217331123252269779962910722823237629650252674444982903874874684905728597388362596680586358559120541013471939319759286397149618161095099846945873328982331865435202887347500282434219483275516485328868578014767718780696013624997405460418727527904987054868599494684734215658411024441678223181349090875771309489896074552354873588120538609153431253705490014002816913794242504208792929216990084987243181845391902635766445474035486627566666087008149127604373430014615315383979533696396656614671130010279394972412128864474617501274990123383263098208701994098237349584277008584537176547152204853733811038765182063682581174492007231598695739315599132952754968482740679709427073196438221147568580984028211820096405140050296857348379508606282469435966952774060042653320930814638549160673018915319501203250281787052852066679911795790947967996824590633158636535126613161336259524639652275133998808917913069491702080648834168878577690189167525084446215920431569059713226767891342695331024734208483113344326835606164915113964751513470327807910154094172791854445113045433406802504900386220132212503945139770116031221567464690281389847292386067558080808227276547699462712231474236977048201388964335499109106605220811452252245596808257986833967077610579569357698636544972448739462735569645209246317891306217302114053326203645730317209953405203261814795668116873056968326191610584234216940730439431959211434646112500870191132495163424078286415671873009850485156393831850603757142368108489243605141799397233173376161997827429642127654336127852305381415151299422183765762552773882875123846999833467246841629757000795627285146193543909106869522139422871779007042433781780916873476285398263918037356914649823947791041135672176048904745697249943516127929744549951918171884232197469274343325217015797513153787010901017247059272317332899557909841097168191001952562667470300485902699337955199697440281691481658018514013645398301120282431026984283259596805508886101179212328976852815903226682849243961283536293518139224988473259581031651111557653084794266290939428249297622479635961932018976906035288676917986386448821622328539107746061475210701846453211482241230145855178548494821232454604954860121397757654234868526119327163433809479606906155843996867497506123804503845248781872782831219985397428220958474765466682220096403919278845884243987675806041027263487010483808338737028142832544992040883049942833899418997572422237824722263034309984327967068184677170728477499251146851690511641228345422674832785565282674506767845401831978976408820782464824989223947416052648137043888408204472839296014225370458195243671496081101630786264402099195865959221815853571033747186840606873820197335920559702000428902560859095677312083426914136620007897925536839266254044662412695963642456270379967290192352074946110994538945119929294859832074442296714638987917138889694424591191142343056431246061600565373592079534978952358984052165993620721320364730596525105892888521246163888644081778865836246038521764358489790248967105818044272988719977869693925216237916341377069493684801373210228336649983330257232547299636693848939261318688412199506329651022431443593787150125933193852018669660530834610192991964551127799299359075464893399962373995556296153845603209889696901013901069614259737323289927335438906050298476275639838950483899851155109945158431408482417923613879144457279242460634296300396219897147359996354456892739183326816316568296926548113466828292310609179072433917362550272109119279019656336344064226580195412072853717628682686712511715091378170459762393260811238604443718138838183572710286926084257546993782894421494568824538430617177629832016237654173516003589199642515529630721062507095891460598456025265585512492911007556342158760619321355625247058498249972337925708799187942183825076114807094513911982204085197587575015729974538774549868670682418643488358175064141595611571117545195255872427741646905965584239053405104119695729159371503197103726523573879529967069543665858146846295298531496933659121429888721805824637284321804530168167374367138746087938539404614748467109682141434391512551504447875217459010911459879904836239904408555958717862009634382366804969600012911577784496412048100630777986252244050098258178947964317438300273672936535985393361167385061551800857483653668913844774947053025023294244616811936700531765880474571706718587274763555749482514023123210858035115293028565702196289633048693428984853455198826937920753627358534790363580388926851375647592211474934954030765540084793352291317600423209836633569633153270018926258516239863562372518584999445864621304245154057092789668017485542769080686036588244358440718536128802261908048942002949676946137892763930600962528363117228614075793352638219713268359121175756773749945601317857283012924704974959170180452980023542867271676189674987359971348169498557105416667281796209169069649170246533044234758526973449895413275427382962931959225925225240934092485895916089768379922616629952918885453893936111812573566586894573451524610491667762521233256175860351526628864678927885934874954384285234779546553210291423166164966867070838331216092099890840381917378530361945629921029648424347766082353443378992689949673207015701345299999453692965413935640529783232721642807131271284928728348143879682781562135121947370274112435083648984894467656541281331071259718716389378781005042371799106855947951473829490913472881794708739969171432516021933572256948829401188673841737442571570892163007222151463029487695325378560477994238221569581285157928536438511862738898181606467612675582816785903154678147430263887071478569969607153737914614521130596947878893425348228676435135412528640310452520050734889310786186152713302687189972994598441339503706400298266964859258920127641378631725037519454893329188511172996894266894646812763600909074346681424078382842782241399128908952954101835998685224742823804447726580721894954508889062601733408658393425580315911627849830281419940810937599466019533796474155014890652664195918393735117375256961216208131983845239743046786263727126549541227907296873667457419359522982708566520840387044033232199734010101947239826287048169467526264827753521651466578544881240183438914802915930462774247786296581171271144247004257704753479861010217779370046488383512180929607376535936405684298331164674579883928875598928886367773558545305396578224985208737750650637139550027768133483332052318551272272952656503043893589502057004914820047866779346248784067478632258373012045853290150811848354664883495296134726248813605610193843226243785368637159619542671262309815751963223148826870025476711682735372072913349028937781282514697417351706557294163216002913031647164393614621339383162676981557440213165530479275471527954396657591991846642348931839243418021205826212812412474230902027532796895038557064025828837005695970352340761611920398327557783743559830023829310389766566455669668377275952912914811482528586562973356528198374396447286359149975281277818432480955942255424877848096689781616168624391459444713684356232896178861889234760274912873773170901945818908823619601551086741766529433760797590518543914343930357480823552270430372956064234377906606562452987202905694070603658912712144233419490336729430267483905034408092233436649043804561932981865103857437634274860135035659421937362275427077639450900346351136427871791484992290175822035823178312654428141577689580442299634237556453689547785701289077291033144643186963238907951797273611593832293424061649404970848709772408909507395922533577935770338273891728865111236402860934808940000198910212777520605225493009777015724375341798224198669858943724768668823953943188219999961854851109479922718851383959227155972571325377078936516244711722652904882411014788403581598099321060947573538758965497052127868221132031012444435521937391306748487890883138941115098859908307561399195611718813243414204196830125166742169453357501805049758925866517540505432313069494397007669774707252512911654291548078764353137573404187542719999055433258083675496123690373007037072608023874848449696542291762034896581310791516895798464133620277783745274566146010836984834192365422875811892875451809127428879918781323155811830661316652137211407993170278527403523617541436439645281430978879761258179505928054845858008290667321326689255659300247714751563979584384131965204630991022640951645313593581421483103444809941169542527124516118965962651508396313651664394493128107183745578667484566360451174943773778136316654034594127959784375918079887088882613784693180199993758632476019442803229795814457741851483875995734103906883015312378429938353863756919888563210462145688792499767277749533865290691016588281582572708812341074762959869175612976701163423376964761843633697113851023526373147186386816720090804169430442970627187529689506487527332874218163000811151964246291111401047902311663754107147974001658178569639008596872017880105169981258935229847466849158805523515621741931107981538275629499835088211451799747118866119475060233692241522232431704141817509897250909623028038960508315140437924203747153193179010097202419219675560231257924456628160483157982171513338543673978504499543189495619841360452749103238093128340664771175161735973504250713235511135636653449294357354341722540371603343877749695533225025402892381223540422320850268536738836092187841504843113311103574681366430898362492582785775459667781506620693632899219618676032339978355899034671843623367410195988014146508964532120301394837668956685670536448220102412251319572501540664713054015439000000216017125355367049340869443372158841868644723615023379740057360774166649158292020632285759661272025114028514574194081505039833457541203464825428494714275850061823422875493125869412140277186465959429313430055747024171559012749066024346521630397334699923157505669153745659967521547677818121429807323115936197634609749854651447603987400712404026716751597574620927380128781725663772374477489285971183605768160737041389170801480078228938036461956065404826520390328756476795093966055830570987333180534716854227482718795796607940302427074830557191667892661252040368659088121197134410734995403408415174947008450330087979482103646691760008719359485627431585840692610168290661003116347470422122408780472128497567111813295739522797189292837600460447519533357654763034832385050616890221266213763411376852358497450426515982664086407985674179412523138212854662832066435490100801252102529195726228537627065568387649810170282064619297287806282078813904851557008699782376603107367762780662098159474493333559081193645655106835595373028399033910047635553299666887306504752851040329966095512303863217882001300646487748813673510198701000570072523644872256240179604822825935329136908681572170517546015518131194208711852949930466662469684960573068437750049520196814182162758938826004866135265142470223065235987093254873033491963857667471681379234731796878944833993668010334358228436627288096795356531890632908604289848055268261508195302408549495582582433890948184188923324069852912502230174121627157513978028866262565689703919863242746742094990400210035760827469873747448531052766063677584861807873486898538641226850794891484270812438365601301996131267442042242942893119481447419545860281517791967275696808234878333470285757167385055062474210552927141817326726884202879729288843638361553594122814571139479814827169336554283615124567021060422098609929064027346988829547434052672769699741548388592013435763689232368541041793979821832079319131947353213934465469723197985932885861543584091971252499039738209190720907069601552314839608882336017878651534561464336915055370215092959605631900244690015481388660748908067517707328262199743155320282830335715671488870156440830189509673716374726814063208614346778644521693754881014109262231595091499574180215393020227556125924486627769241867914897214285135024497158884941763586484481119162913143615613943246324604097031458153443729491166211423073835914375874859381957528620441403826975083735863354396028906801599320085892136724356385503132327647858234933101034735737178901528176007465303582475993698192649080085337139483918576771194939592638613760045562148258608096405131794955833573424070708313776871165446696295067164911792545109933073047902711794277046888507154341137623624925127988513645535844950276949631333766067301522829609789843460253109966598135109597796546454001385715782893680745618948836967635669509680399835507790312520219979051987192835728839365607708889811422143226763180309209784352505802746075012562199844720035938336381418879670241349699484628345017919462880598782615666979243354624000952689891814639219309439911749987002623159127054525527787029869936443454219490886277154497405732684429760410772375156029194582842208763283052819781968098776916425943227281275655788635180601418823273087126971445433285414360119517714965665226314420360214926859858097470703852930092634014864216359617635336955489931451836966422230472313248799667402992487384681223320014955578904997580188533803654805244190914928401443205369437993079489763825106099853481944661245639973641365855149598018559932606790426739377451846410300493322035750936328724643858330176649721307825003737533458097562226998279030200500952038535146034399150842962578000279129829648215818543368396949621410927106856958595608537968887108747234430030811117150966367750407447170152145106366398527302777948575090179477651218880975050969704828418249877380978780875015610449505247386429812914254275615161254325661145690009595789125063509525032540796569476674989167912242529894381790583370790900355773391179658132529942961572171477680876298394939260187435260859534323174504448403212644998532616063193797424708384665703803473510969966026646532179374772473275798911038727226729741266924385664218218339697126284500579756780030747690216331686470627711628374043335473480179796414936856913099671221176036738530804920581177229606114184638318549913292262924415251043789676031150126879129552117979452336148339812746161123311844820502641261362633371981589177477395096204138622262562866948244823255858941835762543111710152548115244513480600252061124827717365997421093223166646181965612149393474430206635017315084563198553981432797274546823225228857935396655300569595972583205787475734754049230391116202386820005864806577157203179837035465748111623132165893018818261967598570878121036341354445252477145379060529123584906560688795912745230607718179507527807339265553832126105466924559151078334155862445264691367028548274894691602872412275110313290343352825174817122500210135772133488732206046885203384146671240218433677796754053674814751414049461063560393821588098318424416650665306634486266811295046386930414967741294744695010443555956151581900410990777883227438663199939674320093901604178717662155625308218129891751354890904907270509943370550091532471629788213616272625344450506120250720038329692647944101491964588205888238539236832872702036034335016146458112985610308568006848862473665572635530728170570691184643447165263229851551375835771378606047331940991215296938455229192693839036964665842254317592322732276013028899626336078488663930979010268763332099483986018856209337949329330070958543737450301945938471852982453584753846247828078603972990826213224219345018682929506433700248352252428835409216166718042589659289741495654311562340724296062295184417271280431111186803264745658187648678261454712279908903879419898002263505772633974435108472123496014361492125376339066527707851196864553332469785552624171856789052831553928717221666673904909798957730024222404661225002260225944142846683066660049520785830952052834972624289359439593705005694216224451010533717201266148322869957411411344607855926841884976666362604040482697263203735164962870413049766731599325495191318714426610033718305670157908408024503968391640384839617541378529150899015092233747605488419355608030060410680962704101219410007236595428001144879248249277998246763889467550367369224824546939153650835539885206858011314549787818339956725764114248082815794943180089766505481636419942263018281863187851166247677397723839725435112845050108039772545063862002110263900719201107722989242415288866625349366545081768824179751363709345229638965676544091505914950147553801958570427543025899480841944235933188222328065049735932663293467229132067644731710660113877325814797132243314001788490974088944842478246912653908952508051372135968717709545887205500576372619711946754902945301433592196984629265986809665742223385062572379267073868284716113399435977090594020619893113905729339921922919343252365104336713243997705117941153046094435421482164778517001143159726115839326293773185351457215594530172910026222944551052960482677293519742762519648647860567834620975755389157633338269311998487145827559202996612992165128186561326058476812103590613598864980064174093413742851489838444384225709681927825218099408393508823987558954793886360338210681343133377214476271975792400710790746659857903696554466745681238507126004623842141561294914246585760042884619656407994216188913510778730252581542449376789272987084405016952780723382561977515797009585383435023687912747740386994445609831327611474544782200405603318886736671258616825812287806268893425680453684563132816137682563935540369309720167147836403144764490797298535415276430621776070850921773242368495317700890528719924911628279012949586269279088034342875099710992439740607967723750748110521520513340355959288339135979821582952265993302977201731787593336571782036885359095977766200003743022683622958668385767501374668763795761967416119247602572494415415405078527865828823377666592246388832070526920586515983776194257969226492557713091763449412942965803413325392041014396399713643049678410377414019901425648257462607031500253508105068794908589976088055682284003241206183826519431813444770312534127632275819818536896670825719424074716954656151475018766456824829040251605630780337009750036258908678443932392084324517957466795622206649328530252230397089994662817325416660166260773189710319525010046797981420135294253586548343646596108708304099986367204736182606122567636082719945670588685838417037472171487587823337124437567341655514420996410388854320771284826255943667748650895469821457692709360243475336885298515424822660992405524520933130809535221568818817505969218934027866691170591790427663482125248976784333997077348322155833808784500676800918530142776051926827315380496290859601231414689980723549426282095265519944834497081544819750348330713215332640210495066364955387880527369414774292384223220692898830242293907275256827811235307392451659741089560273095434478338318052512542940865409175234811202220979338979062358714153157127461890144172956470931069954022310065937265477395147862037155142708306553770825448059554999467764848839609860055704316102684703078515274895552457294148235786923811935802050734196016899479895911476691626134045701172072901655637746262309464392062949437208294169861408601171591796136886547773310922348698619902774958180730662518776793634696925862646179023830682496048061199065795091181661987603276320165517117488884682575972940176041417784212425003900014072286430760504538626932463630762776830750847411980909124277132272715775918671121721154048782496192206209923982713933203164630780788610509739737415324130103967542434529679693985847602818800302235530227781323733456922306165022903100974201772339228467649120122401252491733773903062797281373158429464682060874480838121613199428914107201813768498402067990774042455077346677993427683364851730216176133057947937164772137311797959502254141699972734281077187964950253092008046467456790882264573482603982396642963880336873674665961482486159194320860221039274854519553874376522818387698994280059288947672272368400946931028426495793758543074147745158487499234895133650537588408699887328229916860756994321940840416839549277419360178267339490370296568529552435334329039603664867086819767868290292366976087492847381383276833561940751080697311047998215474366853913214671894702100496964931653715093754536132963977133297693773660878350661780342923465462472937018852860460630234983010443753940935979771932259770172433096242312071115439201998783684563894378738427133290005029041178470869684946811719238973203187164367362274174891445337628055924978857434523362522990436634211885507964583312781760407863355275420712691262844430056694254325051526205085812562284062851076107996260894652668895498108934561246562842433127012273452393200786475399497545420344116396702035880857302231785590496817535283236369962719967888892556885144068766649087471144416501390751485652986191581458409214232280450081037313860850225008571145070763915105046842354232421570525262294863220605989745791893407178277647197857202855282784922913153677161617192471446111784982738762291707409925116754793866205375490959481386182194154996998842409205929335653830317880586377337161959056013066770360333512618588787832794659149570002854098235002443210137255017584665842816137909417657985995992392358741693634934347823610828442743096335804531822416513338317718415714829069500199559097674175453069903823680354931743466845926116013812502393108866809394383091751485601648204593335448106698453205844053878055430524272709584250195727320054590885916164613780532692475993053744442546884298690474969222160950077804044898486795202659320484894341805632226117516676875742589804717094544210339005311381680190333975545702756777603035899230468530779515201109384267604390763585845514214233194776813636432801802877845192271794141796926171358500674267541574125393339408743725177834944149335759930232902865593894786057553907141747319404203201960324741628100403638489073346216348311316424159656543139341938423046120496233262337415581887489012494390416142252353353619043915410588489507663173111070830038445991355579951168971753106115809278498103284214159033041226801839770525103139605221042505743182659859481903713288168533905414458881242080689134928793200870319243529001479551897052891986973930327597017327106263445020839198515872310865892101777976136982202572607270960450580908437435543934505298978513707825379285979568528459339609637024936083373280973816123400568438381276907155496499331318850959354287915947436290690572616489850163655815803872753777478368212129112293028420596566031133027228006656288479001980381224615591055833908194292404837142682171407631817594748664314739090485377843050573325081374031686969682277134508471417260162883407626633186063390179149074061364549375191215129317546247273430076084010430628469764732210410874118203299645857625758460966784351163182772419294332792651626888587862408458419627901861150243105828248242836273204145305432532441324384819652250328883964426554185740509540122551627780742599505749463512217941344244717499006186288165424393410876897426052495762498255000643278148933291285276168214932902897110227120273547895412681193323596828546368727709510674619979036444566376805340757640062353240346948553151657990037503050470148053387320759640066979279489996168537600089205098138575519874019141681616444031971771972554422975377313117824618561751720046123874443758706255982850692252961383436210804881280502715162751432741095808946051197494837091898159161541094297504437479532435099174795750414371094066696854176675669722836250169080180778629267131925674006776430209011945819672509018094038523599975360072003062663909942821768778825103813031178499744559450955429370624963027356237916344581392156939495917204354980820859711997014760569583079517912928648879390237338423715904342168017889740910372718625627558667886941803908165012149493617122622950224603326118389131615190582519221049750515898133985725520644755171534009225350100156822485584573777963664952978328060699845808149290386400771013187612448562003340686284165693626131066784230980358560902436635843676848524333146485177623597041179168888809233915439574891915257570778525866943476261237552715717282975073272743452939944863736334481026240098656108812973300707012949350173401837295174531206049501898920508670163111919227157768359726415699863983035984026973201163323678745593287763168901378708603164867823821525768059954912023702943812397846635898828519139063617933438089622058768109679618836042285733241449104161363602823864101569584487106554518133703999717774397395799132634468178687240203932617784617147722672313719573846874296939153469263112289386179150518056859100956599755669911374070582058218313471094285702433832590690651173936564483888549713510355230574088766748591984767147886315753840982524770301114622798403141394995323186679019246795699317349035756932938511910622839176580506084256201620189019730037345659305225537229942619056687764956133712955056769756190973274281939894886607161478134671036566610886920215939315026403455755010852604686475383013874464270406370896228698669576242550572867735849340307524917323470252332489130240147722873394781990577598456159504701000587375685761505414400779264841157095029418755668195788886831460592817211945555997296873220895198623811178907719764808705340503187513648937069678681377793602794628780790462047211113415614286497030217668211546146928661869842058419183236149026581299020920377061707585880841739235816365272998911546266910273183197902750283264230849625841314574712818096875420213280897454518954378515471822230996275418639862590090889813945950670718165332062132243428300381372036767057852041724936251137490873086622536961778552553261297847576104426348377515815809538252074118551907808580924352334634180358553739400841962213528349147063065423427869724495182733946116505233774437400165498210592236452098576236295223134866896625420661433355602241618355248446291097332043326994923898089629844531062554290770075786162605228658168288217750485473456779914299604489791480941470719698828271615176665053100406452431107817715331088777293003511853705610192585244178833213116966991984698127839815016908183157887711076399746230863358410128496767672266263094586206020051720430365853853394035518233807879833321206096642012031995205893336498420064750974772368679515085701235883489740260611606233475805665121277445001056863991198433158115533319641426938862590877742203971574082515523452608317470633431207786692929715717209824413133238616209480304711621499879826288987025697592577247907402518912707823179695766702019838943302612067112411755977709683686933598236869547362615502412427536086515766006678655499279184372670382199217988266555680042041450427340386178891870213871540677151204531852578499326572598179199379275433902325687998329706872627119724839192664075593727530119067126865969271750240769801146127758523211130460357721001373003250690836391865427560142188613462018454723690975546027079927035205844683064294212395048557530389460978325382354375296868894016910373800392071738638773864513193645382531996274319045710355664371954358634418196647548232711211717614927770156122827800838724695029510047450839923825294862768295062868950029150525674516858950330081104354643601724103046590906921757913649589866701200258736985531101667872014035860242535522769701977452387178912637398873371328192006444215436217733410215675885912272645584589632406994594866799509240715983445234665758600166144120642875280043662505639701712158351758887938402394528355812534768837307623206656578316479343791387659084451333524187834916808802498438406013689152402453490638495129511443118840637655943625773036291502124391573786258085032025376287902946735844897036365144349398954032179507906103241100830801188385153665694773915344423362243214698742140932650520918998775789172876816433560360275031924495067694120281665647409820355757876194812413667731028502402378927003155233087344839025089752887200180202234024841450308332092554328894395957542329079443185925009845948143504727918700967530081259747270244203134556313428718258683869343499762375814933732897780432650110942327541656224846615526491157208095884011606595099119140409673099606708800915628230319487889078331043296383434819270605888857092606669454154410869202141236050239640922171274391645529819095017588622555840005736384097801895599701091775980495312240694991167687066731792190210004067607952113430348464624629848053295821129975257795727351209755293364777477303320925136818868767041178310539679240222943270660484024345762973417947510610059801012339154970966591487478131738672862289415242646655407440280521743381423902976569484300443361638214032595708336625100970639737150957395501520106502243444997630680656817027084526148345332692931305594818730917897994509792150485703245351582723611559900007628263449681455361440745136783784237283513957269101859948062783152916311981521453378045387555369172893615717413775715389248118127033800486812882339133533180628318976594003819719753976232238101903472247387014032460865186410854976287180057433183385927559355520553819944920716607680752391287195300893379336816217217412776566481459531037407643945632837429627506133500009590705725817142282374700841993994600526901175865673297222955595536639277029977415396500807067204648430267886700591409162731261250491156736122697767243208506460750718794378879936109866906558920783591995145429625422660364104278348080411678745663027443823900084289406502171632159823455186482329600258864558726952676980931433388744670368034886003391324017917097195391004286541168067839018626617451345569600260767359386533895183000865079367964580238647923457303123859631424709347444158230092149005593078810762052245425560674471242550096137165329809943564751055952043185874151120777589205676702687275803939192355741780599506441600458894411806608389973048264289047151074227029554239532218321236364428420895804105274034378889375448571481344391704521040231552689857519159026861166370617675699854759086555651197448875236132536123681165858600311259689836634106200969346759598130247061980741995139957406928795146682410200410061198063133674420993900019116054437978490548292135372042752135631338761172964955895397505673697228198445529384642629719751831120426762978120538678341340206175691570210017956564651590765352718613529202167306697175270370039048455158133433371936853548146950724484424225805366709263771859644168063881326804112233615293126860659152606075288662013926716971424283289856629983394258895768530124020590505933410528636776265402663078334903550605712198786831109967634350888565209131969209835579754269081381615086529927068454015267980150927198855030075040297380614786862615172030172675859169974284043300966174798894883393727654632912916656989337235896975311808057758734348614366896815335430093014896936951473810004819838388802612550333594224642066229837905937625015374271352300151041123035601526271565056180902503929460620617539520508100459355057401024922639781749279176099154409678797141987689754377519731169887086277823922182734468739780004145623764823730099765367568703281366822295332860899051524484821199956645897357453794098662860426691692208371069965655297636237759337924160235469802143663520276065760721703143413698172546299230550715023572072202010794810061297326453939429646947426988040840427550523166176888689740470431263318864130036227196589615502176890507831272502778496201164122235477737581660807080484273412313491915329038201461422650279602174556625802055276872393689890740339401467753227808771839893091436608236233009358744569029588027521603218439499129982154557261205341934044979555989441232762401755929467371148872383972578556041418335485843084030022545931422040250588034386716648422926653124467406649116554131160514912362901337985362389766685503844126341796417871139723998208603962811080953389936626749012994403735859723345075480320612467363000704834465581824857153144872204086470142266661556476255109582421885780977813909964191283895955265048800523560864349468950497624126588908528515602503078851761023227706568585854352726300836186928627658861693892488337029823346438870172240487553380125267762179957894829953284647352891303447119279798565046831290051255534137083957226249495986422757691526012444782409120691169056207381679855314447438196610507669409118254350368648129885976259994123035865073602753325336704537859880410587549571691203835351507620131283735324380656557426113614735477593034736880261650252734985947791559593671420699069146558091883878734927103478995549731707601302428464497122692927883485798660209678475163641729464731039945824501801248855977349820550168627917880393035446123598113491439129018498914079205829844097300279276459028092740620570329473380494787166324742713814146514613614259120556703213124867231031176212191797850178018456467416185111675636981456674764476708077233565958188626617856060516336811077013996582207832540293295420307332155802884681740091353643571927851131092129231468506063850977668444653249836070799266230137794180876550595800966730061725001773256294139837285512146675009629730601430911962432821016817432640767721766517533149287947908773762866990468911988404602244457239610797708741723476571410569445216066080745321064440661782973090253272338470201708436455237254805446430208288435745236473282717599125768713619760879635585034764711297513156372450381543215388768934700975291778394339107071184876435236519123312227332563872030719499849523194854414500748311672676009843910235430131901597692523102098571713161201158948632225307911353975026945335649862871041160446762749224723642387734878988305657108933511252324753228763626279430166037964509678755467273877763626655297239167661785309984077895344976986578285636709990443545762633199888653814714368134053625551723531357142465584932170119553161019554692793126649595785415335383040485094567172666655884729286124391660585663276810922057773213731716764366322151636432144536290615502549361265669276078546420989566553621753432314649265829420072831198328085595714247598980193738525408777772999540725420386811062189461440539523948496643668766903911977454509355400194993475918848738312652214358419800650096365172480187481129695530764207936624823396125528299407727909285568368901710744779958837664498761666044426579458524271158244920721047839691120904823965235231025782724539587059044856234074739881928757635788654716968537315297176511402271025499967994475363081362443877903417350259742854063351282046175637425540430557458313965706173997021514784054972454866746459327190848734605090101174599088033189213868532887434775336755871049612354197291745837239875047536550992667850317318930836674748405044006021128414588619506184926828872429399733884452319664536410537038660644858630894161622776924819006595684072249189874488370468811164616105580646120876140502346716880774251932330788512426031836511794539541122688347385034099166246919266330691844975238265948953695305928754717672063875482494107539625108799253523032570917307346750387590140054227588909939500300798790994331756408949199838678066625468300418654757982387715306495106098606901877606014180239739999371721193125447609635994811207132244404286388945940711185535758785211512156925628864737698786593886798064173310519386900372612033059748509018586760495269400190596216597447127805879896711295465495019269077383542583368423598806677207741727988428217979673777355635858702499323506940973709256976182139453129346277072445965731279168293778393680761137678807983423628880338470151652591241833018010004730796985732892202064745853808141908920738079241892517801585258043269063656756824047404638514986781482031132109796103609299641468758185417639172498967666516080117109291442623677582038474980436157891994996451802309092987156644351774690361590547278388510962595592923565396464573260815562842033138094094681498108089401072682667462392386132211373635664467025087180216532525122159516479448847101467206430416085946678379558643433391084761888135630478422633052929302836296865620451319623922972114856084803463034659931510325000133938928944821016909221417661402295066092310643258775751510334367617054755783721188070349423015305686333347796424053411654006779668504890770906409083397108307586076735289348613631226239775559545765840650848546786427064147733837687716854242259456497072729377370177591880277933650621213608366997039987838095081168452519710636366059722018928535004472325479815151202558782773474331628347220179102590893664906300252998810986576880978027073101704429117499726859527436427784676526196817124728337299281867605444381751678679249958029761770583532728477956457710694280593826869102385687256499754135605175961633692723199991443339540059454593400426961167040419599996575294509786786608203406353165324813944736982923301697187861722965507211212338470448420964915576854222413808513503318068393590919202414607751845056651802980570558900096289031752402238077938371773814885953277685271604199561185826368571348452332979526330467900426713495025162826827068708290325483334452107143758890433248847186493732189428772427420207698639730085037961811217074106521504523610625085868001429571714741346469944101317421176603477319239776881973844883816091451743792612539909833733049711104091535445180318313325155425673765954291355646166590194459042725308022438981233645187986332323322639884578886627947579103995416144684978976987245125481813141196454683121740917107196258098208462727431469123740394631090344420870866648331976951054225032638527295478386711364782325357300613594133044391340789514553463731609148310659411308404325226845405086381592833538254368747078349605983696262820728310178953013251588504926630820113222173654415799947266953759327924841626549659842449573344809354477211677543964030470355458409276268720031690130547211938707481938286805096581478303520366309459420432424107713036649827619724111147519300730720010581508493485200295606167185562430569973907447724896100024647981084730603331059533428842937494731615684479292802013979204729685515961987239366284539776160696997929773074614961403581915691976332925981472589699338211632991301366581598708278656372508191058545358782069872755601542258206792589360027598973418139588180610789925370400525838943440260030780533155765156839660624051108885879577888124390177283352280580082224119078387292123420825736373811770524159970468069059750519194522591580204476162055180169249799804001042888004232035553368088114961751405392549127242341468554966377089824603465382574255313083709999973767397469687635694008588714525784289852209116823205296767665654435637931597705365108634878422916977662436319600214384892064922866386308535761392323977838701922727996888074701249754985844180609575261045123545177076100345988386088800702058767163356183862384451965377048921827059002809599172669898735327431003764626775133919827422012890402092524164679382571854480936203160779901271526533246624027796763145485786212881681816793824942889244933387865653663206705377187493348457373123176336697493798939350090790606995752781876965774411529189917670148697975918053358662748104562551757205966191035296188889024499121155871670672015534797977610777050892465922269860146971516832542671664697280230061086209039890195100938537639650375366285915163148985253491716002984180347326469446043334836406881273154588249294518919631470090326323257758938602209837767056652187521361421186435442188549084534293868297186256593197661025172007474552135342863831030709492113274582830679680985517464706863332089872814146026942321284460795040125657064697762843213841706032301257430510640987387021506012699877449646646153130285415959458826869086865541309896645923382204193124232909671302350287277636786896527933363810831347905296876476947329465619487880372436852800124348227765261981545739978731362349689989708464671364870050523081735396285707799266451528765193019345220869189639476446339494570900448094105202344084061589277761129584053636959399223119895663028530831291277405139760726908101587026405943595426149133876622989010212769276764413839102351792974834129688374292881732865378481160963477767825290971623956599120086974212164461980941279575944592693095468102851221691262980063308512586165856277708389014229827196050656029662181993823308620142117907967575319498121359466570988037728636942464704480179912738900049334926972494474786437025574686346356393393544740344422862872935409676721239793864303855753844604503496191942316906152175135027435478983730196314076718544802102453752117117629043485109773454617275402472021319535405876001539312562960878243529458726134954274901706912519894048274713338267315555070077883258842375094139680450753740427383551888456024153758346930491634455986942317546436768316803333887405481263645350956187968423207714154276014020021342014375357365443985747139523607035899013808715582874034858282730527075409573677068229793810674171887841737183089049217300477014210065244079098522519586883027359557786297899960334430721379002481657429680544204964739880460454031156164747568019116004039589961256068879687938868957534252060968398997754573239340222171957763882814268746668601880057634892752961189676990295976144758981955463943725677716142080740778059579382532720774396974075049461513592222510527829997304085505121456698839476939238396562177659455014048066800109206624272605521544356695246339052049138646629542040505655166582263585526292702665325079951384623823061804685994923404190836194510238376321682893154111974978069441590097051551049729882528321238672524016513173012637136008335866955132222159139085622546568692889823120071104062978528315930989546929223385848837269402430906331401331944809861096098667102441813553513384052843871643780485882429280131830541989191891981260336854470960288802124894109893495975237173121837757401845397286782390171803446261431781517000518828358875003521689859948032404623735375755325726335590291957212831303226651349471539763185278526251455097299593815566898183411717794263352447282759653163766975256472316417607727471721863257306523776064776761286324668725759368639400394714646477098423811568916360610482453836530525723225991117551923883910073395482288028124102563309651950669680859854819478686136453293192481888026921148644904966290192884680507700433511582095960441777424074204792272080256835396556777379710575391933323589064912466613828712157054181545640890119271778573406508090814142556295450646284018003469027306245501433964111225320985400579994398221148756006217237289461210410460171648300161109520498864804433137093653717936787571224854700904343587693955606570484177884508983384341135512631776614363157581432299021743974738283284615788058406605687543878724628995364904057089232897287673926890091266065181794723330454896497623295586856269470409417370514224383437150452156359661465842674629279894176465691877669755891328691178613242292869524310083381925830132883368791213289366546986626597597149309167463104875317883179422978595487346379781700600468840317079905258320285492466902133093385195664549026413502291967892603706687607065442399187822987793960754868725309470951208649756369906880182962651376886439067716150873094087462916578747760714765638148559711002097025990720992465399569352015540491300894304234582752150139474607372074356459358293334002633970900970477777207284878802273820105479978081797472859185661043347597798814105187326017336843772737127007627673120550770912560859769118419742303356356338506238948786855891816337596822837353569657325583232554615462787062693528977643661967718096952370333846775215295617347778817010435587869746222738006505343435577769127722696197603501348117988373819082560602572876965140746275068885803400657228367261449737979344502329659391673241142110927439878674570927429668874660273567105438809282239355836448534641906560891813769185876356842918053016875774080913053626775674405598951840024927342065905731262015177614607048913669693259694134114458796096195465393195376723965998714416567124676200584666343637896993129374642377995558055691236032134044310920814370145708351769902535939712743147061464276875135867337192330222577476698204683789466505871835887302743904039813570390788934251714133594983513412773122542550308355986902014793926417098040112432492395632507450061963997659371538262461761037710484251591899053495704744945694218644250546172265940101504315491452069809184198783169946343861237806501886270577157953940076792467133182857513329932138480249358902006813201332769473844414758562729401966049214018019538626082846582355036253896434754860774513458517772285859018319691889830120908556770222612868620322219727416915739173414100362756661907452020861198975342947290830641781869221052097588422918168816356198779406270210289549131724353343106431934750397767715717929605869848865261361509595341603429424826870357578248340203947061706713260816218368285650074336160076865213913073567892212484836812869789308038667035362168407949766856181307956371669235077296050367024058169820506503455734207315219365953684138438511835510315535104741353275806351735617524297546051500019777378358922133736833223743388675205446918331877831804811743187623692230446528002390415172834080625506661736815213037370129851642878028504477850663418203658380886987299014251635754179740714762554698445355711830814973118536882092139446478135086154881912962270522183036130872752804510477333532787196047320741828651164348054987986977435727824310268977746598539274458020724131024465181750075640175548807203091624571311315703683041006613847201233236670280801707819043433572952010791889698974223913055334901987241700327189452214172585760588542755726236800609556888624340913255255879866632399770216308751002973684294085559146733131414608110034564640683748356351358427648507968319027019279733881980708446888151814481379846616528871728021082414360926022024371608920086584312442800523433032950708840831439398268358441412379663095986174433015581638454805856440069558670917680853301240816056349219380978930523701208142146851595064454272597864040816034846372233709354751906723553507407224176620219907600859958373242472337790715357744342827838480430121424192404152160029814785304248070402740795713488272460036417351382163638257711887951860033829931263115691139660438789665790830846388155529311643479564747898611285435838653897895188701030140200577368013621595407793601813174789184283712207302746504193808188770794289276491718933541849353622011620488789499010901038670803716276942190739544871383619820377638535016087664865362961499896789708996946455358941640024573837864727972249127308703940918727577214120738233811793924975271602684635101718213307313314794522208542799919591414707023617230531407379922232400546796295062301677997384845669406007972778843449715427682737932213952075598973386795351154200415711698034894834948951215097626820559946126840756692940260718389075138318280571978548168954493154337799342331104709255616438565398630739372124503037922167399762094728864425278916467167618302960324671888506738342732372683907077529287893417936892143272070719670492460372960791042156874336308174857899711532998519394811879660414370579827260806520369511198737342952524504551317768436887803908901259520974451004459174193265823631814080470644382532884063440592312812024541475492311267826133847098905478110816874442510034279914182900963388022071131555750343896604476884902282393340987806626330255016208255283423688633995530576880580300491874930316573871172609331294946526060049992411242323944120101606896622007716950349337474794039896948786095189666406322282540901372051257262924964351288324399714509475230603136138676730532846328649015649237146673512018384706859766157747520054602033055134592296365433749593774716112579643047572430821821985981789132069044458310626969415999419230564685982502256316173153694109552431688744882720928580792803282238982729713513196554118265557248945743045637447471829058541718461100213634629898263762511312456766605192673092699139518665995140071390446517755927632441483983854119833300734409065485523616457457003106022918340888735357683543813766625113045564104427967027564679325308171417693019828449477338346562881438192706445273694178679531086297700205368029330302195030440398482284549725271987281116635911524400877992293057418509509599266063560282646336368037436471764662689352294096017689541843510071625894472133229722168535529578792878499510648393639534172006781954396548008774988121309584600209898404601793405821959724215491933839169468051152030393643254637776524969910194702107047520721649003523975768014102313864923240190155496929994580031426522738566298590135297478084928951187455722853299061976474654741523661476573357424600937286947190251533044973828610774219149154579630917640221144536975040437701559870050079837714112151168597210284165277746192122251226558749651547572716075309816563305123836006170391577108845605353607725204686579288794763413479240224112218576669092262161026913412360223448550997067871283337733868943558381555513869324603707973673203900416814854010650925369806704494546592133132008407582850006699840342013218345041181392845242065841337820881768671879641224818571511450035082469861982921104241098641985108358415746837327502029840144546860293702500868814433999515082905616129698273292622175754477068866028104760584792780898191143765301367901607106037074648527526361751909020500315022156577721581443793091007580340590030520685863961061168197149418149046301235677109663951745432728302637827511080801541455289491987736778968131336197623503804250249056281278075641489318045166600046369792711495039994867597032538854673933955889196599605423913919067211942605735839801985298874883660672641498212752736448945683081957302874691509967573334739323447489182354518989311942413913887569549464652811877221314636173399812678662082966129632673156217160904605721194626260547103581802486622075806819228349917650793381757003075271002039670644833579260945045435637138057292800549835824784021171883316440475748251307897662334846175507810299692856126645160779366337251027645934346269341494364186365792580725961499469509496753877826966303892450133330524575176108017196033465547002410071434069470325739868966818190603069530654750333800440742308386090001558050667190505161825941253260593531267849101502452739698194342208408679683844728809231720044578376750247324091758831755171623106759440764343526657031768212384016620074562923165388619958161266418754212448254056997423524473226278848182818976623348794031308253260395412704114845067116627398469549948092334839846811539340069715191331795089306373889972762336969342054084374863168975230382501436287479917069244105650985297857892271975058711987968915782183841188518807908520876146529910143499210700023176866081696279963555911887590812892683789159872668085844071187799234157092610865211852663322105764555498397780807383477445580691578986475293790741511328762388762785648965624080829123557040248124074637742698376987522391214610247125772427562899788564718004262417116940322232641329190321331992514571528543414285825971915050721092263225125620728222345243791084779696802149669655113121688917446814481785443330167408836633828567140616914243020201073410758325236263037120717266895548395738781209994138775907415247055567938562898803523974076976867166431247753444849982806396279013036082752795016364087601771463399431484318310773302698770962787274216921146669658821306763675669082610797225130499059025241610005162187385923377667722136155416862842074929034902274604960889967099811285914183880235072139730719026007281513530015792482386574075358453878705421545753148789148987152724681883488743264408165934022435911374140820823796635065267602949331438480543685473443098981458671973340245977262373590297309967590287883298796379863141594521259954683528768362785629199537395321947796842654915713621097928117076135629860892319677261923005828925894185608169456906454279948582240917543358873766624154527480282267084821314905086202272260813567655221866226659058437182768012961990943394279488439386585903427029576659265943987228143890812115111767010091289924552808085417357153323963058643666313046558556705725180125796911453400221036448313738289236577747004617728161813435187335979145765252949229240154734857678091452318035205636860045168250395832022796016041812753768863764164537997891652839050655330149678696874744010049412811255739877234676665881948030364180191226430337379484642321576275886138000131224133367383598025492236923982617801390202992797799874319509889857229055315953308550261750089745861046752604422010447181911252525295004920863540812441858813198476446792165835476296844388110805233411845890169791895409450818456667679917396747041794952488960293604894439624455063543841729356526182158869466397564676593738730644301166895387603480465478003419837145031417107080033141470091154615539071831701860408413930052144092424026493528856900461169044689281812828870935546295357782879625196104142588661022773221612701042379061711004964992585184954416051147860218633360306995576573401897364899730686713664690178675763330299371159755145581453394059789753338910200164162177062450808624023373543451400109521657033466933881377810100231709888876427453991359138156591843380933485175338247239308574212514377874318067236907680021241268304567356901796779386368832201536075637737172864772606532803705113862206060591748360499372424648854960429105432031128215070099297983178287872173248559859987716376978876516514584553994632181846500261060900422094857226463444862969142630554652447759594302761523299837563731652868854949104542680564667602619463731469604636214639754388149945837458809085621571692327267620305125059462194280697162220970889501281168740853416540021796681323369881816900225268641511871714825957983366911695661033857381533292968402066273666537817712395657754766866142048082358060765702993692993729485741542599966985272141111731847055048604419610856324044377271972871453194265741174377710137210374464974520678719301746276270071184361499645771207850481399741561361305361481710233176771685120214496770790839801880022232235379547319476038850899690065306692790211898103906632337201407437083737929634853212936033095416359065146012585704870669042594800236285651157577315362379020706818522415785366228993725031362791634783050929634426809118273110463340060209933534837932887644175445409588790861999146313632391884859680231851013068200888706724466470110009003100437403681503179889355798049876197667833469699349976620008100260637744330332553932932197847936871252617583481377722401561737006726970001408084747380648170573282870046773362332797936179852414931771180576749778927122346757732491127347429506330790118087385058595060737888599372247762347809795655195173150178221821371005417455315058793512500589131576457600816241934254058301949659515992969289078311134225151043981034456911308423060936705757949594332602267549609273128224752640541045221551924133581681574860170658102717689944857071364576242439628519259215058372042683999846129815866507687716575807032704032251370345502684724763218372683719036745817080449058573995511090312789500151782945584368651167864967497958668934024032223748625351034574952875952552976932898735380197070158034785904613049128035418971074238321536146772711898849265826667681031952713375638637976649954116943898505169931639214055850976959708857693627014513161996916827677298566632886236100030783088104593506160474007226008886727953362000473673754112753689886906005966605382681110442598980446851987491550534575957742603689604275037079322473152669916939442885710955396557745956194190079482284121291980364097548047259564995897970554346807742828756523094391248230357972867689016979401970590197358234818638558844664468249343903190390400133567575264472459205588691625372394555230164796866694204714922544468313096124930296247667037662722934479322671215949727173775985213223039001696325905088727205604501231096559329421905090035541240830428424239014714549080311595794458675518094795245806353664856868818719188236271323794626902508757816261034264160109630898053707532355396404549987597973858820436844542286272104456737039106838008655867670371590895734170837752038730274375107798084835325371320398748218049257950700329457543965990873476400455007070761103797730586810123470026464768384637144006968077603588505871489354640097887670091640857861867757792159333485944288386912644778797768274894734440340551914978116322803691474577268117613262486992600547259196502527690942171272154428888816287191547810270505383179481265345921023501739214582476984729523995919457236106646296993899686578226265952037700097849465980235594553432103017047275851349031375343107503549045953127747466968358973695326927915513027888952283643558430621975510632178051859722736082086309073899404182858669971073757971376501367698862815958905605600948931666961504789351386395107003006561909463592174634853536338285977871179469398578254052157461814409549256249817957978620506056578974938217418800647172428682961853779384977612667194138828788374358341177800825718147502669582998084425501659453946168289507917523091956886007005026234416847744548644470270549260773572899142001887251758955358747022152954498475523083176258417652228082062528784587504974600157221046266595610447438791838637981892342636237044326248656665430963728317642718056435718431490984827154823019920518631013335536416336974474474807860030525143717394617414193819811322090622913787539452524006777739281957609164503436552166656748535498193736872466330189825223270159122480009219772902606691852647588542104341141913123251457806955045005022482017794518074779346964896477941126094153161015077134165980727050747369701465327752128140682309990695382614239166833169797988169756517764437402756115023909390010932272635042654431973634721621892527235835143836025944986519389733365529320716503597540887450193724794706885686513666845391974908681738212978190787422366375130080269063375902064867855209722825610945477303561902728815093068579849246308537547700092954857598444970711747315948774611482037681770237545371744743599037720394714895673213373776307751858055285570215864352091133697134349990237414877117145697745142718372008408939756515410004666009181374070309598271273706090793957971014642929563900590173843514774873656615236482984354338364131264529015755367997306487640644468250570408124619686950617395698442310796971604314681913167301614520118349806939930312279611662633086035140863312584691204687156967720327828082590989656901774897928815619437381637807860148747942096257675837514871355010396976445368219368061710397131555001870927138778833015810762265101115060217503070804565648053441895179834425759891969527423879373795438978423969333086546223234783064026936628140241316758984021995469360690735334894329101774836795727111845376640773462897233620468358740017355050448755559074064087022745970537733164091198761238073957870623557258696058644274437192163951766424235480210665007681776696722192421783073557436390933908814826076136513216230649599360568249119364798893473382356659065067544510247799623695401412067121703508461851552410195638618597897341942333741937638114555756523746641402394940300187176695198174531656094976620519400634098923816609441594241421360713920306323535547797561802071214952264997084368933125377224199917673832445982014449799218513110073246720712355837043081719972250599976311335060394584013317651880523822398187678201211252684697024775265853025762336111940689348508331468996875657742205868201744621816008183397702697579291116528018857426522456909716930920971484754359345040965009178090202642015614405213019723521161007079076335507378202317436553093511067564651738519055882700045022001176584374307176475983080109104377485281894103362185724531878823337141219340183417386204213269394191798956800638721217317995579166909797374381148696656641208129387875001796667594017209009526462588601072125915516015364894153540248373747020007375341380129564450296811479982649917382108947921258644811054093055348023567888295796927106872228651599792402798386925204622226799870832569302680318209870396322313366326633914825179890612474427857129853050228181414742899419491114719020428212884216282751467144681143213495863908703678350128536733725034581283000195594443739609261565038302037761919663346723230872061461354058135632450258063594356761076485222753451038994737091649101059731216395244228898039810611617595637212258869121244082013674116022714767296317835544393406717745891435390666183359576763908698856491850851557543396578646255175657474454487414532768318665469039346306334774405271837172603017089848869767457653933586509055308409684149377765139455074795174995616598896763782303473734095718187977321323105522295449636975928444866059364785206352128908694207883615403930755398650179040932171114463000752494550042760569749790058884034420049584703845906512954005927917672143794331302451897928464960073982613855594988048798617475965503255996418387786838171508561457001891392278577635782758908371115714466263513912002938356240835458202715372505469471150056425598605273333593051360850347258998631154561346689590725431412966702357279262041696225989804600859083511641960447612670408875840114051141115821459053721624056121411378454699865102915712927612825084037926666369499100919460836514308859240782152552572490633538488941512385656825286714528052860678350024230862774067824195786577656018142281001023610595057069540749018632677318813750321591717247340413565805108674019792798656241956696760664964963068348476913142661367523261314580854862913460308961922810771632106564868499360021958441526155015158249555127687033158514861225529859033929923111664467524163960564538927718459735707188820516649398428878512660783160643217487501762406791093863556854904185602806928158491276405222606962065330836180242808000433985998844317590163941176576035743464964485091974897609482310846908257871139782565365044179817294431389187950808428503787757395417980899400621922136355325530563020360625342060454717991028974342113700281905929691003591675223275163178592556044516186418267250330233227955008946935156544879326967075655874333248734211790485796705498445705043586371966818292115782849772022871712838524422043722936585143257739454452341080413544140034299638016524743336985861742463688678863377716270089753814982751329300169469198276753221036862561714417589645829366815298752355867004091179492807146583402397112707224597763218578849905350700934439197358627635091052058160188478994442988646757733923001135093152925896238467106199100481610203192265698477901751703871898327453680971623263937816937971779174340412339305354982133006023893911286450699322821642639545466949888293748167035769097111185222292067810347481937400885775236237552685486270259635116310330323110258402199252722199886583528360848498412685665978714979855704612450036185467685816037059418162739829171431225465428014801062904413506130790161691267689775700834141495874420928418692720574381622318583146765136546532533867791036889893106720335356781892996556074822115720657845810126662564916507825927460980173762049751134604506903079853737906647261284809942773112134380942891407768685798932958547564432377164581840792591074172982830155665091202142260697146391535035335008780743530101685601926065941772122570638447879617373571478985971462378266189959739397933566550776409053257731341459857602582430412670038376015835573530288801796314277711228582108651679238609926726553217882885864418646297573179459704651146202024199719041552191635422205519487384351875106219807888292811276092555117504134797506559646119869460766437576923917944124713896012217255329409167326265163674239728924420356637502862061644030500820216119787761923765171001059725656517314012116115835534342082817350993734516050764850181869187310839551170843218583159009749057007953311393419417943078188683746073051226193493944051270877445791632737762672235502698779479346994662838530644646146904789160984486596843974444674524739764199807967215798860453713402255621302961518062092725653721861900750635064354269625501126194161312631324367245202747702745911257978528219517013113095012940012672952294773544855589990015351026005282142409388844422037473145544008645519735784707676412390968250019961932710595530477063550451158217387406626409496013706143495668018303457679344615129666085775467670425835204617633704603969308126135803252879806866832676469801245483921899761324887826731783609478739397556523172481400958344839353891007807467724100418365948280370603449300357804093785185653612180722441660413228371221984376206317933598854512767011753784953319287364148018889013324475089544520565166617832984548615650134572573741002080168823236876561018028159583624496905085618486441627434091817722535415756307437193350595217738272106561257624120181630372982691921170214726235405608235958453147480473510217086759313086745176509725179894056106416729694844707865156987455964273755854304567100730139535280251291787505955056318793366691815858198660821439713381374075333318891942464399460656119699448713483626162375752306289964698278549649174909191418456851398688807588904906263670029634981166491987195666285600418278853975846239833857915666450640821877121115898161504097378979237446808626572987188483415993142669400836288577895759262370446238993107005189541798546371880853125911342136269376129086223388117265042113830483399785805644550025096635620954844614979239027485714828094368150541657270610327021245933585517210375126809251021770528610616061701139334421599810796719197266238400112583412851850496970819369365014949742343359204232525864766649138991981837133979504469477656851027500799064687468777699397190004974929537076411159312680772683033422967646072023411809741231329480557391006700744840884556692490543508513910878228868532736374343879829990146396601428844921053454615860676119970113515586550498918471876424839864363930786723250378511736401481196792284699393183535547249049211298048158413003822268477061539392025463556705768034758689020969779063240503941840943155697245870072175402225400534586837930351154206142924644340256723800774767885488957686219934582469314818884298736155879468885035684753153906404420824803135608997928401139817496174749488554136404817708989232605496104434647360027387574340049776848349372523240447565038649566701953538994241221764661440156217699410685331080699669672135303750065974963825818603166433702430672403266527561074718508774999574549465576204655289280628983329866998407112907515415573196249655373458426471452541486794223295647808501577101799527023573174467954346501171479248456438482926978869906326574831165705604318033856573385774289666135147986492234617099826796947306727952744663899258375037142827025015106639061301859776184836773539948595167188566295501253502811576270522452235332285270915675735260952229877859090715473902852235601496555338117239283912080607412913454635430593173605814939318400523840917126635578130833005577428929640099514346385722160155383045904550890675163670482308482269102967103645010550358139681747113191618691953554450217039518602780842141597393799131146024035408810222564114763219732167606853917536300916495554704826319417686303878470360041845546322822692699198094440352568829021105062441558827430915917658474105827917486813457512135990626005689585030395095847295478572330834069367957241427975085125460974815961489395699058144611003669808479132718026903105592881889989911696333849152881420162929189902483396073488233853876554215998939833985700080646465842221204897365069754784538990740164679457756855744215981759191943093411093130875701135067246623216061552123037177830750303136036122946471393134684932121488318793959445141893237985284671059419233137721741478326505634687227707350008750173064652978210668143265384134355652269479347421434707042599488910617727474664916665339650465843774951745999455618493206467141771481115373754262895546345604408519261326760501231612125558937773881624669334615050272794821733109051671397239771266019292614857508541109526011319446102584252595911178971790887306917551317001064323136730785365340368565170949574673049239823283745212466122442898648147966288363492307680274582591487779403273681749649471772692173012281817220730328217586197039120283996240717986603132496448229500826775673146329003694703164336299557340076211847586491759011542358192552730899250578670074097942060962952104934217894891006340798202229443308068155817910324717745207812557879634314660694575008979247838638241796667024731219858903338416181935712469062642952492544411212194731450244896988143297895821007267438180846622200342427071361460000052553875164905375011767533901839106173941476744220476552216413712465692993484405075954539249049181488537831188447217298180496144402871335033121654985507473873897447015392662578204167261459861277863215772585447639310034369901330134254390735053519312328283346464868183495638246120795059549348725345950324453183212958162670708314741050205318024518870415070243742890442100450607972956852132558772714712978052361809508342248577050099782628383249589496981277089902883619703211075018312486185073182253003555531984703495117597742520507501824178601198170226260836016765994256697890278153322279952313910180547377264566188055760026154226661507986309626580077549519548956771545228257647791248263806223069989425451559888946990995804382130507604374458077708364697165972427309997820773682787275226904342761376940062159235953198853484284823175875553932895830363776788841879884134033394072160028486341259514568314798766570237145414435384793669021892004447613674300745201849509042166644162959185520304633198050952542082479441242111611250445089421061144109194838761278988894932879066301040329791829119168272040321439665620551287047520346151366555660195845405370342407962100604170510902728641264019391926276676094556978409525569590318114393091297705531248829671245552669909104038059532483621383639722287137079575194879977490360583911193211098756590185738943029070812590996368916997858460040888431689375212248452797697312220542166246800410681253024995488283614887180559062776918498246063684000774280706992849651235979410086469393905377915117051094856895509992004628408788905637276055180150505004700555611173959321550019602824947731130175749306389108472162946036697044791567299205855296233173180995491616015495064158902613680173154921982465679017317483896789947524268474734253097423114659939898768724150625338026407749600028089220140618393049226611452067203694319053083633211673974277472728176683121064958339408433533149109343909643613557872010080628329586403648608518976125895097786420500207285209400013995338104861071632077308314164080285276666335304313873103029994186112757922422954311018773735575841040937996432653081712137389607952544855418154224334419347859652305874859580605913237572378280264644017454088278182572073238268617359558913210495503243247541347457258146034242971414320327888922729329117869002052331894377856294673978191573212495849959706621707097699261540452316151417571037632921368758176963159340583127189522416451771889690431344204161585252955787748664246178791205231033551641903678950383091920826945078907304905012667372317523876311575938565477947373645278786741743670943185807259394867055623505290993703409663486107874077825537631203871835068321138137003564931340542982437515147590467123916583531857794303554998576746139922079195997444721789342121617513028529352627166268713626436313446194415817723015995759746373186627941225590354549686894089332930550418197260806569491708398411336535032587615963230954797013936241772521968593789508192331173864341080312820292558125422461075392057422998864558655453512536146409853188930026973785948129174382923058859732178198017291201548102991543538517693163528594696006001389410852878052751778130917645262150474268027681242944663011026226094825270902582922795177162427955532047384087747357798280390147255590440541083905229193550925526080584674205997218254646574162472377632200263420469872287679725150454402784107311355136926777598292140682532437439617312038049904460440228466642751776145901091219149578026398124490393919389901043235641211582453079317213650103395365094305204529349719997714183890773776681554234430600507023207354761485096078206829435552311673776965234515926513270636545329888627896898748282887737710157508336180341387556243176463678799408594022479847141268362678688301777381501006400164446475984799076197059714334090076457953483325680110627112960044784772271948493120071188902508781086721454405426420837058103056879564038339081067369328951467655442015826829502317728714786781484568118776368405838395935511272732866742119227377650524538807088443275862296146990307119777568524470973935847035789456802903565635178810933505054897246893530467583349060728284085446550381462093973799931608016095817648138054267432744769815479330591113091886782988874428693669006681778291552912591397285201623502426051782568759468410187631343489720708706621058570319151274617871494859180948528793953382891102626641928657306252962395368314031765810354802691844684056913050951617194402053937817470437592427671121833257756527852927731946840451759263467837723392826288214345051694352889235766520095489835834746806921943203942960095932803725758108685093157265273848879715606927736356219994678668815990642598395379867419656605658187719989788613073319792343927550946052181655915457646085084568930015934871210173317517634056059277490435956855894546496572488335438611373769028250270020264912856356112076774302170333566302967752595063194844528676196528627180257427769986356436596853257964542238227660630256084407974791660210299226155035166490723388326609395957788733779536638605014080476365918257501928082454135446180600559462059515755331551598977415178848787693673293143898120012062877549146481343884696169192165174247215426850730432760618507642670839331272427861578008362706744169757976712653483652566370099471002659632969746406233394143979777477975993902653862278507282784347842920818026843987100406421240653581512703939898422882035177902295637588337735997348216164374111192412792109037435378904679053067339939546397549993337834190786199774306875651390631834451756011971018582238808501682831541869946955758946422823542110943397880539701338366525314715773173547245779200582551979463038353005955322004222717283824297593551263359552515111142818638846318236858020956357306244116669462374698836849250029868264789577237862042372777958037146684232805045092771900345775389082400557560747277086119954643954999829520583660397192695691167103328318679867987061122954595053869146524963832903658147766500965107496729874483905079321045453527488494814029272188109536558082650723717168591827258354526223640680315794496900875522009358760680376734963267131355569495420743449592498497153572864851671023267445533001668827710563602568689684647695164130780311887163680284759053160539571459215851769789538166040827695479135852105837265762865753049605093379817327722649788361034975667046686618020963966007157673898040168873717363043148988942076463758228602743274449741807815092654467196420273200742282318167779271100006333959950889950299186509776853060962943790620210954193180668649890461841715108249107694483852447661600382282360733790993034427205321423782242166329645719675733847908705798636245382531931026052142755127311908943996061549081004090227043731363365767816656727828840323778378088276073206268325170079378628676500815489770881903686314562040582618527758747204152390964442017557641991999551089256084692219194428461215403248159907607366890942724319549882576910862347097756768270506426422834885913377020239877182175914140866964468103679705573588195142472048411504920757171138138693068084520353670709949845725473464122427037523436911822517335478195542643601034758380649254173670112512905648262877336079549212736173865843828755476579979925038465147506761790285805648263950807241663401601916868937155468086557744843803325092289775981900287823986215589307738708613266126464611375088228169376003077383602043217406844503998836558826598583165413493863849237905630971467653241680788895620994993414694640951051412905062254405006621981577281851368301250784781535260303964217670543305114616261535467814520733439052591262513806924213427341082075212428316606926140730085537967464449395125084301339700874361063949357654313623217576415892055214241644393583723011492900814981606496641966592821913622064197722329148853786269742299895098560698708280152286012643304564853885303772012491243565934761630363530731217641097061974102030030202329958136779609029473306523586589550126092611102323673270462995582286046609103312802133927577973094467590866347644763230647597889080220634078723128845652907998432540328755202251675276231904145936211400041532753512331334812473514873784654205317353133611503050563101129429770583124101792485327263214545214083422255892362686653168103383980782238015458756753993991868131540780435407123702067485589606065974727844061937977137450112725126150663540579891494624045137206102925381154115217604100605581479938383535603833531684006546435388397341735216407916334978006507358562933892828878018316277350634413656026925450648322135767158305236722601811449976218304091745424136284036763684424928633595524389091656484859726850827462591727562474674066930470391016107843642639161209918379189441198717718547677013532976575760938199883370464823593875529150946232551215023621256782714341858145512825319785149962330449589073826576248125466098330082024860860726634133593377792722154290742213953556901460733230133958286672897991651551426907138509577959441969122007452737012371675529725054228130350850176959324336480315769154883544364273928133322359635570976490109086116579234082575910953229864258689167317257761981474929161106325449914548271618508862743765970561594505821687711887323470910260278689730324212217606516130767520627579033384965362659960959978948621914248384035956788970445827950512563252882517837065707478326118019329932660208719791830878045585122919986350219620327664770158883934472589493113776882331186638317534531573852429036836814596078555950344194924787362783731344502053142487978126737299886935342970229575854617657173429501640990886428337903959877461594162581478003989136268481388986525691901878699851172293253868645934201351640722463311535904608552019298061916264110474812741791934611647504430172973284511205972933784069176734384013074804173207648353749680919616335336982122340032895638418834553589527579126558210304969274994940458001278353396217407562869855936659649529992560681499444288085121240556679500606080023936513796842357050249855362970702630311011997276821956343024879905716038218839834456588726645023087923614497709128678599416381572251412182830183824320758393186835526135690187986814905743030286877828461867392555570754915178163561773285519860061015318564427441922863992376691683209142951816429661541850123291410811489880338743000695741365833280843610874015894532526274021464976635324098677910972870029951784052021232799674356741915612292290539683279550832778712698604347355915879734035014204560563176153273436500839434235413498605363888902558050185853738189198470086633224802128109797973876731492691061349480426469769847472907618373352068463309751657624568929265901869675021352528294229556009845728237874666798256539376522447166423629125625141754036971810750622938193841426470093589657564676216634951275644581874719548390763746788830542409658849818693364704901105354852164617694265717845160663330943184119039528931651178344828519462500184232552049122184753877306456356567434581866941378704334602252527766634574472258325871407157025479563260812665762359875113141103269399861903868551487086605642200888614148575181606973711942513928441929424283501232527876461543994899003233220201013181562195948854605589680801399930634180281925502985766756839892992176129577942961121730979444721650382845734484494007084718602054246412277424172163316760112557828618581815072597036037658513133537957140444800524785616054095433159736547957956838520199254345474934585259797964654372391740428428164988659173763803521734011297795549537434795173779100172316333402681344893862564147128469032421093580308166390124703595232431354089409540643504265461881356926863205070511531404176133766597482158240871444639706188585772606471989837700049459612356512032094555049547413844826992257920262227318423312956019530957099829338140432777279140357250666615703430455023530529349305654583851414586288937892372724721260581240362512672140888646528334165894244192562288691458517816436311950294128654063118264993152436567590388994878930170764003968293225911069111728900634818314224044437458866600333802849553510052615827636530332267804580829990674514499404151306715636418881988709880841104917129012133826696078806126073436099193762721814975791840506005243632571938346453718447969984139114288555876928357298052191769286407820323409771733429734295249740825177888212609623471448028995218283840277237521619355784609112728633661104814893587247799523271121288680944453516159038338597610943342457195970823719520139729102255272965510863377711524537556375997250631608590312181323173109552261291086258782070576596263153676100300375674650010256530032669438263619889464066123272532164162375052240973332539167189520524703139111752761048351563242399801433970440987006179480502893269938362466016690700258276219192638603896484446265762059826531819041701728847122172401629598413172579845612685193371125884855473724132018968804013784280542658479644584108964340647453518898016480966905715143501337307554164079989823401098371529063688143773607667350324516106288251228005181590779839297437222817794331063433018633684145293494542694939880707554630241445856483143620208841981410474130315673054451563739022559885404655617086572671392952396287070565474013904861760034225171383929488380490253212027528319166514954417311242605102075625285843533457472341016249140154192076783426173489200561063880271611146736046023892071174797340325098214161509721490376516479123137772361147993221498707091443614907558720902229425987054400009572735164827625275473467567760089195927443380784828269334662344467162915900996755622572373705781678271658552395379022935301505001455364124351191541968524791309588329288155810287968579160513348679604488964329003131685049754149631369490843779230145833848771817761883919756795011034134495236471943835144037661478374771777302199544585812841637052872542991652178427167538180155683151166172944299891698485998795500534643907023625547821023137941956318247707592725441609825108465924322021483502175571044974878718070434801129991437600890594351167574270848797225737030839275160943795064997301114947121880978166353135321423586044848377481323692021327593216926215315989332491841294870593110540855543299986049127870417043343977093986485602648973251377009889324238956665105327970231740103309591580569816266346095644902044467693631187941484151636891820533085595475479686592168538513080272395723111493914319035913969827614034196783917294521849181406625812722567252357261295606456870588544418165662950226765832188244822795160930039333738846160385831185762851074244692037399593692346025736876497344417421126132775764289321048610985679181587878659368350827592342936927096005720091825074825373604966457812636550003420133270215389164268452792721272811853420382389980109614606364500712020906950999948023103676862814260256491908916550577164056055893621749295250168898321214505795707261799521574528030201000671734927815694247148169148755040159445542612991929304015539282583534314531201936074364854072999227136286977236858893125487400664365656621720983150009278920273859607601515523895299705107996027587689622132257604724878791586875620368688139984653821983208158911649134759938663426957156797663356096767803416490013882411942254082029410908374808524251877440334138687058046029935358555290047312312861933990323246756121754063356400139423229562064668504138525151864276079546229070814461910016909881633206081456378454444272423706539496362492618298065532874580255742338233364470723011959887694117591646596329088144518344031554411558196593240642303517049026963218601457056731058724589688162443779791288207792226236647317739938266758781943792911818011033201048662520164667401542087179421101723684013458750228450980895047046961604131736106303272784737795805212121569031883325196959345206355062968999008833200003789211720542104954419499714519697551594150556733657450440231676928304637961074599150232259402503027978920755317345068249763398039808517540841347611227325947522730099210415574435306457300813152701990450602620667902597328769908143338359939747569957131617172562585645015657146655699514600784342947857777794936151689204947470326960786381675109238257601435732113950083306716986059894541099146282746852905797015178809979906070898370544907746256796876838864351002725695110471493636928621591684766399671518619994481781752472492415971078070866780581028060295752037812368265388189132109237977981009291225167483226428175434593746049567419700266865204039839220870765404209475701569056019115970039252896809383492546886087659702391342360862642129625040075000642355705530833518828679980390587693421746231151947843725122656579288250614801588902108094220001482230269482491752278610692271700529786393139770591911607819006027762497913725981559136191854230253137708454183367112478868690874680931788770389492956779851619971715706111164263613865967584827163270434423468089070374870158454156606288667117188251026613377240883482692960054629919363567575480254032991596267797231682223732302376947388024398025482248085605754023035713110740387062922419364656700071117305606559369436330385940712826167338741447101673152302276845679964460531971035251922266753666736986740871969562879068126229612076189435204206117838769985260287872791085764619360749038742461613975346479765901048493635662433056882101149525146885884773322466718040813455190853478306611213013856607058950324431167563835351264147713986780619313331418878775313460968959893967050884324123982405470078713907931270559016009530755940474678673995560418901194092776960498577771724430286537467728372978092561216191477819315811235378823450295678621409980237104522176754773758051283777205047924700817143832927483500777959889280490440931316429103509857537481461989135692638516840577812476055991773020805699844471177929445121500305608330180878577622911291565893349487882918053038438401080891142403683596717606799236494196515341238587974950779097955041145012162180966966285945652106848021486157774292397724352693483230551474579898976130802651896306470332848813366323350236944058106986805486565526957620661641293042353457996707610126187925781741609200396983177543313916317482690973104821974536819509743479573938148298254278795719311825895639658904963175979018717100838649607979885971774188039403614663251802111162274920080644441543025390226569815905601176578435701383957330791026448689639058118625734607802268957312077332590833219568464726938163629296152270908294542588095974490304994181658501986292788212124492006036487718548582276041572463147000650010720615092360025092513088713824793729047619077711757094537995859334675910035765936503002705749623459761427855550096495793417349524444349990745154799372266303210634553994843725383026838215240876587428690339791875440916512508270577782152175059336493711489887463620804128384325175190378726904584023450417469827946875804955267139191317281049483735246886357708188097718423314950755298144606220069948274017671141742202220087339337616334028820788724639022511850092296040700805992665809799877963957862256118782963659097538642361917026691900165640804463698113126421707460169516370285686223408911623689725007321553434190180593230234550875125720107973686152337440364357727548960302557440095114713547227975991457606062717901387849709932509631934334101624172053872550514885463360418211826959148303219892015012732855259946890810056996499025523139406674568349764595744156861481262456084922977200516132430377423704095544475821840600203582146268781673092394527497853256604746376572037542447163837347690830126357900777919363567126493591568514448052774797994806567114871217647582605078458502655000211194681950323748989083163430394086618585689159722079454287077078078165870705484005750694260791632144991912768662223871075766351523745074921877008860030918833983233040665149121753090298304487547003134385235568566462553962642249289312432762956771015986954104231393967064055151083216732988612425870662311968333374118642871517407010167962273664040993288322398607555509682098238356831935840954331827674053778520049923677071463101117389576329026088803826337831089232858577135714386107225839961686969792183343328628903228268908465974215831789669451883780297594331800664524722761325419224434191919310161507393262658558262665823125587474053592354277264554015087858117865915639393900021059917568237451430857297669175106018202946042118026973173099747253706411440923908551207657062393534458077341843146183719282002507240239806026923440762961540705631298703210152807548726979831973802251995740960879243992868652432957370224838296593664745809789487059816570974196880463820749789260108943793107325160266206793977427600717119291088850697583053540010205619783844388790988526048602418782082783364366162995199601892748571516049700181685621602331521022154390155639266762722234065200405172231654383011055124826893204457189645224698986186805487814189371635915158961495351324249091215347001893675921186017421101737243118138962600037971460826996597706656104503091843778428793289474564033883347112871979944150534231088352952529679182125710446356106842867572707969982515876093850847893673508478532335554471196554451519537320610037127926287925822232289940462680924997620586137421311074847688000573432256121463604575823965818879702354450770184278165687681586181341048974131582459420011554398422901884580662492416420041468596314255199655427979784101847250037439771279753856307155895988963686601605581581640652985906095691769126343764728943976829617937923740315874877193418221028250042086729671137101957696375337273923525050390398667716117195610086940086510397175409308090447678397815118749055119024473846570171700854870266312164150297562433544618363993129273405004949785011972321338599141854535161508859658761650556313252744599591490647936509236020221731545304425738061525535521078692259567101890909756430751900011230063921839466093406785419189577496184272813153384173054007245197570171017156848134014460240170797931971031443060495267047639889787250000453444806494708630441662323982147842637593988466836525787085414160259886471063835754763913657359858609275583549611634767975811509220294304358390318094942773441816085281550665292770873486869182581091592023158680366611205066861739613280822549445550918886422876185882877491195117950007735934166389377941432550980263908249011235572048271653087016957368349137941322522158614821568636837501394797384008285841778148410201904086878081338225978194006637462166437351824683050656043956003384901818773608036865292358143371458893150527664358581991999529257386564623427251410470423849828746411875883746282269414213159238233546576511289647671832562200406460379801418848747747379962670887012107434383026814414466758189053114245213338935542577680821479971101124755561104869497215627408596563154956261616020647679663721932912849732984603995469203775078639971959976565637318324219940106745223391174559852703281874086074689706325961011401603251154108523490197403650989648087052445628440835313461855312954117868155103561051532509037706481783445897354527494405868059971605065806754106061302806120385928676255868827999912342264647076740204463337696518645535106507910028226055828607561400103522531902928656505041821273102842896767668647038506258561289864008851302197081563709420221382170986748191768441161514617871176023444710806773856773992763866488210188507935616923175471696622418626810365410500955907619377053570845696597940944396568281694714787732686422950999943955422899361859593293588676764883939300340937282462883866652619667516743715626644172362451190784526693592146563718958963288746782195501715927902608695315370183673502736024614192813618401134069839128333850015192960449510893454979433245157574405609118198433433173699823693453546435300057582926671624712676511831708232027388526225656718426799527543156002541931094974067675745659034516606857752531213243919872152856906964816405582049730471351841282049814897460325669135141952331538216969661798271203500169055568348720067902943269736298479514926784010660326950810174032075452845560192835715705746585838991577140596947801339055443949611920473503993099999693665042486802387702268140333849262848010269931307939281740004073743957658554589980627098777362660493439451871271110615725841576639033247082275051106953953612551116645597224563376618244943777698401289876266171938593605310220747817189683380633795704602337771238871037688449709705022930497875181878147528940739101495601712953438875298673490799577075621287718529505226312131780837450638106673522857329557291932499526591426931036542039939245596108809658690014776081476494957771269147867765379259003190537703999472263021967146834989078849774795880280062326304225600257744735364532922198928460439436390625379212891854671887062980061473671927463769067162063884986541013415808931330131241396748340366733745149073984616162454952892349114031044307210952668941223216988985566597654005227247784309420672365255903297241592798782120100248381680232420906862130419145968651501533759955685276938460069630233891341332063099816600718068855261022229384297648013430167964300371935242533561694934629307763523148455452595494128200026277049878778188367300135782187396228024754261176536342287564732615087300284686037440061176477214639832704347837809326744999646481020717180470165479834906226262257592378580855659121911161321880624799499812610566665002500743047111362499954828299623906380516601917092469136532977965547681634401224714333474654490434112315832891006993924386615566213713709318523618008202322508707139854401848765361684774979237895784643172259506438471388967458165056465088753827966817257940606552367380109712035418033219919038966759757079009207872731940429318774497662366019573107227163119353449484846134364392747448336128983742986576863008354048479165946235411930790789792512454696088629369915376256397439030771724626571853657567259394034443232936035755375902403789541592226983104932491004910738168693738245567056879005073449418535298456698779174117315299523810216377643486864957156616414708237001544742947460976517697215506626726273954813525937188236389414568984129678536120819189648368962189740182044828778908322709256447584596032715102387295018189255810392176862708119454284431407345462150891754672292133796171641144919175468354880684038821801410090092147509937052490929564847266225810883234104687894074879289056349349536591308109188801408700081461310086220905551804542219240380256360268820770386888246451389671299033259139754152065276492750767753760157637351467690760552661484706382324124596227776049367746784197526161944134374344701642489134581420700795894210674439750644949052876652410306900990502298365150077210056991779046278560445593982940621709006692904294754959977853329509538315101062063808427881227824588468820375697915044419207402666300601735711459807545578942786428323711167861606465053901534027552773563738493327194907697489088093784215029391216905079517540564454406046533469775050520847328557430302029380067967549877674744644729590031135303302283856180982476314058203744494085042123266760270189401872610930910686397897899107501309596722957809586048867332289135551342524870731227595432485797485352937065342271376669579728734893993796519185279786718304337882199299753790364408654330441955885720454466721847775121921187000757161092236673489730743057832814571309887933180432882010441832015803906609782508586063815282396380771855436522382917355773117319884457912086425627922957887365980831255378716795575450087082936675953489672877778481066462002769470007925199800465001756101645287884502963309775027332579444922156427717287068063250371174712360323627212364687171429763851306965461588522826536686625074479002537558870969224523300199962813604204461784301389252042836391874585482760383876258266811248034963935543499428783907763328744833837678720434983333317302114172761898678612133598173512180073424501742067392276887067625918226550802072108102133253352904291192998732889713924721094717014323493169419631261068360251953931631130448461828722217867223225465841998590215444091646623520951527113776920671065733788695155475244626362419641344106083271604372180611457743253709733931527985921465866290080042504096895453750280255207952264296690537260432526464197368884212228832534518307825561993156100835942258134005645442754976154055362721838217715640995006733582271393208373966198072918049555194841956484837437029350154331590035564997920372086239197145268736764473347762133258012084096419758486311412059915141458458237251036487305537292830010978248635395647670307023945124997450668252610217939691805668777481624988346512499554007677870982954806344121751913005235375457680038871372478476176583038582819450975626657918357092098612907253779956205366146795020139886266683807464968071315010886908202743455622329651503411248954098175791232472004799274625116128812486082699171245312890928951342299699292075891567300103674244054453856099667128001132877745442103135238090275522465368341375765901818437696230914843343769717079078597124287281538552006045328944926440621630994057944694483994828199637057826792847893350253434921666171380030560923562046504806655700675227382950307460378986109514460512474615779138146976171433450363900991364734209657650824565816484196133376003412184970066876648501851659988532365132836470277252118907901846249980020142803155214879461020742357746988371555856885088263243421622794294176111819010917187527110840863727586016692370912819751288856108888893790786127439255030440654909046390057520378562878328250269713381560864835681117937277230211893790616110189422349812255315367408520463191896965653188927507720770224574949937033470016144268172278298390296429904123931219441089336755367997541679036789600554483637494248621117363045409452038740739823765992107291673188306241055905486374226821048460650329677992165796633217544444163699449519965171033506092761909388599973736629761331282813957119181078027174305621607699037179299673774137404898459322142936688799168570674617200742233146460166888898394184010841347859036097337128836151205558803966382314703700809410433107009690021248782372722624934563640062299764122838086645926748346349346697822458577693121018417715494142013395913725781650509371293503588916574144215222568215141838671772764602591392139738610330360227265963900469241346321244829533695169065137323944026083068859359820498640854040894443279833334092693392796845266117393882978482589866504071240037951155518516806927830576582509745508920407396477104664181015349435036752821029245678028023150106025225326353172445184431568511478123689515229640041769985074286605595280683383140376995549099931278833645272328272131249896172806267254517968664409625964743515790740290159830275098253969404506296357056937734691303206625450912102511749440267020845430768389141925622319891857895809498030804435433840211952378127864613114177529326904965383874067110625880290258927996453843083977649364806879310701165056267096738409023920207681133965359286176782728504216661410838940444768983960222098560091277060585680365773021051421143847537355728244040812086800259359987510583294351897259388943898514300166087242383288486253601453160534473085878364404851866805000386300885486742707603037436595581124165198304026394677599985007428136093650837406546432795956717479545752683242239832394165061116668898400193357587757977810992436056778045507306936239359273841091047910291356349193790896033281718481333329382217864785274341307876375319779055756609855797931190605994037538510683412511980902068724400419934065157779553715322893361595483341488473284152120797052224678216767020651521157129528911994511392486284965368347652493269228292501349278143174179254389226497528093242300547374316913509587514894452387403429488759094230211458329955207331722031230363321616656280841932300173522709310510545350066548059955869305193522642826730946077232689470625315405181960929100347423745254786830660333172029271267029334037002738129921310330656779139351083190688375840394202556774674797674124719933115270800270809486318919605798883345485460271042400878544058148430829293960419025599120852940353745968780277377777400990963235050324842991341330244049676340251224011701907080596707851195274103652116077348713381780412785545580095076795497306164855894880391044016562282648278964004277978299426641418083945346727353306527872411531837270398987692801627571914403943723330074725779084027848357515768607930597995327728320074282757433660564264333984918662352307018297013525536157589587576578015357844844846096972543964008048473003387874868181610414054339796860463527828947509574355441363654816902397512646253598979244117568031501338881507224428522362398789032395621266896842573250290019219893471144780250152601810497840315596492570771672778120402323207019650725205661062073344428306814919030242647770458931396436146955831085715717439636066529479709715755604304241905344483905381388936211219278420139188644440242521701503231605431992486965691177727108807414084669382813914262325820446522242764092649354649101644952829798552103335588016654050834077275210776973800402638433778014831724077344632446158589057913924204521313456113318900444132853847605416141264845447214339480171977189943159434678033803394404757771215339384579912970662975461840549989064550255333233217544469598374240788604142284489264371178533593834192537724934115382443992346793323606622243602653325208504534387406740594645733327924219898488091734198932680342886368904249003231205243563426683702153697977038891428207429997838134585838698770173945590901235017104523701686779946877872459015780767006722591208249417209387223325240816535767703833102728801576586551830480047919570057000348035720793988540221987631435531213654426067172413982916542036585785641508158711950595232958170918582937563883039100567577591774254071595175674783013810468701692963786716453243565012961623055069595774078016789851534456820115885921652688238205200212133575565025467595228162620642267885577779764460095646037419422079814546555794899301594754292193863057997994747737269841966502167177818069804720216528749842621671798380731174145391333477138845585831247752575185010780604063861423114071871472575813455028467384491993658419755407680677830078782307490348848700144670955180325276969950867826414390271618395573006971327324276486826072106869399217337556306293227874119636414443830825113501085853849374628761702891896938931252938302646877615151127080968997991051818977411103249509008852929649227772603552071535595976744549822345921747234912837752173914471358526902627254045329878805569964298290747583666515256750160673046638091776886914443743053003338206799612219617757730640141260334568262388633165885120812574664247354565306922056041551623428613905761322325824126011471437893364975525560699591843056931160367887695596951331671150276876157182306895270067344554600117608936730675090872633019499780991045672970769180306547189765740320180409658716608493331016708403706225426383763247987361329284791594489634328706933668606386658217252660789633365205343335413549502615092635542635238103493533703450215730226267547313272738092985941827997330830910919244154283927008826814588620838794616321432283195596852624044802349068464327787434977127179391085652536878449417191614837050315681040405012036808171487510540015242880753143090055700762448078331955942866846732128873134029579980912114069482764717163379377439921246746789799368185653888630011029994557052868857810052870635014662103536478993867628112412041218051892004951543047374412378002537125125736725236496326242507513882755553604968256400089968545733750089424783387994308813867862789154375130137653405017834013183805470173899834049681200343886904159829826512314413842319809428709548080116865839354990963823636313636478843064612171745833623961212082304624092970329940771436223667960793521603987783770100836572482861833150563520163700031945780782647225936790138119132010463834673969443875111333333481787761432793811346490107868565889202927331747780684401644529146239257954368141879679863997978703956820231675995476892416786206251843063909368736067800934251394833401053533736465773520954295407119307543680084861340057616997896752247819218770636132026472567663846319030841092717550879462115004129010968779368512692098301481571914948790682411494601911663637816689430998237983275817574939461487044240663749207280026464235627469581255658533753008070126266804353548014761958167091541479490040539764319389395676805915873632502567065232375480022582625468550701255079612944312230858796725171934103929987564511906054343476304943630215267068468846517757209779582794449965294528455749592348758257370492478754038260557900742971769776741192713183467184535039292882055039963994783561525571960710329051694675362023114176834208847326609508808606518315435958997078770235384774582791803075319642565503787545060463059206196536018366579800866496359624054037015393445975747053727156882382816746026267958614362001491591114053914466236505033156473554360917582338661763202655491349570291775584329489718968659637317944102724971189999497722421153975135303515108697480795334364850917668977198277546412931376389567320289612846307707603964071856419100637350607829731949176708163212622722919017208348468160591670400806800322042853545740271906107465611945929916466812366852666740215435951031426600425826911777039052538145034749884753570836736211080454778979020919030929575833181942843683411193810150608521697074550303145172705412868627871286881036371562078110041408918055520839582289544333803301176968613933878770371842015764625783123067525885088286799470124210676296805775769796666541544786394332887685285765789651307714186455540271700692047025922612549959985027603331418922615020757747173420735828252054406224230291276410089445565424591878331038926421075699604052235075039940724473190966370221068479949735407411527900392526313711250219929501795519958936906830741341692201181436842878803105692944096579153492992537029760480821568040469179576375189203611054430115768447103334078440487238679018696403905482166838850495262686795734081353493762195909632818955711049642428487651557311831112792552513108182856823848995942704942750418203153399677109918820945467178181773404235982165661507942228981691561888655030818515252790923941063878001216952296065356882133324962486452401459542054258995556443301493419338491472779957930416001268554507678144321384243649425978910069967167150233778506731509315055213568928086229857759132849586306667513637466312400545987510589939859388693603938904041347595768697769155923320802199939177255202031948792232657481332722807539799912614434129347128753267700358933165587814698432896507093939459606192026249809829656062274560703293864832739717340036893009418534328846687741368288567459512615471355489570522501830853804184201207544628205624613109323130964126303941607365736270250655900735902986779817716474643526615632046560498508852729992528697655436090781700494234997951978444505641139407787183601260741667077716773909479928516146333828607411920776142065887656740433723052380803158037226035167335319228884926514641805750507299462182126079945195302053615966580723974791321658805714367337448888756833657291765743570971460593473186634399846515439459763046933518658754649586659658471388481131270084950481536912088737064444803030998571030930946723635121715357216244951116689799646839295454249192584404994055915858920459587234039851811060560608759760322262028943593035714339582014551992766077921899034370349440568434993464070193503594719821397465516489240933156043587683027342194682193601100824201519499527171867522055692850595276595545938743322835094241448904479828844617287983023536345325321614578941566252697056412816564549879169469051261986747221165778166651366365658590175221393178198372113188447692365585770103299986347252128225708465274286998044615290406487132045400024820208716690232235793295952363487028628330271182178632388927502924932398679616043614898916006843123393853274326681195923896931007802310754605583306991563209775171134996260081239610371484737178508766825793778626883406500154499501991714544788946605074349005880339277541333250292643482395385474416783760291556089854287737421568202345780195213354003467941463526887664078098251046451828867248355389144573350877994176852264658708603992709944154998486040473220908239020574983995958002638923174213138749176509259605147866378802173587918164029948989251658761434177176353837267471030576480898413709356132757983869060463436150331661064830208796973963370651863262629551674776144219751611487533905303481485052128840365238031220717467922181456956489611258811605689065900810104623691211183400240822759273046752325044785433992909783310576504621253665067512309087826568369097363801858269205709581372735060196381685683023797861743054758560861418938542344064136541938528179640826002287402450513187446758407314345800204039848119389043246511023574493714238488614802620627367206001158317304764657206862540405161514005422466157971968900640221690518849358213209767942948464130067619998738199635868638673936416626082680763655220325660362610042076109645489033306877070175273171879027814504802702290351903295668647613965195679226652914390969638036985400875275594555190632504604833827563915478803598076260959529310056657773468915147276904392774377067073797049410974805079578182682206870333980883202115881837482571575453400447285156711503058658518911492193933652487933218820407460093876600699825522284024814938849880417331798829256192076383389703708140911226620778535477301864156965657982379526876342209738468285227426303443122626856778048294944743108514821800173670967802465823998381071122132863487753252256805533115661360320356507438690780762462259706648647509842780860859013338358591513437739415537636782532227463956223770671597015192807057918754174848582954048213847536711038567928199046243465032291889559066905407136351228346987543797420778868199888646500682517915039740787651896173636630540409308142272691009544097094953075703178062045859084896837173854518667639668281029860109011857684422779204631238090066823358292991087039379202758096704247444614121984542841400744125662472180311193708820272368008767619481357469262161808466961958905759611175910874583802515983895762259919307743674543025628221189423878377933598834447547085573162181910248123668598534161284396569417138279251316306883974902238308414709343485722044605016628187046131719794801439617404567383220684659066279298462558717662385448581360791992321916554011721689693472360724192198493001518825895231872713516802811231035193793176034155620662112604820401642408641080060652303024368207548644238914616035562782916145987995625787639996713135274983431615585318433274689612621747122550828418247449492896312797437379590505158896178841821971238427823549413247976360112590922706328398079278183815275526754622390625618937242019611479520350788730844413567456177843632708192625070315045907583006188445699902284959451784017487980485534657980641900053854472746186754589542307544957852900314317885790721885307731038823096467590517318279079968146071412945388717457873180451420150116422831790027273025267270653615730725398663570034252805765968518715801403306610122887803748975878949685791653523206948736889343164146507000741528685041267694585718044103515906229270230758086320106387288550175249177489614817916901783909017626284388738190308914619888151224638484004074912216726887263875839416642954964216522925823895677305195551482488232331317762447823432082376459577566153962457371003607832172400155448519592244323796798865446662337925174100583766188780386357962993185178578578271887386327090916486111297866828935629020502852749773755906755593030676430048348274082586862566154172178625043234812511094415653145092618564639119648762222912523507663571351953253801221523262696908675021621192005117292961640742108886744106731760604736512200372591868717144119670601143883203810382949055534882033914759468529157375215932296682766757744851818690253262441634434812240773787265426308855633235932199340475383026171334658521113602251043710704455578870392440987452055679614298981346657633732700678826495060640834893229152793829960527068556684172912934822649038796281636721274534953840763875164332015719317552852293665354751345250748482964937905402372244357420143119164026309860841056999940584661601493582259176961483656128186062187909639350086394650682143543004479679720201115050484033674993312901551958026473162882129849107081981650453783940008157964777011990745830580595868802329141734307256621177189853365786403286340256285418717992303576320725462681613623330343180918736475788620813852151050519985378395790987765390829631773184950284677697909226510536816654645509920061100506789794043662648949615880268865507966320674939716576238279686857986383390315635174917442429681700492109902286211445573972531325085941072833789911825650175033111733992694257983196102815309080394222141526979960875212376899731023592646916803804670290717517034040430303960692089387951254662165231992970258692296277621726506867741924355153114812131843585224252089127657356688581845528694791481504491694946670902452317664102224089653861261483904592456889642802232896972651716786533038273111751984268565429654497196022107162160921572219220316833967008056179372406272255930842813620135433316638849075521914547815655806093508979048144172750761097662343133215426619374718121608112966641247682477259784816471227876832259671571920275160108350908654444242274565380202201423681675490297473878284860745020832329214384919911713004379792613368261719578640950589800225668011598977081459593478583583507204559091385690666410151911885308957071407369699868817707713473730000519716049127111399941791332093415891566835930509592074812652346012403893472545186279138864949344992764057519468394972612963459261273699807052169565000601864678991823547943755184527089900092002751038844570849523332357289529397379426218858031030784249398784186835331933299681072693966868000543317645906981753456443278964256253390863785470168687009222612261639382151677659901710810099767629295384408618660629484231979750015578858412555446375577170273700487493825652787457589492630824129264467622258984523810630022894484465346478447756597236599734838094925402282863339324157381311168833218106628765784343719688021249739629604790401032172165333796176366606477046732259598565348838211276772538972906322735455943631338766228556021535708515197294588485025172095262112856569506460189947545045396552559540570039121097116588459749493128502740264471958548329565465629069885446652837510735396633589432081352275718732217768496778379109755876023036861953599619251473559878347334977623420200071464507947843813556196004071829692063917851105805466776572297508839846165746406351969205378059403971119047289811527326218481251022999933092307200102912292834168924301301231324637584161626866729652016920988264253763658683973458153987803108269018281512340717684788332816473400290952190664559677374046555002521695317305119596523011843185529363830397162657813098918243498193364066157072437805168435965112515777923500103667030423223257975324282705279353602035500245816892328921449915033001181524919904357559626160168750742538392269567119822531383703679034574846014726651624865944259240879690230653178347021917419432069062675627719999870241742918964312551636684299293402174768042634529330636791119507658177257222922734058705527418622651128152566391986101075126250344026745474979103835694958238317422364687637361964266776019907859253460838848889747032948431216108332584688725498807126226408845091472907731198440776074140561669997582923096762310652391949796732185342061882049484379061533425422509913936254409925174305849471606789615880325493259620907111040713871484263872176470323966522779328766571910366390459514927501031015246087596717179410027774178844630418689790056838621560405824837895870491361668694997631253731811712175254819095220884307232919610118648137013857236462675383376765650980053561267099188524619437632944234619502570943117050978576344356673516209822382378326594601260987469525514884170927961423350116564465311476693925924075485737902433048232057036633803722217591108802442329749949880393200595059581394521363749002977364177240706819826467046074095551384648567389846721253491235084887221128177376896157600657115164720917095348955540146938729261255205065836706867946144617086597276171632848866679629544278874349936819105300382024780221934446300539724293101833507276171679923582395673373133161502295415086733170145232496869035360275598173769502076513309458238545453193619523435550221285525434277863136655834769265088424898581962809534232077052718729073729212301989789627046448740272730782532499162870726311476838239247256117542750234946134383348150046375487421322135018949501839180386463893995533007752332320086270360303512326082447952898204447329075846843976574957216826546082320356936195204418227533574624206640824686293697493299796319322187997643534624583151462390196124805057654327854590523728285048462533855947034867632845922373507907711293205654089104996046195244166696801107991420653827453615481246013505728670984096690526922179980637722498681781881473521806783837327739654400485676868196556173717472807970499536305642501620608532136662067455021153698412113337079996449252705272056904769380348278358668088439248015774697530896594200291662505226264230688328760697482423917136874219650475465661420382763876074669298312295195411138628978035780420029073012714967052505443852233214848456840141390461744280020496501751471174144098893935190397392230218683406880783323258610789618218037971746874361741864451160564357204834897199742598991138729719641902445029708650140947130352755393931183856674141402242178782983121968792135370549722843473577418645732189977364430217521429081448410252055346349082047404333435649070674011113055909670062812622161139641985686269549442844280266498203880307734798045467036427151818682754844319162310601941296172086032297497312454617409414278286815088795204196580058011265203982228496311054598945615681576342651158366141541345218250564377278696288300544040578691274258921413100652264784292562413246988997272964126382815586060639249557269375685891603201078194866833305970414521184377391523671648791122396089487728192579069324781410525565084273018558301508142246260938002483864799576795958154901122978822619526839206799800630718665225814484247427332240373067966388818254968387843663579111156150873975343613703126367379784506637921890718364589627168318749225114188715961561390199946145722760132956126977670156436937038066196332768175099441751265552186212524526037795022251318114783737896555000070073553859927092286366237392570824120301142203775564494361974562821011454760532423460974285115908382275997264374354359974088612737106205963662792630257608863348181478456355477639302546327597719643914592326092281236865723318090997309793607498247170814480316893134612246065225011617326230797168804834596393244813001900671202378933351908028634873476914025868966732703266209503379011645785246946532349737598503162306022978336593151442735670098800873560541365801702601578422058679793748177014664594958973108604506146850150501364712214321261768445067117192746443823981253716192120254676336374865443103737063848090976192023772384950517959734837928509563854697021491608399844494116563216604466076433852272522501116846390201091335123438433465929177856113305782341044288861589836389118218753204202118500665676263765080044707472490414683499026718759651485860728788443858275699050739645577223345180324986928265879526838246861549837435187050532851931315469260208631634972824377213335944049577404968926350262303262612098483748023854083716917238138415631819545321164802299614956557713409812790241420469870313950367477593115482696511099538935718568930948649968088607633042975591168242452308906745389173065199172733983937689483310080323636513160425402331638378465597821238830545143779237604694474582531923342745756519854346947573326549151620875509648218766685283051952586900140466077596006802922150094930550578627685066558212958186341791992076247289837083656952539902679761617427211123602031288721906748896108843335242987052180658618785211885012629630646462596686331145633048209373095921925012085989928102995376109636807792638993387887031260705946725352105049546437089555739813569663994224884369757599586192765362055451885443756886240251106115342264045671906413164243402315039424235048602847428687911102031642383474734614417613716090247751873605448287335915529111864416766548968298872366978529110965826354868728366154916381615600200237580337957928995841231611961268217221645106234870944472005742448480448716117545380712643053458767902124201627884311538623981272048461996236239132972889802051868152837607404727057636404061310439340609209700658115075964899074602547043490821602913870384954284835092478999225877183833659682823592018346810141802122427871659914194001057713385201366865374511942495985756066284005608785517756661514815310802694999431984510176614569192435554797895186360429202427272281644324827200812536142945423246008085881398580780287376385922520739297692332020438766283056065579197098358038778402343283651287751913587875061746267779748825912351642852959769588240848439365155160011697240959618927299378947002684379595273878747760623388525807460956212661877327115919559550803364741454980010741315808079118070054499702965444264761384155337155219852523351536909037671688969989886310131491567712383021388272958421789213924293239275585613454588874809591102940168997583958092376602059228550266292838022417962586541219189244032024704718181789289368067033188295557445687834813727798096785217165593319935466202847069759445638733609765040335572880363152723213680971851378462802823052900253733598918292721505732536265080103079333882584297512061814915763789319196014551160874403480931298717025142506778277586331012733934715404061476236355597779251025700001293584780944412929340046682159111036713909169660021673919744722306768645744590194217796191678568174534896977760325709439337764451835537408624082235216377559473159721080807593362930541252749414997225185914585559710253622991218501682833379437031780174974433748064925238137931390709563022091059551967729206687474570866167392471958982631175716272198582122606176486052022779583352926598766452686988706306214200657585841097674723636679032554622310825046396807538044366588735721363674320527685574068976111325725794635656476542899051351808649107079810920353709203927879676749958963126295589358068630212291880542066913929848971504329172784487029663391619283984909888476533156755297107671474931588495851041415645465403779038575222876908642093524771681764260660547648502861154853260958990488053040457749922382998165063780319292014344333961945970090616160118640376348623382093154864006876162978105403875779607087798996230485143260201150052391221467633477755135704432233027029660378809205381577345141375760282672452836292626099257942195036209984071082167182499289841170034147469647327816011012471987576617068057720200825401774272686843612844981485882864780671890837405203991470934271029706221387387915850522266441034566389399212667163181841591159061768201766230162988543283841755779299202123770091303108365389782098853850240634352552327202381942323858329362961545602678581051007392405014347726152021906379903245340650402364928720203642768993787653509209836690750634792348085662976282818099296471749120146343270983787373122098032849271833152274471371578058130514521445763801350005605391222140734809006497942674222428967096579686620934424619910073057219175984611203857135329358707410031304601556800513644825466404671469051591050468532274346396487550732150900632917384383353075119543600394101694186552780945066338929397590209358751341708760363901305050360253886998294614332713686046828772516050998607922305583193127951339000743525084153184167647114728985205465517328206464345226044283138200208802605491835112770171325018581541769777660439598723103909211032172573695110924225164371926002426279944585418075943704454659866101675564955037413955322896647689904486619602651876575328952787044309322335238713137112156081417005707409084126760028928379180829152049340426335701757046433321060579432365282496202130265234349402327345032292662951768549481993650591708701436709819573861375359909257386396051383391601081766338158299997504517131123380335704209542368141257274714879702717104951466561314222196765264356740045926596557911665775473196994406110989490897456929639789180445588727038672069833016009669507775126869176717610832246039572883855731013975075059500155071344502059391652624792103160501171341544011063290546079574882393787704216860745118354806469062678633557329523189034085858991152133882820531836589642118639867734483798479255729576544485523182271214967711523738527533435615929155786028260178939961725738726012271730784462003042983896499739361215694262307042294461789705814170101344472717714046974571852507740605607586835893644469562391306173670595010213992831132189150891557581798949496950349959541855844140810629216656770514770827195198640200219984560676447835861234233957397024106574956600651371345161800951498900441990371343824287068013303931906020251509048355982600439945611608946448381758681256360607240225407594672472863430116192292878059507878764801659267435349890289246643731090418767836128876975561608730034240314445268443147734678465567746878805351279501085590268043337106958275934852681618211933199988024784932274657424870143578479106197796182555596686539974335197426988441374593375373342153611657533099524126872602662786832440775694216520631847648565277538941517538409009159936915977645343487916772802152821464480272922272295149380232924617807293165783959869530664006540045120537535885246382440988282269979667701543242662316329383084213840004457112424840150687620146863622583369275058407979875869481290889644873762678066848502721517436431568315381870909277611556322515976368150028514118931360002322183368144343851585524846872093498233282390891260301617271105073199148065208610295422983633007093674402227097280872631351834292587055130147742237678973947721871945217904074196587986712624932048240948072167391690935575983785072561049969673060318325320304674643793485077879888246951622025169502949513331289494018088586001026994077623381852180443001717283150862493298252555916916553454817753878127723025291920182797187031337357333187494468428367291454914015907032549707080379699316777976626049269459601198169408882297877087577136730710610173218936811494748405333258475129750207732468978232935002044233938574433983144071094658758790178904001660340294478265224087325901997854293840678195127390243198916359033940155919626481681754348587191908578853145342639704275693899589088596032417887869741950076556992992200783625412850089843659252454946559121961709718076983765965177329265079437304050215006574363040082087899535750208047538009493991368250911779050117891619054983701486714689266981895103206971983001020362312077228724539093308565070783291508183740743935872221673016120764168720994732610992148408346285557586583989375188542815402933245001585362611148674931552008470667804155166328617483097227360338363354547846501957699768234182837579546866026080624912802265415357886051250656481688183998836688786383017193049059158778913451932419798746063211155118830381093811763808955725599665337635508135215721585478697150287925263948195250634699100318269994952780184790397897615639389338649682285963807058250949278639054354978744141257108069218291724103973975833967086611533407664613463668484592807320758970674709929000075411682096240570045948131605109033317712152297270128073915971865515259873877875269531497329689568992690051127961341497524403050241163299072718769279934770862678751739354614597923327466362956425124077347333742833954995402615987974814824922067443641910064656226400646545271569235607473523825987265491178056596167244354914088260373297888419287280490706525324615363094200932615302387950841854254754527230662002252630403429479104483662859188682083951597382235844916524257379867897040571492780138405480629289968224757740953656037768160904985421380438233356815927101571831505548646691918613737068730126990503984857404710603811216779118484136844504053878485025674104449416353817362270401093599921264089046640031658384200003298880658248440883876105028258834978559405485287588990581773940344179411938092045426916847142679558716261948386224041538967722736815219061919331542606874326147782193008363416403153925926399960006869210315654508841158927505368741326418432585332322489358527881259249559875739106522719312014690248043789705463375422431613646112595740515670858017219517142876341564360734390907512685970106679074362119088560673225262497078970807021708378829371425217468427381688105515904436963206187620420247562895675029196829485167319064821010271538307862233167561318447126359667618362520825650300266061203799793431518197364217065479285821731082718622262234654195216808065053289802220829162418991319356987032316990446655754945345564784456130771817438558449456429826531180661979571442845060001871060870477504933920228767743988845141995263231936295819532938129094598584817649308952645047021351929413194737727336117066918128037838266150033245333495767324287419156058572591637398772437703528014122301921252118603494336195412874227395681737021593118738725777956123276332556228461588044220560749853293003627220726742912817092691674210619436642672144021264853336817519091687435735846450294809114692770443174580392669169697520551817633847992873731847459325140339055686377989508578456063748180172795181445615570106543311386817467910169836747182002908575995333665370067549258316191782246887374864768496776901028652797037951876738419758705080855785972630415000413594139288658109166495138686570540724823038423725254725486811867886730126105720692651146619434280102065588044460596070605432240224723156429294736320273602156442423148984268239663133575837327821965515378266522490082027586318803375857450059501617732799141253861759102114978016164504487072102889377919832306946050221749926672820735860682993927560738262737045744725986260729321046679486759246085687885671071409113287135836323465846196630471227210565122834693685981486675578790491927471157035071977607633547329095135974116679273804661475562759492392081006036248228015836038669114233521939325807782456834786024956244464776494360191508624953671419960335936667741076614737184313225195817887367875056394176757676976864447460917671261470226816596351884912564538600645348565680034811632168181735482668319994251913774538835358711932462350705691566782574522184253629685312078440722206014552460789499964929664422624584890592492362581725265279218965112729947184860414743932097403301109668144378942616151041539546682048159958270849498936855925454172879991988152939667348066834067118717104078203417970818910846034051382952242591675638319284110388108260152033314862927103006837594169365115575964596231705669198609503156476287686775008812795604861449869606411425177272462734532258855189312581377564946534003614849216370157785540676891907158519772704875117862136129110642676024061620276923273792979872857940900482583945293589345781210420023846643865793792141403076591596640844439706108260385066093267602982917977745577411770714001509330417057646756193986856741364070540145050345285355814401366366347099290051323079119554764205846180298541640558142389316716572726857893967118596852756777866379496892635526851667464851998103813377382407859567743269213458089672336313038485889040601661426759086559376932265824727308561852053905897193411959448069689561576158378894986726857067855562920391381368290231087624667473289782172979415188785129711770479506031149691225840964687173763955467903558861995582701351238029410990802653650924131401096102487511159455840623797986879514594386339225846802167390933597424155132233564047013159195646339989624858501128435449143510881141471800429270506916745063503388186015775015392869426289319237202684067253347704581883815330552492828715920372035111974552947330706913156270016175718251365019473901993042642771143955542945671779110094824748818116704859298887060358590847831911838815462058667685093675101510745737538418259450328827836898822103139121682922627810241117244193364426132443743683979281067429249759891667024104696672090160640178167379499669586101022417446544602895467108479026071324594013708468083645299793281120637940099457487053407267938926158485980700710267669685332258540074529595080097239635783810355334044045557701302657227621716620385883356274001280791233459521077527554348775387019756525431646156857418263154937123515027417425155141313540393626642118622327404296983073946755304747802942461996609157609381805591875721510248349696199887184904377835300717431752273464891816983515590137987481445587764563677118260980692068805625794870900243206389665911044130097084411036850437527817713741692142810748263314640916335527530535056478093998942711313762229820499889994751871894623237234501632402203427950619747375897569652335339042427448445509363203027587527154736531391808059144743852728344623702314593180631350183982253219468879464688823307305879128934771188893900231875225409284264122320716024258843690700517501679078524036841551123766149917130979713196310725566759490409444839144632444503029878319545244281841423581735501022583051465367374499215166841088321478553005922486155792549660476161942180937707487815125322292157480812112521115211165163582966370103365958833955644133037666745771012437244322183248284363927778790132591568267041497973018888185093392983452152668725465656273408678470082969469770105746430002342154039185728908568165425265798479631329343968384920210509936607099594502101833742088902562419310451384583004467602342726993398681024311636852332015621555160351997919841950747078060758967929511280723888675505032574676890150443644722191239975079934835531686295417143252867803609133283317708412145973833773134847345532871389520799990659494879641607939888284779508772326768904472867585003865118023771635604457486309600062962145303172505539575732686472965688188550991295151279121940268441307121839604933816932177409125394706554916298292159588924660940211224016559111375114807109900886311446275963465835767007003648112103999364667722397342034572730826347578240110171379168165059845526898945496947499614763807031582582911897561780074725997426936741537959130957675643272378924095000052248186091029749884700300595500704451401175608744461912095218113343770449813822829695785472442034416888825785097477936416446476914053143160901252803445877076576753562745033206968585734655671593234722044065728515900456272875098937881441863879276552381183060332690652285786032974026011595464735582592710597965582458046237795583576848767768533214147372841140102195760223019696724822708198535841975113266273645899577465398673154648673316774134396108426920888754149462291303497905336204177575132184640167279653221436630522200459293614577828534005132212346025976551081278971931760774250387354064300036085660932342098171809962491870256255922036283323757453363956999550192465890721695830699387712613942097578586115566012071266213858274327803647978054909582241591181455089663607543455718120554419902473002411711419287705206104012457163965889754981942808153432570326808122340739576943016787650966563937344435771316102993274943883608968045740745507013969961396901933026616177589871067484036646227420279795134960295690084684095565275504092996725742679950012616920691424082359803148000627078135765123819754250674593146867229722410768853627275877622137021786919761658040105557909835291604132055201852197605163565484956421735843537222731373234303063897769971750050220395119278824365519512362221602685292231775906817192186792373195742731535237729444091899230206942801581753432413102031568924219759415367480735477264792912156939006059430717082938252663693305767352230640521373417822312368570793301728656401559145053048602901322533795489042029319724204142527181404352451525128922343295323486583613345647915827523594300218516178130588430291922589489516555136611136416058944995129203003338320917491797929984877371410825360423706492833000115496146242415041468302054767737781375498046700826533930928485735730046494465804556935544223536920268445702648817826480095917326216221398910662764363510887992638753877832696095022272737831322055730099247342462795514323511588062585688494418554275717514234738501853674338072075102380017597625756211736424436414119799004745876485601716913538183752998715477486201227557804645094319025294575736050081010012965177968099354199400564830098792714985560515808866984096479166403989782629914455761350989056546004217161627613251966604076766926058435532135853297515980901291317292416878627262021161935236451315749866852833875929145258579254809568746016571139740011833463147881852301075575453811511677036918089288724854726072964306774931395863993283364404324505672054222664120014771527295099043814674922590701231629236239164169316118329138714042240284323809292863143812166314147581357882585317388257509175480352270911231421890072536180192235455658140356054019946508201263963845073945801564532783506440720171643222378260542082730968914735090187535212229017410623229292733538072034429357148960961834772115793724571043752043014019465732004171915334730711081061563312727859530816709373151955025994073283957059978073100248306332754790741255810888678538061975971533016565508333260664508875859533139209149453794194698888754770279053030820287313685528867908743621747377497010470501286309226490384468183317925019601111780313069108132215175802392682608998252828597197002627209864194967387987949792018964575831013206213757317431103005851863716547536317193553168384892609087015707607126118231565151674912061819371889473166782247606419907171241608080016819700862492039838757690053509396358222024365979082865129170303537771362986592466271927640041679545591052009687941209820906918363362721951757472015876222021420903329746038191965873326680636628368628739322841482024379069338121956680273909838647235459013518842353276267506857740523463495184203239145871013250894649221897037740159929587978492064501428046034712390660736976736867134781128566590738750466825294206034464998857734583325872594041425796141539948707644728100600272118453073577316344071184321327336683788771196362723008645131488724038072284084715641070368158596938631637641616533987904298618263748713967964238942957828026940795291401905995892366997421283698977421939763039599989586882958689339351048956918971281856090037040688227341127170129289953359282667020640424329740444633907922206450783585444773419408653826311863780813152466213264352647049908641977592654556038196887119911142098327388072926898977448951825996389855402609228436420061370741631877455422685191559365161551835665525781367324497690151133103861804871005644894048246943163749653753419514677993302474897998046031461965647538093812180285136785606536744428065505804353860508401588469246275187725050802996277656231196151693250744651273002941188815666186605823857713041466452077184061965735633179960789815957402829619503278789236095065944336996872968398172570074556131415494182749428919255217973040852899948256349267803969761260034983989570816576899302520924224847695840903687475972853720530186141105502618252740237239327330449503606978537775062411973267679415965953812450872780006433058327503312772542545392923738341476730194937391184538106126997307911211895283900582807971519012166937409751994507325476186481978351881178851121858715404957629754049074026995457731567609402087555634807559767583143258846261070392666677311648080128379138838981263994590761704567214825857386280025830764758751588426375540872637128715575270244792500195285466829656836846384400561112960159442363713710819576181935784937582360644478091930383390659459075628730283523095526052561489964965243681965382515047316248765404358657923400435573262211658405215819509783258901341150456842944774504373465666478158771992751485522318427923867986009177691559544818448503556731096404098842988584941497297251271512946335339550872337990486580167729303044583423169150126422536153835371571968096054462376021302887378418330469998023601905776464306089635985095418765678037975786033163059202872033219234077674404428153570575681117397684991533291369355633531534294560675660375713727939648183594109522561344495381293495175342432244670771251468253872815799241552966421595107585255509525439897351406723745327564774117243706613869751666141723389634043489573320976852328431258223610306971548386444353544058465761671396116851462201261088862906902173618470167464284658672380231654071214050223308803084286972790663201147841803121213650144143493280983140345228955437247048079195767911968185139557089121427411575732770404450315759506584974933807618474704741252198844277412310378233197098073343045997561729782244984725274633588277446264387847202170479750451837908208085264380956693868905795872249708403039730476912142204626270704199575928221828855477751748758705691565371564647472655404258422306445977534814011440457148062673180517014980868132254474010742437229562921284119027612203042477303138943010756139261952018723383977971966912501491522600415837082543142560081255767296857991159881377795060663414263049139429636635111304272381810698235240427590946305309927813537034650211182167208273224135405315292947787990298513065107409464058737769622188786504702030502888526255793638525942271488124125874502309709442238324509252299375978886794901819078758809637676468697737229592403885794745233400417439449738396902454106285060267297734614767541242022979414701912652951006930712978251218428157912463084485052563012947259979416198975117993168023437992403771920972684998391337931189089514226903299278542472705983279044355581560200453350517887770519675203299695258954442440739505362415381209282507865468435300781095399846078104266015953389718980653994604102430232598308213274960086815507233531841152016549426926704459577089812664636873364764044784607186972310072478182308475215008558766037681329968999923982826462246042196181370560860556161990342876800469425992761893463041182824942990342948097024332437789609545602358025856662247240332420178267006104163349796723916170782742198766874052792304701340080407668298029167133380262489427830155216288608426152386206526230900720380533812326540799018852149802690105206281243921603314885437154467759952560843479219515352480511275659273016409623638838570527710289863864909626585629053307213845199697471200353504200141963575465432835321258989475925874738811047090977664282708690565522081886989955923550693193742154474621886930101971541286056379109646542299462633958959458740709737210339151264948828742342921453509271601098103085752364021125442702043792490813638081478143785859804420752460693652887323867319277569367562377006651273604379773964329320357168692757161502477482766912857381162029012031944552340424174264292538859889160458043034344777405012157134004505092055560786378607587908039595392046224624236805263091682314956176187874798903184357670668775079379127151492320527015705743525068482612371479806039825259415601414597891924639522162046758582577349057041997579427661160730428835233497925066971961269502524631439765023596547278077945601659282904751194956648190850472207204333766429191433845705811071272206170429947576381642525958003216518264323734661584816876428494856515870490334507559291744255419662761358232921632097812122180879822083179843393445051234232511885154183197536246888461307535934237450308874121062514620924452608714131411253490554345114470594263661659279682775751462973912102446336182474778095682864658173525166892154051123946963013618980965069913435891921319725530977498920657509757820345155039211372675856340803982352210023616537987654535840459978838700201281147302034937539385780574180540282811695464253208057325735059817814897513693767338795614310378529854363546626913103414828785220289005382174062991305517796015016770988909895190758119461910316207457538012813172953087626265820496872403374811813092060885350456797347807534410266284698927122133619231115017308199559015114264526825773659254563793913061664071615542689193082025195899425404227105476036618023251366158455627191007140800698192586559669873366576965379921757824038423167707793355494247722092564553505844401980531545305790167062059564778849153307326830263024989558059606090506796053078771242432618423721227611405361645423881259598896269901754322799769860219446289460770076053565433886220763421431908350201006294004119209734728641338681094784970344025395195228851781344781516341989725336537027818565713845181913335364627578163297276712461742702799092828124301086254215565605753260845226347519831613296296030012816626959622537964243093426299721295710405694546673358486028709437600631832165247972789192806504129914815276522940739716772301012799404966343569449937207187815909493915492983758128955878331134434066539932790594307651742042196455463885065505356431702046979402226941279423124237373441561907689915571328506018170267788133632109066235532335125255224237627583537858622363361977162683566819818700748653127604781007286689108194087480739603046841723569744542465899758798598757540258618872827154150547870423348073503391196783583421285061119270493521120791494996326619036171454728496394126346520479495073720544287850598407426905938533141639963257633874494756456980714087874649378086080858124286202887507352440615318285709592790370348958773891505042844803853558740434201952414327594161334341765484957431113318531086302705000708940049196326201383034861628931469164541542952666632562423490456475242639383448757144329620659591678752733908066224892496953973957833109302290382291141047258368097650031790982264762572010921638967707256852378247230813759111578546639640526683633931459971754509620872175484741945511792063010179180940411411892330827584312311645727667361665109109781257941894542090457851654553821360519869393375812861157061798248700298905743518281849218025184035968614815792590567969580728692140530719793577098319297089623437981730124042973900914393908045150697703847323063047947606709950977589262051575913522709414752211681497816775672015173562462175943573416010555709222793492233509877091237902114491449033834852682832607143236954483387373806021351182583665589795148229836857527595944392884814933924307263094297420008244520816406144943956557610842126789735371696187534158630790384294074333703098391786321724668899016968096803145843229160659417356639913980749073706176092101180214668365249910993425858942370915748667058972789915423873194977518385693636321932945046816437898052626151274550098316031254733842461171197661863687043579891947342768306947507692824717448969111821214300702032335171162357435524228146646200184751508697533594287522578838260013542391856317506704360923327955212868462939449347822828925282757043804095901504566453183334290957505221725771190515357666635693758057679447215589835437640196582774981117392954616642180678559691790879588589911583166256708555758787783280000245380701360435426587820161781895498563182634296417078761043834841139273204779233721228298462817727352151093959354245324448415151586161860144642195120245393608511402165825275041725402661169799086873683365571457853293235984595570081611915197137161128237852777666206593666806207544933160868989030597105027438167024770181456174850692230173606870855932004697427783770411232050058010157923107980801171552077629930757011495083491653749148957138226812818911423912356670752174844926792809834446116155847784693311132263760980457313521269972738366112234571290545593460517917312009669644625175525166635953473240194053938975451818695259707822747317757866431855941227041738289177252414375463184231830386732550162013043683295045203160324011883070990019265527443310143115510108100977600531893637423483660072324653734055570874107482821819439801969514556659215352612408519316890872756085558524999346331080012984195453678452183233885313383130737542711055370967390149460262428626836405326047141993546035383651090106552896344104190767408503358581531983122190468045838819535560800645607097958400659286459158144237840300004705630581706232374874174519742642137504024582817601921875893717954735517002199061273112245157184905819912269256568189209010294800697154793920895527794431087727868689356392681771361894886914187742894524781112727715843503595930382991972010463048084343018672508390039149237257669617493758896370996827702385158159995729893806559258618903741639020286886452590349558412659918183278440095386901602884689410478814789578208823505890625433262375378801982512567812476276152859435342308069949286033486350185181910721369561541880199813849237097814213335245885063254038989742915211587905963366151777265180055024891190507221668409633513717925173257101963982445123534275936124176983657766329034824671174164680146863583331138041140332075517738023815428670507004711622179880424229313295800047787646454973629544136644655246159474493429373054819720400796565604214085740734788596371601380148250529407515283475096023389325050449874067223528328487124091287463668901199299451509291743433310919551950065056621006732197437705607954709936328030270992222018956039144072897417958587394729430025411720343359376780138716408824535534753237309687409970750030713216518219232901985463000700676539149656142526219578712157514182802248366406631283722965999504931839263334948995421795457601720873275826057065208451041668778623784762851934541334142124052972278175711320355091606018894195692760939756407608458546700117794803242435084254332571198082251203861906462874067265351611353950019822252317486988894605602289281303940701962001015014855413041774272403250224999667443978676669036998259484559149698611910090977079955819213425503950423363620901203208481614110713968157560638517103122871505172733085843053456254219852276395954331939559109907109659286986023206659379952198619245950755376679179004163278365285069333318526263000146755049727518702707028613954984757126275746564135977750271710987712240236926705951289162349405317209882584414458961775792856550982860049635491248889091317598197851381823966503605368068730009403496055941203842606950910924577679369314111442653934238267917437063076530266253124621622732641114754823561217505569208265268793729000287702956725393797611298567427706208103122770260866369908629035196739991706402505611348768705030368848265609866773153202105113522285381269011776934718732393038956551126077455352438208964797478373872007559650990817627151991785134490494534205852722431584402984431455330644645607782828684478999215721168575706365099550422555380917495789668870941000718909673926624523393532322495474416937936490058084462839619091224124720522174468294972908465331424822614595163759892222580439209489881696723247153061022689729932211477267054753016600310575854606506422862983921412097333950601717249428763071467198346599824809562160657443667378867895861720917949295510479251723614133555040831992210453112958007569797603853326222831633789558800563426027867064719815058879915903432279344881078332770718912774502152497213608118828141482293263512012644501125264097462213175132981992695129348618143438734409016161641355038430448260794864031092017699733257255134381948572944381077759500730007144112747835130720520038611526660890338254652656224465633733229306173588263725802728022669707355569099448176922952122228212917447716039704490891846912826843346137777960571885262633706378460240548670049878999914310766759437216434239128499118570242028931591778660954517222527021568425491935046289851715667256580302205088581725465857094096180724578709409529743279335558560931543609891169719386298974765785097464046850613812446260827911426693121888876095026869306153346463545968348630430075728804172264102279664261445137271754930353295362145018801565366519442769788560858053734926878000356381892124831119218592278779323522723683654762529337818630621652089867632704476523009352338187283447382565485997098311965015375403579819373549119734588409461499720544560519240760588839544393163709213831785333332988143920709162453324349716368390696836868864333351982509574297669048245954278289210325907479116524310557543796725956645150957914599427750993446919834970097741795331645757472549724783353581028464914857228561032081249338022496247795017381510413537855064717707760275960045890359129909988950024832245774357650702557197137798341631836544460981510710641076640920573430948657891838888413754404795950224641777997873375683977567543845835839879278278651800341940193298739210035193483669846800570250697950217143373926603821290846896951147409583193623559185592879883373721672140444274564405308576968301765958342065737221306420966866419030600697257583423762773873624722332555248883852046236514647656701564245828254431933754920844257847351160074224542099967400370689641479887373525249136155854707339499043453979578915529918948758018396155818677896324863606502085114660099275243750088071161713623411675091998965182644945942264091432538066702828203007428118402685892679745365544112275660347375543661365702437433826709952367934675461216091278016800635599003019819523470041479593302952656010352969909175915049672161755118286725555794055934282334710503727305676479208253555004927682052315647324491208918110711672193711027271550904855614415073038174222357684456212601808258205962953607553509850850055437619198580873073722814702790584835339864183064719268512526607170768682808502868194164257655503611852838181564443074218045028562486621828278497000139218709762099691062598432016852073336261392452268081905556338666704086018242636978613380788879159453799531805566715111099139255864394093154701341410306853993564683072786745397611108970448839321431615634395518298746789349916346712529847111443216976832782845405074734537524872095869164574570307076261717080477541964981025235948874588202672359782119759607774422997905133447563194831795988105421877528558440963491369947135725990087171000733543091061631492463411355917211818018188023833631867939175067043404640962863991148801638211130108445810211408230091183492708889242552520013859768439457317514486715451975287915707508435524159317445299519880651380725100635234321054181669649237037029685919170906704413930466897185865140487459220294037548593122962581774473371414521943057869382755874551503875993423098153291079501552085337178281485377509582020395243248235616185696794646452359580541969584898492687939470949445246495601030935615048048673450988881473694640372583176435434197405833744907619830761285809123208990865840057931409840253679909919635887827667410803112285500806784522673566905890828657747234635402617344331588336739628265624515192425783412811567290250508427677050850810658677262298598925852600785213911765956834217347890839624414690256428751354444158321504427575674792162895412536759009597724798220603983337725925484466674630286875240574454881653628369070473927805755026632524512360299411201912519515678890896386588352005057350625071162659469017542342428171832103238869150132100949652697827891483826322510495805863930757902043131162260388191230758050289529794011446031091878517520346463137655751293087527052352517112876451056661833979089440239196575951106824630890386061190204574853183417908472898434806922973462686151596115289306909571777749505524612045093238629736500767353132744264238918494030569338182527915981817812226028906456235117125557373914215388023661425162628157221816582837286440699789693521541938586300159647878857807382968674533509286031195943496915755561049066086333780365218450764443714016554003204162916991069642306761822355518079260911847439298922970175266126849362679653725208339114209686642207682073514406764841944997100201505145340555492897031877468038611790797778967157485215147188978448667180706543247924289925501742810115924717064916698978409392649521150563152725827272959093847944982799907620956554437468824134689120086334989240825432914246158539545868122106429302825172704220466351344642487902669273800515403823118150505552490362857077468132334903294564409471435484801670102811619084710785401918744951734794164914246329423425284632471081028631470298151287417217586577345661736201952900069250447845037619339328207729919046646459143288745797069901283358156134841999923893729520833826591288480339040978457054204844913708354789373169752265747102299513995847642948282593247168836450063337113461725425695955309067324403500793039127670668044185855373823505752227965337022928078896333510567161992889690191760019070395014467905658888878348291106375733951138054808519536221688095581645231971867829045074702159568649703024777651058294363949745171383029483858123039872461148767470638466448906704496256086433052825500721973431202204837517220213339970077255471155370033067191801479545615121342284920549053707230804697011384403735069681023521572715399612292665791697824543632564289456257033194485528542279571928832048400475786000018555213811925899702742522915872960853250179929484028021842521462139423487575386599591699957119517884294114344495176252978537555171214334300732224885890701310694460770769391071604187281779931028521880082670335396793814841806860480952337081589352167382332755292028958944212575475375939383348784808752946162247225075178023639619502600452960761618505439019613312841260281553955182389643238738674525873964577259992021503488544856612816384920971144600694244399409638443162555045777226200670730758027043500693225137166563954746675823063866266737602685960715425137529580112540811445606944364482370269540589975390226218937893904162790423400095216487949562134777655477547844731440287962298079963218804161178779543058941827969725219716356401157602763773673987161624938336419817264042742753604679871479337957862444843417451821053384434630033924342467587291683977334787471930416786910791639750398519816787896427761078718589315418085432740472905560398507006137986387681813104066840652484414596475806942986051927631162906156682456556089178227754233843717006977353320144108677098026264289065898862728847112017380986963321395544106604532818501010384180040695042322342740004545323203663249063513204680205977554259816330523929291316402660222090605788515478588091838339714636724644461231221885956660862605946539960617149414065849125332673233241320687273995760781616929678672833067607828750433845692945762196179628884402511713225656272798768038626394290844577329055793703375783805043768656150796879206823636533540176339803041291050667824303442775318185830521749002282133708059042124505341401553936662220251978262514158447762261258998550836505816826719908187439741155175319791197016057166109732926471126067994587693515486817427932325167427384012913793694554927655166164053898018071726560860273082228064252319054209185878892861515581213419787281505399683336925909656125972047429036884358172450896516280794266505503270675014880617261832993794291705677985468787302987744665242395020784672300777346465462520344730070778591128715382211362835248174319287549135486818218096082545880179758220039778565999772394674540190193022716190640459924356576020050730354130564036060411695423592908414682444742409651705806001996612814156040057409534874630816775362747845845078999197615227358647514252404189978756112653044387786607905457559480410256657363103776051070715052613183955895879023020290865469638798113588592385657145731384592563507051259701740362900454333893774769194883204785286852268586176746772080570925022853839944741432089716837064815944005518325813046363323762448662801117786871705200639737461953833372861185286854828814675829482167746078591526563522652207703962916235902475205968221231319006579364307872000427704270619344946829008892640712921841305139542700943540968878672506010972204927680008753668910320491985127712182350053005143165973311168369399037374216469325081007863909143170118298379558731501287506001596407061959377671999320772322100671345597879500700339485090166066858081391716053502674030854155824840565845681088079319174624017869508432635061219404842798193295297560891065725081436211742521378414524996494812400162353531559217456642764354777534180403250027674756852988108632891429686893309126022153120861668265863533683624678001473746722577722090808687752128448469573800470400340046998644633591504689480095079974368137595967900867817924269567837703987392562260784140933257706527920594574613260769011328788649344442448523761463655158462153645523899083883132483656562560328614583356355574840546228481862474660008862549951961376475764315210412942476056961299311393174276261993161237865576904318056685260810294971924990496446557709134992342973944073542002640535300035258223605301479153327000135517875526411953791686561179337780447858563678571940099502713786718376093461688171223275364308725404980728725157467279083359042035496580001115551004678124971281327540651851156026705734000304030084671914517273329056814888192774294974360672447471087784293707500929682551750079147852510668930392025933224084613408514815090675089180205745826956582942854741549045512802363370490842288769350362660716759582094287759597834694565084885673804951964007910732798777870992780831583640962729340890488824964223746034132691716547953523630771157273216784003427234393910162717066873119101724807810392200080882904749666743694340415005331656354196348496699121533723821899526495117869960838548148505811703694259563088719638606253184023716425067769011260788946162257424704349150702937211855837401945989369549406182194452719255297839250204258970845156145248326865483472110550273654012765976520795073278420806751949462723335333939968818610675360119913312852511407091430042189860043763888442784967407186920567628035783828831337897934593087567010633135122663734248836054003772983442871322643590209110505617143355586347626708063939207112918590004736715842511694594646785793168693165703663876000510145877065479753137141878752458785339540136995093598782555963301931813334490105266982195612571625630975295448253782540525169534134368744277800270315018377609592264828898729765916045547064744154234765353164348057612291217253383543032932813613172804956482633942587022271811319814994346893276851503480337221651628382405484546849651734544894543306223971452843511355920959429939788997159898403085281509181185782529216517600634219606081047955447687762689841391703567609399204131134264724606818575517988808229447453414393062349394055844453287219835118585374887685213369201783734113945191155122674113371941922493224356437426400658613487822382031037191103631977323716673342962494233714088782284205294180120865039303812632798816011815667488453881131764583371239475063558966936383871658557580876794522369178026452933388430193949689077126706340630877011048474065041250124982901043495232626061866496764454542835777286717776249386949526145819895557897881807818466197935651254221262390601472448992302022129824346266288731894545930712024936683086144773823243036590811621417048963892711585275313058787397876432053043113508380857714734411894012096114287458112770924326959001288461844531981913632215906337575327116503577687479679491656608885896602880563862174323131347161975386792934475989700792135243952824121411268793303881480869208034149846387164065251464694835471075706938083246938242614482043631573550281451304279575207159153088104983004056838656337202014042226287213234305167565103810709532507282340632832634517385914233239065055689596993997283695816916643972362851326586006350069684662615476072393933813960739560695004281423732938602621365225396383082293957167117918955262244495421221728502763642288461060785224340477114724654354301150189686055330803908911635398495819708946646328459902223853718030940844999150174612852702174496072532206475672417509871155554471582528108873891543269347730589374583078420736447280463889661459617556763740289935536763961934924339150912335468118250646285707825417336224402881230810652588525693813282851589919766072263298003874286473981441384008060807778298288870315033339352249744760629695620177557796367319250916943514334226494977564733064891357652569828134372979782050255465482162356009278339969903456587710969821879002431267868758973743273464336911995344817607361440003606736365572643276242120418552013351331555432679402483471413191217242084929748205814546858091876704610464668880293947593581662916115012957943029805167476932088026975687075584007999448439052342630300822185004671953238989729478161349618548104278266338326560883035313436104248025318835178572198696989577757906437442095395008018676089214120787735699897103670399559972767613907328571762318530306144953593883531013297179108563988531798128562425969512014817199786100338974667405691772284541915814316810142846236645736184648362717558367432688174514836324729899087113820269245293155514283403607375529670038311336643911074435160416385873212312673689653823067197573746894859489750872349063583746253449512257579098526702000401302633501805617110020505428341900837342323439729002735948232632444293515276579150423867956720107702169259826600564447797037320084832467835320040022563079202715965123856744122191751679571253664187589250284196812794702992105211285431528365611219461788287657035431050037556347006602369689813916980771635252425565327129728679855886071371423173846016340534230965083422605346617247573887317703503961634562148402578633959017694476429809628228556674872862049546057193257564977823385414337512201094127989631829579393326188642740809436546728151799222111810814002161533802351039596675534050002825278272064790166394188705844153477960159141641468837268144846076314110500706109856305084009474338532467484869535688503606772732293825442803591411117847112760076121381585175961440027649546514007367045661897597328320214214129089522874440999948343170381583967488194333017830727842230353776012169186445520539653413131265967266218989319497499953132886549363431958136791622810659215140336817266944369763423767006605910208895000702590794053426320215810698335329493476040349021116050678208436849800525469665384454526445682930328109523793896318310485660370391408400332361121660288228122927002140687526178921395929549415807066049029700813386441743519950301071342821316572545504502146841280618724529316277298672964906354760284835525057778474874492571700853764268574498798749493117994901754514769819972480558044338052921762549708621366824613407556551690310680312758249128753331737551747047730438791476048391638939746280710775357638796854356724245579414853717093979700081467831293888058032088407138797667765318572298082179846377332709213392703889821165193138926515282719118377062627243183917058957761194985610954334251843480760004809443755953453849729863699179599861527235465698726066831487873892841867899224734568911837673606026752745631093197961805228479635423089792385420000244818758214682788807663624958098465896898759107719599638576157305999126555835718770061983965800009909632429629553931364841840009554529072478494288369460585271318154188661688341654396361181075109597389425062170836177171566921100289477135738448420661781768810768503019638083068815107007575370505757719789290068117109145886247628543550664741546488052794863877267277662684483021429852263268780769999596968926244717650634547147905165530360033994678720668548903749508436551361310850661947482569764742721600125633502976806952899247187590348521814822864252171720061397030691803491172902078516038359089376725026866943147018838216037386811720843138210385286591812745228359387676208207760500983090875813934894119386371537688298792976091757160182816408214087079907911604545915663465575178830620089110234210341740341065655613204846223321015443945528854210469374834987349420769489091036142834276532291485850353875010075035951763417897716873847358451112973574822222930791341688762080843530081675751213849575551118662013973712724202789798349284188374403196283909306573898986413186895170934048660748251464713009637321229620679701236610930247253197382522785953794306586583251290963708560995016281562143470927273173255908759120635586000696979264761720345008439814227320639521010242745643373807617414510236956063074550640819588787396852803762424119761012221621739760402937372582715960466912457939668890576479386447965864906277111070508281004345738659010156634085231637582365748428290254058856973638218250226466154243385312394195402223318009961309687668118919224294642269469178539207381616746416637696124891810008009875095072974339743108156832256231418646680976389663456610773320972693698162693010473479122482434204281653238443151782268768962851703562220003076282118848979370876973197868633434635602744572631688452257097687044838479574163352442727528686601704931308161527338255134157954572237612170615833625856178141889957510182752612898377733418272618974474634006345102635208999629788611410779890987205837708654479954279605782543599789057428134586016686624154866104568009490409436000696223612155465883851562639489158674922729287115797535047883499587691219962619060883859951455637556831861149625613080936137981360201996693087876806033304029754491606235624731239299810106933394538913358254700792997784916869364345608839015178489853146585136804333242455403248162559885509604308692587757296437111163064722144196409125374665426973288599441605307533148206843827288071904554749251861456034604341732722290657041653411180337044378932529274297387408000310246242503892686956263426888928225293518322687377311026682145663090148310127565726815728584783248779054790461896691336869103671487572841856352769294447765614880303626901141910223873981643796141529250286248185348127784797261731015160461394008002658722216990706667518211897807619846098287877059643355112482101045983392200013775505895788664386994143738988667402410263563393482119673326659701798740681435159195629051273746325565128747814766639678278619453152342589608156980624610384018787936979390940619371095312988970902980864963030471580959082711032548625851968521524232041753026473890403302909504704585205296302637856935228757571778475039577051903827163266969524273451364213617136946266233490532290772708015319363202370749596399691875577027767526966614511493085761291450930257888699553430086935933108391577486275228368966266902738551916680910927920031227355225341714362152866018191634863778185823750496202856974243189854071243952361451540559373408487697941210506534808151640976517027610648278728622515881867025103394023148425794821104141879348251319602781339615094549075237736656101148394101802567441327890328057199440077019670039197730762738633721562386246456388510323048345247893902473235861189001407753768777255076784499674597587466563312306775131122827308772708503653372185261750921899204381386261471761872507514592522449106218476924153980423981784413356312637878130848328552336280088955614511162207682244291143424401780801150661206858894481049513659048734782971751164094508404048524931063984960996025446867660230067598532577974677224146867935221996742003916749090739518648240422455701147506905854559372753151428004875014764046078819825764785157773943137163146339440149592973052187302812266476412266591957041651549923028458893404109421659635219474327143363623215137796647161300928244103024653131784381316276242040363908579617992306314731998963502563891989583501155506067588319084075852768003887046132605089505829772760314914665570332605105262319094951173961668182924439949415372104007751917877125948766328998880588497703889217456950733515853996871743082074148155630681758299444208277212935575857998731000797968396719049363230758887988624742715679219268307851536873143280224448726600986101667648310891477482472316480087983788922890206317197568184816481020847880904269838493328194870256542730453686871045643869825063331188015464662855372722642247335513070823075739541368738572929865253418230848008119356167505648085277122604178657385020805682304737191493601184409936525128071420008924697299257731890751688122667897656456664822257948905563721664167093250826801816028950681017437446130204456469175130676175529104780121089897043772829456585598631663039572490407565204398890135444792140127947765647452085716641468064594055725930574192350951139937041144139127145952337673898117698881618972034826184893289145356103334761191626055331149958020174421597413740232244513440631779366666283295598330305410271420787321100302648719162461524699818769296424172903849920548575096713782478281380931463615911892832881817279071285641838892994598034702612539458362750342470270102355445640018701224533931647057750642086725303468256367736268448718518683843627033869262170240633946473214460412253813252696673452812716273758927991974068844492094828253583101267749910991761731962547061892471098650022164519135166263579871908624661030307099309563294418419159073435980711833226170558770118622989846565974926367032943793394707877620239149475610711614206139452162908259010768445447320011783726445711230396067612316340143424831963940078332106409197810397329172429792516659038428837978811088754758549115801565548927080877105605508303194330495341259412273977601732736764339980452878856067454142498520428373142409299179741833008622072607434856572009074564676247699467856796997323014745621576244948037569600035541759761810446063683184131748359620408956544926895467836777114513311925866726982827886993451942676723451438815146737568433125440973159622169087737403530575655274972096935684030834932623704862602349642400503418411429538187968715413775165665367376404229224939399470633151261913248506789770288114238418327695844035478854039893429003302883113298608910165999987822632238360872368069792491924187912383475475301359022889307564285821725683708129677683104093015750804973420360606352784364548914439607154123280103225630844062398131649345817502428600604659726851686583334009816135923876460285006255064620232778792188903406720568379261257945635565760302453072075412441454044244291262074769178704923717448957963248944999008880028652406093221870640639636826954019296930899307355474414782570038779429464004596599872379921799891349637130540126868507129805778750086750476275134136494700381954400580257131476949819591134759098763136128907537417183768201876847363627522073626740522771182998006304030724713719632454733953601592506682326444286576464152097076187815497874281704933193600903953420410583455093943440822334892380574260524522085321495701361008924558593674814749499898447072306122640977533591300564002960232551836114814550725018134131880827029469793936041127689581192372813926774315120592964979189582051313576838897679856466180222210249433161954857067430091936565862879120506026595505439326937736458280353599678254168473472194010942211818205763411478569817453001168475352348634834137709262475871123367561719990453789657701499856737307031445812568714948160443918306155556696217237364937296918910464090946850821396099095205221950316969325460374162971575369538972273522215362129442717520502382203005153773801573943312134025476645352476382721190550990687294400056592464805365031926898783252395439821272367365952282656248491895955721855808700639944902679413449679536840683144488298822736010538055427127937805295763416553193047060455184164940986587914428344587522315019571506483976665184658556505879332711040819211802861542365373976756818089024269134542361951092040811481029111469478403126102345836603699593724120249533293128242598959656110414114173033463538181483509668751015030759984685519018964655059871903631573533228104061972369580875050643706931776593250507129390494123086920508873790790947892835361877475666756313243607529335222495314090200987327151460038180576098282878910392867574318854829064781609718151722235319812698730792820825254960398386055953625460714152056377958556812859380983618397332394086192009653413638938656813131838669136643056094187736053109451368743136739346538480408011632321685334867533999752070670409617193435346009876047492502614128403686556574598369910299711842718306351542843881291065706170168515231186214187855238272851045559716965744878513826235466205976507008585675691888820404614405593897854592722601874450958381815264705235659228328324465950287318759549819460914023113208470843078382864254683542138617480217995831719734943599184438469821445020591930902467638804426283780452790178210786999915021858415897256932276810078924701457974410088242941248212457857804653198502336036287449953728027068023307983634454134929100364277698413339886660053532567371489847997401367718168182121208099725505934281045313270997236564589715764502374091520163567538943722375450742899500856004967679419774988814571315401706272141217735838131545596449361053780283457762770822004289873071723356168591631784926060720140033248027723404282352126560113325763640789992862103389749480114955159781027174766589713434191505282896138947819799171919676384785574940675474834146607720280743282836263775067475992291715831274108824062482342870288205324452020022367673604167936258923215051636585407151936121054833484694592601740537179045886981304692441090919711253373209629795126917888587598282770133425272007809185480027005342795380622749395396325529446611808675616624944490138383082402991462783316870843263060288548749310493866738168947881567610155533144419337788822953532772789570569958946456395419604798310906485993700527882507941867529682718959668209664972389479389848239308384525860592474028330100991062695940852853903186179539906856097993891980540514508688558374598091085969932939024728051699372258987385750928948873495140997624124580508533464716294727840615772818496210094069962316102836570917618053519024594873685195561397149389455872728311262590947165528363376648589945917507992449417166200548305695022156625363204026270721484035276509302412910645298912287079969083603134716384990562834123606656498936289911083849242169452358437627514541596796551332674971508050987815785457849879349748048017222756417002799763547740570767892460467613965283035942785587918105288333846754430245551735230810756893301986657086258661423304756862296834720384931645185719866295500155130229381939048587788453698757057026009806171232015839645721074820370747471149989664704032041642021671339549091968848327984024308487063202732093920865904280482263033753008084863563012117931643816885574078549908343396011280875565462117082212182309647412198888731599589658641995156893552357932368173489625150913819801090310898505548988561540315489459599452306601616381377176136359942298728991708557041700182205858198163207327080497110853616861716655630263515987677618954009271635131895593463652094554049396264312883240624847806839843565827713145097145885838296644826723378837131474377392757324229547741288453892300284644680673154580595734395675422748804428906153511627063799621650851940653521027976322895729321587632666464495623244028637561060016727824688189090030212548788815643908423165698242163185767111895233256826212973831494780038570167946169806840101340399827094055136961807061775407451452851415926944260065693912463908462259861974352321125297243259953822446017423128789848013616057026530069386701222678891499870663967651113120520530347329100295193988594167697214044655911107594654610844895958283731056909100587429983549905887809375987719425049475159492870911979144970253997001854441446454029624763024756576983533648370957237088147622104572884181412324466665069836540693110174171699959104555839598678063909624952832688890437588713659009110101267189221901911321780786025688859435022652878925853152017249843190661108131844760427481798461022406120890702653567650408443451627778711338051900848147638336827536290356441142676658936669339292985706224717324465716600066507440836193061935529868229187319322444252859141906153543263883115533776872423310710291625472347792076973534218422738447802092366059534214366511512579059688202265232635934520126941090802612055889330042595493931988118205584107613889973740893523023203186852970675343399062182828006795579564077773606743512352801708205273910739260929818959936236713622558626774341447373506012828034549185709554773193044874414399270816811454040430125018683212195686170428960722504136601948195733150410177678725577612396788624429991373766596779340803074065487805820817563469126549787100695036479716476985387960810316768759795521255244091613713557562536446005808731932294917782074260410494287017697590704156416858003617354102655731678515896935246020135444516417736021067678996192460962859928296849715291535300621930477463713345486248373269199387527618272221092869898892143875817457429455297759284555779172443917425272001604092876987344494321839057200868525355060874258919461570263089332012066741871021194628668870398580354459225380318421833890822028556234744034538712071660069202537265489291611977939067903971354401735474884957973541699870844825356607932485557099430776284374200712626637127969423548802061214744556826580836677608776801823605045119656026471227748553524562989744618709367605158215650628135682058056566159618623377667696103119987527783082781676888586674807633242023990499891431616072553317158928189276086907280123990843383231009184970934548078437565425661958231017257924000704874379065234443654015600686872856518637980961855025280339209433666317484139915545083115115756720179200012994582621015869483396650808765509458879478944451876213545188430715271481109704679553197308987326221419676909867567351962987973254387523658284589743317758672755156608396958590112958231526067818364035281820239610452949208986723185559017978449615112008360138752323548833087834083138792928327306349709147996227980924646505806897173146120749061110327161886743092726452903830491957310743726954424012983164829041872555218040962108747821892085897626251398530195348822658331603251363778888095494817716880131707117148778769338062215223383564898298953874267354152437429625683078785498373188038558408341746978991170799586444769464399893531295833525335157757180805559568676257818051375829916943303794538785547085388845363410873429040198127601390519762691599005282126680984896569004557903170932631848539917513322014506116970601360911952015055507780685020170693965962681882291691889917179435773931452064800494965108573576422394410232825785727247458268193749114720610268724576980952288342408561748315699269901019459365983846509172472400275614484604199082693708975980845606416642272314435051798103322612184592975177125873107018913534463366000137227901371753752306951023275761855419509241459822949002743124834306959551099264803349291591850276252618730003139728582901909003999949010598731302394831184250931031607342514675806220068053080645133744089376373665261450046045824909720192237741366628781391184997981126206702777171987938748876057455132184563181160941013545460923873442981171017021735959502930685824929020398331343929901372108388736226694278823445199973611756182858736959433465691946210563196873748838026826308351519798760582430289599593056437746662004226131828126058533375519741348835027053953139292324507433800768042891828926127648548935452369988142350235983771535025237969163185729620510834195987378202226841492929545289220542872291434056408890141098085657803130794287862569817103434253093189542070453215287916426766831067732658741288612495559662315616426688087601546185112277520287284765788828668838784494945649024597847718757586549272010411964533858710146565644627539304798149144416349401228117243506158963457152525471343699953855646451574020908751293945671429774336054272009536047951905729133841647154627898459497106772370256413601285525112967315808406634470732673149846173786322554714549076206465388279027786591449302284695988206281314593981040874489163463157388865772336782161611855877420980702099059368726330554841211055787621695248060324611113526975589907843153649812492830999772032911600803491495248746674657926434006657720489253295146106715924521591178315964117465069624256074152405836875006537793775314565055877984277980382000465026803236827540444415433966765291296710048539427035410776050772051664305834218962198364251040861703699013893787330057159626931644995639485591302961700593866721324278882303117792543038342288966523565808651755259242749437483844332807229067706711364820306652008579939980015372354440955202346399930618258319305689004520336323021691898566651439480028199330237503702101707221359004202128284932551342630293884360034804117558046780104685848272833555381609876617148715920112163668778652439252559250269456529620243750088543552767559815762236424806521100468742580812188143899029689503746115229056690224249295063613508359914028790044699987910212154783748010625671294272884086879238413931998119738390506598561999002624312288586735710779565310133714660683974676934911917801087539292346281278529595975007372515698955654432328825603902761687601684989461933895456567490505680849455755425634225525404160827386734304971172600141502611939576426308309572779376680591444758423899911571174664440151029901899282387092240347659430214182540810205703053663765636247698523134425480333165819843571249290737621568362901480300000146773794280622796089124441820482579276474762377506340807443541808829493596976237441194989851533451652998419614424549640269840307598310495509679513022943527511412663761911718470747333710906837079637537303574928437987207755325779215870428645728522058438326073300232341569416735724839449258949944070332772051387763940747630971312836298370938464817416574373398556167232839014780611026574617414536007031327206747400334667968025064923034088780675724961272751941159548429032057070785522329220366848799993730366164608408544062135521161764130535945873982431992019145282256806496449195590871345882097158823287041833631455306932579046428476422704460125031069833313688373918542698745515767165689087536103227319580405667293518134356262941352621761963323468014294401761519678681072823843485434252462080983895506160050058930490146017231652256175123787000213462537275362247530669054943263146150735089096783948933352567050676036171826465057956087172449251857487718305913066182165549059983246411617682396894441508789932361019988646263529653460393623933868052595114985189267793507363317825870840565238944376360337602939293194292307094093465142792955616836219332582900969466300920339708654328942223015966602394246872468523906743126287923301652837911803090222853516134588110398655415967340583839735220654330324546633825742952483970822846108449542583983095470846852196498458595625691130765842860957528157173255916775369907663656123610436625669982286239342833349652192880877517521312745807675150652424772835412973785658066133524250249153660862617340088710939350438928699792647770933900558792925610981273729758416271872394804640116354550424318848857756916365746113993884554130968666943796730760398687090955538520778018433392028427452233037316619642076827933328030945656324681711234775850015263379106355690010615786874946658496889177698130503394654022533069121513678143026742224581011088828998558498774545820741529999857580143327685012011056325897744942553351182374028847297693329250365206908610454713034262334570151638191223335514824065966883970922405245849961145340097688552042466915334163556917968287320154430004351379464160920693681948493969710350286072551401944719038913726987128790337727408495657821491827532990828776275590885437030391624469060829110743558925763625789873887787980923652313435425790682280820663509639834830899235551237107911136397102337720420316707526886864666732714033897599873336428366056264620597745030375682293462240116701347317282889695995802017253856223745088052821427300882649922317278583467944898385292653073258358435576534032416262098340485145856480325736795167069296968496622124286358066633969594748592639342806056715504764857409038463536822424085911428695263951502721517092396148825915901861745834512345062693080196881792512831474074790991109849031336559086449136995511962258320399686055125005018211236387182963391823325818474845078624642930934772925918029271067723918844912111595096508823605574764240992101176038729260526167578980071236598954863605629159316905167954524126269657714721344406093822177603335794769051052899341344810042130395345355531563902932954758440333753054140447721303484362461472646054993683411946492332140776786143766841980190505403364917080603742635017290652993241484222796615782692173323507424616922062022754537318213269902864632317727089366316393445131740214930881678807083567057929271640051207712011729881874819465352174285184263565650596084287468743927435298806521281683124389739708801526081564740897668740229435417683996833514105851527101177179956730793596212959848137130319397684833125718924401335383502479036406441565004705941819892374586229102788586788046727090364556631369954323815203102249176331665932303921236302723870106575017245432584843441056178664329602452094183428709692300220271147962017282406099640992247345550489020641501239734914538712225822678794965135006228740630234124504784669321906398345356589472483797446867164322287789705583195677211527352674399330932818637920166368879661134801171565928475300292240709898433680143786660205974246729990630859053321059113285982161205357093292651586354206318213485748306196294635233245912850304803012874590390944564001539782613714349067192469538487898648443805771221141318198809002206642135201548595278579686615471919046909814313148663998156370668921089610303526394424142058537479516537885803234103597581044139236222087969680157041544859287176698408858282510105436122302494010203694700251296333245556456904134886300037932320496795676370567193608409153851854147148231612417329383343658793177522016124883286502060029292218033736595085273727060047264967997646722582265996562619609435409989173679573886524233160662064293063815900540213388624139435747482257834810154165362141116927731074259225486256381342625040827018906101669638679745007438676393310706631628891998700473704797553474848793106646328851044674458896805821609819775378856270615312693458222262220650090532307816273053482590399354897306969294333581217343381220750064773899461901857502530960098892131518458622102579699850305309626193611047927996235529525463074467528235491698973924308229889096818167370990996594415076564241209980388787787106635594796158807233404071510869399611362651332381350609119894789959526864803382555176867715581451141620550876211318993744530469022706801763248270860361934838244734183147016080686366612677204811348186696297562856122555119290203511975234207358994910430175477183519532142454180512804019217470099480036323912251120095360979956796418713735115454723009507165724353597881950275179867772627918553532901258770155709304882673638969412922043384231508721771063342877591297097478119688004333675462110127212175756237569416700330983718990687402600323169697297367218927250007127181354999043659996888960201224015743988258627210539928515448546953961936714318965338191737935312199156976775855758059024900059794595327871871834892875532855956851667596778653977163624336814956614968134009456681967070249649069413418930395409449665760343603845605998025638551271646392881259907587852822791808751348459723374143895694254888556231232618848180875225600853636564132085233574225999473415470265638792824554415055861376133318376643919116258397802697176864684979482219308884807018857710482985281539277211074111499072399926421739360893737978802390817232555642807572626478679024665449649528620070165177189854124928228298548018293738408654459964926945184816626156321529344501499707438506128552077680397035230409293042822797802423124762794251703446512403352922266467412117038477436990736162880768657427044203784339905083129180253780832088632846300432673811195408787786946115708364252625053721374863784407909407084455711181543663396033499261211022146516480456749124733542264234881842397198764753289718532270496200292048732047464263036344738047321310755608907629686701026735914539292247393157527991244312155207496232097416413891249901897277586643793473895567115784610846467272643735215219331696134115373098355063755340059632952849272129408795967455380038739864799072890808888007219901404324245639260418405223438146867040172432747180195278170531735094279927534307506603150290009113000307489590350463296049315119052063715461241390125550266336280909657932416244617359528141110237281389332567425768595961151886999380269811216350179171335247291696979513570720374091439324900640365651352204854641342101474941214737478295451047200277775662312665813195528786402792377004439150565685615551323847868151278288948651913422195526696458489601365581564724555890725805827021652725998140196463278541314281433249356996917514536142764194258453574524853020587825126948688135914406339352653130383541415479519992301875958539808608349340080627622766332980848369828081891390316454346816073492852700214228186506270258437768102859643391710831899553260606553351533317028245020521583108239208260696759664925935563457435027167230556925882099844382953750390889839201652444741185353773145692789826086682559877239243163971808516437144131873855300403494627002365467509001516272695685510591053153355362997185671747710683254974668383151654188825902272839220735367500226096835836739909760290690915005430659139356336222806349993664240205473534375750069132977868460324437544023840187697966874637025434906920226710055724661229172195434289675809459183651862234013280965199866397306323527873635935438511109202794137271713937773632767861684940026707795373354606797999136149806546961545053365107668862424659774447182954510031037246528972824310532622634073436653844991832520256063094516866266891898499214490506528330847410393698360495336459395806515250402974544962081503504970817445580274234758235707515982121872988440642595457302781531532275055776155351630269346585589837395554008177459147086561722671227842825808409127393942546994031546198340111276441853836961792235541584665675639832590852540124012053639281375022245358508666311951120328975878688908065527363057111097530321712567343968615569876409741358450794280078315162440142684490078111242158450606790742195228198024436958544261160850271713158914279874779224611125611468153825528151546857967081114798836956773660312692452866952990479565008683233883830097075430587235033899829748298925202972689903227175005655720126863402627488617247317435928764685839247512187083778330265413636929244649134676568825117094541152110536007453245101603147551326497365978255634941757878227398639872498109814558237322325988455126318588124956688560475227214611083227901710699966332843530384242617928564533351927231300454124527442796297991332519673403863280408180076866959717052397881689713813440399670593923580318470001581899200371405036613628432019046570321614560080826134574039828782782668697788724507976165098755764789211472243678676330304150369231647670996249208188065530895373026941572840369849464490207613516959190996082657546014557319867657846333193263912647669567154237560987205958882092063283403498316713301003926610511120905213837376965331597341975617937130078552240677934164126437538117904223262711732681628942349977892140591026694662031322197394394039373397961215070465678911761441111763945715078402902235786632031884384233744621292021863086363826505032685791732368276792381093453818259055850429713722550495502645505778454509852172643553979989975605520784985415411079864854984595881420661787145405591940814847767536864316245598450632836514938443084971812573794701658248085862995457715437236389077501851491750383960398522615664654722399227715100268124627243799549756509502396165650279208881652660316522391692549495452040081894198365825527743610608144532828977978420435078402722718131994877487262215611220209240298971972769902837961027806701953473915380932375597334284466906303447091734700446282839454473866940006370966469161817467264962296079971420776427837154826373044497864220297193112943768638265921694387679573688445923404688899774872955816166121087898244983876070478646435444434752870111797134362334835818006549581698658281941465018722668536225289923786684578693261513607090584218413559638365348852885398037858316395267289883173332796978399799241168291085065034438104381513598723714000489604346323964656452831464933552945980039372299491412801680867436420269688479680336548098508636043087201228062468920920405406466259349845378116641628356787717555391287549590138718836278707547190553245994747346495838719361089875896489101576127532274988708356991341100302518285665239734236901435427907807152153767541617235665681043211130306387467219158976813809509295951616997028571333618080830783295550940551589671926004113204320684991628032749774460159109418315225573885504232298585827297939335281442169577747670749898747243598907385864580843187269574601554002262681388193309104330584147467771919129927218490456195933784063685855509174390806565731325534180391579132184544295335488239937430717622532112925410708698263628488141952918724304442877587137149316020063926663445706580209019333819413788730816387299980036403233322774156494975177095110429163222444911852364453099011789872381332701897349678087085064078674737102012760307646411903990014996525362212227773013283603956882159950652063387044463456723256346373593856504217201812152724753087975048566727673736204174580462653235721432674538110779563059848299882207723385484419001252357853451539674235614792880360097929937595462124016114066452360231780965406319382003266857887622451319794362468153937298978141405232690021411362858351267963173695243440130007514391104184376625359110621302615237664004980708913657457040667677490814638652493566080939660461139009184484696271767640427205385585714306317445444676713883224467948476735105313398403128485873454614525963516754676630473603796185095407818752438825453550582681219697852000082891462902685308461258214637334263417449182956022965201633430140591147714586582760477866880062855310278423606985668176441680389945097697309425244374445381325442657960393017674555071625053487701439273255747346765140676150344298860032894077363073473862362219028036126301960741683822124160101510768835001310433082669998160011914891280206338785942218896790923220664448526821378103774847744280804254490993429800310711413375187696397580480060435133064469716308933249985411674155829375280118953790739264317392386800302560410571742079508330656750427663455676608063141307848244545654603201621034015982634961154593214873801323683049102436861840052227577557542128884352097095158803752344402650716542294219759902832711982158253441559781877001687320723306513565473476396674255497752680843568541025467766157201782435507344252283786046417282770607772214357184990666778118633765265723649367722981006990084358713968455271647085914826981424166473811811110477583968999499314329703053433419216449833806551578459537926679630723876713062989690067180844316962664840757244046707919975806927572634693966466865165167239408988654307817558675675075081471207794435052302197274972630822026067002838035007096290627531593032781438124946095305995370422161267444979861287479866626308165891200474763320774589585820122829865275814753142828201885740969465521473691183786943303756231184662086220149721160947982300425445742298705636422516094572083940264275586527257488196004573033519254941593061397404169358124605454616749389622034123750595108694493444117003048431152516064209403385404263363425379637127933764661176811014948264524804920666694788745209016993602181894935427273898854122832726919556157773167009862422339664351960820410097143997087464780111027474753423387746268689393130869586339624918194607136720187300263367823946421612024122738380644131434423056551029151398879720529315671187264851708086339350948733718310484167211706121301118091739193870640578708142676920941753749143060638461428076575238588133542477168320061019889340952618348340032682917882633505916497876889565589185089149886197709422859962881742739022061665721873644375913978394019073249089707565766050612333980488389492895125399974257041923187988787480725906665265950656444712203464376461673735053918513377254857311506353540451495139574139483014836598838385394753839661613316614862383218233962226717200969909930971307425265831785835010037877148428790014362030097810526802801828085498347906652493803731238010760633594375877243920884055920370418169499629092351849455191778694435573921862064647568640719826854314039063541869872988171209378366371892392980509414626749660529120252849365804775434325440350035980967280567285245045611685559691949810351976528250964639065459959364146391639270488728188303594098402746262322650765024821083244625017548081259814967613534345883863373910980565238665324061369321441145295845321235269022064143189228612070810670994109222732765501109330802454367141152103539252010564234502180957899240391215824872905032504435776378440921595980707659344135122993122343546438636771368156472704940886182767247705672039438038180176119695719437686218607147258908039808245663533763994588964212654797319513092781124707691817324602084213090036521020349087322538266298284125562892670054947290860800407805226205862131958217248546239900367969975491695574931716341944548366834537123542098072041056588134385993479461858236156973192987555278061684015495140128073692158561811246380161846438439854893003258591493878636540755869656578805472397972511276117327789301540544636762213433925209961803922363744615002086050093452007627429839625865416176211635870737024483479520429659478167704038991257265179514517386464469355460281696870469077774878225641780848297176318558625028376871720420894169861929594327143362263530571059896931649561443134395065146796823200635990875761052384702132741515517511288456998480700490519765814705370349775063908774967809887653681708795514905224058716283356082491289402486944149885022262673587103826875477194818600271557668498453176789351579319642151628346074903338772623242199154256533682550357345919582286538435648032047583144018140520028437613354269889129310517324326746058693598740542175633509428690564529604716194253924467630667887163992281985771033906485926825093125351267036228322741344835130777144486645376848457753094649758062934840064784461398214671390534077997323475996664071718521713384328029143739899508783849281772512469500879263199129726306951983453175084821819700401223936538229725685762204013534976720422961023166709583494798723674066001113589698599255321341740548150683948156437951062937023582296716607251851023989568885536687196523320425994870544635885090321109649883194543081723059294363494684586452346970947492586297550158071858458642652646660156554899172133403584732849120857501205342971068146775740088295442508371195694432998053408250663879381134967781047918292912058758111046017861671695890906233713866753947387331608978640744603390571823196387206919615850300734274311957329205810278791174844843745325240801877213152293006444366972755097631670029867208041189215941182865380745355190972342215175040180278522270689666076013227304277380180640026192571150366147236220923231756960843419502666161263931071086894334681390124197764468862460622914888249132532786343814448467361584125153775935486851618755309474919722929592765074297392104665319188912427499024676624409534568692687955505881879052841861134136222671021553268731418215931083338774600569044406471723761789685842365439427762553577528762768129183339625059965365453095368231437857190100856715424676675226000001513006473005997404498227564063854688498725812902395431152937845768234581943929755661368921850839709348655755677339455108592278754378580986333509801308522264313731368879093535521043573694641756588112174388252015720376657248697035241824749745928614713376647173083170694122027724301520824141506950201540758247295306538604881492353213893709353363144743221007282642773973080760248507970011119382400149402805627959559991546095296583539418806011817937762109212551493112697313130736798917901764986318694222309126032400191549059327843926147213602342427085168769714567987623541877833177562061717353689376656286714076185705451139469630916185755511608815513359421189858364334291687889107721352658582352239189319791972922603402923547579592591542433330149315118190651495894864526955707871808169060983758497495520679398864659067724515666649162933789322349657028451691867926586682505050205200358907099385903896016482372886583914148428722166308537222902814607756691989481376529360211466322635263121366159727467273613990671211807364391725155492855727596285348393105265529295915076359361813478098348596876433163479834360615949844071955286818266684547331973507964319322165599192186036602556242921213923808461432689766664638746591546394839436353814773491080993001807523392963706408000882605491693326741616373239825119575420303459912304647993903540796566733928886238776183873429645299119441122999777729027286060550259386099700292681076371685000377034071635228624621752734310538255650831345843055269750894600845422938028706126438851171962530585244411284532616000554381546515204910104936247311469403574838684985107735604984181418655916894036302136885413277720334992499956235209076911792318893399514602816213853498770163874947586343897110799705344971927849510468726102501547347895434579672858929141111181700720102346383257765455167251277934386705166167998789187221624535488582774731574897869932649398904428080219828355999185771978444222674061668803419662011827430691169605897400768814384115958232636999785474031353160137120100650973849393444139399217942436251768410302514795659894520690500511820179240658975709982068529943077911962659979432305237294781217610802343416820311270553121297685348976280402037216339339467773284627778216976054201564025877742094924787719152565786956232499351706359332602205682895263336468349057441372384133801445621078776098692034625945359301282946534687057239288984692689489910315892634903357863908800889141619276876484499974449550180331358046642707048317273603553211258041302567995319693058151427890083385089217790798185395392309678762688149253007704510211657221399976537961807443024303697527093670296812875126048113247585007053669659068709850742560194140414818491898655710218328966621395473891182506715032421181888974433699214589694192747733284606497158231600410746098018027208667360006425327551883204865298432509121978533065662225748255202590265059503326466580180545412991552932981867671882226879766621775045213140044810612161594070373555307643809311573852035031489553693541116211907324508811438812890572749533109454406651537952161346065738260432491928066744966843635647437974879793321600373663689615144166391086517079100914884748715879117313208622825962489288027109022533940462247781131497327897655295746377566451222693028003606116073061194896104501366463420294688290548410774310669363905155456472106914547818982153931527558035826354604069189793594091355437214608313730835218265285109291287576854272226913046952255385569300370464449864457353567011987889190300260228365723103781221962968344598589997198044133222792318643238128438197525508766234512156316792837873523748715199003317776200538665497836990077406452329305949163054053572667397230343399163043432190383661243851841813890604919128422158398862888564276998421199836434640931165258433477336016975788761201886386431085236493236925055227722370285611636626333545565017870211973088760660049732509577219610692286779113112884822824717758390704797184767914762763880301455359467982510459848997428201074054325646713964460988213206860732584348968042580338266163915835484813229961029175038710736146712771007273192059328059270048799979434587080415776508312133139491927359865795911902785756214589600858913541296122532896487927933260293213295285181053625362873958485905837552749879601856298591853591317129387740920011457059370440524315253514229160615211761880341885234797992905249740499493570617425119987413260037915221716213765354908947285316403068987928993715057632542311145450917355412965624396651863987842162461087711441073142539850367011079911003606959613598209944010333991283430353055017465922211979879483126263990721888451971386336533548439165146975867150651724748333113460875404368174658008594944824766484000987570149148259108652285402996422729894397276863617354219792178010371687985669669061823515889189402830292406802330427208114775301949404077153405474018910643515318765927281189753063480473384238783062174784874281318537428823588142920019411866495633139347062376962758359400696801303135942107561113797719128764353830099086894770715102605584568324290778595527090045295326599937639721805626192990096093510289980832537896189771934269072214708166125341463940059249441731311986463114283881804675282751229065282317769928649134821571232877853029243948747030237756722533570391204199080230882276350701373882357851276934552861576376513724469678396263735994186945194907711258927586157982510876698660730644634373267237970905031293749047099926608354759867655292899388214558580323715652399655417917878939781189452973545579683500297087242596443119879121341061319730484245633497098568996228311204979901433011352351510618307289965593753469566664846308983662039021651026626896241009919280207682441201746165294611279753689537057312017203836146335976571063890091013172769146036323473828390933416931636062560017723975125043480593954121247594490495207116788676641478706530706886496664113441835935205511670374553360281673210290826813630849527456985697754687827572587700739560626490107687324492387676381444701339606752278852708469462458075590628181994994368909387523493765873540501994927936975283122533432206160284916128030129120293004994130268857976973791244779374583216372952416704886863064654325641300571546815467090324394682514492536800756745314415250934287751762316542168722133324912893668310411736650412255244298530217755350213558663164171216932139168171413868959769415102953093295785207412958056726045023604669668593015422492569482457648825568662909492620540592341598565259472851421718213340026726002576409242779308506661890815761418366873382006837194544910203791611742250177328816492444293043297401815756673304922465070716002694567444605869801252556621819573764590716305816632114839794569393724958004324316712728152696201703628108415248485595713811849273835335716906255437530672834141109544914802151447397487429081592200358510384414443006090999247368460351711808401663177168747024175968331986802630563071538920651409481415688995032139213477767728724849959069028127586127389734910919750854613799284589063408410754258518587894947134913182052648446069260156454872512596327962581472526812898752411135647450290647438469575277325020892831355941411560617242594416531489209641465615203621451330316254705814091088221571136550529051996612624851522262760700853079510509382074914361525816602070746274348219659211750590282596968968525055591825562613615705888325045071804458208843767710678185141752126450892777091289054117367365927227766865960827421461866335938978232735076248518063773200217326172351746948585891540675946484049135052748813785809020081895482583606864029809375082387675977498168021043902119012640026808072352795269955708756622456458268316344175358163649663903365393830558414473010281413074793581201051821885168722014676098904587977566768695407466766246178598134067660258683253020452854231162134540871408600036188899399926590649728871904653666681431209521713055748920689708920354105468028111041761890552463409868913765969464258328935446403417496707547547793757035011870049460918539300435603200077304911163033560870739816045579581536057661028998584296549790405003781975967233326816998678071544281147678635532848609323537147535849733599701821952770191725961709461287742505524823210247111335688792192068797057487412061618581128218057816151674928582899687042590777839993412321821342030848875499084887639708968253537072381379706354855653010658810403016028790080237219568593416921802947909928165679105529620820018691407310068214500940919941035904746243876861584454927779628426089729532907475979975738220389641693685819258932147729427297000905464812137100280033722541205461909170941299329669030225522937876932756649882665757490189430204793059309995951973090060685844192961323162565250431227439771430397194711584356490504699223708742091124811168988604235584306414503823076216741588300149607285290861363767602614507503083504247064508773342669667645244276566228317844217752002426054044611453627717153249064109149938000333262897343300551356354031037622086019029140868224797777415539607073272989948284221474446478640985624065418887576527031279374766295390687880548956845554314402045169588527551797589993783494585976791041513814683419009645083716114638790246456538114087085849491479926608126040828828375002753597189819287823091713330064882448789930499304855877388895849343982691756866870827070600936983898253691339268923695482281675054217593623772617276055179659544235278008184564971581602401312815571807497936348028621830471523066719648188995062522613349392897483283143575336224478723399078160411421049808626456033045261455715135567815455635288388421831999958141860491356615037751069232981694148918673094245708554994756222885737407716365785660365324437619386775474252056777493544662827029653704865973025247922352203812887988080258576015148503080533495609715298847962029500060311377776657387067816394786168199411223174123805102322769476397586962607640171579241654736801153226968955236063980367194479921305681148283471688925354760127594884817772524726250747504919257422985446463543028643866220491569457495000371396140236831868246516411626207898163287896352004379256102224500747654456271343721198803947809106004768364025864408900805578801471845854520946001218358582455331826782695440848402148373557401618532680057043359343831112772576482346628118680627626919725139260165706076514338497034907473935992085106223019300348208918369872441967815473660752652297085439291650773866973078428354443524672654371787429453707024043130151699063404618016981502285920965860641143228273671497036692081891063674189770859424810525825555308066136673879213943172337833159751672068514410903802894168342361589889425219469608182530058988259717498146765676069519097569195067291188808573045315574706889266562477463490455469508080676587319781143054441548186157702096111013264062587597921678128692264327113622108048799221286791941999167905793702474033277666684912092763629245327249191002230215121330236877064876130558527371435601788077885261880677522489338629285644122874959989196522063388237921063526423807015934560146591321938138209790230528450089103916908075976524744193289160323756769381323207784854242535379979347227644808303456107963265697986471667570342968153237816051685992822109432404238365834855209621698736944542620688911886803628967721189763048962280172271598113465541339656239820558310616263246392682110903846654155280980989548576781899053145600188851241542049463672326561504363972815280427278229689344870309650683034403532333626549500722676616819469535067359593250156338164413278054116624097964401039060451036357719332367601175261679574711359159678370575877164825545705259237492040970639227040247719318339503520731348316857414589192021980945464862356997029104179457915571840617179374537060870776181162419073671820551115798865696485716558025117559898365028458523061924817766380059506547889245719912682555618667946995491223301261589044232145334434143536634783369332591093445316631358905223568662168493174213175928787672639450058316269313540298413399650014504038973403449904840783686816997015790233161577892951158272665374350672216644601727539348621298863653038073275979773939362118010918254912937173486246025056243004307675046048253564117805457091651768417608059663162354835164837309921790545556922132237283847566352976417978413768380650407541558531615067525103945242980777048180204650360754848151918390514970771516985125339562987022188539386176288145742800675658065642309430553248125827948450898320569982646437814963067743104643076526425197760006721828255084021839053721764086655814451697754733166030577912734357354048511440690172470083024261426167668486987141932769617214010726924180615611026876300366539635031991782368221885964230500563541227389916693265215194336701202950931743303068061550353045656297871126837059122092594499975949756566648552274249221672279931267911243803664422499872149235840961023207255797047025467303671513480425343792515978418237955361610920765237013036281054985353163891971244374497237885603144601332227372016328781207189617079046886919463556254335625820255864120977892674590429803460932088015443647966375890487807743445030617142705999585673675912749751043503347618558342320113339851259765712947916959073084995872214913824723565941926707483387616031962407552917987576827174854315613761524630012749881704435184020387531082196713188404810682015341980413586793262202558676255538891241782572375333142205240727500632634204269354556972917879816265685926473286835336412244656642917483059164793657498275444951301654316539746233447633332242582975932738826739643892291337063577725978504305566192713363100008633834720679273967767261249890169370947702563303853582626975360777041615245955106441463062844346060202168598173195166331225123414169867347640017482235638643527594893383620170806720172000660776386253077341418505089698134531303112079657097030230690661484783885775002390470960405548591900324853167452133696254997687633201817777561110462460644533551513389952649295527153327692977246941382012626723025632384608756026587200993759219142135527753737675619062459325300654615224492210327938990601584359403746456938690071294304568761910626988281409044034497401529182307332253534249562472205604451851444494250081313554750909137362686790095273289118094523516118655878016548459707003824641704146614113580513450472056395249228851056735393360974478678336114629786773378846766150635225233995514107072131817619342944351588264280465909444851908045697511302754437725199345636312189806596508157187651680284631541051802881465605113883519326332547168151768109692135695287026887160037078190411163737218393234523580046821487851991011539291466790765149749320865679513657565359121747460058683918229074780646656459837645030623280214959675803528266355093875100554993994433708181447590954971452070490520077338890005990084481510986362400311189288957971896689374679298467320592739768856574710503886555863870717864318990777481821442933558306638903460603984244916790934834571290669005328110519840862680543829510190087333521775626920920955174701342623246674077652934362129776641124208884845949702795303768613678883087341031120835164254670747956189307901029101848174331533660218857127319973632800447636362014627954889881193419942311379410526203000528423480824615008934141172877998737281094932987895607230358688212863102089489711600583011375523524500488165847604212558339023072633435196775313238823135404924597584064901052814337229963932863488169237502247618388839816663494101581187293618160145390150180501914745988787419210161490660990827843149860199816819467259098959864148332218599792746546583499140804039506029869382240404700592179524222877550755256582084901821545579968180850191071247137592645597496845119265493873670365356234065974381006547949797879364870732392991779906471709150090305889803200463077903964510250494177273268050308740680626331922918258764327348769252437809098246154375008323816013270362190714157975631021584529444199291212027052671477271498277718122870763663022356859904319116718247702842051964746131047125415235145876749312488530811280407818764996752244718397880753415685025982651523679976946158443773752891713996645601333842559794516627709930661222684464714214106676909441396352252126604443425946256845686568306325434929110334193709123235525286054570220694998328915186587733470594209188862251906428585083839824234949251812369154311894754573603725458035826240311792671954922723384440876030705941379443286059490709083752575845193424926138760422358065482140718607589883240201915717531987734709911974333329465916980735162131960951414733052332240966577164361902710068457623008347018733263724080089654423674283670650190369654614409179670620746624719808764577872373815111556910576033522529686048246198358217934729926555446605365596470325932103060894436979017080963841869455048623699628516605574461462321615741988378093255523815035489262742867563417586351979960420432146270491074174354638333020939950982470405229274011611246214073289596097645029964559783636209235640146646087397511731977404173888067544374047210876551963449738067094957672307833491546565591536794213772709662094490052127370493864867260139971797769574830596907261316220099553264525615206741423258198407316427005018337138888387051365670981566023915176571667358002282985532451115338673881348307818019595318579551622426881434221771608995370681395151353166603298462039320002911402688097861078915487721098061753108417628939220676236739276707796076645165441678276352236147962282342566177153269862219879770869424782948621752508285627348226598915894964694573680235029753799503663249408827776533439785786389926522963810880689970695371538680832233295179863190259971166800502486733595135208332218895031200710908470450202023629973471894386446882079764775548281819861416183198779811284082007850486873053287993773086104968772142989144693274167199969801599967127276715245888281027456422191489069027707286250343487956125388257685612763570046997954051918037756525006824242079007779011824158861095466090153872985633117327926771600347387896446253687456445694783858140369382102917292775036374915320753416635078739350517184052138434425444728705592422224286662405219783809281991484278938501620174582772512544242016312958201955431543716226723422379253990401959092341738773986408129784303113472036160973727649014026490539164380952955333009818338448802620727035332614932910335967323935695838993314935335330495683459076550763805364780089290759025266917383084095544681857281787156673921877467862288661812945383760752876092318340332598550894945699286784923314282257332157593454708622972133268171697370374848269011215109311944233803806005313457159695184771367102418984493012006715593273451906171394054732607537048240277234483076482656852333543833759176830956249584277926993080597833951069361860726066266772815629322029014700624976487493452900988021763409770925978153810787799989007675020378185629854381800559529679935799544224039856879654829548331710552217273700070138423323842539109228037858484946234672100510751258095030198060696026318684212542932866364036587846605503757660188550052199462192452036088324804646978350015506367207352624792204100628591175261035156718255796709143796008940204345183421450329479691684491267061802509547613193478390560336513017783776519124439581643848840674340079509590859660642128529847858800511268636870598598664138021851497869033094327987034123846734059819540066986241074132796981660542399668222128832976557912484345950744050880073171795267389170379669556034751250290015631398752657306550079094674703834009966791038505698838327123805372016439368084458356775558329435294780344241313150063177114859107527336029379599390228768190899324423715721519082190412692395524356149582678447802307584493034658823766088523736966806525542719187270188251528197773578779318080612704662011705380842114808671151261963543200077479523756824199065617392595699413098492523160936378642195814424711429608008847306564912415650500610165665756886529628980203585746827837323266300192529797802908923801787460116272653226468310604569007924923292375897058863981946768628774621510242439075432363912513580142856261637702578366583909488443223522087428666001263130103754513128177248992056451785005022774327456843249699638983115919361091546301227036662114400263119559089320534400543197207089328888876568529629500390047166454447609611523898612103775395768859523135830466689768325313589349825202169111750604147753797871979597333215727706593299536360634898207929776866635439797705002963769481724194927369304778896833818465830262592777912166182630262363753717643998122406920239256572733791876184428973791278024759097357423219280465623626242461470339904765146776145215204531942510893896584776082913705096855945655378049574350124608688700287621078060221047914875335773435073256494989103745615928829361482219292410614735619370383644403061489199829027347612658044076336594273397104849680935986567134683600493039265863929152370636238269557912975807104061831808617162362771103957299764258855160631309318548568463421618172918506433129352380152578488420022935808911247148114312437179655147219516950904636274049128660386464990369583622042923374775200932615597855714100072326801561160891814356165807672084875433069692838103599603712785722641037108490162183923399208976513435135008889360357207045503703908382624810155706618134070683088686003369788568400717230226900140081456071076258233548939162474143267973085795070085819035401725614764835682818266148579966596937315096698754763619416491945837733936326501661555101437123945846323653078513927515348811326791120913735911760325030487634322515096956236270200248872409654518774477743434187844828631710738934683005147360990425048465603773752445673448516224576578491680224450727386860639414641890992549987362967991541206867863716447764848323904599429013257861083305620662229016675624284098353259356627348013572852344095993449526897317489899644250951232209269014253126935077044036286061014402212700089261388084365596832624523444397130914126405739069565219487132688272128311440334985071460394927209240600205346368569608574298849555275598818254051922021879677583386152648531109567588449516079532104434291430384926758282563297506730555060724334197637816874549823007714832287704737440680578179136973332078539764607912306943044257507900728244443230261164569261850506907263888841746935289466306951710755691557049555931411188388256801264052200415362784886994509767887494238627561502939382812083317355044373213396726471496591819076299557323200334987227427530342278470479465591289059329177053195593040782475304455406160990051348487266572965773651658127574169085761912047375978905419436147852658203955487826571360743786147560264756816046276961544657835886554456041086806464395934449840784760709948802139944153717640369211806173792253554790612733715616873220945802955866021252765946854843923213619013799983984426309129352768607350306713558087799764770050515846558951410030159083596954265296188175609714403169617140581919898927272655132905358529452937630204330596836754814859687325707222603073881821442520829896466726964319569094418564323168899201909568030478223114832932022727551946741536941011315223598876944723941340692139539476428814125501632826605901500008062298058788143878270078109341537485097307389945261288629222764726808276211259742133953221475536887255541299696126624916832759459779427688109739693577198269370601536190412203755402643549667323889573030926382970400006513582162279927937183360379368901829128640408597984060596146736699917459370484778311022929037437691118356197289120573581806077678145779578634140478005368223162827910553433317895553752106904148612075626670752541096263895406756029764306459760906229201329790675962108743026661192032651245086239248805955153306655685403468106977355983235564190666240618302115938886916420110768674667215865810693641496054594002075611206944689044597818927028333384516985228638919056868836989349848821707039497851544714777156128211784318275608334293678032866107589300644850262295551925115455139282950289636846853176808650718831839926197699215723410645683885271230374125173025515789033114213506818503688307675496573929705440847029096266687888536294526835165048092959018286483248413613626424735636094416563076547438377050370016091547323664960850823130893544525285071012680558126473855811515130357508499924957057629185391758655227960899967397880575955968975120417180768553597777277121227574527622759147751128466480766755005414907972759370179810420698462951101724697240046325441757052160576368211743177230949422491545061694155229794910723588139250756009977788014383313878291244208665726460952808462346450463657417852234277373255385890582482968660645432905304864339225865494447109359511725715804672156356848806320572319304839368896976268886443707734237604107593532864568271069910272468411622290095829185583097083287289138729187495661735435873077762752275033437587623234011462495258571758498640792077636061827720077803090627368038160846079534559811963736951711135381814718627260245994187178113190111545260301977391944146197694183403211872678571316221786804076016428805145803674119666337763940763483690341451105342177361768627927417933977788450925131200470686111304046348504954549890875744379152305554139793826216484088862365922150044951895617579897043512307625558568471917873270141291138706217355940731210050301199840607599099419133258816226438172745235855619539532585196879118331364972598743933769435489774072138967782910034903034520082274731804667954567961936102978617789129812364818898342013060408499440059213223195020811011375789067458492354775929182358182951951417736399408607392500791605569955403605636658572874375092898389320285533005612834956836309222991875605919784500340843956390922344551193434931411217228502585659828390911395362303379026627804920577791837160944600722106362760238444892785299769861219616358539760268657433842235976275402116110164131029928617652414301289624383079393192219026873580243681089764988532668278137740928950503416335566848050706512738297919654917356882678471319123495832528079287109226669689527718560076507304061662876816755311456170429892279390295460671672488555091884311255831720891718356481617928061709773173044084787934725301341862710979404618288478296318597442783219719011828701785462737468142629114682240586220245661182240487391480846787368043801385745089709449628499574062742820736724051304389502845338932365364839472509577844785619519376121631518586312368151517140653627583523606127612023243578944271085307398874269661323407961784344517101742738271541326789102080914309325632630454102994363750607839299752215802532620833204511623282435651280647746792693069971058611025851436536936279603181915200248371035995148831795627051294211280761093882511549541089551919524451293166813118177925516381743931665128494341489000509927849442034782869458076827394177365411608099760862499262420186686243559804740196202134381555333329153620403368878368475748708868342316617932003809993624455385792851594874692402326495811993443428002004876679867619969115785608070877875169039414482603079836505092143576585901622251157272333866866786855773068434521771844333567637640080593790622389748879158243639932086823295453935091797927736027880644662993558908799916400644568091384963265613244981822508888396038616720586170978326590935940867453463228744157744230253704158347144132130339285553017531678181489277977161282287945925549488242707389446460403657205284722100165827303239269808008480975352395362440042158988279865446510718287051026201877980875345391474891011765201408425174865809895284494149420650457228565030365971305253096287104077982083776454718037253438544691090636872559240222300883048629145975436374646534089878007928594413264630382094797916604609729081978873681654059098191331468604182507046718748079060663928884892976739073349769000957590799849519563563446038092500888437291469215291679351528114196941360413019345672650557522753107535113808384305504628858304093865572767380775440939411828604640599027801256243894301626743331347059391373022617657587332916246002600065639000159628376194415268732029190456993052770029659816252653279280338418082301220733970276642445875607162564599837244346774291854219310564849735751480309575885878778505767872453128204193931135039714883529877378770766061565263079168037219055974693121708679526738208563085035872397174052206512471289944086746920708411615851411090907323449101422729223347403858071039029746867740815785557723982760825847522224460905355665362148141942026667352305608826325103848766209028513725558466532727127127476017845104400415681694904753036899486059970283373448491872632681622195398399197058400863207525583441351381360347447380717564819139008049237819352419255671858262444768423112375380736928676479206156092497345904555559835295571104394250400184986053387620678212238136307149785401358670407418806516566515195232192004537562674375154893988574998557543788240157565519381289782090495061941486416394993651903821671828993613071480013963306116423412110860332399628855170070667082501105808749689162095106453456939858048500286416771655772106231624264674382379345534972013066525742198750595195042457323275869092179971330612510364262948334302840082034508093117094204022225817206185600951634809677666586930879924694440952641511442374138682330221476112807656691875904999669696673194675330711566851979241323004473648251103623130602726917125272657253217829968057008117242092721855482973754774741726911179943441741513686443626996811246537251275743427142179902864679169656839466892905297963225547813931365228320197564801974482455165984791177304035224432978200901844170314037111808514837772690334555121177558404078931396949159565004882694990095516574892412053199354418942007094082403636892736797699341539138371631986277815459968186484828359957563986688812701206101659170062343890348546507588865985789578259686505307061227668234354406030434075869256501461027853744819728918009827220699174582478061332999459530845912913631715968778844857674414959786607651412602873830979087270300386269776376212098314236359003705543167586955869149544147482652497160376870294700193634590688082130477693556278715610600142253920208371691884885690520222858663727273844817108019969250604193794496134239726013636059112939097751582069223049532961063882487507891832198178399374431527244977893456134333636041497320289486752897591683783982803878377182640930374305766321078502387878955034750620394244770385985629046533483512472765215419020273043720803483508254669812013873922263709101158682993160009242950026758403191254933635874291720522247964293578452855085228129327181851295670010470897872116288177956296278968986952349733334820658426208241144719393315726825823850429886207765398587024364649292504448821838397929575244676563410507181474555904379325002629517883870240197276769313820334319305731215543773815873679298343196508346050165037614883327244705575962593949711835779528372599136064312474155170745343980360075432491334864611080494616159001516453320350270464451947251305823028456048200228421099553313673454071625560741307060271574175426510429848400397665460513648846687209942557259281768854092545391242384931047061817625092432232014538920125749559509964882965692316157860301678905324081496975846036663031238645304937343215644415237433055276158573433095989706383356158402496242282990059283976760170691742795464441325859669708855890981491986747388464349530319210738821953106679011386875243098750756839688164101662719534375560932231091291941987894673596402288220269165839407078346149222316702795123645862971172760547415860289309983723423353622412354042095125292969029904256891717673224180205055933233969292451389818492690490208983352714979485101630063465752814768329941550996607187433214197881242685412426591449459425728460843945639430849133579134251052928722991013917368065108227345655020552632842165428935601335719230224535435032391220415097622921598217672544564485201865630565750093911077047830090247558552274802264745142968411509426273059556329130761212682780876935840571000410904330609689228771787056348911981026567379369827933205398921687526733829051450662449198333658877319952227067703692201177685221863849447270110372840950437912433084838198035468481195447417870640301305229578015845288351073248455526536615792819887214202698714535206277369031279687808293816591098199643261353400519875193559051224199270172027924283982844816336563427133297294042523797480083225917070264763756960844444586183998322249916914514568767548009870539806167453675547655587338027148424014052410628722433307492255199113524759039479753068184283992564041107507349514921661081963060018097665020616792258577552647319054975269223799229788998555403606499705180887571471198661501004373709208345492059163351622579831486388747800556379040069741005521204739472048970818631956434524442800886533156487268950571673585830412893586553615157088890652998196095786541186074847467683662418488128155521803529427981816629058671179645516970229273160110238463255131897429781154513191556635568490939253437169810558321487339835381474727772682660167812469098216040832203421912414451584527829040951313726592329168080647439907881014913242753581457079362439245275119007967385846433124137402732546551099442372110489561284475309413613899521281800742350271139972823539872233564666615024847975684438486421557817073305251995082479391284585884154576689586808819737486524145987148859324397252965277680131141241254126263792769783786995319241451729067698392327808962699473617232021829879471691245117366694077164709611183728659485876522557185251949902831379893787437389286044748056214609545795729947310210874279571112904526755905202036167980048286770104655062267399588378372729655394459349878505692995663898734771167444173327928321806952577801140019740155447294918797724653336488456963501069851945426946744850783149656087182616400062313529795758317045788623996513028759360157931557774132541372583006781081231938017027998042634530134419221981774997781605044257726285903676253187958310911941899228429407478112629907031446027214098294703710804744427320795504434196787103658358184506833052653354992935791176796041030054780981574949151615691269772313800069282334864527966818761602424169259991457652870183898002738650150514003055670587719995070240721973491036155470925702171930315758808581166043114714320801604257340058650101165137255975755902146104922572173231660182144196609137866441153736398906110661683031233167392863097031601524308708240088907508980619412546850094627478464205550958701978261564102203453950340778064418565208007415768291074220094936313963263068404623256428234545683966331351983003995193013440641096147235432629827266747791831207846086627681442853330192013764496280933280125800268684828483147535725041650230500620805696363593942507843383334674110110519687232477727320087557875665830200377400804653386179265742685528806108446252671579568042115338969308963842373237467472841445144060355145783386128102622154039139379487436647002856578319765339897970992218032034812191859658718391909566883425324681097051836445143981465389647258412827561855128535365497363183232901432582953897101650306255658900741911829452578044866573878359198669313923233039983617760463327378183032750361156153256222882724789211263931923981606230746985800761343878743217984792625575863284852267809537182138913575891482746789439050136500598591016923997176797903724428922050421293952116959766317920549432767085670197437351770227733444700877647895638406320332252700708899330575072848926823475816595744366141619340762119919529979071700068590987394878371668782210282293640337644824340067741051723594614275037710903632467535375869513484746968661240718375560099607381079879194533195435770091106012831567005006950855288037097267764244679533771699358181136180837798073146347177556931887834517777251767766209786536762801850690370257874775288542697709118501959115454298778057391381802004285551505821260343438079168334364507849322531348524443919687199328435959445551395866250291595491123586187722136607258458858865389000864036734654599311529473495095172796446456981986454183368216999842552776958658978584908316255758187135383175535165201639681020422562299635619657643380257697132255675872275991854436586130268397837617700607621970538292080087622309526803438219690290692144498244476046586013020814810595581935109781167600204277739764382575862938019555513934274912459563625253211623699024985511219437426536558285106968749908876533652706307465951184302101149805281521031299591437310790399099451406720839269919880372656441873669974000918877712894913524244016683473656276349552682024461119730926164691026016613842507860559788932347338194124343710947427608482946070469724121540055663852540254209904908460700900275080689904193730976653733756631879546211713365189647273019613443141743034334865888091656068263338763353691725933074935571632503950946187179758050234488853181645918194351811118993914204923699281511792164042288963132908498779158215041943704672449496517910918504927018099361057169226508622122143900218678845339135137829558391168409893778009335622634317389044985315622158071005789955703770712320692293474564416150928865480248999891710931267271237169336908726300038967061151384990293551950505235403552009414045089765871195228645775351934065492257876641843349006415971690665305035960158991676983823026926119229428172576831407068432615667825807235621754283814339464554406524839361700733193238782393494818979664477821516499880613683194213020131094939975149670395587819106652179595859300652339898727660639134971791790360170436128519592139266850010505129638716902498678793305888546220824976411760469423215031497126929598850381447430542637289008385013769716435585558384724818963037689000564183409699377577640471810738869291203784876235872793534757895301512107113858495146876585596218885245835316515949456999244920239684833477050985332777490246238116781165291700680663943091864498328321194736447413818592442185963583376025380784514732268356219928137278828391493635168421545101768805756341750271378514873880060360976702579534289309156700980072611847966792413861804999513085452880343197249824033316793923581049773055282672750819243699181319488853677797934953706000461160513543651228777263104261503599649308546473476618110412550065707186707064210095036295218658735859132488064308750256071198018183645562654856776846420421766404908535328932402607593200324141110320730712120180886962581077732819623290532045505785610309726890342978279170097023275267130791630224507616147123197219546018446089738863864753149993697612904305777525559039520667054310055990815781410277498165961208990198673811278208608917815822686141827380324591086068599007200882311740887392384722919037852992601553317590581148707650753561999909033809343601452204753393838198442961813944241352870893626694538426795122001011215092236263670356434420168488341117848500333661104618155679168168225212254433399817511403074322285605126942062040963266516811871529105495160513645144201482220104352539497021879321535745116384084798309699505100342281653783820920970905299146516523673359291707394047741159756546302063503999701610517854173152082052790035841938811193359874495296006859622455158208258239159298640074567054850552544935787990204266504294812034632832655931741462048752199887386332917672378386917271895745087003290613813072786070084656819327661591202467949875614569235337762345216887327618799797780239385176860207448579461706893690536211676232214399767537331101206332226308366878924172062352085463475824508118124034488794883572331610545683694418694177479804217005081741304756894831077931680694258901109986561827342575858842399481468058200761934994034049475080137050048065009134892469348839679432600667802569997736804319210864942367180345060572621136215689044729734601940336610677735421135845025429551265389197235761435573246431787513249189213726033498606698181108624095325399602084095681219946348115957562980297879969274271261305572261362117336720316129606234313408271873992642441741845378002641840925904769696538755530019108452325285877225430592349657020433378390851582904411425712809092851715628883199927192427906370978735004018964347189141101839561658528881592787601933878413494817883368417688637877826580604024522908695506385619460163145145861299480761137617333791021016181710563529606380412161957116974565055028757740086528494638704645090151068053863198993981702185263009342638327110597968864161060755271623530342909064615701144139329206405618295352661117371871232316715653975267268965240690078088650674108482934090745272944737466189685877720015656762904074076316042968050934432276337868532188929259954087680351448401613482565677989568238689699005120902380906498991402406252567541678912150022746801703192093618243330651714948210582865515393040075927487301909612898977870401930671467633485731757779652522012150011466975953165912823135865682590601875233966811761429258718910905615124471371183122479473450172447461486571293929293569466633292909909715974680437836498461023037398211820536225401236408915023164325460443429942925324728078896301347152364211320254648899911815925199492828290027246319011898903400102606441347202412897248438523709912674702495113074909071923288842276743440704565370273488898464259065050916742719755242187527550086052108097656703732136311310751048847802003830249729430953336970741713802316626590834410027334580447293241296849736103877948368157430698025521035268773125966448874180750618530075622559422852764971811346887722367991270100803937093607296930899958406759133636695758199370884180332623874905699394334494854299888166344813598482680498507911442427138433184525746263733611093105303630412626102046235947540613458699685791186189672176323026478881954049661691826081636736655038635098149298717586505005751192698888296690206380323106941653844255409425181420234548937453643144444601397191092620888696874301757177966346778025454774239069995508415431428886657991171663441170199238505744704570124253145465506160240135444754530736019076076448674207804113476108872680275939962469977842405225396683513512125649682351473487451962924350954489088538349167063867399109386887343871772000024744960218864202902143463811837573391903455698521557411683811327688497443072143481407681978758757949136253544351190260405324808080011656319411261632469864887544581889741161306597808625977976502010009165328609119665955755608478484065509961210899712671121626076313504729958660160881192758805603335805455464800036711064657797677326435639334676307341551495630969764412739612677404008606479514586008019518696663687236603333339286787661717953319841788805957700864097454364556731280066008446002331774862408396602235461168121207731926724186997669589683811398332041054973212871061577538678875205943580873101229001629565412184382448814024188078839870155300889851815624319264094882940193080558252749638762279326229778152516051615456083389077923062767614539530832134917365571583253100020543464581501972183478109578622221294301983474315790721176286560691994799587896321993139041954580380807417705836318465559678998301794909750381844049956156731460168671778223326575153695080125888102869688851333903986147691107976355951649476063365846927618741832191560991628345488062629192583679988734046968114265891064583461376691219545705943428946482050881989691867701021925392005522053057246423488784084226005498037961243431332145643364390077589835144838374323210495265077024833529441914597281001432104742369008781401927294460174170236705723689917974193615286886563459561743761427100625817198586728754798834691414338660341506445656079696583353110640768950338907430765850520212760642065352576731045261342909860078202275213011732250537668335466148712580273016707138889021450046805539697023405327379970675495639179218898065363301393085397872635279251100731907069560975492297903188353920105751130805283865340380919748587930314801351985796516717547474158201336156615540772468316221994009963124177041467473485770110002994865309714342552369697015252160813588148159210877689833029630447643888972392142962276339343005565705677068236725414961211910711909451678878335673380963561157325504011210587938658640795717998812268912505856000402724548168911153120116490667942166218663206249605485904636183219010274316003861236610571759591168714961541602682376275344925106550356925511149652280325684999698448703287045408583931003819339408372303974396069066250157104421403883317345307171723533577749751106287186840106614204040807207114129958931983990389388308561086108726895094201331297264915292109956422340373940656990561655839194730608434848956328721041049768790693078740775678647126938504129445438423716942443655392593120197744811127408463488294529249034623819329179258388200105677432159968593276166681661500159397665180587547384447340523340239993499019522551984623700613175811186162665010033611610662370152707351460009728869335754601351630153869555871155726553837591994128184951499180611705629810936095569376206998708657875569017536048919922961019299752087724204713260165963738219596666137275687435455358936846774503327203550544996872675822973750717128750806064752904669036071443699450108212692575473446077221190934350832678098716537092285253955032042627648686195887174655494722872280766847065347724143340304461315443081112020835826955387199743483814655004028313434952234726082725984688854303982054692874385444611408746153414061127433577802626110184711800727229461837741004864048611619405198661842318235504236925792376370440959717362685180780733800747462631847024323107973710972733759863817569930000219061310926113140801846171749482913488080992824319625391661794512294730558061199084907619443601200534096601372396679981455350917531384987328368802118436181481105400032060322610103659496198048308134223980820944941963142039962169054151236290300242003128230625510167977524603125467243124476180636630790180892033767975919383622727462402825220256333852269351647265179755851632193093997236941950273201612772344787958256330579806495387208529944402388098055667921821991275223975990759752814519628567652581387549029494983398068358385530903587717450711462412450672688828784001155041688198739399720518368036403193981308957043950452777569255591533546333829400725767308526913049515157043716410445096389053666859004416058269642298114478592268634000233610370348055633063582610914605550900982742440805663941915752545987024030546445920093904989622680582103320983854384509234385022350387041096668586570020676962903529449500863702475848041196498083210853566000657197534852747225391170190294187335606206270127103619138605934690435878749096841356051947859900949430341081219137550389302624435861201180093490406601029352231561523723381162693751861841908605517526655979831699362824342488127550308826085487460612483306520580610983066222765263932563701607890568615449208425751964281786754494912020274361515058700935645940241538937445712395665889467423730799348616591639398039610674928696818839345313202176896605603826658118604712699169073826341328959864833292031604586722053339547410862279715481762252449017626222327545852702501484053307220194510607921074497917651701557914693747956102384161441227971227235876447342206098651462870584210915900023551784816983720001476444318740360231970782676731157827487337935670396538847270147572659359802816429254017446231711693292631123230664372622711446933208212861396388731545668781523898640767935015935290028615266033118295397463849204267989393979660636042897911724510067904768292876443253991370555555643088904850872649338691003515343359168582057487431125828086150147071726958366492391271658981902911845770805139493216276023991598604218454803655734099603290214724313833061521358405299094473366366017688296974955047801940698742741070400713580390152022197166756703251703003639358739042334115918243816724686187394210108086482733926078256040026251413825986166926755459792587307220255734621791778207098893558314453938346452837658064328673381935754830077775715924599162251682372518260643454829565710853212385796749030996898014002781887649697123803408462818443362827550055077050373164937099186578359946872455457273013646638135560573756997726604000750593234397784409425401836316211447819332842532448546488758737001327550028666801015177271097551985740026441002052683570617902192470363851403166616186395093908457418766535839408987211360453182367581598868468309521047014519937820124545980768304798498471630268157919154374851343315687162104712198735711176432029346249801877167462088483077813349030124375753264290009366924329061405947207013279384034766554506642653876468619310003963469746610008253120319467687212069455713557637027323135255254250725551891458940537239868516614601387796027660742999218975030684787410523104421127917890359517966876151821181028281153831711496852435801965371478383737429819865782637674265156600945187380141334810184472750848033848125521747312793621562913487425713057660819284547739299296168049770025970873589582612761954292248385126985007506514604051101812629593528267172493323184916091200116911164146108181685087595729219228096704368268113367263163554836695231058773811460730721323536491437107679095730208584450410955078617792140334526652569990368598383052472128165114507469873739119209856282555484557967736451775731688396111711072182751829869509890323006129007452589030754928100372209307374039267468795508568041519173169627882774086912241152470679120569272997926989979189102198420735317245706075922806503224463249944067988721260838207083036324874894978355143325179205523442346482236940191363513427892521063529381501573960070120702640642141041608103706621222762472560209353033413137801121192530097313645345947628514541800216140480273724752415111613544971104860126530858868888764930291527775781986519799817277940277259146126711289337646294006173554998088021660224650888858031477892006647802722916953314336708278001716953174295404707854005668056963948563406543046303557365706333543836818993350398108727295370807419345918813127304434239713964707101468291625713772790130944441417269077296621190956395793456387229177900819552308175957032730294401205001905400624889023708529950920520036052974028597871049117903290954235410040101157055578831402331097803338748419097965186263265919461605402557941013554404310731141269896803937721600023591564068037491569918133236756837537758095384794697173378287715097385614379724126290057730351116059850211825768724269775335683144049740864654642566437060327188609358506770785438496205864258440946221499183084561176762766286531831704931711897327660605400022030017074758602985857913996757287336400946997151735389005093674167943967119671138090673538266321306305942052936250837469894465087508596901270208793391391185052971158601888018782646100202170053192935327340617207489947064160456085749242661491029277931535966442150806706383131319281742981862678210263726352133557465967666640576943619469768364728581358828899043371614192442270240360311373917240127250846056779772957537820993301794995426361486062748609643489085700584839554006121461803663908842012840210015901898731930244074787710758855458979716694414812898064677167269736683668898248521572874267645280212455127215179380318050114046619569180593460111133809435642096470828251017020579353821113836940022231239632412308514734236579556000770454056267172350003980252000283567927358455166185125450643487233138227174945967638523464796094582006129749202252108020846077333304613772882884850908013937105061600099860833267524636361788767338600282557195551443120456699406613818114921152526282764524637594774945923826489174404155969648485614197256727126005967292813346086532315453689880791010829812060282980653721898176301781500865886794813699341103524651550341356123503210624304625817693804444785155545409883311010141613481928465111467503339800240456165875081702797832503741208292495510116493154246272846811667348161273569573708687253346715980010480340362948609180442846359858938963716020125771468747255422110843931015489457820394854923095727558264022125157159988333155209226513765747334555481891022698145128156517647618408586253834204547860756332300098598812520503404793726078300269724993462876321817872428317129220852485638787078289405264010166755785626942807118870832646992081466084688747465696558782776282048459869036847828965890849694248900877352921771201243313823777507387301332189416451951443006273822018753741857032871741757384913671786791151377815421132689706905149113248167145478883067885555881049001584083359179415830978887909113408908885885325409548201407333463389229292861039105066028428215766167256103723756009943497112795108720772632423769133097068793476044798731441802478241428814381479850456374163794954388610109679854304686445721922591089246711869173666084957299727382940827223947614826032624880521480247023371932019475524642566984772968272402340797832279196577742334041207804386224274963431228105925486340950838146178457293082036002344520133493234814180611652055449409361318021501610021023209616922315007807469458377776941775739209172735002011439289298768813120037632855617651314029350112255938939261523489571679047239496373463477472789633165868214685491577887192275816854253387162592579987445017094787663759619762990196061986654763223171172936582281228734291430098355181107522975490289556045371815035420366690971727270855428792163835611216654952843142336319577374376592892324629442286578093369714576425805650246473813977364822220656204156294491726460729656129104763507879237744422526791010321819646043593970560966281722078407289729495340018511097636925510355796437205305345217194874311824154161724270623561934778848573549298692583050711839165767200285171166721407892871693219136790202570838029658539937513737134311638651420365542458784431565870739612241895025020694079247591587077069188916106529192885888749763338977815247556436885666215261650387220905778454051502279652903668405511053723536644576594829932815708808784987129133003520576181965364290916595193440874075413608692795964659355485276597900541418564069977611063475369965726519330809801399724195197201656672659592408497432746669143827519556339200554032665336946262236820318252207117737941911408339890255583393080972436234681431751498663693278736150505309551740578799294439317608455930982078986179017775933420893021086040016022343145183429862735439697787593776132881520220980795151541176094442889866932921039156116105399779667610852873744763441836123037303366828546151438736818320682792508733605563338269076633728748380465494338491928771916212175547721282172097664028539209166011027506879779406781712023511091603185221557798401319558133894950613682605267850683992878018537382999096970211897269184611917139118906652704785273176999108351960716039133208556265101692260980504896503608596483062104736603087990826929737244054278493997957929662038279347972251116225780813785188478537884426858009833744912032638489776842144658873379554569740221520120310195027787273604492439983973171426188803907303744595569364487339802855181207884040335232036604012553343794568219599676388624652387947981226201004049235023728429109672535177463662477091883636186111093209950252258045794508116677065165120386975516763446963839950868077789363425126986581013067550238445812871058292268450635639200374508399516902189124715249956592214624988700341451888143461232627554079289278876978438452320125029511640634803238300907990525441817288296751629918081702059377849581423795729683743742414181836386570496806137623987115631972321858006350585348557313287015447373452987939934567400240727938046286585529469729422916765958356138303102464274380609252221536295436713013891887573616445168092465889113995682740949438779666729938268481807516244481866389474480253131282997987071891769397752792914263968580331518715326944393629606208771037256224897550309357208828300642418450818180547293465981885002246888740084153186085246063563024839819564758925924607574225498045247594382091567940034560284227666799338555990526707019418075434639956926455314721652319078400754270299191849707390393447174191438242306362614761653620824238277170694009399870275941162378497322376168934005675271048438385395599964478152080129901164234245874911268426991962978553959800215942537179152810937181137650032253483447788757105666352371101486621282078050625474576329842034463622759830446582162698792901166578508584020082579859918692053391779090271485042247044458455063665115984654572213147239972233914006960776652477240079264241174685357348991276577805263008668484254804358172533798275726316111431357448572314050999662511485413547269463939695095282931046551604907142198612291427517078191364999423216698744433544878554753619723171799383955106536324626143653100342832276641935327950341398940605964799957935538609577025419456441092769570330668129871295644694040332451989158230301315997584756705963894906250220093789477030074243003617025040524012668736615782038928367045429506066810402798652913319485864996598524064416510257521475238294452582805700034055127784984204469997014235397502562232132517411127722564535417308811930932946913491277850312975475467760110384725466502760667021558512963439116650149897517870828391318446417680765488464666448902791017140826994324306555118703811597514241081615048613600007959112083489006700676125393276664656886412573695735629297129778991949464528358188113929059696432807141558568518239751547391222907280246975913750496640587681508932466477726407703500145567259754039758589875729214686381734728113463060725443855666153710463090430512981630995454268542615222268773538400490190829048463073418186630836403047612126942213070697993765518300899982757342227687204167091061445944918249536729308980846698533292828801001724003985949018928384641982534091770479696455206778273734602751058774284349386671807590986658669319378508315904983980847101976993775898321558883395540538331003578201702269079436588656065036711063874199793873104988295435214156246408811678616836576669023592985640210807924769276356760739839509893701609729398542313760097249944739829494643568861768819949515807883608836616212259811449141617166586744433411256576828809196859086170242467179824141507432528642147838867215790930834963795330270348268424426264876603106008103787815781608855585752054804892040686674164183068514685528111486030797755729336918412577361242881319471614794944459914297248730744048947441294004435130535255356678831950506023638985863421065069042051455885839569008610203028858614566495505129927635911195081912051611795989491054588819505234516904475966566255871813079007593365963852743636883642693315993094419639496164555738385041310875158558707441976357469295450471993932056873839649229017751602815628975047152790031792910063594256035244739701473102164106200689441192898281914339900002693132125664495974626254382995341855002815745481833982011550829600960686901502135463245039817108328610587866327328456640761373849093813625056704586965995013321421796589088523789147552970496092763926661811026007398361813038019818447380826395890504927326233198721480292200911568532516383710572834682117651180314077069738400674129149398204556023375547663116994907653187504936288387963749662427994085915011888890374795180225407692130952177428817079940941896367646877404100437407304820835183499876465480168437480831923096494316140625335871548604175182185119417984030843152616365126747498024437638967428937275700209892172945451960848785870957334417383398567725242214537520306016030133576344424102896973658281172922262306488371667816304629594994834761061478422104418116967628027513097575728145018261402539876553544078361850210455637714434560009039405503668379499300814102943940583437533276271405321133916431692807620945381428582495032523466018916709917305337242304293091281980063814198687523227345737247243021855970837768067966804470242740383102107507024894262859823545807278544612493006943639546673212101927012730981492028558838596272739458716625963371979023788846690457198623867594282142032279979902299855171439339776401573638587501626582199625745056598336775910663535054121011432464062401352023851405965556846927395990621680685733753283957925531951399099105780305379364994735082070036053025408035205696210549000340141954040513613221042215376918894220565283986803703201238524650544229749292420689262190119941213909411163766769822942844513134623858101171534799703009144718339767779957054755924798128088038381188097953176477398211637510687575309686278576237719364929562337326583766850379428599035289964609948777088190032315094274411075702286447701320337002015372489412978613500802681208841184175357126160537545906960699125010401268207361044771973430760388903126272229483800770171670603582443634057277046766672204661682775519270202045477166114075202233904992805126647513906703669439548557986278700103956236659168327857882212745357226334215161986602364571198074931782090836317283928120600821708818581255240413558206419451495757516962268720035106532003648412321470385411417975379570137811853269616736624081725767145128892991426979482420907103988558925262345699856757061008259104540120526862971565912059378465065441342534609097812372361956632710006367623366304250767419616976326600712932492511110967851314223059685217762836899732219631976747087941254000318534654173197492483275593667763183461298021622434394861576932914585883279276219045581750710742236351173220994022245340519283344627563782971732202455266378607523439849643066959535120373581857896889913048467202740226562672081610124003172542942591203204911065627385795833599313677724798737426529800638512756416615521346406969260763191958416499783135479052460741945768906330026056102293412791181225141455658598802317439255653667022197915521916189974060276539978418655759364338333406550923006545031927760916565224846274628677370595484038657456280296037695277266783328296208991760513422113851370187642113733616735145538909821091812822630912843227552937238824031158713939615732868594938356706747015445245008374249778875278896426384027311371993995628300867771811353121214849525476289818292112371097516127032565997347476081586874958413871928919481386910210400903729636102967825597220994695461621119220537334338727133719975687723115518214232677591285548582610969518342632197239391988290042623349899723060807258468119649199974059468231222669346815996370718480062157445287344644093293628832307113650373695229435286473306602220914755119691201688738808053526638723407734380703345896205550175969071622526219478563183419324092917157139029450503387882651920217517497408198396619338839226239394692208679345937772605470365770558869757534206355881874690467409670152746143070400433647743963720424566762692034543096247042821410895527633350532731636085241440975616148173592191048047663474130317626078331431986806183742767499934899180226196467931730815323915637910490490938624379865431825496533015846652109520317995038940657026727350709323358048687065255451586792588562118371803554209132059580740236551765328973532096690651953732340328411730523630276957500152597134939844960998780009270607368169565397551766429587206642236967646591428000080899432113738019326703881635150581903609383185926065293727301214626783132280654717132032955673022349430404902549501626575483149361136915887051606662670579817842832900402918139833864602070375855316960937777920318711370335577438838984734274533444602379655976675341643180273175959659732186201313866662320338584016813490333283877590392453541531713518150848507971829450938951441151740255896818385384445063011078141658510325722374948533422852374373777230972405281645613485645625294152306044583796153641281357007809542234701494927082089492986599954062096997226093362536011228034105599883548432316374156634435122224599273552307996232364246145527456856099779205147281351515486166307338198675568368376129151039683069665040505284908862727003906657632488088111074434005794720213198289149128236573609716988183386253061295982899852643302632330124788660031089054580762024385452933045461856303999150032402912996216368284655034869635240747446516092352400548405188034814073511698927301912793384902699088376544004991542656727209731152863381961570523643498893947466690952984671883078805995198670630988412132880086507202146622361198286788696049543512557263392034759835290146150603177681711813291077634798257925097484214975511395041894091107276230025157984771558820463595065838267819533916686319004211721431542234742921392865554250335861672453577233414482713789250627828160598207737339922909851379222113470987180810226362916178190016364012616342407802099167184585408464620369203138100961906049526902631505660032593566723123057474386313352592499641800833324501329141939431720588844435693701805000805238711282977559159852342518628632156794790427315119447156184308242048294950038059550559497657349507162465585360957995103180875807882982580981059477023169803790896932303195879213564632444566345298727390864093937600245427752678223853623547831331020013720514443885854483988910589311143610781549332965494282607277792472449198873193085121602810535009681648431319740418597335216313124073061844431112627203305259365675230478159111057713294174541399389623000242223083235670341246088236100121880271240508163945665651237856295749026196541028175186145851338931789011936974522089317995922641599885969075877574618141294819789894559064524822652686199385607822724098869958403960695623748921180362440386927529658774394448418030934939099589202104642522497839949613984730918418620381331173227724902560255665655709576860706570631169158362673205549858546817193299935640950172295186561557373976921766653046639294815171571859207065943353219528973388732626684245429831795250580781179724463418329670406525696684457989726491327197708900430811208729594069676783994753450048491513632292904557599376194847131123684551342763072397172547527795652763286709380898957963329930037909058100413333106280974802538662448228139911878687282177523474176560798072718102344282291450253519776225732642738067356923236328503545542313927294776797516014594000284593562755639731548233715331263836260379627228752389245415618068725666751389033989068424292049502319882557073552218813075684594263964502510024648947445436871951453227454592896121614638478533225852210328211254867306135011889029402946188242460202169603168612302149761015922021977304598979503030955520945341385053943479147561069024955398783912284396872476001769304577778475268587027667111141940469594577800278548109096043051003928740894883928829111496531111876227968401234809750417923854571069988605292902537168720407827518664982744367482861079365757023630107023507004524301171936221848939424531729225060832130302040339821851533954392581241099107251920015548805500337723660967061863082849975785179844351491532629684357088287738569637063212373245390711338194458156800633936819744209485812765836853381477458204960597810353998237132414552635852321704561459273124101819166007100449437675620225742819726018299175686346463324584184742916901081706138752793332870521676477180435126089224564732466892428494075934415344856599132295574161012867657961494123342417715855565684363050628967708077006254486630706634221154941863671287735185253758584062946837402020368494912973045335687161043278540815039159677196421702054675470074897539204801066331820115488672465160870484545782180079957946139506558775358250861922606918918516463125803841765831833741986774409783500769487576733766045342122424472992584186317040456382411409589504033176092830497383426491401043239436002132915812791870925409331921934856784266771551056087086498142081382021754397612775218172767959666801613467092452031524499860370292642871218510045992375627431820657598132286578816414613296905792398388320970720076988427430385536251017124138669790408600337366846698049739505073688622646450232483070502759085048771842532304383663705749688529243144892747198698498185586973583592818258832649212428765679646505622560285262255097655000158440607371462530579594238657471904518856137018450385659305993339281062368697033646125133480010287705959977249127728510943481985048300987992717433045662753225753932060545874178174340488844805117659672727326917789121554208311481803965039822666792527730523559658240052940245567216049058036114887058380787313369754553771212085951333605474859644245619198441609433260071922316360550888321851714964986854672055675237318210891388058302803548453796950192201132240904925902103306005586042002782933623478950976590733333398710904036855793293551787001097825296303522273622658611074629547379829988491165633924214687456944659255722819901197819547733912587295985563483117434255070771988207521785885863793415048520833274024416371075488268932333710221065109626432994177328237626719736845502658400128821881458416224258950289088632302580859807385067527350465323642433596714956740939612210584637562598239552770018641560861093022901992355452314531963267516590188468682344472417224079940519851794071207582792653345907879081888226946602286413345835801349694931056401583088963795838822754705852061612060217170241128246671731728061163115857187762339992244066170417585011526672693313409103466591488542108234833967921873464977120614957066856739962662902628698247494088376464082760555241855541909179178752535850637037775997961981116798618978512701568224151571420099669778201874951447516911199654192604812816023929299100087098431497475848652267374537560132855253128799270707453735253728515537135525420142603349513529176692888917691669245586270892672731770163077703021594887974513563022161578441533222677772312123359125034142614514563823850371182204633920097262661131631855852771622817424144920910655362617428216903218015090477533987704822055050023701081882676217244029341292016591662852763628482963280986938543726029035890231821268561004948982182368202514694616251834185111201893989840770910834966027554434776125065284203260362844113619732245986683296714361363313121000804272968008751176710945959450825350026060498623560486154784411351027622086592599876004572664675584673407978589002002904441428464127343139732702989445457675315846451614843079675955843778922153946947430405025279235630849376796453989710599920013655685096933672720963984159880555660964550240320980812570522903853235023352033891275643641011843319667380698464984345040662774462666081396077077276589647468989339217009297013821342636796591561437582094141419471468032763119368058323566938477426871727680631667806505330353969463881287693620166238590485174477925641631271787368435513211367303166690983324398256007222027323595623513106441251922040463428116513201936497182356990269905850877920239959482394963044932550644631307826011973514860588792396622675623270204056723923123689959264112205987385269401873142749559480241124075418015911468204422454663814331143842568367149719522770549414856700257890044264527902074238008360392261446326307042454757282127617503983108295476651868911585147983716730600042467682502857762026122576772461971804126611261658027694771702291242504394354789581261694284130264301507833544831242623288680215258495985177902621679960401769710002212285532156404401532204798957231358497342411779729705252697266111309411353724076405516842818713451805078633134788564440677761680039560867347496373134091449276829725072120332646766428840204152540917547925647022154444094423804219190035610286019055207454857126303632379894754890969860326113220026681845012109606603713534447973307931829169694872204260955455648931366493792679440586910272930354172329983693754148466305677554229867637716074943082564840788421598353232844264169334596855661126258821858446058139039480834369034883577689567371247748664141954484759530439647320951783448029373395773927778739732248114998835909417662911825609969465958225170911708841052239249557056272914136840987421046848250838258398068395185995059145082682604184057704581776954106294191602601343551383980416243308354238930669757693964374701037006571760452109897583476392815732753111641241853702421758642921229579607959412041497809186057412337545804579931174116409710002331471495162657764562048745674009999930164448797222061677445275517735356521250373146388568976306823875058613164781416699514943972751555209600493657570708906604252793385991325909514613918903840317660949450892446043709746848772369565397079444777848095383114472740610037163949489346900843005426942857235918636321562411075582322627989237236931856594711197934835382016033282443519779428179669992113209441962542126646642993125734649904423130410202663195955251335460178059416871062155771560805464175905487915484515701186919004837219539858132639307914694618426942158946565191246492933828219962973106830635948994228333149843464802000902998746883460195078160508161222390435919919212404997664765157239170145728471189812831081950213996736162441340379276813814782622872635937416700643855191597417225993735952235970902006607383469037718024048827615167871983748759495193298056608154885021151563361311637687166657981776393270325326714498990383149803169833988638988640478900655796402402578089360631881677317537921326931745311749696887044799230121305366602767144698627029633384968820730627866510464887322603141275447421551298627816375060571756966987631477343567037171991764152357188790885731791402302800385690895875079391740465734948632472144158922957620569400487782350003076220927401106363654829052972611241711260559917623779635947765339929092530479091807346366426116143339327910782725347727016026483551709771578317031138976027227385684016220918736332737092254005210605721609913009168698003111453276032310074152413076009759611329967359454213303865447111235991388727397803378745706360252084959680363394853285242881830163634316156618919800610909381505384735943812078806679628611547699524623227458039670007343572195661701667710632573037422225905087714752799251800634081088625722178132996789349657940763993210767324058734307749118859390783145681885287489283303419892377033956219661250203448787480238087801949755344432438817477833294171955907209267538013907163124369124194838690234541396618524088618452202063546757339153784890711974578484490379814083716673613430384121494365827255101005386435303689231889289320916159587831796599503683698294171762721388766425872435744516699906150648731438272337355558801499787635132401117626959362523063126077159963667085983638554678122946777599913750794372562119978906452607542453676546700673582280822023004352011544029534391741337654413619826170300928850450183906292330488053138006601990620983684517392496556348512124830920460106893168493702044084378294965902982835040816029222730846461732074630955102572459454167244679156406197544017632610324958087797468330090035345429783275869558569276394114132762213754870800331279251717273895356335124873109187715108464921259726182029975107286344562555680014257900041488477334042729995728263579979379799369342477792698292022212815393682004794533109303161491326544255403075758730588610049045177425907541935291341280486314733855685859638632262967788123164268635594952189631611491875613549378706398231917198806231001423338439107542498743397747972618287355439747385287083167469331721288396153105426392230389329962591450765840372708426468103532705048506704557725802848770492784410368031929175051162348048344544740560075110677402331165167658470387387780968779816189464889905543132700736705674971646300326892495730588001465440760469867935870207924078187452571274431199650768366338426757783987702446673707292445491503780810423677294641000263431897525651856113747934438504165637794407595309137658968536501683595251873709635727916693932344303744693449340833471410635548004321554048624746821154910985965163329077819739977379232280634036117826473062770149721938029439308070143492790154209181577130388614610724053600017962283674189981536703009993784132573533685980261359600957601103463289835961143599510350744332726190254541721015375709699088281865540724480009095803234632431438983489036067040037344396153838504039961717598077015332686304351572404515905434888461741167436753968513510971799794649620529266231732404575204500270364763287634718856644802523481931501429424045811397530402888296215109420329312571471466274221240816794843904678612647499862267172884401098084942204093287169684217557048571451964290428614450286539412037112938572031401224776701826054633575272485286795906534372291599214596102304313265410588669441588248357290682893699019950764866759710998412851401856637480147483014497464707444098334765624303889012689433213315176308808815024542435690483264008034867185552379632829859301619701382158811688089358274981651495889845859119198829797860838885457537715820375961023876478992197977709522681949174150933556538156446968819110707648662458219931935954531983617510253799099314053466080681435930646633387157170264018310670630122772015608275715511371518046072979601700994330161135871468357631050671566848400165235811582181058583221163809599464081553652690947972083682041895513876357879538217510211674612550772494640745242029885758986752704178563177128919046127302989497696685471988593899968763177948824428496638579936199502496495585340269475536849229079146917023955566646116736171364541403292556544891432376185408552049885559564864128045701508630067122388322879691999267739814995639033833681872038584617944688231555911155939907684107193689469421032750528689697232576526026919840659945503977385043424038778520721423836389933151508754717866346623927566628217776610301241058253539167485081811754405230650548438865457230625789247977181734058455850998066793090087527730028488124932340011323946971274502606342506014340343069019150178732288511438378946548476055181606184154116012995647507574991244848765390224552416119234038373092398662126075453041170139538885151939775533095661426958255066428222314467190089920888454287250180245116081870536691790533702901081546878556660455633419973573092316110199989702242974250260022870226444489835667018216403465990417636569793510085101992556793654942565413236059105382997089487079771803233423389159308551547078743445669655003879944610742523712825030846266624149219448021704214260669805242700869286937396993649299023331060428862221690470454462535576232552874815303978640339979939088878470882884745142278335091918242471142969780641571301972435766740539226544977856684314869679754994774375468837701604342231665116574564605839129584695822044807154825372488871780947773503728451301094133003201265979725819498971070865762560746343343723175038199578351190339002961603184726821337060136930004600897229925334441003222993373575313793054791286180695871029876856334595610251754604868632961484138065277679261457783634561152996337117725340607317876733674483544115247221659113528790543764715264822295000486033527722599085516627623210949656112662314101571348197201206190640172391653587960244731967289037891309590348187726101577725602178633111014570331766256357128867127771449227733544869621687315810158786850943593555873615803724440891066934444730029740614875361855970457166374517354983625574780408420129394124522775305001744341672149156082415097511035071209124453082022341993413927202933532554784505100563244673339521210030720071510899051282800544187679742191682628218323119546153907021112639402999496861431849861718452591204768154161512179086113494076837790801544508292396751594530208244681970283996183093631525149501920093048864372502154861454575629957274474878281783928318117111932198323308439647585841845341192146256373359364136116265311652078704359874535772717822360022439340168333491813765701094926099651764793861115467548543615728975615977907452744098042516135576705520548401813911441380396669318994750985962651330516431236709651704780800235418992626511952020121173183781075341693797681963398759284698881664704739575174266991816816632775843198255858758734051822418081903087865215410107567359181618814585105100533802513147839347076467633330479881992272126282584105301979433119506596573370901729698419595638035513643231687591438290496555124178428748324443487295080390269457089322516721226514674806964962459313404234586094408186068608052116537916289296429573440477073460494042704780192521818148616535235526248270959062658416337807681778826610751273403875398149507012296291907675331573396646844846783747546676666017521444461684294456554520484311489534086774852761502697257509052449091318028851458990799350667221655519850156037373326435943691165426632799466404944793896211914705227658543146944149196105445519258399051557208924790894304448261752569229458914945125589415467780677998074831480029470101296046313241596657269004349890885054194446588383740849143776031391111094553634930009684715808663386110249131051965077306449399122016555340589690490476532459389471640228195386774928017662724024750599184648107473567639844634887330822402820743538371009176341321330829727990818397297306508343797077126536411016041409050704079515592415091894708745692040713555431892524778944166100720307397891668090393054830284947005179886867461738879547214363476560860157721590764451613596332398781858026141940306508663472475221804562128637801344720985977177224647954692316724262833878734063488400284899602622012034864953513977392208765044643061677751326919028457584219587518237406297894265088973395512611350427956612542187152997417412797779602265797926197623095385145576750535032474701279285983553901360376822313799120921232911188726452206957641150227819159840720099865774451624422416471188865820195136290966022905165371410729157385621030098490527035216683764820486802011804124050036870570044091367170783374719732994811347438848423003969952698628580350804744467085216048611780538679741055490692963214018458196544282025272246627614634150684929022521852698500501044155924478730866108498966368970042478612262440990014699181734903431440887904868368343445016127404418477602622660192128654093740690749343475209707540123987055117431484170454779469063374153011811063958513879391337991306986911338606127149363873498998488741355200960193192420560560706677842260851986918347206445802031496356525048564355378970366820877061491189830070782764084243346140229737437827274242091508741321244437995586293726417012831429576769292168487597189763523588923452882250162945434792802695253286904455621692416068717400873535151316325758348949722907958021271693428539970601032813818067197289516605135207914899875330091433182504631730270369374586377407437467878536973454692960042854610864408128444630075268591542324612056226658068046710178341634817462876667485872437618217943143082782044214562035189681347315108571079248031878231836955459555462753605272974686661102665768486731088194778903211026665492724658281145483166746969515789533741439837959588937678967020927048042819913045045068643523848747291820900504543804947707932664627896554277886136626440998973301473301621487250912146357343781074356573107659667990101992837750973978798925313608741580655713963728317781538304803096519158085436074401733528741002033849920859976278848678289831830090651796972966894577572221900092086762121526577273471164678857009907423299372450192909558772182880149789662339134876196190712993981298370115449573856735881405036795083381788452806851928251544880932258344376902296850049005598442284472177561622436199707043259974541369308455028617908073717742904967155468026942707220606828581645783729088689983080639358923841957271423677436037224358684034225762858442712354136299745008323483130225065124825781957978746508424414233463677858591719898267954299316311571716379592373200356353898699813548853093744663210897481831339942647316053112529888191094747843376321532488072204564272332648994329503512550381120167926652283956058011464947159919405415289092633491181291489680583600537620490583007079696921721264184751273536828292630481004616913870724367217178601846578293518887300898151438342149992697985056986897425761350393205348476964160002337525032956563082155489111871757919205044376547046024823341700091235743072462524234319855917240185522639797746489741364684034942710557286929864948761203666695873615635707661526696117912402941190846321321110715415575039993101139277179992671487992292970501383654800591203958722261997725941867295110113867861394062936682469299228425069821192179828493178960426496056050152737987350334170186884638412142617443918965745314952587926498823062715162900243187729013049906587857318143314440229439412615279742631965637981253946785625326645038577287035174988433913901432645844681148710070927084679349825836345554187243304133119662034070961888696692075895933710508525198561127770973334534605247356062589745941524501838379348409814978375977933603603117828505756570374086072163100723982843272201838218321713118542328677965775269417218679633726212995304163014517791517544422010221469456185768889476305795682646990256842400189987067935047827246475962449231566381690873950808625109267531408559180344120405452813413583461450104771621064905551668657366790042731433638749989659611163016395620527181000381132283230769568661609029833256546402620107412978279902364748372085716225702615236852277770149681449078359822700023125543585108236793125306874153001796792556883395256682250413438476805452143301055689788563708058152301955182917628529203768158913172610488556454648238154506420517148092822996283582976780202821662016453037521562257045886292617268542932277168414389250132497561604481516693004042777131863728551343680893910164245632976325313942447092249269061956082123203222990706945248200169487002818506584763772469864416803767982176060001030182510559695126325226345701797264645274299892958928022342314429990135961365793864401073547057278786440501702449448837269928315862325004977047549303258986516531744721819189531810272962859622121385854027740795456875843516051159806736663786007772630389866853470052444130294396768181537557793416993449646306788854604900273214340744505784540031153375689064019110696161021280980213257767092174590588803482518762691648583112157077462686185612509199189457311362014641372351688894932214490217861929597828854049205499822010568015123341190418080268818937269697709435196783658282644646346935502890395349939052217139950274767939752415814197060742005194391493418717677494888938605391655645934632605507170399148631893162905469191954858296974508669147324388853896549419002706524013338415180680949225002047789499718880515250903717674553824111521711182965944209628871902983385302329397423891242304733807039259174974602650029687524349837736004669499599152244049653259332771134552495848135061916842918207927198824698801549105586277781971416758842498654728562535184799560228944709641500569143689948609898441361519835309500142323266321356442608588200097155681365226152817275622267834482007156228962010812687440392636849105944233517077211178330196585724536349972617356394676808459621386983079876280648757609752113168610934586875082021172544481275872601872058907034922895227887764078649096743652157744044852941598969797919902056251299747813058976150695745635881182068424121422240971763568242186364578197164716018074044875885440142532773144990532162513752045867296229210936946329011810408233200497105356955758931913937097581895253436215560511381423984871206890721703994556711950628543749536823804190180835195396614459433093784152867300197676664725915538515529773843623701438681594973338391666052254803957782290431818255276670411734682492479511653033817769425102104212392195067800330682667909012461868860017471245209718099640383021097541386719843970649983281697693101695867505013564840065021211311991381676147476404182822835630928452035265732606063914418727943557908172979329175211661421462072992276520083238833954110399491351313642518665361586463922791865277992895747586042825654090837701225653600705962838520738882408304181047500480886191386988664227636084129859822564493219710539894832397092841946285557762344279730959951090714730167994183652400045942992245156255325373038956690757964188281181420421200244195250871642025199691391871093014506083097019092495731844190291065253556843316690436602375407845538141154405964890370199642949852424542462247851636132379394338049163451166112959867824245031785034856196695472863738878398462567469201420338997049749519593690429803346417078558878065937478579267608676744048640102866976359612092469446287362536130076193487354661301672773439091236401583054579373672617559354715251771383332988853085699980333682221573660747314672462057250148237236225593065639913555242569751036002208815139310209254041243076288455212095079774106938090201218564876458829000380444713286061536403752975830362734258633763564791613026914494600998109578368418310171213806596434029827445557301455063776663676319678931056449800604388358751427956291743191966015489222085520003715445285954465356643815156704812477841293962904535737136985210314672127977115822418381492282034023095210155465158788178999111177074078578472551490001510897434509837770915003476993085673088902144352561876261192550651073999561380884872082320760966149262919576439656981193382959197650696137070958593959207676197948879928140754871752075184815036386563852361139035350821044561079568830461907531594154344035553390133260850670328370254243421397014528610981548661577699244643568176515664943869797744056081489104784404623793032321033704795038925607108910192077699610331071846833170835626876613312430357942316592695801101931282337183661733452969878910745458908909036336200224048748488228862124889280794043733404690118963048114140870172666659603628623768899881484179050728482266682632551535720655373862171608119291731996886536467426872016039005821723183501849564748984282729399896595073536213732050760565129611193851558066214690469861366535000923127346462284569408747480853139732848096191423666186396745620533126809989539762156475977690488661421144470703218853304760617872646135896171160454983463605648428035133187839197890257831250797151451134103271399235093241634377124919919747707253375914064786767733232418495985512866640859471267926986724383060550852938631933243713630090914686668256051913495349846863069556277735265414121116654802844971296897270501251666297146331240824702557444500206604058677703795683380815293877823249980591534556363727073607699700062087536205400433474808597328109501027963084474377456172940747242537964122107228954631646268816033670958414318970418600219252936387249578820534357039583038356302973913084730104758753621938525336394600772341450822614692597688653457839193888207731385268276669769406847612640597664634385752908040843497744283025232227663767273579292267403008060664041290487857161971759128380854037322270873303558354585053223523094769571242378323077627103966631460989713752929453577221569306210565226629498223414362128632084550902816846762126636965492225030289720229845220124078530910886338317027929335752694105177578520877730615929289392266891451076263401147190030000461324870554024529472275103782177790422094383908814960106566288713463137033577957729240723567804167417828402259766326735937632275141897443783828066928377813373021752306339880818489883706421313741942826198819793481442282724381276971562682465940042526148807503953590512991807143606390894617527559808760659197640896881433692832640858418266118493123537174963116921982801972334679840171607068520831679000256320835669331546550867247186111937083926886148312306328382443266396165814618481175144825481280905486328363243088555421380932911069623926842596012455933373741189203188192782055340323206545765978693426249899783445675287002790078753827995503651001368038869152995511063940278157097809088669450123079781252685562763988856941081610144248742195442104896408897678065449160362390093047013872558380377773557645157310503052338706678160836892189582223902913241471672325418796052130822734674646233270552544876618930564635743170775591926042297229443645370035970425864925308778086001920146344392062410856464488722490612134588388183382461262135943485062340969175945360271939397889309332773623176480608368552696674674920650762727151951930434306072393157249659194193311119176569489525935712940745736961970949881894624742783046329732689509674933511236746537125303825642007522484740071226035473412943655219789061705920550775943765641799118282729199773567114999975468623259898436690763385391365605062721405556484616634531535948378021412957679419635098904051933661317584048053552467460012166702477186017931669617069029902423268408702184163732943750608869237511692031990259332905614013188757809397890350892067535172350553453519141951520510210835971137385277834276000610413509494688046863618805559055817577984488796528571041724042277938998402274899525855674011286657701688778749024065346559536852741624113058518861867524524667302435370307898041918192359264411175935816093026089145419771784301051529530578876345924253828026600248192947877523994363882357829856413176268260580283981896205465705833447383701091617614217836036931568901448650287242319184750487075420496235415999367363620645344071385902112903554060286440148393849060662620426179401513203089988545235805809774721872878170094882803832903541656609926050720946951970473454465333634210880280989963623230507151225008640204820009004134881251302524422145003143016169745409482434171199276023317102458619578298961304260077186834697212085341672492437911111838743719184580260947023578622887132247884898618771589393576416190009794126414160737867852162965670936183813531583094825739720381386246213002807056573582277771088728217190744204028066191839499990661640285702553849432242411407022860947881086336093554813736965775644309482581621621274068039715793641192731855757327089642221963460696865486356253510281773338925238308379236266287903593420901331067531056302969536536509912913527184904405591493774291110166992850201790324931369892328247628076911144432139747042078827258361054413082904892247840262736619769222510500549569009121707143727669810181883444552224083326194526823213371633350318793443915183963970238870066745771065959503408646214667993660139923804699827206847520332841343314441967782848764993179231929619011900848594723533384946041148572085909689472904726005341974110099765379737602618966304218753186252605864619403922942339407510307725434834378871581102056851000402338668457000322077483273165368576565052023608747095071162808138397656257650526154522026881817835903641336769643533921683389206909534361276595931182914221498628609748534483207484783003814482676618155349826415849969970776144231228310575826548208565337058973835250864962712868300954006351723451319946008871647932816375064102369526777027580230458493101347258828467721112671532536968824167458485631498731821823363654327566904904936890122364726983480196151295416167327863767921788333879449686905629801685379874390747664805445755390297939422641020772486693647256992496759626318095063032070931948407367545642507271566133277488679096722386484311150792938598527165023198877322642973466092603136377715108515160769134831529193499264702167981864132177552920676426397135698062594420141923914774539263453990196707367778434520195308293202188129724122035360333005010868681391976180934391859995735099043820199180696195299969271924359673825803576204291014285280689984419135931171353078169695339511565186357903482753766536944446840409426114173832471970671149935082406945246747920319142739565199399219114105996804612013523881041177265941795539666477012418847041777802303826547836450523015276162565746747337403643023737039093058216920106300090771656283104124908598444473310764241777759976894364702284221597358741681689317659887097612283155102907689010570934014363061180614215186435301343673661750814004730847864422140566354912102780131764481426499410292937289202170188189302969382927580368842129950403056029567925605030679248957390858151234793620258632346508919887566879338543918342173498576296687754578208760095555974354454266662116730846600749853707756521118319453704904264890633218951833767681435426918968776584202581608631753381364346648281060821803817332366152156801781412626961297747638834165782349642574048535105257512409216132958151636341337492727629736074679759044782455243459097158041721127137023278779028514979698250761426854485055677863134296351928676349223106139120679484748708580612237349863015607443474346889574418545662420077656449362561190687929569457934904642938624032608500263996466779270120969498943478221363443359554732173119793822787347612904768805192905063740238989454850153249751695818333552776800887511929958596746026009424560258479303519206083184181801538002323674191047372763930087921312377898399776681163388678264333738377156389247615992863267224629527669368945848923127046644361432773914823922157148310443794829294772376703901649147752855816275854543703675088704349712968309192781437164217334733409446253283901347447603282790438945756908780503775871879884464287105123437440106974942943360160382750035241405746006265051650497493148280875216835730482989499793161094486562588781440933266300726728547962723893269637296325742368636777398930311516577702668546702951537783774998542329792869980779763574745626666534489868450124836511630502747382995468263663595354150555815115294003777890622392343108319591838011627235165934566663624877188967792758814455963568020764702188993587989588737087791329595707183651174966397715402449034111403465911134046358208291580003636112801449601172188162555872765733917425071895916039479917732451718095145154935097220130654970870607017923036287914443026749124861820574615050906699913272279929626162894445071748539189794923959484739046774552122788654502259943213147798310113003828009278745398121707743238087546627084270024318062768089014736049833173611394571337211382572072240789859425016100775072998200918550454949457272527748350748679208824822849134289618829652125992974003161023323993741969349329807876191419106236096476448242730325389391008452873259669860665658627128037974527407367722575745312538292036900201391702790501115463404110875429472851371744197336432035134402183017125182887351913117097129930897819242473997184139600823155594080236286680080213904213253742768008561958702067329739636224441400008124436653360186504802922413117276948733091290184630913668244507748240695156758481952719539093369521528852887767303066778454745539631074037329529865949635386281989775205841210938566765875940097248241300076992735021588513235902207057471629838514548213481939254091610165124376339329262941242292556248886595925065262682889108314070142991284307372271770943220554836444179370160027312976128157738813484326418338249319678645878942027907214553596056953844568114156953584500771239652046596240212916234217704840965486740161026398750485908726422924118149866766834770229446938997520676893935042610721780745924158662708674723631173494862388046476654883419049859186384425215788915824362070777075562182740678073361049528645493785931088180229455057523909697611498072313725175823436910635277536652261661178787227581823989810511734052499823863835851473749148172360281731096524148185171659429250214809051132639142377290850484709915580265716528593195613326895503638512010397623444818609187510625189883168769375295722206652934717913344342073705861176740196275860952965044695475768493413830509787654271362518038950780409746468238016391564473420932627092685330526738232181009169757214174580777463736072714313406958404508637506377388136639562776879593250965852921101276737302625079003414005737033365851594444187605904625813807180256910818638600737910494450269367528649305112103838821824487919596215366320763712265098316180514304799452875684334300517965340841487306155003625151685119084352949845914451119892391349409826824747821202154660393779999077328189365736554481425897097631310594829167473280431005976363012225503600039832391764167692581805310497490031010339451868631432854106023058643451378860000509529788250396758742849229366289549378921933391544958775697571754803737088719681855122139699643554562210735803345313058306912056247614078127739040480161578620918243910534775859334335492907385866583491516485605752724382539275657152023791984504443635266017813745177953549435389678532980235359198882458663409187042666940861383106264932083954505994240407447023770947663875542767425433035497479197295023892719300333110692351263551494935114388276327221656084191399497025493476770004853704167621254617189036435363616860594211904168442577014177479528858015692162541748147816584391462085985704152559814328599818325355621923129299394375028309760974710033518476096744479691265053846778377796865490643775839189391923830230286802604410486573721899998643868027864218828011223684283394232462489875701643926495419289458642113229243498494162510258376314124958538863937641002881288906980656002843836495462573873536801638399247541588157790407220944822925875785782102648135449435489662903151817356182534997320611582254747433590742334886788572519059317637038946456566085239563747825020316251652321672957999018393667737840921295618788278241281641759508209678192636330054479919103431017404567701926577974309879849878659271385168223781389795686918732323674261194501497025486381712725406789650940494784413220635211680774167716315231649368211230376251516648509096013708705420440577263634450063953019436671046016092485869496401302031688061140839366622682910947492912639265341719779364271358938285509213714061461476147674979014369136559654888422452189945911671112886811057049729353778909625653042898840286946008975976649433507052383610331951947641163102476107055109021024467056416376900300308284122641380775352238719528288188241816519799786089653456957801353847324567250345218506644851979809008471561425056527267633223741379040620435695453418602281446839147286071220129285693411545017347849994735410185572429103286040859678805437579728312160164507989222749430273526769127524891786226268997599325699642774057261803886003194034341425578229281365439986750747283889206450660916551217503337161467568317771318302527780938226666375842084827201568687932013987684248394607711838338303490722255450251637585566684139076820362445125122251741650409238352324378480258975483573052886118143709951721445490480045096868047611831789813364117132051817325588818893553146186479681169397205437065354247473323610608212920361002887654264471664906080013964625706101598636616673197346404384085544480178448217469312247162491003913249412224817726775744460766943237348201523072223791026209302891225862810259403947249877184836234450683903301282402680768600296683289198797079626171591915567683050440230451332178763807830629910934393006622331131621422483577664378620504986149023897288739877297403771317117188050072751054081787448908761873910150649775673808505111124499587857340629646619207536230492043210934757084245057311352343771249354595432620654730598414733581312362808524068009883090815734720735811991947189269872638638457834603009129685882883650719558811344872038022951319501048624681178160703322814868738893693851927161170402416997949198709698478274767210507392659236468791096946139021650104711345691329912291772448437255992604701195445633609628100354990227817842395341343101196966129952433009321247989792334820044963123238970494968426831874203764552376849713137161561767926103389748514979418600990596213764741644935242507932141785368738143630957654533313892232219482844681665064875556999884940434836987882379234384519710402951442990452829239850610414294102201668843238671202191999510202467199851198840946405861300497215290191438064785628317475816491615531858720449787041803539827419139456978211836033025956772594355572941278377247045823471852855291078288364996767224708789613757646745626215300364306070185878890865267083823255902291052325964280037884719601207608272965093987999950823373628623126971173133847302142481143623837443692593295472250868643822583896897858332301828673717317991905441002284750592953028411907655728230927210480451145716455117476149666745802568635830568014302659669431599237869735405230675795163723301738405905354666947459131696512594432506228447228821030740628810165568879517099477660968926599263247934614104852914429849869986452958625390487250101972620108461521541788721413611438966094555239917144425767712709868787612891172849268951560315554637938256117767930427282982008141351943774902813208775822125677854216736212507611558862893848750743513328650666818401846159566840183137750368530690284003629610588555088733476897933340290414602562821246011697500485447007006121408922578678087251900544691901047651370730899499174126429270212406021967904898718582206810281196469731022367851333320219012741905182098306990436287954424781811557287189392935822607082303744703919542044030149715478893351071210799913405633073313836682463186121964631708795023357379827802225486052782590493552318825041011636527854338756004892920430771724739523273313761529625874837004880340950312975210475532729072734711175709036089668106271930395450974156806486044057733037741936838576418305309975547444638206132149778620242197263134797103139791060169768893102414949105897965171114454717497389448317260500079551886188637634025078794253447514938721274579586608135556966119372280707004515277987363973363056890567776371376336696036440421130528715112330226459870393197949660338733380058904627850848938223500115205623086257825389051280228592159759209856591340519821659398978209123770489782796334642183605536098603474779609798298239728756384717640390074333841584735396073336653300594207851345805781570657254730227417602336179944514800416107192932535623541527869810448664998048689807620153123350151361405691844848516394880617431748001735117444381611205092985365317136088740136517072499899075204631191435665209298036099906831332301619449597943764774300632800848813318561494196124818399512980868950115540728404673155845548258519389757374818181103903472710722963470097262318005533500870744159475040653005287833398685227221713609267679550370536252927850630706542999145157975482598347398295888903618036969699352688652001628010936788888503350593056881224893660652742080304788428694343339202513217405320641656765860761196781861978576832979600987491736324501241932667023001983947268535462239297651417530372426381976248216866335300637447148020567213846798293904707502516706260964598152932570521068332130843309922654758566523064234273162735330378969556048178907307472782210288327460985084647408828004893817419945669073112245537805830622911828741943166323916995823577903087111225370432555121106623366478854130328159925303062824305786044667982215581838246159897331753250887820172944948627695159501942168305862303445537146748097819577231775929040174092117167487378358187243584167268073687651962532224406065946960612189697928558874750859788886106054116834260800733874277725290590306026925971520183619467250515725256125028997417552635963365522101578021904522440124653355273569628735195635514482694267153137849527222338483311747012230745868611178290225748271141134207687928863730889558849563560301131280771886835808823484545882202647695815444941664106832672311502839397298077017162492964974046963493675437649185544926079286582451425430183042963379598218368089208715476773238479173877978393128767181462982944772327123014305631103931205737775970868810602268484668615396624959262775532105065448787866385174557631039370642142153515436101314150127842518571309501120137413241627824811486979089671352362636794223762108000807132136554496095992350625328283543107851548034511739204904551412596833507478067287836012352610298804202481618302657448023665975462383698105719685871566604029550839591900959324159289950463484980310029752493124073901864177268699374648137761915729849770148696157315994898173496005670960967071807983843709796617560175148121120969015053728206674445332301156616064337586990649502009384910359652203375440293090739450009917907362590092245283119928485906428302785465481002819846276051690333510316609768079194369910010899845723243591720449694478820535726540719040089270662328751805445641916065717860640231459863754747167534998239978082255482278660332912133539899661536395935575072239757736646783451716574634936201403334845999736924274205239583848679917072544453114526225020780225843536999380002950930418727904959224199915103233035118285798259208499628890756795676754571846982769292555614201123408384676254042614750394992887791619617891964315654859946675043597090449206364835358151959862902062338300890150788201553869339226674542006013945266006111161458787160915840701870583765002250667352150143196606082752334503782230128687987297546306850769113618616174434077468276615656030013993411414330337275806175101165216444120571709795473606826562439285645273326033211214383668761436357188617302401440831835664293550543239675254846572529352589168258733128392020640879694909170187210664803003217276286594484860648484158765434377621248485063246731752494794230687123047970329282647847415221430390732005199833837829554126798200463841206904320145822647391045562257688264709891804353853649725515933173039871122772032504475613023405459709935130163187825405377552002831134734052937075861521781651968277941682164210637464900622566042771994666452410925579010122538887843626117397301456464841633784284681352643257541513676970205569079820866117538809762063363367619699279017719926512860283459010659927015372673620651598699052122564184266969968085828027131636407289564559340725205471920492929186065945460960925591782824033750833380626739653772640687756473254309174582983847761238501446843160604317363723500186243467034890776085478977488433067623533676762530143793929523367987622505999120447886487082112490726647365386576045767163217191565991920056821733471490102898561547948588577674740783863771985508271534325398274932959271311932497766287784126667271827184514028448195332275102579297991790074696335583711979547943968113388225555133880983970325855551703194901535717285089903726464423092621953483105854233402267360550023727665105482932197391318538917935338779829586381553053040188698513322429070227903543864946463624954282983603781944566190148559238087743069365576444624810309169130179583556772204512807203486686035550108682916856283524919300520336356141714733178614122429621548506278009168943231233671807864967298236197772621923297990170759288761036744777346624032501977108572691816791397286543447784260895246152336822544058741104800798005038203267063650087743877407923501130391410718618437976465600126854834783019057966769176843394477760922610691492648186104999257397251324293164956961815319172892540964029176193315075774205591747533191751390866393057920759519529795684435367981934544079238396704797925438782638661427412641173108290388458878903969202456810726525080039138702407879220324519194922482030911199370055726676839574345581290678009476158570631458945850784397534056759782769310547289359184648165468012798238845154907218482116889373200327680474585160245795070781036021648965761801768271491150471989395433517831581647732775113085375657501439770814442273836753013131910998487476360376475422017230928161147298326400689003581802349166680964048317833794067854486531350658540386240790086353018232558622155814290838081631378431061802503394845989999003959559497298857148613873516066579651466321217366463352314510058677208648507989281830847683615833513892399014788420118488674139888493243355818660014440651025406490036706073794681376053592908355788956135194928567046052498661702620971731620157438738609699562441425009139263893380056153453751168255457672687490802504905350939127513545350423705786695735161661829222604474533962187519847841662986266227275852256003047216116178586193092865896572195963159286052344649013355748626770858964680277644919302111213622764532291749780515652691621511256637533310893710105923719572954569800198444287117173228396218568766758842183607021353185897737497511081069443503036484627321364677306350640205222050904709063148878822434526791184810718034516973649866338704239446226729335008773183809872198270147557133915674029540866897172223837833596458946985099232730115501851938215984290313040776294849574676104249730216940147211103298976913259707022698747972950948744863546976082551395999777700020605601063607205544014741752973355432201606962128477427998687864950878610495231631478700888739991624360718720250196838387488043307843279385764656785932053585387240632895184834937533979878045887294353703589403311525182585672342885347745122426388939486030148345326226204941028729185532298180627656697169240952949781437909437634372700164055546173501894683349451067838560061501254260103978894549042880035720376806607564385351295764818682622022265427179101034263754772436271014716650148304747136856923524716735448068463331281454246549029482420608490711521569821296060444161060077272391333069413364018582549187350864324001163621753005709533034418230290744383975482662239481383675949576496550618266723498488526605636536729546080446133099387046401041368704938549936468187079524589157097771350212866661854899238583721639102415447232120289921940726963901640308195427589971403124251282971336117788762200602176656715105215233018626608772994162584975131008645860361107161732602949128823468807194518362308440485540635743289253242032522297031515216693988914190452921961973525825875119992724629835240875749177908404424566463729696345809537779429443275119071724529618516960246875219790852248914015261189498101989054432061820390672044594051598306343405102387704192192615002339532713829872312271706445434232361435726854830733593380439586343081672547218588755373146180927103620417277531052714599352698729370092607136965319645006267229258159125994437442566747833110509010483131959133085923315900672145025118537743398531016117865970881630407279639611344682847200688867468602059390670215170500512993393007992487640512621199791079377947743942666003936991622577305237982151118117288127203632751457419557931298284811906140100575031183597847835328202802614838200239124070950994457250554025210511593149168654591325673665022782224788198378704702602964628519388888289868710303174869095398543577680012966361513730185012245217754604572686654483458544104285100049640202148690292637247178442225907200714566505125013174639921113844556253604142497277574825120833238164893534665110193324905755932249755176500010950887410388999548042670853633392837098053451340389472318844169965137972862957992330566527570016896875375632735896870048815920875306616654210946646143945956010587371103408945382198960782382299513032609690705578568410836475705012647717306816894118772826705373925628611837077039636867534045280566707362263948122783357537391919348411317341043690381703013820352929190771677195195192949329809722388693481115643199750156759525378239205137843246021308122375411292261502039492283993229113550482219872398315857872917332533158249871956952697797466615569692458099704223221334791329246082145260791463200126073266109800775482265939920802810173709572146162089419931743615075364054840298134367276470930515314258002054945791060341971128542438220538498090401584615325114605497067644176887844905606092976087436031781725282466128522027037335269865888833893672386762845988134116016767885739632350290582094005300525062277269003847882347528483486978257096410889481764706995556062556718383786957903383642998287682853709180211744502250857474049010146108141355007565498050994299198610401671279634996469603252756140000038449105532864578319385988323642966816311151072500378928851388179895209579152889872602824296747832630272235401860930229304503812304454253492784919073854194007015972067012736524100924710320275228415061318420497423927250544674594550269051713798822184674898120630949281969283037676442352876303618922232833896822210330735325270026963547040412837485850523742065728628414621699521007749802597667350425682794781397509875358057959597469689946032264536870570084256181570329417800795985692854395013125874976884943370338625604922841535174756883017780865093540178197201796779799075671590743267906968941765165465788294273430755405234665980632604774345159313675956835408478096320750750753413499646168481266056537108475406876239819173728683565136689971749399994579740554883653929979380934476168176585873315991850316988848655856176762712571473051741092123759377844803701581277240652859520861309486904489534309158925895601607325511436160873240666726714172737999263558745959792537677516145841455753634613519017144262462880822606349780043407581614730868482441542410681181046271169637045014265627794284963674967491481615845364429703633336115515953878289798517181710173167161892751470273305408086501369502005228676263676318342047500955006003840687852206860555838533168386059849353790615204724478503581939029785228571284203299710571012811764909653568858261891379709442357349044672737717384757656555512946876859510591081973683856200992732987649903520279403192066767406622895031536817037107606736257832657083666972816215747794016688742558987021320199175214284545086115339569714654219684256146574810437539983264540393887074996422970913672029799599333305584544777737897791543711066321204456579183333174589382585644993305903698353778230623050674150309585383090071003877973983743335480073417830044195194187924861429232836176322341241042201920592681257527794273620164934974133939036040118521016339034942987659078195050731896347366977149432249915910077247560753037448403464409700545358126334603331848326807018021953735421248877653390655807309598174165562304505488522611815082581111596340561431657543780655666784790661733443382188938328948206187418282611095269794908282381822115144663200153688269952997529286184267626011005809051583487010364928917224287053038816106877478105770402018565888075936031418590227675678630766435413707395587606057466019697922683385294233906577852205837472806911652239966444878095469179124347264518889037321380462695264342884105748368079805147614618400533391321649892286455195319437414123828567547799648533235733007432245318540734604550754341037260785336539837472145754744908095205789641634504292597866968863969740614840067771806202155540940971265855223231479047566368542039733416530416706761493532930914849164225006482434848132573071159234508898065493913970479562380392788006190394188162016947112548716150857548523618091974556039352130630060488034276544443242632384826810793375286280019546611108479816659162286048595982523824077065053505911413736349019309807285080244577773242643069368040449277792318760989253908319105716655419961180266680388110601864283195580327510060336528019836338805537974948006381562070047102545702690034483395255086972742976716818461109832598573488465340466019266476426003381013538659676090784567522708930068002715164160962475422425396111356263692367229074572433766710978884905186153098861243312142950376053550976077958632354057528219196432655071392748750429389976877324511436069230222453475414213196501498267740447609893983165519531688302613649538083155839069859675799640601679377972364082609933784391852019703306586691952344218495448843434995673850215350107062291595125040614165953270133357511204691581127400743500201911089014711571353810328375909654875172773321019849036915337826082208774066114607493628984634434306452660185422125192021009478609233075053489343227400978251520135042277294385770931708905297281212301736090357496762867660719198437970732730657525568900801476881685211834811494604410439108452236553682902998112953633224304533823686486685414713284103125453667890375635889838968881572913215601505454945825921507220380385102520150408701985387338844968715091550321319816401924657874257790165485515731687487413451764526811947694387828658730365103449089910544563369319923581827956764535592880869391309674056052730813325715690181774134561585791297776345583789344347618953183758618620137570962326803156559175968898692541267681700128035556828837733935706282733710075153933649322440478153981763089950963377565365296672813488446634502570657337805784829396194489029621765942742434534776927299758370034968163985954719058384696148143529956838906218489285322951279221495440704560415695599217295312999163642199983537459698409612331469624351888226879607180689759694432669820846510426056005467898943739299730526081671586159915674154295079601471251107574726407768672092131657420265646063832567079451163501051309774081096440195969032071154669542388007787966020413956589995517967145929732933658764047829907331808587113998959517548581596109304045197864779522959262384521901503410626688215935879640635380703976669824654447413096598552399771429501496552036534094865063792466501666926758744576145410052972724492072015746828397976158930905433748243904725680909776000134802618441016812603843083492727145130800572263860500124244263710471330786749709999114799117121685091167908334483578649629594061153702372210921122503234001868391271128629967834248428006656233746950880943042689243259460181606050966554473352226317754663709076513411399737164546774258686109483197680371620963637250588685455426166244799194205359235826409149429258044355321117538469247752100292828102142611761490671748985642565155883878895136757474013410577698759020476750561253534936585683777401936352237010038147458460201089905794894163654111568255773423209629632849895799789513441841774654328708741197878531805482697244793738710652672899823825129685157744749784438680139996666404873867709338162861428944622575611927020317029145648019801997602001107695243035983689020142707258576206603436403010081456011017140848979919231019316830337787969516266570176991912371119697862183935242594717353993345354668499614261827141100197878263057928524248894106629714287954680837408304111910519279609612306954864661367986056867751823660870408630987609876224687621425655112700336162559796541728174676962756937751632520164950623550317924285111312540534103026463998937067901997738054676797059077656055842159327451081326250343144088148614764156986131720536830354805355988149238959851848574744970624184987636990624656579082119855408622339486686240529713716261241442092958133348782132186915218585583009003490710252052046162305546255612955643437901208037459520111630472858060237733109306104132042059107080220975897532172597779401032337142130529471388521437649333004248014971361413508981554849637473377702348025285024356640218107335907638877854347817606280554311496532458147335356479124624273888080884036744370481562606017930490392607893979017871030006815063281538836140518656970682554783846634602223350344207356573918345012260548652802258768106558601203474940807090671612129288776854365489534868041228906675680551369471064501643612312038822728457496299804501572269107793237721031842435742019384298613191872446492090906384344261875918603011652468435965345839635947477646815115924330391471372634256625891717270467443615277639289050203296287423317425649485107030805785189938951679949294140711352844828142225965391796476610088027109892634293181855414874026164796538384656848626875086587087306268735770973110040794099618769887179070968747843811584612980425632218245099032144869130392247886570871938836233679328240415758459108520143031421017618077565937969989602719446917577163332793562251382736563277520166095308724359697970947846175176480076380856314425113978681773008104563252871158235173899936712481232992924592225086183989012748708923914097101342781704714819122122162877737377381483735185656557535778905253390793531937824575937974994243756636957487107250728962492611034773431398072676360773899978021814933057894730101629199122437786574990716917156903636074854691453274991991448686094102019543329867381032559004298828031283420197096651900072910835744411637453435436905072101020958075613812285820606117649131557801138208469593230416871326325281776645460050083005345028384309756972658488953285597663609319126532275406382294969004502983389453005580716907184050529832919872283727032766568559864376263029115328693828848127288304849601604035780597766360387303650082050546602572400977745830504872700192351157524178157140882899692376497746948322679223941007951265589881098564797119786091372254618118719212722010030650049737922545897314352985515136782679986373206636578932543528731923841346175753572383179432666178354773243796929893577970075062057501211879691251389488699372971510842855471727717284126277184012980009757631483477404119718342775891447739173314288819304520227638937251712890903775556117833391365361120702251827397533025444752270144137822408924122925303666957354629350124797112561905995410970836661741234657776338913448386893637991980118090242623292060377644646937056934066588526105591512320489736261920416688582471492862878447125866034641305494704445928558008861082474431074966659637155381464043446037186333614125940815178934345757926531473137736891464411875190426825566568312869245364730044685482179943083908527904466544394254219465340830482018229560597836821320872908595783081210668871199982280929187196830276526699630345185394567426742707175649901825488997751803995356624798299607047948102147198687916382756984326583204481578754023496021351510784577376115446706536572793481568119340476227600805846521978362528003812781083575317467282866812729168908803942570621376717650529450374368938849140732532185910628554165927768178975086527720123887484468039750918553822036729973672615450970016534044530695657396278897845037507847580543795721267044711980600729812649409319618244085958835187535156726522507146868842118234494776344082854034152265649482516906891691262101825200075807091272944760639002431679931377204167139524085795943579037650816929936184582437704606252368778526543949221293929754545130844640237102829893654969200248740439048143983738288481862800524458888154858354668377749114798727559153472753818015919329819061003442546099920216353610838502697779376029906169021916369321760804313772944270849969082872793295883131410017933744112983421296109635558700547349139846450816856423515102631635848787544827916477432041889423463346600874090634146984532684513554232457265984825370110108304474056740571352676602772830832367122131899204273319715991129962866914135994351060215686451065419673870625899198577246077751407839900815160172983198382626707307232489645792918727609683861743323812058346717916014736420452084096160498083143946534868498876200043346290905484582486484238981446378068677715697830401984151819623978283026136575953681590617435418542822887665963808721436378213599437654368591562360482192837819144445971436128846258174053826222759581244179300378523944910466962996928343379851731138384541590723876905525632275813614620162292252255739760677348981122095460986468721782335143020930881609426550493698214511255034731014511299062178444379173460876128595164427270576860911704040461912954130114017380366912825054563060452967808828895196254265889673982978905506772954521302029957298070161299450838339221236715904787761940918088866493246116291366039798956300674266211436670402685994334900041533866091936397734626592487898018117604590756364387009050488722911692257530256823297692167124941376443414851062722180932612920169502389380281157129621300924260302458753297822990228404374115561100129296769386234577392770915230066694674365314133898958288682145557430269718056790435885200066230302938419138195666101833599368584685397447883096382536474510913137293764542077476169972763496946614988200506279959164464640977393337614482081214616794168369949772316350895003626151927211229125591509081753593391844359571391256924911333654440560755223720195945121624309765341786253275326611677012128878274299913552862877879598935208242335408560335399648050721108366656132143236318519761588118879747637332207356017498067319402023027186886385006561078228276235497210531214319382780930910239819740669138274777258068988866937391779383340790697138771279180203882649624547686558204926864870320723576547939463692158379990222478105945626533877074178639120804676614683447551822157454174615654987747036485274145323855035751979626426426272071392645334408136997063800569381524586103537838421419118885140634707608034312330178297681894450343097288995909213472241475346937471483572058576417786134417524787878242078696797559261690360559746014916554792094675196856374099405951220345664465848047187971069595617294095539488085410648686738238006410193561799022509696712387060904131431208121119672681532747772227949935498060122136857555727198324799199946992769673105138675854963893349422342373999163630366456110045557959017108064281963757669796345290589790602799486943734146324070500549803999247895656056155387340887807855143003382144559596065276085610264737676833025255579674166041793586738732734663968384217120532426014769001500490647716759599920430396706892636059016977861238400628297807035094451263724326133023636168262354380626339483469559741944527300365745154950591764194632219689294214210343430841416117301171733858512976676596565668063933358302720634156328533508071632905466648575572892820876100020839822906052638830417911210175345998690675775345266465360212844126699079506357619809125721764865462780869001271539518448492325045578824394120424510525422322004360989571905524662028662311256464830082503722841634945811617227396168817746189757682733360493383993555904252725229019529158635231322757664030548088032308782241360366835585672125503999523556991603022493369839115738068269510092700500507695549660927278338652105656945851811605217614948044165306467440714924044904359907406728541846850151632509681674137374864716911252881007675486927496298495804023199585844225947834789747715937296121789482129327186314518213162219709322336204446910567026034483952544875701155213562326742149105925536108393213629378330816541757378470059680519419561708814633472206347629713928294286167763241300571259995042395141474184982309067077458580343615463008810564668414030920587079063934292508390818270677858239322503980580690232379295102112034516559877555929900218032458019823586065318913771809613554726642871468265152188468372128658339832918491125884977168546851415003821359531835735103119596458809636735670235616458021878242243606660815155742755847120069054857898565757649858619188273267726052934036132482403134744460140568645798045556538296109479135969799105721472177133260318766257021085317467378018391144855986234099742459559874939864215920132312683044943679484586088043753457455254195419003348041978694310750255030208933739939785801721038865822490042106953945695111922814937795321963765380950688575437140446236429199316690447353177577187266161198157003922631175868814046606957054046828829694692823122432600529882487936356650709820579711661572235378004456148636720384433465170442836188204487532997321220267644377517928835255675172009930767133681768811325409910808223740264473747553511337797290802885307454155757101539098131413235491563067852015304998864838222747956972019854756018895227981333306075418613683787935625868402248787693613682390795869651074654985337561344747188967037466121087079306694442599438677596360112362056567196526672395843229480216554996501363975760148382664091902830184315525927107810793098177470738328529438113683223484987218131283388150216128343439797304731231987684296586188152459493208578272201515083095459578784225484439765832975067010945324590701542591072696637800111323863351067834253913210956832189379362232007719904963549765923393954054463321597098579019873346751707430329690214351585643239590585072149772575342348979225235813186213549038372387522752686376789422333980922035918198636527025415391840718804367379023718189860393828581386039464218437597374694431137760535351290490717279545727945178266886760867522574283851546148187088948354501980068767359256588965001578414110508355390513718518322381011778815773092364994807569440921057007313722839216593714317820153381041112141919876335489144493651460961447834603336685734470232109217155426345339193355465717891470919724692991762600628656757767157782575371294904926894185502871166843959704556991342318767822707531905086336977027997255362509447964397438037241201165773451898528795459121272413096081885177029759132303580115792176589399993405220263509125196520277338066588046059265556107422939925925766647644723575405037110528693966804136782102529195617283762697837726548303118406482159977310560092178000252428976009581349109990744571343389086611094669982337276053135618202572376685440644219583945513500523301534315310182541746262738614623296320067501146665742984143661315968763828814017175800186859261106598077954501959275751592440437122305040370748600692620512909592222956799805368637376811830927346012825711374820560520994687916986962286220491885494342893841241709142041251172412447501004152904130475217810290263499440463740143270035329605647095613674254717612913114656704460081853805332196649041999695351063591346019729583194548068014169030548877382648621601483231972324058937968245868059801615667165343798297274920751568694144167532543981139994722794412210091488400617342944336208868695799772174940446290550054429078201714709333594829062868300884140930931467115059415546772322295699176020486024629038275751341813302014359981658029550062092774825055615207197144521252376049256276702477415937896888786952931818354462055443804771350620323834946068194177029630626730174171380527276326037665723014253963212033499838750373649523291748574570795824914344592907832626950449809701472052380930293421602091312633269044540971720525734776931332488125157902287071044968970506524893189486103903819938981611463580157981982025848536888357155650307048660837831738874832891006383939806962183601523731108064435102185102106862074969530570822922033081501358756367946623554899262477585511378596090570844820472858583336418854103822255838853192855095505787516463994707600704213224827840073796450251422051437602443653168819484423032574686883341620681915436199389323655089937819057307211683200941357942204455805353130795101444343749581049109707153241370242974960344793548149810643619510814717271212795660733111771410414464243302749409527135290684630053930967189731652655886471056125438249483189347965253788909355301327779412315662736348166427554730218662811492514818077635325344921957224029839033227391290909575004552627610585571243960742597482216735652548572850055889599117642757478577753399019220867457969705973073394892708817190996628444957737112943232413566371412253896730808969388472867659090960464362485021568857338686687547498173515446119103178069310475604901784733930773461983841970028095327843775932982139698381415151007406337616022601872344234076099354888980565768306180781266294275890455781033431566014327348959334106963910069426963299335750092886791529985780968385402609027406328532181381989802474796838854521324394765066767914654139097879803244518427887842439343261941939814608697494759266262474863506708202908209062482908262767432277769824667528032597713591228273308401887670246165219843614567404799552018676715274381825815177783049008766989767928845349959074935656206021419925446390890893031384786472669932298678214379104465387844052040901824881623455128129101319873022688440061855330456133576842672635956321266927187751427120024980786531248751390005000546440282404193915062338671609846576973671092343966732018475481681809876654109043260727745945970692345475115335354748018724801906421422421925206135774563893444915821842163729634939165740093544508639852742961660797194848379579559109321695242751671418354315062847082743307087958099178861062635271078667815988888274634547220805723227682572708748622550980260662897008875470177237306518922592720172631926200987737020617541578572865542807695057849929635734105772372543299142006413943074468484245749523515330103261682093361392981193873726012127800147827578914176214046109625126274358914060148289371299195707196563396792754262948877348101065185902974934975808539084433747326869800921449003486457586869272723825807778027008934352885118089091014560274783625365078083805249747395061068486369488355062044227005658809955510188100972690257361332593193063760888118480682606368630969059621960751137508392297893008065153100501955062562770917725072682485945708990722693330326997945327965610612360717612784755370862801052437530624080325646319351986840603929044818096815208720377576272278564766081899369897194805323442372518341179326385173614862208653135893714960355749262921080129318604122995398634449772005201959930553808025549715138672599901261741491450391486366126125492046271557250151086200980879041338738553249630756785369303546307384952067937927817440933969691645404279246344633118778581735815600280984574177931275418248636854740195255864272696236549938837771200555365831929246873367200432842987314942437829166413389487950566670403586777456515797693544626018367013584913555877578537666556990467082460516309888309805529288766297187621674297055105998994740935424983644772385791828431811345312423694027985049590073372975732516837373229524414387812214467546187356661517962499013832227802454765340526535646677093522502282634740272788713298813711552673858195504489310727760182913501081066667736565982931355366798282271494286788055817751844276171792085168431420029998856535063580404698019274294544800743726738602513886171141465637509313585158958470861168155489055506762659040304388326732264712118309234273695629833342170449897879082135316625185747281559460661669125087889572688966109291752789866234919222473735750876428438413259758792393100612558876373918729449359130465892782996773513410709113700001032188221804132373258006600029359736950708238917777997720064512302407255358562253734836386383601446362725271106393566927893982364452022140157906970663865313957504042711561847474437552157384921989136573588483787839007417094578586539953599290067033678062141001804938085058537181818912528188808466091021488453217645583509572125403165296258834711896226471630550806276797207609837954390505019747200078936400312491548765426620015402702494787802623837878157289346101312874985114313300351973557023244401453296649454498913145975412330569829962674496916549119060147098363971359038612774022299371145919512749138747182882221744872968196570558707376017834818556047478598588855808576428614141086237481232493774985250425626611970844118403146853806019623653159439248299874277389637241567613898646199339819148364636251303200278182506773239080351100963979528003869183884521896574843110318879259219448140976691083586532868349607385430740640588302817179204571730693710090296686741274717892944080766079074019781533932734939266585226701787453776096004477682238842257750310286809093575383138427207287341472104909083191875717085263164326772359164282082588209464656374308212218783380117918545064982921265542973459325468808506751934783254697162224039557709411268272686279022488114695805652301884275371683016487570975724737245419910671181867900264951746167304478197209222857308224372561302829166945067662079199814102890830471103450059381027837250770980218113936342776767800103039535864462994020594631752024892346685053965851951620367736076503503376637658467260597985301727850091868814326162383870078441820092838704128028861286097406311452855070371179762034173736612043369379068314080581892550454778897844977506944463677726414420228115486780426673502654564634344652939672560828275555631342197859375227155157185976619253365532812319239012126663784644211097360893737302299950499012294160083651456805228674449074730724944467909545737919151857506100766263934054103186922475616379290414992435579508328184288949128457831434264924598174797020337785424100869067863134570406177853438818567011225555334365948792738205815957320749685995954182312967024499522302824405577361959824043147366488252542314889450906263798001939791354671970471862263801519656618934989336447649854565986924146949465932970312812438767188535047362336091183490369290505937871205390902026368952611165069685173383027839240913429443668545098327417148053985764347725086455730446003070851251417803812491775886932758559000211562015476033408308974158335007168736247676223054103621542307945420781472697564920762668452705024517213374572293643471326796632679734155872416682060323196760609921574582540045239518734858765575190513249654745180577406675002027489242611398981888418724854161097518070489671994547660548635159051427266873727776114318062628891332792748790362574506577852199300376519941805449260291304664460501182643137520993016041478308799220582194432264234580018230784479552483351742111702660569009696482174380396907016872790463751646322503473290292029574754897315603582746807880876143018402294246316746537559436709048897314563007402181905736501304450223836956124182028638147310815702329500401522796183674566114640091753053715723299800867142185654714729879312780498349052382439171766058024671652443095321384824119806555779566709850371532028944119786715973168386525607132513595026332790944401540339756382657179364050149170467278444016925208937542584770629737985480354710327270012725564152405601807563415539354501466333122674659417597144035056406602452126250450555960242297964430414601268053762483792292922099765810591138223745423988607965223925435298629967972093844981237355950831854425018669309584613236762367231838410502753313871416235111221240610334432930055428041291195309527602895825381764041830093414204456185262240402135714484863230936352970875321693433267851676062938146484167650806185449464604145038650519934392638481756437330575531468135135743608121275972282142553461439943808225693429088084365781509424567021689073478116600484145267378589643459950789331232029756588034000687604536504836859426268473695553649737420185828664963610988776320689403975141783093922560266635228326045822132811561690240558380941857870385818332363210980710019784306266604113845257918228913626790070327910098176110707736387740110014156729293211868685595724874761186349066065459136585643226784766573161844957232574142656988865329234677230170248937964151327320697051313456465387934168972143874744216250565717595943732046262895802430054996071800439914905838816081635079926133414982622863710934364139596410050571267068419293088029259378842656468551791841035880209355906965242130718207172270242307362560964446670917193835832729102524401977211295666730064916427963231090591542012448607833103771144754153668059044162984484034547903513370044018616130338977462949541182699231643001170676503144307558904937994087408713358318455766191930328128739307650364350816210513056729797717588579421925923734400583150105436948110198290783160082568371648497256563545030023239971316102846342285856291958861934787649295163929137366849825666309187426580667326991005637608495349132234531763410364917709399453435851141523017225117199976306953116051049473415918168036657207998811323264406028854599917181930353344588538224177637871499998611914282164365728013671311224514039759505442420938543252359889338257263028968152853658826040033427180786581878043794238301461809174046308675886020183251592897917142263148774990447020900385001989296774668567171571929811587845003127425435343221662165235865675069296410637817531547610482781720793788789514994570527510896207028980324183011052337309599858977487518262334873298411380657774136286744640144431963716448961623724911622982514275724586321332763760066626003965576638065757641490017709412022639353548913341456455373819165444961140895685926654264328117048486998519536443548259696347164531800155557050769345588869140724548267999954565491806521771486763526763349928750176708370236254973439320792002019719771822172566548732850869551827602290650251427802237108362248160790961806100830021056645249037970481315672477938902013044993659823773199256994582469235284764671799282118908876751160628823049722836846949886152023757325323241111547737123194163791632746223615957486285344510702000933385355218961358915186240664758071055406667791687210753616668215699416027035639620748797024298997088763599799077161632926131825107847330324481208069657899079116451146014423294236613130639915139705509982690654772477595710526696846044692803379787003251846830469111243901214481948722858612047477739283148876517124270365813035999679695206172219558760082792522259863773514018488087432757332904851311488151492769790586552013482121490640218343801656744480233411624099620066031682010236243132821603711098371049963041763096205740323284037500230041339344787855789995679320286334070646727585182335055952984784805400128540217671462168450854020706907157295539917945525036939659802957000334291642020316993781838276310515221686772795781728587536820445443205702878516371394334029065133829794069136851528914046554419127864769501030726234692312505388936420032094667844990138873874871523595389656399134668655179289111569849207447951648301295829481845099340512784359174658442812267299112505530789178573181472842741523473597987412710889469681779135726584602201207625612200671710430980570456550981612257735399965662698435517492044388042934716957876806699449624261887498304152055060616352716589307115396319640505563693761301755672451031864941798268873054311920984521965719738054127948382197967959671425986752013963352131114162352684800694904244311506277528926276711588131089937604587129644631817265347990693927815458276665569468362541715354096937655284050239517135490355077352219982570148080041810903928267805684360929255328155771799271447589051343557012072961716798458674386604389113471720098294088335588376976019299598519229764107035430554899652584589853660731260831529466637750817175267028260611340844753969290442522301918703352555797102957439619177969869357660971083348799081254081507498751840496971077459354893527230921242946179055381613327871368308567061933242178431680640213848986204360101067003763171335816352499724231514709727854239735136564430169933110850791613354292686716859399884461098787590117694504466836184701207751478815733999675703324530240328332973203611613695672328762961768304929254812360492380844494418898465083660529384681109530166719659733538132326622386723030983884190209311458247365960857832127332472106251193937104510696760967236493433943379707091226685956189013945619667937285260825484825729170875695686531879609066301993795097856903401255046617324300179850171661600805186616567099929492609722616778407374708655738180304474416728060972752791109880040522086417671492216995362507225625774475684451584587693206232739292081901270640290348792837489892709534882011832944138115096228912817137694610429522339726872086252487982969737264511285719995093558639745861376645257084157206338336138520212797744933919688036550491878493010499500370693776462235125838071623064571401924819283269703988168402645341846591518451730215655458815511819218532555631319052598929896005313694812708728390163992534404528563265926906067182156977625694691418247243064840107662357526980015187192151290779661114867639867870875640014928917559258237296741101354657561401895488988985078564021527461743321863564505873696798176867301912042728269741718985591615225168073031085964247770524231552163663704758654762960129290261939494170624220427378337678605147239705196596176543074895008277743174672808961696934078003104497431528910236636465075091215445979817423239397451513779120528675832350389578419190797237267992170942664600460784561769522775542848575960713834281601886686615773030735707878040786299661407216778753577356347786368007327054201642747689235433536335472713308535841493438708647136349124606618386879512207083656120626508922252693989678425119801044189878257405886060774156356523491011730618128282672319974520461289432794305431876945390762468489287870346531667764018452300744773023128364511707465041665655447568536228237758173268737002618205632781233950809419895733521562292291799016066110674163416433774339440716941656188912254510067663941568945284639712538552496166260716468689433163482377894297728274012669198103443880566830424831610139021324098064495096122984979153656791568159853809697138617342545341393419462900581984391847392624684305819183160413988007782569237315362739223756904388794163046159875253919477005336042236401288877844258320736903750265324907888414959546488492457691981021946488627027667884870984060093251166463577664343754878852012639848417863040239776801873177952821108795534536169614698239829665600528870666127837227650305993739811546655454728931356733267734243306431029337963036196956209665456846075447032142857537864013901265196960161701392820550849192157323015735507453713450722706371074439900986968611144576570118151207125652499089099319755242210535011105023541821185318600885714058751926855125405628222819793176438307953838192405480266894545038636672821451761705661878766456885921391746349070452034762330834750639451769963747407486573349172582505313942179736682330908053938009912067496844964373095281422856869150335100464136437780141212122857022887253832979500696517749627959431989004797419793261949200592266775099033312472557744929119061494476643797817341150945730121151410189509338593845962993994653163513528341058857523143757850343104743934006634597003259783205653806957601601975674763129553864934103214469123795933763727360954660509546224484418246598452192909199537601549140390996934687151143612657039390217436747839871957559749564646413142516680009714899534150128372251904799500957862952345642309970503492251809912613184305670816474743016230962655129749917346862005535506136977532931578751542300784577923961121683658136902370172317349381042674732052618138658185297358747389267594623727598459095961400311493488502454909725049750739146479609916411121778169972669661117083005591501880184154692975638987680690311361109932201937081903398242286979742093011540919925961139584595600996040326516080196831234595884587061493086105831273534071212842229383680089656896075212726079042474410160732743893837247010338881764901286988108836450318229026752884831535149810956625934893838745186176129626070041174913189437714034180177197978955735585132786738941058694551373380296199088248208369514852183286035464875045743761290852541509678178216820022720305392238131776911131136104656456118261595103649663069502108353121844407409924183429709604426890127030977487965126982848254846066089218663529016567890025906679021077932791329888042138897994063373536013269293191023048040490371494332760931137504205629297397550474289075478807444264213685056167875347199557161605367972681174610126903430340799553389583551629316729263469547801166755199741605923610060996555605169992800047972992694718782047733813387616168441269863579629399275221342000554582715677404981651106979705262864037711830531122606361151494186524102700199758917994607286558756663428736987957767230212395600733923932762911443369220169982697899437531430857709184996190476692095967033201181248641712756062271595886258013691328038017602291316775150683294598158681962981684285885719827047938905375934519788004876201059429010211242571438208692560823372182842405249590694520150200583290099976448409471150191586384754061623248738722187557732489965296647948359843001692191612878513364232571994430317469860103498455948319479404178330114133095035374133340460300668890685044183597920529596403305691468482695766699541356332151278079346370067362295806678261719817728786011488071243270561577887860691949044008984905880411008458698413212826383196643180356075055662442933086439363433234626777096325908335044158126030372849821342688691317730161166914853317843766053182344167461823430963923551822449233706234936128004650987005842422479456785855453723155980702112572008822891025566145001992436721734173849371945025792972451859658411472853339387073162475838808733480919126404811959045297103025494400536036746721531788785677389645450746599856765992519217153219956998987463504176653780069935171655592589940203863937644233231171743362260613469560086452660549532598876151967973172197716653997534736376992672527604174193345446211187985808110023278184280355666621659433768409835724740955322217067287191589886431185532187074453794987305108511694038156303977319406027130505021978813148440247306369676999209402228160260053898478889397041324182087459416299682371648355505178429613923198910890237393430829104024566338251835821246194024631353345506310901101964721447090668876203091282967889553014139184461942840706347774431050290792204487893864909340933732828427917806213722336029373801268103910699657856106883362092498093060674272768255813322089902029777950746993203936548563498573650308539220699208135019425090524247814486414403211921388980796236316924083735033205751489497489143467303818129503326683859630640277425230930482900245129350137232180872297875467513627571221306985796676041867283374036455405783738959827994727521191825946891535678380208794137447588260310341282267377156739801922843644943397258332347101790840903819761538519127209154451358401481452729541886168678149521754898374016503797291780741000062268451897245854501757617076225470583246297230626371775313075351966714650878502710389572967858148804970026281193948909416949164544221036234275305235784343720356134418800369719121195217664017013523414470581158455162569733925228001306506655451704473325544157437997173270137338427825575613662336046797759312711596714686730161034214837011452407632056273455522065917466349119260929061529189992047431259920363091586135264073270442711171448945847947579159398953506051503837645131189097795562513537519208963266123987496602466646633480918341865599882788606891815623873509716087400239724389832139151048386026419568761032907278845557708973104637962474941091152392681252245457789189009701536388007041085173325296481302319025023340180316714390926746621982081625270937389848010967791468818244058923581841656443357484180822325840504200697232404831607267356280978264447641046622876798220384966521501153962314496656138456697210757464423247966658758504989881069088581383306357336211634463341526889666656556742618091113684069716220086493109867483131559121104245796618227806858895085712183009855639370096484969372149746366915860043242067394714701329232267746980586204832602347437345967118297910097850941966391629979824451552456670689011157909176170035332143496692430187178074096283252903455613716359277712731634481492918986641395587176563666073435404849088185669778172643882195251750494999794055265625923339326279515205431015086734647820438178720252028553421086126730300900965866641631258188184392980496748644932931399020561923097079531217365704518666928112913941341191664270406501534053614667477708621658335114215130672252831752971718638288745518678419640617105207163748299578470187685158468369982792649798667086363967108261184194067447387271603986000705960859159215559072431592339674612014667851533012833689779470247307289862175836917921255366468502068631721972712856868830550351801340507395064981801089556609054453991924862466734154165729362415627211728075454003578989226978079851857367212014345268115527239391292767344414153393179975904826119736217991868250959262442253199050544051716068919723995379317626963235991337393068406684468326319553280160044154778211484537857056052829446716103523146218947318329366053573220258696485276559558272020901016020014678776047862154850393192284143002607952828614811777342263565581152870795430339107408482886965199021113486762814350459080644374978198014635234057242508454777113550343863877997716466436898973590649278565544614386630434577871152433869447646124203900175882969617059187660966716986614909382130440661405397590441529084675773448000228314799417256504944243165553002893257356353438694526998376972954428257938620622029594998071944690279096153387199345808011549917133584969480972011662337101569180207074815609076840881513005552076212549516416413131849738481961906949267757277512686647783367302597404414435228911819485518885111992724038728892379266830969566319486035613389584992808166732846496863334608974684770109448017544944496401724602586375766029335159646212105088035096893518721508025155537621098667401274248398948136729585699103757851500802577619006219730961725103069404217384728593361713891157097219333266435165294740252400217880682263571113754399154632335716522507533741570448848291682790409807162357879991329945028179199935014128632815335176740360776253970603149439563797931427873465587460864822679410404179520007453670624975515092988703565931030602473632715385791740581305725200507717144844587136208871330768504111886333937465695135164419886939806665526555499581765470925807767654035269286443419586323011079155253037019770097436668851530132455923903827479882756091670528022252621693192412488053805047767699610241037713840127151596493146426456078155978721108361158506883053945283721960085794711364314211141204506088548305128479350891265206012667189220556112046323652783763140861849405472068425109881571156401128630346086329041022677509458264825136587603352852351113208312918019991434305496131437974234872104989941937616226254869891124837378361680554825773206113683208275115908099901603652083449990086686299137666390607849292616363697754425756444088424343186618544752800904276366878846628576980186079844736958923425476959312095229181638316387130109508800101361334622385998122748571168111039676056650219699470410280185285946124288775235410128189336505240543435757311876077974319458450733977495515591231890621722537261483891051265786445207563293145716496209631895134050457064993681599995340017654401000775825302412509076015696163562827222203165640208290712562443525054556679145369775655501070292365345603980796221885926577584737218742173619599449977176697481182336555836991152094967596399307249367260753837304370333620170491044487038255471483913553817429206366797809572416982092760166490391786696420584107851077792087556774793914441297147400511372071449947034265352500907869963547586525061868139763233334604081699093965533268542358137471534395865616432368796707164691571336377967651575205531008003650479256653880907734166591317911690402018166194384983022361704032170306469216879499889073347878237015450459594881479231411427823777089948367461451476798354985711357853483863714006822390242834832883587745540947814327792348169249591111874815322834203160575635707668576234103357093788627070287702710308947065034028400715133346235044059106181299641762776724478213450456375992667404771260025667021898624477122305249023727835544790079034322990285719643200399287730829377107230964421501194725495887336721429138099832109175923084484395721620907199781340436261369715389839892542248194878102403550495196126551323206150209064246376530533573534116066751472252794530722250055916897081677980033194197198556766204371944484043337924932614047458692883163496801756825240046005435871471938972658826030918240921997044508135747971345700041478279481490087092921828104133389029008602026551077325196032425399564417463000289241420605802014579661141961132730525323685333593729144752581615587937447234585642947355743264047186632236523334577710570464257164797207608768795182601127348158663372891140026961724812260479987889416480344890786377791000869693161399981951478775567528169230877195915772172349880610075532302220572914276758976764795716864728218065194589659761420633246013705086131692893609978002240073541429074677920065068916450458579155912484107327989499530520056873415991358487167201151782631582418855119848342314729956845958966582975075374664460455900514924081295039584237993431575291146748417928470200331772078524158322846888335114769336226628518419616038125563500998717327131333131354882686903742448028234858910355406693408897370424103873991266299434122246140509504476751681313717716011732302929868820944907836628152069068756454009263425904174776972226860238940262939172310269933103857280224180408168251207431506989911785185456968725168932180249513788912724536924188461539469026401990127561281025481286740032109566343220306912105650955763966026399204371998354772483373253121208176041151424296786344193915670727227556390124077717671749838025869080938704729087658975225181092226991627949310945037562396322086092039604740471925063936302979914213371694434893213882225129180105314018643794528625264202344259184288801627049250014509401427461146288058521436662803160535547856651235389886941858593413771034631327474102996699248383041801035348777659373374685347223612518511487941004231699594297111558810208221621164307614642423421505089058643379714651290096073470136152456895499748671503407002312519122311075664646625215230969867049703123471240084626640780619553620722005948008812248989447323203443894047945662654733224974778206339619299393173213545336877175663656225417718597867644325407430409062526582866951514204381647779485059651700850643744179922393601946977402527506678646866779406060743118830205970459976696614995815127975203891058314771732325063304203844638350057693294560044006432394323015409540096040292180490589731946797264100969662657208174612453949543595161494348698149321881757926458392212970484422596366959704714958902931331165405286015096176807658406336662465783014294990497641744611165035628743643491161625194978806684645100846992007884048213881077191519366251407506745525015863099756107251018532655096308018875947954783063501162136405195927636943159977472208961814367001070635033645547255742226450332809959344324081377307619974731745534743308108266814651893451790821182135338887860411323622345752797944086026243507695590619375290125723015602796051823056196120757400878802582900201787485332723310216805896862396645198124919184345735482823513594403637520628983348798153384058769327196080687778904424066542037698809162685881423615253236315998260005288774538673589300130261545369281932713683639704490970071818286260226504907615857636909837580957682121666278341650203690499182857766024111057019599273019632420726148497334382456384497615732042473920659565245734774345158382229537949429294387240194789280457429864270196206775919897143327561121619961028941258852398635800176001456943379265113642993599870279376586972093032925007818926837373802581287083529768560489413874939615242756098674201343047579229236317131159637320092451891451351387744110141680505951162455536022510851810076531103618872553814340540932070518772290147526849309195887427843676939142965023243466308042756981117256294683311386898723301720927126311051968450173409313630791663064171690495984173127037544174790868433622432816492539054152532611473040852569575179685147966611985521839803845041476085267910921964247758620161746240892791909108141467059629039457111574960925426942885525661265471643272497848212823368603493124124797405811565286808785821251818191867936829393117376421160795664174915673693560446973510376252484125571379327545120254620806213649221771290922107847491838605680371063202278135821090828753069317019022590754839572739046576003877192440425859925754027354553614850021424625471437431155488073707957069772425498830270465311968559225172758803528447117245341712661516881076125446576366151195205440568964346409135348286001898291766919588869277927332842046717021175489313169965280616798558723305929445038231941700828646141012121995453885701394803163830621585334235001238567437305672396628146507895087956063732266881300602605533279549734398413860185830656376342943652087707201365582118462739977492868014866849891092318499948752220130501412371794848340991437299909958681343337137845221530507362126008749295205579823354716472792979983383700744886034091922025026919682844872196839171739712963059901351822344688781452515125200852986622481780820597119587605506005612345366081192950220260966568492828637915720043174778989646729634316930774429601998532599135289798562936336644629726200053150265827200894920510812188964609451765904697438260737749286291777227300093915340636702994127375150849417602403496687200029312899739141790890564050509489473073539480594456791701670734942169247837176740975559916306357762735489977648775392192415234569533491472380571237969318055543471779149331623162361481435748303586370777397808189171692484982501636673147625896414616306946425386097413761183073562891097110004453132572747398179456430762005067395742881283921693140380391660384933868361270683690778163081316865269861628784353405773254456267047199127137405925948756239904547368628565772870285893001652552234656655914434473900196444072725325627598103765324433052105302557815192673482730643493076682895119201415114566470055437714468205763816132464463426248045092236026261491706017238995385909297353528620053982089472025156422956209929653576672024035556204819174138323318310602687761092649501325222155756563861869701166847329438374452485652497304744348005485353230027367747938460849941107308144024291976767476824570367196690201475921015053394217211234735701076531755925016009072697412910335173525568399490255588797509433206377639140415080705760932371399803964422899902663896802314551002191011584646974433173082886152409990156606416571457921199595943233766748322708977455334559827719456110443630148621290683039833136740947435845232537675448498322864559203399187504689889537598548989247492184799450736241603071643209355646529204588760944039203982629797184412904448637253791798008267479852605491474124721962589037873148294300754826103797255023959898752460027783652134043485170458526917696841894687023532005356808963450096187445645574092550475819338727017806222922487940701133173011802069135116908144607530300635068908423683841778556797900436653399464488423392579423569760232364656958629360585404366623677812482632443064969565001351884496983998507239601084912542771222815308957644465260168549290341775473632103819427138715385436423337509819111366497315715013981303678251335563610299117806918356395668846766108156813304108140078738435480675126210884494370908372794083874727152410867132954373762789325516382479749390494950645096807457609419712510755785814946452220068861642449808694178432564458725395738012331378393929455628361881953304135329302468189971441927814808789483098569043898906814635445321433391586962721775070389470956672207232304930168121028031425790724920811708567102297272001035017548482709951246685310704847527447954135746290052175316005768798540713707399032103573408023241620018668437968658790316039372208886550697906166511139027700291330389143835848038333127361250422859970306543822367033384316350900930687936679696664361455104835533268897325098201509645658121339764577691547355128104412844519236755527539388390190605022945396191974917305844991121989092034317809667160260863691536313257095258813714145133991382765327830799629976591696516132987357756201400447823756451089981799839113045015715285547580554582929719737039783416136646027231657765160399247035265985474633574378945619588235888370616620116164789564793924935243580679271733924985133799005349261340772319390693169580094905377344507059148515594010195575867903994831701577873749781603999113466701972911257419250896132966955877582534253709177052561271939337652417918047634407009450070094735635114620678065910453917852543588417236125858725046562246078341740817561111145438217091919890623502983477125608773505056889063566491759926954352229441362143093844988311171184201537260068433593751275130620175081337736766088394678866442223302856227561328458784348239236460514459259947633256629163634186474523183746895638678313435189492695475155518140664635978274952072054775652520618193866565460353887245242532236837975828152890841400713441361211403492442438993453114963704202254448142059515964073471842297029050043828671766462567531885471860993936686628265794916923564501034645679085798475204658756380530536020125990933096257617593575435894393412096790824481933013572060908031804331398013054868484320053318712455975062811915889837853965974593785386188669821089539521839390187149236658115270229606464804935653976202913012224719855112766175692471173963189407148420925657142639519392065148944742696735178992867433260756985997837668195651406324613862059489929858598640660532231118158576589248895121681988981463183260778192373282773385863536365683810689454301752922002562652168011865040335283254601212831394645289967095418804044486016950081698308882695259252719742689947777816418122185236237695963255622413879805070878491610835159086274180102524968307020809434182861158657118010363849363252144040875250341596549911416018516638606908972535151683670141761759911189845151524488210949959998316404464830905906607338828021435492006842496511976091141955046716429573807434625268295823998459146545876505230096700298486354439298163030948867592626280687641563415055019043753151111221221942583949625812152330014250283376012633094220024174340457330815518110466150502123832303600550691868368933163524038461355180168738735719402738220421979155666633765612361399706887178645946855105693871307488945768977195504027332000582570206389823325148416303146582587978305666948292909660169055611454133074006062584595752081246648373950090859998129609305804686696314951434541021005309679469551184007543290870125556063331263630248374972306963586401107144130066735868439715814991253894385456949380387288943080833095072502419604405791527270844780141944257105895938944383774290623727339518550527243450517095084016758670197362125797863136499828010543269781358347385727634657104243617688468784194484487902433432571514802114368737413611957565807788153339925878839719897413744788741278748239665222279012188682804785936815470038703458035297687877253671459398128548021124114152150905406171374663560687146219345111151331704808975254399016384502679216493526821895220440379979748987790364554932111630539140456701423336730529022068287660418744354428965841223535451120765387190217383269714080174978055632454244264500392623566575636405381659719383889078841157686719610382704731686462820913198206298658202111632311610926593836125696291588181517863188210033372727087569054764910955666303954626505429672434439465137147612516390856033956060670874214357564204762355593192638944583304278400263799939976731894435531177344671923351162094095452600134297638293635827156818643583626418957887202373043666052988561768532661062985369558857946880608024822065911210842593809516463589577131253924672924314454970146327817073562791038389302038184641679443198189647588412962885337381409965381172704422014502965427916113849318942680626024157718157905892280956568343563048747576797291379114878438314346966165383730909244849426954727728388265251223178994097386724933922123725569182834991543756260788283114402491679635380644932626624442141479013190762978041078188014011843599283640823047859037760557203333067091361879471607754166492805832280284071434655307304410769959084822582789554746783237248954693943596005894587587033921505040260693622147397370847666166240756510717014571333731238738921375547476065125440882379707643845503974612132401670357825323987392599763449790766195189642258700753517138538479157608062860226292105253098426123169810958673665430629024685980949986642283155981578111800801739197280177242900067996822717418383908056870382678959110571060576263515090789449004430353102044611874141589738996886347338086292051513522814944316225489553729644482029139536982681490225418917310922230555785493013161426624545327237043700098721127038124027963612938783746346143268991506017341689991715325736818179422566699281523752356534559959487344261244197889515782192115711961265755321244527526165565384039726138681171790802609193044549567012198424150246797822334795320709454034520813369388362631871823852975926916186916394645031902828346613069190789991843521745634733869315124192623263348973156940005101596173232643407203916753939846134661592432825836040000322348152029857052319261825297157920420575318343083861665187834082210609625195916102070973978312323457004208423721623587290351461700520066963603907677911336103580947331787961615946527936381759781494392925201730870926667860679652600504207667347405449699055526241527857321376542367520675940752508413265884746569739452915422944679737793106502345017654641679704766780142267311061642193621157264657608218598725007188701417836647553707430766520349095941421122218861889114904630234686184830370857756422339324190737266695896383395084102018295419239977727342388990528379117148219331302252888323745580279157758567016282025403803664113572834028259231263647115215071181923396658078982620810253823917189009582310686135578631112123367246514042164540789721091198490480734310553511900538160001175218650260516823815495557480969504887792122145652975002842895667189294304201610294011612506893224724288179786518812751997242468012449781662091612622938328378292132608874662184631577228921535872277373799001781827427260586060611385426596241142273223411527777177741841623956752136124238955597510442350388141651378615498810822322267337865816820209640831191037269355811578580715864096792262984896815662290744297979564101974558992252744200369151922871909194116888634303490663298920196277349782562027061733785790086618293656742478461359038669526052432269635285840441956147588236200224322957981754341497072324963657922051098795224970233905611542451184798349207691116940611765367834085117456150347011345632314243672131960503282176443080251565832906739922903955980568246295525565477854282458623360289562113478689914229837234277179280901778299200102137021296068042999788356321491655915248336558946489776856574284519740237199342531487076599065584725621024371296193612111258942342132229511674154286451350008766243020111079652465953177389086579886911265580612137874742828021363838184991200783400002029782372341026616622475252980321882005080377851744254194086639186782629217816610980743254140624182467492564536819060702571951504187355010520902509099179091824608965164144323335088251796846854595937751759491120045897166587718606847021775095224669479471217422612259133254344817837665015798453206129129475461148340906255657268970758684341252766991318187121139702336217083998156855278072555301380824664011940096754929085365283931844344103127971488249480065727172307003660472221711342103338379510801220865846223477854705209087340658040293940873693852897156849797238793630295015192925146334556713464639356316844265884814987205127110434598878753447793709543999370944388207284900567265223299736983607762590256072623974124278899340637686960920638593807598877739773164959868209882047072464683398062307656105959869836894629294820102005947085847634941339729387167002640162363111532102413740929242937443218640775269714671628551438552663006148163351988928427080643207775173054261981897184916044712151386862390228826370780604677984339711622684498748449097337196621447544226323923806776830177957544468050502007004903227359656444582897560412918771635245711313338200695148788733198013483503903238902423281816185707979414067884877054657265496973469549753577177982313004782127411119710198142013337997681527298389783455330379483139695238043760867435798218050898969173773297753424482363800021482413879714666032640968070856207844899344650244455016649898353337887652884214807231200922144897801713422395207917544897433262212969349224257344636249114166803374876510170685644725184523935345913350039707057984536879151179090462603816475441887585686950250337102130117698481404985730339485548907905221794058447231653911304943663614676346236226896310041623431104693828770573153091863900060708333135079476795765915860863348963126728061794667097365675579475132496789832810529204046685199101193738756984367034193418140053135319643472336845491397752965301997588141579142960835220399863740041946955484206111947044331461899328041229851061468523974274945694080482930220543876825998764222558935430325283429313414078318622863529828627063911713040075373910434380830073695252973627842992486854434208631259731385059184698791372290938786791580176915507741888863547057802608666965066049552973779409744469041101886851503145030105527765329539543423873443430713382762020702030039396243870377506890330687714611258698970724079468647158395128732925453699683069956546096752616013400551272182643482197321503155959495947747523107594208591564473773734515986251519413898227572071055137277125106464433721808782076687738517293818522816837821650246149964024204333865341728753230118337385324426965877368838609526896451494883656144007159013524631606886334949454279457364477845034870001463321599376667531289702884079295714996080054471880689670029202974528740818150336965832168383462536217958385707395969301423836798604144745681710726991993232633171590194308264481875315992830262773092497193521735236435110298403808903545487458030833670880417728415701167450815013053371350871879738472534275237732057069721432871331419336860133425140727938826125662899009664157769588450321384505100407261630594844175077349340108070787893738399382943180386095500255289188024655449893235597279170173567553405160107520217069371747883306053767890105998272961709741964491277688333665916822235819099683681343638727587595561437216847833649005568600393243504200853828484649676347215203079294197661528965272699477190427200578860334238379761193047664517863450504827562869594390027109133859071550159510448631862616031559217174832432044018611407800768640720957886015910987714212293155835275094373683829107962146052927686483708131438916191701035879823931321889611801557207233402508263720609934907875703800150270296643529653700092809074182125556789461543905021591457503274581124426434270925159976749460057256377053867775113371105419212382096212801113460590153125854521086827315006652391314268425298775571043522916399168741447287288609310295958339612329665009004209064056686894454177886911036102500852346290287896911532571343706329463691657539010926872888730589348443227706627176058710457111336337265640154317208803375520599245178583208187795398291937814193602949363583964404390055371665113284475810084980624364888308098758411721083225577600563235536377474719977927856842798984862029863942058727558946969946770834273140855746812930563627317148621116066282171198691709698581795381134470529301564050695871775097123913309217895541331992814059287228393295819884662593147389585381847049940755521611535275904098334758008262641818252851131083627048838370175741116768983817458957103682336568630845311635421998049905053779956573170473772137866203764649149531664283248335126956745374344670573671349822848367756360712765665082717506430892110110718537878368301680370877973095941744651094610854290013468999182109565674219879582294451561814503384223268757609271504769810593470210990137727609845350683010860476447860052762024801108924433287973567302337055071227344395909829451853177824172431073567889685709379735633468986727168767041820977109402204933991696077349436170849735300833177333022744646022805682513053658221666754767712874193839134965266718448471640375533935688553368807837727291451504481948502586986986534152347048275033394800914852956618293863541752666048994416921196963689813905066811913937484322781390452215193610392161376833886547396692686427581816323045230726369043507415636577673528492306772048004656034730925580180300564826909799505801778939182784768797245161685734455003296042789631037502368320177287295224073087871029751128650581370754336296379027869709392816876505845633866787472334210660635924999962926924301872120672635271007724518584806079453771578443445321631003674974857721134016357861727884256594777358952771903148577143654203278667244026739494595285896637376516852406430314563621259183760400732434600037987840744318531137362093010712141523752466366542009132280196686677389913069462559293425206129704988324922312491978924228612506319475752606545074783494569003072545056831250269963795065747128939375621108492963875713012704672941830458504988079508540236740648776871593010076623377410348868470370668781572481060928124268104624191882993115697481966459441910791776688024066753287599921240869774804326748598124133036007184344727908447418877490702919904847264013079936581587241715724643737053638706137084670006549877723672019805485568337705385911738934621104489514510287087640978461759382769076130276696684564533870364499287531575997096822036481941359077290235269958187367239841254019820730571354931623160591186501309187856952943358715674885280710971563798789477986973331651940584164958917710854895117019094676928456860676248579195274174338747698789733470200656217494549879957454573475181935804772539008315285396932768427485251829990284732020112352772359052043505374181425099060613829493237698784105563567812182964211609058823822276890768415004436116382107420215100941774290170262072886061201853856823831502394394687443953137143506047205737665354214232316029406763147008799661467517130116188146266971898887436250186498611275901447879544914335554281149345522484648194197580752935648344061240282508368584973146581232894107975374614545289898642970483355990367996951326193332658369904032689275368760594078741801544303996305863209784137575819969539744302735431688543078656238729250537044458015498541691974426403029378655736546617373011148550356360682757063219841942437240036110863809906764067964690329324511694247440585339415666052110686787833764776442892180297905645837292116510296706826371964027660459645164128584364455616442799356218239039663094314898732230487161223626666461030018253843249042412933658507623319705923373449204283739489528283136292753040419873057930681739427299003203637598219338100691201678853915417394713528206574972092513177741703228387383291847526084623803945929728682637136524751510686508134500708825304879994969354304620398246173197501732503657607349464824305476817375294003226342758804718954004439608256819932886450791324805764202396350000418541424878886359325611730049903534985505702230558266796761326854852930641235327784779461496927514372923026037283069426186018311468329639763446116948080319283591880348597931630691404618917100698396988434221466235066378967219762704229950481447431171375713782836945949838250392331459322311017285798246545681407807234671631710923829906545695501420890356525733558180807141213903412265061101175928438935784254970665208990169179417946768561281286567001229881239773383878077771520322527184102869504619857993121316456122042706958699684223637266734198438005689064118302282272758081153518173174863105914665478733637664675053880229915245870046477761126130493483297867979168848201239367031605044217655627676320465160335959717804866181399662558031039378595322068235749000975457729883715451836745677217713287003087234405474685952159309845045662148194533796857154406496663765188148697999411263490334578214785809810838642342760245597641205153005388706279511959148901711575759462354991604024840022933225004019039052257574787827871762920890987688422974699212481760417731092690826824744721771181528221169631196698917910685028091210321411003384549250412585134853816793192252341284706519767005858619462534991308718826523754414960563975003253263388848433834720900353902485556129470207103746616729062132365313628101952059563808771456170328386431987254291557237600628225543833552711228332835245689668519268562515844866987227234353361567784277788425308378814536313987125326769602679724339048890344748446156971334087375134898378851563377967803339628486957624065259580957217078385668603098051118841877077097166396945894711824014243634299096623705231126389904318623716210406402998818394766287460250017341086987831495845872342665347369896158632746734228864722083137594566764048142381183489217506857894328208868311222880259727323238963964240029876552831069990075657718890582808808854421995871984890466519267821626034082595078573911138896125405912956892437317054698617019298077076709554678431856043420613862914557161816599256630401208999190849273936990912825494084365121052662962807916347514328816169637673847396746613310970788470185506464944595350488229318607674471805290099452744901775603843656242415906133076902568340406570959962271614731605623972119843311477610237052298634808537249523829722129685735509788529461313927951444792707435967948888770895909047845128220847035129890698493014187869382055479015082690168725320853740332665224549718193664592488905764589042566864242730867757760281962446272083931617913920604420540100147716923450729481466105150322661526692872371279849652786903435791500994967149208288480736690169875089262228400225982861431925849426191182739562151399169862748573873865509568570618235041481515921123425418591751370776687229099630210856375266762422790764560203545409444121937549661403281837577907186488152529600240667032543920238089927235100042256146797263849852600030402552192957849920763822128006850487065164863389096316112346031385536302908135476533664238055676915092964886238047518387790350051491679653556881376398594143307766373253632828503654502676096240909776537708572648714925375846476316774583620207242485142586513553089162984524365105680792108901857986683412447819280007793668782103626155788199322658760354234766147605499156574181069590468689807323663371293016051020527692551376671106134330736057273946700874675882060294403832567489132269942806499432528132837277926973575555724736074195612879098866153877559769183439417469046678270683263631330043978606361586373531165085510552268470329009980481766706934530288803468799894564924021729441564918289214340138556556494238668152600363278059251360837292802072764391456344108043762339593994375699365125417627291211602404811084166795293679620748120738568034095689839785892338620731084361948606772378521080969358501671936326328322130776456060089879645796713953594567001535299041685174060030932117635556501229021203633892066012754619719047749905170418692690456696142856324993912282212736930369601907704109356277259670082703896032257765397973878890275978798954915377948422909777799144734894626358230351858870263177762049416429142200251834709281773581536815100615490875847271982141375575072804476120761545192691647319418760944665733132391186598846337933374571538533279040972060344374043478349947621816422423729448649271043687100883282238618103050471842232653143654166776031949107766721693955489575685357632483691415438699095966346840600519186583252652515074896702510259072880340974621625830536489920716407984058028376174348011837261671471908823916618836348357268012692185256755999113353803928586451021103642084732945486932859096727405288818226376679358219156504406480036608066806056379281343723585581508220220175389286361901374694897253346864449491729392205216957386860161460804016305972818258788380305627500765332977968145270819160434921349295715429535165425486196467707620571849065306307408497574751305458375172212216401937238738964247839459209219907758706221258315125695265334417765259487680197558082691481430168574882031392191530983290313758763849977975817774623564328681460995678562770605643288235569272233054897088663962684387579927177331214660995530330209926606035401013004859957223577673341261247297546853560545298921521272535156725068703101265530826981668088588725507225246202658855086119545609319797182257109420687501410172305367861945079478558419173702306414580469898459244668291808535554925801062820163674053025404774439235020283653050706781160324578706740650227061605718328868891415644152417915742215206125558139705983353101080675205287265430872863055004784302717514131598705557309374554654639719101777765875409862995890344485617167922321469715056873252990558404426128061468526704389421778316887060756557153906986019827219778072379941564331835708678657371358513364674532332918842364735237500208478094682852365126755091198565222628181094733950602169864859434000035943291044041580317602402394172756196702970503275139255112414899592215216318541456141105219383706208507648297405574430437396203678105374357758846030298954239048447765902553610044992918859723807666131344831077890661534684807372454725788493796305186758020454088636154198767917660617327449230803893105622793793759232228221437459033261999677827859387062456493980356619798262496769440842111137925755948510680950378451032005693241297368149166208960665883505509870125305185511429242540972117229449638444729596424089400727945000222755634065310911168325794289120479138135217991826151162190286453983270046441324465906296595670730579244587863123754457244259793025199439624765890968213463341718161663741357617654294781309375711544215045223847416443441082474129761694775733384757414175972296696711580846060297957193909978138389075758566607951155753859927517826329005052079414439171234389108775935489660073386796414390446684795218122434898393561775362186830004948936383803974528309855447066422043401712824393316540318194064385967869965588273936558202642735809956458661772267928922320596834238113913526541904138292661311744623731817917742255735273786087153254019495128720641072105653141796607682711446301929972382190261147374326092097149909811712532109154612269598260159962558831106943598366220298946719901968017963082850916683471864378526573299557458921114312199034489310923893080822954872153772869160065343156960501451685469050912280312067053330420963415890270341954825368592005743643696492620626311311321231761095200318524823308861755704996148322449468716241934900055004116652327132053437735432975601139294745755235965074204284610082868505504825681491581256593593271501043907045826148959379951462435721236537515087358795752540747146113280909508228328725123212555441590646857382665793337826787619593777101416134254008695387185650535512491214680305432813172230749383452892809533663895784722383683716509570341793144890198145536314006972297063765181061387916458481742216574040180894936771855359438684828927655049633289756173004477792585935679911998634781370468791375975099917413549234588170471585737253491584458083853834409130851496353896776064784577956572339499947059063462846724862215203586903273056722977578755734762462565226870698362874047876746741424967506094440187434680097421569180912662749985105727604896051280956778033616052429158202741942819942981672831708160094558688673442944630052661044868630970628821042208916174506338898121974034135665960258550680918784012212426719001280448310122136290124622156710478368753697729496769219049765460110384013741020081674645651017766032560791064492709738723398022567907881141759525036454322961091649930901924808388410266845954548971882266046402239909972298337151630990570016411053323726530899018978673333480037029052597734460739960528432125943682409669913880683077354074312524079532305373181066332367127624202647282556765260676388125692099241684991685263299842367232457905053265315071003303258757959567568305169520400590032804122801348101112081858680098175824873973340216548263031472971725016042853303610804775710300684281315164092212763470184479430234515761987717120450057227537453601935735469130155576277397497734666185437656530414707177401012021466613342132179053964920089081502351540141510588349987772185408804222880029340728204575755972708086380001313488114754554256927456606248214277751910973669198075530047956254408533821033451064976160649191451683072981298306728221309988335571935804745202044054542157114975217097813294390141408567385097273747083477835322226996673028232840138815491777790068393350477655891731818429786932128284364552912703881562985966275715300476882117824224376220172913278415074791689421828057549695624308552766842080147090960000706947784237589670333461419634352734885394428892959615277704025534110736075706670863352040985657181896114013059524707220781334714795798910265072045353444740274756580943347031607348462083305504152670545862624782505429614123755541573624755441560070363627641401639230209454618249158232421464167028520245586308555839969557876652735373571659117370885391853619527871765163031261932384897661710451698453952265181163485281906244285195159237823549394937832626166832853066408553701060245706721438228391077491481948265034723657003807983776757080389156753696626357233604791589030128147152123577483144694396248201426091386700607019711742985099368901593353119406852438050203212080790863440846861712546927890267969523830020889072161700771840326669577487479681425629356227156229838057144128195393482600936064943366651634737654038348349967751862854039010923683705183305556560194815687030307374424902256457609576362918503168115145769615754818222001208241434745740906011061920516306496388149325152651042272908024556222468371489808600896244392650803608943247741091622379323696246608144573928110010292616577942160585844816675884715100209450431571803151466130316122050767078838323598772663495370244674558820505582346397230126825241256396160122278011588089105705811202668022971131132245440457978715258285637008586066772465855220396175882899453635154989263893388017007180751877888338293027527385393950293645444174105511990072604313739942501766712175082309966177267333719921479318177435055580983888932378465336705923113998584862501406006488945516463756681655009204351883047999160473555451328378793126036813175435172579597053000585666493542084782558441940019369325963620835267626656162178452558617421453656328302738650765429581024460108881846897483787360181921722649984446348645385285928203267037573811010942704006392778656120892081917058500232332284965935532474089116151569229298236325455273589170229076959873930939221903292426176080239936056914375402190953409947189959639354789733657769249926004795346479028647495019562019682049257739832791067733763288801463621618583235035094812015650759929013095046027953596825660145799198738620972255377797474136816778623015190617327614683703864021854653190339747313360893765654277785134594183589229610850661308317717097217638238882699979619334516677700534525257710213710864169272576407288865734461774160469541041552278723456845104913287346546319435938280863503766735253824618975730575571954722316561514344831577006225627746312324216259645765704037106701544397576560019551667047974066533948407330075617119334776894828742416699951976159488392604841989181769764653262231401802801642176514926239967342411038476081590470500982226196861973580752793953690769737998048186174625296682755762746084480576314172655845375715289735283519022862000312150777015997305883842945214491684774441190207288718624883555824882561718337331570884274326525633687414729101244286808932449843933682847908008938213756713297914736630603555135829489214671213945911531107761676933389918198566409873488238104217412390917306724009304458275129434741846773276041074584348695745673672172551522956415763610672863353026215834166577133520887770611791687103163316410988089672869383320075982805409068466786967300695960805471940887680987975411765002691650063362614602490983725299642879411690281594288026159359091629124121056350216258016530855361361804877326997758723350561039117146576579922848251638088079345743320389371065938733351992715630606772718517791951510258875032253038476134195469882569292555925584767216940376350482544137903547210010364699215895904511740562488407480981583351538237566229170954942790076213500905061222060402919213139068466449015925870694238375322016132665701805333290099552968256725392940770806607404339267868787279106071496005716637199308026485361976443812760013954707391395071576943887467256225580883371746824092981925926207150993273650932796300825165848436274897706146903832430862195941296342032585039600986481278155087010291852653323105156112743821062360382688581653351073420863344105616551069121412079887773918050294334627166128898344021008886272970412367066980219374029931985748827532926850226162205362893771900708232537776862155532588743210342178480166330552610037257326250897067614137516597048219081254747132031406614231443176071997114399956807870259182326164061766178100666915884904174098885899127203311707243776395223970902071175805350220554103073765203539605963727392555979105393027794537398070329346458889443127319043419127186706388588540588827112328181227152454347100976715564908571099859758211868855415796411482694019641699736148989711741004644885000579939480299983893774258148433044879252333368493113765793399001437706758910970071618731387842394467354911434354928989510200396620514428267368622946016538483866609783233620094530760139569941718591557761727149132631840464696654926876450527499352147677038697444007933959333730713700191098092833377648269636205803032593073355310719381697816346938547098767040041631048264245402325405648847956173065982534961363953230099325362777227000222036316339386059374621591424404163336735987861631702840190229690969181882450904798638901038691975547610063125684222407671122770206957905487822592592134866223071038666385587768716540984931367829905464590723726136435344231010633428344199745359312762264751839831804560901460155590472960680796579566933474280179693012752667073451022041131905393964481980954843935934465265600192105616993342890615812826102510636607635640482105326266495339012086783402721384259983065262173227096844339544971108027622454997443511713501448228899416922511446528151927205519587651203380432568180264171339619834201917966682698513978466369343746340727977325003925453604235673073369231418550523347593306468131107295523069036494456351578740844625396771993735249721274003782241097996396055628046993804456314973671871989710045966653030604952488048696094485221544406973554731696608841003335719062033061008405419645778584360976801499998341007655821659213744097963776603770013840560224816770778477161904422823440154978693797005617868409047059339845121937408650814592988252310740608113870243694099716804703253604521763592357671769530343908923935779657139698318054590401684250112207638089531406808658508743555327418269818719467401312979611276608444336760839507660086783799442075947660185630777572919964470039018013789056110949605024536453854115711366653713255889576216238683871924128126636033679970506087052830780799618203558831521807033233572173279268248431919955046253459268255237984868616330840575977439209803528942961538236719291365738079344267864184597748689236584704772655842797679980005351480378341676535863180431229308638351629206261671850212931746785301598709223950472939654118642747416612943671520767589330973204231781436763337210384933919976673781258964376110539306119206680185384714102638680268526960666156006439655497968220015065693546415327455959448850283734120080790947887620560216806333083285028342444529765780054667197307190881366942810199623328875832881975737307084378334527695752177819780145498921976554155650979979185105835876552292280001059843261418453514249050194366451931410684244150918662432258843051458027127949032972624524478486962512577358830907437929571428229340967056476959814163919885769708698193734367824314341055297700277407405502121748949618644582452598432556791248896870059884679723821417249088523166976698834582460523415846303399279596575034426153039163172149034463232609648881373100243338512924524525323612708944666859142187663182319927080806566484169260854140394784748941528749157794343190922033701230704059702841563197807582959819644709312745341702757371091714207617362274358383615372624984744697016252691632205732238500737260324410370226201738293666839577769642909215258662729323932212067878171576528262611846745953748959926371150665706891302119511795743765390937636403579172884192211776173813804569938777114802564023276854006965243388108388759503662344249838833514287847374571053922781933605552972318545005406679029489017670435829405388859535288314737711456210895939640379559173736524242337471686372343664709636626254667864100438821014452265934419750407239741125849189369328326173284699017910163899005769810630909772084714331837823928224127728721903779116794492103986958181831600957620099385641896422747077777591153901927071121116810114881287453397297709511575147199327944927807847512703805300197703128211370047049241235744009770946809237088735152747190997698107884711080049374221445860072689856393781881543726355676567406450434808663386534361918985353269358598492740898540508657092360169496749978356433997041857326905636543976028643774698696539919989228390803748208679570538496045592387792426091435708505853447512034208966118329165686884392273012840891883599923417166125271311024335112715589177433291115812722791258576857219676053962115870890624999937861391451102574211556654852510651474134204478774415252434170277755976438925487632442335249319900798763377334855441021551555280913854581610069915402884540202234502791286991534263849626774014225272500844408271089722999382157216885549616550130564369844529214095755180361413193933044729197558975607611922687600920410299579252540643667227052731885463585374844406205438083626019390234000358096573920151083862340702635599558482133479009971349942918715231600047546166237715751037964926172099775359235662116468013033818187892860148787163020133304123304252385317032520416673879797099444384335494228411573871479323026614295425668815405430835739608932891736348854999706071173818473878651387432713206862714866222169528704664916833890644081286315444980986173483177351306048895591771207747427993875605429356665709906134720429827810025053121260547710715055647172776375722970202256545441998960610551139422871162485898352101195265735413155443975651530583427497595279822899248754235687328889134112266458744743992726750451283681419908176545414646529320735969319016970289432350738022641565461910690637192678779178443643804954793744538405798805010428601479913750911643275449240024566511358599644335331954289182031441006529971551998857859281969391627376052462990832578029822084519829126667820553942924797110442451260360440608977696549063280217185414981944582166521817250128430516016397591565559189603884102242148452436880875220025154641800948170145028642286790534322716079138546202912719230924906861524473713573006878115452630965987851867570980995663775132004155136244738779631346936003259055678806905306222649344956325382671325332930234824787761685562939325530514020394713811971741436321999916269292994529761450018860871044844900858337784816610333338935566881633837296541090979450514055653213856063806426533791353599248574081243381011132241798894143818354371816943302590558587143928222834359135434776474403062998709687809488783472138265945026510886198050667228239790315840594386738968237966082811377776553250039525851181798315682162177595232380671010482344249258343885414846949808961284602453123691268009402924303935712314704533422623321876387654503098621101170121739904444309517815920565655827088244414557212833927322563680807832310222429398417810428486141791218063967907423250506818319581098504065288943083779222374402606620038169409241420377751985705080345767886668078303406904410858850703206560737549564708264162537470748846392327250361141156121972733739638297170987574906484098065095856950428779316321582034177348633726205002334801362642030051129251148579186925124336349496158727052715683814776020619577900632899861902064872813038580466598869352213515910928136824637484981888603191073112252227572378050246328545558720498189422251657976687408275454768435739751728861665175591458680821636164787297379863637121635553755032818959565269235647002569105127528571454196350468780953512575200789081101272645956741413224642251070590692763598158832563107529692252653627935883591906007438900985875648484284040408166461678395059054197368619659071364331075746561280525915579351112982103694263386364041314863202105815172236976505110525892098509713365294010020806165326956363618580083587102790146239112034600591876854074548067796144188560056291940256969522872702370532455014980778615773315644015168200782214031694850907415571942328502956158557005242603379895469871374349737939138528709752764124928752616314959414030073149377184892011889930277064789281289567250763719728437457266261218182229830107092749909201279026678414566751440186926310901374246789138146892913821025861260963124914598197363377948020471033892131680992155492595169714419972482241720684363976930952930863445639430558530023897504459351276475911726245809103260475021241926884082913035473807509966587553453574315645808096613422237195547574126648445575876290150327685832058857386593968279599125141069285492009581910689042354128331277597071050787212337965466719159055555592584170434847502707056902321642073028084928676089234001453447785296277367548638663577586192929748288015587190074804453048398001224173861427862369552156614865513486603166480276692594450936793625709797451663898859586887565758531250883565243875504485688327421409097307502659107828969981057337878614176926981567567506425808286437506691440664730071048833483841694023048167262864918141675878606104142995929414743758659139107748373425982273422206092319621382778483668065188055714559120952659581918563744125522316995294157460340398155490715661595870476858166896588562566353310598654616677499520637746094682492861025895750634111347589873237416025622158087311807040064274928645270187148869209659963541108859916766853653748719620104632750675208378805905354892260197212475628855806093635862135613831627025200081754489889650875144029296859871184080175911700860015646372044036851184972392691994602290222219997274660658390670289310259027941656057067229513015822696838927881781505034996517343726488778040057682125519221098423425054109745566648671562027152038998528763980027831471353187880953420383766023461773880940149945410357640666872296692301434969454986949643704599568901050010802097062505363706133942520314901187681748834687234770340202127124539256289265240874752511703504260008268693555987908622650752026537275121807610420896397958280043199989364626377702554731294652194042078681860875988072308589291583237412115371113031530374946903434432975301142697302020174313255749491269675223467724520349177908652059919151465100566024496287967367017110060480071986659865845424583362118195038687293635516074373129459825967836719897224381430712316110783260410626731907163951669263014994307288239251499059737828036996316071782424533575026150583618388472980557504274859120487548394547078045685518332896517650563603248111433027653422085564494825972333467059796919560900722262133487971938757330855183100750880272961414313064141051901818558283053503953931689115619928708309450413878067909104603240406690299458309211897557619768056682369198556042332231019082085741795436350491302927854651742216371779462985424199908625183726785318925356693047875324374631267271103101356891738144989957366364318228697873324834918627860413120542881418499250241483229036458561314900543945479157235645847802813824069291651836190052566016448764277001328653350550830444375006655380416070569819349736031373215447530352130273976879545319483882857188174444358508959447060213048312046193175221038093863322203671833595226198948326130149471178493119586445245924401150910363733360591869564096570618843453668968831509323597585986475215868070920922606822126874817879335743708383439123952390899293762675724661301949151618993717182367123782004550850281728143244106168158742862987271760547094600225810703121555775221899190377949326758052987887652468549682095717018101740123624601805738981436613922707983875733717261038423263053998612089851606040196617379257885124970354349479298466259962675269657775562530520377226116120858912530260841429377262614005249319088510895765710139541408037397590585174717946213832053834663651081332938316938156469860778137636468877345119415500241350668015265708244663787413932367413243140371853064279374877824119845032128356973519063802505856171617671021670463614389545015176887796058175385342713707207458593489276491271216140023740958074447161416516415741704533371365156576802897346920144122452734947623852908401962729685778524707487605068717683177182921682100884391927848110800481281188686135935501778264184851509202203668800969295580741380793009574059496200548645039187139828679933690718122995784908289306105524941523653015461862638439494229082116813268162861686990573775103526163133430487293480957198245568074539288825279318577475545646476608453644714578454891958136782141547707485609821832935855362981768495969938074043962047478580216536444483828846685565841830513685737769285077726875076306137847174304263670339731847179566378420243429014423021196330644757601305526485687339392367477802907191606999059262005529934053768752727808371379953735211686562345941140784897909288656887325669834053619537910689144792633191804698525476392724166705552112185865573506853279648371958984346496200317904966495429581748308374063123221524889848601334530189578213601644012465145182279478978426092236130587461327775602653648706325993921000981361002676108792009363991622527779427558457968236601509486904993967659329094570724465594966084247001609814952334379606732193097878238119655996947446745940591128008861074498026695786764245504440817087714051820005424116617979072804793090708982151559380514073801879610531525080864406198633511485704784612966637996541835550288649927035097165437981813276543262014338415239135657878462699451198486778143494752403599609650314432625499270687761676015655975880516789040222515421585100060114362804749790100738199640135420001160028778378472346900756260005806425321645746085346488672576205293611882953982810266003515657897471628131467302254952044055789652540546917534044957256854445905588295566379810428833099659795649716541692840040539092833163735369858959129044089280590369308332555545304582016720922617936170144423415333874539006088731428166762481833971641149894787609735107155665496634369707868701950836949520211602754444847556327294799849830810150015103889584804647698569428895528716941225512895019482274479135705011761336295227423797197590631210052493143594117068177052697809576019011003742557544702938390831068764244151842120106799974662636096635880900066669604569440679293766872499733681106860893642477557300637880361758069949265593531901512807352963145657604261254431681852486712814325514444194371239234757145245378337849788573026527249369524455480403137486201990686928822435680326179553946746279137696083027411471143608388046224117913258180548007413974692624561393989421409468432535778894460129078115225161688424633266474812974888158464538606064457800575692447975788407179702712117357247928315864004508222787172990663444224794485050329619271924767089070048817580973262162844831581108436879827769302526104819367471484033049732408586045686979509733928920796096677105106148124578713105229212206443970276295147754043560448344422259520002357432004581805796587810927127799926425182901539722090954055609156307030242855580450422252865809031208263830779269398073159162857966597369863575939815027859113174701998162674680074142278859520332084999688892437924498667709685008114624069698188435567198157295506706028851939664324658907215304064094266985280048395954638648663041862177015131240357275515982221382528779317642162726254955327369298646956894365665021634713943105994139531973495581383612847754221829290766160098549323594450845763591911813669361285545132938470446975262536705381881701287419514248032248458677081350006059006769230751748474109328897256604477845267820767220847371090163216908968993215637890717529543782596582996557374164304138611645622317918604999482600505640306467457618576965564688555796109208711271158789809694754274895090354154478428292358692150119466478784893999891072362724908379499474312366654640966088956475597037477035641586410915038389548110526905141853755245907157568439766900699669704212240503147070184066288910445430673905341605081656693679144242426497679669354515297453628619775290568078348509485595165401544887855386092721354268047248219864644843768754040075331765671642797228669029411342456349899794350325610995115611820690450853624081102228471300035401276614759105419059485204916616506201021472325396817315509559280321398685531753945398764858594985552015352739046138362004011362109257475811917376232724950991983814797742491303773650692306882741491928127432872967182766717177957610354879771110536406740693634521740617853183695631336388195428162852466784650678492507709977725795082302677423315305759508465152224059176447030250429992566802358849200788735799927788850118233811364301585819019761178482454686929400517133861820563800304199159677119231401478918331418780267362082023388712946362487534879333780759248609143786978569981228942534465550161219915262463427061522757553519214715897362831380124562419905078488751560190444874828270987738111625723056900067145861640143423875246039896208205995031181565516525658416801200826247838789586369156566746674283758343098446659483590939939399459185844007805435910275735661150279017332477287223486617116125520488092038744830812854457589375376397895091839503909129681084755347249746568511519243771728956329453061113347218074984731790338558063566270652123483771457789780231449263568455637603255770757636112477273894955842342814340192248600044815511125945861060999060790987852157110344419957575386589088973140041600859805316230526947168997275218916533851973146422418376865388995204734900798906084897942276831335014322873258728126605908089257110916984056560404541011001180638438363279019194288803396901198480010570497006452887347896305020708607215357200203756195664487022304310015798395102349111260755558329984485005452175828001955985691719711065973020981146293545818396923714694581987808641720743949291033571121789298232762680742964196282272121680692608117483925859415595323283478532703971747815457593551830295056361387928612555921046074891825612017343115807247887445342331544696297148363676434061227783928156220595876046830819708597208668553564607357178107561678927998053220331149117150022096477441418863990689505466272357069768036848651733245416960204652294260120542930582532136805357813062809413190237481534702303247658500803338738446293917197203247425529526727313635664671738950280538404258118727043172831480885153710936421996607340701034413900805579723578607329988482272601089431990399468655557275088183032160745203370209139087628169017539584392174368606404008331283760985358341907693428965921963551005740526063371083058899791458997957847855040460930163064950221642717649904152154758233760595596593527611327245366168917196760464079024255178169750305241335744229985082007067295583796811828599222176851892569635143360250068941336312767846483800780143125700576512650709782430877606840745804132567458881780123385242264912378935967749073166014511845052913545119666547630958263877471373764727611962364185621985073518832072983970598196155616963860765080939297036248301036451529832533830754309792169349857742729179574274295034229159050393974201178130783180513858696083067913476846982466377021593311815681709068800520240355252912546589580724647240024246484635898840722452551231054791739028165138879039271993069894869584723214011210117806529586748522032340300046240782234713344846600829236416003778581344910269235034482492532731446574772046003743236371189706381838649045006222118947034695861194136926720296114381992769450235430433369795322517348286270389131525349299427458767404760208341665563635704016764242880432494262157451938651694444071136963383534678325957113065928495903277500630664424446334636290567347453951392389018917840257158155139878537762097134014400364717726546037296451416093808499505058392702644448158610922577687481589053588689332313158731531804574556885969041039553517514360393453422403241084745731847707314574776937880864477040223246669367186633162029884592026615444128166242268215235090137199710492771931963890183712289854556949251885815798440818442021468397523777154410231017008431746453798702075162377884238187900410237814116715644496027623525016790021794803309066960936402496410377987878679788356499480438134903817593180991174316773369011169625250304916043637098708471423708944816023963059052851424589832209236066812234456112909377286329225417930993515021650296443427019668174899303666531635733601910379148923916084300462142432417827226046721666769587231605041816860688105748591580765955507474216249467393275149631153204001241925454922118785298619719812311261240770457877119742071571712046300920879741942736267396706482318445146340396851752108723185136919774212732234419011208099438003311463974569969962718328872669233528215384458898899295923823998882493666096254010408280571873411696584821232450135307008165683531810378095510816401101412517881464400284590240451256742004524087995150123744553748930887067541618673263803028235340901549516790172182392737328065630106624521166123873082834060046081917391985574482939435266340284311692918386443170943694662346682981497568211681529527895806322905957585539783384424880777933382945219518175084423300564179084376428726142951852449962257881459782307312753069634639345173788214352871815179682271353628841234473294005741294196155788044712360324637562195689452273980876498568335612252792809103527069733029538120953125574305461938085529887441966099622963558008456982498204740634255571290448996533151425639233467816248048438194468101048838687786517323985368031979268593349337257296782338278950945585086010891325947669069534304726722496299200167686623225845234526344239035678644055278803760989947882343817030592185585725005209498875620762545329189523356352974017002629804188869479528598415681261623098763280038936339252877437136655070524864757681463829139432734986650904034003466054604878240610881688150229656458024843156895543059637215158962002912419864477173464851706541617777545652227275380835194103891674798687421920906080708368673077264437310290308493789479007501199687895245777867160248157784675106578785736976710617538220409407783297664863834990741200354913265593501003323189973774869930133701546257761330646062889792400849478130713572936938593843036140763516393744130115815083425073184601278854316708884386558279635042373887692023331798607741657738314832036197377621840982474560701393765925527429894734541742548551360766158055687872423238591603561640559233920406604936910716897563406473495146408049184334105150228516610306730641411122399397145292163988404268523111015972735121484976703996514169429867252656800560984350850418810189534267312370542985070543399237095799249554819835057916856889049608878812274405363651661146243129996217172287772042087133230354801871815407440534261203243346015860095580306103454138548046021052486764071015411970665127328678374340605339507889870483779503262945135109229066321732475172075607104223866582300246433030417226819699343699779180003353297142164313494144448790757716340526005910475405678257745210861687318532472123507714411532551228807268791232222443008015490339775165192053694113970536292445192798207844780652344820195924803214578238886018472394292740476054740730700038121740137656855368829122783944284232328600990910149222791300549774225819166542208709806085270793170288404694241035111685089889174219862915877068250526030975000311857989446677626222279939361036087573478621951714500233765234054694094708150867089449635163896149622684356152508559875662510948608744560668327788247504800634211983431168003105925765211423108287865832510116906619795265471084386971609046607524713328666606975472666398024223399618386914139628759438107703357361128099666508563674974567899304727910496647447163871595151831863633284151001984157907657092085672441099973363798010597819569871621970826069518116673369380410092153689600955653685084702073679270371589767563910646680665890902092010182499159950403049219700893348050870615165250561894641409652054048378000254944521759175618424574496443904595307939659042095347144308144308575875998179959877228184407691102066608690014697066226097600776230014808235332649192982994478966127666793495626828316465716168440297194267666384324162413966603073408382962896108236765302484519768154237828156089772677098043591407075807179233465552269977344092550326263462179615098613637086066121894071262637785237206372492239862590775316205960586580958660796139990807831609268768228889287097476688990471289123021860361430954650067513644560975400892327217804449447590976543492109950911357707619518498749893116793139295157845564566116122916187515074932961866437685857104787448651225837638765367358069325489211168447727092424150823885208497729623525742791588286393762264656115811372642072518295302504522790239652069033925065802935605289401719903526395876386483135654399921635423674785403036057759733391325956546321691545012155759807034675556197252721512209602001926006471844924777874722181567589136903581244809854021395103830836289336374788089520439058563160914746575520782337916997789867265712759012882718747592748669673329899340457267334924603890224677821178479971583490069329950243994663011477698066215420839739281936835320788936608567889160577308307713751416370208670422506125146640958938156683329404410524694921723178094818139981926719575848572634044797711994212046060809742154967370946440196409037269074163167924392283267878418082839315044900110253720592263509319862720847171750693861027900051144279141804283420077208417067281618637060422454369652764077649493629475577393054800774153058242614035372415172018501146743829236926220853062948197436797645641075846088212817248335729960758566610916527094545307499218063339909685114374722994289408418740028070834555500771150348744179490706661052523405775670727411709650518249013360204399096650121956074964471920946308563177342235683942347084096937847029292978719546926294443282803326020205579458498150405382714908556702663281389964154706939596170368132311398087595361305674456716069739711486180004855238802162585019302691870226225494560281748139277974872283984638135647933290159394315095912668805653708048412846977285712738166686915442614894723659076479872390411961492417732504836270316114905385741177692662415731623829177498977841218354774949201687422153951236929700285397690510724237710677304487983764992220837115321903770291567639336742202089187369401298150593207173060673991611986045615518041623811525094133105571577499246524801391988803714740042883409702671578826105996299504028462233668253693603091032005053377998991121598921878611810590866278827628662963224518394110049027481490338354564680919254388923947773866825159547590421944009208461880141842998136857891493168569979860236875751967958217509000014339135420820012227636058521349201602937080228868653026490962111811770155594750928277958112684534385945278422488271198725610213243585431009171632679299110229544853120324996201098543514641171863186228178686837087827051197738636526204634211464542257745148816389403460011981563714591264113949748607066794897689973566601080672766720369617384840523864030087980503637790084432849330366965197316538619971706057131516927806106270306301023391567282718619448461768967132269352386511860447770310604774380910120027456864072602515743504794844627765199092705649603770420982490823240526152259555777500572270170025020015588924696295574285094407289174762853327577358260638419578267848866300361298255968634889828267030763518371905231092900507143162366631836730942504748369105929734754354820781265446822998588786385911436451849188556581795203450100161912106779143810702276142409349858610867897335184815286137469965377326873578527033557530863171959822532766053652803508684162954238883897722456324023116902809591989565594805322836316528411091148914094197033660089753634169852870906125360022562931553977806613881924260531155297864986738430245692789779082135405705813553185898249601696726703450584316247820449995459547289771942418669969085496159150314731554521515725219217548457656006456100683058983373192016436153576839890490063250293140412263093052946952773314143305079610898254110070479901282101673194272114548115162025309739291292802200578426922476164806738480828253428850860326857878328809326168604851661142617815388326227443734882030072346543490333068659411288143854147604781503958635176339715580386380321331623547875419020475600240271466658251827383811870104973668101541072827229431467116773836930892619677947204975127408230018399108512562986991644557996998053907533649958194813199119044340787853510424925266858381106359793384034207931263553081963981168422783070942686143249080499086404648335097603171790880703777729033764681676744137990510370358927673784126343164364998618807263767742528265512981491647048243535174001999533964553030156771313471833723320821055547888361177965186629074687605015086525925523242823932314400264424295747434328444361049175600846584234828422064846466808022500081749618825303588042980861319798173706276045849086999281333775287009405011992008937548901895784747801354903138909587874330084173107704765317358818441405013584280422353252613184220115856512938052507729438078531256892826844663504397211307053181519821550191230414936043495040988992265006471359786895695090342849691290579231286512807036198745453945082862793189726798894842920960100887403627570407037167119609109188390387510738207598463222283990209718851722592901186709090814720807848131658810424945981552451889958877743919467530966317259559000827643346756949159983966498129027032594816392427428548551306114006677877188318620913868584324150542389712750828057819160632571911110493624608866978181635486673776700584177861840504197883696778345190364315464414610525162694376381102270456229705816810990986946375765422382074146014364688886440465588152436353040987265160596383365036149349881203915284449445899713294328760351697032155012506149694006444383713662700476285622953162348384440230177124854642449760001622228451707828533818053597608833136263011362032532039235887627439766156318763924681956382295429418696494708355786242049593286742722846540806336727039971555197604533280482728586146909721062975999634157350205089130224096655630203028963397334530295474165378677871791351891448497444017210166727964648535435123833402283236709620097219127290316265477621254140142973102138317404459027801236884229577968246006574585865874045266557478426879315716010897154692500303945746230690280588225857482048654180474250828086594747914725458504747535802334034104519894469484025857751393962281710736750391561524502228068079592299381641249999344437815482495768737652013567044198796787582950417954740517475504943958412389257152606624482458815137301135606253403472430153102245323611439301249885051432749093258347821111981366949911141402496001975267395537821993547324452152776974823127832843081940638058904159396970599845991117002016164449071428782134243143286625741141580658001464478949679825136712110023218681040608235831410040458030022281916220660285418559983768712408947286898122995367713300112649910984032385753896864292976514526599927265315835059241961379301611158142058479043920216160085895233261990548187854951732703400847144019447818980505512974547697907310082979893808855267590879847903581119340285882376164288546458821417532215036959977071539645088568415332027955795556326183106720821397559066046788511996430679178736257110830537997958634685026767647074415899642895416252055379799454173105259054076087785576149219019075359555394909130187776626797449853806809970503605461337939498435787577331167008683261026330334133245830242953289659016118661503724849321835896706414141434410916073331587149823518857451358686058592836972338874118156709343719155011154699097069009233053530209320489157448656348273238535861078539750957159362695408787532738331652459380441531031275033087893801156114266611620388986035920212189521372866085413121910498514608282346536516361260972826572878441243493202219765100244111064198273625288479972925387580908069523088974494794215547417683781148395901488303294496326886563136831545346846695787206335558268431682059768808491546419142704680456103046469307333617438963476591740464603703605115586519145213933137579898115444258252276404241516323097354907395922542515127406210656046976558338319986669538436152062632095873786472703142070383904963041176060972038450520923625962424929625730118006456312285736678562925020567825172305017773169799000296583482934495336479053198499657204503167797242570715991409807749416305426062316087873204265840264798450688887531745863121619370599399681563928032815612333902204304162440845578883604718657921146766743302064711204253393003910334942230034534086620952344547182736102530040450008722783099298580497224875350902638627296271186242060891637838728306426614632416018266945030196865071198603297578864104557802133680277063497859564760822717483891324680684739837018294034978074038612068581990791904182935785085934478741464211615312881601940952544480510951871914944957935409296165971392953242950755205763786349183411288395247008062329086773177334648027321004953083349412249056693348784510003505441974567876036858566641214915953600927535899794897880006745538289914782355190093477973862882569181664571164664986921319349744867971545452518141588983429817503715566176520983439108439998203450904476485001759843578682260273306105033129434253087970423846946021258073015517780084545256899009344524299308141110944136923195734297786716665837796821909031343653829132290427347128541707195455383308494171587401307405233917920188303934039407855124124217511568483122740553719840740949499557626162122680611201547371674684518926525485665059483384538034633682911636417436366569492482047271303250140862450372920020289965834022541997124954767909358121602332723912654083651314229859649472377612200702969891960460195518229680985382331025330553336895145192282444160481293410512863949491865653841580823201207882742126382455320877566554781140136520748972705360761117928568830166854492527938349261214485350405950392699213500590983646868985607919159664753805152634518372563188328130660965155183279686618849436106900270464785210464384099099572328748407225820586343046722707167556098812626520432267087509631483198409901005261106057417679492308280323653069712058664192995000220260484213954737752155855055502718397448621002325807102283873237673973594284410468902412852514124905386179168914203834286963352868450132044330773736550328590294736654802830530919352023522323451209829094224159983911747315355630557705623414432681075733527789493804094669203995776391747285919899127229686957222174244763701186149363888467914761896739586938583528738797129087101852899015515945130547592511960372445466480452279712543755772646487335921895772899671182090964061682817486408858057356089966828168786622375759604665835545353703326982058144505929253749191026408398625685763547868889269551574145531018002388158920589750112181723383097740401271189297957843365733784468664958763945758133942313509199200403507366908587232716794709193694578211971037038881433119574296319662514677859905561604913740612245384475602082942611069514428376575331826276281619741410251514576996980651017847297883905694204142676870717776461650149764551194493431529931861092038031630151150445729073612365688294125197722321869844122562346989837406961626480700044439896101973320173299332641130546110150486791783222354504856312760556486715081583459143286745670121887786002634511058249951688142768047974038139991552308443901076491369691045561653082475167455355654253839065786956048598465059285744560383175556345337195113050958441345071754173680966988815153157235157453385487985538294487383977918713526779353792369976802777888514416636858971282709555161397500799892807607881985560234235740537103101278797904071913117359419900940933094933300286445239151270917703053527663108521263774797245876377276887272344632323790579734943701382066659034894932305089914399032172659055498444474402483072758556485493568769125545597564048104069071007880489562526457713563785927531079282428526543457572759568307086320418909801855870311571792207018248395514607310170662888171700117178497739453704292573736062872090555273916562984756516909769599052523832131917320817087826932371506240503507205113422076552567837833605172711116629433992060064718830012280602606710591738527648839840262119136680476683387943199459057097241632331224311527082817799701911730240209661634729575555596582529506861951453210109646644582827663370643734961460873777607720973472078489972178369959267917672436784091442944632544140553292308337199344110095763464484994145496628363519106021140562091189547787668196710213982039441193378906282055107526636455375016751601870926413560734020160784945612006648991133346623046616831033781208834681435299742230846200197692377664782131044507570162810447095287766893254063210016520728778681796292151931684777623159066236469554060477013766764977831082895301024636669089874283330021109776389366945914744263612117138977975999629012351281684414397068350215355924266184932690981639908144323778674377151466036388847716144027469562639721301804374620785843128980711384605374634335083901383577326689218298769494736516777773748909869501083643308504755503878625860573354637646952784148772399812231050444373765520121055875950018151485093305052676914918440812660250957760025076576050719574525897867743666437304097433746945266859031492182156005606835585751337811927578771247959385589235376832285545054173403497607904816825604703669076761690628448835901866176463940682267584974082310504672220784303557533457844758870955470658051190031871776314265894468109805329824438816118060536245355037506614698492182386134291553719452129138475197013828141570827837880554241002878621682245458526114932584112844666014285600334037668524619000120592303781097883736380607203571891100460953361192140733044923928661276785176793949552088402174670102705147507725175866608465254284399150747245294921912595288432625206852770950820507010467167939825472831635056503697387831527474416945916023407048526878303011616596783509581744723278178649410579161124816735144490040088211584591010854477560639251627957141545110990831069882214762355509853305004244789922853447942648710849874139872363350364916641307278283920060632013361092651136551337813577471918328895897322699516607378688959157804885337148607874906955358302760900614362727337556897091404360219223281954332009420674822569621242851002456981530822447635382915250643275427833564663066491216872309037491000053510232170747995863490125266549227041828164698911307477145228940002656433274037965441068153542434071102057960222400122187590639086090698803895108861048596384142833556445348054496851485189752767047177535356673597435005405743231956619130388141393673262905402809552697178731472535954786287233012160943027853189760858376092040523108921215638856269355548785256757178304799349615965786929789073239636839692694633383221129694751490888681434803833085059363909874453902139600786225307150940016628246019107905155240896293042339586591032306443174875127012528595209273667963698960370560725061397348569920796463782750800989706213430268063300497399329777537801347600131181896080118648582390249982395994590060908442283832987903844757081240683326816007861346977596342767776249528557103109841134234683221779748646523663405206157853613244327431917890710158482122280181962733899682343383831003489674164390913445887044021600688219640427249184644540637066580267556324778029938212446236049221594249085324099774033297061406044850487447797432624871419163005391775658751154323528899495070144320874369072126809149083466042475688508030549439624036174375117561914027723269941241588980459036041553684147580896336439933667394088038866875543103732570697682410926120379879036367577026938084298357448081553517509484049577859230085328223622214927466699038199414949969853732829363255848245134907908754799457360329561943104053311524732773340050066503587524366896336354425042245931752167768362505578877864977857870990925466376793337936933005337344168046029730108061138833965375966474043976952584363674003374012690921983968337120079267011244376190778715696835724889278504060710799482199246247510286319009116107949096475708361486285180531853338038307438109262784235321554477747254076052403559488946184733047500204363732256170091037135064662097987915491031139601173400301541974817688607923724345041855026202107499273936027353406225922130641942770570405819475929090301579126280607120603377942030175185751089210168017590845649108296515297611733234628751423558132943376317979543651382873153863225559749153522992611972075365989312784295219552450571240528615058885796795510222942179822152302014396701076649233208625322026861180170491448965649304571580544458311548247583764015282288570239820709691406175146928645669516916039095850684398781388879689026609330894512282621595450261450726039263797842618389164662124781458472577871540917275047080074614291086689838299699300790244063776788312918508511618704271224963339437510325706697125528907840604266987913063593345896836804192565556679320885534207133425733412465047136613703144133811852519306561554754573166176018176498797237354158938623182765316531714638297664630614389878954275405872057821976657277753551150723346983036878159538307093853251621425884805889946496680908120821595834389466141470655731497861644741930393337096980515283097322170393386282262231481496849385401594106205290263473931824875841468723331746910205916720123351913842154687866813834297792550089744174295609986816434298734006582126934053230648281408486257368853246205617230071604008591184582371468745440582394484974481937517536244810954826497901035304513930346124730276066559420697258032981185941936618809174595521416998448544579824952156321978329802177678793484406866507013417515261809302853066204407882635892541429452968933620210445719730839769214609323473901677184250990340105684300332374896745694991548322343836506816247925429738058565421951808485367019976272567137548013511660829525885188178075656113639645482001588823652757642481580075592070934031355797352325663956553318082533210470265472289713998761997442037771976977434795645592853919813406429880987051698822943451150561701582346262223122765568855750806565357029932581266459775433052664286784836254005612370282032329378238554161272378712543382580821332562305956902175168000862531183320315645981555848979574341259375107380323790022037935864812877796129321111237007476521684766728317001525982122720155521275111989478527158484542199347912275971712849660294596368576176385030315801193291301094247697547068054352152291777571771313913397408318307090263335895463093099316568584569315673939561377980210398655407213926428608043323032449705227581729250746634480354124246017246781639485338115028523328158726419365083605789875840360554645208916110327392299465518249878598868199483748158153727493474622822406058368904182039284878309167712750472849212933368732449419566638547420147470364239952747720498658181012120886168891412856820527190091160441709961091986467905891146103044777943375505662732897694998737602413810372848748743318815172600533968899468681282975786332402798810199032758638402415998623466282050400685805766792256230042337157994397442349093289314194944500700441942225741855508007584006255689606617569372175499128958391065097983628852213681484729145608955992572736494035288437538151977658477599382377558437567141889312287533369437608076809690890751945213751529397553481005895064320091164612121413993864499321064343066122767701487651428636771587572877343726432675209196131241415532835410989616113511602702989089765172190010439048397503495175623786134823036217677813140390987944420755587248026138128631542602360475725720165250873748470176268229046856365653867288337883523596659261335199859217336063760168339222366744798781613729351176972574156262719604563617367643596388132668461346445611450561285817626052606565879885484291969075826970851655093096234116892716614637127056306441821798935275827772655390312807388739449254380725147215079100923307734197777936374527376541177985874714057594676875417499173131629543462275920998621828785303067683367986634380703491936027237184438323054687154751419823882928935171142915167380583145405770251100946254388031723209679970474136963021112267639024259599677858104957820132965568033290295135576995989938437668605635878187871196658956327404839261070875077214235693986064101539070054165202233030079807641262879011980247600116353808380986777614548962876585408680599683779787678877256021253495065350020666738226109186509407319050498548459348539901187872518165004673925815442659843703358303782826665476162214090172428006492163108992740146229595766058810719052694722696010863603678627953975265822321199447605915796803374495478001831746592496383802158558797893081097473352774116703339785487328655785754182809474272028053523439209818351364895221988187535724799722544645560698238483578130558868751928620645260964067554921764495565864232409994811722476960062058340728986527663659417087627177266472996294395012215023435492286760882985634473251031142177464275559385531057697393312840439830642681154597513983374080197879409332656673742194928061183371949448700375143794800281438171606142369572946550891643924596331377630331384038368376273534928099624762745467286260218657446015431165448400104851687568441148291584277838983672061993119565831118993522989793468097828894454118956545667538314546122061942295423903772956099222306114646082213367106848459602224081032796481536698066669348142501569469393029373536222434791761658297334466348413904009408331038277799597713390771499592558115316605339830992976053333738662410110698217851753028518135040239903093679389248601840518857856476920840730530301381201661149518205131849897241066446016671997272384885923808706667107178727148538600184303128381246524740939633743327807080420847091598863389180245424782937130615824180179743418027323133758300562417847318884173782493664672058752409458470999640153378773323029658371746790442094379730442035646787839026909471495761652636877978063801943769357894636686114070411026288483902668675776467671131696198938421455368655483309913708157501806361323543678076011784467552135914602388249436327256293454850750552833170590839082595141699907183222103646332160806066833458872824093016297865583118223564742252827757949945336644793471247124285172758770155958238565955685351325259907313549000757194311225506959315260356535486287540930303330863360754773959852855189343998479086411766451132815863265885659005376449647712718684928553234990372709569826942957223468869170303796449563413069115024755290803777148158879684144407289043590635160172786326608168217079717212699959307734166977839873125287767652620935349170822471289700084794996673889675951157306986404291799195909307666796872931601981397195001308732744290517285769762168259291014810431943750664183518330210217127571028457023782476077833383919461788822278138847218041632390542994932738877915936680653360968392032809388983958781465789000293837587124635311256093738849639259402081935066794195072922052835662236842825134933587165535890643375460511198444185970626886994245536959389354973228422230005054436366187089654131444080026183289889128455073797975437067263854004820320465689961475783197770538348032948728195526756616701582041795193526960665966093978854537146929777295409462312958036079187102615673376463794905444119570209235737339408798858173274294326014018418668620379033400885927966407320438231005686627241837399377896827264523934293308320564402764397846010331704458821878743066752273806550126163611971926114623738154977291858729525639655850037375677246014676516086634520531863937620754346037644849033120372419936629193446154282450047276023642325444578275104588631865403768078872118937885841489825507066464384235764990728685208017484932589118752399163811455904577459418051184564996024311942081015980872136276760042741081657039331422817640965836562103955694016667438819554466081386999173507988401366432903851618795372804698087402862951502617732904648239214423678810052691471767743803022074047916331529705517000913627641377474964911361941886314420204061667432716220907199353113122198723699430062810175325825359847191520593691796213406740455060398454491227372532795282255823763659921499761970290386848659859894902037934285246208953674405726763450627784547392693567670766043638515108139576559823523130007175243357917487895257477013039040682077524653060719251149750155850584251759484200956647301380317847795471915270237959471755844779482296462926726951370592006111878200545551439149876196581913284115507360330973658942614267832621826431148609410252100509475135881870362906327804993547394677757770824566606557559573833858207980142790270237590357982621010235110234391984387645362242315728576074215994954163988670494035546311026768649171968080761675922276271070779205888615331408351311788508786231902864303354131131582907476979695349466064573876748078041421530404864021064122066539371727302013986009620502713478780508409977053334598830666368221944682098251390115237668881892375499179416686187678844514916741486015421356288499517004589215399924797392993627679115219341334765503626779702742655140445011710301767599319793169303564002610152417317960593889515202960254271024298630300221036814305995881551921306156008106991223724297359297195270038493559686258307646319446473725922927922748677311574169566578075885169702692261096920317250297436581063771024283888002211116627247951597792809536149012602604484228933531077744224038848273386198092127569350990217997428238857663600342951229248448686958037377844144484088148302178510573534798534466351775489642056339309850764559226152086246487968087275365295085013113007680167403889063127934608484249360864522060286914789418932907132726734686557254228578125968253555286016526929769606272409064910339194960053498501453850074583751996868505675075933640213539312960976596011728759306333106410673913934174498852520743408473809403235710629214462719645573151087627157102980423121254535075865514166746015538068561759544062453934924102477236880079791195786706255740165247859479884491402928106449364104218666281927625708978599335830721221716545401379405328285805764565165954510671480800212494303860350861183388634415842526685430356109281751784032532481822044860556554684851449951764949338488868920674101796038536461121240825264550200922338820547428835244878982334092346990136317211562436583439624365861831577798432920849448290337329132095204791176707305723194137248399899162867421638816563021990924581323281706029533171018176412403399218935102034789542102247643770977541971630557556559588126061347019381995177769827767389640614492345929654440123795769781000703634149418611183673917097872928894872135649261089618456417499963763321163150449801111071567511547511346538599206015882536045212389966499301517626540800880053252260605857359951114406630379811831755167897707550218245621676968755161870060471896439834587688780780025187907744794903265875040926668051018126641573627005527018322506564718652836967663412334573672642267356817108100360595931326586120396675717791978652188977622745551863508949319725750520415538718467683807017451476289257002840632255535885979494684337354311072154122068374027930889420076920198594223512084928582978884492990707747906326360968926411405470811936101235446720360947234825524571433316786949511582159359127189793267853101595682247832353681449919792833768107470013917376003491384091824545331704668739547521207224655578804292545362646893879188264156026212760038599654430512102079502936433104569521108152090221779740539537943709432752807411470915769177451777584560219455117502386157049479666582579112405962968434960734780282694630188981679949384486860650862586546276637629640388469902608310506914248712200718786192280376541566945095257326536700740100340462406487787283810796034515123673179659359977307418773843640246427285093167496352013347043136086492327600137589897712273782352084884709060799406909668165105063509392335641395567218625793423868398380682145788146090781550630510348352926978537800535792680554099603937034710526341212754698764680216697387858611679056148885730765075227640543879609846750165561229839522429620869032963929472844896570138501416452117135249486516652655256812555492396400880546649400294205599393667617338733585844613208346201041806546235710981596360966547786038904627055187024501413014418484405000432257596023021088721733286020051701603607188943699796182306656283356180387698980573708692990025004052196568886786269221444516056799630390762749613900594144791409926460721019054125179419808938203745978580131396544011429525807564497386115577197435591507148327513692043476976768915240169998737939888663540038655177654167742837518408925690474504855678783194209109328186754805259788337434206481605693794468741954487352030348233417688847946977267468696179794898313783674962079647884963748316994585887906347247369320823000661073349801661754089836141760510624593685204770749557310006500540627447126374828237055573520645013766745763287669340612181124732556147291594127243548776607459636122284012034965428193562422430810297939023296919690417864270192838812711533738819669920156230182028601098046989115395380304090778622311987168946003743573060639099259924372387676676766732902190882572203325815309938949116199593352097164059631902452782486741002165142187584117739340463423563918048987360638602512593373788631427293104367363759921870638324088359181792965148005529603999093491332856043344822626513213506175275655895968208732007810278101936724080738924946391810315838294386992345077401003037480838070470050753178699517225270725440677714191016131540674577181219870473524174626798213586744779920549320454641719472192430141537019296933495328394456567545059615294785377793805707147841353735792737580409911212487075545379115174686006573660391010404051083536403381446004773783427863394326053309913912428866481154400105774745874907400461743571008630248832173319096233068064183675459745484401045516132657562489380448816913483125224039255332420447841833351070901947007911675813114852247368792469584240921172114684693731961198078503589022803188470149633515659280848933592677676302464758037316699391658971308312958359138660253140184956614514839617619778362347492798948928585528429014853086536750056233127756788813476723376041975663261168148721090428783224547431848898056303425512104415585798558867518946159543446183512843546683964980205801848932404667150481634771306263856668945772108278148610567449622907088017544079593285275077960321942203295501728120000737998522751656099673381610104205341801752375976185807525100219096769187122031835712169139731525244082458777182919374444162342978346366627631298070590638480132388814103456327971096372784438553833640662978232657585742374396976680158475832799471023338253178637656071516155471874754766935433609894196880376963860865092544629217739588595111043348754885976180365475195023503385907966346914372252215439222702788583747594366996071304324559549691121028203946040715205819368904328472369797791892305879842299377412366501062480993058380386353141609883226587172596050226334819387056672917107419488294047912297202678112492574190229563457956872644330174663200338891824510219299066346776547568815815996051229181313840054808428653363741790122726629727070779471927248875799376856271389501994541431687116224384308417096646330450892414057763945594979581625520607690099592121465397141321118435860988730387671088716908879817564637083500721009583641331148842717654053513770984650356481390066965463131884215355017039767637181206007006674660219080532637855484275566644295642185091401418448095101036290421401857980707372237799283604996144296613115170706140346967614648691559530699327456648734497988175205903944277174469929108759513557481476614402556477854468930519002663336156349615795846938691728852203079129777382458933258218312735020367102906316999239190267402835747900451197431914657591633773493231576059604508668493763064202548508228080922063315863222502723818811924912187434782469199024732880657494646597067887441266719251311737453602442543910319114504925146754671474812179847378907918341896128310299410766954439163809761967008433701700925637441780285231695351458738701606655701500442210896546761953400084301981672770678397118364881265018919864406426158466212556935219633202665023850338493984818444530287481301919082553055143888121449348004781827713471592411723179091904183701608979800134943672898063224290115813329495595785049824409473741411719720767309151906318763552241932379445120469436727878449986352456774482073215297527779532763665054097583312833921451966208037147431176933244059072800336237836376444132276742967027952774551429394983893271283589030802795961504650930297920701384713452431557570497713046901371506089892275902895474706018224785038700245978324930618729736183463456145488934649512543557697485770552083497031850274692425150715741572242391241315040578744709731114623149142757455940290592790433854738796532988444581417055531984065462974730661787126242010660708737585093085400227332449859148831991082524623777238802256589775643838815682933975716613819858283334093536363432527709360388749045557026317654284799119588315732247491545775649647676444645009451187878383275889352612857986228251014221530381236044687873577785570919448718237428517538663350051520626475413340705590349921308272472661065897277964930924909898913191352307929838135194197794537566051844690893067131458928564433325832851636784450007451774572234699822933303820986296498563676835608527662053710598437273933069158042761234047251194362256378726033730376028961217394323196523338279578254147538077091265165150899930947718509765245216523373740910833753477579796644000531676338913487342236203520805031752988047555026771940289343704555137393553502767715180938526820447718244379596082790477933003629620999178143970480911808291068578986590127564004434867804338677654716965332711348648271798771148123370748641205114944692072747772288423169729063788453468982495497967484601199962992757427323432059813604058433534070435181815237149387489847508058663372955994301507576700378034467651992686561564077423138354776171590308326239663022329010315206765671848653865670652243921947263775310874854729339640113866306574460463711435564651853939390319272142612023649810331100001238594236217386157483930116144686530479716898643144737387653871220215497796135291597440985796124567216946638331131594790698439164428719091010249966582634969363721748354172142280475395622347504765982857036489506068824250824507886901808831794075949561535189773537579276166965132955500450271338583159511560663466378332836553141849781237076483177363831678550841312225443768179534671875768228258014829475896299987280113935829620006359001196150656177544985663389335921611625810980779273703595489413488023693030437066817764581960276014636547117461748930084310184028923038859519308265146947364156817816991481862246742214051315054396645097296685537669582334712168951901618006346984799916393911260700769957706356976025749358563485517215444603436434747653429079459842936602845440635807583562848933112276032224382867545291130448718804883883017687705784130047490850356402349856311555782522688439087671324415659905392510365931854710862870568290941718096421810714842546203393043218412380159061799829556153950805797439125705770338676311422508371669437274598244704512295447007478635982546245689700962996529159664348723451418015483190814138560017267209404218852480784909091945654609876418061142157049198808240615284430018585231515104288126439860973209958051638807790218531897564620151262220520155516953981278906788299797044429982905376370740340330231879140267364157643944794296157178939714914246333435182256078083856100977346371207350103104650710287109136073323752931245288897602066337108022716611159862787474792511650363729486841875019695412956686086286084397603110552869770228836241777360409021360062416596706280892799735398052420295221428709821542940496553678889687609425213970043500773890368175451367021924623256249703179345144466991514058360429113380050042451245439094482825092744857683985396658097031884948015550099499428797547692755255281947177751372442133204157563409997736152818225956877332044637463360716253098239646990740952522328448670226969994165094860076272013760367718663587391533050922837295559825814400484463256467950594849395822499269541093766442517600510817995735449285151213634034890475276168692221930215774686457859783969883574680338599086685376120049458026414773278390961661840384986859047539016025318072956595263087245839208760866440892755026235013378699534766214269300108592174738008093640574915444800974722595626011298673339074806121948323889730087052392354273620543400538076030970163300368225703551464220271031483872022543290429251331732299063638457388417748532892135599445051018165703298054333993797366556860874995307269605078710399686454493973280281653743044542798206182270664963970262156913427184309435186861614572323998530046179608218341897571078653705355459486371985507482086668135980252856578893786637510774903071815329093332043633879781504313337740939563632453726285205241199919644470970605184025813913759844383563752535559705757063142944727602361129082330157279966720752544398975631578799652478084865028120705109266210802773168028760983052595974718332689398510638942337871996313255366613226190508871531792709584325198155693074060324888544140321949526643309829900264056108797577249589511173772528398954964316649018700786376093015470537116760424598325475235555204546018457183963624382806239822371182661824932015742029540363081994096870597606423396070640230113213289611697702070462366549570269820966832162375865873053988471154256731968113731299946203248774875854469512833927557740579351131439432547629377079932103638363271238184978948488789892689858273555039892746511991814303053939538907064623278584461250063330894614292672203249170020281976501284433047023258293167192701931579955014249953519695143727350468866370672699075635045141777971690364060490422312265007472643881178103477723110626082415890906514672279494563879578944072944080637582521011730103107930996913558381587824618092986021451579874777474880088188097186230364592901278053624331215508515498001704245621775616165436621639063747574561071847909366811443458072522763683558404589665280982533333405471413955599367708730220870821495740019015924422633216209191937652384924765647537655481837535874850652271578424735248064671462239101047514498052857484543395576131642167488954812715345130466332435361988440596270723638738911169320783119613366088501444093088255907512488600961550725093096845867237126024382810634487219251366294359798320307802687303899534844843937643993327061035195774773088707837171977774720659545495608734047389094368942537690135091329938821885232642080590693694166319655845469770030883816105648780654320181548793560986232964006587975464181903651419937706146186345324481667455758553650398011010696732054434358404792991797674566342306313446654476178400277447596056743213988668612372429451606677587150248211947053813555855850516195739718966970089686436447161880603386937129133938952717464876884368658027086447536094949490259395285045920243465465673244603249409907260858113015995010133767301224139945014945523362536037320843801463677564356454325845837151513101883059973149318815124555176982719449482952772247423896595534867457101623972612952994124652064463785336215269782469894798211552230631591950848920993345581259434562023391455582762853908797985111429319619148752634398270932341438018068750212198442462179560176902322519333464528747486744809003691209785169166068589476480573853439049893058671951307075362375374974831553957156993789313054935200355903794710956393552589987144412043275481151385408012133271912461799488956570076372878455767818844894044611224018020785488108528765721083390728321524612098810552777637713129250377414203125215000296683570359683507254212757472409505942934849000704562673109146013258265323533656846938355123726771671750549884482718483207106983338495686565841476670602664713837797912200097962125440015560578246403382590644626850569989074310068380790565927224740289755942384233698453237291025421688049581107926919828965141354458243667585815648826186614062603925264284074493280765304782301405235550505665046126488406887094733195353544086524943423996741770605979598891449945234845734439736741712481358427277898583739701637386513947742659601782622683378248820935413559837067926789369888762550018155808139384734796264100565183276768498823908199882643340577466781988220934078419547041101474659233935673905429187221347475627237242141122533944751689301829164489725232601441908964993831910139467458446916700426909528310501096854983440755201091090983820259255600297657543031987869837794700254290204612163871008730910417829900772400689693019634717703240319972396745146526464035147270322957772266687843867841709017816771038780144493568101936917340334786161761956467163081223535229467538224560433287429587470718968292134500143865551130789931797636203340356006351889482442521338966427949820826941556856195089178243400389224819738174037861605877588109228476113293492023503829207905501195034292561040933255084785146208483027470537277953669935187776034041404863319260941492267444407471681136949457014688663066423259213761924021588719561470429864151941997821611389180748046832693931061710123049009774873791364547887513118368026038270080846044064460308059350592416748800652194332591737579361547474687427695026144017595569891600594575311499411232295107246425040843852294524344354514325765047383343158464683430633774846699411043417169238404461561992712589180326258056521247470222722887876318599220894643268588866280708531663004876821152932293788441046312642421239576195324512349459508658512826794210648597692529118121608480476353265323700886285165021263568725482279035584427424172351661282468745555297998148765178870329365065076123767613964674115900975974517444078309615375744572973791371362911727277332758517635476174058543771441849223129693976626558126977194452129481086794572383876928954973296373355118262696732884791286912405551046131339504287792493366640982056972754344437700186138471831302339879852554243400729071715807288680699096470370565040755593692067127884477451598609261484409609472171564310314090196308394848668355246756768263791216025193889340215391200953248142220851948998565703547298991358773188227142215518884655334074482635617468523680329799286729341063413846592624846773354322122434081013370625923338109105531885407071578818771950785703953108565589547146820899806989811737523295207441864263169054756453961299980324422859022803516535050910970760432156298431408742502052501673378716183376400994299512409588124839959296200443017541726423249665463396103331512378454141150340893671385638654380035340662654981531789514535022042377913323812625493312644262531670312939820632827346052326940063415945358089664035509684399308141107955388757444644608428753202498443071131068866663543678093016730317538218439785320141784292599999735750397753877047214231303243678319691347828137319777877265046960385310913197027121389719106407866269991802613805430709237093739802405505813118320917595398329480266708335739827649679474488527843707770829498062433504724790181444197218935406488106548428374414737417578121083039751043627410911789511924023107380671465198527301272550655034195209213158594908548477002188732664306092921324573694373465630292590924976677684431378324958087288936373306044769498190858897901235260338607791076113189499861018456373803064821824444152464970075063072645425701635406217465713681036201677020690545736405882308410016189193980278894378221234998817458405654094691553842337927397011047808535130376296243499765112222750464483907081154110679288602604423225370942285552881427711440638260342851995473822975699271401840103054239609546122768232393067783346114699627095562131970413533233787830696998136203542012162814208872048115169794562938511622294990623313551609479791397276409498623015205309186581509525234118200331208210752757239016010881366334244884002457500920852137540769478938137860547474400099226477907546922327782609725629949382631071472144668379029773853326804808960427910760452642672906990335415452465885953081096530979325328367535148864156610352599093565608792295067413817478802182796261508873104890660170929798924590073678979505507526688442597021970601342673756749540399346449353010280451413620148389726736356731230004629224203551475717952738461330246860672547596117141536952457958827615813504682094573374621735273960847374199189940703219670996164192047587122811161482826149332738054402641577124046392900204018442960137851004858238370229414619571974173091420558126180145983701538758916808152575698871669362035209591856829507769325945555334515827046267539739919569158895827787361871961900009633785419151836533285249375333702492283772594026857712325919176928067298239334297891138644971874655570005058523623313440328009400725898537416221319893088698854919492105808712719635964542931866305746054826257367821101643497492136324375314684034435271834037157277690597187718379513332350716078431855211408717474320219646206558835211946783381911330452256793172883600255810698124904063107442202113268327215871974258604174438924017077895304781602214062320550890194722504058672160680602180190963737661773970494595078730547916928972353008485513245038710651929645940909689936216611536185568708114541152466249902458259409525928254681998075911395053808984548899222578190525840843016807444452419178670706549365767388159890515433231448894751341697775714293427095298512580865015005843440025817076176116730496174700579281485440315909197669134336255055179189211072729293192037741062199159156788905291778820311681736342733792484376295482528713900805715704335126242102376553339687092358497056980166351396016383163328529324274652790894045241598387536986832633065127415740724010707546211539177494763763991901779579460594970293174112029587115444174112519988240066998037543086890850095115567040054366263019272962818315912149953448299058197080272746493830281205451900777870628071915919359393734020824311935779228317611816179751301434665111958366156086812663904430885409219173700104472114287105408615998954048904342299689422856991411271396333795419902953649429076217725365101141041886734680975172918642207313734191123584212196776197193766896727749935790887824365606751976885129496204923934480831274620400432290235999217414749920729831444275532434358514771864911920567042235828114385918815996076878859792067083521764278277900469516544437022514625201623067528014201706740374551247996684265614374821859849177897044800940709376806014548344945193260592826492790145855462717285897001450759875500086187935808859711433556089841237270039843560568815492726861037522277375879069454737212992773953501998276340304916728448516680851012771553474613453149706314019957607968812953803085186969534527325584250512779984210497278830700175707846518217895909006699757009028337260186352887540611647955395286939927265567184733535179134519149770015152519071976366703715387825683733389031757695209710083896298724886504822938936946436122952618671141307093595024443539241012860366224837090959605767563856072574911301746538062055622789678733222521895837348613156132701084737924642905720856320610186122961343150559655672204310283357008484179641391586702375956313526256536755955195800579912090929695968163640239448476885997473733393307836347062045543174300871931925249717185763204326060722647191747848939296712485781287976641969454551279717033088615050586742704669260319409240490504536391404274284131092463991537936531775540220665291982396435467483357360012561472229179666877795021125204884558300281985836603727434683019660508806078144375717263047882359028340241745931635325134219530167807423758487945675611166159463952551116683605548770343480727896445561528675979423575187243722247796682503213409111767742508336597985418861973316399987338703866474733509187339508704914954497267997401538675076221487651513231410999981325851094874440985195630633288551655487276359632196453894116235816747439095105363206141061948802903670502058724596922255840366642242009278782281881303578990036120843786344246243164532709643866961476521208414844368498013327257444405346344847673485959784422667708580407760836027225110882351464811217997639489846538745214125542892881423404973933030686098835900560069796962998008144644872256279813914121638284998786215955727555045494631152165387573006998616314848560761320599968157415839181110310300821988018764344339616806617647084057658201199980537288540899798863412632412470972857578534020580617351272193688332673366746171645189466525526712531217847110610685961854653643665254794783563739933256699235971868241213861514542290181168546018724700356909063970600751386856283713407787653944446708830097037126696596307432442648808644435552875983594913300714941690253902457301907281667558122627536799889424950124383143394539343603637630618379621682385387021264571906701865151908745681965701963563285325698306388410765373247732788105883116981207265972900242375818928524387186325736754569315022381540734313350880968792202184807773510878404387364804259347627314193776472889176442705305821799935808782271363590913947222255114483030619360867866444527833474531909252950934094390031661082481463358677662553438284808277577979705064297573180776493268976665771773418088250716447316178863150037040312683059481211402082569703284710260350926782009502406826730138316671650102434884722729950608416572431592559989173017128223088946750829687909594167017029808446466914142360462505004105414080004204440180282811409489707919131436607259380690982502020509997023900831620905027439788894053788676143712560172057988461333870313430812782199939283245279280573664524511763477760033811623812845111088437681054852489090352258755264005298000072034630986287768223504093383123522342396477299957020602446143103695208525268738803054093135351387923380213887763132146378189673102153136555454738933957574609389471706937582077221977670446569921634480178113754714979493664694709017304109144687590510662259309842766750116828900104234899580155802144951120989513531944168152234963126540353528872898637506808191719414822336182258508341725145197899948979406435619048317427295581268397877173254064482599432196913186608272925623423699070019626101902895286406543019997802897776888381526920746506876138038800918344829451681897198160900580439419760723176518438537750407214138097079001514053759053796001571538623423144887774287425714133912511854746062935984660709002121507790746961460191444531312437688826239519682962749583469312234126667610724368693344804123799883558012022905310947613773113158321946271874175944806919632307350222040467040261037899199504004669007965092389324526302880326372498266528350473455481641423041125985236293758036158062786537063488429133755999526754410766547171549229334081007675602226173442868763790692199339235932656422006486656033066490590377430096181882688152548276651754359851932094933749792317053542318400689240273848129471177052763773064682581621853146609221551242346427600178472814699686561453006715110705435209124465911864729094259810409176840951904589084135621596373490688567076931284470545987858295608967091740928791951761177634897755342098189291054742427158551484269848723265879043072848035211698398495778159907050157156830341259732262871717494558564918206138128335185779746960377886139390034428843988936324214171471086863254382850150764748463280939409606042086241192273757746061124837548100115148498122690912136757678662703746272383899683738730973328565523876322697272948148534569725539600249713722881742116282679655368929875611068572423521992745518447493362691776625469134075425865456297106757180207877358299746734385051682256626050481156425539759417851724527168706891167582982088995755513749428412777061081822888044962760338791738547959089541403340847305752965558255413153001421133332107842430523925665051543269494482224493384609557111268307912760562127661185191266434298394842493646194101194916861388233993500269725372503943471350210194200184414908628429648709490606776150519670259695074933235269287132993478438736968168943928967264693266846018213905777964068771626896014399391219414836138194127410415505563718526714062979837012101594567006063210585999938642359821581762910918699168570655904727413269325335946417298145989956554413321344005304973654595747426753010838089609271660361015236402327937080327351268650249864458356279166683114511792617224023276951586186461092446892367847297308492617339449502000651258810538104811665432417585567994728085556517396779567557193309942080802706866788196431634746691307025733988176000027699764896249978404351821909053105681011238188301628095215299372105719433360961700140894995595274019881456135772143853463629114600373188288082646484649835411933478937175932472273452801946896614023759089889773735565009719689253293486121581615845483210059817640008070759361594707831620220487320144057971479834434717494801911128244634381392226539605398936350246873939443693255754970735149351393481897474599088897911472531802356685453972192888346868532767617138527857183106914546085537730055624438459337582648043693496839474995152405022012821866516583093762954232161161912408928867003467994142607903186113493098716474694488560151840235874963116044575219171707094120515356638189145790568257136408318013954469326915025736731952533546663683387318821268168761913465301937772731224929902581742279706957610154012532132588688787374323533968860457568749032896125229717725985013259473911816038639919302526511873286605584779511969218098096394204929400169956781000922155857698842641822206432546813331183867085743185604701107204911693774759976354623648783904393151159405246213312132419877188263237192014768642737997557244701758717267903060659041449580988674305165938538080280565507738887119640347193753477092806436048303823758789969479509021909043405509272209561065718531557566038101330898834063596823722245664468981422769313086440738587398972981018488714768563993492203223320843647829086653929635303104448467032729612288476658312290575039749310939088911780719067516421257309912912903244457456908696978497363482261067512516315213550895249550520737042362528688022501743529812685646299917887043584387900392479868517914266361453368202866400243954854589122767684735001755689281079946590558445229865510815160476018454486983602853279320617605393509175904591260500216247594490651121790426653506156655172447755262147449701667895760901716905952723185191295219359231005764657180264340506638263616199330133435932310522623239465332406550339305252167986036394202067654186972592375319148091786239223881246177975765539187287280844732093702131479326322762865351945465483338737283842328031837051374944446490029624975300518591270041359642859197103531512476637098783480282498754311090473909128170468099868554710729512294594146457977508346512297606854226383818600682919345431377003604261236707431162946183639267834190239696082588327227522934407926820328660458453952522308567011934242885326682819963243262687534996103692742414316080548688675143176161181560634274240553428792554312482190934773840155416508528419661198929273740054763542984054601478708800441453244032309711122343274517798854680676481422847773188658726644047365974584943567433004377178656484163048000522125171541940180867387609831663152359228775507380800786121625527441586130068593986698635667057945085105848413090510088304725563356026481748816206944119156410203296628555523776848139502144218510762726848452077669682968115039708855086599675781415989225725126482901817417958253999989056500129970988987137424297982694751539572583673048855156786896487596706550790050576150916085491657923664605318380999815959800688034441873990553539115729582008566459998362543906358896954882057278707275036617075384672365577614485318887437657062148190407071946875070697687648461018782732188703676655838980644076830081913854192008590309543632236793185765037865898373525797992366866069811276369590800167234153880799925153469513177543734832653239218253273651407508594348419289781382666316427598956342429405290823700182044360949596097487340662347040969234063229297390321225666480477746748907961994832125926254688535774310335859315548102162805446901894087606426621728503204186985628467671269821370706526701002031829580502284594037808071072099781296643612845371197010336806301186065510694176853584221304673716124334007328635967852232421137111263690705322848184606776734025904037415426456855561430323560146603533954516844066482556021548464669365615918043396537986706425205787680064516948465293762358983266575700324931243599534480012833654471412037802005967241061527470731477753940180035924795600394957192913629616684670058026300641123153557274779706386840390486129723653737997075061139659755350168030287681787419151637063047449056973234708126288140482095680663614100443155197332921287981800020644615233623625534163610760010773612983902195506699076482661885691867884741008042509373203321102469759345035644949381408973819033466088854499458047987654677064596881804323863749259212754878318615747306497116751187940042912743804644479864452572068772669244840831912587502597493710017024411078549558420857961106884194865360649542538219531453928893193034693692440875505152863156018140015208807384680091977065518944245120845378570427959684790379199124331677272445944311867666578819047454913799145797488167819306854092135405094260677823263850728764683900444481566712738253304651740686298954082615859934241496230423789094679020957792461725239980065939585073078708384692941379594210076509040492664994557759851819931997446424249080039959088525129207694802606874612930590648226077613645058286960892195777111586721554430837129922815334042053219269011347836028922061717197625375600001039521832085678190275838053204787227107835895190114311961309079571949129601101676112059052162599314694264609909241273053797484557254454215433202710013543840250504116909846512518943091963752582409193025512553223738346592999708741256268527118109684407671796489009325359506615607542908010495218916544453308248931484231893297398230867977930203368159421742974307400278533140968697462384586269941507165991059269025025847864414405191792314017603450210365421545264533388022230119944622742048006504465582238226498540458148480472377455458869038230663264267883232623455696862540299959187503129354797597589750778646720311395279737301098594558897040947921281325734340375133111619715621598908412301011226713441434680653091404553353761028775999060107667884692242674017834434914619783230214600976999854840856304601370972462420279328742865429736989944634999067546302307001647013902598122722065409151557050609475330155960920360715154740475645090148500940449473606746488785317877614195716855367095225801645054232328059830535699355201727241289097184429250250844365405387095899634489232376464520900223896382487381586713759709401802625386494282605327493148413232021938975329458348385395235556773885836839761389586932104445432242383366060246901099687276360336738458982803941511349673077132688095854794602086176635490481465122370495469410715355315691382884417078880497016167562265926223907932597909241675180247146915855860557794263499719195350958864577702215717709835693244730973642456921138369928232914859395413202106639941710340464140001818992764708566111712603827357520190167030799292460184784752116767343251615517186918489807234393025192590963035899247961045581825944875938230836753533800042880477701390169247541508509348793729483222851595036945196663194447613484574405183678350778681797051477662186215294141789015350526060814801392515765502504056369291336315194938881658644973513033107810249031662258786984137938869960174265637287737521703861278647212473375607264719299547621885896296506636617548631717483117577608086091799781864528062748958886273137956627501194800367717284309302770284280114489794389842163849778367597388847195080333004798609964596796816544265081357974108604350863735013233488851780047405362615093475733196300194396795421935162284069607976302190243246490326293060392545025968774336077851416646867213963886066207793155010065305510620369726186983756692125412367280040636856346133248716582784567046447306897712130487564059634308990862557518979122180216376267559524506318845497392039826125873826695510439261673823278826185707688200764221336174872779199756143986470538245934647637989166252453360453253439829687339688780115686846811513738091683521949919310079601097375284175725717132003440666418103314648179664050131013842104681377228931394375167713651324281217926455140911101779934239138670275763630271769671567314036794129622480606016622804239260857514258891728037081709331842241723535254392389519277261734154778343841435796727556547190891684586859418339592321671699725689650425043821568119576989923571051905322916159297366104589699687516042532703423278384817956610086199454783543889735868736651359689394820614085624416425159754621926166398035613798246263912188218541319806690310275067149529998727591550548911210063393343104451934401893524489688800293274593145448058330625965441834815729073708200922430466769445596028828381915809434594411552699112147498700946392149960747449579928688286785030293129123100394915831430144116885792581165443901344098825706242300868641815382310451935378481343185187782659914189417371161988548352667775521542329394401124535736978135594390855741209183568622281813209343812029224436852428382524790915277464879545506271957088130750936346974770065776492247660642975051323213478446800547836955063493363469356118455459718921400703549406699435503834308511104999137291849317127751380169614324078829188484036433380068160916345025619632440905106357285172120842193260169414543524670625165404121308259197143359013382585963954092070070237088928923910385161594451685866280442777162713595227494362343468123860945206315316026488311717209016220320441353438598909667109402824513101710786908218274029625795294939856815740014544712815745230442119619277926721965390662028224910011314719237500988194369375942909839852968618102831819108912477861153702233043561907701340331761651544185222171471290147524207509818784774303313591375264619795951075119070913879709745813131209803368466122948739840790488879070111940422227688024329979906757657252906349145654831808074896364680910065747871623654372246080319255628631264288288586617463835786041157402513630290241418368191079815765321988798050804837608275133880596140622982476933066896830378179684732453960650446638093331117387063326036932662745723010362342988439899726285169132966036949834093710048952796166732638680096121766950978129619216737897726136524420360192884072574172939970701947082825091991933932925323333848506893273747948750875683115634919370814372721449499444843594699431845229230769845236435116020278400049771671743735380471935971457742215238330770553466273183426881896976134448437804279127485158508257800943088033558186127916956971085326914099854027950142263482086563121201139195547703933016720377706413846997549369155961196507459592299223018981720349886015936910742882564561648293636844601594410859266117563400310608326667484471513594003669973807713756117988290680431036018283457238406466539240859764327346474980226209305007954341804774173828215058125987953098136782475991249156041357493690545151818051597860819088384191677403630512892184231813328655902950204397770178823232040346535384790442847592106981556274709073052944118479650879371857795045380460506376653032418796395801060207579068014522627086449989857924607674371771334427658659820611649387901623393527017749780103833007231270021959151388719944887689155646436888383200612837639547766289855606919652671271069141675738230475477952772872095328832947971047782160212738224295555965108950845855142225843380134603665351511604855534650217024184757018914243530434526495440814565558948812233961337346919771772088574470564241264261891962938905954073542821077679680541063981235924272958012604723475802751110431840436214431447348394145960179000585667144091461837901069996201853164413129414046095490927701551134651424903070853612144717484904544099761901671482066890692658411044284074578832603409419128593452595747782522599281873598242136455132805580641437677380970937337221970210427508516094606361875095935194759531771103130898332898825271814687149075040041762908397174488060737768102717203562482219733078212764320440200896846234811356278436961722661482545406443682613248517799255002751422636499226074876728655461960708586485058402509752271539886641201156182059146905958934043767014051617787300938696432870175553864683149060291323619996826123306966886080872370049855388950476528778461123007349443158794525983500935285933994093596480674212771511814988955660188622804127442870472491876885149450823027809507136784200828197455730344427944999830718319327919040275288793353143467914895147786017533480768493020538956927907552231996464440288384712967541352415617388534147771298775026128413280831684215062965911483742675189397741006049219960799256284165974810586714846033604484866253171455033184461371522168334616879444775784279330245710400052993893679218775056815558451436013100807939720821756964156216542882881535244274124031180707258704035690589009929279610137182319074128888384241423109680587888539480534102919457845948982073698974176704304657062490564093283194466225530334309794964356356186343452617852546771048623708280464450351425633957753039066821301070740713661549075316900924125972355565613002764434034073555897161430422563169653988276330205863553085729645078850894793413620597353943003376692583861873902322918385294308738509229248780203496024965938843724814661195612106058393524372825327682673661489004965671131268549849894064743838124560600742047281915877172914892365358504533392664120542847595302763189064559392867634292502574653357349250795888797224824254771711242853597486887482893003279997650795759063427506572575954563918521253935370234733696943764506269564251736342870164625733565781490031203299823470396219594212808137117725185659150008591741133582487325548127052903278053193251992717666383625111780175192005477554857056266033763374066789548804140780646921453187397906381016615952590231580371099144744868548026419692903590720984755700156235377309704400338693234409135665120970956747160643002054684653851146326606398850397100529353985905720690631075333171702378351869632009858219142765482991028488009477093786682470850337195610579741851826317708073949162952412393444881589643307764069924020375656360053785994070541283258066070218480460023402401776350448796803024192360964726651504828536774037325613601886822273760596415999737140264176788277302224945139772318794827151770631031518218239144968241811751083217505895848261648038896243508244699490402343319804938036617688110106490246641996239697503026123242171758106811308517204062362973670320701231598891225095531861889185978817361269321305947254858019241933604433695683557785584238007639425885191777299076258191674592093856608901393912195648074420675411848580818408600636553501373077831383163380458502714985810246091871858131612150906043725817778510049102462898949483481299484560420219352505666455079097610079718465594386079871381264240642851005836574459787711377039697576421378824815361434140869794739334041106697183747957982939758572401123656067202390135745838936797426788626919619417484390486235737561805041224050363409855309075771738504166763763541267769976672944431798758860228151760190514829134368868546428533235144438248056082836121726865080828916877899898793698061718310154034327751525686460239721018431483186688051043548794414901330652952941631368202761287393554844179905675308324857890009911736950154505465868061150334764598322390741394904685311267180587190744810104693396561218296218476511319678943156652485523389383811726967365873565001065163035531664833110982541156067272076630138614516988322405097280432589061170618997341169217727512308607791077963742385153554226610483502001621617766961430318936128509839141552427248100166654895801981015382767903016350559196247542009383882141061189942864422400175841593024874957760538152525096377689043826265319972110613027815355134077178661571255036151072994766943500687193499658514125920417319568424505783846016458008220534949600246978097213641135866632888477275770695818045239639246979333953639804689775945324304632746094693329976153775703524190443301258802821825380971806848493135796584860176328382967197130194096806209025425575838518920627304006138185345257814665369793858948658070361855949879901850020150869510107568183653806412899238921096614921960058430690670370367447285568856477933594325342899176523470717381999504306653714388580130031045935044349436891383478022842895903484573418033160112087781840234363309838664384081626709467280929742327176281737140303126560167547070765269385501461434649801904243983791721103659226628031057290872071426439025371014937381031133841940263944399548076907863804287404745303013051717210902136776100275324708592045881916256836512362506710395921709695504152357031979978480655963269840044164444965260264484282414396758875673315637551451488620191038277130012315352828202959112473706475957255699132842581074323218005862005514298428831620406645517139947855542060616118505190648266672770656137123957827327487728905928033558696704531759226960648777239495455368598408010381680018343870445627296688278558433862409618006678398546713502407942597840384198343848581288140064016872157024291588041259010026051008444933280109595814434169861039019274696598600324993806851320399980230848109691497088813102669524004274594338645146813691661354649222864460304966843346637045561481982406725020973455098665510481699240602196158239809735082572117395929541526724890329184304154440922663674107014885516901923151209915410835317825660843577812580688855383099803222795814970313377745656974164312551405753450787312848762972748131617290622321131287999708066933964775558556415585283892078463956323777656743324488960599018711171122645430165578189596306273155444592811563446623664296036831273227093504610910651036992620321768990008520025879835854907322299976712333850646896404862286678845076173709629332481732928281003572840030949383293815235741967462483897104089906138360696636479669482116343839062897959648079597585488334671236357278864145633694759014852113605632287062082195118075470675176492982800011567107883660443798741483706734067998857622614005881477660469849738035596804252661056600668360665472528589929155892015759220118644675249129574943063530900545036477227174547793660953207821592327973873277056555200714469636247628839455221158730659614648712826746523082689623193822695877339255241479916605549416457610888169289350681815106756947377982742957484428463024951214072366423854672438134588470794814592392213721259951583503732796825199255797443419441059021819856091984692503540920958946102294074031986752390506908230409725955805802821083542964961765902927411830031478361260894665198522126664604214196113827188552160292782568746321979944418796640240684579998845421532869962098351108245001908181584709181058094830596434907293502423137673360671753619820206290931393022199256717115800749071550533606855204199099311913567321952152131688201628832651061544520779925453097186583830466219119062855263433875505281797421127964633147068022072532825736940480042059926370542297972441141779885800580592387599275786154500897428505965567556626193847895054677799193582130614694283388300466430130750298952584413117069646381550882974101066480226565321810917356066714749071724650470679049797057832035040281975333544407353988249605259701523336353777396032819073947547163386010497330413830328825692825334642487578879251917740765985144542137573594373884552874745040334994105098952944542269063650918143401658003551005012762368807786968898308879242571746723433282462360910288149311876756574899180062611937615238415552074012854479771477695594728328579395870009522957292874028948259598536870930519205804681185577669071059693839573705088215950500163023834216138650949619571828535026984383457461935489715552726371803027283182091321438185079442317309486429996409382945812716796148297550923497522390483361064380446759905039430332007091580126830965038556056604121450881634173037366633956550060637818333882766524560749813402601584930705444202106971177529918461810893687738914845889190581286094970489081766870869293077778544368047246361740668994462537220074655730695461096316668953405276103789278930553541045769835190958481317427614095547838428922541789564364445335015889895731528474742052523096542885255693305292198087527501996562230745258882672847951490713688002831108027234121818005845482988879498662951418069673570590114727152705510020569780387125576254197620779888756187783386067147283969146753242662185266413676759899681119330903514935013008243883152375732575521615476063888085807632845265967800342135070090654009237394987676514929384071343973582230596314452416051194639583590008112240770426514785390361919628809949143501530801395250653932570381958946022167061222599475255220682453007878150374366829381698432998904564293441050251767812368097605110163240175679032727869546377201519236017987710853015201096048627491414881953050916184454612723543222314899932864813496454270154217682579967708825795809431589889562328728076924300635556045878272963970386149775656483419144542012814843434305018011660918587183423723335572662039219119515267216385227373158513259557365201276933253579716484868132647208337988865552575107158074202635418361541968670012074439863341726683324035767791314371209735373783202536547283502948450584437904924176180875532212737979608489797935184849642914879021298531826743686955254465638753086999307236612765874570800994423844484696296311438070393654209010989165862747893495965916617404598675677961913021888722439623015937659694273294361326167056692179663419356349859751875680739264697300726436130380124302883847754536632487528299405841503008729359726200345878033684270570428270251051827973721003809470644786912927150739799453771102139659611802043043289632221169753015767903305308438559181893113114394913590885306901556587509489678808443921928962611616727884509194692751037078490960349813516892644050866016426270143799629958534178190141101424489086146517089490305539905625100250347170415866059405138334553014874774824243360084429268005661816942126735669088618459564649270310993030111345111230000342821616582416515699382639909443482356273585373153996235562860576223913305918832586017386167869381390024813563486396515677771215284108908789778273726126744381806784054235002411329266522101955845344357340180026816492173470518625442345476054301323024199875905921539868854886157917173969866777349889895416669043144866413394321350454874119657602721992694785080616391563512151557128563256126155031588085589706692112888161337507729512177598891694890731274634489987665578475907578838705644087142656860995194545538675590099347370112274904785963248130278682805871891251651886177357117496395583158848330244134383638408917725338103028536066316281410908605082771476800876211805393287005554246250366946829541540004598595781312550538808754014701673458411596415428779617540967564936323347354176895411773270382664293566280842297883217935593409158178020032201682318193703951578846942990679353352872934290373329099910153051585018000561156545523859127175302709457682806547135529084616629343966854487052839671175511153445642524219904020451632379578549283045372465298998270797498117773066583361908990265537191171595616976469521400663215869884654589900180899401280401305715185622129813991073709260887943689799020107079522474381478965714192475068689169585295076897744112997033257680748087216795580863270927406978348091139029773964023746508945227400750977700697069094368421876755060329764250754257559617482973583775767383134211973937527444497866576008393907887583229238141633922410036649890471046277053781869788660434553725336942998278748536104140716728570457224256255713112488650158740682942589373769166796555449431646125338527626153986623543116329008348889998052865203984330909280614907301755856799498636221752817989661133284501576127083683162738834469399203419260626959204753369872922594897385015409936683369952321023226616084270213365538747918931643413158451276282580370957684719067149344670722321887711172121853198856122756179213933439145603003068255283948463851142121678074027626028439735738607623321176650325894625151119638795387935644802191359510280027858972772686971772085076838921414411367045179046432654591683301951681821835629790120335683157050489971129502743124158356371453900341802617581115398213946460281052294682790966723373382312052078823832052574420341916259280419487573970251463750229186336450343710047411478006215415853791579236051021096663388733336433076225782114762257060893761570419228969271598328568101797915578185505472507578986641056564650153519376361006879166301868431831635223062909966044919972392964131017187677352002420583542216873015669576715877243258760172600468663496739881391278267472053370118030907939212365816619796912861533600041522271339695712057309509941824360884793785207003524419447909286655440496104128395241825985131769121664624111277611201122890609407764769028141316789305137069476373098186057574798532100008371852807383425758479079470614613876275030968325743324490575426491202443242251605543748862029947340071012943875874691957678284714968967080255713750653845042719027647386003941827158042461372528493161384667424658852863953255957315522380198531719390116259976140817641001300493727373798955486676126286682431156946780612152859414870110910142537100547480137601211014147013014064273289349424097101897753058285052775567218707492164192419319533483268069784318554621074614228281620355462680904387868872601789707814535667453396130700629152543434353235475086844561875208993985126867997896735019276319284252275623804652816971649665019074409374858130720333975955056030160675922112251953424628456068993684492396188021050607969286139349904505391562441301015949862722077079379034970446218674763425244859787144534776447254294684808644770940176610587672543679133194730999294866005819038257092625561349659826537154324691762783122999640870156822842862434006925571738895677581236820518574044625410422340271833307030195412498591481962089790777682965676487388239605627102314445956550251632711287646465902315085726321499023146908847391485711750621940070710954423952680994178439530126851668243383051319466040871468289402877451863687003671095721429315890389371902767149501279758446040046742824173888525786291642589026442199176937789890761387385323645874461420438422716542284328271565695705967727830297963635203302270267487098451295480812073400484161881469440753137785250799673392288211215494746303520117258733460363042182414551595075541740546570426378524967261877277462076043648118247711994482602086601548395560809568024320975491661683297474394245292222891562306165133017252573238925215008678548269061937866318739585746548735240801806700841542681343340942167954305831213953150255990628946964266849677693515971663526036936017591351230105294276551547970586809637450727230847246987263090065650097375820355555280174224396479130363905724143365860902784549385518997767038053895043073953424842088167473239692806466270151758434542658014509646536986196450956877808871173482400940281165985681223434475025382096730312620264209261378590990083598062808221997555638607886776742055557266751352509663623151382964238452177189330722479471365747372367367788972508524286851372487436096721423262178644166493236092797573154744529271920088151701054262125836885653107224768853342148843059325022007993808089596329644862248862595939194760195972581286468930864281808020943748351994785707534691562306754467820451745282258418119320256580369499346297732848139306205594304074204000897256110987288224487895968718198671309325400151401163795017402350731124945672777516627407401060002543979515777568305880047399691635581424913998647902727803934715381576164014372559419247682480922195552689103305727637851498840275314667833890000639563252588171288001748476016050677246464169887703947850334905708774952943568796159312150960332590066372464880982123233056186884360797699860452541718138688317655815575560081355129711660229292446011565031741065963972723338072344702760403251486538855293978701958964706436419080725106298028565791212210351121623358908001986472589506927242164703470632784655180011708780672423131509821260769096057217254193142313642160631939600806582835629753738520897361363849124490740604937687882261824400701267542851017119080137915319432525169418525014626640875493204337996208505181536168162003188578110984722771904264594943226143963674277657642869225946756395386984176244839101896231218243863797891933865750664970957166163755506620394633008965698988379979232651263104852136559451568134524754725887177631563227334419096674832472775970853042420522065669181472430460674164002634244800751583767345852368889267780452554878990641970380492094497900337521425223662924459702195993957741552148954123254212215198352602368250039450609059990987351894764497316096496586869302351298257841981123974525304385564233524495846260778712983708597007560459527872980552261182287098488800966731567740674752013904485286603493376318460550813670007219290111023691115723522789735725778320189611098475236192121323892797777636603242978384483657612529886550650386765173497436413747477833180688186589330652895472470232666600527426614261273902699025729959111409087130958764568763040373285388716853891546134263647941671162034015486485990262253071509216743759656008818963022977488743930672981558375170767375493981051319196606708273332824880669946869206083975998531171576411826493227868104801863046190631581070677454885397296050982583955789862332674056067348242551454080732074872377059395139404972832637125146346309767560483137295252856322276967931073362659483829179231456211954681717380960538458723057760789542482259983031434530819921918485370429746431015465793050372521697373021856847694736374318241224673016629521231129408791098730846307856864697462505097182488166235203148085411311457498623179281022652899378392284181872579262716571421540890062436908462659760812486650836955965716482894060947104262621620452826382790293355881927788499526432363804405035054217909709565038590116213236727651993783328468560543148484370004768086281859355047808033393274924640885905528166978544235600026302036832319686466190719643394871283606111371723895730810849524987432658579470647212800056060288996127782312320549982177148358711160163008377995772275459243137333909435067224474618558483383627790408604522815933872618735492950916986776221058258977514859160252715826829851138026217470757429029158325394690816300765743733455360319259370737488087741185412649599407834181837202203042032938226259534502998118088739848006030595867708351061033425012569596344137831333940613728526926129958104884213286460752906507320079651408412881573810438145504436837995428129978448377469155236547098042993448618650298664236632864879991135964724397518594890838878953592012128976900518021372896464588745189484318125317923747903659718431342226916479289489503698373295218611496650369419829042825239865667594948333518425157425579972339376618313600861068411952066424257860003069870031281863554664730539403576449427886996027850333988386167877135925940413454521766969192204261043318439747444697570969280862570194305424082379820630693282832419802812889506890598162668415457105357599019200530076614760942946545939490992868779021060628572734931906532630006537716571626494403502091015581395292120035715665731697484650768603073542136274928915855744026294335203632432258509356296369806369770033541444957182678191764480032351518797687922329457513015077200027622781187194554837663018543303216729492103258524972622273353051398540550249292836678090365610770900385472942067806463793936640850221752498975046793147717707512973259029680060529418490706198309170377505797798559409993359506523129214665308342784253503129782192564737810306133971921840432356781234192104370516445533293760577389820929252775257270488577244083561312346529082266156916790160613783752304003243283917701475290508751268650168680883309140273844439781303222709987395249746833016684342110397816911015365922757902988384389915880325953743898516386556813520134951998550795042514601222556653929375001387051386960248642085405902122069710247951896612836500220433293764698662971332742571591108075400988167247163186272353895359130296982472018863215273269414910467342076165843263672165422115233772933431431637541023816515375502063446911136816051419464001340896177922543021130123186002259860993157563343795288323206230606478224700809951695219847935965229648152900004098184801150834119218729316889686042190404944941019136437652174773298436107731133033935041607795308611891676264252370691774000402418496664912475121932066041932436327035899928337576107899685597066597970512571790398201750937246163387522135871060443574175789623916368764159385882324379079443403766860798107912895139507812990408047514267910013769001881033462364211210113036640826281863857202305184383543299558978190614323484754310948707478369225045534242652540886913768743569712772860792947839725131819200159537991960201503148338056242318982690146705119956730003302664567430848856822877625670597129579535242104655067545156902376416622045136110769646357356568516832643318057955669351922675190845360743314425329626110817309650899145385249430245336736572953327917645433215417336930060054277012496046633409065273616595105459527618023211860196356625627398445361791702923935372725450142094543397399790080169342629908007259882693670431760897301713173128744532685709451913548333369714685227247859754465862446652246914230416960422621630620996928485046141370701010810780035242815131766961292111770255939858992944416856225135472067917622883584917207454533719218085061176289081889898498285071093672949608928715812526156320527355853093521077422518147556617631164735539865270868776320735420410686875281735320898482435563815017678115540561722157345507595214655874667882285434344088813349433362047945400226169788885590627369707127586532762947736321180596619654184775183619412194211211592165449346197399268544197858051242988694155112832150670551432432487299121671891767072026896350796032405810907655997974165037662022543101650807222386597336596378497177017820711055244976621498047760958275978136233244776995090611106938388847056086388441520007374424794696169975443481207029025495597147639196684386577960292398180677886074231199190173429622845960932591543765357879029282663676295689658447187123484561698967754560294387076907456633145824252426282494643308418811146620597083324491123011168591604868038228867974516687733311195653263923605172349625798586899184854242149488260895662077595025560337732383976557389163014001000184619679186708203800055206037998463504944169048760542091241214399834957754278398927649160606836846025916562249148948343606605443487849299261350528324155384256284167546546245685048118208919378952561751119260208593305043146916860178062878409908042971050510718014784335833131761774711216971581017644326939835954039721308202530271038012702806032685566325789024053791888797843484163677970740449114545281326035626917392587771105424715950708870202473313630488468604440852914411417422562531288363103235321179785054718476567592598753337341210737780859907540621592140132873992952638009967915077022235164968107578031106937637805692812979600628741736220264591672239874943538192957386439906105329384803057514014697305442121214019476918584817724059333482628428134403671517485844949268287467753697836595996715071474292031117677732545936423015818119172450748799844279999565284825025618969825378202634088860242601711631825658865212744750185553843770642796885594367176964886237629547321508801051963219129584814488282014054311539920401285718609659693681131029849345831470408019587621751017170032591172964725542034719474582644855829039667985144979663643415299004569264088943511541714951994842359119903585912594992763090578328883372237229691447363826442417695989400580955504160409397104939083566817421206813624340436191609436573285974476383446380090930576800230606862223545674530300115464673963254323628982592732455007743476881209452833711462512492426255873017782813707873844032881596366381007932027911438632513323881241069191958528703593419854409091704222903694595862327704293654577712772210894891006058014660400003234025249727806588226548672556802565159216448659651892709850519087199818684715233928757678848387574606827776513161810577961564980944415791982306482924106466842939165140547662917112398972914201941944814614957285634232890477599760843725872115943946130969185145823747195309808717366309595752753158124179232317023996041886116582658815283194808951013633625456727729126315751729847248509910804090614079120072424084188360848413422154765403930680859986284244232858595535178780894507254230796831653540085073481292636061851982060412206473746915590046814939816327800927067127047234282296829236619455850154296922944438151815436753406551021017225769385940954361225916473678455991127836399646796034325265310034457073259260596798299112062317172279363199942172202343199244527422358341397723887583686289198097811143285682076636969925901519437637430471382101878834543144331963466525513827746198297587150677650352119940165185119587608952111516394567646621959820600780610702018288755649489266691659725609478331313410689296039708658907157252415497729770025282037813064259344909070337848128094119936760034683167355101167396056337812166494819316652950241521445770643262866066759630387912330837522255627883584134738493825622543201397254196192345588562718907752540471152745825430393804986438331192096899542075953322866176702869649067488272757700461389515599145818129038665103860263848397765802911314207959834229543606332350535127891785971742255517191891094863427749485109790468740754128619217897000716947975167425589204859634918279177535792048791735207679620821135672298899155499214761791413000906523651220329450258098972495294782556723297085994369115828284282790920828931320929788239174912282706390539280642168884558438249616402399536639208163361072681715646960869305502872484080618381560769375566774202088902588266647953861782046661660615845213203398022919747854207862510918928555908150836119509679054237195116165018631022503115975616608138952873589350822686468010044246418647011716999406626095533500643593903546119432565349711187474572262197569726947899693145927367140024851534229686037448977115065422489477085149086673760030555381942725081819257291210223184553978175126262169599374751426063211929233132507159448491231408209321976840979644716213149837794062016606909029605998757582137385616703306244595140269663724518384509824594433964527160815454227355814693916993400570510326176577862142607569487274923762532457034162958681708278595790490865431650906962741126247784353943533649408732403570852299045075544761960742955808039481730145641480769591307734195277691715753651397526007384754244888039796200082597197318271118943223762420970120782425422805892733882538650007698650227833007357558976252865044220236698490583162652185590326487455375906433635428432536797178952195725569087554488206407303293734634912734732243203764533152530063768083885030041751917923442431735397335927630140676147093336117099136382516010560415260471003882102596450481018465813344557151277999495546509131274139330974517463805451899181382337972268028233572495466222142146651582538120505968309715951437290923080869319985167973842964644075279190391808535972769088610187175566184840119213762951230755929582265177012162834289662339754413267193751265867002947237407985516050265980791944100981688419879850382710226609032566564958116242172083990107186026385295851928017431277949610846158404834667292493829847512086981071210489219218989523598310519786463865533068532253135382921226107368041186018602540573950130965060017940202217025246623490995765245032043046110752993546956029413881928677212515336052067790755203347246968910363958710054300690364276422465524061979443568546663592703618566735374968320930939121524772325953086469408797966898899795034117168165565713713249107247493064379065148801235963842552964020603782779576747134871412543790592959940906050467844111280915326776419861590037054585773357252515823644109737240752604015332415819571089486870745759626911564672865520084822168676961067204362831895362031688037537616463178279599551822738926088303364293428938700577116157262005132503982939064971473802731021792314247611783805772286722883826613982373401765817740186190494944533220749843064640862372108231888139846889798264139089897069745754929151908496191370606255893568060962874038479790639136917309369132387465387323801879202306899865197018325019612803336033535600938751078922504226521203107544047651752102553735186312250330508947058394945401507667588143258354915229998686651571842654669191840932483338812297685379807936385095068091026258291626730219937931407284560770071593502917296969644197993909746267581992747883669052411902464900975168012669924121556540836208164280662541361757444303058648038611409552820799805548952859078462587400836539810509162883986768001982214033127420701660232857344538398195518404154263247356781020756855501670674246184871574852598244796385762671365805966933358339712028443966200027498208575696477850119167397640442387454882724571705091918928846233550165943189003468830038898078178857042175120325735240424696494232643067030080256412988004118468350055777617610915857635542364916754155165343656853869418404095558669348680589850290236565901683685295779812739786773887025569669258216777243627490893552627733421239644507755487417747356773085853589879439342125845754748625143778478395873614959521667493610916277932116831755358875219372446752591031957478152733524292697979816172168552224570668882783822649757520686814610716375586136640101265421276629945508380343265041461562041045688061100291351912102065206534165573344961954798543495393356287143315525835405220631795084960154079402155680436152704236995908071679094235997408790426339991871186395776041111186409420766537093841889520889697625786965653097594694743354639415421831670042548162853983873687693205921850836735491791450611655549034283601647416873455451911095912113889528096181889928524715533116662321501573699900430719776124387219794073061971973132502416438006104856605493773500432535124873830469715137045579942782947112646959121330911376632242757393998703559155404647076691033967041219995185700387885785594985754642044728254480529542833466318121225841125406931279034795778480245105663948779986204445813054671711903683049374694827422104587393228799168757066041072719655387967083611145695864870568032421210206617308593611278575277331836508450928708048466251628893403251569159796592993153566429876558369164776511778284052996450376342924328791970881627670487822283174149762607897529276859900595835772520296121263456037750371037423783880717929723141969852085414585810625974011258891313252967887421731570595198400572476831710784988878010949224652295931199597705503414261801530418544295329823962979527368730931423981823046208517792729156716672611922739065325860214786333809469560098670480200179726099691572638519958936357371352077215392535712786011061318682465315206887736237441701831164034068763514971105365499262894435308119554717111706144279709785606623388038688724959453659018971309754992009583240791818359950769431635244878266924227349807083095904718020988360678628675056302290544814791730302519575213458515043391855695086119548291624388644770346293090194696709328202223860229019414545991186543480912633029868663438936993516158807112945057598822556786415774272305613881595062896695849406930111424020800901782268528507021998457340707768939759412242371353051985900256188920548218671870541593110352966142230866079289292195206043891300169800753109077434131706968269626715552464903827933811419169716668202659695494613985104579804433812911339266516227711353963047389804670398100947707013914576093344271062145797634808789469767661803989316773578068720634465917734554346860395188456995505593978917994063085666356692636313231752587338672626834320226769123129483068320945461795917281518897085416223373551766946401182064111344787153781584444645308003790814773947817526179679311087707713160774175119589577790986623639546297159909492379999315817658468625655588645053976202363973128088687913279440600203627652303745018437525747468752112483497197196949271462592906203463888180921163804539338101550443484847776431151456072286642011325454003805474147169645990534720436785608297830897801225447927985332388981590288966924519168696507471436182677960676974802140155291569868242082875049162105748666536039733612264062815689049901021683071105424866125204366223699297400459079555196094398053339590689750586569939472678837901879379134042036336648663826239831048511664235523061279906933691151286955863528577553634259601464378402578222435502554581697748415154909279045303477752591937748851149089319951920360538921294101844837964024469510347948706996499969772080682687383279428133417368293654785204294310931845636057396437440213264770948559878272803528217942319060580650132265152839409690188074987950888102675710640831364795552686486857472788985636964066623419632014398716264139684024866908991877530841938804055421881235941319348084732239816389763303840420353207020147047237039643347573009503656515986181422154712353392409495670712160382904455008336346508224781897018815374688726244566751993617829068412610758457376762395812386954247215458188914414545026683173508383639254659765069167480491283572279102452062727817724214046098451430480135478870125097909029890406533457175295144875597210935721691675844662425383354080846742452801369284263573093232239294478553866244111398674180999064002290746179840567050214893707865430833726087049782915709216799408971731274941290742998007385827006786135182018006973066262694977184422431657415251752707015597692654282122650873915340138639834693375864274352784111577269969343139047336272199329686304050460249428175584641954311560009333706759370185082459769690286617788620015586745761953495663234383895566673627700610337160487193312676261419867685821873489836621405108681652852800235373397323629892829303466915349649057953916519367637499028861714782022402737371916900216373264090265918518010759558582506480508886717561794495226286372983856080048927265655776157372820386763276786461816928174348273412803648737941415071285623965526670795067507354798819050173976702856151243122065661352164724687934079929904267391455615494961998893276699303595970331098646622656261401417879623355251729554607768439762086997180684258146747623759223046620675301058723052737589956077527499985827473181896199868483124702776019934015577493523440981146409472760788264503672274033146002832596901144574843507105979608463847332176586832341060192931788468906781561934294907625511350555987778977798192915965651556517322642796904850532277259024240320615879532407788010327764792837122598011819393615316110495491064660512003437560540262489864842814967477403451877013820426698309047470829879085068537037847235411505422123894268066259462095179694979873150087365157911923515454237202710483832712741347116809192664411985228362537103945469384582822751292074060746161923938887725114043750941681147549926177983980701115664636420692085610549135020794770140536878161960293810221211671821724017010857896818694545514883633514215431052415927928312444107410980417110716657595168949496925717518221739785872982114917191804010525840372781373797711538617583284121784494358052045433736164985141719639617030258950090015318934727588426571550221120703752635991296730367633512401664581544034304030033313792230298946464260318485593101119417632150687948325405392002530813659534204304622172677908331853967698648754390678909349771450788627674116150032455729356594041566351435662073929796104848294602176100188223305594478479794080430472676388019911685234150955181672911891909936803297081536376812519490231417427237823499284090490644757619186801715166143859483225612174636170162635122364942479722834084008429508108127003400906798040083128715409358706145481054297439752318717750152947283801736956337160260813988436315814598115571287740977187695628906922046439711749095062042498477391115847686014263575345699710871157314431060588898485147024115213469832189590898620010941332116898655788611604344207635062087239839555444386598138156665427626512206071127581295022992647183372230339135069495410614170755259419868285715040812399211289815393629452395197991695452493185720323064197798485721759581001442514022902272811264400966480766498283274890736673287419672441450319883699170945225066717701011121984220631995310774290833989912100015001557251199663406103758060798438700796075861909316435881250945265217678998712213482556679495300594201361431871362883848999739935199721036963684478161476599689778124384428545366472728058601190977174552798561682407849179156583243918386867193987337338429051048959270519212391592245896845644993355094322077788429192727666687717637187275966537222357500783078988314869796195187852110969835848140452959124545546688255267561127428220984830402688115702689268661125306304068278892181687219884277723495263973388976398322334428571972955441087210912375054910773257980174350726180143646122946938574312355815218228903374749503602413194935896413888139505774687990855386323549018597975220580659905933126121133224040744766545381919519867413223021719757121186896631928205177850560874431618964298377786425033973127806459975045739546609903419298435257117785359299882479543704059203860769867530727119654716883282218467910053020618777028833293102810094437234210016970029313130511666925504821000972953220133387799247485046206640808781365858836126110113285496610764746132863730669379357592177781540156888278098578733616336159605189379958776016848588989003844371011142834437969600876461769707026264053374861952800027415058441303154737411887804365338040870832580347743953701369707727700194037517381562155014999141434930782431157613551364305660169816615935550163108964506728441365351029672724796801407037892961349931381734600572121000962483075975950395154873630233538498955307036585450394857819494813179422316189650828368266697604085692316526962050645584904185708083053696623072635633268069726000607104247625416295392440173458007649154232913686430484862738027294633655599302802540123897211047965434450909614944804283807852921413543283830877404779351710063529851867372295622351695885702897202923277915573272447641108855789114445530885498272136847258011435995507120855906607748389287876375206227881980855564295016775789586873921560520816773462429684830488266342126070048846801710321838912956168412266588305609557101831480115929979659603632704226842214715090393400958625190588171042308265366596655311630881494161020106893167596505782891206426305454190426047291784721024558541200336285461482365341767019085182685016697516751117501904360504304880309383873097712755896775421549723294654330334453191590214115869473968535899045471947647595118203049746891718173658527082522421509038795086198097489718441865026160672325185896883033023309526143454483665143886730991307199025823625729035959986282009519204062430639862030632947872564569262275133586625655217838638757330561448311832135801903923908242440323542576835632818716083375844718609676968456588877986225634125147586033653966143033258555233937075635224491507192440939586940869856600041306892441349594490125603541097016645693918535105900228086274963923224179533485398906874616523230875780624757685090844773828218837736657847707749618101862078769775665670639992432557288524076444858113558727545655554630865914934342646768205071116348704077100961965213783207607489085603184319360892693849705488103677589304194734125229997532953243331387475724430007173063283517088681130468028424943656427644806109757008436684940193248180231073377660457110997720646723166846696828265453164022351536199909762522549373793759234771098829621188760013343759901225313905499932834463030094064812415438990861616808003228769139026508917184205017152282444754483698135828205441466463718522117015032716028622610662662162364001855901402529195416576129479999857330476730876178485858031964023444041893172912364160736533115088745262853956313901435905424182114375212970704089244427607471963209471581060682598330296919731689056020446927162056464767950094105785009361767243944613001942393498436982280676124042328024241060836474475019418195323818516717086369478508408707026086498065519152485748570604623964123235152015956473366509205885095325615895627812725648628990340324606253544406255208547463275978133031241392607298962512631970305296485041350206392410604113991060147619523677074579099792753121533956479583612842309357852083046308648393972079172264010670166692549212741248731979518917830946660342816076028597177627876399115412740131186829371702107770844510831289006282954273241249267478962831081795053244920990113247008592900109998509280330633449917937813148865066742486875791973510818906128758839215909403796971265514119598704033263030614970178415986733017958482677530337008936941896164045705308885684445133540631864697575938841924929607910613013980959714607142630918079512576830782505450428964277788670889878411897692932881238537264975736942497724947618263900269068925705663808214784874619975136429923764774642466985519576490126661468717179360995735254587597155824061134089546265890738262758122998669388477567861079030062044655216388692855318088728920823455596736009037721918206595426295643127569886325751698244853552045733130719573996617464469149749793741477009438733106926906029629849087675603688866220131242246477446838235497014230829150206385425938333046899420153427813821892613167125114417203740182551933999340314218866447996188230008430310343268080685574732364849493869248448234042414512322302015070879066870476367916457704121297729804060547777817816099468069972896416240913891274111661681607020246351581838870313237141243428665293627969697849457255351833228046507739368545459406106305244037216858111036321953022070692557992367513423094928675799980666249621359342455576275543729210986242606598387820348627768559865074336162960697423671433460484882728264496572451159062090471236155955892398560648644930001562106812383177844627452650307406276223214279813027816643600696896464487604928534605650781150002925120287142894883247741326350060521111537497920189523204235047613086263343288389358177126330934796047773724162087341255213107853147679139183965575730229703538923858926422385746898095598404495392639368159507145293516041005521831702727331878924637970536841860634618604711954924050461283215500871020347139132632759464784375617868886750969907864659294151338123390399239185878144938384018083685221203372307151060525639895062920342770155184438290982703477574564639860582920334224872086921549177585818011582528575457229866497564311277581485131600429030102122438553441662451938078969326485540674176035270459618950891855549980335479734384462810891639317667658452092614639779503239721046992777132473863928104723516985474824533753038027846330045270670473298102638521824374343745473864668592410102538573403151163228438374279113824182973010115861005937501659930591157899663269023450175445266031543946050876792529278547021452203509865452151466845370631535172937401686553751126391025474737230105670934464440876805183125671921211664600156211233392227294989784867771450829272378614454774705780173278572176472707129728792491286635404517626651773913966938742428488720524103019523872974259351523961023307285488923772975130188553001832353964727750161543700546305653585589529169304456625654004597764280861206271694964380384597228064010877780222382734433245840125189988961013233439159758671326983147236133495164628184603809737799321393579847401508556881861015853222695169301929009571132946221797877886346404152481094445798072324088566467205255807240156377841801370335163831138787072514517835524552048464705205528207536632084111441284039652460958084477312712472910414687781066926997878719444611102275889563068396551729768608406397354770325695261917947207510319304349747675423977316454550998092697258302189719995300030679951395257648850191408899810144575501710357077809588558845007441650463625065069505229121461485034148165546186608742545812046199853790201593636014426589761494249831894981001295979606883348684102422499375500718438928432333545141139145616265985294237996482009310849886987691551932913068569767803656965820268710535241810493965485441843388210961406711652784430576991643909857001612113096524798936504657162496846149677912529366019630466415168622243577330287612739003543276465506777302027302405471062785906768296216344365831246686778387215087522071121809159744308545485587264914118742159569553379051414947920955282515415125772017480193229724143492514758619016341700795711198646221966686813632137605170683427124812938943644640590159581103134787702113906300470134744464555482452319543939331818302166245168294550278263406808266557232808232889336943989851518965747624241253966601797228175107776301311711158532198593217957957866716832883058655828462224396251775785285359842198872559559841635047466388871707075379392227672221683387102810475900503100015575437482286501845019570315561949053510684784290814758978863798753910798328513739190062652251151962128085167803089083657303684651996757754650750409051830298122890623480801500810476113566104260244322014997137746141743863239892538375911944301852628977176468683629849897133823692934817552258751004116929423639589664814460414799374718227189051597769966129162465843237282889521934659919447405529134322495508469740409549135914718886178781356504145686955859560523739096956235566277589550748094428208992306902093588510524457926244742560608041514213632363783640125942311527602312450751546754082353973078727297099868137314584898899040884203531401444543102586472939562592191695990968036369974105193405836126786044857006840822863562433020691412102923895323508001735486474150497100738530577778666152335101102592470482047298922341590334896579250416800879990340873905873589995603913982530711901805959588180565978186867502959015599409522929939330030085188717274783235470932415852734942819929074662211050392902009411951731399755792496516646744555169989307287016082496515755918215933574322284177270366885654032227827958038703316417731225161318621063908254112183002467698661035369267078494957258042932635981624255352707289204699770254317090418056191541801125925413422011867820442590434291300482245485861502406980539244291970860580803172177041663606121756091372437181727417652738162722223314660156211271114057301848655935980790379214224213492478743414796469072592085637113578985332629449977257491958940568319857304506303669109313143842022826189684788067385731691384987428134894341222358625754542738186299187649065094264976918362234609195472849257524962298403383179049071322963895780180666865250950874853846085914950557453425997903651019616601910763948847637028973748412485497730871166560576526807792277844705414945975430962102319374863939470823128974897784871288617119893288604893443734106231728791988420894291262755774134739624535941330821972329717400420998904418290366141066118261919985582559535533910027807042178121355053798295159144544372884265531465953351933104944153966824163699604273924855755207061302392252262772340649698912998559907960156905622896876708620783545045888035597816505723800231499466851862848584817643089951848751423524052390955902414650141161035751658930432539949043189420759389419267389734348375928254357886277482123144183450656376415580882605887505947555179923214895143983963192148277670397971988319874893807246594564569729935077311850579514666714863632870748944289176959219762762346100995719052926356231678525615681818831271722287566045346556577558260612364517293506920165777160983794555720803503480559887969917584390624457623787443245243667796183749206340732221517798115652942821954422358481352755277739192347779807722035866263682176579716957407510546021515510922363835321891477901033981199715922895328331251103968722112992724838701052415051305350770764552551386363353911792490204770610499019797266890219471942448852100611940329085542566182730015094629114683181245658057101806062677034936778148356277652925769416805196321412226918785266747629317432630949541631235094119317933998339566801746401598320618366997098142006834592471435673661672910016581092786182156868792082675300682713420674407628232059988809182356867958849417783630566481073670441225080926920616479109678168439282333482674661784512350121722142721924084167497206704584168032697077061658627290008814926276793255901318457318692997806879690248550871451250221016633436128809380321248717941234514567692076994040478241284805775694989818530666637638256369981817466975590731667295522104929935880192306232458930358631848238111664513246147280205769932831290628874172710597242416512453403280234755707192265685033253165659607744670285005196313933307066840005854045316756356162432712657190339489262643837167926975196988336884679298153794069430832029499279620126257405771904132482396954319881223053056488119347954640896322066711931069021855825109640640432944953533903883354941550252272604426556976379743329876603675668003860872844097085548901927887041341510065646651975197919302085058588487680770839524727217632795578930221356309874123118070277379199756171580794124237441586447561147818519612551662335658537280684094889419279202359399368361564010441388291112868336437654353727889043333753335290029401455407389645986791148930337919009622442689101772727478295186173779015681830588045034804529646138576494764857341716059809537144866423455660767779370113139078098002602746053136104594477478024940624445996318237447931458919891648841619990456749651902375964123748633770866250639473556089633414937157413597803241137813813433824690892232277950806910611720251408033213098761799095272570478211483720544671175549752378032947694664215133893912260344812382937451428631249542869387993031484721596740812522901352881370752084813193134864092485042753741973092228791340508526772254638535934854213942762344074974816524449724890029298993694727624343432462225674765302635089232367260536016598795067936187265599589887464430704558123293215453427561601888731919866090551425511895469472877744207012168892816202481675101459031323513137958512844676289889462725983630237541639294438423786916963962997695100586942250519597080096601345624644526347059460493263121215547850819858674127282920353353078178626749746572092062615160995287248056622390589057733823220177709719644456367681772453078469384840033657245865844182082877081717691022442566957016336362853958984572347712065645587701336049709577198708605304930485271271247451291455216675889070444391230062800626333530150913897117662308826202378554318321840526219876065557393176547144524141680499834474575247768937580894559792896716549197026687977664812660890560697129116562729827752518350673995709840298035158040837956408662241669342005039458093288819467208147166637656964014325566952034569453818995076271965604133130575278523632123514405673876466683230715745382612272105848282459065241622038606737029359492939385070653471506508440999117319503788574563308736993735962398744181067913061794811891115453795876214461871358734235424578012725230131769111465994269738335548184182463420133699079452699804764428689503257203444464556138148510134729071495189526534101955568630375684614036807673105613288138553142047146232363379914958646745108997362642719933400667770527140466601419648187761393869699847424687847966146902151327895627834242972344671889205404823602184338368913884871468515887723943192478732721967023821469782854572773955263199587196420951604523740646924525887827508992045195844092602661689395767751202780076362838479051821092991378849414165877158427703666512127135896662118901546361196798020001279678409680723957900061587136866035859567298225697531718888696006978099494018285563256947666028574046770107528966830008352357140034867087956685189879727363985703269595494400604698717781322350954216402103248637834965763018271662734540896031998068062537153941239993432619430807974221983094964466826955447420735125893061401026367472496946735524863012597437394780163736392262423466688194108655439431140059297575796815269361087658568310166345776298252270262011634100315417795875677662429448108133091216210842163373198151613778879078445547435186329595999370137253861562378197923900887424894172760264407535202420647160654313431909983229931710611888271409596652976436590220800839657948418062246781350443666633020648569713793830660991084544179273966112829011003746920081412592393542959609566799312013530268338744516104908149610814009439448100828908777416257027677806766681791379015269600523261541384152215609316740068864894757188405148186531327102806586338890347038317905376123732418115176178776924631771345856401697925456141111614169206878209250783691382387332951013427920262001607483296071092434598864842682459047912650564492815450428743335875631741123887161979300574326442575264072417624958733707818318846745332688154937842260349830034148802018754827543766614595778380267659246129251651640216190764915569934823076375784499045108838042681530812713006155397162700368038395053654923871375007683048106836819649186588707353549694431541055057137808934500017823639201953636103910546134460440795750044720738966671702866591138775834258080240941892802223011699169832941826268514736530942710036448877967221131118141997456396799364520854573512363824558796866478505585876249436505019410145681580661319093031626553251401321743465260190754662142229474428802988614790461927290962605043417173743968269266019242247050372998914184612498392868718762715057166161565637279843936415905397499424413286983260432679631996519266817047345530086060289524168350371711534082598773055293704063671085481506784886644492133014221205976303103406143584750671335289328310584226434157212444666204850743517227122953097526382178335505970455161193834046451383399526738114808588745902774440027814315132591244247405540966634968081625366341661280507408251727600032110060477034260567652352363440252417666706054694812510739055073854910374280962761914413726302527758942800761031666126822110086062740417676943814717507576164843547740306895694244677867623704170350131577567922043196207042936030709666901051935267199767141242277610522756235895524120623768965455807998972882735566462159562973203285715379949859845548151213105202041067457127167333116551385252613090308866977181856535273569066841289331063886512221510146785540967163253979225835542825968443343288480010916810964305307768920289248477544742230764070595706797382250406565193031574062129694177886881437991690765097284001467457730639296572561156281990486463006950874201992132346462931116750881754389137516786654605164816892159491799278653589249140498335210392682792403916062473925710174428062067802048423615426664011269459406149970677396297640890927142750312052962031206677705872340823403377647418973817171578865857566320390251031808941317503694200276206422190967136755089026510538312972780820194145421598537375403197801971236677861553416968497704282406961445703264162852261456385858639727197382723827158475149281551780689677425788160090883839077133309446608088788871005094607387782732848663185134232658945492523519609631554088903742569589503230343185710568300911341629411992681909349546161720669985011428471269525407133061901328811584257941001418181207734725424482095512952689039771290183673153630287143967047379303825016751362487632587624941444056531067884848658800809402354157968028981590926918999137503352940799900105273825551474246868228108269870339165951197549621826529609032247416766294982658975510177255737706934446702132739063423769308837238429723821568929318437692454108411075222255598042138613310987102469511247260132685294317823703516319057243228549184748821934734240072779053769135700305571584167851916394915438573923273853200466878152566537581523614821577895267849188033768407616589839988917239046416412056861881547773205977044545632537642703077153385189138978786502553525515043900023432450691551395346931493865873282971315770690918945422987378816285133337004074578889147801895276163454811130962332742329286067948383601186441810823981747052284684301086632342018651284329452693920999269624133166312075222642621816049228026108766718993827537870999618095489525333135092527521116400435472396881768358636472260951044448242570578394011937164915435286849060084339012061015401378787996119109505209075296508275781793072169941277617008347947525800288387972746525590033641888822812159686644079160064969772079955002992706892874647569202998418960560226171478457504618089472363526473713674541839996759369697814838363542368289684068879378535707433386844874368086433276925631033379380252022047566125987756413439097659472322969292619703518329463089364877212914892330180231094628104806930295074565590377692697451675243696791723391594089839530178111852781585113443170091980490682040264761698870017699079527253760615557120099124985836790224984023621983560794962519415092918367284418456292581748618405926769007941931684464603213779397968251888998522459525257925999676020454655348362245262397532973757879062653019104491997963651946466960731441003540784678306447534825483954962041883122662046274924351745579383748647866100097942766223476488519282120168928932215919580170928944442619048201194288645410895917426276494544740867862665087740556681305341655215649669513125388258028312465286903676399554344270410046976200406282461367059010269689789916969019287195049116555761516892557539114326653132550203154008295589614242539660973496261157243479673988423489353704494506240156218142717762316460518942677901847284250851645113001709971862923924267993670480256416341668799482193868423384580981533987910753449250812090353719225831717512420994846877282846808972931559139096755026576423816520016799453201037596935379425356487510860819940643358134816824725751492140515689262608943128458588176242669688453276864008176339499989756376005783355251303709134436743025747470005299117782557613685392721580846340899277289886906232975788587279631174290304254592361716912453650697320206668587509037614680058579335289388037695587774461057307950050263556524828300165925725021744498231477345803552211640919966170808648361959401223809681121434452994179609990085386675348528620541629266140178354970797943601857637953948775290092816355637834913099832383180192554044304142058565607705620995437560649212688761569288250662913976002741022021435760261393528992266630022945682972432990369349575853832886947349667012069612799068552128828068310303412884672090374660819871823368144133636782162314019395406383021872503027777782976793857520988254534454659802155975671999322860337924839590774829686216810902534244217246837070027485649744111270784332240563053392754374391089008935643941849533419592929549585963297524628595745796272893682487833403829332115125907906152471016122998009349282702122848538881112919658474264111462698725259963859772336228286713788536705885873484978441497766491149054070056956437685655414360036276543910120841156588061179957568309712220485329973119127409105430061538584254333495102122305258424404445919117469126572122185754162539229782570208877500298168864029547927113754566442555296067143548713913630689844207656248565983987984115757625955149898302081262199784147279611642024425993339838566777984884631658738449812896170647382516788568830134733258714271167594664369655448811219914841857430723568972872641264259804674678741557601043940197986189977211146547447089561453758743957914059194525013219721362886263673431317527444756383963926781827822223952896203077078137843358939976578981660680471412649864403801543492119689825203137209507927010303872209803025117683881402206720042445487541915564756993727332217304572569035637064284497199840859778985399773511597238767670405971797268784511758849261919119712102116824199914349349712115993113494680766186115262519993708826170098079506012349909577521448363857465793995622245425299859861197576034374684525307671772847972903929889649041761670618771976391973575074080524962083714261724867641600535599749761916749554467805683559318589137296802779411107412053727042804192531847671240590857003211055895461475569783215266417162834907715045613225798033091811132392317816301346698458546032010207377232983718810657461677279873623221657594768653305477915468490822557761531174351160865042228713251628743022916243066978469646186002735983183913779586144188312662813889142073779872927883569426359523605288831555206752626627289899331286256066582737192192255638319166269708257125864024865764492295781535022025198731742818694104220908789273645578672426998395367087710830740712706212512510270583028605878191761165717559260377012339330867798129457116043232910705511495395638448914934623910606186416247590926306349348335917243769109516622117899440323223544960654144604289126797729731411371315460377972513162617726013075638379060080069295144514270717310496354865566330910488194398590537282862926930437156558086346796888103523233855103212100235171692555394041608992654609590959086994384257419148705320785925648357474746651881672920292998238216100859953268766077629326722301939531077769165629287542770900799066383224643336491519336775327819529553845167350768654183983891082342779798236203584448994393541270236290723760072647816575478491245177456304507928369800464617722671322725006739069880905393678874797794275006848727442864546020712688097516966155589360823666380720334673424574305614881810987199659747795206358899352387957758585035150842391120280779078333700120120978542208379311028080803499191859565417057665357818762691876846070173180694750670548602047268641852859698464005197038219601752962204984131066951152669343214817285991260190304222262222113559499831017026235500047526156542776503267835413890394236858019015021609374234300403066662993130848650406836731337152278331774595917313840300885045563257451398053552244514043465635085380331754831460302402166153893527254812968725693288298076696266186199695085491082392815288283036538275389374190369017524386916950204509009733318467756575823724892360614623590002336409464963943542832172696411461059780527103944780516058883149422833117433406694836229730755843200999449356621699004765125352428948024134098845588396407885584069329845544516167610606985420043643894522140888952473833234876593365783545837342132846801594335343802722249885050569227876777125604667487081666951793525737824102223974908624416015661335643755810336903642922245139225006785948195086031466037150030770606189274917005537591377009168121382075078091744307064332064652115541607304061887284243255214255373804361427676663066707102142336748774667790883621841733015482747360215347619826727438639612044924658432014207900591933543864774120929134371855052762754351408046846216957042778070582692449757900696749184876946857885433601146934599039164376591947456734277075645004208423766823192386820500458606515810795947947884032832198004964666484026025648552444768424675472792796094767315388363413812439095196296183586052512020504970621140440941190455274300963821376555088725442621321397974199765964910268560630921624657320971411871861354797731311384342038820025960416513653721452669523261071083174055222155049675742163490336903360875025988793652995795387060991305795585434586695181546923668417934153180076057831913559705893165333045310478381125444392791084469618588710335141120144485916274315298696555423870030824930558377444616492253912009640733509707726051933826863114175793058666980642153572020541224477554898224425186305712272620820407755871479215886747724199383193605744046651284466955995176377196350848866855329531655416223088916792902384987838263794587956940968849796115747423855569095286925978712713426211279455659982717444763016520579243929987635009579863308930100106331237449453905791407322671026600649985792595933744937120536483905173751584871872723107033539564645313096104940972019709473174030914292549235138550205075149385251524768144744104721600857212166078398558400044369001339015135455461898670673602663901766131061710206411018041519834384044982509498597576324875666163158272639437148080142780407135946712438650551090072411339735260579175456551465728134144303386237770588199853056017251894734350536590922852991818468697544810266702613933031609235057852204964932586967066985828089582879739466152275893008930767639914475726086178609495954042111228508852998831866067704288022008364493348582738952315915208906772309680313479851043810642904024594558394889996242706653141761178462441223741109298227801957168477134557953132373094621837395825836629411791756907044513861334001212736558953174117131805778275504673680692860714587816910667597685983116742882847782744993211167853298832977600164199339862024026625287028439370126659185447191614448673329556502836258704078289771386243042846685689166018427425572901919340836905042110068447959737495038010363531539500751694700922566676074648848747648685373379489710267231761208850091301359635388098779470232462730884525654104123648663648852258505419436512668797166584544695884227063700813125703855797754846030711934371020697207488261846105449186938227080418992072316052646920855065217184725184265891916672677426330179788284795161605739456926720134872777990659435469088304469265431537113383913806735538973170067134254993665728245716560816219362673512719196498296587717983892139336750074764802602660063259475234102320336438848471066294868477236326616930703588973163070010784471447629020648800411611862442566544849866396965675639058575368460350473670472898667490953736541572972921428253362370380474467510924594954788666084941609889587455933125928077103867406589263924853336929119232681503313485791274563186853830342693811029406287330689298057249434025586812188491390222092125155489089462589416163695350645977961545963745128313209111956323683319895759044464972064208806372899152129586057944176727206440348699019597764497245831804836618064863476802815080376204480574338004977179242448493217594926500195633857853514428281420177213611766749013632499973998705322206764409773063976315322651477600624258450547216740562952776938661820657675088866539082718001389413009376151433947116107799261208858261875723819995277360141186029318954687668291808166376143349721177471095218802363548625680837819500969650143981783560514935810011347262994193407270174830794106567107889758708822088768608212783500421739516844440923365922272238019648942416729348781055989203054855324982583992708697052235928008691205402094820985065903153952757237324730981078912220596302752871821754074552608572181352711257626653654193247437466078621802085931787861989435718203382980065417746059286949725702384103889778880802689554514091717200918984302021298476557605471162314748606797452700284142135532296702731884654531833281540463940615102958979895381709514278390393815615043097845103588743167821079529049230034292114395890213615843253915833238949406546969402861325332456317984162974789343657074319978511133167606162095097124239091063931191881122933078911830437260736557183827264415440599729639124892423659637614045926404568946961854533561320081545781415003505659716523650313125200378601635445654146938711589746758248092320831974925906949249773984213844209446156599907714967360551589903384209428058009207390980885496952474886936407729696866468575544854453594845667458917259579220704587819998383795654971574076907014976525449756527711820301139872704532168379129192591175409752409488067094135195748428498043793932073408298451211771424342417109035767966956664157134526064584322888739302448569159199960961222507803132545471670142608587716195525409938657914112959722556314746245660436491830293481010322589312945501777024363158192062637582052025643639240659896825332348695101624381621600012755526189577446295606853228054481731129605184676666022751344598719610757738670610444907731675882876942321024655342681236035196104853072654121113730793448454479838746681513583869955779031681858972588436795242383809956178306297122701141797425517637093703793566703807624410063540580777356123673068874798071924892276069425418418592689814647289087357456706553585570961651735956903303428255766284684452534406536317632226669493426716119352196046344304558202448806873146964025901576465562627982362084090247057247178488850157296941911310079399202860312864176588354533336265539009693550003200577041467739869900272956847080294974673354304713299611214529533380475955713554925159444178672416912521061504234923745652477567059920461885736521441494008774497883928547871131974354033375246974504487829100344173858432800821032055490081633673386982741540041660073324211263222871622601599228466035161707818487327986589017118256668476987804337257607448570190229420086276095938703406955249027654569643794730724178328664199887614821564521643506783496351013955403469394818742841925726458953795046960634349848422045860374935680578475590615594843981884156313134187052472766531769321228661467564390894657045556124350888500290630230554047065217838695413443183446238512274571547483575603110887108379141033037515411469391492999906673111841376260717152886430568957685397589654382388190469186795176191483696900002751213389488165552798402829027076937088038896058316678774872426956593889133166814731880211247910192829006908926077040991219948215764836489779723949749244243033278057680586187129726916484644139125098861598996152664069012255046897072037484046155778881544152110264923726979418624703655276449506265737102542786511504828527284071732426935988691829407886201517388186685847329683602397504926086645434482574583897974065650443674734364894253066478918343177731664539347338915523017744261980712461775990979425095067681457300259862265683715894595540009949594492681373646906491936311880169486831659370148617512610759423036448552493023992897730936356374527406050872086415981770429955383274760586153449921097558323440021303765130535749806058331763005163616926875942938406062835042378627004748634434536377002400933350861853199973399220823101215560606007356673179138580944075581657024873370676911185756892192917468764112487865510643884426154640806011487260700078661848256016889147530105505061060001289831259566060977415568134474593384528314660632502318176403847511718239232910711606305620142027537039138694436710959342826142574268343236046607485674510724179224993206389347385446838501819430041819175849751539288045508924188277455864157600888576718697408661332190507584405300492684576897247033452190225496423257402618898464803202323389837966439994970920840087191583209193008598755849400378157488598041831857202175133371122996128425577234088663854726109892877219794909349957683637761037285650563039750041783022292809167183426410419830278042224712387361164626650782831484628290052743811791172535718232515693502366724009258724603189856638932998129376734097949455691139745917030378137884345800526683199749940488170702158926380173107849100051516926416064853383145231061718238870869444929082103056206084125886420221649240378596919776170704682883449467833144414810773009562303326249378449772924640388724284333703347064975758209712712264792727812933699888526438811997532365885229509354810902769573629222483336582045533456402179276266558902829862489376465299037298679911014526663792629612173513306212066890625558045534311645910507990288897963066398393283003204385868249265945318953245065809049605909532234439161991533758665964839945045407096224155331541671314167758183808604944690589210343363045642522030652652418091817983406453309522277893311920748067683410595364207409414950897157680284161784948495205866086842500760382208378401691755408574941648072643677453980042835819038756599786370133092171877685655402086255291518467562856848572907358793249708467358238381616775490658530400627689597885314952659288896665348766453331817035669065945646316700220538610792687457688907704925452053018739403674572950212591578258501592988544229508787420181304044562574138049869583944064562599391044996352091199414594187232166227785747256115395711786407980651436584709388329899529880761797593884815264562025718280378485511205479609815189794352901309733457539342619826131908627437842331711358931571465604786982044186239122772691064492288552713057940891645144224527866415749805328363899126114278315124242298858900704781063801014157932958746916285180351184551746295407835007123870894951814207657439833915485991895445276179403423701376952701698098643567125751590484330413273047220297881447395976854132345880150170473068243057024009823812303630676255656100914813542702146616446793587276166587940996191006421007391376693597384141844267203069265763610228717582846606362924771294203958028451346185599277174745602367317057797547527366314289627539398345055470327752875508431081358353197805858232608111766770968159611774688549565685326732344748568237912487911989067745973748713735877946213123162814757850106996407482963723827609726002411860434904534287829885380991183032487473022396174332892349272124290171980048194037448119759894734501211047125374315482017669459510897697566843886158153830928158232102537093368223687767891029240075119558455278235406319093304949227089668072359218846975058730807553546038210072955333297168164234960733118644962969563288126994325869496965209354637035869256033459117346760801358887166404114059378123469836887774575402731505963522813872644605349633541918191140309382471179132960107082762556633996467444963112568335944919708060979746609370314593641445155963332780372345145921053496750027455135038393421509447977393889453289452233494740029292842609049147057949467649272317067757484062353371151201448288235210027266678381074948766467732452006300510972205383741014022589927147296758300414574624081055333444696690284151367596733748126424722255172001341444613040567648634547873942929069543552331827325556558577036468324813577537470602013595899067504058020335804249976341335819128099407388734242939700919779452633648291126277916361776566801757271687230338580675909902334958822999564034333939552635545634023998360851671829491086006540319465372842988030266235255481423059363516213037323059883896960496447693556460547123912845698932145569701630318835912219493961511933035448845584791732256514645462253661463178510261896222368826668595010672342632615331573910283820404492845788719867887157967274363454378311000549575956872190216014550021830130804133224245336867065837386627960414699647725965684087811825632808661496663131474573283491894621697645812904436026918204972604797567084413967292887393504704225671490178351592788644478282265353230654812584604769026097262207215779386732623160460929352620390875346707276321494835125898534774901013958397323345687056248465660752533494363576554145715634900815910463761759223863598901648847637003716035798305757632738153278828632813988626344963271593213565183044463296746468917608998963957370832953174290859140157941827220551845893884161080446978159620350155267332996671024730733839380418741495481580524699829398370755931403722258777868151925663026385738844489723633806004430651115388877782693792576268483236134061595765120898579098573023587100652144589648205040242365072503708393609825622013460749127383117171246972965060966980497639641989074132681629005565713256084064610248183951479454277917777011657320547608242520143217503159544848031391053516716427624924142659493895394258109257967631448523915438224161760133362868855483688824816501161333989404239316425849067192541309290973234592295742080479251555568081713359525613877743716908259366666959093874269819230790023008895169360210093077553818957415293494857870477935144592051049333442033219727727321683006013433879997082840753832570767792176990270338425064240339556740106607858394855150039378091904086103159525458853232116868078631724007009637397590510599739706533834912362293527019089424641041995100329357692803154778490785252396223501462206197240560865739995679205383545373000813454958564741053418052767657134421343637290238961487367795084472955928597533053121104917857577059831461999618130421756468631550277284803743798197296788789843999212664614121533789190238729940068070169631776925123267800054110559935166960450228800224515758524424820870202542424289660246448282783903112072917295629470128698331743863290743264293438006589414876419401487965127750417534024039190509860801635807397108327442739398667798381693431240858375643859893509659805790418358338973990110195739886312746569413675710570452939444765056398590281295957312266915816935945695742274464111062159512703606016555562555851582486421684454830632239146472630074304768444773700126359261516885067176895429789695415001185789774179201320759576641382513094827060366890416533117126073239420922107914011188571287841535923620416616271903545595528985008772932290278650745199160126579087303881932207473054568336667887722161059334059790660973385381474350625013677485931626276909103318273209824314029222044062220960437901883483916545411162846003502983307977842559152675451335905208856304156508303268902222239656064548210489737292708489196807449947678440064605501759209669350319331036546716739257945847224465948492173528089216403553661811841378715111455723378047988002835939582996703234251503654740587762376972725713226978724548173598868069267252602180790622143771206216758898561474281077921834465718473310807657239432756102007587513430965327659766080776212688537410937377369208504875495136607931808835899534683435735751618518748235360376625380460334351199233973180920635367593567845851794470636261638387989881757973996168589807981824033055618395388090311971695748965166824232952857729422511584025508877156886762738144969797054812685524230714243162553365508876538075642439753560111556465630385302481747282629129701284513089651028038198912659925066050396935817238783450291266410026547967491615838207303383094006209291013668725137711710533872151586387986870925355894364275213835873938073009562977957986701319342854366045679278161929219679123998383508416481196286655406593354767976188313210694127521699205923292380736192288948620116586071635896998777257382662802173499516657146623474194353732875484546327551226054641427066576143685964636113043744682022999309906442113303897777721162708498821595083976734730693840018998247821821163726497935079736851941706935626983971009944200731970634656692268788595778783249542459024524669870945058871907900441620392593485955735714213783343612774539633711562683799997784040584054128772370249058142247712671116968738768841176113132783077040689200061272969089441432230482494977671186667706787401139322535440569654011112702351022667439270200495944271343355926199454700428110489670669331129720730085026165013728954476634811060634867356717010748852124864222434294749955224029819468468959110538683139898500469730432775699641224163457706106968753079174858741886642069519641914739836452270760253911704002571647154994245750174148455008376590319069795266242162019942034428072735360630891997251698222867205317212113049829985014048054103029810506151877421033021551585298474747979208406025417837766360458203358349798120258042514135718416898518737968508831188758089084465371720376904255727126383590766626970854389480564205706222878934321798990960516894113168769684807025148456637054456187582943581720868223036790371488803263029795252144257447379113864509990759782745153675434437147913535551832941250308410553168689932140854569193011676508194654093764353772851961844277928257435139472807357763592129520299926877268088393579611891521149515368373352918505325639845269150379821090424778687231684664696981968679284983772488663779591068252134857540361683532562841504491485726736143141755493727159627725802433202025145004722365245738604880162599802789525880583954381354217699836580920024152258719884961536053595943515670491015902824321322791559161637250076301561720100582750683968098430959064633144537257995902063599594586279359552061843721797557151256186801655231011626832482716023314739081630483361866911748033735330784338103700285206814563242994412458584408368782836982666205663847569372685100957612853886326133813441711981586329717109566453078056780906083034864185662350191592545331396613255999294066312449801496526547012964440496283390480452262195442255931723808118936971477852806282386140888586804515587264571019363075366368468019837367534238542990620236688028046669905423795320357492660010539193729850050668096991132980027023021121857946848828663719947592799339262664228818524439946728584695559896334666648415603754641685763868035782211958366798870144444613041921034876283441686444002404786190455442491634885390279385787328622076033419398472768978926232595575685665738253090605795721328613518965145303180054529658224489180766983966080740209039009314760488097103916514200684811520724456950306130537277127318445939700837552121737238832638018259575848050492986571260235752571766345879878598416190280130269533979105990536441820584905739504119667773867969484923677422022504058836465176657841082381497955174296409838394005939005588442284852466664668750147315874916225347755695301095328064828508873991635658190385436142653162803819715252684120909195501186529306106950640358703771246064796480483545812218150570185270767399039964271446513933940723074462558663252851236134791619013783435502381611599172570523215275293736596140610754758356922583589029685004543255115729816557703185156083393107017818439390545509953819941797685601900294491707233630797688788871716891920959363498710438643801674875844237416389266307534797725551307184243146155466926625844053645112390332008636645663326658722782315529299350136192233772871050664927204722429075233121723184865108283673082491715248389471287208513305360711903186294085068395113593387389746954029118970899884333008869554572906915776356701946851709977031211211062362760471529384019812102226244413286516003953390840254676693727628431674095262740855277457696156720770376048350432615311651045304343648089542774414517346815832993386237028181452584104451873711954742832829225079352546240491101885826144073211428092388699535971257779972082434220648279530146072394214015542446598681081848083508673154855073462950954859709927774798106882926101860301118085300775260169594736566472802448603366554730970740411266046471618697068671013927939744510698059764305964475799391266697951144673717360536597046434996583809380536902726498150218391653454556147266712144517245772084776525721793519365536024996939591371528501832018751411499981315903441640786378099209919667633572113908134626315388495694325933244454702716198572986771201297740753889946352306821596023628865567708030796590124910038513978836470272143651041141453333545347777048452735426722291458177067088661406215922246611131734348605239710225516768911981615361425706216153265635074772368763115127174061659609775975303067692410573216444669775641304882018174046672853252486254131081728242201591452282925966691042817008696572306016721293297614372983569828673168849551251050359962003278984768552994592414280509359712883287258287492948907131990378947168341330236549290505828991811521182734071897000069714939476237866857909901588415921869157771614281977664410051754272872319998425989416065183492167009724497692839822771271457566080521994936985888258374426201607658377452736855512448627307582118319017546219147807335750306338078573453213651733953981884581116387125336374456472235653876489642327709961219427873365400575656711632127565283885850828586460835907917819542833483640855672126709893472688712932135638511118288227105403290692142739145238673024974523049637877407044281833700896174884446829237508525113742302232201526259105205065079117463105676892948804878978035778159546488672787281693201933284721884376484261420787253560008069733047258651470367384014633082595374720451782546739849285591824734554134837082733679684056393123952501022664915636556686705778983476154767156178445035938262932632971877795555089697696590701713914513498084719504071213760805187713788603509757776815466727594375182411452337405960321889951053799681186470434929823225697165184910606775682849977189979840791770558603648159995787084023596372392128725801341503619369135050293456986762523655874510769523867509076851115771628423185199808224497192673467095824318569317565988762447770716403824358350839640713107875298586878042496357559825615090075406657843981876825716291220953532553590890019496825804982376415416393337916426361209472729820231432092780328718312604800479784626494361199344489923724895620546884502379228291036236186405167347490605234571841872088436248157773111571931762259867739624240688549614437189434693628118675880621780705857143455400915207217782144220547414281523032130064113016559788587227245362079090231153722870662061313456557729493833169577683600945621681538247525703857969078016918978256758615947598719189833739370465160393708239888468251489624207295091907909027241232277176117809963029421990663471012595785419669890666082507907504495386978511443703614482517592442327141925242708618211869331633733955075964788874894575004624214657681998750421737791656667396550480319155021729265326203755128007759268571441177087581395091099983362783720232730936443811895406393436642450793273042322598587424814702394501576985786758946379652575327400592785436216102383384932984754719074726971605166084219620134974207739685300261949792208792909173934080339569950889298457345474409982897911894026479425474441423033539256838760688034531451275545157068567269966435252193648875473912558726249083629600040519024542793200389831561823300831769068362831543665052744647592491635623331700724484208894270096812391868597522354477036157931027743502135759508705455061665548599215926494203948300634674460070345049395483457865427249212312913286287453655179004635304547057512166772619564597745833942639234174992562472996269508515916279348981637487727352703756486657844493025851515401580246019550501040467965761913291462137488015603139644526784928939223077731436314296489564495304732877543345204205071379437810932621471899859839859827067077666284648892209588679748220507369035972244638878871787225729683118283130400704665758130031432685349545284257178517056179383860120763572002184448299485391807719165438701586301402399057985692864509633471898145062759303465781543052336468916226821165034935422507238022794646765157246736500272865052802497612320100557881829010349658430317512978648775175617294840436875494012749096582664448288379041155487847369278258463462088027246760205378546623204508335098202579003155489104281770615340717851210471726659548278944450779620615553730818135264579168934162397550130200326576831046052247390088473272348417006397831372904628704476741227218095509032393363367083806091505066383997477634739001067054312021109298519940686558950698640753405977686394530497895227504302171449591863731224493586569873777263812708603748458798750840791593987083890292507689497256740623492400924511241128353476297495648969173540464234588761985169398199646499432580488288966680167249916615748587561556195478988489251893014408835065170222936249015460605998200347493941665829437848390620359308308659693418231794330872272761625310479926030831651191139311263353858624695589007626870017338010577785208130717041434193624073541972447880299875242920093153264262601125534182980752505940351222386767342266110698374131329795003680675007653426753288129571662843929121841780020806754785890929640503423450641494424475129421391859492443987798961264405788400091267657861466727443517179435621032097349244551979158622646200557046706098710197249575259077974894361675677987454744226679462010142995737055918583594210079886421442810904565450322062922213345099716021345422726527623372599428007026935617582634921765332044585337933625038750526279238242252515293890215568403414064655580060921184329123543447098070369545105258061505026630352366865694416794214572476005434376550615508892835142160057337118777811762202411502019155803414864700991160178835377306008368032845885110415691840423811198922430140348435783359294164460705478980971574604347988718462608593250284311248277303680729435584075967031410652568290813169990165228192764468899980389011110974280508489258076089242446474102968675903120449543990031244395074461041263493631975808179659049630449870222885988766734241750507982725539840081615547410605232323147915331067819855549271314953803380450807947111992688745360377889295614551926494791723389089268839360014516213338618644037091506121699536937287410511562513282102680142823904189697297218277459287391534964403111534291267818174771422822190346324392219459928559202313368393787851449246965416521367367870247204191864011438516706579914351296796472239854547994950270986606874580031433760379670103849031614625322866326812541239856755192900979639178167856322690065819570890554362096213662309704067619189619034990315405177574799799988877672455078691802681768604746666797530508053380351063413479027728997978925726541212186746526483947357315296259429555883005430857880849473425138048555917506199905049024053099029506926629631164811199199885113385239431890432943620036075892011721535311725745199631999805062299474467213027742025058689452500227277065594382069287453777410016411658953041086818746736519726943018803628140521071646864643432722167276937994144672894752150171929170674238277637043859760078588943064627751635818396025794238507934571499150574201425028570592673861947107465404732230194443077346367148039663683093545101511708821451833290495870951330442197484414277038962666861306041208895978689564799252041483795162882598171250167987082665127982955175222622242728308650315181290794260290425585992569311511996808840544321628477374723418639176376350101924590144989504408839556067759541801037648103005106318750187464184876945431966586214075915026295353676556875034596964159962435162629692170402602948777038423294759671341731032095117047481146454171443821670320091616988368122334111094873146986350310971085005275743206447249881521819346074117603133240885512363673796396321177472403363375340933184032557548592251756586459511341544547261088004233503631848983022481515021056677871310368217496649998559543295175643152081504377367950624121823678620426502084444475010595953904207660686852005168757586660327312955429461184908573292969398899136616837980239463651982711683085004495679402296158047947168070310540925779021310735747971835763914391545699790254686100778237572502988202314844902937232440629304117365997416014945313375424678884229656243884990286283417114856705566022154256506977834977209782629261009971174015371740456866937658934807191303223216051345225566896466526425581053740143642140359654414248700063361703103098475818082883279982699993915511139166171802359893776184275964326016706192763789095430003956612420187283308452676039744106448210043843718968383326530040221007639848627034756698544859489870757291470135917900966492102562725214991273080818036248733043617076880803088528076804433116696581053408309350607861258566269104933107028166645599586630882634872315180084262331847496935978596545885873551291551665269585668202183318598755433451505030618182168597117846994294239403516243555159365987119886126739595048572066434053125850457843693022667054164628791080759873538878085225839072463499771368738436530787598739334627344597140125239931457637998206258876867397505019854205445861023285715980468348367011294622849311371642875504768209759165499684858620643534903184726856240293322306100719606918336342412123950533236852136392721953410718978036426449013379034297626306804220670558579840820579421406268692605727023138616844345495978487739773142332999269186537762353156554297000887344423749133162685233541152879712622023996135640563007478324811248844896788002403270543899406623597852084994108016507324849275664064889964624144452916233742633620979084787362332740149667821460036936896832508784948498112895840836789213688206702280006605498698655379897721423018293914380548788037862553124485737896123442280948684397654194127891335098581307518855631537975597303454318986441109148775914288570475953125266437935457294548013317054490577089742681451144297984449377495402227460311949665187819701652135493997608969736536344477560569439919688821690787583108509613779616827702812014873184375300190793216081328024696062685990753503257326157599523931923644672565170521691036656496439432870767763754673648364919098058260631726387982918222958650076391289561960220693970302584677106755327084011359931132678852829353983341366765917476060410218042052187961893708643507000671209973652850961695829624621212158287234335077016160688294438734540535864624062445010260630971028627514275608019856871542174686846887721023946638563735902504786291114949206294828842288802813751365079184358953702825672237668101707836940522156482467808332758860128755007775502293771504508055603171358729773980337972866996624733606396254759996776561975835631737225638394394986316437246250388299848706886639160218718069571148281659356524982709273293599388044147670694823926224994150286378487954833072608828234798289523848802108612166715513391674605153622277597129282457194780554152665846817245135929900627390747935832481046964897543736870567325696581505733345286422621721680657276603194750505146366071000785955732062042137798092018893425303642139395894978376501435503887693920180808347083787507434668421865341820129095192012371361214976856851106379599068771312818252046761239373898848007704142061690199355263493851090238631689445012194571714933674549149362648953106877835821319248937878699598016846369668093585338202179876730258704738883222941899659689498757852566182737796270419812529894435106665316549232011049478861353757979496853841157259486120447195404639835525926092699551060123450414698471328930934434635127066912049850659492402970939783421303516212935748810800720735190056388598861502096470331965844242079379995829381980632598280399733809065749429353016972313535015377305592637752804609397633235178793357246538196216628977851103562709313559214565188793265825088600696569928148072240382969559195002029122813439702226939778058729977875730438968770990158692127928037000236849605131792745097686007559762708308056411671831426982258351133413978194652992794522935346075610006301598971550098614850484691309684099011258777746899163877166091498473396062510377326991597214791568218219783570512232653993992764705636012485179846768994562624495351953437491281781036617238498725227260455179478942215644695137182208457888184089217987172542639203313507522424457000997046766315809987386983904223443147786818171888734545376908788923366054506113777889634157969494328129840647471707367590612021998981145415520392338209102038980434337890397042175156297769256073173747532273336886873837118073193226170446073154490216755734966731408065154448484206956100955418194775545368078792536991190339014406259158387498352364657004945696489139374803429478707744449151860358021464170405131558527744670644476807305039322771277357078992989125699533418551328647584764646316997791566120188675162654519948547957358613755077814626862399909341216681540746524403589781116024804309670487267836016927226855035157472138532241690818396809873512945782812893177682294633962771601781529934311696878014275629988198582759468676258307898210709250256586674008521817341182883321760741711850544291258750705567922486627642005963034304739748942163765897614823148790703762230610276436749840224313750274592326508692643478633771951834383972044724288340225446066723731951073946801030153560840386487885816816124297738466383429879083274166931141850786664819403007342558743703153991543534528031951386779352209354512579368446970156080730359678887726872567070150931513817881736975609271236558408874732644564919541381633059936674786080878292033551915993254427155425218233771925640596709207757193848454352381547444792422710877322308664436464358792363762107176735188806373074246975960504480933694635274978983152404565890504693326917998728130788272724922953375379192409440201797912371118095948874087332101993260290589276399676086848074626206169477598623250042391101473558770412201159198265270988432954761421232254218360095126027137616937789563820921436605738206778911119522135459126599527730789272704397020038218488480525718208217897461747821493819381455079931427447485152990789860377961207715370877060004842944742563417894358205474436618290403443689321287612855837067956094238161938140183604919722800609494881393707755320167190823824270086999210227338063978044286824347885028567038401225230499091171073513114844909645648532550803644076373955398426616516456909563958939924113336477244977416608075452536764038794854836344971886755867969252477539797164672985046783428108117878237382252608058174355476217257643210830814757346204888060924659682949371700826907234777694513375768965002699669771610421888589391034860971528945509882903734605852841765361304750178890823972748364836832418144297587285867008055340974932711952235359539492039616866703665766399556124795575713320424632678325500789635062002816428813616935689627953432991183659868770723936154890627892523188928278131671622836449717543655725826682611975652226468870426361359265731358913480561195015891054110048178427009991586180645377367509551760600845614340690803594985104210835524364140604056187609040176832611610720651411150023688266024673071473637874121124165711196375640540229658010323783606538720499480912827612192243504314591761598562683384482053433135591405226187927855416101789825024515597446436163757104828248589494022693745777604123093836943972059983236127154094855734669876538637250104759260648613040118402478026068911852933735961015465390624641637757276440207181317440512600114721507950840078300691104785159232526811528490653084608666979222017111205842093589732053486427152161641261012593833663527094775635338876721463277082262876182581485008975798404787495246586646117524907584133523745986896725502390911859439988962101577679171193032012377375631254855933438577466726312453880922408049895245882499654323297190560110833901114713735618145559162172895030235040779103116040126653069887602986733351829672361670750922477684406922105312186246130299415995123111198954239021912463549887730970645158228845860246477332723504939819483363455508996213471780765146973486210144507325996008082144235773941803200844196067855106891854025344684500180008000021498787453682943288995107367209863976299531248936521491914665000526499368531301943908577954545126475511923797073444725668680668491616524725054552530491671865274511581640831783879049990811969853316085699288872998929372058207286867191599604847991224931548302214523105817017980911549790426642327169619753212330259118900498972353986248152974487383236580847714202275536095634704848492573564903047173934532553820086449747406095429390432509622404273900134482837837193263737732053958846368538577358965426313309190918802809668585473767554693186471738633663642365623044135783351676824077652570833713617079718086887869194190542038327245608977837338043309289564033036192722073698233859806824209917262054278482222018305820107205376456118282543893679734517438181639445012252093897657908311161153009023845137084356843885978243980402565864058740176652769655616549543644128674506320433694872077636693799610869595722551602700088140842619136409866169312700257757256264012742845476161583670337352293125242065904371353667627220369718236811952086417400965497452240279244348449239734133354508455256276650233209394434503085502060349119438118812782657383749613490400885718968750629878856566702829380406654157663663003218434540092518598316268208393634407005304961350422693050824526970141404241221195806272335320283166547141141535002451377839232372203946512012764107037489393626313814055573675913749668327229615116430536076740397786544977446210675061924292794272291404714854652841228520923407992933703552945375933879636258630785516431503616200810150440493664734542436205450758340879031153689379487366572110357950331902738738830710699075213704199096221805300491084003868743102298547978974823884410521999144741004520472488366976297861815958825979613204162280439820436068013682118939000070534521902530025067758951020137879866717651849957016061942396109807205500818178452888873654223940505737680902948333440954422763636921869057810500287712920842303966838962230873942069453551412779228492094797584883882010694835377402318471291306115026200429340718804489398983881244704575876976399582839386249067231489793248203842948889401954471385533537254424315764540188764775192349297211090016829092828868139511770080418341330758447456790311299071453846699945319122194668602896505265085610340000106544935924393555857389688775236570322248216412059304559654695466892080191309222360008953891325160985717529651837703632195456098213893297575394699025894807546535556104924410869480938473960598927074035180913980217745431303717908442243936216897447476302289868888039209702045640167711172949767132068957761853709142759878687505557355100612753440663723003530217636777644017392155092896623247978418742833091241372985068883771950071278683886364451340356292553357300711795280498155742874996615479601957401432742990353345956196573248110694634657690495814367342333859230819530890066416579228874978246117487173401301032418356348653928732608173282278947382663833469129490476641172968053714114197050250281290224565923810879963983870429333524362275207962798982210980659856582894555503727761369790840414870540231383660256145083393175656295441940872619220187214795572944380994823296324526312574237659859885322876978108375079101012173482122397373464911261850563706611532424492602094624117392212937237810316987901556294394157604525829716060463008581127968791802690652394895248887191623331408453094596414313822004576025329948342420504979655237555529617755046306807905805333652824812094403882634109301868385699974123648002171095577278382670647204531875089358459414759405668550549400415126499593825427572402224426739281675027124071184874781842238619275177690054281960074620620252254839283293530614063853931867565725405805902724740938165386889982588653750229331729593644755128654416292320103500308132119473927842067678227679507779655533942756182083693186052981398778970362587428198024561041730399306730547871016337345224342351603286371679478087334441967307715286305119436386204605675042201265849877530191178462882565207066857589144211352337553206798712834695179452718779895985728203104283889118946866415637305234105664663045084768715886752621462987633896454405828674775175806744119434843182973824220147347361255067509999688040025498768635144912441098557772810118313568051809294284903595078807387543646338195964718493641870524813581480314334127526565559449156452424725290848401828812449400664015333761958467012496044309288985084900497722976530014775985134464711508229605320610228265988362542039711893433185165587010601412307535697406331486269556605275403550457477239303248945346716432942221598999691129898719534030283504172909071123886143285773759006213027353404668815204864548655106999271844173337202676944383760192353282829765313731062732785290091867245244451922772577098508698161474159470126866604714547678662882616606357946545205901648108941669866757405614865252635598810938059160656661904019001249995044132343751054667791285414276374998522746155505013158062873342451613364390991584912972144845243651551456036362943543675708094887648678282940676304733664330314587163378319572286490558222292549269141137579391691583732741050551542897547322366455537571836083402515562186571962213895663482409219662598311468569886588781700204886172061396690767705972508471402066990960942786355747222085663543926222303643649071854256575765971704227408800113719596394858508455836161828177321497755446108687810472423157555962947228626129610820593294022177946266527906243612631328792398581029366662584412798367159827788543214466975950922142411040208050131864246611299174969738460178953032868847830556442242855754224406359204873065976823162731142009485388721026233730461190037844974972216256177824465850510757249480953826145577755097269613245202055080551227321968029783038902039773980304527197022180147956917283091591580288454063548617023002076589099265599726914077388585389162170931385521137333803620930664124676828487433720248190399245395621496224555873426377503289089289298104242055784049544214001498022217739480354250587970942636066161008275763426263351280204441657421887919239512451867144045685824291326299341985254779503917925015882429487726252359836717831677873385194751686438209028567487859927299562121511289894399737681694501534409433959995510357243023640681512406623866722536392481252510673872499312112309305178903575469698316989148029293124683085120454073362848140197928381505708299935373342395512509520951989476778854882468467715895577890631761854740526157998932068212894588025585444375715839804834361596926623657787338090037585159823090053313693972109041589209698219834319731773214227687087990916956471499212675703571158137569880571259550839698878226107689177168598413814528027078548617765157838317423221451668719574543345269027235166709916583930835946157771719023638543005737257303318295575568001009545718367879336941055784192252172844954386649335234188011984790932516584855829830509242703789873227248606503462535194386225140371949861859994447966825448654561230842940114593170218186890195692318588205561615355439057584172646059867909794940841697736845838881740623826170700331060404124170407448076268332924032493912175485655602825160213483074509841939261199726298647091242197952127793819926155699192135744442905871067104488047302984391335805238519217721978564961380680444308944578893249651160777037878115189944928679346090320532159532307508721428367922223627627317391019177999678902005480460270491792049512840965271393025246972227013550939379356072889991066504761311485821749832364163426903445414309750630966371263337677136063875854173370421392653174266676235419574040496307514171163643975996787794944412129779269131874776877222834901097223367916821011492063933363717723466972699773011910663898723293791464625103743831632236027881084947712223573203131114470444349664046748666082261569425003409337596555568581782546662506132330737928857880096659718135966460218852382144253078395968847680904578256015981627339428891054981796410557196875147194544328427385562649594272142435262426958509589295246061668612110149192627287896676369186822962745897751106000358928287242986675981663319709900827081043016236770865883931280762489205562430246322982287593147971847262528540840953197398881129514802223072548883544029166390932020290329428022287531982935113205339144044369246569552917860862490520847975626306270754623394834466846614905881262531539776992430007812270026915570012260257999078318152034381632014733988477506492271911613350964529606395911547077155204048613527835211577181643907686722362744218455718107103964762383735746879149562822115142619443486570160822494973089103587954981891297903004696055011818262148003982492253035161686579414807082753068677369454798013020496516928684248340158433081681459329797551621702615044597681798066048935556774986306961703262668826899619562113748439834269856198699326104269228818191064001175437314379430181873861935327474847084911345364248407460822973807155149618083402331043795044728431860522835923413721019061510091474018592839861697812044338312672015528957526657190609477944539973162989445196868115758909568149504894944883630649432573263359382267267312880925055478049884583473967336196629219030178497416237672168836770389085462399622524646573424037941614239897666323106742082389840964399091048530368447215011523951778885985135498654994270509846949835426028160265658610996264621665662335061940156110404149602230066035591314609792622891289429231129964100117704152157956141244954848181970540125916982963726710689755832014802907546811408028602106378589170197438632716323619361412522501636355646879419485122897203804829286774609184773353180668379489324920536125752835104563868594901745782700345500695877906637804713741175075681790508084994646202277650262212185328275951580382972414757947031707754486425109195200435553405057671928013229646915117014577758254021757472524687208821734140121435209682395048750882951204427993285738455688187196348271936722836932560078544403982764956409421312970608259415883207075753048429851932972012200395208697450972716098771408604312135233228494735652512132835156106797326335611752090006058786653115971843432622220148571470492433981886536214760851823646205333283117279534415366091359757496246985504925860617121406347075063604078178781502207518849884078714511685348098344254728711788073056524206541358296527816848030328969525576041409436529981726500317879613489497223965124369291971697040912965580825588652579104824795211808689162496438500501696284188691204244633426715005877481734315977914666096775536595673743016138878770659708795958673200140306890116911865328704280438289087388878550299857821241790695947468051141466389578734052861131453367266540584108876516502661719190725795916376760043147055936793412427036075020924177200962203232081402493469211099772795368254168511954493713961554456188688758198468186767666534680277647619917007289490754836758047375083353419822321860005708161139430874329638680598533648672203043935805374433140104972393052610321676880516672713201461454331138567744940289776749145025726328285300917211130763917155106992258909988734466481548966633358293489762941818838563884493998213047796054254602823272823493098650534173231592150538232046620202739964597087218297764390030273368658343379094796307864574776935943852415300630725094850282123363719782540747163101278618986235019770331984811172420343724519137568114460387572297521798161265641825001819780141937097464899222304433029301116953813970093086314709641526146452257220741667947301418023060223286091678534807450175493944824601625933119823812470670289308051578134640580794625693875210983962425448752178569978846894923163911362436397922951879358576703410205464305570429423227731043497231545858959540680363165205624426956160144014516640953051466759897205277148862614736651000117705491263803326071748846887334195413506679172617887221286214671143395331843594191247054721518927712185179092711689769130196553088719300207930464536398648759313513747341256315543688720232073164732635613462633522194432361354811700766069755211402204003951602993703112097317248448157515004078774588999977279794543004454599308521176999755243740223084390675317337310288190560921672785510380893033811975900203663922844526464172298510667491025745585466043350711371759860637394049963877879553810836094579411733709108411642398697763940425602639122503040907976042765046081130025520979605057654155682332752976274423166162845072124571608840319923800188262620644387359498647773023011259304545914749547835705476753446545465106175897077792206914762283180478769585499748457130565200848319333651924132368718410038447297104973409824140962204093080083856114023176588961410926611082482328181244562909074725880835737903137404324203787153258489707773494130459681277128764803980293216957609241512297349315185748213708886590637864130820996274757402208249170176449991106593244084909654284953199204983744675511944878391416580771892053806461733964517892011769354740516348942755964675740331484005575136384162067529798138301691677717523011206152305912703737170783719043570703273679447255720764197329567783234001557425725232640622470184372582982088939363045006181268385558578098999355859178816217567320045910665478365574274495782583887444448317547190029463868694083890189265262165788307191470774757554280363344922479105657731018806375176371030477382852197708689901077570584966440830995089293289763391978062246923440239156336638967945675921450785115724670555659082852328328066552569182464785895865052157043420945899164929396807517430458139279287112497653925873014946314314459376634949978391384132912620883899978908506125714521962552695038674054180130791957306490437372094048426527849413405761839394715711640841905037125644577683951215920413375313709038578450429183360488174906001598035622689025279702912578662810695033609100798806915939512202234568616838376602432323552991680090692359344358823784203686756493161450947732255573956557611037114631656869294538508916340935582665153190703055093212490090311823080137596900342685456387097543482174411412044771963756403644507140252621060502775897383015002422942136530082107883989450580281528129132876730029689718611168256081722351280416117975080775418495313646300805819934662079789538580827856318721262980870832389725218035598086211739991658446747840158342328198221597089006817094184086678426686984914625763978016040885651049434658285720906206133333766084482552226639368280500741642243978761219069363564286881278915443857704491179433036279007738684964275518917022959455409507563235894998961466871854581862623031668552809623465061208672260085066377508000336103051614242349188832797015521223210464887164134046731504523551164578533410789124687398556297026952769625666376581520331201659849909326821878721428035366050492884378273759000668303353100669057285146734680634034753707472810324362160227404332130171381820706735270289657845603647740023399200827049278128070136494613574723691209756226025106669805636542910891085058779724061283724819757386615285623645183653876799256894763397607532034153921984101569427580364318295764848531311251509825329494338681864021720209551806963024313353361340721612199363368934074698575820284077090929648375414978597646179430555507038450860683279658577674489367698502874218080947939738942448747632030347633400138319735432581363601486693012023438608364340304827727233320877710364555006033658505681315264859648361554345304352186690117317973996742172377037588306600523748511761934341389879492347726482991252669141858357680007678101117475872574126830965394721967693591565449564851378486342909511350678161149804195708580528552743417844325626502541954903159449115777189771918700828648174695127179524047550247268698709366944803856320372458930913303627980515544464285080248835810367334494932087677745317622885869916241438057032558635059004755381486107351623851642424341255751899291469876992154010819086225405757063556295540214659672341392646048048219297603344220196641484496990632330290851655923740512362938230609118075650481123284770291534147695625728592683497442019796344377272264407243307632654782809264739700879014128088057246666546100724559466920265889876719777955180143948962825873222405442719332870847133615618761021798824989633351518187735046686600621092592271887156614053017571583091692816075616188228911831897575728033746382085807894975064385453614043139583579965250920819402045425664576849918992555927913397703176079128987600426707612979999679223516394551992764246829340891715926397381143924887420806184835163796860824188828399943767335671110732678669685539223469102645193336218182986256936667628770795463248372740809520433422554627859564654172110733591032983438900843346699978991446080017863078612912409219820191245770459420088957791991593209811766394777077401123531937397746288398065611527166072092770143263723538905032533998809627022738858384896768013927373430048395315941096540797119100811337633424614386924113196290112436476084353397132268098630987279924671503975235443338282160678425403537366204508729243743775551008998898736719066416261149212160718499404358045872421074237708665574785490213232109233904624049273543701007255982382186855493702301503284775590733103395316125814243226453696789418263863125633204193013587610086654481094188378753534068361328870034402023190174545835704883811094097151550943452787116162175361848366545227325277164252521102256597375944368382193847640478356371627368114533753705575811086280886735259512817287189937112624580971457462766754213125056129097798400673344641981367502998720082637353323182122627015642299210605721503004006070830604979414933779061120071070456409264319014502273958861233486303089913381366282519038692793684688071614737189169353316382395610416471077577813355309320536037103846179399612064057204833598818636216258283590413285587067280642770998270382565559783772886821980416448114196452311366356204615783591452187545166512752805334486108094208657358184938567435410996173055768491611333548652448468276648655258804865348906165084350445614673662307742194233500915559623460529950157545398248567079207198283043179773708815941119768056085319088061138770214909181290562509096245754347597395181220829031971838857186479667845599517313014129448491365658569338747280906063387531273548974403932030348776954708459928838198016717367414967797821994830491719276243040000032800613257456437787260912214523980579626081455142640810019344261635309947743902167408305221650478609876358424161376558968375300142852484666895317732761183206819275925435672506760939360466994533024397653356667133872006511590072304226373129163886184617796345008192924261202293724866148127338165562900306536863757519634782823074253277301601093091946435150097229501174861787352039444629248619381816033614515637832827370637605516023388714911265335608917758242683503691700731199423764059793909582130113697720960596469315180780475912258873960833018162313919844925726644777781601805445455979135385824340036296695683630052751450262620608431457581383652032437042964301901230280242075881910948979444849000393188688865723743716290795708599353567539829096575281539490282232508474832739278437148040356970259918285794056298060918712987345361835851233166706807688759772748033503859808165057658211764461397773687948303818660478550261364916618673904348278717805933906539787840906627293640015607401482560643677466970410332173674895975585872614390897597689646996220473299242802110467300522377507773625437542213607657765599115730828799268494321478400945126276859828955105661483582609618187480754866535975937111331151946020642388707963337474572382163059494351378375486441338726107352023748912810771042731990535731578213226629467046301254578532806020939268268792111186264208615686899924717668071679412760653697769236132070546144952436228050927285377694329433488332803272326503899307422458262603244889332515138726477014769529958917898139134747273917734582861367561458397798350413103609736984630729525820819304991156875587780740725990371290050798141484088989030887166177275225451617175001538223001816239309578525811158879919873786101256171132978731117821565214560743690273315704549775146322039324285766187988450297370934456077117889664876664702650475096596114606501972588986549968584884899475554533538440407601211085126745609194955488196235880175855888555374240920247978710719983497104963321800778051718980526306744582279179092724826497544201319505126102643460836971284372412803093685599691673925297199058166826933858485560692162657890064131157287860836606902101344798944298375672864459527140061065301222618073376474252860741303519422142131647944049404656189417718117568299815726956350381517457292983043694094021849448805017532995261481688518678215255833296014222789167024868971259147365135542887115205199787121396564306145873216774589682871581824958861904901122529672862925767937108092907577412235070681505159422080216602183658439025405038254153652249251647013699693403645105450825403139212507285386661481223702899959706217381945831472499140969755188728824973374110047270766548127407803850977186858221495521846058445456509082730541655592095384748344016373418234742725436117056367695932038961309116019811955438135348547581688319983290667000513818366837177871381683091386524014479356596940286177905744200710781370269039031329098738339571734160083656003768680760287050449314668481734110168976350506584948117343417221307814532948304718497367599167186868872499466251603609838571217142326592494223281870569073054708199760436838726479231351422298818052871935137697199389073641606854389432504480156049293127503967223234238255214908943155737036574614637385069617032634845027097093350949964749355645427076525102531385335425010842353474670532159988723340662208098132511608437940476929702944948563545955811296137681603545933644708667138561345390091032097248927794229177476191886556812953524789212553141157620513075924959041230918644252192939465446128394225567494994730265967150571164071290066783489453619736884255393734643797737527120699378871531426911260556774504798286772443911896183689091789212494792201469793411606679906208930682872964343629057824749506824940319958971631936358636879564935794357606979399579518351026511290694679848773367895696586715458458689690850270880659170347481115611980295841243164086344724140971328672615344402735851357163215924708932287442122646485564883453133796318343130021307072041842199719712507595902686896077053180973682200989708950627364330241831450570882582391511344684546560972003021766404957488232406651954139277627522722700833534244716265632043496551284959229892552369247130768869655941950450875360953899510381014144757078384369464225708242190081050040651564085998284626005353494156818362113834043720240624089551941831892462679566784705781901671812261465243945766180999141487210806387385300531439279686401620846716585043163528582465047033499455246435720632361536439241200136330635638775977071226119310928271009832501955438998573378848981136255650850798635783864245775907207251560631633088700025409220170970512905048287652186634087667305252375845231136229219881648847926834611214790607762711554620816012367248298684648452889958442321458624002030922573802281364141372722955700113367790077517902157050119544222084412282900202995645414562459780658153100824706946555551215186025943309243700839225447912909418241871449856307972771910030802203546973417681559976082222767027482934098621570813120299368614860951843308731204173262199950843110629704042174915580739989312584050746101101060284971309212202420715459935564756620626712124750192473712455080089563503298714346539336238349721004898785940324849241703094320123573565103840316167431847249137611177125554561999032105019348643506155774554138694966268461771910370259313761938186128640853585668541124103151650967679461457493449809889818270058986236333812387763666094768441503342194846843659540677886434133519491336039107115644564576161652953880703414987908165479943484187260149827121165913230004570447946150895137885639967751652821681147753576700592089313203459674411272456421708193872323526545136426684501286500736578726620126259268833617411130258635331576884425321558073445996134865221117235626986692340987711114892769991898235855817538160271608378411410524725048612561609084515186938459952766854260095357776576198473489839884860620578671118031946723433219413866609895756193449155750920805522972054737285909627473217446307959019903624708793878510186836382591458006404108930027001076671714456393986660429187580667534584514638272481639732695171723006057151188416798055426502089140773953330983018039515123945921772983228802726968971736677810723199033905637948581205349635385136593333610957385708550426575105674007311161629235977323043700937420816816665116778294234710587049118309952013298206344723585077024073117608990934966456150331290402326431663649100407690524011403699092550255632873897366163050785964989852775819282438404193115902680209446167828024581857615027246517378951541815883109547982609062799100409529957747601886863173282320606303835733744565891160995193000646590765995924296330784309082080061185556266358433636524374075194566539445643757150125543868486399625881891356001176700703031977791403573129575216052062271740935259818211711538814672698893292484022612483889702948676032329633305313444848805874623712435840194929206771372967102210882308305899950000338053086393560416408772927897351068016260846118189030812338076415666309554660791441800283717596114653738585666009232377969620340432808337291144472906585767988855178432176888715837163548300539449813841316875926811515173547164493198436167996900481628385642301340218111713356868056853757623526034057257324062023769937301424287568081171082324613063833691355846806798111927025745085619213883371912187795869721013967552394191717216746786428454842973542121475505468107710823927942121299917673567389087491717189298358639947592338288193815389624892241050110503630825687168998375755058825050488695590455150424784835784784330212742080629044941876846326846202713685555186097830499156363610160414983915449104265158859391278516898550722980048591179709724295280269177076744661564307495997037657906501365577297000224113924970729163623205808146729690588413111724343059709113022344643775030038553528164793758592156911577489936987603121977354580369086169803052423584925650490812594545397453953136977283062043252143635449500197982771312022937578593282241375620304109863239336515523570370760940977126789452068408698115600878439515138391822203431018749217340033227264693953834635326646859544205002602838592936684364801191399634191141394688953128822428144310480469047763536123540714229936129049801374942800853901356570558449217245199364792848221362665465801518068623984786369296359053126000096016891151851981810437960824713190209057004424095957754081968559421250001716495237989065266328522863038475954978106227307473034514677257790047409176213623729498988833552710845303356563258150528380773135854633966174626112242232130789033351800593978142014025105257101545325010202409819541958196485997756178830940436211724295336227871352306049125304015036572477189563092024933201027429233985278763062598157754477045886741572524974033835845803772996019407777994712382245119991955809394272333500378916314288246682951262160164796103850961037948323725922652820943047537257529493514000926286205508883889358555559375390311053336360145224731478163077843427897359329728792783298741511093333337192888646033379598943968562072297208422292952857294286220000318310279913064987588340409379714643637214196945450148426066448852404093001961064704646048726302984374141613568129027530648276954215145046969765807641278276584613128655353643972900520416082208824857556259133338145724979207558278650920470938273650833413822904602934389879034868184310659801588471330425980079496564399446426877339485434914281420343462037135294416322023172515764798115344284749174456441800638124887613185438888993999604130293883842412160332509255376088085570265313515140458166557981308216521019162468103364283709331420751712483179672091342713046918908518386646188862094809687676831768477164053124322920056707685635286572259976652598537293778219585465965325739088232000087946021512357175652098187988181241008835408449214256056589600358027436596779563158898062830876737157259470297448326038379058936914751934873313343929638051300444355609136687792394481140920462516130390166588579132026023481508230078297442729164857644438756870236774799104635667272179002056797566314351607267262056625569596720415810278840650668319025040623973366632509033358199175318893646541752111990684069063850269237764907258608572058756642326434446884914326525098896999873256826907473994850216403810088893532978347086877979038568185920772796561879661817732721554112535361059311054808984677069526312626319655361707680366115808574644547827142384282129292186683091044073176763385224177509049565142455684289850106934792975854176175237097322265559489950304593516880647512505920607761404482388162247006788177207138857256959931503991277033269809335297537227461371315722770445332976851914125156511279183835303336915233977337676579630699791887326624320743439413346130340604078555408725666892744080620883478346341213893368099913876458599922970149386695135075771340232555419602357738858478062304727833589827272409995374187444740230489197248419266134293068769285759574797561911762878176650113014786119272274529169646402101103857552800223731482515223101474264747500900787654971339201818231839702815988207970050770015053202124957945089663105926374528289933993043394260421083685907520498970109660260508822078886172449732930067669124247951963248984365115319845739203334801995830147127197138582387055152618649367524055700704207780443362655008404159811837792957604874792061145179468726206167729069007127186570233258591854619075320689251417996908485876019109478154022158571607197229161957582159428217441470584836430341773631310549192670974918168477124170742800307023247179911103137700683101546059235924769170328041222620763810639216933137344329422670571090560123009355133260401559464410756464780461107297205934317401028772648355763777357807829636653892882249760297739521864998220942353360807240784264826908691636285566612847954580603627071487995083096162316993759230547232251193368952437456617807056121293776049514072717582532571588530379613630610844104930036448638148602804741581075136821985481745842360299546328932866872174708395875583271098589794182821450949821260801411645892565587097180951541455793772618960812156730067107144625871467200703263012790682205032689362985889169643314093510553688442487021849504684918837308906381492380726004818256415672736391238126124494321457896312336877136892101536348401472131015364800401177133002159887623957075483534588138740582708893039644099636940587406942707161889676512685773107118140724625907923773224969452231053594254693331977479364608619795135919412502811264681444027777304569365956070792895380670362119131357981988824390365616999992328767401439036486281772390144019628473962428581057321516099700323081939996740952487144149361216072279624695700408474546227948318238396637501247630803258561995639951015471868901884571253877292574710366190472473402003697618995911150806784727832353435207533396805202843423127127064415753016468571062468319643973355146855701731715631672603167975280085824864214585306345163238912716760881526881920629817634869681573691448313292104719981756340374878795065866109939395160434475652783885713784260032928495768766213838397008190885724696643950072073408111368149836988416217758064999436998643604265385603263515072636458283151498565482747615098650749515142097788465070492517266503408410571074122719954936033325421988326692593021500840778052580914577156324205915072789242196245747414612439596894498286293150347827171618516608301908270604905760258739455256876601484560686007417493803599145424357990769706843621640408677852319330695174220866460666104970883299848037103219294008609251448982790937534177870722403609305282215101665993399935880354384231227397347147941868486566117434192734681668915045974530373242393237854385749099061834493053479426673489127922928898929524772397635582357233603575562358858996254770116117036957398390420246760533241835195545393320802898879400411247226103775963286541611525659864293612479460690042278068698194131448555357735154237476853865390770461638228351946451962978679024795128289103748148142828999957007867051321316117446660271323971136900926784839012691073544810475159695730435756532457930682458845599993646358457698327776892805381795279703603475042249667181188983488301226544131777081153459345742902554216795063203986141286579122496942437791844358544512255495673769368256738647914314076006068106226574192729364084760464406716282683746782858383178189341071025855108965864328984351001497393324654562526332309559136506411894156886031872355954881657654162135656986065575810228810448288664278939200618849804508184763206006824443269377525675298411942310873743145138097450105076769945695030028936855539730802153190480962429402381915025755417247408636251343854286796389742868395773881852538896193420051761429495425725580322289174589822233027528001253826781064381447111415074672191522151703082601923199900375728488158791173694726224109571159402903072821967961324940014440300766980904864795224808745666429015542250757692837785552171901214989286923852678124775760809399003250961982377612130566870900711330468317138900591671906119405402263943500761389223016518549563071314240333479729071866332730533193273524445297347722959640945509539740895622790482291953064118195356956213512058956955584407341029707870735182715350056542360776678551372054819899215817875334775774326373826543817521104463039155892006517126542670740411156209107336852884769314292201549006373080648437932758993276671532574500969945794612964235310264856277161465485083396275785958372124253056957615645220974182068566653132665222235570619753437028743394838349086184372318428843542241293564734461672818017733678305583736346586858332643328616695809617385981329893322393266826310178673607046507408127955498520047277923996329857049418461093645985508230313702814246631667668865523029336634476079257566158229578153016712093370020370706536957877306120208108405248990823402074494980105745854050634717329944635841295430023108944725964194645687668051243598116073885835253894677110450780874575956025053678922745330928671980048764745783755967531979489883894773552107416261502179036135074057769768482440369688406002816413446832504351898463568286948429690700615008423114875035368956114629891124467485310095422290839785586593257798489562212732514708174828238583012457187055895489304878372840807908670719763565333609562886012773833967729935069460166599584361426593766114085393134954869679867251271487345047696334289133987003194187322467701115326966212234558414278370689713486589839071621999609555837007424624041783900803524050162452174651623793145177474165186031568348839096415568908060008575272405090640313901777323326427348558124542817279824268279809506140335831202798917333519229785462781843924145408433979650220462795002010178988980506648179558896130448593361329839691429727645366165257590230891592004792709258057384897727878284907273739397056626530222200630753537017735836423587685306567259717617005896913715223215133199769389139276518676286281646596507303518461580625892422417462173666944489503491171284014352353462966882408062685420998489421499635634276207785021456906229964153807860524406514231442966410586561718195928722952321841899725472837284363529218613634137435221516574652817386690536610571045744259905125947539703183519055501752570290905029252446781509503677660213636306702727042838751664026617557242112017215430661274566601812649744763738988431848674418541320815769591321034361209844139942248924326828718501665234607349446103415925532228240320986917191270123324180071101435644060344537360445736547349457261811579761438858426411848385229767822028886826407098394476668252436036199826803498959256772737784699144640159412352717594290976040851382561198057023524354178603517041003842846210115788362317447427060226472951341854808928193966166168039154913666141255208400582763552740745625527218542655155656546887200004100875906378080017568468803928647884046131364672019280956240175137324165464277021303430850920961477724085434377413376151489796205778853992097232571412295666328059349392526943112898376136014355040613140466471914879225481354934320728641549981890518525371622927001946533130013667563579251654021457874445646433081674767590434395511427882171662772425499897957443533299314459488949066734510155598094690624861061668529549584060842948729454362121351131334322863019192600305478060959779458373088661566565370512188965644370710637361523849017224373824505751705555062666215618565154397742731878025837425835039656274492542448186850678625986572923979288967664097297206619057042865158887122414057350324510293324714681796961664957932530425296663983455650628413590839471975677391587544122105144845724860793244600184875327030387870991691066440015400184689471402556216990691645154712735481571610763685930535185633671006486446395118215749870941066775267594256241789273123563519014074294203480883231854828383963179140748989312395793131388819131448118949398402390381354571998821922024687934415191515130590853610794662675085971137709818129736080886494793655663381232292040326836991094958081269655332983743966422573245819773657919265376249358896345513635082249061899159951880418883748499240249903375244765239813240828340397674362602279838667460584594366733537379545970155361137457274924192173909932313368863192679078367976884748124005571888141409658789836303971189915201759736452182105666817291489925901866075843944491166347524967622080805749532963786495323789049625743283114023532367142712926307653256621582802924690159835920500071340570449853763306697239237638519467564757379294848905001601020400378643142570718870088386383823888390936608483401318418620831978438197678991829989477942955901839797253618085407869886799750195109842328895105965359345684393452936852960448806599005592246432184317808073357295493594864490777613539261917022300984552874720684747888666398251944378557042927333370339372766635603939429726641368173791753685614884537463501277688231791279839984524405749150921253006629109246115564911254580678011951950738479157206759218556609853387481847710033692483718852365062627143801506379708436186562570953581853262528465689718492848004274524070376577399768005465975630568034941660930486224208614421843953599104159467170920483056932512158386016138933631006781145849854387234659535828813731394934354877886549177875393131539137192688405844331867891271547735956009594004007376470511607628127224536980599294800656053747986763200864721207515420099001288210655562796216162835898172151499447253764891148890874530422307747439056186721765954041865045420832698305085102922836624575268629423420886659688338484759761447447656367547056357962476329701050437344741213247955222728823201190856689975524269631576598189698891980930741238811837358275980354366348742834263326611776935693620543490172735801429678909859607598617044215365954394958986624824583264569867581954920367663603428714087647790720326468243465858603373414170729816963805577454787821874928874032680328723514732024920926965038773911704963065854300022962541792964273550835934028726691778174800236371342622896362497506190773252508346127002963296179291676726990635171131358896870894544738463969700681090875093915566004705188323656604081757084239001796599738808507012077461297841736361772981637302747153534276995270557800883933938153815475616449609683077828498394372864875487439490280063744314179695762937241419024643199099289476708624682258939023757424337173045771871751465075853579816160523244913271697402172811986593664882362622341214199768277021485458264760314898409034293469855992727270902386982634489571512232832013933927849191049494809661133750879870143524711218223394277119985738628612981596171803252177747448751000305572370705688479487313333781255045459186748273074300014319883785185715406531463539423936687420757753953350761252064726600005535168191559119260208214441305249749531712629745248332274568625193220453738009144871141858497373513406251908229745545371916264876281653139533460317355796134873560976476301814140687449532484519370257880555271617708009408564268696030624701559193727523723962074471874803237075903052514516121751889850258111227048346390891418045291006194107197968226276935371161610456370347019285332178596407310541683157127130240918150252571453198589779569787128777622055182910217093351994094979001988757816586502433731571747153226102872466390772890106210890927866913338410107646681470923903995469826675753731129555567030957128305646408388166144396303611151475105884441096156090832988584885476273934122792922162645559456260713929521970827619177158365891821163508600775964432928029827244615118082519470504212661262450562372802092504876689271713801284462339802370409250787377976869186937139992305278209917118577566237802294038378030232099106388192774854556677181603634445714607388629374893720030587995053974420311668720125246361564679794264860321167984101522681282369619161171965396925054898442705109493018344419963958035561084453718100927583174636313260718085696027031107573477122277584952510006311924428310015369250554654484896896430452210405780574302698301669166080809978522572844043810995179298294814823287106876215091265132047334725106763962150049095274082098508456788575025675124395207270857293258497400286601448866507622558832181361729804238289131504864266414139850785174271182160500687531068331997295681095937494164073956687505738427618630277122081147448722686280896057204020476366273415382979045405290048326264079012402790234431955534613531136936929132259865052710565861317161368196521490407481924273637539503547170750814752127053170843666730701147481420940157802177982776778772113813584081268556093626912132272523034355248805530171014417669782392237463711562513035694602720749927743753429340488865332666999143606831410991516754392034210162376998839974317952563994984729086297869658201976522880724816306125353454903338379061791468439700716193841355215147073496599799215808286768753744876428165249064417070166572012046372033977662018797483230559589018933244676728217940970988321422679591323276853735295731643683915095570905316009417344097714603719367033888319869878857282708737218177542826717765801581611973908517843932900575005747679313191864116227622598006665412691390787620391100711743577529162543012664204407896015350000894399441095114443345787523670134165423314015540146398986764774552257963752731882325211880136343431304083956130529995302622515806101678548402508558484788568689367150057713280223020817823279751094992971042631924732612520577076461039747665464184241897988750399635202214258929752185373472776875144646445117522108997839518728705901234917481024598067761676101721691224704006764630440709385323676636486558033265786989879975202001966239812557963249609806874203251978515215091138796934662708696244596296366157386018531132245895133632622360817160409703314677731118718584926695803028706904495019935311200433889545827580156790659389675194373390367071288928339700473111642891185878472387104436205207730942420823527426696253828895507307294887243026013052960210288535699129199571937201243666811070180148976957411337337355360156547316598879991332086140811302322740600852704246109183562730165035863438279086947983928700671567007518017057159801417050274582355466365955147839881300093507343294783691263621982256274882379792843456178754031491163960744841790672119109824341616289379516309267578649081450633187849402702252512084631972259632013903151446498376370860760297059389338932366494401386383167018408214177906085469569256472270194181356500261334775009326289519465865555386920557143491952972857020590135503684634931186340149986541840735430532412081418462794640816824123982188551749797999287513749982224798906361850542927689863248837840207742809457437610948496768925651035448594740526878321498235624578994545586292129548727361101484499870073321681202410801463803618501266038355065688246737746780546628100386995873712276540789965197106033993401724839617483585847332959369791877178134611290333211909121755560269324193588221919095226538595262999324067352938634570936143127317063722580002899207761938084018670771332673590749028781587408898295581594723019258224216191792286470614685629677120078077362567635993100487816707308266098694258605806321906165244467219020011752769328938531075169441804303218293364696776120812662567182006701035585066797917004932837416052081607838540182882708442000169137128056460431491695981217704554804043943885093650972530050398457670863388369656741075278287746146844964033780545498052696297324091959902804546436045091091831309928599649935515719285883104918616512699655399774536741372035177029164982260510222069610495697218417764281941591413177607845315908932956013471938851576421664649824005458474459373780874541429439343069850369957029423984622042165583647488080342245813977189545850740757871196553141656122214223616033727011589953320841418895916653709741114119613372822947898257229170710790760493045230836273092827366511739458141674251857475915476460415980526303570067618665172539636257847281947389426921031378272842580776072185063199216637129215404492921264073557561783472810502507173248153788436011627167609228060236872007640223761448181277159182600064873757730751590563283325870575126937368405283121620644813654940253702695971021986343259782681323343000512796672949981288161304667219297396027235899176123170503978467472646550728469975850817611888065072814012742164943009433667764073817226188641102853374608810006624941631441743157569518061255926441938307413292174838048309026206131032778938792147834414085700004937957928341206265886081314540980214340137416760796645933529280522992940329715015907633001900707061204411393170388709655969374388643092464214609914362927751251597810255330549353532396609629128280522664453155450295847643364837910892475020468095759992620872811794647854493837383882281374925749122811617687443151971301363679648227937407216762947765585459151551557529223915147759269435250904155751977743582918134679217854101135894018079760144697412173140178900647101921272337105090767242874955249566163926903987523450342514546457615430951094026868082187438899782905802764424736280843380645628078469311692104356229416460854560442857484355412967718147359850246390325735355088877264252844654108252371402415734928508485613117534323484979648984590421302249829267411937490367648251386775298008025119277878498664714064454938348290084802577238137203317244172607783091702314816405443959203001036104391948215719673752900235845393412713831180437009050889606879063672119052949521530043752189302717997950214079616700207436226912045477422606841758699733794334286801887516177515470938441876287853404620509154010220479779593759305095072950647965612225614240581802004042062616841887714319777523929083643793283805050870319742960193112362123082629905195949452344196759347685672360686657662635067355212700569514777828200839093920099947371037221561228992013643116834157920937950177877829861060262906390154177315375669657714215500586349312610855583878173707720570904494666188075024299755667817582156863506095440002089391559006397354794210338163050044610884113347142762601813364226447015834366470718396741316818551367330982320423167964759916604902199316661266888249457510963280439792824568677311422258257218200879525492589851268291361076295201959515972679853294924246820439828593878975034462443433069076977893985113098683202920659058057776616959650330294183180686363189989701665012250846513943675155171167289746913659271509271655526609449227892498728943340496625100490800764758919362393568928207041845331604956629208041362380638893539071204209315619499353219281255720855073830304465083011142867057174177488679874587715249560055074093577421743030402158302627072811269131923414924722302301870730168522859728319052125754577507017712312373330412637777842427476851980102832977372642450876949758939252250961842875285705131138085331892462439943332391114879285695697013931934208006693845754254913917535372765332907162533621267449182177772577332665028413629585698955220639842928032325965080105533784332607156948769274995923033644531036318692500517840943622407236829014631934794923762439974074615750127805537420302776157319860011891092947146571195473272776735826447443372212167301491182906409726561430074828200774801427496238431601860991455766228508776134780438271831174565150734027597740502590682525610005379711064714138027039300435985529260204497281106130272919822735586498414606972031989495702508857574599663368441917797265339047808924443211679665412406664063864795558606762023805031190396890062384820887594477527888376945059550934428129253075207441529009161592551268782223474181415758250532028259843137341774404204524603921523999607497182424201667945485357822456516753300970596808753918216583542852502045215721840331837651166655247178888332209684930045075477937583227900593382444924852509562824336971795006604619082216467858761773838143703378620913396907835394592873903470270247715372713725287540062224932145785368586489699278188756302837446449729560542759741554693622401560477231999810303164889177835151730939730939123795571026089162669286617236227338366896045867082930457964474394157023300688102287506034123539561547043883735943179864292404220183831980984264936380424137457538851308506003911647690394894906519192181737714039688833553451012715322263356167023454619410023223018898741935959057643012140306836242449052395810283765732411840386740657316547098532497682459259218490001219857601889189085041675598376195367467535149560667880098716896474301251126485676787273508846689047394442836190734734887177775126561706639532582598911680070135697437008792788704621779890373530159440810307386320543780543871792866228250614835572684889016532223938219275437137822204158113523662303098372477042119183745498063494881683205857307660260755508234885034552430685050881897845528371515302247342927145442317530019753422501890464924973304989714842249897623055644951412326876159159875279689777466699132287839511074799197229819134416074465455419595079002757599446556138683651231031461366712825071845575952208701516975724458401401275341473558163424256754447477342129127558929011504542282865628882804924701761692695205630298180694909456374657762678217116465245818891929281980956481497067901704367887416093632398154293520180685431549039684856845862588982176090991318249766229661062692655892792261589729502850357963146851570758710497331629259713002595905029179713466415425218823060627503143081310251389229016342950248212040966430574764781733597438531003727259664721410544631147300302171468130044911435040420941511097023063461878369615885583492866150540372544595576365872347410530464534383243811408206491293857823137296037932296601964381673483542262145436382007839877890727549884204795429551884928104078502481517664168588373413045286000392760343305622331835543963147848866630089205406186149171628570486089934462037998878451763639231222639166073297913922978599761544116172629117516594280522838724475815600028879114391440630078425555456111425208269747267331969069240011924826335991192775769618591479143755917731946390001365782090925287414572543008860545327115567927369446156177108221367369553207183574546798410080698996823694900378117593083489393744870524359447153609020409128796565709021866306791066566243000167729183756179468902045757048476360281211756749987702774978711981354491312323882585147140066942446252522593303339204630735471279775146035205639839141893153589512337743690405503849579871541481910441577457131526901172398436478278389851054006663513193501736267757215708497062221503619150466644063251207545982698934422106118057724308021402128588023043076426546127423265034672225819757976251787703354406985214443100983524443212784127910017888493194890459187129818395655945528060440097002825677640079145497444860221591320965671106819481266060872714917566950604682922900368580843447769598533326333832763878137297646139904055024864915659092792353986396777487043387617447080793681637922477055059429899635172314776200929018011172876649816500764071063645700617436511979395906289677191273421194202357148090123828545942212103891641613633149224365242499513300271855965885708512518450815694147985294771100720390464262612148652250689616807117634216360838883792346424923124258693005001914893541304108779201219609558649530465083516329892538111265304524146432373121750820028399929964562792997505649318632877087071779749165150999858215058696173538800128137116149127265227324296850075520726502661302208959292605404810528633592899928171314246828778192368080800485283333279394159893754041120085015247527573314506141411142375734740272870761783595384462272083445665709633092532294721573150685930119239574902982665297292688430810296556923260304682226617885488963908285313837851111616421061472687339196902785995721058498986297999921045258416130100238672283774770319592246673182122465877556090231385421907474077367749967182853557311900087128341301832175134003150139777227683547737732780625949405406912318603362213566919516818963235836993618989641077056479070601531779609768823322770530003620122059558649683494479511522260479926248133352488081358925432132380501208103778886265142740221770100719537878564643497161561174430353480037783486195651254275722708082983952682274042596544550557910788093491462567365840915382040419329862452307823699842587802804704387254849196100757429628433079477393795365376321639587019794448704508477192840720961152881061781987958999129804890088456176957377480677658973844809977844198650742910156785889542041872965678151701463586878445759321885583671882265791902414952466005717690749240214564935090239080002415659269909755301210698357796315476055776681350354819293145166908014628346144016144444139368661781211826361696575939631982645216375304234606444552769954815033865256955064237066315576081639839665960977218466589420696095804940873417325303652066775032399700254467985765851109176827059841832833637620630901738949810127261863867298836423805271445089764621060328874073587141258072249145881547369229621678334234056307050259383104084093845797540533229528408829531264799838068215879444841803525413147522597651510341696990186234122153840444404630566291248877123860180475903942773128701310713877496459875095550723612159456968303006760637198561103149598057935209039145596632245528038270819772893857536329599282445257055129873326478116678809247739372247896343777147476654288382864790383700242592975452611443365751775993322151453759484915970683954467866462455822337056370901283793755029603055548441052474345638049832188981155093674423175334897765397223416556805623141363188842531330198333081480859851791581975037952811690958543457272226352211519809365817191885237909625944432366151942959628286806627935331035817127611437503420752689950591507216394883884980654267353599852115615115871260917374246817558736687918542875981534110832152175537904573574945474877652842566707068443833739842214551985616368396857099564044671620495468648113595231171307405553345332688064741114071523102049813710786940516937219063399110839660355067488384445133386697408136975990270785077798582229002527096975471135357785225014348579419869432947304965752465022514190326001465493664556084412156766497242056847347380034368512295253615353367117485690734316346199550591493274613414213656574253528669326083272696577914552561902428843783148904109810869858122698082784648856478952707954851454767656645309031386511328016812830843296729178896199345926791895857344044934184134988639650031606074745325302089475057466225681739528461182335676274117440003817192654884023943736319624295755166877495978666198965508057781815402544499576047772633801745821698141756228844578965443684309448289468199726648787858190100499202891437851765982516807441537438780337065618804586708591872116719695301608724906630302783531839579954744938365100410854381643659929696881288878284115476389224709690140465401425121256790694112476149218851592047339309519611849707999801370206723926532195574345481126219643927631805455982574506293451397261094397479461844822803431174885719489203117419883666489328276205765658583910933002475225374232759040243647707822433212208695287393030680879537895521761491671836008574117125169211946473236631040584781576096835436278242969053619169757704842859585985063466993214037812869071442585230416145602630574823400120242495343425839968039417286554797450449000085627293384256279784716203518771047110100753049097512597872563604223850957094123643968276551718974363889575224175756889900921417842073910565518669310201857181773775328137602193364233857051151847405861127538171283510449191593891136919346829866245540246555776464498372561060827972427414238666486928494879033151855007851441321876273669759307317393069123555434780310880260601284839767624353318650664008516133658041304341468303496031949094012894984145774251487848740847837740270380969920649710603983028403787403079343371065597848441150478558868317406727632050899671297426987460775616737248544746056145731679145758909203158074775984513891793852092013823789082802174358844113763043342665683605942604356292884377111335276187200317828220689208616292336348133125907505321641109711081670203159915989660619928752736947773253486638117304836734777336153218942773685775246862214733128388543413254484649862430108774448976082178417894266049714041890682072853734335787291209429856665560239973424320226869705146492105056238417749681438010850083260264785241799342318942808694960114472185108760645484505091649597907241025490009884472725698525691100336741103677807801922771552880967838215801998682927735467866328338452626135919221912371511142856038114891848024935853803767688899178397172866164345809008110814449747267809796126129964447853512986354307192020244822021647855079811031952794672706434730958254100013291230520100889235848421876779717823219263271884250069713737897947835921914299266989361473683045730336092584609952510941650826663642953065661126599992339590526552524659040029773020972158548268114827280113538143306018100347364584942805150871377448458753573563939107720912773071768356165041378081997041726653596242207325440718234200135878021162930049595239657772478209704369941722638626813379134708659298186020477170508261887098484562738703343291255299367158735823300117409297918662283463571448105951750574216418836054515886465820535078860613386722034384472249701318371736761768387648722975885712729593472967461209029039045539680176149244194870379561799174301999664885627865860607188818269733977585789779913772369860340580401244335903775695736207033367760867855431090284546115097221811862849175297374083464900053660832968530391699044350571166911550668274546426512085447288779242495094603824579011478263439044774434822381841295242889187344186805032377379797679094777253803632051768659305551265723348498883744535222240447316567449901645464716652181620380681378418039493517289814025115594234148332378962279414170615552125566093371564776629662452947901176561949595893936407352862512943669827710758824922889985222889463564939208450255460492564453129224875769406408467138977759709473249292918342533626495837292026555498015663175011491569047504394289994492190015296433312089232446035120127076161032674149992675846431828585918807001678516370007433204176393039302889400442702771609284348490125013880473222841575116707481566916401922981349879875331557757192040606020042856502042474949790858614290837326225327897555439276436484136174731941884648145362558614989312920750889501074425704171260042828941602613727084832464719394985630840430388270452037236954354267586231985011736825106889854028526526021859304680749515335015685459693511769478872401458663242968140162939033516570448175450216382517578961151478936126260362333309203970499344604152086814927337551893213912554645078834975771964466458364922674150775202863922711707949965865726466312706754413971001176564007450471576637520764366983735862474378473037134380740806468291721991889888573232380650075881085493180879548039781147506366650357696784036894828962530135423267076247253345515743987387179561403352674049497333023472404145747966126718253824313561533812067315251962957888384478362118103350493046936014148734724494447665639691676489469256220391271283320179787866614151537228702531958193699795302433824539805460140452371638109535328730042655089980269470407609601517036675274767447419473636618553588574538483440308019117328590297874919571405954663158781048585933097176142484520890456403752033951499954985594867373688765478752573137876985115756472879509778789343256295958321482119339777871056787978474025501207551658755283123983964040823231949705627848134542732244745041251302930149657468019506889284336846142607826258022798154202493689015991446323575625464293148016306492670250858634259410462689555906249719606322894219855004351904803654633798923797639228306422325475390457059187531615174962137784492005677657819444076837194700346628629293656935281244204357869022523160260227430837555044910276500039925415807175916234849935918411009226489970919641288404736095510846208793992711550489059854438813238387687468631498407745415268206530811310540951867529598384055064265242273198055867578914991445357482239339842054030474242724153469865112171507490226947265609525630222757133908776911531172328449178121912085643350462029089135704130676097245744829474173058595598920541734347017091148150220173315051112990386432568776795984742980398244417406246151162250070304455119858501152501702136776836191481384347236633324624478882517398034262414074443833978183144964311527072888415137517057989962574191299504759524977788677587384710314196268686009438505170298333689708919893218076376819656512224012525822861419611198714809147414949470501455751949118780067034034933008539450421878301373336848230073975212972247038870375602801699451503177084581866345496252008318359394687041064719587997275629214411585375207020248990104725125724981127022133676252052794987946319375398209766154193236368029929854761109176321624569082702579936031050352198965010181607199515405602711080403531379675200347472272909504331810418513602224254831992349171740957979214668906707832451251166176975794287382724293653135120066396592076993372059114342312735757427677742457661578071699157004429506280939806173493983576115723512638157227409664091685595019256455431374095022225047802438315950481465593296538826654951341054230027344413193474141431354452861259992359632780917363704116488283798241249945044098184032531612294635089498640610826960414869322272210285960080078209539754801885881863936429267710330409866690581938739765441878481136922096424247588270609070927455776231437662365749202680067287573987570124507267043379846550071447428716975305934015580559221304929885159359684936155826609585024433334720641386712641891335195997590950123450118528855788157973320954416948964121444919997488777492318998692043436992761388789119893249688032383757755764701204272343264233077027924668101658333575780207639426487574145175086626565134753375132501127869323348125069874893949956943978756649213912292384211101785561336764151641753374216809044403651506762092229974681563935752753700722312190047259166872800037530420937597824204192854073994779604242200964957574412458496293197752092302695440418144765378445154815461562363094484199306976072810156513775146010174471565239363991275692765830884419685538728326764315753849719424140640773729738988980519388664810273176463028396741698361616378844885536155453262691229656013558856242059891449230813434765131634036621045592743599594593632149188908493236399216762893618813023580985156105533700408132518539423434563579676370503757555772187410901106452977004334681279101781054319401228335129595220849076230429532236516978109910340896290009018300611985725221462606894005358986910379347873077074860227372498996234786450567084040941805787815069106062016397313398265367603514035870114774574348498104349557624024030811382816078987599781819767945224651344712371649899042006684326568636552988718916947850774018712644543936922428754882005205219243898091480078506270507624824031293049235770631510098454457759430604359214426428072520569597954590370666023223642134185344288289482632303910063811993854948926011004574076972608524656337240446530311749550317291080098028544977461527134414333309128647866039298284601362652454302822303107599039499118176759128473523586203497636549420281077273395239375423237977907232792614543988566417569049158997912416121277823094248799389490037162790372298098785583601532526813087283812424375431717422317033052221337032877906300009961292444566142291168387799815890307914743932310775530206956902249800359007216037588867720165590652039356931488338161100026304835946835173243038160654226523484299316826413286290279527075485814532092399424635945250201812521517099273495428298661089150149100271584636425692429175599285682515082328501295280321671546289233262102894185320741794327643716702114202758051325246735465802522315927902276433642290450436830975539358013899162509735329832923941812613300341858401634281683150278249327408391195017164413807779906165728803746953638068460941654353679341414869373925342846458251074928192503970169665257244522256287992590999365437054253594939975515467667004269099269461789017468162701260167504538192111482666878727746025811603167363230967073418338781359619573182739634774704735456523590858339771649839113053627045690537896403901162451853904406754629269828948401592860984880137845668264201928950722896698143752815191376499607703181883259252059904655947507332715740077500751443419449490524447298538645566908654488807102450695933777744836386263512917663748657777460457886308600193043396696403481318466994195333088209005652277381006884213480160010947154958737191627396158078416207298984838931780717405232714769367904130843449376402400794600344235429806316862315906278576611412573378418566016257918482874728623460722029503860526663344413530315119157705023349187592825348415334290684833881380299257050339345394995906869010387170333009853403526989355280355771878867522484497902604655044343112589312049268888249206196967192959705321888857794982795955581742700853614543655508704388839025852067487779461647372785632728085703621015492293413900246160618991876904135814887973596921330335139607983109810519414104188209136900703939303210667360523462195269554871867752869867635662704853516798449325502788905875233343966956631412070911160325656077525320587403851362256848100607211014068479453928254625963212945375965699291556108714650266923415763299856296559736894807866177169411668487491942363404169309908580382658379990005033369481448773803485025334484347743093649096451159544126892518782532977761321180879272662024916541651260897600336527608462233635222947013817098068624430392736965403120942880067910967791809580390054635570013477698529695961621050120876353905954035892306380653236213727160555438335364679003275926888776294918374376258598084295382826458390127352622700762334070728381339936370505260650355004912659405501523604705798094394739608113713219798045654243154230569270901293632765039727442406905265863012957425164207441095139006787857806058386757127468891269216193710922935456043268387351292644457043684565471762193476787815399913987216926171882403077771853660573094569384650478212668819658495285305917469547482169914671724264894471202088856873900260384076217011370930290955536351293207934214899693089019993866105963650954299962481843069745939420506226951424549393640528124318535301138895646893485244401195174161989086205625323442357167422223989094557410967596694462916928076410420469854285137115234961539954388482815265842669329396662218949010827307324792292944652338469770201054205909497619045708547102296716033812607836496406638699411565841391314271699880437816795410573418406709593116991617984479878380076856192519471829317545616202088255387518174505373384846936415721518541281358170315634836704954243063493322521733983975526831247483680450645604441265253019563087133046956695122307065944981051241680066481063627043067525828734210299998909218140092674365389046895425595415084966570052379945262564252381727147883341194363703993536226672978266097095647559312070549125375456152473964412226508991824396768345412949532275955279692631564288757204396618666748659657399389212179734593608016771970167252140679951226624547834460359329884989510583351564178126572538057787417176248941536641031856817246022191915054668787313087033627164333122575836607109244954482050513556108266630845096620118770156353477061362533600229468007316283261378235192725891843900016724398032507402179123745919073566424665913817218180881504187639204729224458637589497316677699948641140248996135815405769675904350516889731276073102225053091946467291270819437324020416192108870151059610168359486370248158819578475771266215199158061679930436256421968453285195329756648982891170391514084967399407072437646462887493958413119071313011944525891131500352315205200579939866818744267361079931772919800021947542397452120893377010542758412148432208253768498673747629492357700431400248385629242239804353669624958129973194593269201309085068650530106653091629370483694705432278513124118465084003243901052728522759600709294066031318224297842491409575815924589518120556915093915441905342625893750119639677793680770617419684677128562644458190169554372727068655369858992397542179751350515450432508102829459484521221880660133067382371069807676462978302378947791358027796762885629646799152978529233554348566941681094351641946372949129374091264707337566599921356981550850632152475310787146574664587334897388382591081717091292985887101870337055244094008841107144625530306891078140920828774100624057670201231852108415936759478888673706711471136985299992615286447007022178288842679495007125823012543377743749448023230178457067886046744534143035582456267879161846827981321775038227614371720326755132394141754775342331914256262906345086417579310946824438700061297918999766498644074856622813098082772155371617296830599794782245813506135007587924697892699753719423637082798293800936437301365487804151658349370489383577280996532589544034316188712827511167619664164618255874017291255337445481835520481622940183905169840419915779721764752261194508536235072181476481047111180220814895478876888051640403526128599037725068570554438656747905254612525611277078570751159839348933736614958735978040456726167870934384251750122630787081676551879388246596997519874809377681668729199851698058106801779673163119904371418215119686538703152538553713020910302642286712749293661594761533081710391532504276706188395226804711916355029599923507092545283160748904828832281971795734900438000196210225020792350737753469796282833289424822599018985368564250188997005852761932502620997258477904198201591428749621308997976734157483226660458166197587288592926859292428608890015635636753906624731603722971849573153790357895354440961967025093545125653573910677392909395760697163612000941291466734328018367445026273547101614807899196466461749004854902203431838706420091151845306410527283589944533401693095066527338901586389516807430006758532612157105971995127510422278603879476480615493292888377998187896743893556941008640562939968490072135939799070860604978533457386326399181026189796489613029892264479425162371712676740072472029129668727495670580934111976844868504584072392856785273415728689232391595664383466093411540325557632203042198355601241850038872684606680068349048625097600182977761165502155725856994220873546075914475270397325601910421633476585390902163759752145039823005686306556472430241720165661519045407944607055593380907281980797445345749769725747293001327151220027496089719507436198018308945305336087055305597667933388547836092538534151425310392703583353920436884281176558327898810104706533680936565600322666873055209881843813144862079725483481139944241818132176282090983071825652671618950859918421286309479300467389017020465365745208706275856385823467171680188071377490985311042430906330975600779074404650939617200626837183580687385211111790713311966663876972935204226355564217458327552521150056687461746441516885755530240641990558402240560672665393517551764856631162312734305893926092475333254588067646616663680074459496660263230260860578600245994949703265961205131470263984286106047235790175304506044115351796708115591562936567644314808280898415687839220464477982453813822864165145395125308122659722241498831705674915220428342185434672934884780618080768608118143941978619338500307542256170806386684469020309402149468358800274936353639725704308015229813406285276857438517734638476351434034962977013147690676435490518804434763407057812217789453934452848053451312325288959429182603376326106181551974992797481446780651212103820558246253230399830479083539516198649464105151947445380665919177012398634140536600863849076348656465587466911520414854537943695408183198800628876490979994875762532732542464703989338892879234883122585028434138243658549346562495331175465876404376094836267738257352537771392613100236304471332016086419712761849303283537536762356216011620663084437488483616292687586256374978704508967418212654343844970407619167007188565699176165762790415260776726668394525350612531131428484048131167812931639230995223869415808150688607866732346214332596689856493024752850849379163196371907456980302743933508998843341623158706617714024800784976003972976952195142724115321914651966982250727110243195266249449719857481814297564044273942010245822998296393825421902376298790463405299348821584444864224335593372708047104069455006077939705619298180515569291020473763155596587351247777124097201104338710137689878141317188387610339478816606297665489335759078172121046749368072326200320912822865808456885586492594233615339759197071065317838454712601046349620710213114420224460025501030184651741203874477025473304574516794762871126446426856766870315564770653489259504674698627585566555001323521782661178576240056560948381020302769655518111314757948093085999365726347932832531504916125315700186291203512000614985774512965074844538976213640304006434258208227030831478693121322013125865208969570394371079324969639577247274720630653205287679878838542332986492739323932466727284745631761217882833943130348337436821019220923380577123064970183637475241570622870079664549044456277190017221004551106781374856662105558050232655973709043001527238299483377070652545144504065662365561955827794425297870890194540699284704942485243208647626587200821240004727505429358905617699777035691956830435177863124595081802301378516669085007642651360079965151587914122247066235633202575940898758810797720775170750233815179254083600688886277692741078841985806052816228119358301263956912085454234105906216896250145307764296872538141462744122178528664538009402199618812558865918309994352847777409795089942107222270538460147716621850905959664535479879860725624416202292160343111730237690703031321798732877339782592163805888167212628820965399272760738915891021125121842422294543864809847717083638903492096247484222302353278335283726591980466493966964485599969412508602455988183461133539283474806378720148501531347639910581839227381669530281655912702718029231804430163679980294301158700519383835231237300629662851517339223544183847797503907875928417800946727819390923145209042789789105167566811225593994037468450966162357558988547103905947282101125928827146478292010270606425162491298899189834656814704411653630522177001465404320385272495604798631222534517739667975725299447685137905309869339017799660533408144110623225031247242010108219224952353142958536429256046405205618938715680406977951407836196962566178247011317872185449881624323700793784097673447747485955289231034317349821516041014066144673093478950913439452274623459517032235465274940362570326534853077133895259979507307516083140463296828110527663703134159046694320555239863062556128850157339112309499908868128750370732461670294573027349447814508261351305142709929884858149246576853384212333592292488692710833206290234657184501678507116156062502562575897827562535295806651569719864828808795326582030539294647409625997694787454653735722712569939657540104240538528846378910881171155436505080119272665383914711315199098012734915917756473429809029246362689102460282444584197621901676064719940944576348775185335983093158833608881419205956486381761583146205711707041674958147578319665464739486448675432404729858885433444763655057820710641459377302583167081755567493980302143245573778479008898277481590462603112327592972311340026275415016630835320779458737832840889957495708058561266164834176285865281257216015560971613113616627771502483437121826402093868835023283730558388744768930492746232602821688541327815787593306576026150775820461237392186860356186899383229112550046048924703618762887559721459827002913643381197161432095833203789623076204787298577963003239903880168485656532489694122590369714519576272210307724059806127924359214729692861089085239856401060015677782976957864250226275333700018805174093871272770779246298447033316786264531486504209314359995858368706143750560571448060412310120366699297670241769400250085770860634801696121185302456001974299784552108775622123357350514405578748091601856637712298539164104869930873856140173085711232904898963529710192072222079507779592140746190074115933076363460459952386549968273323981923433629240833271404979099531081226996219114629599710066483725725386121322278807847834751037189360979559211073756705456106797024203862026724858211169844846092585197825931889683264261142243526761628649219764661763618837830923692291485608900183065722930000470454706647927886807727115296876967107041676380458454797823179885766998097825555329209669936352055270946653907941492770531536825711875893103222753529089285185089199460562404849637462091428083375708935034947795355306259710342328412076702580340626563359754153563366696443886390736586576619726999373752272093925875997986560303899213485758932570701243885691963508908860901527633451937472030069561309388027223063735481886394191010494709760326602820881042459205661463744283417564213399203130134978302032409552648300682100445521489262922910402720111491599782298028271235305062406545425106952453737879388821162685515191648176314096404326321940328285075393645245585857985031285766283364314333050161746785097650653257455409314637586839768803388309082270107062159776467022247497973774518895545681910004618269768151492220277530786748766003576046023741608208779749090094429495462098459330594753313293189005550119057128625127234897224167346985786636992567145111952338605239670432235055545878309651976221423460467452904522449130398444227093109809186339367990605213644192238848660188623689603679431302098265127967751554133062547454085279338349737600764400409429370885351638623678667222557237326922871907607810727236330578582329312683638748782253810369993616344960872949005637696294556523293455677636641726278776471481393657888127709449322757579647352954127181208570580800540659986634828786777522703286327058688094788608382323967250328225896908101745362080467789176977196967103436200339638243208874294918178039844915286654253550436495710203264475403931356721477895912185913131103408517669193714579778680207958372153247066201423857433216412963248483428832594269446681510889473287011773200654910071637420987513334675305341196811966569298604381262100366075246738910952842483677283859161989685952952151694574385017588553440398943151888162783950382033047044387165145298089934499437992796578025394753918771740732224470652896332780267076557282839627999286168366023179081307577111054588842110599861418248354001077411675119867136242913567667632331501532123776283606890790537342157743870855556516231934608454067600177831211406977476448698680441971477978541178188412153388144057295330200542500265213876092624570740940166413534228167879805234124561107163669189008843987239472312350005119905285857859931745687359874767696501688257805628637268440008099037719912758441015405108255245344287306509088437764435336664858597873063542561087360617473418316090903070981988133800177733404355395053280183182698416666539513711268256115406916870407116914230563930801536213832212600462794144884415919435199574125387300521509217937518842895811764306033146352809718935219769332773098993849679204744155473944309043221646497267500341653450873116028271906104035403585160657765164550542105808108868458035874979452949560318590009127002464327236464742082700804429159990814656157975405892072379258358813431131723119936988485270576469669140518669724281427881360306000982873788221054125596232457086482462453599315622774290966249128772578809239607173812709202312710937988882290874945041090678442571376935204516609174854446213701439289219786593133588653622129306144242194992362936466602465697940156885734753820259491068735598601150180857199005119326743486174660916579127690752519846447081385947373917952061458503391789307528568152811693743971137836489166561090511107963790170380793534990902491381527569640300215739723958083394961187448336402261667505161688233351936121373180723414323918525992743787731615078537822717137723051414797641266301850030614507608560795332408484083137496306671808442080672108160122493493961189088710925125030085165337238277106183056911335761222142513448553162935885218106404580593558131924829185894766257157207125998334334818796391275493858957568096468811102696217384289582610640443686802346353858542313758154844853383330761919758574006094961982348193254098087701793734534033815156251286370295790506294630041132557992247801706555615317852259567526922350131402582196902405802471232081170170733611170542954887032382500693604351752816775180005899554795166739708732365446700579611649476241271226659052215989651979511909240009951494663857070531093031002289420230257095671467151843010103577117245668970441794180572398845608281834403114016929100723357938403045301991439195483984035945748505382567698916738021244702778670649016334306413613964575902027288172092328228961512404729011299579651854405315553227448676848139090833665617089902358339278951012183822713604788716346642570838877966253261097048497436068567953781557922140442158767785574363292933108191020273937735991371854317767859517626784461452837727328486527087098871697417846343649500254090778428835330950213347725121123917169939383299149409419133657619462875207298007200610166408637630848927881604274968913106767577933491935107499592271730110904780699120614215280188900661629620119660910236873023193217682385300384752715732386485639474903971184589614859306050173244856700731101787348560064485647282570430694062540556731370213447970800885501693107830798406477263703182102342977506469688936296809389691811707433137980694796620687806243030129103625924094263777139368671732659606927722175808245950030185365810308668069545961283931940102524872858694071455245145576689963384253861943585592744584669466210030303052164474729459027598378083962650057698709309373950946200093726736723246389595860019036508402562440684914328724569405991468606188693880072730087183139075650238255763438517616150412489559881055302087678877160309224115518889071633885568459955678261163978294370769955081925906120636444081253171733544379823211623493019018869994585442382203244769872191051633884433719610122254584221302459227621301054387932613764792106615197021779072787079969629134197166236769446829887256829697170259380483891691548512634482894676542569348245930740566368107471427180905667764090822019532461983178126822032057761099333751906662120337344340953243100150296876961173314442829854198067160119290831725191812066556894281328709110858105958473404706317059999158869099642748387199313870083971295833868544543398944775696842743790670016677335054663338684835736894677045323871293270917379564042274881947345074832551455304977578941540666227181264805184094066680043669310463419117221352011576849760261003662166470213612028170894676776274065091419325125283827113426706859735842088876323255454844984185134085226978569648381830239954553696643221328044086167480334638941472595543394400823893163726911711380904502073531239519803747180267936955724015573311648632002002426034300940500974470636599773312804125273843102197690351946221778351758544209723289069226635556585749523167341654784703058968176482506625777226219217710265000152714501595790192050391813875812919186197792495332300893699195334010044968880118112465686117480890837253279392098603855600171672582090261634970427562678111498762934865856943246436511216677585277109067509723250029130800102150439010116295031109180370929498311067617764438104910429906308302152917592426371516188645751387044527977293601535001171692589932551625700141658267848583785286806867256837948605954465961361920355327586842249380506313273772048476514010155102505569001127590710334603877455194381276685687736778552798488773826419411602503721015723522461462872356894115752638215420697248636780075634689625304711461222997120778474378804486889740649191201956104754130754729559622889771741407092197009673030448773768046090417621435533579053389955512721914192317209869304582230159386977617616545123081980116859021587339072173164522327986807196083271000699374030253063307401655771725276683527757463683651546141401444226038871292513304108067320946856626628528458301408042117976120223284314881415863790607799116106954850771129764965578358241379547218682630700936670359599490526248319126938160568583481163625067705592787412816182680203633962636741386425635636990315469103030051228819603398706072477276986976431032072562492661048806111892380675807306117753003355808907134652562534917517669297058180667478097229526799613593878180611523160898506464510848674913136462722158833254788840944249610912225582692663007770139537583608380037038466289949242036819454740886912662580971655672952857219463244384845684453855330256831360531914676271132323565588164936054427920572638063409633152580658786615991809452376890344073828750969609230178095571524830502501778440925132674679183650812340767809759005911172486700739243108828620286410635261359211318553637469384624569487236896018947566465148979445376847969966775638446241510145670110052620773465535933695678805054184487952031275016881025622619618976542208328487901890253832567307271143806597161107729497679816241745864830701171497014694953741945594891108450462381983337591508789819956199831770514934907840519755317971137194530082825810865693728961714332191155457988149659728628996706448051875365077583979528891374563080862609715427357129048661737849202205131058806775836850896803241219533849435674406712542622582770416855346478703417497961724508205614177877032847401471330012141171747863588018637988478393000108717841549623150081696603735196086218268464337519491210085975411268182480777734744914632098249210155600360903624744274366696767796841236590232348091978617746774540241445541436285076645226780943296331147644325563848543020141759434704302436427144061503594088925480383076907111030982613640305351273824081552367954792644141667930177064861023759219715800103627621562164095324226870845725448162217074665534239163355631650142627520798968823164738550474256741232304948970757628804644639427466701164980444455039101405300132394765718170788681504815820758565794202758079364177738810356118609221573536381730443594557390099086720832842279057188400585044733338090565198687136381541581745504061939092856286710322066693206736935357872609053364279046117916298738772556615999022221396856824720900546743353419577448228082873750332605577898187748463853540160774452842614374794988427891184653888367482030046457811269844611653512826451644000573948651152125196669101086820667486688676214876753389342223462141787920996187267675720842794432287901387806525844245591868718900128350820080185205414892337659301792069073071803973318823195663112727309876794659352241336513592218295010043543542766936419690607188107865783480143826879833084101255786348940014288693902905314423271535265006218324161818850998585777357872972439213886582834578391377310237149931462011904040317181054978468512629515397665328913213365818881426982706864248694655660374500576893958801150825259645208270750687177303831339852359499421080800042309905495512522170628259098335970393996316143490410728101790232608481387012491382639124562001067614524962396904412418008568303396552330629093506613994664300571954969495682288375554310808284047949700377806593821139772182876587098237529809758652926164189889389472626967626589863894755713602061498758781926412851033046894643244996756274196090720084189037179325988892433135012268649212791135607211748580810678081857353237186330037134323459089996903116515921295719509073148491493247080225278842456366708180843177747830197920221611026904714665538861227757577113701534931274492543959977078886079042746166914010703268665812059089480042554990140146892176962215098162818309187203940687657580140353744544486146120191462854455367237855513794448118849007670180545509254590844340415102184508102542012196141619516135959757541601372857945836195135661593284353457463920376048630320509373641740498415139578778168973689526882144536849871571816064831312127574047751058834791923123021696799871593934271040868166853518758714864292321961071291063115541291312073192113991604540786406246186739857598943787232127673375141308785860534191500553413422782000850516069033754141485945732427903669332630184851602141387043815150105531873000672523452070410504628421923771327219653014970345022363906969100987088435754022967750033006307016299738176306702254579491594748240058928751227177037349367945025690747989544069452873860829154868816524357363854411874154130096663933657376748421902231311116424746201171757056375790057047172501194216630822913680749824759655385439309883865840013231444519299567597132046574677923892642501082775041878998586856904335705944389142466359986108443858997367458226990376702443693042232854843236019272600863476181623554480995402393791017125319880450713186307588929275052650922883624704532371323616921104307093102060589954856771869606078938541035207126607111909403104845212248355819839582174558613075294230537367410054665282643058474268436827689020433035308298913100183444579053701163487815462708057415577650878655996239212874620545216682868095807097701724098862921952950607547494332376560891655231731091437865321033709704506063810984567550748572039320649246012726920434691488364017343586960638274474224538185970185425006052012252169593860590945938107623076538858939511168091748203300450551714858792483551187697946434262290354357304163095653116782736207725995491653083706125554933294883349939202154724978487016701594004869629173512851999292882016083068981813137323943605018780611223708841145312364428263651573091459984471261029605817254328988490966480378274611010514779181962832492998997044237791677376038818210174892016340250625010713587152842889317954903720667851747870651031213830428351610947550061902552632372579674397643594751114025650423505425340831278620488371375104619411540804514670035566645882880749989126243660566769785006365815189382275948740472843859638836738282070462821177596470525853487828865987847845677180926429883629285775152989710405710014014552979787967900956745666445845589652781198673031252437479607744070424538675380880664638515576752981081180210374997879327542858317326056306888734438532141706645441827419287686450138653186948705315033577826668580812781063216468766718212367560131576295164326828835048850364725490174583783893140444321772071561484333686525209796831279787964545730600309513537109854483775229520090327591343674878876562233071530161006771286137259235048683995549214069791611671747875448919919507961224139519936162474772306163395420593880865022737822147224022677348215911784901375470314869974187720191131178726726795679115276138722346606849443133074150110051703294589570859469303038057929959825882251881655032234172873201599960927976881333811103011001201237339600377657047912367156170441365391872741053696166842607951953470778369565540623424778716808021723287874961210020647398136586003128534367588201764420526200266179775534243126226040461492811182412770436224671749030980596289617214456173358863183310199727817170984854504467158726945920162615650604772773926735079342914947630411718335375473639554262073170378833880718454078301360100909450135269573310762834402938362116612055463478739529409546022490997432344289200423521032279679402714946806100120222492399298822165389422703165146246450921712738267997053408006985717806014822185352771334180963189957739436865122449370092572551663038558503166906556738180486545773847260586496527048346608888711890424502483753635586509146323974439195657455143452048478955371059465153220330553382093540843230723632185084820392272365276730532905455614012661059746810649815959898756867081254796716996718955609042153402107826118209641386760487458141412820983134617451469459928991386166093685902417826009485221204681706565517023651338390448945671832028759973927305890484957477433687505074096444153027262759646675264510004703416448468351669126207446223266591337125889281499517912342081799076027468634298639252017143519487412844135359997603379812751156648010213989086840783559102183910160277851519392567887654301830603383385657372213661887467323288791817830568053461017716806199395327787895283393684199765083765236165427269710833357276254232936760881960896750398141675055088696196193267241294107734112499552729019590985677991692397750977444431615576937785743992293702273582596475182200352792090671393271823460762608541709512245596051363107080234775922106704193092293895499750975703694923347891547288446577816393672584867167834578763267115652336740703755029004638189385722811668397622748367020861637059347481264117478175637895853472666302409668215906786683426918445710676371341831486515919848155233306308196034195774783276154727490463320387452912079798122841264415693846004978544741563888688853756567853206758093211420757810413991359288267868617723022640436504622153978964284400173006456421253901007431088889900153914110326540004712999728419057818737756139380018135890468901666463797841720264278665750995122039583750017697549334973943862868000493099745243866566704218171308811579623777648000652293337399432341972339376017581842690142394855771379092132021087812920639900493870755356072981780659966118260831637471577792618910064728058442667607526999212670603183617468658617968431677945628737673886340064115134308037582681263218637897591155679207084396796986040625893699833006890796274119010591538843054254389427667149055450618785255646060583590511201120454518705221333424581852747829138247744354450789756749381853647627124981782644006831260905191210056947560251268496539984889185370084237487740937224326152261039452000041174603846303254016303200311615125370644481998484898973083011778983132058510413196559393388866387680965211555780022628688745889075372013387223545504386322321681817400200482476040183933182281925916508498752430166668566139649237756826400412009328238277826564146919224917095786130217897061147082582886457811657707925732238110651997125033115019168170808392437376778541618978925387565726807222833554242397776816170899555305849945490377879793228328520485465514970754371776397112559373545045523595681998929924971060438528780009827909624268528286231155556336080303010227582892243418444522881695100288268995156897138685624769899719079198310227171364131911261421947414748927697201494906618624768384285057311173395802436723967215230240726762829103742202129705950327168102445089112739683132462232102070044216691879490175828288763467711615480944559987118755636950120217547447926155426945333669543996516312607643578085341033445739300707768865288992695844696187676181355644095961910845069936175975330908297947204038015937083908324589029476597917300028417242105168187382372702204294717325239009911126570591253227167570159881661464582576282154655271046843054990850297183530236886947110429015775157645784341845681243806492485844757348462520385138630576382690714833207631526445513645784199112043048704517963841907997582326123558232210330402904584168225086796446357276335904913874086260121960322893847729911422198432755317371187155416320672357616610950040419648182280118793735631752859148507196824898731716578434110634918178744741982055236786955728988078925242810746977392403122029965594097315935966991762142521075588953099781986789149698033285612766788303048617119719810396261239049824842336253482719288346882529960554215202451778754693160254549222283804509063197024229311755749817057309666860059435760343204462846366013381675413844664440228932498256897248991689339591922337486291091790880538776978136937662201314177923589894721270409305844711970667116656127156732157842826950938079760991333274967795967470706578659796392516148539718647514429629559116096470444564538386176342942815187575150252569274812176248269549797635628094777928437979014980096657815039421277773783366284786091586203535939608554430960754237315256768067643371740149968308164326414532515213515407338028808944234213085384911931474181115593819625463510587524833472951728695248119132013411773923105892803962028442370451287806009534891950246162259084746741607448737732195976183731387360689611525918425571523390612137889341004995195033519550423024718482417067298775552946648699374505063290079192827928386382034564915919412589033437472104302592255408646079010208754742966005294499639888742272434696585118797144339054824321933918613577714603067435316034610464128298786095104470399796415183977791609461293013133130692966416276706052964537047873470311863724191060111208590907569236808132935642973664643290879512767276522197444407427625485486554317307545346470721007529955783411932432914369465136536506988186988370411095435625292717561236711507089866656222620756900431073413626117293037591853494825623831523948014533671665918901539745501094051540108792780010160762934262770055916666801038104213983524478213539748837870249526912288005236163634664037165151160665674876728102063580354146808719288106952174340709928689334667704993739787953038639042407809650343590914232832172090106402220329379055429361343641617086542943910970661310954671526478062791487847962693035814752018928810735575477583879341229935601555808997289995694812704664925691164254738306470601329083820931105027042609484308429894471982651627697403965108332093063208358217823672183462805162280520979684693810503470517615760600329318553613400099713395559281385086882773933527046380730564072462705955482821898803608044140781355723641948262168861826797248322789931774466308791998870540234547021382720697614565687573421873690203456216946753263671452873130736071722528031441041473703735153541223254553770001893551054979840004578617017114470112740498428318729219467869423459715866155400042490728508064691949405782690316808550699626002752045114382211022826596761460727037785896092469726742871502203860441849980271790949708549045698834749635948864729521185801619680357972666900570134702504846602514653797689483101475615058254176598635475286476837773030650850979930327255587311892160711369526210651929854763199110320819691510086900970420732677041009253851676311975238390274378351331377911885543438213312224296266784770610337832346721620998626206780064406122927715083151783883547188813702524190198131481404572497968566258334022686776820679701074387515717043466109671372652169969209002685582983697453924941086290381857583862880582316513422408365792238330092397794142886504464145957289471951271298964794907968018414395645289395136412240574147861732229767102332585549920687316494885364484228740800541537185459561020535924003037792625937691821210160571812038937981237708088945823386115968717135056804561770957171239024015636254609381292517540623690261723982657784418837236581892888628122439526559357304178745970605011366114333596634370071359109590794739598270283347869134981379808593361119384545543489502257657331460869484463873021469476517661172867282918565596556997801994180911208531277100005144402858338681659011886975178194098936148329344365397352919789663352684301026026039988340885388877193040516490032955858572958904422028267482942864582453410476789107092438138118251530182266555444562852533916828684590928761824785021848381245103994902744667100170516874858495196050392839476848509136601711264870672031589969637716351834114275948274099930476544446432257699549202789066533219107465519914723552604852011130421221339449085096481418160559831935213909991443147770869191035854427640048973536216624771893327492529466313341772190454248257057510050716664948008457439977568664234971102261307387211489535564483841313360737285266935487940844402079491837391412232984122345896304176013287681196245394056263412922893903356342673610163716578454632069333842188681894237848943159837697477654964576911248328133801046015190088647390429910649350759299857272863680001837524489569257483267206723862438043070425529069603306287842307335429936680950177939928092860164061009099287076945239513055487581190114825358531071886262905416892926238276295617507747070376089323997035735858593066860736458300158855885997713966922664214618441977147300194160402874659901612444380788196627150048929172460728457239206363924451894041886585054923116588158739345480406351427586040175131546684906760630599189948156443915043851037241827061396446423991696098209494397448638195367367220458718555836305480184941366340903499120067683369233989028099375433264937475449032806524939508690777763042164343526766208624445283108950944453555279181886781017319163650945306655898285586534144933189403964047158165591186302603239201610370693187861036089212656303934263040326563699076266120124856034089248100236555970476986217529908572006366515690062501314154875362968175699998016463181951603385450735839401320230343792528946751152987641627931597681918167694468823417442898766668791220964253032785307887636298784567443316433101829311734354993633071061293388237523354097549598156864384492819931657759640512075070823061993990409955842018168723580116935017531101939442749454813427782026364832054896058959495541687629683509506946962917971884292823824204347428541101336251430795658252414146155448121559835248387145931689362061622790780912814107184924969421869767810307540030873477563568441852734763717627171130856530698354975920555243769431869289512559516699782067889724897400558524630926667507572677475818571866132717738255867436208147619417573766031793130541273721080365140048249740914610983397292367574725170777091437161482256675827356115024651701264975060220031377240355224655250719119111533269080061775620477651644946338370810726010400491135431485444445453885070490961898371435298645367408366854635439802184373626011263994008451191609156297335950320762346920189890221965836574309446195602258449743429620114406601467839866690286273526415461818325003478256239578466789752638891239431510024777613325025262064180749707587386722105541737592099925112055417177539040697051106868213740744436778800196456021744444594086120070263255430337973860633248821768129891242490470472209204121076638169816032835542516956748000933906572290368526972020462405096113842344124772314135468976252701019319395017254835145003015200693003994203887104433984489712485625399139485759982103849524775970996844658379533921872792399342320700878043167215898322866880124373957547491500517205739124577791761657815534093797218607199577665136788170130376690123728313443698448238588569912744054270093366627069785376549115730751416438318240682600752955653897275110581788521499403014533716838955872020963303984070822501158830460851821071886415362303237467558422281448129560225387386447621972617188079419854996810338107129069710713008522432396261523963661196235573539458260875305440444626024857438123544278858492267038073257498807026974497471641509618485785974666707669882090055721454887310046118707034142712164436147667294148412262478209290672916336676783545242453729285618677347158883390911373255391573954187165402053562884451476524958039552663996252576161232378394096146707156108570576801925626310846682755615859132789239629248657136689777868918291644686098466830886766533113628008279724002287283577312715566270950290831189804202309722459405808925276909100420221751626487729908555682926078058880404943172310939434033235500789635804358398853719372731722002923051276388215399978858633686165920479018077146411300256329241195108714010572770747766411185497834345291981677862961152097674125264252866863851205142146480356309916959019076044405918405263245439583533906859454327572631206711090046048975458176667743153236422773753499378818767561983490756818554948935957680405069391090710942578446274267322793621312262584039465965799246073156561186822163974592594154297441996302156453112381726478252071203943277579878643776921856967629780401770101624564470567321342443269383290514628587854484509810468222396459800598528805427213977521355049778097737669851563406601369691629881534677533844096713216904212815184030120509028521506137138595748729479929273024742886897887261819697411215135907701666797096779666202667843593002406742750104271128410030693627374428222216645702755761843079047000683405032575532692282658633435514108260982309400457179623467007271792866040933873212721530587200013141599860980562872977680618994476036125227703383780800002488991769193525268505256863756423990350015040935388729516941744815989039712995332524912253558882102502676970761974201084610410338387539739601916290564466835811308810943736475126754414327499652444310667709689428023360789671673319289755431791298271110013001954042372321958678495879199640229762485480896386168636323448806568962444558262423955095533016321650254448993702424742932714363735129117147339876662253910335106188712699034886649434887698208447009870479905198504134177788335688327589740362885716900391481087236630148514759313841714779377307687246143018660221542406841080584025158852822681090179924279390565614293126919605311319044995358207222145818875253003416554251249082681933772382223301851555308982137680306096844369613207479274618625264730607472181511624755872307530916257518817261914691892328289922271107090622479452270874011191161609909319502406353834980036209539869608236040676800640974474431210551795260334749999884435844698693861483772766130522645459273336603745714029331187402143490174600353784671914999013919657959232796421192223820331003866049264931660842522457552857842820077067786983708499154608163100664971279516833463554961022867610285529214101985729101924138138716190185627874200423106889966173237660771982225384872797683243764722006185513204683740986351120839936334959071444730840436139333386132425082287863441836664830161924313919389919011203754621791853897378289650179694361118979663822021950901830885441821788715758349172757011025311738870757419584836895888590358746754415168327101520098072506202667791065337452401229168124885219705322884741023920751181431130294873865948508740857776523117623928090929393567872153125157151030800042598450507270591032675952175414757251531911409031410009613741348688329229418804589926289470928701893171543013640746459494310178722064012093891560528710208744951771309246888968917516743002189933331955167091138878289568864040472115817491945932913265741475295791632030549278998860013402400098558828868654621645093182734696994769788583625732912584979436205709386031862698744306941282126708996832832855578384740618694472035588211694406063818356597906063683988242076199540782803439318779146101340381279001989048480013889472739212839960184242225475612448596377505861259535892936288076468990562102424359192894139453936305381576337677842410768124947600742018374306117727541826595296921019427938722342570655821512276995065335382616785597655782418309943752663285155368048029414824649948937743296913832162825939592119910796019802766709916124840768679617675827543669504142432611051231721093882366444997923873752873407387410380731306392864887744504438389451490045934207346695602091571430459839483025906676821415601823161193656137664493640591392933679619607589267415577627904202549815247632251460791339415667066726586515500865862485412371991624007638055022856682253977524878208068362469016205000354147356882403279804486464530615367196474219729570460242748583885617177542427058479605523342242266841814722269068856480613475468813377827789736299427676482340155786808646036849291196552528472858605502465013818864614686878234274018769410377046262300503469070205641141566449505834979726736625000433932295526023171042840372750972619007049226272049814664564810095559984425954656118656229743909873399355281308622518557285471961156348409531882867322390495357513996538930914185800661882094893324282156619554063108370225543831621272004979358851764876188284025783961224725906513620964334202131867467854026918088561474916651563760560662457456130212608087466502868962702954986147420682029866318854101267727755109903723483746732585664455926333613247375858021872380386214524184979458978251349657738590581952191236339724019026042776234945846790908634636996348444963374760688793959116554746182575974433652565365428437868297938398760123250331318529343135572985178454074059005744724821548300286218708949640907760728526070256841687400064437446893124976251734872966002810081851830190816323989396626180236372257960002629705153153357454801615619061343445760792556432820486022518355218802079208409825494548810597007463373346758554257680774060935604878769074292376507126269547394528806110336677567791809451370181730930917526427048561811483253916619598787192338850086053793183281144035772632592840939213211812556877490546917817591574552750018138768164389249703518457108260679746472904352493159824363120986790905344981443447465022516387423625326954825199985627134026173417217730183187107869710518407263442780232115049774052359350165154875405589325370228131737887216932984450391116235451411864203913161410253020846438086732386794712822907368606533385375747168049374318490084503757231545445601457897797266518544701339230712465840237647353374169109831599386138486950012425629722756150280258250847103753806717858154591080587226367493848484271623700724110435979231489614922863166504662344947732938899457775158068963505419297660049696376400311279533565955523827690724703193596978044436793402411159259641449690697528765606613764278010381306936116921742436202115873342534030669683182911820292545964596909876812935323960413093794197751324794760624646441095101150718655651727913542877012921330355387930714342090495693483005449226728291218372885923508530750737734429203121059623622166726299309066789601660136274406218967000280621913488611900214140201708159539103390288702202361451805220898857790203956411995340128877205309921219658921499274207919627184680754586276840450521885834486699480468820424087069817037188063907622366206919338373464131230852658871919874943192888572574493862834036556607791379568088839562863837564248236653112051996264363704900264461476858595610580844044250461191017518289901264317622286069019935147423496056894209862744574353233453947353320317555218774771126744273528065639279628627405174999272610347803325524896467187220933188579205133333007110459362356090903769034918696010690458662485115053599723345914759210869247298072023788986199113955600426338909535660392338323923966859378691726864934480512433688281064591831582188124034207676360392152189132975569970604931664809260938943488286748665992396753118571307494531735889874361220273597397422242688447845141499261080119054189193271507681348866271945980809261037587276521526608764488702667897635241139953130645504481872807119237145008325854702181998885799748737144212416952761652677394803668436092064672268939531969369909113727082363712899879281709052851822851220860165444275607026516590647180629131882580919564970995223288608820984718985469776175341333056518533709566628561726132449648859262612268396390235094717559753776222789331614617866032661215247060761766875891855778223899984711580751751147015444884712106713824410318620302086487292440295401746295216089510747873542146043856265589759753365769109883812398714035936160567585465830900169487001946784629718404311284326610509074430228471212438594357283197286022776057998978963342354514843484588649280108308546478429129525058128905929509976085242638934200502410215238946232936195563131838785712058706817698285579117810181389301026856465031845145274526777764994558135228677757324538256829722103422812105315295604319536313035888348451553680653306478821135812088202323882588079280864878271283166646601348394679034191185875899382154102453239964621813604329002002791169935381647851559778577916665184845973025654638500283538343948533477958385585139777732144102522074937425244794499530976614795351317665102699729869683958933897398942721645000507006091014481876123451784684991255498356052692914670480988340554813211007646474861783623352568581801170398890403611248468237647536622312087825496062936466679246149309327495049173780244680690993769642137105404810862952905589637714417503371330911725485940625496702132122759783002454545296808431263605702321761198028419983480684212976589673226759170300826986341113808782139613628054285061719003848259934882924767596457363580469049204345202288471596182401087553007526031874283119326742683756760786986890116737418876389341188168874950902301966100418935679708802797871231132954099676389062056150877003035558798666991480376902386133277760995715171982719660464753493400174113091932004781108618370633292595597943890789853572270021436431515228869548552708868085253554247265167694788988005670648732607357666631722223330555996504407675804011471100531210709979940236442540722772601167917719763666169049443863246636591287109795280121578083524505803896877424640019232196685018630495423780959870432764566478154021559809824782586044433760958959758608796335492383777596711910973516895899094013503881079161096719303538116879897437222982428133660998301080530251934044511876318340669535201806857781654977642176649345404974357702428258562321694149860098377937933799018162365599328995021683189296753748109999957198038839696416541241449630212389500294356225501287998753850623352429998269135440156035944739953202538986982576232524471897444331725356131274065068925256820543246292541240236166162081248825706630652325173869966641178893222127954825542487293481636453969212037662052884261634755475384021144027332377113643943127960971439913945379096500182730933103068376325745629404559063840537714985841534717449863004827543016544936345294405882554424972264670198182169733691692766933443277152284309639503479179439010686290030598851320001602417076746816231727445862219843551048041270755894480466333359179265492060594499161037717503215767397964501883273939655035982931582030378478152640955677064946609791243635220433339237736647643311237604089172283562973994320601931189063460240991539660555899688609936513410396362980044526563527964661444212005921800435428540432992564924408189531722849207453016518546766523598382523322156853924965432278481478484481823153021271559490121448627234780804155103026237756534884703885311407228435180978116485020996228958278605433656823875760824994347385677461118988942878253211484519279902278123212359088407685521991628630374548951081400747630306721413675713019989598125292148254440227179680899908964923514347165106268737584807989952704756733143687065998710649985220182468320686687027878112419472437888834560903854617430911435873442789101955111109133835556093803345076196350408339050375535282046615950087002363368546126350826903052088988212355688723939573758749002973873382894692737321077348142323107589354849597869536700021380441393538899981828124820593736950219365698866416653532220704447551337605193814361029944698216367205292856904732693425186056535608573099946156291387029858128472398270622108889767291604447492386790776807789487173191162432409964518144951196898170625330762558530931872005163277901824686834419026926006577969345672839795704569137265295192631459338511272336344024936269019476129071731091341172072375318952129347453125420822226058442877404726408388688031892472194865026883211583610420068340556400071210135720422645477341191374434950321976220742684132432058794032714912525158931911391509598672113855508407136156111986613933032493987515295811217106283485522449061909621945848653950299785984373732444070998938576469786600460822244862279273458612229556220358556192862383965228779839517237572114524396989672362161684228939236543448122034091503315428051853552235594347924192695466966798029988139134704713134655484455807223026789498845531079455538700827164847947896293692112066443032804057436470065160311459570675674121840766808270544855735479307109270322951217534505493469089109702040012949844636233145090889921105099779977322139623194408740132606942501526870737828238322350757689683007650480533669877621268291704688303131013734764677417870479080879687730460793663488387754061244637215562182113972838018140976430875216646001879748004442130219458105118734108160758554198552518027036765479178165999441223018794013836208331856811484892377095835280565367249960273048060202353209815150967365793282442465024138833783793548470029638760697263789240245673661591078249918989006947253375919186528599903946177733785733601440991485327875683336977849081140487018214961479189252786807914037927016117322754573696151512912929050154949832665843398773123897964732015826245437924711399442007251362272544298920657068778226861703698490078704281547167929077487274106051670104438774361776125065957864276075258603662294952101702355354017428690426272286693043799028423055318825541819424147752708963767270638653995599744386169860607197049584772517168096961965171242590250424639454567862204102665269561637256323681794542993413304841551770481770013993334908033222658862909161383665919686139767199281934450483081084291138818159800767264063156716307856062640044691501983214631392577999535657697549065519414988607239249100285122642200845093718285485108419933569789966163479434361042935158287979580254690652243007548940693139869235551914153286976144855975275404189860658985577510811681119475611881044020440411731628680874270048339342157110577276642899507523796519702888353660504299831322665315802104476441435899760578128214724026358810719331129246479085012913704840459068560458028796432094798911694084942726920982532866620904102998555894050294307482871179914311737499630375585589545230040474019318617492235801297649163083849411752295696737961494691688788993574420175481369080294596010808940189898235881771066774780198872393549697059055093561449831528617481967211224358714992225357878634988496249999994741507992070773327927092889248629125980319316304929608780088995293533608963726655120066281623278451181444330545633169113104140102334312121005387985696180104606362008712212886995247851160198032939815359925441623250115409392948212501188501524151326039841760022682194517354586595129333143737455462600612063633336315322599293839529794648160409615785956551397912443731499317222663038544857430727557009113701454998729010130501111084586385770401118515014848757950864376246645285204382443925603179575758608480955581018024092233608487499336087671904220452539613950826285441193226188183743823282378608533372887442447315387232731023233908364033552120001367490832299857198564398572244057924084456191273537186191654947616425690499597407022630196139141859267549111071165634727017892732128228558559245778825122863483404132581371594232816434095272195145065759929713009184974996355335053957869559322292981489358051502648364053982030204761629944307075695727035570279397483240765228483952310990138758615577654557215870333734433247237318952571508569461194286772610429624835920104855006426693995115730751827402366577026107111944380683430387725978114104615814344266686928157356654026907474782755110696585834171457663375763408172783889347496349686274584135967554386168444694637466274037890657281006128752746532840332227214805365897612866508675304943418954543663404724769851810829313441504189134898143099207832156040792828374767667686999073634525447517869725581908517746884437767736351892378571953844935335808895487058170737869374093208154486944660191048973656816304065565128534892278936038651164944436294881384629525707085224853408867862954645886662683795510233365168807593251028648621417945546079749024011920590068448248810900402123324444829170385756788959866218871897756240705148348614313497747254657747440858315924229614691192818653831624656561149104755028131189657691364837966178207823558603221134028096094262621322126545215723993840539782751271151132069879481121006102181106533964561662164378913800005536521596347775989206990000033110679642196980215850727601665959100949873187225587059314614958667350355533169018023318530914026168988283245129216307684157508143075200429770623928278155624800543010579369685101337038771596246875484529066456200863507171667367471441216431536372710582923171291289138980991219761241731141178126990650945427507682431376591743419499595539355072037011455743865521891034961965703892299827838820455570828012316579898938916404032363069413795674115215319243236400267566139204553800577867112515723354883855900193830866531393666420344891294862978607804158320624451377849584304785569693993333525375160833771522198698892993258137028970364070023646157247760616328657109664841232305943302460047239849332395856347839949986651748019782918725497980402384618919901887243135020568510288985770021932357876736434994795337500548328850178186735937855301640768740393757767306652337360937373967233864848331055992588455921190364968545515718709186750465807171185921288494272052144704104895080184092897288087234572617933003309416392344586531288746661907365400856101423268766144207178408678406507603402877342786515698489292783584726152880827731870606924560991094224017464130180607504222568662758732690792188095177069483321163645974683763629664778390388196876811578966496657014532563247313940099617633975323589126342749247281942835522288999796465532798573791570174827560919606919748097178281826292156726561250318343921334462144960059459001957970364613498171503620329055337610243400751837475670089199664980016149445818800372694760330105222091397753123534769951047017135150960378063322439584323492254887973462677516510887787978331060083777730055109337355561762250054392858918490321523847322576657511543653531692164261916221533122926132534502028396837953133394560791705167859341471529396815655870509650499773608840382442034322219106779544840685337858309943938084835678163508283275951764496762316870152548275705431453446609448553915920412945517147181339011205056403431123740076363527762813731881752232777788346745649973194407753436768059760978488829903235788804268575992517199675238748488708649305918254505287095980491601256662191198981009445823037502107287890689429119569069339566041892795629220115459000639433890709225035653344583353390296569105994678904018733882817414221381988377874489758571425782781948340800414280187318813674416332517126529663859329061005971133035326383690402076754031024572015630637333835373784643985134977804293221335954377257430734767425194449133870365996435193585927709406719183760553120529581476293213771166751966590435268066363417258622184168960294510837354730822945176119209213589458765681107207335496010054553347154864761999052560252299516115447976197938829612103361084743619222303817439507807218691382142139313503675229550934769549619556618719234201493599829310410705683462631591821818575095576159693456194041979155829601241459972364653278744709447655872370462202793249785442635372944578414563404835288321818850381188897015256011087967611177075434362279720712699909353145068911346718434089736083090176643968501006887183899669088510851680025559969847748997931730137385614240085182981530603714929384221831734280131293800518996067980998902623781856613415802269823975358166239191566624925597512379619728322995447076115544253459586153980690141191050590667836350750613220613260836062063213892826450365897611050134729728240562511687566177780237661214138936936292752955336143986899782447426187862715797305915753823075207328492070371147335665449958430363529335356203325930668182665984379149024394932456559369475035224754196566338526348712217165052248871564178716893400461927820062105616445013084059888678081255565154357296325618491689249054521847359421607923265107473752964986831766641923229508519054083081633240036174086835817885524323050200729393525735198496724010248842864848609263131321748828309601098378247152562446862993356472306014511184981307075396484524568750976485474540168742587438977423865712173179247872207161329149911675733303660654234331078135468028151527341750080690146446231273112089198166681296959579213622734015984131762831161091154068908800881140336146459033784618266589500275841009625654981853789841773423727760835374606409023456436830474636126618185309754706016868994301009784655638813804502760372653898817717628188856447918049924618380872942131432772816145497634397563480924276814382639957687344867558912936861539871286412828961439499693724385558985657418501395884797613658100177387732979068453834465130115638413575679085743020031762303301079308272437640566944296751056305482976748164419562656353748094763580105049340562146395188474680710321352043230242857762913955604439272749738286228327210221802432092722166438138676450504233798316749171872234513557089177460993944180412978254449224032700719686820619762556718902641863544369048519564813578737203361902315013399349021796645723635580447702596104360242114444009178698666469518304839575912498350584343899839325224816707670197311008498585058018076619150993048569514011489601974944702425375321488825786659148683436007197887758636028135818428105731685606204606981681695590353798302518048218040895297120992213590796549938758836858860940138678711588777266137917762721604635404073680574417344017248832047255947855973643457438159611292909758649178217303966305160499142342474738055593559370665368834123717515385782322787985692278749374414508337022236021890949142230681827231017727591541806244904567062903888488567052658218207268703176309105826109559177063343043817055209731275991263929647246927823788586269239233610597098238995716340526030792137673177208075040057168411099615661567840189100521669020253950619294499231989929447119222338549584993952774284891367025142814436313201514985608145643907504700212789264159478865104326085371643402717103496263628550042007329476754613049269803052926613462141774466710126142162442858589685177451271988381647027181914359236118978581892894882826210839111842089954149070468771238603322341951804925641445983121581474070532699787213267546018644319822830162951645771127978973178335387533224212245225745613009824741084077684422754094405637116773078092302359759994594094691949680681589166927502919871380718890481642862779412108238180258968412355486474292157927651205611216330113251759177976493084804864581437382805617664612582396057868106594401263938575473760754608277276004016225391415945330919772457518222603755290995523980031932605149168156059633596390036884604894659391292090506279040814543017465622090871282713426685025888332626687684448509627686573032166499649076320062524061625712783966205572652250247870654484310419444925587873729661908952310892857075996412879089827006393983029146265734988190185080923883865288174843766527492693294388482013521465883432574701632032002757771767004745037350188954507261627289073307190636885934702939720590011554717941144996157880108569262811744925456663621346626649858465096811782315485526839197855870610034772523596075321354417290924395118598069505438961937268722231889929696768885123174934188601639018129749177168304264663010378653048495918652826575192570688029800553406032567805843283547948572780181538935372978367315468129792649823380015452680205151858843305227952670232005887821703969425428449643914377886542932647842459534421391064196713660193653153189037669669525844489800259500866610220127905862228776340601735268916653484329399543156755575408840766582165562195427885837769374984612887208858010208070397125748357935684811058593587074660238494967436268881666353314464495075362094308596121668046929436569480746799002057175326591459581064562307942222935044387887738325228826500869887237791575881076870370883363443200978451435825258718923659207590514855787311594781522670699428127942345634124336320337770931213125670395405898357849887055351964963991980788924324039996060103033205245143762779912265494120147323380257034133266237059103569455667515546672249912997600220608252242315504932770381800117083072427627099326213990376697967248557847801221752381291184577434699008012168113619192230328874430170727273247697374333727886769242161087446578862639801343813340064866427616299931183937233358416823242179633092404043788604862289052785028934569501168383330489985476927342251509361101450451726757224640743130178434459268262440991082851713053316783071570812534276693308245070775081795233177919581473218490507903420945566206133276986124101379620141176843832971990877417757472956561800997925869277808598757723064456281971201512366036134378769699042979144315548826297148576246735280358418689767649080870380688087374978100650561394517783586751503206919980426499577291605070326608684505883170361381527853470722439490606860874928867692613933082127254695407907947464988228529560552855869394284587437086138668877404754281420674641092897581977674219440408652701513249305744760148072947773303900081076967956373731246961106237554615211910879264004890019167040605292675256564513507374189127767578488983059717193316122294552336325436778496068238048509161969047025298958587662979989054016310890354809239611499420042635785610704441235527656002010778140051038899438481933940221568899372002664064320908760071401357631661916643749102642798449742837895017539579169652449212295077408439294079356747143988641020517017183895127990537841996074386596351662702314495316100867954902200065722829921188553302921446601019421175141152119635138150071679272980144986446454783428485385911048679432344480064671197604101616740486055000362376224526660936983878326176365565958269990077884622500420367065598650263221476007180794838731247388341710672041855691907205696542259012313796881563735390954260342447487186350963901267034587927958185249091014189365329241608615695176303020867450753139323953750069735007801794395783257068682725749236162697614159170645299213727171695751671971772944177553267468197571761362289501079385335095362820378220153739059817834639044580982927191773081991931858802670947641189593699998356216816384280211892187925589876293638616720645884151755888836023106187101661639565818631496551254963848654979785772277469716388261408526802992931218443567896370405916838325677525210813068146649599839898657186941433715090163084118457961595979404428507011373842172683782318654765899896703868614073698952687059680790889143061005041677997576619664747617221076031187076330285186954951993948095685235460690417520855689736816471388699706861560910792781903107246375047273546180753217930623226858189051031812528601029221602152822002125215184408669276202246531270730711491290176440037634800903779925476882973899939380771871788933942469276070528007022982650237491714311303156834602512395522652800750986195343117862938676339302530598478941048664524215084416204058298297882209007335895224854607055371578738175602370749226290523749596757174207120751678745457748191425457284458444827569315160327769924670108315906768532377207323190583434577154965975917997009403524406426836127933719492466616242503208503069479303341954692189785727536471332150510338809749423689006617533197306573465041606239208577516389969553063629771428306792522924108524675432328074291689334748260594777965315486456299688772342242124097222752914027407338847930723572945741127143987744309372967139610619051788173014286630878416078098997002098506867985613239231297796932323162811205818867278677139935620371258840168737332542211827713641700596715786055690947807764451514194271379957730184163557571436422926991952664973657884056787986215742940706377642599316689046164217437625358409657920342605768078458001454385245651731903328004279214131292278545222164510643804436100800825246755106906878276789044746901749367337312219535356445597614782564460849381134866451199118964691100517765078808849794359857973346045122587324786883877108129405397713686092519856999499626386566734260812201138726201141399862624994182833012312350145416220246520663527684919556908089367549341996621475898886505246999413885586956266724195878215215329700094024222823352675914689025811846733320321730321348738743720490602762025640777951041669040371129910717483696182710850734937838738099118096397592762435397691581973185954725560592564793765403617612861795004788157815514780959838746425417076397933698513212215239434740391573261799944820937272755932696988115105768744552369938899626327166605399430845753218273648745406695466275746493111505421423176324752644624168471306664366508852342561842876194966820755876887889370800025299952057171674985764902285840616219839505031167196033243085341365653866272024710254145152371737823581878610531364080453818870309520789104106943211297150180578705257303358448844844679246412069634559360691879196979647915897254549510117523261543692235284723352686481521579892346933038164956740184159500707637283381557975637413212864917238660655958308027728565152399808389705529182232248083113747564965709561211746200594688560190537500862874620989255821090554782886827428832980872432834598677674506391795024422424316568140214586046623106606689083392181693223588979816618055179679343116075983044413667564176319185925723410796238546062104939949636716880441669106496465440353381599891788735451743761993475478882052215495319153007539858107198291357080857213469791601946884486827855851674927334502169844724441171614066017226632089737197540149663606977463114548077219642116548894796556359185108302682284168934013526714512647115091173539362536409586784449003459832879876227728373370919656765244102048374677492241282611071589098783369432323538927013991574198473130475700136729474058116725712292665011440557322402338054280544166760684972826566178813403343783137592862229082977419725245321039232672990235909259792558422247994527329841316753355350031568002739414445645614772808170143643735858533577964270875263497325073281222551184212318386311456931138671998421349591045623258545993437343640966720651449215902712022782116812492265728894642271817856226876316427658692597679942229668992186488815761797069192278754352125628811829279522699448977663077091099860401894893885758227152845810193925736388841464201258637178619505374123126190133506490281886930374509925973383255982254556501545374737927047719645354149620996962564564702501241257374845133145529969281218512359360087891278182939329446406048908168710849001275141004298013917424530989943536928418472764782627204383199815537646637424642987288217778604839181931718392751659103115347541873310669761100162260443137590391556193308915541507157695835347042494120566895805433309003709737273728839172603080164261067060537525430550646806434076635657499741406927433321846547035762269656920864082813655933014808038387506822924115999671346462624006341681741739007045445175337331122171107881183910158118274786812402379604060474852385612635410105222026411509678444527547112199628965559432689407134625259612736894173372966279629132601708800819411754230227166929216622265883453208622952870107380860427131408561974861042988119899980599969494951081762530050708973111266978820840749449325188503731197122565231553815015064106285955447384131216660690156832668725585042758605040929950569282659563861459445097427914879801370507175289272442421928379004629797069364749667994181748156176329456759156930777072973804725631046590925102405926300327132515531156177821739457843050619676471515048453017853598973597594762605325905210809389864317758599638481566450559675755484917143801510872930460673225095522281281322203294840062809686124345528451561121584996392753584472401398468888706727098431560270194677888358039671085006890498968922307687617233683686154389342290137651217896162374935190535391900728647598920027934015098048421349582651101945983754209628176556975343802950590858272782355253262960176661495788145207089037486681261181214231185105806522953015731484870275452264400995233817377709622973811369765631822507608727951070552128488514881899059061774814902941683361471228612020569246149824184615735932880432809051392934680662327573578395493956117765253066888310777770327201305989113013827762715634096396467558271033561287566925147778853012766620119862376908101145749933355095130928887866837260123585352349522474430605953459653027644247886123790613151147324433457921294007935834566458534429740691718188205383926123195670320043377835024906592608815826280702234528141442999027983965501126178196510969449607972456477997569120541375719101619223148921301779540379127160620670248664170258570739766077492205944131627638921791394399685070754593210435255891920801222726695585315340457202023149665048283265265027524394803977558283777326504268097787175572664844334754580218961756491867084568083839673650592068759251963674896811713916609870396672703285411437465236191492141325517870049691789071066026869474749274597769450232473680586660132656129829396714267044309481411889365444450208252564989486285154075951814735601413660815655926963351645480985178251458733190236333012776792294040839600597259887686216026729420181755476632858726728744623974508257433085346913358369968334692770905875209286194689362799649888981066056456503607989956338364577699319980597284489678923098619511807931679060190509374691510381443711456784095747526055116886259079541344802686005295608543297857782635002963177078024401060862132534416644306416753305065687258608536035627406845817892145543229346600806316857981717219405364513132062437974315423288862110275931264406620527436418058580171342880953307439259531216891904248301925863850501875323289748748588360121982291990261031303334990547783587698889596781939635752531499999933177715102305575654379707726796569704512935892523108100638231153797012111412785431574340099501455235022183216931247169785146683866739229671493379953274350682938315258653620559603522854867529003567171305105404286440421273252539712379000203026741653233553809914616721032927330152344759400393354851108812516800210718660112826695526576582330443389030462934744475696475131989419867174093699947694566483799026381205890917946061529759145268554214469065610692976349457012752336105638453879944762937025753586240329211388774017020872081069998713012107452235006904996074126828968588185630956355785307724983608184426764866819984070342938786815647415037680010475901748802609033469186633445373065906168539396568149729966202817444656153066634271946984191732144977062352901121272806383413674837746746360082246052986851428763928091692663656879901138539813743956413932209971236018048054681713360340940208157249949297542876986740622417387235379934350905403065708569660367769499087187645645073094173316018183659378681755521229206108152057361818933563965738791062418666353342819820645388002624761686956872453480551322447040596619545529788964623463491098072836465054898486992393080542972485449064195781714374593658672112653516250520694567310116178537901573532782696714174072540857385848760951203285410259758646873279852297176875979581978908470272596324713857555898639959014287833682270677923846867316815107922420691684617193208508279788007714350948699220643398468478512721491020233665242386169306488479569270167197253780968888538219278025822756459132517820740672143714243855954129015744606855007141446545449092503529538001198604522169974611193145982717125712299036640470766867942842054985940714202545704529867742505668343048521815748102001301021737331734202066427341795128176150219819986565741464211099669744015868698607265353908944890993621194828270584322641543257448108732945142258424551092959964931845927095486297161917178576802488946942118174565000936127785162334874876712183428331391122438002106961076888584302772309301205827862250100962474459028035279014921018708040131367859400315042177749567185090143934572383461178108240208019249690153317195249439598993591926611505565089545512807903296834213214305831224092956965318084874523070090161689851706971368071016846594456831303059926646280670304872763695196262405560465964107822967064725459526571438957736068411513933789709285700585931479374377462203049120969395796438986983907136137424869722404459937176229149685139276826659034153933271509012811402608537280372525221463607957543000591835003606356870182571068354054127271106837075929968879150689402832189574427266194297076173803247906454011110316814902141408177296165206120209479044484112216439432325928942613059681182563421079598262755008059180484496140976796930997612032250562489733479874036328335328016751415729111900632978377021281658207127626326208708481802530482306463657476258579995453848610787317792178529954826993688555375292390449113812983688359307977351151472512810194382004099567152687674034642462836219310629178788647395373887701222521643745158304268623859867209296072713314029313818805933501725201041368147106164862933518556878492819901581386560091522989921504299257616944348722579354374495736027561174817181982779895667795695145996443755399455903758929257074712620387572787413561017016620326921949315014357486450108481052114486921487019556170917004354960622548083791014035597524486296490868452694981004882031709531300025325687776630289320371370832919192548621064035454243134064608068470836690467932809001355952600603710397673368454637046918773647569270047130316165483138039778851168725622803880005789994211396924417097335177886293944660145715313786820068022176724207255182517805147937063511058036706017054822557491920431608522411835985033028452427865781389811781527034115211504283928424472987813212540373785144179960578961055847037251804512939730238212213762712697001465454281392270322023492480595310788379307209167461031473983760632416714890724067825302139094912888568356417401234254124764240261853167529052925915126100801283501515817561730235597251212476585720771546401199283615286762638280456701807537495889790287908427205723765783690342217293507637760978503190660583791455162053932575073876821000536822850841035176732670467767004084232391189855925783813275633831929435828963803984510136660644112712896426450355505966778594637496904124266549743382617516759869807427359073236087519896693060616320501264157112019929586031490165893607740608026523195429514056858775965230473183781910783327504710080736029585512533922865746175095412101486351121382539845976549972771952916539965568182392537967131447857583629824292985715718316141894925098941578358493671191580667828972488772966002752842356720898181585842830209547062017910042851326867865537475166700540518924145909847457538775867036575727324209490173257118061691612658390704299508796524626037861336270054552531509472458612514178259628304651604356148543986382280876314441877935212908981347394016344120194949352459209674660119343751502663115207655991575496280375585477962149256908359450060544541213859775309893548465119425818383178601635509532940476394249242468199221370130793072800752530797745319241173845208615340636063757751780502094075772549368041769189550362528965833362503346807997496873259472733106545715613104376497552612721032825851008511244862549983014263064408558566351392357613929950497837257781623845086043762343001549744194302440040639211551336446782271774792133246764251138588071796049982153092029248930337945168369837130430788625299938579636788170141029012987229411565519972453124432842152239724171235527990361296030982488142117798450113127130621531273016330170444481468534984386995265638600427739965696588607901300439971628962919578053603752759841256298075737425040854440344038877480180695226404764339909735438814881840183580091642538860382637082857056696091497191830276169904819870777315926756758767489134817473552298742214434111927519734018625623664931300016490867387881596853428674390849943842010380199189967569814693195560268423733014534212398234709747964595333578596097923700412632190057400952923993847745551948264312522432854038286780460050776516736087058804476867557424889108680849723841843056675676513374429977820664196402939853001961625632152207645129963495069329432808713362116829827949865161362318423369806276064869325744575925983090600098214846906289486949456275873323198514052090524586092150054448653151625590058140222328501137536386242252262235356770053383489585482749565087768664609963178081227859930166744128322199263785987444600689209948358121406903991303817370874302539062973061409863772230891424235163644366835939270642323498685979859450846105567423120615126823416071720679062770252243322984457750048480432159308358789163781026767674238316750725641229943199966893336845435638150293109252407798218893828410621642053245513259990838231955783507708783059643202087843176298502678553533729482780362749414509282049996858710156926810642611752640646067277889815988072757276564718672603867929481244565144977290576023519821665349259838870241643186713163086573865478534593229054000910366931830492679333254741180076978608563531358622950341165693210917198434910902343451165035477018976211615718303936899781317161405128725899107229769322362803457737072151725427401709654603925268179878664883936227910700405808370922411780570816505345520758339889447983742587596704206232142118039401790700593580727099697041556803536109455830183986803385638090921197875590844402535666460713815782573834800733735519754304356740683968629922702534943328345894513614102292070415039995077433263903278951490069806154844322769573011391828465547009751139035719821590417390006623693817971766342154184621604620967890971523912487387762938743431376291056036226120894872894470325411846971800560440879566367929940979103579888908422108487197612788746047036603319642813869412395405779156463342010000185620277058577818766946642077349905412311761981241833599070439607496710516412214962784320626717556767594241484937711110257865961732682736573482688677493080113912459190856723204930614030930598272679948489057524419128482679921027371519378800633532598623592532144900725219068076357714572313539050970748042862400097961964888191518190850683838451294410402315977736398775090026951982568580103572285143373932399209128073824002443531339510427826395138539325059307777125959203451001315117845877951467879582206553143776628781509206735877306361661213935442431470401936229227969796450226530828294962080837476649896675556396677904696718661560288223243013102641347608729601107568027755915222372261957973887424724358240864893925335074516980697703277330581965679655295102681465010304152560772246918453685757022366286225571398426470138366022937990058500427164141763726027834868712149302266161286811163819309422722353457944861591302231423761812151901924434439782423053618792551124524624976892473598735663737141469579230227150009935915104641315720593320430515763458002724299370886705964725173344130259334519335432623250566499224859806942566541733465710012774185370020057790258059417161551425092064298396204010627229696620862166221849694093507285074231517082581938264778415346663822557961378595753123980937926577816770978970907792896257754154306926136899428480642942120233970192055476562306129238073030605476626509357144520936135453023791922235973578707467243067204438564741148743505222623391050556172989821453722005269837957497542930230356042559631495521447676594890689639223190044053615245999495760384145569335658853124592515197003144331322978583217367632756426161982971895264669507641250687668076248365845841071050629322718975223667112591405250273518894957444559918692039899875416751601228248204963895306780516675587984807521383282969044805626759893790500926815552468131060874823662709454361741068622515885567245823293801277479003795923770271159519768030019527307587667720034610838093430984916678972480225324498100450890829981662373993706130756496035075836207627930074523092324917811781542468287489634658570478691214138795040673148676314903392645405428541709188149496116736258691729180248416697379798247979026288281086855000618791347913969108584910463780470598683147506404690348435580288495747576794970073814062206234125087545465378113997691863686442469904274601587669097340226568773929772015716736844953948403546886222943146826561796060250546372799654735774506106218198119217035508844233533858060869347364262194587353277791281195343171972178653216148309838009046982883963051329421254595662455546059835243982766384231477002659621216712991730838440221933484085111212038264341154959120835122535237928003325945537399283230902915790404983963836169020508220004435758653854502504295932077341758208089511897477834231617052040027657871078641109677295124624449726989764822875272163471857255172383748260787345040739284049325677176926988184476692740082939029170736880597957384669758121643196443648950340352651986597821378236375541561997941216438681056215590455326554956134695444452959863243182034074644270104016070098942935856404303749116898606336882829837773660445047072321443192656216134813779185758753358804101658890529742825505839056357499603125078137202504255592976788159305837817070562594240528232262883048266313697887445439936482539246384271899365910009199154751831836562557591154118101191851880653473571534245261148165101869698023436721541276031471141307337180477052665259975529086132265915976330848909508572235467982083378922219802355296206815331316032972637949946679466823955918694403546206450634532401227221583724529779476987686120281021548221371357079050817633006178113658552744411850389472108199609164583515644115294065201340788649341804809126837053071440423952839684802030673076105837563766615554377014282113300268257743999372391774029543847791772083668295514672259105340414028196653012094121988435998464702147025763854297667970796214220459998172275249002160773083243619140249974146088098947451542858089028013411748879128654660744985280995780532352633648964902181651617558468349051726601788708831329342846563217563116795608469254082099391332109963958967364160036269755853934378829461914518090901854504328767574183723498703006982556752753118003769184742666969079472969014444343144937066093675183269298020518437004469221182363493161975669614797811826151793880168343998474490493507338088957075545930478855174261653756504444440011779182751602372601563613072594831182853529240514761703675261934353701642859873770617042977173767012570801381418645565016298371481807513957982219823862893161610848489746972413808679665377308826513607650503660130875783954519149412875224442517111478702967279073408829802095364825835023091525726975776513944099025626872114872126025571359504173584300631356854529040361316070278955896377302296184623822052018458010276843575445477843321466213564655161635153627516046923164121729576760993986702610467587345092040573907312140677835569586496940384313960110759666849094823859718700373261628978956040465417574927408009547843592522671133584974172658974618175184903973816046282949182886880803277586829152916505083078651749618229060128085564095938643257110051518290781193915419086574680765958415401650300073998786736344010548763282949228648744090871163651915078812208696832784405721509494865055599037180457082352319087762071798051904558587386826828478883331537433879024506373493715288970293054692395246880217830913656151736663126102743987449292500161283457997558554229628967936528714443921623370971475893595783805314406743427357027610868634976895488886434910477983700210505947468245023756296156216763395333999614090688626762971126458477506308522400009722755349622131079030235860987406258613913901913456033957401600729133922695349745483561797359181779457682151974994398531939379256383177012034479065494227300779629156484246044135448302938643213449894274929617059585631468379262627720374494528543796673953686719268912033859376483758789247566713612455011838153520627437279657194717171932888645757330971274507211884399875125078966605173265592614464971121624535571691595646300794718768193296621634466219174257473707404510649627726954346183004028931113800060552625402807341768217208249017405733993903525190535547624756313054431777193375641269326202594978506259293926612569829329360811573640258399922600515700445165798822156636552306214247983206494583736373131293817712176675903955850922130423089046088674111690681284343344962604849710858216786314514273895391561911563780308411890853242018711484901938817516765304028327305514052730848119157028306926301365484154725536486184384984147439802015614347194023262527784237377525702684365473524359015916197443726781445243848358771550649123654655729916990676770832729329970627433286547897735176422419512887082527230791276013604334636733207245250216828808330817467384999439848596421788952090581723260292038104520479010455406056246166917684365090339606876392789456907843325532863157152648622415370519140438263274697927187440665048586214620820933714950484414914537817473617076778487705282550093078838933758628809553285753965171951040529778857838022900256763718078790225126888213833844927546862104738820904712286026677242107196743037325514437133349672236231871379761646790585605228247106563724661048975328312238641635927942448697359383210927126605207445794306048368001343994950089724510683498410245363196623612962516286333970995169975663987870274540809164358005898310765481437386468785559473813917639536321153824997241014518065587019975418295782048673485086673216285805524857635489991701095819743998306141116048593779101526579795568353513370498937944994130996859862928233943130416900847501178162941806663944913188535622885049472023357217693010214534989730469631948424865696752756711373053267474124158377140347056368090628198157729799689923958771045715682412010518281370428437254938404022875259931438729623439850238436924973855128441190164637958883100595421868075492665651968157671591001745597122941546803056465660083690696229145613899840451164657991030553029144336663135333860725739906232485303139817939564030034408663498796192286346356647202955151696377657800343075338341811774669428340835031853876261105459918275821855028614258574324429466539334267169967136179262595284854459940048483298940573606042464340387079635777771734079489692858984323645050389052741888528580492095891708698891885268330587806890657986604484143751528214803151339585264609331490281288994400931669844640794785941615710118013271620650303945514859275842431105398125059776659601195969446930678498010921402547369521308478691312036789509379821188248480276938056905784794624188321700687710638758539451238983809764149821540732116649593081225368427282385323492378983878385827979835338289048479404398459679865308725337912743231579355005336369244896997878878664991412362455407438863562013207913352534546263999884327250987710884636974322710297329339579703264208659114238359263173384321998997253290763832499096268302523179760474905701714989196986527744792793864192937533790052803924700414661771274101149489209751395944326357861107256900991120620815923940471959084259522797712566676531810498438241590020584695406070258075554052436072007728006972544408042669823320791568426102358591196813782730289889307963169363761204918017295663750454453454750051140793178007969759002593445261239846388306468747987129164224853838149531423517252042192429592004016363446599009906604168798521631010719820588886283614634287346501550334841420651965054109193500455477380707155733415479155131810605818014444323151072302802721825187778325571663384099504012566540886164422516285327159157783303121417552425683449241784363188769721755998758652165342746047173281041587821319422377176481430648135424674169919707676914193238011438879837213984242107350598044681475270105613516677954383431329913953596910137540776673102533550233133561685371271116876644338788171281268456391637368694272957587619140233918030919089648042395627078350778727704732148655443854792784678852843318320095484625520690168225559673510986799433210933890161916303974438475810723355272746938066368740828017286861940715330803126036194337593491047026868205096310119648458756825727114885296099725297424324828715523623082160769019757026207287011547862712771223842627582781752835637254003356182896489349138542660310246872711460331453355341544655451757392661821635459159661029721720946325080988994433695999006707367384429298998902066918544119569554669194763015374557431157443190641964972191734564874689603656531683308408307672609511834709640783575623185048950499159964066357031444337866670442120433646364568076043657492625979339309864992626264646335455312895162480992368230948250396775634694887739282691059647656175777984265960924766299362439636152119612654350011496582473598622444098044471392649180043085489020645592284650409261740154081557808076427776696369012244799084886326911891081304481520347599089616092730496877442691623617298830300227453516223553890571271489139453678253274636999066954954132606990525134359404060164123434827205591689956958180847901660513944277754794727121809596707258136508745888038836079402738690975103100578705684067309330801531539582441349432377266676369166834878962438836986707143497692450925875360375708641320537338108400390907459489831394426205269450178230718300852779705550588683079072973887345084433196611645140410806019545120699254698515514828280208212017442691313444098735925471799824717294528048582044346646273346787174763573024079799008453174683897260062184594121756290266393897849551875215257561072138060000235696997968944733089898139102811839651751826654733409115030924216176821465303045674435271689877383934960797655329169510456408220110036472156657774768385575416292816459905457788610061107777577134334500335049080276055567382688604838673928093527351935970211475147594753572321809290045088562908138759423264004168782185235031494896748524552921716232438874284546239798910041381765189102926460397279422004482902120278559974176086177439837968409736865882824555643036387943789120425903361179612040635298207877849530826112047859291118598883446086830698829773850656698368382450486689764473019416133782068257561345253561546777716425641640096331226341528052639799289743601971215220667333342798422784647382001072483777163760527495264268375625966010988025198423665384652289801457230434773121622510888786256549068874001409363651228440952981029249522210370076925897619711561675672460432816133172998449986062237628224973714017718493547577710313845682665067325184801868959825504397528308060682491384992609638333859321558491347333717085094001356990862909979245620132882849739337882839808872017529792387938528881607187784205929851077726131235150034591663128084917619085293927169636979009618800256752389159698903294213421518807069471914754671806637554287930874962670978906307593273187833018960742501754805265428124676467631517767715882610328194691118033882678549500459942992893500268479844355816930066605058986682656495143107153436296752759328751705116485614736496681920126488284159279773404949681270940893256908387861685710494268903770543768010695072798991005209332065206823658715647012999501032269620811154690892608805461042323441443641610756925775897194614627664818725938250465452603866636373769909095114031792995680472718192647682396907956559028954532202028489574521868485439477212166098122927253134585466230302778165857000567654279420669988468774612954083537003552614927612369136010480946486713705270330810818837332123171919672510585615161661365618239119559046997210663362097476074779767130599205641029453164478005348114561074543206985202732791096183728171078733119332086072273787032049768575330684658289122517879908406923693136475916184405039315348049108376720735890936602337202236216442001508999553524495680220054930613280460947698358860387707048747927279381196518197151836937749906792697873169062114739547216045783313834925054922808711663060127800817965553351347257799614072170195058444724146408352637724338600728300056080538673223549491919488709127870464496553249805308784647713585525818243107616812556472892249156364136793014867060244770745756817123562458676625713406392871836876825075015055164771398662182150023892980575164408592753284107765399787358968354114251266879446995151452273043945737400588382505968239835564970989550141982783950453348038909327847196426375245466051224954611316708746999176934653928279994573948660861620481336805022763620458012680801783672019987756014853232653135627424049586084906832463831234161756347714048306783449749940989761595732656341893352414984641482436724249884380124220218590886780825364672709584446073265264907135246039009096288774793133932696243969646856509935230842390022910930544978353571380279215626778943802771535805402860905840231494861065588210258396136232797426284042070985971265500828993502967017185925685963337487072067933399889898090146510477284793000862791200607297429546640449945177891440265360330014101236589190714242458098329739742182942013964230410461021308736127528705136586045290989692004780420284253497444943334942672123232419656690228312939248147239896783592911769047347399383186800056732776757399538975949998887283326508751721057319295000459466273017519100890474651803153593889607235587162611387549526744938438572844420414830222449410663711191375882517815310997661467588076566484198110629659589624588071919845434849048987196590945910137005579488616951605966426973501310826136467320295691010329291113965202949451747244562951502205714525681734636507762601977043347595287075345197585823767606495279767195029036348981940794813948724100788537110792413848034228206290772676700669000512512842892221142399081716041815620873272415113750218648473919521970552168753796441338747865169801621216046355724467473558581829716627103528402860110619570717239544885563026931530323276321431791941399720660763932059855257954980778838553286577176805577541391304857786982958295524531010946091709638099639331308428702301820809307080103591334622781943281152427502057164611958835778568409386422411367319269556616206805851493317342388516894133898678326389100719393541332846069020972830838688585714583240185139732213746176498325253372408054537140166099817314595635418488882590407888372665933707280319830591871675944246614328186198496524692600747417401805056203105455312570191525389047348936316641572526160776796399077785093194516770242506758636356131641714990247411947057241524078059538759881809224373835127650426348100825822907838028342036263818493383360983389312944493723931348984140441895912924215207872488724942732018528083396224425119109161368401045650424467781844611806067215601434902583275333502521374813064260047526453110688399459757434532561017765483025018158149826234160795273546688621650823519306908387750720693304984563401399897416015607829422666893491951998312192172734616166619825943039023823226087955287172357911887253327762695136318050793335370984499310501078477593933611739975120485759891471191704515893202527395486784741610765104045537986207543954732773535619326282134051401784582835881766580034823331996818393165209788645179417451775137898838036678527971148624960669910883553498244114464359521595312959849605241501130090052200620042869262072351686595021310609673877883411401416643673684833107859458629333994942851309730887491973776169953226560367825923920364229846940552110335168632506952063465094700721486783133830103890872535250157357639159013382088687750647000451046999882297677749213826931361196676488285571713863787685912325246382691000637511244870198747613391120908359680763583491994897842893801936803468025734573869738394101381757819768453708486903170478279331953962334501596274700553426873284796101846390523852696162248551591427261450249315790279298940890839960205049429025439130412197981789108624209033639968112331599660514211126377421735238375460312151579394832451022810653581953082282503775175510715333572936399826137306092202848792084520316616435245222744118396020205388044048013435805425103587564055614704410882599305416234164097787996621084659480185289547940822797577326449269351779007507086633571743850641473207002304721038254808479214867381596180151893394605151841959235564852826917719335936824296739500386072591275619018821430761396917633425198281310944625193524488548189555448786385487883558390666982989885199365179575524144259782874237824905044422570181095499039555269410563124642007481598738526499167365421434607706857668685446302849833281140135438435786497651725705195951118667193772899586695848087393208950081244177031044437221139228951047498187758260064893736355787934710294783558647705671605409295764684918733803877596842814113674984136970768378095491209465643095990294370181177012823291531450514305243197965573281545441730372455721885408652204920813632631987748583482335513970604371718658488942194536330666213648813286228508633117966388751114081995422898274138878122846563724779886713744209061450844353958720379004133226367035778982524461836141144390280965623979876643033337714517064742609795535834308065543843615591874395675636679135139333167036638195484543907695350932500795128590523670754943466318849244238473047701245609165197398094533861258292092611933119684434189538934924543052895116491673999215562547627702345997815382733285018238061688724190379780260756940713848611780792783043649793341548364277567222107487509971472221164597193367590748645894558758663524942099112661329260788705434454168242923085838599609204400036305647651403109833229369304865718107054681147056668492706554726521449163404757518200030614113213180193171683867726432481856588984690719926078946929952734470517619602870858488326784819249882957782016959797619501421372448704967078017463751208600066026273574733712908914939618787722692695088680152370566748871911651252932981982799895444121979264209394744075748776500690601281460230588572881629589082839005880145007935996553770243385739031757291204213764650734045574676489579107165550355414538175322771002285413252207607441549185277635010021243764530980308543285522013989064682625615712605982789001383778321688062017272527688081315551433219619252890749348940115312005609772324176005925144196195272767231438336769370392067173746989505381421816214675441766455601050264001602102662653872594797645362260723167362945240483128913314302501135640514258839143047933173110530103197851808852140816050277566615440766018443825279732756999729436747526079515833093695876623114105490763149529857129095484824261603685608559886803024626920663994521525822888041449707539440518158147337885584245351102436940801414957831704243837537259955260082150229001581033171231742711373830521472865896032127237951859186344134480416555619069436967818207018836446573101459097049003173619537578666910734965161179185275495750034201694368527611306041456967018566484432215138357004048302910269752369318424093574784958543764343239209435690612628705333015249615155455273808474140577841704316700188695674852234389292374749646703492468061762569649497201905321758469210287516204336398330735214294537935336092111163656026771693904293563509723857784629881729158026954719456073834659748766041900953487443628734577650335997818627095719216419558003271364813992950109632374446371848186619217454552380622295181469059767995447753518539271550141021201433446213508852469241016207317527644182488843754408575630045470087924661961924278870873656772521372119944739881729630438549746995832695090835693429685259063329874233711718050189403685623242803210813581678392540648528700556627449444974156197315688627471273419566758749814081119505985131604210768310656749875235314281606469141458027176279821712652168528472332500598008772800233354605516517411277264191937517368648824107548269034181739565396964378251102241485365313957894550719231114610972825591822423195725886223218392972535572068439600217010999933735358637923547305931016127072278776702541310446166507217945770410548424675008016697076187852554152314552513444401005465662126704930565445288209606788267857666236827951759207823628626116117300477327890654303126639709050043252185065836715234230694937653160563586085438112045511361444222993925151687330319977633809267231676177387191990779627142551953831555404362723293512259702374832756825257639143823856073595200600740641036932636661078686660598755715210551650437426675017213289980191153142841036015283306129831103116921453963395043550724445308613629733945367740479105482322392506848768877217268664746507872553030761347042862285832448610264976001883770887257353339619494785370950727278309234131572236952398748284823387993323090346344964384606046436498690304379370249176531906775798986177579878299156874066362791662629380961120106957593618360576916245568000428722003243871019058646585919019892440715809037339986585734539261104220039275169952646852193997577832266885107420565038152977125292570131222090135030620606422069655266948089185187194917492897614655022762589849084460009982359319459746479191390704458301420023448846797401622743458539409158074573954275707765585457806722684983436042682254653523087721817286745947564491412128197552102809906929187475402145954484242832952715087865615992669827671064496247071744491829606851513938858938288010295035503330580072056587968062764911990473786791809592823386048515681197182595104121429561183600352269296205417857449232021492874905181307672851219626794144091231528267234620472149894394176739953733258658493530276260455524530926664372896753344727163759370171411557929544877096668291849743058749089532936825846296764650558274838967388845695018590488417922899578812208253100843738528675084535949960951376772264820909505466147772607993538111246007968080206637307116132179847927101557610390760053807740035016944627786064449263788021280710611234435871249274642465119016797783814665979748817413241713318003828240141915625270040101423055342253947534354986714323937596647665104904245722283545208723405491759490001627308851132772147229740654003126193514020480314705721832740980227788594125459983639371791766406683042268591727847679028626167636857308384227273811107005611551566942843686842385508700961157047589297080482906873471953445647629211502237940606907144451774766813674118911124040492719403350821079828813328612437814012529225302964216352555017265119779526706575909664257608576593190982697659375998447822163314222417219153688598663943588331397274684218809894661603415034512606434306154101596404284003524010241236994798701530057288280021171486932743282839140532499360443085437268474184485194052577425592725698882912413545920234997886934103516856984075815062155116944190734481386773848445215272795386824701583398319055049066463558871572327243636454057653488501683926230818432416700168576875157095764384985384096980087905898348480083923595656922918495370322857009120692079666350646089236184337854682513628120852470139968558391332866864272784291559632620689060347753504689220540727722633862646147870031266729977288026919093481723515290794571218781655700027104556925143579237368755903493920529784507199510399450750244607820837475137110298597280635309248383469593232346074790551834983412228414402107955073550027898623683993683524045830861509950134601929241238777149746854904532790512973950958979592699471785116862906229950333310261893695662728438684226746862394410731752811481123419218646587140909744669156759319689662543616388491178749240600982118259573575936705198421831790980598853746256087883792517795270019783777879395785071931215645674522962024709195349647442770246759572255926357447472870086356298918336868568539261914298914626580331678669765313940896605983636865972478224770095855157848034205174540010979511025171419423066590539324435396330188802484715935483655810103491391645114833946963187404940824626852552524254763648522104310289839050225648427350010862751023014147687388875373726278924452953520651899153619506453308846760822957398891997335558626169566625132867306356886981997193278457507060381175483258124268284453286645536764731994125114437829330112995480246248756982344176353972620058027649948169167866675318396897829659615017982075516723608678678662678466693904996243886050001592133356582713552673523337499300872910827407280822214509650837819072312143400076866504450453659236499698810123436756120240488037763125107513491994505309156749235742370155737216872568604691130333510137750822211530054886862819051747195835420168813863431237703192648128543605180903958898554554694649126407040957247827700913400248488139687960534939109523629156807120057951480965559333953039258513818421959014194715898526094738471744029173117416306898014142893061887766372592355841004181657681781346770559980162793993784845790915587472347108883226028379823705575612743045619797040632119458319476911308615545511778433697878150641783314194221610911638303542635756635603216090150477975393682063596606432343429519214584681064834263580269300606939598803819220281161106101281217631923568451028296913746658909053991926007069666203610909333486847867919414080591362376297737401839902866557611212894237493319321261711766777982332213355861136763809256501863072438257581381690909828489153883627025956105703182134359134867729145087328372185728654925263376474494317616175069164943768668704582810549239506203008251770040041024345168145043884474739129247812604149590352754662391382746923104423994778201985575308159322356761452782962263628742472934703729811646688900272508425629097189145256315357502508361847890523475956829277136648378120588404965432697641919070337718996470092061471564409799651572929469938263706639239430273123752871178426758584599993688711413734493456985373676509748643215319114599000065475500054220786050157014865140925675668099704413515415719004947727286720853392330788218908596042052633601669506671020557289562402007783736276123145525397705128325318743391183659185928733695497219381452026478321295606606620673348449020160402827845477098471406756328151823086282407653530597989049467310891171437196770859286142147050599548714213411287882330039178904264472971375908960038998955317826950495476539296389445777303253652117668156455283393014328435161079447379594580105798595355049804459938541755169806146971963163128939491765733457749043143016329699453206044535204335250094891713378969427681560357469206855630359412663572439047348093967187402438050638535041700144906073565128741145347467505046784077481782893807168895438095326483865949275009823873306986345080188823779046110082602404080663577445552133109945123091444623039553796532956375378834654719727046725265982652662051257332686955492337932413151833174142767688010883799828301027642065087009247634072358282913898523907788266063087376071079264810645007869603862397245942129429800272136237498671023811056073959915826639456282783524911596555750744449027902802209951734161083938269768707856866656316826081320240940921861916971291679149086791066396719160277482053668838450777743515288491264073370258460260041805950207674171550434918916933134559708445680035394238978134198032248682345557439689544705328071354528408830219788337369535401863236779431958155125473908839711719388727229514563772234433287623096148987366591950245860649831748966880288802254879972081940607078020414003147187889909857220206514765293591956740245155796860010364146081200971513190309131348474229828064253145527962339011948145126065939018478938206907630191201898020062825875142522025868507956446677879331814541356930847085145438496387105798417870884643809632120674762575597420740198566928620373635879752839672456442792226037893205326694606475879091997427018419424746639353159981352996292293331124888623092094376190419975103340539369870535796201816374630904675520234532840444636322565915060450128113947830971211189888844935771787532686456543781944494349650081989484805692048454442174400223522842591023685222069019149837616716662498506614884165775835954761539706664427413899844512452929487896059869300080363341906489864824303062655390160490916599119587595298390239669698821624593764483760521468746631028422685707313338811858006315363539866095647141788466329263838775478856545670550631453579803466937483560497562745409171986419087731910768093711443049974149140786840089522826221721369436483614869606464601217260225332870538523175880370865527331411366864291246568721522024140132297394885806291102143529395163270306175726522744920292895777624057687015517084194989919627464896728781907567761789330303788218937339471702896276558204956324361895611734081712574783976366766787887175021470371773221132243190779108353047682157668300782413555188291816681470603636087801139921125722079673909524099655688625903119323693241442019580660561470768623168156215488008911005964655780161527717942779806997931895333035445908789583054604747440525044259195523646599006536732272617212221905908394753918028508622154694528878077674404382964634107107663649676315935877262528488370971836552372063470607908228406737505112282452790456515389801396288369529434238015210458797459637256353539184891780903050111101963124338410659292788767067112701999244211891815556787694286545392947070883754572939753840813671628346945724064268075347214878392441332032707464436424846828161832327547835075157588549455692025634465934735620167146812570607710649699799803702280680459192788679234033758384581112181060243330671934151788050066786182829469822036562288478883088895182714563133716885014536270841495095394159375109907402500177711557650896916173179727834160612862615460554057776630497264766124023923234274498303062464184703044839207510868589539798426846851812011516427318368601340264938723722121456928507828095830953721275311883498068825345236713782574398372024394697606571752661084851308772278557195352387533252943347491548863247474044457191011742690834826475264255951574591769242296378420597839962976192816852233804041672676464023724499820210043407170396833637802879315611284034673026173351953054122351839157538001126536199372326488048193445478111371072370600563008544789686567173099680285671032998110445641513396314432148991147868929178810323514515625321793778805445767252550170984957833165234991627500239552857928105569585656610134543996753492817722534343541329152622240618044963178881928460381082575148249754794397227814095065536827325308370460010455294426762444793171753114829752608595900877538106764016231671166911435690113904713860489832993956505263143302119133595040461117561074872641086235568927165220365263182122413446387857579688469550138948437299657132898312955624927282201760297561028325795993332105348345337479105370980438601984224937464796502613692454183490910017381751677873454216145634489978843295151561678200518020921147401256407038496192003759235138858705107880979395004220581400519524556609131979404850905137400759589845112410403193282733129316217132263345996653138647774719155700855622673210792757762702492267342900340618630583980725090071083958678575626206927287202429281907657744504723258467895107103738983698874103762340028856040898785327551675548361541254458968541295245620060110059778340811166553057227957484264703193228168814772905508136525819172572073458444089298647903024140899542751275954979969416521198441800390578027333909755150405069257115291830066268704743789665591449944311581814193115633897100262024750588533536345211739650290936096006356912066215852748135689959214267634516360573878680981913977796906770643457561647321749138677167743986071554643458924041847009261460096093630664718182879472908535281274026983192027376799473328270096522684992190943313256797951707796301363443341681608108001383217208698661825748718485718150180191266603151954775150293338507692834318900378821287539239218626384861163132954769502316726516082356353407733583846067853715008778357439566430964670522352513309846569668006517777769360036457702244517963662952363003382488856669142742827333320132789261225433638501614690005297966439892738399374575424172513530502119240564331319443923845453606269855410387315901595894026281018758637819684909396958114992911567814897872680756115544858676337306180372093650657504819258251034765269414065861825366095357144176780939536544567734335842966705693163935157231245180179071305451037755326237673716659947199828882969514511933302106294196087354668957089307261137145256045213499245772008464612606775917826873832669468447848440786193085259506668920190039521799803221532672432512996650797525126711768955714845699455256893599747796295449479861115067236594023611899574079378365513236851071593138387780399874593942203479583915383024454765947690163605066762199435935581870554494132558924071587785609879514490631916409182122849996594755534382816551679754946539990893376582793883703116015613516014962638633721164360661333004653268695190946558291433775503873724693280230320023075365610736783959236953043866377176110881051806822801537682239817227057308141468922056955946228592049424130512725766663304324203565918369033997336875690416263389841371182427781068202943623595189215085885453213445556999315783618876337887130400805785985837397524976883906797092670195275199916747877218832405287303816304082753651122670017382846551583840204878353100829998491596009612856116113128258069949007543119911130678895044397196716089398376903329831055543346421977232108292244621911140102952182385017337696636407499157286305668349702074154067523542038806443721638807271180873058557561474171469500060093869256858266784477418525951719651902990186813171803681146639552631268490367828998105528502549062706153182222564999943029579497189100881001814956843606806959296648475585930512536796149485773607202897026651307824907050703731493716296992217449595355885568642161376159991360833124969020903957443630739207893672704090357504698908615827514884941627067897655788535781709346920416527128492362447522299946569752673984170566858899620176512580438223266951009954837529073057724870113065272085508541322838570723899404502295020124521739979669757152418958199008505023504543927384861545622645648196771948797524052377914848230249537508599828075550640452792158263033181356326743820543579947980891474638345821863250396264192088491294490670471112320561112251292940347925436448675330243749528895048868768269200798229600508548643343393678830507617209505428192759913853743373153190284285477408376713436719890438338980853404662015077874833957228726680844150373127501784847031942191296416416509116519891047549052460641087133695683639335898510312353788673044661227228595595445456037483775726994268367872080397102438233489688783047200521264197965266568785730140695783304200637841066705039441606277881685865317293957939211951278295698831601308155406704592331342403138191178209678839361158699037484158231444312160713774806109004199147260000336173270565365459889069343640733077861541161348087042461555608299329298330262692644744016902106985326961142807870763758917013784016266962339412408639063843866597358044502190543320800613433476427254654924154269681456649259959000096367115206427516568214172578903255180527367087051251715247941212556503976923822965429538057551295389864160900513027346784315405968394573212149551605802062447343858355643867155898219508454452482451501851350679585200929742754462980576414220148454501458994437611287694436401078419240077164548745531484401181581482596268186208631599520869659827615321120026647560439299271187847960545411631018126892511687047716428097245823551691602435681195901643079211516275643974003555255241961957532434183656545138856832857170079275897547007826126809854995913592249990320140648710738650783215982582644210332968314458450438572169474908154313706964408129067632227434381320694100746825930993891638417228366872382257055301181106533729361690421494830354985314128161204910263909123822440088374156100445591170145516286978826723820919984258070549036005048711953750296999341783029642844600833260067685974637742190477904081685783727505012331034681148941112622619603029705103754162634992076363667733858462912014493109440997728643770622648808219380028544872836607905247844569164546638398714477448379621672758805765171257874216324895784197373424133111385338225776986307661091236149863389573167291849726102846951600921358697262350653664592402204055576095236608455593560936176343081584968953393088546392766544479506961527256280815771089299965216986893974977599053332260614263465885842735162344066997372088387152575129364273103267615987255553804794590490910907052453682886952051447578862456067771308502905825313072352181211550326832621347314118792049234447441050500101749302193260576703903416549137794746725340120325835924277007852175158092552697893734784817341418532733857608937098791919585561514784129984003289052049376559468912287989618239037102431478400465870608319934956948080089473498671168294069888326558498751374941724132605415435518593535312776443996575991113064485544839520193927188270957348825951950886003696557163128518536563627767175529599290247911385634994299341764488955321925509881468770730400273696029566096580072937270074507727915683491253719484882301681643736310989348104190007495017783587671415745655689874824296107734509874098526182743541925826504850483277741399852630598363675753642212067570797372996540049437859975300261882056147689163613343511108316660246894762747487098395803278201533857417851529335521369551113572995181944435061007102087106491423832794561652615857170363266513656369947460217801512245731634920227359456789077373456303628704616562049998528514656372972180345129829283599952637741279112689964511391509281270331252856169033563940936571470789705854603432347744395498054702930922731469149608878381741127317038887354655888630164356464674101300267047600677555039770219909862196981978742306385113510631443459505633177835098802786529932729205466603854094388758389597386194857385172466288728655624519042680323934097397944849906020277721036388049823352971076678640924517926003768042023789679404558212385261258827714222712193533240955929763401012081639238795419833362641121153282627087452676495575149968876300347869177358458119078199579782110181233593263936927655832681274128589341311993992423283148320936151003536892615303479218773791318289066442404707224554994363163919481812850858752091579995942420829176757046339084761261485501319638503584723377090849905598710355776566380594114722686388535728296313142642124665962225799824637859173250815075155369205128170764227186819474074930466656520267988120772326840614347143997085725668009352680967688206519420369515896642255145376903844220247314164079978401800816971293247198628710687122320669987191550915735731081910308074900394696562960145996679354420073742346340595504733452237568395993777497278089750840518475681884244395156240566315956129644122193566055946321393910772754427895448056603928588348753046091295817141661309583999431349305994529773553163158536178450996966797341635608761286701007537035022520013132631907738027884395984025602071616170203702402246094502956143868466944616329130639156714084990798412565479472827127666370647624296563437100352369253901227868906956716520615790265498423904482747596046194363275053054911210347988969851792518056908588700050863855690588079941436804757727058672807594973411761753484187180727942393559086852814526769106043003376540061303172752943758122277357038306929769025096479771501352120624058041905318171732749856798425295188842399483320442813370227244091889834778476321960109330563952954191069101188158135510630977879755644601772871898807060698956782758300085588729831534129436775042943195820293515283222206632745096881917753527265733320574907031149546366753947250545263614497648498179480504931605166936919240713489316258888325990709053975953094732962957653119008871594503982640377121988578156477114311949220292388659392376886921734799647787403221456389209049683500565657791430923661316209461050935093955968108804789298975084505828757349420104161391036021499392713121127344129415975587820425055905673712091236121479532605793579331782419208568436266492099257140331801007831315566899969317215448251302605369512576078658444289745562800301438237115120317930047016904502049340365777538526418814642493104072312862585051249126393978646384272930561755639238220365830187245514616465039117265393552686917029710365036337879481318536980922115546997995338605444395189537126226992181723487040900008151519663852986179907497546253004316550647322978833426426930483381977294654252240395888266530381445649161659575276996154731935265937510345087898055052785082140921726056693246092705470909721456891435497859611590111204733042400916586346977985717715686619973080663008494067296325089722529883214764327336031019208571783250275628056388253372909333190418162523965775106882898288677251435808550724376853835338726415876467415628320983950781544501863991789289219077684517579814620273375533632496179046894702655535390193001154400632393035137402582655838359676159492375948531710952458076334004624634891292925844657954786099336328461620656132127455059081924041316936437039320745225708809067398052612744323342634824170228661033556251387499929431554526631394088444398250709904977647241267916491709841589852943225300080458915055941115797283351721848891816208521775938284188830323966367120819792423845573534717538450115627421495578322874775669998258939865045405687714306092062151222962550506147261982095062513652903613028049300613702984703273055415524107957246335459797351206646731512421866233607754747845366126876608309825637380481121818481031082024224280723097753290285934560837494211527429702981431121682827110842908624021227895538853355988450093388132566246775812567560901291686150690060133901726833507714975613941992242206926516312168618951415532778846183921770684578099259935593008650651406643612473913533807070246723765147558275815207905616144569518964828944488266363541602235600306196507848708501696763135939102121071187732887362677112582246069526153867737363528545744292809880159026973393590550585513408369064991487191592613115296927885271398800572066788630567923029880059389505582561031025037642565513753307262423962045150144207325376006924101177901220759217519554747721641762739097131683255327922963762730805699574786314543174850038236396870690472713895421730314666057053920129833975425854217055584936027044461773185004636424089922493079044122036686885113976757849806304383410243703059331755593500681007172510964811406708328943328572845420309855993346131962377866470427874096595504011584903834876390040474618049155096596844420144077986352591512017093521272977291083754661315598296937926193953640459481534852287934137834744218948934136623239062451797773665535381360414929181187730651214164247359389915727478275746378513525485108616647615875622050531420117116075764297869185431339964475788891196072115599098324625997244388631835550734222719454832165696390795637208354126287063489412329089676157369488391504400110324400364081952443101919614856355525345399586251891248789008492184284859140832499882783151573554405166993086711522381201326885367955771296058600298633984415775246963650743600603790367389919500429718679964320793465172294520733596054182972066719116487847767691256657303595047597483388494853481252523214376409920247373282016258494007492229182497253809513479555397224012942050098797226735812148570799577102289792855205540716836899008756544448900821117124584122797204585374219675179928812674265139262395107743776906756868979711947908565006277802519605721458938091800663183875590252526160725908738012478921542937551010690781447204311979219525489496684974846454074340528026402732097683074525843814595988183815263512689784960552444028837811453989852039779448609426896360358293661743984339547944713807199982139210896290627319169198822552356007727896830177566721915608288429099757688446009719563482478180957721876987807992932896004668838633459163511662444933652722820992809322052295627482943095978395954543445069268541980518073437566323377981205464330506774585603496274155923486656012290649686301886251743949993669154282883415936328687779565814612759486843089075331702143003824031685621098123243329512006459222453872321104145953500356423895068796833183704881829822905066124581956439807968097981398160722690671411414553520279423929084008794704660341765545277762590229040248612955965635547959718836354966308227125021690579772574852335411446476542463305568620894287740370570189263852316630469309470656472492926990210265813106685266618547841277301132670830858504005772101626071553431616894580085085495390335826244440636709344550942227558666090151557141669472010254252091703476842070947438381530567620379602785594006815263318750475429575641400208576703304441780820200576475384303937745204202461051345687385459765769735757530968449173657345321291881186612704233640362128584741723287510392879683501948200160993230702360966734859989706161763663054823362409512940564302852338416788153152110662518342249163300162454609143279887553785483505223351280590774276983973902484635767838580819386872619264940400443267769208861283328151976312782235614070457238182371351066128133984498326381218509852957671064207030945750839902556894567294315102561214733593452978428009013625096035256224388980477670722896788434994111941806710532135939359613030780632426086325709021037292528605336389201130160562047733859089924217954501871986314648246628766303897572526768517702848991777874052520746566272760163334519932355814170806009029387031517600113793656276837702040343957219699998893752042882378142605019647478284029179038590543200793726287492991354783901017573149419369579914473674503240121475810281425365482307430176320728889664271022178813233077548737092996390276458473773108413458538972941799322425576636465320952522685051072905088316071609767097110902502645637203792538674100495905717107553615517888898492145624414220159390847710811511085774128986584824245702567750533987033881354808588959850984333420413074722861273303756544174727026017287341940995942860313585794269070595716124369396990787471737779945518489847671713583904460236651052167552008714569542960532239157198103186688304992476868670433724676794544993136411412488868351320997827561081094105711790416905751678564484222093562509535744786585745742394202918751579537084398987704195923472733772640623303581682752572943727161055079070382542762052806153755590382287771759298194944488064561082404382370728600136474307488986491162370706880603943935783798757546345542105871359283710442540309568360659183387982480785780683754721396199386048575537415108548000576648321620132431238032418037333330687416149049967886054390957766374193069294974152852471001465237787384797539853563502009188332259383326110004629183118024152339800326291460797752268333453547143176493892512572472171599150821271554841036159242282949893549259438757038333259076378584929091923296408812782065305226112496644816563201989848785953381124268703273093579054475607336295342289822922841702205145312529063334305610181935010943628607714327745557855985335098810674367860533114792035572213698371738692063456643995586054116083676698415157453047902750724480283099219066051760242658358932830706468760671884261393555263873822529464730694508859441533694524247724849963537895005390272225034136328920764696026818565531056177444869722242431964334831133494412498365582702186545528142797696355962409741090960798765051068711754485564016074711232029361007249803720395880199423260075718892465796983882024043554162878744579014683869369858303745358549390131057281446868970637669097064189084035419258494110207659352153536121565049772047859874684937997928651728303016419722215586140369040974622232921524144471430472577500398398596338199015567752271267702195852671323869956785858668746360437849653798240170532449083364704808516223184210261494169298072016800112195470852343696885056776089886756499156604409996020466185683504340782604690184209907476847900071760040407600033257584534479975092781371630604201359733315930632776163469821206914993075011097490401114263366730105509804675847665576152339829739396745559268803733495530245361384685216935713375301588645460566561368717640393208897561496484729699100156775586213770901622968690143870126280548843649788855851444266859234010963100227822439733782636197278141355383992195681449366976842717253951357781251096874968354124348995192436053996976406907592984950704723323197353946950825499869614147645914747509234379588096960265283659219526857542007055595614369976962528030865854843632258883137969772945283167442339701231075861680094208374493366825854069593359680605940397122736827645558521688618995927999672580975205503827059295659890625608268763286608113810382117372576889402192960003394888252307522379287545626777242604545156038775349090003291582340145526309055145407847312700351015807539781267545118558853038930387047099095786711554417022593251515999039661435698120415747222324718563007570912007075652977520954975652785334119362508455274287827914627044640635358785173994324577032817950558569486974255936842359401610105417903885785067554008235567176075091910688660100506816909839142538016644394911452774361315929438885080473331625977238260739770125493126717398239721614234232131732025412726504400442531882651891010571454038020570797785323163719970182915215950666858284968250839916433803313411679784440563452281174027693793071186885466692405744036668664092431023641395651609062028926789463519811741641149057546551059715902717781750491735187274657248228260979157078064101432028399695314953337351793231794642327891999705936767447023485866294266406686489530934232813184358472062598545716938183092983516684523532409545747851570571552584520407655112435523566914031322400286876589258723897707106560177045331040204683014599122462624376518089768851889879240740311388168747591055208338616611698520917125814804188429271145881008643202936225108822500291331437054171819377904283634489611831862014297171306423159520237526942706672163198673395436128110673415526475694503555122292826730856596927462879737109133370184978129546990903847071641216181956654228766443641708423377286141374989715427104350492973663148428003599443104552834560691205002297103681547044663271984877250185422056902314799930290337964875395106992654665799335201617981817120738372299575030129953875271005365082064849952722899173378310385040077277398998290517403546609322028733022666279473102561176275984037320210392757242427339949478732556709298264378487287140232903277313290363289510335043233597570527532519393295872474036729570449564788814833798710628694582264671379432614186159793265488908500890003862855742567033599668806804870991759498239851118348146342974423142201204182457459294039436087608987641368285621491995375254297396188288685024987570122903909942553570179265448336367462221657260700783147340362818850131163540787980660188310105203370106072270211619547234723890096475752881351343656132685953402081491182268423515432188225838271062504509445548913657313147920047687047031571504497766185763080804237037238049511982262393325763975318389466088998965830053921210957672208037520805532807223890727276328618019157011263201786734776222736519681564263258619769626801450898426628938186812599548245077419829742925182751632107935289934208868668680757940563600225705991648514941986726765239379087347804214522794798207558606398103380520962766115998048382047644556277908701410176587917418470455022522078955401057586997608348176484042875877090685363755842591789518804348611576626116762836885790605643513223268103453120487912606047004303421155472633127760496747791912376991597005494794963484290361781823412508578544567925068101054946534679384678420526831924889757889980215748838485411682620456017733425926821338688732804740452174862193315532427916534390292699096818094299591198987079347432038029693695730615526106428309531134691290951596598442554274520289468629090560649037478823430894856584835745806612414006897012318439070632418323574236732000041773010667722988875312012820265857434161687703545145814823832107647255153679556730220271703077726545990403436900235259947333389136790452851988259189084668865833970859907373395067053872203838857447131743766411205825399385072727836031835775119546961172015304046101875638241638062714110242207057423432976258056590951018024696853561022130251532897193719075759395563245175706149478226718110528813683035939220935140511564365192058568990077106147810393931183260835678780241747282904845015038460886498051178013807441185700981619800217339976216868250240520316452945467399513959718337968872244487504917220210810188488278945667167447462996634664912879748289886044372921062323284177204459132909569764735516849044165947771540022171769662525222325030486885256926440062700121497595583285602041738075634727779040770131544133712560513037049655364221139212747212096986167798826507184698645413001060478794070834116255789677106588623052491010321327699518990371976958028090461814701374521172652684190786871335918051329544311497396600774137540458402265943974106340162116938914175119428356559792697552396877182082583848669819544737397195219471752746852658104152447653950896021023567055264739356808208893019605596063497601978614987251883901381352304523277623469730636474397367995600578974632187721640554934680802989504660853740713545812237504825408662291674825720387339557329290512551430930005400925081055033584365716456290985259185454002278658762692112907215326909593790052797163554194727316510598950790926942698437318964337589007876554811306667593864919772407327970450396701577340493294399063062108404375867801118000792228417691101161460009648072304138761016322143509094966315486770424382133317493975492461860793552717805278999206297036598283305738953196366313632927494267764682268203048231414430782300862566747290968912072361384340209413521073214895793309252717299028352998234809452753200527806796701501295095963382103136530438237642091740462816925453951978388702829804137803480783392555440245526095545645819071316315733095736492252218885019182869108985307642611873917029245663785510212141610125259814599811440822300399610825686453826826946834304726568297898027074671248986721780623433437908210793306021608806909327412728381640033716852263696253157167370007866195864393863381337511558177545527527629578624173693690659964887098027791565579428418505832959488178171334099434940748046283542541407684811353825541274357397843955817780207841961642855631295687167270873873805423210070581949264137886104518166871878834542048090902147288840854781597043310534025282185980760412879342389177920455509340467606035588515108959806510348770791406653019537010481801242059185179362891496587954088055818945625046497899522839320148781325183033982726822129290074732313387821605402437480721079875854884162347960955559517860448160048201087921012450293153005928901758892959064059001712520723489442644629030172229607591325529116633407458773516078768288466170511925260770913174983344918586497166008193216947457351084414964607707201835858155905813019271331204104971094498360521960355751335540991766589117150053582059673108177558700057299199391727835515384670977139465905066644851277436228920692722926710260798252633049355955510564786904585445857516051171236826968557979998056016494677688119867727736670516993707056997283833440418060850999625694290269067918588362513122140864913808468852788292226973528058079435050103719957558297803778092860847687837773902849390647052303851031402747830394334600928189653822145730036673190606471418661981927410171069267835739131658993733550554705718015942113864753333052467653457051583027709135927558543138577313226355445776060125073431278090855146658792138538229140227842898165232215411199105428905647512777696604324147459535138247392443932011809247533210700672050956037033184442013890491422460683866607518675047663721160961133277635105876844201536390406951616106473942666437009268101515591074021841430510761795889852342101752467277310807123018338490134181733407331687465703223039853858634984540076533693832723507871907533233132811347915089719256574636176684979051591847267013430174136616901633141177399789776635145162246176329635410302890421710034499864566129311427808497411012634693324511748788282598461362689599482337451682280208556114480680879153512198087033845254854842266106013722642151227518824938831459080122943747564888973032723339282186326095418991577482907155046534146502349056534809383201941893069247238896536493790501187855449617946051380079757130119946403511754063857985231191092920549270708815336909180828801776643560882242972988509958735268606131278451388982185437327447771668717999922690166584256764419167136095082751327675210010150787729792930158032974431615540172128961852992047031385674374607926007943062341298253952583042030290636146250979687249568264628404273602295556825924852413299774213498082954142333976596599279467785463370928065541346809921280277511139630231903607352443989235279067208134642901932538414568341895971384658263882044391431140622236680798999777699148292915315493087584447576901661964758171627016712145187649245177337010753421802529223794101331433917268989282144461126320182586480880380662330613482565438503468195177051949205090428108694922906615723767321106102558755080489010556541060071535429633863490944874122645719123189221188512461545458291640591354815786169123233888014418012603795388939188561264017208141203063533139212147157888341038111701891694917079153525508690792592898178871692905466746853646876363845706371025187935315606961924511007164010329777195462620941363528872477921181296632819850854125185381442201824760894814248939403002443646248495606352084450286753638400077116345836367926869395215973253443026914203510743085004943457555934444339092480278468720498218097852372609004956790556854851795471440536353942863473663677944754628265316647932956906184607715518647459892006254482348296650691414434288957176833085962934873390754414563730094414644720321687459192086555871776353548642902746462991005044877904769355981249471763301656427849485498330256402194458785823857257279770350616758709108386411902115624493858605500267933074791734494654346562396275477345878328342357732989558510289952536157611662234023448563870916098495085603671798302163996068739785968672821361536571135027030810938674398250860867113435264487436110842669340016338001067217898833054755864925115717115329301727764759397699721731680060543617384650503328448235043103105906238560901250831289723081161544475315102240017329248974769402876282189158006963459901928187094919033720162276925263215263162916009760281158558012617100565571319776627560574132343474188439658221963488772051955671362592608729174690721577872369176266500884074118567284473336956975476961245461856692101032872298407614149328542581273475284844984877727883321058250595214578434799840495904719694185485788194397951138580631312527870549298377939091805043186696713178741090008193107059709396808263423367769222323557873444332624085526411328131797442662574709570677523386744257076017051960701614303744970969669076990507128881692926440436434081946058323518198729481600029226922453126856007340729183005387743004636284709990606811410157797899405763216001293693140289323617643557026281100827632822668330242899015368997040978702347997916819382991991975179953044526730357432229773436924237737030384921571232870637428679914482482896508775655988779942422256116626427324080061206952178186020955341802940846195887862810890416708260664001763199585953997745751927456657396936177365417125133613698821251996094993658742973861265899550545608854496333621175502709635553858218897492652836247535513483671339311674409244135280748529180991330241605692192813672312490753878567708118741281786968847919075710511088577644434024526912915656029912053219382328677444338906450023816514721118958935722211442246955920198685323068366513250293702114534824589261222182774376796638064864355054611918301814147284203161251824912921773320147083513448523125200540386154799092754451720496433546332791448494609847197180764656624339450121661684091406802527625186361702350314516907603916286644664041947053923709127322505844605274676881521701385776390893098891055741520251284195839524659251016621398026310570612414375772718968187512989520663376204150433758210175276830530112710020237404794060933261605784942073143118179862630274012158243911002977975355338243482389047091804876919129474304089129259143418544086987597075309070778624983405474502634501585901625206580072535908903713557072043657347342245586689743506474986381443141700931515853259910936082609295764506817454398812351974940068811335429974203410392766406993410908571866080019842539947282257363580467033130294162583160076518227344091081135153842167377004750533814246826634157630958672430530253217118597502046156308147771584553659967613772364829425780496196071122044470754660417336902819280288283611938339925161016852843876338951908872510727346786192175617882969173457867894877997090319719435616128568475255214026945629545566226981681619262053452331317086765211235441360002947224833212951107889498283888342688668924124922332153945225788956139998077583845427865403592669851082165094292364835954862964327099011525129364826628943450062841294540018661186470853365150661772789734414098433992341404636140133208879936927656762575279995096305779136722327590228249125778977774022772489643959657459928317683165278211861388434154021226167059209863844096114039143382048649850538389004331394168033604539134638052317336512792187498924373332313558968017499422219775109401271051933059851246448347277456944108112175248171550626858941498413862049663040917180635411333355267380419365349828945786536592474152930657830895773971029501462166950081936419685681147267479828689383014470371220876515479475867382412199820806498102915840095095615606734169082615012845183253703335558405824621509287322994850108226124621516340971760447769340368681682723999891448700383314707956832970262108547204341247055956108255796218013111096235343728264245946607002376213728125711739019313340257008660845333208997554070781903286059765100128582558921072305387051713013026866876847433671895166496827557525599187222861412020723857553641289677778582017829294071614536167658523980769636375372312088264853536028278729580332274313862287647763470398370463832618039399191961218857604944171461643191593292899083384857068419718547586471614555012670970833210647487658789672127292508738709991716626056409767296207418554225037540359829582044223608687378742556135651187043082252356096654638804126099428459842247844988264546132720926876875237179313827582097470019776831936486444002725081379097712994203140819264476848819100038265803411576102165989491583692017251080455685656238459069284531580440204568823748936795593755414768940436975680289362288544864502389758014286481908366299967756037629514836900790135993420580279800046923990049818156182993120836462164406814450825638405995668570590854498756293840906035611188795312856154133305781984609753992228960727036531910598516906554395532478739678044771031772710986990884943342660377234424469191035950082617995139251995105317157580836524237648408843495616282343512414545235808249148381713053514502591984418740317227381204317410426830772764062105633336350558064334418075809872914825908242982580788577610918081211562077987522552158976781390203603258418802114368197240756117493272864756467744709882385470568362841877382880436782749782778331769215930042098352520344962902887502156527763589650145432012759477486414246382450891681876066742706277133769087601293597949840751320711509183581829061320717842642781739120429187389487293547868055014511543412848234028930409002999844617113461215154556626984500089086911881680625068710447226731605078091554896391039507851914871656654966470631037618856897436605963737167999403124845904453694127456732520333435832901547374202526506339390516885409202664539024576888715944025075948438652646091981853803901789325201100171293724737391838263541917021010226220612827971138795317275444440529932000347265675667831143373720248361784993287162356919849927685998509917600362058060689794465938909255512655770362710122352742818555886042785184890716041832206539275066255661682106115599868468316147269730042872974086751565357445405303302972040335304625523803126726866623063264500316453626787477019997994834713712540525657603900338174206070400974602689134705683402202941210326870780291865158494774377966990124461173255845795567344283985874014685816606298562676717037148040104759924003564354142165206641645150773492991424359196710745579427399924026996041528419144080389917805929537138303231684949503661602871001272057327387997178114523027193201055971242668753502153312273507222754861502075442364450225652967248624676933860727170463893826583529004091768065947847698632634136586393772278093469495964708346627496881245366878351585252668922386435775769770746373879028704911398513994451394020419576406093035499846238567445804736982293624654059427438826326946810038664483527787564893183390030697657477001856955515229981418197615614102037309716862659608471501949859239895099719026600480091484173373333592720017145708914413624672426738000792950269936970114673371644040021677555738386524921152728367614844992149732534543758712513177560173946726107618809940197293733628786145219971447443442119999980645176811511251300296165372603360517954364717857872608016084127021127700199144753376510157598300251302844320370968816268892869802120226632184470362038435050832382016686237121322787611030541163290758088355381927073623410356399220900444462423196225733211750916210424340109496312074070063358241593600915708745543437013454606436279464191093871525434747890724934856380079357222788428326861145089264077202910496169824695712649129653641821998984058264021373954867829853665336582627203967254140434413993650616442235094819390729628325491384630672331839321472532971738373592052889172351083080538032564097616791543445959802144568431908826620161871465408782926340333123681971529589272745419700077643448439077793793063952124819315311326836216335056421138974039405726467383600371475970229026027132810026720192043222482439187369570522161781824583332214974600292774441209541681917656256334653121769045813978520765005548407349890431326418825518128676637258364086561552920481616070192013923217394064965483022625195534160010845488959149486675528102026178834630356947504956979976932143926454840854787641830278524244611906159604352945353548236338502681119671524577516936891378092802360943240854566683855511698140468913635789981191312081679601263495815987178202014842570920843294152558981060202593794827609701882344439249116080268403837034641316271322383259064943534601732980048131140300767127544167079983209797651722663715228043835087695903016787692870904723094080197265191674658138716010189042974016546575699988626014855348617362192349979190928034900042331827007552500398333319134128294575126255006575279568583447738288101379582604551255707834831306156945013365909397550081445422073950836821318313080723838609636357092442552518313143249546441012352865261228925275135802798150011808520449878899090072691698496163728070126682531751151088771473792183132842906985073108429025091190179270329137874663736777800649245848781333753785985053472376284616213533357796953191147889169417114667448992405229579420325130461473555672771704911406684575280319216327958776862738624474797978661223196825647009707563603929707409637859154195811075173275637845382874878534868010756884653055387881823913019282333191049225754998759872972940026826346917618685846871558490379980550963715377753156548277771486992434088360803705111546149042727820618510169843338115382740795229479534749014622347096858320443937830840081467089995155694516245188108892883753567345952420083542333876031773859639293762214598354872340906874068311030680681554745349949255273731500089251311118129268222231208448165457831122546038983977812093142593433155952075941161019305534263922734641082088441277968877685549537470583214716613574655119433035057508246538691504354733506906813132911648578819619518804707254932755056388968092701620345646180614771498093786379776285560205405807766184394612297366552024602269144714236886343493704401671122800511706319105902134435762168654811380852376948775091993781807254497458195017050154193677551553747338589298725993189177950640291239046033665718186933158829941508544022804720691277517662850290695942511377312063856489650526101664811557557299705849665409967388783449023498188127605696856055711125292340570150194379480922385609144661069173448985461305320192403996051257963010100889363306991893647940776894667100277125688572368544108677599950348895917485228954871116117771536057066587885224179444893169484094463517178799173567722716285800436942290017363783398294157960695307269466823634597743109535332403340688429046540106247797625107888960030666985115217164043233445023248477522579209663600418258291452278703257970048398869193014059947248252334939077690148790464773126859298643698072752632047768422948203391697575720581348738819796316299398360430388794698253522408123901836238428288391801042669490826686351838831837053613729381125311662581892783608885662279492849584795986589831181044678464371045569455214024896764975315608870579153597602109888049872611166319170306243495524616840477760851371306761507686709077749312537180181617356510829225029213657507483698749591939517493808399653521799348995833295859910657822807916597607593679696686492326567499177296681331266286784746886460303318413088041188435574767892163676759490069529679972014443469745471795049094826410233092328381937809024748905728214356993668768922193002013761137843824021381606941504619165480351219399901983100266981731322125374483234464104803032110624128841864604053165580715264258114806558514119803365397435483909237045793450457109078795249398962311050396002051195540066249414874912642218780769692864421589079461998608987309368882349821714746216478032111536706527858974459569108913586302222839108405251238897894305091179082173000875254040032462129874608285805596192376244752584318678375183857681990078177149499930108897368043463729315358660586551538670503284329404602942200858187989424684016216947976170894910273399160725319962308930075073691622393779072838247762154976183328929616347505290742496769987793310599192641805099386358336137993305466792431329187047004269221598082476205691139639889207827488724619834310824253566087319529061971472426033346009529914933674922158194299169168844845972999095040885994932358232186142791120777793999737870502844044681568743774091222332674534724774127578238601082354834613946630436065509402931221698413879214880036993580128810868199431178068000626957451689874000744360724962726287030571830983547851479790765627262759100559441409118666243307335302650190443950000830224360905519612847543651475258345775746815202120307050210133561095171465458539417008574034430165353500688535966989491432365288839408106855193249698603212528840463395492256803512218666452930468400233003944863984525423873021945411788420199698910780823109247184231452617951842527012361941104474147258644654465869218556383215423496686507305940230482321631270233458941173358589894072671761428681317449538454044069144832232585096682991708860421505773776670113766346518581867753330322014559407217677533066056452667520644187477387692273124199796472103195187131342588105186565713143314101293080221654840041721645885348396518079602220334534778556162894182132101020297632457073627956276003774738679986702442464617958763942213411363268175248854491909501296786763107730449467669696537848494096281268275273279646177024756597157819936886758334583658190236524870024265610543741756929541241004762375475862339878088869247933141323666104000332066721066892022067844542510604458547966987989448566476259499105230021835289867523970392900759314911037967858573115697051198548896736944661312463387873696304930569376818973611393933930729022697101778631434319021266868331606069819401302229066900300837320614588041688347126014540668235953876979400341627889676032709432224209643001531705936819378206290543267261828382838828243873475022130229938075926694501567372498860337982919909678172505497056965316348925213787865439373929233021868238419333624338350868663851164230646707969642598390856338109719698598740794639093088366642535639029953308276315825537312248568662390927684204296871110490041344131301491083815612595349546140267684442349219226611987877220735825538784814014057446575155616595353831555684579607958021273746950575934351063365490469131490370041418650064248579205467383949606896077667700389951720899472568235398986026233965464004507943187973571360763540412655390057462443436334408139267155867128365031854933599699472318521427101436511274876135446712439790093622663154152581174397683792326003866535418431987183485484493892971323854755973465056956115064603640451507293398486324310916331484567510294124818483526065208034822955792790804718679770858868286439327318605437159427519319148864820998197626852650356596307788506789276338979292383190600186074385291382921760089534702854734167810765587830512246199920346086591315543980501757710942005375538729172823457723977397219383156854592634327877856953201126344612631676739573757144648722605024738368934435547448862052008116250752961650150279666149334463683501139893126941846244274574455893625658971532724071659959750366786807267207251347767974511262782234904814584637348380887223040369104023195498181083149044272221115220434209211857527553320814739458804765006318417187631182743130051868541616201935826329726862238197108524309913593531906763622764156042618032389766264320918797192189846617800144917870873669802316376061547186415923905401996277387665561085013116814317550862879852930224435125252965200286226380604646421083137341243800227046691450823916858103788967805583350933191719418820111634203469696015792541468275017855489177695313788684589879311671263817622678587367713042171716125736281789306675397330827054375963845673348754191289067168066280324563529049904162627358228098369562007030496839931625676642889692954880306397770634531338296525319957675489109954993289835364131879546397765174989175206659821202093869605676376088483758031586555094454054841768447426590936695365434607483219996257938770372466930159225357509181027425260559019074890078403029809417157833799951744943344756058991949250007704166526852116428327134137045793442965838611465449522202970507216630313038569434318774139563136415939447790171501013020805481138797919773439171920761073172546901887762753141417617302232681281917109939387906799829141810615618174765237357295973611131298978868006202663583884592886153572272609597162496739576341424823973352941854672312303032686611194727628965512414888837726576483567054667998207496762903218782281172769959854809770291239368269370541259204337131525106345841383662125078797222947209259973356391404711249855021929602908028193339716605890010977953728483485319580766216334863424280288337479575478272432556385605463226486100149163001315911963000552567417145961443327160851211393234703652977557013167337675045611824302767338695897331257410322575345958817951812099552637621031334732035251059214014751957473710585991821098009099539744182123876256364487868041225685292710468934607764645791073371824647303145552632627828377515065261428833007746016963999778610042646486068177170370168688745693034264017281106944917634950213112349182757309909655065389087235321378911055113892115004653482927186343557398037389303743132279127365355574789878265047965733240040318180072357819990369673651751863633426597094870420550806708148989935229742127846007748923354256444486905160565840562712757732441451286211433179453464075473084003973916140244343546207215143259325425816999270562111150217091977032670385827483685609295123137390792265224748002185302874263079956654322255339201037393447443596734771036289238112004036153219320613740075488254747828976753360678067403275937308099730454085265038659480584368111443032184952895216346289853191237955649882996548974732811377509259073220983931595528263451441935659642791421622449240880333730329037578470805323558670836319221460265235207191276194006038359287536543574873455448118276312436991006219695514824943503757719375345566778775085475337526295526230862836683058022155310572810073826187921159881850265157808089189385173159419880360458467362798065931884798479145995904359900234885688269200909593596319611868533819222125090565514127688791609067551866090592561561724861206117267887006084252077091371737723092411250107278469166719595594003108661622951236724297336372582581767771651469406575155336812827797541030730398752405083203181597998606320110838915848574392252504588594774357363054884379481907597250973257314815621232003628019465534376886975393635963909123639962564104104398997622709798431653724440142126891119525450288198575835794856234501440760719634142406609974176243889328992614614648447730493398428291966109029585018591914835701834845875186506340581877764851033101085359488552695037380165585794333671838843425602009574985217453283515787117337249464894762882713223427709503109319270701852766740222635178505844461227007839539456205724450091271676540540696589087134651941591222061204158867309071437649446339873629764329483297531957025480838257047404073210392567146873256192397398601053370508538026472009453356958095603904890132285487703436000022608773257055058802229751288014805502052446160662126862059715850597177025962945978781601049202160667930048964695938187269582103636170161648712503315490641534832395257587481604942458721883523189187661592411127425250011200688432127975013816860937229936232730157349497738901110251280612552396837443347955661162228447984084004688196801298607261760023366414549450302169290612282387465809910363171309114685207233254150643195887296687953769464723973735300572527624995019758603450925564417537530141756359072638848127909139147861882157371361854409135348973617148708750724795182654262100721091471159131486897409850478630797488408570669499211035665738129780868278048033491871163143773932208957300358862372192867827556176789413921795668225165630643624375318284657320876365534265559734711213630651328782064615959779365942961561219926400943891893954030847251525274372405132716508298262986627767224762913712772036484235820921651398810151886945081102104006252846352311875028876018285554677650053110486585357253536970466298132958792264228991750006526181771164597532467369421850185586291448611333071228351039032209243582187280447174018042618898101658788705090308300864336154705568768719478654363348728120271018565675460253671903758932809174211310114077908410209372866384094281550376134133361723572919285520605185022737840100438935294358312174229790873055950987912446372572222352127556440757624413936587391981421313664869801240589796005531631836727870271622969897660091326424308790821510031556713673722112385543675029664890621588225461240746760988554994808430962057939645535898286500567499842666592050854115394506070396430061190399484805151819717619103541618826633013012156012392663047494694407106186143041986285590524624079263051109390730974606823604562873635355457139711306099283658946701330100216050559964201658077889886488621723540585825315118678127474810177137824074597298860944564526691060434641960802548769186853132872736442091686621166432016686087964868569713370182876484387497325816000598393479961150944876885582761873296501421347019288520214084196454082306915264577901166870557380719803620618828304888633755864856244841568160775919167819485451384857454511054483129927085489662333412994476694366483884748248037531338810213498963532681240074329986112355477137020414827247653330408401049953294514751873366312328728147761271062021314226199348759396461866120296677674443520226167958633866254967349534540483432833019566489662002584698360752470736055041185853563648067178580989804024297354970165548770269560129784461014700459324348400842843543576170203566628465331389538797307047656723870581061063165495045274700302480307418095646640115291981387650595728478365422063589804466426538848796332109831642413155484966367716959068683016218043333865118517261722325270357893420757208592770315700192265715048373355672461445527561703417411893351364066999096168213163444775089117086999319018148093224564314350691977045557512312975383669444770855167018243071851127606968298663350195501921987411458793477384398683063241785951192389982928595461974052347095519964780377575559234268687270043967809740659711915218727164068914578967949209635616238137809113516420067237140500709445410867251014551297070844864409261801316027770824988632230665893015933709542250894154001680442184278653092864840465419216246068968834999256474996773207429500727273433371328059544607960131171726473201206434168345610806064250358185136001513776414193808447058920509927425686668888187653837708531710213554932990054607857994918899748366828293799556287690507179819651192748601437207144200022461082081105991541691069367864717730755924538787862766789929789574412672370431263152700264395122614060437265017275061506279215795340894140206203757967478288646462166785989839751050056119434830330572313557417285109725344003864533400931958740225644415976029390301544089273563293605533302299807519508800854066428482711824004263493565774739275745543036932059137738306973875752461131927070842688052152874139288117162896489869485776791294474504734547905098511036874061828952481195212318079563941002031596510371318682625013797404229170404815942143213078433359613981663111104134343700027664440396863360323074236513479826331118371812989210815667524537883088197449907920146399508848451382689926734880050481251949473741077007821086908418845924548945525020265875009033876073027033657018517555836562264930885539290891650653578659160590755927502172425057528493488559181303708219476335643414651387651228694284377314800697162422496926639171410552803579664957747758336746424142984950803094675862718715213588825609723682179919787871848092128590418971465430784104520932515511407793437046601034623912898371776225327794430872145229281003152470342102551521158281342856496153738057820675176354591248608929959103197610826867622767400946390342246564545323251586537581467843385982514679047681285426295794199977540296560792843804207357041247324029270079677514202928859341575859663522022716528384715817297675680268467703959811525358059557003673450411755385591057489404731146148403159804549384190817070132134254006134869202344453229626362602123125488755991812253303895661096825202435444553077658564804922309961692064246680031818167246502330896935529422897143800071870431922091372040908518332081413509430796100106788758359460376317559381488837530696441152172093390146944563539951170396177256158966385057109658774295402805436836160010253231181497493596834630240083257623193649025811356350901679863149423360359569335789970534116736636746864349378608340633029951076793926855536902156522899120762316961383862424525258560414850284461353050116937816687222814937756929825668009870299289794250169188053292646164257319603297680557712908378366205340362852742959637930164735890710656192991312547667473710068747360062686619429966654658379835463161384577867734005987037216288981897849584379119266773219575851037159247858037047323224748978325143376438682986998602085539066622806411303562028590217338703422723407139468186692275687103064588873427203483867004051010645413217547907898824064686011907390677457155523043625581609776953547847037415916772716336435068234687658285737867886409954998385491464969165727095074061266020282343462167902618652158292920522922572921314622485006178455322186355883748432540873356283090092133111237068852568257280948659695564866415792978045091054308010169773964360056856756865603605609577296776126465579203600420062288921606452358734680653512039131596740247292243864949996365871423431142716154727492505709008714631571058631465171489147882427159561933031941904913890681728905212237529686753601900220666270713343375445510723908229600243385214566841111265254482748432040339551563409966086168537068858665546807332777656049235738178090338120106961223323001062654452714390998241897603295022918882326996177186407466483256104023418810502946529171038042569897561058143125755122075478852984396033725397677194769385846411350515700670306209036384128994391260027977747478377561041925442832750252549033159214512102285509979020044496995245487357028958103368359055788241273274684325381862746859834631091790279097996038281547549848102934748613303641121692980451479115612556371273572608026028357756232756281665624890534445650088995236800412962269718068666350812703628202917031244753076062782579915244232881999409627427511784521423643206627849886444910391022333322004744348354991264707100396290253484613554885530162384696640793500674737907008407598811351050050920067629884170308166210398157232417219493564113429126265722165608195396431808905350649391562760126781556685118558977787502170839183985692038933688881028434437968761559032332918094303357466699057309949352516679162550022717032816298333524049776696194597525955846341842392102721963342927313213311681924880741424819677234900525056829472411858050553828017046458601181110219752717686928828855995447569369475838781068774057241502591448504370237827901932931290709399418470726362034256630554554510173319694013953679544384963590891223609422665824911422650712364365235648404974797729328047526584381093705710754688234354191684173950139203940809081830739893357059700076640063485788291573742442467490078800474240363859226565157217539652688584787439416561410618126775290225958464857500026026016180276120458644918099687483407784596201884029001251449715483972753797325802443340091712214686078386419890299349408962333389857045105583576117101034085988310180034283090982784759049329229187084869255023109719175144469853558582509911906727545697772555548506040930254689339031601908705897581543807071202988774754819137732796529216560997830662325781935168447915768480332570825945409840340537452141888821455210255691441491811075084524505164809403922309728921129102651030116508182566027634800364794072611938065801073012175757901523035352830089951529536846309777638549115619078480572249295309977163777552991589546978664099380805054499084587750856069084445290845337059396841726603434492819661790191088300707350187510276036001820859103698120638282237770852162954073787130506302105378762635832662083848760471165315437427672270329416951146276218443927318326287749269978743313063366620122478652209977528250386018269552864162741017297956900364886520696680584200985691051783232360819066223227034853680726218299775130710123776917779936303640824033845410295361405149886048373872643550623463231988064962955153501738431669357382665330817817055304786410172966299549782326761680543838537987651840111810063273959335669679181202389859066836312937540904354565224780483886080734475811088687238994748462892990239765149250589940516775499716832109020257529566264453960130332357884124376711981663927605856183873838533290497754482474496465434417009479368244074178085739719341387940310493429538619205083550285501262706246807568022006971929054614065641581141616038852577980125409255705552359713291953741141997486145702315764211416062591233839751635658600471140263366829992963860594430668807314415703594080289914367452067371478724575237757738891402156368620801233933812437054275913677885528270883473855208210121051141491460127623324945361039689940066820082060240117097545112727982560202477151682728819713674976918385959468894116068637763849222375192771056983517954021907204695999910901243645693840011809012311394060953203783988289930199848590090847124548577447963925899864285232895943539854667609093217060807710123915662555558870174845336532136967794885871908928328256165138902925447116042626707399508031687876819263849106041576741850184151067611588215539842801856690709644935261606942315665349886015059965155785487322815535914129490646519262951557767818595790368434783773572583614629584104173188668925771054095292503790895328562430659694813130727714125249220108355921985074239393717786000199706970190782900185283862790575629097673798771908066629866327838716912236621852318370550028111264965138959571508419386630975455757077806154599206771407683970598115178044045039261381832060246250220581800021503318856033117598458452618126152455979521297902359008184235380500653392428281175873379406474825779561698479735849385191640322504221594964767686256495183445649305586072706984120908789128721554074192933630624598283054055722911074487082249776928472769262313563063148223898894581445393114089753776915631667905278301146786337581461888314707045205473237463959355172558873962071304531325518756900430871065055504205151390374491568860514212196304173173858040587236066174632986224609420869941860878586139868186560625725592977922138243217081947614792015069003404858243992101732999120127904985661165816631488530547160653533131427351398147607031660238903192285979233837314208166198932549319586154091651394703994554765599047853811508795756501028432660825368926182585518726188523748933832113090506017632304525984355484169185348616328348212295605466226712337126606733422806277928793331652578982381274637385369936722180400001267691153253822870398263028638878655018187418159508320643811552203003904618425675156134190170264071335732111281736519775773546086672392699848947593230957122694163599044931325762608522086178160923214733684777699094693956788685964725400933521330155149427519084861876189709089349377033918030027565617875887909331294545394915308685745030702962211406904130611499644822182219904024269247929488767651595934918259923146194738464558566231653281469146580362776761317964494759747912974154705101592834723000112119624929381771090429080103855299207246227905291485209788349782933154645194879035556369748874375617306809057839060660714846208999011052122978392848190121935863316740893532782101932253058717507138249750522127586062781335859868755367841476973880793479155534175432222343921877764424229152187112643417716116368749054472976127764031863305973194231598277062907453461428436318127595168211327656582182013506381634589823001121352285340547787489061299323157964793854748971311886102602541622419734319983277328825563237804031723153804577526972953578183234868017871335072886158762599620833180666168707287190282892748216461794671508703856422892731090068240859359206521897999356958610336300506734717086584858914039056455625374002688505088095089261111115785088144281622279920601065267816215381098631949212648803661168520380181794907465514349555485254282282985821707774028546402026757416004323964293370529205072592722418846846126305274454410632016536728181607727760860355858879499201485184472707450718332536597954917317564582694578265355041156459260535137504167197471883236739573732159826594409409697631263954103641365460616187590715804847572806598905477820116572251245499325790602527508289306721421418443096385575460547529473221984064722991600456983372130476357314118329422521840529544293188614463142846767179773872905409998047665456649277655914657097009545245957541326310679832986816381120161729295250400767224082650656858586901282903182784739974986346487796581179347476441945068566539585340054567296928422349906669815470070611519455837956371249880248155089060545787940733951305521454209610765018878946038207980391897862510108604133237194960663599374063294917749647662230127891284395670851522158310912190288732748900691865498388185636429044977957932741286124627201358177262510775681162458053162224670051132870046692530242852409290652871093663083013025519700219049324758051454571636869010884037220968355050012461532197525693832769126103600566983189333504889645523156449879349046667056762906371344297510868871700136908315255804804836335529430978783541798585202532466127775654726392015668444859160923246373574945819137190478145804228411387393511309331702844859855690551412983055878402148308202437686299089831895043489013875001386650481952158976467781138338790527266705258432795841623359116116093089054305292174242969421906955631710833558087259906417958758008152801402338816256269806106046926024338160760509312126495303050169696081002866759983245770474599787968333645406873907952138918316694175283333600090471166651403501047725297033745177323073258830242163267148717356246251733678057882743639089554410052963914653229951534506498010760935303548826850151374322906568257798221779750114823622851180905962644787755740963909654986767742037435344934404539601054866794890402909237199204898642802690948845600576716793921479810331830969713989831943714984255416180695000299091310524469364061064033921357945762077415040439299661131936546933841018922066382925134863945792993306417737920874268098181667628854052546544182028878614081843406705115752450595007355021378473674953560623451450863607372394538162164167896075868681611261456945417713421053649058802979446210656588219928972977573146180377813927177027994111665633496242002278760646512029494093667216639106135917297947266807836914016614638197435587987063312242803209349372465862151216895527891428210731014294926330274730153648108116920469039035723928518516626615274230844578165887137755304562597470387112682305042505144180133681169966497209943261671122069937252404227838860433488330956185748827733318179922813415066183201658863675856162820262780886614070914568591092866445572845695853361048198569495064271122881997017917790572844767327007911971778856551086279245538206078903127983117608619098182135363443632054794850550228927668108951288179288188913520609892958956079904464449890501604666921313751825013624050925078439941376780682120064178018581476768686253238470424102312839833478706380044462967012161224554327364640986497495900122855787244493778614889048068690979210976061398361505615187510758235319172411017949761363760156451900218410867597992060652503014840791483072762121665820235404023902067631215373511864547303321641825305850972910663565094884182193186964239556508673321809099481861231699067068539242164694060443281790407210366598144364574881958467485111030915694598776039596607542596301759516856791616473736138035276670787910906370680093491235280251177957230707594170211140388037914506329103061108627879880946876563041804151773385997905881881557043487951184059185027137818734613058202176045706466219997585153690260770603687443189086525234705462705769902663735191687124059363307587776208992920382838532050184712221680830276077915007526088121213609951377420606680638035054916111108096062043488930402980365383429848619463315184234532891924718095143081002355713944284264243906766220568855656630207726373357007200114930439033615358864971694230331920733996078384752390780515298148140544995278159494092010631250693211342790455801652460565242167529318970303959056848731415699308109174832291488510344867052271927521108742421767700203133959762802306656999520798042701803792422588264868973877964870386350604016809882491833854625547816118073399493706681912982759080255235581848291098578263818694804704508404201959578923854733745497904724298475143724401976670294467771582231638818769945490479543017254852884957172957441103239112633720064721623615382093529314111559544577882240457919252064634279475073684916181377879172828498113754894094277744539773057065858122568655986998459770879108970805834652683995510242958234900793609979048250479046262647786330436011480781588725914153291422392345233125345821073740462204482447888224277443982414138871950615095091877292229292690362710963025253138519505064926267722754050597641096175619615756408069570647753754189125700458453379885580445494772084600754292934596483436012814686986650315449740382191254431723497192709849074844419763089642006784505106059612975940672137578205120198616947191209281198882160191967877149918383933992037750675883326319937009520749184469672853108276583928433472034454906065343738231732043984775966053994845541566728399519810407801089781261540450895332964156182218549475782003946734479858620333965408195566446127401832263389075147693093310772221104214320607129982756201227202900840757828187838154285261577640470536331554097146041624401216500711217092365010930125519817604233836026900179577525069249162087428728838633939951496176360638028943938492796585094551611056404208287722036572858702197503214973493140897658200041925537066325722194256123031138755624632998021635669002567572723516351656847426099028922254146050673138600994915606793724122301518981386282384747856218403478111009101009166710441811461508357959034500576499704460903428535831181710506232616597856834339572823142842678137352363243751393877745518719717213615340878095519098044038898363910320472462292813334918488503373928410035688225930723544228398580793784804796351451962578456658069669124945465736559025455208829131624305255656878011598668640144615065232921611996669498387251728708813090227888961874418727251295628293251406294181774062036886362610533730493143156436276515428296085893207456189049296476863441002081282134454637293470600532446429496662748332412427623939525039635252067614475348049348716394985224736996298860726384045777482654752855028642759168479126928792519241291526890869766524182121543012416968714553700740253087419489136089692451916791369795511738725022042956106832391363021173403124654712081662427343183460288244808854009728469586490091780787549771813256634106638516838375347733837509418510933122010634884282885927877178211947261420444535602495896734921752899171273574705374685141710483450848150099817272052467594894463038205620527277870227513355364591879278364405147323596934671230074910780801764460242685538243890181463707284008367318006647916198471829657964381393840858241858730027057323042740356610903470708122537878008422173763195888994906481333957854708775626822908826486296500268551066837338562529776893673009772234819898986058812904422727542474117610711150102194172561321665510729079636345898093795178683501713067638049341649819799767878919367901177269521552835438523802297433435603937784655590584217816598695362168948100499271827058031819893092456484889590478959816361665396634846334640975993070915226258455288436906425376356880430011487419123228711527532768309794886327940718899369813071436093855191545217979248187207214797882951375947977872786626965759360106108130215004483665124062502779815162327589220335589344336653961108614244919509412220644342823949682422278676361767605809222204295134760552468081943139124298007508791460132940426052917682554514007462497090325485139794873949037745291784933697844637769811739337563861689652975806125701614273602832102415574036936641787230644128440284388786550815426641396362035487887738006534043376056221017045121364199637959638016323874304584376165155996877982394504320570577605440171620608697966842874515141452692845563519694904896072961218500769188048624088617379282781593925052297057539665178865786018037438834580144110370794421728921023579374909893180212508610026478497128826552907227073908346181749270016509039179431322094820652901302551429444392433545244785161861302528294135502259963439161403884769457407006984940851102188839264766644297189753134850610071638576423420955688024263875549073303114188385884766996555333056702763156930621672961654370774492390256808613092853090709357568534253139979300899445122190342996127631599455063750507147360799729779377858787724745970994453264790372675070274437000995665972684392591943243737302608456983484042135691279315847346918014968125107041129925130765480645367176590202691559217705825489877576254489498572422530144565008082725354892338759364436077429722869332238043496589047101087380628727553592582278755834063161466567351229087595406551389033227943352273508547794174614236775887240172093752394006912123538425627089174507822654272202151173565134508001813862900155671260603348347302668997560930377846014728914588302293179425164200663085089593497193437469311156234764830175193245461336277253823659594765293444387743955510159374470732112472225761492742314142970162809528790995238306960001160855220100178969765833117691385388505833439070688791331837372891871403309973840094930896156935411122322394442790927805579006062453174903504967796359331753601814288545736734168822035616399679580367878163265431091553104381728307893561162630148174050314809461252780030624046003388771043029013774076825476033410928474341647853051896764954504760450177109279275829361712032923383092612428639443127792977216977683539951241827872823956795883645626137529521535361485862906003338206521673467836014016601521862809616796435578619551584519485706468683017338587070254214150986463406932469017390603207334593009416670014835070609578202740132664536163609811956642940627697010943481547371218213069864163523540347121265432087937638807326068817148661203403179212373064872227995815771051741530715080751800516659056924622363066848025204053749530040095523561676289081662483093803692487572527245563055864151706413376280592797241953428158295836543126232269609696457510935625347192163789158868436551574619430921349832292863311624751274000469378012627804268031174710251749402318664980470614952058876461956284956459554294279708797735680139529180128467410409792008117877244565728859585601128382005755196251551529879273340943995811773972329025946875408797125082843327883993863580299135084235809202866297096961240734374365561877486435493725623347256735580441705445268873688446583465681015871809608446031141198266349068495149442031145795065323252496015451105743506672638518318016337423159373754428710348478794924488625735093557853997400520385736852425963268824657951874411748278431514446227292612550983554952901905177708218553368175356105841595691045830210774678952635370433875099117605901868767141109907829766761347664996039554994142007608300667105941525862285494449832375129572028574789078250421942416143235165558473485633043742572851226834519330437402251092641722942273961113061556202233662559547217280383412567713981617133648600269627049719943811005620137316778094941424913433492529963423912000532351282107775736044725862329477060604145748429054261075546032763651155177369418806725093499297996293844381464239701526291504104521550525968953509633726969167463555788757816183159835777606620353028417933479081248956048274518852623320041144784199596922831751445672634825825152447166153565248999207061564705751089629316077998557355920139883001701429431965850459762303052861945080296147998704424490876167980112701442496601968983828305259181309520400943785420020319282890888358633530600494001556037586609312965798859062619009182140184291273626236727707860300234334521609752773146586971491575261867260929227022584810694682750367258494563173111615033278362584506617502632828525144228814227665961599009717181262687118744599562437942667888077881153548152266415417943346137717781591786444042423660764025009273114867854474709791322163142216075895871428362490952653766980907466115590964242468988089155275467694621896305703528623796642394065563014744238706694905923631385020717934703930657295239939053133865815427850777345644203162736434971775950281822103002240169898587975820327360498585550523822994381352586588451012028581198593531522692019065865081677722666784556749962387233142438348456039910348378186695009741193224057882010486429601309157965590881953534944494222430684924789870572379138380483233385574242625909205233426516601708546426901051245222294970820640546194031747985476578922756325103689543833141397275252848867162882086602321750215363470230281660018470572168518589058176814685497833179972951107024546409317564497169927686616099008459682631286743038311423557577147953304363767189306400863127617764977445443570199981046844969774666330429563191609928289037855619153679794861706172372949413238655981150405785218374097523106772211138298448509548019652441035645473786887519181119196283937796245943941248897540234690783965424465998081227807358257522889546517867951145713421178268779872440865451747951651019406567898735945194053035718822607337082023027291335301755224036266326467252372563738526261327217878181957750823584681249230898545132052030558779277147104526026162667796704787375902421621057332351249140966262297819547267470371516425641265815736827431440032467376718437302405368483105237816656542992846588698602494331473917287785830584430812559215181063812523472788348548873276792252629747188646441702859623623562751561968428698204074330154451295499111308957983852898029027304939776908607816794825351100078259827118357819548602357369281949707887216479107061601595172818213508136735649916755117046921805215777125508855004842391161109889731724090491500607782944723661167184848145290333139133293177672330052404257500517371366562699633161309807893863119628522747282231799832006636087104216206766097575160900717884545802667217648286034820506321040209002480501856029801354995431810560062601370286436611580025706605738228152779315034339824951850808855536121438154885270693573205115593390480929321584248100477374723322972348199933627700854928665102472766756080262829825799720047303564432368370916973675320246967397824135216012125949497576090066591203444630520087812351728140720563275123714508148398058126175987373150227852479369381736651737429976074232541283970801090266893410770539094336578062153350698724687706170160580097814870071849434849713444796910184775517233690518571200263837140796026341970582340289019525716259002342843034021946426850715570637751180589146172184008979342256348126879105617711166991475620880180346759863978565869050433324780648707797338640309306624572879742207674335236071278103372319580628927800140759742243400022272695060248775527206614319385091731927920321411848743723496518228162717091323476419108983781288964365833697503340118410226231081213026129896331945646259117406899050098815110677357788133457970563631948157288302485614866913265610507435160438674390260214877858611237416210752697661509324827446632463437381357446472643975817642015867957994788530932964170108565852872260207786874434100365807609334008936564425276509496232655609523669402793422625254737248099390908467105782748845768102417489537531373934176657384693734465511857797899032589942406437796140884117733379426047181088993535193578114619118242821858443977174022117684090373964370046470935940475043806142290662233396348500486130579076843819309586108488299753736575531688712849442521092564901313071318203853256547379654022310902690264959178096025623497603627506387688531885962384493226782608810321080986186531601147908905045615869540169739896359605481799442476299592859885581981860713201299007555096019965346674986512782061344663243829884089691728492879010441295255130109037553894622736746842036176150476148077979898140679053771380551522503539095163056868024588826217815883305217325817650491535840541034121889072047386478961475466145270609719694409154317008439046696976381632826820383353532937113000855198720260072142565849070200012432770665042923476489781058073247656920747116749935616765095643077938193788114281908964808809110926618153539307981396136083694647446283133452713555559474413199265945191116672546285301557876590903779620516650815455410277076545790574915045924954124185470803185731517090617755444294387653354042946790039400000588153720493631306812613166968604685703190026946035759763992227856434061087694183330959347902999217444212330220520062435533841814814826138278850472644083643412557324524616588884743893372639666189520718301774873465298543247383831220748263712479972996254982865990100058552077569898159387970122640772452802727980054288023383260515336043810280654210311570021382716482672444898390981997892342346855488909772141689839555011182124816771137239144376616246222103298313426505704158338842848507272320794773330144895123560205761539124506995592842038569100698576317635280175890219251438841860727519367957065059171230799621528064683820395263011071544075738203356434477728633901540144518973574710119965331581529476875428142410932476834236957825995690027557055952538437454661325015700112114661429922553978653746515521016454888073253218575008920541473139276768344562179378721048517624604462718899803110720220316327039382486134742878501820477475865235897650779946157254353199191872648350158240901889869850765837492928049097961629922825092813604374570204087018644564258261070481002865782161893912552541483377055546678167970898130581837253798122928854172070262840871756946097957047920363289885450775797071608469847734714932279490489931047277959215736420900773106423267823812341289859103528506298458389828950382837025176310422122921989262105747075309772458403827939703755231700688511687076688336215884642812915936104221199794265904757439816420228235085361177920353827243540032034612562827307493549643800409209233420863210401405886292256821975465392027606449621045780700032829637624155771627731688326080297883992653374771817508344444720413892072312261315199331740423313079254449272728102805413273514846001414464681221251124326094480479327549685885109409690834082292666444093216045988214835797114855434337183184997424093249603607274809276464016021813749778400592578524808497975356844890721777265538399400276265987617254022745404199067476324466721241756412335133225960378905030958604044161945679989394931728887804093929842088470213717117832142827234682380894741928436200683533750580024669877165941392147002031868209790457453076960786253330578229861316890074984433678467548634604185206819676369133842174543257081409055653322442753286073558594653436995940656700216168080490436570970220634305742707335913180673616444496062363637913072207999391791235377429844520978895269792918106670933505332726476777219011455069191576095264212113487936088241151474496254476867124095918367707942051273428413285453274910583266816354253519787196623876072713713350071971502480372686599679774599581014709205274284926200304858959353445965378717071094394126154720724055296274254284143101512718993631296662739971531042013855412214937161776405756626990848504356686388971488330580393351035844416634325800350770221309748958468148778947913584953006359077158389037922879660676973218091575481392390018979941363081165217686795693994196034639053856408459253765200177575280542730050795829879669286028489498665935775990667964714913005220932750564491995354144585987164079317343669178210923183529144480519282220507795418443569463412454185099588222841259011242737962528214297459888480767939975963754640890378054315263307774161903641305205588345668971828293308336038981954167350574852291124446998399060262044906430148736194105932632880295688680230618145747671054465167373741420623140719142522300626617322139202005635408160896715352910054783759106253664354454435857980247564799902270040290378654494861163159469832760537182215269012490397048812881662198795160058853088777834427678852383918560316779223907658244703192861468040734801343673772721150952444676341660908396321790264387886219204746355113392303391838257140978217185542552908757224800785002164854838046486912027196267849122590936536592366227171421390064175686699369035180659070169868425055631121157239309758581226740572858813714076442395893359543076046535533598210217517329043367882217249659817578985834946356956483770733510288498867510043122528853961523239787885365994409610787304910079639142391907200973721992516496174270020025703683380583718235455624906013132806324804570754494009327667034955368791934595372184606486557668068879279577947003687578209772254887030283263889317383663977200507848510954801689832323158332688566769179529555705568113653201416328102225488460694460413184735770418397426559767291799666775145230218430265900737517531702216962183361270438465051744272482357557048835363333767948924829178045609387666859656463521398382616280902415254605008997492110932698234046217109070759535291888379831779361027892337691364992013796536197717561451959530260126119449406811914934132191447936855845256462149960738679335243329899320092591412831886933117683163730738349011957139522548865600372086258303413294340219153048574082340369715913265826613283335505747244246314023168268973246052153820294112094154840979281082773657752201095190383494407895009463103905679991295991143283613087243008046082191448192813381367617599137634713609524276059417223127008235800334926661539080334267430782119747196092046579296969950618346472643785673046351311891063544165029569733150279145398076123701474566019597368534327874680962054160933400385533118241727019771137931750880338213654212267310067931542712414447489064203025289678091363207577029487010896243869449945533065787129789716990160780684826173094002962410727996554709689359444779480749452097103143670731740089869141515824295671541810099013193723361306897026842793359659676101014217776735662253587817868607933753664513770507090024699981388811379419550184086106965216125970263290014922155267703628629467679128680050262570963483474148908300873043981811057728480783346937927496531356249023859398206492789704256840940779797103923516692994239388851436752387435248762897691759688577220784530832950038357392066326702562685017544598462341929935748830783897146755078453365472899741700669869985641871854128923864616321348969181599320373543427175891441232417246895290692686574895169536616757523069041167257730778913857547986557608093711541723349716151515823337044354815649892491797345084455295548151695563417798896704943011995340306779940294627059846058579516649138429807295597708331894987714200165837341304323845507760050050001894898495120241828203968303499734797142036945418021323791180197831051772935900118983165688584004826160931173777912197489626019316295203644312499413068146627683888046005616719196626366536020187668871047805793429881175730744119133126139496004814867995068216644953860609118836017214478353886140493671840228831186516561194594406087303495083400718212903522547183163176224684382530240221182969394318536033668829815706468457976471708892591438083309321231735528577601409524678912998173776630697016359201812509800349906291717416670519520207923103243759733636711161415686909869846176825827682058050193280870536677443409598003781465171632584056620774346713255180823007882129584799816189182749620219361051898366264217626939136188348464137756875877139390797646951640080391191431451862825870199500201469072293705293923029838172273506666973466284335933783201187792307243516715423755384966685165300913459898461921564926568475823401262037123916740455954915632878055174493210755651856183916268513693955324142094755997918952166994673517635743173524577286811047326050620699592319271737834105825578340163497486651753474286312751103564624175619133383156590524608506448982648992221919392173543959049102831963925120663997861338622510954511398392743926119103360014085969724808356822995942561668433978136358408985053133491185645232656508845722046430490231972892540008798056165657198649307702502956927463358395129353536457979304796849420151065140926291516222780410155424199268710944406709359784267570383203134455743485488331452324849004440183578658788060464837771275153814409502772891361366308121009790047231535099740667516675316359104744146245764797886048600083152345088783015884600461286639683379214589965405779263726884849650843032563486004095964769034748652824929455876807221342878485745892112072902708925136566553292612725010144324269727050762266387439717068585704981062141021554005435715737379937096330639344080982902920913929594563870563570519985517646580132860196109492341490260695362345701736958077140305055849396596944550176846881658949707875531202487640190675899042753833062071293843836571255057882746509791413274611363391623519502106489308535464318111117788074171892566305190068441721480862384738005741397681611794608333849299865245384685498204642823217236995098270262937212638760910213611915303514139801420273023414467864189374089066781333526984014363576782364052725326340330944598443231134741867400473498550093527685945595364802223341168207898214901259870540502076486887392082998999371958759778344737987456758389884714972259051567927542759259790133662563002116506007452941514214820758955256816920442170946030198421999174521959672768548249421629869093302352710381183949402925308649327568919864148520118541754342093588931781079433688481325430682714452079956715431145520131260741235093722163446338093576415679351439828055202625964323160213272762817512129809878155875114674646268225057344087046020015353919528987167675852411681196238316054645970326076610042030913886411709164463551842096057705247657499285429570726277845619894965063546069140171283045152699019061535937439220277813865579393760425622054322101718955823121840293589947650442938966671321270914093711463386628591571516213956270837291412419818934472462493574682435371615465129707849593263728658115508898860390645529969650178869997403338326701341597049356154335180965859288852008984466435966722910360726222740678813967238400284008187568024127812482916789403659907196089266673880404062109574018782968409664641599063413182322745133271143947519453172411169943876962945471968889549510955429141169747323709598846829032822153640326164396941447415155159329976733572279636169097596209675255236349745848472103140922041391007218331511847061208647906043446687649464463553254172214666872087242037394220148125550214509303087043952033624266525923480777327492369263148873934160568587519450880291910294243775462234091559502931605422316386337570367406588103233432328373352949370150164748578440473251069147778996703206809647289642979561736182766756663025033406445321927031273436191202570897033617644574401082576313223615611392896784193037914351066270394344199183774720390643272149275050452322207945941624698105846076948858646757908642054863122486563106802105043294575229486036045280964483620378898185142926556243978021197543457674499540536918415946506812470259418738344089170905495466500128491548951722290817759751485359249430336670271003927712635502507372206508552148813086974837262269325611964586081787501825652837340472243081589885272754390153542855337255245680613324347533905132373934593845667167544953167264569983421184440586400018691080631085865050610956206471182763790419956240643842800707284012382945622880587522769763611531174572010759305205934708402735411017276351921632262663769503803140475076987152764115295525121896000030619771923707141739836170249555440466595307968715392149789782733467697903725780964438737141057216142060961027815000649182813702844405403860071363301747783405008383896013212415042156885132442283418955389386646051343833974339511545779410197127251507618292170734836635148925650791271187687206115174655488058790045057712630464367449729943279792592857435818717296081679292780968052475751775075634986186037558187632492404540632897968962770577456625385071200615867079877885068223413472110178945158615155034983266181022258560567016593083891247575345500117357942597113395572608107696308870250498195917901955107141875934508498258154389143361806500962386154206036025544217746250642635526275991560360523456614393352978481824885947455263637031250088069571359133749140879960863545155156991021493889958060489168940433648278934327511355134723507710020324179916317709272022728640157099079982724340128874798095389543691626259687463655337744144517041519753649077068096917694779644958584818015484515531291053063215830878786295598238756205096106994288444851111828159169062033565197841076137429336781118723480406244271180170240656898917704908353815790087142549071201860856270965436748205842325179025834203256369939436263595291931299683734023645553596537597544598640318860410395867719365170141502745196977714186586415139579236697145288840127017452563078966252454044386433808132232128381998455481640524322257149542826321413819687516031604793668364310009134396973893420926585181990362024462276863352204469235953029890799510994101641412284831385824680077372584220289632715882721204056656373573823824655658820274296983440672860069001135338971218584274581499598447320439370902819299158008977263041442468444600841674796782079909496443848621764188785286620255132984385161369266236966139270512773744130234046843649259552170911017580490170180445560655570132195050475790467415346515020610925705528078639137833188465081165320768812771767048388642624161477399242407899102574686453164235861756622899264835272838319884385671422787389968418430960135912896907943378568265975377349739917808813614585490309132504104750266182022698412846347878474176392855844942406799162289152805150566645788617351786027517166708816141986059809102430584599399085613375726836060521602487353966858614515448520709712820237296344473477102605983101030496750937351334828758594574284418609903710486418124276045323791419414187439697235158762599000279421074266514256960154088921458082108620925283590885566990576150743251930096185725519933356293892768776249011034505218194504645894365658041877117324384792707322652259592639763449845584742429740369755298146533248989454092750651614785328294973645801652495160439785197894957041086936647940203560977828829675489773402335895745118730120727888809161226439928304405708303909456168788286733651827442747077286875292713006242134217941608273066410417953288862455031594170139141849178016814235168333530642432544437436655469612631946909677306995924748891808369348514654434501616216216188406396710984343843676815726662610567584349351327781545610020031145215430067177768745421145142685124537777608109024113741440877606866266219967455345473228429064708605966036046469216493219425316103657102648923699551107703472990402265110206894010958227581242660502605126432245190122449957180546777312625178678278995677309934445532733539537686748281123774686541907023896557017082112992693787382741124623338510223429757151901649718030414815340864698893641080041180618933859488374815991229551213327617247231931176244228917324583267075112693440971534145074068892040667246027784656117979676630598652220211657508182842672046889013116631932874350232507315149313429642332106978114214529715438590237307017287214266774723789342772561314800473817136195131046579286024773541287787073404444579063025730118921944995747521225057856040623555514346509755459011907447484688931758138864190550811161715884630069890883468127272717997847937771202867184951564434322446080110238910618675085261736935597424954873905097614484581230138945759574889339211313589416444231046347104532082892224417804151079204762494066615046494420689509394763297937037898433722763450187198115422253688646922431756514101922393435980270355706580842761502004469925525292616001208645163946209009840259524122960763138885934696665213942776050512072676211951845094352527914367655011883564994044823867003216748102635932519411269513072498030809551793078422627486428544413200263472793570280136740136209607718313803558868171523169064639320242940619145600808514561132954470939161450274903874399741078387024263931293779571232534789066818322126227476031417559040685208226733042282104980080638167846714902581807791422984391223083938143535977865066111039573409224075980361642105846780549829195400016789843476038862012786172859535473426038993338118018309051500065923205245491453291196505853789152255497067396752464447918054764973908959100678672883640884948335992499696527951362458146364748315873651811750709202715711420230616200058155647810897727286004632856502019297620503714079826545613822293570237554272036643508936862106008232485922452021955579854935810467570244203121186155741716856366747526511704980608962783500127555202836684350350068822259851280981101570655710733196544496761861706114974616540526556681603465540712406772546925086806600483706587919643677075460892297662206095058255761911674025877045306599965192454952897731386089430166165250726899825160886383290021611291505179428332962797331591884491000879919676873775136859550456913165141132843529435954390301256439212888757973627426667547016880184726432264019211872049206166478439377124136183030899110708158758929072418972910152150478178331853346402263381639245877216087841637295670794838619151738928520073724695548438835751873269585915172582772600539070199422569159985871166168704931042954897667451818420443388489425180070645796352067589337401119355158125065912871529997277324388394985093332712635193417516055563358494943295386095828513210004315947165731147397574942535234355734424999929388527127004005425896975616959307978142031539120804083476411653206868496857745956175929803844542135188931271852094165919152752747726070611502504648033618072713884467643902882627345415470091152541489672632095047298693784184273837399715462049422938032433167620623156206769418718215261201707621284909757347153566359263807298744089549000343971421320606484822783931570708852892955414044966891248423955516010424386237111807064370559325942054303771751386943869888687568527076206238756799269097923332551820707843035614978452519362000449411373142563088856751098299712519764398452448707447576695785175571878994309586180914687503553682581928302442521902779725391039473850792950084908010009289264878212141764518978862908575785006619868653747326372225947787687025980735340052367023986756267605114175674213954217865957263503848419593963082392680980604222361678395116209561478740096859736223520371898127119811795541800525507284907610900985966529873698757849455737014356710933892578757073177785587664246458864165951634652113999474204854007633762080966449085504672759887667247483222397649369369180638989995674447411486653026670712847017271954401489177841513211980304692813752676111877907402289554029217964621544416539550764021886976356156190237597400192787162743239256621902096747637802574186139826040599584393778771041300021365912736798266696135192763344264778652370985450243174776058422415224473105291977265651322001785151796190339463184105584285793182195899013668027676380340675760557470143501290738760667479027021131019077520216539530684998264015120377414564808384142270094368805355683020805263678710982401120214519600276444528858293269917669003288923596539597182637857474630275866877605148742458753677696814939136915177642125704121468784223607196325025905433006935735887788604017363916688836720465117133875371240856138919877814512345416036017672744358558037211438071064973104919267056912860565348604507948265328929520702569112881195460102224584835004594771377420296936867655480974762172146602627435736076216397324892311938409658171094441694741656998383845718286112927722869546679349194897493363738265952963883794190929881669099193514321978384010551771554578958174535368080402836784898488836009934813082503838342245663503452982567334429645623068400397431689968987125076862027339612056516804459597502477473665851110259518080245433923703735673401517423397862900334302805985302514050808560535594857277332476557891874066490348479344569144123464121212904802058691519559760179852581194067139541373933949805130522202476496194377182661143020995212560789917182147556221867990776475276865439689528316165289845459029763377466104032433179614199101477113658641892303541228342577679668422386966269058556543269200158568804789333650957720368096070904874125595169689822653316676740214457723691437354145573505089011061903536428400264480434310841805349990446449243410039472422928092235700550460198045603853996892261570867538000818561429751486615077150828484021784965247145583964482110854776624344210987042342043648394270273775310110113110618897918030768426130466779816543909265059409833305136702500759212345522196102200670910805320470135929639870444928907616677513709223746737187265963271773392518149068194404550943322395913461700815121178234343225816205979617077050555647155029390750414426361763823188132631925069823628134604817786863028308110791108909858079145332216753610498846576182031820491054746145725262919043115263037188018721372534375955822607606195063135557766366369074493819704140403897336074229585133398106573319493632784573324822582917728673096771478628745040528049376026385936771855795789256492420935917711547705826396043942060355666638198323030915187896054403430421722311548710893479797312796088489121494046729563327910789329935719728891549522953551543781560690025118690993902795697152900701381871030612009859383209804677554095075827812276578858522498370999394616074323196336201829390214265562864178021315643192888341879899549095768669964676395465555944757302161089403640898588383403619001826874514581767040018021786971429254574978076404413854069336897655971227562543215394420092127494542317003682282799991125561437854986836254645204537011345690379971727317780782358077991871900453657010165845840789268836540821404987021739849837693689187531893482609945842249052124121328082435355978369238596491307269820114132373383905993979510555428061246299180508137683235311751477156917792677413039189124518072355504661522245745565637871231319533979221931907273939717408475883427452422533206548015020099932595206444357387367982153110337070405456132116933373718964422637531879321906065369057179156812454914972994218301436639414079705928306851587211935868462281013028076032560444757774726359931475139684466677789202796374436021275292375782599639676744148342363881959795547021295045466933767476055294157631266226184140257484365113152228974175962566188213492561392801411823645518180125501762689878342042671943588937006622899225675473518816842301383899936445070366261157873325438099907584094524234556565520041944533911306130803244556945097224255583274763565474859669196612211365160439386319047235573483335313678240633622429136918378891943844682420842331955437058803626700770287952220284399166770737041357145535418992673085997258087569858178642536487441102939896001247568715811800051958759158354622356097535240807446328183471018553598468312341659538910901766212390493326675661164636098972974058811043738058584615973144010010003404186840996629790399028769713876685710717306978500764944489971026858389229163781514327845860643251927466836368394476301849451300664666960592093924896712398952420801278575203030452601692497999758483005660565123544956506622084827961014546083787429290026773286882091932791428132810331544447550520342866572007309813105895612263166060170534886581860806286467575582990623626024970090509800429997811704839377719612497494675390927315726647096850756147931512913425081048191066245798562095487463572780569205015337393950500151025824127344738839055715711286649720487821977402097415813306735621291416072454075762180127112362175884441556340581670544146346222548352983914740953916346861581845643607597102477388754868309295664085940577612067942700532157198731570383898419338595946875604748803956338239646028634434886173297253093382185571510220721547984791167779096844467558281348987631933743074246025395293351421163404381548298690642304977816367022874102211739137300845755176417634672068241001828972508981210929530325859841307503256808286614202999693069274822190801709348629447290928023925469096236764616731531816074362494450937562791507125963634955768986765216375692309025151407092050051390751830795225330324217535167105254047932943559503874626466425554411751177176882107251750020991504051989717448499099288876775192176322663863913224840879268660518016304814064519125198802539448497715433096428179805375843496982151113078994003889495670238207661065433929746439399091107249980777103507995337864164795174644952917397733720979797382902366386494284649393867811483701593796044874239232122459012362147805719282860954745823134467507221017865624152741368304045356191034922949127467110272461667168628779658853587296105381487049550787932880123515730286244821108744969566497023360197689849677752178900023555714878705047491647871345150838862353765340145638294228625493063965468131407638928416811790658955246016345721725624178589350912070713957823670303578407844039465891610964603986388859771402413968122385488996514445675191305421815395709714701009665529553871940673073904386636545364374200474838683193923270984762544873736413740899135759991493670274293376642538678986933756316553872852581533411709537099439336718544141268765467102996222613282497571473636972150762385503691403001618717508259072278748293443076353583850447650189098053568621169347639299138948177763851110150473326904981029609294698383743731407475502404911389848241508082285179326968792529468905761964967301569468822871415589564316688915269945972976456584967567116253238495921361175504212499169323630060176620369977888557137060673305055798410370983276090355986068169663555947549074686720310368223252968351966622328734423685840373710061761983282597956359465069017616453295961119809652029085003961404504460029641893683739881363967050562426302635699285538122907073477763212039377368603069128516890413591995275945416486394347189864425240376998904566825953873952239873970075080808477023911441272984349124424113530407133680801691316442529540917781599709039843731641270778795697017575303270221850789558591739662388788513151939543626568728234924823126357133468245315074854161559157612124286499728745759528432229623737234030449305974412769001264381313017809485721550053160057300200194249024276162547016800245439419848996466500156822241921453810783787404983294346825411072815701922356334832322717473822796487675921638255027897616218983140423762939810507115299599258986053858116082690107927682797244180641146876592419124529674168033800267331300766823209786975556951434281787148223567313698204965038095446251185854647771050431986759067633497222935139695444571678865557813491703560318883301022511209125386993698293186177387679205385015241348937262462212439706012354433058525614705545177672107281245194760928329376739339290791590386018304676900634796070072546433581240722876864537944325916102342993024608288428827129200225968880541372659377258428965117664306848495638478422442348699385429674445966670311109417910047371450104045337720313157481192965849143924289726093586632854831109133868619733714903567139338621256457140918053428033225874109012522952386593411493335907167665478578162305917687408178691533478958753558170428318005852415779194587018856369099502815420439587612482803876809446088921090398736230749475674408411169809232634863039867935590058954341917684866727759515001383139808315221675795139500063564690232361697686450013660072691494390740767883712398471149066441831916738236291706109002163904088123490592464528397972840208952834875742776495963485855217847004272450200841145238898103921780102453214878166357513636794576566597198646047958937205678820057487362320350536435027495349360432060318296997789669498020616317604938821130849775060892138018198547655097381489008332184794642399214580085065343607808602163347658699319622210388611690202953731413087275544466258119031109123223612380022098296342005734077050333772794874492561801349049081150620751271997658280007075731187996364499492541083696010107441274132302604350035022564736032239906153038362647841494648859427230672495131164833725856836129216039286712290357063669638063051251035610447355716496314048327973941743270357598440239564128227781705762673637688893154356082370283444638406890041007933380054798463770790958485952073564609973678253341139931108419664846486745152628277679614323134958178602624474849925266760257802094945249422322890720198631308149644317268726937799089550841961613272600459247409021454096950108972471616329127894527592305426212702208891999199130395725284768290923500739297432846749174455920158788906106569280367417897182003559249766280107840787746525589384594749069014590981004742761387368391705829843952049604170793665766111870633659001128939921675610036918059070428663527261404565866555630544603677541512220235796684405155377176170798381330264731579982601011048463376514516026470385239430134739670132449032436415999812970396909970986898495177604335911132613911133397234812453451246714865488296939346664699232052781036991408179053887241301330445072970946203569380135611214320321674640553799581853239409744040332469487627394619993623256209913456831534439101270932165493796549094556751713639029891715479999281734108077991523928869669677257899674775496804899405753531486666335411976128155406038857516697863464246044653875032444771734608605588602162779097128177034852540785867924560879484749343982571873896863521858370773725554398007281435528293743272705853528556405286246287742319761741308331014046800290493083699964228332028752024960015507742923119011983689941143337598343420683233580938652146441546974914644447577083696441824575197464359066870800343486240217533922901283557737575349929206738649920865428661384445762632792435379595775992314325664054506111497529812919226227613564395742899572093546404462581604158165566230613476506629745887640950639956768087351244475210225341687636651908082597598660191631132876778807378155336693009855534083308012153473831162293879137529726364903105716556494044842555878433404758396696388497359638817848199497310405661150822230927604924845903756383481871988476305440806964983720174769848387010080897300494716041055351408618933335575919541982056248807779604658437861855662157258675755393556662340252679178306375930519762474624366163363604144631273912337186942731038560482805603841895446168935890608935739117022640241752997847088725444478590454042567469681328792356158215221548590386468505740961351166208100680864462731625005040857593355758675573976874305059633163188690974794838442245249348969982687553418188236941923713415099653520023148847086599864473563202060563680425579719417854391155284446827277685060574316330435109588813022022149963823762318137198135426738307104322024854141602634714987064540751185954870628240468032819889170497220706348159874005170405264736732715547491053786193470857410749407449730767998401034291984992197939974454345634969320726450901075573218771301569847840314393200581499260993028275744778467098602333152549563934906189918937019523016079854078649827228279721592115118338658921906121826817604582480218476216974301433584049075372840483563875904690243793475223939964107359764864105247447963199242976451331927068077005567280944799129146311972834742404927440403814825331070070756277396093128736111037228649643263365783741999294594384437170074147637824174382570194982554001904207701325140554974616662751544868127265528328647598564654810694557720285376173910673563794115514641553720091316775914437410394573986491698590197578266417800398773712645528307985479097123817339110431878835162961713129962866478193448323050131299063607890951199764175743016665161307437618339386348584489660185606139034097052300893190233668364608784854282548160398685993395795477386356727640065237601164525523617265981046983529370211686865670021783653959586989047613073847260572801735688768884812479012869099522299579068898443847257130288755577321172913143114742803171348077302663687977411713191869555577414379316355103002318129082782841497933138776523869334929547669735330881290285557726545472457229362804416675046611703071142845605136803903970353128921442564016534485152346958378174834312672698527782260383702955982853311949482263434113966935837964418167606159733484144929106817848478219607691972812057068074149679938301397745460541375097099012379141406211206878191828196868779586202146046729269661324082807481450658471336711893713957806011981428184500310006771445153181810732543123467515591611593171457493172932130949206301492317115328988558274497273393776401749319061437809958663971849102122808718661395286761547133438941629601962240326344219245022669194449048700853431085949288772355486651145725722657973275370285361480898013135948760352476698306936699143283434331947290252709135026441391301102836763371698295195530891214584810924921612461199703337165245093335894286199285537369435534882816594600105605008727314121257106527383961048622705674789626577385890099078063579343199522752105925706838645768545853118788499274818332118320947200376830298516173658418303213211165957648710528349360770647892984174072970757770241697406032164859975824093738750420906380387453302280564030166528451486500067299956442614846255370449086936625564339216434099151232319872031945351007100722307574107409455326753701481663434449842869371267328742372532670635015046801802292250355339405860286639636342481212579825667874145072688571222789835147132376579739282423932507995785337684283287093841077205736184896959073402635669023899675758633918457009480122006027844544503935029436536631732366137005255917784080347602105754945028826368661188354431014900956262112520953746587380010633300259710640356254578189683681206525758813003288806645672428434334799800666167845459896087212014753945413063828732505694868077262419383559021507819878587799161707622741740902796210880186492664517032241133169649328959994771472788877201378879964030274128316188987710845733061950210701598994002318491315272709030672185065262879378881242378297188187578573379305163523894843533883049079549631568102433323996625039274027235705461363701249467336830615226398585342297193326028932539354885550554415320518692203132175810107847369465558112047732221123130681297663076098851142632051573174290257201814412058006693034434764128223955572199436813191148320418620651960710930588553485498631398388544981211414614749881589266326558577605847556527406813845075564899556638451419182901421038038792153029924538221483011210294839351469814200863455963868366489531914050634030261609843402586576674263441356677722839632113144661497415284653982514411690141655512960212687142374250754970957047501824768481256296392860188101789889037447213679196419222443391153415563664263428650344328232709881271609747159015718833112722188204324664145290340664122898071243988480487715104095135428115930401890842980658203587019374585395217814561660052671777010621390924358586388388665952311736586327053668830249698688504325155072940374001726710517792201022211212940236122503238175040591877116516249794933339644101794130739507079743671742210766642570803607739723755016349572675788844306020812839777388284948100059067961934508492893851390446819511593392888588683708377353143642469100029775330135813072967101568609531238729185939060713522599522296309233186906125785810953985786082491928929980510794296308744315736477695736542397184066074204967129560993806813658039966369005189162144612902940200483936599592174614782720194061753101180091885332742778417780466145279824229358401288564900315746135317424796583838947360113540172007196209298197254727776383080943772252046661801906034932891478899285619861669120369253196505994564542144702975792463544771680873670133555404595326443439566428071203532530006482249599211121409879421849911135196112066623390972552724192108130842368835206594144025589673221979822932150859418315414479524177796270066778505232586665478544098056955904774591196646165958619450071964555236091249498398050840207770172664123770576950956120177901227666655803749259189675884974072108475932679726517214902398996721634074403352438447370668767518860471317445657665677160521904499365091755279449966332236588247988065631363657920549055316135945337408003718485821180118409792939631222351062470719294800251654320409613282062305764733190621434195361324346420356572216331189781588063862985433725438937495470801293884452756931728818105307744244329659813833089147589382495592451544114921705557444839061401707143189906615124299546692704061822086837380411458673136374579016834293485132922885065578832519303595288951938302200363244656654081864904824025097648031951210744928886923147533420562395237647376308771133438477298395190332155251581731418764646076544584902453504015644679681502280190728754679011701128233243529525325191620200319827287536411236903970780308732942433360995214925848492611777439682766192144734711563185010856180098680120707355198074948379759272281420947096138667982234144655405943798946134031143411928186383401797748221658998529680970308414950159227379745819565437468178684160143437093108962717527020265586747639743119902999961863478761795787065225481996180393087043435054547823949726496350931781629476519580190855839035927897246618065403348374153251989611649877517506286790747191178962280760560093061327648116222218878403357390920461369172110952618783071319675993517613170024914869920171911772319328426981737572022971438387721020832952991026601931691446690123651707014870016884113153575232453167068872893069754903701273538275347735266462749479658006616674531816259973847624822521517104708080895092717196437534164965736495424499992148986603812873320137934617699086763891089846299804113706300779885205072041080471326931370699877928282702106517605280468786055270504154387594674408082337340417833826087254396631845430131732077714025340789189378407268247021902796054016587007083623850979403234214973705037445570630609187249026923245433085987568273693265363674947340170172472907598447201635794385423486417730043683043290123858200451174211632558623717783188147818622089775534238315323052982217879855971871496762216500161144880332067775553528966708241203221560764346063297256395916236009911878151574340252593432151052851328189916970619179338762375945196467472576728430125909239642228106161135080659930667044263701403465383721532227623226936860495752915228134047747773392631184513770452662496637796822828245321448669601378054583824362406385764325246045943910119967468304884763288771416873429681572268094031378957014122682841141854286211576734233810460782050160463060192520026983083591998350708237932763949558139155483471598839683712215451241221560486720306972494647695372246031034308592298218410098258006805714231459750961153691358195496659497832353874740637684283232573879719233365964169586791847298620840538904986296691142410727516178680567770091888603103215643302804198243714101907798353834461087032460569776094053258213010833373492260848576848674470311574426134298424901792628557758835057569292502357984193790552028225990468875179025255206232866384507162721976885638845825026969597537956730645211017871112459245529724761187139607282130105121293022210811293141771299424118100862031074102321383416830668305035811848128141496575942930606274118715739939002341348402583599975480081862199560297291262837060208453736443643777154813999269128023804869986910649602639548796300479733194074919555248632889171464963205672362545075827784510960352593717584860224172263063179460634685790778553275729187578841877466021626993986758158617843774277723556627649008616079903960715865418414917448874389807646904246688459786482469256794247621946507438806049301530771000465056551861106522703045745799849554595471763429780413975274941047890897922406303656821354324926288217607854840064240249884137175902890281144592952884152711318930624743980722164714439048296611014880105856622112899030802164383573498504944966217301097843995051880467195974983691026393599762631485925698270274155111002061467679625023578480057836593735167009078141071964045668009704629143788254346979157231907319004364912486061149461315467685124515174689195870278494110018250552106212189014098784338528453837927570121559117859845106737363562284818619596448043456957895203901746071065911816064958680602551730367082647083443751354075556858282961972622966457694760057513349703714049967789521773103905462745259592431478031823883675942470984419264607410868191401260039782680342895975954311524307892223630617385977483177996649594073065563917822123675305302005679389917500077076645043860142477166726464403292231933403125867029493148441117319367303523468146923067950817350746371308639709176265816849620296777385993139946446953978491012231029643477875357312560163698409883944262440549473551033084081053113922321789332205818236401843476889713468493029933767848879374400782961015839702072239851108583021925192453874922524451932038266247914927650061695615589954847358754122313969843945348337542921589189761282851361437110292044194788260628080028764206799721224888662905419414791823624698634415275241099161773269000482467103258411468919661036841767001275739824421159244624238595307762295550962594513643582078697756604917202749262833371950538121584138731702314118768351824601947638565879928834959872975473220383295924933053570524588232913130245851099215844603124555251172173474619213691125614744277851158860504086010677192109885107691215895647628200520546273874442950884052144274054098661926158925375068796317449716805506620417681678072769376097582220074731545155371665621366629196703578237350662227876961928145049849674936249869647069869163494212298632084086024057613722352577131233583679657683061815226453240880283672055851731908246725084668485601786683581176095940739163004696888668274710962510207776967444922828247054124064066394268206566200499433764761217860473834473996786063666088419890453469077083273756309905925344534658104088379605249283311140928115184781986881250717619324734857421757996736236233750788510117295572914856877444333004110060120526730485512758213888984356436783712087608513640289069596436828453329511796059779630490615665839986073530898735797964668554593928062891591012306911015199112088659900824585821949169449093136184651909404613166492091866442570209956448989662899588643917432928730762060966391269267133160425143591223239542306302221727828805613631418133051604221539763683882761944026190001323767503128349062272065415226875630386305360864956941783898312088277013143285940843039427463602717036569451109721996409442622863706213813266185435639089869446875711604306028114620944522539895875927254292013477905233490259728206949507201989165172810051036092108996337648754917400602838478829990868670124500097663831133328188396670318663475611333485374356491059131538235973077719114325999926118052507361678694014772349821746038494825420603734409429937950738494924575140369948202624127500683665791067628399895379642978904006992468572504188830968776380807911913419113116799560716214564426037144674624817630352510077844623156022529640235511428281119634974433738102577374269181835012796937274183824421134166858904509001250659751369334471953664307308026278215766706988399558064390458806073313220989518679311918060479445931306677324415190551989646608764059020103815997806605762550989284831890761244436513441613450775384652850564764879760722176323839034075587836837511114598610414710647784884758823447874738385767343266159520926075490340724445725599484694573259340138807469590363417358809375237060985762347660093909389022618020913191183146855596624814084973075642367964980465607286772822475345807679114388049533982009683880593444717029199216902563432676092274355769350780793197312788263953375487172011536308382416310688806210536510707838680580695882212377046178895111575524401573923040428913299238227971008963918722713399271794391251899158687289344137529749760333948068285865801514182590904504486968243468768852220247352992074252474768122251703839733512630631641352815908597030198483240314308171237157511486127413987337078873217802941312389719131571769097679734842398023587691600843178114163093710966746517244427632911438642996783175167781696571860630439701531205423326606207223737345734515888519785471469936488876774216894492415492482219493019971870990060067036011449172114780879040322052940303368279524822069260511717730256720671377830527453137158424943098172243905585131430482057407528381784054564648753843496527641051832891352108097074634658895025947429987333314598705974618031024015997198199529876633797747360912754881156247866316246148404943359886819535517495116827270091455519896562805497274762585780040206316709395400954908252733968861466512399707165696634639063896919097572895636866715962374353828598192741685706290512347049929814108678833643223300027911881733630639496777449032436557613974792028694225440670876454487094967215091043763791071147973768450288144996786288778536749941320834634579547317304190037253792119365833243348145451269392825992310221843534604996324832290319944724918352297119014106942529326398375971881140574114840388815312483860114665399475582234587873415596846111616818247205074253582027001592836813422894865931848190975926338684629465932886766148253763945879231502120680842070870458701781486936639633198127383847496370533317818839282588324084724299133876732351744338541228768561104297000835080489400706786118049623320830626812246292583937177905407905164368560435506796368463618873379680928072830826315492179155622144984549478182941810565673033758246150682448000235297092978534957660064444515201200296814280576242298404597968878629896850230918668046791761640272726651916017802923915672269477282896092501978516821471365785603287318235694047888100851183299016157099563197827744553561927823848442109616304246492989155530816167592967548131813348731844008356472002569063495363397501207614545243056907067249121935593799086521816529241640468401388635446900946635540260147546099521312935584309250042485129077479681753255742433135582032798062336249324460503119917824642799023410124250941925212236285683553855185639577221766083463966565885101908113340354652550096018299399088415167717565349557490310110870575763607754945979119933943367657780794956737439736904375526054630396398634884173255518444337180587015104714148201335267076699076433638225974394468975903380746004534623505068109755120603287670271528229587198279964627112584002667582556573350411833898487454890996027887825772735661423589299661320077267538583795462422900068265918284450360270131853940322989922547341120159265058809312355396854701917277002149797437709220822586653275382616381554255874408042199178847704778487763461647539456091311805546234815158743275357094301480314336353928338866290495663744012032937192164136298804980398272657774614262311300785388399108080785128766850313983942365530732264317983221463422752318432531743632134856822773945003341781811039211029865282064980356647754284322326783386364161094490874245632876840250535772342882236594170192201787854504741963601904738721182306343327538886548385774800849064114233019198245073873940260408594053515720909938417516917514919077145060701470649168074760580095142941097234356120188423670451968784014102603758177689609458743650417287094691399465679094216626062611591541065331639196049180257312234332441743664612613553557017800785174613053425755208203313667064118093818834063544197183982152785219214581060261594157266454537954199266990573435517612985059802060806872048981850197734946138440093009465418827671139960601713454271449596278824740649612764242031038400588441348641382872074372859986631663793802560843864455556228593128625525608845887273169968577569879805162757386823522068460733011117827913351574863292631137943453580993121517517480972567307326883669348182654307112889406440731092722102084015237204066177824942765554334348471252958027066768775556736039537746560017343497132146903159317102290556394820735777431248295425017374570985406222007153583507066449090821103117951150729529977556963880042230924333461465461590296892437337951003752089795161375251364722400080127737231276431730449313610384417497359731922106198441204464580422000352587919350967474578680486696921548986830218827122387846467732523144706552543246857359623686718207301497583987461695679097545756806149040608970212694101852257454310502134777453026363410801041886629209680320599160811434360481162300676603208731635333365619011802542822157855459073589811811420244851368545360986396421197731504804181465722011686712772317489174143904974012272569528908789793741124693502087463324375053329015306953530327745823861477876710572446560517046339253973772517370767665293619826086946158586116802139698465119282986047960207000871351713835070830311107499248569034869331523251459357729812967834242534103021987322169238426648250433693775894634332917468545180174831509943086308941013794676504528614423846322184743272311142877237341375728326092716611473273996503345257601097826734111679548725565149012817961311593539887691738368543719002258607703930250244852253630955648840697649233870380830291908169219564884241375790771149364496187814337288329487762384619366273678414928971926715981071694942061879689148912593677087225128517946680877735944328599910189593131408597409406201701393722938407360926848923904291771379158336315715806964796937803631115054514556203409040885172832453861104070050638237817719266957954164105628399266890198451494182228562198362658797290912030667253145566426457044154225642035067024531409477601022345400060984343049258589953735469782411634684351863308248305185045879548466954749056202886142968655346317253269201220579031248669513054822151292229597681566034787245973152757282297663316733146743351844157962332616753695513283515933437609082891633385359875319300272649524674171244922031150274427490095980392870442254955606292796686154991042248614711274182901910886264634568218082265761391804330211261477076338446207037321073261725859796822012177435654619249468970127437103452765547663090038064981731890198061602731615275884166309641510655731648573934049016430038750368520860202510632888147529457909204912104484657558628695980202984988014683032918801702742354807664004244261125194165955038468582242880602600800971958861624948882017494841988458338391393522325620729161679348393969836844688249134017915286324757344563519473952767697498344662936533751521532362708307546879227832907320001029691075767383106172955783398982304144746955875308603083413552274174726536216538588549076720700430141343396126643612555724625779668717153845110515586553423368052514562197920962291640179422512473031205852602928633936716283049636409663671886635497803875839402158935291073844919917192560649737577157087530713813112980062189572086434694893171568811693558930701809319028686430230452716142089619967970965673332660009270106061546844537184255073226623065562606266295486589131532512770699513344104105144777938684067730973621861690623554930289190192159701075669009021958255464510660280703055882581311781725984077814363963946942884500845191356058057297815901960942993089028430241192826263167366170786533222364451427001664573331027564762889797056464515034668489023265624024168239683940694868911354298430172656602793692923383318805962414468073864144920098378609741130930091041809477808417131223107921947143927511450767807173922522748185277296217150069529937938871548799323293573139756949303357091459702650856679067906551854597307996203441824656498973325881217311693530715233357397019022856157992003259331078568052026655936151017838572465475590819435192109119484922703139043338208892668087042323150168452248553853018516611471577560310537455921392610814893869239802834967839318637739930796554819312379825151454194812186836207260016733816224885749165424855510929597096651798324667816026604069028855207494427272623213446614517904390119977181363740446819674058236074607763376482591422574226214172459091547609095969524835474766879526203261910036977200361947681945729012235281263024444047397608986277351574634050155226402776330262281374806103060460151090404684988034413313110894490342869354186349500137993537784235615025807198345603367658066191193354546446435736870349039349133250767348164399695502604925011939589868174145083973678737772789550127169251958289446370440500654108884463888049248978010198922288725515938906963516360284119289822722993278218884331392830746644935828873784204778383491763976911320867201928692725619858428522242123515996758017762768545373698923662500267782889738485146620326537175506855913779826480171142448377416896104563523952992242097850695478521027899912529784539432240195911137157129102036776770027844252589307899139187095088701325790196892941023466637086733648476233590871653432887751373329231449228408321723316613100206319881879670325609029639333254430538509834849097918889031897572698137434834575679496698951387864806803265827294059503106940886878380902862864282108293356269968225370739561614274104222082075403376089556698748026640400214450638193685739514640499701508767034980771972909705006070938395030031511549334002232773566519822050853775770018098792838911461354246803823478888615040881457126541295032597330129585394597831434066740718849332288820339692439179079631586097126263252774674951747628284069149514621353024607166467047187237256283612649735788736059613171476736390415345067682942132045928086867902739561031550991145865768902789684791952772354149199593824018262625452772726001720969938666091390103225990133022520354051138773729748249329227637403439976677467392298801751442692740028156129923709397146959574017062416504119174218599409363098243987641547313554105980571003183334032779030745362286183331249847890145325292943294540624978175314787928134540182641208578801214183838862205330657568457842114397009864460431205175565527089983818055718318238728069648911208927189238637828915438792791360965500239348461886421728459863213928834323973099643693772729834906697250035923003627178569786187582548652364861620422576255760463841645140615600043331456150402794657588572895537675229512027386956251060894632949332344719631322153947119553836448473555992720759221889869981637255501673142638928865505802076192562628949770356611446713027656687017275291325467941112152221979068375536850322242894729870091342158543913957869121123143642880974199365825122625723970035064547603394208422072746511348779865561764991850038590822615852264932930832777544673170834494444743219069854599296731047624446677592839821136848490046127968764226886690200150666299250359087755655410405518134120352713076137485293757999060220060564769658835697120252631887228167781746997945635617944756075908055142804292688657622276230170746944217612081252680531431457523327387482041797773808002804789636483538979131301567693125061057941092351946328168679293785330396495485908629690875529233624963363457557461951314684491280990420762538805531638836578541187419481608719726879296099162194921803224766730373611896451885017882760718673541901670081116460710609320415481075559814806725636752182909870982030348596684763587790961980763557077113087068927546181714888968826479701324410087275732520130727790538786886224815001566467300726010785928772203963990890842091606060224869506400516875693052991013701734508584833400073604887861152674301027737990632511572705028011227710243961749059135729979241457724174259238479373193639820039454181168439269949271947589113574152614577554891290963044196764126592087016476371597093076155300115241404615076582152272763209333706951192643749093263697038323612339322116963687647705692323356624452820705656964977007767724183947229864195441189309138694674971006972492250626729511327365775372099635583438790474657444628672100544807628718872229626795954733210115847844744312050804783372292120883062967620344314530754462427966403595942512060299587903755608919589784450612917367349277066134002021305454574276771204693358354895735319886459870884177340005405203841533636989884936228885699935045373134352401982947431681094258969160597120505939393798329656807595632690465799894012687451688571751077512778214769631507829751292498784544491813040867748478668558776001182888693900061927271004665130741391255202036189162357123937248804261449051659281736489170171642601289769444173127092004357392503105723004724855341616686187259253946255986687744100551725501128733367767773609831998851030058572784298419299582757517931807441814571279488128422959817643763872907969588419045305354268973710479107567373477323676118010737082125614043747875494515801212026819623374993869423964864074538621500581081318751543723315214978398266609764893203437619410447239704193983926493090886616513060356379832940123085272629242155999643523938651247572709143057537767130271058270682204514857904478696465835323474880597829327062017100796958391314756639447287695058435630062355914994527646198094753562605384712392415600505546883872352596773669866421817241789649597051503378627450973571742455279942828370893522766489590892060000537142145707955098979018434340100115412130778357310137124924367797233643792960650664344699320936918878585493691824844950756629568468767968880173859925446098481142889653665611034074060981918776465934147152694074587755505405689330202581432693242337579461853766142564672790026750785412908395906702995237529095725540023174465742134003653276982334644111784017172128025946863442548516411097487170922284560285733742229921888000094632175514024162944384847542273155627410566578518805374569037987579905540971338833291065425827635307118714172495215894055166508893414532001363919014280423970839719390223028822409763714853687354359494878947473330141824724726960764736610024064435584939377491802889542651069352628733187134228542905459233604824711789481883674684513404215621256422638558036364261150434947700955248403339969239168548161723613562013238747153790041359129711957626557792139337233990705676243134797296498935245186199067144986553583547233072077170955231243781418985922480617078777706897411117460727301488074572149756950268797441552586188077874533669379117587734044975091220742784481716859047288492610160934943663827914049139730916003331674900822895844125617320095327296187345020584092987035996823104049499233461997498383552537267691212902699703360250016623364269675400950063112380308585669933608893187880410027958406565705375429882921101204055550670386618512509706101652237283468909726849756007214584291796685335478205789555157068016678652691235749130898075665989156523116066855812102390304937585305536163279581356181908088445920478302580512587636399967815890763686847250093256550808819722067551791881054231286034741767181350094399969340433112411054829235696953479191484938690491610494543710639590389526460617404161880958025493434270366868483097349171446089294848312423906048324137147973801943579727540759504916745480517063640228032893922237896294048291571811002037239282784662127050067773128859159762086554744431377786451077757960431090021619602995697104586918310042428921180709496459973648538967257226547275380884713995293477880826907241932968368206688356581131844854842841104458495925891060011949627060322939946868959431209201376909641665977309237484280585335922712894233030373984579127937090509516262731264616226466218627119053174533662152726289709411896551621651275700051165580499077307734538450756682260071031185962492635896935798604231507752338211819023847703912741325197417210141958921956030325285518401148820867697961686166705671098748145981256609939432513606795853616773305022531390085421827801118279280019821979510097267384143111699161972790543377354740264709278313295400844839325560388278603418170096338611471335227470692909208562597393168660441311611054691697627619026331470252066258959970341577721965299135727718186810671531229398449988772776840267690461131061642743156572359853539940083685205454429149145843142286085669474491425934999460920037842700556030170228062883052602489364913102421937086199968478341937337029306042098614673822665471830224614020873381279625550862054830150310510302693151294443527107822314946877053259432400597079082826794364619404431415384739424184207246363350636804259465442383795128571938961571586104147093242624397324556700589702281828485571708528782019230393988102988347315646798816117219186153721487342351086228063787874706427517293321548757618846813297097511074886015633597123939285124795536558712162939884003474384491736926543477746963883809652815253909989476628783183647498897532383374312380616129153142322784679412373378966785953167885194940532376836934392690017172088591792890413372072416001258627851688322235775426652913433874720186113915321980879506127950303544004691267447876184541850372970325707452971998005566934956066765854843819673487801385623519393087035104358116416289640423425227186611635046400427519123092985466141703537909425272800466443156107188514108014875433527492038004437032680502656614424271831495266451362129136080836658001278532942517191788928823892099748453940375985799297728538900918869321002653982266080661848110251314457358503268539012348021665861185081226316660865140155133927651313397956804283468909280785555770552275213729425209359412322754054847554552682096055178256805664622344079133444759674789549265251758161558870963515162514926037879219703345935580583801327321162426190612364058446871386056034322300928523029328873191071290573140315161759696010230634676830837151958153609320978597325797471541752278757740592351650590957303147745515778547346973857354474806870260416141041540874253952701410411153105074999811297824085101712333244431793017675463966775502326666687464379874341741598865431135051628465371427851942921463762877926190769448746222440958694706555551014073774287656220074063260056104652565437508848120790404547964563014035794767040642915618572126953919396045250368288107551279489756561589834641463156047530420045371535198421757870703269254746542829329824973048856265998880898358155812784712419058644516072267558572703907342127195288159124235427301009095090847538065647738325148917701231292531112458002703342198253856394501513752013856796845561463316583618061974073017608273634739199936721985614040581075393594221349097668150569993343012897173071155546913504641385176227609496376875616123885071866364151268811700918642502564387150763919745272398733920862067917455767928937214872256392151864402105486259961519059063581632370366232715402751382066827790223284369461245941263756576243972800433887989316612727738518964891649530610486414637041092896450141070688921734065616126540756752484560780458538604485596174989405148904853107059723130187074911196023017937606418948943609474247179954230197902679702786797888752607452191248407938763922883066182441165892705836438102037602814561976500543764497142284136229058384933501657237410212263928588869488171198734672370661522330327465332143344590108102622025177699066163018827493920106724157680765598424965356668823026672305166022646409173425063488033671751376255715822639301007058235025013532304484171808473058023917817238550206485648279359867038030909731286784197278601020156097059925468598644673965586370275445768286667466003176426275118959882806229516117336206582307213382400587856418052923859723023893449029987408733759937468502571432948220430558309206290012241236110176855914485236849404566359532541290033490986351297236495447718875270280391750628981626921443039849588624902664199143434099123682780851779416362418571005367423692845507431326468451013338500017985535824917118101027944496854478881907044662472135459802850604641191674483575518863551837329172299715419363515639418373534398719383179663691602350616991073139676431184191011902794464096293021061408067135031901637733878355012560596472637933949481145074737069884616677631639170417823749475161614551981996879314849954563031725254699457600141691844347330343833600057666661659495019264095549599184106884295951825315326609962358727955241321954283263240650741157207314601716153001701980245762912239035396572174028852024817908096831897254953351393221158943713354194950472819404900989694648438375882705773301784482733849035871154147781631767972430043785266598188309128721304210264120299342348907662150154560135731685707173649556643778307366105144860782472094376405755757591149952000077031809649856711247154040544276682986038699818055830347130117526964303951273856333185595750005848885566410448710678564654979852972991241628845826169297932457236253113211271898680057131775634786637771301985116708725388174393537681488872611909217406437387566355587891578282946957904742809823694280674535069601298801848703667528933693048063553285145562125084913512828636873854640511938344970789152338392200537904870953890892318580031131213797629421544368096995247803535548747214682048306686493975347265558033206529771601779981726271914973327292224874651654717391668266795868627009467374916000592320763135738078137974880771664148842605466773332122650160746905394241564038992729582008718593186115049587126451821278080735375609250554997793114861439400049736964927692759517538444928403363002213252495807981593337204842213467533261647664295951642158178494779312844686373505020701964883948835920272860425642255595124363684774188430237658780590765212438468362676092026052260824975660234754517023083497765520403126712465620882684414964217420326597235064903791188373565494033156988566812371356800034415225573832019958933220332299434173371477862550420513853981045627245121199106106121493258341256561218758763770838336810243778761754032184778094368665897070027593758790488915409631987333666159884171205135659312117573662195405134143354794312566685593104018355377683545954746428238057783631985201430849346201458201674455806598600801228810125456184125759449361135506565223353141684543798165505891633336547600895548140488287238390295647828101577870526490604530140811143455035406124704348230271447764596107192690666845267913939164781700060359782890789181570717937372294753141561236355319814644999848595542186218373604063629846323774157091763856052393505636745000971994475653889889836306693631665040928673239874498514047623372889990696356243941883182018571921286558888350729896994612644019558461430085700834754595055475528050645279507234870961363169749495826420818566479501344447676824253569589354103211855767554440158481632006248768112378425049437189619201843032808155406106901143551715418054020315492968288765866476662970990597480411623891820975115519569829189975391961679478990512721018907412148333209765201299186416988366650517847856636073029459577841209221274220831477755088885846792635027463074506125511757785042231961447502084929669912208497990978374382845472284095065221940497345714251697342014737994715131998812319391633533981974065006822611835556750770512038351670576876589299662560693295603852080210055655955145283979770286518196597143145548376399938517133593344883742871415392757071460031124801462394521416096215884216439664797531279709198533731638769602389682731095982453871433453751991197702728529270516483077750219480610960406783200372523943492084280823294192693713637602924858758743775161043717058264257628872819666483275003968652761716903953330673092528459928410286580283245152516534667872584670473178805160119040011144044913496966123421776429974651907317143567749275247772011541740579590752192203114569644306121242422308084968192043256014280632380435252423199885502222432441812259085077726718194827842218422601059312889242560389578690045411466569303475953842734404078677523759177452826267913908525170624729830100199048971825101557070822244824284403555296677711871499660351089414961303734551782407445380779130812201433487413075899100413291791437155707245638170455549463256892895228477612049559175939944533280892540306981677666938844051001124564633664656771988931058354569579230583441055335708338568253607784363266623289707350130384535635188625019177924857899656576693628178885832214401195230151507002284564912557660575117929107528205396963068782350768720771428546915354349077058418581341092012728416374953122024827184380121883410474654735180971671400487261595957169994033375149616058692130412864313018392756693946082259542961361760308334587188120206464634450689865119479477880638722881160277445752635237587693698320183502865545070933904717953005503243734253873437590149491588040085833300121326162642657911886684976233916335057631499993275653727417986315172394070079718400912938710117760846775386888067423331986322025430491621718170726221651173598314376093961643531038963714459737312154363088019498707320324063681856374984588258649575676097737049988907844717712598227366493332455970739855407311063679256023215263131916523753620154741186703036383757962853196750368640281291311867268071200923712395573607036635131988070300101372210318743470505682542005462204077484305155447286826234935308820277151237608259468956228719498954035320315477593353535569712851668859516161363442308488979958123913306761570589469454975337831920918110076932370525693129835312757068241913793829263096787720789076316859520632048422640452216321146148147852238263977710955649632001260660580988287066203263026764934000807746625263825426192002468268004916982522594000074616543050873565723247540997787490317074587186786257787059413887042693499241911849047268752231743656852767879993466626731017443402948120605776326785932267574174318857991825154987214509945300671315580720616464344557233186456837145543431787379160398342751909003878878061685044006512077332029068664899075021591657608149920439490419805472102367917780971433132637301372926347736047008057601884776233824098065017303023432910727779729639965065202471632705918162194525856660963282934297010500749305464529399794261283560462655489541062064272362999163821448841525057580132558584468707690720661900867551029797365870838746870028786004854882260334906073808431970744516564266678152188100593724336052589451353914210255102940936541132696649543555622386668688711857670443046387147421184146759132385887807236472333298977343919039460713507976090193291719753741903208950565058642952040035672271984030518552443832890057824095118512450904217213278567147366339632838675761498138770256487941460265649614549661885423102620372469507790303309275900628812569174394777550955364242579253543266262193078607781538397912611902412192611252637468375797598794997324513339591472451516044789393415527930981591114785064279139962173372648350003451796485282077447477721386454122408902412849410324228821850255388653769715750681908274343528780668969686868339160546091001932094844902398910720919147172443642266161556277429711935046877732191633369837120509058967130151586250808656790909301303509073404645557171784514836077228689419069490839426846503601491118019338503177348569308129988549691082742064770937636939965307483789287754247247193662405548428172992081756297183528914946601340416016012593133573375498663975977268277909827102579091543166938001083908034832101290536265834597463637571124085302002775105792674822653006781081552825344535912290599583552746382998012643656634855886073819817031787295194077373842077220763237086778365740586031606571106337535938894028346847764029444301989870939969493872227734260891792306647569622916540598355540441432355843856294194824134580383433679831381667157919575848009244029540060401019224752604743386532125775867716724345688163176913396932806049275177029091084696531230444005549700621564359168207575028496618642703184439896458202509695447265869814957077022147051018067045421523440831557595946336665052358841366190922814625760296715661543368872100095528552753738318351815756331549883612577642920607021743918602153243936322522927020801125188674922152460376628778692650346988977259173822197947482503212775879825267784158744941725159772135068095245236631490720788082306546997822022999295462606230115793034409617234209596229394945122525256067605413407074393071112804853597351155591024323807887386944296199010522343672654211491815557059474214792282696211400267454497319033471548046154154894481314609247228778230180155185628115723836606329480678657722306089020588720545420480449789718195728485787510564697270348136038689750178193941970802919376643501045808450125799791402329780398541578438807066453641119322647486042832188655370823317007215703418937316331314349422365477998673219714629355830633211672270066849966267546521385778038161635153357958202528045355844652558743625733538459900246328387197446861819953697383241995021232456921208650408280200093293097323168346133657717162239924717732686710008722016120221571119037525743915500599064598580545651056213823000033632478528073285312668239237096780773800213066321764808230872937500901302185594873180052052518118874051422265014816774269853511998845443769129244454192244301131551857348349308007974608115031484599228041094331970268338451288373971419382094174064100451657341009938438008527476960540958130086554987728946046256259692776538351342995852277242077787798433361470241198162761175865465840682502269512232836569828455070294632754073448644319901271943538179024207617487737860193452600043898469516400150614316993816667483680732431893638051582373476808735563701926159732643669515024951233208956184087502772009373913008206179569583828021252980183014414379054370982143658822482368330262557418943325985161720769614082422900786879079528501696813134546145841737973349371561831155834738438886760198011100572883519438792001970299315349911191439270440545481860404546952925424791436083626042981388549715665933919510273174389396271633916372489642073594665753240095704702030586666315580247476928682103541300444178411736542298386085753325011153796053326811163294111236093410004727578054124542206637279076256607920495458999903513951058667662231154331709981197240687344560733965247657201468875579974657569266778412139524103989861915075633317591657486221229887356819829001681271554047204417953314208220727227767510807927348404649604466120126375412468021708102857178865876276766408154010145323303553033021255330391778098360411930224664911373846576350484543613766942086061153227571391789292641451628658739029928838535370445107744633721993714924263219561267657630194241867079703167731491694303725068577967194075252461123593093622041747747301836044953480744876608461545344431227811082243973039649651841478967644372035834620620753354622290605538691915367667930911258483515659075050152120504176755399073321362314067546900426842650074411365281752705040626969518755704533821343616424205357018111056714079507322997852475375346259562712998897767478937927492384604037320724879159872571728198933717893534197094983345960838751278918036687767113605916287774962538704773931451590680417490690390732358732310307142109833586633114142975965111448472090106377071968557630133029955146313416703071452375589056362732991306794770046448228159070840348208482989315146082002181864333241126309594160081708951197122524762148802126450367511218756827430357593450680588330610931592266789503953695607949746207993658581814724515030262633304657061087184018214419380907327061284463706546752210479514270890685035823427860243685824128795074420453264110089712427900560397135209033693915226736844574730323439161642663659618861140912704814215203073013432466335672196070352602784555460884669185296175660898167636982600035909831092288938870939673364099998880489856855814164674689107973940799103446305449586780250723074482636930306772434529413797799525951060084526084919942306685764910985742061791529364403248602845503414574454740612960458952397776709493804259932284028638955665921721231373808454876511094585470549342625321043377134509252899478873106098741221404968880768770931338005294273658288661914631831535254449433442292613155924759219980905852130427039395207316174071859478201519388118114795496310136281102828311329972241885656809468407695959182518841919257441785387899624452896457482379589788638885971732375937472394611564548404596409260577534587735478918904027840824224996257549021684861702034381561138700677673207831052255640822181170310335811415393035349020323099959834846990800756360557310564532390573053283498769397113049153748581923743084069461686133198727321390745574460201659413592124808286277072845504257392705990830389628413552963508627944504912887750054065527388141975050480295722581413292352898953527729783503240723717558849150966950261022999512163906536021707485477447849510438908859240283780582701836318914626657617373372917110844211004144986234837794012905819459982584824835188169664720016113841562127506083116784352399668982453116992285778174125065837238351359217872935438211896209177626037412206173272797329595536582657705789625847459366316065588404692120219532602894179529434283929232617953002909782445090207767652863764769031588428870294599156227161667447627532290408867756028662703005044421518090932670433623741495361934428465444038463808595406961748736137180213226014348004104480433729373741656741575098252199981442637670761443040590938056803075752512930379662052433922055310596409048731387086477798565380098283455990051265549051741330468211308671156375196971887877778081066565666707083302298053614650346198282886323061586799388331500475906062875921055758460614589844799944255664209384786781623971599374699200974827116232512392174459145907814091140912504350131526350865038105371675771353159343669572984098559405808950152358748364376524005488483200862372104283819569824286846049426842947737999318463575993558879788479694192547947395490186057062933948800031292981573908369081616102677834248491443629705843573215797751858446689399280243467990162565999893149274452604762249618601702663353017212976229948530382981558721624967152531954274403247954648206662173347116931813883337515871210890953648788590342321538505276982225757324066871475798771268732266056529942447316156347509760847080289978647727187723555489982015864563702988334196911776316961616283892909709162791544584911648574557616458624744067590096252900840362890249933177547410914421083568484267496698737019422997129682800941513299018199685600974675964041078136448980864107211828679666113725033534189933569550490148660139862401083646749149261402251118698084285022224070526761945752430287530256890192409703453219490295709066894494237953955689482477634794977333279554259334594547530601046663783170486165845638195359340463644845925839137996857056217867562795107529562379037911260298099057563376968630480254026324796068183578926779854612023980398346593521341894273836362892525666328903841680141678519200987932427564446126980439165684702854142470588104282163723443140507716422395817425103097458772844400203612103857469674506856647913549302711082307180810562417622596655550247337903086705766032215145102335183870539349197894735892276516055372275540805384245719833024397563223036604840072307566738403888683047058463008065963422551527811564643173198879118051441603141099881905924614497668374675905020392212013022576044157878886254352977976273786975210162198795734753651494935667387619309073354394186163348787131652473430727448236693681982208284961940900219724500861510593085136886788381503657963186382437176649514298139400595319219333695842578629719910291611461243641468673277399785133016918750906731387759029327014137752445382681353857995024513683437558466499343987499150880139962397907337314293755144180961022952678758313850669639713021064932816202813237345043353907040504687889011879292047611299918874643878283087081971324144010722229725639460146680809047223293072049226733098602740404944660289767091840727395275322100784796347350888724496467384898004479269663116757519920799852860216103850921744747577331586532035834082679058681331030287742090863147336653274421817616912321957192176374005564585526472354993236388089965829403879361949938909607377876355645853652964444676642431510713363326728464910164968290534891005538669668312494460192952132019553278733352298339403270043787349513975183471605409900905376172599713220046875569792941894108021279420593245598610200340770675656958633877469678505667778638235510058547426806070531509117111417176005995900263475757046008856852536851113231040819030886558651190686763544891596019925747838199564775814687975471331070812076970744432841014655707680024951638879094046452858935290249404309498382895749690309633007467006640217303791373696460979909093659263658624077812966051521442126199823683959526725443773902730279073581851098855374051109546451132573894533685865256996430659930362443374788825760421835598555958232647131132378630735410048503226140165423427512364495986874555552510842667016382419063821031427061152134634918971458594352347104218053311142805848349576655484900197571498216563483188937408091836112542068406309368632393904998662436291607802758192836386162454558250238651462906797368971019807141021152706829918295641913221681563505131665827961216775228389756093374378245837288057193313208305850660062599201936306142047798469436772643175428430503175923487539445708731959197885770412037295693042181665074711107173047893077579453175851201627747469445687995956129215128102841361252283657255827866341373832580172467881640326326235220259476450033430029607842635489034235041995082404766038770695036061967841156970432596897958962253648096470014418443234905758938857675838964165736454249172720686954612239512243809981470969545938323174125081292451050397448921995480400828550944213720868204333285044395077981095676954175459617700662310915952357146235316662697935896174025198298646413714076306938815599701938604102895473823303268344864060148111531952606506816167750785560350422227873847869774026140549937802349075121678967759795773643906217279802474827852311511061646440885832394859423710486108230341415512626436182436689098884389550571380300386487374345228898520586600311124670451202031104596778368334646663030228553353678031464947868562709289823629345880618131744213565099473441430974817149159954088015829624630074773477842570047899243375916482446322852371338227981241954975668660319508232575169041950960631104369617976950920401785512047571433682103165805268075323583966013371668177065844691508978756945079923831440911607157003230757566349481900096397678913762743375731298516429961601752184152085359957904529644165068286072827608154875370251057846413779488274368138780889666481780527634682080351647145671772483553485469906375076872792621507943350699101891899909672124249252627550446266134944352079546508671146342723806459447066919020729431663173878851009867928476285395607452663660243425544001964334697871206376056529998746576989862937269527917547579740670360622310679277445599161275102746935696509073306495296148725834511053632791173721806586124965185371837411406191195465379348156278482894148685604239104790738518334027858423168724984702350125281906037500630290194143506323856282441143010688966300216270130516429668678188196808627212481280491664425554582058269037327069680454184897285566117462517749374931825981496153211661545521562626499740178740207746421117051507018287147702075807404079427009805779804512444368777337400247176596242128890867969557005894400704020548186310249454597003562609616755960473897058441729557780178827194768728325690432628129790529080889149151559433321657358284130713657465299399845522469870322269653292522437042199808053751478761804611781337319709090607759494750908676668733741599221843175410466364632354486724504803418967571418519909249224723843445366058671542005526824123173550083320869752486093729139498609494835611318035400591673790510190686895905805766541864295208639904410290252407850642961036081361494446816369862958887026148177652288941155473656104809813169523328240634750857992089424213602951778005190472408980052250223548736942992019581622199534463839361772630348860254033007182164584793213033711078392562580461251181824618370068546332515647420250455212931238962686143593168354210020992109109244949363849607635410034517673986625459044834129990349682458868088124364120698807538655931948373616090021925496371226858435249066632206774651832698586309765680260030643941568349319638687920140823555415046522138519980029365425593503965194588203841687286401145931600682580542735837994954668764927541125700184272048506218211568835704077245362157464253012333315809298521684124531461819543253869139187341227349580818378344036799737136344501807253342123467819464568753617685986048575025252066076844903556093605550341792437192519842660254697213284127559485746578255282724492765948727652080133041088689260695642227423955676135958839321682981567945328738546913224380692197348035975767881395038794376810689896943096193252416655344830836159707006705160261452640964303414990820667591344427619552728502560318624420131709859539067435054518558315414803656578312808824689261185874474472397919910676053503131964585497112357691197151581888312578965683707052010662835045218616083092383769956425063986353518628258771284975275555330334335050036519848616688950428570295663704470276679193851397861396646437095850376906876140450275653711710378143871276682775042115529841130573693401981494559086837020626388280907652904635478445443626081259197204493282218631316684475817824224880681245247086731327954162308754911486489551340852869533079489567502111030427064111426314080760247440245708746712133549764996715941565059778619806129505979728740221717740721471233798575399387566987398750538100298624100953991587770296921376566616969014180838027769171526968373038453449316430820606998012587243327943519034607304787475380045909845588780076735527484297558386019070223425725600583774158313228997475269946465921151669299049102152578327673368388897445283747221850463854630714936863310753382426151758134905210570154195062190758763293362705119037965394840131783491093397696569825208476131108210555648636382862705208952919133966861663797731923185154623092600803718926866719878334103347247372468917751309128898118892534076704240127470644149116768110127349220797329127460348679309611832948483200064884891500260785713145112544008317564033034861592311903700338388980852048006436737089419157383641542645365596289543438896757558016546430022171124749909547866061052126908764225288053396836567352252198708579251071488265425897047256882725082068814709159745024009217719618129833035090784392035888508806170712643800253512920943488047587907129958780689204936414446587019513765123275334172788113819107304026797784353431487387218134238345249822677557519028665040659131158869648319563414771958061090465496943503652033593873068463221774294971124136036364665700982076387205112276467127550898145404862723371417520725422775448522265413186599251346169219387308892737499053392956556572061476316006254774659218199689809886751655362932006308322467957483905300615418890958352399837630720491528466643913169497215616325365255830890802003160767183122131470990409304860223236914156223561474994282968965892492311754127630290848291425166922324871091123682603173815250318502403234645687678223974639596496713430283888991827430013131191856635885210844738389713290228087095624904681797837648783700966220861567971165993700095690865837828277157509888662749668974488235090994749200941781163572025814614237387811416137005766953508260083257480231499382103139749095857468249009979708637471727199126937579097167005635244902312025175204350837375432024989733186867749720211804284329009810619769216578136008083325146225830561890208338069537033946034122974156287922618178794942232511411073568972066905529866937064757733100317131778988266397232579973302745283885677485166306313407090257306465855898077356290499058794401633593691270109492588918925545679859327106297097955940627473961360309300158034360413910224129028784887366470049613702432079391541612738906212937241601594982089167036620640617729372490094600931172758096741154573785277469534435095837781965819276953597503578618125751382871005275733609008210799000760524718258245239539218345155174671435359428617686334299321104912905923515266555901620366146525033044139446947258543776821109813761598335793535709531220379456936590935019139589748984239735253591671861712759066616129711530005667639684758417710468510956368258764822873896796127009776105684413711303664351349070186684916374133948957044090680279596957041750160357502940761939798850072912219606920971353322958217344004223776085523576645102394866903672409153956900044466058264198610756594294812391843877768074546804338241670225145057957136948995558127634443487712589549473856126344404212061555389544545085136488926934464296684667616022966805636106147185948406780481547033371210091058754993815773939447733805733294000869881078579396900717287841076188006843263709502759246106165644141343240948120623554430194852313114817787186572630766450410375216901335161576125876038226619022672007595128691124755909574475013870385682940772646187556137220629408872491844723605919365024890655582477999352512856561787993176621024871529652295829331215180867980742093773286902906385400835684027707540423814780934140050976315701286116348756554813780733531617442391138751801244908016584655386921377915809144485898783457806203961546446715968212054552953325255424753577342091715184004777787816101784795326688951261603160931627866028636129042703563399897340710463184636957439415454495702471667156725585445452532197949280374696575282804279027237250338382166642935051535507297987736307165060277494825096128151175362433355704125080664667497543450498995012525209937491373869118961503824957287737713859821735991907932448361557009297230503577139443537239641464791772320127780182197169339410116683769783582484680661762515507358760527635764863864512719928196121531698666272004464555310833755867823904620690046651681855098424463454621409660637003575538373805011796826406307367728987250686621364982335565003108635878503816592322143531332205455193002992874859362944863144236212373249076631463459983741158753899989564508466090806741275319580080417641960362529866402219426835134701675246652813344119029139075261807550622494977838367598120453864321656175096506734822689773434522091563110934027129591403828954546296219924912265593246347392761671370467790100489442333998730971457847478548191139399492990471510309658572004011927087199061503466388029101324972136343573427311128903299280718691700037652663067713965051809251549489062624325737609914843508019487870604480669032186894343626967914535293306039936228576543974082865867567416400564067202296361260358478090414017050510745167039838363109086389904051745680419461440981883048750322971417860296006303168443186624783288583382238080590906231802355952358752689053894566841422137732898821501794585100044405676701562909668474786446713230011670802244862714207159451897576625715047351057595292180437759526989310637149610266534732427952535349197223579227102165299326795197995550047660980230736452179856136155989113822939232817918929930919497820682028569692884565158152285536087108378311111674975000512026797135944811048191671329620756736535211039971274498359774622814642045968364546023458087467212156632292263204561210325700792810033636464253100345489130506599710142412619903884269220272083216910304575019324336190572713738019942005176253409765044742876884784378200445238071536450421176769711293502619322513518706014680649206304710690768733876285173001003116532993944800977908784401749348336628876605580348951367668645987523862995582819580077302943519839347447688188371326927163262002192541785540838624066100437633501648963234164580580288410878520198992007721217566465874143088058472995974146731556349096287736189093994132221529541042346601040750909749497263114338881428881788942384062176138005888362659809849214114911848253366281765199057837429826877828686976145450445627959941622623252420539882188335471924357130390504562321463894894657655627661533502850252096224862322352429916687751817171535992501716697450328988342724853874016018700539466839136611169624600968498002495193975171228060200913060688445312007399465524035309467826311220408484908249952878760195255025524662698555373204473418662728614434568799589663974789032485694034817745840187784139187598312864176999575710798318042452805561204014687512433137231092673944812324967186150448016225019534854442002193705877400901866752500737916103911055202953732017677226039094627779758758118593859079590445644812679203039671080067025782920668975187009111452309194658350957887969442523699339165387378040391532068318036355860655932546879180714120681758573453409010286461060670597609994323830643469385226013387574269785509374209091974971405557232096852327854411109713672812538900106828402972010441019577385685782314186171187506278760842181226559092421900467799533159065880631102086940796182639796523442806699048743631213431997605660762626696516919809250041801908076715128862635366585175644403747684953914574562467518848648346505558061656471847654713772732310323773938665873894255686221754916591327862145965989513141427724416787654131302687063963063430079520723179808499319053292198242751704908266360879813889254965017626243655232380484943690171578958372418140797910361550172234813631144874978620140133072209169345065817007073379592581118710452740226299786556993928097802107973925903428795443973453252654308149017168619225089550201824474843133840491993015578877824012673010113017574906808843828288497634183803615007633753003958087148542971707716511400744395810068744289024933588413646405787120225666204779781001268677154478297028855912334826543887788810680725061897579653018704106574505331350237209160312126260592855005890278330973608564059868717347159831110265793167427785519213620984865065572673701215513781537325327058274027996409696050349538516733552423800804244052084431561076866306845067464096348533603645011703526002769095735965639512734604652510283274514482371866657659303199143281501014998031994640416859857472683709132899516863847732922022692898049910538551038129748431920443383245152442495512083521743614330407790059594769017249070774205718762831303995765707572021515200023265045807389727568856790227765841159194861448532623701164397097201172300294035833659421404985675496110558711005452993536572097791170208974478080834681785050710879705935646803762808746914982655241024362278126540938449305042287547118944519715434242345665777035679937941907214409915537149253896680823311823327547457823007158544757095204283782279785869131694940380102293918967538260038809225846804462248023266214418395631142138741619251924434245848469680545660150267355962529425502073213947163121491414272941342004835118088116811000082147249941454034635461107506182833420226391839662378314197662859373490294988058864871294941433073835822114372490284421487691118756648857071898615134686477458654597542905379838875946215757491139398498996944451715037618242373929186331778944683610430637151299068398927292097179765200762133539588220015879315077699422279197822093634941606179336153971150303880668330284116490661575230203579414921196352272525266390764684335157868886940377886904572217266065963252153987312941838176068370245069479775772561800117121399121379334936056733513359774249642866936876913311345712752671898657567713610477349929133380381389704929807777504692734114257593441125589459318426347937357518042230834446518296746860579689912835914969276081175913963190765810585852140194009686709869515119656948833287785939178473696322558499434503267588835709409508320821460250170621772390393908985086378858766055542481078096819640832038340223183632705973433536725060924219556946384795177820771420229406420380997408064497861477537127443847670465999043584085166273647565129144653460455165000991613875935001824496195388121105663582040562156672801255764953646786175207310556149353712668737050715251801499696630253333615628652983552175465022646214793778934685030291062618196595296286992918445171914346915165708387297819437590966247079002673166991205152915147229919406099828262940674759471774377799648899023672153803642810763563672772652814007849262676575292487559063714040838412495946860307840829038820566472254015922420175161318056497988861270069936547314242760781477474004596936604003227417318975896320401624347172221855763532985936785320458853712008825174108264678023875796343728950767271779425277335180264128613451176181491586365637530715912025853226716986737484680799211322653793137081533055320438770540103823158913663380207492231164214863551196889283412328865826873495776147641791256267636105869609508733274696554774738972356916596678825289252655030028669013495061810853105264322261179152206022344776780131248718917068076572198516384920662024589566273466396797767186189823555080152946806785131464499762814033271577747875255283805421575723917289413389786535885052517873476644908661435181510475488390028924229361978550977850123590527519471148310577817021081430956897323136909652904857008475057748063649354574934908582183814803700396488415178102801937782906683866617869358723349227317951442370220640832212333476555478829496166531329772695931219965161907145727222181821021409587662354142921214033902825650089666731376147351029711960129701749701447204021617377151949936960763094952952361831469975519529546460908584001095472088819551180491843242416996006432413741931513220344600705550088605676838134160558380444226507916194673033767245841375023440891397807270212851908267543267592220605554274776569660116760379436521241022738225381570918035795521298329599824289455913149211428216993281973837373563550193147471035516967668862780386673477101214706559401393924461730350475672558364319980194228947948653208117771987566476965007739928889875262701996472905700615742242539835923281361509026839444467957507067269690891282848987823891542630068937495829888687507961660754520942275884371266797117678069965626887842391179225047525283408428873493143585118925885899235665224319145140006710597621362098541564589710756360284791985656842469329504628424348984037936585234721783076801903428042174657234316010547751190474855270433676211283362440089527315131686656004019852951413004572250906562335564425286812709822776471931400105571676906642338658114928754137776015269323816918549085380318684518072192413672749134612543016119172910387861836072697173256334701561361218160344047464458981553124121157062713365609927049045676709801067469757754706194013019245346479794678221726888167541684098764375490106353001060282276657900905909329825952870286040297735699038002789311462121064925443803860317309395299036337649210968031710861034436353772958891406645050355052673741807766653016308926212552314462595680530443444578910797669941034372084201372157402540550351644757841659638031211480720722707620812639734830869783328362819109463049742557838226016051149117171810521933798173125700774506319203511509874211858137204965380921657198967213020387931021324043110928271153954373108925095613840719381480485476923500496728078147492393913088824970742988532191380340377017339072919649240633730165166019945283230688066142836754326041820150623615659504842758350601906404164319386853003939489704319526840802728630340911112943991027869690661290728397499717392478245038304635177807359955161918914392152384894657630486243922893734183237379869242161125200975341015778233933166657851273746243455675118426112564621200842678741209312399960093544981640691441099690432493016134240483581359786727273235517857085099371440903552178294767370576815856593579057714121821674663459040387438018334334685442244422145395014327950156054390516870808405932186575103169177657525789375648069002901814129373875510356895682557564526625165498723644618072209225729710364440361334929063921658343579954256670239236617285419852610667697589970846495036793523882377997846708190332913549659888259216285277374455208359411312162079458532156636669791798294466731887936175379045335054954387199478832467614271555245878996178499557741093982929103486839374111924194949458997624950721917925197201255314221401167410923567899874109405247831152146993873437623983119274368253195212675839332268153029977832610546976024478442926705738370032901493927574630703480573878132713373838495352311171348373901240679291486653162717663548996990585875661711716388313385407928020254488685621726532335438207752984026355292562886159240581586122575907992171886587842928189161177375164278048714997437545214181022234053886297928146734958147762650054720433438555381201494360384606142346138665540846368002082250802697828864914011915367662392540561034409542051290390801602845882666101068556764371971304231507254270498704811612770333249852403010451128727935715107838303590709505388335360637809195764476845601693938091273835474866785579800701886856333423373489657970216667930751574214125506820553500149116648536901402217278269335683127891795842103447674427414784456228943134240633046051709334704994904602150024994299298908798502442766278836527460929865765902567401406797866244796926927207962950487992876248457804229603059263708754901244554920199437069687548816865874596143796119494948763177612825887971584743915930446563541844074169732769280500668443783053750209221949653715232658289402757405626240947214905066063744186651969084079256253349452978764611414630973963765164795756178133001918180137576245519887215365762811613648381106800058595254769116864061023004493511914776272533676311502949238107579878430622914195718624470125289737928372024686200619313222541914765632178032411537265065039924120643439650523806586228771063039120590829758907006133308170150885763859020621583316230945801363778266974344769482507560144928895110517769001548405793639771290178419707521461055112144444926283651644411155737611168116369128677175761325095654816187557744864023584187340870233513216706486053586256009509796212872693919450024837086057242120862045870547701951797450702037610893832921620979411616825137233226105991934439624029243975365370576091544473575891186154217919195024697265649729008558958462236037461009188579669334622181939381052582142784097312659711759130412074554217479171002621984329168868233549874388669576757199545035879972955558077552048562654438085420435222572109284138388190059432403209630106501164475653097777142768275644490051208636462686762929479990793824021249443558365032613396441228486775584421536885820367986876436719751821103487233023941865351727519417215737831238173526793208593317776033352061868935876357116511607823499850254884468611894636943470740904559255651706671102941147760673541388951496822478968097242783212900812320235197275455387037852988061245679004453563466367877975214814479739864605410090818532759485688637388189922707514057299523819476349928735281589382719895942572927111789918527262559377758005435222014261636765625973045208402373303004964337882522364013860833711344819204967156077744780751060749162854891268179978451563387789711060821036353477461133511243438891919123033475340724367233156081340247701158664308383242436797435093059795743294207822337285249950038711578585436731344969136667303418152281661064797654548600259598522599715608534694311850475071622360597926661067418960276580668650705133826191210967811364225358757970251363308045479567941147442832682059946333676164602849242204752982887036120343691600176057758772471897542036584379670152852113030563250354634626185638606375800697048355505960562874701123328208033827142612457101143512798529894288371817553383672199679389061030227341620777593059306058166759197848881455649230645072075937227825392587308699308707418442505635110968242607533024422081660704592634758666887005608498543489348404405981824947985492037383744312984590920792192757789904323116255448632631934942933785309523741895636704647420345921810511164444480429023559448854262890972492061628496492243379915529360405607575034380186484180189829588971033586708807182365566495343032732106638818434643889010273000962497788687774291614393598894731194852723980949608183179992733577950094757408163438676845583231017228076145051345243198185012345410113548483826407370158979776232838592377575471424433972640498305905300553660812568809586960670486066390653415508302785749462267045300082738155336412536127464863711584067450966750482671972604723655636378780507985717981845827577116535239687723359589906044233052074780718272490553936533610062695465911950401947594042493750850710436339351073602653931411698626040990210402242683832157555610621479489865138877324981878003696733506095937138639267445943661984725693845491593138584533310863232074728712649532209306691540128246554288308204149216801001884984615085479726129080912519089120034626676689270470231635613192373018073856161165492774941929827288556072793241614288279764220039226147840380110978573781708385804675552531550996959787022720865613022141243509264424950965073659619944698623700023649427509582602592959217633928875334706717050422221291069566525042216616644151563479000001806977981025532911644334065918118920063812475278990105988391971551475352311535359935788787737056950677053556427193147818453567704100954493164338314506357957371039007400841289591284948309539080569324906488346218841019705101193266778653157460495548383569351066605639454439310428334540362409247222009092029122930297714424789983149508290925553717146012350845968579621391219701667478515080613974365391708395317537281859897442315548680146175834179996113403459241228604963612280765780812360359876126232939900636937910753525107959488161248610746316964854445155602694010685246425241631700459850680344418339962195172108239853760807781179323925566414310958633244488102691000485959201014890030852916765846293058019440653695424688876927151934360169477199088875020413397261835748425171892265339252579452708131934174289827688327999883264190034104904130376864745389207033107690636329388652521778510578018337583749359221063988766485347153288804394323380583701781861098456052380623251912723614399309492426429146252933045590328007948408682288545938998007140559672034529536793906453683322399765837972523587736258565515534780705036041505266028865521609666397805472856390359306004217437906851548941998238717435533702594908959964341614014419855282306294557103301742472657298856407627145748908041653940604175814174805709442989207654171158803633830204251406403161648874157278774075728733996795005800869483751876022117651133543043291800407271263615969418498897864106516866330113956013931561480882186166322751813392975445253174411322335271895421462003523776829828971991242883941034165965304830307682219560426411666357983521500839144944842456148152403054274350315428119679757993683157092818560863637271228121527058316698611712819960804831521442021749280725008268228706531741654370991951390012661410888490844704664583272228741557104025465165691562476630704572797096752353754149962964055668497639515450509766779239892900878742958279214071944845759367457593523114616895850910246128783781529935009475632606243994546397911549421579354711368040612530911292229106555374058695114251239241121162446294763072679159926669204951902669635114249421803376292145019203105233791795823562048574751758757440326617611209091200804215741551305140817426700830167694872006106442484490722601531174835647201332930492539542767586126089496840016219287514441803156209736142407091596455539372629409467145143557238511302534777206149078316789530714449496677358041190389540465148324121716428987794862524732730992100711007572716778561538533000759576389268871372517375463934405793672758252556602262205378135269616242626415400982991740993102385555542714058962377435460751929297078092838582937839705916201723275304294026963477136735902607323345806698939562100117317562116229765976788305155205988324060593636467490148271954061349383967312541702015367492157684220259708748514018671192651122316610222303982020019320708709338167204462176498311818496610314580617076550047810028823379681709226050997238422802046887950882089119880805081253870162315228706714196526195891886759126747933414173654869184743738669369781238113130677817476643587248431629098691140850503848424618327361990076691129333648735072907501232036693157736098547034699285629841189370536460171566686064836702849384342488757710582820818086368571279099755484646219513904079865709560350578896047474341861662115757402845742685188664654611683896789353967877970220920429355015696675750884971998964412333467185283127190406139377321928817144439364552797536335721139135629575155686486660760112368529466183055000295612725083808358305861339110890578080122547702365498053661169300937887827521353077405438438639521746668461154398251652454201303014045488834922066124239881005454897491793720968269602707524291090790836311230943485429644997036221275787512604240478354303226503202789296203052827855554668694711507638774575823852964455643192247837167962656986698208843660992624956198370297913291330474640865219865138255696706802229219113035426317405850834489795166579149024717391222157663485155464163807570008753809341214764557557936400532146008039273221027286504502131476415478137285221137874333594335738070921367802610794567301712099759882119123206004236348808856980028085051532541558312880722015180744947834168813066681763337219455967120056643523613620844145394456742942591123182949183684627765203096202755762728203925309314853222555431363914700575428364042415773389542001342611864181075903053598272393381415911336477672055838810236954529723450924065429168991304315227479013415646098970382946346804583568930140412085749657888593624488326710841505390775834263095444412758173438730952940149893462719377364934272240872708799398653213707433471950159251375069081905018390368286915183719110196905197713318204021950461959569599120174014692728301168903172807596407891229816480261836849955492514857956136830899771412886920920276355161944116132023676368734328590496976128190262810472695960810383913466618383275994123274847438307442054426176929033855755681050620761693543543524646108084953319204724079066745936812588420680624139387293233112218713414661269710027711142695837907522562922584315982325839838520426945233773850907241022722316121738952030381545406949908474657136012668028122359772352492399341347504602825544676647831590228264656440640874239426532926455042594106525416440950861573269428490044457867611954675683395986013406658346925954630186412120302010917546701542126426631075844942105248940843209185829857605123647033582990099468074408459461315960375910543355877399847026739934250677127786305014169372379318206038188802674705752710117066860860283014245167164326007912595360061558173575009190840314346997254317896297526298456671783205241401711656516772883598294511954944783550423832015286155654855562161274661457906714774247213725730934443238903604839816027742441378797332241012550140027314465389882546549092923362798584561868900447378428671092450819484573159899076692560177174547803881316442780529904342605393038443269501798259206102706318896090111743591406268821104534628984820123955438746755297439124516222047420109020442693333680860918413900142787939231956148012382315075777934008313185756732684668051057922095466179322070271202755105328429491872747936800480965343588657578870476360212231534241039554637065893246760629086461496157025239577340428504431105967407067929452953510299205250336400238258478920505021814219365909046556796816010992010116159150671255410565089425123003690712611423338165423365290213138382860692524793333374001380864600776204325284032488623034826595903995133525250893539569086595851443143489677825415379833370384765931080924191695781529340912757345209616709032613005685349839297615366457489130925879117640747251416219863380988445026811339266309942056544185178798114078644037682204000375631554921256177309134661703052688383497735694188678502532044496366209564010247879596308720243745258179276337359453031213557255973601657558886773748568206838315467108772359424988670255088244289353083303650111140344228587645904387823815227454104166541140992808682765667524657876661246982519297607734912658723553237951221053799075830856983335838431404249072632359182163545014832934188369684414383376523129556631955867343121666538675617308730429991532189301163130272045313063184769798499789983738896915839689736427765767701188228638765327936522695811604961631226995761601763966669378352379716341950336661478189729879433867530569119796160007681875094689154136476510782980662203867489159408148049161783996794226088003502462740118964930430864613637425518860221210997344538327238219941490265442565507407456436837781966751348018381285979063414234766531437158321444203536707902299457872726826706590897514186800748289391058179977714908490205616905009533712323192776743011520039929677230317148555820541172226857390439858245153699554238923351022797170608367298413192911905050528238237757985989124708353432868761127862127017672444552606008001378164987796611822383263961199406705000670764351209215274257441086095353609901235816735931554855983972384155015030523132682375518320903208446007535495292798651350760810051866791533091733822392084163439624691317622673282875685934130703782841975712606898431581611429256297425035268267600940552113671615100280634700565521874882797483205380066123459790683588619112323796867718394315993442071255653124986587862951935398899640365778798120651829740969158604160791719835863833243685034393217421778463979054744881918374616667442345603631777492010265678403334031777326760377328314943212198589998391501577002266366316334169021795767693101915956890701082765245718098845979656410308806451490066903805934276976962877818442015877309339815174009578198024499674673157920603742041518235544031883330320218084482480154744069203241842904321484908211445873329131952681396768482265993222015711175545637883527833686218354997886030152449620443644856858235842602852415850770507109937450419335867039370420655941889242864087319104711770726671510428639609814504299854363196388162332918291831097126227803913982813367480689423508569996456114018509863708219396818856489304594476173245631199379318744711066646120071871902174747930344816886522940163156413261325787144411553846516400900025551651693630272270825660169766201248446309596695898374396457786638778121572072857604852919344566774786799376666240231139053159201203971177637034905917571708654967855639853409141194411451791176438807300775819006686705941021687321882417491541051242027535788984863684941272797333971364162796503291027266811249427146082466707262257374206780666671381393449624829718831017506058992723419819052486590848382575239662376433520653477150056527843604212761958113720047473167919948573263320331152030063237540377823233377203666423168404314059179699739090188641025187464158695568782094462930193092116536652433638609703514555061841024590561456793566394319966095884190234907295579270842361908156832617253094589883052536123008746633119214547998097426963079273473930135612418099457836496904291782868595334385044228341173038491508976896688857272769542623094077054233103663486368327999670718167495178198989345333940848670806762338314983238519108694777108878606674701706580444063746025148548384460501178367822493624386614000990515734169538971472653705060355106770232634551605169602307127267411111468704534985545204515273756537198826760940716226794290876078730202387008956848396507186840965182455558144388524669648386380685621385952020655698809253767622843114245521745029095671764098012408143519021069726931418058533296248387606267563728556549301566108261945614651196158017087820722126077562820327751246015309601059917538989423095760345885529795550691172976630380127757011133674035340797583978265179943983398536505808994658557164011642725339907275812592136425202558581035448861354489170701244121947311809837929487246442984946877372324320748378192209578160750756759312118754407981781726271220011793895176280087117209476815591779071642109151668415005296058549035345895351986260960697829135759006059645941178982969655191117342657146114798635908429604762857587816090804048457687665000754216103992010453990164349724990106706184309867459381384111507366503783050681132563812168219458692369254895122140050646374875775833560403454840089411804615750897265264336030584053575930229764721905870791205561982405547171155195457994186231866246509608827302869868310497548223032878107456889879159334906369662135028200975829802099958141852799227088820633632930501278867263915356106584730048130410650075592889270690326757216333848794832732477752247805660475753352582248033547419577686352853516812698045184584273415700276146846965598276028649380312365271916182766232781731911325013484947550313889394287292617476454130923441025085686742039719667071332783757717063369603279227282970109836771004073891993070577891867546067896718747694629832613597217586468137818249368200935764635963956033306262648186100844328682202096977343817243228807389870796559309424862137852923408148072073595121143114569726475932468447095637116299872634909778524515864307740007519020136873749213058628604737297762127057552596919471576347004410021553299998221850680032598010443934073997516809042537994086971440383234714645548504746383585696159482742770133263537474710552610472181459322990561259006522439498536896916354986689676462822687543137578192570390712953473061872750469895651462639615446646239985900630048753064256778892527312293064457181743080850763768082312635346141417141920443711571711895179362333969066049413848937983999711600359077732779472104598257264662479051617387409542127086475579912918647927242898163528433810572755804590807510354356847896317641489836565357046458035446171388154630974803066411042504091133755239679443231818746456738083913383094097784384125188559049006978208416219335279892296626935320999836352251186255440766209021871701486718197622631399170008365712865541506584164434857806747614637101828259399468310916177725820173607569868481981246351496260737547769021734872583153155537213084869043420381629337817480774413214051637473264105362124049560639589558335368700276400602679340447550282685619993503512445146031696608852493199478996374896404304092809574937833172019635736822344981108920093768683443396289415217193460781375107532422341051838948321550619657890855541424812218364209335617045741277217911550210138188489550645724331706216927484671505689395062144589232451377188006700213319685306491896546120813901041092898368552379067506745453727999894081332967308625177953510965239496381726754309158554093171563444715332784184694918792639435083153946912933252920656383946567710486892263034027971584202911573771842109154987196648253120560403173601683841199112681266349221310764986636716797828736562311570775713524643432500926153094928439503005565694299971607141464032913188227772751025913794461781573672351172256756013260422032339885256868494093318551348096019679620975676711547734212525355835406538315934399126830804234619619566204922664427915106876290396055304338248492035405313774619810602184547213286282984367464151503940521571051049109878031076453758055357086683071891232627922337165342098211938011037836211153425482326290844410958621766832967184851309707581728193707278505216352583979770463601599642413905318339306572417309774645372681175013255682649322600794540070043494664274590293043031359547648594524121725507468767894078738479036058525601925786751122767140943388106079717198066090692644091656776784328959514395122883674974412697647813467004079328416871569014875394605741467434219022869394256067469232393743885832063253539436313349643727314069534799583594464355234665237830461409357101121279311260451066260925095664382288091991738072954607713855794715979422777360058527608465669625195118855785200125432455654445286831299971355943723439971898570643177108651555024914865915773530640383954493215188689029588561209726043647792098767854746196696186441455763182451708676353135320587233401052475171632933651312432909817967419426824326455900168640888909587098150998653589870510376080168145132349886645167929398936818164291253277793146440207347859428689879027115109125900450802964109933229109573259643698441407700997896802053184500466713988011386516633637726283060277913266649007409323635834593769299225967042748455611563153195819307901582343205147348296244093289198402459179925951533394245333218304141316398206130266794580725831921319294820486446314844555430451578819025020628879617714449203251089293392640121602503523821183390050259495522637792791983005949029581241171591464006267854877323804566912921044163927268493729842704834305225154114748659981683440218075614297544608689665788894283255030057593467259554779664300635979192819026475050449884018077144999989697765856999926349366454777450071996512668343253004887911266223786267940846287454345147079546233143544203763182968236374374827356974068237149410851600888437648125176118310458677344061598770110185822331918609003801480440652933097803302748153235053839821546889026390750987263553161930877704799739871574206983726794781466210865297690217006283569102450759859769302440251568290835306013145869727550330223757938792523970513639383479737468578197481703051329090032779885990964237788545148870248684805955067755095017394599779454827692725593417828209200178367271360775770529967153450476286392703453765427813883701837989853849220061374124004810029426659913690299948641187600339702329016695585116464422892146804177091719586110809556854952174555545007049626132165466141891883862047903220529154090364275167278678876795054668920461755331225380453985316530428254199763731759869944467860168294859094097665913139654600483820709879454102583714075585814409860393260420386997263985749292247902028707731023152721861433402249096850167122538936870868116146160324223929278657012141760122267684566813888366678721525269281578966856230444091236092638984802852320641701160367716884706274371891281753389693659030219790329891901688606247937738319339626980905291066978980795790189475841113513638769421697483961645920416277205526506683647414752684571060699554641559722956552742187886962945889361293624176310386527967775576244769008672741249262148388751351345175745019312631964607519809993687082742839444601923614847090769726746708124099048300116823187731514278106195891678642185062206472042994223467596738464242582653640435859323137906648806138824411037678832722408290493497554984645386549439622161475633462244669501819533331160159623863918218981695796534239534191868334772230331215214348740688505974221913343635684743770873831820030879486567607247926967020490721212681139756838100000483255730754274555231788987138824220099361585254587314927510309411973077165344018529667723880822039838351019915393730948189772332525393411486648356573425243478670407061901638412743215373089631350941284849696145599513281878013927737431077023451660924083559981945560620892729606988177817595938697783652398671479935474511633486663042896926353294299646960484192164685561425942180107533478242367024755509620696043551298867510197164139470888580240334044019585268576095425555425447596914214259639334988356760467221102383618332317648278105937837181833731898688415438741336052547274794205124505283000926752746075244251473083098583026546213337842794909372732662392928226543641986037763341085186624980039481179148270527480507190100676866125059486490889130222326617669216041511541718057197314827735163984079557756430838656611439858859243198685317360545972142814419304236916225273117769402427624351751556800283859136251066892765623295964367210586406184405003188292683941458420566211135695977782836773759522836233542606272388600658203527302269855362985407027507244467519367790759814004783667559703181909869377077714360938949528082303538018370405328291927777546652988149960480943073460935457103615673459726760879992337157058361536874357456016912687163625209093060087818277108145866646195178596172996263306291827788527468375741738741833483930129658620838801989048459821718956104109940848379350706628908159221958458804429863834305982671960925143540800119171976088969014725393312430859308729444950169085880105160130846566189740081757567640976655261118271848472453814976827327980798343810728993415135465868327592372360760929066811020534656146564605191267198552350213915735825404163738329621214944729276365776334689715147399142101271518448609983241011721369948982610035494684767943214629723138414250632339801099861460706176893175632120209122175543444073937594715609650424680857807127405187659212259457838010636651955321030180440363881183627321642903780443554418628302658759012218747511227521553746033525815271489525029139673142075525653444073687684697159699216067282702503044923588494838195345690618631369238927903027792806100903769132758854616931692790013569899765418660795366310746253179866722021104027747514279239785171531230938103982400854052044334959615188841941412516924603503714063501304110730720142773451009145124059348094024559221062652785487688627888817854818880921659933530996858392425908837362521309502154303972617606489705603640675186211416472627398489905673589458991511818751511265439406837776456085918288578382658493160142856065234856903281289604059718406649994784954288201570871217781184931819399951351524768997735561854798098680398030325518158815143930496844152256797574768827135878781029502536505800359075151980674249283934255961722384642951163767250687562841656946279464532771062273576705491834475868522697079527950271769165161523317150345903492047329509491171019345792619250672828523224746742353829665538015097315748492198631289701519981517780599009300611903146639900261144698057256508252934620850532224427907873842430325924159120971721444323163785604868519459453335867687324523290302706165139992882288239946349477918262824598810244719432981968024418930783704817875693452523736119483821526888731610635439884990478200977860339716187241533418317748868018693410881639919984796599421338481094535866098241229114926908423763037678421286257721580437451520794474478545134183221224486189681285910488935020876348418977880435112933782557971112792719491744036525408327753171292435190118638268086259209294158219363481361508436595198113585216951276276242277995999837333673688816969388740035566708398785446571084594452887950240586241122323697020043648139887525394097826578602955019905883653955990199431349738740002196921719869372338106659868026959422207252962174986863850203904790255802090669675303220786275748396133938102654889400929310022889091107535237269561418342441897826767771713197390801981852723333481045869516774457102721702211438135311214919268578097751583159113106282972214659788777698178083253779194327163943912125448887101701877424116754591152150451554293574874052481702069739083207124911193144807936482769974492469402132150929163088880858426046751766065572449505279572257107936020149101805920465590061901315041565126076961187813981307797505589565794769974397293587098454220399804355038872189065864404830040727467977429338745578711507692257489386329027030174245366061469466187958240900123213106098414879222844312017175001870912038847965350410615508426476501456467891490605941903935580961328690274240772107918541888249557886027642303898026981383677736200825127781715808159094371929671417499448609832805892937455901545119838582056644082121279396693905290539673053935337105968723395275216158811997412352016276965316319180238900477067504045767389415695866742632152253335501186564970718758374457608443813552378165532326492239157601581399279175014971783785704769713493740388440191296834216529895558872499508930589059979739344834462673807491215803744523731181562069711291871295951544898607982045560019446640206939925932705637663715349165316994828514657734301987846401678031313497008950636458209377678232963784680940624208700878887991767508673515719127046984589770979524856588185340914080953001888884922798618399090920798726856314035336861693765740306055154841322463382635682733325896595850103213959925159899603560907787836375960194963626284095538249597592767321446143108304759821051250238529547422206388424351478354657492176486460163171716282739242321707822947597564919425345395940796366346151932282046346627258716135130672166939257019659008513703232044133862531460630039784392682137828749554579203138212414284658043517787117296328203879972606231052704532915293849077266217935771421849127612689838531847895346935887675990017518434747541592398729238571043769052493134449252129605949475271961095339175469107452716534177614964227438546580315582965039252042521970981973638476172247411498395085742675813617594768105826385903623596627960186200799840057560328893610040204066251004637965582407505235268364599091549321792932307771104714859919729043132318240917700376246073595253871334033783486690177418590983596422706221228758975238806023980720689750459685588800673084079652292240021922990941112634963370390046865160516836476299888750533322115944165228507542570922716466675098529064386009582354380926204927280284847855455680981816207840316526117394758697208175565795359037097257971262285216315131956189554018695072020238954291955524473373876605526723154159301858482794374682577901250062089182362625994576686327090348932515204687630278141208046699235595987994172080079520675350544235113669116537960190813592190916123626509243212065827405366877408008104852125633005300533078267981204483144089683497580996896108117696401674810850229754233736397792525802388427543509726003703992285189536791324597461998439575491231149161255166821613288489463987463417519168143412188289968607013433324011496922989247982259055069399954845299190705668614628587236909118991940295530268271111176383727375501981387774408036411780926114586805687479217254318544049823858360789198899778154681579696406656201480500944591268110438636096915160055751483176349570578757762487722099967509099906120250336299525537378591622341730468912449032031324178772648591074795977849879705647161280865955452795531286360407968711906801642507393119088691413342283221624851550557067341819945132560692775545470256077102108474344613517581435934402465957510967778024744553285598386062636371236640106838185724119293107550530121443505951446331545260081753776737699769302310710362984682342750267519454342015165082499506345878236625176907670875203000603265536118302529663880689116548876863357724886962708327345524079637167342536680941906720657380430108158416902005899465529305171646832891097526627715433912701661576748815349223168585960348581067386770758934096120841441199031969303283315199369853068927694655638251937099624652306543989994544301487782782382879711546127452098020607411856619337983505416261261225484056687691591099018466987857180890406727632855238440109826150001461980789962986027772414424722115399574429036095776531805464680770407542557522339326366420941030026841489121278222786098668272091144541959540880146728653610039402454106103401190411129691454218143187725585240047130958929085816920699287288780234282369068139969478419526452095398865615802324985374575830990146291478643780447324020901393420369215396177329122205458247712675959017979269029516323496903585699959459132093232614742781577440108706137140263069380081967097955582743483241710861868249563295572887608983795481962612464430868001838679723810108533492473384618169156759930911269921300740731454710101520821821339088009439749040601295441186591242518609254758725550144855448843437226414141447361252098598976352950515100471452783033856395977807192895133260550181138216925727520027582802992403594426755448140367087635628733264069829042048097179169345591260233490137977532785703903580274955941560078169710585078964667695532840387854028472812954253647371020185083001130653205896995102181947844363754302672986598473710268020089334734096867694863855591453220702264876987362192541730802166550193506868943398281542371268234375685633265703368458789194463139670529120121504514500699977783008469242603643507127672731627489725858572561994001061928083735176904447246086244755208669125506846603380350723976869477796970042979082158331593934624856196309222132650172447878208888026600757831623718441396348404902139845686517743416678424789462441299494029598379717359334377779411074099978229410048193939104950113328839967617916555010318682273154778079811086440045975080452097057387258458821130641488341406406259926748115552492987566311343778131054900562822107993923392687922016199185146901291397701044786764737359710738018401465212676405961242955208352360966618091295537615049702179776996129720345046034534306148515862634274581670461100554733531919687787921118391819131114821953139006363135143980580603158781083844129205662728433016910296129933832195496035321225855033391026811735367798860786656630181386649523860193805707964717001702150452961491800709523735627552324457459450104683195369185229578919916104594493245780601310249374743259730508135334258634666843505264846377014571899091611721746653762721038222513175112482470377363232961490080571356156920949519420680983733956851197660611554106655162637609897700130534413888054730374233308153780939107687539612686020932690891463637037346949393659133842832879240487011992477136021300990330765113849731039912450462863623586153490806292213036864698426869057095889445491503006188342153948458299887473900455386416602658117396094794335089381035597799019041967223541584296839112531072996649910216281541836186569870202455155740764666705669361734953474119817482848303274205918083011194901275007372794680589666724642479258833114232078865898101869820235629230883444150065305087663152424976069385382902528041907403778872539300584774325401668276249852125670206133339100620545860676454129621707999434852748993370396090588960958471555896438179624761229536125233477767497891674249172632259295197988459098673126194062385518761410759385424632293044510757092926116246677615445353611622960985157270937676080578809557489580189868997455372098861734337400447380519701986726981386339872935287302516496401387464495148423729902844786042400792393355805754796626073855487604822217613147398558412427194169776746388017116413609747599912227334465003847135687064444284392603359871356029059257597692258733710731508936756693454455041650858575361374878443795436823889873443106103329589993560412812641573936504981594987650040636776954757508377214490946441120842348108202763286057013370273352833872560077605984116424609366084433110938402316766591068957356178112050102208499635592258230817085302578923949347077848995848297214170092714699274035724195407080773500525191180985340563829459401862241249153980422531954031539577460483174194024298870556621620644119749765732456374206619209021805784748317238428430548740236533057440888357198983058803033880626225174652459866863080651987920666005436056224276744475124181343548134820162507983288324859715000967889118305669520353474363309664372185962078227470474139527417040432012966527187960172331186848695308493785889683817371988893326540951340630780531393542499063707331708055888362264671113122028623086423240710302653593878058829814641996180614383560570162849207644406996803771396472788677121590316937868467384320258573524047844640781552247476737582574452899187829323764029564435446785281034906388456840062731686247752570310709193632804277176010773500965862915548007789308435019159363843980719288874518234455507799461184712254325579068363402349045334048196587826771820523613009872523558590219208017017085237379524078887876850843768824292324711662593256293879980015980923453223220693083471485537132895271215956984062431440625499403075102212819015379846708719942976403249421695158639909173520440304150104602244683808689748741572391793780942194386805420876216497283292268081680707901753693262943388138854966972297972436352473695914588613736283771447156697902485170143514939947530736235737392126442877488873644014193186404033316453767901661790830389603934526976092989575785472911124675398559258750054117414830649132771023174807718228801957998301645737079898621964558720603890930301566569377383106889356408121643150418421616446151494230499470263468324168344897531796033471476715016452143109917025165685093046716055428682126805086125917856042406756633543686665204820212794951226151765176747955104857807818778480066699028141891064027667743985781057305337946437664716917374989591672324110403628110692667703367786990176996137853891608452137488810770226677091882725868358338394004215189744428285187742751279475986389636384565960385017835147678003007623582790965904673780803467462784702286245335465833860572334572665102052119172094348830877240150395782626707863513838900551179968039961754037065772709331362215533688804793487363746803863319376535093252378712116672179164395904446211362230589072491581592999187809343052827933161445951400841421088267862218491462832302200322512912199211552789865372084990065044205191095163846735354618686396624208320482804864237118996862794472405721494219106077494963859908777049710310330611165872229251245305566426560283121988821664305812042362298088472677838527260901956287260559266057241543582962705190955088351119772547633721038823459323297584715278895394246126026313709880442075708037073244984138596103729151504837912266331684104062234738259439317651033758743166525771844292342871173227606733449963515958484909325124149050958565563597191031880255378800504534681647166766381634216937687850309972401568195444740935796037419718361588284303574140196670455220605106226116891090469191295899932312771227245907921988615953298259460009208908938965392207123161076618490363026386132344987513707579041850978237787393546585794094504919274614594985185630918544464113975373950910881450306428647428661795360628719195511737095100884362677375114299545659634081452137524980171502123685985835875146375098342734947971974782738758134920492936374724292210996526925669587722798194592738560148441226009865502102386528321107113276522467466357812489295315110233419499112928623402376767799638566385702267859244626024641521831348972344205392239033686929772926524291342935399683243326009358741724944388601336566546027916002605287714789002375773451708637411311414307011710084356056469007149043895915946172850159618063891922835875680943457040806065841360377835914905704901172444086677906194720021611517259303817379412688469157637027548069876315144296649431335375004274774112209548823078086935646560978408874045420609040666413770879537268614161654498942586839186121870467666085375023641399811803770364179339248024006774853480371046016654035148310393830907784221103740820824118041762541851065577847258886933167960302948774138442207492387556177580187991914792962959062425587614601798074995408869028559365454721958478412769075436327668116625721010142389060176860583665719173051062034658512823462354983529230113001783610486029757033187232583634720318545072737497461939257434202432759297621264765576480360023812407195872156281165426432687522898683208322648042447290367306317721733689198858516258991245689207337619033125862766195082596470757202207719353417006887608810201256426675620003967191217864747671135945965090074995884394640446245649248926720835375265081052594510957639244479001863479285498706719402111196943341925885256849782531443097801050847111963367124022053956332465278954622022868845965711253113861068876444751565214901602350936516625062675868003223013236786041519145104079617608596403320652267420947534440618607530363917507345250856391666823495847674387663320432843153889880593545904183598605860226084580538736536951000909980721574611175195676504602605337546267568934856332820352331097445628577883903490878017907761549820112906759570004759024522812496363627426407637643589713084945164228669239863222473756961986278123706880745790568943420919368487278167629917759582464739449573313901870050342197058857573861311042844462873071219073867553744366943457755364313290466552466380293202751056627969476774302598688473032276297383967463375148565080814487001573784467783999164271303438642353833951801564281746406401757008397366263771657051607431656272148935375253110502330920287454993132642841133755983512710818943409003680646367386493638033264096592253099830076798366953905201922432388245651525856648208086793070696647388175156035217553913478175950436009613511224286809669462186448718164289750175238092910113359159910148091571445871997770384585046719285265958390437989155503167629252492675502281591601464299078765626056185117478518199202234002289933774548689648695019873180670250871766893650822011779084824252737413129006340198971312209020953832855805059564872149846989924722023903971884064165921996497203936688503115625731666092208634684728307570348215487783614862186987996375069696720633918597297737350922721562011010632726110959654184311404358552653561251865283260488009814302419289947746168336487900541547199666335973493955305538416770250453279484351195819208363070714677707104087026863337818002653272626639505435773996167286161465105225561448388055316269957421233997107042530534545103575515500988902473587986975945836061977388740538089764243567312031423440231607972311766093005892713444880144247710667352177481713618981075443770396902944130734990137478361497061763926357491627295771940022966979171008671057425299879232987212255679274114422469536050401342473945167085501230274623187514526292600899224873171693077138189769128262879131563581982177022911682308915869002046522329029121934794599255072958982554462907456072398247660811361480461295055404098891271079186365651462889333118332729070987323833099794802949584461727849487102257930476298344698794628379287552779706884496754065646783874233967128483871721132124708534897954227677284253095605405161327444952836565659908627969223585954940039781044098835422879480841843894307226053519891022857392653384010636928635676193189734127632243989019765607237121314658258671248039034211440908767254094964202650483262372368122419944059713085472084492147281825971595386816168539256227931788304612102826912739442667934663563352106256547813211578709164811806656713212998453523833869767870649853104096492012245925159635946067902075127283653384401890796036984075155634754585524801243947195850511087068843127594565143233021997790823309039818794742624958476113845790551800241978348350356019688595653241784966967596685399309263429068093118797238731427007485874989430317556262066459748270926543957043441574164642706762385932286988145961830467882005434264197909970940073928617561327482255509369937129351178061471396797584697481150469009693290975653250725696480733478974291248100103603902095126638505790337823570811265550951865338970064485943487157819589635813607726285210383290408394830962341720408448276364245166088634003800312652949693241706311422060317668377283914097989419424705138697632581954520921013744694579451780360756999972510232253193062439594735223559260292163567048400026554173600182302215580170846058565608696040220217715967473212041350774905218180828929429726735496137241440378281099009547591389880545222103183326231408473862664807876810885499048561862945566949346656124956640374593656540721501647751096292480550604070006686162532453805553185790237792975568962864351854174874082790674112031963832664852226036350981652876451374904672825877227307280799600991239428927359408961631073959907959503426357436061898364731430330597676383392868745716201334246069953933853229505756487912674331160480412843466094755756997879425337260701490363746038608283586161733322833938844122682843579403198029721000228981312493799472545369998103079014605191343338499355078995705590768916200893866903384811505926798702811385856600750508118278312902481243982813964354501565810847490839668094768402839108046589514704015849642178360183172796070835602190446300221350382189905647685848653169516341466067431735708644337807598881368288251357818418460158068537218601369388589868889373030309442894643767274208671781395422156722501264962405938594681326245228899356029467842350710236832546553610719459751827542930024837611184029366284271416289107349143053461188699462199660919393493954996695477994405485832440608077351364352635233937036337913952511150036612285325592210000054226136179301374680088685051134989175142462232893748475608234030904957563448389587203621541479626762226827799746175119423859560860868140247529599961539741328681613866512470687432814583176589625487506011764703191413791170364935038981245819046500816017409817115796151545096332056677806326179758009026271732385613071015326388748329510395610870968492464417616730988372744460293125036338645077054606843582018906428363843521769912071093358413845478168858980293220304513236286628417899182141564246917156294395804184389527271855253497719375348787195415037590476676204381748141796785655612189985043218605407965036498888350642256376786103633101906766713387211418582888060099896781054831875358331111467714421234135316205958246329424245709886104113882194894243349835071140772234899157909906306081699415581042321379691079642134248446047515510061129434914180205629583456851390620511986509404623722289317422506086480322573003637951800939357048073360795741840289393426600644612950750137063823478567653690778222714730692335092497798529463185702823087290165680369860313281925410552587118894731907484549040246503422537821327084743236796496240556308316555128294131389079428536432279113567204466186394331278252947187640883622205149577861412894165215778871132112948812625356923233374341087466426905699096402286992103135989907636124674235726184647988965807766228183265481607167747038144263617583017300272040191062183124803129909611716577077155669563051142813959593846780770209726226699198333754301381988460873298747409963826734740194267657058043716048650294982083316464680308522006912942019574275866720204523383776057558697555339873360235469181290854541874619654567307501249631801019547081795832481225885287399473685672726180701340995401607494067784075814418721437646452394138656062108155231286582580545425702876775216038198975333822034458259666792677510525298170472013266109953351928216181400481152197975404321363507232589566176704040409449278051983392367832234689529959678939824455696405027200878460214806906041365651313061644199441496697952147106851116128338076480792970373889030904847476480808574601906897779279419340453612628017616765009792008215344346815288553973789865915520009098366878312054991458424968414685770723758863046159040090680949280199571979902069182370285422769426076693527628304432717414946321765972649552112919100871184847800972204178389952872566328985403334921092188108509304507926912494891782632994115585166147269887955236562515816304190296677884151150253984212649206401338316890730020999433327393869120755833165929835925347032484598242437924504755669039648484432541322700786588488394628964210241214001021367042175122899265244490032044628005223403468273421093170121713987224533184160779590256721553586325861643880569821327263185546234377600207268626752526851691247156458744781355177497297590123573764129583662954550180531189168624681854223625675180642254121375709094228527808440718852990021901716199565438615733629785781747234824409543618156941359752698763318514455880662675889863962660807825813235444638110903363498425140947656080549164163716139054911261014467991529936696954364137808822656093978773751900942326527358978884362876420021195116621866126350702763764770309415975523157723883411734962825001464121490974568037166518905652947524516837653154265860298006755502301799348501232126387117191302731343948510017086216112312095317116632407047919266099942297880782628157854557565065712909824913965987968271483923165700809806720551695355727047376187886623934458013733877397044823119678307198587043105015342727321351536407824727528132129689626668429925287657650508883409148101467416481567353761520200158813724032928962888792343903266308707526918458369359391212670131016180855426045788293692046978542716631048569087056522181966973750698128660446323526136457446906916654740699874726617932869859327152888052661789077326841890195448875887685907103314024002488982198723655243941282101980452778228689994856344532848365142983490730131685414745580778758378920885782327570837131678997438686110809649472018645815928697869800965624382392275338608457272065053668867520486689665899734745100748390401634620225303613750798166441716994486485833999110650266573092580574946759107947563030274106899091582003891537498313360510798856896522281186458155254245563426465333001318629337471027010432869488004341325642545179403305663788540809772886337358836408918235216447070496365971914718030829254355350358912513545806223279003860658861723389807608692264119333248884847735884236448536294492040636934098051537330526077508721359419152057520100133761198652123171968534474991571239610184868520881266971798082269347333862955999912931039035670025531221927548045107662778163322967584505728504347026932502059892991113431039016398739303427691649546647476166636988203693531434204425841224605304699614084178918799139441400094483331715550641496854046763162653097898226773704795805426723685384705258288369958302194550154896097598669717380735638170607841464546879174387818407749418808374439390614479908117802490747629372624820973547549283206094606521704156980857913805307720748865243997655748783621653926441227457395109657728139673773176694867229350155535354909370573621967736670695566610714299471796718025258773323714655462144467957350419581719213691311057589912747076908775076372324937025680602280429897948471736395284315982151321612720676081401746901097389605176422261005588421736414308491011609120664270088703566463897262023682869663304887683887025529636129106070293657140638786762359465991062715773288296780651992135432376996259694775489044155532191545796129420476375363863543476732942271116850169533064265514193520282146524361004937025496013169212686191546465742326431375528871553741473620846853206975885531322661381474883761519609172387955976350054610382327561683239787379439168119166402157142382351713925346148732772299015557072928139135502079045108489420966967203632120758379226860843196023521053745037373414703523031000198078311026307181775941686637327421026632011801865804308195356493127860011870472047292011485499514555211956628215252806404368171329380022353180107486018623466380089854085010605570106583308132758866252296921921632379337749024200836372837202568413801102418205729422878211999504098874053459008005681410966641753799498844863390297006594554777489590228858593447042680335719804919829878482909827039515409896346566035981221262324514429321745734436325042409843916985298085924158753819341060696347845775924783183485760273337184295218966408406925162379163692808006472403941070949499422020542652017529387476902364537354308282239990878415170490990729216137137721352831993792803004526337392527417550241466119862422819594291940822640207877533247473935725464867602725532115363018113619026259988725967950419536951376209629620877359064290467053255008603028497519122202867103362908152792706049675995443366819034666388886959015503226382691558327952201459656692264657838121022757303452846453760457727629225487589504302505342502729589150308579946768393433033764961291043790770181528206166689608282015692159172694733995217273577670022779315635755307874726562111567123104201729681952994583487418713810924516877055759818303731726736190553088335739597279714270404669963615091184912641446414155748025945655103482065578258072750020388479775066090355264155676660577535391347207685593675675165929139251911822894292585779452131077770561274766316312066541866112794613936338268389473148371512463932944704412927003115853999254000554410688540903639222370191725529215875791124415366321244979908579779489443867806530271962921874194916756916006870699090323771163277152501253032120200589331790355805901046400156209976977357953147803685209273425277579675738917278209805214806919367937027856187599239640054408177157275489671796824000874146773922664402801762119913535875549118507168639017188808887127543895567803720015410676541164395535398375917082919707640899436457854665974108980623412279288267685604075281402705002800075851598408525482477632503838760094572109025702759560454639015526394900098184703185021386583240147152372947751025188273581697464436509101384123328772786287712333641922227645651172803088011013243654152962462863646279202537204363912026557634322732309162678539534313105836056818279180217628095081659956188724375814378865001548990244577227084945307890112873356790217714166983660068688109769871048685459308103465877498829493936803586466902077022368734137438979937474667934938723320191608841190103654690832770506793701109480568171255058055422631751728117860992567424842017786940040481360664026995310778138835020864655005791677511421846000062653891032893197707523732561879090522055462887655070627954610906594034566279265445341616338959793660381374787819061814003896178476663404413457570975592553696214840723023526784846165542869854375006196313413816747632533836570363114733315890136385896293903241447794724737976727163294905322760531997752944662040930165079453168097091135265339820186128899739128365500657525949100052710563131071001928225624424956520510257790401407463796322395076536910228243654959378926844211011631507707622081859630559908763930219341250383199191436623114285750881205031610031170171834780594329320382783885335161253114389887289809950457626888228537945472276962449153679878279155601939421148239463025681763775721038866156479259298146327103357244677676057282105808586145136916599149646845180852079714179131841838806962718577744932546160504190231351310126662233314727405191608381860892627046183796035861309725923211134049797674448442023671266846698810914946131261732016089336752656186949600415416868876833723867044758232172491680096794644616818718916189678904329597079393730664068855109943541085273037594778715646787893960795970945639824591663046475250594111910773715776904726870368438490330011795905743465209979271172983963295386139856764869883523583509291304333506136145523391574596509214878539650111021693354398901918876938537052622278460117686655172898057642406329628251353116043041219373865583580875040152391364815919265888617666892245622825464820686789605611271992357089002064697178194433331041072748783945638290907962447482849075741763056460234999911815096056447040151935455622264751259731117076602526031782698601533457928245434445710634172411208923242247666108148142995132221390300607354514803275953827295831007565945390864437057356061074990254449700221194688290389531549454048848485685469999890615760338995099106327355115163988663452734486484533062725758766238681491849812881812654686438167055050594323830237990844615668085685653792104173657622226721885321986511671432113759054731322354655526269387664265217033355551781738969383326721463636973785961833818742247290921196856906391884867186687175470808050531347049433646880154156696574616131080975130192293149699734896853216008011959394941003272545423069824235063356121743016265429876605012443360852225160154387243790914168613397482023177855014461831314819295254410181734365745126027251838338377460346537275241601683409779218904332262417024537998819013249217378122881273744785400142903174354638611842281670050719483687661757701705059474625296832663182479817034045918160342018327579391832834115959761069488713585537686915839397002269786305659962830335418176973035736912445823699850263433723347344407868696010602585787942141605225811206166960324346957686951915782863384613940346929154256810863877545580772636981704809665979209819311577940986573305960142014549232352366186584460416119780320197929362934511224839049088132781977381578291443464533974847274682568296334201428557539809472636587625217652731295679942738083971688231566155686351560620374196713241358953588419167688384001276539871585535392218015926626381529999156029964840653646371184169914205659256545787405199066224909509908106937881371821315955796160722365628295989956156873687765785334666396447573972768807827433511295237864304978601267727983088075728015447283582329648295216138196943995692260663063935522251030039027365083238994567754371412585522199065373647868767857338590074313359320618359461819177752563013082491202485106907678478032610448763711697373452650062084689911855905457790793478496765298418375118470115060622176921792926788270002746409401448275521656826212088294760321187492096341750411886001669427701567789718931819536036062690261178946931363790873155433699738048208829530206538695422185815079692833214638854575514735715280347873859955346976732280276750280462423566817302569266907769569087532661106674705259330096930895136184756445263974420771497140383937004923575247874013180656407811966169770625475562227361001845936774734856903930601340176270710324505773763833875323822751993479946510617399266764036055048166124127716480763586000593818325949567065190356124914225817719256523215362432029056108927346315928584057324511223668338046462556455674305824646844693352852872357163860160689583400800020666544368459895090714467518222634712520589195761242937810033971409991927342382787189211765792459569282075367844457733570403077354806891492433613664733151281044933102444427664455289615515227269723126175291475374068304062291106760016172698016669473366585057321897616259239318412646480779100215224503492290289520950181158112086654398708026657940080577767364491854228739317190342324067655645714225965496541187689865914883826446947702432880761209201822258754739105037824588427244945945121036664991006669582793912340788436932752486246814499766516719438244712500011235137829227638994845699604453732454985344760964353241245337568045215676807973122489235165508390265404100745818239027637332526478865649908157401929204705332090284739078231569543393072381689269129239424397060660840047470398809251823548100684719845203871836267425374081014198223991703182165768367057263164248145824588587386784371579074232306263066686787520251552871024221180900466956042358151266347177217636278133883000529158456652532106955926878407719043090381241290132704235596748371630282909946154729466788027715039911130353566816511913343816057720761005649953482295696497468331972348248729968747038427030560038504156520759271144985757784636637377061291460790439792388937170034882033308276520320584422919726619448485799292463006934828444644965979916187023347379026169629974698504684301316066304413116365442186739402782482228659982536298578214102701994904224815020193811314383381668645369070128572127093926006341655490630260013966721328021277140646983334314239991691611027429779559606507086560563831582829382387543032298182610414368422957745767624578704493456161300908508942804539509241944677168653536978693901493046184266085058428584309202950055608068664339444697318728507747097983326206843042643669794785537919839615445750338061353557185165373497044183032754920682135794803274746938597814156848647782826268417958325031946184963097260983997097280484805906937162969676382289536691784823707105941501330911368757590711911099267338277291821940106890297874505980994541971078994727826333795394680436632841639617863289033383702748555412349291257676181992458353186398273186683735136158556278984280914059992413202727135242005850591654751787210991240658628944230106081477249941755326320295634328309240274351674024036880271233163102514677451963080059538329082019992909400276564046830607737989122932525275296532209494579616725856318208447395524142754238142858743892634560420998494729137989300568644371243703145418746669671634990445895478625472304356485128169111744266823853896613965759382529962000225793411269326106817749450651356897168213359107478707791477133784832898517043429958736968739050987766210698091919468212928409712127029251664467033428122767568294317489261209120092896825812686013094935898611462157652179955773137255886147555913920667885658621983267449976098369611276700672078780582393466478079152824705989754098772810022988189323154952926553690255648659828941151904827771592648922772398594639578741456934584459219867056268504656836870070047661087510084411892614900200090732626281926841262635599766065052844215144151460960143297147246014761835225504004104124619054704923329265116098784457672497344718568705053567341875280046766225991788071235185369786799602222830972548653760430816001460595703794899928429432095491510434438612975117808246611828284824534722296155894604486223816795218845484693479944919333990356744582430211123031197682362959588314025848922569373935278874474433285633083438214140906231173892300972430143633578073801500363155400713365748941061673435394940083555812319962235333674806678436548758156460104102939781410736139085557796589763398566296254406042869930987114152952410713374134739910685005619114689362150597857982674607492088923143882551253833567048000848833520251633628975513050036577260156645805658380544840113640964271954077609522778945029255621854981179676695449006433761133078082660854955949069211447264066447164825382251370464388781150317719915579138886630315408250212940498739430906670530083533783544158488637183264150832211288101432250071044428469330646233617508909269992630584381137193400430997174537013611257950629244511407900167159201535604692536690145591320364039928496720236765026178930939870680551493593878638174024883278687045705545967092125213563871228998526380268589416087905066435855803329798303134963891398681371418928029717540441526498234080202788964944215376528215366299295631712072107554088644315270786413069642179857171943393338706263815456524371777780542221642765186666306235454642841874284900039306294036557611974816929475415150787902247290275628878677238539539413865368730235274712237082494571350590001147994368157729784867573457734451462375391751358494666526011126596519632264379490080261890717572990492400925180772020460802317875532633656764807649955387118709389018993710642685314489957992427715175248360239301059650015371640236114637438917592129560901085365735307450242476250067751188010318846337860911880697443897091961240142577550542888524716915624999356535074001876559586188273953077036280262841754801201713934025845630667962162288925842393203977411424564359365596951104954425879426918260429041640977214936456634108971174133549573502336583810196229197584095915363744139588991736718845626096710504753991257486081408300943237540772425618936583135795862343897094175847737146143779218137724238581579791169802516666950566712199345020296703318053025667957645151142898385963219105116291789727442512020350641762649842274532173352631319603605102147480243969192812205094349662969924688428920861781390889777405302326242801282792993257612375206058412984737144944674468391565777647165242759399430296759313442155892079543871878961846419233176074312612734475159688266965216499883626805784434179793382996225085240838678559272599348870993701107777863934310237378243688533101969497019354521977757961085656064889622561386086044017064989514148055079355536914546481978495751106186967981178268965289688760344227802747831678907757354097539697620022445385337102554137187788454436854517909622703558029060799972635979338889422838403860490245863095393698741894468495382691904047340706963764487368957171934542416714986504550153916054092870455420656637105654534677676344220165997894348376785061512995323686091138886860099567228958673764761355875184318633521831354585383408025920098925724486074533559177510300480235134000536849231674915294722148637104109729238874935330858239987020663425049674534699412224384868279268809612719639353609460646787895806898269805286919779806169599612377449473864455689531873009892273714749029389103662927693154352451594136694874694268026804780649572459838107724905786006725998601269214292330950692210639708840982247275457019195790231019511227726986563212388544396216060625764781861652377417668136727592870579592285326198548571426088228257966224788498273648633845513151280334181153437914331232983787567788642116732803014453284479945151016908833618149528375477021238286120747545081607334475516542649475047505193626336620402134600777105916612427901653366068695375008158681947662183643993540976878976177250487222871874720674039425818728641106647380541949826682914313923175610262663223182800304377295310169574229218680329924611216178029630426498527361201831775351939553635370403316669888201000750068190628589057768933317399659298110456204072500387014524945908074865218066245212875048055293065124659969392384523677071873729440401662237951609883073173645090387390851204676338422125432900031259109078650932240250519113388521572510828794155542087092311368651736994568007299297931301967291890560073844782777416687250271849351798128067510011593974684120433180318375742239603356443034080002098712785425763045960844792943558190871271840394589514731559218825679756636656891288560121661404552674895131497533185498827275171911440752421313208950061885707754314077663940916775187881059253373696108982829507437801674696536766356967212045793852820954735116127804360116633687321931217702010631246272744060337128280893506737879984686887270904722757689986347972811696716538459286763451241155574312473253892655189651387143454866211318054605682706708200723575075571070949533702239707451217167715305489686574108161851792010837288476389217036144850911118328398673246077426411598653659544226320936694021906429934017647027999737654365933915023015121760270091558965655898734733681029458696378094996017672444367617316930239757767705865534234371832919043669716416935349329701954711239018131018605083809821976713652386832876182334833291556766824649005449364982535872693605804527941358146625932700190387792257820023235155381882816212229442355698018824106129487277369242698619932779792929904603743895619523619650803500575505936270507595207741826300685823805431487807373356242131985413757026004334777931398918564834782540540525629847904466808143026593572472959427377430176602935700224123819341151296170326577994614724489245814692745432503082902629932006794550415711039881672946997526377000155465787320143167726839656006520920703935717626138541523496576912501892883521140762532308303654342345704713285189947055079395387519343725600359574051057988033446878338308476830213917483987584884001020029497407094375833935655752978936426806049159700853482313498036594034623461723974431557141000071697472161269430280454967675575198421128715559666543861440892320584461864663764524379703744858873136771439655822609987119297714137196658123005543733393502484896415086502311458428215593205019567495392039414730878234862115711426804033502314276698131761139813396843240742359392801917709250254587576021393280961662418052559160979936132451627560314339650667111395283229626691474255086651127349935941328558589707881797251573144304028637441061174380354416340959944773416100459397819489782562222661744880632930982815847437390016346442163351280206768114400967036063897857096345485777141959550210530687774568653821810138519607559944677140009072568116259677607853978698027679266409647251443406288350207665093788522949460257582754339347859842430514480308894493419758525402528064156178913610858121185354408262993688998841076312676088107851447949845793771812777840475499083702733093256162315356397442132435962216802876885813205537096262143025790547094595628876713082137715942139835490445383699039407416843271111077804037751159361447357415226768082834453660851757390190444936633034998640099112648071473462625041734151061381133688257193672829098699256230492061839668302303841688594130188095589816947646543726498309591054543108354715172157077182131809775541419224945763720025471352475440171304695690467697667019795803057539739791147322762504236199082984681038975668848446337230869508300326267902810303983635432812959562728143345903772683893359323524848573971325194096972373291023575185542149466966042863472716348029093515056918657776515235531101922932124191096416406059097226436112813671835357919963636153654358286576474247153612399938791032829408214960967728140776918139958446477121362690828650075565913836028268650851484982715725780743453220522200425031896223859847612862707337553914034567256377860881274902526793656295886213125174382152931448421826870575099969695092690345682707311039020035478698012648111810678604592271519576417412148164439568809969727172196510370064262915617043733113721946661083153943023810218419525273329734829782565546130278095077156694280422595733383607607537769041630423035662580243939817660685091813470987514978038656842194458943904154147067884023918333423613932118742153734983369950723621389720719286467843102129245355124820628042017800196159213976203967563850960376527681856779902179748930651275530743438149046887607784591795545137514046429046906701894248563931179199872358460296080166187558993622039768147633864620123293794481069040145258210009601102986786132832208694247817610167759613284652659562735843994825334598624936573832736002527970036668695514634508431925661510349588017295824974132666307238379275832267997982379882346630324221374686415704739490574877941968353038525536738080217927063065884253052285129490419567641084400877242398124389351046287758145455366540025010358904696828400462482452092150616815791076635703653175591938588698342037592496561494142624862778579957013351994509332214385347606887175871862358548241593812193133467919938591579132601651209424986090585085348650137353717749553645920222214053430096745193031710880897739657768132326580039800569568356162012713393137576678523803508387178027209120419253757808844368454135199655770688466074769493576121939879691684909631613922559690012198732326937547513506390331433474522925011602091169200184540837171297667396213990015458175648636193334204470263881306105075818598501447095786411489139345516994551097136232318292104413052115434981506422928896095170351535088031823959609727060224752343831287369570350906738907286547162459875986371969076662332602079446254777677826772577447721310201449147950988044252095044423151665382390883665803881476812413831835026930757530573617167583599814471194545320422005263825565084093516340251024783887477713550492191348226239622355468969430768031227171980119250332507174763184348485301367036215363578396449754068339280350808602645913407130255014342504974669839172945673674082180109427388190328782286066966903675106964508697353141777890849762820128488403188115108869779872142652934218941531737041607341260197834976537269546152933786769251630303003057550209655840889374974716694378877844813395164628793432309556576693607205137465100943040013825323556146509808638004351091461691042206705458655523587278755996668475792257826192105980018936518927541524325270245761829791896643927802174022679205452114204963732452844807403788664351489073888101462755396945183152102866473613836570116777814522516970394888880646315577501300168312271230459025116447455559895550953383555031063271273651936531742774520143257909177592112893580111469813261952975032181401680424134837949711554137775305337314657744214024447897658475398447528170987309777495797128363728502860452302691374437992890913672245937590380581232210924559760842981536240714544779916848729891586056678016911278081132900174559948246754885449770184052052784284965476663174560693684091803270696816827077338724713349642682453522892574656173501122278907447714920330543546603582362806399628359235056790022512220441296869576720330741886619286361781528880918493204140848322110002324546695512043964873255630266452122092099663702800352991914812293736963260864896025127098777487844103554125498210216199237990770304025079772883296060603565569628401066762478140197953186453818360575412215248177369502609815639404483602107747951138275771987219922565425310998819132585320620297585365438878023353598566380844479849609241795485588800546958035804154809367163197252147227546235951395337236365136054059593629983430709207009723318534981268302020445772309738930521752424012701953778460434513904603100867441764426563397483405376693052509959187557005150649191270721190393687817573641880417527405696183418326370491118247912477961696515954953374325891447069466453261663687855443147036188658964955859245062326386778428512808176625986566874530931754796050034279545160075153545959100454847680849590443479363169506514980017559978280699335285004942433462294842945987792663388515489234654198168854450109649132592622038454308677458796190060427250729042588003752891098659234448667515936863553996250658889359528340555113482557741507064172083191282631317976439983355046298981014400050838490056526624676721737000615191997587603657498308788720911647321056129690694896736926271255437158581565785298885448423471088130598322424324861235652561260386010525657351480709774500897645350635597331667884181233638868798124176611667657603790840943898662753422516450828431343510812244966505584510810173330158162959789641013994161586881305083075648460757963642927555264494140576706230573552743164008058440659548810278433882872582579867030022141656080267662407877435400013891132371718173858465717226093160314388480527879725134952785050405077330808096196361183730702147820255351966402943990989794408634462005153938897433534391127880136818129192445150531352240417000307158975172332150234341190808815071733971977196826671383636931529797865348946293450463830541466567877545217673051686664636966666365863574151107028597448870616510244454627419094561577758020177542253258429881528245161700820343152723949530832271487961429552191504244941349380884522204014348051721081219101359976138283468394411252315715239649755032051114947138993306113978524172246402904231154956892474987298824011008005419038359403739975855334495950555414533404898515285311997036235430248619991788903811060050964816101009565222630872828333972893412929087432306659046729675765703167854107214557896393943575424898971441870892127894677879218625092549355773652408117343279863263741350898655100160551042952413054048301915618423295844688308728231744334723433409429500107823707905974830700482419612791858592398824511892650623499729691965486179733764475582318496780428459167032671821580677814130206129060743409207011958725679359718474827406437644056017296577654333680176446135027006416903901098309604756774399557178464959699908846378787386749151420102052515591004782978888495503673463594874130843102272748688582217238844045897164663056913606328659981837848964466091340044219103846366690622917115437623454005005880645311634397161930336601352227749661129946464972457542867964565716539842604290235815744523361723891322300205965679585898667643048360234876293761060715453860331466129465984245530636637573573218890798058976677647007140112710858866912664273750110798359925238563403580705775692042833588396891120810605806057874600836114623550008850097854662210781880023229652110269747909782641287157125633326528381131027018994344655251943970178668742222634784895183738531336454258637362842742581244378197890028412371020973017434663834542507010054872330812887706907160415778873645317073281688114684313226106779501343096174526273027003194628340097043538585358632339079662184786069448332971498584626525263631726025086197100265753371471948564065846052099444461865211326732274117778738257371078824370650070262894322681634217451972488730706089509187799219846272043773327121368779961776765264618769305695282317533342228614998450750801874675449375179292700521158310202344617937767879834156776842794920650327037980869262623424347143915132521810774365326430711873469260441096703677037280000336086640271695062448944955938429335508079978782810342421650141545511771655468406855421809988137988972332077176391593007958282579995462195543750514334476828623294038805993005973133305308642946864004565423052643079370484321723621900189182619389804593460939228766468156291976648512510817158368669382045110627503394922918081963030381872996255588734486227291936946366985231072697859938411267734193484397112296587256117169394201525346676611498651038281432193151609256622337940122819697503017543148634404996049678414366711819185743018837644294550725324726496429865882856900030555870525256711987181337891773799613496013107360153280532592447476969887609615978836064264933327074473351976696509496866026531098466945888240301178925882596248355688858210124601232851839646525210990186105866956526345612577348554676704918136191080460633681458445662037327677429255513658351205064980925459013285572682526400796866930506489743907603815323825300153283575156718992425639265768201347912709439431216598648080597169714522842063433009402587589705520859820659264278647695402598594534115488260170929626297536974756806131037170523181620725932100114060269834879545320831083655925076656063667992307639349747557155431059704998505826417367959365958536856912506806985940468206952722885977640127820438173044730023159436926373933367384636800392882764853845039876986001811863711594791990605822547301225447114589349766677497335431621643181492264428939122582811860329201486280795073315336435851562942342201234358762178261442029983075289000444231837513019461176813585616583625365681069887875075639848227779291585367321654198369692352690802132075776268507592974408533240078611468336645726145491133279688794880802912121978905269934563714648836450965263162467758139853777534399162690947152925826102844614229590914015161009909526061068344368134867319587053619853030852549550203010145122212636728308184285157440464031985811475115196704876017508389338084572430486911010767437396036080391849388423614769981019719999448730221243927534841611147053041942479616004781137473754807668209704041470090513355734140273775564802540704659103223777350746661162279632655526289123338920790486563535251338620956269591373119364438387581725386950613805083648673266756791203273899486417855401669294204604822746050338897925865919178835233027853220377575049388954326782613658546601556929564251697596501282747594126241334507686406768361327792603095542372943767398779115401743282637969469434097756482743918726763884208752368468053466719692416745449799299580717588281212026728581633741696653321304499950138726561148163449026930050516071925440771211596068595047388900513563258158764656829864296575521259253575476989985972915672778423508635644640066976183173942929454690858571613204163011666178052760954823898108225600348996508691987409350052011565813509750793730786365194011133126389017978671574533558282100706195163738252767534432244135740026439760220441152457374226930245055323245382768849671931352184351018890217094111632298943770231742112394755099558491321913884060477330177752510152750723547411821635306848639713150085264306215239818251475044110238220707376437742874835220011999432102282042756345354083536980506474180428412104460689266398131193466370550604727025702842994903526385512908388742209094607178885106447336821486639466736279151572210041557204203912455588084547726246315869232666886125008296491044949313078489976755068233540402997133812950411336819304940273946453788612637836087945515146871726751204360785737240965215294133824041169267585740534406690262046537464678120692888317475165384408294429139751496000904695541176696423343881509181862401805369346697226599293252246280900095976289346184246650537319804645682327661399895715029425579501941557771070176230017343961335350337751770145607791127731387589638622629998122121811632659095175392780315913585241031318012921503006319383816277001555957523850227593032834779483400622281804544714327326659610441834774459204326006237636418808200115258131547671670304246414404218067912494510973794866011192442593586455154167256628026943570065101617681764544525706312822728518266967979305850388619234332627205365707534209737231090619558226585901650593463009439389672883152745401914575777084018388687199670558903147310853458911599641237515549356561769134213697767151049610953046209298267800316752111739897981946847645260748610878432103581580988971134502681706888228488760776763902417014926685204821402626798029351133720442128403563509313478108109549537410504310416875439303010971882595797534241863943912117919354070656610198945023921597925385822466358410990535633731821665722189811464212563651628813384862690697526599835701345925023774422177817384526616985139586423504271329738034800861448719240049093153791618793224573826298489477298286075423555767930026034059314414664261411521481008187389659203044332605481797996962738890138924403279172173851995983304026300382943688659665209433047322005965145763201590302639243927300887228502982510472668332190069984269986892970754426790047342872507077006044928449019436600088220451898927402343659568175778862950699181214052368173231835444368328237552641018807106139584631201572448006290271643947390719343095365054971756473007783268837451066738412053555637427245271281728531004777188723216405116132903329261511859740989197353710620102767654298175921834717977479649388745499534483033242838468358365143900355115504729417806209191128201467617823647012868914112888903347427109737196194531589134859789613939501819796820747046968465365171673076010222081201568156944576299825260009099079268403507543706023779861564781368581538149154032249312285964180060244022576391417812821724687574106103300128988392640501406913996179609409853147989146237124430599121312082229024462463577957429590244098876816724545040106799271259227479788429725652780754684205853460156535119055900186403495242069235520661690466739539756863846972927008677876684846007652687445078577466164195870736548781892885622210044902788239925583915823041708877742222689127524485102784070095749441962657014002656718490499075692854237066906332778551512310704407105652696952440345920462332522615244401078007898978687266797784955565552547593690725121976960670861576936289234455724134557130320450044585054842079794122247239922918858639241733519830982616303262318562408002904657096412317980752771798632387308526712604955068024421756249855527603433633971371357824619528612595424241945488908259342606695092224694171979806228734306402530062272002917161617974446007389468834119614598452636479029699311227244011793955930929728231089684982711693453593658741458494448891605102107545131713195790134093746678576381504565289331505677452154130908368224559048482830072936147936338813427657905818123343829336760370919730245780594727357101037228091185778149314158938205935893333708121692900705930905451417663794357359114514508099903098980698700649393458967775937277864746736419554658959977419224863623377792215026301534838236282941784099042926598993863511612252407112193409286355661040062717658039557081067549299077006476760915790896757600788512019322369558871128749698481901487935467336353405750918215966430249869468428907731761467089185287041851402063894499790753965854426664700995527694869193484527043432731934617474721212511387389527283661516987981666712740408146018497254703161957273841811992636774242068848291257604644181703438400989718559416712894210724495791769723486014741322969876609186128998486100969588772201790740161130359089670408814772492502893249825714649772384804511511659140637833115618780140670851589770269407690147176452082447052997888668981298997390059427871980609481666603576475681321018450997507472544277818404451066541170735481749371229737889145622336825983003214657531258299476630166585202954758231217727253073239426606973421229797919652496009641556144055986200115734212432388363996823753399769451788494019360358924709694669344171858208527734979218411129245329060736133861366178314287437084950241383322057942432165338266622597553120261419902786912417857857504682694825556762304539161918553281165516842584614811675296123942736009753530636572995442829582265559256980445061404235614023353758120917654959982088047339340925169041898098312668360110430667519501983294771619317002400924199857125901638266486283276349425728886129739192316425073430464997777360264390211903533933028150790327153411419614440620529357370933214011817112944058112028380684985172027856612821533482848691007201682462587970671033072712449772123308371340825686293490245574638828864910996371614694010913368780532482293475129481498244578728288705645949326208958275258099942561620413208034351922888270477488445913920936292782178624274030158710285580631463388631180908161403571011524598088633753263104277638136133939285157367254265513862959122269519647974022823566968091625549586775946578817896937346100074818906341754116129918364319863507861547268117316162898572807177243576251465566766813951505645323274524255809233524591596324307272464797075261325822771144625744324290443721759276338105991297764799059498010342804492755730991559350697715324860223736998997137516260326187464988818888338148866794590845636487927400807533599655882778984258606038077296519015798215141269979377563949623383825862389718843492593112096153881618048617900911822905651197672703974059188339465756121609839769660565437440639378145141275405957580277551843690000287441172643148570798507164357996147161516966269562434076203074847989891446302016021519763203262529599134897903075018585999689612884503836710499315874917148083136784184350437129888961990858105019726103274642782407637461873631004404443994835822340626816782957919006613704244530608739652514823651903793783535063540800045627620027250406903127553997166732909570030216637590620524688666463321048501694561732609055948008061150211481989806433288623170947444552399881615744601674269694481975053532744131423607085924170405228978394527428843391557219485515170156931540059244878203476665748616848818618661751031221398363787142823101091007541062406780008259034443520084525997354193127689260308627483027100998613257016302756367421331048777856501812212828606465717706211887097020030091224116949775005389180509721835248008866946485200508286185083965787000752386694817239806248777417027605493595691327995496539351961974378211332278037914444344000750062097638506005402084421967297466839058488474127137797378879329695766869196513230029859440195902910130830310030769030760569962460235222669335538086725965881614058884844044842883914519304004448875237367091235485635035988770784976161650790575726966446091897495269499503661698764524899473691003656537615264671731021642768381041346168007644800815249630341235932361139815778592083863405260744748356894265600171522245643609457646762372242431769736044058870600927050281587933893772439168397450830504465289029264990638819513607900303819220712578187785007959427561769462332433009529824877339310275653152128661103607360379469623050827164003603667474951270970379077156885040445164923839521956714480370623071916101406034898498576829612741314445769106931658382079050357419201432906735054658638578917004696496319617269718621952087806953446896817733265483468092698097821445765511688324723300182102249241994620530421160756126486000468765262883857385549781901216319051150156817251434424867661980050782848560642570110962269050734065134346627592737627776004978069264864578923821095914660642740755685075759021312900975639478411173659200083658260978907497978990055856450457459468149108461115631331186892480327873932333220173339199928098133690647193992012019443027042087426955520292553673096365895487252227915593090576502829598804459092439871919538523143409654409170760572632422092337897788400654186754010773336025447937851688215832983920882415756217806699385991244620623377987788990220432835517150977232615192924911753485774406556401889415933670682522150063607180449502316667968890624668031993360718240655226502661739567276054347978881628341383853919304892148308918515163164485028279963348625869637136323799559373885650570365769285843632767875898426126184144101655117217023840013504469394177867194909452947162658766832310411889986467487581696380097703160569670791526758013375379992538139514034783036373079554461070322804662295220447449421238528549255683807962034336034358203451879606980883571942777830124344635288646021779884989761532649198239907511422221852620166943441576867360489907072287123410239220262359743490438189574210945294665009583306664456189365088046087616849124757371144960808288239366909490516742432118613701632365928321735615867582095065319187739167156706033903982093299886481402614454559737867780623627902981234288983120610810519009185257040314083387746426433372556531293453441838879145357242533046557529700566356295549614828716044632108407929362794575808215132876121082928631360281850074779473351550790504799086082202103941628267040907772931449772496106014103451351567751935871579950384597059674816835278253280979566539543295989244625412375954377138048103102232849168218208920932991917837770054891290289222048128633770856961244921307827658862264060854020877621490772998267036410666454588917359295658212488924286195774270865932396731120438331227783036220700376774155280231142778204279291647924944660690870567737036137387348720752234589085322569171573764186880817654310801382104489750415025848962093322910882525615139786442690624443513795267391548807013109301511109784797284641505032019388316874395382503162059098046684315126783585927725046354396869818035974786681425736612060253806401897713885894536458508377747046844900245541169124672867195807757542030575233245221781406583894483877899124130365885258556866596987090790169448455332176448034396523108994910441536838430321972179916618044908911893814357397248676794652926554172627501743924926440540712706234117756404441179261458964314031813943199182981817618418561303896297179436660274933743868560491971014170884273254244790722191721304277517515139324870074740623994761525233331156193587240636855604831584592850151413769704557049025783284324677626387613612801887139414448874190179213042125600172416301997908972489024570592450120707748037960398565057804813582692932065113435715002867326936285338043750913372644020095665295404022925331164393293873973915424987399111024301681862034110751482911890968110774832246183178854760546188386646565281760214855041454517862156563729511984174795118132828491722032574862096974254376160641544341391058184294352448368012512906234554445811265589291354996175669952856763386546101119510657913995168762378189328505649884363310801375144484570344518128730754673211064534183814492877784847813647567151430785059869916222849084322098299832732844172003732203407009050577409913668259606715085384202785560749626625566622497860450088574193916298949384261391171761589198581559203329896547726124458538317321636008964856242419501991181356274286986159638921236926563290973330713755037433159818403922991848593781902000701824901087755268016139372598735365390612789703432813413290874621480148822633176507192642059310262482384970666442063732871143896062066891048903465876624390638806680809149759490727746591272030829252303821642328664160108907260904089291551986871465657760033813219849510885473014152280300779373161009707270976062955426388811440808914750682798153312765775493570461135369683982738394826105412789973715328477796434405451028475770921543097548214509822647248442216325110472110591504331421604774657016407396141329483959371422156132503285580893569125110355137190283390986700114107781815513516718847018194153244918374718106280617032476912240549977959229843031676372414963197353181536863812971687790676875856407648312120977365635784662760805161680514185340687692269694164000272845352378634162039095778930387588561667913359167230348151665162032751450546648620936448874987510353405139122448870811907579237528663888164818902198844621762845633989131009696306561090710548997430694312386809157122662033961566237908562994296196028352864558670224270455473218861082846636514255922347834289342427631187087638214075811248571482180146503667106914029058535432506390163660685479440773754625816903060771178168373038877003264116866171587649552437114866204904762732511540631439364018763841772720409788323484622520990374463469712153877667098723958943915730435131259124730761091671703669039057034357987803831211397887960384091884928405148194931657851558967919175885391641253150468649962583346857183658879978092335133753145281729496981623284880970987336935285260339822680665631973333982537833169254087826809049084573640410214565444572988551519642220102801181828622375098536626127020751491199309329504401080123286589335419617548624247364860994783982269141407335516688517564998344830584225682049439201814526479560240390161423259529189797768388551924915672267671895830248934615755200460130590855494045144941037113218001233353254889485513348180450583346221576864487717194856049154642566189313340888902756769933771558703300160483701070046223134045762499078096052495127878177056345817745203122115275302141449803120234749992822272692605902404100692160140881896017074135507605432272721115469506326524338575614609858401689090505942207287247426735943441751745616886303604606310810325689100964241077253961100524823369769153411554524427896673846390294378556152952085318583198359453769905058572608932621904947423983489761095017721397088436542014167660855434961079579899940935991987657827278030491246390043509788606957224264054305405560278982115908300941660719367717604684415244052426295728356188175852212359577263594651753114094704205140056660651394181930703598777564694013446652816321913413165165968367202752243849228320717306054824978015756080223151520721440777991377652802395453167378534114471063737269632350486701493240871856105785580693948524842336351897254506329690826706198149839507901717998886765936589270102895854220899273883309268458488201232693092672671038510055259974813856650997619942363941663848378034330524535167072704460751525771899091160398435705964286141120239572093914999639725820406814094691140194366020573348293454513725720598568707347296975168094705966451739680524063956749313573652876295132466186240978718173669877407072895901899144461243082673360361034236481282789344483848398353567136036334097312282961385365054750160984448973321218005794943248654698877190017102315861194011345015062137330514220731715561058828562032027025480722652539474243692721251317613961126138205608371288308375729351230011062207619651906865931256507614856792757918421392867900845450198347815117892399495213690238293414554830033871746466881020355826568764350642297659085478706004454852093909862220726697156826940431610345119524073573138170040771611701722735045312424815364359132436075380899902604098248959861597406693872132642575486975236339587982353673005746818307243389909060533426350682552517501775733219526461927825164141365806283473046924543509849798952448001481257594956500285728955253018012111939394550676067069446175478296539689629697713196253523312754265714510563535898637671540516609255249027698590592279324894415680465082899744195741092268031835969652629306688408789539706789166917979626912338934605953714591459845908366384718553431389455735662108656918817559147967971376094140342376669320918719172718460774202036938297048630818868012010652409431755550343592626293866291289001262091046671319027081933521408319916109651633681313175341545890674133468165478312783228382334261324215082698048476247273606809869828117398378248409927008334939945320242115254174703464523418048600489255521813834244954901316948663418858711365886385722148876678025811688939526837655578828022879237297583010790499031303569236452504308201618176862112959079879729176676591686841904654788374486748127041605788356847435020228821017181852866289620539670002598385041337481265306468734172051261112856303450234468876176124760110667053675293687959973098600862986909245770543246470496127158266047619887429936295575348829549108699057235483678418707046297258648527651525546107747057985412111812064050983194829025588450744945019664240956804765281192529108396989256002002612780195843585073429449923463222047932440684023679724900382897410670624054734113018510930689100429659307517053002263808294774921153101199636112904823533756508496849577568432036274650822995062092508390553866501261083890337704833576174087601180300337705817024575607401645673352276929044973833559715386611137031909110433523672671891355372420820699005573734620622745520987378920718248788649333900183844218680233104078836996447732376319321823832134448380105018935098877464887231337352785257796874013462671920716423745338506573427675621423052104373620047573925679718701430025134946411717965008750758822239558577322824906542973393518864219749643557994266727816890614596154834247522085023782829413556548958724337999395966773791312065189672978048830814026335276706053130221312359488755920638220767547141029128689105074057535854152525993240926482294884726234145218748338150419819877824670877416143593166804473752175366990594019431740716024147474509074181635648070385159818881982880515245795304462049471302369562379049428092213686577958102470784245863397048889643160491962973737258596047962830985453454463363166074214338330773542413388241990826564807486016134416884572589402725082330894409415942437214138097593216809252616794289358226336303661613550979975791791466410635194200734354856048679302739453476748623240431631392920136779985303558947297218255365047527521313044160295530438823482348799091178025238111823019175234118487438533602337864852611516305701588430998918556754907462539260698346429384641484876735987123722306290401872604415602121504664738239936673912188157889924316457790459391636159413369736009283458595921574486244967058901813904209843280232282509065252212643086092883591472483755136483185990279981509831861730647768800703760741653713276194839219749135337445130669703946026306913993354732383169087411188598882756273439642202018289636636221251740415969942960716349502410821489796074614145401844937223050165462245746849307531606667868233083063034505579850050952206192983025242667601890799359964417368505356665962247042036395273635682761800371642141733764646183869384520126819283068244127322773272031240725148584132934937166581740849184847659773778329525520807748664490800663001353011067586517631578694087235953602204198667881930150204485836531602458540639767099135928304404698652818915264404662338651563742908678287963907968172139345066424103451299051443034491534823683631675102363067910725907080468742250330262486695444211030634387426893877646757672679210598903095658440253117991203041597409147473623227336570029336802462895651864156638507118316405896566028016139948219809024843944487779215561379742544684566959895461340534763881592499458970248836534936379991409607940439899872825687525258992863505421438942943403073783002515662572175194774588869665588611667364801776891698287526566866790427353708393644158656568204817184232199765127139565188854406660048631716690765072080359806145607696532040687509228967622641803373901860567896168089259406889186376122697716434804706428646573549132677960231713595299563629343777950200874290718121059031683579699406240857120952787259473272332931204812380651132195036078561310205094783455049126343442082997151583656066775508771429570051395296084613857918717976382722356060199211049418870117326468531250336195581616096646688175289275388418385030628507463841167669802064571864359263082537675683508836470154097976690269401617798198432217324820047592816345309253920028869974921851926232970967147343496329097277162636148644198431368141756304603102673838196330104846294592862615084309966644248298809353422895548435073268806517946064566490960747012945395812410449409404195972171978059815531208455653336370661273805247624550795086971828137299265454948825081984963120526556666621065771939821583453566037517603899768894527442021713202880929980920622411420434189245143810779522955286617808731230637602377083197542430422110662932146548911661311731160298808447270300654223831171304641989133758763657037241764628462369492573237663673621321313823777355733890333944493180089951342815190613772933499807989951912379810501322584598217022034208906232780766343237610306014637015033166361075170912013542833176571707401388828955134258884024891950535234871338343793151813684724581875984810222568609059012385164024402576777373856349322945705460548146782256047748181963289184431062392222838356985330887487507049486759439909043109019359256250158773320926992246631255876524842221452307726927254321974405781952115543538166321526923296616963984273719149276219059295483561957325779290691649149914052722172647657743043771189508103855383215760464468990100707911800850979572981109499052128789209922691079640674197972828020282828990392820626503485181970540593998648022331073823185856630711223942955086431436691938709394114394069697299339554510011788937168785460077653189755438263134686256556593483353954282691231714964829885383707051242626977304327175178647547779438402705734363879193784972449560266431108302643743647203807913617240852348486184514182500925498847027182452457548022185129205435435459037131623784826383706504052590062719911858490473301645826588042576480865832378768528207319736506331530234029894864007377095134971101271090754941716406320512501359335650388635287454464070346020787138723484255379868593572039411061141854441272588826024202078067599108550229151240346438624343759173888074705544917197369437764037036464038922249697342514228369777206418014024574334112374310834088705545308604765391386986553488743825823524885001122618380197153060477121593690959184493061260820980787694269248099499061134762099691574806330108995091095099062748715083119249003858647657911263239791645552399121772749015274216616399052021718802001209643112803027169585390015401040901764121118170035182268701994634294092633514003321473791002068882265993477102333010902943166610741606553685094312298475269069322158397161102633053277819868179199346618907900038913011793933850466583200661326613202770473352487681023883427463307811594717674888476147431657465442185260006799938324407160657343764527083700458723232462043960709088864483891693590222795137582656673400155580786609125260582271243056366972671613679876546747265185077706319531537302913617007654433620846058834866305048570621165800151709346999600377591256717089588500183480653692222399151878877433494139901711951766879198274845359751658905743882747768830353174353847722573508569199523379754405556410219334692622551013017671992595502022177661277156692407866368190334131006825221802844708770266017440495590299819311513287869467643440741952546637580358253329438999146797608435933170005214049710239965804748626788535690680985607797038027671799152039660638690114035363848299298074278288409393120742594979384057473133479987521040702128498655627505905341229711024073256740966241539855580419438090627057965332730533719452310632041636034345741750417623951000859958315024994388710385167677805604860031425047033960243607179056190176290296999656572897099520639911045053032521664454925023160658360804842581658999313384622323394297696094462034665063863123493851139358099554497967033770092414755361318324622122393797052907595869121277688161383214986220917270401584857084766156979648372680618990222704831482744515490294395658376823163834971650482064096752676725192312233618375174221987113250606764269469135419138957969023621767173803447548094924181979590521440297362414423472513305160884407993974306795556408112222769655739918083166899864388089328843736175259703593919507195818120494482639080553258631239725487200578502007199216214809263561029368604754997774538194423037880334282449548708665471077299462393203753725114643441819228765991190749602294492153278835861688532594253994391183248820680579277860992065169645367016451815510687115069764416215657355348648595042746753895121453202466435275006809481329658688715199101644671437992100875026252675850021541742694783122569405965952685524153806169124994860884816252668677221335150440391668164515653041222570305769017026213984465818884261755825279271607429129567149148244524591457892603928566586911619582589262883063713948131949831122019361919080573566197834575422505539163372997875254150908098483726251029483065212787498635029708327539161789721919677651131694001125491133394759976888702916983697573521307876995169832320891900492883243595474408869141005629445373753416824067205315189348459316750174410888330215569579331927856879773969738731600509861065806327205928185729298135982679845884914384537955015461934994701030249745141006407571393485060510310508855657441657602607799304436295165126158901091278243550647583366655994917450656777534770558152917275530487764261159546566923696198884251656998054801907142724923710397102563597004689284951760492314325370693406571525643289519403251411833423825876204561266225426714601811080810644983998197828449846333271014358757718665541839249699795748685306472534303854803153867214902465630800695770763409184168475313230296723750077945838484562596145206881517325896059214878130383114395541342820875391049185195347981926397534992809519541394807815841709894720518138017174544239008683575621796527042610919807089998933404230843442607586785934122748359302064232243330417688639029139153974790121934256101196954656973846740734069814076103744915066250619045679945751113582342427348156680044753018264635352228227529733216189903759071213596197192545509796672544174822105104462297762241967731781132941851302484851042653465868951429094880909423773811682889429186638400921780956070936125576362904022557599440181886959997545665315554448023148347845375616558057455228907764597213944093723116990360957300444512475433098436191999492921600995366923859399714391038103080553788204718735842377225660318837472701766633593351164942210807059063829407516072358608187749933799024926627100462791128447489405942871799469259432631658321422409536421939739967197031562943322873092258444881244790275466528197155599706539468612060493613181342019601032568022463948985586629583437522726440094416551423834762559715398588599668671810232878906541211291866759987100958013707902879440461939952441044076497152542742858292970537079050913023136386875677938907763124065627382147056988524307806672801349941852920368424912775322951504778976996898833332535349106732460742579320859536962752001760697308689103032798757021350769694653740369713576555389553156688391912881935669687348563640527289030764859974359890939022621317690875042506127979596493503475437866290496501562922100418391873401853520668098395658946753640192805507198683802474109661651913186049228387960954766779574168508735179251038903075122340569012824294751796304712178858726064249306462872649569853519693924619191834513996826696289590732100429435708848679901942320142738157831055981194858434163805745887065960435149767321162939053702397062547371908225383181135195204016843473775176180776814652570767148140902091720767325557935757883506829624839231231704036791149041401319406964014724583428686861515422381358464874054820592534514794156855095502034456430420776714687790490141669918691764159230685000291196605218311918535345465275904584352332077443750038373329425432571427421559784446589376989396418064279369552295998132851149835969739043423672749993160922492359120915426663644274780447974723734603340574013612479848654687905738974290185971889930483432310948325863302025555308454944716412318119257113262467607905606652630449990952109100200460849053406072477340518782542006184336705469401189742961921392644761187032821030128126322404188241841884467573117372961684320460680670598249727381500833691548079237747553343360677875149966320959369908742203189400951392628823823842250912074855596631837801701664542600252886351392579491577789866352661051936853985446301776524868218355787889835026099184181056027950245382412736411314006926939786150534262832430549568486144218672748162385751708451845767896446934528503794946986820008786038491240856027782450598232514248472563554221484726909899474869339357876790903761055146660261137245185977252728080785361055526899893723227100040124301057046360980490418684595949840875775067523308010060342217612423806802286494225814735223426594587218758146142785393445387737624606667367725465066127740175529920687038049861702026573807339557083085166221258980709260316750247555935180772568846900814566098546723022646834728652263242741413992095916723358443817909028004307201811908863153934916689443848715535054120011469486515487929350178635707256872753260366800973989187275973370399878933125190495910889838838601858677228422499444569155466434280689326264382159820774973607525870756625722943241363593663947166657330628587619707410400891078984302872176368339740393687731788111477563859711009037412825404418237278357049523266030229782745239780882518929224474263468236439374961707803202708062530276128549160682284522473154784968476571090695898033056766310287552596316231151756458419875363274087171906643301934807384021306134770067914200976205173840169824060761830477402171171826676317761739014523349694125077160138224845623990925472647186435692721555942313516011167592044528446716030254891068134227947940268445424766085271078849732200026497712728258973218069384004923415339022871561563508781818329396115228874948956528197227496238153084485514799672700232779066817367227302503820177597424303743578147553046386917477156338873222991732503542920986129473313592138132645356915546677036504323549742687601221049669948719605455263185730551602578254365890938387780624432627763944464228067240535739319333974069734827492200004575087492269690028731211510996825755634082380693984872169263395654754627060312266612056595106258364224899732388123916332519885629751020223146925955377715997931792733397689113200466734298534342591612794066364913311111194431397402306000092581575028841407453437270932565860279568132749090865178599349676283365728374780795236861526771251478056800732088080197231857208587732497858350830134570936919752531927170129604291248286222542632501845200863535278630539955485159875148213760353455239164867328298905867452831194224700983365726373437554083447209634314440744906022777144809724976487618555915448091456740093668056567586240977976737440973242404429172021204505241588528044209875011609802077682656673009212109592036040466912703705339533743837058235633008016825557605762929892849442588997067516218155975664300816305601875493112065748264974730035236418406274690730904061843017288922021603325604189671106267911222937160521703179292965073358894303126737807783635760224898218260903687475228953017416918103764800772439067190323417148394705052817741249508696296861218114087210642100471858503493278289822026286726626431640378103538380509177175646196617285779254608953959503837680362044997259858286872627060952945771706192346634956309919980869609935748973558138983302394284448692299329423503436469680433764221337949461601008457242313867223423883037858136327705083575029203932555375556465661466724957231633738987659993802257320290298408099167118896238914223388017133229584817166526496888546012058959203774677295904124092253724261599794958459972401858864722440913518367970232941312713321086071065672679734193827643019176115235870608187732176102703862219984436064556957635361986313189929623160373555844026309803560852482254643536588028969258148652475074134358385178836084556073573991828056536612270868072407521653082801443705814307525008136859156801132062620604853892306145157588996909050578550766703269153359135791307703234259646352848032309040031831530419773440757276030468975839138538793633315001542269445781570286258505505395605225258711627352894203174005697567599102567577449364676663101168195443074811701580122403364577174743680860345865128122943292782134887757895454177335444234457064581027204979382289174847247014282039175295695697061349167118139606143653531193921581636568208071681742049609438440080160873065359309051700818557716914306046139692669718979854257447806915736420149034687032815304542256637972512008141313518468705016179119244484510862273261738595902788285221788585724981016302421316516113401588038365852639074845750986849929637912914928099666195729251259984051660849166374088789598630580171349455672256331869593490512304019744333661692652250170425028088487174851167141382627024676775469744443383494384024905762452777042858467285468572479494568998185074753038799012930265374183157706636540858017635809495732201067615133618527010157456865413717682212167913922957451554106667546858687695080531676328799010703863460993426848379190687855871372802562539723993654751665669934573849721323670043245762238964056148909504126052378035467710734929223648789865091970536042947011382405563465284669312079049894722947709796126529715523954287094243338069584422114425892957797462971811841924775989278386221852508837584322630158027857552353780210517322655652377376063666404135110136920453490957579099027525941474721773795678009977021545466918206874967730471004012600771848915736775936050702129107764532320381055349166338705987738371526296417383675518034070556745604332352335163252859226747195184678575042923033058302998453117779394915612696065461103263497239010787310079767776341582465004032769705112771335109706951048705727736648599376342567074517374244488161644268942492024766037786050557192098555761173995094949857414480377731964574094951570838450185806001997100387535342063851187195445166408751903265747970012511260411467409844438174515898968916801716527870091171142883426274129404742078156884550045561492657727263833285318315314416247810016394757813119952256352657510182269313788735488808055877774086127994728219442866970128101069485697362872199135323504755743449814981612703133484452325889304837921972818594544445350270415737362672464957463809003618475815268136732036286049740191431163153638530375891548175364243494698629180913268120063993768678075736613624771191344408666952828493225712097316795291573012371642827905813534473737546286994911650694501222877377775847026058957524547069704982897127409950682595769599852245824865414026724454455749687738539120730653370377462954328136633956612151518537816179381306242961567328821171665527880234361287868663164017880784311658836107154035217611666621230969956814824904562149968499106638696976502731432221364065601163297000894869462742605317928783220562457226958529440866746145344590824458784008511141302938781449203022261304938171408271538757968524432083016416522847414179282675434154290629868587092946678897673942883881032626721440424388344777440313315018868340064068176996327533309703475854331251656851418309153642906142594703816357764001900831361995101510821680308694926076793323200164471860301085323304157252153886481079853577911254457342704873274028311702148369757834284316787328272310996387076017456955052479265424222428528765934346238081260381279641314693289181556800075286110289558184316896249213431548466515915791370160805772459445595914536168995007893666547770216448352325185046320035134890972540785291258266129950697451141214341875672339316913462085102923751227331312697996618171034488537988401439921285364524666750867189137274094271708017519191980316416251754466722396500006209586530076217766031312633196014313861887630290813109603305096908901377499872552446685930045069173932592850471842152822914243877828373592703009094229637751391896965660572487286849428191980142004764099689505234506592981985686069379783368987719300799403956787084913958969978807211545704884858402358135019558364219083883953031422161369529857131083939361249083492470148599436875003727133137366852059956028424754690952091092319146838695035647647229839268063028383682094844309513129409715176889605420302613144022625473191670384261605556615301234301262527354839856636364115527967953912894917988644701421828807726149526938580684905213510433904206110813222820770251553607682326883712414968274455810209412409138366506805537503645856730380475278951696808537712702287775782488577314310389521942158826179920348565620846661802707611619636365093351109916967554141253810286964105056867722066034932939826087676656714746732287249307616688668463242511591037985016058124864548070489577021764038584819389929818576583591871681957019250207814192936674584642976739748068486850530725969561169840901380451401716206475000841909810264856038199363889745205283866972534507002796059760707379596794827279903185585649648116527579080830259117379767841656433594297111046834563017407094158170260292491745532876861267453461495094227480131453193386339905725826373655451147110262724344642461583514607356005752996635563121858925027114211958051138937641287105274815794953779937543086018515168059054832445433712145072313962300112532698088528103523601056567149794325897904209516204839939862686381716391536447254325172855278423967771318859535129524672816436791726766455445814396161627060675543545649421515898942084102139296049510943147926837457656214102932782025550110791539313357837536765258022077203264457089743841246000144028812200916780171225291913330209248966062141093180152036000084659216948511071329474098443734881008993176543353450645456184844773794811709166980043643420196135900632968400095523390830545534687929184578421931637774869859754586133536846542021456628700977398357402005535617686911724798147231299588157003879072084461184020203475652906263243440630657597054015905287567734626479098052584505683555099926201405309855981540782812736032841346056339577774884718725113769984935043348217149798148044664415708033396196505153357249957632644682312641267569662305510227617358207098488567865018714544988057978072499591006051510332147718760701905109756558900159544453137484144691423933396402306161435151622691387172289425054194957308504636380649811781371018770705715053381150984770332617422962444893166161071137308728147225810683908438164597249115862470277418303490092297319423670266906704336625662406675855633503356946441243361883503508253882972600183963211659237176894572379209888665468870408653551710736949384722911456979376696610407295332254350758190794180620153893584581032967223138154123262378233671125448647254804485797054821577929646939695750253932508101193997789886861765108992674775495605133209251767733914292516993701980299607559757747895079531266644480023464987747276284838880997104742092705713697243310861902389964530704192663831875576186854611643752832971641303847954775732347527038417936782490353348927942324421738069006930014429369924524767992068067047468344978145431205745543794041930260024757134251428356836212591606595750778764871448969365679278576710831490375298085703875985256737810217146788557351527510854305047267182326502083017418926632846242825543433003392428648043029398074694331336426357276473096671004013362803772839018843158398995410150424356122220809546879628459687348130966931914696097057562304122038478906404516687380470806486927012980693915133356973095227971670690476263442201824984069857924014082712854239894357262835130467626045604085591381430520363497264686708094990124842455864424103718703871270343386348939647630696907983699003791132320954338800976189193219200370472563559442103473617236058158086635509544385988997770597527424529566843561648246094289235455336157610133527630950208684715408973764749412325512571277233767333204781941013540013925625846501082677248745119385574375555345228015198781450631993001766384311277749933714261991318819208390392788574608197025421551970872920657370668235383004089628804756130501977560969631615563592009383292954225254523191897324147061123507370118705981680090111751299522057750450674775047421894046989413947047512443777595094480774574736160608790941649822602404724343646032546298888945230336892050174437841735774585662258144904573156479002517076345811853051452135043056250320219404367477798241558697125146804993828574034248519787513880328350696653061333028926608668717971553615286158033796339634297088014584007410334847285732595567128451372847056029921764998005225762772942979473240532207598316996923972199019404224220821473439695281519808122400654810012065849720353781819352599110152913630269350344399751683605620432016943267624714956644943473599848349519936917741256739677155472509439238921972772529138133982411116828309739587225604718323852112715918568318652212631386197191534004155028288713266262585931262021050052309741433385117661453907443041932411682400260240098200447368010456153229581756590336242121836884388259616742862845517529230778208972935564925614462738655694210233161596766849092761716660919118866395178047178182936618666031126092674845887583583524334778165687091509173111111690080475222806930759014018042327456730643258889508971189385090725934211672963494200218325875598907982277707942817280498738627733915697718398521822583706469658604772862185231743547503338514803297250723032195173538662097132981905372017049099285798885778173056177230503275179584880618722928774760227546112765379703396692072156959157064679462997265202998805534724933429166630141927501030024079604236998709218228355974813299834764764086852153696227217209879876056247370479248371161232426600853191852287136250158589780677884535706059071225097202464328549222154146837172660465187561240905488675132487997241726982667498943905971520894471928629868797827765664366732760604640566398917024261154250139261213361442991626681270551535029938369129027032369618550079991281024240576049325934127229315257987976671355553421459081918421679559559456870722341611727252281686636165201858891306903611407723030131706167209703530838113211515832043151173510705982084542294589017386324389739622397177129373176852543407068506207777357797375441360887216771635626800752050927709651100817787396118838797734484419678793848719756006022782646645495892976953444661251236311123763151773713087675870024042752392464350838689274793574323148216961012544120777882891353175725615323356817878624796919321088075650288047658090300696607083476174772918272250331372765594028260214975287100174841208921564409303054916300427870789490567445679075320863445836943410069705204128879159919781461856784177082977364716453673107746879316031731862920638435808500834857445185888213203031264080707094796152997976073472123475685504449513214849537264611767835866660399407666319118810770838306432102323841316510533492212305034456484600563612159643238341910443245935292917966619547863270032949516042746380470856218758148397209008950709335967500125416911407593603220713923191648730218706437565524623687993079641191925947182801303921504865171688793397248104391819140333070243905515625300989291392608740276623865300638470086102325161265166506210832114714573278388023709510431081650636951133448904939175200308715115562331012412426820867941556887823489932171598870840532880926495097393329331155199437453080285728654837521467054388078659789956625560405166528018380036760577277098731181549534896278322754127818831384935799881845644600889716972238060199456871239092378649298342616657633719667988388998722078743768877246036513632584791635973256442507402609839603092117045259945988085026906712496438464342372787128627129189109944140348065603048180259085738402694789456123071586442817189635627245297670875228301341433144894329565823432938551122574356391483816415387596812667940673145529643517161009829643518064061842057534004485780178491180838203173444537568343910977679312339251206223156191802534903506009200576890914280885314443443557086128538313387907101883612837630825215361851515408900893431687278718351972280726620046862005035541618138593000176197501472065889644230658684320407143351464135098910444158578343104478874058265457100364890710048849715214312886160433428330001427402361239326954799618447205775509290722332758532479053686447038581339933051971224278154224737737203288301098815971535024968532762503689560303663331691376153685756750627210967094845560732550721809565267073175206396630845056969404720921536275790503066229240332899945155943885243578898255848318839990445890704109875593892736340903822749150749798297454700446884181266873853121808948586845439533604357431997228227283253085924369195406108163286725779410599154212360174314542179214970394697756470856019473298349771578336916822932920741424845452910137735446199405082709643061805230811696026427707202180539095137959917164848385379776218770569445668861590469167853836861750597005044910167361879379482772455343296086057153703310851032000645582096067665395635952654689861296628632645128711968568900205966259503194536676502447080418550743809575201307739363711092422016850689362385919018447611717110383838787371304146539583953397460681016346255015867810153812867014846390156326187992098055928322716126444079343897589019975418236336585797195171555006612368529466645841931241464856959544992025646068318748878488174854148431884293341413436241558202044385921562990433421615596091101947345344011115401487622682582605203550057775112943927165173383816160322097065071830185375675024789800995442718449929648745791184168894653928726800062658081025556682458165723671002291439447450130623530709134097864386877511280478190558831197333594879256786183131618555236273141985508717564682177370544044969843711592198559478088928088774688255323545080342354099102858588209656376605797086320767957083700457755272554667391250225834468490968130261969098731532523953907318411233442354025066710879910072671822082508959361638417645091252513266134342481340821883921797935737127417675263060348114229899575451535564188780743447218986370663710773061921134818598821731639175764731765567563674790773865954889136210823266189597248148672860224161217863650126164132697431934871024950998940318552261164364307955826561722044974922301630603640544391268176474043376883540440092566613171618240627859244646860126154736587980080106275290834265479885334597410043975620571245568987289476750516912618209856383154821775685778582973712927202354275610224374573224310557635082712367933127961588824262372935874034434133169998467400017366923492436325390201475818729776431437589896674966516718032580842343423466504890833709762460095615598702560907643523457606060345709874524885384464505415961082370628922127992795315699695398715378007994042941243496127696099889782819919023634556657374092525529795187637439748657438085164022684831629651412705275643442612291018651558117521190891374817376571973902764578283995232627928217057833452397240353051861461519173581406541414475963736360419717500495582239351771690258063913899077157250756795372729962668747562698955198535405333402807705518864087675616092621006926438354348847726788129058829619365004750635123427991463237812146899502885343736861976875789816607994497311147157265072508698049834876116813611400280913448318669139439476383366742529267849423127601414926013475630458703899263466531671832036109134529776995813836949780069801900470069733965833489434686562580062183466905280665088192730600685170668522723932404604169990227881387826289203454734469048337984654184762440673567325918218313581542455632532262169687193224364804359313619515755159028261854300346074864967536979938646476230649194803655560985462713942887010355147105350055942086636169387388627354134891858683525167892608363426287049896954061137464227568083555857406323289657566166528982755901740848245650769633184725036425654033581850884563311996753694993768253088534585151391577955966918470990988172938847622651212362408775754150950580964520707606009399753524217888381656782465300798675372767864598123733943318914469594066019604879624990940898623212735059983012154915592033199037319142908349064768106838214201751978049102827076311817765756026834217328690017098210964289320068442404654640063711781758101774627728193451903964529921456127938157394412700574043257553914744063054885085457290936671034902712512467529231029827795131394734479938536615008798670605229637853270497535379219563513155055930674379414299063996856275296462909596159339985805767947480357747580443396877523893920546870414713763944986932402964994019251672755022845421397729716364937641471524302660569371474520970724498434468301727731684179914387594311390219076899440275125376464334409513075127033383522308015102748872231743920927706256403243627950567086059711931888006886707307410889010573474954922980311122924816489521447693679637140486270711435307084349020999994363040054562100316625919497739768954595964762261175427402350380292037829051284907253100442860052753127870725696770150038948552913912203702367953771426573155107093269354644976502443527933041903792107520868717870438594521714144655286949681251455161170745631409909424933465970115794210296312335389658975153255830335616053257657587431782014181155325764498355051042625919744592068332551117487420921053145717133338542956948295420840211803677889210054447246200594724857154286805768514991982356796245868338418572169347496274333563778675132315404990384214697244671031566267082103034732637467488727180238170641930762634665522287730944590484919080916320617904953619028073862160285176619774669561412472968645568956711090296215885640198113539921335185798492972382899573579038039429800534752994369401860494025692778030094582240152185638620476535280719645584478142929290418580617591319107864767932898079940831899475791619022401375672017388124183421510854393718473225049414966034829818102024422660418535794965368748623476826887628916162541790910191189681690624177087635816448885019817600236895900500606376444484115072166166197498073283657910071849429838845363180579765554352969844853684759745825569847830222264678568806977310670318943544973816701953649174628897757310214467909160457013266728472759180894018009183542782458651558294780889554442325076060710642452157182771976730024216428600955440722397251866761175066175643648971419254850911799481188969613382672102957445080532627775028119237115694441245217541603568425167883996971970435232964870258403920810118108711781428313056900887312309373352495470617206242380954603224946803966001317873972218752557179933671718625307498911298487775963421900144901709160331954261727080527282577892577589107102789010666567005504092128153514790631571705975032648734508598995348178558511987803321845848373805184639469749585166152667908970791439200817548611973568314338425209432333705827851854035453243578860760104423304209979995855641628956962438763600482724429041057637201089913260391924299146042102340584077354891945093596992139162462469168599977649082155372556084119899343616923015762247806458799421560612563969071018061970448677018620393738377718211635713344222404110930173561324491351773474489228388093925523950851249425735125007910145314649167867172219454271034705680687661774952525591797918582894520995308601206376087379264292161272279899725320627179669861470328059661886733655792822147650032328228102050994333149912553381192088607302103995035517895774223643606669865101408156143666696839063904288893777219346006469301750391733097738896326974263062822141572073638021559270288090765130514999359659966786137153502586056988669052539334859677925870337792814185913020385263030442322250868741729378614723877157201693465924005635559438463573405792798546199355293027730607802744045510869501404569168703448221561373797927244279809963804661387659483352130791990052249979501018567124688437287900800945485565751256330137607473385524758013585871552964767277930202413094449004051813091455494844193038648052042787020539019287937948126458333483432421356929119977480847306492558933173781581482076706052355678124497699468655509586116663556537379234105912592989859869341182522927400049039143247879489228864444758046038636317700211736590200202302054123731401201797435803341603584119421574899818245969361853041488557773294861968587888830714339050919899058223355530865865296393032967067287203313567380035915037467970863049270907080102823348941764780461307533531098850504367982488474561714473470366350577746962459494194661890078784844322732293592811859013268833788533799695135644019657253203829901078617842787293042160875052415535587773442238034402439194619779078070485926481659471593796698896008819484645747457405950440111208984820650984474238157912657969850616580500497482199814409695446474162227189482634069548362178831546194453678509158374213958923807351903972191264395900691976917004028641949931523142860167510951426652655179736574431370627102827400940334613994366354037944004276116112948553288559435834214548800691160585672879797659599959195140304840886308952230961531887925714563095858070705253644728541236411407569576217431673169698367224554276563271783559744745778724295603715254856309434183478009423539000446634885798316791824473763405393918977497916079118013108102386919082829852295784578776288161193131438699176271646991803418791572219071589386266854560264201419875508602169600560424544114631877282042235016913911930017902851542643287664917235154528439865857931645380430759012049367443687631281302881763832126486488993697760797914635698509186968863606076226942474358604219645286314780941727021017403232631800430190179200737925761981040671440135652439451702831387088305442696937220353600443883525351311123741680085220488750572530907173430036537861507376427631539511411232623852678436454063590262552519415159841284305591683905431171550916325873467716570718959984485310336728329223031008056023096993886642990092186988466630043740902272809872799778396500258628054783511924085028198745343708643639718200030954368067354298467613756982959341685170823529493477818230760667137348248313868289471078145884123849612152749718904007691390482620551023797857634571604655210280188380840635707961131471636676998468600351266426572012154160701525792033693725455732645771422689944465261113936567082224801940507701163870002609613881304451015669384207122285411920369586196064931941666097449355023825110704656145148747470140232278864269750372936300120412932589424571125514272343779064474260523579196430251909748319832704032247262516476618033187429494450376593285974090505654281575733062838621139557368024655323988788586099529174113240678583978670690432442094746712686093024365559523163008195026770919871809712895072781459080414348013937624884428454309751035359420999605520375661123982278628194689645606669744535117519407006649028603619323513469250004056965941032134700708048016133779747130687043071732008883129494019310157672807280678148477662525823162622636689087716378461656826014351984174640869910388625910137407785282513416087788934647460506732469898929017056374437809600697839741846046482927875618542664033102164634804230145439287791343219237545277418291917108131949373958404240427629878652042047343044131719172904627134872268758579345427930858644241054225596787514532730573296013105411899513563079940210367986078924386262154784455217943350745564670517485497603840332601614089077870744462819579762224380045327369373038387795482782947362216389050343226524361374579105029763691829652904040556781650621023517422444268140667322978762546753849485850694327089816404663220832829001883201623094149284558176599762135188018175657606765907395722551600157689023456815442167929459954034344958587120394517854631137956183231812087655630272311790227002076667299082100850992088126019307759860410635198983214889768285322464765215620410542447294642413944946196965237013736102083563964923089599590757919684456081433170821434403754717407231074912378314894514225444362620665655713205527618532820518550634312241097412892127366390774031366120839951596590237047805957190984148647791697175756450879391274760613879737458576323410851821923054904239668031004378864867276202442213456349672387775657694759207316885128178408924309882089673753673233504385806453032531441683653588972321034579697415714390854734828129096968504394879448260508487996059012900857217799134912880222134271174283324249895815945225386452667114573188331960087391572784790848598109753013135614756563956749085183586123468429691505241335519326109416895425903173429779845134553542692058490730281396042616526897437170891441037461967991984769314172633519564955174020027215399545979499222227583976937136186614001353955118313345937272639664799852112659199693954430633979465425464198660441049881581979456749340869303778554282685466653637795088894455200186806390983367202395198468083299290768431002411752442817460406218118271759735798474010297591206148690777544543729242411640824660711504424262772077234781641577058074800585259956098642828333782376384075124079844586853468104322719119651532264071386590209084353206775695953970537712689293506115110122215677798370986787358407624348021378401202266446421296460374511246254063830980725486227571516061050973207546612956098773850613126939000752006670574081159911887673372265405701844762587815778929941690169690096790708230808923106115437889997074294557242096663553785203131634244038288494304054351360571333026316554025769885720082810097172849337882380106423247926374691550774826388551924099636988660893720948217650503656758999944564081876197604876734750962174214541880895117188375293225148201498932055156121156453769146528626347275599584548713666467473850588352187323557612279249035793164601141529846454028701828501834451429688002658760188514750427903479004846367651705136835905189513570696282276586035111799572708255799563570678717947078610666520105693082682646734061800697208862809427594606185997066354741852609414751688078354446099760328393994347034097575712118408680979590023028942863297414911240413890555581948224138955669606946422524135180171606002957525082119157825399527141425412475969379078595524869733364986852918030837359360517980351934209091788979767662967513605295060606594764233418549218129670768732572974084453343587965739204356690015209045478536822072323517306322053182376695437312738507195764320545728286567693183157658595098045207362349416281538895590948588448114745249637068664692874119366951000180781623131712577414830465024048412620470399021500451765717582278561938265405676416572715010062634541210800830217196109112811339696222595628256008763242954985634973172513619321955815985261500797024313731625703448904091074063450754016150357510752497662892600786836446878428413877750760044895176280313234184686737002571780384827973479849926817300717312784022932561655208225643042191565758758773324767713598765339953187642617279445875650738330406454453381894470550301400195674775405476684036568887206574398585143801330737640121192570296697283369079743235730037194132902735113237093160267698814805520881501976566537405825840184723388281853037310749690391239175621715982357805494361268250923352727051838374184000659313568801288122617191080297227647762309550982756513769963890486587523131706964877714172396510130149825389429654564025006716311140979459993509964541408441070933537394620900201920505886625224393121141826648243408333593941784217822884473825044944737248098326224448453945651573555549180231709302196136096476776652357980585978897593116748920033552148853475533000607711728482482340596867781095947186791805718033100398571790835644072042893993678097480812005716038787378286134654705716527435045213799087474106938917115355178952355492633947822668994608349898725958951958425051360837219880439061196058886608157663416946551323892106213606856424842835974949794175812553500659945399935987766466652346438176074578337477627249609955809391889760660765609104366166494513781847293419389806522461415195318143297192991534744823683154162924155803118236945422651576156298115207690041732650993491576185442037058187762207937129732886630436348761580536060430962490332319988293624770798572641588839975688960797305677521858419813903483129117421802112262438445501206288452465981337998005016474634864112420233005847596174364532652733200890563210271169942115077055885451279148888831476180051534039857973961230174749825858661873939286873392355434728754268784330066158586908946765060294420607367969022934834611097278385615926041659622552409059782665477586916419686874244064335288933948536280267909932164391203666398176228050275646825083475781660251090874824104944597816249945807700522679779331803554132482668014496889701775420056864336397499012449439015936177923417118507853213118363659269510476688946653971696646047805632940427582135477430784405507101325724300853770780116422284907221856488173370813148996886085447863642738528135161813542394781658430842331030645610881679995907467925741786912909305185074734426571107874683130891659508297274241799572579898687096544846384410976251608468017738829077305688715824199882071855442774475258500387042447620493578298990403752994694497496862445054228090526089245105463508843977637145947647963886458298647989645761650588880123374307281430695706419816995934714242428549899330871684344765061965833903453900137049533930348029052144235759035779822460170984164926779316013443155322312673808257011294620766673537519307458406593547386489989462233845251876539402017448776878199828288178492826923739691998111558784857450202368973167743171052824986918036378708505993559871028786074234724232320930925919574082806987335343340075970041570891745430787869423948075649030420203571810264738029180836217510001282289516345467202751755911451579954375448888430878522278285296290186050710535210748591790469485808272241938825205480327245415690121936850656664427744934510782245097091298174240463854352428771618323303579528238859019723801994817253166506433772739594031358762500831857635428680723170886260283514536805039989119459074583994012118734271826200427066688991721486944761902158952029530061108172155151659385689612643622415305172840841838097032102627065304933249648235128397897720776320906485387174776138039401442974572070823705811917584381840048009485738908863531194341807031029374621983591060136605737373122063970205948203807201666725559181520632435324718152566457681242004183242393342002468461661048095372256219062454336985243138362653411170836421387308324752637974323908423232759560977565826845928663057202609108391156152587455808920045627266437114986243585485607212234251612199437616204017223361136275152311957190823734223694288029345452772461119069648035444493924854644438008276394287525678313884258562123005428836462625396021624484542720685204392675387133228996789018880686071479436856039238189998572847838596779831743939627436648016377605158569485046239573481192921691855615868094114558299542127513699394208262209926904063566832502821949408169194713588091876483921115151043993598584591160657520389498215511152186244439730380972627954980641963919873736019624565404084946947484617890370062970500658874128633422190964894732194208215808004270706740984042167285413426058172644090032893216004060587090287124778977825619255364345161416395248996592296268798324288980709239085023054336433411888855807164830368118425485733534364040705832077741507789011575725327913671270907052861039357381082472858403193344775134546788638027556045241494740255371966617737371444868823216583368147675135621386558231772388037436886121335816360950638390610128343779718027305822414458642637800682503824986823164885513008413177696333511559366760034545338691050400099425179621746749206415773550817793897588930868947733528266370836955751797216534443574251068372204329234415101755014152924037284795106074869598767663086003950459699979850617671774316669696050013378924831984453261863647169548487813625837240544089371213154933891878255280800641351176313976463652093435447809133604562402351415594417205769795282577481537535722420635357703353574010665543646165908491225780986415921665578142335361354683709449704378862935505522416110055231521342920448136694260792312381305461403295541614128503649132194113775412150144035721058285473886166460444311635977608374382816827847847733302492978385438903966375781938639270224213493538072230237886103510286413968864822093408099611151574614530847130418261450768600857677615419936264424336625197684243697269302223622590752127382971887164758650584585798119804237499838917727910702651919433004716725658172606915154315104108476158253986234061138463355830317357922646981513095514355545694868977635416127880544795882204435769781457043944686162954303912451031966115052003944505619400235451850552528913391436132297543211221381317752766159610878111368970151750859077985262233966692786099241837540734892103387615836411903253000827591445141416701071512133636014477188355583512363662913868690344158985839690618848125556491048707275999958685991785335666569776010307278283223231104759455772242381273493006661413392270135509669878190335062795788947927040414131428345143910273831804740217555623687164849892442508853880163050289228620186203422832607385130062556112320463825186846677210750356483590511508269538458860144945609116316683504682213601622569990682784931210326651298585086928675964710039492939945563120177129303870177446777867014346627605442061797327779296613154413056687511390002471754353320807041446309509016802701137966981038945119365388236221511702316002448909856268822564638715600971872373639044986882234349069610277639842595500393098727365932684025644798768057848609818828616425803158897038794486832178522770058482317497086132855220858061475196822894202087019263501292925857274089644887495812828807980005394996618599639732578910945809750625858761103200914782673648417522268033947346812643196001151867375510099783299529379772954159185460452095112892066904024079465904068498373604006895047925345491689378624532333040113946176022344743033056922448911762158598957571873607682459385544300846409171426215491096867244545315804225945173537024008105166627408657866828208638292688580428077603408468040155757509599581159026443371997431690188951397980524788577206883429421677989154407133375072415354239166208430796703422908601094664121860882750029209668374534314813225893308376202532463527792410743726238384733601693960554462878783558129098116693271733409089296699833555326000854373143692769649208897361679249719338073349824540441430685662688313707689390469653790442609690348041627260964078481204353664497238839207144873450277516715215660986530762688437641774490525610436353614962776033985547481639835875947793727088265087402115191264918359264382835600591262908932458677047879198418386734087901546863875033609811055706297890370088077569066821030797903187406692427527808732294521154658136118322859273580444916428712139681030668858062989622616259116047533705186666836268830823632341782808852671249825581061949901993559511782232415468287709110851455914564361359250651096250399464905731344249484322075750528301535739524739515295860284293239771064786868932590012240206089288530026529600775614515119487098019828076176458148603940343522410775522521631893987046217327017252776380295862132602738159621398796288788919325338787637901741974074150752060280304609650254083933143649040373049314136929048258172777393398699377269654631462680645603679209026050864141855501295311630456762899418234605242994543841878534766552536052250768692358239939077334012852925792475700706406131863361102296950465986941552626985129424027037135467973377454969757609509992839241247433035296731128730284166410864195209745639444357874657741856680658288180024830915926621244439774335274406965994478440552709438327378347243187039558097439723038018955230624951084074352754392800498805164818001298370049207633127786183427858557703478894715060560931666541123924608293670660489527861668429371734107027606819763730884719977562056084641538336723567924404404709489560859876343464826669975292573569675121501040249145993595198300985311127135472584935767176295324279685646568575765785352885973130332778961667049999009969764483817760748411467578748673629041324116849968508089818191767356447644611198172469292621831052689382118328532725514515367776017652518174471253599986533527602647504587691757240276794996243486579653622773479907043753730412551096670517323647559199619934925824274438915629473704766687060494072029589882899094218923334385096587899704261002898375773449140478668233664151545480950212048579488137331069258689198311624708442257440858952195840382141412645954744282866013950719462915451685124545396293228620074682169075529527716183476641101964394442795246916040729715721530312764014026003297004965841559906319413521066003701258846090621155194362964756933443529595732512742861857896428411364205551953168838305980102070716077733279173929470757953885827420763625006245749968245287818689949782239768550628613432680512082227181302710212999701693934833027087334978824747506401539802343081054518795755724733121007532664044555312480465845607767610712638698314935057663493514102360579684278750124971134679277367266601213042728869408188358263677253493920392470597166506541560224266553218918595177251586653222933160580533473997280392220873630021567684640636121566573786430356881386156834454694022153492284481036833593754005144110326868716461299464823392946198120992473886727965483761070891705194657736495793755335443369130542230432990087054874216154609215888387708157299687021166028680080345032408607916362888657274387292409546497575810951031823156176725514933911701321928572589818419915914250440263971449691788359678077241685268537021433299456219184462590663309681194690082211459083659670452522495612253184735377047830431216408709819999646326527640469813074505481217581046300472934587882543396091070964895510845932568363363369334756600230204987298186380701101717877983599878348638586468558027863312102370004568446680681397691123818403977640068393440462679714078313741408028715791691629097428324188040630103741609341403967255448828975722176875119826689501646710255392741011424684938834557299663110326543501781919765833827573751500953001694769776010071527849688751805068179492433530780062589041602696882696776035527930582611851732805627716064162148374839883756954207214192035819062609971372083492261208726989117365022825606764051455894699185064631778899704010451981447816796902867240236643792995665243254719914375497416833583016866181305599890763277717683614940334603422098042925640428374015451876812262432819465477291540781992525342821211631556228643840837594166482869087550834662148918404271229054687068308000354183251618017207129096425711058621040280824557728174292761783652701762500607383415980521071373619150510802176850655766148368196533919988649447497233383009660231264387348900145972252880765758512743285933469166792001281937904724918944998138482480379369281060190343102095758650049757751329313344987323187436462694297211485622636911075618902465572610882226929305667970243517683443107347967043371828025987483901896219263094688760801120089827093751618970615591080320101431515983186045915080976336219115981790799011170862273291185152349928107510138604792037179784837559178433049583597405453891594778935753248168523660443759679841178782335252909886029397166697632704783625015679377777778116987343372856080376434463673812073161364121720257568705073125395122590403400431839133673372481615232645685195369874379559478427046407926211301902091793049518789896402862971589734060267836392735328295159005771369180208625857260471510109999249966702990217209841886614122114775448800450630450466023157949366346603909213662519431086662683477220670299156968138291517826341447442121330118413932219937128868509197602432373024236029004630710963653048509069056149129185221294681947472790369456598849840076084950926235973162314650032143122449899164384090867540640310482004999515302050526098593053493158069717854197524743808331025163223497331062313632543045992265889053207817751926883440866583739390521199824358533124034572315212725615529739158039200119519386644491958936915861736521486256652370615447089529712597925869208420866895739260057740375897969381440636003491851091049238187996647587091101529973510774872627427408555028806320682605434550143226351996303987278548877385457331377072676063853424796060457654407242928525430011910124848380225128918388166637857898149328817591427223405445584375676898291910393963712897706291056490420003794797259321280705468549203561098872120821831855748935926939088128256117116503132033913195708984771903292989230848029270537446897602361426059762410045383997834156341291198201240455940557043690677123441921399626444115750744614788722666211786867323905318357644242172585465711590635790615873837076327300901127992728038401726565621862856371555699009847325440272523043110115258480400199595521986239209182865067238796292031712513450934807151521539482600926686293969015950407916249149510326772032411712105071303814751865260239673673077505083209510700423859832943635657810258409029421319441722555011795727966425998025071925304581353731616355442310633431788170098102514235593500964174746672715433271777301245415941248425331802646403207143549036291609435230452788657157073678509870265428005232240235664598969989011203384165005791216317660500556046741351636398541836783354831957810009948506630481957065185380528785455593974675421614994037014757235807445757699508845687840539957323646895655785846271963097467795178830621477049832740885306663710456454415245004514053143329531731393724430976068668108673605327519780999734106450737588865836298993457172785508635072950264029767366340236820431877825561557338951507556454823898293706920121212577443930232704026590525412814297758841709747161647857665001780863118182235312651674530187975996359873717124825582328520045058173357251487723808848123138335693234370676483654623654596091153219494505355837704703744670148600266912380154822025986859940374299011410531985928575935019322786323229656082239038237079805664367379626358051509630236516957517848526355199999184257511221799453954404492342032363964435604679453207899583793571497494947177118685685318081383593668057672486599026548154537733320666153208050608415184965750641895722599935220039889072705821997847605615290792415834626925567204292813039568474680139833634124630220908989831989837160385567936523081521610053110125118622289370235800281970312365665116365591944982077520795031188485926024575305228592869963838569457181046025266490787447913084864762208950505137980317354859586609216907838921833892427028026926380282222503001105633882430808510043677551100931507241551410041375349578343725376648495136655014891911729274882335310700803276279509416198550384159070660891887150358445666877674198213571128585836134644063385951065757847661430123384823996333308230492252952038191443160463798515594440624982377638152532651530142349169924616564634159294382433282328922570721303353606130014188389384903930699457263975756702655259045354239837633167957842676866107164180785475405108987852902592821586969606979702382244451944247486752014710321343820621632767147306395974399674468692017315821890467362373513184739585921289724093377917815079164980009986641759757640431378770874514009978319495301403289797972551033569270428976846397053869887635095394295741082549274886865092677042087582543720804043599028535010599725161439271919758509924364167598042613543537934352913052462088556153138995615151823281266154146114135985121024858697217280275770279057730603317488099614838180967519358070072838764968992685050573496251432554317086578366207201854611661461586404967052648371612794675446788165190388874786843995312482192626925233500809473367311820577029901302844923254384937057533342846096314380331795314296000014317475407582349898236720920466727470256963098393254457713444283489334632163280128512246755693792124297555496796311164516028685307390644273539515666194510898205529418150872435607692362088813471073190535270917628460136806334754819859367520939120629906321517718715213531324314007170810551734782066129849043386281348714694856496657917746799349226720165334095846760604163772144700656060319734166473554587202051974755696905365353441349553688245060189946274855160555238648492791467827998985195363465792083938311604727388452112337513599587961438101776849222902045068440398829842330097598305386564493672878104757734380770011469849694923518098513879389321627497684804587098786008198066376600286104932848444207505112019918109419939820640668779218026419402484964708936931390623773731508752593308574758903173085185017191011508554785016433941152095486940412822955337845493138469930525422582521485166142155720182140209753111136566196557216585815001515244974766875451260516759758723875449742676136022764314351706442330490485714698429500704610161059851507825087109214822987762231238258234908582580623257740292846486040346112219774858805393018163636010398683826889012610563014619596717191679691415536873223933407225140398155134783969640364202050700163109009397514195764809992418157086714083003090179863917003445246660704453991685968818169901847199135492576799159574992159896294145120967948626670337083317405458084641453115220731616358981878911800828013581296783251680043916504409721335747160502544280822503602352395011152257806713154850413851071626948553073161598068346428734804946527080963228709367511727300707081570782739213042360801127598245926147415163767616671488404933489867460405111521321492986045501302388024530020029159472339202257887819046272529802077578533076021188631032350974133803195554614371656052374524608535709090548154193323658034971178337575285246447960293907739016061784587197419094573753691685928055239783452896669247934096747800406281694132551217127925002563617859624838368998049993684808043008610477127816262735264953576695493921010264991973089671156522652501442019775887075255511063903938218560333857119603701306360323197068767949421271845603394379120279508621083734347999061676164698358577917073752165850920263273777989819593763854438541399941152243247173885015860675231725874481539135095579680944532937597514796844777347694819729488468659379533732912601068427683165640589352594997837124103190386610158954899598294050445318298514146583652590815439013172096818388819289104905063292111048536734135602222665402656637386178318280858219101995081638179140571873316274814807944658417171747094254785236254906772393261828355476540914451298769172412491067078108283654284573711706159717062618023367121261507934940256577396918794831084525331932564841813796015257116818145815368491608829653779633684192071865585274431680890368108487019951367618492263601149436085758763398529706890078900379351571658648140048408606463875992653125686566839876834681784004471904006756485417493061839748784298629268985397408027986864647173037544082210375711333451572444263404237626447300125819896743363276404636911963615253780883154901989368622832851740573505169584677536749015816626141523364753204141831572283929946713971102612577420182672977370094073774291997857701629951936409819339923714467299194089531158835598317808977771266952445767273493959255033580021388004181874312917528921286810435001371548330029288020595866310583358993820722981661217339166155391571298543252313843949674739489303418668519797284081754903341834172714221039322001370112713313267633844480161440993711312170788381614214878133428491098872721667694864289865083507178572857065713315325656897924953318811459121573236559844376491428294304945455186688831857087293350043592224292778380938043620630254129810084769949220442394145192859002470865180133093506590507631436570613291222467689793388982546092329195502939116126638056637228697809191273713332511161035104527835711353452227985426327623101459473524514707473680048848912702073407449660937939772274043562899891968642171293997377463366160483869890783023003541647773792934539642753700603546226704850068012915954042771287387077669521054542424061953889299764153015628212526336094807814320268949110035358895297265905061252574819677293412242131430189094321419432197434334669694747949408166318914642241005867218637474511794946485054196794865127130372058159861006937310680638574086384003781146530695721097285531761888339761247666129365547240173266790964336924363434627953359447399878000301418726933201006724081103154734517035030720134441393825634355302286938505732533369852931054630509164621017784575783643320789301927417080336446356307946906422755978668773841214142815467067267162848746041969746716290161129374024688322064086809075916833506808168855450779158254787182861020157762307691797853592028693792570378124755460771835164031219602271839637919822855389963751400691301598577148022449071993740029836508163762821800182986285855209888591773525425597798973034581789362934919391465993106373751870441159132631500035697804382419210817071647841395653179617393516924133499147060063611539451543735842751794263545611125403977626888828907573540378752826893369055925259632444078868825925678140377589720092649857676653189854339342074276458030087559663259420809095040700153482675870660724905348189405064070037741229245356304811402693026529768345365679320077539760666629819499424617441668813984660190917335894680596207809172603739005673913967186113924487754550688043342817725717919595225624737946261340993969658746262565972038489625116098531439834591415207854943430862477545221382111889554748294530207941425533542020733587930308392111012447119945441716929665549589571808515572925030589376289436528895492631298670677290379960243892215209087488027976827356769328073925318004601416614681154263382343292296482697305832114739039042882997580088639202877792378596263435296552556022478540461280635044271792459887526070336081387176241447363021557579950933179038927263877148378126329490210667837454511309925412688408258009913507435776622592826691347954119470112413438796747377816115361343117048036633553760596296426771446086294280780328151743517906082381012863849451120686158182911477991844619552884992774119588266638333595401027393570959243069846574232131437577096310004633778742864607993660872620427889148513819800064957755375876261986907669840807335780651803625196882514877361917986640315064592119461570703128978735808938378828367163440866805635547520632609863965914182909512506972738028708718284879495308171318819499567970649170331727798473522634743596804952677608055890183360333032004978565361314328406181218397022610355500998984047428633320557980134083286426593696246565659697704596811599582143254672073247835830565390906406184218040528888114512830236273750928059159911858820780566767434987454703012029100099825216636621086609406260200576637889769752346216351571897518677296317302521675991792098489946267034343810652642505234662560986685711457101984954202706710629209073335303577908288806425991662883380676353522712214237216789682633728635284124892100336215116589372657712908791531212106423201206831560562767021382858834049945827723238254030829801700337010256756064179850901507241164366873966836178248150453436182199521109691471687514618902074772693597563093847127545402509070993608890724116131960168886520326332384724560493743018098525083095579075110818716729232748932408098835623451759162726315523623598061287752300469754950081934634472867365781185916584912893827322562649216761453406976828275310643299629557890881198951994073041494242520647594424496852329330113099391108288053347009451520349949916941749379387227734816478074893313493711421523814478582551883069858450278138616457214656124266674197730875403833687852320874019889010247036785175157028012412673798630571787538063619451778258300578815255724207996057851499531400703574483444581399778770971510624795879579078781999066637844136589506672225260358584099836195496624418717948078021040537496930446595736250692535239583759296289483308420642659280888153800976580118394753086813878603191773806559568166974850422352588728835082913277535193462253093170093032070339599141670028317373087295046377222647581937832838565925843690384590719591898082140210532286964069758008121088616528428415240272175512549459850591010663280300264379446840850882049401521014805627613774637552784266767905221761259503308773772637987581096842663793486359624193595200282076897469214675661123552637240904554473895937368301933301852450950075587057277429294454453820657528874779620580652920108284564690526767768183510805714593560793137409545569071379781121050886462708654284997677957172909576627056017624966878232215895316132869139286500237690969169861942072506173365796223532584999797703584157458684798303759584265916262048049619477186669356846668046036290219675783381122083843441217619482565670413689854169861507023975322792397169757277433150423661691700898276554309152469145085719645515212539234694940706973837664185856162854142827872660153505012091163008559577032296373528972600732660841298010345415644518571295860839951936777992525009509417327945588245660283844631230532641507221141601301183739406826382419639352381531123346344154511536992466580923333908800864239600853581807754675421421005213533629698210247526119301146258311468963417751000387621196718912325153915055523815771467407956350814080745753844421947098408914811567661428055370810643099529451489617055310982903858508161058596404142188453206485235514559848546255899665354846378122313402137498203648140040501884486687619216571781898206629997294924315668434314813328212298817432800809897534551609992079691839634674674705217414119751844180135299235891431830710826381630169892705699572403616076146730416607887086644131562055895429899614282363433195024582720215000372962901705562634999874108311155285861755519823701527129876902252190288418546856377936576346911646245942916664493782288923410286845551157922925167445897173728957462104017236899649592099937171436269958015344762343580310575218760099916665569730766424752830655725590008926121329890385983117691605882856474187152196679115626878544097676543698469451246102579836150686430448237337657588256961768899869006988931409306816952680416560301704232408987431319736700644581711003100608700702380864716055586822930003336146866023331583167538255352283396688932871539702055088568456035669587551305351343183272110643920232769156824214423204204281823120544031770116785122822209901246245965547866508975929452601490081811085510914463992662877652310884161734505789450450094877063174223930554743914762148729445485170076382931972997359167093556931253153345345922208126838533667040074057444586533865501542197439994269293823448474795659876123542248927559938141841139297287423447172797379313761273916681037708663693934473919073790176136246032216267026971411496486367225487799892849754971882482283159866784680663483595489963146241032926527618785875481054199957929117789083695204501104703234555848494160026140961296576661728650322036702113958732493331609106111827840476345492025698624939338515531235718290175443313360784790891962434302249093041707072626377363025217852761805172597479846893360626808494485735688725960569089410252717793606993342265123540439953939012523321544935127857182270901795534421261140578840514918550431307362574215480150607478585766789781916540934576835334229397185995911174139509101938813689116301268465486317757469762842188804978309063059777080659585065524353572213246009426674440266497779022242314737997601158491001477848023673760656303765135539594056396454906138505636116412566885719722541111955297273983624969838758378272956659530700863827928014407097671290751122565139446452700373088863023270899933819601413333413601138612931773085297178153757057359490957753148994090251972912845008997389427755020053128910824022413803832710503737473905324983021592881822838069987046982286184471988356950926355973332246128511450982079951793889224717974126167639483205807144653085500048148224044610311250697289538027854100282970238941607208242228265284450324661853270349356676321162101575337618150618919488531215887974429369204366549134542729592565285589717772968919123062870251141873399842300010515508917714774949094743515955162894297342726178885410612390543376920134570195595431750942816509726500483050055055458244871291716082762979226078781149210134814103218804296513791670542493649482771740352136014946294751800857361653572540476261571703801644432534955208054426406434676400625929115585687697742231085078732683695090560733883052385145902115399803775828409996246601584161685136654680585903139866273625296543551401294058937990500983573689180043167966788539762783254703453417342809559346020422558501724510147873801716916157026351710060774201191136063109319915599890337890827385092967550994606827927903582455703797070209951608476086944118399478446783894096119576906072691840108736571027463179420243945467062200649919502735229279108668656258138630954151015116029903504532604696693741202289379491925410928787329392450355655892301381417780615815961871795150112977812932945734106273482349094257958878838491006336182499015504013236388072531967983365849940705421531197488811465531679055313204595878985395703182100953998772624089311394842990389383226055448971034751116263619467478655899972092862117350161140645006818619990472975586605328498073343506685665670894725892239060875332458465168906624349621060934848399959032792819657112571157583986604961909812520683011486960570608475350645467091395351014246651418107775395393478130375688938773247302540405530623972518898682999526581264715205371445736624542521094962213413620804197327947777746705854641750469154990401083068609830305937691679056208508743409677980007460314277874451640111804872924653037988796449633491149011781632138395155030169417452553957031522731817528346231019234237143692499583340352359748901096112872325476328021925518595009999702811412175845263885581345833486750209467175418587363709452721586308797720073336215385454083715550941009923721272776301132103264008115357014734514514040657554463061293647640943527442077143148898101722160795256198550300087478808716671869023759113149573953138339567588741218814597473942860770808081850281581199411622454261107417935042272855058932592109102312177051090587760470266804589719155614284760953845084094757712375905287623605301105547016149087643877846722186170323315495779460185283603053298726086023394346227742105178903348847279659557641105244044814211869970650043635920721199066861975647220922298745346185979798616376227881495887873201758012507116785998435906313879857717791787845080079443604459462690808082519789220770355204408236408184854549884069835186133686161013669721117873106490975309841858221601372170497989366191762139243732507783878751825663827808245091692013481739615135383807011446445834382666085063319120987565725813301550822442018302876918006824873605124534214854308509563256263902192855551833960231930905536102324721740196427611761446532298663114318453810312058245114253813756823096001663488812510612543059390709055975720029750579786351458882044532047426606081817068883551351705909105428525033319907093448196563151847511704530290357275490686665252519254142873098872047073755230802202568470452198975334111152803116588734612154210423548978706895140080917244867161152460017484227426879228992853672871553090230520607405826955192208328190159694700283652357022197952576093313307144343024259789810147094837501166282947949530495950093139297150273275884680713519631065321636409412781185969313173112944946241145563971005346552669412106960102081874214934288867096814354716888393254949005162122066394351448230231069530421858581500076934307451904131600198462133955423669962808528839693284957964471993983279679760965334909255142787931729711834027040782061500291214273084857002350113639633672747390054357133523538137162929438485559421998146742685951311170569471015125168353062634354181199450105758662905247596928967424148373423341787871007989959977017424815355745013690692803367483479201014132489936620367559046942885263105482544961481702491155731107388703522004883840112775382286359666511066583803858976054341038633787858898907486680756172216966532304098735989071679272168177651306701444608577041039923340125734195294120061174354300941615631717191833593303222781052325015254938779052219312534385219440509793547638738523709554197654640596043304346994542892422123252984695722639890403088113174661552877826987603823429813250659056586339873487193067356813448890153454102605372928737813518501019604592110891810409968798900078756979709041128390181292706886036948524388998170953369091774591420310291266783796169667139122579763189601108299050333370864002516774341685865656343289719704377546991079424761102877616348594448156673508692755650006725191183878402245563211107667785196133677572282499659521173177977012998011756197528854022864267322720252700497293469514002108438239443920311404764389694456094415785176219657386877515973233729075206653487529104258860384012732737755785200578339086636213263444084637764596552448005424184107760118827747515977364095087888876646465798441417611636261692979845396085295807968141466725820174966942376860347780214416363797024271558824267155294358969104521956407779851814501590573395345143827303165645009059358095164999739980649708598832211485016644365958227826098480422187279477860973454025109306442091123856481640843969070583626522557855952686905102952859411852376324123748338681015622745912170200868110627032337714877243795621033630740355873961840182904810691712286668197246253138392570737714806291271056096937875629366833431646469226726358200197726756771790234383195340716245904352514567746055423558678997636334797862252572589912930714108525962244252119253160061560477020792988725326700426837112790002863656340679691648457964537903278390151848309366567735326004694050975674338791263300470159685741811568139797304637909163326302770500574624798936359392996594998208338919073124861346843790224555978170074843649015269201343932624665189869329457244890397949794972551212221862207935939929646305832152620866230305765718430121257960886214811933185201671154491725026197872641377455584676978027800317710501070020980518226689921432671397300571189392123906395324214507305354063240716702651955404039753856172092833405907238154362922754164309113629871359752061413707532465165230317312229497849162865115905206650189009688625856163137228638528585705804213863161586990796003689393442992799531647762231423802833050546672802676176554022141974622361722676948924167023942438540500812254712954507009001532048384730950166960506493046502327636692155009825178704184664436232759630816676981703356284394712967481812241376814275666284619401557485835893150560506786938591047989003093604233926870531455667861055201231877423391749642434019743677823255168227250117072140629347783379506740510733086972227893520116861324120423385522720348169050974102125696671535670959157915012145923413488384177979865955268842949319484372492022383625738967603275852546062239791927509032001529294981017548527736009287338848905668106087161962102615750404552266784101591709439676413395198679256625363370504682202610277357020807801574255971678330866364078244456804218828462473375228823619743187657233158120294014281507126383971115228882403223373697532509082904783637344809439870498828061817671541559905278547973151822704350243439349620138563207664644822418177120168298055506828203986254645459698074642356059622651564094174063548476747275925891519300072546256690683101856975054433217940505553708704236657001161569340321015514858230421770391650386768436834634233197656334292381529957756858162720540056037401944063319653966441779243493674814673876953879675799079809829454243775957167936064200729191470973900771799364250196380405198592267263742460790875513655399458585892786623812640215873114980535404328665731877396634779866550088233969999417960980270812199217354563952555277084136502643870319671674305245174963584841268505694834879641832801210237901253756651067097312679754136705284034287912660250710854434361951753822348703435451966270162647257705027539947371519163878367458939113915890875301297482043222842594553515583174440052536300390801828545513743522150155594871036923167125161496470321583311220146000418690379685173550648388571270627170337821995156299672108320934353212546985828322617650885725756929053477163104425974779123273123754260227418997111869799279803513435936335895250651458424486552251177613165405320677599358590940356540830935693376898240671803986010434003938024553078536587227808748148707016445914109632678031785109375552550282251672805406626196359127993416986223918496168897561252912137986224916466269146313789593282031569231567265015450704938281119905708890194558741475938550801209370298371018995608626694301410332615513520851555149528313099893295957558260895200249104674489840542986684824655655383696690391272638688904996907660305952989378505338741024781621619741242548618426783488783717716239437035814686039774551773189444512895321753108676111588426369853759725318737914756304270133186018826286910090372802146926257236516619869417976631888425444145920461305837603740773795440094907288989832978272917815139987618720336761050431074795892074548512458946623537547571327851339197869203681286743890634307196528376670413435411902242598369403350581537275965058033679703567325626796806923664730353996257392221488533022890400927702993375736646416450966786551043792552247309602169815915173965033200251416919240210485858248004528159254885643547189786667454385921198531534247216846015431544894886550000678455356920794790275257861635371236492495362738174002406779587984815628782998498943753011781949822073306894343619809972274665761694670821653694305554294307890443788314228813042552978344803861724993930077050004931805441242552656579225418848887348638374316477887273740651587796377396988698015494743340049844850687351807349863060995591869208127700666771735414413332625069980588884965369807639208686030897632388646382237577410468931799146452067786591119272357650981554659768277617379131651011504968890747495057498799962581515972208127999864116855713431773155899932751969806215390623559597945149267537096687419509083697972053956253375557427147354372493679085488889743977965972223817063326209042585322645857992891393021439639703439992656522265039841453935492135371293101463434822622261623127745378205932212759947090430044968364125310456879660275626425768147558020649405143266483024223723572494376705000672829730627501908871559861691714457647029422875150585614705360886141920078457842780359594648733105178033456603743059107154727455010416610695909141418235916280194647392167755850711595315347145815273428750470733467207231525123570906495709066848687421639405142512395689831973919618757341808830308317867266537164615439315985872921528837205297186181381218597522504212349017538876167530425399180166460005870435049287003740230120314569484100732514602381957301462235911289765585581953688514354542412415160587875613450640970351713567107536167491120108280373261097737356772328234334552720648609052872591514454459737724413982933753863982462924391493224897309514426396206221302515695438324353588259298993608744184810346083812142761413438326804206474501595703347125355175274938228222245239238000895455298280243007385290188533007121976052934359568532265203408463107025960609514488420848146920840714545877269212714864640812981818483993122668458115378414142493291932513695842199465033900530470905080428641269702640866286124392738610179759026724428880308891369078801758779726383194244771517107000723275839382295482894140697858566850341434583305616558354881871377025487616252861340662688976646017335774742740222535917924402541498025529167290068303354738466334155237228307298029316491025888282478573433442301044459172807879613456620390509652030943178942156441265832292690293712220509239329117792645114238054339568633232622214906129126109149091400526166314758014445235842663166532171144224867457756873604605726941913883508990294886001821372653724859648141269547412358660693009569183368798909023471467924883098499455978105439740868789320230670299172417456453606644328956391835756468641706381491627418156589558019990358953084777280586861681467149263697639089608530816647179829904383173565295554972805583736712122608174453939367971888235227224591693552620229530031098371579630972968172721611599648966736701228286022599095569794855875413579459588765925476066691430609957633610315101481330334865230563328719253415614388827605636883360091731808976795762387599540311513513948043403365354606558663857103577047777583673826777162247639337743212202572196792892552767163296714266590768708281493424138138773824061105669345731012660368744435008336118049778023957716773977761344979251078288071380159195444584903825018605984111696291410339578293211654908452139696860452010205059419753900950516488683019869027728031685727069672784419023711529713581196729417884391695228507317609857981814575728040588738627892238985156815744956001402589325355037216410337163459618661118626633256369560853131176862721290241995907598095095500783570892062495978006253732851648400106266536795027480603310094877603569653813777858175444540569756359112688354043520601117774045195805584820522087426196324383343258791384190928773701044489046231989688443009363609271820572717009558128447684230962280800886706974258232267604265147226999919987940346694547312946440263832123890418121180987882672566059270746193490078481622322514448550134625933858243490884358328260173969698421731062445872541515031682221702370818603808028369927590834019283849333176099031661602527788549374575088212362004075621768254577419542601734514658815353082128083881352964968568162706182414097527756857900921059922407444638208503309290617491606633067134763996643020276711579184996519530499139479674758181592747951628027279747919839913790075138850989844902448032669779064996923440409867012119921863701025550660152327364118804049121499116118963645881624223046451232519565417493864461953633488733825347260793806327147080697268064521719656169994941956318242241441029409814236292093746236188776362755913155904329241996972882846485175987921085889397786417328107366028638026658068531610978745823202691410574192372778485514493819532775157605799005550371820116704843877565858282190368466952549831066748324821992656133982841862733159221275143646000803075523684549914050767993442295558230473075381149319787714670815424007741484925031649694212022849108306963912456931952008558196040627788273422099736189337927061682684566104044460723789273873662663657075046671781312526688899146527523729816560136214115172105607125855266547776912697591881076176903974062889688460903291360435905499765695515912490611201146939004014324411521823486529237140618046693358231190203486154347516913795991703107816189451370709355484930210112350165076945484864179019295912162037157014406414158328549603164908052474916519121831423417549350850695653757687117314253490831739268443921088188506498721670356376708845912409404867765853590231569550667708795667419378455589237773568847634682947159677357808774441926035703912940516885551118024186239273635233247300445519181012885096092988788366145828648864180831856965824749966150327094303975802305668576092040119134825194345374780606662175855620274525866049988240150716981872821026080535340178947164237190222494070082595070457271913408016906753765325747729043896367576346969659554451412063363387734680169775695766830330589257791545047008303132671162758040214193501592599036509968211197745523204049156148348020669138888156963440742327424290515221741208720607485912065347784845391011300184339713288515550235141100017705029713665673321486387746504635572932196242108180366895163632142418528561800825547376660136233883672014562225193106443584976116440771844772403002445296903847212319887831343615320618434691658163576874404406958693764786204798161052849768971460312236762752100154837651960809414945524337371369676363229851885167458863917314472485959859499040212663109651039367359859316819087760010051516497746995837064782088242561094824592605664965778040666909306532374137021613112845246199118236768209915203553251788728755183459999309899044198431868734737240093143920285575948375658835771743842887851852425977605307422192579148146320800166193404995984749899896519723202876641821484280370682149194383188461370288748356202917416312557066758541687606942102969973547984011279826215090293806717900227203647409192324870486833423549766144310649363019358267034047579058855408245730278958537377593314531208806633056729548335591327254497891837481140392534515407756499745454201282222638363577065715805689504164736822959594718460683645381810691364260123954856100234972938373232932802223227110252009531896242792001705286061998448833629313561985047913106500190182873949613316715233665048698043031122655278813250261859245272988159315364159091717822446617837507257300362202628338538223351575673853675735042616948717647189957940664633765706834631509229871148630915020131821860058621685228857542838743955728410661361344851030493716367604997064434870245092694898630351600961735643346421832576953963290431888489932133751059519438118017271672833600090724268866283605643651998110159335498115452695887853236958692660113135584092551047182409602819947922940770349640551730630019650871905556774489077480176474800010870141100882053766608226301124668036495295761309683831824881664801774061947476187705339309339319968745744808686245084550853613650636345031967111025486855750854523039750825454375672269615123034370199017228324596719207434703329088619484319105197812388125545624216404563670247561596761756526164519094794946430221340015312867054054538200162532618517621376754935126508019841296544957549347617200861610804527551562684339768437087930432497925876314281381227493340970676203783958403277909174015624335043055938335071516278262205489739340553461576633036164418556284504901979666740479240952004196219029802600448199356206141072079382460031201164529135076851987346432410382804346362677862187530967972216335311241973943338189099180135205582200231027354635542964066113331273333860140220281149591071902643082243293217653087965661893698061265164108371069759138145585093757839010808100759817266673865251430390284649561229570121763048342391039451469409670850025500071834518637830874280314961336383535719376424335600760599167204880567955252363457725310034932869959262333853602641044805783618137380216294022867179045185671314070210496179633584115778843166947209782837242002596430438553470953163874409468610509109541295524635786130599728386163260101452887413810045441646920094474179771695699229487135571794914144881529350283267125416396303046688265188771291546551469922716318965341462589501476004422266235354463717158439063741252987731958843420905290238030278618244018716130370151622155344861613868073116634931041237687084348217584650924474367022621598730126341216412432191371977390124372565105061127474098856201196605682156240337120777129867064088297094883367906044485726252374629339339712346703045224479550752671102772321649142300967986395805649562149978767194883209960286412574096200839637653228348424228031271012060523811980542923686302106838630564469428354192626724321322724152288785015258727944504796882344416474033552800633330463383410750008110214618595008306962688095702493453487024360585123911167115481105974986388419977598773992763273335431129632096992769955617110585398904944107348852273956455674263091427398891173300775277746949681596755614107449719594182366419200818039214857498461595646408635122689009867256414214175076252137498902971444579997969272205518297415279682499795729701470160141070062208170043300464131037700139973270083082600956904469351187919273483627589927050513171668950322734038249830827452483983326607070261871580939586970005490812402156723318990631710193442925601572087997743923339361977733074696757088316168308639545646951918480112617085052038192987674455871937392693844299066287332912164563305343423495928917925450998969966086340657303559324143954691983439133535215713205600779531398486544272933678986831428203156887977534162450107675209048440072402564682745172584252809296637233756221001061829093510602380205330546754257508974503802055387746505049459483954404225163129190013379104056643260357809458299709947643604102325602128075046094370247792868432831166366039913575850470138747548533265724718652922662321645317356359411895300524443316928347405838978203725295425900129886989134081884908043567939896268791355829795624293556919871043656940867594175553233386613855113826150466082356106449720061377237118713374808796609331426499161907296791461580534844120927238365770614207029286962884433274056321733931266436662228227293004691344529789338128851131212587101898291498259933308432162869106665537876256723664923256976705944900614752625968990641957845535452141598209190556169744252428726402220426629452380634420594144953365334574242797982745062475319598056184640923455518800787224765413811356442195837994676529164752500641897945085499368495573317082564949022632344185065411665042560899763213592297945411115267762554194266930977231475812979370112004436947063139951294207536350389720859969691173720693124766201322338656060187312736883062906114618516234765014998881756648619672487225818767360581808778900790268293256626432969195889125282109462577916861464086796837777273069551856354038132876158107771564368044933760507022818993198880419828349505631041742784594791831823430783685702506577013393106027651001111397742311902209037747227545244911550581791562582874063477152579528028839509929659247801705409812473046775007707153877373888487016630651218306705721885963751423864566756894921651713157107639990780655253119002982151063504890893814953634647927543575863762294851417422636802033453914231628984832000195520756322558973719890836687158491134542062192002935872564759945519267034555517537681059130726604368493110785917177293692441242494165562768044341290269685201318431288714360257446717853376167471999885638552883967486152736530171798564136885815216135031070692588859260087903226319914320538844077901677415171016939316569381935515261595337495613941813194751692593308004210368737292913766547465754919308453104333880978160742070447238986786230924144263414064319332980616928273938801807726313382547838556960503174884476731162027230581014674898003513268454026406010438126158548250839142138543080624375473955352052687040888907811290528391211969390814774476476500526534271589456660517796391455052223262359280012771619760818089024652122503961111009165417677906056922945690160251281254099200840105664811644379348706454816669261514463205310053518485476217487779254112080014059405209575873218988373722204578980941998322952500051129721018878229780182569443505800895500146306900293271615355426251029549209433610373212013313446515545074529686564162216409055570423665925086153982989171053593785090209441047622875875328937088374742966903995905626783608015125940483345371798001190771577105861676210601954090050307256517411344645464381425515037866325263693413287766960572211330508460983396080706677111561507072197939936743936866771155958205188582432616334876069144259775994715064215009715425094130231171871011182740375029380994192794202720455484158405279995361039190281594607693763746504738255273810216197742453402238829520738398382243281731614839751388121562260282692937496867956018555617917375633916030839632423708153348771392779481122790449755647165826949098648904527982748196891050620149762657396261944759345651382787970156475892926197072016495965662116385755764156802714575140444897996213284788943652615980669566348438379085585222742539791815443634785112615136831626266461416550347743741276543124251132830783345727107783751546660392957270396602742440052304225490466239183830358845054948341996445817225268172315975921839511788263222325493216695013531492758001460249554373428865958293292858166101787505580362893143059982611642820351996387306675232373667838445717609458720528614404759779082276106121354140105697600395663163430228683639636340668881091674974614980539451916778541984050370337595864606318988900565993188140656430779996164717357150203642469901702700278409106072402664326087941319626578502466048934625164021931876249547434766430613022860413704146167905114169528863395896505759480586621795653352669209117177176500540194553777865538972692523259521249195596566555327995139354240157222622505358768522153456145793694299779432948093569767053533349857802831652961509601160376417806343183693895992277829557686836859170183211304989404591779456172231536852179103589140535181526345044723333662134434267617349645663390864514899387763594900392109718771877422851633567833624829961029751054871170284828240257353749542430751086593172551925442607808517966864116588703041717268288911310889246227394582129014359655534707075233855666114921795846859185599632926992092480831901552696719054852273602587418121060937479381380081598937935010626622732601153586615009937563204358896550704315572300343957531438737623016173169941491101135840325703804621096224336406979928029855418618964943369583938044544255455678573908680884528595147400138674352358415029608206022919200635773811122897037244593280996647716686494753643641598753650569771745672105297754948483395119450519643160033427329405193846017790310187610427230971757104811353712625574032423497143614558445892818286349193073925397573225173977757475235355830737637755635381593840712926661791701284200490878285308187046032093607337259176848200256501513998506008295880645770432724800815113873588789246749142187741749611433777521595231872876089613600734396757864082228921779147374119694349812328284723378238439053169687470758479641348165162217013949964030932989267059553257554200977884269131405960766479103144831320594560495517882313296067970384771427000058102015618929959602293282704991444485071353107775639545069531540470804770812777701758354976833364551329796530684770368792182405890873780019009152595079463229485836410295372418053444414473965149883643050227462716179801195881785216566919538573091968808429162470053902280267193087161212011333626201708905426111078688575003826161359217105253986947008092382040946310374028326289309111571645234289074485918609867363953972715570718423654875208437433124855690831530043562182960635559148913170691406472689343469944522450750035895098935659515427765123883050206195644111311520466066706688938298229447817147144711274731003593725714229029219998578084887015641338594253783190150802885172622088214406418766924072064664856423013211460227341522885576597918782436827339998956146224068067261919608644329431367416393098171647619536135554054933200476828098320852915059366232159841267799838762086461762717743589205567640158662840512689861690274907003744191314464884160083325131498779614984638349123939961232745791704321254068271860400189872524570511170420751467973031790454218432123270726125993722131847667295018674903717945016948540037653194894199156511899633726138435461845937386476531647907671034995081233666845233341413394016278662223474703853388822635047462019588531840289447091109360134929084251315771399356004371636305243975449157305936020293009152630871886342276419115666867657762679969794142010846530071789430678018452198331033520110092489585951841406526523923585767678211280080085345381459900473391427404839956050824009364674921630911883192932785074134695930111668150020015470126886340080451588067476386666651008562083780726827542826129446760166100867736262285541352811471305217831043408679052685046105723159222651857361988406382940285107376179338533156728863161943681349409813306337276358911815567550256634623315381677685498619506746801904138386557092992975726680573747002165602585072910095508794920528059981294522111509917197269804463737659055003293896880869038369737146447785391840776924321627866896271002838075560826955319572591488765500398019598946617957333435037929871477086677190056603150250376918911313107284553583170320610353528698098891752672621346994580069025142071993388962878479280489705494731271070050834006055250350080949717071190593246343481428728860473043359493406654870431437224134813614746887318206909248671514728752601950425057344692651612373615333090169113109938079615673340757203397013449440414716320655888796766881844209436447134711470695114811395013916570333754188140758149999503200953782870069349396691561811869825320481612148445158884000950597099232037596413688782610987095453548006083289205478470529568852601326331298104661660735031559457633255893195947809532854763324227000704114292477907884991588985486043915108186647628706381585519015778058114677156013356118917866539316966811244468106011988644776233123907397527759670125508976713462648982338752020430302280020620297593788695820290174935059526703000703682026184459883962415270177585985502342551025507721532006393269695409732471407629550256244977173318512946083957282593239787307990055328469945044309588624747210437227682109835397372068511879394588226405020485585251145822814306770464865344935456288254708317690978883246995057704854281248068496338332308196765192118885157499268385635848315612043294285773486083800328585029536883300038938345071348769897803646466658168698726752574114669113444462944016725239883455091473821698346634334568681349321826060964813996570198352796502019003926934146460228618461465114128722152218308330231449546505194850469025375602905190216754380206420504687264137981983853490630431134716730048809711845568154360500278440354720851678447682946043470770070024212149948149249155825615875287814026666762968945510313709038201068933711953511198297210449075498783315014840894515764708594346020854293259545116883081484194448035765139898550840257483474189346174401380672144924414662090238814649689830388611512884219935619707184672186865449011079068580803016147699315918505594641491403274144183021528398201154689886731634488869561547666612404050026610062648610055121721822476777650258012486944579229464580843250012013031049132455367174416886729687628544924123704971662203891942603511835157422639221934554504843650680622259724325624980747528204325462335227717396396451588498799717811191166481787791369011798293929287478099753410868933527259228042765405202186422689620647615514376445321135171110771197769682131683009205978875975167392703148011163035824895641686284868315715724436460419794982474136461725383183727914468931057497470810343514788565161251859669143167864462773803721745235558062327824083657252870254747238143935811959045378224877353330713819097753259742204911384765400050928298690122637133431978140866041685001278458379340032127423437073441567670484927063978617825784549316474921396286929774944510196477419712459290713757236954379327501906165624970892379454054677644720550917089537510179972617105076020352536051967275915032408223709324143753136994909141571912435055407964998298719202013966980057469293189049585494608710329383496850863359825036492382091271065473937517810377143017288220743504196355469040284891637539411626813080741649720237573493638299779463699000415422520724208965047766248346129364926453276934887824995235543411452850213229914815323643046923160623556432902880055024746045603147725410007955167838700486306406245437688851752219170313427881341227810294224212081907275159492679994925049899103638679469421410788278067463633682313088089237928526118559604606779380787655617437227952531404093946378112190767264129452949095386842239448407602486630912356493091094376094237231113931669482211704613913919629146692081767040620764701545334329483139932613269643490321470674359714113344313862836190999711445153630750055293211436166343476861383354147903748944814572848434131090962192359739291457235991907148804361584813530498841738411416737541254341859398754511622926670039965405783701907448138606773821963163003930357964635428561998504592090769494540134174437279619631919279502011424482634542392599212908572815758061173948261212097368969333946941967947742799905629841579066125138405983543196859540796096615751121572242321049641153365205402299919310512855141095477342271278767266850242019207468232529759282902424676039518525329262901237738675304312409444608767225332854474111138009181014897449282640409435311557105218278007579081500612284812943110174863200630411691208897214821970562557477933676717406568223430454203435678485349020027892043127390286932209226198707579359028857494438421416720906496849967566914487191810732168035844222255295030667990934027546722987728618469678460340526772064635179232848101174311363352022394149830862467884903314892399579232528420272036593798219466301427778767644478840925107180351724576317594954409117048460790055053251811549474278777603277533091778231983797931291493336922514459403020163181645363839073869205835504453305490020853480044081891949087241738276686379869052680704611431780998139744014457520334258392063676832018145464875385929574609247320422792571654428822723874428172237591680836034893967183649491993926120431532698245001390815818823871800008311690377906370289883216473827194121727177496394678936671649451704386250459460410223472190779159765623693166713254340659847191719932728203033511033497689418315350714208732204147388384779773584929842038215167647458712852090950486598003980132108386560699946258424373953829601373832575008767777161942775665774209230344342419226404779774348534641902368916472380639583845689172383732386242834664477171194708451507726228094496058554146727496684377680432839015349970836024862855965010345127411931463233012483173637977642416089004240054265588166427406396388399811526104848858852314798817639509483258269474924767595226880856956339133028998859596038303731689079537471649613584859437888190401022910907806878923255186868772527884428614230000714321419161537269714697922107343178725650965416476964447152920555943498513898460144945832444607742289817810663843770762901525346591292871101846132712409807866096426892236715245672883044819144744364562936620618146972261140792491101654272052036006062439714393850397655425843606916632644080459963609241385312509803077466526594007841305300393731461355051116426232564203789204359897667731122678239385224753372878792525856507126850780221019779798743644087928397719247986230080187614606095856780960533453812632035628709721691778863238189330247404486519828118850647952386776354813390034019784196328646578228065409992631184976032343666743381133211057045789803545400814129152388518359444991398176318711125244644010331156782362997580649182672843956156479088020664006594663955662469365730300954515626757375548851819740962414243842211880247614877215270665870107199194489889473793183273961717691779359367450325473627861080548552566889668749835500260967357245454062985759303957882628402115535345613479189787836077893881594978629771862710822831785064885434096916902135989754998158639785333080697081975808113805738130471824243607467504735435339750320037233310813624356385749325232163022007489417727594552580075212857790334957882203548733840024177652401751375281590794616031471900538424795683422881776544019633727364220574403450852924448531876601835579046140509704226006857891170674067429061090420736647753941481214438598984166055592143279133707482130058952717155194114415289622623910848422135867686165512293433974783627650006735923549719846332723137003153934264758137487122347257927034859565275362662724972605463161371529170393611062668035364774773312285697660002022881161845182465846795299121507642053807135626691508320597341008458462908552825292572726600583177427959032977231110051308006985072973865170038044388250005061151676817715051380395913207603417946537017389430252064559129894413516221427958827250043480683436727224115819762081560985527114569257477660248864131240461078649413975178830487162590740611064576541536562904720364022751743324256957246384894673335596873173304860846767371756763312969673430432828037160435160594372806253555967557205210963083070251472833806599364706811965888987308500159407040754435966753633481849069605213473277887146399712066619191797474576595927249637385373455287766636886497119765150518852019214971457231277414122547256077300998233032781817633617944309524787602231352563450213114003984685492350214074897639129091514434845670737910316485068791854146354054974062285870162559227583536490341760270597082069143123204266096577301638967678555941039338848443762412476487298453266884568642405498589071186923792709152539447786036901649647250668586795694869215641593441977003089531091690727344169144067253690418975756345312008475228209843357615789910364162665194895653221742383003294981288605470426362039752648198474514816883571105753689768744792381553943455688606494137757350477654455509984755357492415461437839170278138136890129795805114196698863741513870987755085501495877637499799835483136654710003531056095723094838624559029275570242916839537833374714922069903167999932285373930125363404948418665697437555016662437465774524249593950164785657179471112723167171438944073656772818689492149602550392895242700924240088253932892424098069113445621686788259756110213746891887306843393064180635469262941703755015985975978014714859155756569281631251380407072926595536563760742045310102470212587631152326273024565572950462598429502242566072198226205091744646727694516175689318675522862768021736531371252806737188755972527469163210523522174090393007806447005678907771557759331859191145067849200118371316209087336447570822346255716603774510909698377551973817597574899973092619483708385455968849900878538551577356646648364700919946012203452823540138462212394525625137990289044876269983400431899669440005997773543248918724881691702498643185568631167788751895548347832514488991990054505769041072505999978920766153374628297185256486449979455156815475021170642303179237562219666790120630993798197153679118950741956231847870213793302992708378164960854375723595866605767362529701503012814910554282288219175086164704336985808584391246253160618826176745430563151558750801848185050524017178209279092062093518326182603431041395682800575270424065010332361443768172440575004418435500147184058218206752307352907961776042389472477067278815796178834532114603011655585274650507616296246696104000978205064685074363071735730014080270426951512952404934719685444393445629842930272056411184283222405100312880455499706663040304836196769725690261240543348458232882358224175290452245798073570185768495055802743871143575782245060536177215868033412379125240970636567300927123989293696314336894091177691054658380307079124150730513421686179397420018269177738543855255929588817134366738682368264161175591741615375682840350147854178359691169926684231607661586499377961511877361718298633122656844264728085915931482979492497850638142628883048935038932443683511893968084323444146023815885988775267568196161826478911754570230395358328574702564515919763766882863733877566885541149503152880543488422311219727856224452281232902241623032231391526155194353863769404232707461591406008931294619162824625425858741786252859340608607950292918082974001178804874145333016290118618543772378195532658604702850295442125311269804127699174573335845930406745217105179005121843228393586746458514522374880660788614695816979517048761154858631997662221988670815253850633279176649886641311317258088544892264957219978831741338491635621566469492596934970009466994927872000485100639511727999675501001443067240291174819257208438293248127355499100160085575418687917022996519872126875738592527827040157287532184949753909558450449809801220096482260210307422123330380871337863582923515136060764439288612192197509871815408492867971292898518682169694391449117956528912720374792745739871638041551992175005434627416798233375805882303965647423800065906494039634011593387435182638110219699575449030708916331012856166542226240818082787268530085167470005656594095940096583623493591595714515131406482992163589941254732328817818978366672664362921166741921675929247584376211761214816863324131392646040718324268508761950063205981159192801838446013779565518674027839420089513034028054031007285285775620989076197015099878589237742665264790541835638643967658858661680392293763326102152141203441656001699225830904999406481651297405872234300981523009895340747952476332583240099733054590656076208803098529139541129732759899680102628182995137821471078443368460061571584926704304872229122856789664028614101272235817959727816394632662963482668692438350896907711044770727429564667967301044064039460822656902674962125162416693048090841096002871082012605811751250315515965855432424394448626224176897203716458593264487434180237235196450583043242882212932678851167348358385968588751923311161852219909311386349188130974405701599566509064061853119188306172162309514495176250049395557495116742533334405997852313928699396324810821063386386839012581705509410282353459853121520273397872504062308318358473087372782510500834427825003341995150241300354586181506754717508804140945160207478698736460142127060505189003667338111055360567758538158451663779486827675801028519540280376977151460720770298853420371484933221262509881963054569390954105121316262408598174024424680980882517440492137708031383783683821265748954656567603950442346806654764312718441714225990233953212318845959958806969468950667759843019618361343706165967627756661576695096151136781083353154736892830504625636665564375166749882567740431209019823507301874154117095353524721093750817894408360099656536770679768440235630733607983756349533582771170382833543568242212972220248212832710859525811002142405937013824948879167683929795146648168788816548310984890816512457017114238387927875239428247940964156014501489031241066639841668036008024525314157204841576077070433229635189684229164830948995604456912670282277076506618305892923995578260929025780235789202651136047870428297415104878312313535393071995606086179193389165129291120831193519153207331939324052711988727516509710552400220156371796106051264587410824784996915284432781772958052284750225427233867362812560872645193259029040873811808915517508140181675211366850782414354710811277181489121243130156761518039639846330346976575429332115449358195054203989876733830384751104361506993956052256320434395665566330310469694500957561049005215630122344249443180239729299867198861627864041205924151965591683152750987947480581480343278579146044328130926705245910087743485544942720957349676929648968141964557626420935875408534236745138764099915362060330171272563875178755225007726579823970933937944763812013628667553112865794284834620216533859839773886533295808757762926195061748871684777172143861867854069505322529386283016130523977096907899919146413013798769923351724763494043179588018052813541370648734738500208610737849023655400690699259131689165841069332208124578033033220542414645939319595808826920242538837726483289251494731800036425640379616134037855126832890990950190835731976750042591025161130460871904968019554378425663185376146562883564819880408161080900691779763319798124572535948652154659029051724114216154359977637587853979597632014391714463284579119428534681768071994044841697126149224271558499288616736459771785257295332829453071172898808572402139133023111678998216032903756377974311226443478741428496812255553076099186076991171650948496216328935935436400222431721175642293613693627771762533097401059261054773544343795476060132234186761672752975465737180362256880559397292406508817842603818906720863806995470935314656619838965985534555825503747594848997598805598377283870557793000982948793415924532232891635282638863883204418193527396917111367990992840602439467285713350620237721000002096932318583436792673891387339810192737635950274792651439535208954387432263104591867132282583493438968555232614882440147814796689917633286618586046155003218477061255856251332430547812196228961799654269915777541488797308231852225173543236411264502759655287871106863561493150771456301517445321602200312166002748403025711435132459612436428475803413726423753010965093283037087050663049683587756191071230873292486846910978258326206058697478192928481586384996814339732230880750132353080396985427789587645783909113063716883556013912014591618852685655368079432886462769775887942746095544396031753197050978957802122949486184422926274272955237351832221278283925786575628745725116483688141403789204688783162188177264231217109274946843264858886017599480068832753240974691936122188583904172191184713384453716609786854923015415803429442222675191535347225139465107171588646334511993757296177150634086331136237085720893803773077306561048038100372655575074622421882026160922708593907404207072146618744731200612862200590860480783280143570552527527674776172856354930219108176570581189027535599566059085042660207996185361675295462727856764815410683729443834515978448846802510474722240000407778695240750127948676935822132618129330617716479590093796224688144131678004417063188135315475130254601479361020475815377028308429243161971957987258717772002033773022332597103295433625068875088436760820789269859145998767330856644410339649049990031699228875121612632748556814499195699495517377386229164372234561465906203073648812430495629910375867081371083223611996052890725842847501219227011427086813174769727924014601854499610492174297329791330716769051398073425838859240533781764750980763439418744130083602376464354622997785275630222177437078269410125189984357076047771356200273684673090737740479798072767735502969478488993137617085673198144251952877878869591878864077852427259143924460543527666617985706699350358264589461194600893612871541923442014078529162401925074453518029846453136426361050316457451428068991422938747281722810733089211330715162916096544635872999311462219935520764228697404302373270299473806562631150921143625730117517341125094918531567000568738658591576558006431304670323520303833703972298201291729104198800698148423154052247944572171213954842071851821641328546203590393178936537907532318688613501350529300521554699857867779331828646915094805877213398092467031336345183660354646649594539090557530968093681124213646290869782248055274644906844370203059144365569344300211284072807591616900911476098671710876822002786610320751843350350151220959392920668204436695998644181120646639306572210809695116922819044470158351584015443114745884843970525023293428129013528672886087766936944020262364701769269786550823272355931586985664123976868611836187257786074591268723845534359730308263796875011919690557413210267837648434258992746176615543628817876048383869088209617785742054181155615599873456216466943945418985366245533663645156320655578695573042998872824254545076760719364918967790648901710362929793560750983292322422950632895697506030703355196171977216999353155987483667317650976431680497839067803395889128798756690520834974778159327536560432855436058886084182069359375381894240417458568435041481098616798149058839862578925692748873445409674353874802264680878204806659320395629731438644772349398559048073804519191489455113247676606766183735188878947692681288322922511820400755665784847574685848250609158034643945028556603850725737775288968375614397587176150793286859561490497899407864109133085817913199804588719541730393900719976075343506849857573235563097135615509628754360622942581064706371699072829775623293688796715607400802473395014668107150319665081373317525882573941805764278814058332147438436284829678918042355670290356018740739372715137945914664012459680755688561842018635462570964021096690176852874727938927496986993790264619420109844723396407206880650808957154393026976398643839834355653061950090196369779734663952918908684893973491774031665627076674166881441016454162664432686776457222338271633376119671499328494969521214283877686273519601898997447564687680990314713911055563758748545245670886327242915520151405527381475902427760995899773601076990414707398760979153558700025486360386485283249439200067014368591236024718138288853823071653416065756611566053525727752145086273534128493364730111490741199653854810992907808070852287491711208343796597061253436633919903430319421214008153990954505356172541552654235082127142258822642461279658184477564631077252662119569048102447498800211625276343788631539472645183636848493009406224803907210719621947744909489122433053975892173660068023822653806437982732898273174969467193717836488629864329236739656258692814069157887676654038644604408947078933588215176160549754861132949086088143186271113634451835389658467629599544967428276058435173979612124308751902550821178193990631326878999744903114662324153012906125075240924789301090695929082776527215282065505388560678142843785267322552637712143560862687382491561103756120089493914123138500035532505938970363107365692257815211943717911847536455475591534546697494857741661600910958168053198512857658866593704860058153118358432454954675704756546307109429485066181373024276397483174535355229876698073408327129188469344930236407642306299157700172832924349789550570219545727294877120034406180551197870191274465216896830867314401074094536889172117094497149603965565322755805897824428068174481768867090340388353861447463305327432251465708073977286730914467149481618077675150813736956993645291305233453613115747053074078549957948057225144213975232267375989780449525264718894876662857378908837066326114944536787021616092603543442047779581883963718152507356843197572799162228681838167383650172583218461223744230886932189467550113425979956823926614894711498218175794401596298835568069692170931721166764138580222185262212428508220405316198929459047917306279343962426768203997146607960479223804240795046033595510018305496487548937617277135177052967240175779559040866668151664459167911232449753038868678160050372369884801515049762197921168367565869221487375714691889776354516754135568419229123871312277356675867903161045720425086653761365682756546400358867239945472723791799490226426373446872508520729437265581613389470437487522417789973447164709378666972776550414721996686121976915337315927221275837057260688592150771029832020483438533184063001366278129062914403741690237147978648391631185757977659167461111463747533380151272874669483860235895386169593162342595243781886587530152505819680405659031479098263866144690685030374052724044480015065183143548017691873018297045933343119455554589808330238181921207015980071595888421180279683551088431365848869871457088525155341656115612854573181956393300535666438774247665370266155978772838510133849782557129837807422067603590216806213349557600373226453143527844949524152138163328169403021797817824611939735568056613561650685282925911069244881559650620290506407272042802715376893972607265914658160245627198144223315201984888810106972960246933377777007407501363923512125805737248187475608571618183178069497221215102479603080005856218221374419721011346176112217309919147131655192201993260979567356836794183922172951790244613478053570436587329568302600646932760697822960782324593019877109354166957315718196479980988016150015564646576459799955869179370366493819342341888857678894693906997944908415631157573081596886437877445007727498051169295101600611151870695906157186274808920341034572001462354943569852721484008720588494956228996587441037224127175516317760365465032615913767126695237978982389230407023059783222036719318284336152412561033237513609511579030003804074750791485000053217955532495711409590012235544133487880618052960934927090991170735242250618577671153300757551154942222086165515321296144643328204486541196818814055613100367058565122880156425405773857079298982454237144392057860055949258366997946011543909885217754068619541868678256432341414144394709419262131537451484885250104709433340974087106796676625259798755370091812863543329010927010028694756320974194475705911282111447470269927991007331018585157900307274056463125072538918826971226536884309196209786165354315885132287821309161496432001359697340162973298011072652402310800159359685783630546543742662299036250038089533321989452962088544273297031844986417740716966315750588255525171337401251092808830958393497655471736100224799478318060500442582003015906679564258321031904163364738589996099300617408387909652984187729295917217686024210217148729825260327326536865350960410848603774609231580785159829807001692332989366025614284065206094334598073737860019394407867520535797119240292516655777556999754305066581912460373187368703493290058030759628090588170815425667519491260593868916180932243617876713507617690057765922459762698274159118820868557643860156494320736298450381797608998932485574877988693136953985764511001455596630102289058439928559453164508418785860282304496724673213080898716928766632369354548299665076815694050079169486462868363318830955592648031446285614565011639559586216198623583406548817450417678311412750686788138922383224148876742014240321835317960914395245302080805316848504676617585973792563193977986328904236075153689689985439351757542607741793618061087232775168363555006057213587964679101673980192321359318984783478224296677030618080834263923735483158775281965712720368188096231055520904202686942267911987773517997915732020332088169207329432859438830650852271320248669730096720104452092813646440907395029811468901033450457100428074993011925350464878068382368609566563378348130270863929919751930031455296841776330289572184631587306760997320413436931948477879235358128020872028678159038870328809827882269309108567688645294708830999932887834957300446613332279467686118746737258830398413771635220244056562585331058145683459189860653400698990932362150652034864329769412811189432263405310877786005389967522835134785759936285620195154451046023843290137030498972849621724253680924335255602335769954420157753261656466547527926966930525740234304546598172178233370393363413810170336323510540530079526640521179322535671015481843111457198207839514703661220078754952352525450419044749797201337095606597582967611267797775037639612500607111852275345555216184377342571873027511359560222042602338527066748037252062810264162123617679446529125938343227984589914354536052564127584872805895672915820228479507629218575069365797576190588400875807113443842002588306612557363009222129778297824082142828616915128526782242622773383574405900402256975253063321785367488435335205658496620416972607530641129792686489557261949973379929961952400593968442464577838895601077875835865089808568091443622110882776986561160730562574044987317075523739903192157204208478453373304609646270403318163780113896538383447123221892824837509113787958859960016420048231664570767605933549801401380935172349853064734116174572139351470856499199788404854528908510092555994764180786389484787335001917276437893520126223649369089033422638669083111867641438637952195858398818089609022180020373430770824253293520039894166935400654658474379952889114033724935916813969744910908696032641974814871887747852325654808019649750978767686662074705051502349449867445479096640029286606537955865786080652804423573111551466018496817181194888669138338858291169943086142983374478263103392477349620705518150713044264507646322568345734734463708940335316983059518198309808347349996956431123606232228650183085800797907730359210540149287977608808525651613403439039512757117614840926248131569398735794831735151698987561766498315991486539295648653373063702581709646700561932048482421486242215646546417550629938392983793618489832066364175370582950397906470714270644368909480578279225727958249436333824226369223848168134428792690773615211099975523296761624675672369572533313885256371044527314176666545138890177861503605656795816538389845670575891443733743676467079287786631526471664486275872799572182699439601564052807096074605158774820751110150906348203940910609339212566670720131784387576852574615716253414689822532120629066674836730514495327554611311020609376895433736593035210783078114253597089652306145765504291296187944370107839016614394559457645227576134736668851711177639269670400261361931219523123270951800479905018690575054246082913610261994688123118211380480947763829481582873734019070428537956375733413699681906171474828649902474388993502803685375754813133692569148164461986674914848620618813735422754611819742298238346569023860914166204379390942368960580619599790476958787141443275928658111673641821141235505365489434056128153546442300144793071937502283171682582408707261869687791309068352979078044562876765783456322243137819415431615307659017482029265480287307386519927666739804251661471919475704402657275495637217530747907667806664803782919074172999362810960009076960917739481055873939931533742314413994705864144661280755541578726186501042148537481344540326271509834662999622952222680275894053213184429667383699890998037099856480791929957785825790651533178323285651418780552559947280290470399422259344081907672880578271822833148762718960647372650363291980184107151525512537488938769180408374538738653054161065005866368409548900186624617369985362874358843301465415034359540880766586118110980618686771105064883128299064477610115565210979641959137641707969547555350591379206295327225046811369241680016060299952295061215557476715213945829214502092600938655238871307636625314316047126696372980902892357930821145493640878800315660702538197650603479434093411086744741448904776501772446672219254155626861899194712973539958513665010602279322038131730373680933071768107701132638714906266541818693115264399369998440273061007489107424562331003635202355679752580745398944776649353907370699705141844399072938894958087599593916461961296872673503741916776778348848574164066760130907773524147391381857637836268609320490558188845229373163353962644838349546041548351946397025963442683363165666809112560521307846868071819130939679597591257663941401270607355522118580934551759982926388257578270535278737967863867010907817694717133870118588796310821693434167305459201467132425034776943918176023000624788101476078430221521726759659385989822697364246669681644174526425883617042913000473182846051243533833423561324158243164453493899178865165409745531473493864923523868522250247608301636194096115724747665918131529052586724652925994005960537464422173855009212379154625549245043394078048570622194063643983032904426854674609603861682321178239030673144016381695552667298418299269046659561211156379557451348837220231524635414017385407759884134920951330746894528940874155806554634507944632867371904714124045810828370508538890427475789776899102161019562807307343930155781910132080537207906662374567357786147970872400348675797545425074002712088293903801386135789067405513345671679719605059842966982420511602033756046725564984409156875234821661663876224930969208335118093382805251043545890481381077660597311714458165500890945007505146372297044402314072464890271999131241417249716487747487799670539783151890767979336331356309348264885593315635044436744936489118659056747525784283418764826488324558982882271254100857026343268375962882461326920483940288845625900285990593665096154864739530614127050133676455361745671816200823940399994513158607188083364241406639672614952619314339750735444543392005192205938151534025131128846764625558438141388374006583012376499070949633206174184640955403494306596881126928661783480544774529697237147982675677988696105682659123091474342877234523626800063040743752996698468081011595150497258482043524176912577415416044524012702004670028114478419789705053303893615856434019944473233055579239187953888668936227591203975982953774547280351798372275071341653775626795087905707013148212391459309333721532851797949333586954167331606603496819665231855450625360793438398375914327667628589028680934689296999273617212331129959761802894599008395432725686769608443560889371433015777311747975317686619850531521187794837644911313018112679522272961362104899157720646280517697453540956543395525296941994518589696565566532100541197559410353207462645376811111595485096104840559553258808565223196351708765335979814113937509942366257215491922109868605173982490392486433821721059004410893728785290934892906132666908920109570299632676486183772399216514538455108305730556092149956243207643169974375208104687921321421903728461596348375318272105201910923147405832297523797492200381837923276808115132046671962301659209042613233082920421605407665973645800292775970860588113943685047494949789749191071480201762898915552270264364727321770368103321403241140856580795955453665854053089529508746332696215528609583728979278385872669966379462367171236402859656331033364602401669778852635433019831069344885620994793659024585831996396917336178685688235866493352130181380729560251217039603517179072096893199354774105278796114806333242224498708620220061440415728207176451675490842950244888178071624030738312933322984827880225986730800093096632346068214748439269363013736066307906551496370550669726079720348587363423894362024995664200555955339053577374993850533971717497679017433880521951183505439089548877056331920260996022291012853513369223249222614199042365588032208309495499360786636865390553287356670468756185120031375885438235087428428068341353931566509130475270455365716997035514061725751763464284277784085737052421878638447615365744501965374619118560096715998234800771583741628944778153808685721718864046910504070147782974837681725809654662810898394466889510666746209367344640460487464998737926919925217251931565647217538307077704917194682908380895789110744417428523577223449716737314878060570756464920364237685728763283428024435154748514567411389005255751805412387597939829170185364040886430351963192862464198123452301457278132197865104013630389031304245192732125888910522511900017572399717180842215249726320512503053299538577242734399610136115335411781913512585246151909602559631728904656409642412205986084921019216950523401465772963801262122419031131838460532628343137848359511084553696043947783708399096511738430245730545839202615374080035360024175403002517243660965904260502432392593553940276478667004898822753878233787893522708867272550012958343735446729358475117405367363119843692884071654088788533389757938567884494125723401019144294379929197723001196179768215920740893037885008421323299962062594713455322545238419022687966248498162731834976852648438825060818372736759224361228469938927945555957450690352116230624330357420844332903954262346191194648903457285168709408018865626932157066797407268952262440823783401593742330951017605670332196130078542432687355368635021824822103999011930722759678369294425520760332168970598725135779881565484577861730450606226710278772217751876504142876935481191284374743861662790331609016545217123892092330278365419344362007825351249636148060103449840629947102050008697701902969330964680097824165903048441772805338401075629637071723215871364685008678233627244775218771351187111065180591455363334138882325174959762449360246240316972734005383064387202048849711361457561817241261689795376307130087195583573064702815932235540310662025826483897689392687207871161918527293025084015292018720708752265663932380343360187139833455323956871432723199032035184826356685584581624649577874244941434848262930211164637976134033073777715842991640929203680530126787182000229318578950921796388511721347815806602480448404208113906241111894401927042845123160550089247921757585670497095481374523651109005323929559971112435570260102944325335328451978275532979953732983666686579360552804331419275349520909778985656931939495197984179247583384031540344396868527684060634395880506094211024413331462058861935485038995860758266538362024624656388760582049987963795000960480425177697854041751560354066953372564990555868286342601197540553313511612503650528123901137526402525644034396679914274441278737965078759781522145420793629855952452904070427930533247550481876092580916704690526610280904735691445352017135683210726550656618502640492433911354700954344560984210584645073924326356743039266404509859674415487535062868856119079688937098247962987739780102734855755366802932399726685909431356454529012379473123279955892015938321079185770081120233962103703740552893255666034102714729783077299523393273086593070138800211331573533990014311723891563550553870497900829508741083805074739526946476553238052786283789208712289916723517340324603378223794716680162408839937416038187832040876695575707992568353766452670588290856131217033890722444457317596076898514426740581434585855850381153053147116903593226888369237239815079899022830969208639803400874572911251437003391767788281125471141273383095727030491008500597143839153325647758294121407947509990772111091008879518580777247012795563894476554969728780270738327916735759563751911334768244970058634645897168776018304167351153725138074150858055770858576394384002975499589017278178266026064769649172367572077494288807227070826750959755544048927329436095605167056111721422993366591583827032377701943554119337756524519493149043373773364099392370450400609911417126898480417056253424015493703526868557107862435172822525096043787567370447204338608472269925416006233459926364814568710959362233754697360351078782494994600016342928609533312094888706121785197764913639614259026182583546188568921098910596495765442747723877390210787569564668750975538349824966232537591430834382166534672218513890359169870845644834337897674828337775328438319753463150762150663810398355823058721570046981670271553071384967020271178546947018331709207978946437230945297626670997110653913461234780609067159351837551394118456628674911570130551550648353303926946090086310236247970407993402422138941455255535564900558583452709337852633822186896306575286344118711710312301832902295094943356661171199085560441548807497647151278988966546735955998097849459444687293999598621675663995410143985889646997752391749993514225291996048902799799701205479961266162554938128198854437845411265906669950489550095116786714594670478450008215862706770696886864691767632010589223982724210333119036563190306029364611432072864929347367913030112630105443056196712171861504222578015071874377167976483845599974295592463112398423205785076056227692731608806540071692506749092831280269924893254897154393423964750956069658968205945067847279587446296708501881827849109023572819350945360913173566682747399276370360496107075393616117713679543823258878078498806526483238464909534360102412060941155406569115698266055391777454336314065011295337126759246797134364403577076573756041203630738294342084530799623553636606935185651282314644950814086232583824670165785836548810954899218689095491794123416518524257811861335934559982235734590403247009671612079017038183865740193973417300713488340967574819802956666564618706675285927888731406603653934112883012452980685597023190170471825579186353020205232454447720866207040591206278401536164496352658835521168134322480557943680625303916471068698039210439211601400458280270749801023850302233430065541625604135957626921996396675374836941129113267866080501743798745552969228342638862597671878684708826803611770674573747300076529747096777763894346911115141603948929279111937748999409464732473395799327151538175748590432508839560283400627526035047019868393640670717615716364765517921022557004423430692621206246661268873191218708947926419195634750464227418083502644317120304972805626509348874005082854168040977808856516873364417417451216940032128634778022951051995260679198174395642553492626556192848870986371089119550047806397899182754219068789182862707946271797823706334795742919880759191310532822839358024663679450352963314855603584625474826151515308110980439901487672556262587324918605436150427627656099592370147843231465085895370752394079453387597823613998963877889112366385602277462026785349406854457317046689079668806970025385522036874190161461954901882959022018213434570629292347719502227676638972843328717683011754560415511199885254056288050971152401282139468145048043632162544182997498431583179224299133902164607394491686768545151986364487738946386750569020606063096277998663828925131594319714991699430690154106082412078854561929424130636136942147780556617219760026736138738406276754325982417998180422268011678505241959826857902221762590691636275359580234832352558709061823760791852124360194167312614691954359945563997563397348250851927907419745553661500717480484578746609948526603586810122284796042155585458208932922934894849031834285747564563328290228780533203018475708982960785547074733649657324819894543391018914000117013836255649803498882569962507401267797909455961100997742149179883242019567460618514595523718038939939558932897333855671454534396861815433937017673216590521260134272393372866578382501971877146485528689188786394208920590895185781318088799702032921106648884879717871481655235277589134538087402213010476668651853728647559379449989574885773601321880735160417661338044733944508080042766709514590600291673217026751599806510059829001315900871364861348586010984202399434608336979294967680583232517782354799441913442404217607078632818648522545577696138893606058886849075590359751591524341296180742310390771335805622754654332493772470658032442151270045217282646694710211124034633378646748225641952380462143115559044428827224242267014112047856992056976203606179372518499784490718092457611916559881137187223972206464987122308070985393293517748332237580362888748189891446107059938321957528973357636198116557892385767619996250062645101518460206648924209654703216109115233062666646440992398587706392253094161678889763707794006258709582043177632563364527786628760666062197329826913120615829735346089770143743206713521857103175118400531445610313374845529590848283037070452560414791750508982217701580158958871992306056382824723606882740402677048259364158344968372311167526069502592123894275898733217373847853253793600108155330356807456445235094576390366399417670034687756647314296689627450805252204128643755167783232648013877261296142768063822058612241021799844825572544925803753209438677966976790934426731910117867947941458387672695431278774210286512869456600272884218565490220243694400435583241740362815796590872092989630568800522613482933835221596302040751929541264935057991944948052107503963303788844921987602728641217078612930128942430497038139365526854982554766988088041814795296337973180285150889514176730415984322931037487149870408663131627735177979948271486769897902289488853893810231760946317481140351813223868488694090918910047213783618275587353031983880374691445950911601486681156450533016541152920264336770138527399522786059510770216170635413572842626607331921807998312570768250079482801160383173950253493018331404433619516441440632843125710422805006868699942705719401708652817868250814273479489008962876950667427259271730301878447215524656261282737221347907710898735513470940136847650784090077125554835828640608953997001837435411981655879071904207178537458016442568844635233189349271847337505842537656480375121797241972536289752418812549689570904497893876102088243436880041605994727654242653956093130808747475083001906209541277209777276103423800991331403694637656997485576137525171874072540591801274238769596826436848919503932040039258258869303149812956400864944409980270108798252939895995500995027669642893033624954039163311958603051395454953523902540661009135106958591516517426500004979496851217442176195634372235652830221558835817873350453710321311895632459331778021038456549869684067477532816258581894467107607601266453508015005144465149137385395695031417435554587679107975133806644741645195975260139899818264482722695571234128217430784493498557152473712744889653938305639409180847116036264125876863510524731910388586728158559244807141388765920449714775787772918780229254132648049310355820395653159384688046919448560619443620788931178517983457306304914086531067836288382530891080844771806009407744967311209404798833004257798268070132283333570707143481103492866471432600036613882054297585522885621830500963311422567363593053160199032737605969064858024584894372904731156833146342584432337220389960145744604235552767275486549320122124374627680040399171568169255808394186740908029279553275668033073765794772796078519696053344196139836197056894576468022551991241841706156353660355825907128527360461217674291603437818318638301238026963210073124917805125224430060888802635084616533440885325815542768617872262836923265870009664406333655120913846780430060586125707381610607960892663279272106517297652657266883988931802330644047220021590805891861609716313664176128856522457136910034205755883849311346932164489011288719846067541163337229316416134907768891332168542443648138210906819379795205530993688968572144434625312871809819654749611297022248529732721385280493156835387562627352401547404730901305249069326620880688396658686781386133679160314892817488819816929142544330812258432919305936303769141195444769648997964547326868653662265931060872905979391666048633940588317954273973071107272770148936449651316879616892362194211755293698086240822690849453005418000945387567210199767630044511006883831591620538654900026297035495683278419440545403932868330638677242951967988829240279685500451211530517196809446632956742468446644062432414734064231985978268452900094806830163621094814367212861688572355812554680705755997398983567478678060923918847024864762181194610215018522428192548900680781178652629408493764119018629666555773448910193298158172127237270861646290922292616557460666123690020764881595650015283548335900498026698537643147057843919225521647217321357022086783266273832600927637218707338784190365777538029378223056296528455358724333095229017081837118798135941718985959390385346768575930395198486010019803474665796938177859988628081794239666371530919925963644105974876747541944274757829162518158945858916322413084949969902037819674090109654020119040897970596363711677455692744623774724872832291105884014439631326675600914931751114518490471975302117277706816554731287677566234299595938076570623251492113822277171426223631511598841895001795082626933596121946118898236896473619408307805529612344012758631153177030739566951599925789154558509114973433667668955789918815703440673412642306283569016127276044134930460510770534100423577199521023399890807958744000956150994543092728762980281919000155799081456368204204912119688298692503765574117847849016472149978799443750587548372643188918278854696572342199948710052278443745102237869759435889123354736828512796194795103667804110862432039548968610404898932000642828872579871272478830518821219287096936708422972787848294650887532177689611300897902262651914271388960187124194785224928671774296903696887437273874693322767039589119508791623883703536068903423504789534550969491098870483468961876707520491685129053206723860969186877200498701445563095271232819277404609330296636774085321484290839336294605981879477895672546758185156597188591742520570049253548772005668847071654643557243002062120368727778215101955018658779366926463794860601719712923938216998219328875180728643694925551461727462408706212150271120542867895881363111149872076928530332037178524841507457812971657395433101122089674092986679180052288125121468568833973106268546108924745380530352974473797468820521479792825576838938896466389591785262953320126819890746497193244339983673349260045067494462771869033935500503735001469188843877726837246314936544035675147586355161353842020564876171591290530941884337404162355074007726861934146615597825627694374930063676699913429451728844931677701471398227975445190431911479096550513988967799701782109746191269811934768617284420928297724316104413604648764783732342994573589114419903433426722226360938642923258182655182661732129841277557066158970439980633625426162717380127660774025369431141460469593885674536382323193167940338013849281215282411198723092446203083768071037391903647449168548479477472734240970063178113614781795607119738418577981919414116303746143497660567685923856657315474521950032328669606382962724381231095127863194981158757280427096591836639537494500556724696651011068085009467279641691819309890829794247772063450889544852109915020368083206274141343554095816596323922570553496040858630074327225510880604533190925301848340754091074363606488648352089093962857109893651043198479610374885421773563688100441671818507539797278994709795538037409202376390163250948090420599661499826870895944685718865449117585978639443020676165575313262922937699092967471763397701341165870157096556178945122166734844879604227725244098316622238537393215930053729761410239077199244812404381549252757087660287807925410957297748872479817002711224965929156633231219028862587428137315138511523591562584202717443823137099376900577466553749738442146886122847467831071844027184655003303783788082251642419223633552697214144359378678132107213083117006675400027677195854572028354969756848863861343688490337810566211631589357802144407914159402666330853616193264966186963239167737719690530009175630757278470813821082921559732936960202251850818629791545353462899311176152779311307466057098694519221600492810324894326369357710266297483673379346728810728475243879663058060904907927741213284720396699682830011500177319381850302394559949660462124851811988066782164200143956377831098237889891205793856017209347125337749229177019316061431674788459922710645802199307244033773481800965056266400379499602843411519809885249258025498043610041761070367256926779755455872148910530377335061802051685184504831549276574477021242244549702606117801748039466898877060905751872980882988941936204022462854608581398518322927063413059783541879341809140766032125723643363398818987976938565740194450250267454125358480998145950791911584418592406421868340517300860280074661174658243767412128424507046263161336799203924586519024089597146656184841614137480329244881860946338580096686981593832531119370949734338066971410700981189203577470871681140637466896844426937194654811677647226362690192471148627267299364037560611295085210410088015132721753266662189044887882649287879728008690971239882391172712214784973582635442065654896253805150743613817218536462677939051877043695671939670860596249013097527680812264516045042601859348051881614120382628729292068562919532107811306417195853335782540751999135419619424564865933153865772407689447086686494941879247654502443719046577854261008825792740364700072570876346554211030107003015968948312356511242496956070762905499028987139531720471575457000072657381903104765533630344295721714784628634340684293035934834009207947644109664625909864332526430492114567429009476160377500240307964171678972224646821898802343893041845121729306304742488886391839521012045456006594767377890556271701008667124121012686502706607246919240367999407533261127614821240367190742031501175888059212612546669556238764803239056921235233564513197392697783345798537786230591501594653168582512853586720261876148778798087255945289981296797055817813906621128685894507451538768090775083367746546031069617612949060902764381481671961875578051473337100232932770273176107496913552766604936369020906916249652355394229544598843460332074960005846363958273724199791025116973894542030133508525940797443066777729399446489277659292319885713596966888267108597546671150255762691882232585966433403884373930616582730738521718131083500504768595489679279942092620443719801734603423708002191029771633042757696320120650940663211350835828563854605482306391888725380473257739548776277802931073967950048222495445046205448706581413556949195990687804021335070014308516594093416423649518437436779230666845809996899697990713891544150394164693848762929701392147333631958259412125534266649042448770425376709612273058938518334933686990276942533109365626147500159328762839379332854847595979908786394151310066613104996598455698043235897398313803203371594558147516431247188594639118974491569849097882927661723882157142331632275295284887131827695339770647074224489403229507475730379699007051279277264936571398717583712405021738643039609260093497737232605059334952347203719146587010908977054968858372318304767942614668968885204155364247156741351697338686149829768859096572762935644572384066407249963322251483060802528611563081405244684538148318859923646759614385982590270303839988762277455659169663471853228353171714087821957235507797079163835344745995849573866627034708754250191901458810868283090905915597361718907527516119975562196715998202239659940426111074912124035325946708768040139684563853847244888730232143637002662338451520856822124397718021116544922702385818624268052342848596848424221090196891118559699309249003832086606363947387277443155271259022681696368092126856633635158415165300695241776321881038925283828575326582298280014757854502502592060662665893332193798637678080887932107903924795435047568561858940819751683652432169662773450643291773842043479512557366382415794036388713951678742144076397836613402155327078493914434946106673047139759012187113629577067567283629939939901927420817903744151589570304529477264351966486703632069678813821488120893722208309975058413049715107108384184297193004645766408426913106745192670594223140504944733157343219986261456119467392933286829354324197437301484249361591186703266603799963896013132215172650427269011940030003061834928617570308558484043840958778262512048409031301925345356238284285810696615670952200400104288252892083738030607914951451592232753528490250913194775953069715912868915679797203447487880075701579345435972378712837676473501340238119693546331278864346804515114327584162444367418852663286569220585097622326131647262988204406405530007329185468926935663933133913795125372143620634813881780265332288894272285639091828909605229470531648731510041280039962484386342994663820602914301494886219377258277000141653281891772434041897462338445766017122811168446455678579852080041556891254942288032265973539832015973330321506415595643303411590133302406406185450838284261053457863215452315900413724212913831963274167350114146280302507649022875908816832093427194570402744930111981256208543336843820889888840196567809793199981502097448160174251288793721733016761224299041940660257910225451894683390058577979492174606779460718641793351635227560816361263326715352202589142853947698341508451675137693462250725259285409131948123555505733967601580278605291428683632287485134014418429438702615150289969615735028125637977545225462388049691325157683949537430540733176306557714138789142149423024270445756530601998527042618342479331876551894205021529942117018721137174413362742659833899572360800180536857402293641403252411998984596910445166467253824522433923357627069888645220589516513131498129403179554197090400103241646336106152718410120775449997287948959341298534728834028270436891893713881538205801856394091841524673221323790641394053047903303842666680693898776154263108663747994638376771960845135630382188440715712865526424901999030979889650214144414243007270082450314591315467510271654167364758809192479368172488819262963557568077189818780092308687220606801262920991533161922871213024908627403048744043019982660244993796845448193504844162636591387085847779512466741561012646070854353581309703009338506326445552703273990338191149383326565964341377133259277620861601137314778815513774566168109535432815517073445109279803680473144375810564651954633441755614759498684913456495582705473648903046402565477219304098248357800028507168061670556560221602789833402268133680877592829262761628809374589104831457184996139864100697104254798399563839619928882068726625384916761054526449625747372662699993283047561850983797422696627290015907466283148777553690194490060271398415240110333485709164415877885713341924795868137883849434767535207095305997355717061437466008847693464716034550050898240976694490946413988290244842875103627997722202097075159204769355509648933537140421100846686863818859101646525428720370553196917384978131464313956072780068533172573178209867653597326969687223887493771272523828497800687114951080727583045063625732458722176455122636565073487932912579209048022532818982546448146680239105813155064888769159330331010665201169586953923174924074447740154484876082873069887251867320365525025262519097487685895375919833701165192066788094633177308848476777156864771447811187015178935446021197847198308877570374681611942406859701855015929822736029079888195352705633280053763632253026063574309426576719650600428831272395676275463274610001663044053118841356059689380603437106492771508444821360225844601359372610128205692830993790826953735861335668485119472048322736531577616852968245409079504025999091929105485690438878709582064588293664124644344199393535972725993364831593328508477299670460223348875238669828217294792511775372966373593582293778904354718806315106607659736039540856868353968625517976302986521917186252051064667039947778484432062488644206734296928876773702493019228391982047391366818554852536242090155563115084198296807256517382465011690505758308048045609108039504734848242019270204539716723804939849449947143297148622154474128840040673426754999913112871910567683342458067208954469824210488786318125924565246630064842392341326083620188632516138266200018242922367187640106572970887559664889032429309743647865751672635660490385745345596007045084974086205565292029916724531382912383861989130986919036100371405249860875036125700516276890302856427228122055833566068171630940037688216347163969328503797218604833338579371150641608918016548652765046267811858767662340904825210482916314614726366747196021462887637621799837090081776046434742989150506260113640810412226210325519052535212410301999362734541725874091264357940939804824542378685325510089484192837276114920805520003862185031051294388503089580709956422984977883144996452454153436926271947598553695395471830097439649936797280926372733606529451215158979374187847323908456861967786986033169597547639528589643150693381141196222589415331434667452271536382097033124518819581250183395842918490614522982967046558478606291982615269022222899643224567582427912976463681179809422363929544292956115715949981552061955493375181160089921089846114317357423764521600201384410645538342651529113703729994279254957385542197974483360176315528575298653002492584240593122735982292565912455836066363594444223694774432813208089874614591469181972620443427204183172536053083296290062943722600701719313072477335058186209255280227209048626930630930265537824754097421384936296455722189908554537715949142745828325206728633495957794365876636565811332243467069366131031580873974797540578502717730757368161689324281377496674197552874077750240318093100523982154365400298967411594974545623911224076106649021609110286112991594736508281947912258876442253359288771683631828388031781174893795508521336787326588005631384908417913180153189352984508597192538730213709480186307578322677217351706393786452579026768654134770960997965780269746577947543583547661767042930396031072410889720983725363627578688086564986685876360471139469373618131888068246802018010978487784414746339910138177685768400136541066276202616832068065115368816537803195960309934181946849017161964577730546029163984078283583078122378343744491307552581441523545143342022512225278141812901958755187512975676665133897543714595074076027357105090580245698146150920794469003083999309624269105483840151257294362034087458335294749658367573739042341480906894514457937423640374806629959437639395183556342126846118160660430396507924164065463426738719293345302971750806628016071418396531405186242852387543773056362006679828082509870446158882297265109941542512993860639471534450770543532678674547628314701875639772651769190464971057188902278259178432491357191594647223830078616745649090375776879508852186700988857590246964605771251151150647691380947688700365726987192517130841612024802667617685215380023829785548232776248599214718806167156311087769905900502613624390595670544432022340270231152341231809735567465001828746271428904553676664886667005621326727313893622901978250049076439354728372963893775735361636640363374503243720723148787287001381522091099160795180598571070137435686023384984607373000456256294554065806797951117279493898018014198102477480773049699076969980035046931332882660004813648871895942057134028412385946956558288003357975064829583961811906874158580764660614972827239675477475973770220703895769479992840253286778032803741079157636454026658485266769766708092522135824703213977721583178001824623217443859130271974134801236150052134837069033459341063813465182691559085485182086622842464616800540956482749566924749669687782605861170331328168086202951899259450380718674518096875418128409237406333198590759839440542415389037172654701688091721535015094256646765161771998458026985775211291470686062781464782244017517189157299587604920079085272090341567662222807573486856212599266250892689122597396792147277147224007429756795500933243281976416254065675567064594129768734566410134216979573268693569589493398780603099519976912555963123417420737397750199205067583338245631390770319485186885354054829432757470066773882743622166176456342931980010601441362952124423497180861342772702775647475794219680337200247659006554099464535012754473162016980295937624695088737875925069209981941664152082537328165711130002246843449839937880800483974830713345512842525609163680501310800480747955138439663765651279517977945695978377164390377639861766946537794630466197400064210574291031996301823317805629570663132437400756049651108936612226668397012661072483755998219588892758915560193626187285892126355183058553146659983311108513081357228151544545793862144607021398646421254491291119531943941674781289288804968927651654556834310732063345320422473658357298590167204791859998630585167740378799043870301909568015088909811417968352603294849201066968882112058215369089813169493649297190262575290890229418525322884544076685516047659560261387375923460247489869084016184235059835840119533015908591908474136558317543565906484343864339182103119070982855438577191958736792425787261945779452105932053665967687017777885549116680551797458785361440541361788415765421869646244932675207176883328103655083455445571200551176403760752952955413870387823394814228512746686937413014441501800171414254084966159300238143853020849519156997268934739581912738582301984041412771538726695004309916692515526026980293533587314538039800778039166115878254240630467188859367422947766845985381030157132201084229330237636540146947333467106709565353095880385976747840399435196526913039744426715138739248829933642541648783816531681603556138002730805148812949449136329702011182685296821176047308020686406803811620502455415371618937720751712168419740910458907219770323997144595291963481531682851844560724834720047273638292702777537220796001289926438834991781086568661988164920126709530590695140461337212992807551909562859566898787909478859281148842861504060085372841364621700622834981794816105344673874102303348166485069954203597109173865993256920292334763760243149820963917146981254955335292156304948047504906987287649529903270193761716910965610349360513467808685994483915496051604580409532607535498046942780182605240082085939957207060733957058598584480583252389297883072105352063219273388638345612229228056330432681270812853691569364348628037587980687349533563526731847154298412547974979446877230493757451344608389966106078483682169389223764688885507703489947144856257924786308011007205972799734631778877017719811475003323716662157816755520011159199275017382906860075761099673611428095345001106219875753701799113406507398772107317507373034997453294680620398367269166485729217561030475089947785291279350297705521687273441993434319196217862244758515276778873970541943608977569152514355666739496634326857882998268576538435263155626609844169945341326577959597976294862547697059703367120120544805876595443468545955850554543941447974369900937980205075335754158548295943526890240942059798248647291609106572774200526381549075857107059728533335379960857852291893653915983591199997180149283151465399353745929805418652358369425552436776806452393443043264527441822398523371228012746058331149162288262448514442205654472506012696145534546098775502279519982821641703107756916194555191507636432831504161520639407171850677679169630025461878763536509910145245209801395139410437035852475732677601404451294153893378932033574431538404408950589466849971232724854143817372591807492984855788013886464323262830901181187708534172991261047577011095386583780611031748166566504608128247024424056034888489311179545279693362484781793370882939310446677789705372043238284224586750552937876842561099666048595732510798695725571331862634645084100819726835788556532285267983473589646509875467398119118468992042543430049314000861216890408360625574365227904318713117335106099816546043834457919894414678807233514103748366536172105727703988396231155875407426000279022562868010587266887675089372100485245335992832106158045309106554251319894078000814376545498498523250263437729077609481469982442088870115587377790427642002972366817567093706760712457126493237013633933940764359016041846799673237207353723666076363973630848271875704354806568484434812251146429240925807545959123431727911079206010401806031318252916917507751111296682516137756717713476181311921150941875856783743921675193623815334917725336262157989578112559314801093440032751165756719350485591627700264449185879594216340286608324655940819142361932835071795958104004892983592841901764153656812142454500606313959982491244873915252665813989502084273170616595593796182235502913722634595678613418956773529735132036527041196250460075785627244803103550032502914102596983518867313309642072449810580137106822505883387982573857302047603561965240723115841047119771309047928612232698060388433494166343435204652469586230009332352756913244474891766843115722139218159090495119033264428920130199560628183661775721089615914084491450766303875869559818778121463180154813387110094451240176695453171018495650177377226953453117818571945050322384533265392273460922450424801078762435909516078014277222961281478041268937156456038054270295059520842950090645899188289940645753449897544474237984835891717832391390782604808822461280007301140652619071193203488768017604140862395640664266231423422426445585590223684465865669927149873104196451427019326003877583646207657844540983703543995252339753269594826956735334133351853538625483571098474522906327867872065340347170586709547973171845709672210535624796649299092456455299746413770586114744879337768575016643236909516893600487027885570025423173488087954376693820012828500794075668999438071475222838530039449380478722496113494677848692213968808364706245925631606425020564032856006259434888830855965994776462326220388499218169739936901454185142334965336642673755504697455452362636544855249458253790967190732696406020763250440041461451073280257653141824031864662289217341797293373398508662407647857422142298110649226799741544476597009708985779219094822226418284517033570304423850959443956647547202813154500683880332183838193811952660552681700247969209152522497073292298856293057163878572186479994310209058636084166723225086437908691094246249360725679070701359488195126407935894690768757687832028956109617733156402095999131750689479438233246890809918438411249291901985918755290437987095751429292624619896495809892367973500186252069194165252478891108129906228212237594830889121168480075396243972919224096954359649093518457784505572882658949529926052882774702038475406322660222020749404378378419332714081863886411629794410719381825861310868978845055581033592847776779992164545251872077060378826869622594795388934626261798293579860681731383827336820456082055314473051987097895644284056691385940207109710848432250527493567489972427522099674392536157819269253662919857177568620011142772580846701918865918419869289109520108058943680003604937698861664324420024218994636198406629553296417923788471720193632997959899172841519139465720312401585468521790432908033033613912304305461964917398406211741703658335795833889658290489230391407844203586688513031549480169960284686684625212675566191933941168143691763128260464246079339563912482542566219069822466097723430550876163248933322441352227865165377314737306640352882015184720797063375638453655341883666028009361884925676808323344678338164443795190995503552558347180104457497884359174663412743500844638263776272052649427021849207651822976873156227313768226102698151446383737226404672490553576898920997046919631870992119387205023659979204953005653427763818743301967295554401134812430176241823048317965275300627936553788992066067232651522560965826193228649333883094388090621406550291978005370990612395611431655730298869053849453240502263895371569399533961340195364814615239428273646312586721555820952164233610607503903220029127076748236035162784902511308443199261018275229420414054400376632224086464433194970204659063688608815408036929539323064364279907111716494842964019187200709809429237718105473173216835182152349250501778114194007774713343061175863009466542000843687721461743359275116933985607004621823934887704235738399004453330874702377025314354412739644023705653923617441533811622959580374996138126313755262700749129921445615697133588147354518966446497069712266956232792828226115364118718422938342466645462451347750023043568087475241504665479147297517529632928223311505552782025409593399468732315468168248877258029622524432644466093062723023396692430231213906046307343358657706931127401285818947138856250061496601453956776348408038896909538271966112227681638092372459552428164183050588541422803974164893099001039647144057732871611945424510971280815244765771065305533873923334376130639378497052424091665416207355220746669732848592133725378670198338867535974104385485990211564932578356994298389590646079605960887789584463297676010846504645477714632507008139196694882028775781366978393987143259901622418215007021102127652987686130647363788140990416304260723311965077445260419847390295505360271988132270119684909567440721821279009582417103183884855775122978787582981109456480211954976462556852624801431053597770311207493232670342319291329441100203823420115713864389739230904870117471041279348532777096647375841752378081079210258291960031703865834420372032749259337828550679146895962187194954280235780248751977950185278458399225687692426590746204535744012135729633977588494666749906858595205818085356933033453416509358894844023959446165831896834377976778551243885550271736024113248228284334391138709377222014493796285379810562715433615087207383657123457111844105258557881802086885130261280845521874746528616027248187921176849744719242214826991090519348967199436232822386235997752545711384138036156948519128016960054370520513485706744202577370325231620202838702921296470172097416005726073310263581178345122804644017746855386202298424591837385072059587773844904625924316252999123097077289883385137708034087230950448996889351027146213894575379334100335897526822861320086563579032403857555612106997916954745895750176796636974973414036668434166495217211492920931432764618825555605695811715920276592011200138294270406044560622242638054949036477925423007496233156468705509641367258995883339584332426959851696713293196230266790671368412132835845586877561670264959570885418994193903569986556960630516110309880155317317474510881526255493765556630475221283563655961804113233424371600463296897604002918532523957272106895882110337911588874862952634939051709050428702443579947763552685673935913188461880858729020888701382914385319064062431346067428345890339038136323299527038092651858099177293496403558437855504541855746841214988245795201439917706613245108550800541999231732340139448604069725907931901130537683284202454345642105336425639237762703088428175941656939726060795202861745601205971568380952233008978456756628062845535590326856274496524189807246877760872271452410044152368626069275503324503270283958961564398668504944059956691743116357657270929907825815718095152424227449486352794314737706312993715558396734443496428821328877613044636867663527877026766797751759949056353369248738190401657315007869920368053722751460378425477125766401772177950699345515699080972351214814954259076914935958720988053843705615171008342916255342773728774824231740094342915652549884042775620181078712116313172050474857113265537353846933989260278142652059563048001644902340619540597651412407513242043968620880261307061853145506103631672063424900332551272945298293319143291642248255466751535765073636316001623085948828182724647618520058698714283645317767661030461098438637736516284974220420896864170606812550407130743255915489708669803488985071915504570087997700894034632308936622308032264812961373750800306759977966166384498129095689393849595188739882563689207611987449939434685706858001750654878990897181563863766226400991457738052308227360742078237447850022412663936805069286338077105837856111411712244995844622064411112306741495203221508335593681049983452138893048706835900773607196903476926328851806645118888388249337236471768189273435201450609435089332386961275038243208084346323293035328708347234483098844768507518407028639460941111854109335630664403783086408598143399559355457415422701634506069256925001567548328171627359511592969117028559063908622937852412327072174680158217093031715990622166577675107900804821198086587511540177930860655222085377002847558424792822046791880960112125769767334627116889013786745011638011768840230088318993074665917620568022647971100603445189830248564642320472688554902529241270503492373008138690803785060452772375461773078598543215528333336983607434331186748029833815566817761002264575510078621157755614574323485405250958995281289762939414992243311424216231588132595670994336704054506864607421987961345229592643840799489488492646624592777752333484392688034042584550933197657127702464631529458914707321111966077616829350958174940942044780228000130951331862186737939499807625119229299338398195302164026220910016734698383489422475180627492227109732447043283899341153149887166602320061095746660236797292472508058296339175277472920347748090047961662550680149052756965479916740089674966536716968579971602431449331103648187216730541534536733350371911954490725019984507452718250155165374767345048899134695158494728820268102370918525990135438454679860042339749314371273820932119866331758437616173803354244313657535309005316336046366655921245725479777954841137293178650663645338420023966197064834302790991259758490390882032876815087009916207957931844991192836513754047383747984547747181278505221496868532004159630179825342044288297663789672551387393118690394295491586929253195255288542214261771035821928222933748350616925475517674775332706907110652936201982217301822673019567587759872309638098493688666766274371797815478069644027494731112320046343382074388193413794899901819864343192313200023369569458010081816412512545604083483306589412972155370479616197154141760807494557582322100074276892681265653023042830760419589179193085568610738312223907492999211702821401755159646096662807589993134076555814620300014401149926987296417479656423075788357584620568727854380222558372223730974265998281022099091822437645959320389272072099685448745422709288311648283149477306516519938818175749572226356671015599309854424880774168046053221917954100854626211676764663714129299527466535578565577798781788767039859236192030836811981367872993780285261957286393831561621698584050346958955115618161538085424953903012204780715200703007673078065852088065726107213690967094846012238339323080791103297528108287507540527155090205925394998417867505874658350834701616703104037709093434599881311407639054857785285878132018119896541641336591547856072373835085563899656086481240238435034804177260534750383888524217019806946475036636195626666198153167482949559580041075045415460546300634922188361146277045585940793110708793878873734816655666073951973393006640175090658199292299364041651964045274892784148755127422662954805252480301149044894590146552202773872775543608601044118244573227137695608372848845274485887464290745916837644177558458228488329808724472902984965036355627036748265599248526762573323170464878685885067974473046388537135213682714210051528793994197772243184387709075490581223523925862510208448111009007736894233094212542955482960354027967723992344760418684043884228615275211846135121513716861838650739793763147311124787732751686953427835871334862667082941640280394607627732978231583625118330850578526333352469221182158823901012127968345096648498555954138651650122621230855622774100016773774495415773454649082537818394125026162198799371235714327465962394547377893615326084140296810280278727455148142669191804725596895001147180128882746574385701602325189720047897982895370152073653588825875531122811707188411165012489460475593023201182782779762431180794019492076653455322807749461936479363833879347546474617315099926272441839220495259863055802594997471835088768166737677834945836966423176880449156786329499499171762483591851846416692122099019828597851644883524674951451996987506456106183392489974577280221894078441820307491216617138077873905376904457677579993248970904327620810467566495489611743161041513465885194661871822795530006344916698185953986952321643631607030574568206997332159606705800143579338331930798501484385599263199053962777348508924555137020255134602531825454878973946020758812666006901639740951342917040377876390453541820999169520316648720788897489852271818948037276048031398293817790155799089197025236607510032358056384662589452142922783582322494488219048437009318870604727660438017132055299163436117120120568667393087595160008998962235659130391997709392939484453784633036761135120021113152514112503003442989648924615976261590581088162231641681424586244776279486659283070423867028069848640484730592032297717662885056025146968285721248621471244368850006362710845553002845633214770286331163058077945862912349399671760592000763014581352237852233987601856117049910189885744799617317494631461170022434830325503190114676665257478265429913762798828989174690135281778212944260327156732587120253102045164046922241553494656467943707969748837689060597321131363749744625007106905023218967909891870285902837490521147279159808999054720194987138497168437212834019353933429957871363478796234095419175418648518855397654056707852170751433001008294535081317687787112307377358686125971469898887794945880362153200321703729506756280735507291920784840492674152471485474212209721821995868408378621991979606602350098099757036815115642222351905677733015917315275613028987924235683939828196426704377697090315387745082839774641859662261509612357289477466066204134158799327440516436589390920958177212561596699146351843206756061174366717174359258695386329571203984810367929397924070131045388858478603156321996878734457294485833314072499218381225267708573759760829987685032497050660688902626430757994536683231443660371248928776716969864247953809523679888714404978601302810064780485853623536493335717389586163876181727986187270311480434589099808887004406941688281772716645052000669007946515774519551411270558668652772299690002618484347168538853663881134190307739864352778421714575812392889072454698129661802314944633369825834030650041118700556025572232644133462749774471284050984544849885006687185036136721111335456206510134954083895216389048270384718940634825901944129873268837427868857073598452212860400504759715510650007155161823205762619423369981646284290849067748107790866577518556674898081923692361906638060786476456076168489138924596549775822941929315692379739949919530071222339416176480380892037136684343057143042449041252110183975875431003797407565729281705130442758968576516384996860764307490085429923027234924852563616275945528645573695332251869855412623200046752543921512805792798148703790994537608674089225775205053142618787764580867120730565526829479739331071875131216036836912920119962736831869224046523550488907854228474188450709673534600862998043048951393903665175450335160290842651616930001136759822444545164720562464813029743810639173869985011464703903373352062991653400209142569550969719556397679069279644780879716677258097643123371380561456354214730109631624416550238599773311867972300145645053187625582535916505845442686697205586200374562881594555775130425319161293131891497628171578831006938874743277189374765858665242163750417866222456094432449592649349391118451863497648539937296620471593335665732595651293973296235897919311080426942097021375978783809064173974390055838900172890764422937468226353548795507567250980716320852075451986069917556811303647466781375975381849712362959738816797250140676246124065223272315035057806833370354410701643241522260281534250511367600876969962158612481046276873788557963248043923714413392278454559420836780350452629360352774251028377246004132420808248884399076421741572081912391765484487735468001509820056610063113869178541851849929326849262291309103006547065997914978802718453258311973468348562377672894684497590585384166982371931369376788663259344151844655881921900473356457243774378687439442136198573401691982266392547940075179179109386093304631906387380941899662080602293158893109210763959171069172054070377309281980841608478595577728179311217488795630371870565731985057740474401441422973230486506272146461312141935586907534350111423450480463472375875067836571245483613830129639492782521273366825782473559987670791376501607517227435256915376277496148960463878830122141153915952611010686140195736652240221170272783643754736711012873811009666718922069113570429637213424476356257088186842830636068573163342886919646067177043858554279483038483459872840105181003190136736455093800007241213670691978892944696130629996321391605545634571543195737303475305518460903785665180986511722506129745651795447318145956563991598214399282395866462093076319430704616569612797183217154806390163101859337716330578397209190408942026235743482734832052127044067474287719943463431987896346750797177537546706001828056301902086418255997307759657617068834509169284712172686331033383448761959020071210490757683179892600816423913914563749632389812864879075726679188368387958966199407103637969857639747471005980781720747855720035096547571987957295195502958307441217975178468627927767588762687007993490671156390361764935822607248169433260310564453858280400736273698012006257936647860393059219523644561870596529287331227701237408979360211505753897611555280576822835916663921508434119905215846504779070771901732517185215068530444650386624282703047604288368207005775922701380984092494754622941427339353128339190796753211650594353399722663734992445360603968989730244529415951217398325044429378871120791324160986257717844388402806026365169704686973787900062527762136714596038035504249035500119017669891968048416824593182093413555061810299952989873295598558908136013016099456940950181272502234041337848020417544372552838404930005770385357851769449147096177143321000942119005860584303855728493231761436922872236885156152258655201316603275920240674118502622457302974743002782242045045723669373089880958787672943939841994768943922763150604207552849075141791737560605982815948985200195113684797124478507530201700959489972541096687377258835630378368157975837757919614206389222534540337788026111319889132131604766730274134702728659878447196726120925343078700314673238729470046198820627775994086123574782499305857060618105850894284790282238595314719841963998721429841046574553532748689076404296102081886838988147964176500481407492685360287776025906761658185596887311171333069456707936964693230309915431969575620743152697153861383751163666644732643156431447026271465659898176378189352930086786298511381415995772033088883798418282112161336129772042543854302915460333687292109991956944899498237583819977103130048556560218854876928253933497165852813500302272250970738157467721328637697472713831845742330548446263170111093153158171233016377611445400560237573416317415223668928461517326273535027986965263071774188482703838030966884566512320951890106980648880831043936199407731906897685425157945051412357556388102769191000164946520353994144673919001086882068834926346614031598435776674660155527082736013123042802882305306378983814814008034042432126359817412742139203344469349667732909952895146974403261323735119072782688177428516567138041867896334065841317620984468876015197669779234975505012505708084543545018935365436417112054138209040797519674932544085975674040646335908974651700034150212257735814953127190040184107502156174786793813272283413340544348314263107452323579591630605607840813306324601524594138513473400848185364589761158916214256572225853420967917837865302183979357256583996263048644758148992236162922148449801171128870645704275336941731505147389163332318032844801810439890573587742101842115044455072240707997907493682266453943124921093839717143862962997169105008678412725636572940790360638168069231345676427465894337296781352327444730573115413629755483312923233042752582388626627291875490460921071097618056832943966387438187565179629188953775841908200286164993044966221625232127355029852163517678033720539670763221185621969503781788202635388722667746074074141772228825885853207746825017266234334549317637699975851413094975453286267356996020955559858214274573421063794753784033612445264999423952075242198475921275062381275937422630601911563591672709891992888661419411324799125581273649338786522894688643444937044001706674900194052750451918909467956902366602086816905089396561579206771582139523537579403063493736809643515930079626513135881610092019745593616420289157049590391697783004730893399255747390082134773058122525569487099080690873081409294959974067529363756316681358198588589645364238974521569377122714478850057720181496486022361962215028296586089599586164100923954995922094817947929053846627110336314810274887042365534087571920376796529943644366926615082781323211660672930438115635506857522025078396162371373569288798288245541309187638238654258065713651179542278743007967178401812369057005736482859292068645326642515929441908107910429903999430903321931355595029249064169559157246007341298866377819758380071579470390336432374833449936353084161809300303205216267643293525264729929064159027416034844164775587825611562186581466715554867053171486948664951236514090784156280980581245899497220691171444102273910956599050117294656333405718780391531615206315847437325324679898638070464628241923241924465941362421957493502761939348518460163793726294116773267285812684554881507100524292067563541366705466241155096398694394096259747332535328282857279596559423909661791184747108667975201973132021696461640933245349609184086201287888308747063004996075411494162521603833669287882427779615572015128096783723309908502336479861952726660652520687759594446745432250665826539443337845340440147489181348808835546835420045009184785453310534448718739138593472752784217794154834472186984691557610311367974466367282177530441489451817022560341855349091244296956161749442106834369513629025258233275722865331788318625511809690887310624027691540091202506360304043257910304307825717790513614253898414125137887537753541862679201713075858285286169454873684810830354084360636929477555252177287843189019977579047219373829176247661812882809459445912606331391380505696219453817349982790187564483815791053204721886705600111720907237233616716743797657759966572167633437837859802809060126304311184647489417649819502506018147734903811417203334662041082763681911193600976596918496218400021336459450788881740105905448964709177671289835223343991036760182296547669682638867752337276120834817518623922343373914335599947670719006378395454274034641038559214621785186826439833175923176702080022202377948818300543549098683623376414065246176177948400144981594444997685757136661998556286331542418602768583819401734564489072902774519034708946728254408364176557953209353578618249435950635702420306087307934405561066777829582948346768782158314429891848666936857699825395486977018166744373283494912360612188916324281379502031147295458584953783156391333035794526323235473397035562484352777536949778144964008922393889962648869533306407922264218206847592788682468318357693247277324470744002581719891476468855277237094108059806475710490646715306187482231366839821539127622483791656051119413019158623876817787916542707775369146950366706790293644560890080381867556959400925978161401063338123225302244574420398097026987867682664433675013090854982109940108237116212716263115305785690862904396373548674572255272192427534415957044573658106140082964451351926900147166540044521018708461903430772472181825446196046128377884728711023107289123197282082918508812661493880554101737843409321328772904495266106424961014610567977338762730092588161700859282578169219285447255785093154402263953690072587331546290742008437543227794258790751750055191425213728233199583062219041370783587659649762735634974684891452392209229096637536690911913845186989780155183149429874578304334540314964156151969698637975227447188949783975024032186021965373775086416624745582730630171649028377287431671993028691872436560391107762720777793010319131500891694023303213414311198771302971658790076108107577156393220629610638729049779232902437457868108369870077058665279410323922494930795466428041561529460466327959962804078170275266282608204811888589666681622196497400676481072084480656024150845371448386798631589870872731889849984764231402180848074829196813091067088139843299517715820731344651208535080520596579961196605721745651999911705431294910185022931356703362400737930529929612282016460765451519305484126440604755546850365437653300460755264566619229975519838729842099030753164314699965607150196982104810441928399416602514767974368920716858003853082063817809555956837594290648551309796356098351052769140500073482088224933772706732176080045374118495955201591611165471778748987781696879928266783294539726933834830406324919630046439317984198121167849101359369434946501921814522175676190537630548214079376594199800936251817190253949600774536997767228506166558820545556219838095041953909689863882081109972657410363828841358113930804306831893944067058195011728071895457389750190020536486421818539368801033791459779009543868055761890839867308558071162910621000030559325111811996895471073811773199167785298643363688912402785107899459319201808140737356836546488102549503545035588002728711281945641781481848217974732558273749316225890105681544206881652206689909220437977227120549391286862975045828330645142042419039591943455523523104159624668267791204311681168276474726765473722172534970460589509757658530122510698502965593042027736160157077428187477881208696298266362576388699913281198679307409707387537851858820276015194705046154660907838673879771440008595431567514034055559480935499992956333821567158738661540950375194846791621764531917386510656990671323911644436272737513142586500855473916314228706574566889309265225675353706824312851859951144688353328694574193757367439344562093918928670857178619495290499666763029737671665341085638538618259402764121788920911482835347214338881243755332290776320608889215173828450470578711777653365094296068742743318251797575513844218774369019171114049246630617584247652792574652043239118035211806616352729810823689718978405777561696491006105404561024440455097069314706605391750302433718335529967261707971398910269627902598579069238105979600785525185108669971530121423042522261940790463669410661288597527498627387014715701627460158219093837556028751429185773161517852793902129241843495017003713790731277509531549980004445226650923718755095253731389689357473934391417576166654353385064721181228752637879037520083297324117233330125030333223460842682962944693244522494622177863623065851475737678106059270762292956366654543768650245805570493124659746591593208775777296941711626555043440662046532901417300766535659956864142967004696179672903774783946134192275809914744289337179390780634969925687889470503917878186501779248931933052571746353765978911466887594751595197555642181621051806213692234997301290345712317195816592330436947318170262024837111412986780160093092018595609780291782180253618085187397449243621827565605370799156964993502218392900369402545437134078786336956478523235017071156380491982572478129893897834844439173954759089293543620443967307011205762522243686619660826164862816559212773281022854987397537019990789056513111693474243795988158923189269702621099530902236954561342466234356042317599993984528590213909141220207003011378902769036075979990778914710429036072256829563197297156502243806268342166476298096468685149854993481994036022337902832742999566834587158866396478359932176259688811696099590296949754733134866232660745756392758560588504455471979657724567968528927713127799356384504822119648999277294551864614943311899458976898939110186196334022661669367847723897282049499152952716838508750419681102456079673227108253534686098605434022715628844224733623388761208699804005127628740560312980407591646135284052326173916677936370513018595354174182377181154320651791981903094371896781703143715731300172904609356383182659345937178638986249711845682455730046494986890978890895756083646261071085271153732833230282340390246708072683179987326017889863835721498831330929021548953789308752390488772178524139016023024263210621822308723472317768558759476088834830195647229992358764432237244635912507064604233941686457073512301203649417954439738806723334835893048368302155417825890389420326113163945861025082477299537020243833105886237560595267489461005197645132523949870727273303420014509846057649938617391789795997526975141836161403794800428884122733925533280292873341508222955830926952591911304552664635976373066341422288234953747111310630297651545509685899660111272868857754881374251239004681788751529530097945569655713650376192623576726784970658124651803147678745820280576021396126062541123585481988272755488126360755853631007854240154146379212993369852617323609983294792275312999719456265596174665705636237992669484916334755829721874429807322422617405202661891163120097362981551615809151922265089758448221035753694641635599464497883593549014057433485691047470156761319001057012021949788170631195122133794720903330062846571041277577973805749439636919956863719265375317208410664502616059755193037888733802694962551314465548198367371799472979241360813249125785962578992013015076772374852291812966001694627494305065917801871170052297358465583163929685615569742113860040300781278078233025007866198975250942823041690511246033206548042564614227901405623565804806134039135791217979638013691803953164340444316337320811798531612247386166609724705642320553641105697457772352270989045302858001179152109615704141379680654712584487783818322802758029816003383911252830769634927373448795680159751254737198814943816873668126206703572879993710332012680221241474899162381451172579474096624296126989466820713523404011830242573319101596378649423639644742691353814182946458247531849374627940931204421768986928099532702591830044849257793955607933745573192824659247609358758345301850308835947072430545888832724006020306380037521553761169745616212477248832608753216432238467843375611975979389330907822501323671370318171376072468939012724848833039551998270070598652025536390565581273811736292134709701473199295590107699869250714483979796489304365412486046194451215890069137329156349822686118447057495921014894118848569318202583868797456686264634978043084425409114191316450531475981763356695179353894526462541119207641712300267064259990632972082764853375199700040943144528005367401448352083534218975929480986646291235395674224482991227917413849040166885781158338071671012396138312010899152718850881352222705033253830001782627704918846730614740488099094048004964192518852614305933942538203737598346913896816326807700951426731480275365196246893017419049935331275000010926573899245339204050000742091562245844834618572944200695841627015520350769616214042170227308037811506389516863360296010257073293993846474907535112763449474913600045633361453083304011121432047355137576870816704205922138339577676310565612927357267224274399355022692057589636993470271597984592231742147187231081514122440062673592733388403942644915122388422628635649984284558098955104894884327562507189160255710409472768772680729452062105628105288337611158352379121054247993696896630435449522792715618318770246597094984706040141847505416927349551286025406693522632574491923012802599085286477531964963475577748455506446544834120374514563669890076252233098390022249791621806786249949926198719726323503121913454131458921333553641552463536629704546778956348691896403728868924559280538890194715595320006228801000727512552880419150221037114809304114045920920288192273310537749691740583144919097530177823419136189759846724868633049424428968984801453989546183130420688079792172414449516899616711953479419433661633623645138449290256103629358917773825291687137534631295501118772074197911609726318927370293498838582730477696503111613518807908713457496362438018486453887778535661806151160487053913036257368834113130802593715812589527936697578920853810801638419697802966419997864427896031652752144317456239843295120823668774252139133951311133057038375871992598074148399432822365778529715987094911923548475453552897900027223853106899776143058481720097276034971814036232436294160607380735684933943307358732363430537123753779137337734398200025586419832455936955977571034071706350613755404982307136260176692877197899563790604828796562438596709253715912070709033384803874550046146831389804865736421640069801250280307624337581986209139183784634363830608120322342487322103398925231477393837681000255109935512525344180321468833996284502608690847317049965346392155707281628820608486672983785681326970292734900084878351880963637113952563091119323409215496113073366731602294697300344923515460406056048963497169854410308026837536980252692688911186752668325673767272182756050970035604478503996686434176775981592056390736439710908190948448261265197401563875089569176145772961278296498212013503941345407425739724394105150636338573523764617097167288687195281337512389551509845205325293788240471562561790887944280446685344245876299182710106029300807557990234317519451449056610025251274256753576694062254852785828678925944186163118092377179962311608123114466912324886614137808840910530826597940224496529823935108667753896738591642507550370274909924019611368869285419648569846813397289295684260986827174462011462782441303440969043815326980307878782752323903521755714107370449437930511700502493948470102925123481810963013584753112604058593287968700277649443427986110245184787171966084700504857708330499388518618019978342074118233072765467356643611332940907079246246941128669148441903514829707149895026875443233400975062439761038884099898462536581636349344668526593661469264717135399977080049946965829968856900609205503468275224811950598108592280743702948193447980024814533060469321600950169867742717900831976895951721018569507696425240151464093397063084742195685907524511781140462573654260123883727004425769687796865485483263623855583877468441739928945801757642104098564064574821441354829014819452185626191888942207197206694493711743895369749843396147942917313496094282475312367178453486364754592313168043949273257406267335965235059834890346891198013236075560955007404079934583190381195337675454253538628341366793353699038020228274523839149459171285297852190764321167298232101188440349418733723914840300660016953933075942830954571909784186104691659830952287980360307489477486000744854740482836294411456009714111461707473142774860403314820861943933859115963775172117203783517744055197744492968188686454456697949811423559377391715645273503055028042142334431155561190988740741619923862163290936542044075283556350195570630798264264743439133605623032807687440402462931043445187813312638954214744823108376384822814865469810918384681712132906823595464985282692988341379360859544968296646629420666997719163920252924846892634406351667334150684021229973403845078592878143722130040210641330211841041638551909902618347515576615209368787948622096575598915130652004856642020064427692589530882656740940109606626270143235887107299977089491177172813874130729374946537511469062410300791458401431519887079080677787473006660240215598162583808357454160319173410481399638449575776705921054330432392744013035780300643628897108822869896309710429756577201921479899262514668401020203497959618394178071877504843036351800496403320288795318291580145606449200390533286820942910879639833139606611819268024837144690756187295829993693380172712824998773057802286467627013213661862270015098752684276965933743064688658967584307727477376630780393260008757129793441981910203678951798264008702642579374777163647239325739411486143851910719052671356217040202479686027495385637470786189583017821150792324314577679545172742977558087857377969731842259198070329111811578181879484427181204997297667172550236997381361779050935289475428201695267350264376010398835385639921888249765545051311234000849773432625134097041217518390782949647783341405097382403725242111456992012738807115863001321757750467757341684879921283112369662809563731927780261102139686797932006440949116948409899741431640229197071132176813584144493168962748338169254177690117766033572389537828150790130831464110408920750310849068486546866321241056177150268175899030045948068893745099578518373766290268664964854424660941965410546910163472499956448793798110382009344286912094257864940212652914285491310004147674024032315097701171845725077639583104221316709939818841188904889597589297420008143268120472954665176559501825352941140587667973862252632979384039258869156792473154924724054828617629461554936464660395885427935642666518043753496279445298392918818333219811116688594511468438022373502406316860867434060632998501042434263760970513011222071602438180370409483727237975216386695121157702048566090677551532230327789258267884768779493021710238286391651028550266227746652026009841885693139368389091721229210014061014874287310660930570250443634500799441151919172399560762016270667348184215322825845284307510949122555619255583771460144251032652418304833991889329445437479596260703379286526454699563970634924399138034961590210495980509298255002267826503169605259640456516025756220174620797443141620320107665023161850141832487059695836768454634179664928740165777630658551767060059995119308361674329716329773799201881929386519568618437054677195349293577026237708976683621875912425641825033898338421190917807694669034885115066283294222226320550818872105317257001755193670711901918635937446394290839567671601861227020140805426733711773860157749997819871555782649567707554006703169120741961391024448426428231589235237269162562186737591701478026786074853106820248043019206307262457480068974933000554166258120532883208333432781192786954906097962126243615418763834123024092032053749793144880238397009910822235841771595043700966169359226135767119993910872987089478233403133560048519857922684509652387243865676237943401595479532145245586616166046792931190407052218412697150804574205878885020104860685310385880804566305488087212056071310773039965648207943095853683649516631899953670770524084976870366509627740174666783762974609752669862863095587226791682978676384172554567544863300336170564727398315951993874691256935116915576045401319461449715741586528586442963134982819553778576310442442795920503574075048852349403620755825941190082350208842878736306238102469667918287717434535692464622501262999465120911858586720703456539683106635749634457271915027081866817723116381487518108829597404665339766508833492594293509370612940060792187361452620840259988017074997676587435077299075228665668665885774689551678390264326996736094700744248219559554219126127523843775683164933125650672632310784397947760223092368400991420518464939379910025226631192600417919002395989090396116644234772120390895561152645655004352642004687324075997965396731189021944963858955065226943830230003231670132383943356244068531575066143851032368674747898640913985523176174398039596010159774583335775525432472140164231574016876518425676404471003798998782160888357676697764864031087226695425234775711341925427860479682792410204834106615645434500957934174556967759649498775146176556514086261300362960055175163172457696599627448012716391652434170198638613740042568158994844057339505150086939137839300048173357634565250552324250838737106000770094995170260963306115363380833087304169797261648560086885320914354107213937509243899081146605187479471775949855073329989074742143438347436309350912886731067098105766646770118887688148232151218450435415169516514391738151771777251201409877177491549523886783051159826864277885446307871814649654214760776370700770031405954494111139229747664886954888462871024344258531260576886089820382561697163231927071188880425001032831512226198122842742874908317015487743314280818576529322606416209320600212028151838824311415478503153771903101198725920627845814771687859033499967798754170705085350766001992647374702488718096486949312821903824425085670351657563921265731319995104379966670960052032926901444012682954984077285982917332319663958014188241116598217885631850462160607560821361678538524714186321789900251503710329702589996365533820714903917203553712975667432529854635531371308158882431482906352309067294716938407958001444237789217694009368081739212435746210320969402830950237611102812461426871527305738692724804914692533827543152223579428759986520649640843087065979758741901687126561915732866520573591561673245223076667773522454754023959202904976464635318442759357022793664946069655840585466430475983560934461088581321640730856631925970481605818208079067159332320374585588448938690137014381558159000845971915032509655879770838788876285925886233966988422852608751978440865754584059650812900461161250752736042062536343607355869213847358861733224795241080361769694753982735843135626017559934430876379222944433085865206080432527613527819338339428996341894648951513475036475980170232210631987835411996400175411625696212803031110106911965529867804697209992374224617095048780490318530396474037724421943663308717183188134776215187595902887541652391509683732804361794927791875281234467127754302862327416656965424870876893468369632577804501065445093786028682104059664826101034073259497966719765828776086655578790997743563511793822138686264376017566953519860469037541699926884674904983746904467901827012123735100251116626656195110679178818417958175684726893501942283390741721449933478723745682049886263868603389567693426384657031577345674343136537179689230873299961170679784294431165407834682825738916526986761451749406607301164922872643706273420899670316421954211844984694744771066038286387998130488171312179907687177501780800838696309446330761362120238444529968206687031260045833531249267959943771514238966242521630854056659396242152373883315989409225210633502474285956749836316672059728809929257003665139170210933343412151820771584743997945581057529260252251657994780399745298625019073141439539724175148009612479158411956986453713721749976303476609030121951398235612089562719482963457232242234698693371175647904136353331533713739389440300089693993605653204505389502360365907213672608020697384444443944610199671148949814358495094207534811386570465628367499050399731259583388937718575248420775502526398178935281655304314692189775332552399891337888807565441946028431978552887751988255016139318488890005562856435076048142806128647605771727169749932775597738061548606459771211606093268644463297185217212008313861562832170029680832327865518474891824868772162458182709888315201436908066078174745516825547460151925437678630274505626782916010498191460850832719998693307682959652313601495735839933294422380641987524279839961364504148887500816485547945611548682015678024719439942208602471503821641244806628986261585093356817346259624691877082454574172802453114383167609986558658498958278299263394908269471686808956294382321445964812087241474011948666214605826595123846104296439300593169370779038089327135948404010700271876497004114928071794104082901719764937606703720072254660661605283186260531898660261283411210122989885238953730364231060396425965279276634601193800318419984457144844981351138057974370297810167061677249798529404515041806053827782736550348780846698425919430862916138223043837350021893587294432325092023199989993230036464031758012671916293700868840384750446064239399885178356365821006913378784156209199686444872277208860201413598121986559426951861524417045878668429107521318859664863627990147562436087523724034448933336746048661858970408273393867618278628980137048423684216947468929720383151687693374017873523941880820227434705917884961318749091961489906675066958040583979135182193317307593465705712955758124201278700345314514680586006881351860156883526620557234550141116586441391672271201284289479638158577266598188686899745761212439866920389935379612597776137435879250115955646608706286930403082652708739546820525573670999163370298183200442716804952209342224939389973108029866043493101755714670741476904263193994705359075792022468894873991239203720491652955916278576783640708526146421431404728211417825031421372515700761074052360239513641887188922535798479035681890217570117021901513148299211198592494469980221429851615811842382836330288512653256997429175105434185939429771254175508063717116408777313051055765500546930498925830675195038245196261611336606962122511244314759906985940208507695010215189622196735661051059600988039281675128942337917205177801501061646648599348121255324040677689474554675746743363180863269588747823619004440544982990141650687328406244627606645219522620133565912646103599937555201149035144686149929535751411440770892322116795631345557014223078928471730129651835891755913295698563134423853207222873482445535194920804799654562307438358366962568212629389088688941777932204746738091604829731803489310908665443382827281913909532748407924094200755967497822467689630924418838340771958603063692487179260452615649872311513085238212571454820682657866170553735622906500472388971358611402437449808725953986662654185022381131343679640226239116576124338348611667649602221848499114637139083339655345099750172033881515934899982514204568460012015457536368363268265222279560872695730875090489320360091040097723913659604024978051256106621385514211240270153371942659762588968270565237519855602869472565078932098787669410742433213462489751633353361818616377212612134012154481712797985377323323362578878462966945419671363854090099975408483647553665398858499376061391508722395238342501687245660799223204673077145177977700161990695413055184030286618330686809920620875780893074555630099133871535976680675479430620082280167782136245511896318671162773537574562301609959358249691452030709342422070890436112606899056676001145803695659182867292472105838393068762584875104367035782660749391796984527404297676176631485258653676015495236681929758923947205146601594544969222524839022148908314302376435574573106332960712074455179095732015133418511896803225002346365729496206534991911860594867603799339698375132377881850271022202699332729098564552002178987355934615675152064758001115960073882510943097457164546329291190914654451356784821514774703345877565723824134221995191378742468985542721736180403823660333489493733536016841787262441728295529814016024551318178609554739478610383357147871846856823463627966230275544059989613413606819330094976896925792764794383258101588775247343114839110638714236105582132765785666493047242586017094175795446826104553101947434861877534746076314652753112014096082865853963692912773077402469719499380447970493901900107986686641771872507395111225951153153818280622845441089556030951517678086645675383203364032390525957897704997602977367377799636618818517590620733920260823342220527303281294767754700822086036873593936925631481925829307635340746036610699155309121143205127713242891000953473203599014548357247666768341431677308267375189324795515389056223997980080398696776781639882269784826653642705863526428380613716027500362256211281573809246826311591890261501586594780827900879044768755795232535703641192714110082243462987691898918466145936903728808072693113386397639342814737764649865363331783893043234954373711845677993051669025283172229717882548061824217080954879943988931079213761345636062322305964494764137899186691438128028445152999601533220895307513520969045150241155026935343281586991268602349716106001107396303521185211275134700178925095690132791199970508246928648537217619193101873927530785510439116606935974287901023136572883174962174226772619999231429333799708474705143035720293275713621953489125759557572236148815063786334115726291039588336065044644102477998784061560497018560277335957984976407034634358212001379500473447625746901150059832126611745715496531228723605932790294643094426333772753741166803954129045631763488236810016338746092088264214960645153638949669368188829444609041488134072805213281892344186643120640178738685598918328231075206863321510847428203220766676730174148970210475583002716042233991224485747500724170161067537247100569417983755611364497302848385736576686764753531438950741548414311581760073113462524764934002178918319490722429702994689523418227170998011207310216301936560846932054456450008615445122253434997914537422650332292288634911862008631032157616979717447453622728696800036695136261134932067426782976644071504696779372078143652783808899289658650712613652239906880341242575354144970596745165220298507826986161015142303632178839663206560329244780252173851484245088983161116477179896204825089566371047894407352573263348108950501341319949707726888292194397640568856876071710731474429173591808464364989692111911232439832439422441639808115066444856952746766361878901850003527246614475070477098891024139748251493920897709896746973705097230064868173881193462496008041724861863475617737823513866649605068332041283750539866617499543136052128282174439609187461577403012977681629534282198599884269149494268464700745454613865414678392781099153035693570043144353761061616864737800487559536118755392921242719919120478358675763390983248596718641467439429959547627699890103325058827658894974192327748420746483147232455522263854838217655191107478818091060370149735020717520318986176243406939146554726841822079354660101121143059806627746479031573314788456541224289782251288261604138578663179698005795795840340760284025568634256041669267619898313155108274892199982815888550566855588496470057979244736188566162652586934787973895150287056850340447357699307848809884590525785144584266177579994508726247530209160503087101329064067993114180696515574896004054644603734449051329742669768486346334495755678285211473506338479845597811810810712947923854795814252002002330848740665888670767710193756938604604108585026993313458461671288982674234248060746821572148218653878885488556154939180195286929817269460895804167721102849504531427495158749051493843874705198728271992715707658626572143278641310338653010714935925404856706903923309381918342257603238549319098096509455013072616314085670974444887182354145164094502182643537057469141313652418186150101635506097313791028632857355163639633408367474413912467254471452637167761807380126542930230656129962331085387408317231329203643589389020500341573138919550575679822190436659386709234005658730088359412620259565947527933714779836505787467062250985399624360373276455629760250838594960260705389774759401315528978949364648222969849778675915731631667242044705923168405814714380481497119178372964020863006082209639542909756988065787073880422900767318777588102591911438471860735121260580805097359341733583536671013790080245293663903959233979912346192004620605358308846889976644141922443511462453085340626978479105340682791537376341403543586969090272399856540285162782573978814722417324069885542788667888693412651952912777462554140562854584681989585031847649211731486420604724608326751317059143991729326689341667462243200090840677697242348805677847519659121620802136564924358343023481241696481660014370832626934950919738550689027619742625899686321334869293467453573487046015415890203573008874897479507092254912236426988465369779576660848042785340942250083886930654420394114127333159182221021904228847466908926756731065153754157874349807580350671941178706463971978533375452553502662441690760466105735865837004601978174896308913572713496805904015383528895987127542367625549537285249311697223964383321712641399495229411510964135125523468882702575298850660489308207446509573077616186273475730740922876636240632747411843543915781734466025517779531969113296629523472602404250305537027094631304919367953891316853554068191799343037898493937050000197295637217694499116542266501340419846391914244136254852566242733426667137451690118298749270235212073841503810473687240165468927939660109974518702273633738144023839349630631596486167282771806837975701527751296538895598112327090096234548219088367176275979332447111300175803197131625916234201315792609142876547921415914065730867315709985127686289219708388017819140149029378054719422387512269607006431153718135946707791627156121797078943351089977042486621260908336659963366827889347029642262701634862935980942075198641450504243409902971154503584268802718764587449819270637719126826474800103754711972245606753378013807675529348800304680238612293961857661005399826864443990510326630048425273809518989267925187848260248454006778448715745288404472710664545101823628908262840053942095008606209758665766182402552772517243610939386260903425090279824266284990630015991170808740235802867902513165167970981083540853700779302537356704069992952460313784362394779057294261744544606196494676314663225239467344043656984932417412333141785704300703966762540331770784681695143546071082128204864585319821985117868879024536242943837228983612264645259978241450168016889521210572967770095870799915082836160166409149592643086336358105100947097811057482583852298480394202279014125399217141882771727698585106985495986881495677216662145088639239182368471642875791098761019118792204708394781213218128891211643878875447133995351707558083226561790503347690520342936514819216801876791156008986476733448823159677129519886802937351638309725651382825688820029323559255657485678101401284412374465149277616156846777453000050513367951435761979358540843761095522306250775678004128125729789770463718407771666420253140663893268548259364077505031606941125783338505941962759256510815529948339548911974611014093206530284118099099884649588957380832305271292373965621757066937561434472605075102232779994545304297358310972386531511301407387203787183461712699781358325732471138443681194915858263038460227555057548525670191924883230009252715304012427501882669597994057666417882012814945521230117837744057990504114403471999417807955502459039673650206220693050493866486800443771615021006559124544845469045397293290468241334583538487296791791161963707864565361451037105859898971716922952672695292701419705950350910184084966823644234579451117411252453209785121114710265056509015755201678213343907749905720858676848627972887192140891710423265848532917419867657173819843685105554380712100857564683123067488168112824012491929302798649224849008311990754952901649924932699233088079399949029532091689665420889559723455702191941323617929645412337340909845094603837083350166284646673128783301198498798671984269770264879601851752883911184429390809521730834862053678392788507626449226358084329851652792724455328327238955501806901507682534181887459193139392376316751829947313474225819710782268984666671101078331683235385827728350263240362344504158163856430423593574229261849111414341087331918771453090958395785645083835442731946952881908286621148470877232916001341366926476999497470097234376908024341888926804264293074555814349199741903310658893985936547860481945020688536345442863445546338547901351487042176094905771058910224256650968264887386966354220585869564591276105437872072264203902280657987723647586634153913564422984894634567872890266869504547949670859818326895993403473522543026751661146300821732909511891322258241613951274753331196253948793743689323670927622135483166496566602285561801003076405042754277125863952438866551130630802658564767315775738585213562875659925505701784987267489321504656972404709279411762891467741343075437943375933616672995294150003841947110142759014186820027958362463722997868903737281711885724777200952228444825182289533097021814572112955520512199816460990508168349886856124412864600387858332705584951873859982749132361929470693100643661179037191967581318254175073286170615436123455709612609723777944214828749143020966446622070766319530085373677320355885923132039113053478569757295802238049318559514710578482059917598723856825464920737155651722430547404694184859634608593436972940158796938426050724949234047662073835594696866388313040815885446883136873625904120034115999305141086463722534302659718076372229294328108025968171519645719994942685427620476535308815412652206420267539280225346604811831986336441454337710772650954517334369660724850362075778068549194565050919817687198825593707779240239006050329455084821545365748951212414177674921949245738819130511250642538209874324015448777101481023179117214678950958358063906003165971071315336879153221644435628098332670819540904018631602767968445982540849375168365199713749757542348511149284778205488997333449422925115737733359076719400380454795996728557136842094460144774460451878237238965812311460305576255262972102872559058723385972419323690895706539912775138220922487236864952388194815168259086287424591678467309373567170231305918026085703525029811883588118442690786901565587451537429245335613915239666445224635893640055852233640411448752325637059636273554715889504433350323388454582123338420682249032849035294018490609990377683568881086236830047208087795258805019267231044497678643028150373369653649015714618589097160855638773463366056131382383474767246104443188899517591773783114909802451651566983806800307210823134635781457752129613769083988482636091841549268532012861565450830133006078403069768261996965562226869473982694893989438870232460761994465970261853160310922936093952484411430280135951149558480699439591980513607685523650068545907162332428148962652392824826040514323888820861875818104135760795996646660981731571129173322364681988056723422260959514717080569613419334998866761846225280121170005533604169587533044296268370360737553774224518254234823295955008473724386464927494091633145208162028554818065442865235546302974490370644857094468483908913578204539927891041096185182663504030823890459879937670083242639237279022577359298816214226061061987484003616808317866210760523793755081153552824423370906374577706892669773833034759773209351278189587478656865326503152392224134467273144135191784180943432964316536150784612448305300503220415111814986307122438571438056920025103971863170106571307665657468067548633968222939098745638259082834545344991761910361272163699073600100017478737355858226671405766785203134046900313428549715862512140907147137203056348452259433098290144573391275366702005314581243532427125363849713154781026935844886737198850255558599214944782757670677079911562352960717111338031770032811873792090606237227441169280875031844970038228171481417687885320904588829251990018401338827582773247452736689303543442612004768119826360415004114483040565918719026296914679287606317174641191626043970266157531588327209932343496140176359057180851905451446938034085007318258756843639100990716825326212274731442418001482982510787186085024049361310452627257516482273778073020809678227098029485256391578990455305883946194297963081863876512791187793101020208310477466341096752877279614736053551330657955585469117991061739648416165249300910773614678628256586997582196206820963583581971921149339612276508640560974879472029385439254428855164233717389305302923737912154255018805427322178184706184809155784296721602089978777531483179569038779117666934275422429277007051810058997351897984415565453240116645651252238541955709592344177261000624885053342229420242766158389714511461900688786486748529784045396399004665458881889656418660278519662075343246018549832726268997297428356057646076960037579670884997577314481957340682106943634465683056817792665263501975317149733559102581507163237951203208359965267190341429187012552229175902983303009528607635911851628082065384619165595288087287916287403363690617874797636407253176550258593901306239958966206141591652900414229120892812168168870944475959511989317230407404160850435988049154778984058813007461528406848487343572075188743321613363974167631790814768434076946857440877791343740310550610788427548601645291635914569798216035589400598545678459936931336724441078722737949232541846513707876348567231039431151042123779622219017761826022890794176311323796971288943461977726280198718836888040460755698188762796785146855227443273015806292499645784632689478672158477106913111743531239979945998104077886278956621649488814789892658341167072876525032404288340383316571611553033903065303018393562620680994496039494507132757069630682703543685245417660210824097073406061925730897582362183737168109616995905877088071626561236567077762801791338555055168077188449914183394400456895873454268419331952971419356132826528847323521549000285169879071997888150952742818473126176919000294695906456533825138818084025100127357797608316068639356742398540241804135098296539897258783569808737475149349295939131480795096228962673975069781213276691328921872064924072012163174346575239325524682693135636566188081727116009564103586982636347173987796866526406178648649598772886081797306181792502385145167202313120347624832029026263433137802756817121789087336424225185395451259801724694197318824254140922376007385569566702450274693414529460366338913826992873966497992771440295081885156787240781241912669998097809631491366038518125210241051410819440071715947106875842103617102859596020652543334926843258793148369479926221517182531164037470156237432307917157512409218961597378063414169578369129391938229862269402458111638601565623638968375005128169319723212753711049861782431557717108904724362215088562861085855803569807706405601620313007875345383105474633491322124811818104135375133143222560090653071771021777335674888302321556899507801312378239124112236272336041094159307425566258247076278546716417561551098438539789803556245273603367257408566551212896021210714629381810350448641724927467830155782923088885517304997700451803383301958472874263812934013392098622896014239207273899548091517505154930177391891250942140072152074605881377664354348226346560001988971385720677380219059399291710123081273686525582036533205533520637943839441658700162863916245724153878860523553198543220462202209186176604410654721937814808336491590418403501449927282442887926892184973923869932384717406594864717507901271739540312779828181336648265214944203337929272037266155684490135201929518905447846530335433184401566258759646457358910545793216985251637368635314144485677596222213696590258684797935197601716292677410035984334074063207536268992518537167368108088051993617776495724583538518506975140394424069788683302684824025184609866112874941372911432818653067831104120723672903367812553591161713425699534330580778523783473854662069777063499525432626349802251857341372045036120407334712577959739648217009476136488708887151218721111527531816608848771857448601026372808256083715179062096789466597464739436128862220269502123368132105498975481881558212395823208850095534546161634107200095681497761545662600041117265594099042720587072843496480369785077459108922612681766094176795735377742559595038392268923697892232052854747266537809477235331917818389671750523178564820615096752909005105867044526202665130574626428425667317904269014522627364592518307451041778255372530321338111390375442310819226495911618421085032928181746238378818857216530140511323598893995255652472377203815678928614872626820446665967578135019372707286318633971993546256359559736731148170528934746664148434300070655928309425469338129439596832608038978780262781015471162069890726444352813635999321971964936392205546391789329063867762867096593701194387817961807640726828762886008620614195057398075893490082525164954095871994621565978571354334772108117668073614310955139171562873488528726551412515927410761297691089192274699081012432373230255394897302855179768313042211582873802785277966728761069320384346465073440221118388601357676896684483335668289716882638115378784442032564998024644065165808603518933090781589608354485416745655096461604339757033193727319083587767369899818861356797367919106152990551037836674836284196370342412026918975401129680016792932029826880757411828037594070300067100055011338280244543974124096002345745434540524304292198673460569676401908861481890698633007869367167176700905723103938993566967528075507723503146183185079543577819950728472540735198815619602163172778288148533813981938747928969369465960570555242423922611530000557529182280926700323627388995582519634951798988231560532901470252151022822945977431869004040751632540431947332308247006283498747818148622706648703192827587391967320200139222991770613849147761195085344334406727330233170267730128813694041968558623307164790470506800142203980364634625570265366441724851079260732735581164302254103125556687580203945290752859406628250020066368703747623538464273123298697128950393017170300330876486797827386980420214211063319957286048829465843961492640149919707940077719299835793866441552490133831313299810538707024730676632124241215678019282782240055413806936937688710714979732058822983243076272349878392793846130591973836431572973402847012008508267414401461412184470985359582619938601014159964065375752897864601236749573728840546158641712903936209946260483816819263270870863806958018512042248444206220468763532456315818204641456334423745029634012149779894225654142035787733817408398934856588900266657830424111599449722102769649286230143450168209028263963492470656772151319531911090614004079961260305845992253767113921019320489589613133392222577611096698220037985109237321080134908526687242768149252706027401723104404568108975268904258401773464876979310578718736881644373369135035513741821220800298798372370881739837646337294112171646299273096031661035702199241664874427893254745921601719926025927435338175419269985020986708118089779086709332482093044011098133152634559457131859306231287327504544304032084663039061801432865452427657166454978155009407519584321381519543964059985946660262802737504722519953441844290715933992382524396232965594984278076267830316119744364348681994850446546282810809943454871822991674582735498682412342746879972250871995482829691618770793986971051991771937362664773578282116256249023024117904484957774277760167656629413238765823071874627832172447506324870433344609805138898100405149785353067131304098880747193712602599204516917420341487955820326447138839932267289088385715576675792664398233661002690268363510374877504519884161228884668696969157821752471363365645877463649933889033704936150373121464706028567635229532029563491324360045665904774720269578477052673424789604982840050720037938612951525960301219543545023350882862930759193574615644224935507791514311284141211018685225346126512374619334414250080932285009541596696332564453269749686847570401019223263805318559049182734469532175227395608463387758704755066931387554404766885382032648338383749855242209483393124306667330117923912980691530554819788397371524928314477551421697772354159819851875729172677597533006707131160459434781363380598261631608151272279152729483841297879190233870442921402682306122076985776490882481696856930415203608800216267068731321559475178214343460806700482810251626256755488282239411738496580609640600411844871093028809596813381563631903788944640329936043620320870148626293804930650403714329751662308676480526876784638217022633307885256748961358285408031319639126344302402424937936088049100589729437130520711513557016478388242711574969199714897287015599401773202539336988951743387537012238283733871143475914633412294152353557094049958463789279398772516296196892197170363908417496025807010239889984405521884943669437839061858019485884895564432822420473337921911444608277728140709084018203317968154881161676420711797997261736870544859791548947306921667139329587675503973683666521040178375320472813897246119155048977697354716976480541139987832584632387870699222093100345714400372885170856997000231848097093526163637274073586127993139301627329383030884224187048306299227751228399209445935884058159135269747311414984175197407835768599436763397478378575405354859778602402311805525197046935438056059436034539472578748353610255248253182824781340546762805579964119151295167784994118110013630362657173762984563916484008049348487778656745445933020634173821191912734155628613523662938354009234828305927913210035751339875323879080925647407421673553890054702488353416142460841575663956239722310548931690926158131652508231961383350237227488819869830702630250859315184371518309098648160718307179549539644921862994730899939750316754500831229964238994974392302023798648525433584763654572108128783922983142539209272909283487211727132561523422026921742239002830350546285635336033487355855297237691447862983555563802826395844310718997908880483343879494259550183560808426715348350518474516335511999200294932308556173785062465346053563716694423501432069316943153530122615024650208929178877355939098595560866285378896967114454981703636682655447849453167245832907234164047720833792020170049541160768902165480329948096075222957905973510586664308968941013739821426987087024495779581849580844305707680194473945259560710482954871589419752119657810889892696735485988182949831258890168139253534099417838969146955963901254815850753655416944493113320261367999020565988425403310000124690828494787648885622805049737602040314106463305655462107464763925906983435231716826228732519085943955964799671637678550204316855850311652762857308067993153734530583363711982316809277336215154485770184439715589743171934129037914982590718214966125711638452697551307063122927647902398563078576984417039882009029469214939635491547274515487822384365493891195069026229858958356214087128409342508355905266688796350250570424698347856939183699088013532137397406482516521712501537239952744017430371235659431265402719177058972390380555601139685341101946308213510890243408455242217039169709455977474296461662440399197357133565716510554353519956869548458167466134735236540193720498129989113538292807566415343397483685624521192070593421234709848235677521970855952240017110683324230989531811249552491269346638574277650874030708089636246782768321484554836425819109502670170382254215481719228401941186378647838439401141816964518952755945515118247203879119232712136679910931104386478872430761949745530024851326419020485314331684894205161205328209824154675690529700294477247489554144610834180898771492921740869899918393858283461737792068085619086474248829607356821454154611440463166392812167321773033099246286684843677986608123202383669987278213179519266701895427219662094182080920493895056933383415984444980868927530418105337105692611104047272070137750432999342148001190196323216074533483871577935752422117767907622363539331949170065754578145774251906580630027474884045094616587624016190785797172698791379583382011079662874454845365338438066427493061155615370317460438387391365558880952360823469439179983668335504899350335841475696201166072215531409140733105516003831395144302666637149537727063873029046394343835936821688986726475651353086996357807647113684816561704945732511102210504623899417507591018048044262766088398090429112670657909943641297415557492552941301863649197721781490033042707921619587688073503903251987172166723362451208962771383527574848984377173653751588704144592628284344063991874668383825620763993441415481143638025738138301030692148550702469082350388529257646200798996962390595087672483463472498098391122980456969025221534137820745421552964832234520016142097361389815072153184101436806198897409701433329028356774223762275663600354892056164619609530333557790637267088157040598170856939038928391878044072337704234862702581733105599888283955474065610358128384055409740057204522981403944561378124122812029467942756096989331161213705687537363113785744148114433122443130900524736101023021060550893963596765855822486146294380614924953643058925185014347780388773946181820035717983933607326929233216517545307278615886748934605926553099046799018370686451159808913131661692627147276181325860740328331149436610162998468044546042248440767974250326925127516147739597089464262103940271800814576609834953876554572974023373336481531019801173129858969030290419684225904382408311322663284455787879375385953614869668382130724426016979072509253529030132231583136881889097254903233887553302010634663714634731846821071939949606678488170522207244623297451915660680135763841986819403517372789073900525242473327085561347160724364297063863134854051816000489836758919772845815912448023304064510558649974362879196719545045056837485437350762274434916622713948377219689512704413489630654796901330061101452644941046919054417492586162054789580595476483086110786584853728587287537883370068422472772169293890842717010335702024569892039458746197536282741674712187403895384562867288198194378354373619671271667488379861468026082948779286354076531295868585494687800105535849462627423735138801387995391887911106590934711075357539263496972236153310346791561589081103042807557781155589388553540024925898243296531229100291810747458074294585600659887550409303224467747315566660191941143242284015503992589564728425017853986830020645196922432841819196651918331431340845226638755759392344445229418567554652973887809476461360570451924443254064965294285263112167889405235713708130497764082173210347744362228320079995358093837982750823828477343754967236678179966379876330963508395270423290171708832267608504524694914969359993928724798470230569619560215617753220495684295773893043883591278163023028441362657443046477456681129611412454700394229398460531040436750937286191536123036118107832156010492983828556518640982268428720836742898749834884509744829066339692459462384692818263080821067561530438027406305106455966119195428096087785888859145520950980407583359695399200990742402181170385261645004113758047014123562789937566329240499280991325401747134913643334374434188054127026841874292974492296212507409709798951838683262806708182779447124972586511535653315233022514687385454191571684053883258593075906483726436095978834303131742312604285346967533322020106797328884423345414088241248850767822178900829854000056852053407166478960239388634297154405387303539678334921128136856548285088549153221111478891662828876217251457575839819144411625518154147287648037799120462548972885005988548452069953806859044318780042677565424390689786032829862336754417179570037732827167189963016378070799043950101656835352171025971852700777285711042886069291041293687512506771196130350059954712036792753013251941266060679915151728642797198841446665267783258953756701821585210775248525177868947362253418784982677072421968156441127151639859443289425165292264081783561123084013269068012685485373674237840998522038518206551607109064249695359435697724766309894254832772582120564083183680290394583825289219805458058868428389019548211864603064283754288151485586371635275245999726064392046460887982279771730407989292824786692696844232198768469250981500263707333972809172276706732151839538603117256121529200212189983881890164825951057353276257889323517158270167995995199370700079310960141088058918284369803476845370864579502223954487015007593199019731435402097106013875307453078165996205887025718950827152973212334685462853594948563611997960896648452424886196798212760727833893618882881519740466606974593719182540624477877050849619516096027014645742994902815723834781506952739025797843315063256448035387145675680563942971597644139317319483929167564570260882039824897447971695757811107350347366332145205112741334381753600969695224398816770380146797635574246659258506836489586140232823767913532738528843521635058954288066497662808633327641525354069765797577587958640450054763789535441304304769810348266374897943102152937141519232646710585177733222445963417051493601592880710667659258961292199210138278325475193222217455785472392215961743093800009373670796440928889555923278994660650030369402915219989447235003504725533092414129427869910529195301434034284964597466331865226919639444237562990538820810709053746701847959887626679500099123046610130742146474837876096017385808919610507731470643821362358656831546057209226747273242202384132762858279652375758361423147822857578222702983826424109444718003534685109328025033921243879611518503158728720716177416254335461738838383767503898175543445382456184616126605327290559187363594266184280365283080016199196147228494271495352116456504537274407019431900999505057618353208069664986032918360984178111278887183156936213585265131050540972057785198131052545981500993065621999234525509241107356780916259290839460850045485471230477463302273932260486780877366688911906822886176934076496315184296989087865461846037047772223317966703600135819629909144606847487918701762179106734125647435548841495726498633888268393591724029764152964146911794951572856898125781709305358768771268319325139806153949062530913499234143841804023886519828070220547872671516078581419182631689705443847536748354493658874268646974335004785287322448919473456947693286854649269011524670895678580139665474325685512154034368001444649060187918314243608671662286849672053720361098963654739692833671484393813758904437532717641142828474528378886264553866499439688157899797859640489309252539337505464855601722955757893235328917892765927538266021325799886651749473294159895846411950320330020441564192063219405391153885678549704781477153776044672967389509570003997312315633836667034064543734484288292695371920975300224502823393315028777644476359560730975118726283199208986024686979226175907688790386042487421248131642170644171963886600013288662922314857081213630757862822256224613970191746609523207284593230781766308617663330668548721494273228998995051522511525344791888846034268115876295438831801735995230792179086745857696204525407065651701935069403175668072543390786477506377897817091262207177256347793671382147093238632922974679441371196751452113121477600595986923688621347149890801003384263690511735975527472300336671689596429607943613672207031839752846608597442170669273670559518945752375674325886045508459780122109111652642911744342686565454404492934371456524908797509687936662919018143717321177790558383378513956488967103942745655684864550127072439746461138161587683625633833238038266201386301203992241153693498432628358563410001906594379960188412950565576308309708349716132720158333747852074493976686715977947262298182956648954825047436522953546752462773295948202675847496489231482469798533196377564439260740646892538736721881696428655836497052024627161008874310039729825317561105511176961070295527018500812040161438812376122219183280440994570737673409840408281282225834149782251407189126608637709628390403581985784039923757925918084241223229443534758631698810995765352906477412152602977377168346791109984131556079532397669959458545966036549117031263373084021644572535723904034101467552829925106094757270368496313309846189497957684751086561427193640012530726684109153465767005549280704584446630151692322672113664728859256825044898890298863395523374301047987216803367490752271506873215784378894572100756774247908049352949783636624713545583179810003829748462576131984683915814162272607944267650232769968566962010904250214964180641569235652838428519818172746884590469200653097134243373003823120521729486512940729668148217244136170643380213873344232246450358788941633967227132009323780918930457920182321555522975679755930056764040051879424654679809856953766472290688808601325556342184962892986162094275684221259640540967519683650347441270261139481947665458185336478622866894368162407696014747263922475336315787548652285241350188522608982320524154005199246254815889669207608971556686859615342447060219453841297449628956171602744960468690075032475395537575253054142696571586291495876831904417037097280907169936875803884166151563463432947510516121847059828683710914472013311023046388759379611949261213016362458628346120267947866294311825381420552762860730446213881128304639541303118371721420998448881655943808386086586895123807987763290128732638685774933902100736807615364315549902596301895198131919281269688450224427520087920774151165043124229596927687742661241074260141242473261182689589010867643768385703255601661019727085274592252941897525663158223850903280564299836144216737824178018979028753384511694271626020753101310243583595679051837298615590235416754538765479076579355446810892820375521241139436343764109280780550575495763046527920833481250664624473422712902647466127328749350538809788700854018044331578190053546695274750937796862638612639450227865716938737679408000661247106214433732135931982879935651127898529854376998344072457558095992305503934782686012386090173315079559353558990897896945094940750985102647476239555455668308443906713775235270208371952480604505419833242444607467166432565436292793238337528005088310631379408412068336805911285902517156340503860352922875825600386354751848612725754257139992789914521203236983435227365226710599511788935525573696542717821283322144392383182417324213699513901638498710098485402418684950644520862358369584700205757026215682856758240625056571989825951484622549707580685846980440479187438894467135753373273427056331780185944309931319778097194265032648631511417225681832867342347417961756172009844013098066459643307050608747192050908422941291370398112586231005125796094412341925400649614736988033961192984961608261754141168468949699226042371491596610020473994956091050889298847057610818588131564404580734865901193333269030130651740049980105265812594570803112481120975625513146974355666164349419490551355568947847158679236011058874457037021307669777962838466029707165914792421782965282905343036337023170825094276147466866039739775569460840599765659295114234366781880841963504126821159154030141267298179600733943795073325372262507865514574462468643091543225195510560741950645785652709992130677789087539682695955950110881297844244585293028438574558916462553201445240045367844292245050891714689206563283540759561438977675441904461870703704494230417830510389334141952366111471417782338495717523056984064654253789873576411477707579587107760435154842283744407308477880626731723413479175325921660753083703682285114066720688181623730261249928833977272727101057770460809331183223983887972895903489976957980633747421508396858100481089797468690967168178404768212386784510378197095942942891754204318114630511247246994390173084421729349029646450923564046003030216418916528586289111626823100666509388696030071545943556059682379897060150450578472449574121134627980377485398347864238756016381596079048374833819044879088705488981737015944980245426320079024770763077147956846084249584447645890822818431133653645853173418709986019233225023380065947474073203421261990533143522375005997675956326053411777516405271773257559646142066226241186089363845719766857826847513594224149026503295711372901471030205207476550498291151005473959001777660780539035510491513095214589787457040790053172851360387655334566806305309954739534574776821424767130877290281342172276531998607198230507669552407053397991231182418560058743244571140690635782201644588834530812061909317921099514067044417091777325837423922010488550373498738947175062956721374426412648031540178010834229042054714636568783732486366425167672705624227485481567566479388232444616556205945595880502395995306755410259933573570575645172636546020740113855304595782238908712723257227440707983606634745496525271208296250018391031008142683284830497733135060514663110588267171346027112530302273507218482179423077381683603307755665287034138712451336417493682051782262305988920602867007281812094471260601736656853233322629888693487663793484380448785912238282273323691119249448579553207060433873075050772698567381484438155144801038557492564846337460984954771932989929548625564776770793187593176379872020411228834197895591590297697143751875010791627570727799365330300512646106279425234224447649959537793750922848203423875563024417501483888528457982880539180898058842997147306678763320915735423358275767512806547809850908533195667640875811330837554503745842515915136265238029102378026467678431809614184725429212463003228706734143229581655294003457797401704957526066900021706392230351461816412131217801132084682697124853381089162487966790809679168825165459599378053628116976873037704775458496304344069146642512537850235803895516739007647929008394071779515225043921577128161637166788780600832171393992323629384539669230085021716144000722172301422378152120615618470774892078446338183083918387794045623617039259997576386751011876948983283703277004677011331991169380677167142436533374672969491948760300275257037145692899861696117438714150845006530825056915885018805371140715445243374368420038839133453591300060155040264114329282830732931431946902264487481511491881469195228438209782168836613666624545302973770051533784767416436956284786143879813158819229134739267648287140686527973232451676110049010037234530307324440365848366912529631959682602195721805714726007922441251518527497529006714614738284192215012673428365452730301241060716345230238570349261054216229099988732107461284540169340109072555686257439833118643644305807202529771500764563352373764143452868122581561172185363403817944942280845639457696788902634479059991780213416400767415789997171784721546182792466434450024510049096451439481216746200701437658051397261561406819095653958487915141766317363396499874560611637414541374354677792815204312380137499321674216517653173091987966904349500071942299902831266131984682119885038782124655196134809149306646977394070961347115926496618521317604581274888641829620577677966881297662080928895768919282419644687825477337905319143208599347994707042310714187718693445848807990761792776617751053164066944207766476935385692193988656061580441430378460890044506973950321996672667560252168124887379658856386093438858458935501486683898813138413450089917270639209974821744537522652262714307436507786870493785547087249398478039712364749343469039882793705832590516039016926949242258872205515477839592217964038026859447059145700278736614133425640205356033052963340793578996805891334460776692521540835425058507577565737619611334584980243338619350718385369590935436789876595784169845817779856616229783253983615557879369651280603365647461272490321251332407333828041288851483664184705083715753953187100707737252815339990973692702071053768711460422838011424725109709539365966277010609388029188271433250154466763228764102617267291034211195517171771290001541880443373933691046854316679178601239397896204716298091834823867756385290557744586098705631186308852129350104328450981580560006723927806741313781503962070578979854058750402981735210393469449404484547997881570049431591726926933578331884150937860401309454503795694306956782462296737976782082668218810748490193238731231369245355669313472490532783298303939453435418069809915052250228203751044624935402720888838355756427909396451893641841952111440458888301577692748033125793515432741897392125887594897638384954010753199332410491372979168388285137030597252553299765918435138641008068616543679210662708404879589754626573422671672923738134725936689377463373468115429542161904952056755255525230073504007064476803513925103298462908380036556629793772871154592512242228052614095845299615754141892327103409529343125212246379916711020715873687743751588120908239323724283454710548011556486615024828676176203969955434796342549841241371661559947282455081217959393754514879880071304057823305783110257453826124830242050809622640918801287914219019257015399824330569995334805588222661547586622396790049636573211891313376137254627539043822387247181223789990096011517086063626157220616594466472638800169660353906507207727811411527812294438629604048893166279549227482633615832206434832494505544092597267224525636278037748619723156753012226129058677331009200971270104836312923829154259391927106066687056928638131501467505948262325559997610610994961434604575405641987288079745633939280117653197100485235013035728127294825260506836641641689838952748236149598549310963643780614295088347807595027688671503717890997206131993892058024394796734175329512659129645808619005131575840428072242695229084087250429854631541373286313330511463424590784300104017634570154497061245878965082060533507147379764947649809485177672994031669179899120691555326150917528177577810151361109714818427231260254816035643330686602456064857410861044051378965356645521279951974088550899735650648232552182714718968564482760343880375872161385568505917207115672438996633733377650991355177150205213529845535526073183409183208411693847816260025796307214363200217652546336884796289185604024825632020283743787002709309998693856523243550406147338490420542822258461397255562599625453823002876800133821476537972660579750275945509956086318911060321763579614058493108861422792168730216448205256248276952931318775954973660282090876864090309034473694380366195692459294661079347153687501486952786386469403682721776060087274332546624783357665993507622833512967692520652903861418529746120108623538083455378682599944911500314166481697645090475436184568796799868656098976131458019631287082919430784383980401583957090838051462096297782973370669037218852466669479461373103542345975230308347792330452002441333168860404088241165234333098545897767846651897274270655549747290339859976783303779974071591839007125537875110778415274436717630102280038648488949875490155078661290692412442497455866796924556836276922674168884428669438579428811924601137150151728405512085827754670949680600653895568995170527853962953801615294313783076436782075619410134131919948262658510206583684888340067509529326934675462250187025256105123305750493304714871201557927181831982232966177568964981537812694053053658167823731245895761082102119462530416394669571001590522399648457501692648580556584352788054358422002639936859905442056756483584430825512546985734867017228089441825522347920502246470712757515292864441018298189280202084249472508190224431819976779087225721801832160079089147460011183383909554883026961192224828378611796947675629143739200250649106310645138522475084639935959593661186766890923376989370300732980067209908783171088192858625058265983102322490399705112101718645850435423123888394400559443732288124894549665107737250056117673814384593161331219313371245769623875484109524887863440759187468926314516191728485988241047800931570851954978761612763013914436554548057343723136628931632535621941954973776834512427519574941284642770259407350477677018179021108012482752699769872066107867546416246572397235838195201639458939524349490506479108820056688065548569221795542858414972014263918531311142468326266353563405458852920543247171291811547191469596487411622535620083371947548644514495606722559912530426403888493875661783937847777291241218599521347037588081808273627704716162672792573854694949165438905918310151259158622163706108819718347328162634664288181003815301608626023694872673970519109120911151845547594573854305495430160293486807711351041061916362210625878646788170103421475909845339640954904339584032533813437761410237379847437238838617097960155768215187425436271228441359002520892471945942642774306480016000659474569499947048981008212990026923823299529151112530790897426242624216037100347468086186416396297093978748961145507295468782226806454852663665139940777636635301670175914280173580443205249286350078033057227631625013842781195651307246131762541910415577413292126329631019040294823983112566555832795835757341570120845534899739472272597070474180710259740654749370080432361880454756263644446343111744583520861701953430344593545518912228668028130321775791510982832432154419828458755854225618162712017632656691857294158889357225788268661771814365870384257551469966364769688012032701332470820535506366451485071872963000955728093342486224645212595966864525546763798839866255382877959598059457992071908034536770241080091656446045627803871456609005993168394760449662727344745927269512676503167134939577765933981108245101884966158295839848464403427701795688195138282921758115776131822900569755824025464428465292493753407291789285944708049468715551918343258253547912174240560044268880982388498288975769546747133584654502741186808520112208775510205107049798376204426325811874764579789190191008190194809020158880756439099508925182494003890568393164086825878699168726669651629739843412654114079781050354885172518185099097597717392999794258113972975672867926780208673743196207762588238120767310590610728120557975552127613648511781521192465092737209705147949726852584397253102003131191874119683612135413312531317100705843305824774285268303278760403700388107774096967481936539133798824128808543009930614415253218298336734801577290187927744455013380429037869863836154354900036608588175544725548412127353095088884966040150666396969993760533251914774589168452116466406216965323536116844755004948241645236655783743838748791092116416263585800179719572687462958701257860964712214296216022101848498303682354073040887835327090394225112020583979144108949256481889216816952196483035774763644778146495614734709094450211605099009266392564621438784300513197574562496916867391003535921954557644090599586672825545774996272478355256688686744084288860549676071531250105695737199999175815991617476079470227377033562766273359672285297560523693093863537885604219850319805572680538745882666945649942666343481161525477293213258516823155014448310751046544991012014866326283828212368731425712804160253653280164321045428776896136009506145516586918352904040105268189739419682033797803780254455563854848704485917624976895998687675963700103091482755945090107677346952496681210762555734856400357656641644967102374119629104309879054913476713105830913399238008169464445756059195086679711913143321129733062107792517385659345694880142988629879056594479895866837527888958324782236407367607806185905478969600864673882063871399225243433550450650151988174989523975403043784538378891349598877937834100152769495983895104311835789521827033622640393248922661396640523091787024847431910476983671726777888620163688254229276736945129875992883087335837239164738908621790047888721543247499553321755874331646376734997490402214462335688673044167326347606161393487901756000845035175616596746165410268370080689071130426076970366183134940180600078825357703901769140231252584409132005906231941601355389744361390384189450682998811215784886214567277305564610267866254269442259812835195122479207278207488637104099006825715152400701464913140120871164414216787630697278336289063332935099911594974464757456328549437282867296120296166526853064000332519434181729722805728553210282453893975302507987164223628335226530867717988252355884259312421489852525520576661602416012199667380164642225197148382011344145124437151278440630851492658942418181201861627082212893398359639357831675532269913662346173279462771809907430103534810539723760228891070700861690796050270303367266704867462678587963182951219134061390560230130727270698884486078903513736380961734061995819450562887467143938449145186169099671002476895837179891648275583899446494010483109223941960382654922047771201802606697814524154710391282663587442481530536892696920092564676139618650225745752611913548215335722750121267491076024058516310397801319069363226284689590639447120271830265566964521706567945965183364624399520568625913134057196743123601035474252951436775743863182929694493988543565894466486743987038656878360352554319836301868239923379152305980369736162528873834614693069871040438134230077172918323660855779341002508872756467636938772204699112004164596227133127659119936482564049381008675180872435535679498153511092881783263585277144556026142420788588628526580972524543156637424257930019960243512405902261725471208027922622647347159196744750323323807997345319243040735653752340735024515114113422659077553489464741180433904822697346413334922481374990774176902157028041167228350252744930832151183930319154824011382913039261229652067005807724776413248556403061013301005592079793096103122268534166577270479028041021308519244395144032262964898395944642318908191641905267678918648181460778589271793066697462785251563397837365395052627768873772795723384760878445345968705407095225177720540083580255237834596241373669929094126201936713151873569674503754811268189731227313254395749275986499117276032091996790832687531977681914588176302434135879281806553508853995651036017452316505610019366897953736777042194514756596737033123319216052990801769612648869759880489439763425785125947705947792567016608023570965325058688201498545977027782243010562190105047720353435162487954591600471001863114079210436009136943934946076607017555713899659744678584125356220336821203397551647333962014836908208080948983651459394253414679177781905820926106536357186707992936207516142885470817398222760445730527439639102231287500543211177387795260371773038426908118441896430577345886196298933857585967460926023145526808172811017716484239820392264100258018283773379132787150632720557556738427532319305130589817858916963144568936342245011832888717208875321175511218547647204503539953450779921402066393620712825966429510323839081539642390095275764186605304478622695477488378359877300966010408777841499827654534148424494623208714464511406429957792849670100127522116215855388756140825582642765548042238563806613384077247428011815455880648225231792804296940317505439507697968690159377010772700923572181444826047683792825666429146084848243056371977687638726428829803919327667009210438757424362692291702028528366875243062591049622289672637540317673294152605627178373968849872712637533005060641179361700509290485074297578688930937002429293629760070505359881139639492635340965961352234401029841726519976256414514051708747632465377578107316626093560956262625457234280736710654519991916086697280873855129431925270504977956385746394461091421274050711780458153972479786799421822401133591866095446117854691085805849066989119080587163238022819903899775617758271117897626867902720797723957657801043000859121159516800870453052871432435791292012720233920052752388058519176744309392785146483214789046165122738370509026262215769491285969570919754846977913287781993741171388809754663469685767074166392747605753402057402348402544091756252344580124751081680111812353674152289590497603174297257966598930608094745448493681432176982809553500144581510846177088581898379158063034267056067374109785874734564619460397333270506482907772676914159418010271729163759039885319757483611842848846350923722507513363260285523376049932328668236071833397436772847798667923348254864551235614147596577467701736613138162390525281204460965247860982246731370252855005344765182980148667402255899800128891557253501920078860344983851102595638698975822908508794316807466782715386688208960163522673482457124704466461649072890219958544726382691220489721842333754788752648148607506034323220973621016005892032647111711438755444315546138959715761050796038031091157359715493345014493607655068206596577165194583124016163854386925678411423620897902136190864847696397625754315590897146688071818025090962224202044241318271887557861791651772394675429676268656455271061512272180373541602953700715421813262847996166936878595124841182209133327964292908231654149421398754182268780962556236228563554093226671366279587853767496842806799989173848026241466935409039756130947873757955792561885584130643605634527712346106437338408155913027112910507139805602739418430442653749293146269184786064005111254731039340059388679493677972414821736154333233450071660353300094039289616229398934282852538597185299366313723528344533304831318432603034357343430034723282378088068430162624154069599435414696704942685626097755886663578702514398397269524893132476241760346792647061466740375417849453450322315653254864119978616960151021729023228953455952386615563871545456195640841419770196444208778510072372608765945640295438694928638179853540104023594580204367774680440609483210095660096149341346757931249623868785210740692967561189227776897198441350861244538779598805222677303420952358778743336697585936717633295936589314761726502094839870654074075911090269188800760745250966915111392210569058836007390491430930448181051235106016747361000458070325806776162409820295940125908986464030852345126331609736935984051029546501598579141465837763993574723848900638485983238791351175488973652407692542241375117637698297532741373131945549839902400813694821064386859712994203202862908411702617806144472796866130685236008745961775302974723072937999802610785021193120076727853121499768179630830025755389521082787612933246434162998357309906555713147364320978171229678962719262617382568260626542766522746881862965484176701052632376532803800150963719517475547272135300654091793139977113461643650340825508786030726331207309726496517258796833480317299901927831006915664800032879064969099693794003256779921634999561780005236033726248909280240327825515207646446957983425410826629216203653903527684406837844579943422980171778910812898877206007772485525401846016888371172831529330048207943812054023125883572610176948139328964760733580115260098129307620376529728779951563332771455597781220504115770143403945459207401072577486073129477662957351798337757594303399184914012060631122479540658453085896923218862610596627984369517155932832143665623307894250305242924711968972224792455791496415796543122886421283440480074973080981284984536476185701359472961444601478048080142587007634225077256908751240052884491810488444507873325073235559610512162490396870188658588818169940345423651194729297202672006459495683483863932363140629713557480354695906340523610274546758948964323865859604702365419789547203741146358547442266013861023778779170382740247601396609297268455243746887540294745383918605193634657342240279342369821664561377365150575047779038649049163159237065603422922077892366584755299518713607541329456286980287096709617963626910159731442921943662027395737052286046304849213411170716382878243233299341393035160438150929458757758041469714561249557453440423920009733158856672076438608278387675703999869134512283935185948380673410060450575344802278831678653951741645992501522385687325391238752119349836883132456315623503422037915142004536498268381299154859604974084403749825555625508408151479998978299835137023891626476142620149659706977508192379577677793083321036205189194511203980958985675386078762369632630457646925188043380601104987196906704700512558856008932455845386871096128079772748215973799566983198696530783100216203537862451947459988249655309214672121669735870816310231478595900277498589920835207912022414690045376903225279787322134313038610968089143418278551965066118530707424511977492244448943776706945089509514798595009128328354326542658707553076969119391853597638335350906885741787686270285427757472830181667146026967703031265261770010671009276345301973157023873835971685199927573133657539601855137604259189324913891307124694146225345190549417255822143684690321917914654444375111620177843878914699062272067240095505517549686070822954812095577352528764959090182668826577659976433995952542974805866245604204758323649335399859014857857629637767057633783827416894981118579447999080647590390588422860658232897009665715330647258370386617013476265890229274480313638079134258413485945230260839557384628976720692020105489005179145787911679914375096409386642717729260929505224287901394686477983148719797474816767492495145044680176837516814273892106346558623073248259539438683190539626152542030177408516895368953382100730399800244682453639382821680986062986880174958742858871939531654436489807883243863459303926385173503611559023832507652580195127550012617491017940708486878727021185273677260283737444400292803249254287235734767272874420217602079506860356910175424137850649949381778823939219057279168471128118771351590588441426316494431658947050759799850891076361390120067526587183761642661737882288165600670688790263757011529344991594208578923331383585315183257356067894609376569322130694993361400060382205229527780854946872742596842688012745847624204409661469820996830838566417179567589182759941374181658920600951501577642919773082147929658791909543691110220452515478441007201197182184244269678927114223187228702701472457389903556463525098930982727234987725844459362252176703804877998728455029743443064285170998381840624633703893612689966722592067207896572506044078806824721322886882924345648416657686107599985533566151144402336645227624244209714860641270004566261863730894016218702168416484489848377020804483657623556040084579896579134769368725326176011418676612225327046762187944966654393774185652941400265183957642478400830999989885023599318681375050579323657718710762181406091101941979172660470382986723440940619934780203338753668210292895404486253134160052181373426969276032438106210055393964951446629370160451578310036734477003938666392704102817577631588525575430660372938157514890794049239613111420767107568135410282090528633502420681595572715695794731797161235094915731344068872168795401992716649995635932008281692201585096836406425266858082173454536762776275243805162872239435509460441103918050798951810578293391940182424256464239191388628895628217345358069704291208922000811111081469107280896893385691122017085066802679269055606141282492442262921414685538798850943376713370933638979899875854950235282156833115444839423220613247406857037385356923004137949952322203568628652314589084890265718113528480550213728600603031186183684726738755859725642944999288735786188223009004146850561172744227296830396295944880310803014622907546345224266691513841650569247259902287957215503095054184277025823396341873681112933632552238796639316231538698760598367411370514455873185591159092041826633268219539324131680852932943076110021640954111869354299781075444665395220221643661030467371063096021065293499142752941387403037398851901915958955791805138590666007107312416927629083987845659136067948971216397904457608335545039695537557187146243614593952123900656632137960970173988046008489397261147517957971660732125037119240345613498835920686433107755238022949906656123379076165356479797445428230955586889722779169942219385910897734876498522978344644047860797035617942508569823728745408278633308469045492060177862448668428402136246546552724947155438270402267414039416504495607056231065725297473768570971440382600847154764489853132439333092025450471384014217003981189362298852674703780785326202477293956883486177302148666615884792275989839226537818279762855267905974560546680469171194121150215387673563653085487019202571018091079675230280473298622299680992577125747892264961718666620005796356595539205882975989090163229755043384145578384063506401771668514339470814153356472105916424211422460591056189833658196212365802286565420188137916251073476432567229520408502433612657875105506495485123216275234913366891398962048090040175537351079882905695636072925769062101994286390735321617438417454495860401194638581468565692826360065190378241221326415862226033863307499810376477718776277902410785140130436798302979587801276815058060667865192225612220710902051935476373215034047997314616208077062362194293608875687449677943959416130008403175726244665835361373108762623344541862093688912602534482107543891372697135787330646135920640646250753967146458400865901535754154679319947913750939821957728480244528472211589378085875273732051379476566257881161894406685615793798365458154667843503268510397515693770106002064316985985224252425699688381417404784323698295531569703603049303873179544887800980825038147875988868207320344743683597462410061317712387149638319869928406202728921994361213775399639718158963574531555547745144146711933710580674186818097341823823635400920104876555878799302281396627210686708895733349604029839584058509630258991718175831862329994030956629706583474888739744074858189199897645928910406695373676051368589073662309072877670236109007721736947091909848923743302134424455830200366630862471629011806044585367017287638000217904760966889459507583251653129462477602857606771616634500965331138021019831448865602857293694270813402262641634252753474236461601581789512762656569486152179425601602277294860003492708986436521901109174529796388813280130674067020508073095805681723352949347843995776941084737865894364799675527635972233022019908364013685457422959628505358641088396022826600147458139523457347600478870788493125084013787951720345348091424037716912943129341516337906676098021321626105143889379221240029101365490220663356378272349748426102065618446914376685584643934198478875974835080909928523729223828742450072312127955290129491383612313525529673623736268451028573897357487538794310405482631831153160966393664859278881606237713031785993277116123536175772834278437693984608034841885342562483981228243302118184618295313736506339832374865445837823436320562912616865464124169998629268490296099339134576435699150430276784795618177036138976671606447323538315363870794264692859959629026044154925141708012493067408902212750673293067132010369884232494500393126773813005518767193728139226567782271587315853277456623722857802145236271926455217675417462582347393153596160684321066009568636982109052556461404738571066672704006135219905720792868788156324641857690043787252442619043752540801805148059836528845439302698881377275150553588860878654346837502024384958219945619443259529829689935058951059866716382957581384848231661908601515206000532511233155026755066274189752849544967171312008367193585925496580169225445478278710430498503350453450650039571952956475197734501534657064182965320443190380998116191389614850264675565134623340641326134809461886442457270296770929633612872131535399995404659594508531453474311508201232983138505099462314419398905900844730202052652664622783549659824339055969783956189640907445875012783070280736984466355767252711017908878088059609844329852686241256070079485892002404865595994702680885150261159898575474050643973076113006586991999467809535216199564555399100166754447379086000963742325952756455947667994028817477631631757650352381997881295646499445922852190514000994201910504298038660411167732945513682053838096448528622958991009729169824315264213263259601690607845842958613376788942087261022466162420468193455853609264782352597506421874754562917666719328890814761998243717955893237215256859341907175419768858934587405898446941994730354031809722447694008294632036901324017957146493538742577707456295911577332601976201257130480708044760267728770794452196400504455328491601654601397990399260218828093074208861417866264658149893202210984447418084733644279592896017098025496275508438677159585075809725877420283910223126659229977235703004857200492606022635578957173062305187688563448099232543483576054757163616592503360857147209364372425994020485610398907398315796081384990477274753970609346183189094429463566104620837594070375638629354295804373071946247728027427436275501260939832185230128095148983049900255138183159497559357626019885101142219221507103038911248854601725268635473402624120304936849926217685054080250328266910124324611445173279176109044544982685688986316213980474728976040350656418029424676367146047971395882839074535785991576096457545119033726852888705120267035951259628019141422212447431116523615926880508551427217747055157211395906929318835858426098036083917057213472789588197382964780168005042874801604613650547107912476286330455619324764739574409058004936775023008323900176261591162814029510445725424897414768128161838163954195242279200238784252759600569100828908287974206140417556449837114077942872270093015096666238638688945797704439174734312439633294069086052109412848151499070113098316236878019255238539293200672635188355727568329187487818315532115463743027370665879766205797570855025672990920732486853244901492117489251667397829613832545923621888142757289716219529856564505607209923240505443816195779976612716668677335400867108891760230706253528845245129006364080970128260394858902820962534414124630589624369055755089941419961674411915179106945657859097218024273449397551120451681221973639565771595764838398671365385957338738381998238583762076811793449436269515052446339894398038975221446447592579647208567922014570486774127066876612603904806530404500398815879128631149987815394609875420637556673489878830436157286155438406892237653801907550123760962295395673929189551246266420371219203123811407510706423499948659752930508782097598732044086624935402053200576472647303266040722957096936801189470886587113858660687098321243467263787653782766343883947400035151846752620148054799522791288568887886669933883024049983037288583885206591956760534278187346048311373330915786786730438552223368363943208462460933211860194413092960465164409912745063035059144963379067782701329816229870637961331326385474655951103500887371140345470454393679711547650121695691085724819505151955727927075527303348958930836271531683506038252634062935560776902676449628593576659789671897872838230142177580541848882949485053131488244073764138899278122990884448551522817286863335489033251478469635047965802550460760651870704114326203507181534713086372535991517547649232895412154181511203275888238787959763733280875094085435748201742959568789384514467865346926240393844880990886364910454552718284597351697828502692076967982126581138603483063414920778425059162417114575434091494091810261877985795837885041687048664645993432135217338571139434503941943539871167100449421788400318710997092383899266418369905734314771234160012276878033191042396619725932786827166873946384062203976345050005330237373580701806055416791862106142358863452046580148984684565192835195797820645413973439191072762672116984549006660229199228354635390282179024448245802985420759551311108978260459466628112236835150507868922375580787058061053126173550080537758026967563950237942805848546874268218779087743298331819565668408160591172879796855815193547004271862788117104062681255176886231315970634273265444604985555411663709595938068015535456333626774557436161533070589188173093438595192042440546519573209521096662461237068290073226821489284490010013514393503849799219636086918685572432874896472828715725630461198567574407976871648485286220470708145892070697697941504455700188030872389313775124775926136788713531201140036444798162743233543620611399506003606085003785340413346516244357899478107460309579965107143856478608716721167478838016325745852836701920831764333864535749970061021871640710581996693839860148820618520649560476675145447784885500351772279480643082724414251608883288737398838388308278331554750710958290073303433154027121149939027267164981120001947316150137970590494490157118159942887935356081019349341205571381536661033984911578019409626226626862342018477330489821688712898280512160714268855596401195585904416317194175883456978911495344307005956959619224506527968953196728732895509219960088766499798339677082208323517641344783240186711850270613920947263239086862409703032606557551682764610865435917118829272608421626947161111243577108288852569697024652408051406193343736417571832913854891976098975255269075295939718204560113285115280923700539372603845548523222109619190936581851174329406087241840187937344084834777122757749058798024915935111498008799259686637101183290295381684035917586009593032139985200043992591042665314413917655182999454287739543520797507754282239149481348721619706147773934145776298067019136800481222418624384176042841677781112743299902880417300696471544797168739165589315087523919344481335877648753072369575835054953220215321383614170913225156969131757619393894042731125200696899819603424181886917073947995734085566696250205769137758134889314039220025100462792160409169997014915498034119192731986939371751898203971344300557531229732711886083519237685135763830138408774666231603865646992910498361525416936790356802445962666130084825454185833076867172176171934490269322154948903450041232229857322250776179828303565865043639266061390458274418653720172329044351352878857408636425666966669776485693462173012937417654431769244614549128390345908379091185842564111716814925620268321129351728605744009831701096450592756123435208951185933736756181672916869824404404965947580546949834121279837887873068668556376996537156335879796598405563383193229925888415517354089071869613225301387490043763769268027099383977602601428969450302263330189799641152541168732271428546718753561003161741437699684145781591971531450807021131904059177124796116026768526269742965855336462235410156113210557127456435951154097257312635654801599737339238208118897532495028627075833698837633495586826354602609024518910751132045713737031819112770067502192023401202156553719048807157831940932047946337168901234690027271629950674028705504972630657998616119368516751644267229318899748969018713786648040638800532019017180062895072789129590172156999192777490269405169888722103743821429654229629291070888756058352414902556549667820120499504706876875532626173698111737487019056462699793509514265951717953076491198729134490822665986677607096638742410810990241057751280547682856510319838819183519976395712805306327598938044270377029978111304561955701118658373735024555107759804990924925452275004460590462911053165733486344749248948120400434932148187308194574986274696696549994630697230763766876174998249737333351727214202163012699734897160542392310084821899663641497315997457081592519587462860049561455205316982236645023404390498522537966002327142241411834843961563843754853677653178687727839076753265283125194716391055564379640632990398818338678302742513933119237717310329010067378488952930315419085558299816290485473362072214239750845817508492495740291058711045951217285717444901586360346081917361858516876446710086655671649133241735930026836510428920661001185195585795979325027714567591303233741944898128512101791727377357742750398349049786848022017302398479331670364932491221150177745888324657201922840532055410348804714055861879347528714742995681814079802770190745918610169386352616940973932360619566988213274146082835310605524029019181091420775292470678098800042189357992306628049170729582740801522159611848080784141739009019060512814823195578524409274611113764163261069937962113254458946917781936987376768419366016540744071500226101143116970426055261277510722247400428409805582870255792385266478180536124973663242299709342290061865307745140107571153583591351412271611462245675779409760067788083987934089532593504215334218982341635590658097683006440547089440961755311201322408676067225542143692597932390375278900983805460296016508504317885495858950092894905779106090320121273936906975518328627015946674603512311624536821968278299867952174753861026678471480536847959603400023949531966027077281142061580980560155539037449409221729023649279184527405748078362874953268184354380386516996622938614780134084255800645302696332789694612117406369606942326736168955107814518797326439299256551325201802740734277520096865387235310181579535810195299574454266147816962181485975845230817860167764721158322451360834252095195492542109274254392254392411372623168382287287097617145946794769778242690045180265551727185397866674191225951806924268860930634395985152161071053621487780248552730839431967775415967689382506247580953126697346549837294100315204441172057943166415476970130461221793166811388610930485735823005149916505377357259603670150357982786493200073912665349548285439766813935883743484242611240313997108770232443784176867534502061955638615456886118997707970529443608681079072509517304139049329366530598583601708262291015374531287922039200644344330266219788300247527997748332104076472531629071160705401631562082480485454589786460115383245651267271977962921554861925124307206110740238081902988276385257888969320172847936214855370485593976209691765175868572006979535648267137115232828614134552379250663735074381656458054315829257926832710043035157985332288757471688067483799977162007967690014260579906805184397736371756946485294615391062564482758660687709405591757118325223241796186731478940751862606873202719883630199736607751160106077794168067320697173885120584146197293955780915885473824222686843785359231541599981177249580221195071850447426074307584885623999457436062969848178683902764059903975650456057431232859166551107732970298379542406015048074629818779064048462586447566249896431720120132963835531073616255657467716167410935145379354618924124428331308287392830008991589839684215114309235713518655711871292169166294544745451741058403018038638611892134236263820882319229206561374569105368448712029342122500084531390379766302628069783728474018013086492702543379531996176722127667448015295392686767785959263911206006566207793047328907427466891414835844795673400437157459674599371866637769628915966816599604767355969017107007943472987776695176123312038162950102292180887305803448104741221224761166385857554211137224504991603315842444580790106846591420697992920736326680456134018708818498790541818007782565360452967510439691458218076341783892390592454698390820086477158404583868872598714815017662849350900792673725109834256270497673252831861822654902755011849162305867221358989793272260497204712900046751537943200057519493925157433682565631259857614630336339875952290411475677678831105240366388924332939706527647031077051410998584351171445572060473001310906225913711522270787444169120409183089115384997970071665150325495594562755574767205601829716332836248826437530440184564811502330165412514501065208537490120471744578754484396989194284538205898536060664440287417829937683865754604647505907949670955300069726457752426402746136504733322533335390405146695000879024087377738804519000192599473213177435406811227040540378610153787116740160429655891385615824910655068340930629126493181812354509220610717267195244043145782938670866404773707823130654871067093902060000443855064838238089024073951575920788029803332874814414985116254588716830557435223979102124112650111929348849415711017802441778926069091538823360427404652379928059272469340233245030756520795519665329752450234103979125689433442051330014566303956280789164133060768015459558437337655666681454103526877576166628459139970022811041659463493401362175339764454794947109363802660621194763213147248573738160658197410639921355025529188981668845943562499062937754383972616532019849248524451340537960833606446454923653792876939716872535397217428176942713648319167857016768310889993686672323946390032964304785154977757010653195147656125260070472776767723727578456154834111940355954306940828349653678649636326501460268240824057720118287388096713492773125459923662346134827853511525202671528718653061924027276470138794684546198416484541868317141041602918859069734089782705159948811984439403304668415379045686436374207118361611563122556998975209720112932523408206941627097563294992142690671009596179598170642970996812825341934980730411145088538634526925426278407665912277449828444236769117318466046390164237035341358545880083409793983408555370993716674165115841719937599452844691579484280699270685108261729257412299694528692531976499571088695420445920586138937111535796572705701776327521839623978477298570892250848131192788517795912229504904761595675841872819672856894868548034450654952601573140943730098743241397646480587073490173452698951991082601436273691068413579670687887735073154896505343684272582193433423374958431271492763252283640253885075426999357821705406836321736577119486274953357962654823914067095847340094527783836923318915427362815293429672820847419909535851766746891182116165484246112416685072663314731003376097280447540587606305339744777676389320589069062568593171878564095622429007505040411376031064997523054869044550736184303183525026700459978842024342138852486673751014189519172523212009727848364720727626763772749726488630956221969859502492968665244440401479209713079087424619044711175122098858369866652272374903483121345065622839916742908865737728065140385383249242354374550427123089042106938268705860755775303600767207598047154949272677101694477308426521416320852628695086179601008955302281937817582072978770687881021729843837306531918664418830911270797143680424873545653507977237778451255374290181066495335258810277943160560563587714109546223090695963696578217427476770662348923166466744949611661987235289120370640512064572116019557777343823409985999486559459839347569885590173400770519348243359078706487039245229574468531154414812545281148187981001458568934323219972532665022210811966241277070668210542777512005389086081744485350526959399332416646444061971804150607446245933210158474222557841445230443621666671483371938705256186473335702628087079594903057504807036991514264806514497912153137329619409564154385139598478157369659619458319155759649922879082427630778763449641314403311828860424959849398085154112315544258084822180605626150629224587841760252527190474178884775148907162441853859234166562412763803366639834182829832699968594178537722352888630062773812928147025906743439858563253485742539900886778281921157426033193244692835015839653824466441399830345088207172898293613518603782351048212577930645386595348390217689298969120488227498762885077566245867675756757015965420445953000745000817521880052164742821077038744254977499984941469905766105730070498139578191463760936369590299034565487095959445456436285295277214220505933980300986355363881270676147521359583602457826969868619694758720985656834821270303568808511273372960282733069383147100327166923853512347117258868714172101165560824660234986396723930068939339455014521284213257373581035578963464094225218441588107986840103725909965592495810829007066784722977946578255371107906975596323764460093273328621480587777122619824896840450118689531035311347318362436430742336229751326800597148333911688225016353621926310111025048128550189079706381257998713630004998153957695388269709762953887244295496805125504733035791516204099608714444025749314266163664245944205235267509954134662170352540265831466197618120219812734798746168943930001165419461792352191693311053240106378799768647753781558848623000658153444049226652425181031691363298535356082987328924265520689764423942193109793748079548730140110822708085176631007060058704702812586202966394542404728818296476613038831486237408810256628431620732097274521438874597811965707730499562950659579541918322442019161754286096848220657357093599015649113129773169450030327892470410556410621037278175213177144344106081515583542316628555864399381655704493124580077337833253538251557721313456424396740276257970930771411190704280814124135703824177570243587086316233869816635776580869004748032281687033309131507189882468527244042624895172221079013616871433881220939326548902057133998195827924634146265019214180985342885997180757128282280683250336755137817206071614818381779527345957166517101433662658048958783488328110215021171435398936959712898628101423228825791845619949174846636331422722160623984442259136177670170090055089141239146074316316697529469317869086463168855944776035304671146533546830597476919240360642130417773089535095832655244836483610347273719441289542776465689713369861280115983114835594564005839938667087674665222013542656251168671234876210176525396559272183307309819084260094241040732428404865230867937561166561181714784609453445727032321210777176008058345251573774676998694030489599025689223670573541425659787006488755720078909703736705200762256306804995946812472576120271405999985225112517251156132257468055356190833665592517120709346408075242698831410088376958483121517885200502669334209854357859254798590926985504593469272367402498424360173759655062686112948815269524316453674915920457313758884727487461815589451413256574787625762438064786023316386564033297665903454543046942289704571767895508870792896061888815981972677060406897257536777430500535605118661594487813424017098117403878856572438957467627684939854708552940767454649139878354626455726038021651209372875366985719227520966310362786537763281778528013327657829716738220706661143019197395991576091159273361016970315774742157106098981992382549334629358357142563845718670713995509557670020511870475679860183987517090659820741342779700636578162758713363741300935321541060858110724503677390577001451083116245526968671809823135376828644471386586507288661992892893210924194311223561434612966127282309812777956108934002617998518668521910992950695413001406681132067293594075549512484289799666807796879027901114303893074479456739852852894366417044345843573816080171190912631961763475677120795836577929632156673314898077568062897342037278739889655203783955409031672610000576336209901203975029046084882850735110919333161634516205500598723690413399621464744692772828197898114356836168440136654176061975949632749906709461148220967936648473201439195785685360269107248543207083628890602012162106987544207205012447443890076104646001376901203699661778938080911826402293567207329022110346799784967406382203745560528109800926247026775092656747496270035635505582217770498243323931758947078895746508718337156396612798036882480403349548616532298354781874286557272959871722528520445600430863003371163599945278460570915476946326422692538851367004089231743115418153656704641817232869439673343454614290599904407145996805680937456064788249563259650681538518042287205084708192763745549949968863700792739693895814864451023125449768920829956348645517546998865455201805184060911489080634755125103676907624251770355979523453348711196375468328109441129865396153825920990682904175351217450390316592146727088913427492078760073937271955090402297889177037790743632485166626475300138029426348865857932471598345102525127697006190738588996754084943326048414858766885781551000750599193036681427414284433234970090051984239509778131570027628326149298692551062532869623832807908574384469037627475924292619996984743577191473444440127857391942175491591868325842191032352351447624422572976574017702196348133286847104642865622817872156605846658543335078628635119310966279007077719923832557188986294065583995335845071376455548870410270103667405978156148135503631275918462208039274543524441296847345329364724962138361465962365764934199795439597702383276322964788376169336000458358800217892358279138511203957553101472868914128383526598722898561937922937065602552937481069397832521422439722395271446964809485525588818998271210011677825433907979077427761343521883364066676218974932738046148896718747611485107119817314871773417397633082644350269919993718113991569258288892127640907253997604685863122896646235579816914752834005805990410881554416806155511314035225116069857975673393253438753108040236585901357443477375890827892531658803469537532491121297169178631127002543412733305178547480519158645328960995430930495147561622118603445497345392094463021167745032614032315632837330494756983543307859208787962024545231307674064172332796510686674303287932375867549146526308965025971938808574719073548756256558519872773381179358177664806924156476264559367223841211233645863549261039617681308884624217306455616265378194653087011921943547928853268040062973491724765052075742736080493481008497378912313113149959663029444426517758044879864897945118880206892619237395801612295432515110896386511094941034417752607723037949824080513437616512995741209862283912368579245653263524386326502908395107375344212517717835063951996406137511339100073663839689820231055966312867851569462133596777310858609633138861539682219938292528663222999753262740729265727370020351443510872097660400075859861845217409642293578487073792065483709683882423681702665486256375206412156943343030465969222622380371858327056936512192691908926704174638317511204750094274445026473825017160652423575129285040947461556392424486139332978504591265540796286232711276744727363908471734652694518237531374911268091107600760758797785058457393508915910190900070598194748766171672761144610362185399904298471823819515813250882399138533598637694370833829831728734835672108050405368313096310649698170568584391223563606639857684949134127632969057174783767044890649714306400876253835201801392950231819600359494999473271847568642650278622714332025990726732262330873227597416364286180749643350865496223582308376105326845551919193892575195953276734434298261198899534508954835915489013166009831137486288194547365547091036315553108070612522531409478744057906272412502401228301105927965156414508966355990183364464877179557878880510982504727674526213277673125752671693970038447111698454840010759970559842166573461991021064004641489722200486855682070297862327535132029569369412955536588304995837212232710358358341002627141559196630612789326316486580773826516903525913886508197559460443275144900173338631887582701431832743409128417455748151637346143846545487986926536130898263252808635380177812134103752858379598844907018151515762230578662446297588989421714573501847045463994448726343406818232767815546560183637742117020544284230539332899253388627026236028193613835484089549895173746078589414949178646140952999113739212217136356580880291652988975995279310588832805412400024216090009349410425541600903878231230242680710566307139958845180830220310960330256403588267743629847789616991402076767363871481186558188667282994931201140867153769912663371063528316549818641809874145214158966953704624856611329376599959716810349023582776194127721686356499625975193494290041749043099591788951936069785507654371291709531295077207994759985101165232539974136923080903908445638597862202496431882022500986811861138808416905180630657047217744965347656729450370275119531567995562333258590803204505046932251299381584720998917067932655654488911400477376178707500950882547254362786273364209881402786301692410646392394931121956691092786789550800208166090165611672441238228198987398100589133923584345331470688436261215796986713390882042214715560746152628292768004490339044750494138734980102850095857109850878243916811791728960697542829895443476422492619768754830720961507816762386690751840573192612296386111704464580022722055238999051195886603822142664278827799449656288989839433667776151747428732672261759697626488201442849378357135327283122904215410478310480333923641402517333534394397754626214950596701823066903860304367808942817050954509756081258625839903841157223738149085745680611350433492631765095375850971267972768576122565578112751263423128244251524588221523603689736306383359968248918804482398642753199273310291580884220307392568234403593710773790599073760526316572143000092419966735951554677224196358451833672322783527507490761742114671352756952323672727493415073544805889922446879046879265833206681783917821792545342774039119103201486488976330193128017418427834262152897570263278658110033133055191585685626245064231182370259002942053914204277963093585828088373864975814791711689906208084081108519801048828282832522362006116665160500541866951682846355233271959537829062915470785875212111300117108105676545368190015675211283647140335280442252353874337288554002374347025104367515797681841429159850395435181946595710424970369024206080305109821589576784991118513249591140276345681312191712904842306028181186487046282550977315683068181657198440560421675499145607553282750839695288866699460665226565776007722776974099550482960191754945137653229769104511684697027594957300120469913899162888636185354470672627823768024494969579474791080436064504707033976676025848682797583865311675746321450229302418425649914310090906424572247338164901306549596147995463373228818553537697481773423030757302813985276185444255353093358793337196191506207951454767916235245757724563550698145641124232455860902127179519795889916007454613281270268135016659582072298077518105884557163266890446194864170915228556613263261444189807407045895683679941920620752317084538356293926108844251069884114655216686444697407107293968429861672398747850921618381840558220106098789606456659499485984686973116046912441610320447386602635957622604592290169893996048894854672544679669225423118600077919831347935894347057698735705893136844619715554634856926975278220418774107375646043719789413299940746227152497741144131289167476310362006412716139800757840099358770417434541738737399126654755611966108426655773484643222901933836589014607439432881606003354824277794007392179546495699208062280441121362026847318315306776608632372359055089375239595011063289978360117992313312096545614116277207508799830778069389438116434358233926652789234256643726642477476877456337042352865392733823832524044668002405400063607818031486666660244818035923263674477958903810578654716644967265798353084991592682965496595019805571990800399228471593740186558590337136785429910492931772062494935324067912716698982646595925963196548079299107028663238882678040952914839185810773569759992897907654940924483515478444525835664766126694857431990818057941814788009829520071097518669988335785945106829767878881225825628728599201313290449185253507243452602009551756627554070123924594617912391120152327909413680265866522072832234174596889418009940856960418149567423533953442335613696771250009011624396391444431371791149487070046183864466199512546506646033441159319642261713396873016371835355959343356960847909149653974752196225969184923683339505047873901725073984738281641534412774486264681956758792151147420619137386629387531262825069391023486936981522705045547097353849278307610783958235097685893406603580230625360347928485456286253337547595324421560571351231895415494994919529261496862369621577371580348184805190980873809950490575524077205911604840932996303008505692830886240556304905117287100325181324807670636110849916560768752897522931444107225761202421753239767033112407859783080902101211674993274882965154188654415273650726299508260244703567730570220057581180354497020162451580637398435751020909000729050033989250240163060700120164237891630441963354479123103984964691082946417800805058260486805218893589934531062477647257820027391322267750575261621770374054145696643116238815702992046961639576957956608467141799501937037324647971016135740747074838032185709411834939655577375384446877122409180036766894704747551055304112244668887971939139199831475323868006266292657891809763524192150148419834218970252482514556767122841109371932541181419001427013551284629393570245799107533999829706501527674728341741875289197704955922859112935894542908423041999233550298353535815187155489065752839793990379500936104905838435479491824342415760795662010123684788768938286427029803967155754795342221965729120547201697113964540298883231159837559429555331687250024398821752285651158565653124015498359795091357467879979372838709069815091915316167439365455804971987588251020988578158078516803900158565164401726975691222895825211290615350576964303463482258689348996299970536295479270779562309048011565389023494282836140983885239368658915453357818404340219936606978152148608694043112590084555502011890429877755604308794972366688510463339507417035337537566581574799315779346726724899594448682210872870964504681104871632823202944052462333717844170255007022495050698627029162590213348901970991046909321860442762339131619025987753106587713010456885816287879394867748699621678903991395238103008916492322142888074594258728892250370233546183295473970742028095108049144277813010069126098502092877249387836732032366560867967244293394195409029366808324518441726919896191692883582372050714761151098225285798015821236028161168712938009020504506972052448683368051953402155327276545872591226940542801532130135353612260301839363417555407667937236972556744111438517865102784670917008431726492424881346554072407016536136737244138435965828964672951047974337758242147478944959984694711608266908729285378045545409583505101716697531916555125259781998700850524176750379947676214461054466724850825800353374187384894486090832204372093306033016983461732895169613928184368131053265552250385341061555962281773064343376315368356815953695038214614214947111006741812792845002129929807594892494547717812349146015891922982870468562265304250264851830597781190412802685512566982579045946932840492370966757031466511950763739331647279706705651355130357331841449736724011789454501319383657160626699790530641473010552141944947866884798431981216520972092856018056482334056698297408737865371014125275951131467734647664554902056986675046896768272905828406755989687827272918871615867782025897897185633797160446693117331737066804789035317863693747712608069772289760316373888090650110658224941403995504756762399298731912653995225170299657345199615723202464331793916447920054450729557978556181526610646531988026881361607787642828604377147210539661796834318689595139731729717017927364388524575469569035758897215290823274447308585139500044627692339139806678295616020756718261684831745578625815608183822521963523499900725172516119761752013813965392572402695536088011486857896951586621812829213009819798774578366976259516728582274724342288953158193010119500930364965997543717145377392259525127090233424352760175946869836968864151899989059969813972012128432087348154658084869452534411041487474150063389061474704425290826234174244701520936758471236853398202030649507783137849599458292055967739994539090360021594004596367358796540492052861134133724004851332025960850421807829888195689970431667710155063176519368108154279409791314082927715426981741898242866394774297115374010030356976092640434393319761423882664467330674701586826550805275209893528034945250403950667557058336765388260118858981926104573126655810350567614435697365447622314883268465007454468559911172673394189450051941872085156304242616093157959390182514140622381085123988580517441462297232124941565925333864776368398165385036018382927120087181935682931951697619946761911068383733759860925659444731640133805696708237820647668234501004260523161220945766342892487763164521827658778274048744267883223200130744992890429909483207492757379601370832050642005597644208955996927927314467880222320359729636755250293363649782412318853349594201618715163175389997218467321292186235077168921884177753079030120292868324990584133101264902702762152007385356589180386913630484283089832109544833132842507605908679238875299088656665394875520092866862766223497095289811541080476197893576934974449437492517882918681083445138614878232666734753209096780710607382402140121023797032231020350246592936820413207852388423609319597862753138254072785222858271867497276289701618000326228804112545589559603230808660328025588787245088894115292219546113080656979628144809580914916628737237008144779015778164112418950108730367835802936302394667602258475006945318132757563591384802526951812141408377052944431504744107605093142064813207575577871958538294392810894376133830878032352907526969096944057195921827256303077921016312517246800622042392881684630711932288826888536453025745560889881239933189161696715536669785482695831654055118301863195292931145381813060885201761363345000846096530622795773981816704660090262926803767610753362826089131069048522047728967996122318592980779227170524845671497116991985291025729172551065763803934452537028686187251613619386126556068488469711867739188660698439177696983290948851595003378396940604678620775221636770422833406435082566599385564233773064498620175462449395689076132080284729881335989104289749118050053604914618190785791593675364869156778201147071060004205215978518407802025573371893637527195962773413839839651655590442268353640788912335378643564571347014608448855600857806716536905666557637820212796245766466651799710649153948478257181683091941780133246111472762902749356788502302394003374409129805412561830504002007034242741199189823417227064714225515488623184717908382453516407460646525131578183194435732354864298010771260466269084998816754770346797393991151566149021423938533974409009930469723564387571430440906303296378705912741431944891910505022722260991973793591462065734201257193696432253473713643343694075745534445665460169833743509480870236437108470348028357292622274901715477114157205439985042768225644484680333214865827325237333535479095072183935669992979342514575324498492473424828218260055639476204982471483555752414005143902323720982875604246962370847856880529375405628326955674772369541666448204730535248853633674382374503618686611888150874785643780008023861490706963167799724119813114384373089907309315664174459099483396773184318059744155861776612335093395007191160266688061249596859555190418811873833436320695343391310864279028848322137007547078846969996905915902088429171632456050823740445544667857935429619572423694705765820997361678870207481488536939429385404074440931064960530286862909640078488925168559737985089383077068470190783600101690226238791713545549271125622368190167322223725176605233886879145575640543839170668478554095429337731006907459362719035031135288568748876968692561834423401135793372866072615862277276542656679792913351243832593407452871250830656395246600944048824399982281732127985819976138240093706609969865605272276537947031374412188873223734600751411893195585549705197416873934309346977996535487170682045603690856276641456869890745873702863830394805180034099738986899408551552482092632305710872829452662748322962609488791694542631048026597954322288579680385686965419918396664604016192174996251369618377806019619213962968639785353687885226821887058828045580623521492125653724916129770070807481682597988755975022910017281430998421972244707905797708793345073450297354753222051331544525496789341468288742897086490754398432578183998853244933392743725747795347365779495716328726079987645064152936372092004801148015622404582307060662327534483037102460937693086322969366967965247114539140285643955583730135811722006566192032265254785356994184959211716366432986628135858480729576230939850807792767268278834470440581904682822781824233910206683898465939378262222733212507508458104469561478013827358670253835275971930063191121533372517506836071586314436790786181510365380712341086348958669272875492392058321332515794616812591752482993553064407766180136361281588334227193624724229589995642374207683090746732144065864253651800791314189318562804141887286909333260507051980385467637232253742871974575485694048160591588920856577380568717136976605429540269556514722556159334565448789856677080049314027305054457000315107885053981460949959307902677476867021223980279426676649420186042378775538158762730896502221611187213074312595884664662754920135189315098474580441334796210310995263562626504533374712129315342974446175474749068203298358203803364451777719523568268711298995581557073484805967458916364342461600681883498862951307000737829180361021647314015094103267370644034576769878309450132899638052643672896581294050200379151529716042638250841222614000072900630128585339185536459875999176028584496229611634752480919585058244994840187355442482987825986931056731422054188960944031326959160369605532653325819495399212877279264172074020147606466217211451353795341547606317484323530496613035397975455860716746151699823833478153829211306634064450677636419013997908816140760601246617241865376819548223410755169360225279918067118629899842074486006866370922815825966469412926305775752481854958613847392514741112896323964847053616804373589853181348915165447464913808535329229926574885958938112716288221304467124684305325325036406416813872969232136182425493913870896702534991713441660051834138947436896841645292800460097324555152478947459292100115497271860094710341246070529797078283864263011091787305837173233453052920747971586407193705350102896805984848220303477875608698039403279205699844050426977934609148294013844136968487926364778553568477528990377517943293318491133122684068478896228176326196098194752310738218087795348065812108567968245202175147667871989382961539267247676095302664594020031377196852537547946805154381033755726475942827401577895153318911931687875944757859796644123631773318183490268672186845937029796820212173648213135484003257187116987977841099617703956284767828156241205092601511822621153241184975077856609789865672824012708333133162433282231130198011052521421193371540405270103471220351037642540571616974592725581698354998997334296987018169665909726591598902652391226059852263710062499228292525170583162657871386520130486007864816404611108975773259389863428862279730409987054462313594435131982295003719413599060449769061831007212905250408050754852569590979157723889544912399835405702853870743774176966447209977328096061768316051874410013086733901058031606715159631390676709715937509938437095428753709670252305827644689897619418673398362129932225177707094975857527260587970804111350008292853882136012906149106756919477873349525008562440208320987183196577102191668973429193169723164245274225270909889232974734436173175691930017073152181896087515722656030146963901184220796383989848317313155636654833890719584123817243499901146540357516204008580607396270042218621314901648643241452393180124769832459561943248152292489187460018623944837243721679818597700082291142551120102702837792988940740119108511438066385360667304654227972494010110811203292480773198247813306520849497874279497900269699338314018585213501533762625722581628901501368009841646768157171245472323779593500881100269377386707485042386642203092870023286122297836297641030193102223646368819482728536203880128635979531208094628489931396137235356350662243748094025836360441926447896905804891282940436161495451255213287059147273810702793111076910901205243935375776005849000008051350826724008822850500887711364643825245050805721902451099271248080553674965232483598499895689704482619303189729911886989049400220321555466379846072050752477192164129766591191960455545657189847356295242521113698051929649549463506472333830889782352512185983023191089409819180994114203622611024371182811583595714292161556120238073384607339384714010195076257241489491591634842382889398457372401494430681131898141076225699067444076202561865583294086187289602428090818817560517438493145764389081632429897470062213764150408634742763249266985524251238993952264166894430100069670157809568051690293490568543941822757557448276309504883708488443090281045419781945157608086474297783397947282256326918892198945755611675964730814382115596054137187108756441106893165143432105659408199286812594522971656493257834435776749413740406500370663104688132661648281540576428397041634025918635564674486519347253014453485028663209833538120511620156391857258613344012015765629162990608452919982464974890570515276171970422984808532079334803783335991860965211628470156335499697664613870276154132454916992777638171884863533193999546318612799491270701967567449214034007403449471598519987248156509294982370671244846277665794036684247214331060188920653464169095686675505234660326580049075371077055141938980082879344384251249433976792229724955628053465235815223592040810964189202725931954428845814956576403957251117390206871192949658723846043703981041830289764733408372511429356576549516496462127001922422989708358910044468484542806379388570746852178339469111243947513880628349199727004881134265555162478660228951131138181729644132190533048457759340310373181298337600257972894595131574784060002696049380484257979560748552019212815421958364462070951984125561869750819981097132290992130521560339170204096599232809724587482873098227363949651684964855092742171231107960263961453179110261266259458103235038601500684476064442279833218232587446948874223648858752031869429050726842897813987777388619734538796932305718942991775194695602493324414296923832625591094410105409929869309558478020826407819363188186114212837460817800155961603296825819009228002733240157455831088035286143489626282239163444151304606660870832259472462960641839591871831545457539716376096963721192638349027815432639020535483309707405116586916943331131371895771358635079469710850538174181639497018394696720527578166294750143506712199741244792861542368194257927485060084089983852661311726808748145356315047433686713500517380441620738383336430690256960180800826734076585403592111239020947439031360870166085919661455644395305063357989739519574480500713638814056937948927206286355677982255923278920447218050509621425120996139637312569063837729549572865906201459991683285802845513801368634403173472459586292461274109001388148679813917087856729675498621130822945101025141078453034576995140536103732985280401964795366731010266628896102381585972099336038285205996823689896438755860579237638637622412598159837940608607189523896363513573813153853136971535484831240369677688165285748471072641362292841562369791392565882969881119627512354755695480039191729948926090647819890397721740696451997628073648794847727479954673657971674220874565234640939972843788784544500084883901412949374073190572858542318975181934491600382843388762111733275102832659323238897755612753675569675278918776587301379370243015330520337541207726465718166092992515901669014687757884580758710014700987797461222771129916034011911968379738316586366690517649608803351923992849776341921582494962211102622944352097515900283787187070569073747924166376466667517927682166348953265914000507808640841360854837834519982993920109967536487645080248424837194466332876920088489310690235747840572040017394808191368411828096966187701091797179614464599353073715195984570750150967923810957212875328395952557188864157680384439348389963471821943651122316905055988061272922657177978210876065596548893120187555882558542104919721637588883221193614331991250169630791074609116760419036925804480974400759991394170196341192625009256836879538215293286960757590944619464630045841517480223527827133512520710586604964240442293020471724606442134605485848794880790235210608228477282231829082532834910994241708208478106384456846766957417590316983278118692274303555229474812071561482474316498530018674306884784980446537733289992760014434107339247948363820117222361155984750961000220306435668173171950642978578148601605023592699357889178662592504794186425135065384167295477694900397255342137281593310759655542734331165431178621424392812121462682596681326494361984804244242948882741717927863529568454399110117672975929342084337093012685540798750543625963965913396837024864209050982055637752331789037960777562339851845561493535584702422584447101650763647719788407450150892941928412026470036788567521237703306294540664136987531258188887471352379214027742414863424330583024837036894364867744977877466690653057234126061080302976891456573651679661478176830473229805714757773989781078678357587479940495726682514495351697716629429242299055483080814019469255053107212500399644890388245129094948511763382414091447662959304813375717702008942750991651562261723159123673066374776447247593171879924677311595928535715713809636774751316752410025740016139098532213740258255522545462823348527012333486789392223312640131595627515283267027677870994428903271217088660215846778841735249735644242224032876670806163493504842348935219029789176141939720301751668281088458525693254934606054648739502806942631693810050885747216030547645634743670140363390200377261302664359393267273517923428298622951715618630536308966775443815155753245811925184443455286521783131367302511984959248783589576653988565319130242375775003919861665199682162412162263058919503193021228332441223042554948803239350062342315498110082074154769120681037734434769563485522149026101657789781462418895080963202766809111775905143945350923020532651790480063720875616502170434816092379994378785340446811281627354858612977431467566247987086531244392540914327632752214399111581197194512984489759701771356031672257852168066214993259344392440019396640527623185115386100316146474257427048254848287775389633324470101667271740383375938518521215959279116312850166774384105008364181033862640104936403777215511362263635568264145025316962822322240596330822001238600472946764082872432179060607269072980668965504668839288744075049278998742623504882952528111380367974271582197213651220323538428570721752638108973951757192907628313847214928817620224149512264737992463570261939722629032194295975279088640770160999442785517370836854262093099937237593804375058237574146941640153694429672332323851108143371698546916346299738818117579150520087121012693486321427755518049423952684383639681773564719445840347218518565301149472800067904781382828637724184274523402567054534124561259505366454299782320192104121413501936792770463851646137684316407536630379693517400018882317461861200292058486643780616980497306519300854866345876437322452575692532865087601054784402255059294099354344375914132083147590741050659202027621932777568872386733539502797558779166307312935976572755988961570558471096204066438360824980559010836912279656824995496426527214876962125757566673955447825749594918635349110954645734573596064549893143211885267079205879886220131125492798034415905810682506010168470235131754040308362579840147428816434639780567435640427636043066541857663761068440420992791600062449123670612153186753312890915187820409294123889122609420846997851677635224714799500576928095208484254594091472934350054952126881308768225144012524247607262869570808272206265472079678439637839264645429701140379361344875862111417235451561626332106165031101940294144933309723467662393167757468879305003913534496731632327935464642622449949817381706445692079215781010688503845242891827725916238103236271011938439149480659381560216309042957509226327984702166263401615177051869009594406947900403130783462693800957383068006683967761710105594746678407384492984220063098007851561145618559893928419289692778242605324534110564795651020843607839364438218751577590504326138936615834769883733637783003704754881653782780819658570838149468706059447477256472979467517522643544752883998907492053417936480256057516787801579417230816712159509502453769852320997556423803586294397187158582976098700212892019966799140939944994949597771940300637480161139995289706858362043127728635307076705763032366026879664582061510084234712717503754952597654250183648181641212675703621619526195573649689462304478326310046303739328721156872694078488215495921450875708439002254004248174649099157223554108576967151121553944908948656877632093029188147761536131618659021145857570474112963735800463665416747995247378125743157052761844405276106136546888233924161205522257141696896799005727795801523889698129061812037372363312643980433456178547108841519107455953890607068841846793336154936571774177741210446603847356461653195450870473896213474933826073248249624679968456221665423703442981214737377819734660849942644948973975123786781502285925900499235692660577079181413921453852494559158613961657707699133543238017391885051161351599649171839900617349865096853223065972220991485165770374368466532203451598915897823533932099723574107366055603366557482701627041557381312088071889608342415030583687273140276235583026918794236235494156871092063870261289511566115186892407814374023677325685036369694392781774052931812284975656444191631018638572099245749164643031469047207205077088847431717027897300636006528301342662808679604340047545491384371109274877410175421093932321508183178249631671306255332932332795471270661849238465465938172223982959597985517192870202757326095690617055456323595177430862374261477267963326915566670882311269262815959889549083077260386892020513775834778093928049534309741147358970541634726705772074183509063220694000535772665245803427696811085849482773673808383065443114225312668731044292633865140804488178731867684673926870674080631188897706028108289975595406421458368533509177031315470794377491199371587295651074257745619729774272791402604334770318890924829298599593253975386467870075779588161106695586314560997173421808917843277223340012909493474852614228017238746951338569308365186750409186214879665194918013619306223657029981617516525030580770114792821385694731853771044010368260064399366773567151229969041733691674739158236952355700657207493446288986860129868394277875953900726095621005278986659746272427563478669854591770979651910481289106890811287027240272321264528364222623050008735946641700926519336760641622602466383256140950846964755782186543276081514384387256712846776924882446880342092244402668911306071970882589225015245122849462341803938403710008795956316671060269172252927141698388294651765071276420448628731179112320360539158229692765747513887751494940694038613304634052901849270800482449830717503908051869845448550442950410031172836256400754296281159234470578382294989822325301449797152673183848657210555465752479156425935575815885350574154030847012060864757369864048225522861241828821959651738214293475200851160439266558341330025443749805088100870864874993419147612049805552983067615753285085458129778848717213236046868647931767308606722923174661508620854586712076338836686279079416703868797777907697327343743409050004690126626807082247703719334549865159508976735191533544024891348976793500873277904706363060782988010901536943469213868456451938089248020431069068305471631634623003522304729897901492319562678256506037004420734654754709008278546832258001905479654261944695522648997947626932004788605041222407123671388385375218134767400760953177930052068491556470213017289200228901966465895655693134103213555312610745069057310545216008409431022780489833318224037006902101822693106441059479406251846151214174587688347504755841973648272319760222926611592253785858588065179435575586730072995844750815135009568214499726920227710109358583110266724220586254585626010993822031052868988843540371137078572625058690961424318061884993622939946255772171005511785003878224465401801742970218615685705067310882378781201036055591721073590755959935434909099217006825934360184943269853885202281978658439460605572197002545114253550867523457296221419299680119033616420046774445554708844247772595856301098572157073527553835385512330254392393621011456901129232361086185648432752160659385580857542295366589138943011239078654374152626665387942492455784045944289733131039004899648543062164311577856072258686907295158854981695463574032204270884537022527383512034180583270746560871800708902322353011658296148850781158056258177555767926788188850295268577547527503278492019180871764199527970611087371624556997023174075056004683250124939293376214687186842790349680988911561537500254504400509779414389528840477972876631377537982786149925040423993182336795618559829881788226125598370044656079545096499172360051900074690078792579857855757092921667918868993830944415489580745298553324248810493321099456518754089277914955949811339258377977679273790497796464483891077529847454865826261678923870924950249475851454420196268655217689425296015717546337515703183927517583738506779344090168821891897167554638960859443061945115525180261064593413544757850428583478069800963678323118013718800300912728650792209570449613057055859966212772450468370313715928037173731354172894052828943634295507969274845247066755511590560123415852053214955245347516905344248049097918835836046889048066712329595482295161290821211024362812943225108565979635641070297779949559213344365256440059829844843472670033537139787603983221814566901396418586385666207273882254178289018506904797026907682716906778481802684191291879846448644340678190145665719201211627544779819703974816405099047035080664351006595770518180335347618661904552338290479491161525129809838893779474183528461982344161304869181970964764055485888141936247559223735925497650018016357990524702633253037186608269924783384350979776453854895864791253064151870276693727335419461974681563504258541549158362896439464997302356266094171598712849248551478872612112515908666856314430813975551397174409096947990149619753036880413598145735862319435837879215695280857369673107735143105190019518492235750739164189640776642965179218723108774320888767009520413964081015908205414869525993883875926858497143120365096324083033798785064903918644027341574205875807513625513339973569338910957521993425587583019194658495729435298512987725372226053497423679432183564400975070552114374754763880657387148102621711463858142027144608718241987448324883639678128073817601996496246595013497914107978755268631069950373227575817378822490552938598567098118804145132057503165318730273944485701189052422762462414652604934612164047948779539636551904759165128255137767878804724922020157580311891638555818366511749348572741348814088486279663673878194236427235956641640122852062359727839209135355576506389617385064183527005356170636551885889997079213388250932871871135388294003204470132880517486806840396047847152145619083102642846371307367324644579450016781454601475905008853506271295046470281017929815126260194072537594576962623868836370498689641351413441119031194558136658789819140358127121161932753751645378946882407607268958302559450952152352212709450764217000578028343631264849835778482946840237349756059796430693624316186491397592072776426329552307738330560683846189980480539359678517618819132451598229358305557787299349998429190577631383304250254117933866188237229715390393227612918635725572261597693119784321115672353317423518465982125798633280985164226472895606100977451795189100310517317444280573504190096678462580482863244153112867026627030099653666384716404845291028529117509960748826778511075233226435743112554704021712384077354628540285170524944156177974032609210927925756968563214707115514986303971954515122214955798161798018263135575214108536065624838103369780322171093203766883056436989071117789586788647604368182910936506520238647719380006843969249168603646690391844455908706456401122206134015232268378123000117933300616530616904378109522265268519255488136072976088177127463450270492650621489029941278207146068112539865118543287748993197551022693058495106707954438086024343059372771518722683391166973889738743761253021795424186666987324314313840856621415970706801474573687807519316792724218320572181389513230887715090014900329478909432456204235305920239066226044551504354155336661752345374556017612979803346839405403625884884765302023793104901689494373099964753592279406300119578677410430991531231862325893240013908208942679308208711528142939147390639927375218312193042422282926395494659369030556889566750740191102417123461316563907106011030440473106746660484128370829928711471245337727453331991739041516894507316117161150870943679658963203062846867750244780604712620503936038442626679481831765472337218231132720112662103496216290701262524533508866424765132766671327285233863355083146941205909629318158696095482230582707757841496554444362329300047387034133552349951817663177801496268268764667330415995654322036213188574249082503481304506053419121988203374366364109530865204636305826792105136433131739758474976661125606318678323450609348516251974947145301343763394267655242160060672808531707030338767484377487719318455078529761089770518558384042363959317070146310707194360308607289924805922871547902454695956479164948407443358166188780527411209819864810143630203005194755627573911892404855165975997836551386270840633983530129210825064040784522014931208748289146830746272420700093551377758339667321793661568189085088326278645575053907979113770932925194846884457281023365603533781016741375392001605877461223118457953184005915457465571678773061453680884442166513631344614236905669117456408573695724377607825723971760132307487404497269517838561255765160286717818556300745103000187809240774069669559442459215307098794955933350183417886324759992534252801013195317074365413454356558277294974057503905672010928100113166466530069877661522128496575809234112553962571318061103935500260075012954897566103625239788773302114353928672109726215568993673680496773101820742874420953318288610002302070057633497596495084232930381313021772249131650765763055489377332818258482016618552474674161709245567225592014470836639711763889553739721678177000973900282891841999747178091148954125088864993849799470717322578297227786104699540499942334352879051861676398287433560260931205761319060711202431498985213690870349798063922180703660362582222791912400073334434436162294237558175983058210167947398284738338822453403407136760717125984819689398350572328259598098254669311850140740917494694801263174983828568865192944686498835524228710235329919399078696194359756099887385532736854864069882186481454188898805754287807766270375447322691509888691334227752835389250148980602835216850129623679807167966757693828132951299156273518550813501224427814024641097953108769677595432747426152012087365008801406764453137451083669012732965283728509564140093433452500203718902242147717264650167867940499588430062794683212916191707135853122404845025078744672262941050191160751935867169821378678360716188031937702196861267151285280031674717048668141442134762517277473933489792332476778074654858876304902130740779229794500944292073647233276239135340417079482114884470733645180741945841839055452270657223857970581285837599087922223714225207391636928341337081369067450675158324600918494939907609775381645380570755955397403251683716680155510509018075227257460728356684035343902224329374669233114168243422759280374455982830148835092955068968898797276226703516998008834502220076920867366418102487080932199602807286395609823994748633004630292809084139191290567129897327437323116140344233654755144632027199126604629540709080732573479086346976485261326329048374261507248151753700943984212327557082006364361846278558286015268215186040457934598751742111530843095930082346746902357302091510923923994063029662236857608785897158910534785573710447864636319246977058547218739548213551732326647399751244722783674601544020693864246554759552626298616367906142165218861071974016275684126692608479956556307176226329035040351759003118285107547857507661941472352340136263837861535690723200610263939711078496861946766863771557091266758979559599499698025399885199222097911530214211767221846927755429883359835866254596697058955045955040248167545202045562629021516226341918784989280703224348495987495178713722744581380729964376396675033396157529591868955831612231286943000068379061179859703048963232474940592523407563667199295202872490478308211628778867320850426535432234686486622658900230565704607604305372958986640264188562008858145955496202373739414141448004295756010197919263054778914727493193320442500842418173752518765632283762730934235816691781631827083570387325794379550135329794175684149209709387133502210836921678379055588263944701958281818266348249890066871450844012234014103083117824446262415285916534794252217654702662294302202429819560020842219306858370195187200366026096266565860653607319445243120140909044656067769699264205169425667602815318846077056374778933631882961291655249683162670229511982710693107177069330568462416407217966250058489810109423401855546221479110335072491601899221899813305080225249542059183473397076046516309002322367128191435100669996930009565604109171014298791006731656530080587669759108591710112817549717377053187033760684548267273005296565087742150996783732634730585781695915975644623556745001098804853542405843814160576189647055006787712349250809797623695494628151079054871935006030035443673226824486382128844282087756601182827845288094124599351962498579832039958235378856053842501260031882783459339590726054016138485217278906020468181566174089773621410266329521273904029275913604147496155963584603935442189667995560420268319769906926953677879746160655104492766074545338606678034061139393407348933255202666773479991050329964881335338574513632419323142163543849450004119930946194281639971650683039810573168112769066182046006679289253455274337558658623596549591683924101914554828208679472696289171466297851386399278088766386051547343115620846507569028415646057598973849511849334920270006567090008248945242953609987160388929460884106583456108493936094810279915681655566462867565784650004462882434408936177892735220653666012800142605085347444586187172711044788150147759076814933069766921038159605732620040355706545077386407428027868867056194908693134479723701010603481421213109859017352836996960956779738620431551575353225623568751261922977318248642731233079954189533268999098624444283082010339507626247575259631557301282160147770536117158735160478722615964554533284335302405636870779901899719069890677934140165769602483594892832899596005727617804292917451828410805841218336881031009549487659301514942185279229618243437642439275434283922591514185242646151164302364310569072430129326555463095443208504128667184992356631554619803522233563892883170333055902274827994868139586693143547785055158365719668697645568139180845964140642042349179797159305377337242594683950757836593998686442592533317478479404342756905503254731168468637111449982259915534416593048794395768527257951905199151792291001254102412258897741906618888725264787434135659673843493637542456796634463365772855897802303655703216852795702032607223371604563083901279549403049244299832062296747443280371589100977930406983055719846965480262215070932161391048155828849833892825989527189809394148839933620891350206685322079234550051285479377911412005652551026285847116010992210755029441397977935818582302955746720487559369797329766419880677215197200890732632241896871131651990337124205207147084102628371041158186551432520744814916048372119138017014647784213862898852676282591379806780942249150928848488348471742967355980218367779631892629905911042980630013429758478496061359378930050536796456031939585483290532681508258454109639587299806235254199102174005717544162572610083360435035582098321096686680311396740575984346909200825417545814198743884517827143333202253420576628414442677907295749734752269101715371998542470317349524758347601996005781089972700982417436509825573930865115160979207734375880502559823500202011019655900245600017144474412370500605531157194523356956666181458606890619384949245794067094239124017674185173346346763028171501743787325344827256608248949238684026492489489538979984615748492317778127211021817863893601803476087722254088137453652953965483971320414590450271756088968982625401253240897236699883812070758118872064922715966626175154543692196697260929183190194872266233238525295955910202524314169989246148465907507184025241738779930685448219130982706301015049225839617909370970306209565765286497957274965406952680514678240267095111193706154773968338071384176137498235867560747010716245621001488719564133901261878002487838167251199752430266042505348392546362301543186725620329880827725990426510329605959333641945296589479541646306728688180327844787630355974410226799695451718893102221425953786344367212648291355132254380719737414780806943239915224211449795734653100566652486332969374569470539877177103401460143508969464204182197949944391963880638262493199183264022380775606015951302101443181831951753970431163724564040097000244316319655278240631951938856390937056156301085127732623607391975659892223033381499046844096678004046146745447613096480120389953422672350749330658840260173435212509901722227661239929405820665786053363357127077097535760813438679359905231926936846703447530479249272440197549041595248604385596168454945127392588329339235689045268883499234991591142341994891594785621967846513639898239275617277970465460295771110552675185997014819591020768208048075252249353978726516017475750509777651758844625276901993227210370797685893617898397013755295220593442062753182072482278367181362799696589436597392562273138965075936742643592780203690393354148970807031903731826059606031782648328788886962956199206373584110606996593239450245339379150475839611009375076534398646061784779316818768525717035136381933942936305270845006056666692627606777693626685459023058430281762589482917877835234951572725077587004800610262143714860719954423297799000009741687431676633476380055736543747763024845464160856380553908613153385847713290541720989602614940175561284279541211353595786089229961798954200628848260147455594413810456674899411238143488057957185957688696862775571107272693723645464214101097215068608866777080488586979422418981007479854786995015152109727990436238022025739779979870262602454034575612696910699419436193021597511053555713941596273593670075541166869692794270472573835488538872390471542069748342560285903730300549117583761456080189177985313909468870502900289851527833940040884553603572403010275376024969149734748646873776436491436467414640896755036736244429699426405026580197235478881539144826085216128077451404151786997971868551331600568750956893703629983966036856546829400145895759818485119820867127444964513021586158931795935398432368025440031272994967221218803055809163552913099307198672050066828455711174727030050556035425342695541427397669406778958369593944191652320555768586638685377583600375411808418903497595434908960854098202136560868459669610509988000146563920423974513374173603648250911104919146045717704384205948085221454635582490336609818032811461949660311713885838104890140635541644049646040783725732424367419640962984111841476441719588056053108167558995491981476720872703797293805349056617635517628438966696956832345218163905519025229787929006977280346703794889804313563495890213280459628147042134137190446965545244675823765543573727737866382192771320773219128657311657911314753328430093687039420009036289135580852278942820259168497387369481339465179047566717939201281218455457913282546396097258452862373241702344598803660647025820141236113692104336725897460996527323146701445287092790106915761170046887949358609209154884027781680828522062135179685760176962764324669974835716825376891242415044169562115019117913343588192369232597988242235907929839180229533628577448531246215560894225670689978944250918129017731246929527086774098736334972802376382375141322684351320538061930472180030574694653555242947563433364324585060094506648636298169180216159517574149665526257994401572682594396575649040339617875934659388940947683181940334922574694891796219298590764343588939179586129751939118791162573955149189245294190263819590253215717018177397829854633187899132563662175227736481884224968900553093887829480385608642754496046862619952412920853394846885637143058291551718860924106142631694441262937403931309505747079698919364038698421886511848864200477837163552568020389928332476891319024623786339841735925277179664898384357300576861721912912912025946218540331114615355914768063213389259074469046792784445183639992558967923213393089283131231271617398939834013018275061522201836346088120551328820429712639685568045880058971199089069557052974669395172819025645979548539300013103874686336339418648105139446042316858926511061990248914225753133603253562626381571609096734384484035549644950586567922754764130523404359962374058311141056714787100330065450532087573171755043523802039825459534548866703500587413627930867598857232965610718623338639523014096065723493261779916081144478545140981301143276630513044320389970756515049502655454852768810973575825942204633680712228201086844203112624575739387839685979889818191594567559454377080866018946373799333587114280332663240932292900358136751867233075187728735435766934930696510782242308243456967469165429919115085713150334164959039030095482623620719494289542839128803717272749724871376407188256684598757022650398973389205439649960553987344858748129111656054525024563601982114378812177814396885978843363568020352585602372792686958371383903862616743114537673110257295031395270077455288619762479888031869980635971554930883645392386975967538455634117647244691284077664148948756061360150173408846328154509479402121260510922761103327347837376752152546090045818295441059599781448106432689614002751745986897967503604269564220415821126696428361083647670309430166997172662883378620593535396640746660397113912134576480280131978595523719768429975583528376521787443323838897054692275268298067794018748652383403745018751438884062129794175981016548381687091090495143912572776253731471217136738921223034027024044980584741966127201991753703046623229911258800586428718620956704728095368362144620465717822354216077153773893353087475346803752037785046298144878835126396893980910921735866269265436844155466474256713708028321545066367667061336759297497699436920429337642069589985904045552652615194160679405329340407391198691937971714447073851319053058396495156458202643994468871440802088318550594324004639387296975284134896414277382104403402813084909611291120531963271041742575147123310006786503335632816027550433410188725787798349359268546466481798320802033208998567819895726269807107124096675692367527016714177612222302999471142363343370062775393425828781653673563267774574949195545273178669433962346918483987337998222791306557899889943609578873347961828467837493683952782811412363672358450938572658846812547203297513648931811517770493170624409649279774353031046819277309043777402616298295147149290376963705948235739451698692058352315858106450579500778644003153337638614831931822777087308332573292091935749793104766590617342618329300742096156673384717071960462058133513966657166812910977045039723883786680278630322824211697767993553333277675152847501719579685950952906032180573172090508008949271993963963448769839917202189593947406816096603339063550899464878635889729451556314183593535531693001915776187435073331446437763231800395708791252951878586916051027972844203448340930853326798993190343120133879898251293487319145622300122984445083698946394034243577312944827590855315208474044713454797842623148537483984162585551037606699705920920538565441228822907088872057965257239597566414517070119462533289698826927685754893768062199841101824335446540979200323845621132091048241295421350779443916175318347040295959496026143196063336806347535850466773762000203426957059063601926431298392764832466031323278845055778648093689597854810119808102342979478509025019542658599564335470242224484324122859284731637408823136213597546533106052727308325498811675835703665391450100814593074863263117095841134597150872999024105181508492827493728291887792688542394554684132773902121816674968379358421875129483275095987833613544811261549672229912892612970823974491004824841189330203877307053210048411940239825305987436998170676553750455753561443891982618985319266067845433654274145796154176756127641510348760503462361810332152481448579795249358802828864557163093127673160717791326592586849612217504779185295912207193130063255060957531643093770712416988200552478897904569605964115402995333703058768609475465714132149692756358716254371278250358931011023690094730967331680003680694908873722369365736323542901257889244533591089499691909757499535358200792899651170383049878767718796687094575463443789166980893211787700467700601377370387065036724243161787204174552265788024210015291960665502616990707084386953872624988517662305856920561927672239943855063883955426340942089277138508998590932937819504555205190055985130671326379829031802760233746431381816036635212043063419843436164683493566528530519200209191333374383805568312374952255954652476494545320337084448772099364351679779379660049752871053976467601421247656927078622417508352756151203919706212862049548325790731346245037355106856972808952005068659374822209984616994924240451110660231648442294759243739796424300126966871345322486855865131701234571546457104218493354864454966024299757586738308779431179970415668119693256281157461424633489863480057851373668101502611808952022027428268241741613461968664004227799655909243145649856593464866581014725992704994506966027850974122129916784472537505209169720878627204016440153337869410831540756476724152418281017922214016107039724007034282139322086971652938625360384943406177754468004734432885685013541029946672439840371369279422796304901319135888619122737774156900418209771819791806791519268433663398644673609309419591246316155325201948912510977505890415779073206293101526100251599496479222275600086937621802422766631419717239986096991625562405751476836200211925771580498029030940155294796731541495817576086807463958922548957064277150268857416129611529115733790660662588624537440115640603910162315273320179953386871145032569149717047106023396743712285228533386786781280424997513945360532800371569960885761782450031080947273873109859867966019433726721558831592238655644274453030242099521891705462349324191519358624246507213409796293391555930535902970426657477224447639151931912871013977809356834193616063763815616224402668180557499868626167373959759180849357165358660638576275196771677854140645611445725917413197943529380877069188344339657071431564145264230099353085148959004343086731859050364101588803621058522940364192593715198378264344322557618476804502885012719298654820176936072250986400523743999214592346504763653676414168217753436225191296303967209090119149231778263767937821889079875220939871709508349946634803642899996180813346959114796794195478228538872110761897569512824864854239509065276219832821359130020036614457689392068418680589614539795522261828312628202132375843687133530413153366646325212630803717770819581189392000117388903173724885687495033218010289637680515090589948732999628425385022596279933085173163938152490703831984295125854707373019124357212124530814105332219552451804644954150071652830806982536308006763663681575541889414016172637009517381263595081211945358002020644047577432429219015758100096455401297649961465464753738269270859947967248028587629921363931527279212025724973854709871050114631188793533887275479604544052537903736804199480978883014155156985692136562679631393776375052735823562614690965209363897904019795540689849086244363730118935179022001214605361768021427697136722648645021604117400338446288774679981475180333870893831371187819218084341359755537654916654805771810633898175684182178782385773738273139092339884961838908235471066642300121361631457092060204970517061974010147079882090818802665753952737498846275848994287940834856417235790971091317170977597274099430056029947294497431250317527647718766364506333900157337984984790361544774338208934073935606817521740948632590334211490337798676907576017478505699538390674377739052397553496022944233963916084964793499399673568030977678901756167414668765439270148059625569887359745280685200815809335244316246992739520100868103685874652031929116721468309061454247629605859304731027009604986973547540427805272355822953312551813754523917440677246491465233828486085620464922239595447108496052090473717253912790660918018014058664660044280734825769166220678507008832360444558086671835437903194245539059709106206250535684532269021947883028056849386834317485163750177990692650430010062168816299268476242650180014178659990452252939708468276426144966430421139311327440764720333117789212472483435401622801217693013679471057340538581207778723288721399380791761434583596853985630942570290557670699767778749716342462874380008438785659620422513576039310360390488491241956830934986080317175518555674693895827126970501323137732219797293355809276048681994099593304141787728632572415373915334614697792055540371625050493031865710450835694851631010787673055063220300249614854197931300817182986100641266203080776736191026856487481199506811498196944993080705564013026496992462640609978179873895059263960620443863055986082641345829245490138150333052260426246866437775112671366836027078798252917911149275576258544047633232257080050817825188538890978278404005123142594232908273126537244544200269158176385186259395581088465457628286741325769139817001661388962129843900372185168859990796246402570395409653639115716178306009380743363348709441454920888806457326938311310958119862692795132094608983162661979431256489375507620548330179176328175828253811895787473559501557216993303756045927153065890412807412116707303824453492202475355521472260969721637200561664169545279443932509112081132897249804760112499945709840149720973095355586724578044700159739614425541566397377547679791774125439438503648641276703862013241184857424298945150182755759085501334741280973079335286295034146848606655804661555691635274699742321627260697961865572189347671778786359658702595531932457015238864277483128774586164618914337722385878581869292722286328056892525233822205071154272654193440854172960177066984020103389829882226338405727898362518922109309532496340012606679544175494959496694947484160961197366149632265117704635519741003692862138474526050704661912143104877205240449201955311967033135893891300108673830106946516013123124073694994144125915551103780617564885551294298761176400380801876703439600613616421410160043286294085115399835782355925201097168869750445176144762082401518950163057954776956917360767564850556786445126955084137779952741610486451357241510571966751978049722858259876351101190701314339276337026753925866367635787493345299571261761795673538888187639908301736217299225830962957459080124526359064411372975765499215767050467951967797232995660132446065218183314776663331137673139490854638366422123691391351608727716275336706755842740044509015456753656279243693436792913610307290915066250498731705857872470820862101142131053826968464517836192054331530795536841615746999440539787570373690334293739908418403551013594315510834850777593394413005384964593340298288963393177924447694313407701448028084886667159993732879145141157020875604862928909170745305078583606314628988049399836924115788681014136715193027334911213714333677983250496535427934071323319526009681931898004177320161037451894955764506977629873582314499812800148872782055359385808851554787801755388795121196578136039902052060934364233447742472482189344504915521854673516734257412880146951467776862937975895573253060344892942070468687301376899629566698199725097218276631693341437259087837655854810041592307437550477859642633514163654407142804832438743447342013630157577792228836360280145908144547785767644254258459360155359370688229931505110742523159048621245812846114698365484425977612436096314175831626014369493953733219903154686929030649092300376259579723557238836136190165171108249110110846903680389082609083393794148076320574986631415456473489751259320476144538061867030794912105746391189841467768247907289221382876140419832515227770046744091671278932996995479818967517277503899052214631287858087265252200248977893288112745377233149751051519861408455470542963236432310824130978103435030896582348810059218082740961870908450489277850519247932340218325673867114896793389600094862660062987459135051804613370980071057079910059745771345162111307259837012908323748660305862466955421088832530990464202529007641343360881343955927441047719390360648197214245714366018840389197409974304404157987249887336249135100953928995207358627209054740740153128389269479251195231546371344377543949030590534312467822004265405032611583366861244946055944432024076834876851957595627107329359756966097560017875833761298265298396680218682258289683076693815787240687710967945752488987243315806288809720470754111914722410000328348222398710037338852167562214295035852163534959265079019391542179872785679909874215165447944772760329312172383995952604817911027411831237782245247312086320362446030508298384322919759076211339371101057475693283326670018074147457377433358831086428187268790911288305275737249713480032492906304022684412779219537069893303086678890516088228373323353996734572875136146780588676726084209678858209655509751738080761725903993444761005575371449811283812035678042530475149888224381112409521339118775881934050617086869022312148611123604834653373510426351302871114078629235868482412785045928153356517763993580663717377902795627082502326612376680033707547340158810741002754634859582497217970870996250913235325156924088201758992637785926895366788258579523024728578646523526933891840287069299244774598592850030562331308308115225996424135228362849781286810312868179986161020004478584810922846843061488669520817505275732404991927923799517748801361843077273437088307856971183624363766279086539572749895663379818594409245801647481364319598357287630384502251026923930059500954324694656142492030877536145230907848485349785206391800323319000620463468051163089966125661544963689108068897889065874617138375956532379728727515032279593060852375711754882477884715075659581585762819312779367568101169274920887084524828257458537854696159084721391555746731301676815673084611900939299946107114090512665490984026838730089411532605878630731635628644903054051178707301781261816384636724178556649744061830908774547943676603150009671433611039641526524071321135266797572986426635273992266137568867155475629914262534669641796375532742763556246082465521613068810246640551972117604608458634556485918119809757230797148372138991661843684206763358993078816892647152197744921788496165059229511052360370789551105864151477191541373999417226709925187660794862384366142063256040692614333213320891428771515062566220494072662846994794263395812429977285272479814566134559546070802760011315352944223426004986420172358401822150272369852763548851015051377162237912802103196741749898833512353965229158831054107764623091071438825642846517100404355180160706807112515648460252100747730269410747069300052502063980218636884050194406572813171866110992625874092620522442586117841955082822544622720822863991479056223369897457789368537152934524995389663035198963293314354405142293040489105868808379317361235905870383198658492324585334878715940807929725639655701607166977028876951052338545600701289150592798234101144628713270087049520212058500638198354380503650548091919650057890044306930139395370593524839228011400034023748025814180382261650042547337874822990367640711494602170299777946461921550222372360261969260037768087727080657275000106907822773517580352945169222676904008220085930001613046221495337737943622579667986533508636618786181690914142883457685349158745060691130597088219349639430711598011097736901952863917451250503947987358308625673576023820799733800055629242805221828154179991359208365689447402529967184818959063413420253971855630443678994455990103088337987560165627565375193885852859020512272679011318720570710338833922475065160786971166720503526713306075411759288454222765669236906528549627042999971206737087338897698942048197384937287317180957553067511680488569008602388072630315882896135273637298328676416368213840759327184151566440194083020520993205720662869630177233726125480092552283482406573133916462118686836370751537371311491008262571144028104541313171019504538897474237716533467344431694828653287313046433788541377636754928550019156692738083771292554180673175614154831266300105480663827614302858749768124370900662967834325158732124957768723230523322417919598069856962714482880539467090531490968229922372340590389300462943787573771832567142873999290126477474836973577318024874076673281168316921578078665962114778606555961032236313301665776775978753594600911896809577232586333371684831514310347618317120539040897400963132147084279348705615733786394093748871091131213084443452576532828660204101554870983823647623545891681891570667352165320218246238109655889106355762194303391215874648724236821924372837314281651274930995021970930580297582702976183772063873668383541213041552240273078098474699184474143102845588140830267017136445923853092338150460783767700086592922035478483851906733115717334479189124899109086074935246615784244250108375681885879930732181129764004911697248707930133258888455831664536029175567903349604053327095060982727089090484872372148649928345484830144117502197978884574696311365385880707501483509593726818659221063605192990302914910390799458564992462442178549594058024281981254476292807192872344357670560588045441171048297083296333581408777256220972776076533564160091917335827737197488865766237289902685875316620193859764505491470061916219894218275723830573723044881169667991141610707744238909690650349721573348418706224758386614028585167143596019386211261337124366707813747319856664521269292403289440875005407652276803153113601101602465934301436111259281395410516599184300127672850834105317423299601902499632352758745419198906357430168617989075394136058423682172081698508328607712899632740617634183782426188812839945486879937062720430723575574913875133901290705377973438040787511910586337479654689150201513860695561911429533800753081193976981577578733837032032770960750210580993180754292786746772276020533909390472727747218433967667916018740587917747256287572888645737407128911854896524837292703765901356055688791690269368579155044282542866344654227833808804072887125617533551644270319007692359503839184628098955042581742728787417752810342399473713510032041339922132733564173952049231946713085324948919073206033947271298250232122400978130724167354369662845337749900413266929329271437023509826234507689334379424806115791009524200788708628164253987236113450146989458781651940326000206326090183254277077329679808545129979124068580789828447642218678607437091549064892761044584875039739323995994527796772852725134802489600679285798952673852311800808786450413731525011946517281620449852934737038106651852308315711029789542997103532213042281447684835310048397024169749920961731909523435750731468381089494738359971024153003308611682292145705862270392864383923988920779746057901959525732513126304233191045125039673735964291404082160016223379201347822978985184407201444363434272354598638850342447646086212215758449435978356545621979692936844534711516780215894461351347294469631391950886816063443335175297234125123593520938295896912597863023222646869153444795828692775512589097365684618919759929271709512661776785723041454448765647885127755730311867833979298974195535462248924721788123373288148252834164469147574135854250142389871818732810795765202666056162722268310211699181529392253965970989826674750867032885189571671988009419214490645540955082015824937164890407748725608314227192770154909617180296230208529760168764430836635060532195566225540670828609592118017874147623222484014013130331045961412286928916291752070663876402009767573253755872338943300358424136466842690577870621583183604624989757501315870186345940329970942666963359098943202014312480366043418171291201325614703441381525863668371135150273537249702543015703866493114011183583134776000614636052040113811452397368509036414877576898576282713057742254847892044037099974256167097267415086038397200554307775242338861121917845508207107969208969873268645580196576075499752079457303497763278613762925617489878107582347448353690982354012934755802048664169499492958909487054867976292391967167899577925785062108367060104451932350434989080631971112090550036886640236668339299832765441393438381182213353716783198409093432973907622795522143491672795724560404993092786426578510620691652698215993757918094575612477918607788121370426065384355258021830452122519310207098653419891169136165950909942261352350458737170249349925901080655103109372457231446340295593098777150396676265263389250539483215201740843724114686802217348996100243567223697714215820470003706130828121876755018809968819160216784758158130054944514284265633930419678340875388283059706938580455172886668734191755790621896544751227707453963768961601509022080689914150794179612456197588301884751611945733927673523819279791921467646807275700104143582832394865312540565851748300498315295636247780295490552809864071342242819706258573970429828556713983129956675199926298026491179662122748477530653128968135146330759035767540002076181819173937457720927564802379114049880486565186831463448323812541083100499668926059141856786948870994459444029017964889134429711382613710173299801153008561268362905006349413291470369664389232925556970046981329029387621928025532964725053032960259262951743004130954284540890431187344505012793887474929121143338074638931736654687052802875447975948967504748152954530999573078606830843348408944098846718158678397634214409026265322992773080593279003989104099798713835530130083775183448945278920305773802699923166557391625323940221269614489309836956255193115450301152054395307698380291111705045045629782101587245182272353393346131021986783546352102170237559577186720124647661237598933016746729888734158836428105212833683522434960873187320422428598265368159829414424139862974086045596812663978425227420775378673446232472089774505480553850330910633139855670538682548008646115056530671100346935885940959826275743931144414051845551219164304074160496560240752236180504380748423652070973583789805237626423699916154625217352120298373891722263637700996309229666374764035411778512154428603936429884855092114891187684200761920343038788961565281273791983864561260775513303396620151327127960119725818564613820186739193343585604577369951973182576703414506826693606138894930742573072418282530340373737532006391637657758050272531204825117998591564920076268759707579614696114815018385403882961157056983366909383216971066034475478952848379638933260658082021251966584597694866697579771114225045978888585865785220265222637455387179258314821710976506892371860434881902238185993343557393361784257642623251220624300996975410372274696080754908702313073786089995699495973929575105106782794709026044575126077447807030973061973307217002317162024443659188189886814331087151382445120582032509024853364156538875122704523994821664997471337560592656002087316974085356125338494368051043883147693733459919318336995445644355546464073008446554652983428158182506249192467839158452972974795617944448608453281321324953029708157216769322250920137222440998708817177527383321309206123399249264628728109459754277121759228542055541110143197285918682141591598478564326012885568083092148246411558863543238409787328991370568204621371958231498927947957753859445266916719712725728384409041163179839134641339617977088524224611934371304152791518695972003944658575205829151755524016978904989335106320850373469038416346975224077690567101197746824873637771688193155131105046204269301959747060874298781741545932043595122722314967246994268201823569481659383897609932309044425925926098679879195429885432933666393758971630883914333580528160922625379108130204041010080656283337358746204538294377959110034659716832470375075233542140870213099242798365827639331744780358677921792399734091696455069381254706853647974499895827770047245641161830992805778600937160023954425097171908336658688517586258052705347645472753326862862814155578834872122674390312642336800155049000654847965277035632875189761143357355858070322253430235395016066563211044848981917792272008915514627559541303979148085857497522046184482269867230272621040026735865205419893369241175807154962371379663663809510087274575845375060322111611386807449598331698751718641076970652175448148268178813608421723577884401422012612006211879287302823644450546167644813421398700318793754848217293877006134271321542753622548138046673465880839713730380492229285389931454349818309852625283643000610028139966581029206521879803706748362453578703088865738398827110936290378826698182320083030191957268863066639244007046173196804435043915835304767777383993938506805478520842685062348713694090387401731177411123820437722830735485187552907433564389068555025993791048217639058211493116004097284412702502883697488941949706462688711598697994691862344824261520510118205266920643988886305943380444862400516515823639500027600574111966071825029980875687772927849642659718867311228845447467619360973941427480684990660956910405633858326673101311281913712206297341700081554915777595796065347310348208769223462277682985405888906190571448766625885638347003720866208781630782039142756024868317257309575779568957413580520125581992189752245008091667830088039637188186255545436136823074595401133987146239002598666819088076825218708507823491788962873292031551809275863476689000174148547466642682814623738083830147819892577102977843099035532776902851197083802170058383171481046612989978591357030081047049588205658778575537716502205973857627035079798810182760139899465016235208236579624020695127632977521528248178272210543453842155293823719441866056878942332796017317935488523358529111292411071509102185427802738677912598356743740240222412471234076547981379573727179238713825177615925271849303672146857334589507260735166992984677384384404710600399923399294401676152182157966487519654786788396196207299909717715806049091922695697733287437239198816733289830045816821702376976619611571814495733021749195115536561304961350844172527508118027804863544216373305933888456024792021590302070558345890813842839506266268871762385349972925813237390817150054111927989582570993630920701652518924028937279804825415833099032294866658165429364381425557692290961163601339968953790426582494761051662795882119864695352268146028605644195756394541967104332466400096792945342165644671829156024640598958996043266503898472925357718883862739454494658194553228118145491460740385764991605268482022330134202889218503738147626042446972209374108053405463515096904499870268136362408981062547388832967669518531726223764542824872601369843780750659574078034098177331161130040839031885178331235736025967098825671796888282876389352355140276696561601426794509142070098524170404894349330143060781483948779362924428755453600151804725401132623990405404555872441365570148841713604329530402045444348527027810054331254094873909911069022933100174695108221096969518900557863682747424555830431946278026677572283265472837826404230205221818801668997461164874591496702547783050988231519208182299405861780457760827749261415681119963607886142202166488648709193356683825620103513828750935546816011536284242341825274072811750549173140184963365678602782327800063309224576786446197668726122923859546986822534096228515598077538399780366477439667336351797838822375741566296007119468989615878340658480133871572734741262739601126780287287969168183796989254897459217560619131230873474118520861539796294970468271843591427987283375223066769810226647806041737291270890185516091080644146393255514512962903584691956573087692274708928989733819204527748292071921217070705399123279133603956376819014555451529713284620235235500840163765216907395779535789551448347915755679984134452621648810073474855176462347745741487657063840842971062305555361539626527959295482925538567941415131031755384370720409206937667100346886211236760773515154050838824487879432078600453501581237938091780948515527861447995842188959631987078458857013469525678508088324045510147649667885459729048554959813836345905609848766028805969973686967493735260745314855588563077772436619427840875185576351788530631193571834692434912890179034186369989309398772241054152150032282797005148736625970985456490201672137044538461863151900675725470438318591295131327650429970513625043879486476170240936953303459055993962966266428750513307175296793801145555937925027031130781628283010746625900420470059630299058366863505154798049598505704811594566214430508344078278526703423643017388169901874154941592514826621896994249942775558081769915682287707124197656515993133420814820405663794625721144488052840478200894307352730078671658785502304790409164424555931246099927662574910023708092911831646639011354938312984799979753385282782980808075987031905777219993690325494226210828594129199874821753459973748946195557458459501676332662908911723588050668156081848912147367422626009643131719082952557922297887735630244678729457483100400180344103866521245066773844551260711516723699373199444817641438296680217002799701326431087479125969233079247142531087057424296039152735367427841305968151249935018574220632828255351625605148543685399434930702115235995138838651947719071884521913077127578397354280620980220603808252574825194615737397942340445425833540121137236069302496740493891688169885863501848948629331988924696849880974723510423507351375590778002937874647747144780144259786624720536310362103028858182352940724540576380388880997159183984665702153226871957280981729087823973098422139255496672518605077789503278298073459702052150155471809573102643945037963189240687544404801798685472672662079865892709020664524638926652146584524876600906431682700703066914824675119083750608285828987354188663984787649603638855561314323570456237124683930449127649889935820875225529985634453853911893386687795268429330493289603678674813074091161368038903384737906635918606232973087156543070195825224704128968853305267488655404427134138838620989391953819147482053608727066812615159867478815559666162630274076799741104254685647938118916626162907648261767846369742241954584055977690449597521921316313688059614692572313108327464585101915977614519394314512948039775203072078149701387361418310307380913341116553374540675246965461225869674520148382530619714131623167840705898397472881463454801614816919116443237802791960466559085201071895677043785180289701715332854873971535382058612798152564029609756654036148287206539027457761014345737178618593164542098134858513283236293071795099068507225765702235555287615178018456185481881340134496317483822560129680007455680819365658861214309667268479373226379374862474413724951971091514392541618492428775464134295267600942600924673232889204348306412942378648845403125843938609189472551917943024546929909540214908718009960163585872699699153197255305720979768798016144740382499217068421883887010716323345818613078400394786962372561597629984969272220709579685976772382313127764420537644678132316439425532705278236341681991560159449528265772516131327074568343783968589159567418983531317616412254544482991535384271122284111001227562532622812909465437974909139575383301770347975587891354475596615710335509149724822053918854788901947682333725040020646826469146160265574871616645724307366480158818719250580534348425311188486843121090885691315141392963923327381160937416071175627201027350250916585762305976583613839952551613669826322415091790720556639459156383490178173362720151115809449680656773520378665899012182103771628565888295109256386939153050898550565208290618419072730043777451978507447805532775188609601927392304545201250695115946091298601114964302985736888697940815899909134955456619437192350061611067879072208466770539942492545481066600010212297524849182365306781993951238142495599137656490689843203399488432501224824805280564452379615183788942856449189011599333852396352831108443178173521930518884532940340360850827197900193049178302538543876591731341880290785072394441900551687508239305714203118559699295113346887986390594148613505342428698810120018185002732371545939219189104843864704839141022663727373096367895403518757279726387045121496044943176072629565029422800925370548434736809546192620441374971694336361603069525615792212173276175900727409032669174850501687811649571402357898088593494382876994106086287743153007029482434872376609363591781632046343789877273020606806755731579543005901396415791658581159197132487932288883692659001669102037285325097672039436579841208144149098073688467163785361698666774526227410668231253604833745268485893753604389797614394828518543229190431871312397013579740857327395315851874156884212343726042616823740878403402829324196620847460304347725149438502293406478572700373538415889912278283592676724197715615852268492332987417615834172737726495549506880802021429423348486400647014391718740539613619202287234107107397564848688543150096278785503201325096460539867470850136938291268736356917563341414359991974321143245045847121506712400172536020061430886089037205206779459720636592939101162353903409050121628990932588146410746892160353904795436905955882513663036768938214157517824597131482175225530395674171425180907625165016715717375707181388450573694388396809743112749933284680742102636498962166666942231155768080634276590953238053135015026728065891840749424249147318867218217165512463551495547911242003433880536482346284255518749274092558137560500456879186775606324193875629431288961327796517295587809930057960272050233772678616669418671274249525587772635225248004220064738217602129252733250443824753157156463584115151339700952670171202513857720341692497962758617412291907497925622161443506386525893909351040839179509925155144985647894937966172576061696183159571983900012897513231797122267634624789664676318059845446243629744258087664555582343631827993494650822491499042958481682123560232192065122705140240336595382820047503969839750307144774349581624460146868782691480923242620073070714928206328532828170738645068553222764524269649526001735901352886021509253628478838509366719671025827600823581600691658375295273843611611610428260225649997640242473671060321584844769684196446836968169246420171211447411126705771726628699326096445844164903328896966757480014537044412791832505247044025522543834346724164209885182943827930987594761134138268851827987984515186509429045897060932557549612206944973243359710634368838924641969326518712581058037251833506421131590265605023494267702565888164901054661521854032984811170992358708892993940523837593355819235261181615541976612839753911818394617149105501391138973874767472386566320843377207325302393493733741616189794234576335899368657195178627103716586312652212459953863259026754606802130981660901041379588951769989909793925003247176541322809076722505837703938120938816220980650930975092127003029761274325996217452507673403559864674063738560564226469134994986846709751539087639357034129205522560592072855265309688059724243604706907528178180627687881966958288081468265867200605352146825978082807492234841912072486470735626052870085577892837408489644194539426667534685330396214099313250700712211766067872881451959564892736314891846153152389567035671834603793767307736356400820469254512317607800572987530001738716593944731381322096977589609107076382982241938398544320347698996122774394161636193940951150897404391123796608142071743130349108380792425211389605526156631105263312487159370150921248418272087336863642989885020686873552129090626658182378434630194057878702284200849127886837348779740703322869913913334479979970148194001570299479663672410178378534444206053057703955105905658377196392952757114983697645289190907150376654905303945681474421870865006058560739809104418163897694804760961712343533842372244817169315616185282714944964988702236208267876805684115106870282035734835046010125145147844545235953036777884398552002537947368873320528150849727330550507466259611392048587365372630003218722628951640328452819289356389742984900829284350580934966561325196616852676865760440490530898848995727735844307908600315701504809347069871725129109484748062053462275846213824759851851312229064457961448632341503854215168136003537415372675349288696224897018583275581405757104028750971112920642320632749926781318956797206912912842067796982217212274963129170272735972503127522204467208549810115053297910926098803118680307168395163608875759613020819296135956790040255706625845159958117332191638940450025167782260774242774516718000482610701840929795481503829287082187022684948257579996847454491582751467487558769503980444117095012545764999230138921216054788690744348901634452616304444131997401380395018412372845667999922038699103358888413717025008354621583578955551304813616282509503797380160680141279788939207601574012567398982208492216063700188224621316197774984623068926663987856525648948700256154371043484854475730090745374673384072003522069683262270821418603794450088902225308295067487248017776663952935811280734050316090839355729398665185162206201810196611438008965036389190481450100599399451466925949975709043841833358890559306852621966998581685967229461173282887784805452629909683761381977879901113403643631860286001982852306143865712717266682926443548464900889185898355184142928182151587698894755202607910207546503391640747107175224891368577070356803469283349781715113850480737906456258836977728368056282563359670300936793461368759188469684017517538825227325637871188440903651375534199426194577599173294824408042907606685024238744279921444445077936997888593879846400212030175207680042610826174289854720315298563609302813617617517772396003958612917293247844371772705031134440612686036077166580187946275824762002030477004309664080999266440318236441353620245532153344874707091792108531449061410519722240010287275558425592195204997865098823834132475686449096305457875028137949762936275060219969411388215008924768602726158844838744917898798074961856600056262201561861157093360965188406333430828018853943684423884549595724516784375094884742606211557830590712834502485181952728461471957643270306037970075400042186730330034623204077212391541864160071611043129303010966338971130896957651458292601528743808974199228044528342053921786351025076667788867062320756710237832127274281474272380216934334612996718143700740668381166639989643550751020201308299657892717713728375480983165746930670526097829266970472901983412540545512235411168157507924629272217748946351529607294720740955695864336202364706232828763579415075004069162288079400519987905823759972601065722753774222176552773247785269645082762328779761476377192916224407377678599451652196089061780795816094053830463682082857230389280744177018780766658313875067541228782202117289167054329518996719476465328546296511156807383243580968977321721271407073990650966000923773430954596276214618162576305900880848252159662894682000297365558371954080654492120020333760489528529034172641428665080966179730096025628592351847077306407320158974817249134379330300096641130519718495319982547483132203564390268350673680372826415552969029761790624302572240284964271613036188722832686089436302826516598709237723185226679985153361228694197267989699055949178454388388850068478049682751231588695237490915522710892214389029575593938704963961406200252941931699901190026241201408172133120590677155921208191886469693806214690525892377082049738393667504053118674424366595652124663260503162456731518670187537511797024062719458542316542605600515982108343759198807383181369570940095113374190022466479213758719350957268493471109116076189766032316482395416820617969544718297432109863992084980574151083600917826986700809997092805031523118491739410168811343193676615782277304256987625421420382148052013660154851352882101419950906984518497205157360492666701447000016068977042020495395823682609536845155036205899884364745859073058926181753828790542012728382372421509677334369079241152704608233813287258839601350356635233175828613303092924148371138450265839259133396685384774178143024029202995752215699688520519152134851107836403066989808964490272202599720274743488259969391439244289660043831029556653025437661141521067255953751767570234549909126798179622996263678797240791634344574508088232433532167082015717291114030003521426038479818000898009480893007135362150187607265271089430299072929603444555896624393164590132067695880857834434084274608628544267373743737034939584476501137007447974029553225801468698897665483263971539959409703986269690773476042010742882240190382058909119873410829508907355967387282418818636432913502641831154762208662058557288739154400545247059064255205184298648954347654231293293984237415720744632666961099963412392035356306139660964089548708183967375989842598095147211623930511289478248520308048510524352003026288478694824935251046347929075238639222683364218719185139895615858195003721438719635558772454640158566810167092657354221397558549258031628040395303149336193853888212299023961872012453394897425963775642661610799708662872611334703998385359038959803430835477279652114446812611075602274281320832970007005882499362705547330263980594270404364333822267752819801815632289916547229736575862941591581568486473079951697046933775236988383378094826269691808135451238334180806219882072745353151603697618547478622270814149246809929047867008588540750980273681942361203358723684884690537475199122144190333157133671678333984820338210448407296372973234893291694589871143045793950462663787507252195361254817147813627094599800560212891914214473590474843526531819266918018711352351380458714013618278253548919776512867560265762484517540247285678378004456424765353263647538479084075221334167761078686391844405427384354993301170575362860094571711182629848572341219422640652411441923128975980267810283006655938779879280032107839972941027202039538899593709911534542242910332272157785699694043116944645148624229055869754985223950043742518451950857376132120518384468489275126211476015656507013679431637662811845082241747264570912094276607448016895928549811881800478719790955466713910352589673788088160447913893847310324000306555109361003617764610058391561042484647826171851970676926781295855726231268602901164621383531681451383197932432043988305515798376176375173149161788159532091528041712196004467031010774331681138950676639272972558777322803748834631987209876095042321638989074786319212222239321679022262923971603725045059418646651818091032120299643459829703500335469908411174193180947622197499624291665672175688409432022381755303970422866643053233270137941864887839060879627337009178131738347891160264492609438874454755771759725349344606377924219778550820551288332845769314448999564005843060465186906359544934594488299883319052340010712293672370881644770421552287271641388996889963440067633196671655450576220767557862563354175904432554545990643209695399180133883985316897805316965700665603726079269657161693980878417503161724646990349670590804188542093112149936213114360194616396298545154707441203088532811269138136476606676006563395398622708382930521585600585107343337706492069719983276209311742229086252464365295959671771493388997738517441791553096616103833285335625663917468556648660382642338024450090434879913573606238260507757782210653355865634379682190209307541574678319756042753973681928136409857697335142876256929579798820867385141713733601858768292311139877285561644461683791364726511288560741637407780707634286463158591134663067670010058045689055926919508676002322504109381854615148410853444349494691437493825511553594304760220334364206120650660788760590771790628266040701448031020807141375327885972670562545324094086969460378780956212642478796479848923139519914694628450531033387220097392191256021219628067425304327768948098538434147476100980551322876564133460971646073889012229733476947923163095977719428760378715645329164629910070955446849305224561038223637803033379996272390327515810048179109371870251740186722064379984019531323433353433773921562817772746335257285561554894321229677917811657649584244689945481546306703731582708271690801279262674625708603259750189474960360209912273401677539406827592199747102558002314744651154544997318227199456738126058694215692520246297206721630291843847273535602243416262812289853137343381814466160962775195079321722667503400708683689755842033445257764067894952657744713164334792478391715229058066611706083477677384704639345951943550307138949853912774282812442083548783823544334538868870120058046408210636467013438495925380747601763855094467624161648784785270619286096207729023956755752479335382683185054444956635053975588913664441536194255725414662946450835928520817705737719441425580701464350305797018446662423722538938870943180364002192364078254456013340035628804400539369160810591531043969306799437380128627549624408589908812767097820937811386265447336195986533199324540306837958954766240884299676210899835704284046292370101090278688639644610835093466136261240124491030353217643174445051669045654842596353656706430331392543254017928149950156162280508370872898424329976982668227638620427815726483692700943919975429642278613573592640379888596525640492265417688476816692856773117080288493290508318296038597293786162958738244176748344208521677229115553297165853387339938756436233406864894918223399513339907918691926179488371318161372743708232832360339575767874843938858243018136005239982215180393870716052585863204883373357049607632319724077885686389187515515870386337716442591455742954233353632688738640354604935250275793488895800973300438362706190999244904013243502386389114395446290297451434204720339049157347875406959780646585184110489279223268193802039811913365617100500486030524914219320204924133639581714448018908520305476435007834632627160037413169422755911116800580871587245926831083664953766476802477379361212470228142030272737349144047717924307284452555050808795930736825407001872782272484606881497626146973519373313889824908425329351249259699142285916641545409197454391934222228391060364492322247413830481277688422100704797184942765602148179357937428507486508767725376549351297494174385078380472452326225340349310937995798866860957117150975400976161558165659907354621727845858915537350696226940948822087764972923436440537835526922996246982184627951035585672811224130353013378333666255078456760924239836757711374419818852605773884880156489001856770881373524943107939435017410692116521788401113997675467913085586087583821221975334460148213506612947669004968947164299007291418629222356988116916719885104677258596588916991723388433494528680810249934073880797701077638198859492896544484156493405115672250064202285630566104429024133752512277030836498959505905110985173607274355035806993662663435462599825323898513647660562788381947162981018191622952269812521816743572064098251093106476510799161999041590136393642116346928218156696126467696297830666158116985569967627553951298624471879085710709438439164831257056684329351434922031930814233593837428885566095883808932091984679829812312428206461389675771669966985094418355553944224196230292264839782354478643103639552595653676964301375758245430067353318691101558678093223018303899336317918246470020067330503947260794965004641376504051894624418898735764436276714230278165243096717314465459413642643841207121593840623649997251323008595514436179301008623351750350957797861630834594357844233022661413524005491125562833357840632011786884937356889905881499030537851001952097324227544704654913784642485864536307729494733041309423602921733919427591274234385180958744714765101410840002776482194895934556232234990678402993079842568196237916220581689232747701466922235000845644811399662000754009727778229457023609400790282453049972172060592755318036594373595999112794790302233521367384949004187462828678192212573327556009792492509163852181198060617529978776492128053958362453251093127889812280553708963307038828757538234176734457250003996830091012406149658763558306136557886189181370443816065209942736856699986510571950343811812066590402979207839656358105885233808262220707693294807706278886798721400272748979993037028455372947073857999271502037895666343767390710167731638004029963622181610648682021383314318844143996849761844490136178167217698198372295801975763495048194866330789358999344406716176703609165467954098318034561000463270597660530678832305543891303100597785528256117080584305290279364690125223462478673524105978720708538406800756882472265180233086441055682724426686664326456941728435303733753110115949516889793206471645124278675597565810365772016387227141595478477493678677627832346612116965950651003566147509067609313894855642208932327083117427485117943036996049759334769403098025495748741367702954613565566167840963331792986898115220971461265913865740644718191416270255555204279126741429637269413780964083564116989790612627883649150940835197937569787536733741890025102177350415018041120209046522239317881234330473067312748488956315920396703492713398810867629353530210306528881403589539589499907737908444610498059481249438218322779196150817131997368503982233898148846367122329110158973296938290297091826504592852969864841012574824363000374891954646740650170843502206387911264185694688579516674056338262082972731694138795654243228790097520638359931612064088017842507678192953005835378297725760661135882520452330220849620090289733764969817544368179793118607520354489895250982443472805845550966788052192661710654287626297666247242397635454820788223342996600941846193735205121996908616955862179933746365068445429823312607759169687100048634226977627919520360867722965048963873845979889753887914123571329651310600070118447414515897421415964224958014170831206008667410068357102306205253778963287266983904681173252637301015446876238728659787632139101490614984004574921390872398430262597954739157942804988062842145349171400570752009896553735402279745212168426784727787161682312999920656456951271380710668568541648181389786042532385582073073815217052487466663531897190586115588346398771972518996880167359301387856150640016872914029626150149283841696639254664685896589981260467708735241717020677374299792613972596830368126846531927192058744315555866638845136848819888360693657419591366281120414489809578357627005453619192501438483764480149019964077080776514510086918594558465884239020920688139380072811012785707217274338045135333584662249239873134871894594298843156527466065276579901111416114014480283054880827836572566188577830215290439207912567201592032939359035483451969486230972089472970473879042085878703905936813100218564709956875563222145148649098786966659883487907310360340661839441984187559679287068267747021808726287947120282038909051440911109203181151979810807097302882751463713353682299086287810796116075617943732090410068444889604463704889243388326921629582891516948365096374890458826677672195941067909873134828449197762621204640983040243656637651580987015936135994578851094124889146134924681523694076287383197586115271445928647788680655637171089329203803642904080638404044625732075633423430520302305406139127558245942954005715911956278595245305913164766364565177234171277575135174741464613993690412450437386182836345232373432785593270332803725943823259806455613345908608333527596376372449769848607106103986091915945654423386848725193210717914154449391669318616700314872765453572315126112640150042810226195442712640781071628023881008786559167968957162880323522565901647560107204390101581593107259493895129033011318062192564996292590558623503908549020923137716241186387342584327036719284899810461769260491573164772780102857729411807164293534213107494771450339354811414196017577897772578812084444922221460674075390258597921634110053002624016287472376484318914989588234897695369902232591595358247606652943776836509159557301564014234909527165083904900209742989399827157051437790620728293162148504291858512730622026778836810069499641122381038492506994673241537280473451222689707331809108649156492223772185721262649148799208882492128990624211117454327293009025281274764135567833488304940863662541465270705590579257569835025076495196643532531082370494931440166832128774378240152123042282200972955663208442422576248195379781967504101749320031273936434981592775157041289599805603325198680970952980831539273789190874543301809590181337152855896664214593415910393000767398491088986596341400646922858968992185771924517419723602279759218976205287009179928227123787471250555697891867665288143885752403595343339004221009152701914501645722248989365994324254629708074292769349042322771652350107906405648049396209176652216206414615802774833159415433901435720556092623516974572857281535957591415349013480723403249600800189182334788067519173104464146425587248661160421351643744388080864230879410167802283409244471746912379573797868020946183956296323954994541439309633598964080957663614065219991069800669299560459435707017153496996056994938327017777528120605749402360401918411774218037530556667550258884589887871209620888363214980171547861095427855441105168635615697557652780570235868704737955249261144381445684375513193775519139456676643323060231462887942828106585461212563505909030119576789773276625154558710647075738836339134159007275013704530791288046447317114966126000772938380138812170118097015308991671466758442672420663530115791476606751290145558657726054551969237583574598389246729873274926176659401349122367567917239488072825245087064765348371437173525903010326305109366506802357691379021745130648645459265915835702283762017772319024640030291393917788256729825151816179008687892980022725271335641346276049109796133648662534686080801611487554853876651941732388204604613737322761991628371352516202091437658099270190007189603287158644187636483186103364034785992913450993591194677559116361509062527852452068101868261460659750444087406059329593943705425096040900006617092756965077912610906418355247299731529540333268979977868444960147362090618945549660186902075701088886135691993016345764418340564794227154615275328721979426009110556345279524048501582702670861292348773665636644540566173452558627404492670343994571412507484561534741972979507634601390967968615496516932327009341140870910227045836568717654769787110137153390639003064491052283510586425069306751523503551411762261544350067275388433473369001828255913003221391190776639501971370321798407837965829406964999317940954473898561478104660478344526324267749268025221500894170740926116889027937903935414257621418870216168331089450624552372615124420022257088947996868043395752209529183531425276850841749408862069092829127777789138842839785899852524756399874474550200144972604521927432296078153843267544044872245979223718655296251290713497542283424617494254073702294345567200012152128539128320307340992806398624469650673191756551860248839706209221864519772711703966603342479428345104801329119818246987681677950383150668205787082209229839782847610216852221474593774186233551971101142432769375893039650212770067207173635262680912285162058688352024356163047660580586069904036443749498434829206452084266986174736177857587140010752487449872036954980044477919655985304807480757022873907920915782987425993177585150357091430000820621503928798200017830858348711434862234432426908991094215985957753558893737827370250922073587966976193202824930618077499716568545644396559336389310134233179540277094451845375151421765975398005568338954752933543754093729178403277966041210455013521419485844304906510129506740853159408714984413024373694751655851483581104160129644066830596116682858269255152484611583012809743024532343476684372469616917793918784681519580814918020178087783049529882803516403916685081610673249094576022537623302622490615096998573777800556894115745109812497590473178688138816374584810461932187754402407051033171983434194282352907093018731738743929019272736293021318185138881088685777796922077195063785279670649709142302362656422427366320829955428788728594092876628499425696783628654932499284035369994935406310476690904439470337394656431590758271154527294691537758547322540017836900969623389204602370176810735569431990562995793925009256936812126776753507811811597693304098671897615857145920361082526092268535624338832417253476981132847090924237515643224899679310967590918288150457790021653026407141020929438398828328477293539809597953309484422259973585478993186183356193041540066652280321079544451894272605865814209069994520871144383549886172711482781395057438994393540962722741306105436055370774519655059323296732956927302650067768260746314642078102289076409690636006541081411950666906868973075389658865666652469943244497883817812024453188280484697884260993943300030946275400097802195360577607678401737928482977968002955672583361538350149158720720397626066702577720131358128849082497805705651778933183335068409408659553928697504845960911609290702517734486401448322053914304522444849072763545734101539122460636950059244439887694995729838947290244873450064915540799290682017068749716298234388714630683939417143188194564634319968036747169733913838365924980106319794922396533814551882573161696707433895121444548430978266828653264954002366268193009725652838058726263036169671999894556048988404648349065135885918143275582140606303184816420218041480281713094468754603770756454658233471364832308278158503523686170613195567321236046209957950749394050005444046158057144232853383336749816449155937836429939438254177778807020955731185913927902171296736797823336068328963554932821379660354165471003264118346584226703781949950019913621931606152279984499090905509463766427420899754695305308003256822994219614386800885098419525313422765954385661089446534612540390370019860445075432001009238699647388199398454638208811699874029421406995616782085808161358530292008409734860466035767913609745759448922553708020929544653842503262487016311528792190398312122451664202702701348731759048290668700267070364839112774587820574410105737775265612868594331662725401957879713664433113158461101736251638204998008301110440599652281365076832431277128430173337014377117076828689834223940290682387122190096718452556910074078766615324835546271694335715141081397741930826311553222615220009236946434764937696397014239800047000493670602337935195776900525763210782319761467958619336219329240161928922577791569129614348942599783444274293651636382242327142764588087669837876700757130147109358592969491151059883456118803638786359439316888200982834941518024243534185481467168550423867763039473736436522312613089711618135168675789734696103775530733483426047025315097057859006036686048947482374544214107348406418391061144014151946836641803408631698111943437098917304539156231387717889819668024969914407475159691952822622398239477727713558290967798120595287856088106564260301376553795657363283616449531774705469438533801346457505718096886670824455847619974207861160603621920908382305109716878115758403539815104756465585161669869830470696955813088305999399325593217233853256558782203885283794681936758297007724478940194464070760760032000380814202945184170757031352776454926810036460696528374585804065516522417978491370098771922489063860161748176032281990650159044358886070290935202539181861336998399170381292866106899144092230054949211712308283672303382181821860618279275753610043180976917190461305402169322263160130209047761117471237168628755444602253545027694890141641450242929614851949588109895256512007160264868884227218549780247910227456123261265395515309656635555937597202478840182173783373627731833520840797033591046350452300333965028575434892670438014537093358451877398830560928604477621632249261452290435093751701262777784566353414850037213793038703494276030897937954438548020833949357398939120688867184928772301546169428773611554501191356068918418752773616256659795649456785716002684062143194805757852351042408887223426767408625588710905845006298835523796465575708467112466376407879932026213234969621045981507905576565726032349989496818958145913021426283178192873228457177333150990060969682504882525560721019542073899437906774943163263424941992262840980250296413784726629545683748998764219852003627428479005694060896818855802133535606016402677036639986341484458399416216819861544148141951771151431372758463612517714690384235460201029534713430233428830786313185231412422517065026840790113075897583625132749889668482430636800324792676777621955909824537586314266933873386972609426255722638726035396229392834170081419993401330032309321260205222566050851122083669038054341340351232756457263425332201801800142441621338082532691221126847609270717827915863681033426220943678826003987653839774964681866231853840476979426709251700585907937228258040067280648973132920707566435959982549606543572227037038463531233750040743522673463019506660881151952147503945944394013986775090928981331997824717475696868143553125574626797350300580251334543255615219922797415076548668789256704536450967225531220067462699036183134679426299746389595923792170777870585181068006876974752191931162669326732946649223328704534020267076062049227559334213080268132946092329499302730725521472544089309459237747184479221991742819638255623549880805342600369248015879870876823552216969240920870310390230744951412766940290768996082857230369261488286166320418377672006894796509247439215937192645881478518519878068458490298562364914203753713120998250902511827695671814784920188591985274762270908373132343711616316336715139601089342153865923428542264506011870938662060222622578990741570160562974018371602934420553914333100325930832046242016608708386431576153479358998908844937938952413429634416114347576997058343337485415212958945219356056841312279601666417908214164346944432189041636631851523177699297042830737120041687152776740489274058973268550461402658833996563735425039689193687658395084369094094544971575720342633628523598035242086633017301621783218383545692004891529580255566849148747301359236253104916173292617993189553373920369793623199149325224824228010698188101763901136943295039671663360045814099560592807076016208629314404161897210295607950623016898079772931489646948739313126514471571118863211035967436104825613822223859286971524224705430343149242613350698309191368952299320393174132736053423307232059315457055131139734530632310206935652506720294801149670543957030477859861173084037355564134746439950027022990398305234712997801500990371887987106235524351974321943972429950187301761921934400651907749842385331500256341707235433191502186913688496937990000226766677696510741976582676429059529709021726514893567430892060790874102375374531267978974281326178812431038825727653194234506795999853338453936797870937576494897189695466362997665517577540855294247072589173241579718031310196170480077924812123971568612240855257439453855699347407824267753744029992588740117885524248809517604641282284595141318150035958073564191817967897347432400622673345510028702621694180203297354944929029028654438759538003974300718736576177357725801127148475963722686264002370517143984438389930769129200257521655331494776919552483565787101426009784879670235431804515011747789054109302700744935379600563251757869893201012841002112642227941857819467830732491722375236391396306270587671658253041698724297275780509468743377235764141533795234977755381443131535487306911453890207244085335449017372880591026642873862883340703921391008739339449630130277604289044737176263185650830077466124746064437670755643650381306122445872633456000255100158969194724925147802604233730264377010177671088556157315089947136960748957064544517177318568521925118348865506228547270058984854474285629085481243569195541137186652117555016104527361754064454830490798783722362005065420445515320647502291707549502103117189724497721654647963689785499981081682229927154686007965012237419242777859011780784903878401875702451064838342157425668768240519963217412938160693834902446491273629181258598205141484552410850367234096750838406308620428796899209590032058178566590713149035817544552543749526665863302542134587823900630415712906887837138510780005083803625202946450367814955750009956697132406814597214555268293159928518474587229698604620845594847174404490097304094721263957344496605343773160977903118752103581846737606196618992686884686423305177209491928142798752691399325686652762051080065261190952233163618761074389589172490758313388914797705455650397888992653166182076080372491814777177854619304640476543272324832379199363035404780051938978211185355507869706267554199024481087598093230915183836009129204548360665270081360865280916069059430011144023198499537785809385980802429183929669375653890840147058343516148299777086547234589862379481617522650360961466913464876911251187021855964282861436730857093447158881263127554241302290760379467780331456252797454833761723013212555289534585656406355390663680729925699765220623307205263402935171529727777117746607299473477809961136201475462747371387880675689197315054307629878659650355024860443122374243533534481550648081421858148043383249161614061743302533922800773338298195793781693829932154312575264698841176149839904145080479158046165099554943904734746885293718445245593174356489601179626220017948370351076186364341758734374910125150645110797199854440417725564166218826914822942270775838239450545243483274264061796713808195936136629249545725836608843991826142942902061808403999097120011331149873074281687350246324749945452150396330032923385450381234522051586407359806462709498891494135863731806944863188764344820120274305765754380571674185739930637025157373496603151428592390404226620006545890377091482854769412828192041584638030009460536750779472181817628713635957694235373390148471014396822990457684363974627680374605934488863162395753805075299047769068724348115220975404897088792506465511768418447283840520309539094553964618254708005179878092531987224330968597700246117073721759126255992671120466540156541263767800801536175235416733663138016601328845488357058912262674569082248751956412040347357782158343947604589362551066398490628752156148319125227751048855291347818572191700656163972071024185856327980145421532059024099340528533989131362635666844377677556941912345879779041635695913428398604708724318467661106488696911941908964981338827548622307872837726504655504683872521374054551834302452195027085525127106562400998331192966900105508138907029356830358486665721771940702878883001808029919957854453062418079793953043340178376795742041812692665509844696615708772102806773926866882864319469173669815115119129936832847601994452016359591527166124209248795018529626820500837383540000634479076765878217140013932783981037655374636144595747430544632924891160143929390304453789920545266773511501945119152514860078901656465047988150415517532956425237546017447308932382054346672209592378936497634457797076778690581203241927924145081508178703941991176898279830243802749163345761863416784115841988350166347522346838487814924900499880664427047109099546868427288562069630024383103931569196252064055282516975328595834674801861912530757533573591616336065142909393019203279867620436787560201123850463858110158179762441942040168249177452617857547162114606613591433421364707038152152077367406988187301450644107557256192225808334416630688545266307051420905406493225281276461392251613949940402689950032483811385204729627276311538559461085917353033392559482296272699444212526910360833866215916674983370526929630327493779134819813128792100892293456170199394803722204783842703693568974283549706010806255767125224875628258782589163383962179512514478204435049901102074982961773334913697751302018258598685079249311816964769668856920412551129292333702201661866210122111879787138994949274020549821354729891561643327090251340624305577560666009698502217616350846604466481249792782895835774732734569217431847092203991552535211997982766722475801363453475167007531282656649095681646857904245500014846953774543971528734014627984469826254665094792729426475362029072374273057173521454798786289827715484128416022599100040139446504683924229160294022090459069730858565492822016101280037259299892196293906564744305312892173969644366204565814102199353954770597886975991910183367829832083400303664556174922604913989496895517618961054044458135117876375961139800902876134210243749099382098194461385984059394946321940544577372318220854392641856498591524953412893707670025100573851970162630332105768509680631489363614451974468051418960827350018980166424287678997780602974113233544884764397105726307650084048332814116581572939489893702037346920314996969939425895164121095082650515258096778395888287355608773469081807963872774242469822904050296237055949168571587521506663039934408428234956967246741510281022950595978646426405473978179955623621688690009048033014162663914109277515708684533159568980440098262280615063148864931636286888317478187756104741444700550621600123333849452619438611406591668146562684821145746193491033925344765053182308840433379402314697437185031826056561034562063202740842829624103511235922001624782586751027089703939883346125574079710987473789266590956047384887164246068118666297321111673935376656297950128541350894130437835443301067181455326629383726608256714832552969409543930785553430546675542659490715887309755293674567663085647331887804288257751278888496085506693492649563449432881708085960281946736444645695816653124773929256359923156353682440365703496339049208690909931095068048360963908593804797692088638436588616758852867856722228709977820784372412459225386483408398695634559699140239540475506023175768969513694966703457002880386351201238104955033764459706630650313184942095830971815259449326513798632646766204377357328932847808627161015351771397173296090557892459710368729038083575318885520771071769056188847511844625656967654294520117022884703597914972915944300545798444453764352674275205520001530691103232432285396468412758085505817825665805261160363928615108155026228753487366926068458102734874542913820635301541591438485447447252363471166773371665504154365390588033815346936731704896225254293254398485688238576071540045767963567668364981290644903118561245182280443058310729269015438777604789950777844800681969074792831714884607910253385418416164021835918808922479299998692950065761319986651018641259522637327041679963045251426343369068794499207067617742605784057728380454230245358518544915749550148154844292874187856472207052846665084644295025450162913040255446555477223067693277835551818862435080745272297007351033492756903425586538791690532247438447486843641101587366052680169242496857306955223868915096342062335883282150369072933953647533313350604771740218233913910268358604705279535835045134986150276755156303976108312245505428885407402151547393316969608613392310911007616738279802496943415315603583157433855178549383415679073664056986101032692018951425994702080739595418649870647988681718780514061030291784693817900401178395060560074182826770119130798891892075882617569119720499306069916808379150488565569171669314021245550030423575246809545003589273274719206825026113502687471211897842140363657924410077202501252366056610284303318789336306226908967656301307971351834647193856761436385691341022530535956236427224142934030792026111092553904131668475046516559848799888271980103850281382200330798102997445966777063206696068211694724456258816730753569637162065430780091938680815697975494533038760034991153634097810284979060976249498520538984289204344153284045863172253937647936544168076513881325964431555569887458545207774092898217290654517567949232023426778811640621274592376642840840970564473821893474299226731917476744866224819303680369863542808866614214837661942246462278795280043634764010609761084762348842597604986631876454674145159655164843736508935494565884181927271410155167656593865240525857213604600675407250439618718925332170974205634951461263982466197727801935741203331343046917808919833733806494486500885879022868959287230127409375444639407875341719112603893225272814443136087205979631928578814452576651824416588623227852151893588615342371149743245289181353506707327942351402983055485590754969982337018628571625683582696895435801184099994199827270688934244992567991563495982893714528711866366253372561734926627273818827933303970862786577277120353987110890056578955445937993446448910070421143304058769021428792529206945837410959823781731038331061082281222319690468185205997566934011801861700751400237651331681324875160449110733262337601637430253643161210274535153550340527378280100029971391443743594978978045423932328740405951247905835635377206846700049950314695129991621715050144310360362048377718772135829015189538551768017582339792800687393861901061659539626053392121194122990630404531619573069227687086973841726230802384050179923055880781646705546976622600339294481701821435744953869388009950442273410300054472003882922411369252103159518384335588062353016458731212610769482520449343000626055044205010546277091027948030765595626157793828470210691941893183096101685364673095698727317493830011558176801095919978446160612559233941798275094345450664478177916753572507428539770084476579739385003072308505345668011072785262029975830636958720891603411050255773188057305063637873224457421973109710850467381787293176002448498147309210453986810949206921136111562068194427381749442303834556950650166004754216571916237417646452613018174728339646996561044521662635075575409108006431595323647638280041318993661085018021339486195985279767906214093915902126049343963371384516919682224636255421755165127219150875437055297041396353368887653289600816562136239137874024945144669037824436367552587374776645334912431817999323418228744919915690697675047886991349827491623708726303825059484081633675365381321430025297730832314613738168303151361035207394564996523010796000579029751383073781338210265859748342126205207077936509339169766800133195559900086877926345779842818958954880188913098093785059059964956229799190437435249604417044584387184204799026895524758883093048996710776417735833156093630917979711163187657665976015675422776901207209165047153884520293413882821667263904421962823866585230195156482630203861961697699203643172477932609309280830302905675751069743463865664075734734946318712930032459099425570727563377739584177863123744784294464144309483177255722977860390828635245221784339882620730027525728062074177765023623315916006497512653651266223100128183658561247179585806667029782598931699978131240672304158968166200560119035790886709688795668864460226350201673280838018079975209809415521101862132522523446357186167981390589393568364713197142976641100197269851064216015761603298925708644294548830043270445768055844300563647167972423388410401501330655257658147829066089363200791600694019487029927149480761695461007593218002289610682923895651944867467335466127379748253785128030020601779575317732285563863454658817236052990153822139802162935530185179154781887791802078621944254512312902823037786646908984285548467128164090019142893256030611672765064222695667158996120138210367510655289051984915663209933982611581494753655046200911735436408176417565596645198958179231580071205445227536081382389003304482308115485718668984255287354624267722132149461598369080523856094744503312406048935238405698110683620957159009200387338845119991559995661892770985853161163064522549126351142222501708398368626419863160971976747819176142867907147914025745473421668356986496292491537515807317656959704128092520614274651643209313317391871080525990834972077278079733708094885251557096403341327295799352385494507221022975718690369180176684975586910084632369275849850017106242682079826751103166236288964948098475537313863907955907309039034514275498652234912080450753685436086615343600808053007737921385325665141095982065730098198223210780173735970402149852556558219819513512015358711427343970796587125791985022432508637969952127713297514252127775317613374742472933158715874923264521681773530105965270416474271620246781102351692268274283447560954492266646865792229171967784079545741927717992261220755452895636681967921922382547551385669010083225333457754833772268900077264432753087747819137548720871006627425769615228062861624997999449284578133385950334328456866580486843221872680194247360906622015879930948766598352341849620296634923317525482082594063699418337448265689426948033023842621036711691698991566860036697743560573579343021785550710152192661691677731678135042891667109212074811930763829795045843914235016550506076585026703675828473012158462492448623659704991865564795783692704170372973467169056229484157499997137981688928713459665921481490999202980143093024952576097041717773186264685620098710531455930705800180642309929748828711295242449832939389652707760500131970002618261272111423815226372787075805827989698411800856730904952112700687751940694982534967788793626064698245395508690197376695561658284106381060893935034378308612256803759165614886934139383141285736450776850009510780072035763776892727642959839681925177635653022326414444422339539617169197412492055724378059896611690965572480552305767156761605590097586329817021879539417425089974564984588504783366175642373048611302429912577489023679099077167841740100152115986487457224146753509942801848055309063889242605235964617804766706676599844845018483852965242843636172898269660932673611188741018374867226754537274352553754484044008394564378746585411632781893903898330964149994435441895131386898665285403087380301992713577848012392340073192802974023213080748219774321602112967604134775101232977533253515949439962050820580620434014019745617590213857542417854323333301995614406464163172153061364961065319125476524615726686579081809422771302028242381030836898623481626974615503977169058911871416948357272397530939027414073369944357846547011315411142130970462195529438591655155045543944851417062114844753360043867827840650111387471785027991059308169524990682505544609863719441050950041470222283192404604607814465500510747362942421313686917865569346043485754567554098064993126084030118580861669202598288203638977093353758401779681367084988021238904253087285636771663649855211402137664335735977868154694916764783962001781481556724626819850127840343029245480529334308169127191823619821721510108894215743872335038515506922792156502601743996867547119579903655546663239159970761306620800176388664389543123972644180241173529862014557504775021411911111268884658790520978249558368336777012899926517751724548961802792337336216867046820365410444587325709507186361041791497653873591926558609873141932802585691613797818418136534637865536890566559501818225105155136377734160671695941260047616788534055870263071393103893014220448561677314625018434132657984623916375341915328054963405983924522912310763895839748639939962018081495049310751302860648655867209878287192442530851576642766329133562363602815965105492091930974983312033057906875987956001573344312420904658217576722756546897624036202631744015460241580383829137298974082731886598818307243575279183971245200241938353256349468452449202802832650728831764939317918267819721313166006177403158274637382447984252394710259775915531317697781271961777245043173296174585947283339262383744504283984434407615846360647656260211592807550042309168150487475255684365716770829031132559929975990083259843462872431188024230371062572707214095411355616835440700507212003168313430918053698604577179574200202062994259309947440737580065991597053885218755702897470106907254497879549525408871188369149564273032935418369050274109734345875396511271379813874135700409950367052120711176844779822175853255238650818205254795061656515045616856115263625121966859602271636099492942852226435183692009709825430174691184063077642812698027307085241058825432778894523931015932717415651063392381564545241322126998520632373908383294837377346638933603352364705658831969356208561511366470662919184038006460733842335875775921161249962427893244637887778463066936653879632950628918162045508856150158620274258408820739312669552115548479740458570413241817662664002664524954422293891401859470366785087372940111913005130725925377159546113735227387630437765855368879660219563094461850269971267569744938287470752144817935123900999695009018887623843582045292794117959053058108705377723713127859065237204155183294764081684917393409442943302878305150317883888752629744109372283681557070267515704129775699234006174612728679365440879654278910722228131230398641283741429866217514071455976618090439695812260288014693821523819846802107273147882201761674921383121578746300939760701136748023721077453356340509805191157565035944123240761644688058870187411286619463037785008863029828471344053707907679846989427229715254546107954618574798607213616503987258368816878916687240252000388080551195979073365664170801809332428826211060540708048032807438954457490747077084981156108914727919234208157768564142018597564380760713686480269694896879748217223785831181086225403457208108572554042367585771529566302765385782370149742723118929794765151114362708843485270278124811501813883467320571379270294870357832171431929603661917529883376447372708804631998182323280307543659267589504808288161687846193187610960885136420638178115156101130367497393856132487759710590405826752145530671092118131955859871177932265660230935668069678310381863526802705686488574064732042934411435437808234038246179880528401234453225726188341940652575806924571904952539728601267129233877542703223909627736786452411755879380504427930169597246788987410059814165006607476841648861476393086478194805678998897339892423466780831283788357382115767369764026951585461276317710581644730890052155294740256326360878392092975192555917259400804817292292305594609842729101735802456543414427840457879821216485109975507151300361699323508921402387189301192823194132751480905177884933725422381379772937844330090995329633685579316718266765347816141820091525653844764545882448520771464840479036242790169571892357028596683641821718659020915312224608276037289199708204109968980338793253490145581054433514776978441365153619502430274027860528870128909247831463342499590713235172566108927196925166913210378390720813034000268855783375124934029474101194658153202497265670940020164078993456524182611970418640961973145096415533072384862080767922505878981568932499761700043795094318693197285200236796424407105748841709151595731040744607105950555555359825929199582813341949713946252666742514786649639923055784557372551286277250624170260683696173647085494346354655566074655985904745467376032094898607966090260776839118592027607568723078300763080190453031432904478524865621698848189857394144557375954406869828575560517046813857808168000919277716200409842144057404375691579211737770541996431252138762918457873674977785448909461698772461529143778798341986654566388045107575423747982715869752351440566415000795824695645035526210807270574640190156758566412213894362263767973982507705066994827362627445196929514991925370900014555449202269269108103225976956693164101381616810016460541842157804731532513559541939028139775024425206462012806308806774780073564801228575066849670883197815747016349718883072014860220687429251997342909390603729168154509605099764630644884030319514848179339397370004204073569220468835918970160273294638305965283965283428584831649050821621311991204061622965139164178472789010422171214545624582311983287392406322418385691452469586437234083166219642311959630318947106163173984201892683871279366959797716431995707886997003376007404244174025812178907138134626975395632577646452382491675818254373967260639750110003068731797262293593691383488021667112107134523235983248411840221299341430689146902622193874418431568708782435447623179289266195902961324024384999460597234494609670332031116666584094771441713914748711751349748770739607997894184365377841908231694791608783789588247515983698426030172757484499173304927536962068513460092872230446600304589960023907255271661620312298715755735062624981942940573061347078487217240155594670536578131757960772635281294372663519037141696259834062690298993348126954302491606724123533233050115615114214972457819620110024663211533694858812039889610405617423518808251615774537522344191686146665221038716239591684759051392068972088751461543217414642774871823834266928915137501725364358952258933261142301755215547605440047438487586295968320702144400496480966528643448327249839412719750583901432702295825471140803537046595350462582281552468145295384978293819487799354193525460230502381374332998158611950090971717803299600347217242334916721926902466686183757201695858907414706970227532532336084351644421178060270876456974378482748043262609157414901923765079734941408085260835718259058087692206964958956153478204221576931632788877218946431100828268618549783087854252725646501646451119625181039106645289312315643457925144445536700225934317149762145038071334863627745004835071789058691774256405503433012405909457271909030776394083419256520337653262156467541371844487579455003421601474111947061299721841537270968221036223193638866603472870570907771913432586455163961006692550217654619965701552379436196964534160066381061985675701691147470656237373870070166977778022912565890971756363806982842967508252497934434501761621609573311764375279483528875186846817185700464074394195890576618904766367531346310843812227552772623851724415458737446526147108080123192242949396138321296978642602589475762066065065427770544189680955320426953968835950610573760696299605450793415249737699762373600531362121864235595046024164129053934094922589302040536191106179455322848812224639468284775072998965649402462395705652869637913703026675808249562695542617350846179060534600455822021983663415799400331644587125318123204958048426574790215968289912838520831965464509487985431489330625283561617147941739018006634659360671632955981503074350904938359878084418024165024588631507509337574085215125497807465293885428649244954970984883273118710205888045057614474006865274029657491536781040555716105224031439409696967428673173212550945528275565347453291646610954872769925641594219156744968560982961234182623609858396036208684904133585562978676086107353751434107612193065603965909294515161430379869312014536357460223005677192543912452884390397773539093816282329083456374486027130910326675048168838114164398631879915340719955827748849380906376378724848569559370653579361968292446592934414709912549145487626961416117374960468176633077993668539647415197983492627499314516624453472243623684959072833396481757411203050638944443086791999254434030490045162995137665367431422235411089807816855526227206912718946789953913520366439973372689236947509454901545974248714533952779583412982531771382576374906853259416857849481625519347126739241527115133204244763287752960577361991178164780030772494479568263952316532161712140561938112533909970186706856772162816797329559125955767952021355752426322014900548492428800585486076373682866223080315358832710977320157828504133882211696181624089030983928870505468982559676440069334652734770514720452231951182528765265706944498266987147649529350366473291790738980793473065428003792773867017203030395276683046380329491184850712486272849891504398961435027692412249117218916163288040506245308025293743481949909042127377108763675751672421070151474744715124453153753082430711373498633186015781971503747234019956169299169977596925713236785961273954665470382665038756060870149183766428986804892515824277278309591421717224592551368361365452745037510444774202128181354863000630244480253443792212605356644877335620687236409783482357643481026615874454669978873569724595163927590171796823908339695576695612682415744827763335864983731149541932157716806360985953757357958178171724314402654418187011917126540330811137375656463201316446880351772619280313311531622317367599003586168992183738893987590955526373751989411987802536867381976254409577778309703376406801505617923463494410234581516819659192042983362634185552182113619661965416128251098599676130951183265829920402968894230159252438860743290947628640376485824156550374722566341436322514995484402615118244576501183258264681857095100989612700407646650665009799115421327915400748143336888381872568329325677367082078551665510923515487216448725768035741671269043209365650355335728713339801453061869803660283440684208083013481111526380748481311850627858086590338343284739850583300359937775506148089648410301652939253351075907168326853839654128473878210902362681106436917666223396444038153020242692397551472424073863561066052045193964849243658496148058908682245199369482321217291799112193725143137745278306195779477475497098358665602099944477742055856687546000718171792054713162280831854415237566713546762113552210996501712656861332875767010593909290441173367107954808326420050490131517576204585914803486457721035394529455463013718129111113227206480013326561125642624827954093217506165347678000605685278712590662669189695842607642807946001441738585513598368807686627909336444105899056585313551662706906228598254539034990977799646214657261164485373223253959010874125140030633131932209690585453447688731342437544644743675332569574653311588928446711378687905665016541663441577483521809557002092786953648505000964970058622445637697011143775644232153312053439759359667713482823573736490333343796507646092641289162029822510335631925239974007886892886294085973197665086861492939871222870462698629808250355740697465937958011853349029826994163265677706332644963132121963119424416172276185144211234216636808350402190020619985413796061656918153951913309629313912877361840232446541277802337587509783101973754500027924720185083570398501994548806168959291009907963885095748790772633454518608153609889924915954198068221926112502947404748324621477678515487098908094554296225165839496857907231922356512775527136583813809662975133121775466696227301810572831509484122149512497966955764955826894374982072154490991765949260417790904903185515524079184822322862141752957583247690000638176742844892909194459505489920772667769854390162981499748108897883952246817238483248678375957014525254136713319857466087577141233888230806346855517306691947196994996771358378900366907071687999817074900436938212472747865708286935957599755378400285429316396705756906447484219692499022470877447172662814438367177326345611076263021158243079381471929831665746795159735858724328879813783695198478249177910953419042570024466855388139756062151472873219776864425215983195109843806922442930222781451025713483885860946642300930085556717067336053610093229913484081106087347429233249922142995256577417950339301762633947455099985235688873867178520270991199977302215987736666249846343658207671621366441613865859364846690338230735937109707218657949122980432715020361282442764617346240349587885136948405248857094552891192295953595645968617360604208236975324920994782439331608580541048605437533535617947247874643140804160004747262314109823580429229194631762375271003805374004268953748156280403894462009672009654764074710449279778312722757075170944957034166454123256294147300311383358729973862309845180150062362685161026836690918847010743636884458193552165908977806393567523844609472093512431943583661759273395521586635351018326391489401661029255411323297318083747158987145636882305033747841478908930066316313758695204720926800856267864142602079114117650776341985644107161987582250838959845025829541796604581878202235168270212457959789049088349729347750178373629232608294178933609536194626643484748044200707102436433666227898510232925154966815858800842589161735989586292103819696082267053362795030733942221751528556987470681813238778443687559816885943542927991772442801511237018998794914913112953000648706663523229272877613633010178748929202577846398524366979050945403757072156049823855841275255019868715922163856504475983650706365403842462792494245959136703952993735383384470271691888471274294132468272283457070985444088536907536748570159393579548700075463196945000500344918808562471492853065842412000458951895149239997231263615118283585599901668945284589860969772728319623526234883432512426942276377734104719357000052373161272463326227251922894113392955619423216908688418736480155487284687167293555756748729378378131520330293122773644212204612817057585626966028434233893606110533648447565274440119740769061227222789174346647077050544726335269994516326471371422631296457705685993858867863851293793967619093469730400915668398243665907565788338000725272576270363649371396223741474623730336313439184752220332466254517135529671684763151351945706740205136403136273657424182097927985913956667221176732173865436380722062825625772696548753753561436673209059959837753816347634573300614792055966550950572333644702101022907148110373586974474481659901631179402400243735537673741749806164898683589588492311963607801246214119279588265770272398853175017910113108625043162943011411153555994321291218766204513624843092637821185940026632001324617757191462367593364504248735666227286743141712134665429229600113095362147515284425137154402325359223571980541876437960340857865927668903515517170021756086602583995366860260041464322710188077824876124901601682509477570332457665332924575187072252057948975837488541895055477522918868508228337103944046663234085499280519689308627349376541615613675852432634033563837104975480575134400579063510472701480206691591168108745593023061958969118509864873288446737579926252210552530515259186745457537410218745507958615244245321589155437313549482313436639085156440393015861589823633695973995453204950598054916178996149851915921388918361243338281886393124317002059600518532460334060980498725165116496559019705064739429345641473619956724076617634292831776238605097409341883569656565026172796058032387265249764054032738487649818885296289167608743615554268621641037806548210740566835677319920462959142812310047179621252675777094068633111848189113467015799060469186868584389095961838785432188568246572577664622535385381368343023894834934400127213844963683707503184815754800027860183625390510926058979168076525824018015235752971535577003783551939844008062015850734630325105444311237177294680847475925636800730717710893625470849892620537276703501672897284633298123760860559007547690997313779838423204226669915691071891177914307426410148267829356037958657033673198513472752481696069275541173235579303548735991353219051425574780431158163023723643261614815835556114419273651302198527841056938619600114343410013133746527168016229868568487443945244553320782352781378153101731372117842280890873366900990634426821265343246175386645047675189927117011838172778398591613302139906455859811690250161184957061374235296879774871786724820783245271958401501996116696828866640487220301895275904745384438312702570882973861212831018114313257517141862575704617500342476494917446365220728324041090407628015791172307052415992673967172874381004054408975560197649066998847314969501857699156590838677439546840745989407213532029965000644505371364742079849378181644963997581132450033943829472603531774240747732004946020210429994665706770800958243505538532159042586827779229579919043546059860604862491957102238386735044494866202042232412795914436020112437406025134886179316093382715447574253129466800912284879011677731072429980921764285542893084624121088262761114668360627916431929773927636034529433978102097351571496904284705920489918648292058300545199386787651784759449892528213102088196505439012553663168705246283902422994088214649804394341458545343622821739790074754198149558620555382777766485928491890530423663398714843843229254437185458859016640218553073925407771840879464203186253211531012392859373990565833880828297510095670840038782758614865276048558008527050888126452678993264225986118406300247137518325708674196920811859640456167932398948276566871610590793469514927849793675818650163007272874813163335042386052021938391012214278465687648672349609249824121428265875159459022841132611156325038984103339616622753984242010393818933815810809905278016253872252696811180723864587519603577123686277531946324867832752422822218076844927824171566225861413163134607459447950989369489556124271972038878659418184361197084422999959751846204069010704005184410668241393138247177175747202397134250476772201706417997377800897219507698610922241796020444828784990736305392192939332191877501419067383886726918156343660972166040645541121233723632654512637050285727239708797274689386684060905811332104306279227005198713132709304787248645920291009603568024822875144824438931785842123293392549631281403012019884701949832294676113184322361636832478072000540639283887941436159125261280133074457528405836421351521407710951494845791682462291142115987314036744226403130201969027876204359240835370059266813985683428789965308621564229902312717566957945218674307722231762481032531934768141739475310844507420668566652307079367391888940784155864371336767236605905988804109942884763049380454815202851139634790102230937099390899377381293570053190187717858116629703657647742117074009457129064086084964978046620848371462839022474745649742029491436681461365895821736413711576494126383181051508793877851827224961062830399282746176917582440371117711648817484977154349039333616469991533610525270756921669229883378097962376768579691504243499267231943084260836076011208172722186946176927374047990991796376617989084437262173904895793944800421758753594251157417840581228825118247850756014206456620659455799298285462510542942994807461450403903104025697680481318322009030710626173509866529663059871307145117058931518512383773310915432063915015684015797247447582247635544172937957183571996409851274973671461844617543570972078321751173405200804612364619329853067185738788099684232894133467220025402441290040681342214779409907574030219647591253488841500262595137352465017921641946328283783157943393798477529725779019474610399069773660559420921616168539974279594923273526890369166250827031794915220851279227717531207295361228628804140838934551244835810287961819251788600786724526437058956026634722456275184302851254505909771066893523126152043223334468358257874427255353848003251847670019499470384984516428239688676105622132210587852414379456188932123709442403516394197280443920968072842657822790862574255668766758211232666811826304719721623007219769941337828930568089446849724575994531329098051303716584127571919413033891133381391594216932401113486781258132471149216171680158890930678476888647282885993290031320524910680737230559690110728220555111433658768189684717548666200834619303477722459986745833968801075631836435459074523076128729456497220809936405687340912662724251167263297960181878376229057453787560249444140909256689871402074512620530924383825239872084971378726379255259391362510174420391019949160517835091090706950279430574305758773617709438106571140938369688693542163731219103734404558545933597199339967132512574259470867841040326661713574315948894235662158627357829423901081525633109863538123039738930016117006952408635705248940110913395735189612132738255404729284582170439085352596704277809467131269870412663992746463558675012454778196046280665459481806279619010117264719885592472375801726200464588890573377226337883143383998237718013436283262108305630338266909964086766431428082073255340073845032658701146379199511890435904611494376867454110549544650908705530451451616074610129969647126112184500236003627782368074496174182984248298351664023062496430247583289509621996799538214337689020649380020343461092565219687502249414715249545550712335619705890961675452145927434668684499626450667744590788892196023610902836909135371321440147106683500307869879241870956675857300803144095575364379120976749165224277156232956791551373281149802623455299958636941203907331906046118968611735745295970056138251709599561211028198929718871386111695201513269761943044688041665130247695373779529341340917765833799368658711985375492379297862441398833870867560918533205225729368882783339657589040556845440928524527901391843640390942281635915918157579039109188190401401437041664893477340692265038842241566759650985761231198823852158692621756372491201359334923025658378590154317948303807355700937733324932380452464051205966426631128000288989958808558135478400288547594145067002611912314160510011847013919074336050875943306200524408231014054647485709511585031089539746973839858931823527365073232564166094435097500682992847723721507607932514338893838066547815640496029125272322718905319754264525041942815554450480030814349030226710022894021498258837523841025726845233440340388805469908529367783823388220393024236087274344848110130421197235498001130055755734138351280117988361850676314599410293062924824700651785032691511603882717061643751118306485841833154360828088417692977251263992067642272410676540902798699253674513439422423336283648846141005642258132203218809297927816111191583874549475174328623815322490087584725015410080889689141573542835369626622436616730937786044253944438026916910994673432032134429404939676215614751304688959182894756099456244982143244791620739635644613517051188642713116372890950123397662937334723662511530703608569965782496526056465375823370286160052140452802093620054201869393109631632510383500019754792699903459614193268356301600575667747701177257484699094562430530555103007320347415626596859691038785929614435193930547075072754365219512783406205562857765238598656632795262383840729609194341787711079883623594820510728966424125965150606541984115483760817473844697361594594078029114357342941948375780112438724893814053933871676910525278981979664942206602544797631722287078119945016092648096022439374175516625310488821203888964213673624701371887499854080481505260224021408642477548742107434745185483967031984863487826840260407117682405791497075377300691789485575470841616670074441221103719230552181157351785919649214784689240716312783663756341574536453051313023358365014166196929276359563897797761784619086632767247357501720903149248959939625399445551972728855851815233449046376366512989101418160310170298293733444426375015413423059002988701871573226758178722950831161041454514891301786579980561343021170594978771738001586272572194862377688170932169139384148640094559412918106275667269193381706369683143237570341377852182305809549841110704196147818745776629170569506346056417245136184304632220551398447046264708025743202449636083383179573318856641620606384130567189707613315081517527002964168891490509967176171968128396828022651715814563468329535373134081143291609455960841079436440808491688759357668886030944758691268733483234747340320279581246268935327738423735054702030301460217514958298309331971642164948984196876283659275926356913228478180803163982157226580739247710544478269570238525130886294264355322831398428522929486378413387689500570900208939313468298787502002921496565494804495542540049858457403914982974630856847594906010668906780493536631589666876829406119725810646165430722748653940798606389523415607682467436755123967616537538645430116149160334479799681489111361029625505882807903123795705526752086240735884425261779026484407546975720158090208373921795720668503673027035507721869650584260467993491308768292924721489593424698669554509568870835754205689757929825897986941353644063934676053567999278828012737108218868840420471363617588123403925874280928074098661608252703086632940628522087022248763308704946363871470614741241542735274105511834399488406493284447332152274468940927441642251412966868070091418418745501867628182506954475259938259542404756814551642647518938082130491834003973906123792028997480901509415046223324826404547779919440132911133218034013966028690002289960306851295029932831822356218331168657368432272213499908657463774268044349779961385365104613624046807762243992973016301458915656875073973135148755030172295194614659988878706085641109166968750821954596809999574667324065553332368079272117769835292252597018997042919290308166810681579391500611774392632560851761762847439300334818515434046062269439694388946182060008558187117129156297563925569925906980431704891663583270795905781355797402521085893860904396585050214770739743728543754869234243105332612549219735996372394301548665664694416097557050556678365452754435198032359228369775956341659649198800304462477443425569897833051759984604533207677221071527632002134238301298243720992822754194163392074183779162337686568068025623047910908017958191820212004882224500263730124573158972959316892371617771900738307500698851021098305311516290470054282638354058611226148817806277319148929706433189856723941061157459215878824496545270251673295982338064863811383277910232188650397433808743918436061762734652206702177212544342555142020914301531866266422840110691893677875179455324589548422898402524775214384991224775468482841582382371014913737769306680411995894306690902825076649071670241608630036246898750495498701781639925273439130708312726927989151776300672994850153634212484144966376240402407710845364973074204601163935260106598053038283335709510361568317815002847015122580672657569375525518332076980128855071254625317319389952678008210702627032143048629198304416386935573763248143238081061480368422535346116386286371244923498423982373208295147934500049075547545519900256623948784398721543113459715300033500290523715280066472049312677769331761311452909771345494699064210389224385838955450675955105009762941615244113978810865278306317259338242041850609670342849379733162391639891120139238452959985368140400238373439806442860114353641707632964006505749263267439627192241304251117170627624226291647908598310289269843528479303146319517819320589205670244485102585407823237253283168165004115764973553982733155681463824593936465345126389192429598263282482262724559218567584054319073425741407742786056058305772232586340694279531865408471550254301210520022881202347884667448639120286897888269568626688979892347939494289493037789832985583705717739518328827724344520348356787983134416460502064786388392858376225916470937548007346312398262707821427116392347248709007089258484058179531043830229624073517621192201612696539705276712500032558366906033416860842913091704352666115622124477425688515405483998639183564339991634019971851425640133307336635996308938477279736669956749147210102083312890325522217297098130923096256782096077977102785408367650182398706254235094111945033759449353069870967802430782535213753058098405605680402087512338228411582274830753840232444793790568801230733585682883919500838045078660772822203362484006272526941176256611297160754257377868849773623061708816650153614582864725647828579485405523146867756575110414072937080340174194979295776820562169577272814481906069448235502879430602769896305122651837433316632377281256487277964428024375317317642091923364259426445760757391125956603379288120733569122909786937455803289385038297813099049455224793680669254537230629483542585392432836283546321685090608643106925267613175164681305201532162115998326281166772445364105737500319646567102918524643367120961891661148755099690944784333163623363068628429044821140996083137838920604232566245789269699057497506442584294150998643150392981530197472315318457016644449331432403857962258150890304543532695934866168940784628700994643607195087959260671608356801064816235179173035111552657421955293496777037921167254969506093686946026707820219026791828802190754062000541362867133126168878254834864207993228792260754639159292907613220863301468981080900129921456745380294244846896883161275433248268861956886805124637869726052203401470663187861763644852293667400631898547062214960228903168168216667247788070775687746275298472258962444442912756285203802258655002869493477832426979993384840412726765971139190855783650904751611714300990982226137147824295565372504642562847882772599370488375630814186933612647358431358136225852371609935027200411649604969973374004206614845348101365318076582593328693805674588497124144081405102125101651796095082232000741250024161589755851168754988611560311188351555678723727698134142312670102068295801686353176018585195212458594915789809363111836511130430978101337883511072303432451113674258663130048287446107664910358593074366972137443015445495077056948919025661765891037346380735582664758945650022960502591294918287293602790742071374494196463576755776745014499272911121672780459047457382297025751693806084111060392066113651514998679013614701476073434782009024774228508784776878698782164591205082868615355997230426568413613636707425005398017484161865353328153592839506407070552712465747760217915550640897434447164477640370225134978388593112579562846038507718290665803354626916267797634868487041454182653891427981184564252251153804066152942025664969076392060104590085488978979050375155902079652642991811627806311743161212864250576743966516196275163137285170908044038558350567631250813606547331066142865713352299201618646019059562268063049181479634630809335874709570870931968301399021847042809357251359984106682734368526738204566246599284028093544096979322201351849623125135559044443568888745207502972399238132980263994838212166434787732479972894470771603426613762667733438293767962285534514734928404601903065706227720045236658839114145000108570284142700415428923522246862741133065738102543422604210465759995783103726353160738743397507750599936071574890945776421991396390893011146374683205549187856395796374695534483858650126662754537847644953905179644625055427037225430889703181481873879162588643606833735240850479736047938154627175032134316596158572736387392747139002223564438486125029786846081832154711394491861832017734188526586230654015533336776619402302428444282151989080564340438727739955446781347435432336000086256474385397181328911112083405420548482453205041602099056706250059066580335846869389912086376457286202545912104000432808127256959038293904551087811226431507194060949051380719962197300032123045293044478700432535369652049764892109106095703123209902046353556278246262999805461757962464605942182732038352121424990134088804863271086667007497904499070223191014569906240512329817693920225447026661524023425155734289825348107103827517039034816413524961231081469058577893686188449190693697239857849461497166176983899381378352910442201002550778423362835293041178111761953549014529160312051615305753341643655077839101875581298878558037850363239424506506472904762743324403918799810049087155446404948678160549783015034814320790950645444506123495644424873498990711675813247238989138997733341833852552112743167256457432478035475595942519589557616301830473709672473624052779879456788757437714134734541037915290014040815031606839788209053266667006645487175160301956544774822431656909635247816465841339067276288735675234374243228460153737917910595495183315955505567612503442106986342723034502998382401042927931316298007157269103553849123474357153289238999593936994938839568634830476355882182032721925633394441687481149665685104241130181508339812628180256449493106809890243473938991527067483468137504729958279425460047104961803740341118239753624304648260520516850787754381753983532058200218475578499250049582299399105408155243312492686433705141328308115631053017706045756844828956426227466083109193787966641758857913919616271629756531655114144285960668445748169136695742104102771770171597348650447327572744742788898810471283685477985810093428119005653996708189492594985811112761445157586564256345944259354226257364097464060976007688417643571683026864395992590682572766243415359546978383899732594107219913850547697504357881582375964802012470322851400007417227305479081944341196979875014298894589946628615004065477477428221725350921294556446565424335870501012325184533433860797358464703519812641137511985777617791432075623893401420239273083437766863763107504682595560334929051522800936048207979169138636698781031143509260066183543339132947045885449665205400743521292452036397052707332762039346612659289319258316521330987378180278966670040135626929219970460463725646565461876096059399418807840842326091253201125343922010037645985459983701140071159535531547438488980719690892100110275736204107513502664330199020424697143092849956129389546992354224781016506663158773137075703876053003935019906372260009891661502459923055703851710178246718337014150425719831272449616253364240648767522086364383933779839441408182408629030936595536803620064612592827512056162810128125935107996171140822384022527968844931250937505325340442882559738648883610350440727614452183276957370467161219135864212912298286636024715804567757114875914049528257725642917093453926920350467989364338081461612683843859535540438036279275285725206506071723762230194459145136137152761452974927222966073904199841075826682102833640455885249369514627912487390646495514469445294610811773027963021032600808931044799738062801892127303365513098526626382267003765641829540980429632279399931423641165151678525562455350468352808722149811689208172167316774750668390494453777485773789993954792501417893174549293722903143304204744430827791223407607535572460240873841971763705221031166819190992338864480318024892171253179899798450640844648232066520483621030494152229472091145355710927408875173840406013684476764462178222360960003893583963385608955878751987307062232505120432453242417423996916886913375908251248377484170321848530219043995293893014762353926569203490479661890633889080502825449617879275228251522113176235792028951774377157415066298461510874709945555316385717984758820749398427650631858383918006216942686569965515351242122522164058830836082547114446324767743997512287856957049087864244133501197029531752518202541260398698280166305844189201934869440007035736946597490860544318216399016290030774684413281530206421553797488265347210942543096559569700013262094029925248833605226820072659428330034190385985085283573697125536640708728928083730839442470422049927058781035250682338262597589476916125447908262398676090184998956028636472976152029999802966302150006993183525660538622625098831557534918123619150343567129651770396798904193027121052477584154880256417665907930849046653027473865245604064567132468810727966026341582375886365994985642899847439664139142623768593599323139054781791660582174847958281949300915402437501176049787947500559524948559473919900548368245853264470348800471176304759560711770294390013801888496872833057838659227166964450704618305853733014059271463726991909441970922327319594522884525284793773033240605274945200238673199177459414114893942623625371261502730645766815818745989438647143053483666869871122048682967811361519366657322338678685400848936086363152498830095133148574235423425202305830491989527679695005808631033166953304106497616454190250835925644510286922617418623788337674264257879852113318756463589916021147275714201065003008118177477192787605784318673198528253152182193815701913770368043018793538452513030072810090100261313540964382172542504561044598337059090568663773766606050575061258100276928803663604932213366420020799439356972318210899122325664680157986583613231463011735942412883535978671651083291878714216395325520060646058229566170245145145327191791596599942360065389862805453525124467041406742100477727971691494577488303163594786891488228384092813340862031381846270300050291062489052952726409893724092417882311493257989916546260275539757029642332415733263120435048954029630538355248477348275859984946255133465893082385617018237275402562373016777423921104270192707428973918130681907294886584083311539777145850963292369025466117865306333914569990810141706619293983422111514122659177225711451687987043016059382153097120352205032937990716070671323279655001259501657056383681433978994060972824607956599631954184454357888994966602675922337932724755443815231424157039944061954460443039789529664557873438473863779487187141702983259829469906727859287157012349712780397973456239579513507538269610902469636062624894182779655389782458599195041185980303580652130512648481499266060612102088471422390930771310209943627411193012880133868086102188828072335157638511009848092512259731031912763515230992592170446079923918516894865557190859514307451433931279797647799747751200522857526888880097218860934365247398235875220740744362633312862462121928892704531997786165364564197227947110822680195179700104760411701410761388443682640491364569282945406251162303108596596187635293659431717719152832243853178043589965522410238149258330158876793016105072996554754879853999274196039458168814629409528142586200592981886606528301905550786433355624913148205731469944775977632317495303575710940402940996373000818841039543903054621959101269428211655146490340351753110440717336703736197147305779034344253438910224193240109592161885169320265087434789200759071899915009322840852233293118518718599474314244816259230071888488935861422377863780758825537250949607461262876970889030051323141248906125201119236600985319565503809271044871567278629164341314643484353299591294233415648280346144144183808310850711761480069300523564810479389132743844020780420923903393110857523592557673552042994589259794367155208192748385201642637077112335057302348480080709189065953839157311237327652506869231220573238464642279066257879365004034622402216969481312201377042866098298866292215594167370663896342498086359345579462333745051566910746386168974856420744868095485559186649247977314691926912769119096944080140527963484513727988789334922401752827138758726613786015949931487951088253430047800119423980406051844029781611074952155785285085065228145448873525197413557651182754659243308074192781793737968309576032726957610332392985543135834882439832314964691336978151426206293657855198287650820724085488096843283948407653445584899056075838473714052527852573306712467618380054317113004001717003235239262790145479781981276178583762769061294525283847622332397201034043937518970486437814980534745302929610221519467233437113507713970374609742628499591358593234033013933201835480349393374628244351653329019794758944860074775439145980268665695026778593940772529973767056174959409462421109096246771268600874988528291454137663800373842240589323665843236857441403606492195914580818887716217192870538129877502659698422487061815053269171695180380399130534143336592642000097666392853329368576139516267223703586823389870198909988753718433044805274695519210003204373712435714881756739825339086024930469503346526458625364010946331677892177178934453306926650673791542273880502159665578801115651480606423273673850949794954908279329285373375185736221947914293684310762744378450780474564901794752320205557944297244821544369954249977994863620937126626783596189542907131408213979144147534168200161907376075977351137667986069529036893433827537239936325129346540083302720229083391654580100080662183911254620773539223857505568382671138492683155224892319830397711128937823572103411524445615885942834658010289753856101789409478269827697229456880276312760910109310985366333829579049541167469376973171297804757864290048961785491652036748198449017086836125637700947645846624782881651845324474479345634995246875317560246911324728079456684373211988423626838522218219034995648534021460288537836150845323863766924995982109043535579265271563664259216042015193870121691487828500726288605212964518347575397749133353840368493453501000292843361036081058763909120730051683442038225331461981848379836658694487200829982375687822791485852240917178552135570429711132594288049259883898002555960853183225208879054495538167574247707696494504286031328136396486089672352499604730312343146903990193551354077700269865293345246614836119266100294632220578042237237401290851473436966924021799145082208899126494867465736737557365150748720491725931939665492006057052964805725606785922370312547846189237568356090279791269302267742122307239313914344713746213313453064237272688137105067869176416272121664314404838636001440975800580881647561524780206190413363126976264834669241312591150720040535259267025517876396601325168089594265749128202186745963571506272441371274839215829741480685648254737176448257336321893375095058037483161748279618488741984155112788017284296019366994169550272008278016598630971603715471287487325017215407717711524426452984706094025296341707579433208355803092486525848986483715524774379935305692163408573943352667405560311798686440125811481794507343144809351350453564625462836996563578992219798662187739418203570625514803118341775891039817585380556928574940893769873563451201096720864790277575606869876500393603969327686986293116416993344958002568072921081620553435864851325305420371305301049316951421497632057455072447175114964876097362894461769438568689947099873945300538095352919025227304242983712303964080814238819716040196538633642899661662221735166832795377899468947864528772559810753453274028506739892340913411060061766697221822269771473888438856923147666383848875512443532734060074955987384116718276386170157128117283624644139741693299194747875142582633327386426364673316756106013686656657223668857588684949498978798673470406532882058147527942835926596309894505289762130724992422115967636579674006771360874660699855405245714093745502388260757415502720326335424209557198732900316218964247689162341421958632880305633340974466498703582309166332698506428292339400594186888321051220243204353823704815937086627769074803449080354519263381346425199419454867485491442364353350715961440526545792350525077342382302135367050463429519426482463399737098423847307132755785785800187894017995564671702601485839087164318595667609853259467707281315090948032682870617113828166689333620172807595007109739613528245980813415613003056781248476199286615202597890222964291229897151232831383423419746704244565586693992202986365097607909435859194941769856310918847139497684199997628802511380067381240956100974851427967267883988179576808425285998891423687846993479719002950830436498287053894873849850685873596201286392630963046556116104885312253682635514176302656301159963007444657733003607519748669227944429823910404189244792216979643565104909682247947279631820279801552721400161356567800066438337088562863271364143362208706414627672975674163461045628988352623269804759117839900784499365821500148566727219049411429682125434544087394389205782482896391392492334330637236118674448834177335324724197830414097813308286408350297764691698499905944244303713855384722327803036320824912735784881016651139568281110906310638954329998218937849217541933737176316592495352415466213203306372691153524075159755965745436299242520606255144995064904465813995068802482776685467095142765346422939778523594092687659929332736048958635164336554725767270893642295879072336423573644169906326090076595113629691691484112528726063349333187864471915219138231862329887744022454977305435024046776656942940827358995588880498269169680406436161029654104582458435421681853329289738198179698137317705433007750606974467291095284725148438026356510443003669814766625001232388609955760689395904925727526963172328708460978092541589220172557566467997390164814389637178729189727484669745949498111915547204090206739893604328921819123001934321518173324672168310594276296279169273295440145235010009366599720770465924232444492564834662803657456107427973585906808610557152215979379189418758542157526593612278738919784422339986068960106947073804759633892324493620071930781534450043888390486444003919993200179022872708731231074484785065316329533061504397161824671049318030788793036058461905028943145061876498469531220356535404321245517342519914404210267760661146216173990222608014002281279438334206166089665302700171237205626080217929296780563843877550154186621100883039622332833447012904350831766311163187046854383278742286219458043675902813643534473356224962924892642636146949205238752791325434087907258413833538433319123658128790073527614310780263607415806084960302316233307141639327177774564204079342697403596915063103374752863214183352865791207192169568763700318108702902663666613085541030645882748840247306849324938564278812513247302344288120792325350063643533037561012085903071729291398323775003330954981718324867253425461760633118349717702868431452012852138900729402175430337252810186744788143307976830483137071853398283489759207634676611199068571154363181703361034016507342474422225267044271042958752499536759258595167297618750498783098437383200215313798531550593563096835255645331767566277762172611048642012887067576696518667650897128978382330713092135567684087629080653274769899780299820311480082930336837470523889213749390825675054109888100288377979008516056348939205563426334180199778894964020770121148419074686302785087748077352432740297913893439580350686973187136899071323910295209761223191948379414908372213663642908355347328438549305711392420462931907378387734276255276417643501730613846360939066303491227960521669129544379057243653625071250829453240327865230164993080143703685688768929242273998331835825062172571840455348467796320851071581253526214643705606619488646698147601845701261372879504812273408248705481016877061470818308005010796054411542450043405018407693271669172377505065567300689696005640411822434217320422309554965978312068605976851794019022027315564717286503686255889759074417389305398990153369529722471467338678704002076380262708491875988827948514239779410993931761047621512069209661022413257620060258698826396447493255349676218013001896720810738056161670051684488093480885701507355230106917223981275739858044796333945588751280846489649085086634927611509985563360973883366036375499319805396024947661500502587811962435003251542845000288213704331813517018327477878745997041493429326125804861070932851453067695893812708973013004874666109299530570419391297944142393763864423701355493408527175804854579867462342317973262115118646834215659985049013724294160741675751940781221716144896791196180261316457613691757276279891020986284354136018461982813527244877981381983338676049148238798244765235796421075134248303845601739487807619317615894125951641559563531064354834272081811415597219463671277312262829953084312234163275733565409567128823329575640420154897932742185003430836735725221318657100375969921413540472841604578466505705087635442963332225941700819352589508624239752301555082528814869555861255782179813938103905686488040376275476667311156518311602235037239137321821276558726681442520641350063162945871731288432519723324629183804404062139054630402572851402971900890588153515632156824689092200572978989679914792290549946915621330525875429516922115572434341490574844443986785048524722330023841274275495910222905924002404909361798908875056078204381702289089930570120490560537322028507842006376367086733468876662182672640721938852872599136140449230722233736755933193778225496293990260473026627185991539698159034482127787314122823137703689747590814735111610174527567184937507023437520812307241881183702150109813044038833267759890094716893143494243745889462239448810174849453513342869512660337326266550838229591255860753449103612952275655935585856343682697453840556502918906534591161295858495035786828715401531306652069655581098533835098911713537392424486692721321792598036381391883320227950594940230483588313353043159782467426326844502681076770067099191929152791026304638255222333243793444144856093660128703780715527665708494165835584107963843912197276267776677300471616892747576034716029548697654023971226605264628722980348436005894883778630106261039908787331209058580988498397350505513463836557429890620836311486081255737759544903854872337329184039249202696122591444898419495109053709698620082011540999879895895797307693805379805598180121311906590645118169173914451803779204218179888289793154580423349398465036868036163175807487743555164002496922657435468599232405008869928023087647671711002278315580967014057470447619652640101623122968577156345156768245031970168336552332606334530706078931838669721724411342990813186750108457632419581295648832822690776145812818477620609438170163652259869884794049588566914337168573304652490964899494886491356021783772136627824192234755201452306999546465295645564128428839925634306187662786990044834469063792862640897924369275044596772603725252596917283752972618329482900883654521473384400209717776012245574797501402767906574054807583576367298421952927111033961031317040687215068204041980306956530276963401691464941316738878426550185162704312277855067166215431630339551226779380210274608313862283788017227697369475045412913849556307948119371253130302081059559651173951014559885935758761010643417191101622357625430963245619312764064484692701694474167439899709069478113986307114162271158008979908837808451472385370529270668550023255906819257885925671654369008310525082967269554512308959289542475222253777671481899701409104371475029380991610250005834964145339356382119020822720886527706088567805098613343247633611243804265176217949829018285078242323133783779417069512508873395129398521819534843127954707970441349037084868342178120891043291596982538012570012929985734548722650292398255614904229893989009230960695114166567962096715596538431121310029193613641488418116055348387216681834566177410219001820639928791142415251845623099375994135694533514195150876305853982267122517466877659258554818519441484329298640305354382971542237235264456473292631512241486703396040717520354040969131362608356875064197033086844006162448695106440923619905985522021182364706288195415839164047542121761439453718743417087116039517451624423279666428071880008156803654005661014423060323794140468286043628315089200808059375462789136742231651690415315958480033081190956342674826213730025202857984166527126580472778389529956189406848223854007607283277366866442235350647197717349505420975087048459994677411215866836103231472143542255441993076383402719909970286478771870806589867974283604389672034462368465547384056911593297175552601133105564149906040058666201322599547511378285088848587711692460778152007838191666131313003296876791969356091924639213151314346964336120827479206464812931276487167508059634826491705325882975977199133467480190176387374963870190769168078343386145569305448675058162504933578033088232457498767257804132527908456993007615882712666441026930202091255194231248287112568310443805121622540823810313232385985920705786652154946480437338658863742945832310377130420494373648194192033451050051551929600845779016707273987964109037463466214615147835419168579571992327023293476542639776163720597650912062921090417566717106280066161921698463744200721324801876971180885074998137075195368122596579074554585863826514800004465501790723706935068200299558643900957990541777722038648905687212920036856137730953314314788565247054389571161374541103697644658384486256622890005438704064628882928589096175893531922517925223753251865291004448045672777770987754853198838266269204979513244027013658811812050622439796858571065240708769607256576056418900518645682941550402686464128161412824580418639605842670925233559470930844313512678168167825755300686425554962070205480761280971577808960472376760706899024447022285799425600957480404694653850927335333610242173706274854849910958451235746070544546178098892600583340092881981027186821528911290688118378098645960322947454760549172483882280151870878666060194481686425174837002613201746888801356187678305744284678123937555817273279473189647081330519692474639417335425369417460077268696488330053636106540532995799386342867764020087335016601132354599139705204377119994026211616800705198047892011642206381502050084059325458747226737980885994334805792028557266692745534995728283186754617102491201345360524543432705952363660173443650355514557430166043329868627734292238510083285554573969049545867689329394589310626072043090369073808681121670525232020140431820349683979122639276219734302779638140055576076866437483312169868631727030057634418605395386725093372009208912407522307598590015344338355163839362092931904371996340973292488071426327653405025567213003946829709435711178323264264368661104348400084589011467313352847653943009969572771830366813659204888358801366899328038120977246966900764335004202597401077611229298198453674753401803957703478048153484898535645409544687143615388310338570398268415927443944395213258158352165135635069325768554014394244868304460915406527848654048801438713214950517208724302376105256265483605026526678262185681738775690342400594104070065087971557814366936095687408186727132731386902445757103315933440041466201917971249028723805118940674545939062547027928092742073375934450749700187327116779926204116452650386198970212849762922036481517645862472528073448108239416557205802456193416015682450246784075451571602943117815114737353811575913096974231487523744466842142351996524297004475657879425731356002166181037041322427403833837444804211929638673500274280461129636374491549334578180595372699818860772721108210387866576539246327401985348981650723385834949764957384813997644773916666391649209497503912462107196995488551551021855267724869316931752747842417549273256226198475360707850550558121393306570157340523693075751263775730715743071801082734732143881958391398923879908059852312825829392294053033281575077975646603254261309842339504404937945751495043483860052494772956614930230740637150214475426990206713640651130694879341711612514765864897709765911284198739151305529626000895352838894657595545533841270212363748814161188135976245570897776208276033542285192943525176993614018795297487964065269565716128880665649922121230574060829617544525426065404725739693619267025833678763103372122187669287315361263629069530028206559502315944411180073252548835168450880959411378802370190217566054056351443614266725608131698818046734031677404706229965069604039872368093996340941006367921964557899737435180968400406522804144232589271976290404612616892745988968911076089353872573332705575385293596743041929998959063689894236564222511603120760803783091599977438624257387823515819212174830518513420739065822695293492808880914137316126212810389283485239689620368798858235346676698067871900409115575763229466382020781755549980183845158405434534260237065941487383800074782125526933877948402382204305348296690931926791032364601870975130151725037727285851730075090266603752612417286605821911121929625299892462653021452566895427936606246847857788928650541082816024146628365987779464511760322800170222988601164194114753384720113045526916099842080735082683042746742662880236610422916891989230363245742545012134076098931449191440076698236078964791947629838970740929970257032913117460132066612611073753872454165727247518165769095709450259024542932815730985540719097438892726776457257580320680349742652692099158772589732175894686268251039936741466228926418045386481936987989256479971205716697445618149343407537867211067146474402153928967020481947990533387507718647591758972868964798449016609161042731390450728500458951492201218987400081506902805878478438622177629339563214719431952905508983005031778685060856421447799814081407057966252803875116194832552655327244394162757767211495176183783818867741677585969084466537189615299070737696437087466859762944159960578484956242400660370980374466288802823145022163072241626713349436612365461633116662494457806970481563585443269723149495493680119475151488175845210832282968635941346306043502071716305824059205037405926365048370622401223304135570778115911222661754129093291092890910151459372165174350549414189738704411144857793246693309652490514791365751885869345148851622642294819374235408406177060859779592301235132214063579603174666636672245381696460301223282089264928159638520796663619549256827009241108739547961530739272339269099556491492201585253718766883637186281090047451764118096457850387235091814951596090253343900420249625891491230587257250630892080151741792619818981044056020015079069445578012135896974564392040905058236348873952053559850642017546772539636535529345947077156705111881378064986063615033452224394705310801017043238496761257968649306767207744072820029739711524633081862455331519672003149610205953109783716440621672675817013374104338801110789734104129905800793667201409978975613770702223548693333304355372515680034753263424945803768800418667304070718043155278357355702011930297302195658390063821106117795169988343787236706049702044625984998557457615728002261925478823046756738862573285217981462812499191355863070162929498981488181008823322751612894994552659062341482880413304163162791956727659044211449737637820742939529516141345797241806074817867195326681143840847253649284192484763880195626026456360813177522350613953768707506943857111947236911271602886656169196048174651714600394180275372201190746920798970770169432948044539916704995158405236141700892587375328299459661194873414803147303633184034365475859018263347236349816785257832261412863590058290559966123816791728854414848253823507360887815561687697970421949544865796479851500570269661707736125212804727790946136409165097588129892640106886904926816811328672766445380952427383957666424065834007752244626938706733542442562702182600581622035757148491643774151871850072775453764005832270436530424247557765997974820712879347627072384579194313442843240069877925314370413950876923307968868798548393007574978295339946415710335913868153759519202916902922980345954288998463350506818043478068890387266256767082511089641723858505082106185801613561578226723552143638690190531332839792451203875133877234972356434480936392743610192707104856074341296473358170887899005194685065932166853002209194141971216133080306668178739816842608577048514690528019432822419632471944658920980563674056472596446549450695846922139869902514452069937090420977306353769524177606816575684556545434977314050608118330561819841665753840948367742354672053969746333152832688550614574071506572793348205820409635268680860936587438964598047107167327945866064467263319582230542534298373863604753757653644652710449487062137218887069162126723912825772997362513778236310218379915338546384169980454754763805899475637341509520840629769333123957861004833388402696516676548378227264309618003836380325336366570388663293940618190506353432850302808742197833064111597967650860584041188877969487527366981753236914395181433752718109446048284428516861909055657540994114005046224184626372281027800784643538823190174592942036328932869491888398845062905913672944806587480161391294686701417571828346795610905700008302670616169734402274610061250276493614973225305153115361073141116585904464522694085107756908661510833999078627742441684144778698312057890051609705819369962242004216549507866929206276877653993400748561784608979779004053533127666349748456872531252539107216094706454747417162716059766686423017643833336800762059679545390419155550054815371827424357738901348892923922213521362724222444553349200575427088605547765925987119295306322299107056761781157996807388088918072149496250087367325815316598134225959589897113280036637313979219383009111086401245450768325344013960746904955874823844376128598275792805106253269085418285068408293631876040849543221583816508566133239334043652411305630910574778231175301691054925911921547914323748489221028026551349065707944197082640597290188307293287625508005381911307216702569305894200283800168920110867141133828168284275932480784557196678426285041253123014692505373461693216462428694642001893279370685544139280137571279664793562873943203541753840694172549101953265154845637503256096921589024785750182019235131087423697479991680708218933797892349039910527833154554394368465468970284031340574797911119088439133410570478521277067152816324599932987276972902644203808103029563060924803667036721142992653584553833370108947607957096490016195577302505462443552087749287558348210105240409802111585241180458937656391190856229010196801657278576423279502682080354407439760716182571505863882062528797156044048508745785573772579971288415505458528211404280689876978805832766320572691232151511428704301555016238541584727412883529883063312903838149441531436727639884644480533995956205970090037731102818655410672244209623308299277532744887924293610325687760312604706588995060326866853688975762317936901619285917421144627963389458768852004486342841105140103209312541904155502405749675556004091361803291049895101827340907893550222055526022834955592211188404148760326499535853088378990921186001426918692846115361627490821677309620459471197914701326535298894730670932025709927692709346455736143093395431482676043034170760802315231791793248224169111903456700114198459876728494346606570835791800967765414413322847533584483424068836088340930628351703979086909186788202731784870026633619871054838893374134738724554210829026300410124633587128048272736260570261853749513264293838893033284141838051177963077788912275178453787734591836444403598487211749747614074936099855416633576752259544321033740925642139025003528896280481477101543945154605648832153525048496083878787105527366896679792089177457487889172001960306647453530077365333528696034359397538284706860759504136378855006630094109387325904073557076344700854769144100928567200332314422007869134051701582693926013236218774096143766832853000444082726208358086872491912020960458067542456795717707032032926661386613764095809366592528560672615077718273968082471749420820615395862933600631685486855876025384619706120501864975625266240495641242452312190837082869387805550565281649372957866794120928489321062265098938549547719857268074331625629895098278419866727317453486091864426813023747978426163799330276045878354611292725395022768805891688331460293610511540563123620564134574673468870638600112428692138749574353493605513838565597885002176876902263773369937134940505745052888215861319471864245291618858094165975147609252780960621401914841144625903190921381876298378035739403997199505503259081718296666924426724628957318439552624384247903847801716882749160201191566238988531344261839766922831753433953983143145788176035205559133196445630550891434238724130704321466082702079968201480723271703854831450375410412980255807101699891238753164643636138137413358402168896714336831093415329262214159675968657517668812645046561018318787857663108543671728410752424719328023732914440950710681848564103645434311358013623449222400754240608842151257412923942175392933742292884631870007492330962664840142232621427266870038323453983491682060160439060334064028706330905670557307338638125603369943654030896021535120685523809572218893929645568456314157018397462268755266492109995131043217630593572518265244828758134445622420448438951778474763642803728909436673183153484697165709093915099250436774337968106302412889390355077515082169571289377570158140294853287248772823247837850439880730049664690930828404209847214932064519914707884979307509748696679197111005301433187061763091727215920372689214581379953615281764808129275426141468754378932482249219319199817014115178082989274721760963473088700694120297284180766438897698221900405132987685335247999233692405745152810655066037667652277915629968079585220938240531482650450605340745489160195731990021631608330261106348516209679557617777157311753529374406429142025019916840463285126067581412660910340211333952340381857602321910556329330190107449387297629427086890515138828443336468335836332030608745006527508913128907120830718796397090601989096535253854833718995208602100239152596567118577278927451931219715965814705256680031401591621056840547304170998825617334974704989013938185745882017897091872486987453548104191317072691885761861955091364343407910889689890688728660217914910789088054445066863081166863724446992633882766713142829179644466793610245038339407973339159988731765652910556798225033601242886334060031718735838877703070384018773894589066369389807578535399325728937974277885088015463443971695235469087307334591850741819342619682298966617595981861480775292417265629033663661228406221629483860394990372824590910702202987745121565955417561163759453319496818470745487245221128741957765084931947915713971888921437745481777386793957261480637667878937095568192551867741065709082503869689020413599008062248858860707895700665454907542623152369864397205779400304186516221091822186386594140733400660380536246421822223611347816455497975823011975997608044561633540183838365025573046641962412868469551289957005320623612550204324553516966003817682525729654987496449265546561567548747578455822930413784063400866300113395443469522348557876269680872767991886093492828374583950922445540428144863497484459658800217434717234270596662622519814136630498196595156620251948886417844942100795967251242707697469568894759234833177138706289437910610743627109486899530108954559627722069576133154063217874272887942650734993290273409716220734999079345661654006017650946147730403459418500899274317914292992789999590446589714211919430280793563428517172654710798661199650099991910564536923549677414725161928858365380347886796395388069382893290795732857708769772417236058557606290164687563818797549836727481457649157604414325264430911123735669771406082085909087853220858543517246452744830442186593714450546382722566476839983976207841673787461281841264101197143147877760728523625712300622301497383035846254817654045764517298924926926000027787319490544927809517931420606523270711205191067548910777497307884801051167064421291167191755224954066336098776299753050615397274839053756612557961163123147662002351401751742706733823760475713047607610136171171250449527823374814506261342941336120423468807041154448662829635744475525434503862423592088343677498811405288172047786739528493908621559204405731457162061844949442188918867973622419683125256934476935124620468315314269554123527119851798068797934971903483372132301059749831709451946098343722878147630425686521100893229004703734838109536934974743435228152309778313678207149018545820579918188981913215875669892743771284734414318668359074004209300043891213752050188837517532211907451995536236224269225734261609748374674113685587496715515672008833131757520403336368872087298829766212297240421856215701503347687529734757259596930845257014004687120876008485624878794886873539575822500486453017187620206199201663227681709920580617953688952756666436355211691643968171782642719241494806090887950480690544193661686978794606304013942229216533688006088642104484244892736562631331871195731481236728488086604666659301049516229628785759762517543579674949887524348895271687728880471207927711383922004339956703937055537906302338270697437500354881674352616616926382249534671963814768632685641018337495271507656799669759298282809527848032430984607936888799405005838343397942539273416035182649644520577471478517608329150704322907962342212467544863583264038322628008784233884718347207024880228982638352838181636481389268628343739063063951864556634729045913911017323098478481065587577089640979585564458045343958743040749369737597631271686450270355534813689424444187640625783895376293597239787261647872035426057210625183759546249796752344397540091058573898108320308407234598119746333005771269676629040097602572986488211988230448236508610327208287275059817122092699780324717052751751523395038625626164378703880032696642114982088296182997468729394187378726915618410502505807222708579612961740930861716263992485192720169409556375494895742365748968039342804525350110293209349844149506979404203749640280688952404378151214040783279410915610429078882049623546251628028365360589159988900539817742275458514683457058133624021012484992378504452334567310586483949570916154911368297562698186227918847368670825879212964028059874116520398785635428766174337348030327266987368635148522019362565320396139047211805132556570397061101923997157270989132877253377458874729679603333968963914711083625231120704183026026233412050712577110783313837457316451469614945944450849916352219821266572909066387597094480776670231441398259892066948487569453965964847436579378306074941667398582770900930986679629154004012035283150591508826958267818713756388248209068119369212645428950418937683105802458460964360593111975864390193223203034113345261591259252869716422564390650231908214195424727499841602997416364715706676534744165067313042582096201915929521581501612724459769104036141624320649812278606294763273021250605869086432086021147694281565489634693477965254443980269655979387313930087769945611489353544503826688512144160202277276436942479052591840441987909533812201531317216605781997435507421285664028786443220636700853234212155767917281014403646869899010867774066398505946520620238782085304198496131793982705895609978769851944712380279095539135310567873457287672620323113148470710006264040650528592565463939196577648475710315712710881674989929247186096814129796180075348439349899900081085841025552447356797026283841855712569532927523255142619155508148725562593939244762202119728237899204539558919603563910236405890776886156503758931255353480191862267640533296025216547944456491799220539023825802890631303266338611048789838181977969255312803646604866133106733311795423815875457144104664068285580480293653683408161257932340852864363710171727261454212526826855957814867930001244704762657707352167938812866080458388397412126262161337108373186672254314441586021274886179685227050368390986180306042620367883268779732953442610255392300047832748102317934125503298846722006941072662939106248799464035909597307518469946531704268765438393199311078153076021592047007944090543553306728718010565028202071820205094607298208870810396643161389652230169388387071463709336267262756581560196865896011414457388131769509536304936198162714322684296089385716704345378923377765969546039249261927864667294569041597735522493678174071937797681073131809897247005368005268187691798705448425498986500019375835118266370749106166766307304166717595646763171516972057487968409591699308662195876831577782548258563634843041432752198888983010335235575960287265330989504391046068090380423329476456520876676630907922848740549575552428586504477813348044893584179832831316722901347671682795666129605552153928428723659011522053484742181731761302472443441676424159152716182483736520043735711472956666049448694306698341029256986879580636484334341428505310788869032824936797532357896575988467320311274429013802159578859170753729960871082617817412704057178200288050105661099154491715585590975097062219991755432124556850785909394660680584954819715436954243867196652075669308444935708550841933645564319285776261764869818777476598514939049199622495299716947263571887089155487812537907198649084032426693505920509650499070336937707448805408576610147117835643774558701900817423116729503399146177255654213575102433789868579940642380521150806869179031295174692287686254879187257051663152176258433455229069464794526948314341259446967601684966247187873653879055038825078199516516757059652836777703087582831420466328981192676087740441009627618353741780162961690387268683739899375243520586509094493514601572665778304804870999166429821911673356110738649583766357636664671355766387581985147961360495969937113837953623783625291696512954983032670752627610931217037226279099519558366709847377669048008978895012182696458740272168346062546742705843475609213076984613363468539671737036579025647645401838284875275929245510855801089140362169733914016497289888832028579273194600685198962264995884634279955523096488547576968300618309521848093027803445012044403913972847760345445897322878415566121011601896693136865251722079963552672071948803761316005403005667440052432446304666237305424821588707852491760105990973238208783564218078073536178171647497989127180591085232151214083245186830857358088126253112922179747622572878881221318615937964813121666827029964385909294062997795137397285119893581230273908332894950603879268240647494401399206841592769074661669663916502752225046955207712868933294769512657772148739631411090497402026440994575910950279136535460063177466657200942638262876626198619903922740599510651168967869914216380770573316511691959126586010193812712583048410222322498098350340461495682771825333008389333090456437495031771841432610959619889341593670397339459386300364737447472799972172850029340702852331909523067698008821606739480498425862873814497938405224345372186592168430559820488864243662782501450480307593918295232757643407205497888923082485521369459535028875295659129663358977579369160033340333764261005587639213453530421996485029968005013803322916724609592680374181325793851237201867851650092826698682834331285870527676401933853949545569915911826979876916825699712305245698544248652195493675427300643762171872370720525034456945140750455869319753256136833152064197570895977878570209020653840359988982404323856686351578168988193024155355082647297495265539399812905649375768630246145803880285258209271752755878412110555700031458179241806727225177718891975073614724525332555723022883585928112679396853779643549530250588791714175343718625532591781345835619987104570878959418588035536928056899977663497809241147833727970541654046579054454814456335001462673265837864077441672352871155843726407131178074322651514350027451783577444678286324711725200679287130267881057688197687405971723091390701046703892574895118428091282089746253021352373203501642409011945783126419581407638520195881178248092279605284353236052204949861606946665362312594297784360392720852299581554451919083821838439334247444312165523401194666519070307415340854588931464941245746409640226979898631572871573090342224600941492053859604202421245662587224416164762925142272062739936630132896897022793551364302567276530938334628140683800798241451937184434614799177716101938060869193244270569941899875218523690741964536852087186699367099372761332635420983110726601536983286274254540124200287341591399303581606453911091906667794067209730726484253992498082528862293354515470726172462716215771569314249109911397145408590139462497452150473603398653515043884991807956009908217029392611018282065242110900753539305453134609963036736951149501239883647701693895872386293972959618075902928996378303961697152354136951061882494118336697734057911615369435812151542043200804053807955899625439460852885197418838741001239459963720239785534656380884826838075295179315878109998080315515716567220185386536895976721018619482965008191549355286355483795893919430957544705124798656201992158392552064940136571160879165421648560710437015550443354410734416949994837547043241070488375326814096706003047287486891799315221489248064578230424984129685761089943641605469229604993001014539014929794371960384351125784366089343289997560106410974364843926757732815558214404367793712962999436597082942304635385132014315799524534777191111709846704526078856598795974673375431483326381960656235090257134682116028845602431111564854785158007618668732136027514380622488308918420740966934307526920457211428003115982546580411743681906269092848743595952270125778679231040898181134069490740432499398442170507837464793030853705584458685234499629719581185340523867202860349456931001417997764792667595996684616883183789686474761997158079606152800082640241792736813725258354329389009405200503786024443925140000094839433951955368907959633299128189080456153055004034698718398791284416994930430683251758979662346802047102259370448389242470254515195571501292304979682324014501757301137925643745163333995204151552746598347021523906437973995471852707346928117978017922511462758542111102233722846127565688510469272286284771727012780613592853879368796135608239339666684386555276416293411292672200680143636322991352821242107102460743628054332596482296503928749510044675220998116715859528758264969808066204431469406839969625818389193308628106651609137603544216233643944518769869314595423678123453023516846607368567097853668049167676986015048776225188430818233367537054927063838956859079497498518227095446228157387740771851524118668013537835040817664192449230352074751269543500019089131290117655350373867853096963732829397284176153718787734983983461107389603677885098031711546058600741534437704961892517105716359645775344180852050362431868911250652897837996740721022596844043633173980431168655242185029000467758525717263184662751187543870617345739671518023494540517440257431439551205267920341014817762765228835657031777327375066923244960438065071839031154012270738819508411762143688567556482587922647816203978189533367788835735867592048842235015262477280981453331728207643893135538894357497884775718669299063700250797487987011392357893071761528433312688180083718898480847025887276504344954712721279741282320053858497789920076271745282839435603207606238651191139853262606263216934279423252074958236873176832311085966191956033601287001316392110048716559898827886613976056095702402783650113402310160929761140697103548224289793975694292751054002710620177717905778711856007603436389896957090634884829529015760646889479537611763855968551160747570086212547829542275116552390095888354699790471837802172248844644120566906784067020198787632212619915312017755087803538605731552068859831926515795490730657555869877477279463860164044416140927537899418504240307034053182559488673633457086839200151534455617952053957541190412178695392925571553278926210975345751451025902503794611933463244187177558555290295007848949352150644587709389557729233673588248409950465645484052201248416260975318214225565499727098336234289116979545477657321289440370152555655941677671038807223491237913911587455072498694926064935756029451449490431801236446456818686361998184860975338715160063693000373767823165899876288129815768422222551168442860755748417226234156463988616937122127829252134228791408035085665247134187931957332399206039305120955455138486615496218875546324544716925977851190023651025529197822314804589419471492781793111827936250154850060788939071826437425191331590309664097367538833428943078780224256471884088140845948985083770705535536520650020899463940227964516586392415237120839480459585189502792342262861416774978860263102966125668813046586997654666583756098312675634450217493693924099232488590128790488098608442825762710184670684050915581826268261704383074691438393629489231947765603651907521068212912969801286843356693206850700559588640346959593575625821285752749850869924840245263164098820126050971193627810086807625000692341855137155227954456992110038623038017340474729537716948634922160424238130324912215467906811611325165457154989029196777237549863068755124933972039721048513454493981772821364826537293131476599035673675275965062715007355796974747106007840962931367957853446389655520279415092829549691682453289775871215233061586033884442603551852223535697937710063336120776128061492475694827017793131822891661287940859734679590511581871913322305374050349128358214451655117659611433904282545292091145906296607492549860721743782005738657230854991937148603050498302283051411824281143788524504914289490287952581279718684135697632840295028568243739773178695698920988891093193839695182817811637907860118262139373111932083564333765700289908075549196851516888900787427700946280204550660546296476777720435553973156095864074756355505466691184925695579398881105899973912137966904992394718223626465772294729130093342501109757499796142340849400488745989680448070692864597407756642210415551039427119665656441264760737461610759535208827702060222976655329146865399846185279390288679404196099351719795134348378164093578800494441750694246512023643442090340811168644734942272515591187410603753136408332400238715717394652446162693275848173141329439693704898628623499471708156199867154716615300837266339293511544834041733699953571807531513358450734397500839826148379140367707424702714219566557242837817870416793638140456457698644472653058438079198492284621940990753505274202921434644707990918503285614998722657828996276571696544368650695773720062719390778427149444769811831936997802160087431662860538470132706707916446612948532512278106400444534105984183011944998688508165419134911515022510188291353248671682557092801704191748756487934461229220381245469250390233955017579727647422186831711521070785363546495315228316081377079605943887638497930464762654433690629900493316703243490741562690710397700479360666625743403856028885857367328106657443827636378527252154743083203873402591508928292364767060857915913953224299489588895030510079439351924882805394108160026125503849509977465837846474463589163409541309117230316069101242885975109958617671590423588674931697112091095920224005089056384709943028813568365439278273899035741815359177852194905414309664053271454471606927906485363906737134880661993372708016283291075549269574359698900423611428822976235016446464403532784258121151151938220523962336133353342734741559245002152250573852008188054463049008886859419477579792420620195102831319128880509454318784410010306735288502473937952894533915126872067829034008950438391342391824266247188265204843145485042100936340057332323661479780380799102908662388044687326554810557751945094667044139432550751386739036360210571214301206883135398063589075711340609370247462095537099705575664427128235791119295840638265388181769179027094235552508397814628869990904103756090839589304431395200147399175117527291774675046116331022941428258713747051414824527140872949203489088185487134008459526604805689207692670334776946097617740230429588680052267800656455040880456871498597185181324288286550437750508402837972264002039656369821885507264455335756842893215273054239474688490924897040793883042194370304105257630430985986281876537163613371381743660040711724271219140055831729040212613669939737728208449634913697308865722622736325089496531082428795171938940958324620117833601353996330058855176643622276880990292460409646157526985166466966313916247815929798788995556513648805283416021899862729880419831255003606425590693136561725474249950605840005898069596761933130442922082284357573092630284200115183851620285184090446877135023603045690693930915054228239028175266899722408126868548084036491219250803709630886925963157701810406488808687953386626264742668925514045315149249890300072615314335914568645656837807163689345457053909227722623847589437612303573847270240883593223000186712838916467336876838482200762098239294147455398756981291528506270639980686302173209344309093536450691504671496315459674390675818528361549429891569615946025905371497175957352545286316673665868061943461941973239641593031413299946760320528350289827213214326987494853563641896151887478540046411252365656013287374520116265919962002889615273153041992823891146609043259625740795062681678790416556799520347580090959280856231646129354687722721803820317701862774637932020867021297044601501166636058669412996183880676405289361943688289157306337079006139730917206852423552952492984266344319848698659825704490046779609744997399752044569897149480079365398374075452288558904003163109192568382469863058543986075753775548349027187606344967736581555641837160898694702777358102684544323042234860517303959593494364109109252857212826028334681685558082888299095565290822811627757389560882860816736560545328611714591932064471497477657332392858126051461245180391404479164845447632003531014420157450652067242008010982301948591434772321224389697104429761521992225168756986829549294364721788783654222861221611202171298094792389800134444277438010544046043894809542133561257976088461541727311047776012818128305634216971706827006077969718872902955067810277993397307314556996626411420937092951183849443918786939776865591409480594196870135515141759016297558752107187131485188583871721870221198922519938405245080600540031715252205273323057823669834225670624814722660066702617857390172817585666966062780146784260679754896990540600454736323878050567869461086711875008761987337935596507631924871633480040591779731681018678583171045802806923153742642288507500019222709499047893307851026808744196143784616939609430313631068513953002821806571471461517127601953853036591738566175645595308253353477241539125668531313391148195251398534161966762318229865008300026861660624624566349851356946850001919978815336118409521566474878367916445294302258241384025024111877969940705496757731754295970705629581817258596753646642659622648212429580419868781603556588839451228568740781234049511637502949992554023268334702423445900032021650250660285537452761914486289986917942795006594818591142473055721404080004667655403836655598002968385456096419205926208186916544122486664336761554165493664012972574449768738189687525636314250320518639074440062545647959208583410819530309248235207225919518698837472501762563582195385056954858208252072613334367160937935907841995858529308325559015200020954467540851649148864970785259174362587728868550702761355406404867887598737565345513277084894367190950282263427621424744670225247051942119647286451637459658629350914886195608463462340158010153442716220847553649604338234657286070071742582819679178743648712005727740527782415818075935484723783529466691186370703642179872506452870992513399064517408454949064619709628518577055354204968333904970714227579761994073924532216016953947356776571856402406025891455112829678185738398490196162417086236329409986166937663889559402241177919175139237293976211472855455620830012270180716686359191776500327357903307936636681234544645531335824851091949096815614717612070280911464635401824470185631300002667088425316073212926058482294266008570574763916779586161048753400417052965278046560569219649658184711137666862868967567832028030531958027298988484117180335015226955749481253225410719994941630689974671203344084776870897217509940208060483777074399724621555747329817445208108693914953399692336592246459112526440040124979788593832067847544712642886006897292891412079803125296736061075892290231137336243808451921554957294113005031704579430348562188329485366021941381125456184547722621401447255416172980134786098861674854937512360736974310545253137065609585464960543469190090529979469621885762144599181316752469866058501254446094891176218704348576083643095178919925489030167803995584347182220584833121626990731726765930484754845441180623545588686007961076093054344057467886317498565757834922888603759437017280414712205732800885350180284734270320776359820713383967128306688325512900407838645182182191904543836593442031698754987730405601855516718417680458454666834127079398358748432982753049298079840462846104011930068270782483217132133071847434191645009148776897131969298485618759221696779737156344269353216852847259068900117716193900651287287457007672236351505556477218367878457206851152650422694151156764620849585064286250206986407629867202766162214498469803875104068246847054585414041302648571771775451782544139732883857392670828115725973761660871116015405640805336287477825595211179131055521258688427836212130911080321830381425299768558970220788856253920500406863908418142222178548107223477653941311757355288556270373355027878805806176590404764173512075696367175011352062180274657976223732767375577490926737748798855095003607137114624053823027191302816206899146959964864653555829541974050884983539820705941524993669690041424064904723398606970770750321958933101085340821711501995923162187004610744495656174647258876718526341846819397946997459638889669297699066374478608377986791211027446847100983239973310440467190341936954004698333909092862189261492594066452324261346431250297056237832559065042855144928185767644682969503293296750950510825089040813008491513840724803534552172245794472030079201720623007642536321620695411165340106575564266234187286247946715526765419949304649311606892368299280486126665443767986863098534545086094449348951035970752611331826028981145052458441123945149894279620859874887533377465082249535624570483095548295605254823387361773236876523018651432326059360754979015740386344274176622869176838172481354019372072235363639575102295217014694408216112036497796662192368255661278592565110470447877359377704800812035117664934585513108322785159715151415659099334277874122062288674588682314760983832021080055855014689370388270823825889481859503849149140245150958352390836877835186949141426096788340179669729736701901904256355840753622088318827047998825383600801682484045729045178562741057554736372587901704511870781672834328335017664499253852755304209367099237360438228478772592768389999592586329595915772668392003260719732364808625602681585965451616888009700216314953016246694370825333476185951298062521672141112762363255831590532597465314511212871665538799822388147841295115701563209349847183360228157588805859719183149618442401383718588350354284599997540621248156350405407836407341620128494641053436032337287887404652597366587046327944901959552270524542094540980933478965761722161220405559891108541996852036099060851893908791620042898588615123707900856990579326938730225100206718687909552550681853233171987367968392936456080814709038795147183334737187205847262788294143610408846994639692488489215524454158090501463279508035313909999470564909614242454015062364574316917682307491333721455999601165992133455865980205268011067310124524873460387742674475485365223698690018532476309276919451326592562962009505302596170435435183702851556964342433029770944742128817731298077749254435054789149718819729216003079999031562610663354419640992890932521455469379696859982649494960314031018933822861800682472757915384846393180478612652732332387943884845268125679549472236346570904378166176396631872266272146944887367312992516052140751116677555463279412429986513732471149562469512802441540453109107771762220085523831313698836720510317662673818186069970380559870149984720633447926920106648064470080636120833150332074806109110138284321050899868522016544374601654468749059077216849092918459375113395013370182403429337865990734186860197728610271480837393248736246496458162985381219456626225943718940777794706711084527013785320696495068521887638268908055983696218987061036824433295807112563182524744447789882715510672483890027562711503107262062957899998838175069675720271585093242373739135628072886035908915561254140888009438022820383081816267696847782906085796163298474405542216174369774069842441963852617103470024813994493891507023776623225708772084535239047894239987674992609523058441967380458633373859557826179051241499810380021934062981082850951902377886915123316532505284107060139000841193239379456225883664574434851886494106287346767060064322968130115500930711218657044717936185044834959975562851682401607015337449878768390687569724603097249389279887020282072432422159534503381099461664719378888330381932582713212237013685289418505326821986711070200820139549633363374133948358609668029048444361916739481143954447658415135882418608628361229831007267883169534658761686083837929280258309265125908758276259320691535813475286390620527147078740245758484520260947368439938056958259694372724787776841328722202789165118386842587868349434742317121839708194784908634979814738233560135412938140640374491233213571760763735711005173264959788023779730952732644822421008437024249793622603941794840333242388109645907724466134645624757008805261196054919041905804655209569331119894335721275599459506282275275311258722110544876969558728983889291686543887743098197154450683329133148070958377970088520892672073308549443243304509261422025122676832488594039502310373535781104013155844265939901442318206304611311283616411375180979314673219450453927995504699832394145584557866098280385301957645129887675847137359385687704875458878216707604717126931320172559744455906589885811057526044387143425554179998287446238713949040987393017377968344419105966019001834092062770361844344204665797098493589294153810481774856633774051398463071686899297866639596342573502625132357814435019595673234861451111893962950455777381902242010452704954015567612864803690776988219636814265241587719499213304538037613877928962939116490703886693414613845129586388702040659040214204311687943655084111271461641910782587595144112848349700710069656989020773516702248344548714664100195047975715984334465870752156662569171200537036947784066441891917980632764911166918784311731357525127713088613374379828358914267053662123400694607654014515393102350794877933477488238110139762032082500127985758012343332155215245724759291634048559872782888414783648440992666890199388840245980346466592989938541233712868381967501940851227996042134312844139258487093824389594844150074503138681786266752092460858235559152136089332726943601587325708614822324248341163111838104615540751263191985584139435446853566224067082431303031159865443971964410863156889914974860067112824633478560665668390287006822318567425147818460623497408115665120272442792050480268390526670052590838372594671710815235733762768259799846647981678300562468829432242241529158250053929162762764374021814099559525750540282945807663367002538294627811078496376759487374756656576870112166273647388332280442317136477763028753259649622574717118162995504954318857915475610923232610977076043895747923638509118236495250381983254842799752608000991111105986530075829896082470792717396018160357688504089460542387787461547995875501719659813609136553437796200565336277688437965122232575361439915866553231606391373188574972422917753194584155593579439673494970733805123959567624228886834534384034156040329857631574839608255258525334669038513243071283748731433647181871600959323661909898216423183675534996711389241326773819329455017996465393884653936609251704981171259841393383623888747084558833446786714784818442985336950099924602211200970162568542597969876011471538125703692279069139543032526710253680425547451660099496988100801555001305815834747601471098204777855511185183010633529746161610832811085336294506008311141638738043561571568650557000283555211191245694251425901235012881884368202544665949159400382107944183111743592176763231830380766857725188162361590124677910955157842766701058357615678250482415341234219087051395040103201211051001669690213918308833762246728985010063240173036281837291188516755036483992372775352666430984987015243147030461638164649934250960827448283637378161514091247372018708768528677031007566446536800274115537654807574895116797136960948350734395116256196540992474812920968116336813989541522287275198191354318937696745186703621598226273494381829618193568371267303314484600607520049671186419961367165094576050003576851742646626895782719365857901922148278189521037086820043019098798173672011842644886624504273986591780453110568839107970009532810479882594477200381919728419393057949633282476824728413870117603142884450714995958733501382327136027938627989378718833330561442648338067537305315531840565905336600415998271738453736287730392537150084011712974278662069608917423890945404460592433501267915613725633130280555315750054272403628655018417725575702927967271755561003222454398927879523131864630149614537855741399045947906751994911685203433725782821581496897149023477600842217151044698614842766066046321216276559321023335608856459512448164186128368054623483305309067251167620638702926942886201091796193019260334382110549184488553436502265475012005635041755921892838102832356743845381372280239534619459057168059594469703082616098051555628591700684786288709217907656679306816970293425197429046607107874770801878100498009340899272753213944934352062541338322925841424149526007386962256421277734688070264087207543164302343071778993997741422242808780343574118966911329777305593497033103511380257563032980076789831055123089755160774223817319871837751202301138388309282130208736478387923543620649087177210534908643008275405487573666459065628599439782185680685857561099778255474444177632653297929271452549124563172054730576397131699145559956284950369429640993998144538415132881457640769266117370037176838013531867171553503050434975400957229201043012509289285183288650464440848589346625009287351665047483865789228439330101402420976798982613428363854441635435946774280664350351219516584920800430830111809871351322039633743521074846347807603998796227698987703459900084269494032872419994177987138470339723418729591943991394156095593390260991594650241291124772696752102185382472270372725298014113358828594501759545844002094622926057400756360523793434801070193341125147162446317381045133813562691424050810443876373365314169013060545324705332695378529858202647941547293428844796068978935316585150734920345686864842445263036023939626348264806824420068825276689145875122967884818037193293680540201253276374188487455640189342304443445351544840569291018820995375568421033800710882672267395663340805065184153528293850898545473136688235082983073508944783457141577358985748201543311578961448768420529911775541905123932272333148736869304189509023796585560972083839783554546363924979304049724881806445862497221138268779357612974276904473427326088102154792144204384855899687533107671632181193776264268451553466874805912788533210918050899052489898080788951791148543995562480326485664208144182095316089433652660645893703903497055053206076969163128441873329429512676411546962793671619639195247761612978662367540445147836881406365554140411123705570916549640505008133606479243822352340794426188967983753390458631378096975424505200161572007256770856292060492053203167231553165553586012617933070281495818291038691708283896369769959567150898669581891445977435436252951892701682838011311984610405994422112623672903378944728126598386724715859882472746709028952865099034898056979555155384326392877468496443756974959924090034267671991341221936514046612378723246784598792125854802289577070601719053731013365359621085708908838879543085143655967877239032934411304149771061381468045162641186782553508618424625312822801468517730331024268563404271296949102593804615265664657477363030878180496540647429461630347541455907432738863038637778250764142682335786027499164872938790219538462430055789126724189845710895482657982545017728731552798933964396756225349694515735817436698408945071819655889354458023608051958616380698214788373580647403138118720083235218253761086136462550926932374929502322930447184304947185603183048101779983947847278575849682367722963013836155708072027842740952474277303072092188904125822142451670755214709001600191180345601946428075024052847990224273675075245002005749121870302303678533758521264743243962265018993868866171918763616355660376408467186797698411897699398963590063366097520452419541583342583484079902277230060874477520535557293816545613329540538481361836817507488814643960483983233512924440306269008837615405981392538174797265459067718996182521301507623531525151202275241860285169547670482632938156609006461801904054409740138791324426382080400273637976422382458300357403277134033968126335027383075293912856379572898873847914236407201701027853670903852703044012770080678367347145967844265092734517024564334209394065905968435392229359066646102577878132522240297729582100942258270701328093861152616021032719607703263996628303327200731893450068023820831383347512692638184992162938969972455488417538032645569003257816958627851659417768338744158123882274497068289575482351796787926995013968923389548543382620001952304898253641077055224878447632221856161608632816853356997405858984622365880330130202661101573368983535413217715368320675248334893560797381943631136143495776732728075925122349982064853557640123248466270090253899909353054806305183856226852813986256806365076570060253372146333455719798791021956032608595293336582772658697884948273193635787305211635512219992367634080921307339579925348622688803078391926231798513493623803631211422301804317909741923779301439467382715393668994216002480534184083095110277767921840417436559044946643616599816627293782354565231308890865969017795721811810095994120430367157735075564249855629769912277957776479905360004832656572282828028222051059982348038310312960603041523171905659622340615251468126364793115361304389140881648824691846489215902628791097315464627410863152551120419309591083611799383861523501473920814236099675170815223829545708274413800909959361436993695433222616292153565265798906430059971927391352581594532330358497044182307938860323094180246334396161212003346590130250286534389855333719107226339293355137233273500118794472592366357899205393008072419766617903049863878838961465451776543208708653072011482001949136748854997896335141712227962774698926639612841441386361750138809098681089646368946351940042578382905706433892263350617117048184387676246912795549552733289639270853922969456918525733740936957548710422023746415851664559916990612786638607825820789764845262925485747661702985930971883542417313882069260151155732293335224118501514201187093504850879839603032333620682148685375976921697740966380222284732215460144206143397538701108085478544162873871826267078978592725429907215670962863783584215346822192117195286862607007647217279283458996827314872329743527469527601484804550667678332288280661592570976050408919251250177516213506208492637932423920399503458563018406425393447664657173360922167802271036689015337521605000648594864693498440185316936197117707711070305026546366521308684426438262310030868652157274056339032880857072224015620843412173040402828425447937130021503257065030259653244446714212341340305763060742474513965903824154512418685489108681321174980075417511152031113346648192405366424355665445644711091573122246452168631928187147493573083568946592174560397582022777025640117579894225961661022350109024278229918479049823378650168066981320001310223772925639990560979767877233882893013448388402396691104943663679650836079744955572517371441378833200101273132415158273733362053454414390410261674649840757775894873054757779862571583747179093315719825704015657418314381492316376216809237522151206964825568523203748315668343844823649968016011221420229823113303008329068177821691565606497505314336230306362063470934674013386979819684844090750680458917558030771581456063707460718878613235526859307335918757990984509848366587150498888728678838569580587205117030224978897117894591388418336061864877407772823514607760562819737101668056378601198242800506683425756580018584567323235099705349394422388792791572395660916333222000898183541024461843393649600191618349726728236234179711909471194211111222924089940700386925466804876627528527193735140494660072586474715786753942863598844043122453799021159912663111373413097417515736023436276936185197995333677844641727443650953199620435341956876913046156253651283838274307006243390660717652870701938265878985941319679905205686806724824079144628416162116615051498458542792200411807727567074027161797174938673414998000622596085775227418466967404472628690616349638572903303710275248343303572332487838794972784304886945867486685487986271907430417108390435112010330268786825722420217960645213152529667908437568056814319471896249179333746616474982298407737810907987990357916588339392619849144684602635396420380010914497807007289961446257492094582376035763399452648526520156677819789585488564434506624300013528292833855186251257730482111039204601213140934429109875878198819941548957269432173644834727237818465834045925544561233083977789257057166532086893473488780953106059017072851215502971796682859985836087224659890156256937159761726048393737111805283138577600430526046915538169445583256028228117639951195945251413626638619189317811244377559664656460262580174347340158959763183598568386859685624754038370068010150282252413419416966380785370358174704973266080027955921457989079690090654647047113993624731595187493851935847829391176674654480253214834814103723042885887259853365742764393892336685369212435212883313891774644925815804225427662424034526412764585609451625483228885079769653095657198574787677358941629500120721848658519825446226360768971671490472126649744587985186267176432503613482423271692868445307134352587413254960614305856514107058146802010609113949046125729664624461256016961082683558516853826201188672924919540940746310573370241590320374450607909840698512457377618923870733462770833461467652688458669146346488752478904841760496984447192030692842395861983608798002994331828111337975854342513577304572266475496598763961548371519873287490916661383945718659865099828176377556792410801524443823766917859854907159637104967571857235348060910584639765018609355703815171637739299147828255322868537636921785238071520367213538086841816441274066252697972293153426081654238726301157323922757289253901197722584924475560308280387541222148879390705900022362122737119990570668649137608758625216059435006954315853630205770448803969550602003951472837773441875957247707687834833397377190246407098376235783529478023199953638417538316636910662988434718516383109069331666595600695126759815081929810620401141043981819631384722269787276655151771499516762338611329707372385440019909706796174551041156664055660452946025384702833731278195197688120060213892226712103148280325001795586628225941289585593199530882418794016363712555876840853594053057760613412393606891369455738731363079316310819763324872976992805200469093749493455671110284043775057097636150850379500893270489030161102958077477842500039471959594167229573086466124892479605935721091305640261846520664021088117111195251610083981962717131706190727062205708681061255316622909293434046895851776932287231547295417779264628006487531008845139508741010274580587714328768831450783040742021878536480615882563216497930940574551592696405247600068564867495142886362505816117543137298990470705301970695145970596458408207002726032903152740616126266115491974527485716469509577687246532634402253184170640193518160991280136416486808042369637914137185953742508955441352560996117983674095073928223637457182867070618817461325766247877983605277121138151618106033110610679738668725493731620796730755357367188354258216079653594266413495165192120671173560515913254824045233110535393268987119682889185064570504837219650152465678946702497445957139555575562018916801319879104904862564915723165328120151269896649454242363299218990119388339543818894316839687818476992202536948441368311477884403404458034251147997399866159453794067029243836691342303320309922817171296290818440312406938075776193444014727395459474932451804034734004429705606842743868615860743742122804156467082458299336245868563376758417903591193037304028738953079681223436008417877859426049525177524695178325809257856081374731501143221492442972984312885946003360435051584824757977724225431179841666254713949794373510324924496307789129333802336238187392825267008059329458700533604124040588413549967300598837675900536591661393538033893211311243404434434742316507069042410138798065283239271224679804330562443878863373344298851021723691888893416183400579886513646360392510464716715862629456036091885672786069275120399421631286095540615903200013450066824714672180875768575081272277767186339030952847863108036476470842240198276748422804939145778310981724100223886058320623670672965857360166644545428000964106827272780663321222050596807163133873094368665958589227499468150155088712186035463832667885984591349064749208639949806854469733058982754065178765952841586373913197922232324372578711564345365769615823565017054244741300439005871727316261811976746705921796355915166398111114117063008820894250820454681083870674267476420273801531929015467503509423345145413696905507459629695434177331837519586643437372573131784041462112228076461457739649135903412223267734083608194073979797158647641725302984075195777541317525733846255681122418698518201726027177050745999053992992572551904247460633114225791713405150732083680773682218126303102918660151072741555760552119585597414516977010242277283528962113679730118525416636940970144796141477064872110744749749481877953507778300249473886470007173214896348182885933310118603490300633697876203482068154743911926121046202442338590010140254181727425205412187365690636142679274240959588721224210916966575815650004843556329243704627374843172027445639346420483817095413164454618023419926146042306397400011218136584691679283006175492980265450260788553078624953495701169500887643721620019548041876570382290058032721522984299949409843818196261473497210377279566192085223427106591227843755894962295906222384835944001109377971147688123191302322925447229779586254345163593964594513008267070794899003415826506865383399460901946149840412161570205216325039317813070148950461993256870239216802229317899563061273322146395793600587408426764744825011573827308442709895804464453978013822889493954438747601318783290410056035617416673220726091700001117347881212052452071818844223509124140507941077277970913767342755482856237110013095781684835547766322185087979090441142253380558273662117491736690405106060486381441102247640575997908036132955534436641399456269302922154843936812898538735530043064038956649519310166956331000651720144898357691604514531191386762704463830079586281694487537381836201323502231679688827800216592819083371698469837827063627078131543115027081432640707857231829650126966781685057045283113844598104704785897989981706412305208113479987469016631597114878323315807336183911691326441467041210502472385363332262096258787427109957879713199868483450580982012141896640740596813291235525169653475716281745351620636848601834495758018108986770705669505795889611544237930354789132219052601704904027573814303615083333736374812048265181321659473070550836901056022437371462590831240871125525208139343902205195965558343849689490289202356207702516107168517830131879687111307018240734477371890424026648691017448435115678282052048509000179427529695668255290208352334327506380313415583255937114713424732689017761821877818227705843865513670338040332917582150992263637797581717923989383192383904420822240386548714337577459425413235115292969678892126993631136458175173600371146444770632228239841234134969960195313871676097762311027015609511263807492857145827347026242075025136943292821021988994941028950744605767932739733710624986896589623167297853208398803038904091171180660890553694115579702420354939293218970468062369550912159330351705637759859227280742685410025365067462556975850533184119408897738765955407943488395647990624584655946861287547876758258903527038002552409531225852293991800057326621925230122250294508605841038882444349304915661810667987546425647470181106942232377837465551502850739921378806014506281426502031700886580037377670834282716498220043767903026836113323938741906257776910313113000168647542379665219775420361690474976783572592829476168441794533489935154400784694252983288306840617893175524694286793623255983925862132757194085174904158252789241189097267760968775403997176966307638841342008124260909081608983225289508937767556296214376930955036657237055518798810431666469639014508771151979984559851622465282542166961971323455812018347817288980400615102554748849445702591878866293505609576171461981179806398257113192263910141254915322655817632396010539078395021346819418495156808547607840177566389442704803730804154935453535371740207494514198273681318033207749148234617017824934921441343134542811880217207576362293742901536011661688325626470572636439859619468768533650596093400070311012876146420589490984080586226084876399221296350686951165523599841344218747178503819001403272307229200198348961012936991427196789053544529784090637847964990071259892784068427873153419648375972937082139038877336713881131965508486205102186996142328834027752111258824072773968767870459624498535004395141797208554105999927989566666582351077641454741073654088336905991669001140826707878126469358928294685444140510344286105531075292541473994237423990242867848645954363390954777089091552208309001026441400045352029450962888969183177300324723278236284523841595345721621366428785622236682154164394569789978868934893630482807963388307738293353469778682258437140473090116233312189428220497085196381478219228208400956039753304630964910592020307233808799444278087387046150770777975694210512838909969762014300347209610203989065659902207190844039774712531220396644452936966269162953604191297843703313772550673395336978201913906490239308834125165282283688389869049604922324303644675821438909012821629295180012421599903800002797433569936260337110252959333488878096546376486418649780519857235352199697808741056712974509763092356180979282846794618759322087640673868496001469841967319561009191852560729499735640954181267591166467224642297877622790200278787106001086863046264107525025172561897030061463958466959980889017577011937313725896505337905818437296445803601054400289467944184940404503661795162321731812209795634065886830616847980806037782226122584659455802615575522346530154163409170524139897578960435046135757730741537415268767794171041155937249230691170857563578245853954137041968643119867587542911380554267697169864775327798876558262322114575868535352103636821273817876186333468922576864196774527244456028068394067634695665803251899322804600778108500053802218447337311653954590853312698563435093086368877673891190707625467694569939233383397260793186268689950198839448289694005903432592274502381948033320631011940722933114247575182508283659788286929952210176736693668534218444119474784016245972186010455925206376059166950657818960911360843137375417906262696025502934221581413450469979014514909120831496431875998357958786015544460604498086363512340728734709574061759693023225794529569372281810439709373089259971549776791841243860327657943702653025584943471326153183718196803373863074881457497605278148222486857073643079740821690546311991840986386969267412838235512540698407136771245454753936324768592957652810985667985048206054724303307488290258747511209061380425258399663783042773304575237958547019247873035162398439463839918597790440453953500843800042541040964066901026166804348267498016108719041798535819466026002199246931105680345131972206299859035080519595268867466064444378389902292414335074013021039462913810260598457534136072934374767293089374212559914285587671515326406342473302728848469214125026330544815456788939471581606394375268035373040061570089695869663179020454044851240569874293155088376632553009983336343380614124651521015752468449752151764297713506236288183551849008441971655680692766559197858711204732511056372518368822054841101732596512629085474950842563508378450167641596998496687262591638091654559418990641412367075913136155152322219100937757833246849468219953195404164665443927024148549162175999450889217378584616676504086973330853936591513168279321022922427687344048761290024186480336761152319162594207322422241495884124026562540589570168676455964622562267277770210786037694612875472575121388792253678249311367292795459698092022590878186509945932156754065843367368622104613094123864233312486958418116672695185619451450211378435652517106286523394010266292474875472844466044736280686424989622778500340772929834072248573410548552311847759308185029534494841076641284005012099818245287557671495256776864627191095950693838589740294654045475630887629644103522927001451283365554185658484845058074965749252182410684585770016856536948922723837631114429345281691675983014359531200701074841492889758824771052017670682500746242585375018552034989243050742037974789964171850959529757563989344747356317464405189402799859722726641732576083964654186684320060870279947433196084927213631289444830014026937293525023149167477349214115407082434495383314709376546467161357518412386283099296759617201440510781532862538634491781058260081974424668102730959104581614926155339570962735292654523922816473023251696192264373374229241245777473316614342842235537367910794252784726413577885099789591372797923627619788953789014125373484055111401048633729720925160120225256454733712137629439678156584074229047157018360070043678622317284080240554913268133788587364684200816690628828413348469264891232101939876327603923313003084928994270690477512596282541914432199235911517592883898375243540810634714957629432245026310334219735813028128471878510839629081154235557275320588248297754390548086721213664868666760796380577079058340609364286227641777102392664951536633265565855695479346745234565390715915008706912045695510033623345699709114140894919509718662101743418988421023865970343350296708409220770005249543922740830226502014966009596448210617006012888331133040771654088742179554404167087590334648977128478546288220973980419445687661115367822774539569347898353457484192150310783352120870264840766199192017349485844510380920628122598049078250655900771039911296246815951579269275317241675663731749733935912919492669687789585220446642382621733864165895646237562568133890315574012467983393299120737882601842131195162435700399042551801816790358718477345417035843051624299949148300004801145675707378276884739824126240749643864524711103017237200333428969989596300615689492343815633909746860323488834051766271384638085153918133829257710210288896288236304188270141602345814881913495277998545905591132932014358656921543177859243070746330877135605384901392758533683634619842380815213628199959048087436256558909482166143341663373147841298739890432499614229212977880323717489024193299126749517607688198965094987627017297575108791305572515168674323000158309143559914123174448206894319039908908157571204216256569842758888312339351605298266314442615021135513762079934347154159377360647863341505033311383417287437629729102603101810912321250631672449382520605118246425290065857529274668849938467366380136994126243631141047165895506264947066561648684100515405439582531416215256619366772384879053971301541303263316488125369735720992249868098339343691009821808469914726887983415489274391748496133888072124738744278817474501377186911384223638958458087014646004079263478250050576708559850383332566059191181746919883418072766129580248840837134177368801967746468496238445413677199419628777752013064949265217023883005006760343639318720652509631482356589870780202477101845391962297712067799986946988579198712898740052215669396096801940044898407616823480570333347671750781517285636582245426809190784715076630207549663134401047262014536127217779958018005883006294498982600259265520122743465064044062042465290806264499107274266136937490274249458614104803214812624134317562917415325993620559729992694108319017163914673291689801315386954605739482396720468993116813346688814153671069338229285680273456362187385797438693741121616629719712140704712547166833865387672065226058986350966839276708216782080123978001814949303716462317798554114078160618466726912858621098241783622173465215054019244639744964670942292306892096052703442483604051466868806800813740200576039801485273742533479303008000690276345279713723807823492948224595643433387230057554570696819687898799908127778333394202770063864285871109993637822537806220055192475760249346428028846212369170022540395760395840183026686177255627871144943835434321654099017605186759095369943527519550902237638394983937310567513765982100786139098347460561667336840978697445288780443382308257948887886558815260118239607174938706864708622762285898068962906107283861088889493498589750163067021997011485270880224381668245530186986988907332301154139210284613281041537413988059255659198815069013818887410727968295198072771643094031364508591520585374606519939951392754558015382850110225621153242733498531403869507515857332390721711243401095768842933829682789555680526823633029073239502090789950527799624677015245546410461286579203440478054295134894894772058871105125764520044789799554003069810257625555959316700591278210514589931410282191860092763512233202326407529603905853224538226401247246402156145582505015481530785912100794867023900090375647607212842618130726085384824878958643855869003441626360326050615346006801538685815211261112791563384616226555408804258267654482310494213959280480314452465121164577462429521540608018326079697005358654373858829142577575837361207989787706259950255320060669455097457390459132524181110925892199697247888300289734102359498685509881418616025132726537392686204895559767725117334040165075001721957820962568360672958890014316707258018877869242742293445452782747077467059611750365486355381768347050413477720916608449517823017049773856339937532274997497097559619626846032553496596535101233141709179438708168714197368603878559522516492732979030220741995257169948121001134405002766443949524263839073896637618951493325635657985954008015199153937849572978785384211154452347373986110675140119609925482187810217953331692281979875818641416409877679087083931778234254064209885231130737909579795678120170411084901653577852929471597600322205954843837345445549199542057526112963784379986632572220266952220946649382646593738756694595618075107409507846352787346208115441670360832042396731259449183508629248000721606907075726265439506599925703890969747504373182067181608636102512390112614713640957849371996530867447574011721716646197557235913055198288180605728120167087413142821657318900994457076598243981333388216225621127651938882919034249782143744211869691181274673993998685741919048479977121416313242673678474187998277906539566960103453430530883314536166706866489393757975354449829701407613971788109645847320723052982575914696159892958409851167145554579925558692069464421965260201352193608838592140242325255386985169590965024969431561769672087723004105666842294656588576505877283786122996090556564844703715706011383577512797213020100814853635428133009262537641491134876304735080814531975553797941603886483858814197666862949792902648686342528073831176976811581004352532589020833829873283603940321136971922926766093891098439611773006727091323923251999765974932085237579004931756191348193961188460940949454537517330983409821236471693048230213860062849579070522440813281085937749265972674471735027391395064587932692656580335537595423341090053958639920561723530882254578277349157870684827223723622148205582021221152707370587671760934319289593867721986479887107584060300880478263455317110589291855191570862235645940562784520867289374738195630459457724757473790594717731636545056663386021896303851434606308612940434889740087552486057413576036687863432358461370001604702770855622820049693686273495593068084874211384687430173491968479765448322735331581398599725316722774103165837355519351528356100082425627359281489743222683762445755943279087805717726434904923072476172724879677796939632294898116328090993688204436292284130318372316324697822838342331483444642955814728339811454660633142185591447779711005180569136257144990407069501014523487672000743566332611028498676080939406361849308048401932736047800609329844983787808466154180929827220685168859927990563151616398888704992990666195632298701714820716393678790769062452756010357517756425192544529237413642850641204491470817196821736800879859895774050008384191776824525102129387819004330203902049918563485894472968156924425498946254503771070651159581682780164699686860678014732776727232852441473668267178553040787299779357116799896436679710007258983634653349398087419152904949287255165503858277062732618254347941855228094709177968942563334392857772618632923600664054343459054559752503449678321403271545426946357410002987859932373238877592940784777101633811006735339716668222858822089840646559472553062749942159620418400304344503561740761539594773942780271974313508063091483311556984528386816159546320872163373083025950655168451921412013744624513444025297759886719047795895122002591517043242659817997739321604483660130902309829703659816271599446157276438628369907729051667162173029506073275070622364423833245472404648730708259885208642441602549660432765335073442997356987744377082272669601397612850419994509504154534916572973000944643594643499753657942348125343689075926338795911123545182621906779073182270294249284032641951984216283222374522553608103683406598795602816484363849303790528043887510756787502875752041598965597875801311756307900140276250180590614594905156032112739427987715183730047210521400629686882099022682309792836963432782000674731403927015901680581322201437177631111848934806383600461832251618024453432889047585011311606067108798235492842498002343949549060134517140667521553744646578495273242716056590830053617337090844981420980759876438928179582958113700867709976999663806221170006222095662365496766730137985401813471054046221300454935797472701243539041496065935458300133026431584499027417185471156517180523842129732576370686231659919320434866803014906447569536465441147672163093627069958024290987184100238362657224784556187964441160431257636510905251702269487858622998975811648321306099373311034348271356611958365180367363585677554207047621251195359649875279328912754503484603331963646087339263425775651705079752757960919943257003736606589284421859134815393166151633778242958137577164645983771713882065225686002698658659651609408601880706656167649385926045752868182950864652593673529562581895235740660936349383531124141097183060768764467528169135933555654026514982934706471981168124534642194127186270883277786816295816836054807723983227309974775903038481350438681563924825400773091069767760549720520268827360605148087596676719932354464627314206296991214714974484461904921528565361675321090329662906814030999871283469272421431567759908526574487337068720248330082186954655428262308844971114169128580029598890147096699733687548094203917857699529569218917729331593848338587452474612605259014553343494851020966721709268262792853398067854281611556963976605025848722750547923334527753291883926929294478098527951595103916030453033076830909305688768588565348201311528435669285942324783752875210811819810699176720978086594789241135493589318328003751523515423185610423505138916822151543690623014117437463577786193486476325037250457811369324062312672335058965338882580751529551829741689390178987602818143658437965073130185758199583782989862977704730818840687664415089145741038872264831340668895424142758300795225161604013470932108523076031995921344512647802167352640328334814498160760244888043125883105980165735887627202694790824809230221513260056738316544847752845234480586021617779398991888797409176809570391287827464807077183767924543374060770847605797420421393900691593074878749068053180275696894360434630501735868040764327302188971790215642210751492715777967847791185778197410966072050005411826547349690396623321762581174503784839408522595485660788647763989001283453201309214492937378575976699454959552948587153441084550083053053488158990633535889699609153934783517997991331709746779688559400206155401436923036469176089837645542196452977931379154711411013654255087800453127963015694557973123530517033339671595097235187791753078526589056006391592322113027319902527989530180199552932604180535620834231009549286920397752756145678092793407362366401139633198729316674437248107692338528365855324340790161963980857604741698264332829225180174546419651244074389909067177014131299969779083137870744571542746296898253647962405665300059737740084138141607937396885092571133770648370852781270824207526081717169809788863332611068290927572601435439726945417639238070198598658645292412492498882234153044272320470995400695607983550350967360844572419764887643270753112010659761561247662919151510682224246241660133459767374426476919696687077497634127030626529681070641303112039605392205604511773988175481296460327135927700183844712272487928662819412564383486056832143706212826313650478095486230391110902200003664970243676472344176108461654189872728443969852682567603769658925231125432811046215049718385564693861966089419265156698391140023797542110798245671283976445918407107392052071351521609051479432537622983034369270417835934449630038882934188621608154129394476478847580607996109964099883319003070725538979748115866957727114244056478974603106114648695389495466602822778587094354115423685485401755323166927558418348604930168769734969545790377411007160359946539773937565592919407232030846910097038545823788217977832512795490042788191347251791585960492357827966332329112649142892630489321013325406318100887024164381488834636099743881077844260202277061423526293796588224998048129266585110540966384929576987059036737413243785950274394170293968412861978201052508506406045219315540050318320049884631979120080227540956066421209076359299068474261934573204154288318617183071022508340073857956713158313693185849737817917625527105663950362213872715206500617098922436663755319383209646181354067757496257112790212267260960586480218270562323597478277532277790491876587697747872649443619709860720185791325626038582155686583705823983899385561378084391681866647926490917021168792214236968320374054707754078981336872583413718201203815101612876159860199580308888561918381047779259096980901927946691267720287067649727577611502282711943715799204214327681804067343181267507038205838755196250814285729049073248846719230124054394478703483407031423949082332156487600103399205330416927282840125681653076370304351525956055361576789821452633050034030724955768681436342628974752612455224113550755259168229127777984365492565957427778684959504634648494433891197015375281317336646054039725081373144972847229844389773068903478066445933122961085982620117898350159392327445301887205146638760506028311907339690548446880934350628130583048474067180810812364362292793761058684867666335314047830141987711347178806201019950034735617479342282124481004585703286678970594089377147791175758748732560745350351504421823204976677382726235955275832866239323664978005214036445735591557423504009539492570802884609817462895831452851770349771947921929863909598944399968352491159960929757891315795114774716111030032385487692261453388986826644530591663796849217162471746485514062201916368586584310815721397676592796273859803163767426008483407598236988121014439374414158126294300159672919047771698139210141517793535704199330300901754825166736085864577214850695452401952027272929299941426551628593692239098515451519384051676906700317286199678422816690732631480135570790306114528120076748372886815907112526043177176602198769840047492832916836732789428220181349689448315417407076343089946320195663069171437515860677634976638332408890882048580449856765033398524842235401604710713125968124341551856371912987864305990494097280187412105121672769929714401575723900841155224319510054714988912831251756783560923988735733543309164231813035727540375277007586927938946778809482563159400501514308683899567330093158597491542313452082855430940602922513994083512353968771654633703387823142787439671949593338093376092450070624821603804731197909978300249550262969560084238515574669575342404984540448732786170283845909318594958463161844497999652540150722439008677511130533447019967577883092419236946821694735225537183878896360726699030847874771578562726874548741864363211273561562597085047039387400383761109562448082559852047679268477743399450415619039502474435040569864406823613383344684982285392237774606303887341643357475061687164765073916568048478778789330443345004925738815564399446566672192259448643221198347919436752361364579037842353545198499036091493067435060706453040787620150114398864234646838077556358905739173507742854247409650136989056860749400257521138522598308066231768582822429139319194284420412891704525931667830150904258916213767866167558534772296168051530765080263781829154950071470200458698562502685035187591318359492722532530121235251706163697567158002455542277169131627612825952202963123511337871314909101353472138160437171476874681084455888210750492443402317436699333007456108913066647088834568611852408743475429306102772498351941689160948950171025334876536158057135965771362388652374124834534937145418005558925729822564281444945888142447021930419594984985884142728073226662922941539725000815549552796821786736947726807355083979245069212276931936687666810655509302326568397414423754038307710673944032468704164039005938091540238052466493662652732133714997605142561264223334130643613607656965915127881733924483915672483029598781475840459496060461925653161078531659358425037241268546764064706533932772221967992815912454946504917716266726429281406721541621046287830225399309122577602164057002825945645717806347899374707477855681197430420302716954975577791574175015818880303147913994711254044540342411663349306979698136152797316257096440855401371831625398032035370354694033139605001511722842501586129825446042057978429724414323680205522571066493485673150591872281188512091464092582164447028357221031261291539365946011735013962331113472982817777552151700763288442869839764433181443269309618841612577084894754247498120093935276400324213352169833279147381891418764782556358106866312914670870029976373002463943691134071945501424134965086848449633296408929152002378250336045302794770688863535295161655336003420843120833729246992571077954845290949789104424357999292186464001311968289325009472325115848741279229395803809655381748119294428919956932894870845397894691556296574010210944840675476122104418205884495426277698227219448726160839594157233855181871500290723734369306183965453820036559439571263392347758274810608209289992468870973011060132500972080680125333315390062298914566104985908041866742340400553831999982895440888626901749249550098507750658280190254049626944045533716971141649734701832826517929418502416096304065243348322602143458769034153721907885372392451735497293048938840977603297372235340773773600984131597122247116910347982874262419889277979725313774880575835276220556793162385452834426707957037993608989179383062923208683079818141078323425446613162788473732622161410965760879581005270391931141804883083272069621383016699980388181380025745181037568257573246541222371855300323560291637722946408644702314844893760620562848282201646865549359171749781230046895611060724360169178023240975724348711825912905553143196717892775240659766889782850546720593315812676071460077832766143008450144188532810507740536495260936189812463364348055600428798046905636751371512234112784490159648741657055091597216358510674668427952238178934287821910011290809138432365284069422138999946813987921114359148901369549894770345249381977379716389117621666911004357661900525246585376913508132209578707076007341083203598516117716692783781289789860038200538808990691308197183749125610668667046585316789572979896962683415192598135378961984173567310688037833866517148699714672939071919155023940628677632896061552975703256146083846826311038320773594471144036017793588219681793211079437926519346856437114963844811540501023405173385164280044585399749124568525481639162796116496853325335711250174475062101043658596363676498059343063411938038054034684401360535683410831635724587994126671462367739997245538823953864771969209358434501908963624359429701307029237418796575569893866125983949940638864462261612277446615835981391426716675355502901768972991385777742626116128620357707911366611455004388437076827385835427891804559437244699894731195536693849348495325364741703872504753051349326104279868846060494703025626173310290085252612199513658007796851535159319520456764140797165447602899851888949450375423249600931404658995673470585980988632372801639540782068547473685977220922680134555147510231454891050357526702333908294887975093662944323313840130827086947009015490059155212143073713916266600836025267113266705844364025875989152341289859676581386100905194435801931365069423492474016243886255211067775262525878328667515865965976424125953804675823248796942574089440481810533927577117959893574263057873352194660669874526613338347186043494860402120398026541857900117045846890577328358965728311557818359326560031622982137878547105787412639633454551524692139296105959265532339119427578854397617944000396330217706861796351992567104766775165487348791563876895580390789400737785287996777479915406750566808904299783670281001153068749865387610233408894158444996939496607501003522923191561397941589156635518048287634130673726198247050115383144368969458114224628855425783487635652154516665438922293856651652270153257218753765077473637843200344392233438428272616144898190813156704194987503785316126162221630758414387877272844018890864348639580214707392819016481197387300835727498748123546974829669961255359643486214837762569026272325063926537512745912169108688634981646460870268658780862548739149518594407995231148426383471251006751815642288072533888632401102134694704142098103944849872661918981178762938830168918725810170798721928262820754390841044906507143085253212339390676088160319780635463559630764273180629952840211471686007533374229069108285484507235741812756903636650518077442740033280089610405505919766494069523200229618502873897557329262043427227995708184297481554639832902470680626623955943722911975912789002314501184146983480274756038924287418170136871910874557990077338129421424400400603189538276321457620413599369852251445777343180171532678293373734266339568073698579123109647085851507218741680198062170051309240923020752978103724318215092205568715655898866872353999333666442808307281058767477998097968103700122201761586670311251059962945678342888805931168857061226808029459501715371616075521193481392851045789334172390514963591318066306926597130043857431222033409045668237531190445376082555918902063323755927610766149207774327177440565566929094449795169084663487428277677571101952652446030251569544007490840479899901158355519754727076468948971418120436868597942888775171283234675197191192304396650348544753027134089780238117534584974991706184155534840018557472235402103924126661854756792152593801911961233742736734246290297174862785835802843198065322102083215680461550479698964768215846179005300967600905729289706210306064951313462367907981293080413086099721088943169500576479500176693562794050300091290111719435689407823800444013921556937344052551638157448607955589105066174171741755586955653734742624329317382128707430832382724227693077877095664433605486256026763222537418637575896130579782103089214044163823851992381588325063502574535738852306209071425967191548285571143389095715780025562987897415740038667888487240412119551034320979214823973449013927315518245716768592888373991171421491350378804737404683611907787048797563892292171904865893042339959072575997093035347700466741311902649100119405127264120658327741301658248947803400438123652594116793533439311787666099114366788659968232570784412943919612902219794580174601506013163771597394599825595622178130724363800257925602353902236903142075143427901058462229166873132680529827491702306421123234506021022155036035990414807544058513985311668893873323805113566494822764351503524056503705155220669016885962356849211965838746255108940126295651636683586073052039424587494003092116214394606768177141240397985236785797153207598109001285291380620791994043918461023514986853985760807568382476282335651277787347480370248817340856994154863176382204225716696497166473500066114665225398949984677049407226501606001279519261726125017211021923648011727932522673454678346471841460915222441506485616689421508636063257393954616949946610789290365265624306085232844942304511113428713500289663994604345182757175540934276508437539764323520386899630268639797597890903678241413795106505851340053059328765255142950737500270297631719832842042559895671526883482456977985671772567365568699148902477753672481949994049841901186437924612459012882514282809508254213243006768535606797582372818688740692219064206122909368481732732898755642893052433748431317830858160921506337532506073520529415157873379014613079909309996337634972079181544293551423179057826905085132504881454413880786639722361525372375944063088502287246120396834358627558534212274209196077119441208245592443220721771679304837342454016554778722850370490513954637271929194144890683362429754219229239696313104467877091976823902844901454449090185914306124009743593215572099050072385314130483772751689736758391021158330269547853265109171195341726574967834365814858285715562677380545916488926059339357677338048882163766477008154348502557319963395171468248411099184967214812797841866728770056917417456735840222903655665454112624852790971639499208375173680069546623929959548783417364972021874694129931403691017480436818899661801811067552239523792336911677975975448849364486235468616781015916853219356701910940404317047986479773227756533044868563292645470474596204682409377827033988125234487532262557511418067869794416007856219028621773837745283830023801543957766827056575536956913371718247534066481096486786953020492802915595569720111560885599163330323584539107484165146704648145942341120819397273161316137471266802842804204056957490387729545030403305889592347791870357705946912707835460743460420112593683098604115106875761686025636290636466323656578020337941160363770763548150904688043827967510109671741779069981017727298166871076025780704612516027019010293748886122375792590999124740551790905658345529666834368447541388437317474404025717020480421775935046093385595183414435563913464739973505195558177588695062691504790512806865196330702240837444185146614316796067609469898252402464939724109907478983453503376847530926713922085557467488551448430168294688862073746198466748141914589673009817469446516897164639476377369178065890291101164619932367077463169451095525267766160207262726249193968931475647709726352664108172227468917363714372591601999463642096102742796114491200497885543447319579512369870991096494562121210072447647360201667564415707537347279044201191858259317582295480722845303347937178061753474254730740760632291449726263355793534370065886183533823879677660081507205371853716276985874350804560718682490354210468577663517547217155762963763736492244526207516293531092608529356519884133537817044672967144754377248286568593958282609736387623709910876488520675186256566524818306520265430108487154834022851491522833814846973694085161669080837497853335035638269027447807682997689750230106759619218234222578520332487316293672721621906835399928420343888541802776736345885367449865685134543273953634050192212105279048101809307172102472851629463039234604241004534835734578404279012197297380426459771595509583384809923425824465642667127664831518566097792757954004127180817061487108797894198424482789026317174888265612367075999347689448957084752614533277217889276118792007076935597754845982346605664684979138929525949260550175617662074048642954951671274644150696332315319336390313472688871313898384099048767027547253837241707641237418173285822317668995748273037000999829294187873966930483888033449961371704717443845574345764794443920066399951182617742642696338247136270547108635482276072916560183735781776102415523389958707782737546359116941494974262588322628424780141948615467780868898554803295960132982167522497524151041150228705811264967752644147705162609897450563024199047178163244652809550569844722900197383117897771091441918623248655111964618949438413059626732534484343362237610654476026238586832120825965107498109749686936746096523613480198336975332322575344852162906865788017216563437362079612006322058994209404522444808423917128186158124665541566182354376215839305254453978856549179927316866075566669935672568230917494124270809682506253388173760000297143374480332290773048391241949894988942629503536668421439811335036323082115772404136896750009497086123399417632052400469552336087230092113992008629833531524387019453492855996324233899008946272861227061372690306100197271820097240077065058438300833126540731533578801811633704575125431834590775049599402877780194459660835867009768136097826576627992169929114475510009351751984515997909702277581572645390762913649119272943468887964110110161569208939661462749984122922964580212073986828400126548683515713786169566777754808833716872471848636414557875893092178309626116525997175247142244381179649053811678741953074141407012754449994939212903364569548859823725219587236569416437826620400423567892346700997080044999149048062150750760365134420430902530342257738721780582234640258831474294697936333901194872433330249121970750850038481530054124441966694052823790572947497387271198924159147683896790601038816349281672881303308487191045662599049683592428473664298757045397585187469615432052292477281121213478917043133780035443730665155460058893975608059305893088793329375470077304384428050607616367772553930714840666377288339146670427703100616850808452789677947774051102968477085489604129609945814501969528340965516163470402173899101005086449003682655519767765154221589482715486607732507613328717581336778860223247331014054577957445534544415179167886285377828725542191935575093670137481860425825916118220009830619277665217855303444278669667669529294125279900673374586592467729562304507331151043639323733879225703901494495201505014420885546480421438562142649212652193618566448227581926592432886936943824592766512111909717556410183577570953193726135986538302170188087433821116624488223338889983358247857017405691901129581909145325870988577181350801239168045024840604540914608041191410983862296261494259989307060996346754148806037534394460326688237265612870759310452104931239855218067145481964476465436752349741103989222587355028682797538385059387045270482416916804414422453679738581432959275446189589583280991060185769150224946563548560773103343741355923447311775391970112906102473020813643676902681020352494604870402591701846560059414037553946533479969384041741199122167006310600834232954026452101184789659100596270530838583128291003580190334643572450611376914190482767556916241710018560314472992313908668600948317882175186155918007612697848281286004965700220044197473117086012993099888125709215215164327930540652786325706107775458071832655822808701461977699782610521396989872717959346525930904562733668259404340259685051692526674896210448740525806846372912244444348167231767781024132054772626808169178162878912631705892770360386168474641916031899895132400876432041242769140986844523394509404339958698482317528876654139901266787449735970635018263322667767345336731174684194105175088389814681048461660594718747616485730688117837499208409632975377092190535371947665553943782298422792858068628073410318915087705354658352436092681607264371959918825546984899469004001889711796988174995462891038514945183597292019846503265494430979124398410181332729286891244939012203089741322216211154407719630668866426926116895933286084555788272683219625788677692369455958499316898214523734566095981541590978833258167353805892441565955187550407156174843663741810826525787856406095383446421424083905747865860873077682127155985238547896897224227034396911053502752097448677296241440667189704532677232763480903453249573463019929981594801069901798792551784966235537064143531369924466823525105153656857201186740323098244025126771489315218234629665416896564952917973980892660010038657654260615819105194050189649489651386499639392686979142535463562017327167765113740323320627110158022056577957758990195262906909407118222744059124573595325601541171346521050004652200303019555388533433066924793771530105202393571208414628874833437950001653950659879949642338836340550379586554531960347753688785968691445467922490279132226394547222535443180056073920292340823513927953718139965094943175552791815428857596227770226108099168483196370041103587605865996669194339992144553097256088448628434572284012458583265704125260666324465227139777856506926531396946157913915568415439097270434743299111432245621226024194780969590837210869019819955066415573786167354339562458922023049924428225004301484969814955906588879523975391027662378989956883561771341133313335496111549239339368074030372420099827656643257867884948249050363026497816996777301051378098795980872891795522028332602073880040356624143681308323142043342733060671302946453978609934887483828342482959533846114046929089019655095882037508295267618234018144881282844775389301032744839999782268991043775997175562538914546211695380248458377952651823210022481346320336230995394331557976490553472190949858857082228788142687285095828780113851726508249832505524055058974318187652866133340492638320151146540874422414415215570775131368130138533651586491947562375924189552578890988760206873629766590507019666047016883467093566982692571388356475623275634414447896607018890402847322016113394518394549810092735104798059346389461588053746697099998954991196728062318288617709405607928260463964613497908487141816000144710850414552622561232850084779107678689886247430566500808826515124051876034336445231798635356877881958463732016710906022305724610785743528130997636499941458754078763765899993820333560322953879617425704386648638680171063003048830650918357380115067680428351846338687678466328024541768109127736129916032000150503445302688102942582049938330923039064280288124174338180801170587265503586137589031895853375962297801253232904702169870523894197966496825608306724092474256471291780918812748011310793456581837683487351137176956669052855258598414556058891122061879086254294270830028986998664211196382629476396885178789925090639740118778789620115412860368901065298988314230020420282885469653319866249881592735470923103056593760347409097303517363704596007718649826527137229502896547511315642190809981266613516731203429273989221247036651285338758216705959191868794079459840305016825373750315029104058029612419126079949687200124636058055911929934675639755180624620625890504685104240132212885458985474292954986680713927967743215401990618722134548489956239068710818499918084704130030577775683215601578564327226514152278990033551735454884948741994552556439422726668806705075543923052161414714160418075470805690700735752357326132392808748246440649531045680140003532631521619421394990002632999359617032158621131741539388425102158476442007310509438770837325817723759648578916639601248735716844257715143011633306655307365617914316838194036200952862110742381359280261807762835627505890431155553108240799771032733107124435310317621027905076001830382827847869631874324923244406629404611441888678830608006381500967858827677274493619794479713789698935321824945881407534718164900208155960563133433272297250068139534591162456338391424002976841213936968462449630954091568023333824297743790689981271857558030980086707136979466395269883053039098189427759638312499475337550356270448519826201210289875920703784487124940501686023874525601740451978829620548050241886976674714915871590495917750836941945176972630024538463897826463768356825064932871678703634021988900058109053314343580113456071143850588149256838834936602946970727453641463521865398959621644601029606068801591729804298426234396239141426135522319052547029692537154107678778707024957818642099812157231725736313052795203415549724258713535422009293241004145490515988596528610608316132355165806111976626990052978068486473815483789257113907397310950331644654961566626417201214714451224277232495546900337111973163512697280041016446285936731439795503873321282148202257722419304710309720647866533563516345526432692208963869792279206850906754243211667496260483906654943306013488638630636690417802465908473345641064695372775204841418918311063839516709687001122231143306516125074586362151634832298124641856005803458402229876637933001390289047292811371183742186215462971174257864595566004889743848724153446319146045572172054967115738327909879687038074519329941214181189042455919468850934310899904367173882905073904324356930595442676985153818198912886570027352434512441622820116314922402751229731228593583462723704622154708517337378354508537164552258202479662170268168496539123007021360875744724560860968139215659794979836732029148629006967683750317513801260496063566162130731881467439473541605188201305827593666505048021423184124150177837548219464579573049832330532998093736225836077409325922561908107547252642842194246493076158985452186026273621823747852850762303017706967411514636635543582966835206390897846540589495311989055697334476861634004380016635578420194575114766776907622169806736477564013620359614859038664516046057470486463140814026071024780520781060103818277046666137998494315316387468057307377163866650358015716328468229027418748768671641528545787530626315098642768350764662878716274269562527156325489469627980543908097472746056948125944372648689031242830160102014485309495700179636054545087810822877925221446736876458546165804636099536753163984821605241898446446330666888278913591239514171066172731677903917950517516113820449016966558432435248781245073621921843782368778615996867458686031370007238213229795949288298547074258108295502130619048873837206051083624494442859956951457181348816067045117665958851194478692760022473071289860120056674533117436759010628237209645905734938731560134339034249786239358190051994939554316173880528811284816057790403191261063583215926659290620178862874454673385368622492682903478266680031889564138827424280109507371645636572019301041029626905978873441851263754799192323174054957625822472967851966349529636422064839267048174444595673667918672796709518266132824706225501984292996747283325893853675922463724432741592542986631737077470473922214357489646100321899573399903209564088201564778253998864439973815685364659174561755529684358938458687355039986425073019592683210635606169799397964095261511322493795763189039339014747048990275881834810858067825340062173913438266812199349777249095290089504692066499239099423882879621329025295943956900122922598472063647352985138217477840154055850894315433769489355000955686965221706692595589738535347641722561307659019403606701078433289146983937010630923841822213769480976248830531534759518913249455639863995887832030769325150191912983717587969298173909517182445819926573807851264427121167972621273609873539203736819324408471247504057625569653256884902800018575289765383394080623660589088579304778917168345716657622391696336786135005955953633826035831216212931264836912166835974742897543587681745370538052831540612753210806943249804899327224412430874820486840861242845732665891247145820619452468347263740459136773005233048198504882852472571605722890791915087162880111202290240707405933432396944683329699338633235109038758449866588671484662462223822055559435108306734482445153723694617726645430178952311532723754694026361916898879363126508139958324489820225556113708294657419363656936639571085562025066494633753352198661407549420032375250345060878093260923489697128549155546689289665108748066577604377755044369591194745779706990383355916610867936857354545023812743887502266125305106428260423988531040112061513692536046274685534813612978848121488280637079586437086241704031559344692652960619955671386124931118165249490401602932996128723650369351198967290518380734923473675793417084040317772724457060088354666836504550383717829675203549087712809625001976137767740756892297262410859140567197120100849259989803658183765117111491078808825572103100260999998137109416170313922344869727159074934019586089725286514423524586343247504786828428065090066512331038421436280079061320938309505025092883381749106955748143336867012723780525822116668568539236371696432120451713535884248280030828769708725070202341714764675870661473938441815713513230043546507388134203339574615858229760701664948591989381370686753752279990248492782711868569868253996131506317508690860060871640658629261529035810611684089726917000569764591844783231965493718455274414365828859399085379353999927841362170780139172254477917701959822362251770512901265488148259666714350362166007625435583187721072744087841920751262137523626082935489261155781223756573453355155566655743457862330950080370906418001158595704806749897257982448399557272301945779864702208559472649719147288648480206943889309036900903376852782786924752082265821118156233161790757403058791744287275184810718918335764263818909748465051241512376208262458244067263901115157479493094508379735793218272466349574743312162900781091116044958073387681690009873998171599108626748259571841117204966856529934269320430388548592125507416096825528292202400532690566256336165056793618199583186421205011935425340951086559333529835222540755918742209631187168686646317287767503783338696496199501513206020590693731282961843563398668874108704872366580003233604236366548416911511898146658289707832479136473936682652868480132501995005502752380656486161269813483456791765843401216814893306382121224634562468399508507159655351536873467861782550137200870927504927177104516698133769792494956092536720697049788268370215199697578197248828946302588068708942899964835056945956717217897112323321016029746742925124613917089185664231986103206835265512762536834626450714238900079356889068594228173718270063413766512653200271128685723573633702888538291093145776766681656041323899869214880911914641283960211238404762865006672053662319745886454419027574646431087592526652852431153732225717641385440189186503224378630889722951976276378291652764946405833296864011996384365466524509865234567515563244153271870526581018227259586931702603316744459748099649250466788998706162500671687673459670466011237277245368974072438523755893840653354556719752028918736380805940894811238028658653360360983752476313332883759622844269599840630613458240234532594307077843757265646510744742420536666892806259081311887955908993351137787987697731107953702700351394321862097708985666931318089259985532265894973699966303383113804819451565463032153643929162583028850615217158326679170182034827015843231607531004653284986885368423244338091871654087886537572891409491803832312837606364755934906262298519766755694293358344798315433781599516319500318780074840008844321312428102420384919641980630092772842877047452775463071189020417114948750245466447903844797953033296896453371057659518649186163969217889382134463525275116281581178718574681975730888525215273855018437285287267452957242560469766185241342196280254855015323908186124776760687635058364305953239372807499903176886429197075772552109433743133576729892330484635989673336083067186879267793998318259780441816607694507596890718623236629235434069704515964103737075352259083073350467634661369278004050324457361245249981137067964921441912700392893649256884685624910234345700210936604108557110627437364846880340035279278722507024058120768759677911185267099600001450401511324838095921934217522820025296909093504754843064085252086611183195337795934062498376954469925436588471298055130987897518325094042651827729618679428347401515558746124910500408595840414112865375674458744047779320333461407384972379276358742381975107752146248435961018137883096266539883321083505461527419055179980371573667498485086115005665675175909125072332070295138871100847267973221900610740002662346447402963160719962812167059571709007019560755528971515716010285189836222582704421842271142176492365072088472393949948459870038849306640918201581450149415954544948301045862661268469754413831534203997272566457789515002524732683594914961225357304232444037161371167801221214110831305731465387672829514801959751182077425890534903993683788159156008713538119312895395343370530451882342377072133661601842466183803597199129666715033416187396769742725126723501791943618411453030026841998323314099237974258951738861691040785857537893781187152926500178977683932289929646302285772802863194166586060301658819408710765583495232565528897599941338692782383165760325709054130777129734824583570116261680674329592938977940844326157892128754653848181260079126066988719297937015730325610898771100823828224157963233139072661788717381944888971229170382798555016405010439814369669872225897208618523370650604626454881955513607987698006933458439811608433450269038247177129016002375487979135215718345658965058560857087533336374407019921871660157361947147658050964433557901532499002412946070116746634586343792052552684107712452997068779689233469367349491216093054934615288728716725663972278152605557279469001214926756962927014514226392459223044567731071225410229161914272709964808089455273828229397132278362869026843889954142628530765570180269248090147367514580272546034046087508250367642320161809002839911804330603495296949460992059695709299216713113603766647215003254274655553529420721346033364903061064686445001834687715948037194611317356606679257161911384186621800600983607061133568255217389756657172045385209306513007384701935019823830857260225289024005724746832785731860936268412336066322623389716449535203685169214700559298459080714584532918359213459368646364764524232174581720942429325481365783054512957965620164161736123000171200066655224229782297014966255651348433711942412396427044530228951501808423424596585446099596059090852032557206159366941809818744408397591284888009455716980342661441814175580117532201247762237440164325911712087841899165156850680447582427444836406375919133081495436262525230942234076062291438705375274546225350193581143358127077345899777185524954640141905770437258024058425512191956345237274440359019290202761450010347165680003998670487741186143761803399788506789543066625422281514220999135536188901290118981449613284004989237408622701200167425609931735918877437409279023139041723701331501321524483989365140434117072778445532948267144617390615985316013075070780618455344620592394865684609419582075609719162760312310209346035120807810338641120575342271478206421678142630142331782053655231985110151194534921690987167843736440097548575065981727340263306974983276995727904001794949324148882655946779700267843600653511231861245770245979865609770110774883488808320919419437814632257532969331745335867123335279895815243823580804838156947499613919374949900850999707715674543022631009468040020712177887905636211874328245861257086025602644997044796337844696392349522945003163689971520126259019873595352074957460689738273690759357473346244312919499247903679034898641597536635966076594874481743442047240563952670364651197397772476690176459949100310926634868952778638366054682542155115780334108472350833676310190238258858605448421174531532247698037591250345876731398956139050016488433538513118754711193312953435440976598183098084514513696520775299790115233418592411751722187925472353515092294049622511864509275969516952663707518607176949219802212328511788028926099501431152291760572547887642842262764694814111764428508249989944543310183358773868714737517227790924756786064051821163303102282944853849357018721160284853286922001001552377536788521205343002457658518736585816133921809482386209059884141984117036821238223108277330491688592205756982661016034369205427274069954662856331730989802781707068656123676043082751487721099260441900493393280323103568867332911779781775505890931144753109742013301079548033093142239130498504041360188280033475896301106623942499373733449058252943667954045653679699859670133966416714060334129466549081404459494219187249318551680037635437830141856908803784715393958501089026321598241002417886120839631616459750536718085917326214319453492123032701635120734986863789258413915884396591602835660443982829946474135195253587187372864692931479384016360987885221902596616412490662676068418759763163343408425067508681036000012693267354601935393311847714773954264883534290389661895155283529332310402714820335110681485946850694897071464770845162745260601444532629330581965127811784775507317333554380380822830172071917274271383037863528665869545714211627489506731599492726134320515564916612069346641026127755622089663134849367712756747671544323059171632455889967422181103415623524690990573557425194419418395836525292991083357615953837609554904111666975359057458382031061358991260265297011555882196868971473645034018869552480493245822473379637708259084599787885808604360220584887593532949578839816675894158383070799371710988307696295082768757001978963292036855862175638587125957303340875890396451525318165950598429559274254826214390397989128321463569753155746379519626484361031515491557018471382945640705319910932056335826500738707908217578090933472757271567685189639317640962676997779167641903915216734684109327477455243310796231500135264275840079302538832484524442864152424458257782766056330458106288493338785701523166319510391791827557617820473978726980701981078582986670282256620004876524183433526757207356736408478068328026406315090189810251670258284485453886579763412303207413748036508067376308512075021023483741570532226019041490942359403291445128090494632638937574496117616884594125551829544401657367494603834457926455738533637782441604909121055151545683439860799800974471932095891756558981335039302265233765575134081646925029543526230618383246980029306935985742758140854127377001221602220438184786353316983735709342028411078119810277324245080839986780118322416967597199540013346324220983842642897947956790697750548937012049910277325735032817018640536702390495731668430710313478782784386546531162586190687914640909018197907076897920328987763902071390627697283208531401962609667714456966852701097590285433032111280378232315904086892704129721310526895574933670510954400433442460011924468952622046397188555246775901158366636815674663010944292018896893222047014100316719768411907504115749965934677995420733271520407632167661274051244595353438494309506558275168180295100805003899139182228279183455359012640764833156240310755391277316429567896014589643236966846428146184143252843843582743361152007386516535915578771648041556052058670111442934804993292122085987754228285133696790193507730334024692665895972761593299587542698997178964042649925413920483866980099151969121949232151292626001306371423936074572793798637515304592759086884254815321099500419035592014031544667755123428823496335845545637781977804196948549369146699782280388768679100442905021028673368797073372219736246066981315888747563903879404254009052859190463618446936805860270633065352092048567033145513204493782938924172116328304650216323548744340035130980993710779462061452354264173333125618808221083076285877078152401586508716083983717071963097392724346847509565833736892762251635756249369733760045973837925058363417750907019779329147058756117958789851633594788490550957556791937226085256606962981531907513206312088466927943918114697387003641251808663057965999506405360602410834993280280852439230509128031177447286751096749870273891303709809883310421926609080783030554292326639822531285367910814712824734364825157967823187246640031969514712931062014948117911291865097761672342574194212174201042065523573794029520629428472447750123572176598353832868548439309901185350082165047398024436703441786639996641973361126787350129911247318865062586902727400975898736211929056566839508778820725813026637537746467507606143613475375633479141672523888246778741516541600480362526348677570865640652013813428329518310609755217143745489374908481474409947171632588845495623489359400240931033282374299045878762183041027630392807320848880575776114434243062658594043902782564765752107562267293285936637198328448095931761035537178103919670894647305843485645533154477757375892584369797309498892617352048918319392349603538157994917044528316112307247431010566023340995602455788635336199683013892589906956149744812240924267301160888969376475927649062109881243422482733369459144922087159293499692065708094448629347013186170383969340205765540714007617832440224170047901780765807319963425385097066096037676544643380086688784124113076743910639578497194419150126157856170712589334780055233396429016082005896828583411298929500158230683665693598759488382338669621768937360282382877072808154582072545481893537772431910413300909286056825034100319623812356259775511389079486958893223057760398358607430136311156301739016922262413998666542754639183065441824247813601583164221095004523406724095452047674479905607419855772775585704707982520368437545342253345073579706454858135723704641387424979251972828201802080519331677686870374900523052782949339860867422332200146298487660719839181657352064394348335025502639248102100112319089167328354546199926149777750471882128302553980522143279433412853423336981201524182144345561830272172580025296881745260614339683079377737227701136910151285063617864253929304577137975093402629186288646447852344835715492831192307850500903480375476220749829048157406035595596081405480583175866275114278895158656805984122209511082112669605682529628606198529014251733453950040160172308550218592777793404585509671220243719872606493735235294695717677036472598322382234361701028110996501529504718000815733638807854933247060917169065403845116584253761296555265574759664038430674983392696192394334805430135004164625710914314898091835636432397755641284337318231122037008290278199458379518450826437088672886360469630942298464193591054330440887001338676777826442614098815828097126683949874628316351465381345977604724216825240931084424778134610795008410217632924408041178048531446137550221896988238431905251731160953334380777236008853682831288596007914611425318211869456726913009023277267260403229713008539586338983379223999970247782473624678807938128903682766709548995817086830050272128686241972367258120885502704192310796784090449785021396011845656554699177744700493358725030868156994917229745290712814933915526351569046222424132748229140183262232015044725727539639078386196738031723651869496614397305555469084118366552719213535161351431127973489446145087913224006866815079658338980355608856827553566283885670952980253796700577775076101070200338540517868689647241243038603858220290920474772011973522641448649269414310328980257955397712920760960986135041919304694653660049934929456141643666106435288090758956119556377416312179340195002185749118269466428959045104204819854121697761601910197728219076157609300289989294124262200547528849787515079463261980895097638795567152505451898979555026564543148539676339556088839850260189025412977865969418646747794027953500527067400039549796399537295884173386843971481693837260392364699305178401925997917426817248017151418531424037251053403951968031871182684588999422637913366384939553910110119128988792014892327410903536673998161254699536207081784603972867543777082371043579568992709021353806499499650543751363563443962856404645834070552975536257750650747278693289330915036707642479714440936222442518330088205335543156188763133091349459175536037791215852904087490382792904500288454425071678938769745460483152212876650425942566472827357185275636052993045762747913332170587172862654612629976318204554528307959202476643967620064227002436924064584486481391291761041843822468920742714374839159632472573349956550564898330817161507656359080672820458793784477295620274184786904753430148216868439471156678737140206395235032423035006726938222086339072054251291685745051293923382498700961001945524889255157612588060931304256918348970542032656841579202772856565703039457143112747802492195497439264506013952017439589104963851976458769149081378076425929518689506322910763251133924065898909524156569469357640761677048510054199346692022579385421458259739496998310361314439039522639973295851453367905903390309785575216241281161524186279341436008998127229252064133205210697159856039843514098085590933047671481617307962426886994980846221172558764229815074483233692638871647071976761024780283814159977617486576804756801647903852266885234886784461164963955747445734361760151514076316161586882046514282477584325483587976725622818535197338513417358621979968916755852638876879982765033199408597584471361543755516474827046946881105227478109751540502141711359665406195190411311851858905404376785265088261767122716992273457192416120114783021389136592783718565386948894495745649232625530078376599679628874338540414859307883950219923749535167565385095682499817977657374925766195012775890266850187243118719991698199490579665388885050787379895631828890357509431505156710694359523619536335495212378146693504000411177174276264184213128832971998398159689577750214822675680787636950947026505045326441563584149975904095440820971367350096776317939968435209141892469813692008940696182395746374064940044174131395644580154772160954929924078288746449434887002657796037531345273308753028719877194035737751483916629970756143273513759321479540131035943165668715694953218150176590642804527357495172358773821772725002551876099935280332616209487719221404988896684068520990471541255325385653563812845103269356777753083935055177741404329575504270577819842192759691881657084656057163623886796408623558689046873779627959916655132214771401054338456730041190490069895778375720077147497345839429224101386215960523619554142964150139048160354698594134987913488296857140351112716711397651188067159239763744559036908397261767653663266987293283793984331420815655513133680584031061254312974991324474992488314532394453431850760318382775528691818054489621591863392844680052473209543660065223263725535900589810152862361897404781729390865886249927057120119700651328821731297243707212866475850138802788287207150231668077446916133686337807214287604429664561086438236562507192044250294692718351909642344427781986600441052329864877830769241914468936709321327200322124903906513888025366769254242582511137552070726759743580996825524402522072173270477500394541459229854495827893381131836284112041089572487228129876898798515098038221232391614255161061102436950806487484388659311380720512431422823683352536034334549909355660138247298924862005132761968985371833489927927986575855369488339950743592881562627785125189033453996702415883051237928431629807527680377109820619211001018648658123271913973835986765153241356851552879321201226988654505983123179158301899000834587052248802779574629660584731272305525090468799177517745007459364170332862887897128518816818064589427952889229643129913419394467647998511065417145781957601618877506132897059626409025551613728709183877599006145708015342553499823650680648443125567550342460177446319830849411065922074758835806212441708862999600853941456140159799162723358693754081317988359962188658013764243474945602501376165525771820249732041028677563507915469510695437210496407813670694875350878901759524878898484743932070120606166018343223405947231288346405759006328306992387831120823604645715682148641727660452111558976988866408822230785469165230618244145581799012910888192768500228368086251284710346005919307878976288461326747529941202300390087658099371522718766518889169747915277026775530994775496444867375041398943042198296689571818782602888091912508663207330034518939952810121065420200510815637862678493035197191636800204927876864139371025038536483480931693617720419336197493138550644456184302431967630655348001493079385804725874204339042424941042069965449083648291134088181991300710505274291981215833314044231950015750373071927171987384688495277497971009429649561827744007770968021601430733458976249886082691154912665293850274979472278023158757311404730333958154178526166481923270789874830926213662360226786780821363324761727578975953988178509491842237621646108995851937506358404894693529385938393830174900221679415049702586981765838923837091425429060877981458411111905577756741912814280881080252476842686377749769157027713466656432106651435823084851548155685995791226017553744986797205153054129274238256489136162008010604064503940057527623641501620712301953050861247503395008392205806274366283861300014386402587642032768558812396593497768081755944007219263711391318778612984948628768818376774655561756725041397764537654937124751255120215259353637688257390846867217102118305410485002543367060412023060695789331819639036344327028729600458879097686970105465691111500355834999205076477800789344092190049634264638475202315226409594193026094669314143331148831640939778964215469084176770555817772979926526923732247984550339771199727718214361946033667555462190255799457169905996187795331971630385226576474924482256314382667569486397167026019677597366744404499519066767465699265639035325113231306570792056840569990482854270605355725309261250139902156104379343696401037591828349621531106956547618473504742340283205624075738532973266148965715680559298837185766853669103200017929591237192558852319386272460966883605313444278641103365905324453284361016798778253115862084726083393054914404440958035034900344859506507553041125835846663524400926170051493179465145402518628335741502113114769100241332157957635785903726837204203088553718654862266906167817068349511114345891317713522965303744600864255818269389956775171735727712964137747012645541173543368376973770286058823154259078301207588588121143114305605777825461272226400689943809078041554433775596840699489883280534495004273724477257473241867665689125544464422390377822258864593690317928612931719865618769510279877650882748155936024354139888333290020699169662621127710558478699653840478520220037504511136422375118038435291229040252695076073023099143465347166693012254030692378527909556791897680916671088588681628299169970571435125386799088844209782617209727084221086176306206035395166192812562383266950885015006673654477221259917696014280641439912794314591964492086644039122521549492481276799728558673865027164708278628317445638684795918926980392670330308145237264541088765483013649668329660366761587685288202897567754772670457050973668865167419556491040201490440035894577316345310738733796692297511489609863737554632560422481096987299299193568775962399728574552472742624811307607351752390209448718730536568729897934688966323889384885217414124692478107168173024464496067333046604229404937333459172568004278251882511771142330069689585820776469525533121509370017502884938402009863272063351949939719105958457862879819583790041888494417386457415141968328235574983774024575119872405999734787693649555746756033886041707655085897266476509317230414032990952504138425052738756763360021518793808819030000085012574302675835484618645118573946500272670838007695421559173167950221458223422316027320690275029410428981966749781068008702764941794491693202015151174579875190529468304191980562155777233976871382869838945838200363910114411553785552061278451577029812314959701969915631997980473055022853364845075867493025038344230553162288228103146062732553785624269973723586581862938148825912078997034995818088186875326777904050181830032243912895568109014633597183857154783596876019016976586005019494916067920177394077476630577345776724425676758381869919018181666137179108192863521190097804596554377155360333168967778775556242160461582256770387966178903485677799277744148337032601956276926763762131186303693405060133155017025837409645537102373669268770745346125603925749145647771901077693203217605374990199604738841033848468085290507552657525470847466670016568908740073561512349298271294286224320817984723166793986020445603922248336828801712970903684896245600879546742396522388425064895952688703072780183010586246300628478962198057107875198653610461710430726375705821240121810192468084336092698042158291427299223975954455765490932607371545290382480249988146827719345000102148895030939246427208039265303676365607691753893443214157154448345778235410494179620078741975074180531536773317716986761935870352829730225139486409392924122160794885591847808503813084470466170926123115796535551221124369603547321938056366736307459601600208235498179140550616226207939082891764464704384646261485132138777914245426253257055388877758246176389706954481682376086382438964950144227664442752808238070955586998319824884217852299093166606907238888951260416528333551436909374550089747206907785947575825703819640052708139631490133813726082328287020672634552125645452753702020043640140099267194543293253491279941130345644433993357028160229337478160126438124961157325308732942499686886045707970685860905877312412923039825758846314482959652622050456105926200887767106175932756004197094950959957476641567932652564468546086086317758213694119992210989585895641254876070623414124616674853005040584826083423468808040703388111639000134019488825478569584304288676140267888221330305873757700579887925685650075794907541120965772675856204146573314187581867709307308331667052363823222373796931619688887404641744795397392791095969943287434260207288573576197063847811654752348523473145284960047776908342335004891966530489165045504142362149251733945531742677103303444655327616798837978482891130155436169117207462310644539362348146834195449946342770895932520663478544752998723696540992570660478286641831782366109684691818430526626910605465034085589064323330927370246026609958195771344684727598888888547386421669026096114160832449762447703442533517352487877964047193509823599415896332300243985300199006385321436115321374027092606931925668953049452417519173154512822051347376014304719534358316667275147775581323126427362503735499197211551352091897974534736569522071945060805865214403876514680433984239958155209630653264131796559218260372290806460100099007239473466033116486319080603558800813769468673717097401164306028229395809258558995727337026538545619725925809704366162084430991347251174202596368636213824428458503960956665600283930269878584581897603415267835507756446697298820133418480552216372278362962879580080760821575949229971520470063329630341104693863037245772960979349829699853826968643413013576445051635529130408286222683358545323874908810437166644346865853413548898413070517350831089448470188810513089102694405131720959197861980100933789046485393373559808265716514460830364641602007714791738927323902954197212083712667446410399219983197640381366873834574603644036588782770470377408366320684808149262933986112065853578908186760447758715706176115246484725897356737143815397116480577112561345988866603999218557200789535506564524031624874595817782866552324375504472670545011452228969360480185061750784940522178572819399822909377399810359473970139904271231525578173794425383497440631536673417881849025246472288848502406387173341034173899931205638355539183633903318251170613631194484321391376662091633019104404534352301062061983243158173990533584980396738076283740847804759585480065060250142717838937732311102705773200137143092308592525629414107077347532693196208249594709346499260956648531096992982118025381222853447481125156515051774826771387318568274925500751664678469293210928350020554222847689839776605951127768716160969320206616796658916882999949368448011711364131713647597296156083600329977789026448245649553250091334515515961275629043729220215749839108997759716392033158181369938677177402763727916825255009516210618287723297529969108516431070450846055206844843906192954446376507675193031027603593374114982921563004946479074066972174156498789440757596252314430868863203509146047455368110277406974258584996380550513299186826940531314001476884388777737024614542655069638130988081444184752608278522435116923203558040377864612344511104613634418040699988381745034410505878417397047799851034078705319703165923521914396782059293047833795098850212187826230328494273511996350225578947596131559314956922453190685655517155319255026987070558667610337441347566680748968848257222827752728987396738404065332660675199936730031180620711935391027136739029557301546753310496898962039473096834148358881619404495527305127281498455173914591127621978139665115626704678367334176904462097937961507294905953631087493699020048495154134228481452402510196385171753847315144540380859229614252315507402596856340931371580486423653656167635305880482714119552889903674042102894501501635734588158779654463688722173209201266413860489811865807104932674899187085155574388644518864938466683238201720380146826864913251916329527524018568481514333246800569079158154171437628595133103516275715006049176381607149389552167778192835139249760934083563480500812506244191980053940146821665777211150149228956377302153909187163310888982527576668524037743425980566918880677206410215169507495661150684094934377834216224543183677659665474352321163462912488233331313381993276648955864356518221935592231470206825661685464505407523494836461689112344475272100483300427800353262456963585988044749357268382826386675198307722376677554151817200785147969876888585542307283531320884343159659558192357198117629047236428098942756321199522612589767914248286494315939546727944551638697409985018703314329428431044095397044809417768135565216883240933666714097138446912029893846306467466773664281805445833687412854422443274959088891062477347599204439704813257560340808881127321208584656507049257105649761209150748095430927084991287681894695882176109594516250622274746349579707235653246209546956856316645320252231237891422143704346291859341229795681325371852358377832238336321589795570678645437627695068312016516403958527912441141592411546146229748429995767752148549883908768833694111544844765972661461806459286231467592912347934659860546456125610299379995168115667320121353095058075935955248122142358477313470009023489401491443863049176645652338110941195241120382680052695708207669578408937964478676531406402286467260040504165499404269887708931235138232570839749024393988010390464332336424280632957206794797603136600525605628467436516097430239337159796999720187523221889903674774112042936587369652303574694696722254892360119653155394298533387425782764761718664128498658071669077791892843227715214958367072015683054336290585232742012445248962127075774517882447409133290399457573853241104366653852926560337487836278905961242305359565610638337490897552724657608958062498972320870877986951958581116997336383403837060951413332260647807237044342392284751544092415779454378197984415533805963768173783001063430335774820585878082468064238646803082839767109566578986742715671555411127004171752692004518166824171397963137961558970069202361916316293283746607886252498264181993876941930008988956084125995694097254019495220792975704518264592058525026285683953632255929789001924647880987971164563119283985121087692997746958224071057564902753343916268812236747326227001820134341043924496899013453478745340147635542216524431513024245602092581411406793612452826868459410113653441847590140511510508148330448830590163235055583168237533435518200980183941898551552786191096740587685444668735224689628940740696480884799697170839485511277884943364943498563108152753651177212835195101545370479533967878452061145942501537356981125852180692536565710252918914675979012851865605464259343953165817962570056437628921252689899994359781749417827577370105987765112375272285293929308184825954322841442590005260085961276367148097697677110738748460821889673709938439027342579859019414513680176103766157717073922766073951534836346485554586476018104574904905330770136761996201574932242855742547588266419151872790046106338415900383542163414163452158555449741951499424381968998913654093808893383571935210915590217412030211841878768765357474542306282596663700014614128152489393371699355685267601007094816890637402360724752215642384986697539958211334113479196723551942355298134604146593763362992422759265341758314766071288948514776484752092859106414873229050151073934271772066746372884302125349198317112732741579329887428389161205992155535160459112095979037634095343945249318955586861563224915341010052803397387450414562463558708183916712340575619597077957634460869390487062060315758684555654526120900518796432771260872460554391440615253552586987429740886044372079677367118306490228786173929964051805514427364235462578228482802527790548416978735913380190885350872721966079025371714817121823413611703074414933406838562590729256894852227539054325871484121026472986454672888705942186351863259753366926040297473410738709210466220402954755768923308974120770416059911455348683015792133803085770408671530485032755464980442884103472540045822656791614346964060919582671174839152978520078628146375401547493537332429603012074577296439067755737281678148641629699679767931965639637222406366701450883565956909706745057570786246735354013265641393536269250565272675293974584881129919538995017808757219913158862956823430647424057719719333197632596073715977854001764957152032568730493952468155860969046858450520407320799875482100735398167810408156510169292616731176615668782398601543909251494444972839511925990225190379000390557813028329845107082566533211065717447293420986327044612973468827753115591689249955844680975160833758326314881170443243746499251083296623202205191385599263796507318885324775011456290073763060825238865738227391572820142057670514595361338766140683313323036323019850943915586298645712978305177813987196079120784407616765448005057292798902820969106730530202159588426104003222864724947058147011717045476082934297494573061748204592032701115341005804915002885809444635225869642682144061347411553339529503052884121430759466648982034981977125456485228650705911814054667279525097780361949821384642524532502021012507955098045707873238207578402276033693775393802032055077093495521969970570494930737484371290384635137319490478222217637619319922716059103528069434064361335404504207999834820960368297335376699107117910205331338499894275050612392279001532157338421049690434777696238966554301899049195448761942279226033773928026900493825611169763730101425975405930667905444438514284071638160872123858595504966003310732810040141498035237053480618129543883781220389678458907239562860066428352803480118781579404989829739467506508233688422629671448914534929919477459026294079305673302923057564412279882935828669042721208506082496320674774908113343187025033935869041982604663260545684521525300748581792380407469368260576615195359644202609144436693816901670887142175021513778511769662785434896564648770152471870880562612133570165725544739899442722385061535246200473233323584035689201161077446310442597608216037083663821663016908042182044009799671391413971043161907969219602244418399265135182498578481519115210915999531206444037548817578366534394529566072135923821843203720842638288746274471246266525232331702448757619742498723672194709729542377667485776665740818730949452223554074059421489334511829009318921446415200202880892917572300846582581297452062913960583559326586212023270159340740803375374605163880716665397531546321796630892975594674236940867477450239777160574055725108850762681773513057789721748986404973473969802047351954867065642429587975722622833686659359803661751066908761621315048330122558373560372031364124592374310095322339527945480981521522317395517897325604564232860795658621430871875080757650625148084530243894041336426110139822274739260350909645138307953675668264854271722087804413200668985552262081306141697018262594577445338746785000758258173058449410000902200731632651542654787015192955787615188962086707496521939790324100227805922663137963923571333254859038558846854208106545553029771877297010122220177354294103332532795577200664965343474556351368704570493777552732638991696838293086306540847850575354928861213949599925871127301567809904788730546917051868213886320993158508511278712198447973386779433825465748923302910752340171341135089021205006269715635270141743108524376869568259816691545169405723894834955246691129533033660740610924883103125857564736590476882917394822948106185962335314954780524212562038409094288347053290835829096303775676074038556045297877997471370217929427713672014143751299397114804679050537143398982988712759994123433935340126839514962620781447715935816623341987431926588298383786135060448309521375241657941086114483147164505837924825638424161717343437568243549145567796191768526376569828464807006269695970593810365799401928216147191164180331470993757069107135202203220010737611849124319197308203171819866590184926315833784032165431269031209707229705339521297995318490449024539630384141465775917078478231366237016753839377532545983359668120946717152063303721383175543872966669045065790612594419386184144342247869613760553153690713477914459237809801983094096959069579546448385100208050730124168916007882478739754840806645912901389683523366425012943041809930337114293088992510313002862194047879528396522196173943270132726488127116947934138517610598571907805018859868152454973538310651663054580012714582296379207869924721648183454190235101330974596705837283082591296187084299015197895968199712296780939693339999341602186443143826483106160984470407204497650475493096136983141172171934164123303120898962545217582995106684030945211849554392231665124189352937519314684927780626544468608189835724850447189887245952757448325648488400417059596587288547752861330178576520823695083058102860932070794633009607053888360439962218383654584862035321277194161403632992458116647517949605166148014279476668307583813374993236505881785715646745845446367836258041683191884107196896236092888831250092799567490304254309129003016004196019751202340017618936818341918871191068054435946334783701255490736043851877851455712561670979476870076523691900295247762082919065786749977394216676037653611356123808971282275122563655300005319769961619792507955611446442120310228801099428048044806418844737684681745636908221536898986052858157683652506961008737880361214113217298218793805561349876887055806652118133793296915754089897995803321838825509138692355302455220670504668026269995219028750491989753658525425656022105691892865838706075403488401384980077626916270933137831679596828746907849435669657745271879656783025785746475759461800842513577999830039322814149465280587988866563907164545181135944316257978073987660394688683354869607708398548426277755587275471517400139801765713765104020533091008923339082694517871780434044554559690533046410551147215763679791427796431987847943541939942786820530841536474716965186811141395334678336341309057738757380476660233081234399163443026432780865271936916685140112101093448090779756276082118766792922338354607731449941602506803522746087603208345854191988635446020932091596225382518956412218106568397784523150583024559363263907954664329591982667289067112458313149377396016622161693407215870424625774886408256935983662409006582899273671416939294535969980970219062094956617220017205497226386784839181481071155520159214942767840647734379006027207336583919718126889483363992756966754049452888476267157159583359185533134676635359271657428683017976856707658874282170314556817729485074522959583720018455609851737615578845508091304806451447910162753985730098947399035530927753382216000239088007996450057119711938535236293782010404273702942917892293894760652572124907408916113143473971927829185864847769093561961530952639331266732510045713481967143698119392661134171340319170594818754101493227214238148929973435066839571642868835207247205643101210532387326244697181517228200501673542675861421561408201119008451341283717469260283711839275723732591561501561134576003389583443526218401530391861336863437388994733197922595760300458917096963296054790096038877689144207162885606844647585718970772658232517661037924287268387331381060645020310039241335031204427805307610802571136655333985806416610819558631159054238665069214574058950266626642969000563483643884659986391033286654793834590764879815634803969481050815425146472324276060886874628262530819163244732074598848144163233899593181113300964070152811187477148294570643126627434795212983146968865970369582953968402121509520468952404412700037117454935409266948594467737909419405614818340255232045117050377620369743504280825207989423740005005374472485461604018291623958268100264281263187561425715120047667957111817031308971172229928291820971661456485631065127292317391213225531051027034358770044898483215645014196550609858532233058028101695463188789191668613398106739971737554563073796335029184613124351166239811420093410346470298172033644348748455433291279446054528405525998947673441562593280340005641031080825270110957776455852308011752316004042882131028162558419639610828768449480807391468197267998141823477414660501994953151523790866445300112395718881670965310601557210433648559650679224831905523188313509392829832539912342735988676745293347280376307374760593297163809220853696592544339478234897604510843416451369122131258946350122227097040729037102676196821846752875704978987526852320510765542434693366688397397456165256047592477289199188965799183181639231645531114912918674627297934865987468778454052430213397882763936738322327115245490703560763016979590168065304313342731704528330765285620435578748823187358048858684098796712327544356805571813266661180857165307711787059626525953050779212917065429356762004387082455661419546238434050185607821274960658480706688365168357951083680254010379222778745548855856214743994649472251833466240120115575837717492748078845984489658412651734357466794758526471510701580419102414889818984960813388743026325749013936596434423652474528021246251573961176060570618018047307207340481155570950859039681819444889291809565787478783428340330239637089000035946542961167015952642573752019480937472548339423612925449648153225436344055031753734118669603400910840332038195207976407526062150009659795764033790143835195003871114620804694537163310725396964058701339152270129849973863715943339901987054189258128680703938735788089131233211283144677755218950502149772666735707976108411308724794622495429480109730236876333654575708675802397306229100037942449757330610052842097698832629977297591697008174904484855390913484300542895707412187183087355873793144147464335463497561197285481002479353685622662603129324396397491375858788437866220129955969588108302481879335352094389351846018674859976493064141294150381258507755387838222134380355093753996437240114739721933358865837029975707087715604571701052969946844377556991346171471975949422052356333280644695958309587596510583019434861553112316241882946222101999157989119265401622359145454915434129672019716796046638030188121544613665087407431039424590797276439668701880173646581090707078446975228210181600391260166542419168400159384903193233840054458096524309387459775262356176510660698111723197896899969617391483490591977493467525379780816609127897104934990598936583388417933352053243907012109947510638995112652001595675425706732405171961483341207725316472778345497536514128804144872277851691719696279956252957862508791568637937434705098873058620315652415226787278391886480604493016790230098333059308489325397059765321761129662295293554039586309228136104148445609631254611020722524431307928432862532031733856674151807886095873324549178124869807084398742450217076104270785976758160561241819384925241008701438432954532263939805438708146043408473966116672556735852883844908609942399008767853492890260219090699527669364393372460965328904997463117226892501402911632379198326241456034444960713171954727280318928751869726974292402918166765663528720067141052792210937979247968206690860756030036045569312027918555088565534062260445472887567018439030787726704412454398373987424476035272026171304054540515880720175193207770651983200396443702332312809699926893482946756527045130404762029895058917641980073844482584472037470087574211546203670486903366981314312951012648091972670091196480618683339575858463829477126036225897756111812405050053836745310053107472089503675979210332294356385704167314647086774337904234395057506194730135816598106712830285251810987864187182049261073864714244982123782349882776738562354964794877441317821797655268314577825492918562099209183459560475302799629350360956795877280825859380373503714929658453541775728943033317948884174884941054757911888068441562133160870911541550089742231294825672576076944903550460249419780941935525278963420826514072369975759125149871123543622349129680150397978795390745949599241601608159476521467450134956810294735790083081670301017681767718905217749724077245587354474958500859179838297279148503036025568581083536470259857370362404061545678883745393394996111214387820993772244805188831509136110314761351133390159879824643864910728684055100733222623209664057966082617154143389017577948926508607251562977796698020436779408160155279636981145846711165896492774578503811378528606763994595153075993652295293920005667870301437367642245652956629947758284737732320721090509761565347234428268003556072536250373542126676818195352813322138548788816245470107094412708996236561365507668958166034248779519593143135225004408914521608899253030196479520363354205130762537938341838797505327879412611744177054157136132056701204956599954051613667406093277247526113711492630664509138337211572662147033610267793480786023834822463814127725916766646793437285349358795128150344242933309145796179509013553889360138523105798124511953981628629631874788101160480798964648096944949757177165810594699608179739186115290246686134459646928095116946252667388786980675263017154348826384301998646126747114969492245157160014245097032124141570008635107666421111184880570336800300764173130621078413979060062380957312701531507181264992373427986816903174677677107060218669076819171439316255343778394994149162975655301804671159878109731803956764307332823503993676063759447761402416635203369297144969196580979868681854533455735578983568074500685753400228005200471147863093795538657717671988964835430308541713005342529727382243448392059072626459451242482551574209366684030011364905973376861035116112161135713113794402318664494241762312406048926719412400663256368588259795646212580499487798035970879549244764748757443975651074426010673491669104868926841564494617221402284459878489073448388271352538331620663667555839802100213056529928389695904283413241561301236013929901639654536984456856098389875238740211761025447095935596780453776576137545941431568382928010878950908218607313947082318467157097459065781172650726689098126894372157870695005161753409768928094809579667428160216300211955938620585804498309153173053603974942083316320590259283831807050554048744863018383715651918494673638735301649770090276500418835395488627784947357193815591504991989996125997079303263123883030565094834921693885157980975288380595690608475521995194756698718377707817299355605162241490851118550127943162887062077575461582337406991707173856721671726672445185256369848069346350457199972459990158793818527479329542313868997558504528330412370206989530343102665312662806526234589778320781354409988209314383165718119930855256639100034222683027592097180486056224398125874814942402269106293073258626670256755441723231539066830768930642333661101870891725243724953217937477854061791971185484456379212539427010961508236308814026771268099788501289577240758132117407167285434591810289003480501566540656587840571411777488537511703718752170356502256914841303056435596462697815705233559655729914871360401273826767590924557515659641720714315002135190839423640406052853271895533221578208177689096534137915553923619716521230160526653660769083567046761009129879204129747803998816693103781871113262406080047546935108376020333482021563811911090814331652223503675128414502296218071505737116295477867950246531264263765304645215933492345045244762483008873045301860816791593734207684276844116852898274955219406821223546975071469107533605394757351137717283327884940554465601970906084945867836629263367553251348831439406922348758456234138883571457713730051230873457577153528448219015618730366704765482841417140321114281130437654820512940506126776857530758061772255940210863968225889539526446071267436985310322351383563207246057454734443837878467288405993049582859000790692268372562967922349831907471837492041021755334350969519972205501165629099779978215313037732297981907231115593170267128317257685425565126932415504815078366465733067905914327648053070716476435056254461871943265708583506215879104793058712781342074404161611841462637893157466981411094528399529827029239887118274138488060201739033121002393578125586913769747366429600715850975290830840603310358725201972411063769904651487928930210606967135243072300649712783360540520101715085216878360472238412356793262367236330256103616390284355394993254525914255854895172619845281636371493717574905237363625448138403308199120911565063365245957564221241994117404489221085698804254985751944226754227461400795106373434131283386570881303641855421227526785173343407970316502510176788885112762561032353736998537607135728379314560773671910855186027132809904923259473588450426895184575303799865976822043633948893039183469118607825978422064585624632759076637444767596635323197546221761938100458885074773716148926655755982993179080096048174758882761593770837385250287196111162959310107745799083153521358573746481964283804591271368851300423019190709871099667793948924979808166665697089799510463969707522177402942540141116749085276748791501416060770633666146169601969497285325663352876430358607235299223544553349556297252120868197554064757186409233006769090702707681138342518006294122461882894073048218909771086085531435902598831455555681908625460845514205346300533653958588099379144946556245182100947800816152874354185223372319753709966528289591134834547279801239532006566942415459105695078443302224856175645548961626020937243798868242049154477907326992879480579484434743708432899247830236126719428902926015604018008566980151146120432420577151216784053062537342319566915395380909308163645362421145490361896976607653777742176424318373395553294026224856715432920601861716948972080758279129414576364232236280869824396889383075141100092594196747747839972339016505680329128506805726727934602025716919171567913928911562340720987040978357695567450388443259883083620543954928532708751257062070974917458319500774161896115153364248739573865483385461962151795647948533399444005430698486259056713160941913066925934588136897864470581920455020904465479393441287577179730988812196564648739505250758959585116652319585175139648596859189860030560044189728394279194381127152838408480065615071591006813444676928739260589162638315985126530570023755671133259333608553199919086427336023826549494013425992850121008214614023922596936552181877209799869729390649361187333850248021126334979308380978559004757199635699529516402480249536264995821051586809753640882638547972583729345655496049897762398529176078786494402197110447664123289570152112506191350385936592413593882930666611970759821207008316079416940645693095226497406295743355893585437505193365877593247728510376896004646878352726719152001247928831874663310289265156949871449636856012123468878075025592326214334621532132436088131872506861100758514112315326998325744733896582061099605900744150877523439276181783098600344474928909137635307488028777677562251419938283469628370846323797394252943774782393919524573309942866069781368389256402862582311609706525472979734989548833661732296335908663842202863209230683271526218413074603326062721447417570766360902771996664293985701739720033400518358104210061938078277151299374233080554579555350298306751199038861895559722886059340263442087002708332239115259955304886739371282532832603886689835635560273434813859417534082591342671231011200797572059512669694833848399642059488780603589051478691988067753571590850472042767780996731916007415131483708036224837535686332122066559974023996125252400366363698739368848963665546951158957950640495117301083379706334756513036778146078496154193435313545491122029650698821912773996054889732242832298057518905628835519725743634674560772510913811720141400778959031435084335394211218285678159948408889901399955650081129295573226097899492216566104694348187915661089471870771455404311284040255891243533491375684165729513817081180674734017509009673731109757254298536571216364343088197246750749793410092138199150813714756975621220220229252561041559025432000087060735836490359578916276351554471025926109556429866997206074397247973276680698720968443310248695507643969013732528798770801298398149137502803859618113316041685365736785564927917165565548069438032493687880815824280899090275894394104420839297780740144257393639872791002621566984201652831694932848442304206811822588916341287162299463509209447076870096271152276077874284077261184572680104548712396003403932084816524434264336537384574796220666684253410206028809385307259477700935153091633415216425358349870791030696977015694340552607280307434405464686504329496660316794485581505355955193424712420188653324348452767598299009258962008418187343721187294390833449093748261337357224431785271196724624293708233071284954610073494958023909921188840158170288711194218912426977818406369554000485323597709834199504880073592400032833949130469338463437246183011943790945769606029799655776088723036101096594176901376774444136237555324044685369802119099761037466648519386182856362983416768661104503540679590582189476274064896386609868191795655043173032067305228388563273392508152746666446768234850991999674443840344717665385068172986099250844459357681585708118182625913904472910471231754564030227308767629486333383779585449768816739436381661519905402569261843472490457093441369278299836175073577277831446007927767561426497110027689329232210337280244427656495200998852432331343934931937923823651961048174941050886861754444300804233627838451523002997769442357564143624373608057077395976630615863530875813984559526960300380411279302074155377450609944351659623685401221942735029520476823397130219843210433209382686650196218222643424983317483866394540805241842335390624352184207337766286580290140850753215317967699503941801854107402208763271981403887202677469670810531383940993853345792723613866216272888954013973275515736537727324319640118001913143760326499584053523871650944516391442012317637868474371974325917718061104164384391751779310521309569117433060744194373315503968430460494705143491299310222992050703825231253828920125086287070985512715944262757940817406708041542285739064559181394824141369125380874134944183417397894556821001510790313558252619856547809143045346837123601323504270276910760219138295801940141742012335967155717782754673740751841122403350133128978921577388277237989526997752198568086162519570837728518607366605878594529858375962937428650770428196033266375217459016085636738501861837355515785009495264988412808952754034074617918997151335347036929857489088830810155561890528404339039551254459616599935693274483873782196725335130061236007274740597857575409788471717136123138288117062584476982588578448071192337917412374709263557784716452941449612549250512780800035110023220359029416076611875068402586083116181532969581983403101385153158043162857340470744318569314609430488237682152593000564233881309285031829615811142063785445040880307764536269647209348600459481376335568439702101252697454881241903305941685735159932262667428071230185430212443059895700065537394186790635369745461160333570359046121787344760279902627666199317727614610667045849400863803285421204127029670374094658741497504311218982044376637532470961279271624856211389858566343700039998418606388366775308852742565967101616016777240691206742363935080330488795088362268537822670294297208557630336127843722975673436666078550249973250790613302830924640764150724746704465286170096836715715431661178158497357735425354033729309120989322558469281286324748290783450611724646291991209420070596430549713771083363074045951145864343856879882644965313623995197852473245032207386496351421210842113261896993579286781436236940674791855315956182159616696778831378357068976417957547854049910697565512053462993031661697835158366176705665170236171074576670775179631859939338289126435782873361656891505540649098979866336355906041157161658352960842989058339067079002749235834690872668253478128072921203585453254925773133018943634876103084734144153271533879900168156963574435363260061412408548420238573628861818836871314821630427672983805219354049578853986109945134833085618472322412012413220733664524085566840486448476252322804945319412320083206715976838526484951325727775407545345401283793889631092088272687298791534618589549216711172200490536154401818780787176009170691793611689876605661035071200466184262902191149224568322685142759169661472308543356212535062850300972039010419946388804101321377903947017393389409476660033990659456300448782010742914558491836676693216752582648029567560158350105918061189649175953949423265487097933638933332544683730972639887017735928799775745308988100563697025582717016150115895930805343025242322572683404142041965692144457902805476911579533746782765628280687551695633163550387838195805378685145293128579392075830340343321518708816559006935277057674546604647542587521094455824088922402778587215646239286922700562372498077200866654976191483608195535063097945278931444492407718077390058773595040722145924234980218149201811941161581612192807246570990517139248145166182799673138045600896470441631685593312875256556319373459721053541691450443711961055955516587989198798219466421916376547090571014584669729558946088950925714329233939643488503255994882172088818397935421430881543838779813863744899251409541959612017165028468304447995109929813101121960884893184707135209169789670375062868015571107206907631498907286068343193881123594711208858367358179397184091577392224868871981101100007078275651385059529880657405902578292846046420223049063122035734332650090895220867312061593167319016957903060353189875314662702153207451524128302322081591034498512648320295257914690948828695288706755598963637915881685432271344464065186356027157185443100877879126226771901123708237090977515048463450129409900981616008806129177390299772262591053468385967834398134012164382913246208665231696094485304634008608668084618525686936459430962284394957037908472120148144693634472631817625499574597524112852994041162972419003789451893931250849855254930056928442096296464758553202576023505308480000492557073130369273198377933573821658356614617911596637487884752966402507456679887564488639376602333343549017217375981746875314029121125426332031468283852681506773595712776577429962514070635464123674392837433579972523204827567872290979560379213782972918399835793769149764106449479261268442850023017366711461692489391197210420499843829226745798280702341683255761401269484208630985823385280555894855524903473817688107142199069137948332934600883887594193777608620072091250203237482101005567918180159922701678441985733852765384292743160711521071938662792079971297611651234469363913344375327137838814658767336983155958962252409207065817627241609123426700921285210561070631341748841328284724112717988687108607416989255956683539212778767068071428483984239602271413946865450404130833522101344372477927598858346961056955959348071807929773431276666562051594949081295056964622234114467039614652156044073536675426523285935240717697932981019492732298599001810267197725237070611981743787517593931265597776542804433050167155822164937209666319625319725068132409465917260277796304278444026479835788169347363640007658468549743297495241308396798756907244457457777461902206885116558359866336217918554782216924207496878863263474832517898161210259049444318707064454402705952115383198996646116479173674598755734324414157122307545819822619691190099670991503279680717006068706618065836135433380371052099536003664107991056003436159447485168289947076882209302709085757280502080251911846666446624225075707860246743124559702718193315061857855375221639565762976347430476206597030680245011297172051757840052133590637946048524260053910676945948256737342732791698029824888703747462513728580969498013116688065501256967521010477230443506596056452305197753613467490338127467283229890381676572760835986963459901536320604370238205278455427182788162932116609860427101552940621780486202491357352613421364463084041898127703567097337739917722392240701756555865200706885994930646253489737967401683014552544512148644780823159639464030513428385841290667245676176665901925913936393544571107238367967840037751254907319830717170837570557215186589576438462992102878058079781750111764647405171568130770270661042560142579868185213682208994672980199850148292128650937348536839343615782801009783216717200622924112873311696277058075502041095980242570789706280946699069849528336450580725752602190066947646132079788481712024158186484339321519186079715134417388450503632832020383841345618582231929963869533308819727510139641576627013569140575128175141852982683893680748111972555388893552505433644217197217854570565239945345492221096024693900345520932265203124014832315935567022573959545651098615338671823791733100812209110402740144401011634508105467595425597284019330533546726299423164243771292762871829456235690762099974942948068473180081393435661325536018530705012232607293269121172433104248856668112497675907916081284785909053882471288560661724126780696667687010271451042250633257034351773468564266432322965112333031498531999511190672452858172958202653260952600654756200545118880107258447442795081732781376478732218330808741483433111617833475117587220011877176710159152830677463050385002893919263968152666528025891486668700082349717949991634520182881013125891141802029349014756035325104551283896690638074604869415274277889856916647011103505065760809325720100762791671386290890146935111566287947797059032837135818236377098670362752212028675157396320839077882012957767413168434640930110961642203842442286258619406073091859172426763688412409801690456115880280716728804755230550434849226513878354366892484818952757922827393402685217835340285775960839662767540207043918213632750899779613717478652901732904814115086283605061257896339977419553327259136812080004902429306389101119978248163336334876743167599042766069717521482895836026217177423355380307215619735773319618778085040381224352399962139272923206866687313510682886621739959456768992854422051022087573633908555970461243873608208377938945436954019703725241667022436176256490180351369036457775405302015587248611920247744676978945786134252320138494908762382116406650798800616530790123373500122260123446958985593627336789233912009634421030372150997968016886114705396727041920701411371068001920129450695954271852804517374988457359740724616124170888852050081753410349702876549771658620043727734361272758463858083970737329208616097799544406624805328164775457766224229457013354809278652710760618765946319415575919575917838014815422518087280018392770598939212240611800231426474489718532808240271621259866780057625145189580231370248383005116748540486016789807407390236485821478905314310927838191979948775849099324590229918687488733892652924422393106459132954485454964161558140149604633371360373925139230348671290521324461542109069345458887746220753231032457008284616869541435317870585587335085860953258822261295542571278795963120659376936042691878938968236313320770912260696870619993667463783414920660100100432286454355244249488864866287996470684694537945000785271774613327153774878567490669513941050458566291306475685440213702013371278838055077578463786196936999698194032707738346312943380093076498037909435046470481458662636466010010432463973487416414372741232268444909858234281138229292103958137580111939099550390035942998078959301209279808382374211366296000768345413642956669230501439984760429653313433524517075603556704678782562757645106780600835010840522294573879249803563916149291452753971156680640868722546070249057013685656125751155896161650263715381895668884235210564914416801299354710363968082070582050392821653928813648392297337534871499125580358332743047852718279644196759017208814692358940358134479331509648946311441948663715817118158349824704723763341112792864145770253073217895003227616172329101207261601349053395226150965689218314382455762982003085575992895611061815881728101627901367663970337736108763820079109092485473383069465561267806095566878870490912284981953876901424504875291452320896619680792105238793442293213634205165861386139188514784910507750311861149133640170932672360327021191196208966563698257340050699324366078646998037474284905241989841081120907778318181739695005704512384931343460431175743203168332460637563979011422770042931586663114199773298715078228732052687911452860108558389604278277768703563176332886395490790752434481407754209241009624288795980434248031217089477794149103281564993378525566306718199299762014406744633658161273606473383045308327759714641866241948757681719632829771496860064018953493070967592476911536441434060738864615150273300482209212277481381947571996280359970697718388621311211313130950699913934785505649135955762980419905495043643035073229752976100136668786095954646952705039223184026850796752642890309032728791614568142628102470417601487690454827218675955126311840497834217326345938364599818823274207024582969697375708789656739044318000095947475619023787410706105630597206719389234909027024663446376356811456797826101850236823489453019216462270191530592164594329818493659492781290244388180345838899316245913033815760303187630197408115900668854969271075049501702465400483115812609184143873861457754164542884182965621022275390780568874277890857562090876666024709154055227018927163687069331931683834395141407281498931775408992587986434824091260723936254382112787546743495769925627208925483831832257444545735427676786937784732021149469202916668796718402171128904281491614959849319619977375207582860246080269705901093681180609865487327614844815012325226640871664311750328084086006159409602696601375948998601061810324267451254162608991919891547701462339230699602374416894647169770542106932354775547201575520808033161014109834267140576619706329325718820608099498617018974015226538778827718481456768216797224229174821728364878255880569017129749735269206580413208269061189230877997644022906997932185571647721371351734410336537245447381975799634309769901026100071753156123825189416191696518266305540629195327367188826516576122805966548540774349993047209090043827589906060291594888002625064775860136370681465165837323225141302054196552427948219135171601363709229504767642825606112390518220001868866557959602982219236710142549075108607753276123963082202695599139270445306445408020743671005725158878453167967176143832717070888262154350948821222200124015423018172529044971152985353479159461164939400403372334504037779137862952429703500284438366866666857715089017549839664579206704267327416720698710888322727198822317654162422136473814667049364983912048430769245644358106499361285960791744052331776008993093376891150968996374928964050360538430325323731944681708960605569307320029872731091409032995924064415428007685241726420519653656092164622422817634685476706425120993615183396629077048394137471686023357738509247587553804457362121950572393796268041439388990567078977952443135247713361685537166517310203318139362381550050201983473212843773006754740662928559695412633125792748569217516064368104138933863748034394238543966070604873389262345944690650682118746220459980546474500557399787007388923626149136479140015224908378740187508629640431102862705712740885849089477093577327947705653414890059826177160958715304136846203985483783688434378608841661748582900214816632880376940134885556748220875128852248779341875908095643772286324071002026011210299818278271583464255536792306842710005544958399648490024229383990385688048205221071425622618142064619735558228783853525303272115225810562680602820397171035934878405467125029653834935103037778807662970571364228895021924944029431199239488847564302038112060943038241884355538679077740403712524539120178451615170905005072311530471315324761801695231658020019458443145239214421436853125815769014481086816218318197197499650776551431322559555599628199888785229255419228934232838398748635763338812556950886424502395970673818322880523037323229214598437316003729375124506868905444581303062984094015676493325792784605237543829999703170903410929130944609021438328339636274573700691930012615559683004770407146664704812582835898664835652713072935679736158847083868471963055351568695534010872557893269305721403233307980042713813255841558567153447468113474472189321682130702859144717680403953031163843840944182363926113674879526012814313971776143117377247565091761925540108914587725816108455819551604243004405718422160869125880996329713249284679473398556992144642813238217134154695955451839634604092335163163360614735607132104791229845339224033823998771426363301384441281141317947770808584689648329611144801396207182273273685883050548691157963166470905467586029305374885385898840941280424239866449690767553226830517784518700831357350216709454297068925320917491453359002260514872502023307585637125747120425027966698555705688367110976129499872074278344958650567945830481038597258504244859464126931088731988162329508308429701184258692046299356386306121117700669102191869113486924683782488153301970135259490762752914739570421938825878005931731569133390006728505589209803652822147678862189580629191283044539130178339995796778366554011439883122985083697769471341351677092962862712620560963313968351777623987652327779220073284623367145891849412232855312498197795113954202290926143905870804573819571163160615640412374345482751859333205782396058331254445216078963552834307443430584921529388416356293412683391397144504104194812868788113919889268478645999867234922709152398844805523520704760605539847265736801872919333803464645418876743814366245127133179644340406579017806646906750653318867582782860704591327393211128473263603937661308028069573459601617932673446275721354256762301556750803629464393005108228052133141602105188738711322818186690595114672927537023405455255871718251724849580122029951615931516767804607797714028468335672176775395510911652264922350477365919846496377307093799335258246849009291968128831149580250190580264360017894794270495818844605446646910439299141951269690039760030218751197286165738516636922378818394014556166033950357643437596045481569022975822913453062189942554454074229429906025500400626880880570100161201871274401412232595029927102663176958588645810798883753495402333456047440640992076517747538009745991786742502170453161678063948644582144623008119575547612001789908854147141285611225574300912480755333967590545760962784925848465707017482763045423545213547079313026064644391397109789110232912827486346863134828118587680719200337672992481388096756363543564692293678236098565502404425213734898677757184346460708475820557969331943818050258091607610151145345207714874727900558905939688585118195823453292678444568547453267503393059706270856631798898148856662496314320139534858695545709979728820332027323739761556390824375694199658109899072022998638984152864554517067571340321192224217543347733288310635015113991867409621558959321909538372461840226530558219589878932049733453172315525840521785862399241244714528360886924028138668703086889791190661633324820811049254357634399299135836247736561867270815556482819858624345464564828910155199716768145342303290166324038932588480402987381377664321837877600684162652763760008469594861164286744362171232249561116829404167934409431562994407529813314605820406939405226298829919111024620044828604543919862048294260844704341219255940860667242793655167264586136319429790792018021073302248419443810004252032793252110460803810711909520017552036886525878182604104881607136614976502998537956852767014098449038929953821663294546312037784014569289242926342273478796652195043022750658795451564416242488384486520692833429025325824302987976931268656872165139980338121475838985172230055312597999214262097838550338334561117859765535265436977499009529847137625242255973548632894389094800717190803913775944532467456100899697121064256398163396175320322562447647979873785701895064336270746425565150353794691901868331858630277704514221338106393608548253716439778570852929436325820892595606797679614607211834303749149487670483313083853717989195692349584184170702343402949212552710093664634035858737407602687551050187155924154716631238539985603348083237935722745323399516597269717015430416588443561706051077437432748381852511524380429604162034330265106315684743869986853351986641580646899990373075506388824607545105951645440508471681081626512506988936256475747574583603985139514495316788852970285702927513444167692686719700829725820811809062239544447145984558449789602832087899368552366346674776492106123807161468162247874028588804284366152853666068017724644263854928699827854087014597689815610328337342481930518634146607232853905602177851347663766960643031458437610182472993327656831571401453061049456303078028483069561998376255622461248075123073579676343413660446350828153308927137760667569630153607150632001398379222515910465674126773374217605927039739140091451026883815381290273510790860270812000413018716302910327615124938110322261268553559348474382381144080687946028817659176388711015075961397828693553126356145133886686858944553521730949965112028975345120522704841111200856735350555327080649772711877637952679437774595790579884166813064656801665590350166737898410219223013893386094458873515196412029696840319164404924153684554608103968114653841566059574069203772622970576636232359088513586347998781743719674703991327570973888138611860002189643762826647731104957833282887045528597129392018732914649862192671257288742124207986219266484743885016019096759943573387141882552909277256063598189553953071635922589294555262704136793822283607672436111610110540134188940407476578074839884009783710336636314693063131037494549392347080043791878037355467114975749513812410331143751580858253775144582315303954445430540693808817071537505157025590118793129260666098270413266581400998960265135951146517286098915672649594079281353741644877140368198685700499857641345590459814317372968921569692805160199104564637557523941403638604992777983540663508115450810606674765748449146070913516705174647191537567918397941204303591858310491724668517539946305242175332391304249192823572510169997998225117610219420764201475230203841302798436853587074849760675225556832443812652924904893663020191459835837784405960453759885874001417040213742221765549686262171635043385864379272537609125158760288330647692660214401302722615882593211348880986148758907325063052136045676810297178951739958946337579420023406782386738772095371067803606958599051090620245983233972807398665148568970771982136873057174409931097371306264034209430862983842625685361285455318944822911699150303346018731540499705059944422231402044268847131364998335842768094539348936669951304837856731668131940854716539460051974348817413218629459357449535006292780240256575546136259881963979453932217647701040426854502776826121711045899176315823344457135483826019476821675434872027475652226802268367122802157476906056802157197038022416829149926875978679109536515590239759717903753088508250261763823883199455265365284153942671106155881088825016224835491764199790175173873484413949607731676771315771690783679298236927156350599957720469571423434025153653391057454376715999407357761360079676335112738259298534350350964873830732807227326775150028537895447163424232343637714950317115633949839934079004105315095136022725744470316387744626365816457099017944664693912974877018922323284993547030912129672043040598944666202761573085276565519286716580910045695975037739820449609498861543164988716451094433924814534561007192968857714961800973423669651505528691941869941925134736032472832894188870744326664294402736274969535261141910762898775406492284160542363771825794885806325157999097615034546456275060419626964271429348650681502702954487041578821370329697272722726842156822623467941223187206997776376918855932795135326144877594495164693616073828163963230617816541907163699924218579777069067444779805301880716392870075249584749377391742732026724950195774963110461669006791334993418147865458310629339652462866968385535032567979663571541974301870412921065728915399933562532379287568953665928954090769913999873883672850357116253599742688677181173988720188807002260226460640297939081339018945626344404441981842862279557806869087234414372688830842740228109057052594500319804403634562125144882754820542854642003745542228976596447914365342781707123617716455790079233286829129728277930820041041324348347484320313792335928261322420575705420441569618728934345192811771918183655500699718801530747375670935095909421966101766597493546094729635167296728821107102901135700199340570921130990481814798148947656672397087399748635634439985857182133410379456194045647577317066415893921203471191810684794901878730431851863786973796504924617835701374695922327279454940313744642430071013148434471716474298587730628833616513817936955899650475019913511495977391715757626771861918461224181595802549153911860580911024960461226889507974726656227623625227738556603092288241753168206514906778719191519518853656291895569383315905309992397403442593138035238040276875617816190097881822832261138954727801244883410745578168714626284600667723890200118456079188675651972493384494192567999451626984179450862924727138977653855816626939033576048775163410310602620059900092274125092196735367455908047464586581022254509861209771203436500627394890787339565345248897397501126233493575291544663043282412764986400109539230604089869732204284014384061810566511979169149506062688436880676497961324777603863389393549271235929951363515432659333238788901797539285544292917797269996028593324344308268012272742891836860419359363418889884150889515963022661690138283011698645106185690188874101351566224293351722935933280397947151283558923924269807428335629475068457221951779751934382858212688760459093727633369761737892976387539787855587938424296982158509326486396597612959173497669163368967680292579301146768322188668235389478382885003572296778203089926023003075179694486533041968421865296035995709072798666928166220596874376701519038382149591634433160291218142480321182244247574748151858303602906631320896479695526134105800569449612262729170605784299487361763192857425286707158296267559726739669390819872848979683895826637751369728860600576349131657838929848687703037580787127305496351865644497328369213693500344855943754247065770208953547342829128395797908809678476327274784801333358823995782184210787106922570338663790145782323787089525723591094693926247690306415411925116400561801514298739853793215406242302122834561266226717103642703729357718869543247099890767020078840796675307401638352320096781181679935752606315346138644270313793911241380958028490338481110440165319731158813418401657240573220107715398622778251193925229918452536935301433635872926277926737921494555311435908226990582980678529305617249073858703590999417804763484452212010220840129335294331209183165497607322873393714683730807935897646584993569019396319105971345753110734005946704382120259964280351037047191693797710613081356819254308679281575574244881228543066756302872149839354548896527240017836514172883065637584801091551913023480375633565618941865835503758958798941072625545908321495474095963640242060391201385029976085942516409841645114147864105304550433014316762633708131109512502294650809931849492697797654978528360748045663107330026168191529481059991720538431696579911802375826132620053205990007306571216355896393021029847814252629772881483816308261849812517429473318854119503680719250996492948412371459811554714186522318658786983800949499457021960630309584522529692440615334634407324359867603023753934747776922160730424549380742381747592211414602641332061396092589084028318921657886540085709035030864185653939808834544099401720871544019767851239013163029643590061559998637734399891315590482745002399427386186586163780859632612118207331916080963417690032815985378609782629806376675240750425675427730547649885504345194849102590969131950109300612696410770985785390216952224643963435163110459481725283016043110119049163884728022597155800729417701099792561681603030047895202795055739348324330763063391949858434717430055391495814466367630350440441188197703420232248254161327723140984148413939433465998699794278029880710481279134331827119784711917538347567616208712179579405238184472989596851201906074934355276447544059782266273805386039940031880172631017416362035290055429459986298963627151341194345806201341592113883912170615936122868385152473260044638709611381654232977874050657114625820677117624572083427307846079174873745147941176632907219375536061468065053430075450748105908390928941282694184158937218115234605777896595786915734676882218663981643858436745721513597748909088514483924139059749393036204370446569580137541612286621497448747527182933436837063820093383688454383547494744965692577894575090920219403393480101224087156373014026832592391898658421942275443021902128484504306314050340821605186689021965567158762920919448252252124063686774311144336247865129763685689380216959554732518564435196961817813345527534790745717819568156528354134224164067181858769166371138620076328737466135086035846083084756119297292819544927432786418233975442695195574488223728722405928884791591173556515731718279645216085241002801345691906239355729121503798455029689486628842520839254018572683966799124724314628012435561274684226381779336357125441359163230785785353684821195853506016096409101824045411710654223640240039455133956824150761048121682045668684684597789456408828765816885672140597107421592108344276092721902205778371116313052269353826708319326660019852460870531806823730978344520979588193001481403560625473575746739338381709138694262367396609631097748867428175960664902298955108915793195815388865455692165927776521499284112766757526969115384324178526428461573309827837863859896371307103941867252646980850755029397886916376913647131015638024190580765524970725658157204336382552985316788524097227058220682521911189029650387288338857601061320880715631549866158512903154912801685641016656415515482309671386330294247106244758853640115809229227594678890949030595855768480677077347175104465619151428675177572119584656520576038359762405238305658282585063367781258537042420899016043478184271154464935118799540638344885687939192230800939981452054643241373697506513036243912419140869553139633410285341114840295342348405387905343570638135838295047576270929868785355143702899966993879125689716510042663434126289507714316186944073460145054781205820195536036590974094831919127215593216075111027252557082907263179820129393968773816266766489421299126694546973741393389177978971288505908015700732642119251049112097830574742241731306056244400037471599470714214106393408066749391554123468108363817721007950861872507558768514267470018156733733942633471019144010131131360928631951039354247103611941925454138116406447948474116794620558771785727215885148171020679733634405311165907601832548600067898005868001453602297930499331612449676920894329447057429940425022143464375341344564373413047031934651072397811844078054692900513811204503778688638356199972837821680778348255117651463490494401489351288711763457761357050214360808591291762244769790588672433329621922422209916436510977918798445829917775209172225973998763682890745642203679586414391975264971526013339786227831562188406996819472599631826579495051989879068396770715935215384899574989730481142360764540567920439151399632369806934333438730545926965594765530863267118565055169259844839092073300481505688227665638981747031000713473953643525500077526718818482332237977931980384097191194342851050559436083984964932325129684296192050502336676706568089210971424928010567806662788357025826383639533238274395814084432352043987559586523695631246141168001599374536097857948576485763139066744846350249825464733755578844562211924772249786429323417800924520917655232913886940844250452180019738422894097654549181280617611476263495496016571767729562691681805936821304071939175510593196692418640924066119063466058491423676590598312844245025083814992095153138943207109840165497354755484134851478878397451109669807945016820605338179398167573602457113797822563038826776259165707357698206206896872627107434619885628244609390524605259757550522634789081461195271583222422223030802765799447489362605070782236800907788397048102972711691483802847797837391932600620762473331390169312496913285921520695511627564596573988163463446017381076117115614801770859541283419462308872344378924704582544109185097137074508147820157237857446035512925029326379870937183651936510655214346162908001576185141845234464079015335884214811282958133335116755798796375930529602657304687768943644706969450877219796480736874045062595290371516665513195381096637785344481932283981253163481892399028659141520678683902094227389496589710178202684056494328932655994463956191719069899543083634381317680079412995248272084581899266335254964847893228703367313629995016957696087014066222703282104420310319181375518677967319987545081894648345464214999651461376807314535348627830841490516079852643320944315719877615058286305749136621478434994582023268076319386724301265388621929201974521167109506514177025340380734100112539947200232459865324410410375081435719933668969762975245580885054588757571226442848812065254603661293618146649772443729993458489515093638188899101229616201711704343115264023504810957444045577596044579456153959619238225745270328338196769672355614040097402780164664963127769047320323441579134707151062273377328383494494693220550748096700603977829643460481700649895750662603341799044377627779890553411491535546223429027981496805982151373214759331714932829301341095671263768148225520986965343240300739414161880630243445431597186500393774963224985545376642465603700565053848747394516217153563557574412831033998931370290580859808595050058648020217739763709028494110697563501563729330223384323973460762620729125626842700469552544479784755047274497589704063078232836238191051841301943738765359688916166096592822301814566630357836794680022362652078984273173567799418859096725123661126154592067020999522092601646754123672169007046782871810335670754962277311744103219332756532265611484065304944516540999636574781247877558543908763578799280507397191711038713066207911948644408301289525040469583957265245373528943204433524656189735814131875371124309071911865387204460668556529532916658947905376813894704769779109476016580045760009394625820095535454956552116604295850227834582464581534177031560538522229712501680060821845565927400611403898562822270880334596959753199306124855137229182189031698626092025357819019714330665295804128459800145766676192096032309480522529929749826468505032936579404835731915970470632509893272040003178645339779963490463515144790143195977744927578852364986415384082025509351747312583354010179595975590225034283360174989345330246128555205520867331797138364307120571828740869636987370988310391988314033637702331966692182740096127610773474537320561809105300055747677737105536755962038883529809007317244519286593123502190019479832945535022939527469406960034675253392652820969562134387096165991949049449569363771380644627880089868833235071086576121356878141837075622919311257256787264474319563353173531395587590547529014125047994138084316911996169093935795992680475745589415747037144158374923473006773955599504589073821510369917329813870726825715585851556564071801931118615715165276282205900444636129127399549539737056456350714379685627782362377794516421722331280669123074513383697384035404795934438813784620897822462207550490069475954125343528748123093759033840029060601174646330390614635468684481136039394258905595450875252360014203099002924502014725255971029727435350592896596164352142180250355460852721955400537794196688075682619493813800910969530594250897326875635169662787738431202862143033010193492798273115126991922850031327621634629720944534777449378039265420014076663755832689502280028261841479628203476146645712389894684440063245590250734963106524284121096312279900742534694658760075565029075566565374908981122401007839983894676517965316104098478510329775373003532068158077230226266434743702066865509994878397549758828029597754152833404957305537035239491475782537962786793324620432129893562489832156711823599466771316378524143200951742523409536942089142934140552907044448016075878307049352944582706534591378684898307562252872255915463032170849437906925430981170876591279060228003445377032623377846762387174324120514986352297264152660703507814234429566908391277582553738230683966946080147532355679914269406688470365039719675019261066803925701024573462620742423625376265696369372094489558367731398383937363429176888894733007129385828914404244048288508731964464023751119558315227524031149357404059101470998912801762906543020870009614027426108730616194047753712483929378622056679193179367674203462097934677511997011738100560216532087633789208178121444917010980037493769940451665636727357198690787729337562097378864980188461414342650317400439999933457890000451257743791641704139341369600623852370628567267501037505059752725187442398220012211543551440387828693904582907623611106094385357510703309071900061158019780397161238210809689667112216382060471351242423010158177633761536676539210850673309506207867467886132650727869600270919057378167580720187132339925184354690451572629455404416006493488815293668656066897536038933382495196874207488407211046047646797679626330653179828226148054457179503082117881252352024313153137666063997108956143939716281274245533951562172217386249719643708409691634521813274661426734359167254314088550487351412668426436735214324867734776149537471034067479463066547139692294317113636504239216907435831736612596230007235556844747114656459665789109636679902434165785734250066819661324407594349300801489534439313150482775892791550325650686920995807549336057371808341503424512669992961614401429164954783913595912604917497189115928078055454499526503169795627854193240524897074071670529021740261657738336438384203774173381019681184356223494408894108139479397586001473069504650632537610456855309379200421440499172092267419809237009504576199699382417662212056561025204197131685476908465962298648777174689335912504953169929994820164489469363290678802618933201540717713067106416225207953349685157366809074368689050640608284404427552956467514312044341005772489809976172379739941723030197995287289548796530974951442801234908459556927544799258098240284679975530051615952407523232227946405077794541158173325954023561955089905585160818631129057303945006952025131004100753170699855661439236707311684207644817095014291277139996658281048546728559762227033693323188327128742337444599309165211116795825338479480316450436341797534050483168282963898614357460584256018104227896474409633989786194303078848731920144732810228279016665035423952416151569309866583156232003168980074920476301577677946401263964526529281833637115141066227613191652605480859708882516555870320360578935241620548481937257253010243323931874432177347331582388313416029812434546787203177968487626240742023287721911643450569283476952223875239324183794396603423839654115116063787511171818978304992765371810007749467048203591725749149979753049611050326340207266814027117473396123116329681281972821099760524792625190628593197578877686410133687050000673870120646857452728316077037749044314949443511020001530509065031636580353366870567980189679426852247832132430414711107476601164955065132083652839953899903200875933459115142006988298818543433183409491951065209313624069277198225869824621387695907770870996600057043049267452816742639343077655385678199142983599662272493714002606812587878566975605330690506388816641611554691702213004524899351604693526933629509007664333823898681308858066589380186162111931716181852192259406424771921318292463710505220137166666689887056138209645591733194736141225614782614622459892424958453407828015126147639785222986238517462718962978563692380612911777186996509453922635463678150470157692655644382260854376535731254617131688866568656058016670767530203583590957904080771213711300682816209506998273325200955644756886290208611519139534294419282200779083298753328882974362816377266226573457751773626098418518279082624035074901071760486173255844849264687466923875458149395917611904477725769405717463771896650336570328022001478023819961894216630439765615593419706942021479632883982875983186984733202997765314138377729117592389722429773219996811886842997601827177152886971407964230739492647383307135150697809311166396786515541338934269547532242560100755543961586973042420702594674851259143315007399342869629827099299112906249002559516482202846806147353731645135582313835509220367355685321182017460497208253814108337531766973534034678213456802840129394711484493353712259118149444081363128493666994247416591464090616528465463232080384878508124772033068612451398449669525937880211232144990923448264004689365354012650885729383935898958740815215947923980442131182524233194647331437182833079985485367335787826508281594579368726461398937506460207447862855035439501534413018267670174055542530082511266760569671894507807247123700559722728106909450806527513582403858100565954760541650482090345897846997171299421003626539359553947643590369879760096727696003949807374776405243731020126473006606175407476773134253799705927463026949744767810330945343985752501525164021620467127891230171653045077812559435153128559047370952936061277438285577361205524134598495667054559342989558407447987440206793322533554137364219165763173901163889498193519831313032897306636611973370112694769229114544134348693917612544482329995617379686010526630056880542965631204715992536648097217307094256042439992690095905347489983483163417724627696393018794914211671798831135937727299264421531548013210261327020303582548142741523743013478757335164714738972426076481725870077534096141536845258820772428352897363409542304396198306888131819240227001705065023514774207953457114459469214801703329510039138227648061605363186256365726784730433088899900269023992194174456361808800092296983594422492502731904302379777826010838333176431859159071249150691313529295995821995949544649429827418748728132493446064378488106131469679490957974157435881603872317458396907453720818992810496293172228013792568408783279227803298977882046875993526474902477058865147334320808500747191807568270684644487748154762168224315389806923981127245581057348423745013104424114314212231067260822301000605789225851525557177787398326741065297541464859810449130880804932569032318030304738272836685641038547484849305950786282356509632033045005338653739882395528322990744547727895295512505428087595392545725882161071865878792665167483246281225110574977010042488051542791762678701392445188777820373415616354218207779843848095833523304096741986631778346905565489863678294477578125546542098575946490895743487649363132078696678435857424122696223531533684475361054285095496055947779980160016930904829876940514879476512416908580790293467688729334573401647516696283273575409880996390460729672353544173214473986054647261195407706594094533981603021315792163678319950687081981386785128288756960842079328551898240558281070066257658711547274010682231273223114335564722924049415259965367271419756789649711406064074922711546388468038320319021562084885851345617347377352214245450132492003805214777114215536289471664842202763920761028206685444254055291282058843749233678615691177413550022481087145673010466065793739181504747573939659893715139112960007693930846912880801205286801340709396333554366963358792908658882945106173547832635498180710911425082359815599760275443701702598727229717303447221337757235435980652354380376972188102950997857291243441355576150269486153507085550144798772509031012091126790284376425896817953963338542672524807266820900093953965452402534305116345652943300621300906533286947978137740016839872122923913102059882373315328973390475366161849043863532628165854653915636453341377739730872465964618336490387442192855543156928467104788871721830402308934270399485475495102536216732976268766800797399714343268743040641840750986179583565796317037773531817737248005516461606639131723371802419682894284689225457687027080490162156656034104740878501004533608414889315317712163129191540932682961339234057477542036000251343935187495534875023920155716271887312233289710683476399115374300732403254838387136792732243699298447312092529546481163732416975450791943361544971542096336696454951832922245239384854973590131423961043444144849031282450509383458046302094229273104339668473100834172680237880710166185401379664385019082889983863283136831343243317616330811707339008990598116111683866300721515067986268768907707904777109118172299594320943521521593216774284955786979341516819368084733799640102721523877941815824184958601524362025652021460367164945289336450497116003703689723779207300041013010961396596596326688955279466085239324992636368622220680771214576932715601962813066541041524192915099000508047785850716290447210303091503234104171844168014528274684359355635122794984178657814554471404637839930306889231098279718588195647235258670937793173886416943841575963526299449547097778310112935676574494791228341106149040605494805708513128219107034505484709217366966987848150380551914678821600361639005446020744264968413228822101223954722787610227658109627442822861219756936265435403443960557007773932601908207602907436627082873225643029653544463074696397403438692158831892326747563303188746984481760585396106420658043473408161153626947601543600975385809526675533857033088133866205615307768159256579901294191256187353615258751775617413862252709191725666756312087822991487900146988473101897689441226376375971468978294208237843786206107121828794980559942192709751372294772007556304283894285605647633195745859131638146057676755568583270966965378322963880776331062918437310471215182258321170192331971926129985152518474986003023099455168707488456770519285280863179600533492159212259953181081596030956162974540026939286589509552353459867224304089637057712921424185681139059893606027354155699028979045483899742940525741280641925141137693809173495027926157632931829011696898154713051271383914005497912176725757949708731460801212393516806283826325219211305769106937559184076778014608181336694404257704681761272187911002843557468228833238754803257430637184007745576012990077202001754600792145806813430629069920552978989804634353216965805843027306733214568287666192625634536604869057471615510216766541787643987969072044045424643341972928517304839985773858765223774394027976559219490704690659923306770507430341229191279255710115219679300882475434763217301618299309787795499877845614151117491135667366143872459184612036931975200128605272743488611311978248534360372861033571098866385506503632995054935777016380596208211338056455642916103724325898982791842143836843434507500559628208943419509030754841744577496598476358703704597442190565379857376788263832536268968769867658913785302587701142279419274578162015391918826589825078745090930191091798523910864914510617520450478760959901487237541921922949268414652979965435019161279643321967251745438159114277246878552637233470436298758423725518987791713875427846348448856524394958592519609460305255726616474739552570787213509962375924836558243443777909680766278931881150392435346429880172100504862585429173505291906416247065089704451695453060649656565472701424975678754713693429292999027444530989174694339132227821742440258770619479110248675080435334704853184670017785071419969883425478728162877926874020808760666628479322237576789659800796720432691304502502205822180547288152533906770753336225776324539821088145209598314964124669775867479983127508169434292901682822764315623208049841797945352231340177184253841879298533403540190345239062872795235112162992143367243102207494289324530682570752708865580058253625516794263916978547287914691339674076363422782055023917962931133254023333435982738498504669157738852004789569435271987673425176183382875751433048739788775054791686256931462804422844474662470472249170511234254695198493706123751695617263340824527792971805845669328923688908184379786035830972865989049307088154055848307505166378787557383815893089225774743692008799646434067998934836398438851808011930960430542611083208957254740020498859907367165441579681497301710510324893301453867655617885914504786930162434145649785385624241326571125309231647729175485585193505723402471321964019213374505653807165981152425945112922115269841870060374305886000908575447087535748360415543747876992583763280303634014362404843645985013302394949625705925551742767884799554980376040576371009108640534484468708461729980704102144649333788876578333020692796146368785931540503058196724562431588725925524965123179766678643433108003169440874086237219695965893609389974525365898209090423364486096919850243377916087727961784132655453618196271667403967670191741887099605496333889706324616765076694957374679748216036582145075925633259509346060659398658650562958182972792397338550305182406717838457639581425406294062121063805070869597911468514147137835969049111729392151110923701267743914672271364935289215216330031013089281224685391802103305230502312769298858350097289350910575411785011084681155602244667772437425564092996747539652042281330664342036197983080107437323253006980120148648628217405999939040292592331691104202491821110653530960407641851216060540406267522050855746697228240425172694072098229564855643351838589924264438472518025716589815140459175424861790025029291325256503054369685123853261411639462619537253305855828603127495081224522137310307716439475557661137251604142641748255542092973745690258741948015138002890487011603219730953913152679875586262755636710035860184772049547412267882945291010850724079357590742996794829406199848880606142300162085721379577310360783301509690036756421039016162727572443805819403972873980781132213246264837103194154402191197565944569334161130695923916321255286642166058977988909263350373789382865763033449478137772907597937698631031740011125063897134379164325618292412056405259687626478343611460988723769618825084154495149511512870200032419868113304728471530122485378296168407159947049328539031547873552169720794383227434040957546936317711836981076379983385393011359009741056281653313668101000152369543030862090967768964939092258577738225411427741027447061893470950219146811984641467641345297676846869691610442205673571616117032715355763774926568081128279287065661137546678502948903026886423982267398616294495035745936418702136219711984888698610178466647401251318567364880330346565951185083045260104800295530948536673032530485188808455570043344638562268210154730181514605621497288071576632733465302948301519034475464863882909498156687603507639638549603532691314541193402319926402742298972814930514513071972384712508136639414917963692959293436722494667728499805406838760264942599867927590380560239994474785615082906461380698809430859644856157124759615667950665841133148355934658409861321082859442969015889531739223437132309511960295995491558415255007731675207379244291362698784539702742681622544751575015238337944577196714337803716298653053160307575837941118193720781505359645850613773672458193755157012269508508466296882425338586643259041958784165564067588774827842809534358505494447022437986058586033261514711908381231235163369523460910517027628150901963620970755308891451387119994637610253274784256737376379879728380805043862580803985996580197215376205090482140443927821626072336669889217781864029649781956993490824006942877853693595896000801096059026998716968785199667258743840072630512490652975929716077630639859945412163310462253695057169885803107223891852825417359138022365884707612110628320920535108998687290918744530189217419183967769539635470062914885243193791161355111762712836974692223746913036149081443716787600438287270558547058263234039320148099869761084242558787941739880053767708933777319715661545938457378204508101274632315216334640590030890520817342696401428398611518774719447368995523013830681517935348352083744819107160677696612946449397480269872906891038842298549150553664885672642461839959328123100416078475635840810519925573733707203087768197871236239242860185346279955563199006986659880809204890331083997825289295410960936544273479489709615107902444672243511913027587998848912328709013217945528032318637346941622813367026513859013451759343500858376989092097167762045515257562969006642258030301879536724723073361921135674779912240438217046027936155224520219756119524375169045630834320034846422060945573808035867668343426683857910480862119359645146599046077626637285265169049260265634585509267938460115363010742911220120971095473462479376326365365505026680492347174253195551640537290034175603752148131359152605597937130419909820336820703677361966463245354171672670365129785684341458146459802429922896234361642484376569038368053760701510869263884824490019082546996648017684306032689557089798485214919261080557216729719222434630178927966195300622720176578210626231846448396230241739022125847144568690875807222108408063631586019201467603940941956435581117540394547733921002262734189033370392399912322114797322029100013627703804570215929163643735430574238643061346655420200935245061806419133429771131435223082098454470402873895438414011080466119409669196831739108767355529164408109161039528010300439381540015241226537986365305651633202962215780449681158281287184201398384550132970560822176450294455425710748775276602952640767217726964035197981698751130816634268098980564697415747377107889660972019604063049623557057261216224472886694747981794552437443693593351010436818448111303289375717395356479225952950797912035911076617358813290033626279397012295788640030070596251173447124729384767580915411799533145070897706690830165264156811416647700224583303924076598456749617796452907578006163993999406874022735204537196606202840175332286729663582922814735267928755150020944729702054129161861690243956284043632136305288981161413711101152113436825477813869969794488459616636300333026760363342553185906647919443838095846504036417354644684106967995618561418735806417156210729078428931584059200037809022896472513701208128312941065249074380674156186346394673492596061544762696125223252644246175779760083525524706507200021698856140798550277157263572939398637107788965842303319710403232619157383267601691987585032925391663895133327073427791540422133606466222037687843468954709441648698390426027798063470084069156552350405125859800730132921780937443154716518697399736931518925749438831317494181524359421393679811391986988088740369128093742505171558885122418827012222579803081918312632064507794033614078529661797636221740421776260379683198190183636298238255641402486982499798371621928716396575665989262490364363742493421024809372503586592955892349540900848701966479763936310421853791650444335251885784744054129526770256597407788326072935397513505900655899452156611179240331965564321258793185227543656131803386242060426651608188811534476763430139256043084621087150080183396001775902199219289135403206514951188583542154716070637781687497285876232920889130822150106266271310689400906702302039434904144245395414520904963483896822004542884081212501786343853178559495973843212609648731713268219062309952209080859806299208388529753856421237301586963792468982998404379733352694988104006923440954856368748016652315588861781861834489445617072990575585102635627649168389186187328269719027223466660311084674146344457888136852472793295295544236268200272836638347584056717636672459900188274213671516432104181207102342879440530742980715983811048818879167464014992537166318887683919374996865479544733119338906384700071878760458942869050225066731283820469345798100903522543123421458146029136224225426620935158054754622998903487791504819770617925419645221469015464571597169431596427601877444661674798240838563269508902513709967824445000752672578410988849768407909758124001611169555821434897886209238902643449539380544776166642271318887216398686142517260377755580415597967040980454302075319739358139087666265253591281706074907725527227944754657080965132822050564097189525956584479659959291352255933435143434081017631972181599645825276410512275747303538939982859489709656899083792014472675019835861757432322370423908082871424984909294533415903179392412787389960696917135109927520192873487819663036908382827352995831199732282494566714775310858752662941286902526487696497621300459730052042308433146015909638048167165730259659363968035963835661300862691992414383928439024268787391368612399662721181111633109894682651711953680757793648261383945018938363684252012846997523576445294742422863879140736245170919711460614676815065333402587344696494287472651068139919007112483693620457876857992971713095127133262019719415630653609125707395405154521255082601359834821711215779392087805238548280431030408615326782388272792071203167033933752973726754042577792936521097852457832562698073816490227097524041053361033250943599751052174991047028782182225764191423882074491132184899005303047502325875823211823305481650024195312348575594253914793289934300323371624646736340349534205856588748162621724521037159558932544723221151296101071908966912569921209952374602539832237605785064911401330001892157524072749821606173666574530236929993806760223724751197150025977132028313595606788218264110923713435878783018687366360759957101952483859613073910485756969532904126092315724763831950832936755635484664956883549713690847064049693168334810282272203794914430184157283228222162928964992854413260563948313720901567576645647988285743304204876386195874900688562754956559851597421602125031620587953617872220281073190827108227638360998294336198819379477720800042958733807448295613067888058787951836333904869158509413553075245404143829496448006824170315052096510625816846802579503933888358369165169365613687040036991864572343188588184663846008179915179874025697299231637613148413872493763263162623510812712183312763714440966767793981758385735849443143398844317410628550788736530026961649014110469208655899091265113361964408386120053918449341733940258297515470055995586738682544293806866424054273929228516341121428606823368426266023370056690346336494925936026989279357614919179021726595729374990242257308728218528844079310230626586267705684161117421923744159750873607225392998631766608306046418796563876141512231330119666009945923790151961876157633316480550185331687358862519376336203157341223152771145439534228779636167349694915301026400029681065697282444631219035356796614517850554653378732654334043170844857965053363036825056401149330407441516385380175058963443236285440025734445647532513968593545383741686754939713355729976092569768570756830384872953162683392857643327565223773322975365047444549490688011124186747954573804849450043748987554993070223319332348345113857565211823832099343062970032673707083846615013973713933172284983538114466279555600481540813291363611531053337524763677062011174469376411325184881680347706193835875721473958018771866230298728231776648414602847243339868477448770283403088500684899661497162581754711793365920218868995180869792132392835531027350799041549112244487732962058807442784319399818181473648824338505757163746230273375358844699941867784706883074784788440554549732708280778505213587659400952703431480323582688202179108992398411564959863620755473308748058899934897896608807697872219331308550253935750227658393299765746833403227403781273462257326146538573518299808820136598147723352975619703485733224459677688892071864874255150703038442508604283538041198839742636798313365970514636809779339263815658388534382791235614488827170250942009512548062233660612391249831783876493448940407220261098210936499641797536281493959848876097120560472066165876458899133638734676386002088804520119839801153028091134388403907680599214386304925436487133672940822248472398851541103878335900045712791593556908013870811761234628207878354263056710421224405017371398757087994457180340274811009982478607795950598769452488945381133915047862002938247051031045279112175175180512928990285456709992779545289202981218884091742808440576779115426489004778191244815686513614887250456389091872806701913589885901297431635584753647291368913729136508568009839804653187787676410659307017963850795608113873545410593621973235251704492627559542322432038732595415204510926477871538530120270721888378340562160233508085215128068529856186687368082517820019810177656788706452860168471880527772986044105316836800435134693050285688548198463408089134850465903560679569095421996726880847414408245211289149247984212000521524619659812273830083843565739487659359929979764447372485083847087227860395911768392454803527525158012059950585508164924962385769903399269540715822444736416361075465385923021753995269942531506772331055910945609885222995611239992877129336743632164489309487338366060427096433321357544714042015414319962958209155578869601525428249455216409848333795187749148736637046695172986053575915835736593221947156377042073870735692942226701449593838917456850257167503315342145296932356127523007903743369019563264948403444637016770013047587433864992032712495202454098278364197251678921290031315481336048181467012140904567884376669677667730450962675204101738576316916259658626545786044528682159126465220656180082728534701844710952030772285069386821074430226612634067022390090192260401509355122287669716708564497840208491535800047919260801030891054536391698601415045939002177542750482383565672189977889942556776241998015452370758131388743368644409101434744053609696833980907713534505301728652416622127444065820550742549073454028292310879065355306207455279598514246300255698295885956552792037355006357004483893008193793582122505700341897317361689057419097067958160400792763582695990041616055953471977118558669923586403021292509291158561218811220945399847541083337705099334262266208489978321079549801512745051060442535114285341008361891897095611446288495201136564382019775415428594787089725715073052172338446332169115492255815673303369099618519354329190917493519020109541149249830217870739220240774252916498861702267259034903343054542946223569368909879835672538963423722081608967646848760482591101655152437282126994748315367455699816565480391865728359335920487389088768644828262737091345941425401559614382425783687625052701480097138359657378038686450601218822930206405535036231711676293245497219069343855409853190125180408704294661036405051612990367278937306623587531592976150789073515191712878204803822671465584239024762630634382151109168732866811272041472017430642976100204283935478418751825304726302055342208997192199059755986725576037905711088049176610806683625459064234963739563002815702939149206255018309233186142938949537502561014477977744110633072479117386810365364075863324764855860402825744161064174604710050343199100908114741347331526116001791171732590017739123097893511080126581055558022058085458108923811136497086902311208614652156061659804329712964149070179298028083467374830832006214087085973140669396981864166902374517111133766428696768350178839968412877371954354644093058839813573274971670847600848505932628387211385642622392998623256931391843448014594557859077848351977053913368945504723300954981480055947555348786658215804898568225546601431155675310758538708053468542188277323167675423164882744984881436171318315996920360778863319568468314558421393575786960265572718992788724636747205271924170288541732183004360319302228098184135056328399964320642478881843524004727193612647887677028531373564476400366461106550603458890833596141044210465331625188843229447415673270231087847316303863454054841691285190710072141510990776298572973884069161734048587936295388667796307892299012724461620953942944793873264803822906460015080292764161094944130646263423811385601130346936442039685330503702846132722038164100426723250410661184820195115219887349460665341047381437709723772696629027621490179364517814006647639673195980046646354060914146256869995847533177222843185522784096086980434004811147045790000198873627621954431853556239791907028949000055335730426742471519042615956885775977078211018319238614554111429861184429790426623750358188052456226753953041926012550921714531954745037001600730177368289017539197148404247431750374800247443032412672382864989570307928077759844192559055111984592205098699030585613023879147730127959330720966081194956772634890579392625261148910089511072197710335518224843146966120982213817388549984581701298028775228405296900697571437110085561683248634055229930444290025710128172119147461624640292159154784259938180894357048676410230300930766356287426311381994014299028776088186297269535619008921341383026103016401763648897592919459878428141639997202714453213997669987937855908832424894174009847907052359690252048008824954197674390841574524403185219684583090456790530514027590752550255687722809197718206360188416234719320621053884573328732605081675551774759979511942254327181416474706634596520846233517595986746782143869155079669276060935903435837694667278254279024281397903842541268132551798304161822348395746555677325572754394851686581107794376124118587822149952329336713393149309985962502172213307286446025542353924697247077230697430403812804634796154036789238736505110157284026153812554451316390311894245909021673909184779728378185431918246327611631470829708048190503399037146087032804586374491911330524144782109174784054763880399021195137019436643561045676269256782934631242743372389793042360017666166660756001662821258005593882982195123172842595869796161222444632956999644208160143736339943599077582117599443354419708353808638562502030279403641603267869765980219362565254870500425781358790222892609243413755587675357898197284155757313856388503441655548005909707726926590097938452833480261673201775097466117548767936529061298359557229803236792868698787212120208231653666089589996133435047581593771172487502660874718221457851552512816218308320590453814096177933904744380323974734439357652691810753721453155012152319948699541574444783303735341244266115704677830336923063258925929482746744655122165263446120425261133023555852716902097629961447991307028973404276062826557775181879037431744469080849488689982655822135309056040641331526175762016641740325330762391871102123040317776694424558261941171630235147478615231367937503288918128752046495765185897136581021255855504609135143880161194809554174950066309722954566686427310290799768212513034371078203126984744607326612527033908902988845294037087899344978783113537691661384212266633516733590502549032633404638254530920380999591025002709959718421878202063928623060785808380611057617691595918690511089530120258764193033432976853982748061652530831274659610777886615900175060968529523219895979680361256189751177474665955259816935180043677809837723429821081726614783746953845487366575550307168001774809101380692246827722745525479207178516526794993163389124943800751325091305394840886093284284412035616139677169019563863011500533359520792815319238298872100031171360299436376051470594011955538953524293489529878368871418579562028639291695359158698448085372240374392513608475451494625028627799449431194316468134112017318188489052970620556757554251017576912918188225954832125610178146758528666264675850556746061729258814340925200679651096933184109917234395929718726172795851725055922347715298998390029853252259932851570286694398106576306314421616568346772107539456327938543921010470936002534559894888921994667002929526454641185484327421162102179949197127955052544230974151453896895892932811358980490477261397317360431797179226383831708948848350829117633706909488317180396134244970451433673429815135195955070482109830923007055933548914031251464196113113399110013572988053420139797214426357820038295764347593122191862975819693680670539666553189075907473939559719961649436591308004410671577326073516291811310003679198085584800250150083975532808232660249036780748258767066800382044581823670505569684518575668838913579393559713144556632969887511549549057233457719781769200038882165134312647298979348155008082342805157545032329850183137900419973130966211954360651377820947625929966500534483623653110280069782857214668471967267045893887938949211652152534413485758347362742139216370900584361901471796631040277883317321320851703273485779746729425090587207185269791512274874259419484810775118456428875633371544175575290766039751209749934853349368595273767542356247269732168552941772749442133168196275704584973799953010490117625718292630634383923098292981488235059529726408880486873469216363420804572113658554684583485866749025967649328150913947710041296933154941384636601771161444748926917985164728659637422981121247717632222866723239562277171341738135226143511435949059659750527674573276780444162955228497843218951695925959148713338564820158375993613618535668821877590169320068142164192742484637139107351221356094084630779626906278372013434398455856841763586368178577271806774981578360927158351578541881158024291076897053897620830122183810690295665703920005406707599972470785248935220779930900030255668137870831013487798149883609059349661849489762727680059439764526188936659148031171760674778394704389984991498361050878125887478001995079122585947288136696362598399371179083349114423956242334271704274256733864388857253847559507079635304227808825353743758612188226688814324704040817318546964758791091981874454788062278037330902289552363655737326142095880254006812506264140546626648886478112846248387975240243659462313850516616474092772871017738998529464847772319406988176867690289757803994634394503562901788363763118747819432874485361857205377360420205674092839000460506828589042783749927206110706485194217978588956983556136721276992836098200007789858807269654660626265079105635384559626229085587099297919830504859103944256490526584228795362512200734579660491574124300485888517142554022982300969178424821293595621215912214563773321232257129398070152738246505482141728749173307030184570984925663481402008983816534478624839832225430759387164124324662568690939354092201610721436821655494820876659268302498605244673050642621515769710120652805164861206101520470560553123005534396216708328615296203759351758250457256229807071905758592409780682252255400202910623172087778794444721830540196766743857221673323261327556000651908245797562319224715878048941704305074642207173290462663267182834036317394341427996384149835341147220470142682100834923120721551421596912224746291103899695177729047656447817141901736610135622137860461240053954781711026799602147271068870942723821469397243000824314787938718236697379767811256381536717543820112684811339597973984153431844361114537658854399413096421729515412401500298323880692907398564595623831061610891449344990249675180854540931573299663641515845155189695731285672817842927432095404053859789872188309267866248292655808020488315964104458734334140204872700712310301658604194534276537465155100009638552523231737331375578509025952763805434739908421710843992868051815292612721138059425746243377857701484173628227609471894110216011847645804369825100731853707519607964839155086812502264777234000215527010375962631361268219688101121426235455394141913241476825242888278492529946865249162083983089501940965721716484580913260991122570692809431781801772581362295592339883310907176021815341360786351746779761758320584817852860719023404404075149722344771624203862195919449376783825067793427719897736711782106853575275007582831365843598980089988893749620974007106939893459502716334212715218215070894523441915116946356034194805605783748145484246219785981969028216223999356861455949911227596071842381763148876930941886097654893828756102619785667682542352284049594834734124765359999786358800655626924175539119458412977768331953261652243939800924311053718141808443001722696426819335077692256431882933872778308230751146890742117458951284781249196902448415560429691669262991181711231821746379405988171280161141988206664680488507246870992512754103833336501477700485078209582129079742508564183919530768884096414304046216297059637837119977573020289142508247572278683027632132649558770339322905065954080043318334817142017750986575264410907262049375293725835044321856152974038769251429847552113033414596183926749742806360455058774169026727881068296452156326070645217982263246861442742042987544322652146365098679720539718134257824039542277267136218103332758579610407021859620484452434606758894578013629385421815617211873712843569683761821128947779522234049152610680861183472988621780057728174968560730675165740914548858256338462773756338015551982979114021526151288306779945434324608043609035512689776550548829666006981135952073594918042445467224552987898272927091380336144307417794284272206797107457573552372178841650699506267142442133882965104209808119032725977629620549852888383418306210820801096291194456544591181525766180255963336232201712908983957845417524302530183953788477215618133783738497137805174920811014969820686569470922135490840604866493628703223412612056376429139135405378240107145228505319372389856154390447862890522702002437401992843775242194521421127734818577458580232848134681836185023412641086218269518535685232642539128408526574616169774702797310406864009792427160110453697183205034449814141657870313409844669452017331683416198786800668754221120110176184656805098261920022856326003992141827237077461413202859135445068563993597870840445274048612620765495355233909585072583787772786102109907826679209965847100354110190652671802829383759992185410753436306345334832433440494303978304787335128822170578821911203069931685889885101307057480395897772537328233140558503949248133877625259707101958983007924520984401675886693425752831385911473163437143558722005247954727911085524317168281554008790689463135593109106642568784426724325062270834639025327893478853945526344835043276252971249714400412612559892268160863765220372013653741697100373704292124985639125922822334833849906538828114925548732716257068683145345349485612959834166661748358215183732452083414645175534891648092864402174879810937278336557044625967526108417947917627213401494614589352850368401511601052433171337690184299573792077409044358127139202989451338675994888954583257264351013473104185030660823526865683418715450834777228512215206871478537680270303303038163808109927259255624940536654455654139933169474959717137238559169202731969818411811446386730043431833198869951715330755871037808614639829498436475167109068547912299750067759191620290694038458157049860879006130487305951945985657176053683434006998404031166526713457728385785427934840902107794374879619246051932623638150551748594096960948879603157781633823782368556579958246940633428462927941140254370738942669078599907187585194362781998821154336694423570793398297359481374260856187578244397556227911698168673899415780419502635456466235676617779407433058460159898572084912563921847506928241331023877531256206604207344961719896421588777104815285653429884467159278880556254838625350092251208937241440011033444754018165179018954086597167932152610897283198679407251609485133897890597541449161124430252493442104540704490053552491731491558846614606866123319215632530078669333737116459274626146098026077013875151378536936278378094384819518010803986473910980783886180474865817005540722240045846575068355394104352107702878643779120994207949710803744992655740349277799247956661559406901357359701524740549729278709638581885698918882536823350088332384529943018808265194934971277021357350894364184830969104458870149001515679555283291382543012553895197238784495054171645976835316105328387367223336524149147631789148658162106454643649513155305317925328461148269815927172591443872173734849057456321847875050013516569478940566209584367110819094863482783204395540580099189160087031150613418935885291289383543740087471421371352190138574985065887609135917793505349927070847354076108539772169311964271666818323113593755290859640761256195230031300091157554402569119057313623207218719854663747410184711677479173731294080187243670742170142591285346321409234983991639166941700479681116776633631081675697865819612351729226623234356662707482198872009999082551953431041375472768650679351765975156863423534872467925555140401251211907184400360583095457744403157405457435934542125898040223108408608842215432888971160623317801762592139516541174244020377156265834669586184852276725247807517738527241170106772161069413933004826643098040953131316510755649091805879348331952410619972129868664322355610559476450944285438534121092006246614462481114945784375974693257378688778545532011697918032203789489035866306499253728284074222635155020738170539452930956989357727196623474115638117362933399960685349876420487385048720283473856896166372751804901645096698464382560405176356649781744179080724597275849303329881162926660889084488989063636832820328764877598320213594091744293202551847330365147446159592886610347423094540629767957316219637718063629498311905627999304366012513424395352583511299750068461790440101650225879874254956943065047952664444460871271718125993688709635468608235500296977335254891742636630219224927139727515695660514311308707186215382100375683006119325900382326151040439495225253278223440678732916697015722439046655002254179496684418996281569062185466028748876470011687310665924970024963759935001139169661882771643224900322787245932051426954157887287471726276178277821554267137705409690224678082123187177762233102615760233921053443420589355100751084551558927730005937629299759052261904537919517065468317229302267609206202506299111731160983718765305502557130196824881598982507148291258827789189811117760156163467662960851868573215166842013717657280310895659110443183343120229753208108798828109661821582222048655478261999726276819540410926707386581411830069380288052477163178288768677717998192609543250215090826315010936099465439318914476001414763661185708443712630059290041147733884079211070005885180354186232322842201166828639500795436558535386370678028634393920357544440596615177095655715387891836199816839299752840222594251660766169435647285160086428863062788637087163725747737964157819587654446898163606112963364293972994243089266333437409393326930602046415455650115159602895693726123277110330056165076845506671813498343547426831882837175563707930959456684711820564471447483824410374700198818093157635752617164993152881460986459636276659412183227894024371131760909742842303019752311888201864348529955789494103031675057145339731508318667082498178254064705228655612224650127434397597433153422661073069748295458575456760330834277277702771204604023569038723257879716160098642268777915901747790079120341573996203344422986766928968323882173560539669824702600337379111241179259418764356284088127204184086248619567247238024003208085107416073836752016691299848575063338766525793636421914587650062256233481674576237744322443132971903102209985648606157206560976539705063583824947055405956918508966842269525370213409741461592873863361333229393064056372685261510146155254879059756133583126772467297099107509144990402038972418306565231792484190569654054323053352406891588637327354396561890834633526289477027446706415629296996647274802397677318822915407760311307479427615787434889176240080642155003190597159928104650645875234470208234245592875233688387908821156985364536985394497581346858440381681432932459210793197453232585035953759301689845257226242341007726948928401247826986449320173487936268155004655973334895260264559767613831174353508322110854860070490342306368442771623213729497573864348746784122825023898158185316743962229671061081224352101050883981278521556854751952960253055113698166151423794103258641781270267712158247521739922790188436438450195619265139464728524776698843667817489498506944412121872273319461908414419581212692981834479993843642036703614123967973214921512590058755741301083306665250780881840706272255881165499259978862081718759186238361600001560049967837580213915822397833610565947014671020141421553252100853220119042582419975281719412395937940877021801875148553574325025885922453784839904840186950027676330284512510777405966597015521048618099695411194785803755513387417405849780018411849978866323278975324367153565049400745269934751541074016348555183291452551429253374040994505194048485522861690531765986509396507312853205456276148307233953816213914460766689040678358650888847518001950313601477835795743625337285513967774868301889875293358230130446501071309722649678333309183065750134967977406435148530970489353479591282888362203747156428163613405667269184738739928597230723589397007393925318591011694005908719411741887374510471618056342559119343065853335391320660436029301392685792496415862972454465906875613537973163380287060116136055970335327768818378517506119940708323115548578104090768976766848621544502500168346509009478417051629306400435324757436093468913387797340357276448200588546543013495098403581016394205566640569846443754863258045951313230680802220624444111332782995821296043414380612925499020242255096039062582970827501425252891211940824940693616278894990547739559446201509953045193577564945804044419507336989384820226287965932573293525168424580679888878305814457940579421363699552057887667202638664040646082780652144987695263268644728506526386862455627329942323161245951149312174546282150995120165595501117843643845895256594121297516789520470511163434553482101840938346616642413626530183705162917500749467274753381763746352909889743175257233303799679102804351502985899400289327909571860810781747317589562629490189456601562593866027310406226444574311280408009889771962852925037979923468674261978071246176618531566267997895662811283620732555947202591939423951971512279089751497461165063918831771900731256057886293736206638687524247843084392841208421377762195952033688284597393914075993738309701463404075103966897747174436260703531420127543336645118263134165211870641022100422423964881140566149254292945745224129048811717986472348420511433019020707555779501869262921679041186825327720332880311290852765555576980098213663421512708491354596320227072050284720174891963325007082851842214974610110608437304787165715921973292079524616482779722988962947002795915137745335535645639103310939725860556376686384389421214148366093080822165079938228918810311100930916473024900355617684734631295052909729248577967914193518571026916152115114469321689017898325730266366444512537524691970495544566213833603161453405811199714491777134791424469267967192280423167676140994314234611501674741113128316166328214835139280543845211033175463971847914870957293265908365374731354886009467404976639502942604478003969130523643297667808215220325931753620592029490061664675790614842811483230760190937044062259149632923793189566015293402430117134471114654879006938199576215946434345326033790283792723987972512103718678458678361718026971713181113688730461150392172162037958854159163911196154390662516025931623238055184173072990691913584551100158085967534118151527393330005562573496553774886158840147125539885956241411042435032788438890865964738320059554141638233094350461057518099745655956602663442383508681070479991100556118605941329014484337589718958246349773294072221419811999016313649210759160924870769455819568967348275012363972187968424986176457297073229278942822580929005461548826735835815843473323382071283060034228436276542538038095183298432631984462652255073948328719258463969374059053195492970246465708204639465049506426965284389876520661101317695899070369827194397890220937140781303217816058462759192734998000311475626797193423008931876675318575505219285422331344609859383068706882732020694457234733631343601702186739099672835526457486967375863810140429017822835970802694773117723945320075509016156779596325431779805804429946081859758564042242529474272205958449245988620870840498922639256283478248787771210530263320299562022907001592482718305044333317123927260827740537492120775709192000491802669702328702078999304874276972489060918829317067972504022956229818153852112600703061563277067087291503164412871997744829249173281446015413229813144134032624754963389451136508460090556417626873714802621821121928735943237996164139087339468651450268065321061384656267993798035897117253977284956782279626598817384874768859826945293492878827090402304616642055722002601018450795077228955485642590027613399168840872419257375520858027933163158855224945731702831347343368527826682064083779127190817894075316924290158832780758604963904506299794444147562766939838921475449959068136470604973237535729698372354657530027959160849025670586548691686809905048091311324223888596210142441619366843406161383953597704707334601942909272419075165780680588407210260150048344885721926953169843738165615457474820638671360163301652084701868734427601485312689812958983656651195922904366915274399362565855545597534431687730643264331404083911673804257275191783868038041672719369749562917203537686916787072920876577713656623499028852911891013255125893168545933295234562882980226959094823765047931161820218887019290479121543357873275179790322776042486755719362938826006209194955014476867563204264886591955518138967188271809227015782546473239533307154988632531279625459336661616433514395657793835470545861541633949907784540511368788471434122538703864495744614727944053074867278345676740252802940899659136367397343908728087492047207572334274687915994516535211294269220289976155993119507228121649732599600294289488062836194435261206465562720724034711545025445565851956172680686085685604364948630713195557016600115925639032862453880777277273534311969176380810688291310744689614989184862564175351083877455335845571008458550192517926753870097351168493526703594390157616169877239089645693036184982173604948559900986493751963699163974482213535084978689238702669878358938596217487556875538126461010711308349260629350727435556554655534307178112417121739412599907173204014684494243288855483279255054990426901374180298466579286937624835493738488170503044514729198388292163547048285552572598809742760060721476351593235311549398244289169700745857079932621260481290852649600009641198686479071528801099543352137948396463311694557156663483639540602736023964644693741755886519790630578540391063274689179336355766186831536562239021732706865641189171063190246775727759267190774464896789878583275202712261198014787281817858938719861609612765167991560615742870752912683738958668627706499275356426331739592198533544368583393957320645552241594024266293731059601670794506018310972838463302966717712892163701003446541660621386780923834092650589043460658161082263154946832394778256895279361021928684300495243088164078773638160470394455331931242470539590461773526392514754639332495134238401525519140241159500971633032961797870214976614460688098605189705875375692379652775962439942497452567192926526427103218323332562565344999317403672177848429898834822994443462765355573784061466220538933732761408737449649700966318197211725421815450910449477082365818654307861985031942233352987613550614564647312936696885396748430487327192123273033194002642748377723997884878709791701498657879628799091291573716263959468283376780136076834674744452721660312960107594089602207297795227056602727063288811469324129433696246954995213883773293778190391059339617889907111606133260169499243558944077603098692303235007305858980522350676429499350867380751642891416624317906742532276639798350523684566239837865698549529808897641957295382812590115483462482749458616247067090329701952507886677256390031172406267301864679968079365389840378203077933325706726436254036640164126045975254281348028370689112214002735442852030223511377224343076136840127175710868075292193466273003382753633199192933166448181669633832407541164069568679393668776935726633185044175079714084359959849130684873077282519489846760526595211817791036657377812482598466348073450316536095979968956701614618295107193097433648566092653106150236621403921071487295744672287964058353077049138741082229831547643732486057162711142750791679630529059645049797111201837299668281322718363543460268291745819343273900251306954609851890170169397182633513682336467602002082901681829274111050857104097013850931344540243655011814503176193835302886284982119833129370097174903203322636198864845248842098427945923086589930008485099315769938600535059832379103014952027258692021818100895083316591333528597010682442080899123515518520597494491577614391624511336649164214171733214045652772805769726302520968063203665450457636194426856692720666638718529754363949184049995167964745192380524959617706851935263240497470909739774659698828749559116375408703567002056013264054382398585792975597053980849069446118984351489900334936568146143052332982081255591812082973532730683703141277503938202159299999407879824415220457873849019606211724067791171610033231497851316976758465309347858500110901013381744199473281358507465286332106721426950933772023654658509411768989023539723495962499624866278652860361969683891752536955581360716861198102867982066343828265709951358967751469623393253701498699774759936145428511633797002043104093644376836335486153455091659147813213984758762861454721968696922136559197584318869239587334921513097079462236867127374858490160243614165740542817438136567255675957053190034975495655858653278226820896817849300385820159869467220558738288932701833922506218457292674801020762259575490894926059616235320695521598288419842101385286620099622895081219537351564337940444987183451195435139560984237377785917544933143123920401195175736206642960199156936129490452377758297977277045801777276354956386686783619193392298937834016509432523790287540715157934487757976845741454909824251430885951909770567841960795434358014970530148227077968276623943272892120320898828081668381595127798194268706599880289868371820417827029393555752742672137644205576743674267656645256863990127343381517689757732228313000409543279142528712921977617300372987403144415970248826333609683010019736466965346716241078736959733010238214123129831492289323454819411311943332841158874554909231379817519253343117175716069994213245849895018735643948620199681929546721005794524460062120026465008162847777239417700034008954322941682399057538038950611252439773437372986960912214690715301473679336683858441443573110477364864204643607750780526523381485656585716153825662503618227811955712563851643718428867461095557657722150525329368867734673106398363512038396167890252058415025043758065273639592737223423561884726614737403104969469582113979757215936429013731063381501181428766473167671434264010930773277652314059579440654844599977664484680665290093981233958314261904397142182917705232074557448308455753487952328448332106383707573179877512288915870972660801852241724495145980013465486152731003518541844734895393750989822796608178288301575152716128873032634820717479537673215678780382131856194349474919837771825370579951919649912254366251054520106938275982614498714084559625730304303766473674120416267114493172345290121116623825534792467212082456089583535806201395767645737916448084965431886032597898131659400450009828156286402933917320340739736351829473112757981993093866156960698689991580341376846980035857176721240330907304930325829999492767035760655035815815546739627805261482771505258389989017367940905669899929094219123265961363247593811041452155950760830712751713972786499749595819137087321732160792479962762904283849474259671999811355794920950831121531937467722963084862224270826472154012208166392393386954854754475586912174273762245594661596745109590043203067233779802125077384514055446163268259641157766445979797976675235620491129773191357394615121706726477873629345738172661510906656783120806285358680254411270309667709853004323634458940219445908116658328927220318616897841422859322880490260033885651879208052259776187864180839022040444664499539857029889465438531531104097844688284291326141497890111311985621360718934538712246177393123685460377983646580310258085066831235255759261719145166727057280738151970836083593393683151023788133549845506228963979007498029885658520320851071527681292462012824990926351262867267813469546992250070006212656602366504460419511741817633246713223508160649758277029765779978943003841022881015854527010135754806144285945814671554763353357130258837373280021585505802719024526813337407124076532766544409828271319159269217025581994542208432716271164493442260975143268328333862831971942331741762210139741505348685754652670140002047814127284879601287709489859190667178500636827330723436545778972181956680912854594076048160615347224749448070255119969900820939781666110956254634161351909138919392709988628423815197805047827135935252583887206641746727552948289049185581128221286160011843177123363307299637519406231892151561490848036377020321823873570005295906299296734535217877561657297208144340735707589814065199269076277574476956647420227579827141525797820648782705564813638040172762411451491479961937654472290590294749367669749926258489112752146742240875063606385849855384799824550686037757669268531435422524957363883589877471627899592968443626130354086742814690831488963694363813659344146970552054648515843871625252573257527287406684475097907610602713899313362724209901908192204478387562790542147552748381889672874605146067812975818852333716613563263460773706401930005889397487958387475215137460499480260498075800475075978189511867262111752458574026682175519798549526005942958857477090443875616180941466205976056191062875464439388584230836031858606485547857660361364794804984455574220615379761490427492280550027608140753184417335929970912667141272399350756221205796295283468578991961926922515064325063537937368172277207751862013486343932204548036066358148469060110450506643249126479067820158697470407029691241253420042031836253911508272650221520431277746617884173269497355757372043719238712603470610906963562232682833069593152986410375928276039619165205496429461093342434005542527725795757316410104351261323930459739453303669270215438392070285479615385779329148311005566527098247218626266500361212177852171896926083435648143379534611994210525000563502725427696697916153032353087397278917514190156688092367433877433053730407712986667354469293259076207157829680875424995554447527544191103837863396093106364184870965407452707492364380229459568527114873988305772319204294348517875770190954011982834489407569546151036548038009476527500629519438188642866269261457713202620241711822119396174481300435720201275670195250144762376096033661635236974132188466308268037287023330801022534320648108661204096137309127848256650148213091128265911988304856375499483281796626595245493442530685220220461129306570975198126274737976131385326921981782842891505333585448347919298262637847540571009104697994667161468850665331097133903103452804018031210392788697485647243642991669580850638218243866451327065130730955840082057041656985664226757681343803045836398944186449649872444300595134898638728054235516663573607420180350316663311231043407556577062579135108452767866270477847459924950793353678032280028304746327013979519228585509961517694361877864708428952206354502819978911052079494502943412941622981035209101354745238514884524773756941392304946795872597510991375353529765751177477873888489424536169515274922279901553262728078420972267118547418029492349267073484972582105286434657515303601305463665885034760388867467881550067597806981498085572142050819913150463017617839492267715710217684882870384045341643807739521266786970466377463367048034095083741751675114318373210934973736196964923578841636471740302989300290893724857492896211397190209232977477231007229114507276921117213607560928258765343448636550764198864978300963466262224866894430840995777405994325980738425210592987152106042832629326647424243184708706459514932633845185599776540432592619564477312616744496012396729205056901627345601910780029814596772293461041736284609763329562226288396662518160179619916321531530339988432916288282112892539708254224802880811936113131355913430800075016361786942365560776740816371734522025737115510711064256208758792269067535382341151400736500495842062423416001023532441697039739155661614040482603613670850720998977196300077308899380936848595006081339381079001976918858666832364896801229489537153237328069000088934518046655778864922372327006382339996787221986515508609381065467481071229045584371783045214156287876309855109504276852302739504183234409450698326122360309835985073972022714788872502886484384705833126413530506690651752139427109353967720694055520093808039398407066606356098749101817086020875523957329316083801159299052528243055326815641558639597428382296331662008359158122603480934001773342517552035312664929638656743801457176585410560623435376866317422776706405976189812958184279719604281578488852072845341850403483979846949524505949681713544459220137488185497304522716642186467652125074585664301548555301779025951872058779499472710660329086255245362565734181129881191829077631331805850010826742332478165183826868958318071704728346303120401479904117048984284818503223866971382365064136422688230018636256037741046970605632053256904833983989012224494341477846379814948687686992860735764284840053097191526090906663926986606736769577319334658858188391806989269842640828955167489545129022261354740196669512201733536725420378511409588984501709767705303014082070355210028094814749936481403879775398690623510710433359781047362959706166766819293781276017485049771993899448135279103967542766722857921836556259151961300564867772221686167792511275757894347331961437763004420993474348145649208107897132522194865601356938594741258378149935232118664944044797633059403972852374962498445584739081292322360452818203413518257311717903140280135101979435108817842297619499944600643849465721789502473035941326522936392522621922511186907086723277925060203480939089195326718490844218899966768802453724837277279220007785121230849413904683358483243899981835094533164557048677404061682212505170991867528555144504735851689484238481323035147420188490842712251417437709419737867772644880823399905673569939238896681877042329953120575748173397924779099684203038686426512349563278485636510473905722456973996207558852729240563167330951732924572588147749148879044376383218065768301156774396376450636841318507472024528999050632743394508781035111487606570147549886068368094554880714359091395747025503959470968020499166324312909018515040423569954036502363577995143717792646256517212722431436490428874392045271865021257684013917787185626854038523023539979336234360795454293468142244371422322301068234237502291838609947950262241805387950999459126317024742711456973893521072131046115595159616085327418022962023756537875483737271921894719493278540117859770492481828812114481281522211462344640270988425659912675251371223428148430340309115531477724594388384606401744632755370154392337844014665941757751756436006835974981231351871212603341594751292809273226272936150728467493277930537480328198510505957238860151823505819155451217370860007317838666713849449450050454683347174510622157534714229518733125646253883421223770271572847783002806021692402470388814955828493699368075116542767988740852507360439417733420735317126579258330124467348886334218160992066014163234336033346162161173387539020461310565243001596675190670443316799403971942664142448194475517379014838275621862386429444723953085306124475487466034963620953495856656968899474822372827727750709467626066235076211323835761756640626275197006202613197193614728162183962973463054389026439964769007101249449720133574261888162009225898657648239425873758686026503065063543718625214575450535014248392947180342882696238707108822940954511062744176990066049821085538585585201039012547238889043093092691339226592377963418667526130951657509753297022869058521796226797891553534549412963163813272466436532610493935584161902302020218362284184994855342936113363963501023047123910186320313398933501657236482643944741177813851355544540346707193954444074978091115318330697234503852921620128764351340532968512259640680032540680405096945729060696969858268018675511849506708886013331417356341482860800065526120772774011603582470266462974916030305859902620094461903992708148793570560206770625694536316899405312692393646148593293806169455256502669646016635006039552843600773226114689731859291923728673425663048563448514762441264331434791921768581388973273948638176583305979326712251502509444592677095474479599194774547821257919419928029901170576216596499421658122535359083359235706409385180871801602288019188745761498621766665972693437490666133869372840360348999162147314426688174915138053269731838687788152626794187155003419605871951667470935318629089057354773329300185161363555786145772037136718311586730790811364312195038307599201796274706313523016258463030602755278280079234298603415959355785342851497141043690930561276674818111883421938296441335113301560059582275619867203326836604945059306171697473961059224651812558736054247636467815338380412470859653197658780671731531462392399219694091433399057316572683331045007810665034994064561998804319880237865447558215673505797633775816161365392331569429664059901856851665981458841842035606657338758760839766989029668017742430021601967692674715121958030022006108315962344862275218457180757324036102819163153346363915758219344539563756459175066772526613348767909779894941911772762931910748375638852875831117117215753026319622838428169922215292749430536315301991194714044250127098959977732470521775915900262827750047013675584634144690573724344092345288822091700101157851121173442688388219572067393094870007367022879313161290705449519365963316222550071517146388206771107032468026570233513314317874315314614709623758208218027722219980256223375590743660199203115261899125983235959051426001336331570587186433960662665341575570062740204918061143454277931166231235875863953049904708967542461044553883780887592964925483218803954372910125123214479434540199343085797389542115567241903291564097095949139786586441800389194203781734754502129696255197082966748156340856767657632385295511567641735579960257069199244935636256837574074215764181166924977628101711963843878480735658428309070648728936133437158706465239390423332623467149466782734245527588650516284528907444336089545184584139248390352338538284335456987402147656791278614682549916769470506850867432042772223995037934812741611234648677892036498167908305339857472816169034216165369039216815662085003938850451852150105381048260041360430893284173340685280097898705919730147715579997312523622024764376666303855876003652212440929240876713056284231951709465114609462994577293411515127384325138418007833450095352958077377901647269759611268717867748023021261069343998187916046027555450330864773343529167165577834568133896044353566380744952762137258645575258993453643432815620670110031650775234576784067264666783534957217857604322113257817512543018921610830272807404975053226016849197547158700395985293827030243243647453247520674466664953496063067307038737519548732295764493947502729472554145558292129813301411651278467265001992899559369416739952019888766793395352719354286163276979821660070091096744405402352178271389812958862842722609314124724412465832235645022499247854909382602955524132721057359922041974869087979910068209915614486853096258708758264475701984294637732784444320252178803116252590483777263354174585348250247485593591830507186830051978797857107469349386115040741078282883871162200886561774752219443566776312684538151660669235723999018894225544974783314545945870806423929305719709394706217232523626232682274309248307215686873005492682698804694308486319473409038832822329385876100306994490754775353429749609615183455531876042207930960210167748669992314611416484207434339748070620227868908085111896866680670012237050342030103898674743122562967132646183007833429332866433240253105498541483977088315145759798219603408840778081031763867230255296365917744599706007081230521228644374189592371020341094203797356361376002056003821760745826257206431944574992301342397217940485422904999718496909601803455382384240551712910042317098274397765587001395038889996056147329258117160774727119891948221242874704436675380826464663064722211306581247751600712126444608499035334498612672698717188125010916962400586042518565316717942854167092185978561879181795685685707795180996818279112234026259857428152637496762281355954010410936283851658203380500645774831396253421612884655916850864706137054651826333319076290974919308620595309917631259951553518341981178419018958121865344977138987318892077534360056523295947609669289727463167626650580823879590931454244099793526135798345826010432507651403842936962980607462009558871072772819426414060059416159953931848339531051025886171388901857315407836662690799748998778294390242244229898609816151358457097770161804494075745608628151070649983503075179513442946173814826934132145312486220371970075489492019538688567905030747122038431639879281376709175609968748066181628781772485334233613670542306558154262234061481885988993111852936149201121636902311990371019387768577551088671031542004891374764795044182522958720636645464085275686802995241657792441764858812677172073530121210520805578599736509935842732552412417655302905548311323200832843677613073469668172901015226849070153571611997726521685246368719782806930834332116251202903808939380164008611174970764068286662794969372923318333014598089459558481640165890928695000937299701092914908541453985335670324635112535155005525407446828078495197860914598906806752464971587367461479165052809545932216726349133799680110956466218290484932557549844958783625113557330216321496271122125158356312557536048452954545981139295357915385953601897726638736520507517420690960350656648682652619087225823084955467727236658664054111929696570107337341402876704474317604617880225834425115652297499116211729489043646745513081408170905932756992619395909385827378129370822720366010718180201227413437516008025773239752906184691306089782361874155519071859874907122530686112955578883891550164996747673452904208061066264504098509498148563151052306028641203567441780750232192416107596683071124002619864456199606788106068194754079218692889582011129538376310826370115394175599677912353364161311126937037796498005591008158605378363838968712869580043922335370430180891544721866605807656479107782279691315566752964263632718303782440385045153727006211445303587104631334616736264749032558089207599942466721902235160874725637278147887427783185164135518664333823328126979959289261924137728084641408611811528766205905596349182043237149560293103109818819957494790977030552875318495337187917448460000537591245426545694137686538563271312095772110963909702951448049503336588903492210841029028794773587455719241395550120522701599306528596699866766208049233312263631228856978087027095638993532474110197741887135613214103469447803931289595944269296338843307917013003042692157416460438075207109363667896410838547598965115575558345126805264943127667830818087419853968002911479895035952432286339986137964032795613176285579937655697250994015681233057355243493932883386276946589232241107832893778419752549409350613006820835751572120436745840601234396650190312855831006624627907561840796960851799889751725568932373469820916297321011755275399639383053039051705647014136244237347500873172778604690378919724866997342848117586125546209667659120389180312421657608786381011335592389163773729342934532557172545362773130862952927468329315407102381437872271873493050140403697144785911704541514271187286960071206409443224601944516068424463467285117640668664083588375197853996419935005528448563481812117702266476103128849131777556347181295043496786016361251545283148695591209728206785322074580318694236692119052527157988884558416982515636683876563262601764141416534880085236331394566584342562284372833976587675866626429211735059504798272048267498042281775768122773072727274336558107964929128574701885514328987644023440951524874339054081765516837994668103934845601954130333589877875256159252297998272784544020283091678852277807770328745088065116218946724766543485948574776254640350494633299287682663818688827456087498342639516346936246018698455761556999394492518459165269855000837285254140291760995268201422034295997795579806343343870595392151734188317501731611564009823843593058614392372220029966152105151394213575283991136345453225892537370357020550379536348014126126031634009704821160333393062441532480650080469502124491131634286223749906078204368637991302238696696613178721785270479376683999282849697894699389973213197589191909194143287746626357533688950471523985042804878555741971930155411056284701651856182716370113613316688591752902538968932899368888441253358242421215827900658945346760994746523242474511712968920656467899256691789956846688858286997838926546158031897477468084796525271107301391078412290224761051058579029342336978074089246388486350138989810520343937302472569067228227308819051649985881007189070827630790466710804599552186802098563172139516912381325421328575529273930502675427448872300535012639676448523392037235192846702779009384782360060628165413745881128563714190575834526406324659286860757081043536754535661943162385453204245596465076315044357860807613801496111236792061675162059144415883175543003616288019026504736087929407197670643724927708830871780641995865792910969905598044636840922556201998898568103030041223313723394182706735534822378587963512631199067500840010177107227223985072109366791223050020383485753275310817575927612687962460763715355675990663662548465850518504333657985798126105674261628297563224930029373439112074473198509293553612990258433404068957100939513028416009383743636147349351093153331726960169636980938170214676297708987460168596096848451227043366862128711219635162024785816778964825684986877810501531185669444180734320022401723877291875375539026619355077764377198229281359388248591281071980437234094199092264177384981215850828797050718353160785449569954035922555605523938712794098744818024179695790615265225006225606226546714011013056436660501307716357481350263587201054026336837114311042372603984463890437295990816042637740205663939444474663702343704757815255571939671108738202569230095852895068648417913265361260811745964980784635994239092258586119548485108001961661691177700071032112531827688320243390297060976622859392875099095272143232757094838334191698138467646445277909845746389758622188874589587222592694515767109987396324837839796192521797645483544675796973633552587244470820188371058605604193148026474682124533548601334162935386052143899287649340545511138961560832174355536744847189765837162998846396072464578366870338796846669422025772074065943564508482625153818742003560582177222440766590199958126660845722916483821218191096981443519352061783734265765435002001179366131424507562269083025916629246678783967713960298368069000401708942923881243255777374830166830691986617009543920559398741521614690987172203471249822430291905749412366415411588373246970273028330853698715443242831439352020645778439021667075835877871441196849066406037192666180846545343921679024523606070569875782564917053054278298550441498071953200751873614894286327600455495695748129827575566126988676988906953956138451351989747609656041006734731352912954010099484759979073286351133956642331184017866637679995537162418524688396683672935558066795562944450285492114564302551767859478123401982550597756515568169284955924233383650895228137000034957747000440943749386844359137242978273887979533661685237774329536686205268821332291745995953296826010836390237928616254922701636449375426894524614651040532318673174138383195215880875101972311081123156265552784874559270604115133925858074808567016656766639313966810636138116077942989626941733905305033265176984196631106909559658522697320544086537040262005836927402373443456137468184374834284392223725058992634796832940578556745085745220027307970830940515440749940894069038394388879790378112615160944353195949638911596952190704148854876196663872454007121202203412793236730685403864172683819024902809840635830601179818151525889090529766299488896937233121074911086593533816874005217022852874983532987298831919546383700962708947217655427666475135460340144483652233924915581746713867304038444262948116856747598164951062484478768366385060357849006346174560952864804198370316188005490659193268094616277146466332696820009626800771854732219231066630527929409897653746297632547883077742162391321881536202186255648651907080770805074748514653023945224501848613503006338794593730327855831489942565822298366751887843327518254790909320874396430140111831550315759986279478353324329909313229628462550741947337621852141046195193123560355470724207409689262145963117124023564140063757029442892630861741513872883360170162616927592062815549048256496336063713210537454680796113922151845134444933730478586917479738582381423476098377897229516879316530594527918008966534062330876567000480856711870370552870498683275684684105784180814070915804391994256291946499757928036846375824139410065794908641959049807777030422829434305498825148784614103538510909247283974618626290318980312658878841655701458855842209692067522932430552517469523442874496319837122931061248708963584374659599614269291842886528945738564029696310598565395134292812883620014945096013897551527211117551626839386656888247853819159397838213525789042582238379220722261780580213936743468424231576709451571801108059979899034244964393371393346526710683376823754170473089944682140488358082525170703673570020804586128962591567454789103800882760358691800594541761612034816041480149215730287792153100305363124644605041322240890680347273532343012860051132452935124917818785336359419725502172966502927771439463651513323190087012769117950918223347763943589035810828369621773013532952608386907655358817464636185868305399656702770751270460188443570668599302757669231292325052036759241786304867765594202361685302551882858477464666240699246483544376654474848944305045244008547214662691492938839515967338525264892641143935603203115186423706023625319226254350316383652478818905689907710147920157995381257433078934973785652457637360633738166308784030049571215305800424192042221929122985001075851212669505309080266761745316918396219496640433492570679444752648709825196134700578502217223857517263846075285595491448990866568505564742762219821040270705397834599437722845342312810401072760118682187322693677409719661338020794854234844387082304385431186982033630364070015796602643081419040258372403307484316844844005517901216520484200567675589470200068026907443046134961078663148458272678111108187328018254183794271964037958913575299432370461673765154548166075675790613975348474376565590045192353344542465649789779929798288915714217218392288819327531147580985662274662560248673826094089033056228731888731948001397412186021276930543546723701133678496268148023569140311769064803142724818673701000063800602559589553241143572798004612550570586869040766428105779594988282106657040395638793090754760080167027626065665109414661690753735666013325439369073681858810666377967602511120557938627320393895192563955237455179667489074680574793318388919849613470102688304556647787103645161868958589436150336680558862724481986029637083836633871407357689603407018276827953282921199981723834780161573701606060708027983130689402490126719648975764206714828748266333383863079512807058988065650331040372037534483228804427636967539275429703145794917308515320417988211678830230575054160094059792172681144450551485906747890466951113966557423830218443461946408165266525802202721341253028141389654796527679797970646757732653250623644628749012987420770661053488349337291119801684986140985940852871354088396601312864082457800827872192857063444333580805886487262034448776587988530650746104033227229340586490804762577115237319018088700091784432840002010798651019483493031113723469648234239798971663547223700775338075805962192703048512185067004662231670257695787285352299916034306803234156575636761259873286271293134307953262055920824944285174295517647036655107147685647405416347515532137062809972155024669567933373221186404192418841476159898557893279868640279802551735259002803827812453554189608816837647022747848441307237737314265408468551087535321895409762866255862480401538128677355918725302138413179535583697486941716172448035623988023880041678257080229765494671390501408662783458093403338105134312664001576167752980113534000890964345404636196003273351741535527630108256396083833285608218820392365556926190873917846733207962782342987148996973936892369835264657561674820753199613715772476460004969807032693294673446625820560375762446662986602945674509906630429542392124541618689863777777870182646195917497113769201660970956240135130227262205870922221182954110035753729524573418681472540092876732610138744014363481336313379668230913244807160766685336054210736171359828466953291962267285996076582515289098239939083133760196876619472084407974192978810027922906324892668141894291615410285285690085702493149369393838374890297756471421988144785436761132838977661941642165823653823398218392978267065585152572947319089325321514410138804129564045319816502271304563598775578405005322407789567067356515725072365759836123108528239516254458781787546315196003823001408337188477307886992354056807759190182001977976222020062147149044338501393804772442845093493726100563885888308843231513753284681907921680458943233968984459196946416845060763466849239534531645298827028867702213794560625638394923504198734189447080864033534437479896865244526319974986517319788753737089590169150775298749572203103716810138793591590844121979226452840129421623897158204388093435425101364916852318142034137605383987660216560373158181104837561913586764644555668976451407097626540027328925856798341913554594165030563918177765348733703006167899583469986726319969277897413072320640196913344077233973823795424781606295958949381275880467382192409482950547429969886995991179071935534269920026535370187654434550452146364236516612397717514473479431820677366963922427212084367329176822159117068075304310339131517062193106460578647273326887222892358187331302393187287913898686764432041237385346834228860909308104982055370093444141048235267407657208422851901584228290247465824384183716679747319559953642240984402250081117838001796638606439876224360367319700272126231907605294529066930730968759248136630953295569154636916707096607758145739107363718565223017043354049674186708293383186209963364268899443666287653061052948021888045422390905716986781818682112250099303825488755780038831092520401591141291054806422792494778121522727232279620452299414299067751037483204964198347114979816186918730380591404079074580459524902289770128637187858903483835351112085246467175253201060944240601358742401543206294378607481297048198587681974333731432812383314300249065506923632552535802388797663733928150957874249574337158828572509133007763477431520670160667238194220477922109540324310988234112941160631125066281207589109944301573909474658235075594437551777667976898425633713508954402344906178608865224309979556190597952749883606094318041899601837146852439622489041169454373825527810576956142095758364281609014724459561936573807522895742796974562190050252663537230922465890765443957573506809509016641287370099508815958508704684117190004082413756984126957015579331963165653537462181124686634567871799222724774042270662533063597085696068249230154969307545622059459898589505831479572153717675494379459776985780707598768852188666915324463555455521400110050228043153202449169540487845940528665519909333015785319351670477199235420390936186974046287953699815401026611867554612750044755021395681796548533311701497039272135973715704712367317841650051760866945860440771444771870644750463622756705159149245050359379610805707802184614048412166597585182660625246149508947431086860013008822986090774891480851283607169413805086876105610144126599884211549073211746671625458960175732046289248207109712571176449082427905761809553483269792937293966431033264623921135519083781352859193586344078765437676881422525492262137568331154363377415870129105704186290835280475450376657102720407561699916208282131893389632765703609194044847152529789476570879389095886200050524340591613511893962141956792152219898972992971533181599574479464737885242185501932464998009221227430826263635422701818619425415611774100433789290812286652203710500522344142754638079362373561176180319508180790881179975339295085262025174746682108234088181898782460878118115235506821857086359644763883663425960543118641760117261071594289066374608328568117850194231831273313477239293644071452848653077296795476557391692931516325347515034226902002427934092104687234154125812308167285782721797924042078995247377153165645973220052957387068438851506857605765949125965007071531865227599119846532394745030613766874528496473877026341064466783865732806119363237382340873843024994656787581883353744800296223173166404447942378037135584262656366075013552503092977908232494541953302279389129684031751667206027513226039116115640084711058480053433869310601376137580841249300747623750492714351020691650111297029066608205712817786091929085197084685079103073047777891883596376906155306825701631841651699977453145617912763260798870341465531287997739462633648269970267300784992899912647878611719688699195704660342030977667297175996136909954843210374957719422817763197809183981684969568915783088527500506940787111286923224297256926350313614844718498722745743554905270936805771059051861904610421880588000331271679475345355359426434138610484254518476277656465098132128763828091710092635880623544277986046958092849287990004822598928440612581939438950666952379583008032083214678735421803413433137557013659127815643758468490915965757088173651672995784228770073885480819541488308371937303750115001495985877221034024432802287409005714600868485625871020627595737197296228643927472410062383360618147720977876499032940020182841349863285406064093934136355203468711861788751787843858471776998315220570136796648087953262084609991618221543354679938177818579492354213308468269786448002109774154234040022348823522558798598568795606815050343116095338955346629401244416604410837557474067742599194983289620293334163176477007149381088370343836646859738662515358798246971992642868065153722459380138951854432120150239178133390054979017180966372941971586766343531696619577172674382616794476813233318005573209407820197993332846323383053846563840197630375286893453909572053326832189923415933950398349701143243233576381719002755691290188345618222999033824135218645396679078817772331666013403430185261772141068244004729160992302076162166569072616044176779967278013102681437178099391502861628885915548897819453889313620808266551059143989567115480655361406866438733094450089554650278775388236969390949224240978505150156973505254698785908262401989534258989500297792362938855441032161795868839939820300732443302602828184749824686291192522447715097699767604935567189595808448097835565013919693088921489705859011791966174462650321736270732630573563134384955476226637264138543638303610240703832668280465829287217113378337889315433058801081338773249202578120877964802772190807807721613464797354234005101856394938202170043860107613568482988795575333541729365559708298629587002812416894411292369274778570718294180033454877549272143388936968444598042637284531024405410720729865208941732848049651552531703786607407187099730207592741923097003511786559772569223228921132472721231056621743241567092696104064104154741008460664815954789246101478582952279033529073899011786726884133185875316911040755705672134583816251348081680183981251562572845032444622078889934797365740059551467478014803092575365562361874360583083088882567536132504544994351205651436795514372905411768538617532257528958091228497790300366674336106685644650397814160016881652976385709806763699786005458383275024976050530581598368196456833091881028951785716238683203332801191826253774445592575659620785099485000868546046028215668229702102080596308413254043732680835312407823949644091099499413842926379571525177806467527884727672799630931752850866114829714580593529249173557135806077436140990954201495280393554907657868112894390726515168736601759611538761179041306236915052997095491052428245836857092619913882210866237278546438828648985153189365763637203802309263187418775500225005483907022100782924135861877929327614113656631389205271124618989173678857080470895107252639478887391202853955434906193368111932598319576217235551114067492451918369851440322268555375687053538396267976703571841694472389807488989472665964806906528395147805728744432909622723012251437761774328823767094582869097973099349227697893125427071629807767326917821059012657303038330843609076140616714850661316519820412417037565652085155903871626343097941633036958902157346167540181589149026407834884457059205260464970573117530742076705591255613293221425235764469147017769724093670693758013934226313115059755188413698303992220208868177821834549491896119385180021103319791523360140949248770574108485853846003473552587833095268626468094018032979813147819882811284475868171236192841422041852778395984622322511592753641517974020750921618519135836339927311251756526708598798518572900313120085601019779160919118075155482481464627235103404253062610772435970131237994785243453825829338876975119693733841931394355278179487088526259343142170316988610986580671489714561449556043426685245370800415514188289712559481778472942433470536712299244079871293620970571327955460035933706925047701205865297621630317597358018731202053810084636906256350361019124777714766571091661147342757389277975885885654975416509040251423341405751255666582602352447227337346099467787526377584414362506247696960719992739016210615619533406896961693083917754599529286515130242951416797108657165054551064767009298652798535333294957522594003964352512655690288581451230663434268441313270977855404591458070262751268655005250665161619893456409585475213398226988157909326310594389827286922222436088538366354860958240796159317559495118617930282796000036835488478238058593661224824090259522658874173787337773602372482085011173142517717169975710111574419867019328470367552831191936059563771496299589767862332949136191773221708566298190320007148498889984451521438102619908021240520654163061130045596586245329304729399357613236928356761607455870129767869159675123172752331245273667741860035049363401746585643774890471472440914317151362145846171040407620240705322780792237724190016261698705956007894629213430158048318691427353754100199107266974728981226980497105102049410625201486121790408798851383784350091183266066991376377094437051246962508738797807412121707247908406943702902933627340422576502200073188330462445727296511130389225807122879500877118763309177202584452100527942374053490612151596783039167272410999667497632039679511768424321545960296627422211633986565240132598794025135584845988636944564914032479009332728872377198361671387060031829344301128360113288115509666655998398217217275114363949913373110337943574366576770640214151134029519604960659864116233028314869780518080183154280360058808332968946936349312192394129956386005154394513505234661941376556526601397415152272650505012232461288843889075570603874558192181792419485763775723465243711349359032276065645520842758619259320816588002879982663238710399758208437294414127354338051401622075450900035725089333448554221745561598340090392158184875349100735366968062815290815799141975007222325956364079341043337460561065059593896085886351293164298981869879435397072610071521103761139117101174319390886368806312183269390935563027626530701820882737686188749651052109916224302687265039789633304521152654408143386268085248089224957877185928040452185657074241703627482522204738336663171187825185813450362174916942427767732624749406163218602460415934655782194284735355688360408285430212183834074849878543195714926289510858228024098534089464327453509361857844930326591285647138131045797313774786361217932717894169684789732186222007801875003205627442964916141052426419194303599742366653720221061980951866506428700516522134947946089718988235502173797767098551663261755001650249101888437905309859527452982846812702304680270150677695534286768878849492057944461795097851103683777701731879663377854935297901329269584573106563667923020450932673565922825765458707064247564041611100602551595630509758235925827120209214558407787477900582770848191990050032915666082464412763052449211969685853216671570665137345650794360098674114679616107454186820801350034863831431566103515941525906302668678405401424737022551515308154898709926251522212827270816863602144787094057107651617559096368385361331933449703645297343790092424583484905323576787557332083580560744954526577726566999803322980937049410359676917849409731967973603465837654102009306482393571293114732417361097606550489844488926780069346897323282239194929818433090765402827872843789464847481802804186548234431419618124000978921175188994388499283573441031218613900217840532997869064945753694273192226743567183672657810236976270795749927378003802441041073635437238801445449904341967133879143433813384077324337409411419175365805529032857924632496429067438593187035722382656505942975012147369050525282304427634441698330370033419775489306149805684297964222204134628873326283809811032612542916241912497045055001144274638354552140538377689634215942152731786220396656833933429531040724026266396554477524254711307391592139193142250488869841997861363869857815813804920708927005867632293629959332506402804976200048749730793880215403884590452037835560046742682378769759154878141832010247930059780888435888050126512667838294373673546797099881291096429921101509018505907976889384670911235546080561264569467239919928356073289364845949713559302837400196329560773915915655468095431873385786855920853095902124541263710873749928817985459185542862792352388097178078882740360004655837457879029759426949702221128181119748643706895817771972413359483693239458437970335456232978851749142072452970409763193315266959013024162391113008198108405039877745463537777869627537724019873035289385788910486567819521469835241923662832195445524206717695346354983430063575645524923756488529118950330184397730691080032185201058455567755838171763075688026030753698262516581057000846797851383863303271547386089260503784781976596945630327528152294274925769785361982636851997278663219737937979226555032351193574827843357266328264343282005799000899847863131005242610222420390720798186220379206521638492193651819056091304301366731393746152500551948694476851206797781904727858831551663525648955937819945199391311989268124961640888712576612763064494453708182605107382566784187926759912922190520051316648924626920513751247738192738882216974676511205977385223664883636577206063473884791174009734236086313112152635480516471474626870554096750475591023198999540070077766334987157001554611369702790512315275359286176756211275229843604081634055825190073057565093760642734946601804949017958541176808305590977899169026028186314551816922471024815565658097336133444198936403356403652074585173545778183788371341068382340941145024663373249233436930587888294317122614324025557811727807719056413241904708210750980469638045923941992955665831513511789138593839588611343358512063892330278684838957096390506652846329135439913592328692854903027118357136935665174258793022123390549196877441485450402653895984046494555486246059531040809855887225749656233173447827409918341920759323779298607522585087258801062165454584534287865738819470568442024563634588517986553758961859925389939239511956820601311177444665612145531196718604692742686686846215350620087417868754730740322240307146220319511543147397729824736296026026549916597658045612940656936085158555389919380643315269634319143246746931807196047016111840443826104932071265209313054357580623631896678631256567639897945163560250347186364507808663119960876933231851752616091045483358412208441889995071758453063492571103802728048783932846930646018489457651482554133944647357357511175636405823507556053506186886429003056853923329532636280576861285852639890405429540599539644430166806082987538229923083438545411698090378056620303189479598132046459337971380956346249968086180673959924811073777594242619833107115379834046626837818370099954518129065389693834381669576969352922985367213146701213981741221699650806074069956353956302924711049049701945603579500110494311131689100915442382673842554994871120415896845941415950718876260925462350738023128912523772387964997273225532574425808557927086382244690217803808306026695054187477340319310234842240274098517478588172473540885202792260358358193135856156288150236260447187853479424939237012919247256428062300936812682995889321948094996450660369299195644810454946116046271114761828752067902724350970257574300505419713023265907683220483541875157087179639823508751799806520973418274319316818731254704095034693630789358732246603688035442286957647995893525408710997550678701264106936584015700969904368234345796125473032381152654629485805542326887008005099803183884490601619312086274283765323039675642415859569541803475971500865253776227327628423436429259884533672033816357674298826513036339785622342067717466056546059727713551106939522097268967968784074653028335475826920547412765961375961640299244124688518979605041629158330574262514219521907546456778574340467947194178701310689536315053549816238522038742507277986505593294142410742239850989103511810928137475626402504865442831400753420295591399876206076518948431591205808826663906985349129989234549376808654042989415802116447025059410625405580436196054592330327109133340992690140243588934277264604179892037926629368128760691064307949968674640105095564184329097390046312470744844157082427283877932299735335193099803821746251950296914854378071415042784698256494205626470083796017032382798763861225992392178940216009778187991247471130935101829982170287792375938652082063463078258379532626813108103243421495285854600385990204320122789974543230441136250470794271407967773148402726280803018100080805299811555129358789700989410031251666674889959272736272096806146328817935801850302900208906124938583353965925194264416985106896648921083117891171778820540522836994897479658379622730415095133648633357363785607016082326563052256309971572581112899819841424954416146127983975640742055167413959876078907244710946815900156046894351457290940720043111103249401606272913627216955325306515545956323920523222493574135902226885393639910832403005527430883218304553724160564493440742401867126366447303072527228423571345041805500898301083457958530243977290976368648548365545799731534761115701781193238662583228531922802265217420243417054306704168172751169076198102848179787015795331367286890908148883145470711539839358970267713444405993598947784570492528659426267927448923012322370487721956712766691115553148692254090579363560642973006421120728813081488516499772232308127556886296665887897020274552256423746800511423538419840298310137020016209367710022610713336511512695808859485797724651044943074683178902446919227778921730269454421713300477458418340192490258612819823291193692872742078464473985534756055380624247989393993926005553195471688950209622608662087250972285015499890606191711868492999319498457715715022552804894554958337182767365872278141727493090413540683035179012539419791699985386223632824153915243442130857405981465604156611572355099100719128441210145160405837652345379832221181195845220783617079408486311371403318742277975301166825400615405532448809629595568878264098654771833416294795336185287630181506605729035552380696847474697341637414648355057121550774164352554921448333238148266849547851174831744474620911904001769721116823220439762673295171997770933099851055103678401669262546092514866205045794695363266087559207171515474304360865531130967999923805351686904352001639107275794899302045509029278804855406382071375266067785817241988827689799938631895236128736306121648847892797008836452223328789448677508023357872317179838500949255120303107913181215252549979515723172287772108054560529399937228355589251695048062926194322516178200563545938465355393434944760954965788383268964075194828196832087393396826563151903384999394420813379894392363356206680768186941365850783488746261472605847069497026151939032719775724769075750526421100060052431951876165505684690510557462764204017396255922002332208095087772339675691927844747155785062488470229666403364225602201534804953949078621870226918279541264286300813831984794337296049014284365827092533168529507372278718093077553735829207273061062617284580074869473380875240978315154884165106865765792204316950951488681153795164627530362080467130357553654205633006090106651217357278568684274783958321886015987587817597344918035960742480645213868921711780670000987730479410829888331524005187770687165689589404212217885458677041783639370086603120912810981162233566549080192016534245437296845511548383794767641414504036920307418126005388497807105440338815785098166684751603495025792968747279629850132459172861850846110169113430873814357061872842352776766689274658061817777055174550629311943427444285778383250717750908545565698137583699872883856187967494679672595048136392996145249940052345637990205063409516913265612213733827000264835071505683136522560990225668488042996560186188978006718735963915257527937183115947425600154021780385869153517187261921394575210368117946735218855639925702131728295322248818952729676407326202017788853964141138196238893407447282523370911788752532571892699623630246352312984872111432585352847513573277369436320238126137253666901210775598801984616900771551210229492524967235839897354021703207501584993310884163002069706769300322811492737692653841084957503257495871222901525277645748569870556277696978343371646140501381018149141137482448094104040827396436221843255815784461356330299625811279883271530920965834296905055516617143433914658283096332966168297028557804990240258040633521767692656390994810010495244582126264577810831576349702811577538752831350791299180939321775912659821945447681198058528579128101068925841899657886221635131749226963592996870718022890694954951008496690467853447318403851865355988046228109296138064187862460034074693159232266222618623661222690625847030830015699443243285915558106112835981416130558355909506759464258110134937362640178930775073482654619620778252453111065274995377740797209717958614495664355241007043820502844231985343944950087879623846664886702701877742549176109257026987642407786695191668807355098407548901757581722978388258077100375511777805860795045880275777426267651022665770265425549792779130049820083370571399294181409560214664696441601707030052775245628521936240989045325608841721187784805690116151857451835865429959447818902328377761379266861874782168482080604077933479447374342440747906720870893690251825390002905724760849751564504581646258518179992213182056949786281696865076558994091288945449072195883531295947975625504212964358618000978086225803178988328858691542947045585585043912349844852951883403646411083046460760423398201551974356289333704039748479281439996245468108787651985037136803752970758039447820299232652902294647310922767794222863328678381882784995442845321959055342137078556194983522230671730716353739995882356797065248917650934802133476921049568507256949087333841913055796658337022474470054591505819586873773251969312053141238811279411636853279992976554031821426154920431261917448616026592274898732349384834465738146353183934967862177032746870647117029208108253047826318982267514760311245386996034985874543657898351185758275359151344022640228871453114403196240480789205241476748392131312391603353130663790912851188086082491691219319095954140885782139227089983670398467816933946716728134806706840783405232842963645270753107801717134983174215236780422768656730265771384057224844626768118608292118318668202064670018553272320549203930248651308161556353055489800916201715791434775971181503324533229082990650181977491369895264528054023223154869496442258679536348731628609650119218936021060997482584632090433867751376401729901831756476847295024332823643007276866222370436519298201731891314865311712144555286028317318395823855868992945104077951239055182100673748036830358680701364646683307399812792203643521937242527065360727821957285628063291285329662246564198062988382772324629211831946349254348776208335943185551413177044953981126195205157436326350827677179505030661808654616060117822884137763693762386534720041225993388239878573081150003406586945917206721069958525641190635461133624713081492248825732671209563334133926016110072796867818228518766127092962063943227321713581273220293712076532236991225930396164692160045231682240872243027936020647461805726229939817628292233292842299990849878620654132420379171672153709015667247118710370114942438611594573394603447336408232488045609495635522739654202317956536988316949631971005320249689261616300951417668877839968519548573372606093448023314444816849535642050479088041686204872055052400178827587632885545170850592990323246630180156241887928798060194285054677030597912889349732415210831580943145983845488085117285490875827138725130616933598189538103362736671519425821180211417305549352657607098346755458854457759170933547433068429597927519663852978953706839542285241016370823547723271585353277571466112121377941297533097126772377031141235794624260799728532671890872509285127298507029845383986489388620799465403201458462690965222416019366652580907266066660868120358023607744203634823109355344600568407544516354802361730672249104887969555433522267751342626413853210902522311671076217487925997673503254476533366445403329074781754003466953037079304869766261719216581418965433249327654524601953486521789974099067572094485422089861748487968650229453460699584398119352219094626279307515573898219559446268438332553529907352565664296882907654327040392034255316203530689588458596990146050117119161246433495710642803058269931883001970030194825113288832188144255442958507798107104591799154957594249452581742059477183721632913006831798892900801208512216819637816229803850088027635752704152426201712685641775788470767907156917076745202694042017432087171123652234506052648292966509357636875069244141161912060449445276834352921335248358186951655575868473060389781897086453237918465239657149957593155184656582225177583548036401600654005056424578434562820183993594289474051822171598863114313923490139801415517349760746685207309815628916421496035832744051035314013507214674352592612094485183539233318233967782613544391719447749735422531035566304977067454610831486848015602234045064080469469744032792027295671602621620192302479423321809918876257503694918102743938873089085932946876781625123795923793613394713110523483089281775349216700268968438184199528076758245805602956223702691973450728515501515965261735718657403831665346152289081784316738970471480132417973891696232608584763045322500366231124359577711274759410568915144988683448563280903622720097512637961231442873376148701850230708127097739671788569168936961379961937608338902317547718616083697439541940702051747487129172724473851244188746549830637392819238580972349929857525313405295508219912299443451152944419685525799861401759268312196551256200597943070346467082242006786478636132403111938423410339378629778673653948483720284873032626393628042558812437833310245078194219653626893181945364488761678233065634821425600944543166183903663394133328172863067795811005437708262085695086870699792135313456104089743300609703526897376381209335829043829356189044205847873875754899347205890553318843177397736337726612552925984449403914643790680836189107807658260983681370464269789965728286030389699296362024845328360685553851053510194093519688076105647383954667842072345954799447795634210760822184126513347553216655413231862857165867325074100051915701380755548071118155047377949047143338120023658661038165033735847705461853247109823530379498527734694096946925966372634022542562287413926866108564082384084182947258745696492226138097914617478751614864744612706067735109047673057381964293540649619344660163693087990404916207895305108700298759809591154708449965682116721421393911467331475158798198793624092692727796263344853850403293938804381637331618661768394396617503790197271814216939615272188603684824842174410286079661625656374875257800161937328396835244946690829180104947635472054193980463832653480467170632209424676433731518214158367534141793567152047509884392481567157911426689807285027615473951312889240336936086301448315525392265169351159087666586451531324044187719584315474110738644014100515177246667429251079722600483674477072867524520903559921202066519980898878795227026638925710295710290332687011973831006542218704232278473948152372129319624077172142561159867166301760242071481050779020240780379755737940189355394671923035052092467835169919416528573928579096186959910638408040963307894773046954190655307802551333334277818040977720396984011882731901519392250363144834471317588947801636386355949873374610974436504303189629666840130148188605604318247147348366571774248688831018101663707303076300556154595839744711580266266173282784557226661041125468156298368843313650765997299094287248339410962971897440176481138404677965214478219022372566908864866424688054156133671190267117956720295658937630948937498088858049482549783312320525755436888191697977443220373111242288021285508104062261734520891355440834978494423340291344309788486726313596316270150928850951167802200196335013016771788474413765484623906160089186294885168974600479607305461075947796046919323013846449333773035373431849939699293623594266862250101514279619549882053856910038536709053458687865327632048854018378652165892674333337492911737762610612949527723575406190905646525189787672740410375735242601640295618732587245171007419690237706525150818956370465572032842966419385032299260608788613960604189920031470559871634809844636339588179330779209578268108705236780969304315468740720928995103043409467873795150201601554631837815057688115683793889232785053005714018815897930655147869101902582507531711161937615521686639584023845738294376178668343296423937040320045766686046382550550421238609447955708849855523020554235366452036878995800294566856520746072571441260018364884476695052715339582895598206168827312250415505875440765469970775858728938313146493586972241824950744142119436341774354635622834805791578568673382362854206049682623768986375374757902945830563819673814858830125028952594910308824125270060768181228054441149851744386956701602258147414788071550339347008813751131684807535444906926097351844533159182114840172928600521996965431936801015388241280460559631028737142579992646763042742543304272683045183941079346632617289358265492455068879744601825880157727107721157729208572471722565104171622913561282822313206254791836386774603401633609935040833497931388470918397584367296126904124401810810725381267580346951627976977565754769287274378493945618486242403888685198550152691398632240809414417901681611901980191691832247711301171749671431614683270718480563472059620164061216634047365630312273549808619467920120860518138413535237413997418887210595997991397184636972736534030328160220028586138506453103929922616197354268179103868014754768207044324340808064345546221972885031480735721683278272081637592923974575244428359717474655026003027192678238323381280320246634497623385399365631231523847646155886908046360290887438941179611166105877017680219047610073687170005286756620693362202596465964845399719055009324854703974538007880681434173384382564273824964251667604847261322815302609120188747323135627086493668040854498866979143927659153866248606736466169962633651133771387598878125545747006435232391388136700195233498142935849319226173384141592602460381900401564883076959469724959554996496269663720052617404458959945915718597309072876748876494466861203505153322229507024278703047328158600179903871362756777766264333410483264293783322481697562039085486088225150961699096676026031362119888229476748798888683896525482703924572511381907449402655191587064170465503122976091821598122295530407735005882503127681987613653706531886360034472619129135116805295828518611884962862928300148418815244515041577119832806629650990921078141414005989999146606990453334663944862017124894302920556414833006722896729772920412493951269275380952381410238973384089247359842670744552934840092712197513234758879864387850688088849849911431115955291753250877050225459624316359762061351280579303252823308503528681496842458765427891429873024199391248965675600577228056013110297231201247669011025636708664380579648641516606202927676389978634955100263500899523695088722842045925309181058296856753608546493234241366526019143380962270408843691946608892029176337417666304778057600749240244295687558774516747453495118416838410195693943089108817766487564775158002355548911869112506388927000637174722568678253498713289863123492818161773000034372801264023066956086741340871288426638266640291823255288631507747890229947918177162473605603009231152198500134590291643494415188407971748138157030071992221963542723973187238607146199444473238264744590385395896897288835650900329022954230658827089471780607679436736456259121664235105237972581709198657345873554603158107307060995469528250913252811500041610287449959537799974612507672175913826121491198421367087589863408165297953880819614819365724406332679929119199819711114731723955116465265516560701653620595642358673185308099249393342177575417368827766280752619271590389262448475230539519749579213722387545563094380867761349838078587867040795228080687275342262228358916023478580196880278834029827791498286926720186806212263617483566475032685932055354270333530251927561037226564194084525609521406655240308603686812246982140172517297404186764116804719581110589258069253137127341361651194538685239813846050908347882297206532803644997046533599919295610154400081822405009118480114346819674226505856540386265139475925548886553820473588063531281701387757766160801628440232510790144982005917844881192315525391624811889595655445572873030477329917221158087783461600379487303097289474346306077770123161900603993311546017179707124171493271077591922180324247627144486985967259810670851792514545960388264054455605488539474611026643028860644812613432784356899921705366467245060597575932660556457863659161758585605991803901481290072041549189031428454978950825855496571745947880602419368560638093811450047757835060706406491905873766541591036942030688695624944296060472878403943264068482422466431523600419060737475017572186975738306099914914391317427270211091336774845382498868158061207895835308119788325100676905688845737105686873547557266057160518349642775490037727304761542360826956756604161970151542652516459651959757259157916416940476114278195156055849495799298916822751941253944802608725776721160943535908704034631818826303740441121850888220947547832146833954261903902587805758193121333422505446374013753616052444762034511154748531554003399757407645412363062070025869287551735055659647684306916826748710671950132083297202502896155861808970954762800292434227625425943786779460701048794817546726565773014629409924527868238070997503323711341035266220520935649356905995424844782646057246078371446052844550941252611473223126958701234586509474062480736936293584039581343350546722002330657416063146833984264840405400342094693490124272812762776618372412066029901507378186584291447472788245098491515321976181335809637892784140083621913574338744536045008076591040614188355650625800033521588300427140260525663466094857511505516879544342358071452959579667989761528649429518733964240415414090038384403634821301985932514706145981064583309049766774392873003502958660227032856023176590811141742572642832322183841414496670942145698025562459405391705900119968119257838984043956791087900149094260226269364488972993351690343919986766089432154849469185195347841960935829770734492334524362955859187095583433012496208544771374065677106678462684278049829939499463420803376329779495206135893423596167958487637712487540315964746331956520160442253759287307707863002227608177571662354280106013251682613161095442611003417378443209210423380619805489678449788216314938770167306248528734158046576558473679782805833076797596105730421514288704716380025868600238368011674062117659444096374080700222583539814185689961577970832763181626577507077724514851419571644544161939658235600261526095862740077652424273446566883992752526768474224672494454746703853893894231467759566184044587249850016501928227242081288194616929000383075432730392300069803335547714711396349590236275348782928244710475474729326734438677594125158079159077647794517271896221235695118685723287236827797268980893072162984915040006337265933949282548665799312528714366005522390774731730875755025265146083564326094417864603657483824518088763892237796842114556375018185462822783075127486706510616006167643747398986636293982135255374851231273544386531049467793125472606322327850167300084123563256193610329191146169439897818517438046253594523514312547124970058347197414722862450461017890833001111241123819021236691935858995267678943948497843104482511732377697627672780120060416117227690322095464596141859889917133702956840215141672948778521005734486937291449547303338662087631202738116354382644459816791504915087531111256565283162291779113355628150338764369721823399687009364264474063195358745933048257148467039221579129030149961383116699286622646109462716175522705715834544856731018214617470653258980121437658430698279877824486558384377811608627657562671200717161003436842249850298486403235470226958670716395387514136876478101268796089111705183695573633383011050435666270587050127086604685020436894422986417266626777740304116131092918269191475646280986028659864716921495983004684479347511534114040666509075646798016422852937863987664061552498613882018530707884248370165507176115560465624859932218749385630519829024674927386144343639141195784664562135880728221715932393799034059664263633243950730560110820633852895430514553556318358472791574606505381048829474254644309388467579927035363950753457108301265510087846948619785083383729483702907829579450039300102637784619737543994852138990405163174859979188386472790849125591244293761357695919544709608430463005791732892896067142380078301129265351733234041302792259468167906584193741706633673032414698705378829276038171982790876958236289362498620153363364829034742876262740719953816537848870815290397428494873219777940628133097277690292305210819710193017870539823195233754120214201240655027928317986519514937041018349380814172516839455943232280506465560127042464747995563142542547053854266087905757229706689010633163685883439787063376951284936207217312339205015758982176357896106053479884465947645311343668930615153195479873692051837539496526208591940934918803450952752450156292193258322618393688701833107979335061185973350002805440157077608891943127830756157904512229080437354711103664790620125734082409490377879315336552071926313499547230310690418777130764623691441743703019864471437439029609556884535875341496462598242714506834123225176938994061731452210824822414964910275750175030814761913621942551785215206780611077279346518860855518602335535505997155377599044684816799569685788727799144184912809554692704971125015901619866871975013249540052898603337973325069319528252050288364583738728282914244720930757356225158113320633642723988133548188566968732325838923974249786466749089624446180502907694044014920165474859211247175054417297061994880472971986196278912841937903030466982902787633299510185278479462054947374590507631384979379523722505978625988380932614654118496118282635693609632422216649955918598760050324985577587226505653598103876658413358025592478714061120119041048588119776090800993699613808125332435019170604074340149143914521322881921520034261719719264615852850558488299864238028938580028288116107848087153154083475812655359371360185511335082796385450509199236643956979373820162229795228918748939858488251668143807640141139824136493373027756576397655486281363512324819755666316832903839981027157513743772299245574631376410786759499577224395842381041436448917354397163548605180404407407422367171868492005321367542951779794022894823023831737566492788351313896397532650930616177788337954199716187304662669310948236368265386361771988734135452699662171978096428778322930213024575265845472750217316670077236465193329125889747821343505078820441973788875493662524134100101547138730426781913356211052493002619184146402383862137683281360619793841409490971022271829598598266435745146345211294348590375014788152164276984585817110719708213751619282390285261629381232784782446086962623968471563931606889475325030014164026883726537027852078564904566792850504141907579687656705665263971994522996884466993499097107514427344280331722918815934771573973239620689575319015884485438000557150082089558062667543468238670822812858538525549298173846551620025613974917131299718783414485470646434622410192140994302045096444992177960698757492457339149250480522693996316080956235887452079756655822033239902784268882196542718932489162328825241412936398678931236355301265628276804851008651002511893139643510596547263406888902511703122468763183605668870800752767888164251812775161296433011554750436977951921576736840354252118817297789889660909743486862493228307767368387253512521592630129756903532491038087569444787350517173580507707142419849237691158438064875882376153238014987723246992278399288977222852204178069501815393814969494830774892426218102524731106696699152499088585486127456094802932426239851132868903812666983036506410319152756988149927705016454979158689715399384221003611407798290324040147052392917665398243516090434904598643873825557219992140170006610023308032505862350352450070275932696572515797488229744426039118437951914969306179828230568703110184791963226020941735150386810896681153232107023145679105065228597163633564805609330246442424892739065400085891354254023290588241060531153889584278380112205040458842670393380632285393097226735249709098938423069921910407113460534921850287854031273750968564290866714598800721482614670802452230811201564230885017400266725761327708379231731611787069733857976507496142003950878416564985371560503654926298761733935528359999524167198144704660820217190544259616735920268896287128190360743933212536132717148042526059349799375032774678415312776799239451449278059297158858963629214074891572429106300202505274244408441221523941665799717557505427694708571992781319702904881219547864845673998856190193712764631002479049096953555425382442774675269719630769714570738008875840115944471063619184172453514284059237079711845566161811628275191662344400804825073820719833136384818853964617219533151257897562969683924080198862649654605446143042839227426009425273465362088346598743272496051739300976545167362158111087012384166505236800297054343758420031014908153220114455679491164506021532033139596387078274996310365868524728907105927957890841939657485369488635382687671853286223550031238893681008348401918856164128006444967019173603934103480228866538183267291990702635294898797780144050416706793763777166150225834167989965397837183789815717243361295154887093866496896947133610904505206648583688864536067685083294650740900890062447426132047837031699717254862060817569419728093598291126366551041194135590368219972503289033516370166851305688782592276882879775236460790004337069051935439643828175210124550826360946844995119708858274366848047312452246263284365546616281066684138074151627779525176578701814998448257618322744250641145018073741943778623763444623682375592121598678605476994946917053563773312146699096965713560360384591280345143487052724084624303784562995897903459849658416010290741466716884769922146287334732457231112571641192875290888683125122447767698250154628086867295614295583644921891317926266935086334468399345153186609622215797291224219651948082584270434609849187131617921162375220523741870841284421420467403211769944031399844283460565918381076121252996586771856524949330008227248766316122424432995319801833337037263245924655327837075609584607079389443506860684429315140390875735273869966086459427582003165714411283056436752179642067671777400652837175393435248234432185573541817169135546568678005410626535696673630558160141659078961776942146404791561874686867981013459232568046472054844271229640402786851840007554417362299348009571017711573674920916968184600281376561582263892852535525425746153114334684072768353529920011703677494235862663685717269767665410515644059586053461095094267067122706179743057376983661404535787004867710404350297937846679767049517784172022337286409539019308943915297556430508390810156351479831016042834109795367858712071536503511651100762643134507018984927294003902097385765589375658691658995276890580640009781293121176126509318068547785140636044561314118073721510734859147974599875942433969253143141019260160634362622318880323914826205107737107889039207123957625953033843753146530902726052709934615410847868258467229791529516439459887903879936314404301613520334509256764531637057797735230935070453670651280938594854090148059563483108492579768958837924552853128752591881975458033008799332058485396743590906282860397221872013336000091417558478624416545304488365093296762117764688213317364120641721500972864458044219746539176653546675350183362371925959331424243107360753799328599982561332567563634262420891841729481768447941842360537857598975857893297980121899147057920895715774798493797733320172205179145947121830626362130935203943468718402284677041925727304998631610535323962855516814070997831415218584557128859660541730285544259068111676294843837912809380505460606277077631520583600570071681491206734081945617573713602404691589146730192293335825837610633755958933977804976550147271163452300399397194379575785969899435786383045713112249470022592703923510751109215942306260147117936544487258724091106224295571427420636967728703748980053209068635889171092966451000116543328441388982392424100181004595052982503525199899084310973318315092252379031852848634938975931762661958654327310160011701506020515143102838470618563026834758553123692991048547850929525038349333609288828713214708631862840012989511320847438411570831119765411458729359568864192553055279418263901170730390621655055367227186538809125082265970380550034063778582681703204649317824852928900148205351819729036428059593479584181469770598061374111726095083467084130898802355895106524534638192987413975206828537002746967571694895998579402958702060587171029268202827253448195360898079889331771324825294743680872167896683304499129965899800549679433689210467312605268032213170983810059923291624789175264367589396293101028047663207593199408196441493901474401187286518897490257506926720065914569875464546424310690860548457693106522727797753052625150984283488516689032324049571619603672888189705096346997341730589467234078773827269667011194128667868218812623452129419644387940050708835295926479555567386342432204988442980061067293611107625754318510332319942587911213550651593968911012408278158906041821411729067662027180073261131225915201319004557728129826247856113266739002570134020902107044855683325301546492195005700385716038203677898204554821726807469379642476244769356595794686308024971006995264674729100297271705465454369875648534659876505538613090661825272738924859168288345711929530407246336350906853200665139683248248017785721983172602723327122030775977441846020536264056953424432389542490215433640798845393763218199238368983053685979374960346154285356761309796435176546763651361364747212620911798867810487301282096969419863962503358175090434663768681612679004586713218554664203619960422319524521260854149161941016587415058723553424382000953458913577777657312575131611093962827440243292668998907245294681703060443174200587571628418612801886860749200814720149710936413224273062293656203809223184221673967573974855680893239820948914936527066544385236955012099424939042562293725326907313309623833317011475549151720829874762865499689467438641447406504632943536728256915569657703091803881579254255927698394277799272981416963357490736185572048960805076372143202617123081172961354069241106941767490499471328178421771265865253510434783716096080602564094959989500290847698512610358810996917937777497421305085621683161206875346334552519021544397906370061765081617771791315979431686447024075473293890097264279370915130753071172771532999558904990968587370125106529026517064941892907615924586233803459655869723879206091895383766454022862497032518764501544402154548185557060272708755450761085940389666649856324685812346312662345231284039533435589085369641814406637278526807446121076393603551532357131920801476997019377886062101855080113198028700108010364918458599505958365614890418005625781379444354510909138431687529456697156142367009630710633997023663959451187753837337223882813832206367108851530327910939425306209354369277130059986419192288633356598899651038092863285133371200513279874672985640867083876103408965143289380122646461861564559613847560763825613552338597804211950814371392198244481731748220588305482064788325060239135854447078891236266294750042083573256581965234366666070298640884905751846679326193277894118503782676764200641728238464599615584363782893711315898225144155789509453262217084701534008495967811887670442680344095764830088727334482415703463432562560640379678277412455912594042969822933028297133581491100692184935209213314675160774593048317528528178451898354019414712090487933556630465243651796330254744389879739124750940022796339375169254816781835299399952283950973066180841486023880054064412392034753684500279158073849209800472137238276175938671055773951130418526777140704936187623077276722519158082165477247170149782623181553168522204755013658763327829263713251824847174166824601374512702674584606822957632874493762504328004579590740850564494932358007895616554893030117980464123834588086620724666566396923377419770162120576111328780975003283611300639944715539832218263464186319890307261397576979540284201516320442398459102929993621844641166170960644789244517221436191381084252943662972749975122716316478865731445334361030232689687752848913377704122418848041595682739435849002253257907517986794931866326652685052724765549913782970705213542393589691301494896780244246867085363904713759749989327585741460973643164898394952679839872265581535803821618540322018618420433487331823988303704418801348253851348189744224038360811506718638736351872316898172804697640481440161970123963285780062928231385034155366935913461908537999980712925215707432787995856862176803816522045402834899696625978470734507254495756579454875990296236718464074850319568568917020835004767336170217137905453402935260572802371096348709067130762572059755093095200450422904208447538394661106002216300524899010735647439983012244235555310851040590767782542496384345518395533500436496696722823808075660011931417450889467719360266564548827454600901505102573696277347766200638661216436817928776802669070299157765934962286756537914943309185881011168745050699449703129433946710095551377673501147456493339380112159415661521194995024244791093107833558879490717644528317540023269407308941949825872139571820822617433791578434129053479236039838270796211325579140419084918217308882615233083910744277262766974415984698344343229483616743663209380118309340310090051489069253343357598110532000086169959551599416624933885632759014047617695697011939163342527765039499002307219210327805733768464421652610515256188045182269646683453000909510369637277814192959790200479369734537151159530372997486544806422871384507256052497145200109199707822748687359031038099887587808116344864128544893864546726272983494538773025902535049841007557223327365351427049927152135315942774223557556727308968428616009467747947299199050123636492514972616789366887574577156332850707512490307833290561470632793855778453437527650795867143946845109426056931818026546091650468352683800998838308929394550273816874382449663377352440965858875312179078149386826846340564022742144810901927965258088487028109093136735644361092835678664584096561373650671021956769145341209939472462579680486416856490319791310104030393155457337250679238922717912231060162226018581289689190289372220580916289173330192054795000239137246462362573475135023497569999843665498589917352858705680552042176062588824572142411662486658232671910338248815700043226838640611248917484769745627986015307819866829310738118839266196976487663417289052161060650451831925134883903424074291243178159342340016713913688151350858124166949993168053407491109685492430567095916748564091943664962302268170838173970027916572473739468372161818486509170300643679343215895047321795140303879994010543988571410205021393806109050655311900998911719625863894143220952470762536071632043816588780737765906876429186832861307497904961391653720235468739540268513634511151417342354211141289521381384292625488656125835860095473124242632971998071194990370985737059627739658743042975508220434616058857515427038444323696159828099402757970666389848234788174003068833188523535782986985637774894309488773693298383660182077442991094214778577980152008504548068577093093456516901181939386689546787836995686749935288639112382403953967043051549511154892447067719527947434602502172187467764038104294561367757833900273829387752184792429955065584909833511490673606021031057582785765931957360934233141305536632671518384853403069294961505057761511345800580001115822454589515436975496092996185163238208199370793755600129512508113397510876473476090082932433919040723830584931988787998366446770162009145072121683327943616334789501713089170522500182653262605803757091450889138669236449869052002762873274553599879662168494144911712272602438747867934420208270139510940912647769015990558321195485414993455956486992678291912789697155021052412855813661848025996149179591177612211427779801336832400595823588292082848031599731001484158062955242992785153423903362313063080015967872969871372752625079965800417511280733416359857762624782997909921563837401777236025001742256681412341271029479372880067681472722692207861070531513466228065958584271785506055985798830382092957997641707919318924117406047094125107542741932944244677478867622505519230102310282577288595429969578120952353745619733803288313448608136079919595981644072446922861472893888123908678809685260837979420160957400303648706252140503900814743650709058855324084019858768069235022702193025543467355115648864275266008986680418522155282675661534367624191345131089999327858914515434884780471897236950877403053739713980919564896637284513610640901252522043867309823498405125885792416374394872194593038973609488873064355452825054943798948657661511547104215506891740526467280304076202031156201682197905636165406516606960872379786084007835424981067461463406472143541033836368507618018732757479592823008474581740548110174908012849875524092532711988758984214050269663372035534403200948404710275772024749787799315902109821261641440943056240152824471214178420124525792110763492227561317424924890479692815164390624803613034143416036167614827644197092172418539065382835300403178639785742545292349798003852591659891091611117388260415164694510916896447665756484919854614532886046445960848872516618177719279239709337494464642107130530464902912760093597516130533855002149764153465552684902271938862992626856702714065308407824763081224015267617498012559440756536150039703051231153849781227289621269739494394623665441050042890206283866359582379572422745813261433045970381000814424143015388989512924131229210388473165835142381325317142904898475944301945427750832901271533580335491314403304654156165015637580613117437365945745509956617586062784458367856855721342371540030660440309267731584081336692691321194307305260641169495203879459775112903204605951163046795994764078447540383551414367158946579527140432702379501656741458828577482887483735391858867532994378849788593320193600531104744369040862087322531455312986308130854571616523245509053545100972557170796517070737592921529321654615628898858468250073490153436850736663340388884667515579804384023641692680160296673181409406781164514027123759174421553168081554474063033088691283528749676851093942738888019780554493328814804848489195085299682565202719828960629392926192933122488094680720329935049630652269945187296280314331139533918521749602531425651476331139941727853796693822452917491869393044477510792705072882469798928256735151764626408797112951437019230827918378349092596562087542134332673216532350737644110521395103858522252357678056932058166518639712289372180507946579016530141584666459661166627664724924478818832676204169675372126839922793102492990465312786633892276850839656952002596462952331296124582015810726863070086298540103849180343216707381680803190450423774862427929023078790455067003489692117093469668898032245895063715959313303415208641820363541062794902695981673307185479706053448848459267486896516527835325725807986659861082637164953236782195472872965065683090801214724445330205906998095476933718408798933488056290052050608256680673311468821030523955056899923743769390323478270107823554396931899653131947464139603009715239809659418816039494472744908366706802088511601950577508472798229245459992650035403899327350289918226843541404073116056983351605806269545745344603881179424180779562348255368562938726492782136583926196195814150524136032834866437180126724171629684882925514683015977315306933082470361876816769599791065921109123969250858714350151904520577159448174339994632742350603229339106464133266528372631671986389811375410061038021612868475167956191821877704188869623595537308642315893044128264173649956583229544586360971518585381079288826228840003483408422313642800454888756299701569197975431902773796107817086408911173121449530820395441580040850925397000879772315844807176949985693734277801549899180408789426164499442916256582820671589760838146501630152477071803325332245900484793612352601137870351306184026462163024850888613069940164599476856195245893713328889592690197320761991342874755941572054247128071789377106808769702235396393629385276058858672909247434017364356966758134487032809550225984731500465465813059138965199056461479306756978155747413269134818170570859980724878927629739794218742809882206099987008479814129735567230699697891255299595126121277777224093205156547504728264034430840094576168880659921056401975948758702289445158947592620903474393953039047509901198886644526202776188673528958912868114713264386994516483361676737185414002627612403318899926691073593653109826152117849335365860483886366178056385322547212326073663265738849579420773424015831146099788346127093510078995880484443817995300128845661278222635140010949238332234844085223036122616429937549730306071040988744020685743806003163592517314386901648712247977576977297198742046175716340276549153307387170301990124155763902380827050704687958129672779529660465149110326690387551846269515501929862088738433371661496710108571993972901873464358060230432657815266600228670561193823585437256490032851522360505594363715139520790480469465196381041555283379302236279583675264539973911863340983651612563574061563923946659054045596749997833854893521349533272336131272528299064305849826695168163631639207734607189123608921451249906570725460769684663857718734715531391088553628057304164851722400206301495099622008557225006679444547619488149533854607581817005821852588492217721033738763705702674361963704256731089317887923675383122655564356034447033554587914332052274048804179080481061668726228513915609928218690991066962774099827736674490638297763169087125540442944972628866937908551753842253600068329650398520992215159787612960212742944909285954020353518394650190909925982019490393530071739537227680566402207469968587546502651971359702882496873972313590670957559774711114356450839069017460985727220439014240394997381978112098910767518907817728043534334629136300240935732865374709342174542824122953096966482212031240227903763619397609740319502032185406947807226203223216840903171651180824853971952925846432819502403856011862081205836594899345643196134767698432595725841279393977073020439276010951974376779142959702498826212912973431669918182273826872969644927080649033911032762541239232756432884399356851819569079459494699429556999039146190200951233764164532651767283818563427657809384072999143105200724202685014979354104754117353552672097338367507827217490555923807882425225639875167680770151748720597399734354670165362656993287180135509019816581183526783404059063283900495094741695229410911114872714407734443745196176985757676774263333067385393562880910994610155674586903907151056389961578838379898146199397353716424702358954829845842399827272897644766416160812401797118289209055426125545413277421443171427226174678582110722344360939204944724847307605181599728568246961856930331482886972263204504100054824937291962000853950530505029445108251037703415668887086561729965766511132618933565612612381854477545354721894255004558453658555986638003901199251672815090855901108860802902555708403507248878790685337557936884809340634936692970485771917035442365036376932870560570345403207651438947860851852959358964662131209185671036063967539723844852992815461945542675607554992229303073407218580502416117694531233610666011495736061418840212168632837239952542175897265315580626041629720414721896367191108165248240286720273817978606294793721452245607328878643861227736388293712029145892635620495363119062120620857845353065567543958614864889447201510431603359671438464416835439110785880217585849625884558309909690560964617526483952572227799818983090371873229068306989283311543741505470446213499674097961602940533874115475414308421247283069684373393301234031469500744503967863410470574343286254054943504686578008688713184366722248258282519974731382455677298294882632739008673514944009516752952720558059818726302813776661964810764962125801273719450850429743553809328932699204829527971593360877600774887380427591897550609176650708682662890305551849354587112537047667990299894407133737097417192417279034116250025097153358157603662621066753789181419907317056753135755877665905732082337561160441478144172979028097779400789100438280351597505791232698022297641684083970657831663947779520975100863670724470609835826685663614527936124135969365098425831669696424556114098478499050975766453952523278676517899548563289516548211965930849673554876337188470432721430212486116538950655313018568477723658789109105876489812313997320550478939241208594961311410776190729970851998895121760114316450341203268286138748031810767837641264813341895604307362104476283138088332954780997748672337846627551739734600279351646678495176608625568112594914231287552664863419550037507150017510827097199707362830376398344201213259594437091000228960649663093563618585906353619940556585376434823022977468968468404928728082636455784680080110432550165497977282816362809358254206890994109263735437252213536166534279478817422285396228315070582186567917794314131787348162656602632919786090663739367256919096353974053515661650709117685563018046975517886725081373216847338245185171931816070900503154191577301560446434111447905167170890031574586200712875606423207570709852244858560283064191249755834781637812828880308613718537714511876158591891686240267673182125120432332969537214012405048185998074408898497032867691348053662120332296977997427875805349651696680667116920654422161736745147426387773787872967367522393203165239985139998286354135948888663208804929591578257881807435159089657469928704533555964186040238807733359659511850477946349717746064747835380103529402498471561675935721966672651528160634961755086335913193497049405166465838735448073449652667823505569202433984119927320732666302262820513997462498895179686051316584156584323808614282576903550798390361700177110557425778169268281763127890298605765687918042919503310702914069945025575643594206021669141383078301388825239002445284861462647149840743281017269909455475641064769524442362359487737956862536327791663997252408532363754491050793440123540648136599613037595939683476862805225813650081792955273265738538068058331202966343977290548719800078154852510922005890257956542810754888888397398888190679915650719688814102621386236500638293912971642859119456520741866576311868573091253201849322740260666073478195430511491271794807407296584067969488331631349623512728691183078569983832179614193325919957180752742954240151381238707703882109541230046594831406934245803855018951899335568181374413627421332004946309519909876093937613587506727367910512818564613047660590131044866969195217460544497738830111704501928874310882104923476049662456808857946093418774962557727595390247259462126786921611859592888436969767831946769977625792557885144473170740797401227640009183164025117577160147290871458952409872941044078727728814061125959793540735806495414355825403429997764330977589540122034001523395658197234268501385802304168679307752900074965735601215883056443707418097178339385067133447064549834093771862838718466560975615908658116994273169486981481898564064528527833340314618704179981416310500500825605303155775243109846564301555702805624063869958320810707682613418902518264406529167591459406385495753485459353802922815031368335717856402349568350315339609161434868491155181632960087951393913091760735101434998305995874166547539656437003359720430977285245691860642152544606938453723702838268405823831501058396096264564386287906651126162221397452542843019056533761770721498592968847608310312201040320501357393630259167106257534533558284205277928374935772889685762716746252307350565230261780047276828771232884971560318338617258238966316542744434536672726252765686476008648036975239912634662644455058551843688823075780782804195680532485227133725855090336734525382755029529844413754320564235652274658674860191350106674957603718319623685131136430458083982882550575872725605532731063772268657552416976950108025302607788643202203083199406705617789931338679303633652684800147986379620794323201059971557180296613630735320635186153052061425217428322435188694345203340549691734941534001013774578808165900030204162894576773655182521726849593318569949390918385879238028659298335588031635868187419141911001012116626363515665078511894023420692246225194671261539875288574794752061435952719351030024186783508808392438479913031480074905355286879326232556351564793700376499266238961382148419810035730634879646618264445054848902325623649261062666143908014708248082925756999299935865996880804906676978560078370002013924399661982187960223770216759162638080301437879620362643502771321339179963716477741584527048706889846901867408181572429533558606512021573770576893180514800857545055132779350558722529391818227450721284705754935401770845593222802034665454322358087974687112093135245476100317687715255268878338169798444339847255320056135802688728870836823498926980125626348609284331654304468125732637169828502825856641534676092096359150038014111651514685603736545615730302520443010798778222228232198282273705228536237123702792846873736253865122616780588946387657752618960710589373625155621079321736558795956153456956871752278518667096640978087882584291046011496562474261564776049765016510260157931264247688550195638876500648783437558418070822410046901688815445918528413620750749970988221716451263621734623763916987640367192216045342314603157838310477183689601906806892741794475466112386713164944832532196905020184060294001843260052222561714992745217484917102286493605480378511047973177552148723341149787435426322928703792950596633708493799140149790075540912011350598694345026667608640319526075077259518179796467588381849428938916394141954107977161119837883216906693538232717076270681879218985201378513004234168782626931850754079368017473510318345779757135752895819108942316880683601645568744454295544175170059589566514451132370731524068584453734244269651991366109870645898240162739736215338507133948531385088823815806565995547317728618006460685701471400287899126268712538822398924065251474293997379573016118675787517644289544748418850043293092579132239263129752763177410705226061222393247704330211344681509874037043635049494844651594141678912901168058976083911004290824272189464676025284925423306319900999181768072061377325128751355995993462258576085104111568110380799049730064461301954603765050652465772048376410521795709229117331049707303795246582894395200070324926103731183171661716683654363746197756051855542831780683772553726914241204817596543984524781673362044186903139231382069605687512767262530994697451270425456648943027480912639463222704135385242493844258939024256741706981978664639773086210868279594968672425804224479192979656562258189347968203886345063703053896938979123975843450694339873529681342352283077456831402971768438539052303126471885450676175845922489744281984999968217567778030553207558729147941728918836367038057662727006398900270891990099534272419952380720864231503657202552109758513266113655960533354292181541713473576702297642079252178917775441377770034538611302909311312678127577035997690002039706545400967279323779483985634022214008588256367905994814357573781296466783705809198309603512686948050237896457373973747404990178166766002594789458813779794426963820634985501535849585350673933672674052372882161420700180390099298783788521774415105981538783390364237214943719841874391219146541985591755735150835421359424534178576454798262948597305489278763081582929623234742027607450457544171627454839325186301494522607413375668789462733198732746065234580326683063585225263965639040592874351295726181313301854648773270555658479547912226255588999125014986010154671932114107273386123900102918030682031089886370833435714973549226875273686426078739178874588659073204252092723960105441839883305768338721620938694139387690773991610054527260407058614415404130499818494943614103711643181481729827639594551068831336533085950715420818830777774378592291688455730211985778864694458380393768527035735716477690868259720362469956074284222406822185314161727392791889908496618839198643872877802752259303520652455420528968932287434328721017410772671006327725925326614732968761912303556051518108486938120243823116044275903282038341071018419596698366469922763809629712023065710524724184196668077783398792779626598517375101661754220467175862013056937324066943701387448937539938135691050794981381078856686092806874257278393054968828348236886475725458972282110573080846436504735580758055349620657147197158912651054165854540085918249073604285846539709276280860530248602516727530385179644487412539750240387189089475975661441994993351230166816723116939213081443450346248780050049849438672962626425925765787297612884704000748686236172193142684162013700139153351758953382482953445551756424797139363079922201883364877505428034914547432640092921774348659752688416043486763430199691077794707379737747774313603660220188544973058211568617614096845907494644312071923230060021419132757397022338564978219787209364703955981691866903526931313047482015286351565765631351346118735666156082610408188642454558210958762831792913107266239865739562283125385967164143645640967456068837360508833743867368625162437131489690743776526818970913414556709171680198808869069610666042152040174663860971400669071110971534664570931075341453737240914879228445275361043049958523470106786956836243485415812055441956347530310738486686875634306094537970615724264946368041778566004884088915227530361386463351531009530815956121085989747886927906747418484448840857223705947009295984842318748366738218657368838745611612619830057941740405412759532284562753417467813263926370017067808798711626129285980191474918977516364751671167263857977891382560114176439487952035362798386447301517346227966318795424475490658432557875992347664670371025337071786878741883042012485535182275953053316132831101774562153717607100426493426048822446631316999257818475158259913787242626793651234697879748218657321270770391018955679391773542273101617957394923290176700050139612392242625115107764309081447183919654895794249757084810712886479894200905577899368577391689195588352080428132125714309914731674936557575015146367219437232764262150505172521447235071673056832507976005478924196880353336148421331939127516806218382687987161033147049862002899944942139299078577899699831894504588833012578543172652413195089361198690308026718679730965699799602166178979771015900641059147330003100390545750381520521158525420981171260740084477988405599274728693823381362551845473054906546492553055948079815822966729023776915326143957196378626319693689380478924677702348486066118150247580265242018808001222181246943452880254039475491084625884557968126922895689549233426244344252387705353488096976949712639648493264057909482630648925224503200664817874741481174345685189019892358249933293981029488488636684127108892782685339537518965866551234671751590130756753434687852394788911424217762372770604300151736244866503832793955186034350861896067597711816796379076636984501154070996189874526021363947905318125491644500424676960208253030461086472757761892272066501892081068116549297957581033215907785221465593666539119324403478267486504348539291533024774639701588700212266353368010951491499924733742616182842320137498466840158718832255792947010484041132153076082222272454635746528509214697058280781209872460390000702273330369871055902010939858703348836679446351089719230411055036379051810059736370066959852639290768114830038998795857121766988655680892024097980709521892321965289097652671875623779457048226396598931100544770421840534912802274409482207307582078044550686289613294324192167275623201989047967151172628579352002020446690542190872685812738111097497357765280619033974802921790073741203069289435201073897851425000498950570906887450822408544642488685422746985524265845346202650786654071368979004703834751567734459173802662298213150169017294054827642073838302061921875589478822127408316520371687363419906231435989917396103794382571726683108943595428824820550793309277219952847110911308680962463624425369064211014120814776920526083429254521373882185629085982190306162348593397466100235595699810399119905204229940006937902337049217851500455390259940781579869688807946894237927828276105672964400756285065264677027576114446249908901788508508128448551986546083214706296939262604459092406624851313790032869581869871901353801289621841385512491373865966493602988916440724334346298735440424744194960107877368098470286814501560594741183468939810176581254213223198430799104771740230514521852599601141387486561673690468624180773970238009722230428942839360993252524952052830608792947832940481784083597885461014053267027492169794012496228421309549060829710005008150191340083528043782343944078020030168501760073396472866849494003600740001831847488561235550536017246563444381606392962465146477428337502617535613310549285598574839900091859236924202022327576904343480032369598451858471411114343863390228788528661350746210799101782756829514787304537810967745044536181397256976772282538927214840463888963482738951706554133168569730879103088503056275448560525825011899898301117030423990639928089146989562667799795571906815038541868325058486810008692066694455533565165008856850682378206832802115077596520368582301920129822269656216176562212092208913338798631365434775408425230414875175101440017238533066351768560479036786513014051839645268245493450355712728480356137218792416423272736459834941474318391629951902211053229143204488866545806713426285986619050533603491101782935674556536848044519291817021108012021609559854762085720058762785696090898015152333491728639828517057065600525303982596914387639424214667729085438805496952638536589325215725221849954601684877422637506009232273200959689084859092639765019701399672538153163314126768426831197498760410474711132503173340244974372182538708525300915159724406669281820057528127877244107569202313463217562307478955415750121276597903558525597866565943764902219305608458818594354327110929086008251030688252143125674026885978696166650225421125715651568478738330709859941594653016397568650830259016484919870529642824652649834429436226000311657490141632163896993966415063519760811390195176372992267486529977460985758720410338836673629052893688877116476629290011735660424900547566187883853173645476217534132010268363178665739634008603606765033388818700586220122462778989868403256817653551895201940983333929555183319739780181536343678147565989183435561763236110287789337121231098410027088217836872972304630767802204119457312966205066919692577978770987997408358971246670907064018423133140665882730750935825326670957449185653572343111181012379610613998063647845644943436827344112337830847249565429199437872886561958502508001179860637596825425497499646682602823811970117241487994765474286341732235694735952617117444149283115072270948815994541467455328725340474746010101213320044705932859648567340564831424578121939735053960608609128442546818869142584829026137289860243532214603779596257505322921708915501417885836435574557300322767865159409659076369392324993358128672988915486403406542692266025028603805727011269536378310813995377957722631812214067677813118088409064839157257704797660277501744829037052315514136160052930854932356792047965776338178511163176410899824240467457961325259511874194251789009612275030933299063985972354554831898622401281410950766161185869739652563175756990766365795027098282776986639416423443471779284911818602906462273901530882447809121050998243290852822734531485608638942391913392668656124314042307724340044206418250860715582538956038479231487220669174925995384214164294292063786020785355351784059953487299432316568341909224258910864794928053560494354896366335871451536523426307641840894650047891996966822812495903088937039901973610655032987057692564941703669321023141521597055661415474747166289182803559685266301388357486821901639272611007773422297073820142502859398673856952820348361583134788619300911138169065758587697897830084371952399635070804445623422799002706346780633740805458546932338121381759679065552015416033635572229592236250390557897110400129127908347063984306886932717689952915933164402656165297169390153541400683875028202292432488434097284673863106287699630676997156399039084486806324256327374130157357226843139785051717330283831104930782458077443028272032639666356230892023850165434898589932470452453403247637208037885398846524350195466808507419224398259074033216374046498362435590449322418526149824929880493092979742940532843655593679252742274570718549774972482884518476791166913421540811202195477982263822900145863717526676934260391555314448127554692071331389695010702394708535978543673425990346813011065440529393290065728465736272932795300004143370432119564775220314524468222125425994494893491747707019393593288573783750535932052806536628908865040506115708514339669170948325580386257885580126114946311547973905015586972538912463332780365948464554286966878643898938013920695595388500016887709405869779430790809094051164105613184782326973020182863360694378221384999275330105864121474266243665936224605432455559254363702602736447469276129476630360942995448667221969310927077025103037676798944374741538641895064000068554957698831983674782790442943064582180365214440784476816366686559831570411324714380289168951952874720541460322145364147891294735905475067392188847212623419097860909513504144141023917694744775037068329063957923632513292376783557810155065118207024337770004672854031182078341402712332693382636926684049314934144652179085685663730243496552121279953547799417142312939421584498856317833399634554624732129954828846958060008701488456696653584225633006173764211472414631104787123704958932202861203321340987483337606758184767367013400574104962780760280693208180619827653628325516014979930904932719971533716079570353679145890798509430767899059130035122784571502764494771135809164409304876216418927865332239349653109299816143123706045332667550921645085075430822248261212171793125791471985659393274597762339057221284255016941046916933137745585942332648341816512545848874498136384218728132609748097054471243051416138618052575119696978847614443812582989198117182301451031413934414215437635762828474806095539135068598559917239507044862313977136452900813969735812136277469837724272881062581637096075692798933090427358326802085126222746556509297958748051154467771127016358368780228343997071267955967080207135434827615631742977393123731232475147767553942353195739565755096660197714945698372938042865848479727137518525716856362295904700155786554073795634177460640989701968272442756344770855330220240913117078071452120690401571040816227032022201807092860691186706609398039258711025560544782509946194011575608762655840565243825961122402341660629435020945566938276542124472575161323548906269354899809117090215908444017750962231547597542909902769625936668439326667482110119651765935737634353834567158223178887833333093073149885541047471330729396887477027937166348438960359070774851572624056155378024783233954395789285699942145764065541545488374915739638576100800964713101524654591745266252764968013784223960101310307034877927598919370061761464485366784135179999623435497248492103680546673917056181428713184804452423071405949061524456303488939903030522065992948449936805812396808675288849204702053381755852669863720281426676469360248949216884969489107808140119198401684174639786916528222740794890219530889518831000642400331117935988054561437038254853959429163373416794167879353227101156050598598362762228008239520162887198336772910672019032915832750387103729758187714780403483995006431135497717139077935213496506054296306775714616222197130370094167705208023063208921003578042561438787275079600739428583865274092892705468487754161702914898713889740354468458489080006277592143017032926621985427181313338612900437971423010134978896949687502567672984587941410382673544435261701094789942208705062810612913079752329498518928598833450056946463682925374760506793730737831148314820320216943425006515001295134924940879415241450970493329663506571859620543703398214038851733351911408265172173957115943525973949411703612317208889424528657674775740661198082857294074298691530962585711374768834654366996278585823058074220830409618357601238592801665536364357278825727309265318122117019356196132913260304074783196838443312531906490444237313248063874288746905126082162784434421713169352333472381009419679028086888679139086970222557812771320626501776130428301579563105377259417540028202802810107103912302958377864455727647613186044576397396069181342423519808172708621484046528434079506613367468004827212760398621066011193599813192850379589812995840985779921555893334802259438023585072860426831887449866699975014415342860042579699376665581141010013997761201520094361638194943865370769120338157529593292925428202658176315425458242583994704929435631315644515555506809459610950344230337619727461387915181588929878083923221491089071670574774429007706358646379241524386556942712074261208932606474104511599573809949663271547544242823311485270790120848605939322456992160995121194973449020869805415965822579292493124135191170901967234499122583793359320054104582031327382442281772269099620626775349437875845542301102904119856721100315571142018510633421268287412804070734504625702221299371318851864137772045324535296562736618379286229320848429699088452047022865555103817706896125336431360391981788229846365205087570211090292178138407253034120828120971867474550004295672733546092786154119714953409731635838045380195989915213447768330260724406072809908825104958874597916640220253397418494716552731704187553331229441410438581451829183013432901285692253309041145807285879788251657927982066493389068588259951640714012617320090050557179862353433074523822920539273500113082892268618752151252569160184888109587670015208733483169897173713408676628771015477725552631760930363165061042363105234095199536059488308388402984171124977757785285625008101072019137639414305864152583908571699557963821072755286495826410336293053607852345335190289259285850053781493659962432977088292587334009758431782489036784556795382188730469790658909146006787132278686541066746219893263209782417242414023763850079936162211666442444085700917944674921623017790591341345324802729778260466307984939930253868210639719700042869539967072295043252587215520771323523366040082219699653762887417018625228270990615236706113313027184694651006689201143156429179619196094097304961975692694563102662785042135052747525331890735161782532115921503048272422635510521954612398877809259967238943712477925559474599834794661928411514401257104430527383139504148418985843248051712094138447534197694499058644592868792285809390945334388222436263043718017751707106279031636823146086539785547232318053393969774417767173523893545972306029410010872534710299442918895147463246155801384921100201563531774191462565956046109935557275851837194426402862636014745136587438019754961633010739099734582160824755816296296159542743344903514053653356601103433293015965927243158186903406590829286033119954235422321571922856645911096698556879647851547803309365283313014145609846323216261081598055626433529875347952623026947347001904332225864037069519749066078600240385901474946560841929152166526140908614891001784913481154128479495931821520162952860452957782553020461440611653491611499066647622833894283051492405264227022200481432254713866781657651683808434296532061129150404873302104228358219468099309000590850640809860291138742346608434943588548840091588330266828196774586779567800329122312327661396611094660929048490697521197371586437266197851465838730296391190846605380055619477055046103922788325324882973385951756182599771007061292917633008221518914671263999612848035153130440572215338139802702440764222018618983068106608106256399555451557891480636180172443834640739228543453383831414490299732939083215445301420498610136067783274103776257837023815849483740287956326338955673745317010475469144028691247652637236108010300159164870485847582953420136206772504499772825830283336063926021604008999463960458507787835543766430659522489014713167375651988739960997662897289847567079721349933471465121820198649212595177500165431275948502816032737045717512626400320065418247169635485213136859779598419465837354533962553121977667939221866410796352991746031505961991363026154878500363760734324457463183204797797520124205882229845739523715080738244346792786927552820982234870418214387852831072448785294929359796177393493262271390162105067061397403427319064367601653153811118483076557477072274518455534441576415094292089210432289492715753609967873140205206765729552549245084503762897914521934735706850723362907634761819616361807092107970962015322586441942977210690823994855353045629515784146745172551380773523018836117823459328690315241604281664934284924891398973498073427452948315698114934739614844668328849859492164142509653557184887063883185468338405047725681325061087156257324122293909398903814941604133057689261731307500719758093836082189443864253087306018842193687626519056177006079913416994366690201920205193603213482159331841435271396849396762418353902021649178766195231749721649990269889056713089905261069287078874073808103983846928575931484255376267936399048163040088769865493561583187357865394283112058964181617035715777555582848355167340382684832287317737695497930106662231169657396730144158629910899420826145689777421726019112740500687123874322116803596738501166097215676860107137323709100049928742146101950572987570499832313753554317288260353717485320596783287868579638084393312096266348618038811960202407065681577459864327951980385142175585533694105002514218942814971223747677375316040099166073815363901061950717120782155561910737030990168625395982399767593484099076422560551475114978548755739492185042968524104242280377632963670184829262844595399047970044162240332020467931054625626928426616220018585724374646423585797570539830255014292758125245891096778502249337037585080363312191078217797590848627825644764026679765951599399560074773032944356918101322748550841579521146367142186909169038466138301442626557257331663094251818780888725460161868468285808399984258042357979906289342355498094346957425424856043671432329803915583768457398405350381811734449756141800686428004764169836196045060395921352028693248286885044403231411950536031524369691164570395862305009934543414806441760363206169001632512794344171265695631835878689237587648059983593841408339603431551562363529332484116876985461586322999700373452047335586603777365604874323042767787541964172321029784417882296570207093076459952266209996453306708615171185806591654974362182387835132729082029923186431081605599265705513199260924424812005382142244807162033558493424486927204140294508808084352338310099337860363223580880722969553777623279558868598753242879545138620840541877056334229645420337621936170860543243569584560445305679010603574416184228975383180762240504595776570016012862976667434860794819155390308836215694406624327764154810908572928845451224742297697458784107474306020783637832028955496569146356697479438093824947155511341673266931794311568782941326698700358790456891481699032008298345744493680737138688003637396419089336284882051640124805001898708209683215322307697045827012179921717079769782261064443912016822665477763439580809441429112017636541843622107005002788468554439864934684789543360727917032912602692498386074518170698601420693162172253834750970707411158834885028699337337040282615286292715287738098146338808951791118761716672221219284217980110341641263773336297640139433972969074525925483617310710658984029575319932402396780351147081842598991471451375348981804267970893551477336791019371617154652736379672052059424369293512359748919629312073002750274601402459569798003549206303870716113302442141761717999548484531926403308829895214179363493610333693316418256931529039711574660301669015940649515583338454026429897295175119627580527028596707268208706801605049825728515647311204579421190986596380581453992985994773211980496785853288484436506496047468573781262095721225539464725098803796619633401681915825954320377950748219508828664525248051176543610088835447843339314771242602041465374834371812924558374537589744218845506528267055207247240210053092671272762918074867966527314892777600754202802819946424958938319994556332143970528093403588435227157110416990857832485141491421813436973983362744878543613550653623607817913361187395311085023889254901314061389105941172176424813219330790720113691107593971841217537840094039806877898996814266348240037131336062688977999731119819905874761747376267168857935494125703240640699654779952019656429178457957393612374280324480087753783361534937216063205312056377186628342424409023018912510090793560320005148065511878020863597775851150687016224293218401151824556774118938030506968755396187262196590383565455510395877414870950452087208331163148000384309775911144142021557121723197261634440688614637127716229813482220744849092879145580297893822858756471787954328206745404470549755108642266289447901755887985344065931501176123514532238834768167185366763003951161402166282453659237512421788213559888393033771912167948681254514340419944342147943761220833753981913032446664592177410362602775063108865237389457968361310957925445332299296229172285463310064439518646546849878197087548459786388834805921029818032459122150354555901618180019843755678120010894765293134159044374739641220512650326776500593732259399082411617439215765623739467923803918395581811498804444550936653441600601319150870411748850528030698458145482321887357176567385014660417490748952348108738177242546781272560607070375455240353936382401220907196053013425856676863139954266424999025582088755390492288699771662294375794793999346755101980594307037239887397172459983756517879665654531359400839355588349594366435251210282909204582074714175287550763170022643941434582145886097067392039135550196601745651407662125468767873096824894123206644058346153797008252579109704889216200445285096331280875348386175469903697865392317184720973468391576458546357553499734303942575381651539685645146909673911879388018911605005119183199760522739481997804845949477885766529989378251443688998822695706752853483665859767697773159335421318930909810849405320680321881358040810050954269675942699788820884754822042985161968470921990820136948488549948760103048089006217498045157143904637871108803685886785837561162013223361464636357307440817994911783791766898364765958655369541554194444658937368315730263367446850354185052545152149459159364772172563209904280756126821967598272553067409498844406366154515452471478070172199320115774320065500856644744668923790617048446999028334439456309570898080434311584639098069424468892104247691019621172332113182345096821459446658485918566492823029777365407964739441975199796497471669399478989685353370940825537179619070278267571667599225774640862579092908102970230605548949235170528402478152883194348168490645517959147998352628207658916984622210354695259547827687780569889189003054404857199298413003630470064321938656805721279246727777069513494404443112453678101669006084445307982395023453511514091417540788631766061633247465800930509655610022857192113631715958559385834895507103188458651462940145999606928024251704781748781506889093467456198708712008336125179207678283821380842922992731129024808505115336353555512790128052454612755205430155619879167977140333581370504323134557693678500546118147577311726504086056257483245585004070267042009032111138224771480357239086823011788287500762220985302676010012096645528685658117807721477465574128925342119694433106903681082420629969733338408613988661993774325943026027076980771195369215093717793129211085742479377724666112975184524676973469693331009289401413733836507971900871437471435991621943468038063159485459898646641985816097127293393068014734895161392607260604604813585438055748346382315393340195215050508306499653055815122552639130575855187765845869306176599504443751481100258632161929194130267734106889699196621105744523190086171372771086678676599829423558277565361233600851085623572155765485153931519451807250149140394193865896738347193693323748444209274394243000905293152072098251262233271687477362517740397587640252583643770415913369460854465243559166599136867055400016914660745696919225937072394588016044019481985031351966832654602564555433167156802188937135004491262207840978333030515135995481439897317080021626654911223521018293394588321373630977480898238043735265023978054490720646590927493494975460302042399378029335982343217827098095930866060982083340517427173912793965257666306885862353569682323880550714989176798917879652706502796311255015205455342558597951104193549408206313624554420162986214242487433582709965464957553143623560108119958475481802841877058865894971362560704067107044645745487101570977069576912548798930844410873490588021018292598726755849394168237733038705944294299653480287824604818319625192290834020187448015208013060639464950597510746431737990299601094630882292314548326937000890853156125110087909109161947104471609858329287708209603553413690266403978424320104746192354983951340158596059718789701048869470056124720864953048536357503848121071711162219319117923351318959619444539391552787242658506572129757220480540279714280869895956651968374445292881828170349284525171753296604215246904769676819261392373332350286356481684883257260822548002069340091491450779792632030923436356848126917051221619790254210435211952697500506735735210196488088354339262500566477702324502414092667202178669674420374240094656285311892449437127198981000588664514765959669678987931676322517119988425343033002222068047156934292309891420033357106736169758331117340144275083192129730091007856823826457409743101397141667859992926340948668002819576129837393248028111016281791743885514994190006832200714997135537798100618196473793977553891820385574588071783821157117323424200664440901712345397167701306465631568826957626693167132097254352404082747607192830679921123287867771610496904771793420256131976273701946413830764131772151806952130923972714288202623538752883161090660040294237850689044582767678999414786823350528903165999136728192195497269096912355730087536455503828155047175583619881566172549851331715599329325992082282693637057929909259868207042169276062679536952032727041387312097091077048676684137458323664581740509714150932222563832296982977797214025638197349478519853216283430388641704286171421806522832202200381585807933803115828616750903287393789456985002898747612368007141939888979463821998224482929951083923655707545149392286435870501734441921439158628634843935491739283082426948969005579698663673074791580571498246508208707547091644987559032617798897733369162959044791361785554430628266843703556295989741408730622743503524804151996171457138011114428199114477978857713568951942317127440185660821621372325331823542134548925224917812880647761764319213797636862191408469075975336699320542623892665149581036746850140753814459373110464285660561034500896733243430966360527434451624115345193506425104290219999352998220437891494424351812695140457135613523052050301638065851387603294942470330490157947258097173705490599345969323001562580385360839294409301217408350535180122471428191582804228284245463070029035753154369082269389064105684052673811083734422897941269030767582111144195148985938485022769393158766243102236754765967054905102563199118892365613628371815758941414958170768201053975851758605931957805424159680334824582457924767050542331202341251168655549134799729005746910404303274512177503248733805891007509157995177129788693752236777811477308411121275601921662032570292304266024764537773584039436158370571994149507924399007058187608439701595042091019171187671152833009567071711580585179997988432069943404432583856861982868176670345636206952956714646765076383423795186508355637469868350320419457670682875111665325431953332696264106934512605382859214843361088926902704525203830054912466443197941579529967452673491057971951641977092014139784714364691677074385828269281180282975173972080031867477711557642250615131732153966923477700417598657033933773692178342562781678119738685854360288317255186965769415699671637975603187793347174032372038857983512611682393668968725983420523170829194513432786442501794245622877468468240646365003032773684119769721927798994615255993347498967243139335316612540283462777447292869309293353194420194796725512041592006655507463025868825817231880680476611266820787634264466905802404871948679428660892079836831093747937557351356192299044689620992731413274484866922832932185880478542308242401066445462688355259860556124440010767180830868499721156031039528495752401233590944599905985061363528421108569786528297547972732417781075620305445465611667007565696317001890982950653463830055218889513318069345550786149900755682356580729466871413556023839223724836756191943777311355274643886015497806365221446969260534564399091823219336722103082480286387742329590049567164982518405549816643955522014431570053511963090302893458183995483942010170339370829981345931509782396129860896102197386702968093178404218396301929332457308401545358029294704920859209777626893444045882069718801990904855548429406976876757767591557523682799054269855262086914746900999058044187646100175781484037763108887046555276890043608221474979097056227996937725767248432626249201167199614323338057249500594102619421737662190718077872400466801010028195967085019140757072134761933799433054391090749610744728529231700643884050262635580618847013093977876776355336286834945025884446373989173444512194946926452348365370668175682184705389711362342145535369627658295890346906989346469218747204876818113672420111884873815769844364966966515089291746214432262857199143347861139925296399876864358676062468908843076126129671066453941453718119580595672748659682783945388964463899181681533476178771980658830762225426541512858193899320380151393473996531092365354931068974466895365759809234722782515947795660898164591978242527845987836045779294904438505195499355152356529588929352813304101554020597004551539840249877430495951885183897003545734987365686584842364216749771891340042617824001470493950352356490526287868137964059218073306651857878673656786549382537045471864436144729366161831767652963520689757307953659331157989305844450242860049962332436367797090822692116222533222030107946194142167723304208965139169488004339482214114848337510464921637812890177549789750099758767944175639029773667011822809791702389261054340283334907553862363803746686863686920373080532876778199264471245426075943832672205301356669890123080106404957967290477979859142109952900164994080370766297839305332840299371775198086770228062740687046006621484264507527738354297752019688219446211468159184052239143115270125017525105763591759732938372580883714432643214112783781758426526519824811370534421213078214589020556659483273528553739260864795854089391190823071208333581510401960908049333670319976171418222383396061125236964108521511441911760906262475942688740317981988195698686027104162701949246242784018556189270438981259338283733231789117434768233335409364836941538098971501806661762539205156921075882218284020993141023742684458089295342553080964063324845025298568503064389909844113305981065587809546489267120107866740711444293888630845878408383258792121899656128400848770400477243380928217608634803091748849977724957216369832321758102069922305778732988097265751421268950795326949162387492726499987458540607700682637101654021199753431217768642946417547232204595298518777286644946213174349966687431992906632209976364638178668790772626055491914987399838710714715235876490030412373771639152057322519526318187876494826697509407976252463036927871507018180562348777877485780612315563234412537807790922196184266838360488428925493254713548569772726092147438098182306137755727395391890314425008681613930927420448897796458819927730089356750325100458172039754524017456923599383007175952563158653388760144695933375187889029927392075990582350840127819318755064714702112766210613199069848065852848056251902092044826406879633255017811751166588715911793881618818429944681567671645632311326866884368195862834069232503176664191996942280553851006629462875803431849505992650705284188566243478069512998895390256789953123045100890326182863919663107930063185230342237783591881074040656272626860862156133993884607374817370563367886190022862122981665335622307227718498925055433355838725475746167017352750476672065783134238923857296592676272004878334290194967168606069410429559759747695579559063120925313237579717238159547204076142515192948195820170278912541307727316869204664629356983204385424143879443203165061369554671155270363674393844431155538286377235257737397853262114535539601879734102949209770705016328608244197869857566128832236097964177543110902290231306353809242035290598640152992203109299326173742393125636776944790047865209254271538435865173734233978823888255480363927441974642676387634615536710476236412157407820761037512735378648435004688133425041398151394884294385683423837443383483593467305684252941031370500539045663441937639681647100372327757044689913995062035142424113963820965465625829873110414098958388964427304441575637479616011742398927560914166084779240872209641536158528037013672873493754868403583180536145115003115974257192091899702282247224188537301464717119877249570167852792405397435535992648640305476697428290326614024421115008708681219194909512263209687594453559895858680576820268711514213292880699665856313843364105648266050305894980155557344393450852687367933975401506799405958024705447508310849621180568571405923887617293845424482695036136653022716260408517489999508574064711635341217018781063364572218806154639392918062722291689957479591139845622562004410173580582149530823945960305229210725672177331654726414262345472691333755596823933701380417154333479782285320049139631990383856005714305732983509227847251312587504531914052101057491497040222887763662018584655446612253579920368354321802438469406212198625405697590829145117721871941264421601937339218498899870500763942722704230345884074606567226679290540911674323786738358858300083561383279819651120367400929559827502971661796728258368205252067833444393926003345998879243328017251967220214619813845685021469707832061929243406942583511779916595012552564654080054646987404816743106753726715076922918462505663500279866750607156234603567896196990153923645448760488674089367644005994907126796698524475770067112637434627717861969564983660204037114358335129850983475959960286351055647787785523806450314582114320889227294169178426014134667348277612374744511958059865266011940739200311454462614238634473560955046975382731448228547195304466152413443832627951854022800043214931086478395904737782556061989475910677240033750438097325381236835786766270710594057086234895449289994095980265079826653119790669094671869371306465919553183368477050649578817584384699355187105600484423269324293116918112658387261146141564152728788153620545481626602368043107267275590172268693348019774108990702811758663275317799588340756045558567413889475398207710468861113870146667429466700416919349108734715818489814807321149915982291043280604993942137404308542273538014111418667555755698600023295336686283678235564554285750588804825032366664367429249767681748811256459362520672632080329378104011735838309509330922014261991112169943000617291825547421364417009606031750378715093789004419360354215184507923062369633964933598610465105912940731204108948118927902009863080097618176252598537562437087048458110972252825966743344767902060659792460897308088631254092578791817254471794259379971993150432953915095500085919355642907576041441345780417704140769889761534134487890928736863794680849129708523635488658011504595988263279587369310128943658624451638974971390584390808338252018835719152388400021095296215001558087446236063692686170893287336046881512936291149753564669794359547442541692410986791047633706709436449700127627868196019442192361446860826322782271935575324715429055498812071841542209680374570240291028993271797854717923519883424796439140614355857319367994940207786863145670725130611189069081242470629635771985367792813271357983059075946559479102315372505277191116526945231002943534406071341266860458898540371488248521271392593216966232662870361909266744907712379571443959713035866870858378357161287244257962460699976541928282831572688967623426808088566119390263769737351780365123720198879240735724086473522622636519591746708397810707445758437833101335891464399738672150279117595112978141518812565152980234301852153333858644140251608644042754365252722169650974373207915753350923674996312994612470083055000627670300718638260079365605346419732511259191614705596549632955960870420339061812397622712892326874664800380784084793669617221798902782509597777062701698605369556033185270738355421815598351109028859306037165445283883512000598222191185688245558062738710522573249164595235483385514231629435642870996010475228506152574123184375318089989663318438993029213777626425159594737727494661786225288190416429901661899039686733805641669169557325918544781660045427934825147506305862993062944686719912734764983869719423681024151102606589746074890448221133070772992563731999266710642395672899780463333050695525629873557075244404504052091095349956443905257292153747736953491949944556869104423119628784557196959406522032374837495760003834398893083373670055027200803493451184539626458835164654619210812529398995645295108949808057437241045690521964698063678266739637566131935420666514945304869891829518646180577836927069579118168087704031005604743994003339545559360635334330473026672389066409189685933927289819534843096315119144197118583948125955906871924210652374493405321377076876567018491094432046127091762630855894352208147959757163672374350960944947711657692978235534749266514735172595724446498727329935938438726261487978891740363827520525540602704513682593594350331876428761000592559408582780170468015451125180356881908411751363040556818232845569671617683013147166995646474668409294957968223870121847101251898056010254188227287267191042578348253510788463153241929115128182517891826285659300430654747761091269700401336340211809557856078476056950916027458160496862632700396096507157923200796247830453285683331717108611770372907831572482970991245155338009605800024132949495193789689904965209630766771625647732936714048603349188139813645122735979353745063958706161414798724461312318391433265451712559400580192054983691013469075822131362099755290128576569284597028016240816933829898528207879688570033537609257908025226834007185984775340009257640150682170839816351985861590145633650548273475034734458484894087692485968117230203735263275512191011329931504108297402859490964762952098958696758314289269249224508012048271451686284369246508363654965398278560942933574660275625002934217146037019469452010300939599092111291828527107496334321335057222483810580803244950078819746931400523876573984009022069484668783370821595096662135761673444848512317570726717950432454144063137375475376414253127862070600193111652524666717995497728463682004266902435219690177740070188428446401845996966308548591880270940843900646870090399969409778211740620965421948927242367927862769568028476018183084403650459705748257737317172355404983350535117751771171161870587008883001106630864311324603519758541141755753791747831629201426244840413945751426562375889211098342309547730198077312246553679467633475329673639518572789597416722871017787816812790971978931529651760640800092456447833387247403076608168331372681096166889547913183250818170981402056136443146581769036963431479883851294571549789955010072432318480150553695422209213279031424554744024048927723269007557803650585395162365011412515559547733527630976406860260161673527349935333383149757700519285861218894528358118892387317227955489791731687617640457284943014849750195120453254939178935100744291562779207520757789011003595269138919441733248247171023921190305704449536301402218556065639900810469937868731704939788682412069201089944387227509349052093410871373219541554304701514795172942743611920469744737446503865295128254259787905069635035011150150301087414005612596880585190809362214309305820514916466959012271997282670271928043814135273814760334676139894416510523476820491408162015061675407378926815045532604728439280852881105268874213667528779745734812632119071594435035084009350327402346701906125285433247653250580624131064309742973972666340858780477795412937419945737449026080822719252539520704366944255103814702324329449190688719196484936812469763914740466241411554489976047207315955794896778784441744280562536870861636804471808842052643351024406943268012073637254454231912760105140000360897726247081093389334603284459406447692493768226799382643184027492183777939421128615725316483421338938197261142156155899159982782653087528777926588118361589875192366048357673635061202267476842134435145330301286010083393917801401758220670574086408499359685249731953363663441765327551876718574744466915065409313013415013569633085622470119067887780778350479560508607364786893209299381931307113697420880765820167203086555957863275537722469112800755189442562074680798765029163311647928388892692481410683396721708824186870381729168555706160974017314390920675175289240622753179893733633040238992605576874996059020274805154748316101767151587265219941347479912970418208883852625392973419957142903150873732751415952743135109603653765308973965890966098736372416886188723887442144088355782486028001483094072782813797759336925974423079027086352974383399575028729033493575602504892832810827138760968518540904103685644370987171875012702140191945473022801015668139810059217778422169580834882442712368607356340498566414598820511734038831689998822288674503528245865827122888300560253893207406485051571817598753742727616581586965811299837937578530062223444376876019953756499204959323149874257862600510914882378955715955802405683211981276850556138756757542099327023171694928654922342669433766374230189223931442403480299719388049282171684026451546408490379149627582529437523411786329325285638899255510480037680084492009585616708308040912059544581877173924292215547315521123349609672059728214521301572337948036601737343561620052453035981474498478676998087516382740405036993086587881235460209742934079958126360385443132561146961165485538112104355204666414589029370702089955262578183534190923461099309640270513907331691311628096771484142789776427057090760950320908430355112896915013910820777032270228225364411170820882870196436147897074800782948392066668084262293648458154237009681975715770793725793168687354849156971228156987697926783544686001314936602312602137373611345518106714952597968169116944662384119125914065175382083984052490809317384827456838350652334825105059466808605791635361049987675100179040452061277733699723751685187783318888447856364853961246979152223643289655183752721360726837163676119060991227171279242518451984276252993303271813024246659882055526678362517327510331360551260209666145024965416472030429698039875198454008718249081714000361739495345247203381689181822227512917413240689539171873650912602836695439220581192289596987997396604177981220046230946732312189308470197385886842526298307851904862907337879148195093135046256992687808109928036723872737355863179729965425903503616770743592873310037019442068466545136168444466372756696921455868140339785628934993830964288863304220311212277267723501777569367942590208894297292769577630628205263759312304776182807892393906172369429666843811447045105015538804203762658045585651164772882371725738900713287119733087089458479813467682940101894147061196981530247557602636917546429704712419430169823234868378371050465410813651102780003782932150934407672980729991181795214512485778143464823673825873860854723267184834387320514871701136789145799833880949411330096301032956698524884779969439211921059781762468173534940488915525921458236027685628403028407938009142297488021344092140610519449150710285581635303333546088599409983510412298637724785627514796794415048330434113139082464111045454716202902087968159751542975830458493722583399682831746888872020113074494405969585805399770649825362032367387833623635468565916316050876458305816697028937423178137359757390696668758593358770808690834771549720790829675462647162495012319243241399085406867045947184488030554173091042349239709112797697236348492512226556201956705313645758482154333834164664509418354988494067439026864251407654813698699950646441852231785146240097084988107265820497868269301172525481308767890786669833980151864120910930475436822632137089452923887339923852901971315261204112905783669719853384671875297420706906481434212380878800956139810564544713995778577515067762024978557588609440410617395953998525084156210723929937680868109984209054940452500335579321207914119484020231617719702071215086963287658691589895900873259243011513921373622117104994355177206734781730057729044006715779805820202442433310515995702021324814460350470152156653923016311971236163381272261134277401568688564531021981013316933835072062201165013129959706106856637386427374478430459761286481823679918959421926347151858091887691312616538730098983636414656152079883752033370622859017897621056508620183619250302772914138277130071901189632308696946978792707120745628726945182311310517202793568475257209298463308353804677807571896023201666604467151386630121801130755160696830138094376977729641320278279366753774525591803844203584458097872397075232002321631969246435723019328068387355918609461669982004909950681380108155695382804621209797106733815897921155780140836424326230229134348310536564031803910171094980111622131230824781724574929755541853319765485988084437849641667825810094706846088639900593797907147637463750217217335743994973361497210589728345462319831157481570919461691144394981709200793909992009668831811258857813715471262614484838308676905909867964176930639410152146119906396159675214148316195645276584244774651239632646998750906689729021732887086081066462963255545241538382410243265307613718805529913900423645038456564849523746890780715261523408635270396489389265250681910431571555764615711773548479476835956078715208904595744691185544706223352022109951786217032519411670079351649207103711382837697722480118943971904447157793341824129661985089454096851235620240288325789472320672813291490056993650623914354329373616654780473305382008616880400531245528253995265838757957614843303264966245769353017800266618389897031227992763020396869975195787173973221973895676996527011911126158973972402994032908069180321971711318635107954005306206963658999177307137478257822314367337101967621032682471609186786027975225933525168152048447488684368364792519419617555233736323948655270434801951624906815236241187330521645866176362495715747342326253005488052232508324189893058474254498582919803811521065507080582809464987581718749888086482263943570903209993729063983697637150382108434209861848872832218834383079078449319754047420254853949820317020658078879785587412554826865120511517453495327099197023323688346770518628285913633204442325731419321481451393422980857743104298229346084047663548947992380095903773167227912282205743064543202871085837511301937940931695260912257067863629353818535480593724017687455795052499228514076374948504533559905061341426150089312709862727990737320971602856606370660350494332380882978578374935461781210082888906238684862407285553685775962447013599661312661196930344894559858399733269332746974937152392077824049656838714447025559100023944282852870873557699695395699373107608438281444875949254467708629117424752351963300423485325312213487799585958050807713416877182417287153680653230487458976981055688761075346545031240829795108527069740725345514271279184068012273179716400589067360685169199950555349647165219630886503059272114432179286445102703992326441251746950319953471318930064646587404220378253903651104467271114385918356025216664770261781231183268205080188338449203593854791514472465209739181014311447202254375318312674363732967112097448219048923985473376563968902764830301443063211152328922211028268554795379439172165610160496340893842431510831819710438530942099736466453576765894198424095099025654269754252853383835158324657942974355122136910313789107857413317721484584408345288026036038994219777105660988050639061642613866492177487091685355891500282871526103787809718954848177744838119815227013471593565233365523752169793228875560880386265762236431240344800897379237188586933810697504847748448174433558910984272844146740044329886220197697043974387490356572766868492111682499661018961292174391411333290701905230736548520723909126551073507968748105959659920858570356350557053176418489301644698676633099222297190811049377509223237699508965785443738610376182919025712187191263672354685666002575169083488770464248723960427194794907780376166283077517434803447097159754871531064221501242596555256910528966768839499856189171048449911334583818504279234248492517010582341526808103851892129412085055127723714360868182615232490614492016121926208199701860532151284258782411538796689306409485195547287441347154146284589650228697386245539029779328254502920495531397856267672431545130522432132354993202628481112474253596901462764898493636090503422747687575577884325748286277519368885832932806648448844755070980433357949796510821343343040107588968463945657240455328883928032220612246093555696681091604576479331205486597742378090432081177299964024932791700490624297001647806314242598131882037739663820629138349344874556497761198688834449414998885863120356784193982110313042675046569961406029927671369787324227489167740743617748027722210051876360673959691748693122666759736063798622560570449346907203590111563954504479177022468692940868949272214386751887464043528737222204126937922921189546192006158144235764436828995663435247522754306987498957236194636537250096410036697545895370797616007859774673885455695042499692651663762248558445540889775596550731608218221359157797930613519187082516566374305292893796332234625893773793856356087530915802284498376141943238095043631753864949837503755478754516798181896848460714311858220171204535521071242337149673698597901973854107850389358973052298353103958570276086236266599339268365829867270337934711265130913154777848185049309753947650569071914088991476825591541666242694515837455465399225604607483045941915765915281168061199191964900430459266815054147043925877573201821066122426510460555526024393584695676818215586726732538480559529813522723574823483794729282705526333829531661218196740102687956900950934312831409823550334649467091075909268613469857140080004809740896642192977022576096435546798317569627772724992455219436309277397986211513701996632458241549149162438773637565797736926989232050071971834668618667168998074576151488872881347352086359109507108987427342194032721651992531306984559298887480248892197451145291686276240812371819492739685812460509625778771799849455122738663526307211240454361805094327868651069420328978294705760647203673070073374367012087290585007206715802332724306745999394007515744340771932195916451584894380545206022070892547461039479866080445954280112821864834315297296915959673413491062546301963223759325336880962432733537261901508483034008109823711711245373575797931899726849012285517963401273795735626497572274338217251833646149937913479878951307784435865130244050967815222395499314664726875873988025023296783050198623043180783924344915649962363025862030639539766624691604270626366592667139327921983647773332919550424365224566048904969208135547678956619486391063053418690270186332989769539731068316833898674796116231880024221990911552629754056069166994377299455439321898243167837495535915293456857605823663996847248419232036972113750266231075940268660066848552487372119450735296686172442935611045443043703006897748811325510494487890834344212976792089876593622320335495213492242601590157757712727465439990663735740900622341090344662008094140477657487125944266704056226248414815174267134261250627596342457456016663246791790290402747240715323172991260652488825148251073369456150373039983185858967237305464536977515972688880782570167367187737329065825267273755545939389784598714498053241375194586708075202400827779405517458688041409535540135470985807930337910107962049031506942109010895927378303997756095830457322890972733793751246909229973534653092954350506458914177991388506163748852851194958929679261495692588708115854104655111520269880767361055746584752060537407294163819475013551691736514718285058432969379834814630129447325235568920468019845778785485171312121647590724870214381039838247822701703510625089567186500328573001633448429357740508285283162559185963693161029230870065661227073327725794235439016206649323592463283715403477859850000552449627302431584688760355038550417560716328320912097083096199611531335419515252406324636589672183416371916188689008996443083745484139275795532718482222587308392522555499287037823111928943629364293920835619859798288154579691828832814914308948647563108080063507172648350668090520982276592627334980935532645746475974324436208011100696566005967812951362547450019232409743392132412777769427410310487867079070756900499007344945109533539609009061421730559244227161308239580643584383294007238896606003053699343949792719504029867812685215580469240369199519726280046343400001813311684613261470299743650419871870690069186715599003816818986340576579186687590151784450511969120335529955283193631705403613243828237453909244795318512282097807676089667789951820516135769391038687727496457563675054743143639469666843527422101681901423681248027176976559466086645834809782205317858597107803647919645935749539316107705908180873247999751063305849015990438674972893199227110474410111157403524110551578205258600343758378783450336095096085524359460050931381623222414474016548298595091910127995649036990545696190643320683607268620602667020324600013046721091664347768762174353378349359556090055951790419305734245475825777331686921272347070172648393218008145255253780208344802902062261475426690402005926874067338193036027717094912173320963196449260058296733424541104925452361071042837723914724038212897225674818739872486172876421562280535362065123029712317776550964131464723089459937255752893550125500664329764316468493076800998499955859425016697150713578725775832194043452334605016864684693343558025424549810645699573255866200790549119329445088362783524013460140134667750355375906342455380728151097853461578741130230041553612033492701585442881279662736256122447578246820676476507022009845485870007415394802703361456265607584228766333206149412260850784245221490838990547006132169491404210904291166629666238564335586256654830831684538653887311332432846341851480074834486369691125405167757675320321830295460117761969172276481381285591289840383799205427090939058289731589957336735024760643265677553056627992712522486765924349143957929254332648754132366381338640948383493450945399903106808108749687635659418800559565605172578730053961627378722127751168568687086266029399059936754567972463528529597799104412297580556871398415738825657568927106126539316829803793977322778651590085626925073234117701956264455441473017409126705732116517393000320673764203583287201917088081804883310732745953336876111136722424566772069948470854673175718946460663292082592565932708613329919659076242965770234314429901205686610231487760541492939852403532592154739193129272060525469029926315531493468017886096430711424117459532286531451426770514463800882368908321881037403683447973236927866705663538937300854256693827139488938627891849572958249975535218571592083561787278211253954025549803813779151581233204813166923970790160683628682451722403033474941876614046978897759446799490742599290737654605751678677111188506756168000752492870192750320976149513442551272273371780138374744449523423051834437482822125704309776617792979379495401303571942186564083834086593517789217502572764421273809397734488010790074753139196414613605565983116871629912312513626170592703828602647954268586002750550934695805203292944171528582420080940001073156791714992141554336799895808720069280016326580791678125230953230406519997778913609288016149247679576092015552346322622811802181612399895728926238677272291502147370150919707122434438358247580295165202799342214348716876055678540735750755736799159672593029116397533232089540421941738366247488520270539188162217893969723668780040526224975802224829606748896534394930001432592302608459851687003860064139119977248005970463297878743317558040699212185738170123832624439639913433869753604589878059951454362753566967034818890527034419713701911480797305752060378636043380543942122440494287106043432903141364534269547510256702425179609524639062398758411114947812295119558630982120647905020465119554062008208345769443595469444616035356943170843030700520849875328652970804996392829174671034023667862701990521258735190548418510662984802115102541153512262813250790711761325591678722264609787427369626130356988825019869002922614435271764774515747113315184250772253610086434949002474890270425994917943161130041385642245913986210002182932478523655003580427464756484157813925233797104168971296424853882508514404098094992009683365170500858331225915598886106945632203000776775015949685489529806127080678902799292978168511347923617920035443790672496868768230107255625410381437158164389616385697201122728067694428797975632604585217246712295687876061117234144105708762592196968136495803868635437956915461705166441449473597110638851825480940219143768237141713178063610359299576241949046735556504259809478127351661488339809276381033218107365684479873423991528006323132242439305103656690000207484114874012328408214301811729317837283350559436834268590808954865757309661359777149621880031531143383143466818731595799075685528491649084301023224061520030327582357863331754808302700411863211550788105029071472434870280038599290981079326656358887182429695270871924955710670604325580868833271727468817701000198002030830178141425771652943113711036810706642007019471391004177229804485845863274074250583082121796917077101270210660426802404806315497505526606274356030463608520332811350471710330292975119844092241202310433494559361242642621882358355866279935896777603219275692679432285666136180423683301719530540577365373111286936767824160366162594905306416570237630724522955531464067596231328692429427300918019118491785638499742841560470520653212314205228135159927416392026370152639877751886784566557975365299481035216858738145343294231445060120873823848225684814604262956296381257467723716109216467655112498391608200127214536291152219533630108080233050622580462517417772714759596376223407307724405867489195931584185711888582017390500162005045848798598457999503837300633684154111054886063515454658586111453048220188665749299538732904690587520252551563025418649996069985403313918785873228050549032249066040016393895135379553856691906659933382999833018495206306316243530466541033867125294900654777052959226031536745279331354136353850116628926908853727028177716830450003460730865160166196209896579992684629009690312809316702960196714705583704870881472169512158955588777078854107589544245339760420620702879684146800968796337915998558331178302022827181960588776438545136669102088545320502252249070359249487110238697585830002443470981305079226665680854112510066901141687648775710453159661621133367493391090608662130440392057944356227222970569625321798673490038613125646301884317658795895953488514457790097883775955361835500477756021289252461732294640422867097275512035969150062326181251530732476131307373134547695805385070623906326500802151887147445985220286086460840198247789845921183218971763737255400515166563516923277436066587625782533719959240151551059609829786954712913601522016084937961397748662311534301426917775953865364480967377084830086842256473556359622201621579133890470838688063370090849228483044740547908151716234014987415389274237530069803120588050378031269973284029972541672764845463654864837704659535703517647930113214028708015222203192634970514514702296020494129204743574307211656099642918528629245706283699672807535759147077914669411638855105545316630711828986505859430132295902565613755273009483860780298436634526053758586967113227129711817353303416088026260696224729664474942871258947181056400555425656942381442346616433562805471016261314995719480347515169555306806533252433642789579342297019939121008013975878341742274359583681983270920632058290122981298214770769246848816553878119361303157013889968409497776636481402591987469134769621194803456968218824050974006546124135251877009988482010659640143052046834551397213656812401086646266822309174722435334707557425063571047277596581083697214379457668748094154301348331053932549004335951645141682118514577826686102587404739035235001058743256772697876971796156179799272859292652175379024586071669041091092528859054670471470879683314969206203875729725960861140524135085237312624227622224099566861567409391547270022705452313902187287543513635237378007054066181146909708216896847594334517435759879792334394396012524688936692918154146286476071558198685367690813339320489103582859207036215653239063804853479282029450026169050792850301418767792410345208644175576354773668036499985281131244914241643296298336117873658578299065629236360156682924446246667716677254018817728869531576694834228545109544975841761029656787043137840934427269321238381501766841635774268496027026279391772003057837224220620398152235851362315726278114364542512643981703149462695524814253416582599019516836680082722436021073360526288318613216662216634387372144546413640546190754199800818372826050102835859250436207525649242384931350976305114857168514525401320952497590087831683387160392304928835277001567088680959905503516326303995393455712364385393322035480597684988219446268350854867825120377734510718414783171698708008976637107735131360850085504780820363184637068711645647016144091371133420075484738239498738469229465785968149953780437061831202807568278827540100346081608452619745851319761951146425653562668811431226990063132845862307883587441815153791379377583537088992470990525231334685890299087751493719411089068695770743658894668163944029456812769357941545771700650013956430588938060465988841857405117190259231294411360312860401389858605616238589611832024549144393289111515296261632085311778448398860244408211583981324446541992259501048796596470511540811944215808898407633972783739768625616994581432851098607615030382573920503279620099556619979575756922702369740993683455220640851134306789933164618348389478189055576677694038691984425527904693248009007486641427436015637622005384249411478569180455233313912534890753073237668746948391934522383721894792355358964509227433950984671813112664191662149979498395007769531695796873135717520851365236712395207811136238973999462259725746520753811652514179676814408881491098578925678097368969869844327860812249913802749354804773743993162105272576555829758480113705643583401807932153601206060797183346481988039573396552446343459238515203533624736305774883970366071850845123111811662127679568063890420970541760589354313465672626313770698094867381676751143918754300674796493693608614800925337129353078103418465115361940289557515376579144080580489527324753081445677258877676942894363375811538074254825040406119527507435202235479610767291999531891969996544811198129486473454489514401358760086616620319114890783769525162859194982323797351603295143084153197653589021224301426093091685665102808744041371112645343337484609213823122255934852739284245601279833265485935210783065590357790530367171248756534046744451054582829861544827710137117660651052506010052197259726958973729651399556657300941753617610856574995768203935629337606651357355465924907994913344937699124542924050707126688413593884431547450511825137324672255025672005593437111679092012294734699016279333880311437160569533246358864392413279945647562173474385512194394705157993825817042947947212556753380695795907499880363547556393160397418102071910892307266138158058418075879835557596954688271656787866108200113823708103377920317766559027471856347982009531346404400241971192979960617289672363679548012151870118330641494097573781561441453456658765084551725333259126272191752454793304630194269622558682917655440151450466614398121244287619347876154783009996514029589173918675293889239900479291429343870701916369185297334279287878310579316244704591536229281875818004257142702555284509245663122466464489050878017964234831983314450477097368485377885382355595519677939195651554492792188425075059815817439987861171507697615455716301969990447155324378970723721566933715919186555611549911390572980250624804114791541845467102682060653244629301633366200866701705694403503752595200344003369033393573285185594646213411638258508471465577418365073467972242276851610922215305873628460424380436055974438652683736680111872440376583744742347783693694247526914272895987166928785180668557437394056179992684639866051238705096397093297172556711603892856127204117555981024531191667060973416241763913383232869824964065619676461752285941948691892602763320375771914342983537841503088872174399078297002749339046394676218186703134773434390702570147185809189479013450767053342890617085876541825457604392841974726934939802815428944340609390743826435662640827626202312654834745166360770711599552085633042015824704857197120199645351113073533396045084140088120910145480671543639972840898508456262544982561657389674181980463999534497918321293116505066005858287202350183925204887547384028729567212348552536989206938505109533713790439949758967519736045256376058290774082552889290263882734064134467389920860285023305487763374632494126020380697873927850905194394752523180115650034861156735335371482334763749698749438255123258561832125710563714102856846867593285471275176989501909115443973837320585599757132100552025583973754312141367741557571972200713186234045556863523071225247964278782942682866445357385439045060586450332243279661880599126289033505066589541243973125352609847366532112534483960410309846805458881874410726185020250571184075488193665807805806995980849843640118291297632860885047977399383747991588523285061156483265835535256577191156815892820216419042516088743900960385361803894969479182294603318734684012645519721956795308784852835447813887690512083536105290387711238638785711729892520330842553652936967148804324781464833530325367193966810885849721401863021602262356707480130146398895829559948591561048353886166756351926458414481298275274123631883345824485137519082525462406591052879240682123250608892635719825712968520397696360713454416990314263646338335437203345027817661627408946744173049897908051354327200762580829445865298012181593598922198636088326414468850759976046399210821713566328036419961669464039455463798090747218852911103073175676500019940315860617996493251512724825673865234277881150650512354161239788780576108968620446248069386742338821674472629780153380672674359728805081090434857138606052087196379655333513570138985381655467375850414456873138760777571100485720357736122715008225774870542235501660700864990866532247479116559690100685815891045252169755849348132782307219518673923414268602883282201593763350037405349773359072724248529478653830583079274307467837129662403132639379773387544157691503503302130888947339668051393996608537073971742447275710666521861612981224053129052162574271877651309337327680777737490775364818737498895138841368838791926024684386631479466452471260071311542289623811252241815419671098306574346251645554004531337445322364819654955709611664664906763724764319020755429166158154587892029413677572017832650403798166503066965266548925792621286705666279910896553596517457650052675620251676785495598603309133946336641742877475686017195757295660726368812066631331818244659347808286849364168388436947739974078610932164194753725465289064599649982463180144782892076450215307116365358571871080471434869359564300970510206189908392452816509989572450789280826673754948353034032123057749675682549746398033599862299402816701962263645620650474093533754565759027830824880991951320736202098094616735192812605517512128479074800992394067224647892635467912815077012805231541851608308642149625656625827505558038758797606263505281242793431724256349681471717096023832276731634670842301271817143875807223735594372715120067213435741861613241676262386030974382849711006597337738586778987893707982639447723376608646645870192764435766761286868520243800174051097239424036653207569989180095267260224919059401663897938668860409523406102624696613026157506714103800546206149088803608210261039593918039559694269299525585146683049553227284143668148471024872162970585463381140722946276046389414105280788877200750652041820155959125655187022145028428581038213074838652292835575078780611531668210123573728115072653313169849375934937869036535829637105646965783872361546004584763256173163578768184839979748090402786455474442395930253232174225089946672897017532376092616170154954480307763023054659475389136298734856475376407763945233868463425955105219472712029282417947893338729310301215171121884142381844768911549373836201313566441995310280876896967148565307517141704530748772646131763293358778206783993959562076377489042098819751389304073032115802980578211181385756246011686623056247995469446316399876819392667608828147637872528232541895462814032125904848623686241084676465505758719837614402151887174790951361508777016012802327400195535900923666645064804769181006614867372555172638054547493397487535221072449674241376265601778616544448740853571155772858513966357055465721439874816053208059931598769511752179559084898520063679375323529422324913075096191463991907392426720047707630368614075694582530140787748323626739675787608240089452256657855227601003482128565282664049469502962471235755013827619643576596018537111506990770426822900781795000263712747768955646000450923345669863152941851709188404786748732585386524316894365163801754940031467728882336508853377053470323271367770814107787998324815797536925455790525336696139862489483701249253210722504153589237322336252572013545224809607700875264826827357753419946135151591195920588830302873311084754285225853709330067905418878873404199386100535985027845704526139252581093444769444117703956805222795543913751530146623751901750857712965177542578019424718941521818366568887255715090022002343280067663592237664394717472975135304345674065277720522856105156767694091829422926600987234039073045307319457833453096533109738762988665509801976364868524202711440688839785454735191932423642085246154686096400846117770815701688063868043514323596376916404176172470912475114620415168155676744739522162641385296114832985441837736518819366954154058565795965037838948010425706225652900455616509266333321410380576281580126140608818058943460929684988668260127052002231996466703236723104415555549472753311521927870457730695718536726027374839316962480745675866012556915009878885068437407335262887278849317465443557199865762830888570424853210858589693653907005370999124474112375796180388544025036654294138159191234694746984025963277897021534569749769739408578778902883682184808573460731265550589995108297157632307954904363572796315361179525625159787887146406972257993959453436545757173342008300217930631233728861227741257496606985220187842548289732460958067089850585916480902317046987589948897425696760931477467643880355024942915214720227787226489102729372318077194227512554802481492767237248638061636980088132238227042659077594981712485080987913071554054995751518286564366543891542095155969514301568849728366206004283498101169091603480345517135982972724570655389991884069912742790341720672432085737390513016106539681330838468541227880875023819875280870873086134324554635250391690404548498360942354308231242063714114194318390090801649109367479438204861489666988054529288751647123323236950532947226937788839059347161672958961418939157281404515795922253476939730093252098085714017128726977502994101516669028669251570857173753426729193269320387387340805745501376580969461758041386606772626301534376322094480485458004497373966533065079815863923599586977020955431272817013967464145446932574873659978247035380917564981287065821855276647517816626500855804991077764136816897022621338650793579007803205842966388915716554433275893089337176704791968139240197636148729319352311231794473136335485456087126917159651191758989798236083204098763122774160170844769469377034509963737713555090257127960190456548805073580591435486439729010294627093072747088887557360444759269678779053442692202430374798271882037739468979279567780895371580238243921339977637205744823313712508265541258472445959426646535261781643779587175569358218260501339749131567264710022107388482152242259297238170766003876625476952366041702381496956431410451351505811760499784623957628841728322201443775140934297479878862087802470132022543477452117375901912376382179404755318391784148051259993983854104994363974850922636986834540462970588987746666828941618927900465920754431926048448838870601808912758254295253478688754126822673332423461884307076534172999974054968440022715353471695896112206401566741515635244435161601045070412800424897012925886291669893687260180263322279084017655655946169264206422667586093784435684149027360233214054268214191088049824846758326066730510783947992349763305902934500752386924548804616021678825581929505153171425302777842138166930534724093572352197812827253536281841741694969727204467393416182310009771553294462378990674275652619638083221980609302846921777960945507511340347032645168970374421584566134522325893844102091968945169844293994952342129877945071694724558672022297447216016161294807427528913278444495095599550650374666283286842243722856727715931717623126883426635626045382232484235058889600720773223341487394405386282716351540540176954619828777388505842336515082292471423973892260652525178110401413054393220771581300030519155881197779612262593831382605247121030470306251678103074545676615793858227884803007376091585873185242395581461851854428184509830013015505333964600956230047498143695694953723676633593566932559125994679828046581284254742424085558944670396031176265102759869317215990518000772520232979513261273309121377282751515127764632418599662637375325700950551031263843553240872424753314390067950242580015378766339553765985674310352934352285881245250822572134685504760233186692372282882954076153696146033574538319386697288087577778577653618195318932498625287657357722744252443017835427209616710312420266046224369140111066055530374042765114677919351656829242418391914043880205548195032209795619725716023254185055768075369260055974266156609464911012587433095979462933933861734066562255256095202502671800950241862412861326602796543213369517796737258662164731363195746428959597142188981104631081673035503721638124443926580606402989970888882738262499823825676116394949304556450403135194535334466027969390356192257549286412690199789905808669660284977551543643799305491613612582017255207448982233866219604338380681809478888830576001199471711366758798472726390849617089501616247497128463261835703740233368174053489294552707794080989305693304881536490471855119968157506972585349724717079459744085940417814476330901597361181948570943794844481552062554842651961108817720757854241038966415446277909872159346680447005498874174691330979091072600645942774199412363390697421481625347567158988779245071510582625247225073747264594379763787172371984534524481738117895059290197907619345504923808356431043556906089051717513837420950359773098102839827648619798701140307933089364413031638800303137261147004509994388101392866212981698118185226445480110038107129201139977753983163312239619147873768996359535950880300822551874531072623734138023758747336907439441078712397272232349745276369758971774820776153193400546576939617589865965095733508234228503747075525094544044721413777016834113353491420493357667567200724429897400685793259489133129188714158396163468578483334898024485608137036488273678094966643097130067840479066424967299490567933892794183065374447053111766395154950193822467276139444055807027562011280198766261826110519805443092907645809294405386934831250842061044305891013570380818717850072626199294818351393033806587699032225741283697856239143252636571247802217378269248433666298772623477463541310472972129289414196865526846025405488664896788969644434649986683828505229611743369330305333174162043998352669757121245457319611310969694192771371287906018207696220230732629481665875845378538395645962643823434464528198656770827113135436895796543111008509591477032646113868180197050450552207729982589251506790744198204026583423398928399876642824487236514772621910039390949207916882666152092173569339842183430149662790545194683650196722343706833267755709159226426093657516977982978382732550701526989591872674382786915901687060823101596584854771138164126551880926559536910491125800493302133540297666839766093502301034101876599169815487394815424284387771562726007760623464336702166828381821841127454144824730427778579026272070200716769789725535539812120970407836484218216723982661238495929596607769106552145847550315224109779035410227386655466258405799875073236987549950957868519454766466886209962788767560755264570444599731835367151903860004009350023806574701147835419316017420750269757168422597981685219380434562078038080381954456517688399723564270750911065601009639857361076113068756688335326478396174648365969254102436322590839684093367235613445188071503047611275406762344405333930337932612737900020693814226961028751898161621521178696719793968506475751686437727336617156042076603385882680700872309618580345463015275748176799450372638060233458921828143043034016295878361343623697998208445918785476150077680441109194952307247571372471311516664317848212154624489981351260473645202587832631381730354662960900171007826909551359257951781827571418178750071716031664575253736188124931563190976481910795950686620273770716387833108597540001177800903138324499432303944128583296728264582028908658651850342899451570520459130510231720865408841942705622101448421769623051727542668031829420465548957899851241931886628533252132462756410932475760742406964442783738756130160595348303225190550565847551572605304461911338775562179931983658112099163418072151286396979496711723866867663449166667090909100676185202755594258340576047005645789695891288910001572421596786676037603723677242218178945606269769124696701620389792200080926189141438474834030352779799308705763979311166276072141658491461621712944700837424367868594974709889590194984527204768745849487766195882584166939792589569076879125521419343338554163032965904033936919013204476244736489558546730633031978046244078626856868306114815350194271718696199586843224929099037410472798093265213190399721048917355215339971212307265720997994072625187832998831576129936063061725999211521338192596712802937442644177601699667513342559314468159314361240277029758369721779807108999322910759838430044173879725758499378407007846074460023420399982888820309468971683255299768345721879086758834600678216845928883534429306582012035221847917553396047639097528228990231089710377214616052823989567147099809975161417668904401395244542850197796159892537456610940194828955329008825594927560304075244772319874580513903358909324928088984888801865503070878589840481869104078515918120489046732612941308926586288417241391060480706347343980942525949660993081453259846255840820098239667968166276601582987390337470899952512455285568744761304896370698074058144146478868155358967092525736123087523934481934311520913227507607548111426913678939734853590999297176200221477028735594596319259439850691140004552822266809165997884593994634790750888239098264267196600249003182946672379552661288183786222623903217875085872277914418573520368134646533170632083573137653482436406991374194254203869035839088999606499007534208731557090793875005712349862805132076902719168694098645230165980965389140764202507177045248355684483900202531573614230462314448709139905931110820853670328812345958880916453755135307646411625725469557595882999759471429052819542230656936744806432547078058238948349320748639039570918069100701109355361303596766248434229530529880236087980796107836876762342558888942611760439474987171356132833168121693930668035841407933833254238031295608110821600568191072197583016653884541952200521137494419185012004708982000337679455008262870479465792872699469108046030552849585330530369362346674625890977557985356536472825203750407874204692392452812445649107904278872520708937692027220458620590571385124619923115342450291851711164066009846862836639875217552675392995304518195809697262265368356485634499680115890939922142879823811482786983292129701428759829637524861810732723608201694813606666654126355350018683407342566773600626982281141067335612927481892765860486764666951091834823677161032941199416183442425648067060344489132959077876401684889088255392975817509251176436495808937343892888963449308036005799425972747897298265415662996447101181333229553298572268645141315735203441040562558666530133825691889036409910456941494786958346880437676975236200191144041896624253987264854052632198037660008672381867234875164299153316974038737813807201459421332463181800607927709551329061208927576206309916339296030021912348409730119683797724207614691364253449366490602564048338761645858429328879144944804345760987579589709279732319198632569415425883591624576844203620400901921039091365374024772554538322342308914153769141219289260558613270522194378742171652273497332500670601968197430818992090207208710942698131221375982286968490752673065503775228540351394148822411735812280161168939217850906772721835629347670821705589297250635842985976603532853852792563376897316028200392381376877884144283933094208726705488603544082004735987659822239310772821575478155255813711668192976053868164822309943048226356068150928369764087412513176881464243041723797644430552828554675038483279340320056256498796311384572254571785581442304635148825270956085601982079619501380330222234304152720991790137210602757745856453810636302472827774044327847383781212152016915132869772134068760582202830529700815654036586580063647581197893255182118830206251930863006671673378328271207847464035380107582589273031130999353938901269557105187728664249962824664838650448639768993691028790476086481088275998349158511129351035180267819728435857527859845336425779695501875251363607471508042621113123001438746158346656073889756112260010112136666482623858409209880326018078265692557731195777218260001371291194778576785265409754518642301275600516025433653939124884966667333732908912531928807605281295673895486309654568782004166463707683679335398018569949059834146534304698831688452106179363768440701131613034496583301064379696103509929109860606419885880649835864964780705163712587287968219244126444989758832252448955485667267695829515720994002810130352459338034401090381649660004315053567938798487279737616120469876051155985215906850134698228255594570821252421628747866173033242351896801780810555799946698744740278166852685559575221020607706060640234544028646638233813859596314121390691498593872989626317334894377394145133619600943869505396738374975182222535720931507892240243859616602277485926220026275518047923548040892056884345162363033392792505683703585692131610020092817239445089752158364352084312556287501979829030421432861491787094241588264009100356657922880827190756507584972877897554337508652048152539119266445479045299956891061642823694266532099780095711602581492502357846075224552969653568646324879252432738773863611496249273808296394904760370651680825037543166648476566406321807520454635396878195182592927964332133588072041627311993259566886156151886317177137419121057847438392290773252256126313862673076813644468469643818513223248924639358765946228213630065410387869689219985446853404222317175979774037755599309803641899182170479146938440371475595206102003847147667768287850585476565367948232445315881426631760829224626250151823315201792669961915984026422397313507825020372214241574542521542951143878212759162637789588398152776634331228194627879154953164481635258764680027182930969054186118839935571656342224045217308702475701518124359036943846782136437676842643140863623267529849059704769641142330558926219107954609043607932862215197113557551396431569147777157464814183338547876585931721270055300577045054088002699712550053379489706997535810286846242048861546392963605015849336374374061589436413041849351076777504119340887918363630376013572566598394225097114558550014464863930241017313389187084836563654519724010704498240430829049659879256726682541054655547983311504852668483755889310712587139924155449127558543115274901238161209132070400055956071844883953847935293736244963429212098929207949851089216374555024795258100661441108471426434897056678734779414936374689303552297180872515562144346376599953820695872725975483744070979460850167873080904179864424455737429518840142543400331391713070116445884123155132213079746323552857001224649756451788640305162862090071978294861563650520282234654032595427807190858065563725178528977613015559692158350906404976644848545606318359785367178556693917810792366787505287415333175375722467423522320521952696827365212887828295926064747088629736752909178636268226057202125866460912177900557622814402932354941278910942683909990789339684509496818990297913325916434766603782154439574984480871740481187238808232574727757232625019206210579533576699424133945534905533566916244277513812317015425852868053183347726591571430408417948357996746525462884376224981558441700244054494718220123474843780040170911204495917805324261785801480652180662355658452679379182460832694550947190750882207140165126959796393030685069060940385871517824546451189287024403810289098196529940626222196626406577324722475012292363244398750257311650990172947577093941267587554067529524572759888667146582003724662247164007318934356811549652749702535709965797262485744474614370991082883951421187599053242432353048772763258872202796142925514727989695253600628112256968941022020386639101011098669917539662499037528580912330018724825898803739812082434079026409427157344623788921286893835943860751571551413174213462619015506388270593540237888417408105506745179833754438193851407864715998122025187087271767510598823935681183345677945534696144440874681797090704670806308763652905527206959483714273721032762705366956415947136735279977450030821986332474925537229799471786464511240679845405886833899355768545880147519166993316838141009321359787331515658771225685201897399155492558058040350780890127013178603986642235969114841542856460863483588079893237816989849800715496089220370521691712713677757826278382639828035536036745827938824828449712186588108665045763248238662492017484929629249476400530348170616987558108400986041150876082787250019858408848871738471379331813981554405032123478671727845821993392955361230872806567958769630711592020800768719850443404584646621815990291236510699755288019278828650674102611787993451551229565495486393243310332793078104954656148976840435853489361407613745056029351451789600001925560844503471307938104093907419283296612767377058432706632880325975372304216337881080290613254896145985435866578435741651926105790911865470348398733408977264973008834783417553986607416962274246357754493499387119150626141736685371139175786952954292575570920998103588761639452460013630139431381009032500119788183869299481597441352238384769028125078119952575108771858245750339989642970291068227316179388241725897775446172066167914800074661070985986821457397335637472926556287337643682937061148380577654152767138485835966036271635551187373702081982794920418917377405019763683187586494630406528886945985297887714961017796416617024588426722386442889730310197240037867408798499935167122957297470558595377100530686886017220099393600719546641222118906434764806484064067428342564154329708406230965996821566286854821120395661558216096798495956692771939252558667921582750058495690787732730898586493735834770455600330224626002961625121032969779071814294563448870243376516737032265985761671716635915286137652293043845617607047799480593459151826008138064482396707548331735389442367417084411531476234319313368110497131947442225305135148508192586832142452798669313233982575175154339784535328048118210610894613661745754665712537449099816506227075907016005454716707967522172114877027982161404404350296631136842316560357912969464441792343990577653654472443951552174974006012364815630046950463929708433394162397868490724789190773914323249360682633129180244416120108109072250145947540744003134929039313896818698816764673980709727609833904390845871607633561759946311380927357763443055915965164863873583054019589969803637238397699043499524046841605093143019516797221102559364550664140286612220343298068168298889717652976540087112294251279249749503342989509464963119692117924080772438964882662570981327569353070439216718226902274162526682313047728995964839381599478029159596111143735098262957624291940664597490901528625384478527398093478721500902589013566574878785250888283438268826342588303395517143268443574769148233703111880878516959694188756489330477741928600095307971203764408760807101200018798869484555824863673080437883189354621907337653513067590443145697543640469411714362187813184472501595828526041864803832308946243012972027191027570444022477640150270275112337803840862796357209667310007356259730843620471819275296250157949856884334610416615715544922866313949441653540349955364557285507778161128327309426377800452020896257748297931198628464695815550587493222203784743825563678396680922157208486776266889238366871282789041605834205036918984829552640759866369043813427359622628456500994709065401467601721689546128787126007220781929653844152880804247701414072220343188525087461481419205133042808525027560671908908020745573144744188960275747143057277892678105829570957220891793616000898424655135699338072040765367784721780647374107914212450721683014111038937753178889062941592286577341619056690776765776020239305464473699684701406494184708098914142508577706213865487325694566017395868808193434544397586578464506018326746104853390663717670638409385116687989800161029232594849076875876962794316646322622077711241055675065554935160982431665895603193677016755100262850329633351440499454681313716843339519209115656834930746235471370213654751992952266514290944816903204191098425931564586120307316101845784474061418299534310880909459871451871648769483703283585063541310343515793932263654939218142981057137317325550173181776651937789477531983140317596573014072763190097286366108454755633339895503295304481621447042856272336842268203013648220062734913700238463571171175275956888077559348771926449248750184675694891415537901029790717154455382181407164564167742823703960290018759352366308890580278293288690799444303313403069784834825444274452081300600267264811769806535479100337731323600535713823265992095457585213983714663171151842251932143033413570472165159427303541744698444507519562595561145462615010365975432520816677146214128204175462983196818935080392107343220625612618888546669306854200072065072424606337457793013631118380948556318206642268683761459620062652562044478409830022350804194307602908095490264816321774349724989934646409424806237986504034750437188441385888787392298950327001877484643129347920829614042796902300886751937392096460471725835689896537413570706769243797882927311543227321580145316552017040770953735988922250346255660809561067529555149826314735515441369420782905148858337996941490060165959796380947323041336367169801317609746677595632238098570057169545375015489265543726201702665840395710736430106375829226688723030307888185490996603058041460406431989213798060598932174527337222677488425366172800095190595062186394573417203133082873472636221560786462447980900256291173199967560101253816716134843220679655353494081677722909418879626583682170981107288830972046894866952886512744934088918237982483729119891295128187218626342861016291021492814000631618099307273252788081178132205990819791196441206689537920242058021155064328592153812814951329319145541825582771775768452393076372303368054228627080135388384206131120658241760353845188810658307391216772148902751006419131963481778014143375306198861876825047651274393253134422242912677101587344408372389107846321565492059592501769536158992992042957543980147459040026024753957844834625997507304843333670879977311056526235274390813576107754939193332981676773284771239231936206872049933837693321050592328439072934627266242786918139367691349512200595525407313154701454696239940091144542573784419520260102918093445764049623336998628001887686615555805527915847048921639705035554883023994061023450740679268967382190436909614511183443129117163308081616405451401166606496276328922707188326473707192536447477679262164685999878663267237723334208156597874638056362575389040847277200147954770596724172502902173849674422661092858865302840350000920217440701796495343155783190300347327788960420277615554361609178860566635254613821438678917879359132871308103457418765639226776949732866901141057723490874785495853739146345823575211695951917966574043322032578918006929501633563146164146393097497889018615751180642256853825792908501667441312777623117845705889998802224466919517133398284585795896595660963214373609966862885222053799321593496931724400006674394053641813425077404770286926934809408194974420817060024408009453139225804596247492020770534096475646075947693999430668131418865989034785337628095872935895571880628772254265245031974732465726474143991487338880954965816541045781555369826750284926714748814329780007706776489652856806677976579879999649453530062303118801805982189997969851536550800267653396767713620442094807934858149057768627175692874848352785907811269337962992781848973023897278158116559960109322301465545130403311845554251470014534788348362273003190434735285202288453591278135817689444206113298538391607325168031211064709637000573467212686675619222962880172718692981588175168628416279264634181101531856951872095073675360998894383475210839839447937713200976502128267261063266805168176931818190550973889378631213716344423242956828465142632079621446362894118275242937501070771375486019157141583618725397159215889270990613369010752321620397021858771807765584900060346429446395800600662744817708045317435582767516263144995477558328830137158486307297835465581646334544006668477354598363992470765007516315938510111330095354143958129731438512245427579288908583882704131964008560668508016651967881758751135596287564738516719784121141763524250906817991763812499586033187179011556747344897329106740734558990155680334516770585868030659659819899315972803782310148994421663028582231288439195088297523712958702724119033219359166169583581172568920772177924800025544341375394822968403029782259159566574237625121087250872655248990287849515771143249636871725906864364207978933523234805437185805638040080058429810760375117762169463805049954556447265412581460540240470365979142339474606450795303209064709230173874465408800954735727931032793858686446786945855775750040237103518763262906819899008352304293480453962879155019912629855678875176379156333701083594962013612339874513854863420662180016447275468541796162598635721679457932495905912839141456993854428721062233590563192783897277141970247698801070813253985874820565621956804244020327372488309817097321503048967828707501408558047634383144235288440520946399744239206153733285655908315607619412425782711051156089411590606274552276655633697296512040265864504018875944484638408636990639777993345622171244819498854433004036344436915898029519212193655853494431175704236692064296977192027882222659040720322054240863882526928597065586498613532604468417084176914342056540256436121248612568399880292422910310786065021079428670944845629443114385243038886209100591963927845879802096949399691135790401851910201085562503717339687151668776415038197364198334006211562872254982435302937277372211937705444062022928582806071991171232158138273226295543326256345623682175405811038020589200991302840609383255361347757817950867949999119752497179928060137754011250239337032621455739132845237215013092228056995200857368214929254294325387343067151641270580545262103909410944159781047815863993217994117258794330033725935838518172854862289182882647045934655687600123647028921932119006665184541769927043904231554256715623328819349929953225725191623803720783033305249849739099349978218867196958654240393651328669248528347237776833395991837498083920563516187713893763547517790263481771538307052872812117880829133676968509864804082494074499400670439032277737338689536167996660789228901350683937624687272559643081738701389927522234116478072810376101095205470616561814031171285683971848710634945743007973649119826943214111746265289804634791823424658640500681453908351686616062682398032500586212101473064975866042939618384990534750594103186896657516676671359151547684117115939607452654104464393693096392818417733452669212571728792701071467416122119774709424796851844465697876458390892586238196157012809002234480777312778511188410108189116223229709925593725124192345113363625548998085243751236253037218096106794353725399178900473003824442719432901948913916082695009061065236902582244629043150898654519355004413311937185109783785051144726040380847607054906153709493256834238941640725916017813602596435127835734295898707901549172929103857670872135551493767706587004070179339550105586481417283129567986892469475229649294453973521032585261279355304357784338304642480434716444074117653578793363139424557399573962692912566255180656472934046897535211055381306386465717313770102312680705340563316295721514246699990962738005448936515120232827215857209908881313361978722879746597112978928027996160270381259871050649636745673732218976194064915472755143180449366417728286366365316715164919218338244037157906053976741669854316978676101402397309756603192116832559447740080634824048725809681706533720751806164277609151739259176501922112167505193851865119624543162885650079969351967120661285668251386483801700119055257617405272498298008729390777632980379515962801627016389595888090621871396918674337162851727998054063656424438793745430051720906692537027924911805551797759351644249652231899946704775057427241770999795712724765283938137358785425293187450446514568004532755716261391489494740362552367667738796654976971821063241560484310486763874804626217735115117284540403342646896311913879243117261516456749969636147744344344395290941362474840680108570313278550556258640014118646688169710029845649031400013575083796898240700635695806606295218176363269197991305824774585588048387601322675363318306008213565767657752776754065923558568347556162930530712762364292913177306425236773637005700354462579028358704927780862395964841913680537757592974457981411074938288569327989678863830359395650230233585669411307422350673111361435992137705346546050943447230894935810023639179213308272598985927432248498972839096888212716491460010150090169142805420280030433282688693643488139348785652302643259247731598533521270638300941927269852492737829659975440061329157713461162515572948315171156562464508250213622058251924058970649808206325911131203168029709679644851489337416858759800702583549428755628524622581346057989803517218988976176518919759127243404278551860891095197849732286479291087040853629163451173624361182244310163015665442889630669563092535094489827844056691899939168485088264664066173948559323947334560321941499716877859467818992587639313910833684897242261631200955808597234077411140603577766789548252054748625272048737351807008552171216491738103443785290798221155102863473410523839509265698687882343477485677263922530591548009389734057224759120114099238133832482262502455516192383506926993302167400906704517794284255226714242494836276109807161899545663222483615983923283962952798241677960282772449463068559042472940498836238412072369318936334029469541147076393041915802453953036519963713667412028704447465675078265697152044353877571678770268396100993721016399295591784657657029738523074684319254470702028949994998032461594107736501804844625229964765124492050809846128787365485989610155561038699807075436038692567642158293220416759592013721088294596076728330110555092017275731590204254213412887327376430582075169173383612612225333951386238013145261826526184202394378092125783544962829087781967984596595369089912138179399376605334457930888467599344444855948651216796073859419409436858323887882646542632609435373655929516776054192384668604657271022716089236714068116930011683712751758454221301396146407040351732123407775158885634533595118519289195303555174093855338263172540229358603150288145415035118282575466981878975756598772136557454970004183320161108013932845863048872134011267018505132930527764234119238234134603888843155763896318971729127517212429816086244591982102968902283396079209107836205806165939044418873388550786139859107708395036996294655350196268623188042615247833439723874233649552737520770143934480580293139145881788582294908701938470033456990626179636115711049007588137311907485626885326149012025101023842888440774368611316085369159526938935293920205279030813084050261396607428697564328398110328549274455153793286510076977586493682705631305682451940404024430393589702234980109596050724049344454004857088069630162331936769299759314738564761456881010780933909819981038061190731108060395404181048157101017104686540307691413554620034942229054615705915330510741087084232680501794043136353604974417372668788654263834512494414200782169071328235868655774196298543517734434103725370263715875803007209945008887500051753732105277185345016897979527459671244866982781090288670536395068189095051607041734041374147477511246557033170458163941674259899042023157379890263697694946290811668352064178607094393903856761484382720242077858325693944746946874919919678363824985687315036448630281836218062009145532974844650302856864198449089417444115393234539024033862313490077568853155871514406327956780212586167750828313778244130970471095398929959271254669992597948428200895622524002382919685240200312938557656982812005072663129579164934764956211012466094484838641062227283816954088684625104923985542221268115318744138752969693020008742401616013971039511946045455209327584449938087724633150800592675525133106391870911715097569594966793059456003651227034549069277283472615373283944627853607319555891165774005400035884389072861429565030096742807516540122173847449720941259007793488963884676953001737537960472576567993911379424002670189743929871154278756935675766213377432874198726527270810583108264168328819463526457784203604398714303354480007174773296946342480262258926502900940772649819747387772425141430077077439164581949690613719566055018208186659696766975566084792374871680012578832795623266007028075165243104110947520675468681058990649124723780526074107793412400128850151391198274656356035559433665754003770197284190460979325811668866470028727775819097662184787935260215110727364698920737128948489636873417927790917627848358878682951309518872135512281231888141165962439143970742430955903049738146427769711102486667030354994580446545582291206826029183671498022072020799212984590835255148461574474016090057223625512992938490169575602350377068005658716712523530046741044925609390408477690027411630655019202284869073170863608481787122740873441868224074546896841597096873749149778225275887379718600877915968160914980313824432662240468641345014592520830700638499928221455746387288991575619496765241150309202493119371325481436485108099469782796600015181398413085819513025042345709559612557314718133689250688999741369940938914205517897675260497792222898237570794872865041306333347109467987371478742967472338004184983089173749056062624605903574343942832477093108715943451889888745077079062451862714662744095402968213634712909113509228536676395260593538603862591468842908459985596480403378777103875313514856883363457704360109978714923379268774512962242581299599382895586286054622289861538986762896425168765017704003645003958638959586468960826482128519007225553986184722844759457785719196098476941656895881015594577456040169360690062265004925433590706404912092007348152980261607039545289902111051830548600504492259210971548898796936834519967854702838096099799254560327547726332759297231706201093850790911664893676055314641240258651306639253877783007619971729550869074609731214944817673879985601888075371987871861700695457159811652186846995473304005660374077115395065970460573124354342566019695093655730507414927858219598092484470634804152405141874439201261750111430590585221324072534906909415333558828136302435664499173758227217706324505088136401918314250710070748053647265317099444962550530856992741341321125981897033132144631474318412521346730789039134568057789987375321686328724304484531935030441536676613679562156391742389309100585180604230359144417219512223744086722687043477549637787483963965871181826346967566967452532232633181160178580111486947447647017876786526785179346604106749691577535400737919034385746358427796889289821906761394836025777554130062616208161841332761428951334954086351234928227443569910268465168176277766456463474301458908033897161877092522825553604182906764929315822936172243310840299947678986447960747303862853028679914401968266766167770149930430373309683658195330563769992634747662016192607064821023498052440126430385812024029507581628117083056875902519750307812931801791102999875773795300364359921826110167610391920244079242255955315006649979812064458360027526220306561608259609762081133581902966676102259200294656690160531296808741241648745008855154282047957641644328239281314917987404313692632660121531126059769551220167574408727350727145242183039770546421550809109238618516892471685169470275296555327750802008597275474887098007785621140644238926511031624170296675688601789726119338767156823953274397187668758565465957249917163228756461416954127495689950985339466974882694437168285086140092355762758676558536419582205716943201002843712113867989175171598641274300211787615833950548522160152455493101506182035749831180874655558265069080459851089185575669945300738740646262967374520651296525096949766157333522199476227323239980747007819933691971317112685006097699479532555486405847615366274034797867996810719862761727205528123139778766259215106489274512421417837596493223333047827650437624148132320611141833988429829808071584370945425302633402951266799232117127466465335184006851324071375950137403077259232892978407396480096976840885465753961229492407887164523833553473034922935934453686624832452422156489818444388257101688068774451133087856771794956649771263549381150680623563035521756159964312866785168586868924748518008918559069003334534584774490022688227781194716298894720420727593452764053998936583395693996798433275377419319437490584189261960394564247647731734074101754845535083720731201941884250358952554817402020756650657246876226237364401791218935396032037946867539711346120227974384725460866125244790105915921047728892396043175224283557106381213822373131702387328682989271488814938436743664022970092842898534225669333371892398957404053393396451471503168715440429090719068414726274263894292050942965609569963164229784195441059994072545715974937528697843032462580206616425879515730268912726695487568508896425385355671730548636075003253078811326969758234636132430006244078815933862482004963281619535828721258791472554786778945444606649503839879332894990975270239877782943659494410842488279734965190716327294940051178081497208329429042050130302314032481711884772253214032650860462448467611809878471570055304817788817922707703581961634277589914854368259962299726939230715000340082055979655937012920627138451637950588745574625265281687769336108223223100533765844896592057440316899769964827802698151705519448457673055370272711494439319914013897962177517103038703035361067433415420644304214955978416397239732182266406209898544073863268181590663803377369780928069649507887096259577956876312189367156024094381788182239229547110104942459700183804450805309130792514942772696621343128065732060849288383917478555458764149846041774252400085194780152710270114441633339062446285978693372003256300435414467072374493542909406228124328934255784727729040985877046224822023483767168964304002638455327377031159987127419157612434582864341313379825352491612136819667365054152103882430476723711438532463196378522260428053745300962651576273076632340963783470212405499502994772490062992642287252488651878127106820037990446982881949496355004773032379694170562155754979394379959445267997190416057428147292862796889482257027806459254151040120983976681734559416981993491437453830077048920508042544489086313676457046451741456489499002244761368543957004858867274314295960555221915358101211903088725633130271285306107901034598997255928314926798426238613460690125641495037967390546522104812667715270787263773175462084762206885027462094306432300774730572861266750893872243042346976204155853902298371143687034943548002868500819773627151036482863510117285757809827728685046847422804586439083234852990673242207094117872215176533722150197798177530229781448244902881934281611203600902943100681527112565751093459848257385949065224108681448599953798414694073661418213652321639787345845526949669689297730022455134155916464605303692627882629387305225548162007918850283430628627297121559200336511596815554411803005822796066234869327351507639087086027854254363425989538483895619728619861008832266503860690450006349532197260229989896760863966246883630643832877194521084930970906627200008601028922774888278052691893831682988088708849032370818090320173960467248895069531427596215111970245661244492937472122242685446910201327821652771687856783318332500335158324763090982858357342044401904599520876089472901294086628282442972516835367834543357912806649152503984970277326338293426911299434299348120114107086548919172542277043128820693533005995626958314119384191071278019339981188578625886419435532795813871654242120901139356829083551439262615827956787994521195826114005479981885536158479487451666322795767375536661751776867278524369865220037038571613070813406372491056261694102045247368391222049902981565507901497822469713748478470969105908873324804921116161611122137862830028979112197011389587682141371817081448498284880370173404040387501123123366087992917334476335335469181275423046111237380817668138031624000673122363660545157417504182201865799869753961713095295556088648515192580240959408747703771372129005517413706847069831348680220242258628101684225733025920397716995222555338576318755362480649830962129406736500327081030938057132011778142423538116455793267094539747538993545753399751421259383292830374269938530586759997376561573209025775493156756559504841498031106087236009541168660252546110132702957477996769600605308294175381292029655536635601845368652209190448093103655919357050562723509037020678528791919532213718738216895915174059644126467129591333541644304917937389408143617577623479956820866770076234264102850035568338209041277523079961970748850884074285711264436507970241145359545756833426695445656664251813430787945020042597243159939067427382003614613097912629698601649026453876027453828854566670568479114735910044217708002101961872270550524900097268715247618785712723564668075078218151421713917749460398371788399900074402226810720030178229780833871301449474401856284775197469825527132543032923949999559802109261148189523059226538239006057903056430496677120530853530609687128700530925170289121152532941022487441499439883275265333866386102842833114824047954453046837225634911344991646208130004644820000742207401278716922677100391478512218260144825667792604943078711384286189570121988765428976926013444730856914155072486656773477141920015192765521972090439352268243402388396060490987086587747510244172517762548056602384077699275635912635213128689126085653430117257194920704863207284035008145899065627514114124063201576758198024041134397962045546887717410367304462021603873475748892161671994518935243073930818991537060924772503367738951328846873626147640512265824373749563525465990105802662429781422835934246035996189182086189509599853784593857604774268829881078948701228661787812438787338869946818871122738612487765234906700903852201418832957650094243317551018611514188468789299646975971392322552330890906018292286128812447108766195746131362414398992874240952412902228569603665523097240533414507761240165403329453949507226692243214403044952216216866874462901236948009078288090606071985519486609088053533687085251514632189323595425124407486784986106237172138738686393871815633137358389058373321965215508435826451983796448066616577512311497073007632180002174311209328419500599628718191437644312725207141585041730077697234778448438821389988431710214945199221382093626087602419034643088233225875124689838158349449833785059919935372517025808801225586130638535339720145417961507066193547380388098716008419594340635437928322623240911144672730445632050836423028467047203781164415678017615867547236370904037791543338377919152566005471776485951995393237130572486335804211183470941032163592527346282510476330974374333768512331076081863621623353826317670822433589572310786357520716514337357991394809328322278348585431261290492783373351646465473736709024917055623383056103568541015286074595225277316785638841350866001979455046615608786277851047351418966157032567195877947404988024593667958353866327140900803083132535051214448718307764536723051669052259059376219748427491679910360405510097291060058183682626781514503329505274324288221972941120747566642041538393423926017950977358832339100352398955730649296344276547095599752308406608839944056819385415042372988831526111686451801575870125453374692740438861991765874810961141915370051097141898891686867915706715795124192349829267815323158974492959406915258979850803573483327508104570790445729256188983243698661889181948445266536304407074072823982726495557824015026488477199158238161970859336427388694659495947230356467965730594210657199435895848998896705501127284214251031034912606553353605882019146432118059059566246051911656493666253607883834401584707126670342190014273631894369107989360251357571790644781164250960568927538414694868300430595305819834255713704874172882636125214375750051096878345915673209632138233138649206599914901790870984692684233427531771755836598858441683115976790118518146636496510726247687827932191891183310812351480086695705674175672699938138042372764329764727656853414896556449968556409977924501802007074100809372315368621300008041007254781149177871745968781555161702583006501226047645151915386257603204941951544693740538742565832012527821589952651141902036459127226306330063075603937931182005364944328718824124410602709151802243791199238117847437802999357071980584482401481448976655370614235132440242148715856091684854268198180635362117290497045158911690772741154948912172674745868104926887200207686122038988295106914463269382091470972376122061109544214912183558007717236442324824752661461326220518194411091607603669544138935363550844537529303000536079716843567105521663961114664200501383203778780275892349938357544444122278206675636509863499878356783200791083247077023150705201305816318694061496455783196441665598864451775584985356997005587154872418643895270784640931784253070386517166160309767108405939042997751050541769828076050348789427931164899536281436444822393597584084160442267250164076483732189773892911263060227728722446793749356170074666101061373031290831956991383117708547109708040357004469642292730045049306045453201659953923583746091443637539444546681780903617907719388032817283135001329360372289505095207245604332139930867408711352821641336484103819482164133913829065136939415077189970178622219830290410135168917377074596333968403361275864055268539969032627872410189403604180223775519471377591548744106492201001349685473245574336792010269979885957245653587999765504104783030025746517145072045599624003440530695547323244074198622282800628367261748493587424776890323140618302669518968229010961814747699299370147851308782819576135693291990743961862182074339320205649867914088023039218672494373676518927844588852980584928168850419949790960955472263270451407566334371998675205395242885575107916771881351667333913585611273621032736761099187785479373086739854620417807036309078683748653172368808873390790143313057800703878952772638068269561939726209158820502129204094514773665158411930619362138458642521008870049544013759612475280298339499625593747134005731755479406058604765618311358286088305592395336390037165729465134216211415904813424841735563149554726018958278765367573811067281262112527119560612285580276615482001556579341992863776053540572240811786620737442794627060052611579398625478284336823369575616944900891099971445221651583356654458134337920460218419690055074738950621432722392653102673998272754838632541878246417606750861105565740058957685495225049851378529624485776043059255439670142674535398080537906380169889427911563865746197414652710943715161702629668469660888396029233043354737398266930993794730880845524737720475312336911208963310284089083017587878974595731848866718195542195840677823896113112798063352771028900842898675015766247457092151096380014754874547670286117383445017736324086376293158183239638800265686049960606292781398012921248113778357615424741964651251862283283155902290929980414822641318323491562889975194019632102270981625735347244231210093187666999957635736534614960929327304908611805424364031486435389159274682708081775011475496443333695169975930346887083113979434837287368852158737966220878382594009105958254263510069356445995554539413844456640354593522418569171908233740596490094538099177242145274402829482884997315138765748087353436247227812408167975319876431690887057250102513682566000729851238336591040879310005146122151737684089678986624344060759384005575736978204128921544753278631495286588718714615623130080328184920510187088113758350811568339715410503733904998180210638568853330154304897829648784811061976475895643446585554108778112866915064500614158706709248878639180691633318867761932493259894362775737231005517751200506218562338354057970990579206639178234480746843989317509238881550185046376536336779631396691237113371297821477644435922429985156808235469500391749867020734496808488322690442967297847175645081998012477499772883287399842754299819622615729799787333082168561444731010015009205548409516915746433904337622933229155446250244209858358930771545542821672715215848017934045345477514176157522497379108614695180763043463040666006337054045259213522467179013377383795891822464629485822619099041305609629179412309304997769217105151683492187514343214725837106403993965440093411237361442418095003097293560343440140858099828215341991896311864562129821720759062051441403960744404867340316267128250307936733027941599932631743034067971222330693987711331819146532505751872091789943698951483448568353695777170662172660732799531379155811182335596878707756185410751871915094894604328917628636746875527114098097641311002490709393994837313211606455628888152792811490960893930594653976390662419554345620155379922087042902726676055825700723558915020565280004541283106455585832667985654370015851278146464063288611859278931438790411718312626453609157090527258855615947935438647132909085890363789074422824022050378131488752305281920980322697739105418300653165907376938149542558144330371757979670194824676528641051757229337330769717512860920950896200348074047569458242724305063754621294312031432796731652381799552266755458199035127614409656436553143692938857376091666789731971740002854980742916545269609508175195936247371294557723186515625189818035448555247917739446360216593384208546324686450334982069535349280005857710738469429985063225044414843178461934257776006276737942993655644744362098482453124595797535814978883242211111698976341734082241162150391858601885760977547317511993722419815441679937130839629522847854903342327755475148278269996365407656750946156382679906895832439031217259142594222426277662944384066870210141619248890156458865467710237269663779809740221748377386708886081835577434796191094263388869706669576132411658653423460614179290409401853537848496998453116511132492854686548011540910970812852354769320918340263849428960070805433585820079388210367937099496573744840251604004339058734459796405437058720046580941924481261704919997162382533559855133790563700092427937428360031002998698564832377997557132761343732165325177780649660744452924684927900946613260713783677566094928375514643847316755476946501073037038593812230586508063299988590731821793436488316716454332353186629894834361562775019522355587623082146118420128546481701078052777133298749449677782570953433943427884972026097678247190944547536144375912057929663889798720573798656549303860269091042426973386640555438776866850440509220043414151992118202154969047825150589394439971516559607094176058060032972843424996296261069701251522481155904916463932420445745729028765422883758989001495592767672523669794894731148618527302956275868977744555548117427951123756413338095420016831634997279582948329819193557732705007960552477848655295020930937839228455044351261060175129538977655215011505618686681455901972340200077716799790204500409788405089420162032847680990013413931671007726868280040348093590349236694677542089327407787564112840739448024350779468626760994386166418456221221988073468826149627141609329180198007632717369470038664136388927932007013592565077607014678363918115782171155410797957928878871968661933221525435167314259998441967140343816092829619811028987774185725995973400405014085570681582674151645331306029147631493387612533935540492994649258965453586635491610626521629210198204170189309933365835836761560703201506017308831255587289835786568627300151412191537995256822730135651477883045051301840842572924275956942427313779718167895932427699759168734756129298440348163563224180332002401853355378333513461380286779351695815209952984811731732223354931871628334500374605647970354458321739270619156882677195597932301883036278830439795183901457248220534160991530691155092901923495195987741871802263149326166366847970437835180366961175519274081537048029167033372307803352665967689564899834508058699374282454450353334793416951860290673588060391416382369643016734600066079617755044511975406418647068664434722486401806906090078532391968720128116702362968740156630306738390189657656312244525742124715594646527887036295249751054966249490743134365586559227115156914908885297949636922754964427074098999259145457406668245189107129521927516149271908896784757408980237003785445233790920417042867094189069038560019352426913972663696443326601607572133859993066808278618967516781816814617436092517072640864575994155348948073914265838051229770883602058782294225389101789097955851153823885180436792276648955591931821096977618480769400625805905380416945624416243738613180282833020222683511196217505600135600730298143623296713312977253590307320936190937816459408254183057267578460663953174078785906360707589565637273745269147931788034688859365569045145195291892453731259011359910724985795546955352496144365933439478077603427341760243452957729151167609996456228746226531636711911205293642782990265156696430138326051969744068520660951120906349867025185468848622980957096904872141255053010418908613428173942972896459183213457003952528125734491947963175027218935938208596704635816599762515478519923026828660812204603553294887717608129135551768294301626199028087509431136918337276868893199391290676689354869708797724775618176884256347518953905880309802570850666171538935655499810606419657465325595264151332511525586160615180355675742978417420657323521540696981783619701886005876422286157689362226743306128830546336391741083831612041020991118054682940971259987808008212459544807055392204350173396143098468540069920479284108194562068553227267231716653397780441729727812268590511164379361271697703820209653254204482811782518806987328017883852876023150408928637479135905993106271799039728028224587743469899650930217930953571206665491417179146142719998101333261169461361486824239215620053104793158154281033588958996581460619729876372316206577258769035996254689312275671418731043996215209245532774857404855302147382188295803506803072567335197078220620863807272225076586468639248706178796575599812058640273030164591397427750204559686337266248916267059860095609045796733891596799459653926024388160423023403841401524456289326613832105983704723799659762976051418035996677382221220689800647979019253870828181513478586529407180627796596228278814468967022118834745292748958620350450941009455372799641457597959552903556435509586425076154888892506830992361416180537314140042219411775226847405915529892049518729834067583958750489533219848244590609438677632802252694681202982700051370087074139521177278421737023550901878212120807065604266920124066753292465628609417799799903925102295469404239476765975086008841938583091966660816886480565684834384681639291156344962263941095498134589261702784003193769772959418779619961602902017405730890057049851965462512468956029705847252227463803389501352561318676074527923541389952404205221071266585226680088532812729341984717296622378569940128009598065736809851739961310673655581271015603631543286845592252606525835237284862404351874290563461292198605009968431060184417275854866021118452747999556038129660755082000647865829345790116397840774843177431109909250322385289378043551085718034706941206464747576729912786752628844399088137665157533593869135704906956351393695449015716445088377131990942263325852536155812809883672642994779264401472864347991687236865647675407731189447512666676402666662621423057577417705341960085093711171148095777162286200189103755797479761175100673938052733516958181364719005464248434742450769795765407069721329258936307647322589026035281679857148041584405785236231711605290195685685733753437244620898826217044244635394951244196631764534421459251774907859671068635449465413951276163084490358874507187778713445501999444085405650507263801366079292693072819824611546570438763995125976388327038001659952536804504380929118371565380261321435156010453200349667316406554145652431370750182454277847194677028387615631807990248183683268740763574098413929003120617739586590747361716364006024127764122824618614428438935972649707418237850789878200607152336952134666429101893327618237370978341825795741246158681641491207064556753542960716776256148244395153233919388235161676076131518000012346010359768158153712869011465043139972193265483140423195536032959362995050783453412441608131334634712827744179241019802973523890780439472499535301612553071125958335059881060470445655430570739317020326083065650474985482810197207138819033725870023328302614587129175699021561770705146636909681055880764631078200603194751863520402419824715869230377487233230201234589116077698299310050405442329182573757338291093674728895263086975235552218667238492599369278105310278040925682491885397354656887650551763531750695418339235843776182216466275678549166105531768743199590157544808633715618671365871951406318951245137154283301754670003674028872865448168765458984850488284710175423143766653570920341132525013429834093925638195486791705706989689757231456003642485623536065767594932796505022954900683746215320298354656689231200898785866129637816273461283848992512733441317449689374327249043402920649970698684932926072674622635980834346502415085198040645511640818041442488200997394200441521298784265441264554524247795359099376948878187016986404024441585249022888518168126701872555297134816156486951034200701203164177520895177445885659386378641402031390163049713099343529434029986144176627299429022039288238800947144701795859537820444586859030926856156128320921544466585302276153736469399551256216727729468725480906550676477425364392562050715176424886469059004616316972530373139406823772996782403666643973123782325099760667665883012084067659294242026867336135033167915256845549643942692450585547101718726779066339979951182370840948230552061756997002854232167662884704320619080691260646756872733906191475289930379614489154049040306885257881334344331209102590335441032649373740143610498712084786925717817487158403732326723885331918353668768354057814192628478401130604273419549575349270640381576631414130647065239693909781343931314153912099809953524860400024272344781136636886412614742915794203089953064707291726964699154192557761329929483503976298107728950455961431630004249597304825927297002460925882110188304589650470194607013341246582847293991112461270568353101314597638661335364984663734492271925592001935675518968714175689309525617571322744585889281938188489265037355117900615560510992471452594310132774966846382369191684343889698956445963934809546204852320170004648392764494788682877624748981366557887581448924693256341471451803657827855876898156186701695693314804905826821329630309996771278287498957275782234327873347656163936678391095972443698977779805772125384489063257352408731647110204738348737348157202531265797091415713212380180679695390444875727357998332623918732529347294523698300348639840769094289988998033189329503124605644858917258197390099402928118942484745079827926986234043180307238175237739692775545901164602079674900815290700983165198177358488796997205494038050110439791765542927190312070533240280352948333642867328063846802258034066465141805313893769657619598647158020941462271854596306139689578401768353848081257853455682616659133862022679288054536591207988890245888276144709448818397597705390583714007639027835753425454099244520015543338914449516321215883357760409087463556830449119655476494768419645548536669641234994790048001953980299273357521760583927500083276334355893688672366075421724245710913595913521208774376958993251906757075354779549491652216576158044532027712689315374801428746635233746080759858831405512275763751476438306269862948092948831490192457918390601942620578825114822270152914528122073993410560430569275315909972403956728702575178606392687653165222035353297688383321997489816993051681053936522808454539703286556245003064716994114631393738159814596579438302294167779418676029689555886723159872308229554014767289173712314087277725029595747633026405504774704774050498357281821757734939243647432693872841617068658563761865139381437236482596950304271867704948131328294442391900345273819660434154690865315148810374575501939260799005968715904845693214634827266665641501023026816309818928361864082712566842821614250645013449427870583584383237655839798028093019990973307222839668453933709512362156566260792987986686885597368598819946094757069931956568148835921335658238994591813839074501584933248219623185271871034864777863662438456334514472468320464822769446511300147208782633015479779034493919732958529143563230352467017477332341919300129243143889773274031923149942152283636082170864872357501963777375086193051431210392099576577257052166671294065120087613927697464122906793115425489910173246303516423698148783414624824086189684561315486745081187663790320676620280888095266329875266629587318097536850016542834501870960604918115070633169788465728618817375208834584570362567561003941972550810170576643572902238126501726215378310659055605931296562841228090938813312685853660874277800124887483877511624778510837064696529496173969980718814998222862662907902988902529446172041605656634876935339201111706528909563954594305785012565370344678511040354622768876443080730932719603142083321611792820993577323703653838861295644410985853654308894406892098316125047003234467923555308563634893092831213794589119775449571571092348856095602829318385905072112477203646611630481775939182924976852859157397424713060295792762066815823351835109754377540962672612500223204202158874157154580516379872423715880221402118279897116182896313116305661599314546225411929817944849540065569152242076980738481172027212874613084463351453374198112610386463977894428669313746021591132452556249896971911919783555988977945706056397785369204154537597340838492781323585799887703814744888738485639575058460043860693345001278676642339509178010221017507962642423843480135921961021475486037820729011669025106060262175488385602609643687825466556814717045540171402452608392669224026094458731497443884585866240444786944398421386703344250585651885324955884189799517788331944199819503463988310332347786940107939032868368969854915308265329232443558317569298873542592148660910291410958635326956176142251020777521553405506621283482480949646612598798298169541098392164842724858771090500106233643236927073767978240918831902043098802236243327864993396712030381804789661596571724159014906899297791579831808910252093673690883483177930860374321977512779682985117927689601874583246132616681819962957454287377127411207887270321443779874586100910398475436471741088372337092583127129244045207398767863388910938429904159338653742755437761999373805385423846721615754137709110533795337542849299937264741398727633439034299276166563520520020269565463673626400731529482138229758885571535975915191691277080812187306347164184955929475017680554141381344748459171066548986879181906549525956114345144470970712623304281265512046135894003627871492888682222980694579593957045400610715176462994514211677621315698573814050247060239227064048940043119089467501602696180230456439790135139095417458809439875551597628714734398662359827688400288176139184489334840323609263534485169551030853612606357287296260859965297550184154557839342966880698230891631184658784618198150444330981138101656475550731289772346959698809659939799664593356515136409521840454881757638837184154106788345913809263425571707398068964467792751459069571318509550614151383075902995627973051817197526004027476500040045557561451444464812674476678033963790797498054650749216094678460445648370078062048678653838402120870119219649129820684817345670895861387071611128135223711753962618174425717516764226077578207356552753838082317057678079100779887820325485912962690752959780260248155659843879059752337149735410400439740551193563879434579839286393020174126000288799355600107137755827446383571138523992885115676579126055971996278942690132454654987611115375205068327434892757705158550581686640881071858137540462460740874776811182883845597728820749248545329494683760390682817586646905816949704472302422785563637912037558486617085866405581006716470899444371500539396162410408427976432862902600147098234179633328546632331533514598307170134211868102713912253707223860432489655220273208231503181346300595296437774221516449407172785243673211662933937480138308927648519392555809864899365801178265262419152037087890599683009001046447705759726089057706926926697008697305521371874339778800370541516869169740400185732552391156659300100456617007283771226773487573732708579582692109521463909274651959174600941665682319101270574928207793051155395167980168206503818654127514413969799316750272795169447384350653909161149023534831039926867198480564986170173477249836590098533153452745222284833202071158596369514829774372335753050180551732349215060900922862601781914372218613648494261108507449662780122804171190339158761569698543387859761003508825954678517097897607228791954151380601533342158722702980759699340581818030743945938440612605337343014590469702021787527452314572052309819119371572488795622680362337475178840568251797903154838719274452099249415987057918996646892176919573167988412627054430786213150827914789050534005526424775187426532730370145951833476273379210793127870070097695469427258446525383558726907234952449523602595327267815024190505991758413134606915398409211399479487794343500983728537412755472213591497078720291121318429696702412981044523798493902868157020081925608700311930402628658166229025459797947210518219904584871908031205486783490160575499167914206375393401485228259812022482906341471605787338462464112974072748063692129978516518864847696362914195201727297227038615573446833906090817234612194615742708057832035899350712581214869513340971811390172829236547268281627504011596519636915066723634121912152185417903319530232340864834937440162200297899937621217089609919246527527767802828558718493749259038858432402329632633467234146078288408592627424966873871443421379280997575527065539558366617689694389285234831441808432388391305933148263305300209241859584157459739106484152634796088424495860824783557797505250436965197601823898706244896706833878861696201760251272348032525502738188515603750495399969931758983549572912462929257148075508831805673373653451802131926112513586920973730783108429188532998638660051088083670415935067223835427408509592092854615146618660984248561673741844045512614883928827356828464898554615463884283256389300845431485814449107147363518106929410029179675276434103221898156213886380438086402936942191000960964552280179540719018827119136019934734669976086560697775379688865045630658886991329725690613659501798043127662303310167397269115004860645171571159849718881773345177515047978393277376855861368140139966634603088175741377265875765555762718630096821875658057490279536663153088363930723035236835559853684104974033557879502643859136352597011528001818393077090570367866623388221036607041899652606854428639348302251123590111466132457694391692921959766009125304584433389874597073011377061683481523133737072998851948593363348030914022301851405516554908943938067607672095459311978582628507402762907542434647042886254731673150162781452722282906719400295991932984160644843376621749747683031135463679106144328574516705305805497259152268712289469353518355842306134603860046486808514061752754234796916067885760674838115117648409785396488551480766597976061090646777926578164301728290557064395649983510077679627911370113460565659106356007631242325409628794879987773733447978810551079613830223581861531030060159606696447918097886287988387031858004768252346036663642140994975796500372223051049011033075797003733764704273654754352720595904124632174795030877274234495284705681166370473516056500665307801452124148812199896605811537890751302369771170807850092196778186538028344776789706734446773836425554124491319664810106409963806672601129687094496920028406852985863704101600952618486175494099083972033415452027116985967329504314603701227630852753027490249720980451645197928120225939007213915745138538614155831663132873664104539664805456781927968588211904054743427755145425691215087358037398557403516576061344341135615340087161592430717584151317539432901535592149998975661499897574960419367645418620030509603867802710959258183157903065884041458929182348684028499572958169474105171172892346021632525408071224791069342018935581097502082069559958384784189374653228102127217485104212913387160502176698616989973891565552419944430457009534510374015443494637880552589829190069939384655099072696841744771409301920074681359446630264414789963027058152835043430212140031501037227636901583156604350486661673502395836479334232270766693305677447705709762932491566314597098931761767089903446195511188282250166644984707860345541053797229990615583273158893000582602791812131033659467839355540325823932783789910131422440443835100722938251420141423775111177842055031137548317777406104175446867338542292366256362668185586801866116157889426801387529809000839130310850319094197029120179305356576295477887730014902930977136300595590810410715779323495054860889041555295957091751238338083415129109055652349373340570039945466928634447708629897635307090626228015140616551023202495742003585495849241144226400161077788475822571079287665666648928781164057052136214415486871754797796372231108835147685043381428726728417489386594484392587062880145570802597655325879032036521230236003207128412850294463182124487536888401866808616939790161888907935607944322041119494780346994568453516406725390618414593197423034023102588324472076738682383052367794982834231001066896812420220243774574754986520967256367984824333430344707609979804495669325441970827661760358770755340607714071488330706578847376068692584153224220447663679716726736351203264413506902831101730032882347560873136683679590083922792206556471021502893975607013257253895951996973975682494881067252643643847932450460403362765910998302549879677453506702626140705374051864118752774551213670275724916633272864376557297036452829057978373831218190759551328390894563293831144238115684770017356114636797409256818676474914194938461544084481769274146400045039697739319583825486876210450632475355725274813218467529634999561484335700115923412946472482400428497001794110253148258394089490013379791766124086521718885271022576120480840810671096641557751243304563582719516201981608270361263301836709650758290433404738169867667478794898363188964169135423356145511976779468316260443086496802476753523360301088925693247416739253175677528014482521764542991218098880064805410361624385133899363170513314797325178848760532100330551100034300262553725734432149209893293919575486946671632557307669525064871305884826639369766028434046225214226045633866375565798837004703200987928790072103299282148073919491121515209370615072908590536693078654016519387902653255866392377420703517794662119517998162018932026856090637004948436583387066594844207124854771307828132624463639899490524501546500107790660874618024065639521249885761752560594475601444503768680910073634000761018979845121149081309919656814935077046686290144887114667070507935027484738982643005348892170026668307781657526049294740108583256573444269922215334887068353906330720346215930499030969083084759814088686713841779236709846747512130160036784355624082507162045144809658257402970011277886102177316735209615457342223230622719887419984654688065379118862552463130424543766307872097654571754444823034371510275346014597630090527299475218203267680240338839223766715450254359224451673985945101864906002022022350022685252074460626729789614816088202739374921696299996102144327750620116631512001028350821484102676281645136964645912676595734063528013309791084614752991351392537677021236048141989550261639103411412935566863234636018257011580919958899892804588492275412903016877128534007391873972584049854364979311195524728796166822758538500074093308423288227257507620453251236706965412137228563052997619747106597741452972875845514212922670904343110399501503851051310468104839591873347917825908737061625462979433622223350391789734486087218428050842895549738639231785601949302277143524122008663934163505457121444391148502320927749522587163969259037222831990615366608089632378976885104523951175052919719566787117019086617273192125765960710218060364748081242713483874510343267878945365978536830914098389088475839155214899618114038260975324387896868416308554915450203496752658448702950892007681417671206265561050744903371701444851638337780507053659753026868068259051058696601892118023540936185996621519639008251748604012675361642069597437839428192940443707492243377821826223860185926214797124457273447574909836251295276135286798079382404308603703584116599655268320033413791553058811087664715259014782456295570893423396381319203364555400574091139104443716041547911008187269603059278577089666248878031063470985014182252014442888362678255644396119769859338119218336936814010050457589182589562198185846690931436040088293150583918679877998531794908809659948065131074289600401160090648207864721497098954512223598472923926209015089209614282173739889123643265793107505821785079407680910701311606981864010180342018838019993675193665864472857067049672537880048506123879963077788670830000069579986618661778199698720040797840111783872376194875595147602355165769946713692817304197154690352173308742457534649822020394570833340982510071437928764771402249401282332426599443347444424152015950429238401184182366657821486919893905842218562374646544491206207734517068559306552032809396347757380934051925768501067906888907311671652998361016171268928893503427486065644507509528280358007483110186372917244244153226361464448580791026603548582617603797405342013060744332918028597163522801733383637595384705464385387926217596640329331589847158811532841699868505224833736342619175243200222704678677727680870807345039245396695561260730316539606529216070705704747942388295472443751181297450226957013244237992016023996094791554220622353185171876276155828977820522543325086100498382334030323041197086105951125914021685127485583183474541040444841486587850218892207838449767588510904060347914544222165741444967455960868736279558908826262716417244214204625730086437988866501518742488891255895869246348523777382027668135014295302513244964642888980507983714227321887474146825369423290933383211570128083549157938056345078023515526389811149678603505933459331033414858673593970215501010513874012066392932407546426668468352049554060687907709844418698293350895966468995294199753520612344942814955462337066553180042372919123695058921286111155955220636112795682193579761703232972414304955970015074943490126791418103330768712877667827001143935561494147387986994268953660326957865048830468031645455459162652684757838141034113668450585416259586242639472776670174120193109120507860498506914873660901397626484986743366988640186547500637806112143130709938276721676201187541532643382170834099114746047587983529109092427962670516356254175024175007430688406577667165128021329429921606440464665414795123206610040416318530285812749933970599055353235913260609232224515348584678100065314559495349618106792125388578765337196019703467238761647257268702971754045954993956044648082957804234210205819491063503671976678314374325209131855573023777920266109071736633799755403337084107374203107166887206301569340194384178631941949345768754537511027073623119017162091817029237522812059560208371733649964272784072077839764100174655535992071339970698091552434768348041759896201624643075009237652450631013412941954692654776227037032934751056084786025138308326396721928971358371466996211994791838103452019653670849962591182139379900286914222302341140319927023274466008062199786212723403314926285687511360830069809059512554458176974708407718056767422725365038444381290784683608259607499147737612273254190581294394682704373104981447134007062882071350850130406759656481993978147152142634696554452463301293342602571446255702183065833232930565686700100427043329056069534559101105087246679063757738774354294684482710555538927047466042565169183234930536760906716307967339306031507788639698083813756370828816983567566075998528209674328947037927518024197504584170087707135636363871520737507131139391003731957314297277031857172952411640913557932139518572769517504179538989306636258614814527467038158778224458059474775489962214490631217881288911607669886525151811613832484291986082082892194361828073379866660666484642593289352869730624346985087556542167255774107052008158402575263330199536518763956176863837369269951883811248932675121410557984671293899661636361254719126797573100925539593253774992593898951823350602487740252292517197439908501079087335254238410393676600200276322447384483950725306323771533885205710157519796693228236416580969772011049277364872070042184763132350208241022138396962228938539943717790313136486478420797748340536763776078489820984926452933617448101447695493077797593786325654401732051519835869890962833815055738778942947018500329501700364653814776274762550899977675850374296894875041735295409700788509318895058718576857765917249395933500644174864953690747255218902840560462232695520792294200396460169937643864826210909341241247826779942798610990622730209670423366267456694181599108678791608052392821699932550715377991329816190720425442892498745942792554732785820564134810383172384798256190011197464583207923624977882741170074465707744162986157342852160265206360436554439233190429887223825539530509323383082662190694339147880381451549812350426503370499116565754496326224601262063391562588352314212696781139780435564167499772700525068875676961398059785116483957281965727500077496901880734863174970937093663618842220522992252486227924878544778611015795515829222751730403793355576961338209671394660021564241918268388896379836909695025721567051389595382829086439790185806534195719182567331594276177296430076269888626091879320840140546406330141191432591599791985863973805648206170806128879184244606125412358249814984039554126112499850107505942342368234771932142252015906046555967343487863743600062993026003355520624413305958161938199974814558870137883427416790803418912190983571213662729593903183732873182512736757581524831363386197653330560036455303442671469179877168690918318879310858417653439438938466635174928869080638978480482516395690560876008958036769389504349826845094076946148321443867244936880453707035814351351407664247567699042825291075808540079331242263855067331636505390779789069218969048300227320319789857201331927588717758163600362073349813666270010502697122780016396965490303471923448600321594513825904525495327768725761722333752265501421656138773673873767207359972980120333322191326822733232957533974904405501773858094508897077171150188854341304273070135101125567205342331730452177918240010443853331521137340025903252589942274254129511575363119520507656246700887538284339886121881464913416173440225497151261963974839646417437476060109574236521625913414205563204084220482293825959711199189874534544669322219543351490229025434952816991324233783898247548850782493994332369776063847643654802832877694735096350346136164064706042428245697269506051956608177938882951986693437077840560987508841590191709294916337315183357282554840396244026571616172383993155191417450812504772510182730335851951613367262501032970510730631158959355577811370490207864837716014489762128706867621384673876568843496116059371943667301563030385830549211453594016934594511914340298558262419305318740185242602780381779465052632089609369673501724680090785897406156651320337816677775714255031330449318242046623583966888754069775187159016525550247559531983767673239256274206576340602114744154892857023010220053933138476675844300984817519100786358144124706005297201184070864796459768461551772054687047417347047598001009677696877287093804492786588439120218247592025510888637384623107841564961025360172145883350973715455697416775433403798942508797558651228502672678919212345740138099699230099921922351394277627559754293741135411962874837236158324254548343746762453989735472353700818599095871298401726200269375615298752646538470077475148936520273496684301570335686885123328176564978596877494863254766527376332445470886513835539960167506477645953723521122990290316693321986965331218888552531782205234813301547547922585019323072987809720033673147542148679384190545863983418750960862442468442860406980868383576170870942969872318978441120655168034713193805303055491454531161667125731450621931845860056306553658863797135366864261145010281703650172133537845577692049604447109925886448448950408209891038935186998232592908156711806715498622476870164825272803894848090142769433556494825745660910876969265955810171268716228939981868052680263262215362839058599711577650400139424267693423197824419428341012154692996783420308511109843738356020560742728552990368673889956334718193862291576392690188948572212243350626222020867731562736932142270502715422217175068163418685442262938953798021320249251510699430863045505600395592799834722188154052226006465125231538469141866563944217226965004388187562917512058381050349772976429779972103754428359855192471659858142053026125803059960349254506211921231721155799219544665778414268024230952522127684387022556045301117447987496069835247577366826291031449932413267853492281734663726606534806031539991158743402910016499278113661831316317198339106856339195609906759012951676254261222553715901718566209740224153457396614955129979454232782376939735331034822091497547186807910161644998230700573667019828890492973931633345083151216588622397457523066866092930697304213585136668402212714274087426133140233208078410410761367477168744876874517987047078164314674084404385048607549823198317016360285034495641374732384001956669452614388020945242494227836077697984931544700376090856740995174461245765380111144538960153356157552749036060172472792354398617634637639860856494404222814319711415715957181658134711164059844358067377050909587057070052903704005388179650786337845699607980357295088197962228157427132306692688245262037628945871285566147783006884490420404771027462937217385123320696840879064722791309634333127741100631435365025636457671597235496158508640158918407084268839858957224416340439022537461069144747351419939113758870127251664515499310307702287353355932514797254788259575163774155808004042695468581151836881998568937916802522733298757034998412964593676243380364904217524002750566911711480172516393038523099984057191767277946048492915392224089707799011033446341613563158426521546352793189844837207317948898131036034845308655191727294100668374303661664772175544602027370146087673040360672264038231328862014002244430067238779566969399757710198364727451693645715957019217476834655286119634906296076902301254605377925293768348667689824123575212628634341074390617410088941046518483718451892998361132044745145291060795187370686223130255403620625273192291766935486204653770765346363104914794065213632670504740162593136806155053731490598063687543397555963263620981226147138743013199600562909054812902139178982358250007059389650409623377638601028679788640662687836684934988399085526127966130119491714957845716841892648756815707374729406425378066313968360884605189149853958660809142902103583163712989385323182328161052550524630671273684832710735322449886795075913233483566578403254436071559338059457965861466615534960886925961081093948101287498710838353363197595662749923709394030544421167426407105700319591303428643891235331445536680643849858513481244832852590848684671368371128051452438683866904002946227452091749830719951336340636655810053207873354518418635164298555324653777759882839080386089576415568663829240798163851329125516630901919690981262502430664210644967604682386542453822066020284779605610666257453996771890069771515396560083614593324383932437874152799160494710344210645463652302327269020719826729732709919033292174730326504104463521607273180212644900994898670563800481402265384727828806579593510557458154210686356867122703263365847675351736111390888414804993884175420946989715223048349229399420978842169983731893207882541659813044016274799693073969185317862092295265011033559750117986276104868833880804549714714234890975062582427329270841321451023004605630003386158524482037464828579655664261522892304851493138252969179989826340361068124723098222703085844580161947077404211870594411263164008705630466031273034581865487943997007862033110240050484929516822941530070077480663414827504535902280371158375864195752261884266205520974188889015710414643143761924999706721386950627997830123760029898211838862332448694632637019271642155925583966507756610401850046550347524258616620139851355141530424336026290867415957281192583528914611611623647752163099422013772548436538548804071719783240650769778718889212868297051480778970157000320957186844812388629274701008063030024517768818811545157022422139828324779159281278989018924503657816581330511093747318685493860641654808056618804056682055000824619092735067074253604083956031605800509793180827343245363871680349476294904863645068767975759998941751377026285227098959025540909259290565036264932213456024997621752005080890486850333344981282359359329911562030649786836040335933638251836541174425409844942373320734227773307070824892588386067250672268031501338897869160268627193214462235535009895115069292868891250573049205495978509139860341798942481196788117249992537843806276321693188010548010147139689619478728969453920042768894932687747029273164747740124488863254668009659130775996637607258870643784587191481266891913199464961331212707621617402091344534995601299145465853201982241042608074963243564377470282130811112112475699831060267752600445309567939107132834344806864319073877679065721259885532074787036336650950866045497656962378138820651444165088242146978700039549637754825027990543946384692582981887674570995795582607221388433244824407438782685789877132460327190689408391825868784096482738079920165411999167924796119418077524028801664405378124656098715583750392625850514057816333948608243058812837037131815567323815218276616860785689037339441986727905094464368039711347084566705996513902843601216220257792448827778310693713485484976901363846594137618604062764058517252060495775304025870513038719218830820922454562943048340275146560693925463122244331001808543502658227658496264084293589680459486159713443414363416556281870656629505742576996141968843982091953069449696203043470083940644328701759309659689910742376982423838633053487198592319846762252647922734413788050196227492448452793403279590305567089849231531721160101299398861093915564410453724454572056090752948642124313241425205892136837020335570692747289509491264820599386803339437650140083069634309823019138627735969896877810372985280023051468560072373215232647739954587231802870944898177186703378268607749679124539425909843006429306243449606399769232392075278295295501732615404278488435613332981745685168295055197775041015188855401314313589796193779366022331569330798392305249748935236366779778855118237353976201782025097642544877247283051592896810734495072162448482614608616178272811802959247860611642683107483918944508622138904465905631249161944436918923257876631445046874246208862979714458700704347791593627613773327557360764095613985749981943899048392081231653394273980560042083107571709016144266389563985301394196427183348347279704006805463653676340602235172425695281580438616236873360760987359537616044523284227883824752278316386430768870348706547656351842855038033666611110683902239969801649398318675300294816515558511283929969027660113736394521322976103690114701671438583462198638794128781197835279680933539111355105979819014658898893753821917957137737013732366302417552579863985805913940739389416411756736855295851832648307418620608793455143327719328751938957556957538000457816659495005883197942530457540009278617592208901552642619564159314535328093573487730175221033640126080845846790220533404627041264887875663003517919862929255537122760711985132369155110345178882039953585089778474756875264013789232619185903525441374335978309948868901723119846729544301401285439004805695432226490401649754583742638687123210268185582089229638637444556137663991369424346695610510847219490501175941871258903104587667614344883827602280712277389370495967545462971034685248866165538585560113546634606082445380315783296350592320537053176270532140362190879131345076889262612256268889699815699720631561381376975550031420059232748907946280501891656194294568005020144552400583687426465487188133003943659047995917534974256404412801056768765174971367507876022944391120824043079795938582844299163568968699217271950410514435949704783275760073156402853208046097347995912637837898665564984170479506311132627396027023071572165128329858163716288282183808634447590662271197790131478925389602589157393919787347310565519963082650235061786043213165915960314575069390659993715225789508363701680441912932554457439095886988731773428017156576732489319514045327581754348728067711080262221970612175910206022483910486854775735522932742928067697518204026410231376617796362512289501388124540714029976219073086440607155060362280285015009144301866923195564359903477257998238770467873763277667033179786989356661596387297563933533098671222861456515753135924855502800369685393318477903882773625558001744291315486169791347896426413168690471729165559755149148588300607436750486008549650947119143865249591142099281579897112596711146851897880242308182995965436924337674252147853664648759501388653913128947279764036731617009986849184459555207051052992645595203208257987145333440292634406959699024878351283136338203346524016187081463586203823511350644661928219196714663756551276396899758032561988025003165153213073028603171756858633702111957744454800630086379968035640113182742213767597089619473264838052256604567895308597178239883399459656456119373223213066827211547439078944445841164803105925337724894613125031090490383055272430295374300861088574447564467924907307876764459959839784039443643892281574270488639466655048885212765395632519756475302437592311630786293124209126346826859454375249372116390265867775533182314456157022446490762800848662940259259360882975807396480761100081540613674162449802830164024666252213762958755401475434059778866477841596131598967599387008278308587478706848502422732506519905330246809174112471748911071722909301016202309946620862940862671846766939201667322726389485868732702474197069355651605738567840202425536921073198070536499713598579706798566374174995091120729439344449855643883121562028298831845044508687836125924919370244233666289452765132809782504742846583406086837676864428225031183701336282772793150034805155750633112004404740859953857528473474036882687217210085233351748801626914054083947407714371689933755653908754021546791695181163258210160883049253017169232963819668015608638464706203463337233105647882443150393437925639462806333698400247644411451335244169149492493211902715102646341353420361784146639499063262453117559512977741093957663238399704540058385044872752908355830927880617789660066800745377954618079827403348934354077477857620268514405865312826419503246983477101408224840595890339643970829438522717757519329537671935887966331981715561577662988535033718270752118898071629141836567517148918341008806601234348993837713047370899543277344373387576714107040823729511231478831403972626064357071678365382768759349949737856156706787944441005991199323914959571129135522622268969985260632307105210248899474485793324080557918530955156112747784492816246746906952040421318111152664192383525142410740917559321659747048736894066193830744748247185534013374918998974590153505582604955819062537949010234228641286559979238075037757964507714934636474165118899494397515461821491090278080298108420675552115673949110210254104219719398630771599218994925911528761532140683933024531129789306364720182608771531337631249286319925294814328578784410178808738552739335519395992598353767578882991956686444861427167901537624024527407430907332055641846989553173118204726044963821337079894543958302065695298551154348850558094417962003399940968727231062976217483174957682558035805241643407674884631121297977432400611703587816409201847015890614341242169422788662810056221233991542334467501692426353353818545592335611808387491507316906742190091393396101383199506236895143800910158688708796317107956585814867433450048270037987239477360865469050774790678050880098724391297529712062551800404968275084732304636093280124756300093461159056566895480222380693100798843391172824288525776974565527700265137997561618365230515976411870130296331536148381052249825662187193757092747666726521802979004474781324489294200274384937427183138823134262401360858324548865986234489915175701651886064125947572613983560918881967117877955403390023175046822814385859304373312208658895755721135311051632607601941977343051689048657023127020808088413999236019315530336175035118129598494625707892323564233887842946229889940132100882638594245870376752745917459209795219825338122591391556492305974406208538401890480221066831702361552734556345229548139207572876220315590651490619305745830214792833183277152106348165949443367127901547303960233651322826043129942190246467056539760874707952512828602173930016215063647953553772307687589154222951298527259187423335438531364260269793779203543270592661248127667813361313148867593374771775768736223212422457759421350302673568298850326415116185046697810779589042402666004141394133288690729919308998046655489550332313792090447626259702125228518534773452562383471954230382415901832128342332789771185570027756683941646222058799124956624879464513424136785913342353433888276105155430519600304803501366069912866400026943621551904797549163796902867655172944254291735302725602153203740202328332944622962910119879136387041662943071492602614635663174678639905109316929662182344389720829679605903013972225862010753513697852219770930547176198298455511434761730812104462884516559259119113497291206809425811198285936081398600347568735875689498522640420148356197876656897740674743820073090222079339810867538547878034825189719165592538137980626754577781513798523074865219068647998233692024021955479389583624376156516460892023081729226202204070103512738523279487821389392475514546100407812538404509037813385701497060496387185506428932357484653101724910897996452352427157011135793278605945270196037600336163467761908003425902781988025674983888336249527387770345483006518863445961411357827423449662508998707435486183256119777251359433459328740909408224861757632403248383053966227466827632879400526589163559867857958879720135604371011255655005549713104158959890361349986008707646461790666049732720486599831221067738719067880231496087072512949201240440084481969034983919250959267406485492153252603310912635288271062595194949755953765768177976356332638488236450969566696351121214175364956017155480688235726157462383304110851082467202671262046377133792883695030357656206331239968501872530653240769368384140749517528105145840896919156807967565023980980648253454830406878709158223511612408121759812233525611841770430658825860883763898546434151551324743811439337599635512267504598625604864777694874204445101760157789567680971444220294258928866461176996628448779036469325067104724735781442342697522143702946953375727734167956061146751525555433939862000796761542451889319446060244602609694852703461374615319196636976066457574963900659574039188506283359466959771823782911501950109420985964086723860027292454893563895212888356537451028234214584555702123448401159766081810550183878823804663191190781465661374292207936960416649769112307653660859330391950611888582252787689367435668119094916637456336278183773139480651197971403655369223591135759573570680251393975808244977458391038962368395084469876899938405331464874890550959981106690655385989191250143651695812088429625986526555731146976223315564634553655383166961683265578182896039063570242919859456058477575880698880784910702697393305736696388541037642625025133738162070161023394011144742088617765738893683114088744878036004010944377551321299302189279348564127531125999125199317939399707858164028148822848216619315657833989071310778410315855337375903356186789725127763962029352198839436538671417297227510436099763963492388961106498830765231278932732334015724083738645953645590862619826089028203719426574986884810653405785842205895337422759348472790735994617893943088270606989552765286743691487143858596197819674860079957545562917549477221715489998573423975293934133033070503287628559593628421595581371895637783232641195201132554530336566866214245328853436348955764149882608319957399208558281248864325913096841311076811340102265563581289715192268494878094055245600299256437580395862430066541896260750741542538112330573205957548727673302203817467596208608579100602789814761561248560539177883651860143254405339172284631960770882523417462740313553424411778638301698940469688204557450009588013207385643781298150393590852028466887875175592026304709459048799725556544072090667378955778447703616318730798362266376148947814374423661728562137697684385483724729647700055802543175553640306635587324938347164625345939411622030041530548159163739511357078950619987169599065506067717377176695571322332116373746109616239362640248694158641167528866121803326721573970379725928780287363491603712609472008389172616363090780271946669147434051422706966852009981026169468950357500684542050420044454723054645212458907675978600840489462182866895957988848407261408110974522676956544222025691402895584190121517488003648481567257106637739035603693003587591189681483805542830632536067361682123401904428113322748070978293553625706783884959803063199013869523379403551944766187817171047740288499551339060041197722563720219942785263380908666366774856790159046515080689576799041628883094661026972910869754635525755626889138490847456484090368385140953158717582059388674714320222683537535166662361644856582702409721927305349464778657093407833064297528401799531223318369478475520862792808056950557349282345900276522603068273331254312246537958359430669845334132635184515230587057041526309209920776923588512599264040519950527952543320328357569759337454313487591297276068678679410019936901958549610312241439827429300533525821954048115800043567755260609652779736014628204274390232362438152970753174498921331967602221275818120381013619291797956474930509595583246546495589555566664128247567902719624887345554016188976328820514852624413776493775920609456590512701923686775645933182282992549655644840831817312700779935909854106357352160800482649935848039322597499592156494241742243079858758107614366750396606295748540173656299525843161905959217607431336519227188820880076150312142156155176440290672256936250308016377699820896437962978361168343851410819821885545960853330549158426648025237381056500280251723367055534355057809386716067256558541297415784318881962948420145896744156957533399930040140596553380953482748684567295290269125440531936663882388038369004885100069645854532694194054777488258363573911059968834466607846988570250680364229045838519308203219410004879272674593278842231844015987626535258127192071378424468570131379271659633671323883855363552216893923275796846271558299485584025715026702524814463835625761498363857261066477896043217951526202632012428943888323034074348704451455619232187742791015195353230205622321972584529615032171888946063935382239064134868222807191806287609642936642271224444876503376842577037130303283561429799161733483912539506615063418345754666244466087809837463887315212053497368158742782155517614265838945715488315126981950063052210938076278846370843222669457198101935207171101820768004463802958486800774233212621742372379664360653336268146672203339730747757846425381531941400757100731530644422374194441236841918225999022495129699520454950759060836159212646443118792668969939973853350003356813797891975385433827025755202320486745232768713962805998716618595634281630401384097381396289911072335829590268169807269623866577038401739454899331311851568852073814351363282599529180894209855733840879243237945794593744658098669860734369223885470165893841791719578954857244758871380108447302421975527966665204814891166427705409533537165359537425761974545811381654249306241313315897902089353504005821975958489831103624426802335432335826901135194241757287619953468016807216064220477009650998727059069649561484892071683430841535393147975379487459938370182003746975681257803623132151257790304245173145486001915181869632762847122849207446006199617344300021578292573539630980767935043732739940565086610782030470944671746396416030517093477729621855806018232203568128450469126618241831018736214234908910399194169654227352345215906426920094595708539542302170394568312987039187610055299958978259525226019991673256816796933195240484221217386889427088703281744406016511260357095577159285136654621134683490023758845543163886276712092450916466597509118486685943718592335333570794722760537090753198445302526812121163852386411741855425231112320995987008559702493681784019852820563804349358473223147142881879930173595617294825103815692798926514961234883925292264164776743595641130290816432640933408336260692843069070046277884519059812037674126860388853919077495750824453849540527203339261107105715113138022239280097829091957013607564326335472934334596282064648031670054972278353330987260920342119117541188429172906251931611722482198153849055861487428807664079813432052409463897560218596982650045070176484442819498494683732852949922883723267013453001221381976508371576023819676555075918084648037239943040260253169668688078485533222103029469305871556428034888031636557759013756405194574533379456415705477543685256319042915508139481135453354610580937870746387619945493128905289062326417438896770791101807371096656621851157310289442401685579105304254833288076199707191759320269638902933876926738533756002327527748236851302977620486358159884502397683456021449787927654489567681080283517862242889356212988188389108499347275512251953379162029251819046777100119412228134323863199498410361444146993645523778125864610064589273098915318118010616858651583897640513125280074212044464222115284274538291918532627760947762327995273131033527115903490583979742986820062993506173330403452500390856037679149211818644682398736155653213011916300466868996459572075523441308411076894372640272438301481697013695733682110299874452525770497648349619303119605333895602118674088325134520143700982658954509210806952500009041911790682974463447094409961096980949577520826259679221474408720558239466924308234032825036571694365372306654091924145205273538561642776789581061929583103284531075157625548449327388133305117873187103506640044253041303585643739684820065062947591318924655249505312700047745912802003535772176517020350191202860877045366725792550857384623791229298579296745022377441086218919759986341829805816959101606868185014787112397701774291947290000302988077484412195888600742773228368047539077516000931692385818940987189348583942017942471725214718574754380507913470040202808368299582634906640994814565340306178860478987909954764097925126675090234361309577202780862828457687366686389496373917428265276485152828858358221743277938484947278028962214165628623152984365790836230128242023102449457255154950084065576832524738450358267028315658261405413040101071400480727249266851646300180684884938310371957591567816030798613335701265490089984426296039238672968265842104523177492105125963432041119735702563488000045156380733752552751290224137686336662202939462894203518388896884786135796603657049494808492040524184307140623705611445690051474869782418754457128026214905014641391542939911708951014457158364339905460861924316785079143161711896593775036018783936670964205860640931007101765487016136075758939520954137704128288104803206551173142590925791866459821769032004989861009288669138916416139681782904122292856663783315799949289558319237029352121512337690718836845168777100373518731586509621283091199819374378080686111467488902089876788237553403525716646937145199743253252997767569649918011350104584114949946279100641749644831130990266570331114867172689527690466959836209946333268459900712914478397606723846535709368699409341472341286226886436842198825502428301419583937259846284762346389709290059064136090744060837920099063734909826183779691537082461331301563948595095068500560279364815122263943531422339244946986313729914904013036707230894882774278846172727321066159580538804795042987207981883786780186598264596533044470305546034974798434119830604680245230617523196635824679823420733871690245371098265617175511995990384904777034613382880180240895785005592715542370198016080408259191301002034133112787547992757922709998719705355676873586871515161162161295595674114708012887912832331899940078066700475382466762244055721724538575382240742286007326759797840416467413671585175349542444973812105935594594392361515081992180604431082076252598152353125656728665954051926157647164977622454860560057544795789691318544715687052834044575255177858177377087170555784315055982494944478831969876721799326161776478449402326472393879225925084666109777786673488163454374834232584109292277859167973208287515851605455230274864845489493228250023893620431981427503303346609737787367125385460454103583749930353530666936922369098900459534644576528166690739149647104998426740829685368817000181733686647943087451062168771246334331107600842287086092713887645979653883730019235951105541828363710599700325338397930565755916430824813412108246311382570533978125372364578446841542225067262885603464906638639510373269491099072873212153060768062445257347735259494021645624742840363319281505743679710831086733407299777556513717807505406642627908562407155639573111952802544446895020091236574275850257106936028451070104362798062419634736799024094117016300467951754613413987406944191256881060744953051155649053901114282931651501168460013344736517744389358486024448071335750104954381379051363748628408200083708219054016680846814508458770005543289663488825037508893307742429099135776328556456506159589448817206717230749439602365260380867261351281196429316723144642928940281064500415225058353373777613272146214086577814202493184181506690454733215810297431813089774371489040284964045509957352212914545468357186225455559338097940467358657186912073839205445092507052466510557092155099627001396246092118392850751818409556453045880322049404750423146729985057182679161794017851508787701551995170717254586327417930807340727487920605309310496071785881394293791988235280621640731076232638827638537264290044715405101657024910062467779372832381430164827994627605017839293346794382361214543205392430358959223068368274933894601819988992020345755349009721558452532051308661725544272432055778178954804435668108365197471292532342913192868097570885480256614798179508087958300844057872486373404271946175706170324204117602877104437571935278570365076522995918184252985429400138098611812966757917979204995434970104215782279365226849757216604069146270137001352936469650875373756549301663818237578449808718177995229018614329864468957077210668561868615794700199389034008042974805843485601108661179917726844810959363831663748770916602457914601123235944585527394669345046591854098546109511724291391564027724109075856173288612136164215891313781013895913900015398336269715350825611948361452274586978072532280256222541184503875757558251522766674968026151874782751766189914708808516094871944413278671239914516172847378469468701222398651555492107711262183386374614742926241398470596073093914083171449676629809187563406361459318337583759764449314736606479977604179589501845948890485569731285667146364003430943801318997068619930281045425300158871148213951597033523804290176431051527446103688643481202858696585723911770039221041224984864790017988522420351339855453172670348060128510835452240052749710643815019612617504517482727126187083391761531487100397070124439956275852962721292051201524470967387166338099056795251106236714450062982576325546753508982599796773055637081681381579180424324598503843396117233521081377580103247885706578373974914162123104323571109783900751356216626701838451285220637983828815752035310730226911042938837461186757197386529262611105665393784157037241881669762555488642826440538729453964890968677518024508668348430799303321739567292233479297725455336281894822245845731411229713148740362065466751109130628945394341826234115489538790492632592890285128218777365819871677745365481653547781179903055005459338786245574062084763237865569331657213548156658279331796704900368460713347490839269577149952238368838063896629386029245661703138709873243380899041045843881127223773025493970742970347912089174800401137498749728369208161997407320615779005425538810456526712095136865292220443492826743051874333124999219315934106791091706186112495621450952425587161444512818823645708533348644636157970654643502273951597423815615123260219316376023029587670277151787389874312168824821336627159968296208791988367870509735850397439123713558634544516922346500305563655593117486189154784036402774096300969478346653168039732406439450097085739541952450954478502328392378186269979787240737844114418549536596266885301222901226642921098497874720915387089205606917083739514220212977452878938409217994332945252480789930559752934786513646632144091418451159082277943675302488882455211634339625433552335034167663941257818963402468308321463261242394873797776452622387904511756838291923546150354099572046101469820908951769084413826366136773146479360725279213835316756196267953133356550395556345917445290947360098846796955110041122313308614125923380642031189966711358137133095300639766666751949571689030595229014287038589684633161264705007799978140763428242244495153481643151749656033795964343345589047058000613389854284272946103347529087510080694093688206994563923784459683799766153094827870063033577933501410130641277361856892529346750196306586516301956161490276575455728874424469555200193465950154211227184921902311830956973147541128247370711719947310345136285972081429746689551707008025399712815108439822542964140310610140937893280011375528554172719557334769824560826522892272537819745085404089351666260324142852751160480517731115818792658386973491083196670467366849678433994473351000067375397428563193223730021348105809549758786450819067939260264503634940155980979705040234077221123116339753141697896221578708416095808364614842523240845896861620338443639782632489479039088034271054219978985664178319720657668692414777835098507804268793391714658591576079984359794344084950652044085786805682545064540818536609918964745160086576971276615586236075057342119600126922263093447604083686115796114531915170319395794805728041958829648374974388913169566263442749741150647852646086157049320013850299119348959187964230891108682528996295722189545943919438719544050824226611320094999574242025609347851706117977435784557743761767611699052481178887255215457825547254179232652093572038713534167326865465830355032862701546680035310742001580248880509484290496055185970795612642365364316032558844516573013644319615568838777011910047269765748485357660321666413938397617475629268456202105002244771875485240921477558709722804666610391569140810779534364498274107600154763299009081501572342732082218686072268576900437522894464922348061605349445800272115830757383961563967172407812674169822460271206360002514328768863044629584619918684237000029536483327190171721276453741411252888560758029172184730671036770191358917476179225426044690539282026735652699525410980281125027964548842516624147039237564544995673659477459244405478192026261040324178777221832713193911705533302307733408983978539742820460136806881102108981470628193970437214760951678607532070378699499839193652013014844073552922184732143959681264955416155119895857363374431626833071963914898899276271810110101066639237916835163089744230805135896193705550515481786621530200683245068949122836525659308186906805005601799661521395822349184129250898872020351651028786723566250668911291498799593776742371843821253210050152083025187654600839105222592240089991690102170007603451255178078772158708341677397831801052091835243358178833479808504218331749873172644428822473089741922644877483393843721574130558209407165077473459330075512062711185791334779842678152876350585445391175023452994703931284159772055830905192094812332018109305098047936553687004510184242147208641782101437511807124114801107193836010227612914268736159666648042796967629924739659019492490457110578094048605002893358983437906218856165836212492191322440334339528506318147929201915116562000648470116266858413412305423904878021557118153596213316903117148301360181630074261084290917266324727321804156958635479923385294858826579232407554365335003853499337524721331358756971800871860937930855967684336027777399900912290075383684562902729451170771958745432264332715923392983268838299076130116678364150064974927198469423929690267918649784561183818372775687235639355071353603388162007859187095391357602406579846857370275810712098217278573433560320289939566214011220741594167374794859814037057696236688734890287299337923048899872109966923509533789490312742937550960336871814579550962020899675869023365767219645724768996242928561660154337854716913564326264833148315731912362236310464784934587608926789015688828983173338333599963658403681705472590497575166653497150064399326822664266939834098580635416710642881192722204813423011668995552671320574113994257796438208337812155651352190186018516703304092017474478977091806641359151043473156902033778486107422113722414444916299707120318059082554092174733708891242323554299457186489231340569309729121063315076769934398194231958930614333887088289347251088614104220497145506995437438571859351572933668330700217151385020428153519894532760313931760099264280669509831855618207412054228909049309388482140820531735346144339713128922927467987750994813069309194037206156075077510638013268082615014683319899513425212205763903804604677279332255492202836958337598900347351384419950363280380036716539081608651966021286729198094781736283939556135954315816911239985413284712853213021052945185685307936171176355555327052909334587521961146950156074024303651655664394475297981604651920572779458261244916041644165709129068748620906544932966394523654556930746696062119088983556613361848519584119065129006438343650726030991078491754448035068896338531790061663631282734833543209986416020627089002555009498611946336350545431654220882347095770018862232536322343280646452746589692768829664390239887444715158045613553884641391535725872743618998035692753318061478933455341697018594823557857770401059548222149171944656404682205934997519935499419772882219344263212355310573299350799299584026129493352248566416230919483107015819063316228615086788842883484917261949491379402697516871401141223045853285537643691080792312886853749075637206574653352090535172685508138301862724259908037345315297011426040860420786771114712578706668098329730235531727766633082888959843045899077783936590062777979140041593271061282010229132256042659713654285245659084245994179707597695073566210765264561534148466356553063213817476602912602933438216312392789360185292840144314767718177356620821379354967414863896463806667735030819535391465042043483046691026642460088497928142646557990879023198737573046636056340899463071544296326029762723020827197049287427885397094872870696670839838907609411743681376758075926602662968783551077679998537227846176343217126194111448747460355251542566167456990984205414543832536844110162089433053029887047845049509239370893616851572895677697012769864648031535643234672836122963912947971055388920734444286742159535101669944306327466460229871493743090366151727233896143469327271264273521818100566721048774053532355629565023405367031265006537473559271086123571026769539271560503606239567121073011472196643878450434643316652771239616646268335618679333521737993338155711840079859804482934683080387861704651332287515633905269493339450025039198584030002073587111325217210408767569643614109482452650816573735216761748416493054845688550134771098383444339177201092485138479825585780058379062872026609180788222198447529590391511602261749113105127213137406764205941860025036035299886664839420579689215076416334189165685715306140585170104852092145695414777525404284699063301054615354510005091822398739990365924629944727984559532782340780635290101972572150882994249825568940703427694941400904448665484698375369288670418252830032177652087487999579263623013799618325070169991186736293677029690654031114260167229499374234062330402423757965166627375264749427809723817297055841225550751461398808155158464742302601589332091204507414140211360363642396935858111044031492900013732303838712006955819215303195817742360337223253042712047015409755113012312166833811328362479135448120942672186739605022124262558285865106366159942250932734602132950945478243221111926378095226375034211604737160535516449684356859678771306577269876659722822510550195648709243453677463161541548386379283576509169278801504643635366830021440860990477529435219378705989685667380858019151639552886798368504786104124515382082980462615578324238565722129112019272596195317737955012964617772969350420138266399134306376037468040890270818351878607172918221777701235152539177895690706800790374567549222529367158637104165895903613214284038502306720578818289212549181662812774035783838213223333012873630202986440061118866470209169852158039743380100969704367202691372386750253027536317783734124342058493808257669011815913575430902765167674096753153404129875688230607439472800075097308895904744001747478471385919432445359600426449321436891737459829881921102423748018175458083630615202996289850971334490477153341823168088811626371351298048495769980734008039718624239839957686966030237669622478229736913990397274489616652937830729359767159856199953389623942057194619740925329923111144075735667877836169721175401226139758829133960467948253704528398053532255299612276384743039707943496773408134724457673672086776553351136828849512113214793495484285447091482227765841954219001445270180718658865937229649857270885585397515432784214196488874525753590553112155830675657848327835565849428470837030104755807366365687418450078282479968951175651188126261724893899922448947571696103939694981067477027907785826738678763534117039738377740386452230311300791324713106495481884548511379643994978823034329412111865621651772551819470232205947940251581668516864412502702002758176946432407770629959025424076352595988814110288170866473162671939879865295206424050090931331167194865210896353063577029774258095281967541908822688415078300241220065432509453040167978129896078288925484992648183712909936649900337479302810784135377083541592464629469455319614866544047945381027697360828759040336090155896354329600265081396316663146367317917368112000637855385329812645265584988171266913103730797270493602267412392143320595359194323792273037931375488335501680738446070850573682939299938697777837160582318364029000858578783278638225390389238417159017388902497554669210280758633778874428202328073496376543767787664154608586388300370803543057083853188282852131733230280232548834859824509274390984995703963436215825355480983483732065848939542327633877021454873043138249274643475507367470485382978948807771938312614490784900946270208895109614347359479100704709321035609909471020870676301557965599959066049954928885250093339848570582566181295095595319780551434835035316270551378015258866428596101496625332100676184269930858058961852835841896463214439350493299953673428318165391967612641590153046887814485764183145889713853118354908198305913902248409822958023629168496981740219714460578587666913841948643084596703943645628598623789036849952726971962854536287305707961648354806733078700856598392142873596493003532901629884694768618562429403433294436580550661553663097575502815532821400623124507011277623584164204140931641889486939224120812508654620214491939845899188865340925623126749744013984894003646398439670078168405921022959441860547638838746313077772369972195765038492793396846900837271379525107994571695677861625507499944171935323489654923009777786760283832980566063049732185688557285674119994600072295356314192915140756789130395419052948654150871322540473960601055013085028373556096646707117473720251824767753699549039084659402711097259219793671631108593633054886263760713739506181685171514446714805164874749533966043932739979686667489106755494779470406154797527035327485945722524510665713656285002651778845767530844176107386014499300428707303671624431995281845403035193714812887526679231487510532731800489179565698055211504192929324245261338773670545716493896251828056380598538873202095862814668243424055356934342541650353142239551340106015709563757201596715311973661410042407684627441159811054941256688373117534952676845201472894170910287734223144269244855204599869806145227530227941748399205883222632884774036484902004580152148823055506694571270017933391461399959122377437403384343433701764691492902881887222632771854092574159253662565243994475719756163767602029564363565499232813811946482949262430703420341613579760371530705895017339055399359971276763662226891612621028231042852183763128679959375416469574378166986460249841642504325758618083793721195435313258486160178455257913394724842061376531902481599388155419312360609983531436878161733400628300247878729707933045949020493063758875898796475203326810580955060677899625960212279646194271381317516706270025725080904356581687244504942261197169983394164765862241753147286016425096939026665026802473655613028981020979842982697902379160360362231548008349880524804875995528233203567473820481372871387455169076898971647489378100074899170234858785770742319847646386356570797489696487246606793469877521096835755456336587089278040523586269487870957487819802219215844639130885173947633246354313758917575585947392895824904046841824132584346950143112761987044634668798271421488812071138464935719891775180594710833759990101814192023236065373126806465361379061481726579387273359706735893263592107442801098746420751447623328700136699480732297993352932984525783232471477319617382295260996936779342325306025566106110641072378383340018407499518748101006188286653166823996086530835178026891525955574915241080787435225085290792625087015520848848954898811513483883542889580732427981038358045508747846679055613936184103410264349126870720270812347448426416495919123496863676533001202491369362307522547483541251580338510582171869784727144701630898378752077752344310621388029621503147799194668378500075832621263447552198244597111865656387890001974957125554126079947573151372197679197639993798675068728891070752467032549921927663765768470893887642723767194163604669727964967392078379739118815124378782428077324848754399598418603488526779948235241470475259858367148965565045785949199820811356400072290138532913707464460250599681069031013270448814281965803399006714195396520401463937093862318514783235415260017529791210865574875865172510193626402401655771272813521233198616558378206186569316458929564507113097051441430947585382714893941900799434431577923755187067362200412297462997915720106077112290545766242102686764156285084570145096647286672155298227338400333084948351702846641035982790335989022378468884764827685089485233952211373913272246524760191399387024154788735852402951811098624429986012636704644285577792342557573229488801194958195929532413095218630819079366784115201353767698743349089765055825516347292257192819442482769450959225603541604088183182372782209032090392430224033932270503141385214341044775985550780561582552687271881179363188022941858397398084352337288417464052717512498159895287294979158550921999615636790184080221458623487179679227088268021091312891302839100918705694109469808507443495057966080380540841514290896076967116877439703579906188632239691079676602766961568784731855757640429858566382314732085973237063982906297748090178096511809544275537097237411729402885963446729473722188637594680178727521075592221697270277979781576353527164443495138359715101150013440492043751615159799799325692914709736066161745270731296423927634864959132079594071635025598194647218899243200542591107643956271201877611131784452282841064549833856419387070598037507407582661851686988654520398500023877684283652173295978832027144047466517478214658005359109140984403568994153760571519425929471264414416972289600876111894948516862936863577702188033882804739953233158253726819251553113991147825251610624011602646202909935924137188505835140959242991051110535388951309660093131165046950630296375114553536180847477033699528077726132659901835582329226055362398424192839687203478728053787301124549175094974237753776215729119147433214680830683523416110374125778534629087427559145370383741251910250350509176001486645051130996838285862957604976672374341059917520694335855100192783959628930546721893554207269761198602438984521312092285892669373179031737089023164067456406283875504982623614326049974550999418603810302482878575878938538996003096934846566804257285632819331025274008512209096555821762525097296245369444322473579884949832256382541234927838439360587813952145679727624932449052292837035200636923495539811573466557885725229005019018665714955649892062782393353842827000161479828709569311110719419604023569533274571635104712016865010381814138002733570929296176926974108046171704832384668738250137993196018347847585946908971116103332497316062973201647570713371246005033980391336084801159934692814439753282883706727802405517057028220715000999194008335552899063299453194835815784937036418415453888153119086352545846554810816220121753730572839358913790489308780396795469241860544939837154789469601096108836598429405651594227023898255042127052368091258819237191119487531677595792322876434218562213563238112383045530411310083659592573189054755350271218960356203161528481069650707093208548050555826976111871828174901824232786086654590111902001529920538654778435409293492891074690954979170137412679335380747543372846615944369130237536647111831817104969505339803728006020714939214756414405496644311994516114424808184360791072855309664060492690206106163390355677310941364886863024797032479634388738189269156325286944964873824406076946043285707354051833160784353249326963027741630833632052855367347469796847447727291215771759185712141302882229919619897897744203640593655760017315310695233781874506367630360048096337926551623253111098072709538678098091812800950462727876285547726854988533390955870667685210579478346022925783076562731827824785102646983509995081379832524502085911870490519807554396084802089125131421730229426725574806726779419122235395589108726974813202194403071378656180542353083826862927109385541193420587960220429521936154442549127441601400296637296976102993550068522628286868214932326450511858612824049052147432805665684607622250108682169011170866666178974371174553615792397859492741354420600159425037934067638269184512729426232037880225438340005418109644402147169143535188386222843772294456858675576969951520388264149174475694808502175353993118208924766863861970161807097226714764444225955869277793134316707195845037041782314037129056472816349280928632801159727098398341321601094620313499776199357614543857537337406382688216386617078490692358790169155934768450826860908510206213380507775622909141628123835557581245563771313040849502448846580260823841910487428975416563951071762102331810049414933674853106709735508775237992867401750278958731775917831350744758202818193371413975450920660059768531580909087096641930941702757491802205142219345944370544016498578803573087465538968327012662113520240437710405424403073725630340950377731675455751075030952852248357266239392312960012716920239056384039135297543436898499941129687398781691852124885983538216234106079441807694672219217277734666958907881639434119644175076411486270966739292852244667445466164084696850173461771196483340745824827232930416196951289279233042417201807521956615876239948937478403177040559079736492396493224694263755156989033730362585670173937941023026497528564574581844227764023352200945976146979205644522112685347214887051028494796803010223909902528680854620937915442688283201591744873093083710481703916388972077243656010211002750021924382840194158522261264491859513400932906021321645116798944010825631010861854864541456900475429186620909028538717446374508011369404576705572545903031776537829273278717354143909396564170929446328454402366541297018754053293389703791764503024973631548587370729397972968186103263501947744197947318352602802512302228921454332894063688925728599821263769900042014721579286256993948738916080129860419356864496178072217478284697874536233124267207619861397100021854511879232234564380044167270076974408027757267382755740486470370804806954288096842088368497293405592339943626380002487172183133133519955489368463107782936689648355882904520763919563337887899978428668084313140841484345185086989659423749224302699957249574982682320347407332253716807763895908587175164059409624819199664066101830130326712458992065690472694373206738919953699966651030363450340384813502250154033642910012356899282500233540314979359355863573315057717501542023483834803416885787114344026014242035639173363962642090205285258246400317118450583923628945034705044861854208153557908764144791854443447014638603849490515580068514401736122499159779407746354277294787771239319596291045080485626036424811208308393142162420039418311997345930977047971878957132548791646504993140706846663223159097151603372161103945172118879197741374638621200567680348743866230998080923027678744841927382140807744264568208043849832271504532026862255144873535739141672401585022843959163473199581309193225360597643808758970816472427882295549324547552954814352556881657071978979326201198874084932349008823463266830273932264671343020741238450442255257204066616785241732218837498145970703642139846823234242048313916413046660785347545495116983126427792450313702282816971846175197025229270044237236533538015905215206235907053849573992412379684080382360145287211544632668524921331661573457215014830291356223579722349100926629461399170097075537992042415358073992141349651597931464789274724849792146689741476021770826247315188123786694436559147816672188212236912539034689324137093661953227485956120345020360066760924585717220181271294178909319779545447752524647159148033982966620084438134826961392779230576351078271390477733330162706761023115052629677037235244431330285314160871799141166059295771662027539547728651325609071679972997416657884416538171839038999933041240813943495957867753017386885923100362678788876158644131019071383326508554847261558626007330347619065600474223274735386186104166714682740759443505460267968830584180856070564025115796407392313349746797473632533308107694731740387985587552165695473782816237258946034244146642283920103404895402515770501981886379930972594885860055119785632862493626260512114080120663203758837688166058064210320990285510261552946675763669544064051025341065680713174668956826462443977096980645034335352497845251801822353910788303899830304038739744266466874024246173696189067437911530709084153236763566667178831488535207851672670202181013327965466073821693687191214373167091444691269527077054748935619816890793445150667484329524197307992260746411149309261892234792768458709463461464991976710311303838273458395952731134967216757237741602204619976145212509310065633668755914016237056959925822777370254149951290387707040143778464767848096073079857706853785400261143548832968918443651758573519465096658541238204052090753420574615775586239171227291307605268801445456087660241045776325683274794193342528054955052656158614668420929603921349335993224025278422954998396175053972829838213078182832523188425557878355116616265915381894048602689850927263452444193134347874645287816074890098775476124533739775912576512446040212646907768597068703109825836768298769978390693526642266714922830266246453662245217985040739729330659950926259651367327128626221968389227990718098233185755397109506451459369078921070433104866564451278726625669401196195935554626489384062459194277176698447820620845757342867339531560182516875370478466722007010786717670546086216065541335264960074059409220063232853959832118528895414522237428072133793282431493011067312226290285840534813146705481231324228228100686614044336121721146693986686672711977462129939023698023966726378732638992028030219211436006705842559659607082639773357493668984656457895125854624332191823918463625379120595934390172493565392842690204631126713951941330892915397650638618116500415639953751969468012144227544858282905032731812926156165967717268699266302503506420055444663911750036811868074274445178156448414130235027482054183809508471502064945171797947954784227562449753006531490574829630512250120077954226020336503394233256797595345968735854006368959166356509839099268071314322461820089781560094444945640416104156343575868273366035728600470887613120819437407387860605324916193496702832413117978039173535164504822201060110426613106758771424685260534389602453795196646067317418870299638141060645473072401343299502351258522823190479380570353453565066572628029903856858216802206502806655951248824554118838053010249428419605213749591748341589549381494890586237343090155343911726460101571262093363929695300052238750155020675266475977472865100271676612438257054106932476013110547172575991142368733546320425630029168700899565927177133618758236041766180593672203329475906040340536725691803114624955613415374657434584494059829969077789968264887406558354566848488676967378144723586104734115155249207733011177134604544888682317116791748532735664266785031003730810906738914987481326488043632091432616539793587228241252049100527314392222080300086969412597406261917559278859542559943950291143816528740484911956329369650587916778637454381705753729914284378364427036447095071711425162968653917580125497198206875537940788281474133199390264805302074217309655027377552939146180324367156391085841889570565150798898447111654966777748736370437762675412077071850039660285138461169588717770849625832712124664111010516311279887394152947696993541308386371881721321708187238473446083333108241447664589399337061706032011770621526290424131826134966391236250377083493425397350443340938067317666529186074823903782898835378981735406073812156815201309614701015564675968432782183438453530150739678915462267611446389401783036846160053151303547316649779817496078228336542031034263634383113771075046476836813738174885316035827474446709620711441987797346862075086246221076596638037035191053520621988875067415747155450425950525025993252495558115446286426755576452922324009667457716635222428417735982154279482842780035043463777649240101269313501022662056333264334541150134999503259511429642389359127063488767645797223794443033423386143341911058417671359235902090402800646672386036231227650239714585956612361043186786886602053556647893494161718191612497512726560251037518090149428826636384477751249518634652152786757074173161897840670612176634166355719736920175198933518884147930755887888439545159487543908954227051061776726187583305756527985364033779075448028217094496753467841486310542249347341479851762266207205985001382687148184573691497118813519054399950667288490159790161476993949599790963248726949252525732789931095101850568027689613304672302911121962073718079010923524051354855082271876449639263516578362987516356261541754780603639548916406722502685565830873882498841973869434675276873106082537545635253178497993153486252670138065268569849898928067164867746212626229648422566211693259632067332958305359024789429050600591538155775876427389577207436647486080418133259349265830195378847591951349896396369264106138561644779212968494126632596806345805612240986874840390231074688369564345447745608987804888687076694975752293338753225135771231162962060044939698384213661522135727245883381735486198882642156629347989339910632195245580204922688670592101085360436797510986396658910327737658849657310925017419683282243677907634980733096964760407779821617303709424881021154525095685610395166067512400597536734400870628755256262676806606877157071319586646425948968989028198438342369983506725727158422625499919221623417099277334537402558134967008201791013804780979374198107889824862089669956993891444812356626232069870055007841811036394570072214577633367616847217525807312296504974296886870399086708312721152373184602770210909576320222215547313385545234383636305707534198033581233276013455470575839750088342265079037485022558154122999682625033814763973410881961964259912185914935910755858545114599712577789330918381515512422438465422781020572621088412556236419571593707292695460482180056194252135418825369044966188600827164233439343828209449098967554169655469041828441205855894539759034925010396845459484043478315835729942666185583989384487885364817755072132090215270436644192076254074666945601153599735971162676085189058326340610043657257905072957354915458206460779657770552885320811322282011735397765979425814818807699617452531002549396348304834652187482181662369823665028392197751605881360354352160530761835162769966825147345666607186093579391909777829399006176628482500517698041156274333537084269256068775268185318245830883673376342632495145311139341466039145529948516804197106726479843540080513829461545765113709566623494994260475511993313965896746038339324320180200106022020648597580288660656554079475075468212832895297741472362762159372006209949830673343093809640289638513542606966095668666308032705357561560835323814865142769374094972440542140421281813349718415411779158921869513303309006166418534073120703358921235422231029381422207243978166417505030269819669838036573359755329611602645324309240145288241388448515067903920254631425181395441437701541775036633842682312297182488407966743297329631881848594453483130634204561349662603048769337768512574200684401475003676220461222767679573616540416260175302039843580844981453346862272745099795040771956722456484411738300942809866688017801846721870407152392992840293332308924718957681656946286367890893440069735618357610090148686468618355875556461012481544386686973236794778667846251812432104059541556777692902504512526875080059295513372389578939199001768582727474910306545155019825359538244795029023343321586874826557654406605790550304388229252648184711902621384140891358018403212349034138142213818420472641427775104274460362953274983105643659556315851601096018169931694700888404696428934065960020104211016138556725060488032442330210776018443751917802637071032009915153781771648699753019914593524691113426539874830973242387822362959390708459416106791605989363615236692818385782712508587374473731809147797356691384987330716580302972941869565721469784617729012738996126576045153609961295603727312801725773329847985852047957945074496692123447837378871929415007885449845536737533077992507070283713143668348182876718230549234053251584955468910714993867884653650708731451169165417489843460507612656291944887288231457801465654631390425654615599860955444399554074943314561923853344037763905649785908889689150035619757381828155360951018682682676533794427681646115454237869565442593713377589850984666364419119469984107565863646815085224193513973400620843825716661076688181271932005951378954564625845742227227081943382606365864654142043445964526593849015288077318510881821224500421148528832424986561611807592976187615178457330305971061907057679887484738933298604707775945479113709917055976180325047451363084601585758560305824229289440641123913325163573448565668085328618175131868883480442130381487639289350005917006929232348897080814286246440166415240631725879194609877697499660008673305136114373070775579775786683081167483054625242802948213589038576673871124543978009943761516938504098849966030946917186825711268650618845800703252597610101104990733785066399107121590743711012317239460837362793595418003939629833551809960621258481189246475125965011568102914854431920713017348929989503775497518056975092343356325864597571417998100260679498821309637503849804875558626563257148979517458894792254432655487140645098793709964812925975526435182510900111640474621384317202084091590993492403718547083035097780835450723249480126966765268162257414774339684618303268596406913291113350518102964081103613936585603196615171282320485199390388554353025397327876022819990230834065288938942285874605287814482658929214021236900462469643814754253510479073618511175741847064967936425765570093843204741043841491425540736281375812850394796009921546835390102722355342763844476344278094146222016036258432553775529142419094856861643405983016312397104869075181305334934395060154521338809568772318765035475425334970271375771031107679475395564206254722549462329822979358589957861634983954070472451886921082223993863964601587821604334902486753866760201067524383163455487810677676399480271184045019093294888011496944687226402492213603407730445356317244434126395663011912082166508867965802597064574061235336940035118861265226758358112979043776305302767600582175862274090167520388658695517633607146931581293220903424416951085896383718437220660514385956313986803595061838074704724001288776099823501571448596598308664683529462239468451360994388399721555269696619062169005480479364883692442487856257597810474947769500977503877930556098951018375211268415996566989269707377744314694644076093124659546311837096522525347662987513762100994649600080062126541341910244752964794858199619411627430951214001816170441785713927215422209512094851311494341764536034075051245349459359938087135522627291128633224486005210194702772672380406722463454201551642390697472125594520846840121596662850693912605508087592831723275687071411067677369655321621180015808641403342361228976598590076075305726552074424064421016919984489562197453646452895336843305282103157412020095436989505356313554833489487489050785985997198411476264015271932820219036673915717519185300649681968239337639103925002106573405702975060123065415530614451686444340539371214219995651105736537040471321829679316832784178786777855524001123589571441445144314618570673491442177732979923935966347157278479571514528609317980312492352470241095641578083076564118607091462870776360002759257368854006202066797895673011186836324055030307360568913731545642482386982314567950205459689654575952029067188567857100521312164812460842146064926113528341682659735117882776835153557466496317178983810283462068265688013275867580747074550893806847960802929410357843949017501734246941408339157355191311028218121882251418692189261702686709106008196972247755474184875990733189976169402930793383077837695814231682500379834025169411783044105284551474860964211654739329064331211602499557751979936415281749589832367408662277055508837845087106502062506814142456098311744244036232354175433057889835396139137653879981146008861457593640896315872196868185153934793753360426387508388556265395421692798847345945620329660167944956428255178287571578769873752390874778324787569786959980127815428719608192086603428230903236984800049608281938238794163456495883238041078811583497796445787735989443261547231216205229785774904668808283107158353596584141074096799693959414321454586324108137755326021577520109807095478769446626356665531556382933181181000704965626609277157578397388215424047101234042680572437994539663429019689387250974330936326772974710556621535181936045922172920257904638266328048731763858635667232389655785507728466881685211524360123495367111832818344410570982308958472652324902025983636475726061075552679041360954002623165475692314949883351347383885048293200456203601841264255982077763906163656281544669640058107852607455873984290857404131686946654006997983736229979241702302373250922345262246341170215443806244930699184996605174939923611665136382791095403686432166078422662126582751269844618358055574899665204206883629885355882854620850707020169269742074389112293969483412258937053336086515590348794305887548165171265364937578520074310346238579867493335193784917231481026894290545963786294543166512890496465957248092654246265680412220582420931014844255517693459645842463969826695660479996114755514695351496346661580647220719578042223207094178671050202946295569292726428857729822098681527411328065102435989121058590942638678288847143436044613310707088936896511250736880421868681472498155748474157295719306854057753978496823907200560725263786815139632605209009042022116856503752254144869433240418138489723331611099207092339652587843625902649351195647511077351484678407595936187843996257680525209988699552760469611974519425539728384128864451116255643548352579785147299294695979519383546345955508887847883484601097334012414924832320629840945376548871772349568235182157335851469407372264813785631490468212706169066914994226510694351917791711367425339603772786253455420868786489506749220597196487444859939551999937127278675308785571535587858614836103885245367424731935782513952824668498749848892550464706830354668297434589501350566287562974513442027304769455919146022753192201790704359880671758707495495074574889217031303865782206570571261099681465668749004513147132391015421802578936199258724613267247825171904476020324810700581556136068867514944921039045671823141598459641566048425470597829932073092161882121981194459002336069633507706636273058720353888845756925659772372931932288926889620667746746015395840557797304998549791765962835533154113251587614178797794648992439240684233664298865136042663275336324054839226477245782097575474406298215559136229633944373961747783357136089530581867258916735266421907604316167150247504694768975589370556617471238135767929885445060128089428356924300114576138367214611406048926244014135942865785258456018552141941067403375753039191562993505329089682349535710776497917059394267006490811142529098039678093022833980087202572053848316388567010364350593532347383594925967842093795958795197368161622804344209895316240621807338702032920250224391719994423432752964503915702344825341073188625234786241781497541037766445173632718876886808150344592582489180397561696127372300035734696729168032669399835179891699292585408601087474250728560970912158979145689051541552515909683508767639966992770637479069958497768429240351222949487263159023749074347303509561981000800763636756040771619098906206138712434253116492239537724257777403277843752575268517598680723845032406162911710522758679307748096456268825943705673053923456252966598571818512066772482689846713743884974884175001070206984822092445813552788022305945230607281793665146960988744788383879275695353732451255919509329284568927905692255265505625851358944924530097073284654151511318394448850787234358886515266228996801109144450565424766550400676772643183822041907532744677071428378012002604659278857822844618102941718771377792399923944537772188438840189970812444415830810274022512176416893094985851935640403679878341515635668456815279288820966996277899779505580188845700491092209107281049802147472521885555661701719271037151362773507529889808600916790091111329980267087964001323472864556863915639641256938259766638006162799608503002521058241906105430831951200404611088591817786958112397734578643305787902869618976794470703903293216589761166909296007095707706336024533914076458666371251937381818629001445475708915827072150847586303868312296756264387311352161014426373512868417689529938888289165166183051022698524512975385268808120487251777625438533447424541579492151887465528588793599598935270955120164781352171597505673833310626731772789123440207093234233513340524034299515708635572830980500442711209591683136864559288982538011889706034282671700825763339134168372806186832793585612650322070401088451401423485627419393053198965123838434312732006128235044248110008545399509183747402134422625506304246428019959904683827919666812030713149881869935255429558971926580178435484845506840401015387535286419725028836609538288951228544475598026053735599986721265736320325265432266230486327764684783825539744415427212271918662780809442369268970431127692181187192571701523583089488804358260871265337498316224555661381356290174510950488623553592954693646948522360177339312599144451576510324074572199628262658802936525904924983702216481728460741051368210199589528941763099705734332842812789061269086873437460062098214419988708371040165575149188222768733105158317659887935081083357003778232242632641440701333942270876666801841709992038579350839629530435437340742236619199684285786616774236294398965721510514620951194777434395733235307578035435506725076200430245027355189982679124531720958212089001858214650611682188251681370895989899710389001594890710436304109060593745547195655965928391284478264533073680906577544949445885065766730622601329290954064587484206516975283256549025304399289543976923113917643799898950019068454205258066065376283048613055950097743764448490413584738653422565987816925267447935121844957018963687394254637164924652224081150253302576190522777027657626563379552128331536147651478459024609745226372369067853320006607571939850869247865794592506359045271343666530048614881235424920024476274985029299877553641266328061341906451944807883910779186923816086783085410421901618269686717839249770410154630615396286111734434986378696384679014795864941036941290431264106481856184799669900996345114051232847029145347196654646765737079685950712999797877811416407424598386063300087046405739280358852970452723258358998704955251305903216073146498228932408824046840071945870615337323319992437828404898709208240489621482399657736960249860997250491839353578416741423873616360040706257885008128392346288614113236236353244057799977448669933906983819134228492310041042432554946041719226835595793644497014834315477990739905916832172317760854316178780182256110460029641909296450526287046024827828146191596182718228596467241521284440037510013278348170444445188380224341539552432840600123640842545825036106078511391531107253498627600387299802610906155182822691741659651138819299872473633635417175838844519654013212947822188559128018732005240961964827786516515130580916461294147778084538200836164680066484865932068491177735708215794562037323980455858209779540570334296358128827835265537346658954382461807038813184819679120796845180693511272238459080280696177524798313736797725226567239100829143588295017841097509323400119121147152069327371780376649553235437821509089369423804869952097750577342785759554342034202708148234441219718391753003509664238051932247359560381918049139318895732731173797801101775631587160540739310147603933206769120700051007904686412263819387611263756330428809358741227613102352778587602794931217505335760989001270691202159422397483812535755300468178431725351609385675086947366956363396877752366401533255608621913646002849212490367176603884820696843372704279733655697958262715444292691977558675481613006599222726597343500669415624552203639917959740958203238212743308746196753393579229734120340445407771094756947753125691151053635930501887656553288637948791004894110419833249397859783303173038240702147536480923633640965002149470416603357537821675654639457545627275351462602920337779347586803872429474136870731513200019586875438607420057154622097916514835205360805962207215102995237073093330399526949749791109237336216897105987166830381183231518051662923324843739391067672193491700572335331787516749561599488246408236828402776202657368688783999211887022621322411563941361385342527967025091503875274349991225104376114226524007180949485696474850080579659228324711461127828371030913256875610090908090540936691135431551618596128961427911363830416923195362131055318861171587867051026557159733852608035631870378953771119904832774323322010325240270694380697213834194622855754016068869938933435615738884567507975525545464686353020161142373120170370401849070757144374747769430810138788653209838884540218432402298214653294983921081020260455578189362330362481437085779019620155531773209528591147804300936265204977144560632989765254306185159701256890377383545041288093725937372730516901221247483488324216488565153838519726950562851405926870055930212427780813953094396370487406670071999349275849830514128148429451052465564101281039716884292106340640856504477398947598567003104088895509300603695925122207915527961299708157721050317186271157007283459761264674740847863781095649735373390846478902969157075817597216935111847988432679919135360232154892464281374208464940633880844344866571047454642772205050535607882092289033176375902924640292961048383112492547642386044553965525548138359094951856773623088609818746067775774942390674860617391960446255091697425803115160306862939319070810510824866961629557458712952409378334692614149262813753770949903256097867159373843858581673395508760226061669899599222365080494525765703594246093473346880156104584460112911941209550933080356803682278989734024486281523535005587490628911627686517961129305239314132590789170624128917510745042090876390334227802068138488972796811419641556402788149086360475578593747069308108963882803193194571649971602670377612668903596203719328015422380498705755951866104660843872945577589868977008612529643163392848395217096414312953183206907971135969070105528233646168640938480456863969938696074731325435298107760112512155629407506974655566749194494953799046257461815795574205424417455258137992620384019140945556721096780936655887948411904529425491928939965161894572721833425129392419425424632020100616735794803522270318419158432142304713876609923704997265684944565812374025043463449331286034889768689471099648590194104068155380660039755611304979351208001655740226422543136262189056817888964953470449630776391521552464283630248989588435033725875170897834776233636009088645848790800988357391142418691568408962288092077027250660716938098508382193787410854210456171619180432529839470090187393977615061324703634159205384016251046007549207770612858018168547417914224289371183343448397917526044508814437602835969340952985449653392869843811269110405344780838136988217483530272967645649887284685102475127867379528044421833439805611968871150558049185643911626002391329980356764974224689235653634028239263895562343640376695033428926785003243182745319227758633971603228176193517491691526811498363673733762883573903569554447314046685476405588238285586908760950523502581899547669710903686357079543440257695482964357857922097539751994702555302661376839994093981258296168079236740216423046323398566903860422845236233623723697940515262953989093983140922857659475121813882746775108566515655801204216458421527410677724035827614158223185277464220118291114942192734370860808909111776988965755844162914496979864260384225917362084573938659756784592462773039523877314581089406549857936961988071017695160890788664861471463726112999806773238299281950518719253002737073699764489666164132154758779717126212193551101960850193505734327850037736256521294429674536687754167951729921620660705354416538331169628689553321728530983522129981773047505121244635724321755215195020882605404854683765616821549418468698669737583519233624270200622006468223746701398309069694624467154767778853346423756329092690627357661913145586826568103746171287173435161212174161976977802644692929778200134547092736519097708993524160203936539388864875846964905511162462852224083797947065487083225677392576272578231289273977485215573686380668826597093805591880346675666887605648636370686703678779942058388204261555316495132612641120211146045091710162246900799134790212750819376415846340237935338495479144885640059775829716059251742028665733046039834502285467053523607003372896944433721347861755242747052649455680639013958181688702575100044992932446787751676634465375541755326413273224515402421517533979326742632246926800632826313813215520850634741527912565607064553116512280790670589859620723767605642009004558299048633438099219721669881893292674312424196331788381956296407535728854576430986759734916129956453048700682883835762904803698025334285853362731049974350662231891420393436518424666159569799545196900440274173469074876823633080141581484975119037351107624766091237550034865942982404320492084037190995120640727665579934706549763957438037270124554757213810580764282586468146980758099215577517381906036796745496032841446771647966124533752238489726597804114328546712508848656050636602552447780532278043962403289922060545555970961445134714268416314315612090992632134689280785710875103390491677580538217161351439895055566023363848879593904805750418242156770938243467168347334484988781448726353888117832046259525304538633936437991314185852526103874147674812273586834424968282521521973844021522517316988512938021651618538153560445894218325540394381914148240806606269675719101769843523685950151079952575874148977146196269230508457828616944197384327557523009623193219194406973989106423377251926386793603256501775295901726487663320763814441347329692941297787757915415372372390793189060117786125181153846929317518622565055612999490205640773936122609537855919907400171816525775429952878465898570858234851826299300026524128106731257191527704088861933467755854605431219098510265060902400811971596776766454302289947263807618893356564224921175609698387341860787741187703396222389677307920931146779849860393879075425423056698767138989307311390529607381721365763393871322571519867201974197154849198373367539808459250051891738211445215940604924190280651035198479943671227976324467287341531968456467992833593722682044356367221433551113199465016349099479693862803803075524313606792030348374853299258475713083316095459180341631794937147206869456750131110489366480553108530705181280753673275936310876320679601973993207661770189795301992796997552121876006975256131384629507191692256217702944311307370886781180266420376545435072591614566950813714292188584061427851555138688498345249770612704820028739308446564339026023337879788309461911009247255767583729810307047073671986845156269966247537078987210181471378193703638959602053902686557029466990166152031345357886000970522740545143889330535321413539300090105867608748267217084790045592636665812205530057913902480057611980841077439845671122948926663156896043393158943725053117835423384442294038514561355384214412056433588635882027268741043289596490681851220241207677578739291289460521438723990502539720635676668221750720121294343969629027423773792935929436818379841021228871622191623327880990970518526402688497582802229526114588108385387954532657222934375647852229640480282235275776012694198056232501643515356284818158278690065884517542041103921765082599694015299738388087699419070671486604681061213461436111160788141395571865714556460168300412202558340774032074667341720964398376680492623028088915682181321168202527740399682963541612315858640950235460658434429001851296452288462408246879440390658799577845554673909413174591462742518423112205775159662795620146985673223110076384960224689441436358053698487812027554845780815935969781604746475978139196864013452878967579667420730123329887017207386076432867841212406680875627885809246358578831102900082394492731113864650646289557362935078847882944654353043897763073403621426200332898566133368383378160811035368677678227852893821102931681085033408063859241261302582657771730670604162435849867433862329054366104942851038555783841602922204415626480422659982075741236725044061538233286736173124289867400261227042096949829142240118565743260621001281510764691213443981801989861547674760947334178903639581088257323295267663911942137065663355276978647072356524964778617614515926177810219894722227836869898655414751868095769284824008772393223618897737484481475978123693782881221377666093866848967045830612677744873458802012964858541399330996177758505103380008207565793899283541942450383433047075758501573085843284950335297183135279558642865350574090024544788123653240309605416236946590509112293699352119737594043047637778059434906218114898638629051775362256057707945576071067557968618435585839603543990926726896350918019327581212233577958404308719898279929626532222539819434471523685170093743690052162287282728703649438719606792537207401505304585132594653279053768685386246493378137902104092724628728737809901189313554219931218666740860829777193221207892896043725272944457480469756643634219306510580436674103235221408345454097702529979075453593473438058832514875210976910304883767663645442218485739728666970181689345303692947656818277012520217345223264315454240326574690170495045221650791277112407829176886191685658953009662465523516927313351297442214008616805627495528830824438972483113998090414357504203082024875797929626998373644145712356673942662300506811961932436197773806076241962407449059992576769127101618665115483684375491053777880230772325754213497114440800554587908465869341529015136403319121831552174961046381001339643744156114756497012013003521699539964928911936084519432950747786137204525435883353110084835222040247774062390606691246954731802342651391121429114158009090544026035103226139534281687321458364396787314756359458596388865755685633619564056584267924005513330634872385400230985463834148884584310622226927126566033907827609418517484149003671742140172021487545090964121403669739011110797214892428773245153672104520053255783792054830605244788800929513076091733831732627021224998604007488176736090940970448277779809196798532384018597649272962448032191089672748409455461263386321767678195853263245094899197055478019442348653023682098079598696691565683297800697022608430423328662413922544246745901130654028847044180255342718983611716348212740628376028109329738103227133743526187936350505425982353587848599856564705490904100080653779616808975103677377120469343993577739931471402970434871437793634305368852642396350612056063154750339386515687482867350252563493456454974469108836580898450417122898289971568640915104259912278250833459357540807689918508080641512365000137496505086801094498337481454225748248644111829143146393528481954971299595523287663118636226380665581583640393874057892333194013158044017027171101886183306467098816506576426178352895426356330621694433940440822216378408431918206813221378774980723594483255773080448631185713794314513132038340810006288001567212805175467886443445379291748634739664299782515741980902120937797573120746919886093784805851513180148315174474333344220653344187286107881807780663499166832728136830912791405728006192640229987883789822505942039592638238169916873686504901371570445354459805311708432093470120323468338035903895544981384859986348663445243014216524220380243397730289468991769164509467637845943298578166146923925096671661099445949571087077011995253821132380935244587846350673375322918119863947059815613456119724660282024431022255492499385158305439708506916394978048696705116718536078563779832154885864785268148619169396117399365077995702699816210895129366685698625156343972288451122159281524701459789017140109965360615397530915270255058610372309165309292792855431911399804907339606583434909693459301778447674592520870151149702460543115609875551252461107939778096613972906630149949743400839719952285769640625797031011947980864126357137206515495326945917861985842162291940353581541762653387613476917983068918094746148271672562345971532294786984521780939929996299030465186964997722653043691558813025234855313768852893482029984278378629416970443697548927670224317425042372689434020776654189925773561084024785034462199014056414801284926625861693875804440925737417095245497991548495118790320158989323422690021679123455878582652275803008708051037054415932016665965395845580829628696617352082427168959629814670288704257730677524975204656309345088271586109961667134578750260919985925320253970881006626669639812255001197197663984740110230228929325740905946740233187982692954884070700492011306736529422723620600316619119192257787949937989618791766227411526886236786155957425123366715603121484399821722031637195696824932878457246049377655986489902258947372277572273307484731437070300569783692474700419402938781456212338608090507984549662395130917427394321866603821702184047429176333459603945697819699878807309298926178339262055976419218801777228305734673075709702750570048643307107536624350607408404177171345293699232867769578311289603379793913853390056916903356524434317043788639955275965817162177941967120190026718861000606703514651610999459598557298815694726535839798957818963746434875375745737132139002654832428167672932800935603875591512114266740223546402809902311838596477865165646286261197019757396491222602607855464708923420855821934264164388867915848890387959660538857438107007477245982341017396406527480856968305825148196583685949703476541379435072745548892083045433451134926565198123548058031420152027262640974677223409464890118078867803310081365714398880081059812307571891063999863988385797561251895886106078918610130019709087324501999466628053905902664919933677662196803161828373302775100666525443989197849644622133643663959972195202015055995263099092978000738669247064539345625018150614467353654487134833695696304227140690428902572959157986366835689462392195021602239878839910018020177868795820662692050138817358697030504404673591089329802160584399504858768428714267912681104672782362980299675024695432800125378392427249062287364276805752366396543718079310502152365071411323821887024946694206015315208842397541953514569750555509212457653108776064886160865641177372372915416727559394701160040307539945580578504579393817598521800246949139429981455681584710184970358293071132264301247573859206304387032060604160553602085249438267032571319616934900906323958389642323588028491964435755072532645691223999224758863698853537693735363383011551033200663357943987387703138941566475513972805493204424319841196413343650632042530463004749433664197138271509918973933415356623147150056713592074321673176026227918624987430040781777041280830968583353963588771438928124690427890800404554846642092179820645281821163172688827980176520106321946993025978545716418439200502503088632248718399682576885618293208037328050781758843696335013974654057883278191922503303267263718848376706684867717433767167447316204637846744341266374069437195798615966917441467836626849350887760354157077332410856316924652523075148273594756389232279755293862218847307225708997285976210952302028435966140438048510824874032566504075269293297058554823447286027645745519972780783295435069309223199556185806912309206284160527811435040058349712406966054920997216995042483015948014365777112942105980402680418098754063306929397545611175105842870805747086703673181701756766333792358647740339129001166333731765391910495931216904578104549520618723895442084973087028134083320272824288580208015963507223366015154834432763405164814471172531584229043255229980694121460629166988736647544141221351401770155758451095538920628483682557266581654562894014674233320408966947970709634529610975026111176376142050726288051782769673688595367020833573575153008315984936925613796726713857912486497459721319022487575847654139657641578869936041479740155692397515488821025394875951248205454237074733824995640948495341790857540616549525466450580497211176212481986878663298754200133590716638535460827048277499832864700910314025211570812063285159065356064544949883819502590982961727337968296631852654793794857304767726945178343362624668957827064384876304956538251802449776493617427889688540336578168611098195340446002768684778954912406413935014487131859657515218586955758820325109235009572133312592075375546216692608174010524802660074981048620426910389974394457089307634962722065657944378530646841219770569706286009829388987820474659987942200619412307516536985570456994289500341308848200304490539988705189423682258136232678279043121005539454249449447769974242295930479913070270574478417499861172422348442038257721084350536875213746349855806631963091110384595674854489357691563588812568487112473868643447080105082771152907188563613583974896282066052685358479633264809146751740750547358948486042111892460472360787065309864705895422420909151728014732759722838268759748446951282623153595584464635828692083325335544898723396247798283411967446463875455021343641652873862494801362665294862946401027275241141848122386455587066373747867174961560533328947547985885407970868446207974841238646911830561364742314488994818369369885255393350715347143659263850367375369563547059618463046288791713414405506725638870687574746074117966123475149310913040980899412079243686923661466138216929279592435200656746705801845929701196612589961521068679916596668389028002188798171077114709615435255998160579885190155979146248583031856430684523411989588919040542801526672847044107631183067273665142465259046948297271832379390522114891294357736459971073067318976020320856509192391585331623551283206103344659296788827393414035734854506527361925470903843626897677734184130570568388497914934531769111219830860197149288171676002853004475828300623425002997055127373045183639572226327252179527630983762719814892377443789676027147904573585046689003929586212917761855918273144340542754928121836098145831399892496192378922696095174352215705903799723326949536639151255017252399233668639450859395088255261857140693976672478164234423927873241169572278560495966871280490325856377437486679724178954322779695552743409421351642695796795094668940885875359927168750748134503906953310769129793303192441138775206161854536645969463508475017298111539555204617047639111459584205173653908368750266924875748343495148529771597400718048482460149968218539925110562386396182242908021435352430385739024033961041936750301763674650433599942769989320160541663181996780895872983692883171896402250357339745196421984912142934504850736125531798642431688586815109332003062689503822682384787502447337614976586369874237733833867009161226422573881244922034956970344487817835797893557955022592154377679285051381187760317824194200976709074574289569135911943619909450926237839517127214947415800901948865885493007983026510340195873644148663394645042449367493550433679992290385109679596999664724850421992931551036671590231296908755374155419821866963917806077583503128609852633433973461422143045185079116437369420675077468795673010210136289159215514062406324629370165972171010765910133605635621061561495855001266975387541099688925074117967102955827288288074127193976365726176936511113591086468646424799859913260717196974306856284029951395620330764033996997750063701552914271282083894768770701297661849668386618155697745161148747665364705258686155056544223688194797904011383806364376659274896173357911200800311634461739404078622729561727034676037239079682851001939875854162213187975503910512717313268710586221741004701515811389010931891249920556338419510341450540916310867417494577263061176347813848491023558617883966060996701164343043551562606717290032056911175793044115176009167582063535563424108930987887036840038102266438250695660792514076545504212407551126054389014379323336043836449029751871966507835242207616525318572512181362807376360877502618957508988216866772062306619271138204740608814673680837252404616051333163740801450965010646427334295357215137020335279016819975657996626532485698423786632957818594084325718658455702981968922090689373987029587349148027537810437016022016670615368562123962356079760375043940766691169372322296580849540280108544478837151165583344421645416857850185747945457233073763480565293491281467150430430517495767717371991734001663774972273177719450593122261974452905821955437491990948582871813521936263405352741214017731371846181195783207152191597062592332825472116576790326085221333953653362863904523459868770935096673106320592088425391075366499876700000517588564650169176121170684560228911261959491183134992654704989604366141052046369249536671821653400397826828247397707061730489201167616125624986315587342549549891224827472946431064760744640019445142153284362242337272118616627916999908310969433291138194883600852578829470090655109597091759889982615756053782521022524918904873797670251991084959299754412583094485147172174515084095963299844220111993130397680653648023864741370958968500368529474049145199686187822446493696070933617859407764028870519177017277123135338316019241795308341612070978788547461931876742522593261940278775629386056545287138011776179961512675831331542026003668026905716662926723428833205552516794079185415517632804867409154451642836366836768523191559112244360906754116819960599673485617482237004433600253536679920368674706239590442717284970756239830061633655475474278090640519989927273147736061111601214073421881008822256296159179976557549886846731000288855521465428690206317267629615269980797951180914688339607609281182862644853017071245247128717432766461750213847776480656480176186544410892756195900856284940431540599933976631033072169988306329477695968943010806455908876321309912169463924032557791554408198734018476291928484815466937368323195007501111772070564231167444452165631988118176697785920710315329155243137922812651305441278472856146490527827058197579362519098392362060466084973845922001293455329683037274138940601239055185124902107122860569888874035066058045340361932539468846024507930146668921352253744694317205952844583580172092695605378517493971099962877853386155695657220510978641390822832139250141080732928918590158747872095204036715607121146272808198789959839848729755442556615937781436123220939334701028784738974240921011941868747055665383736507212926025148630443903841594112497929223447319915584124074635763858765485507154216291263448782164381216705423680971928526815431707728802786355770419780274174711900735554018930865915255965693195459556511763271011402792421225380449873894287370081116712831242357153923860877008198631591441181123062456607915070454988240569368526394449770695531451317102419422031433904326370942236829533031924972394295512880594131960891536010798142228216183205232954440302628113723939397215656876074258742990128801446081963773534626459214615280585956236950500248670753823048951998657674468067905119242323354187942236453606525733906681566960476626135856560886127284359999611053340949573236579228120210465108991590818052388045530461789647292650996648860829757375641528366854696330054391476081765200791026831767572802389926901348791599491942981970886627644375801880872508264330521803650746724035353331079506076230885299766546467062922712079405693991153177519555137480108552398719324977154149705294874860971186626521619793393137712669526426283177102571579083111022904623389233493853469064877136948503705880128349560825709668654000626589556877717730457264725185718869481961189551798339561208203938940273158883052913505480297326657412262724899196623022960518594065746397881908473632826487645701747399584814310168075191010655233686152896499364358592750766376749045833822989028903873071147624116296666655850774020659637399229035815016048858169015399183159014312322054477723088016861017954096075783803781590053140510755400235727798052701665179826603979197887938198891963147522429559276232259448010703517135563436852405337498060399448437528081185193350667824688468363599552640903300358964547256936750075871398988515671496917687726609600012680485445027224076229675337981526075911787947844886093477533555975425993253024718405009950969296609960831225991197392046399661617031043084046857781061334456492056445425111421793810470240271652525513671131445659735143734448122083532529356076707603744964018851654736512501021740618744301658457949255280624923269896388928551011713341168598336706175917504728410197418001873345264973900365415246190616197101264443560936864746524542492381148177491362125408654959933046395572720301132294497870166464506954046653936156746695655706209876254746712819740327938149081638529543718076559102884497752657718298120142210992729898298771354968922399503514751150282408085436099118207568892688586603864144053728546262866084847659766131084348636763764738829649537050418326957787552118936108799187514890341357776451401190808496103574593502563525648815921371504822756824957368765484137055155698018990289496162851249072467096247024082389836141625190830688138618327263344565250474095617709222462626411826439609864864177331789129961820844273630254601078340880997621117314594949139638339439059649252760873642945853454179869061086364893257171753738137198237565069551618159245687995114382756948473404826603940328986439383119012851901706309208503403435311944413395534845787484765481863105982728347287214346772403019622661892187739451262509932739517914280946464159030459959518251113519432605421927864330017013244923338077494552754024342154794783222661767984163892363608939913395299568485209542712548932763481092656655370015337362275040816003972426792354499847388704852492657216603614976304572763680000760609347522749937417596716063715807458235778914071927713560328665241288072126034181196653878484526868389653369517647546111532042309710899591771494673824050909491678562981785514629406668636688899197303491895050885574060931605073066124231520753859626831459251204800585849354856841914128483358311661526615224804430767881799734423636359827310863066477677073617934204680798230081964558087431488436425513944928420468510982681692116881404333368750088592576983095629474032530739478528129538825047095211172923697395335928383442359388228843725438855583009659007555747275660186722682226622538174921361539877994487476180447745215265498593896197562993268930805146190225316198143463278610366037613866708127240611438449906827748276062317737716670898291707536034894306368908608953324745916864993912435481641053031549579260498146827383571371191474900618973251615194881246997055038220753924071360796727904801784216466871299688402682982336175193538405311682162923117574579215959458628194749086935859257109882046349427403819418742210320473768399834588997294916008333668386546676428148180629950350839968824588038202821185907689135728486129072073970253164110363808799513031129933969106426839608739180319786655568312146994172466359220654815520580966592156839594602733678162706880781426060057952817004084527240766134744053424888741310479301083913170834489282474736890615361211383737617297273323739053709765412335958752301907213427133026720388249614831912608188967240162307495906967328254864242796643197441171324696483760333213531893665401251790603204584710260008747988136614298046359440658068762095626958856490319412752971917896600329629656631496762833095787255097360483796278417542554824598227241948657599552891070021520764811968627649726696485509539412150520698504110610578267340384736356565943607420454109206515376046479480695074786619250935683214307486592749923016697044723371199914912902645566190128551579899768388780100734823895831637151425199658549958839613783208921035836886681071487163394565201313665281029343534156110529023695087894956024427450964439263790856441095608859568845996191232520233638467815100381418592469834495782930412742397682839520752087746647700365625190373853115055083541981327486674713635040215446889515837941765551245254802574656745205156063655733059688698849831017668482213104800427204802097361489229677430214332546742548909676962379264957311510715885827688114009995188971759898838203587879801554872723811537443324241003983073629866122925704606055148030658831575767002332744814182762562610959511698471920736168143042464820392265808421312548525134642022359323443094971098544874037410918019314398060220012220790231822887726452645199795730522801490570637910163834803115177593811498732708031952395268969990788078124107961932995867704236033522669704557057325091706316503894717945396762765620830590353973345722962580547414444847839623621753976987161751594341661142188045518374920507344893632889953781703538724738772560130478798610521723646709706434713947710554684243279902490483945720600761561407022806125956021547612789015371286328413415843408315670658289102204018850392678690733994101263642976756930862034371591333325903229030071779840704663909173680743927687733042742220483531331694806806132005780545420963425911142845290958784318631417239483574682909369064963529703278287783234664151049023250184675349352032955391982214211651367326142025223634897635721217100342183945195532614016534174806617767068702927916683488303708733249740541980336933578566187953698146161664708286908863543983594779435011484299785969436848713815649732945090244635965457119108418253242346605854655751391040130759485708193244141665524216549723478960190816692007858885384509859295261699848816862067672328959094902416301680148565302967564955394539247464195466802901215843720486278313733115849755043206574500143535877783045655290524358680691727820499118807809852383734129818037670847618018311992432617847872636850048165343321910491330924606044784426273576323735763039511774972150882704170876380092227178303358655177553920918995616795690005358672353955823448362262131846163674162478929571219587878043703329274015192492278776600591145950401766773555350879234647615498486126485067348986957196111537343350004733708847857771082480832351444917911541507786174297887181457247959091991084165162411421717230283174895807825683888743968199084187891806670261564552675185755545607516220874913781204958296387423452678247263355311138154406183682466153684629547795632733575716617957159887200314777640078362557906078833349732802544230465949492328740121460634070344985918750641942804978027801321699482460884407513437551568422383036578448792203874926918083807923628703971338615084880725683495313999179753809539334344581224004625962565220713225544519438649991655822195289230049614681030882633494378323062276564450686648707949890493507576070601909271153045962398147815801592656367646906616714365266156675589382313655981198280486832093260767424952592680399526715429465262898157434414862637895438415433852324041213921578881346322127719918690802654268059249274640850710815753563778349757746791159483845510257712712576066707270931811666339694989130690083254686169064410317770586866771383037084796330235759054554861231799663602212491401191003206019392186473838563238972426716108328698734297322886157589322368376183851129754790746927322522381479133684102019958996068198602261335728474534595062342176998598068046506362176428790934916713422971671734404603297347649152395349952630376719133412302189231761260127133946901866648752807626749706493976730209631351044026160134049929452510981939628263490665411143750116774558182868279547417788693606104721310352245615620970932825434359381519185237698102921277645870946005363264014868766841694160104617959044146240761787607633213277439802749599023093069064106774761736795664485265611678627687809164874431270984278912072710254388430133083102139928465475939181528822996970472488278451415279313615842074383112435004936436401697480257373975378887141005370683459344242202577774303808092700434529586262947299077941269897259781303677431773045554123834847540733868246199652534982823496768115648561580010672293693147340146244410015818020339455643620772375773280402324100840116178322154810740052599273817661755564779666012142080864063920342931958351286047902250692967817122492048077198107231381518336485627131999871532761894595558602661301937870854594098975640630010030877370093339326425496658188963831033585331621598959173067198102689017787628323507409558066931422462688902583175796341133036103432252481554899344561808499725875248751885794549899925266874956890469169549320377012171380795248587801617021135619870592128402399242588533174924426399654182572530818334394341882600338977989550822662144905057745755139349400905347223377907027244388433700803075923617653789534080948322857553581570944356092604605756193160376528817139614257116397373981263445193193892365883522012645416199934017585847389826411913279191501440523869089154007198362333420914733784993857913328261413043255381034033755368679592788841522805785546789225404030077529977182901107378353428886963843855670451992264820179729951776791877140751873904130966646820862133489506853020062238336797349177723822587139523363841482372596341940718376710424317125698379120643724109705668279067307845422310367089876115255689535012394480256984321195608233010049869445121422488786057174128152182829809202351658057278833614223892963337246539930799869650851856599602560340766761110147208630424194902035450700971186150109141176270273791043462148315610434109245253292056977276356186351955143492164354597054578725828799259790619050527835070421399920169143356838035191663434778537685347301481897235028425913468456300091328263280863214008065296057236719473642988491686558362395542188000572796407538879882195768372336648911173879736654012326060828174840508947157193769055740201587793413111597450047408263524036136722006952151627626416878397293462870339743432289813144722755310528818718956575398621367193494151198643685440918770267884503211225822690043281865005042105456659571111965399272243621147293918956046997550821424482708285914467464920286607209438507040663306404185994076582731036761856645026102295632664322762975538666614084062749532443170284746716209844374016711827397286559766198782450164046068840320962560868793701469711807631988441719008957451051431766664623136769784998230210572889803956821619869910050724082822314971258112353231475074703847677615880552518988649208679924177818442902006195232257234954969077769306239781038705659786335297284503039594684360430567390500474702913253731802237217237592529203792320908109958185264375509558361531379548195873359674031138554002744756556387577237804821642859385025189340466351720438041031203977465319844100228721710955468775091505516770763056969844850426968445833881795939814822307934297307898015055373637556817623020114032822829641667761156777516076085101685043520435860620007736869906124711502954335577828580123099299197105119957784472092314108909997587260798315215432608840731036538878815338071835448822092234347374365326872999615325752645867168780716526254692259725912279041689470013142115935684096307519031438272548102809562635634495119119006309258215239309888295850702158490936916760351306011956344815615790193049533325303896957742186478998526237100929885013546988105448025559036682933252104220704557896956702312591502343912050667132348717328796400165970134216493234725088205697868905756013624619819675581457541634246848771210856980316766207773938466579432791950568783070156745412130818651396174974789322578659716335218006377191146007882291691158482949019584057371532327755473599974763999404451959255327278561711475079123682190673549276752121671244466522812472480614802064351183640194627882835547281896793174533233548674600905676037895369838903471459132969844152239900263512138444201085637682571900653813154591927658272534157935783441282564157945231215873786874777866833297028785527499475472528418253225760100158075367175846690038901750844350434656941466674917885657698477319736258717803915710248310168097231403797278337819850123756211601844684238960682280636200016677150993877170735386663568948167082598141494532428368888437711791942427316687088984774984791113606692145681972714040534604121715040266552072559736534173171556794364750352749887586010121100779389942558779424216793390290467404181149509181689417023496330114004702411854459423051840842210822276361041394193925659023650594341910019914234820311443599401246588345656066768300305997849903663820064960725503669590905225165844927193753035357855947765211484524065078549632036699580131881059296468393949818583511109422777466384065185204685117016896505563737840326081806390987633079504198617313884826127118018782541571361738033414043852548652882601584403449518374739348525748266269154047769508130100786285998378868727997027856368287057102244040680693698101862952151761887873370553601124675708530388824741360242864822274944283233740785697605050273286678551273497892549842615415385727156804215285543923410344280031582621733880027169448508801714089801981468173341037527148460960190965510666182504406428646785603069168953493177006202586119251346964098228302243495578349063432952614520030248992673054421768990496845341082147022104095098983411554226795470395916174807046786569641777455502743265800994690962263901496098342393999931570381118620824376570402962334267265172247630046218037274700114254827817274606982872479432232844527952248152883594999213173651062986341367665590941630889392210746210894832074890308142032210511472263584299900391226932669841879033315489404264254930388084479284128401481163695744081716820785380358592791058531085196341456046820352549938542272558704038473302275997564291483660032339562443252895306451913381642191104356458566216632936176822529485585320803855554717276077169213895842929249138307212994153621473960683615362267985141805927401435200757309398778456773688110300095327052768447180227824911695245406945942612464680299592530050542884986130882949449388845568083657234567119654773798940454375783954708358389478018168297044840383372696471651002887303532295631568792725802963863362798135941334766288125064125883205461803067883187940953939244221624142835169997892009340495385118125091274300360385962240720405826650256368656781471567739092041263565706209621479788002901817788272996146393546533733022141351940965804257255431639663972479170587169508103332092054187105721461880254750671295141606336183675034726294911628831486426370829609820349114298980788786953509619092044850942961994497822007238547918203709093494170896353868341516674862985463297745096293411745597379888559635182716278570265287303138415723003411291348146232598680646880684750570947834582593830399064557425682471829669354871898428174310670534701819008884084329197712614406111634677433171518989262872725003816820082730912708114386725062841723396682318771424408592346546264828366848750016525014067742630176621314586731136294367227486266356307515435583047709016103465565066273127618346991847103948757606850020599033343013800549552478893223703238183066769904535655820253531773237497626006742112262266077682973278310300404243958312284704156446863847524552811263161873062110680924889602970425392016926394923352525967413651858410713993568361811886741726725530624241228210922386215760600075121082129506341661903904291075196632273431425394229451994070683063710690423552118035425322078538145445643380952812088584962427306545387119995680234794864393865079614860909480078398636316443640365049133109722141406509858071472563576649534754806588787510551532564135377848432006710648420690903589907332350356239736434724040293772218448111085819437725478790850998188149496023816028648064240747397528369965521922878489821285795681876669349159744434041278719526460186818857126855762800294560597343002150421201087412450845692433785956228574762539777308542302644862977241556968509479492792697298802375092920416767914470542299304183901051880338293387317880399106014713923771821976143490201984832514789906801882082038838290722718958630507039565447889237679918770792570264647711035395387526864241465567364033773109674706171960097226337852289889384607008153361878809559208790581294660093362940992178194109996603532176504471458093874195389781320281349740596052298200850496860884635595302830245520629885659193668450771251913934785219108307394212209830167566689702151254111526579778656969287484315275820256041811362446241410158991168003766524920643420881386464559367558591498438618708852901344914039360832108281400628171362902553920136920893548165213254321355937673680663414165996915486564258163693496239944644350283677621491372152117771030949784892521043732171889274144671653343830550505795715995248991686998042392400259067708588674825046294919098065004747718383189107219683470829912243082546840700010533760075797758007226397272202877292070402442152772813885406665026631291542625285481484428758527056351453156668422829691400108147193527597362288702841374214651111197833560789594921248262894122121462500694773474213233908868443614785540006471980559121295852387988403549788540205804948770367658367256903523057801578488991324321821322754268048691188110184548276630015214669606186682200640403212931900941685054556979133879232833876736299560512040897845971357742521291044375699380497749740592125199223754356309581425183181334405084781269251893837576648355797797625843157055428576741656996901851502384465584172196251811948965708080854971722422565006938104735911609928138882488709920590779173930224429107810704043976194838527805817791516057251269805990485231658581029110293547818156422631998100048006215473815547978400185363726721135178397683448944608954686343780895061968081312523762341128443786872082896727499305749775570839482994030083688394746461942757856664594539626222699900210291578236595855061331934785114363165487095719726885378945271130667395252333695603326271214011199611072066895960925158368164161828285874438108666517017053069264164556611135591675818258605983758143270381182098633541501044463362912886444069079562044354655840206574595025191220711632236550583016313974525120556703766306528369148806086171843618950706252206671291368123434268836536755588252852572368957164790149324927784975469257131578998956608278021681724774457447348784372664996445673867309321901922225361955500434351385415505657343466572462023082277747175488548185911238882565152274141181682378181073381362870840877895111879230574626261267321732498009968390230840284536160416336068596887871714331655183221612926154383492215246568552003612378099475436596634831936099509081058736385546080799313662305776896086516515021860535796528666477105968538538738482304610357330814326101955892409901123388001626127869261809602832663940550733432387636249232870604042237659685236770091534378003914787907413004300578694126239704093225480395463899893646542653678962749819686312595311418225936998508515007521422201780075653510266362324900463123775900015740181929445507643364368471402456324028484446998628506020698941813505158576320325430520248864003951288145397446800072123038531569338803576354287424573850061482474189188874810166582401816730672197335650783785910720569914135038851270335827661313563760091052351777867058334748306602314983787783407277147192873625980883800086591141309912380585959927637132908975705238031106174405538261902327915469382113111734364416523166584890103936796820554015307833191929181244561444098964144718438438443927986377846871585568604658055770234454422077316860617863895690376020258796961138506497279258889981521133111087574886537406962540191528480443576542992466967871712360570685426422259709233284757445278748935448432379950447181389884551878218582913369671367406365985978470010321094222319539340678186018191226525135999887912203522146251650470518322927494067846383993231933416333792944126847484577533227944860015115935771478806368545804621823285070511001129805610294122025440896761560153522753063396598523670843571029047706231444619244283059628990257839545827442826817700181838742747685753606380063937748348786037908068871556759292933116286732674627154325176772373275753337871083147923468485483691984845479791019920774155379393781572963340287112299427804810917694248599992538732951232626708984838147990087815672937482980751855300239629298969176790027955713282783996511069500638368063076617063938006476226700582770487005152877630329170033409922750262780158205501104217462270339827094817454667875850233462886533702830143677115255623623284217042850426935037910938779798745814192338292427544458997821770194819029410994404521863240122731830447360111312870310771188026440339782364138642810827746120174915037899649617034556791747441913020511741139911970112413678689478037798765257819384619518087475554112516222128666101809418755615798419032169508783319689998472359497585060229449110722654867893679674080802897435742226888544020710289320812344236749326228338486308915581261696022341910202587475430145824129748543259777545001719360576373347457160157634014008829598186188709523051320552265240872717440691988706988554573529382493446723394676281594622745718430304975968976750191351678042877283949763045907180592555282441223493282203720623042205016548860087471507227583930940981326618981393844820936729863852994002019236587074894418316272255225627439190390516066226388058523641972729790256526511033910701435041264248345635345536206017006343174795616740843735738658639207424205684991967426610457041427689666334243449955836913393821848078473028135370707830696438440273763430693030836167753544978931133068645544576782199425248419311141147321931870818179361330108863177478141832138409903231735401708188745675379633100859290170076701518114867006680426418137588138890588958449526766736300312268826673821499818856247259246447376630256239956442305428544503854631332663804273656718041608057037556312240519792506176172010844746692074170088778756149669124400169231782352854267593075670078399724131028396840758441775247212992771487395124784155019176573693658605235587633830016515428575866971153650561898203206070743890762411867632436824805004677131478801820821493610490375398470285117349841575304678618189382369542813984336171988158935774515380733882542006039072593536145446226948156009778920442224290831804933498964924638462010997419078152298643394590522175475981120154485016427476223097054629447336920109804609782649629347095727018860445597699865036038256325822901109515101210065875947717976464901782836690412912761942838814825294963294532682951283268540196915744446482707457059368138547542263719170074572989081536379946986111193920778232888190378551247456679633592461104833382593849746176846780171860352727841367506965619281667511338462148628799320177108991186938999376266457375975562699233135705027064337051167073576163996471070612680603218174131286990669676400979504897681013872291506969770828730068743659238811106101782265638032136673358397530168100343341225703802277455011063990305850239529080823090598757638304988124336257122522153192927904481912874107162501183987859371385122103658865578123911003154883788515074105950460378252379047038998392562141368507885205800109945879910585777893826612730617060919287592411349703562560036370209455208266301363224969662355211368908400146418488376515444481901077698168409165448867565028399304121210734639288929825935205118450992467594310542218893541919252193563505793932585606188894373968187710775163861125350537565440545166169309591550465253881648106896609287597008856755385835374766540472656498748088891206833174860235300798036843431459282391168661393066432821565806633359182043025398978144474675384453515790769990128675193104467599507537106745308027878680774300478656457144235128521265302974961815773320686252435352290868593979210365044145841351186373499641165674740671926764722759437919024569897812048073494994328088958578289291012129081038890148277806481926622226557724199698137301573022329384615117785185469395750845663453008451105379176508168799001825172775109860254876583680440139312302539404992500977093091574447761048930144907547165935214016316240988152278224997187553855296884898500896930253410400121484722572818402021569555304472635241489683738226402795176920051324246211590219881574432084723315382739346552704112379208818856042144839625574742902971380186556899817520413747338556329806427767576266790518656017949700826419227853469928825446789674128860278126430577309787989835459320682758478907921097496963302571592007002869408865505995415986203239749442627607421233466876312574631578321191668991999609522449468460907227761977639854115408059739576733743366612495357285643955234115816236249865147922575077762490177965674472587602102466381317862632924111204269060087841402398223684068278288605197067034442001758411762701100492266797497414529538334532796158331364224479760840193103285365912567214749656474773227259763807044130589752884417281148940472350110786420217832182204126749767025325434822684555835479486912193664922872674965534547100738430311698785819953964735114369414583859677979091665474684124688972062959460379536078148282597591460617378167618501447426773534238503892620842017083100261501866803071083864916684511644363061113884285123881728614373163318106057693539432506207431391930544375847675063081698778376370966367099346238689951452678158100691249425834796057059453190676872102640007539630595763518747959493731821045798822495716282255144054420129788333801266701734835019441066138204570269611715649315391172083078419642171327057422079666371294035985103058632201295317556427508308420284985580021981280261989845519146252025457003908039774115698560054447692604725254132201793727342769402786293515255133361013388217854771903538757362745665543764976892362227299970393248861005275311362910589141801014859964620111538241162264851916893243596617519301795375191889554995533796418316335627360955989081143883179762063182362518089441197389789846669031614565443803871821852265309583045880999483913290176956507892695920549160262935017768779574863470774051487950904470839995863088253634784692609852246597123714797177619750263255577183538315242555080760431304741415985408705939636927453943114884126749299054400986465826354034330715414341286315565722408084298909794965882885042969090616129053648267012666686631986936187688298722458496662181696230917904865946087847155066335913241012027826481034225060943891218944996980224627023601426215931630461080063786394002035247363821106158677713808189220755148265076651360257928652778902575179910209677478837711244331302053729875030816341923427732411056395718807863547305666678629061526033511589634315670050699440065352175584434487953583141057856147773523378936130191612021272676479132563058365861783045859247333153992810303647880324065941543484276695970382787162940720430523353069270935528968774960141720820871723374190693796196888684125203687989386206429577623435234183933794393301547952631870578385987960848668635329591586739139037922507102106338623907773121912295319034428547490539267015835484241263507448911851133869087816624250791829961045725787374158755259388487097258017857152125618112085779764994374173457185358297473601586632536400412204548375643645898568193065471467592906298103510855782975532755330782210028177744738156993102203385799935246354907449032291410541358758993723491176116195267002981258470524966811574682902050289238283529959643900249674406219021483881184103434320377832012048263106309757499542229534665824622922730590126871791597303455166240893133695444341822407755872874346500297426215033478870100446255406131542793212730869276484980177956640803497157871742427559318142093978038390537865269904813636658589831557416975574125990892879720295191011873861866261835754658532242761539157491676479136244745933347277703556454947072083494376671996697697604226710006720302140182100525654263598697831427861734548834208353493178990493430439901977216897017480404594770839055904418283586232096202107946133653966743427526673743432567639728102845095718971732708203598732586801356337340325247615694911662154711146103279730020553420711163650460578263836053617223770372068194623651552394748635368327927603034197089946504776874831607912473894725873612518464809970456593013739969939557986965995851405745149062237743397335209037602360635336365416509494648962597951313176307606648962452968126558225195119568983408093970580464377391380137542829552314532217895002459372573391128354703503795703877347154679122457134124414366870770401058352447016729513047449432259832508654412419431971613164618738120420324213016745027970602708747960406557065974312348749874152816794333017566552007803888754951216482268025957153403143155714771223404160304516943654974561073233450883952047357933891252785195531600261322131644695760545371781491168809658410794850348350008302407116652998633761789185729816234758843245686731936486990294253144465030545477875166668555650106386076293874207144135674644693493411341341008534595752529363458576303830876232782961584163640112510142018705856956216749250543346256391721184403364406999537740207822706543104647705917725525336619915540064534147480585924545471162305231083390409115782562157058706344014618619689307675506385692980007464334360728461969014710719649440140481298757379758709803030221201902886137735006995627671721698657620593707534820690133590662667785421265783829781031510866350161331894899788718409831699213258849188748195596367161735266638113607877444423297389345587481492887272455369745033274174224794918410516389395621061689575233566264175562346774938483303829821510567128839116845879868758280603040818719031260988026851101753417669068739721516295269117087470822077569420605615340966784235124496432546576963512217297207778842220974124258286297005581542396241074487065033223924856332796923505317739744808367180653590913220004749587171263446613536648820342213991243209509794403640411359817087356485980307470447926247219220536288215938072586583856579162135904710953935801663899876408478211417207633776973696101367708215536584672524111055070085192130463448104620561543391633496811715773884197108608824798995135466245982741863779125978207134194975228809156408995336314111643709229214132174679661624064833765564486171539933410262285819771067302184533412575445888459871824398973626632188995073394854803783941660970236904443879753436267977243532083138653265419127291126756298916042550099753120849613932432163612700683184032548003083554003386114634832085503847038042792144348708526812717425660202177138255143957874034389137806560434088776056268057522167969383021957881503912073365902578071157430433785132482490559225508427451511399941994950025384693376372857495314725690202150020613093032285814877665193708823480457131088715034669184826660614486820344701863001556156370007137312319744023831389847298129646092514290154111732789456683447247461247330146284494171276772609884912310893405221231066335205627176194215977402167550545105988309054952955024988160533615201007560858542435424472360691688313849856184054827473371038891970179059599811733430796306080009743076776045650425746856812080194303701956524340915119942562836625579615500807654386662945532870755371250003572081464268938992302131817306818027425489340482864795420158580799952765383770658331109767679338657779140598177678892273855321310753810413915562416374324859668233240406207016440369037721629079160590731162568900803685492125591451696214790992565549502989387436534874453126518481239093991891887107434068934249220631236057950740686114163193503666348703143656720831398705768419965005512592828974801884014879499571171445804240255280867196544912647255547915180004734085616176485598979503546583881174387948294285332195075435201775017914394094553335882926541102824133282865507970952432579253320607680809618339542809904855686011541687683662090653340046902237571407186449644791332897938984558860341465444873730444239001606742729531276403983885982484994892295247708292125981575763751370058022279415041521087240319655696294844415956276824380789863380628103102694726003508679356388104505667736338093326699425553968512099134524761843533432309002277086712108450413994217051008609422663985285205600426551375792946754401214378247388120151013962891538452738173147755365494499664816499387854167961231951157120046636326737710317474933461465100618925807224314290985308326624487222051194115724851557461081432754729266685929799505840112790071563949154096203618502292285990807964729246030181124334328085739458890729632729431986108938234462172368982773809945568032161638359326399465799521775731013525468159073349286168915208305703342195191949334790583069695076486253979181016827900479009531419694978371883887996077552928318651860958974993383678886620218339994553747503169868449963182539008941395964936876628881527222953418568268819881700139377415919379478612089267617942404609013191808439913117119434675151987412423099239855669482956641144867731235833676695056687618314501100779081160630643981532007143519109540105699174608330691782728917815407479012464002898652644454269123594462486538232368512666041332235333313903962956523103030842698347900461909068931889039579834709921302810647827822198160254500084221995794282219324470506816370000475910830699710709300877590995662524776736259090608971746589509210616703513500719739123305703143773087506854770904861004013929763582896004252274000314120913371408424802363622713493671218635041103650083680699091902601109229883194620480060124601058304628645303867956156942185743212956501417867710025315853335513899980072511877143172160561960924522898788058943783319353927525375137976585212297166317755999556355328748111193636981247814281458024244114346539891288642785873482845521243180616300812901660200626234718321428336149498879574865610799104927656464524957719082396639486287546887324999726979317625715046512152575269515711175915363364855803136552707429433387461111952336406431533937312339547330131186445035806763391078433118032654158014357797868310924427991394196129324568127368506635045782902672952119325307756742439291457102877019766341007296053759119368484898782021857915493416787272867276295911629143340137711084953727002926296498547397611217348969821495111007601905416375920737448824325218231729798175967084503726410004787918861235510598544810913080124655678486226122440590081654614975947120336221761380978487830146363784500846866440394883975325067943144837258062687290806753889358768374034880163536274478959195301119152210398315677802516933400596321091147993095183316650609143111489651385478480087027374111921092314429380183732263512075672633542248618504630840043635168415361938912717419998761710507739720950582647918154700045130561857370743330378089518652599720373383891490333559646408177545005344874717030261190091755819578445879906777839813522286192885407419857107934352579413313534720824612893673034092707644467188560133822917484427891944801146016675763738638632497333718234435674891732597499965994341200214649421944295144191221707161731457561140702558360002266740788271379089756370807606020898776832994394178460228965945917199840548474496062075574583402222380860413486088772808039507950447121525308306683276909613831005810685620059313456709514456336507274182434104592954196719608196573503599416299954914484810949113841568705358686671379881725099565975483590096541254510290589224575107730103816616621855096551103020818925964671329165278517416520133095288067275270004655013781731625202030262522003608624339402949472817769820088294825194312636511418551463026316546153940544099156826049846777773013445658118187778753837041584013462342866104052636651853045271362253689984569773865480203535061770015775798203309470769297730292364594899410467180522902766223398741599655877163800320273115864860236161806627413789958170477255399915059264562806686587643197947166202241199666136284648445293380541792417242051470819850209776462203983743331588834513474483753476827567630194223927820915828279518868212289660544221829980759164295205923947533673991655350661817297771913614429625845150421725173601874644741647038829280557256530899066846340838401177684410210784420859963176445856316009275074040349557856712508873288328508316654207188291419272158865046392468165289543176153194378442581918149166804594676686372505179727186028921099657823117771940712787821198302567542587794762680661703764503450542830682456317180149822577893086007413497538443920379852677931891949708983213109031606255650330930882167665431685184933329879220787565023492348991257848722243858310247552047862198597076647136803563234285281262653663923346248184699385845887894863716067802504946800511553480542826375785144348195268821682293216086511352779869158268587201316644922940785364845529727601865261480234052947961218802463508911329110290005259935677310942034787230698706967764579862759805895593998175490649713849935390222931309560107252334413894185125652847295758364645539502067840515179829613827156758096126632833113784580326311955636957305772540937632344666542894275291572247083147389318239319354310401699316239404838665862258070865037967207051444356636667132661933635827579746473646968871314280991136969519750672536315036832474210094145179168861638715600427912265571956351947499960318044402011995936649363292482244823658462739699521221041297826388334250571040141631613990017386543418697962391581392878587117191801951931541905968021925070438997633012449548400760666743634528056815269318114138047819559486272085424345120375679043589316034261465492444257363687131132918292994665528609514561947772072219708954943458777899586183605789183965133810251926885214617830842375202802251478302358743980924627115447855298375696552214576212967451835659763637608681563860500345513531998073081009338127973983260678916115791970957483905168357851372518740756105999151877715780517368275095967729235274555438394279549003903071912510072281899673166059737805102933336016075761860546561645578220773005027547771259874042939416790325519192570729456697765925405303504230333653279639012849545789029911764789342476494054539792096821487354743392395373057844548598556167390363597526308915779335026303916388974403931314301659724663646966468924558029628624698120933516130474046981166498118459969440266162777593530903295917869671790640649058483966091685395165172035080506861458967037648693805168399395115109893144503002051903301622555081739987390648263946397684289206791506926576073209419824145350473623825338516080433628279113553457954074953576709735157479093043275420465168481732930594857613506144897831765987200091391747111236284247955959319316939531684129278394006225816892529830377117377323648207151537407088235629637880604524373271693918871935772171986648479796042147960883796700029844897613886036275333270688773363751580536261458203623659414923474561147852287446214451076207448934692270011432107066006710631618236454673202584976883622806767288140429627665260049327642617066831721122908544287040514517775389893748175751275215280859235198642476580939632193377423971641581940932657677834029458021146536861668743481902859717265829234257947752282913251525658321048717170504577440006251447148755462596175405694051728995818989236234683671949229057913597107529995978579402188821419867963700071964288525382403463352431791976623118208154073274586123099510773998021697655795041638136007998567929342156471948224308561320477652107830519093560848548697680905573747050177505675067361511212379200016164422332482243220317968413766807091458391959630258124278710719789776392384022782567391732625684438679813028252446816594554711897912321952480495285012242670871899946142758841633557389814377511600922276744592990902250359512443673758331668225661843593799097940947818991966435240815055663366792995424980770277392232427890032917473558164131378225005801024704012709330517591894057068204166639172381714987124504968776768692065457993231111348439487302914495763464503360608924197363646790214758288266114823687074028406136022642087680406950529878437501762413907934083909900464200027005758444572347816120061898628331537119388549863068202368595838631090976261681143360000800057670775114845272681996446848177133224949247615130023438139540338926103473953319982357829991480579066002807166083220827340220465148494043338809773443184054913071338378826497985003093538204629499099447880820133124981025996485669218920237998563238732062523612902738211176469491760377633185625014460497901403818184033065660778382372976457724573613047828910954137378494732000097092393088396150936699839023172646172964653771772035438761688380659060595089658361337344800015316303637003177018448662289968758049079204134521856878386936306385600261988253353170922117544470185083105940687915356320296567582062109410144837838319213807068601058480839354374275375699124462300436844570078902538285015102773814932663895333207336571515649884935940103734374669014833898275009472752089066445655109982458628319703914042542563399147853485106578374082270895864286364521604776886311742564852617104263275077792433769637366351905876398847214511491160076934551933125861524891302940242374129303765129560381506995612115842822704731285671785166191205476875816633304547703413362544690434841286515320148552709307241775080049545933784471797185923302527749627735403369186345534338474028069295509851140899299223337738934591353973202021561936763333789900310126729191560802624882624487402984131312058784580342782515347289624831358082649577174652091571636559893043407738887017451236272799782181282700444288381227936224832924315712501970628018712517754560668870267683793511614196602176242284426060689627304478327211780973364240419555448293367579394898575698511849608969411624704541451494857498590404933514517724974427369972451727405970556447141345628456887567712336062609856114417837394968404042410757328111842805456277429644521675852432289539070684214750969454927368505442658717512894690268991833589868469810291869849309151137402035962383171981853399635294687335648511214745308053903144289584601490399713577539910282007580379350131274783501549703354345966274801377819882760455327369536741027331584586204639736499600822304399805888121130436905065770772906631488616835575673446507411488822359863486988203220044944252872584672189822939479728728313771706917091280917203668417072435691538987755335595774599471609825061108644452533605228568675552956877448322002848810229843726908544910683999285711562931200347103285780960069977262293290363855560076960642477141207929638112383508709697973371199253373587669554593512411213876505520037189854713058182380469596103601669251976170015296716198670801653985701049021157216065370079458298336780400160444315854165647560228462593651019173258919901723252053932007603340353577593324585348968820703211527951168791293862712712787242458088205464862993944425806829182721909662229907820283210697920722738950448935297653101413528497277698072645169121187390783833330738396202918124124135620737903297834304931107705108001610402007693986693837523460953122234959523915414901099034752109713621702007156524344404372497755994437098376094153639259080474237158271052938933507187291639204372062309896689280129011598808112951699739916045135838311295236095883961110934463756414049211861307263177719699243780590292285063322225239714617649046649156577912079665323239639910329494157954992942227232427642763371166272937480754190720609691650273702214593350072285997951353065058618417949744261438656818288865724223401453698344727615189764653367094193842619288978133014412053257462875420509523776448997033296334020305411794401615642276296008002773756507550348603658627423224384388205652661771430244417187700441296819060017675457551045494520210071142035896671444737787474408262065169184653717350138797690414302847254145155960416050771436010547462750893726184360856582630951798823189241411272405120472772009665414072952900239606361083153668391554937119038702945494354303699336513715859128950268493097794187372974021064090228972866531182604088264542524313129869072886943237636624247635594626262289470370107398460469681059235221810636620819151544751086096836726266337015336024886355912263115399646482077152957488131765265891244102667466435881239893062323110654420764206263300359043544928137072356458774890929912135232101103793373317187793436829013350049892850250125372029354166102880180824777032023454711864072876755974790880101851792719114159946108972801771204711748362463217496777651204009346939120361580784231560133775495792282399538000559156956238249680070166725304345461481321003363373612936811090646299482922771040729147382290536095300075923632391878476170217943950836454540920086173933203655667221424308733330704182372414434224294920799169712552837985056192226775697632597562402285875231232009481485632657616235845924389218883835715885416259989687858795127390196148130907037987850904765868867141014553965720385664279395093121536235257427249581951656967892208053238474198346423163097175034894634223535160916904953163386717004661967036552619311510087156349753041180705106312073369425895916222894481341837960400203858163864996609895039600253300328466815003900191957933433268075177851000669616555248467434051281679236955916155039759930568174268531423822649841613323859545273263122338674463197867223093930974195988919253648472875350792305460822729304125884071622506128750695039013680877258286350143356887871153593583664078064114650777696297098486880703476452409847980064318498796221809107812749164650943821690971040802605711358715927331178448554591699403835014754603480723299481801819573005396235994401814786785393917589235118463380658245887552588765346966639746562721806365615036260872848778842947812717181349798336634010857792053165752112300004951411663266285433431551966215869918665539102904508116849109351534545208056806079170917322470065103788147873236298842146025632616260201004062980795060042649561474098421421328931558524793877298646987188459414190463043248795462132851514983856623648009426157860246179919354904770612993461708621114389343559037270160914745202095646863599109026594675978282664798617239404693091226784056923731313622145658363088851079946768264756561195288961026666225506355480965850567266594644271879374991847627769996263030727493356419623796863945345967257590860743123266299496180744075272424879211298419618636998586714899121947209345945307978867165428161476299739822041455212360297035485874150888757869447927639716083364700182140053563857425628464834695096906938744489450958199556275742988958317638033231681045842339929689306337251231980599886191876981879728043115760238234055302346899015695699977835847038515825863490699412679196964548930141766654625550489753089727280792438879179056345152480318515472846150893079669635403843896299045717187584938983377800779473223092936867577558628001159437249537128667270860859677526366052939452052324283239109698798459089089320671690995473908775063260048110862518337884628911828374509445710735109499788307623107790292851798627974640042943826619960322453003846077546964219633684551847567663669226167995264210765321796715464573679768026652001531085707135485277055788781647691277285864220051757631889292307126024125911333585071241121922925449085039097976485523817404049657136516627352735946381499232922759486716013489361708135565959740765679293844948846786058752620793581535302129978250350522278252159413841267968211046808569675068639657193076394522938676320779050021010809839300502499342528672128856072828261336146574210028400186682618545830526891111614264449064313001246494785565998851208416759418417340496787739620001587272226786406775369770618429212428814741286511133861724130450367320851902097787476253100770621308888407652461204336648827077954577953518727536298062351973796444614437833143723753319825810152423638869506991939000507989098809769414128773906007802452391750521065929097595374972465046492324799082992080713507076971157815514089265150248718133597315944983835918549950309080590130399552443606036378229214949274239095127978797614212269165268144211946483128428866229041346473828736763122049291746662926172110517028846741642530622311069669548250013702489959832466197972174193481524250534193191088356509641814594675223124681059231428915355750028891861178699054780828317409132187530492685225019878374135667543322428913007027801282069147625342715803625917223067479096566583752517079376374686512271102016391859307113237956122543711774068470376168414388461999047839255460205827862797816747754400115661004889624823399765882021315245638364308603675506887350809945349797542708839551194933200417643454062744861307174721813529187014067726458275382260144798265679319010803662978352639210351993102470033088798489155297753565784411644614049715269509267392392207486214624769009214382608011520678869496059589777657466063744708182303198920975976527533124623764780581125363386436623101339747063315328524202750082865786688221616539277777466389602721240006642871328053240667157744799966699357253612235170811515901715706042965817144827004182373047174028555485582694633929111557964138136615330664558908216185765072463146952001063814743319669472234878728926458862234392404751732856100044791264482787073678854847674027633451025439950956890889558660698965262241258005722079997250607041197881118769582016188691007298462334028157318647975082058986786529593836018661035477084788109070555160614900398728920904662396699205043210345172799038814707355189344152075501541358842348982604833929518394844127154452493360265187059694689481251481227347822022921311402859528681790936654582094277481886415025846961460970556470933296968420556619272430007052449649968863164234064186986836487770865397079214077026767275300146972439207180255887550285704959744079292741034415426844545695647049118526447773855913494914183193335566927680089011968521697174974905895034208024564810009184048392347685164493116526808571429053900542926701877099213649039120481561125677342055686515050499427315132439919059684191078361544474300326110409685571420116866861574357232466864592839918452397412521778201948954819933251101073210856872914973357433173450121896449276256595943749400209271464242307668332760911351593930686959026751928639273544591717186430877701625482668048868788683450310369573523096873829407189746857930798619071843068621147564197987617445781010688857084869206147510940060818760121040626541924718753993748753961056608642658487427388730885173573107886861675600073858304982621749293884756460769915532663072769575036862643631128150294590227409394263682015978825612185526804250392540359337468432486169452063814919408739996917517538106706960198466055916865994139780261122119085913548317992276389961360379835203537767229368470854828036808869539423600518714315787656761290632031066265533206988692889029579005861625472827524150707172452913880328228153191496211592518328065185383028474712260908939864044080986275075998060605298918683411792923273587434896538159599673636904044086691827489927835181311935795852946326657087444095049348221990698828472445499606548029908793622660812932070731787300199772829261116835418355415091698760811007610000888086240555418287458234161533552308028059288195841360732822916788714791706450316544835115277322662051013635656886929652334140933637109075638387892215976732241945861335176785764465278886409053205125138259562330074584737584448590514931826426716482380143252945065986858470741594911213617140041708090209582393589974021857490908818645141575816439468489792819860141143174638603747094184277804970733143693986192632215294987710979848186751614459161515761382698262291487710564100916515777886887571011837803499957914566819848096940295613676469892054185728075598669525586633151815728414454942304376219045591038710537625761182746946952739923849401857396623365555220747137111400092615893008420716347383551234975628641178073985547956586871177481307755543035773874803704242204330837390974494565706001089413065502723182932222999886500288458423667517390081796043810613849616483582082278915783842665809426118279749984752325015463368077303747974925096555150901382306803928847682949589647199270672619002187320420178017730674512523087607946464709499976495515570885501180517012106585751050565302535174865804454421928419939811131976125096608403543932551751919670956559295817929800055453525874672031648549619997452534730863264466092361056329466409503521059844023579289722949534452733788956938568614290010827657478643598554989168732522683692522683325130865346256109704119968384515881313517962768843189663217645462636270916673727233694244065401966361430581463675990269933348449229302553108430322272790490187263085335458528981918776706536452631829685418561946007364032890813077351938596846542224565701333676792105907552732186088317771613551293599344034175769645269492984346138427632857015783268165773528321988990717243994726706541394888330728408993775953808819335695027527653179521748942119416688011122611052823163517487905924493409320220060290604806504398873299903611136759170210522355831425778307436165841468467066814975666140416809440216332645674411446109129392187544637083899923764000527415349868992883899740674560565796026037125220248091961558208692988614057122377750207132153583636924668715324026148550935169337871711374971955498584948864291172177814647354108668612752401297259026736695687189781319360798439093643670000518214834823742592007309828872259303759156383199500373997797656327741940488655551987162149598857990700305618651462384817819986063385262930065363103671670212617127944309664700870789787261065429014700150455371344670349296246719599636843530590310909651934361748809531669596777632683632756952152596358847004864631795534734730720842907810830323108528662955824895394915810285672040391739549978218609429405610801637422642658674031322546573772923788606897720804634361427501420300538265278750511557157190872756732464243383171378448257731636538209076547293721170825670041051524476896626785364281286412472449127822013963380159818225781232994434453535711325076201361947854673536724024192226889081137337235212710284375741547211502639434432235587008724386926826956098631590356500219337414618713783699911206716490757386354088948175217647044311798971958342080049504346902518381991764207262727091337918962916370046472644662644524385299492759414225365723972300906448347349523747576124495059063888221066828537202725577472915731632058568139924562999475459230568619678432765696358269116335195078292219913645297532448714244639084740322852977964028557405548627820034016836443807413149958313603799356327867151465331304388743117121724710091501138740009126816585139362087504071321019234693691806147287759991623366218645071518156126355611850773121578508053373328081353048383263205364927271892957000268808122699472061854536268269468588408793426596168817511417443432836164405440322098897557789376830729233997475396171378250983337324408270436610908286580551331172442677932248665189745357939074966513474487430656493099640567512773160528191405590441170266428140020192789426937881301118200239418949562089258999411107196954967003571124385132714382258549636531838665092310611359620552653766793662406224090053455261055162742939584316176529171056278309539729888467514865961669574448688843224737022342856425265325332700256392771497932381657668757637507098687934339277085349703364382203850947493925679349540681899981272739681491936577542416538196526844649534818257170553099768035001577340122001934322185004080189832582841763155364262461816074259317634312815203043567268244975950044690896719269009587551160458129559100722265332016883072220701513839440146712303914392308554472597691614865758287798233159370266845568598074575560817684547444373214383469781775284741356340723169263471403593310540473640311985044356664085150598287079715401509390919966785764711579875935906752975399777431576936968275192201996542569868697834524022143860526467971236775836455079183810018738636621225599244420969432045820497775378899907819846885068480869358740913843943089105278163287523997632823816630310103770303946223969639201857708099251358966794009181453167627739184150490102886354637254776070876983286907371083043478557788957547500660507352803454054292515664282419220313565598277857238774702183342733216978577838941859108315344929260660402356735558253287661278820041286631428552958908217379493814940531612178092910815388871521933518592214511574129145458247637710129781887670309427934626980837151268283227179781032177538208473097718629000420423172899712859798454567864742324309219805016690823674131273367675502762648234811393601363512457246752016372728492291558778554976988803374115014653118306924372793209293485024963727020194616906814400680842091334375909342991521035731376557914818089640327629357443853144097245184655023625540692671548554801784614454776668520593193902437102491523646765907513858867105083548925838775838049813440685680563679576781392909954047135666599825208352697536915453280033014628384003697707830553250255616059914943374904378257659900182173676959587043893444897881525739502114761353423896645215275154165044284996844097956576228936232064602037632226682351422822663666033205522636678910454809390714631125963182587572302456993219185142297209806088765303756464331398429862948539623461568936879003711258668111700416674156886082780259275200198661475718749995721523925512862785851084306165977153395283028092861406179262252691688366170925410035859176267412497795678937003971014904613361817330967352618883715934581997223506192059075799906844163201668876055128726564451049001292642536734409098970696776465547416329106914679306136464946038475256372722948049248944904897168429376584134323514981939969551185430719064759104944962109237900815778092747530709269189583472269685157375533235644079397232794169712570053788170616236421319102883011320942999581639109850743430910524318626055175981984039313173814126979390158457075583296374489506959925412858141580350918525245846171502126825726889995857646586994419812749753624861658000400643674203501721251412072058212629841167586901579601844696889924157895928045998413941040487998447301776816078874335629560672999801678943215685236955657750652036745776700647122473162992739311766458389364124123980088540687975709042870041550256798861555628627263277407095826986782805258073740530901058569445556263866415471272084541891788517089580946746975025803948478586993798219261831267993472069268423557110370445057188495939946181015957044069534188671370762032641954953558151025004476706927424158076827663036302858532942563606836334808458549883752026057384894606564657600024591553363735607117082977135114592158473586170071257447061377446695870673163489073686833808428485910226632196489982852431764315336028720733066742017290962028405481829435567458536662228391305024363462333529937298103217286902243968838127229338208199465089003623696616578210553447114800668726739135169832547641484858064378724371710476860960159791146546153713719486194957559791538157958676559098993834766586722103142134267625143105118830209632604548499325810399610151166219487533144019266278692454488772393712316546847166202540559231438074726025004610076134534420364499058685169757191597116579719098131746894823518657445123648854811847424181220185982090359599443724788883673558607930478014291300129390082939790587839340340329315211414840993448792681237558840345455256226943830043798992281803517486035919676584722735115120705026299153624345125053939444435960135667186378911773491990801521703761537084972098541041218580278100918662754608651709920642587558888536560293237142828653618817106467409621026415553749055131001067462405918861959697795088016508416836630558130412006090955790241114534020158043440398895654363140060642170273647765161842253567460634858713205182857408280238182178154088503842627422171660565128620441038232565888057526868544658946000313156169486245855323264505262079546985946906087145654073204212402950747883786185608744205578682483864603339419526015860487330307965590173303264758332189432939764030791531010606425602327769427410791518679952447600598146903573321693302455324108875375478997014461818585371330210631818265973742138626574493687747436728027913946592846706203601435766096238684245150834890761669597221690702511287406426899204728576981869153566007468084269339059886541155370711924701053213990440449969867834251464333849604458311383500238797018383458833772023271295116768609086805729697829407415915713631311301756556932052038749989641223300697883236986734390196881352833471192402670785386824306749262528626260842770497279067199859630540689473760718566838373274050970476575107406527655762511047255512613699889264776699997894992105428252575741560577140382175887044004367052802698294972318943517450160678020548226243329779065856761658680014832423051300843742654949541316602183364792108168404530107420168881851049862112720241674523039494489634774500612647650672221624438839113610132143094760834218761238170063861270594392943512780322651260355489747080169218916372802766017775724416802829985874841170344900017387948365519226666944863521385795497786055738051921316538624156129150014070084441648743076036846039302909856535188474883789453812454284217256941720375819913929639119554777595564013135821801949619121151925570975795566735610544433066309201327788270629125254450508145759138324767988900375171764671642723560050889407530421039619364525755500942768688840320494069297706599047931711560984175928543609752272161541522522595378675140897572090549775438596792675266023648689450958122319448920389165366803008852761020877505233466079189224873708708363349964856660852335031110666893352476211748805082808750823187070139066541112679213833524679790071630811039939567636610537353651618497020165876074885142921316061447300073587135741688968622130805892429414204797987641603187591098973575317113784142612137715308398822084972615070133566263877278290259472707101070845025768026227787265808093802983824994187094647907960792637247311014094144632411069528662399776289508598528462626482322494115990579056193234795589465887446113114673389379764015187249655712534765686240184066098000932521000028854530235962778656682625271809347082215209047779886818041939291427621727690478601898235003316114262323473387240092622122323892990697489630446908493956470521992391134397342152016268829744181514728513359644186412450651578529291434205477188749718571841645040802674199802481721813617880188215373002707635290191425435233026414367942516526463947939449602271350238350554827178588113493951413988776752588205137893301828702229838822280310145430704039874403261210413719712710009508408238826930743483298215344206900840817377576548970982783194041747384003414462779646318509635374552684505886571490697422170416124282298792132636663468352847101972163527677519953731121901298260045053298380933693095502270631696212914547756162314062108708217216099112818332734325429774650997748815097698475534540035129304863919513049219476774760523973828514757300485529114124619494297861771641130543864179820885051081731114643981577670304470047841536706759971130895175673860605743401257099162969367249043165571522484887869422107783355401867062287336199323019900828143335006925840399674147683889298868823059161105161034862177362195694813834783375231542152654725033256558674037348298221792037038465093049321950901359905641161410589728099191416458775258732913361402998812020442549864185421508327208767378629527990661976368746492524973967399330717095114988886229490286620085492717763315532657701579341674699368667345356616322246267044071262723048311589748790760098099115344526121729754867510187839141796671795013174823018576372290011736695751024560888152745208407249481314344849873514384250143521168089940907249228006936329662515485947425191848175991608111515656921018861138560134329359938219768136008875148551555785965665310965674305088532178126312797944171527390247390794504722268120132610233618539205029993811383193422722551267705109215464079445239405798542115603927739140878359526251485959118697379923561126349716179756683777513128817599783994116685744128986652570372357416044220441567051838098308131223671826115915336001989479303058509371233986401423486588863183299545733783703793248621864323416228127667262453542760904421021891408954681231362124963454748109282364196366127832582918904198683714766451394481324400911682756451831105589596770622128049648653988690392291198073701877313670874457425356496733068805964951441845593914175699551391610636806548862183845596234181712344572628127542869601681193687876495959454238932213427286934816678042746237670165328808581637482026245943899453711786992650748784418332018066162268358964858473646611317919053056571797177622947943958046934449588208939013606098173520080360437083380098717170453633389515151056759152518964131941360641626792470836169278216047570763108584094022979277793982016876237260060058178154635141108046447408702353792656799112675111308368060074758101368648220072227803452656898016067912892559585261554449791100459968718455549662275037596074031238957081829125923820573848256932222119666664475454939809130050096758620596069923297427570616344925754633116518988448449533917120204026950989836416734541232270240102448799873729483376737087453822217868365926605013876139785506158322460504967176277103803160100274089203342064874737299040248155877877197014215857619744439885513004246995510633648286669252954106768974116552696308284068326689782162223072147006350874416547264784356880204897379407719323992650998988285396484056436657449302472592705746381977288967747934389918793228080812627478162625389459583923062714356611490433001581802274836502506577745215967991956199749831704198764480046830406244587051532338292705121966203532215074610349859800460213965466075284696086443376549786024724579798716369186820293663544920900126462460301200489781727819665651019000487025252438358217048538290520842051455145019073237274942426978129646292698143107361661853477077057410331393164048468697761054991439300674382843118662999350682614483717732844112123870968256182825588429902592835219626887591471938669444998918201455582653065050841867406618641395545581698271359525004172900735278285442701780356303288283554390071837741462799871944982866738816351064351531756046254956437970963711356929125805898070446128452172277839744948421434438900134974055551320991348295255274797221022843125428464795964386781281073721495289269986824606063533662341630916169367002682540308383391960574797828423668860890136308893296710972647316803022522642975071055856531424059321783394529829734121880876724968523977340495152890487418596529641823981712058919857243900506508803902305034546790968082023865764864739070132404125412026490395782384046444211725209520879639278238105706950452016751935988324781218930637217725768551227076871735326344651943291613733423841337252387211638188027202954277326491465622477941931629219937550348901231943567177162503995922090318244011624507798610095911759839585051059864114684606865703037663305509266815153619905219269773323318931640512469243776530934244356787006247558355092735025425808107950464538138170083087866070219123050310539678849915034642171522845246909908600372489872268449212940017496041121603866860680853129256092121591631570588566060620925123197840987249708593574236652128802655415404720000388838066808657290660381798334871391061784741256977591617844690962654807607627048356756128715511463776352129733315353769485103700393937469502881216129174554698014424139943526529591807532345274717930873253710030363217683908797903863988104683264308029957150615295208625641167531816861700426725970519216212145728847840726403327248432339950617159860342398361178719858085255378656915746781770411068636671258850745731652918333282921383229752980122969550729877433602555953871815335179192932775613026579854574808143747476524146845516014679094292783987797051030993381830333129562249081869713481638922572997324480121494868179549643254334546169550130064113535850911477637171180863800731691101411558339656199547742248820212700241700281316590803960154786330154812403061696574739054543018659814445755088693065551823300378783885758396517387441160956015973780669640536784445105902684256875590973414429210553492691974489056099155942222512880632470775370083233774151936847943075460051193193407002720643456545402524800621389503227921370147245573071928325572766440971391964532605810388871356050557829408562707932543630349322216452858379893827876959880462004012532770997769888552329806596817661400769042395484943609638394825625099631634433371223161901555131684098114382931023789243170325825015483080358367418243820796486855122607105658188015358007467487511786606952561861621012372061996561209887522679579322327375965280118875739636238125243959909309774276873230963347361702086979901806075346907041953558034672372566830825545551981246135576162525438023562082858802865118371544037529963661476762394284849426606509732110741417307718484250540208876062047271821707657528927512736921872993252497019063771800532682750428527936948796468347012152982543582106794698136534792912943337765981998623122127528175662766848118939129093619254988548719533188784305534182797483976784288403936656932475965049933744853605886489187293093262541012834075301552708029838334316518869019331407400542076684579372900500951822369950984884748406399925338068644503514223278188524432239314436348901996385724799657020916921279755402863812645694152764943016750497128570195361119064367906473251604909309650170337752583544267662671172239737009343920798738776460585254494217515639479053010228840621628126098571495549844092025911956836314816288909848695935489573236892876388593577739265838962585190415805904304612294079183912643189857772727979663492363096646452953695357397827080378131363094544827519300568202248782380335812187409150177368997732222360987931508399195349261178090007742264737705499031760319220353344499465417840078258506996226430807221239918499187873665331345691963761357945236439874985363129178555562523171812133856378198989925874500402991393516836421084344500832738694261185197979440395194018903923716578474395295865237958401920243458895745730811576157686300521973319043058792230782904158771271107037010551768988116686163968629363487650240145374426840879326075268570828288202413740095998179041751476924907008414684752981595660240406611436413606734078418344453728759960725113726378226363617777398272842039196427410711328517259098996188282843790866444202088724663199333326442016570529214686372567201896479844594356003537486193431861371881331559480007976311119107033877998338249396280064644592856355979012694338513319677523334758601453501743973071013093197774291275276431759189960688653810164849771676153530090281515295895317033115553554684483180567009200342071986815144380549511426729510960835423865350580897887355560339834530502156018908852021681890584325568114379179348542842026688471000573537883553692815340811782323130245983894081098208869903440513507232119316582131470874655757912049730807325456960996727067939887848510020387512938254842212977249622162316631248931907851084206494117754624792198259450289124939628978807989302436459412080017003731643491968023331901075409694944335241133706728830259324480639018759480859554004385470753561244308676157088841682478673718337008066319038484333352618453076171602471362648678198751780594619595529555217988437865004453350665783688931986407571807946810636369926656325894249207458611284369608091269650244628764152935041436946560571043897796502477340313141101729234666610306329552849840351218597020111288710955939013401723324804631412491362986974051842855672198421473403354713449902961942611643103126944605593773813606169188561796514151359745048547833886394822084408708730091001554850791041877422453121621297074673388486775340278730377281601615853382192417309769664473073781874552758135760831719877850160452533485155976083177102896803535413140148400255845849888177207228284872789538744047169234420374245171709220420750353642661234403074584904946644857969348256159088572077295796125759206826972162740590364164158297604712929749158914492714691827009900526793129428928637513373245797723043805772126066337529864704151270578841353874067170910861344639262405181219278999569152169172416130977691004922474243747994966858037975719666185739131681075861269632954221462498692095096637562959677992146101150010183964311278973763384573544936441254241665733710381963562398500327782891449800914697406884522437769649039796852829427176154956150510753700151686620116129469415534054681006297758430715455212046222248362832375377164046561817726550825241633791814672358822690521162681844607683772332816554092921120850240240582050695311807662916726028739469603060839616875366638125028479581347180269758681052148015391372791299532524659480568446825987188072694226186023411298716874293530101861518053784700016436200111008797984125185281428907582534650755380554976951890111048816777504849605245923630392713901776571934048197300365165892442096709700321909236006910386756718531689074397315505036035320534966045825341022154237321735759117717361819315452751537842644321614208513458659666612325163130122944152142239742526794881152895364154344126423554774787731663828904509258579023352478314147947296566633591960300499443873010417255144479422154318315039747567160644833158832428222030194821318958051204574051438172513825980175789300549440140964895626557345340148967684982282910042089860796745410881451006382963276655349860271678873681432735489111118960885682027593383911636534138049250179220454800873496457737792237397660778074346115841051182197798379810578742333436590099805227804118235126387090690777325106588343734757519502643698229426295092697058198037549870539037556993268288760366730893401091238750062146428002942534976755054340969690229916428506624198456249469691289945235712482677550831497982867610066508001199063537830127411824437851153954252650979778055732877440584735667594332182174430001001970721552472631613794465517312855040225626107166983254075358169217712932425949749480999121183404654571845576576997333115738219569016025904810519594661951150806839804274594369004228718709863494544536352927767133301833589082538800404928323403001307634054890897829048154913060061071935687185472786929916055907352870484077818577489978227987084960255481880107570479401064230274338285774885802147285148015722235217771205746694428168078415101136540404052529992002999572612762555716153326981746994044932729635198193668354177429833777977515931409683576739440223524889276729584022244232662951459106045757857443542115661409603408083988475927608706872985422050202870340196599232014420324933711002508951424642058907551625809904652108826945477046088848908644635196440474711495720309524866024764890320514562654580343458431930089354952764200303465702171547574858609801798022338452072165323098108603368649915679449074167945663131513546134696430659983841578332120347809265856871822653061908426002132066255439581412480053392836685180218286854785338782170391385297110393040249249001744581283270233313688086079379886145597289659403072066582172195430443682163591186754098883344923094318718156423412453595823402729703354378619599616813770448075126799267218229754114228272038413861122024347780072986572437025026047556050008092169788628972573510232808867522523574670524897552736444149523945379900296852388762245903428602970354160972332777279338816924705845264923080800124006124112037844278088983967236830442574146351485538730607161708933631910842617813677774280151936182128983910541839731562924330663791497840385825096951832439130615076561517412155696702780410171983938611627914638905332267508674121230412008959171278511260473035380992130900671842425641731859144802985815566328500134000321805584867317151565644809432037084504841642221957017603374715689158726843931261078384154470481345278165022599489589379783716533600926323897438337557447877460371412853667722532481291612012476355766154598434350730919618131623587643391231457778134625773115998756768684335747332551716233489615572402367650096228700944891406167552050953435959211896833276946220530426272929027132368148135519579785435417780875439113034665288785742411254303017887700215383433447437731552053413485025453798778663428483384891349544694030148779059450536190249884284476818087354000388933183248808177663409364136744851917794863747317756424987243308776815658700501063032381541601517422163184108160810233793974477704005456384937938388669312970260283591664760377358859255831419788112794461056997728438137359264009174082769731937848796993611533727211585767179707538428972121197578144087766624838291571501295796213981441886543715617961250590717417069089946318351805243140218644464062084443205092106398309918520865847923058543877619115208534673266393239987294948983815977366473385417177109905190184276248232411923465693925923161549172996874147269829178513957208816342065711415538680963300290819620511459621225290583182546354797349478450154185709809212820416115186580055041038811401362889840523168144093674981329592649248634571869666698727046667248060122958331962575965134846842820588917458696420227724289975598448626423004063772247076687264919258620720049661824418641092555121969464109876142500871169776532205235103313081408357586323730443755014748889126016129752861281004240735938513580145971800807915299695999637387618024688650789545335616697224508562325533887477859621726861526476707786762492743470619414547967030603507452341312842860685717503766195824444437957209721567744185042906431003242897748294590902810598768653175580257591335527925157111506304275275980811787298019954932884695092899719369783203238374739884126999460237388093326862952088192486800784553272677852327789573383308698788926488383727168849849944948289522856143701054063012775484647993480875893482703803607767639805939485195173212560213256752676680079819917036951156237777690444911482427844734240065410849214163185415514845337632624700343947436303409195740700464041796966813718574794240588711905118893934243334348881728197255798106865618610335744101804957791006242141233237829547813255459795364445939309091944435291695065406655266630761883086430291320270556342230193086064704061351526213870768109457804696205476900185385503900746670854653152780269228313716826452988338915403182079321566833693339735340716022142218560154687324993026100805758965597523382073596740953244996912994679105853944271273837954475225798395524739946219165586148726869418477841173885216556896868265468320049358332799688579291881383062242509512351654177603703249529067706561507591168259092493056317612119040813795358533222256110957339930813948622575626288546376197604245131343200339360462522316057893602119690207023020002162404469856989969716062065254982968270889111582481903950155931597224667772128471377135762935470654050862267261524567105673875719712169914127180741336307459558277501996709970260008298561061524582929477326625297964386051586485564036602994061972972228088775333958755297247344262429433666889581811498683310600457826856386711874183072298023476179977895815839691176821405015072533279172161333105877902625179450538464052417301171102947634897179813874679727755104541916008913774291912095492748414172971566919731810389990981260382352045371639640959643603353356973330321920098083424923973931871153490385295538079456955533070699590305864371479152316291554540974743179210648037083172257150558077205555601091355604926799437626449912395481591048978543854553685733347118345166460961555979948288003419407352517061475991279788845591706451748430513322137782941274893031376702316600440174640935342112415484365413374846655978722997260523399580514922871925370652115873779129720728302467984625486672195483320325441594849132485438774906505080508511952466091419869898443928965868253732546847080416318867575247886888659624964863424498092287037536830009838541643768426786476552844196392499348234281501134935036487847570576531257628244964605935120624499600601216760160411173184929780209681373882752913442242782489288182857485873415332096783720057808255506762205268670693650328447818309694240865311297015836868468157980113944132185896126825496411990759618007920295144441252380870811833686026188599706845484621489680455210732124968358940959398368858437521011704838463034822542360960037737547231444081088194497164656207195972193852686924681369648294137950070566433200352611003099646738113445543031418272786122846664943862399974035643229887560589779693260426761595315338400750334282639930544735058399376462615145266634912584340347847766683494004047648860737194561454257826209556947024682095482269507006065044788956563776474699038477025870296874921254105180626226091964393955598136189388989182716422772028173325880504410053488213647703494413644785474723925924877711471910042163418687153041614988563100820443235264347378133963033503698359320377437873042001658452324499630884821705570340115734567131652686946702944313599217762659346589926417683051950654542585591879843009849680590350040293191298628601189994196118866582103072728138907929321898806278102057971313983935882309323654399698231137930937608030049078130184773965125524531131009509285535325684202341355612387845383993556798486060245478290687229847652727272627641580418147848449518065701148092634601365721980843828884469574459848593314134546315135109673280926691272693841783049181277078201770698127018727397375622248871677877209480640841299615011248683312801520600325414617131472013052844977166919911336752858648103046310186846867594616703960645509692353659477546942630650711544312040651270567472090313381436324355221140906224549319358233270916669680958314188383227185210233102057093037351677675439685804531546612136392671962855520665234725838311395004398316481251507361731036090108433825647690626710423244944050584695653149975118041069470754222765065067913397220989466916042475263845449673669371235042521438681822849004705650745100168798535225302036983805294557329518611310092824275382068109552226190266079149923602540420491581782181763778236591994986296781590520394805247420020103638698762749881930101951949496974098357273023730319947618894346932523345479920095074415934782906228275237958524256952905042961401989833193999995755078543575026879165648263964285680142523260755442477933851872584609188595927484335207473213155088468535790999861769613421440546368069727547595054403974477889610657005844153469937321256007715897712891248488609305449124308003893569519053173645658489853274704849470781134485861481243436337589134580886855938434136963732943199428675977388600721994695549557731994261244326532826284226232792004075965187539310916829139518724612514514098971981102323395476122937423826024960278101995931290318511588899960004045390796485244959082459645098723943476500634687442399979941744150700611812160056753717314667336500056011994406560466530222964209396783182365744237878988683557982990902667013886652829402415679870761597062863720928192811138964304482095803012637905669887864903859679289600842698481530679840471940472520370769515215066408810300118566434356785027282036633757757235111698975477906475340336569605745461290219379450716989294408644144350927609836194600242390523366739874948189155954777989129490907131959386819761023497112433054395938856682757513032169891001625293041654567017612373065000229539503191966670948088174247544521540785690129705995476588789136509288972660065429922262178189816366935600547378762653139440921967658881952255042713420683173779273172461450461342172846908217858559558785312278884737388989824961054861638975007369978118174107215704160689082596135276857904388774627028651966633319922421329606870679838035185142140858434965659503528837007474516533355644559848981448663512618190849852652648716405489073189844713954082297319866247369643861952899701360697255392116030150002770019598202935770065464541911590452157603335895479565235506358636124804724287787893498769795127514916938274333789758356059343848297821455321250126905804658823699321828445856125628335135517143118334717447096800615047746941318858435326791673495186674569059092472770102524791070272972889728696159343901413309480112859991730972332771444926082775875239980416035355450247642538913399857982730843180313788940826456133606740851760836452899849589779878125335677642494247335483009566738056819048885340484500335629566519838005724157901547610258276637156533644564065188644485081261995843226554693938202530257899173956918007350414458687588129554157049847254889526608646176126725009879781548909238482553915770746916452887076034148393661804530945995063757875556833834541470249652616989376993686236003109775038606324508913808431333521513817735285056014582737196653952387361156996164769355484045440779583955426794631098262586004900962823381475132097814881216250361598179638902974829117659662662241281198011179777273750935918572559331969315897591720819529400779477548725862773337314469501238230480510673083504571993687179748778677804444727997641794966688432087115788509819570739783170017837151257424355603629748110974548439448894217184019033633663316689097806958242089400394749347771786570438614895219906742728390478491351518473764661736258942688625419821567318308687179728540159311336025205155578486748540643984981652605033122386886416921104191488059820903605345265705779213932198191328908852937063749254318254714301128281880787524148800195932493873240499084777105291403813969233595043591079301839103483530328649661245704067428193962095180210375311549863361665734779133176765276214532385335513054193084789817321620319784159706044112723795732003078335995391638232931096097240474096310529952208745435629278001858105789019790692396584467443972775601686446644038305638261036381933438977275749740582374495594069717282420464992033583847423719657133425324272851019734076032097286948543175227203322600190841970567209159802426278593250345964697358556488995580299830981654813137438205467924804046952307567718103284955013392456873462205120654822533701218789486940232042622194622705663204098524896167272600479191710634240349102425908155082446942246225361951563985938158256766914724976333478598168005109645049379761641594377795517583674499079712052244149496615131152404052166066663959734972331796429152412477344791951209156300091459129098003558681573196854071671913500678891801090062535520294166037224115219126579060491282778710686490163079497602764764315886622723931754402501563699504891236786246505815035105955137991948543340652713439997566022402724148312347774810972177831020798854849911446249837044267925124203751178244537275488078733486845195829036864223075683737176512052329494667674260338244683304731626529166527577596680152937822938852054203707127451242832042561261662074232027757919200097293203044629022924241648680139282957524194879007832204698634752602458038665096691687304053279815634405634338325394597497404177939883068829382213321726146828825831674403089062904643670374627121200289296544256850586329617264710601456073746334761587500911856341282691709242122504792636734439904566589304564574524236859443490821889277285764788980013403192051773059889685420740247121097512165429885078760678087697937506260469228926119895030655213766288033520115937872680597944770257851686364695283977094566476680212880305661991426267314830712978082996673848849782606000113372351227952968242999035974222636474630500302102433454727966608319409487873592432145160811125339604832366727422954394981336637043715109030421683104925665894407186855589714340912698397936999412100545556400737673791008370018749083388722376861191839866006149637942549114183622938204414479047318279640071629130907079494983752538672058238744450031504454300616658754729890899885663089700713472922329668203373061205106197423412755123628395577531565059418493688560121180145059004806335211571013658906139529185357646390655687930340856217859376783410787144317812752040727504523526096863684036379666167723226195402342954546183148975493446477092148431332852121537494930575269340474060202058325140325782820320727198395416864172060101370475764743718714896926399621902306420943602479139464139311597920277656759594231140330182657419453878718479330870372028778787561285119605567768665549498098776326283737592005023553928753366697815313805646925403050618360842579013019379740177547854767505784896063669443885619525172197835928108394077263948044877285198103789091808594363315620535062555641605434817148178635585033603461536170642348510801259747824146321828332363170943481195065137652879107327991167151394854987799670706770271488405080955370670392456330124246826724960891486845425132053356145571488974737667234632668531407972600372526897110012604440964422523853927460572417747480687835964079372858608270193300509528848064663350184780079866707430509657701164255854646654053614930464239047341271448698993515048377259545816826385441890403036309028568462251194694146822043798366280647466115977920040626112450726103961064759356539016230052096199875387334378293453429240423635548682143067817287494173802693901796170720308531752200614659908326585399666763434418926081900944133195662756599505509753925535026527568858405775779816795965030116402289768916139771383285152380855711416639690850470519043180517222706259217527094314715672731949117348689219519249937836457761782644766333519665231186432730436491284724149738089871459282816645210829482750819102809693387209376156844766858824730659476200164421222198800507079553451853733708354949574149228762792401699091879497042050136696558341832677903679225289694444382403313744134512342671704905663041650404824507099114046684221019683024972108349552794183344137917492043754941631640523270120656377399237299736589579382354285949414624353254907032403816072829391056880165127527357197485324922849891458514747363833971491946862410162558865587490637702583368494321496776999374826008292400335623265206062145804853400451598550193838156279819884177806413608550762461176462198335780757918112783663997194453692865138782187376273540979116857774103317755167355883317785033112807371731033191798051559494403501277368353328393589284340825374224138121752022462010993640417308655014015279187637698034674899052113402625814136405046100216889741039887943442013897821802055801111376710555422272397437960663398286934187786870035181008262909254799806849338629221271690375206713195592341474235412331857608283404180086971491040628946540236728742623895227483419255791808269676762416151421556319210161129741721850253046294576467866144948239348075506892893793700137587587166798965857259161963669109443397093247085362471453079592777408787008446042381983773118218746801766387833389443894186114416350376857907703678306302805677593212998760809875173632322752323233279337071495728405948402641627873348592764537382676216286764134999485406253681621439319433090517607217567906117451076545660426014749085904434853297128629949377304958615296343036022221424999682507108688115172771195745592430287098670187774324288667248172578844284456700351174187008139521526253355959814641536812970542404447977625395954585451576069205730897635681991896357814855570670300116452154837161252407228260897163814833628286888403007344952695460437008358266640227098558673343530654166414749081158751201792512058462148141133837676655722016033890429720901093884075511878384741358657222807002336843172257884905270567946987988416245267881552205300680923697304948100843888475611874077120361876758868842980836712859224325265628046476786039296381443017772190638213824163733124560187991598938917816360579880901171660173635617951860098125560049733741459174387580879256971923745567620456571028511684729191273811489148127385480899958924571321874810042644504004085864089266765941657799174689253910090492765140788533476564108123993451629445108450223828288572596090940139202985658317433994099129391592233755944688384614555076387096412730146352482201829289855437598075876226583468489335544557711689302977859117294954084687348476167904283579587540991570127604128839191240187217735478411157654080818273827689719027466606627925753165715534263142273103255658574692013595139036490256713055131862824747465288820436755117359306400030831966364668833638083775585835061520219106173156282101536301540173596815247507767996006727783552632362687283727886731609960696242679382845909185626648396770267148424481269912140389749792777377692280768884858684874810201865245338749524657021148233050452797554101047723809002658652404397568637830871013248058484790287107847266315252655142714826204452925823968118728819960244099522494919309639895376956232111283232150496410142815965437478924082967084698309508721388956743890158179185460437588169784128933205503264186270201453833348900922610273206890162784280141374508406367759338902105704977663542360066883640531425938832311860354537951586082657071477934167065379247348707724550531248226569534157614682507880606609533654295400911559049382018635061745470863082521356532822712611105131286823153231481740230620690990659782089927281488814777266398006218276755883517477479459386658312320410340900117753964822672120254512719211757919533951299460438227059724794511494908468878424553969679138476605801954422095304089973296506909028946600642753622420008200921542365001693065296307173011096561448635784235537166584694438379437158636504480515474706847623957935352523736493183070552074363157289960334779815399205423170898346195006260852820942340674914874265120782655904096617997721301846804572662755584107070620385965910884922611591197645543471113603510342300771450652901304289408599869972348114763087801187941589391310407672542764505085576512233273301175421284565842248224935551256803730556701616724202986110746706635887963110855911513657945445042573687202112338551593194100800650807735400003505943909867279758148121445246122208166549185274288520883514347285113362854826075390871761868098963536328381716401179638077310232163329638658078568461185405232511173345448354638197424063761573711816542265471245576862984691275643195239585531179380682145374146020180804473395941108493908697979769500070907045423654176637274389134710032513151417802895331553937006232760913147224392398293855685145710601409753621053547213168258228003331943360529535580814397816872267688504055314941102889463817434433347417110648817194891503682178331801522934104137035350106215212380706650013322345470667469701165299747816354405227315691415002700406951911696224253332174133385037063531957025563873851814159441318542673291507829646168506018480863126939811655743227403895418393706176605364812858869517536133702103545598120646244354334556255881426289899735651971654145117451039854227846052544505945708959686236901280993467128370314302908886435069917874862040791986235038838640662771669192130860187844233562438480849746313215609411524526083959199638580364926824038957715465940112470376784506210888835939362427455442114267659263224790583969512776684264436553589994199371107308229346005139507184261121673242203344258970631698823530935850509418914421862489310434126730787769631581646543857950766604021708433797827213492864105199571373178070984794715853955729457267386927021436819670003658977258375581369239385705471454526309773514030772777289070526263747132673608701763014932521186993779523975194227963484761776642817359780920287443496654246449489666362675180096863003173271148951887780681856465561682457454467061062620862963399729385893504869710658527097023717189180374215398708389156901966925049771693555578910586975249414521480856683822109503770098523726069280624238830315655703125720229155983181437674313327943361062236761060916380939060136668822027704439515228549196103767412249149314212216105424559516996542355907962175725615064659798718294811033684927616655140572912186432685230110009888089758927342340195330984171686186470696924282468874864394286256966687944659002326389208632772820245338980073775093167662302589279216721704054247620347416097038622556272335381954606068181925398599584549764752269278664861094211965485248454191920146345721888700487305320577252686902919025277306319547169674636901999020914259618943522578180181964207754377096273223271161775229339167363630534731956703677168857664328053826737167491471833407702754392763089367366443588912930542101745468050745817611097185356301486510056189097946391772819701283678226766865788412358260304662634758978361360027880381629367381666694998832737095309890301756419747378214862937697388869175162742483423088778860028729678668000126880596303823612699415994651061864067015046780881152117186027756989020598996076111893649339498313540131574191565723058684558160737987130286004789658797513138524066276339830846035300578439895908754784906775809626776671759422586135232179720810403795470849717793947664755988910641524259224103303466198646104719226283458016864895571192646804268532896342769035674814815527460110677594135673875080551035394164649497449909394889778246241275352322223396136250294055507403975670752361590446856256562460588757199402146672761903376116247419007494908387489334571769422234823352357396489769784674904834475974595592592701269488502315868532012760662179097720226708485129187923090203011862841366823487037910659012447540258281935502499620395532900897484377188534562968752438113551763081974728473675926764971513497091814915172636347694621502080691789761022348968903620690093846896515718324392873363085764101222791985314410611357436742150488009524903237130872028065138741802258436263177243993552359270865976504120953822248341801560927330348143391957098368422750894870299574800217955847398679516344230821477565599858705289134281483265595745501848850301774925955710952722896656851513464332859060807550435380516618694031671811683643346424209384570597444842552616840458587044879606716540267858346349888557283576627104602710038935150973889524112333359588768270920712102169907092337721453475694584827090087032564820111311485807686812615515375741570240737174771887774336843891107629356706263969686345181372158468795079171158356687190974366400090005777843012245073406581839406629836043517988521926222599025969318439646035077076165971621947749173359887546567647356577275176521600227899922458759419681409444984340759797682543655850692692107033068090946773069607233592483076346608604627193337587912866871805388920176890752750945998154198653580894014182012572847517077905688556089748122486371433675918213882709936423632919849874657076965650938937327758754061754367664858381593746488252264395138984673339089706648863004686406867387896282675587990587003748794037128687596927189289343478309180785831307616278201635111915631519431577625895946747130817378528242117628867797986694324263348220508712970545245571186693529900272680626589962743173647600835489194423617288258369793400385864299093254727285370540087501797831333719452236120760953687941258059021627577702283826944194050856251752820606457644887738032449167862760058293217533633540440237942716603844105605602779952271593314681845836263314840740836268535386236242452329133581460671368710574651354135684499760573715860335690562099849193133373796179486658312348153843457912198882840732446369280652765314031256272505288649607935249171929760201963232685854167127345033499027531092895737243486209629507806488754486617618089955149391799083855916755507057054413721463638577939423848155850768958065997995657086340749856089640817725771176301455871099826860652491971164350677302117500610111078581207396163591227652272507513532879403713209378667949355848424440639254944172995571046548198832756185711194402936769950918335622523228605756281122399068880721613129317793554668473472742496438039248969887356584448007898702076967236904470744367310295017392981509551963640631034000466504186620780592635540154950399974320109872156221284442360662570848380240174938809950888552117178340564156574217353396407285990760979057925627310917567018771212100458934487505805879093148493260876393693454561607253578626709668529844201494715662435131301235162567246112904376109242362981672569362340350161669269842488855393859318361315258261591416080481213271747013050970318775689983351544840146887903662472244842089174417679107868241742360933365920394820110455844917431339067934534985175484982297183446780187104136013060183282987257654272449788708841087676241885411430833597979270216053467011193406055416375856569281126692086443363230905209158520900906882950196656044619810368431115355580122971550827186462942446368224099010291455617550376084125811466846262536495837360527581256780699265884450096270782929782196367991561171346251143125098607735740984497920950961961062590084891637029025407105644706520856893251351559222169377422581829251549250881944785534061501780603361002830477794302720732915606946575682832109242204565770141563034983393873279416115324196725749516303904008885789989443847190371469012313467202604795019402479764193873478676367612639048870510402710815713665285429429487960728255101334823724837035522194509114318837734739970224999822493548247201640914871674593763496544560876923676117760432658251634606532578801312706516873663647085870820705199194954757183339199011675798714057509794951947084397162695192017660777540307281872541512809044416744881882852821663717384772755256151035103284329726288245116465176311218271443909879792397960984053570005775184950618719702461599213800021341216502783013084050470557309353098887148633926233942430106456014203667965879648148803397542776469171375709254609210076459459528207216702570529193058684070929684059234461929236598719561578892213711839852339267177497432495375990329251640123613594639473153748927939760768071833855604200808326587162137318289639512247930770714290123575166943834226072502691001889287402550370458432302008845233395750065437331469315435012799936006048434223267330434569230164031991191171745203493162443601213342821814401267398144946275155807029446453817906024003646887543586738719493197102278181137200246291076851927303643263749914723865181243041601165642522852712104831312557784919090657202928989290771818513323842919114610613882234075987542406858590963256676326576359497594487028747028173558289792870605622437347179192649110035846176749527925426708164090887614854029112791984378427911945804073319721810121343797378258702072819520159060530453355518050267044140853899040913740462892381049891213493483833189013750445900156339832244470559968975938060534242379937188227345377757604340586470385887426498992806002667087683672944536810758485357186483370986446705146028495032771001132212804125710729759988632073178295759971532971586722999392835850975057830066226077309551338160188093525650633625122267289799717751956312705622530548725388619743026163420794351621691251239258891895018089661353009447657882469727997679174606775978650924837707656676364193740462259278833104360160158803952802260368890035310541493418450440539884239247575443478858698045271098528779928871548983556368262391836681037184060191480990384288881041027592090455958741561999537753647851235965778819140252534673802346686739558999126478452973358013273593632299189356180128357859538813156749201876687939257907859692231784898521758158296003568504245756974671031323929597518659961016150714566737874725363598044219819735983491906506644972465870143140808648785248484774684115077265983101098097648235816704990327227740202085837209145012408960916572329184857864914678118680690785973060008559810412753559031455649064065260829123296070737025528139527393635622884177357560884614761819313814756753375260128286696033468068470599606373843628249353338041244967415836461186966281465389034392357177842196554483168153971054503851040753427582242994231252216014884828421366802288441974165117997488521953883727580869307840729889384574363808847546103517015680181273470691906811061999822055126012282442210253195942525190551939282035983268836686097503145380138291127785472138509210500897742689890361997413187820319399077557522944193196120456472827471902480432800329151884906678749389495444267285198466019365858812208538631063383981299571569547656277359511325700112149453932075699729395524252542567655555054188075552501495375464785529799411725469712914600150401220627096495714966236621781467653919289388572080700137035238902821224453574030469279974109346535068037215255599101885798395845548717006692747211777415591721417265429423677581506662198772377522741663662945940434136739169437831030325898018273310390113046283251568273005521247610638372257419895598574459841014729328992587937033149794526292678306588894466027710955373280563427012590872272447389611950636908119377750370369933647594792696363778363232041251350966121703005398788661218530117965346375902134882995019948479137225738906968245727987715698670844903776772826164877965407823967538753278514461461452391366226974515742026739138426610988948853129892908108129450239388779925334036122312778879418802592097785432785007831334215469153558087506033829205005533426081503181869979239046419146399385800489107606469749262454054123514674440124076456688247069900122317212769203941330132678921588010832093988245140088631741634336138964334365346251712285614030858364044268264586460088642822753869983106287936691152073757591695928728251869138726263086650534895745782084706621518360656362237944958705842847194883958623169482554556229812396419195384115011066543736850710931344822583477763700567062895224119900330969916648647828764391093049062091840833880969848519240909807192146972949097535427342718976648373945153346503861095726054622362371476599392612966894883108174311829726580679820833310808441386664201914683084208317432500279098011686510676836665366390232783430460934690419532855268895213074757015115737283412177933572089387569391945912229272811050899381450764759513485521066667744967199252943056026837922645563351941920242496330180565664810551260323263389631796600703893222024013001674174113302982413484704354051276078720237754698784417706265645285753991298642755286471093968669296566856967897186870116914852410078666178894361973847449335194320413074079254254301774756353497241223528221512361028346745106378126891034105252778514588366956378926450591178366422000837654830649463943859439303678403721890310421767731452524061490657470988983192293189807287845889440062330833639479971710395594176486652812257372230020963756126124256775991108524824650657860475104740202809236423983060781597048178173333358832778345476704509406964331380408059810937744629295336636534517048764331737039247633763488154632275881737618614279683353155558568798643446762562727999387680065129302947424191736451680940136843390394562189256104152966350343069574462776033557595703098947971246182801082071068291848522518612307957592995345058266011737905607665590463044222975717063721212937165148045268976216480367092384117517408537999994599830775513996936174537076748042676524621844649553127919069659606682933871801639746214471111189812743801844064915655536642182572932548137104245252364573200351825261953192653203061340214456128139544168292882235622571308091694770432828641243379559704424049176316681772598726928749138212756361339647805920868726006420712392063428630935992259213557969052821919123656730955705103685784344252941639597557121718385689860382836923759369610275034411650664088221611369349227572526040552096546461092112503093087743827270655904103124948230691048639287564999040445171729412475045211008602336842298444664167338723253144253950765115252222252095422758752832186284064690405047067484816069898907291734964671237998951597982660490073068063912146339790045189341704389651403614266480605125451643077432745365292967860448237304804193592718475171594453161836453579877145022398957641044384207024359068265411652507990022798447959030238331075719353801597359469263854669763529440386678601640026759522273825555718896905653862091651460937151515205858997458099832349469252156219163492033493138117667810528294481284843097623974753822649160412117912582277660700261873473999108436915495886735617215227009866476847821515268554953974235966179560806852130061372971438442314813356354995324532106960735491105590876793103164459758275967023724341250880742904116327941599418312611103171708956458243514694099241489033729935664116407226062722593557774227744839277271001629724133318717977283126793493709373202557522804504304271719477444633114313237218606809675122433065753180144105577500518239997670904666717827647785512666436335935235453079817389142496895900603896870018493477045024631894017338751648300703741941823558055166255482992003355081248200238665828617315345983462213105643313556832886360386923644222361620352589031755779007246011179413920191222525925521876103810032720930927451049053415336955636983538685231299689858004086444505803099049281464680268701802615232536133464507203566674695029174110568506388198552067306557654572960546081549585435141021948561248231410922777059104366608104760185326547180604287106043154581551180170086798807240305370377327001113462521593697667998677437541641513649893453560452077189052738273195339116210511051420836441277634964711120303245473809065319843196890803590257815699504419489048291156237239791347185016122907207947408826011712582511441625957870650557739732644773996359333025629702955416736235410496429599268465765914356210835570807989277251087112571191956129350132037620245761153551904883011158185068811761806511380922769506447898354293800288750751895524784517085077681676990111180802505306565105762362551686292377927515414262544206262498778126175733980835836538630267868501299525559160876063854644133237474836448409223245215856793250649527928312175063306867646854290736081994414229862635397977315308147681803158311290252820393999859673158079759017213881533107145376853940542516192733116402300611900707409721246161003204066394660927125277039665431371143582058925581365678559922453334566816283175458788924473381312212111316160169438194689281564342169269985821899404288200459815892033364112681279536324342272563703791576557979564836873366394747981652033499624949011869229078767674203482480426370422641568809619719631481563078487775454509757523887566361822411317902965049124262361165578987445080711610895521746330790543011402227534567745465140696863144992932442899682365331821183362769238435187103834782605117196644644291374694686928079318449938513365394539924443543964601310546887314682322022746811925617777918603674249127815630155025713402060071078188591622889776142924012189849724103875023934135525495833711670900562746464318420831068811148249824890029608722179417338042390695981559982361554215280183673752892467046476311680870647084513448849904033270774240704210388737441631787798483433338049497305179726264412887695513360689372110755608692895419694601245537549162564067621046501344701457236157652825411902257598522120488115969946029084214078142333579412273571060698363716622336686232486894421462687826577767320700226192381662672201058664848947183647516737153316613241325529512521718841248636538573303453586824818428157702383450355147120292084541784215974194920516029210017444747224895730304021136002552184650654551481145975302620100495800674766758259299778060244686420093000376287519135874942058460678240519258767201934405057062814406926697832533229747795451478847253684033146655992036107488716916748660780307965794881384334092316036300722566972688361349676213408084957065924622906577553737830476332620536680865957920390835944700750598212947429301770348039804570659979392254423960841756575578979655149667105406236999936105948806148936113846177322142681970392756677871087879862670739843065098184897445915979715540450615575244709148022414490881806473022646393762991132825019105014753999537224969494015419304038348495369556298195275125632978024809650617137700008702713967507694036293790274697645204942442822978811274017055008299340790376067504527745256668389151355327063947426227045294107382814199186771280217248466353785740859533323037241030244525742874114514065007774064763063290846401528464007593540459144793728018854424923145549492588521124882366865799869108743484308803092401440586246136128818722679409050683526146796761931465219153965092291007431341279472809149353930095034086055023967941341809865533527123201452580361548829917198404020561004302035588611535831097320650922111887143962183101635449990550527749255216150014651649777777361369297682631786779095785319587493521339393812157553799880390871610786877124405692299667431906703284925794581769217442538930116153190595507796792157184527467241644572950251513146992098551054708808568424927246864952934106307465667652565733189421373828704225681017213231370752084317201301852016956313035815321009111330584279255762095445899425946444056152913595450599098359789752531553580357801022527455943484183256872618957146266561211051758462173905157233167701381849087388074758451746781977550759594955006730297876217374692961894729332789297553549367406940438862926580678759428755035514252957475905659705097453916744802200502550470732399913468414162510200444589958858430276077488740640757191668534558584865675999136250786973894747240106634390638485403904225737740087802780500444080264155398075165903287221945502756086772538896849702714697712877651608278408140141117689400685732092456553765946018033676224425150426235011739717666038549432076100469546894571601736759991580650836777073717285943050566555646226438212555401676220565882940667917386813772033329712335737219954212397350159885945742282596145181973183306563070619546586079584035977316076068476563857983829594510471469502959642440091831194100742544689818211629289405831421427705602664153536400563296565778880755352013418367709843714774320223437222501596890404224740045442781231601419739073632903241386394008590728572372019613129227527066990192362426276599476654149087438237829070548921080583645948207305065390495107435601397324238332792019604644496814677622339326538525505513897934701579909064873776174243561218959212013261111389643313026393984691827025522327060784474304658525872738744622962363308437678115710928638242360843877304489475675148780765211454383830186783119402406588108675303658469544360755621249693325438341215969387243111094543440102700187510041346141468201950538488367800358137478700051907462402158487049015333436885818096911484604487803314749058378228176051486673891199506679626539312916356819601655346902473827122405195642642364046153225965575636903229750576537172315035219281848796748876254640644345549295909190143886260224958637608310412751967624114817812783646364835532339401726657906623018067074596931810549253478773573229222834660759211361689371584520945538812108855122910339484126749806031049984642354409218769138420857141788098580850500352673060094016123542378693175349163161116641282798500022488999513543809975441647774859280320065467169401988999345740715517367718662865881859386035770699927358364024388929694958532217955963270507437985488633024180798534819778482842709500932758534521118195858370367225713299728754546536670569620830504737128007603104421031282305068585845632937839246692077789865789302609580942556578206011905614720392896539631350081911879185898495454423217019730694615146924044382200369964974135235456567077471003410558193596979584031640405317988317704773615567787466385348312131675542351814143638965689684108138259094739810903315844821493753778320133954277055451925049195194614377008793702322868333145200149141850949351181674057364923206070737243010544401132824403134898097024028745785829876693774881791483764791104910935241288788975042047643559163590540487981576148248191593842070951221949727812832295216529132456064102368582505156290105189198296504299025050413913960909533736922369706689859544350197683240207578431647672885142549425248268005144212066710290472285498520046369247674676060614299570323487101201639246602787683633546986709818293008575550991391513732552050806221529057818001196130916675598378956237763780479473984224240280158781943150469520247647585832448224821507564790443567702226486368092790806482553266359071093222904176497314797231082339452930757980093224293744032256357246302689150103317513467253086021974714446178331280935183466552810518706775355024013370120220631834586383766247559982845250029458397361603601576707091730346507310122276645696002901151521325723531606763739672140592149964623466243840971599681079937815159277354419651209618728848478242918578110581864240209393718498002614108033330166820540942427272296738910606325451220029755527893610270391139759723964155131665366182460912309304565314147695969450790479086462449554068557778697024342955315609481311259118431143602002453837254022966915064488731074497711126017792369479702155757882455044141283899562008989704089255401571559706294745881905261157595178008999202673587246864738844602044274529569293752144098735206197486336769760409256017530977072848157110016197330860566528465017459145175783396817312853168994194226625089038701036939790454630441616986719259444376380548336884139499281354825709947324690366350921526870138883653215584052736600079175836987659474525763174901962763848282637409848156605988039925269880169432063730998519004126151928051259015903994497057029853590667204877300100820383853847967832146133766630639633159970395833925286850651174714269403190445359175408740686686451405913246522565609000276913599630029970155654868504477537372092545416399749792560666281019325723111468443426460951003013447666042109381244139206138456261623546529786505703600111748349458600847755862456287290964292927802295557576966581919604134103018258244373400918281444543520697611618162355416772227358668696027704403995996674967196993419091514295303967120694442646709524325130176697420378031803274480280065924522027374323898447861215587163666953901448555933051060583410913894984943596936606819578269488823100070636149857541474791803348440924859820314169174036777334357258372586949276049596617837540027323425922630249328210564585818133634724699721283519343689277877257447663667887417103534932312110218016128796256658130945584759785575295612224535522215274220580675038931289533058435433956429467928410391469696196567024266618538154326899563993576788695131871141489558120795652403415468966931817268379767715860084295146950190516599364914245198628592521679246873636103312165825585700590649950564338956466604136887121387826396729042387142645248820225221650744388375304473956993600794712406712876714457501524237418058560779965617097736726229646151796744408875191936191585503586792056019543344560555172221651994568233502062865162017067744356653552869308257998385988443506484323961003430785503105955987967594368975419894770642878068754093072503985505952531159043277295617452763815937996326107871835877316171878535674486622071955205367912728423781100030479112384408065926066279345182764017034390892939551711203802637978842304206284746920259795401727926254730612429925281294429560838098765185299872610401090705253411900003894012130182047955168176988751863858529198001925488276532283971449508713430888998695107409942639006957599161741512186666069263832299467895488992153807695308333427988249877577332027193027864497311736526010194815155361918135596945566916995370700841476428249874956267870954598619670539846902460459767830078484793690147198023832199359966680868552279413843915769014902739228509784110921115875613593150488985827718842770121068341738745234551586445042884839196625455051968446602986747112371277040965267220679258840080545189539238259759018251827070120051129536476703600275740173584241883677305227222128191653023612747732007431554826100600722684367151452719861509128932810583407475996815183764132293128257962769081469037577749333368510596803495285245195796328177331409884442055754158716793585006563320753946762648041903604852914184912956325384529112745355862794228462211236020354155013288603553185054655083004026502824363479425501276706014559389244856497189750627997796957884664375545948520457866781215565913746650758735471083604180610882736831675357305722618955176173522786715363709432524597635409110165631984575205493736755109443360268796479762962750271002822163610454504065137925259616689376989748900440752032443686366118404954007013758593740367825942689251186127217090016053984950799942673002039237875604466129899142493795981472469695248793325358471180204980814208836566700508506447196153194936876892852732707726856962107519926188150172726933925697172502970542150130035109421565635722411067133215699051506961397103914339657253255024089684461849878074987330116632854846327131297537107532208646925080948570912472006860731890474968807680109822837187287332016335597067744126707207170252859247787268295316896977943032115891330270274188850964796630841351407745425037961878549935998886834342296914262654168535173297889752841338313709729586412368238227532007371843161521908671105662804590571996506979277113784040327839906887627627517047719383197920831616891645037572153317548768950970267176797435261298624358998965022662557977089520688243917246527642806050860346889369287212206603411061420258967657983047911617665261023209200716847598711909712254930100523709801356534439142682634748927789714718633805295755931193133526374940949370275284925050934803410897429723069659246820310977291053201129944786146978886284090651551279709761702594585173159070176345151980304780449012119642952675313740316024847575683685538226845587965549617042735362845631621305220958816452148679261561408600485512670465682499763494068077882590542040331740663612728838775252628111779797891882007377026296656950393559675487226807030649612299768244234657945262050368870308934729878717136570853709994933727542776812452612243412070104302832960866791884073086086172377810616989440316172946083929753924897617305832306689416162693093971254597133691935145860092625836032004822494173549692674834744720396521424913108113051732015233927559748804017941027672922921355176021696758645722949294399042237930404951261739120780508543548766505006788515931764129678599537617960061211177859595258933748981394737263792236314451095330554398626202077279723490812074659270200605753017130062810095706432618490658041445785488783824346690465689261506873677153926579054021649789595671955758933346045083183416194986987966617640266340650737543584489465113049610684305315340935304668889490319019876260268972261037999711271611016920792356571426520906269363099957685657399863565370986613658151474191778464060303258738048970586169226900807109717595378604264971731069288240966138115071523405860038300699000940478214517263378922186957729248310561555072307854798326963518301841375794335190338040723558576504496313608990004026276162189156296008963776261966973762488375569393974638684746601091517129856523794148273934401078008827155427428810707027320954471255104291481791009120220742211685060944229687565042060997548963829036145242522232163737326087348390887489997630123129424603004690284158951446172191869358370886609707499188883408444331107173446322341953938058016393762481268569304494857831640060627286222002210636173480483171832418418622116377647223963961325553450771430232353094883837637137743351252517051094937931582700925726368786893378120275372091734505045820494759211057478035809250040829094087813614117650852330657810309617542629292524461678428702357955419714883516640474844096461968900777924472592695616038650425951745155819952327822128636740011377386417559969674330618283860074370615083961991699942640539684704665523757421045396385155086412365407718497354381041033318603274847456644247840175827886056717092749300070557176197201557820303183487188155935032628231122262802136099369021363811201045309697341123475889939324031241751745878109584630615264682898225444665479036181302820739253421306909731953090945448719592498068203412348833150055842389521754695958376743721943835496682769846620900705877443716458471390778759131020120590531399254128182444412916584201705273082434268711443381197931483963760069899847228284479281969946956225862710438882820337264990705383704873166719275850242751987319194919620654715915771652939935968201973577752017542343019357937857122875961570702129136073144355296022789153403527402169361427345561448926992594893755089965987445210404315907973582722308316831678056249574939922316097423422389736277424063326180279841590478963098127609899414030769733773998948190075238010615652818688882835329055982202456651601116841625606928915978141478232180902543939753053273595540947530043846022900341759517426503644852150772182133199833645953777930602507982439298617432287788728649831701379206034776813977888121528895844656740292664097688343956760127004302702320681957721920096585535202211255650558251471692540601474394185949233456156738646904753069938255226561539819953088821150419233466941016907279279614305899662799824286883085552907133943169927789944104785100874554529584435383607626069304328531322662541994138800918308154862466736253545302748010903493699403413536349094343210147002000894261035731668763275080783865714319163119913260998009737174765865358979973704517699170213610876432357169925934158592816194791155247988768588364352404455078113319422638753474157426289266782314545901725614913745719495966245554707439918487440679652492277336306523027310848273499119533126987149562262016776143641747234597551848871935058931103426281169383047387596138545395670349984401477960399246667889989163025214807816609530456198075275240219799748770694310167407045045981396555212935198420079393164680097569874884837663218764563571694568975559794588006003866448715538877131986456384251949671304346204512758029127670849384854857893074341669732406777797813051273375487961412639482513166741126330350770359038988571892948876966066864563991794005581073995700413968989816314002681373097529471334520996416495717196644931596697972166197692353169440697418161082286306326062344403044342827612707736318645539608487447071242411422956437854198890797912198698235023378998649921203677029024032540390638494252211813695033894578356533958431586876298123713637249758286615006461309229624150689339498801449936490840128838986853943581857501888696331340349493218654900799663986046311897417919675296895168890296244437639278720205078659492682384927352503916270748977417992243506611857231861662236776536269098044316861850014042275680886029940558678923548541661419503709459640800784744919252670908244802925708497287342804885482526266115749141918585912457880201605805145555172582664049411842344586854744570984998919217286583186839666804195776388920842886030172162083142149554757107064380386181020872626848341454474205383199987126066033572708058710170825754634936917207465337352697152446565579316662589267056347242954459365893388202758210709894720462845885745210504932698602761918544199461175077252035422554449978156122927158401404352316067459764555863667400744752912933245053596038100280803912106347882291523758710733129344351282088204340905745734674224459953504577899695854669624968191255477991584940082621834439949048980688084990351727060286944415599687633112367348901071291679014169595611846972205560800937039261814334176483717233674697718966824885067227026806956154730481924066942488831478316748317575797912218695511378477640433030119031054402873837406724992452975056059422319666022114896980794004495630027880238392404664906423858140602420820333151905739613529440142851794965942805850099636009997963967706978865964121188523622699460034942379231048182205513612618737841704728166890721688303542316136693423176152790396792182042748226851070590788179216224151556545218287671182706246775198153174550213908945451550105567242370994333738682001500313882769352715948367615793394276998928388867850792427729913369128818885759553233359300648858771939719622764505499908672258251826167296349462730326776195828306455270991095342206266506626703524492706953052507389597691121689048417816438187252862826102924958408990504916378346080546397747768084709833008316654370438366727922592669469853032412741091635374498646788738692063430243139653730979099891979142871006896123770478667760684517129228920123024358352741671116736561221000610297515389098685169922339759786230194582221597457714266485387366794125210830842657350013050475785553897530058746314822646329528327569344537472872300474573790562549860342234517254489122202802097017159975986241721794986652197160093398120005496023880535037922816626432644409318817282200101433959376077843380584719406325079282409315058233436999195892571864552049498927067218260312226107980490841375297749070342446959786819262214379920122648335560398275154915984891385226451682946063956569246893216939886801509508152246944799277961925863753099841000739881235941411186237718871620087445695002663140066679473294945003392243363521640167897796204699384452139125680378180100459102166297134171491830149911665495982335286321975298628730227214773583269693607102035605505633467725815412731159098832117124490721567803480962105836264457829018337911495702641128909710087511209771279711018601619887929590755483354887342437348335647332330993958182594645932466747056545600546849835223218094338462658938265760183739377437139575853608764766030422677203807230629585370718465137941599627261832970956885451373326474814472064169106534720556711126230830241882772000442711128897710483020016082953216917018226036670688920028048304260117992618320031853346296351282701800038818427325327229759246473432457688264170518177332246873495522646711026330564035685686758679025934976313262974967238631654162323710948808784259669194115662094469737561428104065237836809407120628399454420167338623116787691879169407440945428087816717500072400686033465445523054842321200841124718804420943423416687247887621541126790179431604557823568266004994740318380448170618688521000322257058411759906164948639055621343529210835800007477401187163334929866767219695487073891656804931185698502694292121923458241865320063419654837671105084363874752700784251197843328287631416617201609206557258852110893630196809594110626577269713935290530441077243575127762060530919895088800122536448413599427517533001179217303335222275254989580276176357187918955068309423443899700946267917935249286482769874967071602652163459044165424279240236938192379570844373521715533705314445130364594634064260361233712015525188909549277812027689500095872435615403626136769866210014191300945618100205569217904696970677395289333436386436225803596059578535151056641435556364813785046970568119376302276901560116399159885341619332765537105307428839640211780742472928024270855644556382523218184366728385034282656974163129958709968230425695270721703405577753286539187860602147680787949361688217164918114199598950691594361117217091306312832627580494597702522570276290372122158455337038704790545244023441485394528284390386866227937861456249689444305250770401419285358531629916389233900802560319150126824970362238494272623539775265802568365140344784239508622813173318906653475029808968618914283548407106440326043587449273522538321189255293506656903484962656252282862309685833761994677532618084504447714379761704043611422093748386369404799713751865590141647142673331169724958104271444984398752875476141558902994754819109092956141821221192006862113278963777235422757976223850043948506755292049533477357189969274882880041882452833538644603603170461403356436642423346520781285791043097625416160781691110695678848435443321895056199250142411250528685233624238038787175806197387299260405604514753364759267927311950833619028948347789689854768034163626929161539851475652583558964287434750942343127169481193405524788828486413349342079831621252678926291385189202597862676131193078450437211984412387527270601635091005053906169670308180611146487216099108883438264683049592960167472674159336738776749851816541440369257372267546818698458350423663100284556422428496105056465826685988145039178928500825916060474809917256021581075866920623609860477141303395565733551600832978600914638814098058087589703624417449059630226562518363432420270925852167074847248970080061083858485526543343081971326545913632697763756832124122115942529498770938494911789648495391738138442358885697851420265086281277545003132748044411338444650138391891321347714145491157068000528066308833020971158881323125269733365428938578549365672515219585576345682468782269013400235841903653747100982470243713448775552768944073680381317233550159005381253136129844658880360445738953498705541882741755264221795109751768433832015485420379503894295138002196418367524926466584699699081720820748763373686327294125278542146840140507317481608174477675755072705788772166561358108160155716932647396228832426960176418303888244687581076717510231143932280379636782175552708139320456242509387928431658455934560304189351400961188731367759449263108798110045760521931126567199022446538960848072508642291345425243697390388984098682217709941064075500685337172673408660249422102788376971540988783311637836775696315799199054357965795562516450306605552765002473517570580847644759148673729582231343162814369772728776941956011213482343272165324450665320604517752301206176645455336715162249354646238004333033050237948021023776078941193248342043146621979084941753489996323701695470478571907109478651676351208596439418056876369454601909454048312285598158226505864391575383932863974752248561860467740488193930583054838325125721758699799689483675785733128206908720699222122800995529659677040465880419481336134731728766842680447576353091466988596568326912975727497240699137755153020262749365929707985732452719255601985522586837039056262758406391253666167229872481800832762961005079884615097228622308068545104346741558718830795764455381257386657819064753147074027099314984709567608816539242066413044950718619854262152074352762042521121393641760908761854182691009694381579487159854850146937139218487032043929138092773324703156703089373951880986596742937442877835219220099991934444998021609644551435575274436840274410804904026561739753882874391943452503323796303116800191660924879185409676957198247441362189910615595183152014269852246386862394823926761354085717112962595704193195725676278875316229879612047682806199039655263749678510201952467380940989048354883102426564172601384100198965094693611634168632060897070853389495625710401121352888082200860665380834862310551525362454990737534164353250020633055519899042198268034136802042329613138646093253378799072232845487762699356151287239801631092148194199416796249252146887593153460701767462668603053068316625630714757296593755380438496286713654032254334596588644929019060674505260264772130082691842957469676157448888646145456526107358023853244854380133963286000535596948084775469827540737857350277452521126670257746259280029600267346631619070912430010820725274556354830973971267054717117808944297346941390886734155765115405296125721106833808795317870325096110013964278975853064245566623494242117655575551944326924510643659436009504446415029359665328562860177618443935160794744495831355104621230472183006576459462855706506540984807572482259319654346559398540339108110303376024897150165969452290653786541095072085745503348601091753912655655772251677101937965099309432296648151781701662980580122069611305796239897011090010301107434827846967336519102862934132125935297922105475713048611755063204336783106750796182269532490217313986153357781543722388627469474977448512122892034558528138063450400792746853764409144711973413437664087067390728071980177564659885984974166159893779721583624051080197253007382346258140872708348043513985607459687947888265811422164564243818310400608912328354483363486759306920972920316925689633118863810252918253607934178898559203408123405719933467081266484241342945524035756437192069290333622502588441591803428692910911114146337613101656041668899250844396050024306150656548369355696056140893590827327845212961010080141729853168572539692678629264119399231861640783720201834259703423162184630064599658285238080736598316618144237151054967887027602159472775704035600342961392200185608403285815135511814135783250878009860353208915652446741891515492576926469095832680650885074624640953467581216670856843330551747729290708280408715810085131286961511450207427742648904340902348223562974519381144490599608343089110187531508386339828292889277933668514492391102481916089626691863373987158835238752871030447577788303789091282320792312023345852872385552618688425112801826372546613207445350306384212434470393283216143706381061666066249834673102030556771766985710241945511323755974012960199816947719155215180554586426861482035940643353241528316318027544531824969242177112733172494956052383737879090259959765582932690356607434909706838185646137704680009192336071427124546529998584488659266987132332870867592808932024298889751196146618578089557467568978890104244609106467264241988807715434055186912837149288122547727351665713960336054243985790060416724202102273681984190585292135657769596570363820697625424277075510243460235375387114637784790223780821343059215850843358101930223052559536274937356391036622350807647181855771546019652295975853963428497939450165133501615060784323151851868017811991677473176950012211747788057413462516005645939428016897270830933424707195322218820620105187573090120437497788115982189055291023929557164164120323076183262001701465725711458149047958057169716397413239593397385476741567731471093137669826384722504993799205301106135184154449246546372389333303431802469214875453559194110156228212219693050538010922053043328523819418787409446398014342264534082917485390819584603700545116511510558180949933982371227252141335749377345501564163439923709555136317218715796391773252503341038234660069428378619165641780664381578417171001693903997215215467434154363234056770072009773427713857572545484892907786253585872721015349733094349232520193840672486193571606877402758072833347739701798618620835520156354791616964420453001929526281842115487450651833187020986842518502269735482990527026311539920238566412099678517273123618269037414215864335605674801343378654440418461710204748827587495525917234584825601423181830489048214606450986633977333138024994021337428404362662063006542884761903057177879029606152621538057323101306888389299519287889799077088667341554847153128724442809954747011510837871359608854550006876214759005882204707587685360381838463172792481576993447169193596913407060193446692696853678397575679507047813552359030402766212763781069947928368570272592367332792550627513434700194609574544583967184486735558461683960573142365695816825369088410890749183719334506068344592750117205178499792966774988395741782202811413929903009554896823933660896284898271022471908583889733715494258965444742457797509150988470179681973294154392839549795837097889954454106551551633261314256672917258971821341696826017465335390448947493845486366584750413851916236504528621007460365690949214047423125761357115228584574533643252349191866811420234191481094170970817028626809734303941853769494222855562854406730631669312376058743903469877902793884489499599718011233019361846147640687739039036431948852820850886058183677230910604991787302289404474886828857365944599013571818831017455442929588661624202332253228098612978106662641553753467059612326446069310591146918514660327412053560784208164039611876308838486096223752354950120085137255011445588432379739939263854118955620532664603227625253605619729920185517848688183087123162018218068503127535417753170354308692361519845973795664312299820788536370062835906685622278029118082164111528041329352361423520402399742638005633911895614381626557303990124234541551492391490355930085668185534217635927004978458086597814223892830892533778783596556062160542452830046104143763217985197789677998454677239540473822641874315052864869682891778744247428384553470483323117053905592847639422079644945535994468981158726807777668382016356497323105507853410274464496143899016409788821850411810004725512816145192536108208824288330778584780299109592859241868232451969162458692794113331011039180750344222691143093055145657684075392031826934995286188102297448102670500151703526443310688989851040926574210366559720334986946671013574708589985869221867342591518242073703740483428781567974938903586373663522016487074736626295328246425484438551427177632532745610097304492069448937364385488107379583941784910256120103304502619744577610204009006954052635395558040868551417263470658668977743278400155485769237301059306194578709274176763420617425750152719767678514428109852511531488767283713288437187562927297068918975172776859128632049472298578289665536016975004693006949158969112190649435640237268882571489899432498339453070626677368780985440086981282569692115725055428212817937871156441858134432200950588503707887869046353687554916512153539391044158191601787814284742334586048368732976220711107226247985387363456416665982384858068373984635676380476721572424388387139301799758809814107373730979750476358621923934820195839375483039051174418386766209227758102260807485929686250488739517889088153760777978578661437859525390442065556042911451051177207945233902839564588584005931172985491042057495118284329192137649735608914843122727582633065810615803396916199839347914822417680252729800704521305071493112954644965645477944815403895675183607115503882073196925131656735217928502197829802371224154230322067512271475776569032759133593165089480260731807518735984810039052901309134766060528994756075409580801458021024798148481824696945652780797456234421004087764030551214034337051419577496001072646459049367873956052869698455321955017918259952390494070244010368860501560496686358946414735050884566627621656569178416197438649640981632036497804239860963426175242271210173093684382581266703525056242379920526826556032363929161504290644163587963912080073179489856931639746933805460007489587340409439129441808930466024445162122880059813374462291910298913146014092801875079480815616050599296008904856321226303198008684707121474130990285964107510464904673433991220825139065083316383998546820876018321837691582910815378231027884936415118721805212810981948386326413037290157604862073537869859926844798563157850899749148933919346831871246597861034570218528423520477962499221513022487521110255549796972703877633699214991884648511229883125508673353856915425553401760667975133215938545657760036502979125586347180835381078626873078076097661311463733862038325809461010455531193342174978970779682431560717414859256563257969119065442848201249099909118217878067001602373002689829862374277354845564338738748592815995776640291168848986353369620635623395074291851069063895835599107710331201898247123048891817640477676987324519152468562746582942542877231035957118216473876632737875267490390096258622391654288417090826351855489911083688179677065378002022707444830820451747683576320329891665661253321953431132399625449372393871622531361911674772242630050407277275477000470147869386910269829440066679655279833054495716496229507549942500279889202214769733223518928339354056371035700778984765995172077408295256400923097201045700235983006393548350610249793360274933106997545327112226114857243766240466318137545359659287413717127821264724634956215403354493661246482919639465611412709749466055800251659685200457121695233921645800445536373671759120966867173837943185515572408426438676179375536992185300843330692329606763474039314673252591362625342624580041273365449113133671123005152466933136775915111735915313756836054063515677806574255572241133772186415192407335760475876368426029858736370375380559860564465921319059247739353564107985943920359195294968416374745976872237276040830918151719954653405780081768615426266713297340501323357184857056997217141234446457605147523083190577337428806172828081424255764007599686748140656844010299817811808222096241945473170178906773075876174606392837299225187903399769510403542241234195485827156538822739941794064041690657217977473515137559217279241651353292248625074090894843275867773892057065517856808976945116412589416445364871389986796134787881253281258784124989968815859525118862406977617663978887271979420515985083233832186067895273320317012388688516365962223090355923521910362354392165986292289277788656519199495528618829072663857832354436262984263218256873448825588387458475928757726508950257148064881714627829096570714517206135062046492378434406932597007765569346378888049699534514313011734379762409392925385804868928829404009334042406734871334253184090145852124973035380389483985637993381221007719159190272282038571369232833386556615216317517860253027981096490672080915300137047786511965133608564931659513022746163796704143783850678646489315036113902120792651590367270516514773151584683062630922047567303842249338474928752053565081858872322287279950959545028488271171595986245983754971641932153362177428280456130707261331917430169414148960709582254634175809383905565595241658165183345955853689218399037023229672786441740009513211991651105519050221285114260824451674246343519031304929538547991746885489760443392336978562124456931341925020552174314535367057730608750506377344166163698465275680328320700109549060808871453945581160331721098295815293679044633942510754923998141128342199620138160929282542910365774559474824601406030105419756915851517291796318375879861574943270365372395510176299295025999002147391386925133013653928848431805860209169038953086949725494361894457685229881354766600230068196379822017811552563709960122668164572702814755442807271483094042369887255980280486652490539936847623392957610982469156277606135915782244649081752747896436017276119972111990149857552920758584269093126168004684091437781149909773441341088161498761856208487715480758226706223383165472040436834712864421498858091791357892564136422520692506499228749034390510256248862239251277221679309499051099381448677417985344063135115776282793870738097898083564740316204735207357051112218108263772473264826067203034298707858495165792954043950963246164765677403748816023227606272729089657068738705158575251896721965864482035784979498090826301341418719941326220823966493977427356088448324906009283437998838686941707592130806186850936865648271335094317100533949411127323998218311192924097581251633282569980230495072446046563117351738104786749920197859871762639570857996222472793968747320055702777414140759880072222604835951030734188484039709380138182978279432915032732669643352126906421334151118645973841168294380222359882961505207538074016345691254572487105991443744192118381259594962474289400679801175019225778813766909040741499016606093159321591370965469711446107700038488616695665978347049359591236924617008053172394491666908919939129833834541551841824057077500747493206486676280075475182124392248262352004173865735269434959503545054126539415896146964556277057454102051536542330206168439361580614477923116612700890247643166830487090897570329896971750963119178522847179634753669393401271105482616081633430435145172286931921028128281371134555561923927910065713939163870078108899429214632409713216492654629874172685307969853685591291948419590544301500182933172457575506453850855416831309810998031882309266896694352958054803878353900681956116537235398999156337929391679730614760053941849790241766966241685205425440198055697957949730563897939215111730599505633536402511881548528476014195533388678586776246431329457873469139914694685156230446081905015845199972211741993070803867615320634565650895560917492988286997319219214781930534120894664257037055549579563628630923465228896245206362350338042187467978857942739624848010984208110234668276918291156818111985126958691730428357669636773147422761578065147434273123755383724452830963540892479919897309381876073031159813258668326241147163627077622107318913218797874490056118358651513539039276407343141320201330113016120416126407684541540073883944804290203005607854148977064190179344492508986134997213530537667956549902368696507273255558983130548630874604971205557710800696040637867463234872703273168195418879334563501523233487938183620599142416822811000052233569604024857354659536304891495740875664023054533934006449968382771074074226450138594638346943523699981330979904654243025175676285818764663998898638014261675027426023923260061341510754788059156384027945629501940312545888737667037575235990157546303831112429322718267919289905666688254289366854570401210584029958481072318685446663123907906688707555388453362514254890394819581421531888626398332311487836309721508306363774031623811421731466676046743887024116612024504158282328630139124956104781941709256255264107231883385627332645519375959487925559810196165175624268533617654807600997550069648425862231150952745706078489987081903840751061402812349429858164990006264142984102632103673699309533089308745427916427244685894386745251234526407278148002483734606838092066178688163192973350957018175628485217579741731760200409493312330706311243682939959122033132184261767546166973361063828790893442722205401267812750269360593385679674196080446453097991799347432505177135419302338709387369077277013620548926406190837407324530452950254261300238464394794891462768871821031873528590706113874696101063351840103280723559746444686243550565767420993130188902344646687832995747753872797743549370067211751450313719951099548179861534039029226264188702715771188490611829725331355210228372433530125504765145470315324497446692594751964727534832792947385632467920429049560151386888349725432729142938278689969839177893589592272029811887212454884370163636336225790714159289950648719888877403886605425280135283438534405802441344495196737278928648813875512419466316024285674586834751064878334020239068121175753758709435195347370934165047123638358225474799963215245560021199209932211315742804929713630775336177373270100652491087339445270774291076683104825289372763455387043291917622621798762970861741251890293579683898975856659532298129797833270244533184160021943312031325200900215719242108605185173042067306698220862047210727105597073957058769086855691929344083458029280134113650355665637923429168660577445052913973734589961751219047013722118011839013190401282793870829691677103234127677238007254260006872019789118387832126898592996633930363498483359388700528245935932978562113332947648839378192784896003355574074369305837867201329534666890571802161960382261618280836990533814756018920242862004898913941003010927172614725172673106632757141160383711249716453967116829281321244186641179631124703996027906728600394920938970112886427313168370802106797424889695765562469734933544955234248273099124500722299782920859415951819598391586715503209830744257213661753053462562955000050584443217158727283442344997985818593008741153264787063173420469328329981990110080218296745006356580542269047697232745915225970769147109199954882642902154632509166257177206601591509496467276590772987842519724182655429105637229642638867004768476126311404129261836493091882934086720093349273245483559702643028485209201183512166020764744050930064428289390667310832946608113969586210074150439919701757695124314433640931019764202781989178950972452724822695825356229101959640592085997921964781986534167524183010189611331489907280296043289428846916808782592450163231876376671560960219240239248644202459816991714852697776286955084890503130564083553767766454582944116545158254113042187215275014079268751331584258027799833037801865125485610578321543377603901261575403679017789637108224755467688866094306377740879844380800505021426104244956781268426981882224242140026021411296655853322631850945274871050246189809287742560473968913965886606500433994717981298558267021143127883358403941222337668811168033242901351836527934866002715537945431484528912098048703151918933151686110204854063252084303049665754101639653886764452947821212869557331788757576484143036685809128872920355268998068978387241372075392398615123317624289403161679271749014058417351187854539196223934639423801067285830555526170590056789991881019272786097919155761878208161570078091163998487033682715481434394535323090492872884993801833874676159260089141390559918915035852268503113052293881091710315360678305178429512783926818017796612831008388798725640461337570627243901504552039209613785174436423559269725337721268843518029903575583439620936575109676892408728557951305249083970824953966714629736530768526417322327700157092022360077164336031828524260177476130253545374284011179971730615326439731141117112004554519440723283801339987903976379022005300888372452011006284092642036616520019243077596134637973844097898340240163446944620960278486916111432342590139321913957093308191749531457112315586876254344173092305093629243973193092570381521852689404319223895265216460928376151356307319185446710100645480212499765469317704131363944312760755444836141881176254796792111978853052494954421554451430259783584860825460441160073982308844437301887605834392973934155398392202917601829274179641007816426085320789908945083924126549152620073593332506675025892398237629765049561821573561713976917284583833796931510014352404430551698129598683152177408509173566096230959097900219116981388765304948363477968132108541981887303297247978212179397354015981773424150577630443137349551545956900013826606505940254686716090278984698533093940903681702604965661477794173118292523664071562265477652610585413411036549476836063987098948851484089901338980691826057057625246174372927871864780581059715315703747839902713042527983151780383193408796226236621318309719496442311425458211409919705479441588335174940474789860405890619956496743994219458547490270741801669420648150256617949326380137917525886735780458411217703184151365108923859373654803797394857803939723641912988108935209770823106823872361697563592122500519653215422531304038627560680574193911235090473792388276992357976310638268414598015409262729751816659794709892984605732669383836340021149289564412813033949685234234295666223948036312505797997793243527462282313178700995807877210615422272590174946998722665524087934438706188706012069312848188747526850865335439487579241655566402049961211541950070926794272014480694769953477096330174522194906501070978912467506756176384915506763744549642654456017653485550415009693467201044872860229570004523794197199064520052915416289595167478304230127189468684465697888347883510333349288317838665952015265872413673961515388218542067847200495071566140471378700374947792859537611584816770005854541503413764967472414032700157323346447718975030110595406550140136919434303944604518728242064464959934867499643541455487913205786076723513038183276104032753735726454893958466563914624800382209254694605261904556689661659837238257614640633239776945498358656877460682495831819634773575273789827079119795795723250380815419719051355199722477392002072566773314983441269250596387557638988169549437034898019640072133785158020998374420087072274273215041460268799473297728045225190625442383074143703318469985017721571689270408399589596795975575809701945587619023085792043324784126202002577134656213287826701464938091791199559188257317794674887895068371513120652240796574866865691464825707236405511935694141237980802947420624295405452528682188137530989598559947203450711774566172549608236389842105473067514764424072021641215100320356896741092791011265517346944722380697871159645100274515649675966462432593705270268934192208031833454608407265009089390385224796289738977034937247438001484695541074428318201611204318451031191802034617415518097906773707047319340026529940215993278676788453800192212047265246017737999602504517075185860018071336570461114732973415377322722427150229685505364127795160542226950938626001337088588814736039425104937725700260580868473575719069173948399818527274072802501864470755900802119066220469732584454404400374315318703358315218166545816296654877396245483107105508893982594989319152816688217882736501343239855185898441179868068670650719746957570765356364195941743519424712187927542584588490452590030565650662276433080715367864670597648688297128140166436633574770641023482367640485026795603077261948244300200170724051333514089493485192637026232862217337272971245470644019446272285053135028680145129316033137164927515495473797380335040791271484887235808131761753707917249760675849023297464250071273391614939861934215425311105622241591370217021954927562480858896031249488464290936702404369047597189441511986053786728387453579787809738419488972992928440084181067571526284596427927106692432281680978313761458327140913826730041994119973141095003835511926490561358165203110542383558293848008680210869182199159058133825175923552292280877553045474994467305406245917079378498568875215270249526008848200000949415968014024230471020289891812334570945075757813150228141891178168151620656667832681568879630359278639680455954152535309147431333608272160148520714297360914509497372144946688502482662105637383333039795196523346693086417166669122185351588954633274835434427092026431329759962260227919495854287040741787519219392063071084712742568508419753158747717799225787745094101232494019993152166220824314412802513788447867527057422782151723650672107028191296714543468226620658255403416315773651918650092519506684871811880322070656984634748400649964942676771451665106813052149107159002204256579222140372506468220686380790928315840921040994158258804970080706776262903890789793237268649663817840059705328255495976605200851542750285790993261227031380357330949831168405520038171098870510770429268573446656986699012311954512674428779858249734471494908662476775276441658230574117476049286599626598630572926865803405939096332594860534260807390792482766494008636513424236263467177195208397533041524702102016579509722275608421273644401744694130646268927192410392218576464095460836851977125582824363792339672092058465704555970070818031844569146639606100744623720131826589091821508474663142680473336864826270630012542515219458005367004066565905840672987400272971978749697092084511968278751592339508558688836111897510383364611004184979267863994652782308619386106567745658758157174438549501589923272974283928985874293645740432537079085248304992619486276880301924328357677956563593641897279287661592971459681977534171539012963755716738659838456257117413876606800419770522725266700750295773847208774637753511108366634368241183206122209405545732052598839164447868499707770282924148718482112482899502900930888539015918821056002669014604270208469254409273260946833470173424151161998697439204089652253425774628632823794311504641024229007095578536254312750094573291101242653973215580030563851411545181370943035832663914240761904068554660941557867893165886954359599575844003800625721493490355940541927602950533128917759459165898820815125520648487847891224062053180934346419636202241767474374118320582784540507159636982956182722684611709695327669554730254260735018000972882858349681805846102187448709074976978106350808888913722303193623367958385077621942216039507609264917957615838670353661585234118978793170343617757534700247321291035977139387249706670514557569066545942995787030690497356740868062758797013603995469492169862716958472591565637074401753417320829025571056452618159647134951708714261554401636995054341536591639318038055959713801214794649487277451040228340796800208632842166224010850891060162312768202964115225853505593840674576616762877898460158784277996653480864140426634444500469536130427502702396673350017688265488775239211043539236251865504701678342524733897081593577767484293267652116907486752764524750060749807506314719327208628718871717047894519208430159361263806426588839415277851404956834686122190104220477759836354603542832173874993932200485573749602802391140710227814332791643099458676335871013334215319696648312273645014609651099438810451750832937348729447501465320533848487359986330228227118119085205657798289120782786760378268786114416561011561001026822089892399001964235415850737395160425906511501599314355621130429213662104635565753672771442103077341481108114430261023710936449135292440693733291206652555657046864339994590447841476388278884592234015411656763055131376583128356281905706050053540592519340125461056178324122102500047483758188091957708669873297931797607208439126647286357640642859830234196040167687692088855744293966872431985292520693212438736337704022031091733038693433345407150418519669644700110118409662621341107690918030493868109440280049048576935351538369481456033862982791901510433148039538304130239106607359341804493668188737111732598701025709596483108886231104911284263908502455920102145676449272837430992302406600437757167908881359674884079081349567066516086080289390691905885396347659890173766599646625495178332141691757354280490766017985898223602106375668926436204090087686936301518588139252066845915881130926470233076874043711555617451554839251589307151357466077928835323765624447190977189516181435420976451974459058218735887841622940136488034611788254577658859971941528954169607071900472193160002744098831131150510816119055084602834755207783653170199016233494441849107009782421288445730160203200574036879186915616813587125813783496077960792953511497527702955004789099921425299673583452515444043106391724566614583025077858577516343710241814169694346523682172569921489902804287497482266831701926197272756926826526550936625897421230554281474845924182442710779072879627233745613165743336087231026285321059856640955652039999707731161937420156819622722120285028423375928246198453702578589556687091444655644145520920465235662690317509110729276559764434342510683030650645915979611422278248253136516476746051170169792053187926466059241252486033589292490388159410124146067983334096077697932426987504611594925601606817893277456814605147259925086324861613118545957437966154265960121319523202087671348021686056249401559297367097842980248017243582485658272945553270511316371025363301035899813117430358373843885926720943720260921688186087163858222019458911246651974620680345863825464445017406268519453513257834401476930603935460069694128552045313787847390240538444575254197682655562622657660279379414098108562787118010734536938475928675672547481813983421246008571660534121995400449829770911872881687448138623017514661276109385129245205909470500300636420727493598649172910864517322706616452937109427967237414309573961204766055442969114906201471849020184841691008525703948512005289027695313661568840451066881613070501169801190724238586353434470430843259036905397108242065691155053237630133797235130782692418707597489316369951239719694016021654669217707401814792794297246113934888287463541780995568828648517576883925371952769849598694294967121953055905137282247779956119325852412747059594262698460480603226564384376082349469886601877409766320858514895409561438005887715119951360444274583090084311323887859279831591778175479839922347843960407400986341671921451264300309055523800936152039404612351593258964612744921864913840608291511595038205908991140503727018946604446876079979421121012860546050921425683840687972146033696911529280843791524617872788637436383822227424929169849367489485479328895793312786995686638015716904125751896280302741765215673800635205149535224599112367880501907441394953644309713665687547749369498369882971517119951831301219861287132239740129838556061141934501792819974273379901157554615138039493607651576433519001744944936418655712975518694576995468801774913397798673858178850691914579369882984392782881903263007079069243489616087040010257782491505919975926888883019149214880544541302658766874774487477103465692021716858605389124648785110135913276524053963121836820206384594811767547052476917346049926056562023190641676420115579134167433797670019030079328604427070879367651886110817969243069191940703387288804984457387281715175943998156254050127884241681016144813077919160412889482235009775271395159699423748507243347859717323451434075303725561865191494372832848213547125379894322370885994395867323626686207610297732070221035774110563940865671085179850241460493396438156326054239390028535815570521966120105137627026885205790650182578308925740236081843337187889103787345203678881904078264932063072309186734217359652289032046998953113359430022078062012667272600043324048353399351169075759335534143682703149904342612515645412458417255649959447996532078024263661558208806751948720251869922881654435280534782775694349738795267132422972549721500327164755863900842472978185199073236667291848926466271168423418656751647688079562325438914745718815737559224831229699490468180595530822750829375225307631259445533266839293724968536636410878065877116545786912671175105015261495338159206940474775500692203217045093287427308142118536674351063781846253695586323219856622299490770649692611575218157921350387447460875730715293878521843350265134899037959478791931773568087885548893846775087473412605501789649343928244773417589922878121882173825465161464927775675467500805615737337878358582896752299541191350196481677362828720900095855843729530226246644863697938868461411557879390414214837145438565185355505347412699365132004221221474164922602044041925600277204021563178170923463806314586988742522269921175736389626867997589356339812827575541669894505006148846214557695363057607743177686802124299906871820419332092492994013341090867752295086860164803101099090380165089348789927652419641837481237905949178671819418948424192271388533333203913317725082910860505672575994803035085837713797915644470229867912237491755030141576736105889296391869802147390395802865093811797957511628110352647057052221467152521922270737771492299713513538799911824816726625545650346407531748153490201584389587694535801845767144142652966409038068759646598283143471305951292703078592799952273681279950145749149606511905164293415736025205504411226715380719695087661973095915728738633756053671997296943472451014022190864183088001664321346171843362033464325031638572936038806873580859783020564660646343753735924594003293401696296868851299746640630809476197033056945138376109971909113753673312302190446342046663955478525930821813238668404222789814570346812813966430037890225403086831683925902137688614758606299824843933933528168344983742665736508819021870571211248369453049093768181864958951905670513816973617713975652281704010413876738282114041179048210417565223426523870431870169654110484831822775454919217711316456399023197894665635314853934890531744322222361047550276981446447471554987497658276321476259537064167826230188809831478216720059658993618220916209633768736128515581941320995857783941099045675560753696473791339532715696151386902991427228588344828507382754583285391270100180429413019620492758233955238119170017351086307153085057181201362444113224526878904176634407429310866568329147336295136410553032100191249039852705788577984634552543166443920864512306893452267624595320104846132107654634863146321765030986546831517749562818450865508232602648346311495837940270785427550397840204301384199478443840063098082310271853235334820433196424819074974115477136095641719193950451270960305325239092327059494250138802228362021195732373474469581290414626939909158317152537792714105138229915648133096100037729134522073651551552888054456666647958989264801613544223359549618677791855539613058519741414350046118407690793495771830776257804247031831111287575596092063773894827723062119846751929757089713024304466212606477931968078018516127070949027066056957331787176857900419811134181900664680205505279248418225402537547582505824511086259844062667943271972121632960147142080423005912137125689934428307052185785677120692798009130465156133104734876213986393512397103618031767087459489486856463890689495641879052964443039777963942985797451512934469818237709618873331374679812133334260631331920878095673603388524189243857555161061191286027333715216829107790286051171514231480734712373584080780844732487356412802303380837939645085000330732213388467531356408717853225364362592446302305185045851268660543816637681185760872550899023384517031498801210555176493010722056903438489821255746200793166017065286352030389396983567399268613440484493281363050121811424005532313152979686935620411543726449312592424874218192032136803413478146639896927538426283246539284083883688023738595246614912184421295956616433848167841673141134063868110748998306402641267339144424648258281859951370142832089867107408874060577399829804896589090827035977569624370239004151455325567512707995266450731894703818334588987036463277138404145163668631188841239019966566764903624392979897599060624101109746427781878157864115977496311603236297045937196159078169621452587863252015909645187239673601968255812267278020584915004960967284309707971186410483636575700248060319814210079624699559504344653520015392204248023655411196743436858152619268346505493891397430482186749924625962871184715903231574984360047369604268183234980537143979970744398891470397769908605107619659201737791710443841278310536099958851203423557416070888121050804460693017802521382775311591817932070647069517629784294023054824242677349818402464053756657333338310557690022261191762679743766464280928560431127031710513963499713223013029102000018452943840997788699294139444693934283815006124883883537877695958775058603103801699698990179121135303039719706933525093066316279793696633012108330625387311761237364094532308787581776954924756800600833313314077203502592534606050327502338892605515532147557160357916334738161020176032598555467490470866010303362055213115313162724907217751461458868912565453758784205881651201972989082731547815216342078675251140401762164782543088794859841588902858572222161589723338173078340555564133399841965130935226325166477745082688144649851452351724928162056440612967124712408431748517580207601952696464807382376895600450620589268828098395636438233918946398701783343730034335970939608248741330648559933265560319028991572373056733588709078010442641014068705869697001825043781246511216745919950192868209289687332558969264151628078274184858365337170154700267616801102248604917297303620048320696503794461627193774053114466728283764867506886401521056774409294290088061895531593294620525622209941140157330250534327507061815877013904032973078854264891397985723616538836263571312407113304790725467714848484485383699953097282451500519319317711155909194441480691616493667840047065708356352442952894557355438065910773311331181973627828548152745265717565900140622697729076723326139108067431323683753697885448447567958847629195804128557965429251341917286201231481909391320383538015806110723252559010591921685459602206591329981655535392638257000067718320327061218386638036305209167167102406522713085911767620442507052751475172824661803606485444177356596195130323682485156679385889653753600524376687973490188983223307600187256296269265202191602894382097215596710714217643643878437188345018217618043878605365363726401667937346659690765919993752246526962353194295210089353907545428344012070451092989467470920824017374900561513659278355363222036226843865999722508026314540855225522047781951164958078595382271849532980858033662220538424298811601521605483685315792068210796175819843026151553219759893783149372797359629626246817442269468477300614889135277275643472191768862104438798172855910703262910913118036779687075087722620490217195370243940710757447944670496905872432897463633536327397487995097130026548289982244193784964177529540668499406899106766994703639192740820757672721653189642581441687516937390307939030889667853762454681155509029228791115827701348207930196029927355886630012421796455854939539544399381163411174782934219334452070408061635355435017394637076734980040876405874633299920797773395110838936371818074550072300076223241238967073383835623481571975875011599805026702078099027590138421044535264645184189483051268355745410603147348245442419234904254497350242591559889721458326635268590514304267796676627687503844159518805509680978776875549747833839767447117060114324625618937623620811784808438279741838735614098871390256129459230881757194712859060376486145040117479454996581329447824713961280882215353452927173075978979296163590999749263099285680250786350731482236645635421903277358635460840011585139139948000386527973593383046057732514222201336778960197877495830766736199794557668267780843911891902291382676870965634565361887231155404484911119322150256693875756494228041688775369601141097097189613618075554308553101117025265661318753157985868019313614828149273432622675047009223164322971836451311389409309271524796676902972863753052270182058075519974938450470648043825557756173511195329379283114324767158658690382201793441749255815676443186784327501373438776044567908266794709471825200577964434769934662203503094888582657993533957973993604452214929611013476352243365993096370270224215417578519640729410378456009229351007844861613406607227361041280332445474776295485503487783652154296871732760025934367713698360014151205005279355072366337246461019657235219027856221589508962572914672386179891456220321633280775415024000202505526218456137719278609757881109552763306734591890695607205818870172887034466279050478873029383025717445260936619171883818451269220006884455401322149331573922487026226016812697335577582853816565963260367405679500754401762329361589252216369070462053377123579797357346680917992903848216284809251716614667044453689600061667613864981634168905107644820941790395314844420890879050447396153660001973195911469766121147775667959436746334998087292650676992108810955027444819331261565346850988794629541308649851519038745080593881359119705959473963454825119757332622211358328132372754777560593901597204253790414199619411047962258511816880718743213975763479545806989012947000710390611706983130258159076361402727656087360361849671552942740047614736130053688554641567678477934362384245973856694322340765783572794213589009349476083232344116408065934865325473931292712274104860094439842196615190662879897172262583311791101461578692965462126706389179529658247447605724304739014115405572395536646956200398121872694385034820707225627508619180239341017705519811868589212488859217386782506603022371948609513953126206141170010038253000946201863720708376782007286244159200536574530766562129639250633735904293878884099590539922384306912209114296643930286623336822330932132710023850391915985341053115481037842275123685525917580686771781107370117036812031741337340485127570172393653701263835220530181421163105048302910229611827227255908227702035262320485375273894804106019370465200878723948814053510198541863007307605686880849505280528028176717855501428835972140136268525770862513227059022165521818252283678783730883560986776942617122859625709567006781286411445215448489054657962712765951195544816058208343789519727881736898383265909485652080141371807335238871361818993153173758129808190869723421522416601957972680625270342003001093113911414098598475893854350868182504394029499945627116369934098339352283453592556559637459471586255038914788973424337983093678274077389669456306801623688753751322281687142217730206195880797965584229425801993225722438835847906531638772716474229685945270228568664720054306278017341506145062333986539835803947185053395043255010651018120546565928001003574695509384558171568648122670502497813973543232038676071124553050879422264500237182075682637587371516686684471513354000164274424022546767708226764073648079375178813196598713584133348433681332464450881762157199917260280063444575742245636476926720747916419216374236073019648887125248497519483357153006959209693645014437130948558122824618498852433409524922639907262689243499848972611411215792434332720532062265976900252713283842494375842677026337752024615613338700065058530253392496019075373295420373525876847939027446557082759678368123336554855850967289205331349537731844609132324793163064113510723709875572774873327260852812418971060034398125809364867101421797767182553208482161642406574643734425335243570017216390768113074676999232619754110243759971869489531564522974295394670784602438624321330438648748881971995020006323151153879690897365276571448043177135622218142692567948538740308589387257635256597448169938530791491900123200767824927774870840693756685718512680244024846516114054532941428164666996371822667898157639064637158823186728313756267303006647314194479467451675897173380679107110509223306888184294411571650665464565136372707624622424857452834145865598533510099416301877435172616286978307804543065091119960568985448503327615601521870470789384868993129553637131750926875457152206191873067215031961080471611171270260158277170119412671040991207508562630686833571586202956480209886798394268855694805103497195605426766905601280184685140789923032800907549333245913055040480478970650324688820513431503849618636554382532768180825679014640119181741724528614194051577556161437846192846570604677846293912065282177719710486736814889309812445878860315028733886596648076930515275715979090544191530200784782282362505055381622617082531398720486723919455284759793400528776368862190729864249456001088333658250034271458912915794482511657431265756139875363626301776899305462089760209343797070758164184865765674124133331527789561473752172897753003770543642283696060556626519634585388744883140725564347054987207465704619982833421634442026993437895460979585679215664134606364224553675787281566822612531764371134218042155488999433652485497677309235907088868341048488963711507169410473886731720098701909948809044737343169421150338130053814846354247383091970076495230368402798072215731203629482800139152503504898995362275713585706178015813215244620689418537220140717112006693445625089018229558016153399400575019277592954100884658409141865428392798592708692928340491892644060442491649774587756803205936846505185480770857426698303795765234467489599083019629533637238719752045629658319118152694436726100477718141134992006537770520677459147560846731802755784810898900544824533401541250277992239046836721962018489400765825751289625333597312627124915375884821632564033471779770989684667968925440859815756003251362672115356501763693486950803107992150064544640052318416545780098746657342553875944405199980370569618494431142300926026206051396001371003113628722962378452042093096639552369537366779011395945208779780587790647187636938399429025731633114136820952140057387661415283847349003566395359248582451752473894074685184400994708639418394502661645843568068128229147842802155934693801111914707986223109468467662753337207610701260391073593081021336023948266866706896029402485496799347180587269898300048055823490909049701934076384007214334525210621943332715605449238749406487910918588737450193241443370556565720743240171228024271030034518128224556863066096888334720106573593472981956484086390187139695164827484308685147399156812445314949918554614974976037847672574828497929413051255997833608915272771772019224719224950769771033354066597133562995635091474652560941077018436120202997528793600284149708116023606746193253789695256827012647300739138940355939611385982683039044466080908618440289146443878329821891809358402167976078185326057230875491438554347625642959666200490088348039245710008064664050514158924611792072359662122790833619397280248158339187518271261436992682828801334794148094675059205392728505086348148730424768955666588019270100454544288993578018399546678248437834159563731644231377767711971217142416832694073424417002379089547661935842720849353839905194255380372114206638159037738184542084979839547366075479556069076925539605439864448425681708729573470085346626144361153405062682377791280260269073489957937399407896395862975750232276193755524603569210912907458904824996479684733842527535115237468496771086965648587055297340660984254106583769144237830243267331607075876840745266990213625541300063826329116676307318542044488530473748806273811633192339304774584725192137630368624706430418588928846366381631128736003221681759615954998074785990858493062332342914272005348955215302948628733529078421333930415170122905818358992383623975879080929008028581151507433970959571091712161496328573314075427573737085136133139992582781724714661511210251099570054326582066293789064572558534813487415824012065538828082335621807258153853600516259799389101442684839635851739611280713838572107015472906852788049448793536847931681429685843418193569375945689399266876520512385782417524491863892695238284258733057373165773373400323994749775076744978945155672405984754925199138642502646243395855138933016265682405030139354336422973453295415607693157693332858262432600482135024742858624904234540049222615122913327119429319676779451286584226971384705483890014082389148399100108352820565881557935153318420515755312273444885418095496892295411411804191994543541943680319950445214118618872821169295135637978406578735856749069443824857564239147663512639665110810132829534785525023247162904653655523480879511539389880550613567832827011316755871054588858998494781884229968933324091796242639778829038594385115835357806832014847317694251746779196578569046103793463080667554902897835985418049342937778394472971969157506189660221743536635428225960419398634976083677340443832300510663754022288904915770457242180691349878953393948565328511721032706926867395260272097871536564356117816532757774668599721893064137272954181673068774620905470747798113999561075871673076190066414685510797196151730027758516429782372607767163222326980950338570389555594647670296693327911832667589252801117555868016972015992198655590136275368263155141371017971654723631015624480904348139867699635685613188590331141165306166267233576625441719827111336732210322330643497949822337833863585878793757491535156322074067186380603866260200925429307567424292755252818503632508110425728069082286272578838039860521184739370161054705841670612054321707528170647875861264743803717264391867449191384181607474536635235127295322568697235693454162486746795514689941276827041736354865785870316969198107615732557583598919369223477765408551492035118682327537402845933979705978145910751284700898109866861125735071848342023314017106076280922802651062584367281849070026362718201534967937729475682424937975672622371011831783059743024497839501257130181369089793752359468322958238730140990255321375950316097501577606580858899436567927167040664973399393930700165825405072641733587615702087069451846118997532220027673097915861420387899056444651315592452267821368463020308633275866871057391038888880121040638846489285029639183821966153183136926798521270506625974018626555393197651910226652222456539612693594587244385226602487361754655502290761136805095842742110855420825843673431465284956446682516776481003891888237577984940904633674568015657515455833855661699511352825571376195592226826961024921775422005538338118424114808861920819567366270414211038886020430864521488701331833103490511646255673391428594672211088287199875242516939436571053432594355756569954756617075700510578050663494125634386510246599720793028478893379370516208428935928267360714282611463562227075008781167035771003515459011065466971025475533239383440957324281099258548605218056222160999230848145677203187577183862741907506833781847396949635151046931684796484966517115895726559433907871493211069334284800478098228714859709096513954972164261567126479517680535566760686148149982591376090435069433673846030237463146511468430801452893179985122668689211839854848541607628695026825421599829877945169943842903066995654999465329865119996077761676473416503213596512447797414556069129569972046001193662345399812915199722469581566484019994472205299900131077441634977101423641908181385500783751179866627140864320199075940122785822163934318649065751935766908141818078786541522136300591896504257097839299573171688295482374642634275489696836436546490312296733542583696675993683034260086353809336474222856567185344800352372998015980833726604951933833498958359994962194525619059017681578924492831981268988266625369142067438815094979819833860858812117117436227279535107421376542686544002816038529433681913972408761934630118006217196103356410212465019306140782268680475044033310657153693465035161306750351957587914313121430265870123165602132751929398309997560232127609515568075466392184787335753128174363526024337638334533470560011398028248689153754346463423200365726969527286960113037682914585788801967364923351242552865625054950933736882686910514343382078324626355080560417387463684634926370027182998741505165307086699652194276576183126185293721378587211746589216456933074423765270541040957824706909094744969206332117716384490451566909314828293700288561528362132119863140482917727045905315707837330413745851308732139320670672665787030853862887621798462000892004302168098632080038395355513242498423759285072946343018980954879513289080353222076869838347984445465217446427555464886953002224255455827690619458342317850105542029835843863354595990730546294785274933991371291768778713159856665786219937846606778244247433303883959662129408917018711191991470349490099852793859328104034328529322006496907359707763502385186858491197978776308510445457477060654826890087934718865966112729464503867878319306152527206818269035105017888744207919282445728897954225219895398005682481882627367307401264108822005502626374715971347212905050882708831969212479107547338456242698225516074529645230833110632578666902256990437382163092352564982296618508849722586475205169129370442896176338362511031730006229431408570901069221874251095974003080906681504768424011563025172812025242217571414453553136482086847142840176023015548018111944658118162921741272053849194754210596864375220387231919301099543479750277809571808611906970861342319352503156188055664439400151855803434790029514256649058262792509946993912238015081238939278464969359664743573512471392852429727216285231687331080734823241921930296150081229229218502683897613648275491016809407916932223882746278112264741711140647225193819808811671762305783573011248124672504623886633563517217938180143130552491828212955222707031213557001151363137620675794823467254370844669619450801821662567195203789614660781519312129060138315756227445543321772037486888597654589565345024960538749446114393286617801591300283265766613386620720577718721947410578033426861296150731494968735690492326853493766761742919442226548457703013904813526420916411222581870782707042347686124536484218604704222055209363939501445604803451364998666453988186413814922891450875341559369570841623353440064010860263234860956846967271656924136144838338547416205751208105218467232670484661300907448367322599499526336215875141447717962979917988954594667447430152420896461170564488925498545812469821718155542745211817416467752081055306126253082994589519948464911081389002812441937333737425340061919246375173106466902635391280566692216804972305900212792662126208026984840311817379785620927083406349507789432635774178460518485035885397216809045005105581019418602389693092120858876228823248670613355887160963624882692215380669328617133178729574937798857261200234843986288160637572052119759822342669343166044954621866160423102765675148529370510556012627305844844717422085995753652088671918037848675998160518204431719601410857483607362282330186950880603331742664951520737767820526997187393102659734964440680134383307033889136472974865621582300818290702772611802250286691212119374424000567005403487179262357241403266862066120222972158826988772819911642019901838146998732211777571295196139900947731515614468588919408098212335830037066728718649284401643611062030680210407879532633200252868744492584429879487900884697954898234610196832549945491237417020658947265933515692676883858706345846907583340742280807732585617523146957451691831670307426313132408976724192067229083417539341158445811744489984713730031102380600991715329513734295925332045722788901346022824744114882225674983905968355354767487998959289971787153112708405033249105045471498844418041838901633929226636782001939896274552465981535272481068475545908327723067036050893653224734994743895915483758703017528016299838721506006630046722394879976135481829660360199634671970455288712320499621971375483554364855684028936743364043528295714897821120261410414656110551239819953703855851493058972646409947911524326664982768386423711629830344761013608349049748807273399554457526418838777406983066015339909685590810414453734836727041458831930036227156487881797850558067863128400172493754798385780096958848015721069737121199625934537526341327695666405631396626745560860372838853397499572426315663434059195551535813352499536760161716501277070417092915845820099906212924722472132016394885611306275975625678263593943959283071900801968969613299642414764322292592818629543335869758752282543240459953336726237741025741645660420721236944188670800792413242317231636517300881295389550160741061123826241252663591633981394358619360355715863065033384773351867749892940960367066396172229849285221168432343732138595500355491839387807228827092708899601971039069280360487593695939042737864478510717625907849578657732424714742058058973572526148730420550995066754227719923086250658821300407988558239713050042614803904689577921853711878398889739016178874441238648849114465945601219718093797607867445995476717130485255843133437342013991627289766849412238880630215357440498738172095641122269052290227464397763809472245357162169720226826171325641813856952391437462118718648569829239167209133102667454217852289945139888022630765474330011043876567851328461541041687601468244346108924822852637595352954563627329160766253343366969472267021004380231478983046793836741155216139967549304453413663130335219791754794356162683807434327463916729277911053299321719023756690821045400239578715218438419464446109430472205320780207466560456032966402145557337622558486853874350821236034934325818959589246741974566409225130531738881307386410196505598909149061658000324787986694209969993928938905981356374877603587909424690170797677041925561347684378118518248118533823355117808875429804881594050924101553397470458228229357403133969441536531861039719468275711658849249816198137146501238516864006348663390857562274788006612990957254990385771219172235695942009989826015886265982758108367951661174331773527990667113535793007815801807661111007594540385176044671387072382975004002768260366403383528761312058532131366784319092453857203607459605728226816067324483238054667398177283849137596473443766660947820727699483016114311096277706728283113715032864844286222864161992001204633462033471583995562471620026252628877826903391006410549705366459007229448410402792732123103478192493883464415901958380696801886662082234546626714670793522406585895774568890502159405404510425748693471732584833511623348427587352568895382623447759626250795192658612292269710653553788542270008353836838124508446009793478940853159174653443224781662929934908547724997496488604097184434734377136904022205715219279895198700314085947212019754585696757830689713522733700414909058415839243605402374776249635690748278898870346385779639048485992871913650829557935042717144099092577698031110229919353634739947099151171480353168655849016759755043899064128569356969741188316715844277488068989490347685658007069966912478758524080832798138964118860798109753941138896333696103940143011850685366524977821784631783499292241249610885050630023658123638892544801912588954845519052498170457301691397425540619251744796400239015542829123698200964151145766094505726621196633764897815048639654204941921010652457110459382047191476128990601934123323493885683318289025722567650841971864558329142328382044415998876498166800784469612003446312626330861970966155379373506583207285923323042495700007566134727713046472657270160892326532078767531028799684639650714448981420120795115311603297547109615331073995910831245188772654187491996568639966315176522100341291255550095673797435826692381306640152060419041829148139733936773449542615882084723406957764089011900853905133511340434998990309332845847492123453417959443828803992724623126456450550131061682403728572231669941616914438450839692316112155290108899677236454785920567915911662109037325841372566345591561074322110744466504855454751571239231710034678606219758098299427814312926417231815948008826916415698925782970262914535699174064859469671983864776301210662803291409068683618620656259449993648526614821346090644192985308201363527012850688975154829929500330412429199815146181441555280471437487711988050475175861464195724699967560977569090720129310790162301479950633505406322360110975342292058882357044419878930886022473288639568271811295069689244111486279660863451753838703627689806573200797586085761556491290598499266983944806154878781176402212303457157414388893163229018162911600354087134411001784144604226201474895439239607643616791066553543070030784305107678804032896003540210182646266393151511650036792745492284055514755748982404458790700418920733585697972710116301120940800928984746081549054162798152672009192980173330888467029838404657126740037766840595541079239294989536149787542864972458688149698378065678750363116678887107228901696265373403294065637573574364831692454014677922790196927590123401432127327857206076607580031033032313998122466457766454383365585669558150586927414004122703642588898485010266180265753015894805988378058359270288971379913118578307285447520079949774692795815324066522914380921462043564966063641756736593254629504693426033877862447002745929241758634926026860958163443282194122890726141862439660743872240791780799234965082329005549946424492707442008214828740773378745024789907258466400013510184262032760710580420048577688733715227792412917444900077128167981452584034180494339088330178892567330990137242341660709503696283648137342151362493027426918011700197354432084723255218785436792031410469907058978898198856579803754566635232266137211328537209455514318460890463696092915591671021216438594186343705877732317376905139289183746467656869550179254720316777086245732984797836520036996013686588053223416484297578968534771759277916544033749473661335222877657300768817557727186180011366778651693432557925270546956728512137872311132254795895953884239739031153445083316870376062677594955660784983925079666134806328736979097773906100944249445793342510368011271785494395827280818998018404245364828407000203580179519107212816946276821917872436139430661061662235385806549067988850174107782959419615263766874585390676460700286076894308860197091434790928468356346716083804075632980162106309804019218689987635174996231628712859751284485174097652532446404944106423964111541587409529333604080097519773187830642017516111248678570347467700189061583985965434168635148629359228308235251378261060148247450156804998500970132910232439987427674780460237966060921007893191820311375982074468013363022052395709850770149806881917248501862505402442039871118147173156694992342659178601361772447041514570510749032293220013972330280694947934175932352709250431229665334255844053787321338853119973014702992904436344319634045971679373752053167240928222099100525604261383205158821109640476963968326602422656512460154528605518369581801689809391225282811009690952811906736810390921234892506927528108746305464376380150107453190007443401227773271172652510406861693763967274219908317576441806344925659202565030896464106324413750268433547508725564631642398159749960437166066265663329145327265194634852027130298992366976096796128648372947001590938850602173258743842115910614409270867169806070932703646738999187352054886458196409454939068185003910716921377821430182952756896965690944530521292966928805648968636814315847855158452708591997596431894972577229965940832880093058478570962375761719097362829402907586174492721496124991169555405763062227556448234022034593574856156245389647676350414443849455165243788004873635798950136935640894374558987851909005393207598761606545988951492874915376511286837118593378951070432942943036137267027950801264301882759182900129025954624002094672370720880790615127162063873773365638553570458627281157295618176325713554982867501773298576728333963173225067780208000878165143976752367867024728698380889235445238307525294047430881329837985460124837973665057224680633341021834407833652613276329151779177643033351009482921564177473504540175247730718491456460802303870104367925107068663454942333123782681830604844334308022414131265802365547787713385696914837083585490814587122125645509822711967112223120207276742586773990493228293753389505418853192101424844234011227543362164345999681620767364155975122127182933551065656526034038876126412319424851535335565708799184856759611542472447595989149804353441454205192999503252708785010117797384335595239255399138794028323752716958914733086505699777782868748662678221296123542148165847771012040813029114247034945382072193529609563689810329720540596644170584692526620694632670062113973041022801074838541230650878392114823818855155285305989995678459133282305480281496267456862590990126218011089325121652420947133315764766975628883458166492617439273039430284889239081603293284630504081811659225897474027687698384411835183032596207206469829137913686939601607418620255480375531918209880391547436155680857894527535576227628491972321235967593917232261401123657716582221645176614291304250085631656585258797337237459752982425859036123885043710157868252496904416057669115561462884676910654559801637398092990327041100994771888224645567872846199955067673082569999029090060195173327938142538911564396270580833112053714476696704712710760097821120868837357616469854370604751755794984699340668324181234666416240226702957811380663113169626244031927753974959919135279317644240782681293760055613770854991132298318927973580719160667982386602091448820925923197435573786353760140904157334665926119446278266396371956027468247255641320875222040621266053096595507769211299354670269348037737825654732750617963020367507100055184541699970184020420032198610992665332225750042864101237519647137874298198641003629600709867485963679006211793583801730430455520076422518406490396218105192649373619831132284721806641100225075466850091688230178382320405876093543824387543049560982997428310972047438069699506647987182537216773777980975548919459516232388122303219717164923448107017040921639179431965208378375703716645574638464005595998296429257687242198628655890464851979482219701269650166817637062094482657734705666523814066085298941843410604196236947644419799671862321935999130439060148423092017932364689551181156329788342886949672054795759213137221273571199543681666617002244354088145361213251723142482316458624609333385647286503600049047819491122757607233638467594019941223069157561973200682997352222197241901798879606210688706690393740815538815173038141465237833180619145147886444881156551086987008910211610309694360971657106431515162171026797480490714305376965344367575077306998936565079247774716844108239243143502355785399421882971106088127673922947947632056771768867944194789274381868855480786770623514036499964855077353497986383019724940620412159635223960080534117199965140318056119647540571110277841833149669367828321351652117660057003605737902318483043580721367994986044310839952490422366028216549238772347629907359450492176414036697533671853499730775188572166209876446264232050946655949594446012060551062821604550155107033004861500512117638946474404371131979683946655660474475255072990839718828198345978669687722553820044586498261722564121551868983791987831868121076204621559644954686776170935440411800117724859862296122885082450540638263991431446061728166135408652183125846557214084641118747185721173103979215435167842491068269328811906633202072735693806785985417528735090601841746308374549224115867755917680979183477815796922555743002975066706652447962879446731295352600725151093015637903088022924285002798772614621811074502568917448426066195025323495396080578626210595458249217918678571999956960965892354541676745694987715735759229511064424812315019178125111594312429362651837136867411421868943555943239517669736344253761019546113331546623494094764586473574465242221149974044230205376990058198904874532725639318509611681916490716370888711288026062979087902453705869939128950100898086401564993987332614255293355602628200349174645999539361168754548247568429181273378820214876210027049725871526084451584837061285350665832865334538506184836931851264259188041420768893859536274863534114014520554235421484714244636353090385766938089402297599956085024733335776450583944876188423454978069552480398798792857043984548930941425371983286444974486823754019636263698409341305537326285560477311772886592502476489485650103177992638605528573273519736483050555941932193408731789822343202816076254142792267450870656079027107650964048269625541447763958132517951779288226568094043084144657261805369177100221212602864384043410931032431472155636118683292194461936887798687443365394784451386200596778373474523783951113722059049402686272409233205485621534154984911898213791591322125026714669808967810661707975622656253757438005530648064371541629075330819058392424957117294585823419874050324871458211481524494024911400248053100612020612039251292208571842645514713597464929888515523305483516116224651187322723650683607637584861642685212554676538261506928694275878362414913396010468350307719503587372187948396451415522808986687651949598471340495012791951300614975967095973456719810677653398921988083422763380150223035074862944855709377363673783024218696041975940178769557332623678250195783294544404615442403855850632367492541756884480547698942671103097928871184297656825378770823189486799834160313934416706266246883531932859781638478095233587454232358243706059634056029968716151709943031925513669410139019793918677336194721984361718366950335663470442360988259905717752783268262037455125050306833335796452628554405452651352426358322953141839831485294449169166369865346763811509083545859684474791091663752245212876178467170343221375689234165337012530602955663136070411091910329626976029535673129236786837040196783218033059323355737648195416663357763037653948960889151431713583045312423376074899218857059439378314174099904909674564667130368209651273903715459126227248491380433808097159007935925147674079701886040893138847410178412927278511519480561855164762887375188831493920697965414424002414082012494889522708977047245110115707374520707379058502694816144086934530660912528799929794785238803441936863105314252175926810938420932233297046550870805620113262461951815044735781853607668095091406136437538953364798652760482164185051916344239484001691890976484090403336340363214815034637825697823791826187522379153598843738237296559035023817530185797014561352305227704752841057112532436959516048734106555880042191413507164275676722228410089856529138150896753026312613879641983667409555053487147397145914924411384232557352709991124944811531386694104285744932167679332659835607827482618924088006759779080470286265556375768563060740743249782430954557792277881909000805049270949058160767228844764429062857465450481644977005509741572774036992696804753005060181680654892892784075292237242380795236520803032852432201823162268478739743833618596742915690429081083969659245053203597279519278332983155430414162685054841920861341564119771861901235705053882018335692222757925268938565244767427028234925403773305218945834656847456311075564570005837406256906156434418277946850912978348110940486800737393037957759554050181529495352691843680140475181844144066764754167933928888635509959792233695351933608801727716335310527284681200775605013132881237367947164334553186766464462354760163524879375212630570536122588227557091500849254952656290975194790690377917248920348368422062961509891770059225314230775163634395523231528394106789719023989037502762630280131790998214042550081035030229948812244027953800925267287984997790833477462354001046214273484247853951562319031953445271434917719458586515366365967423839473485547332587872815344433316986479156332481584761375994079469283320326525141941817318547816842425228993773988212565966438979894923177968031668418874545116893523020636923500496683734392981012171467333606985339903578779863329180694628988761493230262892873218920267687908842230778956835779890130709394203775653529762221476651363230062700475884909599428449566780463917936569978963241894533146484171090527095811103459061451769143379342098538813267296926477824985832281465387715802380161646843801237081980747783996882524860161172509129954343330318881292437574077008194403939553615386483647237398295561020684164738836337035762664269984223646765911860477025959509580364240294741419260318642364319902484742691000685206327287145878167355263424178904339920168835616146047298596196168954168083470339186003689252729118968034883021380185998444591963758087571682591553047664808850632243501035537982265189321819759995798590608801175065373727874936530810495892676292076355037957207426356515826749693687946403848659008835346391080188542248578809394543725721935591426019828993161489640121327079609302925394490317736804929570570929075175638700312702132493770316688962983101929235195622327446003094010283512212683407158443412672698022600955003799627981035257499643762829609271165770989517988154607267706408930457270544063694591191585318480414757232555809053630111645902438696791324861305708611350544449888658136775186049136883313387469002265325273223110615397216937500013426090027034486430043521581845317602896862981905393949052375797063439532931122419579343234744042697009695278927061621974394999663011437506043186273356163040869276995098615624962708204638063667109125984251149372281087642074883536820598512393129369271251749102837478145022239497081528122456632514276358817817928388407549201300334735343035378954230627438964840794625727246812388504180745444035495779051623555382224858711795956873645757456084170435902504972340551494776533201224907238672591816175299681937833758919143953650934609701762799675707401212903594485715273220612180688181791650317224788278477669235341705444693964554574711289165889674707545253403081078541752412762133203486547944919417569964208310514784092400960254445701846616899406524961503003237112136768622837990865785262692094503174550356072974575878731758420766386365341909233743892419851608824911435008355895014197402804524214891463064288294834701542491268148002226113423667433480149066971505308810134915893219121630082645528315189325563941955500358786087823344127611973315022132757765176000918248709260506130645881214094964225514846787187331432600925919040942474433518758461670270031008208741881877030693664543634321879043256421700017366494562501552535075741230877828811037011337506147057984657425157543696800709177371177659455082644631091414125110895704159055050574800945676193533048526697664548486250320817161446218719020057592548577399476250904158496868782976327632594774309785828655242495893521637218981404284722254422296699043445281698953287160771877412742638605651352162433349386839531108633566712069652735307093222700779053079234549560028985844819419002006917615690211607995914478152000550001419682636034195438502796093850263289826412781748278070058799321738517463653132574191404401367034154315783325460060928634968641097890592264604932989585036138249360224341356207652677318031683507422981730626963208463427411874494580950504049229515678363036333394218313580743198342687147713612116921741335357850438029302067425474260825679842418874518428880892805660597910517525392869880221722466352710493678276053124472708801455249370153149560242453698189266606637575518009352022417365719032934333138409207725269458016738224110898115297043486737054161020058595893065922859435507645714254804450968758022220241530713475549121713196731452950259642846110968638561663544914146940113080553671822126528881618283030764757943608815788695922814775226748379757679351674659976522812413973668150747486132830360415357902516761933568204806553479829966025528189126829994155214214577903117191295282621651226460353173652260558590952174017359741453569237307470286648770746550592344257918680467343768796320206757911857287905675560635574073408414833658834456362618624904917528858445672088030777266554337551930455662972972027553187119443210247451485147887386537936423815866423566171119769350542737567497009514932849659976294314473582990159536570522010354005360219618001327631104566037400875475579275723559750406822281162870509186340134291773251305456138416841518029700085263988418428653940699480712677616539822208677821432069863280142558958097595878706000125678730014768179542555902516072036487829663624996337104772681941396858135270804265880026604765229795166448049161311772080648612627245799435549660359842436525515611447951059190107317466716348573710569321075134229107799984309001821384035132568779728216794663744258728060307782024099407637479766533453699101299678972515823808166950928866945139615992284054883374603762821496746235894769996468144729787971088055859836451500236773069952835588966837718949659489097040237322264463805520197858079149090180451754478164178404842744633797144099904279425089464221014173128336216847148826517555683118628452107803747818469906740777570228639998468987538838036400211920254472126782285189601027604190858525985945148785924904304458238999974098836532648817679046202633548649692735219499608429307231477858471444020734135372095788394047966359076354337495920293634390006670908575287268341231245301364393893134953230085018319552994984418686290842868579168069152380362304598520623592095226123227349139181229357942046626036324918259778764255489827059480363330359923185184930467386181112211970110954580433372192697687481941297220297111671607738878629106147935511709202782947672658072356766655916511246343000359581157137386714806040878744548541704882785159402431471784128348843893308744515207562049827234602234150728562256495930818221193716865322492590479267277880018744943260987219890460461261983746106425097380054862009176019493369332795663914500907110943130786840311123663983610347373541906204382102077912687252058880761008731733379211815566979632058558268206379826227232716708455821911632207328410201365224644766032141141745530513694713894390231198101534377571974524413035063899325925905953025655591006916374575961332403745909048504160224572432864291566984731392674256753670012437075716652647380784259988963592478438377187356168519342765677300360722442123848827423483813762497831267083241478852213951419770679269363851755748527613612179967096997924101638641917504098146578310462025076336332838038749890999881835229722518808968177433659835558649802865531083875999223072996341048386757538404524154523436477916156197960868259480143359456811973265030489628521182815292170509279209923812526480946591350010429548939968586391877327692526170679172980627689314343584952128141418148620178521817082204869986937562968296374128994154832428378054190192220807009265923052634141459263911409170499353668719514059757788983805592498775708498796079872245716287249881761437869042538788419519108368720180956812024618137558753813186338849857007284927673173032423669330366467318874467830117337283772793679846222199920848353586139577692725248869233181472265446227135443696539159384708434389846272026382528112857173100418500564999063803593019479061916936229206473035583188136783228444438026658243100733368428903324606703489239456528778843892732694106817628769341380633105056286732120885616596236662390360551477908204039488141911989442923956859629721986837069620095459239002362095987627505419926030965759743629432873796766319097124359591037832756815638873103435951497468989287553441164301814444736848374350198538717131012356803712337490143589768822448565679575542134394167635709263860557425651753684078159413921095526441357312620395935317976721630268897876726351599648313197291542984202227123700795926199452233896939532135567381986378628796059763909203317869117785929651896476785672796883631344999910296887552804197205321319557438652890078406214238867559736393618058294702210996272154154423875878002092058097753474661498645282499067084047350241548025571759771446452082430965240955041583428067058779839377569438248645404456181750095327663498032325727623865645260600075856334669525004175191272342856646651135186592347946843962051088147859859451203283132868826431552183635696187996104695089035067740096447076870688873730672164544018986328546245980242324227061730480676871253159565391788102765047062931621016451781729093891522855765471266664841850893039905559293358701547875247323713471155632767608061380572946112107575937146431630443279403616552817365273544649429637448078338831457500616054706633397138170136364330572133161793167445624422586571093329404171736744780734934366046067696975217566751142878614076363662904177671670011054816556457135016704650477551460248765940047808262501916434055803481715137933628724037858557550919475327586598547515085273644171000882652055998764698280692790240294495867411245177812213104014349049139827013772394206636982852755360876323865411741777986847279602105537819720380788935447905818611021941177216561199372489620845563096107089561895878963868391004207482377557967848103864347550700568003201073194613966435153226300184198408412520449285727681915650633523778814575739738217318635134722289152505079437076656790780109465307315926914897444346416907843785205819787637200979195522504458194073812922409879057599546120239876438704368783108538788770307574431907364300854931313300867838830272037459611164031991702246962096855625404547783951992240762381296096701477870639839967074110004979787965679825377953271619698644745718497908652847431502320092270741184901798129983378309222063936579651233073188560175441366155793646346947924081203379757083217348811128571097196837565683472351023870005653093397265808775519086972257495859734166766177708940006240606101819939291073180067566942768180786759739042091318525359449136070633550893218486832212849736719533618407682810645272819150246814883519191531174930130892737876184975998277851537174095911419523957857706385752973349189664025380835238979488214672658584358929185845217686575224748915881394196140659323904058629956234621054710502514958818090033286174551882660008094810863781653861481092612586415458598242068200394626098177348202484269121828468135821334685908632052074203950740291629906436957065056080190643691138263954686335705184267814428346838530714882037879575440566247342333874971802241216270730734013392929475675418103641262552667910315441416826226497499409008651837204024480980377071876809615194339545181131569271798752047937796330435260920288211847185215652699762313488564426747713198883316075092425800081531458156198979440700815363615641710722144527100638802973200233760229110813915120005003643256327817758844571554484965194057625103031100676319209941758135395146099895000038397039886445216740276194663726698426889757339279727486726164430722182078662742277895407869337629502438421930170042394981016621604886453981550578303476284735017954250213217218258030368071520499044574437235581634115151532044082650765434961499839407254868307876710232351754208513689554692971099747096254768411756781089065167245578076593748896595164984701853398956931339892171077147428409122470895915589740794733829530715620108837687824561763510512212699969980441214908975573408677648234358312288443476060508154092863417069523968380618580186951048034645136112178034974028844442475075298766031285963940067555733462421341673712016842885257366072295680606408197041605212762748982238423000489946748524389702861130364455727476716913403228342103791901693841047634860236126211931729601461700848416150471909840086671975433633896394727448468514612558845910745433641935839348737374472115233276913002801604890577981258864341838468629587309754079369043865193280811030802087115609979008266947810141961869219582971624696958795144359956236473306217294729562039237926478548916709003247223839710897245377897169427738296824823510742345765530451078269038339909065197854881333921016315944710666976088407980193997857729421211522322838607823598707836185529917079340434582656953358500287277017625326737557496747799984180342544525453991731852724105456166450512243709831986697269345477861117137224078721922244399745867884209156430274068663110694859062052097911797761816946252396456139859079432367917013501148327455853336048083929471864391879732874107179983098630760463127103496445358946715081306027534199119172959425357336408642370815574839857156464002956846569651898257905788643083715015049828021341281453508196903315642775735742841549803465746760564873863321294744985942270337564124703190918660872637409201269325965106497874675539945358530583877192580850643181400485073958782300180846970652371749603205681081082253491966366725661890189827664720110695352213525763193096537958154983845172813231588544724742031992656748392887446733257168461351448392926900627970491462875550784376659554416751184620233417504219910746525278302899833046129698828355681895155751686412093657885514012529311871138017984011002022701660072112980476496313928511612675437567208236958558916537981828128532382774075591005530370139123390405782905589890594844198924079971591156525166430578911051903709003357844433355827654567867383758217591479065807634180257320913202658810034773211934857792656982516396900303039453561854179810308158214649076283150724491804677481138817979718718617429353350967022579001073147339816587664196734759315605121128688134272763034518216633767828025914626122426628936090762050016521994148267915946326609930394732667735489559336459771074493495931652022292118874902805732171435853595370243647299745080695829238236135327262414415919120294970373110539687942501468879834819531561946267760104494511124366179229375398324959746098932040632951959807731614211974578702968090210729274104445580077752048120061794740757122955402378034028340151471033059159819158898161020356358573423684919225064763605345722106524471087670833068280724656105233282327407985891505722098057257606211319008423168439068164666826959435708310450133284579637144354181817104726860221823732442813150280863401168332189995698134843958676857401213529699854569697870776884691040377013460748303125397277599740587740234827672531840101118422070320765839683601357439838127564912456163181773825097925103631698869894651520083462413652068269548021040865243361858705027894342894619875764070928420966064284315354869083205392403351005216407542231514537799366660093446326342828457763399643902519246328132489231092837812770648965432283414684578077881523561641510221309629522138041692651156817874656907979757219211561314358542007708874028019536243338108415268693111845948119885057380251934846403878760739242637286390339130251760994544855283664528716523075669269635218561591572847312425439695558736084652560127773809761737035868603870063464620344786940057392086116462337244883263068955091604144574891944528692238256826228490395640642809736903289336648654000552437547018805523810804821367029308491808129841215049665991010213687420155276582816258268958375007231414079445262809903532601586013497982390909666269055740676141175305082883520694632714391447084511355895321349681903518027855829944845846451807389019075646717626793615028429647555087223129396094227963299005210505446170812277272028870956814965497528002623588585429368632443172381325214718306694879617642642156277341101876191178988866835413912452012042959397290833462783857210647000950342784158256225067648809976272094060686453450373823433898333488668023533338996202923401659863220130899909697046629672462321352647228759766787574905567808392005704474156178318940186455179081850142602130909226078343268225688333272063478255735906666174079985379641738722600384621901629721296135890590856736798174588312540354616169566430187129942598950994108957707814467646838840408197711455894730347691544967516764756775744020510548321079902069841017209299903123011863895499079533775205222607718800809760620052837376849050502981750383349099667381337769710022499358682290390954839788076175285515536202744739121043269428652988591446473313490821099234863006917698751452762979657712100125769038376864831591565053384214039232181794697409528819151968190776309523676892691580575563161343865854038761793962952806227804364092086642465671305474797401455266913566986104952538694415841859115608699273569127986403804900164203141589173984816947329140449143602584870470003895576127683395853516746829858218909148571854853426081906144588114536649163765634181158004505880942133594729611046766952879718031742091054095373745657009750726616013567314061656541601074464382738702368309060493774462076178978248750968499790667020789527602944282933896282213539484627176913347268463989951091431678707657624508510190945095285583097747748157794971730918110529402934731310279757830281910035414459519622747584330321922775761641843470508317820596620927979462660119364983194320408260521758988968765751341688931198106738000566278186727189959087654918850086722980169944919450864387187240170919926936360717221479702391730542786401711854213798399381914514995241591650621875043824127232596875903402621214133547139661760315670069595234679463749685048239490433685407498884015178274047957763032016589399704872208749489574003497509147092364376984687579457841955364364353251961510178403009225794254426943455226648926600354464425804421856891988531633006637015485378227317355443244034276016789839222574591293869174298036337304929639989607907290584354744393268692403494003655040990777150341095745013803397886480229071198008151799292752246765834044894654249095687380261779493106892298673557641840266993729569916457279501251584444619157213716735578702906672115073688649876797660359213193317890559648343498273452969759661728720590668021790651849690707329657500646096808100713139522388737513718966081814525660398012597603452756695023571095935831108334134357473021343580946265334828968109137836973466502398528889055063744777931169683479389311763077104914688952430798117890873841102026046553989759688928329969103941389868134774375116347352489862123545570664812930567892814706091415111725328163081908238205934089847239580349921805455746511513435460859146527856147438044833877006332532833798104730461090404798772057430535021318168908976864375280680801929075304239237495217178593649930270952423440803989028763673579648279198868187925656878050187265142077354626389721045550248008655793269268812447131378445437893173015400515265117758689254223127832489639125279013457362752149854024963625562951733817279148894384327824063463795432291689468939548887528771998673372755444922659950115516539847646475821616276142317236696265114940502645877277057472703538962128777395236477081768065526171002876298411365453355720511201179607382387415202174888566441932397762397957594279688199707380467571076577136584382667511348990127867668864894815042105326093433783502597745032003546146576180247810248365872478956452494247498350832184609530529503227246815994214115430731871913182144838923505765598203557073542339964254940303302901847102299128093020963413656349580432283481929759700186529533465129744624258883498164710924409547108770184563495850466340270395442022347872726699484925679179982202374446845497625355885065338401274410388295064244387053322824603849225913767824377908133214403282653567196361415923007908320849620532317551388968462798850545956706615329822867310231862046142176929936102927917448009442691820593159798072653357399076512620820225719000885822835161197354297460377795336650149073160160403350116334311139710440204719663512969612082294824315403740228866667756073017074036767426834726493441150756454808436573448010415776212144160690148898413670169326951508273615034151151825215302354947818380375974857121507418180106778038453396808129431439925531853695805891553501458055746480599402323855114448857117355698235355186880415437648209646604180830766297150004016713241324378771570595532842773938740498012969149004948189233058814871121229306522255130512895128891178209254902374749623304273870947350359442347877430002411327389507681532822059464088463868994244420101138170570968237754514560009675803557703982228229515122722609700226484266422169741009821774783674120625955762482118966706687218949891414864872674061025087778458956534715101901139654273750683143193373136772790823193319852809110740384661465628288304920056339623559493934996668671472985270610641389349638401565560891397631816624527103758154122313111484274664592783971419865634756308551620636362752331595365371372186826581132992989615901989574847851496897885526013855630111105835613471314322443294073704210048823155299911964981985030064504553296431348059866671619766862795138764765991195362879291834075599682114672332249215045905768374147549184715447100030148061711420597024623610969700620130386160212316524103716827638723956184088372238130872883124705876760395565725373235452891509586189637013821587601722681227212329861584312903262697603983376714534373662105189901619512965244754590409579700829746931978928185381979784882546999001937065130211004493241891513840169602544247098208800036663532260015625973957698475014332335940317619101516310827584513018078492997355661045766663043938798458506527652681468678027963913603458833789531529665500649954855024953904495910173832097513291316031812065687033052594898280210412029883548589012084076086672565253271466449090227384559149890592272343709247367648077309008595502882356894927260888322323121498033558143697117202747093783402662651094015420381214912787341362307211973131375096598080605486941097823939965830559086827009934422394403545970805134258319466122138414062935455434955173828538835630782576435653731379417675942468786213573078937816343282427858773875908114340123125697593795358247985326124106420625323359926595054372870954215180574158547925374660517970249734704938094652831704041516314668405103890978028434005600409735838547009896695257708582143361386645456193379112751533836308348204327958100710993344933662991612368646535659428295506207699826630851095554584469624421243767636272415664305219374118898165144080822696066821873005334041645291326742814267844092288661881172886889034369288078999386158921479091256642532494823717855908517738397494089357706345204691652345475098914407593018624591309825458169931054989860937025248430386608551297189555137957411139542197119489592419037360697229648945882059699347834293652994731572343065680157555170011598400285630395540036398186964693534880164118362485745315894643053333765687981953503229878019937141605053541685971507942781544881859486453398786315390435184291729346642734446425239038181951135561053596382486037533744395388255184134479727735199655224365797240311431601302507898505799490682612607350298461945910987430923989494799182748485863427806559866991723763788227958506692267266609626330914134917041835251333672534481652129811594269537250964472753120579746539487655337490916006476268260689508376045227594459376029582691182715004462714882662774715286736248586087611803672774267958489219652384289569836582901862512420014069140070350502383307981773208535643392583923571993986465531083641637892034587531634336467379604669326311228755518565324301286565078253200936094054964573292495810074384506353583434087336936999567205229488697720032055660769908080827237858134405989514814009985740432073895341054433079710018485393425674710982396253827799267810847681140483055311858586621534341279827825453720635984770388998229761379009656478552274494636809715126798430868749343952980253163568957527290646627563585002386979815273754964272290991394988658228660100961169243533506235983171000051506797263361677025760019943966841155613999150039492131561662405106978421506376646164834750122385786335730385958741773319476062909181254813535159157026867176303694927713217896032064202417408034015093177107446486066759254363701610914096435029923725440137460395586595535762351088711878851717471637123201314131844858387260845526402874884652303687759382680701504430128257944730009963349933746144785742634567188465154073387256292694357547639027232706032073245885135381965186832727134775852660416464335351455117963965213304450098343617995254959031978622167999320497040864744541480783688264734560700680643537892455797678253259691639835445158773314421330831229379729849676658859880584025779181417350266145965187932211737380658536636905620550128969966835845100081332535101082630639196429501670387924258117894917100571252857081280284652829717840063307967452126970305716486077045109785992197974090026922316323125745947462127621128643771395543138735712694190050234474681329228930493008025423197106762855946287524600174557221929045721123959566656010907062839150222378596607749106806477570436537166366410196558762362331155822844373533893163384551036002728665575698127781552137476280999824977312942460600602913409775394243664995601261203122783625366025719348224849041978709062276115914292327143615856964197918685971376983162064351970771142810666137444736486105383414319534390510851724577388300036939628455286070196614302810013450850101508249329794397157956641167417236060087168277284746541244802947007834790806173517434509375392617307484533297058705961551056716653229650755823531183281682809417008920903703106191083837237130756437433296984938775971941137184895430860275221772316299010896030668838144901854805555013330054156553441190831099285336600266506489016720135357896676990555574323120360680181973913858374366216058614618233557423490281758099214089371062764904550013613378204782337811569535305649533589326748013368153459136958430944481306889736015187480383881650131311057070416152799764410559009998573430261262861286008601740449694708003210808188321255307203133638800126269880839480395066884009499982402015719226556780080256318423011911526720357889084912133086906098736737432996849765861636998006729554715236313594953402198971584631958119781287959582563395704830544449758660327830207405629517262662137443733060536667125475194356894118181270124198043718720494263939469561804962791829244061708158336601183635034270696840471464426962269734341282545856691023952813697960111785542259490394903592908046435806948263133317065312093172573287038458232812776099193494876416650373131946811666706444223999532042428061902048273986113416173682472291925462025520873744684695812859864167754077416957931571713377867492760747199737673236708527345445066533869927201750127758258189158373019763532155811399754569116901383391510862373884815457501888566847510141530928960659022026383160366826763123139954565758418215098596144656259882113010367284179315841256945892152357372911959612165981204405003339829108867896699598152233152002871434242669405027881576301559080830435049515686348557824571350531489217416323191497002360692941101652600498117708090749533548801461868438714458064485372636623680734120901695132181944719832173509028923602848076685167030149573348030177435503786195963619887190021459703706190744673024775967367803149077616111761241371096638493931661923938179134595417509942268089476448481559881202943311366400524660934901938545395797639801790550241061672385968806977024330215021256492009061406360911563963822464867745228584486108116629959625758974810247704454924881254889196413432107498957090188001938269227628960711814301776492896183306534028094321607786675001881536699211345118750899833888422016768632399662678822245271300985115327271550247159509615035875604296251561894366673351376561902630196694689263347283374642104041754232634494113721321846384887292848348176520521244719119005911813262830963370139539744933360413807382092744003244328665410285492792544616612922107825073903297994619717802329626660945666247261063902145704587560975148861750595702412302761602171710213815655161545832510136301593442533981367164838667806187075739436097912618133736978908772430159646929317674891992840185778171338082408276114670522349454872925677254036952718432316131843423297966886810714890655366781673275787139566094592359614899705555029815773262741798431635701042876169793322442430920093994551725108910205809541093307655194435635635362716272577435531496614510239155950269372525515720877373923255556541606453604837328878585508442833350803144242890235261097457185826713435940028010173131363585323897872450843382608601641408093851756368290889706443737412166964243950254655521009726513407682158171041535503685578321687959059520863356520922100658164533375759184530344611595564659281971618851842956212578485760736148050375873387183366613650039117564692313101153764432118883885865160416590722006595691511713478011979716356507668052107099743070776671559535882586468034019835715248189356460330551744695582581486061299954428718248411829999908817101364601343463814952229917472524346936202464026080498948270465476172434892320265373123416784866651680353576580320729577806140266082986982212411171322455481057830387519184280132147824096522754105172490452913189508629919043787822114283155506102561523250571215772586704916177921506100886424704732111878087060215239901606584199955050180818787425540542420421165981232110243909311098262209721050603106677480544717546657569401822893675220268897228372767170577787552822194258051827732579707357998764735016566119326005469663838130818867750544164674125275658908780948437089183095034689353887162291908189306777073504630841152816408678607681920109946535347532690629663779126231971472927814786004959232832796808518380294311163599578911676618776423676119376275733984294154291966183368087616970398563993263089544680954967577176837323251033878605325054130916648220488330587395068079573682099283828302631732444080080063448515042360029399952952648234987137243845776607033138181284568743281436009500637049063605005382413672796775025873162183457208382063542040584732712533092789348804230382516350567344806231314220649173656585602856191817389811074730177559218502244800755324474787099213955503508894446241030880411610490716015865325993537129213537827052427075747948144538496405183477674760909280112942072585806758084065298123575404626467250490065778872352874720882242693361450689920722841717196975250286075667588002384754395611811285202448387237722817240042530058722948393626320213928172296981369569771011686779891400540924060359138915550941825832266715573488068124031989459978704826098408844120161520488402425508906009077893084829301584666725987522487995784017738578715392700690058088320873473812402046953750825262439924770556347892477588017549650327980848969835454867333191962458761829036403715625168853412103569776540797964392842649738733351858450192179457351987031960386881982012162319390289266184963571927712719863866807207334713563989136027690890145796868223628048700352453124815778010214518597091935067614139490617877617533315601501051488093105520172891048185643458368097623405956517262285776581886345368151085485914909708567797417651846705785807179665520257200933417413520265399413642557586952902585193928500601068505309391894095499644623592449566029013848201585169024800645311575065971799899494316195065883010897738901401182561564317104146503443148402425693731256172865904213260231095682044391136820993133760652717932272753730928920509487914420525315356207855752532711616755598420304563143841242469162211710758430105456165830288911917072759866607783574275585195515805119565814889499041838992516556081529989106566692002436204485733671571388734203799384045406048803439710415519239188333429951871990625758641522783812526288271184424122334562668911671096887450719195760419232891557647268518341795367732509237239636596224214927696815268525749620302838811573754531693988959413580659241155794751930403635695778692923564489937307673170299860954253953053599166625740826694333568144382544067981042527521072196649991879115353118237347757000638512747438960295570166670341894098335783122668299734422710109099911710594864706476935402870744235380900616198999023016839715746425498330904964268789155845329866068686609421660983827799158819641705551310575044635448309047259431526233355062298402048593928321883495092691284474305197031990644756802484104461853144314226338489961974105244111868519828376112424470898137090048882046516877745511748297460279301258415804898644697522933881039834311715776209369852029169037155275290995747523816518446788002219915626087069759191038251779903600602957278907598170677579228554370479941524383035661506208210327067680486585601741433223942050144972916602360295764592937395394001460170273790280918919506211425836667775160530963228761320194906758647195744383397016755916031464261229211487209619821185960019313031820156521749132132918991106440265711909647060933466619724548882997604951273031372789526525594061350339013846018772410918216657746829596497047062094300102775984898914726381069468942245126593553099941148028340420001008203714390686822201258521059728370803187058816824132475803492487512490245122391648463183225317108728910156863107538825509164153527749397619991742562170284272720868803482030328749047219475867826408876025397694834888858701181556106529426912660018020101333654598636446264044022335333795486938382564105855441700266283696749776249090598893169185786331395576345175401528985369809414770895063869940014776871430803040296980290770821781431207887774571485250462877785904748449136499076899333266852487838753250604307596306707595988153556534083331711375721478129477845779110280028765576488052541793963666094717985328656940361865324575603709027999662339226676727369384425617294118802406423040015009989276820300528550032108042057995765323598461020608632994085827555652455845095823154088174371996744261308107865945648707807771074663209356214858356474166890842500664357316063882605768738045172953278104341302710171620787482185192533422070091178566740130420020708809045852521567581411817803430630279474055988835783049537056215177754734777483583870408021099107826665262295086265516105487330465968254976700892703397350489977309838584116559335182005919212759168280408806915021289561400565859037612447258085259955418143590507173762874209964518763996744421021915263539273482392209265167999950613646801403859748668011748619035218356168265490845684232383089102009418676109526009419963474429685988487207008710415541084438877802299742222521313179782085226576820872724105533855677992473604579927471193008768901925507125577332288464245050668954823500918959711917212463097051854414826034687800473814282461842814409763922845165547498205487037307495412068985900602990359090494321957105098304310921837570711064060116088113923329759327254537831157199907072790622900826519287034610642374022370295771715628049767844507998392787777123659253750474469753630237858657744490854385549608628243805888022026770631066376922884797965670520510601045530633604006468526390497306023967546304962291322217602321122227184513339202623037419844748817633424360344744080614175896649870971481723065978771487873385096161998368554579987150821332386179119787501861669082208037541269844507831665776760624451435643856715782187697097707333569641946706856947640935473050067054259691214065601228026900926648719631978117798084348964349142790710638902258523533504953021946659864003885332423215430971165894761547063566212883284368898815553055693084959366981832274612903099911562644406515077437275997407836925317336928093697247950965306267999829259887520729886383056683704671779644973671188316905234858003160133110876315133368122396172792573791000438339442661962846196744955055991878072770050005663631283448274653705207135911138501745001540703115479841102419706754830408841089342218130497305117810962287039353734556542217967673090378576848548683219600605351338202741396157679270627222049822265005558180132165488052882467934533098124547259742048029162614518302424995887530193512721450112139236477619156492507731217608295324146856384904464076715130652052989468740186351795409755295878566222383158104858958248409062378836221501159649830300260968562497354548358282155347251369540379045488102590141879763131211356126139123548135727580644924049611407105447957490678930070249555511962749209054508830998850311541084817754022590333736486753295663347048263107542917693290764186176883434200726374740957835014541206273075429575769398234338234936738993141157267074254216450590561828253125430929269699037406390633697369919582746193797799769386954391488725326977248338330598512871410271413157775663571272318208970248921293609462854332153575356769956315692692877283403779886300881436819672385385429988052346030877414994839012031096467528984701894082979918352275492935598284960969045347657827784364527088794883781236932315224455956264972176977094042320575778110490921768961680747414217385584799261840247629894804423162700536391539660435677248282999460927272582069589195909822406063359547481130716957300794146930713230358864508499197474880655445446767592995147764092665816516081983943157366854001207713446422694635548310218104655079399909941446844873980057921365249142008445018746737437636949751803214865082858417035740757248770602500541703799902844309000287073402366036721513554249075840911445538912652139673623685485931826951606802906997903497383828499768153921183047569265667072385452068621301051435724700080776257932412943360884758993035070961481118573437862817934265053955534391360841687805672187047040672973765888572235484199521167057958663840645204031758100398565740748955153808210608340824691473011869129935706754456803995488322983551424927289931420318498402837161688779010214150521337125689811444084485637646145115902152258673799327422858003672677260715142719600509087627248359213724722677987272292310858784156943537797277434549839611296919190411845227653826565898549270015489683500200756024624943417942036071607885925011865449176562881209906021850268694392557706884639268641708213168717935357922386078101319748405088413395152130782800485522346139984418242375540235535462328014864166368913319239103059211295252890995223030755481201808435959250990756190785995255519211640501104862496998571057124241871668936679294389764013279060877597132301415999520354214175316180330660982686178616481326901089353851484499466185261179874651255460160077534435681514410619776307945183506970773728028321786654646742941235400339069929366248440468010253046444604658879165469014917216603468110790430701959536702321158102531614201131182281903650308764100543472332892674327658303663899381580443493954314901117110738105339607766507623577690595030998116721198625290832942584981720172092258758691794468891248955398700411882096743040684954819652298659108798647616586572507618309903141361490847283254976406625576683225970952981395434442979204077640863684073800848270770505343212701383170917564498279544233908889213607828411106353837449297756710438906445107200516209041455309624491640742350407778133451216400087661739963888602130939057654445558085676794604057241063399523700818108634748574926538300124107420442633098140685057401538327302276083280571167813519247336724776769954097448242629062907943740591520392439167705580400390098687835808128866649917540433737454552351998971735584343672006405396947301539017635480148010998990515626596167407568010230508393197106439714528266488216485553572714635160215147292130595771676159839862304543886455002905291968752953995956461476578316243007222798952451029973664154545592020396690135064324940873799565263972032100776996083722591251635156774539592381295351999109835134188309266327054307678028353638213740873216788630550919117547741177889903775011334215939844819402326744214424650156765746620977938780139324100554964203007336040071927190046297645415422176112339908221084574534970920718340991101725879811429141885681881234866011753156540342104624796346810532389709533787690719018652804559113477371200551712037598214150153821574202881070155575858686958910739334015086544426338819776321202172206621438262172366322505365347781230923070473960879465888924592728376856231915126391806571388904417356372999418597547569989482053800709709898841106229897491651983102798196211215951560895721601532917304759810595259630820233787409234899565255700569855089219532424346503899578963071238685331553767897269891464579744120499553297116439784297771987095228305410141155001726272324216687876482923770267262461364625604003986831686574035857671699480417389427985385240829437256294527665788166690039428555901899489457277035007892909100443095108233766315474949841350082779392082205106737342870786783911820993711737904844626893236190365951854679825742321004443061632047822381969358134357823599059006958096177724848592060985999902462677152627021562379948900742980516376176462994968333175934050831319444935420284491613276228462893023770187811476128867673940787947537412174220716098141678277040597143596949418900214539537781615397598546170138752919583848944523439632702548796321867815240750408063884315559552032885400477647993844837389554995398417113337912614118474424688881393461951929176991808681312115324089109244604615198944190252660382704364898778195592721098329765482637727182443431706291027976837925490459107318640292933718216529283749347743040795023559932186421156677489937002498663153632147744970905679721097195766906301559115595745253326093098427663604398914887630123155744475160784806586878890093663779181453681333028738271165298641859282919854009333360305507178285390203633538750489153969754850732602330118757798295671829872714102524596180243010813517922007239364415968065910291995587522074586860761947631854435246015221464923629917607763292951582338424179914760160833582611218810183683434441313054709992556637558203369809998953859313868651885754263492329091176973782254075544983683991201935438264911390908544779189968624580889432096878010813652381425391648020656105139379566706712198430532014464155490185272486518929989229987103651154493963981322348216326120965483232650018661099105670836085124530193680284103968035850764112618179353490146628212026607863568345822599706982596459576915454289705966092521293399734450579629539816847174578280694289261412016547653638554230274433169408175623009359929488446076417643971476078010768536542441650246246808751416813002405403444153843223634776459525027446857646770210427156431549466841157769141648352383664608367139976507596235947556102867817848546763929561253259902420235745690878751711766776835113156938988940058407207922742903183768133207323738066493110843777661806066457780458697827057249885969312558889498666452207971136133043509582489965231711019785978006849855168669372913656644008418412115075329176875669247977674391528534859372249613685024122178503715954920851808273825455998662431182802167133411005380326380831550591319620657992305361263118568616830258020844407347302388074834515745945801597082177368374194183881962765323059404266083929222844357962238681634184580887498252361544841165227052284636600162715567208368566441586049509860756276310218246370308204361792159041838624673896627564176119400200881230721517531603474168404856740836813936172045795077011563867169654544942786773250330423205270302971188069163230888591027126843894833378602829602025094597521864520383433240596463308213540815842265534193833941174247204838093226121075734549691976427140699441941177736304754240623673237294023471094179257149544278973531179323856279604632809499224872712269027623993186990390710058887878565728312171216228614555519152882714615082298801957339115270932767710874038949976827572198801066649792324141113146596933861649651400503517771068583782273065877450251129783770311820444171602867418489277426228917552878870941512713935385847303835692697921810325614852617378900458797489461419713761762556530333705205541263049304290976999266729980566635907286536822105947625622131420489210212081308306391375385598170153417294874668972784772578372952217483595853706061559744785529000798446604435403403234118563955559143098148406700705518430771534153141620503039135342552512669038900451817401434734774678279951159922076164381356733823303499530335742325252046150332779639968534868989198502952847638053089815699213882048747879970523890802055120577542939824828145324515428361320679377281667020978355657912772341466192639179746378026302484298821017409731580241797737886457961086079933002556520978257155535482014135416397423259866919031341471330306859403425881743934115438085377898252505221352769889356660543440329859394396791410750088599041678189977375792671826371505557372063787262436743587124878870843223680455141419174859822752615807970338083275984398599579259814536537855246466555225897276953845800367733120957231544062091530622256960537900454186691100279351573496052281692423336309787501816946041727482420527014489993699685348218989833240254672269364517513067448263994868370090105017365567820221050182655174795176476367121334536412554459067740535931845335200203217392783948901449069916584615891182705445278262947445598297805327617320729211205539570864716049317649297126438284664907572539232294212653296376299791691726555602361485430186860275613925769843498597788641289258734353786792432224833033167241736720774455512553791197414092049061253134204623010055341652266142958989120632408341338521514924092716393167986811420614133507771471130808368669661965404816557534129956194063631696022284066842915802064646689712203721548571508965806154103461770666494615416209186792976765425456562145179859949330633666354836111488089050451685198955728734489449417390654308690762824976416208034372379439289320371809547039039320235618327082502816633045529379593484252209586119599124050701544336290681982686068349905480517890294247287888733212058816702605832053457912861863529638885357707616480849118615601944005944525536054939799938110282620718885213075371716178967839229587338359181390126675963649431168586079781068821814867241658875195733973545837873420922223814524624416101752845516183693011023466419400508529538648226015970438580675241337158607660619511760633990779048935742419182807758629977861645543821763592999344513456623568693670287843068875791826845331781154891076315602523605308256896345633519773361709143192703927207363699964795367456211666370332988030484913104364380741423681921093853489542782681796736957447474389080451977944707519472139488469878304631346814019249459036434144716078038092938950124998289050004821168529473439865828918123439479233454476205480625588564424972216637248107231993509600860457818951469418289131226336388565504405056008589402100735403862280552868158272198285599990478482664593010774117387301810500551490832767863348442210939275076057775340676199919793557051441882439813926896657041045142721384744953657392545621604653122841433684656558486904210044030764766488482478531959980630413778071127040860332256337749113781778615517542302381240793466750297431308275182007094091483152859933342861766879423327711069189063793947783716629113566914002688407780230716309821919270102393810358704580713808841241476597793848327545958433422896730379981350929243309792145021943842204132168014760079483083702273358841104783547879796705252808221250103060210102305910674213723518032984668286672006155802230945071543148979980649200252342907692260496582008520252002454276567810008947021952078902137643307171178236762291099113148722975333730095653271954081562958967767659986890137864297712748503135889397220851696877576689717303707028855387734775794945164849520124179440654017948974825192870324368612704789895811134833372116470836791083491278497085849716344360641491746213103523524161525260061235068036577997932447663090111655087596829206501255638864204460667866367695005269631559978837441274046054819728282755230027046388781250827615372749048511158462872738484664468367109152317991780141356567979297747827192560335740433420128394147354318915419380171645136219153173872392174847629974981716459713814036862304140073727108961645269386539122239301163821270533796087824061399262255604783172574327345858931848167422074590080582633969159130970694150113680557728732539378369620571739571119396096176023609624980451357829462699037358681414815606602408790074185965624567972316894303602717574812576552479216021452984476626333227094415566837146634629204968182225314152680273697225093673067212111604405941909408858012197698035384164233064431519803054425432838656455650214401720946034674722593791433104538481180849410734697953999676628670882406689691194874459953453540377891951070479345339778705271674603219700746968999077449615225012885947170559963276441123255024649975484097762795286213277219783182382738389812315076002677322651382242527810183778981389241963054400520566507940136132589609345489439920930144421033674342437404152654179596368177272977408518670243059677444526681917782756611159986496451007784337654349132903424167129235930881511379593486733158538950265033489018500191452237806636749062922761452307433914154836592166276841941011375745053970043464276318422555002666084947668809141970896770795202059954951106787178277278963799918821551659918521693497250416827343152189503708546916259353050566069624986862034721227305202914003594028030895497084437956080360120946637377711001800424542337400090011682200343182562062765073158745032292666160656947760543955763484534020134922925915099008868882850363542074261623406552443433260336295000158329369184656125347401259087979092896164139067067784606310260905657664686745721684125543951472641582953962474341670333057435403203295265375100903467726079868863267378893604045773172315905895711047653451845283314123416809719818303431235563393675825222161352659948963674058219858336399493187101459249733904176634118015148661676056279804859985062480930691861545190238307069363850603528007390307954630886729967372199555876659889222627719865653212018399032619525178557685430978530457929444102061952070503279125269537891857984198004477935280305142485099197295864629032522265169635853647297291309652047829886276437756435861002929839164171703794740708826510080280580446618026206963649788822771133370883215535729866592393242837285645714783944575800001893297113827116478723034350938117090669734453659982151076820620755373893219161236708216165230022536836172714363737381433464019107551337400132041450679302631206011517212830769198591974478558037754666228040365767705243352883636171954550422887397400493342535434684601986061041117971929313533443369990236526941504557788333147356917410086672910519189997610410196385005861530484616891313418665160865706630673395150578991093596408813791345407645379028405911384787775748160689414569838492535937174975772282377659394062411002762378695500897282032959977179645160841683746051501236228298372807974744179042110385445966565823846888603593985796031477171707774505295045327332703518322894971868967229756884340178352378396118174957392762307354082653087748126568594494086074973669955061596279631319641361754289852984964917554391494268096936482549772134250608545728004632386687485546925581925313904106491573420940689497466352242832284452409911779690386733170114751223808027177651679649475983747400020283605213527093378577467600377001026115188777046018737537765981209582025615377633123578610810845681826437052167232910879939954903092119850007575788762152284620892423279043122260245403347832826003859000078722908307221125505786885166765302808643823920551332148145898775896507221673419834150862023083225251131318857590835215104057283423383737175637618112258433239422009482193780409187248539312474105232385298203242962471193211965778233601507099369061426191112446209791758059813165354973012074722323673718060258937793737359070968164110748073162332464067994827297065816616693885159103385669654214301236838019760746599322111722976741342074312923681829997314869307533890726656281815544377635756765963131890859873739186009964627102567576851118884864654413098463076098450179749319255131298640804425400307434140034958899008453630321257125149470706527966857772219787449042385528651024374649373670101077551404357587878240595951757746803982382751433854382665872565114569097495902349221414837271372847862236195378387552202343019342311972965044141548603394696603360328626726637949746181332925436732093381395552040380352834763731665018295615005155705288732950216296701200321059131439745616379370718516953879623834469232089327867746322401619653886220748894556457251023839452346100219827036784927300585297937855281925587771530294028552614280189670528226451554277319652263479681985939114099718107314683806147091558632915483528130666753279089142775288310542423325086029070678100516311270272412681142223456550141533138818657474373681592416729392827136722412722084781702821735810906536958252622380465463978252560845797616037024324251011260470260948958048551488597394142759563539422928843837213678825851883094018958089714280835309312081272992857450484562173246317705733587827988541121123472819744260902749592656707764123037995637349373033006037954346978094814563917346615892333360231151472428957818327283954201272438825035153058879106662709683025160718284944298254101356983790680504821805789204707641657278044285924217146933234823166485526215649420736639755500881300040220600166474795834497426188873871388872158418107485816163494075083483355238420616344103234225518864424990895090757226017435982922559550528551374534749866527417114027809384687121576725234609969661445074506084101636913928811316180433871330955766005704497938958506465244747324469257340017827136143841401567980688226925433857438264472913566896996279296296755825697339708437675941270347499118626594575805726116181685617473781835689035636041060684769733534626296759866685965726846927850611747274021291759619017171301313340788394594806717331347835659406561408509281249734367591244462500890816898740845078312382309444611544871721017544571028987275285435411190061545280204694656133810942938443543574558052294586807802584207671072941771560664309852927281706561554987946074498245940144891093298006574025028851116285918176445079769508647670795342810089396087026845775280298207975900631774057838019038461595410693139783533297491263798774566523207973894873853083801246968628834629551518957762550493933101187354621899524366168097229056495822913530872914687927941119902991286966589294858044850829078331367320875630158312527612051973762907023917145153174545901053544838625931442472990413451891992808881623495603816384341867970883075970649863466740706713275577652773064152821358093810417639115448804168023787458538365713341135523335442748591189303359818033520906943871946645476297208632401900109816354638775975555253277664491905277546555593972885593580813414348440767067513645503911541536866504161713189555539977343245110828829141198017922228988323454133886370785465278000176022825992790710729233370345078771256439273921126459698800792491141624811493219307297315316542815204771835186324934321837347825016495659862419955815825421781495272077314377725996844262518578139653171980275892875666886506138045015669407700067201306601352957577108879887141309796249988025805288710407239211970885240432024319807987365208326447909189973989388796700256782260986227336774200912238596514352028342403741310198808601544408030956810144501414322465470748500174315353347700828895336625032171642361770793179974661091510197534674490834535520474014807294536167725422631528963404472013126337900144154311732313009267356405865975757012425958077420788320052481889805289568195998743206817189067209926918035809674993001515235069387069816456617619851065821731444998666617721301277450559833718768662317293527947869408958332877137982575034879118476453035370340179979829057418912284333730082695303429223638086782120049842584812025297005691448542338742527078490023054681959976545954759965352601675344006998500356353417626092964942212149550454085749039925837183757885122172302343420101626072338440544304062884335189396320294445035572292243526101800114129989362717628973586377536476170728658988281439400313310460149752646329372187384875406264332489795249896073890844247557108683903689009433731805619354659232238651666743737942704596566599208402788357262325722829944907327613257811781779094565651253041762523254556421550569330127737997760008828065657050763915238477259684555527196596040466063393001744261096875437984204876947083279726512837962143833088552428869114913144515688242472024788799094271064938377735916440318544673013419677909559246097796237594557596549389166056455344804993356612153008545094221934909170818881318538176541226640508370011774250032481105487692539531356846222463481384126980892345121860591818372465418569414720863381901975982714730901296936800016539708874218900608655573167806879668307888258527476338893537721282490561112991233737665367533749423113465370323415495847288597436679106933603107307201686886633058842050630353751605557625506521391933200526337502147513183165656040666526271583055854677222668204781366113936160823065807736646917134589972279626178890511857292920503507898708835125227239996654724395969058294611161563860319532309655030912853750420432039961945150034362907038362923283767973492062508305601444738636562029605970006977019994784961150570216888605548944710796486378169195766001259433725725555835086632254273129507048436343671595234342861742670743143242645275648147782684901726116773474412338874996905532254152605015920105968006981960497082651349479597219561243020725557753212037181662965135248693561339198584826786204145089679662518170333939538938178077105334339630182025322981837407167377174842181122973223069178967736572184158002490720122589941750130718891973244187892375540672392134804542645076769388940359996709947107219125990508210943445270971864832792264203493581380979377383592983519633552727406121304864926386512477408403766936020142579716931635471236995590466229549867021738998837361665811373152421643061073976988675810776879663556704620653574337601748615912624904474686502997388836107262673079087561042397149516401697338111364623309784806121191997875570244820728697811467225420318508115699658000489857116609600379686746340497102702412969195593096981264730360646905962233134562024328058407424818068617018632562120708318653886549719291164430239141626502047729953742665791916073963114617283480407329510799013326207900552315239570441943404004265216352411365034647916614213283525559049177500231383500888411963375746415933744492541318887376688751472412815910001915792212147925596528630404094590836162257842852536914896631051270242019868863724248829507686509183454277081920801499446706929621745272335513244851342731647911435056069165326469045641265075686042739329166705702144324012085415030306483657192830732566141995300922077468411529524970479437961122789343951653250151690295212159216421353455116164269035045551156030403458199820091043360606263274839367891955346472018730649093081873309474732135908964714998004645195284038448998813544422059793553390926404812779795399607519590096398624224193155886402435048711125421799624078521541601502008938849533673934079294979461752400259939273319242387667440158678923025560246662646726384039778599110010703537741798516840754938500595349958074772335340516211975177242604720974512703264734670909869183696880302276035290088589584693610225788622660658455213618257183000983384497340267261799131188362010867145184674955540567298383145620606220183849079940464142862466878968829003695558232596944495144189716746329079008483309214368829030629883085954857037245247094500168584232548948314757217952972069598834553979291074382944400637079415880449582054718953715414698669245185156629000906049497128862036560095090360492448334834718660483834480698134040509722374115248221004807799426480199107558241250144586528199714243803535275717195989378414870176619504940268955145382188409292901160775421470158331809262901590948193382752839787525680553081595128016527079227845132142539827699705077663824447717719118593854969378313953455608443561223268066428780084700586884315189034744777837305210042469661995952342636681698523123106155164435430341597160984454850840252713043499923146610000923047468971033476476484847194521213336705213024177963918303106199113568196684030526051387765446169555607718425149414919352612542882961336030378184504848319218845321536501110916982806610032313134867287445417719123323679730205201544282926509882087768144216505153233030934709949460249693302942011363169020723688828273131079581840298667224827248372681953003236579575190426829782872219153318405674357396554341892959192444437371825741228233055326784368852455727059524127628793335061684239099476072163782807548098700276841124857251827967769266920113510008688176084139500542163249879665213599981115504207040765391448847346914959998484829653676491574997745771079948788646502317466864592254686274015884081131063382601091211194210984041146123762020073295935839777382399224835212446409873636800249185735527009600183931238367999650481140302422101418323997436838796441308055877347236137558788120344314090853255431155562821881971614214490877051687182402734417202460768871536663008576783889482667081178644987947202725304146434943248659184958904177853281909095716618100984229942739536327163099269263353960680893881286513119573546312620365715977529063784493532445051829613174132010197719551356161966181854596581448466258864795820595986350301323133827728285982398618001224021516760154792746586526462115250385713079224298758221049495094567892000092725390437222482381558093286723825141045889844362913636211596267639570371034573457350965159620333876513364203371597282326690039208162702493374093643978778358599472095607610456868510515486958612217959824453449417334433631839811030238500999321575580849940282094657310873260694764251156643443397056045070801410386829244996206183729258758960515933216661136659313757453438108711797534871038038425124036747480547803474805549740984504454669287807912364849688400305055595764610330594155148042364015923912632221981114862315345304064640928457261885370413421756636692499354772577331613489340284572255922916661367370813277165454766499657613443173949264485730485881494895446486054452762157128191746684503328604268617257288646564604873610602108173519028140038674064268414840899032144878119015984347762982326021638564236772430182220152155624617157671310418624483503208337432786406613874258229358791733065279634519152301827559756522314082785983376404112447048998287612714973124587502228852150604142820001430166430694730193333076533003148045818963807459319011548169035700647055709116767387037603574014058926345561289182258136178660917497982400671451076117782076175041398701959016295378604193632970510846903539950659179455603553956697645015594146751960221124223647883238130706632400089382165018593306308231846161208575001398823858339425776242436685353287911233724538470963740228021016996425817313447790943478702568335903482699393368071289589561191073505948214495338710144473811803044698102186646327759318229220802379568781239677387418245470066143090382397820118394697090320723398371559295101682658163973096054305497846431345327420272997457059516412686054056264638705100422544289801026978602303137267496647374877534629435044838082930948395730138021748147466835183266726305937413847786749727457330936320602020516898451399803702433763208186251465812427634605098484465135446215251076492680683764837554447615522060845979248272665677421862793960342985318713162653001500692107536986699189597168015443074413997707022493614470416059188106030100570507252860382801331712355086209671238730616759839242574675246904613024208431174015641895381594803851399535615077730127631826861811867629055975268514588386763333471218637151744480319579613296317090315703645913835293924064690858828392778219281469209866631236852126407811477121851677939679564561952048762150579764406364588712822953582648861973907382065875193715750278965495002183678718202546117951908575661360246502467062033731582238649175841875958450771921545378965942010859856257196781274568045243929768030821008306448980214271087948906735152851231366988453547321951384182636393178140245561542690877582885961050614682312722006787973096498701746427127781376396289053581231422102608619192610614167384401200058981788337876367229713053799330438596473386944082360707259243970059496871292853211780745295798730749715129688274169175129991749598340030020488671873926643574974108523733932019355472533734769218639781909171424465846881804895735502344478237686914232134029705641873382624716574926163377694494193307074123163516460159461051411530331983019034816652698868210300028963156495719593750672014220299908585358579322553726526591478527180781725804531176177620054318483900796620616748616156461280523503481026030009310418327328431148382356283921227544862838896194974885325409109040692319987932543933279488656031203255896684103083333964498898487150975644640174521790015612355372378588967940654717641167541594116300338141161124073549299622675784565969606696362827889022297616774826009807980477370635958753296255414907869949281679635440710077776285798604924822164547439710886189631192816858951193697077237635554725355564961783164947613614302248704563614964254733373020645686668846098351171839886400491628490872858498130602878939505224978218956055350948583722478151131326571713741091057274476482623158854763510601707716381199650224983591821872797116987904312388259461177438322136145006021069615697544619878267043538105439098309548658021439482176896908481140058473027162487165818211316697251898723402074193730045036911751026659429094296238558709344982481259329825110732811185900271262888125381991019143185724281181458367372783400020712929311822980005085374275633278694886775220933877974121312016194801393123870096231709934304455220934295622872546006603598288494995788249358035920495008471227780935326373994390285035342308421945439105330254768351631227086487659565581941891177558883357299886295439713980748522250483873383138584449968880946697829981143681126367259837388322839347443766707504038892603108686800730302137885081513841786422327083748719049025673960179119025003321719740195308116836421706046853719222292752986174347154269565943327879607554994252945657261079043849461464401336129076996115225659319455954956802904107871623296241676617136213488200726436840290871910388124004109987633717671812601361361263995072458456216194762519727469129573976587598289880448356245095313832169189796855248512921129687463729449759045510416318090563852596606913726797639698052148677523687801183230174524122514267508497432519805867212760234479751167703043069623911519746521092344313986937779456742683773152124847216980975964708793929991448722724674516393389623131782220938469748590770891523983774418011415909249834619059012202090993033269748897899816146002453476730136343982518022660602348070738529698473962926011870267815910497543381075701894982968924964268632184022221645031433998650089060718995453131442282180916720930589351578813565227939304817137961689935630686483800676720169174200889424851342021626022113731759655984981298888062859246249741477937824531311915270623581620119987882770832320485099228317776705414755263339227047873845752976720577940096403030458795384827296123562609321950273246625047632388319071358373952582329442715645106921831175285975468266931687874279613687049406939857020588179950030002011910560136905245683772626878241395613654710407834346836172309904075034980188886923509673565648094423328075086204595434824166543838642776172089233526662863297139802581342798978163146597683386301311403241159657056044412380304699689075783914016514491776053410549832419181247327207844004736146439245787194454157057023073378438616320461689986279860471138192984908712238909658719556692639505731841634289277998680387753961190286959517350074310393897920640154996034182274325527276063015580423073913695471885251190934839460653185624345238726115436082631224114653318509207174175083058675370502239900289249694571757581933242927221382358184678185422223720955366010703532527655538461300408268034899807988564030623557355445902527131440907650556085624665062394446244606155467176038765176212026205321931240945239763752867190948381910925248332897265197651168996418046931734780038446093645237681035809769659816382014252375653854300178076139542196820467837265432262640179621491827610622829829651764295556783547329541858408424313721168081403032950389355791839971240967698340285087014431696010392055273166195747872997217883925380656066264766690547346260001279009250146716534947413108924601974031360492060613076716095071686832590011067781888108997733757233289588155272991845854161759015953303641875955012757432030714934496493325938515580919386133580002730898343947455079343234999399746462285818540465439022032438194200340463679300108281208525103605830531928616286418368827345855527508340948568845649419741067053235667316099939080277254314882054688533514535668919143219649515584134127093766754410969985042151025361038386651724273604755293688703178425826432672378676601605302948518267010929798812489608188245853426105631648942953160692082396961150892278000229091390435862122509692946132360061471430201027458156342657196855896542417205036522415049363512913980023255623714596950915638282169971675872064873952240992972752207266720548587940371621183097723659617789918284338963081565132765142215771679613449103951602384017118389984673312225922016658023244142940134963283002415610953050667136408992127771624403781176492635522080638501147907437963378878626803362939344409497202965762140987814956988550781548489699734505520209685033366908764604011411379394060938630112189450576364508233903459348086437535831784792449308842887543367947618079131646492271591396048296471460986178128172501503844189937830358807771932518401670151450714181040515488278183353095252628663233263199506219090448098078004028353417488173982146839376749569105810467226038064205135650898672613562278785878141859507033005323702402960279944611494924494532783705052660963896771635662940696016638603333191372806101813406565214851759426730733410093862086827462099083846346353763616745254393500248871651180678227801205291725307922793009924940053800338750050011246212819027295165778650174249558755031343714400018870152869085702300889277075872160398992251517210654980017487457072547692505428835432727665583762273246615725072377775401089231855665509625027952185821689550232376439334055028939780272857677363214193204651698475329444760600701360652429329108255148722789336520480477200097895540653636461621139370457287737030770141240068764930566738817092434209576155582567726607939134719349004624260165021744091067588941595435990570732363141546620376699466104051946984948633123064051938866967470009829124748003298235832881329806863289848301452311708899506730494433169704742387323321038887710511566298056778743654601275772379372270023193268397071004996760246007677793798036899819303823057630584259017999767290841932514643566731293304492726282460907907994576325638451639503840194489089273670269116278034956126831935859806661164500891859243933650099489084962602877591193764083372878243561055537773755509003622489361693764525819188028891021648791381682508113343167567433508724140814963274810046111376644262511932155816305598443160310145797860716000495998087053138662046923850461441374777022789055156041001104001315799156718041169260949783522247685807346437369226240872075849888509149501973066229879048570493487139132442954540326790120381099584052500355816173992247340777598483734874216733172044271583018173854936655350943015512727150715593504009829737741804640079707739833128619805821640029526397279175587855575317309564180258669159017970924091599313203804821517181812581836937170464754335162847358905106159907056918748955189481530333499912685343548339516617492903225156556725765602563907711354029493185526209394190934417772521033383343523194278669880177142576709964157505407295720304621409793050858862477529777524827991058537536757131936688393452562011111849899403903083808708355191546491191226089868053567331693825553185821643237668942023143140261333078442184158578675694797446306185570393848778164334426067923576436189694356014006307243052106687720393754706198597657357564134973662004961484827001022021723691408668744380699382681581371335310004115897064283126467338118350312779971741408325874362664777396808369205752473616038286285299854880343158996829769079348682244248135983818249912112683042720964873996316346831789063314554075626996704364584870089492135116017642466615480223680264395141706767189453132768394315842836074690657569832036285854102017043316706846461823347416183771980715327309666076331247329899355227517107114374250120398389838516063855676750255870384340694743000683486547588361576465360149098160499033417858640153759769169629972524210654767955148517751246819989006679689691410279707798796517397568979110268828408834084493352900533363504801407995995419253350745726045927513029270089170294926577079439360609439945074259228308097554252251238556921120840760621182184445033179914842882066054677664258006235162555104391019367914151732848508257476254902460022921514404201963911100691820488758076305521074248485514974330450200701752252849152320517597112684157664725783592900051879146309850955561724028825578798523752841809143759955639665911203087931804539801646197922434380828441542088828756456702080466369503849051435695012730066114256597690284886718041169918232905427299042700972687090016392586982990705929287748813300350321399800277577310630433301155499779345960487371602732961403989388041580632885560678883514584508583276976167764060024931021953856632977544283781820698186990404110547622134522114945170922174568334291154550339327869447864900402252475334652635534849114033915576146779443406929066938682049864712912670994741246465265900979256777103669114070134420722832184276537120264759598560073395558299058297677371031943890942091130346946985523347186956732634023790627935410968990062593577648805299860569506663906977644834762886821784344352216631855182599457076583713010258449788126919737288750212228182365361512572080291001603553533057642384567017989261312070635823504871300175391520857843135019105255992431673549565577498638183022370899050315461871372820621014290115205112266361125882751696141900839432209622868537334922237455681781132374176164862182326363844635521834467260348207642475053684338678367262578110510337287367953000173413251960460335056751489413031090862044525736280156235482965934983075522403029843671426415964018356808302786422902498615823436493037601824549743577993173643652231991600234651234880223173018004896534985505669118791331017918648201481336740387406897586253689014358443294444950111190231662984149372574895132752223021347244850837592859015794504015879315692863776368695920981877822942246708499395815909965543854260252611737699387860758131743142981248238944541960166969222220526164303362809351180493752198159730324288690343294554557657722847206688871633132685900552369117092193161214791029659403530580740396388309311148984833400537851857006249926267051341228388345833250417361119583859325670543230408037755839732427454424235240791057930563540760440902844120367405502804078327941433138624813548237838796975772132478993582555602554399320941175314084169422712429644278390556163209629658619456972256733923960572107087271606813273029757834873042049656405654162248102927118940516879838831110459034315729358101407041227358663721292798640978536935931658354561240339864685583779370604620671172698097764442379779107943098257751351205367425983561342502321996378933557829205267499844678290640768109932162781670556844058745470265618986696403046895707324122981351694160968399313845067016328314798912376628636944096457707754075980068387066603030431238733436782770820351531844933672498019445675059395167984864597628229008830421539376937021703368612050218314281627378432359087566093201302595079332813570490440316510901159244973026616740583615781921578064359063628454497222139643890483921722928509421891466508436777840772483635738452696494065399388550486763321902125995856100428800649364592791719458346398012341637875513189317613556878207756460610085975216950717887069319474559446542595111815071579531147710134153831682791066916224676898537084487046148934981091054398570179041435728923671995059171513427469187203944673023527207330018250020697999017119113803394426380228633919140060969400978601476049280629448854980764314831062268749552203529194749937348153900282587466973980090315541531854874830686661026147291586569196771562313060894789160558096002495985405856699844188851889862917446998447708931717364057128761604855831635704021570761834042472277527566221605642511535184123036605361924563370074576719286011235386962925585233901108418805431047773204610296415183590157944938844521906622911803657674620392576270565182405481789281236939582562002846217361636170026338364590552322047461215254791021206385169032749454469738587947031171433525456609213647140797070537814047750162019436089427628698381990151147855784962833607711572181283375313503230910760210105961400763357103010902759490626744667132416896693589028099785762043354338301826392164061776087257596906590687269998860860473403077074331734456636739682727147218859778062021347279350924142644040896330361295313325333706984147379377199033269907604968235012792461876631463245616402010814809914295579907965968892633933146169397765196200623756775306514197151129337595282413349500944430898126850562384668708613767010814484048612408293973106525347455184658960361343393540849019974393421910862553901075307449984373043181378834155903494907219771984057066263228318356954668155576092764331644989180791979368311654784050327253505175972652107793401152689307535513602157840867046537536220364236418614434224364432477427109115500285050169569801462115203499720590591053526139209054403495469100584431232526563999234209648692408657638727023024151998639215157305272901212325165733097933422149352891118511682589073522487726318627990021746299412984479871885061881105680775684439182273762392037010507339306948693620914651530199170553561396383728728305047722742118400319661477986617139477894381026140887861594874907336062990142437412137351833268681195587631587544882767454152196527180433762033921030837812330004882507934533696740671924676979484370127597837758383346216042657786895310505300561964117272822354814471246576259893113550380768812562575446565833790966583351001236439884036526073313117837677498484241703080291751533980152772046038656740140475564890417780943865739884970112870931343392449620368839558582654496475420030132169233849328361078442031092159793913759190647232880158900788125691048904015363793011820023128276764937665733303652506732391918965718035077857596594390665895643004351961587454197483107474052106843021986471441947505835671966698240044684086859864406345270969353916232579000702601233864711841310544315477854850638882911415620131354852663158214887921599623898283041323498010693623839760812555157414599560220226283967216306543954952114577795445983989037030680426933357992820654529290818162086893681432450111444980565916005133861649755281819764351714577084763889410479399815655743934180818173351820915703458985165391428175573994332845367036340138187395570780676155236477408486803068182450421195973423785177996203193244572978995511501434195777067376242628220430415016014450356220398127428751859501640188005815235297768668148008320491944908184659636510210941650660411198507304791110848889640705978928313388921816146654330548003924152259078415271787872736422313741336656727522550993944322380346176575246371653246338921453076016836048275473399031409894483721688224968094169385566383297276453854834668238087685028151604799797592920775503664055636582786958537843529240585032579549440264558472601389877553051086697976943418887023610666763097154976827039365230542578609010305615805536305139227272627825018386721479286204773961106639885869078550745892013654853461394773231818004321007377738766571175907414057039919748335924391201068071842557549764018402316759278756974484567066599040564852077181869463274387640664693496466542339615793756831087709267247774612960448572443881289038392068433809918416572043030390750487637753610181515609723711747339375997046708942975440516689728528019904243784569343229505792290857542529511435052696122522379944844692078874309277474350190331457416712970918880148586926842552277901275428400555955384283599255510808338770791094175533684247448319163030982203824006197992867286071164192289101468794057573336465725326380923940627641789188578381228339358427827746137347906866494139564592011409513050500140761342246993637539510435103324648316985736102840122922974522294428055679685902822679467895564236565880948964069980695156067421891616085594995330485876468279751014503981594007842299911758578282142099381271470402679962904667279155345525615735391705936413107886347725175334379557201827637835798174057255238376182856474666735834868046522318959018791154860374057981906730962489843261451282705376059924477707172150922173368712243252275481004361937130381700027638401079369463926197085661980566670298614204054631847287794005549409501560840355992654732994834094865506781735488628129850780394392756679802707363800332524672742794129188593701908577175037791661834435521251524202344274826701429338643172439660501907664603930089103625242749752734043651987882146313680932798630484834667780252125807371742948720544442527279925012311649976612511742901291934026991634846953395710517706335409107781632930607269065154404970320655667153191198833551691030021941551679678735820609971828481641391894967105482078603413497800105754561441894836142639707364912967400517206332678001444339612465714485018082212084892769484434555442090720615016890532295481310451900876354252939447526428158697287699940831152013747583488571416203353907510514677550158560276153638275520116557219115553889423067322618139794411786341806255410410439371089543393817862081040132006587579245922942664299654072061339988378639565375948014022478559342218362085626787520820351519685534527618658277950896806463880646274142838268051354807416992059020466978550078163681767109500951524066818187395847807047539747700004056525493537156826060276730154607984476958261105555716550550891295950240811934429627083226536311743361410508589767929604146685065425855226684090792215932196297233778849481328093555421682158309758962622632860701238295704228699088779617030707681058501887101763952548392347634734087373584646040133910433255597481791068930811995387965847159384064035744835251179796169598307590198833168242882072479951585186287876525173798757260036363186084558107445202466758109931369169755087743285502141572244113417097854107837740805754829110457490303872788349178233942014672996273805461398586280731191088549328909193661180069374698657344307317457912714642349623928678369134238911144628741340025153378803618619480084517254506973757684049698153281446947004309129295353490954541782626762221295364943341669367007416188684500744992861045545340410990956151205689587204524040602616880046385015587237342266197895243905273038469001795616508443918989997269793646677392261731252200396367510520681022732660985403896666096017541284305410974259323635634907615439395202985361235026885485818481626449493798287970240239550032941587898753234837312004017062672152969420168318490440490582805362056878925372481222209647199222430096676908491531973452350510297810882016842992000075754604895118414208196785524081200204964120967938899274388968867607342223538570557248807099756530863766146072498429165789305815946430636244976479142834037032065619637071950239592708665851321438566371211693794829403497042268954682971344344559425894739528261363439375964114415903221482204352965459338147763735430861560014738182319053652447098151652343096078173330588199645698007469758676455738107332408105261402547488412565018088522252346472778696776904922281834290454893407873675676162305833715379516131248462226610475857734456688474334363085473346837401598877840034870995867589561958978780165497411731743418360287763630462027306713822981157844585260916212398340584533156975318811462376988416441532226100485100870658698872795426804442756168801290320649544576964527047204290039813209004422431832133816925044919102323173960771363073802368418741423816108627066401961926971676468353153077374809455993140540614107618498352109613970281304871175736775684729701392605717679274002731721376407725281566752764525854549390698182665475129073760014341110171274023218771419343887031430030989134476794612053469086222609539124524035693922380346846305040163599920260755748774326781491545712467219523343008058254034518653104225671543204065213914406888513929911749519406623449478137993047891378838647121314021695518376653513255756695998519673362051524146079175555583735335000663415043661037161050414597827757107590156323161493536822156286094906802627647960603279861142414657079813516598517082779586405541027649311921725422585850608441982231051572978758750178968817883744357545379002789831898374757937065189179551666615516232347168499425289626745524507112350512096364547134930151820246025100110538527218827383318250338294195987043969946382539060794455370063875257702225515255605994479252725219805085191399656514981690752031455751516362112574838973163140273709147402191689483322304407902918633139429523293737802968182122008349700391993065462233865012552994709681106078464534825517894478266707691264750417264018438039870176915027537072734325169785573969407413192548613283072103615366767677561538062087814810040448919167611083082731595874783199190835023340811738645567014649659220697462133296883369100431718402839862678200542160564118332052560663580235802660801301641726061826488819167681233662554834701453220041977040535156280488082082413490952923559018466698604161592998566091790898160096213152625179305792571982162773109725623165724725533649386243250111913686861033654412017648749354942714301624673038012761112333872567901301910405080501387536556778525230517124451814178219530784706311427027070490946027225086345795945451858967087074107744191792937597648122428131101840392430459057939696868041538736908710243828255031462773345801336145355271582490610296415040170964533492471288571049526201265500194134391350556004460398872863910303677060332632276656602202358103098365093227671208890736605272450020257702565939047299914272089293241613398414973274529148356593279891621962337525747753637397216653253334648266570484718759580785577889305378087734260575895034043434622335713835031901582501178518441856009295991542948613504675153416798747190083702479249915925845372345560777286559813834836809773853346018277974568131764822842577147938546208111101141061323677723711352975797733407785878058020761515918046598771851630682142399889573865292628353377484018607030436720473324655381950435543374172593509434011000785350853647408805650939689645410884248062560747563351256852617434334552443174301878459706277973463051990572443758762891996846603236395292818113305967776106944849033648970520642269808716650855281876548465315895709528735487144607985828342635084072942117915612100954062311601002034719090297595502321564159384749382966402167151355989312028962058430065075908261176005439104670182199949449463238880184451751039441040396187919010062091085354139808167197616718512998991384180245440994153702011783652467086908620828915771206008606773098171321531723855537295529249040531088590887967049234060142017993704380110822881411211167506082046113946795749138404101728031823260565786947231164187111333279659180647113106937391684447385147188374144924290556915010142263171273435856255219271438159486335119983192376179452642648764765629385614001822487123749893671521295666323671587992282269421545765896817031789954229950577788315510205134578758342358813244130816025487539283434178390025809082640314101877000981463050491284570340594690564745799089605741752354404212456561234192252604442462111849861339489719319375245620467495653685884453635011488889304300096948206536316066738284527968011321936901277716346384849301517796378945906000124102657313979469984401950752197898072949624395578136890189775339376421478178136463901254675090120455367185736912229740389735729738886098583741656385663401526772403032480634188038126141252641761275238150535868007539715812872748887993737628839562612078654706929188017723735815225546018761127145145093455861402513929036729478538097870106345572755387174701409271928734116903750851006297877203246147177498931296151837554886932153073374634218113978764298925701801378110964380726340839728954655875598876490045644983632474280106406877283217776814029579873484711863944856561072435577996975055164874441210763791480579370554671973060407838894919179315219718998747143363781459831697224265859092086070980401108209999246085313127371412392169133751786384989683286269845601110971395336079197154631487684739176022859111663546759360112627517714910694925429900193598931936687724752394205111389420466058002028505043375397975438323072390385545318224626521732889897444544949182360362532769989043574317565669992764175054145654775018029399233752213704698258690509316740027899246282164441640164710606419515286687375310254902659998950785598849684675436488161640526785786411442344524350105273304442097458844252780486188556257060600477951970825048231019968593232171040502185674229019480981885173774759495648123564326102082220168315140439019716423795500641003622484216972859442391842416574452513108768759824445046103669693724995112258957286451800816075263942654863372413975324156649056251613162544146386206047580493708948584911983528304444275828936972659863728677921818182423403245088708342591955055314110282246709909248987490234813463395587132066720271452453142091257730709635791963325623140354008613813566945194303077051040065121067033408607694544688350066253609992280480199748931872522604593035623228957985305333616636650886682245747645687378043046883197768204396591978929145583965851891009422650966751839185360606029492195983559785370060438540993454527942345275064368879083683719267355020810277635164902164701778018650407135919561581370194341503388258619074019312762333440013216065264731127288784566957828462313130242872517496457818796619319448129156043032482651846947834559721882453533575604413984245612865443765697965102191220850095454958049374313965402701649366523336893049492748397732128299197353810870617399429084385048685827322604562325808913334029791976797441356698606768957221512274602331274626093487362710680588287247502156000122593271732830134652357470021782657146609610651818211615731983075536719164195496351874212753974352881574458452675079718012984437074370092672858543498188722520640556343361288153400524303381620884526878679292555468916020687900759509544250744830880180024462692405785246169843078090732900081953558937892611341411518860992343489745803606206300626650675694382640467216491954554782949729686233733237352939167763765956224489529984063745734288794622884784375744118585309351709752282906975206987785826074827870739620017306725915373462310979578466964078663609437355866480540035140771567501958736223881202293530259396682135437943741764660214641896037132332588489708684953565534680130563142156627318022008885400556986132902554970914087735822241861422427990332590569158258478264606504868407198855279421767040800004179754371513618655471808434755343795838491087312178739534525863236021957962446461715673233737015835864916477396633559765906449245534733445360918957666278725344619674163135761313907854659304232849558926773075187094132913097045877369741402627977730035622769142161184995212187756361924500073653370144908567871028528091913995058248593350334486666645267888577320772156707289087595106622348658759520447484270454178392138663539823468202824682327056375401811689343592511711392868506595533646193401666986015589948170106796498614023915732538605209379307289116818076939138303575305462506764786202357443636410319452707258746612149949407087538531876337121349728285853138620098247301385972874220713104123195427044912667364864577687176932301755405287903925398408204610403421470085890110380586221190413751313887185280175287812576843580724127162554260537658065435465570828952664512608509758923108604997551171467979199227367216475711490141242009953710694857665713115022424074618085423440721071328325962180777727076804574117158503499149700640786786440355041414223846451086204158783979986489629455206119024232570666696022449947297924283916549737980078130770494975635696236744425513854108865810252608409142032822570562975908942169656534810132671268945064559297489326408705685667372603970591607175908282064132321485732892689324595931374270191073584710651891005222418893335923354299621399129385951980589337321665675240250446782484323015993301909247088352740562620383027043351025478478775435140009351100122474265240780957472110218176951094731052226125673401866599736122308671446074241380428456749524459959480481497408938025365760712358090818341436211306714111692142128238967607010381161081151792259359586517265506526447913222631405841599671822988293311610591233788510091129296752157277934455812833891432571288438314541572288935228681100108564968295064417396956040337882010463324498110757563392030597996894557490676559217553772368705694438757061825793742977704500309513984003093807546957211277015508356682213099934624373278338482099026809666554609683333217542635841126868142215798988623879366827859844982961251580593059854610423914224515440467194496298753150894045952598765472338401044057564561819637541350153649342113522633139626810868818303054624541105023693687437853751113372847479973489192922672272995297680427752929366040448456637158173362751913497854039715236727087680686353397550924844348129657814944628801418706173566533064495401072051630360787625718279221477830235084308629235985709795836939607319764428147711748732437271629365879913595683926824892932950108833431866554204761698499829964954842343881926061626761936975213359676035131866250811491406440516085107011080188500653955768238345646104561271628793432679218054071378602014146675746966918821672841917325591876456885910046740351352362669622661936633859319716396172679253935827369143588511268393577278811579481029640795802194580907623102422415420441789043656361939517564146075350767995952311433281925448174074343568015343071334620035614058849679809567451340640477892289488115601967235911135382789716532184294510255374169472561880044221163403118475193301869419694065401588348432430915389475594541076466471659320576160385548143156979103997736800013905355381352627671069759058015918839674796847247336095828370813639646702069590759547401255185482398865980544603730400475224775573092404698265593242884272679633310709230282106053425547861495305893902061636588776140654373895943240130707496783419429887960451036313719843876375683673790061509826943324242974682583074144351607818222099677308502421233123030641670733007300954128997022972300643828419744929051874297191735456701995770441777853227469917296046342944645601579343249579285787659224085436191229167541155052259338533720729597415056915756108798607661356694036880478968960615794927048682524240930464248715298728757563068905549533356230630443804114330838495164904776901306105531174556074101297334689850205698735617154998842113760177638230948179304991410516960148820824762681017156228163881907221993525331729042534093220903557749654563560696290586339266036917489830079265575367566630566155993069350380940101553532322717647388113137196185798158735797894849493524563150021267977325755079614375788315726534583734318360885910870402319843101221112854374846512125426491296384348217383569572553555964643927904450894164383487612456249494320386373397013198434589113072184393990030902532219329193112149498342705638534955676336041971756502558641260467781940493282543526724291700742950342300533109494559561650303788969086869267120345618812312764342372471892501795964921689581746100858912465962026985554668522540716037818403401182725220138984697609062430193138627275816436129196233981341359692499226265852162383151086105528286232148080710776411265134398693623509972553493811774681898017667270883402556615442093783070175907770552993968418414256115813715055431027714210796337296932656081987419507660952453597482823389030697451315116365889959925857082288003133214314583471767029465179091327743715744698089694435245568704912615987106070072765330532973021104604384742040858476466396582411420025507768387528701931000944952977210868324207898979370222226384508259355111073582510800215198168727250866213659470263185597754299814304891992970566523888025879815113026650231578078614971632211968938736796985837789416834073463114786389575051346832932586720430594266585133497018619346211010542497206735547947545560385449613242055128264625555147864179370656697622528711901327994696801963485580981810841760663687641847254402312729780798993697648839110955335459263649779967315006254268223371830670638250381357670226370507575513892540810826001251073683980255909248535119813756356428794269118020493067747321186081122623004931223988768925236807653765663871118042357662195666333613177023077473232844991500159959245888555229628802853392762352954149061419847747762075417872018809421282518763290167471922569750954208449853863451701131730795588654698219610403955531135335487409777122499578953552105971255191971756020251995221896397690649485545500051707223657279137156193877807672076828085290626587118783777202405340083694229000146764138497996413518345934529485689311543745327631215173402433496435843259134565531330724145358774539304980291281003224522730667301206662694357368218618347496953632541590712792477890404902843226728467595294663616737452647419052533097384793275163208463969324119942286287816126574151499612686560513178533301231550268822744418051773143735469029123655843164584425837249854040086176945962838317773688837769228111352065573916596408197038203728754008195200202253954637670072028049538706704829312785244622425337886745314238114017061908870928376884722457730599446543575964297984680376912387337610311207033198740658264277415262451420726885997039800427367503669408387599741028465469348474377370292621512696349217214508794141325461922980458346299916320778838614022340782960735853866230504354827890191568576973774866812755150355389673842918399385354140685253749060647069117387362128443875038454708752460049420082799786393815159408291116458769077747204313010539802064853997498921459399123042502959930914745436077596465946624341180169801538359424658005966886947963728581752339919887929832501961191182361188322305847787894906977649238291005175296792639550846976011410730015809000490133564331942632924041553828400580842457817702387304116461814797766227041031326660380442572284366521372164028902559327947083260701019613402779701190512227936688578262481033382051222323329490419663128607199467907671360280905101341536202246109962830350451164251415536888260650599222906539640807133158127495880935175084834313945450235218142238750078668471287406579626867446138401615538769817355849885336828948842346042902782241282665930587025775276584963718294977266144861125443618465186129834029681554978947644212744512888304473274444286779085223580975175072701363807659247890893273533425749265919918192009970226376547484143023828164365083107377569529510458202803492835298744001669857868832121048462154920522995960849485677089450737915229054739689493387450617996080059657509959152779718961040623111608257914475613104651842340943103879092154298899842368879245778081616053852349515388971885225488251382268451885262554919810350349785235406021813704235035473425642572639153220082752438834487902224539316328255561484993410698074180527695649285256266784374131846926211339227971835237415942186925701994012585658657102646123812204078088245645759922278867545571660663832903836205886464762708905597828199297203201445933230611465907108321926593935352051455053434491789980625354421697495320577772744842719428524153736755259326102964436693201689305075112113914763253358558761981959426956455483437054651897944290835208303114065127548795369726885949739020268083002941041678695400832383863800380329449546131162141257440616066143146554074887343371002583147245085164969656807797930927471761031400438539474081632724590280260655810894052108172330426758208668032283079440581847258074146528457537172473353552012712057793369513795853128920250496183878133972308605151084443425764694463713219876076011400429568061976853221871894666374171162392584558068918290446968326640795438944080871863267845407235971177707989236512071297372283443427801065219004102565686149631123388403528303741578343720649837332604238932561018723051860699587648980798835700831159120144202915117360940313093581478484978116108078474116741307067938395841812034036467649839453006349394802319185331714033958929626353029290078218951444161064709927381989935169028734417751512881216232304518063762057302537691850547846369330685696344800792801635266531833520600415355318112516787111164252974704491229520363753517478423767021025887819423976430043294286804627095479019640233703960315956237426384420459817753157699664947737080537806296314281698328411800270381599080697931321060928686050105081671775388869363396339419195248314082168303240380899714926786516307112770258832534718339955519435570073458159831950529249203591864238319186039450483631188268641289464371286171834141643401209768351715594155828299678250028145510599473397619599384122217872579392901851370087289683471623200518305526604599066909076525215414642714332679101897013764922551438520126562085991333140539834701303411886650998717041278375963406647915981810929895236930832015854268451235300094166947260988244527410681729310413242588939633703755580295485889651551055288914518974698098011226721242950336110692596363106809251930200929379030136056410414296238592796806383683383700040430232535884297546782395236564576211861425962999198904279004843477078934065332334172823308945558700354140490809929225170667027005234223046752627537502938220345441420012770185337873440261850293635172493503519557487868259874388897385027781506223229759267790206069371288925577103336566980650687797689550127630044708755294524419154128692004609931137657935538427470682778516693559476825744624968602357384407787573371301104270185352602175467798311771563536068525537573044370231321006396682734454264963921502697337129059808657860799194943024545851452889559643893463511353600448561542722350368026980011828011092011164008721197302719687603598357007859135810884696513656680193791883214491413123902747712931354023097886637601295511311028175298666287830207120509507673396762242828832379386662028446995093473053447994723323459836789091266487616068193919112473809759248393123645860032427834227314978963675091824134668453440384351765341601238583585615639893871067496752433957167376076214839370678591865513868305716922304570258309549959721538916666700307073609766265093998418904653379483310833820590430318545530113467223859742972491205178659963475180937591490059573524200092854654887611560507769857629124236638232790796848382674668490581420846724665430353669567498943655585072926289445599492228558712131743368503386749543622624189595321080510355868978682281345626675858896160248020989472831119599859096583418366886515226127329410952057863658885350954815849521527044882878168039502020063085713362463663724704805243424261366161058768513463558111876040346919731037061477926546156351169161458387617262292021860660108528710641854949868050725167892079986883879973008810882674009643251140986032523739615318008351992677795067532016449533368612185345903202947280078610190527903421131957252399732005562722826938594434905929849615625381888682373540338291067073183278684678380354515834255848440422109785012552536725545391239211540972315871823484380349238250244282767379093658440445319054256499404445653398307876766007214739578058205586558309866926931709435787142581032394917220221206812441986913326153636696459584828937210884919067453048310871400386765120644015742373916014418551339736092227142053123859113240061720570472390789270130141915595507127890556620727966225444687231179748785072217457965184485088463352610617917590816154372553409652625192561981353737891106248650414754237141386608050214265394698140844832142570747763539489131006304940869616029760441407783868895347857821603666287265684439743582187824048196525579675708156128258743143794247974250844354257809228696521845164545099982997486691580183687026292791405870359913869648221699607861481714051612228950376503587412313306200841302574830534668972042512931148882184676776779005721509067789252008286526067873272918540009459920183488088682506063054748442504046432726749500972793357282087455943911540116154374791316199630552624010589998878899986712397418097811622683337025922790005772174130505615934989300240658330674557758690677561439409312856799044163193053491643183126126775406168682823067830450834073041240420605746553327847231581742203186486565095375728166879423429637411883305317717174678237346485671798705868378303317065687836651148770609147185743747851875313702546086384870006674644776806039157232835485491256192269626130036422466484204758407481270409370505488524884422823418808598057232591291411190863430925933282993921602566473384070481674561447435578069514460084059269749368406861890109931639369618609230791567744683589202989759284345513159959312939409607033924993066737461421213031053428000959741099974462890612535423522562653974603080143183216422120826762898826239323598152621053401906142339928700485885162225779590743100724870465830745694893223538328574300282166738732018861666260207992360136860639040995235703718915208695612744474060224520471077428271475757006555150978962798861093138172282704013438643924760566305865020051260839568827517476019689890409590021621932529176768414575414708468680539224398910427230153828234753243822884793173226198220336797923331411575012142013106267954318935134078113614651253909949527032783778894661414249109010485742016108274882373891852102988551713223741310210237895952472866890512494922830763690840479376998120937868932230639251839902609684701239137042787647642651144892924022697522021598119932683781668262391527233385276048937518164530905521524179956482420680867591474795596539600025649223557688571328935146159246475674077247248142878686424185621281476921353547559672842695724562049838301962727758514678370317370777423943808271247304284014490448950123004311152364673933662333545424863152133410660532627869343103473854976514967142425891528166349886445707756081182251767940955147014972594711808977249922921078124015718664656646197441628223952893687468123611756569367924116750041161069983352441899975447345381424492329510386750186830406511975164413922228084353455503287640608174508415032159039942710363021014606771395835381369082917157726185994474132798379828768288642649705906512236985126185099480405726070035452556739888353445486642851567343744935459386997538298898121261147064558901610184661668000558154552039148624377175053892022965796220072232391352378899722698836719487406527472026818094991950311815178390337469304079517044250250130661589509132178189995503232493743399050881602119071053605971787703525445513765472061648170107903754674694734042172458059268371969018467075543454795697696295836103365088703479224380712489948472573599990221216683740512701446028441485571484770639498971487967702316050881042836631764305488127727716625688265771831593427627113442008557092589708686310331457505731490771855178779146691469191001956642479912756570331903753940317495052973307624667040774436378058079096063995075868808362383077960574502350496915242095971063528488862871715667045134884850935893271256036049746995334355434724736354412503759146429089557603161003783977140369319156166791421319076149140798723478767472010919879121278817983650291509785347629747763419978446046800242147534088871588346332719366560548475673832326201200750534636201996436202646175498616452752877662134710537067193507143036767298720853933651044721986036670045030532221563911456766584765383780073464803667173960709987498631679324555529437957208280220675876270381892060449456694639402429582228399078145245550998669572184569225132893653107974993684564103983954058680451497631010251514785370852718025316152037244326530342799771130690083794297062659481766505544427283451840716171028086440715154856756910522352359025829517033700491286730715584433202472645205211705472017332461193290288314556073298596181483880962313807449201580043812707268070387230245628699222244978968479840338221695990834354155578394618235432368595626426630056288042252911425955121987504181478353221431063708484918260314838626058783585866952203599727150217268485701652230994268504146849512781875699135187464597192212251196767366371642264688983937058666250063327886323335707123347819464938320961491774419855205075203295037999136910578490182601931305065980042577545731960539070697922728437020808831731593317106859295238234767014803241398853016272633390574894684674591693136728247761371372688195236261589540707502860987199791117217290412495025626515532464295473679908809605559657072898236351803766369931960143851358988196383273323112029294818475878869298136171295711339174426561598598744336196422139558325756450759319267251848543910955154954645923336725845936502948072580071077353550918902623589787810282936397191105590514876850076798467017420532977897690911538546367700002104612785626523170354956314177273898021787833217132191743161245815364322155827320607394216180263218253120617398025030215240983184602915136943501273625307780672963772226859925472576287054647539360007953006912345404821945428830129004916320304036435945865505461696470949461393158344930341960746704963372678513767747068996335760090832009976458170557664179484584656297235076770649038408861723417542505523612860405913948893933545119007999355381221926183876829389768900809444072607675450490933364917241503398221486739625805947472604462372874409396757949965326560886990880133192846757866015580522495572836810439440372923761848667130324322190767205897736947508547115712697437621364928167008690912000056128694947571662902041434528131622083489587018586157887516230788038913586564423625302761874541451082100854905034753158703115456039389049534918114985855352441601173611771004387100444512767531836754576894707060246917639140069089727773121933289004324707050678825913864343589437707068501771351550391726860747082020101925902748102308742936269196918900386594621975149798239888336083942529300713573379794214663574203422903889604198421736711931031822980452851078187748874696157945832475527605036658904554261159948672830219495336076144501454490279008954495346186151034424202770485761938517495651061986604504135508487402552774663202514315263998150515864229368247502658318453696053913147596794065954027167444767620028777737040094269190125768588072192720320077418134278117544628005345650386433196937975338722203774458613353009209514736530560257844151192721620409527199863443040774465542211086686793561478936650592312508249547889433572550939889138409368580634908833484865217846730084337483768138683786518843613790453129833494579363097058074326953889579708446712376571820933807976897156781458445337515923183115412606320654066228669613566465608762436223682550370007470221689310064417061505123977464271444483698296240351199714279032760404774442631541210553284085595685770013365506307334120842880501285249104254172847102216900751694003698326779470065419835254900690079100534423992145788881301429496375566440492633036731671485565266117906590931496789430400098269071766367626411887702644237605545368752016023230634576782157056666347257139581380100026600639585314157618446585989796613058661468460892635682718948087417184642139286742920465323508170313151120379599782376994786594726354811174136048514461114014498443605420676583377435307782935650292306028082263731959151523794273809953382404158869313698077458998429467410207620110510689071623185131239784675319092387335134872270883549338805052464285428927804395770134227299749909457157542502815878144755551355414314820286222202977106080839026501694708547012179657109955011768058573814198423759770594595814907521747039326383314331689693753104418553733617336204342555833919946111691269874381236779905889003907594420411585484926817354308566818364740341086098642186923565917972660242238102883813284786490294002817266789192594487454686115549392738722948287364760517656259990429856323435254757202265916827144819357982524248617276626867001579136314737182659490640966654807554082672624988614151310108093409696483997362274412845553174338705569222028750896452654275428955594873401765092070212150719930620837498557603116741746429782099580139209195737394468873889989769902384034651308495932755192046882093601609286646598871040371254686173593585210072692149512105731794231128711101072960911079451713129542585053511279637966167820471206850956756668866091476954375532506708980497314160229996756146651399252649022042333022510463565087420088079575827134448808507235655013748699235168993013110574773544040515253223715488853372995085594568507191405111362942311645540184586405010416836961992038228957383998466703567232968282704413258459673838632429675105392306551589220589656231562397988108280127246178391365340845640608808039923014661363510069451162308308093500124619140227397925326761361308285830839800918723635015112736602879701671030635773419760078921451491285010501037089821957833520737293600365220819482555949538048398797341380997549044948217372582644717811627471161202878941538983433596873859636346782737090036342572459359199514583763548446505102586027839817686223924184012370078066685138334957766780353237602810747459011766697228705209548543438368943520358621625781788338480491170937077244350725599102934273996007772980940071976549992467823253321526891887766635600310309540725621850806025294072512188742160894753925355464504376904313545727009136967162475604962066381673043317017211093324110896303014224618517754715741766699222112824826327521713506227149084716219441266823288773449009628733973943786685949743329976541865687848026095024766811553994251450962170929637402542108311612793646927454380755334645386735029690888097832977049817835682834802025643799036640467407158829110165154760033545736134460144477177546523696005428861635710850450136726281953938615572852978790728354125971592937803669891547302572717612333576870885045072172332266596091336987412642134836540180930536424934298961149535998127195196246636939094986617923967152106816313333413599820714268242771144160170423022348739237445107143118230440810706318936196660555377381174685826317524388207203681326626583928894316912262760131768470720736330972312585641210079645571895234360494201282995928986125808863712608269640154218653321693927113615197919080717222633446788301139146259384882354915412925129567252697948322038632021779549797159214928520182701754930208606488075732198543499674085894968402277888430272546684323299150828350344732974968619085570903093078806646667674129727798125016166238738204654049120623125886293274694008586910667437093656511915583032424094173138884797153976108690956054904548992406259089477333459063114833017397617493257937055142118590384642856858787540722538326814848496726478248953737213695390286684019934129953156027288894906218460536562215188359935948459212083056487011724889044655876779146260403492979654958558346827792561207482555408313952528033911666277794211420608539347067722265001448025326191772950433757218804626653478275412413454018140175062347106971401437534859254395536841584146024653697814674319937576356499533609089327414178635684634194842698809562391694832274181181851898881525507701505720022025997218650789884172966462606869247955945043713273940258152140828643757079710913050615215298518717146662468641824186640938334371635638853797976721749035697925981326655536584756967796301853652502541572619126537922095191168529869528269107728629460646349634860043660865508556468600197160801439394977948310214417539792372682353007386280843197315804421675196726862836832605576386991459906778065227708918917433629462351943516964991976994520015255249427569173917129996684748351850329083693053545796871256573467318077777117980107402454166476020564212832316500052333159938869510920514311774908766112301779357419541728872436960239736655823840171042090741094889931837298552187640579048467943683171892701585009150576565599761613799786316912066245532786941149524021573319414810904425041130643543251777968803103520103408147271670668431711828944974762586391438332182776552734598196658884053733180582839104781255918634195925228033503711884547197618708499368170821395081325498405405502416968088275086034302894903406249196634247315479350217995288098616156396703496752299891370597882087751084431159455438880129373522823927724376137792178385942257180823611663387163521404018534792934136479148139907341406019762246174429295351061681496455582117853150384264715153745671929261232311091375332479808767799908993279668975305079155134792422212140056541859870589168558089154081639422575535491724895702208048381540760902186989312367282122731314232846965589212983940993769087004785232878878422738038074461431753099298447002190353414145237231708128377000993159268522198049981148935448030270515234416306948812177849328952192743245202065380747548088400752980548785014044844870248453976594744225846098483882198458317826709355666608646050123805613563651453016339065403365470862461792535857194680759682732287768073203710482747534680582233376383546195758346819813494143965323077207560540105592379553128153433156530971491747822997856169928361500719894679611014232551402383487948180038143999146425813644808358498366554783696753608363162343157444691285246660508133456626744686385158291970281401548242486291063907491622290194506683635347529577559524788949825870788605343841786898737501237226168844644270383377490515938377290723855722976742341789475453161795809952850297645122504898029413026096537668116804183417833809598045444561579828191133515262288045590530472533845306179198596765861299156423271133225239681892424862020647215674436208846507875710847366673703714563988284445562477664939404876521507623429413829216036049512280370456575885476642075688880715307599598384286310851692691067954759984020103113101064042108561125173854730390626640036761761153824099355511630273855721958980841815545050013405959126499442639194035645611722875300630520536904916066258481516159163775719342536916599518502642365805343121809907777898583845116777067388479052637728918062304805157985443978641139016771957902340231572935686263808412116670473941534874951812189924827697085914331320394753639278852256328770162792680033404920598535505800524371949702693664249412274147210847368206736708282325277753774423645204352406521918824358835243989691747024146383567176660089068541203052754282143220834166002457486407620564087468314947177443495023471867215760588424934285524851580662863628819292150028896704031522387114806721190933518921229238329960826845570239479030203035144439884208657993613352160029377886713391620942922558696096494900308255781958485055191801794697646047842406958452960983731144676971663032694828338436349133085879223039589354656594343579283343574696004213138556068816276013762968498335396566333358120362395811124897348387330026741456991892049783905403313861007092010038227046842483298508613819648375832681389298472274988338124059923221106478375981019052274591959762277610757243386226595590066704576387406768229145542952334169465495572118863008529496283081752201547531856763576609053117880475203445417638547223982485060475018487091220185942355290331060823544551362113530967515722823423332605467171551881959747507922894379622364231182157496692739522577191883026530159798723181791920599365018252617093029355751457433707398366463474219959805960709819046914867784763103556386089068466205139462394425378369256653246832314062722426679952000690197846197868410293050047515335435202884181360082716048526725300480261795154595361964586689977029518582439918657505631225029528402097248617396508244509781554750933307813122160267671770005164524888784482431186119294781588626995171611763785926257423345330841707291996172014033500576903927641033799224739092506824985420640082199740640833926229221115758456767063173448099539224662043599729030841565557039336576120392008609400735008555068586865797759476703944030748704885671272203182445087910896834005374169568359342162926554901552395397591356270778268683870201024747493958604137500258292278838340865177258475119600027970788381857868666084018510968247506930604088076863737695585909447913003531222566028188625696747415085701870020128708650128020634479697317903221341070504009302501673984082807095897604331745785142968801933967526021813145460303374859668858673733585891010991229634300522238597284732536600372706629136001493757774386898195740068768713761358925905539784502203555026717514975755694997260358796912005294751896173586755259609229812471947473210717552431280993993297004678547575301663827571085586419296739369026017891723393069372793704506204201958421942662847644825527900974367230332698030730928179461502477795052373188708688211667755618610016002007506962963847165719827097728663834388622919556447899751479874816550509254852349547512379681325798940092315019090739602413368523945894841615092206061717853467598751050950846920007208378782607391621836069277586347766137125871922480046163233718871235125357356565533372816154917708005938039298700389220807826010858917545275997374647284559934816323400996409317897110017901334623382644686129775116379053244331808988448133211058851747745741133038032831150401897949292145366640913717154804773418319394903111828330018269582925641700960899354348142188800794615483768190227221617166973131155838187609159413736265446428929772504719555185837581374542351887698773041302193307571970388409935028655503478315383352032677155248581952005021067839467085145990813977129194606559125546301609825682276626928229465416634965026322937726564725912444506471128133013650217671968143551613224524288167051900491555772252354993858658100449321810034563920292260199976113912397887040184406380372328633327484481697874596363374701587753784006018526947943762842227397763123311175378826205687046528172877547877929414065720378244616612401116290977600151716482601997898445579482890886365625462994761305849629691952253693351046323654781110079651279885062456731571743718478783345079264387518640647145705251424992451855085157412775796673145743356953741564577988752286190818643308517182974350351761930109520701971481740880942119901783380580221582817706261468901530974671843292233624144390783526507826495846330091501313744036636561057438791814536981754413258022988794218826798438997981619147451725670627751454574515981348211763499476617056746803223810093688112556033478907038522261875891131720026600316787630326838347709077545329496449331415926896169856035832685625797576716122433350347936185196909970065886697235696436366961840466958877939949600555938187004773975387570135352208980481838340604753187434784680219667357946780204152238772934861788016180529609453043510727263416058522557759507620882923625167581597361286245616691132952637459652985311999987403489396001436617699892868523198798032968026221504158618401202990467373948522658546130060749043496617638974598757523878056369552893617041557903624580228051052350920865286064361880483054305201373736045670373185653790470906598942834322855868434268587355740903469294378836928700795966109271938455278349582920487241194498917872516636946661968593251534397162548743028635092509956017220923949313779569492721104550991888115884871530138221022450164326315762372199858668862358785572329442758490195220782709816497677608608293899842114936474181550841536814158518750496055550028700086742152459760853396835704942948513292618847209473023607388704428317015671680197525464802728944833827463586799320226425040056101683209183038881230060732399327937291623733287089289095699155004367740248379948454505695684561007354291662996774926787787323837396333556344560560644909530177122852962653483850800505566285691909477779342250953997513572847520607938309222464680664691017526739888063270329217130549067074957663265934183957505401325261476347397074259655330750254465186723165751290552340057401180672166604691924590712676839783658993846954147275043018757062555090460355740841183022386354961104138608709876676402172682749342357324280046663910927342997529268370202900023748869001201778030648712891269051141068108963975842454786562291910471806601916020356281417042426659590573163888476777377597028624151431692785865869613954919396907454835571298298357513111436655492811741639400137695163726677557717396795913140727207650721782006087620820996152116118238027219622047279493566457181992513137852716970323528825454127035971653161406932862350007280043403339221493071475387426182845639994768334058382355142172417569428476501817880184943588538884439402895224245276452362257845357817614638354415046880128596872734831551531055794002303944697017771451871969595929804636681383763497967815305382029260294982692633082292718713483656436910126668918938161683478963824806712413100385869178196873754077474513156911786737705410127428494494376200494267046185576497969519948998044680096341913143072480488038795782429149969186494282685958747132445700131081844646303383468490437441820324653614295500291968642816715369853016171078669549061716319894092357228512497256425238077333113261891986056787780601864115536877427518527238270553822072391079885409607551141963618099439678097297866114193529552285731709431594566637690615968120250761626825201193203364764831478311049636061378768311106132855256057428933307452880117210486219464989607590224186848042282647160848220593380079234471989454286422260514320396379481701932395830707865851570004603481502297010056491038347619007687397968138071426365495465209668001463224937901181307812103708232181674539098315180869182407134147931587612404746354599460193051608445580097241853891316487536790862247689627307177971525540296638991544955309639466682578308861100514975062876885907855186197141112479416952631971874003461076244809672859704053351304513978652660883247681269572928310679297655423314042184251811739213708760252631968382712731135890336178273479942623388585139627486762705074826710163971891116765380768096615355061397715167552689338235655358707485569961146362127379032754195813871221833299533378498376235025298307486533601759829889357821964967853192997915620570903030292766068154982813227554268625806008200255177225070795895382171222419022039882428542176011238684067555192598936935909394411946267494036215050374130045834118625332523510230711702081282418468881706714941706905278898771581253979146724696299803890177768462053962120357563261342919145335398170663403683879496806462586084820895714221589794071192461103401544905436839517236544932955407032030437326069467197358485938771222833305137316303776388932524577627913192448191180561134760705316808112393711124793246911026045538113506207601883987723242921820192665492180865602855992997271834801715865067271987649136313819422078044347039388283596331824884455531622026442411634774256566036110729644728119073962363812542141398820415314433972360808330264883152081813208265733348883647917312381941597843987390913894555534893745618502711921823510648790515941922141629469230470805679692921208097292656405016061785898499665008802869585859913973938876923304022861018431919188152825751017072662261356213033026522595649259571833231835980679633446799492514308207274088663452495380942144503155690221080544852726587202801036391657740759600042162636488632571876366942830037300362281402991460147350826700870039039647368654160849350240509114245598535830148701304647820403323449847780484679586509610951438806271936737743510384849635853173444527239275659554897789281638585795341477722636366561412017845583177903812755380811728600668936105672338362721955076885180098798689065555400606401829507114311681981301734053998567813945627988003128230080638967348362998606193134835365889216216814791254000482864830839255028439384106322172082697825141550023073336554629585242870389062990929129502258696636979036448098402267307315985713536817390675738845861301316285433765863890833142098788483144527695788551988143554282469480439550302507854537974372332781932282351071375721953397916935637876535276310227182592928855265994202772627243314172441014232026583572193101075226202792239672118865470342023172984499314000984474292576056599523323285824163365145554507491318896614787564308332728685678533584646547618909413332687975629848148036437608763679858594927670804482479818996668815820638273059704497151700670583670793444566226193902731306386747632238140858883309297105225163751780456025705008267902284019161305463284076443663726487919835291507650702586017794958794498463414384745472446455536034944212743969838332918031007012249896338099673656577477444107390433167420036383600127244978657419959906847205161424117101480624697094063043706582978883181978433096292278819932534361112916747156922095685681589155916795804264246529865634545409001947778190749632199774088117602857525346747063204359828453472584517814344219054931543878823134185843015553909876372001386558588703554404098178293329575033992034189676554782065770336673929943366664465928480228779064868968400273846067578975642215204580226625207265573637168463057095136325696069771017050997103476437551240725950660209269100652422814140747747169668087944788801347183410955814340267572532717815369812747247918916585854404396784181375873206284402375668585925872233626564684232052070593090218818138218722652655793723600517491180408182942150932264911166941563093270527686474531197968940839225032093923009454118168521222773940191428315436772294364629876459934335222801667120293412504486773616324177983305620844758268745465078212973500978652223939093267636875765004041653617789948380548637226285879906817007340269984679334493072591164725066601377069476268830532513937771719994907150771147971067200544269920783801216149999069998033266925721529737432093647393411287157392130425384409434954519233105910742364735065958060070151020011034020676809346506022975514633230049337340842711905826726964481685736136902891004678768479257876011697498712873442369196708624069291099076860097170290787761363108744095535928812246763014494038777421229572278896077605620409499952307979226523458691567959781611268152466525214869864528637183586644245521606231551725985047293142768808462317895376126656025135029621883868362057145202562554724452764187398149880552928319447804839826233443837139375482650688762230002464279333300747884986414165287040238578657817666169395360198385996315043046282417639709284009720017446086117784561521700264951380475784455471562670287830113012292233385235781418673841660355036869200577322591790344462349335511457793220577667667574102386576229167957964632588219548452780297036733300608344233557578297943835812898983369059285969269096712820884584521203543123941164303552460142881273839510608337915040786573901214146941749624665083381119224485659729076166329289455122245703697428948732542521964304839802118844044859878441673423604466139250578299686199447863402509415332924917924900392381321270333126258279485314682283488609591893164090065419357759439049093368913496019544022071402898976225356070212290578229664483394185428164023076398630534260526778499947148556916214516254891789948461408135655676915630400886483794391789385907783945553337452501266872392409891019739078600421967768226323059837416858763095450501950884871255368725429018355498829338691468809202483287158150916552034779271704602591453596886099728039800284632748007429646533053672161507376066995693926677951546862633562203907229453300476975409277628547569232233852552216407310899719945748102512372457424841042215950511238839825612777937257718693933097177007568055966778492051542299497274677125218731375891469769063057749624608027854681365000156670065817184311854029513355156244621421146136548842633001634510638114283185059679375385784647305735698884103458592508506630992120968585584346894535980388892539813385721671115532512789213578731888555961573619576605066869898146550622127178256447969340378792936824834102719032601092992607672416402600494759390681643970883515366358970107161461434142580370326807285275493219411985330012783015280667621419695157319471564148115146935595800728031853854435896009385926821725546531812311621358495758324683173770598536447071192526947823197564259389385888814375151626636088632499709753591071222407188926195433386621933782455417624121544498197720419323520792958015341681722711065358708162738995937631107213992064944796833998310756980308099688384061013374880731900046782877528039215403138139791061525485841645291897253667392229061262511740742268926802023468098112524384884369967163591115711246347898106457384099246380946239051203095919524155240643752298653828857338197705493264535893353780324885812555384325719550796103198436485901797900470380588892477580388733200556103841064865781060209582878195228260092264765537800608907532347594957842559365968783210320395400065945035807457391911880336093438454148534778564460477475304337865233998861087636001729463510772961634065146511277918392257302376511943582748450401374171586450146341685122977623785336398483723357340753381355492706706014905946520104056167165087997824924029138962790536329703816594616545725646179365073704434650758950706119126422022266368877795037869129244930648527707124454263181264592876069848815002481142602654788454838056810286057306574246013863303367921619243759462108541370638681052670640904632388411070263725209676571994273969113629813828077612141203754074051937792246667201947095778482966844929308574541776002402790446005360690834396274605054469969422256897277194291040913635608168618354347601939012359343973058467403611060707163851115716347291973889156552358917719673044927276222561251544550308306773883445114544668093149261856841222102181307648027844449575042632950444433831931254582174135077126061442456341255605886964418561479340089297082787978332229185151403052603404323561508463249596584755298755734281290115167210672842882284878149654481102996296633742033588726212943444104758437545831410171476667720469080759192588724842462120119505514166668326678214123429512186499059671015614818305958390076459506488471974352087095927129785461780330906539073264096718820545130556308735736375223555247359112307048022796257490952047396749288201561404425863595625696092787649669949677535082340257955656968456806201583853545061484374789157317759905262979910768868592094054768296381904661405560998709197373261810537689596604760871373333600043810831435168533231258862528111669654947862841757673134796356328382249222891736848091939898391190780716802820046704937722962700449874421586986491114695078947129810716984315663745741378875280793528482807333893382946420761614567264594174090369807169340186050409083330452858149413272228895473238348999316821388902305655876767263653393420183392681268924814201736521207070039459637575482679058363347623638878559830738079403289942516961586189190044196957739475743473579757237947185878077970485456405879599719117581764221461215160404594648970052295903041303198319758645604521733245796196459424271080299058821835141949294622057143951301478806408722555669480736876830462707026730295187382644554994749221380769561862386261840750193425398145754657679580615079796000893109376672856489284855512602056154748502687386519532050092243569391498544774920223983623376581229535843007557715632065208408119192513512621192313334334782281243376577382956315566385665820048204085862968497063759293366832922022715301853432505146338313402094702835789352258098113159388081412411035401608020811334502819128616754696115273187468175409780563604337824540108467146880532494784202207342844395646096091292815043279511854769797667675153195019476115285548180995875525753793932237947966843491069109920283531513342886213868580930719168331948165623458980627938631806326103496668569486841136593243277839136215348308956812509756795329435296413335952539171315341067245500925212425236845979780815582611446550123925931881400925098791242678349217062765800427396049915565697563734337089759116307656879398239267586103036118747501681731894932634963783830824515964626423580948189618702245172122498227064739751763968385479620644941964958161220690864273316458633703311295686445652818111060978025391487894217687157770010063125378934504984242648234886838798567060550416320463784664416443977392048595976013179014682163842067741818070966773193730574332711279303919106219839199136905596852830873229537851759015451820291778030517548617989446444033084933053145144384605683617375910907580342342255182727418240862545035544040148970876593428010794590837206107175735975497233387068010782516838503506460030840959013925828680400569386342459552417185282843144500612706256006316483164556501990677281556035629314433161304776902859806042290947369660897586951269748780469474032236179263088826625062620175223093070815671538600633226468929892682586928927396245944976857983814452303902566148394247293798268111921964794798521304395245598600871467732409201523201030786566131015410091179203381160379119098962853789668880801366885214582245064135754581550811035859842222735353390454258272540986185784163782764334502179542096349996443532205208076957532135073337859707204665258486604039056122813299535501254895978501599722652309267305894480469817454466060235556301059304026283940510755573524336691242989781962778299882607642039557380133953150144213090204637721233357896743409403584089839987301312735581984442271077049054342062095091482213357030155658417459253887262234160159400973671246189849787889024375712031508110190758310882173514224763528328622922498676456100624283720314125477002465553254432374130206789135407182292379252722350686842902628677554427608961787471946247048388679654996212995809657317696985782613211000126380942948655527380865605749833355958761894817492154039266127784051179819023032481019185426012291374917854757841673100049349806445056205876328409684213799317221195544457492583317323354068079569872006458745145813455520035871662151780485141326048076280403423241162639738217049290774202577575690094543874076081469455267137240155973779838134678048804836105421270447061616918371565596880720443387162466047483595229401019815961541668469394170651030160269908664419650845033022728031312370432969912675424454903758909988709333025725895004568124364380015653794655791041963977870870801592636824182004853403060780213272834607294258788609313854988592562153650072998154383405077686001022646570491766666088019298198199040342948255319032114422333610336402417614068854214205847880971214175059598816493765131703185812675382181697145204191130050472297219975472974000578540044024998598905830213098778690095428210155538777322333431250123370495159513439030613530113805975824873616387364715488722617999302142690391528541653424758018744827365845419203634525045857098586800696222772294523873432710842817898214610298083450039320547493053089187809661044871527050064906415831834863825124048571776239248055748049930602602689372399990703182185828563250971425316137110935945889613487098109609691051799708676418295137937042309033135667806980397124703205188998803972308182256993135971642749655446990425443962169561354600834414958524075952172883150844319824798743328595906632100200413759888921218024566381858091718911661266300513664013385840939660097133553293500028587353742883585023659866426424265129971882691907896758355148596406903804148897226863910101270739941794992428673677490865402799772493072138807525075221619793531771242286555610928740673854231106658876046760299190272433455102466466820513950311035131743489903577647905078189188344208518623939139539760009769479540711455085192793264622453875308284165979819223945264015578290020697995126242594492112386451809653977665956952683206893623433231965050100254863252834619309373129629219691176061717897559236222392222768265985244223667878144011038793642652864870019726289469055029100015838893534945274195653382342130971955970027290750818102237489302697418789702551100468673544721370632485742274048464535426540078199554647861976745679866806523398826751496551667756908761122162052409825167016813513849764645955389338062345408501738147050871950605560799034195163067897308658215991174065202086304386943610650295386239858752898036322135760161812190492601865623298251414852076580013648852039757052021454366781127324977001324528553698895573212205693759627875790961144434294914243459142606284682366524085265717803509635375860712951628953689140686799619896066008368500766092853993171388020435506376835697960084905654220110536296666497063851595092233811061612536600352452005734626095560212911252401219588636676960692288423458548109251725030925960212552533472427182818760106619215942947090720577602732718124162673853721566039595501440560061673419444234383610024949504164958112062861374025809541384746400947290199372761090493283297794736945643500480935273899961164064761611931510137411246391217127724015174232695657329392401671961719592322600820224608173361709019411857478535154335430219618115343760645540023575471464834138419106228720757220311250451919073560770851437993315926513413970374713161135321998061578107155647042392424587560777531160528438455796212512342510563740746075657301321590132944347871643366570991127183991884078383843918353085451948616115954521551240809703822625106355784286597192006678800839983113581102412035205105401866982210203098753316607737469045067620012336949347915186385444792347962759523152057558268669599080548161259222351914764240872361939001566125838975206439139625141017151563606655373367276857830055316082107463308552878384539058672750451249728587858220175590954645803296909084910031512546995635648529346067288554668388537373327403701808670022475825819533211759846382579589103441962551721377557870116878089368329124105423795369652418431502907177770389990692503636377868784720323463318890980698735294118294226749361382435540280802594373284195665852218362456787722569907512099920024174586572675884302451362568964961898804029807014231619638026311504885908289754636948012147046840557609535791559800333030869619698908017764611772224209139495329372564957532104428722895447734692194066008589315461272971118737556925845624059158665448091254485576271607012023544606859839942000791003747138814895378101658624384904583800816614517866774308377389213708816114651960271835367399703092281542641219961263927691840544623944627336487187112906354060960163996327259555011070533875877830697781573850028935679812622273960987239805597834571106426982529996990567042840485508730098796708020043443549503123530529462739560396205876819141548732622274271009896349419834462163975258284999698872522603896118872854299613443871385000729125701892072728194819756223857094958687023475495285972307200522630398003541610255019116226484935603686917862068475368056885167141946703297027550870793045124415826452479128258269194406269849333963936820523859793156947705103326961905143723140124579869370059500990104542918605665860140004006601885888245135216603755776022951898158675459827162373280464741462946972747898329546349212656348379088538106822191067527066455891833819251837713090816809678722632807429485099479745555651552910245746504349126709013152904146617727690873710414893562416108264818918049688889278402029739989648330522123827982126663558900865828139056055774712148526299799127503454334742007047186768226556750700234543746029627409345634229994214306193631647546581556984676973158697297019498750820190724856203638977403231704540364179385768599227307030585161335647105386038255883422515010303075914291930940606772544728493452161060222534063853994278732824072809670030916590153805370540666098440275683568825284009383709590372235835682814670573767362998943017229999017580267151785719330348070343045570778932487844291569526978535049359104954953093730063345400029009320715387322962998921867106934623368042122408633099300305323688639032814092092764395496084063676285022739669588157538986677671091818475605317511034679104088862873721243473534167240037563876858260236961421528607828989176503118271374093367314078328711426768937698136806931776932050838117395598343178112681068918240824702321201235634966066220881191564753587006113031464963863563277548754752343593406262727087581226529399937169165661065229075023874932479823005029785343102883792158915390562503145457802271363784929040678787739696992458897508665211338149416424909019951340768831510537780343387091784426927108588473773521612037481197305616990584713356141587802639174830183339212584758311032623043085271166520986261954475161736134777381599981773754876229639610427464478061111972999648706664636954464349990383498575837619365178287390721448785015097301065481466224783144519857631282206584471876965248816013431082648197387399923829133942798113120659678730629652424692502819636982322878090598702900871855310109433180635725021593824569771439186815147358819150753362714747141012913771907953131399830537902198143967458370251947137279813837505676618939632456348689621484461077229519666194805845315576197294359680187606106954037585289161846611726738573821575861958070466375022557235052513001163755511631378155129952050403739581855997648630562032567480793621750936357366814364985901545110835457869989280112645572364099745703475054198583477111939537710938173987470217141199396121517889080432865780853180606750769660327540913756891933992636296349211961672976040728314197309728322652444461563927854826900011715381794683154654675965478144685781377571244300673009960208926831054284117999496488725737139084649455918839480080780512557143359188428614710252596632907270644480293427638404847370021675087226127797430017815067135025619796649086372436998636906965939424959157761751735288385835548035578897133214940248153625711284111249215746526721534737786108645836845457460550148623703291051593442119832166106031584226090341183608433278189739361956618620408544380231614877885922880774171051269540363556759363902871678879597030595840941469496784870098836411758301554323847791430468684472884790470982977139293663585848369072003528079562625215868100036911432802079020102006065394228718712482700818403732717238877801580400130295065827053042170623434588227630354485435478051784586733327106274602911906617201808167046573144967147461191853403733885677049231357083348125415312810549298662243386691294254324142732643353624589757843632246279799187460217249699288461629997936971984710594588143078854846596603246844130687488823782091215353909694424726119230079826105104858991945999430105916034763040529505697301906715215378073450919632497048934215699728686977602653925792068083662596764325692696988880297763307700053161881763137151333180609972564331888481085167960182393972162465732041622814349868672682080379281835084654858118004427036792285185987392186332642680484938722498801374478877041007376256382982417175820750452425259598810614479988871262378604558299728023449873885691489764346442357051863464723675774407273260827129323128465932283078991807414627427645925683548972539151540755177338311547339977941120622164235273425987230744323264398311435418863148817333726385602349880577836182993107811418408237318090444487958998268257934854337586312829996240752258797223359369758444770761552158818316017036157417182195420739229212222858490834720837834790456322891110781876408301302436919416097719740467112269942970747044983630939673885148431866664833859298321988981071432623916440976271483651601609029656300436066774041396965797322799478251538282710182652991048141878866943604659897247703366750607575085458805805355173886978972667693555422454078871717803582387056419002589865770660237872757933629350448899153831044913534495789813559481085382453782822132879872156336896243464821406624932382329482155907536407624213423590450942822392327226225570844997185142769463354338177954259136807635416453075228832084642683968277436734462821160378095053000681792142439619400298729476454550901727129566834898693221298458016908739300703128144104271446015085962071815842947920843189967275810498955193823133955152934585696154244541731677500770733576881128989240812049077381701491696384294965981303073125305454304719146643226703278986449490592413913971596908918781775525466756382148134328853794848130626747577316104110348167649042354782677886133390045812105820314572493345487403931485155253148820997261285660863987911713603345564946503622409392779624756637677329876942935138608680117980450694218838306977385993708885852135993017217170587868137489919240190851968162914563116718144972390702682911753065430941404426372231644775624407260530059858984577478399763005119564124785561488699523942894011719569539800105859852891454374642662642188073218604056930111028264903317679477998712452135670864609756371872588042161882044580943088977442028867998644386362579113664599983491864203376287047445818218935050031302047472392385774647088938607285352807729858268384730031565829350835532977768343823604347652324412407079465170384960943174780535771036296445857414294505127038196523567402746148376937953659623765966329333488006472348774514222334136966662674736502180688467802702966295309960365662150383596795092594137429198953015474227908517975147890836364795532511878795318946148921570297153990800136696042536291555308305574022875412215324164046258175113881309591839608276719152461041238059188339157623347154796052655753363493424553627873644007994835930989599390001930921504386143637679028337936872572345580844683335465545483536545952734350683245952325113408691782632210415565683691737122755379016751226702405137767161447857116464304627654775705601813368393341217233330643588802228966052925621133577865985137710998586203884911353599522874026935800436591008948030526420627108493182978717183847715512813239334061012825861211163475460252299297229622786961353094177112917763262053175495012197094038004388066492198919506393505142510970184082365790981046116626306738367877376087095171918919195256267154376239351660278187836325811131696865243525241414951240827328831781575308829474798621119699667889949062628157454928018555542940206631964620121984642482882765088385207979516070185012613341814821611979737857353464230099279548588694713627127883146584915850771279224662904590743142482867472754905074588696346149738495559348682038459511463918336830407023797088369286148073512984044512238607319035519030031602623549085254824781744052877104087300747366960113494339516955781345895599259144703947110095124936975163456368603270467967915784865325318042880649041289139002209799236432990504117361656344093432506863573995055499016312812647245242412877871343547110994744517185028696411460533878905856086745712033690887322573775409329141349268900654918431642904282237687028007786264655440609193542875712474016673579561250570603593941367839248860743642176961399825600285979207540502539889710839688774419951370611429567286160480687888526313101345529712518786122285166463567140148459890213632978942610552870975614204721232846741630912198634679956721645136284321655397575750270940002781558735971467628647410264693695477165892549169538509620258541960878938432793458145827932256401027953785314922878187652967570860528493038165572724825908060741208993977490631498530367606290627591930761381324618160858266050145969092575213618178161286180689524830275638607117909987454897631000927847741035528102570913404687817155294209204950930991202593650303615006704918232767848507211772916349800221746008831869437773428285773931106719766488196681869236454861620226211157989967746667653509932735374760904831560064691181688591415441107731500241292344773911463914912201617438735711135813010762251316794955045602749284959210310383043729366912619587019062139954094293346092060206099278032612884342591979357608910091885958913595579336538179912226009584087292128387943678602617190667923922658541266745396287577088145709729950644133096799297697176704490336585567816449780898727593847338688486760151178733239323079120590550247199298122165573727099700237145236468014611745931393099864748995924189356136830947764377393033025802739421824611741614812166622705471788212417329110313011831948116260228482319067596754854645925892214151886594228339730861459827984373097740975580341608919591847436649237483601182760018728523043449145974441867579103645677129778762095220892290544831700553571918192381999169782816594035794427112338974113900037068145477922188634336383631930157281889140134224767942509509295914993500819584087539956065177505725418156298407879878539868327647078143755864138906812522125066373211176952139194238265992613251075125372902615085025201386457601016599585953856533119224676649242582612522110708844996974955246513607388416062290348993026788449054202359811378851075689711402588346649731566045183596672962174280115784350204526490248795278291231798095281679883802019965703345972806316719801268931123809953736113607762099972760897677499051094525124979020468964620475247658404135916572864246772559458454850741925383490890186776540014399616612786056346906269378572223721067712170262793065789970562465787086864558935910665801034744124085232729452175934696827237063935005886372109055098009786680341362689310334115969144830045997219507611843689646392091444495516504405371329826812764360344735110369323356515240121885704533127826853257384038243040752908105249277021706387122689413157541189844403229470938377148501285955906411047196885352406037628387415893395597532088106353117032198607917285749218395459636107259241893020507000457935523465433062268177259808406260036728438433796507903752798371297374014343211590391680341447864184906560593113390727573094173565443584726715680764491580548415706858484875339050237573374772585080219988143117312620289354209798428500386550380777927236246084131733550294178530255287975550048511534440508266798815481264954122585309432490286259763182987891827620017480733629070591834839691454680773293124386988145236920503832304748718485515895148667805860384094225083520344586180947541169563795297569340414294760131389706774923701632951473492318095099057917739463325564218419067533978610288898679976971642884073245570487737865780215325928068463304310108198801205671330482655487662460053377680478058519410148778540911498103797727556140691583826071226544180965954994339108411063096273652569337586225267306959484151847885301482971746883574598339658455564616318666460285950658935610764316109608456357184360103722546532305622187331785732077266287565134019548666762081108311331886620758849106676162788000355674581994628270832936864433588636956590525800442638891408954083624540468908927490815915381266948953593510891005579170209877846252205475068550064671274111400934783477661252276969005181521889115572316539733237328322387268002117279748585669270249269763853963891649222165373300524894558343834255851043013018832508359175499019250087426185288230571978030135528112399689924640529974240103650575696599649551036153871588942384886020937080681606710483074489906884558963965883889658639054267033930098290245294783464376620063811156666943917429558991622687238009625284899459750082644934482322155885852527300455146589406391811224157439962021381875889330367108143347540034967853037400391968776013468405560135673020233176914717880226416767554287550482891762320136427551763423961061371936529601207528662299087550789327781451519168648778945934525668265897207369282025013720318914294377592277763650229926066011081147062524991225905562226718861994355400711516766632972010906564149466309975410566331769043382255062008874675346357398158605344478371549565403548743030290691840476951831072343958964498714589620955805687077352714397399690462193407186324389292691823228883344557445072654530431176381820019641357457411219583463923058559988514559813831802752179950095701789241214912397780977185528509440841891771573838535858651407961689942191348533338186971649843062783765794373493087582457044358880233445614512853250581376725288788856869220112646265667308768766117234009724224747525922171289731432230642983585422914737190140505888420429746103908546354737991540715129217864273279745005663264537799580353649580734443792589428314564538055842407036174501398311681651145385988827563700963326556525600621808286062658389520744197645367890001034750985508693755150480175764983009957249812903833476692619473830225327144489076746530147149627121065259076147308918798183674972987717176521742667836933162109068149546767757806133911787220087475822101937361763391148905288193017216986597652111526625945250092647056500115872044370215485847762085393919257009145690198709504128197727786932635637168034980770335591871437981393001160111709948368246983539428320460306222030978161636898544452048448085959705380384169093093497316951499274824062273911363661924282783095575908373640518721218525436118647053180517517853552194328066197270267782786337580615020752593738580780323027272735486118363259498405006921230639877121762760475582370872556884734541035533978818939876889147337238856852183717021053138792585667764915705267694119386401313219612576856045209047190855812947637674564828856157687981837044927773738356255028483520087010340173626921511488623702848422674425241496135474673046333284051401375846693152525053256422293442167724530356903688671479179274692705837565530165311257393372453907111158944510692983286082995951263014849872046870783548581484811014230775963352462612934694342522761628919422922618970688173318079270564734311473863473413442920262124254224755657474704268363130260183486083779425284952142196691782097509619584660944476781082872220104546150493488867227902456935011404823306623431644357490894820271978150710320683426720992061758974711394784879539133433455528414786832773367239576190487081275004401758116142661651799080411066518489713548142699439677831848942224140591667674974601186305174672222537495857413397300671802535022963118425048360618776493052217196918725990069733131605495926618801662885597104749152158537861743867156865234544236980654869474406033403739524601783611726935536510763242010849539511956637708600556809500549817964164661722139991446418638456743877698797466657671954029900839691259117777916629508972046916981282395896197468767714387979936915376472122085487879732671357799276713157219907870083460729854332459653663213465247067126393617514453114399586533200622823701476205234893582435453176018503304729769009151671289778873825792444009999259962905190767585123344170154174772476262960276201868113598445779537108907316626274562055252669275544768749025361587070781140052639127705028184234591840047641538676560268298205740509626619266825566305522449638021710082231253400222491972217799175942923496359252521254293248945543059089916832918804732603375372966336782451789416305879352121357846788465404672737931553376982383660487238199065848381758899485445620038372279763068055827167317119495839205956438520785148831592583391655911374284288784763959069777058365433645583672826310541359814369590800659712318943547790354539527820364145549435937724184147690950821607367253463517579130856921924215251985901615322959742921684290498265593962596807681504109158114583591644148160685886984717837782902017942957102807766328102115793034460837389791166653439915590478688608126374514289869739030919808478090444668635574424590966243247617354870021518605082745461585073216146198280465613412933357795780898986607496207224818161495263487210500749937826249194559701636314762211447229931616384931147053845504833667064020684365588013041857057366405485831669833540921699306282735423462531637273422593892960751056607625774972186823913677143766805736701410367780453881999893543792577618319757301373036522591371297277191974883345946255088937688307603448981658565388124931773615096249219212854128501848377411799209356377772992111110984804582943672448130732470703471791351922303755347919112721701838680242104952887030055561389106072847132286158465075150460913849383535438214467956876703955942615571241352325482664318597581005969926626165977210408753880032440196298167522398764374778646850115598109274489219736986155474666628232512084933963722749737112173290454316301660357108987376762698023730934718874670590011663644682763662987774744358405585418240077180490146182172455665434080995146291754602945082960943376441972206633321887397242118542164609471882088285827329964018665234881012473638986479672950224895130136265243304814798903501930324296880583042311604050703913144560139384217209895396537191370959612139419999218655449634273451101568787105453271679833919683056602915768705014251915940489004887455136883553126657181930426066850542285544447658090543963572694340288680614463887040132613391820912149202558079885616318859291476870531885595256217235894505551199011185935726913662162784693857243591377933751883333700555861537792621127165999457550685332298610404083726240638907143261782318979409579904590123238084684142182420601860925990224716849581194569559377691479037668900771724542167813843364188801403431407950906555917480184028036840627904493605886648544746386266563930942815668207001208827803946279616492526447056523643318231837432830019296424697560730938367407557806016346170150415513504103350638567345981214566696246667584018520908367093610579703718053913423197686184304459123371891942221631131999564288470594538974787976445178567106052620498871546971412934412596763175101145066461328492861303660800387505844764669148567228804243144472589928442315914530484534796566289568506856136147470432294988298247061084465352475818575667942208317327690659510111737954271936891375421470825412881041737111065235433162806222150557432518023866884838460059347965565110041795393757810308126607206335439753665024193622569915632827407542433364611135420563766981223693977109366458362107338205555765055996088294512621050663683947985520609298919087291799767016095461241406602950664285506619641554423332845797014551738171231646227732620665054842254684889279669883788044306096328770218583710929294461195874778548880955582180739918778988618804799050683407882758540834351907399242523698818223665114253850063750333202766600989371737888524013143552793207119489692388843199323011255815840080124278986019960952800608902266450369890756986212436552843179442062988096526855280783895879104608724230394210340562592291009535353755589618391131497366254446991151373895723580471423930311911840750686070165290606808663881696261597877499318256772110426515130110117276964804525531588215156961654883132705211241834667371084127926458117780261411259571193264968131863652204370361507825168927619412878082141547408457323012076430417221264542819457022142739614237565142987988098491150482957381761692072972395015519963816229953956258897695540232104707488370518235204514687581185689869170146283671689056312223825065143562436911654142618416644248939735355941851920084699627607699943617797987688592811298160603234603465055768517539219678264308321696951036567953139878842971302327623985946279197967292399522415967250282131857446724093887535114744883214556796840193605570037990149695463089504683250556720996058412975297825616727343076220498288995606279266410124049989017300305349708136068583605389238789740758136502737365934458730223267107763130505017198444276627803393537130718684267450706305684190132909407869016733991861848433290290088696624826137593856796143202313024353049253708073934187045152255978338920019928207408389620009055276227374656696136463501017161654006935839722254609753777660351282538701788742916538279532914126773843516374414820156819990818218803862271253804163144931480575457106690053281536728852001166813615630907504330404196053340335624217840903522742157180148632777509146517154453611811240224651463191538224192401045264713567034178055350192746007983180665799892886194886306761998799156422395910477380792045305281745323682672393276330497075178662460920043597375259636000056388830806344904978319297071634348249371429071522879962150968543626062762119266102301737220926918111779505408160422150252545691664563008638925494834965935946634972203897904264918643759995767787601501880508204318852056964500540874329618500380591085925801406832887867062490703095904212123972138238279751157628158176180899235626508016668231202448514656731857049216180186656206602834563616656867115307369503329588099957546663677556512265344428860990748734900548193035609087267144542518330269372946638225709154879691872274822622060408973678815099010231595387115319713488294031228140800193919755766828324900073349329048920981134195918086816626137675142072868510464370918054519320917391234007099992456327724512184847450548242717223899720303257483249038928538963496428529520797268688138669351714182591720452961419290643327371190095427301874679411494414913508016934659262088997030860233612976792284915255938678507182150765837881789920261596172440532230628918266088716686251432033092407157412658764584099428594579718879069987471463845669991631022347705221935198669021778583148758254621181475208222895796198625873053699842454411552745954889006816059504322741954575014279876582396947647783441124063940792902600436598135120859326923736201831694042906425056127479961949925888985442840481492267016460789528382132928004081334741724963871809542646395476016235329613397877115635757510247318919513485738976875503838772060728986778712526567583367957903750046317096498915720650654893368212770885669763849803278396753937768183392371073880245169128685112186120678649998803636538361382854278207912372301170472295902943216242929745687102054542924264808003902807436897850847713700213954381543497266092879084371892499483852436912282017266401219080778033222174431549899693703824812677186509703302466586794521424095841481526427543163659691489416913144532707405912091218408627587409297266383483536380413806164781463235438433816537736330055841785408504120547250239199304703119180597948236818132555131381220277653278074092501809208821728912537467480973896478728419316947193440740771491166039180476317520529081867697323728734984821051691944492819560156608531214215005205281503955770834955698200245221934372217646100340659948994941625029007455103741291015147154439533517091916708861184802076139298353354265985923869308655921080824296038936392144907721364364069131405269511682067381037459227875448711467670314736004863687494833580433903152744708742597126924526669078065694162701661900584478611550196734535561493170963923841351531737380635130423353536554259508973612243571987989538563180239862753573605442805290664986758794486254679801745917236504959044765883657107405709006797673580832704289085960008643563992720782892232547955191336888520291789772111209347288007812235062115298519596259867038637510899238705851703554003479907553315554667706590019389882966746821191401490721004087544598447061767060313759687343757289835939211258149914163640434024651682333768471879009248740348359861508573997596651423112641069029477165115787162122050720628899384975531835453290103022209674239219832127134272490084314515195781467802659618970342647333383424060832045373190125441181706638042850199285977733969590997732802013774661207940658087973927457531021747176008715658083092287906366573370375131004491407501850416106931134068649758678741221470362965819326610253618520687567041823748149749572248717369150772892186708539008286772308739561244755911053707621201074887781128042180777690887607586957210234984942815076520712860524696915965257061582495536449552188858597436423179124832095493802842190724384623935927685449016645390847424789292527045272567934496690451881758751730766374464145864505018187196936347369309934137500990558214713682747364816747388819023362047346744927087277561196634476903044551356929707682900463329157764956963690047177018144170591083581528744402975713085027699059519833572363770831410788365422937956948735937895240790235609713751651664729795904065666324970636059691171275808165642353675862221748884346731807833651308584162158524057382479172461909884972783299380154278326525161287261003136424348972703975238212477014279256264896199881874252356178459456011064407960868223005609325411346511493338146282583599536435873027723712938279949852897648317659937327245557339825550183139798161460657250183974582585502341600140095638794899559332144520066100110815397632704803119402830354978233714426758685194750110377344431026942940670275903643837485145407246571611212481863361508833828504158844890578310896901724567308785959359341519826374013342798941383063951338672498318531218056768593750585306197909977208708849213017615949238711706309495163615565705490616762099820236436717159109229129598366647934296420969462945771145242895152660297998424264110079038733942318290042840906042884986462371804143528426259546667681399130910984553040560061860845643654350364031493895011100652664370113652531974258238268002471138355471001665880456837054483550924753762169042927943774021432122083382623751874477340357970504795964521970052662891387078934179967538476872227713841644197915639779420965007021471615434805001632547353834974305926866099649268865640553856112821165791540416662434592358892150945694415253304885171833569157163780056737857972496581655432302029530481163771299423407461579788579856320565993821520363058757589151331291291816141461137746013566403589908279857833904476651648240733467866445645816953262426711751256330663657546055079471681434550141526463682838783681750334635458222010619416003871319349969605187725181198598595525487760725655896724326251373885652650883448727193538620460267294769065317225310827085373863103452409335523787795576321348132875968646014844534527974512315578187997342508492830622407664175091366865451802200421377235910561878778875359759113955162122270683517450074981747702542440128163627980134615950094698831442928387602620973516021318581149774342762550272208969279262958435833664579485857269034660384745972916098205915891236264261179966875370561182398457906743022405047558642900730373976161804824266655592670311617877973170822004164337182594302237967461332078099196269627902836047502123355607747649815520100191523816698201843733755860089321239011130000359617283065201639659826771361729459416977420079259764145407920137756458786971797525359677329009823876855941738375515485990270324337038374819088264657931911032873063628955420651548487043903912799728342373574237766251027327381853663050901936100912941659856612385594067100093692899776183925717843316289132478821323254695736405174271600894884246213781157980502857974231583487443971475019870643420742937738181043555332630390843803841517554659681184726616209062009366667708882389528650325827462399903461981132079778318534795418815012380566879435001697269147270362506824152675748688588839036987922172235559638733165112689213332232022221864833617556701492126588747319978260814870319198096676019276466889791921973689633619486734632079108431488655611403007290841222034498101001866108038925744266857492127299580968781717674521361036861684255703970138054492414872856049740261334947149423765823607339863413777019267828261910469342567787832832074322474535994001104093797515474229844131483218776811245955430523497575629027754642591155534458560359055363950914892097338205503621629558546075116432215704197075900282210392553033142056618624665784073786668800661663174639352294649542912159410311672334597807161587531254878152929736780131258177159030732794716879804129448118945874065558104495679899828165972752300133398710086382242496347230575081754563016933426568707500633984913563200480270916837225829345756653721323701013587352271274198996773045980853494562192920020843760261648481855862406200936992589331232277471453752426449382216513040038507245100450500318821679184517418735228221342473287948479518573992443364075413595275775978734526098659716051016648066027783005462014901993621567168011945997585181415607432781452626663875589774581842076845844631593502099072378554678370493472404548030750739509941037135076108049675394684123272720365564951352987577785943051862022592313802849753126208169469314526061423407908966980599318680180924441161496369284654085482698209924645691380845158676274421922017308073950213488550052867497104399124341891438743852892268830493924782103894970090455083890080767755812591423551584831980185006474888787956573154268319724692449455605033929589989874186434188735200107621427259439960500053780183763406115492791459509060853287170724944533173669111017432956693651200866919047636092426730267689080917332849736381293917777290104862395757886875499029804511993421121069773573061061213433057639060993859723040968079172797188159203383361602447369577046463911827854255202029117704812957781448041739552315109434035304243693566153521641512088499692001286551526990253997336232783860596103381732804933834248958580254256036395261673772822573586423978623149386776912612726776513159177753012813911339802461505975017838675198140220583479130256525104664731499577669849999689906218290289075669798193940590379048619563868382853167555119742056562107855826133607194641001253755604864243148279680929402398429927034069429138664160708426386151524512114961244770481964652410222531988791885363901196865922024785044885731117461028459574809453120135574726036445329151498499252954677956210893296128796005982062945039433454988097244344480235987088505623376802791203916323467197323485016707393463299211496031058911242780474337962783076692452651698944778809762562409951002259531563985648634423564536779545509475327009045494895866305940894309911547797877035681978567515630555931279599109645019877618860687949006560489301979251235587650797891693007941593671078300517744779666251726386784270789811917132486869142225526990501444461249810384804568074313291477784418091276089711578601560849491456868886512636349262129563369843713783765680512138623796600156730401135748143769732449691020344722107856113039128571201371234938339674849211229316121095770665232397187153625936563502577236144629096807075061018518830441917589516960718717488624843169444128706021863908896737439517439347801596465376651110427190869710270962971354150364455799766255760590420141324706137827628234473804965199635940987465298398776075095017360112154295242167437004698683633322571154437719879363461208528641480955510657172426558300938351159635281071493185779609376197592816947069707405352019157070851801603762438494009007813391086762807256992694152858691631612246085851622423965149284973029196376389311657636051580333784549270709279216068861825364735862899375475164664905616677856359448239317270558824577742157034920766212559685470424704122615564667960542086711772767670742759179845058012593702358599558739280436598753919007091710849087453784500356793391400896765927171529190313503820923770261885955502941164827163887617736461764849577864304291890065814316671765493807394809013017192768165275476463153621558391125066570947183694038297262924251083260710250933485379489114068843623726202345065054597300361781151404694266805596346923701531198864333521136981411221723576753797561854242242731037724371602261489681189259416546361039898521429375153148061972457752952697370117124884570791243100189271365828786374520287005023930646124647487630329031769097884169618539377662702198166234193285170938131561251348647941144191018623501538407311045517237391919291277008162995821720987773801316428020081675390437978943274158197492767451042114919535687541113194274520383999416678954586653121978321994110465586856021537560450697693734223705869336146241966541121786119649530090137460374118001480029771959017614770561797343497536718087264866341421880033918743641104047502990543867530318023570911126710849644696386214202051392030523111038692435758930338964579426122179804288552433650662546534580969166203947304079550852387895904505477694876166124487439241668514004537467264310188184071521231089581793697346613652991763476265222720227733589193876771481831654807636584180780347155112448168454202625164183738282929618978660530450805421200545186014964770048874482241215046932192052644398515065376873314517172756727855011058254902001058611730809817785484218788653292854183474007306917275646776702150681473861268200457885826785027184221833431526784684378140242517637394201062582403530267784398242164369831183825645284384582881940423041682595443714262256691500453214800852072077370474342526744272696041768169583121576787350757935139598040545495845289939004901506119436367634436296001428184860889415810356219371730928350863995124639489354200579125877917491618347214549723524096327433893545991856264750032176855098119703555290850947520933233944716032814503189749477693739203627447829383066077303721094483225901554512600742814580988773218089509260934950355614683280009647921906616279752275719820293075349573780863751098879960997490619080466574444598352011951067495469754872178047226358031167060295717146030419912182209462404098825912314616562742526079070444907461626284304579470598667443718475116190371708781175517215558631505725169231476489026955245920146240486868787331103164262773783970100378005161585001239471673581202591850330680158649084795105714886010676863404808711028190105468916481907719114505567700697360900426567393935568177698262487337293595834654902102671427607172237221775636775420339767180557605945071654019756734796752590782376475861537250476258366392811496505450581267184567297411610876108842440573000782781404080131869738644976639296084695877358923998212699710642914472865505832881205444716576382547317347872824236876104558075779006403777135562134711991376681389628546684424706677965814525769574407364456442703359961919623049539865710643325050372122413958262081441095186958249660888361531854414730130576193920343144055075897728564009905112837853430361870716845044021646404174860618778859625484994020759106629124471913070177953213078008241881185500327692852514687333871904108398993193918542681147433797639080564098049605389800031202636846086058634108968384016373809931711903264154027882433823528862353596061816973424909010587552433083784015760421819004025297427589763452456361622332976481332911184289995463965005346161675304423637022415045726698374264556966459785514100393934672758406745062897774319771437436473086512426228073116279404701582709562057338101854112453406785042451829757468202676966672134452360931622107346974347946736905902953075012572240044616174029782883926343310293854220029348694664886059614823498019313878760562538591964496116778830738634767588509618528182661334531243562034016266158910323853180543408056112578703723919448504097856636546149462563403835865825744142685527598397998925702921724526237841315883712427849194038457844846104247197005862507964996199771364900115745132239354793879668863034896291946114255685424376657469303910605895065914169034492125116374544745309931382662048324373410511232122008945578176196667368647233785315725090745160928893274039626805855611439661296729581918480740807274104120001533762849603532078362543948214380009101525542775602930376061892125600023317004058698575654465628493285965598840217532167581354955151678250150237900801254756279860639368104715615911662444901955285484554066875905432865500354195814896882819564822772321718124114716300902783255770810316658058867398046562901429193699913785855082647705489492192781606585629309546211583177728730905185309459433701174150886960829983766308891878599791544355115793979714140844808624605789374036443960857111612801111400009625332785877843392273433271139151158016749795312919236585120428325463690357532944034068333114026194094575680278532468591709829592817670078726422316410715746817658568677653266846526583832175202580274917955306627041392420767608787288651060114646044609950831719212947656723291803226701736917474586821098035723749202957634214581591308383368023406060323689371106489712887799573398985789471296710736153001544217182842088679889993168539680132130024514026978538475610879538431450818340330310151774032181197104666504340045098885197821937338569826836547130705072257824640765170524503180994223284200410496719487197503011342321513230991859444775880904703034469724511962104524717956103074235338958921185745914121534029247224163961380358833530127880911842662421271007679638188200834601826481028294427751641299845403055017837181647926299089245706168744715058199623403361361356279555562475084636231524815126706113857215653633018040413100408552136600579751464960930472327533929375095783993946579243259244285116046037680487667266662539948435909996007618731580467857895210642621427994719725607400022350126502955831342431349896946446917050383154247265562865175899580468023622048489442902690378278740443438683021685327330905212670301112427421572681250525543449823616626486875837939294756034108329886162504326276619086681880557373953689233508115114706970648444215269490290721357618957427388366182749886024789858365577106984491291615664326078538298738318197553384598297458342220045671761857492050879578135088452023290087102593306155889483657763947931780099402150845491412005457715598359874894300061429901394599851038430972333455435473371035377030052553823029004524365651084222428625274563400993874986633720557878122725059146557976812436310524757223731018665883012467651018634770522282450120372988391527328655368813313735880259989456929929930479185038071692808228382882415961462189316191313549265732021507275338527542728252021930321730947502717511150889306353865474086110619604202891169716666129497413425879440909997489050893875414244076305697424997821676868484624514756843950293179378005612400639017790860778304235379889702518588936719637327107169016461626109547094997221362126801472070795067657271028232381988485382098245747598653850530846713008175531194032376711652960574234938060121125148992245953156471182491123497524077951064702384370351808158973181470756197318565798006970911626954662388018722450008260132951865953729759274211237357918660409175490867353425465283420392574172723107102025452474559734812435102872381838711002597214525151719791499189659796518896433028912945285730212578456736678557524815673169016585477394861298429721837123122728043540193221093410028916451409850222728174605029450129033786022247869213178289642365115023455613815485875737929081305602825273353171505481290760178757068868240780475303672697269565047251786451906079547041568444595890762869662608271995441315319228570436925053904425810831148332034494541496070604264345071299980529352066166752363302739996144523782106052263324574102013849027898084378782778148467762557313862556075045345580462833209149087427516352726219408264030807793125929760188774141429129421037278481587261254950296785558002676125897236688267142605603280577205040835689457267925888224202407882550815929698961748482715543027451546206757479668722238604225978940416943235541735887769656405426210228633006297465654434798064274821104696891800115337455158685781795877687075627692582146759881208406726190235727045529259165489401903598811293388756911714786312118826478884599582735642004609074827437334443153742564288057723667302618612364302725568656649082450986425559766771925311132785730012172927334366280340707369152220483230015537816714496341390042370761567189957683812882910905594637027235807100379669859884030642857517355554214211241603608935764848069159840802553847243216294325656316380140690197867686055869885161322543822464850876196597069518856892088302462814571441599789838341747494393753455766072893472294442791049899655348144831737217168439491879501363976780592976016544112877763649083236658738534770726604751777653669978009848679038399470096831698272067029957991634294817253566233126809919493435584076000287343370593016085098721885108193470088482808616246187101493699257788456535482075877571053388299205729945492214287033122298449269876019909674156833118952734584614681896223098191386171466514798573017096080290138798790979403232656216237412357297406544048600683049522020074774460075340808702003731066351915712554101715393508623822622477092867214086419327603438012129753538911940791506583259495037831907580805501940175311436796458699871481247719107811681084693761119412693130495077605696432116531089275585812932349682431630587817519737378896693029481739950716943068923538282290676173514306685859907860669758353982840066789555890991864795672920953721825309921607605410021565502198808642533928323377222977031745885691628772173732409319195476721012234337040220680655365109487404706387500411004428546606084687588704058069971815528363683545849161095262069821548595360968118577858146967886582931606128701867952924293822508256989256988318435993551304331012320580314150080359249480418544656519592795004231233289497290356200374960543582071056015834365236033535903634502590791098161899313340652355443823488500162086609750721559805696489138329739589900648180811668919475362243249279901354322892529969855793112146881238019649490619460749572552424927848371605914120011883307262182675302029629475258764253203268868184952786092337499585834920251481935278769571150732656370334541053055384993987780141048304551466764416458824326488518408976412440481133944013887145611742042458280765125242290160678112139543230403898585991978641397971847343545445521462626825917543285017877008371775891775251183325965893366188835116549563223133181963712843250212349387000809212063441875333830976112107753881337066013798964806252398438658484428823551465290806215720001272140082796676288627411716179680954586562210922316549516442124658525103081497242232983730552626040127372225553927349429356574568810084879593830843272725467365365703899231187381236125181832159741309105250940747826604730065751593857081136059689251586295807579773879388799937929948177403060748684815893425958292641497904767406053790023656850275061627784471806501570418249936976141864481604033104646525462265707442202861552918976470039710015678067076560462321797334150684807279149846025729492408094283504089781142111148564654049373749130618055697659867131327548734562835853175832516982913335509322548425952451941593693221641199977259380902551103291230314779285367855956623436483261215094971134628474303321611796441198315503901198675989505107547795280452297474086256684624364515203252335912245894909399847453980755714067487088505888559500651645798362592501113374901003139129718682397860773560398914259608895158522907545837997767888904071459262397290768903563471858142602891015146827225762036708660191580890719380914878046309340530895781501290615711656422851719489064311102973320917369585193410505808464789228700255691621427871775077347182429996614665564313573178416080234556026367355733119309307236619270136243756781394835042457183286031699394433330219653657607904204896527592971618493398945398301336425369247841829943921148682465842301065247322539367863013480344040909296012450281850288083268955373774353667412690732298443276821155234177618136062719755238255530762318523533692969822286204843657373962693611445665651435538860038469801994217658733956454522434954142401533641644535367865445177882428971121646671031137913438204885917737951370900056571499948680418159935073438738567458466110185573314369513154473355691752250018334070280298110961311855956124989707193106716872113669347071816430656721420227840399609225477530345064613197773905058961241108837456138125001920914937120808536356930689934129028650312083147872502946996233807802958164835662333413909187616846883531418329645963156550580871275868256043192272078390290425174942747404907693848114745880465838457120719041284983244951253362302903748034770323564573625837717307603360508631099913434000704890199535996456638887500133327819657321276223511307460603421755603468607741403773757302275305846174062050959116877892202413137458067160065454615133165907141309268652140434515847012448240897047584766012491868760049128492219989464218769669139070108192998619304947873258918777574262712383568657160472703476652730390293403864903162067198163881989433632324693858382190478894414972866619341288843444101758149101300726319777233242591015325788928757873748391201860186000190209874712968773929248159103661639332923009253131931135271556379871981796504451058813848834337903817220110261401227590272570297501018512300991868333345746912012181878289816029036044784399170124739291394477743157063438719569915250817716037704308202798595233257042688258606577232529892562980676542684745413676987892488898739622378730492906360429752843837609858527243190982868626301784951841843144316957580408421292139811652924827795340192761896556906113512662843349517788496646854230843576434068806514158392436319106961948161320876452841422503023727564132605924242701936022314826493391752121158058223062843672932789910507577515813352237373412514266056008103807877905630431104301901164784984992076077536559121888123604020620550049747689688046166370833689069831330424941801425467353546778437599509369313850525082669306109039093265876064147483022564531097909092115956863573952974094202827356981556916117557795724955368965872729850777087147799662240362525666767926261092947248628170427416964834921846852354477607347205042473146253581806173244216122265613733589360497228145427493997246150576779290619254192400403980570203526451017546952664591590968733983120885474101735180169703650610478262907050521825176706929053976192961596244126222909533120298180328724379332709953203629616341234739548968536366814845279142269331419533823850643675340116804902745478502011305954451157323769464990392635010083491287517497026389078793316905643001933741824273769801601430342174697851587889223567834647689432573362024664451160167976812671887545779929558741080253787313191797388552925100429601688100936734118570564165202282404054760280164584397787699659130001190147180109133845645434850554540248216032449460730382470429526631519413355434698033596528208677474554015390719741794058353839777397144950572508781840417633957189364956725422230392662168904833627064519459996045117098716881836682369584409754462707986475035654003977569902804803701170480364104308142869282110898075599308868563573513021128366505866462763630666476607340439532020780483767313731754935889875017994212722190760588794559691939055469152031156319212480510576678069552492797220847793277632330995056195282168305367628921602224556936659278615892444338720856632694791923871633582354846624551825936982483049236640985414199403569065562765575958480890635383702612126046120260913123452106118994087040750299369584620655740090347375342751118207989867885608128687623642687732748914775439059711583515069359730918314439858403702663599847664539170402682852258969414122683918310451526085843636115336171788085270745107821445230323456249141219230419384840606451099133161841516873036019655002870154345846531524375424209342058368188251131700950503529158122155357748534316001435788766110784475489334091606883825176178595650917691301390838167032045553391359193346528903410832808016415613117244336995912375069459281289706697189954638320373910650024235243343556811427665711440635029364577899892989300508088191165410730437720421466982937129236900750286085593647857319505338261269023358094450300653915455563983997117011475819288459809394035357556038230155358130271974353437947922765303909921698236904594959632845493331490117869361474585657867493606523146571075359072322633659698245270348661741450549752433106271902088432724507542132289476091021267112256577256728559456454100644572615378509836691547615145226217451882512902150038463446675988964244978204910186499936907922535611108400727165941177052059452625036882493642532785241274251120981705758283806474433043714387636360523052081899265063220603276023232264171133777020496459366071920859592217939754079594143041788659247570808251140466969231906285826373199562241101756045674253008884698047792400157085749290515356885786475291788274708970345574550783844585567369740242119506325040323236524977393052817372453619535312174098841261797784903277821049690811445400751968058432966832531384941852718485046860237284833658979220071044627783046910063863557552873665160000800381396152284765728187042770538123037296612150680783444651915071759336783505932129022307298492802327749489678196914959575451430554745354875600257909572404640619152863642600008165616632781552077646691610795128346823605064213967784242689519165651860562077391686130047982617175681559701697773107788595918889776261473419777738281145812487066765720366456834890449723364138496553163138503102801729223341617226365677445948153668220122397033586175347275008031502672159751585528711205626248147222688337421550035850893955459452387111935344786205626195290797615421669751459729977154629696815108534933054592221233958786320986379434281621722672387875307348436811329892076996777537085295689382885275585240207193007959371866698083013808521533475829522273331660291479768755881321991810047362565707467210635082632580060366027169441815374890449921702482819402070237307431229212161033313073910898790622906802361690361993608682136400278985110148195241076593034111591763444875052603908310906426509872931814038449963736309159820458795073786733951554654323791590248675426503590722270471723519415661092750883636065417140700379745313926921431046690583766055689041442991404292419547068422071744015856668204025981305492539192429905306575754829693075826896300140799646159166993818726520082485808943537483447827908513602352846281668491442467755535293941947052268838291164547645463336667296173942299562726765457293764732990174861405760455307383322895432835590433756994595789466629618909660273086348423532440402749356032935753970096889807911298857746039938482100231785432565732081085876899200121368354552518879755394283231756699738301214834560647639600017530310875070337567421896123671135277587169778284957460836239967991068204066362754963094656193050622327646985823020297242675368673853018231922458752650937709667176235429833955516737293945932734096125397953755560049703735603470912766944354630978819377526516570079932260460705784279574562236871414616348828598096759717810503914660113249897745699317252169147583948985028468880355689624746670738708681645594571675681030196681411270417460267545605557255856357408813844694673930129298216406826515247368169631031435215787324889931109510670281360690850088338420073266580066985340603826374826703718184025314508828589979087183305621448696996703883519658919946182422828793274562980069840533429397228485714742059782584119112126037882675889523703745175150190982139481152835608627024556685334824529705134729030190790829633818878745028077484382264833243015256531688457591805464322727588415413200997190453849468406336033986653898045000517151646897539481320588111046183572052369440102240560264839651151820722967369982613633398198574663987380071727382137457083708819452519005800191294913731498725243899456347546862871641167962863178707579330816298536151670974825538424956192907547329718657953338760103392079593263404595996041165631375177969441579259681784367125524515336508572074891435831615195280299721478639806817113132449016695217131020334088359559788986846701770475078090008792688574362319066172105723107226739859145630248582988608258353970288014546518883727779936435487226130406174780584226895048851610129583585131806645398836588717723862647351674751062017815276833220879538932988821373466191151254052314509671915599255812248372817696585949267448666651136258697926707722234551931512152121684558528415087689677797821489515734291775883126873098664940375464122275578633356996050432995918388256309246228774861180167921311359886565849654753451463704931020144650747084997616704922059200091024455615534314305180848117615895322797537518086239337294084005698947318076363898964566789565960248264209472281059101193912820230486160616515395050999153225010208837176265694359440238298055756557008306974563235055886078782359337346566509598780077574356076926005736191333863030341881407924420356341842727049005765127289262473519127765968228757330510345641432526195476490809940408910701713641805592309246580102334612201588892916473737180126426769529340973079567015255634202861577644394171563717128887406100800182173595529945794633086306115899738604833540195803238903375625518205884417746721255013473976615049292994939804565059562808810344817324853596803379083741024043360203455148042904733594398438948036800372532552195000495177484912014345484200757810920415263548419943087550068774513390356837212767334825352407034380007192108914185579155245646140226289464888037900164054680697585155639394420767989907778907532153626442064571477142154651812374703921613793531303304230267269821015178157960132999874073737795595955971488354445974659990910620703884204800385809197863687933063101037914206007573337638333948205482298745180855565827607186036360471815683786186294537961635152387276315220065237394852035736801477265964703828554859050180793783322594219108740376619895968110050538136470403501389223971551994543916422444132112025909900618565754196572926602440300473111726466635913748136988152589095618878981286671720270923424773917738360823228680971918144705777200428010593808128007990152590328608322439178387448329836171006358278521488305277947187071063129652953011820337395194269478512797082709828120633406835346730433171358380348312667858624321366189870614234435226795769630630769860901773959003910300473038979414102166816230035910053435735588865457494451354048084601072831976808092612870035145186745771612274745445089046786572381840021614087534715363650954183237080476308994880421426289406299309868817082783935549742698035770637504883101816952546274446085484263000037144845689047704231731872603657349494905138761135331303493739640562576542347381808683357546143308505932864048068461559185127523007568590874006371171724393091713713588036426038943186438034004228170637568722492117969532996625634785696596820905517052877943125338488451821576409349921829257316230735314553843472752323930705074008120885394354284045519357893036749517194839951401194744879159438689918943901428087043969998270037967207682560774151427869518752713227110078357717470662235416395135894932342385655747515223104733274069994682786748929140052463091720699438221865849292883895681235273038486028804770915942821742579365322605958655609759157791744593564294914052597591432154429024210779584765538673011655937411069567570778252268298453884392191803619971620799636536143883081543696941259774344721366715463485280996123401238829006643555371182356964839387783200076801931145213808328595165432320574146538779202389403214785818140967467096715855990668427131464588402425909229576962295882742781560968095273355659537726718907004752370021255001568739284207762705448698039211958859443437998211831012343525853049617549100535785382390040312090840393322766906439633958825782901711214445418863816046130411457713019827616105296227181451201487815615491321348121757543224558990519468767001694844748485287742166807752215128416357591618892303205442018096893652050717975270642370195651000470460806950918765763113411807701194710954491398980552323755933390298608125746573463896864193185601501688393586304581196311725535422722274357510165169363367841881562593627970258956250279656118464973796402211197148364621432506233719887977456312703515002096675648150902698991529241967076317006007829082456934030133366571180215760315426265571678572191311951064469219183909698149004694529174954692692426415245980750519168025253922022513948326274360619187585940467826388226860464284424736923106134378153802373374665739703698433467406864968130628306468340947259923224749603929595830109028658735523895970545088850248587757403209797367302273303268369731097629828141060066521335686948736961665254848656520258085309585826240166095259362007935679678912102733885374112201491988865812460755070741582500637478080805284098592193175963893971431464222947193677052819532326349537370629278718882419201008688779915359430674395086598217151100079074462889272580672352550502510407464119392231496497571826180161623523245528851817146381544845832718149636986238475020715208646836251087151563650593773253351169004674940321506052174950097272631473434470377070163592313201853565303706132426376202592993094592865399451969875671123231775790084220854169897052928737385079655574282321658362208364291045617598904516570371398718002477181487211245216473224426987894648537095126995303679749533068986205587587409122444689793707584109578100870421361660577725567751267035795490424027400593533805191530794008869216200373047329120895342868630267508788150357802620085339352306973775789113343346094440931087550706871555257402811201736974163776984537117734723160829259907526832787576488439626724777671711928674347423542753918712926718707882408050949324608326735110098520036542620474313704450027917477685054902646001160434089207471473118354903244142578867099041048730739651080309007330713383478582260774823197877922012416325861150846808886429369670228411157116170784253144591520702692303394760019719757942096528413762681683880795692229063911962216476118365017871767255864236918135104203626745813666314286229247527988245054530860474663342287747679710205709256160882804856559338847875815620446321181602948195334632557380881750529484132508187410314350853210344451889353998515390192879143735092258478662615579389248321122811642212153362940455955510472027666846342459257886299760225504206527834374689939849427807983764234758801813796278300053954604734600398469095023848798932217522350036744205407817998703393855137679346663335335785762427257944519686790037149792981296081660542641073068499924519691425112386828174411200597189075848233389335220854115307240037139182016012654068255071324000111618857214390603822711912280798232217280479969088002830343308839394390340308412916356423473199977022174984596304470419569307640704363376314067540149155463213112925775373769643715641033159934451148440663050754307508223543414985198318942050711286222348648392218337019588443180264674531708212619176502590448702933312628886887513413854662185824820578258745884331056417272907357809451707748479368977121875751309039467576487765850513033469919671758572991975569242641134063385258422511522683715665344379437260022355092591572081573909338995168886140903498776659763486279383998572556403372918200081779056048047963385258114888852535745245228593681672432578525523127179024142270124537763853884981670665273251900703263387090274754525130853605048761567954162912836344974234929160681673292676073402016500267641241728665347488504132671679595012003162037864221532493652497062170044803194599648023811233424603228430848540541918219192496461242525693701737616950914669104237700952680203740904144325386206337363074344796991330692301907601338955954222949174472512997202951368798221472900557157887847236147318918720463153458684172511898228352203344138512517071491037499485785006579509314381857187217086982552032880160188024423141687790312447773804334262204580743751835552809376159449814635917595464047723071379558842365328639228816556148828391013616144266812998500489618172758389753459149501870136090786827065101669521103124108293030970635777207706830995911528247621559522643154405560703737897044595740501837227927284314598055976652496000051196187797610014044099880936590501750630178414145982847167637837382752335428736418595060091519597437317505842574580810262085486712191372336339686436370185176565601016795544554939823716974233364239371156721385083760153988123088397656976141701637270703653119795688090929970672544665853649209246835896880706324696920785344164959144137057309183980848644634012282609858201222840163651601802622765976467635365786198652380653886670815561144249521251874574705135320762386644691695792513099087644121701636754364465010926502245306372573960003242808180597660376816856787373547927117983533427569725380745419015697540528654203151035090428615762799741051144756953392371778239303869206761201433429872609867579409260091031166175134092848231884042677161172447384332325944781091986087259296834335694529092915946967606491626271860143678110154219731406650892338804855206967222593142723185516062582550964936896403461580648346999364358710413511120275679124268071155609532194517371613637163973461705517980612447382613552842253957282357180928547974700617502491823706160542228469260873674232840177954235222442939838557607673719008623872774257978984611443420783590227985422005466880302796787820043327231860863483637141058413621708206635392251865367898231984177322770755698176700977402155601933300062813372271352405620282348103813031366355422976989531465751015205146622069736401733390635358538191421991426215386610629706283473154715510251093392430679283151742381716306652609579787098221102012233665600321724000229662916963931890753591890230245026776330321890434685680792819990060349337079489798886559371536333682015257439681036682122702800195556023691844443115215139685607153687214073942711125874664208755368717973478430989210073167871852191980855009650032491061358586590603955684964592367028199265885448312335401380243871348185881260908232560513033651066737225116939572870507412787845284069225060877300800399602349569951383908561739988694238468299585814792103274318566335286557887328149085635484095628936388638793951103681049903572355073350612921125551725502348875652457992272842825572048921606621297159991470876658619419417114310582563137959065020840657427023580902478143865063007211084555800754011993224507766468088826092245515731590670750927610444228578467357913769838223840761965185299400423837952124401899405494329938597920825472507675629774599781011559112238513866075631622137735990913730629995346790595948122508810001766722626672058362821400803558910120592666972615990888604100115299236294521840683860896297560904934213877273393473398213175206100634675933365394749956914842485910033320731081142668851045729905265359670428131132773439999497505912756143615527337959001619028772171383395245587852981000585276897927219920461765532550897985919529086066999126175483136217384439671153771934262760426249773821276711900840085989965838760197807045090897652902664369996810384815995126997139080501137499626795695289049110270863676924237359694195274572056235070395397687468084977366900496406202128193452045169963525914210279358421170466960576598606671345322378570635366236190946603149810834053531501562049588796948300613355470152201003415605485320142361207689200161853695910089998814146904781469402742499115192520461085137447246535596158979586380435552444747782166007168182178281615934871338235191229779596909244436847104001241272711616762911768154160707692403693886028504363017398612631119665464145801620139244085659733496550949803344286007446408347890140081648665856258283052997038579288619652927803928186190254809821427327161833957566706511299277112561603950109457734275913494313339344614122336533278174685918816947292688198406931812016871646376515275165888895575653406883273280020124003177009448887311613656839597204429533887721253327951659814403418082185844014024336256549868517644952396648541694903403004890349183696058392634405493650393301437080182254016226867403321674562520877389148151041858877956753756235786553722314433602005590406226339221988488722238788638377694052052723660534233324088902472912970054298463995410158396791683736625293889635736216838057641452566647102581790931773539324456135744997142588004707396747558945869841038043266099779524209495839107586756168124702306909737631937796865607861342962331896992608933158326778092125158318634077787946399673561481537517733045703236990175253971175045513904495362212380601842722253907750391234605292031896087293487916526026849236113757061971726869552628817845097326113615290081575890094669759412109384467636663552401604221100675978590846067086566266849992944102955312647015914089988798234126687382604202595856475047829496068344131364682437796558674813287095383735533010275629246596205011984461480146653484080913809589774321481282394809735404674974132129134961054687798074928967119341194800546232851562503447307430744934914103508379924916462960355399862758452748123028070119987039498900655822808894339273272639675867756562963702395238362234603740542673419657264277133703922018445947552365512449940399021252504166056795160679966610876676530193855334263009220381473127831896707887850299810035013678261557008213972671688767708928480118939738967530699980389427607530163728310474475341137055788047001889559893270703749832329380188269815736341933680492280450254334941311980436340985170191406319225474285816691374958177836173188496259560281991734153375734258258043398561084109037126047232591400417190373724437306550763134029135743620546606999512364971582882667887278608265769179651022211844778068566075456901158689456008227396536495805236868429605328832860570953304633466471479848987787947509450813747151536419869747394831976335920047880304131844642405975736106542650219708790323511677442838489500926185818950685290239329993162736188612696952407974993182537050202744904318415748964585127559792601185879573423994479707761552813431819539772772327417197272377461823337376300777758802438532124553964001232831757403522647022911634224424759895240405381838033727295007396195078473036119057242595461358294363420217364313754525970575880123201664684684764420694565313393757672605701463532055429900072275993519987673054556766862086603281252661190025825101046407609203668666887411741328029516619869581060908032483182388947101766563408959174286710062595576952543437395325756072273306042723322387699343357872503613722827506641966386276167970245432423085093439546906831449646360562719223391810177098124807009431963181026733424629185893621617111918933538867561642974082219517395783544739123010537225599600062928005316816742489446260356410190426140142284919628023333813554465399003879599925685323816095139842650970582497026699485296900230374177091764235063548753092503871846780305687344888205837158289007237993214172535028436940656564422026263608760182209041192378767079301782232964770301735850397187601171107858880277755533236945842118200033343494753662696776645180010913288088394143401589976749929593115903229551096838969439621077829994837286851445835546919716007988490148055583600239204724298784786962546221742166516296020401019150073183771830470780971904226949877330615189498392169928259922774256640660368243042767485385529796035960274280257416268992468284111786073378996310112647719879314117462289719924699438790176700724431728785922325095788329396529752681774313687643216039660550264637083731232080396948814572616310123769513434126200765197927922811539100769568889703400900194765862930320701934509200458806944177545412175698501037807662425959917798245888905432042481101647810343158844829353944660118980374936649177083300499606870396696416537571017494046059186573973054981627184824259201194343206473117790421628505698618059287932811791859639597120534620078891517610263625459619578220326720188332251715523741890421269260072329068411033547908337158655002206898730143688763944847481310911314414340327064033714288666906090518540101796478234428013188240617520030908576296847148540906746414422357195326477642290478258526807696722586491526143260444304902561796738006978359995074064448238093754744079572661795795381455312632835219280593994914414769519829426016924228183932981827168960107487719571149714383180665861614468088458854807478590499011562772289299150794053747026867010761799547434427104445266067580599652510404371598125210253628178222733267764042219752282503212907251602127566658887079810323874157850572461539906596331707257736989912375369062682319406641861535495680156388272261755609172324751796667094408569252516618072143177851720271867408809134653796837690825522481346337259756265059929281824083715664343368231700457136017583647868045793187907348942896096040522921053914717466631509109916660088019604136564462282700471894180737424223658279789892984857456431780926850439729679102452269447487871728742631554794924247930669650589445488070633382836493033389923608538643223734091549440113202648223143176113470363843571072960253841542846542700612286818578279268127440263643192677119120086909993565384473943832290845403294523596895217127628281953675160209742687894182441960017785572973666063505793731111899202650414874424148095278619667356183921413540798058723571074635393657754164449743456978928530622536877234159093708696539007849838374597254288966418545843379319409055239376978372530967912561382235267374740653144920406453773824585148690298372316689230566648658263008102462836649198494653538526051025312145974247124949922981330703725444401902301085129189141655591905725475162086764648008772699201016026405856003321368840509780668697210493465540241145851411668307672153785478915520428812524426632976816949403047507938305168254655039731661916164004041096345058485492579837462322704825477845560374258501130915343992023410908636133019168095210045040585726255242596592883698145784970781846657404791512351352677488153226383119207245456970856854387069132474290911771767114075241461343578878279339851876207312548761428680931635304304539663053873560163137866655487081193039201316787742694446516433688016326497698838462746166908339499876958877384250800216774465647594643789942317008018900536941064125295033668758050525135972581846818661491820934885531394682409220316512613315690960697036034650698141560846952519056428767233112312057422011670509497882754043380384232692937665669330413548364601987792989806712898282329409834471821524741907679097928853364130631389515211200431144430753679628267671324616426208512949484485321631395866978794450908470387964057530995586507178363063637402931056520866641625443707431630979343124017622266621958325789654518547922231943625697144891528068460507992350754275421732736369565607336125411822873284550575963033536492285502863936086721255091049650204483956861938856383241568090699555491689405372274500526135811065679503714295504823299870535902147717222114480208120579280966822270312940060002139639527023745770391794189390358860092909530366036848637955810669426115095608225053219780082412015836559438307851723161303383396858068515249503848442301750500201422252717397880126900803066867324811016296472456959864508143525595334065635914132670107037332240804995537169732774139142143399140009768346360075009352488705418278776709902882438160727796537102339666911633316695412491369823356345987859210013194075676012895354649549231812754299246108667089359593200169149508054536032490398170593610150153869280456414049124406171908689455423463696688736809490718709522769543676549588397919968714676262797712309236651491809587458753849705561344876276816270989179223624787179827930187986566084273452770819314544594189174705421589244912094240514053266337734450478295419143098719244650853511180791584928657200198764934751192574141964445931834051642353161876321023145148941588683981476173214350558875373833145737445202250355005217760054591767826044794936547524310992802821173527690796785841737108462126312531815078082411330468258290011773975258674426973217498813601681169464942495789514335975351860837702908395803389854528590556089498337449924548499793792449556739150444943818373422013032381928308500385619116468815895000417214802487558404692189637024152273029159802567627365388480258794418528583066393558474564316621927522971482286053908216315876795230964712317294838349279799308471148514764793668821625169408790166278060619241409833586962828456387857648318403442107245558754279777601383354156893433669867047608025001245226079712706987479040249386963191823757504929820222585662586216134118448093442510105583574493308780578645961306620156092646563459248102902485101290936964786402172353936827742421083018562917984589200435353935913139307298630801512506794603127591509104924952631670247598151487506611639277751511043401880522767650519376498005315670815029952129482359876712282504749977472617611385471559153096519854577819809318670414074154676906033999612793239792336581298661320152995169696279028744947837238334023984682595631558641564555811118684200389941875387403585386869939337771303712983638737909524191620188271179764761228082390669527072769069376128796512865333582392913195242999594570560242362923720044574977187321219770049318102640233706615292965774200310604810498597166134364438172395958351293467581585848324054228748664026779597544549518977000861188096206075027035292986730577748323999601612751677628229582788533761745274085039529860138114579238747671193332360178681704480958587759627508766436101568470749543219542091186060297679333066625745978860954546487801703619012565181990282568585575953678672060316041440297531073468007168653728668980011463086514374713809831964668281877081973999462028917050659845532434390544625703675847267321669935222027952232217524907164602525308732151991459352878619712409050985083840195522564190000014733488641717032334334110043574476851542592850448662876399643254930883614572431422715915307021889696651239328916949128982107201653427910786820579427283291774272492209500742238307757270136104981932546325236152429449266737489249743047407712089861198194672888315514737001407546404854521101961532018093588486646028964110266680858243133734696246574482941800751314266768069834018776137404871117308224118140121686310623055802094368995702030966093879994038423965148022397020342242222324709341523502797683970185045347825900144791840235395693686975046668380872185285639731271913271620502381421739486764584091713520599506762247818809600372221786321663837130960567025835644852351478903215099012182127728964806833474986134833670229375810135647974856862790548222154434049493188629300466105343393803376554919783040907653532011121940188702069507827034267887383470674457263042351075939750035221544381824987423304595260188915976812126450378187464941761771632104063951324189835716566881784603037180089836080723793724005137360717258439729777298791848710447354776778677936698032115503484162684702066966578727945259045170028328218921125811672205018720565720751152237835884161479332205600453379155083111991100695700548527210965493948417883965075852709944812754554688416826601787640975194945175405766584781239789248516148245878006553279553710292272033987872813591677107018622150357731466068475338370769329796169623175811923499975315555407851006044059035054591826184775900833455197420965873811820675541143565514115471701136655757197182069588971252584234101517825126040441374494983025626113843020685873476610297245216370413736777730761606716512036191072452481122899216948470480647284808382377366962956073296449734988338819754632114605379066969956702443258568030922880984045939870083991626227857094944737133207234754586403603735112341422285870352802278708947121379135262027402904033754626176696619467959796080876871895787523713726693808970630997825773585253359488665420374690491780025842578816159754336798710106097754058964959882485913816411591254353269706300371957166615824950765975704452054750711697885385702314558247231167569915790965064403063234143457017679577266739683151834178471814187779378561882557961605911413549668866525762271756325377913556104148101608286474187125288101007808185468595512205994519649251394408265585489286328215507369757446571712720463955420263351540937749343765792369491176970365971483023175059614348325738599846648883347992093174828384279176312867050854651033522523761886130460072225696224083571385116917872094526075714927349210916302736159132509174216033912673486516912292024330227781117312365986593380402721071162613571818246736461616735667870123202182302933158232077448540691886094287788035000441876206718136773730358220359798220925636975230150963555789099836193837760147905989920745099062277274595156777000816643727246075223848805598535933753941694871629456267327408586905389059512458602364781090150518637733815042209751456504885168849087352357375219172115890306306895684654598962065798899355302034859166970101981167275947819957883128594388418571339519953480362969145489662778013528092588732297275903658631582890682960129204066421546273173790283659203544766210620068192802588312984857647026815433730695395058372890116027006412028955410606718197822243753186331640893509843128265287879520042422713075739167255018933767330586072728907528201483981902368100702392667543513988000550395098652584824603706438129702521159279831744106993667821070932676353895264594713453303951861306355505009687285234436462284127878074547982086072645327519450969770738627253866458181281962476219195338728598552198616270631684767695747218728016041747272851199876880185815802851526248437103008420182043648068469595637611088739440884484409422161847187453784380785115833267431103405941956384908978300383440562348939228087591201085251685980341326947130295283831829817813613679137248208818292782743455041474867484882891648081408269779536768919652930918769703993136774973782951769174226330039739144239507173450534970194036936584913959425187462567622134156761964053503755571483499559746067201343621486674883111946139765360835819300463956455590320732516713503833356293686252077064025643352686240578346210597204507422278185249640733379221020388679254674226079310545652136562840521420780927547298676019155574859405871890242787838524682390269072980939167678834216411269299434003559703109217617020839084067566169053584386600666500535824723992814679369324408774454466992753477636949032807093714064742474965883233040246036625814150401571371604192206014126668936236670703518799113884432491927693752812262248646521978558587150060179552479560723179066596810595449525247175913368669252809200388254488898893056716879786484090395644308331039844586163313058047688392921125557484227842305098266000296607541856884438859808386012191179103741259808472254064782911937733809335849447647336335253764703321202120931386703274877656440193105988902516223209914126294786139353576935477215819150167488086589038168829286315982142478963880539456455554923772818640145963858211956455696016074328878375978836786042304106251876569860702838450012380902534874702061927493371723777703177160565739050889483711166881566062524439401890119247082721380041303925231768462258274718635868219479772197105868157004279992119440554233696151398958076488958118725210951566148643640443564292719049957278676694924871337804656676277962357695170871085869676259139231960341360107506935604359581184236856874650384473013561508411003656992729564697631936277586101903475231455521716348594792997890501951734691069799474717129063884591626707009370331113354695820053099014627034935994581869586056115962331282763184595650098397033153607198724180693397118678168675599795011592172410170765780161856643599760295744437930088756987008569326980517271555136837587039655786281005275022134200161836868332443911198836150902067856532245439118441660767475226003005311873923697775970161911292201293036346672809244373114116728492719746818659695910987390722865596557897046502039138628935351533807179411939453812566333212576862910060664996362747510888872133587400496901773811271423209258540947996509232919509402833938653387116912112190298215037970328331829456270765479255614352323082346538635007772151742425661640436744849390130772298027291159753633452154888857534419403388550564131913210149202893618763110193490790331776451871289278082020267040304270965012872476952882979696579330269465924282167097714799780562551091137813319888112634133082796199312775063569081029867984796633500189758183167720049277478684056862869539159096744714887900120358323565810197283792472270625505725679069551225380637923893379585111815307479903635498064152024361457622808326097974053711918541078158413695211172177875446289963797763639532680407554765139756509296071401134025351658861468528225927955698425145922635170492666101295283582444658109570542241112801824531507346251281901712647099975299797034120884529633765122723629735241328833881122178534077234472259861326215575488765947895863621841282295934782363696759299951656991567655592210806694786639202281628988136412173722638300483349978651355862318395144118157963947640595029615747544722236112482180089297742109947394924750314729870742435326471319011767777855516315221473336701243228713584510367062390447880411812733495345774440277190410950162765045389112306332177182535147094671408547933954736471627005147061418709690722168135942668471567382154765842599749500945925263858469580805181596444506496320901264845776441036020483591422032394734939758168951011699010855600073422681936539495543276850797910743427424440677985111940889210686893682064755131827755381361176666619225818557880886108361929187668232775075802444741463678003410210968996254967861715649455601040765452065013073858390831486039090839038825457515262493907735786913710051864320492409857529610397074776629798427131645002166386333066138667375221468988159770077446242221850779144685948276981073877004458837160900381689651840105024995181107569279874124970814713376879895500511227617800590415109796055589243138984977268855358718179188444026265451728808224830425584600162300125131424611556764421629627550244081588768455736579956884573403441609932863516581542260659271667752843290100918625770764349864725123562189627180321647844903243883607233447171837394825679988700930685858707901992337211569910993516821101435149654840093714986352437752077042052885093864857297401879586711311964480489701190277775408808707343704315487150902412691628588146868026873333663005475328949451939903749641529854357238654175001015577069331571771457751746019975509739640227343935950794937481996513745521659473734617190481668222298829887384974073850173313351013166409063125205067011122527897008872209938358603139738813319568544211440386842194806926370892826628188513418126304511190912996618396260574699506582710221799782335819465049684254577351844985591356078160071719363700175706542113166470475224732052768669763918572398951981611859713543724402061618237798074951703676435459391448024512899102213190671998517893988338187506307008978539167756714312032587908534792716651123041337150061922502398471607716004039619116338688903377018498394156199862672528647409409371406417016050910076439868738122332028910673345797217611167088558421433004180683804449984438595413608155290910057366511403887142248862493058652652098456734430451632698891450041140256334723298426059696941009630361566859590334208102554319209256148001561789335019217812037072326836071945078179689828243709812327365553314019276222052388316787461176040946612234384186681331854332253116760101889150282681064404873866906418635734850969616543694247491617230150906249594264682617843636740607703372969257073359136322418640761194132821506584830425019672959044820620704050466474289930905239749076838543673424292113569052908356983275207303707266369820025082973647204957167882309341389480414866507399004450087332421145440598744873946449127157434433059467484434431008338065157345941759592351768508897827697583924205614630166603532765329947746637929427163548345317841306111039542759400786419722210208437112073375001418359509946728365236479344295131909669254361851108092702740371454325671485022777994238228164106868154406155092201860972823823583127611827530537850657682139903566225265204588619048356576743070261639367422730584256249424976376009252569064974475635880651088535836953195346920872321634025895853271773207418880184625110975331616310316784677530104186988053738638793085182944583310936983215331140024771495551767663137014807183076431550926653018780701670627830525257496843560666618412707718964224859969149393613527275646318012530186442148366672429921759337898556357526773459287331937662835132637688797096560395456756103733741698463122903882129374931446165475133291738414695972737848632965319430917381139592387388023845868976061641924724098562507233654766118614476295243006334623959799970169657139172574718982344079366498821596771269335628285337821277595661657578427463026098323913657036282070726790441587753277771666580979938841226763417669102415488138261651342374737626174514151293732779653666422081719961900605322702437753866579352154738281013381770858396220866814981516691039404382825658561756050397273770568501969155232878001274980374816461372257724354020466088488221423379012321636283973835490763012356577249946337126202237154128877453896280681187698677192277019733490029280534398998106584022620034189802332030980850012424363478341472286525307933875355174469227551802102047726354837346667175239181419469523316022226316011184108055316628226554804863760260982481153834630037078217295228972864292148009153456213357514730747134063925453780117550041004225134755431122442405737487136053133352389694764972466764737829104039208838613557356482925133874645010900520124519230792920985792533107463229518381196314452649970327973789559118872556870558418251672388259029917629765446114853171992286368844143547796350855403311163614832921829284145649596835828031785861570220823136991916456824730697177685923977277979469872315640237581013593596366639144715460830275804256184999940644406724457805446916081817251591199553629301040405287084771764956796571769821648795374524875420821898832725176655545646782628920822653805361384489057574596560624296664981594076743588004573591501403581600802528945602611373258928749079845483806300671705925852563248332799033121433893704241697338151254167860175724711733730048032516444109784572628421744922241009597191860161619240316788798466638561197175320602557373749733616674934342047840504269160914441719605488332130969609055551684187693072817461426530832918935357516417956462659415672475803943427199985520133127978496051571614866545502480216770060789519839275162431524832821595825525727088082471120869543021700456588400027357911655482951666259990551145271417240092769514672287879788216841593086196148542876903681300934199255949682451367619308445081100788858532066457722403303045812562203202165426038019599369801400439039409564211762948333195652721817996502599037198238130499325788528206805783172944184204438934290488763144269521144973923687301101949562774075004537356638449785518779824573473125511800832653079541581781583902094748732834790516396323567446813507667567006319141951410858482571797383390882929176667981627431856954223290363099514784822730418787080363632442332288748275206003407958781522495719131180769674991084075359976936265103529066652719024909613872736616394532277282001321962015062072580020817727691118891482107663108646637218970472014609468803226704029888570007702717616574442328472551310464377678410134929558450407534577260627246639282525474513231215691480151782055810171514125850079218383055462087101541829606107316755049978038203605085790561860303851014148554430203397035194585769841068241312637302285009505578007788242339301500852348960202648051514791822273765833160383295717915039525029803521695020086068754588711694204573850012548814347226278534074548984983022049543237229138813876894827469833436223144046691380208800551620608950390614618244076106105079294617106329378700413486557238277828023207257351329755377702397871272665530961942334617294222316807676502493379847140311323978278241693606325117497222372318749807929916213131976843218075882008065272835094075920220514183517935096875557032790107599089649929752489197159901802112238207529932266679958446137826878421020964310404354492670758492853594565387434260117332057068744679789005057596218698173129675881592184376140975767824490466387350498381328040001404747538798458459455973182134368801351814624394856635330721643926437113005716189038510511262059047710270118407674987026493692688489003792773269264285461866969954301008071297030273255607142602890386718542149108736335485183616412527648784198344910757193716399653353375818300904899239708361368159970464278032428905396988340213356124784817385713148644009541876245886059733050624326304007883849773571038936091265380403318244435803941931289106141714703996962784197919391731700611227307578561675294759900912655172094764328453544967765796468740325260010111404827961421254533173624247022330433471885745243406213046970734431925973289622353449840248685708747309225533473812578731064873470706752275555341995637213734099887910278495233112242786158362446327971687825385604452220097057243800330912936520706137775908381861247098904542450566302758284089905836235928405590500791594207177549800975796279026676125400042709880794731055741422317775160396927973925256820741966551826020874504508275008233195092535310516949755972163408499754044389153274109151346269377622344954517116048033681854991489769599400691180923507111582992592024014347951793313361641263524204092302232772644728533401789017435340961230873064538006942954675663430771255923970702879027865421660399384783709164233362261610647037329910312409603783343748822661620962774736077449807441961569820731102004782008041148618199960802334833566760698652084510937426812574699588082168999203410111170608650993336016214989389117920075501699860580240490787033081749120992966141525878581893894144059169524908263432119669285143710357475821119090806285298683708690256467672694817793939375645342491141963275509856246998850379719842714864191009466963314431468477411988569493740486765639914361967200050175711165469498326211080700909132187543557479847662337476219906042943086706184677686305079527335039104859605787414691172221738057148917844191289490552835727376265526348353373411694783543888320363789204393572164851495337545257037102568904180284203913158601202282208135391460193255439508742020179865643894575687059617002961838952754737399966919563831204381015988880781778278890985444444405702849559715507275239731595333737467821961582431296283187372428780481689312080675635892233693678166134360370252974444733849474070577620149066612433490623878234028535366322339446564735506893936925312687203801372965517941868717378195751083611210701740132148939570008840567100036249955403912504597096504922986772177102332240347698359358714613992959783104045521143630034754574977827904579938593271192958984607990088880813073599470308905249512688748544775840206368983221832511020716739982529874529785576139850006351419360151290811525065985652374404969341420517643817731576949319193377955162469055055004384259901701425355523262211035490708684291975714160384353074935115834518308306768211905216745629468503696543376424564694923484168267147267396793423855399731330502391209872219511779232474634926006940437536101024552824366744267938677846860317809666732937861695137479223928460791107861179365035542826746285347302660788635010750946533698873408502688650507728878361212169954589295449368803902815614472536128297794605491166974415496090361789455894090500758085037035662757547026859740190639741028254636121803781514226702793462603589297334900934385961890204699663046796724580547105166967861603718047137302868095251937725670044483085611043841281886379864804901932939564839479150724486339238494351577224554637994353285732638083608046549932498843016865966042783505880376072189165559872044796545057613172023332400503837241571256141734822357963840399450900321900202520518578927678834699495509310830040466764701129831544030258619249487033043085362881627084532736127541652734925575957027086472658105178202926919937914668055563536926646222179548357547397806232626282271052727637637558442153834603428613044864418696606976341096086529787957991801032877023695061211461102079651934807404008201106383750267383626590200723501515058290559029524487258027067129115578926463325833534285859899454769149715832465974972110584899589286745896314121074375774110663645637812740646168790371617435682104578929671705266587376468873500765418010313262267774979966838867077024174631557989418434179204315991806625549483384124685196851485096690637309835773985625012721020060307649073192326169821452058204475623748006402582494391849654786367915676164401529725597312527557574319089007031984806874282609821211452774257342546939861496611876763596732677682524545334437287318791435273521477500328697538879493368229261325086248316776800638810692317046950770584341250688274829644622625154881860670175192348546941917359583601710355628094022144499153074067442006245162161319744238074809644763886997720295579635311333094621941671275798506943514661964018840509254196307125223744604921232171034614971714815415666360291709641314730213235318196978123638601717866274916176037368215371878044766287249872231909342976690771045541765892373914387494341834639623362864237093489796199594482861482409827237439122928250527725067923807447337568044754437535046985625975716946596451186131413725020456445648243002331220592167146194009457441334937013396735960974643658095133070840102632612417517768254149913995700995360717425380722864573745182076245052438882053917629863606248950935080888092301223719394746682190776133393288445876222772380870892999308224644845911850560775534042604228560171256562632773455708062057471875243797695057159335633928523837218364277679860010959284897600136573577500671082858592895469338253614142071599620630923082508124980276113530049156642533220361503964711060080504530528774639205699299701506155110330504524049100544349925518282677106462022515142933430438583808243176302904410367835112674593856247540816043383209227810118645203411618341090122855778496551476133267184272126271560121876139454918989725573791740965058625159669926109497935984005593894020985623352441108436348311017513027083189918428537367224646038032706431699958038571813499331330885822654164350857347739320858510084995401241881401479526313853118703324692518805979866291410537358988381837540010894364464588249730802408402555974722717043073156890354796329710674340734327323260813722247917279853646548343372886546089841410600295901253429420244271620417456360666310497450420851901206614070051404062185954853344746158399096077528332406445378672679955059659369389966121391872755297417762827565130413339195607588043294780897809296236532871153589379015864122336558406663519986746649230858642933085692238389946658475813804620929383670158479276296680564133799410374099542204742507060140885875221376539155288302891474820514535690919810388762863818833090514427877326638945693534641435994759274101261772982172394847927902763742320834495741583699726071288784709530748333270576094335996567129264105498796281702171570628700327579220567279246571107556614238089323162967072626834294651705606089124056752639309630280018008016398556544759135021452456883760360926349002335695846590899218760317699342656085485873462699108919799112059264296539638219193941663114711540250955587408477342354125867948333183237135377313871819671070453425822799360746445030732386011614454692216277546147241669260694185306509789988474922319942453307868420580577262296968469062374145290792473210922625176791073442514604643118257848701377300499333092442893599471692253609657815481859495366188195562391289846565320481061246693774342318077782450025363207607165493305783454498720160676084353552320601692897949691855562317767720678357052767927352794438546087989748782431701939931596656731083482615916602853520029937220654904448771080498279684632106078840068122178183498177685748298816689629475354616535688957246645188616639299477901241863411644643947286222512183912141343353456281055667429581160863594097978268674235171849769059099035378719496032533473340552585292344711890988683067325939940895941671266146582166068754369549791435591955867775510680426908993245055643546103323753126178763662006315655963028383629809012562259432872166716738568883869632652659611026736513547182125226610992903385358204206936474015144962096467396261411300379228825585840599714821108735262347103925566233695870438087470491892870634224110273166028432552500037235863867421644239440978417261473948079250550326168834940931047689449883320288251984373482433523254688108451954509550569196403207469235954162893130332365015302949665935846480790630324160766219109182779564826030874883575344884174428509105990294815162614933734948894633835148669631354231224064692269062544855111509500990573873624244136566351206490170274703145445978645289770966922118262042605697451932168546344441807213595476766496251023327940795108769759689037422048268830368069045901290554995898148502692691479605602602301571954693761594079590726451559390859708517071614544682640587150068778786963383394918619456575131967430094033675100954225107091482718828776701753480170493481180880414926751995166133790980877298958600704204317777542801470410109663062270901215282475946172253271347577995992664300246131425272650930122719945792137103778687041925182908019308492715437551036013689096608945271977839585074549666630057715281756773138776624445916434983851618736407301538126105094409115703963539506698278245295416009765657503439952913510048405108054370398190388696420906856770963172539920568071965299217394416760105930362050173402360197147323541147155864195633694382236573988507278353337210209250492665554838199359730589167240271390666979362005041292675330700247452631196503408733119320962783334478316809381165433495811914887309603095919431629137431991310414789258123027797779301113754377449069992334130369076141569807655663084551998036213403968201464234796782374885230770323075492678021188267407386110974115960488696317327301243164389635438584666045675448521157475873986673982443217518018347383185952775542352489186489105430562134136062765241061952405815126664798469588071741220757213446925020822996509385107727369201268327472065426491785250016484036324124738442251400850843130207071716325391361271312470314056911403128207737572724405905790537879648838855782056850943607898229330879590190496681295238781166622047447881151263071806689102977104139418158783065604637604559629328281955987996982375920455127567582662745105415784998931980340961623752822986741221104263063111070738488697129332762146464618682304593474288384570503449617668989638632050516055006226047581297792797025288177809020724345495507590193841738270251589934117491743407954025502564230889640263749581005768106134716719072774816361528851948713547527445255421917057785605550083869162122269294279142925703825422502823932827659962491882230149074765103619186940395169153551491290119909163864043354479487837026115030272387643576787145475885680841126977056283492927760123848337489973436981504393029610133778596182808279926388356349043911774930150297519863538600054760834326965526391417705626031818983819697666208298480852015975272404035114365415971860387331384572486014284182996699263458217846012357285373221102212448631098916486395414321472178122837841998745218460876691684646484732748979526410619502353577208629770445177498826830173493005185635611671383857872421818213662249524818616146370539312827086485597920245341671377918617437553096209698271609450982254878391186089717751961723198236598463152917129238060937927126588619008624274710865520808210468337282596065110433008837936650340801152993382167765648456414566801030122998474562116621810945342418965313283616734401433694084679385164935512192881122965890560922341193521116601751387482956740056389981699831888837065780790887276459553029141872630558059932360736809696453194692685481418464527965486562124839827869787378361938842250486044186990633446613492740784508576421369563258592478688457993787742177728517622780911033034179472905065438607665844618206769369212954017231720691441227684145772556842147484076474015665618442871750621425811723989288602352267268219517801069557906929760178680195440193401284678281112361269021578083642393499759963955891380648658605699992555839271510727255755234795691720262970583255664070884759521376166381415692970453937260489651764399775069845481118916060304519744114276356809412972999228905844566002760088263302681013615182120454029455640154167409435732130945608521241991016645658831902714174512097102429969522155112396839723908636713821620348107811694285097672437564268557376380905669503164046967701715847711960640917367002412070536647129809721286722553851008686124407741743045039436648491516772327764859386452069586269571523878442109222481806920582362625528852437192329024907851913684008108649125757969423415717898656266394385172345271397643043811775958809732217079942354128108951285226543804134055359112113942106227677889815059279609597180136593689465618702840469540550362478355358679663708631551177080887265365486133869446740281256480050487687273168719409098783562018949706908773652486735236931200282562908140730385810578110004963672783007692952063963211582230003086243788103565966695975222088299753676907986943366838914088570956899728307143256693819840372718529041220844270516752662051021027924171292477952256538337962332040039575300843915953071938965817121276723552224540480921958203432994741533388355467289228569786152993399419512064827211473681874130111931687786450606383851489371589083466397197791189610004432710799166631834438261356907619919761310326980297703637257316829283794591880403878470877666223165331270898598463050191609733716329736943347321932349530329518981287811073679691916979616670490786136212368440261147895016784530588468916851546832926580885077558440822177629784423212193378628642198979499176447298132834723427247552155761328169425001753361905348248144942599937248485749899878677389342938143579477136849316710770755174336082935594951465534816904151964597388539410779499628474819295714394540220970162584765786716138056420390274445584030465601004068760847977561192637704484853720338162051104716840863126699477372009108830820310008520964627495816365265578603349750013358889817386556198247616977715257309472918402257544352147763675339755618062770293530705496000340514924303198292697966106819702431795070129819892980849287985900461614352134993235013279100190294897685808175590822462714432482765622877454557918723883678677738699706719716417708858969312603265073784920274181694825804562777061500558022937663289507528313714007120607563850569758190234430724265158649702413381210898471156110425646108787836169464093889475575816567076119557060929420671422634649938374881793514811865314357410929860276178295169953491141896634622815924761652673094722247032984000176375751189736628405228552847859355142749377270279950079806440053810871975901721233717782508874254334119182586661113904830195237400233998216411099699170171711478468417261404503307673122433040791742951985437176987751768817779071987741038583554830369634602675660750202221319648346395929300710578162364845667727660453124868043128006386881794094229023201708759218714046822716990047456866422729269334145867112864691031102098101744062452673468339986772066752624571472343876217855954850779354995093983831279374034629349908624194638221141464746761473995898366485086867822871241669626498350909406682515068804207125928465342690738932322585242197709268096684233325379082699601374385341634178815400019136524078785019864585853952712898242875573177714059128819094110240655739675529228170305255990141477599260448823542747948088961564898729298695401210720023603900877452114876545852886319449712138932006857558303999556192751171617013379140806909265172233489369747164064086130527803112499375125056203383782366585892752679653568996433827764563183783322081565939678866156777551420058362333111261403672108876141186703695963514323317197208377421378352625094602701232744635222466819793358699970265455214876788074826721017298377715446354319907525646477739623775757448516874000685016135993811665090196892595264016749052309143781390315030855880178718377632805266269214628309351791738158484904115469326119700722014327566895732037860235249695019199434278333680862449442155694596311130233201688782537379755420193344150600951033781406149254939777082351989119527919115437054674734105444579661509548514940752876570443847026788228055996525894746680357991897506836479744501152153305222961695135062881575202642490216102072707545767648497687609231692233511329990980910006339311304193697177330078259991203595175369429453155289799107256480246513770750228293150727685571914863981690761532636184367224389171822919970639807696897784817264855058089992276795024082125262799411658982399036399637763525119433075910451364651124399097444801801990975995737033069779928657556900751024175648456379227592956844162289147614990346182111174766122005145102236327831528010748518323064222867946543662242932342382567419570322305740081683763528029973343390386122091491791421547061245844500003760937862240982218980249483640546012223864695809314897508007404815419784376174486533288370864968972592009842472529784975255076987710987345710758160436178353987454970826119564423106734235241786540394599510408634186588954525212979399905716735902255334601323888308082469829226036160506218540784825615873721169062255736443148055640868581608517587642147837883830707909036743618530147959955678268057159586241695289162838314195095450665649340446868323768722514179881761401337408134800234354841861010445705762538940942072896919798062468573390070669880297715122171237438642890706264645083276905303526478339967687945170615936429071251044543597742300462526295467744938468986780451365245042735812033283447976058462951558102077786746074789960263585288434185915372815079370009547349083641335361210868871820837143441906840536240875686072239244842247009645333954775770298111531364796547149539523232035796926410131250515059032175554331117220691982332902633825971211403664471179790624605708410796349077366965514039714675334842686497306425505258526747055298086911538571762740879944524675880902346997082356984803990846536877089994360054596394663376744085725112479507619150123177151095261063037913195917881239145611302457331603439633711862186814196570392223503688782993508963256771701649785002629892612793436817383100403320151013441765304455720054064187077386745543960483630908388378051014164166997677889668665325246517686808360337829028950376430863724921948175839126290405650917552456855239478000217420556733111192113602019672554065307360100729715303813652470424908651634394639513944187750242968620896914340849489785383201198365978838676825973470220766916139269347808462664565619928013536484207589804634599141464750848288449895560147044053053335631718009722818941603617194785654811428962960198266972014114010310301773344816663640313013306299138558148964458561228047807434965043802869475142438371440157285236037844755893763985206642727307521814497615108790714984479260876389998085539954395938570574492953712440170994432047934820987914183480640890523896977345803462264841895838031029887174749539311947584307747598510256895102482725154222162437266474770621527176071205144429456687679861046379418391507814990347861061469233396944830314642806721773850100431918317767843643836554274306886111148442315922152205188806594955167130696132793927827432603703000006896341455402056455879498665352376025205341537230974643832386425946275144439408573506239750206017223960815337363805998835890358701241256742610261525702467363716249471220251125839068221569504519311600996696894480567420799383180595104596346839849340263680033412022623803184088344521954983712434918453227779593540494822781650223340421656467283547316034142264194211148932922232789328145144461391181302596308267353216477137223424128003716784725234112382278392450479642498886213748271803896653049448810641249705391761775178322969560237059174056391142550902619300496424834999848575792779225424078895521611277198872347118390220498573062154538556101598224554556919715748337893170442291084834509332685462896223773350022885263518249418673900433116476848479614857220522818395934346055726405155203479024327484281284381432443439843373829667603297979648304084743680530142510618253722929469422070434085202508627264350996205221619283174834660650521122004953390137066100747966855208779665236037557130302076580261936315764838665965798307885286028786092977462982289311171344442109800737753966500978443924608558503447321479082176145377000056719588182970734512131145723938961065504999908516947405317077669745733571524291495965230745787290112313501091613600986462029623645453198635561816220712217474514231557409596053230381844995286770090394241323118328689637308676796057789996185383029653529877993987306420106761420821614003067737105472385073143185391990360481813864697012408653504826710431730645415002124931918586236426845050282297671507883834584508392995901264266684452110744315532056933813955736541963369313164300982105560948585953124690440186066233449613755346240666997644194541327931690088926834061924848773821188599330419153260050390551013030128689646980638191815066620260952756653991432820772649905086481515940873635217446790441536570422472770754360978897278182084627037611521983283439643539390501318401423576685764503972753681898249206794526468505350581320670654555498718108166471031503949520698217967548557842041386908324178250085090968995517994419044502818369589019125363580000263386219336378389934454413435057810796236127230424274395651210299724839449146289492547920536897550436171495156475375355434180400347907925618279192923784751696299589558226979316325261595106964799600972096521814842845044708210877599724104099666056002774096726809103842887370665259620517748210102772714114286792070053493526921928947671084366647151586152998422275731893046836134502915324619206633735900684323069427867018563109275421105106856600074907646350178522329495295246869849176662209998918269420636163012606033016257784965943546035269419795624274530202266390457211309814743415890016331687950279151189845609873489663843926252801064721571571380940738102121614461455352531857231698223044046347909358835393555248732674007792855588525009898151612475535711076999255534040193118672741474572850663481308191297958432354246258481707191987714667428351103090234914036303648701659888242818645393669913421294513541999210925683261379316997999770537157402066759886449172106391797595987523073474471722273153919106194231303800593476808950922811039684123472381632859685798589632507811988743350294685533243497795585688228896010352201412846137620715283962185329340435698593285879306434561430338191737358725103432141581261115820445028759060760340813547681018147369750825979717960949187949231911220697942394382070504079690657035156846179660331739047164905927769436441865656983098128737341405036638242556531333274996580369801711111075271267010417198702855838006979715561358967366494746643117358863734942824635361460852723382515996267521743924263479866046696719810771166857731009757186133547719928923240805084657883432866510726625229715453571046119959651554545172555503852766602702466174110459965802338892279582931689887946209402344743308808888988266404147930961039210830100672766684390117723527056908688896151790114503533102652868355662862421351771816929356141911000650461897648410479884481207536390997024749543075280799149847490604288610839492335051517428455057670357516872631403145553823543805021483608952331185018736231470705853764949264956429059042219449667665909637409800161138248825967675221682296954079088304635363093488286173595577401328703085297993259386903677903962132018461777261834007881926880663077998724773546751178516774008933508294957278033287147067960768349914670928346296230474348636971209654568167084774544518402451065508517475696633022066313107756964256560404627204883320657628965938885247282276655622719893306946397769655915097459662777647122260741786445736650657495261685950408626147474027628975513052874276687658711926047396288749444044161539929562394611349172825721006500582029117619616109517895270700055276278239434849206034039649375032318831838004998546327989058690099613554392622396462640692878569765263802312338901678984802668862915338226189487848455171374839279336038032092657368080308603268338387259377319041756389556308326836415328014096378886080695504705304555891218147635728359827977976559379133526401460466177441748375539695350484618884958223910946009035198434013090271416636761778019985892468900706954634077886659027269644797087750129127406368653096146728615162746298929336914323036881281553648430973143431193303222224430279286709665371410663625798081923468538351514232030724304208923165869919673053881270976124759681665648914957227129066689074899302216777019967667622321972822148012093793085069256323460471885625970855091867730670684721208850090346563620840091728856082037249711663096643232719661424611971234071755580553293720712296131436837419900175569991244482730541509204513791620959157067772429037778332045663675985742293287281261425353503547409455261847125964630271292815612982995190950212272279729142311384634906636388130058247451175697239827731027630712204212042586077740807908918107609734129364299179548838343040955724870177480532740159831328415491316985565656813527985641558775127432771783984403838254587713599211204508908920094039822965039110749372726263688991471799058886459896092625954983434309114089450080942669491094881358915165033521544760274164044948920960757512923398980862230944517488292247981787362476629314381665769482283882178405647454060285823824179955665274524388202776348716452144801033408295499139123320839905214733126215219745452458170691596507563924266689058081129740224359766536110496070017425099516538411496478034673658152141498886490042585674924068998954509125212801888119867691766964048850964826236234570844793204385736257749877827299262401215418965274864879248948502005410477374616398719653981444752802277665840438262920516447612010453691237193762477746528711029301688485188414889980202203706044607454273659862609534545036443276832753870876439921731258944066271597369732515259410213721536805720116253567103359704839814300755067200282400173337615861241168943669160473467458644386170664872251628170540475857183552529757883996494490941166641921387915629065767566235842827587148203097175723548735322290583027915611591587097854328027478562994338886567805943843887088711130073127837765379634360146335318063926935128441049606451675881238965185844553778443995759786179077662209583755150034024036304803097443502401260041149228267192650706114247609426131533945344531662296106141974763898736205177649529873742087768671330659711984910020919021462173363410669774739477243731548396529315976432600889078941817370889336865627321991066140189088759895829249978075642093139008519349572087946034243955538533382226611491505112377863910869127534333352456953027059971114932476861818891430846638664349766600043271504336267062565567741717226924001112425714823089100348663065208111070236825785205028971298626485962972020298292653687825213252612032990437589659976764238916889247265259004053143151300200284655039738666974382935381480177826553755258079587452498794427509366201776999593832991526937434504707442635034302838107146618994823145057339503840812892323778588750431097592292354199586356381021383215871652378538044693622256386219179279834043216533208020999710480695244664661453885006751806004189444326184141799296900463992553011914509925240769189212885166134595374423428072953124949446325379392132762561057761097254029385638066581905312768055305093417312772246272409776884905801618334306825002298117167063908861466777894752462620768083684657313968181684374740005068192254830601325520383309739834350362522319255214540420519172428859948974337962958103495302194493215459251986705001001999254444948519653823028829779940015690102375548297722395500547410803043108269885291078907639382540371751451734997952903091163331787496213707675740923940138265940171033641548414726865247753708546964791005651792312286452182732414302231543738687453817780867104397605497035821330236529944504270558504281249819144225318502710930655830086104844059463244371515639551762979254654700862112806319556378197797665491826676458329269336810346223047995232896226613328758724908527188027373228171151904742383936142202890773714688782570115467545878927957473280884942188179022207388606084592941616739543839789835048339719968703186309624583762507392489114033141195516104368089361939223995980640842284809782348510943610971145965228671247655242375533962072291507294210729264834007449522384191421973967773635237082983516219014995244495158739024380988412274840345128613870908057379741416222023739552120992240672894379289625654221500240381333547406161022636942387113659390150675539497212480578869208766623796258333745929016466547504446194931775630353424021615719873353337846314555262530976435003545474096779769429619436627428722539627035808478217205495237812662953557362626796750051527604717149083290377667850884576526608817139180227708192794144945069785619482111032963884648101822194271165263235369669140233110678253077026753279885552835822390572519427868007336190243958690620332232953488559244297676644093573134275308879437058661298995155213847248175237407773948430587920575920277670301059162969626629476351584926563520023592049687056581947012048330326255586475114451099154194501060564657619205585719001823339244171512806134294413519057843828722698788425263306858538672296048422495464118615565401887651894919235545204132593041897128680452848982930795438621856184169470343172181511485098513486771682121402241455309067910895411309582553943909833925363207841493668948763986663127068138239132233210359747375325831110391117815031593688236538173792891687476789522007482156868026088770292876518429953340927244463914533151837281268465263440300143741070898260920447765052986543030036548083924460413466621531724222772882261876718674813350430423672135871610062381040190524617177529270383143328072327679892054199265659505644305835536935935867720384395652899017835635707794504768650798798337403694999423146767403236349976736179407816000330924365063565647101977478672548046755829233602331654418962220967206193332647009141705651919715536466084835796601009929152468759706195755655444626762502486631596574747088587758059411604010980788160121043570200843477911719627602640444444856045654302491416887806134406050460061324339720995255068666754399934283449313076326504062013196845610855680232311693051129928012692898691861636501341423451649060343741922571147000184653176193996292465781653425272880864163210022674103008137726882451168856055194114261164053595557076511608507519111723543523235162333900216837931457152343583473266388505234831687431562740547941022423645288387902263362496918334868656280146337849515154211737866201274270564492646793871795330474013976149596520902227868510565324317255914048322277128975269244448920536920551518654074510675651324033894666711806043464658532358200027529244877513078163050522603622148617185255160848808323595158126143191952146487692649770010827666819241623072762222223157018865063384887221368674918207049898508116381593411303457478117223867917649931774227622607762985946529882064857526045742775366762323622855936425295273723692090585631958851287645131073599145050622466705231155522940640087061174868619587787935880484702806791964864008313436879923197836279025700375587871438891378566942646670513923045507430977610008502049445784801575325176461074353763060148477853164605347728569550273741367602975071260142617033544119543648558881264455048860428066230558443292703864765951803948779372953494343564130910185903598859033646714682797157508024884632299431429724476649064605570426288247076354363117212281262180032245781635094841695889409729013388468915876846347099581707632897318108914164139067664089412110141142629562565201079084353232769115092382118656326870430297742708883725513532262367857041008079018589298026427565360360192860660308096611827359634565944562851197972827319519948442402163149892812412926453775384516804990306747150008294597832168842650553705425631321673288740746707741157692599189125002295580025640424689264392208640286278493205049419602443499562920628228482817232420323232583825666877318858298095791102440762994973798637845245584787294568643418727044242565405904495168570237295332028798001997283237681468525937573013911259250673329668109285742762188295076635617425262045126402342326595543170760508998637229045585322962640067290713280078073336307676691285968240519887254545701273247103482927786920592711959271701597282162336556125321938008725437898005893466917272723810487342638634271795406252346100210595604483930788075473915554198703201481935240092954356388662645183145620871837152127519344978132969816911217969432697392641116827900014660403773819932258142329297349053346389033087887527868586289156457350535412122892456595672252431587236416317722008930594157460872326008194738636743911974859615226225833010086082893970212130445963933031606531770304813129230652303566357645498815558803880894536270434163538791237388878913840510874100463581234450352428617327520064715524279800625376091316881900128325043002994355949873778346741241416915355591238299870487797177701678608264002823541747166893396461420589802998521644583642420947670700999640425079952516123180742433257368319293529339739150887601069685085604172467342266066048679309700130380483182350845926642698419857498115668493532513075814709472421291035219060609283016780579414909692539606124197614830081386579261354385889826445174621056606603454868985452632199101008417569688197253862152638861707182191206211251141235899909144640225494996571342741013492930044334808651783690927589904022202361410124330582509121508477131329845974963585779024468112475057942657180177909301235996611818669338522689830095979765387405425728195715502934490661585392904214536421268278252583779132110418175011964593095280982206773009165239184969821254171404340660642762181251060078562136610818257776194630976104595294848574622088577654346360106257479762314868643060076002668856031634252483284970057272390780756369138165410916958006542112612020821253617290935266367324989170131397875465797522599905394375252971923331103594622599230732409578310916413960538605668019326691159810292803450017825765731092049932495476983964598603772358378715021294829505586656234902728255803950770602598206459624985073286575833272255744259815279751955962417824239053755983939295497257339513302938614802881844739697968948968968993957479293804079378691524412520372722564511640501123202846278304656469340297686703906866795690546943238081715396925605836800154131425016446507106117397353409479324948115361636439375352207199032606433207527403664378677866553689784727387537712311402488043550771799463058401965766967223216310725487220324175581142371625514477293904815910806646195511795632214408733158106518996763602798026812346103210910250769890202000027036894341314725893257881929692554962656442552614920198308630146719393255255953312161421485465388767154621527913210358899812103481319868498336783772021449988300175487826898692519346661674223785065666555863588076322112336704916468306947992550915574293551754875430737823591591946919005476892712974182672222326161961308556298792167433101399156433378370008515043186526970408906258786488132872649607755520884501807846409392289050499769590733395130196784999467495885844592727411434704832738561167317728956888233207871158213846977859579627936635622017544207667822171154305026234992822619408181453489237667342730648635230577223769211327560757252264541880286568100059175973251481907437585714403687202585847143809683286613436030078867793491043353921683376611491288711431614808001439828616046062002860338058991221246019421298649813622780352621567636790224470115253378463568101056644890980627273049585090835066303247657440728779301658910942720477416167937301975417385951850409892888917005943301392850370077030335498372951433016372935674885364941428637462011850440168981072751981148193650956825395491636780157861852730895366297915458523544746878760424221642277679233260220035926320102434995370403584130531743551641342238564785654607480698624071608298611779197443150708948904070547545162177298865777522433026380420803349744618597343028300812531474698622082099304632071657474755954128460174997548876113078668549035255950939833666105428258162677216272743606929315339545288222797188205250054241448129367327475431426954629674644163216092654921430444922072311244489535039358189379125958089512784502155495822064782162598641013424392007935130944123504073881634526141108351571171409646990041436328358087119005655494193703981946335083195038812628572850866888688301974626856317994339418610888929216082005250093962863600878331498116002862168071988547860838354156207597012147541216899662415823879728195721212506529753661650245223181262036207676818643577776025569116190088279562033216892888921296704304164894652312832660207611626950807813024190869640283253567264133258736613294067731283281137012016213800188007726573659101894174921137850859920790992372962752046648356835436550838972416235145459939798083603097665049194869171725165144256323903217705818858353521146611930228469758112770778563702494870003831969975296865887374725239023302275725000142357152577117452240334376274715982217619140862773579218218466199049742232342674307671602699498950783624666689615595283395771896392247397512924730895851039782685384769279835487999499204042959918185963267943146080193816857025923033139132724051074982182749003893628320592218166610534387145902185537056146170756943263018660074659410521735593059023211387059103778701622734040749206327704749363718421547259910514468350960518666438788620028682220126560010423112198735093653909564074053907589838714153358931146494786687802543624681199324044822753388094180860985505491763510646566031843022090074029611305578000503600133276491897540307662190750192836622509951737321770707364232387313078059263935044946819947717668551377818810171332618382695989767869155588882651666243261863163179317691232230363715346965866972512770715243662258536960722708926092481747757467352837046018212764120571253104339361095157598212030506165663841313924005691718904198446575910848256433962031939467347767157414082165958652830857948208335457443909923525318513929150452067354302021607823298022717696443195172349874444442840837482111259946592967823674639583648268401373940056888197203404807648508943012877208860132019647757824953881092040462950498098108561911261813005933034895449740052154277783248413472575683229742700265799573140317352929381651124074016040049783872326566809540321459665132534415722808464154266312218774299050705719884644756566341902492335407976442455789885644432496785810866461595913470640221202406764844528941763867576456267323952311856870886204226623471576360772522269690439154806509907703155600817338319880641466066083750225092900828554957973678340827655690940892349820275220718522159656043357238311491520585702769093684371573852247276246317949523685377453245344750705713950501311403213612992395403103310318649614278671180050326870356536602679242069434034826352850132134058937542001832638056029182789343186974499529697935739174270840442084840997287506167599344275819830995794179231277833034073740734758380435867894802240511066152414822780037920215458323607792532508644488935846920995640139037790001305817214331688021065131646034642499021056426607102922777372966936970954658575205007223408483021237531055651621962821715375006153091596911583256018697681070860011164760617199018044178954130760546038828279331003371258034405227454973256474504735197914275719860337591847617012744955959185210276064717740607010031868524800414063257201014369186897856924787163012810772410124834107680120834301977071452669253479470269901120885760035520143721829937700438221623003633367468870767186018141738546238243181365986658637446751835106197634361077389282569316200455715085979931011510784329317964666846384117087478313725894321253400823822547360926742026412022517902208747076480867258464332215628023936045317796475354089776642807549140336435533544497848215235684940059874436699119291139200574217340792742216614572507486472120399472549707375182017566980232487197370920463063813494516768510548063217158373852466896503456521110964929433113418763586570483741066644496865853893408178580261186250668609475959790676861842309221463522509029527382053425354148510558252795109471401301861692262067340545851477644471830504268233995716687108651924688906195430566519212160179963745756424451899530835970042364030500097448351826668331245022739326815061853859094368390297184544184326080786269864558480159913334896383554318423735465509509000361138204315738343307441953931908678516106547872034447060165274387679387589369006436388778280350025175452453714307463066676455816231261600770372067649869337295881980584735316323827009731801691289373393539483754308803788315431081810133631995131418726415730255909867033363372248502851883078410557839026024126683151287558350874570700697040260437130676647372420009638988614771287406661528095491733836181616130002830005106358832319670739517649707437055619256523785959504561433430604328328750915989990628734402301619940848608368237558558110231492160376336908175540258287462043098940784580747533574184351217497845015097022178439698694920157590407878893257321935487289849476193998456099684967314589910373684761901224541806520274265960583896066718006019219482346536595764651336243078203184499913401783078624512511436728710396337583277964773078445493182523423141420797790071601706965197416735695402161379650788860481869128874855055914393506767189360838629888010322411902863405487381247009458378559391914550752727641038239029553359646474401138830712804199252392610423127788256720266741875798326758824160283586263240810401293298226954467199692452049128383926956532096928596289416954506621492158102271286327613459755033019710056604978152847943355948618570414937536302193474828447260008475084550984833794312428207436602517295915258290114929988841854946085976192459532696327584844169980136409448191556865203724599983213762682190706969513039577968488635842660066699419584503460589010084268165126883251458104941851783710530649342296009147554780710614820827471700652744164890093499096177932139869398030871063552606475325458369206628355400303881291688591076882675503055272577927912355086211086912317480530446180189354359046574951734548722198349848074741971082034959941094820342100076100476477091776040218915834943680498855238356823905623011371217671369173369870643587625344555146048445882869278884740823811056160123748815763940508830581894047379557562112037519852457794401459703627597027164782626135864520864608820451958496780876266948277968555407770853511855912674829488280282366953385348034421107570081280459610006073935243095604730738453617681574366065712356229300723127965639954134505504913779419761542490938715233831201622033644877284274665903357980549495447633365501546854458404374821246208286963166042391849389558118251040919437077710537856104756563333367155910863721862348859876576576102619595521384558359361494922982131186919213870074834033239374355761712335936467425798264835509893729572055730048134709238251197020470380940524551594200855203825758055998429329640963994568068634593071654856886849083778614946241557133657666845803964608538730430863500367119970685747988925565546814680749758840661752578090553125239400061551877860644442851693007460623755632370507074846352917815973907887092924905390871807701606533339568299490466785733283015327131442558531133056563863863440244148655747187837443832958686928088564977338444457376146763486363758422554910299381369302217064343985605506467702480796432207725408963258631854217337161745666799848861823119965062712750803907483427878161452720548831622370966447715052192251854186229856772666864993258538563311608494557585925744378381830012589725304453627146674982032457070585689054243648196931509631619987405252899366561958037453182764869383794340836894167282813453992088982295674888534843085499927878259870241917357136802777952417366716956456481149128516910666697719086083761074717342336011083558978059450649328707702107111967832720504284628127937664488973531364357023331421130290696754089344165921335575452322581182017496678168898832569501897540117043101291737179936877064361808666612031572827709993575476023665683615030026833139477884167852861507461578206148764645783119989719928186209689431118517620727819417240344892832363838949213517876944251169546514544818275807228171505987583180683528269968825553254757393602535687075221947993766643902636817471314097488106700374610014412599537171100411998134703103337596936701633495439646296867033357294798914866224339878716024375360496140022674139304430366334756377754195247450517172757970899743022589376521356063071312364671780682234595967952022987725678212458154525447086226787117374120850468343337848033246537610910374569946671633209209630044341607732678821540992138698955350599322827089339092465468454587901455107060592236434523389443456986330908573770341567385990284524901111258367811271118537331799116515903142755065268752179050548609102096132447476225243400001021938091726600705015748787267335175914988467201814732012994404590975011133221112869250284453394833644656332246144571371239641439961954644072548575433277450695710597824819199690996796092512138999565788661614565482951489674887811528051097463410447077743814034141717815858468306689210195107541012439800520411651638561442984204249872722624869297986550012434333959176767467648544826539043203247397780600229615899455627143799308710216498344841809575671388424978953298659037137902586812293713997329891260395470350515055116115384392272679475139930841925123789185190015219060994135699230824631438553940359701292848459799689951138154653644440792286088445256385807042034623510038472079471733435304868625064841796277018756292642356903864275411589144483325231118665683243237342895785158577497467018511546365580167165459938137490836604468980063052949341021393800552754756652259989062218845317943720088375749626040235401490775452653877206390791424585688143304963465561937991061018415228414030716303463468487517421812048504240132592393202813719640864694171404366201077374681923867906003221915858569649270357568559510170182328262629236676247884923210249569270575123309596101193157876084629137841223039870241906360308495240292867627942246299294090204534696239588749599745335612678038922810952839832081404772993866554682634340528861650593352792713326358342136180198587618138519768419567751142214950788295429633399443634709186095594984593517376081839280007023665532766949596952632854605526879010229106565745296803756329884570767752842361183674650577955703940614824773576171456027588378588426054531455294766776095352932267176451113220590384896022026884193623154987373253268780541836750660798686236790932005552725362413614309979800887941867630926441087848105147565115823544934753216198481495518150992289129782490159427662799307254000292581766868416033401804317191321466027818122731252974029157464084160319997089648822614051494949447029128450761167816573117101763874200684464156281922652704493293938965495813827167469206175885121553863010310168363851871658842053565487631457337265503011773839396100530509951848728686575982631940761294171652610581739058074585443477125525309227905556737220004801108391442177685687695781710280849014691425726895203623245820463559313545882289235832247175719716876926808504357675830652867810477229211201026893115790352630102993336391524901015971079182997371696790153782223697511685758428302696425691658723068753680779769439269184486467715059571318181683682387300132297328449734016832213542424600562560367798757294535063476628776736557369313389131550331143034376278369850353381241057548942378230920846975921093423372530289925873003554311410100489968701391576853826557516273224428785512353644671641040187945847760255538898118942141755018645863026198242978118345122216511909960668177436098953975609326196565163672747352006711857611604952243387888097141408296921571722705938353151189120052835287702029667865669031539780697557272545269177286433559983346181464494952208234709053997454529813715325174568761837400660397538405334260936050633770626411842325556811336366206289775387446198343505586622334766018641504942857040421869856770124899303507450121006414578628591012927076491110075904733803298577709108947584291347871456236141162015229658412669384898279686603599333598030901049340129089905493677723607836233682852769619328921651518946004684691957541702847424780522442554576982391211732378518642897638299486323862461270880531433440040820203779464859162061701311396652773088439519464434475165083517511109805460597335503102385230921597410399210513612840150154296897556856457064468219420413271093481083195094447783456981113929541244730179400712081112838572332459779684092429466723834379505892491871200729307038866072443642279412097570596054822547449374544918356374642782639324635953746078989909544619809806404823017336784418208466250585136796335174660943038456862400059917964906267656729098491152371707736225010954215202973793045869315243677918904231926912449771364764955857889148363724544561847983837644307351258038922552589007695416086586427529603454766558484424113053443000804993094887739951425427392726008617470885765069835950471860785878921514619598361894050491728622592007932946448035630704212212998788615203785662840480451749410815128840766836096697711504453675516331482706527173506278295565480377084375600507657706071895965786363582430369799672334675059827630329899099169580590707019811846902962419644158239965388144565811394227447806662571227374164520946524720738847328450439543066195303483371354072061728493742739051108180333114515394657985466872422438143513074460734419486026979048721874417701508650746572578607454346971344079481089280138085502084312764530045679703903299807014523404023199069985924585574437801601185996430086052384834070854691975276359289400631855460070137247362501462316866204518292256543329442942776378392841595072521192082876818743895209268342753723689836628103015974563747032973414760886279110330603299370602261208399855350291693341293594543639617419704977235736399573973433168113478348186803488119630570680829771909969972370669243794976485843093599985401394501539513991657284857696261691016622877900875426205889043920664814043064654866584792667951097418252827326098901855360756455256582696025599199259364127007871268433622895126992991543127662320203893627850726148131629566267534796989748261295056332161536033003100805525865662488921564523942356547256819578156299720094876859146395250738621348702468995613805777659984867920351895786948394696329475049455177205567756244294230927963316471717533629705503113894382158618756455333848187776089016537550054664507375573755375632770936725946565299337436217810236279635309520031783991674165906843476976958257964385160150048690347112930298798112032173994499280150515672033655861132506252660175034958690082252017812983411995735370633745047891802078540970849987724651357929725343405734794190587434729670055751444606628207642512302746077259162913757331198462104399062408794436421032974784882614341123412196739451288168986985292257852002146095094554237642650184152195340655050317066509962821232537151427178663496069009315710420811075625431434692555544594622389271718151319101592382991152036550362432523826569471832160947019361409869645412982843297977055699584640279424987873471523679615479322620272539179888315803520383687528870329368347633806429437240785365125284266382543691142280501495554669940988800567212956322688393751320380313766037925709684853333218559040616721391957563100108668445501736847167364559796182307308422964858839034528449836274847693593194994438264808704086299658662278617332606323224404526311020642192486812036876508928109157347477872708671266001726934428636431042918840602530915733017908087778987353939360689754663592841995118924175624590897974573255559427322832926010411399314393247221558925638204509930992382944983077396488412551966843052709552780315975548473452006995195862450177885560771604689986267475073568338048192494221429252030651119743516315698975847017881906755445325010729527789874079627111711667165112432485777993253029839881968671925255265329572045851061720542279676716035774714951492865045135795775528476083075750745019996893936255137346337164139123778313128253639249022433341681721178910662132218460685215266892381501730124887338194686857087531618273658140675671522049532530675940742796300711001387325613158135136586606279665077304740001211137637220429438098942039406315838240997112876884414004668813338861312517547601477003421538457289218640216382307495381272380479910470612564667883784357434058494332626226804575779732609151784889315938376219277139089965979167822470627546935973807295493239068978824667168915854180433870772264001131516269115126252247737520084867938313982265821290148038030371112565386378134378508373292042422295254532010232809383677996359281508448647130483184707612081142506706971781553534233315258590836444910251416311191991718939661710147439217997626813080371612924293175599979358504422436329457148396180868070094077670824730747557462501804540582868334603507072501631984348600327144227560998815567312589674761164084866479358641638092720170803080533086784446878637170028744014335039502027406450290962436992513811190187903856758105783694649718671670060892451689198857420759286224490271639436759234409850910443702604878035701023382938719279461681076434292632114888626030270260158413614671350731292775556143651517498191914669695273016055093548195781802170639124076600412271255234934368460346840955544067180910112446231931368172257865518776377946984031657997164815617994157129263149868598971208446157365103622864210579517018427395272374551148575699630657265037712595934070697562710092410050204692759785316884834050389753963113927931916161162233583208224074518172098170415204372176809419041941228384214320777503468643238936283837178980324779709612135102652009289679462713824359208312713336873678566834375363676058530940298773403821042976591231116762486468727012770472507134044908362845405876053004825594589042786200043917467317974421706459391558878549797093997675971553907843727987749788964430119222291720253904349937345627018118878436530300896579930848986647549765448963204571500602148887193602777584025496511184522659177282846803383109524254521374575666408022072712618551693792023754948891069884458365681684041178529622423617687936310935679487116148916698761380442994780496740843054482453553721396990130713280045809692148546679906625717240083988408420132261500965402565658916305460337418191320933621050303137902259212507492454073463722548911712157154438893440020769304462858138950081491671746514752934426180045139461746691489503143607251662063283007620343756260453448385112301622486632953545199689697318369244231073559024539541576316763314213354083595510326792964499558440814785625668529936440489299356990024459314891698374550440465205361273955870171827651473382033549039552100585008732063270324025039010733659865423910121474504952431703619857796575072754469898319124298417724049271274453133560820772644976736470455164993697454009976630678759200417433214138432414215111212570708149807050989685423903229380457528890132463374498094478442067211958183331559980186601402531877659560274673149975261124499207327628885584955914677113004998344736317526737075033304475899153726820846787119817693950286870930297621818580058019946823925111054610709832902180393296926007006178439737240342412461289550783083407222103406638867734269999478504724037327947705319510082326459782464718673211247160196947876036809026246966783914645794250518948056892606339412785297327767035707074873328040148273988815062423962454992464636584655287457906928513326904393444095320306005788534568238425940275701953296909095896941985546929314693885761450671198857051673325024149298762267154295245241533408546833329182468154902597690085772934610950099803395248083056217361832295064689089392813168440409563132910968237454883821826124663340184459470470317797444087547171882277734704453037868106395023491301341781319992879759499302603016162575339502036161212119771239705867137911951887187352339495138008312969341389493912323778415027422235009608607611925413374108442423960498052651563643586933329297851595773451552906720289924689022566662054478551220913079107301212275359433637099113069478016343729302863375479505371629977216554229851096805842815810636447852576510370172001155601724353917745021914569226396267623943183749890520090736319253144896481316538713110095533067229550600450310241347744398451598342433922782651082124278920499642879198207571941769378731364043620936030157163751372312391879078107183154204527866688027359554522500837456541104227883971850984640372897053160480773333211782763464844509043017790331560946068073508294791167400734788936551860577087729594964002461326326491342453106133267483536060885829244860165003961041294742050922158260620953036854342886764799702764732317615847538784158464192939338729623771485741050625928758511158913971159583543929537280720654869746578152153005425346555088535129402096557900314330688266049697201734227275603945155699343838027931472122280403131198568187761179773019649884559891669125070449350349844795781421631801387279463442625878981660931868097491802395111678220135105694936655827804659493172397427005787681485526419249383840709054712707375023591384122083791805474527794151514228102487363330399020975878345724789518273810767398942099750381258035301277904025032617045358553958743604211611140266622844673425934150140411475921691678945048652750501193892775324791212176548626774202007885923872328490127715052945827179716443867122217510089072514886347255884759748213908239285515515218274489773980786005016924106240994491856983927391143474538772245416731229085654070374741174530307426697788452101727557579888955168558434497572080082855774899259595565320218610838156122743428184891214922775510050555962442724547319840748023068803401006259196396251627020366632069902357282593219255264160087499159802773395090358851893204437025661311110208535514353172515249413744880331952388397285184796880635061762227891092532449206440661492866046297108760046262050386774950448781504912623247648398763091794291372860326685882530593974147953878736819935013398166826875602407282720718233996891933845586730263672295114150759690686590762175867370660054972783461684895970251463107335781277919544718937218440848007087042802803493641961841226639049384772331757787648698972143537274007608045413876180233092242306831159138473482678787061102682898911637885917929121655890588195967385470133684300414437813715361122236392473577689193218534373497336069295292808486618950081210572884224605567153943519596424158978997397258742076092237233743721442605052331776122764784199036863131220976491201088986847667440828801414502946868989070605253184542632882293972055967293893841498401941462919416392372585711005606757040098035160681876247496251947531255827465648265000344341646519953570574285651879288016513921857768847538063622611446898097484145729215213972363515605295986613239185107357375881128938004006870944374682859359524326721742672415853789226103292401491399637739181079124636962813988928548084995553753508519969367481563717799371444130806614759878849221134207924151376069641023793643106590005530097304188242352102936580164681018369653954273858007621976107781373298844351060240812504755578510433992921286567756021542751101553609391496369553174124132435908151749195078343846274206422145061839375782883122696740514976117165333443211160364637865728126445827158132728244416431716630542695848504274352976400198587218357097316585946230290427708141283241930952284443361850321432610081049633269836339805965382865917631804477267104274687760343456466237314829211220628228510714663464653529015465862120524516690826953912892429498167092756162672307333033504196073047510980612940166066535890723053684502871379356784352932542826383756960292519323054965151948147653018306177869217141458002635548900170507265433719991354226078283718520109147273859373138586066830090538478973269329261893557157126229162168724195163591083593054201616513231700496602531085427279365050742613391495768916054448379552888235335237481915160117692270739787113351265840430637493276607472730553200754404319460992231344011840640729391535702979659338991319138802171109818728176371659504748868108398419630841374978622194865949888959877342642133867339832925326538897387501926334560490509718688110676221135173243772091068543892471106266919137143374393423250136982319992012860099959489294718601281755100163324744330782908166181978878163743091087455220540931703632066367419964371969974375671180483291642106544757375056082969388289351477350840461817397453188678083475023312945463753748782799302870206689528054159835627107813304659422951485873225922178135918271962936495661868865788111741021313362640985941316026214167773801850476286288305131499691975402425943310084110880112654433700143468330467800978079873852716985934965045430913528723022300242743298212890685270953928431756801434748183021413689466824207775234996504928915328268523974544126730240399706410678641506221466282352925207327316175504250931245036854174688684945548080328013363377389601417502582519623695185401480187081498121914147819996119369540547438687162536067347976579214327450458474391026970277614549829917549434353001855512583610402134181973515275319503436400629431041985238227441704344502803960329450121305577578291948626373150207116905065616521479029278649655831473936040987570422633582022219095076867238589504565599237236033737182984131172750524226653219599423753657248642524094926451520840923533768318198187296336909198011106851907319673407899815764349643217529504060444524774461993871071257894356345360945615057206034226932495848943103268374349054058580857320912072993032932174961354758700036915462618707990542433920528378437823345606919735313123057025827150807823116812902253025891620375728010650406968681271502128442202931755970302690928714204884804688985108029461589155719250197834869073817920953274462024187755027568623460411754291155578747096359496570691703813714908237658604696870841786829453725116854855097919410868695466423055669856059807779592811025926587713774736960198015947828017300121892502490728529184383327279364984105432326011806524864603813521367993320852779168716227791712285724136682734744635830598737076611268997498496929415181193532398368904514756269525109772844423315050982508687989623041867565365547352988416838946808602351449886518216905699823826444284853535978882085806126795535501857601943494681754498913430629560426006422654098961474873745273461687623080872320391162981188672682289448032171575110400407708848367028283282562271906659847551501245965938843386247108185692664936285137626696615277566833195991690414543445435290942991272624514212253467933703072539359868630538562773493812382148780525268125133938229335187743417784585818463873299598978104292822725764238413950624061775997283523140947480009462418885142874381760170711906553214862742057772834257204784432344945685520395202723859210441222781906748401461550232691576335902614012843645100857403028767943975873913059880637738376169444995671703534751062428693646793623848749160725195792447517154622126368065354145439660209233589650815522688147780105055504532136090805999160055695326538164560095769549078532768443593657354076332450028737538859130046285510270865195837279091720796584600032080632294096719942804193100105152449081566538197012361514777876594907429397621425424958994961644530452833814013172048523861165135007062199388277437484292086958320660462627568083348898990293583194785868355729996087098172527283586190477361646019852470952590436437189024135292918074671497097030095232303631350931001545375152686589608944377872762950266111470180170031516336772029776025338914014734883971545399530178186875143113502010789926357824866320914399387545164199583330200239748412162374626420453059473295466359773133371450213250078763417495909682431118380377809649733386150464880645229674556134819237209166998787233026419567901970165093956491901206771743009164795775791799886260322731067184834065543438280800096992567595388311245344427335218364704790152031494841247723851895035043074228168279142403749588797968083357148144289257095501888893055861692378199991542355711460217231014488168536320654985091889981625326644087992273816488427463460416892210447758722425545476174378544641766378293266869828973102706363631259204826006452664953621332462741649677486914316570272361527868865451118430265047761097907039941432194045847466467685038786298904569311071097771258259177673680304617666065405921067174457499495061532805998174811500832385989983353742491554474814867635572394436052975182528493371671134447142232580698533012042851615645686987041562025343928955562546952612976149815954483249205907030833115872150601818543719085710111093236454481258120237339979647615638578947296121733707509241074492620947575215455589188086920948826939385310653502624039794014560993198921376200422286998502744676375667335717054292553039619904762856235210823530273313807226287161672805882043886908675597249279955528460549838913105379954280997930933625092052960173237251453568291459969233329460809038239440918270346244204616834067012068751320521442861731007795995619875274940139851702902158010080590536818180083712451376546757867049586142077222793603840212615976488032348536720865339727224868477687745892986562690203426022255422691808945760617915684520218190848162843485937624159849169183837098529565855155011083355884510810116837442682750711672207727088079662329438341993105072467503359118609364579342166294511780110328379193212948329912243196848836678275980376562329705514921400173679261894856948991682565721887308306072038627140048796810546573608244547678040292594846254573353885721963239629920379487770402011996086795168980703864830850541195791364953933555683670056028288466022124806498212338788911304514887800619003756713428631216670835454805154294730109763189234422967713914539100052199373924305050512657364223126456579684451536671367251664336157363824850917058964815792880636816427563558708449446932347448484724735320917368961753354480883339240543423040973511552957607497394459948057721293887329174104828815473387060133020689729312374110604644308078220167893623595377044602565723325516210601573432450732844314226783033985728206366519737385965947392122360515777891927744175074430946957929419224436438966911311164911588485621868281779754717927337146509099051334767814717855768453547552666125693826277307342154466610768059860020372205475148459910248065191565306425168160827333657186206205752714571147156564822628522123242655451865226834023371159717711323985528652814967070875911648272766832692933359637923783736416083531128300859560535396341250914644661970809854005049680627843688242773010473360347599249511722008886642789149433202832742612218869270432974908763839216743742218736893347308479166419110057637133138199255053720138463263379437801680232972360197919189135205466556792162789269400973025865430059347987143717065569058345661992254490140777720525597895575203467356686586490840548624383374819627905528796909701781102082361424766709540776474204865324315613064266542972715345823168642935412100793101883101218813108074506047924262301530660702453359643040779061780558282447372026759089213103158324847103358087304642626996360277247581158379718493695700223754909817874147437421212001351738442719019583702001474307868772145857778893540713621734564749843030462549663554822520689432302102553526422147070212826135551520136049229061033357849802469542411161055317347495309781299421650651996251002064181172291901217285281650798806440502892358227395801105785336328242561849001849986873813348074957298317897715010997042189430323393401490253278024733011580839743388291324835255618964956100981880965755309182507544867551003356492190583491301124398362244528359122728630221171857282776761940897557937357881730784705723265753452800667972721993882572752733471046926283679532574690616997871753928653168170428660952068508084211459389047640158266886183359985929951420846180198419234685970180699034463713538888226969691535276301603047622525526208241837358346643544252584484282319759340962625546514260014244086184366245752047383222403308063480634578224402629720380218809111243212905853838759884746190102784310870695758828282136037700701513222475072857491008051216152197827568376336498419268007363774144485957067129211840846550834020006198853265925307680549265002233993230724723041527046136452673255569078139300276449469587046680192363143367068091723094890148432366089046763511086887313175609853010469592026571115736100092821024861895952294371856952518989000837401109202107049024148340418280431532539247303260451839013288276425551383812529939044606228156585327331591871344883126527969402365420429374979939466376549887354749566229225264647821325948984928431720108066436702898599347447460598846645162149095033699699402681223631292844586053312127072951920733867518239690074047938551757569784534901623056634360701404764213549865202351979561886603720648591170548442217248536637353794018346340857559647654912870814679475487954598870903089608241548756801369356817967170271233687364280496787102570684179248661467441440670927003902134675925275473539202918705317684032823223771200761415811440454156512434452392745477413686049440658851541753763943058781753967224311775009747817199799524555523178526353984219703955676992138406064115341377246990203559277059383179397432703873509723091864035740392245599442948412143984717360310416997036948554263261033632283025423008251321238210753726468948553632070129952851689662208864811051156742128471873749948151500048110994439162756408661080186288593751988812697893376592164176317572544364521787762073252232217004493192218496822761621968609633549737086244191892119217059706654953180581250477786282905944253422664443073865704220827815449125098187969867328365230875877309039884401635368918291744494297593601976394020732773377684094141577844533010809019719448330376738996190960053705637938778784085252081749641351751603311748375844552507592513295867049518885141320984805250040116748624948037697029689449569777791722823207566766116841348965591741667119783947892299939986348780803100712044427457262836090720797791662635065375826359288332311932257437661830652902692302201254452558097678639257896856745317571622069934204319166595952298750169328765263125000063695095532858885055185104501158184020295618423508528421349409149982515857451629370802829598469719266515985030684107423358408331706379384550483017596698359371703588575201823654857327112596502162605782805262622079314588269603534096668306482485878968522380798298178112105439778095979964900123881378869097388021800043818227649268987979879101603650550954640180999330789355458836245186506959500385502445776541147462340217696136081963397889922700358070033504450926577821675112908830227780231119477584646812036373858751637091390173234589127420282733208641148147769838213841047386820564709049574592731299958977020028210469100535313636419027881668832215291950561529673368916701996341090020953141312848569810309300997930700943656177758444451201590115975278680513823116481699308866240563660499595661068563383097921513587882918361214110541691766104439991054034439433421508669039317275878854824664536691371387549319537848865768824407715621739823869680613155360871799862208714657521572163475848547985794155749002490202071245879264391033919693219785997424900258812961433736708972388808994354411227126223649891079113304119116323835426992651975412258337754288918689856251553611576297081031778357530449574722505642256177356200944033741502560194756902188615436131371843398426201578058390560863839773999407303773520165418059761193357347985361609548148954206656726245129671050426436403179537372561685589907557056899902769707611715257128165639108260900414857034747341854401199612448229206692311565207939190239173378581610564118573653968184969154802034634206420387336184245202090932008635242894128120490401943156296193576567060443592741818998058603529493933096845491489523730527880483262420543643782326898367576133303604822107825767365567546756238732988714414608533811942844400093320553598858042629486734038600001374812795448692271577308817092724132268202806064112811708002442923332869705367268068716544218793876301311009398934061513707347575927106943607665488390438403314407671203112565811169758162110687586649714525795056812469857550677622047174046846237511307157955616028444243119512403417408233929270251737926641726848410832185166279159718147850931389524963441351352319614608167590098067125200918984129708415358068523530999460923305204719125316031715413661182091317107114511655786125990763068327182327305729521474979673133379197830180163192325098176703303501864783156047836249446416619071552306300124347833804435064661894308488691035721739417086865263525256166939285372376337253690146668832929095417948786992162285332256035962257103808646717555873578857469718976169501220952243282971780092378245788714743893920712964324104104364138333270596841201909373298911361451274716727305925330421065650271076724364953756078432031486944215038795701083833151397622786029554663569077216510502164008312568155817673138710169705101722537985242160185949860192757728539871494955582060535179203819144059094368057679068131418208462401570526970374999778818432122789446816202258481622618218077954761109297876962786850980971228863644432418456852910647565919467925131683875960550445243846132702060640714719939245649130031360743697517660343979655213264336393837640431523986572054370101767546183263009200189237457286890729833790332328842498100867413611496368679750702379565651078568253266344451007292732033927654081797563027917553923796136260552169970528156340571208147788156239455432063567991356237740481846042576278161141056937528639824856809614309933514832474358101196342439471450426018722643224793716077412491559673915044777881600643544530791766599507994602391038863220544922366637611383242108515516118910367028673473080588113457439340702511920190410995855116699617076078784554821992129601483672472823413646504803722287407897990335197058248554089852448431067517301338818518892761142234764608477762002166948763394105762144205121134627068187030502496237280331085929497697772635338916413666227863617927537974091280867473853224375304756347072585986456189660585220415033152136493526749596672437064911701446343447063527079105474650946071602140672499267511700680890480054626383802337324780478915783083166062051760852921366300787023957505866114170583359587799496301045076389762801433744494835088947868017766671634163308829698283146500512828437192104850570347907742446935502729047078732340198900589362614935065557316579115625317959614928533738802367102341520433229722910017893131676351212646840914012299161783505266802144284133108580995162116589593354010329666845520445895656955980757038446308320590142654879513844748829201299465024773676261944651165674228473372559628124800728833581303906406276793813540833096057284146211827785310252337240328845726184289278490098933049535065732575269703256564324029776581115313320963202700935632074368707677425869135160024285746103148790918395062246344028173464481117925312550157692333115941531680031003574004473646991784469186055047659247579750171553206699659154524776725389513245543871104537534211298303663216896994171833895561049096799997346593536542261508370868473700539163798265711603389805705707107513540581646152482532905988590147314487028549097289749832520463301663991647578145454566122539565504826742825873458344925170215934749814186932281394574930962382400052730751217550093561256640507186111563433662556107657776939736878262674430753739389302401535239536187471474827302377945113287126625793019422359263245910094171637344150167213761037014231035145123453272833375316872690801872366680952417977695776095990642192281945240724802594729163924100510691902903304211821935988976015013719199629870612946502562044302556176499635014141340943950167634344586601386084692261605130126602232916606093428041398993461279014497298050120694242735691992103025695876631511227346817654478383544926496052028353990012898981496341364877023785673353831673578889005331714236027945352489727399822567627574747514509680951615058275497554146672499354706483115223448137362639599390506052618276422507648890316791472687751725528675485464738671542659388935306506929937229082378844049968970376038938932297189330005804548433626004632210170376011491527493836628199458619082980454435465032069290274115818752565160340814063101432966475225119800377038827851713278155314548889454952960744053024002301511722209501295295795994382912595303407195109616796258463875277028355721416292567858771908571297424713573048474259249711898529161728208661629883518840023604763585733039547810698987670776473475545466623623547865958788551890374350908821612644948007384933348190023302030521744254530084077672346581251123344457083668838169715046127519916747120917327726003518786983325492627809804523686785391722690117526810788381200514671793273443952938686299764674003684311473839920198862234209871641969532194774419495660458547667977853636406836122975792072549893489623015367360037697392378571424587203158536375322832526361184649101173271736769094227756418881410961846682229127085211495749542343711729582454136936660593114839226595805881249942230439570289632608385310968649144255313767547388792075577827268946678753131941150275985791282027130858013057143908296379434897037238525815287142941797067970121035847399035112287087255726057418031379752268846473049720314399591815469462374683606431074824672152418153177455682839305681278634013338621051236100052116483106352134277593569106484553373677557378352721266091572707342960508205466823851739085606970139628723938583785993472556199614318906287867818169168645498776405307396906971150321797360317484565261620197833122685280012158548421722710407054503568519841464144068333716978918806641231844356775549757020725952630881027299481816613081537132747205523434766338039365068166123451951297543633293018643338534118508501195195882438723855458437869404524032642929418066315296088676652559817665322377096820632151869843918105791175552764393850706299633492376726481322093692971427673778402825448950407307686531404803296736173092619554265444298306965108028004155114730722806531589187931025634972442158189088401431335307174706419341355374389217343580952448427691852973955108672037455170158832181998642139487349283108101832999539671559807943595129983422392184329785582611808528563151266858987428875778455731236960120045337058487535697200884855397715934813231738479143439930367047714781970013931998418470812952892563932167230968643614398693399932495245695127263761861867486339344823802913220832152154002516391534958304755955439100546462366990495629536283411237867991734297594297673293049962103344599764590838537873785913359492522377057767105818029146444953937149148765423886628756244228792115745278198998089312287082021143020660221844542168774809392406886459298894382783588424484554490128059840873442759546225149446113062535104975696399614498853639979792976858590420573697833633334970141276477446175499272485486694684327450860558854364788501637927010880249500533763339500248636835770780070624721965996288053480496659047325207881584046071192780565464088557443318328235237227144399328007428093660110312792251922489584884182069168937071027489168659633382282529922579588005697615001665869305613056514393423638392151623173480622743269499519502196927465907547498909567798878166310753691468133565831516599203681241935673387045959198910431337858512780996935088143345110243656532601107504468308780204953185299663508918213892942388972656902767935995988399791257377779529000485166176601565954678143544680516811169101978316636164353193276372760891456640211528357274314783552161397647597794272818766594265141962114231273927282441707559984103378663629452694868245130008485924221655645329291339081177921630598349726545634384062740909966046065244901410215133121125767030632146348736408292180433643617448180300038567212432108984910974711872054372308181893944619724624979318096945359832207805145997576332260508391644551516813928960377460362087897371938166985515826756042647218499547184035523932515637186020632333701276786768916885059233094526582314462760988160475057997759135634660302388600580282862053993600173758317067403032673468028465806807659004515336869123668865904758876317650392929613232992128209041984193188823421083897689985286120022468854697727720860962445251426290069371437610593606671654769492839759632389619089239732703639898463548723691375247034843150421669229393140121220811619061883526951874905182418810048478885435420651577273495238988712558952591056481227558007198348702578215907909111768264528721028046489916070921693296424623334656165226982039192373247461488062422067268281382848121822054125117234681664329292401905598302373755181322066732345249719714719862643980166620523603731845392051146712966916823452346268868537992767941051112956740419447152439069594677609681387657411631257478200039934016891916725493218845020607975193797714144501192348123126563385348462395414308637338062751917647636938694208798409227287588076865577986312921416842578801924124059800854537364430122905177730470108135631811056650274561125613768122403417439161932496363260657353860129998268416122649751783835830034462403235365922360256786818026769018178927487005683112980489336686161171918431530590421721850454563617649002015334111829929405480109960361510906358833799711136651041152364236534854898593272705532603833618191230743185929271600516561691815073093905072861786774860429520640402958066543217532824357628426396588866679021946180745610333083913596827901097755409607697256224618267905853687943899009161711082983162907343583238734148007166030021147935980365776283705596687586809757878245408849164256183633275027017458566021785984526109421215882361348933696080505403832770408436595284158257540399739440095966502400483839096601668160084088339075477811079533352395171826553808962667954657882336801361693035538145595557412552509865699553280823120601040267148119449646848682103912864895611335902527723341798414594920263646196045087296900146058867172379181845101525390968087591683142592393302297651115895549659480237829980950743260046109672477884474384394119963751540400060502933297867387171520133317319488906809081908515812868057925462240942090317430947941054397378629173054211815560766493134825601324922146124592833890181249944419770748113357882286579223572050397623697127600909474928208946908700915437844630665750915477404650767388132491149341274490455921618881715196740507774084667735779759310051820421024146710787739837423938471982363765396431081961641237824672805354133435178585006354169555946935466200852626606431096106420794459824680991567777071199880572705099452357099990189720160483323930046021969905954554582345290252789173235906577698650009104975227095793861795944987545471886843033943289069672630034459435374603088744943580905932797041968723249255973659606764843243843220098551993269526373220023820606125057934628666648814271916525376105267399236982020419143880678977445669893626481967059882758763022103302193889504609902444588648174623752588133538018481369453286196643397321932976069832130770781540343210233241549598745391447656764066071553089791426704897333874986390264557045496003640885996465265854182345001119417757502585815036998053691004690430214497287456701840813735225868033020199258004746299995680858894252914986088472463743750639894515845612196088273318903007854930374400258792253314632204421223562339570693995324672151644565493000793330457152498450515085450756940528132563623919395163355322155400950309886492152331496188119861121221278947356259033451740210236742701268949528405894458419612212440649957248170721652499280800085425632566088319808280506988180455661804237072595647190905425243280579497437271308809873663060219550475878198883966625720156175398616279822777742395032926823814084514165529110702207741287126947371136872297894280172280541550549101534672403006631488930027626385427218299629325469748691728561849466776415647714370715507407719524049701475135911474346623456721592209976196939867566041468282356582104715078576868077813418892200845395183122019621287460372783939839441099193837919099186658753167783219333577751286016588250545421293276845552699649724377645189693083234787874648911880157371154844298452329998929393677843908857533249539055997418190403486488516922885812008739228663766515879979163020024122292949848161756438833215098211660497358229278597478537241149299737567310686333261446965968937357274412952642785672650772201977505493358173255787509868080977093170320460576214162038285634923483302343151865873137709710807008251907493644726828595258446220085234187437559990364531653062825610287627087685471597668901199970385621177925417807031140284287502382365191235096281800731426969634877202690612714471585499078359100494705653928465992287126552738742374794955492742900540786896881688987887835399789983146862506070867741253534650700119282029706959785820606004232986491681574265570425741970924717893931337678368944176173948324060579934908737407618795797670277180312131586146407883091378084330228618275980147017713172850478474623990724969820441089588288807953922141357589991645319748679929599714560208748296391786111962571418706726182653820207710410129616374625958478986128358621719384506063850723415012338670548268495117340756657498198112840115183119612871621282950972337720705440759860957045980098130452554080042453849418281853536977464063655465350629948769961550245431839186792544538505555413198783179856013455129663996862043848448806118218065898045031996293085622544762196866995606625618230265747406337238134163122226030322427945079967283107443937793127043540155969758699731814590085780850756447395425493695909715065631490516682204488259038653769342447201845734862437606666543094320565492661353961477030698163883794075337466050418904167555366403073429822033528509648098904580389433053542294602954753250951548747700900105487721773553684236534249978211738054421276564123916891567874619951077189480836258730856207311480931991057844673248755708262992650930886533403805915727283213165424013266695395431681847597631813584684487276648063545333267115937329721841158537981885953031955161613467897945605271717493154558225319379333119395987266078613968488193191986302899820243263174210577891349656150748935150626514011040259580605960767699986496456265664802258230964322740829760853372888926011454320880274763977523405921584626883677144666562034608083814222262356886506354295413377584781408672312163617834384395141964632750212044653109153317682116607111407440097545955609259458233363500858558929512244780942244906770647721076464734000273275376504352412236153135207213817577496769507589574499868044381350777478118522262513373744228348138200273709993214006323624068976721490247728068377098063416200050604943180107617494871420395936980946081660515199866954229557389298354001161530702575121385270091788229335164812895124666951558130963165328237287425055322055071387519979286335024409175274078589840963787659613418004479589775879313859291464121320194014407992365109279870863413125773725838635516150237902689995980659303522611243134784625599820075141985414971520738461722287029386440830483519139904057861848374106300977036427436566373544099950458675802184636469040537174735148452946738653007063027722764613956105635392442359694878787290986309832195580808772855621933698432935352882604521039897950548659771108500150581950677528832053545897939321101111230352875175658556169822576373386404231738195518617538805232900505875520068041213316671523422233267902778894051758495243057360512219447978860716385041362094932478081670723547961481506998698673468987484408042431623795640285465400705378080788231496373437903952046147666281010191287222595223121788587617390480047598953206335014143868634254808266652468549638028466614791230990351272510134958036271998729103776149449264553495240040088203771668801379232015083461517773657423250282219607917210361244769173339018958303269216490147530441962292960731627412893621962517711906894174734891166251450911779340157110895357991575973745727131032494411950293380751686884192974761803955714950941645557544518799553077406640205520591706728066949040544098314469409519711341251807069280758257272154245597921257082176205065725072817920137065222918661684809873763352763410034036203744015582383928511939141921160850800619986478326156091143941753354268061288814849210973126215282813173569953617333042357684534427009948312155910326798360968617666885115960526211921725996523978847477317625756102467723862693366467001909745999699472786885101715112326453751356088433231432095315252774894882065682831902644308144342776428590476986835513492793068242808861514914474504729425935281972091380421115204455874703112468452998907222731151094651493362840561606162948016509242129538784744521220343516485434456163614112048531151658263613351392937833337336557691376144442790930314023948146286912206404414024278915241099238791024474284032069763341651174784956653266378215470848495948469932403271704524663306315131838310598852464191771345067166546733172576123240787892337931838036624794902445492503857437188733122223953880222756723876471429188135510827555956986526486324255021349218463359630877905858303163299610938389818004242398128381572180667404712994716081166539745385904250434153362423387188827072191837711979582925955618846725389980597369349738929917282461248706805221458964126193830821802590180652609209971176751974901095369799729641534086597127955188120743958317550978216522321106645321347965012403195644700370969640934754057075854101389403281040839156179758639683464758863561689252107128607537326862072278124141718728336437490175866213764152654450470530145867783121964535693614518286608720114971618387929687011567800710477351948381327374888444804461711187046091001958792444800260232688052245005100318141027872092151050744214380620231258773418001806165645254057356123650366960338437525246188516355379420867747276010869576098702458619923997807041759647720369441609898931269688749879027376904680921218188466805115751639805537197868441432799912215779000351834819393068052721104165861960170618178128636940769395887717022637097164075910546746718572025674909018650105648992100949982363426158583637986521703431790723329897597253182012044294580726598455580396950412144487779994784051737567921616464496223257614814886104273774713189934073147757605397786135364298989808437249826663492586173352118228861454883053024600204733418953780009217354124430072789003399371111179827048247125455850759717459531630434270378596386270947887178496155859437447943939420097335501453674790136686370583109773066541304907901184624563037010689359030097578480105205346229310464919601191001123606972423956104238810740323291275364530707600741210649002592689809566691439601051999497804012308769619795061948769478974842919141015170933171335613982796134569966208333780124219049809596376149737001798637378117466072122594385331689118346149853517233209381040035339329970378564373533187267786338907432078739086083267403895944975982125322002271597829631794653580366081785634599607816582958763283572312167539667676833733651935485189982490099461586457819142111733101526457664694555032754894276295029437570381024403638662847683697518606937612510101633087722149501001621317590726307939125173812637035815085679938551191591936089565025111720064495520857502072395747016417294362172365358011270943153868741499415023129319849416544058657827588434771940868315258512045741911065837337602888175116246656673389739207454070481032134335981655023224942693104173644281480200056688872784051050876133442168507574156669995670329821746283038442859983287921314713472223944803642351918222808799472166998884841070103751622293644625791265700875049313374489381504738444999557583346813284631398289129120104255884974842648455436777561216451922594487105061154751898425725995960866199459460504028156537290504018868788099417656506215850831920545245856137438312454806141291927641974351785349355592694851945535519755589048913041624556864235471496770584327749683260096082292852010501894708892557512634768913886405776780678850772025611655195172091430301007743380557946679586677197640888520828652510249164734615165064316347767182217150091708404016348884673501811636319942804025467222426693070798262968685111915445469516159253089656556664240037732827129870583099727541170836276000715867395664504150359076915914186949075511070864833096486145922398204002764141395961721329134740271521205664651229507089015884085170450303058322911047975931413862068609424988464748665521147710235013225422345093144775333917250275690791837763150412577153866788074248372300995251840798092929328922305659793549061289371381150233206992811321061442663200069078416163931774957282887158885210288223592106452190665657936563541979110806539208575325443592844533951401051335833529538541092829195257083603857274377627296230855501148084740446334917687309066679394978393259279201464002033038174097079660698757642785824377723241925808415269712713545840423810191316535358130348436262410502146566682469938819169862249592807945925402817028180110878380995051111663058871634371549893827201761197902865492865489074831246887617128762353499563035148184033225521074683055525241283466851879460338209889654346608314213417317745353171591005364799151186604449038328140546273811303332789805544119113619791321140849772235850529120837023911058620253592109148380620004795186682565482648315620402515329603998175526379759870909306188315521240520933185752610181055346848474752951699867045695686160827285898102457064008249043831595408449489660942194371501177598029896724738670124886892642369726191345719399027698396665855286332932992575192455546053831359746169951136899006339369892931144321249314868384177907231412610751319823564776262587759267253224980215235457835566090369736745388521577367014355682423836724039187086989596139389748562149409555419031161142592995787488597276689261990963385672451528970785647064893992507401546947884364688790044218229035610542039223035151702985291671210471342673601284569957973873447147187978071150750313208041153441977149888056850299817264372544747666087927173142711233192052003858783827438415632941220881829601421428555860552607754765448715648526094431765780063983743795426648643551865520170960350418533632456403012004047937152575400524201082533392900977867926856446093502100939127204290449392036504844846716535916871084576558059898419154356458214665092415456675138283293529694727131799468607419186374011966644231080306815561820696529383220194188071827451506576933768042323362278655201525661226280644115360138815402666613631383697667390408290505433416828119427601100704163498943256897046851160197212523997343126973077218697638084109998752016236120089100447832014458015888562890141255922689765851444993994726420487732220308174654519280305804930671702332438559892405728312068274828513747897945133842095207270481636442086362579080841603841919695422570504308971680228641134309117625014312838689852734164430864582712563518040955015654829556205895549325651043179237753744200328903969052433830576070845061049841716125311886309736154966724328870282021026322986687892744488489957508578809919480541288945835968239502751831796905677901878590579660306665264513000571116033081872102230521544013478176114007248043401374919742175386611355213173250044960542354188857978275223798337654587118431873740682484198447113566135947873361491855333557220777399070633636259321363500790466481954428101573084630852072986157094826625902153600761155006845433993181905615799252790772224588819501558275730180174441247181607843474103828811910566641476277841574009791937704045466139888524217200039007262358001213729862054544590195608672765650122171831065505944065359256223972022270348015965623393358981479532942416338048477089256757524335118711135857379249735891383206743018233802007417389413596987777870140635928172280040470020906470465092778225493605694788955354207705170501115337079582808700008607334971280674709473292610360370356246021538137909707909487575015505941430996070780769144598259163704712248424477967281148055210900660901018042616755392932913018391171625347479286795929995227458335073654151882949417345952454952166598612864160587721453829163388104465563189910286791321614439557949831189396005564239794830736569192181701901136044766869778237261846843807094472951247906945001131926963837105247793416466635473083448763316658521664018920168988596046671152643387184587760575978535519505978183194688553364623929383680947060046634111063502899855205295146884447816362437022219729750014845474965197169103657630932791882920082823293327226078669122504930712785545563083741154866420978103855492569665004585094983355751017714384468357178920030358804449410914045000641664863850382734520831302716559793465778043661311601721680016137683089033584563202859854510493101021950535281561674322033404223880817885797474399998941069080874806780073579112830969517464733903203238799827184033443901032986177986984009284799960127449164516667982228079958936499620444520099252266690144677007634443587305037659765547146577869740082678026566913872153315395474571579017318875772075796541084069124929340516156428384667092441894797636672563412601110610972140497439644065580893918431573459317064101540097499667998614838383084902885118370507347522557544264580054393610096189401701340481269726335617277701962475929476977318859446867734253454416191104329330643124530675037688798480519560462811773960473051468880808758523316384347633956819344102861786621332213025239314027272246704600962272963480674695821696792897353285669012303039580503564624045837133688157235129127772859140269391732366737286393864391465389910564981150649547739864984561249768748934568694200764872865394212598327865747443564248908337826196604976139592580660772259669119158571547655811473944300443522059320968934924936845995720445307109950398634734754327265984188193647797230097003256975215485551217765638692117089190567420964820720285814170256120826626483873598212069219048564081827009716310738266671856875657715795386727113990401885315724000671919911770799690443491242231911439053604490512919908388508369060910267088674762077931709570441138559693612637966944765298008788476396341637206651452493744565406548961560924718965685173299371373083211977177496308009919330635205887883190692984229551689044726583324705015800986718474537397607789989950504277982589442002061263246831525698655907448201421147995367665412279886816770979074068650754755356174797709530206006908661125354877594735328823359895362023660565531294365284193175116090910562271558172733835848059531730889406881678681451389152855098708272561380440092080766865465813317000773438069850050691900719851944230635761895732689931469203083214929195134849843656818489125174014706246989696622681865958748290105076373126779468860106238578994355394798854702512512990176725822238177806292154462114943115574466162567918963468075845473485050530777194839806151869347957140832037712527721189128066897655884375413405861398889260504878185875355508985648379163990055204311564519213053616650349565993944830109654138456267997855488075673497892270706018307910133296215942325339476410615170004749281599537296424634106743053685654251520473172530660599545520230909889072879559487782820016585887409108407685514066153552052623334203742053914251439843418763691098063405768661898690154938439525755432960183545120545018274481312898523547975483429838206743789168526688756587839224366198352668510194478233492185256626223930090998863730890061814019056711464894948878893386014175744823772706418972533423542169056286033947934056550758862682804745046481065065782825844709741303951285986813101047926070590348934106962322690205858613418787813213292722055326976945385678125614757093851142490018139457333794825009915309909127282481877474571048022780603240333582975449838705537671210691296771972802885535729985594670566824450067753501212963440701165001993171416952112125691493600503838831366262777587876413990198886182273458454221028872594357687938094223352632396719168513405056192130383221920237839287219530486233834830663190473310983840192763718594433357344093821841197867786725515424915039927534532012282153347855229242688308664713821083024145219369558037785614793111119215754476876219791078753043466154383999152023728666677611123735836242740147660887412890539987506262408303756041929470568578835190856205196306346745077414740924697979832447545047859600346367600755453682462409771421409770060030144195762478036069668842684057667869952091392283195386769820158724742433809209575334388729435803528576778723950944075963535763953174472692512845665700636524842170182114982253454024308971693916775199604329157796424166718219960308660280963143285371114896062497648022863750580758326311036740561674411053322275291662438710464515349772081555178627094139825083295463357811684806316052148966828699378010815882109459022535433316503870465939500370971310198448348251568032057396073777336926782714770029402753652156627181279865023627462470484273328360149557570079912672041625337792028890481902465244267000485308502218410254684411047068017842088868659336264712602541771182625558043172289474298571898385243912879412118280242516598841460235322498237477951765474492608898590475768902537432003538868307311491597517373710077238909611923394675030921443091129987807922957125110193253222342316313721042629540704458414703887131857966563860996367401182201849879731672220523391606814610206298227787210508270347853214795441929065858291999667806036848306169276121843796130019605857664128591851918192954564976243568320472594259332967304728918555575806763068828680424131067845136385124924351944815238579808116736352598696109614019930933045916012279487218342324615101162911998638488699952333762319524381331398767527449474179144340329824667959793553283892091154438404020990099313850202191539069552789327470437440388947257299781214136517984639224388104830655477475281665670453820713907944503605098051094914173877651294472140991528623817951833964172760271581579283687198218511662764658462846282602474675786369690983421779213216560365351688022407746688184966975568270227110452578673341148864893482962197298823398355052926901610738048676112467722741968333162489137999049863728640407185295957834711705057375174342573635791737853920594172802306603768715687297018895030996804613361743867880543818717034600868408147034483774563776366593452458101692896120099505407670401870085390152281505294565209038601036190043411387259060987968729185969437774359274587647139094390311889608194300204849033147327548257477671132078376284548617936012352749940257006035833674468345780199198241130082349213955916997660166556168953072081650875925914184949248886498323055006353371088341561208490674387852100959264886150820282175561364133243641084070231449130252119396860346027107516420897557942523642698860066503109408343200152759390330254849712315645416615164107999944894637876545709559456534718530705590432413010463129364505994772996692993042878273869463105284766547490091082806468453507002339013638901384812812499186683366233219217747440968520245995206099783892426990229011638415283100020872142779603709728503258598009654106392956578336295123322149862862477068127343242238626237284678511176639077720658318694868728243150401371150146974843469989940282394862895288807938786223178009117954358744661158531308166904149327291163892524670746399800947021479954269479668607623749729780917018228427075140407078228134294905727998100901175200941712478284057991969754899635743064746488764486411282610001948355463171975860500750717986635885280914470672430804866990968574214297342346984326972289461994039040783837652580584462241507136825828627330572076681456019863611168905760665548147038952308606497099506576986734901349328454571509851201272559444774125752904145390041105142034378168722032207667259352783207278611291925658293670405187508870194713566489417612978996104436365871327231406680170388314561427343331145589536381908250551400277649302362046100325996508168137983726385686304497759788133832670563328884258838842472741391918858488882664864300649371290348898770378730865482016320797326841967119071158545478010898753171214594213855674845850852101352536316831749714823895996965350824821765086181631671818606561919947359285025603774119438667132841751509045372969172644835440914758503045264786871072915075452396495132328336567390498172427746781653964204227526002344484837003343417487230666553926664770640764153620480644406685538192688238501693138501975925117966591229168901811313129220652408686016276986742732048791336147467539760797927558009495049491229937146826714596887563600015315328870588096203338897244164620455611457828267536011524415443935283246161007976093604722959311853049877740704983342533368756327897976120566113512407495866632676202275511195586399568403181352251119701980617869841994860810426012766708257697294473864114341608839485972116788530950351664191469836516434526432152974082077305992594471342661903723835309047191692264591767939714413514332398396026095942542311204653182077998919037560823891924282438270441822292028408163375740155149522240062124597535510500839707432434895097043377281032560316370264093813804770948860237589610278898674711511283682893052209308928167239308717132555879811796728940009734764373559635447456758082728079086694979900516224026713141455135505025693913612082002133087600471140220512847433610472761112085764406275585107638623745376964950925547004979157075853054042138590200795900853899638155857955729352770708499153758377285474663540904283068388554115845031648597452019814410611307411380720230566826254050207322136132907465890376639952217157191965420015889288510966412428177868758446429118351513795286465825990463807955645877404869451427676369540907227191576030491447304404836219305471412840396778101796180022567860831465368273494075815729100954813789978981677919508081499883856420051474372843742431394285657029449056438021863926595111473054829667309428957696292632066215827598800899273186274491727445384682897319235774574273007324925122001012052741914494358367582345196033282205489969822224873214645414386894991745829377614624327953669227019552259874121220471951960058212801574806208262865036251839004699735862874016555009872544303485968475670513802703280788858129000144032839990605043026396794379242628626581643213111079523679482245589455698354931062194053067071241701030257510703736755695962970800812518642742268663135849402655530999732434972630802854204877430294514626582506227680051594954820383843505332965651797556074945732880666229962679421197543514940965502519968845924335401370550158905449469538935726447443568942221215203418786577025385178921092052949230824732818334446165979980825663526425175396579613954414976082883442927791634953241748088132582740654098321536088543701240414542169368988846473213042537543199965809177649012364794097075331712768587504818601465340876179132527336263410450162828087014138924620968256530379926962060901566571033449706592852781590128647865112830303849201441548690843219245056950581895060750125835275344024587988338749746649598909884427647479289999006563691383987514130349661519772002110979133607057065781939397032468153626854700159344338585594770767377511833806162549286831773761361598748780840871019407160342258627762918666966252777661251179934784412922459147577470671659314058050436040032749910202769487368579583379585933163666621048548775760849578126668464955308674226249110308909637803427325495912261662822812302835180248152313365339787487061106328808163799972927481319591920429321698911037164636671502097166886345971713139349360998557885405453260080536198894381518243964520385912612092550374032752779111569789834998814924149703120186672915913302679999406131459904164008222947265873219451278593751494577132155284684167118787783721089714444031679724146082369737844835193331219481979450985121049288549084749422674899998565432628976320710393510577345689614801368091250382990894630893068875187592596185887561768668229474551745481345555454394687267142231961260577947909253768381270868223182040226167192645578608840961571717316601662026282760453375330856892871396752635127807410652585525432789790351681842690568088563996687356053567114898651684562566360833428408995941091577461619109450160037365846560964635861960248373437673528870783848251826690133380823111322284474875758919237475701011491666933731605146542649508669192959306500493420544897628037279611707300817579258151016029687401869784681982957076676366624429471361253458696100541299654646043465068948993680991330474898992133815668139955864958732005709160401543304644599083061648080661045396501600201007117540898611635495216597175167078758370803644981035852231302988044425832026034114826084728435378470309576752606656803405754317184405390497661222891736912195958834817993158582075354137061960052687049385326308291836516977786785216835056225766384809035491398465487879988867077702371839392748173820641433937737502439861017242217817673873886440767398426602563478748960387440948322250379334061338910055511122378773608995529884560743591690647189656862363096679648264603482124680432355605515065144063578629172326521246014752777548228598175138213273146631244235119792840888034390625003002875813076742794246571878163826105502557427592127380313885673555239450412619629017508859099394483575857968445894387865010697648532995797223091654448663025955626759569368338752644543458239260154895158507887549734045793109504442513399087688677197511627009825909474542870063516103137748666226012662096287476025530570759527131818789027186498898913649983501905756824071243195211200454617998466977883546091740801319531992887050890719677001815337083590963510373316491135530762840364706565463094124290334511160713493670091688441836944850333670531559213030293505500509130026756752737659395920675758960574221886064003305883048174970044677630848484066387190159651392029838545202770960435784649967265625873504784690131610253762849303720221858610205107809655231673776683433562089136484942071550042153591740594801826887986374654426619042882624639034271754367548071785401854094325672918574845913909611962106602771895800727667333553858387147643214324482088219212607084428043977100785471241184817085348489145654079558573197476506282247152556021141026126514774405555133948124399766741388713828220157731596826260211481783463537466559512916886540067414631029927035138166855090055902096909068741318376853669105131628988968877179482917951557892406833819679932782790099140150596423404892381697305437526487391879996507598942360584468928577080410729850484029544506521546966920036865336786163828205294369378842759471298218100697320904842729661736683737762941808475484162301171579850288652072565948374294969309865259292355469643526647547460139169147718633642490980281298647486114178170697640164341504907562105101785271949455735746534335039885543716010151646481883381134540924418860569674074124554214235769472566065203058000812917286313197019651139844229128094274715782116755226712137240357724503701528208888678699922192009862991067721920259284961411286084666313498578513976988761111727916553634473870399698009970803553704402989396975742402188593371549729994970343816011581749999704456812512211546514359040677781838033042938725011038561003375658786413034386614438227465313807098390054207325743038216068168295052911683207681450430936450094357111952642395458808770414680080018922919605090325889541277132509255207412491330048912433678478664781742850247703204466839877364930838133790350930456977862749918196288779395220142477307464994831946775299060799633993002395286941813971484866551128521839058270042190629364938900014642048672192747353762789280337230893704589654233107384832622435014937921322406957325069957082357861983372347773555884002219882004476960121880484485667449710833876253077139774689289191330780998521570785340994263791779308439209600324265587071266630536825773090661836079058591822385439279106131018895035465977747682739945202825230296903592811895076513745474575977096828291257262748963211631301834120167663598486229593453548579448294733538621887516258353442893896225067830331290115663268521346803742772459799937046580333400311566715557383206058006944185867797016497168282299223333901152407341722267428812991362854315299349673848634871678172240224913915475142940960054052755197143525664696799408717977012176241486805609579534609666258103687715395375854320883745036878064996459379829524837521735674374448722160591317967166954505661641916087428571766274255856661306071954312481449953915118158325000429954724451715292357881636858106241485708764716493353659737754016599984654292101113737462506224780245317442236714003258913026806312861102953083352272047608791840290053858733176938627492362824801592685461188744023646245786188888115226825034728762373562848920850090773817372861665756080892401426621139554666072025485380849806288718958061791485560569360436789067578310441267985016576954777052985845110396768702885918385667122766223886214966203676516159827799754191291177609618442402351286294035819913832910618225901407424767413582337798008634063610520328314059177283393289648092645778600743969173367620230495759960002739476263537488938621533061536168324238069859349461066220486456640483097026433262482584689153533118315662497264256741344148828258070290556933309452691386770893475051659297220743986099022852126832490433099909375715593155431208928878135243619642988682640141970378023936907089325159026785729123520731752335605044194096454515147805024521366948621848546030379286741822379779067223827271684546961011455401530650242525024811577927103746386480532526495096051911806743481022445197256684214521384332901364475152984430481073971777106736633900566225518298811495846535865047554500589827819952868472841134898416177866640354668900259346852200603926995471013149260012665392283594764332709912018043138419253072396372816102793007468701332805440642138343228753007784438949492977191526541075883978866839856471553233778831163995542854173138269513934253154657299179435729279935535330874331994065680060401758104411705069764774607171002113919689167065153860350598265219792151435929027996005159310023434083682866918614048715781732339290756614706182781735057931989224949714686477388107226052197980064030839495996693422719969791466180516699597847255388132341556751519236728732173458755595244875078000022405783740566495858936629721656323567322687591041683576281262092614740821291599323755726869668967022091242251380430283396303556099645002162971174341659137267994994807129261623402542731507134757546530935508931603100426880935772117588427025338942947960870190870505170375808934570580095000843954971723399772370290618911863236960916528075394300166324356105537074333200146338187082893461591525415317791146066324079284981729819406928454646964920385061894647443383821880269686557856962478094215219084528043329839530727839981701619307068658188435114383836497142115315447667593649040005826169181189861208251154446815130730343792635448992394495878974991897474246357358898791855948846874451602690279306459875273772299446250356446263425195704084712356719853569475398566378493686786120565329356361921978671511041614011412213871690894228580601370520848095870922065010422667462609253220132017384431892614116304920559634068243944570420248703683076457352888971977627055104797990315329401485637215645762931417899249970003910520321416342437585497766784424954063136278603191679577277763179683355330310591948249760754969749071012031779154705116173385235790364224150093776111922124738227876936825006541918443625747149931051950365711686253385774972368534655392141265993811017192318157096217409180911958915152064010054552417378138421114272869915581377080429009791652682627884327162415531966549419100449665290304796049741916813610699888238873398378987916689339779300150380108302306280951736959670131282967511408772067567041051474828760276588226402765016949911529330167159878323076463469344575473344549324842137196187108139278714919495062767706215002546686191117006990857799721379697762444578178033134745424301912821860957168357821622054174558430687626958767200674759244871238651167013803257626021947209968443569128025896704431994157866144376581784399245917164267654278110692314264887618383334705575323911752343839637698467757705626083877870022233952973087864503557634779127709981396688924304649004898584045649575165389736278413917834014313099983424041681747030843960253125383349561375311882178513002756758515407549041631171008944103022421728687244186086512358947600989190448143550119289004375305758584362350231213370422970486424151623448267773194073271778296854302070059981322587012640639297511282093526830313079271126936425412384510443210963641062842342677249980517306980475118988162688748125333805182860644382914827660407392340908137753811075798343167359761206494016206646151911495310110394806495551685271528846557046017679644460793001994696830145104151082372778694936278559572399586507667541819504233672221693054445914273326665747934811658430964898300334366747230367656587662696578497368881091105573984296990307549303075782125198108498308506661560036890530654904208646588963774282413255395694023521516287110603890948749945055262903697321273285641721657364838976487213032079809007707180629984386778813876979050279205575801982145172204859199582769687285823614119655843841602266936184542855712513254053398085741121853251036414881642749468672335859941531682877756072968118039230422566971713534862306314188482357710252325265614911087004777773859977932491023606906472287609282499610010943898569901029135421470340341989561792409266498828537411269982332186816341794008273408446385350169954452895209262898666518311135816030884891751766670598646691427394168963708014947484108461846360955612692870978057121963166316095355117460605695214557948720608393576341241244298372892398584556753955784055827359165492652988186318605955861848663957883987166301688339587469385698514449134409291643924686121252772544505696914699280270205449421985626520485273006462767748566575698375426750567426935503306922048601748181587145994637452753660844451517640961324367796950911833430665311676581833469980450548993672516556684971188029656360914859284244015478167192495756125030420110372325300001053462603633085237472732245508952273095958848343262782706991806073901129462792612089445379572623359007959671831421613779731580310109494012479106559545444525919187936982263665066182788966073635404531335768315686839497900279027848418719646755362369298148139300074860702348690366137952758115114988557039604111219091821716224732117456881107587340119086365330795572098354824429528261183904893745453470855114128596438740918486322981070811662728775167643068236021038838687229430758934449142374721831729222079829408580516649843480582681370304094051072356741389664419697967672840365989412161376067937778291329391060102626164451028412207324403058271680331865623212149481751241900963732202326907329633827126259555581725108559312903860644100094056571218912667638390633148866127017298434484178953556174073972239519072325537336482192076873500322847608133631573275002415809715928205884155379735524808701757007622993119490856480672425526847236120044578908962916814004292384678857722984375297120856217495245499818523162456470743235589720634636746754293669662300761810154699175281418178711463273268641383243968660050493321966479509134847319060470870334282252123486985064285159371314756995080106765072413845199712646408977702367729576175456858761366019692616646123781555456493279210274747700691600183209712908767641911872971640580779523222388629831607807045314922527473725994457501151601084952837328660665291362835414455622317758341669855022305903221633004427115031164489388721085436379169296539022546718678828618809686053325040597772190614864835902703748689232994640010748333864489260341968376727925943340051607316664959701067177573073918381601215193901131634130118597940500486185782668192102937901423540554144085552010032147967477337164128679735015997380403678683881235166610139696596655149702884576155344158951210520408877506376991724303718689415417157297912460194710164965654084680462079898254181878966815009486332567936375195151778328583303665010334805805079918719156817249451237241201006739725975389025013744197577175901325975223019579011485272692119360040249914881628034517370532491275050939811049098740569074669128460238732805988798721582681060200557875191711009974470762852335179361687002413080036899505343260386883061925383544886152582316694269759200588884556307224285832115478695609476021027568238119451848911433511723026152630119271533213052086912390051553038141713172657878899984738064966597225969310542803313093328451876763176591264500623458328717314461547917232793747608818225190859136966676353825379354773668669339507091082611068288108724402322997319333109483767496849816964723092085769772269136789851423510364715734830033177796492491743551386775198107614606598923097610848512671571754875078675726516300054265517778260160318860156521894104843458854627554083929038481321091063667024363776528587510155470722094477161861008533604210341936103242544408117129529803166904440515569527696319691071905674625857641590901583030256325926261222279065104831350030259585122064209298760305848359604815439366192673867569239095046547644322409902269839107294776837202463908734441111807977821177812313223852005237978496052141514294097195409718526596624944831510081465755749730003533714662563288945457541786508613497830298428733818120459634960088991372466854602645365884750611935591050384704318382415123878808522293313748870478963953021515519573633461962637492950503759902039563949479821348812121605615664080174008270957274535309782204517862710580157992254365478305633339816911458984632244301809818119388491125402524988329482317501568708016755629170648478048697532015412691502503710622763807092713414139349573799564278488732494921021758705392491395888800548806921237798353094040459114726686460481999807767991662559659549814430835166896499921201410215240125178836337103558118356961733387683723592282751531544736442686938798956920781470872372105055821061016006416279450561217572741243141170360879728951389609711077867451904712245749995917507825975340751539336488250705509044715758679590695253714401065039908858877010614409668714420855838906199653097484334609218609955585094871589383546631986003622388279194317210135672905176390134844458273074281399300220949060922114004311324625541814017147668299361615407699753870770350289293673734262143637676512204274554039945210409218545979505497837852027678825927879183326396840709271775607397245119420805998852732204666113825570839363577286505415897999939678848867001067727329389295170371073272169040114686822321508057776262658962660013658337394343269943461472709721021781964834798025730625617323342743690060530147531813252088855157318906659643465890175516530696802945699017989190532412503289039069268573687577514764483374313438432280468951448228904024692518940913424591627464761878903085407506951605344920565515727125242774577628081199901166505977049539010926517646089709310940275847338531655151439815583815519647721676785817739887773459932488769485384262153086031084936796057299513971528749955128883130745671288780329813850976180225794871570833591606005505281590968524303544497887371709753733919085782159573179039544515654254486418597567127255412845254873917830057848699453528013142278229654475518858662048151177777421896186072958417108373017175795999839993380423129920579365425521880230994755941226090159329613607053928181906225219024821382699993740968025816097690582868282671910007652150158006899731151037028797455559793994826733524507045810503538880341441030990421817894272875330422424503975657922188427916277607570256152675386851273858164866953835060693907077111780700752728274233581047911182108123880980807908677825828278509195664084617717727146597005549998143827153234952359484886159950242892446090475486725512623536659509203209901523644059410712484247284414696037605401520602799961245795171576304063074999151958027064223231198005849230515144722618475848444220618098014066271727452389525909564702405713915740273801901081323907640690228397302344128097131036415939985220017815807795748383135899120420306516928071311884849911178135572313637635987293661933120622385202526781975374792684595735720687044395518144070981583625925405562720700410730892852884663119670652425012233174123049462360973831638434091125219496288450246146254083777945102182385643197632171018055884087593701332007024255532130734027917624888296898326142871372336135211919766710135623306289134122655999790177296423565691740539765756603854309438956382578418288824909191091830134974482222248132722044285572128636891064326933083367192758308501958478044964833531839224476421552525599193481820493904404384890774329039214751721426705044693030829159947388300894229428118165773516601729366980462093767799505401868119797694052961392895477486199840800838889519443387924667204375241011543978054498517458515915335245750733598707098731108444313168510245941661439869378773824421751856736613692560433315713404787714377057830663754806925245924111736177207356682074945763346691523357454517934918094462381749368577442295363244837893416494458580641071239950276112746070591743154987110103326430167958685732965332330063293349678245945759264775699316908286603581934843566033289430624062919238809715380983783211184585179757859020838563555960950804799779840728771265009743899719405278302494710380795331343538324593450292946148480876647452354465794562904162468139197669662197392580843277529961413732821662135180881883370455096275679117278201103688882686071436213982184977517118447293711643697808552929748160306296485075850889249923965310489145507549112035415084607297306894884446569619855744020729659773328475357396086481140816645768093149318821221728308347440403129519023148127973962239664586655594384021562071575328421663290245763072637451987797914823879845807041560300923036328095023383914398305613279413184671946746970431508348170979879303057286979272091294608264467414528893832508623294385487615045387737944447856099525336568246602203326059754897161269267986086146146362020154384358615549673007404804979869929533259473943053984792538630625321273807644029892663375963002516630042535666066996418034913709621318789557875265722625888106845599197297868936849824222672396774275009137219412545380983307220301620941678851874563423507719612288788745349643957005444607737100597400524635508892591612227464396049108178032849194852438054775976721194421295843413677214583081499328158818898894428758698549817080343473251862244857016247759894717531587992675823713032787617955193424605756565039512750480230262105914730099676816623200547704961230791910138148179608096017369212390422440679017737976788114788754927145580704560233200044200237054325799244427705717482414414774646462931352209944394114214902284453551874400173541093313229865237481778554096279046324003619007659986533285137410990375585343309799047989108141823918725405963814014065637860341047458074160832198312247457148794150850202306429894134470493804527780294593293940006772962819415602660105128335095097021700658848784166079352948992039268372841111626604484872023241662564485704572044255947864573343867995206075743740496342821664562608050250303880816988513743057701711597660346467399159732161284852443735989802023370597917795726790569915717755155329410231231770552080135871372374778465084747895106089105624204730805076160586817560719069957580996491476360492052086376430246926614219263756138239163546963802738743152134581905352462942183995951497076663157714205542924668099298510006618173956611497630624713218776230259119962543234936854770122162203201055986159406576533585528525277987017101975534032666267194678808149052943771024481621329330078710008339694659375848422412568219940476677933943796742821954390712584974525219366780788109906310402333401657380869612026760119009007204593093521839182438023110052508223691595146350802759543688229429456424943632017935861162194098909735586398839223357107436622204356990371042626503658550655931566000279480648734198279477590283917779865040196047898983024198841759027996101427809856503441044355430935406514880927479648766602090727735313664091825581514366862151318872581806531997744251760814008900094636501490294104116719645716948345865424913221461883198133098433847925340093223869027699687968075455703294206354297744782082112899337710959231428916969621437126437728850011975246851573608969198750786593709672018155684635264118311400376704581134584782030164333385843453801311706853020920901493410461463450760321067882752719073156567560195398337018815584208613067630182163414609513829007122745250704582928753878220426643670378890171840145369359571349625229003361191610803100577733120140652755066487313628060548230667775264561588234574769977279228716725389857655091381921011676802375969666652812036111712154886268080290913106983760255368478496025180947801749859764132731431876933305256953960437126487557200291869615198269202554782194706870121896990244991217164145296589104078996729281304271574129168359381275645678159941051164935742292729567623320796635675567701619376720541520246575335527759237321245888641922207674084783960219500745160495439016898279217092856335492665156063127897830281561601718772892495388057698213683981889722776993508520475796571227579047886626959254029174225211493979702329642284318280157529908244143382861742840327397672562489763675232041815052063738149280788485032723977087162841724569918886493946275930375738632225084101474565393821225109839343121549762117171039004211119539239903998975984788263587785210035535301537994570363122506769068739340934864457231352757428789529790766459664043188929231465979070291484316098534325320506499122661454951967070732040701243012966593119971876055796126194826550441402732716581815692123124014135321671932337671589957021807024566497020028531411307548829866541821004970196444614157030299734530144370125042053420601792320233812869373401872762691857573959532310342295102720908239121671595251697439090043490966787109267960743722593212453020827820810807266736277893262046145026578946543070877877563674557499528425565929028030069530652729088449971148471791602886405424551207501907745611277439916281186628725325814219467501263723709223099374817250849134069801179156771310493389243924569882491966526930146773382900037804183901148622725982150479472906573752841356151137609454798103435863805407718989993567223828324027668621891787220583100311849815020883470137357919533949590465053212504951649727287563450661424204758579476444832478136603292920081371266170363361929336838851793668996093939333512223959203266036757673412575959969885125009944797984294117588913287473359527731146543027914884520205417979201834285169495616728438291495343277448670869773940293807562134935512916616356355990353622232689755041613054870238617886071811659299529600449128909940912470104875336733526618489748334194753091893562857675862995019072941189990204229503485963816958511228142293091791556535641689328292028438911703415962637580771866669396953309394459227905083798277116852958662726083398658512179859239676811458100551581805358162677815473537952998413476133018337650094755830940350865286582247866704539807453220567763356808459780437092044150649006415508477834288255020450496172931209997910316418813150116992131443223158385233947959856131718657896023041476794528139262949936452699857293250678881638363676115222593366669325440935595720651700238413400472653746480388894352460240941403405655653640494972565795503885295333423155893261957461549742124497424461257322289611283389918104519470056141563917897473228674311191385165054102441103689614342743629439965528438147627528680143288868965741751205419500290642504400725275354517845508495001927260354669644391373857945187023046254680890088697198498647675909591980563782915638445838681868446803575112937747251178999516613810094068346374961732921089487716297377210103667941876244171501686045523380610057994192789492994198025241670221637319763051012952037319785342284132245482708277898109534028891304123485562760287464257563374021149871541757555353716761160783641203838894923350279539972012203615067153948922269321894329337995093350143994302979781669752474788573512836415452745687728854591771981995018608876430891563160840852149364956902423139971799160218377194877013421066733589734421468644872722132946591375356662237803230673629295717410239993045160977423927304341063036339438017566963718748286343315690168610132432953765519713886754358665127853095661749821840422451269070232445969706931703468532347343569354312567614324225643589569300524885655152567388169444678379907430658369848458426692682472467527160078616754775364378395627473546869833660143537076250739678574932132048109079763864736787593816823910689155644773725680858626525524816635379790498409078816180323278572069007025576749406931417375113402270005295659182315478578448940523596411087971048915142467626863303691709401363747129694805825464579898125214822709198831253931872347692725418202775179749382564619134777817760045151514578996701547839654536651783438584040831549324360551441848425449050283578057575560373412986507296296184800502818864726917200979512571077814364377712677801453700885423813373553004774436776194386541649005440420729908978305515257208555564860576080693990709981501380642182811665851800350512756215242823463109972361854847266233874009236021582882578596604029159674683018868908349469898342949629738182353319754039605366548306119743725832619627000399036974620971726000583663469972429734753706707247858789431563869117958211740381523322952339875092739706369166523313871807971277394066497327709554437781109495939177456681494676518897733167507991361017821293293921840828054965702418346886072247337033285291395163932471007238256644706503925947541606294925725432774428764868550074588863857130367186220894370282472997760694440119718426070063555624191275487265215590012677393164149942564538924485067703351455689730449844425368625086547724067511696909153098411168913548165553750092755783798097632429381759468766479692685723771037174514635293085509050769454241298443270073213413086868476238624779864653559981750561063058710909277629572774435697523727819716896119925702108476900602577230706465525120772304546130951932016413688781871022254703512044391122803224301821072461317036709754199197681166765792719540604532838849048099413745667224165134167314507639278346992508791559072579436420176290042415378818641276528135162842010276432505843239816225821279329210135554770358353946855057148149903445353709704786915068710399042475594057291566245555828663716518668267880243621987864580537580968547288993586463808785011701843277293288174092894041915460941812587657791022335382553930964503291393881730920247307750512472077017436896882011295041789458389231591036617272232923980762943617502878769408523356456361455301056616579497451041431977888791304185019242096653471750266252664400313179443393964245468137848150709226599316551912269266209730577796135271826904067403064436698235288039521692497113696964290481664268646102164495975892078580514801427159554836997489239513079543619245235018144992021779283012219148935009338144897336393864571325818472358344342167330777872429822986012859427967322896806598963192511951390995944687306356196507836848481383963269315636427949295105276341731934785826324994705482898758705862275408246874054242174249664518735925956656056975144157086879939850308654546056206581751605419762267509997165365261600864428914230408590237478797121379411914286633525236377348538385648372684018152997536555645614452009563348353737757403499591208984444447256561764455687469411790186897303165549790023431193180725029378313275204003664488579717521526018885722919893258407570156999476992628714861478437851469672478092786634116921487114940196355136203599140354695602803759623301841147119961039671257769512001615652638790778614060275557802745835808422183061471016356679906626621906014536786685322690096479827518790783005758679987913227615891264427134447703155181704864996355924055460402003158860339442521395555181199617058494716576566649727651858063300213475087611315762871576287724279070248452943599779115572303252878602876503492513557621017676285583866869972861691135437098419165119697959453019624368873252570019926018211294971403145146827195964926796806633526594134466514304265305503750176256997972754056694235465048639038074379439674071399348277369328277735328859150842547041866009876757424868900967975594940748306291709841923014659362569606663362847001121794256953700416166162366134263234792475805643771356212595150963909821108330044732880844020203971869308803197780808109600282220641057588492117760789954003255553733310680183548922770950442370787699708206904394010185170441068410671009426189623848119208007905667474184063105958549615563540344136288930208437166243745751411316638069565754378360301742422806823372470125148021337145575644479078901399307493585974431190526161088303722209992396292113442477732063776899139467588521371930937069449393933934031360874911308164357425611820691825382437193770195712303205111186752929381585480074390692864570946026298883949984045224284802497313692315865597768462478622941381574959670298160868941872128424315565208955403101906060741693742584493844102417601408388997024509288052786684709728832295709979954784011884581834459586185974057715558019666168203691295740079510446354628684947365059856836369951210319951591650893358270521881948117387697763505165146472732888949408877836384739160450117772511555988521321726055268385489649129704444758653626662768445811486803793954503013871192070196071231981921230708194533081054648234705288160202161295400958792047254415622565291888044360555037964815432999650724911249561291377162664436767185181970167051820704525512219551010736808370992767945621918886220812784944081299354770609214362849704376037704968800816100011002329391046139528015755175994463883518299693947245728215624625333318381525049813744264312844777190110635699454395190529580967537296487642849881163105262079830915102637216260519332067386849835878641123312205908194146111047020264968486873082159850626372208311930188983675263984280600429730325094887257777823803784835017094486240908879375140274697090276956977676206834343845751714254210696600274378653303341147554608415513738309750463843345970738407535738642424262583684106191626914992918392212804401613585469159799866840566665451644542204357360897193950732295754477899539088492585186079362977580081980438888365479634816678898919693652976340014492352960294579163151871157049897541701756506780084160966174863826733132739313347053200750517611311350904657107539145448927719743751070561617143617647889377035410241503061057471964923124608410873584168283898622957765604419778242834321000413433394193274763511377750837037962080130457343519522605226987838517194756158273265371472656292853032382283357776359110826378028188294631157339977595854554847553124378703219532666008748527574660782794754683706863807779086551640069827440363219882898347532400984837955404098601868974351633052556116729206839533512741720084726660305645082664964724540010612525373339298177391494575449953708762405081984758159728282223625726884435470603067243314932300635776113891928026100376550903425636085777084814028599912641423660306510707714432895571477490761739336467120546867733867587831776801724875988783190765844068342686872519985101302726642646214900203876779828231818652116547273042302438555750957924815935262607750745380376954611670224986332380704024084373756308242784177883132825327800400084710105974975501549554361176346546197527155324379746505915515068821930727926600206816937262129933951326267512758021034323291436590054250725176709327307897206353241381155582279215318422823545884255438822947499872509051292649003181326057665323348715830564458209735532552345970349072916547541028454996666722001628038954976113010107179102381511909936765677946872526369651609844771609885331541009824628853023232206093097077043669561273364017886506622528214110457831778514454746991441376929971091082883653851675069152488871262026379602367042672615176437014058447654758449695473555072826222694802056436949311404496748897516105546739823532440104570675112692450079862553431017848290187290970278802867388230855089705901143234416438899480060956827208734554530989736289867547528536358016297986785743760490475759550755499166922477947924297710095759005969208324657807976006446342616541031380234142789102837667410284562489364573410263439132823660791986122475907322429238865518389839659763999552584705908766435429448472102364450102911217159075004475242369868462763158768537970298049340795444906774762440841894962835192210702364786324705987748564527738388271585823681526050486383690249023979255085555061796756416236192221536820029672511546679644025782055982449235402817731385978211172986015800527923598793004726560608251137153953239858290563781682805264911246614626580372722402475146733020086484618499987636194167169002575368402571018305952505369788299703403121013210848222941459498054455222021918929618819192485443913022012653553680082063627235513665630674237677078559876351686470643230937243812175915428931482968476679726042288849912827958070380695714231555935120279162709688775343528614665945115488859153568099048043122283211865354102505667307332343203311320961945821943901061189026321483900699000413510703952838314058758360229962547220957398042534576185088920814747040668820890556895002857143679595388372608992644119021197797496038114176472459509717256550197390663429325041714862539313969937697382442965040675603752399692096101858744528983780507520547957130948854596047750905484667721920688382889266605201391440453188469038820723973116303607344838977284783568275939629904035796910760409377724917307618074024231463263433779203708672506828811726467549390944296768324462659034513868877660833344172885666073011403109620144662649531685281737380127882949780887483070671071386849406611690963765280517652925676207264911540821541073612573595068511129147917375851885186323267480984876615893200669513212824025253628475064237515911798536197392867095498166466465158449329190599978346106805300784255196684459714999977160045724446108012197678181989064892353385920932536368612651767098037834266838660058464974592430775902228828434251680754542203645035375373881940172982935262330056076408430453523584049287127884617213202836888458422907726040220448938972184289249454061560642596688578681510534080614060066694095380728192033752782757122658311335157734820134494243531201692370895722091133215720760584981677195634321569961282121558426716779253005127650982778840071047669344722283588776160544572632540914196632828230433961887044120920789529226092158835465473533904020549737401049762570030416834975578772170247621162778407373876664475961003222858730323193625974825664616414716598172530887158729295221080705457669813238350182472809119929847202500245926281881822269594299471741066930351394742141804851919444848735060411365144648937983321433342678762837457897247524855980906615076575390299688028768682157021698618951406276473034600024534251207976435938064173720400487343798509805130301299568384119528950182006359776593209994557132950233102021512937371549208241264990101983542298994195706721482017498432950658961598619721574551253911676897168186348223216005062017243598985616488676225837498168812860972099000522359191239287497015957865964149967049956197785573701767397154621488277882102944318446064027948386557097619649211670151160931419938873081220952336960460219912029610492245115180251520113036198812076519935092897244045431125031803436165313831998846670016489052373061660155743514071697738141381005017057526771776711899660380490267059093111764500921978733594078265248146014280926139460639369763068424920950201654085060055840215626440712206409051645730496620459522066161081745071645067169836849640951353223862092802922579935516804384604226563937959600234431570727511712670499482688191720824344055306865030305518002311181203255463791117746881722321473684673433658847901960421446474781794444234361199770788739932974100792763643244893846904877399777296762179944466678859140115875698339446002212323796112386573549428163806036024508170546267594547922142197221084072647663673160409029444261694825995763659433278502145693048287581246922668639419225507289401107251161336109870291014138452235939519581370480079345313551140024453334348996103043721939894157212030069949037507107157799703443103140237450855251585048179307737338556758867273693691162779974618028681127326026760153698872650906764536194302178220996962798938862094094915414897062454081043917722848422020160737106310646259709374174627866293725427098817974973067801653475600106629812123739354686552049584245081752907376345548666634434542243412144738235061446954313944360924445764662137487970069345638181425805959752529896992901971982634371704367636521069865235425384747766871535475094901994711394580100614335275617646206844980666636963886626976756155067571123717306315555158386045049916304208772472036623664337871682546647162875993195148216485364125832820592047009168773463969835479558188499147150764055710586392225076230184919359736202067556685299935877469975732741216341478639406850110628246518272191736922473424179320975740556903820641187114681466276699141504767219528575117072330710227416476193857122957452017852950298573878835070895813927555907089433768903082652672965104466632091962540787064815098441328908714405511886253404268086429061457909581402914726016685048869326117183085151868306542349489404530982945073739634116798617589832518335603327624799366946010750390768615046907468617942529091488831186124424658315463082860652443214292729949429720808270907293825394049892683967167714451023027190511002279035291072234674883929027602988492099118391055816970482625940629641889983604779531854707676973449975678911152936096053416891633487908714028206197416753400703806633874286169317302558408310701227926984535438887224451730860340623390562062576024629867226044119478173164628078587083188132815375137821003367387143796461751199857872443336372152063368686731509177303097810872546161309296965737600786505929773216091489765250849300098204386934791291850807426059170025893980036713456030235102089690678123852819294782056222904630663270264064019534145109631193673358631640454430948909731038249201475500804894732353220764368362304736056574910395029184628615638612725487505224240235329746002236000628138411907604681907220328199279835766881389830127320085768709321483817765409041709408311790191042541559399764657734058373514913605766312949653649594769995994846394136246143836437058570376092522280288479685259857387438728150734177775011407224511913852824406561844882406116079872046958981522824754385623993710865503484887355959396796750248236615975010620234237797110651176253467723680256983127254564072979641762020989653298869256568020299246714739001303194477298044142190299249263291315428336410048836091569306655104818433564027933834859757461624728421837770956602610924836200076559429231292379119463748651173775905511445129350374435451084734158492334188343274527336917626879350701458705823106910862519338595916385484054329811208031775349995835717132017548223050715380002223596698262147913740795705272231356316096066958576747318667972268646432725811955573074209844325108346055582667989368938932552045913456339612441411984759823590162605669640049216995926974591261673573016599805846145016502273718589444313874592632791258178341669610963747011692221541512051917871430827166130166843614490598328058827192540308482718082243593194592365800762546610641540351819947587300367083205611340670488018873469913805742460512081155004825443420392083313288041791589961838125399261088138926439597727963982525854137885583708483983140219456897608277680736131556234148177413993268199449626335316695722912856880216236873843193404867549700607126816365352282462540889008737012779786585181144252094677258005992594002864995560394109568252487400205214347915942562753569943408383892877039002376487406803520405068273359502947463114050614406969090651112484312714807687268726253962377321962253451985641466648859723328387037091994546308350825141562048113839342391893478749740140941611192964663412429882053659516794767994568666602219022950505863203443719605853752609851658859326876484701572843183297375375873439317568065300829261006482217290639487713892800179110284337821531122121369992020293081834975692232993209167698252988953089739675151767932910102969310542247491347142975561946696796297061129480353032796738453421719273520818123200822259752912888966875236109099783256573077290239435735638440294080760531504205429152637667326591320232903341688388340162000574409082734695370726319255345008435803003057240469620686058264931860893610132486689656177204193246782389698306602407651678385411279466095520683043775142351093547195876927866025883765206741819675939292229690609838755936863892118555047408706428774524199611514369088187926095065420246540455493188887394833630112523173085905881151941413094127403275297164119595368072929102671357279412275605979034731406406482496716348718440885143750152317307681130274992876886224562920190462571932232181351760201296932660184033143140135380403191449228757469455474225749885964900970382248221470875595357670172622756634672718069248501267317050307238159945268787933521252485498096305516150321938653567739488085261166831258886729824619886387320615582739351343638882449311331212775857508975145658027537750316024387962633455340553682228309104503790250700950777133966537664463055116307284621017653973301440039099906261559995533241910276304392014483528299971722620948585329395407553422394315457795783855052621575544699838547206414356044574921451414323558419939776593399801095651348556879504226351979093574931704698198498102168069791954897336810402532383380127838720675374039270712187419213909728856696753970658069942711139653622224736384023488006774681436032434047330348448769678742214105782269517987009270804203792536842620337617903254573058590116238184674433140372076888883359089092677402436294564902736146568195744032585701574469964889685882631421447070904030087360200967540371687135317822341693891995725820426712074150006180407812844312572449009691581055220335111220791254792270240576274777135620006187340902626580997982761224499961163177238091614651730861146876792687581392900788045504245138713606986186812011535213174732672247292032081476765132743886543373837056341968463411954171470490283112034560576546728609833830259667632744128106709981541532036383670841158530559479052468430181381398231068125669033750154388463883246070941123915936364490143005166389776456695028519791501998076203883933941225992813607581945437640877598626918184684159653273552968337334413609387536694536584269355404949264381292520577232910488939904263183655541449462178314213803982274797035475164626670839888479193059090052520824758327093498748202138621364648688774999861832071570247443573024441597469443916986827413879450995206185001278817556958230799741033902495142749650430873783219816726356567455653400005037473687937145919948376269378019048254633168607615517999317661298660527217547316138626529136944227763245158146218562046034534903372500593547444330230717529557718115095710714520697201665610753158976005908292547487892961539621574176051850676861520870851859834586959264116810141339907113952045853050038782725957583033920851499812455827141891774169233461799332978049478869858400993982250188347185291621053903632254387919166661894001830675519497023236815912049557975612130868970244876919774372420891447214529629480597570708294011326148174093117066514601183506595843744121157691043339199991500394756245428422350506842581580797576683229996813303711135276266240850991395958808276475955560164583687837053115471022881825084602611221740540695843954343540551760528036807826246345419519938561778529070471738969641384858912658364796270856763402551261255262088514492215437149454268798556752661105733792219187790332487313940581426260544328662415486412476516424597433367829121093896942848236704096864912953578266683182618372646363799146131963721052954074590795098193792725717541464079854090426797799509528459582536132925495996298155617682634331911707436859868375808280554730814165198046510027348534689579431094402743004550306778242003391088584520382948797266807584757196850763642816552034503083770660440716418920120436751631994634719330378028828996813112990201289785685161718305585824483354482934694634920253105225650856091299831672974908624842084823347365894415667332214416571767936835359849607626145192503559931235453461655988408441124191889354941083542113937492731524516474009574921442890187319697773848446372540603056995959252307955250349733502337295628643942207742500876064034623917457472596852158184321103538507494766983749466944742354690186882778696781525970443802579892918841326748710310914761948653754289220836442272797849028514910634074513155390763378143215652535858014432867265683671824559848209048141307390217463483292959426317664731498808842244097929117702415602670645421359007811212681656657795515517385285345018590462357036512295592784879219186843444221224953594911239773782757930049196966239797553712668110732138037304459623252962323441372546900324146555629808867055927055309237655167651468479925569514383927570106359369805044363899681279658652126716514608106039122442419422348904939012701869018964725500192340166836336149579456717362555706167796880908667504829687466354307687564424248342695718911504253706041052106333265581322813797330047163161470488382163489564574677876325706286020509206856456893164416967289774311059096231521914347859581291880949311507438986354392009565523659185817536787972341717540572696173054193129147994535257956955140387118907453384713266877926652861052090589888787651524057735080260892749208365702116436642958706436761143154419199035884867990723402425575790747774833105191301305901826714755381829010880769679718818235356068244173293964612053865769435173119700058959045641124057305889358040251155485592952946074146733675466054409010355095113633224690043906128786705753943466440274550668223678350860316602577378121505992785631160855525778235381429838788355374148945518324240839469385936721211891136502499312211886178525150216072878051352803423892773133173497818497244048154921597374345066538971624313350522081268015540690998917481755537348284114597431521450990097212464069783230185194388149053583993124697405947467908022317561124386074898535914541455595302811447334303736295529556088761713875073127845707541066900748164618125751986989484930830614292713631119692202664912716406996876174123707931294465424370448360204535334424099717540072197224301131119915068653428338802601906924518564537056772276015063456036840768288926795831614244271774430182232892439214189171815442641374994178501692037313426040210066814409653868240158742400033297262450387098025708491279733295607516709432643538664789660953025500513198316488130621993574670208071756720121189677950263120360678735821811855145475614336632438318489934468749035928138440099063003437806410405699766943065116060114575222758797554143618176345564025853585672643086957246227277791241215995481257582561025994927620561440180234812663777059293820882125597985361156121344647187979730005622873228956734154678815352489972983040128952530525931561987530657954051239868045875353101151138835082603117837844970375016102784035661775943896562625396822633149456644898497446639581669036528221131243736134435114200375533639595949816038000288347224179309770625664308875037390702484063437161876675727863923410824427154002397817520761404153738367471352157254900937783611699790000156224749549745884519431680962171179069839349828919452299813968952378582918474728064990596188217706544451675899400557040511040724994168712584628885817841156671953348903972745879564598943828763533347700433147655100428768143184796212755649449641415552429655751660524457087618226049087457419280857123622225846692471178939065202280648288160627746546445439658034870925124543546713930836863717582650630474902493093034558385240376725766522440358671501172795248912235220669842312289184467404503961232506191114694911222789151612091618746772967952987731633310398851141195737726579358406081514019655638370384937328451356122097113049514029716155838166847178881495152541867817884394640081982086800201957329827022308819515785547482210777327502838512877166605646428948656144432937914757617462995119609575128047911445134202819312946909757295985332071916380782292063012761765025440804937947304031167058265812507854623207564779648320445191607855157298854757071427483487866912312113829261427527042155632633878683784338655715728886024778488661193139936470755422260858339467413326500717177584385054268046993398820632574853376313705915271814587306558249488487827413242138572828052031178136910327960985126595445851258051928210299586404759509810289779883104152301071996960788039919325921555309214712590761298017517709417531527802371215931100038271781943476652649086523566233382542143197393695497162135994885585329618374258782258198336053363613260976900676306175427171350652091701979063339127304855424599921933124989743753200660093993286856282932991111985099489827294449733128136745379044646909105450848136287925098222870648533147170861699291105260506964764679507268699068542412582388981004367374739538093411194817442973032297908660218033146331320792797536062402771324144536930022374922956698384101500910893954810102193196951456147801461126452861475918589380548853415319772769498718370722958768715391579536130381853462164915784820037210968284310717676350580384725821790080506480806572601760213459766940386118985069710211218229466452834741564821828814681632264656239368129377196494245816340811624875236887100129629608514125264531612955866861509574244245938291837820476947646629077582110613351025390926134459840164177952535383591773641684319725332593696508125496804726902046953451809839471089501857369643149374163270555615443387567150733675220197096610613163214063731353158954251161720988426079565248701314266033434244682103519987219438015707841692893993862323506623219343500608634993705786086333562929082906660121185310971256352616585092369136231407927487501494514539098304325612306144825994145341703371878143898849804267600683207957455831985713330244011283658121657683663387224039476556277979989276723407735800109793967609134687484489921747849395524800078710794661441667329589472327389214188574289905079954629056888165271455902948060997190421437188940770341955147851737258007304445637849359851044887595074832480886113158314067669469558895380560093699548261202803072812349638097804105958609015226546757132428308239997127635534676156983209628914951527712221141814213229288619621839647949153764412065591607854336445441814815463973829708637446082855060162125639872929422420409379552592460410724279045088151303745824745055485153904930987800237501162029665880585976077993060971953845685738725912376716537002047966843005077575491524065834003370085745884666881289158791333920674879285936422982257126821284536225460972812228964109845683718491705316027482220229229787631435509250748197707729681458023425540656732223267185109060930736394104455146256801386274707411991676654986856601365592811753238157400517304522109112751709277140257428126023606335195955268286391080616542298083254018879640218117018698572183390332022626215688487979734097660870811643311509635010977833629203397120862517785133200882108391084016094590265882587239173045409316416085840457719993681426252544355428141845541877233547202697239850443483345683202634832827093532602939413917582243094818002718521776820041462832668337012465557349413477322990773499655741934391596306043287295519241051276625688374391677742945208128421346193334982072843414360651616328660616917020724828065284581263728370933522431551976299009416077197704078875122587855360642181207876025253687763508566796618674006420498769755006016875679910937881470243348541392793154205368503871730230291596737698790100350380068277841090888289101969562275525293377803202550831685024284008579239503044686116441452197101903832368111659089387249910430295547304049676870232306853221457255135837471462792391628244014321902232216564547474716146408592473337480655621132447284746884023529873547627049310457326069831178972527347175805160935077765714831780400202084173618877077192285256224804038031036247679217693281513338830539541191766864553936947641656649154239204827191714183111365133525458783795603127745120643247635511113779169310439237962056640385096905300754059179586269217007706906081248752767865608805775846126014134569475320937306470209395036373576561132328948014942043674197759925725878059695059572538649609166250049593040435384829330519945517957933624796380914947073033242504291481844115904056166642974539631047842316436175993695592886623581740260268279083141430151650964762180614539590772472038164905534698921265619954647168656972247322893672162769992067404123687857298930373125324734984692174205131450655456459800056404192127021662027765303175578908364652496230142706532560532733953491263905909207882589658331312755302733608871625990490844316184109550700022775021619706875046036862572319723616921265734478761239448507713865336824015913594717419641590289100151067000755893059766098394122687180048486092992522748243849180986321030217635101621703896353591506418611339781353118143852281220637932642540734401648656469938649474945268689856664302381023864925415745302439798198387013035655121098983657300256728259027425663643695438283834846978843067655108412119473319918709408503104576258157693159110693277485008420668861990093341366361551037585935811362358865938762112652414742914246732678220572974093052916956004172519754982675063415622259615223894208183496688682582006981139697023055154183915856977487605708655824814751007403213663516638032690504717019160261418973983516178231452074007316786659321749510280482031839244932206696906284859827284802902620721845551678609881400337791346719144004405015200737234551248007325585417295594718312918584123435316853291742760633820297079308717857874046657176986128214205983405390328701246999201527805514104664737883356408167248823682808614600783621492514914120547719968560730339495547851665274455541280695347949014179023650896847562174064185189606792826058792647236129665699205994305053926808975125893699106912914203505476456818459527472604104601799680425723855722430699117659118307166669907832213095682876107320396476866106483863281602511684985013748607757928883107634752280354558731594230998510253190530628082779336943254170274918169027519337950047320869007907356368705915490771985507232126633062150955419248018840909891134293812349503047327605625074570442067172234851910142107309813763852296281831925597576480821055193294802891990101623376687678010001744160937320673931257412644994067010559875418844040900031886628028069608794003355857169921837380673268827028077741198070486383840689632569000122927926091911784806492627777985769838818503836385164645531639569759759000381005805346362554562520771352938406709265459159310679300156292565195822234668326736145680430730934652988207784644873480986986919040563504701895322229727921591788889731021517573826967251494325979947972977387133750384244437969856616130607607054863775289567077756652639059941886307763390128781496499266942436823431143115327770055628881819032458228383833972494350938900841265594193911938770119294052849402450518266715475876337675617823142298152519185323474237832539262905187322016196386570768000826618437726453882500341694905008887357015518339780395449792604635132003820630428305503112423458826860180013038750820016471599538943211510393502205324553436437925531464125061957360691726018525294972390901417103281541838094325948603981043443450133867218631312325866816143806428916371715527473735841406914196906298740397816948226696741932752642441130524002603683549254582239385441877923567891954820834887783864296569056624989704238000327726691804885240981110904302524305906479283249485893254461154799504023362902324571453250296596045385394102239111413747080797012289412340347229209112699849405568896174685858535005451365853815379099965579186384405517935056547717776409520944693287476284088201530896837736464588480389153187321770300163622292118786035959370000183023179580984072251509428203710586853675857091090676761525556844517425201458998520010892755797851884521628433566497535467279069352228232842610745701749544080621274268266007323800383103852799487516228210702453815428594102002396401391844785013851257252372298453150379638947759956043573573163785604762508248041980462698063012399879085482877967789847980985333352214519815284027671746966821393086446713105777441123149408381163565731589455443707419310048700054327014665094475194629405284574320821216550729425904442706529431028809576723401799501329358949715457381019015556168803411273141180536758381026313167935167589387607960021580622883602621017251950055940290911629248654632435563514847681467547033107651182593627113142768098497322783506729246996503406583056801492374552284429527930581096364032113565629736819350791227032761209166330313241785092731062801471422998059661573417101336045066976998868578536922282992226737412960734780920126066938168417174968108926086078122311041513450949452512702836648246949914785218710060402478631047499840695676791297716345401440739270447231600408629403028714079471716349393180980674559992593212866527341676413029162646484842940158649201708966258074312858849231618582213415213285047851620706595215521126801750710540529677834944425354052368863065110707837067684475667531008393614831415463165562320989707978230277276019435131091360360236728313956268044782077528892017310451426779773185977818805975719253559550960865199126699898063125718738313956233045917134532683904740227990711239169888974612722779391723144476431380690265098189293641749014490259406013758479515967550129986143885544010137413665747623001177805767008704583872541364930443252020172987301957842132183377603858184169002899618521761937498058418304941177615927444547797795475256157099635053651114663560981818769253780702156497985906845364149136428700507230693031724637236007967602954413101954790242854197180858992298732955438693331448459881985016713112470713662047182963369828926046241816818127527128651466731683823934996539856983742072254079784911490337815406494331264094475080910394275778858501086161645928136747108663365987793055271560928945938565955299426519100626907012203713613852798890007661306128012132080732732533800484259312150414499245139972660604373462646158707015641064611612881499492026209016779828918527647099237105373711968576952237744458721441490562076477970695555961391744745052181104592726103161235449842910418611755275994821906832812159241027388551002312606041271306938885135986732672711678603557856592953614204912386302979090722228210298081086609061822532888649901721623340941963325597225326469733765222174311318714675029774250796134653203873847835185811399846515090008274071191126064042723441689656390455731084707930397319285068908739461230926560702072899776784006107415419666900668082503552906728618567955380623060363321469214099388095340334601635157317020190765535624835027214119692407415182464301295735119100750007519322502052048984117761106657809415559974232436029173661740307740142999364645834463013159235728405120471129562927085634937402895436780765955390422326974964063681545728892239549913466810773077652762302800167396482602574832050352421831594475965576047592716119625580648782552004012378783081438912598837672707315860059336326950444883689603932976486259358610908359053122542114940147848674257879263777762895137767742914499681052431439947772159861929625124812777116972125333932438348510334220306976280151238701377249336846195522093827548756990961061452606896399482413797144163356854662050844408287695130206198425532066920562610607153130638286582177195725838124984196481503327070698549317602684701964496383482848506558576465218676085962902729397220769905265775105967873519882638565182644119271734949598159862356350454563467330333345544857932485914649051569033485102181233414162524698072153374820706224987903079271860103785697350797970214569541799538311127088030195384125290970441947082443078802376620515274623984289320271872264927090118407687234195192059099179157879964797351408476317836258377335333942634952337814046254574426526284093020664354965473968521257951934974282424617286514763251419229885172532669685004459483798949512540353268762670025334463223817280385799563517988097152495114741281693937623250880773143516928415721539994422367009009922231099768740020489445710657190619487022793560773715495682309301921422639511746342328372185855866913179275561526681103966113767842390555575098412520164723974040359187188994672327271989362346235653835856120592975642433785882200253321163910651566354554673473410503061493252350960553696040694053055076466032571978286134007701776661300981528579264357628438027333429023457959072404788733523897324251784816933390307398118462825388946615694690247347467689368155620156745101294763555979806577915582072288259870781439933231586740931357205262791882334739844769869630114612858037568248192541427265764950828443789409436112719894050312023400999677581932966001389384994034382659808775736579425073946284287270290474612286999574979110435785785252192206670995505095446536101690367058073747454274067353593079318107059788459303477072842861710038624894321366961254324044050116158062104976212209207318315984679872935612274180973960731298265767600142279618608597858089895926375969529455425809646985569075477684480743910171875755825219552758059315321999441268944565609599859619580407505635097465015023445972729305009208233877183875733237918308020727573459309219752898317922834897576714931734401543111939742467132100529455303687598774272959338481371313788711395620350760100750439184304126637047496787392978361390572625057916927541491261728329346319798915159043277947169199141642231629612398252418005836666020727425525998249168033382668632913973751669205112265274043730667214488141423411862384757873496403005171010966610512911037011770153671779033864117343180061196700028988149199904141130782219578057393232148455422286498032233913255858713563925393835485243767916907487137503193924928636918049897457125944955413796716848118654954116231974451176134739675349549449086264392479255066660025109257017266120381872644436859954584632096015581551454184904258329756369246209958164363391675152667996063123353162799719558476632848584860094221614401899168436474525743253889060605232207871710497570664726169937443311645783739422915751874864071093156288364917271410820110093550319710461494366899409377684755255967800436091753105018904173707945214419644509342754401571810641777683927210028782233659158181691625143503031165095909204290113371234965384266323546537987570745482453749180383352819162683167604911542528255994478576813194216550511937486620895511687289561949538390998712423400998687333194239291420904334558858268367722687842460894233415993998258009753206535641681703759227730190630398771503386205259624444478886392577251158489454941015153901918516047921866110545659116003242973213818045145893658742526230016972118868790910432757892955841031388275348884755494616326709745923452246818584451606351460243823898123405331839220244330725631965526823982138696561632162850498981148222146979406283049527990181135072863331507519079368655492396568244008117440573316258660751198865859880656125873942509820739418570189296566169529994677130087996272477798101985656326612691337693651241692628554775632153160153475423536600589687172626885149523751489702461965796656476655605935154160634343878312596016996665679951588023228200203246341883497867573870198259010974451784601213761154082961711669468328811357489627062109011187011235834617603121476607423335922711894320884808605725785826651569119719053888066536148030846166139133614512850477077882230141030843565372928715914801614056253068430613983260846019014710795724589638195490118079530874883649071683169717644501492788917084005733062553228010776690925011288475781496379435212670515716471805124925447075924913547299839558020212488160123260706525537142312024067393541217806207900851145026882668529315781825494048223421085623867823614089171284362529651181383933694507603469738208391240728226532729991023911818581875733621419848324395070201793588433956415170115621122262731041079893609454895909027875480623046760761516138720304476933299192524566082093928682825587204853777955019185238347324673926071365799123308089451793509739048291670912509063035296952462381630713100128367115749594275039075251152329397292890580072691142339710683693335334103207731093742058484646854971159421832980537141354675124382889517333188922390087621983645019487314912657151496208587666531190402505401896805138233876940373184585951821377168375950304097679718544857585865033624908134607817267430544172857345332695474727746369706576735083048968233309442594809094863621765547554571631549000186703101384027423991137764740546025098570951999071666136052783980365750241940534593026974971430309957976160823523282149834073512781290000141884930590367050926858007864113032857311574057494511100533931441673835864156533174693973387715529505622492492852733323934115745365921027268586857897084465188315524067793442232768079246157831094994778582388786603192145374187619132274027036002433745625668591249948273232803570572560921177640782407295943380954525957952953796304958960899595957424593641296980017579531863237488751444016720552496038291775025177514103748213631335625236590472605278391271183243630660981399390684909568110701730043695383042845211775900282320675903997133580273502489184953904407707538804580880245516488217720865398360875997294947871680276303745144563725199567687526016527594442216459320630252521403015977160729663553898910633041750746628243718978439185030391543019702694881353670849117245676281576563116713176669993523346445946927356981120043747852808607523456566059147512725672393818234362875977558961492628659081020089475487328538405508035363051053703140444087210061561934424771842242882313913737433823912510747969210500080608909389546273476139125928468448815943630205610958487712726394575709617868469780250991980340288384896020871057206890681953001743539331865408501558685842002970128655898457305260902316759396650822675948143709323886102676461443627617395612398204861516086619569182472319107348904204416123401326613796884440951225584889797395137994215319373515668554976902559448719851635548114168971799133661669489888945186380212505630330045042720928511029873238055053499700094931339919773410655948390396981862682332458927769900841518914902341648413413571336613317571623091092069787505353212496228008764543219551163951590993053297499289411183163770683353302245553159902646625114231363645672867389212901896251865755365813962063480048135833445299240921362430589233967204956708758610426615201534613557457138729257473579029489811430661435214282328625987735705159389951516695680529463679242656119812312533130000046130704203511199997545691150489844436728784809319806099839851901061576523807196664296934998653174736722178251431072188536077947292516951391703021121006492847105994780285737276662690260726995149454081469759842509990619054429729487316606334364869409999464688405254255681993431401379018340503677008846606966426225651449878324479783786516807274444436845503764003933078857897899006076022801378210597806190008503827818793791700602738535204781819546921335787444857443294677989398431148688808848043190321678663549642974471483024796944369438529409687537507330663551783809216136874355217712074349275388038118267076660151280665185270767750256760691624378532417797256370321285951251467203889213215869223503700757124306214913512626643951950008125243965431264317967451348081521960022835337597547201194654130282740511663174316660931300432953291123757215749954853066580913298189042288886132434988568693887881802527689667169452824330218754056450384496277595402612330387340641648118751239159631735970142906158509782517567103272514209447725050033351346856141170095714802109029876911889527492655007054983655497082735279772318499425977060672479479632426443881023595652810336879967763321318428151453201930503544198095968881894932026783996641796595431699989213300371551703283218520933198285336118381061619490009063153131162387773312841528797288807099866169884463063101683181534486465883951344760739482937487304576622052234128676371029594934278664225345400977103424115351864999196669658263789900186667787259226517721193977567958224354726611619756687643676549999524973176600914616769017203246503661859890025971830530747296123310370379958485459304311532191768929258190133431120748080681971388290904044228023094622724476572058067223805329256539262539165717455863058577482212118766526327811590826212424370913842889226508531646623021392689119962046906217364016194670286736231085591949309325397722401242299583005431139063550622826809419542741899334279396564159893728162686871498317908642138917441964542064965125255981848720203855370521769744457648456105610363058339926408898644031971231566880612512567695411107496335087525282549751111488111510027850712251778831668763967225753488074670888073536221118343081452951363864430730087914677346082201337567388445385997245967388217239269185236903234953122553964290227323070461831895891927695418102637612193657711170945202404890918161518370717391938708310473020119845646940400499895891998272413079041779481473271239251580788753773803874283383593443117872621450912087762993642752363541949104179812992905350890131085569000999914855853008485918505130683830259852128899549111516273479396154320285690951504414833564748341243956574512091813221784522193049341929431781083361655049233868970525129897231301770851002089249751459163711139932327804309902348221925583341441955284332184279188953333079654170112910077705563721607753634400596342638879453160393344920227041352758077465531865181049782426149100012768859923762098078532575278049017235695402939852092963066740097554364273820830500881924528463978869136919633360530285884299135973326632195337406227795826976529230308850292339457811192848115105918076641779800898582306335095340672927872814714878003349004959331865453251194771340223233871190690374998302789821838751196476974510546732488517450143554019008221830999698063898629180066512556192888031495252686108803024273432783772091058876416886027383245599847791478172440051011709670964959898259780200070665144261001336888497857990183563196631317891702370054398535455156782565197002243744849585479480565158581430309646899132985211933032050377325630161583271522287395692909078841281038584672306923819447509281935046763749847365533803843696454426087618897637188441694048494180326532750067960452683345522803105114076444648482974387655103530508534546898585949242588707627674591458371676475037520265900843254736926748687382565281401995086102523884612051610830840054219315141857482574722909459642166162601839220696696593415401388021824841987955769500558698753279916265441180466833303402189575340086606160995970589870638046278331314850577423542809127595186229290415275726834218198551602477406715835697867162599896332201641214808712819818325468751569518902560212730534332660434865413343120459831718715660142404752471153310362909271180559236816934433907955683799040416882607540124271735047034155628901443120871508703716843118048671167313852282905035167847790110332041561030283645710787703521159507022066669516237715101610102659149388992433998957439310336505668662032774364213969584243775128236270578456913203789401925633917841250529261840207176435415043038712891084667788916238108565752238499193448512817387388932320483475483109021593697453232654045281088867356232122272984625405344342953792728957708074366284932125362265371567712949968388445114142992734736135837568204051416642172907291290785939794986761996705186075744888588688851544117860941946625258329567428423929795729286284553629577050334323155853138754762570137647468722457840008149105342043144587567543487819964280359607592043213233289992039238747235785179802443998997737960680820898311426030289752004648938423028104626046972724975107190631702414761243773216904545297078001373038479379479389399016900993879592325311185380613527326873297655311136845530825850229311357840492799841781695839970943454048130753401146595472488806419021336556105824428583799708330199300735061530172871422135420928417951988992057958579706295106248276905510265408948858081493929147556299593741085542092590921667605451853269279430521666535803999375356215606333052474635233772312144621687527762217618846820943065185102170375513250939069974035688547638425862423602070368466956099291832494230271158572470732328523949232429180278841233485455171144284047379045513661388630398946920426979889295327276265065718971343305020092909896742128123337776324992701126393186539954706681463670551734600450724342401947346693834546139694308731110127875511299167176024285625475562062225372524903945743953048164514229309195067719361234557772202765153085445243420778562583047150483719877117780158214514458546273447551594957603283471527402661751668542629448037551689852100902166069323855358281141185763150710590691405167137480296085338333519891498770615336391527734315306765606776383909528567004566331667729451963319993308137697246884227560515286510941859288480329200926267225663720040805735199496865323455765373483459700498344168729776775267062750289216351481730113762195543619448678583801722472956442931944522455689928495498542623927641289460188335220974565742289189481415394686356190629281164949243550438247586803101353986455110719943831946213104787385268931893408881232378880972824742488927258213082582324675870464799073346893025005210963370274606161916011314590576324223492642136132738672043627133447441153056427297895471581149893433603769997647857263606342837282137908335186611456190624782440606233747165538770174281783688622045338617746962785438280593112834920425807641864929687817101602723545367033007126853319960414005226602083317601601300226238916189219501235598715278919129852056857626583791855825410477892914936955969455208124283865827287979655354204911966277118635376261897320731669531977483756834511830587425191645523168190306358086819026376903500599152305026212850124230678546669585621787436356458706704244081860864491127192970202826581406041159735270724055869265537630028715149827221310375573034511616052270256354255718858298799072569327027445869983954528556354331215696057700972131932257082636462221227246143112677810494769641089204184009293738285464025477734444422011822771820382484061186779206925468146472511039300869344034627902756236210950430633772563198680219776865434871978025003442639089115601085218046947601912388932040342073532062397381881020056681200632658521720935330847494515858592764518368699220513944773156914578728961670154860897880042629344533060340462701704366959956113573533561920138707605363892524288438883332294987607759867397870800963388504627498312365880621132468194693829815564295411496707637739600200433368442659915347148353359363597605886221965011116671424103311791452554075161416402800159437663412659267218660746301234823963503913111200621467135353898955238016246496337553551345282922248092148139209900249292164079667091836214021415877533949499275535331505873359958314273484867059456478214088768304865188252090905358999810719535015645780966093073206332939980980475954544849261587949029075080011675133511481146181646984687559513003465224527739587031829325713638672543885049628955149346965255491355381408546159535390098551405862804810712027946819836145360447694368192117659790388230685302757721619288242755914850899711947403910144452697240346100879638714537790616816711183035273228436193965590477627909717118168977327634544997667570948119401158339847054177920480416750582883053347337077740950564040828991990713714824986058426409326663931107317301574404409414599554657631825083019702978852613916188481587272026940559315242227091044416763180740535274230126099542202771418442865352945988696773036113543007894800548659444497700334404142330563054479326606990122600198120963885439829682366951199139620753470407358002437629172860188792350501711366507736713526654781012169944686079323962091391201135266992984200793507517249721199526920826335529812372878021707224386909609409766530048957607448569220404924846354654305223977627598492879211402692542502044775318233341589592487902417496929857809066153961501817199800790354937411910113382636881810851570671922014219636905355156305704639995752057497844878125796100285422453278843464318744133015793041757112429043693072047494578903953053559010435897941776183937330991205169734802895287093195542468956588070756664445466597974922713326135245974879963057094117778362444040014356663877749354362907633062749646828432382176669280983647848118570050819792315498828456208342366100793343094418585078852450043605566141595941288365215880737604671185515231564045835602742468724526660396646159316572348887781284667200654320889784468920317490149581933878283249512983034076345540977161977023558273890702641402710000441239159066134267074844825523519515100414719499386565381445673023586953380906735488821578831821955622912537996721892650626407213092394635028343756443442131514367617667600781799738339634667959090484108277812782915307270662188209716583585042867954524683797334839890897981410309974138636582358740415708390809848494781215240305106345821158361357407699072655587605826192913538457644523557019814852104480916553324344150359614594959316029808621601775065098963455987317768704847054998865258756741763675690183525312700198400508204847502407262399141423003464334391486508545218292939314650623862207126546210840386474839073890909086655504620132865698313591872680381376923530482337462607151612315338992750602106543565865482382275761121403856671025333599717556708320918942858349325264769323482266775783371049670194614537930063490233609310918245892163869893531854598013950405778138250137178605209821733317852680010910065657680476363581972950441495746528773799062442992883844463826123203485944711876648786561767461055418108016237166744805332224816466918830625840059425208380924235034532410531102308355509510645750787584045692685414367388027316468049968398655443259368110443164988453572340312512413604392643278530656851227397663576804183619200883022447953417225134205570451343996214163501845498199823263090700607397969765524794250634439516929218036975059528662589856195983913848840664263385955319351727402789654751091801194300330643259343200669204550063304526372642564962455225520844732172739323664995080902468872165488805292859106795538503736436988706140744100867600747787615051974531173302742345279174568610549360288612651212530037304217746336810758041571408671839772108461455636729549090906524776697690072619540800826544193606763280142279009705799351637324884138949536657976921865633836031548460939763546897042332566919797019875298014821003118099716377785090040683985011718718065408118324390123414700562679817950660836420573177077368239068981746558037296962643625559608348086882143846118098864025119559302881934796290903722100148068173100917909760569099214927469191190462542933744343604287583275012185800744092222706471563689966649647775451293845986946183337306782237165779970877222140311745362160974593095578299904206042175186166406577920517673109761748978310247312002850701688677952512113595623442015854241137285006798194900424259572003781377030203394398500279581167245619972504163046335566126391198573294865862973757452730398871102552786393192781007350264541556275311106932462548973418725521044472891138581590187209784747421453044564732821456515234007472750205080292854755670243975253015131598992364548370224350787102476565598931079029266146731534524064019524769391159470523262104225324534224976598292700296549096216408787482624343253386954739683519302874159397319702243988035876229075556417323496036222648818485538586276713441054506717542030606769129872348861553070797619177816320814082675947429038587220564248652078575773068175683321687239812062220327267888578678830981367446418161401576565341401862444512475821308705760433474204710674359319053624581693486959433100972179286247759487613498776717793807455582134246137689214096923222652601124046669635396403170898309511254196073723473947837960761121282822795381075844786707074804934752214780399374320446291772633068299471025519660957480039896076794673835500625751302168959427962709643994470438809082614177188321053396554007741458346925180485914325105850876416910440586134366073601056355139775368107034178562402457578024485280001300539095096383765293008469749083068287231431965114474638253820753615084625694061079784997809394325046336739366103030295120324540751736491865630331526952979509573703487366770538598005348069495192084919429751158002316635300872475244184596926798087020745673497582159781603186707864074485800704663665009651480650956030781934319025235854303566053397854583926378991250603937734892746266595259176101653504485367033342913237640714733287957395128984463182225245071690234680694345324835380398694416576916158462786626036732368728394733846135527003988931155870243138187854184015293051890226561493954634209397548501922637712301074670375340453973915853834428182577530703596573695209617924043669125587453673664185539784698380829752780361574000814484393204042605201723781429028293850752955633785345934347054560822467407100682432238266043444090614038397536718164475849351236301428816414785482761362079133112453385456617847342331214174747209125274408477248663942889174667071096624225297274421550051083887558424334095679301305260231974821836952481132041035184797377942510042905806001595249300246960884843999089619887424165578635040419745529271674333386736721195652961751337974477911891942459434251919956352475376674877725602494857225046719799712471974673922476689864544148283447763138871660166248564417474689499574240599518809865526525187856134983759648949107366524620096818663485131365355916873959913942590107031199216319110409649767142737760148389733833721523289215851471519565828433199047275501259474122449572703472624897472627121423640713196659478597810875828445456705116530294084396763509858570703891914421036174246851878416408848871609194458523052296931399948000188975485133857499304812040477794219247684351072301566960758036085312505566870253371777682988891524114173126745899125037396707408969274996688324990472043375609744191923191065463991609641147995724369363685023580686774249502880655874736508363528269284598056218841557840363042537666144309625787227301192497464846294157235659963470950002194750160756593249704599750245159761126267495834429985763324957916134982287453566712829540514077705664204109173948954589139569973137286652795575525294733792878125863158216398290342084690198075119251495903234085826108921654084677682306910530977974603727136497561225836893124592345032891649389527819373254975564747383130516088979632257301070795810694900932619475330504994452726830402057415093636394650247070338902746086919393708225679960473037216455791337712075613094218177672029876130488562668065223788930883562936036603480862320051286849895484643157496243791504364953903066663149331221011735786601057282929376000899652669465272532582662966659279125517616197478003204739748892995251620308242304407644235094030278341923248634805450989404554192265091137859000933203809049931886137067457058858534208237937835410819210955955043250025123210682042105469786273878752746157894256992659337745928422855126738946278295824973379701380832553290751632830870912121991960792886924206387737039534191044945814181505460534542568158126576986763507630309196940201255518401287158728984921219633603644133983266189947624863777097112394075995417680626770447857454222346501987070049521709043603508500391486655929206855912330637248280703669789467690641349245599154084336917773621525367261409726423304069090896192238713368423078655166992600209286240342271165665274105836345774416112037078227306625510530730331721370053444889019558299916601605842592751407741913667092787580208983602021687589355231375651245311866955942261075401723101807647949591364187645863518810352738897470352226390564481999974213049808332119754977232015291676480094802655821710412361393327472592111331570327838846031771539165172361573161025300520682414314898552010527666062788822099106087216800862193396375426431455503052483151785742697741874214294802177976378128668799523801884402642519525930907919922398486140874442915272521224265603718144995538480208313477926429156187157296560123718586092942546567013904457580129143109152880217828081411353527096793557565968434457649322721001867993186589771022975024061972084680979029416292254249389169805079680141736564636422587895436754059525525752917420649612040468036440686311074294452093062582793148094292557213795234365271817282606600091844819433077651670253390876331351429277621466159774415074275318443984584723600684144127065629171469575767620529429626497913263272432451211138969335470152678629525536080715908387282829781835687029032193989517680994241713394146047131965372231639620817145051109764405538735180738426681537286431144802087014421361853166786872956828779585420648301191168602148764103926855736680185816264567379744770752908551429843832902582027413724742441665969539083878893286268247005828347112686915995929420146727391349585430440923279278194788263781051895313329908819532166637548183443639229730471837919564621069895384866916444158379294204959567544345976660846956841342346122780163177803220835184781267016147465988159579416498434117471593435825107352084427050409990050542424886975381196479605671828696619177207446543027720701281344964282458552574749832323079811181876936210233926259442424395946599516910052272719388634514126766798314377256251132896119551090525763940388739003827992522650533142318034332230626394452513456364875594157885117829211833563633319157484615801320192388516488871783060365264480753527559466606909622490061346002193555705045176638231955880115875166461533543949631702850278566749143834298394848468965629496090481766708653270827712658894355564311941431586212167809328169408513903443722043731579279735520938168008900410289746568085735185579207570127236913071001703873377277995024174478404196775719977903896486648150772752426411035914993349336627227115004060127210534261000549562628070828741620145084351259290543700024231856734371532356463457798079678308723487672316688191424230071316096555575676601481818028083121128229335843248965745839642108521107189556911060147591139514909845400720584823963028671795560281288493140101023758387186171286340294477807608342902145543305691549234706695497629805448398074544246971992358907178239351901881436495331614216730885256916410185354769308934867652626977690054975058319979062028802000849563265262806181211639948766283633664401944409696586775372079621958986398827923507357582695480324539999345351227612888643096042656193316849483353883530526255309593309587133368959922715557018193525685243590785409250126312344942960904665197109029056840375205360259279467904523071593551546028560444165917499105147751921736347169855492361150282846658536198358423984688015665509144578288524684700147577737968202602863848655255445888822166531978005663797708807668420023474849923931910911115872627468707901315016860467557238857630578025658715656255179449329804780287729473585519355144686406500638234859043166467035935030788237353779645709686293926224876025100912252237644463492649775761602022326416992566670671635719979464977859749286189288517782842869111857729922944221588174769096271633355911740411857163447770362020933159403243545171125610190247443552191948488315495628646020135126493843798480470759437928322803336082550534374905929292890896844102495859748673542590243352388900591850249188258456004505260412842474254554539897900337105148799422711187145739866998269219223188087297431129561556039288260955456993555534196087079007113337926658017978437877571867046863811748240410094579147509594385737356182553878107359354478187259066666606837834438472565141349416315576183372711835074347863598140114217001709412825853005549525708370628372542731942635265521811039184059230614233027483257064612345430731214890813364131780738697672574032481197648001228809294708537349830329607216251248787626876839977617095521722828328388333423896969188637096610888761865566931022709653232321748787006294558800666160563821475060043755201459487823136988698737953755573227015960298392104667189267208432698963580549722192535860032339411379842228047778939707402139273948845745545692313898366218157630032843517974047765472315855254000505366153380881601814123465604861141366943207057365952054664257600917175125541440116293349669708119755358463659025323456971955833228574716549037279128659763848779405418627512978026239593059151768545993425487384468553016438691211975458547107976392358278768080935958838943840853489136147408102084363618118972262546683658610909903191493884979123565675344612046388482731868081979419046558067373239159407641274228429032273445129632438335862239898675604330557779749610030464267863726910652128462295068125769527025739442156764339484650816755572444403020866545126720251391989624232900311341271592206245536940890578846246332638449911013393662927851242748071482591255655831007853203498126083298388464683290802163030061470297162670137591532663340868884406216442916869674769152289655703003249299519306487716684733619650942494184568808482974933333387214091710915696709588257516761437729960959473782677619446526265976719396146686849664491144249521973270630099432756156674157715057857163441733212648081665931922638088550959657127748343676799890516025757608829108565542153439519219892419401639062642508186218035105275873131863193546135822521882452035963572775526294775892812473826141015562330248199590180687048110694375581458563005424108832687511240558233913183791851141425723505818823959107902934855673686186371625904731125168195527344871271630322579324924562433280078689266731084701595555073618109196363752489588546952517103020865556215141203833927829836255924781661585193282165602500414464703951100742459714702827814134307434012214837055867923454233779905136604122141875143385604120349897816610065570648172857211066261518658091555953488822569567714750540690335115490559227910565981548671503229675955000667393072066486069708738428057872839010813226118656164156258525266996063915728717028793864536644289848092943534303744524704671722519498014111323337790794090791343675713272876356042027647445232387735225048260625065883837244555897076814919926504210770079597404508740812402571470725544301195924539518596933611362323383568315573962464681632781678514517848382124309958593381180602416059459389541402772964064840554070908839442634520584094499118324948579368748321223422172031200575498038234758129572207680768244385085013995733777164057137298424253287975384180759582004161372942887331472003826383366939124028712646418301209360365871798409267905833143204847999676396798791007673521196526722797484025221651527743689520676110282826603816599788245686485318172408291467451106755420366633955842129044430432158488410841070467492066936180224861075106303826403765788956483280673439367938140704551016311346790839476923887426981425773772700006745749846107231633267783323508702528515761504831439318129662248030276413360463682695962345699702149423909521286520798238194654933786130818164846796813917708587063393844459236778305245784424262531670075940620588780132440491247838797068455692295530193877050520005975953800653412233559912445165055733894836464261219158648222893725379056133928228990607338187198074171185828829402306040592852662950347089891790496374725279378678168199799233824601365469432862310066989722733287535476401805249394595577636089422206966501987441867703571975125703018318301801967210099826425480030861795174549725540074361018580985788077470848778372719674367931488662284891391724197389361557971745050662498618615877959649691157736915633271865762204002616320043043808213220474199635532002644268313891533227944705390529903305703745118996248967637922642954809297651044142481745275422746414374267834545726636415886453309753213070170624350758983813558291613929637434734912799578959233730298583618106869297512693283837581986142951424748324301823642483934910827083733874889372303630453487469468322890956445972409260906900826838826829923425918818490540019341450576927143013203073173007622738276741445144443102192731924809806612343985239753006678572454158264475507877219513876237084647529926931205927661952350192284600035009163052849021643238498589125971631577872087916723733970668723592227958793254405228264071185338359369834689636115113908475065829036192025242911807526598917973809871801205565775511136888475707012973303963613936760315251084198292425327323766254676694358088336712369951330754334272916395704021712954190643672271920746880451953466240221580094061411880971520466047793499337564682844941083473447129484490350222451430675968007259167015560174794584960399516094968145528961916616905826314075214998676402375125259509777533138212405024270233467293614968873739998823146929983215566308973355412802793845474358412651091149373504774148173905481356803305188662947328993566250107918172171173112976699071013652030997314301660896306340941523715714225880064906433474474550084567001515157097810000650778398971771493085840019557569006026596993515369829380438424665213042678224229023835964065164305042686781711732402865146448953444157976118954989839869212960236164600068242212734783276672455815402391849014299149191907597497553609271043492832423785344156930231803801239266142534629054776834867245022986795293782035752047675877912434811957531608949053180592639337485082395246391304628958334695514592080377102801572933788995541842293655883483529336904571188583009303199065266039628107387786032042190599769920875240971036710420561065748558085238299041367798567075421546779586706048541320246804836917962679670333805464604350428391100002377420445460743361427649167336696132061893352205183846505510385458344175893765478535294899482706539165694949109034660860549010889422022384196514760264850559573897880808278796456400450276138863232476863025107014319418218764915521834754974585548491057832926587693309064986843381672966060453430740941155471628981134114058927712712256341604102602844455876617996564384088581174137503232908227170325599805885253647968545622215539580956468425680421292507403068432389443990299677694579347843159548048490568576457299965746376204210845362287239672346447735155336364369147085790318270787329859114226389205393979893578491672800555907812552445843187873910651256460472932310283556121872236976209457223603807323304745332473514626487722027957561377234660517090805984869157423199460473222142653908800015561196680436467649869211863800152235944157211531042257676689807855737621686084954582492112516266678749337826306277053526612487062138027298704002731826465571048159354601046884035157104066258698236354621313668560292601706587495177525944163496591918605264100122507011533963304655879080580664249892649347280937328901884464237376100153136698738248005926006232585284424068009959111515868950349588737388152976878065812930325561924299810956319354940584685144758565578998591453374334428094330424124234736460398097203859637358295367495627492212724580492037218339247290034004191268833600591977725533561503813679500375882531221392529833376195014105254832971496963682985582660235380767817069094571918092317027607338774392605989531426280321186092770606705714535902481914570375055797172280988067861669040162488439386336105812668456359035023793357016151800234871678937209161797531729287393574901209995099561687167140863362030636020640964587919560983334506480702956082480937532016668447175292598502621906998299665607430350384461566257510514774018872358795453103056174030205154028907739325069849748064810713554817727969164007951886263912642816741759736105255647560698068944534073807514723154834420234369913140067828691587177922400880662147164446637030204173559901622552436483915428109639225332230665450596434959354155820653371028880113066613768443065139418929823095917157970340549699349519464933712387854414443303627944436037581114264396019350857897494897443197117664123287299304549731009585668433652869483429573706607068097972250683412223697494681842153917085510815662145093686303060249189930635118588351187361742183381741591231854181801703463910378305298367266971770386519229940321178844155237914686341626852533872674808158452842500089605726550726429872755028756472723272841211846260830237068877604821637754876643763955311708595810693297881346688952588063757880947710164556951863658169715339577308806821184258302000618152403286673318018327376912578613510752890532228361864350513202584111864857827321239844613666690153617565895665744987103284202162560631792581804767037439568122665321970315675764232015526058061659887122738646864401921123893085837319660743696081298145164344397798760712354558511800143008534789445600063936775234249231920452288544198403309050668394182500301998100260158311481624181154475139448864517982191578135580400759959129176564093614012213882573330479727354372122442857159164251027828407942433156868505914615863609983178145158569751529773126584484771121834562499084573190600554361703596161673619110897257378055865588169391617605462613774446481769292668045878459501753056808537636095557600410432283976751463490608608339401324213423992847232486933524737807181952752386879967453977333128946286845089481539858262927762030760106911484880766673660798243155471001954978478743591007987202288707212113702787698768871599016293226225519886616799446590528531206299095919274893473545679448558980369765784486740043043138793278328200831795270628839846072964732619826901987074743660039476321583630712185407649505787852954521159292654917654650888100525977947921347956039085621972714221605022757211502920944600592165048662983396443995750249099760937562528352111239350325251280455864043983381274605719697399239413791951113161443647819692830916752168805390228822296901815430080808114505423749941587048688617353331818617472909512680366634685128981120635558238914399849310709826325868723298883647795328214866904298221497834776975471154718097936170947205833581770840226996397104069778741898109055387940975437798690358789074322260499837373097447277000774538795685865988323540387234851031484290927877957051322901134235927674176020555449656405594760278305957496363672007493016020027279261675579784037453557365491295472440048043498562428848315190347859945416113397212677352709394583991073288031072611056637203021266024460700383882031897614755062497469558992796604916270661820893234304541888802590416068190118654961130813293608127367815242996980401050161384938644196110526932202572610712805083848006083614377462558764851043082646121292498912357687615319272772373301056739196919616517849119943217263884387906734777265226275940404475584301046830070573672281466011371676271145342344055581073082139357596223381047802959711755419192307594308853247189453156304267458341223942950639734338521527325171845102150598866638009876679741085274141212082301039055947838920067376090850857296260278901683752265962828774581936631597217262083035014357092437821759850365117501239967574321319320752318736992911813463111494736534520190476313361099485940158165115924071872658437853186828399558158619090639880342718144312175810631672423947181221819221553009372820947216021392743414183183911489791661997613575152083792612915302036282204310952019020626414299905133164260123753330299886382946241847346892838569075317882100594195689162140870305369420322511637625822541720590923869152419761718572812717845870399544862449007335296580462517721973886396117370743260699453380461145851179381500261051854086908299021370464830517091663975526342872657012115439093853655879524567246628706575199240271698836752488340167675091526029574292582439740416751922009374931615728455655240884629055067796863285610701819935537885178027816594178397124086498956458843159142950373036030470343572345003134541033763008639190519388359103842264488777740582102229938000309579030249826457887325918285060512495463244370622808168575012467271360962478034077893926235855014654590880880059321022347480659255995984669464131127111179254190140620014038267315048571769107593919321618345115149708227358857514262526373117636151498896789160817280116167938392370959953594492714464267542598440302429906792264165385974018957881505923142242329416695163659892282224620988530160647866899523656690818347921504813805954255078703648645929169843891920157563763666523388269486909551636046562118298862924944538161776593500462553647036935369287438349024921650411086509418374336146843416841083948536894377140747983653051458458619802835235683109163244175027608901255028573267651585227036694564671568451436420737082683911728089683847562702954174139856287742318231964614803655694970698064529303605227370434591801122461694234983956452315557373222402887906780326606854911714530852037944747618371003146523811772111997044830822744758172947085691427453715107174674641005993630883200444605360478813849382083857717913544475877102088183536102952844712139539027092209060586565689878975595341159684381737592512049881622707298914670709780635879871534822708737572794863072756298056617030980430866528231597010348982302542166732653973962742797064289649548271741514523375334315326443528001985503336199559539986471792523146395053057387421061258353003906863710079418228139411900769587853574354749458630259608567371834549905977902579920843413560681274389565586962605325725631885509374115154289853547669082000028169923503622797710433559078171290959621379228730235481110136890760972247989943431578956135043047600093097062066071035430586849393001014947081882199883738788583137524699995754247102831591452799897834785894831724074381382476574434670628652954513297537168019853420501116160454747593854493383932398259174040784413229905149459298979948301279363241686180534758619683962202163224727972978539588393742518135315920590538418417395024107484335482354985852607019453754149051824968030180696759497626061834597247762881564198208092049612189733079598822448523852308013405966530798259673965312828883519748022147215589053672581167544050204105541054331660609002578135029745814340696100928525422785101104735035591667213722536448020563096408325535271900215679029460411483657757690261511230873766148278206766729046307939950537030350397326432558964224412958260910646084168783098259942653673487533246344116342631974667161151166602120812411197311241470378040269024242321155973188514277992402455407210056920427676975134110130952171565914748479719625919369309729386177604105250452144160271717295862890938779978904632631552502398939728112087220340119883292756576647113478149998256697612476267038830308620276375665004067639663357075123990937011009363640123791733905728950717327554703586763650900240372638320104664052766399240845305372937785860913084368171600279859580459096165662511478637572670094068292301661846315995481205888152653207662655515337909774795030213350225638973990221890520007721591487341598588488107025774558374055222328623768754405083049549842073325351058056805966609079949178784401743997834499845404691181449988798365588395346480433029370668287056926970961547653353246727693372713451294492652708665511702656637883294764694538096003926522806814766006586430877950123634040523069092147249417499871980939548280395383433330778612795473420240879542858055404398230627309188940001420857996820303943674000183390433199071589591593713469295819116562960493007935680596885260285860640151314601078650172133271885697830193892072252613716259023019508372885691224365000105871672388120003119768668849246039492699373302903081745323872897998847498854094323686016906181612149156438182047645531680828562680649544666752012682742414379976142537542460285967813878271706881510723967025084658753788573249552262057125205190960827375476496345953278743244217091806424928966954216957383045893100435202285293682460035902371051996972697986030097310352613831423103015312572041690078008373067939701534950907075926661336552523000941069218212934570602952676995987070776895916941418938783995747100980740515896724784609590853517745632864913214097384701586657682957128169633129537745827115113097810260434199647419440297390428309024109263198570956132039293045943749773761428180014948853967706656591241363961741041747433197462883878575935402726338134611446713206259636757443106671560130187003518120713426068494609617125622869495708893872678966518381295480902742092372639022953849758906248008041089021463581671208812747235449049549622574599781577891991145457730226945424289687366784209052839992705766066781735180689780940960457831099463093396647953985379132785911253316654744151866300420114404298181966984525359565121413101038080659449766369311174194890026673721007392536385836024124720434713546512409002362691256319303315970948402505527076242571769837876839986687865218603118774035009122062215091567978656356945415514312428937478028739765456605959095398433860998213481925661678694256025349908311599681141588048567583165729245481725874535625168885691240761917276659638059880835339907949300090830760491117100369006657823683986490073917474246591852109702931387191527292593625615944897243646196070596676156318163336236846728533536296967525857259513086357076601465072752352984863142961162404015708460157252535907447842144637328329889548387878227356635758882674210282551233078978669982615404334923795010692645644073679285299398005206762336590393759884889641500725426258241248276402036077173897631252161827311244706556918639970365932838403333723814028218494758304528357554595778068548381010812019243165968998503661859100927222662913705262360177320650884454915019526344443036545016810081420827958478563441628146301988110176230925942110591148820569177229530160645472197925138934933514364785907014329023155865989565687475337307632239501333889280249319890536787936490840641736971977843445519276353358922704304036065974042953189651836715097627324845769002034339759651979300528831270695670857700784678475129919065004769894353596744246685318661006736797653482054218784116744789641330532123404145367322267954852565035298528349159586416979517537518336154964656570578887164689061802241039557302740216837581121015179965215152887616645578629757524587952544540899547362025356967011226494671575505092483041976377225955134576816241133939205662766282890863943432793612727978440629739548715491766106890428738563002054990013588239939374101518935746276042273105489088315374970725819859048404409043650305878825681973384154188503812368483749569094788851541213425652914336182403093267339167763148276646594003719290885531015287287645231630061395526378724227861929694987869457683440319635080273202880244249247438593587938382814334308640012493508081601706085100259517670241854875957323059400702614936370855435183402709246478937374760959358310471361988896903100063104963728084479227457971240601881002394887523625994886271153358028937866218737428154478932415002452823069440844168964482404264922669544489650945674110162623702495154260540509939269607477622725555100031723379149229530914943777316767971589901263295095755396289865006993015462743953541012205964010229862245420581944590171658462429354102739890882649194247425451977262317966205169410654148265688750658731585378386658930607567100635381322051959442210479331347260981640626989331265122824012286591150604642214884510049911325818850963651625054239063220325098471559672129616136799871611066829548172550166314515847617623023201478003641631256612710473239411297314600819298137439503363264602370923641038550828491877404206637418252973217646554871554961246750105590737266554762949975868832508747622705936481068701186345158059435351296722305880048190142854844463145080886749715442573248989225939968320661765585861484398803857542893360902924188491651389957568519144054826165497760300840881088692163014864088839506487103119321716931020197855475540954603339917548018775440486337257628379904924690264766541077346822955686332006925955061966697377198118956051452082512926195046290285071319800354022051024399944841936736575417699182155889086375617044199077250944439638488005470263025411134536157026167433082250538519568371921987248701723720782001569782457110349916391526570370905355429167506638360941342566587257537926219974731508768848613397921728072086836266621677555678564610983632573160515988264760121635595022715917823528317054032749618012012368798946462794131832358746853301329910953922582615069457717024755112944811335188609021438732215193829794562275461691217610896671593804007197387671412579231806682344680998812052753675566819403473442013451727037549741594294243355200836396002516303895374085251386365305309373949094987400946709549815191132699321383894924470134104736141205617005641774569415441733919339775924537816656423086877932996616431855302513727616673152035100334447851526148652699746997374967432464604188775202693690626320901839835589583885297131718339089646061718095236631488340189987820710061520140358763371868944483435379203889117375596853210928419716306307627780427480386205409458064649138093881505930387281400667223120970030152021445736607354450447737654777982609349331181432331595531885943682032944915205049503817915940909237251087854029176315785462586423159680547410337566040954692909689313653481525858723579997686832701460816900489586091161610695890216647184245449399203760615564898261712886345596887252577621159621175035719934227080896172611154980265708465804655677062848092244852755775952940110852873728048612416250146503095936753552127315548810421345467171851565736104555796362343740224065581219765068003498747790722255596536721885893903437050246049164087274619581493786766316796045746156752012304042548025480268416582567873219725516073928751210895064545107673219920313526699639462156568312201194618078232785413387751433170458718151948465555626742436547316727055524859858911698653809789411819117530394306485267290605479662291372398570160008571523692312581605775445275621577989034980824580104626595647898840053042302585000940607353504239335066813420491420484657979182414332675240737877373667846519680928872097359122675223578072865221021357815264335786080361954168005490049246160644402289959396263005309597051783456599658448080486970187761135173384101484579302219183578565071886063142318929794141203557146263608761207185832974585320031873564630506265522532614706316381259079334588900690507668199997763240711380845387399678471726996034304837483724341311756555322223547259237967634528188169488120127723251946314131204844266994866505958830852256230566855772246370051562045738369913014842769277900713073197463121067347174731176073789486024780386123927533756851837658076104328091250554417293015385727787134695276599874921074753283762181413089095386039750134616860230158336770506941503418205816394220709929598376810768757467984876892204930192287282952210000551000945383961558801971762465599050364863682919449681791010017637627516932572362982888472939851341979622520831833300215044777438929454164863632604042064123746855172311569043752156540108005648396405180938193297815747476758977712654887364951489609440210711227458687925542500825951953555901752088084547425387014380530469503431740456334207149286759323994187360820642360231515734419024363447506994499570218074706531150184373777891482725554464623651034029420942970814434556283006218707866899547501991393663761440675793181819501494242678328753002812647862217633656879287252189547264106472869776159165842320273260715491348552738312501145857664459363483759597172820618926717103780113387838305726235267174317491627175858943901019019474242222530290660141047649468204284434500332159371695694492340943668801609762861141820190530368336283745479858028967161337548099955554264208280545578856086098130957884493528938176148065881528260713096787408796791673901076570387650077660906044695044536810240830286515044677049838426866593065047478769052429703380237016375275505134420156853288660273364382838106637341659345861259590218756023374135678809680001385995107574063326660330139207050686843061984083596328834953249923094603929102835420403824115155651702803525019217285590312018306864773885588544929531694097827384436634343863559890134901774490001863318101289687118672252830253087768595225374101958137955826769722264644556149612810046050901466657569543695717524556973547288316543098526095934021996230675522289372717229423095625848649123725169174675016394643588645244151580488836546637633108771090230809387018378949597112976702042641310567688896102952336824528394133355874632852084437772377518503615823118668224447911181719791773882949973873430350656192920400665488132651727936012394291375851333234984104551526341586314594851496805936572385253745296026071760494230600814724753769787576978613036626174088525788357276117409536477517925620887205990152141963199782014152066713164491378323707326385227830263634935871794308585678387018782028188436737949794716908614748490993355567117997315170903495258976156141459967549905525012250916673376626477102186429496830266629123108405415865194262781136108049271756975090242463468995890797396962143924504305961172912233407679964620815040150604744564418106712360794911140095328288210838865513712048807327577640671697213442841139285320066926914962870576665333655552638897931485813331894696313062516285581358862728616856984690922138100322591214746974045056345318764176596694472638640265319964472628831595700288833602828583375061241965152412837326319403998657198046073035994581327998201671050077302845024490351508693445852408515112805301648735290231474866421573366346426289706423115320321447857361650861894718950967744730070511044876785255152935378250746611799460988568748200554907371712665523527260285487701449617426222940373754226745971822961993925973850721711955040308805873724996717669737357272647465500103410058283731255314494653705996134801506805447095822676798618807583903023926675886250674474362022070374645086223793224235440104011845065987682523828286283492964141498644325480291141741303579208153179900404988743260620412307281073454088951025169486043471001051458406348674979834652667257064575239064287066086239977713711784371452648228712523786829628526517419587599650780528210065545546115589220407739450552461490246561176225957585898445621455435566192415594533004439153812028721621881348397787963894733936757954339665999699471111787808584875588151561479002953952356705088785749329999465590632365140853094758954202378343767025989380038259863958603414695402394531527196027128898252420213779645602547881929439560212880697001109048212749323964482309675465367832682243348505143369359041689867518624394078785220206098289788547129301987860468661826855831136526163603094835315536026609251076356000976986275126369182075248542597431134639230147866096269870840534890223083947998537687193513690940906196734406467092618461540649615748477847194027245978625848150371629082385755252217147129533313455322705707984542976041323012042151967630663542481826360043913286739074557520842884128067905076482269073589172417607541831537597938484199054602409254774012009491861735684732473653316268031995149433846240740078905315095058645317601311983978272114585647139923204043487108432728403857922718343599961609846699908578034442766271513821872655806894808422941534051457688849949544339840458671319632121432302446490382400107759575718155301989419952354263938950748140478203054743835939659586003700088266218165934896902473154421701814770997230048806517694375117180157750880447148471825472317368086164703115233865336015079964693291664862925431078825501910247674053645714303945210005780175324710565090605191597574020767780232971452240358350587266012217760160253922132478675275030519867822517916792150684245168186346744776050434430505363909111234506561777520642897374298277137553639200357141893619140915298458775548567836440649199631962478690704429126922460209159658154548161862652615246418721141810363654861870486924624162942331781037437064574288220298780233676299550753776570841731135212379491208781700055956444020904037904507307342617410682754450234888200027698637510567664338949448830212917339805874271658356284654675636121988390938942433480104568323122245098317743880847463117319546295966002052618960387569180564698895321171713014484637098692630442555322940528774264309686360258818321482552096198888642880343247587272001327105288175168915339842402207435293224663165109124404397210393036845992417283696366720073555745086477107779260778491120446323723188715593137998054067337156942374191649928252461874780240296109686046475821632610408120282301336560948929489328226950883460742277237383293281356171884237740508941006489259103785381224831769367326076029924947338422260693237804777766735372615514822050735427778133758809828462948471087810820353508852395763471955768761961650074077373919846571741843629675180738918143223637951992022871255781260613489720204937546783497496834505464027379669641109678209923023425493951619802702020967573398844505432648261464655164067209522243290246424199126380362011815523604029281184102538064289263410651915326697058939104605008737609692060653901258538006313355071232968329932004025291270171136264523684206431641719396966121958339189203606845777206609192947628296945076839050304663192049196913392241855799868249638027739520877192227797093420876189525125834834138124430544864828558528065028787832116306142842813588606465902440698835697412246809617260900962379387018703799067921982126808272576989576338344874681043072277731015601168957817625226422000990443611039624390903753377413596076923673619391238716849309212493784257097963575943727578295606809708822056956891383200956206688351782910295996165044507572238419571505311485483133710746825080707009584119918493245303847392531866905248043535511901255913202847826956976729948457277848231879256385814432190293143149637378431704439523930836599041448140295441780411762557340954608776897618613163639682292423276435285839780316408655988095492579442364390711804134811337375589944303021684945301507332382793940264085932560899181094589638533677309243896691734360120021149116197691408518842831994187688090339759460716076152248770843336371945931030937868381547944189129626735676156626010349331472143852841916309839632829081156701105857433727020781398040101205676660121337195416798190421633564232738619296970956438392295025941880282257842991488618786458601879484197236043524228081574697971229776749274943453607931825467942992456527808561915017856723379381836086177252650222353835159068841125061895472628699008753818956493069287044748549543340183377200838422662569835019453787557708369593694976495662298532652914346742497772995362000392055426565082861587125751396976187673463808208273715696237907619479969893222840906331376419342881645275320019922148847128519482327524387120976939448840739322779079953489779620850588285362200119204573540477237162660081839874808404937224244516995803282933542346206035202979024060203592852483389414483091103213720093390925086133466299890797205647765838656986465964042700766402582777841992620508295104899808580666200897026179702037140999827415507451661324562403831858446493060952627566727217758305643756048955577786502460385483999301375544090660103603985639774478728532090036082124138807445075419045774153635612739102777131699645148915777706711207140095310513345393465476762930402231734299989241886710579346970533926175462001364973919138426662175441582831390984423201776728280195377106057247166743538503032161339902341728193063275957182615392582139464159034660308770518461332714700401156552944029397202501682882965572552183503811518200598550476030336569585743846829280979573185354325555769572383109634478335290255583303916401814413312176094649906307378811845324416182725979801019186434179986239548184178432396758552753079251881593085143172088560501669909627888581113827188311364929184625530720162934236343432520854921579141676829255447023113853072651866085582174213603761240113951156516511969190570184295924366048568558274139400615991179098414282261029906652617736103451820739080863417602160046138659467444755626755332663720024465903472244090522753926206842628776313198343236083240300743790014303518593574496815120154005443088695976123169615181831350974464121720305930403548987037279998957294888036126277351176528781253034076686900181502083352193912479570066484897982565950686061539885464011723115645878948969257302865963052758117846774410573494501441389205484734879380037635028710651487467052077393820881372048544022227393958295403515899883773940906992521443077300725870663877643293192891345709932436534854513666759930070369797294207648556075247023181811437716621063583317409917244631306533689581816410858117831918325829776656546136140046060499979616951141917984503964067263347188315622423102885389593494410869673038939843838099334659710736652023948104851524718323861781970502082928174395734013670164867690810937625101566639548390005163453511957664639936428868077264471613981150232759733897602405183363130464703434320717284298913104069941819151901654764397675498213587079061856295643394647931900514750059981257656024440331109966242571849035159436419356669070678805298912859399320605828898805735909211863472427734557472899011550512723381549097516532386288289101181315677605343988968765115677926086996263289926272297864060714749334000858508933660938478833927725998416379983117972635632379946867725913053070789049630850816311707659868383104217370512377841643650162946908614787964931569523928749627381029961141882517657730048915082854877032743799040835521568746291716084574609988603995861666036013521073163400775758388933383218363082475794178268645777404982667416901819568797629910087117668191608831129065702495907940460220503765827792573620190412554431512448373546949579223863081722683324031485513427629806192572482667339340428124506171701378427491553187452784015832904527244616365888995367481486870041851023954366775683028792483134638497086404979440618848094676040786121839139781652238968976423908070314989173492306414962803896572451772963046422198602669565286292431611398078697197900009429628935715872291722039302535246016604439987681077680704703353771357139177431548953514184567768302041564192766741356662326125188290181564846086467112574168584095215014209524268182558621697929476688653920013880072229736104599849456994037706123986490364550097708468473459939381234992770960116305604676906360072436350626444063554964240472366049210498820716629988513441684484849325660758400200703344145357069816814685728045227934595542773297351218234134893195792935020093373943043174998406749710619605776194241874811852192122718900256263472923638780722563178430029947032885363873612605479080013953821325093183704462521354796464902369997995357833982480764307473864298343677180004591509071536756428558587047143852700421342273984541072830495273417068687975438880228632953552130288608325821833154099936158836898082983468467784038358543211074422659540326586937584009219939549100440178426742165137926473202871657411687229739463217515749549685137102289200548912612958747192086327397955213729113600596803091252284458576099256441399519842863135106666770186876373334874159083379456809065127586548712835315324356676501340692905373536296612643480169163575145799996310488284785966872100616857217690868096557195369098006260883365026594997477907136457104105165829518356532685906806673395194466405713346574632446800877921737026485715962337483916277267728806226705865693921574827799138538391775876846245757880923376920317097174904174840238490604537743460078459681148230388346107421891657581730149456226744457591962593082004025090576034024304432183211578197286223931213742532584109290446269431361241796064976880771453300995289810957636720404865317771630574214209711781266481318934911396506275876337449889028646161816841243194066514367043011163750702134031423822549071756760459094589835736552297763728607130280512146112513227834828376118172066581339497253061857865285768008081145394168814991434270151523851535490657821087717718251238187779965680305822358463345491286958322244362285268641024708371725522566832158934165401186904523590075886541791582315271231810809192899487760995363755414434681145368117125294799440231817282546819785632360327108330605407811353158085984044513770138606970973943579127720957887059025414875200804837849810817360806400296912622695878988389614498774184804864008194755536896699354196787406825535122967003243614915240758691932628095340110531574593061304446951877636185954596169376173561970879938493998085020175790611841134078271684108185067402543978701103408145501404630490226211650876566518452942054993403327718579757995203784862631138294506007599482954564922054695626778276630251742082587249930569623582970938965353551978828642085223532975656808629918768094437322759749239748548403693579165605134903576315021246209919593024704645208941017815993375386542248800729812709126615977581324585665425408202662334740797935553305281117260741414136028143075081066090023690083118239921213010799886676369986373944424650498820463491946963121295365356796356316056116652777397314234855670252364805432080340307851983241732613223131300453777759458870938828985216035493323768670576064468228851687603967309898354826613634239909515241870603455363773012197525842781968714172468439456296141089704508929029910234165202159754441597813952093348443929389297331100779645169958720101332678886812548963507329797886872376556425369790420436519307094921925121923049125677192440813318278732881997063581099637745998806949290605961685644261745771396818106551181119655433603251697132120907811707675922965374846120704495132600818015562875355281682259746042143127248157696285345514696373322657426259098577120241403604129593315444752481219610621386864359946627623928229665412572693758280105280780092615508822721668817817387630442181166608231049134317688288650842646403957154780304742934153295093090240182241985234669512205343128929228433054004605983108890247437561788269774164740097302018215225750706677815301422366460637534454770433174348579922670888477729096028824757695891291963974866803656591972737882064986889592786525418525914087366486477382755786248371962937018077164932210050821061517039689450814566866361260572073265472045972313014648256394363634509210983062228371090520309368417790407393459265969786137313135921546989534427480560374087222250410905652040070230683291798260934858749918375041177559529061047957120314117175451335366172316087090341510389038124525289906322093203746808401536144922572906590784136079125898077272180865629005446120187801551481937789643354504945160958860540760451746531949628948780066575692991123928859014358538483663452235560238972774538010984046358952153030938262910773326800046034286467941533800516376389958195669354026270348222040481900169849202474424420355265070460356714538659979416252857431709711018457586300003560733417575924934959768141720309590112984101890658130422647046332681930851269506253520274608780797344895638157853881278210550955134345698285037156498677691748883827221721337618748854682224258127886426706019769478970839765773823245122988972304398045082505058905882250822447423820006897290087393540131563953289482169445239070017861888660582860876738675978798932972834208380421297241038337813487189333952287550008011002083334870857311445750877030331344561913995163761062259714085226169187555053720399798102090110603424664087595418644134449961858079882857636809698971016975757211258705778955725058384430146894264475941245602341536506539524940357560619984933360245260214480928970918511489452887186663433452818566585968150731534271400359077963287447434970909978601869487199233744803583023337380439421111207693232089698694612348319337399555396284559119164745267994897366195652291100011844815898848120560928403735345860601599551021396420349093834544440532892275196630823987928430462373113381363884704630398873675670959230501556562595327701631035808435102291438649647104269647697278888852970451260020260908831248297209808403074670727968929452130246000921372551218672536029765713660029328538836597883156746897067121284916475546731578041809775214510828064034957341531268619538549037951607238843651467435292441137080333593088960173403435639174607477989387236553480119034603471299183770739683782759081881942017158797970059261531958715260417933739699749317244932417974444511815961249347316440149432476604428324238980429465282536390054545087208496518313117408724398703450766769927583761649961996367362064392679918452644471882106751888075666855786827132875953217307025717435816136466587647131478467672773199567652539347608056689217296496536517936858915054040758517002667487628855553812190157291211709727409138605432766540679511686331209954055126155008133506839037194731480970664294305046699797126427140732802857149330217297054860143188603074580308592905819244323346943246809361963459802792969791819433577059381990291958313412791373618697334458000617924559571771276607820746377208295832866523081080942397769411539768144687713681988478599816287815076495845606364581593752806093655127251887674738531701551313823329679276815946711677142074013329315242567417579077709047433433194288469326225800846240395099405238968620852791338487224931913494784229020260621414532866713484560595456122295691279302701384927607080665735216542874174997266593011031667925290314699734995756402554306289021724202852340403492981806796968651849571310894667240086854032405093103847073108630333338449311200445386717335737005017945587966282091017508365333032616155156396474319544808988944408556854605132432261688767854486785042164043806376472658709310801489003363554652917162982089035534512719693164173170975464673582850574948403962607872504182472312801352035742249649853606589088540754860287147740418703032429632284348940287754003749513849379954693415712274087436615401069678229157589449172154232745568447517368642834260559242782660080131614972530352660960354893839120342719639436647220592569318560306432710253188270848263004141869227188957544062751801355499054425476604829893314654794452372358211746564392311362921618361607257158050834987518692864431686563801032053813329911108260933913854348138484022095657104315259194697700835340705821718745487057421732847104591015027636621301293298465037602271960529210614777047073076129344661410102060272845668651686299082621050938773304920560811951265108297723622917664415944722488150849272373492808888528611994889112156781271475674296460709531787020786861383390829744821121261799574036639420292627932098789028963216376743303976366682493553265537798567695016767650842252458092306824244041757945899747742133573495489021725932735305107048033608237405128031137067979076343604782233777627977177594658983000625063923250735383985419692969068106451887950637740852961771194141208717740775463564965874352732547536273463063906790256521705949351874429331852858162573887314586661691555804715638514506783648193342471509874107528417689745965996300094759845239987250900521222168782904245073094932893614759945475956724861562040153084626001650249577890090346256641514929624610529725763694275936420608304060392704468827893683276805342370649588663816111633874740839662421642051751226803312054725652560289114625515421829430980532104670483954497827088914057105775518796886072805429648206923888921900681831636569089745965864853793918410808212985822365808672860495949119967247386491198755678650940754167500088882428059075263492733481611152694085191064131095909228681310184498151522645746843312872569605551316470806853539009902801805837703769366099487626836675025630595878888215749298517677092945597417726445132958498815749724197827380961335613629765409913196451878551893577582236324771726491683815676354841042096432440660631888833548076677215414620459375543259134913921562983473925765556460226054303889238721063824555977782119742621927521530409905216575451884623783933780635734846751729609191685863596110018309538969116830116260010020754363704978181003703575098567261899874558791383622931762638741210804167852285741378375915863782304946236970513517035491888423128029404462103795795534853106711976725314145562554108595606312274193141180703101384477287781025101650510742175641240118902296283131513995958819076630684561891817172668729024158814039600086944445460169821346658316990727020696189522590556986623682253797428712414408308661814591923144795435642844564568785839128052282834064792651288493690135658935345982077701100842642763592579022780656371896179462937958353509050130100456473677634494410996574186529070022549138942088094995859697764421373197246478620793034400715440161291847822938001978691545874998172109244474643875607687408194879372782390964279384740870213241368075492353180118292243720642476341405309066489689334422758642022766622607533035172881568542989079871688794030271631012122431672617866956656009152922068388817948013954589540996655897093502417279793574277187051447992294436797739818710578659452952276500516894719668799881773558776725825508514146746835180858871288194623875241314952899915674362983892960464923686809533646441902512718934546464741663454072662886675067762855025192556841373009579086203964159045033430349275581333984945415786889808604861389276285785823612308128024029435394500259462703816140029474395296969001011881682745763567192167213031273103746086132418027634641830062549741618927137628082616508603709235953760240238274309189090977992250705550023575440747300288999478616094993272030484292170074423002168555723342147122160054352260058663546300296649320427239114458299075959009049686793201383185133918241169419124492770068046525910072884738574485189745489345387242152708148004031182616288189456178435361567008331569353670173231070202678200237679696625369326113015508826177782141875077656919763594114123210305970291332410151840364223379748082253262024408563785596098730839260567316399179189465205040831093482614112352876328542249127743601314798046277056221561081570767835172270528283332324564669537124531204756904961569280723258603403886730383422394436070261605316387121490885265981229708080042817922227467159854688128742442946946033005137949635616510922282210192302094984843962122735035956096786204157164559125640684765068233887542837032780157665310624343052419992167048694623791051623392629919375015556829731331526072537275886211431592461800291762494624271499807784449266449993933572774090172029013548224792120091294050298534646626122274895345321574173601063276623028906302482288913628191793673366988110273956469391524328904320633012609510462901172504272565624188938557556505983142816898559442196538014291000767639302457783539320814913140330167820702111651532581223471326558132403691836139810332855994429821612896717320578421607158032457065009653376091409396778670314402656439728114796176908946560243544644719792511741740994669686493585630168385649009737891965170630662508848462312003910955447120192453219900550434688332794252328867352815094442075039128671808510985320523450590173511793401736837522975530292227972706935033736570603223504122837830665902553254115051705698635853655729310469873853969756987831316363099006991427018264604832644644834521344586650676682152619619428366888880011884977365096791715505890834646542214139313298150610679802393195861440684047773309590981959686455370499081308780613683118993607403337924561308878101700844402633408640587960647689742963657739131755460310969574860316221418024038428994769137204947553049814403384700771171851954187699828460842406995379520289294574534496473797184793621709305702209637122466732399730124364783487137952442692777643743651403802482634938953139162532486609193446695347767018424650683873799869706823568164688945824865924256499071211668019095836425969889653265100705102973802407360987389711614162982476662727347200129337289195212309229105405118672641386693681341832342512145257617166195573279212282140674117597503001384546255183862350839117691571126996100481753596225642333234479988783100154125029296310983109766826656463549665588717496320469358105689850209262864887966705805306201313999329970276314641939128318568240539710870876182231383769242151508675589515929379089552785293923226471546371357778810978336899582057031955389940902779120955233785413950173405902971377991727247345482520002745095937174353773276012371162555014670451967524211533722209409623244761492505428357331512893671573665367569662149993697670484654286468899669338344486215226141131880120944343336716275490100314606085521528253392313110275667041305868055711143386095924644442852098167140267301126842097040514157055187054840556344399726497466303291951261030240327847384471131966991510387639666903940777119998345591867443886195227838447163713345102740174487613639877754852857909473001378536081502173132895961765067209712679823983783984660008520283531710744771977549933344886279850564409980998895220221238706138046526374419784070322422603043514090031806652437476388910940087974561876414854596790156451278359984343511777313611922858811462319914502267786149382139430307268754647002886487876045718120179731320070557811250908605322318813634211019266952627638544353513594739429902504477193194036619131327655833906574845626196138776989082905196291421359128904560658589442819014617025076319878830453878870738946772059458414224522570985400859892991434105161399452613787351181087468641997946869085968055970351763100254946776609927594186194370513820536045864628932648907265814871891151317886661898557355871496827668042235073855455185871380888706235998995889366379871077552229423426623306244718618237502460297185667000765103461868463511028553151493905490314482191120186780668996115678562521518169830188509747922414150557120690043779245385262557905417966899029369686256463703875468723341286931754962055893310961750507861698478920756861635172454445390399608428828918758586529822246863516010619713214308187645152765578864885640761774764918771898788941210197309119567327632023695187133998139862304202285958107596433391652793029504317616700523826006880346621744717025676610926957702954694637774683448008020562034288049226836155367709915501726800874633047366649646699256783239537277123574089438384324529999569269901043312609872351894443532514433758379637468476026262396251630697112553365264543090878922826156935303431398454828004254677653561457822466950926874247585247772290589713969818077594094976083336625909108817272854376724024704903967552596988246587313140772067581862571178266932759093112829545879624655399835453491826003847354553172039553652109469015770040672475871893869414121188667784952925113315176616599050883830377591432235062345373621082001152907306130683325247790500999666734940826593041264877740309062824239420852421598033197345154928702921255207917092613994404868202330976135316947252748941657118239670519493473664911781001519246033359417501582067640819009045419432906979902218292360868760619445024781754310263535592852147344768714267180172643810926637600443804464297481455200728980231134030676850770178442342679597270438102411247468407049759337168007082887445207334978876690913660720089953640841138317933267337253317507854993076028946457444772033350701891458938212184249624739606782314670980197513219861002677790977120893809579222547453855147595682685409918999227535405228570236898440941891050414176493689428724672105120868802762630237389620648836441655906569562108057232035233448794907441235872912530551409911856612203007788907480762469475269174981110485519595709194191455671687119867307617222029353956144585450255034340162309193584693744338674018318640746837210535468155894369427635310509513308341272475331311924397658134670678656853419352123113941456515693154518165081043196083223882548700160664000774651599611160699410501449724039359080095662208573047639670231923255436759808719888702177399649113335431206808818887147272104318062408441753145191621526403341099661216192781211520824945071453079333337166940439299804537066630314246771162151138283582256372289347880669078625568864881216228562670365850020872325173485638410601161827775131298866163814928902548472816939994576398222657862546134795659542898158856414928090949445727424657830388823134668847018543793009762984554681876338302932457948615245677802844155543205876634294421875295278769243216335121424772169461277698921268822329412601462874416750643520698519683861458841832306225850135145579255365910519068111443726346403662519407215252002343069110694808011575055980076138475943808336660234518830845271784189869540383170135102825610527311701275653245746756344374528021775053154868267618818254900466948253095979688906007770917860240997097967304757495837114100923194809206840612700130358681143390291017139532713829539500602835966835134384310009283746401212907087219073628589582610806743306619198139563670738277336275827954333787610841304554367664565015183951710478100224546741077231372087689996029571460312849207570270200873037421551598341096008978942117412922225978524614020433321774812210953540231478929659362077081847701428511099885211063772395992361956432299076548415797915306037985971679362066436787348058742112223953557565252593516931577576936305538716549232514664722926311546325745030628266892904872729474295808651204304046818244591588170312058664208269991648200845453913090784586158845755995364685960962910723875744703312260711890354141414465483202009874107820023435310972865149050319135505981545925182875268841315567847044572464855067893238732822850196682954424437300961684367727566089102449078642906484828392724394026981104148700535464396962183063791162138604241953457443038417875149410732434557653530919399949830556724330198119174474802920195906460144360713310168599876261952952839129418819926240424604196966306188394489783629360314618145898178478266269811924101476690315138469845499017503529317279853974920168178745434389255569344320104284652145465346615485545131952982395940292292325687926057923599483661532775379813723761188284321532602804701165060935280217626322432239766900253336087022098926379468530503770228136171696460493450489684264327249942759556665495520237768098823213429095388154571193690248972649000412509917797307673381098587830988369864205225518403093629518106725824924626668481210508139237430881666212234306338195865147932188231207211400722403858895078426005762200964969748823314531347421254138846786764565940730715437363267025826394255458086890122114326008498255955528043261971561071976159036504392222503618618308026159985558204680425823799108360191736387921524581375236394246080237080637556650077897596473432102581683078984727193641508402416489235054174678498307611031652956674910830452638335449119232740767075016271196100501416903461062521203998792614478807599495539681257362036477899032766246726028812919727733900100864675983913605381693804584465566932267583722803473709679511598195949517109302304738307241953218146931189269786047165480850699238119424275293681230208948576358111520765071740267888450953462770626793395857473352092569840181139874377435503808043783865540341853843380057722199838270698107976126296724617216098719397986770834391568748392618756714732412320542275298762427278341281588465618302563251947085880649386189807621859625189601051471278013180001948399204301568272524443886561028738551600140174325502180038877414638933563063206271320128919726859674600467623551567588330655133672164981728705352190920698054440961745394676777218652609460296292339447150691446099363224111195021092616177677913018495055386036475773325615650007184594479404728292521542723077579803192258549282565028998261355957247141839537573629579121871260972878979314300477788982014552649292034743160756281879523592557414205069391797370220879859752687843175139131229640404153315360248120199669140299750570530155833145112220376706239495115253196716245496055610506829952447231515234166320321886288762401330082710461659394542921805548664166502963686206605524079220235457245069724283374778545325261592566574615172051962816221967189873780315743588237116312283187532211144685679084359891680586274851525166884811732862809051948164833685178080182411261015584607805657345830173823921870947442110682224808694165753300449918043105394527358558742301291846427777865748646492852799278845072720881180246607397719680305321495448461567426504228982839272880887862364353984727691451440670817527275671466877497035954775056056803793552529646346478882117912267017971110618521696571301078898590208109125282663962973804761107345897087388850746607693408441209389210589112119187897771063413237016346321684400871702843138399001812192187088201502267521958321464316958566589093713852213577733114868342105813040232138576903444835834938950289705586088581744321687774072021523244321098920847341910002844969828480856471284021456541009243766958342753632881837060226677552565073381387338145195772187809833706424858484483123336881573193812995998908027559628856232128498062522999145501146384613942825831008479689660032711459613672529521802275194131283975091738931429294458959196702528080028335210728325115329425366268531641396954971425618914973871604855342678166995748545989432917155165606406227320470473169328883358008720625405911492673185121001592746542055219548860882213558660667994324483535817288091405058424957616847136348869502140714033739377061235931800892799259815201531376662355112630113362456977032154919379648234669698637565220932595525123619450189735260002500794521428351770278527515254183122060612754494343147144097487987479768937159306268712958023653859314387261870512584303016106803140874253832845678194888344621993195215622078899756794437709653626761148819134952522429661331067111173851774655693475289144138405143055913462978148782595023401335488171640470539496650133813643301889231755880138771776969078799235009334123272022380646050450001433998828700392476091794553319955692393734427632347259805037113301345503680022552600685495837419172454565123829987859786065598756870407853208986409204364648536762912628666364033603238224837229094676406587204028695388157711597068165347341729530144346720007517768549902931250901994994146160331189126187178936168872706421792990345058873576771484997361975417690843892506758407206788896095967882724137842070611245250319941287667349902365072502766048025080529520374121161367468631541619554400059291833881017350925732788608492591106546914778216664488846965080718085915642287505839354317023949809174585929630798896033620574216775614529176465514504141388241793675089102154432591220470049559833147249561981545647179887526530154240549018774646715225527547439884267128880597044250081505509932275822168317669431854450812566177243486466978993777410935815279075472960450011983386315137559470199050405351173119626172630177706797904602715879510221024020769779731126804293508387026384528766733753006870565315859638084279652259423617125555740713735610590866076852523515335279453133187797397936124533159930849699434187841264073396859305379134809289674599146468183340088003065147837767786489340145436843554538286859730409655819099357088515355540328677281735899792020171851464382738093519871179868154757577042375146990685075243078677742349599351155422689821871578061672264832203734904019126858372432251043139929421153632315684379480033428223441953886274525630969082385000644163281960614733259201605862990921716231026233182031767968938524400575148669255453471631860370860763389578322143888263740809438130955152282072583332568439181167380314881792873342455530365004389084051044090257806865361276836567416219117308429771948949755565525353611859020398449115924241157022167069017377283994116965533418811717900686650870217958257459022501926475439682598775365178377623396160490307376823443060314527445781230733919030616355513584960491771745601725308997245333485543426556395585728636293366347110783485200837289360024590223534264615508906858257989130403769407825689068284540394629443891113742220518511228264291744737671537597838901839946873822112976514536321833254894123446910634890615199672938801858601103090563992175934953586261194104226431924012224395415057965690055879741698113293195143063692360843048508397088983641793749251903099135719415923201956284831944157107845626585195306782360871708890117748976402334803179350040068455215638792172853440353667054540299498023026515112362456643253386237760877057791875463378277138020732046281998863323960541797312644367300687666234946248286330135282082435665257478839191918269787077363667250538177151505960108431389287701357868532367023001421445206533889970140302814340722231138794317132076431423480780599576788248649090940369288250698254260235411324195480392739194816236797951980832344927436641551345479063990583780143242013015879468827049660540283302667804992852028357016837712956629768411572310746422423989969630023726827160074874870142801417201410471140991710686342503664714777229741837612994612271686768872834695083968778189523635564825866472311776233875606495373540407369817838173627926581415768047159198975700610184679665751054943130051711211861839248124662223343181931618699565527934722792392396591253224813934274918740939281310168960484677190232458695832554817130413071765567425312019653941863353476844583700181739164076750433327136721280134741070351243477213904912962742571783901982664365350790860836331787475170276956116527255234288729125713182147116243319860028185974433343976116186725856585985880833831365552894711002547121044137364258971154366660683253443420731953669510949931349282774907672648881202013927165750316245959359679351389207199529722075046365629635752550814528489791362451174354269423879246421310949289484946334305006941669341342973203039312274194575620309008651525443909257217080621423081713256226541514927824266595585980336359776536741792472621207231054517492637844774520211117533877878956227339594113355157375780367821270793046871741213574135791513605690984545425609365782785439839090953687622051911273658045855994259815506551009709945791343854422987175512929421300667132074512442741965217571150675426839088755906256478262232147812975617758095003980862049991891543621193000099837078701311002633278622376161038876699473570961734591943400794319531055376865896777810933205204032964303058112253400524818258393208777421298581760032946921633702236596995740211602220881925283420843035071190040649156519259735121480529748694283571362606698428620341085571746006044824933029754624391735458936586140945457849285337048825582456027953973138758223087223585821507855914515627451759680837745375776947346988696756928642989817322942054200010240614440839730709002975504327218779492992037697923122098993579363151019898657467259341112823191495261047566429597169702729439205001078089628290283591529649533076014966480063786645736896697783614169423898629320791870167727043232105065100854954285463111953626113607152127608886774039288063446033565844069051746105202193333398118828167168535144884919662434033740747779995087291378983166469721521252818116934746450079245200779438406720812981883246738325968921059038792342512700086767988335913084722360694334990576194946343828260853272736583182724183857408175851853125303593344181089026566613360421173147566567284948843462810913150750122705195482953913075260187633839694250584379133885209425464320632613217307287919548752862813781898792742422896364274178784609159625748528301177674835597304356574164097593340381921049374564861684319455479310604421013189023724968152446372053638912788941061343796457914065901430502637852869059229380713005806923801215873055813426654467490506613638065980709473350389970406555126667424413392036931149571722764170072681764303528920481172174871192065808232281801862727905086502402414435098073823118012488369675432233125696576073735020501145276941056674185809590615263803976932928036459560078664045793536743784556275057854922812428633779116884242943324337537075561922884728737887853767970844974666281240991045497808345823828478210373026384265209634134022907943036495131989424655191427254231052258155855017537280535229442157069477716427091373893197700653643778237528568739460649793845563366040053119878703175466675020860243175073010592220850197649549548683182621358491315063533299102575048204954037925780921434775076913156790823068483059251534993968066282606300940653725440355985428451745067574181337216704752306388838112182607234107087279785967093598327026742246068791352176844234457024897949164828406937144436850192835115976152676762334387287213514395566791237299657659412372291149067929083559930130198361271615366321415353042777560286890233279471110616811060396838314438773162632666048271716557299100290706967040752799492386146031234549750414313511768867307972274412248700662645599825057182545985013771455472281613446046880094703635440899513238571438078020767674389122527042624722377017433152991919241215756269567188042659883592270394796225664059845858828804361638349785511241072912265356189702923847945240295397624500888333339337271669912383989830701476794338074336861731024138732154357381388206000280781829331412432405085693664286649850160311431428473068242220659908534248056259519467606303874440373980892930448469959784426198514303746837758421051168404893005124514954349248807538983843802165733684596750821090435144148613115336740118953233262129589952828022464087591977422758735804063968560984427285386852622158062390969911459661887111307718385366545376521306132083129544231978826743558088125937687844051794914368334152570644091814879549815772015168601417557964115699741545069708130905332417199896263241006610954498403150266839527448843646628028153204325380494131990636671068392164727646050749289470765327369981291663694262877587429025179294938963190260946162284134516809960542534627687657692154255547642010444320523227159578492773712573828876943483773787294831383205443567515842836537217210214695419666047398088940401900633805883238576015602279250368485674631343120136818123777986836363382043127132105690196504018994967789762008848865079206818873747127935787779759451321093584096294583548767070793259010754856563832141897659386303829926212999726215373441385174036362384744178661131621632495720825547332294462451015155306470719805540376587978559492468654770811716340663126857787983698562708498708092229535862458700849368825457574648002829799801875218507779828007157245221913617819650070857590934705519308668579302602216606522183897904468939067697621424874743492181533532536237679706215255085944966527294072809904427599638207073473646206855385190202189122773624588276656720113137850285102278901486387432865766301660334159360563117046772487420855270665097011562246499812503837025955881990890464032084402551495544941782180146495487192002971916726913861276390925069761454335526381346952296431524093889267096088118768938864981201979254188080292000701076984401434819181562789102003873851420908548680813718591067368695427839320702428029203369532260856795554622006261598106593090561266022741628034727971637059898434554732624840392174998352385996285680316425411194531178204563003211626813094731860040627608541783331073694206324014231143966111342134831343672117704011473252084021302550782076192352268814634840480949464521180034489572142138345373069863425351018437015239981915457479755686888125862558750816251920205576249947368870776975757505449502176020453286223163924683411146960305937725183212098460392366983213865157742067275130106472066247923470523856410666552233279692732627024567102491984913426894114059207854405935135299239443435515169697216604270435758846642994114365402463758011099715287215775520554514778382697194121538564111120139710337794387222711272193639203137916187665276256578878491140702785416988735518667412523818442466226459592332125853444144548733327213006136279644750999953760742023975974660259029067064961919023393445896495851839362055281576801032705122556005790891073364335408902519024661928235604162597546124548379302489437556991270080266626097946384317200657232962948729576942832897341008431074703736220778395573939028071003536186577102208239602055036805954443747660698907430297661777759783727896765549250471248244557205731747003729782185743476652921404825070885353631289507631363207823176869608597562811747769184043327641651314859654311174859293991443990547419582453035219011653164889293958599573794355879741330081803145445779300196477721872240914064758474697740362340139329791066521105984650471292658801448296618915346706560273798103553818478318319753764073643518492430878367154529305622431627021783669265839847197831793661182501927399685580897018097349932967288716342006459074203259893112101487063991488647565477263698601052909986550228717898114505673041017475094677926803281092386225277574066173028462038786765965301743672908815102651961177217378051534178523841525280167861881969302538476550457532502771469444133242782599260679687214106031425276977425924710527447119103249732956370564545117081109519973511903029048743730849328019564688045647959134573354502057315160315177764144907192033146155518052499837186681952127873351910532304650256831801108300125312856560291864611810365040584698325824039823597839394877271602604371394639229277203025211506058188685093268032418992369204798560122549834142956608810283665464851037083269479741859129828113945568578492174367874732776718310508413549569630279890994463739870332138638902504882053897828815746370950360452834998784296535571829165575685321033357744012231441588761394458994431458525327938925814168800386767314261836716437935037937201473561657975969307323634778121434515399050792344088918120790770323541708118488424073165161497960380540202054213281601349182032100849290101952212274691585483637805545645702226748148975660314665649939280842687103702919912702073585525148655422620997854989443062520658436450648361326889178714858358128945141807776549312373337289453652485503438764377276163161446545368181840547378142355900809371583355364163470299017813093192804497497651740142240073618025925427552239859501070718677395348336960109397578002004247850237602180116637820276224757189836157861146065420249027246574715715996370205566371015905090566400958366671336293045984556809594945250721906351733576671662787495291309642762096109132248442090218288817023119395641386678596630964070209574037905758259343165101694628550014613682020849326269112493794800046096046245663626947197352159331302070941581605536846912542542896604166860711380081068664739244760948188561545668549912520599899272972850554511998793211320961609480046389137880113495827548247473219382042621015208634934825500273413654598154116026895225958782700390416571557872597654346111978065652131695965812016149623393696798968967275421860726904709195142275547635959215840667830165153854961390726381311278650309669968603837723321096482618142634028250658002054957965859934532358169239592999329100597320679593026091883077689804375422291372624181351026632444733911291840730586265213644384653061908427324552445347817154534133341769803509198546517913105109003729744790076785572071142257127023803995084549380065409222271563446819901102603680337035200966085003245485925332581795783614176743805302424740610281827893713100543480209340332242207033914852206082327226632445551525333332912992944630208891076139110890536753095464567520640885658425992986229844408396164628165849884530167666817822572154062199562607253939202410925852454248275468413399539701355798117620887071274835223010637465620624030668325005885174907274738399204599276845640744975386782518282759546299617008474266517643427645863421294265412855455848412282578438381992911589030925065153847684914595581612836029092306467719101364189995996814752066263859952077102256488068496201325418117220107698065559877892136266639513995501625869339687854399625694170416505468909037889845933376842009728113674769725066610949380747950312602374727320228178643594023531715669147893257475370268604515472749100329799030372005530087439156273715562759438776923258789919339527570397184156212615426237734823082916988397395800807940126346364150821404408916563529919538377364972399062333321068536904640228387362592303423215740213225359500716071881439263706938241403283119895065415517792265653525560029737241672030793576616654083790834860500078898238819704904881287017688800372010675074129971448521688473915826303448795523981951079932250257497610682113321187101609702698953897163506985751247334293124267726363228885978217877704930861364621158696828336657552158829566631004866004905910647934170059577480350829004310600237933954049267157806188129221528239393653713873768251583106868870859240182751865503865050337565084238768040758299127027020038260252782362716183304051437047042492412754665558890427031815024440176450545917013118893157948379366376146300428242689155102436989981604638937994011199970667800844840637864310709047047335743415998316867041541961190185741768228006676633298441304933293350785351813320583769351104421386541668969544399679554188749747493661064574635620871355646077701039603788187047973755770451466450887675339552419735528887388095339584896471021842104079374131370403706578536934052147985345615443185659635189383356216050430697488270958099707420468018605072729931960351743040677978903718943502201420738244228890060942565906108674692004580534073887959152682203727369930688884444023288830471745571985331257311735051023863611486732120922174517999374131847658203344318321811603992679779019008604495622708367652261169408492519263575509288981785338883743655730835876422549249491388016872761495636797036351234189035718560537139811854565125655244630453117309187055587356428590643102573178352289680304785974993067759134537744979940061285821004672751954129548140634716649255718456298012080221381004443620073659013432873270888603883896603164310546913130717304696938556794028491822350640555560650514108505512685358507133334385645115895356091419727666089553761702242557982867548524399463753080403654707168567470621927679068696414605327993138211324785609624259680685501174567056397669057276202746240033282848996831100073705058704664235946054851712026783579895114606427086464284450477861835866800473240710198106108523494278336584544421902033835098075827536486898005783290288898311022994276107610443955565891945474160707384920319908880528152944373124247768540236754560422108944671444010090558997012711627271546951385048487384097845356212257451229533965596261491241984248294836904382094649348418737791767308265813684634721887651664846860423579525632533868964642133263046005388799972733150292114656037310404584717531705887390942422125024679974141017982311526058760967812887785286235947962971317552591294702658742732417228465778414514720924492927906791564645270567464977331341820512292916167384622753638740042510774217902502063840711081653525638645218489706339556635383153368144160918385549103455151794675455430564256945783055723415890940114700930257377680557806571432334127397406683893315795795266857176771596607583133817035859467970457825585653103330350633496778805598030647495152464387048912906150271028224927294720240431435190447145383358104114999849064182750519338862655976110478766338688091140829950209623885278032384296723637827010876590127488070036605137493177224356529702503164547763003281847895418501498666456632178850393302693360761083722227161697513826280227218830619185307837901516884042077773735466417980979897498202120356859919602134023919065899319565017260370724233419388216381861931087981399304479196902690780586179580044525006754207033112954819671263646695688353108125824334754366510788525764575126047897096463170516979376558125402731901925813133535038696352868738483650630928336215621641308974029259085384126291149396167877147721865757745397697452764412914195280628155922151065085208451290028245171203259472022223116408807882881242509569067815688008833410522023872516789906829515936024699809134306831761675268847550141500826782792359202730460755327402502592121259043506732939033246258121025838786901856039110903591458400090637589030557422777911867706234457195307730184388233485480894734252271998799695705718444917884294907134707273958676428683685727863866657612788851920557511970066489364754680292436701189556787240511651385209722621414772577584089832388496928961360063127610124822005617824383695583619761959226614749914620759044671220386122036515909833205505836775859902773048321768253183432408677268461791831968695380616951711002569290730410567694920690631334722503618031512976232031413113096006772060334832810046047800968757487284406391528424696052550478497664368123379269304439615535689305141706133323417255819832544406990001600049294835856521934996394598370487311694310933756511938804281985835875465426497741283784805332471183211394685172069194475624841968400548155273465345670335036661383735664459066309402946365276898219576484151307831966095660284723928466778822864366566551212357543734112238836206790084771662457729622244662294491954766133535585589262506102783361464029497563472323405811030811151591645879437773853576891374598805069823318567844669914283188143116832831735284974916981848981023786709845186472990691405765069891838205002823074952799969213975875452632112504305463057437045568333671050513209458525883276737589201942002544848468083367866689258821076516813438416454858103888540089805532356637334595822502827745778811132222800872986373002492988579461365951938162215869478065751433857935739658764706464367341498719871922171690630958988698284827808534596296069830923967367423156539866245001695730525383621981443064448711151811762658593779100767224517746780757185502787641412074994031162566026664680800548628295735750217626028029320699189749279905796969505027583314062967564704755022867340444441665807842463689440890245641065818953847729876271545304750113312167142000438256340761065780519921333391739810229810439735268250853786592769995228833856246162072531456827328842169986046610002222826983929078894823346086935707490509224398010024215590380770749190858596742575828310889544713568305768314265954034701619252787329467646132258595453996349737764133930848937019025874577148233783319097659947811523974122363367129013309303465511768840455561582244308365709943683127945488985752948014826904646163134921112285117819844116460929008008627253894266894320396442319662086331916899129259484674220442414264663083006820901314150334916603143011252541009860992898670907362846763458586602741502615792257918813754625695880550780033651748929285441913542281309449555856213398626380004821763990054373946366289948988900534782543218521851002318594881718484948273486056219444592334857890798158554215679800609190596773688223057635754243475685379151658758465012614508380092521871787456899832863020827158671699546945770864789558114708109274759694574178774284177369599720576759349953938214156418935465299759432202076679175196836761948797839091989143155962883789253654568077361837734581795687698310975980214338107298940568848865114177959054053566233973969614469865105410052762350022920299370978522437279246347145622064724630860958901320499648964230546285772712639915450977073637423663407955012517662126400898727971431391803448818222479283767526449708340503838603838945934160334192193135903253076492626384384327440241068681113609536783811697524103252520347266886466896114143953940338162789834775947169456710285011141050513543849594982033980067064566602818227914877711884826021710322115518777434405324384698509291087776190434801008853060615108690038594871534881205361773558468278928135929650266088194467780447784991503183828247915803213644786876432437279703530731980076606588322661290189085637268889628455304248337261994851814946507769773072868239517508623906823088111482336564657748075454249133842784431887020403925472899064178664957079392791093910999834430462767661148301559441204050559606919053002771393876595490046350432405223077973645951339785464389947446681781789009061720555138423347432132191983996992655462555263944601461093556435730291236579221634926872031665177969643853463318005710203553782510680210581332362645635077734557284084861900845734688602696885956346259221526271318504239594797424555333246315435506590032123005120697109953333811854259632230373900989780130667199003502936734074909764393415152338602682471560884164999386553258109692584245751383153867577042441494818429253340088549778780363614340038804746161210765866627768769751961474742366962215677715288012550134272780144957925358697941194433396260344799700754477868697284613031846675286899958438227751654576929143525058445462720157280347346701151077258392412878460897042665912698203920912026120574072479601271741623118865739088997140898819353781607992358877985273929450246563632851082947637540209374921159455196689012952759816688417744929652364562350908070670266586686616845337871716915490340149050604583162974032901121485037753767203240397912670511325929568249794726507585464479511775572304686511751743180531072996188056961663893974800864636277794961569032036203166515715936444878410110837448056018497904004925890807305584467057067716575553484148485306229156253291693601390836076916669948954764270160828238742360830778227447817339511469322929010230526519947457535293781729402074992183324617590106626217902590469986223465788079897727148765743845960282473120287656719553799355399747479495876699865041446787209132184813027843260902785101444877788081332487614393237807731214134367345213731507594232396848657155886939938493168551162622795236631943417250595441589882428819736022780054519603011712428680334496436154383961288931804498393910346776948170400154008015844725959475790616710955594402203363865603943183252166785579628307366360733389675495703881646785222021482796934242984571831760446939081854802466986829992118190451584891967535545694770364862338126777700371606428982862923247639298247380885184091064994230643652531967864289149166313242257758917184109071568527926617485098435662586032988537835299507985280952314830950403244690308681651584530778724905465665498236296145225701862076429891611245910103241510077368000035480996845577769926860508073867437955430673450651908990905449057890509274342783489743723500686158141602715809271165649485061164318885133685955743467545420191742811444205134191413449332053139039861585176394492416338859976867254696143880459193741060143821617607000642921626427209225878718871551135823459390246096732622756743236597426705800085923711794783377823260545665608926708506915467443533985443502822894283024481492228160517679042151946567582103057283199991386648538101944003688700999854732182115869669279130380618050260889517546330422019748039036375412933868218464615262722780971485266168996631594872343084000286808067754045354247488696432442423228518210760157409013317193814682340457436272179749349346970762646433170415143358290022418700622606440365207139593868636297336766190073495524469519972272401290869672641577864289863235764423672221898044510549878169842383996423612877115794568046545895088672361731432050228992180993618313355167139335934383983265746452130869370660344609146891693532383302931834660033477787378628115340058235817993248447720418358443930085900202289010075540489158993095617454355716304997286666827473928204548364698701184055804061508214582080170451236385904461786907076155452006501082037302114758735033509131768469050859773454395912343796356674527911244908460528694288112088245377453628044941181422197177896013188335356956174777114544405449465795327486705497332735357817606931470875046234118315908608934350485273480441875151124173754713076763684252800348133660353529507686410825865523299897830199570213743622369153567165213281589927859123604533275684313501211248149272304750009277834449970524015839183498515128224573131541322903903942241598076460775904534079110823724484897585224819117769268752966955614221114216578631741914834627757884790789936066984972686709538488861508093066698576031903112319352551934081190132970283230841299989343403828081427286276586417584995872541510540874735697298147445129475963776037520064175193622085676083982247022029234364479785947717312418690191937409852644579997494316631135297592816583105556210326167600442708033526990024580491042710414559799355354486048484203518137679428961889756830029886686055417239211434807090244378721620523419521516619383238985501406595466061109086556735761507057862493336446212860506042794105808652714156658622010365462631140355270936491039680239008713422605261895260723836166050505353352102737450797453605314271964459735523360693121190229834613033459368620273356500457752949792113095841039046617047753887298784223528057304185017615386053706362566047982619983602284664522882653677887764752295782417341959741032378652533945302118901526809060833129830561037911988361064803499296778784174278210689830793573244376632795060296816378137129420870092729138400682917021580599919195999363995695864730584970260509256192606600808753844223313256030354728650777608687717762737851244798984164849195356435991123721430260118521323106164542861407321537425910976162640087800509003836792118591090896175770173866425015135270272719906536696175107924806469535781611476794331312315514326313284042568051568249888606523476560998197031756823499021589943818171682420498714692496423718386780990537053642749541938066644627920394949535156947454749162319274798203353381096612331575601108168528923886365659003606786027140688496593004725271394802079759207620850556795412984536056157684573085024009239204220141350822535105179901800881774874390383435983333040954785378336200860359032402394336594100776506744079695328287672720307406141806216495696529845565764900605490359781909216719009215961160887927114204533066837641115857982266731505807102029800222311263293671789738921926563840387802283267371921308023528023552540686797101184661137557929239661768810452849909000151795266806852302296034339979761666550119335406947457507535744214811249634233599390660319279918436422761513420511887389768922490959384345559924826496613079859630605159302888575249749958252736534633241074103831442388755621156974199368643302853280979203986983158089854636399270027368814048044932160886282003207982907021689345423995677208633274666301811774791155918020713117785239961493124956963982586460229474842064624859341043183057421386931340871540393761297845869287406410334917357902436050022781718846311584751723745064635645182720214730230096161514826262777486167085291378332484373126515777472109880425478901162999088685756526663910155291039862604825178665897417596582740658294539825825671801783174437225740594495764055403190206501807442693076798984168996727499183890515172511812819801056114431076726579747944189049237637794973829186580628264180753719647586603863810636240814829557578555344054497436729901450422573237076614075870226784800111683402747640251146455686279747942386048422302892103330006888733938376194727549796211041677293113917177183415303874543910212913443939883389225924143065143314750750144566798590156322983577709651689375571328079663729671624873365047755928150987098018199104232034335456717792238211838395710469657977496616274669221894054008348850105555929825606209033879944773007085356080064518271769455194244162497999069290447385561471752281130323152832242941020944508499060645183937295556413788084010929754925212837218592334580447704820748201896505845436835352764757497220966427838667823239793994280068376952001337181068684789232896017477178807112394461097146086668283887228947547566247006121058625591760651012709381870025671954902852175796289232002215178008925796341227747175264828981752501937360005660639334618843235032625366021477171781613344139314520942142181662890406710383191698337096388136955753828148652361905284547806703773869048403261409511837333352480233366985096450359484534941275792086085599322081291532759499623830721095319669150558883615504303179024964551033902570700351198914367881004468788482466167633229487843591914228682854743592499678883767343402509791564789344759077551604524323120948047573335532417160383232220293853782226015156330740440706358082676107772333460054215582138425342838294291430312396973713873533260203260332233186880704994077544116529576203467787679907616834030698405767954624662476542414113743210649456369395947525785056169519495724763608344174323141409993628445398420254334296662394310918350750921686301183375541817801325423237479110104317892192080560122879742370305933158893211244207247563675191070920671844833815113573586278004064388267932934865898200761321423396989195925304739243217298632580450959961102816657530050935050602017742810749985985221657858858519450428778036743349620465972634175841038088688159717992423106513689869983974708663997935331694699645098183412874455688657127494790106531169544572315270276078601420695297141528102102285822834685093816862953316584543590237830909698874539502646228916234133014642117920466014563935604670893571086753328089042286875619854859071049477652787107614522434258601030623830550821463358766512484389117005272112097632513771256580320684124356488929069994473141976484613084164544820987386651002842775014618678243245730593884480429553548989482023192197894564527501783042680943441452328946519498945998258757025160623429148054344961257329825102615418332714842135462196938783765117175843506339883597667346000514759804654843709349371240582692674814545753005525716243476516061904361192963624315105563746580889668845561763138171797829415004065754313452920247885478465193435655416567933166036001525254520505906466946954027956633968784062162487733574758121771268992080155422747095591230021019333336786742134016258071650601010076150393746219932424457061378645257759820001712239744806969143427937398062444183019826353890385122355907833860158793969370952652609194080544477668261472435941116750614086058555115238938446856399065652031609950788037235205290338610559903939955244317035912064689651622772174589520264825535611052555024479389965627922176885019574942158011178871051172108122973147219984604017810838582521619031425323098496824256013480186373414152293165502184277383404599184392576784249581553909669090809147520656059609979199121268297150672150266835753653033662713224146127627962805018631871614736270189584756768466472097803118012829165637291398364240508071472955117428982328647550982970882707998923894841124557936475890212159904621848151337543288277338448301332663463903011898897664418664147390776324567439203752912848365293103968052602309074840771744296146072023257239242308914570250681708220233657037296235854972470543662170143671438198493537658208879130162063184603397859383682344055034886704812633137040477370249344241842941311549164470846106017696270114892845243883026317913016892449067636877997056496286980848014052986731333857599307020956781294360643369687690014484171247939471275787716998280271571818552545170861783135355944296123693293501256060852790802269933994092578351590733475933195785561976133389900330988951178159930701403804866085102542463436689191387868182816471180304880081308711351149647300297565410720256794763338309001784207302662629590087472399248699923775235987192280187349966906234955933999170841779910891897828432954155474827756534754555244296263502938876297663060631645311776757135449042313681640820047249055518054029679598507266227111308003761753627340889832595678277937204140786317932769359165855266645335280073210732351855737449512681245070356347870533128321485782229913754115108950128020586341131867717892288419768032020943638758799794231302261970502087711946349476927270246763225416278933197627202604017262653544478767539760673116556829954436271690982047172637216877224384630721856922375638901355826292844850800906880798828660970097154652733238959335721480521600733435807277835246867459634720286703466726842803218785449620559021106694844998522919915009147673223053685020479062390084581972057153775188225405940296979596133748052297049095658390442716439968503179010564548939030173501319645256580185797011401694028045460701508447585237608553788867909127871687152529591660020347613534673454861613212656829846519427353538043701570266740249769844840020758246934429991952874500033292528960919351027606049593132189686033173919162141136392875310875545932683814207265088329514295027260564413359596800939044455565997326389857358627209352964989497233559249997040567965566994723881012150007733214216934766643473548357506338301674288403635592871047234680230503015793294408161310771411710898442021122390848924611186044072525018609881333752555838517329068907926230501615712088693913323372108495591282154873229975156477097547497575037440881107495792056394384644013585534263753753962529123673643474055044328378512939416684991928196935720751492234021168964214251706081627182536675131068708038279949162561809964703582435863683126136398816636630560644953389613647403861025293853742569820997537009477773437751754625135617608588921567889331095156695018311654123671888782819264627067529493743141994220970039307977274694975076041591695268709098155874098360746265015115726490338964508155519769161252058609504029960598165854060310109040810695185942218795933457062622061827440409023514275027168916652498354730269477554354872187680325165209040682747975414653286180368265507472341236069264785961730755909782373065290623088631049335234886258540839622877230816744427671436597612105504427749968745003465456135237302047880531896189274947837218442505048685537668418381241926318551210022621074092688239342830555880410490137708181280986296254134771153861574896160944529986790646517193492718044369929772523675837837509831607427574002048558725699939209980085038531649185000590335557712747019992657909014330150741837772506129135228033367360523104994840772082050267786912990459360109360222604496871930068300855296995675572785823605776283851962576203108378202659677511500851114217415358156332336648188245573356411506765882591645725297883470440811973458624678140662448263231627117049396667939226722565609178267769630509733533445840204913610787937875135281608517452299111981406904734008674592673243907896338554855561470554243645932594051016244781695412338590172345601441570340387518707709320985460250925072674664827424241942599342175739981478237754888525227978046139678083569385102259344976564820864985106270086039906116340851809612807395077473936187948763044263903324168451777297483067968619081508609371698016604787282987614640284885309269372586995452554051157693571734963707572637506555362536020442789171863147087442722698766741348731680434139294731969068900624788262368912689115137386343383190176149925267724665124475155087666517338043104595279887593908897415245373496477677020252859442238228416377834649153478030466391370436033791705169877706232539297151030560306109714210488115476727135798745017451494021403432103024006892683426526168707847283480364556081903829606562112551398634242440931578414909133943054570932347750429327308561851838700425442321544315015287964773071176552564793217030049366746855160131853414699967024403786132275834327329430987547256668651129889881848211677159097548519591171649107481713852272592819609578790621237476752233671247332404161984599300237324892743923903997716355126583527914283598985542651309184458452500262996282916396450518734396845615302685490200648978448768518723510956056655242747913731386424921771265117212424924576852769489438753468255845287233547306691167810537498898900646849775375007273836137677121539229952262805550738193533844166770712323897033433744407181972009827844353854162036909447157734685105792936404061255549897458029284886017621548831027012615221777813426610875281652870364197248167110948840076477805507453645409152091491992379487815336266771805288846020466835584766357951979025204218403141909525640247159128980602248393452267740746256147954538121111524141270306334250009849438101463213256347955685904740480148730912061026445563624945421141681102270467152849184016899117035350765717140454245308401128504419507504394814015028923281878096739804327124796258582681397284542824022559998603846953280411320024835412246542288963768758586462845520394655728339790083723473624586534952801044471712126766202875526941604060077186777070187987221359974873875259074593047302023083936664406766637561120380816038754766592588072593391144494330554046271221999267707123804855558928571967621144664255866201939525096277637322528131321923353259633886724651504578536469235204422674533827341850972364362818611101656613668521125538432278074065256274055641288818202812704259172494519144229065033957927539679494041304142529953788034771288645291326670412043088259131259593427410809657948237148650352615045146567908436415001088785198669581288178881624118222181897116159942817928854757076751507448075792468726140262833360139704997090545157335455725922020389409590952721830340883415725275073721513198808977202319525608632784574924024794965714677409111488979954520864106728942064478642510247139931417984359729515130228472761741111348119338792707587429387288069228557802170379596607316260478319554997205447459282767376755965160382997800471393099567182028119401571198367794304631253244319908311977238744401764585723829146095327866165455645649163525136178513464585195488492509201102783398040616096965966345499996258513230162041055272327457684937824994711482139954259089322446503549512858004313259263202909511783901673870367983697659911957577613714173954094118942327458896812293847319813447033596341944379686147248822020407837258517633577995611047961520990496683245874908164852806955385163206634792862224489339629301969835435243936164415645815321552881651222217414221656347446837587664172459680118982826719053143046150050225049067019990352895507424998800109417268964677791403083734761520205889935201692146541200466891080259231145786925815725111710944881336023963470980269693521734570035079519087353183734436187056595923857206825371510961297473789039749441021852578053610263287150548521025834455979909473784220636020979880826421234415212468524234579498448360257430467400600966085835440599429540880886759223846519896012739661103781972089419209952352198246723512701634197761187311517430062745775974507114140259469724855059881221016195555730706238337962802360594662537145920817762451378161027842431600471817228570499767187424436739111043686049492538935776626001222260956595018421041191434488758122142478033883660352228280784239390125270498499955258940300972666565632273374520773983209094318238087801638649301307938576191617008874803513158972761263635174482729466645771828284521408844321330646562040755776368602252074134653513975509119703806351470280419157636239416444772559562449201247008347969473890561509145938934871053149182093074214681843708366531635357549149201565945434595566208221402260619844143892666674847870153328594280579971264564329208864310208448951773167178767978153283636054900658430304276962925177996848538142742638869142390645551989841160540541269163761866399526151088260963355710718962793261680610022347464346743294743304544375613721446729008848947412633289054863093677405823957487632750636150236108241632065594386606454798814646700928809121196731372275754394072070754854391906810542706797620138911915426618032456030746829108385486834979510654028042171341958639804118534488638869474927082771024193232501149921358025022606119699766643360923901178970904600350859594704649626530647745291120978380659853740905406455097993201652929639091999852141360403890049061703435723628647392761155309433448910072191281279271417749705023895802701411741548863737020570279782454688216057247218633695603836751126404744129523190108794744663932453624470034605056500960758451037550251948318992867419985682698118303721398407617998664839743799312373506723317701821148201917521149370454455723184085998037273212065321819370724756408145368921835104749319923069693202127506136549926367510148935778727706564043314367568558257534392405632217521164750661012430051266223947311575648557677307747055982649257791035704211262703702420688856790861704438184704006297824218174623085560353428141316532794113617110174703220962778431158242003528850635762219622076779085675967439835246820518755833439457212287913523932993626419798721799006054230856587295697389411647715677634028506553889942166448587211592086857333315972984381109444417239049670813142946936658613855361677102981067620848681264101148020541007841457399238168068467526162662441782431858905087633971917030145574919301199937841211138950921406404632922429300924134385236600770348064973019376144639972245400604797490779790538582449359115028866683085698132309878323368159434131034456069914610892440070282638663282487357851314433979496796391923112544920926820697616336267158554253602560452779397391677965117860445804536187216330820564519505934148174714918387931243173762023596248001938703845290379782163528513847366900861375957260492277206119731649339273664933940333386734706950451390081901439000252016494594083140731047924361414043796696339691248960972403343623039275417794318100263803477170596758648463691418460909602990107008768329656998160586100155218704976204998507617376664055125513979154614943017396112422776447366068364657212149358313881578820254928316184085222827964307327494095266707339280290401757910647813968350821638355415635345917470330823428155824610595380915763460766968839066360440634472506443515136695701083531410282765758332208766959334682850741165846070289148374881063994615837269920188120823637428460901462007000044609223025005356772432712997965863453429162028809539329885948833311846176359551763490779648565317484350723262977100409502288414547447304545218819324699037290288147397497940458198575985424596867701771486541128788612739458504169577626936501148838825920998187400541907789976355968958017147053103747614302750080806866779469617714400921737479427857391379994833161904502278571433149402579715508825135895303257135027045688934486502936798509759924107298985094710159981562421612166551687716514136122263891353508449170965839477558253541147809760201121962631981497184456195322635931731259615423172806280492658169477233018817142979929211130148242299341117289747891661545098040026592260790325042016393216332417804668101402669403668621059177663553975761318154333057607959965696210709710745324250385379586093333262995721002152497078594359226308751849483973353400372134909827779003150639675789066231392669194673091142650254710446282443574370562193787996894705664710958201747482229672594914754087341451437591974384418331433832078401451115127311987035399155671739332784159747547952737731792445598332629096083946460030160777842808106694163532410961167770132326073599898318735625728850614868880169903812303165724724141809032802894004589586581447138799815749443159635171281342713382315968343192465943790012573555792799427391795870088002682326914961085951286558189679066057875290864874598446786523503754378893422042919459132641707201748349027737317986122388570311226903794830468316619834414649987351320363724629472587617572199700345708676751941692496921868781969323307848023806303331364620895813395102441795035669836133163093529305299520120452007238420269736671253373027099815800998567755378874662720278336410715054510986718787494748742552738507533447280412279418185063978566553262693135520297197038387719171987969168739716107081094613062426027138107231770917939769894325371274435696956982124363113226013381607002971881059748102609197277241676538085962876036537830980640372968406115282315953425567088951773897926933175490932509371470534778784234047298394980393028447394145878649968299003665362215782936946271267812889712417819910340446814339855305831939540109289657586052104597922461511882374699949807310079109690888707284526729161479300545784643844173596344315863517861004059879092978498079532362664637810810461341237590785731571779629694843834907462806463774567833208593340511613191903041120827704813341998638066496139596915627841570651800388034720952366287873045203203806552782597155009324898114194414425557085478952462765461590105532973124788290883841048038830858591266766209657772073386613238813210051832307838085645397050539990053114986880431699657562721446303310341320499309082066619092754247929206018186405202829452936127633421737822661401017815565956776387792769691656996029313322572453071188815394282062858704408366595074087074608281432524125442936954362959637478350950915795362210448713410115520453100755220807280694033613857558933887392659420713971087314616568148412092162595018628884883251916752782492801440680377009315156354554910193201765746244406394540750001752556570530161728976914425032213209629323907495694409324917465829896073603576865045891762911229413801716484373356810919879287103802689904825303673360188520986216200725003240331626629301775197110676542769247375069625073569448985296401470829624053820110537540140366288510526547846375131036607015308103087777868120337201763880362326715215941435743761876135310301517672265938883778093746900905900066538598191607559005577701676312925887779938513920317694895375430776702523530546599576660729035492263256064489885531369853557245163167381000422841746646084110175946727245535404863474814656733470793298869170867994638677079914132284851475517537055134220933871990471008361715022557441853396810259128722524085952494267308554824083715542658123895548024273929457428777863808332195206245336894144130991352209134750580542754510544779700167441541833683192800390148315489547319739023338383872915926187161705927254918728834197730574804753299377581973704508701184350666060012379650309145294824643382687023337786049754497210341884110801704546674153929022633631709525786626956247862320113825049867914630541523111880490757487872485206905873108794951391587426153268405293182660151163940528424867123807514181240896170500738276908082737077473183242384569497891696443017773200123415464303777617955340471834589405835461381809421036316245081702337433484133419008555807012789242620099157751355295821932727642582052620351955160971042883724226158417580924320417953994912976902651461676656412773852582623346388722546849932411831188413351093622912548049286473784660359829194349057647139712961959723133978267032195638035191604051402211914220511432263540884716388629239965610431869345728068295673271829309520018613134309944909062135459453064969702530026482133281813288646128610104309771729312327758922635724301110655221580462424100256900715792540865289552503820817939268265135491106293432140117289400182185795360183487646384780575037164923699183082400020615877839630583482236109654096843576004551898083195687630499386156826201574345642391841263812516050141340613988949546419204488787902032966725363694827984964798598065006932171019785008662940603587978397935749849318463524909764653106580198213643993900816083005299092871304428339690423675152612642797042066136657416457380809215081454348800040314649859335697288722131501064753159462924435674596115940077455512508876757732361903971530507330871990545615780858512668049842816224231518554601717641863700639235322049947049209858822909080329232648268012699610931614088800586126753093223651979416326696077200301537611554532649024345691002682066725410305328489223849328530121508260425784277778770168104431187737059765657076995771019551908932593105199726493560946316334092900014740442327929353491833946247848750881239752821908978001163490397642196651091537515466986256322246337058760311753377681524007820511029789787015200972352572312699056279874098879654994535034004659957572778180578272216206636369892659867539942887995978961240802460642721668238390254489743419126932289254664306494497724480482214376036961944324193755481212640726916126973609118617811916551883087869560433831405438475786653780576107068705354590007409290423669458033677009118971121646955313781997638011663294012151657101278716544972460274968053076056763900683014514673864919420057283163710096293021285875536237058608711590398343275159595975234113659136271383756903056138520895488181482203118391260723523727867174400850235975368224135738410370059577620449481311337516868513197558409614550499819030721051273491146626431996135545073708822093394837050871744157938814286596709380949257339383022856635829987048424307759555464827371325620503061449820609360903929406077910180498215931779759173759307758364635860402453278133896575258649001248736639962959335050042660311130885050020912429086573643202246982694608299124077630852297064130955950798785247042175714196221237033952279719514724934476955369591524326566476838261523906449079153102185144216823434644007346974388409874514166052263505737567954956749962071460010318566309987323874304900156785857631724413326615124801928041632415907753192134538713931060648952999197157457747885472281318515226374094973493189305414178286894808750610757242849120421495486785148544011063926637853079336141635861631424445849637496451233118114498094504035277403097362318795991203419229070735717444054187933735883216403204025199839682061510410133015837849832108325944387677794208922575900610523391118617669884144973332658497488083079919273275445392644344769709340528825754373195648925784086322642492558409579778582761784115133837019604353997693389539806949547351149857369782719086397535791097013074974253913995513070248820158840942245398095589948517523286435501013716521905594874920023171515289788514619668775802538697698058812256328025151783733370669048350021642440849326814282367778921702939069932156022860806204521765443757466032182041395148569567279835968692956048309628155580942946301088394586282541790445406987863527889973952452623189654388804383958909853083490596396522103793776198387154945100173107451801615187715052546693025984700545732227520659087103473027554632108922226532613865502060982730848991200336127381614331034397556698675496810306775911138176070204907503646564679505867711047631849360978799754468052330768329601066950194829440163804657166103827182662882752899747222516555541216355604670714174480687478955479613706633053752869615379031040771075632768224783729397130497649790577645692978365460310984463930984980911232582574771990420275949000421697691900036015447523820449889005594712852826216395610314195064190701007676746781945317017958153102761413881226676383951845833957646278656445186087777674069254116864346901305112992939635454233505404536411364808499073372420004265303609510590101206079357389412984508471612623448883133895031658285378489354159000802608027468874626187105081285624003572251385109434033647025710337165813457771244716102595308378681563531050526266675381732335159017669082729413602684723588462990195040497307943068072184063037032752299775549943467958142268649398731758304069173748009827221601029356920336499067578804938240055561486183810416599433422401614440273288994691449568811961429875973394736829710109237662398268000989933804807035897014316154795723760496970231249222118549412295630613424456609617844524962507870074289399054030902995970567678030188114418595575107667214745029726531897822036510421979708821738012677858888591275054601340970221990106207579471755887298012267580040480381068191541236430219418424479329281558922702649319639397102479552866774270267496286323570549712922096477488415809457159215890180832492648690960433819523654252380854928034222222896653025752889502493432581091196129300468924761797042610633381420987096799947619342458184683265335473627323488929809278473905102084570569072913510488335458349338432231033567451936313624294374990946728634428351840920216664784960052909108784177206513363928342972560655803820675228328536420425993595059126136440352310168036769822052267110647987204560931766460742031275344627330436972136254449863640635262976511270801451748793395181525668821450627817014772216023729762613505665641177498008082882766391721818798380225513135746445228990723949865317360985988717585362921546127693589480380747690123809304645034836693678194101590884602609623984889327640988247036705447863715040823451381005951444440772893068206997150671736590243819423428590089974794922847799467186704022220671745595041260511564235196358233722842046936757179949081917415537314956711399806804600003979493624441298927976846186498894696428079654854702167933914318246691228901217439600079841256112915445186187711697998939783680371106938149222827007888729232665289851947541340642596887041836666346285821660842948602764791092434229335479341109322321038306362016650296694907267960865714978417797059790327551932505390388332268681191713791406565416779518281813814375233748272392923630903622069277976784633345347874212425817197141595020762304709392640366750092775324591684004454051038585942600091300842868160208560797860223928672619445572623766217052870371119818138652711082311322908918508465002344597594303789368268390132089763291051351031063089818010511460390051933558315006523345744241928385966655254914965152208171013194840863134700382357943045352672455955473858469605387303352184769899143900966159929885915960976562523155523281223809928067290634327323110267027828981980391759300833100160871815277573368163936820398759032808986296994692560997699450436490827003938009789334628799033181455037773452635058058529311215781171573903311071632500126165526811438238031528914276177333209946203524934567461430327844523502867146267271649287767202806946052951810444734720965336325609595829169222027648390358443443961391548718673885891091017615754532358578112826560253134807952508010811079286665392244906796654242749846212535358205321355711582143392627669466199702877374734144939807962465469390104863577628387594559248691404623866292261766505383232471504473315611077284649208274801479245655107148870449246806416122143339165005127179307161864151500450824887003059482745968309973808916497696933516825474422236833891339511130008590656323116043496905880447478793100584049300722533520133005530404998198738208968151747573043916973940547173934981285513516913681358405765397282288644648986313665771619416592331567704518840004460314901709061407936305152414247884591968478136838734602637531333163120049351198206837410936802670804412503595849894516377287654896226838807725305055311689748161446066282445486283225809111734034078402634394660881412708553801509060120632646208798419682485616224408490383036322900366380993173932874088301279047838526342736951399539025144985640299938787974120475869731801323977464276588154833221115763456955687768209320420108034161409415998477756913325885364419251237957234522852517480942021563389607253391021349972058510397614075608447148523918502883794803232632442166501728470469892638266749466040974518240093404083510159359402141270515022078431407502872370496489734267433757528303168198391678231221575718297677935710750789315089267891786657042346688843357751155851423253301763394429578716939727147120418309688895962149488323174871232879494456389355859593967245656731962745068351224026722721409900698333441587701869438631184091272114567419738946505764016298374354757984190996906448443277365286265957756931930880511857234960709368563601142791595100865991491146955619107565462206225517308824599423717556401588252126903351583008712782625686690925222927276773295337415224798061469382908544378613865927702453493388667897809705563198003843978134911536414004235153335797750236805848622663862791803178501251715661009770783900425751428307760830865823910168939868475062723799052654154469930896020905791856481449664973623750032295744018243901602762262904466437749055609475138740467727945962677786544150807868725621477376654737989196984500752476372971824691860074374152793502074161623932591249041595812688235165850630353697883128681135538710421224943626063833429040797105214607994792552142332853874402346337120438692321218097984915532586772284630255386501149882822319718544735925432929968273408266732177633112719396671103725444353754541733192822777623027826932553504755073688519230240540941364561463260978380663234976228782545096146235646495945827859542173493318078541939115241424051371856670171102950474529247573504605368393615685362378671834913976404927108478751191038295664296973926886964848425486947489077023048525131402138752594852182770614984231483098434107246337229720930301559881007013247185697083886789548262889271719155399228166241011445571703196901318243706547495819137829167630314964276078000472945637770467063621996609603410213286863339549381445627160857420113029197401907366167914667128897710228567765272375991054623106395776713950080585225176017279117766442432782148534010881354216767303661908057772344400916693568907830843461645190357096972526460450663049558918840475338120227155399980398925652963579353584597599726041939109328194625831005462335922164313640915396032810341186513938935073083459278142292130509425303260812483854689540121185908744801264559615335448786054991683823075329378743060018147035844760727148650242271396973007020792142063975570868653508028180759912890506486170336693243734903470874355861372981209901307202809096454801127054477361195250778973241999170188012390434043198064091678156140720347367405838725595916035112479101188289810302456162263929508705779343434853959189792837470911469590503730041151776716623802278702552433710657136733809229973593701398583137604607808368178502118647845129835130334510479843700258741065871316242607577544517083862449979240286801797190580115871038703172963409261954187932964562993984551987099665723071375601271566031521592819394604897618224129543502405197551686794079291239568807626895092564087077835745291726553162371249483867309302294849016699844853965550703986799188902876060404123524090177236850065843776294533727743263953895697469352275542621644584468425950255185805183240997031097221922202391676217835456650118521061079106661216549252429776144031932311761590852847755466873893046576995150496441777483897286778217064241796439433134740940256764689020791322458737917105855645650115212692217671270994231359244322205039575600002461851020367859580792393395099831257361760372657366488378808460113040274093822690315208092964379233607945689176652310221681019214157072469259563772526978927075105276975402261103606633704241355181988787183453501483973291175637253878225468456497516967221010060522476559660006094339429290330722980071535240990035993628137422667364298726401744631626543907432832782437925942595804190174285358364839277070557657136044216045328884472334429642294035547571499774051024189628779050780224742430085099826979802225678880892015192345117791644598528467335908396623037954185196821727850386626636343097104152017181960965921426463214150899229517286239335867264665080986327755060287871627993523734861860426378995381559786730200829714045988171980724978107143662177125050542042566972141851376206702304054607161061460482484623667881825227814672611628571704286971245531326272967506413221997009957098196898986305343771715257844773530716581046021600380788039141601346598185980427778730953771735145273108537901151683413297321903863464962200708572498530642380228167766454039534892910599757298088268112902642627446571890487857830943133703650026348361916985788957828510164857222388134305206064639526315100118456238406629561287794477661418458418109999790395233945492462992494744333559159071669984735092688394728436916681002551338930488000396109929589041645362040130162557279777337717800886273511822774904938032379765475451838398303820094233676137335350828501723618959616782732749792644308252188658628545078634190168091726352741493371101994172138108516909972538358860260131004890814797579200173320304488759690002504304139956513429284251042710829342759758760637721941135112513217225368482257697166048872994181592087284356066677867025211648186936512912677835407697386209162533191776594718640413686333353191058671077033742188785597693604151767639289258041348199482231400567957731318520705517781098337879280614293937478794174913808031929129012160418338957421366831706103369178099424823076303420780103356631017090504387909992602698189133551867169486299693452598031845407650668560219664518927720799616312961273413773619294077550913360297328453382445643812413434674910120845682990991469842224963680592266892546449753727466221765089560007447830257507729122451704407990074589860919080074597369366153277177823236130234518217355882217429997517655137626793561838131354329176087705018828922106642549465627663445239545675984732886727556278096907145442252855450411230209417812595432106002561064633823662981834932693928230287726719026945499462652800481003435236119377330730697947113959953960790340744942812229541450820200103626783642392045052117844559033974277845832755795505098916763939793589506995261764090292129297184927077065573937263399131274975699359654169200812954152282853178650902784435523668304538982286723109789361182811272016296670010243204237352625801002123244260019405444816208592387153847994493392106153601518021407853595976272693696373958281988761076027118223478892374120617967097482430077693373509449895720198637152190701109267165580587929723444708796640528408708646018242698343264938046058000239025755462485857482151259675655524907328578509006270215199270956072911040117385698841824788040176544875345962978803272796200319336426158766850819975574583122435404833120282592359453610114364401765755884509997230201893452491381512087882213208247418610606849393801402445990779537232234369538155576450478448733731546188232383003489633515908898769145147793471570778131896487020515645783569341975161012522431971730449497085091067357397294659089830533669942521026354043399087870227028743109789653670202111942333924120635507888561238900518473391370932913450203892095961201495660982868448251903948491884996362694632277492553885094930439760174722622079335146970481091584745340172022593689470418633338502236610115280464458395937670041464566367925837129171047032729643730454195127527235076472078797113086199597364885462534301941013851908172789271377818429334276603293910654169642480286185115896875524186430069058168570880352398414421686575556002184516425957974057469551763659747818369541614405125839694151622557620199572602888753527608742228916264234137099770906157894512376183235575948251167939754591986169047034584913835175087396251791726710132139861133049353125317963609235932280466811396463627438531758440148277757810490465667392491760098792188776345247242073133487645920162175727674773181035614402946397321806096732428948318421500880273450689236756025497497986595292172077742687795540636077019117881517932845624459893530200598995231417724341820332966410629723225358507505894377800983848589138165585149659023205756846452514178374693224159149248267344199979910103994505068058016612725354751057120217035784035876837829829425449630033568473887288760668539429406610408390886979018895815443881362729629504313943058768880624416387794713110866894251317326539488046741027022822305533737817677436939043095511497286133990925111415669343234133333451750800866311372058946781796629476409651866694326191741351291851504464394437130247955930967265995344487261890743526462913453444095330698058332406291518301586301554010607809399617301995257131006400897114484940635104221592378235933095843403533508806729704419702607352622616197014323535700002648128271552674273810288223661747436592145097378241395517339228590023819327683271429750759082233537705970884816904538527076158831742690767794308476895048125846523797833166123356925549434403577880035011055419449084580593887176994637314197596450084562286887019891845959258469108239651902490716334518781627284471514055423658179094537766740964416915878354167106961661718687113989343206345667466545152541603092513771612482321753513202432053746466423004797006499045288780059169207313236551791484827507080113055810684347691655587529884277363788159496388123217360783849074198910873433913149441898776064634944361515927506212240358770214863506768474416106618981955511893625731536397320371097067812945088488816209591338872392601206855122280933520834364889614038093502296512273605852360511764571057827669574271680876533041276856756040618944943565604775797617076692091835460107868325266176249022150599819261303470391947374765497936672780155363585198770368854404413439251860947848104483126425937403915397045568826187133508229496712859610479390172766099566771783352541473560227634990964162924701920032924568590592282140568064843873814473083926140222336299824365924104848859866517000534510017540889589002796763750639724154098602813053602749752296477341964134307906543444257645959960758603620432395707811724023274152152268019832022719072134621317521434088165650028312300505810409970223176444892466538090776591002387923318035935124141719215850884136463419294805240874448666467541693940696807709244456464381436801979848532685004371422707817541803752962796630123553200109809748128293548932952793447647984740380418389877048086511958506044345191943093675282470551477280494567352981731643640256421007865965631214151552405146552557747306356315432432045805893185349822134274813798495337622368043507127716559902146912930805376482575504391489417018602376642368972324257227849543489008428755778111390923066012585850890676491803626848507474759481987884963065839413876738569177532117096941778872119796345413530858790350043272715040188607304980868251049844573794377101915503626789295297159298817266806745166720774379548504859243313676567146378415925941734374108436845337649773557828377503490057808614623896816395356362599978396564189347465206580305728700068699467964126653445884435208867401299270356716009489020924829728985716990523314785937840197172604800920763485875176053579940218395652409878576838380006973520568140129967335868857159943531842365849796147078452247245977154110781576604081693849349565652236099798014015818348038312998236070533640030019856124508211508834347201416622315918765742792154210779421961277779235329102850914430092183384816241627833588469072477597592587528575497283477696697466540299118788942450634449338161793327404072084272170143436087848100122543054172524388033316659614154619033621034110063931583854279579845299337013324703219411221847029803023712900406556599479572401033286070506808551741657044363373208897542277806471560320653157616024810179187341669323902720223769648620884021497358102338307074055576726499622043350916596536814225599985311902154608373348569147638861099848252201572313675138448973869114131645641335902708754374003906943152459612901163287666837111968827909016972534861014903772517331628733332989105481284273466288762146133562504004496869652935025465315667820921006127410240771948004216499443043967329269797005973981744736671474328273769626668173065831190640681952961962335117438903369498862377717431641749050809243501637120590215198023072621374360895028278247856424018503723252546536199916692450499186330202886177437028155974351572802109862107063407448019447469423470149510764333598036419819196505189136065101983399118337438779989830006712241771472260668683179840772532510028474520964739771527273482146528595933847409742128951799816032682593134474060862034078472693056822185592517563242967591581745605403845984769886260114002555656747858608162200284930009417423507881761935706683442226269766090574206726474499061670590180290521169616101283383913963045480928423474811641065288041782552298878929715645112578505320469870790835379111857542966699311583026959292203831321839922133604159681924205757866564704698449429264728603420933052203295868242141536139589505837396921652158161390851457403220383012651869928192781807293345849928241573505683612865748058003541874946613455013773958232141632655765450862417281562495301205940589027813992370774396904236664436311597915807405425670612575601153142681278797961255404606334969880127977130702855019317970928334570883128791449047252374611223929775080856250377052450591989372349335535348834723572356792307293024654041379220719479507297166615602755876064466292724329205771082700817196430815340420391855987476782378804543154863080600469544629108557589999117120912059700767169563663670410055331140053340603426950432393333363571117826232963961189828155667193055613252367803330153203343377924030232855288409825856479827034831177087734405726125302256781341410497602523511971797022004370347111401266399539388223224559032874353206736949628234312786872914117159004381063666397183629548667096882049820821404185360429611515016454025892280870808254231522347081557990124466314519359702733245373546734867924973746106525958503120622952376478669807707685811356032959696189830896502399827221734849230731135050484507833704788080115152871298926362003358062786875564828675489882127597752622310270103376553195475817308708602003089689922187942747218516150862057494739543824204948203275459515872860715342250635846320933597141256071476188983892119222002947476947758027012180201555279500141003124033532633005219921398124543728575982169405037300094708784655731889076483589709811766112817084362903363102632555045069669362491070874598117010787986570439723661095215042557193881413713072471098045888831941980642152691828199385113974720825667087581321321621163867213603124703229477083303317729047214704566915729375167578352747915570092428979195957200707847433663492614791593352898206438599040185193287418193845440777993018095919177391702701132419929038681469861301861019558925439288659570888158868217070606182011565073681281665898859710114928556325764937441384050528612355198851412150265018581723555901293253564416488582177049563335406238630256015484434043360540747578469165510454101524322322144597973649302051198708172990470636486131468734538992440361912493082906680413983286525663448968406786959785297899071952954955239685806729156384120475450745753565125907672819392816260833618417323851649377262530165144066613576265590071272891678870473644039811869209388692191397867255577853407513002585308838200710828536856378821876883264075797784786970123254423884915887746051185403078852009953899927075310722306294263356599861375695902658767524576374488676930248771204654309097436846451637083028263102302643144091265564133632846335036204668327006143421507367650203643693153950147800093397044246101577711303296451081503854871980219593789882306155492971392566100842973691024796550224864529442397408207670637855593811740625676902902892501273269152735601231203017643867611139632305889744366703021145383054833122146879073763916206188974468991126253848876871067716479470279612625002809270086058610789333767283347694070080036439256105860801005917575797412610076933661613919961284423430325993289688780979224213445522972802650555397392134325660435073430631047610310130438511705270687770929511373740968381349178509149604650978144146000900429667494279854110782925433200849406955246993608165136190619429852072559372875271046653389224007286279229117807572005244898770246026484055813277436173802511993989630356514328954291923911022871447845038557414641333049211288627588461438753943890892735813133152680742309855830721590778741441295509181771050944782215570932286097266744915014500865672911285465694649436457837222619411002454605428975018282243477784925620827019643841591833153471051986142695827064535563670631023149647622379116001667951469039283701667038398349001267816018567890161226874368272730735201015974127722798701888972801818440853518211482936158553306428985347604058517832410926650267739447370606500241812461771730978453653609107225201729513398961709736226254359348707211733153438213902767680403056463489466469753719136835441409500490729685690332096434778933240431693627807206424165451678853794817521268085387854557436450805363299661848738087873908858876098345313609711107149396945038733495194701669852444118242427288630151069887669846083821348325577729036271365923163165433119371166834208534403772213846658503625850690120679242323207978212710233780903575394222609183478011552147621293377048216608162249030593316790194928479159602923399639957426228278198805712241634541562506516834322253019098747955654302063045798197041072399088559563804649057658373437186502337750011945888880120726380748707459827065695898275666836142910603764214928375874260930285306522266990711997405104505459146619561567963252941263371691406451417466984946118063084386356163792516618971132199598844630523946790851654706806198493918924359339019909437356097685063207114092931955575419247958533621855399883022610838756706333373075890777294137689122807542546674824642710874858049124617482147713108086882103403748034296798887886732757897137085339807286643255564055694429871090145572305110922187046785568308096928654808451559590971182304754204535637751798911979627917763348362886168741155452005414550946783431367341439234432476834692864305663077675580035702485826243398545143429246101980031901126313735251928551242547023253283750930119811299024747422636252508472931964483084089864417096765929019720813473647485319493863407857530697628903652122389886011646157891795999757846752196654899006295903532135897602509894917549354919237619859601837688821404762515637049559969700715421550058192609571696939954658618392387509792766936162929025727194216968920871176180567972500263030744647158943758604938817871198999156924856961206577530268098377404298263247288233010416063782208362763195982378812502552460499972218232968029906431854796805349116688273004372170364053548508906290015756922611735714812614050101883543646938254180642236721637384109369901715200209586268422415651057339977537062351342906728475590994972427092830599956196775985436200121606063662234155619652976141270001509622730730110082109902541384207233970646775676504246361178230519511482779523116324780993538166876573689196618578547881454712574099251570218275252077290295612233176464262320083344845914332430705236394194912508855328380672022319881595820064396977271974030149752155852905533007264253842633176389084582056861367178211240425387666415822278752633594935039950625331446081833790155255020261525569280329779988076558112028981491718671689753869957438852876515414618462770449852072158067982417865502901627927018090193585514105906216628746710514176279717943483448483124996276800485290017125486004176130988179164768902518503148048888025126933145001836223622853636632774274391298165413705745683505996835137061254608477420042975116162167131604924831705151563943329564948712151737472911331400247883103726329774642536804502629380407217395650284260016911040722687519813123045175320552250253595113516675030154261244955526159185878102128236610816547744289145232414051266599607238046137266820736456553337975484734747834103439053550973416679774580717918197182475099250358367489486012277698019318144032930651604230060634550132795677569195726781725085311030740683832479287171556744005137472260713236655974701029970219190693057842151722822784661491122176355928746882588725936279873500418189440546582656746544132055945774405091958058859530830340809798403614966209255834440793484723984005776542442200784850648728259858613600832179091899339859269779116301338773997057640709316130587169992492601242639531553284857202789818096022741692995097712766802750698243144220948318083299608268618230479582620562226033085781036121485342657846812756893530677407119254794611584359710932063964749418805249939803600835352797146133202781545645077567287308530776141260851881074439892563635074979806223622409119444220616156155952630552342419800531258300431378491298149709983837155843086167791208021754273796903223417962042214980113060668931609960880097689755308860353452970494537330828788405745568588686487630617974893229204284142778307767351999340401525373446753560520459966906102290932772921178351136582574939806339191407651174754426104525140885864609516720256749013065706844000776538444774997265790177046587730667514594811598568066783797061092744507430683907376530857985928145545881756653347965326787299325563694188442168486204135858313722855474867269153133184254821927268618540990899750551416728111182894076540595368743395567818162354250730259854013354494831715444714652355598233412917957601863223546448522563054015191857727123651469399763216426205478733314141211908116382493301464842513864549696841822740218171319805274861411583669194637462117903596273310368865231676237507339651689805239266215179167883946204171620937011272121503724926387203354623125462262667181622477547940430926138472801148821087001533758582704154055493016181132155140979738501438933404832762989729370814640119249408679202790435608805097111721976444663180020547315896097698021084553117530217612690243038986348078974596359738873951443695888921679723613299225987187408315536371385800611604356234587987432926357479068560213676259950707101611705540736505876420304409062296514966644735517070767651440562769215259504659633548691935364846045687914226091093813022176228446955932426456361846644331828685964136605474741679887552201747897007909115043344635079677407016167430605457170237487476153700889190881974194803256732283100928794530049710357124594199175983004855080627948488534271144031734608810912312987779463644675690735695097134982106469925371299651384254384424378316339177528097214924341196000568626732569020024095088793668426469435018423952150320024558709432330169902603621899033175534740357979860421546870364148038917158486805706818590037302340422350896450984219114231489972683341984884811063269059297670486622741987860986612709101722704746897273669053657077767883876007633513137110926661001938243823913050684533208025777609813619736116895309539025214179846288197239684617564441784651429818203907103096981878316414864432202321963456800223266825803969185562592620440325886143993152786882381644253571324044932755291957521547664365039838790944755549544488258669217544905010964154837273967209438633222621990758077014549491389845948588050349324083873846867154743861793553591338837761928375177784235469446976537044527448278184958984000200089625191728134637529559058861851954906005172882986795015347160679832989621139931616247924008486845179062960965095845024969350123842017134226756385667560805846194490714229320711670242315501799198575792936330175720589759392905403074192102578412411968223732154368752731925478427862505256207286582173914776520456519853435471635986402927231932859688896670303981001542540872704059853951255961761396988112950393637664107812753517917603055060370416535601046100251976522025758375839516283386194182509453152804301114473833990640052203344077498402200855435249578541467546141073805657513497200245985224189976501921765808255694127376764003612250638753073883538638827995780014452954647322751435389436356229103900414637074151661772770326829642946786461245292796961043473418418171890877803521198915498988465839326682055385758709699255925333723595341520466633749717639864867267037730027082458566588712923505656264483743834292220284908217209143294552165768824450096632516322233352365772476157467300029899892168325901183610165551951761402421761242763357441678870476230979606956729132766966475189453545341998472741248200878410593211534157519080445842382767033822608432324386113393766225447413680467201150443668934574662288359717876057053707366475169232072720839707011231502035868979201455187869454346606084235731476834620488335174649843933879696767132934621564930438544772152902827226086695269852084244872275359827016438200904289666654875870836709694226092642128281968498773098886789655885041280353999573014222731683960816691250498945895498963343636515154976085934663203839887133042696958484103938816131644820726093639901489691801051462640530245496381820057831888194839173116195270022365633453228364293588527473185736723432516521380054527018751645743574004765875905580435987274768992720827377356040003273721672336501432933709679023382734084590054579909383419839212350396688075526215148398367381926235216662308864142524635173250341765360401157391257056668140248420716492742142239193702614227353224145536758317504811794541446640071513695343241771599991841146217528051441948044701691767526987295908726062912402009162354672535339881432661318521708396926829669228317245649136246177360779695975414416711483766483738999322662672955181707352095497001086469509314784407158721696584919480033429721850335794093642605403867146686810749735169088042051565995683646694458536837184888436262644372933436974869056369574470410070834072451513894447535969726432606632066735539956610564034839300234020168583459518083779273957031101593492339622154698065428287102381546038953509191009296283490377172859999629983023385923747102687414454391968907289350501683249888436738042405626000387802184738300450531277785461636921866369238145428939474304600692272089989297957621409882060435386251812648645474314109307652701143659795784318829868193703789071902026082234465305206237659165417233632855475006119554384175976136187168068211375243650845319873111309050484805661253472860394277875196582788733512407486784865239520099279401252377098627388577406558907270642082821642970926275317971103501591656761067158185779935099813897135973616319613874742206581355914613869659192255475024048967880382080589215131221664410914172567030806462800324732949096370145226548564378423238407220699913532442126743141822509388537179526283261911556705289438665459563645462734601940114931122873824888136107886964202888442374478762399545089559057704867031332002831444974642324914262874677557095700186174427036892876340494714706983058400792220648439005431625773844116499195458511700411416964207491515034043664721261369021871948537207558168893293328636823003653061290927874212039948705072859687722983716732685290487438271911208399495689891065789043851314813346901336352700502913506147089817953669630438153584760579343058354248687644283270883927347046739704478805447689053337108095958570490018296573650669578178144934948487116072685576783317768647102844517132870346351411380431154072338225701071681360187542996630811269651661519818008925348407801574164688147905865751983092231993666649141361595485508889171047307719389891235141409335511340467546895120532852595670785260410646587200018690478768201793690214019489533345400988749089641802242353357864377870111907420978556842267414935130481919097030350048605296242598219223067697713399453927493125170092468147133925266456945734896359292868878466224222531863660936430197544259033393442810144772957900170316091345226166421112989393790687370845409378640345248826845190654985799036435123875377763726126785427848850087029997323256798465177408710548239993766648279450884460182407769050427455832312805242175505553229696066272625292493412604206638514898275665947894743868680108750298501264259259693105819718532966174031509109040040124454513061254254995508225237840538402446165092226296042945206971795779037989731582221991691293549293312483418347709601523803616115139750657458426602670226630685598754411777492605211055800381070528833742593714805609765476724090697271320867224368130598399375985934147380221823571387915466951523583025951932310477899388144620158486546791756951317579422968691036058299090230019641242750938013542620922346344845277357649887745048852978430121335700746028220820515987681609657945849723329110402319924446984163805694974834000716255980984057190240098437221119390840036484784740202572167274697852304217585696400853447681891921149067474745800881110083987982220725393500190264988501419964676580651101083296330885556297589779359025669267247373274688033264513013450308961389405642181958215960964216460165169408373655839633401143690034178313458317011079465053031389039167698603663742264604611543756813116025853188397435580249014089006574296998871125556274411134780289756900275207997354134032017265104660036402331949487986390164931270740431722292884429772077786567830137239624168286154579860481250474271064386235376488239306311848253926319008798069891427627245700007488844778126953194667205312074226398335312564725092430190477915816766854461211550122775110232489288071264667117903022402919991538493738581898267442565945911229536450975585369127513629665448835540239466135198891293596780463189359266450746206712399614060779020316235145159780371637383625583419353319524231088367677805943351892931440459734812635504157223032620063164430121567456491163794791980304216296679419471143602126629273075993267205018991826055171384565914266180965460788540195472897542623054515494032803798368828010653959155162319885166946486805856838102079814618246911981677179845886669138461825231787933961897116801202708537685394423475922750943285495977293587898624728393254532111132219527479249457053880686850702872315964107511612593090785080289000069963930018837897937814992902344702643274823082666519675848940141750349461408497947942198779334820046564702054823345015233789129133989042247013658139105939313805574682883222893046750200985364216191609460226973383924507421972007342755038315942953700157294007295772972328407686503382374179409239921784539413091315337215938696706193622879602883999858999470231605780187743121743772159310829643051858973324877066198474460596005299217921826310785289010999565873219294264486841599350964710786033403675282275675710501474709783337479122899830622113747856661800045156395525585628691285927506731348359144373370880910129288490540343535938672712163195207448060530043738040456344375414501571171776200171857651735899684936385953578763567406917777613476664163326999328608117731876572051605237301116349225262773330086156666608660010856795414503215979299768480823813159351722584377304952763555807310346823741043651508520070493131786889241151485272970898778376165126012177586877877008147562574625173470708524433512062794345755658317592990990637390326702976171675115370437378992770616936059319045803664818233757280209582647517729455340138808809250071669787989512806953197417793059897662089649382164060670251665589448231570724595775895532295874745033819072460522948097228268423469840855808922231522874787770532274960672220022481741240035511777500389934832444237398586764433616668499410571280277888597555546957454541917162896079627913358541337104393224295368194103578083321196724453326338953605893063668815892276728050445834676347421021125835053847598920043554234872864955873347423087673804658331932732703901599526832286380273932538564868617381604619710634526162834126116856382192609250271639445384158672421514437537753309099354786172095484172351592502581421418421813605246993229967112018134235681880514093655454060324046337578042448329946645009894604735938446323754329279300584088473801375127149386030370340053756716807933188214660869821153336075667039815378836507656030496203643918037874535166909238264312181922935009985798049264174426472270359587688126362122253805524945623821592550468206782018114138503479905469756749058829153913720459630031767660573949009043110279753630489164406323493378240684154949329926710432371787421627261291026971249286914422846341137878367974572914485286247138821376486877998211319643899343486731077490137739713252038695768169826620355423099416875137656497419748115644734456534017320749990202468640116747982767825142830145084228485960548157367364484039409696102381810373047501871199640811706739593042031559755098060821636239781099022714239050225463297876794720670380525383663566791655286259443906466741014347656329078841346451806586520480410268033227437758041579381225709646629056803316255232922189645752753921432346481727812939415811308033721880845511398393070601917230930434849815493008202132256382330118430312472031648323682166324664893085374630461055026534966198649177298735542611104039770530142366697356704922653590937639343342543337005860521483654106189465649564281549174538844624643938071466380179232606744997750077837111745361649681890957387120274578742923499542657052514497852112341999749533397940716509692901510689345271306003904652355007469648097329814829320547391349830995127306154061491917336276318407077781562348377725816193819762506552241644394643345984061198637000191109464324910740279298415489804901107840437409771414518001778327030385213182990757160758307700679813256572865180379019601542824100239377500404514239049821239011736459316665944504817855859164394345977714876545658303753637852929201546214974637865205787237456232260120977033975624126830960252555546798517159889813195673406351794014161031282398280386755710612723777830851324573456192895151497523851154908538412910027308797291936747889226085675488204328813769719722645944302492971071776423582099424226598336902368307575365637750511798367988412617277778150747561425580730463756567367031420140614973703355609595047586013476904862603769415966902542582486737015963207635906572231189728329666827043170353614806821924684170287291781781282549741405145694368391884524482997088132572291400466483519822072684192233377117633362613779474734335290327609168922726796682104921162160670040053558727428825190172316251876292825398636243440688521362278643308728396117286956072975183088381014533347028396527844773767279580280931588123713920920862783578867729923174547061088718008436341829948750500145641787251988191055113990267697755088029612567326041413893665319815157085634680601126406855879152588944025774406303447699682448978595678477801474105395716823953910664622483305642893278574558833502443689745548339938573705557766207589788446145041243646164850031735528702818042133387621118016972857703255001541292463010838640696849951089481258788185264003023907984121565102149714341235744852182326711794590198638613579017084433807458043233311688119088895003838994383929297931798286034397279555643565535743360317086673321547535537568611251785894437411081950282797036877502736403340931518004874751306579493241629457897313070615326687920699097329818188204552885111987828194648241931038790658528473475859221361395620427759580227761136393365309217433552267638181616082366269817495119269239700150204706431524018603268841857933406376924908315167436407441426345700295633594567579615711400159007195338082643249091915497861696656531133663420234549838882638400959960319742550536542195908631347552337874086555973313085115405215983195119795106891783271274744018622758210847025484246520311999373536829254688404266947801560910979090378843302770563219753440562829605034399628730718445748273502566768448190512858478773009080513662829460993611427970171550411804946580318897340496318770942544773557561910070377476315223880417179685221062938490477499318164823588794822890555568901410560250391313096288792117804141885861095932045354316013257243569382159772666745390864384454530207528561850408458094719833945473398132416062437276606823816362699288481263960724154826412716248402265608357791696895417427130193757896067449645089267473423540081326446993208778757350866823947259887260307207216451449133902934945990474468318258594792524690928069943901605915195843649678277491160502741510283106139530051758073665868595480276272233345395253555658058370079867673633737404134819560952280413554319755103394839705371562191862835743859767340383113212540072172648961946479893442682868792473886777234755000776469121058878477724870788077792620158403770796760103723680372487546735049173154691775865574053973576259292253089896688976297640853697139957192316522263642006801139013020114124642027531667488221706809573810174349163726741548056356051935365373587474163004541093817262695396237429239508093972006116574967777707248419273557224474906680536407453032774494453604398793376090090631787062342394953975229055013358041967143891029377330241834673074105050654216006062285480645644185717496732803259653725499614083685991101931332329178583451892547084008639727855400073441759196418709480755507427390300294705597837898182750978888393483931762169202930541462209457689500663915246756635018084629095082077903868730782987920146948329653598258882366589015857536417065392288231697941696531094790755171882381618764378215264636985161426828676508311664719612080482118137231606249815983742678942148526763168023505172432194511412494346587701348117637088962609917946202182097413266444451400518441064483274009389679304716173740657269098172485135234283336773467593895176456801186213945556922054523036653738131072279786009315442891093642779075474978642218499110988938595990668124471426697045194818586233179874663050221840779624640770980136715573229878231822921319372298743510019700600484871342889522529452883683615795885565436976496261040712751338199731589852159933385363933391566767627031716611743137524475687746778278805717202635867754804000325192493916018763781822508794042553444359010265881051957141340086325187737191368141333176757498457047488576572686608291300087411625617206134661296465050533835031260992880384253561080843830437952806547710054407901682404264040704669466490393468694188473307557832917819294593335284241195712496762018856886396582133521358196485634354400910810426051141862847857131564542506999606515074935570920564305801718309419537788400336248345073585922949160327486323442268781254113314908693565855785839993763070827709174825789429557387223446128743440362483624691715014992487108049676941312334631198213440619810049077264724127352869183880284777132524880775897896365952434831673552151505708268122640986878483276420449889724457140086587855182815133992666591332401940572085535369031744648436656195986335031823387264012222971131650140008280916566919916620452829889718097142514165794894558780013669431687211836076214609743542054256589747539802701318923905249695570226424873823564900885109426007504179325353401191460612236964717239229574313931752996106939390566195355457377720614268961282618992562766457488878840022342571835455027879973284844651358955144972660795731518186138153730714823075738674446500792274145857656146861974917611617722502570124714107017545401540921884549835744729391897769378107903439324363030750701993970192728360445652128525805543338391576712289648389235355016228145251749321365555428506665126610561148991969022066842589485533074641447154422002255523137419186710774777866459914893555399684949346745502219264419126370862848447785830994728166499902956770294838091182580180455700399108206293022519501110921758425929267467645380024626365409945749513597327980885303555616696388489894906636668503954127931909119787468732512037531385871107512160811247391787823750722427073732925818841766297907289913206313249499276396379538204354849260867587412121500034078462705780811938112629009297037589238413972440023163601296228879653642729185575796304458816436542893952863388175986393537020304039734605899677021815661740073864217882596544392216585224278567566815460583616292256066738086366832499944434218779266581063461116080850169120204013558409595788799825108163874007656267532294585296640374214760961441048574184132814000423731823517289377073734903613343176292427718040112628889718182226828137001970306775720369840431058235913612237906471167333448524388076380534943052603917721158468073966976277680770068921218145618560369439312434045084497952035682532158064311780558858627580459156195370213798590461141802592135699361049009440558144576791419349819679216222779295784708320659427936801522444735419462071851070238323892501689836695107218124719919013380516913489284748777222296467987706791610807543995261675162681007581506052721099146260875702782644666799411153997528376502361310172841192564049934470399453906060468660231229292958421257734150315788346817404796191756625706085307498485450407128126546461709643034861154070494615837736969497617019851186008767399665689477325470391115834410325537339332454663591676738083124630710872099632955637248910058832465356517926325161819482736179964146994374377491228632546058061947182146780450515416863540155248741608347049659735317026962025781760835183270914575219175039242379016051732905609366066850261614710618683744263607947372856462098294711987691870698331026034126960973005819145884615719629826833494239697640261695628629229982673384898554282623573244470249837514082855153760519051963639638216821517321255568863106650306579086043949722862687567406221639313700695656476693943343438778519124142404350780655809470440035182425725113806377271189698168550055455758476600657830092246147940555843961967894524564915956531694534776195475939814769062957779391106539304641850371033967311033200952465670467614344614045844134092203059509522113479222284084262647483834636374274008307910379581016274387087516542154717222997705949811154257814080933558165212001208174537883808000650817736361373919522131040782968662229374560933879620441456870904093788092765533604745832805512998544257333689437278188624569787433604917567455833756112204152764863056339626180535012127183375074893823853055051216469342229459161632293555521073485014961971760283723887537755018673889043755564635184085389634906712687237096273247727157445359109191806578693978668535826011671914742829544600967684770723589556427084569877149871251352878875422930611195298657397061556701380292468012845120863277123308942657505617682273867236109640714511796913337586862096932654550542627988719160029393418923882148009415585980018593362138082402039627015494504436531554931629661314502097340262086959248151220969432147770037482660779985816061289780967968817936331210967789220101082955108809942527891481764284152931956863571903696368529138440979173732788161035272991540574715677568028062335290155675095474715741622718996653274982174748102627431001563312852850763340181736705801697664465066382479664591629769414273651980351118713599808845260243297471341981674963354703630574902768716108571740486255029860829299499848459014707179028014752343159318420855526904349577856357066705330647786902724009196869531133182116818091912359532047470567284646452740503655625907686883044109383988011620931349573268541718022251771597582387745160631606205289492578048985677055833378749137110120772970862024410658505311323159167230595649331912102983137959821682142194184839214227595028301515085232302230949825664494128439782196005190727519520192966085832074388003969100634111754426239033375566235393857987370522291419503322813428455425812866060033928685012188085233990752496812722394155959069235391707135586928571889335693998304192794935911396216013578361348141707382273851044039783804129512693531451930730265831121220252965768059451667401990904183036718851397016883698314114534511698547936505188639471207908833855204022994126901807293270751324552375970411829535150326590238624673874334857211966985007192047219040386000090216272964270036536875975932263447954742281179119929680471518943601442396560910498455302229542261702739406635339092547154386829525103161034687358721163614167995799608027913692813575057927237039100811845926418230430584746155154124489464439764628576621733988369597345041871358591883563456391489646586988800358279723280619387512149362598889022707151767300593566255530846484344402631927629109518823286329475072497126023857609199995946805241692468961777129944780179637148518285292634119672076537595715218094267285969186721789803142993788547067356831232488961779915052434016661265783440316832341612932319612999255063795998409475859951912220629251148190118941762715946397299144738282207730013862123441071709516299309474696559544596339451156365572513712193078211213615688093494377690277908707196937954922740717591482047958751009531491088083667720977622781500869010508792456062632915356936338317387627968440017696638103663457476194013829575709997354728315292582947509855226991191060965842891236934940553662409036544644538764383184580893692160134768568914552230657784438811324518837438447518786695175189385172872674455169670804727997515736554101757428395630928053039783475890859023066777440996295151582294565827102954795079227972807857563796982001670428615094727803277578822243522210175322252618100012327948842247410734789263804104051033608682704424176978284390706721748670123809066586813053119557993195146296177317703455777584709704991584682749595876496325947366575737236140302449955652965951333358826926552489604933635374912121292309664421274083153466347913809584735653517393981744393322380048312480307553422101133807316657081903076918558260321947301831888225340613640172561265353306514600511063085918265953574948124643547662736017654366775547518277138763976430536165584983903959200591367485486274156861488565235977526110994661017527050524895044015555275962427376259162261443124968622671542050478532238128379970046393844737876586839905422171167646789435003133016069143670038062789183691542922972927693649592052035996361901217342834074489260842504654104423940307656849764563808842805496072872728613814715564053913693297068017593801082478033866720571928817635702387684703487857538656167393811400889437689565544211550187843439598369966238426093164543757772141436722516140056101734191357004985573212931756561989787790744391041762068093806139879409046681122695979926478325222678447867251919316334157221365148721816704129293238240693732524905670952464622170056770613162647738981514316939093460285462732821108237036839378560089321521734855844338645584099420226446310824883984904828994841707046409391236514908941616530481267581856841417019103948516542737080332068300960482541288570371632727068002292836920101355130114236507828360362290826866084791608944423738808947133953850675791398460534240298256279710594449410529604996592698036664724654778477474594580839238951385034128994526922241310222095664490177706222001597561721466336879849054131569418005783847779631736216135566146954402479867221852497825792475656890981956007604844600483291500021781382762237194981074901765547109960500199499663093773091291202669345624752675402525510302297129481583778402310061400155848405615416311296216257964644668005473769559295765583583792234021343081804487991791620487876616760836091816849417925956412378228879141917065064250819384508116057803917997649142379371698562909350097973473923218510425365939866426881034253671974043699443373991089067648336966469965051575293435827016558957649558784345440766069231931896127050337873206849355136117690664108390548379676788556694032905923953273908061811722588759603441207749969322770210440282380458733438945749331514014796630754594736498421181309186494702766880255453607266328306419843531896940703495620617020866324068706821476888366085953291582912424937418442180973131845843339569803953532861957940762874156325290136327223668689283053366944678337015813948749887942982900215783790742244826341094160579627557670475345770343882465095560235910075184184389563632221606629799827524034796905833506926889869373921594738674004181518590917223720766761249232758698835744885203933587177410563559289900279457084498634545097970639124979269661016444600029431155628741202865217805504832910359258684301522629785556468311559850523191361218007688441550485384858203700756035911408722409515225937505522536809381465786335281565892454429969372154910012030603356494573211693401312789260455200213922217142916877815917810491254411957540126392252133334924028093376381027816933267366817265422688106118032417600443096321100398386773170814338178352020453333731515298786498203824975095804403837310263588216158570802365530410097746093379207549577240956334745383041498335156194759159938645568141549801028518211952118225445852305493781042990153196292003435883730047303992676291077986944376754386424927438171862674665512800341359947355964759346445230949388421108154453763340666012361979109546645966162051062804122412785013747100020152743176260114274397258424959829759313253878172157449869000884781423987828196260831598219956186478466247436857621479938174707221046866795964262657138589856576716388784605436285405575521762293243142933426838384948783147601679563622153056655258223884037231054783810153063420078188271052707641192644648698737414547359620252685046618810163227487968327648766487361651237520954066136105249727744974289042246807740727356125865475939263931068455966254327250697915516208995453547072516460154103149867488411940860787567682019299214338566054185357284500146872163279416051530488216141911899194796356363176320242164722470913946528116165193164950283569675611087599316443984230726164403550816381724310364044887435302362885439023000754483954979085109617783804185353995175869370185210416836410335588223875086629444350031346447377441811881216927984794013734831511193531391375248641407240833528856395194538754572764699176625025411813722053166881059063127249391051636991764427303755839447167830279515810584251412743811758039897821576037399799434897017264886447871039388407117431962858908615893118800891657941776233184591839813877534045552107955701355184666087878233956229759914664304580170722799795031319280121351362385331205242588849632757836067713599966264336502482839720456996312529460730201037688501357372937642758943865606373395850868729000706380482081498716844239348585247901295656619681645983331748150037246851744082568202016986773378956422999603870684061017641443505719956039837674949672787515087490743469984760355786068761111294462341090399517662407818805039763614213542727281822512954980314662461796260492898752416582191868896995260820817106726445375641457836790488895637381447967761823360212005510049512076420994562518391714602183694237041014394587267739232706104532876974664992660562231681762237076778349093175931603286404746674590429698986605642824527090955694120011356273854160730130688152158182040171189814816014062124234165053687247265467634657752802518841333719219100029093006732682496034265569613535843783677463716354050823925059727883769629458830392697018633075589203483253506428879756061269658428045901749036727350118086068516289821977271401259028952710137344088736527297249156476709334085803260040850161437968811669272538989769256012121994211780207496472476610459691029269840786868028014551672159959730088704168448411517206393848625979660111180325818229830159542941279305592378230566646624815441445551082026126233278607480474782999070708346124051235816052582491874752579429492232464470039977294394921825668124163774051573453430474874859926840833774359809403964670407681295371445452793764512084312513187053586270353808129351741561689375415047794532782008058348473814644405946667361199120267181937071712688398090521848093070575527203824527411352148781686695527010297284645319592536449110251448026904451020256219448023765094226345066694297949452518227166978767020488114169557364831654666455447882654647116529108122239493693284204068179256249922595393651245441174609448242329206117230882692724082804000472725541662788172040589758792766177350419210233240425452606245322186450798002349491108729188720686538987785817490374525796031160816256112265673620762045029249696518890360986082375428241784405159043154084891996409192511268688996598074426665756981847512222541832512640894147294000762462523164167700247173396610327207247008507235255296885405274220662141343381719848741636628011895231354545241932489248589690659684245866489210243356292374310743172900687608588072159799627680472698721163772428661265524439720808871164672878235857284223810158800252741359871833484776025613421394940901700997180646632715013315227472443264981845471873319200615228067544110087734829715319324757782030924604912679521401622692972660470687558657841855168993675180134009455851175452786603028444564891252838801315918821720250539637713152080597366618702964082273403776450418857332231176710566853217442379772677975896993068480987744036350362411495558151937036013053743241954763057781778741216247296671170902312807331207167471615628426311219403921419840200197895931319744332671730539427476584412999650272800328393848024938679475177897675826735496925275434530600197217351478222892518551281448625345675173253527118996436562092601912172244206756338745010290720920095278837343410711501477457535387023784586495666933291592824914361205109090008121946818002208265350185833927087510190775530982498013822944273752856435932986267554755837098632600517247693216475923448226516065610148072182539650393696897887943634101636464357833635915977457420648916456307454974595737039286270759267480120135163919095079073568648255580132937912004692547000616683103974745232250479771520565470247818430567790301422765589705601219994660278922468761349424200818904877105488898169701881068524704371975472358657591359479730133174194865132376391524952039521888220568604169284315912828182599110381861454984166462608658208184606763054697614857238317623568404558296649900666419965226395311537606934579974373476716854661579156483673423398195728984878811391156622787228737903976255519834053850813790437085982742269323962666060095066884502196705406687550340023969973149449216144668964461944254806505227968698990003323711857335006076244805512480330774549870134505530304015234725447229849876912221946718393316281418329664633685178397662582334751210702760722321849214732645745913780526750090147393282064496528831320152641481097998279344723164765044818999759829538329942899931648989468671784006907933959229127399438286369960338267756643990994959150287959953690800162091941144272795905251807117356238272490957225504088477040017557712343548238769309087737091606263664486380201635916759440812843941118334587776705320855162053235491623003854546120970829848394903078676079298756156889040266802974604384962432336912369227065109194421248109453450281394960113168029869400322995563441974249301108084357312556011703854935989013731752588578315560099048515461850705557619105524172234082985079129322731325372695067968029049034127686363830191471249629758406075327582491975278952749175280692882862042858454082958856068709763947147039342476801800476943238350990145601231831040304396835552477691815212765539107493373983646840763435874208519368718864804861303803071453648073018714031640082507913102989282047343024875272265322074592412987959430002289802421725813911108749693855687229366909873005073503936563868422661111474001119427019222075437525033144140492568257801675343352549443088468089050055291036730261340966927212349175100322801391124763216602327309839387330851616613829715655873719677698027225264779513060775739695667539826815749869507592328288046099582454610617119534927742019536250521186706208580986269198760162955622459149865024466884423890453462909097074451833678737494867589404171514690374091534118913771797938833691536394630944132228051481407106283948145376761644331311298946740380672881507069937591661061479577225394789930188187485660765711103316108814620759227104410004527341229800631229280109981492505526418290763139789835619231170508134821503069493497710918273424930872338311730976592568453462682397991807084578403526687410744388773081228393525397289049227899466518517480745644734072360471299547973391747120842551804918482930390098598972055912931659266217785220114242690258127853838636446421598039249865241931931559511296718762523548691906107294098571508690942863543115242059465405075380696560818862954448156460612081443920114981375867922966639168248528360994475770568625767069131208322467507635222840306663999814635664484311776326600781922620935855778139435163323455154136189049231928161924274881032581375684024564409286721379821255587857416613549796558515111093077657930972518227204313039071150861000117012230996730678689076025336936872836768058366034878999486830828875027767197240738208875152647247391810331726555576547695627052708016391144270749784205402516007635605963911136245250371819525070278530102283419129698328865366249154560025150076722566862409761990978399808733110107613518728941343766353428804366883667063779516978195426099513121798102498729368426123764962496732766499091173804563415081259880580278067665493384700058220280477360481873900554395700150037501860331624630007784075710055518804135508590862420316975170799053211249490350392061348984515086843007781438199477201568413694371134544718314848452972565105819796509623914461662217708892715840238349071982021820668994312054692714620684894090839408983115250169248890392141232460274496192323357729017668698604934827990490120944405091430141627396465467405291424283701331199418477880892096918155187669329036459052140949387138678537936350422898985476041482919738977361159273898370611937472386534672061417051675268241483063949584159605266196340920051504362881609942542487193487363642672055212555058333449565294555953684844863467103516870423620278467256772454423262268306485805162872715372509942573008254670488199696488036253804816035017362763881229813280804806677246735716177575387024760938923832357604064360975949153933335745728407803889694207553772768222410853902869449231752972806799291705140565275046533132687075690466241270114148219895759128435255867842355576150133285225703347644676708603091438523504480639192588251011761955738512374783410052149360294158564100876380469282057199317277254906800697946000298897704214981243758240330545023379231858110678475840501357997788073536695112562890144396778365609840437092340292416078035799660179985702732532288603505313063550097394016825488234721359145327780226645586147314666906844459347818184539508259037653412024329656514859450825495143168005237062737761002095284318674301585939978573560851269059254497547200603292868537249628348877592161203033080712937372441187639059743633645670083413060682084667933003384140767497138169030543215832398946490514778614625612176865288195830544875065478259900860785435420590317165653917698273398776621064577858676215101096698830764042092460682797610112889733879155377244437069308388957212666532853534376520981623936485960050471409117311042924380472012115666947129958010267241439365067763386872287181918093963778510566988307675241473043569842077505622256531377640977818592791760983915378910463874511052783838576371193122079575463591384465425574077360545026052434147614323821792034231799022333888391099296484750957119965314679836503164700064525140801011097992109694724581933187341511562605229399943432683704650049330166568497569582329774986430036360151057912163123599998377762010179087758064397684166263411244853564350429986804503896343475411773902794458314216071344386792382488722632754649461499234929488331341596612949436360062043976604900082993013164769292773738294873257852946135041293221559415246214168179871532853763235225832983101530768440480862175676018756652493581233760029551895315477798224789022152042389953148400514772563852317642792972122993871010248959927046301331959287580105436241904734205453737185545994842310330975283217314126753315916955201116191131720422371673673463923757513728557336890219597352341654924341379703029434048427800393573296062015235477181771919123053773493727726583409448680725270977110671572915579471669803276885126785407087447633917957273832438168097833217614259138324421202740163781202798072376906133015262363088792181609346783454456291089589446900149479143681467861672326766391035002796892834165200189975629416060321192968505023522240502555756490904422681821823343979111827609836232906898478732480408554619860243469482036556235488606229855209435839746424401988818649484121107296425895570412028334099057320390821718734992667815605539401926184059198905434334880811186596058778855087066023366676106143553271620488779413232513997770712534439633332149243445812813440651867346386828377537614899089766310806380668000766612857262084479936762528290074967222880748338626150878128750273088250813684893215086744705581526017288627186283400641385781082422548923150285489125641099323970685068145808986695423024858670525506771641609301096816737716745777365769605876949806502156060095178384945578817368451540807979169171592709639863340397455770073380311306130660053845301219472504347943622130540282551917695184097156356218192158313014508548626897438824819317533192995214852061087849695613371876910880275005245886025383468491757924535541203460794735646578166912256416845448417066462511284854498172997433174688918002363058222175646481399370487645742637246138917244420847335739458606511571243702702722587033574613005258928029799925653741456782041632958071238904004777857292852018925563992539083650964344685717140345892575136974773635812682194214958932348868011164748215681253112620934069355081814694303568833073035719112285108847990037303649149251840702730578314276384076503975861020561566520914427853237975774824305649600843288054382253286784861304351153776365744336444831951546623280318110240241240518602812818041473353993775739359149585762671919019797089631142906075210049886872078190312308788876964579899928026364250543432163836202773901159606896787976440750626728530044995250878938385367190075066370971552300360645030818778548363723092518047197703172885202121873617136278216811731506314934130624572409551852437547266211630137623574165940987335702409588361794419210467757451800056414064862866603984789570950675325023256265083240350605472826862143986211614097864317941654276685147758109604974283990568962917634090726440385737253539224769687535584889846562144845857364122274079409329429059381148156404304001230752174536063828688010927366176956113584042661938149586075576854732593950294159204477818080777900641310924182308719625590628445949954538147075049097938049447684880554795530594593829177094464029268577857312641507151023247335403144946117035227497721874810950262800548902770636932777214619627502867318428997660104239547197690774013184275213528674935887429589743755442432617204941940814416783203693858541007215869420430961341018519010998667150695863840743993315509308494720198145436673821220905601284924983470603328965179394824558884912256106871468389774423982765173945643424803183680956710721723965718447652110294918441722657421059847783094698944645085687963324047351966753667232363294559355096462860545384662539312804970321110480183566009010443322289149714800530458468130197670637871288034763702847655132701861911388657469339721030602997921571217795786889611194346626346271063519425446105375562104382680305717336239045260478705066715759832171240347533701417684450897051535808651630146625218422598623861042443678709056365450131936170293501375678483281315544866618493257525884519367704948765692359926985954735404422898873186389569777996697607549570462220227034789337980418892278847982083274257831150036431764752033873642436042309052712088783588900826868320338594404361109043398832304435660747016052551772827310029924821079578342211162017862187209347464974271234892553288223971804164982527716271853879059798784299792091088810050088148637128691703031538520714928019104417854335321457569995800212543671419527596881115529159301160834954478093985953095016889361713916524157069262840064218691251152090346662921147755775543569138074479598102878367760874809819487270548891031044300676784097063131391353064299782697094568034514222825331086584108362900819034699412497705966520386609202027517536553203632457146709574994871298597878182690895452554119285286484094597570029507108703791009918936711168393058200444782715543067005269027760863252617858304426203086966571949899476016346834042219888829456561432047733989239226806834532838830933860309584569134415148653021210849464686216618849236380830969461195791071613729907345612200753641681055927388742927857070022976100604727824865912388629467396006497753521671246782407989710842990339460860167952263611080488216694869747373468802583503412375211062609269486372360522184349185299042445102007550546555916924275475078446895881457918227550664166452434815119412651428502323415548983257708080921053289155164350344482207520393690170479103776954337020161573149506227901018210368478490185872086919030071061288979596646006379422685333525925907433237902886454839132715805098815991127633155754081410925063433910546350785466458394970704087715568795766138000931635477998171588277107709934132119132796578003181411231163821224726844584953715137704298995321349471273663711468418703468796262439606048487554510699048263438400166489517884217651195412008674846193582761543706017329040416315751657050574374919729645039662765950722177836653303171234582899880839481971517526623109083046960993636262015499224160063049979196488780569103957277381724738478031330877144218670308751282178339695751832084023666230434388319599906427708800794066911584882612695323706487421526596333750883957344708327757550085592750314445640126643732226013370259293811939483051380257774854509170388419581035883231231790475763100424793030755107696359620116187986670656879503478757134553178992369119111190192214312728540185135480832364613722226914783548368162293112823412095479170998907708999536570432717940007003351075253047904611302008352626801140581515227800325475847041311747348295408613571535478072470353011663686504316086257680509819458568043667357742236463009236841159801317602553218483599433051080406843081136085121108905837021297077886480838372337207882507614963024105391860893920209798802677150135932837898075525315294767088165531674955705311429012443994048698989200304899253357455808554199535218186130761758338938122669451365418452561736222279090179548965468940021660490587524976264235111236677470278788745079692202255467058944909510339204997802426666477328675859664131448062059587476635374628978005724631536715069680067963290438299415471683422831623351897081457566359943759174532090849690263962620609779302592022508595608378595475774663309532463034023714147434569385223499442703846811060380876051415775744531202029254036600274729754515459913540433545554727570005131775146392059836694775169178130431933783834396132898985057792375939650443027627837826269341202868533766218290115619813049998309092398390743524146492589316744781876737383233532033630630358013173824784461332032843479967513141396787059255813656807024734532144631634936250056841086133908303954788545214104186229242870897579963480559587817116755221802193187040183076038742463240226740584434493041449618431439492513305377281138771693937025135744309171039713113087935963972979072824879248705395866834277212555770982244007237532266666306921540179415026156386786110771494458777005536921940024624408613598707872737172956362437258757595379621820739036805335083438518064512506261727027081354762886322466635189975349206140457143102561455058777141540910458830651611543345824178162147069011571298180021682102577058812942194752081972901271406696856874580033588486692486172525332196690915913924116778891327256164470416009956683797979495068791590758520016095010472221276364495105635629740759789219420518857885899799058386034615611972437880698427749138559806500216509788855479113476257089267941802522832709774814662785101890687084863921032158090054141991470862326952043597056164243437086683904809590809775443884667096000074870862751599259801248541229648287265875129495761129111278677459548413111605540212992358535193546492250449011856290452046956428075219781339069738306280355071736760245310487520954546142344558171036801545472885956199104257371157643715249283662629856234513456011175123859659419276642105536874606453668098078771266275212235056219772054538788105865168313144086868709116204951622108326424752178832074670170676584733819067771146595544200802563158436593205933454794688755717050998829835640151801353386823654198809551451516894352305844715409746437958070708119002201996661023791556709281598382065602996618556434667228426288948618080576853200069703458408529399414800632673895738980799738057324915043314748919421715253245847507261610875656196588897959694735097818723092608493268420473007661712014908475908412287683108706372726208918922739642764713148677488341561112098084053149585044318035971608476360522567892172223840308350858505205199742610737462377470462537426321174143458627133355667422388376858419380635942804356825116751264065356708999033529508412483101547422751390211797446035348100377697488744402606959227691887043107271516792531370671188268049691448375081366501022706010241588238306297167043675978535938124596614867422905726561597516256838661570829970874277334237543847575378461242205985128013678727587808675952715339656280330402565598195753962283026735971489512425207578190910275126954361437614035972129969720603421233499560923766389992895482074383299158325115059400568523318903050685994066475171209319123769365452299725779667593578616312487279532715716233345989246678353996833197116969554715399688169834034078550560839165881767370591271313718129486621748972982452178273126475934692830158732920601532804401960010788720740232028228650048512956903596852540875759071493223593768930652198313854647779943887145601600288559016188417112970571895199869666970937474535028100296050953901460467248999994395332815589023616284652486931640331900022642350417757401857985219818665156429869262140434912723780721241124366147197267631021769724633134923763257862632517821988198813238466908027743773370799920683689340991701659615088597140865883664201449015120425147404384100558696546097407077337610245676655827606685957278234294529935651425438658446178316044748222988263441298755453258113009304052265849766361573316861457359967005406602532446987846372861632265012208823726489249191672996211658637422537942277694449183546566863227740797386917803657321553360294709466423379732676739439531309494631392156708232842934086401717043192345142376777921779813085091888337857810076584498930386002227135500497133043573556579516807902927285999439855956692637776308611261394377444071040634066396147487769840978340312126696472972511310305202756245139607720795318262430358547917123953590353554654419149208108153105308301663245448056386188765859641751251159687037333052153870004047757739771873606545023708238167014338828783620416423010944839523709066234108454709111972247949840313361216157881715103985276310711042653791184518983439008225781769812519870097133033768547189294697649246394854046771446407653582725288625839291722438056401878866490633546985988504904773369652747811588982470388650646261407708890337751438541094809111105967915315182274742351957416872631550039495378269798771151605459492288438790604823098451019769083614418929987851589212671410523639908381016904557382221925581545322601880763679377933892031143230345203598685809503302585316262485938856088036999618587694571423823927789153910575991227365237961991267222673346424075592273411054391690203732545356822085930748891559149429173105334690908039541532900068623144866247697420975824845844179959837632782175141565683791932680415802123861674198995890377830020973806382879042897210009133465409044925717734569353121508126427350629720621931569730093049257920548692654763504488180532533879169515178208817823224492235709319053424565086116124617847424602108726793402027321367337987196072943848585327835039375807409288502003925619566027354376421284858249745162754225177780993016489968836549655047105209812603284327844129041146243177578031673273828905966411167854565615044123304295327349881925667289026711703110712468027524601775111678115739102978454310971195355727298853220469761882500090121226056145654993351129055288430792434046694425321711316482192715799134963104115417611719644052424915350362786523868904577760050766121621545415025759150109974144277623938012287271303235140491759262328404232720538829884538032596781778695487845357841441392989780526124123696811465796140226401537733725639162088044252520699282463479108837257085640531258302834211751246255180906949276935271446802936250441425538009271512590075055188982989132141968768019391297924518069455928070608939133055984055133275904204506144605752744024078221494263358122185248281832790068554488509692863412909803308946596277654374897384162947668656501556616684074067539783323099345100789519551823732945702551493139930963657351833400992308586822147548368761138040136760303465841064666902895912960421645613467994681959308361568390219560411692450043949284146703721131598695363861151014541067211231222107667576238888628532921457576029425337454749622625613606830288195352890994916487145960841102651820062401076818544326186236902046677268301494152027588549156397169891124768556284394049016054589921815758925604552334035461993151396320280125087958426752590566440381032111467874762093059991208611890937599435214140706047594800402191940132468620825730339995892338958536524416186445978591100901925289691137873655753214467423156392887592706014763967361815992655689447428055787541207697068786321558540074714170878077386539960642581469950268424619659596098120308611544341507175951868007827501383207280472520945915212261518581617479324848259474102960212429659598900168991560532038513998773102252751394117764448888792109571071207396052447077142981876985790499297466273312785437772162066874066338218484541184876563408685653427334013317574269978703998256161320856528569442793429385816801391050958413701638555350909947681655875202276325990079098778922489142941484286425207566931527426040372520754944947525446725911118129593572462634868853155505176404522900969706670739001565639351328454891708311333060671284915811909201067936120255285668478080894488658568987454571524598660476000676284932870047161916971723525565736133690769208474896275400386657968388561066566524023894705404705665566355420113229258158022760964172559352739485845743698704052548312706347337056877988267219326885225451954440989023622969807560697868487770442029682558766275998892344764429061228350743915734258500275507708945452447662476854807755543459174870009864333379872547041544836964538708558920060107046822342255968715000116055661692929194847083887349899586934928100736414075914465672676406838789324905282707162748387421407123180091960098061111695632728928296291209549247254709290443431820043683299035315412774000338520029642006251839469565552428185172061270834167460566833456012791566462770009224384644841081423175404037924389672956271713060063745320705552130116369684407310936744719767344333816178133782999066307810088146270049176232562674768256395987992760852395260572083309508240541959365136569141227106039526877931208759936159011610480501461096696162972360097838091117761651129497379355984353516872993861897179502017449349601484542442163620229796997879148558871274400055874132917966262315988148491401943899246793312057205948747019878012427435662583222659986668874309408193002425565747511341195430048481899797314758896265030148356283568102391051836375230380852791292893515212793017320053561856141385590304109964343872715591957294747366880997801074644729596374808068987228077624540009984420920274139208597564824882553579344942735371968004605669150874487797451213832102461373174310195030617800704704126974425128499847017668632192420729324826716825677648289662225431885166704930149124163116850737096272951776209426774034009260456020950940892439821900928611559864692442341457739917573090668141396935271251401168976093957995362916986276183097034044981972104616773433426054401308502484184200163998361297432020843509169285856703259043596612475666391438612899622512099341150706731478531858752576831359190222611246466909186387816937594031747583851779761070268645446981690917157515285146802281268412589258877901887291550102786613179688312535419213580790129769565383405960710177523205769702474897596553792708036633373055907772036070850671937842694243311445007086262548518778553204709962158059539726893254379485417672359530562607563700896751466432477572177427141867007187430789294875050570220755962504164905826072219769944706843543454841725518333961275414961649507572083029417292279634539575796280861631429420354704938903947064714449670454391788966501268855339355264577709356219913587861103168886877034382017968191770930312443013706939598260662041729364416626034476759672657646513799532637865598754129152752477227269294095903791741335559625347580511413649041494582184430583706428494892023832092829273530983448086152584793373675485042097667775947551194544724632340738581063131268131768876136110719556946903081888515517893411423147279490582154674189739436675124604888392674935819911729776645680797949482350698861256699917469290795510239815913420465818458576524597034913898348504857857414438548289815112348129100098471017450595144405577198215401397370805646018978717632605573026067402075247789125941773206310851419873677907529510628942718494677635904997151767064576673816032480571370154943496725682308109620173033793735305344241448123077676430296776817702091133495434122041282281106875058801695899480442190849937383919132016425783344955525057702456900976510998146923916419254254135704220231684444060196216849870533801879457551743713731560066606439811007965259256811615696326821090944313553541005911943558714933251848345323648327665093664466709455484289606482230275354770330487933563817925641779828322907644699841919237826333742235784361496043733831439050445266369138393293012775003202464153041734348673252109135454889891623652763856399720380976932448115286786157461827306124585412059588298651278827934519144887048678532975955659564973048776565578455672995260044237912275767949115714107905807591898534877955892251978955014866293077257044241794826519025693171484633909423492513633360140462503908423739686981076861358894579511867983970651695612194529327979802892411853029098224448716772596915711342196136594032856018307768571467473244552823276071529046969080850463372969911835739586712418287207391918360739672837353044941755926975486919686516415555230793646945169661732427994467706224005025300704208969760409200186579147598475411378583398160773779294253170175797999619487263864232164000328214826295909677238920607277958388236524240713852505980472420357108439398188236505004192416249891072345978857017865341085733858456006465814888064962804627593157249377499958602692948106600451505087422137228674528541102769322377972844212215017684342981728228143493574633775701423422930338551270139773419286841802452068129055148697128123740594997306410805878080683710505335811498937922467670127026434346505728676537438419181862833242423818399424213054987980670987711726444448000959722843372056642809861690990245993194221390456782319897976448409487276835874124150664281040546261450782925519113475563619311655434620698703445420321548299288571524777066384328554379677462738266476301077009814499001480161843253011050542452943558529381251691166473416943109466590114149931995459513648586105112683539503520376595969897733578153053178383633860900572732427481252801621762766090297780174510541185353133142676349649802338284607938936453082625587384186494812337000280284797388372103144089820948452485527688502271421621352574353665612131415458228165968738321061199632948029346752749177591883694027772125422096100495777503252517132398195094685127170666282355059189539627000679236841933675666644926504779912350671106058472849377708881259381648339519746636116639596918202753516743124224202048391914053605991802147808769856774540406767390126624776553856497228036309825841572254568357067152017354837085409095674119659554291208109116731594121994170772687555547688055739280082874384077935733957725932310466012782105284710660926013745072792287652797874943859456281917415626854049630029568650038588016230568210000545033830266599198867199460351982389411778275457210964949559390928731188622964938670507493808266278352251133988330667565810070956629682119737024557604881203676872733827461796823427372516012637949028874974451995189251039796368790229609034069247208667681561442023531978949560042665738145716763816264715290806609573622976968849970932666297628515245628545205692864219013106006658291569313125589353126114873662309528966643445692115770831352584611911502545812272525263362072037454626629391611056803618011159752170291789070088671947229970579102265552936851214407722999879492612157922500585723034362071935912399505419902086320829028847733973422685913435285408577331119929939989969524993918353196129446942658606495097016260852918639397817312964161627801123715242524490037709229249494352032178572320205439662467875687607517931389743310814688929084209853513447356338714061431770427553407414435804931356864177571797239789246533564313236093893914727221975693951578881735978331746929595586977389415407172154291601257417023605368365774371435516161478630540640932524159637243806405988141257500534050322214467093922844113918408431809626989633019813726297287208946833840010451950137860628786353785992813198322805609578160250705123280412046088833060460164194407679309148370527898892742992541134247549859865300305321174398353342653123774640817701177385027758022419713916617746300337701214710961868255611225080145503833430545046094760898725556741572729698435823982613426757925706981824445676892332385084836504304060821819381041236006643941060183277011372026618616200718579844145423996260666695547701887628386143501862704252515982936587661373485918440050574145786218492125341345698580168371180320043519896613229875388199636829858392704103574424985900790798996881977021389357541404170152126777400883985117984385232320841326793000439274181866829235879591244890408383525238184554887117468673582614359596342329738366425934874111749647226201635940381137889883415466796737442710433331472209404616311555564401993804759553002533875991485468992712098475539944346235822299439865980707520318409423629570918473346428787570648309871516022129292707270747846059156704214593769326436274030303620972909668583210088393261744003914895111406272469389537579937081461890079521557982821823649509042523369168207585952817465683003923593832682686470982337429036763753753559872456282393507082288651571537744160653469656843135809939487562835919025253596201975942433047590397642368899133809148841342826925868874611786108657735770299816029363947973584313891223002080519930419646593961895534079219259854488312430825614742205637696576843223532704777406750240087307889448739150360573675914997977167107910436824717352286494597397222525015710226198276533444392367419620362588471854338594466149841050786066553373652310055947508491175499009276161893258020350824587792782061929341159204588577709948564976291083968955836963640258298443225949784827893660963628511652074856853564160918550869740223736555395459329158327792947416492353016261506056503031014403307558901302059183832434863768630344485834956327695420019565275791876910679875203776856619202855026292082156017477737983522866869802270804185033597013315305593789736500318207477979297751164420343766954306408150797704422792947701370594023672712943861765111066109875844296753665560878200463899986156240325015028037015495621406816401036008585811680735798179208534041003187530337842447504078088600069590727047112142295932256025943247486958990629846489353578091262551783820703989248805548735669469832846885838689613255854346829350045606196090013693311779022862301444193940408208799190784111686377327906094544243846434356467538126894928651793666632662366164377883403148748398826513963028766071805018833879316507578060106511180223113860549056410493724791409969859679443641597966192077647710017913428759486620428580561704307119573217753235282420057618479164545831405541378866922095382996673412122230329192572882049874339582892100339982340295480848864907441842350923934669030643299269948902559460479710936920847741091541797364691468289917000025095914744843468790174280607223602962414333819868908349147268364592545446022981017170985849394574101017815492502751383212911462092201649038204710897665676453108693555027242970534770836788278894882560473311504608950061676039263623967251978443026960262049380133460287138005851673502055726701968095693544802177341648226186798714739017349014179328402352500081774495464542399612602672878415320018444569316671601519196041496599702690229975620737347166389281664167965091921385929781360264494648655462033493001707320627577853370937083981400252168494432700825806083295001915412675502945169438502059004193777883437387768172406492849676145663032193171571321803707937455950502931283667570246154221540288798398962068402225319025054372375152092278874759789773623501426615961359153748324313686856410261975079400142127373477534194583575977499614662708240733836249910599681287505307935024559178118604400710213847546831714724979848380059868919010340742857846916668962393952575988566055549208587206559024827653981761741532060004441972446903976454779299385297319232004480816623534563788346432363222313213969526962238859808751603428664733324773606080690246377988699480975213420759642406278555798217264161995896948901791546027479670229868966557838324910554210654592286266233851399797860320645563085817771478193235745348593143178311856016695706424789712132719503399657597001685115484828544268936033533332893760439142978014642343131088402313405240235401111629093370801110889152420614042532492521782503415373008360655501693652957582443482662014860838631215740551068931149978329464935250136671766658602373441821946210213895059915820969848950791424168010350404394699204710727923048820720741553462930153740925769369774767878613530686642980736220424752115128496814160881646979445953558168675002431039219124652766393816139036842980297654602980025613465752703150931755486089339527926894755717864843456420707840175923551871461065787452091566779719783378586685982189612707438148546783841727020484333442564692911976512956036397864460545171475731842787664590910072363091650660172232820302216254948778225711538348510899628770525014347170303347148810526027343710528696261600323837950916472279282560396092900898981713125426578210481774824011768959895567468071497140851862892051607427913965922835160196373056632013094483381049860313302075102049961477952359207065564530385888840584218936733255913319748244657225629663475173621523953119774108427729247126093351120588961572501616825908811749407165086170212515962024564964690958830130384715680283188118223716418456562630142886229312508733785542163781441741203970872441120952147130481277774090262464725341197853846184077636252119736068321767926488984631857191780612807865778393139423096417791272439522331769689281081391659278348040547487523042108039101257875395982026226446514951745345609970408809631462808646721210044685225505121201011342793210101770499136647590682109205483119944822122163426847585983819762652884248417817664133637821935332859980543381409555564348920921324800180223588088189176528911627025208136132392786134373017925439238409154638798290140554249661061226033625923379102164415945248440455571640036547681722900798226176090603681562070276158079046003484843159657540833728653431855208676346758406835543545610189892337978434664668659625875453684612887002641154822310764620753022624907540393458243499026636726602162087578732856797155839554239138136190411355697392947609761982894758342495188961070572809021545306654162726887034557185299299475565630499196876273929416152220160148155627440764165192896938317076748241511251526432999510407854100802482806698740938639697388623526775680885436923701656421981933191652695582480465604125578266158021402505304528580436112741298076244147618221216959032609474064974544484368110067047189279705351149603362866832331343574605179283016955039471938182734277636147352740147893520602503684981309517937938029403794372679006140707426945941704043584564567359602889386267549553697925071153462462578099224235387851796515494714791794370381495737411993598527343979262561689082826395453574084675816276560825078818957425740995652685406977685822115818373401632330138594216152000048637525352664281057529368952437326688403481598311703886005801389763849695666381784983938760156608944472726787379917435325436611954910998392787290234290790266907302686309232351862347005101841171561523015006182149651086988273646242007126988744352613030214244221852996979209952597928515036023535812003005111472083997535218850546879011815341027577111674765822378713048817546564556649886056384184277376124755635336890714885769694005316359047294700762496096771151685557664074729605300431772675034685556164959854724839278849299070904862415458985827360461560696394692832037542916614126925750106805015705448852551193303046237737462162347807124294506477254229858414906069164987169962866885839841546158658449481690541832629544529546275939403888306537256833546002574200044511449034794983827933220469999024685494795293347147600881511270931362069568791096333963982262768238874674086800222215623983430207868924716994329170910298764727845140619101926235927111329260592081530094508532946937665740508036563093122971309680017914712647426019540533023795664080967019003020113067919746106855269909385283303453255884087461894010178680362641196384320446939747397188741850113157077648198848201812518607837898647294138173643945218744433791766587521808816608324015111318717023103646450407486832075385699901166041820034176393473702575129847492759976729742980595337923377841856142665882006955106670783593752038354879563563080493907649729761724584592499625730647437934512964666125435886799242830011325127052137407542571005741563828103546632801299987662662949982174634356834279792584368684544683030221500822499275769678713076057998446777853447363119233451253012525309553885791525904470060996246754843037928259823036824207668960174116457008268610373054266662864463425993177315803515283231738987872366109871371871508754827952850273234354840735728672838776833744599227564995376443470256419533289296223291740619875922519440321152192434576659645254287357523015447951734141789577475157511008439886090322534424664489829015222498211142397137460138699573897923924950830869419879354789518381978680856933616456387341976964373278866707447348844955631910669155994524397021670349638173776766209746377766330178206062639424132136592466791055136810734048819535866553048412245300520735178554511286784223798968934934846440838728102088736676096899596404366713242549949227594133003185265243868322147904366303778161546183804024081902936542766416350413385162191371508135012582880959676420680074582009051643527528800301047045826915883429796274548280840460083040759820500210528420192690372565452735755918869070889092992744027742677756778884764406881361161282623026145542703572979404859276392591183215003691151972672707768043192141911170016748304963809037683808046527297662840411831880352350012988544043663181838838111015867563451848273692102048170766905926455838129320582955118835680603417580433935732523753854302987951830192677153948110725478358792723346423821193219655275679816068036847299988172468560748879877059545559448978909645752971876828941120592044976517333223870164631862573078048520766948248140183554065243325408152450054234373434554518529096504480197787990333421869966453992215165371389504534127804567758460123969537269037495339237761834595759922739336574334027012081074515081480697214921488674753346649477234391246849642590994190035111634388182067127855272412752361668902570894089050530657106072742174049107540419849456433058237455186321417030280191358017755395146262999787828405758648137411093519852547592000486195802834831205605890298429824123519646292127866379843000706211455038222778825383279519472876680668431056886818998062955137214157518066528269266648052179831395247670624062127960282110421298644837069927589798852494171668774495853904788394892946934070381928523274583092854143289290642977366163095211427010412815859217268809196982893680742350043918038401842451569658530994435063654992515006425445873399248038295798265573136196125875741730616961767518639974880029296800134176319757414578330117018168713840786266310089180244517441643474739051073254833069260335809635808420757228612899224079863529055866278395809952766230562575580024585334832633610199125117087136237340963833012644515189681694219349752057797496826370666778440713564099069482897989604422646176528388768723773050095036040276176824401456685821951430888709126699411622978044197261806200884473037899879089648061701466905632602118681331635676139812054561815066453748416768111445623763036687656450325153108522782204685536592509570287783558897756263988252828429622398476067591316810234872513532704980297396644411894422363479051619030146421619883452737391403282288342065563002915062408669244131841030854017624164998730273318761163178038027932201536423652545868456044386325042303001426310108647998705057309934327630629822939274035207836722325281055006802172023333006066686646947649652217054440710551231575641513026149451047780296227957208890084874746521219456556949342900754808212379625331976162044691698117589550554048784969365341970351444607580452079504451076352154037211247135129777673801799751547887291943370569504378024292462250480522646116308754748984528219579238858946513669614039366696644915889601248878442439556619803066840312128862816440241816594875683747978304603112555520927203724360753638996889088563821900823830358612660728055267114802713062355750188527678122294837124897049634872364909362259738143578097544278925040972880941506691956491571637718067972099414786886376338363811619904700119355445413836364691222525016358925580121762327442014863670074416885407146452018743313512282603279391072373830414868555473291005203745821201089942532897993550152147365347110448350929618998446626114986892169400423237362806230038923496930280503389701028511254689555710089240061894699232875425333940872005581819414501421364402553469833038839372030052043552270307861952262852696683928986242280773389847214773179352192719037909309616589449873642664178914578858176797397998460790245184126028092209657792566020368186049275224206062877970800633258379133753888379940746569132886754668080656643950630883728407380007903585631648629665764216247192601169577387121793399368917554063137317480594625730580527520955906336870852813948973288777863748331020766079813542050563873478868462215605878205031522079680060926167666964695452472016448065372838049334414272811901046754462174445849217388290635484729890083291765762765779782526856648056224569328814769783169731853219994966076989225133230332408933584142076024385089269148864867565993124786698672487616270237266349179230877596055893383124932129683128622433471991875988955809779137615676686087290504529196308393557000337224192035851994724157018191941904945597523904936391051737042740218097522352642107588764497393049767480430031364350411104206802265036340693253631426995156789141468574387079917843320155390517618146637221760294230366405401169628717058311627162702838994833326747249093846570913079539260786765216964676495892288551757181281552024250749960235554985575326503458691340554111991035691829035710007385406894493623197514645086387842825263104176206625174794552494738472862933238696074641442701210803705193589785516344453874012912876076350616230963938805177695914856832500544044109529231849238657532766718984319325881651805789719228452335540838648996277156440303226014730735669437439770898942645356856230558002425452135661025958038708229680497227140285259203588742699252811697593918092786698982025727586713838224551303540106142213591001704575630984166919586967502243946065680306595841050924165759831517293400125507606212178738280556807890617654207039618039771693265228520270136065801192674491293927607611720506800010801523033647422943571241683814893700131105138410309900417127321447756306015945259448990965799212678949312759777855597465262784832488634723858623137160227112523816008608624146803219718358116814645827770092473649642863910958294199693222359364168751673384423803287959428096678563354360878897441318844980829507301116753175663715166960683778329265998344447527652688646977924857858678401992980666733588013419361479975808200873056772469334955409007308057611561188055072201701493626417382711764249650786213399226557742737228477528011088218591305058868094379481154515845468866138846587936207180160377801289965145149311272708405577051102514674204712302479617555782238734267429311068865615882214574707176371994028992489838642633588853595423586965693555573738091993817501963700805765509295094429541906401876977740379830947488590057380679521628592056884665738246426138477310188013089713108490746775300773974690289900813366143878727289077622428144998558760913688722657498560106782451250658088685144543437312483761407392826879172642853178681983517811109526905189169442100596465602601353897688231284219630443311270712863889475802710767067499460650389315113082193145308152289644391946423902517875936132663514242365261870839250774049272039811266706482776557515432090180943513149706499900253722550952326215741157802416847778443118563960582969308093400965607080626623867172116191951301960807901948912131126649704030859604381894625045801047848199847386302001293679025660510509169598166664476569087823766442978834231874433158178127223670341250649886862669285267771677100900784230156695639518963602063611322598962319586777569450434056437440428351239854200847946075067372197710187764047904680532015660419852398645385302838042007925072930745373943459292169564483925467646048399559082828015061183419908153908302085744551585360653990349687824115926485125906580442395716947946322776911706059869736509318667843641349009065589034675174422077234645837277279905528451649804517264238732924833666849452873277860601685837356242709767255434970921148071082184104067168233092829089967585012974622587241975944357136711913939734450279110056048277529308715604435567442364254219196629881868551691068620402201204729792324987690907818925198018809596200366577649926835711568328455954662758477439906402682589676014947366246439341390117386685549826253200447183579630138346103950855316084604407967018788086624519636766254354507951147151448927464744866567239341185051911776223306394758958095228996454195742854548840296045165655235555323168933520435501558028285937106921886429860976366742432982588768740282525576579595147667748800285106750493818991906904837365533080977261956757744541091158424249884966448240577435790947802348825242832170240314935833035479078686435498710795303561637175056541582680434318637127657508081677991915161349220729339825434440677429143583012941594457382183017494421506301481574797368119440585006680409540086894926731447846705592313995438203699764181359969164218435181510460728926960043196971359370475643682359236207164043291911457341895265515703060745006527771003157127808478849691121856901162624425732412503416037811933190214405609868044591469478177900547111546035827921898497133996374778099407211609810266865416119295641596997990112749032660443476973387922169392191666190833555049502932660427243731836196449750468047260212798011309276604811505373111212778055852760058153067617738895478336045232156571820618914874663855384210008216064759120276939139059591530881161828871673164631434346766756677864806752443105330283683426076016601890697391830534784675889524531139772274898989278492371304111742011411306744842037046721864769536652146359726743094394406146502740891858943579977628115141494266751662577583638318831165401373232879500886321249840778416925064992832719588335558715814037965164624289111775442917938105176372954588530128491717146493443223240850517034620510199789408718447628187102214332066818138887859420512928363772656777059976366884907420049587163555087012843264326665101327916296143187937195104104349429863212256781241713583708294201935833522921902198828129747087047885546296416295215698091047711168720618089980942720305605253562982558889632813046510862169176499139412393267144087241816996069057602997345410940413707708205717855252051786230282284322052955824637898755731202502659875819155124738649685245344920247803462347382655404475185911119040678792538805574221572405267733406078036211579855063752622271664354615849267317549917661975651066226524985612937863647255104988117292334860186252225125106752629783932599457387284275388193435049894852041939090190219079733044478249341400142376377413798324377971734757163921301239255853173161610886581752956184927643181119206400026307063755863029859836018798636906182452095091996812339863559942315903224982807938344311555911979634985973645901507377994320141309235224020394671670251606294754484108961501715858036386944519889844905651646972257749491827817671959770723501214474906639779733790697415627285633218888637585762869339196306997055139825330236622123642348642295567609275731735560289775567169813951405268496721756048070286716282822363098612484831074092889451117944412401945482801992090796313267739348074265643632196136585694821194023516161207964885241672648896537650546025862484210616640531518762492487995790958592969679732722947511580699911082046923898987538291518505185484232676934884404554081039842587536643542689174635548816665457907265152756836326004747178108957437797174925436550494612569008601526566879230688688837278431585931488000803716738816676615239377749106688050647816440410535700059199448810160780832078155357473642350663901629378298663943121596291114560342117389538858525243583220772824345803436880999968901170960588830332971339765220580228568713123987213873557487818386096998599679078901090388462154360506395552446538808552004522481821945267425952346354427590743865196620946440426482622309431815655698590109438578160541851363336045588257522882155167724202621237962630138216573827003725083442968337215218381500695461308217286829335713010116154825791951992118772528918738435772785417510906534402661705513464568926919803571013233723546469060646239124990177034993770289416011760385989299333374340783654479132391874004863493146341339421269194168912321966682275857900123272103048436391356305883853498482140675990925130455849167450117548529353785635650164759742507811544762282571188954887579503411214548934203623882559389159294285459267230043871798905616215649659496656208050686230256917288272008134926593996572077151740330163371479795609941781209527543114440396563989044602440577366662132352595775085183441319023017560254537805806863199690216361706512266172098595202340569253065348122786297049696388713694057430533272006044994603943671030968948762993152320974907334925952712849697066601725289603739248717044908489536530842306031929535289588223643745730863687606882635411343021542243525639728812772185735824197918449337044960271759354666929309998311932130748363355439224648338214018086699670844510799980961518543077704706890509738858656070828743661063443426029097122469977016875077860608043210085210613261226129242248363736581003157989880160400226173440932017937088958930310948103750484162130946637884813921310679105612392284128025777361869267256058358630122807801115747741778643932442764066468746135864879998138630604479246872433180476804870386077561801393685844800206764117140513990727893189392040686247692710315412308662250931784936357865804556428875255495826993986043375687356334735123255854636504296285861823582634107326751426393903124664011116072844174449116669301669087085177949852728098652240519090182644523582004785922807928813254883440867139901800010199045289364593044438441120786735194157846977587003295236256591168775777369511656467136664068620913451903018060130274648780642546689497699411151998553032021351862507523791339303334995405395977341245211572791390029327946553592713569522925037627214884349009850874888768523551691985017007699361248447034396559143060898317033633935072408661911327720560847572650160683859294691217366269577897367953641677760487207034746782763386852959424336005343820319849028708640753255853509437610187614788274519212817898938620800717344078408669130380511116220933172523812332534927413983109565344316454895959855318466872371554452028196245299194748446398982498652587966835300910846026961657513157931730465515942663202764175470138826788718405950830927802522389581884023452095891433661552067026998554481322775677730244957918761206236401006150637876742421814221290080798231103189324854448697827075926147192906750121527046658971443017450967750412046677482761214069003697646826693602553645613717164498113267209856616851910760399823247203678315635624320746217757955910260163080196152600714940632872501325033143335142281990913255468483822369324917626064192675530316861284884789964457061388666816531097460934136220104230552243107286198574978860339348056537006148241284016764346041400371961995486963627996893715611901156116324692442747897138913363175663620778394464748777081883368583829373187458587371432847167524882045424033176152368765168875848254455500944975142805547975806293855536871018241142649186460278903122991526662447055595128034130499692930736664314119554332290404393385676173596252662966850749265435241059813162480748600835483866792503658325541845479640516097069557627505503545718663288726631527959906734655202943164051937518624403646115833786696473046198980400488864357141948937884304143774106091191097496517276286063558541720531442578857121982671018075296469414300899479070077926130896957702069697397129874588154224291592696606008928667934420794635368968932030006718999994512673010005587390934949949175127824174873232210632645186246651207943740867336193971695031397891169257232190646364589023446341847428271664016854735738912673764451656639662550427434024504748434020067964255912491747692617594096214652185888966294811266427790158584932906572522208754307893559847910933984371297325408202330589595669749859083172490373401383970271607904878795402172888012840249978861947167824817391787483856224949073161583090735948093166027224204637931457480420935337164616098627872853238384688712610185194875062958845022797994865956942381491320308163556348987453447869534811105596380445835744353330399409659160051061522698902198742008080209372737599673608837539362834412595902211852730820076117103067314954917597009938496985243696102776883092587213189284051351385343541284282227590110078428722908719149360690828756881942181977717488981896808794520623842464410837442469033630530322265100875501717617517069394538605722453994771978728464410787063977896465392667965182568654382508034908537498725489405134060873455090260342333126985715194952544635507959438878122814447025809919833878898145045133879745134409404278272907259668229070156065333001908158934364209973826205442456737693846060753460950962511630148868808916335985670668883485443076267902510928954079988260489803962370766147789598832008081383462586795172436835452424077928839621788134280777467372905128683340849177996223294694533689255036906160696539224501892565358760996202528116131219143399298366173500132285254544577802892013751750194477281010850378855127993183373181602817065362842425562793276638221928883505938041275608282086057323151852683854074178950518426044929181397579726447365013509925189935733772891817865489770287456814827796288482872413531338614423866895611978600209103455167696195059678904829474105907218154121644839158374692616625498622005489758744701898141639427443014640525721806488405099899042065095108802645331904763505749250156522849184086714678357255256152372386188936416828097461579567471744550357987993949036107556588178077070561820608284748473423149103742820590055131682647079934100809138760797011764744090645174754986551554185395674303168728353941699746452763677701588087791901747711113526883699386831403537507565871462446825547935999694723934055318186004867494052657659502852741718954513997866736245585933710232839945429292245696397658797590925198695314596032557405868029440679237580441754390464464178968886048316327038527801873709599574009362387936448381369365974039936314459294078848831054370410581355485964298425403699594340734758664920909147938271479929523874612596511632157934870937697402557320402383274847363086213291325806784203361806499516851526593213095699051164237554133270907436991129286596930552622395287358240822747778080782181963584088582347889664089837573161901136786361698163042815360927655183832785826393233166348360479924726646709985464607568629331651467699225020555987133724714892731893494144084024287727789048406525193886865436368832325246308143879625792995648604695748341016963756724565755377484887007753108438551073204099452318270373311865292663422521999163776872557627844934404356687673098514777283052965745704033379553528635911856864957043565022652457093388960359839128899585039992071673077837876880836027867262551282977929610772830237576022603524617624244390887792499776567421745087670931247166715458773453675828639867436035375740765923059530051137244480938231229674663264279450218195241164580520031402247820699771852560304915374414648224137638538812437066745297357817088562035228016498437441059945991935159326254199972683461700043528485552859785100500955518148542567933547869093256915540629505640309394296308275671681896439198758292708895847269982908184205828178618085500937191508170341403757326083904402215978898975333000176898473356053024571147587745265313019335937868834900407410929854588003913867533053806917021948879658079503030809499097772391026871523191654577161224761424980418396965291479996126628360048819187039877337212620781570669815814187482276646318313405549038541902339404445141818734077984121708743790550359909947901314881377008765221953653946551062266488277782242589258006884048979003934378444677372309374617270194975699451597710840571503627713730665966994958989409869227815411451977569288716682480813247883040761561306955023514190495548914123899786621534200204902934476893652845546865357443898257547038103638760729620671430628863341621840099438925502849643304036387133043539463595679654573931961343888317587805848721045604338748606997974181093381414545460131209426854209702269858788642328173837473679998263969474350979964374965160838519352910078921946613520480647102840973771106966254002614076743411509011953179473281963993363603377918087383843951769367399562447269104413903702651394012769612154523987534827912804119938293261047222480266096460281095648860735284648732145082205418118616839999873643495392898702954859081034655627813465614581284155005645247117596555817242200324080609024342623387487409477239904590836133571320917168046770396032443374102927994311025504650344607071109207014552608695197361686370322729100559783346345399829587370671802802842694425275852228193800650587395645605083094497588944652587945068180838850942152196168787679175321711361405718600166456560150204121243238341622620425066497450717827235939933353043532638771918940663550166552013777496667533994941878179108887967124005373944777918435160440514794145681156238217285732119752589453806961063731827609606267576170959291636540971520818034345270697418853427271880603982660814795863127426637637752665283693624945161443986766384773834978228165055018873468960575247488489705806189756366415063246691136519349341974988671285810938284143142432477859816108436211060363652155732767079491923007118485381633007836873333507343883480948831382057738870517826899886555385932046417163595562323836047033957636934202411532329070767248613601657916985352933952978087235899077535703325382826110279595877172941004077599881499967594790412162751360588430628980953087381440899573082026240591122371400412295216928421418835814144503333295432433443678839524959424567093647147171342006018828606471325430512193468228272010505701429690413121619467051389257655211372754185560749805656787975416354274522498713303168236571961266391861532495570309974737113123203030573716940270401772666613986393042792850271523840965314551534578033823392243226808628927568430661985968170393572435794921976088378111714081366990811837341013284064578549595744752810541280682403971140802868953814630286950130478642723530199654389115575958940577069774209068890195698195753593814495084070431357359599902095012237867917970243640453452078341902024614593128923041014716012622362064782061307666259318637228953148424045204138435685155134252424032022311500269058304187597799481592170206866205995960357607034870537386372635940747199940023988562479618723419499191139148799695714786684765692607233492922448955855839309240887642254424270025377381692974294942638004010223136108832555824703060273796909225029667510006306790044528250144436439424931938944984589419126004135208675052204512421667600927160663128849321701747899786482983224584778407065764172164897413814265209590199984113548958391386709378732791052038310931225029888912560592867757302006574528501448137526398096493965729042007086827884825519187025577231025447761099547127957380116844023964578877436257726430286567643681104352335568495633528623554025221847428506603923334193733281588011933493962488545720072680117491391020109432128280015791983972901472789971353872143999890044120261571839205815471849460304986915775160912289675853171192787383965562828439201818607006729644642383610622586628086389860920355678223378300790245262721752869571679847966782828532923043430121591319365614253621443921578117381928047092074805379209979578839766754984446569301588400598308950079976029221335835876373500841982930270099855962745715516850541107413166899240546134635256136827453773920151554482551087515823954400844987461218099177656208328361168266432375545721164150051854569045946614485280072543634609609512796986811104618535164106813155973891936111664363989170039965845119957179531564214920054165337367121857998288919606816469918719619191258779347677325928326005015767431861993732903104942546877110001272991159348396246814607731486199587034758892039101863372824151779328054902732467280966070709781385360114288498167151949586356267921638655588162182593730765753858418655754949193264037283104870495949864569031744368531396629537856748987187164482207821873832397603620702488319170121605824705241410691887998195441751432841846717453081461059130498702087684789361234743929290930482649666242580758654432376014023592113257650195486102648691670932654887226976896207044176129759967002948479665488426621716576220112152527273124159020939826023923718469249187182185174591144596858704688213037555981681114939448499615421139085183627772428172763912858294123577193270531070896150167898042937786859066976875232773104358718298627800414293014647499934559578668447203370187872404190044300253517655596773714728737065922638318033653710768365259564174950808331536028238839971985821004742104912890254371865476728996196984532052300594593881548245109141072933175412828907925064570958226464757721077355853230080074163386027326197231022322951884346091787542935023299814410198345901462635719932314664690850978863283433326925899042055457217031187769269757138039006367361948783922770010854452450465466490646291562422356382679959628291802004371114291120544060412628652939120434034393535046249492036799272646391088775526069600770929028281741499704557106134337839475414659839871672471095652907597306466657403264337982694495261897154201561765662157508676811500037719794482925937999284801838420077789904442747358939099118369005716832019052276007344134545430713773216581902402569024962028745177608633820703743795366619927169995380624528503216068503667732874813304638796901103623035544424450625562605482447122704838213720731566067348413358860807021262494631474413442028698476727035947201983646527466028846530127435280852483653002217555284029388018590963521952360322339707850025957651775160649426501217817175443614005442640084064436191070690576099603177828346695114183368826376799503288499843417711629055506805222894630726198988640035976354565258617051465012768946813880101611669892265506719115909116193981521610888135448212962720797775423443326929671644880708778563488679285384444782547396500043847958904660758325106373701855633608888120224418260406980899733417664991784612883728881330120476695332344808874985175591091386781182022778903126707255556472906634732122408467940260120979437034334575669375073512613994818053648401339323804220066780638272858286306240619395441869320797519516562043259768091886233110454864941224997377705564531971438313001118312417594903311030393422502952051199964187394217259051145567916812263195754283500143663035004214628578014727223616477399661827830074497804257274418995858791631484389098324480388468000141349387437930495496041443715736563940694348950488458313018269242792046699121196046327839685272042850269619275813750641383772130514869771511824995130061935963251636236905940126288037050634178929292551885727202669452346635391089137650402387570348099882353747933085068425803854808090808327104798521180426725675498205757335914708451520040642218227325572697540154404059496167370110415955161551823237317095107589666639115032887914902282900372220614730591695478894874839076951935567135124409018977112544256682864515278115407780602958058282019661882234398641839264346103610374650743026708585166201511212279255615552487838532496554117824793426685315129694319018903463386938110463663161943491687920469100238009737384421255212399416984735631540592421564950870982634298004717959101696700478771227242569691561117396569286511813731211281257810492074590234222306097052467121439240691090712708225274368597689474383635808454735565491649823229057038288906484444160600877144888389613031889357106591335139956244990955107103114835898182751147592990029268133518021122838512904354973804619334443737348265945088022666532499765075658775143263481250332568530880874235351816269281739733904976709179394089026223999243296686245720418858123237263439920141049202159410380827481621782873182829790861013008012125050026316944554518762290872518929018540250446369625646193700500740145830815099336356313291634181615433956306131908693695926951104514544680702536994739539191070166188371509841782403062855455124604274726425081409107047103928026209047521217129387734333673516474289399548917372271428912701900680052169322400623488250025002192850366691277349616123826082228601095167532582715849015885690702066461398551400769254905340514981679956099850153385056681619196385660412311928266936405603558931907580101397556688104656509353115107227834721073198942114276274329260552790888664414847523463696857111540727327373606053917311190444546455345698336764639499078022254818245242590564573269232483710629876880659182463356906785491367371175192860199717159466812715379770954691726081488677868669387013469458582951989506351095409415599804530022099500007859045379807147005358682948488573322700758161220211326779431389478497342750674355927753895371410095699583837288337742734793934489160098711572520344290108924460668448434137168091942031068951794480299346037038307891100502325789833493547067130979110308665762569506659532726623732850957201148888301142163524073268964720869539287747964341954459827757518956531789842985650779935704730661275794915233378379935509903050701439206118048698086516042133668998564133363417794303623662729937510901647171967482891864003796195865522251894836252609425344682869321603708040646431426195337257448517083904276051866120520707102953606296742220644140492943269727532471652039185052273770145031535238397243266187346260080706066977047004529984646190942176015695058139277050067914638524546244146598415616672902819210010347256083214292564615779316604690427166139604832916292588072724422565916024476736067713718478819831244063139461118121952486036982006652401458017257220380470879728166072771896715768186943335266312073723847286534699692310318249035774593365701793024575086841757172225484073843847039442214353377313008243072435224065782437376502808933335107521864282684412235539084833986218356475569999240267951228914382234247427216586978905961013855834995372794849860894584168479426906950514574848039622381434495737128345736270464045800683008085810352279064247185073287454242643872566791085996911699255832651180477310870648641849151100216272022784297783551122737324041336594018697962377514092291198002149520064126729745708120107412574215188173991512050122562511253711538978311833494269792737689733250263188272740292935019113551127000609759308897174314790121404179691554279293931127138082527230921939864674007125174403750947153789748634622837127249688644096554746629495063463750096304230524049367495919906533449314417671035162159837969598049469632697375823317788853176798423759106850306392749197115811437857881183156310504160710220920351693459748356791286949383193921311964603148956694477128469899180710231615924039513241908088271917324578458596721782797787327102270001879997191922749836939570995713487929880952183340868572179733694300718684734540275319040172257501224381656758396908719335482257964355424459703581437614825413169974941716879903727257026698471755070033627391195963870048508958034214029027991356252652645885963149574924019392951834940165621367674459025898033654125175194649727074702812420134591787495339746526151754005478063533591203558524609777314426777136847515000951397135239554240182057791544144822232705862545473346814875781479866458245677209064186117277174735081671191394533374899777599795699183456406438137959229124233033488232663400111192754513643030764504993904667348338646016961444851989824168462627626113931015135041218972010808875966472174997956736927636933808454561338157734738366408998646428807807398849700549334648932336164778124647168063794073513459965805570667992221762485311122856560228450642068599518216617167289806484724849770348518739316948958217240171466480999859512522449825271278061914368777445887494838193333105228093036703864300123363451222210486157353985881224411385772959251038952490969053142099331412575468228251379591594855100949219543017280976536139276988577581972940701708627083380402552481835071630410318444000899447838140624415815786399463332926572540038756294915464965902532361542578573651057540278210887454187455377863718062877698842475969793242695083685244487567283075125948983835336847783026224159646594037614514488257847888521880670656411159258236546863077073820911106792740364747643437294936134190018665028035963539526013279975999542576564117167705823067428756828571034205787633992182872055660671530632076208031747965860177823672944582889221079745018594390970354460335097205002971294978174570162854749701682869498747455409786220592023349859612968916157658193721833027297200459404432957112799530756508553011990565088702758575668508747556373789866149770542501738764919898221059924446812088521128468743556851973989202061702728618703162363102811923706824262132890844014335477283129002934193161598560764186585136707701485698140202997114808165271927934893098200475530871138169116335892821016385793939141297437190596960716125742679678432297439590592424597276270797190064086841288851441141438767965638700236991139346282855798284388476816827859636979497636103456740768873517060708694944300443144942239434787517791314064895069637793554804371276816254446356068104072430101988691631942789044122420375464997514493177997545746790223787506688750722400316605438080090256105257326565518916426019849096071633399979669537937422197431507368869201848525841785795298767919222591272372590480412734224917857164314641171017745053814749582178505858956139131806058262112322431683458581921614838899155171790818270762680184939946834727128229338731784485897640628452480318488860841287712358081623331015483932025444130364624825180597337036800361381192861232930193383508348414591621477242223608338382159404326550089329174090128874457591660162646949237416299135786414547625327311099885467098594661253003525504182669200814101192430014841802089628885828474060105046278351974606059586297874785290618103080255539086777188349082385264200423064177430603130054366602937547186091869320207193738746276832507934559359783972257786010317248396779672917519921956463331437250882740623453850562134690460619428215843926534199454830378151618823340342019845007177417467576811295840275421292149404068337667946742643613648304426582187376054953752014024960810443877855840958056249047000008904761940727087217042652857031879562921400076364783951302592895474346854074830393406721551402003083224220470960749353671032178084991681041228693035258213319330157508203598546626891911009201861421554152551120160468921813978265303637869469239059487036137635460943104745565077139903666209462985922412911640234677162111629052936040708118051565191494327677311942452878814075229869369031264852551530650106188920025158293453593180138195167942735612220384474570568988150913096042584837689323077043825886537111671824967663344279093954293506757428891443461171924025381252544258957572502849340039064163699675594725962006621748833941249465268463767429695175074110069982929973184823163339124787768706457410312328068058150618995465718921327323634647400414777915866812193357993955110652962725222609706662717161312373518595932742620810862481431984184975967119600232216298694939019274304041321882439943020453421427571058964187096432179756571299743526522589540402774935803978621336729536057425259344059976887350407714680606482418564110471485698722077855903654652516348476391269374094125182597071496730686909753470997000324846515925549510775231617771798544067086941424434311510894348446397115919896311219726410845612715643523079849542439878575254764860401682407028594259105367838564072122831384263858125751680951209506209137067301711607015669155958976787708195359943372045458377956754879461023377416879593759841310006802688522908942510591782859191257806809606553818616100105804222137664604183350701679857721251847576653465918834716051597488032914122654664727011211474017772861166087384692445132746156402890952416536919708335141804852117071566323090793891222335099216547095355624725613759320256774449163561210456532691791402240678748267170999881336412557047085071680723993520722864221461069814771073466368739802632020731532372569787817268125105577156075023218392468343099946745136303145368434749805203206138732012783991390735846645495624716961885725662024764563073046613274707524157965308279633393470042260194908361461130012206494088285698570394843912740880348548703263032561735322389737137122896773758482735259797888249916070403243214984819541148044364204191864627503622787465011312922502774968241816373471996009357569519750561994596141701085886276687130075614469938197317147298811532442789689287005452373927872484169914146639647214502882662794574381676628020900226414833974209978082144092155681709213204331409713870181382038762849936732688438448190700750062632156539647956609535971545312006717746838824060560953939413436826422594131405588402907360871841015257448895283314725911531529046951618255996477185127094770618011077577261815216538973885734513528959175804740300378199695218169618668276820671376706566621745253880993224742355817365958793522224881021166160603891166152093367691110516095951227912083431757436713867544135054402821815383231699822431804217582706154202525706072491958683717364968949423947105554781280875642723716258164029300117648061837856710069640754197454559133481228994513512021722996996084954096597895928213885743784635271409452388394119142115037413655716037347702430811391597574919284343094493659943282159055398163663574806051443832688851114773626899066664770888052604325175805131005055596057452486332048108390032106456706700458815031798124688293338307866407986566080259191661785026347629414669706792953018172294025489084601044296295445901141286057901496509292999093367145547670713288976622738215345415974827341494435721859516768862716835574975654847016688488440985109975194701007280846135728464117341610190864801942985668925786913250648787841755002288295062411685151922585503440647317127211113989528925633243930525832118175096948464491801183520084804833195288188759386427988686394236171009153931202909551697620600073218680305998276227314392524750528585728743221725695471644989127181102655668090580086143468874082665861059190397195867512454590853879494633615686970744857933334998181100437333996493879292854193716054727160621722176298677103396359235896926000699154864355559911932103292231316844045716720909945489607174447621899938646253974745717556747379776989670073529155041260471845170936099860028552498773851354978005039544612567506955991215424364911242147858472131527720422561413880081079973029884470705007914627595597120161087488608382372550639826096903557969032809843668652935293181324858086080242634310815106278476941583097680231040039300946846948944544566150127829338734118684308994879198642318108823463824280537742441251549294992537118037799179859003570328554216464749256702108359001990579239325517140610085099300245659227864261261446777373982589998593516321571881801416340887779593737868326781744672626243112620956193845532473497058084121398020662964444538141339054979894775948256249217600675091039318216038229764454646736887127714685364194412767705961421156792610980708008862154308242287620724346733311766857519037432579488459624678483225436799642697542049708742796434447586344060068505250965808802763067313475603556472477903160847884546276634135794139023872399905660925171535584638851278092667706714559666553198813092625419263069402401968630076850289257749437117940326388806079810314872292158386359446423679125036864605966004999517289814000925268907363419834384270621624122240223270420877297362263166557246006512914755427471683981287537688343671468234960690399973106578390915379175616865299615775653779549712561985536454868358957728828129443706117365898596358126039935290937681836264263905163001416330813490332467016832694735127397068190521955862862424961910432345128390473256638979651230370472411880188454257808900596705368040646720412685318739214095702734463982075475356984497791480183374345303786965056478843274447751000962849491948969110848283893754038720138963578515943590624077864435829143041900722203097953676420459212051088469399972671521776040570014494936720655391817134101763396991243011890742074255554150257884082585406520589353676214802480928880251440600475994668149266919083285231309449764927934716355861655760400394522500288791202711094405798597613777361560280879450208967013272621599160750911169418064927601126284124712889261107387663557217270332030999953212837515719561495866469310027650808117630614971339181758419696949880270682931874205070516081025131488548751034376599589491379341094220676170915836784602194526591658919206797551035698069678771355898271740028086169164063231737747215846992020423213602243128890134114981452545297973804171046107520090586635994062544917985886947161885475786371494718808177778098507968353593237763908375092511789882296256889205975923567326577602537611298373905396881393748329081526974568611188726972455442427374652079955061914420679251673830445753463387409511948208478661603292514584399721228862825048009584002095907725252390779634036940378021922987880121240139098761143616759288591138829714939790306647261409400314801073060260053317594042377281730009577666097008273595570487169475410197669994625756750939856635100711271679907522380585364509635181803702568381212410692539038501004465545449798133413599254028618551318686505436709377601156069526292767006597435309092278693789875347320616723118864977819721036664573410169209297943407351569370057070941048190075244898510500924458533074100417777833497968947231224910642979353001916486276903356937680842778553617857471635912811524167004014918127682442216314713162460476429937029375176156197435409419523199213813575645570419123187408466732075121033778103671823432630519477668860176938926668151854601608266754938573563443207742260200732385084683548285662626355879460126420882073015480029713924804089020650872311726209161966196004893646567177371119804674741205691688601098143839359335684856478333045006495527604660451175640583904003401732136601059878436828753209925524343930064766684616235764517540044729312257198894685111036840257440764869740416474261984434002976362678905646311113075022082119339143803209333343768468415519723354711943014124137183729919354001662071205984200299236249730307840218523370698444964040392021490863409110787816150532438677438363888650723985544373517090025208710556987023045505868163808984615872592952185992040386652831987850862301358417497816730221671788876965383005224778651184889558869278987115810470187346793934468173236031933947211809597096348344712841801238621588998739936626106340662214645532058345077489755652932152424221316101296014197083625273512149300189899477782723064775646330507049352201720386394502859340489615273483463291591551539217974220997059932345645245709691757777292521778747995928461174689029860377720924089379696461930938500307893302652396705764185735484079187036434505256604079072950640828779213838144246024069347861873918641266077257189349197899657084272655213419107144035059515759005452927520502797973156860249514236547477024729937767059531013023014218512841520527106101371670451302150088478402343667558425271924851603847996408998117980454380347468548788140452187883340444170137115076852685615491700867505708406664447877722630746062851098614210902841735729545899191812956132456862012605994958047370511670144856108852406750028967875728134082534549824606449727771759056593575294507943239300635040518296462155314183364471322153603443055335301492281287364008146239475280518801040097481472318752639119153220366059762705674865543416126806934780831199549159892771668301229095014222547841436082190671265339095363400183436203634221818695971482994691540916527599148502580656249443459625684753696040435958793815267345858308589159157715495840264297571783723571640082999692831398470104190126282266979546397452911759225083133994916253834800702035608654772451401840615776478483872589182968903690693173802211357687268096722255759762026478205495107228882894431807006137595853630521893372122771995112893602043086663129969346623144884208348160165694654157213919892764208883096677338503292892096381538550290368704683577366500173346502407097091055229627707282519318422505102356571392914798340079181310981928396109055283282531319678622321953826004223431107462097597297056357465193907624917163811471524195137288206671807224127934199927530954176361900813575026290916624380449586155209793111142248860379349470622258492088234107935306282229735116320238792286785586988511580662181336420794395137089715934898788622918135208457465905340267288552964186791646744560548710501332347846427246755252467351230972415770995575592970268413554930253049166108003436336651167328322423247254517974861604780893645520292782985579874562602808365673934246961017360235457533294630341728035607604795587961365848063276485108537845615789007016571561547674996079728027246512307491559386730070085369262240080097101792447404479239179604059886955528722982740590238244444648949291100256101506888959130427140659112315422342352614345376830469577583474069970527087064833916155294494080911154781797758036622955282091618042526020970613880707560763252438242694582308969226700106988839759199960989424986543386205498485777353973543431118407603570766143790719940940742440340508182650634275669290112096044573999773845522837922081532764283458194245542692505326788443997078607139450605232470370867867383534522483312685139489728259907635856776027976679263806202497803306172467615722788125040362072111966628469657962253030616316255059528721963510288538211751072147973268050829824001275435901509154894593274962728440466127351535237641423981720514097943595704328385055116266990438041181185283991839130402018777726326742205559912266159455585429193077934115362140526843080444696818500236478391668701755406822449761446741367908276308162380107616447466286028717939607761141756649855867126470136430332660031578639449683769046681404562017829587087151033071612964547587208267588292269358806340646802248755535220487771964978274724187310580584673833311005585670889666446756015430861668360242789321888863872204721141344110947499824662047736026567012244600390040015518578753015114017489807746877426034316372189502793815513761949744412003295357869880445914674274614467733213883613443817493630617089860879093728711827977648564063967069483922504138873355024458823017540204128047522501658005666472505959135148128947248968056622903753066839530121658073632854513908409033465319380036887398160312582908144101691825360030306977657753806644536204189899011778208967150248856047226090968294967796599754921858091454079895334210877308956757766365181813151364751171824167801235940780712053744643172021232347219808152858128066948076103278416103800267038086202123695655699609886451765315973327672344903837003024315474728328140713881111657798915065890396811499754601940616919017008956331751778717503252143370139191200546977446580297330368786872409863294284110230488306138913066286051971454926153503187438641756813934708183381324811826955271372329265534107962305052074144076778030776401889242113142632685777846756633447243182293355303415029857619726126514592845494075133370620974294463961150217397454038080670341421475534435037732191707218005747229449995058048264357445104369491322602895876320437349643197039181682860206757917671117307247772322412696819332266096721768168818098593576396269181735969588624908674740749574307178964538501650516429648707142199943017904138811068155899322452076893283667845005759440742633588962817260213268107168077374986395596903617492928388337067595391479538429889360587775078050809257777013404170870840216079329504161688738058974726993124192072578645601022522991799633044512546364122547964809306731277802580635511392491213340605277539136749468050371141242716122533868880281908223869514958227282313310339502463523988420609047937251904496585856139369249216798325306606698413619737287426917776645154152242167628469565056172185470925474203088376258553588618260553900170331720245094691200216411511265335000832483035200380490537198565429477736558237650342132646707938724130797553542147656934350069824160408371664140752498444344795821400362857850206022253576100977836886890771656574895948297355149994537089488991261979888154344044611500144472292991116440457009535176533144203798923812364975754098263059684987051048118519617477040313296620526504581528115390167640342630718324682658008439322380193136614175686141495531645544757708161176424018035508355633142311043820991122823501786412959563159580345805438526653454476036183530364425733594976710947207429364714329805579539433609652162552071417844681732631629702819208361906416389635701969506484763116127069454403007051911892423065527993701275160865852910742215733569820251852088871949602212743549574072312615093952614035793994823774550835014381359670426664787683226314954695669217472726849006099499754356981245249308329460782209323824888735574361478391355224025139038394059804391458335301575389454725558154679950484411039821766458722947584049867329761559302179263929004413561097930099297468210245549160156258343715911981384144351286903090193974978255774963578613545392850235673159231450186986933904926116880950876554333851922500113828897958995590983064477001946633982788359944407194326295719750391225357077630606620837921703660471952194391004331984748336385489532545443436385319489840974038836662856932129684598671501602993079944083572949236245255010665320627181606700050178945122497270182829489485186367987632229986212679610461395856117586222118408269984847009180564289637841966766087137213915511343482981123230302688145921346346739340753149757617883610567843989930745191117512045178867392727345084478057896672270940632298865943724114091181194858090567515277307559854044952401365306052193936360729728548357741097539576041200810471359786430050089686906886300532263714732496450402149715358668543791051049819545121817623783753395330113098842069856025052669485439898212239647414437698337939955240939992603049497274286925035387056034603629471470251517525177769632549315250418093753846865050961769675782399111695419930211429139246957548850080762345789059717736460633779539952703443363319221929660261847577897214686525638125287848707087602812509430462137178112092927694707655969159213406695683479911206926617619570388758928095179022412383955616973446465999620770389679780649672264840585660323135223833293610689750593746144542509943279952966280839220836216752584988634788724490278793929733030548644433625082025610224651109094482734341437021737381445928225972353646139618137291758699159594619234738842943954580562433003129610627587212698779766221733208611743456470642784015540690006425176968147828794126538198679100002321562844986607650953321431474168381959295316819612894351772195457300282694500186180300179734323156871246305562149416177888526874378915901229661110130356827813910065080281569954427405913567759687400670183452485893023934666894734110981173732718691168460505897205919002327868534609269482108910450983124768661891261369492102148314200693590412012354966843512001628541995114924676154439426855157601369958219591974368629767368997175805426798184936281226090352843268098281512482031607249667993755003842370486176216920653472440104181688444043980230000555995252696033030565252429874693416335114467096864185554527959351299472187874069403319869957116512380216617462240217875833635801653061373793529835362017114033940330396231327352006977254343493251776758131982596269040614334973955174711420879918776060390587154837381028904794641817885961383488697336318625516362284728652057570563787952437107614863808304175097431999285480708368476357070421264168976366897070518172129446298430077980597350384556336541411881285200281585971877949207248734953836846576054921086871436253554031101689298493941665684213677088238418551351575521132725252343395002122318134177896722362640033948104812974286419098043598409397231489000864773145460072090352551882250955630241391769382826775143422252369985047206882321314997908271762548755145187129949292871826703782050246355633334183738040845428244216031493200170725738197886124102915595905742387252344442137437984420217079231373535803412805451920317157777232843827159059803291795279188870659964722504315880133144185501956492221276053909490892116036111834675483182388737515292137280668790624612544685963864127820848487535357996643805202922360581487613652323645166507000193653808011218295808917928595491725699356625137647107785242540450131857814680401612808198967059163290288780573377907592462004323159514396794439200655196981536092834468476891212796401467266698535974402675313420299851929117858161898052605754409960023793365798487983145998874956892483950306163838574241557674812205660203103321675922506489531082927297559865880340384669934168221177235839974901942460141940222677606508389528829019534301869753105261565706869322698425769446406272989554396641946819314090276076254105075487545723982839839988775319961737942113536717253981802001853170187569871410308399282133567460274980001426641251677544219812152485595661082554491441793214014252298276732725205242005725921723971309153524058938107682877486522852370875878802032982451928533858731234889932358461152005701986523485032584592882068335726126859005101436326540627882980356506961153821189922511606844045843326597611420553460323562588959192929385374968599247117168930069228916142254585906466939190264864885190081980829443249148844050120843356979479610564667749295419287107794135033492968178726299226824616726163510265169062584888927970757222570941162306458107795911622533117635681930144648992653514496224725814780592644977155521738997504020701038978624409260576926602196836120406913413797527008521816705725592202087464446850284726300702632800343788488243967649754882454995992530003497467153514058386477453812157288686448755831972587454657027790657028342219778058726543207253339543465358941438144337248538497322306430579265813889900316287876511825029276982562803336909685463196118775157295700731994454091376339793341053502430104858631489985983972276489701594789360936981772436492256670337154683101229127576472297041611349728445995243502857478172225078005922170750385053175767677924443207160375001110323751610012436411796296696697153212799128049918237612875296579636046778177501479387558477208021187632018526132221249430282334222975660012388154333047419151719066235215284286233064288633277392478034103691237856141704802657315410511185944307184272108388190715124050369643991516973531696876727364723231429397473771595663281989438142342039231691686274556166833057348320076039429397353913336930251627374716966519789229620755581196588394845066424969306367335513821210422940182560897725874906461882933876427411976636311237524684576833792379975038566799912160480521083622423467817834954762877020262041635231380085728793876143935117110333783839542144261670794400960731783014679576910556435398022208356079127635467454596145266878425337261500356639414042824366489998352341543964553131709981071432976490131236240661366428661638990432538742217318922375444646626868345064761111917367926258048896594827930418400498849415555602499453546965655803126250341879025496156770595296369654448789501521406776266751504663870762418405153563992018079183537953530435809878689834208788022227313711401455908480776586703664424256212416890070840753940949512543305993980935794841867662500426933432713333890484352959371270806397202206594336018273992938480069068033728030653043105298495568394203301054972002087408902197229842939737572284823063417088852899372345817258872082454479354378102325331973781432253470347085172535040965374875691753511272206193680548158309034676459567642036579089020676543387595974086203444606475949941234565729862370834424625403030991028892724965240506359518060475176384195202415426248687015684503547659301680756915336248210512415071960320666096602937522724247845244610530249615473073097976028011965941190140605503452722743382709453217051165880495250154244336950212089065100445234785465819565246928140016901179871088071086137180144977185674806593289167178425909235710562084964825890249054608356893694828031032184975775050564755242733255676360411634230877812734675923307208819471122343835608828222240539500191587398759099081871678976443974363708390597003230220468332389011781453937056477033982522493225582833948682408902195458990824974141339479371670441768237721964194172340145896634735057023426674725462881606229161299948492754448097392444431188174547150499582450096902725043053792277961217072049448869424086022451413296036647766217593763789937035672333807387406443125753887461105035313116707320054881685292053219016154101852394527897304434579998254228908443218876752605513494187761068428894437182409573902863336144225928181489950273779214750181462857259882423029303599999007809077519104694819597902832028805648053991689994125914387130027498273764755280720572933023402428913485450310187491311546767031860545245900780738068307302123432052859027037431370328477526725700540169805980484075548103444511018553610418989000384570920584975033136996810503919892357686883506705726371065240236518548643693756571214000501263979001287971000071664473855943163426530809846197541900414420108959348084000175861511384176256280588547997693574505027121882755060499274572784366536987545698449594500817236079352781550511810814492420794206360781582244300636268303290955471523559693472933017921128570588707381743522531810659303561522534508754997138285253657240189872912450319185484902314314742194040939888830423887288573154574873721185724458086750755292810687795689842283226780351289534545578733917005060592761142482185190378345370475478816606271994554656530857759825753228118661872353280700755177680407526680939777925881815472555204634311218462556033681360429130385482019703894796781559250188735663771398785976308443210788113988553357700721780073581988145975193847017391858960707914619684488480629329402370412641439513924067042583524305379342224309944444432510691946967366245938483084701292168519408558616416456449113246988962332071601747125560528746966447533573268679779429109924197328035857335716920052093145760493432167812666821221020916017112181304400562814666510390638720735247661505372599875928933378930045894974088732406918264201648554492451661283276402023526353974067015807077331606555155590737772684307559017844783115339684576281488704579282998609010167663616141107728381464466960768744402947617188931289825659406697168895085147457067562129074946648294233636387995202314282010787486425006158463728647081876421997416156607086260445945848536766016669625851882692873726773318141268399099853752169033706301858221250681248953636461954709661697853827516485828917073985137529292717981541427054466512295645144115099602330857870195590641749064027640696442042200420569573806088576537051564685008861466917328884376714640420699734003394130578065834956624372443424606216911290317278342966594902869583651318057856646963649639962465355051816650428871920616339365624123235048785320176995991985171582751466579967582351858328702981368591137590806068174383379636680195251495782715295527339939459486404588854486298832995409090736052004662799219867766325935553188553771653798990383055311513913401689374305845109798518167018211941335237316170791594546071991125477657130411248599655769307130875886206047896688238213723430708916424530447139131158345845093529245860720623133722438860783244242910036092941870622480910487528155906043534839277877947239719679035592211730757219833999162659783357107173364528068413551908479115262927317393344146360863854040719672901550448119154805598482406662935579239451144345235379156677892851481456832019973406941298921542688154497773402927292257608904460847671771058312431622502103503583152272865517986197256068815062779502911436398343694261661186454513441135216683633793826471987617493008888030845440843922886498003819874631110452606837503455596553439581699794707656374455892665172372848720598346750159498003906971107718916777929138600357259498026646137071800911461189148117789011362385803940024161339350967652171970410940144479564922641745175243533256710066920068623319179939924804597580138159523644764325868562274388966418163388174314036033991994089024239642915276526428606968517122941179239396160105363677600124820249614284077055197045196656207243413347226862194554033967082747347694436669421555041219575811976798780625486805150796462810271097219526124905920058448571784323364308068804818430178838845874870524823326397305904344851595146602758343093028441442304745733921143758657528563081362902496472573089322180587387034465410213132775783760690921959465943163181351652735775433788283353160043111715131318199083011179688313474464429051450336206733572520764167515398939523628102176003355688473426593700137909887862497214000448864282571270702466002234606473212144530614917319969961395977190377924996272756754257063019098625355467995931195660249623180721132889578785172482673000046141358770837701787108528062916616519324588809061707229328117579078524199058110453747972543066948725319387341738681968871940063017725449997904520849756820981169311989629536053306417854289377965996822469815465764504520820983652034071032048895413960782058080765325383225311448412014313257761488305518153373199969980288776390805333484464809122929429889398448582468246755245719645729532623397703713295533334546674879780611776587268614529901583039193274669381712220437708291225881978378242675736825247621551096207962905381962014512129026619504339837484764816276722125301900116326982881770974988367350658707043996492375114280653813296941477624311596197696775608203150645910842925489117452961841683662842111910329836950124653423066408248530680432949268319685661519731364703971785816667022695280947984927860191540073455835937722974604709152078198503197374148018134203534885051258180941100889569363421247746522085277772777273929408814855983123216579053749212338138238002596311063059690360815995821115154965924022174356756412072101945050686863752489982169355480056697010909668613914678136991544442593442904355599130224856921210508819271237102005319914705749597148448267924682881694728100184773976043365802490026825703008056936956331642996169624711014408803843769299747407463049754769338730848717849375632078803259839821340399359136165811694887661120211581400784101398608094057243358871106725457826479206220640519823264667090081416923630608459743717337806459061010602274687147655270141625612985156915617223036545216236305007638705540846167673155173492897503878295639972211331803053835621663858526810003480169092093174780289641909651437864018763995873033124777826611682473481130685603159710368314527380001953438022320535698613964353387292371361879089183277300008217781985697677851158209593109016098904692959503851232693570213555650998586309665008552471980640363097438354883587216144543396721609191444457487503039535871521899507148140383419808037644545310420814718127337407378347875201338429946311485033518821797630281622164812368918291165756755097199408056016490079221569357484280542390089414348885319219177384013348527786758229218287062871571630616827815847079021433893750361371749500037168892515704649672050941601517479567473805717042516899049962839077781837825343369239730369308090449123209442920891607259356459987073736217558558889355419684125997451254052457566964881689611633767066092845077012904930443990866689552297064985498722880690145260006649309559299038202838099868529727410596385343149935187873847738286423686189252072254010712166357996835486273874124291768319302287064067488380482618386307757876062891210052050621440636875530300888719477880135532787261110416144953876938132358042037111914215176577443920671129732293351861513037659848789387566465557036352124482930364160383973954112240925357938103768114600877028700870691796852176668904762950121076498954457011351857760955505274606164059986341014942506362540125235342336098502649350874123282720836764623165055541604830767565136166729377045691296420777081182080826089194397400584757441087421436503071686213464581253529489427747117118863570052018041872922281039703482181842229605610859452338205826965646508186190221280550554119504817508565283524359519262174148814520985498341688903898521044392748152496219970262215988521801376550710094231405213252316698423037620319257952861758597470683128607331759786117335949550462114675313728788247063589214208969919472382486775473008229658800021373020091752944228418092552680844951857854523697554959890588549448698852217179418121150304171597180182764645690628223525690362168207657149298151975069791821449643641888718427854182452740571265206943665178476287014340608799610540466320336400839656390184604442286433617282741817747466746666537170390442565744508507299171241130861005251691688287191513130600972810087361774841290645058619644611556515068141052959270562799615975927512713399618485163338018072771600644771617069927717767831443025258756604748862376161446430896273850237857695608671844673506980954530471645951020762706974762025741782179225965435358752040580567036917810238854504167289305697472487496995722082642760111945053063371393361884251417668726920585169134583496608777946718247953691616678424120857339392996499378275186237574976212653255264140926772430840203916534007297390229391562598298467520376572753185652533377660288639516056687960288150010085046087683687310527778218792055031856743893300872294139397258660816457651163368093995249382322148207586068111974359421808522093428392565024416218971879527626421639961888728947424029408219447693738274766935500652569508764979930734227607248237722272231194325955872026445234425432401844424473045386854146374745439217414568711045807966572836626620571939334699587687892516246964431907357638163311069448951158894451086103132310213080758583469845822922536729450512883682327960701056677111387064442953381949785142916006080596508553026420460538851298598486646493821654677818405415904415445720087399125035871267264692394133266261088172506592815785255473824055726513016745794707823673721049630268205728434564201250606978222947503705741460355963024046767169647418745713424190445367151806792181491772340095251035235726646910741589102472887526999528399311399525900279975119375918806176972186571107613017649782547242964544896756940529864866870389916106355396468740360963346243534906592709080430569510618348549410195106868668875524942050747678419261276410989645378802464921014844968881918551683140371379126371287584872516638174668962092446284254445745645408554795539271567202103531560482468082164824840862957145659414335759839391944746565325707337870952953036704212798776648374813157861967059955561820940325384452715563092546488517176489966401963561672999552310238551639797420020961367752588596204639527047990094906352717833274484377603528656138161451794168269759120427400069779465179651542961593672939453312909435855722318817342296234281895502246286230000654557770887370135243303938463870330052497224909246841917384443247511009610748371315370338001863793373153900348088433126991554652665181915319125340391310951422118645443050054011531807105507687333191680877439451318064218560566884903614163638426693292373013056642708580497056350420870602929717668666691384401045356664474943616362423442624526550671917566897026142741546947048204562946448054265545361388994316043305599730422266185510560854637217094097416182547506989300470441349731020174980059498540189568268939026277506435788685793890588873367753016181182664211057929986298590432539796792677378364019670890163037825600572831341949273581207660816327727744136121467586239568951035058825377674923639532669035174870060627713691239026165991598875184796445392121276567190873481443687351012425371544284442064326771386276002685081327404925443056399230638620572727454538040291158915879187262032956369425971484827771560196450877132597977871272988277884910044522200387150264768316635388630424973129896499253735348178295611968495411912320446512309055296243989524366288321040483075504117914199569947113338967628161914867365979965493319324827047636853690473701848563705822067865342523688657343327653243124181820316399418982325833887167348279585431372926953573937868459013546819068906167279232193479719344256459947035663489110579203095961134247683520094372643578582447070919504589302802711370110602331228817389241616420668210611862542895117124527615774851434423327167436910589616248313550954144618042431524167061567747256767356907223995863994479417641971871753310416743560819316427237511835140433491799549770467269110393977160573487640736859439427143011450534487404737071830763666746408199711694051916148667489594278206288486369166083307350696334850214771543626353339128086518804266560904467249497626204992221580450007889602928516465096767486562649149855102486164526740100877657461595996610777051150651287173070252671978251433865884508065219120260713171704207899281203272337730615586880633790782337840619539892462953951809346351651356058053218735576103290533261061320288319983327769366877597864680423125918736540631141921029728291453463665496936615576122531311268286896766997860174467557595957352931831140617146221747183269248921696817713159442937418453413425338550320468556276418041331801909862193921803611269417954248735324693540317818926791705060927995741796912210887173879536566906257005141414444615851149358993406648036066966961093096822535573548781236594492960342814452658230309154486205465165635658621993513847276686893045535178389502695217293862294617047683354726808866238499064325861530862153830171890295096598217644445637549339451514153205166234758468442633876328041819392403059809565227646624331645693615582799130016225310249791649068420420206880839384271803551569189047572661100403827954798693431294870348871627678320601603264430043664516374349938839513513938945570105619341052287028454623798628925359372654989441627924850883939709536207223594533255048357992383739137809233788800149717973036218820219787957380454045940147163125505793729092713491730562625255871274275799106426730208867608909571313264251873465551517374178056121773218114780853157816932869676348494559284420087407500770600940169905606753282987508522938079880663058118825179766343326490141022129994730423532897214758798025263664955020404509730647093176571011542018103784002888258566737461285057677775798906656624124635664432194204488082963011490701430327896798677320004809662996809372291754897808411342784271096913625260712313037471546308626865304424342075378010509613249182382885595403842412343663506412632293784648804497753158169466176069927015425934026390408495377472226635829410436433056977688239504285443753374462230121750911435504692601237130760859223221501223537950549635260806340652358558316479069297409707816869725751540572622340846760831889280100772785594129503627454711305041126570551335533751427283738845028572530665571190540411544969306562298159706656662231143002462771802530535913551586317002395264409218490184721045337450115453003964631104847359995791931319600769579716459087653731093689062136566911839514771252735951993912775033974284729953687240067599500792712542365648156823714480789160759393975601707549739729280296606983255045692842382246772097038025725829232810967885264966091543815230558547115859082094042100778583884684738932621935172087914505103240405229475326249872806446485277209778769433355399492198623644181275979698823930464523972578811261093305242850364719488566690320113420308880382827437755346846632744472718965549778746027507066150463212289139782930721464504690055251120274751543418112017804713816985498349258176966173062903910497249466913602872169205601408905776784955551735977210370856603786329833828534774053213231971510237550720691301427239971527581727386622015115034857173116811679740001158221880431800199144223305525777695316280987798615796047920161767194778498058421289950490018002160574334758219476222960849896607672100274297039756781559282035817470347341961645911119365968243878131569535926819926199215148617186691772598206387743763712154447310125254266294562806139165192056347455331684398207032530946743057859965865727053482104981946925667821034882049703941215601137524919412944602850562244677304694895959522732215746007726209891565198808991856514911902726581847672682817979986513516827578404060496129814427264243319959480072838551718267999080934945665037035449216778191624734251571036488704649307164347600433358047734316642775631366216814513782930664654983131074949664041148818297505723502083439392752601762448924108764023881319516875554700961790589407012451451483326695107408860619348836661115286034943395600476526205833479599973819600439768238756492650135938209309075489450000344839099934740448791817417923880878036035383034099855639866302454621558062765195568094405498824675254232146379982914640670250152210930587163831389837275784599924830474260597178435459050029935768764808622039635263037455279069664990428336927346790221706935881386582139377705405565162769938735220565655673937866356898595735266724040681633257621347662655172011836245116980810353017919931971513619211180357647497313022114041036936681897011394554985012713470506058042638573943685381141873927124239536783513351716197217928784313044627562781004117017924689517015356919734665986809023542278240384631391846815614034416313935367042368666745656724222042036226361982891107188965866076546364266063802040365713252382107914427201013915262195640714077042934952979549175293210780531871562175265709900919862381972503297528579204153005276859904695713104628736471622951993752725625961377020657134759011936069314334939249820767995479101654123536881827724218421067573850075431880078943952216355937376640961022945083627231510980612252525769902186217797105342963261554261094502748608980312114391662718009796566262698603071018015439890883717956947928107178166570186767659437659023720672623169571267183066709138344086060412985165636643560876942973526741984553679897529779398261672079693552219143360320876620083103285193566565814781360467901343366728441383592432581467851382636899401225437708012347880296217201125791882997243338897380109057528921358203053947150514920259516190187700994932904303661063978752570049420383626379778479607790121492318888213269493615308946171692205133392611676039963689836630857315907530763177462721362681751338223362001323913563788045601194993263705723484855371908587059748269330864287866131836270213504892193523884088501935296317925257081084325882257957222723594619611400113586647607906680001333631151165402113189269675625149967213941958594364977042871134387736427255344803518068782130374331236318761590844659261940742847978167834541865373542831919107885095603194748674363314426344980499948702476989523865771819647533972205921585935324841299774890314725346839493437449902454677351627100264139610735373861420535898274661462830742175858204805628322380006381795239409392972854451600861334238997344594645116865762959141319003950672135458160336508041117986847682263773731037650967418536857784766557713348451587280837410235367442132166838754995091772475042041451586208118018391714341115955676009960720980894619262407938884062892296861478102674326221402013440022804624157504877727003739132671019370982520975446751534011496141375538397647545348423925248168730446305985130419744515462466038263648194040834510255295335862629236618372734685022545352852916389706863282478093017055336149996654084506713424089147305358847792613630054679252879119964045524266350216666325680871636975884117751847700835688474866671949105309408484654868583038077985099954563209489738829245909407695675628693449843889136143287189431461672773732070296904584635316316853706179568198642556510693665392862396352567144021075175715911405842468830910690737077836299048047773662920333964210015508314618583263624272446662612075629776869378291681177010815408447782828233463565705913898373988799125345104420506233746702756739083240894054242241950146207938465633366084951233247267632685410799895183424966905223017724495689535185403063561255658428727221333106449491516569719160344659651445443880022640616143209587720783663979905137482074215775612622695271303549494418128059953359007362286331505453537135686964747739655491426011012367138649354576646552622188129055363494413515851802453731886711594918352681680043614485240172063009274832753610807632841051633196075074689352762736991533075263179395434709568289076499144633358330191602336639851591924625375224171823634592588601941991225075315332499749997243318319859582564650493666125200234256411046679077598237890765622466964536293633169019981777592934227369236324367602945882611754177272687150130455043717216562703026981608245232841117742895592338272123165123606477563463096104160615964093771457742130737810573318590693313684793295350752150587011238830319589901565481689988890627036677560342483892640222766294056646063831885294446551208661034468547676712540053354347636505362086701580366440531251820210289560387957275639719551538747710221979756711154519931596659585110293936007942891904649080073367444152303532817094668660595272168216833528799182081584238023157389993036646665321038975862472829648390581186989582807472042848426529406430016364245727698559552456932248118792434129682492421159467822567580775272784996210617377647585543539023226020782970599558296321751301358555301832748418460729554354422836444997006365791253905091170607838912021118209810051435455681145136511587699091483572057525335509631855164740462610165974031949083273857795038935853614171072002421142621049722452288141933999734979572758744852813489437090656719464287117976796389109572087619381994072938909748518917383851150367859302226616224124735022217624415455736878838172843126976641896861205154574312407107062058000087260517806933146437087239451113111271653264662740278377051764500410225444119805101526745200913777705458750387923762980616888604933956178259855973346949653022996688811324206389014232132332732113812944219237805213321997003996912494092221483373614858859431671272019030385137651593875592546165870373585526784983288232773958425900395352571322165164091540584707431928672666964811458944581436781501926187276694861522743600248391455105834155736965903531200030463657767866459658803786256033298711617234470474593019625039514010485536941892246099039082481570519353479747422501963491529309300511224158226659940377787949953999685076438863646081856678125955477013036143600532167680223181522107781282947746037646821923576287848778181971343086150534101116762752339331849094053810596861118976559699758803459403932978779138415294788422597434907828207820886117545897570502081245905027118719660586677906057176737895452754065832293391762988626952300848580500978721622807389868631123227735261311121171584298660308285659668241863178473548607543346275805057287379898226935119414956814183942375558867057916044992520316442561866500518960133068393108847411114328763387906124620167764768736867325033540440945497085462353466322124818106684962020956366334635178558847848932721563836805098401041380872113435844739588324967261857096456239769373836490293586483628237715098747311724784171508618501827068490551609116170283112379646443913719977816125099460214984355021251415257505794452037136231057141126140318183997540340505633113922098919672264731899008061761973202955184895374852727399975952577386617954624320530854622733630183377414848702526669660062644900902283514531265457238911265029971258384257852042271449109457652621875987674091996267511617299676581979111378325595090547874350690845854420699556215430475542984564313159412709321049137817932822306970054482789159846145713722538450074671312497251447932305962246628531407410460019714057253982472415756356039757983122477677476225249480867075613788900280710315769159607908629896874498254710761596094258927842532339568885668036682501715499433333729767826765232223348706968933003527412665143545488145506135953181226443438932326665052783143822142267295298717603165023636629380248753165139560641985165197464325833398084142628359254283846847917225285230858459587384520814589477028046770728611450707892676478496161263439768690657910711240317502878491656295777465344622642634695843412969397080544580792462163475778664189805626989636982635654808211710437738189927225482849520189585626255280603089666245636098686291588356495453108321784132970074856428492332443800894930848167015109318001461718184166137829193359438526870337941008694353490606532381857703425669405014400641599765599775566382793553237232551121369599473812176491346503984839540078827019290702740223977492403461758354415516949606203926475944776872084331443939746309818623154131003221424707345870109149186856435646295582810570789491287079560600993090420546339958397170021050193043260213495373046832962869467059235057863163909491881912909077635118946479792845167501081602523079747273967650772921150246785273442711125442179361291723896942243376180134387731378869731674504194964279340511964006048125002738361954936805524830179961610173249305930736035351944575533190717546594879430706271058793194027063959963777758799932210468212345209486794734768741074707472276091878538306254617523732248758617667903892042148886166510929433120532662051275337494741854943602465643839144960264887612519271857695433032291090456709929952239045306744782117412938380942922333038289826728515491122451596320632891375629192895993921837246578895572897535021074198503984901722205319247677357904870109156693449764307299734206347426488614113437242048737847382857726991180998414777816031529040902178120955145299578578410684200344810115392631358916165996079905872830335984657899898101325912361053434214949813523085222588122862488847391270370342905268748594000903404182815591389469862078689808385965802532985881276510544139553741686337368236006474867223349739380919210566278363818721279027654114902418570390804715021730712682014476735468923935542319724235863007519868238100435232225631785532233639896202820664319425043775853313017074726305461570118829553177686354129125309970541963558875536850285408799992933540439539596591324946494216967954138444354149752470129190786296323907356997574733092228942823445764822275396554680337707218672252101140729293248747936585256852675371687971151744616462057856874853179369010384907011530679006722633741198873392216392302045044954099420109815256787600479697357033417533633130668313547181597662708090236995863787333744411565034336383727790819939818340793101272251622704534921686313561492671891686813762618394878577725359620037241609303107968813180379909105528238145722822504706696725698911010415722267345152507109138611840263986771698356889606866096405379761687600346625192252687336617736790932714848909925882558780380092127055206262878735793445584584865666788602330199925169655382403927983118394579690646038790859880182864945353402362831869031852740411417716244773389476194881338600504859857775782952659131815398475997050800617792466765873621828757829340734712215245448175361775185133487898097502617407035663217742959365679998694970615847573676394023119430438666717075553120863782825975788645309186691381219480122417173183360574801148207771722649087227746796543636052593696653541155700592172006822673524127365713128928735329419367276720446261931689097760203265706755431768572465848213207329106440579951046591112819543736709465276037612482137734703790165587946188992318148619361747929478586002903477767860425058007741085431876350541334077229243297402224725143216537067024553126895272484165083465444201483615692777382291672355316447558407470143528406425303681586955307144810300786570695851572075747765480955282203570970801375682153452239046781417248525807285978615215314887044408564481955301517882757019654165246410707098975708399155323409768791129932428766906219985622699216804245312458327354279769478887730063235998798316228397472972161056337853668070936940635671092549061354852345721750967021014627614883999871860999072851862935047741563968161026502412747014297659520508598081394416414501639655026949141902097912874078567039421414926752704035330631517745003411552445990531208650883509598200020918331245732790113022889833242406480527231117543344519734963936194691118780803262449672103479237601688162504826174385323278130229077637651832649849958014366149778194084633272786717156497222758072363295646404615381602056944870773795768643067300029121169690511503662175878408474134494440629268668208184317256379273641332146250167628525765985977257484803579097135349219137432665916471153514461299486218017949128320394510235206134366301578693736309297336667493033905552733014903579869423245063826312499429072187173667603787173399778098875279733940468001719967656084028801175103196949313440548934464349723478887474830897400524498058187265724268706266775441088161326170198894549600857049889209246711618498856926602243408358511174326710243860663024084150340939420540258311719886426626796526737144725083148062055460666673016071781134428156950248618757759455561431062202432489279304807897094430919982187149696140283588427004163258897398738586808445222826577820116700924921100557925038040702071370561267767607640720088569382760606720902198226670403063655967584992180104150601326358635657184990832141085920716613673864368744072180722022332089525620497006182852058444966603306873900445635300235134410834967478931611841387957826769638017366035867225750182992337845894419182625798059410756389244014400182633447017791654192212620768212552408747387744379279322851277870696658814799990129682552062692424078585918677832072735885070802059461048510089620534483179295830342199674621845220649703480153845508211573926451422630176313008025164160764125658534953750892219538530354491731878538648224637997963817071287020555343805556116187602329043615062844070211946287948167343839477650610385090061552023143568784581942879883074546239860774989946579006486516189400696011191914617291498724709417176768308167136821508511548235038960602550554825130058718067880240842049458948139121919218128135996726784452047723183322824849481998011597949097899891129385325218667459629198280024315451195104353093748871733529119242208236800463190313581776127119678468935457475080275031982026903415533023086899369944556898536659761785402216848776808346785371422904935995820834950783886159536198130713706646961195753617930005354752243924803368697061672885942208695438499403636663916340904559143719401244733659203214582590449179048536374878860073410674960204488152328131542284167246221624541604607102019886474769837071853813212885058489032225641771732439540972915840873598881671307187486645965821840715427889698060811417309892701261876110531375880981101439236581158127369062712262524762668091982011458679991987095737284531719937717511222211485733072311409121733388450256289546022214426866531603921778184781619856400535431030598546551276433264426958721498783322743343297146799282256850365713130356603836092734732845580670852760398658218260771424037120959490935190631729646807974779721972562676423009087853840559339225097600670495354814167012536265047795827779625691828299943540828121777207217098983465096608042204687752864775808281124947079359865112815138648078094796821266232296192341680937252956477883689800761793890008011111200138697035185097245649776013393787987679346150050232579690605495519295172661443543625574940158584846180524213564989132159982511849481056619432332613017359054985901859098582801334346404545396283807705003434552315160428973354349135333822226608939760197142396665580259845424517737774747618485538659515026518831398369244786877282824293864817654444018130162988312869587929553252028357517748571926153700830111797971201295079809611337898214508252312448676307644335814559009552123690476394490249900565856045289336176289213923592670569819541847777386198478397428862789789023729825595010352548829598238521610021767690798658728727859843377669455884817990167400314796256793894299563313232720536551516150605764180069706530866526539337872236450298621229796952411327638049614258621603606720485383992128740048959656667141513960543024540782736402112670718466427417643550044216023876069939458628577506242086247481465010341837270980643855361234807021613823765427695213724779910703187365092572905107056750375266641554759220132732313644242156543709714393568912191871364817837541351736744579574168781175440863617873343696869701552185839867766191581453431115764647477393707980522800335821825536913464211458904725212403567732929903952992873354626147242399927604311709776609184978192875541726780195017400107246668508894814277571007147188637950309922836705160739267637722233200263190633982231185058149471059591230945376407219199462858661335776428839278637894626177623117115187391325121604773006886209894167170672948365452651345876185389904215225440768088591645784938915418835230838466580070650584324849599825852617984250282714539466894710417991437094816216818700714261817577284841143417403850297929317869070139291320897619187021630623048780453174135901139389349461844255017243893884224471314697015733088026058352631773311090389170727465321571680557382001060710574267534028453380815974564199094501455816303017594486409079001608532214793386567323209065983852514893147967418111622632320308407944477573771938409520211468740087438057000664316849256790446362516286942657637986174940721959837255506118188943144835705422969960984408138004266378152259964039131825703273479498996368526126363429508989463994600097737294941489848612623561982407073808563036922836282341539944587936025192316860116674157823553940144300274547545594477917598541236995132726495693543902403328024018105886668202357451215588441031152460176819561350955589311582319992578893410903246351959757728992507909577576991182671380846981399425154251904061592030672629913464257500190084860132596063674949685034752634260832990592268695180588293009645311401599251527962790764594143091429997128307630121369139113913666289930468426582359786103069141219493969010165075872655610392116699413953754586792507504710409039287879308450599606084885192568961709240672078207109411491405194895776846708764175404115088578478234844360041603787521479948423791829942714755444961177767780787486332098517005964809629110798770065562756822515357450722749127336080537874264998440261632528134305385625544924923855924050315056508097203499953723626112231931128859982952159698397710294968241612803235195714386533224784331371496371780911377691674125431120045326450140958292887876408649475008490382898358094917630644961274639609545847144064657174109124076727376677146412440356151034100937216815087531880745696032264773006850532769298726753848502030642574044882622022312308080632642708653901554365028049943391290351433267746190514558474948683470808753036488437933823730926373861373344741843377521775191310560322352761410343809425864831735742959482967967173664125873390191069682501824211958442630500628858475860188008234261627433575209618209785208922553369231255802422100524483333354872467452581727375244533380883650044061700730537157726623960673125226445688121559681631426837977867677813798902449023322298920513877349733597375019164944694179342725579663454840005414016300819425737420574802109182085234574672726723882217478547350194145513342037730926642763544886194169550156262546998339973544078533738486715595187976565998140345724979138082567622976205354744404706258461330808941662976789959406045686696451767374313014273502412020026593444475679406175848471783401664492531707560764126122637760217740251850260465768285863944655674678798869705031000997955259515640849966505871827849356797089635719199844938213367020065378907444446717114648641399790562824818918234920930218977238009088812455237683702629982527583634098499295033901548173201627038914242238011396269071485229117572547138395000814990607372260791182571205603478941523814653623542049628400691929467742333295696180511208391312371353917903752353850916315644235640929820847229303661390163350143595705868238536007198294281043138034534754284056227029805903977361828156811823919896499548890228829408830192494914307758925265169785881759332321129205065357015389374990791577058365599824047940560204120965160792876442699096776592216206121361078789198566447381285955623484080589003336019815625974881634604672165887095920737483816816353274497357277072977022179543266110657602648291317337394906042081633118024993058107547314152283460603001882518396299812693986067538571520109453318494309893056469703984592604421746964981363657973368599322128152454776235102569959486863185010393628509025187853766530336757547650908867052538937295418023323936440663831278338925246053409063615628315305583418758096766822446998175342012104981045758608690870596399343951485133471315029738813344862551305001165768932923507609426011715198973157087343759775241883826568086220863156651613452319110773284222169356546121855752664159941980939465106833580393047020060463585801960634057207554625102170534699006545316626502322362080736112994814942521090080965402661716242889787447380541307222858836466957668193406768939780295733214828824699935481914443679678657237653345845850191195341292207179750062538109976498705984989489706974709387586316388408486225214573576990389550160950149155471660318271188424644905725716337735124261533088186472184534173129445048572543578467978782904006929291463556117021243050518557337987891851530176531503059054021030257771368185320918598719554459039472392086656289999525093420347547071255843668699559158857715617748260412532889461846963392683857835541456321883095096310148615130454766874433128266598380838345623308026061368916213552009682598432333298450382486570384722965935313942836614362256070101202811156946762712901911334640068642169635004452392540438280009137247264055782651089907336777821421614742433028665581234280785105248979442273069286926850824155043768437540279007617096454665877704578723338982514367237885794884720853582011092296317127241091233776670390244968306384508626578141838763190615291828196929482989352494874329269413443585321094197918876763962106290606605243781678314161603306630976051596955453168470089447786076067473498282353442756669211972133375670825051622404523110380020230196048578037021808307043324833198788308401363981740873762459809015146415926477349636081509944906545618310493989869672491527830760011807662527652970115400739251076852528503196111225223397876454266343495214127598530405401322434135225493595933329036490712491575375081511498741267363545334497340550607405441725930888879163819910154918762581071240449514566766836317707793114224760705795059620446192208763480344956654051627993202351792656881942560140803700224530492513328330987402645850260604641633445428163499625597237714014328159666273267791658919941742366492212390269828103843935093305659380020869028796436527602641073336793631732908581093122468121360994970184221823025431457495089378079229598809433099959394949684533987245389947878344437494693133596714233705858738972263535248987248323321348019872601342585711971306773306770267502124461869184105927242501798936975464662661855663840327559750641938707727722602037643138013329976165499715734084080146114665152854070667996101947398709593072711844398459847288434931044887012073164461372384268756700551511001060619334493257892948705350140316731988787076327826692297916751881801870071896189635357875568698906968608404522698659812743653164274658267242198495319172199873219761298638955710374367236315216483718727726501569761191622644719540969881085738939348048652101950419507112479582643015159194158794543130165233466718993620662496534739429042032970564124658963171037654289751031352958953414517196365303621039131378903927300856681573465041847066128857710618797960767753452007973569593398997109980022468146482120657873534186525541049814011679814734646235748587211279887845484692389721988121562667177913187686616587513382628149429025738232702577585927032093916404125681593634398378101127364764260758493853905800530518521411189941794113974890396614604573317962881368775679885436493443366810904658464208977492904286376542465890031261952280223506034750525159020110148383581000720700113530013034009031107026019052217382705042430132744656807841061765287870027938671751366947222169170186151169844632439960950922675592088906033580161377129584014035393186203481021583849363378609863341494286185817990980800020546603930634718493388946703671108475968607567742865332615952359938138898240868610461783732066911078865673746671831191562404302274142823659513952574918566365146862363448692331362294838500538196157873321963008826554779351899080282034242885378808970433834031060684965599253530071953066227928396259541348847728413123092824588864101158746932468741171035889755039391717360779081811752259507155032465626320534438198373581345545977996242050480947583213311590765551187260507012164208392409703728197933282099997478748002936495249448287736363318433022315873951141234955317270659789088106575539978572834402415151128382018368838959683724561876083670690194822177465600576679588741427295011558015192420938797568362486942255613922033649145817680342224788169979022768073863767926251252247760521495759986543690864322725670563414401861284507156430675983456631449535619567941427256422064986124075986482343229885638225331068776050147279681828940740283495044199527092324490157592626018706360257908641486454374965404098718607154447696512681064354425044788533715192659946900960280899048400599228708879685418329422498748943853809523890358862313175540811067978183143327723214034004300305632737649010884207485091469977285167613336160648180386054859648910269106803681587123087152109880279982458898862242555672087540885220181094967464711842157794155805043289300494230318939984864705546876542456797264200655805888826144846239716594668790375385978714992206051450031287179415892319383621733607993811773403371132515940767622118107663780283163465040691269262623553593142244086163734211488451747314748453657799242252872079991670584820085597330386624852191261159000412227496071789021927784946552864945505438496920346230563928958092181186519758025780010087415654636580719015211396783134698788574605358059246821483356981693434482039443213146192355497993753586365275059058272635805956169294509111511946910447849488187784998215465786185536271125710155981473980358935345284903688320254641144477825498879892302448256386627056841474058407381836222681418332304529633696954106205274493850607784813525309655771273500436605274361973491644805919024027962840709553853428541680309165322345436516754337369548991285529125020178060648237163770778186164356845543596822461855532765758794179489154203633866003465479778022741945108580508242555626812308224598067996586483971213842828412639523490974196543741122531345676072682285859076270042509561705394714812184580202705228442176899531881149573071837497714006091888406124124808251361719851994868812149493672591437424902198085515349663646988286379189172002349096683620541628704042481029344846808028594408670073813688142724339864474774225202898001925198365166135963052837021796313923591111971224709093559923328288009597764136644371803941162591496132666894227134050467706229245646839829594724826917564855797206214589641589598913124897380435775779300809169770710611620681621151017085041839334099714156519245236731452731480725999725633645995636354258158949388664274375528502605030160643739074105473562320431317693411010466871422576265208926302024862653906433276796089495300616637538176635206047890443054324735116433019501535148817717629557525493649867119552285633449974346446538031932129538994684313332817675207406068310036715816711559963237264973417583931195555581866732646651620020947903202985750487364406460025419594684096830444971211739944439952531361544395452010434647372414596332861667630364125416217257318118912309574565214883781533684665138991700980559771087715525883151753750559933702864473311896706430238845849887369754465918663611307273276984463892858293118010378066234656113359317059985949176842837913811060197220825498963058073490233852489274290677230517209188360003091416847366249712969636344643737626860587387598953655587492899210600320309394780321720848257903951992687995964729973509705154161278423615682801877618256741729959666382356211116961435836469198777525729974261498880197985539812817999312426383139946150254230719424486378843951569342653139878919844787876221050020990223187732306537452851921084802337643146607859002055049643664530815116766525092240234597783424272097859030583958288553987173061716145836861681790676080293257727092483123496884493267277080371139407252400777980184562454798470178886179176507182710485110588309593215278043449944881758345858046885423746572464052682979751054730170269707389106987197851841396619093280869787247629327752848685547164264312675052327950933159863121425279405246335314434599206572858222851446242734595801856642611661809291710210201481076009932343913965238051388543657146740696631284340233841916175811904488811942696568142391976244376259845483885864848856235402982522929403166594827856815834046581456847163987707574907815968640343860408423753871528817680824348985900493774329033483917203542383914224776175649170389098989327163983324196269546081597674966068515660848468337742392743507555463357747107423309935028115293761901288362524222311041175841692338720284380602881144913677226874081597731430903388673949258104144058423030023532446456264661892057163035435670377637775516645330205411933974450458981906975982250259545497210381319066474752897342869922726426188621485517771636799044328610172916206995288418783989920004266106210089257383198567277989781897259392378444577423888086785712393353771055075523368045097023177337254919018382511198806932212320411290842504386954541455424791559137654375500845415564247508169083709689201052563962354145391852747918576840503763375169550408910297633714792046196954989849067290977432298355748233334480764463533837483100946147586844617669189513498834830463748932301266120419138076206586521133876942814810151530093052060642063017311400064915161117268655126759882771398402490981188882562126905126118802805686168438248229134352918497173964974532961075512366759705792286498224038760279255697228419719687171602280772104345120888022557381283269569385278769541661816168679413196976312545308505167707365247959229031401612368467430757784959415334046900382673779404319561177066232197377740039458647852026590931236516546062874824918517333088301817914996353318526181831053032707950178043856371076514287551907390076184463585590003202226689790264560402294799563577008149161078507771757657612705263203596613177495735662134052110885246327079280626116811669110307988838051936417458054594831455555678518050898498902333802607912757294069945053272876266272861745640070876854365097087826923375668511338379432217171300331467865441561082588482181349078733929054210068162869353179661890056022197406066326897581743083272343636718990883971923743080538442380183120663333783812373342216279492779291357124432622898873658720019635366234673848246802646047988680726579448867541767854051890378942326636259278342658158826372634250330878876578988011736540035728765724355519644046250364653516989014768430370274251283339061048046360937853252800336878796838119262289468216700158593184162733934362042361864417557362811420019088893017005101755871258918013289419641715888550317264975049529069568937500769207813360610993145128194582800169300918462466844563700285409029016164529961467971892419121753504464538521281644199277603055286943677418219609349658887069676768008065313744362881350739516690849446837200081009990630916810256220875484664409195028926593001693071172913988542516921711936551534958118427612616654530205504961402251144806750540677992546588663376170566265513770568139364497073778595156951918176315536118795201075640395577676171060510193986467151968302480577002681040923428349559220828453538568885625059969167573230337302170973239791205030130873915406103323881815303413281634695214496028483905668871238095154586231441178395485448056935653834045360207223887670785821654380659581480622858656719879468442147755218030533641581608687909590761878412478589397123350871856596991210647283459539267340663036314760150685140538094615039366251227718659451535561878658309449272023512026376844737353169114906197019333874589799950016141774950362323910042829635696535575322792266689915810960386769893609811613189461564141729557329747408921633945427416016258031996532083501196825566172141609842742453205806834963704446825538960096040740028306102681644440216789783422638895590762382121747642700652417626760179507713389469699054476354618025727368713487812008341305105803885367389416443603909708685678609386703611285823293213223902740328140314005072393394709826442239789491173034817179056327156928132388277344497803251512080289280059797300085841253749732308749272974093017977769221904237541229330507909686348414029299161181502636052921228501088705361531704635935092310772315390968364152104253900273459049728064960054834471410697117624957236919455033014263515423053025336352673456622180718844246880595475771042156027032024643762024906529290460769539184185735417775992889891748399039842014780975396949673809560393397013868787453608582675122650390485573941394257077952232710824115776328027699895603218517294133629629934576405260523396048177553910996883774634003558649691288330179298130007468522530630810338496314906086981193548906383582999643320261147687518087789318427707103925228045829357857593648088137065872105997635491719959956903139315807800796400115896427482178188175806714704203283689855259012727314818789702421042175624228399153247159526087081573748371765875328154948859109051223583641812347386744568862911680339583552853332221068286872150491709877993019311647373255771972832119794539309775347663544016284085546205451167816810699544646507415660532896394404156579690728375542370291647350844169169630075736034523743436271397625980381736472846173061085161542957024032657968670467013323252518926926243353603855288763543675429766050233452423374623987028475051626479510262757413361209915078931563027083949454387973096032562540497324462708590691158330355298409551414400267356932128814150543160287339475611760742687339386942317865662357341694084644831389799108455616496758494388149792737654687770450701248192288065752484777089830489366092254399081636835074989968959324860689153400185666503407700545897215762109478263774880337887024405281634624932080978762841963077370252545557986253783464553742377699552281433691020508679182424984155367935295004924681457808179847664064651376573881508868445611536470685583132071142167605896982374212099326878381503186828204326388660776119711664409850247632657367299054148274852855267945243545130046459527627476913854589645538227892093174559589180555565040640297755644693589153653865886913046856204069721311334663085028924116161711431024642530205176286602059254320397535914596830864679512988199470949286061144246410446770162894641626776503232508170031788325372712344236214093488686562265515341441957489541649796987740167099773587991059284200738064247504785924548036365336586246423103673561775315193065024149462213934212359603519411666961318542058667215389814196959134543359252985247406086193155479683318171535974242320671902390841675896265719665030211190839610363188392710384849230284997169092744525069910919793727398542974881176677683922754525566930118890718597943979070552451120990774428531493202156096047312151820084498967785110796573740855156843734100744580743820760719756998239736660019178966178399350696790264301525640016344680735466667942760823807972313419692373896375847266615011253266499533429402809472859087760799043316825526937000533193449120772550617673718851681449983542241490686062756584898256515274654411442484641554263673060472903605472421313304400347376296688091753891235640668680966633599784455751431819284379428001132171053129875367554953409981998398788929968931333973214931456828092027125515296114492318070234694247689936474455635757015559037810982845640508919387119506094483557310468097537173150677493252224103847521064265564461973831613725779216337450587664467929498113214715594227564276988114190058561805670964926135559603925946757994239110075988667979765295067476796043331958688406013465156063475737557214967379705897153381437334463701185870289253743275561397849237905970883071900839374826442327110799103169757572135125090301612937265296361241468836163045542604229977126921139114753128596780070510580942778167417281558490853537939660975339135847857906564127191563310858937757891036324933398234980879517931466572464538073608244245731535084896154872542234563586257279211785044116053175498603266093432088032675060197425429154840628921961141442913452132730217982180965090192362628214147727433489222157077939960076944526352891542714917415662810972913376071111154375258192444812897636787671335902231380456526851268673634049509902988432577458772029257792231768649492965186922117259701073958087491728655097066017956925639546365304338338658363787170432265712759630579566054958126385932277799586771952548730552133468936757677502713456980898840206916713593671890156973933115036166109884869288940873605955547891930473595105309935017957280395251573794455317124197754990877455970404568335598986543407833022927780958009516492374969044546324937753545891644290020675608888078660040646794952833083892203334008076482922176554309452226765234509072779556309567375162964018054069157155005406716495087970377704476900885113312550083338954924033817367210133795270188109837282714063245683321837040236989996994615486422776382764802232294502022374434502836314718457469992464629396163431700053287720117772067376606262643424372018460726486972880307416334255605957854242580556245758072056190048271732609981923755272587575706419304611281099234621273887719140591219216356325547231407135621560911948138847902794077675437944547604688628668716451062217257735968343807491534402166954476757856135865240121007034170832426921790785129778032176028025569912197756256751595759083101229426119767562272688118845814323304765877149183054305110674063904628179002235196650727841862456621888890958812378532524840565983180770287725512095495408312798343273915923186916326803488690366788941299064334794756572231642369297522521748628452592547211761201569277889070862235722382077476465912068721627574145731387966542057064872247814485230321884107066817890864038680242023234003690574549951653747552296533515192387690231468423214748720685321734965365139103098664232825422227243112035778408227126522686981737043386773660278196718010800717821828784900103915750165741253899522067050170900146859257385504720389561872475149480875566453686211388026285567611768744669791756664975827075728806897178330717430736827075384937347883100899707837324135557412721722040387130451482182390824932526920540884170583392199375414997503246501608222172450368392685554807044968969621570588564198849113409992204154040012665451307957739534769799685648774947480527566908403850706963310512672757584173948985619716164399835995735046782196522220204200592267268885950571430288347886638965979194830916142107626920211446606029786416398713771261065684813398404357771917608510339348614745690979904060127423961742064202142018698779821629416439548207060421111018650905443109947080823526647214553286628673298838400274475621438413600449692562519644305500920427766260155628485337967524029346098796492026046959820327658959675833738818437223059313922622776797035014780864555256622951809281508707199414666128911957860307235054972216672072436339391955602052434028490213402583288732266329816986328048266374237453553868778323501056500523322925078161138047160405314150185932656542428623505115981545997050669968166133128354065577155565909282603292805336271077862433488035247795357304199246417198459336865578008624265454840787291906465549719773886385532595734397203186031637860185467640774077036964073613999946265984445163639366329774788369601198099446744506331954888008497585101435992997054429936724671988154272200110428356982980911613811580309916619470655604304098509295962997751955339087837713448702593020338450429071241256148971800141834494850219509323156601894814846065531375436554776328257371954218245198609277191823415607344998346280235966288517341253701809499778882787627778486005815289211168200268419015418479243134178187530742123567478688902414401733857975779832126106091451700814325170043950352541326715305249150852271938720008343619542687965344779936688744160506127060844045876812542802428062882670313742533858587731236646005785200048357809311996111319881727435195298745980051840513281844024796439911362119099502637744484219817398868703233758755545535292905326295161735925356020502805580861492476026910173258302034112328853643685538323632428247039976265964823832448073230754518984126297293622634125459395050353592558927977665634344036347877232118712286931944596517681487107645326335978829607483344229359107813428711752680553182190354497669396338403545561799441995866511261141313140700508639480689077669991283068085361386039945422861197797409769821367707174033309764649075090767225554836885493888251409996000377729314318600231265402089017080732997182920326806566930553563696411770089811548075119218504205845043595237964969142997800294738280112305610712093671489871305498671109053957020012185446804014721652022514915299764892527967267521610745722265770986257889698940382848671429535986740268891405036339669737583643203019142862550449880248209399103880526452763395470557900310730315950159896150939319924707979889334616635741187223738407776131401812822670090488383930448769989192324081292279323904936690898006980968515591708943491365812562799068583507632462928695704480589749886539283100531692084997126069336425385375870954113056129100921706122517569751440411916233069699062990493313793274667375082230662567758575624739801764232059008579922804538362855158127282732354078681503266944258689689659145710202691269203708379524995399282615161379515060486133346900251803400752386047083232237563649690419541709161024882777134754153003267480133595445630342098057251994377213554464550983833190028655315589933565233729870345395583352178041758446664977046680478535450166671106008173627339646382688943608205733974780151762792839893059872132642884148101403161291061566608931220538900510370169120083204150387626599112555307118360798405382825004781980593795019918014981721446566895583985712477856798947456816172404673257433093895006354947908579691219963144937495115220274518837079881205262411428457834619945775225735961417163770515258301160393927542442941638951695057714446779477025153859416983332371681046935416390097042070533050181006798323355135858196563042196543478397807458717444169305370379872729418014459298323784138085365864304503057277845595832594570154163809011412654997521513695085278386433949021153707273646709696307248519222964193698860069377595817244855516343983040684550959644133075726712188256703293105328174008571675099185705722092924372241497909979605988322644491846816502017569479629800493344134733867113140705606855948634064452058258510285039988689554814659221658459291585830690348901754753275785300263038225290547038117161719353665498675005267542311566331081105253938433595385996459752061629930554666864297393798280877598299279381788039283944205428491493320594333434205734034712278473255046900099348758800589748288017313286961259598804997329284046033758955646774429712890660863864451532245559759399667305450279261928871078703460003110007255025679852263245155098393496520050334797809249169656330734766435504259094724074741198759142296900778728014720908799393400456041318793232420078850647858356860381156296095591070484349362018900501691750384796154559625009961549609207759911037763898237044507586575222318410836983154212105830269934667953231686849348432514612255450846782851050302439251845959124333338973944245441514765087102350465153728193415682000304290830299311189138094301489203202852980364649970848272389248224052209607140617182841836122112713176685902655307836437689000583634811626031514431471445339661540330691586973383284598405543283479018783134267060524477871783664985964202766220760600941045380291323784003637104242290488678022963827306213002491769114991385592190885250543790885368605704712975939231522082362122623863620397584495359235597571933377671811778100671232259801561719398526617608646425635478200407196323527984786077455866316694746677874719171317735595158459566315773346882997191829473076143896692562461889475257470283675636692577541702871899983762462999333939305626814421292405217002777006036242892108798629059926231698037642246277775325906507151770108996557670761565406516982158413451578164152320074582354660380968127291846417694077878069659823060718872130868162706765922983878934689780555448584761386232572935663651923164866956045118737337516046606190650774131057111163101705623550573906102165978787299412165818320315657196638481468451568116447981022013949738962603157733683855304068351835101479588037812013369211572479924745294563838623545470214074175105347998308098845934575900610974545310773685014297580466538671576392666882164753873838915387557740822035912706419059562713080910062275196211722766762486714121047776888156244164669674838754822173911079599056014376419111025893930159323889015933196477091888219584842672430207034475922186153275758569681684916326743016988558299120606730937668341612294718491175891527989691764791523907062632141660759904124637707847086320978351946852466689573934292690495461178063112164994548844415138087734210338707782278644301316153875268323241026751307537006581558745450849230939038498288689658947254511767311814292293216363433717442661276375455427572135881344261773406113087139958969095658651790626146262994733210901244550481319924914327778795995663062871166724008268060228985251344775050928631969050967406878963822522045313016425755336364546363036598211188085081331658618618018278559405643688930992954396233556726006085907162551315537404178143584239905842619012903085978667186564817818277385256980766682232356828713594703923969708874412456304155927230413584715451450851694559858085237407359510851173174968212344817553142977927976270658803994777770637478882233660879618277571752267879890943576146964955517351441468647374147598220218998749804404201201083653562635179993860573376949732135310781222745888245586414966066063878633180521269798151232798291846068018735176063114616924770120351144840576900257374913030508963441678901451945492577138631534160667344526642886121666849048788520929104263127868960971504643384134404519809966474250957938064139802906794660554797287120697493345296826508496526225132108056594789039407124485198149261972653837072512507790758104806108793968898358529794847821405690522063580606245149109816634445801571850335795623981936955243427660092321035523276346403081078306481077460138470751125782905876615389506720112581690095286157344877136868023158621492275467587717065114166984049303886869376241301689404331491600588080827419226598846414982208348647434115478599683305633332083912106070840898382570024158157316263720367035095289680969440089442748249472279142932665687663138043718747702677126873196664107924664466742596842452348028200394140662904121792139904556534638709926635847518101346686726772122930374047455605552913104459398231078307314915887446851038194013160339700606894215425610192640365399444239165269346658678038828727886240993825068056154144970304433734340378530500228187261749793498143637204973394457487728199369749593997605187944594873191899004537004034700895289804034881820051183380228244164767363323136890732546731735258427974437007311419820623887845980441057708978272098863109744208387461298388527451690023865178316336089701674247950794492294580076234526987946404574154499655099791476718574199535862567497117896088455116409005717338391699980621982878047420238834017558430742298837970492061421578186362778078701505088423822885144715914865568079633927680400200665270450240023615905903910916502002926234706985699742929022244068279803754326863091894005655240891667898274307240659132135856027830626159811478947071306802574467027536898792515007968994086067579443351398874427579900743138520037644907393862089354257379577535270893134255276773360678965698449720471437446667690744040784814821547476965223312008568357403059738136449305781944531586983948534258893241709788400114589258955720074082002925335895262244442677852058800165165699598410594664135235276491257814142135201107189593007358787418339676965055098952515605183458741997959837726618874900707898322925524304066978748403915940600218428520187462600064935686352129991295835885569554986274803266979219421174509284750617635833526071857035483676724950045486687354937630474502930488522120858063557236952692089705465044983354122631203361701960550074416601554132781056886673244470765436061573491958394342365347246301222986319641780176376503548239718340278557334351087088343893031841931204954143540095105081813515036361581885988691292665822943032520435827916517462496185080608150451655650591392817871802400136405872310128620448267123247007116151227730857830230455679718267663399076416004946525294702442246113510884345168700012337668346438734630712262806552440153626133038195656400781165902483028763151352691127239767217614978613040034243114098799582598601730537341330072935817845853560967684783771249292814402438152301977811387544186810227828978395280540955448962664336496014675504182448251358929056778279420079540899450118329199352189486404735411361318203192548646660256399035375889871675678745646978104360286219498295775622462339592305194168174803500256136978477159883201918082396159325693153496369240635986903966289082004215372555376437966331759297616002313342606421585201659153980614702992082030189801512462189746426478805602085321033267203742572653100132893328366175499152246596706626450434425382774698808621250923652663404055554363591753703064091812181211413673431391541871532048792571492750190281334233891830855691951561295714700713575316719065753607072420181991478039775506278992398473486242037381031900278356679929962636632485247626737480962634584829332809887553656496979298597946575141525320450344282823859406439152123915411183875065218075591703321340571341610507563086208143265375959498008352735925554679653756693797429065923705563354115048931451514969668829267492078880369295064819220187632991334347566902608246775932023050381173180213853655988789161621198215389644628488017530931367527257526074699800859313819388276360140877952375336162485960675848452448583751617207464301201259549121243345329858521666014413118598474305077588839686468870351253389980533130871256688127534281972292017284226249241084666305852813401641872169403932607631715102462143155268569463797635433217351799338505892804917051325899137643639339963438681015239427451811703192333915936829909384021332262294832717734321490863308810019659895060202678820552844255470181954617521384025688234512274146101100712584315090270667487450670393166491344792796112555685732267367236172975831649888889994011170136345062724180448840171010089842109869069551222105726821767111445052704449010710306765623549627080234110607832043730705831065942016933075852437711394193314389503855489076465648516496218735816403924687382778749556819346383219345257037987126723437190267661173858471991355497170400049438594088855581526809605253176897028864204761851794982353834645238546865570092522453364544109175065830476686619062465054590112622750848514788125808710903602725043375724151973611947099207832896978775009685870022007974120823020897099845891207569423424385432731846862919694407586133621595172338399684574642533290292468509389180786912435969192206322050072349009565900745536650862542497695303620661168374829096994932233720925059201394520752698805772481520766222556890914525672793033014873230359282231743953133660629549660941166218757241785996365750235485727367399007598625188009830387435093228723315167739920207523961796363603775382402047462506536312061062882972756112370315235936317433449882226786858733207093700075482039665814485126608869357094054610754733498505804664448238748556767228846091757645854614293307770990692799433274321415611843876504484230806610377527134819324075654797316399588246053539675904547112115821941820691645331812221501312748160189045664664814019801382973037034952374169513476958684824657883923024280278677132034707951707238293875519086223046104011989786674540475657887650462962794575948728862215206546056812734569472643343417144278781507671484700380216974122982522787624755414396705096960929009459608314846197427800444171695723997397652333506371206929495715755223647437540577727580629296773383521045600791324323480631785830766507492601748950704323939876344787938080371751313067612660724872582464220535942697928522369782338875025390028750985113975447812133594182032662409942210093166549279708449361376947134802102301626353218151406146159756157591661953978924711955346196393301510831611804096932271162543720054915778810757864572095986965909853741780555531476043675993865676492455285004389421084792668179939936875298574921187707717478066911415677606824271177779128251738765940718980923622097906576803975932389802521467275724422612465491200724106607163669538113567752104008360224278170383061633807394695331710661177526004620732400691194650859394664882039986862594112490251898986639449406174484242637353371937517328624150660330044426121591099091737950175558310641476091545540376987958165432886069290229124289099931386515386155260712106068299806814599402966561207889472567804564385477920071577503111286677570916470418489623802632059026062806397325194447023969718096661286820258331831178523993817927111063186427249106308996776877402276341359509603855022497288285876610145917200637330624938822176277535397518742506300145731297190650719805309308072315084918970957426862096804737296373885539631361189020760942840136664231203956296599618499599608222869516322085433210781092978648661945135831821279736305640709966526509923243331503645560839926503714081441058942243481088591722942957248268272298247731333232012023077660892735030296500490419167049699721776374631382591575146608018707533635945913361527490075750290215367018147233637337152671671818504297528745611109019579141538795087568036496386616367755442331923016961740457079817265562885496033887008991345211149397517067887294248056656297613689668969002585184579036598923187653231791691926789160599697220678162483858408298422102253592489095235440751308448369245424891490966930644510399994470652785202594884392225855835831618751683029602940994893477656762423408635382700397102386851718764670888279826772852011160932147452130888628231535305009255044907173650722788347195216630523188587050880307352318316255638721767921002758234397217657143046585153746745073423005843299506150843255854558327396123942333017838840006159058706068707502119211462980186205009645203391681719712732516903294094782703138651885929359826868876239936054360471355227921466398537633731639002015186872053546547384098998486760035401088177159964527870727112882763319703542293847020437621308709099967082619832875449108730670029223100588195976399153472281452188624129077601532185202798883265597734548311531586913150713153123177052178964347780194150743693123231079876530097784018675410155995618334152802726853873018649902895442739848895154324298712907566665284442021139277668680222892181183761352994159350665492157372649389481065319173128295029011705818128790394870381934383183074559079154835460093463982406559890490909749327885707307200868746681698760005073193051082686059258262476634747078667479237763649431971417441770372055973551036640796782125170049798814992991947826937821706727289861221007900465003519432266874906984245255592650014175558474636706283293329430503246133701147911000259212461074364506488024298289943300961667095742303305045568969701955983076856326533882291103251490628353346904341155224272834750302279891664890832598889676958399720492798484151234079556756915545684880592557501801163395170359036321121277943582799278946751694230223186966219177220994360370563042076402954516829758419605408314034901176066453972085460988068009862174925489924247091704179662390135068430714008637747388713627197812963363726239415145084937000217457919958434844771651882706795425950139061770436820468404222169323204533542319504875865063068870874693318771787816985872525470258524527703660874443837985763085320294682661264843285770114522555096676223948212848863885378620894076414840439918783959656082780858097902761223029808345159166627452521355974083524146289614744988168138125892684543927058935178399405540502014683273671926392560663911797783525043036175891409516720866251217895955325898764779399223856858578537270589890682506528694923334948639102347165432393275975543031147242473152947138194568056468477702856102222043905238463165214327607638513380821527227687262719307470979061544020619951660322061231430225742741626558032313473346463310220183134512007914292744783875825274710648064740863143697491749058388114373430749517122754380849003924610417564018917824731822738380924800806478313557551069168350914469784950723252729800711769303389208216954587003328809702727251989304651567396452660610853148481632883224195949587785936819388712242576795963296362779485459255790911265812796781108419680003325221570748114458720985799064994844589050923971099720442228811907937891489900571608143086101669384870291957484108086825199171953337879613106114851255706163172356040489857381117731340885624827026080833366749356609408741976495246248199773217356397108017035631354435893942747959630246278852613913048339737593018915162107689453261588615690558531437279823255621048211953286784311448805121113170406740315714898019230457790375354648037166109730412564067175904360679985371245527295605390649105862321744685555390647977374832593967474475883093336800580630780753222290843102522732259429024084118318955998962316681273888019646354413331688672426497081853286231793729060712778351547282106588086848393933507174536847504939308171349572841999495472350781433617705238600509976109490110182184514505830064777701941547335625776595150890868719908502390363508666567973355607298600925434233399297938842347448186078136532974848921440359790960813199999066318049480713019995183048223364894905788069543094993523451277235789904052519869409425819100696679293493783003766893253602126011887382328974865440394393399163851057112259125045530808774085353085045850629397308189890835427188777354897137369802289110345849423558370402857471202590204745387401352142275764604923115993665246723986656826999666267427340086080778257462659010553556324346859644878942083577454604731495237950416697457436459304881538126664465065439206423715703495850684960507106766044105728771543372231789170455299490094771330853079176125232958185380855740563842092325554532486756784564767560357105793731119960147569923534070827349095377913790415449063582274172730979481249985400488127045050295777181780589611432700097489817872608187666096181290241451163662463954468161417337944947819482014637656880467720794894564510113726456542859131128959455100861812288003530217604310975911304697187188239657865656260832245888164926779485629185322507868632551615210570086707763130852608232376117147867436864167938411861803491803669540317438235770366707413228922301084533399519559233607834719764351508109694700327394956110872841347395019384796112670959434061459924145229698609088083875616743663601516381097747037241527075234394943680858039127155351989595774450896013178812866726257065992493020014968827626735118869371082080575979965980546126177846176320333252236100256156872755280582881306719128466877528540652626333334735737887538718311433542440458317127456263339697016016701265537402941147595394237062529941952116422714298733003080684517306056570819811478684725077097818131608232105507191080322321787536075710988036783505504593147790865937526550514129029958374719402187710619384849851696025833644786277042905666615064360183939507587798816478921417909974294179806350115682056259508886088379579898524567524444346130826094097146459274875329997441317151125776481198939276828303909970642910832190042996024926700909933836163878865448955508660847241128795575842777798212066811501942932462276549425691342513520823151632058004914004516695947300170750528721638331143687343013581455006162999566628457883721580039752611935767686324559611668882227309862680865750085034870299738466445095247744061372757695652445599583796129870301724388973482387676735357831157080620556028215624398485388942140948119048946673490556718336404072902284443500137154786242103971697568538514082947244601329287281279885423060072696281942724001372938557013004212557493037656782633125897292691622984287636112518649603524792111497252879207953014129082680538612319886228397060687961600156856459047379931340200390602771193680096456392840217524241819991200254930863705246392588823413482941869999853255807243658205094098690423160962327584407647443735191894456254449304519786110365606826505789357548419326627385216393484252371957206229434688034759593707445911064786510010751650552212304243599883324652568059812740358600553214157298565154639804505443047661057335911199529962835959885054474050693575487299990251466392225719283019831065500047405266965646596908483133765599803530095177940392796961159483465105199706790137218744379654565779981350260471935159656276745524464296599007216321329714089393798437493050944987067278879935817803931744489893866144257293723166570810933818575451028593792645087844849173936661181283107961374441057692073532385358269991391801020095928086564046473622766067857991732194642973013736764990259765760053096950236301403288769513947880631863456393662537914055845435032109748046075254721842181971470717675391642111098698211248001204795601868427258915283704193851624275570048353866834209243895429834608652463476026662439630349608239437194285965989477497074941669879726859373895372491895812912415838817048186439639643595843706991524778084359954133402738229463253495283754352916527702570055708172375862777548860952996801718768345663452898553257605949712012272096451186957254830144882098441611699634663729292453818965791040926453795667614697853844319041914438773818003252757070872912414019656279285751661873974441515188602566379629844359782866280162695147432930831369785039382096880996621218791255513836441574051003771747561460919537285139587043997097084912846412523495558830492946631903298941367433693007424047956136180457691372494358805542228247624543624718622913049050086189303232361069086784931878135945134991619589946471659332248921833818267494273785116437972459423917764072206695996512662009025252031353588071167261514746410020800092457021354558529092049219985076374683047958717368566623627619894561168124934574799083614857468965830066824465011574086361452263494158818995755868393667581350871942416727656315460659486172760454424095036670286740766086783565293128055089056334801672649751367203380168667405532101828273614839680598452596024045165484573054863907556657164536999347833144332020140357816655664540503645605236479870893546974187722333875671686825904230055929060683402587237223332421772927206244049217973492244333007313710184273715174988353903644990785746027795417293851619564369525871394409594604414400371266394446102492796087570200754743200015667547713788663012512992473485714429478619753794907851503194668672661157605952320699810821328264905848150630919173391479416925062165073077182287767979402839846544980505296024783015782044546564140439949711369367815281423008030442753177061960576142779519906193286648806201809105966399725981057552142827995661713884898132664988114059167444503934172759545433790928933881467099552013779678459267842396075925956702466314341675754269869618708371150152384713114627827007521435405207991534914926946353785844862441790237801559116567426862341829758529560242602875410265972334823113471240044376391719663948875343496844362868091728554262983972611896816623549111046885982334075315430832652900363743802751314013367867550709388979589666799962394196099990934349423610243211691826092848027434957641466064710441116670412798885528705880779390259246950385514950761807206304727701500658416471808277899326633109549455582828361461228479740986437353267714486045377527992895955696556244285059284637726245800781322996850875493801320583289895090050599033682434845823379447106203266585130896853452829364166553419499022772226052781856652180726306937931952736919945120944947492552574398143929797284432173012181660449410723739695855827052560314343941929649599870452996011224991906254230344198040685266627929622393586011366027286993166145564075608587988479984026423739609025737440204493411517775026315587596076582996651877801662579524382515817309545000990826475484032779993837380305980122354204555991702689415375232584489658874228081844147345040952257036100522264055675538729692736075287199310599712735004343788956247795665970057694191125820095541213621117184017941826204803881392847284578923948789271728819985858842480660696206658566106928156357516005574619999351437847268921670797967995578352964009496388042404619093738205380481414153761689130972469033574630070374478352536605713633101192234168915235664221108815339269052813603344174511158061859981187395992624793999734343432915048886290103841238945144905906758843218949243585100127058004514322711356263150769928961931392140519169286491973048013934384701598481587119046848121950407043100016626079731681836140981472029001962894850851927140499902515386340541112599576136774961233748030594893752634299282510746480970466595570140844730025361313437173843220186512014653252471357718798439426311669692066841159345291764818599780982668391697447553490476189982034502741646045682755233619170954850960148515336754375257199330636815891210025620385244921594698697821910003911985544106169874296625577840869309931496616942196222463542999528440268169136265539465895784272801096624154402045013817157158497040510435330009704164388271815570593050339269202223316318698388253333137675547671856965973942428997539174639832834316533363112212133822779409062260579446405705276680406868727238228267626208793083085328591495539878694002446576206746017282844880359651827089085196548319004734585683954519535706334102015500794497648678166018547346931879658322399690708865971823802549680607564400920022874205138274309177464478592799402144544961971042150312107050469072715116938622606150046055447652386429916888023582251932940873200259050731360326587445835781545460677782684936564390777367867053869423549394330243974531859932362010648653670864286304375195258144722116899687922430260695979899416837335857547730523259761674940497591785174713956322152691604297608068328291489214805161370950134767045984988005578326170481675615671793085924781947522099873791147669642318117002576584979515742243655139590155087842749906187084388720738695593906044510225805641354424297398580710089371769264856901010076135419373025169402590896635678470249902033268381920114038097526756091679146248000566434483255156813236170455881029297866563973942553821116240855428136505393025988422726448176209789849944162238570612126243446746692651060919397404380536097848123369695431342682736722088481541658991201586771931053926195037490366916670279761652010837978776654969887944451976372898467049286692178997792152059506727592252736175124827532215608046820150891458978666854487884306708181133568628870172832017446169680576450879929899936322630224807529211179621901804208512912164236184578838269283310534964029905551887354929706807248578467380963759365493679347471891656216809203252384690339032893169440480784754810616586324307873922754343564761889051863443256824711016719346458922047261950802554501790096494177277253286359457306666872463490309643783358369992599460430823920994259321308484282551509608395813900759298474987588340525831196670229111828438611060451668859254092601292099689523947103782523923100016171906473259730261327995428711140848574460137644042536869334684574749895343519186859247923811153638739107090473089467274649483120252458963573974098895444098014599572053532891874706550731452935170558347731858453537846657592082459950694165025332221016827941214301806576154786956859533220487809286687820133645787354413444070465258669754732663411429155064818562844205500162942334045368079592774420743298947653489230555074608905931714583269994134761381658907868723613762793156767645115738145044718280811140484757946277810525467872416459843210545256343789416311306486302247551447236648416608697115236504871385897495579649266512535963392964504134478734452596584026496014552902695356123012610513220892046067521018104552979847987129873719671147261808693734671123963741481509401578290621753061150582771351963212029169236521178574024820887292784953864350535838396024684388421426814948887350138383576151530876782375471539197086764540160926363645394480240557706120074184700298204814595144284453534539026860637229034219803510062472834161242853578772525480685900963655381300285120786049865086718454680972752107261263677751415386070194301543007979668986305191891418276348872684969436982803123607210265127109312419451723757897358857815043489902687642406062928305750341123240996157647887713033254113649825251175586771975468382284877566322304189137088395053829961743895047009774320721728070563104829456430724620245351901314490507309395445901067886936188645511369779039671530535724486046327488270278468171381379898408267247323986838344828327159876660891703395771591702022498923489262639432199874575855419237653470510975986498748527299418269365675773187222164475496457791445253967874005154123164070853808116755597208728527044154941985446940805536502090016880607403967294247090166201938625936554278486750040415856718484030232370817159211881283953209962756970774495230880627593044808753115864539927637609975719149901074281766419134497127969984786407914765812517280440649803518811492676932831314843221841642564516796647793865236268684809840489593004340836395790302607875646455367975750615646509393427206016539576658703091963546003983939367341839669433815968392682291952444958963978872815491207300226875535627041004793063081216945609586238018094324051262209659663134485879198286117358703922908743231495713448398082243916750582818975898131194710493902096108008981787861009864518304629511209369039540612702075264011352784128930170258639395841717675389542582907448586607644124445995072339026343275797599368877610793558740931885821789891525935954319621922924741914556098846458958752783569535702915381916371638497700846572239808785904735813040022146748938333262473997072204517967310314116286906825023454492722505135578335840737540365931404589327148257979481458232404190752325813312268834309871190234048806203241758085856363123509660994197190491315319291623627801630462550184768790009646961871115896941020514548836132308969383369961922624169007074637000683694423695018674777560052092460236680655686918773347373578152569986202354216926032241814126590966414338233834280468819393604740450589860390810336488347223297605987423494589031601422795182067222504871253485872533809800350107618876830043319911409624438701683085835616956882769076080030276084009287768339542665794883832353441519228694095993955622932381343037333496136408962370637408845613023782939899815903336568770863741589169744399991177851788694415602785763768677442081402786661705736958995689035150592814468323597590354341253229376701087747867560216548671645480198681791983078250147271454608950786971983350001642870980183581377174610078862158836568853654517257776618518832102626478319271671632214780778193376573158403718644527428930254538232931951579519983441608927665737782731328107604152233045328355747833100002559812250734630197179362480330404101400082390196611061885765942827148883900155531012653882548905527682189763844613214209568019018763944822929783526077340271221214701202264928622916753790989596272631510969218930118994031342644544256696347066355479498776197126241920757479329646753280162135995132877144023074088488015191446737172840766184085690435035465800479413190224030351470515124503552966080967358932331507177438527096991435687811307823107423730613864053348598241333100589182364102923671375992887286587197108548846126739093179329506699703856941868391973972986138872349713352046122800122904543991870148604953613689837421614923084977055510913225552221858928594950047379492563870284260459751220014309218971086093499443568798060268089572625384405560100584732832567284589146001953142172176586859170992671252689074683904236320561512136989348722703064769532146749652701303761982084482951276198740800320278379141612691317573987920380117343537260605259352283064094845358672531698570060795308699721174669168224970340803935629362887222135175628681971069988844580436860068717058582981032737646974261364041265308138814116263328176154202424410434543677889425010882405268873552017348923332940804042310182328502229550453317193703055028530288769035574395907201107178597139624074076943058928405461546398548372757824219810849897027605520040932493602436744043600572580335408794497318176983085214337942527925737618355484590744521764170863246130030425068719333410201188017737192572516358842778845019489123678233652820787051574563275626808654236259741907857756200808649254136167917696224168837046913289415494752560805810311998899187357411307382147497460851165780943557953408742185836889187066119333508443677469211444807442640924731330928228113068187634244215589262549204139136632246428241100003065176238730234001076357920795983399120735376053697086528072721891226361963519666349983228449652311351075280419574012726287230230114408120603777993956068915883322027564083625772235090749340625461386412268178307645208313645502405950506979008395003292934539156440435952331469606733189457059677628934010390612173193377348765488976591917014313603275761328544648690072164106880353149110363041974709856857674593038793584461357415900931719886258423469235420854037959758753339987738010079276253772450402589273970020201959870161302901567819618011618269435553770128157947238038492121869632414598816478048134321455552555989028019402249945037352056488075263313149324541048406127543268746061413180995530063759773239423051816148711182642186981853692712544388147104458049828066758270182550226930662233408505622472969097006475549649671291526731467629820575138205930250274371222321449643065075199762546381075019532823614623700869953941779380433157617887399355804577428152841510416339540236283006133434657710569754411210759505913883178280489847063851193689621186920363714163267441470950346863910341928336735932801131807591169161101349335902437337179645108796135119078280209356895812699561519517307442043315971612229519785155804898030507744822812433660532167107500868819199031400288950209174564285859513229604088456311433753446066012035523655473980250463294711712305877939529618678434804073344972428420756568381809370090085553647874167518103400473194370653599400080893905887691604836802626583450357055713229117655541140086769562677747317034850457345676458144532801158409135132142692096375415876255131363319815065890054277781514382822094445053061831189766431873548917708537307387205827075533917638126141628714810711470005636903509992581533287219464254979302650398845335382311343855233520951047999856405608396677926109970996278277778881636007253152386111406940251481056276892837564448548116629354001631160376722929072918598728719106287222293810787858087558916077059702589098156282932673676034059525721556392380599252830721066093709141589661292777397221718379624538961701656072340274923868941890505965593861673154559967009431129898405643155632347049822883421507609687573733858391962063674481540650294986143294243038795184793301494873520497765699374951459757324575771253563689616189203423439943932184258585119708784046598737487539008660935081063189583393654794279338268636570971043398167181821193652911942734703299037940182485919819877311347755223317507441586253215352148791475105513696824363261068091075899898291219630424138152294851403874211210652679749333489288242379051799174518044209670434114086693602275461619049153182374001235038123370289583453331345878798829135538388864677652523090347366596489293695919499898201015575351073859340500312927952784261070980749160249955134845300824370946374850787618179811727612444346991426300279104900713360463682044144960419721781003679618378961644157552730904411693394585214875311291068707726551809199398381269264712166002582992880049368705299812444663166524750852677724319540570502297177936251699463503437682260049113024921517155501515020322564573402650418273937118404078255829929023468680305216801495707399099507217213056372575780067184234049510251645072887162885675956478689818286763053270786490606769987910945329007040073115124392391885032082719814836745261791630546936646210254164312474583569459995409239200814424710930603706592348964656487072693421366567249287779247320380351054489062218887678259413542216592345945231214008984649631000092828051156089608475472273244837214075212019269584917046066402554946392558394013586614876138261954080913592905600793055645092730316440886405692064710763110530499349818856818683147098875587143594480770157664711074140858150541734459931066899265056550212805747833273756143970098195003533975256371030740971712533557344134143974289881912664341564167847534258011571372496521164206560151889412135631134833486014935237491235020679458820508187384805405979004496680409154315550744568412934769183209351718981682759793371519275512373566239612861897680008432167696220254641575433892470534927434834741931220350628131749560600193372847153515927859838585024340127404796410324932277034472407160817911980518880063300658187984193110647079560110230938351948174569290176737351357087181626729540938895286948997663944935516156658654464461232841911933071741401349638572877984823101013462285114336915553198161142382618863846403706776129233785360751328645341839598949012663812994424606347642652686350627979537943889862286221615496368664052311062923480861756760315850671403312700770627408171562543548789801581368768360204208074327288494388395997500483877017505400240570986464357078380032650703888143162593707419307197891163763064458468859495828393489667643057359074613817459364071060862975665652769607641799485254155182569902020860482345845890708732710268552348644747261715128096368412976367202576757760929560481944010483803176383209237207603941066585635269885672908471416629268098234660141830021996415548321442123570172345972238507546970317286695566670756886319964157155213405280915260779464219172138319947982761060009918340711824233084576307215852979765730729657364577949102125767067177850081442704834483348043711298232678886263405856095113384264444917109321811746129391612120192221195183127894927161465412477353864937151955735930848623616784379227955562758173358606106474295657654311253894563960521733538890326300916746318718109404592421219679867457473170448174299285614536614683083955474077131926269872794425074713414025768506511864903877719389608905601017075744941233265740299778806043139300986808638268246922205119487947851132131047357991976030720092139065074399991381777264547724563500639029064904598653847521799938604003108658652053089070150186445356208250574547813482990675200273390023625168471836735009559272377490971316844840807276349882757933145278407080823590135141404934424438596903809625512515797531128675690444321162861243248975534133823928856623165793044226313418186682803759890406307327709789380416715974642860261154725086221058984617418254791079830102900554947553906413324645396225764304841031522293312576922731147483247207112269680349442901608097382872250134438818793710753672569107084636473308288873010586131486133900483334861403030735573967661980207005672648496430824133752874703738914914111663447114912146564292561251524491530948898247034541107643959387266554117099707935836033657706086308534653189484486176525331396069373608856263480197761186304124958035875814871721291882820087671612680049085800801254601782195066526742823000133451800415738449250225320857283483235615911283907819858718551465792199807227001996358756070256250160974969248985276865422932324775029080666740348970525240730907911457914448245644769303927371253719909172196949938417401717255668970211468038938793929638105937908762237871182420958356969376888140976380054879538232914218169600599701095555302807977236040891413861726440494382914640491664802398423845798942613927380860454136434902485779393651641668295810758517613989459989592500265832012021291481205193785852524681661324418829892292184825064212231674702632658696706788686894162014516991437038672609359734917926359960773367853288164068284903760972088680689530727309691000889490137459640014743046866142448424345016566911952527627652261724651351457907251560967513292207507583597916237679622141774439996171533067174727069790759496589528840033957258545041466965469162297455788670160215712293753251512250001396616927777790932379629387401803865053016268054655842702600711497224457861548697935666183976061455279273845654830561436302405044559931718434599733300436596439940688847468205632501368687897283757859310713742847076122432694562331303587827981876890139953238313638105615997638486425313837532875683641944773910486367949575279153347345064923649433588697900275291037327335603823658523404580426126188015557909633006008856811540948249101416124277575035606473432211294526199205701492803118440652876366499370086431618092368009635559915738164491415503401719819186073503461317930127597320056694126658977099204397767712840414853805121586105378149111727696592911416799484058368163237851668794896336017248683279129938720417839267672783254979969277333567635882786206960018037561649489903627564855817838234977310422209902867233610318182066532279894536000376111996059936137628621907693781398768874393123653061812547039185332544877577185404904981410428191504311967998573133387134500087767049415556984805214813157481066369662931440065180188172088384985861075819851953836717308530439487058785418280869205825083173763841847202899510296953124553409091877061626204904521067448508453032635200433780395758577202846384064653543795972822250059182312286854050787357142328336190240079391829484050048597715187509650883228322548529882485090516619191928996795690700937134609064885334665913503576678476504371665448699942432701300521603043138611377798727257344390925488866922849271223312760930019805933331654326625873732381776617469677486424288123543412042379225907875217515637017924836565721592839173565987466052828775744834627842032095543710670859161865170049183069291130827467396085430047186446318101780559048657875725868166522320356041253955853976692330366802778480306294141693709978714222534699164853443799869219016638816784763166353645075901600320286831354992781108392892463330457326361971888849882354877125344262566351045789445746276472726845499519563209205965942464277121284475175440571323757197182871102560669940153234539282000701301736696514483298688723061192523884276640820538588857969564628954635746064889060690298037598521125932279893933168189405170135964082495437745510048252291500634002130602021155271141147094206938864263225990544447403567731858754124658646877702808340593255759596725855705521214516261984929621026741072035930050609886985357168074604679507290056765939272688960846309851570954362257190102311951793801968418082761864797374821424668023899670323008398357353995500816932654563859430985998221009431035238110050161824914106228795190493089286275912314826459536683462392703457668370883640858761859070301626828869120256359977802080810803016703692703759969845237847919799362025576336497555972392114115151143689407275708053299810063736125031533240158329968893466920610168459351988753115247107698234901094361771935067092816456193015354150420579253514165503465762954737637943234586103844146472582462151875298797631336608594239788298654272133377418747885280054114064625937942779556326430626884864635568737694995499567564037877664290660806509339210719638271645715413687551449689491325211250988583477459064763075087634780478493682987403022261469721121173031407709653494049577320169468701109881191979250458017030699436430600217044525433442561962561525488222628406678742124419869102594704522269141048851921452499267593207939550802563220931281526431115498107575223009373038595939726768899578569698402448080716365605924820605681647621376795962287937328488977790599776900315980224146080335092629133937873170710626330727888294103793892232738988315066915174669594323766827862766157078575257394168705717122233420847306073612515384008337259394066821158990615736545024659864940795774549931994432492964723063075906776649518249135871311178495725670983049341613509310234502724490020838072910800059423794824799866920572235678044637908981640205042240080051642522084942230214295825407041165316727241368547316052325639732922079894799270494482755904538779764152834636222624441952178899385502643272327825702585254815509181108799318337811869198294493209665238307506722568435655616259814366158555851793677957566482095393328265782990195024096355216418218261757486592080768368398141198874128210392766584946130689153905166272082726091157492748972402727266513903868764085177335306717202509904374227952501120043984455121989987296128376892920582524639384421040710099383468395293896636602475603885180535697129918736060564721320561383650614671377661800350803195728129585885014985509850826526258760458761922753407718642580471375937861090938295762385765922269572391570098884543201055693798260770375127004622771909795427114791635807743783803305121056424242810172384340654333095574816585608282240602082814896502493836491188738344800644059352817214959123926631558422627673324258883113838200565466562921898847331743030855999645338658197064873910725078605466022797507722010545038946785918128898289437256212905087186572999375564648779885505408988692035792708193108340140910403531125915858615464568516440899009599517920676651340235640797856894617480183165405605375802509237596341247812576966776740570275663553118196434117147460404937622765736069433068015375728499806018494882283945862953263336151050111655673286626854696450745186081178770519058003111354315303004825577769670525314162970128237620817642725185743505419593988641473727422051148477472482531632677602899980624470716220146590345910547873761071573334046444424356540644011300026788033162332809163180135192627062815514551340984917299350424543060913365573097052413797638343962085644476269289098808572980009774493354579087738860218795323174647692677571273174693096814679425524813572184733776074280376605383642361820280278643466088314904804373296835977127223074795158894950566618265759520418965238658891474727742426061281974397276540215216175646289813898571745307087999635725406831948311730801076774007908818962139937685895921907152806085514287582359448376094491489828181228757792386216775715661229421152716036191203252046227060386930075934504663633909423863684779590285752352806832262922022523429260064643405902971773610004071074694983219168215466487621207824980370821678673469775762837209889378797849952044522183101763245392782276598645869638379470315707548519956815865870653357344591136140478568284396837383379740178041614836555169064540553178239515535719829814054615745686903953618211537214683216035594731069063103116257304048607943045337098233223327634372812198964483538795954849891195008905088784344689462460272581837483934533827608824537601330598615540791302496339369097507852606521820765132720565884587081768851256394537454734864548213252901304898619495848852504190764493842999575116550939078247782013756647066758555153199750893905612850890294696170519246112153611370373288424251137912160714379293160262406037078611497509832765359637993327936396795069589231074820551000689979325771310853881162929674114569403706520804747727821692015420605887148234115268957221991408960723452834803441341518180297231452936193099182417044564246708510891261356357664505204046567459227946498160290993862984994059086319683924541845410295959978141415180776222641357922129934633933908646448095750023973106950141351705525190657641668100030644124310812571390296460762094378104000260141792814309327966096949240742054929356236268577057734469472924943507705340317484411599415078172536169679580730575423906183620013924689501680664986077608477246665718558183856526568631600410183579225646458736964239276327735616253015321901466042066667401685993038284197236507878360255944949674181974139950364260810266788720004041751618090151858009055383863625324357653487056911315406475440464898061119664166189178342219886633107482804063633229060136469169035553589185499210487479381008367934083065472196312248089212293956997675024842434201024673691751146250738420657943573865315887406776678795264763812352481904861329448589348987461884718681542870514012563645534459896155636100752313045371074976509143553049918567708593457451016815195836023964158532211179939551276250265923504423270630460850751073073937337036319052175018054050925107991590528610104210307695154882028287549760342789845809603475152195528018879668777151173883013504480670676328683825659469320932614022452728760543868157454516959625516640727195545355731453092645787617343171056314496153177286387408809388038208601777697565921375230715430453640494604582138262569062302693034931647492120532580974376390813470901445434678658745547231310719684220248046813689013597879535759303560171908668830480980307185261061773587996020038428998747333722813668696743397083518902875014599637110342488602571507008532909032212486726565676111250727118299672179748196784464821007439613199294318391188064410500294454936721145394466010758403314433204910566952207076032041543896632081479528248174430700192231271970981043858617681700165430157282685370453462048336344238217830268870873409543118598115867089361595826781330520927761661284615548762476564449563569205854605425864719328946108110905274216115951369964113813464889834713002314023314735147481511038799556740749292975101823218048124362178359881299373415597268923699399754674046348253566184772500824360650321340746217592163851728697392511538320474473808135782702152176668220720673403412628747518399483084103717461043237605132552865941581833270960390860400901973915451910724419646867774510133864807572014390296464056036591333956393675227367693546534581906783453134710913350019101194538272435080713398236250808422232227025526661838629933368031381765829011572200549341267370764323520210048432348403327365837312246662036620717750099774839285700004323989019130248022893975183605818526979364509003187643383140391450183230481919319487661301632047793948925335122344517121906546930989959477236387363959376555517431308009702981910170962715802546483581969718518233279238548487108472678805223220373042353638061429452493908486675800631811255364213923852447432280905950722357843973095106439744438922462095688314456539680176604287350765324340842313344545652495654580628455131907600604607987578040840329905398983843210331037124908478587947066655408677022765826994551858812907795186656203993753567531654407975180795511947696418259876576517606852568912024950865226459679333240134428097696148901544889939836910115152609744636077647233952545931012482096812984143148824974327636599706930326240167758635213428528079626072406885424424457526902653589114192267604496350811943738878564892500261675309910401109841007709874133508806452674254472577533204347712432137407886265400528453117824604832650436618144912600705559389426079565814366379893496605517673271987119373323129556147550571823588710035510703884076636225794730977155770806592076106449439752448690812241622175299305525014988923833512555755170945210737910375777317140963992890357215067617983310505521739502730516741815926710033947129064433503111947146072948308781514916375249954354121429266748977575443803570433996009716205422454969439258384799009524464503916667828000811898058504075762253386065734749635074389282916694390977392356911186904972222932402259087473670037592526555393819064644925958691241617350415098752018633326533387074128231585345044613189268942020373522105745039065144888953661910880862986302544515001545050426754974306119286042976488875353051042621105014167598581811057590281226350272896292900439956289833129653494159707634399268766216020618847752884493682456117090325299991691349703531849587967953517432347568655708510000319322859798372223518488720059604874371380260069439013326148075511105550453467997531458340426359395625036209849955456575079362029783967011925048316819121277177541076702208304636628511563249525693594704033559196000662202525585237407414497491027288066149177996668089361581322983000330461919711016339365222416570653025743590630355618555789691990272187044004373800099362427205813564831860346659874552512667025264781401686533280305778937823998076345719387689661081808882276521107512746981327476870100764998129669085830361259312346893147961500828040859350462844096116461649793096088642808077756577042858195395793250875986969694393007496037071314160961093215757395307346511174543301169293590507117000364570675255233359603197381389474260729906661454791577343778771182465788777579650655825231481155998339023385615439396722116418499532259114592119571706086517785879391459355056089942579041315701944283642945460883200323563760037131406318436202039569416396929783308641485650796772758796792564866806689878634971721586284545586949979489643011214936874081804934902624176179425032781648524703122233123456186842080573226010371953563934884583955819697119910001311884440062763541573294099312528846714700151781568687082918349667300608452101941828235465713240030770125228341115717511656329751833991861404453937048033807274112224574546089825340968706622187716215502188605238479425519801485616516398419857069640171543594180679572557346390579869894995676516587014691696629307579261245984455186483783684897420131000895266523994868548430371710705396352612712591092861080532703088277386552516285726956922038902281319506987192718819251636717177241045735018650280608203754689736762368525280061502857459680618792286919019619962012630471871307878832816580747082071213341459781149081430849463633330355818470234650168869011450990758985417484764883941275962708991123652800184003359534577351314244284496936125135899909732474796722054160550869934885384677521105489514965051598473898245355057397268318130049000630474604708926903546653576206028082452737926446035746425952945751140545626913547878452001594092912562278408696491136390128224143780077435321563838754329202523979011273985842743070011876793185595713229701502353676368931857166789961705953951073666990415678217055965147781274431961715514912919344987125763942383431874117805085937269113581955441610351824520464105804860633082217749638965357906688390221003791831083579855524917692480284723912411289518768220009785896503703961903477879408591404811578124709342895378381593923299287984014453337682737700116982762937067496478708612297195191814695400831472509726157733800383258329597047634079024847027581771752586311548700990191730089788925454837249975827364516993767927027713191074285995094189000446210483898580304020040947230888071532086763876981101996569251719217143528614372180752112194346165653037398594179642883346866965212924072252028050654146393278098809437225420258333606236513811860415136213019108323108013021076916392580852413803436306454509837315384633471094319177502458528143165369543070917403149378962003718809033038926785367174604050149092985816844217727052202876325824332925003662098153858552903066392980714516058368355420802789860505554269123287677111591922965811769742656108345629298019412162684421412458441239794393550258953134761558352341864147353811257406459246507562877911966084775569390702962407972432274879901773782241881779843254342653184138950177912485755686875385521184178661097231055325738379766863349025048804933407846094192298001603113807719874011791646968287453025600293636624220176892854992830607033583569950553989774498642564941261744338643731582686042177386533128096480475469820233405765937121512154964141953617585940170853788459497443937311873816891867106123438819527455196132371459613847091566205800671149669997407217959457716120324518735021338753363751409438216329644866744835039353020655403729977651024501043876050014853414380391042379660095891397367779030190881299908925131881236566699962312584871976370564415018563138746145848862029157690323640876279486441656852819310235267162101834413435484873559136591131848695634930026863969862843909506105725532102824610743914254935365511210985370708047280111065571828856533757544618098663628764252322608321448045519644356275122487665401603570967597763928227897053964510514645868447260426875870583589848904322912900960670771800226131471705035317936208700435991541655191981033302499752945573149733190391767053008489346602552348328753406729873430558828605021807277090915260726504919323406932529671410220859494097703131647141018854634539016067337888376879505045718547954545279773695930422237677432249191952647401157561655959350630768755475622918247409338707832047746494859157670096998158049898204625634624908102228738344023785814701156725731692422534672948868414744937783103406035174036829893012247705635877535268576468567438952336637690022824716609158736057544992253694928623694147742576324353135211134671074901266334312235154630584939483123233361461557170448429983419067109567371670206288483500793973053418686963116917026047831613197585824311583180014060860433675594047697202456609084973338061104491721778360712407604446222423636939786436592039321732074312411507591243489218000861645262811701766463539750718460406913269870426102979030332888140617620877967153189060605052822081095167338447703968998218710839966321695173669777989384066857763245028235326913533992405260473249909322838956884406978216277291427687450679605592527574276612377035131914074311110704561645294340096417037954832525921235719779590702247273909382197399195889643098940046827138329343736963519071995074347408458050625492346225352442864334794152071400976468907758424721589280210793600302260207277137465934724638943928302819565438449172912239176242618734751506008625835161982010729963323461448483465057276992441966543331074457538703798311302480162495141521896494818815982675696970227778117590374797680199474638241835507804798246982622383391966547644034241010431529055122283652454022603214900109719798509295348186775582413472386807415611020259228433468250062649083441437415721013950315513477087241817682155444728094740144900355567684455435775721524786858357712488848207545000140634800080074469630253205516167599363069937232225614789100576264623002956669781745854930190171846242619182653575095246465455536772412592764858041729187353062463305961280219332849162843617543740164651688056576076746522711863344299717214625013207196369250099757417596035686805129926572971652809042549220127637160017582217366631067741775147750753761830776305403585447824166168056747111665398040644828053748862187271616372502056319606634412581650917544499557433745622335543321425391212653259854701832997733504143971222529825650041913445373949992954782407118003375934789175078036022767939399102159577990730132826468789766175408556357448752504221860641150528543280225083574270085574858782186685796472291883773591938954767746951482540360541824321598470562200902972819568641518981544443793244032250412737862578697395529612169696788694554763939752313689593396609026301822819389997805098121979726692459456044782544367208350734941605986351997605252109238446359525153051806511504752486710804947870077482205939027744283876497289869711064192926375169255233132935788341049526278130015357468910185743346302959857500493425160795024200463065524889643135561220114073956764265744063708722643171093910005145306222011757943697418041251915371893656831910384299899944598756939033721010542893644265721441929182896871091591535962179804663484652588645382152609756300562453977344498758498219020762638938965999868932239475640416063829752807794589483718626101154485893814070290772277649575029788990478402573414324828738018205384781399390712817953156605570193420966868884938038835783650281088020166672891013214942030620021933935594240814092156491614466615356899812054823227000975196507740216592268756748087855409183515041328253856730355463603116688203852930606315067241553161812315742994008503412628572497769622633223833382460511778037226541840125153934173844549447270417513138208476513692290015314058844384829868384631478204330792885305110335025382985412877949824300024608062426188173686109882636564475108329221722511625519390346702907580971346071362606424929285811734157989524802485917071780620812205772100559260078758329827224002302385542378625448931905491541285888147428730023740061616394058879826682213287140303300656283017172483997962512032003161032267353089902852176619937768176348190124164815386714016499738758055350802159699554132552491426310829669342665344335744196119746128937801679212050240778434416338638892119060912959872342660186751324645603183726428446662479772602208139641006811875377714548979003165760437762579019491338330168046239011430915512877192446746802862307748386046489699512303683438130510893978953899120257384998337486556027813928615024163976601364688880824586539110781952683135476939911431696532302116075249911444561474192092878192297371077950520912797574929800231582560018244999131811928182888098618214622180618835375034917509181640641205940496743963846477617506735082624640607644457465105834310424781418621376191762497631424684809865493151347292961337912391891442457726024971923883125143199796937180621413705372315876161564455045411699133747937038298419441148481364732574964648121484190012088763975298678024399344985506570790410954420157000593088576471061063952174566719844966314670730769162105323945475555156500083479696699200619074702766274793203233674819548083191899580927620418624098139251969590710648893066337417159986704046141211042219871570820276305612323897462731797025672153254905757552837825153391816641725239175411037722811751068241640201632871101258614040746307543716166045932117852928758891852818083558402422247405775863255670208806285540536928719777397809812494358776659953676520751083954930796276951264978729549489488966701983789368048730990820266497036975242710758123010446328699970241839032958714336073535036664595771314970606706027377833791647609466154188870137976184367584265155666918058979866613096151807472944673807114288248682144523473764356116372839890092133840884233007837128738384353909008428649969800581470487804528014215567257610678809014488858635146874132137149881993431877327890294544183519745341874917794831202873744102651886031971720783685152137048425423276327671501744493360882668790473783859327121296998445008763561249378181340524554653023407749639759487302333066851147081418923435996956146261999076348039710528610623575938931368051498152054830844237898690360655723640670390643948973750849108790650725410656573684520779835317965640775127931483733431137711125024259455881969975195915562514018366513693828083685437349483327777809200522198842270934164085061359980087356673611618903666597966411869480992717412889702536997762491018987641307955126684760603731209046171462726070936527443202237909018881409694156257114456788843310258648616866925038948772529762553837657421545792018932827864147045711098340024053947872935860138757436143213988789805142355007400375482837834998354546473286772942501401626111934247712070398127039883220914864892979242702087736575114294433453434555434459834876531243065877879473724491113233082216542273775354949388181832576352680546972383602425966394001752326856248650905791301124891371233234376808080753937695732364854798531144456001988427301981561389546214877066836029017229390141483847972489756600384944752543630662308425342610829812886129998879702420015065289673684508678165234931950194616357555348404331536178679288966019200952759255726359846989342667529651045289832993406725940498180656545071469136199411110638681243032979172046921165229036954801914443097930367361175003941461094618213724044534287199245859919032558522729656944501490437150074759556991066472121565494557757255984445554805227270435572029479502228422684449343206884075649737800855514381359631524834081707207644612678856340555915065125693826128538124476147952980990167840054682154579635966166788729464163759866321837021737571294510228295603620213058147297184682228915054997279712922747552184739213784534684473264238813620031795393315417100603633296977702859631679525437531775645225804026653921084932828778625544840314523770307385740672965117491291099623448485433925592475391886364558815731975913907569563170698635058636765927945003036964141444564774859470761167731369970044410044042939145924651237936184964564401221520945631061892640587195164297140557402248850631744857417506172431087781393972908095987911186968754579573090495929604819815041181052837831300221602459474721060604157743596575475553158903724198028294191354267917678715084947613227774566387871603595131525063494000060869649655218116120665437480155273207273316824305363227872351226622641363137601728726262683722544801365740029832050033533916493338579456293197325069263523716072673654530820812244222924408536783354583728765840893633988833717831504257645873708643616768002380139263141146059067921481222951455402703389072047269939749733775180520412736383183453125449925518330292911882480704839470543996773070360534620106004796296040645924416357254248487539444618221454250402129762732214665950281035273284602481552434292199671961106882213727649216912096099440599383092143545237532407160104486430287485410198615660293297226039345104434009983461876401225655810948346072218876844777877550652731161606135078948539156442495439619402865677500317132289154762683274571494991414380548369036283537631732143938089620817107480405814179347150733088223371294335919196956453954571238188439054195528230318470138089900607352003480154403305880743764830314442351370409101729039529170736094993415758683677876809337081809295525758163684677654341314538786612904288864935277541288686527357885553395579767317367458949864084460138207089609312152913110712301129787756645129119851560329851558605288741159537060576964061849479274926673012697671812736855911133344517653676206420701835306160988814354678053299297351278215863411697269749650226130792880743256271249571967158096977884033249822021905520552218499835954851976107953874267099671208102332016254190479427331669610326604636843026812125276023238473305375715622921239848565790010226405313875820144903751504485211344747656681946499327897231823763994328221201429375860835152245005936531786295952002453540352325115325453405978529231815242694540391022747967134917222519779847306870842838055594590355829468491234843913172855970421752083459296760136175364005605911298229540374302965603388672281446506396203260373825821925736544950467914256886871242691824589910951619925797505758637061555335686501218365147454506573615183370064131640800698488218312660141704083649894528517692206000532370819791986028077116841708052609194610425061471968932475639517243940062431257436205805867778191362595871653798738198211306488001208835783895320631795746736711172545844629720884350412936899221950624709022159679214489077843954178540769028684567747130236481997489068657603328045350158532013212118763949658363605229365635468675680402456584774089156575323376739006927997034877505512541858268212003763854859417203415307265580300513298244636965017794679426883433799838316499842153206799869058370320737891223128706731716472094187062681818535008560027657832973981836701978070304292404935076542884861813555575381376320047871095632762145430323450038334898094252205531579170354921230175882159243111278818440700116253366203421472619317697428352678733322046481693074496650737452222562698791718070106498816756887029322701004056720935995711176575839267482636494858024517039503704840964891519532656363123872296222592375745254580757269165901809495745815672552669829945128349128087658997957675486293252803190200902376742471036491040512987320243634829281878533239886245884138187135195291122571396344980084472381514819477216913563996943344919733111044917661607188734846515798728217586017675287427851876126823014746487510133968729047197049334616332065426012271168939420610967881511538080763117810784264125761397085342978072668625585434729949442823101235037411725229107590135848507991960950965486206761925401914453994139907733384485734398241417910266924742616301362554761872211207762634010408635962661839853335617212521144855672212403615414948978005135935474485998605101957494949505451741820441983964866344199211012508007023908609961566390544408931091247173612594065543629274437183796783142858213467816338325718473064915876399825054035859815609851618997260304732520263777257962045842421740933872655038389701886882910308927297592038553122923170262582693503984473701310517842498589286189152861492651794880704419519141696289744941995368628544303215735414583046930604986193786245665492690571319737942745574215981705763314330692351574209945942939740454136461248760546681701310878089191851916439917834651060599296026628672099322345779755694024240760341997973730377095225301696617787408961605643668711469398291724935550498196493556472443903828015368839139396762390696631025454351261934595523771717594285476074838507648077038463186077402883727725322957555527291267218471285992254926561231691495085625280527335223571167492016077759776012404761162111605464503397804854931605874192100713342569715669154147625932681411520268946511230833400469085836861136389351396561216358739685953980699220664120225430605095541264103164432678204486923490113980977829098798656950656222432217478746674211512190808429605805622306978565601637365158098001522633801403607318141494204094330149023385838621701072544649751750649960408026801690240990102728255000857277250863431028664888387504924557989308840390240538308398473747957996138009810475666009692214833369049964452790833460415699524802298002190760981835432271900192701223501170909776527879828212607863975925456909545015689285859494063321656191461366073765823913427844317444521749722861442210085013959306827582804002505449936974327460682884348620545149000472986922793741742769223564579862664791420424513257620399467289358793203174010398581025370014457239935809206343181493009449675872220340631517048710719607774658883464346472148240910702713014682320957612032656271127098852446615960986875623900692474836375523373351254489077689798384073374727222391169163661622233593630724199539985296250328515257244403084416800748441596937425322968169455986560432334750523623848018804534433912087118420971558826084545964209472775319053103628043258374133971385748689145138987048524696399314770479822152847050821003383906234338287704586750449800428669650673469922233103789044724991193494998904355924713467730909533953430641349595246430877676043843293136037421720427492400315543134091197854893112661009278592475094951453455895490517476123482439583783455403434323872950214493490964141142825166242263631624075512668772939818954368094095304547519438758724945736845742761385881669868909781927023337536125820504500085598652426463089720443059319778738562941998467497604476381709955942368968735924058868083911878493323508251585365394186269169128953060633587831476316948994862356529984123759179773472135822355256578015176899427828154123392823712175844468328664433824457503386753443955456154636266641946333461694761681826463752939167151265863189331002767137572978882686426353112995099464770866096927095268076829120482931939019156211256834900481485033509843137674866920235446593044218860752792445754831166935063185352545070932994641534698889884030070427141807328229107947443559399763487095310477616809282361293622281723623033470100632652997180884168745126157835660556182178046648441283946671440252737730705847375476185624585364479884657523913446973027923836537626436651695612198401132503057227516154332327422062701017741215152835061768109520105517458635537986555215006035822388747825644636616645988361983268447240714414526334150175684335850134848454368062628020065347940682268899197892835135085645925623231225056204258043008890323603218407593668243583107933932023107406764141780471435385297697491033355787518734383010199942585082044132929562530042680948354776784260095790702422804736436419470600083635685561309845901372478059010523362204236078583501925314645775756493446418577718762498693683063546475406167414807014577123284875408889098127451888168854775797948231802553056852204586306212329967129026609357771209366921678717910680217632112294287802280329062609744651720754618406365898910102190784641120198609781640008388223393532910142539154433389775127014996284563372260111584342540251056045276947287574805570247710457870947182530745739702229569670984418200413032725923891387676243809191439861848314084245377553551037145801194023152716541110279352183586667143852080899098327410374139002518460193973718900656668271887957583510391421883751990505478639515277903642404259809530674313995710146255108222791562685190964071148425765632243608083851437888006043676169709485900059331855610589565832672215995209802836384736260198068488420606990403572000541024601151745760116501540347635489868161081991925900355789931019867600981156809432430474408217524963550278842442068146244053509510344060905656683100335723995954075476483788723555166017730317724518595763339997704423702339483150202637800105964337765849890345560318783979811730993159610246774016145744638865335966519705122636834077476116799677203183745884577964040263571843287788920536840114413806920554749682913057135488944282967745824981008354753134305348687528781931404890668929475799038671296981144936167066862668699563777781846295651677444660918401535041440174699171264869896497985469098763890882898391895265756876036758965314279782381905982547944562175664690729243556789492177793585994105817220044553323492115213350372717233705828483851999571163790510294512388518274481850629062885645609772745068455027522732041412844496768943689184102939336612551744141485950277413331123056601954135888185036251562025605729799864185035838190889770512943697451922619976034700607431191009908874910080691941111649457509785554920839553338892039171510518786202641135338965277392094734456782587834089126934785240702845584365754872133264087170235786428011672294860113149918767698745529697030619442257336257268412530800751829835655543725270041392305505257530830272716420503462557154868806655143341198103052286927922826677555503608068369134803517281206826941516492729110789065427447067437142064831193288416457924311302557517317524644183645798545553869013520871274502312724750943803105470832149306398940484549682068583155588465376073492281887182849456295698987729218414839653612481621995083106173095926982480015215990804138202118038457194729540090693270903701569207031822183501352197349223658892546159840603089472339106181633536045048553451162508339565272820023647311117275133227418849954059452308647224083883757569810558977134372460305897325038675993216930843914766233301689998390178289657360706449135697420615283999014983253350724624271507299613375392811466814818312110779851531588293612990978942200276252295116565949924044589440959687472844081429268866807352119111133404388388294523357154449785017448985287178173669976858581166908262948318426327937078721338470150759816925426400833025845935563929985443953110519526998497057097330233604895072590743666324412152306209338840549153480100668389622768214048829933894847475823734079940406919437928646710410590482862128931440773204132830274622301029954758229265356678151156482455836772483729779367211859427126764502955368896949481101524323928438358964738275850360937666550228954853152152879471495902331991642953944453791743964765317608119137829048939435982405756798669270488353456580571970490625140863634993821102959021530804197741947435199659557535672201127751352320695960891703871238624553354555745258920446682247493731123214187669824813199940920340024218474574677012475135698395214744897546786057964471139290843161950760148847339369046385788219345147618270097597475935719215421476204797850629180974282305905557776246543634262059298347376051562418893685481481101987062064176994110793625353241208219445966226145939693700579997930617041027471597000214717575263526751969833335489276419289410214437896023010238960280482757777568997658707957061717637125610941946098877858839924928550772301230080420147754655494727708737706921343625363709445187725813853141044815518942486188350379516045234510565544773504335597449033522906586307824580592656137344872479662672994570700834527388210782664661374424595703473159412851207024264642665891748330147147551739850775748998788085552306020417644749892148700336762793707973851589173958234137915447275146370700172341410877402221325813013547636657056238098213475136088185889866375901370488600524248808387607996338695680773509799203391733194952793375292486058178056641007723550667780548663504435878657688508702442568865693899312750653812825022915664755628189236898625817709628254501480434661055402733421094734304360431621344567972866909321557194623842768469199712037409470726011644022178773062386235459964540166107053332041952838150135565185308953233675758443852506693882015633793289057411887682274331251212443417338318835059597321686623580369617523883936879483314284117131934150841868333789568517453342138432554413967379371433158492106273225411927765447397160923947766383736768164882515655270919259413165314252505206968472000440896589097738437528209470112573702664274236764828234229663654780024130242671914672488499364576459364156236726372228472614456920642601008089660199350699748457335543799114579923235715729126300839020117307425699181075167815081695797511988250534846917769336837976184754882522343505846294132713333842083054890948990694375659984367178851311325786578848248402407637623076751608720699469617590586091826851875679141708981589085326317676063767975910442027659657999019587496442251934306008978245828302493734548996026491171515665904089695297345575438109994668782405915769762230669191822967689059071796239025938497621389670872258411971635767384870735422424018115393565428681621936424263700523456752017122681259069060814584774718253821803672197902339578008944334297638931732611127963669985295894378222111701867909816234743555103401413008179093273812562446319352849243409858872573590340730259078965679817862299816793671562610064301962507955218686920813523442991358791755195938953880690217868499089038552819162831021100331398491602810748688173473811446667743157165890713091305787907988612923275930517930838375803227574893079616869639915202470705904236584895329170566978571141466675774095281710520046513514080072081823670329173822030330216528524178493831434861199978216018505781713663220163044775987606353957449117656811296638236250640445729592458227968162268239389921156836953208704446785429737596285956837422697848099172862773701840543825004459340035766998905145537515441039575462485977699968000440505710802650427943275786926922995278797012386702684508730253541439061957354677399501736384045280563698486002497244539152936542994276269237391094433080607678982373586880612175920788969139999072555614755098009648834159741831109425300626568422653710872679155738055628581466797548967590025473969658700778259272170951592221580938811889131239109515794990896345494904333782300631154960461336446855359626645046330898136024844713830785445207761593347807849714320820771337931908123009692150848312492196280530453049285400744932448121835788797597559469661058332291364042544398145404263573343991290156969785727434314757520036711584931201390537658131503985203131637108687550608704390629745795882468738774676588250964115343371704477727218567254216855633466910862664738524404350228746600219678965635552854510966204211029347064419684344082298040297439144962456934021587018218684196868274951330947284613598482038552369538384731849292079183400103185075517069080872369142910312324006519439666068618485123231117322409569365146445471257912719488688759916842425199480114396255865610066495834238334832455886413989835097036398383907045648022735159781128903188280583022396026147098372502716864111161293622859232510070888031538279127938538669804856880897996169184694469724192769641798069750023271144595950541398171601476585520581122859040755936171963815688522032893680936580870335302443655531938769066433699604959658867127892817800295144710385498061516560435369248232534722291051169033768037531186036147621707220479438513076563215714738450136516293860998799453470645368055709698204886073482286141408217724124333483166618813840359805642986401798756600098465004465256483759597510700841229776161127064062826925112016007942368945998879590562140205673762529134014937909037396694619531814132815936297372708662267673022884679586374497194559407072409713683523931682082450006923581226952078668834431440703893890287196680302304346209816593564880200164731779647066263485959350378874236505002359652768866232182893410900073373226115495104474074966704027083579299519980039407512698501713137000792186004042946307414081532268165844984237072544814364645134349813558431062595706163779148857983536668319481680889183436316476600507451689485929298293305593422228820004753971342998072397757252969311982632616461775675004598504899314446807658127090896272424294915480419815273148424364798721432273189995148683383553532828709763814540561822952723164194397668997919451968454979117877819963569075213816774784689000969587713664060763529236686832829186454968417276754225678758267498120106645229791214860275044537890229447646385905642644390196439835221033355079041879167236375474011318468108732956050311813447743914449442361197452941626873276969488926436350223818286737920299178489880401476857776581213561648472915230887045134363592681309492818130390535353606630410143299375516384413890464245289475505961315573208698361433700645521975843470365284165463727309094867519022601673965094842260923149915298123180051088508316702155146299385378314688703070104454959964230340853344234910280259281866460026143437552272158070784678249350322987667797720306793902360255934334954351885248706909360807909887521433575292179097277673728257718976508266113687953349901238356538130267718507719158777217186384399120684495446048208000101454788354288842147597426028044900059189176114477847666265584925510831381573179411934275534173920885676421042640712103338167033552768776067449712385663440310482925077405503859881192892292407321808166966425006347123440765316792618405580791069019290705017419345324464304887980323029160556262991534002902614110086409929047611498637683078945164395911255883353502673756763158033003940536955373153670579951777504006800923550059243238092004647039227620568376451955081803415241882673729228680255730535174935620949553147722259775676245594778126362991116024072131046269131627661292713447727585923003394423173311064802144809716123150413675767345290892191215094448420552198267323397406771108231143262876835927051241507530682325339638283044553665376135708269493912701423496443464914936850336487034649542964712207011513156036523666444821840586975159592857203292996376642762124820959600430506168840530303190744173592386025630756784596509087013657627519008652409462122245806523507697022162591028665073748818502966014735041851141453274672641661289896074997913988801320666919392371662000137816361904577398414137965811687689506594452290240558931131806003912503741650840967984317329887756867662348075884373075283321916738139027682060593597095111775036249620610891742281636652405336451206266211690397161773396596280000586170957650651138437822515018061264712792784398481287814189165220056480262792168424069123222949231438022680495461022093879093657413787919649187597687663479827253642862090908285635984120845483772226643825857474718455369177272582984313344779279890496891444890792843516793744482709701951861920403337252318867949092232242645771320639370392536489662447295614412562165139768588230210734910478126158000243623850700995756454304600605364971118670097466594714233056986923310827556114470096023755290337874576089927824855110867382193247368989044286214204345576132809125226047211215244598825356822646231454891954849693939175237351592910732569831694295686764438636447125812850703179315265962886219868828964737186372297377018220469372448400616644621120386092728791603358682160208215948642611044199069458223603405607354912165958371802709048310425991580107229916675010383836943386055149136664003747782935936485445215262144146802801884043231195292767794473943640694465306168246500615348161145588349320889679473209213104898394860052977987527466085117721601241866108660869648190776022874674433480301720396478648210128540643581956811632679009450877922620031463090484865017664620052966641234300318614273696117945991905444660369568231091440484304300749714112025803194582227067471258990713365956240608103099795012525321530045217048325721903520790381470161626451665747742488030868437412455418635841061628936373983202838048522415092806499013992270703113071631996013476835425942714233866266044954225288729920977071844757322094010613918427373126085234494085262869087758775668044824278921378169106145197388870620766785046832678743225054877241503018243539364915398658232341476724809657370517469828224353126037537633755400185725148709369570496151920434259805349339479709876269589041439027185748837450247094588868040224022503647756370596499270076098349266375907005202716758256206051057771844941511856078545337436230514194629942991788874910222118911445576129845638455680546150032529589745410398605989042700223914856441044936132677288073828942457637583248529693245208068616155194284107097654972628122560805371818273675161347790222183286627572070359311927004349870196179661047147455499139389976970626700833992951619247539735126792481233531060123440218157487811187057630231054347261502199541760592601986583426404782323391604698768797385949184642507526488747352939749812625726991674878331813511787160574928173587163488817040764356766162983208272350248260165972468295427029060108395506028189381695648976304934420010738764589575922282737886916977359406722481162006634902050148308945601460750529293445132029731308722650434344188125271570370925442527546449659008781020383663847532085508936289673706739739682843320778832689382114468616028744507883993220013705830587645098134122413293794476466178431661710572187652688689888129924226206010754874550617278039107227194783042926571859901105624391590538476472887783646807931477362589294636423354982463319033566953885079966370189262312008183409322203259985374172063334087695358832191888681067828476033066925735650430787893227574824580584725490179860685211018506330814854522461601345581018175337380421270221108483304935896283834763860730820253194026230998013567088478720535837265989155189186656466068827846223417879360893376683017868654358319176453382479938168652948192460670688103748332470188001700456017825292616597317552437128584718224689146377048195843389773250637051711972628609323918910657607308425764962391118905492906484139224307503236444208727353193664683335250495155477180303534395727695401392674319369731168211886316798704557706963553992215187204252357333113293198768514473578699216774038939862163586231512588004670209881955124948603001035412870386796783819268254919773672386062141191576210888015868230240247049696209601497969249269903445521839722219987971696039970403175959565980734576803342691051534267513431379265966542224034395620155642302032947601206577612203465986116861990434270115452584613828607527651641377083156440965910592211698444914009100989007001513761803117777484258828571726290519764189702807658489800448564682690766306860885525621975837228771410764826576562767717478706092392273245676136352846789009709547400983492777141131754099472920435203579502512603515382430941992691693547878700738210263377149719316567600625763186966276228018259965578369192747503622157651692105723169665565955235487990709985327964436958994976144799804324706788335513139020206740941049764902276660220569907907245400323211455301963300873982390266613876279664997168056436687567688155226241707450279368088795934679325639710624310099764776618895738979155076486093044892178424777416637206668746753286821575142461301774368152806254709683131681942267518378434875393530195936626618585771997740898635958702052165567973791280721385220320460308225854920535813187854518386167767362533532669787302021327847412977089582280789151407176989627843646976467560147990413689456096986351480829959999257383809650650203830810739418616814567397861475082372100359838825860287707264107368121353166268640357820279062515208066113607479448668527553929803195225938894634313384965323764946601025413724478598909665774495898087152471040770455967578876058313187351254846421116618871326067018458351406225977195399458620037360306950704797904262595068326740293139976016715317413870804566663966295154206598981994466544619659610994360366832104878947653137805483750699667565127314729946229764752032439019601912501904460009330111399332325718670353181071498113065029103120673932321029072284102812285921743033561544210550701865927657840999755888818480099145103841603314456638057505629297277375307753518542641904204226668508465167061595117704363268742182143138865832940640775092906837245789983217443935639552216113697048011340547429961433651785245728561915186781056834596188571095435274728767506427277664259674036691084620438449109923149752823857151516039143605444621630618240420572976913829530019399871874047671767258149731250874441426663541151210129173512443289512738877420292050344074927073687392678624632329235493451921943082660859449243354173022397123924914751104908534839872271417794418699921151435186507391776100672386696016672047670235948000059437173884514381792606298256338784457519369176159405154143485774303033803342498224800758858997303084941049891519877010395234198401677558475185927537963250986601662556747130058008130346396650580348755843038777608777009663325649245538406694067378099738015978919294749527797232852283447094747357372999636310956857007252479371350605403449278046215987039803624339472263072267310558067375916007548762235667736544297014862714060478664321394876298774982375895809243863808437268082543654962279418557514741001678110880572505401076756099591359795355131042190672139500076915031352507124900873066239276492197022380051395164651320891625191786556692675234330493805810265040912841171765087496045100269968349212158964285710886937497574884682932489766577902533981439950091759699097843736164502420723272863176389935308688586018294336616452915266689515608531469852487396808675414452684664247417550687157142367503621408630801951957303504954663305069402928536185769378035168182798879050546019335739776377572794267007183888095171582527667271796610794542259408520227105729783693121524298260458062481449753444403139690198799278215087896372799434583633690261048493656461545096602092542796491654694133024843317930708380926180881642967300304163692238603484942855567834580132848192511123784858236572169802532073371135633098959010911904686157057202866089032189489625156535243677384782830786988003379220403192136023490732550904720740318864410382730482213907793946875650870859112805602877700271643716508226699943720251508842161793831241254688484808027034708782510187759570017938487393715973052894541454939003684449420315393071181797489398971783102333140087954368619839722198970291361764579710003749399556594671111165519305865357024296593157543137419324103204297930183505786384024948477003194002798758632186341222539727660635301472204663394278586668645777746453033876168365195004410736595042652201665835635641270058353858264808979065823309345299078610613795008507104875267744865312012661943469532898362943224423774159636788598250892061889444268747953756477247029101596166284408142703336785580183897502359249550105034365075092908399137359572092233778872577699059749367056460354733338797203558179063934506205934627342119300824352169143428238346160158502617162777831501437292327893182700209563177774073640592111728789627999520789292000863067204801452376713463381564021974960742542103928698280105446137831821698523168892061900647430149685080822803008682128848705696076156070474275415120750037674557268735479144034677087052829863613062137029808200828753519775182077192313363256139894639796321781541046968942371735666016968057172668607159555504358261577580574026960787349690699455665399674041244284649439712499999682065925131904689558789303681915656788141120962091936164713715497823650956922429438792311071378422223431005743749227080857011413266010809063094694333603931055747304637757645172438262959169489098605460836362406498625908317133007612023515605571571591610432774265374408022794926491489604223142328911337534916844504080598191741289681777971877741275770350035326002843650086703132732696267236174669845097068797103862509965077388997565221311914679793895460598824192062495394152053884405819531250327243386768100512535393173129821695586663504548119175151309410035936530673838102510539776102015496475080281560631642500468110696318578608135328603009217894401331527512609480197717159509242535963767672088977951876615625991280292597924595742469953826295013282229845035834099839885897236189973314998214065165414072336827364124607424291702234524196482918912588275777728289187268408168015294575730648559897443222690662398528527007972197610612291366254379346262806335187564589938765694190926958630035745083458413138157382573683043890502897881320504074613809804278088948340728604688352639474376667589455533415920467113494610375319301305548624759412542762885518828890621730112116032057652640085767285933420571845657772593876726951145816850883585803934807141109646283361247406895052114233344477516213793468251832438497312527213428373193994026166160618627680766072687281031914634108438000909330369076726722536994387155863872590969098989601077369644826849314550471579414238504971490873718871258948068114056353357765958949630129594290962710281140010348375892311185056143965954655681109132536644581715710598970600713796946604258355334745068191069618025155229409467628115137205591180076981491788410228616671029299793666893147463640706237234805267040646637092430580123568359056591710655130336429699775228123923585346465321680047787267464547184022356080803223043711034675730991295111864089691067725080240751932524512675450842779112390126782517586084409469031286305681572837027421355532084007074381690688437661450098245750514656996466229051519708281560221128327522034539542897402228226710198233608663654098472614467671173340871243617221765498217658810846903254927505818988435097678625058874383440131294881604439116398805620283730073818130248369819238443938741274578500346202690992354855032638665586924921790761574538896139959872552992986541410561008645574496876357421745144539153382994872590059572227939896370703120519237251622238296457692477276554077451541131996417689567143158230227122114724848069110805062158183615150420111638729220295519102996542467294539145764738912777936136683793679142112326166770878483671981077178534966047859841768990980668913596689151416968855630314830069904455912312537140345937808423548592960702802986751638895772346223340840006889445071567527071768125578996123629935978604908470314562945812100144446531302213985284816827501442506850006507892500542127806516849607981405447296800822660747780711106089494876935120971745269101467529553949141928781467306952919720879989517846198694429564739415688387167826134208769111386711650058787336053681240420445240075354364437679924009063067574325304452882719150247401950402292408632869646417956864475942920124099310099885077997823671940375906601097396919687651768673848836112259517822014595404487661005108018849180983583784523528644713001566005441486651910562329872581386750733882569503763758467483464117317397323572748906120429948130386205301395081349641998114669249571953250443872804015099515755979801334291245616017485443167593708605132121497056456474717219005611504172039012282448873586678779309906226754501201448986153277313036150190142705697421458444031999580551666099051974408862512584924172681503316143522551450705713255888808766816677438527249482901843060769777886745093733125928315051441514104306306762485418882750361106633982086751938164399677273576169656654731962763545806593238351727463610471499433597787860647430131688263092145624831956229943750960441904506361047061790298884198274587913920612384766540581295321218246767443645328266670322086118480877969638521179268768354473939535285718384573384568992975800997000957728782884200589332286225795276567166358935210044361036996136769634888445131789083505338527372241306762914707400522969581946126381233770644946044190569162867642774775707268970238671063033845063551698602450082587592995674297217989772511324560264860536700587552600878909317950090791430613062450182126524491985061042882372638890592016380713661394100052093000192514927177714709552724133157746225809824673638277194203663434339882234318066441828212850065907407511224724475603617213614449964459393145123249805163049688554355787927552845288273444995053682904634827924483186282804740176183013314059419039398329715435727412970325997846866474462354931768196525057858682490695523950425957750411546535329336075281702228854556437642960488098739974248601664336273775013410941734305707407409122693376033425625095779750115379006299385819623009607781544622073777934688053270030332137039627673172014512011442071660477972115218116049922336310025091806555954482273692431580004036510223115550478845019462422050532833560541813815045658114657773547785315595697906509319772566665156880676953041661229472733776586219914529549749555117573362635994595793133571687183139956206870581589760773640867806956245006128992035033148164055267032473864163700583560472655477202187516871728310276362368676755550590004159773825375069862754147536939441438783952275647377653289407385717489630638982610122540869988200988512691609692626004148427922178531768999490526048805258945461517481769085880193837620085216946386995251450611770356714343077038724332881580418202208492982172270172068682627173103521986252297635398308747139274530320618853014569776829399879559085883481305612043321771290637244134560890891040771426553020517574945007224767795548255974150259584461612317451589690550196465274302775412337510125452114438852869708255384652678713387530127504155890545288072965078598412355972692853201085645351866746773695575224328093502446335238232859022319749491398162745646770905377450849920316222083172942750271585655060974192470691013744894678125466735332638588532901768120850569681891617571432189964576205151394280100180946739591901980632368048901780368876832945146935955754686965615446021656070242459810495142749807677212904518021111194171607234410720415146625509490463535121051407426551254342480434812390100201270308785833522200053076497638645529662706603454907971326536272831258272983749988122320350579274599915891267366959944369955621070995955200595500086993530999413116803079685231897438841267460256133489242048234548903644366538671218080412124204058906332575894581615752982751839911894309900429996546406455058179000185178173728531571430168025139889374688183604326703387865725945352681316193937489122325793634005807367843987149271180078292809180197422360640427605873590887137547710773612462272307998266598452577345568672050994569053096843363477284575501042157928977996648850801295675588157771506038163488782091710964286053651015798953439607600625930916141443503259753925535364791044879836428884006184024896537989225376917196108410844759282787580924396005696221899886273264484287947611963092472404782680945887025402889051074181492587916997206628568341038015197513185862922962635746831885742914521309555658261051175309236463048057046615483229938573111997169365254911460180280174060837734184307735237755648291865868715004754686614885696564310911136175771344667818928767464256764730267309365983233554520925163440179677188287845936590952451306581760116835965534360876557890799173821234594830495269563435472121022831965616083781355909563021369538983571746921134925446785055293063061615155690185756984012540394183384715552845349905341036519959244462756537466726449005018373912935117931196317786007640109903940414745646944417444249108686199934215765008740405403204393932875102239716958016742730219662255065780654315724942882689656003764824528468343395063280080146919063270073569167762247465576098996971135161453800339505992647168292497430136054038009251187853848630930362869513978011859568419073778418647918643988752236961978168330102474759247745590756057915033042521975226093160620942085112972146888937058542517296038074621717400509106896918342997003416119078622615182288010737611936267759184580384838366041118114009190619911752095527390260937617027195839020780795175482346097406853668875823854535537616616794910322333634171486250761187071193677035818407891323506072094384595842532298671066681636679867853175814599698030634945591663669927641357786318547554198655401245802087529141817191103341986097023079661693825040514417016673236979046751936027563007852906773061659442364037877068258808423596517489929767487884361816426483537253517726379338897035107064621234908872358975068143612027480476576054112663075097587391299648962322842615373226325920909965341563179480309874852944238133661671918651191556450212117395597877077510361750327292243583633783277304361744059393126193307674729755833436673043743624300287950807034142041845514066894053816933472296922825282725217933432306061831129204139968977532447252077549473046621421296771660657431684468583106197005608433740435814946703956458631518165999676024605631478421468585836239729921185110682142261504927419320457313232408428407052600155290826814905397981890743717168896025430865495771366783344544109927512101017046557890054615658754238560513264688718980343385151996719082514810906904653309759501819127819035566688819407326369244923291077435673084435699138008114048197017565578333727268253507650930329464924884662586429798277307023166716885041797833610606968857840742348861433584158703348939110527121718975172176724849558450257777469588022550662117643827721960320825596829283236554683512405048116433837897895100437996592174559392073642212371092212316763047351385687304307115374730149073626228068845685517730751554815358599955264503768119013609485349227783258509191590828598409545924331843794647541432542759482418069935041759073190867736537892885342353186411967804146458556862535055531888431769077080279137660940504416648452118076629817820339352306742507600564337351517374465906449569015133160816352150339874920272098107462854732822970306281060197588496719441317486721155313234635794486511711763347133807307501936405400832614851803385557109137124864893424430392838532288570292311658421260209441334814900849936752589961160174687556898819797098865381512021739840627915458403284293515320681987632030090399472489729557854307674140553684110299150499187696035311595088131768355635092620171196014732002285887111977244109376785073685324091326889122738378929929270205285377985769541045611384741112248640916068051546997066530214734235878673138051691177535023729457451580128096741398919519250356465688622818138301093920227903517973154180585061088796672710493557293728163696894611021457702898809751108255322777029751113457055360109991618782265199478037189833847159456440938047218528485212614603919496613254193167262377768668752385158706275231131085718703662971550895215420982766067487365814413039826471704662025419910103811554868905272929487438764933891797376533335708054822112081291427983862341157764449841024679077740333103583104760844219493107663974307268106302001228996290418537997828528901111285102762275083835506283349281084027376214171609526417912749062562541056992628692783687965120738474038667537380145250519533603033578981573358017393485636853767581563871882331564770692141795690438223609380917991422771678744651583104958951073578064018672105530867747197655265328262549149632837760617281187611746239723577161944527623743055560533351905817717635328980194208735245707365857503093806261736112368965957328451777111727488749273729170906691946420848470427486103978445099152846300413941406307133535953288740392350062438012361947004401397822333387042316652789131728597416943616689565049981003184629988557497127950288672862270664011658518067642909612387380127789199487092350066925562010426761604759477675692646234292745289403802877638256286997513983050857786582488074360176706076174514533717916833680929908692685795372333167170165949110418983062497099818378078422135875468773859837543912719894544437594746954396414109884358777709652191584430911265986592400798220866183806540939032138982173363059026748411092175752506014779085447179873842007845089935116412204164279685972618534798613958447404681172203884244864454857341656255160622799348637638430507249508393148467110533561467952407580928577785835806019024261576442751403396969155569896769077367438908702133524285896995790629753375401654459926158093776044469851135011895936761104536973037934263227257626732611148536639610066488151479644675380938343965288548841656279321931186013042269892573793192332600009511333378584800808458000987240823000052422894030334518179966643352237861119216834357481829159910167511618831727581497545007519218041567203611416097777639948157566889612565311898065490262446167025230756624403017154431201445234279640269519751878474756332326256589179385433301574509791203009873963920538420179292112925385516829393153290255576916493593048655430806726797014210451905888959163772479232839359165039447609984104662288365787287582037754618306457957788540698495863675130125179706500071167281012572103775139375889779255225965976941557710759383737142504297398802924361755890173053177853194666600919752559286816214500744605791969970200569777110691789608235637762357028698300179739368698776050223038532485186298436997611120006690932253854375549875351410827755525194232440171097316830197611675873756630122558839152147594028389828386221436231289426947098923966618059016880936689787541691323735865060771034158801119181022978635463190182149751092631750317224011978949948272939887424316042799716665463140348239843818431480182812221396432049477598760754335932545938225231460736340076405919967257583035146186966143606674680480410335004798035746375313791287114395344364440531328689425213124001483179492992462503240260237196391284455876453316514202736011466763415735657529128217502789846890059153044087017497586847828014722669286969506899214702717996483183983888240805574952988538754027079623688656343793730690103887932467621419062944995748420431932873606277805662476646873195150619052176013164578404691251453648228276310650049099146116421980719589842874354338932968093759675465114039867513813549848327205450921445544360823292561078540639153903376655004413903936673058844648811787970704819145699587354087486795400368572254936045822236524051068131469354912900398979177261770864757447441972844730393697224778017857382068691485646481971147312857578505066182820780568498611473600605773040991578188571444982500308645931279147960061961674028851576177735882320741185859416424609498664756915304908424511958892713341237736989000477161987003687503663361897445712453899502399172026477625405342410028622673404350303963893649369178065205640494734333431626410048552316554109105702012530511672207403960125351188162625088182496848623549302326950523394433161406028073273494604694677584486038451059814893420785236768679948358125011199634193617908727073218521714311830504655482735016609260465437756366055540834005531846803597421000115747988512717813067209222020062341840262848011398391619695191524638354455865638362530467132832127252571920725938237171712159103730414320028017910686719695102441662266470831653724441007906588314703247359075824985043256596920953684057594537964761975965550202263701184067544936391491400083146891377069681978827520586167537920161080218642273914478745208541999853265388459471997300182218843877306419388884540513915768232886483891596710619908090645824373645159376954616781739141640353667697825479290954601214905867974000722159253824347497139766084171619519011987718919917354409504058579353405953056001833333250101151547478989052036330600628031032308976639657601627074588443328434386278263120155800034594573294695707496329384957097689859288414427426153281951411678212493209464393996476081085024073676331508541175003637328286935768619938155596667907527014572446556384227481682379373674801706780374610961196531953990994040504719125886313082310310512751124700305191878423407984678166488547731861482496625127760593818751760908994777369458574802296615807564168988712054552982995211051268515615339659169093135668921808392186823179950019354114249488670367591390524604721616472318137512130849329810637815696129062205887199682271931439970719548457327248162003880027776354433213890111964919842996653841406665801039600234923998567387534414493175809057614029193399108090165471919764168531130719415018474338072595074719086193525245694883752794280192655809807258515538285651738581488954454760673401129642864312279464794240141530905241843745994543493672388355961838623656813760967895139068516431658466762745811670658543665931557147273213834023390637290895735762893750534986058078403775635853968663540242832146522691632980082403195751202035948919475554860487574029108438023922558630720348354858128391935707477272590118959345833528507787825372359984242285711696700160983204236451258208474108147133863657152749105237319874174473339714698477657860114557879560220435455331727471711721142103999155396521444845406171111649187097002211359817676603768561483766504641987142528781836369306660073673587419763288176030133077035998638881587633476436619615457432081651447173806654827876334842078335860327778567079651249482322446078504765947921436143897804604399490174220750045135851555581032909683744422256556269381883474995076501013229445866247771864153874412765272901670280378505294359030324888731518968001618875668152189827148576137687741197429311185257654846067422095843443244251601640979063886288624360024884073362184508805911198695466819208352776889562251444408528241694710784245083319160973424875946774444818230469162134377655305835466294895630452592279809028262661126021540202830398742874199267206830046358409351851810976037183615526532790334664564068362610531636050215072786731927684612290059310134335563796384348661732946790053557464811798839442011827036475761764629881213373192109017886423957291028696362166327781326208651731662285445829819739570021112431425255475134211657339285275054192406133754871538071653067946337870334153444802200651192998610460508403973550206508264388477573541464042304457482349101630638916058195881954127291006121099547585546234219974421965688520588371345959521550728153648385891523584836052968502572380781164094511060928501423803331513804220714567793210503430172635903785076520861042277065762926580183116351909307929569611688383519494543467653413897281517970664138161525492677987713346412627183489586673952288929273324291181808883784718256031712685967309879354146064102537545950999911952762897784737848318549466294487920864718615953114692361024845637929508337580502203591096553899126163948493933256101418224464047350239358853892119998039286223700247778859079715273655645552483056555494925556128372922163842145440987954906937053872082545709214609563453209915191195191976363676576798613277040738259279462816068104731748758321441955134889198269756257074065511730465524063311502558019547302329538838164943756995384862788697243009688177941706390726829236698132575229216803572710442193725682868427160176434157562557032823003723098905371320568488226499491990481061994200836809176224915318042371673240390714991128949693080440749535427432805411648757161450484693295878946334842842151080621261907775896062748822319059786257863602348936734069326011097287305703533702693935730210918924930707994614168075407872325431618304668017771931751165524538560693332246337130606346749489056385054924064377615251665840142777988159882787291596383332022820435786373816396926793318135912089182345755966715373623003897075486808713351185416673373079256831621275207039456558516013459991371450600645108248006616776239294828774782714611062070172415679270631781797928016579518456285923705477099538519710628575145060242710960288052308767889629990997207167101480423859781221910368088382625496109702188693529418152561924691181859900522391402727903613637617124868969690089403936636186552833014181269757085107907367641398296167279170476805926001417626027671767150265948191583006410244483696101249261664179455236304301600666198745480681134505696480681194331416473030290792773350384334746880659638774808717183754431235694123667735375579111997419706927745395600898769867665622472971670584252848446205739007481459638309448880669650207515143117793239075075696532133155711353770087780038324725285420490172152272371700866216471891408193654725736629765435622081971992975282707800153666762795827481020021134004108356544044958592446962361385295321992642299015833975764810979208496303466480834269626921444939296025920032260484314688006586078809563104584840865270389724572940521287879469797901145226696954295946143592142589851257741676709097490025642533232613089660519637420866043993701790228751397091036878958985274000062348418438921277738822531539213616911957667485867000578837144086863238185225987352080193038221705153241514259823594956732360329467215719205034849583694644851013632272900655619324950414859396388292493610591861750726956522924458987709127683024851830698470772775389386647473150309373576888192268158957566933198456901647643608628891963858644993793747108344394185087648872799585392816859474713643698803306507993472163854641487722892313627211757373308957214093441884642337602148932076996576479505844127935565134887723924485771683480955159902775050998828085059931047370641512445134474740228348468231618976225852375614889534852294604432520195534337262433147079070000306840125812801609874269080468580455519295881140624177999972522959527129345079697462911085767733823496075482366544000691253231309694091575199889593213053296591111252948854896046369181476563315502727365528543288487549227130515184093035333394878043112219508938040675918304407179483638546606888619202582253814806723225261503170443056283552788232877760001903964317763446026446365355911944198385841115354195558662604434365716113622796006910397461704304744717779594651429782935866368900174111942287918369172297215347897822378455055961712284314711921153886377218816555411843156300644130760140585258262913647724978333229814698213677577277201025963168925775768590955730856711557441313071961771617933346832062373768357461996002719761656877143959662075111425060715946593103560259103490449507601433473868175702541586258781995266655385463602427732627815850111481401049557392387131395098412489263421721948456312798086147160800638438630534096082285981300522749689012472881011418420587015366253660446686691839578797239423649024961422802479654336612585406132958410138973207868536097172506467255078826211965252270499451810996444207349958860245157383643203918942214306772481217877484445788658184402929340858865222021777703189552222532086521481325701175578927928839172897581414566339421150755523557630710117058573942972203629045958041626165051737895702753352279484391965329672725141455327766918143419309000689879792147193119563037872844631204015569511518108097421565388998020514112885310214795635752926196809029950558717144223213801320554343431965714717892016455502984967022015568269628568488861315634816266934936724943946809232756381457565647354396997030326341312905627450571522349936491274119450085404773184176543363151741722198479388621046092410321978391431480595966462210762361345062736314837156441819369900952159825716617222049974613847493993124972936985831633918646623007949818451160312956921094997763752752524813618936788071031605046307797105315430140348391103964698607815728589980460773443388133973226969690158992900980510181644218638268698442577441819537166293234347729325562987790562875759383684338541183816455378173700833907425005246890516358168778780671143197882963705049244350238790275260957926275020151414227020196957788164298446934860048357768686523322717489026886763456096249162477629592256010777449956857927577304827026991705029165695281314414865293663330764100774471797553727872424399148664411240303315083734631693678137958172754936157280216061185349820129275344038727158422599462641944186910788101851060362751255688292998884596916740516395310683742736640113268207131614717754479887322051728480318133504124800137371426063208975701878509801885708123429086944742592068104052230963759877225355507194748630834819576612833507772017149575799881807003067511757648742127724597071954130646096589811443353629558103235370618226231411256598249432975390714598684279953156785247860818153167803138137505796920447201019105270741722019646796911798221747955089324041188305175427970340318883160024154742338139489457687506056790153318607065825570520680419339625171049151284435816050736375486406486051963519911743624182735753381449025405248994915023481107680263030145371045120680078712657023389088365308377707414645563982077182913134207100821902381813140889860910551621808032425149714496331742736295554439849996308440684748168238820770235898694445799233447462842154318392597803663006537765077678845734425752099566083015160964890470152898542207213801088374695495272007513088718160290317596498740426088299756364436935997618881259303672042609497148307644875027591841900335036200710700213690546270082947576689574301893077646586162816963398024964566834918525212555399907894136697471750534770653788626985466693222407262817888208552909030913562244059351224469055574193475522151607979320976504786350895386665065964775676288465629023257082587026958304902705127518339064092112420725877287408267519643231300403280765734080285640685489283952249233483100194056786194158051709285029958829468115188571725282896939787160445273072313411358490163933654308314082116458782999838175484946298037986974530035637159208719778346650869482589623778043732110491776681206163906385404849738760203540686957002191032112100212178587551349736579066657320545001199360407194441605321882129069249442797745495325984005653433441377181413233629438028759285612205253218770569266994684885080739765617600044990755550686167400249406155909749853287040893433424312706460645862331857527290810532276426338860017991518749192892445357815295717910677479810611808378757622709827901222484692758921924266600488605054654794566199228794694461136476223683744666435334305488635475249443101238932633717836982495932941822675467070449095482438463551364009650849207733120872644550193125047066341711460090146286752432244668768118557424812805453341432574378771331736919845551423579121875255610330780281737115609102207705109994207089140294566604793413000825534537796627830203003045798126252461893982051359339373389154181624115031888112859423066542559893700242840218019033367173827865176233663348560039582984469152944892729594339346926214241575339456756840609169110122312913626725928538668038123225154454440708829098298751705304649786863248858426776286859564045742962208320891109826800490668855856505547708940123464720036526622081820809341750571633519267240665910727985536839301253234507299900979618074515969721930146226744603609433108680273554351958536735935471073478751568116424604490713976931630665813008732433954702419050773444586993108452011907700625765160514505175148817839025396572699472503963277438703775612097502045768099811758571803988982602350906576071544825209541733070232078902948757782563258345347683586907154736462852008100284388082885700296072818795238848091623805315185315291297302042626730634718835797776291461976084346370368107897655841245238981154169409644123664448608354424207569615593120511106535830789641112546004286573073697161454443939087930594743045932765596420988096650254187801407914685839249359252505997184541728637384121550631044071116964878124974796719490839396234938634674233833391080670307300471016241127263524572760231275712601851215480258911553764656609287445652493297581193482864872778323834260039346892918079555958936162833222764644135164050893454990213728049637551656018232236824863931078172470876663439053341819290548994719298187849349157499834877650822750351455748766918695153873173452949371678833945073881951872724609074663370441450446278430806608285909664509523210954260841217998320275559454535281164241892348056773459519046872106898065803320875114237263476823845677169808001654970215380904105537706242096500589020339950104547264898356741841790532082260375719673225034097476660910607001158617519185780708582616212596561979068890408617811035901551459096326564862770099241962286794181006578639876449306324731931806927034199424970539091544382719985619326005758298491392442587462605432963306562033458744962470134053260908410297796291444032280737489243535973710052683921401869051068860262336042335088057012852442626708891999973779412844550699950417870510000765059109727673888036312240373707871281200832922911136593670982361280863991470911358373375434717270274612699821420805111399984021177326485814452848975642269070327561981944151872474250600098002407955063112704934064102417893275377029917463169578003235653444589816868823343132857833960566839565701023719355809327560527921634209429831725737370059210839763641061069933231686318270967089041793492495177035692494536301699553275692207201756502794841617870624646244791563598481693617771134413249283228990978745406673636869028853937379026964581617043212751266810120029811910865161973981810337796109422384535123470276638290386744189991187333000138130010413036567434214500346422395969353275851222253584444892988062638235547126768076907372924708006900299604065416204440962829713525491867451877683097747877684840918514619289950080458154321340229381219888115137710225204216372398151007534341827615451762856953242774046443028338338002152928193722769703575467572003451581379233346898743465855846977258608429638881100452611921109026165521657005067234060424111596507828474349119951716755974034685662180656619627897118027326349742964323360958495006760401044046058260723403984771449099697684829769550608096563296436643185361581040040989596283853362453866758986359911467492585787468363318850541970463163597997311108157179580116821432446131060725139631080508361062553426177886387037809811582170383536591930769129838032258247918433758600302921100089778939319860969335644544508787714361662287905971646691911257067423904888140399837493048535148534735412435170338793861028380309958009060779590551072951031058714274180852990306236483614510434615037493839483976173158975636398999599970314732342603744976221839798955408798895285782504950266283289732848639234324823070401916448046030053977030444588284069378598883744238053011180149179468671165378730013293392122182580013823793894019650826790536270519745280861317609000146028785162727093985451815695068954209747141742067129372318843676157648149819339525731663743150059130488475699905118452085461143517010980294237965687907993905806153907660926040136248811176601599886563362717529754856822806419309121770590029138754510650767616526034686032623851498014474151356169397449490811012374995977550531944613689910923691578149680749102604730438750286461335671899335421033484671067781779371681124341793012754366368945858581636112906550641878337881852234231916675164375017788468193689591833744772398669536662664971806670281594059900972255591231107645631586259159880197264049742589621897512811363847504228378582495254978874293557603113202837338071796919653533489331951162207784343845876487970375099434736945851163469266808315253775998156814888402749343927259251876721110608753210339979242078896106399557490288089934780098844543893987564990091457481413961041751195518399680545864775038058674991729486037730032328760198378673584577006604918703783991065229742073035921101256832982112065288295884393259614362970061946274895399670417595960275907477867806250397661844124875640870536993141642994992050749160935442340282652649707802615727778914106836640276447403688422028098338649334801371335823488371493157613983112004107786417129769113285979044508634083511214005511526439129919581692003242803357222108612753052475819726763445636843446435199798966033115146464139193647570243701002608463265883123517945765991871394662397210964557409083389767484018977921992389179428170771215491652771067908887079539134595236759255276386711263097169916215846301055828411422193704269831385684180636062723279247426884505373816028620443568617459096879074817149167852460170102626115833911854501031866984725077048485464588872319650166059323730285999139914633325502809350105349937586276087673458482119803463403527638400058201441611226660941523829260122888596980061480859609791664045877223829450042589606617137691976778677632610556329973060912008015063060670236346716179129544278469030740275343243758050210695002751751642486888412985141165645851952687513179635321240167359300896913378672561411320684946529935155012111693598626865175551256257421208067547906515797294963676092342324429567614625283374775247275780683606963735576264846225182439975829251570310597814132589089415500314560620120700939441629984863486298619702175505045111302824652421940546513684394788347881531082924217412568919083320221337521626572271228243879937577102350481258906213393592417809119273941988282096946609400980894066068444701514628681677580953407167056899041432843560912028669905764661550417287483132983293778043008413047289776169233398673109048747965075608036571209567933058963978637566777365148632261182807652686945213106460634367580991001978392091564542783801388743344773705759468449223576380948908391842004524513477661480902617699392904087331824976885724987387671448700180762951561956112176545008363394893911291192889297898757836675790675839165655577768457974635448483332600170055227009430579006659597113981686831790892136230495103797471561959770456240512138020975542540354277878117058427525989609172759046854975731168377137609947065369548314392012265973342301068291445477717482192166606790102422305800085383134307855569947167422043328095569453174070619586667887855470833520762564614193069157090176250785995825874518637694617239350055288532972499786638735730322969799671208781549350124428995995538506387661351284391549526646166190079167174443016779364105266057278632478214303198505976844619471285343865247630999883358845965349278975897747390314252151841336022598683632052784348572186702051227337638007119722845014659590096837815815913686456528187400766620710247785229466999999425125748779832419629348066445297559523894928016731947491963161735329603829391951819552898170706025358929324667295853973981486076900036120856386911523778421399760870154221068350245406539339967083576177287369348729804293034539198409921647444631338663524738216476400821342032482917907009607456880521320440637368292007838726650557649412840727921915781351079794713914172549939584892297983436438318084771625264591873111637363249425912140673002715679411618680525690251044445281905885920920435110318046987110455640343658624473061118284348125319826694546461905161930598055077862434663456656839673307857888752858005571332328594095249555317391024779490376125690287907930684577975062316625208465920796937075167801402211385108791489834382446250213464864364283756952056493722153543160388013046475506233589164199564845250374194210311801368697748051848550566391361015418741373254032377995514424074027585207052087786561039194148274672002115655536443680360503429506192732361427479184900617957636313161619418524795921199822577275036145151303099970626028399155410110927213872577837812732372286004563350746797763504182767286089214195559584084969336115350309588703219290779484750432331430236499959729691765928447358174908082999162036937670984600635848070758919259630301790022269154613045158356544943954984161436469186238435689214642735843249322278323090631999672787873871140260886220592616608258482069268148781715082084080107505343797619061962282795546098655140680145834130905319433821124622795270743824852146885036611883860600746178789096330392517843136367051133677528025152661001717327850115068368656865968980399150989919501402652362746423911834677425421269905970971879036157774304694087712515432448876502203079146673638189871269646448817197039846225165693419401561160994802650106630274775596171612079197207913269081082011643916135910465357303522732968719200965511785353869283996163619800990388163705646043451947845609643714516445773684122176126530890175563741569987022147163517105733812240355276984574311740576503349554372298841450219566546022243262536216352596841715691178367007217000649049210054801277376095250599968107148599600340689568586814404928998135260423300271735680001626334077199013928270930449445983001946176783442393193768184515088841163466953400668879127667596970143145558370820276242117113724308481438189570012618476554451218133636057736973460241605870447024328891581807395441440079082185823144681765660748571834870824410768743990435153901365253933556079541679964971136716766191476963953712002138492288768326314415818032012660723736619991118928365726723490085130512684870971432835448402145155483546350842356374472746921211066085233158460034640531621966814523316192793234795899518203455937444313482852783097921595737027069936587726614810768434483297607609343781329511325202986093451872852103096506486677032368991557782707902598666348867130188019085335993804884904202079243868400524858374894209768170896281023566288586593092144777115543092416894981893395075331578748106839277745134886422335290689280014957787925028707911348705191523904162221596453347377042625936157986378617881822949126821885035367854454556334812594456655297039433041610099118341710075597851167175413975764547116681231089712572425685224160668253409742534610204103120478609053540922347093324934183737649816522360319357031347256023193859292919232511549107241363563331797833004834402404246150618625656769742394376353917261219983461596719810468166419640141775387578076306577923985838340048393724554408528204217408642077391233788063715132697521993559746507506425857709152053351734890791278262270612665572142767592516191543234987190807401675816119087299379777181073035172537915753739674534935081420799574937739032224149266242137911006546320104755528714230071178755782214909692859765302330714891773883701117214481054517233362951707631030859610246458636585713148259451781014552041376038173526221683535533654157976725875309245645334334084160803226751138320314281272810611269719010895350363030104325145485215711910106688417937336651475612973996953786809990029155158998652581351538748015612199431928748761205708462998713496046099280308418048141241747382027446356254203738914380367868095546747989218390427483601910690458333396077267897304438465103874663630454911339529439662789447966216212852511054615700383678165310818242828482103953081988755943476038969486082632136111411906859563983097046383115941012187209362714643857781347799553628449394818526432708000622195982033732229086466443917999630642925285788464478632434449481754520560906354798520260350515911843073795437883370968690852734518098777987552763064220036171566918038104167234527533215729277524778200574841482256204268383956186639782226905840044200735179863836217918356849796172945079322815837704625261623487535465988085613412456142360751440452911443972465185220881612042707066457023823682222854796410997542035551129116010595612646335126890055278484219863350898736573551818099645494069935304137186904407440679632677292188039328337255491204796418380066596423288763405822132748004685210411586872898963554891974427079835574756145667224563324461742652606819676893769771926789875407722859039164329544528674227909653832020928480872816465025166336181500791317467904127175703443536978038627221127548911936390674398570416784996814192908375904080532213597252141548275478617955228844539516709413922071689168638862902304915797874158670528000534186924208698350099098159349358465475578713706149984258472453367483311120219252277272256024468749008580498080591946877645327266248820955535147569522406272193707813126049867087536066054543508483276204965930860275622486845016047820844024464215297399931215659844537271847992149788944159513498287272389860354524572156705374834744887560340449668237059584361678153949747490766013443529212162479517223124043756092838238129294334543002880844554315980848798310902363356261436628660249426094727698603273778874613789839798670306172811935124615138146301432164847148845079975785767610845882520244464954606707537493515669396007506723755002209789065640176097895210656707724673164540086644943786403022792545810121436054659017847330270082989666612216996319586796010291907477183319392975243687915947499607580939580938748720984585314952122211267720528871187431641378103510329716213749006641132137894267537396777302318112880829736491200192754406699945534221384267314297265269846212375020360449545826732567910160403948184777907191430085062257337599233618527782887491648834554399117665616040950994402811550205024898240346510497987140251484393960957418690075497504344422309113687993571515351925720051745911603265496808834612837352159980221062446988798845605611713291158390449988773201134646216389139912639786071227081921607460009012935853773795399149257292142746441780650690658676406002376591850343418256108790650670242577712374308624313364551513984623229776167599978024808937428008113615572910067126659658574112508367589348767523432927372331049569490939031588665891292275310537220176717900082265804866216654047354766558437459855122923872669724200446301933005778157440013579325594669349303202427158772369859299951203589243765409245376808876599595168942794166975392112404519849529779058789350821997863941023895206256484731612842748057147513291858050605985092168648499335500435950719273058013419906149094660106775483605993671183876092335651912741231894454357815044167004406238599492209685319442508673861391746275625163396564292003974453120035788016962554662757599559352793980292861082627398800059935893454460879518244153893452500557870662636708432073470098620111136128080788455722790043331766452383749410116495942073818966767105440370244418466104963662581286970270348764422325752735332177391049727894277040566223628023748854692682786926495166695455323770137752991901687625879791832606799632245851778777846960723470548814202123543933693973394101842198637795520463708629532215810996805593056544671698449326540031700595284855727782190530603888627678397194320724035282330595978105680665845970585474926623564000948551850956279684578417409984510555733449211493687982924739110382767697833742767578617124906370217269272565517644675059469219389526782247507263989618852634238136848884537077479881878111805780932666781603788560256335037351091970325781423864365844232583768166492765931297594420958571665245697923890341382185080605057057548055815698230794239471876218276200436898492999645482459955255729134070390896551097692780584737896661369399952361218404463149509248212783429135520803504784973330968359010024182802492518414552928307586851516038574038153369329493771801105791774230812602860683491183364753522300052059888425193164998997463249826292189282064035437997636493054804676663255019027283376023845000475736569790049235383989405741702300332100970531655962788171159119061373262454783910124694417900558147474874496585182674008386474730378943558297786177518116705857397677052611183668689597086507495651750830729981598546736734420959944020968126120099444844431382694821946313363615329827039274309850165974780594544481465487712962297937425534068797112898387081263224948297994641986755515966684162511364269644159744110095483959030072156865086285773420168451659611245036224001630250729866785965771596288359783050754005461388812753744535822472600181746192058101108380238038619611617395655302676266967198062199885497541515697179911426786813418227349855499613985361991540137460960141949507434978926197162009466371188073543089296197191629317692854848783597621512938318456498837130461516559540537507180930254907769256361713192114988884123903761831778376949747624396183838609234653372256028814786051431322383087381203689866873978252517856035657679243089734570159788683297901820566140018559284903109357412008270880292570610753180639322222230950778324020265538349346337569659687846145452229504790581986464702308633567367074012762577975880850890260382331590656593598453400466553702117006585526143760120994865181774567908720277509082745623037516915290411829170887938730420470529241332785879473587018913420810305780456786012648368134296121612962341157322161878821999883437216660735975745766052512808425652185447143304095362399544174630929992119541876155111952969620640695921286660052408511336006625703204273206924420175529574125067027161047866474964497880021250644378583593603903332992092352652607302323734592396160458933066533823567892496392377987001057704259448082647841067629808708977101217187095234944157917417042960362573398856943782243672414980311822566151089420945036665380981633253327839732681768047576762978449248103509468167848793583354019407127373990942438007361761472133647351303204989469859464111135832176849392291187891213757391709807577239399450526696208884321765893009907906044263205175242129658326042305442669879058797783790623663481035587028426792233862700780062621233504951499240683806657739450476694880390710051773523741301789318480644896591289558497255204859139997889204829949338580633669164108840746083423787504872847079661544277440825549116229064263540118098575686072084765416221738258248269561012867661680327630725741337855790074361473828848077740963084987298954976487558161962713868626051658278319465448808413307968568382454701471954209920071698243311032896705360459558326244706256996801351103868987907249231658253434094119214525458210012472743645255110626895591783383500981286990093720154405053652545189199629928156027885919382625317749373757618533862678165543410006111557931729982224021701661708356216824074375672985444726585752063079491334413303114602876168521259701809414773930417971393810494480481832703215229527657829021840878442708033373524989792686141427989757322694472501520557814014175884744418181279078660895782791056053556875590097521633698342859596320924407267827963534103916934424078323546612442322253984803951303273550580122738654776858965166770166285918398704971449293295487822964483788859392435003868552704063364487799696356207134988491872278207195350100922295988773027889369241407583687671962737393098273105064443418965426214373370903632494096417007470887139680408235409924289112290481729591870599455796484542468513826804453939690089514317604087589597929744884738016308516461140303934471892263886725788977845665193759623682024073990645650318848351907127485003357658628350288985370010152815944864043503637495158796998644489351647582827228100618178811837391734587873925529372744020638564237930362816065112825846288346298106524707737276443485868544127410828761710484951377328616259306895617176540243263850386772676446200141939224281805490713166398655777292203752668907524860925720366190738614392933597612576946025190328696976153776713077593674717846512430496236228496356473377729953206307061152104840122556680531980133990196200481218740134116621254680588769812695717854942429711286095101387929345839048431721600423913332882904503285765013660768387330009506637199664480273093617817190489490422748655135948125969454885539272882502821694151916137695822556593860805155335472191222745474001679561219163247345106516490948703230172376929852679176291099025528794319031325004095949745423793254499449334810593235158186914642801414046096199033159488413677295448926977126095830740651580774708231249270752546557957727096740804609422991987662168019408488707485178273223913798746403173299446853895224840043097181198327370925580177067840595947809285254518195963194408195191989728286968110354887427300329787281903043589990623754027536172565588805721977284608454892817652670148029619973436720669886785051926593824220919656118703029527253366086573487936009419116713008489023841496791239239688972477994821968128284331719615720319294178220656938716351316755710651910632239576263005443903490465594308911556084952901472899745773343767052138893260342641280042486579854026745446347539389234980443958587182829749279305492145671683155251288803238355485790345117165597187806428662089526645467064250600741891046271208862678722174960522175225716600255601468833482995257957986969718883987275120741654295744921175845809080394882309527795669394026644616596663939564174070730205482315376764659659097913624200243519416755307327332854777200325159841756946586149919142606457895217319488464442824264509700595116693090708356767033433580336323040333848426399879661205886546095527768116805701567984511257155956789660204450683995524568510368259190459903904918092305970746806142984688789514223959423518227423061434702352273303201189218203814361409508653361472028605491454210677310852699561892432596837152923564073801554053308819701178686956334064447009929720152877461982634698045260799683034226170356239026973825051810340595073276014169982255162199684406400488441118975063446850073923999948544323783444091236466443114449713733057934903351333287549270127051761582161183095601285154810368235111388504182067147941484542606486781358810935740095249835025594500945689638384656600326815430941325682032717263845275923074223638115062838682558660011253956828417127868545398805188659185541514847589449618284102311765530398255048663185702765708550135101355828977091525444538543979794975851938595845132544265084158759966125889167009819162045978463777473784786327868245197569530781483408445459075923413105759077061872419739997293437657342616757671097483785995595475138122944253448361057658300367234554032953842203399232604039085481934638861333148811158339784484925139210223498917668050267991522667526907590423629229042820457404222161275615945129288474196050690734451582462015017514313826205646705878818890493371133490881632159975280112274199188882237799947767997721282132782849918909315476699586025476956560812764687384860537763639397898538199242646047724121939076819779656624564737527088156627623728049085242742943129999119421750098406742875919268720303621929011390891165987529801823499088479411502785647688296386865755959784891195636941317940098428218223155876947186976116359290971664965750333958369034114921562621157564729956701230868439176213684104184555574296157748199955234965940293123673958763530569171172399823785482872099238703486887576914236325439588900235166771372330307488564447888940772964329241770395134710176187349856237381545641036941988807988151322040575436301956632778932898488906737511249100960954573043291385106595946781845084884698190095013017496250894634269268418431824508039974689721183572046039171599509279728359708287802465761879729060880537216504795172534225251201292493919107898610393189673611725176619456391513707811288000193448606906696589361140613889582595431371749932989470831606987799973400152576620288425159319689013739834422486096907064645944556739148837889222673123291000473210655444045511834791443261924573054114647535204227448624769201365471459968771581227297183234692972675246934487297314730558991028545721789501146562886675402133899883793415467409092761549184319688930785473975971004294966559628364343852919476539815794875728785240957274172224414553040747352850995014729755079270025424697773100066739926893357955698746869584698741796036434054836001720988359708870636903027518474944622984730880001873607002072574478769589920186953543237291044008142753899164525568303209645539301796740901201642792403142323396733059668346465632113020188922985474200714929244167639842939602918703291641057161282338047883146789721068306063795346179372893269587385937749706948823148706106714730395332646701922433433845626138199347432052951293337211074959596190665039888355634288234510403372209658702375093552780398659847280370402362318110046631827720910947296739441401330033444621844737865062457030343197165357242576875809102428699665944450943663821521764686884191834747787733535368225433894583207203614824971862220561678261697191655638690257840954932814290174188245121029261687269813252172475029437479640190808880930389302229254923700371505551197580381967629449875656293671896083646116033336125825417487918717666828502724703987711285955437130316633255506161441343870786712722408224556340106922673195445645619985265068369232839639651370835539503487344422022834715054215694150793284641927301442848841792727017851246170923614465186431095298593210337219367835315965193149628524890809674620333236761160878785696405720251381147945106898072553965786024683177454846929832691821360079826200578702674946710054070935559514690058150193174041042849948511722263603264558206083727695130671526753878578265950524884295838012179211052170130241669265019702135890392931681165129956441365980407075895253505723669328786379640392920071697412682966501799348086377083962440889108394981755879591808025108857550954060444119063638813529671267712130060111390196205135830785302521890361037173733410213736701037578417762877162091692631660314922982477327700646291563141084213412157282063180458722421356745440530732864431503776094789275532739359563447212857366535542155159896976972635537343451455536733616861547149339892413652154992866036692802270560506041869317295826540181493953566779262352883529147621705298388266607617490554798765854723201947478329551835779240245271571213772554550163232567439203691345508125665606015855943563675678084042006066338074180814024723916618908760661084461138218827327911180793669987828013520802651308222454652158321403343033284145334092110185544855976753243910349464934184943758839454344479363233692947571737461095537676029350854944108922771760535374966149735824532384347760497951698753098369703329033151853905055566696782398676049308461105540774159809914614502932651569780603244000023027985955572755378166862316838285754773944231665972423136216714496810629802740286230642572505666637932608387877392055251149297986564591040794774765801721936962410289454769988560943370598857289034566276653521758949990897509196381667250698866712094058552800630521817041570599952095681868099634403185384664101951668063416378099220038498574904159309399030239441570985534355386554168314814137829907592137596546240772675931316149550899196445193824216779516847496827172632663794972558058667001431063119648774140206782013926120076450697712487852034222540969642481417947607181494191704339461104471394325028018834168878371059596524761412431526862696046577743782262046888251384681414329759950881233130577861849084594945746976930454735940406077108730306733943368602307098957031264800127117795950983374969789942540514533927052394942029907723787397378870251008933095989353227941667250834343608241833148379823252795846849036407999969528546360651326249057152307699755628236985903362821186781755862995675561245414291877785479911678681967165770615384569160197298351369355903661493429285982689323361638979661362668848699285972886718751551797684970552996812192380746451043187732324058896106963212010321333954111005785704716268715327362709209265048135027822132534380846695860026328345683962807675697591134050610384076945245371254309233412496025563534314284931589919402203617167823672691260262032761783676236093442104997037841442845382030022925235158466258769362496321370636704640216809249854791583250193063249666354340300939919361240652147682806603539284241907139663110960651137691710166843509694512725126003163527527838241819144917944941416553344538605567882854148313176566856892013615061430779113154096730258321589901011749721373129298641363519313746924521867457237264847229923110578828611965713628093154064317548136545436531249595759236335244625244479686542670615542612765386217348246128641889426945355544277827450856933922968179046084728190259567666795454492399580041556038345041062822239459469403613261926573957844000468618212898608657843024180157886627307686532880931358362191929820069820188969743549181202453221279369640082347359148260388074586779016739329053682486888026534248119825501346011910632849662746015874136021369815411374326442512352736612912304370251512494294316876362174818435866539567093757984544878834909697942646066592261992489204228903419408333966518388696705109808255333122129818931050823835513657628434069365570066066998126162264115432317407652706709317279634504105700594242394853684160844030516438131370614307813783065081786687695643375339924250085501968084972800470833799376512538471262033625599334063918217968931906494806449846577479529411572683289558827607266181493778036614216467201266077761263694044102701862647482528878706224675043952113170025881803384516729058841360521864079963762787347473146918868941424365529970487111693879603676837372660799538114045570875305795110161178807897971365126674288981346910838126098969985331706967406913439595422082803736885277039377220974930115571147514718322438654363141843180027925746394748807621251515508845569995793205988373601122570310266308983414304602100143047340352572222056455654583298258430995564480401439022478231421457410811772766659058183766457577820156577171923294062533030123753691420356271511373090791969756616799760360929392328490650146312767841498779529755297452887636031545493697464032250840277916811985336117522773675194441828488391755902932524961619883744282173628153283688590292508672200806324208730035974935994614834317468413690916076362454882768131361360941984319691012461253128022119063865249764036393598615043572542320592010854408157615179422226463026543587105519290163296373357560222336571396323265747537573691962033667389510608377875584958722214597794110051067370826369860518016342225386453412942383684045436068863319085146811211301552010708464171958698807565145460260200797821903757587255342926769557792974128805730243193550309624061733172430143519217893726491633104907528830582977842574038323794701036131339624200145527887365519537626881936559115609777391631356627646648839940626038801883002372688867126429844113955881795341447279147899727276728836958023946784001456443737896783020857479172611322945028164673638300678211592014865064405644418070156656610629037569810857377746248896143981686893464401264118764005833700334886658989881971162882272994406300067582559719344654758225942068131782578868297106289779858609096103923505171142537062734944820351164925160795632006154364464311834901052061104530979855209124310021872690176720726593995951493489715758725315526396181753387306955254020707407185097572669578482930032710484650006838641320305615885786250325932234547056099215553860147130183175734045269129638571735486583007902877090433536783911923294193378892879604284659660572476834712637704888233950980113805800370571739071947321034082301455691641695013497717893495541498031659413183384681552617090890185677847955554373133839119050596656878236073603499489724355458854131574010664250218356330025435611182214170725490524679838623190343034430649162606368504444298479041603980717985561265335315640814075868753295776547958582345086424235979348653757732432207099932995014447930859450677420712972074511133291130595574644687946583077752491230247559710862823284227330697122829033703658812372169664822955061291633586151841668471730544593450583469912457031263769774934805527621830300871832946322194864098053146295496272462178037664281072363315348963108559478315898244669290794138425366179685222943835943248995696706528428851765607907994180993114588582075427109219419691752187189883130568891259911579213196580439185599122583282943734821638979700667553560070864549284097864501260384540454189292202621065942274791811292557126761121732909441479619843715935837334676603092895821816783699223451919016149274006527175878009976168164389608500477015393707619522318157755460770537613230104247065678978884484502956781472983817920603302172421396463125566022103781803445420809467151021818854030213652708024288714842114749926744360566456628412853991266900934951426817399177141392680042953072576163270965917128224629497683642292292182114348834429025545242728485126461178579003166516954590752717891068061865114503179971301445455149158754180536594353826285234121178683212572320517945110217211145079963618609474172161644011910433084464364562862647218620993495701462480339392362999446384551177008913682428652647027288643925492765928608807250645872474414591329710466785017199772087938683361250808672312356341199925519434815881071776137406779903719844215656483377039036230567336334487706958432520812574695631150873746292487089877010187275320861371809888716544730625973215485764463031650344774434878774156783427823552581665294078413486783618883261447080469650072986962229811336023994242336507289499349046410247073238651994791591939463163359211918900539860326925860026355750277686772021474549704390128270721125035404054345505019826358436011375389204623113260355886855804817522671991829616697658728218878397783531295132846729364940746891533522557064449719445096275031510214120504448612578979682630693878805717606422148796220998189124957926565858380872913984999640079578011543700279309445890811911678655627585069811789732979752162058354175957258605480693409262612629663283463829914478867387029353447684472203356052567120439192564160538552376772949928538915524168056777451153222038531204468624312170040232457956035637258727644295086085647436312750613412432150475818499322599100221933186465214096972387287315053138808816632846374520415812974536636260733139333155265389563691263550438459723120237312069748863624444171695458840334536129877815326004081852524358045494067398273732833467984310355096728371339090113185770063289482827883726478302669079879970927080392724990533857758653348252923061257544953663618798282057940626051863125972842290006821826608639021675436353322915843696305652888796098833474167542796730327896715326060843473801267636320173954339303566345065386355424760924316080513214514269004504741586090242437317337492307594200868737350573237253889929914597969691238771409946238609859291245552218226651707219949966589017117171667459886765280445380994704991458576180723443967934821384004187780431418383212743866634652224190112878818609016244525687025697489792085004645331965248726831043902386620008780493861548012558320679399072042161369922741417977265376809540506421256365852228193211533374185076599959085740800658750261761875793743995913444035503690335055196785808083408321744866072729244928301459489463898535825766129923285321171084024595746012304944148201680888850770832724137341778741059415854678590002092188839981545250195045301924082201381455586741458129486369854356958462520791524744677531488330762923394911211871789275807485559572164745981109575987514602122506578068668755543651892156705383564088143095095299943525910980507819721501774450526656010917374475476817153764953260291490487549586947736337005495037397279022226256481870044361007852878333127063024617700667891428474314483107160907512298069372336732823421884231605093371848851636228206724306567224969126957179300340150868263965993696757341305523823513652332926796327451883448213862594034135041522540544594082741317318183559416399579696523851700432052628079225649528735681806153952786781279656160678710046014145721008754686634592458180981937562056425043386477311642014398151859314924509157668470185484776712674472564646724604666790951166579746355624056692339670503330544418234951678386983891817071862603319007360722154016575476078263966702517495632668600030868087310428345467213796509566085150385007533634461991091500962683281181756993279104639966884100066571597950103441079436463143468027987195765028241223144267088523387507718945131072250332934239903039767482035111054648482730904806920919281944046920546311804676722382969595906167750604151891820580356604417960051291062025420932370771885306015609664904603263129761720950090627627937194013664431563366438159613692326029675111449305159164915107398294016574795591443936128316821845334310728795459595969096327428697625957651177712527150950096715925174082264080113868471896300549012274488139233361074829479931547303869396528300002361687971029481549788692001132477971056634495836531948466031195651789450930165241576718573397841332265263179910812742659908102105521424363159544525337096702539810385769654624840993448248075877454138543981702626498113811526706057319668716014073932849851572547915819713089193640125399033764729127677358184916598621089846790657713794260687814581621561983590135764258672330518081349084724871374886129354437011047266368961432950754679910909584303108396270886593518773718405269106908654649360855503674928278575830035778372325731898459875599197727357790866043325709834715544952951126336851237117299926095320626880372168956272918921337439214807791031934736083453357233362803292110591384018677945615105191032837294009460209242886133003378649195487911849984882934560528020966459375983548458495939917170918091775014014745224869065363085590445908966344073905605400487960949240929415404677447587538542690101865236832251748974359977159335832502226000651284678355267282451560823175684562308556764578727111529742363740679245786171868037365605791361450225164180988904236975321597087244530486634199710890416082045780801783877144694766084269337758595116604619619573648351311200488692446630273779524217937914831762732982099202740633151144365276237007320411712830060510045009071488848380040371064438394568950452060483796221957579127324432098362806308032817042524971313629375652959877206325847712911746689377222009043654282490268113705115609813107105866928688519858207867937957617215485102900611806122504583817597602822367234930769682283887636446331674228409975339745156402681345814456942460262153518246752097428650977749634984110072347648117655561480713952050717854427741841870443365128782606304146878772603931345283664766521434739195793198743899329939657225545421755950531930459315847691480231287878099695871386744485863413396612952308180919296776352722331884913203036565575572713440205599953859863760697612069855483891555725456848352910231731960877206144457330229976291436794294623674426008582023384171684153166652804914778337742051641853271966479415771215941328079556623064444618159447867301589869434135269325103039098552246872604880935730116463393912899869528711719240014790530231451607847173084777560545909600577298867374327771836472819843006445446872908333434463408231489214721159241198431287281190942039017870665950360261261793926784596568799635083093161558257434104918547026716168948329770818053314438871952018253380440003077018902423031428927933833350612092181152615709950551970949130690518644811246594604175057282641478033441091725515688193656321144761695578567348595284715950955960060641048467984276155054604155463668883769123430751778435051527675830510933418908912234422065138669074144214361698680855872134782710078096105453349191475185678427069514437741893047558268116903077031819992671288782406962893495840916378374784519985083620681352724140993512580438007883331686412951163835679901494238947305575192243529042315184862988281830705604936269887080566863037627167064234301835358663707339686453087434353230778026362609662680621936291594323780217691602536836584326655109811516527768227712523327702010103398078284027338256618985066309058060407293997173665460216023891853704552815643813342557264263415168254147379554752746867504839207952869457675067081687627189174470030609403665780272310340768368870505243609739696222362289978664349502159220477409865079810562263084875468413114744546143211866966985214662748502804721399822454096554439710940710290228730111958442162486273370891998835185077982377018055058902863775305686770410739343344964696105939122841966403262830583171284003912656887322312157575439291160042223210787659830474981916817438974724991329336631391213659426400383073398745210655216380261441038049282449327523796154760363185245237534937535870043083316207222302539830695381038486964194949366704613328203274127485619387996348816250253099593720175838305527151958790967729809828941657496914511392498278443207599871106388094588290317367276147441597964083250438802941532311080249498643782785355145881780453382496604560459863117135972982062195444559044183260777964937264782966032220996663861139709075940669921350998233025798047089392375461525350209741280251932705092188390476239201837119029171940539280143845077950955544776466123493724061688607468816683339079547875740612785415072347988513860950027701107816705451616576890192729601240231868054121108272278695452669951038820719347611207047944607886875309410130294547296869733645098953100259002565302149000494197174908801770868239480646677774014619354136188703090449301327836820972897938737974798324098798047020358882810159928656507410671617851511539750073746609144657275137242452138928137132854314390710446781566528871352596558219148835378868530969218373602735008240290039596264976126019665842349027581347058163747378170593010939282077173268907684346195204250115536231510875456702550817368577764878883723537595840233188473957834888725743594383314380687707494739383524656639669179390773366213792006983364520532913704227955514175449822371315718493187199214360244960749465668458029852700412441512968510392033186068065103109523614277728141602414921480762600176322588091058769393511178407822989369271175628622895513610397168741845199815637776847211751493890729727879050334967628787415414463363002201482383510644642821384470323150487320307874677002661823520173246009121585378756998727597344994681780738915250625760792377970259689751051588320083169090309338487706553903171172804296409050036301855838519281853679836421421016720862211902509387211283391732680525919863072667743692644764736893065329169935195001030530714612045050075460846552058438508003745501343847436409752006737267825550229852049874085035210831684436909266532556624556275096717849041735998328628896470455379172559967049724613938202389863443504985636506028770050527915862789077769097667753061488776893481361428306828494694309876344275686485382662898117996857003634806219911996288138302295817410383038326200340556280055746069008971014258514078302336392103115200111248962049888421260687147955927158440124334325520797758169795096228710682298372589996245772003773156713870349307313150086875837894675596489491435397314197916826509585988364130961737726335039778450597066408118653365505461414083600053748951392871820874454785997841637457461718293034319167071144670020123544619476101801669550183672673299457938947309426714750215249863649001128841485772947234327559359349420666143176647689371630442450334536701374746145581036037024610928702463164036772374879280106056714783985787309812001917921988452256825678121292841400605174560856607458764202154237076360117722684293266132564115791623234217972289886282293332139320447191858048558595318010262142431185104169344552203850141921311579437446962583188173785758601975358537766490388709140289849637274960928414017603700405871150637423116727532102426489421784313606154937917581104395836572803593751705471640217128430910075795263847424772358312757041217917850636758906314990267287442357639484576590887542374469494490870767877481049055499064467964216589877647314206124255384786940877077161833430629620310478622065576200950397744850115642788947602115450224885100274925084419488237646127152234599815843949797232910804015055782213594881476737326252205440526801979512816477881907805172731133029297544596047184850011346060935013352230529614202346654520762464325028039273305164451670376833665374761239144981612065397857944088606234462500252862684959504047765540509497437558303290686467009399106609724192462704707489289322778751424837524297592771607714605968956998532886041946309877444410738075407335142240760474556435487407206178937313259414464674948953324900316614289793860915046515125223601033804317389677485451366116051205565786263481008023623120594145896182413242673684717034099263614849481127671646371601874743706782030226915824262714267355366115679768241544297001524962084653068109989558902144700152869380480730696747130319841376265910217314173183748312177214168149988064163208608507364635322121671244276103673838200368772699914871822568088559141994921296980207456167721720575688452547489740540065424759584328846406003062133064736081547435503869234124457154166260073794950553881183649501148078874640265716762488872792838755024993688007601896410233902369714848334752840348611933089928502540769476365939460573931488105597925697624335868450150861295835588225394139215170935224150265086470315790564799510036027628498920302450241019668598571415579748411785878050632475453363870629490154124597881545421962875948016359406393718280953659202107485871724497022707017119951007396011737997404768278278981270257811700347117876689758544281768416996138308142512558132843337498461639467126399877274059196968784509868616873366872034406134267147126121969145766363897086775256964764586955942995143359244179075395620583587309254251791771794410425636596403179947602730162236035916218503665301260832867495092995302794918928895657265413835704144274917971877260074103254777989825972627893846470342509691163526714733281255151471301048540855044305433209415899748231246871394597217414470111063278687990005194212139220358861701530717110989895065398175367348774420554922844680350072459547158542723177983893424902498964186195238626129468896376098581628705479040547592017001864858731520416389014060809792829271574597165931955621814167677015840054448558406143865441952033934215136703926762866740328785777814641060345189300578080329857115231476972896528528328607730297595903401665334146381712924105295417037329886121600199873944791150954201264266095913276762643040997999963456804501155297831152927044485527212150928681881637464348992328504760955820486576366577770764454368688413158137852694732419807395624199611013793430309516621605870749582946520315365501635709441664416332957335532436035171095921233841156540514136318939693497284158523440496625527094839398322306581365140352771069031305614170147790607028780013263561783608058326773054678665290193980442024450852788404512522697835779934226326758037480999809370627637287581969137081625384403041016121638658538780732132471653863129534225881963389796070686802322035053583526564734693016123884713542028267992007301752774883860025732091118981433925676179505729137394363338968349795511190489105856132384959582344310273282034089962476096905284117613431487191986891888029472147774929387278129033017442758895218744439012214000321459226262462095664817666674128421363112916510414676034245292295626714887726504153290715230657524932838741778593995224191428321443645236250896081821631163408317883077711439520353082642269355959050119601463017796825162503201456572265793759767651717027624939774393446443057072337162413826002960141456302881371588701628962763562791105131408758027726749735774333803059128651547709939279394523895244939688476304657732136361809677165999476686061128619915758051309398942878232858299555464159492424741019472360420699251665470346033916893408118433482404501451520018104707629689842746040887214544367029813455412296200114153884526271616998264942428139776265273236273616845011378783619285297320439032684122259241355304966020657655966298293405219551926248511614952055332994821208067715480478583709589261646476263845214785323888991531060932455028440825942862410120791689671708671293329275687552583634242620066686598283239214246652984816168786338229415526053264672961774337229161151987899279245147589437315600672418498486853661212920596312922988098625282341368761876526523466640145828077434008374938332258979278179782281447309064679166683383761860656155392032884911045660824219028845145252337535682256408615800951096228162237156194804123835051827447404421337039404058925361689120003442797906980857614602250911452295428841243613553462538947774005544628674873835282092935996737002444001472955111641113020198510150786963209752328454309318097249039035975154199867983680641323649335768213877426920615412466240389178615366550165681309997428401931078410544402969447152666350845772104720742015883472745432128919683716052890681079046048386433895140407917137568084145695180762943732128009188814427109200018416077596321874034081660501532462354895566367918972481277241191590692339568335525440551327880188946591036936772045839267336485417806110146251295114569961899462501587531891548624643828008147900106451286754144206619957610935126247979149564810035828721281567900009362827088666471535675424642804703197005538598378919226938226382163436304409535029777495821935983306104262053969790184730938839446730381964330640830411371198141453248169005395463453714220964293710065341692337413275495200390775845802583735261738217813962209785856309219381141458280616978262964603731399394739900860571977380494739066879639076817693352928776067174268463633895406971360982597505943001061049638301658425338614744459634778819127951308611252352787698531493720107259393935964766870414539492305131273116409904897938072908930641187029197329173152209848771553880436422069083324994257982296200906913238865061236891836662570315858600802370064832894109530659585200956545772141069564935338772045923471089723937382426900360308754208012291904191006401486978535743215246865023678459686615985322753596050904668940079105041185519023992040563379826515304997738139641559538695531594025504319184970827654086371018962713594319943508345691753307208671407374463330173391699979230876621453184118356015091815469337467657147485835691529432642761858852070276692294326428718278308082888655073136754484730502154649035113108709534598353597033767535924158154350557923842047287671284209024616137318077804060259930886647960157587875950384804345653417288191267111169972105322757423297637709464419337063227935392268677273076345635045524440604157900319291940986598928021938926580901576563541825119609633191084760891947700655570954911723829979961355707763756059053117330477443060151091907411985841363165394229681125373417253709815602920941128787436871084255673671986425595956197401677498746228018284850054844858592919621411119887910354209398769455531658862077835740218657904219939277520897916514339714541511525233244864374962645831184853652675572608198409220050868449518878450776750476456547215168422769832149209429504322913249056883105069287251378651427227856274538442636725097593326961592137678018552205009614344196273462803739780970621684257759142084267874381027456831837556609675693944397996139981467323580215355042619890825489495151394415327063798628411377544717979441588290460397392557248110846365652439300730700033181159210535239630535813093488046198169623595524352034641746185317245704979084437087466978815025606249570680967794371014385467946470362287386869066228306457748656349853710398126520795800019828595882845073860102742098433150383537544963845395156175686846420707390749992247625241192650838899402068440239031081207070390850396426763379264894642073091686445705953721468448967750669386090595598030117414191985668514667505464052806385245312329255096922818795926769137007277482167743090920161861738094657968270692777156891754505393017503736274645248751248058008050814165297441665515590519454380857687352586316750800091472929120556741283563185067392322980705809683007988092568980147276785670418303539792122141795204799119381608672870152162966586507358875312966025285616505781227001594772377880694299887927138623295400661472177306356356493445857766393554291508565319375848541581755439156100534724159240878269562175179007055281022857466297976129441790149502902621832598203884757370720556190278713261468398543142123271786738398617311320986479968937810885258672332392237999483064991018836287897421882261646864942346192189546426985770109225163435654724888522115737347040218614605660395144242962079243979077982983391298182170695971355831601296649890529048095452737748323137699820102031188542273267016244972666173594746451346997123766635822490869814868348205338798074864794251635041964963832724274385659463969442606081948130660395523209676555633458950011748474305158018978965053697952220381980834830561232040451763650489327180286853443385460014337806112791563440456809774772218372683787246885338167298048939228176876370736136846301430343364156542119681292902757286391315891083666873117949060046016365492587473191564197659019191456409457662473340201939884627627227320606453568599305457150825399645508423142136116843203011251391764518512558974315368212377013357180498426988116427024373401725991971638256492288158914577906787650648873109256310734981857377235074550998936239002681537100471483398616689839390067868089009749457919863225357857790387785592057458347053193579690494416898226103232651373433386113281857928181533617960208251172262801493692011499996415579416083118914908493876978228960309291814828042650775065621317743216859404983876572319898962184407371960125345837473022308184188968473743386243731118046413899815388162613972897725862634965769140484103150674562225301605384248362993079563575475136622967021302722234507194102468535471017039849844466329391194124677734113348557443849288022983560578479901635504779007831731389156320606382713442075372707765422078490326701104055484538743197630356038682641845894771941802525024939432225573396622645534243297571983563647965742043800078865145426474442211735644502461459590336353625379264300645699968487676697106244238683701101078486361931084665454097936525688380070067021340352832417236712966637643868676157544057782593307430635972505418070307320604775135094878508841372159340619064486705305189445441502120800625205638053129281847149458040425730411538392040187699535441378988583389928363263657162898876114800300663555775754695389779651090128328869832741377455047031753233736599338698789166399505368549786460206699087664723846998795860113366383422416553239276869633145325588971189748877776298237441837954180901313225361237810184480096285465751590996052270838190339418330807323730650662245257686133268613278779575543895605995613173106869008412836909628384022838199730360104305603313918632640426540872364799759492818666326286533240053060102126104678104576202073652724901457065969826784767661344555774463812708512101448332175031246705284162158431610734448394948400720387310209363573162077863576984591666938568373657042834370974718618669095647625099950473644746334635627165711800942628366843485425283416339058701954209050188097521069929957812050971275863121552513678366664795918812486865734486218513568154736178533461057746583813495048332967992299078166576877512769935426078415223818158685232927131742448468543767222126078096968659015653104261432607592687590318332133006123976607853620402716276407050689888984771374877859549917569198176144839743441257654606557950769777706152773380485813381358297618584717269021913894842443212671550424820637353321749535467667919158270500307732360301465722423032980029214423818793606021892651411072558652165553062745178512417236906848637192792707025173067781700052564053231190688424600410848239933266598330662409807665356836433094893983008172670419683983420779812224153889206324877181703116600494817678890261988377332082131712014392734825034025562709670166113435596457529182866258205358159410247228994921379203471153561771143376450237309294954325798350659574427760184997760663334896187646775641810299921679299969868793546765024235012893218605650111405038895519240045921373109308095578032588694765228968409880613206147041839812013456242330575287172603929892558679767611169987566587315155324330916443190547227208190929030041056626618162957357563685657728857646420447644414049610468647747092728887421098077430376781832263899141409190788371092811625202425063531140906781731539356476484577242085170507091324741360392622033038750134503978378191919617453826911914791983158178688323839154146188770355285084463799129321656588365757700532451429943117644586335146454350259730191546758277910429119002087792855265818879220303121827788707150231054461651494720610465431053615622659964874625999368661009215306122718929393729488548270058460616124258528136682838411460547381780826619970601883121714542177841642627370208411945003553081465852834452813816547789401066261855771885256921421642630259041417586784114732766215097620039763010646003444659827853681633325988522843400400509727416135549007605453288196939895268960540763686976506671513878135421158563345695689459408049183424869812538459154518375340441652964089046498838617468505424573308052319515223539159558426688792890362693370517871725501879565794373970990015454990569347313254408551838024476859060944211717782404203227360022820272784420730005037234560377211747982660903743926213578875213765197094496897235143738555010534122031977996097259902339060097543868251764921399999042848171061275124786759943058673325979761060014076010342224273565295315587780524952256553320865218132751094611591422171470712732862919529755784184957220511704561053322892051087218407917623714147597985581489112589591188120604066430681151132833919101408210261761441686104505364062959557402453753575161658085724420202559743814680434170695862636158987351534930433689898232970557918382029408320010583277852148546813757354103761785582575072886343868055010838865975852133612150509752604621784566340157077682613649408815271911820984532615932745014100812062219647412613817661621391892636635288047875315633716627845673835695573041974147682001599121303096776502425779920743513404995251052602321239320198708046702683838680121006633261906717118807289708326141680240427625287617632911299534141393674157998239665064441408434904313083560352981854773826190668949556824232698515764728940850535364742980937138910445798077919255163155607518678916391709609385395764570364330412540549426061040628920081004295699280687112597663586328983997619856341143428807991912054942392100511172591647368884430639453805550363625699677999290825522702645929091661166225063198854501639481199712099064932747717573620189841256346236181234291557185659368162582225341223022385799882730416246344156593461494425505187706376642832327694856540371616826689749308400696789640729060433964841584091955393618961252454928208508924442165696522834569008131803731619152411120629584853827533479635338049788767123033134940276228120851133617732249334832530571164171008015169810193227163870221533117114584424826673411753418983607439202292557443690292639920623595382013094360486801294702332689650534304741562115999646658733865735702215454717630287669617739488923416316449835921648798321865965169365823671066074905410354104475428268846768619604707090196737215098812890055136769033754015861006977813371854490412459039384472104410315084471006720429379168825190404888111054319022051330961585051463625439712012939306552061034074847954682385113551000605496448217326105187642226163213365013602554960627710699671525414479409505602415600420466837174377635213934538880178076217081828775551483320007706181066966103308291439787522555594174471470293128564843755446543225491026761822329584054277562580454141521643067336219258581861553484234933068195513024772772232457708602471999937763391489961799301431396507494260802911792636039854107502672206705151296138303072310204142778705661004509193717055349449834326858238509298511439602561883778180673573319847897086812601971972022666745236233982490882998001926775047192216993979057046325769498291955935796771118591521102076663725071008272700894422731205245773796835754871586339039508765347346730229565851779131696688345418698679982573482434925948577836296289130337645454460358495105115036723544242762523061708469682490870998005032652920953139611731790765928583053059568943562333146911206504413275934029383308511433360375430123405501453487513047674998947655712746294139574465613060655637679912413227644203073278893044654151064504978070238985443804850178323193241575889773116622759043586120924450462924972349183369896745961531869585027659649727400075127522659035891486530896383011396294699319620322232130801799973591713106967555265664384512962857756077429187604222364735217115907488549516158610936860410135647112547235571702862127810042980757293426744170241347475111525281146080150092822357548781225418075958335156617247721828273258668095646380884506587489338368331492764912391984469745593614218234291104973054517498859036911025932064789548911628159072816652174502955607926409161422999570487224218651723395166170028459525995155788805447421470679565192598968596474459167460914749013213455128311845356981685083452116857784299330206976869647052462804787092845655014299741259046680730280782746128105813680411304772758980821466435878544165992356691447458274336379634073757049765225033323183876872484294439120013318844713415594152519544465279167575174012639414951273634462765737303869254545815666882745697032348339613795878511719069735186004987728035105767833450930249830121845983549345583190144624307612098112231925924963401620704369132015976373673157527141732601004703338984718935169721544173328207350626252309708810854821238331689215223184572338186008101517767814018294120475855164281319606168550386648364133627143628680726955886624239952640965234813305734683029908343413910321721261806389286698182612751685565772848473146201468310931733059183784146153880656703689365857465372465909442550049494212614688429662995658394343760168294100514054784033559206920325320753677629057049316240894914544696372479783344983804699826803823727449712280753421744277372312236694565670332709278663332618549781043862009283884217443121844518476178604944713249842099478521701996760944333611433920920037725665247180658964438303534931845266597837162804159706153316315261572872951394192255340761975568353615898907098331867934657446597171891057936021879660907230387169116816705858093696674552321102837197265556370355000631748692988391576234139029239705529546390015497053368394631146743748469818798751311635859646086948856664348814171100130703088540595708738031153120366266506171266900957044884481425011359076386142381028841077673332460450908551880141378996395484545680130554536848077605077889300615119792249213490778536942485501180205815458990587254229569076279418327341067148944997062280851800007281104367310289180010151092203147857969222355603482462734977213603165397977970952999578414348446600419727917578358942085880650286977553056838706800109883731018832781038717219229105745135371332573767477253001984075541349376456602777719353278862040488597700406589805528735217519451584621075961248464016737089875602353723593457939300967463943143719863892881164008416380178956055877293752468443490757359251012134930644312873335705483340831287939869591622909853448692402896015332628671052040911119342210694747832804785604373015118826459451586889110691795744376805059715353897160572209332985401807501284142903523213130570520865458042612346078427353150308338015961532940559748780429258433102146738883045889317593099006915155819696502629786426703031670117838046939342755789315621414233521630806913517115306292322101725435353869160883944385438069666199459526004747891734979108159215551896300172035917060291565759045537389866557550398871689881970962897661025816865471136151483314258917831620040527436112495506733886202675248482938562769214772595873392614049753709130484818655523496021546923471576663987521455290428186195569882616944544178710734223211361526356502789093349077101747839160361254020348889362097204211957458005312451606322386347940310492622832454061331548398164123880443994411411605155313160924718792068836984752851544338582474267464308921445641616653136403700388596887213692201276035772536300710772718842997391069767752358695969470064740278724444461943495149424166661657486853603618607522611693497574884087013809426016811232473000259170826870693109780217547828749649071249354031052202345928320749241994222925864120816963063022199557595740203596197834699956028002081224994441281863178410935793155315123569111318185913926175892581608399498176926085182024683759171262050887211850122607228782682956304490151770412492461755333718711864187031622108056231793406844263272822111728934253203633657155067684840457096990459223409624357263547013574928163318085753354134022328566231440041618932116306419526917620321373048299431079025515066060565935945999298729647552909772291489213700748051257997168015326865982427426998188961560512496908227727359320628839901107720586304653704587039324653368448973120264539891368457522529134040134246765099051282481500608270699707097726404185627401877314286953246937321446125286205447901956904604145254024793225656243807827093708712432321124376901532091302262559734544697810246588507859147275494537176291157497158430165847870894797659807603661109703212343219526274314056650640811540340069000742257068420376369042667061795872546643241696770778663768956644216691446765159051116313919213369578027352869638971776335794966912905350346838311227514041143615516956144896288480050964909189052586016754830849615146853535624414762215051528655099934765760597044744537929202245979399411729166706751353661044400922285064170349949470931897576708328920333577550685310114541094478063842419028753628366040668054838641109685726977080843173319603524549577262422849944443466110277929680986420701543314308912073839464072576593164229613000612957421702423650100142350507493416998410394919618940312928972287635360448749235196610543734585354275730796546055300564768510052416953186149165221515829506194066021417546865768301475110847472647651163092602128918817667114152832977587806682938284394828304954719973679718562911500664546934768488521746948606109068560089421665489726115040495188888855980486586240605027618910829748386859346155896707998359328402661304468349167698185831093707856588974444322061154181559614761275774751792002217461333732635162872960404947715554943631029684428187517915337549166795811290960559862025467752866967103391097847614383166480143986088770133003468414991090601909319704610493173143964098358274534790045514701816699364801728751985427751175594702730047737745060975636924930515302580602074158561116994468585097421745555564465932516032645967931701385373748453871550043554661010545323615493103596107809556749245317796902857426599931953367607168210471849009580485282555442987630299061335651715165544644546757272303665855579154235665199080802852039747841383950558943287656888683626178937812786165338273166582753206874386811221594607311370895280490938641162407971556791995882821036068174673843165581319244539763891007028883562836358100913770966461285567593042753168799438061007520677289628841349066013854406518508237018273828692150100179371798375599971088694141122656802102755796787981689979246539214217797419879735309402791897378237722913563344163960084935901842098177418022537924023487228437985242074957646982918577726789832518801233009133320453636250227072162411325191540983044254351895112414179960547401718559699242197446522437723023884998931942894128209236943071676656233776701225063017761117053112718783858214617648150451433627349377442768961484363746158329350579965678522323638145151455405666812175181637936273832391991723855510522697358813792433462220961519475170183013106586483737296046698014828407286218271036707388036073732542826859832403026729412607941105698466932038783539601858055508056778038120027956739836206291624889918737949042903030099706429676769981268533732243031092382102173862487811251339774435895504541870789050627279098727558958091310481801746881231915082344713459461067316722600219098527558995680137418144478746232726782447480629926084390383552496730710266169969345163161527912540421840489323966239177054666383405164912909923547467857130553939580049125170909795284621233080347178851629396486400051073660886366569562238491651794147342074988573917895668682434135870208238086988190690766582922966129319467499764703121493177368834606716304166912083063657203315036302402619606251292097221823776904236636331514977355403170450339662384874262703762554412027222686339650785802852372918050047254809215629607551797022595053666443472349580459226516029076333022399127252090267931781774038551184118600315350911885522441559494428783788779117683755704026145965329737099986822805595179641594755438243024585218004806417242015124609773003602663380773297821843881344947478726277470163222680798167844689454200313945485130167380890979635778019898913394650343777569629152945076756254540562157336640227348310895827952389681414862165356338188352837146843826475938003577606998551998034336464375867221973773751883808515798940516716488173366697730580526965476335891714628120300174667764299127735378703299871120090473351434793707377485439702159090945612241849467695912452932849767348545589629698854399542933213603437690758071278909410328798938121820128341413386131076560413047131116081631518996411590199111961994026244953864860616140314392731929695060385915225275011792342865576782712789361452217720046782259339468003641134520137905132844702554921183360341577330172140729644447264647152733406069066461070114271254587391694403161236887932609617181874437375556151470136239451581641834911315925945616270638606673069470323798080284322418175907384403567526520945804990445724099497179574821721245786865712830723560792701592140238681894322117215306671418586972135040216594674507839552361918885460703066278098537832790311120809389229632450142665965642637259745549209620715320023891332404783379920654282975106913044503214371580121314432110216950072203608612948978593702525675362970258889226298887378538600470440419774883290991795828351214522938693233379294464441631102491028118981958495043831610145775073722500579687803456456560369969098474334870985349300974765212065764380763783396284509202508651103439324828304379766905830220427680471793781997046165275178199565530904451408258033576442654426993593801364008501353256725490624866219076191707442362567793488349116113323334454014261315411374534849641124092943950450307753584662943262009265711472717567877307995645735664475848716442050231582769723490632277709352144005688932142605714198811219531303606676157589063270249849872199611737650770549998861861396763114014030144869001192740908169618037271416074286786002345381512700875768987673549629492230543672659762411587165503530767176958462297952140115274300933381873361550256842871634096747394074830455962065509557740953180064049911262479148439611345476013502341639197980389319150294284343333174030875322069175758271638139622731751881007237051937122048818114656633219223820857685920309938952023693806963705354662802085234352569045182819234332978842257794427672728447441927339057848185551673665897664771164472027163025562647946058091934794494355984894963635541235781423513120288478612967295695048905053942774961999996084702729185075569097531111048981601483234608038366121026457892511542361185680579305282115209299398483141533273350272712269822255745069762879145162133136303181850546411422416108537926797529822509896266561790197861688424256316988300852602656282894179590249272526353795814869119524372180628674577331078448984342900632423852943181497501501959918277289889067204598598140722794339465184832278904106874618285618915797394455056614613446026073793100822429189969556785972243446484518813658521164886589203204198394740562866133624334308946543930391856955314545833840155025112762589517538557707855508688649211046433964949777896415331361891280466321113694418895164740221765817906513959840613525588124510321204219513170693490912862406469095096171627561394467717300682097005681469301510421558000022971706297104538519790688438667565098144284544144170420651755734047217936842689084978363889162904260614372483783463869083130215526572376204853712993315086081708242727560693374414795699315246779059617177522893717641969133444294987004476068990534629383832379970531877524064210641484476017860922884051834995288157571204088218967550902638810784015772434200657032722887557547460850397304534103561777793225245920065271044851406429315768606737848215369940380572907800288823897407802720196169889322008804975971494978437399948600919509632022117377347091742586942734904613260149769479128361746391697151645445898721175161915151877962837535584681345459293529744342320531628930413812311834038073173300025427588139801305798449298966080774224510384479140972586773362336818383933589881651898118234462852541735187087501691982145162518000736968400969424734799901463193177512511513842522618498597093583160832966468868763714148108008051852765694775890357575249325912533138704329952125163857037731286019942964129964180693897062300525747567816955437216886506811018567452275675015216963862227009966646408332866992893874648663556875825918194291061343079422217600653332831928571105462856240990113815339911327368888896841673455557952370665702360995197377172179823927251791744542171297794662911834469589681990377269072867527801357943364336635923746699641625462000971209872607278921451446711914961609202663885332046050558680833344940464971939430565761539252041462527201551992048626490814842824594061277240716772124627316420890968396796720742607647947204325652900033559442633342151953723327931180704434529691734912293911441825925969230838821594551058143593755004051533432551925519750657919227181449371819519169002226767217490492557821950178717889282114728740343405944992603077590011590488207175681021611886470263359582049116937611475659647622892412816963929850538767658087766027716506432693088373274862627593622904159428187090092411696656203750154477395720190732524531243118651212618702531091957465434146377988835204524596125760965911381014432434823007201286601461430593573360668836854864918130331232379288946129249859357760005220362583674543091063536414171231802308679922309744353315546873829496601894699699844172753342766609982286333969334631687109486640282810446315922113375433296885088343280679063051905406633679143327894909485448928248194600801968477656817035185991090900950253672972887795694594629200585611905109717399302290115616479085016412212089779689910914070762070437038895288592662723200765037573279444297855074031774611585206833202678484021759866505189426077150180676820387995893192916671619501231110717322360969258558576733565206886040346155631553223544138776036322631414661115156066419576313759853103797315000172594651945039274904944491138991132726901703034571793556704536928308186409377088941822645543978595398036825330676344540662630691791450300643075009858617195875631903656175678284758778895822828543576100492294732927333879925576462355743046115512966773680392009611727685473083873448415656620008391906847952290124939434341897257356230395252756183463080310313837929959894273883807873894023564297116368563373067095300725756267064940087526311854398750568683421023810458000942609923569024546537689032027889063714538079275329743707075993691387380620743313092296121602490996029401713629362449179600906967310335861510000134047696361309427102059555541925776955369821376061045887737807097760445718844142470260746812284993546410818166603475473126286500167020094910584090811531185616593080687212445494274532984897936317370898345532986538731668166512653462759709449692819993609888202434843521796064867736634252005314257333537365643357747348487439915594755694684205106120680657674334285520253807362660997013604260448395424666781246978295048731366713200003102414862792728227392198439386131687095983773287114237687602182489548280941082154006284486476572733362074688113258971077658224216196417604195772837940716117222973698615147000100109810925612295695658446987986752381623590804180818421610289793657946054517154479324820386265903999077057636519758341673805104621156404825333272437430944154830685262600772732654507488271731999829321835678121650806790819845732505114090771065368284651464328576461327032219408508293049689497221359856502652170621557515417956794071215330942560394970383214908793885259232466241372992951648986811929965346961116520427303702032761385815844418072422777663090177552643155992131525488188559089611720408266532001245766671099989119785512929581568301050759296299005924749543362106305548903239718195374555974237615765701167065993545808697127305096045170936484519985530383079789631842920163960265144356046975974339686588984870123868256978167200507981171842486389040030682960100531588000879452378978045084399738718010389411292327654225391178844373429860810753423293790257174931924498372419684697956726390967194751329001491727144936108647103113140764261309451948942111034184559729700209154995573648593863241541195665690548239811245830112761816985713773936049757021695571688389808335300693285568963221281365609582370824674142074352128136776331647440705831605837227821301270469608049300414682494355267210883960222314697036176390763969087323665767083709106831865007637152043884460630634048636978794008395416608869085107749133483051564259823193319581564127063548335522132979925998522927561268767408161573869379637646712892681801731006163722538737813144051700122462415447331613839691837489350373928945662131747918919657076009584180294816930433722494802776927698490594965589975975603377595662836795955554586124347789738472983101649613695463422670931573669985217021561635247854588818189932843062071999763248881633986146763460372988987986874902851647492600994768145678342938246308891799222569505838869799068314477543613061480455085035018240175654863497830551760177946874875828854112712094237494796885754416940724574654337441549660143942163234752917599842833181952098277404356665896172562341847671995356459768860049302111396160133527020137809520849208299673538727470942603412909068443147764457170998081447323713437252974422102552706478845794899262711856320596326114153575061306510539680063022015541689437689368395117277753547100975788048809161472427523376456181519685194342256457304606355767092953394350663699972989513089956430498306338205523492225670559201338201297798044173797818652760460185181814476943121658348937119530612072821529767330920123115678420603436026725366545955946749131106940065487798908802877702292925599962929075979501005560895538855368984474505481366617661932540532562061194663035032061715099132572066782747129448676995510570481884171945581288743161936352594141220071828438774311116092343790771827032397217546934313947829437693873369435366063178910692915939717599753301030785780787204572427611160540609116058686782524363696331431812477136567731035573960057717783437455368519620597753852453177869822094576913364967000437099834198370624823201045318366399946738662063995992152691180981473604170706576664124522084213212192509222568879249182865002416884674811024648966083474825171630131525048030146656643402908374245656619159215696505615278952748977327993219275721066030727481531471980014689339642786728901021031107742271430205965236918989483739275673199171171385815691196166876490648499008301697848264728984717415393041085139228708586237315878477021527850795857579046984959987769284714028459054079151872690863177054892965708114600646321622070732341517207682454588658299563878088465565252446740611539480046945564341775655572347861894536356674518238669714857457660324922663034513560452068400818975925527742138581652026152048187699539415055958774568074117446066477701351972145660280199703554404430015298170074074597948382718594717201399668410395206034834515187608275264000182389323841087463521841212967284616076502336403017067605792261852310168580088305617155536086208338568420383164650680462629388586966015439510281265609126661624471500559459749041663159829083379111899931501533153748292386945406327364410613791138822268163984103349477088540647830365297490943781809314130899021665688080570915907616521033311981165344782462536045894952921511045404612419711680026853210923572736671438190518877404520965940102620708112620445362880480498276324372711380112791200860497576355474331051582447651817519462177309379873206545693075459870195500971209850179815284035246847298621337379252672803644068830261380595147911244964645939970942527896318011378706869639299113815195104719055403174930112123038313543557298479164100725729575356503334756908779434131920028893491745836435037708695130330161858588732467112256541451299075121628347117262547826516656769536066922824443571010828500613361673967353080696092111894574054857052564496649776770528022702474386054994287338360680487302807057851281537426747861343535095371218172676728399676500975902867947504663937271237012424046176979895048302751772593173276429103062139540017446011280717493751840559845070725362125806614623952196356926697181257360474265508082405277040199464671911856320361865570479301176396073741825138805768795396566296781123137270437145039900823905864932655113701637561520815516070300202985521846497557990245383845699428331324088647961568448095088010895768555068402496823704005144536432612526180306787479247411091738179693898967332655642692468479682846002833059006112425372472123075115974981038482616954372294756875563584394644750509818882298983098671238693546717340224146957421261657086096398216856386008740309336129536748958337044315389639064647017876162659813355426216620959610776040338856182115311264420827642128845609690407122111278475197981705268755938208990982912668004315382966462399066418373772275469012731747372115367837962341494120965154339625026966227340567765280546147133300506849248802446500843541195966546167239872624509580297177675373831215405314172265280417019115662115467891261347107222159244803889220644122456779882474099262107737236239779309154335534562134277198417116510429462510486892281264975216367505080514868418493778965640587798719902973052092299201397442935367418564596303828469192496305694184422570981288212063066439958127467799906239002230089900180625492390243640895853839417052558873464743096342499332587743179041048580971302868583651858218725586235701564350293483880089412391383555603757314246960844760395121468109452743589233746993639078602326217472975984966807695296989446059757038492968908406165547891456230378408639364600088094323252934206208804219364885958276578120957683908919072242015098079325959309319513118437476867234841336861748271543558046235537396571713756316699000559924939225967485385399389161457902666536344846876780843276046362863087937682239217345049931481141976588910713508550452491643411008987252211982681898147238307174373029182373446615196401792690317959674825021766905016848949431932227213779363782278128172878736223173343306114819803522836971840345019015601165490653658448159886335066668127376899052713870835833464313943824252387041341860774683617005107042392651897798218779229483892982773761775035349812187361548915650393636159678636787718309710575967716106620965226816362697020969124256638260227333255529096996796095759985496157316444824923139491547141787438132593497390412950843453951318513042648571624137733326959331689449623013241830467588064145207315040052542223593910686280080886355120486034148509072876161011156818794487315055239927529175490779412124608424605232752898977390101079661519530370990017740272303733491625094345542641822517224690471103622918088863695330191952777045074517514430031301380785654021205009270088979047817014809044461907818163226963956307534468012819674250936817738148252906494037976498739216676436660883979669063869370268017853317501085302339237416145519338536340346390820779857088953908011165876708490882853311316963237827674958359104238815703042100621712338396744049671581488951665243823399626097085328509702258419837042545670322204793565306294462009867104748634850018620343576715706130224635210911434242713679320357597440007462629568595497218521027513352815898748298882653137380923088997455569295837766912886649639820337095411059225134577451519677079712436809867750599293334515512957944760410574370613489049474026951774358053583263998539762056019022775199412977033984846820318649936503804246882106528069397937488296536277915632462692508173847026361404649687773934282432284262780452032651028389533901666685676118731191951820797097719545733171134570261736399724306087824789856496287066380213178427557991633287545440581243853468499108000062607207820254506966423726862049776337010747219466912496046473127473837944985503312113362540920360568613576790688608545618652541921424104695403387857067485714658291084485078028456565786753003979630188031021234425108427142740151018014875994162459782738649703718283630541057311410019797574914246294506552165830690527292671418113341761582421815649319417099291731956367675491723724213421714971934668479897550892956966283756905230382491623520312446112127241537771772733342521335359059749577876692460139043085472435794653930157395993756779738949258918445292920631481861956186592544451501207421084960936684507248755244630650795730742111356557911317466135473921249915887066349560238244149426320997177790332538259208687465756076393776089377414297921768223964331002609161525805578385264062971417928788677708348138897909729713537698628956199731477782457412817833668612266944683742063824021585944653573875252885205652364560829549706153426658113999717046130354644358335662502626629830646103039174821726338690292132111892488534886095081329483634467480472591708611317107272280198673687738515666722860513806895603838403289706596003509047305449493347459951563753768334570642668487303092171108731799522131571673729007135894977953449213998093017204381995332332852886280262960425403735839379826792475450773559931041053713730405146654693951779595308988409021961844405063922950348247395739774231429094418481665987771669313632080894579580588727575061605522081865067483199831296777557366636578461770001538428633125283389692517824706165477260335783886797488818843737978586407330063260230040822351223211960501437677645001505646258109431916873601613560258686482959543257437054878308918979875800534421684288283282883074285379995605332876730872367200430065105475274514084657371985560125530576220984080742795389992527814330230375090468637079579883756348011771552453678341967003993176952835601071040694864940393134099131638931683582231181608255211013528292935349792053621688824992905234332901546251113473680179620005774695305767059025015142994554231357447423103629397748547996833900389568336352355325094019979872969347751728677059014745265368499169189705470599454492483921531110481755555913617842010891974241063504598851999765689180095026615322650064345525174619433372345518520061444391950847469981257521889014133779399391894169917059495209964666700558091536860359570495445246431853269674725269122361873981788964233164331874332420824213792909051705675983444633969076649585127747197314396987733591082927318613725964498202430079258962545966297176684706236301975693789138530518519026710289566017420442126246027798008283320962401799994201481409617703210805094554138141467339402064243667261559833648492519581791873979565276259856090993971918827733282850824282916228383369983152256610992949555028327957523271678611057972394006620400559097277390998603557469165846979561530891823889908139682548179989177933206418537227151057836141241231734354726366135086702129019488000342764401283347339041970033901807129927102242269569948882675140618307578914584026299797098546889724029111257207240157471634112847644590878583938442843470105458094901830649120819115661327684038030030984366914202897594559915125307146328154383262352720556810659275095311239631570245530968350477162523735512154744264661011201102895879752876720316080201757076867492163516837157776410638887419198707614645799642537368983139303698235840105711768300496324527340359968504523641189773794795808520108788611120023490553349764516311665678972255694096598190110388538691739210556136282095030997071525973139072975724625846537730381594337662733532303566505188915560881491622337905853720897611371191011244994926472800063566767035067858497239177271953778477541748143668744811097614854370467992744578159584789392300867452216759847052775161871311670640940436134181984622281618736491233525369303268437669167394410707129832232116223029014219082462929261745398983064445220148367242391093013950188706662999300103017218590611405545609109135652802474951157527399198679742218905488884683565345910711445246534138307338530725065323252333167853346236886440465544049414333932422194915315869865694339554662899585866096649366993326855177851619781526197341681253927967844709310713971857067779777937040871325160277074553855589813537723284665362482118834012464719479939895509450551440477540476935391436176563111326849379144791522320129936167767259735010757185359818943028127996258123344644915303624971419542602160846425094273390797409744786731345249223493659734672242680656564788609887049275472618817025318746799575708430644919775173164625168147058735478466511149872935682855016799043119863118788896620668798182435358683589158215454513137287577984224910402432295457827389498455362279185670047072307908604292630162228725198615598246284512862460113271597306231480109137948690085552923479323039899723851641151070126332059565197451904195535978206466262477324915378660368194033346673905482216631217343553145545597940764246553541973522357461723710272159594325892119779130304121947640608402133359464132410112281301063199143085537980167429190509723411349210221047468030722868299854904244880732106812079572751809141506288916899490451578345267455892744590593849988068539610047237472454560943589310854739453578626635577422479885394177037712810512560144252992669194198694786967498055611426714484684391064411812387148637205229276516137068140991573172906527692881000472021860696120139769275461467084265718356421311759037861034543274429915969192876009525167121887010122460537752376826373629049096592430909908359728455655634881998844536725438935960734923706108152677699284012702637301685444829604491962551973098979398887223656528274213812619623760877850093812608339695070167829334643017566859268576151885073652507517747812134126872607006983107033645563524124876162817432809389072601055872959847082737795775875416716046850097381859043369660752572037460077671694056575182151585938433999773575084170961715490240461143493943949397251746507296822036539636459129689434530992573369518019443747380078238497303304518958962193666970847454554376649551478031482980822292443244203070826740401214554673041355595166605055299994509966869755227088519777208343547328261688444088281393348647059948432669832649357806913118506230480067566650769807038621305293099437660850389239442454823882021947714521978897785236760394128145319954739260524722631225725426308929182142809338035155969133391490489325770078507161242473343845349020035817502775913305769642042488873359859759686554511902206331019113435396108348607816055822270865164617338474219690600251292964568578657860990990640786185889765405287555033867106022504085610854250801194608594343694584552490978899696359288985219954774510991702224051120079293431908462099903476437840218804046884652655506045015203160021773202651540854390161901838836733179521426297836871126011406521169493516396350012336166484287925401867398364455092937107629022772633004198197096826651816615157559221071110958406090127980745740197208972044196402013751654525458456406256254337266837204095053651754914717752812716631267044464967461627412537223699986880202409818010342846740714901825747966465729383375917539673339479306132636776411747790242042162497756346331690785645107393378988911110669035438304928409666312152608798974442236083759945350324312862025648451113484959755839786943331012343003184321445735814442209983596760030030473471598192654688840701931862305410322907626855994495177373941985586870873983765830196569082734393436997627762525283630207395006789654116610037033491542895579775732027415902038201640271245712287057565080242987993238649147286538068415458913574871482498507149084468152271172549215549260845594076538560900363766113373334091206080862126349471166414909710695029503555611249348500521368800922045982050321009322817870537520717412855510729877861848311150088204277917711437635225271090917999532463309364712686844933696050458450877886255507742679688062357164119047209177216637022874991819661190863334290850644126961477401675194895800930626779021773228333235196834562925028602363287366808496002834823947148032296104946694002497374256571541411223021457818358478741416637015695725240630309598753033573722447601244616208238505251219654929864886336600909897843650144445165996848775762195794372725971390657681584635469623561819505006141988159281289098119072656255126147672683845943657560864964208883169462654987129770677992637104109648500602133301493850890559653371647140041496798861058569937347333960777922755785978162653637730393852511353829510231427735647920470829861953176883465071402969217754743883506589648434841207559201748932863821735711718634044390371969060048508051037698255232266228263124822245681842909029824004119567335338758818247819641270888129705204189751658528849650486979552959695351721393261599288463053374490741222494762452535333301349874412107335739279678100914169011437570320283901840444628347683739875025982271382485017697232173804925412802516973746807484571412633560898468932998699660362583404273461099567662815860763269916898221463685579709453823645990514683128811194065809628670787818937738160981840144983600484680327352447048556595984897315406535710594177217800165286535077820984139974371212479156422943884753756232976678572772644485882068398796953800226713428393476710084977364342269487172133156723264623206044553194365417438031199223103610890127750150676538495698652245896165361667629913398317694089145944025176259921504543707607314276078459581920001266046671929722964223471668639753517632792910501797516912995383075523049248747322960847712671625213003549369148383499848236554891965240545733977678847158469008364287727428433613045618254992128712496625330958761101225031969243504276719088105426962383510271279959141392981222881036547028482056643938175162855578233136718339833332061945833936717971839059535087577159789325887784124038156362324852115379378609105624261397636388823510293708211908051342252047054164555269925209920318274660864924839234272534392467737536267640681610295725223378246315375093192185893224972396632007819256720929032662500049936390587570548110108027550403910761861156580867219605008201999451674733532275344149966514959832519248146499232218537697256290670371296454122088765776656861604965454327305964402433526053052141570998560206493671118041460787574787347863182018431487898812960937278749527585647833605187080056069406782471087936565998167890758396417221372758614751365132696739310053705986218271506887795296810184755698510813937178850852543838198795306664158683087229765636322070555269250943131996582003945201582469184577247719671280957272475866598396783938289704387591706310558857996737417795252229567597915218670044971865767099598309624623321617383743327418380768009855711356505238198289331477417269244813321275004325829795667880066078287767462468421007050344221031694330697627800735599397447766296046342541802067507018703836215596605096394539576084708523286831829725585669455416331920197532849211453334336994490237743331646202758913467074324554824210418545808309236249033069611584114516263158101671528245424731956694745376556755738049922318628690327228809336710176220302129079353524323069004910650014220683036748490377999497919053345323322570485092563999272365240182326440758085969136698697865991857899846824768724843992858972506659441185528263405052495083709619591474349791317889626005274314493392742345335900628577475816762790970822395036984835285293300482169007007193038090001113398528766898762040671101691660166437616165718128877051256743974091753471954002739134985311012668946401169291401144846955756386661234124788540792483973027777219570331454266631169091632076025141391499712522244424746105734725968037764274624761708498766096484659682512094190560979531369293159344762569923943468189231930562687036089928697919890868691088242591079493006113962710719228359990861729439303069270233160284848305870887814051697410890528748011168982816755024296076422044723143833725256478704164018637913048234902220578343578718817989300713820034835770923319752980379203915907094479633558113845920132278669652471813465068949618952025465303718452320565445024022127685876480200008962750593769856920139161126810408891934599008413952091227478905438438260326485448778467653056297328759240816580818627686131411708757120869456885881909548286161950402953971626323273398844644558473385028801652946837925371460154175418583266595451535517516164154556138732988210481847977073701526350291895289443669922005453722542392952701965977226531720771223469882494466698978102163655070977586630132103904448625075283992253413109054026255748472465130527655499102306629512165783168900315012130788080714847058022783569588802421514362826673355407889374068305286154700717636735297872048806789633243009706636031447687249500784253731732158476617856076361588505505396065476555026441072184500906005627627021700532453592184340630021081523070801605463964053327627193349255873581279475916522649331655462841873272214161582724077629274484845121975937992261872373439118916627478029887390459961584357476500387843094592861710821816539469188554210896483506731885919438577717347872592805225339416429347196994973705293936585766862176554051919950535055837991570560195637433984843509333368997223929788624723383458596116190945918436843507245726163323179987978239672910211530290311321751761985755494093051817598219912151698349710317738630678382752737985472073873542097259099161483591431524788844192468580660082981613918214097218554860081662579415893771790726969185436653436472023185164455141769576487099518903613147327768150645448987934979661700672328415735137390474078624420300746867045246938265628378709710536150304238371711647551417592976867989224712297177137132374184283288692053618666077588558565861960436786459669605537166730722240236448832696909874699693020682479895560651046371362582485655301459287036532869579566410631348044596607556841072923357341015333940827849005790131546992163280764250904769593283203140752513952460490065246665436895446800207694376805707024130955559727943881196099304934267090188337469000791753581384136148420800147308671879432944883992029809631633910878566473215701193026983551615232322153624119446746351031478788351796136912602300762010278534137846229886477930926318166810803514209202940275503666115841212958892848947812133481974337322417256926328283264467407984915484532856380134334268361527212392874751535346948070129475234825500450894644290304557868603102452644354820919986194213735918982051082873515231599283674426150870643656548780138683941772432634949653949365489283097490009175382335048560973978161908941079186214978754190121461612851399501895053546159653045583482226486680294707161163922043568158100599342036285810345230106264379703630335920361351630356933805287118291532076869948098480065310044000777267536351262222714100135188368188984016087586901486082472110059047809888405396876574755680050911815096814587151051854206661473253045031359408647058907950015368431406966501237807537143799063582866796252713482723971858009222043049063402979680752105765058634746706386443056000569550307490129775537917107748206017684997642887550386462847428953745728852970338415855838839381017294298701634945021985641508240968981410458400898117442157755681507819200731932638039780469994858902141794256088678245295148098321782781008500807517979641956182775853586241329532714798876353685685073011419759481457019462392906035784301279888209854990712867835161130336781266153666200883437378767613634838698589517169045074393083201128934073290981072563205942253707067879660711828917736850818336311186642449687135360765057670271945312958662724583981464177406945786013634962562080077586971767709566069471313710975967222989116761713738236894087306868463921696633729708958245124205765707856000888515993868367316020090815887301645339280518223593941678094902149098771338879735635370070596366809906078892266824830612434669098288336456794926177830290932154628771172933378104363047975043277785426239240134811988782444699050725032234695770475575087770825677390722267551161247463806371501615019870896994805346778920894121760208307609268091547829404629110154809755458902422321236218863433732161097942904559673499267363420397161900871053459227075564687290974530012903272946753987968182783278551734197780824880931366328258694720444244936140736796829680207222615167683582165274698142428985721332645956362810986192346669839155521689224504670409832223898329579045033819655712377671864451331670873668453819023669038415502708362538039747726600247151079316253275559164710220312634075385854996262575309665662531448331770830200283360255764850584401273704454589974786087418346543230708796948557200176351875305640947820682709636803011204000154783646591672265682055242240445579341138940290538975903536258724197830582702144269123146332370127715424798300937925424996826968645986206191188025424498711416124939513260287526240482856120786792104608928098481245703025344277385149246932443556938164546230308438058960047764137343712651991123236773167983453255519174466754394245986855208028388248190658849374038517707541612837059967783922326343574295324323851704792435948414536349253177289732989470950827637061739418951985561728720315466904358795752078643983092043599121249328444467769723888294231421572187976685397097503011507709079259525351708841560658778404057320816755629200819616168009171016581850380852676815957587579967694138548717163025666358402855894947867779690326674245074303400715717376253140174397180291624637058345647465782586697347997052334602022443456137730069509794631953603203583817751885584289504006576291957751443716466660612035086163010952551597904298824322947267807863943943860854447172288072656272644109875977354335629283148454684850282951617853685610663658283419114696563094114568689698528656916693514181573588209459838298723277863552872807060656776223014709301910249583966715931704941614465633904162283126154344195186665729254403838382298703670357408908720178165554077910054260045652763801413267644997522009683038893139336358373384103903943388694132170713079049648679067286574782676558368433507038039372098698407634737878157695284966759369938996109608761579408195519092050137684326047379962976133014504093615162677971246127178155191026178985251417045250752096057587118421269884863883994651700505452182396248862732677169449598324959244115627199639450491634967383270029607746127887212967470175330652607764054564617227775995374506917688199353149795700455081289967077592642255836070194171839442386984440317850204562747839774298585639465733435129519534628182600923933423731890447082032884260014327767427520126080960945184786146588912895953134154471271285823970956033372463644620015436394750453976138186818552721958550371257301207630856907692085109072785378562787185066648047730652922011046437790427930631766530870672335138046758186323055181794941951648103316887117847371993305250871847762786258823722370683622127832469594603288942913057946276055536435758245122123951555956061239322699247659994657872836738454870255193627591211040573982168862697642107969249225555726766026282775041183222150596851731742355266526910972980978536495766404020461760451062720685625722833092692609861705102198674521520045972208917429877108198767246509733338096691687050117521761832899365036166664928224963037961187750593743934878203967622961380000147890860930255739685378342748122929190554119792342472970049617824928924172606181975835284896821146160131723811585561696232090102143059107690684344791639918914624971399061215985311007652544987803395800461550327703392891576047269370683436652194382033205211379907782639428704874903143635355244289035448562486201357815761788110456622186687342810274044754038573016037303475668948865932804312414291449066313821551872485237338365037198350445508562555534542453428051917722782822041046255489955348405065128124415425232083621488709850587818089556667214780261017236495234942727200977974414907901433416221093229038759436775727165305868388214765816337240245224114953284578506738759207330846568165358643145343416019251466059466956327666638786438559364300774999671078558559598272804805517637094353736006722565436469126902890299028803204528103350830676830299203889082143172215577423470464340897215243097660780778317621415193956053985749941669753636762512178395412740952689807002804644748158641388937330190458173436639736238944718193680505005278975902306805681172983257033970457241096338004105407658046375395703485680710912817989036249470655732985842991681766010519382453804101714667253785258523364766066091038065579137295281921647666401966674734148556801388075830088302797870406995353384733310404690605470378345649624229944586037673494612314845551938659678429244829149096984673392648718555969347991534164843827904169804024246507915745306716607816660199556881582013791741808139460225596610276768125130156334903165150546224972523554851523294811057589626199035061660203784350139582393038320733397657196116988007420295447642137841334050355280146878902202431666840993617698459735194113590391148497519507133583863410332495775452877525187082111799576850263102567659964878122703470478727956631089676046858751840710861958624415824484700022446931684634506676028104831726146057016694937962573270564604549126150822268578572493036069394239430728272774161739351860289232221631951657922387873406663578514385199470131207772497827455417875855881929790479496306577840345786196324640107083362102906363983715068352683069449329896485844459827923206665896060804035620619931191288595362602193543582191703355779663218440491295639975795896600425230914454412994141758657049265402905913595617012298341967908443912235867471387773123040337402461752200043444049850809469117342408278248682261015570392458103877073832104759893928067545688936289285750743165172697780085895177518834702863707880605441394575070623250188441965858248873793207910388754401268026763288032923139613133799718167478002294678469700840369750930672872455201115455382500392206689909599027795059294620294450984183433313432585738188909630433913058240214101908090722558979015383312617851818039705271325697186514764006506521418754924085805513072119343120406996252696614023664624611936200925924005457078209175478308525901943460605611402236019860534082312269168998928953132398925236295393419450788977682182692336238391623350144878534034447836049960755098699244942607148881479990436714118468986137920566141210592033427302917644593967607444775578469032669248106736711472704032994232273828542623277151272718965201401093044072241450351656371557962100102820358924240363678397426163959126820842410529752305326944074684340399370598327831297253094046339912840566991272874613202887626956969716384894302423481379929665136127577552164133858255001763727785000274796769806409225716663893415149925829193573697753365062431988359571296641665881511697881064588897930163124885441938464003782191469682478755170106993392099675063855619684305461708230892331600080850539087885628433491635540123722884186013749597818956095745141467390421459005735734956807141129358597919893743854770557215759849786708805472187986815725682404564792720594159155627595037728481961322620791880847644424186161238818158940576522117578729982071027937698164573261821721765381983340806002571968928974869705785056654783941711620621050047919310340208719450562616456017381416511026208656103240035798546972061282094806733627356348031648898784519859845349766362170529281391735125091849785360517105025735642801790495082081249502810585780895173315074937863044136076397017503418805617791518245676863599673509434555593801077210036956203937242004487509879370137741991270366772430540058474958787047607967110723203937227152161928646399722235355101690527819199370959930648093878273731467170939179966762652108322918636478467631492182686969474282714661606568317975776437780648238859701908544838452702718817964167934076228211976833907422780169476509357705555119797812546327827634816624247578794492119979014998813763936683244158522931257165208736980502602410879771822640822861901627551201879113495731880041909029729179520174468214690856397919451917508325721935533219904541466099316115494876209212582347391352151927628360282361286524702476756548388141491957209662350797516983627661369315986472901680510893640943863817631891559155347054404603661803453086441325059805602140445362014980246966047902844161326093593051981236013595212240942943818597721851916413674385485869772331213634567295665237604893151289129815178879477588237847131030685547830854957853594592445970495785368175781402383507274701632847057862930357662584089216377243508020627136550121020867564426557767191233586919155191663680948947922496669342443588159681636855079249608426309440669932350333029603752707270687199675539323993697778897399128185415523465430265543923703478984795650879667950681967512104988961871185926234534739822286312991350399828186723274213390284224069538177503536592744271493572059163645520595403406144485609498274109476269975689779458134696565311961022622333036542516689410867355715390132646703467919761305060368443831589326309011096159020126868131075562950977238691892708431967897967012363421224522118382565696266523723538300471481729461853848717058762431876357886943829536760561919410287981825022705769610227859933158278909481860440926833249866201358906318751714050562783073028666198164516252882163860456460895991664426598804875972974769857798351040866202155905351733812584813250385758271249945304669913375367607016353480212611839445187127634377055646658713471840943697507201530684025173127325359644366515447010712378754262369384806844301795692812735499989389033610027323135834653555038169015786284283524872486145654772406155597409626943477844922564191028948027459843978758090478343391701889734205874490819710567150646438833944204440427544656860091564323297010568175483608214583383787730667568732717096558738867427185545840621431037530383697373643435385223262573633090282386188890752841031297284231228485236224312538099442686505426577797206164000486393865664062240865900546688800656034010206811028623839910747323036647778773568348726150788776203047084126300294634739114247531948607326771118110218165093331595943064652999346407052693829215606167810371165662680328388840016285731542833614922466927292266809205890709169788987379496180449141974400877539268710831578216013887973819951244031257601942844786581304473948409556081654784676091696877473898331051003008784732342355415498902548629261250692991289127879448267855630760364694938306210860226058724532508450809406753717452508702382675168900476219882010617797170039554262912080140624637332515842133454022790008547384517549652247311476770948455289931380427984837940149866004128717787891520584927277184462476583204550935051174015364230356390343521542664758880562021599963337359501894746930826765608433612853188130735631081126602824604817990551186382893216918692225307583240782076638397628679589822460784683174802064069953980639621267137146831569863168191093763219489519660945806039647353867120387310075929069394932271995107212296249847463134753448021644574535494748648380938493496555597226683899396377787673589870785367592773706049165263106709844001823483457065318486740380271612388694881538950142463837892450414692079336200538091735899446872002724472641225558611401996820353879166112140010241535882766798045891978500801283393196445001118005476366075912572029726735343833531973981184819407324867193389256087706205231586335276926953420516326373188994399284552723799314709942914810871071851419502146498607433313205006435753859148611290385393785299982434598418015721333029531753311283954457109733498145517182456251961483322467571690328049479811567440512422074709353282133071166650692065807422602624208886929878434987689647351137630325104813929196234446880721062517977616823463858163410596541763510224205945533961521035055507677895936028201593314633685301441380943060498855989767115231236662741324027931301233458144365622204461861767450847565749581380230809859838377521909570931725268973510814298900184274381523759337770043034026282589410090232277714053822804131557679588688940259561440922407094588228507034025453137036752477089774947601481464249104209409051261566915236601458202448310614137691658697571484477481019565326444996266465504738561367828403693797341762828084350223435821360507037661643394210687158219633019738649336188447936286582401957383862956179752840043159512298595150428957613545906532938372340738087952354917149257654729847476807716707092160305106105754962583283115303783122004047287604415261570156530565458323794319709552315856498667550148111614164166766891099950138128911689508918220508620188109646297632042260456444695812016597098188860782475604583828750334760875451432422277219042912452811264497274787346572074738419867596092623394534437953674933405589539917196345162147202541341097021502560117875333688836556183106695137155711455827818525526141740165242533714659279285223802431170803617212956830969433111190883634346969795038279113161274936107430739933319532814671527977477788631269715088043783101058115819859909147875701909284311889609733698404908897085714928935706047686293733398232599827373667608739301616602088171435247957228182522197384613570751297730752735212482601766827613398188493371411142316561382746509450188274315048628580284282055218581918604188530215283389149987959450169023208736111579981052223664722443542327374876755062527613667937766958826384083799465256699770432939329304902660064063037554181852359686486534263965876336017857968851520179426543336977387953923088924804046729513430880312003106791603668210604427702947652304324004160864694970065483492618805591482169237064461312750886250415823892728096567327836592707762054735242012886371175595186087597723487116898777662274481918948458816510079130499734553917838968103784002983118488293921003834258619797070329038532272215751447167564640419229000152916314445940764587041074919314466373931759743539001309595907684282159995573706505268631292436693941567365734199067287496097304092659571803438627337853476324395368408354610630933010883299453390506030583952904171393361815831418513463064184565615831433602194257555225466975075729484127929530693420133268554989085144288898451395402375869150278549079549377265628136261443287448818138179264929054871728578691908205003339459929210374539155630083160834335127549396826255631969585869655448420708901763239777454555334119498081846832552758301092565666560238693535307829100272181667725591964861460092740027222534667618523100763609868512123130656822145233309067008025442069621570869202575577134384439363259894453104089907182203767391758548183322099894133455897579848189053321705724728841685518923729809322227685690144410329529053955718708412704243449613891440546859201322687084114389464997715093122305732806196623091315652608501946078950398605232437987356043387762649258078603169276837796253693226614543002044553083219483920191557225382336927883051799431687894152867740276388386826962249284688046897249230084763751165561457816874036126349016707695480399586158791087780354290285629964306661705676684716750325674675287500086948494604111495789321120674462354169478707440294159927056271385214354700122521427936185597454054251950734593116214769489203629331781818611414515802626168229214056313644706873188260956761516473408728488870286367080200900993504604257030970926633813325914219454952845641006777105222717454233706758024660961590952520649662690767435226272246085749167622687345837171092540270792309069198190356643028831208952591658636130431006999804289702587802438885437833493643057893754146028566783710808351529404221519454794868050312910267850549449192733401922171502120441844074227226830879445948450711258890795151709382304921266899473163352469742135978311586843318088804157461519052995264176043981695220180591812961681445111513639311333607311260028976364748871849424854535415351500323041700668057658458966754278800987942148124072988714642167727159084131366373770727747926102120114410985943535085737503282685132851149473984408555164440787142481037824546749887738508706112989959019627672347892925653255748415047250314043364226767349171943711821989147616043476317684992168302163499023391331431014626765453610632997622565291724607983088018925515303940480685841116551995823652001767555743339417425576728520475357358272332485908335212645130759905696849278888728402473992046837905565999077458891244640904837839522610505250439905883131917696927700585826475193904073093787539332843965644840283216460908890149511171459963855362208750547067744449701911522464740859563934636777671829832082624272316775791202385786448433960234955715708183967261663754069491061271381503325991554871573323164918727339245682262764086736523007884536196786432204520244777300055172002314860943923792393023612995669003300897036149468689248604163696303408194914080088485459716499327386019114766990674354487035336622915569858503329600414633092547657799811659678985239611656342248565795887551506122218288084339656858259091367054037052640101079108596226989462306292773626338248579912002779416831576775988134945333836961284671601724750077912333130100786540335712748597715787586315067643120819481576026361467534372016147088653089274864392011692290078103649264630844053089884350755557880200253306258800871779285682078512751951631935867955789688294631385978479706917719691279679644595599013212158113143145179476156955820027290420342185448210056956997266443972695822843547100289894078662890455340663007275188999356153200135493291551909311143058061744828884278866296803444328325682996037197351286991657555870156199947326987038652116254334836698721077921154991735967414029453068384395797908286898671728709453429525179315909521166238448520267526388463080182163380159220104464626221632132360777103839143826438138351777264541301751479374255006918755249405905793982987631742316887172652702899805902398640791987994430940866416045072556496760671157488484279030991842649272763447094619335044270344091880405086457902239744636116213798123437513736098034425638472748998525145487302554744729065400182249422954106299484120767063179333293489224243829705441437185368473873768239779979589585337722887579105836720017063286514995247328944889149712478707548699447829218992141731739624391355830122876325662379537251717193235415668277010686267247372681145258665789872969462970818497060483495582631359009224527991088882796960099406311008344228701348520826632841926160551851882241931683586574496039295771652883277195097465187082511587932831703505971672837545296960195242879343273660139135241631261023807839126052247068427637197635626262054468134230830619625070018873852192854929108370732810870619755898615970734948714250446609641691373183512015062791803161334671771281141836856375771814759401164115164065211419508701369342994170905189827895834473920128350268399288780066708070155021208506784740472927357731635765045994741715243182454950294163780667000105760862883572228294959179782851205491517656194927977465696454316123269462822590520003129997235357443214498883912155692376711534244580217043812564816180386084123435741742797058061508889177807178577070872302794268072453712714565240263331808773578594067417680000240805421773475888319558322600628972506783668570297147598830147155074151173779082106578476413875248903742914370537076727010273281300864982715175776425146052037632694287866608754634117756987208903344971956633182202186008701485643983756331021917470961218018891810467926155445579024331083296907377109475059042563935205968664129876513448649602891534443186272469074533717262149052969877903522727874867167164699651602423622816981941176106307269164256598489793777917960842459950353509806890887158431276281027447802901289494229605025324406988462229082744640060494226681044355901864868149127368873019484947332241614108533167837420393102007989118182543995528641373210590638071415465778768302848995110304407218314729413107093512081531498009104758531042667876961046773533377644459911144253347572508998059747817678832328345585684121446569957436263147191846233043505492311311578453281579150933718258736013836507029542373666267866822177344275911387017549369961843992378135458789486660146878206843440357125574222445305849167160282950895130382724119290577966729777219184436775606829782746985238410966418996991711314599717296288965489259959574783218024167817887471945879511970447893063930116474429941190782863026892574441041341921434490542708701184370387127689889834939964768972428854117053801412495629560172249930802260613363249160202000474601196662162831485597596513338720937570338243890307583598403994850182440605827730870682554723147324690456483887035565278185088431384933019094009214326090432147288706518341585747650686252618259380705251944910162580228447819226340806173192320721881164528625784356909250394707611683457274833160071622902263968317316814040653190198222331954778485072860017657939218703806984045292276643772889463419329809896416592903683420282964349365182703645786493252645583325843868571717461278538820025343137520741844964494333960867951563229957279854405139241951390532118958953599818790241980735699222187046351217603686010065601814598725637098564952211554249919771446846683234288253889707490253209362583884365151001446259557602141137987231592221480627080331110533985238309899836721321087075456783115640285439711282863359943157642014759261137677837004729425268118607867322108417462177222549302366691526556917750015124045767069909951089261840726574262245592938501575191949930360279423753440839495599089932909651837533295301124455764911400643670148216433152784068052471117438139825291242198880497097532238375994264977050630901527524868539350223869030127674737187517381106353075162901349046396011237194878480175614462338083450525966119269288467095108303188258717636278868523413563858755866084950996622877916694832973961382216331907737399455654570220371502392262149738426450583355216883782704025049373478211250247787464802215624037209180829609447639461547659773679123012960680633670075353585581887253948271887643159695791259655680278831688779403036113110226512914973804778375265567162585310097794015834206486942133100547722303438574054600811393896290408806965676612693607116725501335154027919703873599810776690451043603990391579692072046016815887081147693028836783174182406167923861247141572231660632496667598228603606690374832281456575242651647548039086036438870087849829302372394005099590853910863726437184683388836271170365114565601164125215720773446184274345461173418235649513631453274139419270485143925804284878988308622588077427690697731538184944196082144700237065850953406930307145695069005909677109375687628128359060123696019111496302605333897394396868997066684038823053615022285319424087174118108642508266664845535100844426673672307130418734891432842166140110192654921766738955560998562249355362604983951840591145344833299144551925228583987408034770662401336108136676133640966954101168827978768135493820510919392600841528167308467904238894420996121893648951414732398586414740638490805859625834787036475820942330002983220285153912712006641188116100788345122781309092932310209206241285710161760112828509734497431739087424278538453299982954637088494674561664909022527757825829645254160268768578016805847256223292091516426116068278581248031281339324796350104654842538245001564102657358182890378278184694572575096869744439012787433694283617245362726932974531330945650348484566832676035201772527194685102028405027122316991784754290735069529142065508845350842576477669990702649085931295194816172726514311152566582561081022261701664350690077209865153774615909661092534443118980799711679123532602494939644341959841361213309905790531428216337818432109612566401489938390342417512693609319212912646648722920640606230830524575621672813596208778992581347199373235764435415400167284911133792684058433139683946883091815511140480639083256358283746812098366022071581093742313790508569836517656218908490723803511855094454770000220704240129163343066860686402597093764930367737124440329678014256841350121062759570394836228043901416244187264973079507046632110978742065359236629878610189454636865583511679267160068363620857837590747456217609792408115320502284274002621299560838962721939644365587315016384103246621349783925220929829346162303828678057323710878145166160377877238937571295138529259540723196177990306639343993753482026911498804236724176797803882324001775663341499382194905946809617002327352465337178467050584825639520438139727414119855298251989454304446949503677502554234021593990534180228430290162567228089141069339643841256546315414666127240006540309711016501725659808221219989479594538020154254677779401973649267854303980180029412364898824618900107244308255632985907487515065999403918155038150377640266826442554064521728157048991146656752617344762328781927133885049950443551342711363131355931340964192679849780445192651859885974333290157419998693763376689777928633927730887665013746590666139964740911972588844135925010266212167402821515563980730498088010113876858285064812179999873256428186081254756128462343128890669180763604955246715196580455936171876965235693231313570090223884220026537823573341600994066701142786140638450066997461102928651462276614374419150455525247798780538338092447473023073756034237357796942271278057571887327635315338791475619639580359178663508394696605535488001455345755962625541089708819605027377958982817618190265296961379092084178777361969989695734332468118244327795731731871765158726031719702522592256729484221743033318862425158093716447940132013083664738116778759557773531789610152094721949232672084986412810809823338501029380809169257111411301757321593281310191994569381264709837927489453464600388280055127955565037869288266626182024993545242351413441206181708720681080098658176804130532850226165950621748448395104887430706138942234379898264132736489067941836304723911654381925384142242847354962617133672932329976448788728193087798278251528076130166331158601026861212902974946982657686348980105002489791116277742261887003129288633847738078554158597702917952909550296228681319407518053443349329279968399145042932995757971432586103624003346488526503659130536466353742389758070674346163510323677204719053251251296378975412111440435429793320944074415817693580830858037817130010119241794727379060202432620330605895718057403031665501109301769111832283961394853039863828878448551488960402753003179300671375722716953899200064361427621984551422875236515625450486160143292827540049332832097977233930724740017902609547362864677926931579679271793585131751172581624374785974453479292195725521960544754019256559993879347720560857565677191634589844666746009592108339396158807985527641074265529408075182346425195675286210777245873199149719337855457561685280920708001886743149536190455704203965654042126937589816775285948857684389154691688566600974831769971343305690640952385070700022994731447100560629519804939584657313205247366297844562598861916287319005020518574055442426015227672239845688884859250930482701931503473041605550252133650678344352712451583318605699880761318758430423819513030822975318854804744696846872481886543678958665938930161543772486913716131220284308819404904610049939921885407072099690709588719241112178499852763720995628870983175216275406978552901762514621319998069044115238315603315426292816041327484326899858919030687401075913611602469346643760683150698675673940239466834726885331645688968101624684473407812851968605968309256306769099106166574947739820146524149507219969150339188056025951864190399407530072134914601662415602725556625539601618196231691287631485150382221386050792813551095257853761664202801419392070180368058130563517179388151280873634729540515282975146461334971248747094614862976271857256735490535791435044072756153580602770736697771028376520922546065274211223760185811266032453645574864456851065379800517858134501757179610435815992582379452785387262269663870166396741666703439109264505705975567037967123425875721706036455039663938768758010707209818997356850435303060038759036185303580274766229265298211393857205199198366216319153994493881852690306811176459107707369501367256495919664349358106739915371252573808678739232068787150940230365933322582425286990513930541332645812025844335429530227371383682553465473488829111897303503923764644544294297772323012303734619656785966962819491231132052365932321051345962767219624910052242675096557316137495362409482485519004600930614026270105159965183025704862947510037043025043117803860202982679239395427816345220535499660650101669274817954541711853926951595376163595265296156170325960514074746633534070174708238945116510591212142315010245978846190149881880276015922672970398785726914346375744851116348684044364363759466938540833998915975720822263224954510983931379075122587684424127938903380159859071526293911225364041017266620398575768599833848811575550894986832103882987061587642423013839477850126531672144437019031073633836839644995169101067731092488265044163126034324591454067680943051892503488135979054679272718689703219851205972214896524955449958597860898900744943663019237901259206624729666754319680506346941465912369679186018642696553634490117190354750867542855375312257919824497217378800020137437474310086288065188262697382581928634903143928839459105325141819720893312879958004453899772105443560968345860862428764661572984703793016566620545937807514582238996045633019002013543807243759616691024485260262225220671523978233493137945542423296434431691574041673492089848383700924931705452050246011405698552574254080170303679552687186852137557711689207361797537658980075741961300585655319057643776570565698530837970070146742427916301856935488917411815209815849290030500358534195374028329285797343638644976363335720302273815225764609542411103471994467468549635806486141812356625179472759828418394768132637373394175950654171365300010920945793973190491053092814066444140834042799854084088258852679998481346714161594417412331122763809972413606855988574249980105366414979933398840210607046943033419443771469941108718423400313081335221818481124503525862104478650134541714865873801865510282955903825813505590573237346346984025039289521774176094237445519028341053516796859232912604602541540725445984414781550218591449647724475184757008970126646364168293525815357728764089369914942604229556279099497377952360603635930733458061210320325071292513062673583586325035244070225085889977829620801360778299294411910177835410620857275415131856033723299504126476966524039439647296188382882314682960478467762336756682507551636460540208901837471316124429232145854889125131207731263782319985049973180228487466049650389378796957846175960284683939221319162869322532242041499601668732295606158424159179468249389592159165548230282545411612012850111031964267533413389972751022032493075351289630172534184186876681568524960546271778950985792103173669201824767281438733062946013271618939859802386993838847421578869201067567654010198264278389202242542400279354672097473515576114725225040374072243666876348717790215998400591490078103628389108314861562783313534609871782080552620653545565612921758534755243267621389586238251582828177510654804561336814618893327224737810625225471898853732136444836062099366682652890233895566432648258314168971664058742570851974354341768529464213892350999235762268550975389936578470849360814268469559430513452605303993761585467357492886095341400660251108257113534097873503377861747966220553765826837444095676276069607174672592529283166512437410387701298522581901856102879884881994199172114665276970697617039179690564797361917357175016639121672853228900465575350244509145954474723033914074378754003049063563378547282354047829382635441311957621251962678022124698877312529965655291825836815213496271081715869709825437795583718909671993760250313409211400367509243680437018967877103968745702206441742185120674516216838609900808654712818000679737571230916923779026236396117367682129642026641548015563498120297014143883910152626486473684047960283212671375935241745503738593134308091800946034955222970193163640819851998600612557528690203381241341685153091408108430740302814325943579694824695084386851855095067291864562739143682491965393257968592654213455841797063497006415623496085687779666006046502583541956245417703909871847592171546456312476123716907802700965069193754355449640485341972327282091402111206039138312122159377576595384101977346301648238058161770476150028428598695722680553366472889785592040786864041832140733050163966655733380620084758184778693602919540064116974060870356571254621641420536806914806777280239734188818543780294230948892482124266928528877790378942407279615349229934200121557149384503514079410702046715879522348473670869218352349328247168154978806959380621222896843497456689033032225473265789317200722371535642796931443018041143921859480456783364812203354001691169098151704624438064493561299929914750979171054751027878643807346460998468365730786985854314308016253966751375956564140129122122944841844360380375939533310751336449583606867808471835160481335847992024669999956931344206208247565916523505593354039771687718799101726749012121244419839007129228381504576638703046760183456005366829098474135005158807858249068010408504645817721341283732482128703955173502223036620166644731618106038860745952208036263086732053934363114298017843192367326748162114577363605304045935348002933106977142081160369871697201111417235740028711390172355438403459254160416127536130805816979463582834833817473643078767900927471962391733090209750976851588897430965324369936494109291311234434659715278693098621679654245359816526476431852887440436500507252669365833006534348678847308606049352133007491255915307573669638772635776075730443530832581399979743360284622077601380463945256130985849162681595874757244123301062610440848623643422859678959788969045555445259446658250150034428140416525256990766774009682942152459930446174622066307139222392373188865692894791732191968604390406559454387082025232913061105146695050544095140365701534925453652389656479535466605475566629938577067256292811746899689367760261120339888107969189965768415530727901698381624219621978915709855094956743938039035106692264841548163005344663452967088241926763558663690439498683499045056413863850969320260126614744440625437403799390162191291113704391678352265988265736800045977158331245205663991975820040603190247049655447243625995376039146246843280637399909440992575767046521407433584630963615333186316521631249077538076946771557078504752935462281887804528713429377639040000200017239807894080405781553856928882167699380545809938324872467672731819680862081335244139411825428490572470383589166871092859760009090131365445442713484042222694123376338589010564332066384014812920294919177757697730138760670695832872896059418890350232152633508419811912164123824629094577239272596060995278359003120631315586074063305507671528092124640026033978525994254505165830744355623174391547757193594297193278080641588407690442507893391215867428413166033072242881662682759220508968486558321936914950860737527506371411008675816073114516632076294434941469988437215486459838503686837252845629166126526240188126470813314102020452756252355386241366864462144615228881220900863948800758263973525963798602633088034461936577977084948063499239467423763134191575246896017021335867690183133596241587611286321278437711189707160034402670959819037968638601014602805738509297260091136188379312871153171863914012725496292369928151503258094487404512492337644809866576948818908314146507957252383007536677251830391830623156514382364026611040298727640240100626633594332122602962382974769892498226127145586372440830440887126163558170572055240881363454559653117769579174598962468802334442937182495070213073564525688804029374441400702342698984778317036216140446026479342856492079475287285073121970523777289143156334602505350686928723311791932199784197335580102213919200398952064071261446145408982912413192907132537372997372331324066510262739670664902561337364901059518381951700884412642646269277597023107983569738137281306220633910347159010766439283291308043494123950608117037321710489053198512812864516792591343598440847018820805466190673178613158503245333094301046644824889272541325600197135681259778105189927465022964227328645087099350943849736675940213924478837599793282420415875715223204592404458287106422472642733502671939321512558193297058685313884018942507608969938974969338462243842341476393451051852462594058891464844408386196450159985880979762262038414623428259815077707845789277438475302328223030520637825283425381572513141632663927549127928241527483524289521956226571653756141889117865787894570955694709013602835379479805582448742789576804537990783228985906541870769220684164038250906402394813128268828847725621347979262312591379646924384862645508296798894903289283813629231341958601570130327250754148148627487089360445819827392894404838531484549579488500171049900972900815158168899477266483143683532773234640445455986267926429841853293019724489397575574345001366040152532602114975461606522350060379743390701904964091061012727718424722821180010936253879886699876880624700041457057029044944757506204122689469895074705706524838430621398620551689688639949530308798208674039079849273752138264423349803746031448353167435767440340466904906409044096720370762841218798680106977367747672795205679934159870657138488993452861261915225849502332341889808782783782422899214871342173595441675707297649888766923982707162680232425681563853152800656877315589605585227365616889801220462897938628118148026640698569864866826731285234672081303853372026223806654341181053543024250860409495626377245546920448576903273178069089118374594846548171756582995186850040495835804059011447700491034847700906160574876116486133106857061336020936809183134694546762699973677370180135412790736455153837179081181965029320754509054403074101063845923528271241548855429491255048955298472863309356430881608148376760764089034320590273486197777370475695674920087848960095290348247275442588639282458928240058693943974001800305405521302741579645778269548694263296817474077771827270008190269359548322659734940435343436608963695294769287463684758136831225952861177266357073072254411865379308119342177372548351742092927332701116125947432651155422571515684606620695536312212924178559705053704786027064542872142959809152665014525482834588200634022114181886717661454050326462484960982979567667372973600290829119022751212572957151763555106201971210688000958938278924184936706459048561197365502693656290574066411211525632729665587558274157239705163567365443884702896092421638582702770078465445881386062323567337587130525534737539874403025353326524160824741055119033390573839613050218986140415284452609165175366510619476160435770011954888967425009229382025142379927584558583133190633202305506406522758506049594453175080910019338999910067091659468887953992344180186811656272582372264654288238501381614492190493208111465631662323809845770115802595142443909378143614767404000483537577230680149759742684039394831623691404947294915424844898896786746837365659256902978966174228815127789355121950273513777409006580705201609140242216546828074898039876823649451102360091203603611084771587378123845639252071910654498190253916954625810874546474769256007476007910455480942981791674423444911048425247887677207782023575908953277909729590131499475867372216687599181408832098333256472870003045087982019580241639965150858102777468109040290805003599216060385371051141056957521178148427477474371645672243204677513432223050083049821530298473908875565722608877705060565403497446196820572103664873128667461663068141312579429595731812930288121524859393703558580977008041083473340163015304935158827563968068133258422863463314565757969491512278266404803760715050385405799688141721547980608700234687210765483789560402186708386693787075621604659754800558253742761334905691350304763540780432489110736525234776920100215100781085660883580504417551668646276723801051480213552637115994547564869851475524040523643292656476792671214991810333634164857324019318119078485904772479287115063809972438967189939902311228958104083905715980871958674675185003378495009574040282415573227827839376952438240834266551455632323888030772086459565178647650074483632709588978300062647365604573156865489097853965499079652294574148423637728663548678657073953617099159408636595180768540120551370660472476169418721111905299182462109062724981199821067166355794595989400063957022187652116289026540320575654609374278156879353452492781052609223830221900092471878308882064241723060523065076913992050790711449306199073263322151614849939420419109008596353405154758982823280273254358326222834384298660706283213104067636098201390233902205279886204799194830992054118117792531924867882856526052401965030007029191422863872155418760775094871691452216590238228383887407116377451527635138046917419148216040838149799162190332538844845319537227854334536352240925793742966399977820173350930332592992547545544259188717863849328491797775864526167853032639770157550943757503040871376665167870772273342312782933128693061381068078184445439703753546042358815683925424270041593230982075042943337639478856830116009798711450693815386763527218622916746443466509609487521289830178774951648840536730628679598874614490583192966246059367519777925410265392245585668408421000327712239689863299007572366627995417424162165609284280983736695048009260663539721349739336533535671584743580231983138265928597008664359358585629279033702999187850546896004724751444306993014062466964963116001240380874319649085964365560683992795099423544987275408687153795533021262542937948729265111436942635663074827320273065273623306330323222275398988078028702945000485948784766718099869991466301361604263993787388878132824294034525876494226553254039597177233083934492887821796533747298062240996446137252292524294245069426309354265914769961038666174715518070392981022553982654025012490638462587737984230537346644483360577814554131204065531937248758286129672486422062428762291317783019913545812745749546387904799542399955949686188706761252440527221818445298966732034989570497705468347757327289088298325993430458606394092976876914540418172863134588982195178250798916822453859455180807683069924841078181723803930554087716523323857921764116124643728287362953236346281934782095823308554913043329657035708225738426730405926380639855091638547603936387303174135502280593274513157634263711060946104808125673391677015858436972394686816540654800409781675883642584907776114246008114914833538371743752995838797868705533000575430937515456175806218046593743602900799455669843877604846103737913691759210639007026285692684590845336781494945753306810164293494599477694281512818009739921518284094888638602760874231557500520994881631325660748577442445909455291504460163547035533439990503531982157557043242674248101419789150655593035975046355620216711655402657399330429151517780868352241874615640048824872732021456906501941603182129223408184203606359296461405831694992428220489368752899544645771394804416791222685122704766281525041630901504488518459085054620443009117326488760580082734794178769088886388764740645348987376335012047508521781512619356029701385923670942532709601729974440368906171561220522258742974319668334697313907985024245115459312987658159816874777768753942657825907995211808203258768878927360555284939199513154420438643134690893453839381862593344624909371215757261760717694127626565046226166698174717712974289899238910818014405311170483717109688349717232716428624457265463792771800215782749597329823337599303926617977335980960380187004119390660180299207288257649129797387153094738425799169791609930780628742492741988590575087315611115068117852090541506748538452726651675867416080852559801934205296734378039928814311273338503239965353556368750328593339857749653330882433872388528373428483793351096404564322135538406965463934778138318364009848090633414047681799417554249450155279751553355315770771516408746091548341693851386714128123419279565279849015868016879788249816811371143986924922515554115423120705572466822189077422248108738146728581095062776227213038490211418657242082432619990608038475009660103351485909063754998469086497207094368457912883875367828622936492094038155809464345669225311113265928684173141598489221114742784768086106064139643130754834082833290290967557976481261578600818160797613734742289172803811097366434837222561244020648021475449329828205805634834305587023323500482733221152935515895577487748994532411335282825491614973102778168324549769545189894699373517180683944046429166553488730069485232048142385364074598335762049062530639254374379023868832720837625768041455909601562729551230548284023690864611935843531014473995940862831909758804225417447086459001372399874259667580882073939627966942627316512036331035915796821383933951102365098001562968430354403641151007453337361556730699928386186624141900812122449712462845914813570916295389115007246363339184714322191942001341897306443431271261169524218404187008212999573628143861051235481992265509309006053428576394797028790094925082301586630799868984096653079187386157792528256645520873440209472340118676172868944955754785344419800828622599634001739985334865700688068704877506657079804470683071559168775878246996888762425274071700393639624497273122341027466124562703180964984611112485949986170513878341262658785889834652660972817677026109366308659492385241425347954831685258217898672823332568939616701620256172477977993198109131174631191781966224763645594014646252539172521157935947061562796317645486990317665575720988205728088214175766346665080527193446477304457055020663876609275875868287577659331937597475125280711656569127686874855616558848848461097700617040057307397345344440589104432588114850211627968229073061081032862759673349021899349441725265566096505563679794008742716794783039707726158086023222083217441926225204277858659209067163957613384441664121016519156678271513995836737401735536156193965658484895450707222565899703456258041107403461573468340228294461584284334918985886645396515673282533976838977565240226376963867731555881334451863389977101417589505171016194197818908697646032749712298249644803857961150722840972522648467484491192858741522938694664667908485870214038994385068483898677622308108654567539052216020596105056316278392537704549083017215062657087485110621103713399529470404879047625819653051820314382519754587458645083102744741404520982998481469945082332373582585925124159291310095986694898467375710638133777621423815047670557926163094806715190676988704238297562552709845022029735423123402502817788931503660740524631965350289786077670210611860239237614524446425754874357441992217366052724111039262334122219341628412841422442683410770123327816306219706378772903156760954761930995032196198411111182225186845196477558798678493418283195069178020356915790437468034406943288183824943404609083880223497239242235003447608168416942300169336484336428471279987080600325239791155132331633530063364772183089289329830875879015992032985272200469498133792554806215064698450521186086804654428983964729454301317091382658812277769335894616349619610916487142149020384606983549752565603137412587862397983204978947943875965453400403614548315335123744364070050510816354044145405770637810300547403917022282826315693732234212337613218541246011385074026938127656414839584418194605510647904371425837189402493441837308354735147755069804502464106664348191782235154478370585627717474072671173046620761327331943626185470254964325482185900976149473337292600534530043998721815364964709705093400784938147101936505555601177267361115642972253604575470481820580510373547613816740980611578047435018509592672251120216043319500537950286147880118598861742688804939619900888361817089694885177599433493437223354031724253909512246320375499651403416968608712506933765436279850344700620786638708267684650625916737242561197094451114763537224982484662218201033368677521215412935800084814672793033284216252750591103930432289442725154714728205820529895143527604723520808004760903327327623068617607701841538810725201006261355189849360969308477323974403175866222313963466043334666154201860607229569120236216706302455165823995145314299445215914893826217322561005355694440485356597118020232406042944962944854813917433479333651456837905383797866541456913208133883687966877971628645165771691085380341523882599520364218533851939754267928702791424473669893621871120024625502311435890872048693444090383603871374721665860168458078892484312906881394065602309020948914631399985429680883064294270861850398221547156593528048163661803219955175791154134113715348127615335196233261740603847953045608860673346787540787475248800424759492408926515718968400778604770999033689493450628382846769733964651018171708294415953880427100157958076129702802348857833211163334307717628864445859174228840892864960927743201434564965646906138299164996980785306620463214771563171341855835792410346715384426534600288550170457379798982453138810843287000879155450339355284608332599798676125925943335682879735200758113525736009864687887348100178196869541075472652041058613398784123271319985388863134199123574130816500848757090001255921120094966057087522014635297547113451908771930355521632745837031626291113952203817152711453323488431882697166169609884280676787184686082227933430135742717271697684900416291479103837338892106179553348125478923402491235400777289911337906310890453245939725658840203681795264861258296781907925738180358010349923746440739664601044533592654299229478038019130347544847320746487421565208290042319253689817387924321306831368381728295838881658678383522147424718666000944347947209911966339458065094422785207402838891430138813641394567687761376706271054210447498128705493026928882093097921434698201565870173082854993413361605349441120461817899319855670743452478082486420068848146147997319976571477015833076352992334784644588736294724066916188802026496611405642403951103893027536471788265712204489780669579654338779659760929968188059446531646140111989540420921498016767498776201898127973443777473647132397904367112975372612485751678238618275066206558394223447470706298729957595703609080902284397879184219321355785057248392480516091628571920341234568579757185471485651829279543680481992161717383881623604071428228488397728929473995033429210996955824853010285245325165909562214133275590671975977802581368515925776344039353045161948385082307957817549611374892783474419246430960853950145177439979343703587790459842369362843727826872280391570964246575296978031063814070390501877483976770546347576888113575832271318625769809432195245665718613590034086111269036750139996469294269019526832905623551770236604271410449245903991291496077558471201503165180670114178188833487923574590215462650466040851458259600372691379489598221286622620506298261320724028695926713283822700509695579675469803190647768376496747928710955625347710793769443059469219993563653698493094141960847091616304621522466319661370415593059398384401524130302100013917202095521119332877491662066861043126928624543972337771339957685849784971064763319489093318868990700170814921523331296997638182409737275436665710710405243488522676703947269590633410869930543665777951245559482189398734686548809264897391707816285619804432851449589241737993642776755586343139227221993334669045711496841853169212914657036410857279345056551430464314326536114318059357922804120374471429886192717774490298746427327100975162037904672947878124962730786230716619206138046498566071890648736035710793615231019592672854374107887793497325848637530430148014492528159683417159969111818183044922789754633525497380042664693844904858031805531404271480545781949658802865235273044800466506204590631016476203678073277223820902777773452730737029921472458724720252266334086944699021548584036698627431736316031371725754946173498090543693668065945857667247138326660609575200663725468898375718262930331391396595024873181184147739450320615451897394613523986518471130793601984975612236666325448999857340335806364322217827229724092332554913197729674116140324764377715003614663037750027009667703110542508386099215067678052734310319083239493302239789207711613490378984187962349174882067111273433321907321514609491597577234365515466681841212344513224242086426205091416879430505696709858163221671725115008006227240718822807105964432165325430232233498481245841801104167730783414953641669567928858524386251838737063858574178997314764753822199386713048910637029803063765280893916028139728576219402225017619419498621754466751345065392635214493590064130825129266180642315485190253802560359900506691222487538131432177417264829938611171022718737597711263497903315726739695487804193071194213531266274221616967939201395724006333086652733724752962589208078433349674190054713689852409489394708969926962364746326536700431892963046461115113716811909163678680272286984176086092285441365825088353812823357604898035077217215546381531203774567024717438100585937832803131975386537176669676069225830149051890212950887026277329825428299108942886875819091923203265261004657514471291761405486550116997038881998378321815524777849342872735873563607147907142219905852220993014479052795380249332345633520849164993889916279050192135062312854406645560119434779149282861794141508416271103629941869969642595774526844907551630141216207701950541097534919739112256727286690374225588213950040057528916807312709234076119340755786251866528713845940122212060214604848401567502185710179782767752490456331009096884639581419178034516117105835239468591528094568559803398142279894557914250077023908631105299282985925924535385092870034556007281886969004516048660490286736300965556541671331268185303084538361775135588471408034761740033214029752055727935881645038100821751585056838089475612998001652769506423608836004252206849261333665897660703489831110814170649001324272899145912506791335031061096871087504734285875113480744094802012517748222664285996550583855809084129230522103214965713073022636840991235074496392632399084584727449830487894089224044890176374697829756419849750862513608422221991387057821758046638588663656833219073807994080304392076118655993386518276953431774786789197545872188728336061998526898964967426360628066549129897921464653395538149851718659948989015775553525029361276051367352752205940238693971059786628295038231915254676834082390105000191040760146649162296959161875303970456108527920811992903502853720508012773093108660762930443048775030606198842480851190504336297718429432404435185477026145724096290099480997635975393957826410323048568550761656142428435391728907598131386433841545473495057760596547724915128779777031126941866489919861549748222424911999594251203086362843023426276971445388873203626002389948987590868250284400566588685090156813746223778480092208649827818044454160625751456603720106999729688913903101123163089905000857528219914917988926980514523988900631210063413362067209851319777761188599351288899819813555674044800697304501991353396490586625165023609058559108836441237832248016108810490472732322844816084338622855052463326632830540485391277284076445726254480013186522325445052347012283414941874031182590834969067657698008197532165554724738284577559841221515934590475824412093578590315656434211184910255356044656513711149154039938472809046355583293456201792944799945035142606791634066452777684446507073824370895657047918875294893741350614081690018337471360048781835560272252613291731694429767043765391129332368447261709215821691703555851539903578693459346892415564832416125674816155385857613604784984728468615972675490501657008753217164443194021413638737635883270248472816873080751940565965321686081257250048995327804859279029693856849568212684768450036218721524300890760663027045493153378781463383054826069667297697654943630303429382127059659372008782514085370819998875651334314367047533633574149355020019878004101988041820958189291063642855466990700205788781024034056735899735575084362157497358202267468783417071355704590911868619182238380196046372941876732378850914022115782568736267037908929635470903487447076365064530280497532512013681619017340679717453999116007439779252396101953083910085253672013267367278054941665682248375763412734797391140501336741425116104909841397289234032422835959914680984108902878790194737915049995185263108240295450534183954438471587525702099518633635673687972456988104372506727261068516446845751598058679462509244837161432191038068363764087075771480478452209672207200469498601650188389390668673601228354821012937867473293397571878855205514694633011868684608707346939456226310918107267391065402208493353606467976652543114465781151139740565059210606638583861180882680794615655371635924000124637358193147069969809899644725507861874829042529747362427128601830111247530616945542085752328049397762882354557463864520767551184166562234107013476558138738818449476554153204058767016120659477994368254514617024013729222501903617833141254230389948737209742043494238304055347477033062906291697268301949453813639551199724280499109637736676118851147292835383348794370404398150711928416145859348282470395194773407318000300505656301259742944543063661291621149093295470242988106065496109464865298210739809795684327549324843483737225514808091657686987285268820666422664187636238399923755626578960923771515485925697068325303206470750839361436221571164742422652328859730875200681513039693501953103340683533405836080245135851125936049710666136366422650586966602291675817681467301954606855430274754432113401465166757459216682729198662772468230044903352375477285537967136176458795330900957471218324261897971507219963529836871180678198624793582864202290573147908547567242362559930977694129942409197643873637326439263584081778257299445034150218293036648989275569503290654467355633717528197256210161465297286873905010615756274383882311266021664541442358757653195679131722380912531155666906094961455488917976444206446848541395120665065058178981418127349406932492765803683062631601843161378014596104923020755669908017749658935257893353802715776835269095229088498548576648268028401188294403322499656767760078783915420500974735854597872281119071966447896321644894474673497119680056718251371345898140046194103263275506127810187304430162633041750883708023035057452678216369622617389927205123147176198276961415984207453703384438580328488741494797405100275888845325960323786309839770060056866349209224198741310497375747590006697272617821457230302507248975928959590571755134077598780498874680293131364919800780542403177936208570707693098224976690436674146861958239496306393743952316280240852071688764146743953330302204067170282896706112671783668261579738260834231031876147378341931838969939426779603211712772977956352653603392806898988239339917662757440093884919849413167808928590703988343131744390632475720082553876488532744049609444185155900885584525248873705458875519265812791828026900242552933261082063657616196331897990106043047957445797938605260236006706388656440711758830393055677639715329337862448733566835367622138955534110935943228989601833846628170033735644338390356495879842465897944076742604638633752560603822619408787891765911074113324772142485681449021808270090308456857318244920648654683392107452288008924340899915374587297689087961995572449201252215965020874168297386480805390469174413944433770598701359095524426191685449587207821228562505070546518684315005235836358500641144724989414161403501855453198701711870133381664205670062299647617216054958070349761382418302565253646490052872775610447863675940987362849672762099737446589536689395637209074355641208309547583178836062200730574156246733710044594126631507537102283646020374559445574608330423703729414057812809328799311948856425881426465710944853392109158661460591859960936167827456272413969782638360617895022695562925215856567106001535467758734597459416812975180996674519905279394431282291458926875556216550595668981230104245003269135830164170170099646059708338975564700735527461468816764337747723709427466396595052607085017158016650404207444260345249980280141423686467348876451230423071630302389612991567652439184880043940843418850340023693751072781470780242708010414490483406698188799275185353527078224777192245769477426116250429272455393084375287518219808922652248008385294262522339580988815460248103261708002654360955219450062281283540397255776440580507469129013021054358751309410756613596501734402156103598452850070289539106498491462264802164444511311386297354749475263029977509348624476738151021367852040441050016772729622137955175433661036141042917846542950767393695419587344936724339833418220974070021580056907561324045707645914675170812944308316677394444778589811608269165509382198574474984249194219984940269370740528395958972265346514183174409542268811779622502037986255214731640892154308843677627226708542241597109431617327154479202362200297493671177432263660437045471315809754155232643055903800173303422617235643400331647781652357029021953252390623147230116813231326747203895070906265735391149878392250222403496288358745053138009763646656686594257330242624983543541244526187352328033457697587121983514478379996260281203780733047211860038280254223017945546428565972815839780143421614954409051191294666060796357930663922470647446372274431615181128951430331036289422512813449693461428053197169641780314022550247795541912839468003064107964088339374062634569018095505409693205250795759037527421800715829841834031920368141213576843492565757846924831646954481973724207446305005881143193064615776670394248625654442871421751628337155764990562886594294583693075766707709463559772870422228701399288185166740841274595523859540745750518209372279617780833677973825126030964813268274259997091985409013359996381024370631445409284409581137417195857217418785114548730386331419223041967954663991412324691913703708009330389257212943718403505168828755511574527053747804353338288160175930003110165632562943517613914217142217006988287099958957637262902598094446678822968473714468705485127094377281080540779608798851426738495065573053623538916583099710109281476785217187420160203923705748908057128966443946975569332641118974544713640527286752643907911555914153564275037278035034407734460234912621562936269586379717872355954690431311414498917375186053672790256301219897173152128891623289539527704075268214279098089125605231245729380195822501909729192009342019606379065640125802040096929822473668215514056768297488889694521959280937874266891813215636199041806402778815495804839193893285209704105805336362668528176658798794151213042526813262090766763718677115461011986170275587459756151191608026634045177506331390175867594595043962153443020021928296990103525943660754860919007294787054984841230759535718169111616190941057911596226512001718264300947278084604070125121687759975299460021455520101982374085974882338227579784765453164039080583321075469795110601144497125912631934246359907779243009583775373843946621777327868354464323899023038601922345370532101860463380520156222531676560498099908304776098867945084683996948844858515059322177864964170036100643084402098080877361139400878758920322340419341841930148345751543556515491792811439107199671233904525241852961719823258872204745590582925150355846450461140427274412022263368656332357449078692453878050129375609542584354155972706135132256497712636603512828417848839345636047822929438761329854195640069244140961683352340513600116944314149002671219718568926017192873741771344070858220029784191155807855944671087458898728795546821074491302302710305434397236975721592993593132716584944309039473480113962056981845449733651657156756630237198093519003793962363671167410041439754236538359370918397320952467978805147637683897255385598555013649901151875387058022364331265055592233809698937659733512309224267641166187999723115351251307913283993109994319188308277199361817122119931697838963354453840128225037219950595390216685124524173237994064404337684875687515640525960732513318366298391232920799726376596552066901755559577872896167038228709866240683185607878517640602144311306641295244493729877404727074931249361830141713290299615480519752271215738416674557530923103502274259529745252993835527186558593871930908118979638123153723588430583063325472968501740797230285223560841482727621579302917927535252024184321203066361493429551577872806005768109723225664787680429706528386942841102960212162483790609290977862855132192494014393633363696425838680707249519921768251818164198397768562469530373998683878316472079145126858556927305626506408969617242386677101515448872341448690749933614848876850853492575226467388178827813507091843984384731730147970629623966768763724678926519536496398376053006494966269098512172290846983280405262203095675225629389748980925847154307600046911630184285521935065341544629776809767511708951197491659799586135225472893589435754410786815374296915545911336546207269623288809559016012636389725160686852141973096177876198197732341503125082748519131213534935515482406447277590337366173564048873753568663196483023966883647555927856000564876749262047570347030658808277682297478704095089873461708052740487179521325945288545318916489819755282604171490666579180937922988673741840140749263285230703946613854301327592963943104793017557914701548012044829603558436810844945550652540084714753791067289426172641851284318692020767740498491748126481300805899428163461558939484431758844806974581661245759765110487010538290708993907979862911044630906694408645287207074227249818569585153044135060066560119450508105332817971282639134717734907518634093109745744761344913274515780416832538909316916267249136768574515576652037846753287715409911645839163297750992983812274462632067003848566149971296715165145616552427350754222018877556221550348087442054077754486166557226186316998203577940588886659015545808916875435019477150304401687966893497756104149405901365053821708600692960156135855884003156277487438773043664216575993372431282186794949988126417168620017151361904979967667504700530884778826802045344396170402588722835550027858413504892997179356596642077388344857438142145176607705625441990175558448689232443088242065518450646570279069641785007603476003670476509309512866092002751141005813364483484864127454067672877688706681441200873383003567532383108782439567820635071513830343858033029083304133477816737155243114946072859916817039181381137787222305053202301326873053292134498988716878679011699965044928585927440722388580364857542939718929564450138522415015624086969042642252465521364206658901012851409940550479727418928561453290527021073608295412277822862518229796867891822715039888832196004533628092192743076075962036713034854616316207056578229625604383716998777205645373300226201771586014561260123987762688905445419638900230335886884135116403348890497509602590014689168356617128717902303229385274334411841175390172087968861659347891275602692459351108222181555238166012434829376009858969210809671648747335494902695248299690639399239690990003101250749330594671773912482472453182901860633687153814975000638071938575764617168956033218510398949066864449025765968152532136806827388677589744866653479272784771388663996796441047661240242757166256325509781133166072697088445426586473919059771341057757266093017821007912545900402224637791464164253296350250336467806921647789061251615893847424851211643153348078334807800078344378653500660611189460460929448752871825115345402820486179159731897138878456061707093371275280742594032347203274270297703543305916163956198011078906191186466479903357987598004204933044030703606519849440858475841348975356280430416645028317657665015904172458604596143425148582621124214806951166772795219074187510980317622634632324896738849187736290114193474072062957118565905057654368844202000785159964779666409364936616987501608822555275806871312433354801452895825238237347386502427909230883147701333682097944433610805566286591984615193064137535498771509391111794645339783988841673483947295971985971321131073488885346086781425022899637289804661432202646348107748518323335072934840185140167409152508286411325589300851112393060879603681586461056662339971147809555521806939547900665934264167271345640388012406158370275600877762201857651262130778125620314603894734016521340489708908610719656443538534897268928142300062649698511034173725617413834988517860094535922362334151136154324339364358646294294173933156330151132759408651662471306822456691784535551085930986935770552234392445786121156887587142313812800555529731079191219727028483356008205944710611808875183739620242304503420254327552751592055744081736724739765231114242709709181924165679166376105544581516999841305811127506590037885779619901800893103847789625940636477227321751766643773212531731623460490057242036274430634038838630730087529714129099615598048474435904850607652631311359466871552920151968978694581477464060388569856461797970684171579285268309113356450128569661136449410095387530455898596954051163634160972213576829487236537117006821776530629556226298951802777906461413247128501220248317581610049285344038393160588860229472779162733437203176865668657273925482488180600699650249152344697053579593057719575367278626283058704232392315160777718113823831367098573121030753317255657383227283917216317263224485753325054603513241350084676636800619951171870353902871829299671316605235827077626921840419575063361835346073734702048067769364781167966260702039830688853999510711833276627109596967521326478456918145906341161165582406163493656741864764792486659077189856554676970072628206978412961241632744244709715025689859022332230644894998579308140174290565019659579802013226740734201707061904554806517511851489501707180141042133456636858867898234404768271032682359689989409137466774491131910953335407312943475332149756480812976553766337069392178427928179741629966627933202507709430729089738112176984234671100885725497585612280180838343664050402089556288836575334253950605597843796226016030325778093184148421888044414578146776154508013485085219987549839172836394315507749677839170194789530001699592627128470030413631997193823806484408215615167013682312613635884730102572646639247859828289638477159099983982220820422967507972827840438163972145873151934546594784447111825521754205136247540450675895674829223712103781201271248173311345816871579542304119022835816234767282068209057466701001174706115412348317275469807896040313035840248104909541299473470793059825331697786740970759673248244839550642766255435094551408119978607691347496613744058869775525098153509213675730801216205421139709057890157198209914090977349282414519080331908949395110715862469894328484785672712524969538397390397291843446953046272551890422663473849646638138321746341341225098589722673231558059922684455540447980378328728079132367161272337378537006621510503093438148615255186314834638729313143136550183866050701099571941462983406808019504123120859213544485805070732993592041873700019706311573296601446440382648426488990670983988735127049951677020321398471236772785624854246477367658324681253855224051350745767747137072850488748725984267187325708487763895330076598357301643630817429063633677957856947234778799032172175645492827547108227259911850092189338836816947609215596500233235534252409248875703935289858312844769948873784575327616629887794597817831556783300436466867314273189288960138717700411625400730942408881027669070617581203965794121082053818483717767634261770426792535796060148498186736151453711314199743491787939070640185700368294293924768225757829562010135342488789904505704883664081321688385390978485270342836471556501561690259110661353482275013704689478254168902493102098890263274902755720669156236321970901075559667243864759925396069331108519213236919635630495050459638252169768827687461326492455700147851735906145078382910420658132949486454044994154967934366720365879989954051382519888442307918741531046784408512531426006550786010784963611063687554910135589369825208650058943688856428389297865640981307354027257677067898987751356716590913564782709359946214776827539326209481686830030299415131699730263411982399428969456412879639220661899826841205013844230649942968130774752214305898163196405349381761774653899192974040461571090562219729128839440455225947018588170059473593640623293262014796313727238227133437175662416651451593588911515686861808306185347262850955286519895449590721822435589816725524419250503714179347661251638686159621997833078777828782428986421706479129892038269858498886228169957731631801035647357113659976257648438341131230329196012157947761291130260793536247426655324434328704679086616974627912564416068963607241811311914189865259811656018010507980342228262245009013180422487208961063263156963139126065538514335913426274642454051354121806357855655255741724609491658536698681221003185751370282315536057874053498712205661715539256751453479181554845830658106505984324052941640042330936987799963719163278795131454948169055086529478046509814654085272306477421187089935440023321384761081239881971760752806678823793407066355721042737122795216208284486245450664371760156975008447618627452807380887746940323513221264671439489224497954931889035345778829192307987504178815676785657194087534127134392612566452400214413273581867167729159297036401401397030201688573637990046017775972780434594222779594528413076484281360073396966826378921650957196659703440907385669144698670968394981787456620685433230812353340620982797223959806876344966393643308380801240841464027517142900454715684608952624476662848308055485394188112078602640611786450116575121937466242724560369586201530915359951782422269557043863974246684792465978357117946538939530359550328150292653485139193637405023636711219732278496409218749194854676798997449819990342375519745629642010909768114127829623986178149306325941128788288146983756964280790499487204674259568442197766218343666818197244291396337388592037174732990386951485794904264935601849211761507791544907213796233529606149415449808462917720664896871391684278389251735192564368916604133313513354725850727809843424337641368287844921209731379326439451185574190073082696417910189510264050343979992202713159924461264043489663875987181727775491210259456119684386533034001257795170282243099426203644645171384248848382888917554474254389861660978072750017196948130597891843365729666280533353258725431869630149749240978884353598012523564730225044038573709735856777666446134343008734462229611055385902613504764399317028739482008296666967828343932685563156425889865535246715410641211428769738358103887203652374619047071404905059261741798328863150272276230477185574902044586973889411603781559832462560985153158130237902586881418390259919959948782538866306753683923991793776788186591432469904011849676423244496435886128038410079672660353534291955582712561268520458034891952475248116006750256449940414124050165043394098042963594029384145827813085247941337703495953293796955989609952206265473424566070596558856905437369875180723240303143615233591623215561379645180997128182895985353932891763814813838729235530826574257882426063385077100307754170400876885711286697815617781195514968886151369205259959715397725487992530160487063419909094838742120950872910334555346000780653897722260617322755735536649870192518556387423745023603117124620207051484422681758566343219721655920412002556199523613810984418738428274288198244945243703988658100852530711670045249299690126127097315604270696888042333440753578322299655448675158369557402628518186055027047917528047015064630500412868789411606961404385941219101974911057282222023443893732344395502639762705175083315957299681706783634159796449359578903350654735320030761213556604105888729462909077737212654770381091215459484825817146617207000246011079486465311795328678783589347948848993097186094810648426677410025710243230377300403936235987207778996118273468626091987134959340558629374035152482589387402519968414884984846703823509894204508685461480831797512778292858756215561254758825350693063694725954100628215415452891284678611188049146864484217772346191003689656675103985854194824904654132023961508102386563335766590942540593428429400007702818758400016822493355625985250651378168765635508927166452321587987461657361098883621069112316084496140859313864994863256955194126085641712941145564621488964990952093806146648549035626247281328998290873329111706489378854813166750690261858347114100260209475497604253021032866263728735238922184505012936136737723066282257334178425410408079774428673626782026962087411971134238809060103867040901082266418605350151955486492167353506571871058035973800761621986697464504369151610066302037200599704515588539968997237764064792438687404047402933715101606648253999557394078850717045113770982807695121157240424940089288764873153960407818786563772891932711133940674783678875553585439671626652249033493793035954212279606180896030102095892092044505900297115806910650607711507539223944185343204907427646062005585853649009989388593992487586363292662173860867306523575620934502521823083070674868375606874648562361888096678926585510659110877814163478646166319208953049317994806049777305454938998054511739667268977956856423206901259929589929168078237305582771064328651068213218208915014854638093964471201646345448296821824100073410061364523120280905719566328557713226655299873635481417897326620141897568052835077533760362881924273091584473394941152283831192946013906800342104562280267888916820128995478152445346264174030746399116376443380421143280651076612380612885977648903378123742265200167920442808672731061456819484698678245052305675105072742711723378160325772120538594203732680734330832139033744421892687199810416858626993848931366584834582143262745628767508221975523889054020083069961551891181134036113280298676565274656627204528805196253201258123384341610807099038104064412423829323645898491973641663450788999714637432002700846772801396649439981288295199697558525386120685451520248995715751782102687459597171102614295905858458351828365600640694795750958838099837207140616317756523044509237807824681686514237349494622593110199204038420063701965254432601015102291033229671123468669184662579109242580046403083746132733430890549501014689157233986601852376096605484588409294729648831644838768353832419831261221473130531090521567971131048091112828791124544771148446917856937614605490709640911684192349453242592584369074198507387076014749735597146786010800514365240460326089581766269467991681067398360860692915035119613514018025973757741052103297201469470110142251528890059334769499007805069718295199652749499836709010264232647720389016328267293471423165006997027473925437655556097087799011936395964366612891896197958987312471298570439405408809513253035094315976399175658952802290306717996714978843634471785719525734732413176677156231572031285177358093264589733013121310881571945613874648787457777349302508047282961705640849070379881316572065042962166285396870721372954231492970987520016669512176490900398616998707075195511348557644674240271955478164695440968360121990118199426735920124035093485640747038946141310348753478563001862329366139806598173792301287976317035292368499194080701927736498546198363940792413064642568574641796896015307999194593087149611043797674588712289788758799243093258910776444481754069837728294757420983627627168024663369628154346077538234396795989043893316219575120661945388692170138018439540533299179849060125116123528513376030091404366773624484778890152553746261192128176937412885834598057898622826266827881887665602976408564767894405570850195967198697079601270623803014239922217033668287869597818724494907739038602456361875591937828226921206486204874981131415147680448730651467189204815839393436513263030553795078520535089152815855667172157296068189176929214930623364629209159040147119870861655842704833388545346915844584101563939297620419721720238570297387565090443254456959366457635947692203858532666429348753827362034489023609858690017602290497373678109855579571705843187494262719533985248444575452499286161622841895525271140145490633629551453742081179584379448643056370654533127102356787062313333523990925520288808110769669039051336853824285471518972297958264283015999401417207079867028163024033191636663903776845643467992110209054447005241754246730961024656124972710214160233415610471596004042402143255672116940369175083125257830834316851739477645980168802357454284705678555976559673392161108231522400224540413247204124034356357662962361389062288013862044997079106098281243829047842479106911925681130421034601739172727002224297140022582113316756724506968823468841475134116746639208839890729880719032206427350314887736054538509715150341899120533593038677141839316296856552103989353679738582963637670665797324256441321084951461548335154666995714147216758782715008025280804100594855447114614902445243181843071359388531610310781497780695730421823271820373227588794333893882057678567050330604452676744596968598406402734372653138807631794164810923871979883622554739313374069938917270274241078800957999911154923378749599747350246648521532637826959174535995964548971944598009165568147289136444317185564253115873991950679227675095586224300661790008769635623608458027166774922908638273645899904291409547741098767677099221776901587415579721533195886821833118122785294488465875404696601572533302915540057687164182378430595611179820808440171516102811138210529296390362372065054240928028172913095413434144629294039846373944191238125259645554592230408523850015217337881584061222163623105425105561534181242608106989824770629363286078968202039428209886317603347259865132298488043263615149926411003595403128807532246807567111339269648349179201604356234312357024267672965707050636483829615663411140877226052802236388897030808781620481633173946243125001753788682087012722225816178025999874667983174364388632570031391738372300259734519152375010076653698475013931222991521114506214834300735756037121017216671348264717456225964093437352625947873508810074398774824382328563832147765934696425443036853224727852376130951567069521719534890132846280103365569970269033287059705677263832793422170440816764987092082738948267819218054664233429162910185682348212816793865684305884086673379454930109326818845191599885569440798596250616919628313505872027772529850838764758644202748993910983921613560408437255901643227808111445087569962056965759397596793259761505784440816547167614511965757654879551098655502386238833924579904516294469721230965416912445412128954160110441384177514692472927204500729218220503708128612776748021427765859701715112768914976134153561382465442415525918907299848432458109159761428757784589336009077569452940225214478175594784125956764332360019545623534178093592529493392122949373551037320322268083675455001923886802351701826909021872808067832193636518189593812978121966204038432688631757667884091545823075234692944747855294507298723232748971965739712281489767165649170020162648127149815345438254359393882047218376789022549280635378775543872399007272427031128458544212021531433390192835527308564942775423643068807284047874815517567871216032840591410697298065147307753864052866515557375085007384009140763804224488137751071079596623610389011835746436146654347147453019668960824628470056598195390607364252405585306610180413955847343336900602189252118517137804424787497038920349066941739862879903949347170611960548008852610696195424383295355096637996254273199677476715548499089651836824421301330411805233028707562399214559644535943511173496019946874096176199737893791854173865566323643062537343484263696910990712452637401254831153499218760246001438588221359249925190322700275515088254522146620199660380675982831789656189555485419167864485657627317544461988487593423328544483442786178331276825408011972990112569696727320467745405025240950689589638108204537849612730175624054293282311980939431457403028482118230874418850133556575441282328449256939876135804140540434349894349308276800830207650752734201295736572742356619084157913733436779257625737585406728127634236849972740011156111149474084387807261926871670825807130750939927920486547065256916818861522473757365285291639256788205576305440157548266416964247969167967917524312079714926806536692290377148790946045338413287245469715167416010773241145600816166051663459994490172783867811577659062842416402042624894806779232149189560271978306238171311274092279443219976648946764183281232469746232817312983470958570727931756217361250904576311746006634258742514569616165870304348799257108820481011253123274722142221562348750672801293650318101200164124726742148644847883134923950765897233201839007348172115601198310027359886614354798310323828819860459867450613308711121779803944158190305561423906277379238081280548489857358410337445189314479112731601227844437361814088536465547904008850782627835029201431902830830789067174659769484154163531392815798165061268929576982994584614908470973506504050932582245867365871173418601674179648755912550191337490546739325040728464161166406995476035537446792157294796300235082724810647277914030638221893595144672438922966527484780803874538997991163062909656827410350584641584950403320760150620671282993941246985665196939540251781330966905531010277281387488055062056705031919195352276697317987216852188323915519114852091995850497645002996608909173722266818336123056538985081842085154298503675648729378692490332730127380838085847550156803121779505212936318625022857299237859806132881600683689643681312813882290732411677349418979906882443707189371511448627808506809055038031633308672048758052379597162881223452294934263211265716375778090424464095023259791908885365310805941469490668145673948448242444864381004669687779441117984081626169043095149520683878919093088918273020901406594375361091089996120331611911372049583675328527573607744846313898992502251961616491434633822186104443135948710093742179657748734734746920398563599192002262358596767693984451022992724045692959375276888415390178819798617503111771217743582222825800853689497869093103314976394726201672596758545269493860536429471017149968914691420243396303946106127807643220608812677371081022745596746508273666306563729695372375945604180436587902983792054973117191667046190995976074460951553085876768818232916173455489258665390971434774493281638040260550776698062881042649640869626596939458995728799841342391622790351077057077670679041607852829346001440251836260595299039370699760916758351817836373480347974404698670370056348427314722338886638280113640051486862755287185139511855930277894383222250488074509024691244007240614018368745415092229238717366580001360851694490827498435948965619566050772438369889624215327705761330116798878858321710890695203940342395854540183326240282188441882509715921637202253609430539012235629651585352506461773288520397510357351447161406032679423221339751873916459127329556537106609430967836904029713182759655868502540608839782073434764418040425950702842107513876377333322405955179142833953251470694941138458491020731639971703617946262284570105167195722476899419681948569015252240554090561463515764223643886219456580932038815867917731982543080097344240230158328887847421082619342260058365632105854804243010487441391226733230455653095146203974023184216907454249365556064285109214132848839956427065547970885525781444710873066195049556073149496832285741722717178764386578968321749903595849502056576695584015748603015041754905256964611512208767525483771540819653127641497857719939434530090746622800742423035352819286028404724529088606879976476610407882424102369200515820009150475478287544646801498329024056506371964713081272310232309999457205082732997858126502310986225481118335056404618816388207897488397835571120458534709400446542678174472427967887462400393765299066147169128180717710425762873779043762323014470527294751834234913341878814421728934401291524860766054343639664868177099152437640551378739824159639211248957073533518941945967410990624344484983722401623242593981499467622117881338229621445249770116792430886809589120046111774537554439714297133950372989273464641261994150828702100837765124980163125748186591002882119138872141364388106820005463679387963352272315098170057243585154804246655756277189150968074840530704775362566420292528942054892352661005419627069558306892397043115135871937197943000172876732860465909590278464170090654207024376951424643638957346693206408879619338137207390808817517185481776084251089830456674374187303582755853316669057705452634838980537644798701290261911725899258412239291288643557011051778919435351885622857552328125187331694121808791652948863220864001492835897291188423469146521594911291220449927139016765453483253633055917036384650291113250229039449087077111860827617052257840998280299037243776762577182835717648066429133955527974184488069575187936526629920285737982684043540161695062415032593275462429981948445326501424890669008113212250176464039139095401553113762399944337264368129646084846702325899813592149992767122371578737445566855571572243845648297019774859921784356874557976316119395936739182118532152303602475932537191636696200824733554467910742502523341251294512618410732511684013590863076305590010804338658769167832620263944228985200239259484701182883336757062759421435442638332991381598908099078061180652656605404265687957243465420107081695035534670227757745735754446138523509883049610798787538795627700218810052641959556213979681078552084758670953332744656998388276584203651069238860427084900713684832894499858062644361925375713074133708103695033620501478831784798848119629803060284351415099108463325172786509996634564731528293480166738156899725706598584754017197562410696633954838925909527386891768985309801841397662446732425918859764301680526674695902055879913787589218177585178837978588363351179304563863308099683058888821543493279938458702510417798412256806935100329392158740014925383660955161129173148421840617508891336020115272815750296572475012834285205053810397078882302267540928023883279311823548133841728122601120914886181966351877145585425859818806522393406985102961505211585108973912364736044053728263835801691804372764442671777210196585948593871013019405342396815719465508110306877870301028998205931251273783399593354405294583975724327037721541931763197095131610131979848955633333104099216415068453320277739694380841356654674178006903861425460041848830930212098577833439536937635255219227594782185565097500442092526169568795428402641508861143439430434993561120500227574131719629892397365710927806866211377026115605478890030221810437226285098669570654693759448333592749538499202685215718557058205098389460662783714571569491131231646163510257081843539375544308823979608108376521424286212561636557498345915010352351044832258267355746817172554230322174089213214113216854852982841057996738461851488674234244580998250104436254339399082594600131265028382804247624104187696692103687579158263209630688801206035851673248449187875070298155162620005834274944665779706016535197325612296792544104713453158070550246889481016589570259576063984725374196224978364049911760448221817611371241260251104966870627956776355276030345322049237455028406977362000576129906619033108442811875530624047520376070024330294704379952699848765235404455197699661951150931258838050369015192035908123453634310091814689213771294212949987797230819379541647465362648082340487288725080733671040028574117384381672625305108106176925067696985533411842839994998258526306482016986383035008197349605767598424076476865377449905613951253757350446477642069697131048039580976760291581579920134972932199042689644983221166239371548573181676491083673782942239580174283036775649141329734207504676066077609861269315297248633809949713308523645079828401797590634988993127345300251455415789679202695165339333905435141965209228517229214572875050022547842753390396450932013886736152337181142115390268607566523518205585981403355763624649147320804599688382292763914233621184152527141292800127035795932866575991661727864221307604423963811975675432113047101153091785004529853049198785902831834268984353734670789752337088276158434687111569314988730273555469377153997189389590082171774503382095631007458136288899286240841126262212724887863848311559897862242903272653749534329193058549608587269797376950162706152870817758060508392375642646066421010246782006122427270156451022670576811888963054376025481116378965026425339637374818810873616718528300774359693752321760333749860714904140962604397240348931251283653810785967275694946481363986989985327141889478164841267724094509327966171005739097562109873612411221472542351032092247611966846304353320721540879726572203787215400324705481708831975278204199081124013435954454799197640748155784567389712138521545087024245253716425085560734692315790950913363930409226449991581728006332886609374255928063649719654000818607399722799925378309543337575623176839908998630178724848344838892635011441086731170762908730208163643134859165498539719771158046981049425889590827456563805840674891738734996590400837588189618178603392480635225905763715983053897985566739241877380567642832179325146269317279310022288742904246248118616481846449697716277267631131823440651671352036735764376875917308084981952572208597996040521812019733249839174547356405506709432778633219380479134892502420278353495226586265417111352389949011834314687573665211775060381170809509544651572434641423784168982848466478536899956629340917272321495438130595721959158494378668356948009032488410582314562552847694808602461896552200004746594080358328700710783559762292434969378196936556920164833506548458197729229778668453582942856791502937698994037757406088562802054645563722762072367961861989462239650004720310534210018273902846476823966600486938977669210223284476727258400758730918949299477298231791180556907980706840118016505497824246750349729589614686264546035559570250300957407382575324679153673563802744930151496128287814132608310052614398818373032436170870888391578759792973166852379159703831535823984527131608428536086881265930533844004773627258848106857569107481815777855228932265956079122834899352688810037871992716870390712784103562756338575052725317012168313499729623823936339547352568025531221669788673764831166021202293296501162472732995227511660229776234808440400634429076605132964061897930319565654723485187184055025529788198537017874706510302653191994895111672651611569598244399010213006491928475185206498546265742503491515245177844039860728463948605532792754910171020021053460562076842250091723455352366358183584626091409548956349462850628139101900614099304581036946744679920593782495438095209362902852641748056070473619655326810077731770735368786490362080930111977675640966787616532399750738688276146180049299564034690557089558371204062608705331629308978205867885847495650190330061592384054363827854118574558628128340031553576228245468431990761980005658286780876072110075799204763769553977608669877429350603561558025944750350288869138476428387156884231149613845698413020185555868632207841678133063540859658032814346167362643134877219630824342875459199812892336025737148213330368704292768685161492783254138632434047258397824507995635763119528132134543822977418404997311400596965233810047389759262304457589075183803950236415266555261497010879962806125361486387496701650192624035520241832166266043635727099324745489038950418443204325130165508216928146970394101483023225766902541751809965046806431061423144445900390294513921742123978390392086478338738876757108074874203441595484253283355156395464534109192936641628490204436122760601044545491854516323715827889426013246338715466945083371449766910920768775860589187535110797426255473240822714874911469974742461073890921857842197853121233711576927986380183694033518224982002567982850473677903379849311502062593089899059786398112105136513875607813438576482901696144228502172486308882198798915664024837211059462764765989535720951009119045840691915765618840589802059701022376060093629674018200229922534201614973622000502975645739120592041351903353150803400336550922776223832331840366337806359474262535706091674380011952851603384348191341184742508389073912516304403246138492712586629024672456951643821655605750182207451614848186421411113163568634064853912218183838743003498043596463769352485318622950887907429447882687485736272323756793849333325498289813372846867809401929138439575302758234537641423302927433738075967817777499400278718476965080553085408254215897203066167434632468253476841978318687260125543059496552768603627063408947710737573327718073061378605013255124813949996128293364317483905441623260692059142515371284249337321953317896509638858343076168525967056139128506484518171686578943902159653900705173933659346073480549301757805594366189509849453701640385957786759708408293570776530539810804370270885526483222793461346982373948001270152482175449256045238548544239177656669479269527136963644975591696820737278459184407164931716208848496589101007934277394048912032448077396267504915546740438774271106714075865968135646025990612548212767468401801340920446772442865877671178149945232138545242259698944541473292126047480431884924528393119658266103892126734398754467254146506147087682977121402591503652165181232043900908463622126268821900326857510913545796952796523881178687471606155289834285182524691636399649285181546880899862219759278144489307545667525697627713365773414744819842076698931388988292584381090401537769606904658425507807087840875616923693231338604949633080018548128048962961997808229123900085348241845591846842133207409093035909319236215724111203233318637581477862811765003087909039618773964718647886959109145460543575105611482465623547966480449708901221277989992069431785387214182184874651519095716532328681920950969670460589349739931016439771762789579030704982927618776462230662437809023665379315083380114732145306585323986450534013595733223003493885629182965896890109007592664971287555660967634137105877108804509000002867643650971610144316613716958785732812830069396697221595966794273247814961133726282397959541864090347575104327502838403094664101768446116215400200666718214329224439637237063144588697302044775465741447211729545591371234057073092459671687006210720929742834710147296921415978839653028113564174510866489217223710221195614940612531707651250182030306581360715044672143915329737734030509223275252601519071627639491556980845479856885481618371278977474165560929102994730525507835619053167708621434492634704632158653026192554174893453986236015479958378154844894837837637558649319309368441986375958990560923043565355816124037532054996003942464041383164568174582782356387569903838035080703788989872037324251507281240393687915554240732089206756427863501792271361237302782595745876689572552141350439130638379182395500986412024349882136260639819466570552421739760776908008976729083326672390050513155396719930845342891504630795035828977379034731007578573571758569686272410703122227092398840675827102746249275963108765301435803006809926653086881103471698161683004874426926970667680363133744361813830053663097121255788959548705407194336764778530404530321323937026852618520223321733091639088326351521413455079136629653733210874993263403438042134010058923012127543619666877028014346368691790862766167240784929974708900233055035037049972648328673947692952989745548541558885723231138199588977547659675834164737149036745857610051278875910607638128136124700708556918359510884189126150159410899434377183655361048496254303737682644724980559365233896035770796189973540266284130187350026861592094868348359099634412909320480169205661682052204126346116856119355093833693401338008580409610518428837937732200607201295573023766226024540955065294257360479492726692087478933965224926042794079504046720642249534561474235304861755363902248141472343452176714889754329554929132922191108540169279555870952833120170345900404089920909021745831128131014316374251845831051629264858763923673524464335706157237853246108825956000434307772828120889389086627337987686072502558501863052509454337743354456383615994246334034584212543120720494966752402475903737839429889849717392134850227206025793239316270393097473193324765832419741232278249795169731557486583363276597729871739594380076231310758922319482927864145512335508940911977218491667515766013044278813368622904118039774641252171410769008539428286095223083906500174969336954610356176039402047361707732499721695644930288013074173295997953605372718097668450799522256331063796304562675636775501481069776662885181288883818806761469801471165432847364578348725590629135854697429992498027403640945615780528213550885929237171270747984337865995536252538127831945801381035490337837012568955222295221172635513541660446550156915819670638725164164948584319340955142196867226390488318478473527909743690039998603452132260850498756769691658530193456056869143851991247443263016345552023894604321643768466644573748975755688269629028583957158384665803250116712679919055055998826711926429985082403156652898757706402913358977597682294629184275272106389901026786506246559359886144210493897013861836310075608359226207130887604471995637652277004035824453475427822348504673018217885567844602097933763575546906073513868545824951830853517528753263261619871925105127364862834218701649790986309912946620785709680279203916401473649958058496738916156700275818971312147447597640423303333334638599820681847897580708231453865936020669526507182814135216036080134854872995266920274426626163288588636581905585435710175079146195731566193532705746657074355847247477909321093703158893039682319166123012482792748481194731584723053026940200654497050460034695173703425698301669301996845317634168424537368213796928600179012013447758288764965893641307936790694285991602164247172330736799850711755117681419827820505112756037400665358684161173637203590003100915995118255601246829119849637965387341178960646180664212393974293544344977195275252489751592048826256681531759454755510917602027703885016990068608111457761295242907442261259632814191896510792396600008798902821388998021522291255328163877189591581926762041549807400343617802235514879007472828821851822299658144105912111157580352238166860896973777715599423800365348390247911515496047642071760479444932746163277782989335414809050851029684750564327030373350037693269022497670251065106487263675790161059665573786277194550440653956175288125253476333376337636161599669175771678599412758180999244392847956362018972288737071559988123000329217295925892160125252381913199189930215711924377338546232873780696993976688697292370746637908641181198426643916733111934268595767953807581967145446722834748358068769158601986010008874214895464728080831586159004930403891333687792378770100987659565778435659793561194653362532176064421168980014186981323081491917497555107050202761568001456359856567045426520713164513993823654125593530611699428226210388291286152072179580562698498261339406770395314277396872354076975095507303209234062791973245165426943371607506013122132190149897243305903439192502774070509830189404797056010722556238478606989740990052349004093793185044817744745129328365474240044797932875051283002125012679538900095653072993488470364148956320766264643345198189109917442094332479420752551938538056110245654329811506753077267565213252855939889355015133711756050046327777976144089823223841572836819096889827170235766108829323053733372422806380158615817328677912875026773790283612128147869045888261963868425353410501044014572749978162070522520010983228017779485107413286348840991934702170860573896126671232808023055354987955078291094680218109529756150853138300433786730116037010343944146444085432223349279850673673267452255755205467618435503747821636462157682102196085073541918731896285984983520541501562590482172210752712950577623300497575597326563220117470354099685843641507320343450018731833156106078790927134575761573001470561607191511324811857597157981899483975724135005116738539738162324904743071000048303609958761314359474562144657634178722980003974480638256123570338345339716828543943494262050427192858033910397459050632211484535448402915419190639542338117918991787949442366729605064399783978956089235158004901010522961064663213747799965090935047008043648634866945005302871838199791791348921086104572273091448799684459695826780056735424851181489086014486136221060235760284495103723209048090061030190069924960804328132559070058190782049122601200430504292034144044323125953687337123642548779663596071881428875760388946510832751924869466658554638128394980901551798538921808717565176981699510583992573393202840198406738106211559458943739205200555319881144964413650666473101453429811055056975508993174226180716735962830631792106029557129650693505912027384908343223685038047144381569275066777836385912809995935205318560204475457341994912218780871518074899313088168013920751749357697388571617120660608501410167503451061948431543050312836713970154305929787883277376461145163259336577500733342520016964339188298557640372648040820479179834433900668162141561737249224235386223859436918119540421557483536204941276265672454344285218484642031512824738312726413067443403575082041037276934551938536448503203237254430186312825300605532537928663412715745143478157282423188126033591744618334807603237229651894400133568244934077107139721124340107312433457392660441766596223364439904534240528246141510610515634612435894494856721257093271588625166177118599132960197995328588918985039639147142399163565717485013134373362816003346983636571659126376798858707477875974072424538980201816913248235515371618436081754599537922965501263470097177051594650922125332081681793067266994647611211665788225190112640306764610385348594824788373010938566740249668121076891953408901888885591373610890133328376854602360877795345631370384897637664245671024946606043549177435522919483734217406934861359875527323810871065590645077489272542905358678297403966690525754609245268549806797839035377130256056577755479767831217094177461467030316830843297894001933715482538698258946613783110309196528818133739943067490238212157232899474970811647311773627312240606628130647636752263939825351550996015778114310102646777135962059362022042112250457025064755761614168373919003330023922791988518919181900014005076304037380723509615264816396592860785992938719724609321134744610939940062650904686966789085066226704382436293327048667724107429273553719872434904332807516039787007529121233887503250996131739381491217532894374857834078795622223323904937367640373141820848970280009529169403616308590986873801269782294013424605284923359787873627991286664884644813446567208235547180136368897829414644234454940822533490225994849988613353917690801203126465924313824012620840459945679836104193196914062718878075097578626976898861666317500699116111760014878904045800855645630369645033915756890973090577435462776020046990718966056568846634055559255102996513256782047570633206717407727819733312297243360157637352121504179180417702069008252782425706318102458543063129130493579062119790368229278155205804976349654447338905293584130058749992263034709556281197584406862892177049552737046728091144799662002586463424453838923219614461503698987235342344119123896964339356473934884326723822336395648719653870365405543840180162780089090738779755500437963777191962201862626324949716919921790419280488097399462814327979781224658253382683709552934449941939146929492557938234764261099135557266826112202588459504193430238558340351107921008258916431595448661643702062986458800395430884510966829710754943600964618336877168402884040290653367781915176139924178379405943893394110747784499649102770568427675928549944936951767713183913097091053864373801824364911141335531821957982966930428544184325705905640128971861730431373551479985963128881190716758242636192619501684568924738231584729394234456914591355565456602485893711218170352160363201325028631392904192139838562488789422295056985965970001742721574127554737980446249310430865445338221936926733990075878365365099071196754135796853163302686295191244248992477779493247258765269671381010711952143337787626855547754292764455261701812738840171387261100801125971874067096217116422891291811962714427404591898966650798345882219319948508359251942444936045467347498490767460128216896180233563356058880254590686017055688162444821602233009313364791315209801390951981830807244861838728802563695170932286661810425554393014268666300976454114713902511132898196688677700721109769072804528038187384918340976353099120789100825984263191209581625325710905662693930653889279707828647627525677889145612739421102848617284076172549622911851948931375520783330424761781703350061990496675236356562246447023328451804792600786693987680428802036431494491802312370187748628376996036954598961653642155213550885268283278063829796521463262362244550428474375634133517414620985277419458210740820194440841138144024427355331436471654131755597099598838827437986926910651267424276905969161814115441784758152194065597811056821353673111614644876897959560412500321460851242811944451537948241609902567226372610138799920839571442320830583965655749482673465007526801232434044403032204047720784190394718164966717984807831466465087936439521954209213947522150508034493710112034956572237933454013044781873974825257405107539425915449071404802955677208619853803000703706098285200623940475549542876096496807245529785518891275456119945154076688260764319114790183029542960558927718495909323885359315483321600671399055449631053167431843809674668278287534842144762222031903482575464915571411015450923330801491764636198750102659635078699989833999328661126238754010829809018782136289274469729014513998107886649178381664557428325126850050019950735201442987936527451729229402041988154854318970157391583061862514632430708901577197233314136517907074962353797800594512365938050599423864798892426988418840020078520294849892394419087045888736015674296302008139276193177702756078963862108939032271861380585844971175044611852278403441274883351696432044785259608493237668384954515096971347673477366978856177656486442597668779298076410253165222312473528752163190887145227018634586509089980130195620875199398882753227168651236011850912055217932445564172041514139145923914940154644363465640259552444244049712539100963020737100218173949548735097700017226709305690415262611322182200571728884464818186786245307542134942070986022596287820304106074452428644360799286531208698969479866141603560831556357356491480782635415754957588852889547507939316796485301713919693116937957516134658464284158539450402125358205482887791719888293271060035281639972102262323737172223174800644403167562636855958749672757676559894970013586502798617945799789900954307684493959090739719517295248326957981376683867696858718261072398496955933000983651036529240883605177924068150433355884643278283404989099141122016978146460755415776034776052283807396640932942990007131618535919189418160500269994624348499579461552796654252471075649631933416439808196799139303934247307953738943922694730976582455783980697635612740613727934948375548647537167435788507969218455134038889661350111939272561726656474975018811701455072379238874680045862977704881849995229741801573921888755367611061418165167486317290920655935014593083845850258792797304676008192240120547799565672223118215610155374644078276931054864936635740029198571802574530450847768796911090551424268237242008903041322952303209993224035040804023164214773096143054848794506228855189670782699770053480864227481599647612260117809427728445628993659009165561839796984579319496970873045385046395527254652681127382346938804850175240278793607950513053306298993798474417554617335824610852717666579121660003793784628084577019795444499112733432214134709341878781741781231938117296032684879004322195479220360802470582787594729535868389898318712063612188277320246684255795963173725411238923483642078857315762578349042478371742546873703505517947601966036154515509904207702088338261987079796205294466305812244762601688151598682469135771258823036915397830257957961124787834798842875285570914784048022433958787599346443911781003845189501307595734529364894748122010909803209242954225838241651825119015025375475822909940628780263046801626334426881919026908927642652306132180299493898203543901793892441240551657771809578901419379004266233941365967971820556574191326907705412369630403466544380745749607282166227918328157400940681773450879581677729049080912326926415408429816996843092514195557946277960061861091953133650841794579956850306121170047512609868527375971506116755134606472345649394264672639242497623742467252009886502551509837707314061203875465815602490660156306402972355851204296267648714964828722441113789672541417386093319655740061684298179269382234534519795100443562203832020161613542437192850792403922603042912046763928824566914368682738082955795704344389975568176607729776253692358040459918113438609488053710579617691917114629032423716728872867761356062933971646240781859969199782531288636208846828948347303346066935036022061511019605074681771656704798213223905737019323461330567093717412052389959855318166114172013753230114592176188575792712847563390605176432317292348797185394510943434712411755060781489610606761195170906729906824534927230264379725536507699898519336461427147181202573147630868217846907609878828720207472195779732041450800033858860047500703553799806719190144555448029898532797746365625866637133839791460336001431366026201138301551177065137161455099709421785239477332320690394066718521830684792713301051618854444536700949399255529814695032332100918131780511182917449027072186944444517440990133225714428777802973062572132877026686659332595378160814845666098851636608935203745856973226665193900494353293745639367846800105553828026899600489516013750644745159526828128726337053680805137459205822118238372520127655293045631505963290419507112635194305444095276244819654077062460067275682505597991612333708598291324850745809118386250243682273784743433062419339734296327061883052992331293278143035852554614441607505919446650885669631620580664517240764106559732055452897690859732132174244647226505693343758697481520169973854499511523484852823242122741816167352517717051809302710272275004111461227336301922594125726392422764224949869787681870908375893320897375837200838766668356842459520398030552645455041923567059735627350151072895867511255253654042282121695373471307957658926003191729065252532537601767061341673454087402591152723389178253163319959646108461910848939340135530356514147822985272087030223590909903177149337785438636644095494766230276744512193377989300246006278436564042406634716695343549403823680577064399747672469397575938552400528487823287146431755367420363547657142862194266634215998166649649615760974842299160644664390424687313561629131452159137201477694137114924691251016718233834465789549501897386936399299269504683683585764879223772144586256352086221150326802842234335527897069076003514075692554203848780718319964119733092909899000065129160888923694391193467536197548026864573659824119953057653925169033833583535092372491850120581157598912870344600098414134032974259250466335380517250388516971831135420596640115396373864583977541421159777807273783573320614256096940033270109065741215778553224857780634315042955475295184300088742593454772315517528284063597309791972116097406352588996083956574930597823193475408338474857982283119470186115702350052874793374524853098974056614970240000478619594301434522935070897473726335826367950628268433771076540707302853744907776877967374322021764010292725370032460478178884560795455940309908303632558538318680944644877855239503657669465800096288709074088256480277746476355403853336256925358431011008079118660878687303920894419518717348382177635915752448150325803104066695075650673157739940503122527308097200796312275856302285513594716062413388331005253104215246842510756306245506391525328854899409589802892037506548370583118060473260703728702165655665877392836369671502908607980481804627063081972410273479012710283772619440871090485036217842898933530926829207190858319599381354272912912384943681158040276870733162927499661104073287229222846255552531051437328165990340794328276163672325193801328011433531321587604178149135283140109440103448103569028750022552188043268381421988074879729571751766951691887896200559222173957530938291413200355268641955054112434429142357928049754829649669577359489349387657457375786040201540585859904859848947298867660808092995364143675914031125346182056730347913118309149225643884013603508338244372668501625258458825431516982195653774357881280647707885225212408654773062875446834078055239671114077361598829369612006619152999957559872439448990064262031336300763202079615417214892721357413874291112466923048777452017633677297604896414006944345607020283334301459109017587726639145497844682827308439708632504082730475897487282917038727848420811351361851812799598391926266651974415948552054675856797060220642499935607309677379651467768643874996468075846987608994865568205596700638262458919689892262479635665452425238900047959040243809907993058498461689785834710407982838129270698867916370215743901445249704935031156026848490940950560536095347389588431329861177709034796644845203013643178514863093606499754981321080017396700548017854448945534630583361286896998965526837890910207017297506118254162284987319070131930265407997836460904032148417152354372967449388718954332453135094412673036700426383608299408634292357998414799851757695960637893552227604728676211164436628735522756022485645448296805117839400928913941946604053743457393384638542914218543597033543515041197961211366294284802146896562532159849584039282078469435811520145493391034344110471485842634984832386836131397115341779088633555048807886189315043165604935855831015667543000195868195883323523127245241229446486548094271722434369278525193171672712216860733227292473139028403204853483498677213617325684795836012571051470234958228291651281296528811816721900303875879251111682414138659037164121414120458109741325363982328375608536699648067594151617995031162533805424742123631088812874205613114311032470814577987728852484692572039330774215241620877922207690517452888944040923680169658076758846179077958815435506024183538012990580259217723243583173614453099554877899735688401265791868811275540928636802876955990557830284883742620893613676272634374295360809736964365387274950012572402446734295503008728622145493990118106632878847365906316448178523091706890597924630879056926261866993604078351648773864238705397254320898146260194056297246311600287781907975856718879938200879219420715787605758862677617332292961012452562849880493890535303564296595324208565021765598859068584745772829606043335626034330903476113565908521284306782668165394454179656095730131709257424996223880634665562253685114389980899141938904623431739307152632470781865619897453072304606057392342812303464514376744675566951075991698977091642277522419015344450603049838094526489616271964161488051416211858395991527593006965664582109075639521520164791198371848304463274501326111866763199235413412359574777359663847184571768088889832167365363291897418039485945442462306672283868071257357587278383043877535025555280739364587474207452140458478571256838787144497285531082951684698804040906043494724283034846504053172948360138699132183601857904364886835821135895431840956188235961783546958827921053004062778056664740296633405140635734401723635468677122601371462618886366878019785820491917698705052653190540066245908648439430659276415877676439410184255268693415068637701716598198231525089359549592167158384469548031846911629707239284344825517932373198189494425272847885911449194946325680181640193805557367338763747812325997942410583220341833237018251057415294216168443684420942017667196052046731178739427623146896794047079960871888413119712520720936922263793161728868251134470798215350091187829110245356406135867150829442747492410889739165162356555931884616281586686951731534588395230557949195766283951811159627040086554314995420169177332308113923770031553797300651839195106660975231297396038168789708732305705395060103562195031999297765045738636176276634895161349092754790004681590586019971213602144201161103731498241158173171234093677796237451851530339342924738346634633216417190510116657279382603631094184197682445525010487813985194601392647877846018238621805985119803821289158474802305408027562042214933260512771640653592744934628034063251891480859729738742279399745135644938815412770483804307061269117402829440761527784982012156517438848165910868154913629772621343550895465052935612751402482996242184732716608161842548420864932974766564009042477867530248735432727465379508940640053936553886690612192895291464944521336786402361716333581196280411356584632366450046539379415832347721332497723014052470408632419151690496608558522762750172128139793080484164074305253231667575316072897039279223697076963066045124626333535017134659964043396688123535984450194349862110056235594768026906102126015883944784744454648748282274294389228777669930061909071099721236124045545563763815134818445683446527912620969384488941362109731677556506714966459434595075987774429751150659829918063500228626625670778079923074513137079477078930499605449808739860496893545885897810319790183397790661511931375980095376853880291975982947309225669893086342032243609132266076445213309906579050708753208751455980005257020929588174850705567960312837118308068791217093266530222150064158232685443299372900612452675481783536094203459765299456109101782622102435740158198178908129451966643189909594824009765134166287977584694787521019409221808136125435538128093735006852024764829797826940706984743460942341613303049928514405032201273463242308628645989265314708494338379835733535773588737404379740309455097534758838862776014521045984135195416261241446332925173674098761324473079654147707371225857041811000876135605659799294424765543830287886445445325219825253419900779798686983846532024581684262395156679386218964929702147566835116829342061535320953356429925079220514023354852590761102318516702833977102063216124007659555560940122668298768891155836351372534374065484199897792468886043035597388706142682353470857968440801394522922032565725831923983327437126209748250079383540580290804127696589128122700301202578261766705171682403926006361061881891059119622093965847720385321972068476905600792347237710815508061891157392312323101434212183092122020459867583509030778740500983296474246909599896501728637349036050585044855670700252164697508677380199710304457090635760139910710014445607837093975741279381431696719179227854723900930620658425957715816931243717570041868981632634858160134955473762282734202513657865925660178810970579517466859684199370721411418291242846606787392994264151026815507864929029699864920829089184079685640091813235743978138787446220497520388213305466996702891906168514133869457375542773069343390290648769862481137324458335077051330710579873546457309039578446050809603160655678363647195561325813216078436873781023081409910756776872089547855932164725498746214247167925580397117117054798434437907671053589759954841232271688838820550942849483117078366802977154914652594486629976251532318502717854308150931879962375507245207621613359327754680449804529712603858679253230549178093470980434595672757109840322131569341114161742886832345844715880603692669671133127284682995351265487132325310314670295399938961365331222300058044457837812561110006971782815714540928263448465097029133818789342790570760329168894819859991517005010786394105761749945628864064091467406073525956362553676305414310203754490736714711837603850569958926374404293877805236512925982965374635489389564945807161290618627290623688547752283941538923566828867672712213675590727154237323832482450637276750353447396468503034403899899805064532182566496141003541501725166207759808288268286039731634502297174377437120951209960099699434067399837566864323492851121514101997366811020419343028909660599881944518288617890110964145846539364221794933229613670745480552719213891906009580697802820645550365004197518294422368896399068687515059161819527040408400263603078486847528671508839674841525647448344053468639253756745634271336015043225230942797106609535480357532167726210161055782419585912106358153756944784433148305451609921126177240901062900697702242307580438689791662562795630645299502088255410967327364296745259759394297033956220245855494793535264697804132660997251051281584182753435831132332271359613056745301097645763808512888205535122748317228082874007348336293221322570654116103998158899740316851362410017375853964448844265554855596837410127946490051319141657988431049891471391448968213403569809850474585667713768995708233631451659091426535130140043175977487515310679534174589022075948795517805643815201771511654998402458940781948890242633942042723892883828322737872798251390295207185927649160799420810240566397573026484940540607438574882117079214903777045286395908486871282120748038957564901373190535822802641570220972366212861197153646721083710392374397436586858273787286651498259297146239574403983821791308157840079957229850599780845537611401474512422768848810884610089928061751940552340250553365813651687698388993227705853254469221674198929374856918253705784995922950681220098069324600388960614953958815684022304466213128442495108436345727073250351622492038368351747463152325956978117154259064441513166927722261843143721090955017065399050448483260446021796786562185683227996401215212324883706192841720323377030084928877847827572875259124320329004957150770849789339355596220734346298475746563392486232903684051516986972897627315222083249060227089540613499604010124852570769447594480567487452658290317316737496875676370651459007287159215183396920062315599212584854359743107468483371956501986278598795653705346574886239512980176089427331932969006168564396915616662488060696822542162275195912878819134753324236881724678373220093683143732397469758909662510238318377187556444426647471320128673447167542614125837783273679559232005313099464625099688736377135054087129014668310526571668769800104803020190693863285160892203384063397811271703934533077079480752872171039622707980011974258761293359584699305575247354893343259820141956588389937859079192471690262985155597375997420743508453015068459163334864725918289350045030861076952497916941150718610888943353003078913720951375337711984120180241544857475685974171610747407531615575324478032907641894272763652056910228668224688073490440625428645244098500519696967651075067671705666454174848393371356335010680760967619046317742470198991823189853627894654526712387986339294921817996254863060123282191884737565884882394896921252851588702220582636328601955581767600031262005378263199364802969416019991854368080830582113228853969448795835390759559307909894178077419699212594502376770465799472250899392791689036318262042829938119342178914008394282760116556996354197067373186317537168299145595517405465287906000443083243305876106634629822380165250463194735577088741195556703791071105379457741584967391348562538557430436561367757764723357812545796565275571205444759742745156410588156754577357355115490106729167977811023242608716263819989082565851632635457145695954346300463048101633991978005847269133640511906161747290191200128139820788779085147774163749321149348226288011529602751855329688453338079999608350343983157501982815829058553642352165472077294710825860242404754856855743409351476677876253710117072632433163716339737793449065107349778146055654157897940013271847721264170310295998291600498565579377074351789409364701652215792719144780859762456671012494389007636590337697663662209805007374234444570583995567169277746017393794795340083919417437336120096472294084701769955595909836489909889629873433002270498042878064826416457331802814356552961123147430390662746153743396253299581570662777980121939398927455758845580164952159356306019212057116911324444870010949026092732800666281055181283718918436279423965358426877274220016115176337492550243839530252264204044222329890493380892552646352639347363611684572272010321821950754770094629249304819593492209831778480535531565993797846919361844141037548214153714679577323111549971445656686898013013306402657874078510439661029865144991540707431649711213424642460433414084447899768837461280138546395721784213063116722030788557965862735166289798488572825757027178472726592708783462348498047758369667762028702843302610743287649767236534118575905782921105404133624198531193636841117218599562000618496810123787774003539665165916968250163351419424538845030105267420399491185136404321185686523660237426877844014095548794754524525472243768417650235544766161814178580374048580900825161051147922706294675206137425136978463416921035033572899499780055567473763725075746034936871005967541598730523066844776462773415885826095138541684142975246044606763735230510338932430625430119147210343872608596016364939376690862308702558582014714844021073642428894587873345539727346648610449839277393321883018250432813029116522811851658875219503868928360803861298895786772020408907019366918354581429056365168358791075818730330448681676524760843552723883841968450227522592903903113258756145588461692541137589799971248906772042835434699525790192454666440975465605573612244295726929918666230498840287053459839554197433611375696075000619042991802796161785682979781940764940854193857171916887654918938230779448361386215822502246288777426409603478577896956947193321482103643867019356105686144619900636449374949622856107205883681135588591340444869952630543577017058844775816986832745531602777666708614400993290228532320004027043272721649709451687693307159098189876277976644048435879948160144348354564157707040624145635981747043391619243807209880139733499178234146612165035148532937511068644788097579200016810995506610477920687244947175754152181697631858053507875411077355213023103760039514805073490573950225377490211449682423622482153126519928812070213414412581355309254334965455422333003067752220823985582208125372035556687049473684336484264114525895342136663545829121908904676140952977613894694636500506974368802591455674790845143654806791151129778945459880268585204272479534339221732930445689231858800381020115884817064355857741900627951874315588419886742866310906353374341245673306014983010225549134183689981185390251833841992019623229578754467843737178764809697523405425194599191586823406775755331062353413267285356763002811116085683419150039064520351452058325406339007256831933216014839848255455540152686398586683707136847942618741496876401047533837456161366060666258613468728194044652899922587060170425155207562984510592306839934559345382533303449918300655883446771265179010624784028149015378011599997125320929667300070185749617277804081226602121491482475997179572864399175681054739771966162191196622283674029376067760335235579579757151874197134513142593722576780037868547790647938212163345797958574625868597367831449954231563943184143058330605076938854213468820622222586430546709601720730144521154083283816925812141667514129651089455774577132180503751251041260697090072503641922774050057999324240758774777478619087775056059584451668877181411315261851750861360162825327921504763162502023039402446709291503524327645838178056767108323039312179367686625900288448763209888480741329640094360881422831659315352250862724570881807932251539289770108523289189976138543958335679779191005260597649884684279409919010352561085403712094657146017518291375423995603096564599655168447538158949104949801287982765955608115823555638086223435261501838317237294919503580332790877193169905101580572244412776421268333690205719425186568828340722380630325551962815987239875691911102856371927475832658103801123138293909168283987649406982667725711536495666040375202335306034406881679159306861988844327792449438916782926785798171153743572983300295853721021889145482467394768721109080998226122880250858499613992110832421240264294997068462410211597239966530876944118584656884938406332641757752902344280826922478693706299779837542172311983735996920767061092572842710946732648066186244244129160830933164087361228875584975821944787452953741696379092664687747987655970094184580931262396214897346938599582407991147078010398917492003571231604217682842741216561846718947328787461699802847156990046813555707258367155519246388937613253506945214328161161665192386519612108844417251388522558688014543852185986182126602687008923218955946637117446876469093168283736800627566835422094546419836842093176789245643310252624042401737393761408316978932813165724393558287100442016406668472815966727197692729309302326504757537564479222641040740391875721007338986591546198436851698830696436629860730244142377975271886852592563631772218124035596419411880380722990673044463790691761878963813442504012292530255798816768724293837081882033719020106707840159490619663174302562688937674927403002507962519298441753598402074172759099263776629817548179885544781617609593201886726890300525863865847744465870145228815107227832648649330039186422522401171122272968911133475148825489886385098100011967983339662501692900596369641816556857496801331649790077957012662457811831016804113600537925409385469934576576307888250635929485325711039252468767188506475958294839723052671704431700797113997043727799672553181469495521708837869094913974199816431453901863833483384962339135528533536443927425313883756783306648830857750215620236654361709986480574075722790338655210667412672902519109522172422875148338155127337962458171615281977462997541829442026159263854999945253324164132073964414839165154123589650225221792152985596761265923657006223084274679511172245513329832084698986093664512176709629794057946824705790898579849857266114617594252148783792187620602043890149369421459637304033777046794792494249701108807962822785577681461712283216162395919559735078842359635606068818878605435184378401780771420535317125299213278785853788104675773531875849374335074000920200464297831716421793353248988865904202937728072777333735905288393187514791161318884405206217882772622305183217752592918164018797642787145383748022677055565145029117007038462541340656788132570577818441445027684181089108763424863169092754581099807290562490902134715439297573433840795331395590914670637295040582701674540640664270592662630781610406589623310561930329155779104761611976917217519776627020850511684837299932399969584568053333523019460194427800385781447248289178032713264868007947894079688617168398888735885883579783775483652626482444345376582528086178829900891700431122440673324471998464209954200638845119411493278413140951527970633465919489781346318461373325939333955004592607245679718197212738542137183773210402410572619240766153866082377586152194795117842053577432601715129296231158013181673181135767931495576784672544181911427419828178954008230332734316500980982097269399813757828203152157628525712540800181714061605622564666975493421672851442982652471670642692013444677948884179807008794841818593514415262433056424351266895275655982397370125170168485586266743519462692628473819857170450111753228363460873377128638328786739293886478764214433014124343029249368546714440550559100303782488208994522092300102975443929296742234947189023080656929932051969635315281051713518360163525947979706778627948643592687291311721963576805488672888305284875513090852718932177814976711039060393924568311846496959620092524430237371675971669145794227816109983504024129710884555637580326477808288463469354689797509924084426070514661521161782027427896427090876987449043516377494109214671874250431996005962219583026711362245087544054590805528229617463581150497525964655202527168326323545143539082231662140722452490561234383375943472308306696197517604955784285820050819396638392213574125537333980182809408330070804670539625398556225392491582978997216646904586671373226891700731685516066305695127133032465274620434948776715016415649433322405659481771389276376430954137207682406029580500223307005374260401167261740318489794204803992649292141414670822419602443316638172970629946816657750805885016943843949766367728520435731910946911161332484565885823097218925151665366690066697629841963601501023295848425668782483347616090168925580123864838740376333040146275836628594655524899977651033184705364562131416651063143008083655553269324890828578004298422009096374611182094873976707301375335420618441288643981083200575530789193762404220632094151583278753527123404783095169094568503331098140961984067803912551451430234130547082416398186017207207386615060625687946381474475083276453306820154048578011162088051678625177511052545580643741228353820155669802216735218206802502105606268729747343393300955324320000620610841885507170423919882424246219689392183941912484278190943382267124773121285911990917459905168147520003515321160958261171631017873860570466370496309210533499785520171042799211298647187914627163981535873340275448265915556148444978319215748366314864552022973669026631109073385397191300069766032368093582160038675864000509935707812431409159134525246050054528804577956773786398407798632106314095218894178421739603101402246820812340498692543269460432476436669122435795226173806583635420123788631038348857774434609519117668998932677916583182897101021295592269707292290429142824225095894412280355055722965810113664114075185565303100873103865250867298870282946985510891667871503354893384992252629806168487155179994613315375327748645991354495965925295113676317164770920607896924222269315945371073382853954593329580756752895470628837974701611779418061987756698649161277203141396474623927681836011547390817679115346887258999531943347118205507155331929096190028103950900138554586850771233073326672608286005107297882631812592794919646274054899331572381963915972341718284552740164664348096047845227232657002695496266261087824999737622515316106436117466902849740186577100723817438036587981716129144918967837711502176555908197845281864209928402760473679969227866532015836854964473164878162694504720667567423262789454996788661549299489560584061187146029492960959238777544825810966516599253444810615873955351213194618223037837290495885188795498660943950750539197636634582465369127435876660274983213205517658210727683882924486372406916035155980107998450274708908962056111437758612419310549535272689531762303350812342202155811009133224289258677780318633355657321110807899874536003403726393418923583834890467468186783790772402496808109147464367314085541648661171238993646684394894016736243604916980899558567188454736077904054114828186819193970941863402261249527856209888811140267835343109014651313325122298962090451559061216592021199016994354396717629693064329534551859691418145980534896984476904957157746447384889975297944636486130324979388931627359839085833214153502138099616966654542742810104429108557366886667415554439411010199909539454667905209802538557119006990881599421162051907893763509470094004662191077898499354205994941258209640224515429466615079993765297865691548575526000537064353928623988824033520234546597696330053536407005369222899742946130439364480014858599208920530877460312561081811112984818565936534942377493364559653695120916196830669042099314220607732305865386596229355512830040566946777257553033041492952468306587830337219173479329792642236906302014776836861086760100510864014494528165799881486592396583609937170271963496369338706339351372131710718592058470258712898575390553551618134208208992156085392531529496124426181674707793664421152848971860550177010036600062503636764508071593127589519764601525744566707975228115153119648558528377795684963874640493595041098306030779133436324318910871795054577290241115198619022526445466210552747975765766095833006649291047246288716545950491073573698324797541861982076569966174059121493291052062491204926815928442081885625242891244659034795612906404537421145704085706472094930087985506416681562128095782210949412209869468175150906846949799620326968602745216357860040489758449164022797394500828779062915853126208487666777857520944270025500439212536233709236749026423586060960768960671258081009749777814552301630735834176987595364265540713918510800361160227232557640719557960269303814251328975455491501681240538711815008948152631304575496998310943624745457323832306722051382512012740248639826961460130375538946531651817688694904785388819302729167181371141158413019019046381096091688985086404482318739702488906009427686198516531018303733634365281179192172919468055941025890295883947167095309653809799010985895514256971917316741611223475786363563526121864930583491840325824207353663352954318464086823059300315242980555801987188806822369861258694252902815965593690995722081397911166734666336075799765564402173479944317668465035626759298493269375304635552403955566743391248796818070090123968512986909108986788259227622871872663298674673743598344200593471492186486342472850397685660286597068531428749536223387615673738912794438350226358823196212733212468359499587070286116643271496936308538450255490128196808504112225181339935952332105445134065718700902441113700015109951203676159985825861644531257538999925712868027262598134443997677387851233406832022258292072944324043799129439337585460423682484558416450123818655430769742755927529907450979967933004219880504233998675054739682473767386634936166952836120953166915606107186612594810334856515877285136280857294713166435590366629372523693028603032568279590860567804556592679086201241489320204009260990445241313020499223152946372249471695696742399934045915098944248571727475985844045104616124436434783606670905182642621781820570072403167371696746878626543990527168181926333288763863177088723248872885844352954614310980354542981922436639489926812735297445088313064893996282004328308542657836383613242254370853089535167250748498177092869678313025536483636766027810381002126223996737840349833276721808809586718292740169840163475851495345104231186055403322437002426919601074803835653987230102627711889050039046186805892401059540171451970390301439850606445899835431077011928966024239052477363848138505395228973683798783524004624988219434098386275657318005174307251220365743172280815252880116804847422312620318285957786561909733165279795973220975161948554718277275701109187288342967491672208845724442597056008804362436409664049987228926747511130956173494328790683896773467536823498584491725826631005659091724934569115775182812422295187924520509787082800830563737419687950752107072335990930278238772413115724829759030936686159240006298057004206576783530241516338050725528443245208960347647475986537751898595768868626166735217476361085710273758952507142192838158946020378019657807766680060848371682979701844379119264035833743461843281874456102515132457874592628453016178667117494025043921231065651540860397475056210499303591287739601431427389900187360785572618659890376715328265860762453069402480418983360272208089004054038457122321179588804759541516267536522146690878890777979937242957197409845696230779986924159422241581578334679431610684284061092806434731969050651362870391058682067310931699173074705991104091791196684485447401787310216513121833436734060388727701230157908901510400975069154389297809639418003261475697826958740852950012841111976079021725911429376761167141273216046714221994219429057814340299671358839025380479459443100773120809576883985101395137212715739982499459958207340454989584696238227868236670081164700378941935185047221829043041290016407165514843194245875049200464279970468528377752049418980118190752729529926999567515356747893889364449890217008708565347439353184675310763196101063668712020608683143868343703625884774083135901966506288228563438449535526809803880383450891037830696699413521325587283979609072360367409617237323859519629874757629617347994754755275849673738621984972415643442019735628306906955945578145270941900104834160525185097254074480192509845346353479715511432551589798311172222302321218974501051802436427686776646873266974591973173990444294979740411695040958959224504154313117437509968739086892685176140546895125483122335562711943552728047850076904231027765685294364821457512744659346057958599205085496914671199541895056306696972320681070301415683818950046432429713046306350704122988019598875129062536057352409180724178221129811175916953118749369831930822392935679747664689667865367044233328759357000923542792508957245190210380140626519977461722152724409157292950685148915008635223262888320863915554191249346830807986878391151298602638950591659461513498473711362535095055405660073089206532200019460505656350106647182215605357409910916056758693388917118499282600251324394381263444225753172060000322427661246704620270909297944998824473606515891774095261508797783051241589442576374865931811814056616341049157837386948568127826213192383577860053346684666990413860890920457683040698442351208456937253976350778835319412895876601280012406204253949746662022082660485200230476877296120944984273732565666776177934780294990497097819924506066473607638648277642086396692482069307251637438093726194018490240389534561517700398075093583923698743971491565634470206091603830494080269578925920030346474840550394992133570982121823541597239048431611623606944161586323590458980353439671711321421278760127235609716473939518033270677413999643668626410784747551339643988131015615325724874161984663809457979330606767485361204088728268291688266358060300100717888612411108440275852405644438208778305921900580002534802186121199562750555542558416370339556557713758977717569474431739436709643037795311227856955953094674315447439010410226163697319285695744051538741127431209188316082434303238897301562866788410358192813798436507730434879174651750829315235991215898074454345930137261674220715436887460892898309885675413805162502865921944455147254716417546833889642941315265260862941417965653013615259116700359242400591711943538751867192447250457476202171902165263562331565132849986224166827191332931792379575523728871163447728188425958315263623319578805379326787128663004223933026822876381842815640844327886330460063322341323778627039607308128820817200753212549411253717203945395026129739447685495319790832112526436618209448792728076027234373597165398542125920237914607432310037996319003709520749257897218822742412448735376690531603802118354482938279671133724750738774940842489862444243166684036210014010095375768761222365136961575813339507787510590883310104500579763023755351879655115687674558018009666010995272032384381143274433365656242483156886570446041033524217826745713833267074065134141127886677080097954967001551551314084745807913350465058402333669867498691063468412222146793852860196696916935005735255795465064423783138118027103006363314257571167429160646853701201578965793349540782438394810062520706571128114422597172825732881086427084952990484165404285456521648572432675130537388786828522562874360280788983346466074647719271441209738043862539616109247662497899982099346488972954999584567958731035514201136604226766203303702898300128649142264413634708302852938188000627112063536611781624767128572279213304881309461684404272899738020054920684141810630822331268518555220202619697113600017066410347806018643088756937038304688571900029493487926176036554236119788037571020443501293622973665125919944616390389793851900927355351702287345827646151140784660372233201781424079882241000895788094508808807702276469704378811206394332462698445874327925405432931051516607408027408021405740215733661017297408400280314942269021115871182224854892045087359981532021722894503872502095498798245124514949424114886268277897792371555889308788938175988416445756377278977340677428083592059838758280758102548091595788493304398185715327794098829271523704942328344526774292100778770699607676998593924915788541564670213805934642525571582607617185560561794256676242112336887268348163768503406402986672524020131405037617905643248864542941616250551860044196514620477145193016093191470334551284995837247912039471605064262049408656914572197957873503784488764062129884295201609196832049809967471086043894945979028483368639615657566168283827129184425931952957925222397484763012831066453345353888455221702527305408876272898750487214341965814641626006531949424789530911225709154072954682203501463853047545659975367354012724353114266507280633935657434690381760191817224785751241507739007391882299179249018314761603800224833592932413893722744607633749532040174431592058346658381672084721194391672832451050116779144402079936800174726519768327196087879083160195960487307449686627288739469933739390514053086272659604012402474867610810899563449121226021120211315734950437865553047931142370451704595472371572629023911718095547019427384235567642834661136753734261087339989455839441211092485480466453543475569500272390695598251113076622679632977170065274645333159240170150709802634935373482465522398472814760080221227901369633334216697052908846189389484526932166478787480174416690066844027193076630139000253887347591217206943725678862409420720012207983300798243496566375520723211380480881240400091156473340469593480569891568853644166430689890417985984712908753680117838311937879690407768979428555169188789500874421376701116332100592609189513188362899830179476622718701082340832022780892591187984064231205014513368993927523037027636451095316468164915165147415573371374884043097809575384623916276954861425093839265995672315312181599056343089971148857695900824379030989711175363916093979263005892538869471410164483483418844769551504167829712553431799921710896577280192565765679780132223058935074571978140319744387897767786928469453101949434130079476086958531678518576317870102654122235466168192718783199678751116187834190604627289097107902872756862111239796698419469885374021197963185422350112492735245259759405914629285003668911912200259891120965952044806387250827150505496840827090712797282003426761714735941568942930997839095016013932898677623632646189072399877477826100592876944395741106794114216990897644350022807965946312370446317030027584042250969799924540647713999987292561356316978353358730595311169177064613326176884736098163707910631905441124830194614112438465768965706448882310248960947774334752440355059569563330694740011728927880424350486611978906970437370094230084002636884112078024905353040879240177431396429644180279868480920435373901227732188817698926587385097211896685788576365772512032627009567211960353072145017356004730505396728388084866697794631057203846941363616920289041204619141636449547936246194279095679692034858005313688565131802938361287000157792621283180022660281933437576607910689305393288376251440052294493113571225687857894596945713365392793948744359013947703014761832513353486043780048588963487331336636553884863321338956023266816002882777534284004613791259660631653800470848372063013678712263870341019575117941354438491582495560584756606257905258811686455146229015195217065136174134305325088058642544993271560597285463256513075239727925150446636425410658938480432905402619212195729384646207253754746753144527923301356632979861791964556613705538481961705525058087560356730015018811783088217296950473517297239331944166145283470998650636211315806317013864478878802375798792695051974245445700812352479605375743653582582655813948166276688255578644321717253290653541446600913025305103765825206329259976148770152409211646116224520835324871191606536390914527162675890997888721941905805172768085666755669812774868295997640957558476644530962856986900404233312316638422147571903620617053457322053822168133271374377168663192250491077818992947664672603252552811671185694258864649490426233311006488793384070338735125588826658813400870212477402987782909200972938439679792228470869037285998537123711741767753524147290376900243302005840699834373592200385624922772310126205807272915752458542997450002834682081384532977769990739717588626831917313419281825430684470398463193278568772945687248482581553225614090064858103256389195129143423550756561538427037138238879478719487882950934979072918623683024723466826312148089582693096331664263603475451085529567333843158293057293511693063873493696869167788372559552261987085891734894260320787097565302297835649830958737511753443429844087296494131585701618582829526983178353097980688240756345955227246277494475541024947273823844061225296582643889144639549955474064968831873417074164471691030199859498407820089048026198115860216544385547101049486589287834282795072568749206901605610944416963607179630454150729690667983072244229970844801912485706058822251919769332232202797774625237422743599117983703335195384682499668934102480443536784685204610630498112571677497994264577273932494554889807396656793342107849379214585148376944360919827001234888081174311863547699185784204087029747098393281504123467952144133946155302787765183701890168375328710718587860484531734333868987245407300250294365969187379368264622462512929862054008882964798118986339541868992343828349445276055122143756390213882177919592748297344692389527475534474804888919472246789408597569610810307694952991301054219154318437131041555914338518239533320017599816753967609278560454375894207003581960393283110143326751560810916692121773759261681115803618856140175084774603006913622702493290957836580202940547564044476841337723380577532063899736974279097075684806816222064535827189556392417709417028409389917875261671524269449598206447165578071879576695557310055285120096637514754314121508600604652439640688710186493657859691160646372685881029585945005006982050420888231166739493497001321313407393738733979183848782394665879529407208919752500467071581288120117628649055961117254129679269152075403519213863211261515870194032258218955076251917573217653256708055018461561183390817748863538588879242053644686186121552343406634691612338272676088944990098393921389695078118720885759800209514371037366883565931304614635209414203335300231008949870122546797406096884344961152489911270609253228204940707782821745783951375710288241192860139170967580291931388135994991861613978466337354335695438979628707430256731196547341922344681619736523331162676281934803764207113728688931189248343551937230565891299805338513649138080247183012132087028530909844529660934463534683403729798400511513747799199973049342000908161605547950764507338605491253527508953195306930306225513844834794572562207822113719613337142383828076774688261304122970098851698226755095910549581001307901956492190773177962159751530632704417642025243953917164239581596405855219643004001784355031811656233088038232937240300762006289018381357745378853083527677304463346060608420587448461221228050502238722033275344243935060480150483452173265483087370894782207003390437489022852371394816679835992042877239284533121600281544225468532832917358773946734089493890264859039673496474919605340011085291435565049500567876841400798457983032336904256336030585312718122781597390847392616374842958265520702700277811697145646493820790714335835183043439188730770427096210604847448601961917908138117972556919991170385661772034880731597876248735730595118315755447831964797104127907386265148279377398425722173567021960134638900941229494616162677921238962424934330482341269305017851732721327272528315976522088431571322690848720784235556785323068103396315329376569401500318968201728338457151809967264355502024869541987146204453247860436559900650925582449899013324302283071786197478284996536312191545830498708068794851113382577001648615879583377130821022643491901011009967159291940283739667160018039536673719615507479553477188349993392970959537069295367512295983362417737893121944610855018154967328388388098326732787753885608309756507508591587799452501577477959479139683792135605676792181093350746332220646548888840664255438146974943129781701461134533385744327978525077272631582847088809406473191698020615270597642369289256999660940819331520598293198795305917311006160446256888183582272072810716303678566823511720943159715299925873850907231353637455875888071152095559246717495684943157823642246460425174298493119353042824056387757122391542467099763272199834478980316985062748322821599782618089166559307206064756081958335276008901683960872038914375544954783924590876574379852322619811688719205898704879993120107521974923251458257535382507586580901110631870362126956337968293980254330802838163615060025872850812580693131828888584922758840094788385579086465097409063464239961218749718187215037622428120067237053707751942828981191063126571157829022126027937570761264295350926489726474343067630639944295996258095786152225713683375500246844883682414293741034292768225823662504203150562663996334013412584819131879759427060563654713583071537133710571171552186406815087993921896253295152018954361138957342405138861973646834839435521332401418589953486566794196367035260719955077803448587520328536676563871397982455446557169512136861428279249078597395107116007009005429283333666968282338060045280206690919163613675522736152029203789920691151740060015656474181835471350187757476291612802849111587035697964484130358740685553789963806966701390685881825150926344783578818544448845162389210349366678922166901570109083722714867184332428217365002572481013410171545794273066948697449560991411111085945768973948054597654887432673430610372552950951077213256296611082436640244306054452366392464274761360745983623578220461866070484684590498817205947355373158375038988253990502090122570155195029306659019233063406631218446117296103837497700938186092138657145817228925921399731325891229385216430841383214811440698848380324601494447860702246771290799730667740787779142649944601335943214131290094786125227749463057939371223887512291342561440397685870056609624944370865688802568848456139882044372905082870517663055601671312480533792066431316516446768741279191711048895418617264194193444529684246603189853104501482706205184881271714978976797772516936874539613159389930605083311675311932069963467034535659092560254481236560898828481489838919438254947855043873927980477775820938389801902604623465379260279396784006859187244868501404410517207621676288952920102457811856063478539885718937159257590507931828075310378127234645488481187102640028278789527253421428919089394590744984235515497839271724868523071669951853733274894655080683818304355144432557149051824297831168447493919656101693815401827820630999682012653130772893471401469017350899027533645460528783656290387980957509641119388811916515381395660151895010581215615235951951910067420722715823451186439217483549276453859305105724890051913119023921353230370998238994656479672736662851261652324796834573400260012099692929614617169116641866316038140393010104868785338585904841194752304294720714034357522781022937347422752542240430454400139799839470180505685704041803824203713069135263760428609791396710627179494199254831186938466683812380340593831896105042958290121987502974054087360926557430852366700961233689166793491144945228721010315593565211692962571885081809183806989694887104670793119318541286858797291210065773107490587889279518644729008381108419092583281521037306850367424948002581027161377115160166805185954906030686348790319226084811498249711679907571910739105144236197145743703462104459745716356748512440581416764845252754189118673620007551811207502438752258723513679395132447184611517679589488813131635170348084461563571980285665315429891405919650405928679768292167484752560092564972676130619093820040352565644976421571839316104911414663113072397593848519765834288563113460245206240600609152678167669792003248328600043810856392888697582276058434752032189774365129878824107086669808094577119713924291544168740430364521525062808661031555791643749876018546312018000613836170686860825999753753725773320194955288629187737660160233082159293782028237189174953784239245845179982987929151691412911726208121322348313216799584149497420396902112801297365493757198370968896712901342978082005886317710180715387855766762135075689083418723658370204062391395500553311073531504211564516486841329192803481173294885963056030181961817746245399216247846191665945864470577274289698799184779486192419519206442935771118510531811362466197927113136222343967612628249220081684253481258950568240877537048621153370148471828492265453992642013038217209863285530901897828188945638282608251008769979650556064606958300481370958519538441132832582529449070540274930633250320100085540604238517410459501153662425734378255522321802072384957571228459614433307118607682526678656261017165877389719083657670771927218578092765041282529756482533592185206057723686300922676385338672341444707824324367147816258684634411646895168946862088736689138063315963577117710710941626890543719426313899902235123267905285494300146866312956480688943255511622785810221475493188185051997867793345089757998287309558220652227801073644065103766607897259713971343888905728170961381327318110530611412783122644273921443702210512660048076923336483475133490108551311446952352468268748567524652555100767231278462670186698595785092362771861311253597437435834115629632046912493730461585833626891599883586940890466019495498175643645036787149615565636216662823088689624790878815851993208435046019283855337407534369262229225143565251325651614747748583967380027087228912813588012600540850965879427017674764480378381103305445759427256409029278654397612079800623052075842305136958027920116028239425714320458597459920268832417434646089359600080803424455993505125060285552685299857798969122630780607578337715511526607667843332866040959201082669797193026106575989903912295280792410210521703001266195558156445508719083269632948636137793420507987397373252581884837368068273922094292129097884845007803315159022506645762802408559078481743504889354227480381893355381003890423716908067919159777041834302913258989513309737649777508459914926756621156156684363673747844919077830303222639767717989867948660675554946408309557266226437578952040669693197300949797744418101624827518078210488328836192704169581463602865364011313066884469577153120678641626667546866462250228009730144608555814129950330113473378622810158456057434125164980122530189488350620674152540559756586325624991504478276603451557804499742798351522405121423528922355677803558042390695480635561137095950684661423070402978543632933076940786769712911171938224620219870372122309183142600486994342116393646680817117180162491813591973175448066824480618270794149462080847433524157188984731145180381621172193531336087731279123721420461918696563389588490048493233462642836613159772347922431745979897535881901611606224864962752441827285230383703109343415138900552898142146959602244336382090052575408020863895724114971113704896417149432706650185961884088629268959522157042024938187893136169678721575691719941547996436856875829876797241127854525395335814237298280102239247842701582210379870436190975197645962130859241656000028555158857248173910890261557264882838323984556675416138777739061176165070044972067225553230323712465772744823706524271095963107494527482864071165643946834311992391281360888258456438778713135125681649044296481256350394294828470178869945502520791588300486321337043638019019598664318977747145044679182754871270367366115385681453491706264285013370689665321619641885835101899202098729608845584644618710535982449925886371447214436061307695266678476111939387279102878290782599823368773559467818761957752690810866619278820126476573977044671972250157545339330660697060406313460338666529536508882307986069337098283571272849169752363817403912425582439252969076038591037325697631920955069262220120317852217013598484825017985069923631748853296814886749154320729544286761992582562763645794757605441372771920455457870490741260355149253204347586661209429245942437356652523773296959686869935316907815371692929797939273535363890322664559882499653356209215455594820091904364519123735877055655413508456491165585506470184050851040356590479426709164448015585120688975689509224418706910379152044669070356293093286116658763369420802646142022119302757217118979268238287323814502560293454274859675712066908136950870426791402342263216561378377183570589033026576770085983380141608504314990929836761554198139412160388934865369999887687880313186217970585115401702724438528489121140232933572235574514689400853930527230664526875186666359810273235467445308009675553516783228595590359823415820791491954644813238893549263050151862502317885288117728387439281186848836966592009109083593625158666064653649962796532917890221162434187867164775369778721015531127874499501758762188538542637963746336655227656350937465880386000611441660618339472367108014170496227977684783370333939221247940891488692058624650271667440438825431814584502672461863321398782381239798004853065819123395041193050192954095588259804768244945721651933202005426657322295344583037333468207155641793456079702565322878219669792007646983742445165500733584721438581731526528672353338731983088963471663172355119863076268638434577169944693739673036427644898721267261746719929529772873360544522700922802632167474626315538184478177022222833346043419553439446285689125691560719211853731515111893512785426779527359406626629988981240342430722641754653942711031558579858720937344833663502120505616719145221209502694370908287510199902510721462102099463225967442209531627581805010716094291778367963842640950140568803580622068599460181675194365749808715300867823532646377172983102382865155295772938934904852646972107689929570125895415875054790596595120640678400034463874930119000679026473854280182903890330757531261845079789290975280410050731384847651901523048049228593689052708094819258786172510665151559067108585441387922096706641201027408519365722993316868614365365110835738203928901639222082328434661140795934414739157326093277451253540662571035466365881947013234155195973415327771340925030243747311695090948385523599333650170279140743233468164379307066581749371065142456992191768856610302993625525339629277997063703063698883259878508844373051548867718685598511537593817083554371585821409083544869110436998108888125842747865450768120934252400030560827365515898648255181513658394837029722151298451372220930468188084494172630408106249249815155441707101085013088295525198223242188322058218089306042195238414314113992306735142818650585071233386941548016619174354545182793078148741460423126690293530568793549438637779963747024974923857092608529307781817733221994084827600666642870136681022375002271468892954374249796288198810970834824790441311393414600330043031623471038724065373447342640015803945197462828479856077623996227388769716983977025881711540849029784059761514555004594778765586952509780152139584912086863695298202961464857645313678754736010567399447751009973691237066324250364102278320807702920096619947933047100488446806911610660275213908455244746180600829205083385107328132574122800594459733131275094058825992958943964537644978759001323193639372236327790513159591414784738553583625332724184600127360402116459514708902703161129734782438840005805197850349903230627937609787100968109966991183920132758781256013905804821182630869317972789525529032298793471359169972746258932419164598260617516388047765387862418132277489911147812215541218895668828033688418491797780583643644976284793868631048309802721019268518474534080844570546173904755903966423907233710427883697188678590048690556926627116195384414050945325644899751377751032164239641427844158484197466799654714216679561808496051036549979730018695218209958548950931230917454875230840644793986268599012377417015790691258586214866854070455959726026648094866912726418013326181782744693446627887969697195975476960362857498431210163899663059832583475796659900615448978465312047146359151323240367422771196658198069416267772734659940775680340246162285722540820746295360536902705067291081832460512276840688687566517753524036816804123413473136904129473392714710900892503764119109396913275495645151060649847545601087506009965004959357964734483963437618712523214002425000831733353311633468345468922208155740433086002701447953575764592254105678247817982333242510356030731432130224426002233171615487581852417158123985557908741809927862253285640173388728464382112976534535139285784196989039375633002565742591006203543628465535684711607260651869927037981267408421501362981080249967561753270518241693993155650051528968634349796915275067824820295885188612382214332443996574196299554270030644991114606122437463182470954274278131984554136008694465341461087835037147683269430073523499327881549639013491229724700349315290256443099129855122915104339044308695045106586036356709770708840638228479499793580033470454299783550593479024802466581920399953664874283205548777238299444003305265576066681577824822687330388779481706486115378416032495196390933113296541691730562751990848890036594064893414649204590742072334063154494275226480059034537297662145267173068338162055067881449163757157696485455643749595139366134225242013989689184230968169068113741949562303819277755560790136531927148318405942548458486467062880183222537783247908135960087584678890092801483736230406565378171123852613370224109083642294127961314447972204463210017766866904348434640404931602954091767819249291139890488685263934052466658793887185887148479050954315493719895115334493318347498460144461110511603279003304819114176000339982495966864508228965081184176457352363379269841950420181502956088197739564384943836679062002779586449426427799293426450809964520985074003573787056020217700910163832366302134469931496591463913907807325077400563016129045854058565256105871578521613213051983922030000543123438552028251472910700871560420909331887649947706917931185332925317381145833029318859004646989083997025620108715271847137568982062003696592672612494822749647695857981668539756884899760951173588903991662780918783967411855389470111991589011434394372700801136528467351308787059111150754489751374239326815891796996211124617008429009106917556174004829734623989759177086840265530707775902514464217782644068907819978023114486878506042764611852607052272437092209191175947862052197205066169648125847960460772320104494483402090442298781299619119136067204468493635692368038825282017255453172510763963507408962637598864409382590513151629156800139921279819274469402979539234450505195818166836481570393668586647403379009848182323249228652017062039474522456936566138919881140486035622396921707893290715265408027291815486833816013672739295540161086901661922584944801555498313538475442922986200904113361482735865247509208945517404400563432733253635037338846844586344238820043288673216090893616151179578984794498610502750200484100487608230956006274326066736060370254294947096530444464715379919679570108506708388766506558146883791648078984901572766943503084059550276151661486365967771084343213431495097178189171643406495827611141482152423413350673830856228336751321166338130120557168226425881988250458055194697576028868895475100891938483034127116194966459094648600161120224443206932483801318495901420020887063378770592720701679792418715721516780864066509886960170612348914547062987531095763306682465592006580127842262833622998193389276754597576365613408853627321423381071529093955275864200220301178988647506884828746239205032498852129200390936835296752603973372422102885193470404690647511786862462774532761340899062824667879840077197929359654147116257970646933685943873226473546280219840858924535375644362437521922652154821035825223755461594182113803112588850182465816086155127358605634388881036219736909988195720830076748510722065258027616979882283371876727126968193021500220238879840754113287415918842090647786006357910743145407143194611173104375345054112187761584134550543148632414643709708174104599655773530523764793197240144388716751714517420381145272972912862271849748584387147009068014780450603883780380806901577888202239497849305023743468135713633841797150267145264465893035558913583893899011855900025693378368359776877380729472046023434372693566138274227914660636640957311462142371079929701603303536673356716983268467728223559059010138966997898814489225423687285023932266270598984034065349971781713601859890923744609478560383273649069091742244719743156361848988793309125018561330539541426549897638439997851630094589363162357486555439128876756868680598382279843480075651429991767282403098543799183650844409144770781978909019185354494172756794866720324973936327139438714441102976696053716612356581781615495708811734728361784700542776031351573223202792456442276175391812187050306996987808776249846814150004817594327022599060627238687605415977848086731831913395074028145398037695034848660583295224080891663530260680195052528439627163413513844844111536046186595491301682770914788286965131582002346649283505698088080119841843884859474569919639593794326552929524097491954631602607213964173862795465606657654241942498201194392615405922311025739106763795012192115298867785543778211116688801790179630130737469614555027113884018132668691154782190344191252752053925921495663397387674148200002723803799330385611550404682498957978968954134616176772587350799709665479276382142357959333702511880287534606219602692534800248239326616311659560688700717273118322630991739146644490275747918597714523144953423555381209482856715050926228445247447376314749624898281473117488622458570871785261448544528713291161589639269655967000659235708989067706245699803807593306457527095004249543926814266654931330756673840292165278276137536418872759170775920380644659261833805940960768766414216347168530425112740919778165414165455970733701608089794037636638031489920782136639190063260103224680010970231664695268107307874331637778196478497844659277316287067622649395495660266236761783549255204397327781275864001979740729706869748788512135351486097998386667539829058019637702677191622239958307945953685223938431973167036469630791736464743107303171562682514809183513878691234248019212326236940676728946154025536836830473687581850942583971693996729253840101101767962301747921151454937069606664799755498676702080951678478891131875432366539504119399929770628383305979205759697047939036168388428146693996837728945284034470761362263161145851948378581858295909190952433518603274583438191600104203495765614794978674230782033109070330814020983634270828320597737248692772421158512476202133740238898322595714674939830824711934946138788036578275383226910901076343474436673018650519389950571155169888345998694427617826601609386222225532458080501225471953812155173768917235085489036971916610808066986770252320691114236186666224176969677545243251822499544529876970664657728504162982428722800531741309623848844967003628447571340878206965753609902156881495960051247898088928222344715752638463377336584634394711402087725270486473240305922251207571447959583108856115311222097836834645820145970767750038917230427926557364363182123853652657057991684315944410672984668246130692425836585159804467182301393449801552043335722234079731548677573763970755324664696165776701326291985279352370999693086239034923827320690694374147508474759432820407021865742316342898752729410640503528259425178315153959919198943320887278643420908757872556291749419017264833027216185119378774011726117808202915710665445340672705347560845377422558301015746036562727764454806037413775787146837548311884583142151136794159695583155045777351669439105939848715043522859994656272827866999295570389208901131579860829738161724019939138509652907085565041497580385442484119589743585580877132279099606568394344322670533001445322241145727102316471871296292336310690555685378245904608502334040878018678927038861483471633807042359571536780610414878174655068399847104168980500935342367438278824031922490285869134125461394611462066289954909139029849976738237993897274113366766760867604928222501311246066734203347707490200390344848385547187956561248541697136272831898374659796713567111865999022000156016143467457124777833637621822703767431914171571225229096072517854046462746745807818032773114685409168898412269684634676474505004812174181642121310682790565799380741907704181315161570742562209216637068652121794299554557411649281468854120724412488307196836361994643717778009223081137746774160991766249975179863967417570729374485783138755822448665056596195052378372062827757596875008796194721542050293190248121075037138118453145241430607368238996267917834209206219191245312054756099442260269772113420917519591282642575871852293219937405772739850887473115779396281940097843864559930032233457625837235686588285700805339072561524858065097013764950285504352412547361001049141786528252826155479665892571173449980628618332168580833527638948239747710675240847355156842598447642573954950483582998521796507236367559621615238660775458002383053526872527535078716294501662678764059382696017539852684526407988604324086976092320693393412156370489029259703969393379191922152297885348286433263668158267156384094735381600176415815842748071376286378028404964189894158331789512118910796830348101053684413164323765199811066346604526413595549574621379403302377176318189574500154465662316736072532887258933130014162337898787658023939717025518492147474234974519707548451422129239301136098475969760568732381861364671358105536151127828329397527897308521814789961543335000471404472060381962649347605674970494373475848675947081861488191736773573338154604499839730076687694600249633382369626027431752914506628722029837342711961310219383873475717180260266872232859367244671053241678121712124474841880247455376886142924281318986596470665350368363824369169167877195044139358001271089463909404839695494113090952934067096608640984270628248386684734420343842735797045033585284483346438163293549357509082515536845892366270704725687387705786654126815689258481618808894251679922737746790454034985430527662232438560282805309153265489721841441377614427514584702004066554843993620660289117059451102657414675359997056594946458122408515756756244542126133837950234599444198091455245408485976375239872462709165833367904960364867619307628006080064587059214132157215241559561158687333114550899071351358579706700452072780863367938044024830693338594224529036729337675898784135376510009046914904542159683662847796256350453588511058864235148217308622369490050803903868386397398623983102394364669899316300570133871218793358068406301608086167526097953887881546965701645464459892180428841644770858493195408821028129583260597605527927168385906103338438907885644799794724752567142551322354842521887457658989913735145948242897258510804928700204250496319112214969853937531538120711278790274729237891586254048430657082501652075567488833202995224273410007222731759781087341259513027722019662573564994746668946071694055418202177600772508920272144527091248413031058611286657287771551246126636005529068466354578089998235675587673918559809646558332092099869666080112627457463344904241183052864070919904324886282738294283403160275761174718576552295603447706611579495006246946696847979701418907488017541586253603265309574973292233741717792256113861679076481609770006768969178077460761844774002202934389169324776593298544949366796902121925940847808924067045016854583815396334638338681061456040701363804333847507592021042963191523242609111338230854247485237549706443029570508004823541997021410402673850646374330276459924921997568857615786520432994773976857624494970336366723636193058953482543578035225833134426646115318563677159202690160156176443714295107992371714821050645805992201913930580772955233787133671662306864383693128780516855852296730042116665247783732538035319195014747290867150858768542715686948212620624663991577460251394985165019663879500376826302942267535860144634347449410828768157189652941794239953396995351137577722839321495914835752598084675018183448164232099508738755235505485714438857358331249968131758160300698539321853837940316458881266804111643309140759212830921992189373685558374621681449409068572373236640936966483645502108801560857506749446639976365931175535635112403664695447064407485133966704646005061382771795962358466711293519451833580678106962924912344601017833813206752845607619414028765238945094140944968889568295637534372083488877131264004828981787527247538257532112157297107197838671260077467336329688824174749648276862873000234201236597942723333568966486120862866545810246694061278617430659944822119281086435952453907276385262784684066087634157790430103129056331223389921176721132985552594288200546091976079756152876731585976807322487345916238888874203083595460800520689845831487504324659762138801268430470601535125581384235692781772014676229570462540412233638748680879909829372515398405234724679819063030360128499006386108106627976245295260364845792261753557153451180203219997898832512395733432054658294988445686169813664345662332305518578209590944862380295708115384447857977867496424825383473630188230187777988588628662543512913754405582571356079480740990890245146080519600187603240067841059996733253803648306098047016225516690604384178674129562214490422349972364859087627484559074379724672052794124304059274287907684031294809673285027154276229519767401239583032745128281872785890305989251891870767048253520452577368173657931882373568374289791486475868009296023131829311750040975072678135090527549009832914101054485386010738179722024304754722747680487752242018190242414192545892715826937614851489746369766975962086097280571922767390016073478586316226504310467951307309285526852621746670293149659012924155364341338220740000287068258133152493307094014600165639403612348717458595962968732404896198761989719276665509938734993072343143749061056243072426414855397705958768033732179073219200304607630442626085070293726847259797131228232207203910125235955014428566681338857962185740919070046484693686425593452622925292317819388275563479542431716815636486233343277371718582103731147915817890560666918734735842595832052443831389560739871454106509458309969049851967724136863167707470238514650299894820070703294587639087269845767413563782089282128152281271775616361039902790159360204785169304726437437329992784651907113828475805445676308792929991363651958706530955461643295096217152695024225107927880577926866728609107368917237546631132275012318275430146771215483843476915209807115044639533469503308177282267995049603579011093412944630513414981986661973920823813375942569561116873096841813225709413944034424136149890332951544806971043417532352447690115938144442614958286462509756318204299671960184718694018388415676892201016493506776609202714141298236011613460262051191482915977383206630667909154398929162118770886407536865694591703528616355355359938463833196443407069715318754572052721384650573598163465717467662651469907305402255661846558473538088405373525725329032332291976565180824553640639022223568643719470679908416630439170001127929864406879831853632392194458001361086772441370262377960979910435678374042093843868091096595554324715010334921138212198192052673736355035622540709139213709980457712703133361096247548360524521103530669427901178199238800578359053870310591152932551278354896140645753111799202148909706170253269859693985711717462203507622647380620891515158333621993976205393082320463755333403328591943409596222143084669427293867009960388238716105775330569576731967396793432899497091870439285441140428236201043033197220671673874350795063283134375164845623463461532417226200927937950373055124733501676893755743749614651966069800926893411629060665848388260419920781978795658774476237919807456634797222844926117609763446971773636773665456542108975689520835764703615934573773911136575230460359161086925975697331335003583202476077173763216358092561019838909769454279752153982948985255091677636540651574501332035258633882374157442913490605120078449914195105648694569075669888002551060647132721876482959613611125199951043933557452676048940050829331813750890568213576913000027073435833855365653602913391955532339893390609155440108792836657945027029888531545421059284836151377593775930139702777434012359665432043770132823128465484389609872936894569143238313694046516632889645681845646178975885054900537927079326511562849048350786319084355839050296430646139730478636252744046674410414884451793815479137769138087733664050210275839836293038704831253708529694920773129385691388550184401472468936056404656515935882075787146347061979115824893991571599438709331408600388657745806413530216294715563350372821899949482027380390586473675906912690300319566452504032946398061311628715300057541177644340616480137161350467992475421884490739376295445744907829090347504369458362395095772723081305490090393168160158527346450314707427071424444738727049688430812716264681893709967700698584398230371199782196744757357870341016876462728118806261496192030060641430302330977253987579156762058145462785754712946926920566759714855907653606797993790715464454817988224308337326555337184692177841170342989708627425150777072319537162816129162647591250890761961381947327475428871378844798928974363291903625574540089209262320777733688936178246748743785347152581793528071976408603095621373200409006598622609124648153210819498195955853273481273974440026513276426997769436478969950226094808430456927633776947616594197932502726691731137681936099848053325654030575306589243262967268098593722130458114164084703063666073621754879271973590525515005268922715634819726670139796461688279553555717842604328109761737018076375914588145769439106738549592504920615111724892821923279574561692944452865272899406124576189625554006977971206212419341029381818088001390610873138191179057613258336142483503116774293582192675657721156843616134189684848411594229429082642760991760829544335612583588052139624594798697529938410404403207287219183274189525627181942114899510983509501155070238614312145332823596839539637625532190340482834376923170579274449199554378105564140532250906990334172623986577099314364845389737049536610518444779967926990163763707485708851388798757597870760817860478438308366217416620041149795350928716659879542909780479855905861278305861157192558389962808104319654168950914757902958206590602410119579350234135301098987193420869229258193792090135552553588829692890467339272638062866411469837373588068752865091252100964936909035588279004740419299920347295604565908986280379257390909728322108922069222519904626401046073583768502221177041683780856902961134862799648781013017440030935920227698501850156217733161622021360155883985457575725034336535302721916746563596226530923012292407778833445966009827856626814542455063998735388002737688583730453951288789085317760609918139751380826113064839518544742648354071636218206286815749059096908478145380459135240422969804540349475988035661051799119562932902159788761075423932419885923756296893660505208332858753628567807814752412520109253786588429620584151500552647139965045684468066748553247776210181678476988285142700654881036491641835311393916881410301269025555106901517738613538836782282241690609728304011631633937668596568572689886206407896913420597148098530558182245558858172953921647699634622624232673184434025790014762556482520313112043210917363991502879634752550339357821338425513063625784173505411009504483244425568881513321435824241719681976172563549312294818939990013403190577396955754434721159521445788876742368139256818313849681584640077636573085975945193877353628992424192652593907937702337241079867516781149966416615729425410061693542827523183710935928693729702997624510211763110221918206485755955131166294932350440267670062525283877095965016705078227075272196034775256037760231514091077715946939823830262101729191482944409754872523708984869664113144828568478967558286211210684800728348773347461821346356489519934581702333240582489651082373220680628202315176757176574516015696327316168613655101156071566721881652605072277818785830799935902452027099538319100888149152295649880799354712202521743991014461289257990376888708379437058529280550057625678938001232369675543931005679646786765944504280295324800667204974978736273379361223267647113552647336178459506464274987890995577329756811314693975108251913688200324234171476979561183245040609671228607974398236514435333173837935263847640920298465439305611505694320418522324900176929237300773649783445233869452764296191372994791917468223559343565779092330693518737261135371073536491851875990208067446073982189863041570282026851216937071641949879259433601430713419744559625264468575381655171433714211600796930637073303537951649035808726957116829909232531532235680071853975166120472478507990231806588239729138399986242530020053920464130989562412743589216628272190484464940265429022840860481206843527853658463755140868628391403928422488181312041340330025487980744397668073556137916224330296333369170580590184884652250070876739337069755485892837112333250272385278208888025675157792122716151176021736892224083341888416042329710785562909251575298216008614557484567660718339166885366324940905631252223944994798294744061035442045884840456346303035667451807888495933552965429717927488606745917475750735642626686843041859071614409075077334527698168566582704332536451651453851221084573286971871611193681183367415170294524061663678693401484622520932821356708841118861869125157444916452765601239990514086050644494122624363217645969423754907724138246691380981351135316222464891937464908529031183295844841657691068401309410554092351308589554367439112508876974106040690318579353044028818314214777648326358587002056641105489207290919562469854508802220058428468655086950400511076131362059939288837118349928837995227081834280601304194349270843867678470381059071076099867497260915956206481644748875008337668522397132232532194113124077069042820214601450386453616298485259530045470653823307963921306276017508025663361046497238040701736677016770853754430268719044014514503964154236744886065850626797274472736430579685300676936243273982944508832126604564442038644333851910409832367019747406873997911888249910401686677825439287167899567060791109536112416083177795701276245695681873573726383784241901036282826619580805350808351719506802464825208121788395290850681856398796409165836977766400725599894514509581669136598616572409754007220904481572396095901272786261029824508143490617005438143354188820061434981359245522548354331125196466575026233548374942400152013882234380357129951702462450649253571226155965877950359701824708853866186688605796901620227803528589630247974689853556217361917518650479983367267053608614257706831030316877257575803398799280349324016921278933114921142189736815604482825488240509919408227477754166245873405039551593228782784520287970426826830568769682557244897840399352402053687370079944503745834059963957748305050959170737462327159400084150134609051238615769457946925844104340371893758119840935872235381674073964033351616571364840921469698510426498911712790248671570244489782411388925233572436560940202723440800191326400630683361284189461064258400308088177378938045293507066510756784855256284277273623596367370167435254119653218381120068376501426991105134304621599332820315917002265628205013619666530661882430990383105484707736727585868181401507100498970143945702940412151270214951169389448263369498219551521927439461816537034299515301536434467782606852359108741893904856733520421620042614337315566043938391681219527957644980248415263065455642741028345543709411145694373551088330215499354728477366041812975768832382268964531580117563474111066347784721839254127366404085404748530428744225292568453710732216326496906096059162065275416061210677872250347274202264354532325301316562486653068975740744956037586586301810600515771723844632661555956847007798398409686046705263042202203118602220295281388981478182277379435919776647102624801828790620756462002293829225812781367014517106591504217630210302254437173698068991798631880421859734927685553630095787555517222363973035425488284454705583996601027097130494919976717570741352578625666493223642420102774126678325097772962794901007680541680558122392554098344617428956789478684730364164161415063509059396592708014858038353969552374830770306811751340283854839643832602971415176723772775609920258030270009224565176905223249274919434981019003423822334335993580815632349747675146448131677219497765685354616496517585730071279524532435665074135137327178447235043788067436054277615648975470625151439574950953682294691404610543150347232512607905338807490340093168819697679832935167229219109366749915432136598962266057053282075281532395371960622971723647412662949760594203430405069612253297190410026933254036029807016338498693248634836571033167061477134500030013444770096827168834080298471219847770410879695541588107617812950884225902808828377351195077608006179275357152598102540551866734039001087340766551895424663614004832566744419565738927712289449550991091750932231192303501794439256916288139892729370837986763233317195460738780056036894016293119481554709872934124164289396006503022353795235324795280506351917865264642980367582597007327223138783320841445308270879260919967335515121952382365860677832527740406085744858111972537907457058435971980882701280328605640369121763307110711982448176690128681215481026925000097327871508850163916698990791276863002350316807043670746296214005019233095831177335570007400342849298079170289066235025406524003904183664572249582711196231018196257398131418395775131056655700910033383074311459925031730599809480600449493907339637494403785109126163243959468857625272069751039323269422833023168425620265341491875571255725431207311596470287495663783012035199392435622652727384088946684214677187481656246016957047327617099919317498841501068524096992201895999688551261795942052186016376044489328194560257130247196162092705603036480169799700985360603699797648570223785268932638722326766659876490497346698124402114995265073543294913585933795980406317896759154473082311925807207501913431674382865155060565211284303727241042383121839581626474014629729200039392203885617889036555205651280279530632885277533660705131149495525674787122398348340130098750356805948317907462215161896736005932294524854693447906639273269791197957972405206922370580042333067043521959950487341234785178024780730973640611338745785520867455110715767632183443880604859558094010105198380670687724236508313595282042823729711673022041499401088128620677412750799249502607025588810574554575175547018331495245073651602552580558427786886064278623124163465356005361019222014294375683040673769347643658083695101145440991500905471997450498754445977262276889113516727348851965966441718414872328035016336657852440729545165244648477168636149791341497642292030667608479863985028602998095365020610889930429961386249583876249731959035925988359010160342215222725698669725175503638136552001775481080705999809067097112838515135297466638956848698235994640204173866203970421027040479509821633373397528704857567007562177194612735449843786294899570987230334268779200738228493887043333487873999907351324647987665760567599629227744388032565647565550134391433102310561295574732818479164886880220858819825774451275839381679335481952886184860898151630432039450640776704971328090421116571147827058501252790937990457540535525769064828698941961551725119599275182695534217406685109657148336783027941600131410928907423972448591800810252678049181471287031112319206322117562511894899151441001658024890962830163334355762528599899642190494637696601695547937759392085885126547029653049905862222009288294951891177846247458161661840355552097087101909878541031626006318019656747643893868005120094070972136185388680610592831104904909959753809147943463424805125818899933981267515363914011728744020696162952416037261130810494489660873391357573344338394574626785504279170467248802597621095589635065095942378257287700184622729875610363562500107467243258309543465028495044301832793566137912704960311890647713381545140050804894927437873415145950561542689002685981221045389613881942469419721875122238292620221072268955651083126283651392907899651275580937563755885498717368051520500031198198382113476917168810381767990335029892063180558834525080232978845155812861261939225425499266904378357177760552661276867396764759434688514851556319719790671605400880399629703887238660571326551140786865621180173240038753008732473673752158642564955530080199527269880663829509236656752957784784767053347615365682434460430100647145683190894415319490887741969126277571684155878466264424213999304976840025026178124439209693042416828236241392877451568624109692788874574994231369878784113808093282705392236364263550713146452278971967718478323616705906374604390043526307072305148168644806667069096734928912188581152311789650490229979149340031868279383952016113318706686475857464372406470453428187764233863883789757473436897818877598748612916416908706937551896889039439477123334984323530075850554408667529312193882833483810491725206351544874720932425846378676126923288044904860868661811406146527228135591545562446008805892544438797848095856853493171927634383513274530155440416856473951747716068684389247921100744181793756320485847389933296732806494428403677306047208590638465802317134415088601086940966372799134970063452350216476731661496419080076504296392550236228416877621137188130021356170394943423175294030796463028442563277105899812392147343174731321418704301832582397339824099666721730501763636263183965015649242945949009080244690142448222465604614821144226652023583428469165778611389711768811360144036817619468368203353327360008188813878443282136804745455276059269386158043359058306359979106329169199009027152845586193712945727447564518616039141839037259046989284010087961584834519340072774631222732270395049732373219473122278159046391978448640757072348262844015735225990889923288995881504102800850655084866025917733178928216854423002872024243611903791992638603550065821697766635749976662238972229231484348204167620498468958414834297340927847411061661182652358081623791929844760074050112745906384685001128377006204212735440813463582339627177217141975811216116723469558934122252688599474417322471292971823698405724503883482659437936082346765071339775913398517182596166462968244672586437193779992768784633832962578260839571268663783256418741897945225745419399385785711715322661352579564953827266395158458592963621569264977848529151132175764665004657693726999505943261446279700456343585533214508308913734528306544813495370877657268918248160627424276272533761439499135982176635580742887709573332069608598845585707715164567914237247311993300779432398766025665651393963676334379774121871716844434365120820391580481239163407530769326640571196940441110446225913215492389334325875901312580966606057585812474254662158282370380136499366946116825705049733571937267781490539120608530591743056739302688922296290432512473995505980468583858565173514928089945853869486815824158056462724033487117574193732624650308049703506725102558953341624270598160376875019561202067383213322283107378020772894763909809367129269439775064803834645872050326446517028766341509026909601696857245566175423371585405974690847044063352629239896630593090221157367654062477180468664941451947914107764023963280168238209036634188608467176334503169121831427106683845052356805758160651496738657975044103253577960255426090596170836005770919956950068197109875395251749527882656492736247475844731570954950669615041819217764824631185545565209150505870098887862124796267135790891316637601105767981268502079392462126055300533941360177667095292943241921238972216567610274168179696155029535265273720355851165743043988228589582756883796988616915035521333801945275037630676955258144922748658762604871144748681879849757707140283070414884156815986980845559256562536901890831516249465344741372997173324799496010946186385613742773685175725420227090653647850505497796734877380420917484180766915212032552584478113075738220585166774467098735948903922577501665661492516269304749760471240707290904161037851287624259005226074249292987929795079158072184068641624374684692389089609965131307336368052076261802283877678385898623134237887221159112301884250636078682421325796152697122214366823256235635327282477064291503438784123490290109904344900837423329177385829921965977744538187755240718915179622386072695875475394530054234027591629889328340520609650611759681600045203318226045856814491740365601066111512139099108077787303718005994606701486674137418379357525912337806250175318586116773798797632911718270602932789883847003327546836454754613379901891588658064822158929738687207031366992302784553277038955445671607824506631822332543499133967714718997084526960164071872778546478755430205161056115326936849367407966804325614230543900746925044851318550391879093433394175523548221844303877451206694425327233532449586650409608663127679771228370262212177148719459964032869188819548394965591186284415635946498504958545730261972684153761992728399422792812455685814023623041425341081276412039674499038359809436333781511391186202263010206272122845846951646761009009247008522291929775211472704684419699768784625810972292881111582656084611553503098126561101175907255401995386236106072733582635428341683516589205316055849095527526232186600907762424220746894491006433226458480671187047870918598584458074434719639959925261655419884727399003243302926185828908319152317450801402821468821960553709564234486396597631565515348552658536415560216793623117079463460757161137434932120460368441784078186755612665440258119100075137884551811442549088514284976584864797137853232149834282354782111318297971515388164886269929798680831131319175351867947475952481918452454999820912148829898588003010122320196126045348460713895021749745395224861766758059077599190539666598758114860857911564157220712497552477999236379985799196382806017164461338423620997084419019450859647284877261724314961995463880089205727191366063533363917285774202602717537819601286133225690505809887075097358124764394624510749522886655037869228359770793757947655228970033083007639444998989049044677165262879705972849191514987619232907577957493248993425943199061016456992627408347897809462276940555312913474988756922373974660287633096207278033661127437394450628792795620331174703050505217215811331957408971617716859367542455650901870622216478635780473761569292549772919013746923192034562775415839662662060522542470582966514430938309016761979403139840334585009577753416282376552215847820040966880429896831959253815555151179013248464884902847560028988265204541926358313924749763740666989093598120248346970032026459101687228236125670113128815154775993184520333056152804493766197968474118488170634721917272860623183687264259097123662413282247002513075677510593780777241653103856190522287472460853910563275287717495182882945826239518821424055720060351780121807191629310791412047146931290726707852261487060135457908713440920904452461700844324336044144017226774516975001319648930416559272278754932543967533863246694207407811940845266984882855107721741525402774833480461178243618920081458379626289184567309011641872274540385003651878296392381797859626145014027332028326604764449769837153723953661508555146795974781889077408870328607967044088597069738882942702459193378252849895314318860165039080182740340516358325730773759174289115631480959643066166590960744396706188061881018256339265804524548983326698888032466343019824322687149331815445647579755254370216413877317632068886547249398961129884337865377486572385922150785098781022780153741106933145748033337120294047209133348272843729419573732995702964580238498754931385549594631417761505120546192370894079648090613593186638693241882036278992260854525003378858173031410478915775353898440358316408383526171626843637417437680807965974184148783099759501619619611251766752791838278510936185867935199094474449847576436868579181458672798577888565842721033220679802414716340074713273279410971319405023399096274949003957026337933656200678823158508239663728873880283981416572483783112078829643955778102404285729781472706537103379301308874322937702096242015739246182209816246005411067502513340755673969508594942050666748234832385015560212075678999358399366745530028065991519130558973415633381356674079472640788187640331052018907225866069318167380851472198585138637802537832633872265616082003146358409417522665644408051061578429825308872638096153604260363547183673950368109254415231656810643831644746001852527351337551739191609701765534676603208599889550873402461476772966643298674748004413935871893651486302237245055571003066636263907694850920785139211713272168406570317573604308394916625322672699136654223136170684297602168384535788318466015600446983261747602651961607759292842015759711451360572361912989856800268601666495029644548216665856045942218376592068251169082363352673251957580528691804914432255514798717931548040041738074611328346009791205559968089724129855175228539678548413990610593113404533352765735956348369770332302720521142589663636096647553501217758865079900800409518552154211317368798792789246509519618393665114309464049495170747976583070068347664615335115463297277675250584948630754091643577022110957338372332005272304248838860475905537466495392547219614124416619560800362918830049992686321728160202965357359277690594099340871681010297876139344635545253873064120328624984656611425128203632369420200767506890159304316585172855249391958349816063217657264008110197554383376647344173411146170911521146836973038611006555602174398713756422357192194597668108686944337313902964789388108858852119595492715685160238384632654423329810442643564918965828086622808770095023648047706639628108758286928964883408559478362895558194280577634559327060714565829184997564925433119117093396437471672127908274139672959691507521881521966805677822116757591837420017466993133033144013617866092200334880656364736822660292147773646313966089190005087791604750677839451548131816185618110803500907482009641791726859268035064781286055207913920852877857202701316735999357607865688860895662452496235841382075745110213304316391207371784611886081020712085047236160572828984118854223110231259917858708768084229231385544712338079492145870627680975796015502660517677387336552372224421140529245976616119724171343116511353034485872613974850990735001807292302959980725308244604646106710768863367898197584947864492955846726937904749079287210169071661550794289610878734826846695871323388515418615050500617906764419054901013405628939516600618686298173611963409331149038070535965733836223865040083276791885282385967838527976589560405538439671037387679423401427667299232252842609815659669161784948113555434728627717942115807523153151237928688473926032562133270038937767850475155767854350057741780368887879046274970352418437905496105589280601406864118537168394854636116839694813467904682379727333473318725562522738912574910277324643291452214799076669526159290839579771278478793583337160035228582579312958021420256075404543563511299511578272601727572921670513540024240121876696322183659229894887448087108184265865832287042628250924479233370234371579571632566003408927443444958587131209678331628149275233671915897312173201085570169373281081109209042597568235183957536190726303093869766872367401285443796378237946294597474528111643691475810932966321393075535050599463393547764152777372849596747891427258963511339586017333683606267631102261214066501547367370006371184293969471653520396074017897907713068231891922506673674715781581137421943903711414742956897455028059694295387149113607367609705140434525934012637119925631115966505788572748939425165709318918967924989635492710546443875231841799918677961845541366610488167732383051839377411682119033128271150623992357376704389307868230728226980892987978527531740796145964001560896407529823058695845618701712284395175979541994584835128607312367510871363349059148079349558624573763183830800234058090070272113990912547124363470133565190942650337017122033125550010039674270049344558090159064354864829747262179672168933877111375808309342162543417851044244712424280387707850212717160602786484435418222220420622376603258416292442865407387728757115200511882590603017085117136654812980127048810214217258362461256430734917526696366439582956975130931586416068641165832713776228763695416775827097763947330754191179269736335853160081813050492172128608863257627673096800306222908410636631753781476455643895263427682369743936712868025620963280807905956811961693101714542068795607282438964863235583453455452538411060142344349086141236889895069383403841582480243269928217743294831978474374759747856117528718386745330056584493636977722631134111895829883080307692056448974568361427578176183047848545278054199123909000165214272870530076497694259051938712115959639519258720008674203846566221319864671718465169486303106644300942881602186617352088225415446858987943641102048661397424889597546382945383372110995679100541237807013494320126217756202393483662577635252254121904774475890094355697525410056849480901518196762281184667738222137948572314439084418285281630550530088945640548340954209801724296823115035324911959566617719104006144766847882335703072221164515318549710805479651543799930539184547066382308153405720668065545455538066363134093597590420111414286217977961076164509961524026881738372263445157687343104637906603109780940807973948693696542449485309091069562531679074575557500272439341923480022926074521001270979526487777893340799643435356256503237749421590847366292568940851570652447861200679758470172045724559567865799468891476420909631877031855876339973438796944343293531132545597069729050404260184564865156179661281264811379321200842632961547755481524420825883573336169371411053528386832208896222688284411355131616635133038498587548053940917127508789700691427450866224121788322872407444206833336823473550244656288093608851285612924191874346003702259059799041179536473805856702255336965953543914480800515274844072299492747888923688523701169758060974662969641413999377663146734211065184676125120356618185764418872389626289502808653895950644186335586795862423106196829470757260390456569996927141962814666829500825665191077894352292706245916883462716575248450202622519402926310177278829990657231935438391169689647510709231926944926733673889968323228737747862312793865776640595834458635198477027395835161790624915765342532643265355761220153456960229019811024538474602392582025821031897680803426484230476203569390380741110405193000753323353797257042742908813016000561041330842183463634607889215582629745975668127326007077669899139311278854973161083312845713412586320971396907423706707085206327890472716446455538943014796301457489398071139262378071096066237326191729938908086083441621984798182181992967016539968119906597882340802590539500424167729564754560408104061027605517691331711284433299061597912425668065075274720348940409765096206947499780613916423246891981215987880498955185228134093162401900489341980867067949907799158869351602210930252249315644887058707512452527407254943379203369772943093788439358926058514293187178249173936214491458308758616386530712001696786800244680866218138099702775067296104901611704848140167943434466874159614151843251857338659959450807207623129337575619001373992342163594641797388733266273201462985378168159860726800275755359453032454213410028662519682998561994052658841762203124667865737238440988079187004628981859280973827274890995746807608388396803117032273445069962420424709316359741258431292283651059386312728582118679995331247413216662131973266401739567144202462572269394962343803186339359421546666772461645627718511242175342061457176935925713953754265448052964867713879793263694255673583183198826594540866643971525398414642374119868708919755138848683937825827297028918904551366427336180289613586309084465894785352219066553425869661638178182090585982608700063251170998223409887907508489766437203508839431128123742876754868953047451517149834152923285689796382220068157181380100189849593697218438488874802379104278938507440923054361436353439918457252186282796018311429973832771305765342162727356273998560664502270987619783056452301101607555654509797432732601371340090836026928693769028663127309285147034797408711736793444815213244514157972797395939299721939131074006781748214520453866585116767522149979639754983359392180684158045456026424391897230994923157485828673858472456090458375039259320812012127873110639897295396046995363707171829726278713989599906249325262437521906972104783468374161046513159557766302356567498543167363410670694338670999574213529469144968268239165443409939540415469147516439447683979011170476550275510046483041537728698879434117540327504317883348723943935390499937661191463310024659028448872900493607139181813242286196391476545011067886259845170468944731057337302275400728371550825636117854627482362789981455167350037382452146813141904742315864910458293331258807980597626032739381765493173266478560673486297960738097782704646195233978439016510667855193362910323036199883340007489241418572161605918024864209957178227440573953000004740916305228485319290341397296816050051989993554657991011844356348308795674570039257652443356670266745410833417998179115062282290890667780607739018342500087089749176628267759493729559520636962747057176892524472554261413695325121722290291353156847135400443122482338037193388149038411599899972850873916777740244648337418793861536681970397405055004266406427511338641932024483439407194798027778890117025715621387085831561984450166745677233083767567165656018640854507740746706615537609380681511570146152446466168126011346121512827661293021642984112620154383376034521444021991765639722838358284990929007280395027864963925187975178154687368249605166137009491506176767428377527582701932213785693555311226396784469771562667678818834770319335301767711692842783370434803739086068917917155901616441027556980200540349532763304734257342256958778104343244757658340037736396701367666342340071184197123962635785824598838883695591611970484831885215940875401227450859523753657655299659036022536235352646369637871331724144688399204335402561257227893818675584267505367932532500853323250278002338819979444028598868270630101168450429393254971185670545001448448171061946828031408602300987109708900753296443439785543550062441723247171466101765453276339103017416045974815728857780897070188126672525644434268604599661063877749294486608785912736582729400265189168196413833935999939363688509139132760052827256069835148592366598490678608768298496881368652147663333556986291236806195992838428729831357462032149470045212112386716956934243695454777756221702737018009979411972378024719469626363690426055558862257215035128157830990011537889413190355287689227210305915327424343656238565807932257772913524273753338344967219943765888359490837544582886431802804778534313134781592104316397007151757209644252954084220177708449994167408362978476750363518978215022387194732127442674597292000560928567012769487421240284397915041519692095499061696064819546940411501971152982002128717298146660140701003234877094818869917369242500109077513228759970912986170771269551956204391620651323935639706506575172362877583271370044880639807292178678967158419368574654382130440801633418544362672594735605548247324015358225018101402858344395690060779354882214712270214251021899324009990303190317176824050669398809598701650137659033303114352326134355353267500992352202836642664093405755703874895452153750542451190295547794710519205050682116655403486370912729218207101320344702011502295761005179201903975469839671937237229954105143131316405160912057066145280721412836359340965349449904289502435018918311945001380833013234501444954176929595551067853817193302851398706364474261839563882285846146530159607198111174765475830541909160108453310976427489854497366051733403452451638974014903495116212433013159217530086371400489098778100752811810278534396793482383264891646276353215971553029211035775940864280623335388259112977834996732135632521810138120623081466397824745928835283843410653487387701522009887665284835836395467821304383469290518244773661860811470273324237445847061399073978682037711536593146477174359706556762795068699338341568551591925011782789344315492380716971245936225908906186251299596263803684301624663759880297278409282408054705020793599973052507010089931654523240121141220166306368571987956405177299782251283492178299827372159601918029210018798568977432819102373203958641254128813002210285517039062744025962160781185482709273035446369999009585132101581313376098101997080098296599051280490045831144512837033540810752967827055993488436479432339145814596732833275247719684565031757350985991232075180824773694618970092827459982086979039638344126975973158364492612725505678128192530768650345926664306417287741854578948933888097358445876680745775425171118358567454482225923023999418900322391172334433749678013919048679132684637272903988266627466394672125376640951648029169324193124608065048829266043567364023257640850234558223543764781715656197338374565886539698410696045251442454219916436491826325247176650216467427413197311741517218309634804052474301207290133666294482662948043197956850358756037043037662790939862436044624007563817618332671526621499530753767644622106222669551963697681913310883216872878761696340303474248814437445474745375618437636283477108630220559804276104688202309023087644558829791601450161262804167430578195966995920354834449289374534660161014803322770955015087483669178626355020012791253552907826620413308802034605826632692630588317628410912835677963499222021909908869038948488128519575478755554386783864703234543928454256013450129751123814246737826513832509143251927266634578637134683324810165874445050744326972648644742414409669811423485084076792274041855751364809996252649577587458703455015016635179630267226919716229371646729940346046702464740307360809553853757540076930233882914028795274127179669494829702583218654404773502969819948725351435832138094272176510834674770884969968145014634846307958892940245777233429073129544453136533910405462328282371497602909687088773608201333330510647273621642670896743926267307564708889838162822956039441774417730224078895429685392023982802786503134110137768371931517745229449666602622192173341579314292762034708889374124562729959616574857935065954676120727307368518850307042937814839957309986188119578079034144960251986693415518203262447140419249850457978474816375699934896628641389970465526504362914840231451555309221277961998027177180345737194293539444610007893421039171519262057231696592147061238200255332023881717385016744361417892626436948519610955327229225610532856696014893326519273724755462869490233829067636670724883403671856279510982309557160635867026479903705808882992066847908899714794983571019934264599675321358254015217133193858827596918340725943431067816298263962401398007142089742316397978507233260563114105826758115108708538624374423992496280714302435115940962484267619595757034566580951671661481556600414603732791025091236638399036378596263705537234205859219765352652034361152551228828489474790844469254010807924577786680687568802422839795554750060283443331833391485717689661867554278490943572106430413004156338675523773336373474782624774787735239651691227273542959408050219297395890881956110248765214399426469085730816406347823573460765282844550195160287689414792100189062797830835753958044979731313700612746298807906625732073739404652876456837777402494370256765783806960742474795218814083389599761765092698510285651188341567313521026877255199837580891661091265671230101054947435516910895133575957441114751217887235599990656861635974011854515261055812890992851787151632029627351919866177465582912399349623358750740100589424538415415404310911027420865282584894236218747103305742818523939150719560850343642088789024984492934022430732666292274787207319195869062971555067918554465335863145452237882029893411922931882494766653161981120217333446909539909246326317850259466796252222837538884604630183453389145692376522085298517841490276819709934512449687063593526165560708270006898981636521478043649014929767765962609572293223467074303822634429838508899644859167153614427375621212756313406350948982322770033263145276299387156860572556258855827917857459806235503661547124731668152160341142858011292520362062745764073249573785130041158267114466297028901641636481529991364697673408127954250329016146436121148979201560203720717045570168746426969693452397384409662044331930864888498153488251382372260220284968351443346903931908765751431425338645666019725551121991721719324547794983911051253931701671134304799908292281958896421510562984563874502185076042735994857477826925774091752538260597086654170247809440461699889230993642485001740408919086071447024330750708275445928452020857367928504454857928829156071238840458096411168072689695181026339886124765426338340819014535005458573216239886883636035548490374057526483082068754176058550022201106994941878778375056012635841483319686404468404384481568175840393591190369253477349086167822211815297777628252280257664817591493551066649842527863565106483480366412582059813279062727856776185044714737764043690950186102746468942108480928200473417424600149201408559288928916777995039684029991687867850866256749890580062198307624793785219379489006917154708280662195002335484623325978433578606884708636835841713452725969606102762956216177292314406170984744618887342371273182472808080472843473908298849265585352303331848712715829677464443355879711553357732552855610940509942376651111520096855539869887240931828807767225265725801602810407949027180709078447567775374990743047233692666787792675780097452735518984243612099172885325632768999000254471799660939414113392598878869612201688318912410399741527601965257314340671480314420079169463706279295713621633724363044605688282638963163336145356508528791731094107435731167777836539328986315898662906394874000184592733425505285492137643748950288083359081185237716314227666086426525871674666172950581197103662809121567209278678204052981844236128288596478816130428688544087167749265120812832158223660636230036320849328661184918193348460291885003315759004435069617576637370143181250303129085120228120587220739164740627284504488068297303796399293638828644727930172885336792872009408489485027034374978909137628697215935671845481238734152590831704016721631101861916559534198450347858020268177828976485139255065094854038461463309721171476917175151714094151645524050427918951668693181597075935342101373688538190780376499583847959135406261006431569429247521198159083834280858641220142740587097986196664282061889873443496520370428911514253096629916226760018108036670290135160024853712555239349440227265399832175394774657100978302813859407460112679455279279030354954761254201751972407253437906409873170358918872250486952083633977578393049264718458282046589586672323219984618844738961961708150511284978067331611886559073106733439927929309831958359085750798101046541567145044922197950133605586150736055332650485048460869790297017330127004714100740233591975812206420648606288527493485688015733006179148437860969889487886464022507457174923494150493609507860420966355460919512010091989121269695663558367115560729228954809843722361488040205945388749156519167412601853887365608902901244544128919560595161039198509111018366186222407927740143069545986165982619806614987008945004786638052101587332699616291533532849434053886559249952272909257892144785929450727286471916927415482018597315056658088677633103190737274103745365949225787549124657522053780618408561739921863286544150373181651238623202462574328996328603306071006413417374525586592261521357059155883308438030898131035441192421636632085006611149785887856989909281948179620878695493402268993188646879542933018199355415346424508703069934832228951025248010289853466051782327798738388419951892051604593913217793121057448280405289965457613753590739944836124572754101024190959105325493199621210876242283353049283506896903581333918500517848579857474766399078105444538256785835145402237482452813531814573480771333422154146765480595527953419545442856662407615913773470503903734005488706711138542480331232155986624330122075177122944977678104335601218614220447000028881249757780344791174380938181708796634052585296769457124967944940996506342688797178404744148219924820351402021041823907013755750104934406290821932933040841543067621573141007640850286363799277191827653522998679998009351903963364353386653661033006966576876739054174337371078964421783589782062708560962928124355628920477718860943891653995757520806162989043805002904961204477055781038187372009122555860479923400958144297819887801602341834762792997678220466709615357338526930813430294791816888605365806359519930177404631662829197380269306910848280507571489279493261088899195790713993030371213901069179954649936714878720037148208013794723826353588397754761883211585956285830788618432377112561504936311762063925961233014993541074600301696479785053559817083401566719067767420004190563128107585228370136879300147956199495988106279897079793934820777547818040749979720497693121452466565325756210393896410286621580694025660024593278515490281511212823464622176834010210650873945829885042937544792087853898382690286667486460510873120180989734696434605746690287693412922236819963550641902601376335083553064685916934702158807321102845092450999701349340963648666463404733546728127894530956500523573238447655566419525092672056328946649230948088686200927424157348858487728274439543633134813198690483328678253801099610701715915898730399079361088587249786421468138957029691045554086081092124599673262474372162820003569812796229733995755274149452382216599167492912100757664589372212942731763013751667467486476931455569773450370988413645773654254024271038335998771005846021978615330260711455209721856685029649665666502273962538473693339273854197917151937069249627225917264035367724361001440561104294267428517345885996814771005767340743120172910651237873034291631538885889226459716502975486321114293666127567355720204340509262738826899277948781554840098948782441687182151154382295676252005695001104155014347698959802539319340290508411351891366631303428270593916397365905123660140147452145941441008370912031696771712154344515750285428439227189653727266879969559409943254518564556785068828786253269920978847797671744697750248490202839240402575994053928730047239353845018552842779985760543418702949986705456617560548870801394700491908814592965466864418001636795353813358141462214703432274329965536447455341110661444692369427586698006668294424488268758790271695744736127447780272251857796789509188597314602484794258162204236992557943257217581392577735216943563683343478937993180151968551397560678247748861548448205155233508752820684689086819208871029531901317521408833544216108306789931452448023085976880861688615153212470227478572008217461826110320826802724639143137103111014622391831480893276382927204018075850026003445937711107367909185980045766859454732544667020831984742537667725904564944395514693131834672215630846873423448006542994931441204572874461299763235210568551422587801864968743349318053636416649177851995868908022606958927467200130364936315136185886961472269606704772815637851588357751045536710794041781615398905569745479699070008825248463336690772146296191629373887311900222615044279908888535595810675760671782645062053576070453022375153907471263988730359972053188245034702473705158604538049135699241539282559698922844115400140681179064511858964190635047448375862060872090980215636809798348706555199189900045580647341775839642042394993886209340790253429790350327689540468866378963647835683705187275924679277150718312855382192603722098442168339043079469949470920446175425105723475150973557837516869411715941442702627010488484007057117490040147457278087073356239408687213966445209044253268256305073630697206973079618627922246618832886111062461101828034425025211699020018241764445005616266945292941361606256401651686709110408099938799942451387396063272294249265145025044920300191414065487555090696168362706936012749729314314359853589855459595651347261100951750455084676574530824449976042814741865329667383752244548980597146576677948334720785130621437462677679009915566476362604534310975012365808984029504165212296850905562568565462735594202437066403516622036717811276049861262617860474320826623565452172279454752360560751671859637658354973040224828704752431269722568383511176130192450369427994582816091799271903259964484499252257039541772314860044738366419012914641529072680636658607890663796856463986025700311291368806340383672377785935016125698479549515829678261235026886936541995502368137060001528157816964466971324791794468743562676239601254222832587100094641078351376561085362201162889400926407994656108524177049687495151302321888982563789062797674052232205990971342557216978843573171233553282440986170460633517320091054128983488299011463944597523148491510801935662438333611071420736845751914439441302792690119334321473724119460776780155544506474170031359371665941629037165385101339952144900024370991784822980428336196628615014005091757821675651438178062216575595832258251035918702505311797780771554486818765780950968309424864060016478216302399950375537424495648630883081247086693781770164186553877631378653554652171140011476868930254605967234184359777419844953105806135722181919712005809454363819225475832839140872398732528300909535677923623806752108113566438398196904906483587609560044286705478749865120210571354558096677746503727327355282419331577574469691209098287134606296998029457378083374563747626039420298159862701435153598248430823720871980312972280028543267243031768675595491760633650707904701933850392428729775440586717119685895200612841376346142034267708398306394111442070356438290884228903297105748594465878133612111632953201824080862835116756089756475507866670257134523713070475316746156027870476599690581871284728000415400211470701715186285945820224958298919960764479156940956840706021370012710408576952857784836074321719756698993665454121519718895924483591605445928847784204177313177254981878956475098850164386722638110303638128318035248788003223812823637954678307093388857482089305657382439096179189106363824800895518534476465131563626900413409206129915238989333041922751694160816891040958696104732988128604219418514157294686359162496862454877917006302606396193591498611213944721312607359383186005318150112712919608711515550891151897409328574368399431010168199188255885469628109356713337199611039544231411294046660740499922357152118879583328693837716788029351661787381182002007972114724836928233190946939590233514410539854616948820822520165373020836033297927965257189021866113770902289692840429101591221339128402716075720648719074237750425842978302966205876090128470435530655464902776440364319956855938265321598147143809946948140095181591800959813468465200759181634165496613300796255649400557991944424553929154154320701905470250631176548239981149182469534880294259227863774135201928076267768039541759878557425520257638141816814170168649647292563023542370752944997783810136681061508373727894136343674315735136293997230383682739852015492877408539612864231014203401525741976789732158135215149775121718353704792288571960496538551951139057252797435468765123608616120669216834798622965622945026044910667021163031917518081493690875029658992781913149514075348448801566447203219074883336978990395076563148295934591168989572215580334958236881606958755945297901138852226047187402378514939538497595636723926854240840372572153856729486552726097068134543926549721626561599311969265555807725031950185871133609307225247239552130733030378592641423900975918690609139736034269936057930504702499080495649414454258831934692662960895738202993206268045258793393077138983107415723869833614381401046093776670815522894044910482916853578433824826366898708664088171561794050100593248416070842158548163436748188352990166770956547884797051366498329246703492239038488639056510785747313502442057491892592556298634376920501908029308774093546637027060401295838807823716971647743225162855150190616519528299187030952561753768532899188039205939874399693861450668656861135912126439016546323686030884060306678558186757620907568893502077036431748837716130884239128268340935625740876187919477553718356508846498910662862251588009744508377177253328003336463536445594845028926559800074321752005439031340542584858198043099617639399343914646132595845679638962146844514775398610748703366259692347204832888631081252251394006321220433326866883498755329747810147715831989846484032686439224411976619384472547122351068650168558155681817579856858940457178966102341524656313558330476180834479616799576785062460888267444700532735184251698780948766510596655800698867009066345065163525618425206389713303822823484295210569373711801792046076130946381961802238110671686443847078162059615093482612885179293094309234358558062311957640337325100412592534063176204683420738651439250522900730972984785285327286690629572345104493349521181799127846141755237392328512945851395456749236568061625135478076780613753856096118866172985754015611333531148695664854015112048332940152790768298510206776273757589756792599919087994869878045662848823159500103490980553633437047572805463016325240521990822590991431326143440088184792683522581190847207580211947332191565290514810975171871846889002633205446043533231157123971088251265823465404206003621047058555567602153625045374742108763190869295859014623092242986369411830070578697756323885009073993815684247413660598577395640756350048584993680075844016573335899176610883712049047835364994157449107577049502074705575216184037465714897798903671144044908634984626365731496906118625618815105122553086742773382869401083044671840302531275607703888047245197899982570550773949806519944953741917007068908705018407772391157080850185496252665846195860842618815134027718895686913892227991782923403784903067203230600852103949185427168614306637996233454298572995894700789797645853281226553080151263014941505156127306413279775347775477333608709451251289427887167409706889603666632547325390088728299345640415772953614696135890484162409038107175386374512182608657599188167788372659921957211471066275993791845293210475034365851872564059011254621296299095308862854372747429025526867680403556688936558316829594339932277491237977360834316345346049012283372055613921558119962689318414230524470464658988887141934503917345291893723922609774029730449902177315025592607729068324535016826301287544477803048644470120919950601826306622967772535408115134456022618416266961215840317515408692806262237490532395782906373149390361618722887732255197298227896107869061044750482934924461963109036333529656139295867948132464497702548475611943633514349866283446160733441779410549117579992160049784645779779598113339407389392839979053804375164479170797521749098901125011816544316619855932034625337378381829351987480319066939162830390415744863650677687092238919010285892568376348738655217150242444285299417269276307531714250253466519146839926023438795133902300415303684944825742407985715820133065440132065799338920869539210819491016694535047909314368678108839948601482788981061472698042920782709095784116371505682324580969988318844657692985177285445389688831719114696928919745926799277293765769508554439646001615013303782397911686309082566955420789526166095585653006623274847292666333134637847073194314625277191259517848907996910794756641353394278040417310155202423408346723493922665847896331210758054518480936858251724096558780324682151808125063006143590272590454187578242027644991444444075380024233948092314124939257039019866930383074005261332613109850452522260395374585053410784462777852908430102214465227650078269361663462509490743876608593364044860412605076705411268608349202490527598527141389845491324290087402706119651708993554357483754520749369120435932787588238836584629200476494722908103454425980132986271364776442568390864280060157323538291145138160991492998510952765674799507140528306696221957509454248783374873685826616150433358885330444347674034172794283179536923398609126958057850545636120630348009808320364835357022022099873221032833665420224043812973595342633171196854725855334119011442591238206831299512650587545592512650253947788315924210519709923521352689787627577956446975830385957629568049440376193799182652262080715773552191272392224415546650285970237903367585469535346610995793768950146735270000274018506737278136362253310690810608226966178168866122375982186924770188320114396385816048553620657576708725672811663122713877530849894122481969624528221617919033597489873395574504402032885997358605244026323314120078506361372039039637135434670544238267769710835956969829093190626978336561498321039462896415190968143722016833161815861172419164115380838510761827274133615390616681164154965394528567781215102698469252328048365686362177147255751214468807158953233549406661323470155449603584512018575949326282335984098281653605716446253613843390750899301597797915045912947812843605799845316718092925515950226813575760641942081034101046570140169186331122751606253021649815371484563886302448647035601160574899235491902980374742454368635784871621366412535059495243742648691120004986637662732983240198143364207209647521231830577570986932488326746417940332682995432451790255706501991199752691595704217827885674340126699084212018644718023311867830569545036037566319820236031543361913803995925410273454305896434123283459725209907005668140950861429311789287660592735155224731378514098919510811716929502798325649094070503826029151228961093444804791451544439478748052755368804883553245638922042445531913052771443020497602387340594152666904373646880892220863478518302260106621879104412854811139832463541479268268104375111771974335056772535379219351619180968509664365855109649439488636786640413120520584143356738258215782693355633542013175547450338439859916963549755091856490103156985793292161846998133781898443473147799820735980470444403256286135131826196934400604317565738295650663827625074307178879574916833770395752086979803737041236597378867060883738622847571563464644696925086776727437661123785811939689969441079906386319547068153067163134327704752411699371569076748482769698192687229996783953663796592177969302478107202993838345467931188293953680107906089253860884095955720961265769220238856289063738430946560266297773031751443470046781383024991518840354150299321097136697682937917299068968207108074960267268706230054455198669012475034320062536006270852561587466966890590151634041570381311083695955774366125499207902903625572615981460708987459861511352986506338930021455440799948538571086557900206665180676509407013755171750575149554216129984018614080677017670618862682184234588342906382267511757431041728283473197780997866394387368175474829708026551560329021355575510181242048246212500012526460905200392320424694441921540235480786967704324914303884229934911165729882135584144733220601250425596075272593751277903117254096427113126914556528484484266965957147975526446388379130032965143697744109765470483052445644348349144744295406985483053459878670131838324262997210994720487523275677922020617289702853269686674397921130115587506205137163923313710249724295553573877803290386559221708533889295510123258804141806150847777800345719410202019624938464842358796780142586959014234044245880684250826469949658845360722133958850170213707292750898932559641738462435902466368510401903436085004752416419487424304605343456095397249079839805039360576468288197329675118506783669961542155579613745118030689435254148587525702449470714859942862784572924461522518237605782522065391668836908618192295793222700588591839890449179174126538799121396924713603311448212659869169795025083087708495595185361368853989622448983755002578923835719666577278941148555137830660378183838056845642273199108485898347022290733519756841356141964507272314712829361673617173376359589972222473466179118157290791561018143604969739119515378293037239246874415751449907776502883174797360776499856203884343724839149607563543437586533792361930480871497263011234958085125301020863074618377094768849972330169961530613920316269465001635315714195624022097741982143460482045871854581693340768980608542115476206121518065120079618463855364012555766877692596481857187443446248176377141789542330157747761665589656140007986327983199673499783178705338725544433583293714383116426104780450199825533852386640384688179248357254617217467939070642880812164987164688395471022658280147523962188097850213830520589273349522710754457972038915466249119296471164858826130804991809633744220924422668080532934117361174657030661800818278613442046427397150041239539719487408248375276891130656171530536712669263535284275015088029679129743245312646197780474455414246020626517663668139017537542735479082108058846013572745179085357475013408310412519617972268303120088480694385568345562462614622577892771884137499411042500165345364863178382587489079594575632411742680718880810254276296676429375715939678854615721488712666747820288292347510461502629832566380285414664081160246544590548207636098107728699185657072551738295551433600742747308834292986027273203456995421489261158937895905424202313555988076412725620372643076661699753821344315727918856922519473083412371215867497699748627277344510393794585418473633936580190090856620578293280833344351874432948909602019816034623640587981211493517765776581750497290140623706031380359780673951625427678993713558538391294013278337256073496044990584369689275982841764473379351811188871908733926125771000172491257449874148002378774326720098167710218619836245241814719290219720659275519526346330090261083854514720598121543761348588038255148086362377642853012836053280588281736166141580471251464108577285925170826720726134042906200174160118566036341763699402446948105448101455023656026385059009201239316772172926513581494422044578609499801215117294896357681208254240614792764460206423809979724769858835313576579893286770569111521338374417911986862323636174894377344216014799179494755822019936908297246055251302726194930651556792216110956196215103047902788101697397717772316344762252368434593121840307489011866346132791605638757227919377115933990114449341932578726596510528694414782703521646830989170659152533880940156911973944526502538142214699507080235794528141421901247712954867869324362235720681487229392953733314096798864098183578418552041578405240198210279531212143596563159087500698761433412925938398695617761266392502028804018762313939408569605541657711565474784193520454254711405408149995283589212276060467563677566571407617725891197580058631333732165426100239135229639701202774935474963239472402699463793864311322641391291720075248976459734871131862818367384785382359941254898918641227796003306440579451773082913206975637547233950684481582094347183039118084620860895812443011513005798909136456958107990838714688074623332769906693399122168962544604856667474043493444223228655110725216173361984173411854508991214953351362882304789394835981873219452026258720312617910612787408641459566867429402775348945358956461759747139487626695111954945854324400102778470820150464030724234653171708134386533452447431407764555470783663855304412778513841811145955018470533653759064013732678245648824424589496818990392312750451240199776822007333427318516232909512474182972065649855477151460475683075755674553980859062201923362285479291107369308113496964554781555761541269651933613969810245424135589081827828089666479440149572945554756403618495323044671961930531980582001059790872799802099631478802923982025366776938930929579582257589040706275677926657903998951888271498414456865303332593124296087710609706626285555167532435033551963068498489706340902369914766398865996087920715016996810506590519436448130669664923406410045423953118693384601204803832689651899173453239421976206911142091299253522669390389793723906071785176244913292493612731400685080638070023613557178090483000872498634224556036504937389760074158927605151192411253473110013620547463934325897799511327717098694834177128746339333484077181384842928423769863304916769356983589864988679961584633368558335008326532944494586517533579550266743165265188956642777317075483874408499024366955349191199265889780362675305755213255157937050266749795938842323470430917544582223011890199454945053760573560077736104792367222866950661989975357969457017118930593310300850981308486978855643854127608674173379710624915810162315021727377733045425568968811289532660995339554066884151887086923618914115984034289261842652935304759846133614313783706244775561392802691739046648067786682560668855246395726461687344715191692692863413076501686812495620984309898578453243394449743752493106243831557467087712592032222618996727364921181937132127350122918207587588715212008018806845617180994107168482007813277004655484442781327855355475571791578556527287900514574615993779109615796844410849894872615163053891735917849953035104124049532838070166939565822783722604423934259180765558116758980825074589560131716100577830303301194774699920757917969737188518438960221705670267944811586262397011083128202843907970469324458128584599848132016484224789916305853391341510522087114810974072654692745956850980830590312126933910768075088077818536049401007648408672477652454661388844778003284217500538317610522374883412398755334054792131615838543216305121539134039521252530461817024108742061525586309050229363388179068931651352585563536650783042147151342075835515062228224217593211586487161011061435292690734533517937979893559220371287236548775948755877507728782028859602713254168248964400708728837869716985101547801896732150511656586883507971015821296300082200013269025777442927994927496053345626154389855971140336177997991715517499105537480708481650852488055598862370060563498645802454377513006893650547530238929817997704588643438583403870251830475845670018918096270777845608105398780564894459760278299010494483661182548211918433033488289588497774405220354585627292197688372311545634629268163763950810214032540709373177395069904357761832692660811978545335819660490453169477890189529930041141776649550887287494059115432441648609957763031135772531924740261329934126455844539370647596695611764239930480027710330230364250356638764967492509603656835187408911949650246736713197006517969332670866422377277163669685386527463716956517469493383613519674923700346455599695468612400127031025385130899687114672646046066429406192627321830558036464707846182644308349917976715360474178903676130385960763522211291279175249160919109811424218926425235075666854219499043038389655824022659124067582167884355673844438169540834268722969494719216109528697993436520209376802227263619600954859107113477807362546525821442131546570714694373122221643768831272000991906882847769622269641398372639692640790034585449809305098173321180575604612716674462331467196632544763127711250627785778069709876860696596122850718946977542272034536357432042070661831059925486398818419764305800304551966495265298105577320610652733424377166013867645215404296142278154132939505497053834561352066139880719595309556255345369726543936848778465843727185212585790987771400704882945096761346909321213757854979656713958096639867939763914698891064293840547893539956157880175460441841231200655154954327447594045193682135149539296282477533686348456806518130658222836947554876015639401140864638465294357924763580276600197136998804683664723501021431606947050398651968629999570515467580027774078263130454547200920416365774642019070961729877152643542397677005968975867286887987738935994587643730802277655050017850424622486930725640302719405259244329950656018444641737995183070271729409055748202792032725196923994117479569699796747922310935533359272247974876989615699902923107661227155433949167887561955183612579247515634749823550203067668684921192858498751159105752527992274979041455162743419048366139186845005775856508820931480522568445465939610371216096876997127254518231037132601987603473227873462769065522271942247612510557669837624614243212496993702495438627226722648309253864580153832524197693346114177234820181987344505251424481440390190740901859510579037614661197490746398711790570743483725897847312734902883389667237940657716809926167746039903688715621031172536317315637428632895821529995937698095084527538784532550853635669011052357989244548805849586400216034977829714690244552753162482905735361364976307527688538777482809848695856525780558027187545596705407988419788331804607523302208305213285262213286514707769419750542211764201760874873813101678816392637871103832371630513959694948613088261313273257796625835282965681080354670908287140321073125490600254739923705340845817739771293677831255618795485051633882735825395693817583229112343251929435606112365779866240188608008444354447314417616847093428923629741543131833582748992439746263852908491240703160056119024233192621267585003659632361943146318389896716468061624208445886593396027583456145013714722444689357791272226102095410372193572987849916413776468430324028565330959972047239662720038078596875466481443035956874201181214145737120571951654710082391058021920447593090639779365525615354894750800636522765144087153035703577309842898878087912664776997777444234361174766120383839484345527625065671293541014619302927562147130122804740870172748824445257542740142392964491565542199465091950609511654359990279050941711234092350236466020886144935514825478783993422848258207532643751312268171213454513568808722331141731115471936787969858562489550814761223864023953547577361592199501632699329618224362797949532325757834763622291033677798433083184440866536003008895597515129336595494087550257481761785721744588916679837332973528300400899981650588726224647221982466920299190144473005491343050621383774549815286372123516800319207972625579162856637514709627601732181506357298437319091372749838507380103676700232844044361562063030833943905694393412287126032468906921575814926011094216090622828633905740387849553275829261155208105115476348862519451582510367200871483606959855747739843522799425245190744242266271036180400587101685937275238588997721862148392625603052309475287184995357109587597744862735696081319961984334309549580170003170256720493747207810954127842844926164284013016230994022651486602570099102208259663650159783934272006904243848691909814208815996741940694412092274216141841778668016949642648180672689902061139179765915249802225538147979079208297134759076796700073305869212212928406391376010780016426340841084172812468099303607191008850083420581110753522964800643596639108724338083584492832336997000592467384163760654490680435392261301100015905478216589975985476910861335692928977992368756907759118064868660187123402962018717076629228971697747269877900477115095268996383868109155077014018085652676381171150746227790253618597474388389801847026876723886169868370286421478856733138793540516359330938509034287119641841453563583841719920819484041730078141585894227872646835924161653481047552628979522548873737934492882449184368842971184967618292559218405617750830920970918306504732873805809038961035243177802988961350623642139608786399419453338179139200992607501350736202196557425758306862249549959194034936885196948653586985676812464727975295444862453778196376849964906675516438203127144264590682473617735302757212300773343283726187770751187332308278367158005300110459136851657321894672971350987763497286938986248941302988976397674559140810171313646037955634804209568583156891771426387287109839431454430290253297020486271537862613399516255982710411674151317189685909620935398241498453651390353476334044800005430117018509605258536341827731000449455221971838291256303511342339550913398680934165419379390265985790502457964236170046877189448226049717902771756803277678094526024611450358547998572866923460813222951398572563161979018828652938529302646777578893649198187512779239690421429517321402408133130607411518288589758332178891542669077772792986281454887494596836587453273316731538558543828921599820311537974500732362239419130802296709087089543522771531189140888917201022226609082700727236750034831491289823301767697188449414955743372952352764673653580934906009198606982385128440081081187439915340492805568250784574669970118361618431454024132609357739505081333572828639276165862290409796504361790897928033286562713946845555960926086141792087288623236720663955265295670725076239573726318362899040033002824960070095792803033052487313408884457446142757129181754926556907397751419810938223757627715540481121264512756018884933585081205390616094761100322787010966643446891432189203315481004978520084063293908577273662331413798219070656942906090378058372606739503721091560091240969062435551907588105010578582850292855723448436409446332754321527590305917894968326339891968363139374802330366191752805291654777479562117687444449068170630307032366047714367178255654363853293229814341736355823733218832129468970901902750113534532313738280342575003598183438639590316768791848575011449717233404440220970800387201670604336728089080429807870769369555779897204633299668319610691568387012555783468731087097287035186337164553512172387389658123993880863456752964537309357567554484972771149024023397581669802521218987745785698817649216464977225875514998066086480330127606180284453206905244599044034354006498617676850707764147421183675147429099630844628853153560588184862209130639416465523900628215806257330629814155374615181509816857848024512969202559609028538297769206025196453317466869981645792030570744346983568879907380661288007304037036560604895915028984074956065398444369268129897118352037757019399695304153190345701712742340875046701804835737832910807116008899998043062916493428143882667116476585027930851286121297186489926681131257081080138453445773323012062754904008129311975767271973995048176383324886639445379977031895044485070015346057704829336368636434671930198467031085522376443269918817926882457100130638762135458755603450664574570736553329241025422292338590584604878952717167356989156347399635639002341803495808077265859878765988850557579210349756849606750306503628264763339996948512959445952523359375301739084447246149907525723259620307983227364653701058091137628464623834484038807888936784134650570389647854986403177077868780466293988910371995491113818865123215706038068591594260132823702970752970191340703770452924501738016545479107680522717477277613109856100862942310459749991806213828491450164202263842366635297157858786418074786392775934287507127191084582310265887491140408526032611069553135654462517273338143235666418722219574806275966282247267080123750462311295458791514466134199902696469229972938675734370264099524136734520359957313215248058706802758651590964166176054926490305415146287141300092658089516879222680382696227542075046662301359080672593475976283641167873513891986622356237433048782977117408014350514689790877318996105650434767872626560655114468128059702440583428008136886127244623225811532599246026191819680235148801983041380443277166562793344103574161095535589350176654705568234675883226693130249660182349680659472604107051806847141867039558218115640857913368584529189052907308186673123568316927809720681886275810365156918352466353768072105233127456554226316235312624020350384090481956357713267921879644383685789018989254060962219073417656059010251366493964353553548002821080513765074553281467064688111092655064178705129331889419567771315068300784246252966927551072619801729135056386698010787596883022081353930938659289282019296095698034462811284372034869736010467531056216468278391704570914355825861414403378672077866795099634684027182975264139741385374467273674161349846941947646089735491928058671062942018421248053699538729604674563293587051408250051431549877676704366517032741603602296311690105482353152276600454285416003849725216678616667704293980811483314662414885610603683575863304299782896859095919997160698418479633260545503887764711021816556412790925182936698976043104070346433963900215590504554106046539142839100070870071071101077127297947034612854277913964222678704514290416495051510311999183061263322236765634786321451201680810511557153164670515873404610604608704324219999365815901172515484094023195894298449044868880055721929504244058435354684529783275607453521270489032888138148091815864624054719459857272382266399630913859072421806968302678511672651861987895519022029740987160887239938955260520199393844233797543618808758468994975848235492992457621374857486431983031772451526099155097889012082946450563036803138175617445306950866544334167262813673893848318795350855931232467243041624915500969215047868941039175358955919525784488195645838766159034671988045794288977834746168198304413101112461806787319970827846418689180455923829932955625340051658151135956138248376785431314935320692243358666401152864925100587991465993595993364181417538217172527009160967669692223828149469063852210333608111877208105360574163252564347546236886714763816240808722178843585528517040238602983356158392932363925359613049841801508853562656072215789705436094501811824244952387406220499825473128673553868819710222069034630679936819140941206337591367814841693719724009437440609389451849458828144932108592127547609175291009364209459933625966337889385192772739195666375225571513053119634117141538577697092768374721134661213354337422306957309529589997520944679107461161856497293494629842451399413863569545134263161628492906626738560387994322623291935015318098421758686875957052964171729712503727387333742044343491279703051865526734667634692004237694775963725879388584495316742641261192521295822640349062208966550458187017261402485226894017912789773605083765729684937125458707254351806519677282487088047097091164443133613668371876531091388924295782818470439964862122658087389026438533621499402577547315801774575196587227920389539751917354005236538091134690403927343855777295499820903475414332096982982384494683867647139528551259719202908903423526200127919739701604893810588410892083624760914445881820334460759815346079260384671447570796680015452413378375253322299070395672791055592355212942475879627746761991329342450915778842624231440122900831032090560826470865244746180731799044225555038373823558098797117462600967779130289952967899693860676720416490463127086167967543740810058928560958675324745396631947477380850091479869517076949138956509302835097000741983649413445054378095560425996319338597718908720178999123854604480137532943396081654575072842131935105950858750181784901568055592415760419575507301588631100220937473317746070585281802339812669322937757142761167665821227113308769283081457483954427908346255574758944955173861151327973876146667499721971085299975108058003500446127481322478866041766469618837520947799046534784752314346752932622217407543610876001720778738012854814134934169794480371006403169213942512853109860657587756717238880505579235261493580064757209821822729936163468112201281688677182326559531266731721363805673627605581582210227434183654666817562729608113040904318531387889408167101108642302733596036400068363719578111270071530091097095026680128001852544009417303312831709357215708008957990952740527495268395927446505136572061764559823966309346977661693192183935568999513284835864673090806129657515112901245021158774788366213697302927222616934918827614334465396018890101406060273997894797092212632009764337321057455950363964460872699388776846942997860765089812132179602756361976290897429680011511555759550202102375821910395904836344648281463699585134817751237046863657723391896099645771495780462925145645712755072202407217668585241180329518640432398167548112755916151369914900922070611831486214053109603803748243891580278899124154070759833869062880332984272619357699615493266988820351111605950092487519047495458941140932376675761667996011459949478095552545540748763038464379387675945046492644933024519371799410113646002477809064855946809349485360547152298546100903745901365321167389383086396784356636063357661635260397540602734771646398264756326514250955382444326275346367470028011902543620555725938171941150078843901919194546471510534018133478327327710010327247618789872341600434772739441768913538895832132085658891389590836811748948560895233939953706193731236023828713530150740443253286210611742364474940675968074460620273351428114100458470950590009485556486691401556735800469307476350598460431961353510622244549256901073388328676083195629533031729392449005327436620928965063680978978793536379453421817923954792447054341337868852804236915699493032160098220981311584055514221590838792679016899851363765233662467810653790515676000270835200806079234067247385060238479034330672890830743326543580339444404499108105191412309536264785840583220776344278034726143758268169090083430736590710705664374895163071288465735468058430130734332568780805990575445768392805384980598541311781075852963741249525675923538016180756730180898522124833932408253873661898542402028533681724295950113592608162625823132893221472742731274774258281044088249032751864840561295747111109905463933676766917501713836441297135003174243707391918443873663056605232569432635448315692022145601679365892116323372392650505659662637014739612194039316981504701648796952868638517905668742818273518819219388319371005312656644703362208949133906156403278359038892586920008902371781549150518172827251721288318798944359336061521097882744780486140843361654327227220805000268684348425172993645328449690844931431811341361693152368674349910594152732837646838330076929746717820439651294346255014576026129736778965844670033774603446490821665757944925990800847356129315395453807052323893109157454564047906901886283411397443088929910444510906939454295955407999549976049244055506032112979511586316690520374876694289504315791240901136158863374487164491013475438162951695829716135758455685810879742155272492735586608229532722111023104716914229905031589108276166006618138759867270285151585624936624222568846061586132584379836567369860222399573214419827192231940614133614877298300210734188342600901555447571009938337807056194409087132044154301594737579862268974839536826920542564696547084360237595817086096133578456490333351582182935604103887580956526464378283680171367370964928530085436681910841497737823436954482186904915954816481382985989034226592372305533882630534166154835125831865970264085693505535722215479150833164744420915207619201645234460227857543025395057055792715802854072812106025204293194053827683870825909893277014120517359680906405926909683632480496101683779908780560182562724839071786003548301990782803962244552368545460590128631719244927040077321694176854887254066841099907920479249657130236228636239896305540621438158035144460996781954534853750524201366900103212275235609432015664291888660448958557721866110833420477966551520251628051829645732378939019003658452328104058391092775641677768338192382725500337252912986512705718969546277948172929070193683174810741782102352938034924573271567826719442824414150988584232564815798969707459306888045339306006814793938579760479909721902444382750237563610082137676202670487313420276375788976163324533486867098899517654886780529721753128414439757838127571361213409028118263260600518530012390628169486936565095592132408218339568337780950856376975812279571598648668054927832375485168648362378950150269762564557982692922333371623831325307736836622922851217803836217598260503699282430601320570980418871809938344794215972487705736880788248055130395102836025438714722976359440600257966978497145936307116275034996656709115170949647804808026702486967963204527236921444526128775630993054360770979283840076968068667203553350051386033731822354103330740417824145558499108815174752280136422205328936738814795448049526592101725907644180469371217497269023050939463411784046795201450684211702984977883519699635389694510730810369844618567647078222405979715856297480279548182742603163466451131989939101762176354034459616256680394565203850005286583448791384311419748957106700700908366103095653881856142082865248533274895884857374133234346758562453455008013998874264782895341765473195070933253148244736123220132721797913241069348908998974264391036124646479644784495395696770626588588401501495562927754854622802299756667098615426547128496503212508730687233107308681887883424699953757564333384960860306648409828854223057093269646973296407688344721894166468195715044211745917438176875918658089505197101403887370189231092908582814315971844014165545905708903886770868300876901773810409228796379185551938010371985093024679232904353810854167906307166495751577823526324706592772064284817845261695334884214488206943569685446697467016677121597030769620179621663822733542126692672181011320196897708465977592953340526833708748540474224106682621025267918605211755671831163387012676040105276763676084205959108344230607558893405860254858774819965032709455585518469495875095613813617657897208392225986573921830549170571371266801968847446655062657620156497192308421249365744916815700946839199318779057695479718942249007768400513107643722978041015820640130193072494282230495797869587297801027757280219686461776512802624930289469848220468383452108163212327995856558255638600148059311122885223331271948165384932777868871915605009023755601652465470381520177184295466172119610275999707579821453656856232027660869611242036080502906281853656298535340597642245640720263312615221632508273243165508103106026929300759985499919980087564813831903269520873176582435632556630146518532658261321242945097219865191489515050757023008776840561743226937956805826109212332603852472509862461583057913614379051222499015353437438268105020303816649759198331842092897518982108250808742886002047581248265088024495038197416116868542755199876905842164142313811319979710775936315617240156226383629393530200036928418905796533856009241092224356773521547022711889601273428248389668497394950115112789428650033655031782827782131856506486970942411857777607389754045769772279863275503049052363808781960525523426494453143643872532167601571983403246799554591831746660737376450010609574204227889496386422221656911856447982883007557421250126079137843072940910420018315226601668719158990017061795901656987370238164812396265121506120340276986068349110269157137317535051025806590454486017485334892775552848100918689812639702356067776857952201236092588807292584598848206928179730104181283302135039852731993474373580176682811336730508787666490920050652171268377355484005478099040777288103500308332444811225962035453437067651675930145709434047182253337238273669584171043503425434169865879062096864883073314253836871567259333514412614158668414283711358378697497128517829804698431803549578442400731262568278053806871555814688555020333948092238058850866430379572535165693559589608248018035477655359339567260647842110916692283577424701925151441249437984989815762395416178502705102676352477497450258368464243725570997114786343122501722842298839921847453476902321244164833078043261729767406157137094813844609925671906128910199829531926567995507216588108966423575188306003874551012273360812131044944738555085578767190358640728406792104701167919202438711794962976851431128138240719503886692587630081418465829290841797417063034561272164116256816130251798403439673591665293124769355198372456852637641671813002463478022628671956058884058083517727135427785775714595958633850258113981685449098909211782311874203119385397958352702613065859752048773000685650153264554303077683371019387141518660361530501576630136054455650729182475291978491863377629512304598721294574200624593119281083342316028944991646577609483598469049814509811087278506156149999321606902284361393002862640668069693402197553012106534788251233799761848641148849210362346076382569431354995269235316166256762980215722890249017780880212856070341276141068025555264913863194654177810617870958018732441631104168178600629983283855583898309790048990364904540292832819812973876970781057018654405683235095012256429940728310526559419208026653573887606492406339121838925388289548729566865668954258004721070986826947739698583794327616392732984261404270875120466311678696970510880045485457120834488510312529407854701038176945007108546589974098528956090575860462919669920578302086868945264690917891792040322100566588663787650952198694453565609099019943716843221838172170105623267594233394499283868841736849318776763391276257973200677408597915278504361840470324828119929874328805908258004021878353822544178458714358086001911112591637269247627156802242371108742405940079367367641868631915096681405321239963204186614770800016434673158543025006138211491663874461787889551937852688629373247962947241805464876353925525600358951461331390246583150602303103964957589695124846373691086544569801698029494029701533044573891511556575970512889587751189631055798045372767077624021272357923168798373010802303093785544972943635652002441373376821596994398771325336550990424616214314600660621939030710370091781218698150994884953996948086458421188982823823925558956558970538292072299717627228670654914614181866645566590450209971273896504796675573455979084212040241449437462040945181448731700906600536225806620614978381173452319530002496288638483783368306944930363136710458098739751062334670830752513548970141734581249516702885047511438784498512405100615785911170786842288767712403274884536718334348300012501633351098021386595351619215047653506999321211122603694174315783303318706729371849338498445176631735054402409268127198167588448711885515235233586994541050403225849674650246103365452696464064112531053095017747903453123694295134133392150220788990803756831176091147386644316064418202188618990005751567842688224380562459148976896477187750265607754672544281408070397476320640351335107241038957635274032203632637355489255034401013439358280180413417541914916687752298450941180002382569547706131438031292834702796578478694838143766747145023683258487170871270889537467528736450767239469585693318332002704174590405075669516975034753254526544596042830682120121374616007481485013005075878250651094508591195598391123484995006260270117316977568328157161117538489856979744094770625133966797246377424270060174633877377189696252595061745983037548047804442065380353833935362830741236882513800774796950388604268765380495558712355615782653640683971568133634507954172082794255293341921270593454092007915641860210624372074087750455888534686998517944979260414995048753116867914694241977644955989239104269289760797736512098868937494844854107613559521921237177195387106492201802778356922944428514756909575118204932621750464903610101212950250824541808845287238278736714486244951396181332759798713141022816297414004252181862598367276758146652149170892460251760672563660323165533666715081677895965023114833230441662294093774024750804837100418399303812534259793798846470181323453913147824955883653664226515310556844554469455552087675524791256734159773261286573815370557630888154081403387509515814287048305041776245902356248802268493471121123456416475613731295319964471850081372804275804818239987672086594555819071295641889174646636674975865481151327904085987530639769479610064443098991834346749889050826411653653369331728775626211205408273458413315002435108289232611938480457021942394332864068036496627852421628277695538499823304554954458650937086541563719783477330283906427385901094643901461143040027222140197549776389646479152693153562796025150108464328170100206346435555911897545933695414331632707492746862226201336017869608617905256746849837467194155169890823252234525108493273758162986655405043122690591562529479483297507434340166347406175470228964124905974406406727034889257859053681306173805600756000306236295015973595910108744898080363318292801153497935182145008498326435346986270180436688480717873499069676463565559379687981348943955533240264746322873270231781790208370735010746564041437438318773535705851383094821356636913354305347710597685178181586437044593380985647879497342402114768695834596046557183050842160357636731244008470343747590071724366463629036967899948815136300233930000747247637187981497271867050851423426686866841703634087284806574123748274510015186070052912113981680687534732718215738211358895557044249212442295434502958309634858588029613232626976036813829231950886934419559806262987112109765516207214850539955350129022994331869661137994155662072201648025978498359846405612713191190451427184397141215930305854339825427476146312560134817707699277469361511895908144254058115232880478022274258215562014833091547097247160211913151999066728972465892653011599744300791290668084679960589989718904546279492900622238730321619978960423219113192798514742775481664935788185647533069176301363919053325435281585140035778164793189648397011123859415264990964561743810534427415026275427180376589549944412966192980508737560785922728976186114753415282119580187286500359388586882694373964688242714900529692747973209119517783741860041778233909278394885930868466914109847702741539547430250375911582357034845672146200754675164848684529344253665986805276103879401566813599486250044146772337455057565855831746012537880239754264632204269292401068500205428826202831198208445436820388906495869349325681535518024825206369268480152435957938121668274932343621610200411229587123122008734048940509617449232019208731575390832688310607458310177790703631472194496614240118596413931372185454239995403207331345754786447259869173529780316443599396126041907393227539413267171178883174363751455301258866403697668840394243217959993089809400989052953419608105425426403132399998328087148222478688580883679648392764751554192053665508190813626784742195785140768145772157525540158147037730083889907205868843930638511968927179141138682091812283466449514978807189936809086444015330130818766840336506144033830552439164662254305202538520113699178944778569554486565183282185039768380714320867922069223484014139510957363830016140046805814341954784187335385679704574191189738506449209394547211961870891762427290920451224501997936171360822879927088252523822046635747779966821465075998911954315778263627574897909080074571826210503757669288622642697187108344971165436330828664909501079995340211443438283868773315830011244041637157940832392006151913806116211722295802158644557262149732618941852979970594613999257718711774748997186579601956698610295177019514303717786675497345256379899538942509677655002095746609682122086074255290652511436367126833779860230310703997143807307497234138196858487590717549172079573904709692961353840601357288012792737428957260621408825540783766822542582952624943239675721901334462016006310493320886221624680596695555344394443381997699984714324096922364227648772261137454726810812881004735751940639534828915705901404249854691800107035894926325107345789635861592747357997308539576330903278652877102239816758551631848324336042217262137212867344850950288866427639742046761130956462104874273254146325922143616064471366480003671250430532219256026216555656424749751690171356884744761282618008537094128286514904197059301353453925407986533665457310974872566087266249528530670645527651889933215204123843908691054359163916075491678023502480974466501250000196048376378299628182783733435160707440692585594356396075109449365857217607501358862914657309454273110768774590214417652083282155312504991523058903500637919465587211202679475562228756100624752071405843456131908080548985385317970786687130805134264230252464974565287142724917304172616698926037011049904305398749255817592510280683495603960388295931432980016376812877615925465806580348721315516435689237664595736959198750813628591594963702518763990725958474086213505358028117215004843797017702585751129693214909665376186111246913210198041793318697834774154180901103508318173289751461514086614816555944170797255759216552967725622643468523322581321790483253789895685283084445624217727848910550293295129952026476700771071886049095723537274248698413535421720710522513421833730258016400357166292034287085546343115242409284465756290205062778384122328465602466881197428389490749896845951551340993570688818597956182428338003929907577227376807452921083550904248964983493063613824065175470656881438814641065338081146776440523399533360999607059110740980562342553226658977897298890419879403627348101406833430391785706589675675840321213747363955271195445854986513622720354600057994651123613757553655395609604740948239710504002236121089117934606385986599288761597389938947081602620505339231091291045383616993344560781166952519583543904489006339227121031914645530498801845529502825155036683476973504359823657687822830870583085841414136127623539911366032310261359844707823923006337123594797934229385950904036608434307819977632841722918659287611060868864315183257355150958422189839597132167437635243410749183462949189168149821395356417781796944527096916480289560867359975963493013457210103002120332636528096379703415536068723840000932518231709124114912768455420372011042093620999604699920380383687747512478611936333686054395306301164687629081545716102392491294504559054974445751010544855765098112774828697055491805012889296804003044601638338261207054238711971682039043969647356492568976147444271424904927712401937948001196400073306592517920213294228718566632472892287964047384946314453964532796834277453399028482218739399270854986464136698199776767981072804086405248991023755330728854801460881069262280837081441242545748208276976037781554258564939432282424108825419139537049495228846061628833957218197700627579742185795741094734128100524609406221804330025232089965153747910934931888910593691870387675866845612703975172447294831953358176403274107152980310634368316999447114685457077579020550626716467293151601712674172847062562487451752806050789561779862167556889240133485592588946007945164709678058283132307719638150299961921693725138394769968024881412905066127040146849906996648529168197570254769898203131560625459377519012675917033170187004109945368260575266567923703570633846521013822521732239224301271952314602672230900681374179537562516083288348571705128881687534904256970775132415950774277883929494858377805760269613576420903625771286299490372753896309841620635515508076233431620318906032309579587421038611879546720114872169855878001726569281467475607310297678972933059296429996555462155923966193872486194942569537580592923924840351956628897158389798068330372513251295158251361296836341854460766750670972951213210035260076735353296995305375099737686659020747502485471564016246956626378047750447205801481664031469736174117210188221613830164583475939745033566472519019214055045072587926681759741479958171593524056582839674077121951449637256107610354848348729411431533549752089807509063642325010508534263832899353324168439988740348659595391906150120527942462913175367604900642359718622862152023477348255859113772895435708448074986016660089672209231853015996076818428284175242181041652112430143231253343859675054948225730725457716079023034666516532037585841356515587251981150170606476788164976606492585811042531236532475236395587753179215055555380930009731011276065967481716861806206798824088100312749893610159861027055348937856100407649958865755455855986484732803275288424358450677096916953660350985966071149331841602249545590700764508357048324356464366584024722334105324625265353075428879892535477791955799925077338596142787297099037223079092429599965780279028743664062239589729785937697092326517627340895991140331159634424146017079487752003476121516978812898393755195335099096920378963944727409846226891404873403045874422028455757335042463389212799603248578295331374833212369580077089707703270078380669297939155111219588865085661063666069781219871578218946123586805409874452578160191332989142788699317120110622421003408405562154396967049929355784257630790345423276000517815367939719602865609843562478354538417730875417760321116541025942456730583565173704735879392856266408233102351308772393728138440842685639638575003847434199903760488499330363785311295197588151884873998757275040803171820096654298892548653868852336059267960575008654215947441678803587653672608914133646382642573515377246389255944026177369240885797940623629809932132184531823209653182668526613398974193293002765793290844403710955943174784639437112911700143112186578148112984639306538719441341508693898080490925928331748368340028595028101427730166108083442954507493944861344227188546444296768018655836279762751404960143850511266809744301811125745747586707387537547531467411436086367315754964506539934976381983037712973824957189424178337934473790712162071018796858487001298258055465492501676743808186806169711264985631894499472253174759575119283099413401688513464072286629399558715664778294025614343802526022258416180960370231246526997329240257044986236879927261687781353355464513183788846110647283799841464832186684414063800752999064251464243589676609768068932925827137623607203826966004078187525357275667403955442315298501644866082103143650307187502914742424089325322783558783118490539634709634500060179499067036337777926828055948249426346727464368378960050928381914880902132956511332774731755664569257033633581184967781134983694503663331467158074193509533932293900822437883959735393756106617796398783327971291604730662049564128106795790953186311496417959907574777756235881556994530020443158821860610174267631534614705288173733422204585186205758075983986031283113929613974718105812725573731177951910213421398158686969102757026126646377509467467880777761912897748299807685935424575474316941714177982310095759718033016293624951334301666813740649970314385448641108823114496241645485159318190093563355935247059331592599972972706774579255012273320375530328384008976234767992129762883051926382804821124654687856098312777459304773412156742673790168007462771307152791478654638702471623217271829633130078932851725360103321972157089344322249931119723896728683862715587837215924595719692944380111098006391087552611722904311402265537722886916436128958537365182991969707035984978013839664342883374397871114554068304821760915218569254725365204794803443079210246585633173485602067396652503520639341467426741812322688797433843067393124693691791373900744679752456083172344362117563925980121350303612444873681323459924507363193839086557562542438601691524181506859313381081584208852676721620236970623953228445699287748224714527672791702543798545144276238515988893543319346245139409525548385915623246880161177489565654477325727351592888991371385245150561639733494039835270773650870115852810641482976034803921667246433465761096544794899411939708351908533886100946888512785341856332651428646058184651085000055489770162513396902232383230631940733869864853747649577956234583707362810731341945779583051696191587787954149277775885423831121194753045548645732554902496489341180354747798651311094724976932558631664879292122469095725197840996463052840847769105807097685520436766582483304504537655682282149972810724881192516130595041332679400387016041385652263478051668200717850829963051805491953855193630034358693816029084321995167839236649525729808051937585522772413176584795425726956946939436955402973163503243622144454476619830875700557612429873065661795038339767909731391315105856460186365655196796094480352639343590929068072203496296527516768523982859966655700163300872924045360086923652724462617790461586318624740330388105297752119611098084319717088743192422575066165124731051891234140289048494035255703318979165791919235354720101505077237355156698246895234466682014259078469492430063963323428340496441139248638773272929040413288458055828704692808824959827104785280094227916602466964939652660535696842880122733507010693020127188769547500395402369010580965083114066568121707448358827259759400917138679964203886312426278261452206473335045694913443558820259082607563187447935595576090948191778607986853530701319569328473256697648166820260368485014501086890565811929618297642929422199186223486949936611880168612588334913117446325809426422782867024905849588956539515279173365856797905399359907990788493882778219258134862848035737380819282710416003539034621873271291276314018494456802104396486220221196215516798909078348175724961582000676970374811075540735693548989216482697014459847546845101899328887713486521103080492877774443228020391697737513102260605271127798049961274380299161413058309803047423789277958078181674926019669296698917744862115956422030188241701156788861239802121835416257990595803911595117800050738741055139171810337812047751234707907802074084476351271211592038519639297485936202874705327142974956258365689121741659818169213274553724204536142300151961693875318428178773005301226330085512483051892873948775241624582009770346515994965821117027993591359726587935124955542404228987148059992353302394700671544795575175056727808836901225599670295741861027133219989467375044334307779299685861766260175828088113374698323717229881155805453300882686766309240613289586769959584662793423512210244695804861568534778190679789720964545836107835405227628868507285292530930815540964096058464814212639057947904711542792729600698051553480719930472051856664993429251507655936750735015704575935759905402628670188552632308710606263084046831633254755157439543707878727628781859406237805467319171650797148337323633422464712216982730593368734863912157983245516238136429110773603213174204458937346723563597347915511432261390018091835137891514818275593399494447566904457234677031337562702089450508098828636923961298107364511101827394983759482593497868995161551570613148117164645915120960110321627810819210831912386517495923528176826035621701242956328655901772362949529418316955224554261356861213186462452077255077878588454134659054249033544233125504686384171487020283503415688059894495169677160958815790114215322318187521773298208134501071252353119435857532147773411643336913516425857726213581771312594233625388483859402013458634315517038291854003354756521397626598961504484856399899908279819663608989040339901191353452663999908227638841709235699881854224382932523545926838556748460465802277190686144526058029700257012602276998881956940161221850723132551177119886444689761267523885612558052080567711194657230625665411908051555753311901851888844406631374133083184290872956345439207696042752191616587949522375216448078490319972271403802652690690358520691637815843883378622748108522420886653711859827885756448618800275124940537451460688137719054483969168089684841298321664493190972682968087154052371569521457585544615345060349347942487373956385469830554380301625463123835798832834852003556672022071941297010642469607514176045813985288017860308510127547348366341123272763417182379327605420525480960320659077040247902166405184190179506349220033247856350893579935131183200687304543276317853861996004113651760877716703149782934142273728853585444840458057767459436588807472806024941462891895618502165088212062590459082485776621760147231425290328334628499781675472223152445112054509841303734122917202943347671668575044330150978139162429310153925709162891352302957030199840629667825693948693525518320661941267792048634573611430412843111338724296073403865990118290565108360467921650942300649246351912805505940381820367058826752895029818958679497280405436890407262223541713486980269520931958031458671315534998167076347748950676469878779120597915775262623728955052270708906127251355694820849178667345363077916059852222100246655396483414853488126978681369741660934726311450289386959499853960927519953803742717187326609253096057264880056378098612687474492237246545080978360285314539800609947838915984966537084098637350894733133356026362085604355975197623842174739800475606495581372846123260998000977607453909167781966170511362695492265776257417599130283863015910841706459653248935219389647941653862526612062947986690566283304030632222825877897750942393540400962376733007557816874026950958768992515762066976836184963744618007233170542435822857414080426946240160442062724526329397316581202764266162567937481994423331279338103363343181587488168418753053097269391720185375733003078379610152683024256113329522989751227756857976922960263545761072792784594783387676972895591367585451155763939612261772288467359211078101864418776759674745268343488070053364317794305814359204050121723258532510469940185744080456039462273974687180485111081835928348641487967799349907699292800609354174790837770687922401901075983302040630200665091236657336353300218075386351935863545178687319203289960591192876389464970336927236292573062394325104353813369917875916300807081786742919189467353372150556990169255224836662868587358723098400574649130248392753640263936867038208588814658887013481643443901861285632889719712902140033557347818988679199028464579287521824242241682482985229082423939551251228200200856519943856079334517860991215245365641133941086269797406051602799287300420192263769057825428492006996867812215774769719705277500520398731374435696948891040867907318513713350029788354860421238346013827498942187272776820567422816218566488207766679266357118819354895310445870165958611106188763444073624185237365442563433218919111985648687974226964774823963104607361433408550569429364552795080587404119732465808315037083164421885841334613856978488800829385980401130581702418938318457416944818920923584158801635941111574950823636362589991070038879007100203816740759267463806053494494893059357874879760941969768073764019551874737544695375463415339530290335220254181381685271862510103227491109684748448190247875573531707940562707556431697694862585992897099117182299400793122625258904743637722510559066437765766465092116034594519716796268731482282026120694123022402784487389376035563967102833887634987730889849685008577016771381517878667701165463003809691707477023782969628609634918268485373542284690029633837665382103920639424832310162655336577082693578717978140030479665610360672179925422697415978795815441777203378549275398968912259801801876526214557789958243045914416978012142418589624349184970521409232375703543406489502425626807226701345476839885693788445278553492258595986432815941090702422718543848501016041353124326603990712913620846373265486277356090336011344468200748665847685606746435588970803041480123106130404024003796809673918018901898980018614783190714517153550055538620255783369945645751988916592052131585940687536841539429577637304982448414700136021244308529156585688728787397087633214420912272650412595452389968257427070782603729745361919860019405159528641921032432099887140229303347571633066522116824646663389124790174862283817744594351144968000145265826195769611996584423187772622250681202825988626004935195698595371219831042882775749871703101490681322370854091047609877281586139913601096855494082262930303867581130131168999467677403726647513845679491078520033589350456078605201095287233204338596221580547352933397660413880094457872254553059270532392268902535800657545445087136880502063960915249974983783302811663238892011915675588645544492722213990839130450739975895793104702124974916914697585883083601283249570061672899791975669742018643815176410626050716609055656907619960819318349834255769774912036581422253570002947631228598889376499371871304702586145080212455870139754627919382063888544632699410900936022459640127264429604554894919510305867483994779710064245054543844192686068051635830862568989166923009991527719923165447605618423493218263515167410883371340837590559577659681203496906948284849751814637550347773910652096742981636365998758839095636023789736180834135643156967811425630491837109174529451350058102609516385459556427918510376998164890598778121807785316477529115069821855866507468045722564633912513288638976455627435083474184091936248545336371036839059013817604062188171174163096227838217048568780587733436982122749546964881765954108814539300061464426052090494310973200052116582599238831559993894830234231429333789827137855684789063627534257939044537457941101242467368182479652450273783056356397510627354311301137299783485973679833219120551559054268836838430310769275424801991893169016055786593781166470786976173657342805179643434339466800023348037425974997837616837790898498784416753122845174856499659124968753763750120909336795086013316558161171722052324100756202646459310920708349134458745011765329756675817351106893396217673967468152650276571107011118899065994283656867269977965663913939642976209296944200302071616912449041336591421017318468023252724557666229123191221162589375143041852337089880641032200756887802514994931608743718287743944479338123984360232460948604228022950810462443185459150571970804617730240817073853783418331497143832262175935657874754405907305927782891166647295373332830557437472380928313565717136540127638079954857105960468012666130337886482347550489921376218521934741516767288679309010342823285821527096147759714117029670918755085855498813978219554529958997612648469882016146208360359237173635725282138028008620420411899718673403393405766268290311984914393529691259053787919628234456509306078844367087961642339478533486438465471442416955588358218385699945293191366103858165142531183986947669149162475052018934523100902252747580246384164489730754674503420085473092992712426938679298278687687152054225057094536749864982148643425648197090544478449533036370193687622394128271031263468524140823574496413534305255080507608324846566419909025876216837531875929509298528138441911611840767547649090014103484796686174389672261327752080444247379774576011159011671248828023816677536925880859724544458779385610347782155915354578548765747284062510633501390426161555342061630859672501086321937211560299552089397974371682099344373414435075706881052563151711848892991340326312090673132683949547124083121770404356781686233794267761462579994726419928681428758579379459311911414602229241859276664029825684453091900963370132273349083674043808574195006459982295535066527464556431748469686664856377663375779293035429848865883511731659716128099071782287019683458714927217724857668786257400747693468552542434811186048118623552518211883297410937163238328459543010251559687299506424398700340963640757934396937867933594507315876125937626107039855518277199533960525606594663583163696147390597767995618781587604617233017512054372345699593607801882600373604439592547406626451099481652171377728141838841461212134371701617348089887676512288472581196024727965463360949200931406728515902331118063781075783013919873871436954359243552679539973368079698579802029911168441880275152067610327326635813697507256745969278111141503950769101483398223004546653075324204719411629836189078431289497913810842351816673452658131210805213310165380105274296118825278661456550345448895726556120203533183900173993391863897966162026707013456890786092356915812183549698281129872831419739516677133861831131863385112016365451910478691275666481349358229646690848858386457760806113921437922357740417576323026917899670617647127091685509917448259404658360494195230640112765167303550252494242821440844181601486338095641738909568917322428264784965553873744057941132619163523848285790686147600496689803338574226565418703909821871652277621618162012126090352105066866652205279804557416220336916350918745215692416326560588232114772125341684535689344970780806197899861126291852647898388523397784392131869624402563965779162290636167123028081164382136876614253835937119371389293351425940730531733092261985208746760965542961554940817720628474902350530730339953159527422665056228853446701454523467755988342218916233866968635415704998197766514886685675979639225292982221163128055495844131785507995261729576048920190768836271366725329905929805397816834709336155108742399397184004877533862310447115226675808010534122334904325813533706105579073897883168085927230382013975462154117917207454093596077338384548044377951178073589903979749326626403834251944960849956140588470327287912031735899875301319818387463911644795315527896258495296800242894655983969972261931131885055406853434820379686069914588524185909117034786058987511745634562229527202072396916995018250664431308225245564076055252538490301814783058476239887377957554713910872628636381009206978969621255250421549917348426249906403791009160373351389402888673180791089919458740860798363241883773122083783723298320343177270382874053070604141110860361958552541656169668838546396913705970895488609663299404161010542953388798795346863027464203864306073012551153627689105336439249008478943510152570958785182289603263085114920339274607245342069374291426611699432794009517209983025153572058161297841827332273288275358944335484892449697780138362059006878502729815918294356451846197426406645016572689524243325975840818965001111314263301822672437787902962902840978154553768140471884080704532261634665390045222290459527312564449591727847959914565260924298944068053948835642554805900671806450440625585271146676897346045309765669748192834659717217899194328229138784464306540770330885172036949605981796402697872132196384214469401240014413541868980873170988044451314400091033236274195650700534002133456801009561841536518220691804969277088878721028659795257285744921974306912457494270359122830997081860966376259987393939800727482188035854359429820400027197320302409575765040431723738713754476038718394775205735071866615844877823214665015829902199754942926746372361628262824319118503762699285023307014820234685518912059479895283534590767305832123506386906312736981414238374978853516848028009150131051720577903761588442170621558570197077826124909903376798176003925185987547787832900918495623049049048608578646373809557293822349759494813152665675896732374597982635004336710098258799302174647042238009827378416200649639909216331497974552568995199668350009066734414647868413690870105212035876282052022909152098986733291411337755520096520797611538687836234210122469454986374834159728085899617459786143494414479388606985659113741927293283432825744623565232899944004057002212630341271718465101949112799480852007827292915100217840465260280803767790640105290282164133501793967671913378293080270954213341156500842985743776485670767251586083982114814074221881555749344565477787627286187574009156714666000776451327400279903881356263313753198232456928249643628482226556167297659583928511256106080965398232428724285060938184647135200574474956840562904128526246231764214790912051494806404044915068291707353476038673523041521233718765139889406399878670711035322291075561368311442851796085674227388234171640653114334660669674413193190026965468872987758222560247371399684598598918997908175440288310014077164906718149830796404031320101663220260121957898860544705595523484070568934901687531978292810695752824494658066125938420188683242422215714632489153725741664454306064616692293255947090561736711681284214253426973036421441836576844108986435659109247426852199379260118070446891146173415531348294898042694355412756645832385427831341341954715981411268519209925687890871406718453965737829247919788420793683566083354495538455475285333547465908097756515417537678504974962899004108593721247107788094979468318299909719567258061684240118249644690217414097979816809957824752577658920297387561112707461687258260608150673053396896145576369141324265959725231171668284678754997359501334258216070077513090673136896772529607884729241430215296880564624521950261821859405718675921811504821436074352453573683250034642002145957605592856417584998880993903000550403007117809414809155161030318575385279166883604599854351781383256327076024620460466291650211418169500226078606670436737193250408417892958797270652970156779600684873088240848875600383662756237401391667934746933388164693755904750795262430139314760151866691594103394303268544587920050856809061631332013393961263544153909577372150443630166839354311273367888007898002576651117070662247553499263836018535295054058827487435804172091383191723010255631665814074629598972127948650624277670422350049994845784324081430136146220063720522701485043540670668223540821226571072381072083127478350549555710210715011368921450698247730016852493479577368669109669214118639519455021353048760687834359620439329936547526238434226999630748402165187598448344924464773686142854990444015751016479376035947217555645552198753765405259191862062417234236166047407312748240734121612200129055782454912680145453849750244436109800773736141391604657596657338398644742720364911788915057908516078542355286908097070120237707513174254361397664157196136415642443661056668185066435973994644472827342939476783502680985073853973924166730044428975041281500411224799988044692557406061130289910061983272523804442798815165802475358953616922647944499293604831044566137225774884728862264403174218156477859629154338217040249050445257342413231966843385390193382383195368062089873325593908444014372002851561088118133778357853424405271096393723353436120920379372435783940219633599586165320273266269135079839407872776573999240536531592048656082495649306830392101350527638829705997385109714834005160784907221602072677259315475821097988559715202575560813702029704772257716845367664961780446965570664050402030110711782001578757825041918350055969868858348505815055457223711512547151725051933962500126033395377682053219431693410005269500177069319071213650684557078127285028701187720374871609245508003600706522698457016202141035829855349239392989925923510366017517171949133521208364792968836404972748472999233974892893737211271900324423515867184305653601815089118545916427408473914022831170828854591098439561592848310130225153258173582025264186853806172086763588545296256955888576415413213525513095659493291150157242966861857190498411814379634952290733143028183343387185810934047237858045262050249496117243412188334027586573794537572465550769676308919463765294021523716269910712864920878434412753976838564628920948448715865711129336259548676092607586030127629844464010855188462985349718759822069975692174280952000557535286295839719356235060376198325589432397475743102322465805900773249827700975219054607933547177792433963301305289411385742939076403794065433340272900936793141145141456999284508289987227218845962481860198366234790480417350205951672720643358352893106682686471808843688558542991179170265061484410938424011016508774100153187631401141470131139460602131773877288488535572374526686152039195017521389582806932125852892050809792602095136481914722164466492327418639295455663202636258084693092703447607391477728443867270495258317574415059407966150726293985419006043972481810508524118010552824534267631074899826587975979372818976995527232125714518573348581908911340189187100872962674089275415296284825927936616019481292900042209427850945788774858919844803398211709536530329544667852221008685064326002927125814999300750263200957975775063818826628900893794879372351472391061080711453061611728626533979813932395267976322311537550041746796028806496627419840659642059161043544625490817615955175452086054515218329502047828246036894645945838043907599882568163486596247168613605967398785517260354334892906217815963649587767424813390953372932768754391809524455393073776804138011305660556655491614080565328325484592603529043434355905988402349288256759462521354963780002182964386703955232851757252215250154682890841042120293287448728476150808703744534755175975723882096147485295819675494530628752694894829614013602261561546191577781491116971105822482745844363935657188611951234098294021105532831151117360994364121070347932408697611820595647067847129946233472775886500280144698997610531333492902973465370199623065899084138057089464276175009761486384480810344612140399681642111939878139535509073266882487980142481193968058945723738738675839522744882371282088264442113726085652390534776493777722092808697789293985809763368421642687787056888424243930963621673254490894807533727129935166596048556620570080421028332963690498502206553255792628110955663982048097644329537376150601027390893556336259945645882888544586277921652381943329706095692407836251790959122606737729462309319189810245676535860745679325087790909293096616405168244103433619105456593176918097456337968889933761357594771634992104092498365084432802762299794024237740461845659481255015833465887233612244787486324362957473311295345592090906718926944318086662323540207776569002994054268370455292856368242068744083205715610949787488615641890791005330976317915027334687058578927237998752259049799478273971178908952267758858519729542154247863506429379482528915789770952891571694846104109768390141661278990320551462804421000795920106199418191497662391396569068567148904282805341203452056728944959420599504123063940908711721291966800475802612417837605941779790348607988275244448410194376497251334253526297718278470147515268454940398771841472904439671286876569716590925945443639509893705669052626220063198483221609822173851527944270754161643870940881459247423169832807346142323329219861706946536138454101502759510092372841677233331078741633870599013597964171923556596216763680624535183041213528806786387534352993536567190490348545696007366066760763871567877301743976555335454552633571119989699489976458934020478304197830108505629405903612038706036092871643105946857269226950304031985924102116269124722419809096202894665900921480437979883518000882500725201875600253476641055834673496633625509102223014464634641969603006207665615727118199025115759350635920415429753836009892715408626846767178940821419578648300171837468186225328527943205155454237530793439381034703110161959864080599600856110486742587325235237316224767748614471973278185490944010591891118676406109293194558604348148958426790872997867581646922866096929554340737668595264137573134042840846918018333671143453739929167462572717963022426850289070544061264284152707447802528419081553245164154151317361080232124627998058342976437717702506986796702873720950765605415476900825484201932117074386491113564533837704997106545400867180774895467809208172686844171945624144331614853578373774222898182815383525232734258127744601361511728134511396373814595300712121352269649951266094170620960329917604307660318309557141455077587370231884532449605445781192554374187831908464940419787519179251831596674947809247226127362635282603692770553718130743888366790426851607808296405689900782429181511929591067248355555782604703059714549951290080696003469883087917840696720161558950098101661053650099278526929400942528897705192356508255384067610320835813274522090781439412817360036516651265324251199278020813233015510458447323195459436193807334019167317867973574389194506294951730121193190894874427444377568447979703264007866806913058268964128607595211782417879864870927036944005382004283088095339888526436109742647571971411580182549644097349527854587262250330696120309466230876963096022289971539532175409825361031350907434996334969492935892029085811530859719161269834048300294452726527350751018295080864898754509119230807660800304124262839352388680522208932632015883047185267922755424846097894837587821429195488449416300237441771221552568983513191446255585758582602456946764775476097300185094708885403257189828360108070151296496059936036947031397983745312509588158146557245369514826613782214401077783034026559991367512265834533265111784351084266717367096169969161946940775911333248399310717605691129620419191123473123223985415953043065267424357864651531183595155675086860252219700925440681745169999960230052157975967244724915143162895629543573900992498654882121710307049389975407648164014475006648948112219900402680683525408603582906746658854760078558755938893779903137431355265101716432915993455162263706117810702744606315844223737177172579735831202729401561251773166876100920973331050849370515635837214305305259116948720264216039862156921538900508757947198467861362706035461033807537885167519646727590875896561314149983533630483929506179563949113430227694520222597489932951836093664157603506927845473935525658259387256950329845118008888348483646432119675450752522986216869782085942192104872399316965256766262192212570404738025544858464732671848237204031211489212263583572140774508304347248619905877631345489864367323809640151693533642703529467997145868812004103868370292588560488304862480272125527145827569002600431972015402145388227129102850438257610926971330107034942213588069063232769337952217999795673869267376414322110220495529696751103073714416893184848104520412616902355307455135479198582333105541705553077120648493908133848849822832864481270105310304061867017656341431509276373148214513077471265037778937694036259902792429202910595402004624652433559581281689691505767024433666246494910923497126884774485132139804396457287660080382267644817160691969518630017589614630033511462942806629082778778652041296546662592663158993197010626545308824519330841007158870698707463557357624367928758409160867449364976088268240973035987621785884200900039760685600179713378296250481383471931886049610089692550138078896453206680104979541142801385206415227749914290543221810358718087436925703985149152048553327906311998128051171030825533417284419574370488820748151544455757007535413624412478480741895603460960645194383515606447135002523557619337763202235467575126167030569117437367026243796711116076842213658179038717767258315919373365501914129943204081551825432814102155590107534153491729873478782877383415818289180778252099638553043057937121278113370631101814264888432750720289201992421364222082618584590761933749804540052993713593211647407457452336893751754399099804474213333387965434115155363536766222830097394770511616025721613622356435841085942193301415887448492185765846677698448869001053678528024260047693920437366991365036403740740534221201020683240548493783264432287700244529512259312566820624882316212416739754399863805035140444234448501297670297884273667391608867349834189680992769956448625491784968496406440358600162532941795762832430799983959450789419784752031551607861813388897815085056668749072110386986835865927235935238088447313788654299698750933608000123916980762424788877847517582242041383473574454980346826632181374093545023728550609099359983332502775738761818793388344181472484605340705774485382852865222766441310417247888717878342373003678112283724926999238744741564176691505712515892315417966626698742081432626114647136459366861862038995597642442121742369132470896755723470489873460815418877639381338176854299463809352593338942958569220386062186606931873997751996914665959578406462705257337305431852020708585440881473549810831851846662156342734579330692950803517326690567785469746910396336769890671459915778484707383514950847856529432143966754000493961723541985966184219239406753417633400076438315367768471199762125498503075945811945710320624013823583861731798325710945445429955558531866150912361144796992758079334126043405039151804481408177037153515712352115045379325303862598743158318355953309578408536949900427371060540259759111414233808708482857567441409555802712688972520048634308632483864590788386719781130164400702912131021580930417572347465703965771577243736885140554772777933153509989419701241258794576168523550972190308620407643290980242578146999274223812974190529518300973609583379122339403822690895227249200455791703266465496526802574335547662539082245803827613723095534517363753799738237072031104752877475076365546151356335838243103428345208658763911498635659429505142842819888509881901425663939368534501027305085201409360194878557283987546915458048060659084881226491957722748638390249780892530091046218138624319607492504234754791876864256035100938960662748590237212232595683071864645248260424596786344122464730485001276938111192648689951136205222975448924140985731791969406816337476549643114305572959132647227030684834792378231620743713999323147982068498945517726617389319936769264576031153488645238121452911441481509217340776749608881838230745244943593829544593600562378185948406519065026784310788779849818046370056866925773940268649054574132126461740178114439790988158653811476775412036043982400785398806223264527638091231979004658852594430484633937138469237463914522317391292535256128078809384507012308638325056520460129994666481128764410484491496996638778943584867555223839376840328607070139953056696390840449969390740000899462310302101524124430452249341499268496191769411024056470708010010871385447128877173893546797367582387604288049352291485597052364546736677984460131274534633297778474164307359693355549372816142267744731335441415964343105719747426655900718901285732459620971178336683215168394142093586476011417398307784559038907408911266555002150325966777796415199999357270348743034398731997293473836242708250983539677573222781327740979988186444846748108939650435628077049743902514249112906506133451359912936537639133472756291965112737755222785332467245955355585211661736547539191659302957526144539161659124698634190127177788229108879404885538199977198804888791668352147665808913608813361492719019898641289114211516874256467600916304020473075738883441260030264394266550423068345615701898060628600387231187298466262861728955655477953480216811268032170170317069479715816064442159535194767876885286783380580712818457972883558773793477709912867465599707470616044013318438823106473082494223073853115605349502122543402985656357462335762271030748340926169535384517730602611647861996750052938585865774564836683564784923259817598738717281915592849637749546245560552964557087933398926572075236001252095211491672918148990518379618263600306641720446845130652280180537989345070539033945760570249054368663486978320609098007574472018956623759032283660087714923802997014923499976322652409236787883635467267013236685209288071729112489895919920194653223680151337330825698567242597891463331743873127593515035757755222333584885732374516924284877965417419432196743803389897298951224627184883744197793360889257815067356489050765377825171999070160012233325595850219002446705890397279102291633195416058375392724934096934655538511227695617532912576316373399858354035884073769518359054180205110827069119766338179664406006542465593857265395734645990866117449873974958199561110840284515344383193685424909626124274880461357435867945410892885093658117259596010168544885145942571540146970038022937007543798557384926000909924120051389543819599118388590366808670092586528814143145484275805591367690199147443674570714531435377085461070964897714158979771465652095105944777699710401275858221844184891936758266676920337456068181998815291634675012257014289810437163959082319830497201177647048925135185668996995727217609383280572375707220800766876457972105627555507460039702997050448349933304944009120349694061217228980926150928451911296595398707258921519957399442468729585331741940527447901573954344364084667766426077808640429488751723606562609422188683220315622384644040752247959530273554333325835250490070074072824862414964025730677834599923297364674649946644090538223165011934243210995021802211592591042774381093051418959703666676614777864762447138624627328890447253812911950136110751062252243216990531310845602869488962154022967002860155336227759815260224992036944550809931669989502802736265740601091541159990158989068125354272532574803946418350008115153429981790394852839061050922947831166664174652642021399975953439265694235136918396055594802127458131542098969871727660683164329665671625089346590264138289952573884866950544247426084071615077260973280192714570992355143702782386693206421974654032687781178886146133039768576786285336697372968758315937662673021973833688978217184673185778526568528171287530030311042314707383678837776588004357764666124058998589862224260526406237119908360644037389271313928268582150037598003953539152982214887619714240856522912142941623501525353291874778507472959337764118966677838310448720072211736717898810858605899970293586720308488578409330712157360997516490234999607023842383688110499728662087069836513024554074471673544452732477526655646773961817112264571287303143381538127854557392291527060974983169568786271511740098422644294947915203723486495213648423369133573336148003461558393587738704162216990473395714691031896218624259835343753130238801204670009787777442382261682815488070175140160425117109662731098884507385502124847181761614821461895492177035281601781151019388949906096325819843313776084223654312173834358979514949112967003985480810913077709987475693390904979520887910716281947924515208131950619818055206629009159078945799249290245993144557708166274566953730600518573034299062012567092127226148724239716238857563036079302275154580932019287044496046072579229456785233001868350395732604405043728503438674136037594082534745575652833030374910420844139869466568301403042559196051731387916290704303818199315935020682016219500716474774061789680080985153404717293336551176655896496730169205113236743737792431578630659387171418895328255424571561506404248691087710259306994770963552402985300027563805388235459250171005618220954150924624531490774183018696106555527440197698589736717193343308452614984633551356399849490000850181425656151645445732161379774734669060312951698067821399916964056227451459207091696260309440062111014170272068572649774352175888182597048072843724622618883419191716573618045167634173711437119718806049472753739604125986159291563083920377598902263313818692421171260243059870829573187929387035974212537563445395861252821315858171493475896212066082294466892929379814315916367622952219037058355920664492695705845348710590578766008983063626172818576032456504694659471402431387457225279269676578654548954837065288557722368269241911050608428933347576582477797073685296324670634113775877525538604676201400548065683455031479322190335175883746180006674201368541615224509172805100239429316194719643896511876116355343267853714184355959260757238578571899604071350741474522086130215134833623033525570107752443080602918105752652917083765652805966362081349669814297950539197389851772182337158913683956600157308777987598725006437543740700808332557589890894744835897797114844645450619623432049016216877614832697505596982822921626374543939917349240067570433920668501152047493803369918548088361526940116618031390961295988223692948758754958339142249203711052192840811385207435002383926471593904549758903537818599858742293379992785565820989203238377185447289484332603408941746936492614999272475891198950273691591845288864173439541323489981610504430994169496985841998399383319767901199445019648710431745228969831821162710189697670704673142121326505350873325539685986931719128448469839947020824507693300591694315252312150558694257423746967327795149990655679384646219354845478616331582730089550815171426005795466037327949477777021395417850562761438328342995259927076306003751473229040814377554839953576232880341148709111687647798911945851442507346251340266068277488802208997113883121542865552005696633344813033830964747061213746979653078939956438993617918010131686074261333654480972744443320392314980187606232746698614691945163350108548020471676851082494187146894539610462755444749373685973347372583222777679586967466337395661474096562276346952113358412336103211417942219651817461061485396719677414676314721044661505935971250882499112790944824697030643933244150184550133149828746712589653236383333003449087491395274622398210354348833864702061751480943488037261636983403975436669959766206474570724192889753255355118313753503286318500902791457589579346948618405371453925690854255851680760966403096868665917196597679051641464076720041793798579718521736225013175067284775290897419644999957107716320042220361442305765664716970616563909763158772013620290939473054825348108364137840670949621783771032152219481631975750644036366681243470225702116901076863455067336922993320904334882356321061644332072177116212005529672660974002752532414982762762145692263697784641670621160106460544552906764187733425895084294709704511229083782838080276966047345450000634107310896090469847910763511789383994142034366565233598112197176344391706534805454329409182807128763921392980032624760087789696401616305704782491373835610599343489595542182479005926559340663019596772035759839664276068552022015026908429429873002993332034452523259542876068269270321881814480021676973545211602747607076585509925687717006716287196247910173866083179048171589911154506673504135898911804916320499158879390424843876748944013920245325627078393237870728441308626636159793533372735314717261491380947329479904146092875144161576732063522666350682360806632899949494396030288661206445059944289999638882776442074176812317299482806747003129042935698245718589456157392768429481354298727752188859185794003736735169388180019077205498971221565749615966369414361796752615410582892116458312953973238460444903836539218721545423461324191805101933615793766118787949174332110843073142523218913434566049437263357332984020111190460095351512294638506283663776956398292037143664224428719796296335703037792997087491123888043028965460059375087898262784132437742194474876168094045849344360171876036046286938964859630584097115641525203586392835876993954793554583202805371538659093795391426563455467486292017241277056791877439948432447818251840677949634708354372029761830939654955485095800361733596140261893610315568726070973394408624850159182353035302766359482181325675211651706008992750737637923072398239871454137337251346314449443205813190759047181063570950909428196632267866385407794720422602013914856574940863649725580081488625497541850575928490705817586227722370954348460534313000242551849572186305643156672276105207464407320504422166522287443177388861743297919610293357839498187320607631419470808621618433525701641080249019342548900429549321820509915737437417721236198287565129023151915792151635135796426325861052373100461784177537153274291818307672451167212550524892786602110216645945312258598078280718203147835325293239866888289827305980102187350609541750738860440962668231663603269774072952759868883204999452862003973653290843223875107667217887764497715466040871810266734372328731133023411751038926597925595921761125856496924528771050801117084750696549376929752192963284383607881639487037957018020173125058958954786518528543879323779611580164063991137079437320860171630542625753605129579907236939812293977836250460883061101173322615833077473029192483192619371238317857346955094168024715439974627136711263310006187628576942503163987300804972354761553949603775755718495819818188875627871109552720059842713778392262146054570268301861317943485846015668434379062734411846769437489219261394314051747236526778603634632975732185231737889036095643430018647592521166777767944559312308806713930207421628994532906251332391913571584323668919187219673110766435274832538460612556726969545357405155942107312231941256816445266787766988742722003609561309249580263380169631957166453633830461722187570554029181881883975417961897468394089259365056497034571819405131874917550846209544832536330790252559453772992681103797648226444665462222860301324174093965586795810742541079340115582695554434805967856378818941515108245893834755533322628951576488505143359475814420177178229722261191146797897277184307821400909897221054149732600417681894607301272003521982333215384362349428340355727190250117866676366098406327364882884060901404238954746440219012561077196628146034086915112347805532912255968024560050941517334850720475600044821438601512151362950068778619585264157329720340514106495528663328220059845505979286634143238142326680978646346297960949694087304876363127650430116847081166436827465299222110388856921427161847514401823377208395056105162753183419826128696577194979760031352664525836383692097298214957795501096138018082699689966779949965544429441973368244329986711073326959202133963701619533390728643079674497140881236103464265520729511924807417866229082475436140512279444972616027230030498969176260656678554472952105924665586331330681444891330953542309961112394887642134589331204736272042380339424103451200946004400050519554000068200566840889898810036508728204088539974779594276610406035874865803917074021398914075981578310125632533831928153752240010927465269469234226719054409225075727146835824296408336987486242529277023684096690283620347564748849314585690963810203288379058735316837077404632278067739871084967382153055040834118675764604912423419207167801250456672934962684711726817179788144030621504040601595419840287097838282606937403768665136243459120503507692438532926503716270574665418751956666566223982755217132918289717742857346374516131740701910317365111988318350729462648380561602375669176335331648385527012919994532474237218535573816344414797434345524494298624894539041494675298934491900697247244458698874565452461158549079903591081692066020934005597604130378884396403276694531489065058170693972543875056133706598144426052686773746434724513386316814467164405996931585872996047503433387519266520708825286870761159468399760653843797337787089405845322692271346808087384099257560670043906777446865734858374726239541573849536451203385750702976063994776986627505864528062284979263459632676675795056791408249671034380336124388349625145977412099596488324427530480111815322260332530150620371809151284056442986151460588719034122098029398278927106595517633444156812876445316016627477917344265500596277273772091377612905874898189550513842541250021925923112403235051852245730308823468094727715765354509291217704462897518213726134826622533850686146839615521946452589421445441454066510321742309778689760439641828442576843064288363365041561403329751629291766819836535180015851559424349706488164064374500827036518461824045025564157903414449698787355539952380810364149629103489727298512046398226390709417803165699739009034671281938675273203535354681747620949285291870896434781941288929556640660525776710162905381577435752626689721306214923372184380371071279201281104752389275078042356871188539523588144436973370258474272606440285004529112284309856555431226825008472568798462220127514114608424775179016037424919040783728070398284229629740118062847708416324947272565809375001894480489334806705308406315714918532439125695226056074999624508521025437812957017040819916869733034695618395003620948136667458911883685235365952438229624872423997983956541330029498846041795273393706378050960637113447017876012608737159038028056234195618763794437131858561193916031608588969223383747542948648417124617388350896754180064770208490526831740811022902968528251241007886662908045367985989431611929192002568527437935963857976574280581340082457826333917557925635033342233509051198347534936183266615057240953622317650896655453255500588468612937653752910259644370788919948150230904273954216721928524764791688460960603384183637075261916131492878220471754353553113372900825788149648826792593382552974514533080006276342068352252829077992724310816220259604444077136682231312004992177070845463325465846407403997653851153951016204521458856707431785785347153162497531815346929419814523535379561458168136533164979915225945621357217360391231281753982898343039186400091725850159029078053892198253658465473674528984495416521949812030312821657432918500152871211451829796674991402241930526502720634553855209551313751581088212150633363103633896599494677986843894849716550982197134776104497528496423407300066234125730477493120251656510305866196369892579735728085450190060967790362254018806920996334206565006812179680412889666296113606015734977773441297111727368144918459148860075587630419789730994623573076047353309485239738868798315232154803736483893348546728894555375626539661129376444433992959433873862071809031039983800728481055370062800631406503615666960026294108854582877968748797631159312798063139084967122634699611237662487149519543321986250004071250405631207419570415110050110024541691272790569345077814585493788874000928873181836820408194306299799894640868243901797398797743164729320162950335667019464397840520038426291048186465368334069456173965955859986442367933211635121026540318790974434596210195431544882911352283486779016563887707562781835957567256121523376725483879399866573627968354432782990856913947017381779968638375967169017354148739398890915584336083566205876730916893705526652467564600230476937614675819620572231821349986270660838297920162286567073594568698341149922915696454748217563955701810300651124282156887122260395494029133434971774680485381247113876206091256982765208465854766300120736145325010249225682943964116866882865964338422986834748744359393180923666828576997698496637649905551648981598616195844621074200848120048437761851190202836195552269745449073122271946383750478305727507581087006983220429092956133387050299866443974999778880938946179982806919216957894873667731382989555263590847722025261076563136527974496916539416511972847766286403922259795374834370296339580895801650527074460844657360994530522864571454457634303975624600137177328758239139785111203195409150868430667257150146298051176333754967371210761615021738918749040234090327816130331762812702165680980946821001703969746031399465404351654273477049005014643109293417458095646284902062695014058876169241800996165102279466567044235977772136554708967119640848634062714932896520167244828230238621959795179761831367082336516458981565644757397058260517475676017069538182835598687884038671367937335085075546256967352889057467829809209565730405388275566738675590256637758649033591187950382330398383573076024202198984245066089843034385579362882465556143575661989859442687728472321972428404246074297344526295654518660539187641094179582222398616327015312949721995094494100997477852281897911042669330243762219499245023334514721617029691649805316475054734296720279331150796867814533321560224354609309993656910625750769242766900679057698799529606446974023297505785680454095674724559119858411054428554875653354232576512617217592920816189754727382473087517873383729083505294940183801887165090388717155635792573187585704531313541385153496808383107764299380901514747708737716359758412688034752979024207689368884818767144064289702761327785449050836256004972779654213682252515646228273833639777061394543912789224251576191131374633974327342162367163385255171610964834488155716894376245428699968037789829361538573685310785869616992308496538322061756423652605152987570520840667147964577241792745124496388957124525097981900010967322940648512020556907359729341246001831038936841484447497626321759108082075846290406148072834806276294178506402006251097971076967709522702312912945833984438591846916430368510127124461968125387943896451482629619138499979106144999917879166753817366334262203025304474300797148277856437692086100864492043174612124838930536545793213119975154706986979497491982647375914888464919159750447177306212476369815983235246500075991506369797330684944152558778462404198661374365263988260370969823321998556442547385270573537030762994277435044963197906506323550472927365786525338225841048645040414271433965674765914124606486417741369938948754095220753746090173305679224051383147483488366277083662309942937343225002194775878405127927123011946608141629442259336978429206401101479674895705390233154083609514694885342283700962005235837863813935176171988778246957446659290574772550509758015735271936600003185351825672126313120939491447447618020858421688762428120178770189304938061465991815922199685170920920521723712855941249984584328453430538742315725316858692184897867477339420798495131891872233041558918839412861015368041204264284252943754395388235520996221087837841095881776916550790584817900389207171329224024907959521752160206252817968420010390895365623520124920334492707911048003044499235910639252838712063953339951195764130786720622256202246179370648833024349760085948934635778938325869702910023731470635747994945528312956878215153971640133334439709081232047438336814912746619341463771921793197360848976380136029356515465843465537334761465174437328616252504357355579678114445253170865050897979182622788585460979181445571433177129819588622069156039490447112149672068696222098850367588107768122579845387211610021282686400563510693073169201041161601392442304321352116696189819131913193348027562053076731597019905731867600446382729047888857869386239922946802489284084749256781858112758332619634332016800492932626658669670399520714359608169041678204352979944047349146035996090178419276152961852836728806903618062026956181840503290981392835894670923482401153203363059036559517895611397213589303480915274983647900812798475248578143390085058422215102855853484172427454609183987665264177091577841559286068544130529093814849559915691541302320808617202382866977955908024580919814460348819194287199806899214438876303904381212469786150287409880561163132836824831979269491225274872202861735031641081339211297615512048050913755706531250452000458632369261213738089806203131461316013597308377743198624713985995435050742036992736360905577020629093872762932230992929011159752513935161061511769984557094464755030711399245153162265212816247512429932351753841639006606896894802709512708759747247699101878798935904046917723513795574466268325373950455301398187912277468065191419438963881667131599961691384230292891826609952473505195324207831946757925760818445570753983842078951266333945865902224921961713197154317477996671980266520284263258655329008261687118011927361227436229240594016630746983324723102312048889151678962784434677995267991682619210778171494451706271672065194232308719855098686588560505326111508466186742878610438063435500918886720543338333033287995402244182554847898023548980837977038561142269532806733475102340628228095465753863616657766841367532058944329188377196404220867076679769638529520140056471561817748939872172673547046995126676779511130742586490223388691064299233036691254497082422131945503689200234801173907080135977047285651408864317543048260999138310048251332360119752123023684077964923017517142142425277125342017254333780357630997481834567358773693246514034590167679047288359068650174375240798541273160482375732526232913525650737528431010169910246494371196279972987238294836794089085165871310795947688893728887546261519131351487930229425285769009810161942852918557923530854367759723465305266010783953492950326577880514083903061896770220026953197328313024059422194526210486890437896541915962320596704435094812950965972752441983409275169669217254575784750044302101041511725546030742923737204529044781349913600464058154999695997469681547840320317702124872261553996330577433769934059557277767225391797497151991826407993395241963599476700043088130908381266654119303084711570614644919920952520566943466660456420244302909438913330767688967978266197592006091605984404787757336883683634773207886235004662633132231702266253396393522287313766937330929953774792045492000737117020146968826022248550214775723861037389559966438561921822613498517656875195799147702710486318782847513268466899350707419413752492221671532249918992556784958927895861237724866979660332708233738914517395812838885563506606546285164964085531812097153969900531290212207151988405318977825569016775865600116863979785076869882545285213357888789406220855694416766019469760521202015236087287477370730921145244849290092218614897345451448611349907015177982188872826429364832353380441622825630816326805655320988778451226636868739895420528035950915516117798531301303443637635387886972833281966893280796938122842898854076355725977547996359522493564968082917298517859368589343877761500613281691253293942236060857334778677955904688282071747522840563020574963479925802823719502301421261683874471997737467375307322606795402762313424361290214447019076153152869238293188721895305298603941969300550733862139180753932359167119193507457076924212899977871158711920219679530661652988121456451488273583237958433806463633987877352605609669047290264814807977938244384887568090709573311343451854396597793091272171099427170606383370523704758983124544739542567433875183756955606177757891093863973147895960433604356759944122150060595741145086973508315619314091199349819121573369004986139526999631693860496554817294428586857247178899260128332887460874238924830167385439263448731205156440929707349768744817088976676827720263162747839478933418320582409384407587238540315352322253306310638345484743687911503815502317838508080215181324355587613517758609374893593809786430717338851974610986405552883205182143638249546890932743846248026448609340178856080232128217993935367528291841449196905924374132022428036590166732344588322956068732642018407057411576846533532041010485776184379377264876406853930205833092764401549043165375302458352259194556099336267312913415265496593621761754208979702866038445767000313058953490813268225514473860125390016542468048268786659232682744165312294640381067216697790879591756573693358978769429739399731182165522400252233912992848502395915950420013143094085256558026827252510636884426366149507345952596575021374335247945834031179513899757438330118265670595652425939305725592064143279000396855365040770301821458512229939793354719165011617907140006272305752013115017544135338980166079710940791343498102252908062621946242960092535897175645522704575608603517061072715775728322879325401699069954528230437124338476477257889482343245949432658361099646205316392245021200354126739074902830084172755810315341257193307888920953642678983278387509427637212996779354812982460360479778049692527283555965938020875758715477955620914171346600091673853113169517646000073387549398425320105664187199989132368833653499081972378942650037046470375209555045409789190409107022843457255371931853363553574640414190821146783271189356501071385981022265360086767156634544637562420784707141158030431218171586544932518283757337766423019051400236838669831812202280354103207860078352831332205426747555886831043559907800293189060420070894879207298025122560491520903444597485026874857060680384746449498106544037738801685800169199378903635204028589198862403709899344071008107578552572230783969205058382435614737633613438176873880007565300197398739582725782673105627800150900553172822661433705010286596779743714588396680866500910438072988589645655733403513000232834603845522946844638276781005951721201303526815022164588526638788904361112643659512922347748166349085217237630857884152323066622852999886914620010147371498061756789549800406158373525492418425611275497074344215640214420353989528393579809234960092160686321474738683578243109791050576392321046039770095462842994520785357655849691658920343565336599249691270566409682405659931182437111165642015139879268352851663392419609818285676208136705168654402016608243791650365651243347187755412766277479704017256441946821422452864499273894359116901960499285230175138472973919326125549371915955123999044297584156705316497147336839225929151557036612086390103450298548398837515352831998882804077210197410946743357589212623724811723477978863202623002553642220646658930963443710266955571876566413629823562760713673107778826736297682837202233453302865204375121540179770884155453623944185016282841854232070512049705473459983847060917627160504447661835794239228404551201683797659442768295003089895020619688351464331184213095553777462811575647309929110772097821764606960682373651735003029764140073180964484925603697957080713732181674708520237160362436012939767576921168941300359331174313972268461470310192504459538468751770607746893679679280784738530170758346041974170524546374340329122004971710696561424415256261438352726782294130758592164412997090845250858319070024722906575666974201737788091587952182086632344756140134687898190778852309328985037889972020150557996276210293081632516128275711987120119685887872428327893273619644093230942547578253071657979071583667588954519429158497815427058862244584385972408195660551977631840042365043391177682087255013512011678372488947892809661355691109330847409998513203750072916197331828673808416002502584797748723236995613745880256819067583438459610180642813773651722806938398277667789244657742630940302659048933013617834194301414698467294056506117375145588570637987956083301491574593159028174983238398823670135777270785737761823801002609813557362973693797497464144025911965732956751613637508372732602148684327055888427369460229859755515384376683063352074854565184963941963001152941722501274863890055541237305491342860907047401950708361711388824411641604774033558362802841810548205556083789996813833724565404398805174869353222616071761378441680133201016550180569886827001335246313699163850138585387338739110201813290510151921511361812943601298517134853100626867589726407832377954673697579283123130625081168166251124671245950928345472781318856382752248820007629840709722064592818374018055274959542719619601193758183379912290141486956060013838765556763935565918238138310767784531990896829471668105931730031950876169489619671248065759009781188267657877774510012573687888041511747065066262194177488707816488082365226734160198839833884256093818218671844869682112721861649833943993814068427150393052105451663348368008050739497746045480771957169575295053034703452823699959545039174396666712650125242861646911203853705314002368374048892636021740198915404640702187412997233800455664042528205757748381269516409967700546071593947194392655514407265024038436484795822366400595191943774720705207820702417529435239883335324198651412950841337946199286407103975294470151308289377481911470453430387608175239273259404632729017450437610475406724992304253750414271700089940662326667374287235933885161775829373324838902818444849073276059452106609563193483401034316365284738996615223371499456377094162138279370065873924563096856743409173600116697980791928612799684889174480383966739496210987126946879585082879660789768436874610776556329152919953934332632908233169003313816503780612415793167990256456178729181906411081478373573615819097213223512667146167229968753817834141858364900048800886839355030413313356164162809600328007794907868836458580394005390780781286414930556767770278429179978876817277020894417448307418451998110125790577668064308405744368926207867880526197847934759605135410724731822121096356948793554043000866793571722249744359738654187717947948286185753640424402257510927431198607475289379264877466987279552886022327456564817530284638099380179567317989179993784828857774631623656552030648914833429286904115022007997393673226346128962903328759035034572065222481220909812487892148707727973251365643863311300409249850770634356362149336774719799762102583845810733648367237003348640919275676306447584146104573254736699946407935325694305676792441809714161491159253368045553262184278994814900343849209246306953197055652159819904237140183419378002588735344862295498157003236299326228106077363219858176074702496486182976477528502308117559073970237218334041797151589390056736062425325424769450525297204202311994162007559418391698945031572829587290005513984366965578072364166004130767405242189955729919661141786696007808734957366020642144082663755202129929970490683775465560203934241777754332192636544937821000747816477696998049312620784247546255297193553401339302968110654024598247484187882508870701589756190858476130811100752309590837112788752727368780310365492408939462439976547190424185090450530968445301928983776590954837445432317765407610103081084214468121732440101310322884863265515317373182664492656622105411683667787609761235563268023713952291175337831844131692099411054095377031273303072156411775232972676927672714288700268712836775879086417965172107103683169330836109898591347127616600979386771428819717424670025532222864177628521123405693513894072544564687105380622692810801731676180879962356222158739101133585667118959528029095668073963207878279800261945133616984340971595650915883235805262073673577199175755061283959751009483178042284532706454294197598015035775074622227689473346119301327240267319597180992768906263799907273027953695380548811680023504633041473922782403731378942114081217569424740367240729459771828694814402604540405841961270372395877942238533330020929871746385746024007520987190568141762062593130562078637474313936884147541577325655219993056039107351534292049869996866284204762862935509912109923216814491398503026598142222861475060780553841936519028138255886186395096916888737714834430202716588982642437852982408922605246867739917436700701664532264201852200032748993158543233190357398002451342249349553537688188026480582629016547536599832858493599729290339128419638275833681604546431292348903605006201563270104276128369601741766864181408690638208529871911627885130483053751679718853309810352242309653381572298476883610424580427627517274851857595758746339197421196293439246345533190386174104126308099040373229573597999243066450902948634684317938189389465727582360437423126007459090209845397030566598352864087225207606659959273124266963342695173685979594184941564138944976848231066064981840229635499589108730839609343862304741024364009145084406425757223211453591917930152470848518719420493536639885992496548058740552327635164029195523429263928373344511817094093848602768377500720777168546791782683464195419333770531321506031678250717441104535269759356664987701210660371704399878879144901337701563679339835712714980629774744198612675764725836215606246731270057781044837132686598945789287452379643041706531648301813480006819276385034906797947442891557243804964059613195581299644296694646208878379940156476226959275882671587175383628774619572962522809592505050644030527469364709092867119499932956263819317819511085916027142242041548518348333698485970774843105353397155887835505491695204679054131954247406235407211809432037185409979907890142923110702255251766686224744795421863792008911677909097125667964607457499283753686339737292974636428286634538647465658936051580226901784762020978531719879525726643975091202327870335320477141732025629160049410851619529798350163762210928751284005736298037288961682067212157342375970289651508032303333602817984140387519938289405687144972149788714836801244908628032477418243666647340810649547604342802620717539988653763735607429433571353017817765048039902994199216585933930321338356949273309317549446387806920168555403567008146040474977129839160459538477326761511368558145731016961185790232710791483854071788261542691542540726493197853972470132928972083539600331396706605650541033816666057879957930715727184317668998204814539897338122089942948210456347448206119526493403148476949495656848817387019670842360530342978397719064652597154757427710410611456951537046356130666072764359265347996499387516099357243569882714301165193146139165132403449177094041133991064316558729653592507934072614455945087209936779376401045800306523201008570684309437163100094672074422333875235760013121328909648940966167884947666659079928334963140617254840586061423093743995164087721121871144005225555548889379928480664098971932447831889089701226560969891876187550680315096972507244823332967973667645902911893873205780844898401584158428032539547590049838529098273994308361602032805521259862757763444831407823859548657851168993837361821579052524790772014500174732721986676200797551793017844787723708691474791627305949686887617145162295646050445302567783914874570331105135436560386356684827048120728686631468593327149264742638660242789440114179424040889896430946054475777812742173539294483947410567244265470093429218621133405697933010067168816078326278738358345063409346737835700648326497046175325130254132094331300261810028965655903477635156715423884765171655302852037030250192962562714869960764018255825128164637975973062578544413582247876782265996712940322861339208022498891737375001747962976024739893032575210616252635195438911292926679955327866445796816063995916131850300776074267952906948215377140659771373829167000099862923468281085486280942377629776790634024688894352783213696851538274387141830040599394545657517326075359683036032965058581554808537798283511393246297676806536125706593891297550338925212362919540344341400212620613344995417826953183764301871121390767697746139375772609981888502443356998993009137094270211390210244113650718604426404785619023069301514979099526187966718817913648481492741198384010851869507922644204643159583847334045262115819340906526273835658189314077620588380582373472603607452530838034450539793390861388329507821681143017105831686994426118049596869012886681212311578672238652952878021527697034579466566345000145824395336142793026462280585531898950332247845055069419336815244264546526075982736508219004982037021209450708682561434310626118902315187200512120892511839850884320489036585723378173753215310905724074282729817490522917859007630057628733767231813870249924128669175159359761560365950565571661002710609806990022171446944269076234860019503005399799820979298008121468159712459130916358101607121361183928032674376375658409470934084356918622716853746659804425130557912195664614715954385578949977765606556947166001151803069944479044283097662777671643802461771520245060077761995098275014695829016290129967761424348346631711028026659919109301092732153074523981480887738928714638209228877588092240856303391259916736705186040618155049626024413083577107428027832066321807715834600369359012743953374025414348771054243451189291095880940071228111622620617714803765020890039082882048033234221681522398590857689920407872384942641022724312273134457897886157010922764336536349086778519647078634658364591592392153029157610311480701025774312348526320998786172242603830028530281492198141135240000228619074401955332142695781179478397681809078495013051809974332100653745496633273554254300401461849267865386470013696542618909329741938269173773195782268546093311996452565064508495670680888599355820108020861455060124259277971516317451378401746175234030674956564355765995693645455758069038242458200537897631090813526276058929445660407938495671664104016163299413762450990386939317847106362072093885798858975061896424257118283113539341352410286187179504389660908491166145025695142014148196941058623209334711538665424705595987526072310139547645156922029969560525994294318147573683334163057537969035372940922985434332581137135654771983378981050273780231519429174555971105077511946455268095592824507590614716061748985188049577556683793056652282446120367666127562869861960414007023579139331321968376533074874539646058957163226805620757377115569528004929762640782485381991418360125599446901962263727746661041272102539149248155046568927623593790576451880617018671576271223726475080409435751396218929026604371539030655104027908125262564571067868213280585353238576281342287661424429438386379569686873408937338640762465846518511219135128042866832369777075025319587728179305024505530504796095221878377767935457238725233356393654881973558478978406764463587939985683876128229665947481577365063132962827371552019437729191210875951994583166893752310157523919759294002560391561679988328786464433680497691353216051701737184560440452953751813279390072155509289056255037669151636071556740948551123731092548879439406188053948848222110601560651953328469478291450178101122820627069904935590129013082052002044197297766931324693982894769965379127512580821237653466125590581835496461108328488524527159641245145514378963214160330251914820712746230439417879710875302550652990553103091576661078105326119050527464518922456115238484550833852982483248177908959346504908011466417198723054317545463054529064934814813576607588449921964895886214094069608617790246947130669890359244316491767300257318729518730108250668214756319033939173868215949103283164526370661788716885067103442236502730053963251066716712657981040518501298419319536960896127693841229759402069707779388794499333013797331002453304943055395746304349173726270124811316396359984951196001294851652024568620136396379336184858200298338922342419443852772505754743189375466045787383605913892847395564093784838752728712419938333344712979854193899041270976406160541761548269007740553681799993903240770961228938901898501542342830731876743131583076310824538981250871154901986028076802754292692507141961473779127875322601916228960295604282271657877036129998028080753686097148562255159751700870823017632849031005337976270866207458711435163514925803706742716281302115631213574342860407594349403930224939121653879712487236292755854078973823877432982017217397873459375205086296632122229057562669904421480179133981054154279003395051906172224246455333745929320760089362384923079542285305082227297342774859775527345577016697018432551778457178287867012759896555751001817143208742824586672283137065333057661542747687325852111188067968048798964876819044351075533181282713425455970622988872924842880256415546644720587423471202346911007292691175018217548212456442545650492534945034309785596007480899319897848095610168334665453554541785349885284776014285534481537754941133274262711978322459421520735727062266630580695710925997437179891757552201239306642591265971045792640483010537618946574902765431856275130587596725118468996359296736429779160545727871467590917494334936394032838837208342299661464543890064780326761338919600868237828002803386401433986217411048779061042268352104901654515129519477419684946724282373821567810655079559955059665959918233080103329500954540494497406706383124373001377057418482231662550747066369178128883715227300954672344919744898959509922929893032476233754068793659981743291112850897864390237642449744490373886641351048890528095034167143848242074716606669389841664404357295754847846991385741015218107071847969710509172437000923188043140495634583601181168947773862753487992520288235071378898143374292756268167409726392256812138579836351102650907546866288302668188857439731709631642372117900369320818621828813457635777257716037047837303944515670133033772639306079629645350317560638596852336688332354047777652328095523976049944511825482534556065239472723756178820472856642598297001942368603006478479845886373440672433378537132604863044763274489041781144464907872684274500051429485812138054742144833586176213231707563122351571719953202059606072569167365423199595313294797250386683444278385884064308527345642828205111614761246549980220361143237150771738390030503160849435098325323377934289233684035322569270083968805863336177567741259928379445095530003686243310996374403626034723169584876722147104638334135381041958036611411666211113304133499140871573871877684622130626498136972344056454106744423684336470215558380397692734603372691581448427380752133367069908809965280318028121653638653673991636604751388070600380443407166104999013306276030431427339890428563814138050656009779791214721318294975759431376359473815504157743391432391992263479028098966790176968541883698336061995698290162859693623302674515147894996230580105190088093052238006252265208799868622265529333030028174267212304005855572511383282043586802404949297132560378365272493725015805679637872813779275514030198558667952809553031430343741814467913322371640498455941728509402839489236208302344145877748538971217821878752589822030311312499912481454657267824439223460698329266886622634439905959925057680349083007531569594961778185152025356142543502203744792915989419278766515824536730303901371550672280089516825655200361855847346061018088564695950366581574380937183691390578959230675032923416867177451769224454137023828303992633694134845108215453828247307838932617786947476083437125078962023091399850718728120648619211191128850439880464223879807858563012809395842129907443116544958916238354568297456730829161960298476442617270072266580438402098981441674514609249342309496602507527137071387233178597431470337632154717965034220625965484665455246988342202870501434034542602741576847054935039866558594386108972300027137373194810332874313848822237231589921292706602148440684099179280921913178395782001802212912441345007341302041021043317584791273737348563242488996002788395725810895333761283853555957972411123533888401365277955402215207302370883600293847588766144821615624475688426981417553771209361138668256016508990484341841973741135150095039784831043945948394779908006189727082709885484096836945006720888443946082587094347248968771915169698052266084189097998688327866832980400331565554309643045658062247474489799868711278335992707934395653442643196957979251507581779622095208219753494867050574274768355193832079858122771707319386945752190442592677791154420838629501631887956257167909017305772731978336435273761538531363146226910724471082361227063019929547928356640213751577350465805621024708061985327936658688651634173834445083521549341598203754787572565067287648572513539112150407691135438060672221526702436479387784719375926883814254451506787808437478176010546700693731837057289561563517480703364056418549006334005765406840411123170070102720984460187422976814042119620018154427382674824913475159843475744283055458081470702672051634874719616161549944919601258063017784105581096868083926832256432537683677639321124735065361745031669473172639421794492817753044270847023697281156498205659148411939978370407709930504390537633420054853078813595782430922035921404662593951171489934562433085615303164254972814052950153826482984906466324360024456742035375842752583249862608482044133873795591182648151163320216453092923314974058049010202950336554754277112532135258779472370218649162615323312480636449213093965415538691420503381784338036380883538793155735763453534621590870673801028845840943507104149891621587277058162439584488727754479841707255115276671485548996352188850959672868036790344012474366453136918704878700982070276017772243993823287511145616133617844126329065170249373052918035482451522037779097558684422566928781788409384620810513322776030784047750143574368880006062662498920036559194638846649681826236911429390888933792005680980875620928506449013514528932586957758403933218021994955645695564569614226896722043237914636860046893843421936040061551921569943122948691764059760145626980462116013241451206157277000417895826463187431563898833285418070292164289803328861274010053398509185611876281432407284885016243610145847341806202182361897531658489884522102545138765894077142303053334561866370040978653899931582647974416859340697897205320969938626386959989741890337212694450329918636674409521571764098192177776543301906297988820699983827444295291016758089304304792596060459107809775645122511091655870530652346427296031555777825742373232866739475779545447660504929081968788527896888919637553969456152416847755448601397185226810921771332441040924988401614169690887913733612576463133295905673410360856398954864176661888595960001616429024944943651877111619129093558381481886588439797228188086640621119426357436467257018502848924049122972139185147543977740773316413931987490296611905262070543975026237016770749806282227507310979885001780382158469809788747147205916666333984757239377592147981184055238685353309360114456526102040570244070232851821078423359307739730933490677864929518119541904478045485788629965140425531253930572819307377333934843959151734792059365004675207869030244825228250674719436082714377026980914004401583372190881684431072215192049354300888966236065484269715274689243012558142082746458122003094794026037582336569459425338335623583844322287966188005769534693920956500429818519660972445301652421231964669365346214531550118883131992308187985608828017519422387997913773264898349739278322365602477202094504818667996788997372328174233995312564961153736026994616492166832068305023465641119377732152696953843640128144666116694662855224979484711165002094081762565036021512825062890856701175380909952154698430248634872846710129247867063299901067074186170102382080012225332876645409044882876676177888952588017694406605025426561424599161547435680184545962911509724136317408641489554045976353355215779423193074566613791821017580039020740560513730456533030073173458848362993611574680824947544470308029852556238599836544167149000511465313141214407088371648092104820702616587523149750134207986513488082804602029477494290505570551586995823429698685217261278175148709691404307600783358175761861742125450974449913422600525354019911551091442671956766026422350216230874988992050452712686852768688675466285470662045984137062247540842820502994085055314912086608185625089602752896112854768122531696058099288812828733812093808246260185312788817744814088332061222188061908376105531163201322497016819125047769700681634996570543116415346567389959086562075189621502102546067353117313893759450025497150356837244853665856652717602236754625593711798090576084093465880055235655749044842442354316792315631344354620294778699287284917561958734064595918348903764265863435421789712066912947624279964411807778644038918653443270737673214411433906577281911499134690364904697915543772541713794154864060912697593983716115020514419759327504493334429957884961778303630523778892909916230935902586456128156735168527722406427403567709571844581342383403190203770215892294386040433164375637764839749981653335093630171319392870202742171795961998788418392124656519379222225062864326343917584700507509058790529888539349382059943299435553013068947349171069026236910828684568541844967910188867389379890080710093512816011902293192049885127999343998688509542099164919510504530567104181551632990297151918205206529746992279693223803183457982020461753620581704925765712710541838923803016697508722877715688167687303025256788729019599780550622261784704640653776642925328515675967619447338243373535002826759136271310049911035412470366541307157721835387347782970969972606070310021678665609307389819873385326519117794294749283148343400271503555903800493524206235236883435666935720436371213006466133804689777289306476234492453823620950168145599426208479605255574766481040257520502637623929986440641464097868135303360655062430578285520688824209168047531529832572853504276510098312239125268019177081844532830959049985690750719458093053278310916861618751067027902010630171383155763369035568396016801936113296989532304509937951265606511665767169234956562710091294614918495577757134128670305687162133475263258443042544136237675538241734190130141390369965969091898290206915907084274614138049719911860180585347298322731567466033575601047486909007192396874227417815459108905407299860314125960398636378771642378170688091351261774954250663372289735799748618991223208096299819774733931057050441804771964631707324019913606078266355948852031012178207818204700596625137049016247437492769810038675221195330628744415522422824991191206443801119666509695006908249981901731166269337703798300397763380281217922463947210134935214275719181048702290952351888050029301489976867775062467470108329629738084737357929062835195502292051044202761358769934877379596825213191681538452788946846466991539377769957094851496995572003357414092487656234639094650322243722527702107999196912995757261874953905655561548720325916768292592942339654657605854764169602972016264943053592717200762573995498538124414367492281392059905061557263739421767365383760479603726635035047897422716653907772144753009737967777988611014383914342186313019122391270368006222279179499979326561898850163346266102331125543744451337913071677164200446555676674699276409539488122151382641556929516276903118548134296602889330621500491132280324994701469451642606503618814800846147939983945741604531167258485001773057674167361573283320646979744733308788481331158988323719813974011528631870332818075650531523814225852131179349363673773072213128158407690329068392337588157467053250875692316715293268502289967953826232945137265941564331118757177681500028568562523089725524211947550548525871520556677569367329736059641784925000389963118510716859918219725942382207482514485809139409529052627073748277116950973395832339735471565483885945786250292864778452333295618661153413258095985032514514037028545380393242563911117567821967745510101813542703796076013078977709892560379730162989861008333981764280508367963011844541942637343280121983997047856280392562612495820530460024728606948675924263119982496370097464944376324467349923352386079222391085857971674220312296311819817030610492255308921732827109985453667227660680471832308766415241960016232596353371901139297640899168313462266816506970766632056360845450402920749752655095716515136410599483105920512851335224336982689003756296262902154391526148492699491611004023635465947756642219489107615009465113063127743079605064797803418454200148781975514457818485799238626437354902380617930904447655089451973387865084464362155213452910666038284018843116158237621913736606369264162391177809534566712789600994989843653588817530311421031366042990691163853792423291186812547825932354393522110968257206446496823861886157792044331059476053120102234240554877440478279580614670260040054593373211619848035199261406269474304993835597089625039970499564352774922840887966580867457617040993827210456550822849029711975641099325356293453675510613995606100541144503156218790887848967238466791068040695516371202348195307404513655120630804460459472030577734001871867192577574747311976604973183239822571991866639127202839301440889275304444382566090000130745109402718637598528937411689672407909407123346607772230567228341683427372710048481047161940512226810691216335801760696912130337669662797205482354392693614519130659072875016893175240141660096653467142771887389688888815596939443219245557320660966070250838561880978412418286067666778664847688338698177495598062771606741177006135889348266955424232281566593639217859345850747079276256119332785914407220729631228012121481208634746976083682839888882324299103532393250570710992911181995029645564675686156364951251455405323112326591332713581802616226311994010141844352544768861467316331507833390425716671588873095728903086873543053141729132282503825959854585752858006133903842345745913326162248254695330604640617006249648208054608982272062822992615463497593784490893311381101034418484857188719195733813294350795903368125262173696314087698377058228178840960473856888871834532537490555927752490505038903588459568738337624890178566122508853012069599969685189236958802655305191714126138357546626695753222421023945478586230253713791358650482278225708250875414136425611241698249539059782707695053033010498675463996116693840576920473566916170143941064341406891195683663358303710523192630446614443436419751174829432775985341192587833182744247164166037892890736339901327370026178815069630775910037066375749733604976443684001424501745291399685684168827121921313511215654011228339536707592873235663801108507814893578031042552684828892879916541416703373990001960014115401168573877123752818552714102820594914993704269132826185402170155024302722347372355355787787299676329666641364682684933623158617175355022890141592798028428416756524476563438203881019941050016463607997444411564676088526795994654741957074111669949464705793575976159566862888866770646230120220965413125921908962457662935700737006405838855232467102082800301921840376177429400574671001810588260598628444455442259547778857121690271286730819749016992484672654916453074008712538769864890615224223536768856448145508635703213454553554488441693240792157219893722477849066611051808975940761836994891101445420400408187033455753994084681285918731956265230711353802803486255841620476289402018436942770773805858356417458287690820519253666556233239729569313812319612099757737249820048842203474969257894044743104067432744869745725519780729944696088252788930833333564992052354549328714359248747521045445859730011255745456844092955292685123577028813950736081503477672537827689036645719326463711781307302568843256079368875672326716573341004964543385449979091071723194590243775386687277546905826820808233436953387999573185017800102052481410138415993982803284449763728324445909723402972602300588966288739099649886945983913031016881750593033435552314864971699320807761514811033169203062121081824842906829625331888472306344128423716974146089603895085957756184249978177525159786143972873582743423833799566409219795442568438967155356341658666339623917850212241776877313036210647202795011291017512062704842962332517398852827391306493954919303738961401833067499755214635922850064909226074933696432093452282290026488503601037725478687157712317862817218585341209144690674873657134525842751838659013662189613654991647644085045616864718149183300784814775985694112646430731534268162871583947147735416161227848907145439244913620344363497989917296351108315520401893155035712746965291323458551924436948396714720242438219848103297609640235268531271609045355690552486122311652156836159155052239311636293391791409263862612411556738489169339524997975311766607516391174195490038765446735347723136650159342186865889551387366168305609917685289984117623427962516082827173913988060176109917002205193065193595992266596508203873341327432434842693918054071034404541175970357989102405819640017623336205224371077699155862367999838532451877921750913631425717725397518232143927233325882171775511917993082639003260348493243562728356331453824446323480384419921739374973614770814644995293967239417035076340802824156689068329113813174107536192222393692031191799987873199767353323308103241915992804610231891486564743962139232222009497098738345417467164017755306457015431084073282141218928312273613746776612286737951044424440395796845600162944059989877992940697485806199882521786935497423411307822139065486719528618060595844568708074823012235659301395003786425830671674183671863813332260222988562783526172544146552917484783594599885386303121699652260525684055891615021319049721007668820528253639617281652412716488455385813534270600540387170833408381854542371526368033646998353377417973778416728146025972039288976415396354659310542115046497579582802391930480323536162644480139378430674472409178514744106862594672228842009173376507514249535367831140182769966439082430345563121390838293611455814211316718221226509178005435204782941658865393410041897061345904542397670914444187637891942324066410414552487834674837694555871822603676807322504226182887216535577415461839946438821294895914142846088955971891189188555256304618602033214849273667411886806297301498199782571658239129134557246877130091197475151953572997533938878824422813894580266637623196268686269736656404220205652111949563334620442642905606789141736260076277738271844052775322752754323057383227112348760065631934979516660432307579916307472250608288076655077673769685435349202597598620330322818834920342349593303922038417230407342430973186215087515647426372804199873132964506796681269030560239411480078815861366110558907747494290663289315263948020629996707767191447004936689842948991162743495486469482781495539737019462913281021513890878326087247779453369668814041137721951644814643010897471111337286635964989172251737586396612637914652887584877992270189157238870706786901450992381682947761804845686216533544384198789012404669452483010531974954840770298338280485167413072302437881567283203353134927965293687329901393105490699400137345171754942983366800858206184914070016083548742155313639211220736846443753473881045041780050088530307728013811542992050928904009623345677885044419000524778455530942193900421435733586373692042799254755149772029770812619319753943538533849071133519639026944279716026474760395638903684623751174846674737937473928746696003399642802930599868426311499420466572253846671112736698623040796612533533349541676310733539395063575737420318925705227013985428213493866990071306340960834837026314670751410289036152984406119727385879623069632432933924745612412314875172255950686157512791292288360145035446119856869905378455424369461562400742344702924663078000627691174530567210868708812380958537477954528465583112053438798431707641899617820193232156771781135504520924797942661657496754915018916593663016257737145483714575500675411569109829758042505892617749846050117412154169454127862410926091291988427729261673275502230593293553829159139484783570877585410805401782859133082477513276743097349614935992419766959764393514037260042757342177710086329193653717651303048371847961218248366759387537752735205537352065961527451300403868360407879364625512367641091500049854935130638916838501669750266599630313579335939797084148714837634962881154122542695168574717504749630670925610222582855052561761227918484627904216962371557482563241087373146714532888810430567478471160192074819629943851081563247370740191817431677465719828190359564290493707007890147904051000098116441308820762102461197148432042125200138447104736922896174019603825816749719167426892020037013381680031258095757554895416643248986799202369034777121825362020385072167528230035110943846364730802364030935605965790311524086982495093374617356771769010688387390061162092148785751432831251696150772808615768532248820375703175997630892621675118724647927964459237320389545767041842326827610155755291639178192219541013406989730909659242203760592460313491634578611119718125849789168365528532776934036782710505177281582254044471735781887483772842636543379299082043512718535309320516172406209952840192007930144794422616879053950634303452451670785840311907892936077205299422729586527380822525900521279930886659278643797363370152688730960517580824821815069084498944112432331519826334689718092569455332859006366802495439550259301432854832518383262165637907341738252178887213512160566194809448625247501673529428344527637486765001640748136514794188045232987079318495114711146576731912932221076958865180318919611387461682159274955927486222046947188899486493363849779633645477899077393582513947201869698307005924660255285395361985873038038328264916116381085179963707503689927816558787644951508083251227479127018226505577330277095585934282104749803241135065779322778135389162056348867204908861540328480835781734674009968456019022351670064216302209184731370311297482041670117501451095272084767639687748018890936993793086423767051262733740185238426144178173089887226454645748950947214676196129738937353250391737642071125320315265756892576007913079786857607418644807877924756857192299541462572790599789402665611171628288256450046230107004139946188199756929783111538218350963886545560935609477476869209009254393394283585693304230148452427939006495966584445059317479146984907215694650262987708771647270723993122054854633099291797363308860796806660140439500442168121695667823644025718958054586708812898217907502875749339157412882490340599125912604029713265532094943408040426787854869517092029111462693210789390403811033858515329416093391262898260791533069395607100044816900002527219932131405289954630151699446196387841567724322377001849496555972356127252484916604095119481636736876044512954805407346952049724869179527673308972081459895564119322020298525898143671076186214240602564769737767480565031538048435257496308942258230174165184048220714418042817322678120439423260946697799285297872605027337062978335050781854525021938059839557452550737364174462345316756588931286707536035928390095449308094492900239776357890746075485035818937405485466448778884450765251038850038731296714590468697452903069875081093361088796400130126096586764923161308657478471098836718531211787297207004347575004510923093076850006965547418425074846054625578373450517625812857795484956271786141606026125191648274249113304113207824257191989688746656431205932120577978944634540493111011380427181802777181858674674881691622412719190830325002886106377446196715449270398387862289386899748072741538465712978159667230888499331641752302552690656412579301357042920691853389546851825153162137034155119400797184836562521153977516977537721962951753941793825885483783459786681698306037331265140673445464504169001101551324262418000647753445878441342421014114329104375348011535162074253645690417480272981639580572423619462420525324939707683274120641896115575062369778708136876486181222371947704358615619174721348190376100747814292116227041455180620457100580071258019787582818770942777475712557795741097156134768608077371368039369117265628998062720696825607105531566533453782698543979357570869049546382725146460644592668671469491760802852745096875623705921600031511513103358698919209624217172415734832812194381252834225407641698892724958355592948935000503816383102792815423243235072205110888535920837991428557445954949572946319162928994427568780911756057934112707434635320056767811207954673296954698304619907037706858357934764735510302657191628048908321303508431281583265122053007681942422200034397652103289873326266337452350233579219912663604798428179683908762656495782827070201604020373351474731710215879973604097958596597986815773748691738309600339978924638686178376317125756406269134420001334920719490798982526897791259781993843185401976686851403280923690433084856250687915014580515607620202727455848942678072324393793514580246317254330288842967419367133569440101690815098929004664114716510132443225399778480614560261163945225670743872665955730119333238618817688745531097883587008238853183965115029945187556552621001170511623309032990307993321650865611468931873489631190439906273855011615225916539795615403664387829181596895990865187852977638068142134024192437027860809487326392665158528268586201023536186696539117571290170692954675477167155442352027192536761449792833768971001279876063156927655030675801346277819519880543706313218998236262276067898306804788984422976350132143990898168665725240475228557255245217619770825545481510006679371744646413194470491262202642911686479753174129558374953711738886286008787623388312675677917509541446628444795335499996401728781018562858388134050394858030912728871965289659371060227068532695762942453046373454975381574238517977162767542293144568438301120354550653802004526761115388201728529566983352449720748890174910596422043960392125499016628454818836589501636540804270579874700866448808861146310659335159487612148916995247741968171328849864183864224985013838302739992918069951291101974773580543174625650976580608514787642591767607731736803680285938892786145574482818409588621400850968163401662811077586976653334062564580286964129601277398597956087812994530984890904122859666116932234067999571796443235804800969653744011689079737097243709115544478768360504317466456594619775646894420828551101349669159980224813426971149661266713859093437157640240395281734910698430285847023685947739197692022150584518058160009545280297456487422850170037465257249453958287843593997478148128714994108724925469240615047522955657412552626840064040222629916750114420339623981418196703566879688808353450629400514504457282244117449935782781988086753954651094976593763170720444570915030617375478991192563652507727870416724807474362471541881299321832553660469884448763894757075091594063346472238923548425496845582440249163933179057932358460510448728919347295574575594626923389279392697968444347733552336196056591226058237794114552950664832947887238971176372828622602093812814502153524672915796115965162421077743139909702844831936406824232105255130873331369560485119702977248923409538031823968341301179021372402788462029982771785110828494213600624104921440143010856754259979379822850122250435159270630157039509734833488983707077738163397028468198541673593109444976665004095953414252416470136253747554609450582614451552270194342282813906148391245343809012916586649835791695132690159527353515800211262800644116074297684629819315161090252166405436470564231181026770888331574450981310695961055042894568975611414173470358639633306963048607681972804300439480214021291788812498855995881331549378635026443797914199019065365137005185091041631782517764524511593921887805358530055792457529270587821590284382258947574286199698052188862620610881542941514604654821804222764764586995021841088879028685761663503114727550713942221035155942910502611775854962279703407819555459205411696299761809291408522824725953987059463301168198223392144147818003914697806528601654422086653857486641410562244379897384538560445992518573769923244547355275820158484465062632802201674855292967929240216271471232895777208951353259445218376591590951347660460821969697217352749439389755055702955670198843998227684892133639240713909462401884678013547448891731533792104906624306375956830992228808872817837330885368837651081974006330089650338282624371199398525749769833735830758914726178576220102851941784982496419258413470330648011594039147551635112688997952753862460366936254420148835433684251810312797358139002190012867257317892314460364365906714404700533487248904605721389932710042887211199400515732573245407611690638070353056909463289181636352618704006138542475017726965485685335694323756998256890082842623922107482107695864871031201493520399415439910373850879025660812831203058013638504640250269796547514137066596395673406396206917389179064262540588591829876046880496098563572826540111245000104860455578858949918292268519181467035132655154324972477351790563512014220526680056395944122178108074096997133952229144861774759190850246899742710423061889942065096242524975276408951788814567824109088442395033422314520189653466540055466852197061717756974400862166514197774147583165071238843829147400866950525172472928124351649368322591376352113147538250172432208613653019168094823727993993960287949704302114736061075894638235610587266573754645010773876263119242423037148332892207493174778534901711058223341999312750746184611517351097314251371522122104844844897598491886326643511112232127667729697986919592744283500620252193223485670755929352802727837158873500630114977704790868970755595867523057614350287111148260755937342615720069341357864737485252438155606260302892373718352514347775701799321396190771701590343416106434232472108448164022642072552613407373590993931869342063564827489584829721593407692750977862839256036667389938167166966046036766740377088930018118216699885942766349405812169523736758808242949856237917874399254188683287533377921473479438397428228983052644256647484804176457877333381033430351970672758023465322139858331545809340575913171911349088290531735976933535843530675276785739469492078199240792826551578743603017207313736618451158018015565973490683303447973831858744040546884451222904523926309810656149301959997168609884215123215841190168477912441738814256390393892551448023380721373403824992553230026954738940721657152501580733461962995986232538961046042562090432732267546139989559586789492426862684869773431133644844307468523901566529347343699660916205762935285037426633226385819690085263601642140039817759139508199769902323567989218487207562251630904724204660876215559787786011793709707952120616985184743547728438385095808609347503995679559473746483526450878834787759181269812897097196385409934987247870295771851195899688202797895090327707786201182485924598514666655433383721398691740051148316408543945541789519962147224694760524781372899115518087716742887783059765337681696371829490261562892099054907014534179511968888816020057141182938552467848927997446301066789744523714975419954070014272663096996719874079481659878690087885114086810792350702845260028131814832199189096970683531874417042481986513632623779041842949453747606516875852153975468578356341319739866178994092717190533994902972939894468167246714590038077393473689421320275756235218080236278830500936338329132403933255898175847161198322601395929038169865741800337513854790491676920007639581780424540177091747888603737802392697221399154212087165736559179841478915492648316859828834445931640542861473901650785721236148109314743185877463785275987680889983376138521240320929242368018750787519111241842797621682931967021237060994436609610863701062506082474073437367200512337369238986472573225553639415048174534784065597252393301772390194616393780073203230992944924014531440860163985059736049448753432350107627487110372324949928823599719036801350920703384785809450372778307070991816510240688443417438869606447503784620543386363384538694507782564707089771825411435042141992345454500300060079051312575886804325834798606001343640193932777625983414403819369221800427759630357041211618558031630451056658180067662541312042533855572984447887973888092056901470328469514853121774321721237813323176683098308138779196953206147391092067011253417312297629038208168960757978474684085389425487973588397620824411841996532591491908359463402102139006036500510205937523871517152902482884423786857077126588700493646970744374230733565790274362831598828607622190215915738235606798140705920899243494523657134861138611826351406448023520961022513951706474811256453424038786806429272893246029796664539416810611815651334739899354634414414358422157998741216547914447559193023378074753520877301468307294987362651956475961085991330524033544604917396316927373785010916330783741563326133741772449909721110530855283045022383574223976851528689429615534092826073976997344938236399864297255665674318589433553057926918526394295650934344190428311520244913411655505890752604596774975942814350890667765574416778304321995372727185751077804755526863443077435266179962215045998973863664525657318479202929281883577355842738584909360135581684947329080009462871699574879665823038655273917194740310433861800297379861266982303322507833770832150554076848943791462934922387261949852181429985654803993584319183757168281883551598787031785179824991821359066764978708530794881855182496771104268149025633946031148843105555238512838384231221564497823155846987919637201921154269734484620043705739376736939104168303369296246328127129920855952578548816578693090422801884689434575989667541980089899699562371082620557513858072301780954886584418954888788755277186293483197923511566442105159695029445054915822769040919655309969022653880270702264697959761429206723306628396893752714169445733777517215748590814906989130766347484554096202763068674871795594557463167214259674470439299964124501155163382455883897529768950732727285474360582445198325705770739272547927054760306001570165534638240728658975603219374946095448912654809804319481132510570081166163739334445374614662002195885420357261360862455128798600804668342635469625253469019912959457483520375855558761301954087245722968411180658606674229689445989929227623055973047437530908755807351121616743690020680265410384557999876276210835056756991088266766517706758996719314884311944669336949495338725998166577103750340901268530297385892586076224945856597460844539465061087597290891007271097749717206663209364897780082443918585883846494478734248735053529611641026396714072630216530727960942928238480920097097975109888809963886727983010114874632029960360431543542120552156256436675148973384210356151853074613744470668756302787560559809756433530088601786901169186044386924217265682201499500005385969839132306735396297874254031334065398776808201845284067883706047536621683362401504151983958377523278502038743179341630732947794532556641886699465664977443883626185182096636701885116076611183187718676914862768512695292279788623358605138153839613845763192870710048395798718671103250956226524660048273079724925214882636084864738130512953883263523373341362088858799036732185584027880119538961090669873346534915773847953040448047832649863314760274265365158828052189582167574342673900746953539238103944300221788312249654393795834134925448378395421579293535020762090030094740421703487886468312801372296463392073405167849633556880120711389691634749903935743442685686464319842328079548604426263839014497862070072716910053154165394799234852349974720594376219643077885210697461413410103331728456526458687635268810595916957321128369832904090623532012087670743248659445907367802630177848091412706404313930531558052819527400643433916508336076076688787944878233188604645544140050493591242009786966147842367948311204794707719531517880923070155954253084037315843023982278749788000923917099108300737028268280078948066453800514356278027090774985188942332038165388218393173482954707420385901499389211152665099003364190804288891574756364052800685874136864588271797778473218482377984627729119616523090748680853963525508276823179517896349220413110028203315900733652473278974681458553859922074519203585631339476085901298240479929595607295611141853012066836125624768222398629996350917206530844727835314129561805588667501424291490161946416663124238931049712392267153321516364662773699500155372602330751047142232927772474428070093534211944227284909986013730862092693985107335568372773636766765979198637406539001756627937024900043274300528989165019547485369083367320278253324237051866746542281784335482547238200969439095877899296119901174527672015153757553281179800090336699574347889891703610809470704400513180056014421412573082844768742714946242119570912115710432463411473415274322974186517078741386258865625041026694216810960256041609436313572091778588087836707586816757716014405120521521783931805528461734609574655256055448224965962570719016651508744000352945520932231996680347573969782529320841909205787981484965553113451536369140900238594551422838018432233196825582130706127423683523845892155459490797919037044275311709547141110934886816606443624095456017171535894109047262853978265251865499348297993287394390845163110540327059247336008243705694751889382348314599043514443514935265406738343534906926082914652278076315663810418775415077137271518743288765173901277790454181825545430969103025335646980064651763536156483351034648740145602772876757308745224648076158916305591864083378337977874437139430263905689822260425938599958593341211273155943396015319715646855676918425998679566248765693143622256989114676605084811088303166931554604872795570381420469266546307699446575545129042984322889505947824101409815224366710900361605746889532023874001407286427775093945933411163376662216407310268733720017934483030069522941621201031716789227589033228266534567526401789454325572594569180602260424205604805046495509419942807090156883938725095942047010345390720549712405445077359220153460338364786301460933564733736341734006074428599883871677394365505153881852858203534851219339734908799511882571811611680309295451092175892641933076724604262919181769832178186988563783521004889793199245960740175030891090580323901782870091344743965402686910235421187762801918820828929546488041231155356003403093076035348868998041149875529171128543727245094700128764295062018278153860709018787114920439859813037262046950208100377944193186614934510948235868313903885847396970738776559229159787801280813623113354560354820608464943367340584901429460439752690368173929687116566123140256179843807455310701692757985598516320723165297995493897069347298477604298484412708984133153670979336318946070850116874205029054115925149115075979111255370184516620066216308485282269812214142202572581718665339432769661279740478837107300766473165062531657143364025751886434972914965782018071671842641549275342730680553060984619067690580634575380290204940561419081904873735059120956140450340282885229243185999643931969872638332454814176966630162168363351083901390340969708543027379218767506943002023005768287294362042054707942900279053864828816686444958145972590915304304197138639458558158534227283273302799490774879428300267579175280139171279233296086600982189333322039322600311001900651562269123768798378046831276748926297836077485987820168032226678663215683418350966320745795290002535770952188333580820064824103128544939225881333960328057004731986781545579511407414758349682291553809282199440416131240702811843518038373586455309684459852365636548280836436750237968964586394705557387776137804870663708584386483347802392214253845488777306590129835587433957563927415877618581997516875641613262947292582182087653643858401570278797363412180709127691422539310887374289227379013525373727605369048634986384720656298929777219338736505127792349502452758096497787763264421991408449863295301839564520131377790723322807794383260975959204496834440470781171078625179116147539609778794001640147171261658141985350458267351503781170371268827842263705972610103754426918544171784823427365884828017932864230925294285009725450860365263488345137014391692582074046571323376264872706568626003786569085329805797767538804865484001351333138879319586135322603951407466329913636014614994640019665976865417392723217113698733135340834977689094554131139616398203642629021443908032104068701129383317724104058057795049800542363130139816365279080056165193558372388357812688924739988182559506943784619577701309690997415064799995228201163318874760333302331897096049106872278922262546504521654148234145262356033872718022307652819424432403372614050607685428667409993343510528763902884006270319803144665193123188970897091727479389610633391639080509782954227416466408492930282471209746371437781485456661465895502846702405184536312443258279609920597013447993070221066114300669999982647355241038342265270102858835721779051502496201949099615635710529196802570576242753304109793103375007501605467087286791510528993343479920752052936466952140267728629188317260836930411549910732906176802926270556684267091473079056014872285377244943481724227094538923696535516747921772325811552969867195692453880174216902873568121269550286644087183893413018840074181554806854369814408363903257739518881112869029918044217003263939570265399800503764077181443770254351322148738798397196158345483347743962693651915712206349434689918839241422894764342342545478020038629873269671481655957976742174409117659750990225157288226967930145552651039049037205185541563171800449482827209484394240875775993043073437856881948717121606108508950437451146770960683456358002990628870557609951668108390487240499661160278849670505991366498957028084744724867585281061531829448219945329068131009951810983473687986761015835533150181320139077762200137124071233958023578887707788522044733157381428752152971151190880244252007089805944694403165078326800638886363680272923989862773644658268582589165200914324004997237440308532506886818904370710035171720766330865760968433956972254834779242023348807324227308577286910312711130259508080357991057788624625029729190385300937234977339248354186035134233664112206372415045773870922872110054453144026952172608763693289429893391908820763850205881101728534862508051782719871057897281582245545503580040622822667321834640079636288829500747435809436335307900840774456264493167596659308264329251853701584061406565627942265648669456839821990180994561670455910493588180020105690275033561760226634133878754686720120986154150503216005716718212903078425251398329429957892971836963249324893681392140656697622882161001662350611993978609181753336067961433083699652089618027508992285415020639185028256574704034186121288138824563776016647788801505524497410192532521979285789437632268576680870471699173980848055519353422393031756156612389561357507650806853262065230584812079195244578809561988505885641680609327008495340271354805292870711345738729346609319736230760763018740000815141700230094421428991906718089890261380660679490830152180373773750462306030473478333580307070614176816281134925459475376861420779985070547413472411508906921287251717281808824554335634028944783858203660881452631767715780662399716758395387940742445903548613358423748765791117073008413535729721455515492899630136706259919314478474905956697679432340344918865753590227998320527483028020626387641898652802451309485243044530067543253724345117678637703538342715156751057852953453081232528626201922515082443405791655579757235411647151947585212201661420642983815841094415388475731204854513045702082978431387570761068855168586834741162431633357960431870089826332604252002301772642685052365495400810076640926592355149613876903289778094780527124459208667871250652751708442113192140210463319933239000885867276640689265052821252870694779416308163665327779625923077448922981107593266125412452857402243219943094569030441028371496184178798290723714470844993342484322979577587359195790000332156510657257222702281409215546843838675238936947056915675503231041014550732864677600473416307406615920481373534777737451290867876445739447071642521295570315113574545159714620760253132446873868753531437183181939827118972651135097587558533461462997960812081216226247537297960820775982983942649749329197934319652337589071601981184509045629215682252509914189169222203180657702567245674243174548220762028462679265467398625795680885500497070093474224590539349561088279217742262066661368696359469392686307577902637610979442723098114029830611344829397842729174076750485855825694475790916483649986449625427108435651006973560603198958469087060139882470696281143557883546599090082726935271025065092568443671006214817040119813443491597979951473735897236939540952503355720906630989061728472711021230298075678567169259653245203555425529693122041525598459072924813654378603380501819978964951559223167067698075313095723455197811827742303433983264960218532256581595138606952136291699883126041915381643148014998597027179398817478389973067655691820785377053417893113415665507882591263668974061778306709374830689289324946468139434405758261804973490360973496472264013237365870268308004542044366676752489618450596000494710000426131140086045412590738144024516213138307891933797424530432887368205423943441622542249411324710438927541622461401394884677056389293717905884416762081363940118423956168597697021607822174334480138307547681008981225438217354248127918426698297594712761274827976314378089777887702052375836363728931088103996410158564683469629959555781801761060120222783011447675483592618055849046361264312412321877905287065913695911080184184397899021367541257489122267414380383746884953902481280962893897933505945686274211198296058262795778450465492002343649504037990968910711534060104066825264144708661929155774384050675114410135602367572169407633270974365089632166917732546846977335722669676673339075524616848620507441601309229188480259040659575724603916474408710083183985476851959461796154120753190703015250566328486387214524820988306638854393139026406016013288966955348735700815497379343521498366197137867292857282777408640021944971695335403934147503490935285461656661839205050270404489505809481887955740868529734459652308011819376563397311188547384929631555957027595724988313767082765848232570823312728251851177732729425270019909021160178698596546444524067198014481369363690552841933123442107833663008688601142211247181081534415622261438848637527653414264677233090391370745377492121607493635004467858506567940928752455438095499888618832111884461344907434329225552599615376885843544348211348807548931476347953625200884543723512613147260288925762966193448536484087643570363844655856991621983837816014460920104053713196929215857014561860598526980867863407207485819686925969806975338549103106993923258706914036778545538447169221571418619497862399290533253752552513830887777609177110085500263587405351794675206734532693078932210277971739364453561089535970561621144741502745206268012747540674674200258089894175360130000427408610091738396626240874202832863582850307614593049130460164672691063851965357513613897502501329110858101699426103821020490798319074726649162340150133111591396692204052576284667389362024242141395490477253842630963245287908816415803278059571202088608434669366446867225884373511043162305753193379756211333894397053117151722929052815060064237406291859446517229783168959291942508056029750345623992573393373880898976639083974853442148892619018066946357851809412256175592988480759933426716922888363922212370671235822044057404560560860721478578506520611145998635622462264002325950605112936529827794273803514621401649049447975165847456004791819744898852395042492862652285940737768845991395205838876967906148427893869194210691114241286694575001109447959541375838653083912187507871648075883603524250110460476259604634841193959772149645118813285117222718253970897359475665124519093457527195769278098293373932004728705697152013031866652136985709380080199151549956047340380145203147055083465752923457134325877045297932579564016334457947694514278821092298384424853340209970284042097077197792756696047648613743623038918442346867100512045777579501156347030784445459775279448154653441038149825680804464394749405721040025706177189357686467913875808388657482962452625346378103901130363958668202763363359222801368337047453702314042541946702370950731078338072968182742147851033115102936921100039708340238457663153869906859166911966272746742612085224093779436902239958718801222962841499579589534020828842230142451214074340400882244598958228039056925206657597710841744493800510749185228343318725898576144988794464165934891136200471717398520922261523764285026167278882969684701737281981401532665597145406919539966253843333592747793300421973608400129533188542707288801602874728440107187259659268960644332469330824619644301068673689161055748083996943589019593883482504009432662806787550163766424199049917530228538890487797791813120523992954052203571898237010740130283293218549795081024369294666267303021271130103711336769090956015944132089277752143439603781200064603737967382222824670136950504491439601446336458335056515672769045803373758646738275395126955700751379838623842847580414421375187057872911167840267307058160296566920201133262126636663109388637366293169738090366432381953649453755788540092013540090858687967871866499228928888649012699594017085703124578216710747194998217958424131601909723753826738854554229307518135450869046270609513464130217715955668153267368534525370523274314068433075046187087968799593133527577298820771676399807953290549305909936126997178275981032076671386705960667691547736482611255497791506159946635501779372270279439631508611881247793015846727639669389122135266176998333978238710479745496748686104364826280013556605028537316725176380287533277885323985493585839747645811189039819917299169338331904903821004497790102167040851969326704769860151638611830100348909023898432434507551144043220758657562736133594744263507531513133456636540058770686707014857669013277352416004306941901339108680156152665502746237347346388259673880423885615116129119578182738472574871789192409627124220806948304146302266571647280103201965608852875232880312454249346683262767208511567121943955848054701053451769532417265431513571522689512603761774789130282579011200790779072415376667071706359644533685632277840237941082644111259939889567426041577975391906887085226171550059621949641892553027819746356433846226253216709613724896051136575873197850741754093667842678003887398467211798103145611029247479682268114786415230066149153308140678359938700884999994977480059915530072740969377043459308583895814061881591044976268147911630870395423397117101555939502963985218276101276121555665934859972107912017360337507306816528222658256731759922515365253906540039707630204862836254783877974529035702863281780546002786616287035109951240843886162175095299080443690483287026859485584248595862305079361540602066449437519573693530747986171987185462714886861630619153415326945868940530207837430736877122108604412632316469659556926963630668872274135775629254775704406859051935600410817826273974110190598780579782091829348082251482940178372620314704924785879486828934075319515032968668352478246647750102725229962139271491025339248352533195150111652404917205490167331903104001374960988249274094923249267545675915412246633158153481496696506091876067734968809217613002551619369231450173557851435173280018399440719306944865820412791313185834169040398087637611849128101724434027706619954506550348250737295597517459333286383138186504485613914398730992538727690323518551728114682231937803265848684548426544385050586401261662249503342598898910171396596361419493251936722313011738952953528930468547134401979983130792597144062764876952837588304570131025691562295830824164663626223373907383002942844963460881196987210869009345853187993516485709953317198677047727695779320118976060671866320040079968620476836662059242070752524754527324922383791997236290247086418495848902399842561224899554575392126960165874870503859413363053640875955221611806282781729923849023819896480547879868043234799013458009978730586936254040826148528024110721873387366061225083468472415585173843352584966614201738004597302061404167212004306627176255021430115942524089172751445986891429623964045096224726201375635258889096021690919092511195471778733736291038721435279331747084340976291334845462182952051976135721129211761418379178189110401038672052979149851294530412367415786602865700491233354480855674182897278742779312998683100647455532502389787893838791684875949102994449979051888495768161737244164226827470408121700460232658417213532081869563661816714230693914548876404681503030306459820515628772787847877106951930445272576448618076676675455407912839778776145763612310356556748412312387516681027788515810185050150115520040796579300631701912026679856993249149692263356497166166852295174381802417904611312076967337937028901408908261900930872257907893597173313900082213668632129208004642606340501230698291825355665822412489026336358495994912168183103299796387307852982260239003453767175140923835014250573322727682565877407162349952709697360734135773631599089591151892828159034819154435861492782798317060517777521359691339705928622274954592318668981363205380602140920035903354563900889918362438529255122288617677505502745479916207730774464649711262620637319760096876509065789021492611172675848059626808206903528377161412280033360931666122864991203250136459522066977396577397292767105374494350365686836473398959140808710076336135509346294125201825944340986849602428235614135141810459576957614840790336795057294000063138301744604460585443042510674453956926603457919565581760811313497864316830419801130257807050870608854554530285853432724457128486045072130247093782018029440171732950971577819721090881671985582015995159864465133459045829711724132653275374927654718765329941331801871764944464609641182968423848046229037883571340740175469892746484986614025799400083145368247980691308493924941974227300735687807775271547322969984824545014162014363127001602982555543317961858542662316909900457380264414917516405257976679970409244060203464589956578885178591305443225882448632199215294803782015681187479444764563067182895918296392620492333701544714557277935348223049973147835899824920153186525219095977743343739065778725423748854128302275876287567382859357854717363052594153028715487425133644283990988561518982474490393614974686135533773195657919552570921184247877224659574591886051977237440233318855133225075634681552541875846816053136745708031746239930742229513494840617807681282810955082219660943522400041745773159733911604222590533134135113829183341270453381557338039588219597189461207809665078125422997265944640093504510083709226679153807877553401065874413667670561666002046586604698361563100345780509242220983562174611177551421415559520708337690659411960938848051420153825166446155572488733642959709141780766280293040086008444579281559258495601665235486639847994977626227863804684680359279438364232574364584765255518801828341270773226956237523573399201343094630465127726101709095656610996269966598552778237962831732982048367160795890566467141950670443513124347613899356914539307980253602348333998340607702329826651241093369484292272481250114155353566094307576274957167410902387638556903531430892358760500561389051543933202276104293199347404058440435533645502225238562920919833634910957371746855616376426926565125392891801790627095672755681696880077630820711367832779069490095938443819152213580512861354497306469743439340325028260668873956738766418351101632858784748475318686830267954934609774392961545281453394497519100598226006328913523502565192794531440336960599944157218939198050843226388023723819399066641331947708035752903210603960087015234633928810297421896377947932354081805808804351061599222826006685599798697167866817977249987830670322027819024272801354981872427453926978349566927111465295388917590014859370140447182629356346313263561974114276461643046307558163601969456269027734760395534519265452060087290698574854144161102675159633585798216446886268457913662271641642358965143044285573718417356797882128841980810800281628066208025400867180413477999807511665890571311127901637451317965690932453710044370898404855980309473611723223588330757160513164012085057744212697567822703633623105664259281971052388249457000012158951276018220158771932401696057874217059791257503476292764789015825353350301496214498532385849713472503810778942370035521412571780883064203140683788115236130806086118993361613421350797384887450849409258673687007640504788472481053856562427128916660061714273961703567826126288183780277315590504908347811622667739380134463319955461925175382346334605532837864591500987877189318834601236088878335700405757136977055881775021120189485366580997424393358904193010260617267214581926678043374748342539481970337877086026619946544994023074213823322128511840081693194577637000914325274456743200500316038871395852927826602645261540435580458363444344790445940954090174917855541981926207913345497909410047742992535507772824856920760888049461354828565099674953634088068494327652934320925161150398259603250828707076369668678141683762985350755017122020611132495051515408617597284257799132582841856622154762778271700712573264789190138375256090517036495742183604291129891439150229774894431325524823690260116948765964791171660369233848742765675369058867523532312061008060888283388498258648888023862898090440895723508472966789450036353982611306844097268376590839784881507401050822599597174786780423822235573067660557232272219897009987917681815814490178517087471363950310655863008207647594915438479610055226547884555367264466676684866613259448320154312804433834939544392211446393776151154669214169708655113010067681692591258591751845437532892586149473877319084521627651837207562081453236609756918826908069754285503560416255595650529245051575607863224913829015160867378340226310420743157547870148222765397908762646942458482820155200586351531174807194598584940373239901772501478367239215062100532515864048218879045456362774566641855978479101549223917253862332664575872876921759729758840530825560714923787628547618959551475594919229379545154770721264539458155541645159038431786787365772286127805013555480266530222934851961442824897089690841374227539761187467675141181001942958345091470889791825520441383357552036345794223650822520414763890255077868504136796636518023804230112429931784993001052505235866664807076851841020256387528786405237405980401596888845487042905666782931082749745539182469160855451249010616066687690216730524117913275281953869981976192858663285153010531456346106787959195337559381164141810603581423546003232237125407452482417888383579706286060230300218030589176614903949436775156148389411605669309286476115157985114894042374558377278945027626712957037135986584201512898578715604962893867956570886767974252720215760935984839735725072183479357112206075847299392610353123296225186449924267468342069163289465467707834730495137430293231777307433160091209567887397313139645523590752530870492560016844945628319018987157940169560930039605035129163655022902804169604215328830962958634430241324477252012052035875215299379498631288613532912621555140528265198886593104961190531855198166273825488088376942890944577960900478769028823415874949722909087122590696530676021221184724597454882161598864974594484018103161633924709011518948989910109669693373931221252991965825639795926944583232356812193008494056630331523426576372840865623452046391839682702930633816581083123277054495002392854902019517089292112137361930600127918988266659940013824639296182225704044523222683813824734485967451589118404034976003064949924843164018208690932239071376065845311260005315590428111020903444603650023957112596703138895881210330311788102124289896632151536255507971940849313548828117900776195165464640631227420508382762980392092344490478091588244676567820238064562618021565638575109270795624745615807658239744004682203855071471704736792380716205365740813605319965061394629009542149774715871850801067749762861361367563762785415378611905056267579729021919386653708661732065891312099328867442182883486767373644201341666493865002672461694316592411626833824805220906943949581193602216109714055952563647629098875110524081269215667999877181539729808135284003655842302692670141060085940137644244957442153380333229069410036159144047160500516707039635503008737226326638456249273882231225622638465448810424154526136353427922365975389468421498698047219398684782875948964811444338252198223037989522814888792816749366951567368079400493057021972714662480140694391736843440010025346603510048586010483826883148364050393758709431604498274251612970277831831606098634943929590797764737658344473250623689633297506995134476704924928209929909714311717516790711550279510513340203894030157380447825921031052820802430204332497598256539773351192900765673953962910131478731150488198073873632973050457734539127737895193149805803941468023879585321852537484398071643241197800734198468137047664390913513187684910387832340615854156013194865837660994438236755483970314300546436869442962348685962020056834610112195180423072854153015590426398394605432003866126716077417984586726708286613188571568551031690569297795450799559105910500664372847757132143778051819455900561523981479135879049741912172226103546178580033528281245413794817647527766778955094289332666755646443626390975389363900836484199490801952707693658958452985559278642761386213138718586285515037968134196965081067415092587942600508994510639349117554101666183408729536580776360995264422863826810538824421667055875196377447735321292047545966875951181245950748215156901795277355594966936767510571107508003799220904720546393351972776073782524366379034228638813084361755646482317345651658515902737332265311276758760683905838127819233636371494808583365624579387752033033383800192448881398078023862342215797009224961204754937849234902906890368793869637599138495335617517297939186374837748963726913590994105948739572245737627068541961423949160889915160553422846198325854306993813796906801454726366586861097663274596807847192432735434472691513915924053301651649444045304240556854241233297592665445322981890965482471130984566472754804668344225810082646440771120499128856429444916868222184136688634046856341572404472682899451684257819180025745523620638575890750302400902005359020477901976375260835195585615795552785672797098761803037935464959936163262056372884493047986682124583978410330424919118419596659468099570069154289997988219953865317946629109972001481071040207785113125554213474159577294287914799856810557747803956142936855442940517501785427133447888676113214212952743103703300797495581733192449955852293634930249622047853400128453304666269946718714269291919908126851566694378887826189315631946923643953545217571782338600172780770561064143123601540587911868117384562300244205438600823513579942192385873278324946909882421409703862522636430543788348280185233455850153942730350603688568996099233938877696904557353797732474045655654655469466216098680195884241282838479146259937173991567252853412779597113925050000646073132963683921537715701917541596128990225390239550792823390296005500271035071518712140786910197604031217727119181254768387280102012037195715804089407145442924844529999751103706479049375833715047940456851554738081726035538589972591520808084215405897359749807405370860600627110800093358431233029980704431846107034914052019558518373507735441259279845335487022512696488315389230070139183363015127772672808803127144507142120440486829439358984685121452179330943640813574475226022467519202658184121303269285987053567510367616927540512781059737668789045851673929609285787590921913964115208785305381753591121466831485614951413169318440155431987808622266180943053838518121837913448871058672622418258035245905032017048407946798317240215407104109910147983812042118926727374411343711313093891662255294147324031711148093873122474880231405315948662115482902879169868998154026927039026177828767425546628331329035725387069531790277476788737095191748047901264596235933855192809019350334088871512132440590032324048940573692296076463161734022462678861609091083691121486038697727791933470327063153156285382867772577321859853038684692499607168962297726518266244441934491829642911618632636937844716548772104702466123100306535922922696677373875708756552133575908120917051950717689052931128526417602794700289800271958910202999587563727478762044314303124829034813816086786624296157696267780802909210746889715782077249486271239572052945322188694749684284349953231671802512950022477033335886699633656960438488757360083041511709900630704850755516335563155641957712390453517223302928326645577398412082898601528588722620822441717762950418331854706083674892055995536908291733039418383293772876802457188341189946947718604766470757429963545420390521296543435933227379457368444599793819181925407608101066391141857190879056449640129944254445435294378299107315869277209169923733122581408301683961981339614307299861676995987669596454946796591090870315522208718975088276392393630910409938283145041624897471444188507504211102173201315646672799592351891816675068475595819907530142892100229074699125332149943470556591827651895823739697125995892607871341534256073790906387536750254901832452649602605733666192686482367040721723521075506340399225602469114888445177057654658362040569409611073215691772756765810652841898272085789587352108581966363587590158872298768811251325362415203879938074133954125245564346611204824731942956203066747834167452425469961910445611084576267716199535255576107539113218366169486265240528110239785472555259163802040750341948454673580585450046287005405781591320623579060925267403744449602719560166515532633758892581182209196330804796255276708476831289996828342202395903637250094108497761677253873419787732176287490676101238289156884911074270934382150643131880151172402217673262856736328871114809968283757482853345753795322875887300023742207309606419076285760235238189821221540864716216624455679107089170325350325211910328796455025937526099267891847086335163772387691190404703731208399530602720055915034883351406280799606922391922809149047085726628045574563490260018663386758105911588311345117583020580717107925682960127315951178268076237967806058872970720379792750675226678618292371723098791137456618255090110922696613517682635571123158418007164802527606545590012162465067785748217370203743800948600154405589646322965476087281064473403663482855087825001295932406251294726877567760355607701993282193885271637353445727284093070550285569882434097579118504630319580308469195420287593043345001374949339956680388746841562375931516135842533430230228106483574502377726647990598322711191806617902729839077661343084220317712326577938935731688799703118730307024948137157995494490688041346126535127413150610965349521144020045961785902181946153348633377570893457769629512724866755645993673315336011822667880239484974255103962425672124582995065029078799857648788480815667244908772133589233027902732641388087049024272083125838732775717738749127255293086250037620803251182381761182293924054481085379978499916592832966180590417099019530144633074182490619807101967763448362808877198805397749112293404085306248717145297954493330840079855683446392512641388996014373200234550505844256119873987974417091179858929815993739875589056654373597997624508483321919296181222929905764432508981542721850829607497897038616781453535662718930484755989074916098807406968409102923415881641781150285340262797377322969965157335010269497043576544960227427368916054745228790810813965909483890100753910286335678390640931805739716244712578440596868749763988940253289556181376434151083783623754624132779781591388731355647800284794837280841359629533837735766660102835170007808920612570410251172985398221000786382201103800769900525400080709533649603111524328915002205578752691580094814625133010690931421168368615768007562808082057849810739270908083792679965242883858975896797686834460476276925459543491864817667256984995942884163215605937770474071632424411478763672520862256967083353096024650565608205380712412435408804959133885203543025285343959609072258731644835189118635693692243493174757183956569046678512033073394996978434701033450007067579776566774604199852415771343582898405980539523873351998246484394138442137568216370754781816626588299728348989409718775834028169592558881963062542138810773088144208287741677029916824533759009880269934071624862504483912143031743898698704191201564142992263123273396565835693130472181538165996694945735787532092825385238784324737152024976606829443088878818263657308307826121026543074628409057442402094610973146668158526333900055614786425519691042820964564948930194687783322063104194416611169092178791932757760125562138441385613119177550542923748669552964935751570534500819405061752138454888566609715732805939655021493592916417772698509572409931975908135553082632977953273280974138612777766605586760850654641702655751754764573012941179438904540152454047481561772950156414821885131938981915415484851836177662800826327661676966703322455972037964119945765758422947891556153971844144170272602117156718725657440332144126607935537352173877611067800425601688424032492717165890721036863534985121574444062058325779316241175204378737270091637510879896413607177986978810745303779686143845650933720271803895017847939292926758043861580539859278883928918590489233766147554770959661094021854466443825936760827404647892737419801398885444804391909043240041855617179613189289678196359011395243319422051377521254378956056533353425168418858403877238790239244747125910510563319785514540418308778047142241353076247317159433218154227759358608705468226478570766160696066949400709518932406233414818631179217605110241410242164485701217010830258058974884990464295902087001134378823349096015878734371772253773134185914227900768146322081961404630417664722844880249677018884429401111345439359035820799626194250573931928450643097250833015502626021353509002210690176191400244587865601651372685058348843314487502118568399809324050786429939514818117399177977557075831358472379474545020770070653299807863022980524321328235326765872174808342378859798278730439731264146836921116813532464014899935653329204978604148672754885359860873332092464450896418664457338979242834878365052523032608197452356413020834992103317298800310494794187156437817113880933013165796809623721702721726645589506416180776517716354458678666804150472757766171403740926846732554622218693437985138700829981828567792301742255730765201809470541951843310731746496260095230407786931411138908432012666738946962822202121883056907214689588342159942278693122745916067275072287021402451027602537774976788435232268320116288560967804233081313728574465382508454763297521191079741232467436964483302401108953586314628060002805993708893390035116070717257860493234662496778523657738549706890988947080583205838475014108989573739450489691106758106147408087378475899937323896217090319158262630616645962281088066455325541177145223261245561541779004597111413883576772473011339403914896576495663786322733031839113381321884421303443667547906998154621467821030376791169702086435858661173216516898885383800162586957052373243362402166614684155342243932921712915441105879315459094501094039654805051888440755818665078102600201502087109837195647211047668629376215935514650317723058804864331311234230331541659755146104547663782231091811452327713766018264326424904820622692210708314629335880871213703965510350969791887506041354697824065972997773640937231160711429297857723327765242028240292018592640464757274485152078230285981642962712495115240727433729360597168918008393858778975205467034125108599931633857091285485631260734730684791501558460263898770281954169128197667957083560855292169591352746600783142213602486112662041342068111308442302585028603227096947865104334332905022964623894046919760498189958850880815982632152862305137388328982937720686724376416829517974721031147480389157213563076435409014514795198554602755873108337765676009607001017368443965683715514538610134658005352658462341791101885547071022010332930666334851956892756773115436142527976630669825693323025890150806361897820417135419684754016251079835916988172154496298203392287738385470593471506583170999144609471154598554614513054152680658366650755972320471320185282388313647514497546820369463427548447510294798343364337830328445555042008985347796348133606322121682159859771452230727450084856437478413971567891966607099923511555870636989897632065387713517693251396538431004029617562508325325297998914014755646516912753296916923782707977487075179169876234089313162031100059579031243101591594902199379924610635983518156315062009654385576702568449202060919044093143821705206476599722624405411684567677191822419037784836379871992486351770067474678462458676867623448650446381580689447717290132771477937494161056287580299281782603835976100112765813040156724286215336406165077715559837764804890469839949867397873703536980143042966674410033563082392055729521344869150343300653663400796068095538897954975766488585636925016016469731540755429721337122528892926701730863157664077213522500915807895292049003521135762221184502867747399323429322205629976546069617056742631270354202324791351357705912765357235933997560032623054519925687648345077107578806426140043103117279934472092705323308576027717426719662868655395634937186390313895437100936219788875389378707040492416841222096841390408290326637318232166345538887297218822962219584581780003029985088026567210704829374924972729117088362057258072717643123734026575453449774725461932921891074546150940758630821629729706930296281656081348463405189781226990344071901025194672571506863903632070325927323221317567203714217666922281865631896873283762903150778233368257040872623708018308232006858127854114384833253467673733798751524232356262618057926994479291145268377375533180928596286063017369359129786197094110698816400551979868095247861360522299478538611717100083467445181594892694525054156058342121401695281847907611210887176678223394172554527230330502943396076179493649073902643462187539516593344784866366746302888225245081659115845347225432051552627781382057030848033784927966677011448831272888887901600359114763916725740322337543503518933296586744613814217712670680690878806802932441597507331742619352688020303386496303200829290492416476569781927187535437195553723263149373921463867552414469442762822613843008914728846540047977371634878541753958201451203720748021309498907796275055256537368091798666739160801959988816536152443242777649459587109602592939195054853677844861293275604553324191416320821502871444591323774857885410346785050538640718130170644353909513812183022711975027211202772278855204842068403662783213133471574566746827370483160438733194167095104815912844083513727954921191211892282582150885981647278113304822291362697749678399369570679752090050601637949100188277895211760082523399811875276083145474854119750923828886550954926019101162851053644981610816300077205416782604409977629826208958423632036950085863700485611645226995632847678031345066642922140550098828858108555478278028097853738929315680779368240594424895376687364772676213283521788978413823400487478995234774023053936742312659693110978836651191112288173434638083836669812463602536358273867392734080899238409510506156730414392142170335433038821623173979133319593469872988369909259829157966326762206865985409708220427482681466080796480129137154134459877983019515467854456409201521122640355971395266271586027245540051582032842953162098804198682434230301449790552915687243752747175996142003688654099150047011193489575127430789380659632035228402100540508071046683114971893331877044816487201854190637055261743875473538751012244528037962706462208111653100332272151768400034849362976940616866196153063450599523087543608365690361311213727305608157668281058818192346875591821347660388953661516107449989097330135703857408315033860898226897070145179418991265541092160348833548744445185318579859862170630283704907512585679021191948682359127769417604098577595279438016145411217046150803693277966009940935522483251162490683373160618510715226278216351016623683918382056790662555604605030505370767410285016497594748498054530672106424684000794538993000936212481983890196644734928712125151069394003426051015784396477807029965830656326919849581700840825467151632714704988958854938522109301449511507681191979970638092458606378185978729972020337780245589378031936182172011460039900750029816177074485032298779930067173063821060707119207339891537710261991921701291165878198647500082612096645827186950164438430547864679061574360202946322076968431934134040734051063635639880919815183567667240975363657191254164653615084232784768123266407607211835117598764737848352920152712329225697689803244342681769398928152641885841422096333578792462691959697753797855577824202732972826875849136398511570234357211199985556726201556263545411632570148123506851815802773594756119861747109535622552705405797413291245641213402530557525560146062494213724079172137188981562817785501042708392405923786897724750313320523936650463561079404729996695044128799165062159318519123788419311694858359713855569867285955271567657198541312654582946720611761349479432864708896506777933894310967243368142486936668908361190368632836249613042318498269407375821540597963432285729568754331103325276669837513049519917414915046918030495309098501292895419644041864715798010191079490894699135496451180913677296312360890679697539550816461318543555095994103652174597593144182429969770531486086228384563270982464186787337809867539751907211375584115673727228833571200372671111033832271142371830658785430449819541781770795487862208458640056720304349765756430566089549630164511033702378620108864262692044526144213598059620478753719747790979727259229432911135017895568603893928424189474626165947200901000368608381675275653205229912692730570453675272054988020083800697393779223869593640931398657788454234332382591553327784314656699250259481550552503441367506863558850378670783153628056994079105819468997993051161639209310328306403563430250777874864591340715012115497179536773440253396295460459635169723708664751779439284593243198983592861913562148051643540759803719124483314475431454943704557432494890424858914448622688307321981306751847939398533826698732627907581524735080649441113045861513028352363802379191016735383010579023326868997964433514896507740636864606729621951959510490260866939437612606545410598557345068697085108899774174694867350804281718369106707167229891727081870434758404238406618508879380976293850985081293590055666959454034345797327434358316640985823302866874179036299320286037791824556952029349918727655137952306502864246851253066573781854928107687286126123131365848541108970294572610285853459317878038001718487085427208837130655341820859945751015335043121980297147925422617957307303145377034780398984781582026513529068656751324661438816394450765636394394726873865225674339640252929337198661804436321176743624091116180683412164993180147241930037757535601896929861491369822868815430825081891245380248397454081398267906173575782624150021389801993992674386291280831156377708939000107950779943568241571664305474887522745566726800235172944939703626545359699815234659804082668413425439858049120056859352744493774518951198133560482713879897642132400054014212997979687352605168479265829255154961891280791877213940061900681754218544406346763641208212064845320873179780163107587320270929956851896009955644370425570847066909808794690622541187976706818020748803628142229689357173039104021768022160915301727403729356971393460144615549710851107653642593701363704332408025080894290968974894296777510826498154279169951729807862823506672426433190280347120355136118349081432473744650330903555130301206940802543697636369146414510453060222221808183806141094606014902911952339444448371516082216171711803276428788217058458563798413471956107561119153806621408839075905886024722957469101234778362115400676979177848043681639244837267193478569835231052579886867274530669312098886335538072971805700031938872379625166930206195886825916153901761128429142764842550123270599246487873313033156447972892946800784385534987385783536775562830287478988584774283414641330671634004628048639743561842347084492004513870756522101081165864302569327289803782208565175996889449446750066664894022297296794662652211245454783588092132258099178228407760815106897093389906164525529969451700091842508725481551690758950622831057898320687956760382599690866536338590480732473847605973144865412656167542196947024013629504714552297596964642648018238621564329810888934120119861260710248000962357080365314812993290876832927545596821405303067179586919030362569207261969600298085894571629349663508241063408294714377250751081839690218376144373740170688944505187020223071069876536799862709036107992724555050982472283753947474176170785448301805749131114228199811441637388561573770090967256345251301982919452140186790148354977127797694122925020280621822794740476585863919413335796292081190568557658049407992108511968637754168545159541423236355481070098006161027518134740906912415175431791810423160905728945519454445534203273608711225339237562575869531373394707087617383034661015289196245140675442257322158122196237043712093887513881411953597138839466898046505790898121856653968832092007618865095804193065280248395959104917414109120519916951871289034177951583212174882233627863943249595084631199481519237911610239481092704992003899555241654136227876039124851742919133163201233568285912119381837498988563864238657970372738715842078081642478474001194193458807689103307911568373636477703725525254830397884215186725845186440757189575582802261205526372093429157833077105791223828375075953333886329785769327272485458398508399276319555360227768570913757252823655178730338583241102445781064478035251808306464946968360153557095425737853275225419463168925549652213241070707395701367651766575336301080241703501006511025053101829985974217752004729708780517691095003333470476985428332415874003369130890753274622125555261803914744284796909759926427704189811162153204319115796949447173969918778868903284736721639628520921889679373773759805251815341383562244317444286061733937264244497429488867094384151207539303514989490173374911024750325014249219536803062557290396983489036909916267916175463929355232186857567851847304975886381207462498088686984650362616628061038947177553133762730261409845293673928224848673888781520188711467480012480268198619561431962383120378576025934172837885184639829786833552657064321441800796095571541776375298911350102350964526729034308248984878242410893393238018817605391474688271334941682585863985523622230416605178613684591727579293621025608913499140541389516299170636362362431427463771495182459787748829780659607628801069867813093172802257586983432129672300505264431787781717564518683249448158005087328666053892660573322876898544524012333123449790828164547128240965508052458665536519481349760466122125331632856983414087492045955269712869924418098610484193273540786538264802526247552474665754841384776943354674698291106389673732935299590594142685966258036853353592317178909207490786375451289212731618261628234267598952528887617352699474117743645305623024906781892036954747235784223640869536587033505086151136904735840252919694112248265672256086430221338121120782199737327185976235953353100898693054525841312811716590459652845325808942053270860194296876737510846723303809320133489472372855802744329974171051182151423648156835193331828755441062243787848110414000566504581442199525169056845306276884172687598314080419691135068277481069531875014989278663657421782866377709702580958807830259340049038709775604348641969045987174580276399369235430690573072154551967883697048748942632178876316174859742924784898139082311085100542764922573273758583324417470115991607061466112784374790423317910112651726022725830878385255276948111274076651476445949060276790653561419274041928665172904020824359502512142341280961661844391061072486809840299910195816721275807760475720448650029028064409109837974717750695530722946644824738295425528587499194668773751891043962479107075169093505399781053371069383599251244326953062337589172891317422118195185390109407521963428047162402030294641051737427919787550430969047332425202686215434303715369665768471852228178553653358081612943887624370762150519768825998609953272860494303450813892712507167822318274058165179868848369536756013868619643001970750071596115909726317410234101931389514012093994716334400621847579821604294871330523642308383296395632621391979037706894086632826013598514653334066329048034112187199094569498275741415234476508445003501733719537463199200151592185234499988093723443331867522863353827300826605967218788932286326164857576073040719399730861273531516471619276701124169908196483307480220144690358667563099873236651154216539226136563191695296186160122599573555727216514315071572636361613942980131895270180464155507136984072909831473162403051972445375757239727470997861334042466436952524609891955581600187419056357460030786893998879034170552978464801356215734519552750356559916273613890606184541711327707493589497393092272027489410150623586376028365816992987307744717157699217074619350450197895002461803997927580291170085507783382749452718447268865465409922006189938283274853675591795682246442424605215023984805377529864058541416329860431528537468720860275234263695993837277924865056288302172931909051287653052383998180394696117000541926030315656248792782239320722268869843020862341765420177542091436925591282529512715937316836049617061601232582245402720662763781082179282541603783856680518833154765943208113350776412017984879444205632223236597132617771728085569739442672652975595272017390691014790649470886833186187587997645325596328336745978815294996348567795636080336686742911264144445341723911406792915967240780078709645434223741869658552059946736556368279264359150520416350651389381211666462266673462462860407655251893095349330983415422525849357854197771161470445903833145517524886473856800294960655709505618550440345466594243444590613952864172181015187270080012089669139757250331308996403668990465800112792932388974843596984999851620551483259013751123354006292899180397518938805272222320280681074729651678485972708910027588525590620415241739511629612636912743257777362578353174855515543527808083627652287847017407257322382633237001803957279423419934191956221342950130658659358908002761282272636506375692344053998971612972754352007414911366543015953962531771740898435136791201341069931067048944836579770009811750323371996598610755890017549075252080669471140971004199530309299918057643606154772704024905408543966421443299064556426386645302908287259849433242165122720403229086379144066572238738840126681921263379407474368875425777889669754624120482385913920848108503740488858203848666380153330291435932227233382735650868302648503343953918971587321419374726344849679368811884793823817233022117295546383432227920632269326383212439604008660886744488712602057257789569636599989473929822351133934686432037434255778741884074865733401769575818262138532437135634033387269081418868321928567366291320764433726331458858873444055822494601424262632994997954276625577569137344056157087220280000017701017219418390796422665845864572539171428131508261222612359451739988951063298290945867484310496636855586393792385165820956167970673034024989764496051525577715680156486081272412954630987029687414868554459721334981409579785422638825420112400427407499763979622114929740818070278624055220900331951324215568492252494211786296361571587116901234847726567313195117909805130975929621744039988321220932350921864676656945433090997833501461449102682432004233809836254195232979981328478028324012226430649975197730438382283845733241498172704577780147561526878456071861915415932630925464797675637418767070592250348271560899776037370333361034443237584963187047289553121510116625596045842872809747814997435761243292782727449903185514873814350171548149268715778028197851592729013788851262196214721576243160184989812243345596445215232233211066526866743482798222443583433549694807246881975401044681226101803575424877658087958084987647137788065061043372089094937406086098499780971839961427012109283122231129306163332045054028196023364249272600156107254582458031765677537373570708667953942100981452251612257515094323571387261686548802393354997520358345362637162391801762035506510522471827341721408679583849401735946312349270252055979058643507151921707734303482565604896233641071436523998126102324939483830495111794290297166241924477422881822067371597677332156320848897621214398755861821452934040812774706101500052326059278269025299206694916122788693453543039733379720233628770018684980672810797864315162283642737120214855163012556194013820368669671328935432179854212668652964636073423271486353388255216916163979984620542708080306791509208883422324625443070156955541324009268072956141473991432439841367865879693881621938962882294938056665684386625256252590881248027997754129346491883983339400162011753252574057255918419141332743041480965501815770877584077796257981725384867759059940326694531142654543749478924004940238352855286002808468506176446571553010743142629907644332671213590790390081034703692814687679344337230137578046431488291722087661886364759068503188529144632060656584906435195306255177716312307030028242017235503386159155025546332028825010640024582609596238659407354152207772607949091274732621571195031105182640847259838647730717482157993415716097520018347397756873734126097246323064174347385468979901016638645219560172775109881774345703931253779866423557159148937263450220587069855079093603498911684567349492989815057038404875822247139675243103162230221256268362914724810195844172883691972257979274845236246718968250371961285768436121252167379450383967625377799919719133048520595910674032349068349837070530944165645466069145754598206926959790627867893138940869324571950138058505198753109397033359098579006607616839622245397100328600611041536554475167117593864460126014365446514583692510024195285719580130671131928255876798500126973387597119627164834890208226273921418232961631554716774943703232106790870467996958259046120124355591627163167166692299337196956261793798554872162179748646693066151275923434955280259593025516864515000424227733239806334666733562094349641369921574711556454986982057263627506299693570704149493722855417223464094262478504813073383634910969809323938907972083640502682637811135712613175288128392273426988722069772749557454203889026576278237410163492390716295564728788310490194175678932266580444579531673223757181447422255848269082605183582856195809467323302969659949816025999524649149230034686912240060880072144576683441235685857101226905157680991948854853555181613408761612006271113938877718930289908732656543962849142876150027731127329296106866701394760114028655158407708005142754267442905417998998114304949206670285191575492638678254776515972848481278055398244053626738708867161218507596511368079936816613918012178895297584190870229822035405063498173334505578124682512226020800418973490868419847604429968233231644906900489796423998909025419246203047508612025280909474696956161088267258825577626975375703470503782490048348817095913612882623845732370717787463814722109493507443688751727480426984192402138527028902769661487015083214250627944103887255628090393954775298925298203269500185406329246416871544947754583651754096353617020645707289192114017174865970614469691531617598037225164415285952586862549780692271176854684125791320445359420330421415698270306813926488181207366592898237046783973510792432041375103810492959551227206913579786661258525842978504907311264476838089848219113093749504172199552446451717728811701651241675786420443893075301807673017294178178991850348605374446064752128026750866509764104143226677359130477041081868157076315199931645086189974709526459814256277531888536611667777891617388034271925301611510849162258513153539253159008585451390846747720953321827266712016261758126107835540047279874348368225456425135656049236001033304115546668923784866618944240541643151245421550330737625480738979039130788832083606917799539339470057150939366475976482393805195112101578577333429584889422954185668771648439365690454697882510876212757239387525589950209621297084633454887374650166448712411307871327834739080726649812639337088615251277195911159646371114341350650470656633372170214671207854474196069111637789712757338136241940729920546578005061815266314535214096279512337046021427668402171103575667675197733959247702427668686407719882834741007742597835587547698958162115015358384811904324623622509115395601617212666546090120176307045455761916348148424696806816647478667190210089195271375609411254399921622685106691490261489123309335044354620009851493491911904249373472517187801211856972320080067044569107265054890548286391779903863226068178727106577577128883042704392631202964057651706171264501266389075472470299549193336893726112717618679572073622625023864814841123793948570127686240497566523504304865538786160720468627326594050518296180345737634862900692125230224876583086481550831284683699049510186006649626334232962082808553571699465716273365959138013146570467002754573192157434780044904611321700995307569325749068145159268370553864439770834372571156631020623729794720748128183140910547161791417560864337097314687832554841124806196890342070160159406711769091916445523825728600197163838380289539622570824856182323048772707491809571605292107281361051413726186495476863813947768336931188493533636514918233576532702789939559559223171922359273447440428619542249504789111384860253718998541230501208169158712215047516322657858850459569363752872509192255429291770677819099134025776917945764802029244627238144640612298176371055717724738357651937478284213608211411956011974539448105214814684825692532794979616631089847753623607192694074993475421433612427727637825410168881348850682502419652959144237069985611248689966448447957886058577622201365547056659943051848668684302697029507284967582158745824662929191924779433616351317236089708872277853839014810501510707655441057177927413556117029762744963536138965897597272723273121787730764255972158666295846985313677687176071767913003443111193219358875268892615131788071008830824995104515220922467687440867437055826232942937265350693548291349668158556387532049392962276766923680496635770901630477267681855245695997700569038801239836481939589824199184373182321130304391371079191430695888589661310168320846843136748191794197875030876718858141964999832961460385304785022888877251815850211903540748700018252140762825389148516728338382216960694788364497206832120110492308153428589344555197820295883115700613692844768121103014588728922313078436409128886800822349615531085886259853454407527361576218257967648166533707021745695674545266377881260505995295964064993363460097121891183230827576854012414539592613513244805922474154157493579680567575597152038732180192403566176304346372638597992870935832119885045935627301954916447996225462830221055258476166305000361863312528258610435884843441379018570524642704586155092470158748869990582538180906757131984022804310545690231287737198884061930776446683795835976274829757324799533521855600612466061928702765682947480138234729263812990282870854503779292609710439045222831681245011542167917831662722733752795700740411923088809815050928845682150223412221918477513741738864318340921171034843149277007999109597518384783689271867657532073472444013255273991208962534084613636052084298777878524851464457848691635579235091112968977907887470558779137259465434818494724899329461178807432344598468294252719053219493369602682357548869779369599185892915412682330978838285767096880637158655637977386021029386489470209314266916731872706464665992252569891331342686175117927086031861804155808750408374317094686494383038401398584898592085187382435037261389729156061423806360655733591081849533089077071925596074775549225452030968881650795619437123387335014086457352834683614813493520691481387278066831252070188712528813245332996311958905690890473354806700888807659023123347865601573333332131812353628375413963135453187033517271863527946507584544338845133975453111986778376485870153827401565320120382513923598114986581328766533186808436310951642861694036114533383122183881583832257939709498741711474179183043856298572132928854821979041125927019066476989454258472682998426686954419755223499166682716893653315275027554234464631110688813171948300228036983135278464559152083672693345029911051281161406453472653089754994092163240030798843530473752489959660082281150719129135487517366270456852719521183413697224988402060347181844176046192713408851888007169584543291241722524387097442019019405899779344491955881072101048546602583872909363554449777436065262436494079002508690801738284550731416795260196448133404016420300001564068828508558144890886229219360907909619635171434584031283912393140697015267550846085817543934553093888796581312729311735267985216302196107460860379204468793888209278845847432711267082363201476486922002772856160322770423957576367894179402123872488606827390080173032693236273653461841711958761146818071079051672902610977860845365440980270674803922275477654320018495849520450680164219850512590674361566415456718304298613032329533968021883385109667797693707353376227873299445985367797975164854341351834870547432032038688645179311918202184113748878340881328994814908698896648660567599204577150098034320196460969258914911107579248963130844235152467357236013347335411488877131646297084722956256301629260239544931721138815660579189801976587176901472183540462385911966926369515249771453507622008687060358908821849118148341261241256954890550468489735189733524223835222828950599381198340448012419530252296728659890112605140706206085859647742597196816889617579320209993527648635234745499829906611841043695708157729934700218535685882037394996104735302650288078420853398912223005630194615960495815380774077642355568420631471519281934554111287091569169616616493921277762994841279385919782995105528627565729146054884808467779160144710232354826308468611927163928122606269696655390472414016337761588786238621505618939869608825738689110092583208199509882395613966891368498666611021199294092629670266260469110823844690221947692634130512902278402481538123334446825461623219010633818891996381950229855392281296349526532866272242145480658500026694471191492898461480569523024709152002836193215698977472039473468882468499582907026587434612071210487406990686349536317213573204864400556268151809332819426121451673072926785366622703434201421526900217913971338689266966256220462705233906878292457199512906819930634044698020653493520037898196923541239703054756620993840161223746216404675962239732670677835562193729291367629161276071274349325785933031395580284474247002786074666329291244390485690484475300846028590177538399787575581623101355564869954938785600294849124133451163265243822356034452015689222074382843278297127088937811850698502723079359759935787323367141474261955500733996062517400720163158238920053275006473563071414139813594656516389283223068469660025161472837628737405044698177066982342867112771975690102681163835924169724967333890270573308239601802512484790371922431948328174687752287127470601329108727556606931196920699181604454279099340374047794733258599470587747301815321506959475285080334717488331533319707374885807470614516143370292258007607859164017235101582728479821863297652177802106472424844395344250780881588954775988002258150614284656559621099394718461787397988386847191893641783156468839884517861565054383123848458495683842754272954657406333166099722432313143252298936317630528740545934917812926680885585656226478598006557438118858844896779790325907242863422624499841095481438775607688608203007012775845843152272638852680425131180496884514845439706502896275557107188605155706710683278016142864423922359914309764359907952257135676235251634795352692956430880907634988950799792985674064669834786670467128310014073346876628804898080275153511206045794453941777959506768593910074293966804805836060548910510663100052740156467750950622594723279797554553824324815796817677152755755587918075361709222074302026612079238274503371249914105402667226955869714125256595699197240576715074180388741741029606275277770957541511333434724942797855400937399432079872772991117529390223134860527072363986774569450126062542073193013706540351262953114579447407956797940958190521640051991118708343975835849745887346139068561439915375533135507159014658771667115438370557273219550460214008359982144332167736797697966477923653284960117559641686011169321162680591905245773437569764129355360259429875923882087180448168681825363617293068546517212247864453376256410931183500908965544374624242914719506840681239673436002389070502812474340949339855363770379688002390155008052086223437006061067151422581725991209050237587088373807415864489289162889322748417567740153526384229847774198322538214062650189785528399889257419834086250642659965121872511958225517450083098623249023519028699619038112298735657193984327158672105710985282486437655908713389196015076908176741945681133769942135208250982775467137302110410355707386663712655680572929008706413619099232442873040728942371464705933816554513415296501590893772099054347449718116263591236905573310880057106328859366054398180365540607112703969831809569453874682106064709186091206734951193741445843339001086769561528498155134418749539170548709618998065579941167294487852611326199134132054999881186796219371785641060191299690904645584208191246938061827460717811519402573476137825470974474543216788951623504611863698140592891708591680695134126925857143057391607435310459316290309849791752952569467576270339814606409881210526111819195850073998279775137706592899329374537392008077340554656597983635462515560489212660384961695107537089398015029573906364234844978291033927248816718964373057704153198769625342821239788461174733814399860475882625460853830055174363282737155038782222692840686083836943884689094205454557323751916537201428729742953685451661217754651623059868127016585281662088692461199799713458936437884016460074135848421554436623970843287677781532883187243227054427196166600492109258803715303920409671953380448999478505380211188693164252962221978331837480110249532348699006524710572282372395021613802649207628243225702648244674710416936266368499621712079415256072544273404612375425627581187920594118895346865719682799157193136276092917202338042386936629427699216896697247960320795914463670067248848291410618210232639788794930159941395780802174275209332130629016677995542447179062994717736110806766464610332160548627128441814529193444843788174593761187796141046162703609253212817554805647211810950193922076152892421562618442096542421305567482670115927643840777876382523383786672905250890202265446965510765294920362382194406743220626737214567173877199839087664438903421451475999838345508876518369189541263208230969296416316175346290619380600195161384053820765706328286241630418214780582557168776093185012962722789772213566784629817121573489498041663042716063612266057558063775054275400559585120748474766797736633030308805471325697104748545533549081128498788287982941613691688704278168775367290059555183103668424789447565939312105217815988181643661983366192193557788266776181050131868037533030178669237891942125281754110831243555549222759341592404666067296931868560898294934907790568931189244632357868068848022732355844649638457669162630198098461586799812220227049730220999595563937015545158634448913307192715020548526780765571317937103622286844898099768104991316581607565245300619649760767112963449441236400275093381395910647300271302099578628490457875705255911609600080197359760336069429032673276254859396628069755881463857947412630715699376707840216593670408137499979581860643379055198423397150153298729786623862562225277492097500104403279041465111073289824646122426334655166854132387906336528055057926058704381545728989788394932199746406492775978583683509998337802207032978993617921499004158673371100966522855184832692445906316821400064190522218297916442456804419129688285758525100046041198284621002013872482322558164704873587768716759344405487283811070633753656864902738961924654823269625278762947301848453314905095335669677461115693282553065499835087304361500396623746737956922608991281134275717950050746025920541435273044500720455642747903911501212870630637288520251388704456043760995645252205574545289980545934301494676479885924241099531668526869803310549467832493891520018914551959522107815874021770783889709013239425385199459177085557130671096475776269165603294192163831912668408676085351330522133737146986990057067748237199136128327042441229599377467242694788245805765207942510008025192298216383077941840169960914746016490190169026153446885554351661124750269850078819816753544717801542787183241441884082328938924674982121164866771510860870092313316349372421374317133050123908976958058734108721777247337097658001123733397058681665022513512949624529300074893967117434346871245997153232919142891297264665344714224127170680288423322258016775004392751581456066911582151958158435418661617217958778701314488537754491915338353683216296167291486541449028210714488062846923410143093343396096772448923236193853703690365861321912116772721417715072932279219404419774735032106395044926724445175944557322445606064080111727525708522955029346086865036661381045533423446860401430548613070667163030039807011377396917151141157675825753828065623857243399789176253663607500838379294299705214136338657946792821418726274322010659482830985156704520842167371792048418617734767663831083203843652501455082083649777389264259186296637892877129150135141452978119354153013627886839340060316201820406319742361452775671078980510707627281992224326870272394147269155310841322976612759598989606323685706467461662917391901052509925486176534854956196958971834226110300460865622027319571831261537462260780277283283601549136442639640378365961200858486706607003784156844110685293038499335724097224095170438164220392574385661377514281926875630952109323323356913879446186318362541164758358164554925967565520626229203074986645200941693806713830633552519949431869401307962364761880746728671211878131788138264344691567662364626573208299262883482921675818671673401676410994566979008435627525679398858348322777429673451202424790197547683246259740704064277771763701298805727226377152881191736213184142671712490889480089783836194149300737736688014917932794821859911833674358651436867149605824947035349173085571328402653236025866868429496731507427812954054899542391038277537202729036987929505186793395378280667706314181697943264349152000385734748770030263597098653333839817650971376973993109120160000952261595494422057591021651555855373149974932129511523832166965718446645117654372528513485761455275572621988099497282096022123364565095824798575590323359630989800820614225627906141597163410199399832602565518537082981667025327577551768442650926890745145518129276058177268281707374346842797138050837365225283346026263385841334424360334505991562846997566468112821959236485404854604323509671929146977663165262686146764638121146071850804040621293058075716884040300513299367342098743096832801597222689848777041407505257756692828833167571920370019767703270887583005072455743039541114688284000402915686232015831264617884396693439610655941524426537680182209462693861922583861950331543467357799481478572405186918059103489593485213353648699886331126768304063236513230505684746831426343542518844690544473068900163040179551957636534779656922204477038237464984672928463950390563844000502810199368041488387125909201580866552035333819370587812412749420192256612659861775772121458441239310781748980384643586016977474144832290698180671426816988415073861033010801207614348081358628681732969212711212020794535045035126163588593187725489372964532070509981103720306466862265698112375061704759751535840298693198788887934869382123702732338842045243293031763861548319348995239162100993104468732924743520355425295953720982535106922881000202566430582806644601883355913198740914199673640331768789607588277926200261549174422395162632113292378789939336596163263930769824282721795404804212508159470491469678454797165951662947188647774858393228601853040190816646894239808189295445222013675288104823219021662324152939128866173412675550958636168092921805993709475885225124834156410021510018707541044742618651071244887455103256746157330646199669811620868569066363313920101153861026250763893067071226490568426189073582288068609708762367628204739602529454015237245915891757622669146000877750782042646326268546125116034177588670298630488964333745984481084014957710585776532801995710618960390133791902095148505210439119877608350323788847366568298339152892341794673750088416714592939666257398242829829122390157394492909414835811262564392178102285833494562666445927166529811780755986460632858316690750072865126363099172037326591030739483374756511827148347575419965512918463344762718162560754642352602049202557419955827855813142428563277167015143731767050927580015909693185643231512942561951651963304735036329156775933603737798996577817983139126911049693157720138144372172362190511727667076782826140285647543993178285197207929730890594687803850947556065820075316175132205173167051233279209051449503324942016843335799199673299698610778650704048065966699730504956176067939790891668730146701477862486534281344929080896109861563366733450870293368514577919791409176344889545219200741726548442192653536464016113535954112435747184327712326883565174908608267193215551782275695383157807376089827453827419797686458307383614607743581957985129481935147567733595352743133558988120903966348300793513369923285583297364409484330495816638739234855184939056867105621238028994758022353305332440739003467836642531575785505381827816656632918274158977744607140390237286920256518041586179261007717684266548427795209611989416735163072778614817881109441525118949149011136730889416835330783668518045164909574849263957976651196045834369395759337703529634028424370657027326111256263848461903969089514931557022771448044093971969658545195108357287535973402256780898873830691457492038351572305700323364640743539881660815009117945666563008948956461233547093386160648391499757747437238320781806791671460552373121335352642794974609791076296652621421663716274263699962532455649147977154535939209483237756544971957932784327248460012346528546179922499926552269329315052055228503350585185809174907726538777948437332519433521039887933077318628517579829472876483065248741307746019395877074974479942277547415903799795584392796849790512350466527388278884492600500852887630165555609823829760182653336656245896186873517507942914905200151930808472010143685839559629715530128175265630486542435959690186028696079470593412762616377288796266353055008968347620303824533619312438332126922497792827738274443923068561182539582972211852620701831468537897913027237191333258267753043418586243281613573469781988261514670852106975870967086051482717827928467943923081297158439244560386298740676141761147635572919998381685048899627040674937003512673428694295012563576685210481186592420273106073027114143070031370938310049535438070982420171646482403648874003398274102929397908127981976973472151282560470901396044465589341999401088660707890999975655767811224382243882099872771455418049318013558983573715802251645169946880492298658850009199913291686727867266999376781204482618779605114840599026730300893732174578561391143437904328671584133094590814140999842154056622049455508290891805692951366903003409168412812590339720195368241531220208560564856932391737247802685616744321901860433611623153725921354124738692550762216956821587294028498653477813679220084689318395183931646498400174158228662166183182783166949952829093762134229913025602494161110223389993435100811225937052792904764105248302154565418791011843303820805494207627543472292788137061588622733707295571849472410621524595287800808401150203001240027979934222133830564566416109955703902591332643724442410625091766958029977221812218275198261133337373380442663887075853174712891018724367717376451389389529159523769933358781665759718729912241794533798086872549505102761889053869944635406837610603394981406424526678303514127551867637061912874720767129436582497221637641378543852222142828352716079944286161269152008324734376609644868488906686779193289770718113943770867270040945975328215719660056501961778923321210598541074112659031762986268991199207682904516481191406079573771121768795121119936389847111459334390661828710002242200405799306573299051030424121971325216039235305923329042293514533476257999689317638680069195186704018088739739713098078510369296352664506909098296174878126860696777488666785554188819357286778995499108805982196485529550467204748995195638703914975225388407331970859473506904618671087983438892329423061502662945804257029786768901858474199850694290102498844810318099042068720859935490324336369527925845761007893056968314582779974695777337462460168454208849887294294232201120317177015908538881394156565732649322686545355479737911191138327807216642046274086290361743740438186159680515662969667436034338303423308438359875819062106557619951424513247399848768886109453078294118785973167453950693557969013384337938116430710662613553129591297269202218845762113596871531561480104829659535175345317422299426134908827499343018284058572285816734057766284888168875116293653163077240146538806311854868174877508959108329705494024770444717785636128874465144589463336785741569942370822976640854450821036212871810668914363122594873891370598772511502061718261485404762735507624616517342294591003877124875727481779998520532985641765891628486563858664943637109839510733408183728855289119821645527274808083834635727309277886766198933207467061934623943219277041420998026141105975248253442456514905019137767716685531084338050681099945224324995397756009033298588505488738333759811682174911221078887735735384145469497154083864348099650834699365013467768734698918844726817041207659317030310596940478328690904976132844349740098125117793740714672539032087733182349126147119585286239056130063996790590515098891976579349099032139313811298950730912178778601631904404638144658453923735572000610098210712797425609255150184745180757059100287733290194156767598428361284432698391463215902176026469800358801508022120688602030887979409254573390560789690225380461597610670625287232908352028654719159806030767009720977916882663777756245872417365586178491587234891917023629756216633385070999042647625079689465116747067875228460699615694691723600333930733460307528017309026731655602134604977576598757236233722815397265107567759650698020615451640387340433310905742791852225856062767838911503939590759614280427144173150091209610697518585373640031186815926131272928491644045770523343491969956371261163725821048432058773481107836327424450300248344314665631779026839392122384072487675728136939733080605437123920752593422194182498349864162057438924421523293858631891563340855302598491747470418989126175465970240304172941590019423977614540180523130424551243956994857527686546422939773960437524233989456343825380111036736858324495191030255274279082129660851219217425541513536585249937038370533362932305978431933590476165552287161389101499439111117396883829578516195641708231548532471148212925368906868936270429888188536058327061709042821717113852895224770582053892075383320637000110246380546824685525959244450878638911952830270005671859849766051470004177823043478860489075477232079232145863714516008593418229088239376083319230989015862416143611436588174185601813603799599318106818257608790758274956080190534215449272787740311329821495622153675695590133351386600571503585784486392335190934570465977754436293424794657879382599320523025710429727383172170917581781257872838886368739842162751482393903290618302209472988640095920518135621496089639962735544921062676456129886820755124492536000621761815077987189602372538353105655028232842784949651830886592588318388178664518269163079663418135115287095605626731597287766741889060341487900386570928963204594161109341311761044642631706143160829787234462398031805376148545676254712396288341004999177020730071687945686447657848237408766305092635533547362085320615556533193623234819652634860090556445491800556904218879042801828424354887199127435693253464418563693903044054875608703731784168333924558990072110974513889243051313128997045693091260420286650587211757272679634846709811523149345355008363577763608537023228750059351398987813356738859109199052221494178529426527600157785697276169066712095254446592271965632313935962938216347019588355233843020148853493725896386252605540039113898443234275575213836335653469765394630980528954217169565678346247077490840771888540597757102151860518910781984098303415862911514534096200293429111812216194579069432195069379642826334430171876182044478976294476085097906811099638513582738142317356455238081226786857567234727708786313223020776784297021206277402914887016787202939803152722351655926974530999693497526194263192886100472668277614284314927337984829767833075668911668694724224013419771695380726898539240480405445052642937328414391617284774954465724602240609814491658154354901659235088441879101782519747068067236655498959169193906829582032495373493412996388458702034443002694698529019682521325363220235321856564395100754265454581650727997034372002913317204570499398698679026017725740115633881003629326245904129369132810542720521165072183462695040390261929751454869874345463616172876484706738818295861999813245632109596901434563588763822600089568730667515680631032328431756364975039199172193562209148543151310158955071840712418173787382058969705928492856052178924450185913441757533962044793079934366534874522663857459169847304184897204440361102241731288542413969969417432404104959603388400103900434678934246068579304490707874595892401280454391487057627127167000436087419576959759787772136955259818668181873427524589614614569966643542567673966413286094043353584535509671566732612169527210261447966779753682985568651795614534266232192183551114525661643599722541210622208974706531519319425213662470538618326709088698124848055719854335969028070237618730973881555640564688329766043012571544470031705415743111270927680611734640666764310624113847730432694640477130814953008158918945512817947200783425003473064376208613148290440807865145672473588333762551664721272691477413173178871357697128657715939033126312745208634936533036287763397696588591888573151829310893189422743597955185405891300249953448052430599729749004741716727338869140698349051606007203160728640959892099505154728726274042349029372286865771546805079533168955565020590771536563675126760622897982337858302938991610005442570438075244958717901226611738291679676781248369715049991109778880565174805720884126246642659051429674661863505228486880021386454436886622752812041081357560938647979966817466375584974891591300397648629621167619435863177196021996675352174481512362312051162425535278548213334910350558276165265177160968045458423701461826749688114592356677540477349953347302589084791580316007443702674632570516997308991713379960179240026520793851361519110476884100254017696853268672773350277120432167921722265701241266923254794978093083496042214154854198538895287915334309600521465426667842452905070297843924916695109362467920848497537114637760455258621155872356474351364926673663526739790689161741979811426953526522520804206542698597317471091673189184716390447106746370749563884872160516085425293850309164875416927103275376564453408352131244177800861049249657035752884779050979388147453038806013840666845098950980016233909889752673262129724275297102475958662199720903617684932523253498115479979273537634783986723919581961309835041382290553419607945617463342755756028910923278425419775790080463530178743608589704039668053159701122818347445481236965978427866380455182023884698059792468471592611275985617702763569834488432134818734879499936083676289416830063601642957488034346608229912009027657134442624998460485517828037254425567684355804531270821988738123547622655541299064557000450504213723708837640748255900601819849203695246310090928696363793436722744592518596251066649833956548634806039225770542948438396308561682698919550562810819706606745849989383601841098293289837072217643800700649994818891194871944653827063063295366668386384675806765771560710873522131300290118757479042876194703690553594491512558950854277647247226562034585487565171904231794510800422854898754282150262481009581054836456163664310633372552698893036854758520884710152451151051457416279387284174533408118521079804078899274738912834427160629049800593066522583354023574418830415240520780878969217752288430367073627454810303357451512105852200666684838219749204764074477920849265971880621548514120096684149122907406325572596978539549708275922328421360966303270674189693336397364008668633330189560828476212128198920514686643698875771283975579401488201332841633835318721156792794332307966118571109280337462772712128704096909275052399380574838176843032907409325690295750521246437049319613677380609375034916899004746196665586982636166480601554379924015736381041521644831288701695936561182690761135405484592828926031852906588999799470849176680951998918357024741311106930023561678872637870319950952953829132132953279630141144339917160223176117707540001960310886784060277423019765363165678583041421854126014062175000609399998753905948570474858350519467784601687159111820354517113455882565721885972406927361682137629504082878598241797445659024611945530361209499376186383856826744434569535210911288607505402075080684972014173470784888163071433791365481465173884638550835191638489616741194449899604140241104828004239326130374009336354163580720870146900342699236328413926400183330451312594926641441405919230181705514926579388765791627474680860929756173418714172233714497582276316161273056183203089448407785184559431500949508511573463708515752366580218383180128281021008567527582820090770002473262457369602258728651749943323050442540658017630944164022653255225081678011346779501808877436650777821459920713464649587477645412911343131664460971244669062691604573769844397697751199062837931088381705212370840508239881770883760246604219309582771668242123552204572565824750954421031052614921266862958096326033920569110308888235547041082907387131480986280952546481555103192092840570938102155013804512221209065372921946925885130940256824110773667944043344712262598526885186724517643489608966531201630576857893552487423630134217845124832954537096836442949575881427968622668874118775441734014894376464385376792357819184894289845161671119343772897830547307860370434561869637064955210113934036422083438336225035333845146467113297884478502989561087333961532184595888269584478252654826838546263730406889993831739776967643280736898931286453017767290811087392389058044016165455023928499245687006360388865749363341387541638417779378320568264660709779772117350979647394273240015508314936045339552484827730870468422313240653683316147028320296652126385428725489823836970260526533275888712412241622893061696817566118748551630752434890726133235774913158011945228027710215413568839693657679761766938403618260075115725872928095364418143166345628861907432947121530092676651697832054903824279121898435437161985192193120446811559016534596187821584873420295020545048328550164155475206436423545463003570269516342183669600655869866128463944111354841748235141509558787996104590452387113744191754437332107266621205242026587797408023683524544344827080876301970229364336505459824089815946716011477715444608580298558003863388711959239413954197476663167865018961037442868255043015720050069264249513853274142144260944347161451031187934750703444990717284331383242390133893190250564591749762591271036226533979674440580299488216124406384232331555210581092085685379735051885963407142719705481459081946178566709327350678883442599177983436527499548210423602245647459298156682701457701099496383823016554395587435851629748917231681453954892690212957114999531204664392909064595035172654756089187804021872114617713399428835235240589745593393301743507551371105024355262807388359021245922383783676772968710336789757104722091841252282591828641667886566839094992645630554959351996307573548576737594071788180743169794827175503015669613072880766870686187991777969938008090599894435074057017721801213072003033072084143480669939072568489256517764494571126205411335567090179637127312330225673037807469201802510511779448270094588873202802223322215079106475636066629164409008435580733988148458513201594964291365190566606079384389546822769328362011030173356924290827581542094317463844307300659881690734182270336576988910736296481962085833963667789198933044570067877736814657047096155210018366693043996835784901654699787083105854429620573928139916956303503627683912721539195058749711511873628699879466711027257312582733582610923865317933582760184371067897297497090374547826825450200670415996392580794702104970147437950198116351987101850800896595671142081116069181380026401088485504988072091530808054014952366661804897349879462305474017820648453203966356936436592674221351806509753429785433484172587516589318309768659124027476776204815071738175778765911389299421582696839657812483544969408705207012124981010757619590208504706662104224546460107846917341430712126004869527471006515644378120750828750365702751706020271853251796294781876431816146783268035734857832883314078540833847321680208480163739413245240499459197262851259718011574570629009253273334612004176739448824539061311890906717932885226988252489710166633433461713463427747428504814676692133999599973833687883025647972519111093776142792416489448839884587215204791589424672671605141485816844732962020868316417184566405261494680216012871553410303403631697523810884212749302514851758171222880442262622191053693083122703400521234789565812205978634023356519486547510141608174544765726445329796544727831475663567744626696243713032711714840708057277456775477999095307022913348592727042501014100528108675907057266266495538910609698072231355135205674536860870016149553927855918378015801205435142084230704073195331671492073217052428073503731601351504401703047912973027989171208223407338026816669829714790827343247987425653972654274595222022585022907866029416435180810815061952057125257516074337596833965985289584523669775418720831511473712055526756683514755099674270390325682478246109718791820264760180635818033253666464176052676852865821090801078573663003813790553910489411163248774427916277370637507736669827427570318175083361354132635126495031335526512851833745861064042334735339465209216673632834587521643631003773337171349065432269020465179175720707886674909187944641198908902014032250558133131936367615971674480405420217608435638621891176697677964585228632468176381600009580582502046026890996992326692292768180959931410336068803300128872130724889210077604381513187784451165686171497844675410379421072359477520476453263361592193211833205406825201288847109120698091634685997750620900601228962566193412323817315294519561134891213460905525090507268650457330283718191264675442593658578739575688859663325036523064107632878338652019521242138807121926417059025790044115914396006672950614744301089982009051523815273138849553510135322694099659254077979869269233832812243799543223354778197195080737898608650103535103887422104213467994489499780328765349934531424779444291844312890266859330094548430642146262918418598852053383093498805021640613504312919640341264975126639309402317213611551718902897479040113328613200881534071728194371227499437533653706975909989956057965349496777796069181422272899974310575675168669997045295418354275171168062728813707513642875670917520260247524322497430881852082001538213571582017912998773006770102385402364551564529553580122152234965248466499354946154958630454292820557205106115094623521567259152092750951035000087668596630236031456318805503047965225461120470525616589786102619396335069644790735572550858061975624669936458107186558621929792768038083762169014002372723115858848767339317444670338367283270504881019211803541254155378987072710938714756992236931180366895218504058171550394085705212294041115484154452466842720280822818058563582080182646419656601990756389010598929342142868182104225881543561907410951879808261581530488159956549133699322001262380896036910030428934424474943788665335731890988304016575198437793589827628908786546830892807489754300865216518504884015258436727370239001566714099351002380446793540776229066502595890732927658024490126431596497409180496814767493407402080924466494584586491162497009631907042001835475575508373642072465687002547878794695156640411160372786571056708355548559835072712493303964852861459716648487270210042621823426181609598661910115696716709524696848572578458065094792634530162655923714338005367450069061813592426120271220282925486135906189081990071802695346331926626186892916995045085464392703441541913661062257942217755827588419055437580708356823246854630204154756756228640459818869298384665907450598884973912627471831373305652120918284839814890962641816744581043827671146049892915673049638475521714708938076398009223031216973662251901915206947499804023089782815223736035725897037522507426942421627924860848766184975701698979324257029455124120428770376360799242630436026757128711148936415878889035861027359209709660381854155858511392047932741513500653169169930382713711577027671738818877790241569670959516208534999759028280835634824081038522066164670280400446672299639960615323497135125237336415628752653301098717687036081083684577370730954930869020705571524314777444868528735131679506378894533018483014686021905613115351957494473550408217256161310028437383597422638345603180015248309276803364298162631769393105746265401508536147044649872320162866531068492160773273222406555871383934704466285784495617572858532063455649774364621593708551116447848526110215532547187428038856310748457984226078196544731898847779458131047578608554978621046958234363251195830111509398224796160458177103412111772850316043182935107106357269002213792436388402201886460142608484713634183840749303968954628557342578654657697162160182301930072160296308451463627680889843690144991799083667673552741041342312392398009928142369550102519032867228929628841716239228582264337947194846861146699319972620113999085289049587923051561965561077314476623022801805474549583308196714368174658515479519183839216903421401353404199521232270559068674898542205932001135212597070968084926479875486256523419155586351502555025790911318001984178674844693399299943261795760938191804389840339950649538258680196985685077116074524831858019595489425410475313655747021289348338459949237888136821423160798990661162275301793876047625790912913596659454149777374167570765070668240848383299134676264169067374067305709954768459396247434268682931794648955542615275419540648444347232775041058673056798661268324176082275568340121299435446278804184332396684307830469439519787630730217393609637415009465589612727341790157839288624990459296934309702890609647202402646102613315728773938455986244463454907541891162976156734659567291570682720438064657733433764417500400615875605825112907902803883720899186460238961547782449734079805686515993981950489985633020613020039416349748566529201659382387361260190441067846565849112686199587137639798758819164511176379112489693430159730630326439231387534621091712288875633787870635004170707736065609484521947116404142939180515022419136690390840621786277794688249467412795428544539145467103848601987901740211636887006880525398011942940508911847176034569851801156886775299667379361530212423824525486782858366201756166009633626255175720606434847154664845895114292439143401411985121568597454523779265236155382947520387321071594075838476675091080942468675278845067885124206250630199411922180187323084738276755029881145085592425177887184313376242085990706097754315805255746988157620042641439040231848852660646445039756869803141710742483520034822096613012744091031782534474693966423385119013694664227964026172681424992058558708897027165588351501736423870070049323161014167496831350411152795549693559565299590529075177563785609044363401453691430777503391409571894351516827282201922730068635425638809599855659315760003006118471528038512241095235750206377854924387795410298613855165892994683280519916462466442660012954002435750147359577070841377915971759094274395766459201371085955046265136917497532950069394642046920731956876339494619836995620749838476713445897236574382304420516250167871209669806610709421293287347728546860623243452074197897311822420626488124733397806403500870908895097871494575431947510434488321922113619027057868290321867337988465628845172803865510579327782248529327492010560469657638092237501306059720997200073904559368393897387235058283208962574454625260681292171708969255841682123246862579688480063264049851102335307233847083363685291218273057344279026924109214983504724269551922990791109170188513452304986853324040624044180107542452464482777599217127712634696618510181186204785072082441705636071729583056754946753379750961008587412560916692339340700101253525443604750696029517627686652926186560314051214021484665221972043666987487218484310396616735477997619882184823280618018335641769772607972920039818451523117049902021665971800246413282699372173171571177327303027830344808628118129348964288078073324942264490985268789850833440687546965927989589868592908735998365706252062187910296527857566238529034104107505281820719571249254110470170963192571476898110916332799609898772191709696799695475807964634546777124393806062376152724457982295032145598510327550548551964704917577432031529173896462529358511809637188506243540069125998994422150829459882539364136648636762040747907521037744713799843044044067720684504047872957409825679318288292301689098985968767330392749820160889481725639737248629492408677830286739124124605164809051902614067769455698009768894349825215201965530348576821978493775968618351648494117533843241945294890479728079881266659047817836111176940646340924692671721187450644704095139870375407269538685089141808186723519899603069107344965516821598998067636058079281030140399119217057283338929633704654824525677869114106988780226981481669979774801210366611828732534996336213009826104304707620635770883166414608065532294771726486848760293304102416581013591730238396015959815167905248248193363703009765123719736045361954831604525470506618681056549782915956754393960592074300611772987549427465417958589067534345238543955438137115560744332268747635486195544735185626542205452226275668758183151903678463740308958912669569628973645270652387371202339876196523695796268578820175279203409979420679636825909274505113351474261127065845209147508704905500629172924704601195549826001990767589308488316239789568002241880698810069226254096201573067385593668251365594387508948018841575246348826844411184164754636477970628814666851591098367117372216273385844152527918468922704288359253714581696613432628142158026051947010729384536028932828963453413742839960231644147838183147364966021078176601212335146906810903896626266726157403051232869744598232783910584252922073828821095978984733330031794396267100349557021287104815840784474035620203440868125555911246591122863026854861613220637404594193256010918105238240457351760188570665722457571396094046165463285308986427448426779395735537152946701571241938244274912994071770547068742217971796845314013912345909283325683183506401322730434131191708224781849023170150570578467979374622205523487645368867270456988280421416640898914610205367858620903096272328619937956854849300355814735669309691454960439466644370244881852739049379216327285642743891097127433220774482374296772424325676369470118974103649675771684846774503677438936497383907144970857914831326394062564271349521367366169305580341766934674803779407123785339759343636274101701675769545426647371507885340832134859427575541446626793812956607446012255533124057455984010790068248492148702331655748437178918771125626133602846097005103485316668054425469536910343894777026829008517799788057755636320613793290814828781866934872452504492030211432094541020355866169810867144033634986461109827920689668595788602273185035969821481923301062467943549765939488026067343470019542152991352208554490061267312683521808630213116147306884371423980990220669081852675940164341156200359778620162973935317132243552229033636840091083562310894600336524562698429703939056232522561150725430595193235332703528647370926785875171096319805197597645370143282194299988085500066580119686386888944563279226334038772780712499797166449025966037796386369234783878654198874365997362170704234468735346036545245228101574717041440561146065067067796110309093008705554601056288647722878045310013926675524514022726634816020182576793169130480744943840620093297514549991849363512299125480130041952208567557531338316791719993015224980181494424096126164687600671559442887832064467893166125594430711275462848118344833833147987160895830816889645522359060828954590359301342978742373195050186061705502119251678293326566501553218963954664736893340881596795336903061871572227109558135890157138934935450152903934847053052205396735704911643796790112016448789890883271473500073886265478171784110303336173739925112876844072104199627016684822268687303651890401024286236558260086753691926111292726721409519582898822560872217573503854068048242611741002956323377823158326508599655799143863246921346247927697408838636546554639848418602155223480525250026559234707357741173849460670832188554916981452813744259195251048810524108842363024570315571938391511185847110783201446606658655623172794864987389395376151469777354197962603044451747486095988363356012203281988521365041196208869776446394958348644520752385939766626075193016634127847982605590782026902551697865434881703292106769032710062061506058577771715258026362784846211990610642320844064764400644698633348731838533709910596884639473789591192082884349256564862266130809978549298147963134956791734143168490114680619940600424297960377301025235255639748608037771130059018027081452083901099206793856573013887927724157583177339574432064825543320593337201396284719947130565329307737757453149347525235015185653785279696916942535475266466857171644986098390154269967391456364380371935284599271202307537034856373424378025564310034944034236833844167521944645585556630449151001745392544230253841464757822864652938848547830639260476325427628743332766886329723225027443423167312274819225748969093487341447672294855849863430132504039416757389077114045058563007812302493870478132805782629897235238301438336585282273038170695645395851274244598869708695143497048230585637409327335128111626703173356475685903106694793939228196749165989010508939399594702242171736619479404142622486224025068216693517625011669826783278986849049286651784561873168255553569968133219756484347261529487937461538550866896065439323866885571383938309594150911109578219509326408535552477939999722815230904497477555258853308722563628782333783471796280765397897921894431200871769330982670258607639949465994380609769439193738287723337725033406482145337623497913336696490563754215363922268983977629696203466373701810645191500230642719988185202836287502429418288746175243904078735238741782879552244213790012219315063789966241890716986425693081960001382288255636788138389786254441462382498719403993064372000729597580759296259013130619786734413043913690573513091288472796830956961884867089508076495372945705710964806627544404001018894390871782750165676661932879233161535085896304194023837183334746790188381476715841688527875856322886544183187841684581908538755534496164624623939048891791628240534965082928836276180624058703191572290977430223750281122538018362115771488546215044242715568980621856465514768399510426405430480323049336315586221936666784765518300909124508423913397452943549642876258267818622323199051782010397874683642555170332953288304917773154628249769877390101220330097602466215228296283364277060260846725825574363256061417136599358492602556389368592587443401545085834921620579917149603476745782857444135267358827213579778032145846548863433761080591693404198542689098742907871782390859631121761193242128347007943808192530934309846286370788475173572059371492919270919202583654220732717644212422881718655480035262338530798330998893945903227563025228186642168622947306464623881555671931578138395856924941919581173554069159924589604043578081874506254563552020472677738364586170467465306294736098319780376082964599716938362973413352859694471433361779888079469997112102505797174782066520347475766507203819202363138719602827061590626234402317795534651702540703735501726930467272268537461283448844458470335687193257719126525684157340645536181588173946378618285885006102303852359864167619936671580083940122583598985804704355404574662829470293601174599773290738152208237148525214221154492118812750568629640578675655838746009804887556006455069218516087242269333526852291885385054073077814616060809463806030336260679894443286467102609089753471999943752797557808973989270117680571700867721879554955472222639250453742246787959089246452024444332686176330146770660474252648787143597010572555365558707504644869428078679587066019937778317537367310621852928377343776201040324422335157557412045583862183154277181437088907959778604372565886003728261823482994662701817104785143988276892953737026079881769197116485932786222627669966553395132440090940416289693861901258718013718173109306401461873966577779060124780657539386612377952029379163154058619351131857156937892341852599276347944259083920829391589142926406636718461857908008607874990633856873817234585685419996591358199678185267414863999290628657785790892907164590625860333817815615826335865509570485255490812045656255196041419548025085789005739475618848165110134480823375295542863105292951716328886219447644011163767869708843414096671452584352207133130327931743263559236129395110824244819735496478557190047064183420305453626593870715872809051959130791009266511982546840762441620830077173970208587650561139739245474043158407867442974913573279107485229496239144057354807595713377937445214172689710988676300649032940354312841853221388663348122267890364586082315994663887597940148650855550602574486590577948300525801361534777614957381385943596451666259260536872916096987064918057810128676305465426584122727256237150126606212784060752358885688320475748730814273130139604194258089298398607829899043054597574347378494996586015751918731118315803073993049088245215003758221010522413485272496461867029169875202495779249429448774200241024014735863514719812600239379603728998575404551604385931009014589673846949867958435708848210003379328052014578761807577475064376984976652641786107919088038778152954961717993197715000139854676900360672870711126452677219383985023231373917010038968372189764152490363324660906586517107665908601134032757761809169940876935735913261595539147374473503096787470824146062258368763385127069029009907874554185599639055021295390665304009168689273378529508302725086846493473467428148131433229402791123222146767268871851666290470856398143246456602798719439812459917680286606703057397370829520965011415143875593263038495456879095236635742803508654119808966960804229942830772404960585105627121873327703056974628821979939783504823093455096330682409183760630708250931224339471753344964558237586809990186492861306299163011567764862090148832073699401726839895380961605748173739075535435378414359983470109433843367809733867986707747892969761595023619109164917268611266053882413955991764804164012412868751758351068657341909062926414148450952394909888100362620113319828037863295940095276903184752809322316444410556448028592065108570219369437402632323775492836266393872359389348354568342236663460583522314542790668091693784511473925238771075523201890174547025399844973030347442782215255339722979827003166655879462732275174246988745928112636113422560135561927151853278942253091724521721209519210423569173581975103668229718955827212599187759033038853064685541421179625230029103532277246007867434672688785231599463665423446955214288439063640499720376929737343221409169844708955929299809606404134872096055173555514980059075758314156597657995644407946229854442946700111053253020163514121535056068110454363472515078046434538678551033744902964492556808656461976863462924585972484277651381422385591233887866495745989862367923644046297676434230033291468922882581513918685984604498527554070317048775687976360476826120356308839400205279615013329805353697519009017589422618555418791439224182404167088832849409194076995725779951892434958378012241521718408688023026311058058974509817509535103859672516048775606341162695339310541761311363286528624791906523402162403257259017799735851339547472492477456627438495081905612341155872511181963138326788194344003032236503395432857525521563083786202436023224321332574549528524772264998231453976404347260205486639070284596225246954531821307851922032650190809363852050125660628636397338351885923827709977750706222539419718630553963712278723539879110265376471597949900889997833950970941919104242379661755036663913057374161531350475486590269684818033141161251424642035864143475454584765374429121175222896933008834570903012948217258534615307446115924753470169099639516305141493147332686832382498846250317722473329940375860431661686022177065199562403539672755194071815031994762258838724034667210003474571253615911597122307615495382631223046774249151524309460803071780289450107356203494009982602261971200793874650671494285797438763070688672391502225750579197251780039418859189186531755488515701166676900301027071263213259631371194996226160586005532233638813316677122729659686353157723884624613826404614848811433589299455518896552587496907604353097309516844347686153898750535311101968290397341805188385152742154587355409047740552671928220075735933765691518782072982394778195219352036945264063422816561387054629720839369978258452476718682379780626457222234224042256259672487143885065006995122604161286147535846172347707880140803427116995984345568382389622715641708438598270637423854522053056281841630957844875100386996984073008980983409658937810825594864249830632393710983925136111533556433209868719915451544073399475412865348676829676040450217373844927543901677609973879561059428538156852908945745405213594938072614255021812108159559172649293569483225207701270887819932092872287532401630698822396449775120681864696979226711823890432830957474876636210876305660518000723875112083456897286706384221281541422730271537410988663600257315586776846205747750491499868137391737104898234816907812889534014187868917405745989772215371845450302921642051340685424045157164892912274092273774586107874445957650101657148410785129621211566742432209335502216696899529557245638054121902403235672002395550759822418060935691313185273392725098322435229012955092158558261204374391083669663914411865873785122464805713232189242747998842872169059137304130633218849933005355678848124614910715543569586333013567713595394760239138057969736782794550284098971905132692319537609556700835352794737286620768933179629627244161918990083684213329321550724958606365566311820242086900578080793850861634310612332352202178746936739043461212824060610014771277122955423087897057115245471679976630951592749295439709963914277751291617403472132604357337276251191604711266902008230472950254638619098422496820488149245018801050999030853879597346320122068008596485743672330238948718805333097969704954169110563031857686877162758803071917161212872762959474165180633426780645087201284260137793377884543430178799815080282380505311120688980038015223001781969438817454905605629157117755176269479154859603828474472339511818476299204549095018136463345691550497815920076668273746216399620688409271269861259582590613965942180101800876044894487567111569683121151476240555514678318734801586686699338501238282069329068846758980645244885860580479047894330323411931053137182285478611530065956546600005736017762959211502439131445628391565777389697580333743245712353091263981250796779091656543612484167802204285539088767732610985920400239331967374735838307679620583549701765068862208901350010310503872436685021015214784859721003388786668617769208497550208400868849940178618036444732981498471116459914048505335229722265212580261649832852856502595501935785705397984466910638052253969453107647719454676013068765186028953606594766781456371761013462905072268676317841787035043632027373903650101639377893004433805090817294637641792696820544194593400960154823892472410460169395368953829413740199325720959191501994272747198307271512708814095390370847796007192675584364916735242466187970859265446175159065319458066380217213509325075787455865375571509369752650249652829571006946775929099312407306305895360049192975718163220532861028631024868550861682764893822568764840100562236580309048753719335490050526735428067815492987544614415485451669287386145299945926816091527998515592271903925242628337673956257331979195265478785848692323126611255501424921951774992082790427139353611158092897072227213642155058748381572076408135463554456064929447133353350209582802270498419765879508210095118468005484733256642294110968062253596331915200924202045459164414406316805739546583137453319922368899917365532064384207465700586667665828329956695187708831893367867527797831408052110014198886954111459419531211726034641998088512424096643689147076222051663185675745194726709871769990899356360051764999870467893236254719490588753044538207874267156609913222429405920590579999892455473908911995659388838058414379933742680990873577461516162239637760877269129042799515177834091566346348137933907326914914520290462658304539792496284528332973559287303054142981161717464838759972064069054477036806442867245685751145118920108710579929551226104296884463701259981084194559591086936297305246294082119861028516411860821977141754473452445548751051584412001606691447625443711629426453885850797896974157951777642273780374420263334520192463625921909255282003195682173849962221761885261483694671322508279306657249953653695422785368471800367436387984130117173981793154981508644291316940878720069932499812484291480012310589132295642821622789574323627372112637950227517162931977012009654072237821739407628864822033370330362563397822567860146671135886856231289795436755184741769447229628160028446960746631689577740212550670825208009806486379814461859182665641802979511165206359085914539424756596179307712984141851951336423704514094837762215630880357686195220222739200085060637002544506298550545726789331834083553971175621057638100413355862891628342503288769797860859639263941390316115957771858786114997798817056483852219242400900951776158040264366730551216576192186399623621583317646958897922693890069658401131221932677268422130174915979807508482885965532965013977631530618296950787007453765024006390615206709284004416904082149130892407864795798683194478076627634522226450655382150703236482017221208677553796480787971332697649692863108393268754643508015347176013339053249255867154935891099215886412366516140416725451485728417671021282233049234181837689662300237475748918019412749910161410217093292543075381838220376225175077796486725989282115748293808654891138615216225426241542221317428044281725478170305772500974733728347733316569488055814883056289935966363730679602787814633271087509419178641939891112172473777657911762288901050265929697833442051668732982482909653420730511640006577316974889962564345981286664035734655443836406071258058132681824483753965829692154163059144324745083190474259047805188271469925259942622311912649112456880052065805883030165302159945199725750733434039346379988375420493234025679715195538129794839230161114735139555533320252235155861808303856108460413950236583412007022139790052081971162984260199966258935246571815409450714561426824235445083887969036576224265684354261971346372672303830415335625696871129778006714340389018847734262664615762515251633495305283448887969397965920852816485721484831172134269410013740326299009913624060080486012470683384210577761883718558544247046134943972480253688571311620382035535543796676243684956504621047866027130526153055458254298837187745327887345959811857645926763502961531232587666838554941705198431474987409571743860114738562935414102744326349879701208586830412891380218848125754086637062470421775880817583465383087552765273344655053589872526843235100350004171205373077669952618742424755868355475978635650408747755609435080022862218789298592609428605816281934772310292710158609464212500468548591684429887828830543737563725432781461546991061689317184276365219387875458565900183791253060323061997897811094946925650475738055876260415090265182005646349307185497707826392598620328222208362260444737549400793736626006482682791695644786400257301143043348324530415238617342172187096102272363609767929053102911093006243460117201369083082730258595241481222116590344533502390742035938912267737875309415465623076776197573280195552761005856028795882940483505919306398805837686458912989664986452880646774366975600586245665668404564937664641381206036305316292826779423959828604309944676864767827540156264674948646549838687429693796105743882189373688625959449628191220454357242444746265053503465196169698480585442331994060758868909194695678286606091425931092165661902856198960900465589705699159208121018012761461593158688731364275386408601402129527928974723917274761578386095359795654742026576978788222789057440324727758382399194331463836483269359416623375203838773189147481893637896980362364259109325999095832865228160911976989875741225713955858651215913060467749690614164964136643595872505253803623235240813369004491279069593400665619390332371353314455205463260570964170694614052937709782434751972502551998363902739832609411589378974804075889190520537637494568244111915293828586726495531050454399107790656435024380032643662810450929150749505759118773162997399316423366354979929703656655843822327320823646020377267740820035477674194043984002317664766246865240825671400555782951923208125819532974804977264600715576612108773203683180883497347693435268251996332776430521809934309000108739601558406575824392130205695235624704028773024363912206156934981750715719127529231250886484930742397978484694080739049126334969334591966889335368559295936348279159028373180268159625450898991801035979436948406974675521967613762468423889546441281125102813661191252648087830944650888031917723116672691444814431532251768395225148585794738195003573275057734473616403955484070710024071097520817438734881522467538847899443969684719127435989093378612052987757614955329355732906198157290454575497072233601213248522844861414489131427451020145797731061112290751697879225394210208859248066754288455146944818109672151750961073169463528120491162713562847665931064087896263721243386051055581534540802006834552419091051647007931521340329335810668636376668722073458128633054738808611780403825886171623805638735075917103281570443726982826427196667859110498623474957658747706911845583939309618743056944118044998128406470907675831768348172821923362723231255354390992218815831892456049126336766063984744678961368762520332580492286343062584351859407825832118455317808506510937891402270588298026890467902032503849745857896393935935819883984395478614377059604510063062790585567182724445493780516690040573302307180855817215505324296149149790874428770454210803557865861356056408629755482848604242891583669952010987840979661784537345449516198416661565336159228318157289618168321584094826360334487750493416946149756100404127432794977809355942930691291539860886839927396324981456296074208288443223468275001640185808937348559343322582889839074741084226163960241361835883083725380317393994472928541324206107824467539096337880256465332443325694887074627801259011279892887268029138729078599249160977223052919265023301845789899242536964630831464317320809344398595319309852145096652238063822775786823613326952354428042209008988274606486719870988863880792168311328517723700906963677061430906297832611699217146574313212414619214472219326986821259979501399115897999870195949650458453410998568523505471905752013778282446536462078070537964658876666165391812178177796883347242504372880012978141045075948433324923415629580154122254416053096022388682891958281358151183059198559112926526128011634989653614481930620787348679883766199946727488392647513838634298903753622073869552330979481561353025809400611218226125177806962164092996464637392782333165203647777925501884210863105152480851056367103566644604335332086812648614048366262573186215703895607007142888007119118156690874673203630813666598865396070993211781946465576688952819229073669298061414629547472538464772471225039258242863234184312122199799869774472579851544524389626940930799664505582369120820161474827652197022967675532509980068244603187155532951994839537336695674993110165519439783119992046653382443632921629520563257549115741531694086483430350207691270134413108800552045471933258444538178804456641056595761392771416463771439020618744142775387941339918051516159011276251015441809286876052442825959128592491712494494214881710343335979801778883660559712687281981498779839313791526519661770325208023136144652740800703704591409897569752211823675802213001009631161388640299220162663557716273703790767893842670410740513847271628812911762446700216569579949931366486348503993215992777486051589478338137397047412589812404892946691899418919962468917011437990363129590028402412238772785510122397978230175992311019944028270916100804289328037229087696863644243380360870066258408541020690923890333863560832000758995811445016874088672361826291159784833709333848863808748040321149563746800191800986454343263714191093094330093223978714022194675072702365937091341709375946126003351276334113364043955191999151677586753174783880602779670705979141083395966917389773125565544423795638305520816815798128284454315413381448003663849672432448282166990753332108195306007121005239787242673358414586111409191955481324146573030780626016864345242003498667847738833083275671823541324407929523241564682455764439670654497982315747157134459085631395853790447110390797495896224810599083004970300655545435330463079327910970596902874976692205617400564522968595892328911022246799616500760554391369435087367393772819175963124890178241314570043715288194550395122488152646528732630952750308762549039744857887538634344409631860959550589274341696065136269975592560401898271904852266157538471557270298874752316892098040318239635356145467977609760011835651251216612536964095829347915646426223399343029580550999042021665325669956746903078376630002025526190372699518779410222584031467089068211338439505437818741518265145359587733569612259844001315868274786808206492075812113180840028661252483179560850431894747542715138447456174552606855669684577209916462598233149090543574032867596266139224628100913485839400950553732617863688859522704591829060740549499265719694746709704057264537994860144475874198474562821638787444745519260178586051062650019696731389176247515426779483092579997875507158807891261664061613297609904733382224405437926973494580469719407757929795428159638470870610398350810451993364263438895825736985595792508795011912003435877228527920310979725443283032592094317810034946820648271271384957231113861118673410525276800989076380607413050316555493639373106718707241908335846757640818197956168187247388189536009821106389972008379456183409245442879150794035877295272260633562678055840696531694050119988963044786231189103602286746555416908705479850828826840053013532633350811690850846169572110438049957042544279888678416920002037073429546043639356466754211859117136188744076737949820847431803543664183909216572028189565862815435906534653850479249465777347280041119109886853934670476064591231722326359209466634476857222112495346370102361923331502076636656716206911749839615047960340930820227074732117315767091918215957973836691108701013568480639023368198592806100562502929491776539610153311191294426497126383734488214926360129393560195642229547970950698868652703056993722614670235553205657411004300078103295164667657116397008230629822222420927134605784142048631326625133828155198726148017357418878572764856622586839710090353010833506163489905063232314517239516650839741135000873223304609895052416621308024946323838236704555685498917156687118958659811424076777049617736571195898120157833774314701978977341233796146160713278972940992843534081768910563926932358819980704629160122417996983120510268110737469243207087717723671723485286369255056832338226499503577391627434204247314234180737375181579829812199539103414723319120889472526591400484033758429448980666719288725431819546760866051773780274912057542910731433164629732475112996980655959766326503894176971569939824270793967728802125446149015876030909287198933997581976794115330154537934397874291625374440080414174966180070575985789638647637478309757943381088483315507849853752887993195667803348450623418559554517874475215182991392664458704848431203028225345413740472970901951517493140596707266510687346982243408002800555607775024710075176121641169788406603532875260714566627664120564351656952629098624337562060398368612720655090797674708315921405479010558204659001437145647654754684318438631154179869759479784863960285906278705059348016180302697066941673050729490442405183499376561285453756607225789352738994397376369365239883682199358846135823200217679664039848304338701081234432214970278823626130422206813394927498557644967670202918862835472070739488041343627910092904499207985531908207866077453520950281730552932212039187249374597111036650786364165453191637383337529500841199869249680796729938972477880080403278629339963445528153814035312451759648813565624598406459969662446138449310583767221255898878121419469416364185860479285315442492216729197287731120420974708137458203500117113307425257032853787689889702308741717048693963229803013893359766057373767696647544929768106743979062390942955099919187560641002220553879016492734355171759609645577311572578878039854314377004635248193609856800381436504979957598360330373999984353237291037472505613733381588970692220739083337358495728972093405374326488447433920947837429398895917024431029415026499278784435469944180966443736303022219917876637424830643678379251548150424116460238611947478965846892460555759285488949294734061721155167092473289029182028647800793272722446591709395368062131169106798899662607998122227973452808339493499165706542909762294296296851734149952060796904659293930130850346862090081329537970813639894938572209836781942050903308378977925117268963627669807240363501351840535874070218680435479419858116226780876651506126902022218261991428162519480331476418787920639132347210923213137769097406829155069380341037522097934922760454940351955202139319917302073755533533812055727475697759314604343553033754489562362940808017578188153451405483675199771729403485298654947439762020642234555401404550036169794379371585700816064865172537244574739768828252375214209163389934412407347303322178265991014881672388611945633765417240634525264134401652510660130924631306948962869426911435391661497939486420388448475878890541924530337671639083525780725847305812470897775933193522058742909243347158136357394314611915829214951918990908639208510198802033820693197046469422228556743259539852510356839028034227255351165382318918274592256004186841153349967679792222370504628455251192811094505996166630123021867326097896127003363551771578221434448908269118890477167165004527939051542177988859942395924003754560366064257751845755229815058874235947120540140055142512824426332511577405911807172839987249824899209582809881088495149785391959159845764968673025948415450119205478464484763358996230435645959620518574748338288969303633575229486564414222408116169483299493990213206419581773276476048019758002137828097135506694438466970142583749920880740213798114534013810883276854616622815157969308048167009826374282299078846357412827867406552043148297240610315557220623441317099332112021391419887479219128537430885989919754582477207871029647684406187107473662245059694690052915284322492995867904109453305981134145990296353235422283143700183531307212597773835292614559759275167185886196795189521282108606164943462774588687809586002748293220394073025401210104045424135395257090855308772330001789089531052705455427850697798900818922116383729299247484222876771461450064147375964850254287206204065727732734207205481971480248157055134257844700722924546616223174605918370304579327505562375346614180402208894898756021628671488296820081147340055189341172793409112054985092710664016632752428155585190028127299072206156556884512246539409097430079833348500132139400514845649501377154686637701635599803346877468421479580231932163180964508940056887058473756440278177249200048201739015467236787017197936596183470189582247598297762297543243579381787543679508490770642975556583202470470525294106137484325247559280871441905136005156102445923699247819151813383348162355471050475908820415013676445647136042000626697142395762147213327662774922834102842888299146130690868217628822851873069660841278299850510210126252311225558832225846632124743893010739247452866357322835686089573375485053228520618832588044608898381317278549324259257282604578525321006165933756408873638721422278259114420399624467004953071012635247529792924882440716401975973516087261583497254923093743081426557425660094480440470735319828368951106684513375023571252086450121559037011457605416006498248760546217930377632959710668038182640714282446883047435596145079303863594463182784967155625376234021266748916280264899997762531392426373540900176553223118372938331137642540008067994387553953166140566472861239661868811756927883462624666909453667487729299427199575384909812452385953352999278861809505258716716278126138493500354098410721581561590433303818188529531208074006946532572177310665904114706521701791614329993404354046850840015856426145858120158482010818568747507910055276330283500439569457871529497389168580588066309359826677172677342767717148961427179719204284307122968091871395002610433507564442218513639913305014913255237488043349417010544897607218680041479529412126758630519050921915583680412708595807000935148223439880243159311215007230186783612217345381916045945525873678497252308493672026413680442479789618366613772749145541792799794227299801157646763449738253971689812842812784159191436528982958174619809660535232520749453356744331234376824712073896604756926016405638892829807314909701901475047675060198326931280304770405992672163159500957780943003867477274732239672409186189262785181865492980666762416210456541492191946167053852638497235915210735725461519512146493683867899933138207837267815670291644088348645097529630637832220938190425072391427160124858796268509087209463934699303289628368430131835772741334644158394589757043727832216137501163596627475819901859062769774735289454895684376932512685943661021610885467857335797986453652849154884755726160971494828788353190519591830306428391510230766632901481747886359555826479861715707872821469697004422750870767831273021765331328729060493634113434569885597275506299762075635663747763543234078533165058946742025418726663812091086228135643279823388409963736933096998743455600666513123408683424798868988551328897420356364455284647100284603227026868725151797732428634380922739090109878612617460457424447086798774711806726736841249281180627436111565704286268044272836329330881422655922344596437318684009354218700423432533127977408035119039826084880507743800615947188196690630476954439482171965780695087311591294607338712454110286834398485217359775894573687478907920406906277846926602493876543487899477980836394174865356206737185061598508151821654230878238034018681651520271406345225745837979866841380150631373073414202823391047019232369695924673907273094670141123120179392090358070151563593842906969272605991722586586146033145515874033330821490770265859108283751078647428551561653757577585432063446422654590071084412396328750334845115848139254219489442969289389937814586970264781252005708035806998209900732965112805570704881050211643528129478619909841751810342740716802697882096515638362408276379839024265712835000558754570666808586505316537532675716003150383190741691061471676242827936457119167818111500717973765136372087617314727834429193645149869072885221216181054790851967658105416645360304012918097385760712016057242876209091744212966087573935907115686367029800190922956905591539863798397255096277254739455973084055952016437996351911065528903557374679968690886500828844873758841945530119842643029097694607933458998894980716480021084152058680560624647426467790514787702724642137526850291805007585631290754615333166483648596726155013299965434047658381288100889120770341561635416749570817287142360064368612149229162502792566069120103682426035957063640458645008405933857852697998553072603588066745302948437140649627597127879057174878815878718750829279136992994502715316806916602558365365833531330221143531348261176300984375433918263167984642742709004550455111884455001003107566413772347022283782582238347315083199323409459446936637109144162260973824645494465331453681710030986162186032037238239124427524732110775596725293766480364190157798894078571992750204777028684526317414925274200175292675055132114228184425834195890178028566728045289948964461629126826005283513417862622106253302164078713789646410711174269086953129921579873912023763558027119659442721293968485606093770102869832338717418241649077584193664161750341566540951753820556560232560299048022228161141407255847060729075682816061701434789942692710900367696522466481783304151782773029904420765933163420068088532056861591382226515873083526666937587683510661091319023801494247089866959956814713691849368757416984725462217696840699281601845038526213326997357358557303708146815415569146536658685484402637395976704013845499804668307529322242859459119928540105521621627193075125078131175772942885889252971978412756253436810672657472145297971440246575912245594990687036546369691439736286468576207975831694297111050711187017874132578361885509633247957212410578758314631914585236320945993688054944214767289900782343026012205688126716458573136181223333697678175767209064107623956596429284310517143109885631125160371859957590778083018857259619358886234507488724818541749381527059027791500710287763382841199911347101620525841185610732972360776316628684612687741795435820702135606776793680205444171748332220399102008101744515502513533589256659713486241711952475100358458559436506944065662881971759198467959495299407517786876160339582247760579067254370106841451189881952417988807943970075130398065784420679961786448629766525852663558223138331464767463332509569812551838337921861502145869317379797550253809431376509842711687953105849364283847819868194865150304032740227649451303380064004126819137457260942876696744769563425749267941237355646690192886291631154360018862875758521109132904825220908893912505909622842334593105007101952666317514999683982494626292153568375235752427333738899148496504589958002371122416274213791944663624467733203019508364774125663538542600712248149292777612951533443889082612562441866384960525505806538261605319856932392370008884733538749779038828024373108742482797320140572687645962129180598028217558764240177352188302643250746947337427224517246976315015266944577145827458601969360141102248077927094882004735435253359906738790875042106712089742984195546428634117874362924455696587729260255921557105737171842021731076982159673952040648479580103583909780442722319043908684231275685481926476211596124565939189791442731711483457980519542181480695724976433216007665454714516338919124472605959622728389364056688416725737127012029427335186145018519855361609127785538986559435281817050272131440638451183293189129773804967851103456899335236704898509604987051142653137604136107320661171945418722514705709687239854573699971752079771811693124765826767497135065494519010647166601782494206137785554072670760869211202094408677223084452865032454265846553021689930838100918041312755026850367800740280850233766270662536846912563426240948468893248409413434601401091765750431484031466178474983491286545252214199228884730509603589048639895643759737965423732641013961847290424355890258704889225250777304840065555351024727877771014516894956514391780843320826442933949140788114235848819945101497871736132429774981862785723577201646088526057570550725563883368400232924979445829162087990862933537183389834282303467841085160192235915940899344020033602288009216599955134571893169466701776647801454350464827773242877243615849849979347127205070599798513678828731468705950672044877537636863229609115903444280313130182545129917604373736493308943557934964861764126002829213682680037646895493364876865323049429290524811382870266562810683014533840472109054992167234040643019392514895328143703376771445764796953808091339379815118638780206425229732508660775951984325578191815343096677759659404298053548060478587030741965417236537595132403918486307727052747367224924854660214003209331204621978243458181421464986036681273354764243138642999818626868278457629443191934642112440020125058718230311319480604667505419800592357505681101743816228240566522707177897098843570484359190652462617808601500215208643558757139189981198689517627273698526926636298138979594277047699834670775232535268743577990846411524882464200258814840846397582544857683572379808716161898997694128449073101550668690407024357680907989796412457640358690010112605748443862129608432834764587201007650528474342456502410576527132750806320321593134185736768769949349833416097012904234603577633174139184240424421862328624239532224272059411785037712760223659926886005046183613365034990948785354397487817020159568793002522650006293086651350206015573676327782751075749751202588242998195424534979699700086270240846827130208028065881877784056671036932676602956304552166374569230171462922703976216515714358636854138833261701587653787812509283395411995979332884454415336875956886071199780176049858186732583482011485181333165163384636655360799638326099438146701085462518805115434090992231039151697758560848815434240810392232430660977451068819475699481607522272801968100339513597651808339148880059044779633929352423280006080665514515305750122784557821411966318206440479110304990291604379752656146334042341275983319039641046393612747857669265141861352845112462526708174934255067130426625122755782747266673083542139494169000254706050058686795224646106700036914780014689362595973711549432603254103552637352254348898173831528287659303652732581218827670384789347358376132681211464733111325997601751807688686152010113072476905307673924415705990097945285174128306018465996032600535212205785650062901149482119975650325592760832308939920350521904926436980497008085754966932229537125267997664769389023201593834808531272963809270868810925637689108871056861917065437278788857524289498744612074648058084553034278701011435245059453642990929161388383339126001392291701590293325819868831946929971238160309173526691774019522721127120857848695278728008762738377205946087288017727425436024700690319994725592432436799425714099125806238033098628721396161932639034398402246190340910274037667578072860377510611212915650374467835690706489402381107118412416785346122554872994394664766761310191068265132522437928757604910387286288184585977243345842305543817969900868168117783980300702152401527120588816125452529065413872242822517651500169579544363223389455361818263445896848168055075835725387085486950286539007670535950108342922490242944054937821185391681849641798035393349325998059130930560634948881748288078997242785168438015788038198202597510724499597620132447004003646416752365978978840403620786855388280320420879535372455206266173966810611403283517407708867392503069637433834865873250229360494693747227130135587895873860510402583875563932431929865222852489909334273694057989479610681216846261880097287510809090975075882532592965151406613576365143660314357608850481279030095301226550135791358405183978965654493630920169323771610608002523022523433766924527717562987305081143182438936414852978057214637890098798991162334023469800625737968995966228692342524774470082983077162262979426869963498632651130183967351067043525002874243800816597938754928773391219204286362947775502864414240810183596753336643943739970494288916890492751895268556053500844905573729887433392460772424936222470310600104194147911225952471946165350774922861626874337643084528746065181233927581054568758175006173291359458510999998108321977088242893023045049095373442158775037010456172692207897145383471751590973277961539099086836966400849566212966092133964107333053181696040048309671010293114016610257600059525688998455953097631061651186872441927372737060155624441585465703787924303110574085377505501383455317807856524576907006668709864437868825341778403190311659527196864338792769594409147619065822916215251293096488933563764564589400314528675995393442371450021655991139646214132355610505806617550352806895597820069072803650595202546653583102462883967384928399329743570737871591251515151569956095446104433959514086190103634082024462839292317770613295631728504445029963604542498736419280769360457895704870444519629800133626015762659316377693050027078438506532701215814633090735311205621581352092493052552038213782959086330999883351080531853349470070335752561302084697564356079588469326216740509436126512278216296839760079097263076535956024115877273712410015201081125621123115519708314532767160653377366145725062161685127435530641941976724539061849057777741336076534150126382429071905961554635848510830288994467467770541251092431826742716547470089704651044818164431777151014846561978366519536715428015201938173360686698553195479876275493214202102884649315664290658873303236234369690214739635354321123278929634173050042613902545287694145433048911052570195763818476261590824568872505607961130578791161519062492047346251368937438454878824599737488647080391795590551010592879260058309098969018722738332696428204578842683469161680634923640281323522572780004041709220972223645865903206941063654542826536292951824272360118987974385288010875187543418489153775776630593363368933902287786865275172293388093186848425859996067035189207725562910052469245579318253676723639485320773737356363926731116597760454140442537078542409859823281333910286763023166097247237371961461781952106296592831888125708707570579044836234437446697738900566051430843490039109757670476913848274177171520547155626488402877049965519357147519017095010867096244761519092726226106603844151669897540002337789286249802354234901591155992664290546079857416923770460178716725318921915700060244788590198129807817521394929219502522900217905247730905516881141349140463044601709567607235288951123147156215954788269995520824108951172005614315000091872877565026015788339895519261765654017491439695042932752349101831630905826344084213347722202424215968546080986373210526260240886317784966894869195211955099124534544182218233794488384270209194221629906319959545346121434483344830660295619423092801244416274949094512774438695419582845906368224226916321394189867637135122734181405490658617449700252443058065512171284611391978074319191928417969170355400504004070217752144892582384148245829831535254340482097077313006568483517217341148154194372792077839442249217818057325729828892737816732727248470973082746039419220289438869248427834257533917582993290482100505401251140088797528588379613193099603494269910512398059477855337898387453481235211110697439756286307869588249813398034588281909150278536383891775257901943073080566609006155826800234591576013403142730734029342435843046835373495384769181466749950698113628075448669009132742187890694746138627022772889919047428129925493987954696338294236707643051092267714468544907905239585576746632298891175678599877179444523286144732181556165140946391740205066876751239382296759909632370068416867898036913895353865839046327549977062438381324512168654701768171028740875834063199970318345570861228034106245452664011402013803290631949212873042627522988628653843816352883780233328278896080248633464182609038071400031122484999341281323864374203472038942058804841225282871702613176176318045159036952649492302148169953707695915125731446164645041926026049127037013482524125993936580848954783532414493161023417497362584170747497108256477558100126796522994228181917306277683317882407545618928810419974929308946162779911706426464584052119182461402385477792770682901047428573094632771996268355282440094143395952800653809948300917779530658431863461840586649608825340700793460124948516339650634117038022708496367669590182140464135014579605828566384187226397419769005244489706156432770674069359347366351742988351127640626015626673090956657245417856472092121073248705337279222929853125767176813369615577651645505518881557580611066639583922439285642931518143859967901981415987708272131378621378311810344984519088801540807576049693402193368854142511391330974399062424150532971312513364942343773111375809963795653641619834489768902196663452844321790927517843671453459188211157650070049390667322397351578922291955914427748509461278493694835556267645038431786908564708544751964453342565722327583662872166960258958725150801782418349308076681227721465680532662472682671195493415610524031032081929208527254033463274706581725942143223919068386266018279098845701001381358939943804342636868742171215160844352281961339963127097308261579993566308652186564014128142490314444104840920739631515223265984875720719857908075254533683610329471029313092455970514354930966910006768451164823703733592492602896837147433712353346570913319909308033716593760000028138950350451543140951113414397530443730897486860131540181128190452656431248946907145952423416112604335167172419495793836725731517979986187819593941487965737314381699121886722658927746021599977066241165282132569679522958415403608582747193807888001512845463819578099009895752776790418161174372648099051039879186996110456783142142348751089349988077904704934848596306375607726992929333304646071734665304149037918542389559999700672823413343757238057112418773854813096710257758956785006932969529280229147672639581877669971446324213519601594459821293389657717580098765944924570041023127033273108681010222662486756471373973736231204537427143336476286464026543000444018813164142859438651004712334085737628385244694447038191506101457863513127532086609103376145210762299632556334691145540327264750529848659569310940719272399363335711125150718840122820241827286731485949443436724258740612022497803843787112861577234762600455766951461383330407171531432899964698247546871078608826238341651380725167685050222591720458983362240745351285859056543658956699903846774701346208104204862673064737375959972875477411592315046466672305868656391806169859254285508259721764232608949552982878629609440444623481381265052847808603375187590351202565647312811374326000126042134741964642631267440442569241086000563699909999771410111587455897898092325166585972073729845163487480404827897601669961427649314773314762300296354213313200393295084198550047193590297239153926564539075665500395981025298476969238983216766742026420073180758373222086261930486197942945497125641463857826742644775054543683792435700457421804036972540061757915017475423225674164733377718978901878397609049143913523572369064858685374639676624222342145104293746894344173823775590022599804561288984863195010167163250102153256238509706277608609991987660924161678458496945605432659790436142692026706743872871688432721147746931157660872686203306703561638634883702737108445867879840479208532611050020557446515812915136186888271208912429097231389956972326171467478662284356603941507024715658418238172529627541700389131591527626574552515310398597037968300665646671327211161610887358257674969848580699011147635461601319908497260544623070569417202855724250834146058921171169517350519829038066557201869394052286405061052249712241666118770245954069964283003165070897570381788246823450938229625680115251325901486729652549907857585769127365768887478120803362862596226870409586765321884212912099959360790862394728369374674038418178587922069547012761551299916317475144589827225299239480079387538760709152619318179161776720470395618396688460512052936489989106427588182485049857195491455196533047708668660576544810265572487910461506675086693294389959550128424549755918580322951436173792711647105984811987690644957305298140172947089474984679980637873194399822346016451378839086518221593105120994061372921766322781353276027616108206518900437618106342877689540512304437023620825867181456860952061449876132949639732048972918983276198062477440700315458208717710694306327441494790362799985516240283761042332802683185364889802800085388043663208630809055228924943689139187931492009431176762171066776842861225626716608747244619355752036199881189291208572713889670172931457239519433804232961010898017043379615447020611151719503123766158335902957771864696761472819709707650397345267102554379328326344420077215806289224554066814484048700167847750462043686499153024929305061637720497547849616773719232584631547805211691617030994512512500804425805898876218290392767402924683771860460472093078934606397120006083822425448699734912673146498687015565866290146917585007705083959224421381980355648362752808393604727548025106364468396557684484701945928253978572790670958489996806788963696691106349635673180857302420867497041876042976434698762043665088331799033431559297435506743640221117356680569674499470971613208623770023496365481456403089664426015969911207185399835158467366534339579083006954406082112282995594781061763748469096368646444452806021448570480273551108683259639639876418421026170432451401208495720586614512090183199608035957213330421372824606997581818695718827251909202028475378792981113862023035809056548017953754335748214269819979245571995031780885279989538007935801987038102611019958845752469929157914931778636995626401430264653486319151777892308707299982887571308401961601664053080185713671468760990798094437391334168434242149935850178473909339130388148757513037903664497432758894949669924675843174669315653934398602230322965756261076794308604764222728146659500629691399731606716721061080993841654356717788078165877372622846260461632600518046278416728217871450662339847658906478865115763125925847133224204694835201739210905706048052229744663445083638326772907681313564172321603262031656883800612185485046924303999207499507626320014336891613572175968837954327590671627324278372809418147083899620045859707014173824684339894166271827855394615373718389160159543407366903494103256161294572395923389216434564973434157536504386391717257420399997557063625060817869948089771863441701810306369294825255003378542708358028039660166666383609606565902421093183385725028692923771346363688977556790285960237256801039982837361523520880569299075438356596664013897890346381261547637523070123124618784333782376178307454813657024170097895788660928154585004461211325965963879315340423185470111362436235664600978139674875309808294405285497468196146583427675346944948787541559256170653280295145427908120424681907900697326008538224296253133383141252633498329816728971838912861366523761392677316484272289404724306363324279123880836488232818140704701134540712920880919187419735512564840775849642905675258762081145982357591132441977724910463730289860533875553231286227323159578040751757897082043717121573575967640949087515991492672411562886610339579144299901524709843071077417024673586628859331650331378663511884758133683548337824442497138797798590493326949514746567433666991320106803323646919907943926584907009700742553283893309049674096003108530280341726147588943526973803257525215912430875797924878746411377649283262158760219087817924422711946324610522865296298333422422415667860569185922782997053977830713979369068360281111067936811224862453313947966362742008060163278398622612543043602669499694604580460170119134139490755993634433748040287487155118725246619348773632006695944105314616864990590971174539205479082499956359075938653668421618303961910136941180714487455601874424575727153378382288301145392341586958194576220739572903435243964803267492469107499268317623716780144804577341784722531595412361110921151773148306539587852044885059719593631746351287457763133177559016323423346247172703829359870805750780811740438199462868591004344390195866337335816995380853338460269002537800879051310235805204500613177256535615818738730078010098565330310174621552595267336152012124355556806510939487896718851422302267666308107879668562160161898274833739992300981930203673731272742765482657674193298899806831284245277435996544167166198261992553327382301309795255837192532421086314642806403868373607167224661351358123854352867688883246829247815710021817218638112077112438526878264040167657524833040951316621179310230454888954750158105177465830948504425758928091040537691395566682647997440461339910356834366368675422054733116150388721828692717443507454980455895548765093716743747947212067046444895402046569335132931754264200520172560197739039224750486332670985129288859738992421461392231855137992849780477447724486893844936066519043541159863305892429804742786635708865695154677827811914131988989916942133941188465129973443929863344283383393211583816796351057551797887115097240026935411552889725920684877625763400025524596403530699593542288731082898424572400553114592131533293834032250110581629121581273375920425788465365893464767451283460240350828269907351552801689776362434135287072170575833833588912081190195562102945791491756767392571479055635713491234842045305478336405363923714934776628610735667415970157458921145963509232109515951336916597466436751048474796831089379873309247143393776001555906111770140737153835418723943338101895667606863319944435945978568545142623491344221685074449744392321764505548810140389793133586481897854877043479483229859037310580631540486073916125175436992937413212034923213148584338255427744237914064989479409914805258929159769480881592820576745105081463730799235138709848477538544762496608605976596101422835396361445502424152539947010475354795772089132110694688251729945913703235274973112640142122884261451689795566604733851699103511713126730484513988123086665476445292878517348522384840434212270849735868491036742382158413476125043091726064296581774538256599664061695218185262589770486758673759061923466533934624679350390439149582588713739485264342743263029579022659644530681372982987225825661615962740431432108272398603562094246882948613482663556909692104798541126835411404331478769619965804620715172506182838145464258889553172883044895707906300830833005435028834207101778319732405585025618391701889750484949187392308203238278301907152426753951074290899893920148278101985732989802975775100884743474561435246921396236922825749262674399408402477169464910789979798247680630060109767955522191810487193635291250745354230452780853740850905904083262790297444653004867268012477429367248725931046273505997484550693170635016035550815396701528592508834066912203228559245080762079310022149158784266754364855416642199476768521959481609195926703081508094169996756212516893053009903423995685757466271325184839644624575307611320248582480740551622398112512787444942607233452312926161758453281495207601042045311270505708442820463134134686511874027764382352533479760087972071741387309574753836503431257796132426271329208819148730612606820799306758381464119420337651472135003844292205614422981037747595481827376178336160454397958620247398883961958651153368392623982787464540431499217204767737378997489223547952504173656058261648335256646613370042685639359495820310140300461832990537586310988476816418166050779576876796496400456906896428403159249323077889853061689822347613938794723904946506411656069837390962356816008391234716704257013989838558864276620868207840967640633451589434305325132752241737239750085198551705371547760355570319437163120795952919758798512929422437413182055793683169050175492681328654537856216335653943075965435762328964441149395817926885321150988933053680377915335550024776133455761752482642988027853564664262526031617179846972585228172629903070179945460131137705113680351746208201075448126824309327729382154873034884029860442160077819103172620379507649017427303961525208223873744628549719656721716755297214308330926984051062689765098969195043496999636325856884678668843495491440388776272813926298731932522372904322140350097900648763779832502760546977191206791980038769937333795007097317126306798570459245165864867602278834894219177741359827756158351886291820148614241892155094194991689063215017360907636410479146364278361211338432848133159272003132150135614094230807469398162677389219036401242818928132048394840813182492274452169765984348046616040753889572222278757049707098774107130397174086874335822928336292826982213596906977103790720775514349841248588683571433889479123225985730122587166356634984283569636598229847956339109286284346678878941349255633388754073650604883353642725345576924662381039163363821365274287798357000676839902851586881413859080184325037606757046185633223270525258020955649485665322161957597642016372471265877207864652616424681138410818778265549803498519256315442428027143139255888673354236955336334312380740249514176557121789116819868224726772768453872644098682010775284859419654271568933887658922573853484139510191395493351117638605179339854169705494882147549525674904368216141357498667938148804345956098730746223211830622310909041891293788270580724715314269191045781295783881800445658796857527425526888021646908510216811244346199597295396889965481640522851801603315831750486952437003247358245777223519403400584154363432412663912752888825419659620385134471397430035842736000522793828908227313941594625855767867645733992391135651105961698764075604335880627236985763445197397046969200121310177269619366771511066172401804913133475218476999092388448077966119559719369802734950748045135246799910214066397305716420080303860154396881964927944508095028049456366464125067184783784358430890551291580630275649315159429889609048897118791783190971356205730209633482633909412312075880579735011709902316761226637123525512638889139976598985310515237861237201859967543491079990302955745033341124302889561114060908675606708737423279162252773275644572036704330946206115600311692233117816217125640728955813449257796299747022642793181840808798966200535472682995612985671290146168707514289584563080926281779020367976889883902069843011192706158318594823297739809968968613261671087515409494209585422320299837695110382373817108697473073959313639370205682422495942492244898219214422427245992615590812412917574886037538857163920888817440801197439423904119132934579356236124135232735861498408171754981766514372684464952128883710046496232793142194865720793575256602026736364584979999435874768805600655349649752151700809015109074865573514547148964242177969525394633743194817366375195906489156290942353526765782895087301440362776011222331324936660973286023979640333112021091277334151273935428278268305209376426012993569347284023271644694507392146423687289462707575046678878214014614271433123722614808507058092221642787291553124973120190080097610385471672137999808245996741839362746479586434314786150963420624358082215133466548539729690247698501345805883720972753331467289446928428532063913150633462124436885465702508563353331926212005791134708437700086421985636562140939731211148025796714004735704127145270624425941823889118770919663398997715775135534247975407338031284050140886385633175169996656623874106765498466778071485884506057785413841576061683488171066050424550024458665179793346399330134087702443413939885503296924802549313401835604540873821857024293402485210893314149066643414946223957299231995990772393290032423589929712029966701033293361827551619962412463668518793000468966642587992377681438734386647156429774576057493768730252401550693180373008750870895594628304121407392912966036486817824949801587253654167989446850879974633499389645239629647524336208758639400614573427246694598517718095891202400679670072877831698514867200879063462766889527763290403175535023016091927630399224480964024390284259195419009097533626678907181600958288565154116121212525837071152096542784908627599613307000882364603861327066745802158486158472966559292958148633445899754886283236237370278922356278907053734475404847244701007420674936067925464228924065372129213837175261501822350814533902575407372958190492757573696232698290018626488530934859065026928581870384367441511737471428953972794855869872783014319337551959690755050984620196521679908417124318784929606823015968629646429887668963242760154354902541806695216396315644544691519445490698076428194333662252600762293620039917546522478644008459656645729183267785094396401662590509963206725525118478474471140281512967615438601491195878177148910554868134942820249702958932881680262597863344529828969952467085903329701899868944572682878844563407564165847833880201767262255532612081913037449168066303263290492886305499164905749983081386116446235283604890701826658386629779685378144037541055273256439642693124316876393364780623591553829497384274210819513580302755648551366805433377559813131970027417366591982195977507157391576912265332019670322414025003703172310948240947566968079657522080914069545392807186312540896635438730608778498910513722961022557303118252931781500567662574636598426698420915531543012162577019088510890206461106452234826485550065719887110817775321191795711032448633767222808948816005595850608228782349667429215147298810117613880316204109513875382481478126778390663160261164471821849489284860744323502871767004257727240448390283536888856913768177604077983709970717819106990387674052346666963188477345773293554613987577822903723491214035722159116485069957898603619168857789335028802688836068371248092978450062789014760359710059631837583713279752941724336281007828382218319006685346953049584079689334761797996777428366349516291327657120735708296361168890645376577415949088577447151498714719942013135901815814294010445234663481366890217166508204660470673963693036659427487514195293964069444480925366612102103956180620889639770556250580056553682422291687363281760681206885365151865405954529606701489358122185706709672658634955415633657370802111227496975145702179795387811698394008200442878544454371209789889009398316734318980799750228620134350326654266493554613087079886281545085363058924786504636325657881391876893859367397181233948283859261773268173207017454901734599318476427230525750443319090101582606923997254151709932011268811285509611798631215853220614064157649612435510367299494067476528355897900785519842815031366265497294777615492601207970997956210899452563083165328555222659786394742527673819391490076911699297814842363194784336713141966745548589404239754217770947924022079007907787096313880717941856782289375646732538081428825098040830339878604930337800162563401933555885875489739516193557198521819406874574195470929394797307308751469169433899573301981265259658851429850486499983118480277993951088424075848783912790354597574120414874462200592429946728479018294819130336291593264204025972364016928181735106352633797990999828014876433646484279304711636156859037319332279666757334659318100255076679428049732072401418401910823641776879554045661839405460289540344109920073844975107202158924982772274776924885511624586628496803906028887178835527668602381893730768702029529513576381248588374820440292766058926609985913536271217233662317802687201113368144043713283951940687631153159752459035819233085448730011487310316063630437537215706991687051916520681380476300101728047022790399425412582475777827958945306745958983998344503660888361545652394734646147116498477701038572408146279072686123186875821971510758323926383484455860227444723809695290939475571858481709463609887437506498540853479057245051074012342268800482014337288594354970884884322101689319366027999601036612725589537049113851576489107774887428700160404270927294996436018389068884003022617687442597030647698460730424610341912313879179327837742087756632702793244517101358691983934971464855152198034360023252262751537686917148408645648811496701458565382527197464302818140970596605463502117820949096395625013524816588889180354074827130679182799517631646623073733297331795752969950824628260276537647642288626555095083817491232479763982479018611232010492283175143906465020766915920773110803339720488050088169057020391826010188441555712054441557433806714420376910132625040934730648667709491400110557179203819062700051250105771799665206388350077467562350082783898380517206305472027377040076294350505877114265820800646111137235889840572322696616271224977413801907078840947770908981985228559623325252190828653990755935129294429634011285641178182488373443658209673662695125571566027611228913725227392417008263171540102216423749382744490061142087605839492618064464999488068301705156057223125665572638375914870737447967029172530190236482003839104716447982714671955073747539867029668579782477503397479167451544657748879167191313940764080330760880357540247517031851607827863477546802817738827884928924571047514620746177286870320645885772243626276225420217748148483090469423352365518256337209660705698678355149977219371128437824038141413592870505098616918265737890198840512962451504222665963261130842796860511586909258746331951803182100282645881337705240595345696019443547694816622757427548654744925010485933760619048590105195994633551104298131715266518041609379205429027117820299286784320976121656362948883217976558505841544946197503708900379285722839888376803940329516879137323231678561487476128195459342644169673016234898169432122288361600499554876321761803829019684051784837535853530992319841301770494726689181997552020347607533800002835448227889445861033445840332732365661897596340164902802755736094873400060270773569535219928065203266967346148168790237017238097224300221127049435425038770029935271245416753077669505419773364195818141118831850524536008889338928245890690413035853933189807707091058643135764735432945053512500807402679091176599595222187276232826976977235370751932773135563038594452173219361363159342867873801554176452814877126105547482967578896094247586699719944476923656257876165265281542023174012124608119212985261955072329570392382223389618403201739944411930943036301464374361272483502261503155172221892669031817667181337521863302901202813909454258645368478366251625416993427235342968560979015923167247766959780280902946964788315207655546784430192869698462245668111309219334709145958622532037373343045950390864724300258449575175420509845597089231897442854336744931361083104444837225498790810094122732743252567245142515161218454104274576993353026764183573200595060953838741562290626557092804920056263980551440072666296143572307980213337045198117722860527198478174866795660289774220347004308076183858131353617109081116386520229195126279592199703515128573686650707062853176482949325024859496121221618327099295538234987747594312549015317247514861113277271755904656783418117976059196142746947677578911243690630039040768134444283720854576931583740285066474766463563007089917001865840993370646020165991157146030572160764634712950384365341693257407066911667558100794748667452850254125531944059601382631790081269653137306679526130730449082579755574194965122997813038670249339116067654651195392561139015358304330654138471188862770450249560216147874169545528340668903154233055690330689280570081623810855336182458675876204910257682808844867970975500213308020842438178746389696783430706596215962898756293170509239351513589849038162113690258615287719752195534929967431394278913400776713458768947234305292043691671934573712516713115272543548631275820025165801922814155000881775060461274475000784001869005771195788856359132683071904195624642976452743360707392161987997349346530704652018375677320728551288413441295339561906360751057937665469277815388080527729424970936787029239720899001610212833409722587262286089738200761798422652856104190804374825148221327233693411616720271783392335692499526070865544075658743549505966690900230664523782267694269452699363578870899684045155110906551734636292719530646679805763552356128289376210569545685713561155420139550687828364499623799139506467139324020469958998301976892780421394572598255909560609239389875726014601829207585485049866306789728114988837118988007219156991127014425673487259086038246226409009815996277903645826483733246219254155814469793497339663069806826792406411902085943306575481903346934634884825865596998010524156606044088161502276728798746234336472921945139746782163771412945952137555195487739958612000582397027789064662452626123139934892095500901885410499223174302994617243768689187093860325630515504848365013444523125182954654708967844450813173439383193121279285800743878627440786886796606317055512840907963740144224499207657592534639586091049411733558901669213685535175818649870359938477249912933704067885302534253962235454471056580515023949525989997302235862334120167572903060812323265771598922916540069482775449961809452160322826133083928322492324233080595224242438955288494840048179523961878595625630117096962894200663035477560634615498313750097087282530184983933632055182213288035792896956986932568579472894607447200971644801799391881779729107561999390347539596319129902961129731134688112019047386199064323241646802175398081683108637108269107244538249510568569502674466429407744281615564440268647023502733668911498007202875271488020475586275442990235861800753856761571942377463769140198949104670973013229334327631997502916980925055135143361591189137386036656297518473352172902422015231240703791439384987620501427717578474643662610079465116668659595822691094376150758846130847237671180872317582462441516127484533799223928691100038433611780719555066460312211698338985549707714908121884315279952253778688378020665400522465346812977413983206559612775870174554821587858024070681371652162605842777557071922264018670784359033397178663667176403863639425449093520170191508670337796359767391534831660753485431960807214548634284979456314488559244673033858091573552683212776487131655857645573384093501291420893181218206007198544482226021316287606511439244833633787928237601511709259005382160700973643985477538794796376692443999436370263769414602657868716683706851266678576789495299463045186801847339356243458126403379819692480586829798731356955018852075573539466850487451496964840927736250723739951705083530372286313824465059522645313576937467277157381961620731987162812432309154236549896978009790701793487416152435755653132282295768971516429591172003028944104030739678475469150131932629124621801887158282852726021400553134447662470677445220335344188546683628411341018819643405444653345363237229967969663966539173269550638091229549241674110264730434418337255914415478596031097714657447844953495209484975902963061247566248717462126606446408401403539758550014020313764574460525842413570196639843267642481521125974790949842213912219080079863235508057485714053531006135102114806130880511564848052391832143394022356771973747143976636835610793711778949476396425019265035105311350962906889680080526557970712913384836920649586057644095916614224468386110645375422399598130064899139444113464293969158658315326601599952997908531287414096407449400861891680028312607880143683850195310117493205841291609530189872498007916115974676632982771472005845557988492217592588161708986875393696985738089031609606311288151009217808922571256352257112600825767858796664404428220362968381713353497365648135149852446460160731898227104041380865015416018222827063393532575870589116803270511390056005638757104471307917035843088442138798249727858484637643565084007523495204096169417265174212213531342656259016399735048586381248911822621804452624029756234538330270172528068697319426434763870037735080178493403824272746994579945827437330267550507915400579904801096457452056921189053910108216350158829506968646969841785654155349387304960180863926118669182345535358886388288358173189557415890187535920780871155971887135394072850813844758877989468093318580687456411601146000239436473864789638436593002876317579433148260426693667538854760931905165038208835348851711189637213463302337354344216274190781010516515114268453736133635869810906107216324771762205762762338982297649297581762066079172132577267764117726902600855195872417407911514540099831867311075716525765188734063670694055649024489752585278284450594364065559269182540261554400058802295644725760538418766300077385372433058050473308467684236309107565036843001460784047813486724939324257312104531551914419507602615710317821441418563013699752083957920739747482716409870243502506886476900741123715716170048993664307573299075481054407971436051034061727750757969746760217011627478291140316110625582491291441023783622749144577657011215327444677053896025807454230504059533861660111691166788980618685639069640301776093555816866189720682022784301536338684098502480707308799985793867499880355589671240713262945883126215641074998172573309043235090097692311141297701351406893866171911757373756988899675507055990917906702210846086457368015336506105687075206282766798320878993519669603963347894505580196582049730700980797154850493461592256738810614830360215926490794488212148373247324596077110296309364267396261629135838404391001571545550652890464598454673248063232270094338105622611671535649781111688769768908337912688954749922748239906337432992282329190987851315887067729121198730870767016749459410230644421025650682039141076760378690269092538793425755837430468591635942270594519378375002869098641546760627296197811975636844631807042515475573134883369430978359450569291216071263364809785646968815831914987405676647178657975405700657741288012880771697193819291940308738252435303623875303085917907521564690485276392324157362219329512109766746641564749786726019385517789722446649366975924553677956952203008291340221964131635952490930955170812327959522431000599880559565870435422580439630062803078392832702219728197297084850308539460690720264626004337083043946222248406281026100425353417429439329852001947678154182566081070119736845146510667783091918770102570936934732079004573525260968848142830807460823788982571416697356795703364578060690205110813918422538849434330657348125039572511298117685594162464321096394802818563454211571574698662447459029581067700857774731675509846110230948332187305790799786393673740549966583056133729941645920086705623551208401412861332505405865991148787216135855446235085131161563361895949339066443830162647771448258354782251958206107041300079038131425584353591784635259398519365582288936294875298447314067403370976020091271992312891101213458737171831647511669879927924540314175558367325564318487601265280379931825071958891411013079164042345788926959885100979501175247654002430703993975538431238710041064511585729856561936781683190095993965765873382036496014399171578149775430097994101409396597047168254734679441527633411671828448321151102509409989216913784158842443209925003992664855441027337913458013509027094022069566339570654819500244067792479613327795404764236790451388364820959821284710882187910663968040951470789319150453137964081801233500875143893208707846422255331298221343961376061928792415034134729587696645253341619775184466002557488111965216783136805242949431473305630068588994595276042490491881036173774175493009297972403110565386544832364454233037775324530897589488788808583989763857957215732426431700110043785326697690377084820049622465063104769081519872871600354310118841752154762362215599616351178134024669595933964717162130713006243495990987595574400148127149713297445010947727571153586490858706196056325536683119634432570413114420783296318242677942860920899774064547015961086479258821820365551718030546379984402112421669061846503561300104754983750284792742827255244275502291512627455018936901629583362778318824079987863365664238585646444680995659049415924168615797279716171964225091449988777342842937731718666123900117324069266008979720916208791567464185968244861944080216354124693200255191177335101152143187474665387866328608588782995631456789154871334279194035398655590420797340329718806825812927483790574505811875598552658254500634004244952650701137159001074607050304104415805945484154256452824419754609191674382593420112613562582663613555864252683441245896864574923220392550244173115154247230447472408785114974178371520703754226003642439119952500842747104967230578742233409605714447483848595900739695497434660416184171325330897921387857192666181908671572855483176359633385237787196411470385492556961683847280143870020729557515193170483271727201502400554451958911038617758242267904842076300311040370337331030132504031529155216042256236581949824219182265194756624039944908789064904858203474191000197983062843256817745415953105025894327081984507997325896259241633277012966192409883526217082761098567805320077384853930150087350129919167417270489607112151913697926132688234526950726424831305399483172001470811975422062863281262881195344986105464250311846490381382979361703661195545391945417777394355345237977644208197740893711284305721333449512613752839865366898494026346054983512177494955267332344816787173064327395522106261754411595191710156203370391614025699298196835846253107011226584931370842411803305874769071109084211566978439442157969575514523971237589336906931667385643671625891203383011595660408561686627267556172596687358575480120163951844561354613415439959930790395557723224550115624684522461734286483320376632042494082367994243865696624130925039869296625151112475125677195698174333371934838654362492035005339723541005272245667040533331881949059163233279788998852440226750795615233968585254895497815880798943873879731248701212412244792102379113710109617039089374267086487426936898210484864010045091753043377829934892227368888798109040099016170457220463614870808371519514582154171072195287209467932732364561574352733761110607504896356901275987369675275745113562828742031173380633175035451359724674961375132027758083607212961701090025015243234254843156217625208907701792910750723985980152285243067943235057984550233514869670905488340874997009607834007346142279695975615022439024915663555455621199114839589997290028357512531304816086512802762819447485027383813114006395177795583223098329407471506194173082147927589879952864339331198378925675104247509018074500908752755644838336056568739520955678187633150315181087806804407395848585582622816757541723992060393428475085676419685277185196346565924140951347287881252297614366987860808415278432384165587708542935883384057470013457456400919566027783780395147194293064555095887387986788976409249577575824735079750720455808178049804520852766996812142054358176740546465715423211096577885349214668461350667844494024909245670403504971874528405187633632739668572342423853733321358164305290954480385746843977642752461641930631146496612376967183263838051763228854535573450357541798143496452855554325733473518146347493535723452514854038641694823656549798840831669559950425723595847715290539898575225464958788385794188385678176509354625605900471635437302735120848550815598971126387043250181720810233841332634404742163213150942870703906335166763176825737442712134625683641275100151955359477549768904123158534154666693804482057735514211519051370012227306724220302780406208805432452498934448502344972289717850918443635719702292319463186601656747739351595339973143863320523103898932649422125598350408529576210575351974171916042847359285284989679857746162543224201810274123725469713697936871790673140064285283351035702121461068434766556708610931608903779809245618228495810243023196787865137047929894858775057379844967859148632409820528116465602645686742810959136376715510736116915802111469620791676834975722322874301369754574996188876673605854779669081699888457124027381656571157123493514101008738450441811418702738849479970287592793241733124946275410935543132263299726517658170382938079027409724447789661503680191670876921067310225525225678005708871994165426087401307961243567542475155702672938888772263717605301553006283821492656622841299754583616519708507731471935980091124476683686325014261860029238678543877584676246015390456697388435119631563273676417959016626517732826604618503221125020323697642282939460891829151259542288548628794458631759168626595626198602788747819650070720216863660867738095019919242254518467144277719320780006937223025494197377943717109709369311899502651180643177284694052001159143175393607749385189103597456192239529716234850552225091484826340968114726769460583266663457836000453318382014373821333967536795409943599540740169343034897404401660709395506179040924997230511721191999374321975377090212785392745699795742284404152233936418308790527534586912590003265216754510399222145833687314530106157061079816148189926186885363656426049405811930079599029968926546625570491090267990789723283736135791676116472967933671609719247480996581453945215604361943657514769739677853248531738515018566126385058984563840315809282532812954851338546347723420006282062014181145929750109900478007187555035090163656570443168075314891407262000764557587140335205954443118307162214544529316121692556685942949721647943647231937854580726644360517828712218497888680398654949203922024640886440630138547105120409282195989454944070139771038430461063831447162647279226665125235851612282488242895501523915257557142416765473627345678147272501395170698090110647144340046621260962613468718647952380064052493950533411396151878240059998618358241311401831613536972934929026801091587797116537021067213438525895436263236619307773508446160854840248071136708529444714134174578139845176738640622810178572992666469019211491377209689859247618563555714320993108660827529748090114924024316350232343619785255430351186306726065517060814891847945971944243979813167329621740858953924378525918402954724467617034666651824470078408953657421898215828279129013255159367666441250122972291165738637428088869588670569465848986794026670156624815595927415091160209984165835620900841252358752830715164744437377784829170891971132700882889145844903239790905313454690191982107491242812529959490497457900980243509118403232415825484659277772199938562147048725274204511264890558281477465509548905193831105759908469398212012486942811190744082506760996878511038476868779837170001613323940612851142950863802006111213053894438741496133623167956231003520571871942208997310506457601396324534034440562921288701141218249572482161402306131613254578522898360831022821677456321495228442163654357113845268175255459437795130780810066243734004551029429469943384584717460296029366223361624514496528883947704323157156830148133283438557193115733460706109010259665337584867710144971951204209801024005684119133063308697421087945450466599670095689552532083319690425793103935225175358706651405462896512633951032817138360315070622205443308525718503688742926055566110849227665049351061058091941789691455795358880028724111201853901805407177262197807564498582846207873763011577358203272568024815584781450988301182821003799166920343230416082246651156124293182994523469873431835398754041539085052651491328928863601289808130004641911646804740685922892341413035103704900288203065220591132740870491828384899071532716602087464116008130784824208035571383844395681380576751942579774457349370833027605025364166141627333761568182691496461972316667894452347839075886258580371428380967574650738161648546683482431191027131414425300151431689783058457169339117909694208533294271457584379279566604559360236281266572345743973689947221636754408000030763226566693364812722271206565590391565602264636032861541073987047792219857592576488934319738587640709885991871012697393590263652024261454635866931754093290011740395326785266938217168087585300290853983209656554386114743145206882398022004333706671097487678122584788654982325263823108487334395135640353915204411557275085219390129831573446983877923591811227956590165677539072319423714366854544643061884616429663899787833007649318437459963859154725907548384895014342702426610244547765461977218371671848671376233515573578855651346043773456346176541362523470071661111000516721809544778090991632127269995422896504467170518702164253123609021380385989828773240488444327547536433736900835401175320908828858531348243322143295662066883826103356464193226067443462128511912919691153759247941024075324513162379644917181848924408380643504680576077578926062097584493277211984567755657049393240445960115195737749143210326720731029979898079977540782175169568487063762260262507305494656935935896684495980646289181825734651950883036552403468455196524606559072501504297860562447377159243750152242250018993378972789828067343982515420413058404572259426937363135557386244606989334527208557467310048371242541106676988604166967974582335061832665083328567537195302537693417005688105085399819143678684750595586097313436250345397468188450267724865473593524871733227845037989413754318667953165728088383910294340825765140808584998488206423887852383690429333665746495788245162711308400678019237428891813384451021684548762326002229619551123737307818174217714657371515713498603323076644441190936254219233900123772814752304982510955527134671340424861979479503540653457941729701070499746595921250576850935724939001682742017953962983736785251289910365465721378744317597396221656291314737648188254039082922535192745356607696228541693911810617951681072890485159192522637084545848083646933817921177401552164202019723115964448021921228362319919931538573900333085541927831162257611580111145547908297503501063711190861678169206952426850848379348330300301296313528732956464390724741215730132885020981746431815706643654176489295431914761365206235546563113663453708859931836390581474136826668465384650859368222594277485321652842477039519941870008694595083797723832298920412486518609561882971331915271790963555881390735977639127192880885292117766516676734395330560279523863104419358286229078870712439714932573574097865185976615491450764597021899107149238335242475253848318930498829502941366231525599098680227634689328688798946980389929850341231954318700225570213585077871089551621851134571064825838327766999349186975497275954954326272714604248011600072462746954607821716438825267383701425201026249120070581327203983052811452279381883279174677901420124444440072786790610749292984522782163521001920653708384158510565472854892293618558868509737768232910133496208882009974870812324162052264607285125661290113719137508301156716671858075910260484963796223847991622700917958005992594553715706869028382288691668028719658738960225798450898236228032815578658856719956848769001592250843502549391742394815588380819750503334093221345082040673671366801203490116125623064874572296979405605740614382592701674274482331469190775839172445024686510768691239679164495227273276803834539478025103248268720705971368290144726098200080513240539701931855421013520622986138948685559600748269577715894311579418082963908085401878892573877811850836173384933651288501393565394180566372172826306597279150832903881141472233781840731952485689735250679237515779720747817567951778960098406592772688103883354905979637069066097202871970364023091571973660030866242505194525113027788443653182427281302540085354700131680232308625233939759444252594040912066492279973649686369488032908225699289165135528308604040486561560356777013447760005595812277733183706037333316955733975396314265435198172867345827456434602135235682485849511115799402206559400564275532530195403614286372880423982989957823438908769061192753498682497957011849692638505702676265598436211179930228002761820372419354972897208280674681578918875359836796186470384816785557652171148891714427796160531458269162893509373688554469809304621247510997763368141053966167039819009721262751185288804717161679762689625750822105977035656917696249619048776830383505744754316710663440860501108110273241091637151686028843787588914057996622367692672934128199130739287924605184170108485004996346185304722133353726178880758665035133437914088864052089319193987158580303712053542041161404330083293411726164907564173447394754112001152144003496706351278191645019215399221926775506564621524781532561601124947716279108150052226696284368887407908366285938097848533271932873257712386775593981147688685352836489479493022310931143335560900642044805396304130305457343607617136429279730055794516319947931363816321695659334560415489561059646867530719126695749960397862918904793818778398714675066318420700464477801473364114722074328398502183207210252072173410188225759264906678706436580019166698309498769105237075161646510845435592881643959261668590419555797459835136667107999247217588265197429155334676846732621567033262864874736435401443036624889763343927997665099329413637972929387253469454596133672702151332682113688571701926828374930807790642534617887419218358921055840701051876722464745750837012048071155135569440225069013659786980436332863763366358677833020499152714392020093070668155812795946520645305116544097021810680812942229867159875902472589136198137471776598135482408925787673926639211009426356240185738399607732456721802125146897794236872369999590537352417369035185436394619187973271713394258571422019957686059049222334576663324683198246477522142603092270276782684050844972192127553354452967910594058783880677713288514521275531516286719209555891718446893459845950312192259299416225199767176454822772633056100769653251754236833212215163403445478193328999102030140457048277664128505690207675730198733863461997029100408180914163815276939675123268435412905559233185574066079778854372228570557080673828663136785298942227328595007441860384050417203111580042729035137730717047414406326465546610505868237918825655082600566393975019284976388602696846292385634023380163405708060477046631417080160393666281588571839282432552058224569792780574012552015500348709450215901886794138800881092838559586236402072091231094379461909270239225157781311169643327579996354397811907409502612205422567048310635026098405822715724776653146412524690040616315411571716429878766492869804514770561022123604851199829169061445652372944047762194585209442605157855407618009506093492104379058187987646362547801005755264166803186475567289490133068727652978044601815052399835621897332635650514519277489783367221764015397393965370271818595786632790297588829563427415637226310917657010242048489264272586958216361279484378300624829589040078549505605627426280162664635214257073048686596244550070427474217122564994024117228730301686900583443018696497713349874519341967528369926468632527484215267459337548118778678184163645488056221143860747039608118751390457460560089794165952283440999460151507772489019110383492982697661181861198074557196590330472104644954131218788410339916140231920135603626469341572135473930042614418888475439726714545028678496941903790606587464417974490750949553871201605560990928792860553320736234177727902676017629332024901836503363446164441754803309935211144856573637997254824607029634592772958829124910875446982648571138235495193141022481318636114045095943127816749510879274746103171280191880760067108561872328110442111286452007794179607167981313676839274615872645426200787922935529565253991152389740327113929965224391274663546812149552396159185144028703926589565918432040282999107967898238183352451343790125907757852215600290920221982247903860396610092186178859472805779226417778515216786292873023531552737320113840976575303345439095878632431051516304265243515685947802518935266902928889108995629525521630243238253913098109558663789888191558397238557594799015763036547801827345772583731053548890894052643312524102562741435446229454969047441511723458199322485185445123196034061503449653099884016011816188315333633497528468148422733699177771475570089984416509971605048662747785684184095992219558376803347718350755960223627754606390266365204340891887191147958436111626263842277605193669055075904512344918360901772105325615188984726308841693659161655217907326685732158279673595334649360998582366884253146517375509459153071656076940610731621452502828625929015375389269034786804205169367284380133710215040839540490369228811651998504908004757361531217006013126659522089889810863991986891742600482151023528930583713106374528568294669935733366306971595922635772714827623993231079638993198662685988489847942868508753004091519435071695531254705931920245603164718488203993015490865693972947246598008160876256146942640890893170488125110620175538584807182916292579364757653882974055461548620412693324493771506084805621479926932511627547043863277799760424030326854253298560121223109997394311358809694535457241315611355932310833487129445455110010357738313154879268502895735830227568164834079034685754048594915478115734953189193884578927454547601079874757280256119842413901238417691646075326320616976275494826120615355891834204370499679276832150890974937655353955762447348947505290457026225803774942555534968888952079561622801689482790782941856751447111341606339226068484263337968819097880916603563294732713534673187452929201923116835575203581401379099791837823850318783600406564699367046145777841180826847486281622610856314450825890924975079231780839460283849823986049109821337205301890545870549440944841882644259182054237896999953726530396635709887710237018425670800623060180202331565898286907393146787131427928998411582451197403205455883030206091092049159053598396452323056807653792381338196068062283507659780517986274139726611411528883179256478721956681461391254227833146043545091281344554394933322698057053991797884689485453807083919771904950443416018184826709588671051942013115998316920741103537160028676152995550729451361603565757674680239907832848724394676386003462691872705055286530042549469250901916608241054285260599131596218461527493033897649085448307046272107849089845783988225994203525364830460786276033407657549412206438801354597757504135787713560605430265837245865218130133317321483578773275269096802674880216808686187665480199856603846992697353749980516149004269343065715822656373358281329861214863804325241660729317165884197589574519016264484773540202675737942124199967675711433753646449737666464381760157689288111567399452186367060141617449601835695724787510856147888604489221816014855021512832570147269298849203140884910261605884913961164388395498298453753780212893332834410559519383810575021780971631579151462083082905643257122702739877354620179793047507850839489557198803625965297166536476142209826619006795151972455316237585713307672727763400622916839045376669259959321144891279264062478492109953937774978184681705706143511758422484955963849268538351091348703364017540648728339482354443986222550978536094117884350364378979101702593164233537421552921848450390589367298403828785344465042812684194254853316428820699892827089449092094721470275531933316187852981461108536043610259844891125628839674401054417475105769224353725543027502278434040901025301294130266145543924398955674482791033084190688817694092349991162328754028357995903032049997585610073315264779649786979118332214479376142833256290758605671189553653601486978427546697488104642915165226654292222473214041331957589524090079974250946734004928144146295957892147322832041865688905509864909637739642393083187096494655535537254819122847200156567840041869585016680627179303836408855914020008860274508168518031749610992891363757518332646605307145272739207950170964586595163405931842285518764716563671760868150425921415569508768599104436752285629963792546399057998171533059295965290991102667783104182680524569123956883327750842342487274314608354263711344208007501903485139076990579344839133718676541926115168664119393787785637144479191523026628809012172515387529390486673229695569761112241513198150445382552255912293858500127468503643919936164950335398633201330653725723382581443081203164065326883480345205721575117076789745420558355214786014718861542746067889037924026547193076855958467533460098855596908038372072404032116290371765486796510013386490798498216473590968725102460489906310468710330734059290122922993738770106841978061081004019568007112033284624447455570345191291208958690867483596824477705128346136072786178363893974532415328982440721352311054288931884889688311009472970591259226875509208255962156454270941321890474211012797861598948487682160120494402738714506612671520178711481424498447677404521756946723571197969887713566227083372999692753078741534191345655698437823507033972782859429388786619534059435557730724648108194301769045409882576789237306092403711331355119875437901267406792873787163207063635242533055800360279152853567547759064513772749748188950551429175272027223613893537269118449695268194958245426046243168226056674629621667104700285624875243002058384152033474549373781537159319390187541971155511652459262569294802939653801821942602605919836483536138840622422248843205383169612381323879760621718202007515527123796429684123854038049542828421691960062779581059261130277369553926516636319719830441015552997999747795276552471895122010834694453023181040600660835397343308424324192070545446665170740426362351352362192051201769187928388952152292756036919794607295558696833439180911986614255283274212993101171496669258274372419457261233375111371973015751799126577061361941301946616291946881544414886867823038603335174686746062241777054459539066997299949544078861349211888803057362765307486852985779937874425900382555180772024097082025271222693969275057084130944623368104545051298841371995559215517979966071719882610060642243737128723379953456024949373985882179657119925528297116689056337123262757327508448414425114108932360197288378507726931004215352647161858418476762472819378957205501614206484752382242910062366288757809277003115147716264696257489879125422629602697933998391079871671057320311270144511482134014344746130651091363467020067996643598203301401871630995779604076093859811683259273499456563289395099545502730278989191492441780431905268506151838293069926855918776901109025899085250456693404643990249060284970549856584676184612682626850805055050336129681900141576243258058787454670036890840721364278820054071173163551702196511002550496458695510549244780025492307568038754366969125737748311741040718587249779669056496378325304164355010918487146221648803660774914103657741219968440927746074493785034728096723131640566929411367946424604408578473021340349378312359930903401207694519200749910926589416476156197823336048742415442903239798852761440488471511382013413601398932516345212216840554946624822806700487652639637972246570922656930340420427233041426263769630156273425873394122419667460412910366977932770419436940803972653511755381830834053695663866709352148635953797735040318575978050072493911009837981041427209996564898550213639408552388326167056168629758308735364440425995368013856414970311880115767997279647216096489656936539834530348652937396495364358679410119900903062110432130612835135030934940458008449359346349356108290641769836334587607899222812706018787600557730670825622893000781760977200514747053256484746995624515814975594716709338143433726735388191151814233896831443198314866972769311986692436494042184295646677178489594365687288002825188309213371736641067478873743736598153865334567765027237981569943983558401335184404141477017939725065439245111672953244917660028311127307144612953360235392831405062839509837019267152432728981580732623091800936932394963532461807389495218726797892536779317482221310451499871629940552912155267408232479277477078125119360495554276632784350237366802209377041604205574737213339646747205389274191032962990784677024060479685816896833263753510459006576427157798713701799067629802384743954527199851904266328905682328053927002263598786885379334218542739470283079018000095859854461655977906994360944552624655355628114218927357260939169194597905956465555336039705313922436340109345839653521926770064863369205678037573599521738998136417767003603743298408230111865173439135522370974235113706171743111827854780646006087633451755109821374399477099546441332142300360000875222886060540505081583942040016482592456694510266616805958503516339934103190747533625168558145487213076053451797805902358592172407828008567458761335998283528977706563324012238350267587624103712253862370516811262035259954952865723116887811843285453809069928049981178413759183241293386130687833189120139948069421679384371371688820789639711171431405941475983786826028140364900089557301254064990642146539118227069129247861547044698720400703339038119437581277899963766219202461916938623006858484402453137190466088443593095252490575224967953046916628660992607023962844541010925746103837663317953886185918135965822834733521653105356989365306422253430208105174725537906417796279012308325767808821368364149491338020757641395636045349048615619120134565114817284579682099209676043600823397485887593177177842138871648628285078324160763775751975176434343131589131726763162246746822427260849724920670761427781991855518006971963414456750718173181241612883012276867476123434409534871052288199836360527640133958627002306391177879215894880775802790910896598950937108329573924078202242357083522332352604832102881690198206341466161306691762795318177739411697011908391688207091903333459749115963576985686785419368138784636049795144775823537854250111188230863311591419776342626386254380903684235633896795514554362373696612866604082157131190450846207115582065628353641410434725923772329792478085888975857331362390894885969621459235803403361494373830949149016182209433442140016680351156766710989561324332434909810392597415519335218742400722167473669235339114777375434680355179090914620637659833521123737358645325484242296688401768035267125253593565503124907232105109579462478046368511486407359584462182752523229466471439062416938468317249053175675121799590491545267077857310228035360636078999428640986214606386096506759519348901410180804993635389747901836260107993597263118241303003385132652088025747396786391160930394083980735212231594199615910578972371354580093029845815889776286976426833241080005979355888203749709598025564172764754302393592857836914229304336443794818889014309056673884510673474961958956996044232007120851561623100072993653744239582264312872001166784371876620195686653035510126125440895838754639205896686139459571850715855472312334800800154249921648747471450142720994845806794258499987312366960129202062504075309181648612938571799481681455235044049886874719630754867684930175386923881486918267693990713769669701162958464249287891611152874313353361847549718678450803316805596994878220344798879620125367044871441039939037566878013526181118490049017278578962026751904863297040432733109436865251495526542170520182634855656980806249297867930820444714156738229085119476268893117774467377264905237259182302531890480764635357074526810136814327479683441660964730408557914107245697510243662217469735752068696825638086970426975979618587856286246110902538394445151650810675651231531374521384567282662147193223038283667720113857989189150820158817562996358127229960682420710804348817817502038874665860183527299550041057217395194878159520666228051051242157403527693531027006141009875374008628074515383434296727260855715178465108959512605458675186797521662907884518194977399775332537477171565860363923010752582675407365813704335040455983408324164719801256234824801874947580670599155232149629360514199767074042667602542075926796152797303399887228508099423775143867125869313599961272148286372345926586174550993731533585083704329364780029593111681901848931152467052912574628881787000363820798767820435994933168713888521799786807248671533464988966411722257034667527373329042667603861650858700535801230474472560322242383606540615666177893851018164776386632006549469880519395986417488202968519185959775440333229191858487442130770402226608281886450035706898092205419139480095365142724851596935512091941317360869950392656931436273839521746775848610919356294721409993398276779147616792107658000485857299020208336212031425382820580195607467843045796031612137615081645333292040690961651061114332919892340575424063353640917037271758263183658120594198809896386679109818224765612641539103673806605146122933781087851054610691267440506796080207274519712306467096791392811313974379837941244238671037894242550467226812670300254397420496791967690220906096651805643712511385231538008934310677592485522892785570185616156736677249351894459693780720703162872493682711218829103314646361001178926293555869596793169217181180662639724500357896265838624715743183979167585442565254137847484237925345467230784971131212817425934125854584223193513302855623639774285378547492224696147029333468926401347335541147381860433274320800725815477928501600187300531272719838403803592566447514269879576589125311813329148682371071834227830871381840528030747013657755547751360786833369861843181227951000217495408919597024284067808803612078389991792190724771318993070878148525128743851811593854586171999601262466522497186495534478022697631039985344657809415099355786469221657861567061081677588117211415054365379860560098355749853427588694087714397480003099145796116070161189107941930389061399147258135339761387169512360150425267267583113879624053721170095816030970621683082947919009976755262436911541000613277670460806378875537757033679313588775427853738224121288957100321267657312788555560824914875966023192412359718267261589215909971548241435414512780512829718039816554655680256120109793417868116709196444013864075355876392485681034063277410200857022456868655128161209218900447931060785258640195432102259442443602230831706317769411211799317592129812386154998569611768049478476920883426183732552957545043826265474393246258450723861541546433414169944999167364222304769288214709417704721619496028628316621639346174665416130367154262075721833784810787160273434904402424842245394203762903695856075627879031256790662921788525829529781626609289587909390030529347142304635314223491175287285596127340686041030829267476628980256161089817409683516987847458415126194642723320862566932618511916854306587024391123134444824610688731241960245011309525721872984199679081494260038831318357407631923409737506187883664839526826892183343741733684891887729811370326240524202215307832741623425896532794328267607741350492715213000647611117830277008660556363291554353501482162658756121168788598979150648331920054720525208582895121064869008883730899225768424862910981856293542478617058662885960977724007398483337680218418872923497822439672289011648162704054542426927873128362093406457991435668798461682175673864163608605077968418029581528062380941535642108965890633710523904688160156116561338473622997274781334479053993524527019554395719644756088508125750591383974602183778243521012834677094730948789634911557466821252170694115304424883581154497697889990345457452895100445498518357386878666359933551019378394548237406779874082505093934740347450894130873618972226279211350057218725122872281004671984652724199585110839749690900759034134532658775298314355098263154733993386334984060230338391434712055117530881796254472702619385738045551542814309945490754220039929066986679336152669366164245225523387898254985536237148407679344798747095397809777463045565011565632716303099471435567335890025740127158377161114362350850652607309711083207718821524772842191686725348796685910987524838681694111750856255365267803539539209860462341409776954241657544003685561021610513727802988096214825748389329316477905232447017528288370095460116656414944760043900176655620285257045224450625620315638926704515562957472878850101063906781681952136468937489976247806924070461987880538654896723436815727188987789048620441835544001083900236789201654992498161016805496709711762223174774311665665369926486536530097058217663564635263254796263358471063580113945428513129898436185642605892343776786525395670860296163023166017314466781261459525471691190192871742741123687717852600694580185756791630816952529640436307291227010349559069199204035460427819397176331683003684982134829607565752073765806324660899564646688845719093133767539083992259741065854731488656579277993804950908963037018827973144398045002609084409365074940640559821482907161747441433052673934142874747244220332508546153654648930971866326291597340169699974997896313809332325575741643641727710665262321576050892558571561700357163523263282954291880597034723120142311480768212062087457884484448404493957738780525874329169721422431409058483252790726836849739106745541318250396114835469764659215979427159930244151380080639482094196616742073468914131696547853813075733440252459959607634123581192139941073246630058175231799042677071027759891572892024746463060997731708812576018256458503505301291330498762119630924802489374522723093954206145029475377522433195332854629265682798451078250970434468414872092376977061591307023855646969267002476964691259131159452637654234721574460667246147982459707427890306869876083942827926004964475920590986613587027617295033666398137964102005318781537067149221687511396917207320006159768606663004444541917240789078134564333246716947528162700601070117531997644187495215985491121029721729448106871593437840042825697995023660421227015105759774531822526797024919207459854505588560300029107456219423199604944234810526575994760151555476622751286468848981715632113880160895767598546079154642164968006378219198434396924648652031899440194111020088517011616292131513895989162248461881515718844470165562169518626018249455057229081198172100191966801277676820350681034311991011701663566621015083860601631480968385484541610444521118059716760741899093521942900574076090062684600354753621696826129725882764306825373609251755074534153549243541810640335017205161318927828034759387181510739810515721408976740526351510905483758070868332941664202225810646599185945718313073952422986656315128639487193539933045327730066814611807726093483042497652039205321873890972317020303884297552581419909673252483341654946930344285043669104851825100544294173170067793785597310530550447436396185035307697240706674260424564172076682028106627250297121706624271148801908345932219295881974725588932971599945861406900935582732787656290986833805829975434549037730945454374438813333747739056053152119561378459205885630577573279258408961569022266129585474674953603624308532816974172322810903928774542526960737329936981820154947034835897288328990936314466376550474904801154015668749286107987215589254939564836161580437942031115063605814876785572602391759750645377152038885675430942033091878608196675223178142532016358685202783723070497826290008758595654690143896051817493513817450396033497532085897102770706457191214598781114011968799713328846961451073727040068809232402260649968757437039383509059267678989600781631055266279101862084058707568498870500365172327013817835745946063015153517154570634293462718611165702909643249676507920791485766230518996689608173641135020622407010933754462995222894060230102651916755968593215801560522513912857736278865106371321702876904557292513671797777011412586432225668576283344700750616554941080328563246624651676555081567187294074269342829046058336945676218893404019152682445108826059706869878127657248209616124451251152823792189093259603429096602154450247377759156813817756279579182668753591077306079035995811354152472712221018648458627727354175714545200246472765744586800514906088887394937342239052168431001528236930252388188733631565684904255757107229430003180276950080859678939832095689209191490573904948683583350389225863891369570264021465689937670511963194528575702729966906527332998847858576598897007390091548389043248097875636437324555710974337852183114978968183199417248113906511811776955229522793878266530833644617424952173397969896712468614663990038270820409668758740698167520085654707383225982906236124877261926721996441293455871751648168462221698418993688345021081100840618157171188622069538384831686048667205589724565155202085009367529485301853958483015684802926962488381082695041179396035170745033929305785294381496958879279289254589453631225802564903721136481658647275259925857616744874455022703647203343303726715102235174507917402275518380773438269458430365388493287328142695187220748046509771331727978794390125283539111817126552503745064207759458665394524551588351114331106678367325208697293226366800255430118297729979945629996632882333601680297994603530480494781299414374112777139484019349768133448652533121168479547837429384913167333516323800676963103693451624859938951867522019282091425549679086017154746007734807564644692328559113237635143676005888745822840169069649264391377639944699558492473418311180180230940889663183941317250487847879722847225908630030628915321117368531218882527961709057121750983220742036901907834846958633588151305054151608117736350338255491186063794313254039230820133291650423048581294656957721602134461775298478639294404115777031637586677930862837358150118709189984535045078927995958856551775527471844016306418028624206010437397811833432089938648427691350488213568444835080624952134583953233069524523331209070908909289008320226083297761518601324549572502806052050667555868581241528264976970488970220125937315865432099608943229640723430088114207249802631442850415597031121730513033404304704391543953974391582740707453995279296845001646294717136714007122311923591844323823700386245082408898327746111633705425805019831700906822109379524059499327265145753221281333685727495459215652808694373695894447535052966796509583775586178468038435391285082441713872684443004388150730381148981430385033928907880273940496701938748321425785744930656186873582295702615984541108531106862103237715405208097560834509947591865913660594658427469995202698217397988700305190772925451423432247925323387048051890512675452630599586471442342780146741699580936631973232656336158083835962048354892809793072847481487330883429424449014172666840918428433958717775288377467319219317918199535970127473489111949402583686766127041640234575995487672999986450648500174936789095457495309566922210217141154631513355409082434664315145541333474428752933584987443497744688310070952315772228210295158925968569328653640338151411504214334179065403603540026498230638991528550371350897114198559901481068755502964638326239739654307570449368509399411540115009586538770995468667789900476867690123654153591500146325671418893064189324240597658536765481826557383162033355525478895303332566963530267042375256570341643552636566614183079831370139696730478009355939251604974424711111563124241584058983363933161317747930359022217370870059091679550090327554196581959300119507541462079879204181301347134222701543301355280554009648454175479555053238094602479394180459628836550362182198976673072365410525084357915869292534641051331800844811807400718061168040348377667811276740797874436590815462035651903806826222168984492054983512820780203904379525629250324524047411021687071579670530181842835440792104386263493616962956452787708917393728599695761275977384173326332986936967796430150618411601064160612138051499722096650387915583986047609986527801518784763571605411800028639495112361515995444864314144645361782639158471532668167614870358027996986322165818353708252749021534487234787160970620326671664749549385134450244118871310603590247674041571952564005774657597401812592537046483405174734527188427974903940128804378070771796072640087420402225734193461075243618247018925246680307101678880164620612445224972705025797385983694630016909633053556812539896889936800361885401395957772946333015281298608794565520646336594285097452738282441712831803441474862834961240837191857746735421784128777954416401108080935362602707596793124305484055062358720424406071877987755938454606877279921017502511329119715934908219541347346555999636572910808032595551889026438430103839692845611124685904120766959863009159891497256639128875141145558040076604357359100494335656473049916729705095038633295184155926403813480768380340722667695885965159886488317695656738932710519273858880138000066052351322581127152707556589333508945653850983018282088502259165580482050285546856901062598495794624264089456281658391590749070346483049149004589746770690884214629560627662256310805480816322218353730617022334857541513297221570140356704479778079435618634860575550164009078526436406994047304996247734217299943879583927945242075583284020109333557628512324863313613704257361813475414140141650646419498193226404184294803026258791162540183131540612017069247310019110824872829183757974364539209432422940414183702181412676948836951785618365993888718531733701331284670951922535245582830976586210854392818066235893010761897868777020362399056501755474023606781149730911107154264324536717649595730497734820904818922363097005251257287175759546774713124544828695699051405643803747358195880561531326240672006658780623493342428299067706104759041104360198367677514790224595372288778583823416249936870732424234678866691482224044747089106663419946085368988705842861279265685844723802673505423940607638460015743874307598922057914356652383391561364238581951084856773563485968111732255999230628643960177682280876146125610413364843055165575804741736203314433044485548466456929434904507138609059147416965898433726513761239718556876643639838594879974194007052675559338421715776255225419190034818052479495782331088103715930839582793739866246781140671963618769773968168304051583834011482355111432405091516516188637401439981707656825073831457872038075140143639224399210255091924041383864873557111265654294286418531191097033362212605073830181271535936527811637050523840811098280435611004604526468793190642685576745276589404428573999075354604927439970192782083257185820975064265656033328775897089070815600810989881400615981274312036442809246873229270901624997668459127910378628351768001588007874019044913807750572968011717734641992208827877979053669815895823755577695017971772715791071696656406097226818330185523312340141824914599280581189172943707099711963715776016069531560278018110178003542433584229338100453592528134389400968364055092429185588394105073755464252141303767648716331992911762559071010395466502416458063637587183837077730527371410833271389756886599686137545784747881917491983990603801813656401389591068392481989189476627020585876150953079674548496561362103516558297292922649731405698649359124403697418107385678633804390188225833054758995592131277898962582654557214960992464194298126750332633488102081175405504759629105273585724197619749032457140964170165432351769173304999349845186222574532920377819606641300744171082612312394990978613516425847209763518606519935584126460198925346101498365324175358791722972129978896185316505996125876499595159572349889723861624489110415313006945981937826725816531322531493172383968300077891698323549909443298612776427832453191043678462649468750192722827841836166025744221138371623082230893051544468700819551347511660977565190688978322119187832365707798177769390238469238754013263665469902286730554996501895924784018712915274800221561564318808547980878688475406721810915965523176437195583090253578489075676061500376379818250400332015631535762234969102962441739543520560973076392820810199866107376450740768244768836202065072720875870649473553826630566746761452331644521955629285293462808605869486533925132272905150339149553062535728654384667242048097956790892656216973686626043061578506181143924851026601253640529482559639668386995147802870517837825544269392323064281477966383514315789154347462589657047733998907708538162490679578114052807517121809076126192354637976300619717799243180823538301506054580905014130723146687817071292184482421872207778720819536571215975074663713036868481085668720712385648025462375548244225741712104449102932909026429726130297736597705672462367673056079925075279762184190706748735806373983806642579058025924025250430303898476532580405365616178371356984401150504057461703111189692985209942726810159816085510154449131154805858048193811512525041494985321113005973854094282047673759656966364242723325073554900121960130372754797614668921976622217033053119291588768211118662959277023909543064446238479338520595099971674960225432880516799474175226531981987729392615509194977037987685051095172161266856465128379330080671942872228658369484724055206073385775548680780173700734439510226746067579812943985727189109065725429838718505095012350781731926888370571828372400690283863431850992516648938680044613416923045027203605208578813052264876696020398199405747837467679615115903977244868218137586145837530791316746963830996973888259518485333267168798147226151413605780177428613905160404762131899505997798002406733763946451175329493926205132232698371788805995052512347181150899491892117333232006456953698304868600412479937873631032568071092878534388214990012818154022521666062883843797219585985368138680228830501730587419039361821060734058796739074823327711186870099102665374374668004905712122901262720761144771305813929564989864587680591473603669171389550183401388643529726155975783376664803392382180717456185018090419304708256535520935567406030557788287858831964212548579002948122685231854454243682694153820455669133771376301020167541175850002651494036403434356021290094641323161537266746161646096792218749152451646609048025336538708942810068487530111335846632098333210313414001494865793479046959893513819474288080376220582577422286157523561391888940245754548284730386440528038439566776536368080534464024650591949386974304190851835117566024893896738679275491334659797037461428937699410385420645208578330362861294814153882050525023644599941902513827954078479772757314316691954505126263229796844473826746533697207559600770283363043010228432033725776927201473927169304386191765704834642323062920449297139624922814036892760796829234140083545133319412798251470895041310621606733579487232334814919790204270293940424938460330468788991244494629412770766588213840652301132604684538298552301199383797429530737240099428036187849062845872355685585081576759047277209449605747791979670798075106574025576834488542861891593472014642290836174614136239679735265164542218751113304700616370947003444036483251339807890124145157127864564344283693150937102005889460799124935291407456736858008801383383715962213304303470768472219228572313225216596944226429805470372094432450243373886133835007912120668289458844663397633668377776491637872691606619539185317399011636053035179162507102081118256850479599521664255205032296669540957785231883507577035082013055016063787885113601109155270661591357595229127162404803872865480519470044765880755243211103427503948000501606575891410808135900135930640643686332040723101027032823224907956375785054826316806466793776996921911241339601185345302844940951738837288414973688835042498039529679280541368199333722816015103630680289129327110919710990699143834654705793000022294078520646841330622423758870361968849780716421902467136653519946406763682924556144829273133272789523213249522981589999110988155599227835071303032711974397940733269527741312567194069937506074363437857642179047778248999540197357941303993263772027678721470845213983748684441948654935090019597677035837377627309317647246369246089501143331519556333463256864388244480655600816013519819896304730026100897556288973567081947303734232790454701042515398022042837547593825318349156840223650585520126339624858646709843979746542480812534300062353815576880983641776322632473729818829066297919905073169989551519634098597438927168196490489215655887616934082208326855825144372394050266383517595038519425862385728570226515078270160171772517563457381684010362208062895828448240921663479663571213668058969186402798021021343019541252901978863942784737041835382216893790080237406956456352126711134441698785314771279412362801476027220999979885081470662618557458158430428499060984646210437086310223144913406438013067894137035523214442805984287040483941036425028612179403620539974098977339926772582809839040216987856985723869586910695625958653810055277479350750439314345560175269359939612454644780060928727523743312691222066021019679529596848629242283236373112853056266081963579830673396143919626690855105739889119459147819419944895632476893080370783549807160778739048057373284261811380645976059975626626303410476291418488734099770043111926173936795251739136926746671523457649058224778891956447272569365773118317284833623761750088950948765465995702633304556853039897352052133184355980658476821404730712998370981076948349503578263938168353271961317476465424102200771484911844328801651426847520354068951278833633465479722238811575039094274556037472639896649170843224586347287112853170510761335304819366522121320675023235626581289934735314355982694016620170835524049791140775549086131145050295460040510265701540816278406917778563751699703159358336738174354391495996945836071291432194735502518581623166525707139674296240656581451716776582769444581191850639966373579973700212877278878055086030236984638406921081875081403563312669383495313080876882316204822074086767420469031511198920375745025335418471836963219121708169087009856938994506275354495495972135241298844580774071916741293794833179685854830725862330946345192724124460667007667092158348268362492385501020853692638910912537722979678252387409650530122107268953946106749927675956894257754082085232101016147862107420590116570224739093340171834931196853502864810373507439091765737562689674186625292917621512350108226154870217276101668271843467273379087886709803190287513531700324636622368399003467718030961983139894978672192433885586653781165586840669056859784946351950252742762127874206514781505658559392076634049191792356657219072103724757270744583084031976513574041380364316966754854678117051820855371268918626519210695155558648291714225648175603918166089212943954190034038761805464011993691063417099076656809268529587365296450177835691865679483938949540876855791223362408016208155116093396837558760516381528015305717913167657367069631991483942855259334833330237619476912494275000033935881136197448520278026467746480220391807082617129686643121862019301513967329116296993896646615213275201183103178618605998560443053557267314915812748053754428156405409082066068728642907267559017904950507121356808446522056575903871479442448030405449580259788510731335002396415710691968318535075862181214675869026088270661675364432334565344109219138980284604282408517588628406817746271295873174608407503694674543091917549337491931114764282591239212952168026538835375088327079776998677986656838484056495567561309229831526573259415922094807260945542671319849252323623021322202127205113304413583994885530005625603764882868314156614920892909048648172297731794317474347120873254197097046655014021316012786748114938354107184984533037120902726184173627571550074863897997635205375200931565518436638638731557985999187509018237546480318825546006323746094549678084844996216570412664860712931312086820080272067734278884151512564029286349896781885296702002824428715872335081449565461221340241730652259392368734771336008150999155149416676219952507533890257615503049853031884045118652105658148168074960206210649317027794930742918990006898917949529962323946130266379869452517357750388056013602148667169215424818529565415529284690591602740027831952703065654976480641915366523593347986724561645316163766798470075393296299708799658426045371112786135946268008899110471636676387261982216558429712338461879127052085429353737981180722925824025227333746767299644760449999180198319503960186035068229894021520656712047102946841032337606052735367865546578133853948199315128386453565404019256840879436760690943875210221774084625807143568756512483805748532311790810908558567662802482622766333582931367881113598211354646902855328622931083897000307944241810604367023361236465885847617434247055651014294992706372062488845191267951206993800785501086035656852651995175720999886801703445058919591048707386222159988277941611836145647014378183889799012456958774189696381282814362044035670817961825159540350625981819850886801074513752377201775849300541140959711891253195678562973762489387295442627858744645182619956491871441839978341325751071216225578599846485908062710581112691246769109981294101966376379393311567079636377061039462358838156169625021688066193060342528583985025714486156792612847137031382904475839210557745272321837711544545633855432630540818746604590505755945600601169531402692358720174948685708859073750868857311143204520549176978675254918180467485671315731271726230920129155737018600840414427107374812026713513730167974305614058503092437815077669000962199881926732312028665160998179479852735437554019864440873470720660633433020303814841956153563815292969598809131399978233673549752338422638983368779079842280468452767779418960102216500572543654379596098331226876856502602151068503606013780773906207237610443552670172381303546139500974795504661767530019095948292040517194266440204486468486523996014506348034902438157094724059095753875710077205994437017873080661456777639186478449612855102530188258377197238968361760038152231250364812242087278362666212814213997267119960126950947680776336032718026842961230399444506212937219803613816306231838806572751080791598945471201210348915507803081641997950408028615518569699297375769948983216501615462306840168374158918881961720094205824840318121583676538496948322621748752240770797092604269793217813349015791015937965866881916498466769807967770938867608968283835295754714567489320503314410592033691865425758882466783855902580015513055926620897528203969708572236440767170425848260951378680007254863091156173678682535978092206069728496009787285820859075269796532468643979664804670726836171878002923900975388122319662971320366724201243037337132365691865656450968441361296120899921271829318475314079915151604854613266677117024510933666081565725562127587682813103861005235192722466898431658746510716618762659056906923597831113247382394786028500620563316619159720163258639124789242459969476750144185149744671883267678046130459194279478342211644007435049473237405863029536431840334817118068336813379499611087382188570912530114417504976579612361413772892739149341738844777953797597582058809264005091785329203312233008687397917618008205180515665433163195173643608701574699639569755114865603540415644824575097504475277051845072738697981368073236127881257438189774650138909309148630804879613031022215486918443551594856600575368881386047796306522797911484069339253329769003761558973878538629255846120240332481700821161350363084965405555569596030894045173774143593866963774064095046922983089116095442973094987582257047574089223698803807429934502266783168504169506738523864074069844095606071321234888271759236987195650112494420769562489983868617546939692688688399555952552749731687399978214847149503199799189218638309864565258566618272535700164152249348831577237480976576455516783650823762383885128420013371190440097541873479336546567057147649328048212100655280899643550940652849844332504256384336146715978880113477432241494247037589932907469472872958334936085070938889505012228955878355946819490029897946253072884599505336900019419448577823032263748735423167134287298322797791417805171933730098732327420482811161553020662832942396476099844399998653973681993775009041073725107047131815743366956142677350178286093654669993327574667277844637299237565365438972319816473875208770700463787276625587777541650683793343564521881409397980830972859402240036587459102526552186251486593389191893544238846514358412411196166798616019438962557102041227985948445691964015698258991509087999258091185724627047134904154836329350958368011304531704036246231353016983100671309387365277554508274502912829609679247171949221122700458615106245473567263008950974607194843478488869506267996537044692447257299551406865737804479181504530892298038302983668717128100448707347983509149201680588454047898953232392871160718992833684439118592323530604132743038741324302695673466426523882190387686075168141665938804721780767590316328184321567094872694169851506388365855015136878148253062077784403643447631899308645459334758027902230660734022595003146774972103594416692537994711993665801994570260727168282853110199825091842757518737170441814145370694692799247706504411734579937497875241124072413323061250190042163660703378865293953272084592242457670365255755438273297165208521640840834859042546474057309059186810563704621195719357601155679358556777541603683197749351708995081462511912099116740333054029707133609054902558015007012475155568154432005464023036154621989204414371333124371918088189755485137902498860078132477905736920246732711627578131582911571664644558571380875372761736831994960917979947975236564250879860026275072808349762103332220875651201584874279891635796192680277241670202081961454638565725506080465438341822546327594783122709298637811987629653664014807224354561039492205898338809952309454549864857244410262957771057772338613437761914401424356512557386762126959703522132696382515009699122861216606541884877709248599912341180337604600610273062370682156081586598306992619547379013670408843128955393038938282213415878558636372387690539154970279352780021662021888651947977471430426523944281785834747757847183630682448698960630214490100520558846789420138688257388799783359027983317576707232260898948721602710171246234627555981085507984686596291715126317278757147648461528722843589154558168298590996155479246313180437465303633392899908846779215173997455125252604629755678875271918292993043915417596616582642901492686616655503523240321468261111151084623745850960849109586216732931265084664145404515606187840336797141266470793295800218433965274222443148356249441526102371661166795926470724112891441605139374383018340000655343798022849574337340723674787169248553955324586768090305200366496772730074599418137540833293127840612142466719586351629127879659528927791241526263727321115792645368198515977706969302306294509724466295668248900772578328899173242090877004594905121565095472071859366512016439707184675012518713895041116575555481731053945148655209418943390153261253585518492778632723003301211080645261537495409188088675317876342037982531084676357418191669418649546206073971486138687609057721801813925878298186304358660118377358001743454095248998273800506613835359922121526024172838826245249747768098211396557883707985867155308892280304737111095975551124681751134541922429029000249152505842450818898892055638008705803695328771698979803318975586955545332281097877323093928444642217505147432729042086563225998650140418647643013106851651371566061150172355534231535758679377395654019512706254732375657338170045887524157114021494619063747899525959994827384793439766755764632865338151057392795478084646245941018531433329432757187758496772397685910451298433455121386410052253148154490165097298542480045648736310918696902534472010920558577752470216597421809549472765913753116679025087132038038080355291114371460439112276360330496324191791457837977157470596994182210362006105839887238715528307324776508999466135727450365840565092989225953080415114739764408138749019646950128039537871345835799118934413564145756148430724709870939673008813385324053717811463971811018804991431196310034519773500176568108813457020129184168357710998159404177149582981348376760841385490085048467829235717420515016448110631450714378108114696534204980209825211549566100403057501662957447205535153083125630429721088953341328910172740907918697944036678613227021815219035164124903690118493352793652113963003987325937334977648251356379172170438800811188782844809938392132271338854912061607136195290810059462552382872651737351182481959579240670203508957268379095600714372797346417865423000779415217645322287636310192573774681288979978013221282444611673356179851236748221010906406033224728229387826591611023724818223973409646999237514946725837544886417040688382478018845965277267351071535232795809096025176737841538395197944528042184560493903323011945919015208192408531357132733925016752268993941100493124434832152209562291324093735068447995050418291370153508085975834657278908396888606718843611072433115156644821776013509026024050596038576643307879923473078788932821701935123714894513494876024297151385845809550025169626668914345349480058371741460054029428232742998760952999973812234162871234527173061456925570798928079584330641240212999044048963645210373138709469714264744812498713133132180246402262096328826408937124286658021596503913472864118779484644463162269604322629628951489736226674876387340640116533912968994130037734570083200732611103708255968186130226780362865393725281450270759106338770085389141202292344322176813646793452979838398547338020279543167256214116504743919822289974847828863608271225340586649730061989329705707883520569786422708183848006426815591043611293029571404098814893753565886649453565055807437391498498992901678974888322807681132457125974376114575540403490143485139175185332049118985471174868373485848392092885709357831059745274254010253523976309801818103917692314021104558952700650537853441489291197946024142667802444057993034349897476348078249607085733368477416750812286724251681720548677770448350306541540116240450337727245594763291397339298965536202278370890746988795526771253734243622709143167500647675543399509257584047142590390443355145195692348453140607130235857767706685614529351956043074071788135549325882673736121284655478018243636209976770370055614591679425610155380406577025834961495178569799687686492191369040787143019772629069561405656149962084899257406479396305730570960667555915478863187226039813555664534924764673717460136826413283323276670857244850766426850415720945441356924419749982912960015884964126700426453975385169254054516356773378400346677221481914975824412174984593235764949328758847007072444357170493365740582600827889187183568868301540452426983007606146764133823086081969725575828415726071626418169178149850962876259041636934276732502581797208742185672950895197984414023512507035112318909112982856590057412236697093179562988917983989666447926161394109560216832866251235957869285377656617904673856966758588060157194816521214799146457261331240062035954981954813495835295224843885433016293683932030009383115491418344754468106365820918948166810721499424330240588659955734537320228555130001470122375455311915088058128729690374799400058687110381037759740563208664324494704637804876768260433701929730924222824483677614095727016176729397396212997191845655729044479122222870364239248099118403500892200255114514939673596539807264959547145929583308764455234585741173817991479588890378927443505294063806660252574111164586856626234027535411958471179523014244907283239690097346918590259059120469818346487413185201419708432802081026758628581884006919183126267171516265064960328199499391951447678611764374571703999934800291205837634054111290355927032099986119447646307320151736759595093905299319685486374227859072730268889430147388277305613293934162899936915849756292099712122146798631394206761087887333156261100163692128440695342266159836121859210694466016164705131627054818822331377938305187142340960016844381856299986959353696264554418930670881093968532185503745415263657429898730760586055454607899037583741451846788354079882725094005020394842932787013824020028181406349432923510290522495224193742644483264973820416657018352696797157660016858479869013647631622940242911742701945047127836185519771135414914197663957364595404958073115954681024872846090573715268052723933403637163031173892938463196192647139974241927758999609832373736530572376663633143684781673926912820834891518340757508998114534319795111348271246939813357212702298748520215582655899324573683732319855539305267399601792408129953773541358801379910809630564829240296003208350426915704025181808396693441268711728275096605037502272369667475889016592116077144764435421984355671049775336561136324871901529056490528890231281697870784091396033058754689588801693583458641768025682714716373463567820809744974626638084362421396907063179971094911199655364155971159070671735891159683955982200253365026000449656539497224563287201911963062888943577269338820897011839662684521108752742176345275213387479053066907525769813195206333618064485687863232140692071405119545059490505851659645157969020514988121296005109707995109050979614244099572535786140750055122474176619953388105053474956026328950869920103022863696859509392021295593802079995685501861866790645724706701424159045190109659133980197984727657074626172788987379907520780493366917016828437009296256948834395842635068632691664478039706920469082062496551741876876126548235383178609858987355054836712189164740118194043013147218739231376289591462721907812255358660109836170148628734905710260317948788534572848056077503132986608909008882021771714660487599729096881854526512483316597150166564068631485275127197614979156124503944471631548211106885973359337875468446381212631523678939703462664316157410768177126259242472830909609460915442154845051928622526298481384040882780910225482279155787751032127258075035026033800340261603523310993809014328204060879394015101183684600319762492095452109364332722692380913856337402973853678777450670447363127586931883187589794387961863567855008016994559610373047112205577194809851829118470339767133644425262473769729090375829882746150727160687145140587527958897463490374782547705643639274828024515548349761362969885409737902026248559089227958828622631275638273541760568965888100704947577610528173401970640933490674346374176999959752491001056785053223110505224039745885712218417015720038088677999297692504450151364256064534357867424265668003261955962744159000785557571927892105029906112087922091511774164612786136309764144743799075906026440621534109941742118266454625553544034362739960680849097719227416438952153761299675268147069307085162292515894093965221507532641853352350018030203241471141751091586414268318929046704116594123731463679786905118894763136589691268335451795912255074592814826219522721191573764243778290927611936723495617963080700481551805638276181974592432937218779720652781152833067934498089415906176719722576463056599133272629146903912111614919812627485391538785777004301618586971208353587589052814722656400408841087701247763420554764253651576093743707405443641319897793498447835591166025330994106961784673827134260634344505619954733201237434271749560549584944256161614444765881297372728505388874531968636915298413173128260088594644458284844762400902501577864025747491755490617679902448494801038409028922341161575036088936536605857466832758711914122082350327684198091199134990411844624383554274711886531172787851463205257782006745859231146603553105219460447247200720363646407508657226386876653022593538313532761529709029572852228923220605026855066561434320468471473524821263754597426451678961343605074794425978959102261245163220145287168938812235827539236532604297381917028813995427090676261737532297403381028283085816037286756597337468356785131728260182489217358720401038872820597990300773305095773051006047214001355537901755342226354488336132558953205533215593912661070143020074864148142647934171300594419718024439270494838803617957510046326577617295580162153488458543678513911541007514469569226987417170660760644451530144838948939014186811537421155252315094376056531478483254707610004787248300886107292962780194443093206349430611950150047709159642793683134632572220641998198082187083618035543724378934583610913460358132070111159298996195910019856315022545483189408981009954484045439123555232232904090088052292646718257383645071704199861502548155583438372341726648256122977694133730496049100242972098824434870575432131463852786969678546184114566669399461214516348526056837434037581107806331348325665487825286800812546022032298178049991144723389031021952692311960204142960499258011282657110526222853082791016175213429293846178073630607130927126913029590012941224494819426197125347418989347135559345862607831530930014536253710021824194142019470066359035565925842487400635523155862824740033018847558987871019826262124164331519938168091109075116494584963514149702501462826805894954696626060022025756185943281083667707809774531557637246801927592038310221486479168449073839551304356721819728290526433092142883369955206707096944106811962877343366208448818674117948200329593235675386256962460489484297836288788416059843889265823307837091436027272497960300050601879066405106485287753667758010502037756496051624659235692539299204551298080354328575970728581352255830591012743836733555717237518460668652380855578665575784093541325965767589528702137367285542784022716541440338929785274303854816282373688871903299124451481821946464654890595643771854177285824345315994855158645639713616051084310626200029175588327365639035127671121594216854331100349359614213054674213852699655252167832346018388800817439379578236384976982599781817804016671393113175167082749428538487348417146883611228674723862621288602607953543714839352091635312730547005237931857086506657943926613547269859075350702134091241784864048399784490920397592894976782407025353215787282602248124207276282922865331260399646089181082400682923164893493716995367365328097644664486477623967102938384499580807346085938951354598596887508632234976905208697252928298302802440902263375398992512997572680708767451600171441734470894433252597566132500490517523915771727273797095963995654701234564861322865021083997444123006444961649719895892696061743975329482903871030320069685544304745826142717668555405217157569002512684167673027202751928733333818855034581564920706124268412967353967491873824889734343099239625263060999630796987207846757813070032185729890735403065731630955747912091039304206339586058521431840761168999821128158137326902108007980681478125368958618299521197568780294857651452379381098599375627930166924190077811574660363470015959111332966029847457314566821355387388316191425881618113844409710887589297112181265731434149365785965417903956372708453910403481639258248227230176584498917554757523640623218774927966304599009642096563722724537220062537793411404963693996678790937364131806832913337495357098041541718549845264269619948927466912324174664407951536789300532831269962740533438823932726657552800582611265499582600061928907295957988356587313506862705476129453532632462396589649132757868403353260908120387147363403618484231557135265660391832641422029231725964135135108367837846838063952976324618671475653111579093503703251135283980639321819278280051218964657047328280798056732390561608001311676468634149043952216267459715670183939779830153325824657512546674754856979608485426152704691467182396782531376316670994013209741409512103990954916080306766505583059014582188648791100374527572769306420864469453714471035358179825933203080313788380765450895285802426496955756852722011812008304268543814936387677278245112134127232383923002868562806959238778231239637271073392299920997035101185737029050983844633090463456149633364106806249035339746265793011858755416940599425454942712573309757923525064309855858937640007974933784614486157160425659624785195161005255501739582536417197058564791454170067800380404211745477706453989443955594239545420238222780022397498083448121562831082440704255512915108826569750108110861226204504135792472709600577066359218045830932149983690440040864597493266926105463303792877518678962905247209299152303790771545147627106825075508762399954867671665650908588248443899443655716153282469070035009916242763798662590171329136764731673517099839337755913104900263447548180872581886152497363701121843819124348957283190779474165006729777903123518683899134900057829034577054752500476933471201028051477355726076274888491591926787813193683548556892145999968031064950739245915543678525637813630468860417132354063836327777025760823723149587097221363280412219812236006717156448573733553781812506222909583167032269747533273134545421762919866140373591571039311681818863593239400903151822450659941332397057153366078094155878486172181483685112943846525341328118837078762718163498571308506489131660909087294719572285638118944049889108797075356274569340422753005825561540513437779920276267707932448955996830763844610683671212236949509965392114970955112563322919327119727193543974633997424197482905317522763530608479378384332005148673793002411223736664554279169925595028084522758144944482817745520420393540942816618529550634277824473308350927585028494179373161298370665400867731958559073954204103149294436575323378317025309966664212096512622949777815142317149908047315399560689136818560393718160608560436085987618927593124955474788410367671092875700329371267365208682290833721479199554235989400739412032822415340354202129500332396723285927163736832959977574769793886071006617804513256994879010049497357241312384673754515247090924443608208109309498411920701973818394448780931929954941601323856272763476158520244675152753343262027060695998242288087747823119907427722795085772677201748284264272563285411044893947713712697419783392142024953067424527858049229226114576502943766073294067453441417925094452543503016357685839154105381256634159927665471947222473441459636661275352921654186965699197417770928084232897991654060659311940793581466552294921054713145415554874395132136256578240003466102745662637443406460603077254808145880228658385489745866263916971952449046129164200893885274301697080052456186960684703668433062468716565184174578530799824711555363127265745889436989263390396057876391406577606538456494716847726011597153833868293431869360030414692393153732494931090077679500604209078210786839236206809396929232316200110556136650700980453475433997299480482840233104853162671598464256907914974061983719359281796131350807949489740918474078696906610019880345784528472499908815311557481382949715221978286566467627983161228303940619468185621443565565681904437023718358065433836784437880880528166433878096590687375871414867632568058679800729055959880294835628828247413520227251032939424313794259006476494145723665594014143932860581462257858908535266899888338819554910441830121478434198056083637944937117285960625055323304591326549650044487397196673635023222732453747095208026092952779248012357732150975279305390111431489866430771814224206502056754686532285181763579697722555977881780105212317532651252014700193389299842960827392747147915103473178061328628332736312091933177556588509063838294083215037890240085765359082389391137230409735199397292521585356425317001911999823814906729391887255955443659731458844987311326146939597980191489952171004467436170819445191326081318642557052871679003957878997504401655098277844519729231013828513179110131187534719234425392313093167753126567552825511123406853883659057708374091907325511947044639161528026867967706567454017502214083170150384758465020012364431591221799290422617373265330670351920449538855336455753631516999378985358483720002919984141473742261078044434716774874611903415694352859398724405126964013019489738314128930018217478146662869749841719790649456057464636129131843331443207906922905454884714983108315552697526147025203046498301914990216734238829574256407024370721745391714735548850827291256138507430716550820367845274577719202847648975619418207318788161681860729659576737639821489283768651376627231961280771742285732170371457694144444639572179747390050187092001581536050788453267326162244094005619300850402864469149281851424813993300866119677296457459848320343471497567438549981154735273316247980707464250824365137857312690346221944061493127961158719446775155398848765102939989295613740300383260826533518453529339586862370476928550577808019764534706405364520139281984335416475133643218237065586659119300090914436618229816822714987974050966317692797497652225936077645714051925493515424618258191214724759525451879433274320689322841722263951630190740784373877372503306097549109793813163148069713647731732051163013114642507815675445746028073016844697415318386193062910713781813519510992960038499455475248534306997759103103245220451837653166243786408189224558779286578387924957844247842754750042782136093336869470142368920874676308823215077696149616571921816192686928864022681767768745261368031009544881460728979467821746825540243536096249878459908538067442661018088730973267774817267705232798383342426337847258759099149935072142135555423381604914324575434951837528577989335099576655628366020198491125359255788604873572245870754293010866517465307829647313688102549234994600695337685262676428134005836146712054473036328341699528510263106651656472026947019929547224082685828307656398768786984287465869921695884945638109333254218460267223833805929904215198234546459846216987512275653569135770343209480812344808532094008306725712682957064678110061909794322777126245465550110598784091394406400292622286459239458190763386502890942933071342738370081208918814066604016236169449616100261493915897374272131119070320951980761134947248221431831707039121001303954762059514048162798292319981429494166928255053649479937774643935351016932104542225206235713111132379381720812703889186892473365496779683354016118529586266359513850781358405084845881984969392372718531450393418499767537655157135334794579964057258299752707478475204478140390643260566459255016962217054973880232417046588313336236831117603755335088775734948676332068899201987388077150765181221224554532409470478281281468828455272557953255244494808831680136906689079040867150317452180349826329557527586923299200111992151980913036155580213178319281350511719272430629896674684854674600198052921288363508969305432707565363022903365613653186797996187523849672758954162107844120867243009348204884266738234660808504206007023315561961890766721793716933604813479923390234888089161945792865865001783687705448597944386625387683816901658098488549893986107839508245188780264898769703519970301108068971240825454345379185295671450004342531737240760543597425750395249105867450548184111672434600882988989757477992635700873352993515843606032428101230962658034280375185281078968173119815359532458737674423562676230373158514920569385442927680352594191925458093218636130470844944227692666500311966098515726312221082813450155856025503351882958879773361418187542863949390627650514644789668796384155769038335069743426443703231217134842534632714143645496119131239733453138771606677926394696414390578372732793780714372167376778621750798348118832304528865428554491993587756556648606969041724294941028268156652227863566897613926725188614865104601330350632065592951049623388025234125971649775450374860430469367017750453413195640648043908326669099443417256047364805566448868445801557294718918859721515510743961380523928581803095367031467145225637053115758935435607280708695470210370816982990727857418090192614167012166997800495893019100483259149682811133094750141370419218150848385786642153948679834570014861517849592019257040856385341226716084099571995640139214237568775794096167052719785303189839247590217982811155361925970303192074289391763400818098483208146388910852648939661096514748962403640707264574257391178043484505651919555660583462896722764217589584650528327597098041709774216722561579621655726899701403074069705402167128428852743274007159560067671422037427791137939012582201151027965303183769749753849230586043856404568870874158829272306143490203566149868149384500178342014917537961553223812338713919679909390312480315418195539556028414396808664042471474347963598765848741150671135396870013267835259237982566608938842716425888401811575258400729858268325729819949621336666976799866879487963323621326142346621176760913105259973279223575458296831181384858626193707336442353978025737877264088984115136392638371584154974055239719354173431085413404638747330828992956371602912788950170019317363605486051039935927335482458338881196705172436381764810919077262037125534992685134152529033705746789908952889022577897705832172232653886927180214408860584736047670502596325828962976201697278599331149254256777439200737677088057287909979412614863027503085375594812980221340289113079341497610691420353445680381330872982903301142370928910406870096705722339549131032052814113938965037149771551776706125102084396838065474783086597711336799019210074391347319407603820192053106540308898948788588752053780072945368569259847319696055368723779079692472580449548105346380865915351860377412792735190809871255136627311844797860186608555750056464446180112327534280188988768788494535673359172432661696918133873118565972584275695203011930590352778168863950763310506471644162218155277572016065908533068671922759632227592988225178867869469214623984509768061092061150048160349816562779041019578041500835122523191069228967419292062948930782651329471282138854676603892375450902297480456978322816211554423636947190278793934935063940122320198837229395702298331212415528397849964372344443698371008882254330698900663134720756278362193940331803254292463223311909900268975088283258732550309443034451884145258182966043332660665107436041088858471600095696112634470807944143167597283381783172505826016271902113932388038499977937464836778372441345817964518392421671847723566856658582564085814182143003598789977886667861988957264220416499136477360427016002374994699616235509250746569520589423747780877312039011933654167038350899523544086466410257972792790165923591233667726608912226858764801935588354252625092802861493822068055025241388708319040656959003862198971349524358874005316727095071081229167379195197488434945365336168594294944398711731515525020782770539919589222937416370055832691691627823193862396084180191498030119592038671996368640442076357804414109570073316891881009090106982580475836381571392459312041692579976055711487322943499601951564652123083139418137033513404255406415423453478536020976167197610657953005100662589153562500661746773611894715200953307474634702849769142266557474410849784814620718893799807735373562837314999111199203949475175605030141487973836119314805190182791044173155230938061728602418199679656625559075836565884045248539199632003000191803982046938246571175286265785505916713592660492052705349867215233827524122522533294503891518939934061700023389517602666640712237001322140364415692249538528501428256559516856542993688731451361072460061368446185759077611337843232441653370538203373924653569927324277932427651879349861381310805910788439107153107446903524837872716308471253728811973285692005359736511963927421098181821530968283108758050666049991318169558485893787473122568483900121152732240118047810915822753758612551268946001450089069411665835339380592213145953110111467186551330996221686554649618879802662332594345475260574245006155541552467097011554433234832931102483318932938576968699207927456855072834094425888589965989911125171861646795073744328002447011353029910500005587103570380999386246830504020670585437909388004164692738596855850860242436554151985695065752123546771017263820451277026453134657483029538424895211919841232089558977198704672827021413978402079563377869462571788105376441254790661285035309925913771255093063098746589912651155167626739249387431596249156806408313052569262582608333892470191317402655671599709597931585382045119748176439248125082817598363344788721527876614286218896784884370131083707991828879031683511362556758900279151050066333820832830559858450631386355179010146265724191452628825437895160992924700476581371149043447218427911754353939183395055912697568092371927374833767311030693761348440225720708777408648100572851093505135883456063773650439818061712623640512785340548214732246117975348458287332344143138358175399861162798302827424600402649932848330767815976773040366092990710475977602460153007272819484951975341348487684072293794980385950980957282739784881886423647077072650755911980112054685039838069427747638186685490243610675985431244641427275257717768589771614208700598632206635733790005654030755799657623262320189843752116982095812045282452860719473413440383721050314247367535743879797799707235924881035915727098767289734965848475796640658678160323041416805849140652086232287741292524404930825342801481038179807780550059109298099833427408848113008766340929663544515973127465192284808380497342559057117206221833777164900823496490304381865210174141638775417219015998147783842658036306087361348438026226573307806466196703898724974564654087348907195732135941211386847247802412648300705880019592507019226393032096376072919326389753145979246150239758081087684341223950307935574814062530190337489412093782421670468334543423928880324603247724513884894061427708412604118699300986837349978267875322694327186012726365156237903612595939590770177192796456710772201882882221415309842055172456866710640326871412779945565028472693247010617171528975536054980661480980386986961503966685482644301905010465252352570937940950629749952724198207113790205737402779021118970544722492383773545905666861250422088808236763870304465618237083347141064530199964476791409850224351990775267888997440885478193630863221141880656915052513583305912628569889409884358938649408963455058152845274955135983461346454081712485952252101326899992697422729287699636244603965321815012138060637049991943845133394671764303227502237511431750349992368589006677940213458232488626537497879934518306532414513365768990702585324761120714554178790520558898139825221291156936581110981764813308200031909246469094907313671535657276753291852459597333411295900776049443383770644503086687456763689590804286857476143690398640761174123868062550557224429133948398529983310127061157668814806299910628915962754444200326421801216639958547021118539905230773625659780522921667768956386786803680938785879507904140302051074109991569500947954643779786868758239930466944873857715990126867483151834954405530697727470950380013942819839397005479237935526932937269255520013031198258016324885573253673046481214951529110047688041247940168920407245000474366025869782691907897637787893610976092723064953146849550857695012934939315124777670467499733820395942830461193692106854481287043195466514001538470886778307667637649441307648636991676312915564510252166493388291960738210797724482852724407314070346463217802810459058150285548567359639213572322246522569447376522492695883965989156365010673318981517013648682454565011242526604190189089410663208590464748150263794652110093733049793009848982663817283684562046649019192183578040896133937114444327628819078313275109177324839730324887962540124105553743511737162542685966026025854262905885822979228063445036576173751700400110457735421862279876417141294398848179170142505420320891774568239814045924861597668334154567816073962511220978636567093531692651043966563501425170131965961731283732957363533678086709956165255553408782260556138147741590301990277627993540872242648201701860355083180503078690841450441872429209925940465318944742534187772829651522654940308293334375952647944566370166894803341919272367633816848666779148414722795583096922649812058364162230170371002625290221298067963501125995291536417853274656629984189654937166353687079162518343768334568099135129795267258576622643966958639392336054076512368503290741001295181746705097058413760514329784031669060796749744368332662898305565086673696098210178493840851388450534460111201807715886607534795244923379046218382718623015012167016256690400294203722214932453638169115727012987038821585822006218632359797731615122596204390836767033996276522715491352101383306299254558725280997502222431185863214294076018880005321306096174314859488478515272405604275936393260902440555299191717142871933007009950225394478391188023313642180259958196786984596973561577376140523328094985634508158346248954363281902106348736337907822134925528915909902130733525620168811153725406462525220075313889704411648640476934042315527577999893075125404926824642279051977824127270661008644256433334113622881037668635025372161455771110496296758778322145659733143180497995350149243139172760275974717605723347115870648795990646509407958105072030159341090382093143794620517296186248922783980357223581261863130452606846099542805422959179814949059716374897786174808563772622632607764175745239040114212574737711485919287330702929478181870456406436816501095847403796609198369881039770575792933126090224923732637610397891964405422110546064524183908636214505787038784349609914897336404159912886340875530695101234334329421520006229904834342799751962080850256270725193530339984625669171709286468166968589185552961482884467370251011672968480062140769123638186137297204035091429107847460602615685380660766104251118473712663351054854494084122642969761464239125867444656429333056022555301706890075459120418256011177704487643089378347183451393504582564308748541898242648886792604445840778299999619655188576146052011207652863696508301919323499485634595049164335082024279195668869014600197592162712456200585619699301706382519460949831324913754309582184691160673496931472731485395566450316996091352746961930164791019911915840766183765029747378983296031541666514919211503503386286952255136458149099803921304351883301689683272822946135496120017384219976460204519456349291904584117277537904628096269198606159145314525449472634904240344706291292299732336624230170253843744335191538397058849235959439586998131353630275757368533718030766179048838756238422420464963439012103921340458833793587031389195732166730687258153105456789427866957369250916167276310023479311229677747840447123452827836020187776286987477799322718266623288642800735281004391496451072531957618662442545331647773703366925893620506924984213654679583744831202596397784006579682525194563383684611963270603445400163627037074924480050418573864167750136541382283297789033496485716516952133605493389246361013635760553772745355952974691228051616530861011611722932909111499092188697034826868385796837872637821803878744178787410732960566375852129122494991542860489831052913314791982408049010999900387296799730374129854033562010832660283596117795563135265173298295632125786289134692205666843534031081135238834986149236301165573242506685190562553173555379764381172963951192148763731610904832321030660125888350963058546662214848952155584138050654293506179274215199245015156984357578032729594428728179783673903143029040989457076884593682388884436636849338296002652394364520908667011007421410540870770763063065699241913966210139112698176069799484818103991471821543228476222154861984864256492928798085636731227746748011761110646656948173352776566197529530111063201978293172162728028955210610809184768215910575222936293895585139354627020872522245595405412893342944863564102515833141983504704839516712126545000699930733341608229009197749460021689025844358789542893082774802312729833745232048130397422352334794089524940528373539630757078923328244824244827032912731339576370202625101350400218740922698189819064492996564800837195308334282216264830183442889927282389810940203937574637282409979696851949250834417402795273590666601642069028415721769454858362958784339052650390559636377031750795249751982721414581538757799896050810917643108798693958452697958687632289065660799891755021926609865037967938843920789643864658230538699845207154204293681663877973735089171025469572836509597211351292713756657029927468420344912602405188403789988506538526175579959738868501097574393998948752500413968760879655287522134913468994896213399070051521010024031162960264341522076605565301028314874336424896147155872663848174954342185803426956086129839209867075097718590873601019036413710465653731705407619237909188929994310762567245885744987068264869988474916518039876061152363766758287256893276940015696212022423919551232020538279140059928603048126905726244744737006849564469355727741385450486012688451312957298033747983986330972476708219114942734756123801953210026127134853301685095002652869077169063741250156398698164659540571070170806578468599215708225076882952306490198402118153896914314790293419767431268594080137914469528490914695312422389116694265712069963931014334676626787302746540410543515864525908079953112664072737559601123831868971135983883663267915984714124770778992805132751213745511443863574476470978963996944599791907043513594758732792936306221998845752821143009513849397767177714944242534441251666471432251936038705600096371624171485153126653061522449467920626385406776101855240043855949149380265156741786817695563916578468520505288005732358044151459516269880133254823488787981591662808403851850395476289297942966794589695405850900263448635411256350840920984925827209067736293408721898167709590189947248570028125471512751311919319343152103471940134269034542988840632923858329043014417271404795862169021184422990279776459673091109409597658789054490109479893399573196265199607312832041015673202328355400872212575578476839246995992630787036618720921004469213289267131515517454507995804784644047670519659061131253858966827717497062129746206074193824366496179676528047712792260315079138643328694631284396706859660876671836365442214808679436134381374241004671720352982775384261721455848116809223854032570333476823152935721971671904449174903211019865717799003149649270179353084437806505904397646360481475912403501804610706516483123615355941100777813574231480703168827216700146989028438380985505482622430315383949566108059346815621528853323346216824941313177469602990828167626554614369414603429190148279886228451140950926655847361537388137823868196470282370117032951949432009080024114231334148482892477949760336750590433550519630223917563746294937068074424265744888769701379335764255779683912231679997473986895374721225777583844781685858734396394297912237949451347534722539105204757786941621148157901201197364539536858795853296385054009163584241574233713638754901718945812310813032249549733540043846804857651529015673355086156997440641589155900977532972497481530069867327834087749067779904113074920089240491228812093631764154000615720884847128934457991732352770614313629216481862243424087575208866620132996850400045295117875250343076696640391373679617781348475669510532391542441919445287795137737286718295007683134304058029275636628290143587075147441291606743281550461137819369712809342296518481857486355218891658825764280477653513949872059602122628474118345614485900721088918319645978194576304355256092835443616734346175250807908179042761092239740509911740707513074969737610846608536698404465498503280554927117371180799772737036993744743155926808504576713855412975492010274779301713728978637880598362069971316807908655999107772847208735000679682911725373883142351158757032809103250745233445220808269079164637897903568643616269811081380670501686422193928564918557224397528629817501190799676129348539431140860299027009221454875229823395519248812513491065241620705986867670223172897804046175153217489101592960282670193916124253500839696534490132070858776764569023286688885960046432451037458840692154231049714466819929370345737195845408161711325506014028913070662154651447853210175877389454713524593644615523708804520541022268490939199171113704076450080769857049500752068705949439220890561224103410742209244610662447030182908943839894638091863950125812234721748998247967014977495874608674542597838008863454854666701508636669777243780922935214448209830568165682340310894772644471078256979648309307146170577551025517569909771168040730020486835288739646058368381439719433158275869615516446900386742804222343920693031692970420930347082422306990819588105004128067887275764104420475060129702132703401070041739549009538198686580397639576250536351595374441940684253830305313408209121029440546144416978043285739702075865549201430167201934793410463241244359417160876658519197213567037216066881466240310668602841845059390617828077635456811320017440814203474842260473472900521985341131902329360841665845396366396924113349530922629357090991638164940036799746599276721559769799864640660281777549323561125348613593042849052840860593530486897521424261934562967017306525619400459665111070714225106856333039572878836017526104453564172466628225812863698287684266160945083189157728013428338693780704660041257578110284684434905360976935510946114597600344037577676444619792639804287462089576133127853716858867586915274909289672716569486642846715106526805865715627880144399263432763789596592182402249084426720778948225511869230250287311934059677155097031916259498322229888001527495761937640326567805416873137962968940989708598191747821765590520053849603925457186503377273090439257297766577611079281202553266042272867371721902862659545953549912935550398559494489635919570242914701223367928838157242110158236338914741194469188670346490028627462014075106737700487644870629245021330485295550629679901859728478545185935149370025164337915241293781465665755447407784425309737105209473374500443576733936942394720070070448603918197266827035558416168365256661293982579547598948757121617307465327370322917438428438263530183171888636714770094999550723518632605056488459932291282118234754577595690322719477664654559605115013477357224271977143259892633349197455418078127735609251580585181454260716988816344292576009959709509698651501515798742793005223746883267715018569109304086804985280357857493526834956720344892177861847280232446475370058388384025613007900557223819534959354462689017700648297941211433938742239617422843313501193677917805053003148312604030802902641998400275048077529465654711058177918360279171538742349168225745544160966564766583656262428957719208283886806312672613799565251129017213314018632219187921325070706232669297220152341032817715565972976433223432733194445304944689437696344131697172471139418542227021761589120283560041370231341353586771723989112688563965521807686566369264574323877407582241266496398887016098572629299097591682238199380752744070538244553248141721729958812178779798581512532528223973319082856736532610096462972455315772112361195209445316373058489898910995745308966400001630859857669377121011832080402703233872942402952601863921648856992154012583963677705628938437218827585151326004783617612292916419859328884540957894206207268694605528507655289487172729755744460952488471659627317937589313631668006500720878864026640029480655366162087879939677700146120339923933384124553167122466106641545062088745753109810420158854359697296016703196293778231573677876409921165708375193022721691586491912827180161222038875324339189871586914063690607658508094611560702151622443076440565130213727062920740055553675727830104880252537323314574906688446991591853600811352702917289326921638137210225742867868309764504284229523759791398316994266741491340785567715720988578331031304537357693726731040554099153911623176260495568062663403851473034742358738932797514280137088179595060356267868619173417015877561949209317763379038595720784082250819059936848562603181566973034812110543390289845295746982361572912468193982713475788012685397357890556503563327144164492079250119723508391561382194999673440419985820323707810492368633337994744063113204764271898846595112251253744712620354851005883257394772267610458004790891774006673061903221292343229884307189990939480448549940649236984701597702341173518426041057160602446631168882641063701129288726089788833874688494022065392674877494322544899036543762438890506206269105077810067364327285744935626049701413935960784441401432952274547338034024374670229367042136864845228255043960747307363322782482487588933490969253480095592638791421189071167412938886669939637186736015709466539641971764107817181299646033971332162187412420866518900497246980339178761003815442886220085816403622103486893396478821683859002460990525834745420317416101950710790688431933336327370191842687152068591442859980643780482176954237504528002305439326262588877667855586916264463244046443062414447236755368178915508517950386035341192251877501697695793727565074575060565545180752841447818367627206527387474830313029893753158245189698090229318971131892349245586255188159905185443988675531631642966562042832360734966989017429639866294419262928852387583172213366624749996474159962157813780835365845486691685920668406522834012756251684723939200440532045818547526992561823604676901483888328463249152583095130176436903094405190606566952845778898350857123685985103146600457216354330251259013494467340600405840286777156894478249696189657350509000268967833281325574234852907220513413640608765703490005342602938155047981558068540019949067815517315362075284914733682094307876994590289917696100313388746229850884921263410926375221082318910657001260121078629531745454311782337011906476599070559645803412934138229295020116620132260833754192626850193499911526345950566366155577629709206776882667671224902369492133459081388478220456540615818400020488526022625986953120327696424101771927075098526422028171298858257194917282749600070459736217278159748716924131530492573025018601038176465431424131631433778516272119455832235800708497215711830884282354940297723517154817905488582494314488045264491501007526449064821777870444205649367871823643204827025791432411949089344118760592001190901310638732126097092770251878625514494795644275851522553984641784944706956449305873957459362726183738945665906705205125866724177757893672080227364171125861914265050992551408785035354761492693756845464773614046680850809086895443155035518794944774135575446349963987363017355769087025887918068340614474524748729799438263830955225024912519047857905286732161212847520120142741138323686876492643718277283977227530543436378805618808305047184795302497800422601742346031518480713284656709629221941281358427035592346007453970906779495957451396605352918099496776146832196189706986692487263663595811430511728586151422956276136288121673671662281627247248156881917118227587363822618078453927475095794320203961380179889995634951168882417326252679186267514204640208436098548298409567825912797603066086836262147206510490098158698937406729509445540485976673207490273487058818171393688658041433275100325338354562083587468714818954632601666328983683281128664523365217604774172810084696446200348474863361195194079099480118179805746906598590483613591129664254701178245528833220360028936012589201305591467178746401177803216421652632525658540142194762246766056589706205899453291202539925124163625379718180807834263064406608107297750197824751999842207308466490757048253111165607536063042754767944915778813407867347445795044114842069895738683501459794797651479503398280150684856307869013708480892273863747245668614747601586394059237408945736595508453768032606589731262698519475992248010685222467834189475292338229806694200878347459815870797713786721257232565867445804608773033781725396074223285941075995471869176971121413800951978824045993173440650607219787310988736362135951194084870254491272676593043603480184819023822012643263489327815308266713449158073765478874161132766049312043165376853766748032433769486379420963308294611542503831169338155211505403072286919905490965671411301987237447462751558329003450890805129462588286489315939901909054717630266806526646048258866700113364506400045156074108505656879380550406808351285705380292697237339880734419292839750805386083737767993071631548256720512083210286602290752764046711580598324006050991065213499195462153301435675407332539101915313458587918603959155431648832453894890038408896310141836302454756958759527296873539910352324548393895656752216115367008627394983877601534883856813060755114982007881654810376944184978583737197630229260421874070049525552451815180691913738755857181629297938605363204533057966851364664240756398676344910578548532332261695961530591986224416834121426461321242860452753014215085031915931119817214186330853577737295961884642722343861896911228476036351583822972286049134146898023103153150321872961448048867349091245412966948233650651685573973204211502166030768738719628781188401375960913908029192242780589816357649580256649069172564580761804387444994685039416870206234862412149719273826461307113066956805792142689051916648693595098349125611883586921580579338992178368172405389715641127350498333912285057982657385529393830915113274595019086559980002454198831437518824057823938959109058228964921666083413891626066341718992442913706056654242699615467515402051136757985645255291068141883111447993209727882972224380755877373248262275508342892265281320832735575010459995865450697105130015510230249279683327119319689380570479577151374313977053716173009977547238413989579009508686931402321286485328763325513606593891036126070951415215057266951507305777051825152514127689046870039548323937701589879925377734612832407280745920932479671312419344593100432339448916913533698099767181960244225138545042146172903857292130157015567190025229178223760607389341959982274948141551789599622036615650091093383921177803568327113659108450644241477891677391162839120281242679024457047223668654294447564703376115008490758647456457709591609961256475619675987807802080027866475564881462970639738155537384639221241835928150297132606353388339111306736796715157602971591539281615635698869746687378238687888863845961234503720176877722365573838280618406652875932524766708545498504129285490603850293116141924143095146909539818101810892937585359599978460008271450542200242518592156238141294256674969732608301749756107169405339213245115288008437172338467645318284305327655702193165578037170334616443443220578312289017883844342380528313620430345644172488142842125370301869074985532895085872700356261397403748387670236066775329060757595087283550976926166994725183341501513346207073330969399942185745937613689765094011213050677500783578269752571700951487251590902043678338565361345044501846233747466889707782414011911860234749935668861691945451984155885639062982043583228215844591021717728640881399399922756607812254024675158709461134277463397258214363577821543759927205508101871298801246720718355272950137123093931120113464556214561895667444773323037864978415215985028229833945534779427396909503391753686138305640901117446916599046654896447034490011978072882071248154542797317907948450499807147848361055141116591687021657335610634521836162939939344073549072745143997047548682709908132936648504488521130237628874621271888860522118078277398571183884084316939150887983164996974875162431812509339925833304221631235731052747391438611138472746598711211216950775049416403222923404122588884495055649712261995014709319750068728982909633975668129291281294917685751209533369075063734052219698107075855639803836807872129490660008731252305061796019088117728599203955429010141343771336225892302721969810237668622759244423810590481797804572559709430294515110189124545215655314408216684558985563733304837960930912980026641204664661406994542969933794238964155753976694129214317436242341591927149050715776156199674574679845853845137277214562371590694644599458276674853029482794218141930349547714530558202677473618763234869696866973767354297534439022309278443892700484199458956530771769978734900906131587927639122957307316277848547542997621793051395473553126292251982124458879136988828909731649160200617074724572065328940272657348678925711775483735041919629502771018327356029654064799635886496316520388078710351766086102987766291182198167250233117596342251511079245948620802732266234234488304861065516106742111529343069924011407657124283599898396627499828089374410743953624455364105472080757704739653847340341017753142759189668185532820956598399225013841009035374352077578159807503088602345500531286094898946777770846865304105552769719940603477379522268840177065830944553509371300447602102573290096338686295877445544360683643666399336535123654015452110379346477095608378814210289570043455269376656898598820242190040064246457856967096707903799351815718022868400878780994133353747007061183595320468207016750567497020003393855315791868810932179057173713385873304845359057633433698272922165492394758133271782016651147736064572757957988998535462403910852930829111752993014674908834920555824920890402763181164460665400841674383154497636228504300304714945955895761177652382673491532740135915824876698971440632672572254271709332191092188486482969515263939444608202890760577994939932336729045703871915220847229444320449071717425578788846112345168497292960645340069099598742752199782969381010501867572994341555165571667410223770901913476115247198324720219250692573397754779829968510688280357223313228932599244003961063406625804920840526833398644300766740590959723404742269950311259536869263976741846191120678158633274822849239637037946514496605721421326242035431962093284371901380380998413157006546871696825722847349981207336136111726762289834307354875917338530461923242281975026390370346168408177693960392705869986928481123445472718326045876849286705139584095944959418982536740829805404275973699851099498389360937182683589608455729930676959719741421395071932216996636416999691430506938691066047092939333524991564662811970137893726596044945714023422820075847093231133504523537492361354286090625675877123812046766642924778416789743314173050908949809678817551178883098280200998732434007837215865187762941357448342859925163467410678676741441054861751658348790093356649326260784723883035523752832136168854315260482027840888332886111423561671093924820104383551780650854928816332817321654060934346125170028548035444639089790988146651712401133883156608726771922638984182547729136916201846781455645818343023035827188488555070275292527695866819796239506915146711263891833727532225273488118156510551707807500474454102590718159305330071231264333577838890310026153503731980079282243139215791172241463792963159567769992493031541717730991172776253608506948541583095243149376279788578357827758956087764871261889333141670602089600795381540687764002895453895450084560299416857359062983820626667331726426607704774308804912194700341425200252530444498530648585632686640184593656034788567194479710020412616580753575035870195754492819709251146191853474468419440677790548508262101026585594124625346826126248273893387314681336918352676161753092179688623604688275614863216544970544146289773282563613530142284579947404467758935775835094965312817666848766899357898072749969662681338360685875341517837927280341278256774985841300572150755216087602899556857856137652788236664736572326292999413270832685721622872339277523502164691693664366645213059311332839037899957447897972644440801369334820347367607534171249612867216808809028530444768141658794300833294593566890871781891580452340304570093510176338335658845255842332920734121874752786081395036747679204902101580439728337217618640130073672869415472996409724896022890197988402851921001291448830786708655136119436849854787330285835298374583351733580867346443332884858605537580416501642666408159816486590651701279922752521021853776874538864914194725504905592625786528968115541612525598528386686770720590079986890813395799266953533324506835994653508489309308062469331776312453493646211334617755276486762359449325615260882429136698474305775000100059135578961411836152529159755697254271009906968129730025671095906266414644798450383231931236053026607982859687994903577032426442297569732294397112856135356208594552028482278069892653158183864601902402271265727177746545863683475801625257948056289741247283570229459468444425125601639379878379355775189033166944169397322104808278282130763460213338725636543402059333662660008217919175444887379235100959964567186659857850771907814998074232842210826937990285055570123873976093098740648399846551021120711852167649323956870328048349733791565178394001381026584695765780385869330670326251711306248754848303150950898381622785398834962493504128364389812734676284315503938037745526630720557877247495697764958684684831093424374707165369992210436123971671975305921474200350837040561938407368393361993406952907810460364641544273355141754878182216854446550868147819173048284990050332692332904481603282470572917417879916402247641589848221143752253533588992262024666412029622797402740982904407542134857774343350541008384818556229936588988783223320524801101048391250040783556143508801116813257179226618208734498416060635953121571805683151509981022473870395280089936826257226850830500637397212214025099250955282548826248229351447445908549786664432312861030945654575106414761941592750233924283770674833088199800460807600535426207073098314644719459260875663146688139503820833608079586492365166459917486152955442477057701645694526875347355040844055686551581157807936440328578811272667923014242040516418870198712604951452567151247517182324480689321797901333652204893122502433905907532098131727707312262449609275762761272983481862707172690148849334468214871600761473233736906983231528532548633964023737152646769205579809826143933976183268669781872816977961632902455302510352066536186537385463801096337816353888754116298474504692249940485164806079361462253527976760611627838041774210486296041673133217783353276288488105795193329611280749233502645318354739644400077219297990193505299306314960186543381476880633531240062427139477839654864775002901809523000996311056150684418792400114123544683146755477477451305579685812602454694062529154397577571105388089473291142469367104679113570984930045888252520198310666927063548949957134928075943935621057337354141605377184616574100418318475553055667964517517752225236250337055371795422947839811073533059139075815055327471815712506485555454296510479054169795211077701606686139975820024188398220360545803712179337640189491753898821238394508363821928980563505913150274710182208014493851579171747043549784657333064439069694058661344274504787084824369574271506406200385188012879840592341102023772288426841909824508642216978745645185124718763859460491713802412552546755818384164403860884098948825843654671458193294367924395255734953508231005629237866207081684390705289629015984874676499819860226844155309494525050299951420632635027122117223868177680587853085254593712968199022739013218602111566376982859055657363338111216462525580130387562466551591960551997123838875565887637643779705670306651220805480288522512397242935445349866157947885111192642447616823590990528439675559470976647001815305684172385055402089986831166540713684049925078513624057622740678128207848413330049827184970582841884748618234295694568661924810191662005050923474119211663683063005548043239297015170749531120014943535991449838933822777811441294108766007124134079040409641149326832694571137957566332920787076507322603532067226356259254538577860746209876893121223029726010313307067656308653390417057652889197668078364350497688289915758501228279600427440867788188671228440361006776220780055753186559950197870001245899539507399056524470464209380518378592676718184180077098534261630878615423830797785964014512168290278109894713680644930586927472304524724280218922121663039345328711213065757099227463500013009145113457845265656430761150120302113286758562545849048248301338280524771534463600035127507382050413088576746884577638127477483905829355214574035762480183984360475266211568043392657602073330834242546823011168809862848753476249159119881654274149779822884860517152075677988802407766407722478641438645762510881027533755003103772882532889351340907306431771514770425659574935677888579399217763705848053596571122220144269374649026826446282700366988594426179535339788752739271468122492464574094019762770254854901594106053464266319712279282508538799644786491716311412667744224906695264344123131127148095694878364750500977850945768408249304018347404333135233526581903922476485860540809895883154508184306462721820325371412044976647057552422222592216855476704014990691879964983003481975434385525834728163112870048091600362083882986735045432988742604634743616687013680099905717551262214259584038156287301207638046435661949912339521181333369212908423210911034023922991153313547220480221490432054948120756109518815072733244732775164399937006577123199223536686081801104964592070936149696786368830376283643787879624305748428444725654993906873444516416493092431913243686081279860397467502246881804949271165657432754909568781995406318411784602807669824950500260309431159114082060830183346070367249663087368700816547959904004807917345160150312640283278167559186338550860388294856765331674950404996338530114439074524167591805579396685310721530153959108048903818357011751160922542802821872679870858805408541559427788172533574385547383296949840035733347914287366132553714501916280395251414143327626631378218854296950673291023942345383910014099929602389427502450094281369784861218493599622317589229362011147595714292011350427518250143880863202655116381211197142680747921846138784176647385210470212745983570004577230120741528956018000901612912435089239970870865679264730382826852110895771403001985182327916974975732544582731080059541016588121149751039504058499676290026937096851012652531928169670827751076512130102628010230330661464293237488836616489211480374150922867780374339858252466549147945208966382210789608102122168847262559458045124041750906085403247880415097776108908062353760069199529736494837649518974461254852321226380237288806072565509662268558840240750147609340255553488819413955866595419251051333078269756904188961693797209841409519214249459968071423015057651454135736929614573824393517610581203699386258348706155382169648209889350483875681179478760133772872348257058958836946161399364807201806545102120818838625007024511226520585497622973438838020712603722070183016336979507931819196390618040450528680246077657116495847586117639527697047231193862720886924353496084472277416324318154471494686307636262150979964297567005600754989787271811125752886575044441532263510794919744179967353100535109583481299596774744816795101241939408523655098962842970088069669342967477703528183860096051077391118129275108108401457745981007189298309152166020187680168471877909720990503974260515799646997122669423977469441743218871214331680775390479851249402091199145706946420709539063784214131953427987621374890753820600314862334300595922502497356989264626005139010265180704958083659517979142592987306950962103783697792532215093893549863189937701523155080993714274256053369393855148206427156696607647919998287596614592254793426116904479232408894822475268686089045033620117972382361801148325121420790469111788452023586893435743997841441113617726713038188291227361336186648165544384873106624025977839940826006601957189713525030298619316322363049019896480026766649902287193817431697883233716859805170251216265902821294823687318422545034789253207638193214541630315047360399884715399866321860617642702777590207202499744269255557001998860103941980721213923562412142120881458292471323816170222526434437275877916297210504948111995695857454641581122667873578089723124309976941902253072716049047957356313737676650283568248482022879476252167886623461364311413912915371512627992654185470789773019915839431498089574223277789836820658100056772632202356272690441598183427444803274065775902854455652464401750231285433506864310382411931413450390463185456865985179518052213463821042119515263186000780763453941863771967538303678499872059579695245391601177798393626295384495560153203231257152895950471322376491864849843725197123503979158435331123299480515200779443278135848109433887165736297552369545383095272888706694871373930355232581922990385894278042396824533489548574689724137051416520798016558265999675113068685531532649749440278671239022992071643458678901122461995397378892213361195728094861548854954026053822288741333017566193336535599918454067634116272096598796265149638474016450561211410707500102268072747075122790913457914276201304331849807724664137111426484266587592251444984070584044000318549978345791373652026892407256611278885343850698689083379299103765348798166726284498733402868171994603348462013505698280363025402548551591005241567508435843943558105209998142560013190452515853428473075659342079640490520515711564889859050932147490015552624354240763605661594528410062227075425381637501425104219221701794953489210919438814342311013046033109212910499034867755265588621275210339766833523452310607079013944836540760441203094989238882414495326453218744355902708490056411990046969923918988256525122033991272187125004425297328129826041669722878008616806745183977268995781137843276755130978959757821633842901011951104138507020770514359452647458606687520988435483187051782893434965839457596232875729113940301918631172105452380475307580785338076959255902106663358051128622615799823257319783040117743304021174165262937980538438255135375833219787450747517567492284371656098910468814590711297694850017630097861313752199838018853740020231269149052856786677965694617051237039043330379775247063568314916574498876658250392344010633423566396557501766354589316334921752366923055691228209629819328247219590469024097080774238822358438754095096460650922808557824898256591381840478069291411745969756303516731298025050188129743397778323844409221561094474510530440048118954654334354727832746103703556840578317803254883741711626226916487917961278196809893929204350398944655384514001981278776515573859096107059977579073218780042543606474659620488022981437163990248805324996984271606329951073736225153315779508162417305296939192054789180173164840141656155099339286298883466889531303396844257818935839719727251499477423470858793229290638215478012821406638437800811050400906226564091094848818356585600766339661939476157228118260066431991328014188099355672189732013200939474085414617284035124539236292153506204459010569940923257180355553848849091181607830253282344440558291143632811327344684623835918294394260031630871775387267513840030887477992110805625644627912214971553172882902600538156929566760459775105511394889118976917657722520217566435116053178375455640055999089143166080141789912083375083932684695596835427305229821739374020654786585714302803061862306876617615323702815705717930548175873293875329993828710668615917992578522262788597260106741513921662948579711894153580963083592829260397073397843459540349228179056279657329193881418956977721823637624388731125095589120514517007089178626304638770690492653941980021549399553370153541081523196197895565787167560873859927578870272309351937426703552392252814482195589441308324492564906700196715758268601269261621013083802785516625423963967721007209455033165256409618768222003094700416411646291931418212987946346226798825845834183816876029830864215996651104650430522436255456094212724557122097865080291855391377404148533155864529027686786131227328569358816812010095192034633824178797379698363617225137252071786404123047684854355527502127354816027333023102183955663724106799784147182619791416151865411553329016040231621963768838996580513655661951506300854524906185383139275001073076099851524546381621022223500704790167586590296948685475180842533224591764043345126838294320852042503816244534639073409135823022899802530619691903463795498837744336745684595721102302585313633716572535016980686943985393162922854297936219064242452962423183263213312026969541374436609639825912408011587784182650825068264959184690085169215396747492321481441325900230595227330613872378548897717006058969759893143148106163639501846534261538971041696943937515573136257039662504906239681038833099240893269261273345614810523095713265633780338075367895270775040168597135283764748729281565588356094532990813110560265456067545349602231879729161186606150227821119669141387835414066383193359635471816694993148604967299366171286064717646367142789175299079249720027948085766947095167004113107498196388531241921824184361804437529716323917268712488288728381625245618389241100166992798963049340501372033237167423540154396870220504913351166462144119075884957705984291910346840485537274581844593538378480262820708436930154034461947591087410816256801734079868470526194210486671833295296791595192143454667311491881492258874196907551732163244480669583526855547067619030871984717176228831698366022470001427838506578187980680794915291953652882746640115931693374323480614912146402436797815337246874095136099308379577836790511879705254107662430856939524817300611836888076616885656408128068999442547986828959171736453363604750322403739260081142765603401426783633231248735440062398960352675782201656079017380737798282517301191634002720439746995297703190517363868262139625796830798817036445693042832601407314813516944094734434782524178593945184952685634700843899248913749693349592904013051381477975546585530217506289924902732082539208210682688392903744974848894243600285787991773436237346383730891988968824062920069759670312592040436567429553849271018702130312222792225654106251300212829933928461386072608769367300967560157173723516490321524733626603216646643169563631422334706048200949364980789145464729595861902330689616915667758503686814633225995001907254376526381408990567504897745286439203322427112159009842417414342303939577127894170062524742997888248481553205377757938655494282814100780204666403239586758402847231904843037603443335022848460389105697658201525453582654361385774010300239013701560870143101136274510583820914372764302916141468656982266919346808709960762796923059364587083398393392214163934178967756984404407615219573694151750285716488716241678482782019240245331997025744314325791215409500540493803267796787327435399509478258330225151480765796949419155864641280018387393580912946627024386651605426654039758365913148619158416859821296449547964251295459856784011353311525468929107938411752527246419742175901956331559385719468134047080301112355722981688314955946744156188043105109503858006576349991234158574552971390082020468936176196186082985076244128193233368588651007882480299042963393706344231516878619917841859074278268212423100714836055554411659392160054131948587461534468193895439957887474898454507789959593690434783289799254333922992560525581445796512551781330958260682001557360331223219285639084711019266579765892584986902727223733984035007561570508030239961236206770306895662143464636060422377270198534362258418967706234716878641051595033956325118929390376408992160006283667970719166632276417512777126075294450401842817479660452039214814832879994503267769064227046943791845370271011019791961720397281269769198126033688986924404325963495071138934402378587020357890963914712241223314909947466519198189652041162604838776111498819965967221324619531396535613091540427746734034920187206859247848816075058939302584773242357275299561146528422838035647121202249963669830575985999195400441682870074411382487950276493766461185147339314384585185000138908863476465470916470411123978525231198542596416638413619702023617355051284943361874940676304024567615366154262842174622347235883968381317040684500402000444737920909145354454705463414252981804134896777311374251482317602433936534211054311737855187017611703418022964958206500142894989951454724310972784477961822981913865779301618284636750561887661260444759709104616082494287373548724639979707636773997759973952028197083467562814603983837350144496004400236541601977862160353389089314912425260140084925804115609018980935125491547954221919568512060176097380959773949936379528992819208919297685873660309529478419639769667067110214737626070720414352195897670075225391364426170526095773157201378076531871935614002119084784093092866283786027039318873045340376119981296987621245269976134606327883766761722911084550006978871637968782341478990888836805625934886385256882674617799612670105077758416646169751161002809061929622367243179288356408543709499469217067533491308830130192646876899859157160140141259862443752428028170608543393734153564146309003849616609083919882680917486930691508803343668374183135009208053428912481033186890599025264220045479147734509037938709968102547255447561731338956777165397453652483067106509249105574325253909648067661158350662929799751292134312271453034120029240256200961919431690806557375552540034093002589172248103918323930657013465888988834604674362045355924185067754637946755996471701514996671039987634961916299720731123826361605785816367767555172077262168928968450183658648316449746049520474221009958841265999546998901584338251559992877718936508452343517564478007796954366691263790952045609740999146090461754720629990045990186908138135514119291831462473391436722829484093336906088618291679679440773556409781350845997525707372504185129414517995767324634683774774225369182897464468406381686719901108670429413371480125168295440721070960796619502839973405056576419076094825889210225075491694331822964453694943143337461599671898359945235570218993462043667731284494541665248009759930478403480103716075992584995120305806892885559657379113935158504520965201963766588449891827372421070271127672963478318343675703159051443495448279526298752697793332717775006364527096542017701002217628777523417915378974534813785323999896403123804665025381773930882965504125668695188861396810200419924316121257231558404130561727872784450833196022890685902332467942297131476812022649453408196183047028142696485666954559835262141063447634697424299377615433416835645030732974340051407028343815893622168122094599206431992015389890205629983429905292823438313964178180543580605098724829847486845409842557375543625951522391164200003730472225045751058601088646207501276025732275393096998977793815393617234912632587480861443175979032964949938203119041635763005750352996191796291231501219959182848610837129777038189162032209394753195862683115759177807267893983234958596731613500852785005505005255045698593632114566155931905275332026623907501732232195217212869797655052842167017302102837545389456709812661604038473812173123363700210635240304396061704084266589181227457678715229904817407559159463948141436610255925464086030901071926739664634941640164068385303855263394583488616750817055036583179911861329373891345236480671687856779782174283016835337231294448323542388016926602234399562441412131355293899074681838871233333553803235750633821753701603022179509042022682475480516849078269672882817053917899544242520433590429177478000440780409526291559917538475803385909926958260170152186117708342739437073493027825295236972848595577789176366492733860531868978220643762298465546003728883220728577419198138362317453337454106266163162197421286971206317963792569991454011303552501339305411452006835254006671199170315403250079106591885706315787945863167949906076821417968019739925539769075658438028746991638235573986158258712749605518126185596747478583967324996265543547917299726530999989985950508368975006577688610946052214923505362860553725491102221167818725156884781684547028355440773793143635911774912715407283997614433285731387454346060586850805633959654484543984776811773554156517989571604440170712113973230839546470293320213863352398914912693919763371224587651112136622707456417211085560104013959384767155740765300408813404218121193540096363267267933509142779104623654859645450563756856617716412981664061221924596563355262479831866148562423648342986442602064634691815281651590057286105158849658371072988968524102725206145807644686021389214006636660596599748873464738071850678987698748197513370721646473730636939348705270688469633211175740663584759439047999741419108144036960594812465263721678529517454802083067738987296161747377409977707228913091585426547181839992407519673343193699950349976052640056039978772932704422082424727416608017696120977316495291974855316805111253472458700409787135588839632068493760958493610750667559343634516897116915032929468755327929450299731196268771248094198775557192338346810435436734906495298420285253560507901532790097192854885226938274794842540768303453122601029876882215078106079242402683421848690859888904511648947147957484886436980321221831482758409456206410400334761077010912522231847243474986905064416530102064973727655057534938045792805709853920609809917993113355488500884569547503702882101842212658694005836477097578860588108406685851358095231125203752590788030526374497321303311971573642028544707644786571288947716835440387900948974556605779501877695872856922371902264875862571751011080222441805689148264147264154818215140767262999628660787829294112559943260905943209683804204953523879622864230256898182752556107036481899190989241517338823688838847503090132554658069669228396660226119976691526291380729640285637403797027961311530925281730265010731142904503262596645408074977123836522818348865929608393413143742067638907861572837587902996301137597036962217712092914010364858146057722850364850812983269670344485299288628450787110677602274728874036768319015003609049994718207731380976207756642174895272385827777615372497540811682437286978780637300425299617067279516828657993630433373355723914787758237786269845026608012633331122500428109892546637928336986168306307678270719212469906683639076002800620207821097032595523695405227545147372801711387257822610565935974716000272579301048155612502857155778504770880929484786889636660736122852844571068303986778906552491798945259288068321279597068709424027127067014978319097207365999831744467481270230545229871326238386789894520011093081370190722553054197959581810318683084457108326273346483411302097445608262064096812968495288829075863051869722830776884341964818385791105103410136728904199875886530163583877772885175967834955947715370789118909659028515343705371087311565506670736011081163263489297921206643087914135088062604178880621088230079005684224694278827162043165531567335545671041456257225131395058967206403881312617191487401490847181108103303640351388268648605010774622167857534056886544721397283220062351304141255728796468941084630559044516898930481155221578807041122528806841409069539844644316245928310689957355379786791698181328756647043943034166623398262122270168112899645175228408001496632322391235822213182290781326636954385074720210354213196048179979902632902773515647527135819510486765506531752674035474195885452574780831417196939512987768244921646743170706132089077011218546130958815113213675260557624598799443655907256513762248948357060028940617358466982657383548027052260406986121277124621894231905058976800927016060280630271943511816818563575258334015367750955237345689240251503163325307653028710225256252961048116328068991008679289304887762607226881097430950712972557918643152999301971031388400707391639831468003952650497320667708247128003170305841850846390043735687454028037686237269444108270446551281334958069737777033428137282791613218059827956502735737342807038234164544611096266711950415830394030154121712560735694419163981046431703686624368932469691410390984266768504275463721129842330125952835884058433587351241785932537998949713312124488930139237710638082340377110202563123008867586744400588456395284669722125951413832710732413828015600761803626543537109563457488160366806502232024009656787303696103704102874975674923758211841966013757529051728303204681015503175534235448651548155072325705718421931247927717316986335897523160699011448402653509755973137385726664330511659339185753241628687998535627729003946698670964118535175065212184604836416306568744783118388563302816853579721139216891479598635110138253510015708838052669336435683323586463508588927415185381162298105577222542812682704771190819631338860393724510407480331707212335887698532585820295855798423754373452955856974129482988789774051209228587190020504393968226324891686819370709613659841345785768891765334501785022406551902628040881570887359632434757668605155582585035644053282357326910894423716941057131605900357632509693965925209834434364703180336915702847757049438364273972101043623806128559451424653395964116983407806158755833663146772685854753315335067776135969381550630473006728890186821048265498608916513255990379783313064424181102432030376596008450416736308450915011104949749149805591227754842408908628015409155371871260699397296356748661217775590804022177416510189521113152934812264903087640090647624055690721814611722574861192024135175644260275234346539143050593083859846687919491406247615636903151332002213719186120118575657094370095825111815707462100262015525917893108119425229562369119327223165684998472907143483197376258246600002824426468983681626322045876905593390722584698389516068221649788779873924634358134618929472079932965987628503927771527334334224664467483936848456942849851025072331305367227750209594211342784847823773403761723944070526879163108967840230485752736400807338847231071537854616846210413422429675027277719922093524386101999708884166528494631098935121668850434248457209997062924206460684250791015617716167186609456099814679465422282743134884140242620132098701569904989408119796635308979402237731589778335731098018946027186617837182977865513409117960344626236034863370668856153233122101878296843093168585293741837316967000567443373613158963432640929059999686204056442728281676135262202948413344484903433629420314939015672581908821367959373573180153623503490188223368418650094207192109054639068923489213707259183000849925686092056598597636624057667114785259475383630285640291390335642824699575533183646536663739432685782333332266336736321053297476463333040595834616210241095878908442697630482539725547265106554890733535859087592062438473915564557676387474203357392629088672211154309638640188050457082099103351032092189656140538877796478615925781828080378911632860843801810355544310452842975111036789132694827295399006299004719439864459723751213745044231895031241193040620571705972912870517975264939900157064505725960462650186710717499165568946481117876543576041359297759719469974886276644095299350460468814394798154060026951395893200136767096705377736995830903321307478487538451323275329072975199979608380138713520846324419277002561247107683440597401942468311937485112398523912549499762699391677461356925627107276889709231274456218884782403669667815477922977811610915079079098113024623291741099116860815822983769855475094702113632106791215878105966217225053561378311195560572025017847059136118740773200710944978774843621846972827606353142843217597857689345035342559998321585644567739547607248062210948869545444718211556982395794127213003986940416548508203037312480067574116462602332852768227863973657707262977521721158569126151293831089350115480195370577658311987140272188534265277275941184054508405448552352111211324925722027844477701381448892223574869799783724863136825657841436623521748335287851012175877284725487440027642011493308655213430088851877658817310869986593214185521377835938218950570050020562207909061711336519594595000426575760050710168794393936558057450437398099640599408040813582470506249887892133433880028956563483827464601287407587598419167913988873767993912169563878848149310425668942422451576713357345914009992324140008816743963582197849495927028916128551446255315620732305571483584098796600576799384733187140474994555356755954401293809162118922359517753213351957408111073025535398737609879938541522598123001281262847586737201257059512630874381958608071717585225278430401412002255084470538805758467139909323134682780373243725984601651796600338304269779283908302083802544346136602665026179881050771976945506483467615847569673163076951713588016643969724261913145309093416783041857141227267260374941105839783351039824608341168729375231035482218056144925932572598920666558100835438560894031509636656631199221145045380617628033186199518121537353127106725181924932083130577107297499913364392269830246426175119087914419944893573331861730838128937085398032914726112326367291785843551717135029452385332678166160656599827117133069682197147747110345897174297726176205985121925134927987221112200373428132119656013285114562845461898269507007761040441103758216064797960620033548639627816939852169178319593991186738632055703527203362892953081636695960995535610183689024801634387170384244806109226478867012196710906728042580227639829745604317555737234511255091501082969835268630593051878304223709831005618525211756368376472545378312052791262812429895683658933197221290792778762606935046030431524569344936882277003883424374162413431969190121136321291953985176992636318029779271235794338979714413588640777984549384941348771460551947555514360664686150482690327592043904273808473444745571923415186937912730504808629707253160666796823985357397990116475627680053689649534327890729746252477168838760419878535582460281974671539978178514990705593832475480582952760106351948920336923197956784394906232988604240975348525314401108929911287566711533575378127960787229937184126265957035364030376989866105383597564011535050440440369600387888735223459940176329291582210786227265373502298857401851882586886997587535919176516566922808802868419878164501574945392489617812520515197013853259842870841750784157879899677521033754401522481441917302938304524616273368587839509301170715634057429340313837010714272600029790663819806231450873482158343657798164242488224924265974402915113092398773850041380361858792973364928187565739031668324855777963843811470424180845076111676771655620456195415390407736177653112307839045095087613617306065778955883477154048357363691108997558059627428243036380151421134024293747329166691704796243053977766161786226727798924354478489091443219401421881716031793113489045231843573305307662850843996007461496809273293142530121785836103389122360993873883072410650206117945165983263242259924422228468443859321226706648280357625196814856033909717274446141627169529002423152701188503202593383648628656404593655408806556525756392115766051725054088760704776058253454748463522016470852525142244026235014158842507677124083893945610113145961769303336968001112677902246730668422552202934870857538481961718983046176182226463343423345172520733924901914438799617743187018488081492833878291880770671967225457672275677452166876602387828879937819281882961510253009888915274019330333584903701135567447513145366080617373107812415965552362522451167198999949838044830750786406294776791723932651879501190820710069286810186991514547161270366912025860457316821176914545309379358480848686479768557861770492414497975303663147437570834458325425668541780063154561056909442755403791551178555289006697238353042738316647315384362532195839048156831443297510783102431212843648862548663370493389419651263070583072171819005183038143042854046816943915836807956201218069300648735752207584426215344868336480275138227916377637992159080109447887854862162224145384866696678267193473639614323103538610514654690934277616873768185351221470014410343555658565135561424241955806741862194536842041881948620323956056629725058391041236290619410565008903890165478499730272826149176915099838021940438436384190090311177987429716181873703328546649826642413901223222385176015099452914465072860289396967505315928266115766084578428762883202479781112268278357520917169755200894361531154365808056623821497084434486842414279631661822604100232178659271931144925219222063040754290117812017648124966942689747146143321971757161529895156974906832874416627588146038634530637768311068407555119704006209381706763026110161840510174374493160878729247665732579244372166078603590649993469378747658007041262751973802209473488236320463665329168001992756801652002755899180884164843912302513097989232979675921048076493402766437093507125269922928360531636946753042852147483718270226722595399917438537960344240108297583518469139248576123448905011221983546910638739867120020403994455389210343941476298489022501122995216415232839044696358936150749221955581086431872665667302036543278434668519620930590180102008293489434988592731120553804398137550840492525289707610896725480163920992707699053739099314880974867502858945900943893564473922094586171767751447635150361893216517995314888972718033662862519513768499732461368685336081751894739018691463279573502082120698418876841824085914736467015423938931776057417950134481590242223034291951283408569598892391474399497554250900967567958845993854029056638622597527912066973998467760305757769447529191664664341861637235142834585311701940249442251562068086641505447424981915315742585328248805926099144020417376171078553615150931607704538233884302666065399098861908372107231333723464717222546881111842728024366401898875028007326385951260931642699464992256097523866958559523669313834984151832976629823091010276180711663850795818904867427945994178357723670777666133639047120748234901502872867225443106902653370823535998247076578310240347030881868912480104650343487180883686028740900941799824268426135729545444888976421741701959964109136025460948476783677431115485294474595616680043438738592989521523399455092528678541777210039688173205705289416614422499392170914911245173400346669618276058912044489452210444353680705432708602806789963218663049072323733656940715573430592735937447062688816498372028848056460748066531622031419373968661389706904586979269476806115302729086257151438701307184997602389539585856395541726745318328454328883938955866462608670375992301158467084946600322412413143704440143598740583411095680795217141207397557181457416665058343000852308605235634877127371636465216418652670519576899797708432659302143499229602138238813444987855449902975787915812875868088427552544222310611400308702313713599948370128623383267342693785420755386690283154120549244513124594192535439669743728125577539208998476613251278784883138797337646511216903701903102209392991370300841944565045286124742575895338715756136319103216127901300913821089619075550356124182338593621161541455008107292410755050050665982231479049630921817579768084315382995452009299783699177561679039655073360134520624619319886384940710144868229392175880220699191186859577422261015192779651274014109998627860741041894702852021358275496347662969796520531979661180009304590627258512824659502500311153662662734037945784794707886632401468271265700065117996277035006280336974030477225230816111786230503432933075198783418255181111130949795478812909076076947450315857523253415960638058271703704233911631910136549901320860708033935465594298895535849223836414537076490797989642304398998654202811793187014932580103717407892810679386937533226940703686563404907395146321024780254255554522067041317695373783789975391190912317968025402518242051429511805693236430744070977646641916781619189655751588678633220781123953954961098669043975047842215417459091326492182776906439190623757668488622723528881774231772174816595896050069412180811633389717664020911155752749786964815814287328570910196638027625106962830691846789228496360417138226078236626083749222976921016425537723292880421338043667326801200027422124850580127679952793751248385283639806996621821834903948037777327560813254100195404416192854647442783847002719256099808455619895007257439211628421014522351221431031983297537753072803701662725340465323245931770833940957398841515149895578719154576061849969355492246109751091231684674694554374258980450687989628968106460177276222783527567813108088705190978139304091349953709423555319770336693057894517654152388488556690020566708025578163694893134394486124476945942863169884943932354809891041404272559516783677901331957612883436844171135399205201650200967384970027801556206296258573152742538535770403304813085218028009086975023695685144601696335936560474713520944096380861170716465034625793252336640683026822236988757816083484815172615384723281513500119042081321065538900427196970756113488045756995762348819383971461172427974115308447433936941248918122459099533529553994973202060989186160603004065318961307285460447080793386632372231049847485162765648987167369156134479866429153633236140683501795560352080177841849115165510188591568582352382482726331709881793518206861500165683734056970945451964257625119073972022295976527049594312241420787003774765688895152300040223026280534081722635448483094393404443756338598667394617324076154489685773252758661108676841645213731219872974077857851083437847303074553609094400997191727803801530643673741120456491789141248714732871885537147244917646760976489318447907660709232688843656318009232326242039045461952184294380179854195244385530124464948282326218161903584274449227594239276410822414172879032728751287216579712344039336036162138421547733166409656326942660012415224120040593222685590432836752823792309431023676494182723626604695935439788223573812886609578008299584135750259272770979359440204649556169702321310651089543026241386366915042696951743463661138594251205532850390683185335806419223216202346574263778801298846506637049677234006733631039470244042556709831772158109436120883309209483328656070844543087174950809008373157584681433120869684162267055690323884621415900666227092713755467667387739890718260011502394171598165010468512262442101595791461201334983715515794449101910164022563137979901288506166891370901416686138596832678582225988094902186879336020844323176232963129273913118865067890511785687325320141389186925310441506824333853316422292048521880119013220272545999901163588054591267509953195153752143400203119347271739763455666457973906059057555247820781758793017649254559544492378008756817195998019548440241052951068997978201552830356849238934038267090361886604413579414319654291371773938604344682374011602078719208117604705487950689321755387833520705110656790781704734195124875744688044074041711144710418124521656187250981792097196749843357562485624557158526618869162738667042017295577313487993955731101685151378554448296794897669416870874789674643890800380611863029094100861276645572208269287511894248992101931716093168025668908432391098957861221228450436745721240062661924587041326865998014733843197741364256482285090799134854162079574023072416247906355854415065817984924706928760766176520529229851124994375483665074840940436722955948397523265358888575611012007548093340380191911576946821510969991765221851559526294899772979667669034366616009003842425694664905191013737810288775387647238813906911093725213330207961944317000896899970123419779573735228602711436461759511339599010317125940070219935491314125117653381308307584005048260044538604838069813104665407067153350199514613908787137199271838354880867936552647112504938006217027052313354586705002349757185633632776213055989764477967119673400415962299278037653935092802073834215440502199732902688114929689105739633115673681218316323898251452191526771322404079930213364415570940277910682188255162564501544593243171819684273406142213232739725848507181471118536889964470857305581847347373578854429369298356603540682442344904879801108265661571381323815640955675146131232398568513123624974365852366913605090560080012491426209134809803597955513796294026990669227688702383713534943947577533502857627008121883038934476596995734000515801842641613989080754104054512920651113954637568023245417762145377714378425568793463022886379935293439057507642145357769735701128646468757821387713081444143527958600578227637513131334346737702166318842258716184773604003047669328587232060065205948121082200646434451479491700965296651783342928235041469632234814027273525182936735300758761052487589593690039506845735524620775797305660825126022681066304443829552821260558682669574262659136760929996835943812533534504671664657443056744226135897019671304789127458982656326525073870553613916645875213925997271098672993739009048865660431576243396264434755503871813791454371210295743620713199866967730255337291669295578199588971884207013295553392161699159799417550636887894629242503194400252378161444340522120703825286115640488539605283368033660371411526299259933984629460945120372196108164567410362342841624248267108340011406911653173946887092714969420495752198425078299018785851955235495708708747214368419972317871922006850068307197776322722966954542197352008021142847074428589222233724936318651036323246715357998370356700171013682865444629587612749776722132053942103969904698728867082376725317317272987411200608676315261610874769919536735491882310878205960155073693427879834847744080024253111789680735201051160215097589182173074427944494844987309405016738034468356270694462346068420317051699383058739613930015602579011354104920214967076788266370572594136709286105790045453704093907603995590784532899653132680605432872415461139684805427557012224899232082412498019050500427256008745892337882238296634804679827746199287671999295909247028044924413958294526434882310445473511307007485666873511762927487777473630148711256464293432710593344098538846419068205388188847387054315943150568405159837741574128237016529844782456259992707459424896379698765764091104215960013685908332409293187155060612238693695321899000844987171845533367973533485258417027737460835289366645883240989471044385805434375248272587763959084131240776584888910024490287727486133860728500101166038899279161686064704814911035921548134684266032811424368963125606408679481220297294184289448219881381386195704113112767462385259389283535460060521933576204421567584442400499394564244576457339868828504263025718957154398505086525152812080547999739523360363861426264855518386713214066791168785081435478654205300380372133314150752750951998797364905658683668117386857479165985499912803169096707728338953951880499278035382244734842376803075246883221459013994059753952903296291285495073561150299228190477866588148117561968065740973810888841499747361180429324638019269377708157777468625911199108005683464627095332486566912844086060923902714317147324795858498783169583286380415175443876852272506233228938517518123181487347853508160258189673056043666090465804272400312780985259483571374929381067896517663193547938237882708811955684631629379726854378457237417273675813395065209450634643135001258012388656003240854549401656539183482077685116863693815448287599681202644775135287487738663940225511551835080722735829490065449707000933702244259622911579934318116333479175132730660698801338827511728359587626315271021965791823740108007703342172140234576247530151732061149795482565433507560591781234328730687705222746863316612119284207244156604637972461285979430146319675923133879681788236987699882116269130385719380531811161644135642693984236496681891701053960035195539592491270502275936393095406041970314975994092381389943265900499173519748979299279033061944685803826032706244599350222440895629026785186868339291226517744935561225875660824624925473320788319553128187915116057004216105311830964398153999526213777504347880159336310390177424412224634749681131416043997392301785412073904770089568001154690177591488175221269562041804343150577786015134808396395449061307811796348825164537139729453468505168417275061588071024503395915288385843207146031665432692041247438922429626600647235140565651252538101893453677755145865081612228996311910683804518367492238230942957622694917380654722150661704741827017133092086798325260573080214011937174967924856004171438637124289745694919447326006365140496606482145143908629332953593715916536731748786991403350584003712574268138183488819541857680651904123029395380232447986235456408709573294464450902021451751063224117356299659844071862969495076492194385894475541141692432138442604504065463242588124873121415779496634999145732770770953578246051173881587835773935605418330198767572013395592324435787406315153734553766738788898654662286926834419724487140430721058976126438052107232122223405646250331082186525908805773339337303110390309474545134360979228298513553356458550930534209332387479182012890918472267046024397342451806954145384865027881269955822273961354266118476081224745177482637234067238069117898714169400542010410116149815504702434145518389055886394106599812252534295695788568260712375678827131410379230763065978192290126577187696617957211220418082576339568416419257214320049031906468944123832949575150735482302200930651946324894391407833809162714638071221998206705920600096251060723323112627674532680556552719491127803496863868037535088062992701741841015185997936695797256972276031687345367999414062148920136582014917842454865351213133784900077033067432140367098062427852987336559308794886405214711076154661779138209348278816521263588183652006111432219747782830115552326076150154438639930653600051447222976052816362333006270350553047709221396019601543987635789241420845956478445365911243390481094748682289075704237454397265186857402054681551341922685154398630898294206429624647326777404199450171766546904008549533068560393869323213629862495077474217518878657411076304977498679078689507466665374942022964325964492783605998656685733155085634409767323411138422681902923872310731003002465904605090537449832840738182592027534974016622269801363674911829009094306245960488995937239482618536522378115168631247481117041249135746846848354188891916670756257464451660013002868029057581257165031345350262768090850700424125737646938772598027581856599837337920065360069731099367131315040709889524895782007355059601807522981035824913795307800855028572236506095850074273754700381077185008457546605502470176919086599889906073703288461660933555505590473038890885762668134533017192909343768419895798338589982840228818784063522375258509793409913348903718330440670954849330559566376932097637298945978373294019650299343576586477296153736850001651201674761511132690332533445291148995296803029964351816985830405810158558010628429244888335620321396255066140685491587567055660676902025849770994875702278477825486776281363405606979271116049578347297307147240456952506058224128190715906526321537980756946152726878183557734828070988963215404577760311525389368327474765602673912314628160228777878442549540818504055672502295463538858709711043072219994285938418087954360644175657840372096321722772400797527909118084176989125912136610466533172839375169226169205119343954164900114802001003485890252882455482816855610041014440777009759598693398033375840010526374873065548106660314658038655848234749942583490153878841307978021529067445172474098663130593207232064657155612732508218076924349413344548969341499664781260880022858680526865365186003885570311198715458467725145305843011053195104672949200993534154518413619608769940111044001832286020979777927978701399798276077289234966851839171964168706695264713585487929642314959155617390628349992378518651014160037301171919991662669508834839498043578576083200646651171289392447856908905869390939107279375019158695961053010102577938863732344143933270684641864737517903392354102293919029246748458734332665029584219558880490420859456604180992204957908660585709551253086187166510922896265780771864199450697125354299182716904554654817157974004182543083883522013609260298423142985259119557668868191325359299860131413766231166474861027673391106581597410084081043880420492939106608754584127572205974250346407379638065339991242517510687056497552713664483213782906713079464038125061132818639756724212665130399802334132033521554688375640907339553262825210143822400177174195657904256485048906940076191661999805688817968683866075804639352741293272356907733374401178536123992723967619590403807843606177368127211154698700233213328048042456990024348487597861721516291163058717345011701341742854100323213910471742567998640606375657424798220299446366076471412826823875987415276480354176569523047292018742943908039239380821367037759313894477920539885346564412344675563268601165587277098657447866498442547756498515037856968010617763094469836663827073778196398701051002321219753199290071009500992969870887978326817043416243770794414223170611814453062900331122438831456004143412710909261734087206823151837909374939173508153449185700146792981738295785311667555340674846489862333964338564179167404753813033911384188772497131677705635618625643580441140952004514307532196162182274182637957876566296938365423431481746939421942607860318451387567067943059139028269121733270715830335047972271066341983885240106074043164440311637339849127961297283338689534401325306843828045754735671474424160129961879849180128285331580064864061782952317059415027890403307427333558809136091245394960464403870966431735381706196325557491051505845613492832768702046434989080314402743003384564202353607254579397934349781792342828358009651163109127963265184509936066138039149333752394766335258211094771056510087939844198614465288656344604451104117227902336093691666773277146393761336084772439579929534227441151537719314279198894275092437347676596305397676272897270816148726914167983808107721469497529032155441977947886708755497163180503462952520309878105481419214993684997484016570377300670556168286887733020151022565500078444662096893531716348604242522986326020074122757152096373954925446508782999290705899854710799662653907343852968302075430843022377584600416781992343438765599983666936426393821585902265072675207023511623234760653037551691325062189215992000702367854717209032316863770176945467236721002639784075772441067049074233027890846448758121627724813388721062229895204276963533297894812656795959534263069424139249931663079871816932572466900817204930303748283904885959363457900366791477546102009063818608086518191944712409050983246609754213111471395247760689458080155453319341465809111517214085705865846266919199685888175013813365888432443681392363622747899900148479875726143387058749088374909813139120615028077542674999331473625993554544366503499237135675990334401715139245643014775910052518643136772259114458068231075679010770768883895219287561625076092780768586833912782503149697133256647729967020663715351805498763363549022490419576304018847001635014605595686311455228834087436746273273093731771430327283959604445547503671782384824485215104308058482872274609637618608348591080889875270543338140080037240246194304953101461037554531718288188605294851791231711018693490585244881075165701885088075228075442518702886261146215733506430703317455454968631814632770795419262938974788566682400461463546219883731909224979193941965607119065442774883861994309069574606488382544277145012364240171451812212604632464237607961184068426792384805244863809311116376213361630326724275514227602494150755258417443065504912645258632538743612452806739211928560031072295927802847813829684506089958588779672682971100137318129266145500285366960714203080993664811066213855073445418026705174776746733840958373609531682371475529684780421371256288835172802461111133629706684962184507872242895021629633999547112772645516847698871812891393951274463607339798073512262527382557191067092643200002027416263149841366842260558218668368661188602605731007297785271868737622758161674066013330495895674334035034658509880759992033019171712914769005252525496781151996853445124984684958845944610798854687606005887617295802593673263431538657763250885732643691946911492354462872323219751050365756942775297066383948891978285768964232544930883529123123558186433270746701714864258484916851294805908171220423863186604864062484752780084427081553693969399779987552431225625008753354333011901555914241601709958193832420924256550010692664943620518520305837402225846644205432051321056899448399783772806313906267157356831317773379493780946474774067442069829661994145653368767477716687608180880689805667159827866608477147137547066831225644671552544419433520138754708227725530911353599477558574567885415676895121949151256490334077794091014438969934391341383786891508189820765860313012402077386213200916575238515100498859971088579018103128368664612144585271939567126158410818105483532602117637774970760366289373174715573281549558588576109608376527604240165664083471663740701610871043746250242266978365126718147739474709429480132642052275209032515338478153054349094059796475366669435661225484771659215926008083678627097566141915066671871331706379873853298547303027524766906653989255660240749635249380137729763719239970890484717928283494088195008157430954917061810777160337885219080468715674892622116233818054602526771790113397516842580730973156930709942284612629317803261256912741328846850598746670864834085035084700525326056069948149725960248282069367086359643790451511781656682268550960084428424644999390803166317633502522289527481807875091217816334399310597916824026011305068076364428597195154640776057076984956233011722111621406154679264292418340735190872053164341573220484150830368662919595937400314504440808434856233884412529294892736471861870175031907200800410341694681939803027524116575440514654727397079952574297026707390158619197040549611038515419513590246158599596302584978984015521022812306749906049819675089194193896628569763367862212578665129136145238940982944504239938941010388976789929954775358328066380554037365894861591010777833992676165958127605863145737585396368415762434480558927036567693319090773758569454206516869688165615220763999584591088590028765031545262623653064460836129877606860096614967699433044955099310339076278761421267865320179676863152358110810376072296260555350292998517140247843234328250803855887936304943475855319166245189857262125756634107652201044161426594912690052614333076821211177849795127755949527450767240691128271337295191903856540039643668367707678984756795000544289433426757005491724846101786481905830970897862626263549710370986053764532468158273733181906524276304102438633459167034591770242269729242263735971243571995477078102455998325806722999501290883045717916185955886227002858592629206459200527497353979440019732028261989582226891838217666483215763253323650257523845245605720233782263904570138482891473178176289980278647396630390832879138925382996066515461277293548229716907278971740664619865572385869794033578244146064343552761726537448270188835007334269792825185078512298874600246495966794816831935579619567972405117417267762198004956600537338179289368156470146939832606309306105789278778998471994757101909408127661389880375058461341718133539396131126100214783952202918287827127825716079673004511690245777033424228507493644973348915328695449152119403961924626684719549575049972548935079637439156871964249696235678676412021815244050209277349587393834871134904986670099986873648102743346475459500358002228467004716891582301920510314896216609310303048950318110989118517596563555925644370753639706885796263227916018284703883183937183627743574716031053487386670846719539500963584574605507421626464794231106157728811534008644417464143906898092019431605278456395642568422870033082901703326864831062153770836888655430854418217715587616218104531149218433274478397262044794920006069100154765217499817036129919944628678379033808351158222596690582449503334357234133828535634149271540748179913931215526428144728310237212134220151376881257108863131803225511853090869214069082432319920391413909884358870496323301897166339872056081780877469680106392148410434087245440177421468320555157219540161453065513088334512656467501401300969317350195913047893616913095130958499427208358382726448104449224640643432105529690252667235065141267007817997042144619095280183040627429271475828601903321931564550130834166210719001020530125574340846757947339755326591677497987120288028619302127360174070212577199987491926916857724286842624648716012117669062420146788077624312955625535321036797639808018405416627517321035458400083425468842252145323152736839066650748447242186608679114630768826946115999315913143955668191465054556658987977644613361751916150817522795940882884373634941057080676362195451761199539233040627835120964082783435739097134416757066185374283567844415510909466356393829980072161553439890024752992353654521200043040812258347168983619423157463661623692446420795942564176629131157502688109460043183357848514854414060001869403185459927511660868242960299058043516153411073023698603647902493276335134881067208976015134927158348563225023396229030381303613793148562148748058927731188019247609220380958532258886824929913907085162755452420799354611747762589688352708080213192847235659246693760799873017195185481516318689427638094736537104089937767714284672679759713267286710335135855175765846182488751200101162141321139546713263611910502931588222023315654425404344458391434345546229056823729345998309386095551495972818560325647937119053748395877565835663074502172631159395132028088846652561177813181289029415355932288005918211930138129984173196110245968923215184779246391080146276722539641430273555218953788123026611789385715057100891173352152896638979165228077578935108332902604586960855003519474869440224051632344730742538233102991105364818294678082159013041645156176100674666082280628548395188549812336439682497606221953569078561478745904380356933004799315897786342362731141876323051016942165332353991734336606836862892213360878373963856359805412166492209299901089582234901682609494166706625827356493984231775103954327325403978741786348187872861353450221745153216352524144666120132685478506722772681319796518367587808618446448194367628772244725619818913078160507530634224614196175730223199379123875335485377689966221049616127161989336291913636313674435250175067162662874551055756704645219897135665199146460535753975816924844802026880571575246373094124574702354436171237407557874142578838357046620036224415695663593109467532523813325803327467472206916070845577431303063291650463210950037036913161891678046909149746197663979313114052871188325830487543611705910055032067228540221908426003674392062301371117530159841644871511395645418112254735958608750499521338566515716648682934758296464069436569049974926476809122298694828030904406177543803547817101017291987011306174186213053576469179514419587938110327326329091177061434401301327177594574171889049407186372872764419733088660971783885708388893158937158830352137493748628258215930800348551318596096022055304394426860650634012344814141766072717291342536372360202713756493266064933070424734980079131347673110752822724850604767504497285877569609496978572980776918235113347627473294136997616799664359025383826944260039647644104449620424903200686850636670715387855010117679334284328180018653934544539841515936465125464924987012267953445763356448740497961312173183572763721088412854717457006538168476345584788814686511890224984918604591691364546897812868582628587160825044393555265040383950684832149225846830623699304959346347725746216732161353944707418045153352059061560636715804413256422293125683595338239108249252193360950671620536599282059612501582675437201382399842458496700992087007113306048527695142310473479143485911386177048227912234649581956769343967311425778347630490098015825533274647457148228080497063753053785136713464188658372024019556299500509105511145583591474571417716601691005865142294512575254687430221567464812013583007068884447955473760691312158461802089696757177109414651576194274211321691727203642714080555943701176787565730750208429955783406171224099581448457201837938859889235092849002106810159706840269722755417437764612944594719592858951177908193429369792882013270746816397955645079304389537853973689911057884698484201602604577698953766625901703236723100520055491336577264429371700613857360828149208027145888961283122378135547296292450052780391001588393870839621026770217227768972403972373062013103919741078517392798356021677201650930288297820675717622763946917066741225014284868131555918233370870555102348166395378364157811628635510320545439448489024368467498816088978224471328014399540140249229208830360502001013965609478696008095685836392911029834283214485243807925915698374720758791341429292610018111113680804760342396492104525996692249674827256347935568047674969686133673453427406234141127562314208284650677423753358184545772127072972118706859699708985590434901003086281162258573954642938233271213092750866858259900229397895247635329146299523351234467417482071691401933556462146905580892169396615579615758244238466123290481202228282197304993683403348231172256011454716558927871259683018395058032462296853168894167934171213672271392491969465483162033727259850197709965274412546195833671948463392908959414520159456281031061595981897165021284847696330319489233817629584442394191440205550112568115014147956235120080981308031051380930172611375871780150538687911657902755543676958612959719248173421809582235854273915368253286773650513736321555375748843867434178159322968761763977328972862346338885540973134744113577175863828419141439579122048092009943847080180001386014813692411274736434329398225083466577192263507272699521916770596286673308891347870462418228175587308957672495477652857798528064399228210430769958120880398158108942225267744790554097324366695677376582825414029682051900669156387402812346805642244561745001062922062860042908860192021905806375721813049968373909693422405400152354677220682220505741403850606673451334841569635192799227441556654568200172598780626305199033670448050803460113638602126946819421093912609833029751000304192175111874297179191138082678996801931592589651462559801228357051758494321922934476385141516889792350321941289345313385673396135924703025265364483030265710912346266395724501633557783405281308505438522266258024943231155061904697235607377160009743129241211262702217782177742884278702221922077917863626368901537644012900089069214241690478288755752385455733269175920053704763942131935815955888377251081080668246429334720202716532898371022794778417041011662689914176876414010272929473975079943997647559552169474487014669201128177847857089404584908067309335187672023684248187696640315496923393712573484589525434810495206875811729919956421476490139849033944620344900039837421738909722797177776359746063232118839051113881693546177927419868578985360492648648559708389259913486515042745384289766255661822816700011675984510043317328460730203519818392953468316686214670206985713812668003896852342591954677309402913232458829147310967308028422108702991325277783510825807441216637399012404638366576284169305276380261157731098363270162641874313668794948553561161329827994573292262007119720399976313566096173710245941048732259522781669287950661448710202545169898171413504601471320689988030260454626731677542456755704754176198659005238785108026432404619332016453903767115880543891003040945096135001743321277480409229692675319748250165367395850505216923332589166137578139266869737025690163776489994778518619050544598605347705224375984434233510792479113334161182002555225892625790783698840871156369432764218814683481749437879082869648714216571630296574834724201674594817795247906324437579483430771520772680075372491544993146895394985047362465073801583877914296299606634019037618309850485969898255610516892345566975241311578388837156341013533804709725788699798981025832707508737958054234795554242069001129989143825442383272040919869785651075694920142098799229810218701443252352925408823346036664852903558174362783971146314694482085637778842230856178266687620193780326302072738369892629486175760768032350605593126006933357469145920536583985261953934532337746448791178942339682204272946766303889139595285330067342969886144441038113192375927303219802993847467586519791745213941223250163448496028633947529096381946056433464183475497153736910533706575823554818085484867679005664822447734239269284633604503341135188980398369508540841515521700380866156034623825954744510930539930678495234173822245930934934771435591567478355016121269591446909310976461883087793191201962403840075154668891715118714282065934921115377300343469481621686769499771004293476475187089482208421513201061253945860652947916239258342963404807266137504057506888034415738027669142861905967916290429303934663183572940665118009448204274848925788243283895100348037701957437988551848836317697483366596116636038097642757758373622762528369529707981670056303968044467637663986685014841084257911206713394907574678465217956523546249923501807174834783842221723809639421508047275476373585392364086032952091739567595187364896352004219457150579233092889509924838270037213967997566027097393644297835440997594342239265176865694034265481587436338763139667445613376289462377144127362791660814260943251322069618292216677640301872516649323591355731003245755479277616059193263260539165119272960739568322603706142632224047733874055295031647810226607157525611572569939748739636785628806871040004682214921560817508686621060915742840268215289509338721796981479330627831918991391221553085819671522444787336239183651356117544994390433694567019907932351517422644852425974084556653629596478211175011003722973216919458149249632028800543126269510589232467915988664401032705540757775965415932340814901276827192023158067436615391777125315223569884425146278597366819313215877183521325284223070690988150376069635158036936753186642281120125563053624077870079134163091070971208849974573830374953995744462479981144177698915536300938528356299181913693264539280538241508333745477339524048143176333424803422678630342471589193574870701582412428792695610912372717763292035685632788787338797224785881804154960598718724492054854656913385516954495153779100755655302146827297201708588245275335729011262878347568709979633890253084011662268108230072862990646154050203625528953286776596864492869994887108604439292298732815851992920945307529901721129067336074564252521890188774291239364029838535844032532149593988590999415201972687469173689582056168760677459088816489932450380820305752409744316164305626673184106358074440493790958476249519010542752143527611013759342805502767892077414795545043395304864009169834289047366750685534556878972023595348055191210371604954365781783572219018770823593746228242510210250349729889226820952189866161282002786432968829998596431798598571267589887919740238034058047384149328043784998129115326069053243933546743923452321944135567754720500501234394722243299203853033476949840327267836623070226584933056079564789318877753434786101085204676997627259006724378653615946473061795582980559003405000626790506875294939252070216479170184347378514277866959411836181201431623747687670545447466581103944628161416676089329652593875273151267636055819658888298556847768899301005717947424275493720977648944903215003982037290775524178599633364954448070370206077331607401992117869648858954008970015379142918120604424963421116866017670296264107713824570648125004337848284252593638669892557709481980285176959390398538847992236758335533951279074379714093756296939753259184496252561834900695120824820222861014102959763417873324784128035300005259383876976767317353800963090378233081367940953986555639815319746747565757585224417453353810420607245103819293784271174292505977749110208183363665362490822723661973976400265024809408545191182391198383879473924769935248045152730535292328196209904439164022731549070771705153002136419281954482013069951056042709618516358322609036900473688823884673259350758213230593724788119672396021524658255581825547284605755134692256453031798251980937830525311561668698650021125051947790095470287332395044864118581961959149158388947354008678269314200116432115702435366315043541346649961829222215294682491282234997626069446380642177312153994000027535901507696873627824909112111085776986060263909594664929592064316967064947986009079237454090917163297601172231765450481815280436952645391201826606024365512300535405884513862381956425228081608710871971138842697642623870219266050334217011159036729839313139785234971600023134170583265243427641210492425844047135022518251379515382366090324487133834497764821176516402557150721705506905775058843179167793640484996255305690340043085636806304067121426951881705677995002073656260785440352471887210451373186299267993348926963505676987584319925307313350657330164679396191365356286144111774636808067951785891658163049078657423310082391815611038047365984238610550886929421299082613318265021222065556125178231771236041129230063130177241934793226231738233193546820834989332738359739490166448834539437023625199532810128729621957249788413588056637688948085883566490848412179337834304450091377207079072495195784125642965923405632987987723398630299654247908871569542107054701134755774147959777000234441599338243809857243230511620478381666760404096267690021047406614834477606060581167333630686582876911547484632650883786338314197069524879319027280364527321039710614914584815505911111103273726848570066750043295572940746912624046464767496446484037439527315824715798353831825392019934512908429105376822017459346399790200568809011694515552274316454296151326358801923779432504896953813192475082181233709812627121210928312222786009725083555429942269766581747447263076773407725559722618374019775882573275777007253833241316394997622294651291287875305379066242926952992340150617699276247478303010080786469651061241001419054395162298556448639849834577685436326108870934173376266850933449330163381564062664739268283882747882607213823366787282387838810085306704276018085845454287667202099500849371677401887771486515180398740317310470451125524033256714368143102065024889307683354210976046886032288832908615395410909049623082915654365089479304852150588172859263458181479578842698148983675079775412016668799995320929831812299697098848728852253684486339218348716305834344334146033992387512754354736816759638539819154281299623255253948395637610498822397273431554955081354049438221572734202967986129868599248402861618778658974708981733641104048755644201845722304310570281108670403958262130579284648968131659303281390376610525808742060204034512620971779739794773045558191521694970015371784545777944616755379946383534917283280202058689042682139336366882960362125402178257338910796294223382442762036278923769798683042143239772040439175727090420456605443778883694121516088311785442495096795353634009587730284348444009657679336064059600888518767387858796245241917720226530081610735779229773850674507307214011630629699824572265131095479053868560183388453075782210432950979910681892317673885657539895971405056815411661782084955070959051445767334985061069652856616762717717087404870468278185182282467517512911849383087338734238749991229785001570941347700097646653614654094442211394130841235601679187010250569176820589988047545686226287711809272894706888213364063599732082511767050530485577445845236688416195534278870241515951675003731530799108487331207288041119913969159952173397728441869715765871764539396814309433203263881741287968621660026816361310138075571193820666595680296734363177516998336105599076336992107663583594574764617522201633904029522840732414788987693526422397527245804648445497608238328226829855825492867436476781003479826341842898260729161556546648325503672070366378083996121903225668727315666916738294197107984803315110404383737858181464578665222463770400925750444389938323639640900188033455573418669285311946004343790800798854091270748846052855948215125401788359204407372975254559249541340923238938139613852638401627391911763104139535599462980152064561411062319005243988212626168910446141326541453958458749356600795618822396620473900053910464047469333155674526181660772878967732416512973506227242331569041931333208879585823392820907119232857765759750505533427446176115167253607506658684360166127621385275638275382008210386063481613308063550973883960961478603888719305668756268253072611981082610527673649524849122922098333024395243505911058653462140436185014036755721962963584529632329034855705743999748874632936541578417322897860865411632394706986074309908262697571598676640670411327459896334183142466968973738728158649352659396661756439023609488558504911803620815175154842445531667448222336082375588184218855454644138936849378660364946606036815558952274179804311227541251814847820008074264880497607902907224498093162080577181293425088867075089469205370751360149158811319930653182618898097672102623812697075945573789221052651625780160084123081773757702265980218264370278360687191746423028962643284396821737515882027639736923262057397587386916911806476942176828445715158391460169886113540955135418608606654251946457806527563588955133362800803669313983180186636159519702897251701888119606119267626983284167463691236467553561539738564564811980557128162774053385385343100838566805533490276794907978177240121694400946589899632205609999869658900876646685360313393462312152597304752998229134178276621512426538235769437901453583658963577577811961070472147936724012543214040229477253235073725058087554609502900318174685622905817823017563722964865036371737101200259947480546644527924364714256094179485143287125056206671958728120436673753040856745956249752387423830674745704981723163277415905585833971762443028518340965398467053811847087473823997020975059742830234977010384324823083105037127563282743793122529414386750061036293102728897640036614591772157191054438435238225580249555686585993189873768550638117978815226350059395533100600867627693497650097904197317361800748935743233591377159795287575440407826995288508244379628583460577461404489821190305723440794137378886136626984791559828911896807170547949221404061150044994670892652998284245577020347845328552710341932863370061015460838174579786587381827774007280513505025554092845940318892478594675878276883415470358659945630616007027059954029860833191825941176289982287027447241368563318038099236354809335981749959564526996462464132143209867796480393261774081256327207192216486516939969529503801562357514603345255504960801223355931328795588657309718178726444349880236587758156147723292144176872833384578339356383247619478000339764629309950382474679557413012083917737175632428673836699841544646586509185532870819582703858750643768987716930390063556963276355058461135583811226278260671742522217521653057818337258817620237853418250947838885352365668906756398213141383444433965987612469850576128274848709449412115873297741717810999346547344246137483842840329979475637746272976223907028508208998526014035652751937727964501117986956538181985063027632850083744697645136164516859958145119573177439634995553978364646676219752429139036105784110187659691923823420326838099754977795185536673524096390313999407978464510428146175629359068203800054415950736945053499993656821032317128150918803767487232326949860054102782174396772257029925640343960414473399173740037461395871985576180496161763062999098224683852899953506161960861682404883135255921795383565111351333407667372168625905834354273027548585268224562564904789079557218128225110391936386524686989215070885647747647317151525632472019786386943091420195141946196621928331436151169584017575448399472391008625136576076361504319181600155299136744845588046031713492515905677981473124175370483431737220164057277675338141377022553542400411700724295385918126440326620236788172665944706049887390434746978322094787009598248816420685339511381385265823051891156584034939965693936229608205058139571708184970421259211070702563742444166970994457167422668031334059945751175455987695599762714898454375697838953082218977462336107709419656172154312413846368357885193586885483841647397431748294416723975104202232638338414159205901139783529590850737114258317499877756694677009805980688351706567843695601522089856644891436554737337351280756496942254254404837746115287879226197704632733360373820004806566242335657648190110734005892499279693989965284956027053030004641039393263197007607930740663295000214541080640952261067695119255987088457873026987340816239797686745347625283986164724756593231482689669783327471370003090401934180469067459444301670224856840158970424514097107658100198844317615909385152422608233914265017693555329399140482416983552139334883426501174027929927724597998806328470018574698230351547544029423709268596802126409105384767595616949344892109190644459345704699621238313275638391633840959892739490634826132880137986861721936733033074831347811739336471130399982863606312595790319023145957087871828018183998077432179349719911740433345556088285981514930694109820546068747433190414226475591385261082229326016016801535187551070568748697076920690735115130503069222686090974921112727301595940419969827433146035555935039296691574195549405486575039141422042839360393115008229283117238848766971162599297338197394494929348237861355850580427425880981606184007146843073888529692581531321547208964635323033331853220572006178583046233656790227423008621566869129864264475210300882864234539170682327435748320683311284667777638218351223170605944897018824563078976926373728988758472365595442104964119602074660428513583765831513526943979086854509743863934992671792621072224055098628990903260457210794238847101567018400448520351836418387885969491190733120539097314797479489413337916693705961123608469859765017895914682209066835554814794286568492567032598139496847646903024410114425167600043719087588898555798477974274380598493864561569584977084667418909683019932129507104980403605867957232251178374412202445310150221734740220219502763413973348319805151131800209363886615940802154369887651464975832948679038098840689771827141579886943973210482774055570189832824155826873149791027178965528055016562691129536789962820496120166087243980502900131428607956511157248183803011956139867467570883451774077132526666753895294076592092395774537471181343646630735072218722441487456928171554170245718991900718222528151630244795181458393958272531220424866338396207560228633611435522781518153814514081533644233676144492960722297801036880081949683578662785305591523786342057177999841937282787089771984756346353718786338212452868117676758173634007502610183283415445217170444223041181131096656401853214071825164116320939509635405757975965180266137953913691287216065122327808060156998827085424285161872476447544326727759974915011138567756368538678264519732054597746186563950335420844984970874528499414266741173107415885718530727428712966048352153846434114738840676159519261446168589983950246340155605044182954845814241220266170790132126851253160052550981887943480240683265236988305097486603927288183979440909045914048971273516061778264283982172818037838814582316323799789999705806300873440615577257801395788651913308730282874837437333027074788410195013875692576690695763820434442992751360969491362514293475522386074178617092504691712151633972466821670596762154387458355916196148428185451061884100514651600843555847896287123771007621262211409600535846320793283718421964105513889383992561705280863769140303421044392544542327778123878252616403746278563126035413229056757316806868111370420975736528500248923574436714204971580766716044601295971464303479228871481231266778033761664254658235984192295768670058595690963810710330554817362105374794051411036686926314400137716516952831239964209402716630559680000854254450206927611066222388731139764580264763466989687450262095886614214459422802536303181433466710737807519457013555356700496939985160953540579613974260036273544083198930409109568932830901984744313084201805742440420401338662482043556799500838862298844300005137357280104338512147994635000546425839867839393308877023644945893351480334422996419964113983362339431370989036463645559842992681781994973795015429706203342482762762822202956631445918508729370247756361726366162540301507773457944955505394696833837083788765223708370988019705555938923515043807524190207370295492136860369981950272362418564934554617896531807606301968548462899910517632684146429289721178700823321476817566452391063944670285037957208044401578621420168260590330410527714994989108666858794340845775311140597711093664533197182586845551201107150723904470454988612027329674598880209716224959875155584257066536024402543443213351633926150891566623396095456403516548487194337860182974935866581959346795639391095220212900307049652080558230002298197478046110321009014769518467187402729545396302296907164381672737681651744614751538402221092524183275675135846463371865490950864941796369861262068941082282630637075887163265438699442963585362286181684497298247782096498313632293876980943660824454459678063564141420571207858803484359250736413921552188966949886438211537144043070745010891450267740368208783948296291416119639528643273721023957994731511715902380202570345687863363832515561597519385271987225647335845176925251396642793013425799967043256953432581472887440140011074561390372725535463480835503520720390431541930823051020210302574926039663072409070172662919950328151554619858278096532966312625033132280237532774861289479860686003643025774009553199840115444499406444526563953121092286427419150512396446679927568744798932693193791092382548828228837405041975618141875783268091897658829156349246636234134010277155126913289820945921322361451685878999731015244946751155697880921598628660092104231347141889566124282045917949381828844342293335139914960021940912101361028032737362444969177422194101387218507037801765237915093012601604301419919935176958484750129270160957007797827824604898351608532530624610399677885344049055573326887668593840510249283226654106042959057705914199965487055564927861676020125965758464108971818332793465765085092654115067237583916981458180541028687248723741063254923383568904889070817590103498508506387889698955918830947683011487087311405282448780896344442812200098759641551527130668470424000018707832519762736273845173795630774142301007219885498444667568500501439751872464936816430604653006516061867929949831285608304642102639661671090297303214633471198274802638678804526070155254339541931388787166088055873901596514089346027768139828085470609900935888274169987268752343945746713005136249611269380864490813007635036667767105765317702333276200004398504224490821503346915102774164483705284931313386306616920608611405357011391932860348455998330329001591000404164176415809389668091535115482135411409414493038836548146539508628183133532784102678995818781390858072907447336587036836988329486664643903038664097726471178481944761611196260414661272105150137299849220197456756786958202067104354117631681502248385627990536257574914603411707797438742447698611231966785322706443724717914835497752950565142881062152757015829237997371633424881454643214263957058224733814014328829147196527460557515916289900731421177719501838113326339330044308622902677158939867224933287578550979428169513160518158495836634173637659373129311305243636593748038386323327994899064852002949306915374496768916082526878159304429190561547777058608672340831531113889081656090872046037546339062455010420915944058381633239105129653462888337499909229349471292240961306611461466438089292068716029537100743211642536232129745783747137906888814911538968910359106370864954753771666260303256855102530675280205295466214777712903230952917480143591475797116485354409947719387264684653660170183817587578407589436479851050411651050809889058876078870630762909658201690304047647204467271713807139510436108833926432371683442247389578015935316588011567867585294854443941504532714873646719590768370682654308127830873019512516239647885140656649816293421079042736105529831700479776333528937960072658633134171680903223113123540659791342670875316851206032475970743922046924027687586297819872138127804277623730059479462499938482108827559437968206686368012730491640284474850606570203289231640188077027535599536430182491100133919330540082709123957997186791724534411905381392156381884463296436637965930923458293608435274857407793649592529245032938617196498389198482528224851100609891026840853937983296973852939249622470592040762641805134969108607700267324934602710637209749525065967247886476792712629634895876187273912088684010400046448413736283265679497334374733461086938175186547971980122340054035280518219825839150083329462809158051827907687403790653682347861990337310559267298515024460702573751681210546877896100030803668169327700551936096923323707353019603456562611082797939076151476006997400921655763555677442867894518796595137462814993424938649348741729524042445482493606861123640221685069456996026339574693934186739468123915722988448823855843427977681261195007303051090992710889451739808601065314735346568980049234933657832175594756104239687222335543330373027770184787677878644691416052690200683655438586476269848658709416479099130181904719437164739761133395439232735375957504948056291240746859563485290365352640638920364091692392028890057716410628654527511336277563925875818454427097683292876638033116793285513122693077105343250346516133133526059228376336697600142545319063516617360040396646890256098892501696336356838488113342496141708297513745754109641321966753009922640570716559846423198290167928132837498366008210175485267399056637962592591546329389916590710232062564716731441058396313237986188379887223464683187650997076060920249763247610945550376141880575280052533204088834203975076599289639883222457385776227347419577086889877951427721578500064141298532834990889135807405737358220311985406603592731831213258678780180497276814835373623354353877364043504535277667991984499553600128545802512664489555405055777468295839497538368473233904803132785683679614421081218210120317404625001990661832993958936598157286954980916054481489374498288581400554392080752667899249098089683465902901168961597352658365899978949091647451239361733429919299126638189739445433448135568618038314669442395814787611759830850553531366795426576096071136460527513661270591229798359293277268476754866230193951147931160944996137315846625240765891886908027651969250448477775666266691606424898227939540721774133896013681850958091371035792062559693874358256076375351648681744239243711004305065611595926848069891935364411565951956609633077124358281006264703608736469901129768452068323438083536618482753719061829444692965585273742785635387725574629400951047439572442907319805780541830073603642805614153999958575868111161480030742964826970388531201234080626027881736752734786540553780596655537162817516577995203373236802386445561519321522193711252426382458939191737918367954857547780684469546769656459580424923972405949679104480298440555888946748880006425409439621423896929451756415371439549942735905055716941505621108537465079031386053963826946021888231187267879290249366374067256214825155757023502018480381709443286447813675197743755565064315583158799473351440383535379000791485000232000682129421251511099365685322961854840631832869950769834397638301638751109992534804231393792916735459276033382596932350121446402143328659630817501040007806893701688758520264089626215759028389858545532133978778540450209026039604999280047985246058853204363628509154442094282461567042682137981943233758593708392519672052043273298263528493871351002570386169338723189229703253590749060550359444909679114813664001708231259727015591284272742225254232773895076766624548790672008799388293990798915159880536942924579013265883755014971713309741922100887535570619770428386187764996122806314817460849856807677893965651125972786070783206916624925282290003821004338367246900959058519402641942658608791806882047015797904857263145605496066658242135329240895789546605880660933532177091099444494211914535894006379298757213651364716020055530179360866493775829375783984662720265789082579573653516117451634591576573688950061585521059301744454601841734676232975928232211796796656285141803172142401626183164452047820597155481722706632680953180863408450927174744297353282221283624732937532482912930807383249556351402358070114015494046140408277008331261227065473676777578488679449459014130968486942249237164345050093108955066903952794724653286730659910363071089615835657748045538705782780319427948930023638103617726326543769222860037484118327619460098556291271270154496867822459285897550416701913480123266459611364501516248065547800298577662818523923017858660402083238013996597499330700059682099619638365794414082411388056184476042520378722881489988153138049129749898944982959480923782425330599235538850241866457338458792446789453955008824136367169876933269621364600883865114681229429898997515187230849032502906560701767999278172626567046353095075115877643268521474454427967349351467611166796819603109752820395125618242460562575998759607157655140738942889697214719358064745803299742811256963416250328781020462899489817694932331039590184569373830855746027313502467131110811913327620716930515960002264092659861346668822001455332420802400269274376128120325732187451156701930665555847353525987807998315000773227888096323107705285085917867250576816814159266419078013581641709573517958913848374959358067849958867865916407871290137707118739903103345948650219861997598811090807569679648067448925435220736485106104357200902547343590974378535750140199161408519035847596814871327846919894940219032144983144067146461362672209373386036718831112246401090708884331651665329485625485101546231861556539285863968033669139520384193238547105658554083514535696895427117225488281462312477458103624605416872513418294370674367413121771491752916294765082405658133538894761943330915982372610626751997856375483663383783956445698035644202958010502131908744479689453856050242402991779000973864576081981256526279492559108595000538424144364022053820345345658685422475027287968561406285357463637987991273971132401603299831418862542262418052216061064099384808155062586849249594423239305733460112982152078792137161371202926888408044451256265773440752218224107275505722791200185777321055202993722636159938345657568785278967702847291852470292179171623876212571706848604857352298623082216415129827787283797421355472892414669932144244746216731610581775237006380442724590966059079953344463419248444821082570657227773371336316183065031307619309527473054082636672364635811449366560716850672551927019754829235109505867114520685389971221436809080320736176610919063308502738630359185840772189575219384011684118496891694977222423582541132668068146493878805425794830310776367070387248464412136442226874900778176356259073375964197685219552586486908203081407716131933400552974053426945768894177600176247150510950503933343254318627795228450220742956820150985050716131092522648452394616142471148600427221404562846392053223435897378527637798252175201653047133668118143154921182873657433238205695823719791660583182982916798635081114644584650122688125999791685738900787898632637925297257067219514839132861395315220728818788453957290114616913617811574581453388028154893391332775628172787339158124067522678540051526213062799518996585226838664438067260789462153155854134965541658914062597954180099950441480147024416280948695104571185561352109813505142950322728039090691508185773928961494388903305465240629675715133346131566910607233230870733783759288283070473507316178556021209628528954153949151377211877024120542456108434981834158487658509136178741290563885598971356513315708492308983070640207334713286471627311207737888161625166040250104597649646668275807473217634988106290415528002388378418076204709996800332104280931241710892801585986812348737357004454697296457298994191531794235716897561491216402651425394572037834317480412672124690976261572345654262313787822986201272899652844638876227433800487552413056782773993109881864939988015200830110452938548582276633484151121803649791976767942089668016074086591170736437089288035105270687973718593596835955196369053933878639093514889385968367216311682002739969867956537243032749594389557728621895750010596388605624731807868933988228454225314346936514073316281509882469504404281126463612307940985950901799379822678409276517723592319183258122811255002225640268638339420144041266306099710252137708650403727740076451260931515916355892596271910690499222865648310809312536194586263123544909127864957150204559722824042286333493690866781060161629323814972688065436278007168535588441659138991482242817943468160500629238591936746900874761281178791485692527680154825987585526915749561029278831799820863069757082816594623789909077219305009681692524837366052039189674773559169301103169988949937472104397992900085874504281827726789850318935963618065557015620801079862392984895919127394177661164509570992723482659285627146208531338413033229429349905761752625143785728513034977983068465378420183290584733385562422722946675527336837780871283779065405903915861410675541877785559395769908818699771219131798449121492680507056508568737270321346072412767829775308898404583386014156387132645225370090262238491080857066082395070078151779558964339944097148836893379278581268070572836161949197510799980693339400259849084530893265381717532422849541138428152708056001403493277509904721071364420246959744583557392044669970867812948474977745212183311979411642805404593090563070148542721450282866088396834842465859296451064146496739787312431454901997873233013493491972453120853326130832636054473598164358440900672231424430208518636378420851036826468328941906779440002936833032885325380139260168101936602956037465815563267054003106891016571762088457883381106277227013604088630207655184703765431293811482740146536523402308172782850511980842613904236122773947984555410871227667635968444765976288036050529991700003421389883492500372347674993312127219753155174486229261530773545769171952969084531508309977151121816985380299485358472169238830833340068482474362365347429356571830698231419475054410439782646546906381795686193511924414518258862093350438170962274168780923111450062272714701682596310392110217773095174299777430332974763386914646691145873333375863726088091476612797325971031509365487670291825205740078535040541917769486000217173753363952964905044384260667885518729465779441504552260850649591134113857062100124881793493700513005797135050547595697730863049845686071404315035013528730312227672952710287984645711613730952295442396566395559859219774948500273056979292298079753519354457748250874747140009686131540249104347555094355564816724339617300871222434424440053407622571875531627857709624141989232883807250129817203964435318511116745216744859056614170338866899548434296077696042271824524782603224826799963238996285419231071494493330453677007626757740078663070580082931341907065589563207627912698010998618262413695691357581224389754368557789429437784645405151516707556136731844380451707542769390810745281378383383599780415218383171513984443941756155846229262871810887713145600716688486157187132589912255918670539368000448557087694658167982385231023438175910810276506466167869687728490707617342965054795462441133072938232568871421319479462380831183060923721952303277262407174929726838686857725397825034985953113299742017755197987058146608182350046472992263936229432041270540076762191354146096227984800825697967170697721542362418021261335202581844820855765739530102574384499177873139913198089487748674399098798638199615114061371711273438808711011138581743638105350371896098815823222571768655285346992050229699366184107545564411897743777301760881524703764433442895675752605683707274805442563540698369803674415516584214653335587613159576436251346981861436792840982060390523505838350738895456244505825593465905508609425475286171238678091326356878005628226825653963440775807830078267530103794247935865729884329877240801248903405323634560544867163636772824510150597019724011087353572808546845903343966131311937485925791223790816356304084469513543913691174241636724771753428657196029597046169464266823484722182074794529511064264318329829607099945454752065760480960430416779843992586603497892056564157868424807269107035629462344661008513171844980252071212085088477666926890905200887961506665871336592507763638911769099239208500326662869300289901585312803120914780538998946545833976243983370132290544164112780932306215942933771413894351406439149681379031573643891830563084361936704358682415594049287382653518453296341585918393324800504317070567019671128655378098273465483925863457153381574506132057760215958632070725690072833856741951276693292052373971832321337549413382348541707860240032351440083256840919236326717454888454335260311124974127108754277833037184956096885152386002100191976139700802135929386320475329168432056386137033816862262242339056131297390964670007466244304489219641280431172087632072956960124306989158128804159400865645203980897045412654660983161904569102014606611181580341717597077198743734390893296001575357157434498274809740290227036761429289589547095816635225840789506159909166864127654128300706012913150385536696270930642930027450068731955895285011371342626285489571448610893983407540965737009356152785863393125737951668391766446472030468274685106976389438662052858957100265592668924592601831229725094285657569989415201850191495683079223978384321654865253417000948368027555836163949444654164237150526612048131666436296331108799074118713280193012324669379978566147184702182601598522532899992796824216794567731794089224591384296250465027141835077564152507185092678949137052285347186257649133087731786636961964528169961477544325283623344392969694548716794209237528541274200101333986801728791945102269301524790053496929500961581815943667469668625078820780524434821824979498868248910325019413837420615837329945081387712588805336858363987922450803863340317108313527208028924855832852976077600099676601451024079565639340172860184361337767699220483975292598979253552951657889516464427953748807073943852387384807969493887027551117473475275331376874436435059868599446068432726784744467150207443573890643051500598994519095582949456556074488352415899543310062059329813506399689358410552589855260176323882414559483718535243372373700089135995156650068736630809702223449194225989325836488363488157804027827333030247311479476371532437089116524432096858927270038733562910296257296864789340747625279479747067838079705824034253458199520480722249311404821211951457921465448843226622763995359500275972394322328159788000806501859519759909493996396444379755005997819213150692278200441887520863185245868790756269104017543633741757682702788412606853856765345757783280781015082736412163313825988614676329530249003515505254137249013129663452349088183590842807377595664564252783402016311463661590927372262805073000642808074458553997522955937816615433040574349108626034673128551843122970485292731625923931047174022690788155201827512152836772758752004143364007138440886202273956199257989890535248678912765813460853448181623252193877035455784008194547554011803255394845753365193348589183189397456412638698227149459170285689904149438440579554589333418370940352359055124258506260314267364506369541801469289905773031642439463868528000859374963710983760585769306983233258714410964499337568626392892670516053555948122997388339795803932553853982072051961104191028313885097859817375042588327040857757301817484224004485044789271584501102522099322504739904276355083236665387998314676713712025876923721802000429269966466287379854757417221212228903452666076807342770798557316773865747630471516365336832221814788070023057678390787149489737598678396795546680313485222920040812411530735481767950016059283899798911145662651816495499685623905538071593461810898209885080125795660322085564644719852361354013967314260279964198927745924294782489885786571449244159507445931212307134219995211473176617189844531670469362413426015537115965206681139376998549177449700019163878189094517741717940425795247619115734744890264590927216300495710882805703750428487389352427681845955114017020891577577613329623558226114066592935732698277851528257358043682124904138172666680423297896670389477964448302216800801845291424970632757094498478755938777848472825549230633644192385540537016520970759590247616389095686768404401632967916565357831183890386968811051426842636212386876982782157741417983352643199375189480197048861668300425957005640254848778938186147129637366695770593440678127185805522497595322491850271080710755402450400709754672183459699117434095664785099580746742099640572999432425408053804754591975074560315652668379946733992030861362810581239680076157311545062664956902088837683367641627344359046634075028256688097080547371177904778200979441297306434675630261428473868530176665688720776172974769232234359816948296764519840968572420295372626489669012037852964160819018385946347158516886201394301883918766317867502123438854318684715801999742641266995128207555363576271632666864487916676239541841683391815187286729371493221899329897367926308297396928073653652682319888650679295998411304401673883198718383340446911179541547650406917369903199195204796596891874661352702925603223704200739360223058671671355376680822527356897934105726480250450031633261200908237323359371135063658995292273886487478938896040363561807217865812033059726986734727229377468447985655636599263994411750282476283724452899391625996145935720996329206643767113442572306142679392413554048604030583560747319501124320159534781399718970458169562247733026931555183371814452913138920617802303729641088040664052429768510544706231815208241112900033080888474354889047919436395749163634459215812255688831446484756159850043634915879280126892685336457325775132792969490810698884177034344601641650497452866132977610525829339331338355653987182533976044405155285423296860244317372735328394427283882928360106384329660170665887748001481038620999354787286263395696752770285052043803787032798691089541523001834593478259487107887332108845751783674860042596953721814497178273971540292120133894017982093882331721545927145635804737404217753422490105546154385000269681086733410832265349263165349500796390959321271609712488436396644995234879898453604379181087540230765667253506496797597816824786249192216392871882144731468212176451209125930120110606058481491376225454267770051659140249506666208680454867653889462980546009439789142303022701044010566140574223758408445715626611100973678942939304403358246332892814808754482838458143001163185348504426352295984165536408879935778089224064842308757996216154301741960413486907375942992816531751370504208046639484678940039498495926908024108852030283821870592845002814033467535364583313457619777200451904842763747800556883149671703367257583970225565323696126635148560558093628860224299091808522469167099374965891361530414422172094834823552669838396307291311305019036742366334854441518725390715168190072159553952519276676877238469321503164874264825669998620311974886123465223386015211436897945716502127212139810697372971134039271505167936617503525991798860878554589415958228122820007809669837335480640485153187384731020028418784175906064325732037639491694816035099083344042550666684407408742119621309026581974611560212869181457221662912313112833758329726667270652121464829589722500452192525394367425795309195037777139455398580418380039195957404009005185280558681338742854149140788305667448180930864906616616571423641183223676588677379592107084072011073176808043241688114582067307099030787455764420627876956933364787950534938734347580193684751375838188809403873785803347659038732762099008796482963935387897093520185896639506521190198803249210756254018858083567364283745114481586550422798401765649980207235703419556134591893573002931643465789355720250918407596145906740432837932043295096956230532881435422959258613594275510985244066962254788634745156406465440762444675263340084737120344838253094199869848038831025699804115691469759984602711684361658379061456709952129037666850408666457063366946472253998202656465183979915402635746397212961748333056498770661436233835376712603224019877390128124363570555397940216737224119413402088711616774337687708418596501223295665113391618469170432109337689307844541616259032457102443770573625636872293859239261238530828758782816215035256149814664257849485908802532050447766555800611042860901675418053225392641067530286965372801416420726841288570025312244090989487583788611958192720782322970475755898500914104772325647284691490101251836847005820192047190222941140446999778268787639091907394680225466111244746062560516203147010077181012482171785818276477783630683693255324006875840061885575738782733735981981123868144707022579372345067792409074576822823857436434936687493551673298238847595220348495336595358747001048303957879217298078217773730229615835859164587277440728073304724999737792010277669974200379307649169226188666032510991042698534942678613543496220503071951421388120322260468037841984034892511387377812241536413272801835332417137978388247837001025437058059306525779939775630049594419294100497186085916900922446088443985112227339866996058339687753077780283613466993543272415637361267728687781706205046089989613283444657700259845858722395823369905457477619955846113227550884314158647208075335822818767915935182271141834869272566813595629585608030208518675722281336170248760018378946980595561242490762922382398723042143749977815666843734682138271521196175425989996058231502048769388116425865208170370978033787420813345976002046165782512314742730805466804079883592033987358323968063644093749240064333490401803103003134450921957200220324723549266120563486935393917628933923017817228925387157303059466371724032956595404084707261062777585794767756026772125112798271618085173826121886248974981081267943071323893515146550290957710044746322024930226206660978435997709785697359611224480244775329543042885133403356561462908395045282743716524487866919459888985408622825305659129275237491240550751247608668325747875276725062501701546997733787895743011793774880058571353970646196930977180774677451027988993321952878595741255968833701671254338997316046227345325835284947783654184652350074733833736409724361553619607673300282776035456194403455991343999498169949711686937753311508880343842788190889327566666349646413092859302948925594870106579528353261145062995766229792022975740247434197733105284431923981478238347871574499224382776718201858053043654514738302729562162382968222499715014117572648470283591720474252957683092752466893731563996001390567994859173171761284855709296424926545947585550860416307226337155588111965622274529535214477352430244407765970862348722312946456729176163205296828922882739458662498742620614630711225014810737568405654653592813590970823342239690682165684923747573957517922658006593726338508883577306527321489744519234212958309317798544056541616805989463133886976410127503502764604247609094017339387716494228765304309613858986061057537689958934779602393908334232107572977705915114881092320037465367981522338087411859942533979877513656293536931436196056596985524415080853625420360871676848787687135385216189833394288055654915960047123478378721135227461133489195640754910892307923124305892114818488399029528050358854040894269859167930257261461253139387159874015153912356896679155663683621695125196883461605423243594322533490070022932741142054056947349334286633480743551185402452846381520297761016032919830746036740160812072482978474596802311402787029581195089949364582453334070455562353492312139391705630970616761064061111936482283830335894860852994220934370720383157589412676061352070370996078296922018884416994403321990290884381738764820568219107714957586049070521600241706050003879595072323030973618202381606054410452660474033379700580573102881484143599131913806745485531492975180810158009807193670166162159055301575391935540191709931012690465087080871729206104294870239405017493794941687199163226608532364156155003094698993767799185278910542478021153574237459212579461662646517936255885308397469779843755942930130308721501497454829146710423871599981716531833054211191369226369588356675572804721530641773070886296367765721558933998175509034249566875724289229784333409523699405618169043816795612528998139857053284452433329514046320931087783935578617146324672308531793546924608293389736210053685717783301906778987024474584767406907777179629790201498543707545346231308382323720317474696565913983217532228897174288925273602199217755933720013959442286764684083954931101516209616554169613246132981611340535854636984500760284641090126143862892248436611886165990397663629821130166954540258307164729276986288048440406728815203808609602180154506026457386715439445797548454386895398939525492094462277682288121579756030574059773724158655409589464659744531835292710836187126501456204685457478106517316961614427560441145142178075407690688086941999680701548404619098058639977412409768547084766664458153362485070167808481014578427203068573940589669346003625787735722316795301903351114415552362372371965019251754212374740791632806429416009213932482912969468022261954380913498287280397816987126416942336247408905906214588965183367176866362783442081870794932168946743094543083927900872561452576164871105052707609359902772959652882280212568605316353117317682576561383765626579027467330750488043075517415296158420201042818161661315887218107776844020711295841662467564761870395102887737884837207124318263954623167343224637418397828932578816942609421494687912404692227932562212497268518332334186850058450986066201232814323338857144293458245446666072284749911825579914584868987017794079773656378466924722736908382829243384108439395565544668345205897913391650139239297762375408028479244971214165337696736603918676121450884604130533639755438473403942139542393867174572019531617292483210169524181896961863654174722351877673660963415286107735899996006108078943046103021677035030904498189670832938291948302995083309348589558226588258566886130473693674546280512569845323142100007923098576042227830159927326190996729480736507511299342811740666288864243590833482831222657195506299876451872415716924824046751592399626700215067575961406273173859801594058695922453960448753263239517634075833338314006371682485133563003010475774661920441167924002868815398911873451496500815948672002462333252234272420616507357529618976248756375464154967581916479158887819252933642933436790356256879221952865334585950275092227198174071868767057512887333357869692004544482492842969447366527374452705289849662898568928020932651103884619302138890712918842478506313235992475862419596285352229348575550239247194278426409404578474972582968513613816003673551627470635483024741417485682464100037617637399645078147160630411920577666904301343213988730066842854098539276954460320210024879994978679541710251509135656475117494864300887591106042966151880409493134943265308672104169574702939200766972301194325358258503605502802465496797594154467277415158534565807813857106854359873087544198933451985600286980810474101875985579164191839323960285254646886553122137299615390229153734358439721844025524448644998878660808829746158629817932154316944413727137308155401116227559970208574343667236590052944838201973835493808346048332539889030270561390530506083828669646583004805635036737515898378170540709193986743855885408831546196735555672566473079436918448725572234251427063919529597334384115336409050865484623690183698106319077530674643848176254982705130058797680521631879043903240407541003758187486584979086726471653636661764400685247412417000652037166562031751462754562126493168875778085107004554386927771324744411501299258107929845675158913782969728818969286807112238208869076234155653223779909551339351488263652047514401533617461037418107525162715227355386493105353756882899264468398991599138531272236796871580021142562243244158148629779138192406224425316680061050709291224498652207022165470072422428921285318932604799050824473876488121506142161409821711227089393004098824168483619050933368358493398274840633061641487591206300218430156009447574261933232481783191691675005200293926533883926841426096366941405072127612405825686714813592811404184446530535073818501188829326339908606034731051557325577038693292043963170940512287303420441679225860418180857578540926418473388101759315810104928178091493751240019803830857472109300835734866804386067349284356938854705897913095728268896610818723867405169528426065112541719252146291455348193952726720178774532714553965251316886129229348509153616232746380748378513883271333059717543661388187044436144687560947660458487460990241825399203823423422359075004739352906480055872144193239985475885785505230264817112767770599946813725175160495349552203871461923711510909344710586070750118345839784372303725099955588347230063853798953892223137097973589846269038975799759218041485703849377869324670792697947403232466131830337625289132109942758338953352360401004258488339156982170895759922148811018825744779927898700077679883285838513803070759560819241137916792970833721963601016686557426422857205693525002489993761965714409680281715700550060641986556459453821296829157882549536206573546193427735831411111255455589393187047121427338673256693819939130877967339096057191612723458126539197074362402897921079223822985264356555778493968704620431308764185263599100673981643622634564852113995683066198228367330512252467811793736857874315225609963154726066764936046582423061687782238352109174540661320656823619291315120464653578653332595056547562142323726652985807455673562215735559300733632289033662786905075283759042084568200508367312233383934972399867370475004713980139218140644922789299828379324215424346193450552199151512182737061351805549093583364014745230697864590032388207694303400940381017919063282689233160626332163704783972446087201324776403861725630517714694024054063345375801681312975840309407077150193763150030862443622714948514038816514022424076064917551341006462376275367030745023577124056710515669751103455985966216056001231934414818005652466997916345178547660639072182018654805354568978196212971307589210556507659756919501615157447512557107948384869122772642888373583477949933815352351789762781451246809650033736628269127554072187746957319508627689235099683185487033371421916837546701381415506870335544772840285812492727281481563013392431967534762568188617492640683313323498052294213338892013264625274202147323345543565455174033656291293461879871955833267812940849770636045911983675891495188586032446598292936052358762599282935029556738998420390103571082675539643602951303281302558354848277425053767218536184497534232281322770338829861731601314084638081699667164959466136153029509649798169087991984187660480560759868245933541559587104199539600148103470715874762859163629755009778629179050144549683838239319799349598052002647818304709479713203455733452787655233928309718852869211327329389527182580136329263351652443902437622940986596996344236636264779038223461559078369180805403596702134924470635618936694798368258940112904100417241601043516168158486770708512150638909316179234053729843445486519893600462785429726088631704860806262157693985915604927276097055291123166253491905229962462253477421804545590143181165774079224040317514275015360076315079131825039659722381719579007326589482592863445376356702740501125784954943886489054421539449430376732630036854334172167802864605233824967465075210266377898054545776994896641014966031945055281500971283841440261614761290205815840842573633230082069179743724192657608124177981406446649809975957574737307384519553056754477305118910627226256015613155219838435890904244130365009154227941694929441442458472392720648386167549517296194337087450147292238730380876889062101549021005712052928254152146152406727819515621404303199147225688467427726158026763077599365721308093708098199088776501295228818344310192408477494366129752023279313183588602634144084252815231396491705392209466897763390474795930155701087019985620345287493667869128737110465488771164470048794312956141020072340686916859357460662001384731047676312207878130614227199899534491502111128916123933212370812279390039298061158638174771355013793608355940268978470049249502228891544274612309604913094936059003754923429661434558005656681840353963887919395020788691353374187805285893692938260227858765002461695579404261744207015528614401303835927901587911062201465060440179751540535180792459632236682766500034370815777342052273888849971180813945899060946842678160303955930892313350282896012838243143047153349364926465058182550505163519146557779208142993248145500616672750290755297490900078973655980389018568721683434802711146723018023727802231947936788256735941690915828665939681291148970073900358622771991703918361426063714331029395191730663153377775873157850647716036344962917463093816410653887107788877924061883046516985588543570116648125128001659142951584071473463753582167125703827455481570722676148382631587525274963155267623950933715080812479575401548610684731205642276964326808617705744796945391285469571055660178441062655806228335474665798749670120564213543531490025138584021565176034584696471529395819767925552643231120905405444633811364715850372674265114458266960579379139751165356618831612054783548647461653654727093711405702462518418096018632520212788102527994981550273707813874782729761720150970278944909962908688500336200337713542406595700188863466639158094534488845579581467481559221248028468933791914800784757314670169596516357228881689823914140345749536958773142997128995823451144065105064633629253114323263580371055963089679751267382315124120977671861621931114758048487503825279699185140088450539594425150854096259255249666559105965119560559344545504996828527364193481588365450794790618567837018760411758448800545417628844515785298047935143379686124521770785776517893422465459023413338056831192942129381666734563290579487717040866052339715321968940713052054155130353245992826395219951893747644641723435999939407414375762915757239921785559627371828362913139568678479432214610832113464469230013995964645625679686984284012817957764206487487708538561050330777083191446266251548294219732006805985037503805895879994276839258887580769309755438175185636838992528398171494113403262723119603152183369533800972341276501936592097841090946906778112338908421256796550764972922195630746701587647457967012833349991670177090344012228248846151288179960136532893902074009959348431925082399551782512299326507836482099097806894007947380536218620027589186830529107078407281832622203651185447777512939307715474088121116951873623175743955701579747194870634323068494278627209653894394295374762923707567964784812657253518586347294399093274105653752665235491663468612944876174790493835429980735556347801532654835703953739139062228823615108335967990926811068513907996594883995113379557328467263805353964804674634118939063604896612236765431644302475928579869177146402816205647751218095462559362780523837563533819657544772920517362851090040176089809738372813911925690470073944357784143596479318947105330896260910130876286612433134344508157960222023631880392786093069939596929669568154851053214632554808801070503855754413292564356332258237746702836906027833909733812371594466096532554473652452357202918371241262519007493909506390264638431571936037793432935495698626950698349650754855817365104150752056833154624827947391878971172794472442180204478481159077415059684678281850798554317740955270013718075508518235741263249326160785208550439719486239796208171989181346724914647994695587368454860900001261581379255355247401192125589047733959915633137229441123882388128346027901816650672685358778707937725920569711923293146399074062800727942214061646828956283386635501655924127081356040657464260821239873476494767872637385128639063436512961558731753719030576021668311322497626744872536258808650119900873527077340315141021523100497004622673986777886364472461894116326320455388161561158837934075326630389865770184372004998063750245156294077368013804439340960811864930859979360157851461392596141709812950563125566349935901579519662073228527134628988040310246466325755886503252796217685513830841198624403288381403683858202325069551390445115055466999102548516652366546326282416881863198600383574786739790031227104493756513927720847294658067912248258762630284316835417571831738056728742679586502322981085889430232989269850733426215911396186675584223128053417177437835834611018669180704800868293777256978019364136370097839572607922155884498835452294282497155958192690370563714997174436339133039258748465892325974397640688087389729224176050280177205083946677993475828777326251563537411365922642151019821793777038381538399458273542411242986936794057225694719938567707688789682404448360697160607999149588882343760359257464172381268425675710466963838328237142370357874190611295249204859071123857274100088922968556114476858912565436718048237772488959255782132920007027874546123036110517292052289564021970926382178065734799096372136436472521539182286299346424998684184819037985988392986736281807643676400105481783062529456359757905714707429736115892971492943363054913022474183937255957895491442055034556981642226144937206481406670573900383952295043772418894728491511907453343351153322496896372587198029316824357172921750227731136954642981333214351873702256188528569684111291243591859592471320672453574389985662135538760378707410399088756372859482049394905896235431812885460688831236038506426151350472318022678153038495900228790885346920912551115602778573005365680109825282435219310367157721682112087586513396120611462896419333857815842294173196721958815875506327889951508076346681670233944026207807797080063186006564661347747429891919354308349214088452036101628518461563615339891100347648012856101067739722909790464359968263387482875810059405683196392745192538794152439140449807655835586569358880242254458843444658675979204676626239239843577396337373881523818655815977164369142903494658169040011997466246731557862781313823490541745569065114623763000229126129017989014491811163711165382029100275337217568764678618032265536755138250818337994960843096551362757342998054880441244311785305545847562601382910209966795175667892720704292865138066550291458795595652273030108031952348219364663383984893461256462629066583277125421652997478023052417963562180093694052673784993342776929673073109854072550342410300247150517960720673000170945183633052255085822094172356941393338075793610870477285310627094194259007647484668043271286190449900863121565026549034003427696542564177615981109985337609132328694936212228861507683469546985915535609272596588254356510796597601270587956355997880420598119873705662006508159911696796903806560429977009110659587945541933408427132911419161701186218602856139206338712970276927165551915817369262653391864401613056533490635823702257244562060214173783775945689441131866024297998207732103750765345443505749645482378518898157017675988197777121211461726303601366488727008707673318973913160859385070681712612690639686221215343075582974823296811360319305033211300702761352054055143307078778350167069191115561964695604379929659651290807798539863762403052098360983887864143820378168536009369377534235874058921131516499678050456971150359474151796675663794025162670867430095611962761823228630543064214455608189852455435061454535725158492434477735581808720070133211176713576408459424870472802462609642136820231157673505866311701948688391482083901428107536958743566902461239424612118439245154473741591635235740568275009193857607665954203452571137414614146997589047531825667448840545367317421901963816482493239118232089138301976540160124911288454091443645516826567796342556194034913610432315085282077649032182720252503247840732065269325957599684405163540999185526027244162803016953420710378531519452544602639347519755714672544733728830677934705212351284863801294490096475215836908850144298515437586421029167626787084492734412235527971207079728531702103252057972159758422511145851799009765051407016942161537237854211933882641454145813962287936070516530445423347132404544041996826826233399986906655469741763922661818992454072879100834816294681097895175261273039722518719850316831695580277950682251821089349253268149829639864697367485298724552072572041366431680946139048533107950516051895989538459828733826383111893537993534332371395778306364608213914467234758103633056800659919759434177440355079312320592056224553319051501571486525303397414350120813783936210147574617456648224354371509715996029622864621310154470015903029097374064989310952982766764046037384766303153816979586410235117909894897937015328359189144823924520729574113470445335327085875050013347150355558253033622311617139819877509769686305720642875142108670590060911187786753812366450321032164394768005462442377274741955904597389944117878156305485720325449493490578281712599671446806855884680698633020209462656168703468539245353237557822941365565007937119630860252621768297888838554100943035588581237327505576901575252105397044101622890172248292154562196479228763752694437338755121829315663138804463326446838652369565741351809715674470774092362341220364638240853613001073425346274234405726404072601998607365624820847740593458726329514633695220676669830550159451526164078846453072519213361111152660267299493953578728674797885519987727339395680056697734959284297456537130553882319048875231309967590073143317902117458829236096690539013550227371016363470885929299454006930527203607090393266307969644189438064359065099702768759800741889174798177451888432841545204357484204748093963208862287529438900888969366996859409114485995290283915769470238897854633691731292305378416051676017533036968994363363962680836273983592459020527414174417108262797643807376890692972125328174039316000088652360146022928858316541364451610899567037044631594290670024291379397134784476636686991141210880045911748663641916478289493641693254263258048410878592843127072543283547784803304559045985751178228836660472734837821177569621756876197114485582256522021324567401623663928515173342408181662055774206878905680097068430883337592850565154237557438514129320714965792404355913511788877394178592264955450490192143873070260603826804661045961329919611817328083020821584145587393532537994360280126526368089479784251082988227744869430167545170927739408719463941900664345150733678859213194077307924016374219701874443063666262391434640463808442429403836303651030520444821661740411942523311914710081954693623782681431587220366159140196392111324086057109551577579374692500916912151910626099229024643452699170840452622784741597140291603955616327331590864550702804416713956519262231595481379097231015885334573869061933594508392863095874510789864863727904430278205378906650106113670319717077760613988957094451716913651159890649481479194279706605392755001259268119135269589445008044181332495348884437640525998630383631253114071932028505596587580946978224765148874280420964610344241226659680846186736115476199399529126934985323833382349563055215900847825223852653488260218955203666572779109654397883220376655353820969732129520031431964448415749518130748069610788017807446377462723648256431723925669052024152107824955161516417418241014402083549876638638602780852418443069124336461477012837853227937439005390764989851973720568219804879328805928879823797286447697542048379229206143581120900955013143162240765314244958900230340875411426790508478715516199667853568393644200320626729214606707211223108108092931297371552120842333886442166469896417744057987209888313475202605304017552164741101853786422206515623360333540183834285480091330135563457760886358493606355042792399152543847726482242654277499089210017078518426647436948949023169224593962851056423458743878760078370657704756637970655183764185020139526599098146548236323172617756150734469307989085233544263629298002426547285740349125200451130260800742458032070854261188943441235629665553149316990413314188288537771585010837146498797999913490663538308754298501897370957357772597699791859637557974717569230614695972332483735235937742324681232873304308997349292468468319898288093515537534154452029654740097537376038384676870435829842765184913697326054659144363683421940566508330212486895451559162696964399472127643452238712241093203434208985429348503030843891930830194635876392229327324861027490071098909855509603241930276018161766256344805717930450321559332823726286738981068272526251117485381189861984588927644143742208375668149787525162718416119106214703709128919444603605272088602035524279559500139447630841298976908550782439739161737106053154810382329910264492000027263757073670661295459663608788353926489605674269037307396519041355030458286133987816812699806267492131387228192290961711171962794853602530719788962396505010924064951501168260470570067912107553990887011086052327273870607872660315313926608952553734084317611028746543048682393472342696943791270772294622952821878933843366025928860338522131122919636176308845766465854073502409866848892969636100310467739567641218727753088492022853671224456896545022321982698882646852246134379756022781580453705986643687359687571203385854813048321239819020299063265519307940315401354715412178516394556182794623475575765742594109263817146186258957749841481083279233828761538179129244522053984562317146638281837974306653099071638867998493593345456805530440097242258365899510871307899251019644718607274086303258073024712501900934644301875496847693195103327639619524512221301115349516715709514882142592545151797570539365682296503825098172982200031897383867992420464081692213904785687910997290175063609498514958018419720194249037235799826989496770008867977988096722747157352309089541147890756612316857470244982602752719145305546836980342042449498541013408515549566920691882433726039507180146639261803630645442330751473590793567638229806369664237361906626804773767282147508392355591067883602197507660966594049973252540744577519843673020492949606536113526841082928719315113771699660362366580555027140003729871945389495981999847632683750161809486446516035930310026346544211140132721218216730989051887774079318748199989934735653435906292231509326643926513474694626337057283757982395912012784025586727383883024897560599232110049408878003221177241566774874462583381981968800081853957428624425286408466969619937441011734582222245520249263695843315533949584865711213756811533868557928014863555327785153167199743387490929607309937637261434822598074809465665278383172856390639372388874227062199146851886212001001673526412754505301417280968676837294012650353030099961463148358136871069051316919534115980136906437418336908890817992294452835836812172976136813876624662506820837279264183838276451371135156796909234382137036845605951298158590746358641546015726303048648747303536910371361671825017865664747949512716325469438358762991947592737510414917821868257421168382714865836271469555275435760066955107940396438532603243136177873141026218124262493388623902484251401286547520868674327476121588000415747313460342455009310910171356237476203077945304980818922853093950247666776476312747137918370997100182009626524765623279943822732605331210677032348909342265808178644370130878761943745970795551048787437432576457760211491706049144894156155915378101726334699667613907913997095433084340246444260161790836901753716466294672727433903393766799157155677843850461787103388112992837933496971328850439417505643708207024295581182741951810981489125156890264524152714287392928950736494879828961474028918739093930054179368353368584953641234761075570672602535210296937521915356856777968399735229057488284387963089655373964301941780841000623781226465904056810661399375329173435097497154126422826245808555440901551463070384166675609035273380264833693582721034243256064373675153012729334752619739500288487063493218436174279101710570448448954888191610785756338212458942469580069780434013870205268988761687349071972164095824101486764281402472286000802907125711199978135438581193962522382028230498794679084815733528277756940218930316874445738243274705340300286679588524880335101794406559102584281487194204186722022019787217894526067388768282061955510658065324774477264922445197370585301296713951305218336289122029117086606992197786923918326320073235702158219263464394445113091366231705545350882194883919977253152222130738018150415505232163404876695451629926409922551043851697665455784063805783951122676619462411007132905468870645270156053720958607758608141618770992329653679305277982430267738083268321964677945334889182642795473361184186494127156806601804557033897353341658089663985600931567348735191858126734972249953977089164624855972160951531739699566527407493936533509955990689875633412299378646638802538773387715454833734800215052353829508528697054927281632632779090074284707947005623200164656587219046517925318230228317386044480769891613526724474008839676664724394168933268106247449106223600220917085707267454608976553410347383123080149578854169071655578377063253592227102707376340529337305800353403708286432366259057851351597914576722853792818434558862234938144272627463219713974753738204963535243627814503631164304176205075034143198600696473917454794278082840277458340639488280023820764814913116552980278558903289171498895213221705784682301857196341011047601708423007464917921609301999531123399753184410329985843131143469931059866634727959363023152929368376416896036452239895816663753900646770659730550226695813301561307458840450130283821730052071585580054138133195438020680690119393329328653125893915311024731570676479984749892032373656504944977349394065745842609959705603088576801383078185662618813147722155485969126913246499536823222563831568051576122548684902459995565413441574272209995510679627501825228718259410468166150807815800278332880892646217823209734369626756464387781732292186442966459715778960112872959827520504845621862375362551026445355314725659938483853167251300200803984967145995198790458145250215388453081709417218454278711365534439202198411132825177544977972296585954728164280553763976233077958771294966239821073582418844888005639436142411247879511785697759464550691207310763997267381811461251808666444153678222153698423672362974841467917080739399888102228380477633700387482210755208487603163580189242406639283566992760067129444569462397483818857671420413238905447284135908082128691548083268924929821193361695434156225021035647197752846884704207413236877980090361800493984622426921877120264833027194997754267737057402147681941260012217269538579254983586539939897470601929492978760983259263730445415573698974732667978244630394693964594839250640181184030353014476430246021487212019658545345786435444180939748159851273828696368744931695980452793027054469638308213663330673569091111780251887217853088832591573022403564654227978006311424420340757965459061423621273663976608256197793416027846662368350513179329675196745088175327310038380718607920342727024955502900962423662366622549557316598916451851454164546713075770370816144725900342995904230920951553245913522678153980165674636913734745754063897273720014267936757938446350299370406855347756058546536886237182843167867598229233684903004284008183829119873434301316588575752750873731006757979677257560796237211565242343679674631477619535059491230175768988586357078444329562544585109964805958692774787346451489411364235218712313162714452960556941836930429503969780805306705384832580244410390992076971716482095630090879334929602962193421676980024312041174884847884387845621080334974055133753240468124423137886974093744566917591194849477030750179955879585191295335569813028776552080679757832262714540919981068847643197970418507677321134465836295969638984973817937957515719953210500805250057501739501516364794730610609668153662485841897744367430461876804968593227270530403094194033682782006141231876876996376525669437031487000363056855611782869272083339569700692957966834823336737502457030246979518681029257798258370232378444904500443123927964953426991252584963169375246908311352835716139534031523721042242592062209679443940567224129921831246185871667329775693352217430128592609804485972229079093884657546381428641630407683617184088895025009917605859354582239304433486558716682841142635618769587641306474396798200021830851846975859537870098240938108975093913715735231796254859758283074293896041872721587865991034497583907759682755505021111124763580896999821737077833837548760285018550954288124313745347066561017485307780095482584255481822593172824847884091742497908655040363082793476805486971405322190730789902238996609226526219389955741807188014536714666315467872218369193222272518639260900908271114165644040951059213660562601306730304380589645725807629233296981021324092675205500642032267083385116365961533083835375823239611496627291518871429836578640839908072764382647405288731869284571572959279520901086795505993223523265475316486023781996356066078037436834568005859020096226396562513923889779818314804986858784556869640800044522304872612506953627245478948714190319772925382799976209739782583794053588141219647858815326960607957355044624744494210120898490355558912363659451375530541126151172942726614041555041338505367666122090911775291708357983818973421030308367063894838172474538577934281881722259118831240134994822123263313522546404856706497018689385187287454367422302080325627873373250247651130912593025215944488177202381801261766869892622384563794038581668908315042584268629336764337614924676888126402937744686858187712387869912140594916567086626609448718402912535404975633852488821527080917521622682493485217691460776607333835931973143684612404142363961437177897258176622491435675071322045751059525643738891647189795309808811443622638534860084316363312043601428564192647245877211829112848426881667098061202723821213817295912685300911968361091834744497405919134468619135551067607721637000318841094323620982526564539963977189110113497198015349242945929617439728579088580726752867200650494464879764165729246166843996239001388357253260144700776453979062599631788993975044266334544195734760499919160718997286569850403351338770889205353096867463224003518899013737152130417486320277735683996777781234101453112191546841106813140739359733256529319593776980319775689923528475296551393538202434582951949012905481353287752550032942362658820232800167120826891359704388096124273704128387068666123352921159396646429718379289595212946990411343480398799280346641624766658542636784721617988100894195041616988654644986193991001080051830126491516520205002013134101431655794448305731256445754901105102170958615778150287866184563124218538143688164979092296741476891217794141639605130206489742283885152563721025869080785598220532471553016328933510846156491129736625163850557466246905678928573914686955673980081861706847682113549077273948737072978144566190842329434911777339877616787795152703311672732369076421131989832355560413312235112896016312775343475951224254914845939395419026962143509107046551957145597061310124380388858537448101496763113609624068396207343236473943368848947013616800833236538070050477703695331722433475764686069590418090084027011468211357740206400689782140493718892122377163517801111411815339403051468193725620302557807335866619124872816369675194797897232875219674461948012915956959131053877119323101259678535595310217731948823442087779190913211175253649961368789483448498010231796917085730134096278179743117009968852794025114948438229981042478030763652503856768594691219513569890108690304999700516874108095546066937038896950302192027473179885461196271495399015070256289750964110580802461902286434017722601632939544024487381432894216888763064878223564792467333352022635350886102384635723572638858306233520511820484404007238263249373846526788399771840514288848087157757645406281843729669358057353306519914262624306098753522561857914350651994679403839434037025217412486998593433562229766164627784713823649038758490418807343209522166950397630434786617189080142707757476643926204028710583514241193245246903754853387038721725225339127650930921801649555247800168765374674627819666898058839919414582275312015887448927133376265198506079787490846250933966707231664520864126869264225244134970945353832188141728920247305191698676096395183302445109289911552906447376777705005021871446429739614840591769287296201643995533624037141345337751302363465607142427896651431379826044245119627024566590680663374184678832656170477904252928308271167162797072445846748194614391238703500516555430930259176980137493097773936283976654466285755031912409490709289680449198153211580106935843750698120149477238726316610505783480313211344548233770245706199091696450069450447784644147065677239449537036399002029797688463995175657824306000981493730348438426679854505111364552743572723483298695749206871906432200177477205955507373707962294002757926534507521332647944252703505778552946244575745155071603335454487697638782524565895734182573397788421417569857349026508166158259476429145607662306134072430940440203788838204590783769938450713637213146908669533833826572630896510072514904544314105321438469271253444075322090362443223717529032347996752387335654147901661854463725021976011583418522081924124795636039866816978750369621342178337317256397266151813609052236277664823305855157922466578595448335667601094981617173259902772500321925316061947982621332932512197714898715835415089380720176315071612940536855910713043290218272769349372858594239580497617874322228782192178897297011721895219548002685224474642112940985878123689105720752165317068946019593815401311265775708142447693731505634227934539177542774850746787509057513704679639053064104930428445994483894623099857985787262207512255975470477863413250479986648068438041831443623191663968120244504863576181433145589825141847254808513499800925638722479749347839133338898824011552433261382669081143913131789590204724551009543768982016063133117282842538514029423722522657065606062100361560994314994948693714354785201810440960327841754750299495071341440378166188571859310912604555822184435985195080817861975535871290989271421920729400782100096858085960663604018777194642824912783284597737404064792267807206312185749095600969943510385810915987643821733326136137967743653228872455983146212631842382568902769152936285553686361664380399060297975192644268790327614831834101122744920114150710447385834418587820839674635977688256845194878561796919713926655737910576735453627622586570996971381280986582332079291199127012747805267247820296420263252552608727169887090065810667617102417619273524141491719851607287220091717024391459218644504398754793611475376218494720381879577169542658616161433555872192452111536149250479297983874599726656232758877028533047203331415992328143036272330550419125106458689158367231742286540319971340037928525896501872201977794427664800600996327507701582042199699004205357304457414355721366602369018437260919718436554367463344488119762690298527550245469995594058951267311903551181981772517685032777965428521517515955438069662736992094278133274762169069539236105814629340349559926339802049023986020399164340932458701896472378480341368170218534088482533141635932549128837077796612711833416942649208873550700025418481136027479727688443162275737325973675182600074204033879416104714876192877215093970819618676119516493908802622641789955684682529077618339607421877099958741368501495518854338019895556702303727033515677953312705589901363397541186973809053180301790849407790929754250532783806516036413904669874458493078187568995528552285075920525111781348989610090833779913541260829437240033261349860400409444509215732814589976826684447549483083188700550298164784111631714127453062373145522001859362604616188986815110565718788968262821197429911636128965616464322756751098599568086798078130242674216710073105647671791964493657552461046551756356794463542736619880055689339190009148013836110605731628611937760031888814911348829975378043560646850605458848855162901071471269107713289769044681317678282915070132194555926982634390178095928377751767282521969369208230213657194187252265554278724454985299929778884162865264981435379982926583256011120634923427259835897421081239962280455928695839899777778677392330086911609151984574123775269405829862233788413312575470527197938534374286372826950288444785259302000090155189030551946749274223572442578821230196415840355983116269328029174848851600436411564066714565682894587654098663359275609562193530570053845482977142343374385297189958438403338581273914332694009655880499480488036391565325334457229357366481099517358369093896125115470079452751324046549578917297883446618924893274651042104870530791211206371869218824967983942791657775773418981227133879223535539742300775684664236213376852176424326725751741098398058370857171345013798048895018172609808449166726251331732834751747134428805210543450459593668114066706812955161901502541982384176131884823509464051021841683627607010003214828131001208242237101004796148350371755962579634793677735649963970960730283791435456401638843480258882150228853743976186951969636705669612586639047051528898452192611124781863713991636474678595566161851726492449275788931097031827150884064267901517223363620055152511784883535365101286329849744405463263464581977559982869262757996294070114066784300451859957047001741542161463399807397698422798153654830347533814829553381224137721613255646807109812445502144442494688377667803922108679370766827929814485773248114238652029582189897650039546589231833607964917520028247687248966332242105987939861335701039352564285522009106715814219399308359719498487465581459654120241327731612424867396872655183885221140760066955837407610591464501570186958683348954285060021268452835304002895022998786167040220229016140490320237020224195513390083480657202421258364975689956109911907642043584925561929456561217126212325752250119283368923723844241858825287701537251350367746173182773440311235811353705607343242178512376074478128778193634979354145911114544708724259843870524146541365295168957657686769069337974952310882201336296857957086177570353098702341561125517765700232688219102331081616955015794751216648818278932133022670197496486896664429900066371615146496355627850894412303965096284412853000708548449171303700634278409130291263177726958610713174867951273981739735199837726238021411142641863993626120867231797414760448066564147320941364478270249064752839932370676044983286227633937615849632593515478906271879480190092645085012259137308717555393813019017958357011175951093042916386771022254887881103709250303493470965971722602558370964512640546746263076446843939909196403625960883643220834837831800127509940422769610254959878712741173257422343950689088138523114021174859404081391295714170202928589883274437312669653058162062563976887171896605860677440151918679062443212714021494139912553142868889659619716385346912369288328608769729120937989260426787312015821951699563938368299199987361923726450659431311527764244247824819764947541303287974048474002885336766641481210301621901903471028342624906962147977361065878956520696615141749302312997301836288790744529248921329606880912985793730094954672543783397160952514134995554229668872344608446215419320138396663868165847885143746896319832816975013413394771652998492752141897094435424510612527209468883864500949326724750691962794772820216769079973560206957848115391634732501390952441355552831244506076376820826819127479782289715410533094342815414383773031607558143556932083540416500793962056177845039940447390831159937839155129417799678454722181289828334920030997181995066143908653085856923390697197796263790771453664419133716456046127529510000073617009339649713398564488980163412419915861002529142086539793321743229803200613194985464587780149694665400733130670570858978078335877988878647186334012615608985082197542083574220974867584196650791908714454945815905924052842111302249030621520738140307769966735996276557976897726892937672618915912781407821049590678423097926685125321377888970439555745673963993771411729480425041607951292320338197973760508558645579772749181808179699611262087739574569701211740832798275633761599869471327258064835301172113557584131672171256365140032312062871026943342674144404316747074117342399804998618276220639501978591462801337940543743702530262768070169594927300384768616326365096908779048900449864931043876469945035677416141812190646738555333540408299657231985481433027295680546041760349240564937469734441675702774781193516918890191810329950250943110513784020548083191252877863543825605640659873752320470644633641716864120469331525947197096308186555829554432125769120923497831519424575456706761021610224196073442837020587395521417594501828024155787608304611549671450898764714169542629915025071303079113533929017009294885887323870612417324249264343473125653425168790153752600201062646784253185074291130125579298339849814624039692496783346945563016991417584703113766938638812387514952608186195725891288325470826918881199584126629176819045390310175307298984629164439905233537047733881320042100026276658043539731448898185262675608917348173909769778440661950057088558259690950045848982083265903400117304755451884252565377140636659022675651646061080234900560638767049956787710620233013012896833084634663787963950430774981636157744720943150577994344014394664720293563110569620388604075591492407357317116014549046603727957736144863525452195856388405868695848520750245799534103736467833049544092131089363388103084726625337103428208133663116984897211527260052199488493951166560219984816204905195147070759804004920418138478499875561278825387011219599640481800369992127018575468976178759902074678601002671430849038691700902150400865024355348658582057515689160072632173113820149513578898862268536608708770130064806799217712720937856470902794140503279388600474273549450595457148057992520054797949432989108996681738319887440435452198174018997821370696224392101676341778840598118626793048717265694569618857429805230168299675606622218403067235374249603390481605390024737866102081505612956376089452260803415810034812646633219175491275183628078114967557107444140865815569041993515513717499736412486841381094645698945968970068618674614187983158411339254077300957318954245141097143390547856407057226118280688175117127230405713684056383044430624279087666752671941844681339176625938965049140197384258939818454576460443349449626156284893344564668461072039297663749826313011655667212126809289312371246616077185852234252070763976984971096909068913019972714830005968074685479708919737031969596302443216581843021294592284883992960434861059947916878160821225366283302871166310118376423607753567955083681214366729883901428387710151109874485955177060372085138645014589404750449578637054497728390398247064460886498367085880251093642612047419846672967015515124215194818253225653650066254729391114630527101859374895386072678097258276547041320261357844619143471346786862348643514630646088011493677392654409102432716905224359691856732731451906037443470185391761059031031616557092484055303223525627834639867326112495671709388369605833022721429251637269117606744194653592278070616632523444692837965168013047207755321978007816731917709225614496098167098736763890291719308523952192561197874599754833744439461028832417258147265533560943934738327573894597423956095451330658270157569320931136524603243026454085995584019114920055645923659132444963998656242042813340367359712181594537820028539754445015205594202777609128830458625048715334253105836541555318568731537796499830652462806591207617989374224956063049412918049086579579765530708803052785034547977559336670547417273206040783866188743425152861622605864659752404882614369812980737846953691391128023629858484540233076589793079126571919290243050677048552615199649805271522980564745882242877786873017878321552625465624992059845124299844919600022469627366277800344216505750407982730642340035890543469065361769587280682061405779205022244144665653763367377016752115435336352581792087481761795316110159838074445832011200864185463350579197610973727690638753961375771225343834925872853231309307983919719660022483839446399653256584302290967375502668356312711934173928008076971500279150565592754391116608262123125515905148498072565197565835369412968496543153529875026610127935929678461251029871021454504144749717118479218725829061283284361787961394429867097052149566858004491375046859332987596651409255454826314934006061839192619708443470112398789110576209975002559454446741164402949706158634102757873567020026871138857412409274294116289152668132411633461949975890835299527563370129516503093828842526408944805333886835872152285737899495032926992696377995269763454119403392211489928262521932438188184720478494686318256674748184899664110009226233002220060764335448493335818447311133915046427728998017663375658664119902212931219027239380659251263598074068455444163649024601406407170842667158520906024617021009217690467534135829610777468112108779261073429430934484745211382663979918652303440799085961568240127744921723542636452099714501143260546437450701850667399589420079138613007803673026421874742592015358016962989244899610061674324305534039720196916869250512371689119237382545347270514071534895336240627289699400853382369232062149747771484712550674847490644385781979339308579642323983130175652174622189374240439260577059536043517001553671974795261614782019802712224787978749706899006310426729776784685343754259099968468932393388098672741365265099196505216493326476634296341576556397210977699311818650279201690470924812773535211598896860862274307496359485951247741003064758676873531307411281964829674592716163940042279000023168330059252557572040462888967729739932507985521614232463327049191106606969726957067650287571516781192885807928732719978295838567092972463175524956741414230520753687959201647296774432760537223908935950822715100026045148736148708937735990089615387464225288749061828562362305384010138379836363236500353513883716482357478591524898808267598156252049072222643724692157658649524315270786071193496711274795146756236851370906260188317187217078227339047580830234446538347655130661526667719198620593211705895885525736964543730839142232320153241269754364745908661051833470563088087597644257534627629013968755625680244719751051200210060617872155313184971650448914777771254209446418938321165303107610238563469644790830094332229513418749703549115059488972514085168574564411354846843702352950693115230547757459203890791141693006259085824852386362139699317594253500479238495310009276962919177760797665028569919915926963056022712515492910270103331566076569151166017574438733232695842310456228430294876883617797036066487641645908742380267485291591033975522896081080138832989795473611760434987500931958077516652750892381882045422686447085114685089978157041462795578763713857447981056339980306327108701623025239844948489646085590719616270825505328401820988471747461900554549837395816831067400092200625853464255586518138595294998479103831125953583533128916888236997396960471067718166317543885698468427684097863883014714726470218928939489234198897788233480206477667861776280812748170513516818241336638794623208824316539744567255281021236206039992332083769248147902290585823649798049932430734098696887766584752048039726325035842794284379027803752700191711246066844827819858349998964216899472832751713874366917791059205876628434665747743795845727598484156342882392109941695676735765801256874330667188406139888692888215784136133570690035333552690919278758248315544210373721220443524822716258760026892775162993702163854290421737874529745235788643583187249654853630069692731719843843350922444853088660646246265306107609359847597805202059203653154956366828732616670983192756542030660599132694644945431139595714368939679512807587842292074537215284974026764845837076150710915140637341014351024996029875960838075515788180812124956943991139361426954775896135175461103798998522083852453229296229664450808367423380129443045390100610541313210048388842622882745112504749201675417941058793976582852911351273003450479296998761213689714704622085769954136903681625051632585190442997880266073141034270678418537718560486206672688974967806434354370056480700962968749965039527949623885001377242511184894898755347059369384358357777834108273851377486142559698336972740700126438374389862705812680556650222241664175372296400066074763574268110015929550262716119222060330004462520538889199135880232936752524405217835650701876755988877378640938254754540775847135550146516269515186654349429321482797614666588919808244827524921309389151239655127424859871496500254058591751790765054716372955591112711357401426000579097502059437806774856768908845219328409914252871646364444558779063003904956705757546655361741763962968318684178211127400578242448484749302699028614044648129485472819992276162959769741989845605232713387949988913361893072709074040946643309965941052287480793347518156969939584277210606985350875951578948471264566420861292992078395390577770784306053480190543100014133908240469643447126955967801656792761450849955062662586216840968035447800306660139334973078690235000885679816141142258666140713088840279282610631222330671871489865484873718197910272891219584068939339030343349109986180453237577342855005995977878811327038025670252094839644861544448270770712968352303722881752008792914141969126393459717068909983966334151216951341974469368625262362116766069217855146705378696804691038424451474919637665422089908066815105689849633234616132510547169825939726118787994236006564174268423125115592803081727784470937807429636257090766122602398268469836304985618916956340134790685480499245870310262780184299414977141858212542719337528996944538743491856280489967648245110200481282478330635139343489987791339901312973469162415449785419047022571117427820752568066163819869602092147453821990458408668718564143394975017901908484334829315632983313201020690453692303607651147263631653570225605859867800455060684534953188337724809163108092758083029650292903250342449926259151398293214815008413373559551296310883935418390419736211926494832326607813879283607608303761795379413693311629845823311326695080445885312231336386535944619191336694031035607062036715703566672391416105718128974056559538264967867773962430796987579017576962809984995381737190574857850172848044719958659394448849928744920087217676064982783280938184915068600424646233074651472707433915820259254053750063641409070331560566776017471128292461989999319935140583795809803176517681731137725002143667621675794929625949038267263459488448218279695761536608911794476784768951807196676287363375413001611693300273148099076013282617915039595236280093094949509658174135304149385832660857545149901131496433760449338650197643363449160730867824489657071603721688828386012195350896407277831234016638204137577684290173408843656644133483603661006063339573280389286182104047337359512002117500420179006346899577692751454425016385236491025217522394126449533040125319441797097040140649821426713409808203416738872856598395349608457904715883517978124293815604166723106437369847982254195491754728880698130882739076881138326020704115927650709900003513263754824590573696190532741146035891066102776565708278508781642197918633680352137230992716491309247914039829631947762568653715754946088081774906407215272025944566308775723484952189465744539497582266522919833858243686785245069234459785287950169025171318494904843186628855318130680543826069759830332302705830938884222756360289058458031738338589524985051743491486851107462741491002827456849261678983384397364747876902192898831540281268037634496399466302894852002551951736369973809629159282118492965301672350742214218339037203586520873781255182983921962174935189228501065220014217054849851347378190627097641020154681334720741166376713190514837624487600480372695366913290380478409040639549766555455222356400181670078971672224070410242714158838645160442382425207457069730109793044159202728198993164663799755794379472895621283581141070550190127504066278561300781383025687460037973585190177696314811391141730431439397282680839109819768719140538521723687785470907200725440311642053649554005347690126416991805021377842057095829933707079235694385777447133002885834084793309333446656244862899372094123087276941996802721501375384409860158954858610938235923662123178728678451360942856142613843319311971082073760255923296840158798115978201231627195531558756701173879864867541457531466983755964058294003944101683880064754278148182821685971903055894212746420265768913157779358745132391801490833488622767547307754969662105271008162574837128939311132788838473402404608714613313750457515440258143761759855665213618458435999292334226110486983778091926436573718401491656195370954242444100283854156169856850050176271268513572729590365819040514233283956161275792214604225732649653798923100619971940473040088285364831011869204253425934665887791720185602652559254874341414539597031979176403624241525669318258097765741272567079319052389700078941989991220906536064914126254096561400496032310689279385761173427070831214180002795108900856444113490446143323754129962426699374204668851207000738200510589619290640426524648996885913458156875217397540902578517482401538297085593335736029114775596638081281236851813717029615177221632338849755724243228667101539503483750713066753448550388824383816431785268910045503975096963363371564526769812284064417771753594332472061283501740386714656918907950337562267146385400518533647512731616889027831225628564843551959758231366876942326435728924884169355805294483266371584380344429397857372273497947507091912915357670963533494138131205826605272466735538112778611451606455770828951412615410274916831196089586675257237380413304434144680763185840980673822298775118857196661135714502243849093575904840676287756423733300623845904517112186169425758011118570523618761589453225063459921610052960730034308467513832961381694799262447649925409821907321758547752994143725816778374727397947436459555243790510393344128157696017930067701542598623326169539435141197808049670087367494008336226568160461689499523912642821330722444530050279413198361321565838317580835827275021516722987693070484842945729880566219983581340722954873196566994028510384244317926538349640244214903204062539195974187808142601539904411326107775093636863132176079790032638413247875978129093408894520045058336414721051222392779398289150903490380112921624648920116051655550992898581531214742557670606652341258302040799453940232826043833390401559399629214309522113557804412029463139593254125886202794573130708837478296030174248407873519619982388950001980831268767448457602625217381537504406564275284183697230858754215997789498712585119844621593690090083589134289923045109486179112724179510006872174541936978454585246641012799551889371442023048512491910356002660052764337665415660442192438022288024934690618472070229181179874667753067606623893599176722503122245524680284405188838431725500448871621491944218482538204220149564853397871438811711785284688690795052189330668584970872068106104823568157595443390470274525979267178831948146908219113820352498756672650652028763546596403298126021652492478483498564266513501425250350445957857036280309300229763523888988307752364824794116804850451984735559410955686026574102656532965141998880992453000734495842790387425185879683844813861975019759383078616389710282384367814647604936892475949360032419775421846350547911248079097557857563949472798912640562799428100268319241169586386071486843775599139975124491003755784832598122738507156295155290221589098924824528908700833745475849910361624768096308186175469872416461229926122819335565851389780526398367099563509853293027876084454958761089403912343992905151055325600203027486201471276539636905570612639789572965877683789402468243246253204929515709513178466417756219198588734150377620955834013081596434173398979729983401941362750542365304152745566475500133870499448169175830466466168459487508715036250676942793532404968141793492432664345005359086922568483254416782739030507064421700488455037646682894494782871319378453258271306363764684313410548116357112297279341685369397566948216285347223153642235044981881170646090450943385298928770609917853267288792513935928439836827209365844206022618727824141001904976852795775422352189815470833824111449660292980847302350116491745999198348073237673619127556821190807439660823862684912829930202934889911801707922347012250593660355816140178277135617753126141728066519712434392236526710628440268860433172410792407523906015999575617306705842148039136730275394855816865687669835808942767713303669561214476249627400502739224353727781674406909357895348312244958901664316230998685049815988541714673670522651483556095267768023705832739383652735430181609032273015592230223500671590389155766253697528525307490883407372680058661643500449147501442444158178321924807305324785333047628841619405871232103848129986704494601651808888276880288562314262752878457940015298197586980602126123276867154372134561904155165358030112063253649978062097091602732741308280851140979472275230441020549371090186411976166089288584531497242163427139924115864489060403786660259382011849797762978651998232669100442338150486369684876527983926105917050157830752139807531251657954381161899712453577706313694094743723555307159618929818070923835427877517358539628505760684445351949851229359360545542895427066250298212670599264337939572508226567592851294225504415149262963056121622265319050970729883783676382758736960807185659651659701740491800461649682753909155169960570566322137475642699994734771948503975430349582475613367824249700023503286806719391576539741515629762069125747211333755681071189633606925357432590909835637063534203485342059458892192944030582802373811810363137141340400516748959140648257222818435629675028547406961349122552996313531084084608908977430051569879822513886255387126801948257149191321567541860014520872309416157348620595970912882937540004133186047559462067481691473236566935350196513193715557187249192456860346264248358331567566199451932284989839622383810990875559135074684128848022337494019499755799120625234433258009941791434146096764590891453469826258795295042383522523223865305972153143590637530034297455438954562561873325546192505306810107457035889566021819755118971014346234727553458458803263532589715658819928149035111496572673616363626844957802098608334891988985563908009519123265237912574550929034793730288461918698778242185847068598461597987565244504562691712361843497207024253902315173447427649160061000828419874331104892609631652297903480384608058841306540507104329230764123560033316147644772030995472544018930740636922216266358643610114951902541424024858042039826571310115164714655556843340727148556092645840387229888548476380315106566108095289321179984553765417299856645305004749831564929599689469271483629810909922023344217921925130997596234816280144619849150011863962725645948955807233692613585721547811901149345721688724170698777422398966034150932057333344527734979492201036775008634246814236627319624379573220592140462842880971841935904674725657977776609737120211042068573330576706337301211297757878479670312208593493582355649297038854321576676038261942712247620988400238954120474981329633780493125639995939002745072160965891245515283662494323175642080538026520005958052100030126245257275116634077506707306855001320458861626895038894925792600918889317092057629922395774663402798477754189269507621107387655440626408620249288904885599852250509004416208972999045973593782009500687828275811782324582307262594958614297943799064367698070833371401323911251612916089074522763335665220997951331977085881520393896867853069878878787636823165983116910688966925037159114999231038219296892361198081380421343526674394239149436213060931613272877001471393612651515938854589695380050653390611827483509536103555679720308036480866136217737058151231058861981734799470535379321778075806574671404152298943610237065797743644265624280733801909588378785048077183042317003406206694283002981883583122210418380313200023960078583986322046612001331475993745484113510068150219112958040725950374267579739837393836379125746365991805231837203571818673668887433177236765634623484164805691081372484535407786086461418268561514475829146269237275234592427051475246606087431025877901385572453833494422621259854946609528456101020181586747293373213148202299674875866442224293023424309775688466886549404204373016509471801764467403758309767381472545726120216531183125550025677513900785306660440784124650763317390898035033241823209631069118758707015733422186382145292664711758161853419366587030155591251276167452083874240202845131326412290363572021233061382408111753834194702355315507434958150963280447414087414575068460177188252246099274265531086154338415136518414605495149386045063987661766040860595709246930498837339010156606330868452611656747197906603976357042984550233839994228030285894858032053711485820940435406477190713362819471154018874291216400843516235527723159711877759673999373329684176903861507810857554142622100931338037702270876625446766253884247938667158431666591522827325953309074258752255109265341511708313841997408246450149300219668609745674095388014111648292295632213516751400638866362889761614009973527168512300361371086399082597572473087482900712353344523581394931285457608389719551465253894151534399125739178384047052659210056058913364926933525257609988661390229735662059567691723662093918017466402830207285486721175961836878303575078225098770797023757133370198773132101738742429315565184763204337938455192902246000139145333094193766810961204773837193217976034851041891200375024617272167045347331532722393798192224730736300452849808382077780032115832155391852980292687418730268761740039104619782505127343093746450804884439981227649339064553580239646517027499713249585088234540522229086299471247213950532286260374070536822190871534703087629957634757974932999810435253526893355474186537996882122336664899519607857387069935524074315457567651462271833850696610044711820086578863706614706464442718388482527065886446410065577621633390700280117994997192747411581873174151329245912433000447218186267438254312221156274254271327869133369830820153570993767828160417945602693204229085603399928138085391722509657234580154175131282258373548901444559812387068157150243682653872553153051898998477874050704696962778972957019364634703171218389617993250086567368875224824704645285000685860282796240639407729497622384087247694026272928945449538382275555366147647176263148480848380142724534063110560797809600406357874594132586532366948548265202351993554393432101355830040114401623041660908697916789994519208659157566164469874872844232167686779945550855868983865307175314721991853772116000922938268365304154775639759589956722540632756199764454994305769780183821532121089723236338240350440308553585097450986132550678312979514500432090656330726587764534953244134880048981839478319772539225568803796971901248450094754422095186374622045811458523182898813509761118516542351999575527063677615407395101350421293372394798721407116913974717807687199525873697633148111271986486318443681911230956148701579206070183816529422568819642358240507686702641240995556105276468295320977513340559692239268163755136231037719969625451312981739683801145555129016013693520057906104919207804859949741090594822727916018829573297081059728662011528775578010788796448998950898504866337077167028777341813602354469276274497240883799592060155202997956125723923198366387787651518443303831139681474131274795329347700124522227425052652590966056604818200194390733402281603256451831205584835203172223035240375238341351316084561049816350463942078024229372602622547270145435094166147422634972471608697353173838915861219349681178899260538936430875984327656392521835183988836322698923463198379688317879667370219302564792645052228528664736729064666752573969405284696721707194243762248814844243646901923647793972460618362459138852999516736815815584037689070412494756145023419824971690744262380011834816585143814365409699547390962147812629650334700125675543460162590319960918913544918413234152668945173025732176076797153005755122000179988812210743204374269952138320849380755727545349768222150175061539940140017824896342233507005550689219201376899329065413350052248238690420669521103982884919526593357623436735458564941985886313990222616403955727321653761140997192488930720047231120995727666899407236101439683550687743327707841456664164245748673490452091019296075788096936494859991671166795614018736061123701220614281670005931477633173446413963452124023771712336708568674420128024473913918747750711689665366022580784775802427122908101291602503273550122388982397838660731803494912823492138937292896479260143063277531234472580002628996925369342745949911050497759530742142433285609521510820651038625665766587023732062531617188169422981870181033138584734840482516941867129929181156445157462106207353560880908630213178319379785155615717270994438438724547268461750670554848026032128318607784112887953568065217438022221950692946831998774399711397739352073550963063358492095066609828310531703017330550429311689346503586803401940793383835538393497621226024851795626327732428255549405934501906674397884115416627803054121158245182989470040389998779747441068872490780338188741526691633538532764837094898668332792312438868279924343410907674655753170570402775932924887602612278246305917841107181124693181585235069348588865797210294486616877237824484776001197466696915604651646083815073619774630713419495883115323284353817690939716750638169130970513274233763620586093023541337214115168307526517660210770233563100392916711340330496874652365082398299008695785779647238431165503562150107864211383295100642724447473251617838591389318693022913506652811483234857094598549086027269653525604135784866770894963139335706424617572741043073077703823027345715476922417602186607145415601125794612435769849685947894974535039441404125473379598711788509931631529812631778242037511962408939192737235889507312675031487078883688699950096181089854678308138067202281656068965742714572633219909159757459065920400582299582656937380246106420423059779502889574311227099107663110798993655348808720478815694596144715066269669341348426682658046136046902300874424941012173966269638336486736152458293936580478102911814071675956642570250152643047181468630553174771510905538029949893045088294446539352328028538094892156865173921769383625961229612067513450240956870764468218288689019923044921306958863051791284588371524563249674437271394120714348676588433207373342245001124237204136014593556323417360702252975337757809969893943134344842218863530578452134153235417890154180387317072745490649860089571763159965531986726918278462095826927100079375470137836908671042665197037250670096205813172353023974452524080362529470676521853812568455368441831794923055274270317237783377199342818798262509782822788624213074770398975092658423347260405117648012006905243557133136312022021568289270046400027002245628823782548327050810371312101592885493711299330780604021157368026779655078731657246498666208100255897296086526429594856166737021530136959382962712305290658221951553924977484017679897512285459077372391602955839545033205762891069058825699673776307790095406877629593350050607625990817426207168960822752841847919058603280408397289580177609137028594839522927780966749393487640977356110394366367882450585088925588032518786021398858616016329494221742794000252063433982934363382324214687083827863104142684774415407232013468708778849466806526857965134573793036718794215780394348999866164975639343595414797534719496098858731006052571505502082217307084207797659004648622409407978663945351030732110079677975238198131478138563492294141494484064581620800722492687725330186017871428432080967456549042877966080953910276194301115168224808837884053076717398822352952059285433388355572328136983402680640648234479403756481319465725915914769029702493149840279558114597170871121945722855185643597322617451553477202599001831767352658785843401450376803266974948858832760731080817933056806540625727966722418707497546466870328775982892503926590022654171996813648552875719475325496318015010240849583933593526241791226705678289285984754922475720694222845707596979332102561988231771844064729104196031383498826806216775638636243612954573069978908185969657946084352858129682528093365142134018596292597605758122011743968219813410057336469782926414049850853704880505977187411704016011676845188390402543641001168108544882246165457415375191903525979137400187222747524703586632120524728434476333017143030628287060772300651305138286395126578075229192847446299595444435127011978165276339409472297174670185523244864111353195886546661078816062794054963372172641307589086687068606842433397935328581516618268697915908933952474892770806778641484687454639054769066594596018474642762982942106823864630349331433509536128631041569838180477859816743144972473357799977077059277243810304091748207950791670578943393685480376174346281195577318503727836782795939928454399629771252106408046694923261060958742976769361912156478481226182997331029134962899338338240771176681632516732787961640752391334800370515747245807324167299230304687268590879689820319027570261405012846304779912697451426353248763512597377890629604623743401455610181045598849870388932604610510623280956755885900439381731197975248524431880150735169358578005114247600938290015016935355467975201710381816882156009657259037181766954373612022157972715846323768897018750712133124528170423829847611844278953324358284469488263759599703618395740835361814640987824202044636107935197122513882782241961564870994563086811936851701777436088462503715017622679790804602606814690484474807513491551832659134149683065902847851427409357903539440612391855448405390793813116950884926614742076535760887170661308665869578316591587193024904647037455694878364883274064405312497690928135816533501271366412297123720327218687602931933281442703968989992957663990382453218078110942430193148918236995730619880571428452270547930935814752114158515970533446414244214330956702923517475774984403346056741701902434878265735707824925205742701864740773222237532811410737568677113020866024103981996394999406438618212082479578284773697448474620374087420255561168941435975802275779354505600678647218971990177883587514301396093321036145610428696473199252146828607027442736983749680452636442611228818784005376337405768274336185937978514796766898661470870694612025771231867003420064995537745414236117970238356891797293907890004906353794054552191839591785091714358678937669546157323542322309579090708492140510117996211185202474107014536388075640016414551556140104393628811748183329295865299640107382626816676918797466491216805812784921928854118725902169419994726362693680261956197041674059133185830733449452827106680344560600081749128792994566603724380226443306289636367173496728971948764607350926135672740606875873806114339030054712903096012849139349520944785933294912148738219366370461205840265372713002955140390553064709810876983323942374944956006919961717396087154893615309808450746805203872849235798499281922848889896189079243863923346450648629488026607291917042032575748196343245974116524428706664041668219223048229033398565732900399700439186821823884332629829096622901840065248208838387071377856921981452856582766809210897933026390060279334848425563740674404764581100105754744481213891611055414306230864383609184915473462897387336610237924407626908332160131621794233385592773746529817352672059840665017222525706867169501694646847691055631468247700525399558114900586036086700942564940949140186967888910667664146842829317521826978508317529772364692160519130393801386188209039388634772915954369052849771878491136804129945184122021708558713008818987392530567509785761456902356220413037013651605974289577792133298086984638094427882686309652928772383244584608286518027112342843832978944024531185082406372473693304147629118512753523666835400161940091949826956808559386429950773187924791686829833161360559913000698315929598828586096053629621912375875188892788817018839388809409253903402001330391323005936967107580448003371680691813746827039840162001801885558641182664656158699471722349638538240754918545197389770706837427374302280035073395280136667882376279827556146487209348703408033131263393131903132036912902443197686738311617311717849826295739263901664804021461543825948169781617651127290089952133747923926400738131671133749356038853816754783506689712729017197356079716877432211995890264823965686048012652998660985780097457700408838192793587086689887779070688216315777990746009822272199808305344893326340308565472584256453552503765300999867030912607491814114471848572167514783084519666140069259843282869067806969686379865768560427899958706172280262826676177789601376034452121221684587599125085221414198707717064821419387654318171591521233964305876918069745797974298027378702097657785792608576883762273404377875775996735411096025543461308582766950576653150301043486855121281944803722582785988715135049038664982471022407027129990121464942635287382228923048349252445419278968772074595799034019002177790263926992750994668012818790147198096791107814744473530308537701763315772868670627249950342905982313087618700651962957391865152970365625042964405164619330722874117792257021713287079836152135104822457951646496182528916596023448156974657699293462473290671951640671232030284951904184011827073414989329623041285484802817107206195139133967053897239164307175317876318640090362395751782017335627857868100700463577792302066282380420361647217189059159018327394956632931619417241128164523864288219221844559877060410109093968910058071274067422506911021335060990651132269179639701545998107957749838959776267482073025990380827413988663286737584299138819862020112421534270926512718362942841698934692470634925424542005520525813889450072193212775618254297881750012118244761122542042708191618048261617284395113542856607219559311428633436803356894702797679837723138327103129936096376813501637052597457259449894263198385427260340734106331975280417094705121542233452494808281508465006265299221572995936306107847947744659178193473135660688004149160955272846308301687291063651297292285761242790424003371052533825855098706666536943341198559134650301040154242370447705658317912702028133823799682699197675894586765478378560165510030384263227943005089682051881445750780015233122484139610579434768261880363201245026654024268895950608924361420478764422576821715114290495743386380586899059817661343781919467288094518955394101372675378301320671612939915532189817272825151105548968733250275952865498005318644584928246270708014529010832772491568253167682570711838904841313301837597856774838009733649361682598782282940980807769576301452540134395587831822126073497910386134759776832540645121132759625445259584757351911720709308958375202437721229112190383521936148437355085877141931290398249176632094299421938233439584998291354856872921359269337509617575945148672635448206601283005493958174743266265142114984089112218666142279481665364532508409757484655669405430712266527466579880631516221293890759430346093966047706507792238615573954255784685932371186055748363610391729833009819955603760148857289361540612259167020152977513598651765245109404746983281466678627918648021786255092810168083715388493276922780354839997883369464669130174561945185425643942075092099469791762976947012444238539232012497697542246256127521259319273479342619660231083749131844119424844927594190810747576706118683021214002416687297273134661190092152267827976514467762322898778809971801685004683423884454368606688098336216520983329529691960042543020147402691108281201492469756710264553369335181363710343638459241631049007134340321787332579191074777723262637141484450018304654452036997043331735505334615491187641572562744419545183192177591893484958615668455162774668244943177399128500554641666465507607380293472798857425589254840256267703902139908632969700820079405130112350112083692443808249162325445668750990139944189821756180933108305695002409647073555303052731212594290448553893205863060294071615074149569950229638989019937037219342327219281784620214287250229097441298205297664183270509349160937712209215998969381354847553969713410214926000035381963113189670199026760089279867213331551787233293608109222959445304965261529504343866171911626170349406390743076774895065345260813004017104075433885264326703233948641368804789374602383411706842078809524172153881345769505849780806893669586733765909304252332345020287602845993619461488047189266611167846418528279522731432738064487146109711776314680874756229121972278480724914891988084665994017751861724378518510046478706234797376638682651099895736799797897548806126822544332839591125321752280237052410415927091597357563832722516274803053690352439088447277002048978981913632308408968335858282016972798108016378174152651051541860663690009332974546591679872904793244763965987864580004673327879960412275862559099913209852754016899166881904671911951636696919428529148574422023560227943772337447773855722001295144351640212078512487026319884280277097676131424944535559428910050454042686954860715341056998775507711413198962350944414485371051333520783576059313514516948046481191581866411207391468331534482247239162924730952234777491282408531996387309821737103716887284303320009312346670290894690186430608642197943239751820293776505557420472914231040415742218019011146375086030803860811875779310945459604405930048126751439996213821795318689767595210775904573885909935714476880646133985645671552310737606064128466118238479990480456529108027927490868502610465691386738500508047947848904697665147389225403404617492719099245005735748142286941943257851280785162964088217029295716956247477886955852962091280906090720336054264441874362553906632137258010899475759303713578387240558073121661546954594326203096264566510610137431965046033071060512678363657976456901700760288491669758784515916387649667635367581436671510935594667088505443432601268744136073272937346815358565046032109320231248318544161077255673585033202240760855389704629443581492096091847172697981335740969852226255500550368637711881138495224165570660710003909972573559462354134341989782672295460144529976430467211744352853639188963377152984405012226275073226834472185137610084330673557598780033133109106841152094526102728083355590906471046354257495728409096631023029604166266634822535776845080698776963558216577756194008489225773445948276420579432648400632234102653171203318974791248530114582903550330083194065448353885786217408490211933307425207199430407718766642958977134661541286718617982735367013623863807971581482200577542713136029404315929033372801419167041779870885996567885596657330068306981101135614168984592524551314043923951418223783283167094844957575803666873992847504536551547144361013598472732031811093980774843790941653290400823423360720761256042336486543639273153709064697718396747813307995861674633646043727584797609008452481858896280507266529155471659792690792499412120098668301374355340180244163293793126444124885771522202290854191267672089358235962312770108290170131509225715297814294827916155098165232198404386844736063178662114152965179167462360543831585215049820609555808582673034661686019051496000042731917010968477639287929181195642550325940754066719647175529265356864729530159046783702634319136890525871586140169910997132894390920876432774691919767840231203809217597896544438396453155836627690520671388620487361267516258643979686661322841141732730386932135829213923295657822509538025088442747746565794277735307856319633380279083666295548988254534525703492428567067159851026849005004003342798205952467830459910329809001480444221426543867609516008640810711703995275508236052702211681080525732435954129812023353668987741185197038510378082106451966291924962618283719390522060532530962406605899742739349421460832611543389970859414150566100002414490329275214133596414020674919027487090428593726852615606755468039907551585952201250705709786923854363402096044983699642786478082938692106814346913205764095832859746728443497102428652746716307242573258826167911547870343715205833995350498119200797382790327844497995516978726376481652369496132682995746465204231509132717077875061713053369154212882545396358680784861057714793710638393573572433687550936373377865058902805693769766985217696527384685213122613823522601233398866363727456052043167138256121402668746071655994218684063150862715097859545963251015477622146914530263047322111496494024284404649095032332890226441991772680906778294325901116061016343082503470787492711198355554758316234024525581982776776744170879003196535183962000485997370529249429356140175327640917717254310515178174043259164279365283263668418498851622787540654054347251931667221769969143867795666603007933714638126138531361515255665006023738920352904160322299604887854330201415889260265984591799167148511062051880997602660491377704972666251313053731319435743628825929615294504364396810965632738506959285942215996818968820364903856514987964846175810344761382518101326101457652026890483861894788958179718780721072648848084097538649482531806575416951344903537092756939454507677515961663286174161542225404096818148006631601633175289777485434022714774319208960607704787316491367015272851658821075579114646915855670347012545080908551997155285513904593368748165445535373185231544588763365899923378241485716647776645244953964490555776319941352725808894829797664850418016368984724056538351912136689125575697141067860516626918684554295547594595042090833829635296810121888848035645432418381957678821905367813873973119772463846885755833903714188410744893840504456448794651203757415312608223692475584325651892927158407741272839296141749479180388885309933429933233099144551884021773237967187884045046287089465762302746687470386905916391507056004437711380477076408381746012550094726344886507176506613612395757045106862661039204822824246460098414265827282301802528944765693320600879017110272783613643903392953358160659199353992974945232082333670832807837559020062293297704056629101564936538486267014942332978507900692965942842921845208216837890424580685440806999680356030792267767564062369189834731814270819062794911846870067861035335394964082778394755815862202166768971637067311948210565546176701530871396874485889212195200807491680489918030700385152314597390242741862807333997883757805066498197308212383391982632344534441107528782029803600431263854536786126335291747983093240605859276062846407123448587733060823412285086220441489780411628218927040595681456752132092459803517589427888074949586534057608055952451976042956504601233544914587420707001948332790200661111041299103588277461632543869754813453820231466233839310535782713893438005152921938301071634825930829603981006484497251510714700926961995331949826428506704101772283413648512024805395643222207541450330221995925033062916459770642840381746850997927116096573437711913392210694122822317840105521395657711532576776968911032418613626495730515100921636782311817158814115867968494888170359541206660175794880722869501840762737610461168119549486735731167590203462411820606834945755265222394290532785478808602862501223781570251365683014621960584431827107369366745269260764434319402948061897478226109853519204648827929617278917204651436970957654035137094726978184796480109242282618963318848514043039527644842115269726093101936685990719032523651311003741799145689443095068368610646824854089625940987236904174891710491237747335952826664670761571464508691749289968806422971798248878650062875692023076511703835359070840479154715270673757042709417579271038959063543885962232042210143863189419362512695807435262354322113176620838703434347450387197836260846408658319383665925919632542723357080554077267861327492338947812809121975890092460059051910646627044612791470878665994959663730127549339379798203358634216004828873503882096558915584020833951614017881513893111249449944694639858505992072576196037506014392283662948435588248515674798678875489985464447184122853273789432115970829655731964114203110801509012844739265107627401823566591223833530581932791703365261908037195980597162709468259533473293747030419391738128860852056264483297392113536294859203488742191758920190041933868142472580113519886620900486936403875587081766759477577483489099560304853887310713795103203280905534581102887222891940991423838003533533140105695143412081334556183994485896312562472654470047897637249839974443436295575647399999937550727099424151333281387360831060112900209004711203139803418278888281499944144734417267191825290076438359448779925277249075172676180281233876485077602682580550990933930326999826661120361373477706244099028900575490463669377451076584874568499832278108395284576355370802944346292989467377170764034191043845455770557086933010752592718169243600021150292054522226194063472642411972979961894409005386526719277437220962360035618549230288033832753145066311673637517451774407557105389951974222302130961454246603265031673745422551497348658475592438736781020449836766595167510573794595513103064717195823349644189519043942929275862576697347377988973538143603896615953744663651286385419110113954146200709607512647049566536772865728696228749353995834740613304910508881659101321025244350504052210021387241549181111658535203578985264954715214319041805779766727047494368651085406519458175427982574641498141367572834110206484318976658863573287838157692369898708995025016633866197102252431170832536912026861777693072551238924796420090214213932752711266472280231482395688863036729527932435197254421930471577960654873862522218726839942366439578013895493838401147735581358637981389603913169688265624580710813200471801435875284823797577272175673846403170632846232207470929300402580271816274530264258512120404340869720322781639339156859253618562008734241952518602059823253160557385971290606510146515966011471178958869777490096311246238371807879781193862711646366458749187204580418775382846247460712584300801674077021821323620892446557848846534601720016074142674938850825388647355926326021689953230191949040796360183994800278271560041110766026589212229977731660670334134124569877051772585935175218510872929525423328396901385326536280773677982214815595782159759744204502425811342605193908300081913131490263709433232708154114859994789270567717773967815352413239107153866167629729846905795262395490049355395593713956512190906974549217253784898515511485906580098484070627231821476683746749656408285407638532986499509620190451464246549516599914716557160280378373740535777043070962700027909328957482271241469392640572131932369208420164596976913709111907534198557333459232679871118037602608527513944160367936355533581852075358405442995016286875536494376566561769196393089847209762781492715983163397219130919411789474029287290403963669878771612427033323163922957951154316681887170828273568112133360953067333917216056025757369419257793989889889212425704820659487174904704214028003340690989924837518028193599203601924988306840755413409354957437726969709142647869726821211746452256494929599293255455350785286209478757604715631222524186456979114633819447574068078019433740036335992808544038247169328457444347887196747950883280663881871426249762175842035009740903735568999404192513790569822392445895448917162836733629109223229339179792779506360946425980202404174184782591879935934053157951074992935732044272300048702002905837184383506907085020209263367550689263691368219754882049853919339174904011957892847659925137668230011346796523420318138319160032086641808792131040099622324567206538927685067344229779804464008294740501084343525058124373334280403453644538364202487976787983096013731603004297038191586200839726337412527710974148265721299583732689807717701039129489177178029536451991245324151198009249085421823174497140917053937432859696292233168106702392747078116338981573650438063752261707456395367612723506478201652367708526981042524021855926905661068241466523909519453478679093778977292733056880393260609540435853088893559298597150137479615138378026060675797452594187394809915182202937861499128131378594164199527507380306753110688267187818393183635595961412419653083817902440427967762135709208010991659002992956151008610209937428714158828190846725453832800314260644037376769113234629425217431460619450068575047001486399502420489172444831390937670065716801121456171387181691004712071847343234060915369614166930996591426557683701550834664923469812221694423235515002671089922828126397688980679036032077771894860939041070357636901357779326465570893277012381380756560635594395075787508222854095950453293002545885588941979651483203718706213155090997896889217560922732173218686979363715666599820303256034950897415977725560106714970435693149801156845446741865726408340508062725954361112231804463113805454963265949783099791489542813797445705488478973392934674752276369959763774899983139270364639222726874852776252634096311806732597494103656917865578353266820113279741286569016977925888559890977234722015852062644981660286372642688237843266817582567675899859545928163020625241369034953463713412155252199844612703540593546663531969009738091658427650741639486275574287026401753701012725959360517866732679653580684423677770816469556414523225674690647460710313764484923223791607309048442375843126439129456415399081571522231937893981256087543359727944166859883042079819964126053062756888737830022019948838497436914476174170277381491201860476481882721819976934722368533239541300778814650308644318449071907231630283563078323999478702873834621438218725853733320388339857005360844218293800696577638755208721450285015704881840697842517308479172489489790766012818629261146594599145361153326183357636783522651445641968644660990667625859137225545991855941131470240221960599165694055856389571980116245122985519409837940923240266295064276428782241851077902563289158592339120974394505637987053982568946433437710948940521841828457584879424607769386106842201219056862735842478470427136966232326761569607647123287870771332200802039931284542464894508774180760692625063443479272654751913645203375866990179538605135602366637264693528900685496326880954471572733508168416927521045282695861105034767908517035039080833994161085514076736956135158730376275633965557133738636345347837882286102080049181333253525634755082020243379881815565572694666353380652915585362106188447697457150393085777400063696832119666518949244840814843472689470077269193938556552936808513705711605473017470725244826742308936166405694691226036818523700745797025908445925878688933307971670155986484509999358135626569244596957580501038238721934929500065001485569664279018563345364462535358908676321638568313115586841955223264748102415686524376108758139982117071391300623447600553978931146358715713824003246146652252872977122768541637864706777124001015779067300720370581149292551036649104986721708618048364741288345752915911370986121623559184455652131023120642897952946287490791400314275144367245302833001561301778402764510162262534248434612075726833858956042215075449812608657537917606609772452710282751399826046693433207438009444040020485557329753657918830914190320789247503477900488431711249598479132147530479672920435198836518624350808983319127659645975926635119783366256249282043104401929043970653339060443594027462030507704709433300194823859508485024088556697510880314688723952039705646884380318912151642051010236727834986780860552103554548144423978524447665508957909869853748050095862149895106158538066820154778012094066489535228354101057538992158440389302499218144761819741438270566228901297029579369441475941244871287399464291052610373741547221050260627649767655176505557399031005444901864710185944660617285106499310906186242480315054709730931455094996414142139826400949154380269684098216555939897002802405498513195977817701560165511026015763001377558977982526282345985076697682001850787285800939912904655878525809204180416558690527178718616749478539003625759028605537496331506630180730489377455773611536329298396646180524481346471958683272613138900212778707371620239013645891970624214541404108995956476535314362562173812866828000558131225985276423137132868093904217850107991671706545116536799761929706803276896153927268380500864864535066839844539992415211511300377640113154927579334688876702482055588554821343528657593661301116618574740616283682558914973908053060728171912825202640850691661231413551476752749750555336922850932573670279742288288253507081443534355645067463035022629979726298747308387783086034122872068486277381142202749606975902496389528098883057657115339936783988333148792081437149526691592129446815112691453177585413326628132042667643576988122215103401138507848223904390388602753143406757233135301431554154401031031160026649687636495528712817012877991632324556013606423172377263047846893228330680625109066176462130746759423496206905967014292524192259083281174418957378334390039283270478418989610989801913494569842974716169783018572700888210631739809765999677302573288689620504418720843518695367327665680634353650838741949921076648459392785559798709906028421020961662022010834520928959542680979231875721751278957480674864482762177855267578335829713423077917530619333769994960049765963757274866815725461958282001461574264518052169846879738707814743248240586962478817183662977255991079011660723762837909744789592462545916482089398201381309231751501132520323688046322616830198663892914991561313289994115822708788657912233552342322259490235180944396130706229959215939419924873757666887871512695044028359484674459317072002988703552365673532039298079367199448424593981819570556784714655680235752727549109593037606076455841777630992918736135032674562054240683111443594109107574671034562022124859122605987089602786814248386893217743508257808198472651164194405340840153152012038609329800293065362715213960402643309856642788017402629329189121623139040687275576203467465388428836179482409601735146379059521286333524379099926764456004672999718888415358417062271968452480813932022406491039729023461467111456273934220822162731294112858431691370118299599358623875042814994159424629573299358703106137746488477017746131759321620726691749894997422343343670172405867782127793434081328408369606507426585272960008479231950798420800497534154238107169046473985280273788919275085562641688987064822909865914374282560668149659475195037455940853353387973299511883030003460952232669407943579453105881283456851928536191616476826907003239585201118974461015530770103140016723909038490085669696712125946391101917352090056193098633542294630851616232600976933118343877119634160122612289227123723724244922495878257565445836667536393116512276195070926724969693771798362117638850793313126556776946059733068235951494751393125098555457932786728355532654749357509283583985329966606082363078144414955821861035391208062693221777909206711046771563225981338769123126835753288069116845953817699127638019227596699899593251533118265641246625394063761143787334905275214781634543016500939569236984589744099587148515654804798538382480717938652924415734880337943137615628088020549506118154232623176197891708897125607288317425323790861754542975345203707937227329704872971931158250489801392121983078191630753777050261445056137596290172048965955079956914620423779901822609364844277505631959570353445218472951187330952183579938193470026822127544028050981963902724746935366892927172937838412481873009102282140818327386736166304722080556707400495846186267502208055293582681757895538451864878981773213776574156810427710275227942702657129740143759994627509425570847554010710845605794856173079442019859784753453311367930428356264829319889727188768867451018115043103571417019863353363990704504025533955076165364449939113808543764476958583305265880597944289769408583256103801847627338599679084949398633763608938775557241938501305587846715169449661631781085873031143842090092789538765608591595000253286864223428387824819675417103190926533778053061261790050188629409185581968904112744616879917891472958758751637495834445490145889665189384011823944632823526794048590089785312940949446378868772301935371239942916226226113393935329358789117973773875364167244936579839274432637120452104495246600881667378090725454662035619691558439226730194025310438960558845074384821995246634555882499032843693970536333219258846174702556310498104961270913187927360292623537613539552265375101049879109767981897521093518869181594939088839065981077803556789889714316087016129534762828196041982112327251067236657663221006300162949658602247610125151877097712988187090290064374838648575739425000561148022137605201434449344747629695907654071312899385022865203306914860377913542265937639901783099503209790107886907890048396458066259978163750417922105054197689778161083958548778924605224054504968116158152279086524566185037320969212039349114074342378080081968651552844922561516598047894417777733978654018552778739167266675010988816534901853542935617682515112378200576247047446953229492799960184973322444823337098543777314522306620840101078332581931656729705241864855835208440472426092633760961999778046183154515095469429292271131163830544678481597189995083303453049038665071293287778697879125900746111528871893757748009688494797194239560111858419794759677725562063374236778901983094876032864090900097479805538557669114109182748525273665442702346997175345247069660531071843815570207301497926324707798613915231406635490693868784299835012545291375777610485569422169433101286105299808697543240603855319892580204672060709356131703794807633763667736091064687100328723644043943917713918495712167877357404803264997429959963831476871905250027863605286404590011659225978089302630047469634796471219042259227636469456582834966346338154738455106650781263977740400390391855834621607015824168341133753509748875458445017045729235329608672149075056923012272893364461630645551635054786683029646516825102682232458179678384681448638780259599611980566439256090899367893946160834455309741320248446507497915406871302602761946778041287572538285200319901923275336828834588792368751920621219448809577866843310897276176769428449946994355381889348133745229201732089221474929074664339238851413457401324673203686298187369885938851756756390323927458483934402765250208375684889274302348612671701120594350496853563831172958901855249769875269788135725824444999926060782566205558985243757809652199714864224158183324109594150039816310154052909774774054188585077259324780667298400878124458381537997761225845232170719963195596514670273653927841698093738075922782683965512947077867948554467423944269908405061274523548626648968567012267346633107826422471607867300619412201151471581470449072751051695667486229074471252277298918107981893792475784513683345825931730691768533477818303861223880969398341553255911011517311877324884784519553545562307634835616240557282173491279444805605783631920302589917643740755420239081479068005446399010442681025188249349701959968271232403427895591079912727657528233606521987615076906186355288382812813319930605618023054816544427378983762747230010587903481349457006754034856645833047332159221998001081674602193109390804983223906130294489430528579358264610813069924782569222991196301312646608651986648974555529321006576569238298124122787242329794767129327038016432309835881840477771173394960987556680420428083374388332242649015572071595207618579966478218107285387608591889199470487766266640060810170944531980676705459333373831890943152711407409190179275586077272818554844434096757568584045322340795506718869048484980866804531901988307182960782210050024774964925336771893837216574904579913308769686482108343567604998718073549030281051115100794866075533243725380044461255551050457366387274698536949105003932811911577332124735226677272723006253104379934202795562804169906091853241324439907747889722902391935560100770060345390906241185409293941042211589518900855384150899164075674202749620043225424167581475621279778538172391893366388119852770464371497223323923343171019006951134672425775215656929955702543558975832528651692724365354127172428752732351800986066013265348038693958260442758338947526312319415568561072081127379057617376615841742296317340778855374159810875200492591346896834555651757151508722245318254198839160116054490790362364304178036633952427453269615617373349546566086827550568551369165236530579279344197052516021813777227047147267773138652427653310828524142156027187724019835320099833293808986016975369157645772435893385406077475397385266182206136260154034493561331270860398977999554722799126367360380283647796737086344913040268630406215158949906507961655135310134594000115915549425068998216987925553386099461437028831171977775258975858637864894660111121438380408421764254586046521199173081422425702494116272451657127961188910681333973713984796806112582315291966175487411891954427985847135527267386392097823786557164307051335518957542920486606300661446527567228750796698618238174068755810507888220474108093648639278426059252048048599549308191525212964770976758696404439459741735854076995875604256960738936581218576724116227242188571190027096977661358908947576368074456314035236427035874683129869430062502952484388525890181673513584667187587260560850691177006890844752566666773252557671078183879427445717813474074064025576096267818860489457468252298073732142347354969803153961263731789498262539100198806881707911765050174127770246796570338746854926720308258430727119124654120446883865906953488279165157509218256882635350409660504904962171276219025584855819266840449689490638452541854310492671114785687515361624817445635818897277395722512957166383715141436845139333056272842096482394879947331786250156623199458856010960893650369411709114619010321052839806746398756826897720442336990634426066919099902942738413929345955278215419419701327318224854047293635672081166854530944742462181170371041275991547487598401051696380053688348527377890493758233688038776760182585100151785882333916233634688841105615033788735342911169021392204665561743996453389159798834349817350198390186678054626619914808074873784397941416402643344861946066350445879960096199868937143018810991871882805693600861142567582663247830517748821197624143374486945181064281235609760945321168119442627097822410648081135755566963085899515878976725607557360703251309307307490457448835962881980520358104898541465672978049983446882834973809876137767196668973219003533456904836008378178482615541858536021579059631758075440314540525779966729862964124650329680266059289853370123718525242957346376117097200651057839956232669559748683922876351850120762079481626175040991227102654804352180488605775048396720985409718822660218901327071715186786966423232349588568165118257460475788112092814968453909795509231741703648341589130126615930665402490183415779695636228250963321008150033962199094192061258451109669675818534120289698873285174378452919099407403064137398636835432574576408692840568867184554511973240984368935076434374930142091249185354074489398907402452495012936987962087741470049847611377961296314348012821948783894732701686454559149710180107296056855533824108289247714536833257391359101865023886670521331806303580473398410664817441382376052432406212452106135175869591703187151172361984110678709918994395643717730051432325528607797689948662934468499959196900122975424371551381918143220092562816866885373981766001856958842847635689852446908668356623030501487286420005940199054468359754289671111106458174579698885831302551071172763039982347534458947463554898112855542469869621387704200823247595255813628795183696136930720390829061708040146344120357092913655693516638187640926411860712020612458905882790516931645420836032066950204240094186664642318018341542963589484660443514085161754926003573522389294923940787753517431945362811224760704658520524489827832472975179688708579719723037541200049668942147553387856302648752535462229679589498177454276841619330480605043319913052671824189866342170081552608906678239534298567116941284005856958881568512444873682949000973026798020594212570790562318001714074638866494402649894635345565823608208721831387223348658591249725662982831598355075599153615603252640879400513930027908360808530003097639433413647457269546480976685190098257741631642786416797764847320505363324380326189451812551073884334393809640629881281352981076873132273960293964115830602193829760614650311650643318383717383957910997047981675984284335669229339893599349435541488743331577152948175442502378423471425393386876149797102655924037300534953292676154006104100366711615921493943784723048245394139697662260963583371722488312746281729131682987561628126445863947143427085122638683746789041450981910881869181075784300816930776210243092691111545777249922535261762762239931676640401261330115715974989719027683050059227265043825714462945472717952786295907569786855472239232003356839595400614608621802873520247172726967935888185981367558617423440639315125450537040664669726047736942608601926356319801772225840089404285190437154252706387014103242051515724198504052177248580530527715765155845267273277747053127532568575115046360494959428710754384780927007544598909438185175586652486516793180107181364979932040944643085126971176296213773162070320621671684865652483985886126946802062083651339395318201058550736649974757478367158503119409625925910347810241858737246988285102488572020309734820295617330141949879896134748300304480163460535806858674611490506188185078024548189305578408986770083397442516380068372580170069955530347498726847141966845560031924786238996563427538731571916868146883584984678776720623941927218541793337948338123051998701237277793301169372198345539727392227154532397886635070373586352239654968833771667105337264670288593195047277455812421988288276810277053519927085508605492965164692074008162673597894648140350028676500183456597640378003351046131993453344743313712695069201660565962414475281484451374661514527193211857101769151950658674928444802971885267122164895533785126355494912311749317643284674768016846465626762278854975681944589116330051494956165091304996516010669980039329780191826247765588343218012682542899562729933647769251686684207444094657939835397259230087814387840543658674922914166111325225386298854786843489852895194257705014544326731407003404264442068616526175386713922705271082729059199676580846709118737211197473560617661746859672726720205399577576064574179246613813100592163919669333552425526716482828177829277864523863519769797896947551075925915441297731911868362950706598137809302001188808105732311710464771794891601632058084279499451427782201848283320397328719640531065569978169082541666634448364126468441800887711243909224630312128888648066267192828884650829595784989797923059476442384689494223108593241383696077552902478201933180360882260746971073831397012453334612672664934412650989852724539676434569978371069231142272767765972266320633110737955550448967750363487886600304715452959207378607163832355103052456232851675885456093520263639236607072726942914788715586879428651840048411906877736595819993996938123911539942496287438928227975191993488127058062136579738842590576062746161298152181404331816909531822442442095434944427612410800969779897462179126483907840002292956442154851688053567884410215381369647869683366833513217212069903825052955517442064474909040645344015858030256228674579109186087143483305659269175602630247033154331026438441150631561688022348158702063015628966003886671880834237855111179822108156851421526236639052651766662823719628663508214125870957237546638639264135383685637741909252547500772390017070914777009257314325010001860723669411687061867511662723793726788853515587397679194052861936806422524151364513315226709883757481578871253715480327873589513296149349951525367447624640585595372648800425968714902964185071243806433834858970688385142028625934274591924180288269759566127301527743409984227932543037136448947700154614469666381236772278639359974045821445255263333716307061231202309313477904577492918282494653007508822333842747192731905509552694202157304266464742782679095035628827962619448065840000418896446978780661445556258838322144718196659838881026791020042019452758294281793244611803439701266713654974985632505338757927916783487861429359662940027027060980971594948446410949732600622124413957080913254342904096660769900523299346433717478018907263475964464244993126329906612558617766966786021298272245185800648525294801369692013528005925839245902124238167727925825160047214813615368278542142186256017917062740545370731997133549791663624457161762576729860123793878009533880448439785830184880480585898742293793280543857824665833411533020237343455737896195750006577136578575724166270449660146353259335606337202612729476754981656585223548086310510143042747676940832094771349657763709032872052724891373798980309539461652514166272441403388163935429819507327085757197841292885820112850517095865829536499752677899230089786169681299227306969739764287431533253677978886653753933572894863993775298106484252942138440240535915790247151277733584372654936404596121633702807894028808821921268410652792057531774864524528439519002407957661780465266746979616417384257897629528117718542835855288351938297878175812032309316758611020283591542417264455885333645332266928653972455756784153428375471789211351533833404515342583131231664083249108862721198966381194112103676866869096318988721474062133914789472261293284522099358950840854600089451981651277945495138354907965942223610375702851629398293865985505073517057716596639720751556840714408262029779204691971798286712389849327742302020887991943468169327990242782237986899296082683277226241805293583544514908812447161771529650738961413275333585859240154462063579756710317679321659601726772146625233420792376130205330219787101216212083935610771917719180068920394212251350863292106144069515785672093144811639932446282775123926626822183758900307222214397204049887776044975447217390432465541186015187101277588698119205873020291622396656533808552463220797558474734106915838432173431016571018452710222668215393871531483561529176435583579044682916633107896391269301212351084431533133585586029980836572580721649406229968741180768234207549290685933177258050233116518914510647019912647512884714375767562265977722448340194269457794915025764809218136246640936461019917709845621187507124963585139810301823634561862300317713290728538214117477186281168811638484975483082059483420224718915368725800399326650671064737144003872884816499186006304417709083383450551666988670155850369961507055471523707670197610290784104280351587837682374473388995774810392405920820902695749506822324669472181580047608959362492206344971923575408759325502320101027590083045990280619140896981845071640064409200324695618586961134061943139327869952085937880659805386978047317486525649750300514602937759633927247192615323116615965828985259324483687625137512788582645553299012709497843851558626672333865079872838347003663705429970585137029512028528152044787890546046356717595101270116733414776224745402140084577220229110567124564041458644798455254802039393148928627969119941379200812855391395917217152410749382505651482226116898194886518173450440524321519045376538148256268243529808662887760296862267351181017970399470546663588345040176132703285340970346608600032080817854835253468192314658468277846813440018742817145193560049444849469871699966429887724226102109171351060233326690095550512409749347783075296990568217670772990060606244749175334244302177038637011246807702170139077531770238950506668070713060488824689043511046960972753427336506265444018983199428406017228644544658516499755675931297759044742575368747443611000319705453320063100013159816596717575118309417206906303961916453546710499179312740353630883432441537014722774813521061407747829753998829360687502571065458926801311702151172541415497940981455043455975551940263460764641735915961300776510990516238112558354075276872875615687208798654662802070012367088737964206585846059643909897052215335266141515677218794716293566739836137864306173862263847596950155645190622163043238442992947526566813783466458387983776754738782057633534288406135889006884145945097089743967646098379609276143483938380788330581846089688833210975344324840614712018080491308421576429228692145303517550385679782778975610086662635385161114462469633791525036677792803716214484303382599472092889481049672766367410242996419504695317850127690048671915381484671080022573303807391206376534852081610658406178434080783983553898282554227515579959322226151530133977857771019916665075110380171106853677409338755106159608861499508569892906176480112974843918618322153578115105815390772955179663270590951192488129946523848295782036978317689244078601124325176220331104791280971782865212810752638088323785192512796335647915742936832803698732360749408171173322902674869831043151479948191356311870802780010311601669743768897703516519104246560644977708256397172391905800464994632978703022518689132929207047767778989178297320553155347790376990247720735999352593518739640252861282123288909956627793995352905581526213000306571399242658110952220711234742005009997068655480635150681670104354459772204678218663676787116946461081718558317558661767715984703807707587146944287706335011921791925253612967243064351071022903912409768051294399811837075632320686947937239582415490732906510539537224668236679398056914253791356460088974031862041411688789264979398689075002744953183320952028495625201298530229871340226646863251508434884973568860833590000044296360138468271912390046285730855464224848231690415810633363155914696668095236285166372945431493792202535140500723891684419830071900536922002986625905084591215588654053508786874322534401963837118431833037263297626423807358121244050421997471437051618047367189278869322511299817436997296482687565210652140780732829709842963234532065614847529843079433222494018369644162555989032268750832286272714687821927154167873159079711668547254213911403507116353859401342119888220528996697197849446817920731166604765662128209710521309125334545022948754012758789044511065303498703959972284534819476130512782519387398129009805995341644677948273984988326774191601694903738025035037088169033467274921183883145848754998990976974137236464314899264806999109285065766292527696360571648344130964911406041008898309258365396833914943398756989775029764681260329105324486752065458054769763761396663406576240889843709981437195817265042896072464473711753376257136692289260499930929584185736189433853019031299528416424770412275534364947896038714019969557678178267022503565020626776640181232465932922564207382107542582532589495901900886986494482118262271890720793965586523963135294431741382817642170876497296787093909758667620569998237487020905209895501074764230901435251516510689051304658202447194289181027411998603932845738974128623684783396861574701855472681096336175337661615940666612342164031950513214781498511148351103719859689270189846689910700197065046851400823346794034147588062008066616887931983606587103626838197223772357028967878480874514476550437632215908023022382143788526733716375077544937095386900712610215391586256891559374255181563538602974491303800181789029390529253795414443208719918072151127307760479638545704852388718615498782758030082127402584362803794560395387579768796532406896399300742312761384027458025325521041844686606408937820520215310676897068194219009241107759025582931653573779378186752244642867865038182138371479168842542481764582920382914358029567687672783933910809147987327764331162355402830398623629360982459535825423151872572501263554485069922841169780179619938004065107157388112994020386465372702372213830367793246800065371457749522348580742200028318585107378652787570369271132814448664210191644140263275185515213042436528386896754682933936242344198342087897442156141547907048514105182728900590414458226261897152342865754982854618090565533990803583464291933170741337223733395057576298691126577820550960787512165669142360954198448617656624305044032609780359309785247648734786545032812605566905715282959420505493058039002486495836915394293419250434368472744932538198368609049524744418503256584281912023486340234404542767043658462268115603887087078809031437291779783343130457208344690119665809674084533716699726155727387045285280667723722107532439019611695363948999713438463717952313869343561106906364624428218034643022431489376314646581970632179008546396476426793162057125010036033377980978756394009232930265934882202072835650430645595220222959133533659917790316598275594151027510318186459105067327314550357050229926492451512590291755477772739692550948525111125550806115150152367295378394587896641562657249369070248834761357275368173818750194588654427111929951736042302151598138559074367364070309470378160587780239529884464034098318887732887155924504761225928406803199818209897672371631542305314714685364679294887751144483372813832066630778442452468958185462341286396515376029858992602877293922568473103647929171728074066138127850444982491886961456863574357024981557605831724926573837471923346788479596300545595388239763145546396261395450946831812484310149701216505629422767393372990306498549926708884652223336936382984164767803026738817093268284719388590592527875636787949597151810905044935162414762845747214800639369342712452077187962671471330396095544170263299937373246533699322251514812532866130832007079344298566722193269807851390877081278848362081689778706592785401569445672469275217159115179031780994113413415823923579387111866030448096622532844761922877129671991436529347916649060587816799561342240715199341142933938222682464281166572739592237567995064848928029550183408135753400742028960287342503517371419590969954979546957224214726928452628434351718018975733041709956670405888075388563516049747961679352615099494453133441845382203855100132819386772445387168227272034906172146641870696050607912113896962319957562185974663875160811695439131532413478525553359659465403030013389316802134268900623146110947972556317946929053879413768495760047255836960155937979735616505101292240759243608972923237953744410571790817473420646094121204249367834269171543699116922317831369833464792041707875524517264101213473125678364141320157595181087836593584112959413602069423254096281909782754213114004455123211920068504214925016797406329767583875216088801058026041255982284218410145085762233894739000094316925630783296628702473940834374470098580633471591277045854708987818981926415034244260930596536980389667941724745562938130270194534449031969114969899091424270402385120308591795479479654183734577271998472643742288119903762616761332937850884144521995535657653294755382011016352892797751528894434186966502730649926255604643828187981954808826888735971307600187918165415400964280053487589609876311729608513822412830891904021582862251218802631112427713138063282987511285616442112171432048077387239195581622618058050286662793121159125818100921940801236306171872876079224506153073005328804499541219315831940451979497323264125607237168714362859368985067401705451517219962055016355220962483734708052759614913916690250852378502928865982494634316554685957496074152213913381869014431335134659254305349080676543533818069403710911185680544516749804019405642392186833297301466653778080920972177215300449222665145196437122976385823943416666119269529460707189892752932546693851143642306511302457117920461834142906502870168380069574655579472616878796523823117193785392862585802154583402050767980502613968539968219052352724928401918937690318803255464317318410061269975611189514393173932510020144911078451040244603528363204325431788544249938406828472671863747385294246946429564801251136505262552661787739600988508364388385454706934859490295947464208713134703320764763338938400581398117582968870864158116154159593925731431632016692619566161679971965715300768842588023416162273910162126954371228513101985656190553990754762036347243116840481287923961409877680425950363910875338656184056670100546401978050002599957176958885814248245744836150834398254218438213097380680978427433909472543547025420918906117880271667336036747316096571078527537483313925310805550918709187466979945186743322330148964321024422008716917673174772759432666520873858715187224216484822730594210599022247692280462518227753755786180376806424926024241902803811111052021825190062650957320105782813635030850878314268768732700673825205712799477385715185458190739915745202216758372166542952698906706392140740482324729155792746431817903702799521354209744522137294180288673721530927776501031412332911382977596610205923735748542856510648736701170048859447266972014185652614810565733599694403958818500854580853814996134558188011497407698862812654719788791340616405157846242464394678295856805298542345329739998618200179524939120018513529406894299136576361608324176432878836500013677876965868408052465985468317179514683801852962944088145864763591186231806839261406548291741891232202960099127004917126244484371284147865527723282222871283368456988983218866782559495917156778818665433815713667587646245254627932760018880751079676980422229865137704476915882653816114496411800826426142412623980644237842582404526302735695381909022106152215630100019844296071665274843203309994932380039998505929086006454009341450673022423316208269880891680431296762099220381861713174461241692714199526932670993958970710069919465675067232702263142271653002876011613011714084339382583214916393262790162220375671414022108380986676670986323933332285257592509063605620067650755411032876708097581023477590318683021758324534796645047423531424380402894789669554936231150018320054888479168739370305696143949182039103292503710491476140716636908518648684849727229369455096596134221582273723148009775922105220222070885063458103243210526465551372588292392754845810725188962277118947853656794636175380779316088650614658432126739109281041624011147726318224428355916387250101077071263240816298906404611397850020147710889092529674119358645991128057242574982447795108695243333325430090459019923762250711344152659586569034618877663664870452530393447386889233257921347548132432174815741964829143683571793774640839163934050513216902316996670119342620166040277031828916988953134711839513643488783577712178823647108020523139197277919624676711761997721710351711560263554109966501202050432108923009830956195629178774308349148678936415552711797607137988146569641293432426849050936893548388743521078027021667782012008796951266584541021467989014172772067250636759053444555092569049790398380642167093181414859065757000176446066345130041610269896874141333148119853254251615728841664338383304661020918854902436852998935935970437816719376333829326871070836604177208159883397995916042298928795518926264630448773448822528199730508776772014938781874839814910311841452794070640963231561854289233753365723822459109020961177339310282096515709155854155090523908519981971088393394339662616553573015604584261613048531059050078353802127043861157015298670215221478282291117883847867418117771795627489071331827199635136968605219294287552639786368608186748347560342349418731020034398896914217623106381482107943628314554037228502319881436261518310341358487790290338576981692680298249787157329625577111910523662572027946549115244860592112152398817161235310746401693479479820494680462835131779623434809233119371661854386846902559393653643347165028156344694646121110412816160276136901420165698140797074287429326947134216394933627429087888654967944373385395118795913113048600935970475415634620654204268649341408054739871866101018731203248658918983126571420130833533125246854708347235097225798916844973850818020981129410816674016778262269362185578836038495395291266355231831792561310764172914860127754668581868203394392162808552390842128414469470575526173427000658711343318818717730240656713335323794917319720902205969240619763854279808539570631222303877513345038111386937594420048966758639271927511291268869810316647286094983598528062655587221444165264213351966660165735103826623357440309017374451983173818981406245023779958454364395949841237941039392755443572253882478387290406721207406180587577282981989081211341579528252802442264503542271985826480899477975466408747102898763729202154869668865933995115818317064821707729152709569931113671943980618618193079795757554372677151489214341018339928410388735779588512689676641619036287423490104025138119500363659797181785005353668127801363861332103597394585014956371563982077857112537080651201646293518782215048800693372049964525666851088227302586215580343853273614651157750668090479382350661080931418117790981848569389613039859418390116439346117536750653202860788824814762462601077807143001139193004270746804275536034045990830270910116728937743919360758486968713341725223530612066944608609009020105610432248641524584296989797089813424444333444964669185430332530905826990567729085709274320354169114946504671977892920641525872163783845559248315002591966380571466602266987205260967850027422684194239773834958234866584710013723489305973914681937932896167705465131969854288876260401962780720046553116149477148043138798774041904417015277425576261147660490753739093119766594988632564775204042085584014650545409396829560066679231809151392161816472947387157427384115034133257340188598614158261706134271931987663249818747510782636769852520501020773880420785515766370606956633265249671930922895611229386291424882622853074219488687888461888909815447557581241693650925301027334296280936094057568277488668976287250063219461396111625208591479787882098869358415960393851178379721255302218152485659931529356433000170772777080084671699530145998846083406089332962936216047511049364414433169228978879785151168053283334558517287793262883592413526023973685570235520670927074730770581169687935031420539600076722042974178818321008895374746839033524269328927706536978856254210136569592401273919642339003183111386366720352976718601713479247117522579629794067435373847400193230141290453830775280747496142890245521987464492772819942722655864913051880224626135331172907851371271889511521232814237556073096816576661957398372438572870108989503349412988768971337212718387479820283209725674470582982785896244770806052427625790300443258300251980554388774198504108969699833181925321323278066238087679806979707141914065964830011507337697918115817325603421533319809415946165748600813178514543032714840566981503637787171920627776595566452645719176937471313588969511571959161904033510498646224491490877590523130042232590020719990537305340538035210968258309592304882196292965075184478526201548568484348492042565320969374313727507341076324421939175258026047633707453580975656813834019491324382512379959933892705060504827870910925791348721179908296921339350231167608403456869939229394469137391575724943330721189149598855546269498495548734007097289003862413940896388863548883767666768482898809250565949067024834386234860411204198081254274886919005647270325562643140477598910328648660320457478897590411251195996981284282857000853695286569281161227676188481680597069888647474908459618715436962627818982928913126491077444682690872849771342378773338732618429262529109243798823056395700636182419939580423587952207898648119069486794253462035546220850245076370648389096611801066087312135439326125040804646673614568265534734828618140375345636109733892965342777195282391335176796162332855973582639456926491156577599655174922284422502280914810837681376105421072009577281255694182130989082773047930336969227480649143567691962130235323392060600143425398509081728701262156961372010814107609384173645414690575698200530812845905746956284846780308943619085898648302180333224638945013065787154686049733181571994481078820398028872445246308062621526468228603609410479221599591635856347460854320238865536819798869002873856860317545356851886609990447237672850653678217293361441703515691971737386378964034279297250641928930093946789995174637690289424800506398475741377568354670111969237114010593327586889609447350057771221669845036502956504505868420011109178768894290110075498264386568359507022109460910405662849309793805079175631143570672907617682417010613354692457773271427381483836545807315002031706867867058506879253491752394936253180760963270973396052222320071269245772813333375212675365926650513005957776523524224320297480373603858421210530259506269924809974360961735512576571431374856010527870839390549030594710019089645603419523249229450382337061238591188508104806547473555464261474006186159091525141318809177254270992109323326955335419305767945488420481229309722982101228163332418561209250945710457658742049014544572677439478853771632601006836968076042189971465298310516323565402615963882843957060284703519909146710507138544287515309876732189426901028230370316528739950061858933612600493396703110783102032701125984237312932989522927276364800287111609991318640293525058315890276445566755585645993115529383856210697668850309952724260744184278717810454798058178469226345022077932486765192858756735593795512368153018924833520131224408799453652155730366060962491166430440578632128206177827520302616858696029517642836481004644252983394660442107638864477919338987121505945932946152356607761032721599474768400919184324657470307252226140374060303628740289309939934100022811869227857134611755345471951987105484677485250755647904835937067943759779295365564935660837372496550987026014626381633180049673265959994490713832538805969543042576831613636469875917807504146925576668494431287934883197011522344283236803913807254083865713540693741693955469649521396963850444284720205153714211822699216094277789001790292997941275252471024347162796263741376941465845893162606826096687124001065186373386024205178051429846249769198286527813914598947409980788350619208205763744765036442306425610931927377398401045796978964708176960075167100730561661653293252250841821350482852729751377061763023955906236467662650640680428860902255550595719809990119594767740121223831024877429244594660436012084180227792717180848444171167800782819978417494674599377967125600778354257168422289904945307021665515576537577635462527178136632664295721535209997849408808108301563070109463646512932611480722457505866735436433702830778739040931362583900640566041898315861463738489614044267356963099897802587441118948251163283780605889002949819149329470928011211988890849005146863230319668687747851826628964389511031018096286962967063529122225441637924985498333398113624197312699256195682504973558908492559768043828455657433663497368864544996603669824750429741966135283929595442357443799458598544547091782612521949834208955373505919433832836591513947629712460166165933625240183255004410798099974876410572967897383783921696150509357867986762363949048316020919521254764409115236859153489718783970392035333806443483252867603459212470684489395480360879429078600119526061688170332503100651153140079874202747337716511658537470283504632039590325154991379465136875298031079087161280153145459686669788797694583274908328520242867030971599303458651676611086579528001904376304429451300705727286080297879578652888410644135783480056943043441514474028340510197416467370919826473528788051082048108649106235224038807839724199178587097683897610014222250067896087391741253929357971364403619897747219158014966880266076426781206876695150796153837253428571424005083891760717513960108671787777908252964579428251771242382916380126064104401132926652670964441443009062668633509473224538780560377836028975486041269849095078826937087450037267202359332331165203153160495635204889449815366193043043892063566927818118685742222799960000622723130258331771765132519155088916519333234633969688204097127997594228045722034366794677099813399848189549949731847969439371747962364567194807978869827430698738805343453480417721575477291734967149866894569400661563031939886602551961188250922860979452346902870586964742871160498323912255957420734548114011819587174455363268927082448200605168777822629756627346117486779283039107282756303486011195590840035338418852761306988462172807284097270788539500562428425821303521061188401403826209997184886422568590634571896505732146210402044031969598994697744548592144205571322511226711539280603907710908705194694825107542158047139112914345263465085823615872939024658086216047576319567025481817289227062507194937693839380576831982783840780380630911178337283746513065026085036305996955380921661579378377354057032354292032477386584144682356231364824720259504588890320843535900010025234637656701026247852624621135227785880751026464017877990439720387085253582994966363723596763554622293422601031515575937442498262692901340679793085862853421614856147809976079145030587527239644991863969086009920313708108750244818767723522804398107969897500120639418205815103242516277368058057059625876531562083664736251253561665957945623330300102528730113124623405529090175073489983916198102206175950666663305750097590050012189850891033051519119073505898970061354178049938674326393962980796890354336336993291424885394426148226177514050850345520693037037840277728088326581520271520099583280444446806165057715933538071931137051049838432970580226672391684833355950639518972178977637837003183734937670963985446688325285659656369848193655383929794447354695319439155410522966288665204310257832608709112308963236961609395171953752503407725581788236727475272414619626500091304258299101645471677006356807727409948002787258619998579197009857137983150200440723035765082159652954358031666910636296307410094766976653949193834959126844563918540787036009903243154482722294871797285005681959601654686951775846497387712801890875570234079785955041414336268273091953072634812126900886545181056347083605113861542910951014538788600262112606960145455073517637315968359332309636952820521124962221948616721806134060010263085139565307272699797809061081346276742311656497324407058117532557313849934373333217792054900439808736757003189604334646191923997460996924626415058687773716908181710778829389614559807685662700157118295393875151799337797896323427917836970593413570048316832771953991608233742471826181558427629965174533952469127771349698922841684303571973425040489845505578531772883796222248208764872905305131902308227511953304178268201475076410699731838218771546126488908448406399568067134405353434801693197789974122563443922878856873271683054755959913108477815889659055996904516279243498368127338962426145238252700210311564234202335239193416855399113854461957686301050945784832839075063503302068682139376043416496203045210393254445851756841218972747023662352134826318684583335706489339301833878454647942237552509760233153903099921595010361530350869586830931843241139846976343618074128150925604121202083379681232486087087927086866657758696169911495513684570410444854302669290611156141224445391204220074844507465568393624251860612850363842750671924167536848839469311434030970342816836341869676468822162847398621361204870166808772518914965312786303822753342632099318837759435959516436836461931025912896754457737895470948086962106607841420840633383888323685869956911030987732340407075838057327699343359434761462731030211624206489538125508492940201768383210353054004513107622512435828189069547492203800299815301449187899308286204417892698875732864772948813051807915092153816724997925687491913934296673602297412142634470967824842325922264010051251978981279035041459774881292652601487708265939341374644608018638973351561122466559455815994301768504023321914078282170492855390418205245516819333553946234718517627412417157940953346150031806528306287742487569475707576142526923421035906788163480480505706445220515281043440603957691084607327753230656113778883480299457436336203949134067095485056298444423694009565010593590382423690632516130415995910194980717438451304364703448307696927471885029990960001748808663173868457721748146094995714107454340526315994533211916886178587778833723959277046897269144784662079783072086503536784407647251918496617979949893997207691515788638280564119329202542670076648697295090667418701920284035014841865289743933055461887178510717666234037273383224092392359293200881049979090185129347422204428595725470633038153201486796162875972345378055542502275161778295521847489911725269432200560990762334017932431840200880971222113076470963576333035186763898338333520435466581251464570249279581748780480521754058104952017504538416097337001685886191834408840749638776333310770561866245950346707755992900061383547661266023214362652786825865560306449828815635257940430303854149711114076973237155147533778152477434619894386837499879197825547025866802554266261442484223433247092193514061168075129907043861838909067920100782912157549246522362659818730810424133550646282374212518898875572554486450494911171934437844808858581568607582783154928969727231038232372053695777041058718217775929099297781653130913866392238606621912198784979638027899342487688059968605082861684299950798080636177140858480086163229793493873323318961691964983132438824083155055322797955756556484720145424075538635334826705731827017557870316367869226715717665546726514146269683274682156145105671246898054482860166419959055592568780155984445897075984046769251793295604559618935025875006050535860870332914276258854921345928431190823040029158774971451732409240980488505009954415192584839487099365761211872699493371769746961773534652646888914463556855209898180798355364378524395936510221768255063663265702126290341222914805277247707198001974598727841269291486429059198190429316255473865681271470014090291885849432983140342238725631856495018058339871795644394177098356137273959858272409293327574988152157331074687298384509417237028268705463522425609864531039909769156321152873805210614073354802603745545981351547777851628477627302389513341966299854582637528067403677208428631376049914821766387509850781412502762900091874323842388788003948022519115379421133421065110892308349940472855993917722419127348905007804295201578370634474229300667282873046685201363715381850966267447720591900598278097479218324038013498052163141842705856536395714137369555496197710699175181729583342017841437437180668480420526436471912506525569208916428518863809333758707578307076076180689226410657796274579783958170910994398872023166900068262454487176196799274838992592284370070416766522021978037760206022866693012279399998942297572713180246494749494974046494000968731782287404718448909932384041149728370954511843847773867660709193409652964852006645380950253838573832731696401047470400130525721303262910179443618211393758594692919520293383265096792857542816366484874416368092509598953762263841025931043232169950233368793096787512781047466886144056032263410183925388758919212537048974690181841316484456388012811660725310332579724197559589750229710822080448407086832201182879828108340742964670997096824928696171129985991321593197139460985319059552428814763625385270468436648100510456612713504097681597550689452344800820110730138114135334590229862094498906761865616227310987814979427689659391683259223900956449023094846182217703535938857408956054536125642760898374311181026060453796689311143871710501871472204879920027468842352499185432912641221514419745910495190958445473295138966228367017121399650016830537296382313992475156438844223777161768139720208071271026576886259577553008626431241107760703973726160114640273073757630324961466110817020541485511695810279760267976248669984634531140178766297356337037534777403610059551513712751313412557052384596272816862124438167033889634991557377255661924973764259006277174686807363383025688412177066909773439464647433271219841158582888104062789356605785640079445942463012362531465114731157410238303083222807976020596664075437496761991581391622371887366019428443904104490661633144539378762061780780224090263299602736938985949207444576345068071310947008957104707616540425802752829862933523905417738997702860665704663244291269982216268873153119046426428064710422937988717103812578303681972014808648738512890575680546980551320369668963904253341225040559916885323394624892524899910071944826395453957543009652683040884155757159450142404238459017920646751009390253217857758719358772749023853559231446073790116680557770449729673866409305244777426948638942147434461574010390429221529409777250950603969539647646524268311362260084854192278380821908274225592560174602167492037055367470910251660736204746283434087514637727393851982017640196948513822953682797881539387068218403637306012092397757508189879384188007954612829671373765602488972916926015070333767191361304881500901703299209317996469564504138404006722517252262123416824205195505023382023120657855146289021710138938473735395693661487027018668062201394075656251268050495692090895145057790364370724035079644999612065883366155766048143741205874103472739697208947984358130746485247078576829756642153403321977944274356668207289073593020255039397137726808705700716480474484049844816648998180120460118016199822257729591083009770692456095539747405478188571787498113334197152875951117213167578437180799696876181524717283333836618495682844973518311269580138608391593800781710860296428416117412789225287567349196161972545796273391901106585189602378753067809305019128942342534973402526600000541168422097795164487248293459044539017184670267995034610563825621904666474027446700949852938665775105008670443444239298977718084538122751468666290141142786523734637617937085212040795000813210855371485402432281918229477405587998272634372417474644530434479287394667268681614031368064270955072667159968832352531588329658099198634459910242463745594205350814199739890852070196914717842264307818835877301871640756934244073852696368186662626870715330094635125602917825182831406317047454383048475268462047570546076323122439303784356774118151586860653645045491050039953079616652614687405161886144809261409312246694187674348988778219436144989045186968151926906775129989655174971720386797083597754559377410216613898606291163357902727612090359125870734977597973250093566273353106930369521904993219833027801436245184322959105691530182131491664452336843622294382299680338240723485270893723508887984641034976415118723268116940630101210702068516944231680281780371535336050318359559599553601870254436910078856498338612903288241010406609255824716950454927402284410670760170082948469890010162274094996459208627455169055007411837320009793569556380438211045717730340173746928451439659297274029719766684490357168045912218714198285594996185399564425838922590677586987245221405806412607217594753412003148174334297783382896022976183340039743496393661145142905140228212514851365517232721141115851963211093171663193447807885206960362399709605465342516378036246117353978448453938578652807899158245557722034896231593898122196332704046026198328535653934397661595577063015628154512472509905564713510888164395671307655573924298001418495090764805197191407936887028762171340339926044247836994518979821301114637155321374144942497578683194455866656564992034736187075016170404195067915592787951781769311044973176266061984624957058125136448145060557215027253405611378853392632605681065988828587638925691022287120880841384810000645038766511939745718515456563445655154579615582069964486259666224706764806454197652701339183219115971861099973131149508708370226080533344140772945446843251506113987863859426327784373377108487868487412392348680090805040306430471588714107244709701111048150249499162169613250117037105998652186765426321122610843875923553961515547010987739833553398169872134207659249599787212219104244568705884603585969659914520471259274479691071518525064160112109604012516489281446345353080426891453365605607524262573695649929831838419651027261835020192765125058102102140666127409420195294289045691095242488870899393264434986597712402817172397756708083026843950570485374348722651324218671270968061812264230609588345994250390098944354441467340794745261433174472363859900863213605520001272637918400159831714262151373211677936605294442280270030582190815637253157570718029374448911872251584401729608015954341983072362863387818537891538812771356185664231945338171396662734556881596589954752455824463376118691601773135643431983974011083610505912270724784482506773140324772287334636312393646956779118466977263189492235490215030716519580602203496387806720669163523671001170440019313595306732132801619920956471929759504547202321493657147542602649375829526070195725987372712827276953132507044069726339095165911927139651020144701679211288993999883362709723003545788618807787893082689924724570200383132868456071513747694311375871057076740900872053102094906453261114640184285657412819514427016673590706678351640494102888619643761695186142227129242903598257189299720645628367993264810493626632374220700630519591002381021764672313528195675333504355903548904723849000839144810428253800293123054925871994701385170919935117004160228023155764422828744929088039764807452085425762402755652570864042837281576554843766973352688851630666587647756154517701608513973302110275675888383733312794794807133806611097629587969870341843477018675059004702326718519202654053715140341403766848770535036350131808900183830465627652962501777134690507368113251195084803273946731903740114263939904821900728564580785277442189706265380011267675820762179934313701843986016418985589790002455959526469799519235683587842043768481520858102859529156815662897633645755522260577963491451912475171729211278035118139192217651614095720297219731169988828367937248919983335221726164972500995119901470053838484587156975185152907701882521914905615481310782609488104841104266987752225974876442140431308402132453957280834244971902766839478573241818967593946581353015004869538437068600159459973972769193733350930509595950611650882169997525399903226828344940983662909147082585561699618318666066693843764327063935591067729530871990108516372843868333086550139493217622192456275859724381706115355714761146722835764176764325594620880315040189886336049193909025172320835767236730058923855917135034933796639475834118229063306178569613813802825026884949130461601576527948546912216286628160175816226744001956971394559850344402982863541585466812684682709003106156338193017942406240216602496205951657157978848108296924009375134790827485294434044546366342357557486777207704065540129614478684890559682925467727211430235117917836800506997213568889868410154446350725031615797384273888462860746058369599921407228378847264953074756003336997868331442055503176423198250820934713359537987806307063921181722876909102342023326323802003762189193324523760096418478573470582380378994386812036152565960007527429811343468736116109062888999488996974286430689754462154857958893797094559790310922441435035944279959747277737377387454800914772838279239314130608315875682320153795309819950718500576505974014592796379341174320476868987178447268034830559620783870958621365442266895278812784811899089804050145477775310950582380727007749085420804329838121517888824033270197437432798838841953050562455117971356848894301318806730299643601306171087235081978182752838050890810612645581032860198291100689513131235356925436757153846151852831006006964561302767791462625983118265242215467583017006327968863771804591687016614636442348187827469018207628215167832048218075403695027136444002915007271372143883568692085691425698736325407071018461510907605929492197039901335337595787006666777822371291971947724043673104003154696171952794052480737402327502874896743679267668824937509561789533095746620802443135257507855930296360922554498080852349847861244121197317184542992269219444352903075787820009942545235469840821730923924396752296566457488190338120505807871370522345460349568190685019298916994453367297765979800819903043029904325425762665529749504015013568320353551099704516404719389911330870550480339204653187313572746315083491188665389137602504387086782150279319466849168199723418561221046952928616504749164579815909767753912911552386156406320162931320917511203370789229403161392642034899132179329261499717404081085613115035701124711500119839635619321202002310169720979898676368374352524598189775437509046360140667177241752241207860469703131232462755286562155818527292581654125763404914484122828973735451391715845041669834271377318716337816994970298012167044685587314122559286176151219449214473088383034144811415920854712202564002176367202981249138697769769600383760655060594691113598560729809038203059931822004525763323092609572504366918712952874249249449100092976048850712714230859392360642511660334215364963386692961475430949575303887131364220052830398428784830907815628435515706667619019472439426586477907179606831321531354568547141609455497964274103441723156660836569687308139142053718033076484307949281122664678530779951476182698169308830093926925312273677301978274180575749408260744014178695585620474766112798114722897529545414784288412029869392769289186623257907563024101050036098722736809266900988896576125526634544851705237683966024873538618578438352419741147389253149522152883130536759306303688943919128867058791184728402255796276968355359037974803168043161559894159552315738568322475110155124534842812213731564333552350077191573025959596701049415973801580647009257345460068523547267155987235118687943720743110463699943838844628174566713749655331650949178318492427101763745164385118350003618940508223708224228777204999702811566524314394737462573258078067508422207201227565543222950312845760707627695144958698950703637856855272101232508771619031131433394366583935045019908488591215729047475996041928229511263764720790176676022090751506977870836617341565563932754052119880955871410794628240669323485014939946369470110953139909690215684983079615759889807297304091407053634885703580250494866389049755746454450629786268311269815223629627949470884570605921599023660374285110991509409961346785497850883554291460585076946309821950337658890053426065495789537207385553090549515424624313277667455147580116855414322770271673841840548461838461824870331932767268832876323591304534721150185393827139668781436402586014450755072907996340795203277177313503552145745151235649458217695717129091186545430124964012480351396346465271563876864729172363776884828475599378240865873885812863123371940262765001255765543003059046465343337132067915320553976721773961815221700168104718590996585017098477044446180866805862955666607539027806721649685167530901074437359145347604502068820323494873560670258266875845808219474211577518778408091743387400615518878341172947230593985066640615706130583843447044817595234771759065385204096468071092197006104538381889902998690511551829172514790836797939670169004690317069521841567233988767613112849534278851345064911212502048518634991940696415015632284655142859901618994276474748737442904502807765485212470831534437273596667803430699608024300057993395335728906470560724992037956570516570099549522545287512104588599343217968910421299385300199776970655159700844361412638078972209629934261124636948062581799902440193786273554087218730910763339826713103718423655498407346567814084515494697932038035011864787742075926717257241932272815395148857506430414814354937577156507940800967879217297152125924178274195104710949127288062561505914573541419919165495106817417931909774417281970372902163373726267252100829573471726278355451123253433550514554759915509873385387467466492733443871451105468541047686330804342951846622211393032957738478016220340187766231967113314493794749336031049198303416637386337413570441884158843216427311785801856970869199818166622798759132190654862431179013765024741743392720951728000807880509473774401500886582076421030991609016183400388448542561932781800008651908233703770972675634790805508383915233923287969498479842761588479480112390642353462005229214546148167320012198570692021747376874287988595908156775853486718956309240921602894187300063305468129565002195332779211626942108490150313090573395965777210748645651047750638989375635944550427394974364784579246855919982376449498001484705183285459258541799409490967913768110520383418441626008284232373628036990723599645391689714281980194010949426140502790821955353725359413603464985864567645652024403552930181971100124099349587837372024522384048002146592473575431898016385204727992705721464806499324793484002643016763523269898531273230801949816710173249764620177671520336237513675341807641481562852869403442152274197667812068646492115356822928988636808027369947871334621465397101680627268971869374221553081498427026876259015543401315904173548123498468521280076641020690314576846390380232528152556766922676893101515764624759901984209285672920049225323059650635538140143219787226149365793919740478171947822863036492312859859669691679571556249037379319139483592771864010434428032695807249943155628743825427451280072468887530723475786861252966933759695684166096831747367327650841165349330526447042433089459903475489754038776697276466136058405111806023954992607553250746907903956710153380423988194632617589114042365566663491221518424019751422556500879519243585072635356624770641634300275261139647213402813178148185996186567662988872068131716767236327755964563250528582650639074542420463785903179426317818555073304667528489179020370515287615661482466120791422966119485482808429018104457350348973526036383812055254575183598380468957691212963640697848227116877974101934849978151549057547817583653859113606799958047312571606702389097414290354704612995707355692167984139352737013360866929692896000670949387606026564874889037431374074466408922078470738546708852807511360142438503468138251691755473976792941236140034979736003020821132888743047852867881902834892139660242722948884950605628427221929796519250353760861273284188671066988823880028486583560945155413507092154789252986056809209915080459704528893141840152826333880505757031168116301433777816506050409195108322655683527235565729925774959327066441105681834489216819797953794476534087631562114718058222030735607940792862813613928174229061142807021269972180170822613146969618645324401938098357832514746192191968825590196569051926720436105569369672745148863727204656823144128902540025837951577421878284026784107300918696951541711172338068891013884431890735198567098099206498379454967636871683496853208533455475559276603859644206514509816043452829385141845580422659314559434618378559774300399270164067208622200250666948840824374501772665623357674845482155481130809165022068667112007881875329610865707111687034508956323423388581097485061139782471549236283112699681687890646140829308102665996961896007207372593800081442252887293809548280893391015934960117454451624574449119103206227523299946743984289478405856284621858847279987669191999914390981825321934277946823654723996733252984354254164127780059553187861908330208491234389300169590905981829561267071167199067655319551039018312290414104812913104679114223656173934192859309593551996632937857622295609210231189213688031452107435636713227005354253351444720510784248394263404911688179276916632209253489013201076523494088407039546176834357373363314620031539910160233123484336046273438177444290712382403898684487024763312062779267266467226897547780130669516020340638113077071498375458926158876842682585987767921168824370774657295479958490638148503295302869849407098517822007367233669409960557545619980208663235672761776386852090643861215881684866645786437777946808574600378683349607431114617521859898393123356582661009817111891797498653264916610002068738504114386684216789716192576799393487507347760414074527435566585485831100504770175711089265753045850352032627981337946942034632046826994282620565783545057337055739399937980792916411495388552294211457580856146962967103950814530776581857771210340421078468876556447040406919888621268173375755704526146271632199972367690352395635787506953895308762687105282515433340443222086363306592333682133222731589008613104779278658629533747729650573417294289349512677759942833182564137611327586800096549640443330636050670763107087133297813494547443672261649750943903534954243112987066908364506968992557387155943365321081571937427948365875396772433810584640262379938747167030834415203050595393136287759857199312275579178362389127036987989766718507110085543941648386667387246204399405752944020250176129394645056955745864537685720710493463350229802426181296627498444672544157077168393427900843428192048247066033071053276009545889369676968397198240487759245907835319687157250952552733650269745086683444374982386023738565344538312088073987900055636741917756757415021426300352681090601678082619980184718302035852683704358441785787825098578934826438420581221041905249693435754505658961741299135563078192408980535980339623938782381331484976242729763233808580705370647338395533386676237684687607697173980907205188488144794917028489092673406950979015598015868295963586458953682481502407342136078304909809715864782972124206455628410334848127451293263113709086740878069103757973578557475860543764578642037165702214636212738359143263761596187653235698532285080135338788441753709663179796924988776769656313063886121905923948348322396892977101383938799665212536749414228584514965484676460580242353393521886176211972256850026087355907529380108700641265126247485632938812694523372025367975324762558005990605811331553175220248893541412362235058840437812724521592081700015025934517294945800467908931051759164718131042292147061494456169066035361303675564838601931245859719022406211315105285636411810459272789956056450308469247913420296378541808851129154527805442988837474628772777895608080319946568328443837297380402127643908292119376999981415964084314281226217194122784010043507899638336079876397751671203986773668225902443822539301712916584661501760278552248557568065756682520516359195795646363542466255822204809621452098055300424240911711465675613148141403927223667630103833186548027792007155455583762198620561920634739759453270996785127393410672672835256478809565404370442370951898056124594874012187697647837015041298379626599519783191274520367936475545506929479787250985781633380709333246102126472060683598413118629349889492997878212931436736380657199876324689904396202069917116704109701642803353146154271105716079782907631442879411961546036550454938189579052105783529866400145629362018185268340301639633222806820090226846186407399875630050007321576421013436782901260510436264787999905342347937866042987551058576424521460945125530392946920188253974682594154783712260426401063681752718628925942536762480280169413565386121291165991865922449329796638333504466259204394001282622663306199872598023301038364874790317555200773473865589007766661900714381575593255926141888016381298203248349528931939193833176765222119950022469633914375744554060478098901869329463984577774677133057459481245533187821091302926804735358244078034767461891235441760517622701101483909421418097654056092333744247708008349336335025656839688084316355783494011523739925663916572822120687431098845716462361368423834030720197679678588122191790126264698417513594072654850611857525326252862005733860207461612600255729033761254175772704300925926360409025630804065810156108024879398747691981860955692739550920326176595094817545603161662871767590135565628899948660977069720902117103201854682355556894720724358627537011473103953850230019436512420542643189559346435597571016174703978830782615675108364036644156706429805279060497782631467884051279393660458239314310001543211342567223505358833547535842252720132869291876096843978713148674273566332731797014703678686655057431388311207876437908912386200764163219119699285273768597735822262522087948530138998996778683875884067606008686639144096390253423962878039590847529889252644876599562025130974798230732697918212014743068168234108267759205420974548247181622424330939807340926917882961828097806288512306484416317754999059937135648083369564432828747225949096025166145468831468368337982978602581123012893728797959513171657876066035824584026226574225938858693185803247016900625990212907953771667969095887781242576096740133950162322967013052424599278394476707251654381553488088583038767060230642997188845927188202208746336122941870008506951205469597749026410958818526399162794108248750654583084145834468403203566000132474045995322713071999371706023685688357164318742581051795484144333924253699665689368094377458213127680783341763496490962107808969155974619731337867711980028391877334152746408571640895626002944347474169637192173791348404027700882193443748473265770488047333205108253188886923999807942147692744787780521360735037745063299378696584283519633672184528578537869059761757562599712970560692124109376143259705847687157054936357970415373110620058690772607902926293362865555735735941398083675269483752199933227047449476478912726776284747702986665683559999981082256203493851107729075481946111775648833159991639877862076402218583125498765164501412671669082222245836518955142498531698929966640306630749541741271658385337683203302096291380416067608067829736048366442407733301597745402889814606126779172373189527046164688447418001948891063728897759959821484376998171060967103836766383731175835679819866943505114693514506412881151785218686474230882020028697469293275045951603898231242714647400637077202997770261748062086320332362465784802820670777520222701821053435291893390939841902744609247222152699929621865264622339595673040776463631069188972589018342104532387216118249428872630855476550513726789017352722977712894719255989925246827937815899118158818157178245608900869809299413129477560576675880123054595847819677779167199016349170385318305464935910493565953356023211675662352840663268658465518792325265862058888186073769733170645668802231405318265875744123153068713760714719560709092035914227512348266859841674257299130958077321418592766405253664310557642839102664174430101282874904585774044231832808455383533720257995664221369711744700810894956971434435955339873414108658843085044146077520630465114511708126346264728908772404237567858028563591345773852529936183608306004794921247612510444037016058710984592722149518164447796819145840209687191833283494655714343921548803300011141893591947588251396926399823421404384035041360776090438856692640186532911868572423203276117376936938235451790799595403879434719643066004628529570615416051969061662901237735122457038935741678913313253946116206218267653506249219648878676065054941489384551134921221462210694118472095536037508849628083126817782928388272109628560842413194408146613823474456412045125497910348299225682490260246340691318887726502148907163049500789063708574010239288704499567126845990802299726592905292223117161234929454455010352437927097770197030414152531700664086104132162539547691586276077380788095030649878907799761230200402962652846863052353309465921797854228233368898582776887964788707903753035787936264033531472325600650799112951914316147759069060479112354375216736920531232694565492912617192723633190871591529895787515175755851412191164728046407565064622638718150713845720516635542530068929001755272073698378840806069368187868115734304524545469175329297597309906405050195538542258576922209926042826767093904042121909147166017271082148544770730658613363892415429614714668264502138599094998324446032235295166960964573961307973961286353982409426449521822431110416578150507707526503485766730667645377725127334958057748407779455509951551256424607656253445148648317491255423331774336699681255718616220434084755382339679070633224103146326437817178750358329069007146339531366197632011227266584794424130810090057775621374546000338342209393694505158414477691831123700955743793312282586349978530488006530766693184933437345084612738803673376536674408592357243036980016776494231626301913218788257921434504513738262797963059310242312427618663332449635834497007828877327710674108331496502960270012796886680088859679468907521410457725436176832037678004378387531693066266110653164768437180984818488361998525889309999953533404402441991604336842054099956245982276954429709558829980870092455578689319011313179970899450904513865603562063931004017748091118119537862268725731446585949774605240668760105628914869718525082120617963198749225628460405812969312310189703737138028818794005697797787483437486530370112940850981436685035059294531038694571472049789407797100799406889376831011178002032574607024990698361867705906073915354474922763186041987328895950627465072702927758256378613054411974265100550954389052499674279725126588686209074907996879465334222338304887219736815662690219098063338084085496602320354182586532262726301907630959767758732058413663350460079215362715282160259509378040236655411660250829531911734111673701266706854359255606950608362166324618414010226659927403930372686493552635729451920424354158958667433423343641411342886034823040693352485020995702998682290064838059646814842103216087926149175184778039769403482634543834559926698480518593844143338045040896944041604743751244658313330985671259125079685057428180982348712928812655332582522716419063220523010656610176016618285064880586321768387614966935252665372227965563700935021212060035735916499315751987727996409271187014700490700824661129023702806338482671153965759160277364791638819300864326229347971608482967310988360986753053079263686793647377927907492766679332648809396799556291075515474163630268392880890799894343125114436275855673959589178968017305750103635499942039961409819026397068522833024367654535095936860771968477171610168161543502284077498271176263724103336518797462833561720215675264442090738792767438945230370285808975396683149366227954189669315109814269271108696989867383063083745525590629234873982023746659850165176029495111549201179698776440059667166394032513337289049170113794559250846945075126124408745123996772611963169266750043020654893759122430731859683400202999024751843041564007718769382491318452793111671740071857268237720846050112731109897128968423100270590735989944453094727506671351704104471803609095079630748991301391425258972527989458435485105027713808216218527200524815650473804057200935717519596496732701371000553087823334598920440498660060885643100971685979773669284034670508165695388199442514531847632642078699294377417698945922138573580359011230764071724031481001314278495005677195604968455370903885352025479253345109840232315213824204755917538729794434258094106568814377512804193794433011301572931117736109626549525342474979921040134491424172926617704726640546064625623199665328932490152960523380722561353268109759758240957101847158685308206757012979811547859312297819456646794298397840286993031802008669976678844354412459310413339521608453773335670247841432806077982966271752093080465000547015365446998583891478500879389385648855201541957308716435592002930075378301983170546693130104938676032527733010537462656276178009930701605090245956996234107382678344413983002031674740960893283211586683100071731698484040547986158152794633319724541750595244772711992157537972927241785588204830936400380602277931596636586660841163514893787593265502986651099655694089772332320750391273876348638354605525317884517142923222988686867448598167762338004066252851567766278085730454190336087752047878085213051178853515737494053697201050959577237208326755403850217094591667516122283980010084641882605213962767642618902711703452439941813396540397502213893045015829070372341845976367630398168034779959710397560711273134661960851448772177350747307678599877004359894301128252820652752631568473925951852865114499618195573622625377635521814870798681230029595815935402558523343900603157905162199102711570973969733764520189655191401863672639684900670806174620809797138226009973094474317203682873589296992026852316504813949768322624441502853056762830544413322792228253572192217867054470920924499135759747466885632276339337197773188818971369544930805299389526008893065589018744358008353714995297559285316689029568715513061053532192882174247147324828689245601450734004960258331334444786696765774035007768161914892187889596758168609287740568937681630782625860612403139478537468525997209602078154704518131594557567250828245225203298543515424315260354049981989900951112573436180757775341262472490783833691232148175673036969591386916457008951022988247954511201745613681106108547531222372068880085771308520028949919709992005706813240328289362690945846046937751952386168911165525253904733944799158872388247017694852807140810653706065121586737783958160227312972488231313538852445706438248553671903154531295092866436732955389128598252344234558616604236652786439426983933524702605537719965370051289206357736925146542547126085925177093966214118942288872825206574570805387061090631354789966470528553880688162737524702377325816459009547459243780775126659599402529735460760671383320934792029206122810366544393269450607662916170843270474946805689604811264756521459500343176236441266855260952806037263108278244100544542592368375339836875101241482313719023375898218238862528016115327576267089226184881775273731978636831765232873790562320727235556130246437752291534043110050140018563132772184424947032691396749629396526783872280600633648449036443418301077527858761425207687932365992064420142730855522833349774400806781862383628588844209863662775430745252544753566686080609310811644562240422200924962094439621423261369911255332810929373390257943017612969139938277270501015870539556684023384808216079845757303906578961053985317233077342115370407055458633853493776841279363403906067050135538467204359332721757633105877536025937587487975360815771077190113448573189941723728032019062559517894647510093129540108272222095292260876064515004068702611198320072147192121969894084443374732663644385212378112773328312661088618671283400800072658102888039162162929772413329182429025074569656429893852699621574585125415142829338054322764805283310532746746304879297306820181786660127951583805275240635774790433057500618768416887009587084599676179587729079195144392369880018792362658029384395873053926877668050131757653410792153464529552542193044950985314092481632809374050205273644772867711919498211892297044855018342728296777777850928976698837139185665870643430555703761621878338819969954660966529542992355482515463524544727324937136565775200705200604736721350365216610845272877347312179904828063543925004058449856183559478921195913478847775307229269642026441354789813508776712287990625217627697740494254394953498593884477709438488276668826194946206053833383728462185716851324454187766463485341772759262546757419862001130600594635690957579247764783861878514896408026717223795782612720541297060577346327335208922697834453728048473729212026315264423390831049777090480790383239674873810731746341783099189823292284967501528577296135214715168092023406299789607702195575442751255320070456089591204789481917039933599713414335490179302966437576939937103548752591498504174050939124776471498769272103349032768635674435083705229793046042568716641532037419188329798145632667205212663947608462198877272828775382405934638646452620040305372936323770314174247030349227765153838698467942828826360636923974527280444529313567166132468921794160125812598260100350339038301615313770254825701133823517404361497957332017959943203370132538413696445882003290284266742802913827350150157764434903426112375432050058449755544782930184786920736793184007818817075638223212520826351136644990849047453697862639100212884017373910720244578607453396972934821029880768205955650616675292092042334862561346765440829962039029259099304377388672428298017536806881237335287241379159474225216309495597656796157574860670664946835568633759323273174681623414155668285230550068888002053668417774419854144321756482802656677017524540743792877488976403786327572372203536062659969045365589239915161451357436724690116270137625861357777793356070257855191055671727406812980316994832205392276690613146028996989638052904043213449937613300247325668541871201901489878422858718865605069607006008222999911530800769706478284335880850623986854808518650597589763792059177151467549615519014234592601360714395873850491239284898670845040396199405577459354866673909174514631355334215166141690834512343309434219973000423344803195143673879737576974834466566028140194892285396710811953954352465389544711995977549355628465729501464423434630059296038607431759975761817313893770569920154053354101905272686087435429108924516432298535333545342260717584182189466063659010771210959288740690633423278027865611909725652498068934422964193365942591226444159259459699030651870486861078910315279282258071828346992472672682766116414423478310470342336622499572228408589539751325170165505396789230452724269739490109222049939111969397467176256013535448791029432404614329271349007858295719538376140154233336396159475726270971238635070230199683114296844893157545888651999699579640472620027607904899761821976206213597479471510619760865424461372135629449288976632479152573949745050493864483782339912384070490520726858827842092064701442716817663446824396743271221664745461513651202780989095289540536111827001396823682207735353283908635234675963821921650107382660069666907600080387044028086415306134878281025254927845625946776869447944902195155016059474730784114083691637275925808174338246944080902380502975943023272515788635933816831508872261899836780719416901267505924727711215384604441826311634935141688685242371728284672232474836283005110518647937282266434035192193569612960314350010317743135991543777028358313209556943248551226053050970182400290811365152608038049773514333203715021573022787356807312588474520822542434819650506205308990485568566574765699321565685095177062016625373925590285799107553094617258724433967717794980035288531637012080473066655957364482447660643291784440779209595591565451628201010235323515746650628147377944640359284834600375536161961846604843351608073975841431441584995702503409688343243500897694629347634334247865652710379416961396328637060739657094384794830905366308525117324734438838095377850498573314988922486843854958690186111121056299327440979242784635417438459102020863441919457529911965138061749785437874795304701625369624113852029978130991516492457990993915257853314342626110137851667003009162840414424040005111495490070929065339995549053487225203774226728673706636960971191541027794616783149624895814037109107040822088958508366744234863825477310013794525410571397521417532716362600775573898757596897917509867925559472451666416885289906061024503148762260707502861859228698158272098661287632489683850197463789198965248186838697346809608060251874512712697844301779839211027904898862013287854705510504636246564725994253495309691004260612017095125823023171553425714915085225604759528627862804299788740987924164181721045218802934804962743909571205931251593205359106252009007764811827587096919511038048845592942321458838999159384050720518224332027883439535384889302057689383598721703857445472260551186973954369090549120809382554250590651089669055166516122162682229415007981203843954210660292438757709901772328186097273894062703074563484769552959085051921522406218145888935872664854663064782321074681544373973390658604060425307245331256662002409892358043706774813969478564084564780437724957254207957390374070244333968329477885825268600289014833093817224027891300889949163721834217944384947220030270397848265711863932937080155982320238671071859987515230091692766254576918824817343931743931466881785070983318512100608980347239383717431862052824278722855049307900298183663885813561212947854701646265496869969252419527578348169057443447185759522671615014256853455380376908595874178201452256098766420019418587748690090462467248491445524105295875906996217326506815526524406587828712204295045956358059896579110666462264348531618532357167503212050425521993874123185111478539042658316603514634723396341639505572422860971053639080297370499982361828082367196644303155047396378048371375975971892183192289064710466077062484882862100508604953556157574862995852631792366978222638673298247950109898707879676191157824915977786509811961574720980359152375350325898948702407107616703762503464966988647991791789531175189515400261084052193461800027520286784774341114751596604995351143535244440269820573949397851282683819391384916397340065184157552846405132286680285573423545816690095716028561932581923687409540008716771521446425724861666772236864732236177227981318118620592166643551945839766366091863835501645192061260898520443085419701545978604766569895748529933043886683597987072748711421513874714718462556389425472950021645168728297963777531679256165920806510302986291493900720521397257192905196691550203075023218378202747436886788666390540452347031172076930764387794435117981011408251365458109492524132913068955534789049383111016494093724056005142069996258566642500776503003702748487966454220944526893731181668427562474871271255498661935776508066134215186713346724410154561521120551359018426056663296015042672081102109190975250919233390571344733954667775311304897643211940595986164441985635251520134556305632343920450750197887201980806310892451952147903760338528477274184814507600758985838701497079617674495859489045508852735412776978168147490038399944824986994034891700616741862162830836658867172012142759907264244492659241026555727473196137296031118762647105381203901909675275717202525191449732261521179446732899706652643559537476144899756145114723215064162616768627725904346440861920312385256397852012401900932970813369812778836275040737892890327139778363426773030614766930718403944501971732797330175610713611418807671995622504888433500128062926896407844317355309684341035231787232802235740441182615581185900641919527145332219333198753073021637021857171696855897036324022828058955062293279574023770508858436321446276367378582053369896454375633594750316307464898083509437462870707571183089457259098620608902637981871467404286439460895641665486541579683694623663938928941981943991129890607056899098107930840616010971579514045345091734701816525746099444070341308301421055087023418262644418624709190753380598827007064497370752287807044185404979044045679520051196439594528753743204620608079588427794284369596043836291179857624280326929246235593523005099276787274359089163522439268100562886909248246360597957962655933085550565584215352498080841725887096618290676771219608781444739844583868605326783177022457506468476783605687953276147852241437969582072129496082915421890777260875745304688787898609737409206791978225684619658256253629462621165115157472977878604784902756667510367306676339301161679758973873495493414372051626543723164797197193873474381090458093868385313924095087405614759021549970113957724547327460869293162406289470408159878091319619118128904470412213688700733760324107950452655447106317531578838982292754691039074403356173447930689565917301188390792925010962677885466588964948134010888313210072534595937345345701678616245172093785054731918162676614391434499298136128767941907614419446421111322346651997170145911124208788956899474101407301046236288335147798002928282891008531419449128056463098455212945194960531368747473916104970569332638389309328973151353258128359025749375495838080665880165432125656159606822398103175568350395757141399164098761042729080024336054754957176927162776123257969771895767982535943909181721887411181173464042583000484071216223305842237450194626637001036587281948594054759702314096361877115277722690948755768848213855053426081954579611865004262530147392129454110819455780510098528862612446323487782194851807085391077864767915536829301205556859851742155228944876631253686676428264300781906579000847683579608698994270716128055775067133295846057083309904227034062940259376842431229098752143912688674671086868704369644140321486471517478338575004213115051263704839686473157203225698758222000326428633285704845473584912898316789622959345952824662921951735093100110924310491592788933950364078403453935268070479645123502359538250630339495445388580378979565730399401743667633640393307818641074435940961470895476079092422507289592285499582968871830714795270756608093455292498113589899260910543459310257013488610822768860181237700728617863077568147484523988860934685555967639099502679505041488133924274199370843398399343014168158010686108836958330212783561019498487308106853348292967887132927395836497458693024651068609443536238886305724027248875253071839963114661922162544612756414897443196062297141015010929707488617187838653142080272258177259174545844320794889870318077597488256639383739899710654903720557564362435802606970125364512423647085001500738995218005120200500116610058075385870399644781760134595573192317388654158206422828712116907904592484035132703599036114433261629791215415527581949719799885719950481276320646325836186124161752233271703248985582189188368348748350493427068816989822274396607327681086401820597451748236602268085766496558327579984798642100834854124051891777322824774196146963411824558763376037195340270524621438247670103169315137539413333744971613131296084864831646407224276710796719956800798790315485533716165668555828247947482758488141375388811869884791295674323788928620265581325358625581973671851030453241649266234506918558594142486692089243136284001561736746403197058004884297997268168313235964222257925678490983164980832309266253147629189729181356840184071357180560914465888755600957314314508909757050893541841979412075010018268484534662183518513200186231983772167959360054742183025425780889640380579592830453408322218951141459412505273500783134311865553066911504750583280238824131911610663783489393504005647867940906696097698925732799923741340984211354766305972045267106401844564844923584673756406499112438164303219044266275470037974119731182728856411274095137292544472835900906052487914661154283177751704017010937935352053244327385503766115840489525979583338471419333753135731662919361907535941779005621388708878090882686844339455020072192259365755172340275630808011594910087287312160184117209122748952019822969545872654263343424843337163586978715909046092737887109630053010750080305037877373400501729938196166021558034467636884788843285558329297719654230283441580069288963830801302838507224891822453269609206171089253039824383456020950361213036301103228900934473769043423173409972583221088618723197125450844129288552620001827134006595324205719921492305746063210464303813168281098542661967425347644714232007626120859883132397996193881646601559596994950154318042101816223606314278316401301376803876111905675825659363227714618352170748001722648294923797681106059595763579570573540241468217670135060931836720762519010089729619409698700158393805206492938422523321212189649627415338583494254768317623721234170074348884443128304806426818437414004941196916183952482660290663341215647711789568628557445959564594878361266005249320372920940569060242137074635871985244927299690878594718870580707348600740887818579074262672463604307991909795177380584929650074048900354160430852895615889068685112681844055837994934397643767470025773663857903233335053861295685108644224611609004913677705341024307549506806711185629803856155747111700050247229636194398776741915684818258133996406417182739173802922061875530125045380020185874767317500152325263222184104484342462467531706368266334389385822367853501762311114319344004293323647757312097864898545581006860303936196902473880513762651792527786929640466267857964995660804862555095373566083536358095703364497338806315623979769905027699650011274831345916464990014263451132362499176631045332735980918686989750569509662666749618649910309796924873282463951336718997628909470926351442818489893552931462495698531565128707903780946340472675225828635213881588313464277205881862195695560311331453640763090538963013264159062417114061480000285119276864651451293911516043478251802433224580078126301202128775948147164143921149779786402913861780646234470836173391296195927726324917364076266358772476084676334597477705154379899313955117409547942191887831031920296654700505675476108152831629849855792510315571573969623779330231910086332875224819594565690614423302776930669398573829111047083102211219348408869169899149493327023930252053270571409043145868557334696552585687400336509482658698652623054647933675591573039837697035371718867191337118856000096697430794490974992861215622616649794406926221897591701420371233849595957462202325251370378961033097634233174418809816809659095046423516063783407940566025937214706182134550351414660218913803116275519729854139006455671004532552606843670006892819966334020931128006100266648300960877501385504707776497019142089381225592238172846352427197627172523795518558967255446676455304275071236398657527110976783989221382227479080156819641614390253911573447153315559034478045901299160912300239385470364070313467822412226101945802171025432517099978577260777729933050430178155714833314302867095161792688139462723824260398156144110650812854404219550959685726415838846341199803983548774811952320573213203524959509745441400361626777270182780217150987187769951591054057782789690673942030287761477231524652425528498763203731100834506177042083018552048074329284354006880563109633159973989019317759032029265041242204563799937514526320251280975128076421601244609539724722090390977682235682295964002140746169041105273450135070807945454871669559749447993054432387586173771691778431330132218736070895597068910987630035770177481441487924489641333730165912004305973607948594220437557158487415836943886637805874233746324583176175493438294228378323264537605536839278250873228074550569682576736704272679317146941570941216288974290596156621168554628203520095750617611124627874350296429093696986958452281426970032977843709982646906700771544686650283616164188900887269904461424641851269145618045004351105440619050251532502441453770845581859126661704344949526788771791224373947146323659463336935339511131773674600007757999167180320272381704944733983599720032161452761685218821323251880663891313405964590564599840415082791480940023784583915648198565162548085120734518362576067664749110107416288189486942560814155388959545041005053534033160871106589696384083774022943525952725218763545171939873829779191089790347361754764452362163944120513281853346038431126069120912737348836979807505370451252030828035337863703368325395128103710817165197388887538585413723877702320740320037378313248409853227270461157730755585599100882285797841685540247380909309080206071047026733529566116570694386543872739636605217013103324269577165167304925586479419302136737910430604317527960098759946933205401831613237046551818281955568079573938141678290421082005589888468065432365435233387146542641967386767779441955741533099731006374572347034822124069951470813701869964985512135426607733764931162249328599735374378522090663597637004155496714839240458185885501590123538037448099416513173238162161433717149358209624165059942467070931444575594413058789698258138154020743816824721803899575425621135334078739207349617340630447694268561497660705882824977334146451054504323750402668361069081828108543972085030112729715671437292998263097640902481930755561902658639053297777656996985912770501027997401057548531926793990167064448720366847393406964303881310920097536952827143697290966726401771978353236610293106905352027398630500889320162007773607460473270496854092168737066235728373583630988239210416435159659373657790307935457215747006756372892505996108335812323397925935324874479016231108078782589072768178047720915455997440418009872821719544357647743499998603680070381052499069061485177853668080125550975592552941473530871814266027976582714920882029166714827354183179953335116602767636815185506318788695359588122334101641493329560658511138085897072804250217918020313333525888821112419203060394566096420976084903519248927128583344551495569350897165551275469807189861936594218385622781517593393430964677173006434900266333993688437259776724938947729613903104699576324060999966026285484224780503647662308931597408234618715375127194855288749003887621165578885738966877405576931166971217835520473317566312840341860051940448136624100289721585155171885114711751771168911114776052291080132198238175165647215594229692521951602820825907669229509927426581811494924035301728463613251865278233552689169237163372617130567639587942339009282563611674535585404497418386551915676577789939785456975240502207439702479834564778945865095885500752268535976517895617734271622898437167116579471661998177885059847532439417301241388666046912492462114528624943898693046533398451875672969160649023248200832107527378630012978879324958368288163097043880303337090672666362012164200746455505248412682341904298805641795810438575949213031228745536119730532480341951843452383615077573274088624917938094896351746467316688473578175261029880043522370041660972107643310169013705121835397675784243463808419490063711193049646802288260414642018713996058982480184134135735679200053845899572432311651673952257902534991963017034880949023124581612975575341722169654031735592324299893828874788048902198979861234888272483393188326963038973285676277505821676491910427795920770799004920159993475559712323854620805670077544833218899957210740282599498181193846825234052495870673108097335524035330275675870274244363356337001008627386030907350629547400409824722130403810780657699798302914780042646276825725876931064323048474097923250713978919734448261831689954788771810272918143810596966645231281467511869978452586181987030484874043823189014275687509223369756106620822069533133985505795923303900495295776533966294001839681402887859687548886342975923534790824218491178751362571615053871936710971589835529657447454140968169427856605037736741952242116721841142302282216900823990082012796774464082725708088614819710467590721738786144010096397110060797534621741437450229381584009044791385075581223725604932113675593042332630882938063093095515045600948259602024214824489731238787616135908997280641378297785596708468679533328348882443500742747701321572381238572249849753574598792410994389197687942043907759404785964329427384918726367292228575877480438400952940359773873647814972313939777872400637838268515832512786430484427742451052661701712095723692012529206955199602881322523054031860060083672518575216717376281174261044952188567914875401747874023689578322349820945612459587517949359267923645690550923585983462340517732339650324096271643518728406461270490005952338912861125424707821240991332624607571916898132985419255198745935523355932847434097538233189280098544711962266836830117681420597340615989755578396420896503972803063377276867179651512575341209181066085152081945857890214332312049612804767900986206336313715529644159408265081075220561817217471542167026999521908633163653455352071745761572179010231890066798101099669442351430364154897020422644288602777316425748291727376684530594481008064279957077644517373131335788119384807839493015734479226105267540998517948484655685283028898713802257074529052917135087604001885553756336650541326102516377524572454039211527191913748656414642541563113468886033962813610051506063277731508679167649181198418796544620001318659669296408492276298648982082101704865937425704454944202615980551694418281986670444355142163925374420067404684074145857251038107871402662914458183099304501684238033653572959397794345786981057034304273948833048663107710570608365489533181582130274723090084064188817210350184023327534464133190073754757761066523824441949177852559492657557004235383427068298827550444040706482626800624223636489798606129707091869325378342651438078103370973446964553883003642209860262533519448262661012309512218098679793704311259383239089522830856839806836912318959478499939127227341327990720039940295915948648703905755025795782751086582836875077532317048200856012893551563288664231220494592109665329655433925675769241643533363540805338633678908830025171445031208813069100541736667806072333045000924579016821323004066379293139269919284641379836862038081569951600820323613682840645461909732434874191439391298266806963536447186492456054340508534947826451489606355186341218288865204792840636766566804242261873114933815352523580120874051766176980280650455253066330511588280422647039772950620145855372397998764476926380329593711089385458716051992242011481601485746629588818092186547003359139100363917481977738680514696337479885152550979134725556665913197799680946935767944239358436287946637689187114959023446721158273850522953173722004282009609903042832198472355917489273352764816055771686458418390028987155149826062113473777880556111689395463732610285030461475257343648803477153624142112815671061928888853065638628778399428538917246620706653706424200637666954087894761862104679465699482158326701692855295390021969483526307225089293471719777757802322992581406396791943390055495998549363833298232399409376455640988658402283369220570449199719817165860993270617847856859209189154654186974682712822146310108640156570084388775949923336536303682502087401802094762652994741690233137295092469302849621476942485337826188323430526749378031612655002604230300219554200095641048720584232218923715806056073345009848886592388594580569464716915569673006866927980497589019769636315532935284900967729749399752919313494073869004260353485979725219081597059672754176074208900784739657678726328356380190430115376951985686781508109638773337507660724291804554386919940712213258198169319050578795295833450718684783236738829357860296544928540316263201068661911158331175460785571341426754198393650678864632248495767241838059626964110603256626978832677383247878844676699652705307278558330474166141529043839535726725619158509103508926447184225544993456608385791505148379434976637973786499507980263357109085965904454165998500103631530422207236044117120239688476540377675755398079134612580455536578228094799075375355919304091700571704658654982908794362415155125154169831131284270097114737899242178749064889015005624028165164277882919152772339530066656098946053649628726089466221468627765654848095244264882453483882873083004881790813242791299303822967256403185470335179497356028149272385471416441562309979692318305955371518340534500000141208271826279178696440137746812319440994038176357242804603794882013876622834469575724181355098953388434309391554740396919312761033507233967019151194279100609403438631254025178157258786220103086077994853013201552969772773376925033714584477823569774560403038482313307653169762152634177932870964772783010880204638863939304380978123552418576274509785110329076043536724297999207620506697619173682206195549720022716929077376282696112225610494229439739400717001695693542536753020322347891322000505475515720679929101903824785885282401868175430795391950115474713616213468806252224632311740814786625953669204727683658087166720487627749862853633613659198670645192855201629371486693309796917514273482987983404339764739488244680218361524744266746317186355700463574207515279906236720246003266786555358757304701137064009188023219063700982921681378851562538407205150292523324515580591167254241230902214986273970465507527230341634440922677819831175544059135684507522582451072765416212785340018293706413383707069283378609788373281736498421877210782363312231348725687264679020010526470207444679506683390638559248859362931460207193465139400433018881845558513399163802609049353808234471435899467343269697532755820511198549344284144881676908130509119376864599893070879562743269656858288560522099974577772344727065301110472095503629260842298213713559922216976318578308864190661340050689057499614275840452597350297566309716887786817427971493266303001318538215502745561424741947611785427378042815829950066618279600662347601803322239486338015877300216947003410249295478517959685030782167964708313171790598091356788621847478944620333059525934452548650196852495521882357883478033327925865929629450389918454371674338008979955568515079568669048278202401282148931898590201282502381816834256043335813371677673291736274603233399700263190824304254192671651514541725140210058315680249384166539023286015131656890956387042488381611267409526245583933854891231639953977963554445660758435714672823034912048941130646138595345996555204405889604772092251745894535697457504813585136793225657400235593554025706973836862586035709279114283396214069039476784746391357238787632186481574548636991944980272531622183566861569760891599010596521411079931979204497395558580377369187602602970438789694509484030049841915965542220317936111790179348324018903617431397316793775238576591939702929306581095707188846181014554663766124268886327870937026559829771354971373294366712749534059778746151334055112792247877035566418308546912122878347394900883548497913642664504815091675152105505376855400804365623146097166186710700814697933412210712427887799726491941869120029995329961982630352473427583138853084067971108645192041840419766921909134758836027432338278919741729304095761390772475331230610581945572369198691458987355896932380158028117562740918122215867816945974549021712202775037374153744732592820714636264372133350268711974006730346405773575851274258174538637351515133142273818181355942103381145122085834476940707902029509888369063338193625894026188112184959575540853827133171181798803829575985748869624952881950371155993263996025875933616027705042799711528332514827305038745723671891119644402536372821354060642977397008655057616012532179886068983430241997868880993897312797884101539944802232302087883819583447919677975828054896146596966125687829606066956025486207500274246015096097850072592918161989179048976347066062460925320677718469630152489531267435159764715274673381755193491510903860069615885422235399260917552932369907986758196870427278949191940690847950108189236917140843946253520943860199862624418399219894525003517079483822873151225323900950621734838388843003747299770800432059635629861131354160576977443128912324511834245188071698834629826311750201231957234834057419433321655527488950404479873535917387133937839198369761135517484614637890829076606383963536682562729720312952123938762925851868483234633768282271297934622979892162339973321265803787066599889678806665556748486375551375978560725356136296785357917790437654349115876401435565849673662210127220547683070009440863982315367195482567040261285225799728758696210176180723859673664046717874667353925718163808125694020818083117768800019707635266431483670988222247557695713064601094496287593012518894250684271067604995375996328455090160276122505802635416427334075329817771299587317781091240027021442042800472899592534284667014107100680189986528463493882363151556266433816089153735223528820025738369766230706980883345309836262745676266985625216913960814912017455287172324916376276530985495928471503605149104537257384972431295310784406953082720000893568982641794564146304956621935037959590139266008472062028507841852832581249060504787514164785317668671205550179961891028594177056979448654331329100157758632824868972918328121181152193488741064763255193732105675990299422933074718982693921813714145895742739767840537829610236143173696217458803776916504652302264486462841932203967701493335139399016253911043052761571743250313955335553929213096406580716947686376967005881029715419198079407066964794587258764421185374994651661131689831950816321161700569159142866087628881668336137494081329722936030168615479105670783222756163036695143212685824204681436277557279818683786222268825053497787935631011211008389894244260418879833251151854075743734742819446991086542128752616442955420601533844719225052640709197496014400901154306770765184466938750664845198804464412072692971717121121788200385903920522709993752396862052140464807542909198348554902074546428208370326516576089693424877003818045560436182643048865587238358428437157045866390391469789576001672562415372781619477609803936348002651377662387995517761917140201572132103882100985687240263166609270454722031832249888024760664632403922124453804999707544234850606262544764065187003745462619173516705326113884795929948635770746836222132377388875160674044805515923728708153775039164603106115064459842141503308051724814672921766160260495878877848837515255073728707983258127388433929205534503676788334299362272449986533908117449234598659139142163193641580335123306031874792599800418349017747641792817727040282104911326745365182404847628136417948660877881060941157382168642422981273551056020304520393143561458328123873571055787466765862145594466595431406663051893170080191308943926647469423080353387009266291364635223801727706020163444230305950651492979556807734031481718043169033750618557969057127058579404935445123010001442634638576254307378685450789562752535617404792590849095990739725170849970289292838862182811355679514555807653144519170347894344261493692250167133733781440003850734160829865257101504711386638753455532148405043777613784409898848601998927927556683162293217701278809583572465313707840095721488069571302759367270288687266451368087555358620950982267321432625665464048908133440900293733942642844208065938890983547244654290774908749914991293042473634676345827002137559793801582864086955478814114220075183933201072256124045009336504340821914610654775568158570736807883632076941492140787241965736233875906241406172152415302994890984714627093341544243484092548652488063975466640347363628518303147833879133859929412334658483583655451692760283360619452138384675730627659229121464594813745876875236708036580419796799611184032446685623311246752560018125423869843521458493831435352690486093418850550459012603912503033576882009161787454449335423811506191216087384441125208497689964090302328518865992603509305387722593465628376286254321497001738274152739053634996424904688971243115313623066808589254315753442042215356964633644329655543105033377127894269845695335549042506215125017219382513711568509827643784383128151140931623871143302911680553063915758712290683767126345297575847678284286130174775585959501142466296465843128836463184389258463562991879493740522404963768451898092298722078453405941764654792040760442074880164664544948366057198007740293894541171599960724249768774253540224012649808717563425285549458368440073761090655844780200945115746676600463654080608477837754422420332956645823861628719286880073054755214891531295897159947716702271887115750074690393927782928640976380815152108017860979463949147449321860214630378488726798112267886772382734184640154550937204145239029600119861592626718317553908322834838633502622476631034784056305373175615673138242699120129208224105538708319578410946064563242886347657126855014932356010371989827532807596796626030049523992236399588205902171096531609299065884927581019934883466378924778864173678593372477093460881715940094715294715518004643131215361634091367462477435400569056747148582802449114405411200797752116039438775923168494376533838603464905865227567428579503843652915664403492952542573581206572049306902796167799436678478420453439336663138201424273554602162801227926986574825542230999247828642764800432825688058093246362332130291589960533284327901313234666977488763305391874720827779750857168278925102243938553729630948117652391460599927445516450810349761203140623738643706332449577748287698830207688271465565281394629762778917110412424776949901738288984405642130870066351646046144670600568533623569237050438958610968883014706842803840532098444625086414394166631969392139343957053859119840755384485112932126625323755485631501125234639952570135662820890599963722501416486958992276661454259086516217075432451892786936860868127772232769965725028531135846526941766548650887757729952129830581893955389368538384272600417065511247156117099811025198478558289613793147043503299699609326924343319598929134897041210429474161176454196771811125396032558284786858069337135635058600956305747359159421015348845035442479926575020021083899759367392719781326805443778525289182990859370783445040064086972133940905132267982281470705195665710581664434517829771161829135212676739127829723775341600602440729725212589825698613128742432499468684158089105533135641283779448471154510993211777107964538860575059495903987274881057564696239768047161588456267889834066693226103816101150254249552636898380865392569338416358806385971709666103553944959688093684564008040403215787510049119420721915725931540577914287884768791285798502317052019970961043643549512601691693613874387388048028962664444399187038153785232385749034573213328884755914836619690646894634560201840947397396082750267532832975311292424027768068601940280798577204333150589331803529626116028269153877842477957096085452512070782496477606797225435872778343821286711838658506460363976820113151591337582722923868032480999316399015586521482912046496998143365171759620592938142551554292804559038130733017815240386725185226379540136301633547418073471124460455715343646150029397319388625522291031458515572868935048317356626288035870085558116534015786962510862839064711403474580540170253910508190655273710649340427415458475190148426416578273919136362759496908337132792067535663945587942663890601869661492244682298679735515262062510324626822117848883366655904585182771965365873977256649664623533055338046853613504490369760903823254976721070018949229415690774632220841741350677144151624752213074315809836239269313395363673342789084494985813848765884433904588126868099376117472184712587446309941973695532476428855655196853717791098396267952674699545111235935208744863897673133731216727366664533586762075161774928134615933194135208912566640513326045639846923387267340332798520695390149590662466749913556355471198909714788377196500286027519713923531514481991786646774870305839331607128025369463683113883671092369327338672155364229093778896135084841289545178569832881943993103116662055453768847857448102252986486674383217929674619132009490470240097673714695786038214194202973868657569161980512125699595043520911500226178732102500087817428243196420799894819494931665079145016467077638355403047394571682916447891911122633496274951405248231111296401404077389018545942849075004125859227658622892391074341698202831202511615900254815972946484550075948491434102775234282220944509610938223610318298786450974765009167623365295844322480437299458503726085610274759194697091606518311189768719087533503106166599788290152156186753722058350823079331381298389446557892932382999290659243016671974556024987385564054725848373320864588945086521876249305902426224285168881221939661148692010151767512805831345375477605662025697719456275602979889947487658015906126036615882534306406574972163208786130130147061208573797654737345786337785274025120034464498816219758894538574637077747498648648664003200834022184557275807832979163191876859197185631210360910632825965255396738672942732507664148892598610270884068014716116100561648515610190640252256879793046947194915104597732176051606975785750397140795204130843791625366569675352976251797013200102274916046625927675297486854563206811688623817772528693261243680512087981701167515444308518060793064410459005420467105438069823271381923980858281143882857759560400183104878115104223750305900962142250053993756310475253574153016843022947454128823703662131847914291408587080762398712740071656231020845348550121655752730052963158884103276474018774997018000272962047529969636843607957136076171589204127306326479583263348445488696097995542370025537832416827629567345517727551702549389037962878649498591812466390696935851044243111177635089055199574033030591307150242921872044768244828372007708785442717494388718022789930755391737279907308557441825546258154637858310076588345086182429167530265683921368980172779508291121919479434550692541394339923392638930343045428055433923566767606993463172000433021303720204035361932765079509912792251200583632919715156958737497028660550037433162235861055650956746668551381476260661142924841110793498838018358566117695861753789167586213762310417992085331471930671738490013776165037180777810801471095599664539251478166219124718642071953360988934419089080722888806886184492972921287051808863703989041358789335657109357405482114169127955155079284606195947199070230036718218644557501028474331057834341393108663303144506522478546347059781981376430813200149778513469444089447725103010180294996927549925167887025519055500203721562861687521956613130583642898892222349846321668323950365945733039630913668405418336845188824512773579814032247304793298284508674416517869688807101270740627754574599212441049512439223734269716963431458538933776868830063789276951761907621358828247173064602951741177647402679303793760436843521392037063777219211033892250899814320292631206038836890499905302426790311860635836819782000403250929962669516016273942118030603698318130082209547527029014571033150012736218064453249612993005273059835865690545052697943724663191982273066991447280947607799113123578130315622973786873908995135503440859706605842904059570257728686298131730193714138666167384555957477741413937854486151841049726502835602097103027020358544454078260152785360169862266676698691113948404048623728963812485272853588231094990906267590098725462849406849791085681315258791359247715850645648172127984702200238818237502310621340796078175205614639033227007705929617939726376261247472247505753281063201442528487401588385529682009488903413761220880061563242324943902337442205209769076817435355483444170130497794576899464053355109073946968682350231689946185382491512623984568907692895784410171841117028813193187711353304634392197540246976493747904668276713601723938294310009883194972533682529346830498762769886527753902525329389756268478897889598959492203660835249449298114486420463792527067535566432142323109986511265347601726695956897875317712325770591977318439272734552495986067767595579376138723103849619153183277052274519118864864910827038856440510923583851437885918810409419467647729352149586823402257701369995865840062430989212541088576552915843603830290690600994477930777091350748895686437661461234607715220382232512958527782222259005444165895901248061025713869780507524608161010446343031684881654161941728079388129322894026845285134319856655809651858449252094441123403185919175466753702826304147871214584428190614426696671806325102043633602777947842955813234174763233112985102025178728600341051320042697433452532150516746546816987019342482751475168165653045413865145094935351785367063475623700795793235838732641847569083412343836813974404155068900982223604505388918494826825405342280169774594094248757517881437372237482650247852542892273548924705676480820915858750662199845325822602974881372212094960359382998052061209764680836280001884528758330492683144675928720870708636375821109154331961475330557740393083917291455900914871502440187143606542641449334344991905723956585728418325699514528048875322218847113075840675278005570144447849439804053940670498257498547595489993783098679618186013727744263750896598794408877419015167634878865780363012463108856992895466956471357794875762667653462270741989304211844956514850491098940656663197201195500828408818133799174888847382422722707988943744204460032819981095897863544141641499670630914476205409845594702641145618934937643675318210499545584171163871632564539416039098729616706462679618432699564215087786958240531702401179668306609925680614616538395668236654848673790068008146823333403304620539450908012463912154198436076303197629394329345822606291773852539105184047575164304273007714376047172763117852946535897147782031214466037339970297259357430043453456975703332118961054117334001929147954249582919571158391671451589016322211713584470543450584545359797497095897847950778462320045181928030529121546349314758361434444416495475172136000051821488665393759905212602624890267485329693667246887809421433773504768123866185176302419165296533888830255525345168352144801995073533772920567811208689170088996745002124787017769527524215961738275019228145910845559005768994245554214788383917921162625834196165070846986961231074891601786307141876393166291619154657381392756051235683138533108699147258117328068135057412544003790665186008763656559109385075002903224631565334875318796078383754000542574120824552993065727687975856877337383671918667629684440076382229148314208629492191667423532762120416455953956447983544835428468658699534640443400520606236961086947266287748524268249649918216025917958860614323618642862159009347731707686512192548175799036747619415455385479206130094694438292438789621462927006627016784948746151147904673805289568626321512437254016093804018343080492607188055109411795064523780798628372300882526739879621372256041388101569529877038269325169220139202960802954929528804541123197600083890396377313345824621492623666506611529296569993994163983277849837905975392899218912072781046548006946971504402834072996592447268283551908922378550229253365738376097758397139103565964126116606126791171150063754645117906746852237351923319142927104116231976134691364600699446750279712101615785509796534740785846596367204695309308970416080479537608638053899603019876525475741131952366469024112486631140962416833883351204669502656695698823202070592093037730026221291730959704411913643844153271260003101073426866802037286054114272369221934879213723416477283375196462717049211486143675730801331834208416935141121082275957071161473733157432014412732911801510939824711228197590420292591660211287138502046338760695877031487514548619024521507249365363892907095872285783779424235379335555247395090998438330086820926738418002673919471849757472901994240826602486335287538682549258145496648216847173532919115484368643122612325433649523530924987134985617694024206396936968820725653616928874454818156726345990401234766288852161702904491605823713228972563519900125623274340492446221314415686129669424817840189490174226851013987332363905957924720297329838157813778380439820631882127908368710655224537713398524952231147312215614709394730177011274540519767761727319248860947111741466394419009528434679537828790068430166178915655069318437697699160412975572347855180577915728048941339057391335675689672412717631043448603923660773895453774768081498842010495525129334504266803379086655337229838875792168236123674135754474537124466316559619804822045289994613121292575779831377120383070565033285086012756410878970240410340785372394003622276783348539532385940284828440373103958683865188969564956673900440115799982751735657536562852915714107328498559716842003168651092816095854190731521389810836268275900674193709776479246768885580419246265514918627699632241665479431558147656714529426817194769648102352925890304126982769865226623075749788399021570734994288793051923327838099814694183389335687029305574109493653274873591773902882401452247774261584046846663152094617231199729675637275550680432898673892625203091440282792660027856079483019371304653599320702090096569832612045644297795942729526642599981151032423253708332394714196967464466561485469843275494692068417281464738499752374471128570661662765899891786630111289729848846264106009424837208422741175154781771614693674700364317865881463324410170583329403582942769370067473332492491166387588730767701256006777935551576313612095881309394403018868775711237151975618567814554784676722411094172441725638775944243070200349759842702182255709685407570833526358585364436654316277806278757210435626759614383220918377212992393931551280280760293562222161638180929464208392652986625978124906522951875822917013048164084383216499326691485456981394327502571192375388228879177037648683362114991261551430211363809030660502575572869908453016496577268488484940959339259736217111140497250922420321048693475192044259183148077493069739475811478269733605196847981782716172333809908718122637876767691996347071053550773550866235449189515993579832779413931590856697440565850742319979556054937041269232547492977074183425977444889907787041752022399570632749311345250089223897354923100030420393380074187278461686683851351068070062223254737169654880186490916140848975745541013820577348261614646271648218478804133042269348139662405942215475131186418730879141572072330062050113394216659809922228119537514960832825295667064835610519501653212476606910123596638854667710839482176201023647458402499803388412781814364840224625210219870756185481687117785231265035719530090560273268442379438796317037924860733804098850562078190596866110433655074870337310348843111630161587213056432099514633256466841108443365989192744415097603297428812376784376465240155377251898283540892171956142794991759149421901936032073080159274413760425001373920000944745916552663671842809539901093837067119402596312175429916087601311725176873421491623552471454162318256180807126451209312286526702108309080598667262959011869822944478592839517633551754439686648756069130078665358812079662667907220302281198320168036895587946295907743642534212293778481610032919799225898990276539336810945426006361782782000953894130277547970263796970937707872575543347682033590438188852722049564433766337417390793389135476806333773165258740605967260873407993860152462752695767600879508325574101093169177815979986286219954342769294675757309540774162398273753760969362054839704186534769713534641690900673489201566029635950749353210052247944074642320061417606648717750349744804028232814770598099834470215924387318942365544678427571219356268616758591899869877655610015819258136497792973387387085483792475583365751954649136398530948857433992153540321856020107686126782255375175597728885537656109789020414177265507627717073850174499806599166977411602079135591062310193631478642188551782978604110631281895189837647184108980154004495635675190954151005912051514178330238371063220415199924044233344455583451361156927429366781171845495751298559915212154617230697025530698443352821433385161733897994637222200841869782574814951083747647264548783909518536747258379706418488124672753636533693922214212454666576310969603754003585916797268778674127302479150102019710077118510695441356813438666923169910112952696870112177836919896063916943179522212765176184682833029940457052205348609560747668758449544914600161336948972679307725414087180434036441366420907022029520221230735763973840275005852176610315419337744900282863109041776252416785260879856544575105379043795091488278352056082574066203658653288868757142658740983164046939323453640645751768060410773272247708584766862919011687058461856975582385514611340019098981925271539817411875439168664518614968923924779269559013228154663914089178114905547816997032534303367333832630386522225193660410760490973596872925665760487750793683330742579206915186490472393875433978362495139046273898420840975981676817463361766142450469772973225036657720051057570557749912171210564828227625751341042756194428755860679468573009037500325060508957691290693467235851796755125706075254682205206526267867763400591323529050814716881893410352287309520017639436293981661438344521116868215034421735199784853966310947231039971449287601953715486391208903197339398714635425902944209502541765123322238853454859852152719208379639986575251374476756523483809242809991980005218764267398067231295639800898185328082473978994308326835735746610151127574441817569577072979761073548594848424836517449626949026121963947639787655561071973879448913971315213316003194367949144388280055727060119056917201184891025079035898421059813921881633370579857914742832591066641976283621921035806380219010744273577401326115955315862510429682398530873418929743258295076367911437437643637380991036770592254826823484119373455583953865345608723722032972686572512658659595221270658517817748566222913457826327969680376984710829994764248084955361700807215680811510546633162600754531550284470984788321285725360508281792756359507631705725337491125669210327105258578430288120854021794816739475613696768861840364732361040449935344608830004909231652053654984161147629799123165783839424140802959862080844510185111755945897272414993875623068053034430551729858435851585786919482092319039758531637283475453329110958898267806469049077565716656813776223070030642757933198312592043186096826316647578065918198166623728730408387015184864507771912557576307507398695331995925724919265352791995898346639041671838216191024542977251617675405201680458250141815145245750918539799753319829634486290088400992805816594689235252689073506778761539174355850728655569470101177689519844667143281302178398752333865872135612200615554322633955896543068958046172625651383108775439001340259495197863108993534855742438715393832440419291372610511642851120103420394381342095866714349291114029035877293284065113346631215836483655770194611504276132987832797269008710815680252821077491647552193402601574611631076364500574462860015665120141704992240675809038232119835001502538637089554107955931636556340093298218389134023935475264342413228402629402951141204489917127259515255920379757537910205482284705124605827861002547367004896161370668681506132648788494449951351568557046736091339176725441362863220859318336246983175240133065887810612946264183151825462703324274656922314637865288595323303322759719881885657750368509193709376264926556522915644719116289819699596386613973308953661447125719032249527198619998930571834649906323138607239928973989095841988237761426951810923410715615906986726368598099334995496128368586604809676390746512003687415407971794040879558421447586078669407448247885442303211254421378748602032486668883313587481334797777843930558574132643594407709700954607506770274197412472695677694426622292175350712214802652677268596520344001299074746311371887044299982218293941450968910039973213347355611883569097435605730218681640784733207573929338694384386732215252556793219029143906552357502394535871731657350933817510573534821314539109872983747697454482223308599290557894610034980003942791787719700949447156481254870614667829590852322178220362699461133288448662483001511259402637353078439018643904543127729730946959308826507686147574960182112586997773182019403560012011957532029667731689251740386307648899553002695571426466323333174288837152222018894035720166865728640475973282858475367622581801844869322463590206522543014018644962441892848094829104904754606220460535124861889636847621193748442588489358168159756143998418972220452456398308543437276618206261099069364484435449873278307611948890699893988590460907119588549052738217079064546232151055253921465479018503002680067845271919618485309462836053892900936080700303535146197483834644515952084537787728125801549343109368457853850800627051100927134236163652996380992108709494226905537472542018681461831589000681970262877439224912851764910759085935887247067373442078181534690237688539115902466958738131509772260707756945571268743643510435934674749283249205286878844917230066652886354193935448137275509714730226034233184420787862925652047176314582202694103983938958196015549913934301059888952242844893439627522508963541960015419045409375828077003227962583108663364433555491518953888816739095847326309233619466115604600120209082153908211042319848970788152176438721985371545007163663927008665942718946235717808320107022602870541027890958595064417811233588223163846072603510765693817073890291934291993211920037689339432911051650639557151164933099574875719060141403194075478522686076262706800029788826263960749311939744293551960784081530477290663647039539907365173856149823169386399392464377330535379709578617508641297297196119518618221625969730580298696473762580954292092604206093274946906436609713777211401799898880773276984627689993854519226372570992310658930190085647591135653538556443819263017528297714370969291588461348787434966656191424899891185338147833123371780406418818628600269569255798571454956070941520329295638818077727429764280623991862726088497150138279169732850606405480056079922129408107479838050295174393510134824550089066504652705498787485115841612840790877431316339127190429538669810765233898171745379947276966600615011515580215213659543097380163753215880342024992286958933748267987499026143622209691951597506774239315918886293205002278116671426826899886140547298625917882561269430952007799187098421366032097533972193736714807930027388083452306942836645397093960928184999417503063809448327416310706230635314355390033971730014024523955676769365815741014087911339710455391457945429934567296764779169964071208374066901456866127746860183493353759932840907070727767293738552787727628774094052325102775678131289284118607197299373527100720323173883897315885742656364286222040477332726656653980278279447697693627793907135146235984874100406055256613080591479984210453340340220436914271040874402699437103028149106077569294170588073876906332358039016687635000186159770823891723985041067300878684053126896605467733308002624721562214915359063096680337295769058992550764828143086815480852683596128662243120695206545516237232163161693356391451262314741984360380178314230932699080607678401994617956813807433023979921077270631055837955841771409431084768426259123279121182843941513497892904051098715967614979703806004118337638807998260349808582822809477994712176429442917600930760882498932969613791090035106644664354043765628347407404250638344050435058558806035062309072397119402756484510357741860107084312129715156205769655297583131071184999273535273276456297774428678494046867442102858132250889187157195157936565921067965517386336098835863988476632227654674230105677094114144437002390036275925313745967976301675792862493685071498421532697590080896761296794806373601976218069002151613723192821757448769030392809879759993838606282564720333348130857292335535471023958350150368452299700260160541391712773919859565266960468803593602858103925392250518842303957251141333581215231466952875981153335490859274197730899069118811627294251140300282079536635993393338690941439489748473086292470437699957956087009061177079043773733956414982946300288664051316871981395867496027266683342930201314478676550631801390168968438277437111219571308518266186517851100383232916560059436574378873956398842076861910182964832275515096263143903916599921814953486270576878611836726991989609800417969350612090246834482417187292725922203659184931059863006237650503818540080072962993679071154621114272798441467779870345445467568045017239543593158283368738858705946680651836177789720465858558105496856399314284235978010348570793115669889620447555803088997744141955179131627804712974490572102980979271764468434783638124083047196626598031200844240703147158854959924247731569000581890543906421067481115313366677127523873619871256745692178372371977771767692938348085305698785109776698609359401474338705461322718477023491999554930426788669383978304644844069106693483339240945285314189940928752657719610142158812410138973145389200201429031882605118786395934217338627716073496856730028440571446718519723782665492163533009421785052412612080009337733553942111648061899528909818771330544093666575293784430667233489536863940971006483077310615829488638532173335793198563714900422883267304320423158535566287353591775217288825495090458012154554211763508367331665666910969875653867434355698281582099627141237920242245078278901840516163000031512735820161134016370213612766124325392099344302214585743222009012463366921702760853150780024813097975530812511496370165426984076998840173061622292293568534287833126191722726232436491326209975553633150881517459726971656642605274283198868925059320783991487515488902341000636914132778317209543536179261301873095964217806830157287814363192976832062083137390712146542322085594169665048470193883921118183421075926778229047310164035922875533215189656001053375079985636115085976381468367407018247167276703737402064514676680767710809469815783952326528101948679646124924593703820799379795372483275834186705780728951538846409771961745842421384121118166996070664374282267610063424188686143093463656247104493797315524047117899393290216346232624158398491928206730402940849645598833528433567890535159827209313482615253912637019248663108423153325395401685174507397989790648235713966309968059537052194180438546870407359600208020889767434233533422447629712202125624285145398792883249148609657851835982791855119674220387986849682868056756037769122199112828261887369769214171288039311292108653624697922133485389700795812850753488189470020367076657793950854250452013202007052240181873017606096779381256087076979542073164430342876270317582513714823439199663772627600016760356732307426648761135947162311754438649968859747117768635502629342617133725759668205780941963973663613952404664540237437346670617926799072472759736262955226074838545765809875390396393670218384305524621267736793416229111420467843475798126582931282205110520055303133409130470602628980149360158082340704463536458972564600631249374131932940237503724551644787196402881933290753362443520733067136632113176836073761164645380851467879766656657658631785331015150201003417420002453840731202653548337531255798039304023351609276403703988612614867815114158870684560217554424239897935272005988551846614992199705250771672124336171372129113802885469046443278173196543090679474376139758342326100370622676654993032256242055000146649257333498545129815371119474612713481569323955308383912735756831604090747508730725088791245653240060813953965965570374333507083778877619166442752564908657511627580276036264945180483322140824412088657717913561687586611347645407310319530071277335580256741581919365612724540724451119500915381547093019147420943856300860368200562907462864927238315345701933865519080082568645356543106724182443655214607334663532305577574907023472616071645263374509507843329605130831827313964797400017990875674620427987935386525203024208157488400622107850435101972654610945979528272086462941893217986707741840950895118146218170554096238469457681592683244401679500373771801922356517306938486157450772421237355541828623821458206095195615072190934526511209936592456384733655247716771718385586221066234197098346042604611267934713896254218524477843620336625134843800080817536175397442636660832816665245637095534222848360367909172126605395226431937676724683083758979189047578138201794357172890198659792518797457887802263588956139115292693958090952111167119891941993602516640383531172657927914387785635001895652951632899116704912428842685456759545882160606235834861004020701390196245138263602736919736467244073465628523905370173841903264087159181830812874309848784823022831818426470256701741828174953929307218296356745300626168273243821666895968825697058926832653932172546374138387603224616217366402401186893203738689830976560481141828777482360272676864189859068383198846664868630058423928995404629473398534333178354985730942646654350677382502047331774019071159947063974493488710855683284252082961507328792850430804162036580043720897953057493234439310909962756186915140282835199992166382907083051469269194229174831096991969048357992483109980632772880541274130661808367850905062199770139329757015948672648676835494340508994828968844354578006534561605521002590419145964395113346390763974144357914291175907567323161397741195702016142430495388078950117893675555510451233411216906587816733594003178412106715215654739387779663608735422255157419738323440542037135822253839545915970249255152590319180993275157638895310087836586817049739770820581033735125271445155008792243066700004703016092479662164847263926158047978983608265674161507721052411235656377438071449569608103992369866371610255578031486659993505924817173926180312675282425044578829601025098284213536316467090548467316854015426265809276253076099353801960162040041242784728878188460222491305413800496543644675425064505118418778483329037253579404583883026386325543571504168494545436168843876566538436672681661335874705468780774661565051787546899862242092911095420437874605514108680180829102390532292282852173364269214874915725802840683997973936271977350744059805270321445078479218027373760698947077722288340888713218466060568121215362224538762175495775531823666740209418816063078217559392498775982483161794788894153785390377571535580030179882211794294192926571220074977322903460242721544957011240400942325488260288084177269900678741625833254797161304258365598824111512102966961604103652974462640876755348891532517389425613622096063137065310444878966637246063320253043917907043604758614714000903213275542597586515719132782688024481764022885219735850007826625691351767697172979795869763617695257839943659911535111570154535103075421863989561132239823649943733764174164546141457947446995056389325815662117763134784089690243739904627542212167968656118413578149196076735747146347030501408836341740662830406930174975109958368116989475676645485502860148649843739595750657764465633846668816700916982272623750876774532285773320679594076441487359392146377353453415330630736714832488628023191762649724535508104129869601704910849424911060231688840340614542422355797903332302694297430203690808375397145620833535768337471893970646738829838390906770024859453310985356380956560609554352477282201292127867096990480491663664455878627146616193782103136180152663672779285429626962212351198692380427057261190467376722719708047143104569223557460030975439188197574402178198803222800009360634842764252957535038222991441227569034260180562071038954363645329405083506864646808339125168481134214416944559108768614208880497210424301214555173282376621358759211243299617660709711031128436932365684516620373835550005070421102756180688323925037593197138381839628865537767012111483525556216454679492575014287038354357336129930227158837377012409667593864098829699675226330103942970195690341488403056389045410757848462874790100715085262175292489463652067620022347541280101850208122304090487625446512157121574180202877496139808878661773346879411608620479893808333082055913904635969233127083495338953302253525883325630853580951321797382429218247978932297211418323261352231904457603519515321082572940282669562037048580904519943171871914792892675068394973283010043738673376252870475006216642025113422178836731287643243231479532924993663650743903635595508398374883532173708359986807976115031063156134212354666802493327420832772851952755095332026697151099389363047891293446702021708828253221976253078416621172111180141855171462490641590965364671381845383044455675665225196629695458004113015413254598515204963327312992176396056128210117477309518124538149509482045235794357758736662475654944130924003352403464200354840466283003289628395962523287287200380663067504025407945664467870703944595980114855175008080012195865374509426754942071661877352823249832894003953539439886965654857957789739319417650232628726664059814407036043178788908009628323035573941940917792582785575546485068709410117316373687772466642616281764490728623695954818369075129116162378199114969360366364042307584609533160953525581710121466689888066479514343368949949796736471759944235813385973346045145433916454024587814856424252237303396569374978882268773549032258121136459387071521008950403001916930605950671433689908641129596080536817290403740303891749051355359644349975315004160694582863203948475507831546131733552003308840490520807251736958837909395429665894200761762613664560380197384268135158568885883306612977645690122057568313424216448196171948211875724815656348017009485996577502746896348715876084691003972306435529532081307399698089372956115112877697928294589355273520390357900328376922438459046024575834480664965113331700047385039089507073034300287342455692637861880196964988078732331304249367235614384628422861311913089222038080480675634892159000344486946843509706832518025339314551139431663989570994601029514992378518817989945086478834613974013897564665969602841995776463985402775737362598511831557727789180821517495102372891827169161084485061613986536548930578196882145127682659922926245845451155155325835310756065823125969552388362938236686641593264514332067395392017177462001454448777260562063712808802284962015056017363516960900148083773634435813530495125847965361454271934773183340416499365190159036194568441133159397753087013057508809601464845048115686529013042157794081692723018973970448219380778093498338327016491260203128987915918338336676236955977736233625523760389921500405251292148350756062746247771369839331585413819843666371604453997284706373926329071183693414867748782106863783197232792616608679346908540006354170292895902616732780934512493751444584136318793430765651419040472751638656813378150433957284444611464472618965444737067802183591230171322087477294958703252873515756830960489705289330654777868451136797050786718773203762279975937726789759892180036960008185920240506909273749170983978750256515431337646449384859059338271023542301009555587570823263057735051638766533010885833392079336433658532277908374820581847029713705620913274331825359635507929830842075867336512481183566840596824444773051928600179865384574448882268323017266467705265655391130544210776933018580033986085345414608858511473353842260040600409348477125468281781515658063316069768315042176835159005233036403718705732318175930526717523125260610036329125775632150562725086202103093920263692495386801320417259567814766539823504634222619736147883477718204604781314362477034983284702294799500354883703110916050386425337926844937031535910932208894505572618148220014068221395643047370764571528015877559063956735077524123305857713195111247894552519672301007966376474848723945661747361241474395474710122429016913267846858497534982451193955274314510582306539675118905097595942901768571144808749235782616922229415057927470340148266922667682445306160175683193716796335786783093959850101065862980821961349697200027262961937276278342435605463455397524995019170456252661792450204970203304203884119052522690667876610133178022368652055429268991422928382307672638285240519366049395052143122071042758178074941489879708207955218919464207093861096440786916199443349367925374345083121631660718525021828807668929453721256812568838270709366387875870560637487479221214007601224148328199646752407267132979945384661721490573786539250224726847907035490415491546486809960130840098869484357248689861193256340769777527333588001399853261711642065246867139573031186241981678415210928053017249347432486833635233501078272750615718456216285152478393149754900470689983102738263811552974253772953166558930801234569589270569750288427334825491581665425621593182052486248593413215955219754334267121116393426970096269178727171545364337195878218927523181876249862331974116604096912286776047007155643813492608563778479620405964551345579777411101618255648318819510629271709024266846757407837639110308717113140872814729464974260886102747936636024943612535679516910035232353324493166536472920294425536158683906760075984872551652291220770644602908121869618531393620499496269345425582152981613857602802811924899383075928427546162632080745879151516557056402977603063878182792281689622640927723543005906704307033665280170830976311015938255977728761805999921289267310784889189022250680058629004775588923443496952547467438489745019451465706965055361375418258614186018640832395569282332409771915263076720184254052745550317195725968887952247321053579975433951979752735724743375753872261401401613837540183384474592245367603420268200632304376228551053197225871932612212048150507923583613141952924983790218452535132017104041762549410779610707103408436838183822799661536592758591485566333190494811776735081762181559886116152592858300162473149728328505699033810222225294142769323691451262825135083684176935598553260996356247397375597270667588892719871633775061166407027908354792847212271471863122489475518672927418289883970791253933534998666551383502549807171562926536294108739581698779534239070630052241772023333898668450393581313010933105660099962487971317786472882222082906217686832465514640340060298854751540271560974537179842669192943408464715466994000019843800533954788418522481955460100380795484025523579697253159802723949424421257680552932913990184312039136727331749394951263068904737896701797769181002920309652492377117971923709147739411812270459211380692557489379144229830912402121028129478351866428720518775995370840786928576379273532858244890242724547185496083098777510801028827351692535842739853387767725826373752549921420032847806891055867629447966152896567979278573001961423864285433045089445276440096569725137760931231528412273562139391322184652956656466930222295175729489115779071836057479713783724059088999611771932016250215692326781369252241560406436650337449066422946655687335089281494164918524922654002807486766037809981858340090037938537608745669525957088889870094165554441041908878756383310954970049550440414918482331148624581910886638019563256431127843451919528876340790938415906338107826324439278525606024990805708256357733348332456382879115461131083964522554283213233802388323191202921239178839682716233874648517377805841374474604809524606550238799161037696057085992293703055186779395116590406364285456235990547465556891404060297518703916630669092499141338454863336189502881204037539238244939341679742395395441950970788102985514328188255557246665393124391080431941629355901897415325131004370788277113293480402264768963795492112859055835819111522462527701256045433822066618860190113988359521098402873051894807118753348786186003559374533919604187475107400974912459525616991365475153988562053779521603145884771587429353916203281236420953400857035751377451059366039859768878523119865350018875371764593948059853060236029240484805693535840482667209201955439985348539203134957239786074615821447439964335132463165622337160552465170155000122294533264690974590490123291583234770057525008444149425552421581182211523128901348538765280769419997012793357376139604185367721164095707580054705555878676262487772260516638318687241767433276041790784110412645552133724383457814943614949481748237697203793372964637299191542831928390175143904179436879632331953815827653823686912464887618416413919739086344858994905976904897591383067004212334455722259012800045720617197606031867678971539046503508696326041419685393674388762600501998721443613834997645257134246883191789161487809831404380987697114065003665883759063430949065201143960793807628478329552206399934101541079765438193147187858046038365111054634249012374753013393394723697700440338824841263837959629987744936828721290691544915691225873745997257583653558737930148044853832786239997347058676445768833720714650722757947779398183129420766427251522623630761458741216723810310360107750144157980803709319903967201121546542906249349362717966018788135921425667614627722648929044973928127969244840303470379000119797846710783394861104014032497977663596278654234388766224763126757033799879090709998080393380480131462264308116731926063221443132059255245876219362450186944473530600181318575202833974401500321299937878159782832384883319141475507103148932525678042009493414069087485429650644861859979360703516382610258858565332537168816125858625522090781662195849122467181074365190698674426849636399578662100408635618375431217001750341992267749638846545813790418676414159245874938451470154326681057605240887927028896748974735237859234567692650497423595836414003694834381332130689592656569066308686576570073273979028975488861337720602867649799082456572235379755798736980360304276048036062446693773463791027190215554202548784668874870670247899740497283872085816298713770001207053899657893221394458118635364788035197302533444205393521956314949095914847318945747762166324618956985145711541613248293211473495800593274067662460714215532591555244781392638179157865116783471597467017892362527237589447472825049478540616083590659225048313790318494338687265729903890803486638226113494296123593891934192874816015532691184212295138246204797785329916093077605715004103121295580415162312035713925501883229801196503450717955479698328623158995585128271393121140775724522566015012831529536823302642612453608971894331785799898652410836763629878369193733155687335247674155526685125231502873448929608753907757119860841622583391042628525186354707554599763713613701678565934584071728449203380054111642779263991876572642688574488089806499342418394657172466388509812113666325778852918148765639686694216892810918972785711383351053715668156668302686961296849572791667077669572252759345174881130928831444996581174894687078027754205754589867617114102987653306491108345589300443457887548797375568686078851910086902156028146101800741292538428074676795342047817397959014596452545352582257271892228964376517171973583317899804102547020747746403325730476303013334668394007765693700529155834863878012804355190104424145292223766811410856922784761022862492983684119463476412244924012839152523595908779943140873450469817174059275779938315820501334555349150484258164172291225414171516933515566893645689841506108948690229660322023866110085766643539564549216936313839125010674901235619437124109032886387186971977507776516336882824005044366203163139816388310302610376044535722777121031826064319100996278178160324109173765336310261479875330230817837065664909671072075482784811886088407919400879114133267024396716298597716410006360653654808191755357729473121119707885131135668174043724891444387964156601229601574303497743891777528096409796952233973686291007247749841240333015676043992651810307933790283791004146352218054334057460896572620816701629793038484301385902310793795758330924462427611680593210251227147125990358977587809649245966928003501735954546902456941200029305362390739496833160656840984965942551204371063532935497948278605357615182390951857717419115147439948335398668759816707163702707647498822172835701435573684489167335951795355405003907705722786795892652066460785073790255822106856668254740745565483703463194712643764280846021135865350813703672545485710923458353812691751587260055399168116761739303863468087722995070034522945458664149450558118855792602238151208366518484360037200272869595548399174585254696583877462600531919372458362456318782564450482533376895740641844697271305473024120616579509650227549580794637593947194471802455721753134520459804365700072795779425183000591086087574603219019831704998900866125245737552380680744033661716889814399169548164410764670323202798022067145428698544214232335961767120160184004590126844053509952131213453787944857727605079687809542168458316809277833461066905453536819850763667854367117609936733969784607694363271724888563566891330743781191216736999189332906533005714943246164828933152497448585549704520766785698016424390893792431327668204165322538010603393180234790188876555262016995035705825246836346545686055484336299213147712326899367222423977676996060621583230478751846683862010461958858309718856136073004049427473839102900642849782755855819698208097245443292969045125797567248647594487233535392451289935513327557508196027843329456155493629844373612740194175987842539145170187405230376413759870560118673196925167497867416344608974184208331689100758842512125332462310299518387565073643810846295762643466216627319222041527846146337153127454645277371972138699019657556009267343837308367843379083604972346826543160495772418618831111530963759096839381202792596376626315049332589171627187219420064535371832756062317283175969255582426541207050100580027230207001177858965739839457959445870829380615312225071405263217624818689734349828851568231190054107158842927468834497999197231438040628953323369086561566362481709485340716581664354699673835969082032114398124234942129002879421653577122766351571667236537709102615095917801879351126429092586704924648537681197661988550633263452951383712375388508707683619122060582342483788060423770899622531572028261002632795438698039708237815005605318186393016624696944866410660846293527898537452503617541406783144228855581195552404422676768795670762945354488346088772653751853794489532621504528283753343622965370429462788052559951686764882094026714810984065214007739891351532475386564818907927952044381589565994699201980186503741189641914772998228520453050589513529120668328937045782417858347004573996314277688171190012088863017288691302068194825761193804089304000508751379325951251037956204338166746435716718849163400264115649878281928158178144573633114263530608883392614126253205403357649741269943008532616622573028871564661198536053438430694582843862734376539550910485211310224635642712189231321963306395783449620177558597942799242430783196335753259222677634734187941763660709547646840247491932214724098992453440001101075744182661382545959031839805320994725127250382079288835917089472059450128272686370793551306866902021950297265285798011405280676161913642870241378956278466288126326215045626437512089016335919030354948952590380545009972884673916936923415168953396179255593631425480911211313929840382970443414122967759822837144671225987599992314659099890817655515866071803667994805929911015589243833585566672008716554660814581724080215815150011091336149887067175682224697965190243093751495703993109064595873873699737665478366497595370956340807977161949383854495425317101837820519394181858579437875529637635336353407393596777409328515984354949153533397155820732095305556622771567482134986446808609798334806835983633970622166864881729613580456933953699612710114853014173764198503158136535102023510988806664713556585650567602949422106406731959983784013279488941420584544273724646546164501061987937953474223657306832551238563676083243240076426108197772737972921981482660628104525636649130856438038368305635764764545216304093066276717369655628961271371111149130553171833390586217121448271564877540468323541799595587162330854549360054428300277975196295325612840567563073555888027040035630227705580965832472084222278200182027816075410821734465010497968179972132666081276910409567456014546143277940742149955387456167112088041762957828343523779362855241930498117164613783362059959107325464761981215712185821743558828284572588101458589483873365234515448789369883484205453690773317557685596397022925840244829790449321685322953440530678224585363986618739639185158320954778186418893518853950025513030797826711119405157950132960065701359252052229958259761917090562321661957118043382041769807430171705850680287321170970918790186272480162286210066628440401712090250334330741410029448073799653787568132102866547465431365820934897309158462321472508443798632180021704474995520820694790068676575987791406965976704113387043961301259201960865068246701991489043647614416108235921234188558007563090596119261886943895553484575930485120968749983524111919220251934494195551058800489246215061265657546711129290920292861128198801687279285311867358240109647911121228201384642765647922132121692771168078295675632245555750734787561330858065513430817731960364308614826683348804603220169130293164550044406378167232866161414737761151499423387493592350355785200840066533210515792166431415767647583154275653382482338189871117269264776598549267865332511119717541063144222948106365462262055007421179691136291240192194525963957846141148639217287074989275574713571925476372239280729026913694990911206493931354194426788163015006652797037019556067126462514153488420761905706603762437848463676463879788051219202497265922393606668817772256567001343669800841066143428043777003088748550523210782296621477146612503476514948421189370369765735746296125270086692664608886989810314561135263837479546418997741472976468864913907320085538855301736591313191899671131912453483431440214025475432105273891356778641613285431188470112809648346560076330631813378796473405140960115383948662491940583778451741284663042261186329848100976566104615460161980982929695013820673565496226858538971888199496954811828238671723670891460990615038156270871675481583603882350123165924940283675493047850443774979453716637256899585169642319739197823408888204446380668899499078891374144810804326048821683036631332385134895244379489954720101818193419005815098163083389266360082035403867574797487161519384441390143960407295358488603196570324696409763538454969134897552448466302616297927042507655137832923137082058308148402275391762228306506844144652456222869112794684601397323336112304453419648574554769944744236421249259573587749843606270793080728952608081503506498392301256311467404672718587225990596581216031439967012543369375329676346330486570781872791128511581136409682664616438391212641086557597163599725028262821413423639780364000629230406959550491281991025636813218440759716365109977347029410148361645659255233896392773250921900878303837925348877222931730858985091196890790644265673346688958145203467346128761153919499477867950469540515943672961529014216843683012175476127033582225389187300454017427375831782521277196111971891331281191399235068819985534962840795647588254672382524906748065242646088212549142220281934554148912217939706151033109350452109729686861319109756635913762242661961724342869782103388661629082492850295642850829316429605651443488037558992095373984528517382739297853559749325634374459959285608936790634183448401514845955456233822521024061324889095876819968584521537904645910541015057881398625447033563957563117875169994516885124859547145723712864421198776209948915006060909615775538347157204476766925534975222316844355817052327431750436073951329509806175246075701136544461526850617881181801524757818615351884249978802948105970784544354793772871889702005192200728386049395370616944790450363801323368405565371548058958512494572231630202054319665486448371238077888584848025139068422451885208654050707051855639323965008592681940148128290427724069108629114806645245031717583660042828799150516344712499443858735145521959565377019503224075728983138904247683275331695803457418259470070402418201519531945304806024560077763378174386747845391969765960572237466602937488993805309462822791119944907266083562898602386825073526206682466845503657675519106672739017568927312925779849773515231782800517447884328908012740103157312231711072726606344482581513825232405865786669685440572063742126852210828890337912075809045383662473473357411826982048299397628467234189333589656379916513251127815408084198985208019287497188793947514888886902541926521476228252786013695154967453562773775154547078075850433546379649151030192371683560320940306909527194929492137658739283277367505323262494447293915967490678163173032647913314519081479633848370763953481600446863151830274189641776673028968198693091243109054849963234068792017285528002329825708471437904148316304739583512306722712128691603687034016281685815368748637443376305769966467158126294497958241977182841244801740494825244500208606751292373721820979893413566129280042353855131959570891672897206397536308386720164422626163381683077798001582022870889601226593056592044741176592417305680160928182407874764932681126387614384964487404300001370148340126038692238936653011709225063774290771648792418021473699034090851214227990077629950933412009232941971606996134920127907661041474620613303440161172595706257852515925540231479852346147522951656577957830774564441412796813646462650500627093046626704144156154574595196085224636737195567204207175693035779658925408086045173413647225673229332397053156464236158460375318773403841575265316135769999055730968063242275019947935560281160096175975756374169750144683053789458475988408631581742405116603710329880109699946164604605478923393260120310763072629054077490081265938683424751947084605687095846876379917881412760060874148362532453274739741411217504293221700472648709657452245263749102333031784867519818736772346807630330677647576544268481900774732564071711290900353489809987259988340083528786276420568045845294237183406083610511901242414566246712028555865344161779519284021299120488594295303982723758642019446204265855185633352850464681888590191261709558626043130344373282547539453820269593819680686582124388034722437033763794584676892961170392165667813009778907778856052496678160737892546319379825402335516021635698628530625607015893547035314166211622778560485244981341290643081536508499719581077369815634307817992165616205027751568239514327283908727416639150962880458135618228037984027918057898219840839926881366888108223778195384430951371363813755294291295608073102066278742502572421367641025912151472766300118892918440841122287721841576491963827074188742827924269682884484046688193194818444235865390585833889270657605205169954473612021798932642497290728237603322554594033255564704625426318859691884416971896783562071738587977178561118255662701674667615330751578181561658133318194435647637356179070879525275286130246746274931132440225284182819716918095324552421258057614239218792716634984815572191816120218825923605005338682996013684192701386914428235808170027671244765825787021231497016330204629434974401944043010840825819609213671264251140461269601939414617467715118018439111275748858208361467183509648478696632096004403652558852109348333384765344442934505708564021195769054901685919119890746855654131128999737167408023329541362547212510469918987819172591810719709447532255859039168428600962111347661090881785893926159115599921526455194961514257241844590829720556997620927002185756998861624231458487303525185209599603602032699849431927811389195210750528237744624643197347805908819017482316829233445214660096616009709151296620866976554725809183963925133620503743716311498454558078138097224874648135117204745243830894133374210653669190695220768415844573963049663714178609720689372900295081477086792874747026436424345234293226202656414105975746680584630018645751665807497920579919575308010315686188161342674549729374300085560231653128723046493748996763679720517001628411740346107726597963555550019407003267543953313402578396724184885104913030157969797020397974100363491293217183429431301415735711945083274146805356101472474777142930096474977635674642067047962318772838968845694965488498536174004150537960510879003490927061247352096818636251061934094755455743760129294687480948970003234041781301110114637252750326659554781009225533901346755769656863984821618712165504018462441994603950321160399135051290122854966362675658671649481109790323811088977730120063248247723154771821438366888871863423320142832338824935674267966137193057682324415089672276000271087223795809303439341714735678253340286522167453360934409604971640609519211886301098083641997164708781166007338960132464915012706044457305400993379778729268166699249350066360997315053402470201657256815614866674868661703192324746859904632698210333876834524896059807294030842641849149904806334504653799392329795449801014839747713191012724431240388031078395894362061855726130810911381063933505166529507599033876191524836460500113011406096223258493430633738441757468014459910745417773903001565417944846268247188616552217061861535218405490496016585516454592863462423513639117633147989673848664002561306513034390059223407032335255392329384431857155110097136926428687319965044909228114616715212663923871683986642689537629256637732462366330081693069655396399338768012353348702378757637260622419064326104027072028377131500114919441146032182157745304452416338065216076487152591515008532927766391791295864329692170162781384136466905654922638089187420627236241486790616486918122648202720169329434403410372304853398432055053361342566571120534048455342964267800364543563500128152397222091864019919821311254663225681478526953689137828496849620015101690170527286640144596396982472106940271157991747146335122037566843419730168953587574135262411272914908946958630514456826987122442989667572381226397456886776978428171164348307147172963512395580726964590281320070300170083851467099821372944542554774095579010680113112536492268715316492177662477362967136118134873670022270638521938429511712833890003015558214204262894037784181190402643670847721048554401996432692939897151416884864652831346530324398581590791894357649074235158064696727125476239873404102519286477113884675029869841855734009561304166654918177815479691140819020468723074531229747752137321886777928773148283772328364079754858280434703319448571776694186027586371546327225194543905569960234110423784545634998072064828820206312294523417066248396679409779448039772193175442152571902662343603644671650751157424116496074043746871390284272189511841805096248804565151255751891391544884133100378129842761325775600314695318787898719322756895889330400773429609311012895158311816650037988631408560153031881321021488178989671133139161979369221322283532328320461397927790172554339577872547721386670969381641914803691227223879419544812842226377190179097255051428131099588879317517635924646117219489968007637807604586707109618325287072192972864582331788902195514969804532313245426799855448487506659782872476725260038897113832539587512660823456549266250017654691178889963588296303554712436760436166807881282576593492157104859121762569341885414422394975728302307602963575924221638151923276305529971192160051073880021998652768242158284646542144368120900667088536728111351692528989589717460271859789783439504556901131388511340429271701228204301337272462543453467785552558947576520935984737043156424737093831354860749034956169345922334697404953788031265624535982345075255676734440628315704378649993511081131753243739398865922739888834392101544992125592331306744073280322107221123781281134491576609819312028729248055385771558689388110587698308549865139053781951644297863816982370140104002867198034529487562073988178398561098217958776128076829749069849549496946485986106765725974323674734262538917342879578951328436755993668225613286334588132337619892729880040976486257137203318011355101423118456125018325904872965782173463507543079617616755420680866067886847734058726039902819126523765185690270443259060870868741716781831942726006377428261936642543162001017271128547299082520939309477868849848215402745668385837044440065861880391624670381342302033733394788871389796878191342945243980309762642223433196252145617995342205218509094955284885611368464931323449711693567239776128545316748336253166805656724480020467852911629256520799683324850977657770662031791005306771309320953935383507987612399764899738530192773371338518055459254334372880861444501288961725963508125254734814463074393958937116034301468393338609751985596178330206311481060324664945322616868993173644861768898060940810943065570623758073860273552486519536594408918836764283210895477522368754242939024382891127197368502935503594524985797327633339741020684975657034061803238220178907117575202748976135878656367392201769184081250600960741492610912520220826602549063768854510790345187752833715750258124205374886728825176589232223163416732566760273468853289710207056536696518256438695340440380078289310713997696862673740995883875451537108459059402429013286405475122292210013703457012642044224410234602754340935684447844882145835487116766062851704116563746316170418469649142884359749017207510438583487077596837111592184852313396647411845502168850721312949474147285806132391533641212627495154409962944372297636807622702051801403877212453751441010437820637897922805196146774516254701255197497242012549903081306829684829949211374891896935720588242555340334051422958966979872637629179085232019330189142573243338263943119717156529029008083278203584894899038586930971272998366126649544572866475655854715558251478868468745389119124553643841332736496996743929490584753671015540318507783132816165633227452012420566762945440600833939664312495617209908433193357990826632791804976454799962982883563254420885354517136777204577862600224720159640372643285804526240480548952857691222484036476511000812208576564141015059891099569693864798533839067427390446876124483983305157316101138425217525460668719899363269816092802644125692667880125718410912864664483364134351655974868867197459658853093226139984354493495922431483434515297535354887739491197509557741655448180439682720260347861244121726008508947026172887036885189088552105709680247838904882174502413872589775370649597120859467533156494470266712040021328826806230902539385001979259411216582511378966397880161506960955301641948113717197571371061787351436546212125485296295578300844111841150696548540797646554734408540105033587398728983443066420326237704177855207309302270421830216282832098141130143309684358677689082982536430312070872662875962124249140911278039901588255465099780673754768774492295253244460933093101690203648118221597089559253244327518029015510842572733862157464556931196947827967396238517125567385451447174042697754888334698853917728504672229548726707222161267268964249109710322040786697209909013430196494543563986410786843327132820697037434459401504502842481025111082086638635754696797173850419815555107702021204329701008727861835986322168776335378003816105352175233756782759253143337918461760184197869288482277158915733979868365086535279948791457044923799066252023181332830172018246089103369464039084415736280393595492558873436383078216778290921635138923257734433637785660537040485567777212623793835631928244614527217409249173923344087459504875636211891106012168697670951596488596097034113395265775156155927467137851778507390762485234549276739447095359650818423485997091831885523751254206797091303484222507058127305530837488848025003672218738988101609510656884171212353581068774021739425100714399850655175599654195829593815640300361121237446809716413826849467400426658210773192658824876500873843378818382274169956167062251764674862801063311416559001539982491400479216871963856028737799924376101645310998551327545598585127199057935367003672370104627498933356648744027335886022086076892182996345054535873296780235953864132581968852643156606779213341711184176132439207813780213802904292399816611492797600964157768024140248136179689509590044608993989303751254124428547334036400993308325491189908518356703591532462120827849377654585742638207018605763147995035075278259085623102662491635943636202350441096495539554466752650208268926690084618452235082996313950491834582029336875946433220403926572717968708419629179740574660255079329229467087304985140880166483706414759114912743225180128167636725597190776628875244754317177316038125825559610386869586016661307830448689103796248698084096509377146517998282742466179515698394814382739653643010190078901734722196707971777554487922165272823090281426311519898354392218125347088947659177740218830775040371016018344037367975197307141550149404315098986726396230400101310314889195770773479426691694175155731861580031410322403687190763095800646662466432406297808180942149239164706952319766211118151582897959703244907476072878958681451956067562250365832810547222299883878107546016036782911362926817333802647955114189366034628781789337478501655575802879755986207004238314794482523292892870645659616817252323784906874533209180302805687819676249955564303680108782740525333665720698167762276488885409757634309995967762646290954715257462833961870496353771929123825739399531254955904777699068945593389636000261773382603433969346376557544292609409663604976151571485155308272059077205852979430298299065792775532524518251912943548217927482660378170411215480060823226999098748693493055476690382684009854828177596028236329024421360591582903173902503504139967253677536361531024304926367185286580625447808442055304669728499698538134525596991429720091539060426111277605658940546976376310018573937567565936179677493051158980131019775565153768551493138260402538572675711218075991613557056895487635299291526712230395727466555551481298223263075080414112387433668072748959262293179037637273520837571556245223732298933369592475685220778163176056218935375576242770598517835232283831106168899059794516647043334421707859156606772047976613246377072078492447259823959044361509545986581584352664693717755904492814812346503208678430208678931896749591207325090364232753256456427540773336513782415886837076808549437079842313266483935573248503866424163024512230719942665087788212533697221033018047078177381393250104952726527970376905827038154161357167062819083828919213447849202548366298304981710569337948161767816915950778374332540588111883622529812057626312577317574712502520399538551567761585865392667838511253448497984596306079518871419820388010228372661014146680752523393017436349183033967317828976993312471474977940540446313635276237222069011424639498601350747946528853772436103525097647239312947960886823047438891574936788945780400772778511249019224894485798200983836322951388399724896800691511794343010945343883693834363413408068371206153169619237918549428921648903243972605361572050983032845514048810105199994731229485970443779448659486355875181414969201499744519551800162843873087261648249783221783472317915200056594424870828272757637276825634592646233968913487299160773730578512720505115726922476897462568376497449276946544020924063226259699376456982768931006500095673607857310677128696023827935613550865973587586125349364865733832712184834142217375418720789456363585964459852698811302890540318635250717966347050665801307216940453357436323648711763946416215324674878513239444562047817878218970142841754886989632661645025617828675328088608868580634969987786716996155040099468170828592719513278373926091838195984288082575083990128805219029269361742598875274606556799022853480496444273415633038033596839382396283816232170420754774803479301078043643926094135322691744914878840920097914107953024832058303526868591634838409832121393227449659346597703160582640553368221653096521052420078514344743512561062886899475750832437762825239737772264972495762472251090063290676472594457480988614053751979716770810308908107854004385738997425878490813791534469325092517988196039544324024997893041205486929920216423275066106087176417851905866997392883458627283049890860835497319197417648209902271537391474079066666741650300929079747682118195917607392975423889865890795459808556350556004826045133045614108234051206354709549932675647093286766663260266354937186176813955697082780991566257459559673708224835949988358421161408837628052947275521671347844076571180786164084480284934915787277125936540381601240901901747556383925573146002977589750443931765133054556981388195115968619118103395195044339018601665410748425993307981308133331675731423294999075120175362266236193135275870340640149882260606977520302920176879316510050540944330183014487411483956949880668346804956807467135553046065246421655383055808576465028279843229658236178439411736569386051315355022323203787643062619475668492616828603305665032414967530662153145352875993939695084329016623113390523480542230970217424149624517949676775373667498103003699183007790917638277154814436150392307391885320926440308187235687893957455119043670071856976093741197965064316068270847441875314901659539832997839155381205033636912136282099131945388342686676347778662810136235697351495452825469313938766121873593698722592599148710160802566774939408685341037552239613739329195025702624018360107726864912522045029208789249966099467051888821810613086972668360656844243971459194537361957644796182153772915718699765750203982145584145102808232847469339529824553445531781834298435679046240047433635784074627331242346012405437864722514015280352754500458887125143022797918934306123192253216974931741513208395331652926499852868006106356928359343299941316152029236415104889810184594658599894530624390510592533419604270632739139762535939323879583973776606863542079619650185373350834683543208460730969212853485833304391765646399463155771391740378697163461563237606876045005386960157000740327165176964317712459265615042906820792154961733552157341166040678126901678981778873122701970458254195072099357527540531655653374113503784711977218310171452921591312971091157588763761637129682483868228682003702171162220877122778079113729571901435777704944907576780744175718447537021063792580213843732155114762463403217722685908552992796005560139453762793794974386569166059731888603235562095210167530596260656578484110063779771545337063615181071029105142302399398690674574137014633231308936206995841416468411777611533529912272212859293132029553425474040339921129034690576391126116899088895504376352158063145833374115799931166193918107762226983432868511846951063480312235852474887775640779583723475607793023573882190628592458012925378649145294564836855125559564397018430649155736755252173922822356815369736628904921697188327723815808671599299218227450328315562626461550646064617580059195192437263960374910087157375152426966161532430613806662387113554946545050746680162223646059446255295643719716486524801225084199724561533373935656383347776441922315936551923572322413103049503485761650884607018998975028638312922878120213305079965917967564300229465724758163792711643911074458686337024332344977882469863048194254084925568285431868509093491871375258422343189205024912405641964770825610489645355184752272712774081135233040851712075376670321315494550327859967877669085786107183962949508873645838212332927417408686114578629183675644495673572006615982337693875104781502455730520947470142143148101406429294258202507749367306590377568010287161582168190487918032678694375043657939482380764592050924177572640085483277559996264632394263389590387705269880128310654650564565482425909304064651517407241187726278416173657543086958917899203887955348401848932663995638671605233768213219451550860704950623459025719071112129393563711861688526100911915068614614413128431968430159171627559354827876120159796262487494158080647781461612261960999436236498032562081782023581303882741872048286869872521770404146181240128656064384811048065280089238673192054324655790205906224137488804729200193764238831285542966398934598781017490911311771346832779999320309374139084325855226383064459339830755041802581873711982368300033293870004149454505032014057248469435604689245578745073017827185062796878567518252496623519732987962843197308878281302162407616793964241513918628979847956502358087131144203393290772952176799560745900823011863737354291148374577075304030497849998084245007975635294245847129287975564406634568406371905690166570599131133514644095111701364511775509819192608358403739182060413826685437785050284434631939509523371529990936017829232190840266954756242596232830345308088901589941099053927771100537327916238380929896679849467717889703170203766709951248031711615689354420730860079684684275779998099866731894638195565855205754537032067706724899323670920734044695341034846394022461967324644042809939687904658412228833218084404495783402159202565217820840082070728370821176739740573442489807144215084030899648407351496784271602873825020519220236708484033005633664545857686357459740415733741123134634791629502547229981061045662095567938441159568989513211960890394933218905781697041576080249574331805121356174608192220510690593216712365938207496163135087410853401012468421798004375745254143718073437429755317901554881112861375452615054955648152203239540294242724322393333465161018088727122237948710113463119045204045472822811064235203884201687885350764045822042328309340805663185631797765447384222908778150759466138051130491833155399978136207471923019604671814829991115802919755638690534143571238112338150895911120298590343595964476078395407256133309191412055249361406733158032895068943941353554835608589430542318060207958887566627979899201437291246996757705808579839340216114804229852039651063970179358340341175910524404283397388900133220194022621762213846518029650602983642155745081833629138266198741261557252155358802215002458255975403558571462967719591874245422262685187296935037064410600054378883826832561136651653197382818676038067194133487724456144067552075357332718936509314064652634576176156875314192861427440491081397883569607608523115749729741456278568147314173357600499075632683189406543858281990950905797586411941782972091423427364227652656116444382810051131504935078321749861958819848052388177776224369647542527836691955499793184736270839600530867447271212688852462413222223911589213656384675757430244276382450110602029260795318849669975947650482878273075811546286233182784200718535316763316030952033855483884018778298791040781740820291229633517331830563470824779683015335925484520491007428397516680650121172397274465772989434770224176480466499327115603318984535064104250411229246949158731921613310253827000868919883298874748708037708206429034698964172691573364057932174811840091554278204430863369433926419726915083804838242874589798105881435633595387251622445525237178154974332678460800236200335240665420719008489725437360359112415356098607913848130866287766041810231283819128994631029611197212830302293987892821949776648190874479326364394156988607303065613997176616941391877500163767444576367389069219738982810733726188352880784420203974820617163918110027078404424769108339335231727824375348664774147020421305408949479767974044795983625452105143504131892732002143839281587919263601157531176145511239555229112911260179252078238283361232884302003971489749494935631217100432904498563473705165176472118415471447625612700881721419481554544238160247916910922242388930914381630910698772417559619248190506343264729277466923429823450779623277087875083275148637609921676535607922005725940796480147125694157486241534269871408048446947105558726679594206401622051055486524169560359402873551190803121010436080712425052115885892320616090410696066723750556962667078820901900480741686120787689338088520574422402220508291982666750254904748218161257343717925973502300747427359728040376999870840268418368718403818396415098408375523051237878995787060578140032409703441042533323971485149181522567682996630082311003029672499525630134665212915331655265744375959219076679752664692599766729423546348723621941201543686373686686944138874574655961380400915618451803502848380462021229027317507846023661733767109740075205218515019561640974215675569659893920709134615363948231144094443622126602591993748188492332691510222870071921361799150957645257056647680798274423866078103542107301279679268800555327513195228802093451238531043659403378493863828846197485884380113392202312749552891566209478027746344841245006086600888833007359850403595817931606749113359965496991069519798626268462207388842028152658653414491876915456553122430411048104745392831713108668932525153701899483821738409557381111631728957205999896941212321616391479044968886505423058534056132296913918107166037439095847141780913406837246956769736871114793733029669360139823147891827158004498689986023600442535784383258743790687673844712816926480402930037108939677714885773548622814126929356518242066927584406023756365056688931801487208569831898995169314387846573611061333671086312097322824795959076231613187732917210098783976605951021095866276337938440333156018327562743108619977757828043952467596344397598306880088668124607676130569714841624159215569503873640051807372142569166790460428119520002088754930604139111321069309300892758768056660807333610322564592297396556253393488800288847491300522737115550156490746554904878748798691541357084881462292684020597552508062430855186451621110201525030057993973403193210935110716358992053743696003319512540792569764905822976605482131343148762382587912708691942128424794435167568134480303605733894990588667219840400474916785175214110248954605531709543509310427208305575285873703660426911238858781178980763480840929238222710525354159206413474343549715597595019917339792489818789627087736408030927886070741576806063419918939823202014314738691594257728864359305235916726984545984539710317573157397932258826270018131715618941321104057713998617723851897123311855108406495445601823164927219015415849582673851830283487949684450146239743014512167886975695421148261120406070461662356549918848609546739154801096279481125674713599442532816210239269340940142595685396832108569537189223746322401865630419000515486957933183266263513741114609888464643372297458273792141581675961244593511022509412104919418769934485013068512097772798211852709299974478102101618826296949193293118455230001757236653556738922327397832318731289188132967754857846473167045223770256168708396646566147658542546354698612751527132539679067993998157613378188810113363673996769080752244556713652820492565380851790941040278455107842435194060641019341181308037147785714888715477396064470644992875470599568540031794847173055626214325482527856912799436985329838394025708762190100808500589252428049905817381704857244676579141387425536147301367891483875444219032169588980848089121929254371110699975256250550036616261513006442706772283258066241135670716250036400649471828123297328829579393302929574368684978472768748017338393952116681540332611508680880902263135970200814393135604091064885494607718259738567612356405335048222213736659218713412180837952677139138713877772509063856375425759805795197786099446882543140617182984698237715188079061086839126301201125746212308783946501269217573904137754456219705811541247840631670859171888932413305307095664686504713113229623547329160330650101007334785212541783544861302696370818331109842770060830810258039127273301465014182705130312603453734040727493931673503300626827930690056455316796913300091046540906295661383261068549280078482787346562977092925955819866428171663928235635921970336493172475844933315038667877348032343157869049143806857766806085162541791561245704642219376478607116173635167903280192901515176736330767235410963021011986671408345914444205053945856521014827759088602205146136764644009446157316031647976675800532851350989086913004041606144500653769368587368436949859354899906721002273018139428398253708136996849549758316149845753224900254407001873352092131456616258829803728098978781569001300320507641714060227754531793634767662555382560667212891147401285481997846642730463176034981066718353467943183876632545817860008383858091340641262902052873505821907678482406123282431696207574762885223672721268250942282638953541813649261115716686537678445541911813533266154463706778938429836142071365613651515831772958139830862064793385441553575069581790209996996214815728187549279006557231743742194857670771118306680850234142425408520476894987691314695456019018932727622088050203542516742966828160103969543648255721554849084180206265840696319310773554139102072903130329146179671902151658797596463489386746202024538025144733916069807890729890537782200329284278155461802287005129073472523214608977687069209287282104197975185759418021008641220005805564653401396071767163905262611020123322803247711935948097540904924411087106240235794738259617168401016668051424056620948939967966846329282009121210944497518995500673474191366912947042116500104264490182314941536924371799029051825068278697632568675286128214017781041584576376948605207113522600944131161698505565713753572411918412836950549236871976302888970920569539295983960905238721090589061170205355990583365836131024474940763764852059893770906837199063194664110341588875154670498650534405226008647935579367454783737696469396338877244149285365376198792378226362491240315991640836749242210254706707509632486988054544640586067765941675958429224763312077797311136545246109692053961221709790995549340890187675014222037900814460368207035582087720260746757792469487758184253863094946773150236270390636752623236301930917935847774662756200351921438272522825239183752115130458797583215837914267445593257014443968069770345770185622067037232456033293878180668543759935734918358274633732405750589091756315154571504112663746646155586412710955081471578428283288127274657236020343188994516657236894894025578971266173388477857807902872341535281650271017920651347821568381289693488443518370374699068201502048048354520142453890947654182045758059228464081836929693143072369283456079619327602451119965067500277336883188276745115947220912383699647630713232926395091310084712986983045268803651156177991962074495602342690150225551514383011559753238130663201690650760038971512799076438571413194927613039998108267512759284814032042186982906887383424634822213503556007962031338769105487305041059179094674464079062514894533666282063626436746634793278306889709612952883211211838525918746899969402547567312581904246715323606142087367450673186149557750098200982367862221140434493665884375211723219179383136171993334138822867214502250308513544308807708004203487812647700301781479671680828519120603100764732411046555396253170095515225015756813790043112204590851110877827653814464478073353381214845711682889165550974262781691952169707607040966116012124851370171907485127209480491863667035036982212903825297157527944327020303361003909600218569215056129634650256381106213909273024624137328107622189482882912508414704339452519840187257376497863331328358795527997782092202277601886490495139972895407456165316044457713234261965969590100768855420644310328581902632618668172696884161725828668172364364163125715160177125829827153671056926342400680788676671974233771947500458688921962063823498504318100396927310947194444345309451896924810317473558636992426982716930875869700226623658284229299937640278485370371071301175452815443079995330074525166276608782925746898643035761419410428572820766526671346549215529981560469370644441355764536904196686751866459520341690121828669734633332616759722312336346294724798661395236560000639883731493568314844981875134362687648414513349169862240041541259552170643692997894313518951299738411111278839384873613500221926095046115203149791872330194639734179499241443705834825145533377034236029336875674613864909101578004158142097474675620607705039126152507156393833470717183631537866271205546323248001407160526067007144306966824790006541098931979065776640224558424968169152794149082334170730509594313220345960537096853377940751785335789971440702600320093445686186371866709867735721744760907456475959276352802024152671530987339861952668624823785854167703573593217581332728832139019824603989372036957188978253970164760380013086776502748699048788078391641932622186639367914209136584223994087070709107406013893043370040635327239288700100247618588197478128868806971345088023124641199579844013651769723019842136199314982498664483899289298334452564197260164352871010221338113714216658053331467092269232236884407373336014965461118255142673506279928566244678172273068644348785358703327049531113687850470522153105125109409263247793523907435194590366386236704854866887342291739441748480608582402508427438831139575848055364783733675333140715710315054729575247377994047293085176169160452664668632425304574821373109561882206662287839548768121602496296434156941967364964446068877765910676898859738741827903856601053179940847801192192661554178575935378041779959503735272175304205905328499510979345264653172464573640550312551986994262690233659640794766813561757000832027067461660513036176742348663243812674554553098218159879534666458522558714857646006348113883894638044399130586466591435952959558076547122398333729969205439593045712018798582573130576387072247491851996016740684492501092979317344646460416927154772667018606490983539913668390071370376937461401366854232985637107833841492780388566466097460851008694651317971747762889290183510566817246615846280341980277226799875345949318671398503206997037481526460409539771848826967066074740996403422540356054755209539047993772156035727437524238132252885553680285486778317152652586039778556360157290916278983873146520924073425360032344377942674243886852912550477690980750191190329665774662053467140850850960291540541968390240174253485745666999726314341105987269464333212462339389291670309951047249681120553706489817810271572305948436466021844837733862768472291886666018119099932247187708778316483009686587080872545028614527530835112463746736107947890086763147623469320058012230633072952620441119673759623459614418997139141915114286160856620245219971004085607914805939952471769981143121679613204489846034932564466989275177833950348721152943988328431830564179020889495685945455671282500382572892746184191313161018437510088785406156759232241948388702999409434699233620080631853455017228374132853177657536315574207658878532394420217221154515903441504761788007077859339956646917947786442274636169131930879599599881619188459353901959408227959038324810019433700409539878758117473619666854995345482369732889268894866325360741810799587661287622958353958701148969601672953452558507707979761106861069647992013492201314655011695186874376212770674896830882800290368723549516661148479699139339862667134980669675693767518205219040267814286779982876944259449248702174672285633367491802433862907014568463890764793185586490836474438470086237483323328293708180894413379842570141222291122358178901369212235985145527164329672964651129376520479257773806041058217852364825093059539630010423657951401146319386355955382254081347661840253170097140644818547412391633314457200580884288393234864081873394163976760910770763331842406937844930073213165881340607508966269412071994545051146113930382114080357683633316248137031234146766525520107415198374978776871054597647513387134891789774974840975282338113780396812988335392104800845985224369299971562069763310520560301543023105389224724454880803441360360538959412595733117438217603041863223702070717378483973211399732875189719620624773278450523071326783340603533604613256684884784860344473277802319659840664931369429846135619904438101602471843232282738386268284835033577336986702418331080971195381570755898794473253921634636470267136176644916019701684636988274835302635316179185547909096985345964496202987022610133072114175135224519769072930521078775456935799019392527049396359054530675185290362763789935875218090664092937483408676150110491008513275448032478412470757344828288448148797740523378166369531156276140255096536337705048228172495670996590211043328957227358252948200735578867579867480457062917320174717199030031553920008598064379944485592901719986508712952837231394678077702096545367073820519949083986631350571915331629439860170932924359758452561595141668098849221101810228762463682856175804332997894157971174802568349293571280275788208604136092823214070176967926266360613780750457769192283020774357600054508509192546877435730620712247890301382371233764565071665363276826903389097788464447771504626071738807775909123362083701358869131625459336033582415947552614912147873030706770925137490202534945027070085194682440146858139000713892649105705731483114026688826730405622760710273578312244369455557037528395317027812630905596271658225595049816495235247178075496936720027167228500671061692797620020831437122158430589349003380762298242508525570007513549947356022158903988901403393505348071784432668981880767330623386447157914242464411611096964297406012383057437155409999558892276698244643474608270290252260347535323857413113699469033997396888905265711219127288732218573121283432505973733549469236383326460501439552752081659577012448079623388623026498124270097478671397624133459533266926493141399485151844405312710710739265116894767100662077679580288507418095290607735474488075658636886229166440736031652185580938303279799345086051181647211750591415249312219671001942585444015156763549870389953599663757357765748176727404303312036453915759378501582887142022911752575411582569020544657310456182837265638038374203052080400298041976319128866195600963304354283899945550198478717628561254218982340998649411344636314570991740786862961639088647647558264582337473694930751609000236711722529545839475250062885212210193388783329746271870938179153164097028718214936452043064422096581699348849943466304086492816587197953724311146703202200678212370191390630491710230448859679336594104581791732723941465311965273442789208861360637650380000152008858077971207572695909788719406213298827179789564059729747143890236491486800004880243240624575354156268318432424154727234868315292671091799675308809658149494349136893388962119218702759846120750877934359742554521678535181597236343770030683807236900077098902777537807969915473698597313652662553266165670983176952010556683146960474729465853017169270590546363066777434154538196448947230346640988466659138135796818196937916799187639181984224594364228322393973389702387102763958009067247194990202410926273128674715059007554371553527598622081577604290248733383154697037797596068942911448193165943804083947273589885237748277269742862800501582305838436477012638661325322054502840553290202153840579781042667011265835973757321131689310787610143892950258614750408191381644643992528056354126861703750548686592713345266147076166670863360045279363160512054068899473062587444431073056777029898820211878362417831800220320077789418930066748506642978157613364756135109064567807175585433337293952918878635800083758760011708003576023234557635126527971924286016788339433615067217850007579193119787690544126123524100083656160165055022159721431526669543687072380239078837076327039777391054098712701136614678484923112459962799578621760432329809851466818412753354347519307923930881526640559492686702906370468798065519159460527056863568115071936876486812616632769759045752514097046628621004561020856681901254946472591447768419593398613361722420478843121599552588776818655941795576277532083541640736574500961718352454352377908937216717849177120222801446861414913201431601156906123771608916685331008676041623269136076378321047880883672579474642277420017221714228528718475881672217826585528729998200755670732931480040803714224748296653757434827602510797759982045685015616289236108024753912295715319218250663191287430958774415409905180516601075662283805422010313324119126017108211012113039089226481044067630235907695460509897400176885371946954535206473844298147087433821478269207650346784031398464734699307127328039912999074954461616997527410312668398867595457205999910045068661819593067942958409891068110899146946038181621702762511875281610875034772577583440966053555110069397933741449817967007465233505864610990378304990921105817322535115602492792802929257553472571962893342570576584005264728706870827998258373013605779703851387255409371675744797354214508688065512404994426655095562824384144523419306891792088227000484969431521852735289233279847420673441330919799263720893464375050397080608267027169188622041601567232022855456454340077507919849149996193608100794147470505334193805848898815023258252835788338708871262671182684957871268536918735299898604116718715892178191920363507655970255153328039446226934528005600733749433044781355200762746593790298027586950267700860916414857660047768502389012712079535889665568326331359581974948227370460516406927960360031694057670595771211168086157884829802734196288891083548358989258661068759789098455832743380244049374774366652613706996058349710779553074559364783843983829831405785544961446848444544852103490542804422925187400685314236512556510544155451746705965050067788599476588909446536750387209739475865581171292657394819423477475182555736096166952922441100579683644961344931972614019593670458135298942409750535251921185918031146706807143493712413155998603235949457260351644664959814822884858302589209865308122848419590942737645899908163900463817847267803092666692813184716060505520164005301356071483332258482125499215424145593590794299928632280271528292565760837943386316417420654353054029907362577013515128528818579565332346273833301978502226640408659130397265313489755622129468936692756477824900063505076921136849321123056723330655164212606906741694380829638358353634501141325313116879307097316389414806185492333234446726138337902457707985043129365681879040406257975854071924985056286616394600783560210192722739235897396238894812182072774481079990449659427577263306795871791777070099791655773352753443023764733541043032080327207558385585800367745503825922717968280120894741427346045671767450953638740133513531030970502164134809294114738395604580609354170479683958385595912032397507528052618130550383644692187106224527339044380246928462689325572181756827676179773381122634647807183778611546078949862362794484610407637129265847359649495479856262223017943853390800776057326212659967023643561828555291638623866738806649819450646583035224383410135251082061200196353809089725342420532339512512736658879159150080293338056488872690548841504727366666336540432277907074639079703198239373278168606675270526926194449403883388501302767165189902967335847520007120055691452151044426883223575220961976376907813746235665261358302754186984380881970083670420836477803121541758134226220384428884396146504427943137893796582093414019885651534198991132808884941541661182068503466122736155856273554695584606108314488512855208009464812862197492371119707992293349600823071166312313337766995273958538597684734378006837655939018498234513263835423255089794956157675821890568280706160178349750439900825974128005070763199873983194412082232894827594905537127686189899800993469789950724150755821197210876108827385443925813226542261767982225289198192037277408868709813397433228759509969732071802678864457890735784926542722260183055986428622854952688628278383805715031941201262645581730213553442977823390712282531384465550981120122981475841168425784178807020632286606801587173523163890760448989374367371783565787535930667174268432943542739054348893797402716447618701750325688425362173775949948774907121431633304599303134722735600014191586960350823458280077211710568591886007936909191614318624976799303344349763263723659205253481279354665289076295383454614491788364847371673329779275251288934585877851763232799707783761698865022906439015105308337374520395313894210618915097082231753876998744004677554245478444541034296673519070261948228690169924663693892333266979287061777813466088344888982658046774504300614982037496254375593303121379598808344488873128496497644806511272477151643193110252372254175055689275618596492117179026899175258811009948554235013377990438550510201137707991336302865276128663811213876064199767669328526860460517581110662531915597548582015887334423437106854685306534615760845142901323490777903206699654329686220388575008051208536282755629320573821711711869515973628863868994285649377852694440675898510340208817141845894328120157771163501210817433018510404219398178134665808411266970285050976099675056961105736644538924235219956713252970844269183796400461302802504579837390596688538556214048014541889315089617784345291099414354475442721324902649513486824733710959601029231843398293617485539278595979992683168458906819661778695656463190363912929856411032413715670530310777099603679386606418833121137775216819121916845620737304688902645073166341077781772875411144344475114942468184043844768994470120956374569053570794435821544596547064694096810906269603023373852156412879043931741666752823421720810936148250544120976763903960759227318399847019652028044927383679725607880185779999134888029401051855615346646229647932267840742056797086550433558564083129714179285946295119286080757416180748780405786059442382779940126612878369764342908571744003456717266738032576252031271150593778266570910892382587078387498806682428255609335606598827323512213003599468701178043300971262952721545472136299756199035308747027273995314927357036815580424521030626496546080476865125492797739998323216195059640584199183102489395834213188100986551557190971650766161577065696746180377799601923638875244750699531904736524019012637290810808159833239628363726123066904454854854428854548795305512435545362723254045693353018630855793262838149659533538393946773328075112819946163774202666196010995846452208285890761785008218424418201302996424643111725539516813360864778911688772887537945408098234231183503542605024806932720266497092162868412828829581681213333843144218835837155643123093635256401947929634275027659383759682044897814796373326217105450762872282928888696416947456607428920704313536688169755679975439398566871027240103441005849406793079470508542486034216682841260096153995744251103021936562148561167348444888044376954138242326645832272388989807472805228050996052432752017937432715410145508913466970306335537991261313378169622726800327963031052194860718428441880298123210338266430627815210313566169619269763003049945833180813457512477991926991262056847295169963671256910866268588177211119956629965313016443588081822720919101225518036585728417465185965575618975641768814112295626046408930119274081470403541612574239270032143657496270356438940661113962766884639338266656369536821201131101238253484261014169570989916947516871198426050399059070344578844117053385513146672331783590246629626438419603201645573630784721353293245221976731445162254274363637061847940703715359706240552367191773248497766990519648317248933455704397674496759984545860424823869081820556058005459109321220048869114135284451927902059289743054372202994430295683525532322319216072728319836809433748855969576583735018628662798143039538972597112744099008562532426191039351045692380799232339872993888399733564228703674503073844622370476915455101472160214902989031049673920454571378497469061441135990762628565067737653565387338451801930095493996891344655054094173123812860974067970522308964059498151887326346995822422970811148838637809314189322531443218405864337811034649761575628835185846459653431543586103894870422052092215545546690604840000483640213284466718284945353838925181893056448963812773162921494214246891592384808544321727093666230113713257609537479053675226271569018403974734479349534082532454092028836101958331850151341036657062704508587087634556662766783171681528037473519867920894763254288750533478059363252567690663985152061333984390585198056045452204965178041748284718040513016448895529543138039852708208981664805692388149350861991079713094545970738797915996834411119910106030523613211010157889035087894353500520398771145070642994161393876085414543699618730448350029669129487074949456917914003245875803583406055884775876439710395367894730471966648900075719252718761000924747316619703183934716526131466523358579189183540563766457639361741044837029837583514440804776544683398602020711682788985247379997346994345978517789535952004393900933459701879488612216659223583081760110234640621451800561610489444201484809651368601984135804300801956865049044069957168021048353850402773948884350174676202589420932687572805743681596241827147725371831183738796670868775107459092746331233106323082263300787330981259586137296937991564822677531327634328124787823311106548978866263357340476142969584794738778991060687593726249101402664977841900476632719318650276045623581956757479656195121961540453229226073553316719438914887629194357023764696854076101315895520068031254190182750011938708288033086305572084598827784572372860962377689058715965100873569908320514418427912389142301290224639979768847471825222468226136644560309678121767352647166452817316264702610075212930136231423961218754098606635078738831713506179537588961687074232479337729141426854841680309652802517790686540642763715332245607808295101493010983695053306864491400207238601363508672192529040673156584045102255061785027374959523055642342284693660011625993118819706990960300967228138235436280420107423941410318748092375245925772226088967591383237220735540999786893661326427956743517870663161196509321346435116497986017569082936918003426090330487017098775092954791582083635278817595894842089673480930949553002764173612988962060123202306985051996816603071551787606502781628693688202239485192207332473538781955392842216567516103213442227644354217094453320986275464884268860140551945799818154669163692652103292513505938535200851704866389038954311575572936995615839366679571814603296793685366158869186919405259948581696829010704637653956905121185907235743299005182692984505951175391756900387019203341299865081016400863804739415106004340916604705306127947504512337323536319913353695448563456519469492247317071947833468697535061841747188972874934438564291601974032210479547675455406155762266896631428016644028357428715023582382514903510187422316112030655788290635434621208488817428820870888813187533474436160948036267900703078885025832840868465317143664521628841812513251502393029402569733607921522378421391719301748627011351535977474842987024190442695946274003021205595132730098279018399398092496565281033220473303306989062248447569284446931127540688579707281135407986196448340145157270907896067416942751591237680703074842749219896241893944323950794831761611589887881006668640421054327565894545100931784590667609311224329407981216485238459198981167246698758304402062979389471682674208955161711037244242523733837670359145507347480749882407791820367317458156626400509143968616599184399469837434273030237814959564745335583004699650295604899897726121992044117997606187959364230711423742081482359539774985586434648835731496732776593304134063380597071204597811947160002565997796241820066220717431937743774500884425110831319610843220619108887641942293950661403101909554922330841690345501941757083447221888868446829559099075407556896675096662525425566757829559036607468994627415529460466623937624583395466484950847726628379852180206679926039351650039774237029155743760456504611185968183538581022325198804461149235926186029482894734541699302183577750217173728076741685525634002943346386551415880908101296122231876688562254846134108348969323548015422704080328026950527911780023507084935425726684164240477227057108968125120459305697517205646533290904013537839087346674818037730133611639820531462394603628758392718934956016366525039245039247107938773674708079323651055477683624280376217981405928707713844201877239106821975115358205636371848535333720261555010210092955847861018531914062153666655830413682908305763745527045535703106641584965536121183291339029023566712045135191798658332273365346485503076696681565081850869611336118235214807728607004481902686855014324519795813426468374199224649870463661090173583651880697326549078768640454116477296543407418640461829873955282184473834558902914611448245989679867561364120257636531526521074532546814067596057939718689268335202321790330724238234403626528520573961840471246467246324671915511518926472702129631472014843153987753204020499923587250687605261907650435939510847592146799817386228742431093025259112454535975818496244464355210863734515653869943342224793740971400675565039047652813816880250398552147300451280309255501049234303840929075928678172578305826435953887117314108226854579878625178001041521202844157806856363365670155088572474381551984071941396327327753187053121274825228326350185933762358223384272671632228567447373974058071642945034313507007096224299855562683431509790541717172843233425583272300527911584633146795881262854803009537363127821327707403454565877226502005447549410292327419279926285425362581654919270054490263916158867753045575717937303154689978262639102251106827955673581035279775383899856980861994927046167275900649516549862820669716162141750111139790355706950118049613042404193961406122848829273223014638457469193365357374841751132559954495860723160797858485393551307734244593835633834382628714328707069474897675773251252408674624807996585495832405148791245752122259751618218762141297566511856631886158984645992918453266585177848795956499976728012736115444811909042121434250734142355372043801640871553007856668240205276799094897685899906971179197617439736173049245540572920827967738314366234996172144536837744994097140311647086184214996717853527278040904502856056808507866502835110993686316883295776586834178220324187552395302627120553033012693230925250015581641173885849742640295493880968499183024911291159806879952779714652149308054164597286187772239995117353812650147704343352324008842086616059573775118801503209347762859841373414867748526019441425706696284984789899260419042149708385684304291352303194300861202240481398448871654537642485416300619732596290010222174677894389594026949593438188318416935586399367957828464911147677160647373020779348965506420231167081798073529618229919973621345602083943995963416168470013294666938896305895590680842167834207041019404783392779214187263937543136671679362693731308247020784680778581617745210464880514629032290413343338783631738203312380169365030649853940768950282663097823652850518060310070368065443042959645632581654487260259429490920893976218008089257378064302416835828653273506063620319251055159931484522753442572016223112227452146746376295434844370087694400117202559563642146616860419675751643679028452015099489913012681480936346294657352193534749332777121151008417885463868051236017323781412022005382102408286042429715981989848051480171105310072277332821425957431449438747435254135372306460145772035424971894283625598931863848953465565956044909801207166944910199405410103256263162559404162128894616027322560419656143450950130737404319758714579881642341508471996133024894905069917199347999181987126852468557977562942692096698797505518836861967158743502214775396055087232371793547972410436957092885078872251650779957815198966458037306749168000337124102671743593692711760660873392968934462197792355238994003977503368347613267407039226193574328524260057082318919257043606617464812327256584830015528276910680972324463534367827582312309881153719700653503698105052294184462460757884770278429482602114643791249812601424153405191301942784323611048082959096709402438502284925286662711398848602904322592010158582996740160973417468876034832509142622502780707752157601886512525924369042097257610195986587458449515694442371503332421001240206164178223423870426362028376118162925113413445070166340257952610261118000735451523073889743521465224618055713589130308984918382250448647038135464240432287892185461079023346344315937121899937836862666906083876148005261265576557648325669093475298471944919263576975591743427729165757979097504215668574821815476576038356132295159890234613121662247784895826467743137061477197687584532780724800260416620307350653822704005336861339359611016640950099891342118925000464243253098502397334503137195500644169287753557657180985341574371328233228895913304234438590434712448185949648431731278834805977167910274438125164181961502707807026228076382465942965616304181431646347219023289899495301671439538519761437253429544539950219595428660162486848820885875393621230956506271709509224503193744790545599123372156981887832198362885668298907442875859459633098849994684571369285406722677040704113670321029213112412368965640650062227293649722530443045193016548475485103003039225707425966905171018278407628792026811959925707540490665914856442905173522505732399185409182607563598587573963527765067317878500794838479224032593041019195032471157060092580054042654467472371657399533523615018962587387679449097266900695030989741961949697184776696241235392103381113723506176881632728085523784101122567264918702103900445067582348895207824073134314752853390385684609517742038355427014891783375694692782456290958421807556653641987892924576630977153011465788230589522611631060294355482052032374259121070435744337300356558306734096662943613216973883204326067276167750848963827709149245757808313794356209117074263892511889382032246589547454794740418164212292289256029813635343329782843206136404620915553341235631743626480428176217267025278733645333923238187665269912643420253458795088848521627878164859534134618971817625812519171272289970587423921802658927510827728155122830994266069622710125063149129362404148237773007582555967335582771147282384665188262360075013147321916729202451124991449162587649120910599817465692706511854902249479799410941247004524570632399352135203548515864798924974191932686381026390683112109317689756598178482092752180970343142563195013561492336021682514929986276333992778860917154740704939029196901772887078568327284717004450576517106052778736450320690802337562221320377533405577865798497741986398012715489957606164569384125674002620632358013981267191110409822824487304504520686293066100389738782450239003773166110658186878882525769081145995406851005061035297523205610530158105274119726645073655075698227630183074758127987917219253870108596896533511320831849511608986401844988423563614849016759699268364957374638453365460950693020759438532092707074596970589669396259095522427228041838556718486663405772913781757855681398202530029575220315200041359131667389967439493462237443651289454535226295524389052079111018050545175911242102116654624992437446842400863045115886900688648755635624931793021624949999161942313064460059764387703210910612303951273576944136873180560412772131396971442439739997938357283897697700603287288715597377406159723326965908290692864411320460313481679543853851164569788871309672637293631359474782469272964855159585173792813324134518727755463786886912957712258229407287224270424881821048320193990177105422696486352855789393197052252076697717969613831545113665965033643078467494115116929209148694090811592787064540388833025530901405507788439490143570460896109032842789787461219577086499178476884500642151609163061378480865221944064028452324337446208472623737233123810937141020838603204656200088747781224258238074288841704093660519409235520524801127849386454479198160434376678234550610389030914103534634920118429404782018218960558438922191512148184996235185548204635489307793020038198647543559873943523347883983823289047765324425178627782110841764912596643450021240806902230807378588573831595463009134486713117125014518675309573452885856435671352954376193976503155256450810005115823234848818149356085030573788457996673163799215104145508322717498734248661809107271445410816614073522049259099141319306002677700758717338128160271290207611628016465405897369227239015390949513885017505620555927619254020647323838837849164937612411345437766153766398396237525131498777647273009397138749104714582399427335638890321955310979682815924008138854072826654629517931140565503762928480082438355822962047786966307045251399751980794934849136385670125373471691137160754820737029631484237595597316056902364796914819470364433689817540196137322797879292629453432952321002668713744172520007128786583026015404183724156718701071134257049158255638739563352072795435789883329044086293513291176822087193488869569574273246573683412177512890668664945032286595956122671232325623657738856245945664534898510098099206952057122485111538378861928657131120754341706157151866640426897529770602126256823337948050607695195109374763466379774848221395436041447659661729867900785435047489952486906918827803901748790101540072755765850111052289990871462079822131501350828894411070803979132481600706695585691517898661831604078170379372420184899263750273916378804775638700070002224151429547063461752804775676032004311683755388599701882930281616307244843336775411888287420366102481249677309591385604783066946382180709796333595624935473071830817036323612273944761448549035985948164160700730097401661349201663061447985825650906300374494172865974378434191338234036582244860917539491519002353950303605262563004045423975195967886667988842248545493225429691870873071500663425417327971596036305502673242672362902622720525057117477164520792011657774560114075741509177208659978214995514617276233599837335456606421227831954629135469958810849502797849738707848883490211392437692405603721571813105074576626752608581411092710022886716870177521576589107022715025875963739775781001074964923219750481674659557201623929431039216760531031327505245584104080815615926380836416920078470088088578318196233415690483055064132188664268488726465037174279808637871583465894892661192943502320158830458953243932964421047966936576501534613593971326347674719157789677625387773603772992139103036572346395684233884976265628925537261775731283971213349191539335915012319489551188754139916133618740039798179547430143914707387763617092677368601297334930707203541172460922757880457868812419216375290051496938866907581787313506707466283436685013481837677624942723413272642658791310027692148732208576474842473941365307144853719826824771419297210575971729740272242105313901691354878148172043454756214359092646426758597887244350378187589865171413531177318357650847233162161304369649551290887946639689247065884331838821678408528957230639821038867236636634604750586608035141497618823895232389524182890191991710231208385288100080231575517253999230929452533070189674726374646067504551804202750953793127043390401833553370889183081681611646144120706533219164008855966537477806216349729746783028249696129485138966179343938452596239102466956647605927713079260689536109086464378286126342496570637644372722730593161870954893607425258282828026018313830898365982703578891425807349802428311982629052979723557271727591653382985999264094372570761434725780061352529245913525022599342203902112210453026904184888807061431850120434133203301436370212455890726145398121576836024459467382029019400737990710791582438451400341847187615203336609367668361972678419662055423150404312013532488142002709231569231744850500757838216470261248931940061106818573572853642783598901449314719867927194165374979077392766703311873768948839516597853839437844584930948585256669611879943703713886023846269518469003377562307322581494331326032961241201456048063335553606929452147753874506916233500131974602715244184428218596357833013356187645611799190690085620946385289176952505862205567050206665469261754141476702824154962771133058185992701719476107565115934517270385281809856704171368394051368852608942800568285731786884253092642134192113083255264302106181778561981557222887359413377923602723315948118838670091959501041129842910293336903527351263727971426601255866891439764987695953027969850431095478540551540427982250607536541793204446919777720213419979947366878300253632858037972993327510036107539779598454334870700112063582384941960676478830726830569647599771743847585388781710099419297970242883328592218394792868046730990045366165749621801687174244999739462962515046399248564607021107699463429434798621029831492213946019708081170185998693082060980923846292428078396313292948626790161261349707821705767249847283403359767367026225949973030543628961818144452878138928527590970935667938470852475483679079647914590582158110681507896353559910789980407278836582548261587195349882200944821103517554074489521000838386127718234840015095483266155413559981184271516509591246724665143127004602122424945416859595287488973095255975993964156829704358210926318991300089736841630830529244975236947337822968396446710774823214353666616681622495986262357961560829474922849199631802048386170926136605537368943968079702619135294556732805376402873378624232246055380314972209832648664071535512723890661897375682169806804920893278435018084560651675169520106198467241940899837092750381725938552401652335306567827728572503032310269197314048893201349799196629512218139670985677108828022550489070868234867153646269965215241463437681495177261099379242193350389338300861823025826936094366015167493919051005529320955294959580558233690775774658096398905531425117527049442472907956131875820244983309483919051095175965718777353487088590953835949279213294777698358271386394186132855323522897953821590868379433442587138963235223757399325343653990881596233792753329022680328628306437454361465371476698704832225380296773243088125208372983610204944581414429420269448146968063303477913101700882554145891899418695929344744564144384126480673434426502989577732664453552261231335736581123388241730783883007447102268720053180575453541700484563900932855165074244582523645143935598783254382242659434796107922210842584569036471817276607396212473632686005449404006006994719463669876865051319084139019598669569707601970858275947577166650765778944299409908851077075974992135381103096825468342957648251371402822476740637121742368128110846619911041963327730715897806158923896467582503194020744133040325626215730499320739455309702631780761162142304318553969539955572564631236919623788674675652233392512529954331312729750050979700820879803381257089148202051830396041973161452918942854177595563246380080231180556180997455033667936122465520081393870386464608258593806299047662542088993590294259851005579035904808439754337558340231584857384252755613502295277409453037231209626439498526190262161321808894679562404936317296149602951638283828011649288321006372931414423444563450222339317638893943774918454695475145131739700459758120245189024897226732770492321393633692894046556088710953456887801868582200733458404760637170281248784540996195759778489752661226279163458374812258635012196982221184137745312601632509816488338986659716100751025447505634637705379728443661420724462161761365318830674908381299380566058362521288408522684467227226656952739088466400702160187526333362531494945585360425132431712847558787689690237671403863891443936661225215449961767433697586743725665938641703578905762929266672733316094655881491542717168355341200428701079965247714442143805631766388180125439762191266223994494116304258171063080545820668026214309147871900234148769377927571001394394346974024677477348364529657385463844138699458511977278568261092480424260163459814218500891304564411046927761419398445459997009558905863872584835734928987003617938609982647554286458657281729818623858798410694323942711077655273467711345833295313175313387113599050628200248868574804201756712722590996021257375429908191229294607504441913030370815704004588076310890060837749551474725749803857360726005977530915387468950642270367955204078478980819561315185286295492623270243034891142895146720317783637720984053159161549471097770347975627206017343169286440839698453129534631260695013441341628765461085748615095972964431444059764651659052806037510557365950248749605102785759834206360772135644128726034497918343447851413572690495757568852397600785536752538131683996625720023316291637379418530271176890574147323516889067379576225873161972419977102530153328778927936596872432764705157133018103546736596731695382967408915176777702533805670635709335676286218803112072833701979723942784484912652044246517928852673111029614575424077166657122110466837845065183625769686450898318592807472793185115577097951104132933561230276286191268948270221888673502487895388762535713463352281052324589218450572248580802030559070348783824270260483120082439281137839804879584569573057458199863884923605029848018153486208923585993554851654932630106743585519557434179372876130266091333903268173578714799699261492802791673624598439032189308368029479564437902153311226319810510492371880423690223437599189305727866352243649899418326030822016813896542643165902825101738333044200121596905778329522883360231850219525538790437364597454824033979368760474893133290799332154277523274685880171915156747161675050847959693204882451857690687812437737829057071461980953761374514718083823197431370462152031407657875400328273974709258653581693544686086640852909927586807062021239969247901774230184153815294888442684149270087921786527857124614174632633561190333780462861352390053169087442312089100159070048687861864644747861092531919769173857423596659051360310104463172562260780440935803414123255401648994729857549642150212848106736504385111031133109356979968126760645232172635399285464762635235234875621339261208533234488649981617572433891753469242741383470943053513632131829789730585584966020181122168058203237754629507217883061584442020982377300963853726062861640741960550234700746550374203062791479316317866663642250971745788631759769735396387859453751325334088939817375006183560824410768868693721588348831042937896532512475069709964772486524211920729010133334746128845032947668258565190801698290604737737411226434737392591665376973476286042573190594003187049734233400240730733988248911855446964576614359565601954685106708339574454663191405271712198334195125462962848786029307037515197358097073555158927303571342323197147108321380016737850406556793072135810937902947323942882141121635292569013201251549928302359024111841903653045141234243061088217259725110277766571864270517163712017418988362045678827747786211566046633242537661400249470524651553313296036298142593373819888064478470411052111060591893911091695167925381374869698107535486049602895087763221522259568567548549310359714760558781371377204995290785272664268951693980042197214125259600066131793982056540774374489876404747235538612400985551714479165499409186694996342813104901752374279681615975750726106084313969264433140481502240750847418539840438403232087477243007679622273275981268228623141429701588452433429061364362316451669566275959461813337876112069962988068846565479904444013817178158272831514057276062425560091913033969010942361646216350074977657404466428715282679783409135517500089552911199421505251221685859573556700516084743317937520641229023923705730263389781619546463131868173100245568350847098280259503771511252974543730258938466561136126461857100320956970675730767596229498098834474163509378802302146272077417858579024257582890349726975816601850772229866916671094177760443790892971953003729725355579687289329422089212795017866764864648303953078097965412694619793600907055613571078762721065399210508869364961179342120143332519450333776227698860450593712207382793903552475149427094974193283429469861151701589741957968393911169501418004983059895623255735044448484930584676809799818543570299481197918398026926491749395529703079546112509419780187347403973476211653493868570252434711772849079210314986822357106265433900217500374426204947425611577230149551028031783625347045901853588854910921125826737948407398515460896219785429040659891177420810369810264609541797803426676757605740720057656224906996944824986661381003512927114277573437929990931875665041817381159298555091393895948950894662296144553076890310242733961847927265447635575944116959599519846593240003449074952686052176227952061833231304950494114007429302830487080836434369420142803810163722031592975565539964499683481979451946119193417715461716934890672523361971756776503431350917510244063105113805460920081439780190951103587324412263630505213478645464299966154316234936792975570943446239377092557414475589998224175116424973801477702431004763477642878171850079376577889295183917224223184965289780205764062099011507704440853324415566586415985202902095271041204366268104607539198252360478276542161396008909031030999065272290815940743725081505218439515891412809380280996201659821637497284121242135286649266769664324686038324091799927794974108833968300538822460537479101981609145944438350906559953405331659906468610545000831422227334015233007647378327161358474167262041491564091092967176459098503551711223873093878309749605965817924719388450993534703031224688504978859573453039842374986848042157404103648218090434660030363648973967079129051934400609890948041767460709395671160445009039673004484778616485162005818563920024908630321559901883115461828233283248339303731815555124653567391003701339231206604259602612489669332318486538006064062689387971189016253291156132917744405583569308379226036412248488865610504087939618805219189392875070104064799834025609210384362487030582378098401440922661911939250638652873084294197337822613360191129474219336057058380438937911262826109318616284628504022185809172674079434498137037275703392117835847552333523207211886233253153735400393583698748307757515591529783028307268711944390351251816396719525014645466679610857054663174037864405470208805017990509463275058570276642287830960884025082074543250314498790385959023750720970903405489899436076610693686619771977954332077338975068182609586291642902861079371619528869931287959909767181550544748727742164578751550762818400550941898892518476922236965452005985278338319025721998687610883842527971647171337901352965944535783531267883258419685981748115660815547871179808023435805422966725274547028695257717760193342787594531104887012001665827872504213265638575081676718694125211016893591041245172557972570940583133485506711305440330717249175196245644783303087640587253048706614422775396959953405406364391019804063452983095386158415639397194903878069006926882958871936205302558075850755792721003703046987447183564568603433879987833788816621397456965784798157221294634433787982638545806930276759883038925051950726947882999404063754135908680790883329211455469328453624824377979168575537844043168538254904019921179573315500723235936151680244028268592953502204157959423492232696266821134833821655568013037434099930107643778518633550645706967608516829536411523944925432085625411017756036076445598922661740170310598778979197252005866429236185189095748184776360866045198718150960677168748887969352526985670784053818651916180510398112738471123448432252858200104272729051548480527050811019141769195866159265366163068732783020440544042932955684612329920630745182595906038692863510174035854198414721778370430237293910006944659920384906708252214549550300535663775936396693292274214329828821072654415195723086457322796746168109927069276332889545356625172281118439749194742515894342796015510747370141729492501235029950116652022932767361306448946947920069085817282577647028867389328562954823110892675571419673637851775502883671224800669534996259916004106135406183278763144503689245762290912534943163948713638142999199644011084986786356947456540030999779533614997073426795819230882771244497739501476409406666923284986711972130701928030264844490636265340633578612707454875713517431157782559267908467212470629839068802866905634470604886030912946166316600963630927418280100399344498487593760814322942886175824129483108467319080870266692803399407193991232415189496308631597462232252151212279095319942420564484840932591664311842845335956435270599115966689251542622499126068252630473485491480171867801227820775741608234358278543239048265962141235763354398961395628683077835646649270269329433553147687396890301134177908052731374786499487825542890785514407117067212643718558219765190024152493510499413571417612969643735819581232015217430307419161091537788809164829852759535123692509947258881383405211504630286242731226246196312301463063866924339794517771565781185158684231200749196529908085913973618108983858332789793687324023961931106995760952047781365808497937817235477991101061854059346282138291550816808186714729000284769303541453353773252499705227970502372754100958967351869737066034425701706540920364822206023428912974917697914683178098053495309508464009073979554042028815008780805686854148073841923688268337113724701682676351910211317887464435388923122105200143377035564733608150030800743405160990432922389336213102038399589175592602449239632543565468341450024307705338257573307313975941480398046757646909237445932323358639746840194886836318959180883512780104375299383292240290497928225565825826204567595022368948315825557133671278204183610736586841401841603784364403887184247152260041345607266613971914809816092950262182497451055615680175031569592506548144840902136744848705042726908306361713695404159172574626012218495343559120322946728300646224098752298223245965072199861882426515676676561173433461482887836673321276199586804205127732380908525498757041084247888944603802601171364973815839745255066442919382861537619995227564482105507490346198449105310602528929884294749463812017194536154327977474953870218539759983929582977513497930544279543959754388004153639024113419319698377914667688311504813986812113246149186254132111687036331395514178306362960527454960161980042534395666565227220741972997649199230236164472510407100960224976879045889379562678826007602600985742159454839501456344775967835573016291161439493685336592098424999274949780882280824159206371572051235382548733115733661865650043397039235249198120255182241721076035797433593735522711181303145237016268867200232310293351587295832902311665497520002258680190141916451068575976281312486882355181107898305554530076714210804459817667870901163242184912766663173565903950874554734106433733892887521118270938313682085693608982349213063521278292254024446149069646767025849663846810345811353162515575076762066002698163802556174474514793628408782793247668033120435100973309868577194382316154812899455957691749097972093989134852179541944840522893663042942407055277671218749730854364354203442415005844590320982001175774644805728381407651786810731384646051602832864033625041746338296969542097465072426987854402409718113149922947420075869188296795594989232816055654285479879546323414692579799279052029807126781674875681102551494408002771172683848118828781072886873420388112783886084442985996197220314647421232147002529367949011685486138440179365651278443415454144096628117931669984904479662526290554274150581335130128353866430514346745942240642676011096976241620174682623874870953828640870966673799233920042182001854729620973886265060991209807183435200811377265437180833991505520563957956895126752610523169710177923932173822180000085202876002785092487772599412463046520655287336220377091665915275543601229075793282089832454260830747507267288839468367527867847908164393847569850354426574944972323974687870088973385461995849318636982143755019264570487333897899427424728942003233774161533844906067077000275651677025232660634018879815171458797914991581607516726762734981549234083983332794623715473607209669595212668617311562092439163456334796591511583404471249351402952700992077145458743188777084250189803995518453315858023458733679915766276316782357501135501468272834521621613538069082239949212808214002571982517391186421502904582197744442025981526173349044050512924114073491135493430196960374106778282785395925076471797102975908816532280630896121572912840098030344344798194261629480487576110557703931366739945164523069415215828822158497523064061607832083587120384394462722067731724415068146339822917528515045827722861524104411587277210841077583296759120995339448792396043526371443268772914953290740784533808737474772815131011200896098239722676805861771540228893634009733300369228781735092700691689150585208592321928953476144921246311632030846521408817546868943879706937375247010024955127550329238656297334102579101555234614790472837927742025831442534996226214265424917805118408451901219006214291702811925645917227083726205503232821373390605101720620524345620064321089096544590648263293754872625143516231841986283967788841408492877318575449682599149373886401760170167949188412258460044006224648923362366076673108168341534707868837414360320203390224037336766981953451023929605003633141311994921242269303283085546253889182907643455986856092162854156489428819890617807411475818257937656568987081434758678855705004784341444083341850132274248549499889106951119149139114080183188470890187358687243664865047801477670904631329810515476998933749056231182492185212342739333182354237905578698821429872776820244508557369121811263332223974986236608592156273041157598799203772400142882540980714942590075340629203086482798866704010008944812926042549170027448788967182123513578231719899526129402991446316025066719683168848076909498526900681255607545261350237411643430528393371313414039258306518856379240975671438385890146223664683843528144591872435286436345218216419867816384979844864867869485057430909167592228526161095586772068500742186023153174173167867164147841003127487739552276837441503097691875792295610081182848477659424665601732352091845139658262468335379824996314388436091051839227433368659091991650853500597217785307074927936940228405349683810841911694614505993195519019102943486626704323267217885135894295572655886572860155382066137278680717693743355217160724318655144448486210855038369057966897665613407126112115351884352481087289970053252203150929302764256546830358308283814247169834647511282225366229792273559788600097082673692445435870237348249741433914723492135478562975607008366675841084796937414726727200075578531227997606145691723764852863587156662334523792622908528469288980157280681697841965090406202663921228707693454303085866082658322381086067193886444583618848265653281111699751524100051936579227730357347763252172929476797081192402564007183852027089945091397262943682627495457362372408464529259450726163041525344734231504949718029697273366629743974969931281904325613034768909291970861745776285360224799506648570984994896261333258147877736721677272733808644188591815107476929851960719517057275910223764711525549415230823449972193492606982294799698518315838552195433612531262936110358651567555024547192331955826283140882060739224830421814978225346196267382820059527016471698194423764567754560523081801615416581163168282879871804103981446758481489053863238916685156528145074872213972554808385904298196663474720186454818025304012069766541500043809844566215666891093824251881279547124008805268237462144754472945189352930214273502040846099732810263508736898365965505872639429388814685486462726080061124756911293143748448410827835926641340860722448609407564203852679761124605497623473571806831119020083589476548826633554991734797595536418930087353260355114399468210252010197384714963001796513718831977802587988236257790839237968594228838856526714480797005244609231352092734632265201770231042915217487083467909124351355968161517250529538996959960312137806382885730670383591021802541674072115708817811625509991014171413201140068597531112168488966764052412826367655691065032598000223567755622378639228652596801447987099232275583254289685466691941887260184370805952406748136803700504754814292730285185948360789941516691177285539989493529685692875984765599126068717080193679637959053157061795898723372155595626658670782768109836525250917265346892507109593885340958347691876225003909423772948310273464272440138926097880142733030824693112850243276129460421216311761188051977998866214289669053385288131379706886318630659506814888056125228374615918001926610382008354350179245525373878409371649801627777016905031604944951509439240551892722966553063195395924505533042164775066683152365163611302483028305873589852701788374066320923285384472487649868152699539581164254927174681872109826311874042575929285095490089155055217321567658091717578571762623790517066144753928904065152665723892676271123997897823667773354236423637553901036914038253998412635780070603185291081177771642135134517026351196873336249095699728548464213156420696638427749813689883069918872570624743710426361648454224689113689435867767101774594212641318746541051288762737774127532843551816069013346573763704314393040469289101412990681911250994170286460124539685928229015476646067278127201088137227858904636841053881851413164016695266888090312093820847584975383002824565841148175466176065841807876915625259674443303789231035448377674652296146222245930640956656511211690807220650384520605664572063757309874338827054614435873229275608311379669199607869177845434613559946623718642026655062597157843517872779856366318425797392375306991967328316168968397017627428360721713542266050429354972363301548287359503372134062835240470986524260908707768262739542212567129827945907068494420818774342231656071705081086473211287141177106230334999057358592193201608114645348948428347373487070031229335382466199555767728731131146550097503260715644766292067048054017294862508046800560505334013905851619669960160558637508121420468726072959994962637597116683488251341047801745691595168439766302657160892964928498081951261131782302872810259382383464234342332397094948851248177948516250639914167694107794952575276028153749401497170212969064003345120421207764469528831282593631607304650841812913536622565190102255587014604912308736949199409675701808659920462648271257683521747425719997093441574091790777864180156831782844272635629616828311926029343603950471904646314377802256225099484741728121967931674469818584735054959353252103033300911520518666175758231242984184418928931105553474245069126685091438803812945346888356502379869540752564411503608031842856301314139071259900727564503303573224404855745215431378267125511044968376477026746169789772206640302163239871023050601991579823352139178807014690911555407527809015457250524873268260191686743625223881976653973423474523756791438938597463496763174636522557820396653142930572557394102697706608132912047902824599860422472760587958127507856631568068060083596646452756562124141544723758360247102396883827873098363867290524286226455998635210231741511171275497847265756130788484562592082789729972152503999636149176266857607565133061145673219674829877517663667990511141608368827036942410466243590784775534794942008083386687890078210724679088025824294168492667996055315596813980259249900561689742164425029880095637207890179744113898167262583436307035348603723220885783245634857250626841680874044098502289095709996745233419534047602522267077577551280774765289894778008890111226240337086773227097324957258319922642794096847792480821332180074903571846550430401354906269499381426151861433358461476531221595714410540901463710842793902050231951796731290138429992330708969562379801063964275044113476742032755434565956058709993493441919864400435280557793855183216071400967479048106965062685307897795892902871980552492128053167617860855535006187928805254292081567059286494464864899665448892660311856651585381570860129598654324057696906590205877870824597634236343040687218922946576394071106475594262241359776709886764847284107744137478441384757587462688325802633494119946473346307131102368870553027962648070631226032597847058519738539876112779094084803924501216679097746842042932667557010538498380441458443943104459524815599302408655572201417021198607168284132984692411720440541922350438230147488966135362759796457985819758269869974411533335882349639471554809204500862965698563464213983655399843495625900660249153888409853442815568894058266514400557914525542925976204792680874906859023949334943627404368419551495123586325477918234136293145023303427681579189691271632583382269359074888195535491396214878933501635194493596075379285056109872107307733474788147035109034930326955794396374428003076438884963348727010449322242825058271935993803556702831667186585756132999283225237007948771105046019921648220967289731820419979714192012991298183341211536373195756714180367171389717672160395390514612073174342837312172473016074123025648855260740457976269345922883736798659662559980989862247971309185004638819105367306648215159181858330626843764958268564893206495133178188793644228329043325674327417171408584585815061537186464683371447523538514259189600214701933357316439631118693811024377018070430895829083796266111089896082963283087929229468890256187266220090130691622693145367174658766689035370082147716347407313475054941864835760998422472495532603680544020433549478364784378432778677950620995206905796569410781751722321925237393306300094205797421232198630664092394244055669331796091321129113090211778242380687250568778941889267951435547652235548550395768666666486005525916395593980417847423516841045571353116453390315337857453963096147380778895859759797606836811142182220930345718335362991098168454462393999070662877328371021151481868542239770918021920965292549499795470556371300920746314772541499896371184275599006622505905021947340217336868976326158164290561483204506835334046564721639280365185485869312433631986379515459780328150420193506514310809901854124349360158366026604719109804109130707098775812714496912204929548114655993541147301164546663838255127043079882864053795462541693348215458720198036279055390310991545844364551230385472975529998520112326818844170623050930837429821770457756566505929504383323265759793578410472139584865361402682535551505878988172749176099596118687496023350743717028425189438384105664951068260980053992266396494503740649417877150635590508334243045844163265026808665086018231062033272068252287635825658264295006353914481753590486220732228770934847511881977838014050060083054063858630504967134669312560734266225672722706931990808634305863614824988577836816689693509788171051178435569842110361661527870299841899582143371122010294754080357330976196939069757302119559323850703174916061543001749672889423307976491259565053569866619503536211673992032745528427121033422332282634551949930814121516561151917396547169121407406991827337966594540919250153345063184779770377438491599587690215697352938495173950201799180175939262293935850889516452962703670608280843315578030385151810421363672105526341576715430203879814205428771751291950891812159946373802945508180306607554041118458770412618808546230303487334311030646673588327868797322025183013277116437463400326341416360118357648427592169884582414553275514380390146258534059569888987335239791405801242590270398011766164540172352054929390491408691317619699444866339059224055205437638776730839851326673745367369685944246116204721010115882890593622624878090752614939070544151416215223537814329719863411316252236451503833892518118748393663162218054271883015279510281636884907196990464131574011362953136461337373138994104791702412269003293703422293661332327579673239305568973203462270091403743583857223063234763572368330026085715605763761099735802157747839392810069642802461837491294965362992350616668890420337467983916871544554889397123705778627984207653694547031069664741910345978114772726642793839716875894817039817241593883333833488702815707797395228166135737062853779592969974423400275801482812286742579233431403085395075927831734289690180804907992400368966662200312815149627178473815852610216710800032400537961158359112896539844559145687061196363258361023938191857670455094878728451283144339617450522746599835174545620871315610356386471808473615105118318963958096949650946208623626987124701211278272560229504285634859469671639349490652327474103054661503258169595583107429455888254100143176850799756190572763108767322970929541533914251680370302208940538438272663194246261381220256649428195548536525611811479683422441745199549335194174091731195284052549392527673042819053868574570228841216579265872697512758678996323282632515348574173853107645776183848808526283363981153449323121286582390531505322423190097200793800064416501499549675229537758728902496225266108840188969931106425300610892224205749346557383805806584090041427432092677307710464075619642018969631552983682793712927728293131832301229376924497914783238956365795851228598063039654804156565185576745513648524581237299081672010870190544234012982909260967583997105102349615121286196259538876320638736187546618782213105768409598853747428837492698687912658634153553989746468497008689570411195258037952408313919842719212602527319250067919817805574290159708076955008018424623126786320412549268098451467322084388609042065748918652688844839695541893203574422450706822474092644526818113916189697276374017345030354386746306678902187857427913778196320106171223931330687943773075721508764479487696827359479400137635519415187453293071224348819893501747599808776309073057762777039925595470901152623704989018029929747236116606350548460052026701078223858938138976049545970132394319137628604687300629045203152724020488098083092926531802268544217078053955948196885445074937982494596139717356516076525374682282812398577172392006345682642014303065023390863178256871783569328355942640618469022167966563583725371806062498037460166230730883188076206354008250180290578926365267368568179485432293408981880705991841880489402758276267791585049701503454402958714176344938201952039912650068546405919684173573824527890112259575452646744689324356363354485128574753597598365961797505681247053066754368428888678334154618665777765706418558725915354570297617846933775059660236723032214281474672908242919888066867601209338845407646040003884790405149541188389887445347495214323404826785489313625765951182488859999677593746558009967210826900094365175683329415409460208718437150160290454459065570252590008908883507267835501433458998383222660807498405572629672598319254879782060614229131352961954827640196657952010215643257740363158817868711788269262930496231912244109953131597201524856447525261237445236162911552437135865611955346863448806995942998317624777867047728811868328589087278126686492412841459742131441802164004487315334415714641388925355085936350327963092048366857336963267028447307700286516013726729390249102490406643317182761693977962335163099362969746182836495689698818808676332405399961389547501532832570628255741541114769041432470910124479814477016780602219340487643041413762557138229414816737668897500509198538192551145434526116721801098481969245699396127219705867159290303476544817903350526075824363547267683609752762586038756128184492774455533214640181166306273935043214834738465351718648974895677722302732936407154028838681751662879405998155778266377550785995504598207550919604265647247532386307384132757589428391204690546764735180105297859285682664242091828888683413216855176230124798587787617942264338011607714790159712632287667436262742264023250218566409274711194913541522517648464777559141136625015787387210767960730703832702333683321617727510762317756060551752849854801244924185747683137784866066958879711131303647727632333526315499107101964478318961193825851449643547954482748638117233417612733696093091308786613700965653693252192443659681671710430779015030146279136770003776952760655835870694906768369544377926640183934338838256520182703844187013679532527165677870123063671814014586352835509942782339419399347918487001746533948862267170733555605699573859056287032570255271919417419898067702971215734502562748972115209101910217635116861509210014894047122548935128098902349178621628052032207047985717210782174960870256104493458718393043568891133764417552454759661861368208525040122750960527635275953882618233370516922733492918045606790037069956134016100059010629367531781981425621262392033646291706676213157338120934266902239482480446316071575531719361848545977946793789727163902096855362116623243822212623105835198859987515284110643534580497801535707672022752962249153876318536441041771575524908922097109366717739467137604237811122853705052472693736504415313281242085539320133043709935282350712922159911905986321324131508680746343336498733211254988869298614542974689008235235793093250868997579335196322792858369525951888571275053157171442924219744933682729633291394195333721301496499687865954805694022837964407459285648893756893385882778565563527856546555332152815861334130179810620180252860115307692998072358363384163975854385044575948814495570262175631562688839151236170985415638099465995679036846911616126676120779316772173896545278601909951235685480614485766989431964835331496692239093483932567061144810453693794873299360614510738106912547229554116371924801469419773309251568902856741679398388116145261584559426248929555043402786673095686889663157633935888850180304263903720605022503729735332361579582082507653298421219111706567228746112185753586195473203018792604563056941454727535964677495302105304003298613482406188354842746485480656121026124953530617187849637746955312275035662280902074059735323555302610213994881615668036205541212210535705475429312915483869227448022027714262816789599382518164111947296897396135655155044128145087454194869120193069603060992830078471126449681646336262731935435127891530904556900883633532413039358214979807257996743359125208130696008511716800966516511404691353982266412825704334172830001094936926431193134458515273179855677432717821502854347093670864779451435016863926216705903218165393091298973510718753524375381440224787280640374526339012090470377864911370458840356335069236668334427453697209012933061418623522785562658153285679696331480480507710365346486210894418719829051296734086919211095401597677384466747012155072292505165249718635838020112177797945971072822120234184900552112475635223759337029542092461428648257175237772431519235691402822963713925923660064629515669511232186950670660748954843742634226301442173948986792334576030783798960890289296591721023352630465125433559314671250795483678468367567443637369740092858158992322695351805262203448676304378161537784497263278703527387701947068213973809400394903805322790037963211306848520813650412150645025347337618508106406895720188453007205143012329026846070878765897359958302618331354782277396625297585132738337700313289491921338016026855594526957431356012314248364711876632973823903117609574222378772539219446959208566704720110442126120217133896241141009768037445136659472812630501220131261205905766589141139512475891448090759740197000330257978097404616493473377935475199805056774967712173420824071546469281246530216982688741529618499578168779205597794066558750799900661299133057780186770853504266803476838406515625082900076547134041878747825278091165750428471219740586403523141085056087535114581737305034780932068225752213576109461014270980813282537186364243739066294538818126075438922589779538802240463776095936009811854188121604440696386088651655264477772271152345865436301134389534633944045754199335582936955103386210125533136082246327032064924132949562736649368337283150376798277601853606766933706072750989991521148794265307284093266992749685731662858846079154854456437338422795342366673120706409988585289104686086993170496481736624821447728987524883320074198213514779061884094890318025629622683619249978766855286012632166051809052488996735331833091673149418140516456963107913236019400912255839675950392387302496000330478582504894024861072071369303808479720437325077563140508351633674354437782372716665069565687271350568784503836587179268080250511788248042773780485306933375442344534836805793484561429455750232455803676871417367573154569321127721495265581703855105666522050941543871720386933192906538316687893146564519329984286291839643650267737350006953622429029100189421784576454545483549879015239958273352472190168104645374878391721935533439860726652523559401537011825262462843440976578588279973778726039076634317072976797751254009204330088086330986373124935583620433471557673282286381738966320804648860834894639258481606254968782248706398822201866542944268102139929549671337986205546763906466149034833827278511729258330304497498961712460829305314159527772452353367217900153203229025182686741343426083627052356726425689842041365307117344849713851785194901413412639265481580363295123179292392283059047822303904721049696221409810696425881080771130252236906732827616590640742421363606822748331982390686518546352739935471507563264858516279133641841557168834129962102434009926092932748961012853398415965750620579497853237034378864627139642433030651708944748439774897058053592871645013344203524586846973072331465701180071727369448394055288104041711787455047242998832306340237718897083843931090931191459862371141096345552679362939018082181036689968918883059662203033645982675625885847819615733135103062147914414092024470410442773058691404432146151785963128488688076674071946636018735248373976359193377899743483831238228024944799507348742770924719456760103889761511220474676695351156964582253568364095460419591427186019718156160264039333565754829509561606345850779999487576745831238888259766175867038116794686521381012189097297875719009906522565813081468439649506226345757281404256127560878289236367068163516174876112378685174178565186378328914308363685668794968462617469058385801602395680428573071387055224774829874496187527474001201816495743697576883416858474395244208199259122969305133912645897765658779782604393662681121987396802359509138713550036436939242605689432824817583741200621675204265055580040695964209195329732100809453912963103106336787163839394781385185614490664611772912300657624960673361363133013543685055868531216496682973971789711614517306127870150608531448854737565601086535022309014031734089923989341223310777296273865658208255031038304897208623066087456478148352832564106238899446094671400980604608225778633090037904454364887229167438927575465536808114815996665034555157950535013265417896730708606148018050364233571254573197126198610105503637687470816461571845640104197039594712192582672302646695596374076974735601498042620904645696442921871572360411593610425838045678110148071780254043770699356093369295152690017924460313037849240937197701342840551925179425817208537638845637232924820227988586547256440107064117369231703941351191062794618004177637776595695484260620240480611621277412085201414825176662296708242833714590133091318976662341716643561101464940505062066934602473816027593120175975011489029355661922073789373580729736759411478987637711413418613790768851873602635229274191696668841129884338159087992347350073412599892988465587404292371426803531954141048726406729629100160652791709058345555883353143253268779523685280569591322988621712507266043923555534116124867153377393384493239285121114564109874892370037605236073826830081735018855609054470094934194640670055179790087433986099749594990182260819356228241490568601403393585127302928116061650244706311928933507937002012143539010494265450836285903449039760447782893965368808381033837387305607621333095724924518927671415045316620744356895558996835557236587374097397887475085536892630221869061968301229432486184531437768267947647138312891416087750394525285197307230428143899420989435490235371996910798180878511875250676332827762250798937830030254572921765437170526777703750550798798031626425922169823054490861732423072973619557268874395399164868556775336488248599293733902325743447204790694087173514696522559485534962478016565622843050974869887370452663291232848747865268951048007264248017134698767055889612220120773741735713337317549694344247957816339516643213102378777843917524610060561904894703074441275783898360960914471616203070154985469523381396820309570911234779096489618922452842789265818736559954148036766527461167082440612224883118752509826152834090510287681030201547370805051133268391588614969624248530901592119201642268979508447230986747538646445408947159356590292517289786674765308086766208339741036269149189113691323173025107641752900841189662734472896194960743951328615247013670184093892918209893870199552616646566083911059504442891691431335513931799106268640458566280303426196074926965973251949890233303368245018851799481746579299099126447674088539181281339366011977388047075166360845653326562825197027419100066359040513462833518700741245746767979487115883023956799455083274411364987947478967106115689595787998759749499716782036243958577712554109035869229316639841669236641618953685350422577236436274662041396371438718915792834394054396916881268909210130339137181881384548986157830097217768680909400794539224866071003709621705882341108664547072887780343114058688150821826365261075712540204373860855465385791695881610576509709905299465859948053384243190752535860881216285464879853965917032163684716869498861610052157141615923727557844482348842853608971007591420201237561342849405074058447541999988754370598602813787923183322140947326201104340905191022871775621775808151893508529020963728496759249473224203938355579918028360583016648013455358397009609497031657837732838242809787653319821012536668608068394641947391213886122027375635880048123214700902736256476108369234113910348043218176230753005312102374721076214701805789332936637499976452693337199836183940357505008456163752817955837273636492172657685540041047157366296849564188361617583981344167171885473133350775971790221107804920164805517724038082249990579829284108694597242976609931246745685412856547371106845251156430383121011162076994130908269221562196881962825597939254911496854537705598673717934923248240005255616488685479216646473153783026554277429589715038909864493669890572222837237348696852825783221215639486945758137697189043646293202907743597352962694070569132464648927084007195815415098598179595651511849996087285701191074928117648745409917196413026230767290658684901419400114642710961275657504915864705225865390194967433522545888136865032713921570762612086764852861033377224232517560901799969060914410222384722532853205960465867771465650742768444667942403930001391741657692038721570817619247282604368108670218066805879184839082490517079191716129345676276349424541301886047526242033057138311011042058738120155213001874099431717323197240116315144878330900855075717453269217492523749887375998706393942326904060653586774738683045326360578327663177748175007320362181957018671274304844376488745157082303351223340224648989731515557131393693527190685781817004580339005900719075381780053487975578085799382192971820321990343154947355984527986756918478920140708870369187509400795349768089875619727387297061315526787459887904081270925212609121447757380296820216130144324325909381298775931014338546012220142609515338827412210440100779318428115541287276407343247555704470303047451914707083212422884306000163924941672217789688419243430799549479191490381993336895366351758234123613466239578391715966499740669361941988298052406783623924489343315484131825980179932960070546419069980048903197481946137732767362085407632265577644134048299251731272476752255803014650620804332272921600575479591446206266090877706456819130945060084127818828747455474488449254787219430985785002253673112938162991807634927979321506428849357667219684617922777264066046564093542952513823910006515406440792614765521790582121264296144810004907575085166731262502636468806357575478408715037607571938328597720359332440444559667418923535866339823789853677257368955721087252112999343770219526110374461512457741896142017114683427881363929161709225623688324819105398913787298408281662163844356128827345944913107893865182785840965302637717192906034279583753012543615379431135056689702438680099086325183098103656340728240786270451565994950756102987974269127898452070791028145098577202397975993592205643343105731634097554366921675941827069140669342814513785049120851649583637621714161263597525002378630566087101268179073782045960400466361683655207604150519767314545944575617847912899007694863784683476503919715178913224028143278775937805834635531388907984734169033956529235115961067153554122729815877966250636841096424061912069689619274431713554363362946874225740384749764958161241137532155816528049941368425024318529106890696478271178028640907774409568720501721866977572066117301043598911141274775532115871156467081446218526746429527006446139996038994776417417617577470264816699721723271877341822719793619447070139430635641544187644622007676138067549611497469398335833879810977581824202586548627351683844904118923949805136272727497303600129360698049535122487673456187876772995283765972715704021743496332690686867804719663622245102899394243703133963654956676448729368957078989218759102564887798435737370899119290586610670032564941102791807847637771279591380413025034417256967684924027114231541005017224558903775287334265445661984540943833665298604727801493799283528849499640143799020075221334591462366176189102835842686508269269054827933999617544185188052004097654417983454953817663566326050552024283427477146947462326920407878162055940267104854203320337010851649928149035305850346768410444109511631270639287796927994043480125844346130975822440901405109677314030265330776020415326447605604140093119228228511231622234678018351343586534142900080007398819911468710372493238601115369574933648499789112828105676666195152126483005377815277727146573223789977569324176172540770778294915281921795845410890129763287087227622047903407004335808861177265502689647965161189886289345063336772085776759676234883709805553147671879910377187780650001178376556308641030469698919418798461966960661017372642190256812807316569612951070723647332838063842767125315080626407286428239182125313427712803967961539861187167686422230990541058170458146368992150471741204153712430496353946566285629101701330397605765281942917497186477085104059753770459285871589219165691590908880821482206705771759504372356331974973667994216929992931023146156233476335111378371176622286767194450635402931702726259214678926497469382032597111343791302281417015642218472244546687322211934327846281990454164119341753424795819025172852641848953284009708352052914871612041781760954750477793460661927850118171684905377283958185684034063463483758752920868366807813381693604278861191546212820766285655719851993494888071674188048946465643818088046397132610722911808646409506208461753448123838830130814484441124325424850711199535335084608673008711585830461145926831825862404994820338078286798057729349000622282516596858191137316322380574556031138445700596729958992468521586916116015220820426005350034104771196795604875948079277829159318996078544816151566556725423036535140853821230385618991223920757688964287284562216737861831760162503482981140694666900359934957385523389655133637593535679953489489863464784540415883716524980223719973083473703391986264769078649311719171237555028777012490868894511617492995065413656704175243334961849358400034601539247482401741299230194085054312318926297364934932322623279199992553435779196639249995950636675823903327077715204690392492476119069804330808401462858431462041138854816145737012124278017577439933604657234102381059695940007451618160588364161881791972133371688053297365148007383999726447894574700078730848995550043801918271028561108277544177744452368005499839316479995976345788222039731443169726247732581506519451696588027956336423839111708337061648399298673888106022733096574251292481737080967074692126073615226900007355541071284673751358752029730677665563052025513308989362490283611355709792610959233114691002372245370946339870870839186626121048662868310861161646885660475562481857928833974974593557380111967703480663849758784422546429987239867311854277406576721588485469391310155272123810966455918656260982441470874115550335617562114099541300986453041077905789362868660168012589608853791511212575377799032002383750128657496797009083407302712313818668220980701109816199694631705182853217636003119419976682650880716598133376461372187506164895664165260058960165314194433144138641395124698267706435881962998837822956543942997493010670120610561228451306193651216749720872356453909129845891717034693845644072771797346916413065619360893303550668417971736183898825808110855455046256989969284487559243026890586851327398796715841707322923038134148192541920949349641840159177011930834528832999143105321836587738544805607117917593465107180318854344111887135627576195411673147903881989000946848163072389755167185733207894079432881374309591000295993506186633842804147037679419392545868694937094539835674715870911267896621847546298789907169506576701848276270461238195526169956802151904220288937039336943105346930138051060449002269656872075767741197194557980190967957305005619090189294758479702475607539620133999348234375741417672671215208358487735849811508326470165393143004643495426043459845934500938568351143260622707845855242516174491102944736900045647403667364200217412932047436404481509055356585494285094383251046882221870740501437994165735484386534081402136826989229263066929284528750719989029491198554202120666026584498676465020445826140609720387232194720357028982528278958957174549274357941896832422754800789945892258903396292579398963834735810779389812107271438131919552114329283393610996965734392287395470765717301245700700034863342615786474964437085933708328342486103493035164136190980740787820057194652620196128039453285562360086832505389502076167278770918755276349093763396275580248177737356160388362975712513384600665235359543699156565263566909107364571145459559598028813844244464771480292874686188922656221094259450722772411218892928071573065477162094640632732620637441154256604194480749955498323328819763585035357174239419187217574931668132977781256306362338250771262217435403522141634401858163138751423245223196133026398089231132327027069789286161394781112945662266148780753885551667057313129463436069139925140385010165473290443102288123072805514993871179091257748382741016319246228049333719617186331489138331958004675475331279677274978049762435813838494267584989253458187727632438983343001548326099488368680573489509020505293810684443344776454347309049346414716912960740341711657868611441757017164364183312253064989161610931696729670011777349974362789511087230794879138781633955895820959235823010643550263966412557577333765558791315980758762832182896865195471315343343985098068312841406948534896130841545251421999076658384467653102194247103024140665435554031983912194357751554557022790225978816868124562427648906324287855163482245241963594518593059476008945235747625611089763748526526309627202064635287267285088682795598633016642243592958936198637139696992961311499418488914464069908493555567586542145496527329598929977462388395687108045938688302742353768053948387710683006938940635481348118068401492656110224134984523322535301448774685821423921493111664541924239714189595512537371982292807864562959696961519033248268780461855357387444093024876945325629620354694756733898585384276521412932263874563887815886296990986453539222235343437651886707566057602694381244577344397555269750226767131014111974332785671114837886327814417593201421564036710963749628775666382988828666876707121087399756370350308811970484413789375522659842805948023843466418524237131028310981887131607637847608711351791799775156544264664631746321797223496783370472337612058676513047925895405676025444616710414326955417825141615914366112170090173705647679004832967461253722128395117724581112288755518478746691103772204260317359772896801221703785836957869266425999947222866757253704076659574787934866155577459265355435761182100927426321679451048378357254277421092958075784738901617507979590709547168643202388356088201259243994386136366244158093040664093453739029093848082516710741572373118282536575206461995789285276466580811547683827940083270828199857412914873509585299075629549627694164240572542135661747309025684662735666204388168869025504608025540617473633192106988472902698296898175214914042219930932217079101949769242263030396174213796438758627959814975817740822339905452078930844821880935240476653891833638213097477506270959402507721275349778810807760351242054132494837555522883634352626058926430928457878021408028880704062285007183499953864595850195666778888622915192493466772255826755955736745776256612632395384356298127966291593733678652470546786263082744579082840996882964806663260196763142352921628913699948443910078415894638059033965423871330960470468296066144688907134942296594274961797893712360758112241812033264656638473159223400232155549279549564161331286258335938902333203064914520005378763919091153268806316727453577404357002957357628057114172434758179766263286025488711583091179015813266833846034248420575135532438783669597762850088898168387162024464258418433735290771712768261101481614099656081625834038757206539011123401362243982300529986094200409721986208541862190348607105743800968194353747562215548248062126373659771725578849532160218837482879119346026416977369770019512218044380417664070994242602654527948562754022976912975069640263760130816380859645445693094012539766445816261901991066915946008630639398222288119554357198887041466452047836961888063538242578273907948223414412766396704107748046144401893371615203406182910864746263286436367537287004405951013578226045923998845522612947389407302912596349603358401991198883115342431833563337545175279414665697017799671276387499343686407638253406670299033987188658518325048696904263787564510299922863214419926290039606174933724499520254113760067547176792589525935037811725357573478397514854251330660992189171722003763169011367432090508038482256636520157452300463987051746221201433154311340597008680898044915829289406466508899284745632684156219094867573681751846002127927094887482706287489435963982752903539986240571285515488910150233354468958850784105272987031807476042255660651592869260123645503961302363360220130443404094875907946867491143333257418300228709716841462311607849787853679535415788557278552040141474587476903553094110622141427209830737408153425767565047697545827698785820916881582989268662802177492822017974405018930100418902578948288399686087491720482628015069568267250843909630107186009684754419731036394379099296541721029494770822658070775953504614562960895119892286612920669066853383737048627325676274975469435870882924092554658517372301417203753218078398922837132934392186452035411773166032543152574329619545193069008607637636551680045148809034078824480088715379231296686904838324274587055579856147903931547982010736251169112769917086748790478744786214220979668220609692574205477101295022682731759188490479401902024329544149356744847503429096496525198872408177242345301282885453963928800731667235986759630259533866940923989761794290369979595415350475891998988484897516061163038595533561158727351695248064366447836408148166570462303596607781095647875702340374055334906290704437176321709367039463604580020283488160599688277288893801026920818433549635847791367800009599294607681065289115008957535751227079265309045933888565648252181544179525461866657383227020791427719640510656558326752278703315458352056628511431434497278840729616188691779379263170532247451160879093616484783286468561717808309255117167164697064318648604518604247596045759231144944935495949781816027949290170504768940297407922360195671249085280954163862117452801577865952019131731826509388878728601970876151609082872858552904529159610294048423160112120408162504118580583075589906702363760219239464728707275808181546517739660392931670262393579903657923484834715721845785821159007509263189116238328468707966635071103343344634811893295942116475297092847847234157310108244947030958444748646681232580681830367655288068257716324266114736534288809268437612574750805098250256586791755228810456463134962791655342312391015014643126082426449644692348449472034165987828829330753769491017611899088164584576259171442430265809138820708953237345774885161349179508391388155267342115046426775410675175781323037959222280577151911553978137592611414308201745492645915542206262882496611445977964547527177330121162576196624141624929726761123656610770426618401159331107521635092255109725966828156171783470682619148246887218567653388724585880685766300654500447367466999818124958104648869898122988963196398455840315772981162037762712941547074622135840549005836753103594905881965629389606616328619226434780858171151459338700617179667426942846444077262579459603995159152172028470479262294445310577641810096168038954363021910386546495168291203104637293895916153638433297332669847487189810871633296346733556694874425075856786212300303698390538998220207713265283091632484968126326860597519160314874854681638195717647336157976663800601857115265297065565357950764474783427379935785933592981423734158276543454544573375416518310522948824897944111321140175844440685234986875162483606243698970997438717646964182815488649962476672081834651912035096179606992539980807203496141039758762141537045157936613660307345665993240324872777846264453560182889836616798583665854538040980147853268201780088627608797265159700421269799119340294206567082511565317476487092473013497798605374056476436813769756657324307556206008028898554562084862421145908125812150072559313052142790384855739536706921383354883677751756429160992846536260714212592536826977615155836224079871870737516473438346541612030593940936956151142420501393726612864681581127387116184985244454055509199442906983801601099294260135300432706371874819978858216158828070113126045527354594288482855190876422400472842134867028844836822698448728507452594926835871146360403025574819929831180261945702016519416620336688752596819696602413281112985007677725750159768966812202396377538345506151737949844185802479876008385654608371435572880646818537017917667887983487825405986873931865038146634238225717760835298480253778543642761842848158248331400957084046487152794006200035622144977525964766538031458307101048074384528709797530453728985372244198288790474826527893543094478038789992876723563642627937372871078488378024244082974004514513962611039207137278398171979937557374496752138593256648599132571811609096892375523821263322147163382515099873956825077147178381700863865949778434784358445827396137100607554206772841417583102018509507973620267227541041193160907676886342500030434891439902021216721446720652416684599129144703719581437168430637888868626054801666883306243741981784992457714040498007160557784184044985812134617929691186926505632912796584088346760210118969736447416684270722890883645936630925116851810649402721580031663061530912790326295785801306289891328502660765573292110068807673022317034602941644185829479287985550275714237317271621076125005428111279286136229281295364326933700730937109946522060186183329229938648844698184574486118275310442436600449615559562211955975497124795662894513348068005077540934283775454642085408590651837475235268358359539816140896533904576933808147667264702410746212562198597792883581252216354744761991588966317598898468782861034894957783123203317515892055396686388287628357433485836677535664616548684579381961049956101266682817976436784940608449207999209190046250770829301027328258782982434203333250233824698635507879671365484133186897127166956870857100602243507223536687726043135949488593408405913520648495935852577085723499911397797687273145925554291239907370963038359870324875823877863182587160728355864901413418906281186032636500222979806840403122940777503796387670211072301904115467183254805875512539446441316654979717620370638755803332533713233201379406214010575902658197956084036778514103249254478515634180643105860658499949067217436046654112580827325812882511532088190201534249260389655903026610023832997785108548446865355319451486818338081582575246503394577243504982087127759762593049842617546447097705422006417057322311136184509410199604658227351130347185915452467564210838219212032885021935888460361298260908566241689658861374160278032303283891640091738888394136096681476288788201068178772757388347473803037597837634180810917289567314573657829613224792965721253900647335980739153511171510786316562589939260673047003626408353804807926044580412264717005744484081846010735579220256219245068314427463933167324299703515912561803165445671746182112127486618051438432888278509880943789227166141208769710052732404804849191541785223009794922684532968865071363423971644079794639961645732304894305251599647462020093987713872374659217964592117546015782852837489156847558763364148300656432627799343730097749334150457047552945439966962996330845336432697504987542347087608660192725173716730072272641776937906326529919515360748711417631933149093891087453315740497625031474222845062131267530696579660713226682858924776925561237641375919278957505965263529522196165650508070019355986899259316549868752711681491889393029817395246902200372641789483763228649410949212664085411591798955815367271584413301727558452831044754700763094394553519176747276673323311042040169987540752030938338425152468754929616802223739932049759751388755896282698233086622590957689787678622844906152951516951329085054550824554850078052873626109019795342447570800717752624515371671768407501452520326853320888487982285148529836516399795246810289465381592566386796627720997507703084684531631185309136284315327440964045988380532673647428812095641684121383279585527308849341949225062667330595503611839631889968335260132082453478135847441783564113039034031807667069842602270582483273776871229713951751652251976830176817548794189560300789745329080409518850705136478142606911971614670524938265853129206177937809794274057521239230058217643428913936726119661453513817390340181986770442818905022525874568395199244633249299904256797080499074824468065324614732491978177934993957980372477962274143254805215908858823988083408789253671790561857426016176860559426573409651294744098046095532148526469304526419785020042278324046003407413558028136221899258197474583887457263714392384639001597865271191533429969922780801092137715949074734178499712163982208308511379178003361384296113834647074202928311384023752830560665820171292083497931276856365374310232937080066840939998050768704565567221878104274748624277434265842960095433753980928212159002860362444618657946003943142108523508699760555123466617632994824926231035512727625403396044789525192414905593984365819500218824672599081165148521422307381183367256211658132320406564931172705254387226319504148362504063284351212930919060300264285753307858278792694834395757265286726673494606957055117468008442190578341860829730179805226670516744217849528836995872971113159117861914309945659415240160804997769682998296814470718235397112547556962528777709568203871639761558571614203228984558242298807224481574609868634817656041742901167354113253586880469737522640127572613124449367040061507753078554175733005640657580237826369007472118252823492749255817971268131692730286614796959578730296687884984433992751088974487479472757363756435338158738187762170590771196656622724515847739327821415195160183092156451383516010049462082161258471455583220669268895052831878754726580477416812559099839962705649828187875615224596080297557900197513100685796980320771165538697512633526149886542778382659556285098965484794056163566651062097847547770933561558217860494377030530852077272462814003004782798501625295964072765970225779804441236523914302222858671461629911006369478956483754578338688720937495933603397087869526897791544893893203116344790663242549065323283647115310607946332985417502097344683781718190059557268204659496631118030373687719559250230906750253146604679911847546370519101509776301035004864904397126365875394062326743646474675508537484277706062133193346543318489484703410106894955973708733398869309255737116136210404389895843102708117617917896637523308436312201289034900410618099892614281075953518569166322436628922420304480831916986015835748167982822766807809657329004471515483387335844279396653283758108920181624400875221090177293042586149929827204993548311619823495790505306790795972774355761420061341185598624239830489428164538707969808833963370639246214069922758994085006578293846282017461066814143817157404230947070274926513878301625712101005461437173902505938297522250810906938835032886399687189465517374473938966266904017119787751182376754310112973445080884190765381827560520698730804478414450561343585657780043677561920241730866783295553385669752530259598036356627656182808155036217824125624183965358960354967606190932978686928353164694467716766409897485288381560621460966145167382182932835547325994248587165430303650935227969871938603020556874446293887111211190039980754501206066999864117128177117522852376158451595013634883001110636715241529476354336126846234609001900376385227358068760176887082539537853350622559834367832385079875494912273028681027778194907489953944237947299862179439633061216875917986250925518779470092950714654648273728065917843927079965263891891460141748850289954512192706820717250969180079013407236237663019819426921156282514120894739446040978536718324038589714023447540978233372802368620740924461820524077613627964108834327413440666131880618021243455979367776321419420326342514524333869033629109439660332171383791906612515054257764074355652034534792511353842960627000382770699095795203217955069376518502941408661035040120511435347827921782620344400796878630360193268358212119383030697447801299427047184977542556726942640669992908012366601950930244363022884024123783710444484440035226904411616684365139064212917049317773901526972007995658779398344945575514565787821143463932754646448058736645754302983781809419771463123628566052898365246264573445916487537173973406910070514903599335069622639110636077721475916906147999675478000075208477799819299701943899139924620286090054459311959261715760077672634163932449816319142843516606426631949832774073065501486156760482290047820230918571247707188871177590134808171792492415160368399332074106287660116993650912572879402439464712186351151377860565681341843940087986072777442990280931153730067402583332903767503636829049673866102556065183715127479069489650913111100813962539604355875658193996570735063020025788207076996609786611577736792474728502293113675751396973202734500426443519695732922951700125775977996550637971410767912921925418983986449502824098344174804890176342308758780113629194470400380616810955194874183266307997712101595177143259660790424290062618760092072139453152789377356057623417343090164588785992938317790873320373924452313824131470753098630625028948730445757593340096687396184481464164686340298104504400586879752093786618030160448709568518389240156671031349524601160823630772879363712738072101762209831095459373656144553516507146796113402194909338971855911180190124020278800644175408127001967095231493451124586869085333833282401434311125678134033169193321458077485330798271629810509219850902916435407055496196560344839291969404467660335435298410196998746932301800405371028093263339588979617135512758665854845548210285344706732185596395196731869812553032428440876145396198067239368641394304301758169313294163910851421152845378135164508772237531576288782125944105385937511631745420347203140187993195330148953502962025999499404751046436158159393722743796510616270698425627753718985253290647432659267787555151985240112188645337496948139317499829878184938164372115521978743945207396869815310154707114691769759717103698644134145161236691360535384492137062674669069451080166867600245364693850354161989799895569054985706345723585733924332680484183486454799840142938575882145331808172002514155788284038422327960484890036268915167659449138985001307637033490773366222497611457758546847938645432470657597528586406094698922029153064705864095130236084220893610234755445765097548470299211555513752985501864326705732737020619835343785272668533001545412570723832279233531716772248685669785791813702530452760552872184183806447793332498024734271453125065304406716399577713343230054506549497092140520757952569113098656486392592244617062751709473535790360379875803027962393910932506366926905656169913601820642226159849867958699111672841168067362084473611486405401690544268080993178718359652944095714096860459065083187000655575531206886959547100737847376953175827999306518486804472897804715530993155073851890193345480849155830183550024995292174123834156560804167772736951695158654834171949966761744961460549630906149106949927821034055176269693819125217729663787597074462906590145926087601331808073839249168918433439250350634735876378103035537291138417384016745574823909802666052576811369134147641387426498240534497518757162846394576080647732043406203140594125700116868287729033592724878061698510042110294792419372624567858993340475725414566959120962575194527634160925426560846886427722381425599543149618442222201863745341810368721046872635545655287606633243919934152812301970960287484434341787410387139951245987854338184441022174304810188772010504474542741182971724000275255734884422932813405309145063515744489726427121983442700242474092034449687314400131677594947524088077130303514145065167855130935937878468105171408824046785843055662825995848752684812485753767788320129032109376115047631436128663650447258793709187084768329216947377998328171858085530008797257194925432200370734978662280870434591071560574606913353101792406878495442706339662046927662244324060011194786463868449838618973276288633753975519414348747683443457138356576161827909145591934692397724359507396954858825721547583809047809597429166684067608840966766628961201888780563258744766640923935636194788831319397546260786711632968254881919507513873402941584029039592529794849655874560703825648534647642663004821830601256471488621550583483684372161120517982528757033731770049225206193451037016623547297321421955443723834031308650199366077320410843855683188483513999264648101968954913269446425701478182378123862453287016097074057501874843848629671180928784155369721074444223166176609449766926148889242510182915497828046150945148548722508407308889568170066414379094385107316983678016266698819370109717598078376357143042704459761295430162257169671607654590521000360882827387442444937667238526128307408925195839553886279555687776109097704826230446824305229933892899352222363795625973702581993822838255974663521648396588193378536064897049741001022549089721329130630096030397799276851209659791750446639507798820011346173961767354328842645347559338365529071737601069848570998937921201564156197674170581655935876032116591533647216914977883994432629675897442399966782975261730818836931471933127489259627495187381222156436343939211275759311374430508463227782352518531397241057232590050511564598286899763196253763409600659701579601510888397468316464947725804309178964802258486340172890022977935928817956903499382967688401376462732761352108822740006819436493763407341755028587669952929735721088792921612125640391769612119579666378547554899241099739692150646729369317757168825866710667937620006437251300763859454943131732562027760251277423789912798490173672235971768658668167548885222639829891623784939922246609606445660522446907035924911445623198725952029749457082448075044338077781268824885909980987002845395517627008964458197372712756722734096708404765921692444567026103807545969320300711383625753342193854016453347151559955850581082837022551241613675304969089213265561175831734487805402463056601484468066766993384666819165181435873705093413698586509461519302789715303520801024985861047431081909745164172999205630106689706226517948382871776248174857491645345669708370107336309242659611291079494829332979148323795245785773159250186947700070923303963114724866240042293253822963482504597378568894040549490107548535188149767701166554976302549800113246805729493105060189538819969207765007242516573125339629573280076279413300411627693817522629075141158320091744704796996208258274120466686589974697703602929757619332573742342057551327465555227871833366753944980303026588824363936242499409752656895304957292658450840340393229717260757658694468412215829694830082697463125382387849332894505987631652208398686817723930996817591916726180626852455709808247722787872975591815729170638090439033977725888389749887331613928879077057154296412272992923400774967429477559790767308335806071240368965763710280068122575575003517864387319033736548845435462369279591496995620097890827244192839783423315151504312073741993456159872625824486903025297902273633985870422246413730097369954472235017540638134676016779212067415424074038540362425326621629513412469688488127987442577415701777380613110730679672491062174174375789100594544667741980251471769756816772960076737555923801374732002477329586710534233844356781768871210786161300627637487801506797879496611356673335839435035059500766681212636801135835252107152358601883955851544756934313705806023369077284921107883769861498547047695185511520247150977457664698570819211903067171224468795052477425342722477616191038117459413214936707361573923596917797697218573824492714937834927054864594388250537040043383884395231745789983316091969376627836355506495609625646308791620568082798191553769678906321294218901194919341305146777974506556578242072933576469897818500219574563955076939014886209115643156370914970996871124299650892527719192716009741419336160635865321610613432241082141029383167974276313540637947955605972435687515987600038499173418503019545575878861589744150168315311306550898827441803892579965480683345458155910174928596062396063271366260811098707628331245136205532551515066838848969796552675529290727292697834793882904712041270060579025928985334597479178402099500673495522696931934858740722535699453372653283747652296975763119019112723207047547422649205497755083442612645069498019538770072968749301978670812178348256280465659854567096738043582429925740745663184191813324728879881496665498165173953655620812194712988542046233486592625829241165492243197185941720580496746154202544310661993612632458716931690075729705808351836599969692057945943386240228999452532094143923639734869872323699366513923682105317054511769764383449852770990255527654342942270697263334089918783703225007361972747545700933720461323311970181548311832734665802492350381401839673570647841271898831069259902820479533368472562724725562613019685291863451789931745911856463045476162319917098208934780162478658930129377721698343743102253116967959191393469570401503299255728997336678292101819427277862006750004834980692255407070028651020989697947393266661164907137953213960642224353453544321678551021347222447208083621963671954216229761041141994861274980165917325820163642214491103572114663156353718138161458737657498204030132439897236248650717051005218982913354047761073107872371152185911794750443762417137274988432493418151663149863322469386025061285598940520836560968345068584503651358018209960841086130907691689010885920385559331947465894875421394110418320070672586481204168574242631609431564486822201723896315371550824463107727235325555828909107052820249753149713424938859112954274473411570555582769791234808030952982687300624088527485040276841807837224245317354640038832722972751183999081446179461183780297200204945239530146956799196210653011190506300735218025613475605177852037940293992462494722724320294853912716681549097523506835727614947939169964965941207528283988722185091970930727118643704261136373556124869786523222323634134273815350663919205525329333566098126874084991401583458398119067330271680402799865965909750867402599230028416295406607033798226641361161034864507918561269018318322515316539575268118330465615958279484869620204797482410920884068955977000515290095814002709570168009311194506724312595508177915858480402243361322988142446512974929918639042138345285123298734566570699801320810093293709025137660753414913995460766128190890744185555440576186841705541130078067550125684292276898686303455765702162893765243460556618458649857828413306858916535483464134998776412411548718000729598096649875981042003659015647576057495179469521551313955526023405355474425865698302619628356930755001559750956853585509756565457389499816818986784035913491668148812059578675806703743609231951649518597018777220437979124774978465183683584606013171717608714977011214387932400023937328955883514380059324849070299420968303834594318147734030126966319025043331142248765681988231135608966056519624052514741187478466215848065956591392855047210101034337074703898543270344798382409161019758477035996541422226002306547610915431353823898785220850418019511652687771196568471717991109707525919365642488613835392208405585038607416070046374613277214699315366909150664483171227325256043717193561193797293677418990494312663269914392568151814570240739912296731343051729992690843345075262425534359813278238329529497775254805592989257176372025259169261376096922183640812713869639115617362434382166694126492691872195678879902155817282155725457995162793391146523503240813858339540639758649182210273405633107897799939710972826444061706104384797784467550827476209601847755881173707632352131805723778075203354714572124049853165055306705774732452676651313291671128941816554178941295811913245792624390590048960548765559347792901554099146786218391075317197373672935454579263401587714663069314418147157860723472272565904361047443051967539217192448946396885425693501943880258249708719676144441351384521108933355633661521938481030633979159543919134498012665601376378865876140254747847471335432428152686662244884492110473826774631146189678845142701454413787213296430378896339502824412098358645138551156552568148307972315964051600795917104187244821925499858370000133603423574682414425410175446493158680596731210579399316936828831560260557048023141960773680015098461524974320157076666006924609975510539600835866214772321005775005137973011007550318101276417029698411342878376374217736603126422108734837204154404403134885561892182697944605542435761929011643174032137462397509638942233080031931765519639304224589263694938795881427159940706200988425097006609280621088350915734332505050041543362022031371073424686634449635131014984192512651943630293293722931714580165448438260692652636394273983539231213786631184095590550947849016042252163308758386001139944404457941881329832366034935885059908589876806189163819117423644154384373279903916468334446510243549383224167583914759694004664369474133225838185445276852969452912683982524686570621717943380690933739074128748684181124593172212548251464255032288937424802411207361722399256755391365148249365977038785854467231807956072036948651067367527433921514920614444053416813434777418704336613687374498252257501182844486482316676994625501081295609314685544126681581843732384730615740893630537640911947353909249778703822626912905959449416229695150488634939242796149323236908175969682424225252358145045021030799209650304589540322382934407178414309791356771794512121100464714186739874806217094722183213030066337563955421613912511944150482797905250716165771920082163701339626265716299171044940788274656484922448338601107087045796241719467272190708412695242087048951312222532068707339286054671202697908159920631718793811307948156258953126480426989221983640601981537097501390936188754830179029804426092913774178626686562853475003473366259090453508794943158875828500485801211088419952892136631841528024774739092435439870237521032261132186046326990708495649814977453273321629948842978814744377660046460849258346670947902977851845471693065994532843983394614394845752961445881357684412194124645820129720761232963807009844097760932783906042635706948891542673057927982850445981898119592291040413951484553095581325761533994572095491448846973111681277627168865006982720863200039515239661817730623542996955398765017968990557034924342586813015222186343453040208742457764435987987772123876265351804470126623149126848483263933948843470551512495315547629183558626545153616785258385761743752472927856449881855808951865814121567240865063885129167388947991071753465963616605624247717519764779682612113008723270790913156461003922917635746654678672263405511878848279005723405009539984269425288006015919596968620098066540427172218545504394981563986532709366854002968567736934653147281272027153582112226747212910106791798262033243752618952429682436543381353645475075807647770513030048778317663843852359522382832922736967344591510456818588103462699496111758298924924537225284308290577388430467459600824119605640565352282850962471100320963800179157527663095164382159774003913586902976984765966713366018035939151949398825541007698718581504756065575460692054156254412749809988356161698945383655932425736168918997271279179051982057124361720176926068100633673332190080470557527967462827149675264670347203893511873912888829067833299051296891836861026660619367984658991289230730863373498410287736770008703636843488934120013607096710256004028010789943421502753391838691868435972962341833127057489231429066320418148478546007848470443370396381403390710365250963291826663627937136263770669155503533828569616273817599287062396913258935273940889990305333066841573358911927603331770581738315611330803231390226482293703369335141414743836025025625003076987959682711820623854565120306573880631118451956690866378003864936754201824070667600485184739286459580447564382007957563498542337038547328264860975266555851390217997859361063445346400874105741420981214427598711478034659514157586422555693178240517287430159599095040491508918996396123327737988292101649241868622173017249255562118668065133976450245633856993785753817671957541957089271113519052745255136015540244107686118728147441982998030440196182651341151386115024742928609957220649199894722344423727772987911161954602119668346755811472681048540940473515699634831906379839263327209400413689208690848719827390580516625844038773206842292976200264899661883522178146093600498824740475100075813621934031703424866303164852278545460706747828044467093374916838143434376499165670527676078015070358097288095355676459812045328225549075367179291247672466220010849420194002608076757700042280317268796698805562421435651356312375835544136955511867862820182281870559894594633365399570652635736465380793697953081716144582989888000874521647376668319198769703946542491271312735414009725652329328508790930231404819443124799370322675304404943098307954096973831070646573744825275924268081308711090975461470952316994072942186982294135423431849439348387020474971774343317173614148414854725778908759578165835323358083431198677189762013975646683315251218054480277708795494161453285054015237062058193772297669663709989729562756962952692879115094270400648569379541380523293768087888286240866034509400814729152660869446542155925217666686943236263267165279657605353828576625843010211352969758473657164304123627900931353212072275838757842103842360780458871823346556565404145152855285236647054974447231742651557033874657420639906763803531201463316688317277506600691285354029565388472031159874431181532716407660816764179059683681267859178629989134472041803453788403463749716953542187072505663175984628547007531917722764236671158028351320189440655445404977175652376216700749035199154471669278739795975296657196098309858590855124758971895761782141932495632154049570953417632343623703134075846777048019617393301464180692060542973543207301189322362295295836181662060997088387533814103882903475832029687182190758615505349244079098732894618855196605869204145291903893499201928710803296589576016814911887307642927448789739305083704008733891476543630088905460316318467134906227534884659545600718601987371193244571142020229117649703678226934952215019329064494932382664696214930033573110031432504101777115405268161205683401787797047655996970030180592994450295799328606826059159238410192921837799959248255376576732376936683081242993430230710775169321516293972659325007620153833197288731137909618709262850816442171518691908719943640823882536608076524868476813927874891988243281640345022236538476537456144384302025482144649924905945656517419608275714095636797426915917704520936207574542600569463789686073503715280960054993158316324533949669634967757763226070711201367950733752502449099015216339852268268923613018344657610071178705707305388953965735657826707900045367072134482221831484318911334899653796078686590330108084102023452476076047775418838197801197345357118728725296417720753115660380331948122282550517271647539863101026428051699650697712349643538598470128409374938336555701276955492106766657139751097640748199414807769441827063826282474830056048203279663040200377906154339075956667443184454451479987047618938620619135842156035757575817247894576560044797738016028007998579667337633907190896634743122220378795173428262291568740894326687601735100068619245638710251908923797192325744883395980145161233544624156447007262660821119147847163966127800066232008389755589066038066609498119568177120098438265515514298398624567475927719924265262633177208200775231906740136711472994665297196027748934035802124149732851904682246903260431753119739900442039425423599315764142445774556995256571227555469896659452342045010197114006926387695348934712448203044294491313458132049528588024442198052500747783843641288997213786754000198534136644197574620368582345298627650538530255786704384809956349444143929274390118308709175869181593856293086670249785107736414624566768598869093610447982520613511052797325097212610743007576886378978032018586070182682835513646255496633657310862095715935253189115710520117768745817331925768144207981411506865116293603629285767089698706368041498374400086080168278868845267305260258907326439998136387350097431191880161933431090432855674948401965603481684264513053837431345349831310472251441989398742664659267318395760624619284834165967226908048843259380381921493931094906513548892881960472387873581841172175681945450563540221143434763431035403312735790788853533556756731068271863203445132095676148185404215027017328581505458649016233167752021993371565557405530708312488136445518027929167696071423908605607761099991858273640982605058570025907499184956328751324929423991773679097769572221005037774490111053712571194541389013168953232702806544339711671391800732963671189337730670939103160222040715220692431484924544699946157499667547353313089104372007709560158032701751160007548593503307800681062288969081098251138403497008609734908326353814471743953892783673052685216987745876765432837860552039110572560544897347870388029806592235751085126924595900905215399158274310185799114786407858943609812361968359728386064866356089788245496088544374970082092296458226210195729357375679102244527341302977256854440765857833405268782780010843927405164035366130168047808519052703630239517740121651619358755710748781443695166841002618055788651299121628000375938452731313223012672684908012726867531771435063254206335426546982107463286700635732979166926456390565470904464775199122472687754380321703646185268730227707408278861346314742788987181927750650722342437367908012530421571699370850719534100259456555478857581960618528108096208591570832256919011492146621120162334023450220425601704574861712945742997992853515019970115042241653797570988860261628400477820320888803348124029231869869054966167345645569561226671264403382646395021815960141713165142861608959431356498897527097575193490245451659039105558704456672884275196989542042523652281538531959285591312013432172160241353550097679361315241168873496329394035626972527498378596864808146505492080089525416526124727102134722677016800940734280750534935207003481124393442945565560012543410403068262263016458039708357186929432865222438767785334896933819066108186442318945025090796878293423491719379911270674090425981157763750062079202903799385480677098176371580226920766445230811503078599844582266659995165214122312907279670920705279344708908610301924966020269992243971940435053126434235057789621562484159259529522611793236715647253345900145598941827015500329929606098857953706623587553616210558251780075479403129775406422888592864452974709712605099430664715256142940061687070712247172094057821269242601218804057062256955300318583561515868412375095282655176610855229685049133109356087481057762382399932566885423191468072267679576246608644989680101395229686053347327746608292744542840090745057491464956144267657210443890117678633614028577015797745334355778755566855833297014848100058006528325953799306787538068109773308693995736838674997896558992841405598536701709635092981711537906256799898750504956872479564732583839749793497548482846647332308662422163218837456042611563736753163531679117972162690517686040878797908937666092406859220545165538235409455296397658899912825699764037141732025039931623084267123717010667084568986626271927025864215736888894655575300881968813156143259024607520211570229792283819903939309024007188197590714443822671825689065905492357017192439989347588130450440070491494450421196777155471108029836890689874798467845004436593637020896426440349163936817346315369565493653581003042095073345512886265984527000945559203489623381125706574143822966575259932414524404900797579833053259460840018151303092058425050372132984788673541777624101989899111220920772795683189949613244369550470248021861148895332336150849413106287787566338558803696006106230028095321275553406937467738355874079815806266575389505980549816586489711050953826500904897065563436391993995611287050611990487787121972579273892576386122480379985953792868758348148343172557082299562457203423853258549812976081209647094457926202810314695327462494886069369424627821664067158502981911202184865217453386044738736721413622229433683084233106123356404370757105042647233806270825108549087273022905690312160512959199368617726041933017560656502091144895042952613685413604738473185320211316023390967584231839911375234933304986373494230175091005312135863413998238802117891624353280870378653177896856068596133816289014043961512415391491805998539445353460801042363684490335953609669108771403087218319152385228284676312300676422431095799020463108188986553948051571616554462409511944486262793765346379186379138033391776171520578800161392311459040059379452458179740633005343907297470923533114330382778898536202503859099184281318541050877057701075822131740677234029797003480843481979116288179845727092421751248181860066614687460704303054630247596273430904936803872549589205336191376691479888765169639072370820984502287830407826998853515419302438610486131329071736659930475969980372892654109897479545500249934799150176130161763504522153622611751348718895976583072241215488104169751930393016717427720674109354265699482168511909323835121724734900637318641058948259314089077144418674583809427205036553311905515339072564246817027436918502744751644497961466430203986831515258179882231308973760670981158661473863664555182787662358516036141049425165541187474955422872618361946306068538820917591140800218464457751729443393023868845004575157881067610415830313404063763536781559183642254637244888290118041138521245051926212939941142169168266222591707426273841102224213509851593778182095045315378687371459360613410200356213626208074636298547199477005139066366818617223641004683051432213802501864873302018731970344663019437930143324406267997148516927544124956987945389462814196953871155720723448423858594057820254736707028672466934980068771283831986806625111361091140282828574723663212033484758417241792535764404323121330201804957014553630239105663826216249397572278193538695341635828609676533641653725755095183300085569392505224768424345751004376733077425349528469697005305562292878966415912051819615564815476475387307782557604027856310054217198968060006912870678266347345613212494036548239136953512539906847468214342801384902717040265795858351814276487924128937681521205671373454960594458768775840330758229708934562692927227177851816444864410460858335981841380363609774616822175222495083214915990772303203443050619784206511622893300897882907559087206096208702650685258463209418106627128293323521726292257601740921742165970345871235049270229323681751271072548422470359324690667401723367769331952945264761465099997029230162513896683373097595085588190270598460151000640245114894075236724969155781965165024567716506546467134287772266176232627604733548985215994026248414469472402422305495959409788986272758579235241678964144871237880855341013305671623860077502193231082947108610711460115609915251811013066326277162326681468402681315127503356173738408796432809158708527827950537032584558801148456861470474813063162645866214734689559298643840444838590774239361885874874067736447961212271438603554669923337517006864067324071494552235360273079526499392882928674365557899081662639428088369569498645950663670739728059990631821805253089876845028340454894022405699820433963561183621358868173647897820110401068984892093066301324286696134420503037926604883809673480499755671654179211167805663989488771275610577243389651831290241363682430740342227817073233845733094632224390253698431653029318714987969436598226932776392407286254756828438093121574657360299606218535010482759345525167641741523845251522917258527680337627760649529995871226040450217996543626708085900706176390464052089459945123545626930567629607315091336864274914149717032021506845383779964798956626937985462119991466422504236364997174849189243844920081593981962594148531742499754036835605466299083698264052931012051905148031071393815642966473642760140058768147093468269055414035903120390994267757288691921630380211201931422984855996187209394071099554298462610842544637902140887924697767315164888485962440982945344899872456655429901225240303502753462787566917541348260041480988396198721204323080250194791546446566949934963875373879613052786478498950777316863324348898335465562524060727720016647303481820331648395634218464209178033837669581929968571957938444783842192007571408659581278240802739093453531317686229250298111256767606342035274896059196325963887401576040577147095070058370885880027358307884682623295011922316918662816675818113714253863322631760767663531749094099679491864888615326204251289075230348892389330689730775116845333757497993113679941593987013693943001269199668456722678657829564774897958737057247624636169774797183153728291261644958950567300054767735094270964493411666882371268287766117695055253315429479482263472293309982973139052266512960001922192738758325856387329845093763769223641308457315266887763797385416981584291235708159751333386035993210237962745789939093787719578499066798293519527386172936002109339818544253055671813845143694816809304026096335997668925566822911477356108565503427783357482837052581565953479842670529251135796810053743027314245009593597721138442388983069667197301850713473617144354364590088377886633029172039850404511633561521263934244031767150546738567234106992273517832500327893147286727667844433622984600666953753920134118837220992857802823549603811529427068955020014516956942409916201674369876325095183448619749843591530629562427812037085658757308237715000010779750523802785723687938572293780853498597107844242870170583855424130212660385802946968342663444091189214512283030983215926173377418341461987351986122909199569494283013227785364440150140982331936417637086567583535320675754124888247532925159775546820082954220142611267711310906063931039236402517902273004325931226760834892578390035171611064732490925793881389373148738678657612164215383671794630515117132826746469924343071599268852904301041850777076251561857910428494456607737603262407244132285559265344119662013888420462138882474419691793981469709023127621335362428746171072784933088678460606708820332368076313843165802590939389473279550408782695705003204568976828511191759571657118668729996468864471094634477946646106639295003976332799408761403391688733404338075166194482882587207301223662091647940605081334934336266141194060275601081649505154093640405410624646244279921093759977300053447625535019807142269163973707319706979328469768092919619902215654257309322499225246651423762629004942921802817209124105875316060046028647664960694033326575637232672365434376282821321695377420716839719250877168350872658726939778949652376247041530423413974874259700897791834231831436414873256000773316550922154410094917869599376704166244718032497822498381776397965911493753421799078405328367490858506062068102848170258234293932084686125567245064299274406508341602318647271711063031008243224358197349718344773797489619439157326019771139350085999425924295496004956725652167204245511495826299783861997324639686153957492422913153756477035796425872591676373004211476148462571832459688275565826922066304138459906454901061155774519207493555848162416309236049621635411841054813959554548402487664855876192767838775362580921688071557879842442005988447912493673368043591607736072115032639705584217116810031984545054239540149900538221989252859302886534990081417782275865301902750218888485614508652688346242343665412035004415752277951784093291895564765693228136419973585619550339721319688847094490379062411661342566669643693996439412259698863154743254642927096544495417293979728587558998703714854578715521120223638063395555498571227004920288860183150198287542386239852048318750863134329807768351857812621314518554545056486558792940487334642122202794478213994412284287350588975687058614543023644915375085791708004261075490018250229567956004566299279307079569675016568533234202269968078191970373957888039824114858732365588591359148263698733767358168653158050444456933235049999886665051454016584643319533062651910633302451374135097553222968292413604241882114400916793471836085475714998243582671399309405137466970174618691857851142194464799113313538087037692985508374388003980359159203317046414522801925464769288516455701148220316615658460744123336189235927882499716883386591058016026325658327572835868442985599762977720288288516553301431509646896128238627712814965629926909179620917248652479956052890318128803258871631575628216059804312570929638419529954082828848411117135489103880142565347021240204643175494615660689349835734241508837051239667827243398174857752470893066241760240497410053911648512186553382759190354056141881205798493190270651996779310914553502450909196726007372331645671345677096271017446382414215506657569099222566222633243784980905153309657479512683521529476858429947596743426843679327875029638041673641244402320370827661359018306392138282238854325416360034084809094968578266145202400926868035880850495542391808365664878175216841595837615382186942858348154263991058855084414660107096879455331946387507925093622998696101470280631783104972948501432579868261004657115141676906206373215949189094798782774968241689690015028498884258737637323652085572451007469302413763265860470855013620192612945255715966686629778204744721286348373444630532639278535790427150234505444687926597013609151323801799423479025214037246229038377009787100383782868259429540572617445971483547872552926582584402370284292289175768961982615357332542539230321048464434524839347832627945248159014285470613694821935925802610848343600088810737741482897540750393828756750054043049072549489359069099556727639670203687549833599209529183866634088692910415430354451340377384734280497022253296050173848752077488929844183757934573665981968684981041805822357545030678422212347333043180961255511112525998298929076058166417732991124222466808998252172280641899810758063085246177978998990778309487688767467523212711120194222620481798251062403644687002083072134804575991848647685760861594439828800849954893982917787398458038015774421225822773546781846479096684364581722439808574573195796398302308132588291881472835104198060936278782821783733544531213182893449267041866305044336698518752662142534881986857398969821623234022532308516224460864213692532672247351868328436585560088845567947163725624454668093047756548404408160883066110228668012601789986234607134509797829004670950181332936523948502368226267498717483076922562566440637203736568792324119233733970962890355898186593354018787794050167815289320714353900734105582639608217501025620568377121850412371829274320254359956760417086348625413488667387413812017887017517774524506118230676642461133324967186823535579587988312854489465109175365005896978721811091128463416606035149295363381290215502647325032044831146909690836941395912063583457598178667481146244174215881195416799911993778085617177817354396539134391734316556341541387220897955470872012348161622174517486999442659659261621617187923455834173961639738160254518257070516375974049143603130750639326704890250707053314038944839092727318305600607618268554033318118677421330439594227218235561207733388803589558499289012960923194880312823981764793057178463543044902246198514038783938093603979859890584856883785308531726977277809317398585049810644715586695711166180857957485999885499254991687317654450201543263981078056346073549019505887268575854507155473042973717835743115301721071527611842520609188918007097332850058918661213443235158768104396586696509587854163734278166144803285622878987298182263463089957564017401678794544693561946018004327011565452049133696924975686056432815255465499106926511126247777543805870620784121378931017217237788063482978710532433350472484050938789270841527970379843631517743122480795227429950411471629525639920915078161567954294825327455241349240820862194333329875587432362277753732326323331491946824403757392411374697440877842760254869794223420267584186853394824653106174991992874014989992925919591939483726391175325065230463742578016196855507711340262862015338173421872067804690804918128109450251787037078944591601159116461736155847923211462285293818600930408803508201546630139725320177174037010803724666398637112042695229846646948658125131658291634117602785362281862350024343547529960452001746048472438347816356469690832718726706322996100306069116603458687059161562127159070430429964899620328133225318685842273620757840808025561285777050184858609938300804522657363804375312596089867309484672606657129101549797458249772809272437999779091227056144995400116171424735201018438951743432784898818923184588276832426883392364681628286176780530811898064576132847318117214563048100258456349999586879471054113674156646995530899500309865459434341056439003325219241912201167116872505222408382241588465014305723812009790970454926708435923990188138172109064770886255910641780468785480838397952287159806194127687758600758252117958689354996168928130082889591537272425638876163684012866145074205402079213542739749689697882072122589504303400808355114262508404847299409537303264034691516676891570982783781069709227751669246674377594819217217229614921555550008537341538644602574425063568535730707547905148221429512104817415316780086138634179770155029005546106160868524134024421780854875773880794243915795361199623070565010093157731187497191588965109697482239469865150949648135565270954228511144948574090828706333484370673940161124221384443946966728888225881214853441965392431157626574221772208667637697549876682023935805027859293937130075889914377868130298226980551653022336562695544279897692128249003458918239035346552572080110064694793143740969229044605344206792573932337533415558887938445904264584452875207989208772190121748613468943861898178027505444014930554775967924954635309414925908421000485616593765714524793534458894596384867537803829481134481588122105297892785345771832279937095862860415548571682351593283540433239405012908714388949306280478293268031748383415566020680607666008411952317263922688722306530789461752017807769953204453767579320542088084717633994637271652442737820671311790730612728446886758035764854434514118002424368292110110734156222408793921928724923914383605076017381403293660634022544805602597989639389913214812201631204812758702067123081765901064640886428455899356601324058338964144248108336722459084182434336897157093554898436845668084979631466285140009540562519269151186932693702586724775859113722887464894229403025341672934272874670490020631936858295777167388358695486644177392864263710405036958956219340349652332672237888671755545835696991015013680201913411148078198398839929363828429523857564578554552808388884247709432030505355832037900787964465587115014238509528183622462670195117781436005118009428099602462497639076523980718452992283578517133300333970893936691141213075439171444386026858957766850242478152264107315658012845035380543476970243161855786309015185337002926305983700976845757738204765956994677131600024650069074124549236467296083823096425192425166897625158847293679521451036448575185935907657320449091164807023054805143363232661888190800795861382331057886683722780678583908339078210297421742630835901288377207870583231245088143327930332955663442745240788253220219827799332086385200811291501722561052283840770368477017479128451868583405807602633014636983217558341370251291903640922203754011203124786310970832602368103425189322901908493696251598026575876432659900994059501357266754640278157936150258489312635605145762500106990058574676018408534493915140858276209233119797444924367965114372700074333984652392311202627268137034680667812677349142460366601686454010208956687193389797502730725511658318164527484788450426588405491984251843355439094026333246492830738526975942376795419555674296013412408586855209670695364394183598018317802432864846677641543908718453727606626951966938863281409842350085732353819144971489411630605170091629558789530742719076623149020518951912124303901100189279717200018234040076116396568025259018496318240019289728656670584013642971815058837786263202821676793572734168737348063574425923665807834080743297074343084118786342338109023868305407223290489365552070577289024403741622269653748116460849229020222236401583919559666596338578311903114381963038276194109862674070890993617856702101857983049327397846283792992763467562617921841762393079665895367312306698110305665998710242592850430882714027969879033968845389258828598028961375967188393781650453445922139400882009788852291362020211038249691861437474574569112431356757148979334549865257168377670132842173367237340818496416563062855351749881533093910903879500364777801967225174487056794442441394210709236011916334256673957959253558268983216615994238865763624065904746515601616373017678193390227133972672367102366991386529284986375794579461059735524894175036946906539359096644628440542412509639229777792077255809672013719683125843689932158571576921435892783439204349067634074248188344741878463241150066359615920657544448893395089223723378592207184180077320754370067741850249472376116860901506172933028022806088129332422138608005195121751302656550399337936607920281018771825910985235214498713175174847331838900368221827800284619625960166960148891394967907941173724305191260805069364397538047123270651675955785941220271756457273196610407484444952322565368127688426818702694765546871236184343988928121505745489496376602091046265758615181564090045314031030707916135505661113818687236958397563245844216398406166503312586626632877193613362759335276449769014494072976707537980831319832938268607116781543971140613618905825564488801815244400206523277382903857479500206491243834543509081830951097303964849129267541126982974449477766101511933387159985507075462102221759044662212459021680465587178870849597649399018090437427537093655320974677431985532602808605172074592274026217496701032889257668082639310143624465735453684837588607263102441831422460659200600752036240080843428904276124115588202082414725056765268932451811066706220400829065499491417433145981011617790147219854372051836450347030883567091168378272979746520754241323576669342580073395800097716538687749334094086194278871741392172156044021302584634441528647104407741597693927763185500525061398224936436627098679385989285377244593754507587582427382220702379915338862261048625784090072531665859850493700121296070997038243827991228991834099928978429400125914034087381476603665859474897632177745485503060506836416440787167903492871883869422405117334650080186858355107654970925468370409241986862425579808487061807326948244597103172608332460938135994321507215048768075057516078498471431983502834312243673953899776951576530254495868795816697351759210577013074379109790738928472182378953719830427172908012688732336228146000359343049689614289400688982705089078364083773841105733308775094632974238871452032640366347850409044481120721081099880208496882214680747536280785244640362295550125157585220166666634699178541643546448234436796635802659389226035368390561535271468932150622974430391786188169970838877863723085474787310505436312969055744165687196861912280240136458168773586587514748720230730090553624792633515014293240312173471437482756496439420127131787171706503573834049218344072286845173427029360851892358582302593334271431581048255117933367739761465612513635910242149053996706742495957570295007984905526690261437245226090155474076605848589681221514122216236296413917438376643107943941091142952339983230126778658874901096719939231020628647091280931959431855351117301015430764522663713747122679999892199304726566001243828646259276723473057090151778012093074887882462206983409650933017470611101744228438661652362868176985914381016015231102832452680735837787670409790422419492485593667588290419136850345866574442226210069689017818516969467339546828750744460995111598332455279882797687683577008980467495075716831596327194913220071605764680677289638016399089275953624842587129094927389936196978071989840301289152465364162468717009476780723522424770172921299865842327233954422683781842357421590699759635517073563749593711174334277815908133523376488425283208993028048538046883926445383242515173573235501541152985311084573434525100083224747771823394016536662605709016467382757272613095498310189580996838893371028626578905002316768757041462635534461460853366713651503227936443984871650198357459873318982361368013186533972026040976423413558807569581463992893557499874688905665491295661864906017497724859044594197873338438518138023542382036869390213291931953735114955675094138473562023766307265855811629334456851597595304055139391857651606968508323215162784007271281068768281820877556444515754360722206108987871659739793163949523548475416697077341893234935684751157002907217777995121003481475480248258439611866892148139522981179332843717854199009228099873265210898343482208191759230125409361165265688397817165078839905154662303452250220876357046425258313683591802380486364498581611848559782554969809105699397305827693284083468775276097171012615002561172782382473777653160923011155915079721578277717201897028426465008384988399669674088678298313905692556076371737822604373261533496843807574111244110454270803958389151614288692989618168623294918499607520318237217761129978626564165216279421245130192455083748434262983756811679065354082715210684901894375480813412655336435978519261362788874799179255606033779376268304531264931211862856537862214185987866672391907703236278575208790295313798568843038869787869424011379556377814520113857936757295077163516595173967003505467184818903755230862603773755541138372461175865266180121222045058598598949572240907485035421503209926233558478138011955380329444027608172666816387465671754629024389379216505732784123726714831370920882536254864798451691588554168452120602561286079220607461710823064308329118346437169982433762138855264680287387021595325804804939011754961744421881807342545191838541756779282957363572281445697951836295227167690766392705706532192155823824746245243482619706421280203843453298993607188574747087714284833335117822194108997731019924983700273368292611773575340709045502135357739138920620797569082911925718451652442839789528351526272318847306463894265600641133492153163601910657756418417495598556420252616600309011365430905283650264889429506812485259832091179876509684584014633869762110251485551059090826739480948058772566967062259519298258161164282771207903742651636146530545663732979886972991847737549230558605421555431415173193176822331943160902339729152747134446478089855660475712259879314839938021371288040548701370166004503929719453237219526385828160510672954146496105117363682726823744035489267779295804135298975780162697522287597770799540574882664015438132139261041366297105400539877345917561475266546778492599124974456909957718451890261581440385043504941170066504674836447100718844372139318203495165860955319509331259915749423854676398612261951637667247707911109704577106258733310235010149448554700446327086765451126112228363122163299222738945415439095292426716341335520707915874769409315736896120984762985569495508699771504610342949731444931153652193301240671920133620916752599122221837774981720644915546173801119124365250848007051542313002007786668813915601903887174021504589625863793904376732720540336655415760376777379632122666801059729071151630012762375829039152657314549110501506125621161821051098104822323493651319016565331718676007097594870975077291095649178140081563525973089199919333630411477172659999679477745297498172880979982298962588644797640319605985437606038442618590601647757193326860362690557631129198441474628169396745309470358018225781024560418256973946991629960641403650086699605639335250704519766151224940108217761115710515124927188335629490009544553724998119990674139192651527079324336287528176345250118385844086440188723659453727585293579436979621166669588909238119435456625123938089823492073237039905296981508324861697706764953508126562151498595221432899878842515477381162372602030544106715563368601840518828558197432237543555003092854344369584391807679518585277570855454434070053935551180908917452826817012055297138829137917109044800771236246513587072982130455435278963953366528859423933862483528546249022842331853124954860870046009590214458906695211133296102997754151453163294656889228916425385305100691531912292054018182255759387807316941234845361542522616869908251492019609771040424438755056371247377172016434307536485332753332547307784369348272820411601994065245793799870961960430653189718267830566980704560198495342212819644857455682848087222861014759529473414235535930364165060468672884342683153085601857673540367189235739901311355736126880004052770399101354893392437714562913414448391515940914752048047129001190581025216426824073959120364375987838779706092396802866108261863520836618086038571712944517139880439886582007686709626056500375749398976547120148977997343761760216383389340340939275783675765801109168299132504149378139736896398486772106928666681801670216552648717677068422403118687493015360229026180783942681137393328087784610173466201075966575955141166193511352850154947763827710698480573262818832795226172371752729814618765636992106352455501876780299969924032618230243096298281291509212454009808193339173228863087118585290526223919988150252929378240936679385382668454986194335639242268330879406616533885647073633543857189367378141278730908370577733315855253169948408680863106689570675127843683411142031193178619810251354762392068415796264029644535447560497950614949399895383812905019470450987931195442839198318734405773466443615134607350400942412408531388987073483859189435471419292614795647733031212099028094236720480100474161940745433799773585175065605437786074086537120855381462732995066895133569511092301314365414223883300637415203594901890423458358323245707804918381632524580113119054758518819138208842880964046991713450667487039057653808075025885621857324395538853838735431589601180057744508226257729396748700799048954258852589994570912607752915509193785377922619112111919584290884332689952487635211385759185204152507524042770545740840665786408393258916359068945943118429757704211636021107294997536662122986648560642357768781769634817522422171475701553122477583169689197575033060572211780907511381950501851265708065486805487943805216680845082036035411560454617596521004749587514906125862619287210670269894154429101317443052198947689954577754555618584981774206079684823185087281843153134030445953902879679226865308443993566286416287281615793580306027779758837882990365628486688633526614211249350472595445085776045313463548791970514337786795730051340798665414474186110956869771502227568161063967183487177351473866523244964867637232290121065235464280074707746689963073591890323497017483885486301673650955223233826309777422009787045471122804884412640429992355037368025219112294856936228988940471481294343460468243641919575548937761933439710743229930035242528632119616828989942070574764899161252577010477869375058170955229869429319177345987778378296139843657809739504975997504023993954978618597212362981996256345979509636138714278098141911754120836073060917747144525292354642014717052033831971271728751585694997309459541951922544676280274887174873031033557321849677436484399670533692455832915718803056518978817863773321466156568765913238052104667898425244637652535111481778092778409530720030084286196387908307982188865779403689016228562076101458202006111690623120298356891726791458107047973059870936375369811381191361373204280092501618475616699940201386015092843606320473908209164679490646836306568753726393439704006256569676016857780732909994496557540804977069493894136634021394281680641231054633195396020686858250103763055666327541612139762366000345314093880154647633485462807409192191669676229407109615583292688630916420826157730214958979722386776885650710047143295355847495624624678332845264179235251904496533447096600684227364138358591137146645093229195983558442927097228573139060342756370684273424682556564912517226458974830436757101718564963094626356190504979095166673884903168724890439732285177296074304916841803113803645304034398590558611167701225810324220393602444500884146617338207807348939217774608867299128257065065967620780680996383042021374177998813558565303179896692325460787863732681074203700086220358203905199414907065191034912418555888206152000865751665531862605024431322065287048835713754811956154465342695949231032981609344412753059892842831894484531981712365842448108515758999195200875451173762370210570086283628391660572444116532113724496772514334928373547323574617425615696786887256912976846643952587188412614316601432422594782205245988500997320433911312200973490013898522886839998233035104825795616833778190058233724073566744407695275222189266658998295907009998960019376770172671323097633337114186518466275187012172098107910682906255996525440852748815924095624084885644754378693043936705916308746920470009117987875946910985340598914248704956740581117430769240206511296892985813659510251950555808137882973567104425779024290085694001923688776374868647171430658944664514262646109799151113471037924699376848124534556942421409699450201558462288942089919963228102313540634044000641473356045657105091858857814325901257200925802321970937159382983885430055104261826623585638263719244288513879824566107331447456820553169328712287085053515816691041690714892267723724588432627887731284589497488886621692439210644777989076478947584142638977523473506448412680170740487047367863252055555038895017226743101814245727125379481007834680448718670173933044404688221750040605217403160538426908002124458097680098259377845031132077637614133780652710046876781357308490375712062537348344033782519289954627184350568277110017582162460516380182062747177261020069981025042741695601163329123541375126768297205836906588660971661832772212063391264453753667020836157476454925273113925156651450952162418383278815616832428968744128866458880069698212088072932047638949901006357831658693414757326542772611566520356498201526840250742474642376257662646610948118554131278537690239420003588246344776181555819541802399678012240474607107894662095058496384015215168299985464024215124224340742668356343247917239547274377792318384736930188953516500775277678134337532127715775910528681534076193674864186134084638583079781180411701237890955616980418972978267453776986939273709064525132643079000102268159621963729487117897957985754619935722034387499771985336489492003933504318270968161092383338503873466843727199487040138248248358104988008596959224737987903288862269834628918596912937707363258831714533045500611532406124982102329663325669345896278816640461656817363504537479596873647910190031710821540254821212655191596684799415115988375995451422680455833584014618857760885805506844772634063479305243721035066113915549950863715803963191252016357882990856782218203013363406383134870526386161098953113098841582782134845425148528788485699617599020009378702726336136009938056032946725646043586863180049207292560969557702676783184482459773147787162363467124131075910874369944560589259689161404466166032099785513421467793979030227906305782477143113110147090623672884789932215258298580855223713574320289080927711057634650439128327284941743129887767509802274193564925781596528659676584700417011599715238719355723787694620402275959984187524944467331683111151872242578406123403994484876310903931340976383091451463318965070865064157745949620283697190680340694287347058455101822574769660912415365666420455896873508714576649294699005976602654026878864824573727024293201343865159068296850510957958643845609369110805734460268768862334866198407974872832185288114690344924121625572367706405670221584067844080986524733095947140395421397652992037266338720878584065856276637585925430514704639037371351779619052612003336021495213041693532122036626836317944845189778125009806972061146841286273004750389193855247416339712805695615351308581807912028935944348012239350789911695495385330973048956079071573741819208283659237037114461542512140214122487484821871982437762442497369340729833088010695263633504125592567174740457481870331099592095269356038568664208298451275238493687832789885199725131278525318358952642867697576038057456644692551095302546955322202823577897150408832037462027807095699543188878741677062167223801218925893583036114937913753337707700194879083262417946797161845945466134381291141623603953273552372813633385589685112700120355068493055585353924573774667722319290614200444273098515597354615521630967020801109412149051285814023683292736821195775968166807323554427501175077934671044579516698862695159585259008858152560332276583048530640096920512365690410594547598678402270526217684653143843598516766857972064134649702846272410483303983554147337851246555725259023952148603847036455556004400359672431626168818874885988574515071408526297304514930887681047864523599733117093824310298132891308904818942646296066667320337568812057524039612311983225643471909417271066149331859511449022138763844526664624038027519856818919803104180328899654552981107406847151581543761601339416314864115736617531222145053072378663023391529359013924221270166917033576978239507914138395684428156985224006563235954036185482626799842212908988403413046477301566219041939984304700796630588033793062881810316058687931320781039849558561754505255941445852422299318542638554584591778946571474075397787561034441822777906366715370327464011734441177273790329635709471164247154463207130677766518257995224174805211349076414458652139165428671047776674565767172547238709038332266687708744383197998047696342432378626808260882912198170954381989957217246014525779240307855910517509009229467483621859592443487857836656308394405167404455580875765905562456259341534129148225270341922839255239321712631890655931818213159373625022201892277930387375165997477530665593472469916532162963747584300285482449841001472893624868391423606403669689464600983450698976573160209756133506324078801777744454958868216989403560095278410916459779497338047125719772860700690874047631674168019685196641622767571911116013916562317075999032534562191869826835521825475033112899777528434657453167358902347052271509705840583837081758126588357795195359282919684612523151297370110881934962951212917460715531551272506484250089345376116596540119552563001913954990187982232284375805134433899701709078388564941918070144636049570593390093735067900095152616084366723015094289976437581625647371385914393177861176019214310047770911271541075541480202107603918376014488282584423875319786811402667802119308713758261566478450623979023466506832777633926577354045151478302965667475599224591623630219168215097918285306172851890578609390050702278220574363974285750045522132455640467171449049239300573573781711080037412413589979215412519477724223595364204716167327812953597666783033616632609282385641567147291596623086236110961404270216836142271937202659460942826094933512987040765914095854676750852376481069596134649367801015014347376006226013329151995411309122706347288063650538804800403265319646811097668762978927289764045900110628533194547220641270484424773314465743676562514512255051528317666472048922792566295729214036965912583400052416055597948052865834332714774391829770448200976382059836471905159813848713659422425287517941067405859898218608116726090576092515162359162989977231554549703573349929182850196776541798941819566213228310287854366170516992940120261335821546873551832411017229354074639430560090895813606252658218311055097357709218608532898051606680337003330564555786300413242935211504694196691323676550486462136490923663285025791206205741231225875009522028930940655703475665150728928214440982572663484089313031423293355976614895132331550748647453686861439528688872628247027512861949111539680300062598627314432058824880747541253974326812002949659919468276250575221996710863885232824816486335384092457892996050794881205392494838517755855322967067252121098390336454917889937508576261655365486332602932036371368843360117200557812880225420328170014342635881977533888642367186197224204332122041278070306859289767884681554460135199680588436959478738694947204871927551902836033331213523377589985819809106955083963009462703318010037718066573890800247839145992150287088526070061970760084608758640454950141448886439759835110757712230572539125468439141465601525063772865782636560149472342999778926451675102342040384852911466626362997918889663611314998544382676130894177764319070732236903418874609317571810194901271335274804186465840695048397832980594396819845196733068391818855647264096790754012123103480920033541208632768703301843976697672116582994781280633568653265478591026556360723202525094499216640016584851027604672061455971393594008759630381798256152488826462423077170865926650941609360970369209391532358371289221649008254455077917269117164104245442254070521883181948527144795787902053444439234572082673021727800143012033135865698408872827176273656007227799774920958311048166625507257898031678712049993018089954515737982562473788969048144071615853999537499406059810430650123841975833996801166936767078560361706644511196573635209177595636270437474743113451177179901349372005992501086274899280305387099250017374672679086609753070223779150179610114908720431986482721867973670655834443937925472222891477165536105462648146460753251951984053261648897164660977265243928902224633575143363823297894400095863651182854623764493924177923964254683356828563508864718419410866768304630711336030112288859687320348688185604040859588924582331274994977392635385776320897512802723131180975184360187899674967325398095489273020596874129441605866518191730526702589736367459463856767725734293908620374742007610109800493282750258351899904240798497167889427856351538461670756651138976605734535173741048911013568631652466073443439059705611525518064965239605821473944220035117134131805507270308306049539719240673752015017284665865731041769812851508904016320663309962486617028445846783688904401252095940796725646863066813879815073962440949792719941734044652482202886165818868031423136313940749573938897367395075040011174028640822791017236783400120273573887854261315410863222386790268441238334136357621636768512441278476122798963101395564813687396761990226811761443776654971325559745063465843232422734392129317511638142437063986017986459563057410155049635552888085053055810376733697338699877592195382125530601503474836046115316745799798531298149432539642073640741831131078771272052073419886885877185560658521086402307117520115028308351997833553978342787132236189982190619508471524638716494133850145636212505065946563143702199721216545001171090550852012243636541092539186946911379465701130970594660168177188329689917863945308856347823314873939813265971418079023204205497906289021924273225923618540567952232250435377547702978063475830086452827730320515730239075789699908598384313352676885025714091742296640870797085173810199703531840096510006322958980866479680773175912568296176538598736878301602143035997600570184306948251354190560999243810504263978567583492349590968567473210674776403184545276007936085481767535190475644005848752693520925371773977679335182999042596292544925141297678754679799850190318935459888213628160169232376612333001558997085331942134308813540727771272464487330153333963597181468930654034729487817920377901293426234423304354379428999936421023738747968719486738454787861133659207998018575990492474000403769057107633403344549108483508715122813850847590265403392063416111605163739648785318321778115592166880567075164079134596630477515153800004268777365035307655381507810227160240690677873623236236779101105669734672926361183613059212620400934389973205946157720319089941735548791525253747084221961835694116332342562718576942605372797661755530888811444953188557137441929403385995374967697446917901872003634914270891934150807144125997152883385782624381106818198669051100776244254319587959797275814487744438529302102028264480207837655076577884355772075556387871936883261173341289690906533983126042106532452611001388707340317195065397159229560066147171875141576474662549427884860927506286535351093593896773993795502392680796849549751907588686946189853201132107448587039005561113196858738157580110156978610112093487182405084029348082829334829994032446529943879477297050986526853467512209841555309264430995100512617385611860397563892698451325637735194953812078285702734805591701892815499370628313320260279440887421775663750827345586416706596248182723378368221549886229574984059032117492044638715415818451257307746250931059209087933543205944125187009622662901485217913016491827964435320555491999325430219411581623457069857439288167737550504999527346316526707717730295898232555184414141837941289842952046358668156445905088427973246382910372948830079710703944798016072311321421965553590095719782713839123316600874741936486064470690636819025134091549297471305826096427238219923910187425872808684325267670931689131092173545265454162264835018047662147696711268245861646243426896173442066305232899231356646278247755796339243846109715171407262489338402284747106348322385804366989154592530553496956815162006242907335118239064272686781869427680166713657029697623905001722256737401409847143250474502032652213787273632418579145329018441725497505899643461509993147815250501679139110740136093715947671502531785034618124291873021214194820878520413700586625364290517106170217157565715457751389591654498664492403060757266704402503317136971031183411299833117064611869391121645388815932347421329462322373605423245754724311451865985415386441007887479954246239372201826160634944184649134989551681318381051236976712810868996368436785330895178465697584528646430356379984067956086141701144726361576079658140770942418667949630446551370265924874107312412302014452885800319795850803947663518203170945036899865604931803135267038332033724263844487103918975461220749459509960856054152896103208771418160885993302438526733270944966084765374176321649900422942053558417215472950031277888330671595404697459329014240922332417313387241348570133435304071835342966740446221636341132247969635272602719676563520930868272406414776119149574853382611502365436422974693949612612516789022433292748278209705357327838588442223255090674007015287740496859622780148442555553061913794949625178762090106015126810760007991056150975608823301574213282563189755447035827590009631734909941176119883823424516635467325930217523746272768565673972055745551704371946604328081935478583834420930274722114520340908208689227186893304643465890404457815000606625007424732983110732035170417866562531010203013808326209924379043439137658964500629034275606711875056067946275601746416802795747076836290268545815214153471105525527054715112179113094780385817347844233263210520793758786945302679102142133025230553001043636096121336485274920842175250969429430704358341623436567458465684922889235273296794323068515298325270067539409287330819925628589374401082579824623422759138289507827327330029899997345988666735309181191115761381863285585317195327416150579857136128564283591906255832844690391247373237744331261542434260651720611101260800315127782026410000532318927366421315045657104575142408990956454631483780369157692096239303359664729415464384707537349491069697201872239228052239289728656438506356191474056669572181450021601463879688408386472857950460812691613190339899595127189187867707667872320217425358489309372257981092641249332549901313881675194064014970287758002761790597756305758211458797889953740086756838993419891010627026136396552768282773023182142497838879194165579928539051017385707143900738674588729701052161693910239648726002651480723538785684318980133938002448743940209081417278194966989280945925564490112389351815158046780902606164379477646374026227119433760524766094863769879677044154654350450581772402279992840793488203775968845905125875184226395797401686446566500780463864959382791636392149999337793956672377417264950190145746494127255943033594204366703964906049120256847601114298123588708128976305575461381519006199110391526210914143272136644229497727052488410148515078634206597283424852044846890376202793982552287196454495268238478684448051529477462520216042070711829385477753328035218832754991796456986180816638438627378222617373644192274250344552824766046948666444100675453826006256698719231767218142085907822100385473868774440254465681795408055160305493242446716768989715782742249901375163327821874729022029169822803923797549622892490258951026292642599446918085702879370378579601315425459102839232660553750451851245241232316058180191230086587258774657378376897336887169423352354345262671996470085550078375993325775885601262181387454638780213500488582794742290404368478032981647669008367044088653227112829419513707275269315233625782605587411469857810902163996960847276433710216575044549359759531116378859920345704451229761259752236650242478437864331699127859856334684107079338062052952457554871903757966226836234875712136801522050177337184225785235577211539696585367534173527903490075004052581077952995321779256183909673726618833551532038423440018232897905785501282854334388136529539233883407434624153712765072053280208038530898835767504117992783519411964143895902059180890598656523332876312741599048936457871262142432894803834583592323787764817878735320633701999589711336421778166118064726275181985946740140684571966100099542686169704861663066628476320170966454606138437365073577473140713622514771281695578619812400094732950231787065173619597210989263276012801362071965772427758930419679504720983598974542212609532582974490838367595366347897292336404789056126545273322699079526181960940154898701132836912063082940690189650634989611594153956987697418522446319549706140254062501139083908671997089570109036253478131002358462480689778011692036103397021151582949528106300816317280223500002133385390705175512549647786945366610906323723462157632660892886129313389732863211140299383377810420282642060191931315825995665029499746676238137729281363708706003469529662012150966791403978200621702097055201562027783452098270560568800870591869328802085001268001701393770106324882092635639404348975035953671028275537031508877311441851818965416714474850178821675507515591172709274669608887207918460057987970572322592878467300859085295717417403210808231200845244964502059226249675767299997898638904397308086791798698820169853184948801811901685708573028700597025909709213636802813765849634143028584656384035247247953628597091992341939958770821865929981770856415944519727766625489567972218764075433056355482374201421250640531981570110405763418207400999672363903806942113543406694208501640088762802681742712224271345238318228192590183568597524247426920978002812102520484262631900958129462040942060455981426215479424152490296344656303637710994663840413846214788570845823341151936992826964415172344545044014790061188609933118667011743191217875149408356256928747865346571523352613050930103501166074504578615948578266031244090060007886999679578975507015048796180203612519340163970799887857142563656832823253522299874951459775682261264828347268714094974791155049171644921637858196294360305168546099051033671982004548781878231554492226970026060809230576148273843700353860035718377546823616968236584344989706922881729511221031753969097005648845876633284662484438263132405223828407661370734212287235609467540285035109370880768235892884262306040022809248360918898336576447589682225112601318682224587787451280856496348359482076514010873454274627202580860686768035197839231656398419898187052238547492435543010954830974530015093039780490175976185702771145765960507168196029549247527753712948838001706138164712554268438787148280133635822006286330633011571160730147298568251374475382438738446916766784332125921218989015463138717765450655468117635471631995151362175189823256514229608197774293873584190527766832355337842529196299179923686822667173198452638933759558141782913840683521952062325172069451304797618172899606428377359655007814215213524887493180838058706886511132205859396731271635354791244141210412932971298128546961067820415662317545163875848323592224369650865422211730450504269887485203642466432935913469716501086020596379745063812660498835591462882665669046000905362578185791980122727736277815882297344847877292732250552531938969776591769435253565678861159531516447545054114563294644225166653823885061684763296444763831453990482865743793432863536396254367515783425420199158277174290321995338981141791069079878061963963099256880212224445683523290419915990327245626030455197245459478073574758170705597382515338750794707314845888262864897084840862017589157512553325768123452304920441058154258778507411721439593789891366000854878383129448413992390089238601625615035620427595791628144050500889251824143555194545488625970194424039475236438822246244688145884384448682076926123045338021980064452831206085704254760792321237355082169130055053566762687522806848723213699982682548362088250330957862289749622504537076965062689513498789784392478895884174485706940101572996838598437496421924345675896037250667583487493594005958619290516576285788791928115339030751580671809075038933222366923105984629381713235926108229471744545022437891682080943881052385211159652249393189620150309064005517833178984732563846216431189375104063671928777457790851587882093007076228945562161951068326688441261660007639235806909618905589838832329783426855814904545018422145997618831062087916805997204193773198468252629983196617452859394527411326370374435324786985784330391428138105972616147916507976250618654811249929346403116806006521905762802470978157169408804777059462868194276877579246101902768058835747027356482509817652535448528658893978896266948032234942419961749895159594189467268759656461220154271890582392526397099240860791972065977918728416977529078996351418461392550787692361359883151201032721329141767886162761733984749993216068111130543957317744664210388560761715977722314220016226789833547269511199887511845601166523735652131762450019603563946564012363908349274324912755182322100702984226641351642100450890736966073229393522655916570284463103330594841122514344975957420938929893917938845049201707437463846192200177874830164281975611202114445902511093614362454505851903109753257207807338803063676902738196313848223908487125537228063362663548686268435254645203721008287351347484567101388001460745577601521023438713274283343733183909664433629055124370338044169497479234865243811120224823474489491141446124302833667500569770383384718250310982711849400058574048646955197380571758295653581284554954859405209131293181635446038276012630902324974469098572787618610777147122795938088713726033834758363380122512076149300553669942855895138674122652447918360079421105363915630894738827939977664114480620892719337228597768559184085189790819077421453834062520053629511514290506189053933716202245010643659885554353324677907302838981354523317046704152868529940222491252534519674462953311023694343623165956972118709284999463605642617175256110166661091410585783272754845858827225574078436518420810773932984137015931574061544943678401544595520966604345492908239795261620454288254057209937825440533529569893894582520249225604446303036736181448201009754714496047056846425878056486749276423488669395063566416138297027468078907343621960215189675374088715858791772707355290508443634788472652145373524709509970908732711404935300490185601997683961622405285567986868136283166605372758476363200426989054956890682035767911626476076345842911393518229345245359837410323699563772538114742356689956508624035741698894398557885025840832916085963445965334018520219960767247438953674141089088322089839136170419922220548274345064815173942245796680787317252905429403414726442564502511895654076847373460362553737180409578320250774894986990100961934464998104190625600099049138529356431808399874893010893120795861165856190465050560966110537178949806959820500593353405786570789268539511072256568771270001171172371329995510102682104161051204475641689373516430662908092832418495062952198397890576536586013636814079930585515017845378026131676590251536757019040062201942974406049251123672930532468704673788535911081434383043697055554384020191402858216787260864890689980043111914630973800013891398088534778573111572247587566620584622697437675104678183834502977684866040026709238779386914819798059303809884973484490021911904687295784377632058269757508844481032693167298901923955505556388699608703646203100676496248391849960533583101254240673016206415390461501989117065107581124928478535490501609648437008643105384600715409523182754923031739166174560252802482808818634381147028622000649293383644213634759437001015290199183941662522961925879591991322155507791895064869292422628617853371512144741150610123062565458327319230208440036896620352919481489652333513505084011228611272886055476844115690393877076589808086860147876832971714884320558003018750833254441543278564236323539884030006506831382709202446228511394027020425513269700534028897209255235169419009932558157739025727399451783069406453933779145723020695789788767334596679673021183376628791124090396548621797808359188390866163729155005276374501434463357106853489200799655890474805976364216650133818783659336275494173614381974033972979174796052318701655044990851293940831848134432297818331110428770756142973200833669189544843475874619685263213208423658344936740396041967133441660962383957420779378044375344827932805408996003430462161154708239625406039641301731481786313927426233649955126217974292868249937582005933200031693157964713895680903139779173592294901452353560373668042303483644315828684926948319798185079604770830170490518137347472500570607436246225518608374462963694310062495515648902629700027673683735995918624256852030853758431056094860239025998943981064190135662830632666842049479682252757058493878623896734699648950539609647313996273261727864001406544626534749080478855890131100860611314588152402452473875401463073302320392869667913722625739264089841415616602025414882920599537597259235385532610732376642634359581864269325070845030572016456564365976578849205854111535420733470919356083098161012768170905489526797384283313967559547379933269493404445285194646748824371009949314028584854052738126316708242355810244627530759554546042282901979927478469064278043387983603958890055995154156277063902677105845056238424082257599842896617833430014522005757377246263865977219491843598681373219805028934179850044802104416806965941498723851870241091213916982716271408681891599508991560976048323984205483617223626144348349802183242859074714945756326062867985685480272747669665644760539529454906702158277649834652669251237210413428711410291351715452843349552743668020235388377287141152146751076168380512840221356128057660405817721649094566999224998197548929198045788795597085443793781275260511144521062377363805312270588501464215179121145271693110013046452117313812585439450002906194549091454093869746960785675793385642501269711090129976883431638227370748316500208885132756518936548552125841916387201869607945044380157628508191734821563100443438963204873745756367101921115561832553253269733017445288413177568097739563231958110155122287112602316245497455220347288652401096005469164352939523020188366521137724845021261203207882783618914354063068230496411981773899681561269251055424856125994694985947648011779247352474077608628085017025782138406565627585045574286052065324589604458390593941314004259370857343694926504415285214126167217512269343007531592638939990159584775590617427884470883146867507954916520120487570225983151400436818979331112260372815118657228155754898326924368950906772003081286015459078428566235218450115361425309446835745285296231558641563894376423914491709931934071264906366637161285284603343840564908124904732995578710821635960669888896562316278227467180043719037377298653362895916424417968740996879667416298278449965298345563789235560100122118555979490014493228024982916053065678506427970259379985898819329237170570719317879912707973976280440458202153191108805396244513538400852186965541008376238273666862859433432945757943141095339459814391402030847000305690270763043148561583613545724166568572145201544292083742171396670213135439225811648759752247820502020404595298448611882189109018400065963744331121389890480006646923320393560083775702514410210289571031212179439866893870937997661013197156082256211233484530799318317055209500599828880984112029713040947784856311848421781929766423901372073322520785510400982226368196455870963599866498391134954063806158707574441384573846506334262587004139295235864883583848557169838777286097128030618271853857318744376224387511661711812807748497960912776476261237820045522117194343948443757905749242935156463940049553958638222632547347861870052935435361645398510962245365817431568228831636935184330346909046585268877851391708272497910955262481429245341231765718506066830787434559158856219373573974122497027596658793294616456882215783800205932010309234468809737066322756056299554743470691264761327396521099401297986618183329840180364994799881893988784892551408274245943485690003255612404723594364877502330323178770520230497763979358260805687375069305135172571501072572354698369365518775163307569878607805479580021139541147513289606942955564003044300509447693761458713587237317803248378818677842819196593268224529888056994490231469955229520551701456397064356405621693461097821136795930682658508258498845412458682288688109759751942556623969723337294155220631014814555905267625725367780144354764658653736463052901459713697404879298897068966983519078865493834080067095967795976773429216345482550511086544978568763426357355506846641274653942679799102616115428059137877232380062135405884723849696667548985721274192983291454553171421686664387287781872681616181527117836480815208583657631851304614304202756972436496069087913034482641868382000013197500937692220797813783758027128249557117710203272659003001196103818801542769280927629444057883502995895372357840596077920096728860605420587757934171250735208969705438153194136491796458841440994622187404073784259522118383526774589916756989587448720868909715150094413044069573935653897117811988148543593646120647376534185872098596337351496936276849654123448008305289591604189405605561779892822238822696237199019952947486944465778831590576917554212388576192509800448137908222578345470126819784623825331038511807446748025884742915038251862977185332777209281730061735982062398883506165511863158173711307719627486041106784848772612720207708012763994994344491833301631554139774060044825953798680460042684656556784967260452915904907165637661625860497752729283738920980052268381583130298892085820503594858545815944693266536659214178068525561319804898626478054989197738034468034713198304257409810531087303772709498146737130997454696466235618956049952856021325179104894431689311209647446356719798437488841057783013881603405567905753606780703038655485222208777322117709672070885048057799389678671118268922635748450802857983518423176036164697942334198764467051925032444683297542558260350033247596983108764512710653464542861420816988578181715007772221864238817331547517737570053605095308124301434311243879899192642402749781851537334445111290148896709741485005855379150197252772000483161487783927190492762565811893873314407420562403462204665953827704284706259328220852024606398433142836746225018168819178894062454747306389679483024677685137881458474465135489404778169090860032969731992216570686504379166527851372096257222436095822876615116561237251805455125596185372102239276995982949520542843342194987070582805678115719960888458546991118836453510250959425570530111731925141071449314701891219073878850831093361396485827038395494600284163875073342651472278598238922933399938301105852713612044833428013981092241501758132129273670651757209276829405708397492273598535384684410940697763640343200161524238376476013101078974873348188597428448406733472376665890687650269374387948157170724436341791008595288142295620073740955944930964794034984968592548209496385174602963849162412499705631161605714707936293167580028172707924243608128074563281770174395557068572276197810723528757242549554494385955950748341960404362305994130701864475200192544603500480970701758448388618737697907237331331869200961454360840761042413408323017040934836951650362904688590185499885903747293826608451324087481751076870783793432217179117324749032116132351663595475237442815386132975828583032901994325449827649850860349272191566373453591908281812034727207854579321041502635786679574553473495099790502859201295923098611763365023537676566041832515558471814349102443634110587527633156217307354224236955092874789070032278049261855777776215629810350295270748878589481649200166596131753657887229235241024953281358200379203168235276137682916627618241238409587395500482687148867978163952246747122999120639737213600055456361373661388155105393580790275280121693115346910091611762998817751116248721749011663279333230721651803958002081167030443200945640697924471668964346972823973830925085438739216004251854701795478489868393610446791701970865970477408586853693304331399121321277137962172915531204225692312003175362146375141496251526837307591290321875066663747196717794093943915234758091693227294794724519407483783117773533939790779722332488771350912312792684818457987189585329885455123657390666152785161732063395024110074285847673249929301859226482503387711956113695118309900788889137412212116097171822658243171815277357027185067331157041047305894440594933199867779627786158238929939403164145182041405240710835384599440968340398767761627143884656725311728279191803549632523003507340659082350135072800959752244336191997984172716154592840815808859116067002289239222476684435291279915437846596306793274267543623281413434198601645460618339420405913244129141519426380788666034327662144305760081767751533257362391417153161473965838357806199491589272263174581605735386080134609174208295569807926779830139593110896682934631458104752922841291026806110940363287682595763008052117709731502985816722206912092554219113657208561884924366442442447206350890135269260680221897323948516786680817350513454006376848357852550752396171118738795756324583937999357179623647784155618123139367282101179541022032473483333406532157502618338646783523477481205923775203656133720313504266238077173540339592603956632264334158304268864669431491776767324250172265874991098025451818741085099453078628767305962750002307342060698554628890443895239201958160640064974249065406100163045580418227512418596072001875690871168299762259075452122662936172271565384542182602371432343372060737499581041688853192758535432361103720401730771163707562377554286045955168219684987005024604457963251444169982591965660953230877429490438816881536578352853609389215425627247207867630917154293830330681674166000078751321905247163458804581294325141470796258492928910388029032195771975547008116374275553816554385663944740585965843117811936207669581377064614992289098801590156947484205585292375308655614880104091287359539229423358233244892401552814355526905882237345921021995640122754942582724737358798140146124037399768583057824219797597003767498605550983178185860925320942419882154171713300392697178340749225395723875109693078731209764904539682080967935131903394139726504623510786888970153564927959539356100484658891454281950906296926097519126700384253822375582340472621964314825326312076722501709769428255889039653641080109307538097011574172384697126760596508020314393445010547057592156586133091553165904004618001116600400205569021707263955223712780555541470868964214313843700419194253950752681066291744405202170186130612489946632800898598872454172883490354999331903020859215506058028279526251140899890941932315259603005883981341236901759913224521449315415578333773295538720399731506742856803554408853277103331199979575070544752131766448846262715188453511053871359284960619667301648087071905780281128810331961892687072797642443423406517234737636308387597109559520907367786463747274651238527405344222624851643750736712848605171626709300148898874587859268109252903155266682193577576332910228738616016833051934927375453564838489537481156894367606815443091064457270854951289337115255455036577644245214880794792735318178362799861512474691869268165965894658331037241406266650634339810575943090659826025657469820814997479042515739443484757997357364916893608236250071579510428085667219305032887944539592900339385622249696664445195133862563539081301825624800155027139199889296424739435979956528083004046633187800281075768954076435636038632601431995357639441629135862317475687466425501161065484638871416243005019979780500906750339465565439474799074963999165377646762951555405182110459548660004277289245112783797794333138273349937532838479992800214764698659375571566261378067624987928602903370512385190272895651739048228130064428912840694741087640113967512733122645258193969651153391666364037260649829613206409639899937101315186246767855169309696399611032512185804142692865331547042060375350752662735941174373305670574747501412498667162428781261398122385615717588382537236491582788698722679086392569931466481788488275356895421520722940888355894887141088289723981488569977542101215191862212371321975468193323984825683587146371993021192829382458921013226858878376403817619072943107429927764024756243188333373136710126359296195670064990671626171391216963561251293032212403709599521926472295942652286891395673611613882573001886711821441894340992041823023292678262219681740986839129751083712287337439823503051287839807267316304541675747001531466749476764285971433086826345139194142259805217616390031345271599638084919028566774881649505977305803236787457786317945797275159426432813775882399029966764991798074787806377879602283703125480382255279152108815874692525352005553451180111385540028173456440178731630398770932844667839888863918936527466977008667493106047689913752109800094512364340967390074146673681560912313424052899777967484969737605695163657933535419694779957134611843742529336031885155111916028698421423725432724558075540076395162227688343270259123457557147494220654522473665598621891906870888318595716752502942999961433993029832117501244585510851966003216118584307932662434236410483995898370632020094905987007921268386781736902810294286000238925596065092273293132124350336555594630223051772426092760808288950026751954298412946476055135832936198781047093066995151450399654467807226240974522937041221618980703448852418492819582468983125775382419270755504473478229449488256173968553518321433967460266175399978842551540321487436801184538673476319114703336109110795952800237997107512045770718537120385736607544059617289753511380757876399678926911676532866165482916481291057029122556768754379790275313480616222209831794467003728262308099521484218526052118298399599545026189421325613216026896980943527579749013668762970660453938740699117307252306300713871703058803789742053234748705742897184087387593059010315450135387574756028362397680810271851817952228981353596992828208666479565244967497855684275921800253742420364293476734137212162383006094966664521878235532849228741627064944683178417789870691795971124742379958733472243015813676151313575333990400160815816092237174946181655511279941531272770244516741689354325424248829510247757292197377101130955493037771166258554392991754611986657751658205921993654593513059740495019676285041608603358362221931593882884646870214939674732472849410277683588541398459445781626866728969520314750857530648720992841131111421093850969970353951331849011828340153501017998984981953623702153285494012739685467682088154365164474823272262516806032637903081701116500193665651480836184637120988692720413673360192665196837763237080884113812460530593710882395108107073325194152000403581820477013906886926710401654859634074381712785068649453560829531479543358480637701296557767812496621517142058397022513857938120033449790956524549535253380107385959734534515757868522277141865733972735152321870373362899085743495933851224930432750780213862830463114757433423779730490195394796450055489964624549396246237079493677884393865677062186998895621272683728231469311239263956640318780345226185689626262867382035962697315848278412964782465420253797670523332410367566588174618686460739361855439703650345985527577268353202306061503401064080894149100090569153084559894947986196467963460365670581375685044901852270729283510226935859931563719478458471492536011831198388394833063699093982821452479061702828084458101372967523696508213145951133768662632447942298020294908899932164949364252890147558716986806568652686518835850220833237908626338626723969523798822147276258524149312811344993183291137820629485874494595497519535799626295645011944966894449680339977075691340493989854140368014553656204208371593124913586569023185680352983510722355510533396781706927524380988208589579257461247211987793379623783816219475709581539951327555030629387859296231790740138234318319017988078202933669860151755616156463895423554918606171298132469545047308975075914624867784919900116765049102740835856770652876899609481349525512327304288347290368524716225868953644994188095244090005698236029043084464187638883770112699700416706680361122789466919656533102756613814857772250473112782815131882844103728764711056818247042783080694723921572955398212468558576026970265520093045992896900648059493121107205567580896843648692657345896222405236044146926560987324373915673051412524099896388326460080848167694835364569070324057207642038746663542455684853083059017109889866064612299875036454480971433552782830177463949116386821872301770837909249469092694538441148129815468907254243354756005437730983198071832835299808643156540484454731157924544811234018731635172239365573465349563204044112298677210577114239805096718855452182743548054576702244245673043248863310569304768958531117203429258174055358304394790197042778522927724737830582268701964417306204834615297295126782266166041762963551598299053058208183071177879469833417964430058808705163030377927413282888964413527419494526815801235435208175180712831339201081740177042209770745933946438227198009469855025548724282348821540235421061318864306666893919394547404272537140138657398736821408294401744000816532505585400762916709304768387183263816244660500156422904033698417357724798629513556530954508448915573693214776589678051456118075819818917245214826845397791122296725613100964383596440813457202481978911138775458268368263357189720959962105199230683822574094431398919543347414102677831836797830474915764095578561607816355992826705968870032581179939335613911109591395055263224625039108822220743912949771608053178870705470885054466506334830079253337848868047084580810933913473082277690025637784839986714955744274475165977212577080533266099934662211563403488350842833972213631968120395301526940799712547049347092850848659773194496408345360659271550063554842343491676617394833318561724208325370930728269633630462688013698180472746411069095115306487041832233341014841463865390063951903640794366156949293365993353461524068760777706068319248034548181754219727278118013389028191227802231165870285988689341024156206822366227930316320516768275567653560565997399472579508032766826177126975564472028792268214320590721634031430240118721933266553973813366031455901367641695038435221380536078342578350125701383484242190263651926853617247688144360435597537946398722414702418691971832034979122719853406006428744626916461706654832646215184747719887447902865662185527379270587613983818559179617528617351688475334539644135364707329850125022356346971844518604829925448691198968684613970209994427283167905311320449304970327076222689308835880870789493867210755582478439657408558680959777523462890776479439782894642152255499073070661148591293306393034171267022786636986398100056288520823318184245297514799351666134063905300334209261373208028991590659434748511173749975684719905390785949565982269356117235601925442642477348046013240504694628385172131786459191675741523419712132049269642593290537283809315606972797931995146629750836634045856869631788122944875725525854493998335688529045662414139507716316616683209414451506750408256117649009061836066570821153766087652552067853244953863586233508971233576408194655300823996374021552923394670650497997051651842488134856898209654099639713794796846420111591297850413053155480459584092791114659126475448574705285314167949699741838986190811778054614190378697551553732008101247623866593347925113472976955934489378168979817468683530170747862415254458731200727200808930195006873332201102476960959509112961347161831005363934055959387061593186897708648970792593915405362918585837909990895441704629618332117860846955708657431573000521481163098149150227618492681904827012991429016203584583493385571411798113282230574605629385417873031560149240051356871111904706537223774647166208143144230421553662977503609045081849624510579540990692562024893983123545512057630243005031913392840061133856278549567190275603566909382461057597677649086393137006560188560711705142253431880799290596077578723704431019421312984872222859191353954733251660716689540627778042015107395748244046007874452250834136566075018370066300272208332843675493233078349456065689911246414648710394842846670802654310102629993827223965742411914277295755585417007824477340581767234500060528942841253578599723670313790503375098681299262340870124304452134322754565415642863461390253469509628689063078595238493635305569070235730265075202857674631761186679782262536629786731039004307587928081024443944495972669022906638265121813014444355547939226132276800620247033483212279159328357591421826294209074190385532271523814975331678758252689654925796232923440277764652203357938457010650176922144459709774398476747646207719650654943059370926547760700955405227895071089380139132391578446495856577153089807700808977396645539324536184547298492276752906498165210547590201318366926742251228581422271031050859884123570201568915841023654281295188704229573932344694845655627477945157842183080832635298784672958363517381396585701678821667856436963099136360816807090515899385280284878150147936020065716888444717546151264145947591259071571278421280492617090966079178066739471118058426083785766920263047220037517455782510265948119926722614031441261277507695276074865424129109033877512201660899248126465963710822896564771578192162520445541717646760279005148388342210899634160185595809812481472523557791595346640310355470919160133342634508906828603021245711208180992987062504127719878218845935913280300643770235517863848838432329894873165620761908580462242183126201284501154844585514065408475537445296506025653156944128660785095340716762822295449963458559586230234644541570116051027943870791468029553351271010167787395072946573669962237896065189437869360963359829102139826838738341975912777059868477565902896263643249709234295601984757791387381177862741180894539789866683456269425430116274531727382278329784145631067393194957595212445785590847808491989539775493768463930592339999973159364793719348103377837037727308924018899824660949514133588889919282903770775152961635248301356871563024222780339982616491158846287638350615121394231026074216171991125988001091799349871170044674115381476386468343784483576990127121468368077599436719429385831134318231756619976810858403638914236513204696730203590731334272140145069822194987695748628093562373739211399678415287300396199862887224206821273132271488933987934785790896775375861137439470685752588675718396549723436250352821552217334545040363746694563634707391116622116534832935845080032982479766921299723572269071886589253855837939956813587432758920823948256455592628361420942815744241882680079003555194307716418115799321007216387592580826227133553353702076786348326662835973070666723110396687609518170710750204471546969394943019659617634144791708689126717433699550033989323168293599654248401998047848040607869319175457094659973719151210068935214790270888657249673097614115964391785526878402144450604214153045947953688635039080449211857183468556913673497216573660346420809954206141744571921695831613293017174838336942335345721402221493787639606153536917567962202034356476272832621164103396236308050761146614623300155048706929083269053971386857568497727482178820709871572028261541446508964564250371254284555005830497717022667093266277548913627217187806554088515456242794801858971392237466550396611005313232029201115034388811720852823071191248880680471479263487340991942251413108487047678412091092116297178539341219969866432189398735236253581909604461087780719893254971081490181186058834989281339971404881124835815106236366318796193042518808082770252930066129512368134087993281872326454144618890036689971873707389391114149136134525752534075554649705285061950483929183831477758639040022829424494958513847622602205916123518776603978642938596552142129315854224716772480769675492640412324626441153228514073463214730467870094509565164125905997187774430120246030709828258211944283412912138853821047452730312053270076565098582942292217273114260369468619812314786600560416708589053567681128147185239874081981236305858246160497217843651523996386757160909141202414676125099696442956086143113987208583565572587132615872655731332872510039022195479940523693748228368592523047835436951134617650139407050705131900580718151497413873807178054261432333436790555145587343120826455171596559526366825549738752621005916104605361989411503366017504146209636191581204828032540552162629656028637867449596532809320979003317865162350899797468445085982360522093573780147147858879266909779100579782702443145245650009082337492357322082010373353041576686558231982870982195129357813279445282058408936015411038187731478703615587548175894147347630705187703662414236006254113837243392317728469710149126323016692243567002758925483457513941429506365912941439640348018317449667884944843379596247956785385397329242027891110731937738315635433686842255292924024645454409831273361900764130651868210936761172404640121108229198126936309970607314384757037122120368657026676037033075936237299055217891169250871851442465239180074950245717304408605833929331103084378522737311035609735553193812404541454648532563841246613376363871627704178242493647170824982230179733460171992079003457909914160819436107670603726580457592268061640602869672988513503881633662840563943216555089200610906683144375544030364900115692386708500563257249707616305127751842999156019015248120208648763833506958281682322770180433389019048986025509546409562022813091272419103652560573673983158632615170611776636786036410202923140616722962703510231154588944990417566325575190442050680359330206199562523009831493199240080149568408390097041420917683401581846231252708450931568988221500366240947464972490061602249636860464027215852062729329874301256692429361774954387120707648890472302009283526911354406607321879963576972527168720835214321096538391216651565396259829048509824600303114774355397262576050192449568578394062979694354150449784251052097321437219719112573186516743272235104076152143149383818998658121775123065263825247149600167880000041372552482161098602848160285791502431515022627480178675537219408673579499570251815164095485432868673971459846528642006322265324387025805634958636904470161046662002288344721406577174754467210641192196770020105913478067682672385706283420702047406123826664550463824085129676251789961843558691792372329531642659858678836593316779944303643222540256510910970860841233573046983867084079506734233842580496663618568008212614042930792217843514427101550464014732048003578319463362348554718634155183587863979478905823341865686130412036216056954373188822090793767525128860652467368365140376842293965097829567061093828088866972759651290309145056935355634865949681988804667013377699187695289829692004201582895679594284681688088889661957767767646411244637041463954245259671132629330017948389244232795332397963666356226921979354284848691427418087882496099188378872832630977138183550421487225099982913689000509720941877343319461688543319995130406870081934321294074715788882750120527056297258568809730677816239843785883107830909243296179301835072215245492393627763588630447778675973272945168006266526290495420470136875995359050024444870635643151414659482020094765421283745681265166453382714080545047811429875678769994006274841040318773787941096020202237215313751342673670314750087767030516444958549650209954168073952859713511592145647522712454702972873981018155127134298037095435295438757353048898037987628323524553888740059703717977928054023927726826488500420529780965293743070136250460959768690470652541896216973179539043557110892894911473064910107350494702730383707754253296442926088116209191316728077651281611666028810852157452802041870160245628325905518617333513702750374464222574444269357901549224701112002447105182909415020785457514685288747081562263478495439436349860310665658396783368498679094563924213118156546453905313112371813342557233957833753155727456763021117726807151852180072368860495976124531785278756357401891686359873626569607522714260799836605156686322295210501211966166569838495024181738202558878638653435418213503572881371960083083405687867640137573886585268949246997092496153968169376666486526741153059468203408447710390820477018549752961190842528775725314593862851420050913594991935471687801730251164412083035177490979343368220996441505339478392872070293996725382275949114996105548224685417982091107199522957798930987098434146647806193124380817814343877808426691544571504652732154566268677615278766276602020185241771273674670003843308300602340596138623712789300320504309728914291089445057548030373822718199134656450159919074237563965413421816324442438679630394909927337326561289672580815758917385060462189136328907882694862329918193798715276578043716218061768455633584040312988562289246295171864690635046872604640060127045108500866438498734429644559903792885230565460204783201812591011028027456206042311185287124954236561703540284161614851023521823021346932549348613768354343863181329785451608565714976577090442550486011828931377349340094984064788223183391053855319462402991539357253513312152801291208810420329802144663007112069270945688191472182113812323345174099111652616188173749231008282791087908293646269373258431520727104925087551396943744171775759835011214435064101949368660343274462195119641847284477483308058177672405291400683230030124749740242492700834340797772393204161234763011544448185061068436054879506931613366972542201564657637280072413429611797052118983623377478359876619221424717617436730741303579841540246657427947025188739216817918568600444155251378637191025809069262636273303261631402911329065748134671725031088476126658407121744059764231911248396975706490704748401220669110994324051549242847080969669413466647111971156773267402148985016016840948294099838067252549188670075306082877062228818867357287931154745328840902440390779263444674020361251704922495449107792457622830563699478980830651778370265659586062374325198033536352374626631951820358841068976804883675440552627193873426906518407809011222456109017213008505886284035476409026978526964461599897314091553458206664396728835668975363794229859085118700690745906831691359513471136496959086637171949509465139912701022931345314114829527215296597918337895190972086711813960384984481350244086368715014070948485323952912689299085586391367998602541342687915732142729883666748681741762411745084131914011171009122579629767456002075221114579194548231630872209748354810746409898448169224419731758686537462164430238881142811089103569925613932219963316812615418578343601348724873108103990840985775767066517400631905525749014437510528615528023886086270067154799692626952456203217097579449693684689167622951418039271008067676477989128945399781052205667478646101588001717226642400067622178120095323754659602389407247358164832346350885917035197615785785817106932473870837630563785720940274269961017261376224811225148301163631727504889892473607165705021582077415050820246764697213187341445343501632823011064295735423578709909923739571351227238169495130075884244762843915533210467278673399384040090066422775734263709284707677003316244048229371078796813322716864809172313412005397438767441989837567938065484590159614088889492980494049364330986273834154040878089227666402967208039367380266307770919245698791871184378821140110376768437761900496856259094653326003776614833844656075900516179207259656927306428899182639921503768144937421197832318088853457546722876275451696084023591382083665803962330417577086227542612140108291794677225175999830770007808710807468294440290407785390480091978475801364501105031783886177599965792356955136817845008271721339441899632216361127935400548074585707002231071556385279193560354156807267674638198042503817328721196590655435550402034815825426677014918880080843692848256092760612624884697347898864907780746729831681734575761327395921173174010673113975263095531686597196844544079346004336547584332104427696436208755759189566056114659071969473901233137062692106005971942456438382796131488219247437358000329802452826913021381273846027532172863512635583958478880104971290079613209650466568880734919134832905841522648184097206361583900126471554784861480557046581298321617434209774376443392363399901458432183829890304592108362484066865717792198505070459572193727831950948037175557642666305815919030776434196214328427629561972467344527042333432695722357610705147498069193300909490803815619417931920410288512957897378769665880017908275681610387620544161436448433378030334086889201426236347727252103778380099359731821004569121153341291640135727806896667756405905646973228931731023223511301802477491792839714657493139208388326947201010764159610770380059087932627870214837221248254893080418038811498843508475875369131983721207847305046128304034154950392345162764052279334040348195377405471013052123160268243877155395782697203000879584717701715805118914971630725764821887220027860967701163725161635293073630684472667627708476128473530423405730575556099987826326697349269261048005615556759790022155049874828521728404577945578310999900509977153044953801253738527637236201449142903969345960923178700692590978789236892494602210515937693936356059071839399259334135205108403061912294225967669659921411621461049982986703478047523050244814283718183333374285352436158680136047977410705997686752837969673396044636636115781625932627612088044152938499684402640218103899117524693688338804820392782576001881647100657876118698878315691495720401555682087987000519630656565300774635348573751661318412128791505416989191329047511054490468547919148989708745693121400923603964879055910296242831342875962837461439037522864614261736232182828303305987844774481002680821046216277177005719867752811816149558254115428120152159272517969686777951548438821449924838094402537286855709545741425918235469058647247232132118161562047743665269160943184815409287975615430927683395932566186459875436627706467236659906172495115266117367725118855084321031785758784332343453003596436772152163157826838507276550368492045378505278320072214345691144968305175517512386960905856268988644272332467035943780561186774580201754612254251873509120897694947125522163472213935531313620335892979332094578392943108283109139425945167955792486713041302453361071780203866804216705161351845219354907860878107184896565742797249852870008721037167116147766477209056026648927761173336154871177724161974436868576968393092040639655134535582891723322485275250899380272534210128327372861097017040599409160464772370853072418186077633272427274762415125772591396424392925424267482065454158053087332453292511618555773505128037150969309673342220342246687806010082287953238367888663088266091620776635176193973162119629066822385144752347284304754665297274013889968212901813476149046042646682461620966947881474593265039310159983973154122505979883215035163779502998056599195459504708563167906053599089402867742576213181288051390710682072493332618929143267405785111759643714469738971214354124881370587838728638048031087818550345221249195964254458612903854869723808220172957556581137596367248904968912525697752980290909177360128891761106705085473262110620933442068204957455405294885195197219174529408775683935485917135557100561047312449129894896043391106082576515261130337046829416410755945721359546720602063235416742600593939596685511249773374315538245657382516476399351707967257781467887070453005727799322178649108964233008439487035416951958579902284247094714545634165984113678202023338657127942476635585329658563238215807974623997679697921267300033113898269578434158347686062730865422165984574770915137186489548049420193896449568847003399667889347984543828345195442617238588643831732062880591127378768740173714211358972887258052833512363027962793974562685977853657713444618998469040975555758432456187386221443457951199417740289679562538380675907735966457993485281805330583078347887886071202207224602908264424816617644467994699664504065645657633623789954930309574830895213139837830819128948147535728481122714402342340339617665891571890172796129007289344514939025593218094336844332657875056075277582787193269091703949340458357300023478759698030464550751872166375680476318567489874312775392799208414515266376873342650312312076322043080349390927045852298295690120555037407161546117702732177197307342555373622445514293155946760130591090974210094459498470294253988538143281960129982627412338317628651758617241771510594001929650807205217248748970039136851095386895666192005931263392867386266772025362018991895572038791160623306109197656270835896070836931811736903484410346190017259853232762741123190105729203028267803494455384148974230848076930918167253692947325444563117828349335974658050744719189096942157356067718402724669477918297296037303493472162468256272714700792219213312981109113041691341251734602537112145232255110913554085673898202985112237580921868648136591817237067999464355296949595276355852457869648636232117318308127910030878215356953943642595622382967621828657285682389692446837166650767644995913422140827774151187882348675374303987828086705527296274249606944787342453166375538321840988914693910135304229787458168385953716126176906670701106558679501430865854892785730864265148221522464421700740761822497068304098154351043384936129090372449251948584023639827995860258317727350021606559488627066077509155150647425239203832073099269298253111461713760835448686020411324255714565701450342061552824083703832347158436884761024309501259477047516657615974490416168041829998569893773020461716793397676947063443537076316826135412456857221699437160624330975077026315642707352764104903584419165037252187556161521799335551580691801480536840087793531586638346665719870938148790823276025129418252038923462255568683502940954003273212970306027902492637968498368197734573957500304513082734480049877435193780744088109067216193954126397708314417261716896819067280875972041255016157155695985734156910383629145714992268508575464868685042223693298158784057880860696051931482634961027559527378777776612454044480539017337018698894315671091081272028724915434893866058424154731298517384594092888344793630915602488592516723004401655323020044454134334155125612195380168285766403617837101114367594104664054534634352034707320599461635665939806399800994201756920383683404935361618069576669232325560931415390762236796185735192754342166984052045844539521153917148184569156889664236739936277867076759098488776792687751503832965892516089730493004353349086735387577244212558393797737454690369633385435815265675331522912553038010601116729591332816299879065325592610179585531505842774635030464275466872940721742042563034924227820239822159156235775369395194181427238093084338213906220564021195708569881296463075438705599038732719547318118890343413923681591175116415012151362630037733232750917214534617526232434135997544433531630210665325367653457479910790901092350759436275559247016212684928164316912464854957138741300017644235329461947625122615556697570919948832195931031671832342823881284791169815137911687211483098725546315144332321202878616804974303258015430345774248958166360151037395110123062558134393214502166270430988752967589634618497397976212637506491535427083483845147753370521619825410585794358636448823699959721474366315879903576785832388318310008946838813925344029361402465960709532391822747784861055436298592389574086692022567089955519483671691439422917686521313509151475315500026065030662831331424670618256970253720037500251014860707060355272474466850355668263204582592316666913679804646862491854715020746994245455444613154081280044067103574551761014086773787714905731957741824088878796109583340350114285806561272612471059671849447889624385326311294392297050668263948191722771305412655806290401144757090522956361015133513682900408279677227679815363260023718960804240919734768551811548046866224712398565668845992886279569753411956146321136698142384012087764092935148595098292103647499266149165434277684196955282403241502294655289225573460042345130343188787265173370557955725903038702642647789277689783882749721090743261897822775240283317524752565153500764314698764104036976127945464334089301294987760612451043517538511409708646201956304972920028795126483828416625551136020022661827388398119467046458796874148956760587995455675591711702165290070550102391408667678998903956256131235503080756430362801522353182891453387780180632099688574869193662083805974990263548178830890366921256881957775499502427719839851406877326741548247686297411649575040581800300954621892933515483704206292628262607828911950882687570612379626431659789165995742013072056579875085582015916769649147801949179324663378396772958659354859416849772280726326889955336109821159256426809075262963156308596703138437819111937854130174308588865947298246990960648873450138128601238774024280268968304476829733351235134142904420745662259526960570233847719981153896203247017567751278831006114995356440683505700765626407819826172836752595007004024426406808676109553987532163394358691412938647284827968726016155342407945280332461216841774689741745724492083351841164601174716747887488991028868013679931829316870695613180100720426791475706706025115459085503657333686793496896026230465580929525260192905129905924536418327390225125846156996111170697925002924678857838939682082500667592770278494961095902354284407487328120099110611782807216633892520089929152280968694586408920912274644522690348190563755079216036722937308490771946297455702702516521621435664270779278781718879929684541384741264426055229554969042573958393767950244864292481665112159645355101848612781439014575426184006365209770649207483790332076726052960074478771662770297971491317765093416521269731356041137388627856705330700487864511525177887748775648436122468198660587266513849853762354412023472469023257022740835815009468968888638925998625502502905293393515435517512750771271516968886897005362338190574748560720870024760062277737690488186336492178905265617662826623076257245707426098286093946971872590832175142679778142156698533732813574789972304908488916066366781144931518349590048865766042938756276493154722450646913770652547772507546644291977771655047230160519474492701918378477830932068673819105943575904625785269180294483368172885342780320676766591452824558242636231675908175123398458661824319979991324921796158905347688800399605993910123704147894693058604264535865715090504527739505378875017891500967573956065023698265507762626214379751920383637435405679613220934403110925658356434860012928746172995627097901680012383304827949307021976007173079831999240974503674944103718284775021642971519973702307350389811324273659626396004967051349205610060650026118323194131904886652944546321942754830175800697469758095823597432473853968736449065364384954353168416242901255870320607326234020004121986900574421191175139049654410261858565366184951114073506441137445697826680880936339557733088408852252502937712236396753154872438424938005337664666096868159829300641277683042034324021118315895963979806238626228300710073420030801654779407164662826968956548535340098831065724564061701998303753434429395300323967863153887234268985652655646291541164105122206985787219005738825477994013682504226044424746257840867824710509139921078825209589283379312695174418569434433620929783706206161469572745056769154254496870817577373353979482618748905450845744788737843037474256097154880305694139075247674313248243284431724830109844395372230647946048319861621724994518703827118568436515425321351760334313767395112472330870848721934383209320228378151481575653330107632601562783124105239733587343052689465603766243527031089950952538714186332211994649438598870693854726681748823663866502816109015891078037900850850559796352726564044029043680928450826841033319750242167133759231151190899505206058747063745406277046733915774151323726640680480165398328387042395947525128416051639310257101162154065451322859474992030305461140287864477865583743571500898484153639581949460212003038796379527697393813607023325820909774778932329159973913075582177088584229208370819103107239354623178332364222259492859232388012935991931436640145726477820046221649029953426639349367604760085126181247460742466520200293949676318810868441507358957775290029613588237968651258505338204664616788578755896908917822187584866568945288918519785099076588343813630797375263014289004702841028723638892935369287594454539252697915712887222133875702493425732735691167439416232436837802431293933156714012504116486264954630440858030819647909881112486773429468232218330805949166841457936183446901435808582223917624178562650149932451623869995171737937719237755109007127608343251724250089304272315024977485277242904119688984612288296769875830065999015880938753853363337673324405579427372147221111566682237243839547929750726262719853709881013667893841358873446673994798771457293752152379492072962174861490834909753393275299054737063570116442383753724460015159351365256412667227428822901004363318144454142516572243881488464821984904378119574174357348156568459400273957916223422577707133223847399036298404692760979279470437452321864477179169299955967912135906689771711259099597356631431594273389328373557896861722610201953587462502532097940843716490183370350799842748373307812977936337167978925661577797014821381819105101932505458457287110710230547160680840978696605998583734824832416308095231422753772764121550171894493587664830404151529391998982456898931900618195185470508922109512501867633867881993909353725329337145129235499066942111742199428669202790387773868304204908784595899243365521219653746128436317113951773684079389869204434989959004861737414540748037415165066485235524382998387758958665694093020380319759492964978145273503340162005181077237298081595848405646163760423928093530519399540768261127440879296976214251370939171590512789264376417662903730795643454990544429592535661749952368426018375706309134073436160611745587899148935743658898051765047082662604968699850742331823556360529394089957174664938547351733079586414766198104575693346133009223015766548943979640645181419466968413578626753810845872588428127975075718171313491405685560836709182512593101970489060709019326641513224637447586545655005696859865566413745216813273191736943526395139138050760412977100099792978514318327693606077857757488884126728887253067602482025107792742646452227866684378319112496838410023075480754421600954070671468867688080261935541746938493993187482224886097130012195008324911644935140063776060351996403415532200403135195570522490422764302610491561126465656600852991644394040429104418352793180571440294613642698156535941811192176817484093587062990505491286166225852718953677354390703254324917705436208971467901196618152047331713345723913478621240433911159029630020224476124557567715047892200847630240468786751803290730501598457788339765207624433897881917757850200687936620036072974785950971032398748683967017510714837692939620673832582221415077704601580034369392411779444261496269212521971693759389136745529373499481908119911037789427788546772257621936783060626588129740577853603944958106321262433741832345696854269927659259786046322706648859961260288224329717745403803902983223471641890860549073811442157684623740441976155795022178167901925989420610582459746491970244018143447295463182577727456374179961577504375575325563666122996746555319967601151113102687753914464429352385945034742717732467027717127843686846173829391536615418147204895290901849968428328686803784679969158493996157459661261706988653006468622746728160144778377116918509842466152277128972708489496718646203570212144436510998446082183968990167502841158958091210286137890042704991078901409540518933539770884286735930175640031109324164030179617255543537920781605162086321532540905797858595120256178263348508975627131733669485149356834399688588643727874852495710942040938955291145100318402039172008322804190967380554985356825342642883577183418498460478574170331608153221652841330788720263687319079338884608687687590305628807247923478878321139866552631542774080752040379278443695055719369309753982288031762611131481246241801873545298563707501030477682007590380942743702101108753038194637200267046267944776613324548212899500378937739185042825830076709435786383000177486218237413570668951517050460821208023507760749878916864064587960645982145570079480110190137708755256782903950298930061562954890261219352713869131782915529880874598365996955338231686460505895771832940204150758982957082001007159877253978016385876503644260935698431396172747953772108408025029916294303852993559037114663387337656785705563781257870672136892842110791733888736353300911115724344640919180921174513799754042748218650443317045384665071870192565903778183888781382614642355994505358224551024530341040614387828551553175213074048712386506970006872480073981810568959467768762458770568673699484227390490269052679849448156739697358701781729694733009510315283821567688130955369639692367549810715977090849389108552884445063789845262491445473214023595844541517963794602466383412855617034252516437731776361400097711991687308899710813756620306779774715399008150480712561456404031884112566426727573299320921964043743692749164487380873912872666665314103911915875172120157172268273505583727811807066947400284610812912520322221567474697641593155637125485765713609134937671094236091451168488796127837620908026124165254321224363525900234527427340216355234822940550499092090176372016015789539681668212050186846110558615575099669774381115994784873771539084792697190781564716015377211172443395148607507220157281565281271990902049636823409437301209634697462584793045845273550127653198355919184442414111868632102757222241866969655830903378955538032543456459769351184062123869827290595353914112460406039151366508280871556873579939040355614414579634209501998857767331880855831063767177722202366671624024585711262428270154237428357734343302297851335914524871425976836453568971665666758223965269956772337689634702909282541644585599815528692853041062838253606760057609150972854847459015327405546389652288927149705933297017833780635069169796999918080815914220543848016389992659814532375056068839491709782668687396676318660392862362592880187444475931254504152629726450698799358695891486858313705271965837059361410641188160138709185673718470584433842608759406769088228357871843874209681285791422766813471789928733678309108474735254084388949146731746078892131922222287357745172244727372861634582882314614549334818598732190769508724705223121208588727610229520021403431277695071487830429987760708052182734113460075927203305909351716227142115163259292692402387350789168807601142824833069857254606092653805364783191781878958410760801124145144767224411819329670196604058897849021642716671505941011211456751113606428382164309008434543364119727506817431021865838205136072169347372362698218509178655994014775990447166853308680881838208837676678893170115913187307428863190461426990471096084225730663512456504469237024982543430737170421832760089069226055235272991842754601672179526030896056644266520135581487641650872470468796778967199481742807128924593960771958183567379029357215824315794734936512909448429658955958362901093889161577380564074078413270595651322395250934424426703632737179358167794541266910321101006813458009681237800044880836401075638504148776026007795497007491424838332390401280369890717008951042934872090871797500808954247313368377432273494854056914800851166328082612496042770043500988479906467107093652975421730537393532596815367073101097721093068305874758089206247045534144270832859444094568578527154711561174544089621953658440023618996331024597515103932258987796092864362462788545050241690692739840690156030999616970994863784883169467206298850822013834376169082581395565479760720310886454130267536807954882591436425618975230971911583642233277019602785813135394222021623926407275703349284943679720442939417864923912040765373349940740024787610967547601775872956519131973183380106931950196730119682473491737166167928863170382752275369301280198196152244414833110127961418655073720622115472578044258506185293071286900575449610401970970847435695128465977106404141296234959247750315685949449612340991207683308166356550935530624310730739647137864898859484599703802430346680955442829244626705140033293196913071638978793626032066785857639115395133181531157787366998308162385941640921254384495275975933472234500847774399890635236884460295140566476767810513797835200839469102270997344456788115551379160644031811053071413846357165717646513453675962762264032530807876810181746376606746932500665846222551036131162942542254380621015300256677654439200154653507610209604525161771605100835328689572769580707850642380328778395376728517262824838181064548259687124938868401309869492863571569929336233117463045529768741422378537494825243063932242461000742731138127275606743045871760170571326090780302718161601556809218051950430911577241817503324715100852390832387668723547225718722132790893872959571783311233241035310754735336766401943468784249603405506091756418658700779920061438672376673310631783375560869469345771542876321532204797465601238210798816173114965617375100920857301918475880865514519699367447471923244216154671467230133112790208666805587738661845895591171818921229368911035965454563238738887024040747363502231973362049934055684151768880593060306506760999281446309470261918467708236344976057916952750589178093932041101152070636442354936987369924175555547018844721258921443042011992165066542344689910762657039762736518801789436188379081226829757144963064802618248628752847844473856953078007615404063862751028045938517362069184738067876297084318540522302357056167064870335660819974738254976497096454861790341806676190581619456320719137643184823721076709792956820776585764497904434964136777046492194284608275797362332958829622963209062042081156076028902060323145419833020160642769680668161886442405874061736510269184411599790131214780231229392434299345396074979787500533415867585806499515810534760288107354794347516279611227203186220749304273090150340926414897634780410281853595569731447906375781831907071710164367077265349638748988603693835211044324807336313256618683163438391788291302234784806916399488053968612590974476097808768563421709586256378072014256084732756519529171540243425934182567735225300137962671289883909306524305685480914994414929473083680958611282345090861200996163287346140735210868131497106771159141027316938186245734502586921840559912267532965697572547299782757055976071909188987498652426287963630431117784665603599194676900338034299446486263254041863055537964843098828551262503224731837653578908196862864828369396155622861718338947392378714524010217808244126433148651289066775853178680586733191324828176652961620637180283639588090681027604966391346009114328873958518356420393180827533728630229339929101555310046483009643116732918292720139427625182070505908217440615917625533111545425738825462783019915169227965003168828087810183193008493631888076931915143610768783512199173597054813483588355484830933430664649623942319425213346321730501575661963711515809482521981420313951201738232526668016430666064198836508539624937217833758263104257020884428249571836181897664198900251683800033327339107178962872601251718750249989663124178447318516190298884298862054582779649689768269690460691439179440037608556120686415308303188718170458217063494235863378462900564844730475555243272483855826019472219549458032977800923227538170654382107875219226201586393008520202410402493592106767464776599979799051905082940606157621083638404449018224928840249584262824796740402672502678265870774190838590871185978955479055149151087436256541492620784541177055496079642503958896508542319761689394367167133267656295834175093189972005029795982826546990729921701825325540878916407244261674609530408620632306122791262528508624452105757857007562687081199296334648010140710557473675095052681925433363559825139873612462786660104712601851507792123391476358603242883687942071814068608739545969491255123207567930021365813349879560953440615098142326659512104662041220952624006314209043093237585767098301442798787649458154102201298440027955680830104474263875848694207417052967351913322858438035552167194130628852568494507420096151802205857952024082421187616829624427602987135071136433585724063575646760782372294060612363905904669678948913472801498846271986338982308752066712029729863769808881486593253567100588071595762839939632625455187910695183090931403826336320319627639419875573451710986084278014047735431587521174351731197020093666208215403095390683397828876055395834735665907948891674496254710299557966803187744641879583883847903048922173543633094443759523652475417079388874440401349348129937316827743611263417980796113643631036984020762807881342457695347575915926066670485707007162035311645324505975125023163064393303871125719744166017808929021706765704250949794042861007521293211458977597948722665433059774528372025664534177912631047674897603684574933901572638027309618442524382416380461977363638122463513896115219509354225164488753634394540773277583277122511574022858126312286656156101660378248559890830517841944945526032045243725379115344692494376641634185840891266583957638947692865922768430354817640126837200954014214239427409501051741072109730203626693919952015973277795575032647517231648533536741387436476165914516932618531779990896502013114815971707429563131629654644638722804772846922375603580024914990483773767949805240692153378599841379793993163529958321593076606010960813593664533174688809141900336310173136387783807273590585968930357927105308833728183122118047331847997584222445378707764473759483737921370056218596138481331079647596712069343331299016706753933256198566002414906303315752359209556501547566198538767071836309563633609450650064623292182341758130939237051849684512275086018675237417841281438870348383501567620031290561446122333160326730238598651820089230407726858791790202844424885984779740973714286042316165408482868781415360189326865858866374918598348927417015465675656442965309885335650145664379296054799257991348779041234624836939174767114966530852658169820760615079481585993128386752892855736766008123903800818479101730078085655381020237389294917829095846516527656196472730711859455130000488826035050536220080971247911440951496562541086644149617849290400033936729634473544377784583128595010556965910848980494769129947097543230176925164616066871813214228227074934115981759130779003177204999753480446163407626578407665779928230060472428235758838084390367289238049590933050344797340960766591914269533366837941560902661849405348173363194495693183680261292498895449676082212925246306332249235762628934199200924833032987336493544048942172365382212480107344487005657898111869936600625337221685133705048820819578087245408858674306217588976475767918108745670681495671604841157579204598288310474807842834407919813274827112169712039416920663480497555217325304443452036466985904039005433609083707058531924841347618760265340336794623746465488526981376978816303969307176621485420588511987565812816826942842071796812303541340938390427778860206375780031288742623768326372309091364486249384977784294408638967775863447614845869650327670240190226773200111015620297147137414203586993277535621854716136988719862923952344930567467543751566640812747373489809434717431253486900213021163070986122617773685230504501257420217049115199831953447462768305899391639140960469549125960350116398199425211579820540082060857398289614534020910052825232754465950769820857346815650560637099223257262620884608527587549240105084694084850587309408640870643008764016922053210980469074035873243492118256840509794833458062715554713346088511054051810645037070087434703203879836781123617846571903903448012306780845789782043503709692820623286108399331213114631051107102392197516925431913971086677092200072077466502785672449283918572096906178524119022146679991310240102539084631095525925316097800068185215294675983450079801874184643748891761484437415286444021774149199514759539243283271266187920622681801104214031468356466207963198052099363324085249839027834460106979286862925453894322210651881969988050776687244724733598926832548543696610820825758893450254896388312250632096717596145191181887165977862560976061318979555504904317587659949985285795942463791917523089841259124725966864947159235440806831733824936629478469279630051275180454627393540509880866890362300303507694050841507654548540160738121480827473357945862424966279205832115629484000856830423860225190669507565274884359671008400542028414479408610525299097029685472577627673623285554276608693400246506706275325500812446607236563462423052104532471499140781916858020392690669844957404942415633237579833345583146098866083073699893961969697863449172721306789112202572547501510503329546459245446794030383378776230314320197623922025586153889382156263319661033072805216502111885479120082959399897068530368828996036063384428407921991024003194691295309769768790375650797444271919629667006374296870320365698545402640223447613715256204929588822136230966267378892092052608005163960169574840863880916851118887575846928054988008751753680581046228533786341697010646503520392636674697356008445782443779371790741618416780858184875166261576931174359690265735900958859115741901892260288810809285454337202226732880281108763824513856127706366322191326970897407890076949052155356138720447111299354595712904936485901761073444616185852423273325197220287340562110891407086243116645192823903185995161993864507158275488183267891711110545366786321627077552543785489745729953473585328767034706588410372230392244558506974301873190043694572038896237949553821310583881833999189685528663260186740121664199581000949221493138500112843439712029201187153154641356052269073474305607285930975001962272944356586852027038587477907904353706446161528672619186558590020778506374658409817727987923519989039795609212871625898856872294932999492247554073835168543195238255315408262445723068736235847640061639654242496969681140973069008679143130722093898195239381703227558087672060880611459062692918228114141591357175477423822258738596915258824369828199492001735768342829950686583242400246938646479483208552541320868611986383694354198467290583733920135245787520908584048011545407225957564788513229335191675418135282445207927546174538997779602733302626352385892008476881436260038929595612735396517526113795765687213487662617683652714702785225910896859408847101198043638983960566227856633344369533347184278349819962349655141995467481280941296179904271877988471130844983843043901713257433464683487038336988613040552830060886142876846005164907206089380609129865129212560129115100889389289691158985569705766791668049470067606640481515950495073073811135740035753194676475617582495917063083065472014900468819421145536376793175423407607208237836718808747023919375695766256857451493766277203611700780437558476140626444846687070757609657952505936182852398481528238632947997220062791845009536049791389132620062543240159000524308836585244117609322690773509949487574424873016699952615184375964941321660354304031418973588971825615671469114983744466870691779400089297887410902232775031943686612305976429645590840797347221515099864554559168454075738647062970395288870220275653059631554696019271505063959447645612683038161732970169728493647344515844180701083836515018023072280431674662920618345729799053130125239929163818707631655311425085353692843236769894819374432721725636052120315060716094516854574299508780250968622791457442951565823909399319459373197996715656610097878783555705593746194098203949830456112762612568341618272814324987814220031149917525072925700713168190918782871917297923655755626541587949244443976357661041128990652805510927761463274382686049355788118716594619334884340572345898386096919115744102282811857441676496484057822341421333439453480833294151712714806705251203907708111340959292591558259671595213719790619675371791686352378810224158513597295296938690970782630330579869688224995903144776679752303854227489582981461012386126670839154161171347161363305278463477100051418171226760509973665558203347817859339621478463883625018598948149501483322189842313225246697578244653721677768858261818616407442865484098658551213536666572350947451138560809720640728704069485711388952171992729728040774921281508675799872180162937572888635697383078593052441355442655935243661866274473269618746406353438521966064338376775870719459153382245767566017924163273417687624832544075692696323877262854155675540406718052325863094699383150544231258484298491023751116628727399496800151938042227556058255200025962140300608402333710650698855480059537342521333321769180625139109029808989994702242865047817486286548893413451061492708525097752373100916634063603245594610949782232588060399227141015130389098137328438159397201641971811560733672852884190203271678697437026249470171415792598414138423933291955044259316170483115494772880430698193031216003041432612198041497005356369432160909218030300291877942141459477195222298078969741327767496086667122505996587813546822558791786204984056300063114738248316499895603033108865904007911852066239017839727864033924894768583407415181621539509201573500612372120021643350695055629554004774542313236461421814888360162056858320566995824501620131082387191330032616164978067238079111983399701656544123150427682114501812971737172179219374797910709300648020978923258188112266474841344296694518905084724309259346016358070411544868926503951176926444605051422493396826031330161744143794310143125084415567709961687851973151032420876280028575072272005426215749525484486788411600091422127739477481442422949434920921154263101276787848264478480964360960028190967565540281264814728694008516503353214015069153796843589770658231711294068835539565339656545466368529945973354163688642087674015762920957192480482315630689613679406595334331776654499294060855305942050256427423937124983462657888553536627181099957328796595401895195924321991567613277050349041733340464424963615616149662181428777120569441460757214684398532642690374431436551722776188384896562540473204593913634420255721967106633424466395998347399448176644849257019104320214622370992301535263254208095540195382397373345689109095495384705352932078586243760738142761736931525880827486101585997662562274526621976929452274873017950241102726056170227500434268409318121801627383848200641224262327479513011186015591848073934757070044281530169475212850842256336129877245070206103545126296687260676632161559707907997318636552985046659397451867047598537328949366161545861040045315254609939701636166295858555681089543273274273125929317337164113341718341183818567309138895094851546989527277391119176683513005074776372662091133999677942367198117540130836130606891088265584768884002367062060878185835793969868936928011086757895743294913723781139735815864383045773224855338933213088298163970076466279675792083922638202112087920377250085253727208148222501656760960193134477666579471501936647279697877936128419763881104033563818444420155034757295079204194917097328421493726401415262317818652302063228547045908847764075896673918815964956334592884312612195115516351277126727830207805211574613163830039209670789696882606235183439506090209750904633147803464175086887316027174833182221256856643229104796413600350970562065997306642791817959449919378111300273895112734923038366438671337155576362771402289575418893292649217640701916635183279357104138940171935822237946836783275205563909898873605957496251920125550793601192850279354905837218941784457095618342511164229917592989551364730439728832369278550637509364253916502257178947093267599978434214057593629819770718685521553571553118709331274816686689965632825344792754809314414595134479805179755550589063723307642856304515657901801379592877300646926435175121273193213146518466879172101496898833753590914977467072902459178723588033704582291288377608102772838316083251422103278093421597358732322106002625136196917709282563689768986805944062248168977416812315685262355036611537591522335207868162491603667906008283392489875455994729180554273514119682266955729271481496808192218068113648133796346568244793194336761681611897369548433435095962973301260670545911162444916141072471837241198683849221105181011362965422931409042688760591487397165199035850823214456351398931372630930880470111910516799344617707690539014367914289247274984366230322806083312797248024235230138803569883201335978908061877612593373852541107253308973716908594503553545568856836598317809806047257542324600100498917904006406277440875814473738637914290911924548688291695048657842021214066304520614958830663062182729398752687866195507751187415649753533066455358487231510298318999297859528999134899109488807557552001830939897938585811792694413660839731772600950392672091917160878448257825816652381855865794721967177088712796023032276438866279105887557498345035825605564587464802058599153214969076078586232940791070356670810964355040007656303998620644835166052599270869977800704464818345767629852008106469123143127918085987509681325181965188483782710248934678108596154269184956235267764230202948548786725682555349876581850062842676371598805302669621451143429745376117590670755552020473798771910034090788765104549025580097282151539850651197464133574344297911467301542629127308047524248178782984673994043405019366731441766723787817903987061580894803813553579700811416729119717651556182149060604319925130180942599031812564046269973793025657504419086380514397535686709088006805992336618584541803000828163757475625751019400982324588874781493984204049964097395715619440686832621370810084942451622676168656924333716769125173484703796834708223408597583710543264009833108233267944843528454331719102522593321703287085615904922980035102814664746465979473037191692828342694769121009012515855214577357228036385436859628166284288262680291517163873382822233001960456123449014011061183835784279427433998656113474573745813934782532829896338728012590142923687194662142105388734708120055036466952790719341969552874240279913309294303042020222116475991742301311117429963959706544454264554220590193008756850403453762681195946677468246725857431226419369937293594106653486419095343339931896738163268839521778943309083148161309362601060752683415618835141046157763935660887904711869850393759613752651264263010401082510990179810409587662747358142814813577790223696686292372443426598104170131710820086649953287684455157783777064774964444466059318414162154546823116498344725911787804553932925599293934403511750016804771116358380859903089121833892238813684425907356096202243323029757972555212608110143417663443844866047158600351606414197028585794411890381936255199443600307106256103729182039193597995043600625850832664309592633451402371109728393450201796397490355208543409391871019541130565550744279253005742378407969716810084277626116680636801212147420862895131292591649924948677199667595603893091954703106843716973278610410251266830485070201238309949013848894404036268083130174265559775936718763109738896667581236502516591806820028455469025129885570240966946330779448266168899174588688199110861398627940368251628110238147433452416202475445533759073152636241341438734692421095499473686261341490657854145451453152070888326271244955990855192953115150893107408287388921449876510532977285740432142029435260915352758469967628870812825516282945320766703062327678820826112957581804284536123941512037808816998656936331788456497850856625171688258292228812674179545184225218459206137014925822199725621570449727559899366166670764781019095540856207333485806598282537764563690368879170111778978540285606344893368373461220649937441679955421920416599416581275997190931411057118660106716344070490573794796926982811494260367346707317470348078065519717617926018697857449418393613158354434960527527393984891972301909608771421372192052687485773031439837842654222368901428898639234628113055210886900227717664965490349774903666170329809824674775755819516672270396672892283943742325557072487450839079309663877729473320616135914384914534426111400631370576101382678772660030548290886089295331704890408730211070662165947212864322783984661852639315471034912625367857291975528340959177459328563795840026394074186236831438402367178206595136013397564809199929562426170524342097573096600192006891226702245077642843458670114082739153369665595896671668419694654642222090442687031802066116936681578569194142120131169556908935799165941608264663240081139156955839432055605486341008389793190699082754677844976606052414617467458276836971036811043649243952678083676497034036672969851106539577766503846326470669314977540879281151941007426107232112402555563395845118588252095025889333903497293753065506625093940156413182828313844914517037286270329898656302247090537027517467212170491951048358115422721403849422701431070089589803857221785263784627528937779416467111820068379179367963764218616608981939260963099760508518576448193873297176020675470547591959352218606088308439812932951655370585601891712691009745573720023729294989414510041465693833033974579012941826328441994202562686533658404146738998181165349389173134087365264953668380432995791809444952870856940617008563949521333628566433944208039906874990275631610134156507903204309857580855991002324719151498928669480157726857143082783653530540931782129199313389807623760821708904753800102306377214188750677781186582734792347790761105312705142218548922698281650035016862127898899140568348386991584241262235658817282221686607975606659397696301686989097534088808315615909452346380290149881337056088046249836642080206233178567140831801369326481187208734018576738588524540833435173296124409026244044335986679155374855422812077845213840634533013616153976479017300289312540919924784634739593039665353003155489918519844992814527771205414766339194125852723382342456573198826437762457901117226157482327668490883110247520496310006551493918220217398894300290483924939596584737787022521119064729577119503395167458410268100654246680592291166412625388618551980722281875818964455014476417538417420563795790977693123393287088552999143233601889504898689376985532705822454320606903967861896724526130987873499438883626113768348387319534714046291604618216324528121825547582911984513722843007113491604490449849087605269628857325205378238520327959471876054358114024516064849463053019744815186784237743348933556195471730032783957593773468186260113146084156450342472061687259829211323186118595333794521159995693931290514789312723522612415578886703645551952907166754758390808720736200591666114001733394381416617918411515614558290222550506803506693472830102669612037358434822263127021426190673913272891094869714536920275061851331946880371133803478042224972801753449147564625481046371348970802082630779923458232196627308534508444883833907492149705063738718829743098695899895867682845697506645476448560431406663255213974902450881204279705633769740776774990874077630056525308823464488194754892246185516672871175384592916067418152979501591359125908177875187529348780624809354218751657030353574431510199271972617610183943619042196140304995540227546551555307863717909612150808747909474981156333376827482644907985073931946970206533947794605787468360490486263747471777848512778002365026206789292854528460149726797382679276996670079601585756737643529320645847137937895868325358453571211992936856597167745787290853680858834644655104879956781490918313143883956457279758245828687717869702253395299508123231212854118335650680655520940977603084709408419718017612128656268214616720463860725555862902448713463457367305026871215971595800512638400282317380882838561956819977535862961729234297513433545911478815296644130115277672143985911186421374321311149958837538828877737241449506132455329856597538770296310913312081083915552116710321738462921550300713011864049512900834884043190344590942071670234589101079704208871119692211991895437214040190039621214475556260766353440683907482337814655838311629621529027493975813645900561324856218069295486842856258849496831904905458204482936347206616343059404009819687536955549274441347964490412671692640312176827181412597043967202168628911053226475537318568902787919806114372718502775194723708482013007549528575458501553038216804147619685038970346984844896650327132911630838329185786518878279132681025556642027359461051545964340314758291540825727877249202651377457231960723328608639102410974612292792762078859140648959832606590437558232936441057452373080159361304305227689717145186159450739882209340125530695974339456939164454472588712074932999881653108748706508764684903874361089849035224644519355415988927132987930986082780774591127203051903699566850209381487894611480260117175748041144383495182932483214204480802467100448003799678985335988228398115556540907706325234308771917745627083629035919213418780344164860692702776731061536315380149682548353542768825311972992914220026552353053540584744990957336234933738222240549453980940182671513360434851187307387775332131865764693251769934617178327062086612295037320221763198060169656339819348438098110597630899321635437107423402626026834717053953002398642676179952143839570164734287883704817169037426742710246733125149091576757670274189062700132402047105292242143069878974643743155277044070612162411108324512029475814640069333752740503316155199513444617488853562013468100363946737158407583092405270289421551534352718558837225202644373223908801575359092773638991066277881656254050014467328617490631976055792161074562461908859098247389928073793435936553384119336050765037159344539664902706864403597064092747382771364980016434491855793734807499652888534024244176083751222361387771326496752266873711074808376920264842277955775958663269267562236659851550527561126330306375903173738253025447908365140778430266501397086421936559968705109845373805428518042375565370665536717045833016099194188114805798879580082022178130861198777353906385527332571787850238902005500382609340641810905208993226656034454861823512594713077073882797619877768647533527864718976187083734158451983109534793112548879721755032824777788384901410031342374274332754116123509757694431657320747890971568550496508494932207676172890838206382322632360388409211134444525043748842281947629029846580017271581771388405987786917835462759334710242745267001657317973966045868186178098290702938434480167813119213188437266780386373437513892342135893921877229511040799294911735940938965532939512014298854237043774269046115743581671420793821176960745064813351711708597624878131025847118063594159588588479786884048780459160210559129081385777244346930533006662683403965995427304615646743097216483657848543991133539615410183765779300550235479037449389149205535462910892120763172189235154168425069756550107243744528543052624652182016936620256948798349920205565952532221075942829675940091946753299503057722949098749698925152649088793668016814180043278725974652613645498024747444314233666221382267587857763000869584392168516732278997368322837768044316021420153773353085298650946424566327552251909033499763014935010132706198931994120014137774329955459197451885278333490900877800463308245646037812615031864292258051449485180421667878899414517590125266014342480578855259080849674973823757216130230231951050566094890786715930450804117843089083462383237255936119777909357728035202669821587125610505092543294332407666291627617522694555336614786036022439690582179765342894279103835418469962951747745710482976033991500691670241798240128463351051625786783541760853613295658642308845663168995306672017548607576880131770147211934034226008962733898802251243817981446341623825708226036657058165992712389823855935564745897952089327764744420042353961407685777764297085137185798587672117428545476054857658834151716512328191870001363574142059493900551887827051704894772324621546001365810765637982898460756459040017581694651468447463929029906554808537177049361873407295271158658614101335355977952627488761836590930767583151156160829314519732648660603045515134147636647707619601798514269255669037150482374330075140986563507843053456602110439628211461287034972249321803027375065114850755486764860709591364619758436799633615154292927998360534118291677732862887903106826616823666940544491116422384418895352771161974984168440184540313230338528062801019204762532000591161707503206533100833354801110536161519842784425502954125255053337046745949863744389289267289094855307358883410921860495694837855947647481309523849042842907098458227978237253141310877870388617675479759999002129346217507710630180323679343866311770227198632307039261696824406178239211795232895397392576196267217922646966470226022307304440697788623374299491310346292907835720144161081680971096067996522964908895874693873683821033331612446634226752726352831217995108858851489789531468734332233585665189854485670851670387843111408140335186557771665162747463134188809894777802707932669974997663233526364089650140873639158230144311061728154136186777269478907171279284239301010731671277459906189719604182074475322451814479643034820776932665980106019995718682423119176038151774467749468249242528918861968989947573778024281349439956209409356383922585367668049418312910782267916015395971112844238470469693231788401344737412991764983359321200327200252274208205859267503571181139961933272222260167382919933275879510805019502106108698266544755478830717708140629042496361088051352313796712325854008433933872688962180710623629128070336446863977179244297158557859877009628855987312914036942356627959985185999583815903158007519827716078367146462658930616648501334287328593313131913952882054418863180662345172754239576275266772847262891948244386521053827343037745752314338601668128755469592234470442226130347244333811891770111185514628697708838059497833714055458492239204060888630843481468075831211615064859266314553585413851878418815244512283817304352703056228416469195283840851335656532432035981994862759177259002100798071049544449585401200915848423613441425174802012346878642474064700853389677788483697792416047643893664403248483314794246016077003437009388527546738243210446966472853568712189842534565192688086883711026226899875311214369213188801920428423312669221316670755899232411312611912266830644750635035379671311627066271096849386391235271962168007655878547110841853030230368679323200628634326582914513634402907878361213505826092456217225875162375309583927148514454340854423668573932683652989343466521578594855518518666738768833995024887211630186393326121808253060622951721091033342089232243405343483735687270707173288675736767403570931253851838864824280507117741429029954685175235107045255924071757560108297647309552086920521355726342311367819542626712258366506479483150911734909804703348619506173311409795051963007327245020546745679701278296867835263558527111537204933920709329008563551507465146918052830868612401035864676915222689460348092955237132775854932208154895607295203872751458171558467246249950673380525867978706590969939330462879615948043910650653923699898662479592839522602302560682844255776068653547338599777388485176703339208332694828399044887110975025529511070409810854245969697784339353606044293238185811347867265882386494424998891074404381595968725615829795081569782172545437306136419292795492135267760895073220225843102395945255701483209201654031582694719001746315261784508157506583625871130257445843232299312459636726278775591800514676292973095602479996086023269946446114787080594191708469367540314108741750224335826699052455859268669293233289950944122882391517079091405782052654372459172486512696896200346114862249619459081083265783780106297511644384262859162883604936593736166493962905088537235879121295934717306546815534717571655253738230450504443322561438075470714458716579048029743531381082996708827470455599826386772186086171172993854426769905776630901777913220496352056650494944159877764954389184792361903511910654052900712943864099869454582440662903776729672992403101398292125846297818470340671621575915237847759906900065844177368392002002780290178736030036787437817641894230262039470984415945953311957246853591436738931210439058295101839503444405348663434762645414152955072405194458227066479739997633202612671759830088502799784104874879624424535210890235402250812383652305167816215492346343178194222442615236372467056094978652095519257048121250719645514567260944286338230621047294621458967092019816792983427255891134396237088251725784307239480955509738539042795099429265045604774293141331278882249071354233878662693196107454811871612118353409254188116917378145262629204889768672629269227079708388163236946271672157291675020090166582547999827093425167690492718815660880788509953333173493879959488793370817823257933239524297190743855740357333656709253538932438631700399221855131658652264870937422493074756871161353788795831701303929401779801951508919146270470820325222439446667052141301776716838867881051375050987258102073963436721366997196330564912847783727760535940934018339509621109089734085307179062860318327136971711737191197508626899401309624899651525211006663156066434973055024707788605256780819949495558679206987189655195899099708113047659881103536726117488727224211165607586898939967304950853571674723561332299555549460302536410555966280819889953123291427319313995529103675101698921259972345449078260494760391307328714475208410745076366622917446361324626701994675905057849014714329373572954485340005675670544420558345599924781022084218136239622636374340757376708227074740893049653127510133941831746437860281059554607292908110877179864735236722652532728603382199714542844984971067552118856899029303467049813981307589113644512315980666097682421201615899341195899909827062123908636337206581127824974539612366239528066057615898535204598710352669127211527460539863548645098687675321235850674362609357353477210797806198473896121445206802882473752739236300471836556148488623648195778240684328184911775126584644459286483201178534288659727126220106472393859978111469783849067133916640911812653291123039779192748445036458684718715436365686449268700227940537198060832644208123734394733493444845864123576338850731721840676809023969738887968459938404280472400263021385702112583064133843950442196793075458212014698706168226728024876400329184911392279424823536961095610262220629534892863366738644011526419004420474543669947166839802870616921060808130811336370328687877651803133942470180358838292001330806693459681142799878266508912375126415126966802828924805669995215411796275387599276457154024039079772782977214035217819612638476801461258804022629431124857181871349188400650292088997773514212116997206895952981465395079828117738607529254793671603732195649558803107097402882644975088406000199339329112086348838599870705294531528113319197654673362541213261314526366976935731397875111151185655813284994917170510121313921586127941494883942487315117711821655325550413311481706737521034615336119185563101351938179698165975796442137426478235872305261547453700947361002031876345705010818655148367805045758675063875517346980383280210895423419699727217449739440392458319232640043645055385981331211171959437829687465152926987859474349769995773047235888608021434678604842929126709388712207105466329202613044785854135671261728662381188812649886414192077603378026999262790093745965291343752897090116579377892777378589231758767063539111166622011898614136067537724386227277326043290881310101941010104559352815235692503630673649147713329441125412107378080596919203618826822231360320729061778712196866671498006983768928435668565392909177212082007360146496589038119467927130053813040173549991204219694751175597630839312066622453880434966399794968336644665486299604359725351130133546832631690344339359102098369535827610631625556426290353730668079396943862824280122497584231921052370423209490947004496365111224630820805781816023353953949710303236062586573211726426649091853956199738297888670747963055979127097771186362529790402729836895845833746210535397730211918753758551707438249137209798038733806354007980043619803013033796474041284878207798668339729879614266438920039810555888551927024192512148865785622585319722133767694403877618226767020298960199219287589089073447648007585114510013799182680407208535053819746017460182706174663938447252065857542258230987880578524259490238956392019157494082286729281566135959613012724471453757290832794563951269620952723066226387385770317616816189180239373785761238792491762561464681709567272508585900142375110722535703417053993518092312499808087837224718974328530585535948629754213690676262014771109319208251819168381899904051487763424926832787476196764377061934239262655471799567322041191882199744198430800328046901409088383197073297240652694262574076299988544586859079002110201359857957083183006255573923094631750710962439973682195003718670013019331521326647311354379738219723238899244147815421746660970051823972035658151556177754770913514658697439171157436482619845272688184368952242559453653433883560614061219391076841049494619791203987791462583213124739432898974664680303033497312622843785085998717626517809041708491741899626523727728296700397119491320540094347833788554241672812460429206443747498179486480345776870963336466336941347813139282998617933798903371888217615555355554227281400817921066171129782249651597084437914620989866888109071536028192540766228896259766765221472910248841038913091594196882345424128216966748816694197898709544727247169417326228202652532731567360538469920922379407024607309024064764099916867345139923132752137648998066849974606278719106163964261189700612664636395851804858497159820597164776624381563456276765766896780932814434776663222681339162738983682409020336913940781807305301750856076305463262316736447835387240075961988922158795511075545289259557241864698177527190228139229645571165889133439347873241968978721334903837538162995317517152430953415717680243128877639920466656560191099762841063143922547015845432122708503872434840243243591419841988389282108686565830131708093074656540790408441585251482735115818940403841776412752391263161856513584375171596738258457569203576236346392262989702853021006060570482346004383676784273019359923529548353947359157536804357184960980821224551746858809729988526252628570879901876127770190999926399654733895444718990289770080852413516482148026374583063228720884946903032039578111176380943984972738899847063207342865615162883746948438059746836724279524999483707689909687156236075213819894084389650699580217225006574928649626411872911189645030245422934367754298350491707386021631739643116661522546494330695537036842310379085136709278216050118803733775105265862985291256674982882783305839788943996512945725221943719575903685177841040834268383674256147258918644494376563060567053318458793588004560040537177521869658402043235102297995233093714190367260060501516667996580685673911594584476357018974156417879147107726962172724743179300944314080726889978250315053588330045556237014024622822239386076474690233895516416635956061685637981054861622920895187026080393258558604359348607602458232635587631945469054856518311160668270137375311364656389253391307845833086020920114047096587945894727482771323763111105725617272723243376068984644026302623534378743556946097398842744325249809396185574289028377628079582436216960310492332781540974617672682529031946015256393431601722514933275069772037155515089110456564244006091460233968487120221936584516211348539351852141856011890140546862506347102042977230733629697708690663426791747309324370258147152032151001330806129887663656877241084547586110942536353072443904478977466841463745229965684076039033091495026701736736200743351025762450763306804305394639051812201143265292309201059134235487507572463888505720855510207621365701114779877432910098901359992244531127704582039960520971532247426905623992843506435444685871494232995044402824842803547022314056059751680573146861838001811545110028164465058493892554664701952352585039106040394250104370416728522113936755465048943327015156495489206426268258710805070934019363597624453280997658970774597299609463702323660180454664777945991399521547003893603271424895702115473674975041212880089751493102212977002464727194026276673696327866692726974431141470800324841648423269775891669027063665081739058664331952015874297421286408319508670081188170773362118692215527830036752035324849395161760062448331008312911609883082766584277785014473014447840907624478533603266591463062485141289592030866747391160387974216040242267356455755571247679065138351143324266769056410887267080331431111141348763925272217190711076174278704101579444285544868626329415914319962753692606544648295949454084127361148825612357112287176547689421099297819534025325152192108718752497860378101847618193810616936011139705410388801324566990026345519917386046775184166685965315264932251059534582928635967978384900077803369176492677713562871051878464743106732682323822459825252942649818817549217731755700381230239719074335443978076228532003509026393328644623983055106573381512408447843021639330655250084445968269112514812536541525727734134250049522273894294751792352124955576440230799544232345509917657767930470204874908419607836355795247377374155496004913334764301151465034925863556045682864697564918988125068648475805097149917452075790899916024790824096193146909324764734225187292239085725892872059178288833814338020564330065453909328646313285080967175010942740133162057398438252575888695800207197458277209558838593088982381305331348158036284934104364291946951204163499353925823966229915404607501046753396198912906347505151327693703410356818341284051822182600363643806671177287838615928235112001664994630512759611067609960955918993770774740968174050492035694813083783804658696288327508676399949635248306647019950324732447558164350587538796186931847696954934503876404053265463610331949467898477659541963797782201899884491795182985256612272398492566383434838723837109139266396885595526474887970905016612062440871034491841584160313392394779905454694009883618817025801516550585709182107634273904347343175337798901912759457377695646772152309176988921726170362507975602778781755004180134149151705236799865152401574824758024855701591229491016702103230758182669348616561812456868722950579884185973448089156563446717485440829040888240171786487501363522116657400589103765223875003344441317412094938999027573390833638939857935781603386043623316554636019400496657316294720154093778587381737698219793293371358291515805779672442334416917206514845439302788627610822990797867366373656306232573261385780518429516903955493498531918268333738523567014956619650519000899583609554245015789423675413958622432427182088111070605316398876206432247155241940231649926825590887021704979294734358196928221735741948802324531236682232469874141665609330904187526283117584584486927537493204829845198948893667562205261026406486457356029739995702377893533436471600590654077075347918091156708806219213795518670683991424972188997946211098038058394834034463232869158745694501002139376598276987375047112166334798339567037116031985035811665498845367134698052440795037990207018757318968379354785649206884918169841856098548337875707788702536767294891646278640178741823289475938396000682818755900388137177137615245268391443192750562455170733752937499601425297727187304086938237036615548763319446265925749623147798156668271645649290102987370719754780801932091958292471213714023659241239348637716992097746985425165509170126069664911371055154383143192327174491074087986747855544999459111172146834208363531523845834275460912245559027100500625190390184705864467992047948142502607125235912001837639388777051123558977056072186510151686468758125774848648036412435654995827833356429718423002771333391499545914650686145959881036286546193219004750128215134782420481843029135768363301966107166820723343240123697865042430778565694798874823447412682315435162619066592296621803894725061977851280029126579547187818743114640268620083722134411505592950521119331485933419108989211245802491894965251119811820311181962061899220252213009615771702502477075716043294109464605943044309060959785635811107780253116635326589377743005849510091686693088331932807038811889053828697519876054880667929108617611554870192163876660112701353799864108141621069602839895990817866114166393131323654841983184748854227306010772119021163118486971434583956917855146453273322993037991307421815643942915296210752301280596747012622981717725585771321845044126079017107020772501256841763579918591120585773779168563041403145823055962608644419345107283217415046698797009154365295750757251582628823423502564843233065155860708738883767360696678114981142057639521441608370439219963389835764446235385328327158276575301276959723292976212259195261444027105158468342393343640008569934849736658845094962846233213699930500390416534214012714222893741549771313863601965296349044920517186828075093220809417404757472704626703393295888632735664417152064185688576682305791730844779940202195075900912111533733827844138987177307248841613647601577207465737421488629942746425394153766062374454513018526066400574914788438927285394235960437466145010127910072780732510752156315981613853116118242788400954145789482155442307797603241562689394601458898531893744457088369329244509518423520257804050435101613851405718263977515622356641427093974234855582523804367697977153281872686043127317808048194453163947168552555720612117246797406277778945513056302025390545515134024215187168175294433958945364082281136429397008301219751665838150838693464784814583468838628267562250622910632296500270591200467800309435169233914925271373517322941618445125964484798637485572040896878144655876554042437874072458918396226272079035032311725533010276417047623376636695421812165889361738727392350737507681773283576144186279480662941974518999323700238292398264444217033999308614367999270986745202380698851817658126460448677244588439023596645789052549488518283499026827198319109611885852115279717041258704393809852863095673280574122095032814086827399931161055981681999356172532775831890495590280218557791606355653070832398423679612680099429369766491632066687915189357410106369122644683559960151487240696360042816335887600581593028659509909630195234765459566476567270381435300246950488334291069273033278800623105949023726047438482805123140136413717345215590480237019810251099886788256331272908764871244361460625550483581099964234897054340487988963051866396508640203753418059286516729806386670852541305045179389065815570869617246346744014574326677025296752473936917870860231975197209305031182271376941860719851822650393009437362579919963310421152623187148592076824248463741452421819282594625707801690436945743450103497635346842303609419934699062265376728596126601636023616150366072704240028247437302109228214148566304421404061996478765851774804681297504454213172867901636578690159576933392174348731362049200472929946677288256135717971800331777483222780159436304673559245273601032789564765914549906645875307740032474219109597927817873724828632606043918956395278494394595248439144158223674351720509061601315798099176458860980297365453994782412437738195131558691519924712072089268627187662138926028801929397548222608151687873576859567527330062121120790027048911107621913553903347019709644372419094797633897655521728730485975483116508486110417414122118009761835540636773417657446037963746892740995922296903816840223044791258429534355482468577274663006968799802975204484542240651046962144030987826963294727928741271275352996363260245986031682044981293776973058278654045091452705069339992151024011643221467978343831068687900466573638500848815081817308928570406230359941781815200616581131234743594768655312958413684605829448223761427136106847428758772134762244047959309020997182556968813145666990639714728918948651241843053984455527583706268898478705808355001880059333317139173797954787066783775252069937979833813596792020990941141334380001646944286749850760055218983814385043215711631286771131228854875042887677163878983070879793772255450883803139836062563834819974119568211518441470802526499320863551741241011809365297913491003504603058986643558805457778793350616408270403395631354472652594763507270831110383079733873755450082558296083478119456248039883642618877361680018727631063370596768870914490676118703343782349208874850451886355502173977828043810086717419791350767885669480088397683058700415530794623452580208738219927304465566596697340191784794171541020607784308543857632740678170277074945348934659307773303370027547515430684361095294942374542657775132992356952963389990189136158312363201122781028954387915954037496952243964728245082407577776757224485655140308163323610210271459771828052159140826017672935503137325027739651881097625610279405830239458665373497415302584672187817335100526922021249406531879595498651091948441825884074473151475703562639130892972183575077277631209749234438701521225925029686231266029753522364205760525652865111037680475325021788277906167316240251642699039956676228062276865942390458252572778673158419433461224731661142004787825838736054236417861919581274980687676676637814148116770841315764515076263897456015059288761306667833579969712261970215551870964980687057330445457720719286264137188008060936440833463735258885367018054440274242411855926481321561575553721810487375504857360406477550359595346577853953829970404429460922655485801112803220270815116361341422685168882763268997680941860415515185217097172810965624704627860339991132269250317163569733112456575340790490877363322501855172510608202772634210635717323561120736427985529896388409558203809313036066304991701662001347720575691543448960820450116214385933286205165066317338020724448344348529802960255464230464920068317529163725114263218142516806937394659399640399210022516306424784239978035799968392924722705173971858121194539373931509036421148330092870414258611466552082677855324883172784155313398127197535389241878263675227202935086724906618404749023357835351348026945310719829085519643328504139221507074869411336952254039141429423722638943514445924034871316564174896965013916494128051079302308231954260145375633410401862334944949756436328023700570737380444800878782690271513998980930071000208042826518912812488575827217576178512871836755488819318259565324971453602442776731163504478109077288056140751706577058305767572488789673284184116230050987685689962395041062202538311611392910216320018080693162716010513389644436640199799577238117734115793830793641633836439624724928089363092357749749585554177687570750945689034661715118143624631604848322420233628344095278814633630004599932178995780828225936171389013786311953823029719675638399270511334696390289440792751910787760155998977631801608600468535550834790593000881698204235059320438162735608906716951516133164161328471182296390110800082682564251777148708461971045827264505612845088302585593698592313222873013217945468765043644690403899508298033393890044246882907133493040497684885305594142699934588154140003029949096039513161436960597494299961412018812752218095159549566430713900928036888763953612877380829763278516573323580408770177621660267614879324650903545168224736801626146087035512803866207947454394674350286486680162939805258228463425296037218269762853824421523045781856667917816564958634845976729865575918400238460336488875791100851621809816270014777117354853516669655276292689774756775885946095804264863092269545026089590494665087048623494875360449296114128471072670078609824267543293572744032446662070985510384978392993641837277172546467556666080321292528158676698629535573454693590289979090901914566285976253421915918815012532221805038051408290940188806489268111197355069843694518865942341892476665219574949913738056338661841205137426276129559154008612030571306919885481917349850831716500889836914129529524986844047196224663700279923534791888542327892559086369804666012458953667105454138410183592253435964045777022365059567484360631581015030038239484041608427615711754727079712078868910054013615378258044135198563491523962964966197626199467815852961123099387412931255219923308860585807414927477004349970754230588064943758584285935658658900880869731360201803916341493354171655678288273124875591212665234735957627654101802698456516888640383964885683799906113654355483198190072752320228178399516522839050140824882095820286545941798477099935506576263117298898501807598523789176333319264695580007279370170852333199411424901120554545177261883996562172803732288038317866100118481838467966834000014306067152420662742446682603598575277694688776705727901111287604587078309540485607842844904366686328525670867535998111419545165635994010612461122808851075730908253097144861279083629718431052033283922701607434618479712165534310572921119397703305176309633041599001187065839104806922314280865458562823967635471450951769942793223070666465464800506390534409556157366596448252609296366778774180911680432613844657937692447997702026949943320724088459297348380497493084194144948392930090794443592295729907880308604714603846559051581915139670053211408055374004235351454810083427448669696516785470442340849356500411166540428772289085943626992250856393746684336355008853542888594624498210191981662350305231198360911086476039977781608237362265011066173912615543734084306752178619699018846515017387342742361712206553542884524263499980629902534434509630564618177939267819101290230616510182344273641534108527419994777408132026496725918120888648829035124560275070457190243284288079404184778598296733133181068491742343273113295718670265170309505440692130129665529272836050688007809264084633036278975429900810012633654578446459327910759700429439528958143217122709818405602878048964436293059069277992128829603693362944847537539529586835952003720265135824046031799356191028087671282111436888574228403983052692500888158679129583596019954599703047675543678213053890419379026961774522996113873032277085107873466728756545977667818719714166276594853367633581871586500959339476534279201302563729807329294781785984023397200988289801617266948692783197471826135236732771129490794453369110235346921682749422522381107905167695994133613759272561393578218233236782800948187504729279124520824189166511391445840855617371358588825478416976022556674592502047513962541372961224203163119184909477881204523446331801537152148497241304378973651555594767419637172396501990264360905223386419188921198017787346106735645464680574631456487197090435757885313462765515570054634416638524517087735165368942225097613201021337785448075486724701872755932517250598652676963491147060911223833083325788268673450104646561164408015253396504279396204078185108897250479806798031177488074411079128074480810245882407892653500141623354050232264134866402299749644914983541618436694317580109697616898394102818185011173837398013963594522652298228005438533078960931830224176510742902372631194700216179545817206403345431634662378111770890400594524085962870969718828076107026897793251950112713234101714532240947002786662090064935877036363723618189189087980453470957665442329121763227732310272479770629712423731612645521558757107448252883403932872178973053768774346277193965699325692408863071906444695152420696388998155718057709932902185329645979915366010100676982722447006323757515208543320505240756107164536040999274385183124979964116017633304904400299181563372721460681102736568659360430877958405745202050602010869203063991762201138343151304825072977731945231664298891652638765986718515966689834877845397187395282284443520427844598849083010703865301989398704461700637590186849717788435602882939104814887028022069011565262242423354254155150807929578200331260304823348131108357443183474401115913785572273546026735023811271058980915778980191651776181398471718610732960837030458815264454059351792030461705951719193488531934585477937089456641344533705906101174585286932132034153579920869703052566858089647312557393395410875736225049386940725525738499126300561096691356688326929346633288611743787418023369197041582723071235162273341471844536333801921721529388989131017975094268874407618749874970608458471516631505739726159786310666193700709975372447866504233038206554047357945127476564295758036351528198883512552416242553045655462262513694988123861400664177440652907503253914694731655498355535639605791827340163227254645079192945829628121462016896456900146278319206941220981469499786548312900263497586967377270112091992784715707415374537391136614743115067770643206834961351030304627997947172141628986008142428131716403327285303622691471329593322485797185358968994333220859014899824025134313750282470323683120061335660114309194714501544971018500158024022265631678453749863733602653603169695418130843540336703242666236652398728079601927759670361598791220652226032337893077839706215406588643518447318391050067434295305471036530653198095226317957803405592181012727579017439301875680377813801063906697721639417916990940631698814030177516516151639864899238100197557446494031891806977686642697958804672175002584487202016818457117631903993072849636744282763645756797492989292939279266818905045889619555234686186913084904506339246993581535840944043412826992865571553316887067825995156264103273569861547094390086910188318872757684599792541299477364158012246489872768930250659757304349528374138600154179480279526884240648983029695480408771917601483945508322679689176335694409355670680932188755165640489020087879802539678039525658245710415327035819118598754041474657978819131583709540535137932013780617130460550616374591649176721663072083356484528280638938136927958953199215557514992481579832989224354534659967586628627063339280077611446982683288061129449681623494396811598434841646331086609528766498389696546525810251595885878952767744788164814524333735432200647191296390237431477668094342599286764595881395787250732781719660994719459423040736542926255446700112937480670019706643567019751863648786798779472036049686089402846078360027691096111871190815418748710706025863631972099230393216769826927780327149854275425485046135394453146711111447310141266735939406660281417581320640680401874028808018443195713582780722117350365388587432987723087004547915037443151774825533378562265654505408532033177448526783717099407791084719957746055677938700615943885485482555155051597427589171429866428660562388409067729157600525471817540795988372137694847088377538646007789588926378633997609411789851277713082923076116712954521436935251657843159555851936081660341987177934412075837519516544058967298970852181020995897846837229341342820059435419415183739363829038111339969744051603835173269294307409769264600465780362120629677137181837443319445949958337549158745692510974472672937884788230436500738863615840261906185521481414470742799139719059170896663450650041997154916550661208410742324991509450022908580918001339704587761240201519360288851293243292669341933964266205677434878413081144717533239552969657080228567006528001555829453406092581510839972177331316758739317721006634647243943004735829875659263569998561160557018505623355033230040918798910873512759357686774638693538372909211528279407254690760197544351751221199624517306040705909735394657868121648704086646057752040152888524244446569595800401840593309624732524622317561255715481443304270474199164937112028973788097327123079072186355001363322772348384993955142079737017384663917552687287630017475247367916636521173450500338431564661330879221134101109155392547480904059154219752498417416177572907246109780369128798575756634235159569226009398170301183406529489099602254207105232257030076750636953769408755896184096062140653894453835993539462403440274407360755883358614345632518989556522402906101934101722109468273982030875652488210376350637483357426928414609355361499869316944771773299969928445225676763887373252414064197863022804632981666244824791438758947996362945499230041857269099976767019692005760337553701765967690179389662753387192320018565614968192379722230568902950514585503042980152276837112851962671552909758541303316029891251794712155332288102723996492489009825896121895507773125401555561642843170631528094725769611740282228918716532075852169015922254008168425910229987861681686082952212175520367368622722778791228975799165863199817929669252869981774673980757747802674093757570919607999923595324819467325365891735164400614382249913977769999291763675770131505195946052832245161738081387044994211100920112998004531111473885825432778265998745195954946174829204647381731815889047280988084611483309365798690811233814749930983414784903510021857616070426619213804837891859550639822944359004089745166451266724402900404132259108529230655846930256672268987005375300648105838897218397480105636950420049627409201729937299029876717417032638458832596252238799221982307196065691367228451763294107654174799966677629516823259995307637057735952876089116836535689973297902386819027246907503648797262590811994505871282674092049342514095857609159865170201272549256233397104129863928940826520519406939666681834404602508842437154358954622824532416490184616778107110885459030536578956426669481772098823268468678789476194532605770401490946559641005425544188230292611033263246593033335520825026979586085466127860153955457427048447849063506245531562233460127898802452496814540657144731592677771649894518785978064289025169072414144622424005638964752889699932096207767294700423154721595079939846011051196608009363886682769478883266771240674147544259015714018431621974653360764384179632779249879897451030716506454484036855604720051929720701618015976958009733480963676153598821139329042188767585754309543320630206985916412489244067018665888839760385090693113530795473911552901722058269259086248279201994916939196843964334866142245174274371363090862567834447084973878367173055076907238185268670247280248908462410135080037337170854807829154349457843653717239389516797999031979325476749738904029511356430927048202175313534579640850851410937139565766164514523984704728584168375133750896485623272844546156885647218157618357287864211627896609847319137757520016463426945477692487199580045720931078882364845085271405220299530950320060293276388627258072965479756153690422827232394348227986773752028179247026588015628029556545206534241132464644833891260317783976983790422463203665033322881484924551648291705800662395129710329531975040413499675509751213537545629945453472788750290527372795413767246040291332438631495073229122752714123415401089138638765702913202407553972829837354520046951809219999358294854662853061268081579292342310598894767509996722221307810425040665358503967104637939956196857748491843851994841864263372737950418597020433911152679514733494464857060714964885356341631101296705031388468840196780256832846420836076617708352189260721418820554315156079577455884997066947278734142742767600978072152920478925583467258448921642514044580620734482605049186539102858323771818627457605380047117898237948585371902786963273361775662886375479194754513375034138547982312410077982345522663348921592026007431396873616023529225514327250711431176363751823327070694766627250628869886127772642369269709626628102529809373654403345678214448533707453326326214497714593832974655210012005825405187215385240750899932589440503695563952079413109845544760715415810906968417392747396070371276119533146259441730041272000450719056828677730102381862134337850224487294158295167512702820256909437484815251944161534806280894562876268533495421631632792746755992861848890006482747329811537197452774996416085010311561215818225323210438453571067418449843819026938403902408665057816001373927343703214187411102360541446041969282877950939415867716590742292274403038853505092964796623113912930630163622655553731772381122694657475558511333981693332447275326522125337561202792482275196390304360471472096091168529323202223509509148511409589128576605556969286172889235459293042335814760720830317682972376032972955196716009719461777179327461155692628342166099329706993533058296410521963821363237683432144092942541099893115608001080289207087388715867901892367225865628241601970083244134795757131987762369552146355630595996725151584333543578462840446304207038644129151851950679721943270646951427118998058044025094687289457858071632332125547862306604137114444189728709220114935165168038971316603040145585897140430489455042989408740186547871337800051568160473614485703592456906452652122277796705595698163795139113557297152491859869716037889731790454021311226875785213645143681684816240580834717935989357059242278754205309609108908062510182600243688734347981442123940326291166415361409648818416170577173258300998067125024227153198940252759352652791394300691333247109876624745046249791341221948430757723696661431790005883393016818797605850733712028115670360505726149527531250671146946594529168399159779680752921913360932064076190976204152485153567588356287180522718917937763057535685568789240650214614135924200115596141999503534695980602933638737832132589170529743529062185796159177747796738616660466980539431902038405514983355749134453650934593294286672105969544140511471326795719231332324478390383133830021234220700622716721403224024003137536978855442732683178245934178596182407038662056185679331672614870179800729045726137044684862682253890227258768720716297890471795434588020999826940941889000102299468846077455912819969669633611839475812455072457401894642607587475252293426932701577362497952353607116886673274801467464994985910557187349345805903063930029913433394833856730444032608443490467749791833988853576807189567440708082004850946900457754741982690250367680982370688758858084617530013990485529931337837619347112557676933572939007206376868201285387421611805021311032945460335818434850607041878492281502770753301762933133031907244465981283022857683382089985794919719202075170869150703032017821040357549812747792842983633083462661821331693401347408684697621512855105874687764539385391171665668334370589419080482587274315773447848615328889809411404100615013628661549946088347240739977068295340943131859471264980640190998123047698397684183700526714235062134370254446509343631477124005141454167005911244045608451126436594280781635994277247452219450867778308755736446307091740610033683253952685724602738483691873636724155193068172640856606849664834972703964398837358483208714378747931513431697359790969121846383143470852560791795446943348801581487917577904507439041810918935479034816566614056869464851122074173069113178820623755828087709072854396360029710753671042734043380013152913543398758236009311205691459381675186355901242265483755655153678789536959901983158590938813915006308466528338579569663812182811003823409965387406739361818684220561199571667482081597930181949768550595053406782624493096927060603890030203378350794236031018613503531381500238547971418105247831980674970184424925362150093287018861705606627770952596320834988312014250558553427387187411936377450716752074048097194476278031098575646147128054105481141781158419780255889930654593657782281934426743344990610220806801707842444735219508582577073011214403569182182197226392820267273584579928434251607668734566250433930050058721112123368139250514684376974661375566754280514596240663775164527384030628706555368706747265046287597848552611262635440189516846895954215124354772528565788509003732761521866052861244202979248267002428481764451765201363905142402308503152452761905797130078365193969930421441288330421426693117704503563344082883722310625598429470330815935227140652437890136485577111730280167670021302525965904846911273164572837727396846156065219027416523266535906682279280142079189973554586887081665895426502758974043794876499461953074556530117149692050271442952717110207287843435545109823039685150010743613340728345341693135098071912561708098642870110037706816860866188157422456923921062972711913453886101660292775190627598988038891554191070211337405605297913900555199474913823739044453538476031237008368543944639427139384455814542000344251387619017755915847010277256974190593482951397121726194848044956546898414105372566828289955280315244816536119527692578986192265452778946703714253304268070069046790188385291405722514096957419149279434146636816492996875368736941528565350002661244790531562542319584168112618339727141158855650053962874286036715807966738288547410651460151249717923281002508830167278225423524345081103905478156082065638623479948427218200479477118984616608873570742761146553758184263724104396487439183068298044564121820165754710247064191267349970895567507307417194215497322950804455072684375168566902683032059434012405479051907367238298949751549925671400410536903854816325528490845250092922776282816592483685909245402772714348060546604796780915836028324709459324985497592287260818590499879268959686325444390169512845598705744121192107346432287839316555612317887680251922818798443755025415185042839522287355239577611725462561066848755722337156266749544849403428239327017940339992097250912916173084802478668392970539096582786634655606642067990586236421467479974424479306875832492300814541557476480973062599671926265221120423080363641359794129498566777049922220421926814061413632182253137583788146463853652371000959715241139151739262064184390921591818115927737779138763045359552558476969474583647155282398223905211256533966059887906232176944778042773847020186593339980906717604407218413366139164960789674385179833323919543927902988434125896991633568668948458386910085198820366607414926126642786387783773462563723669027064814231341610144818078683640943303919173906494481861248439425254480488012083134511518811750562274951125161069830432155727641076991887174543675851380733116342031235357125160502387297398427781202625855654526696717231023956602299610247075349802587591419624679231058077750484758016684931367893029343509037986719719282378339933854488250858530751595627822412810408803402922894431941191155021606684630432904101749691421139892660895483398245288691988558553351806046742397922568591825151278946665277161634794204566695155969448156851418167093043786068163207650977642410082966849892609512141895693221029505216403591806941911570454391044448230873201131254747151944439321532422415987241996008404618610927960888361814784244800852962596924286644106336577772238552122956465566468637147205929214286911224006072074332718483812632810946931122369248414688106935197840152592026284400513452647989128224415882344179860268736053818165117383555481813990875620227149482823176708409728658589608761767024497609328829790288175640962592464670856498927639866884108524637108686245442636255265137924324150872273826269764602654548440918062425976074585425037848338628774321593931797493249340327872412564447305658748144897888086298038004252733377066830901554490080699923862577856518492404446587752800373461821659293275670146285811189691814306537597341694628716613454973301926930398262987123146377870965628079147382131522622589099203504969973707112869196879171358032658048321136955089616711367010999347065103457095860678706755407334944748148452176587601106991221477818063206695402569458572505410141379839084248288282176197634156203063385972694127072825721597903265588310991079724203136632878602346550642425450163131164735786569559828935797262496688324290044887382876027858827721013925234703796439720831003394912945280602635906966451111471779606729217623795936246662069147331227887918767953799775300886126987999789542254357366595108520691950847634216551398228046808253151984209452669892454288505490074120405882838224635939316995793953120970871139957091642560819293732440851970809982335815756636702385373389364341291698642315433073985071692923038225276862621022771053744413112511120332419341382616343222106147656722777478383804164926112934448853751967602306029989701530828572514559945348711512173659784839780902722482469240355767807019641117042495771158780979680313977490933908702587265393872392530751212126542812804255188546517488151077165322973181547250664699122742721454534788901037199757574744069773919239428609062451001558136046291602767525246554042501216131355320732368580390099432979948673179146622787168565059829762815435393913904523607079303494370541163653399709640531089438358707412663747318710839759008092473236747548661221900078215750211588903343425521466217598682811733603001526725837444506246111495800239345370052924840459110689574958620024519556456277522814473942233863529333874411246520831775095497690794443287247750135602263114011273430771930158715628505100404527509477312539576274229534221834894098827430490531708549418540360446114156953329535371320203593443703140652163315847355180889389380828165362400003483578085541513340122739939120936066348773147654235253513096481234821280463445130295364134482656481852924871667662839864489362023904427599554887306529685337631405209816317665324086855735220231124485351154256847118287588847262764852468469055059704895102040500155314180655972603026510562771470019956712776362079856604934666054534342142814238869875702278106539681171983509874054893774490453835336285141332350470078845248803591483994323683840330652338658708092751254425768368486247584094677118542825667279376921055927259485437953806884646067416014888351159960116013282231159931347349938841262376811757625654446576112447646393524473039038329086611453507338342788306867654232578621611355773400257244496284838217991758154797468288269151566518903341834719294750360760824963994710563415581831563297044392930125393900002107010917368072869208111590828874658607288677748971628103025753473503745345398984070820390218799290150178881823627585629672400877824308461693986208586160941316115699467966894230301505923899329642052680409716317782299293971489946549190639312352457015355213389302581576454074093151348261341757622790819257121132708974295715205162153031366967593991773437615082985077343495106192474277122488047617166322894985585048426647405794821310034097758561452176088212494484238053529985098385687169505097664138109028276682664532457434957611431354028340103887903810516828466368805512794632422541569375880038627871422419378763119661972645254783269239363490806286004630247294695368353093109405079551426413550682790566536696608617458039644277149808612076698178756958064639103869172749357511673870664810058276045643894637795741946624456807231850094188085714294532699456134459363151438076604201293069218166156560929963210235564632218678224316446399862006632296986469427041317448052885276948865563302155160170093844146941259710799662074685548880578942732113689543492137793626456662881518206800137350434209247252949579079868642036612850128675716450678865230317066853183040697137709690130869513418899756366207330726114922895737340617491149895173437938115309611142260561694010655852995573521616454441560143616872954558034083854386400471721116831607015125260697162325313490158418442740488236943213497935304138915028566561044913339969793922502483931093122100028555418959248268169589929190915192846530771834420598490294526216465708390847989046201804928182253111447344664393464098869456216218496639416316646019335626441828756469715603426332653651060847306532108248389186711451682677490778336467352893157730871093958559557370455526582601256264345447691502382069273377105993099706674182701010017925668452475360399024256394791048962945114218421308633709127094721557991449304469812727869378306457003793179267256880100727488618890482426112238281739914570476161936716207652431146973165373491096106623659506173798527497680230361032136381112847859957088403275543462543752688379960618986056728011049030202189122712085394217589307720898966933082311564623798730517500650896580720848627130705139383990690738278828788666059861439737902252144249724262736864994280532423098950606770534149631821810975173042004480870133420695731636208344670830587699145055061161859210081134255682596062984905106639641796907141902363295551877144029382731863129729254562022445865007733204924568727096152769026526428945943021864268497508910909523312344959879048004746958190421642661901334769406488751646300167862701734656795384196719269655788605820137402958244414483182299713392341880296890022749694923530618541134106908083966865022406615628013211612529783666738643399589119558638478551448073359998667415895741786200148052654336625181176148075498357514122492029740809640884888851045582810867807216075843837780610269441663832326421033909848294990543080791389388357759182576753944023959350000200349777684173096782284064537494528852555146594724092034997926475374562478966684040175023837236663588784126580739460309072485215607114294915779088702410208094293105924091022259804794378803197056432998548665442262993636171564632481931531068956523382293180195789808755458337065891431162635655115176637790740380300027327664554698560816609264632537324527271063398721722751578840331112074950372626894230868604424953045067473469978112847382869238856587342348594503863060523063640961772039084561192062538544458264662241867888445450954053788567390783473398697775860938243976903261120804151945909804366529744311369446508059422219485912644144736177058994670753912635126691466239302175440875003553260130574958236503987465781234539821509783284449637459180957321843315088480334526567850113882928372867317586299095860306350269988029872167842553120694809939466882244605281656080676560399368439031094275417926849581282471397452376138606818037784450260478477032482566448681267786533936529786626136575987545805741470270128026024169748548073227664402007858166556296669506658519931600048920353493393865365418842489584027853349310744777368095438318108595899056965526271334155393702710595801667957275407447569516125399744783409829531302704558787542478589271897339840536960050123081120638322457144079493125622710999060677546464874846043020169753329149273667456835220776000787407759950583660824779007082911688898896683755771631188556089825000754419945941073331780022144732160499792928056977843128003064423681082158499880773640546513787641927198443227596610809358281359629570539950277138309488018923410396831800707683896537930935288624060347610913011809122099574933568144533130291421170196256722664472489488058107171468127506850822981272020052379949855240869011038910976807959448485556098132119335151732425267948294391877129061448324279283752431376116384456913123119238326824934301712142453609402833877857287712403609639164517081553397100924253295831827000529048126671075740822579713197375961708449375292025307851181339383171829612007296182144143279877108759755123072730338451372443707481043390580723995437321378234620114807517131186118369880143386276319293150640894123844434544730140734838718774133648181850465382249781508094411433389607414812723664558709671396729212206137530492777876628547497795187354379990489283201752484354236206877092039343547276606569842078960949594643795978936702042941430117688609783685947768131020491284542946519668448801884177292080079488545641093217446107691171118767081132431628728142030430100988721415427336207548274365953791548155767532330397367705981335601738252392401006195328892151078521692485301008966636750309306273748871728525343629923991173346881629876866840813865460591272789727188769043777297537716473064299635948609126858345337621746421982993616493090410779289404625243951987237239466074126483884814466187589173467845265156156457533023920999512141368190856144453422447712157195929387826324118085686477654714394983923140108931428960036894904791404181900907965282869496012231938360737158064396042691395914174292128502826770607934025909737674599960417297973196621219540959215004888021436864673670893907997782015013631391420716817234262959197309796565752495456091493648978487545948638959781341322187682895994367538318726876848791064434657715579183364884436083781184777149817210689123531050111889209276487174299618001483601221112374433631591003953246153667329053804828473736866936402384537072014741839911246146307419072382039048670259375455672694547940637400903479740401448313677697795988878464943130692219411134488237194035160452574491158679388527312394515363229819039608107341738042657853418213686197908580837836760774288401476605149721064957305104786644442718410939031301411712140899568085214695398971907184037241013629637265221565092120907786889333547660559272178374545140766569470690519352851148588593742281478665216888417045587634147006051157929190538896545347454823789622273754975921191633285524568227488184300773221189997273037723369754118144223692436797349838849702114270686530361291830162322066178060255090107268150670927263404987059596370280345921270831300810168963324870063528852665048489010695002292907489723204315656989921914818366479862394236093125537187225838346874912448640542125272911046447375133678913578379294998189496604699514447980484154813780549530964700360962001587782329444456082846935171160459365222511402179078568110854682890149681254730581538331576050189178966660790391500320280378592046445445380294252723102130107030421376819866116138893053147446201531185659443821924341863785420567833732790904943510685160191639716348169680673135779126954419335633303933163982566464192956943998561423814956542309085254855434726630156263496522857624737620798008687972985225737805463362210287990278218014867068664029455265937581213543412656606065178256580321396346196085383310301667691980981141210365437276452800348958998056393727204880091528549441880724134962574683212013173930841322620299569037575575250777062874248334701928933647543608231603423535525403885179525251295409864557151639697476275493857880311125728574988284822401953713549780764931002872214391246596979968335800250556146520742888098805217516059141967374596040111795682927572015971077024584685814679240041208251266897385022279212988662056123437577287540134225719552067781448015884963828161776387730026019873743329048765654336724482027929035449446658794532941932248588449038005583963622844061445783541503105267619986189704395109711372200587283327952056541102045772274738976086147269075401018034186708820698744156400849580686197428176320548728829807692818669509666627115289260420820078835781353579897403975321708287002142177722646309092119419422628854707811337170208296356533944768246219869610684857391652389913194979891184009280584795679232473208944994825112222534780632272990491507193068223727593029989539596046971515589634591937117801529660923094365320978432615180758395217268041909971353917609075096043101279287308258603321588281469760259777523392285042686487233444797418448413856149077162457466576543146459072665555486976645065389826725537105937979176122863045378397049909176879602691581069987352312669344031273395682571620171383634553821932738374064620961137665979478527544861584948613507496579599729915088155399687138053011862003760185174626819523186317598054445554961742265901415236817511562450677300439042309943583165052774549730719480882698066484550492002210910516215451985538130441920194469442172211881531737717251136004492025297575592847933359533447259505636621730483926299103390663391652647708994597820551966798914243104235689033474744912464543541123259155451478125233515313980797868122163653314237295504872058963399839657471404024906071279642152430369628822933242361917999545303396021252527357532679215983732160851039016759534089213292761262625314191312627903274965117068864514094751420133860796273609873629648939068564449534326015565796705542953008500655906592004002661002517765071943990653996600576668869384542209533110141611554785440930786187704783151339763496660494641782177332590626268406678052191870104619640486523600241567543314545734724822540723957542426412811316443769936690254005550626012380952887245011430067275190457817609476814370174494233798515496193028483465985514445702777058687833842178347515936750472282664586310883989884364934203814918484257919457018215989484422351002232049879621748394351866222896228430534608178718202747808488895331528518024347131580694346866509544579496193564620497672060755742969965005355373926602152381033299463480225164555508328742126469104683214967456189573662491873400141794754800646091571874286117395789575867029304384932455875987934649057499414101696154307722150089160231241379915279903353243837158734799121058472691224987869755614078521534928592455848807958827260332020900582255872733459542477393908685640047638148392681763583151315610354837096560185399151336715672118329541544421047317130625900170951495339690200304407706499079481893943037783388721029459519805180436767341290779822369200528737368420360825189354242674410148969672533298114024466498677554011205564549130914976842607346691350878079375297710223854610287133826635881064746093671268118548714676389230265159968072331298119364216647590124102285549394863800247218851785152518675210261297094911659023294328727081090636393071049403903076856128933168552777982620565573982893889244681525158372397710224674023772462861158666412785404361092219851304730105764247031951300166619614005968167292019740306477532186548049303302996604418772558568164264820078007406638154999943571758770456060801662510930889499716557466299034034975798041621862945294395093641580753547053290524621598825234135337440220415427971590364042169571437750179791628337558159745287622881757058434462613200118639362686218696378610309166042771397152316506031801010936678384896794942710604135757782074865100963132703789325263528733980315813767884624709039122289626826356346563900994277071258418248891999346976943210222856851605914799660367046816318579593827122666853010750955323702830860566186234056276651975464895408402688274721138416153472785173242122650607477068264644798114250636727492844139700753464856676315068559795626432626826283424514399319056465944606562361598714219705420347060146963352522758917505347690070654549141959000549958975210731195410702412487987311545450826766448933000417749953923032786924599847045852876571769147630352014066869754670936787667451685102838723361548728620249517090520662396744484547852398710173508106896818731283477916036755538055058750019516764047762067379843036114378797227547118746149248610095253247624470130357144724440239498817513066846514517233501531528841285476857747290184907908657925751372659544801489283447118090090734797969017781890847610165263446206160773037890699295077259728425266840455427626434183273886270519677055592288253356649026654510322460037267680156364663923501836236049045273853576895496099486122081082225988208666377273704599909649786214332901096444835936929651140684343559514688556380026061257542721778902377785000520067460792136374449852072031430950912256998187326109773743611769197842690192579177179324322656051165873509598388751101230777991669842694592562901168482873411531376818850370739462200536261454925534746237978326799571656991739096920374171517121626538165255135354157519637429332212521682659831406206937158132106322992833394590944903446081385354125882063775728915552456602573505425917987562576952495690158034839486528146397269329775851039587936214163326826967501909756987626468959248758287438247251015504960120872468090905032090541022855862759732632979778918088518355769417962059412121839952013248297602625010776672464023416072976824348803257757736645215107365765589316557680627952202153588213364662617136301994412332451322372647709878382334671453635990166691211183715482114315415952832653297195749218200477715266989146331536644323295797539976558196681461477940270451914013785444974758209938068977179301629126782643193212859046048826098561378830370548766413542765407212409790901430474667112563598609192650670025996800082033455765128742557108469810125780209690155873662745758959431396521507500926883350471543168129128431583084833392021657542130812238367851527287582947371412831202456918629263964361966352006860612649891027985686926372024441296943238032086880019139808617479574222689197037605704118668193342014614162272487513352892946819078591002488438420960987326577175840830967190530319883407169371423511142479916427850360697373510982955892421482475172115309255413376841308046738885718816815688235402612258905792985421183235901722940870017790082365472484341173511793043954725184877485166726586491846066529851618104792913833746641987011593767722166371271160487465794208824686397241614955195871793432225281072483697660138835880926976870211784964877656206334895241228524051587287981303094962200809544152263287485071529920152302846517854294686628395118559292757826542004150905327878880077664824157554298623933794011927025281421337859151542017469066998821687398532534202214554673374467771264937285200629887493400401888239738059379947521259155238879847652426494908671628248441142359286376877917082573382242255376062637726070349062586993709247375580016233148646130539209194061720421758580017112214496215920109922734292756559824999319555177059816043609771951064766720563761695800895228481184688459790642912303220712991949111770724533811556543750694891803419835374776752940262016339250578139976912196550795181544735139816509845153996801236847568389025003528398896111979051031246123922769140815096544513172878670745306274419834155554962436207755694599435165910732274518242618785300109617702897317413020071491397867221435593461118571594811896779869574542279233644064148119190153979806534104174235088692010482702602552719771402641971399491615018162605087631778193103942870711356220075134126483854929048885398278065573954154789959369892651360518229433200122369637764038691187047268593132666170629166276927499303602374582959892999725730390086614334345794027006156345179587388096503848209300625509483976801246504268772866489269319378912461234673873085878918603815717352743064395543034940962889794578605213922178910795531241563617901704002329678123263512635236155972673156818835638809680004785714800883194458085324765687372508838953296961115492765364697182069329865887606247878239712470020827402935779696791533370755572924576743767694396410354950041842659684435191021656464158112189808703905208042784039310472787107758363510610945156525187421666313817383522826914825352316963239922409228597696221807303931232444366745761716090247277265465281597190694633054747337935532076359005731456741541999618127808572586067397290938593623419293194604296065562159344040156682589697450221216639327823427191597159968181072635192545385698346563826996256138231023812248130529963312189800094362425329021943434758333683701112871446453507163834002372533616788798584180748254853181546565369810861770342879348528104496499573339418017005818494256043343794792915837992320076782563669007718668297871878320469007721264313907390840100343212266400954315599539525999110543143591928836652371280837359937164590056489352376125649158508396249337763073818193459216407267761525627413993165869005256636729828979723967046944691173322581509471525397233452734350842939308501750448404752226647378857803328379439582571460715436693584238115696325648573052531110208653554011339466396167866981097432950653715915158350433346250898985317206664367831214646986947016317280864559883041524269903609916430259574674302301136145312903614119128344579486973575809966047538867581927872897406428720672872249570741089152590711871461089931347449248619662253615267721251033252763758644479262695902656561244795042964511082929778257966056596157080937188561106462675590255425876472960126257723959534010456362805157312282479767788119823244005678154378470256168847532030541788843816522054404634489956787918695428745021315907037145342124906981451380310370044383587907340764857178189924275131003973746562177618958662272664412184755773808081072478209917552204199146666574980437325962879237841325006046709395556024797054720281369816327074335819581868883268557652134566959624699792780047295563637537528972385960299239036478955238349161955868543876011844720819798832595428200192979367234318717231907474922721211027085847138016472929913954465524402416122872247293669694706797491977416502028958071626319181670689192052665007854632376450174744859462100973314712025679630247732121235080477740207629227944347914155041464618963671723824102814504238312974760680633608127021529951525570083195796332536280748405201516395351976183681131679751365929550264057025487871368508534655499008387080790612998745301178547006537907450656282372296481417771076971032803726292946225949001230780153032719270290440516458588531580051407876746353226998652854397614357356433505401049825345911639907464686354100216291821893306773854889559380756013605837011393264591295212866309688167261418387402202474060815455965955705023551262811636838458054642671849549475909791932496310506151849649663601541325207466971107077689307225303183590622045089836190010680774820404221065217119095561293073892728759797801830236932697552517798874187782832479727061360102378959071411194579152123252403909854166472477246741310427965942734547644394769455934312644327235574990113371308124204877138957856787700266966616286682410679206479242539672731294062268113022311923932906481792389393396719873161789776402062919623082231462035192424717494800787116347809856255600164475903564248209841655812228777341103370511225396760097578662438507315020090667317417243276061293854546481784611500989145221519245163993094205524523332423984525223565547518584311661419055517308132386692375300144049399863496524049219886468362537475786420350519365432897757902444626017228292469038627602667867767462386833332549372160933498656765833413197269217068315236489268393228344763107633681647734700939201467034891925848253211809850518459887967260437839921364497209211392734276488878026091207317870402480886877362001714850589063680291356639506306876267679657125219446914227281912578770279052635489512203975048497301354460438488399618443562765762707186245144775883665072233460238246475493291306796849863719636639615671269575126458650239772143419142845014885267370632846292572587650331125224587716963497697565418712691276195691750612576543986702137782585992572662894252631113060022007510652701191442362495917569591632159778620712280129445793479711105051304700105848713717095524748534788355037077458796862521259406625142387327633477557153745149956912889308729649254256909775365655027611491996110146709381004938973673426101629683641391078813547254110727485125398377231191360510828584586677849797886578240623879572957350254247282417502439470436049568579685927036182049958904682231602408852848451824873392288977991405168259671927701573671965565862325184917308537168566909442927526359905483726202459239947784450248528844214501728465172228740128602987776655317462218146268225941316602171428487710434266915052112046561780929878982120444705382763370634080323331224560374457981008456849226657549348822278255739838055446361733429265135513140842704772473154952011669500550504871023672720578388894112157646618549983522734072228975421470346676402962135197447763960737539145992134619458477968143135412795927280853486474175966220333949993121363111977618580369570022052064156469744898493777302935510071746721968224577381358383595052150644250963819287102498198465486943434005461003631869904434464146772808842384492777116414596555503527352445926906938140725422807843402220452017731508429084477250586356580435578150484450392426756441898940325978797189841542987609893836858088229747758431516995627415322609879512126559288072088972316877954552565056541313975777526488158588417163744560841973438704821863154636819782289453614326588926003801404310680345450091268849698880305960433185955130215652038986980872810830885311803945536584961400117452264933821474741759670358408541415878420021153926521820308635467615737000951369121498768798842684485090932719210370595121247962893584064645448607134769164203818126579932505534310488076885710116126887130295107689671408488977869639371999801400518029477507670229659298602162807719811724519157352005575936728632448716477895882649258591090599901447544010298485185016015178843454712556061522874000677127191810596588910950370789330140803439973628651221650742151107478158700026358687349051850405031268118160177315601708309588573942258539422016476879232951766183776182462760459936981323174254583114288611960485209463123425116130665138051926202812189144252015127647630555964505788230872084362816624969885677318253280582673510097499762556664419274187118064027035453314188851758890513947908144430693292005246917617780876765219555303447320739500397559828702468698565686553971834930725252919455466799129834573498780579151001955790845410075108549050897139691624579192549322891446850037547335984925615122168996128680705791194680375761097962486323058538166519134326418157412507235992563682877903082534246972546038861228127208747765740444386466317395788478276162408884768746671258560955783418269655105474757680587608170741470214724945172313520178968028533468542460649333474792765717998269589826680529532295732371010073653227217378774910332858950213547381299268433852549243271991959078171491793426223836516695234409824068278960265368532631033424348055780448934897664732389419343865392373601057913500474017914255202314302912822370078243187874485948555800417600571569719706600509589238860289853568111294770469049651051114564327560758167522792098820101131402034592263048831654606272191209082092801260300358004567255547744890103729190670585111997653966775632331139945924221859134115532553223689535073986922124122992238133337044943914208274453052942925534527339987761464641669768176171671786952036307365380342241915443486694140036231374942173749152675525829747687752470215361824794104061961108579208035923145866120569018217376444161920665378347707441952722105587033408621089933594598832661228156516662716304028755095432713105919658778305614121383970877148692578249820790894615802046662565671131939659535932008526557804904904806878631721400400734879902344794788171299404048734224261289511747478080368873878271244343018466789489763689121664381378235003406179123628914994094031804321626136474018838593250542952568031510238813199018228808732926586634508127665894933302504230757280387463674409663189214136204326055560931897469633944757558970533476572253276597190663415853054487186964949563236002071432414168471328744647632308619834774994096571592010876084467778968565250594680882654767341913174251205700805538456237869450314195416846483580485671981959387490038134100047593613182550085673754284274596916164031001569466619472675853799273655870449502729170813476013116496837138945055591212847477668701075329370479332486882582007786120341280074677128186966591229420992581361655087578969898056057352465809832625660005300221154771934619768166375334686800213779103718148842871811704466029974960283738997802673855205866165490166150185448713661747248248409446645079805904527794422149658652421757700870770503901023528125968220089687463906071664425202998836910049775472218937940271826392892584986634488724084887752923636596106253904278272243096580247823794854939599791094623547961844244359979293379528986141558083991098603467186417551862101669469852622249344804898001761970051023091687493309806315514074229560495238058287491050406898819827661780838612136833426440097413955249316385761002814593073170784163912646404262025920685440716256240435645582628859278465618270610717162764905125284590260497796124561269675726771071509621793324165504781558075508273916776278650570269366205207734251340491456246545913656628499790571764187634912402780601720130655606371816760412093228885625168392065822684923581054351008118488417350119028976042618748742570378103694268267342757098877474507795108269107266104457452479765776746433269158723122794689082316653793325249790806236073314672367529558029329013873602411066785782258910749823241289343365934194268808009012515952735946599416586724721547146231885260926883932340853964217710004880214146200811122189054373289822384800040794959346235058928327476460143600780233694902060316499470662673006798481792969603010421329532030365863148195826647171883526982450430287830204295291136954724159829190006139018267479353316896731772744141894868351427393338236108253725874898409837701246043659166719137278817342135658045163870723033284832160455466108916316273944483136219543877620775449593738053518943620780629317100707943859817752879777091544436629818376994727616676252814758730943803746325335698495855205315787074389676937941012966244079040047290223670610428656902168345174357558863470975297330660074597065202869180948202034428403808139649664164690513662244701021039027680488062566573296592427269215453803120172018534235700985814598772333707162722531654554027446397370453761533715852203870441084271652737383929072633434653225581444754515691320385606381674589027042166622250318558019662624253256752087899525952201660909813302568255172019985412654179194898799094451072108829385766664168175572702706188937055550390003397851412373799413005634376915215136087898518633381119347993957945716531364382789751011361776259740482324259120613941430600373370203931766769513545830066076637485444828573223456946939770790359271841889285619033815782684305683148035213391536800782491991174454250007237541842463519616764055277894691832191830568057786175672712448535976623625409977870134292639464494129273590892582608484736649837131935130890197145849442013610908853594787172418349128176809647422330836381979409963513491819764397833207717366043073929021128500611772344413524697986482554089383311092507008561762459447228882792911810386551931476345024613642957629132209081378736458271343856598444746750363246649294508550305702651199283567083754744007245559659135689428178032291556112827821811670666517978931357490699752347755563994910263164894918166002300949356578540969844156394271377348285645139520344823040751053303385405425908537276115264448632621371877391412512311808311069896401761156412168672334281536671465456936888374188095853793246467002212346029089273585761005993349697228081703498723695408193077141828706203662952848931277384095737427113840429979462296508284339899418506093897718460880073719206927091064366556732918979764790808928352908062025512907283069400346817037686560984829330092608344642403952559061324038430714605705590853734503936511175267813381661415606601391524116914615692705906651788944570611217203249701079368497620672319712153831043048473047485617884515954487613577480052367053329934314358375980565087863252735798289292497589068657980576363516362343736727169406032482438045913492306141420374849912643818263379049323037689154417485942563772617462616607770209598235347361213919908366437621504176092018093591142633538482400281769785599321921906075071356817929483671233287103886907925569774380311747147001451508790931773586735047538212186651960157381429760219880192910244795049874605159587517708312925483384495531280239412075725081870202005034805171758240273924002637901171937413123674995376421921195835567713261488657726165817517047145375689656864688608900741751058824498346266543690190200887076605151238341000237067143103749962322273935041164088153451675071132094001051484008669440607004469519572266208846850980516875169403594156901014046383459057450021054685073472638931595216231097828719474938487396520363204615177742479898034921822600582533537948018740282823760035371452391746048786723001659985399177763512153883143418399759713726039092430117010248006022539811495260610628623844142370471500072866822780618603219681297123586758069256155857191856050872977308609277563271440517641916529771299465196409683683348064827150379850415972909515011962736519594333109046401025693169699675639686808510583729382091638341010246413789973339360927249929537002274054052498720973858992038734077070684742628938304073600062772580785438221431374736641428762760078379872699107970080358031661686050559515972931039420447319754466196991744633030880800349114292833114744906367239779136448889631932854724947587156409497276414215239365493703584250193764602154543543897633287522737419077879949930807072864230329977688831292092695701195316647228896953148364816169184913387902577949189639708569013576040939428936749147660501766423944704361648303728502985673135521061746414460219972114521325656215101818720853887603055637006342265396248205797220838190394429158468303939719100321850370478089496928795961589393018902956414493549304687185968833247158404801307771696605963544440097997771279674088070999289414356221235929506779928805630414470177837375785219998175930764332303567054240055235674963725812939009550139870890733017042810907660247208244694646058146224437206505198763491318600104177615121368202487082982127835597080044188709097610277392075761820178019047641623168182771696332246409716518648794157461556072287504972087671016498883479331221972259567339776533560543854500265457626996979295732682326877850477046613226182363073922302771227548685407185334331579728074685170331445158145911233497105273329205553141451120997768615945746684245152630134962932736067077001779648612557765155934417929381336774076587685444626048337280413970021000441583293611310344408407963674693778737351613443854697907312540918037651352597996126217829053091718543935723463886905242156228292316736459027640028289692818428952256273752742952658007077711450932464815893403833523324611528530444634389919266625605370704432454520811853523981184462204041865576109248403033591777083466848636153048197634164843363556519907027994912736243471714557058403594719634184457328936588316267069384995411622822478591842248303613374812901217666457299573178068874230415311141799163940582990490037739263933893248622175127508317355101419285494276555664049245986806570649012030357679796965960410355343457440660801212759525689421080268446612658702182376992619056031615958843440962907398779281674904764319877948931921505282474407757907125127192067368115147265492397701990130136228239690846543694394995583366136481093601261140178077896734944278228393234482290004939241563870036382251636812018914544704408695092396208433845051033717890283158151811635195783689153244742968552438921455889108606578466073813593691294341429712730458714128639036030575732348009359855367110967218125605196030741987909050196291409638805254449923460179972134896103903224124410534644834774107816487835224808752625260053575266981169386557138725474041163659465539103058792635682489830648463617792635750052814629886824132565750816295841811500854234401724029161104585506100221999465559601513518667222215453323647648987956007857105980028982434655818832457267277422784427109913803746455232561928789412074568671551073092838315235635206371993365145753882779496571673415631368711097721495751062275049984561547364188010103982673068871909438522488308569240302773308134126686874128613168623530152325430516753514917041074893805132562788260997022551526799847384316637517630298398326253513138613154301835973479943116502813267639177939231401986400046376140179107002672495373812234266611167228572042115682154704022337051086672832390975099508992299641857359547248028168695501871535033781371706861537410716920785444461074951762866159958989397343403706332423855700522372802662435458457738764014151387083168487797447500485759185352073175142277003143936111911506551558725687413300353677974788786298002450987920507607576882235439564637165360991469253401758544279894150812997066150542006160007285532722387622759301141256643481032871905363431220300215356378250173626740329432291231976344268260980651581314382464806082848753276730872247058558339998263823248945934256779065567305106827671429227754442331065788217479494727661647477880983161719011679372686975914614397146992507120611148663058537759334329447848670797221885114263626453364467311465792205133405051534659255894250093939080786579529739641894114209733470791160346704771448312253411472306285212737966808555668184425232051111538089247706587615160623953737509725881064149340039744073746601265140097290549637983737506082466408093350039340413464282068062761376034578295316962205281441785760517781294919766376738317164522463504093808548358556277861484481808272788525907734110406817732440879718110746479021222906784106060385073291212856181249011410876933222587363962464604528156783491679961471532156403007827293922267739971559809535828860032382604325026298351947258739261108437388041139975706121883438730516143667655242146884006198554829802731079304683474172083128716752597194672440697684081109585858723316347546760908407750528548172872618309217733992242209840706021726168749644715442998967060913502206966632228884428773301945279790866142548107296645579777023381601652732043791599322743661994137549863402229224871505093020326629446493490409171175660871353928277559390743416236279866028278017156697371909206179984369921553280197059118105378887475905575163277389543913118928209662360102613251692928087349107134245402243460214571275228447929194232939649111065004018098853061915118958677414290507658825049629095416750779446778597715739922626737346824975750199417712550731645219451847567809333756974081337289639963477315372894078825386357047137629092915648942444948741264048365822728345665450594044215810351857514665618949671827377543612112374498594894527532121840366964159724044434321591350504795941744326813812337197954418324849398176695238719790079355742497835019536377459588004560189296290351293690424997665829134894124401351959320869207548891603416637781865159600295011372341694551890188935407297053421804543550177774203693777236226560396632284872968757039140074758712341935559602993771532798243975194330009056288967064848202260660589547681114323513725268175363935505803596589444209204539938210008435484800022871093858286227014952720767946429756379464502078140677174255026021706147598722199520014803947601743914338827371565727823448272679237541899916915049452979880501220076024970231067057550193142203739119305678786460386898940352373265796284759279195541681768284450627755876690456965242160181790875579470714096575599481101635155403862054638672902145972022502787470178931468751992777014258082525860766183259891022109162879395311335234844896906632025190437335965134989391216146493176796910735978858163363547606939975946706372411227553050745389693389515002487743180693122640290674516292184871660094180569332491648930115816823066140581143348987600681202950262190663384120660004496775271281788392978977044619715847459633463029645389646408603604216535360784305806021108393486166648241247882998061567221288962124212719995470055227792479681819896996216589604079177692023674908761931045017986074368821084284946151210999138197031013319652237999041722475839372814487924622829555537083835492202573235325363858274739711918849113205336335692205129245224637748043045647372482222289046507094825142127320095184764866140598120736298490470795916248832077476722597682376214510607606860861730212372303193790230816542733112884461043078892819290296566139524240804271193708097135003334323202455104084597860846031653933039343076658261451470580105480945647711224211680834631805575645185199640395600922154347266063006471592696233824411447194876249646345103227229560798091549396843890180458307234479645840171167309917684624958132986277506921720076929934043632259940863511209707837215211705523423499513278739453578760380616288574946795020677535604013803161390787919641550747955641155046300360051399544611145047223119144751848897399337117656227913347808326740156502517323412805584464227263562614924230401845794909763185928847236049945430224684761197170038918951472859051901675272664835702497000481903663281667577523607345813339089061255239006105533775019389228132102009677165753803690089509467956843541487406733893719695788557181788959762997071299896090287073010037969587892014822855882796926094780780118456413000446313491755179132923015258046092339371597686653769890484792466994548446557503131853126372175523492133165136846161439653952979508109429821504299849624746807146627770048554115388208146507190464953129569472707089375253246848085637244119603026145577807963589730551645295635969139591071653001138496524902767347959991340779253761026249677862681230331636488975779186815497696490263871140766024816444894320383302183082057876180828961724825828569412185341348091370159366771676859736716200153522598502511739508802520345123275604074076956081529461632701655924314928832778650501089280653443018259293400271682977980139556098900459248776422590882726512308895406463727884584165889521934343712019106675757955122089280586639480565471403431759507529719027505110691778634074246989953076556815066229761519190296583840011083544604037028376682377961444512496502489622016149866284256443279570739353594580866619600420334128371084969657823491685856494421994738206584120384512193032984920934784349068740545794784755239781711973005429442469081660424009219244593254911640825308959781647670010590733589280724922518618555318351806528865723651292404061702602898251143070103746441959383928490341568802210418685257814010910698606258263310010856917377116754061449735578971624512707073825672048437204913918071337839069960910184921809251855233166019808524848923865303509279176760031760752917985209195630861380551401350313113485205005243141737719934102105884223024294221476151826048991061608488819973576321704195031002867783504365805711837460439582725177007174007705012104519056500823251426335923275506653931745835309486606085835936687659613292954147766976686487450013838170294381632223650212277860977355640003289641298428122850390885739465312342913991087959304839055545300782114479422844961525571166856626277418138518609910345269759015075372136048885577022921005245673199934681220912017362344658184588411506944087340889366619487569081262753127648631023326027828311916509976401776400572656353010578249453209687899476174486244130913501488678476275205211528449134577192404532246956034480345353100929941250508186628694120133115256744131526731890261825655556068659171518696607442321565037868431944247066510056217303013227839973145453082948636550553849152760147586078307340636203523610641023898957917982308622386380989145125387912523599923158918081004231277520290438568784302383108325660733644690736344024057505333108845611022549628010529956467152958108684985220646760908862369934476735068810628014156040093989745428469586260117027371560441872835654848275991263629768465455685907742001457804040555513054413776113080717796213539877464312440912639009217208696151234514796608418041664101834460378645817241371378753036472326315492868584122228823170635125564107415492922379473720316223998654322230091020347923242976396245352840961795184626906701157417653897042377908420642310365319930438878483636343158337011875648050572398126382338755793113864736547080123036537630487884534424356479726832727336003245173934535251198539043183750519710240002926618284762779547174811222837890826034871034192877996383495268144439121437065462216323871353219699618323281216950397885490191210187852516137491484528680240342849968484392358540059567327968551239057455443253889104493683357911132603293176341160760191007549199640831568246385811022169251728003574874294660921903419876544685315484922327997129110194324404696175912656431628284176589851905076986654869278143734618985043383239177209371688852281670648991737988395559406595190188174771125476209063114937258815354984256088504374143834766561999350306080451718241727298589676194571757448011391946373382932354797586134127449792918880057243922988705675420590182039172827928054929504344816991925459206842213589367398468043378407739376545875021747342593406587725382663459925152757352709516914727639188418636180447189376878680427604817737819704177148713867670656704146523494859772548092024439917423421082317941935121253872158533527640084082127827386356845761715510460826761197648046573130078057139621327527872223374842981558114147796957678378093204368952806745556719229274198730456281813746612537819290432587067284296666277579467962813037789725053706759520202156885815775365408577827498854433431706764949867253708600843493544936339437909547147748679320588495966516619877610200672066377100262703100060641816249746716933577717608991542452961092634538780125661651904067728616054926535733095387540751372912425365060362633726675394172204557506895188357471833152069005189879311507935693403628373568694334003607835764853246276060364669186098328996244946975758365544295029786185246942601830706803582790671372041909883994971014640741956268253147206487983500930426913469225763427688870259119241192681520394262467956699180922473379920356488664075706351380206655146525607235463569623637285316001524171446546485797290644324278714424525318266568549537991375915278646874180358374435659155659146908794872702538421903821316915726508423363910999969077261848561322748863682570164276900375328215976198124752558630104753132298668456556704563401104925046625924965547430402354682498462873655343995175640696848010242589507060471641611982766123107780448089375798557475184073965300669831364854504643630627676249693804844061322647065081298544098953417138247548989770836931218145702907338023361917633505032732574677355325008866414032845226076631669549672613928468758143550148545194775296402726608150993003477828337637264352359358005206157029526566091346392063472328275720870414580793833000437667264878465914963822972648356740772542458149821042015610173526710240013404144354601386584983456709704452756773361240342751481425519202567149203218329624964428468319386337385336470987892605127848732605206278412812830827241841370585821321596989719430288441578253758966121959623135622198667549199042789819219984223085922098042676048112868333999489582840380406137532218077321376376134064337554193106402317462304676348813689390190246745362862919934421077223593756246325032888149010873032554245774687287794091157258088263149622137193968253954263028485362990317691831915959893539332942508238459055594963502996119840544567985812245816555104685510602597537226823783003829905398513156706931800688702482843190299471404153521350920894207115767958583820091988589873697176687887310821526063815843702078764831138877805384216140509153722787133462234633597511078559102345080166193505945737931122936217030952707445722294799680983292095696550008171815038888022093142768354733975271890010708951921250784271786354972033844213117090377636463479032560572259631607889063519981858393621238145627547970647445909210467416840194071120336964810511037505638863582951353264902584370790657738462755809189771992907058195012470498570676439930913883771272573829765444917100251325394559395512455241401916569935575121481790482660593715886693900042338680876520836699464429037995418911978528265202635486534714615622247373783352221072334196047369525396868329488906304839617713795764737041684052361560624987611774697118817725497713400266436576128432440316749417731474386373133362333468244525670832246343708431538463072600558746676368454802312641681043952125853414357902818435653419135120923634343443737173754108583361766911730482898857121380062794310152760660042286645616934648444847457103634033403153429612684098436367948407388859104051185438642146299448531686747045929495504152236649974663804269121233409352307199448803611503829251835462557780694173302445648583118597419721681172962194675347454572423279368162898566739334736475108175586493013523230310377939149437023126683629148455647228468331333993907217518989134954766683705320001004435329609821753803602963849880494618699632819453254810057513658219376566408135184492214730087568161324047173092271610200867920695788594330188196642144384551343012145865558441102548211467010101409254173530465854421178494379852052074683079266149823463073811529796416551893619489138477424718109184002272456998709605109632488820508152186830292289367937406371431537626585962172911810888932277209270205094892375184840669703794765875616879727600890264581599062432226384255098227604447829019419224245981423435081936004300955001061460565546760014273088185590211045711813589840235225067688657198014688601124332399849204070400000490573363620792870375995840209478697525842194660087060188040350479475974745586943164218884505601376492137030461445373597480479448578377134158485102078650778540507853704547859018122971443651240076204587348990644532617560506519036863473578518807715315237937351693938046472160382232919835467642060573033091714895450256954245912193859514544540877553692263511010233768759841110385392806168748889523991490037675551935694386054768527346514178838757220936393232493000434138387318696784855077327324862506122327399812573888380170272920529805275680260186388590508769930052869914033267590898746467086628318609948251621404471232499918361159989218251370026700861394192401264776299618701628481760421050790774133497216345654091941785059166766391406279133204125573462148746305498488932200429789072500340400394932212490047959648598267614251810069079279068912539450746088754935493286857010537998933830188166420844818666539720110392090090087247022744425633304654848100026621721932434787070246506946396615559827215065903846902832467524919693915133271046322950324399875610042814867689155506496784426818047816228969535647458170305054005977403961522188320848929655877074852356834038501119170812630995256350594371389984059222744435978282219097032063431183466222593644072291783355282364666148550696978893515712791283333248515840858993259599202673176123498349461227262903360883031491933889590097870052893355457958713382285458322804982286166458531169943132826162233311347298165275035207064986096087498500001095223800457292973429218601107808750568531401600592760878287085677340757919802561959953984774682642363865180157668728613951472743196257496361347691674769115157525582054017786473991742995273887355144538644289145648277485361313201825168428364396822254946513948575566201096755813835589566039075530043153687071631125594365570810499666421211331802023134791002519359646643489862256324837321114194615737877732220459100606139901253132281240524213296237004332929362280291629723402076463087845221912562711401651284657463311433318344019647790005917000757441917006437872393045680582562048285719612787610419833449580884257357486080594950648019537140828323517266847718385013144987352266193674848106645566147043427707038896557960537341419777732257575789392556699384871430637725593681796920245256631117070129917628819743369841025155945987193286500689440670947437608545254622306503536789495093261653772813586559175593206010974172761291162147808806032394322753918827678769491164517613644042329810531407909386417749366162529609215684250705987660136635971854111388296616435676955852044337617254170850678117332848097237874047974409180189692702298406332500265530202551358961066214676197941833710573886842946453895565613948862324447072928341393864381098168483216961842074184692715747332411704105612409205841349043779986539393079970659927887790484221010071341047276081764197498404991610125504668429736701128196568930344670162816682516691612904009736272394051211714243009186636359696046371159655761072208315734919157367454048114246578427759318229355866105028027180251020201240095971777139622664928598932774243306215271833200942817617896424778094248002156219601199755844144555836097900854858211619724082189061504283018846500417497089207719727983363446494117318674207578694041601237731058649804545857130822333565347670670416793431874506192519263547259871686906785339928119189639638814440122896123162655609136932362666587725736295876292595818583855989531913713848929237754315673853343502690520133077391511146524920435744141488117956235567527262720457976203226497848923786253491639260915752249253532949060126656569254883367374699847409907200657341711043221613718285020906550139935213280351060663682775227070833126831842120039230774073649575532143871692747644788200127099435095061737309938852999873620888891541664841814950725498118130895197521027323130762579472741418692464995451890689177364589305655916542162487836717682773532997606002687650407727005500444999184050522873576541519837082703668750297912718743159889470753238307047048313645618652635456467875345094102660015029953068915015240212871292985342212397476114264795995431789847987182582470441561351196596259523861790087118749931515872604638161980026610224822005622298885339793897482817885865955846690278987587501035607595308954114664195098340557183189535332292979895030170107797670298933615196455497704393655717051936756497659389940913877055307603236941373069273010266012448931429375886106117538560316696850987686386403544349507008446824815667533028048734743719700423084904426604964242980293236433459058846300116208943115237284479328965987360189364325864915106276263937769257824075639425689074833407156879110919733505854135889839543118660695139238765506844740083050867710564580520880999817193359402791290324962785536689079433690318384053842051282424362987626384132999877138403261075133487795781435564948833668372327848689349423588891269958255903812508773556351101365132172082285673484520176041379661356885788494122840356448778808491573985204233955400152839760996529415456511723994173748611451075686086019720150409084264896946051152176632401120999143405992480223255834324195769644153238722586412353216877491003325832667086310312809618752834927810702867167109275356110943880588604324430048757679236091055336437283609646051697009594361825536298675095765957487530237061582307898876629323018416776543987678161580613397605338304810186408251953153329244018208020502999464831106530973902281765203141425882449277146395258035824137935674005162769783014513160762567682109886685167994055624575824602579735376906807250411767518390357448743515008963670664995728365753202602346332231604272832727432015512510117914645074598062758115445544666538388498737152809688915030724720867375017307973272820288925833611811269085190564659238532749090725209880049931811734576554236610311736804824449197539741101205804529665462454537199805596033845128493915786620725724104088207745407355471415509829835273682959619021911709183151632525832559138955225506065830537037676198947153283592848835014500197872544870363784174052798398867354325829165219876580461346623191085626886905032905691239861782378520281001833060419289292570045410109773496774459132801143310876921347857651181652346917314559493367644387502658519921529004856173041463164000311869272215605554327215409132262076724548004000843240214017684526510722943548293925856155513077900122692058617063597304638767994991444558460809664883578759590567306539773745196927086411738983164900431024487066695575092918978648446868257892605961412605049657595423218880509779156551485634914638535797758948467502518140820630911921993740893124032908972489628107876598086871637979590762162355791470160729397779934420937793486438044361669013271078205725247694544239213930525069931771417405557567499775338643116842274520993645185596747375715405802677266689079693201749122113332103890447243623377463452452892175459971923717270173047296263510562933951520933942105634745984043971057467958816363588253711010860767955446593611856421533828779053316697583839867796093007851043689232174708848529344879064034681249284118194638850665783336916395301107525047238268932257112077712327650818747418441950608029281418337509053737443301064008267869243288605275081893098039363417738213213805989308482284111931124361131650150899069139142607650504407270601130707493108177700909604978091569798696413588372915107351218457970880886698721701222745339871053303813082608167241415273938682028673244226258760527515298374517719212901740981336549923951815742366915103117708510023428778733673073895658058022952890236328527907184849874384373821274780171105279581552277656589668678877758423228928480455823723541255050203227959051287858838618439368976965960301003137980085786982312892344092361907604726065995063182867709109828771807905547014074156130335758702781602975254672887442554880317953505816549827787203013773905878501195124818616757725433952252266902292441547596807937520044533015682341234929871330220533168322412439572518745884666630947920968250470384795028803143055783036652434853019279764143953772712185521700764807776185162278263946408359587306322312909742551454881493806969609695474850232234138551065570434008760791664936844238968421817866248999212558412546039261346715141977398987860600752594543877125310503913232532459897638085876402970246581395147310544744520839486198707018836129804930368776449121147398078362174687081947349515266086889297861282902484288728701397710401224038526772737305732991544992078690655917771344929637080206787479485388649327030849843266294673756411936190949202336230637794496898568753451077810088286519432189551431155330257716222387541931051431527700679444234322307761642025736856853157309659061382419439000629098650939820567397217648952723520678502002993534551563051174819823849740059784714461796088878979511491267412120681720353404980057915844821980504575234246230765970828530985711802014260424965363063466425162958893121192848983346418224522720141312395907354816948613812658797785218716693766817803833640938190354781999734299410014901515229728985492526235829449546600433484635843074719839541234094071262642383023491425170333922248828261862020795321015222496888804301318329943139379928627855495733048887277503132691950403383608981879701712976929601532010133289138754893110905509920732397337151761031697071421024076257229816705156169534034442052159617035226548313143653384944802059029065213790715981397256064089939756638706702480424921367074581278358664746954875209279299220137022734480166412061783026442045934516043053050569012971436686968089073357546618973782121294796562528930010494023608581560625205369180660886089432269043639994795668550231305159256626613580854125831772205880530397394955276667246412517632185069883573160723744270993878019815735254112377916483722553802238532668025480563510161101552456282059071938215693248288167999992116941745616774859300922712364050499727929899977322846051522958275667340476066043154768612831465966761375936463334134023084328098693095983958775136550698431045521846067023027226372531912841032297965214672518006119217118034735880485235226587358840179096484801434995911190987406003257120822403560932569000649451743326240730365945603201971885392530367088802479566294694661891774754848119745195247443130768912192303580925438925961825291908000486493957718439633852559692040682600132413443734044586595704309211916902803694136222698538956383210495822598764181380965418651537649869112726362175054692307549668223879848106922481343467076871360412971798274125895108923092735244723719321884548832684924437856009933079542323975773378746854863392451354438789028009524423822382032614500603184323477688203641199583730068897777239232095501069914541224968491184338989426682497468636752304016928607955930858274765424856367126594515756900729392393887950644126434149960773304273898433965298273382520252231457733528422235216039991728141557896958994508353781190038101099763463408087522251826686419715885645312843770707764899435770607504876593840227207619700833202274528348401906242758106095296576029860535990629468779226524555935529596912307777791018819035169999937315272020529408152712019034044631998277556686320000016952854035429454557286178263914649144394791548455273509758943037259165409539411454807623661373572093516003864654880416386012687836348543545391984759942228248047102871362399824241254894528598751197984440916273274952305863132591560500674772699037404182076012062633148324666885870289726945715487670411426302619422990021188030342706767631443966785476800178077999281151058380750280479843769626906461469777231672476077509455361633803751342483894188991575148338858588415271158533167717207128486802364841015336955561830115212841096601722761162567501353115539328477265041571656908602784335598722792322199091796956409573810759783345323667549498280739879004902683614054676444438917441154376754183793672526688366913064855792285764856588808566073005062361718709882452291809821924185366450575108701157392105432710482227499550829256495645930228403767101970962187303112192536690291687473768014463434513140843832204593070058426762740654577929031586523325484391946792122637186667129886844754570763195006087506410534495594013205917048398836954240540007791191613461480883807760477561158490743385798473606642631407110474965076100768016098796191907877807242595675565112702820016737654285096398065222189002437832145776540405482066319429953844924212963758927386807961331791578439097448539777001192024955621158618477670067806837048311685143368748028041478462677126381770514802190628655756941865017373068954312676059843340650819323137009552578926162582601019029537867123441936440566115347792550031955119704543619769620400555200810137114374353465548542750814382334948768267517748706198561707368946095678796400861566690779624242310393743394322243039595573427209527933457139838261877860995509012139391477741780591094698461880000340846265436351058577124460343017719414327199017734716334572869997445604987011552206319814246358497888261608551937483417661793641514623212986671800970725065652456997133548376417579855357104464793030285180167302700047401920901666268642584960734763387015494452991342787900454328516261239434327256559502466799242630568792329864892769538308278887646467847757893350297928504325329013077983906641585139680863878468008615882438715036445449197948645861233524970693394286862376183870685294812965057648350355211721094652042087696457941834301067418258808532120113840808120903413659043598790473293763388851592094974984550191868172673578401652245377738604436428873634779356498005175030899572928369420225143369946060395535300142091016554239435349410221948096807262262137570999159164036016010713259658529231683023794697381432179980086281578055528413665338047868048222693997140626294018946220232308557248271420523283739375890572265456287781924338445278139009752042845232706259796107108587298495257025612235628474099559150557130048096967062134730873420826570025978772221867352079174120622248087666664490520468585957982378435631307898278927951355244661143409457682994319005315032047242294309673131671467155037488094417330521526656062412386591092140011825112059772898619358245745953228344524545911597292546938574628541190177825405799574471806463939847289961006332884049051149049225525349167198325522938604006568688003072284816526835715363565662925903608659097096886827879441813471544919542243405182839193535347343570082804187412768503374096313681417530370702018539408101510262440409236566258596145305067848870404658767198034716365577708266227620927844214004036850005848879782997020203496777038145663984404619600424370440656431475805510112867444030367696304434864214126586894415741322554498523685526785392230446045473105078620330714975150935520785560846580322086460827262530101617810469278467211420566629868637779243072137479029642363475254558660619755099980494706395522024817101532782940009979925460914386182282052968890238940269269171550195597198976177074465635724069278608321782466384512168859702611108827556207927833584634551188332552533181583879692314949711171583550949174898471144943813062714089325344649672899068860174301602254543754552276743845108714735040958224682861512207033980755728805674105521745767555365284601059477439981870920313009151814162548341125874763723756125765206626061456359564151579255989145601507957318393681378682605509918754490501075750525404259732421498332686476420509697620902092634921422327085286038385511706625148954948579009134469173822115978106821143315751868927017364218304113762552145159220329528776046933947813520271990863513552492402795128087816921438475241595308647256429100260935163457490229292710361101663570624728412724887383595062331584823644348094882254242343044941099200073849126548861537117212443800844404683035511493342290843622860805565651225380822080301844720658027621910861443504226279860099541983152663014452025746915411231290139489360068357571069374333745217911133696491145212762984639386603229989708436846232290166282365276915301000777729908048857964148586296874830197437014511889249820189355619816169666329955332076686512664791238565828171988828288995982424412472855920512012828785031870829441390068420434096985969513208910165704460427324473009983912709616359603335824403893004392628718513122164260106072968055804593263794181813028628596747700592867220536292647012663522976575792544405579099605313355056757401039426772692207597322301810594757063749979354026512721023266160060188091654187930448737236884005878271878778358578130493769335744793273959553756384938532796945832678081785688435538879145000411990345091571959770030290627990103793467707546285669984698349821754209828505551388496337816072072199887229694969859232098413139603701272592082227096214955117935126519616550404739780996128162188729061285858887748916808426664609857217542369560014445687430262267860285743895875353546820436313587662561677624396130095186528633486634286140840205827090590772218818116224459762323251960388475243871002629960004714031420275497435752713136373925044652079874122161034425476381596964636473976080683995764824382374417694603986494182519885090953073088973633085006333050981559142450346858261997717740825675650373257186530995525312649985800642335447625828793912563085400559849642242381976290031242875444474616388505563377770388906397115409352078841276193962123971800376991922616902944205389647177954322599868415810807953961007372453824229279428160807607550991654382391240088796063010576160366201130818549515492321112828493234943177739650193148041026632655214896630908477490846062820484979339080501404259755401883480268887618878694307204361877334674325296960664480123914952735077661994706779858617503091693398888232272487551924550743631632082127468815892684665977043746057777277034478787322954035777586464119935280432358672895390509347969309225543850356085292263681489051509092808494828047844380597532098236563987567752332748848553217950737773403020773517171857226207832665939719601571867905874600240189376820393044586163367257588814861627263692424279532572012792572104427298693067369828360645635183723054378665967330152233926340373625660783819924966292893457290805425937344947509957408955684977600079097134012066609131940144794867716966638304865298347446146684690096892268330298760286950853969661813585080991448770801351442868243490291484129210126017664523180121696988821036016348102670695454707400163409143523373325849916333676048480981102551998704127374259545149045054626493300621258182292222786855021023898816492325213716991747350350233788871530455739412528870897933798727589056106423830611424027340057450659448835772652661477964171918187871431679866978662183404957173935563703747537182173806228795536147996359477243110900931895507527705171599396820111121872596082473954680537289038699386193067795155561766908242621677394043417603558659420994115453779387639510816965207258115628244197538541903553942722055114034773241501040457860817326848901677070830345824397543600681254619473619615417488601823167474443140349739595031901600019518894343285978634653075768877879063866873073166276359071388563686001731931521346900186621495584332754545840557505534971993765601933012972607288402262867047605193728069341419413421243071502287835669190325170823675760367869179996645185986788441161625785906609513055535587219375755174962850038246577152402021473533526031358149490354006230810611973556546585745930355356967880871073535665144420636268312128725525238317295092060521696146907560805650651738722107567202115346423464203476755717129947716339879938988428019383233572965907065786311515814906019243082330173073092686754830439962007311962903198734019425799614940142399156126375262410108709614805861328031292345601021886799367780567593340335460978875095979275337857147770877096011832426626472702484501784980834248278615789220705790347034627967525675552437985692884216964444380253335118376466795431895591392570705218917899700473185872738985631461759594257940930698586040968279560588012110249266979154467662873023738400395561474052631193567461520119623218538016796850807440423400977958708344206938273771473515910069475453483225581272373116438884698917208948430373556210548885174611643409958919735602338125531936531603641921890401380721773774368171055398324752336104152281610222880844534736653583779743974271963041939684929271625414997831347734059052000696310526667015844194033837869644853791985641213703742576131337074397692723422494827098058606207880106466453225159144511835500360317152919370947019488300463180117282849729160230623913584284985962878476129140344644392301366701137495219346292229038325351462395599056332070668375749894642665412339992267697010667712770094072839203346656265741447812496013866082260685753323390633795950643973093396412337674225858762199494884876245433866643717651773042280442819422954528212394578903749589204079216423914808101506595230736570374790941986459826318401258179113594633422626840409666598303245861493399231665846385225566007783326767012847023260871471583160562042633090717072000907446630795811243403765657762391130356011891319714369915916908419385086877007221963519583202422979428785738543584189555151688597283989539648575525593411777458776337586550970383215551249368953221355642650439887168394701328430538152585568388758178969873193963849798798186468155851224661887276572029978917671561122168269894070307529916156864229616949292472959611371200027725146883072701871325894931083380489420920215137775631380099273503117118783461050471772299885827819798714052328492823600042750261548121725437397751553293858823534110369654532451526279153439186714482502139983318077190800959238209133884818910772306899540587732637818211263736704974999309233811647782575071572139726842258101111373666214523284983427829594364779933859908889735619363903647805556615383700823225089393613983606824739817517539780123737817536417287022207210552940207945145002377693050057333897019400556830174533129129892402176916321034740650098583306430254948783992360489228279021667633939537375266424839251889142485213619232034920295765421724514508348033352996841339459993048729718864228620757856016896690889509334396770558348532195239596813950473170519247541822196636188012167437285676008613949798993413741543904809658906940049373234945200239104915327297223161635183519326125116419712283628774402864750224313588484253778047429198955187012371317957210660760961182859383839939155644088372642765882817086239941614703668325947594276692446071851710311442357008367462742380773485402008365044367779306645440572444479201274823587528947724074542582774030782303504399272172563991353676514715177411264214171578271375078113981633055981527441859034052592628389081187034901675241647159314307256944445934261833477661266415939915049112252309678181939736050167595940482876682416537201372890092493637269473020562820958725132718580818352801777937042071832747449435164083910121438103119344024543807897823465138045051897811709378053718879435049553850560659623234609662809865879039689835400200547410339431891748197064979498653782644722927226858862032917810154686575134490153905893573644705313623886138026242257954692067580613485412750026493057130121272681530109374549896569510261667855218891229844174183941796149784110365124597996207214720414474447370356648897576946560105949523310896474479475316937655879012969048611443599232175937938586352264808077779012755432087188303183986085600780068367649908681592445710283824691251697189604702217614429847967628236377220637563463285210594816509162766245834627638882209334855091272453996826239632885589833310529198743715458598049458822724581362689705491403625263657846061191876814104830492896074640792199395999168284783899433324415339408496005034645343334929866172773965125370454509556556614450586666022321581713742977393635122740627226651429391203595269956812666840346009691679017142679065132236409192666607493231094161792558183048544364236853859486619918099244001175069650916499920672828528204389733200148743521563509251131401728758913304570334777090012555424567799007102209698417375887838917437548471498218081406084876708300753131518054138134495671984238675241537719506547203544396671159567809998416236963395071959888424831271203127847320029125360226438420107092950180339007509176601915424131922775762718451759426411037160052026022227217031633772743137177206424577039956698328470323466509225732128531203685781746814746806659075090414083197317334619029748689299111641938940709926831196869332597696225440076590248460070901809259539090698713677393405889049633223517478068326337463078882761019752154951599616649790454716110382391430364656802840138983280309509583792805197302043395185075310052922635490234002522703622651140891669231169343039459780817965308685553930100418810542971127394554190777115655621262962769897841984081150234322269615806469029290725399343444499531436671124436916339254625358502060785285450428376453647701450712227326049913538251836137015715606083850714200049655697389934588342824197587745925498169920293317898041789733155779848104219850406967370697672472683073499784617916331492871003159687657898353299026510993071589980753874786797824396595888264338308963690093158444913216015595455245890955377663438897668289780223137247111971174270008250930710439990991478407886208278882424455539516732662430813296158316838944135784366672658386279858444415218479819783903187151116365736408190694415512558200367120050166722243200528255336915189424646712353357929409402865778855876505575570855775756411924028321050894239661558774920216532250149952502308755843405351196247939329531863529472599132466067514617732809625379106111101291253690574829876867136520998468864357027064001434052780058829544623096646949385106684582792459642610320271855485656446805334993892130706132020767427925264014297318950389976193504923307221783554402871974169113253736051148009032838463487310438534493362746291997058967477992481744473690939667163554795910839491610041603993273766833172418347407086124415500377567972157004586189695752939026696043428080221683249047850932882272866447660863506854712723236777815873192174843143824458756365543847255213755872804794110677317871256723966995801535897945440737570742458131540519428761266431842204623913986091613400903917566889957558957101038692475912123476096540976568686512364579883213830138986083867819188721409079824449167296722470580832537570929922370869622925488741107150736574107001057367688634394341385563280582404145273500107586021055878643056124800430012492844977444585578294082667324609600690130633786787430814377075656379343396655321078037420961159065047603105337114904535787836819509216042777945449813036247520838603068424784587792181123582425127702630167610313102953515534145061376997035421115191180398851488346749652416461044116976339746626019043450997177939741708030885851333312363878783591830958862187711587645733092883058040008191994163770837222618407167764805845753547279776028771234024881605498123041474039724762673725812899820003457243958005973339019716451778821925509797906408343209361010239152268498280031536576646792690744288004486127390942873283058846282668945728762922784346751302717377739626031812050570595290223967795655607117440585468348129762448615062206125028906985590842022871798426187333212434010005763424096225713933603026203596034439378849629460690197997674809896577551224611951039740570330976573301417491665003783840337823750701133564913369288822088887040568943953563249574461968195317329488042842287763128499891917514310088917641852410864811504298201531886311309198334206355999383550346350054765364871807361825973884035141111810201526351164309814692474735973361817652845244854467056641139553042453725846008995715611892623363255444230461854680382923068312942298316043799698643994705266948032206071963465948500118334345498356712140304257893182076953657059893333363891345858394344391432744908229475754385620612458368361064156917688280335711283247489664185730181657327432846519417818472162405942959792608073204181672331985894792678126982523085849246291226353699322159029163879539972863222597361400940050327642998012449104954564799643192682421656592088874718747400169561585683199275154838111013554736235858607104285745953686095296114635647090088432402630619062431406490426088212124089492148859961511331610150945527627001080387925091478467754839271117024686111407111140435862189353929035555714216928091066291908078604548617197501097731493328280481276354669352726036967242147054994885404300845440496818012223454296692082115283418407957325002401342214665920334590954729399198515794619432382222193833137382795602772850198675584656724264046581677946710395339457044268123798420103012971382096742096018139220434535910268312696802932862052409824514937490173711920636148299885602945707371300857106752260272415324875761009739700140312753460363963733842520543937777629244834740089026504733368299801939239350334209124840794720689553769564400063500747508280194120389105455728020468143583586353984903757881694893142004507997091115624046979384014726840867265152518564016237570304330411553597795142320436403424021635216629184840038375673512601781658754527722344747872914740593525916390963979687922805258373987396182514325497998774859177411569764613495622692145474447669160912270321390247756362446769243845427197577505992499681223011972357818803502978400784488914682646126563242842205961892733480497538262288205266668877451078244783505655657764515038930087625163790680772840741453833141965982032907790982449585020085672506163112655209445505055306041469288192518272842810342745927756329478946503166196933579128385014370016873008795278831017763605529897288420502272602918870477786239610197867333347779792080852688649953671347163907673575984550992822702088662099295952951326860234100990059649976058726278225112516739913929234815955840599020945217883809927079002855193036167784894633121860103744592675454031489869273548256378315119974945909909506891443336259724791081876593895044358812400023103097802655666493838027165284001461461353939744574301008598766281162953701614160063244907008651708079564856489062190675755492795880482546745424142699092234763187869359105468570684607255131507874081675412078266726361564457382596312933758166220413744389718193644187703810231893649226325968517705819655709859146672117230077600178178801702492309673621681761713053747136252856320371778059749782180150211986450888169839115986732750723817795495991011213009247135571636547487078558891393290180376809288344930541197472685998624548332526331298902288077577764324344637674893777944732061323786559877573855030865369292870635638557542221491675530417780871078759908166928520308128976614743913151253439670683944291538301749003817632083566593103303684720265453199409065147643171075585740296910277293377936701446546470357260323153957230568544097977919020329258369467001207782315572422040105760211938446356865991240923153782918878117579738810514999434860657247033965646777205714293186828829516028745413283568809843361390614256321012000668484681600488364550116234658749053142266795637550375641575971272010868160022688279220709728963405093435334169278292032650957844336229295386887622548464824898811182441183560070704014171151138863978159784721912352903056197981528739170841094904459448830668557662394597399205241337632539153264996113813556306650652791578285115017988206186683280749115118641476752460218800886777733107453976316861887606826098784354556561186914118298105325392325637727987566261163959739997457946077615143978872606689275941720786508064878075976482918921220769428066472963839430846541030431609057239576611531990563952414732778425004113308692589593766161300758533102099616564253628454324262924725178452425812465195085670102269794977646944960171629048513653664437630818334721637508892977312865322214186010605524806521731179443120432433839835967124941008592941933166608938653833113975177280780817247621480882137037142300608032499512948613100741317373186660297432854568371214700752763369491212109238628663821849602729547960705511918953792108860682731631714700204019698064693765204809275284440238034052674193459638955868902733078745146779220350055921659716918158032476183396170688001886152307834831568870474325006349045509936852132996352800288505570008501781253330363857140081426300401484915226247602975836366203541871563177907199010522736357943303856116196934775327028056449909488551006193330856369487793768429710740210509235898611517410190942150998310205489518319517811643711621392087107301655700520225598597653684392638235789797304789727334112941314608305394686875240681200686117051311324072852316937596350921056985464050087767560316686119825659603339227369141999436114788818565427466133029534759769985004495874383520499750691474479727892689415478403439632696698933868522632247806269131709163041009771161106351711897590231300398625289601242823044662376511069479530557632164569588515219036567801637271252167527114583815914548562865418675446790279353027632451593668852121226475366194739472409812069155743800040570410507688667261330237763776904227088659578980266056768924273079612313681190594202040124625104480348659219908954151482761334522010730014144007190708504897865273110129963626364425900733478108591702248622940310789260242466588863082100047272638806371093867133405116190673356905937417219589425124536543931841678353461760264236538503226015384458573249306623520160349744574148965991981566607383156387063994976669094840548261713299520041597417041984335618007079985859288571376467458459231167365291830114218687279347909790723630182798691989608268995339602660581278518831593790204373398789742727522179792813763808527605352450767142214204924060290188154505821187402504809878135030923580420555570610462145643547515472157609854279468011361620697753565668049922745954622620145714014528015044292647099624641813406313504580669902640202963329427523449713287887642829791841955412187060641805154671109182872730788577355552853292320772662746471849392972952725895840826233159667822820400274585615140034132169533418406377384738521884143792696832062020788627822783039349853825538276073365687356740052093459109738425301284487623993790424577421879794355759366805154443735358431135195753061540615933343605629903418900414941713852108619736456193200423681968567043200347134331910235313997756026581277148805339451698667983518502567513601558232358508059479658982432570889018221640060109754372479315261911521328471968709710837214652135688572996529893670358481310129283156882792554383195572893557811740958595095874320883736849128232196792441942583454954745847740566480069834231775634242656674505288691772138991021767363071566557150003138724158731544815934425242848375111107394883522818254916627049723688733777059021155414877023112155195977812158163934629552714729065759253625463882276417870657029990025655402939461106419949827926406740903444767744229159326692095683785438728815433355815856207271185508104488917414524521428094958489576861352762787004022615531916558819228696139716151629126375198412928943977704393186395551522220956368628582244240755134087460796084508069465471104733794298321275075936671751308673962939034473017588724766745845347859041900556174393310288241022257459401978022512273228702788797896092254642207098956124925057232453742066328263714287098210673095610961725631140709015894588097083361870167464605455419638957957315391503128402196050800219787073460150094337930002380856939032682480241345009266020109043399735795148006642549081938995955904266702848614023107523948444975581282822440949175996457695948720663192184915688038008650585857171303634821468006689572410709310836694564155755312512173029322753911484189410952274674221792324287139720382145130857778962437414298714421957411182314739567586930146799092144455745771883773033166077600152015258933050885619108203878953515793512211350323519451979320846259473608377435323882610925477158169365403427468146404917912379848687178314769148567301955125934060026067230246672272051357990258591910825595691457074740293922436154359037236466806432188574526989537809012807139794735203255785259374919224984727207151796302406351716956643977286479588287636351199027421907562103059693067470407133056092454627890481031931804726295285389711345688818386588905803710412647054540223694024752010662152456756337497882157343984979911593385872621854030156712327837963458318185346609757601826831923234195180089869776932623146339000788958474514309479270550749719083506299054872315511029232818240966255780350030478313624731831446961390737044559773382522739911407996055341226286909642072083206595227625336534195525545289316746303414416496065854707073290768129125401287370280905955998929426952940468246518825301209712735385581452645011101295840921836293599186191193112669472799678808294455770414677767764470925954236175482514116586278043435388168529009916421475466436941754044108337188555048208618526393713411800121989848295549753694168000408776384170288139691804809647508681359054952272449672049979384294524649182019848173923543576393230979521059211678756069793607794359274435969114310872240440269002775821201817871618903895313389883261822168463411314963716496701904614120315436371896000623102951616545947659343206977235208337491846426478970042974901238112085683656545305656900745398106536095809032863635788449075361479837212269720998427535365685365361139512822194232226317690347001058534554105151164796211968990327733321301977893756220841018405612682267231699656756335451222201591637136808522578994024531356238424205865095466153289449797734235132698321710123246426612457155841538950287902946033287516903422078064328339869904558655114540146556067801876355649033333493461189363884423501552197855914949389197671553099198547258087356466770757535299257438289259452684534441883901644733179899163783358429579753994846862954628549497094277083826772955075680784952146838340168393034738617986626380672732206704972615640034682746526863468020141491754825158146638496814718106002065961238194144023758429642014010271607378672661364663078502456243023581796485540433620458714447921519692586519932734816723272292580723355843818182381938218007973260674905758252860958363105824590595698320571163614314369342835349168500299623754644449020567779700649536764352393420274180276467534766962624508600138603418306896217886647221861439494097507723923914859972815271298905771034437478998112448557349770422712975443309235215838118029884439815427914557058896470950737186730936430998236532192896636996729872443058702677550720797696125246207251331601812472278004867805795415121405554171193957561746226758594573489799032528735385874907005037148760172863603546671027331899674470114161031545200621940098846582361363487268351891904306201292545384374980864358754374230641585789891976760915720467390815017585107933059016815691225344402116909742982756593632137067109793957922091091659094128275016657518825703293334707049368039073859145145482197941362258312727421180962133562185664284989168494639501587292090303312123069003436277027205596605700278355963805053431048730392995688134844912400764867691571716090167797965262507291852252838441615068939294896603856830852400182158767850999176041803344187358189247614005487083627431539640300270242640640516206300829959209362615920438988008154309090820142297724904799016190211764970634564225279338082375674646349834750805867843252108430577125760345318040217405699493278470275946456084450456779685605745852110461393207617762477109714676391334845562613427898459481489732038245250333475175915816666084980464451735254749652816351061532683227101801269338700686735523497927031334800641169743189739999611676637195171653445558559964305006086876133814458632763745125238439048560485440519073379250207765857790865306382931961037206135709299228474171846173751823281482348007528915080227282729773583684766260678170929274161168582858210196233171110092586689204741409120303820577803244516850593725777850824857802300615960854486080690369973580348472462457457896828973479810796305812912074728296790462933691157896253586488461297534477334815444801296793335766711311175610568968872457133399955661180367830498434697942147921679525036970109491519271129690882250762970210244582699287718700222819541218004465633895558766938995161066497037132851727963531895640295208204824949655594769877968502180683399558826177939511780755683818640123128173695699644010870838459507943181012915810406410724811396981825718237885663893825972264700247454819095279745235061277392656736716061713813848052237228615047589344468388140665093321186717470301603427716886900148612160739769854653932223353894777514577662783478931144399686582905080925024153731826233972765486806370228306531987833314751142068861253854807029510275405060616762683226883332805153937324565845910370091568511870962196259168864243547986713469613919179726598478589213280078063502289026047058018215312823692601096791561062240538763433463825150284217067076282053227219348840416175191773063774857354111188481654660298266749895434714250454497095699037655908084364012618624515158789078668195191125528954244487909887854053387589109157488630018466868271494097722832953053091223864857717894389127917445757189469108206359925153769021069067767412503241384489766566664815209749597117727955614983754516862341387121420647475314534067786068708932864142011409482393392664857902182217736391569248909760886909776974619843160877282109665360686780701531002907724216802178775433376110163574224771631719155744430292664304587936383592215814958623894689388747530831145593643354178341509650127292273859699775385364505079878860508801504364950692829083633056023944709377333351579627248639119181786815356940072545903731983810166963332356877354083001883042231399648474203480526468307589694987903065732942672721794016934107220529105701314289478392010272566356616143533888379969055106285673725182427579390254388599679705989930904681347525168550327282934774988761427586895463162366390865549280966904100915423348765522746159540122253661845092588636972306682058231550387449666724163887837229458158516562889005162283399973977027195291934350199241713675007712519408566093949347562878334486775467207226962215855835204029360687990588309890085909637934152796536220981452896869772711828390711641720864835956950461846182060613594002111362055459115842239472116656145077802835025196977756814377826844724308484116513488297541124282640684133906310615244110776004208514439611351121743697747377525128314608800256376758289898863468939267919485783982611194245154992246957731145025386615594358339018029054264177231013947289454518936956114495712559089999461990454225073425062467023047637611879734925622566233172663722909084001021859993508075368798542815187175547225472325676534892017452086222118721739435280640422789951368000599444930912202641349776768220359842463826164858641814990440154843254769182246452959596482170969101785570900855371523829513958829005590401654709252234849706488297237894040625840609937256304371903308574477690385609646803167170273645081706851595491562187606860560629346279374295887609065838233700966377306821150893636428203330409991708638478337818137049640219698425591210623035543812271915165307422694879987857326220268733484576706695663947722366276381152088384449695987285688819621095151320393130586896266735414362404743002265653329156027194090386430084780509607445842946040303315228931475907065452015779392260731283393287859834385793179779714766255353590940584653614382456579329674776706245811920847730800855133846283833077853767587767958130367639853221149656408242725995252240158111472773788478461490221425635754643554079577175270523968108463008231726577660972007650055370002641000266872968427896562363151382696776720139825394664594157288531418332667760054758400919049941931156061813634591299258450163918556308908056695581861240191049624345817237865151989457814907307372198301443490000828888423630605338368298362973999781018770896360920645839176961927942478883627765694766828120030871887634362300187179655369652675120442298051464970862510531028018362207024858272714037464861396394219910356497521846146141891933201843152942508193320388004773293519405388568867723924466250146170337920504865812617277312017250779790264109253146645570649280174771752007908904894089668460013343297868656783835765218892195669265123833446103360677572081418507218646459322163208717352653915757282321838199713435688887387687507502786349679260531839072624220674699725097207364015035795782032111074261014332552609050706417599344771930499357262584467824622975741157718263530183584311024015107157621614032163144740849517815375254391976656790225737202054998082533332179794305616170428041576667434480200680405787689329952717542576402785716821737365280915216840722333254887405488188126178299300567772780836462004647043446804470377208450483884490821630737619206732452457177575756718512006897405793509836919643025137535239340341115323676712311449351451820236435481093000523015821992449071068799518627847814871756142284713570632931457451892776752271399011321249693536693049248578967806479915830684140527856788997917139919027885792083709629240120078983304969896700882698291292838564855855826736681507279412213250868672414275740603633900232155407142981633676253330659963998185922756506957242996050377336788668794098024883192429443524773753707763125377677877582217107787986482243628340646186870793222142936352834431241153497933913548558909289062535224379729679409574101158537636029059175909756297612458620982451534486984555927896164088053749290231367571866606277771015240699998091267844895997620654384420674753895116831953995404993404395357955744948214301433148820175688666558857482886601845425548524396322128494974743161145401359650547972929470748805505748298649916002913201264391555948663316859034390429480058953872297347343417388092766619810081260116815353355368002933527902690869915715743663503512540534899273647245599852362385746092080445441185119553503221437155375532121327941070585900258799003287099946387809841213373368459209626680937322119476139243713044921809060209068641580179717000975838821072364567630704326910164917781078621620097767409379037150957662462246457521684514429849254367360733807599378412000769886731479337431291594220366001617813112753947226746314533131587535359212824522535570982283368396420266709668600295497119056311806346624610613757596659784602237209505887501200205187877808242040260200646207310162532012404802116050684456023664873290149435753410163592033959146662078981033598346953252278632943017296511293277988519786375241362673823072562652391083130400800620921619102830854212908489540114625779434024117864777848951350699248097111491762252851918973892018886122136694037382735021635452002501165602219046494172628902470892879286581908099602026303974329611300639704273940172889118889389664815632931529507911670817067680888824568267923145813688087908229572436573672339347697761951398393086946439160600974000547975462324553406075531282524511321343501379317518778689668369084190534851570855103328162815317499422951675599357038821442607919742931205375604233933616910766445511972277693916960748410866228237871258142045748530851202567670901998839333443779515213611051143090551485866981813197701760487228178557972395552125083120231347383281024034260337432324873806307989245167200034876065758160070543274116672511109094706373388482916916914737170078025521265999632510788130322983734185371436137474660598161433618809357300162951293346969336499038686569362891195785137558456823005688667484557877478076380012652520987135132566183062419267105268645713928007793827882352797493199735877809856773827067914843241001021944546691938754266263052829245691193612341778713527891640851781855195908681009618140631807836283978711283514502626684775959132508526495356246580768994336985590328426502992032002182317773600587338594401007914440549657808103818316734196548386477962413699454815133937566826350294300767328441810803999582343289759979132005944473548608131568308433189647543193184107244259625947289380821218378764939990797034561570402194041941296889001712683637241809711000747044389800241098908143511598119944774171236931279237130953654744832572235120872653695843026126629641438788610384093326591391323540208642439431045045566582342742432256802098011681370082069970379099610969035809167033833277484932753578809678468131153126771754094568508664150515553332847927835365123762802797121175085443270250063604497987727203525378065504407135058694539398373829029565711796268692474278033604405193166368653155818950271883174872711176378886651819298432624564930107174322607487962040129643875285197192092668779160364730362237841038347953190511331908709395763094236760177544597527961033968984808422477644647458086411048484497037145488908454649666268353398553676124614694901824858920555831392417194103288187573608144664081734296807258464986442000405148632418005180421461763555028646838599244646677684112687921461556249764657277114422548753222299786072770356298294175649190365227279135106771978127660118835743673652504792662561140392485957218777427773664346057121226199256213652986833074454852459565615317357044758056960373628451994964437636972796489239339989904567244803918649019359310602132855715712170795659022467748560984331258088453403688324243146125377426964343052417104384565008203887763318380268834869063935632289304905286631259301160451438918836312785555067266750949327964745113331281184341815121853703431987307137040920102525239099643066737712419054205431819577998098832626883653726657722284898476765484520115824155391900488802625128589856057138673340747468727785863468770258685967931575649289232978136302131911878966822962990319663494053884826260116551886451022432720868730356766412607393017093240500284455197197658066060387487285268162849322736935328252130954954234649926947570552601152696062783165708268921907077219493012623522702511541331556799821197299435195281163361430265630455468154706898620243200392556019662861224606349212898095476025762422980216228944555606782660613623342305277265210601891564800441963902247623990951908093573129603360898179596658845333350078993961794105887827472106227272248235895315105326814784351133788109490504385370614253757480121572187615860834837669579071975936654704124982359250840549328252036200852815284914757101955136074604914728121818430201433205638616474192171773631812567458674695050354004527043824904338176578500788628837114858652940555982445143125608316662945464497376336498749371769314113341344951654244287767760943631669964407314771401752010873702911067967369522692553425787470360104327826839568069146715678980395100612698884718047672106674383167334361527645877128798591657957575750128114091756961047099104777901450139673805518085992655270534003337067238726573736279334822606547627532473763617167454417060865431635734824959531806018597170597656642033943872897191962105889725268058506349622891213836840458174837836978212883764836734184856208264294611811970421217833244591612921319855180022983916131336853628286819716408015050426969669900448789036695066149236049083756073741895762388040012142681582627322996919034033658511528641618702616218293748944752536300845066412873901991375543909321298923635866368907789340122632125363093181929845401943174603782586732021660027178372998669727100654977366123651944027667421146805887769805155142656062791425506136758609008012855470935213255998095253915392499511530806995773598512284205213637002511702371102905213880005259259928115299796120662028245303080381572045267070170082357204955116243813453511640016666845957860964922954746275324354230717688043061782572164880879103048683750190720900854654813751183333375562935189897844566050406767490424269443298440046167030256380985557236441161466175606601470711688961653452064191591847187542124679307556278451739368662246509238320668029315894038315300194965972104836270194078586000720559788497545509299921331521729253159307501971550315313653730587864717530366588437419099481594979631808028955536141456928998088787134548218774097051138343379192234831462668963956066541092632448339581205063179235717137120584613528504414320310948708964891526021491211764918903414419411299574492383325249136607630063411011816420665546033078704649450604345575150086431821065655332057364770086570525039661095605841339908366287590377785264176735549244252432347319348197181761803247951717964065917774943045529164573915853400571487990452796823481610708083492078390990445018668838389502245541644641335090781620236212116479628578982662508273639661674147122370257566086577292075857549454800580629291127152173073467396675948783739096187217763416614380416344023703499574107481942778752252878596427785443252151075103345192726518933468930980901460181725570061580558118662316223616784706116794862678196033138234261638040504415284879957181033398871228417021275172154145157824589934896842693850530362276714400338918015983708942208672423038840343514898580686949513102003738116492451274555603202359606440295555138012472894799872285795256800507125847064185165051899899502027743869447297906677634438906678967671686947865862429644532779702427365777688659645270519085815842153546600239470713043975006855576938123392318131318783822617835288963777715118641412267787397410223895469627720141306478473290398915604403575191183176703232382684015537867472234254953418911254844283468635449051311785835241062583541246827073483717036042689382044344766908983728454877634946233137295140459519764040247632489144774413969785820027802598864954909633516229225201622157838324061622375167329134527153243115152825841903547828970263279221608844956191238841926594961431577214801264624579839518695857891262995715410906925230480347830243710081470018133886368032726908560301380555071915787749160767273128354441348068043526217685326902537606366433125903650077193726030603423691563943897740664519326743484285058885787044499659015516076155255772854746398657641828912710085010111324064102234602187459439975804746440409117915416661212233261830393487804905081957303562397554598432649457826342685189510907074364273111280305851244650017449742602408903891063654229814923223524878035772923361623147402952822212601601500397749512160998726304702280724560288443281076374840954260152539467945679402765589445458947147997142673207102021701482269288961102945881173143580079995734957906453966365074229127980621869542480265744541601576521276659664708744513266476747256180704523376238425874786832032505554999610964114842542266086668843157488673842110634537558457443860037783579826111298857971207245474068011869254582474768255937946825410094465502144797643018675234493611248993060524134823417958302044807326661934097828890925603555652841617026959502337253244470853367658713215023108522774536278885749593878661541411007769346902046288203475990187004260755780711613611583699693266322393098315526923873113146883719045022864916731889454693009929235653028169663239874429490069776262933633186812784860500959657702634265567907949158369239705609566470697449388304284292415595354001238789812335326141714245320513656698454529829954793412032168354617295024650015095998555965472722614818974069529843032050263330298384030484714068041595880065097768148453360598561024847495556250283712020040303559533585182507624505750947461902585111393201184998752177748487022301662961930933507159019644543484766296299538136244742967885628740733476652344740906033707123788853462045657952641741434803268150997693308297544022083159185815667047034373037507291431575949673120063761917125331760438184627983912928554861155457650487706301970199155572404774891084172318576520108089801558804778975352889609613058902835553979645228279307387080374959574682530576333818445313717739407896513095697358204479085497310153390692472863321921175847817257239833010570477823133536300818969079316044217286668929989348188528130426145656873832600566369520732872972691278963598575326792138237329751633081701933114910194092660364506970352854963117203924046001178655562236287747376552069628539221780303139785200369885623943700797391532271395371616655081122168441977367662737950118978366384419437921492481739780103858860237019865801993781361202184121151618327466378720226420744352808738121316170621091483049030685144721024648779877006799407295739345052371829844656146134340301017576901934230315362953029246941931069282722606552480323269305313419173880881043924596270767934304012773459085007377671880534202402275855971064261539491338864832995094901521227776339892864287274192122433235361487741711656134225118612999173909504241828162351792393783812874354847605445806705134790061151811722538575996100140154812410267429334889576654299640619350380044254034160960697414626264239578164829469636229300866437670587473659963319600124104020029397817311798937378837855775331459558744206916611076584886226447666648325278879445644831800924651322917019823130337520049362693239238511543719812480114244804253339062265852755706629957331607948782823017201483651869858055052848133939715000570031838485171747357125037033638074657323152439709922643730315231693186615831920709072895006651783575591702990904650242745661720985275997737034929574404632100842371901563852560828882676512202155514661490347019180860570947391090865160145455607513379989133073364139083463839451957923211474428373780182993521907287507086587686878353470827217052726975637597515982051122044354254152300894396482422041063988764463540180924258730165430468196759109130837884808379237899415486191454824574810260092369107844357486844375215610833330815521419034082393627506318691858682279541929245276559631357795063171631620257874529603180480176145498910193814080664344656458973642222506062888168732106663816539773869044386910901659928160161814848124563336033290837142848221738905012304020864963017262459340277939192595823414967174822289839039107996779868343527410166800185451332842582178755318901690274896982523995513596610364572352206602216704094666574416592927912518255785657635843073130204374638908007293863044696064668448693514849231600131489607832592478094453498562362264644159691264697993932509580209676738629723782580899180555717492529696910346763218664674683433114159193095923663990890057125861490539758967921952704928665371028078359721468778783903562905766047059661658426817337570479055816261732219995248029150916393835724207530117064593943660934856474428490481877241883600156791297120230342540249000166592814467811888798004196052872697046533752445968548752426409015429395716792682234524503663907204248588087480882486533469362230102320552378770023614506078524874348778668177950995309708951133497209499623211872459608727539281989723036220666315744679225483940456110250851045428110312837482499425921746564622287757048847773225783849459251715633092440808220692684488796029041991323724053972695832985339325292800792249204476257019735408181289688162110094382655381778572772651734567229640692806265481356598991110600681318538185126502102067033680624319937592784249551490244209272501592040821779476761798403341162835182511750114419438970476034450063727699636659850859236829811179265562102274836181123975346247658870096088856107788393871663300566839209668207898091586905649921047834840873776466127046003113456207868135345779211686950434377890065790836748196219698844300614334638173007140671223873053083488411291880359075243436204901561221609298826600111531483537425135335577327558100414603277010254140964177090486560874577747361495149126505684662616364602943296980207072741439729883444875472957629904917893836202668752638950040103281476310321751216054866882937347121374173676385748104312383097634029760183731045138077867147493475971765047162053272101217908742094883692126959420037402585793800533280687066248344012390361250773318404591144130633158749629938153938061724862668355839632888314649308555773770471555837361262831666705112374435550880760801343551999429015810179604150238335310295552908022655612678808249799553512116763901220292676020868948552099749546932551933502332899486387093987188449120031986129308611370249253919766898265975201262058245774457222049323950810872326113505764329283452204809931988353025137933924525195373265840738624598800506748142746031276743585941841835256116974042054302894974046443950818627932367280441082701644140470188200301410387143708586651685324528425339002595939376269041667034077235065656907930519554340426125930909102253037690740568533918989735461159969087467595573496942142477148499955969419738215706418334885537122059522472907281084156582836750839190704907588571928097233588628922133843955932680936952118609180193556186742341956188101037759156085121966249271165817033718842348281754434703572208382929911280453964079325071519124956609275400736440352843387472870402693724027570483616947816528768715210505475586179006989205677227289204467774156239631392208965085418928139686216845858600615312642031186577596016342973386244771043142218192818230638244467215874919287321323543616530914325332825633931027538793714580409986830222474669108928780034399732084583797111008140914431032751027894342212089543370338348274175801174559502344372578802419713566932672878523047867809984591304310648077209846177627444917465846013852123913579042999785917453310317567737695512021027205256849985462119126922198118909050364470265038441713688271445092245853221644953679578855055969544448087336159169113554080398719071960286874217848183066101416057359177326042799668681555092637724427945276689682406476550713837617462661592268555269203985345974477032620103667420083699652168181626580071152596008442691517469986942256577325457424713361602743029053277942316865590448926293168870203819622584975544438043597830767794879140206713135462821506695711958825814969080816844048602549476615968729251082530642152019985325541614736749820076500476909719172561920072989314739391507961896380904559053212594550219933113272522839306215545915051309513610840138199358120537275181028275565228552468731048626226360307464754176353020937885222673578181384837198111766130725781428384527250359145247910583661165644925410019704621502979687228574417726732272261281577041822895749677743851623717256933791289404134699261448576417110352652995795896368342710519209779602641568011172048650271504585216696104029280725208214540378789267143774565917431964562070560504073493677865868505097444186036664328082634241839689010045099127888324111786758778979357505089860342650635293403298363862693898638860872475421156184457886294920902898712635713868609258776282622629636217261583204393391198913397584544622047168071573413533364823459630384064057342991654160600497407351374119632583799325758539308414733888689776378071858001379114201171792540158475672345420459547672042861395529090862891022123026021390394945066966374012650671684205483903169003733377020702240311636187213382623187594506822837336291824601064493009152772684280192562993400917223819974171792951137475047422771550554353569492881103874452361965282787133612743801287656589609049366517757984377313351420129603144191161676665776304913698381885772870146260064716105883378256829538439828778225833691677557307489654430293930642153195870404623253832785952573843519257100474035824099807663434822250120816541184670031286454782562111137136016597629874225505559832486826631401226759810129012414712068699008341471199159090195965587057467958768628859859423626526427787020947349437132733119116085309167532964151796564515999616118321337285413455409579792847368809560418557313405863575340677092021180907458681894400648327965802471426063956694832869222387811500125671681672678934601960132767240998370528973761397670614656981845168272662167518021121421525617734767118588614580900489552594302523538384202193793409093271696136927924001065999923123117202447051695925298323136364321373358411752754371035804888548936638594679402935773814453227971373092184499599367293479643041645284005916696605344128426287533435803084273363296805775139003004327724808821571519447649704722466354600572801713300080303421134671546182826839583102479348330852071972553601511395566199097147036155524440870680985337786448508480936800938008690188612699418399972564433273952165952914266899251028199771584858648937106657940166540951560376761273452166730547476397920621135719810728037483979568042278900818808704125657293086891370884544585858630397826993998746025388779566608180919817494054072051659726082994018638727697820314646511212789881984586059012192419200363329211270739149978194887101312277930690985519811294665789351479957912394206987555866989834748242251317551987310531193696244401868557382644910564012274438086911824092496517284732988740583754715933743713091580769585228597062211083998397172835957375100203708857644827130669207923713471023011201189611023436822274769564721142331826208681944236118283769164471188906673043296586598609285965007192295712065723541687475535910045327781685152286878381634089697353482530429274551194258304327614402900149999138877103694195926731295539570874662507017767513052368537467223739472732358666000735451083560911278310589780485155648300223004158549664546989303165793603879419593618334310122244990315465621017527999598166597012019693565986676027981308331929856848195148006747791724359116242136866821412093843179980513283967355238391178936218615422084610232504917947311773345078130205904547194164000960427377920736212986335059077723379381822752345461361538530169316979492715321326549410702854082483723463361950763895692204103962247404291798128124017096706372583071601410005429704048950065178223596997797283213607015655208707985504701617355999430995208062476123256192238871354114107183927206873133308818802007676698669892748636479156863131760121632896182883888474921909613758871706939678532823801974604100528265510941669553964877086318729127103036573678673030539293712078030686800624168821441183461791973968842411037463786152551984542384051307389427403829040755936751143761071130876884670742854901302734052775813137370284077558424424365050787883851940040538853552119673432423089254081852728837575955149002770456829569746664245925326867216496774620743033081952991080900242889737647285971307771225711934067179236425122851582177860641878261530051335693665184109076489412190445494309520607617806697499412360839576004159463356943225440057741585306216234022165750245497257945019717904144317714526952589974978671790022087251898400311268209744807806427222317506985229751352499323031806502316863652801594993631416932715718998046267900653141416164939593818653580765617430857094190205956765837084538718488936414824210163906002252857495716365189467024907545831028201975053538046421138512388813367177570569575787290850587608414568957152207834666377017011878250155241412613044333517844000302316807596812332952792019685889104998595570593270132336817372128854358920953975925093910812414793323263951102773514552373852763986374568166829604671089333377918902813582243847525544484950101933973601854800512131117810889226193979405904508849644896912418842964925867261201923852483357723957090426806306853477838146388113942117372430991225335568940119266875305212869449263614075178265453107884756617408273686987936273258338998822297330943361097289127165533841215416082117635138844336974123729328119993274898428443965949323356271408410026853340534850146903792327530745343137318252172715966752756238229929079523312445859225172450817546951929198671372954137770513348989603661146005255683931103082736914102433272226664247855337012140269218521439406426858039034767300391804194134132975657259686630142527280352592250681999733414467408961156300899541184737954190926961653922927436402725291567358497735763603341181677140458619299737881536481439497966293703222780473456942470819248069915798617460380153972399753584967857088704826211929991428948211313757298685976841850818574539168612140837118519756237924708948178041129702978450703839957198624237489922364216049407619837140905473164862276443137843215800064912083916366638701844769349994014224893300865013468258250433084521505688487756003732222504727354485678547858706813237232574813250828400641664673072819760611086168737593706600502591492926978530469720802003225424858144204501368976383677364819349244491808875690954526816957531609591337946860402828356458695734313501514688753289568390876647294680796249313767296824925819485570762248541061671058496269911632558225515190898511023489353874887076323737566381875405919182969150319740460828546780447191084472320883012472792496978075029140293679594269619278893140098088420679666796714623671924596825669372076728249455517532883498661479289877434888372156736014501094981368822470615287727430206505159833742056151314475345974385237863229724262875087481039953753897894077500354143348662449386874320439968797456572767942950240643297508620313730647648738754991301825229361510407287251685668986512083798018070195969430634692817536587935639318918449476773875989962544137166254214195120304292721411745062861744694807009999219645232189071911316541986598123334463828194881826240971346832097671493637515548713891486308111585091467252069225055866311142741048853900218070481368955592242128567257429665433017179271120313119721861239071072770982366729050304990167773222360758348705287190525168363081436729660607656579554385383885235780410514651599504928551445221810996926006100568511170956107405450759114485445952454716378141203004981438020564240149647858645072873117826320027363075847979429523497826776515726830132864744041192845310867833039244560940175849355930234255699485113281281766188553111649597888664601924704458124837554959021136189568892345242382504016190252591504309260615493870232295986937954211353334827158977218449277399122802785476802044799706955997085315754651752132038772224186104566417731033496920390199559522950959974292772033758479025684347445630813510257727720802253814643399608684512003076068943187112998932429247483985877328622222877236036192281071132008973046572915287455841151985039691672008700565413011028098789282707229347256091399008553310921403829714912778567560778691222704308757596353588754787446545863855992650052845176307039138450161178084175313041520308330697942958273551867436383985468603705849186910568589716713812858359383156667451573312402892860659493532993911659770516946492045227255268473774982377324713344920359147090408074782263435785261840664913134882506189820746713120186653130493435089954929570918527990574319340855637076953047133204036660958374770993597125223355017416029781670985476972054205785576609890657058086979206283381155511948761527235285541284685020985573720271633002089471050893470048169949886797008826555629149397144441226138992085138403270711922414529519995964872180347682806165403120247623930718092505893837238846786258513930290043217541348469730698827576759879238093059333222955255700240316516533657290716385193875989530258410689335737618664562999347866553642247132601192644657312741041480128633325724768889793090478932426584648284415708239495667089609217801208026892461108689894785488060113624311778743103154426225529109177038069692755068608820740070441070363400615831364084356447890150691619291772339482042866415622898777059490775896756593264148569380366063232647520377520855889268870223790465270282289024310498095746200916615056474182423353319141398215147380779173027874609909859629884150492265277295584556397288115193419252158935927445761084549821623045013455862330218409116586297468602402099147248961798763825277149773205849083075359983065987168180900636899389532403478520511251499042400225957668276887685515181620056987392275108421858156513786833850950368632396766412201189511785689115882462437757128239966298613040117600713339529789850031715685248147981934423851156172493299747123390817280190883063905045632409104620474829634029628521110128967244985052810633032022392863175207511603062229876356968564119041296033874874108634511385195151321739152843356054016403559977382928719550910349765716228131075296463300977390661121952540745385260278349110321486713677774048238356054637916860672798377413413348861419690451016579087608928044806350317434527725188552233600936069226282374479694181172256275234173927989467533532681664947404407475639216944676921014431050296252823462775981630912157748565350516633167375638598025420858788560584603597927338138408938641494024962475740448277164850588030460540459358561067316527974408933315087369632228670536403067678871875065022950973155270356697224722353107796199682030199571177183795692768614190776536549543162909864663207957421716882436063836360697976357686155624223014663492812358080430960079024156288397995106785054674490827140430962611850650205630772599336460670706007688946212438319091321175665098061183578940651618867613261718070979035028387054532598004362128835517354123844135548079231127085933599763817177766175347568311103899347701885653134267368821056712743514389275314509281270356331971459776191019121835800153897509945396226446869457095523009152954411695736163783057848320048371411494430128667540586041783791146739534909022405930484507214126653576408868792608200265686665359627766265055625093243087889488179788165210923802355507745017516303340643927983668398799718658068326274417556821195141992635718806692135850093011349514326670687352967835691006835424110538073434273425832142089859594243103180430982525883675096360442961397886036071112265846366439085378555727615262360694526167924044916537319272006987358371689094181809997843360985050773609781491378480620866375079526770079426283842658274360139339852227696123948361541372833870737083258089147107693394912065178843620483536433431305968283498542093609318061148565704389057407331392178558108158497014981871182766250334744419175902921065209806781394855235634578146068962226498582055246962424384769344830618307404933185328084769319351629660479878899078757647312835969614456605546828911307418041252052987010840333070624256461983173894910083154915262532907593295843768475056091954075039035378249386607112737703910492669197979628871527955346185824343389050492125375936863784673392834008212910803562620511749884867342168262612776726205488617871986723163522991190257728355867150150783762984136963172074545247464321849854296796511231957302080866724816514753232734750974489007400068576127410886658526071982001754965564317373873881347978476944705430894315363079887508124978542434733584142006497987610620960017085535250458759182703026634104294313187427282709681741749268013754891768364804017548325275853069721923488560272222458061549167095556720923261829278436080405667022263338387573968581348640749049604321520452399114915942664978111362058432129291341937953444288594437159940045964925520666338284924977210857907728310153474587902757221528009862769797443903332752405745867481302151650904933367158933985580014752637898552874904851348966639581172804208960858096314660256684265473966670650764336160560403348572447141641234943816700735645544944130104763134647405910375047308325792345118772910102839626166145996356383659518474102345818658788791375453323455009132287742044854974640632877979263097843365230958745526572947365071020181488277927277519666507234055701367276764048184960856835970891809572231545573272013213320909008526087144708583853611603219080652910750185738218750521973252325273103147243792798096056035220504961492343319760244856856859418790138630361447301568135540992635039014922105840839502844832362498052358038414175518392012519864364796258605520001026551875318353702152269959682605154802030623914367408185145386342251619399922250345581822223258814205548236018867043362030404617226981704658288370198641289513329721717035195805655649551963431490551145129140603480106367837559363735420250439695567737583747211319375344670011698461504686124269233536907506437994593540300165939659843199115844936040589284806561451421550318455975131962030814876276280433554567572871634939124525390682121245590530746362546617056691129843153173962846801335488138154755704512433517374600319252293716182942110255011180222620611083641834562071262625247081175561007882946935024136826128638467696848837914092649670253598604019626285847811216595735450757895487414913852109436377891925206513503710303558226766471038001339240360027077485755891934376616923425075018618743161118946866029673362675394350736214713347130869379055713899136109522237110169253374243340720948285382513159486790688514661516167580621455932466388057796042394457592106888461264810043006148936465859943016802413253372498388831320715025996413963094230165097095674012039011295957362385740811121334826134676985985979806087069034392833320748514720553062770532659287632745282515345462828857828590186743081138936759437939565357915114293280638931101088454203454883676695474991682923359208576167268104520528587807133860177188764131026847600604919686385050670514705176074108920290296591761686380260158822281430173101854282199979023244960595022032243646780711074163052667315446354349409196496148450565176164303978864239243408143503164268867158404148092362952047472106585282926879827300074988316925565859989075616519786197507365425707916344174376685872048693141899234763331348015396814933543478237075534646808557653267758055055905788502651773640263328776965287462056306031725902328456447224840792769863842060723582546720589337792081157916631743386949214548922370065389322875437628415405430357282210231656961553045242521645658250019585775491338852841682347176788695733842913623202117330170196853434056760612874853012753361884376942658947368624069852774672738411374631599557754928533372581485330543663097105729201004623728659719769312100552420054500125514479936938488432021708336891756603296046873990364005887428601912593697186014804703537997137607387435511645379154521677038850137222177369230986311438708154755005916238051663671458248985002567707151100920907403425423893986823983578285301099422121201432879812449712134811661332438135037708162989244620135492173980421317217992433444909853432437484029117906353388669740694146510472714463836172018744863364028800671787564678809442970903340162059437003886428428981954550749326267941328677342563426984328069118620336530192461852461425479318796151767428466725248942149007284441433557682275568953684334592160511666330553194979224645535855460125959761549688783259199680993991432901550615749076484773520681680901100270713129982694726629868259473873678735098092312803226539378664833117754157582831424711377785113916561451975445195573720890428295295147561937767589001787498913546127667072509109256345256094915723173305923534591064468489663489760558782508312696864324745663918652853259281341355432444212664483262681329665359003925556110673864740163786936894837844261855890188963388392526279100077213108777384304908680410064993855952364021208073058409831383687926466703519299750589844113120493066596565938497409342205757200004126164311858392835347951779635709231274378272792283410201735256616723707155373702951616456538538999703162754419600475093748196184786317460262573548625158839568507802846993442910893549296954009799751802708064610712769035126928157561284119394826262065015745478929063972013140366214815603256080603169942267835750819821149973979704644590462918770203512011697507323493036788492004234943750895997465232603238140800077012000448892845231568564160802362913857610244445246432940268855688545153982422029730468636793839031652351827778162564247957517378247161108040993128366933013848606559870174046588813915977947000643824732681602620743357335384565195881152666903621081880626131108931404368506236836365436666500452559470342759809540280646336094373824694682381833346754553810710587204127941513909615293865684197852271213754090115393001717439441959340379115890000020677549985057109795068698485706222947615574270193423828991293259663555931337313408275578094049025894997392845304501817710559824495507345990495585015336760976894327233433554993252121781686232190692100945647643249454617335484829775460117467906933786656445920349084115049286572628158899055846719613816135691744899350523552240759725379112276730101122987764123284169957869006684232563041804888748362510081699283363886468785879819299133226533753574050938188636826135363759802115658561543104907776402330439421014519282266302052280614608556132908519168217659142250048513032105620754171661837951363193201298652701742356681265876231211998271557393963439249617226833099304978552020463130798672047465920673454978699536892659546143332630394226515997901183554577009360415417241937693207920967569913949325397811090641832315141443250664818545437339600271236969582073984726914885565787038985209159694002961856767000979801106224213648785317298175504218539728784818888078527975894285846939276899729448925283258872697103357606991005112143531657724515226422094962957473279726321694623317446894320349312458244692019519363326623137064547975098572209225778502819918794969025273973976717085215744451364842975359497533270852333685913825206374984525793020638037012112475105939923886918369634521692300580588982946069398832827967488480046297154663654828675657155554935304233214924747890753745539677429606842785279899796063345838983763456742238891534834786053717330914407367808733507373203752116768383577152235623039050860910870072426177261838547539415914756556811297779118794210760136263848811483575589653822610286073166889595405672663314955361328915862093610561084734162966414291209533615409631602010629339440359621018393485873826644062633061428545726485961982823867495172063704005036354718463274497660821019272938218087495429883685094999603195805945595767801997019922349934947620513306983723195610011523801257200022086174161858781949697594659742414955866178804378782711340470688331318267023346863020199604278863649417735112449348578599813719674671059909971519718451440052451519707065733572948402564296655543575910480874303785277538896863274961853149602149830215343101350052441100180519342719435241998186597226145676093558480935537985098910317276789471270265656949775904886779203118918013389185123294169737557254841126683471282741158553813214990050565020690817374303362363144559542666521215155435704955249308040726937599409600807771821565339152112473988888296634014395631183005880194451837389610414290293143813043658921230463223186244222397913458519496754173283757662364030619015789836560571656503429352454867548727720627475698378711914652538853308637502210061562339713338187219988615844028694756550555107555251613396218214109807835154923202187344496839420837311300503005484744478429231755811967589840318318204984644026003683562748529355165639934744722972227189916458990602547003990632488899027024340601573656868021540338283956058037745845894033371602694797161801718099302822384174187947494779620485965961371621233985338046563352814010485725408854170877982042730038159945149757509091051303176060952175038619602101654283071491011702196769842389329309090584452320615737095781749140000938908829058733830995425835255845243248023154412752492348374964253340721107643785386697353747523883634641703831771426840260825198996930304714269977459304363266438981352904580881048455321144121345967659550741913131763900691952914245815940031217903670630914890859016201625394944621982069086087122745989646998529320903189569214408401495666789965235636731676658823588194448190455666029770854183935702734380935118837979774163053959696913811349512912886992705977485718122113566403284904853094210396246687292712744760975984878962185902791876841093572339020342296293303073889823178146736937575267642287478521083025566568276319787298236637940150728085484375361085375682808499148853618578203137459581080271447328247736251566419554499429252758443777571137440213026220997277763795015053957603827541851182296010486677828921442285296247831500819268168307256106705180001284524605902165473574210920571291409626962860819399245426380795846066578590905120492349002618616132545259311925900069144719114381364275870299742583553392429101377216632069853985300752369985733531389406291253158728945816017928691131021491009842305450566193497133097544743957136751629941170311186045611710242845281526125325009583037220058138571716226321792178143468001037421741034471330791701718953263875660851546223253003263487234819379642728775581598232155489473288974285405374581394856568694128502761726760087633132951068275007307833056686626274672687254315035707035354405936156291156544498456327078482353542555421138669896828866092215399982674993077673470643412527628537871106496250161989930200030902543342450407086424661699910754569061066070141602504503444823739459264406787391886113951451456555316847751415984587687147830770894666300593871679775370534249918910126194496018306076343407954070426931918688194398068298127604524330341696747744189021914605307631000460406304848555721219776093745410666315576094418050148109840111371649229758750971214526995729802762505971731501019138684299890998223325192443527647041227983181662093491392978214176396702332475966592631458906711097859557597581641637698164866900054439826435550497467570359264974896372263693782492304534179944116804543074909394204930450197101063835627819789147186096073397606006135364509862668848035006416867907185187520359253061513431239821835441631583771992232422077792577140391997867132306799384826084639192136475273148073381402465010302589223551487822520874515207383895095952399096370296163584434642987237459636377484104514344964192575593144666020147256514284226630601892839951866584496049542200925324474267193265666834816131738229949397722370669275199870613258028145969733487557743242073939894806560820540472808676420518391832055195557555550867500348553548943469360657584345610842645998055557008177151819808430384822276327990860117615860661054602283296642105888680027792013471262689505106031470693219262741231715832332149963168954700768874243819230020192372153639300274666291624093565961822929283432055461890967526087339143893782998549374064554128676583875261947902112427993337494057659594608514603968131751920703150037894172452972175700484960167672214356505263052536899585664907034606550261483460399046514766279846932918098389686845936761032575098942963805098967350761455374188927820929081964850993424145364839159375533095676147888935608300944473053914686978606992441044207464499884455801450015622226194496937803852680158427527465435539165314709376207846730774305882842478839037431975814137394981386780724468158629997257176290153861714897970037500575333483345956229432591165000029166230689411261768036442790933852927847934429182835076901224504772974534505956520096284467443046254828567977573660137917180293080058097381005324925633016960046389984455958201481631351750535967808471769680874627744289950639132689065884547399807665877457622815597532288712423436408697206196206875704458854718160552146867221423356983391401311137369931778833754979361993980692461850865936747587226293052673397581292744421340141201538814388696907462445934281834605421172926776032160734083520345036587218117939727368496704144452655524789001005821216322796763356634758702955105837830148870510385522902091901874039240694032094806408000207212602047811701493942016392117182752820602112663993097657529838820297896756952298964230540989936040741639495924396163123631702859240611889543298258863148555298623470739808986848946021686857064279491640491324034207009857807939643831200979791743877389639664252289415511593787628805669858124009975871228421956262371692718413413725941419037679107179620577394113570825361894581010440011993594742774914389433148402970998470320279711857822046901681504521552053759577277581556027144501571074622793068773985556546768918307136039100793137608437501229568818474968156969952167782873247788474254359855353343459018082039637992792265107834076508731137321740993633764033216229355915477088192689618196133520906510826057167093797745465778873206914241080134593356624035074595824216021671699227992449369465274163305225283879426185494091381003640259320895249385904311200210316222011747234725824529674146455876753036728945260303964221921381514430474876477440873574403334567730575457053039071866145554307179330065626979781438154901015491114922936119561374703744286000178500088593442162742784189692114957319375704099054626341190458038589902279032377692952811352282005519692589137640856403991724968656719984796569395633781101734573987639860630214843475303467153565142669852466352190016628977769658442034764003076318270464475741658145569138255198518089505940188138418067002228492743342989916707369130749152841088555759287474684952690086006397068371897903226102477501061130879291889618462681275626460836865054447857137169216846907348942410878015457137172783818546253724109001113717187248435663191515186278090410471153837282210214949467921862761784263262661075628148216773322502146498763066588381547957618707412164620870290448304374575027601457350854769531506454754405942421215625680979172608422771443571299424080863461508423763682907358065900015673266336257871427985428708806577517105585482239029468124670351105804760285615216939694497097806123195950327478043739632135185328655526139353715302254651195587300391441562777815585640986809166654997095689857244633792263657811647795802441948746985907500209576644303695137367438822813531430098345087449462258489616206852129085973313447597319108730068070815563978882681071313731441936700025839022847564986056457643416525547129643426048372314916714202301773174661902950051265135779148609429941920867041314134291542928299377423978288629778063661493826515612029651780239488031306418260610462967880613314437622722334948631139581968424564378659174406757749974520528863548098437306903217500252256509234188596135643591531846460952628872049045190927868278225248714660190264972371586556873362289869866868976775935698519205200346053165275714299261975280062973480109725964573930158562869041430643258635053096155691600993535129788931537986202879116755053019789760960388096908918608062588536778783307993964761435762700642422274947108556489442769137239234246538782605716401532709618602316032222407488254199032659131756361706250023349409678600590579101831937615137907012726484655924319272210032032260696773697456454668707064290189545403641979265269235820920016069298139363063548664442177624763235108779505895108305596444170866815474558853642815182452276023034546536401344794299014448747515520635161536877735886752352453984079502459213030947763928661890629800415795833943785576700309236667673327336703538773128556224604786439189302461265031411617401170640086447422109971783221499717319403699140293747539164356886736412833689035936377285941046573157159727259171337130153598249704844489937371937638156538877088906706444340463081703048982876178334731230305046714388515658429133260388451486984352634962869178063374847004800712880577629527194220591533964363016490658656523778797601748128477351376134013060828361852519483066926093102157653020610090663455204333238620465609694450008452242179100175884701325123825482568830472968911876579490775452906649647417405225119552290433941558149718659667369831140921527715138099476653478645632895411949456900711213651076181462147953381053432568617436665925484281620981359656578712285573510754459109323218257334265396212745284400899377405858621467581129473509557446067595529389635190333587710086512503632031895245080479916768259494651778516994413018272593874643483011524041098502233225984838652402915447256754153860003022645329366053114738578568458356423969835595782731429010487127817759129092018803926133124852752602723149054559037988681908587145225347206705754014111056990587010885437029876664225065543648074464294590072806894588306040340022632817565029935457339587187199117915967254659829421072431948870468403500640441796599862541800575743322675859700582405527601354729108983570822226842969168629739021353752379691586822962347537065333132551142112133304918542366699068883292460719693656139494713131324273201388123848845674507184644540795441814157499377692639163999884320973188669207389410942083708604468050982595415577107584952896477702794658152708135521821626566306178737649317734741331193034540957279379143175436515027056168113666425905556692827598634172272361951562578360710471611605688928674674114377976686718530321118965681583519583198685268973186925643764670711443590184444196776069700164815133247392282062968994614515892038045977503524203388613988749408685006883740052275759907864847687710287442953113317588133661530463728135137156940269177740698055447547208107770227009256841820697637602071189563273975223831801457575617212997274871466340037740869248175728555952764572555978510575566126920813324784702838148320975403571375269135005436772582929704659898911188125698903172250905294311833233198021119128194482916482031583933085546630445629371208878530921409811541193904865228291803719668780100451215442089651449681440561264516812227838930558598491721062341958452540177681087146623925937205778114107529324928288110427613624163824643346368327613611990801544526705715048877268815116636174015902873444196932491954099890940988304869234834884712343383745953276340072885579458502524693941521664091559963043185584921720724870557369406446208857779367068396616992749139269199050305480691309233656936875546386229069862281460649566374198013864979396897375429657439485498230498056686383655841956981420898113432641304106021905734500200319141154297109658755212741862578498778786516435672159997525980025102517547167404645869111830796775920136867735506571506832674510038736619701556810499820054389967219805189490242491696970508332472718690461093547957088162014337423506633464659611352888023915270255293106842033183326248641841749086944166870083904647314415477393672814079019538340048201501431188361403608690044636108007296620515556230265503446329554398263705288694266662760877157828184359624025587154628524125089091627446720969609480671550369729520799667824987316825816910984430611024465834079902236343414013553136005133266251100626357062073236064063588968620694040607525936686255894207542806752773357197136705174803318847765343694392182418535684761941335493506576413626340432002611036112218880086222645490891051398701916919657464370368708020116815044617073855040484523229736816170670412257237277997815646519579775760656656804426371233861058814447164497495306560096849098643636940462253598767034745130305474709446068127183593668419344124546816880427604883525237952383240260785893614231867759492658655725200683125754595950881310033950155225801173436166705880005334138926901287811526516787645970296723807832591245695153078922587730550705723337510216205743319278545378498309844328333939020595991401468802924789068094086213559235180858234683437048201421690265279364263880685418738167437969466423017583042231305289048379357996368621915770802363147786643897373911216827358048370708208873197744735577670052809573286062998220471343427297284158477193549618387616462419910187444644036135756980402353699895216283811825193363096830562624838992466903749253434147010439561035735606342303918549123729077824332337194614185469548085729749809000432396381405390772852308677788707700380928139581964990837099157078172824056537521245943255468621631044768299359334395982737954953810330018386487176345988486386392947769016773923313020613615148875352205633445316430828072430639418632192288711511945108842893565290662522253624328402669247595685352777174157542843399911871613604521628212734311726972414253098633839088886284943504905703181543114989979789979403515924072627954873308057089718841046701453239220162806260222850678770699022933686371160528923828535539568683169226726874242671708248653556992899553215168944307145181455541471360332320153234361569764183673223892727863108176799471738628745784205729335174699945795079408191062703638701822333202934675619661208970610583680805546808491945114959023979148972835615974825016853751454238414843413613930967356879061906080263230018154252022389796634519909727652194699751661694692571295651929079237156128058655504265237608380875764606882044453376743115596375965610517665955547237936445161757747673862685341319707642602391151674739316700009814258714313508724756256942212761366485366138227990270438509633594190913264619761841262636336753624725709298386091648756938435066802619405189992521271264912462028303940765546569820139300017897675472731538719096545826794881403747230912604794273743390985861476128072695202092329468928729765503964801585349411102023738161049070441564459582468341459961380677909844312941618403790197505526345618959269683175419822915271112260523897086864362228964414495814967473965821591287851774146877328893053891612173974545799203973369214024885163409020977388339315455235470154213783161703796330570265738297256496194573063665262563393450296738874053445967333759681895428137276163934646663738199523976559694527544725801105639789468042456668604575921713224253520917773413620831798183969824169574054030360983040644095444582425372370476094209635170979450425963124921452235307235744554290541682306366748841001611248193274996661992007651195492302010437076513270741424539800575229037286384924517326763161703566955918474847432411482417960632712619130136744077771320205113669124743626882224596101976779339504138604988734689164100777859032062957253596172759474858979497768762017735004136648868529946191440524236813714501441369820373407798375281858442591660139352267983443608728635245695220209859796756576388855352552608239516921664246484128336798214832409167046359421115025932920870756117560179504530185800809051362265828579659824834304824633797617638138166040531701858149070225703853223960371118309381541749380638615904809833634429277442528316075745258655944760431080510814956972439535190075552934442675326643782167933183330615376202875042310481792481908427387119996393079944170094559077028311554632843990782888309740776534119335668190212193437554416379925847626144988369953638794291378328541068914537171931316074417726692116014919354736854607765887504456315784965785682948900342944579660879655814343214020058228947771595727294550000562074729942991501468585080647708073586295937238159232668004238233203721740820205398335296177752605445144042990576612777555984291885699178450708771751696263825954341955024604749998187887942190145961321403850878617950954115453817836557897583045913952245973426648707301419503244881296288058855673031242281046207668679298492100818841398801106150301971626872576794435550669779553291685575849844640401588134773564356962547047743082059307585036534999315175622167883824616439581091984173336230280340653952234273833365600812373162142935756828663781625902376667690714755560943267078779997725700383523910405424448024457859293270879211805405711694911470454312487549208129745516230218337212011045010414894401606029688704199861364788369255530740075917237488818544659789501233045288022028835321476008418462079006971210687616233206050442860169004892410248659302821352658221507768799001929986275062931598505506972152583856465573506504692190931092211880418284362092646278530765691041603406712032824551609728179649875711623366371135254728556791660365441175820171512108521531090882002732161552990291917159753550787025827562328135107806222125806299258104017282064969502569360321232838680041653281333437523111807793375945019645176886709514620452903776726953505034253850563578090058656781111769939011630615965622550243119237443847683166978977663928326749066443251120937087133791341984711416727372553618402805310080760029818065533749082093607631809018272458668714863347421427935452957648071230763808572753047135391696094309023148037905345434811993769789016152260631577186997824359424605033434691044394459385795335456028627552434370901129412128423410899821113356910121543218836491869892064977392262993103622996205238854954561198151158225721812326976056661986984716359932599804174485703872650584089804066970059565923623820113704130717252537608876961678530304453002544289547508175168561507779599250999061497193996806927678691011737369098723595147886028979728919755930287836359231610332700068314274776712985559318014125945064838524491387550684594414380290827773398788045769605796555443724167423065314832096807852396522751086788441420540414970504008227762634211983683849353647923259977634004859098279543534010820579820407538758838855370957493586804579172747307265421326216860694774983235658920489254619085593089345971867332515369557711070368646196108790861311180599354123590877966859295739430028161595931252001262682928812836601426538089910457456643628969171174735130328135420194895874756274879725524044666768011823453957659813094197344041780236583554556954100990309112763978569501808171644779243972511461741076924590871684908192150266250888841285256219410326048293126158093331379768683949709605746903392405360110454779662503632609554698409481516124982093910942328665958081921271832072436921104776418899135913045233811643015423832818563445365724240206553619113719634025205599039037213740605820366584115445207780849747867503002318627142555047354087281176760079069154886634873281610332917570293611059058702863847423054122060483218600054200135845386569546184214727212178692054489455138457459500543645713859969479066031424745953943743100261280934230324167079284549725597469788445887264157945565618014638641272428277038417706933766237194483876048522314615111353696453871354807178369269118476048325842179740591345533848386699533109760473859595108903070747778009124468629712839655494591555975064235180687541645437559003946167521876362238888013862734256825747563706028967662434400395142396773163267169895605115760619180687321336091758217895002084910252206792842198128411897518463735095762420495134400270456208316128186383838716687497221736749961706228203933857966841584214125272221834123561592076387851699918141060477673017028323696978768190700012561850723968775889324723353811148442152339902587793487558261833021877740186821899178471605414367119626268885637380559668049516139928092795468362602729303278871854890768637812088390663462765463070471504144136487514824897626637663908421719644032389354411530382304665446642493751560236265535067359473837888861869194665438206238496697004634356161300879858006815107444973831711374552004275139626703183579868311519553974741244402022263451388517085844334939075867012318938214826671139482415549694752095846237516456559990754675782250999373359099083332161748604545782872626546162197800925647084930652658842455795829626694847595730913037254059270962623153609802263612897771963452546802996718652916649642211494418681000800828225312902709280521610225179126904295575998070398166699564774195845902684697145489886939229725622301268791891570976223452458482385085687616733878040912776366844719475913371971856923638727677281933976534880678507172080983918387308375133501455228798188082813603707063971988984191486290047061153032297779537338325411069850176699201652385228502852311444913142311524782398471100103480462912401165714198137931791836733828637709952960252991664545824902653351539229737830405551506905089759705668680503673475964694216163742983037325681842193380630673420386391647664956664110366431045888013035158209536355998803360549870056707469462636720648543286415314763879297003249023677960252549667702202992055020144849826319009908658435647838593964115494087350786656852185125604743565433403887295199349646087946005589820099082113315239803343807873032386477347058022213816491397106099249269000085869604395747948926924619024058412304914491154659685889291514613606363577258351966249987804282183712252125740580751179090578765502126882262055956168413743969972465948742662940042498472557297659122681315350678403139330918834719805415035359529868189600324850329168680513090421479696224955957881821148022391273898487998673974992832567878125440895071146944939021352543227598112662582082401477922662951064405013008609515530725625880681908233459590821978865367009699850706835800402874478354274149363106619859754410396635329384344424520802444864591166281511876299051070838661887740055598740987643157557445360533277571193011711887826780489653583076125290367713651923772642772507353067801993395949424082466941159070516688756551021980063546931060612724200074063753461330733939135159946874248963377469543916701608705167434519657338146254843824629036502899358181533586592210314519441880126374260237292412218642571675618707142452917860606787310635510550416021175523924222706425938083017270516747130329740095254172966331757940343519336311305872351389050144600133128234755623350494346659293762570962081308352589986762261122093719023218844127589972194165099713505327056918316968630211027851321517468095993157161079014005852166505463034046540043353561062768066887151356958424180685993513551432700410126077151298122259385724347907457340385868151808613381338169978257187743909655896164158980017251698762137180729908527909784930265966583139289212891576985953450440484425647051931667807662426754904891815603246841637468749684516924913455857591414106327515879557941635277748975425392295587777472676630631846558270430387969936923255649705249123150195498367294175574055821941009820979982005301029076767503186836078161823860610561477212218420316137392971047995484422823120087564306826015268657019619553858699947469235612133641705559789150389812898058229704078942839572849367831895609725765774711345535080387595313119228940894804328171815497941972642581093068268387755546370761908585678890986361864841720841723648421277806285860735917899988858289205280936454283116271855102068535527045246747042881581113678851304635930310811826213774826812108587578813950690339691752401826333418703019174246358236578428911965453121141224406227113581735993709874580394197733241046435955501865239652230968040670450360838437651497967864900048684070777458304833196298751158465583558338771222156743229002328634812006836236942530188218972626500419670038022024449618636773043719128624778389091411956659819510773043993517206577786429834733120149067777299910609177243429453952544458544172140074926250864887907799554467757471042544881025566771784824725767341082209226591456325532516181834281990882850088937930076082823088066487356744086545773309967777249925309057965267129551932809019294480393223550153434748293374211530094824545418724277439309259209993801801356908440693535593672585373455228724314042305699243609032433701284280954784500694796783400465979347373533693836739367428674319373121948980454478964811288362908759167988299035168069325082602493112539026850913912607791163680446782796232554970102719942319119537307250303383879435795468989199115202272476052812687489490485103301828261150378213454123066780903885860149379304521072870562365636313820487625976426034214589705767819788825843692719356834175990266438731754951157335786497884609270238326288438750886564156904931483297133407855908478363108794358550525944686663232216532781689124294559072408259109018474644008367718852654965764505223651382093389158377607300449775551035798131917906444932535786719432833537547976495592644891324591179342803736743301800342599820922937454432343662746106440787966598486156471991838029389458316439164459094683987634974262163358535340630610395337639065901810967207708500178354092852384591062304768617727926387388671555900821661256913193984314932762646007814628044491465133141712856173547081090508017410817792160207845606912438216701984050736343397376802675807513305214152074977368543480391313212154352901758000429620954470146011267025776656265819204477255398739649267152264416452168274108631240184428135463221226245347066958223312204123457181319358773209878862805601452737262580041511799608058232071465229849412160743106071301102784400311920259415081135614930433081537012154998499565765716411483198567522924862885339719014736962322497274528186769730864944461820225090064093597181294559960283361971360066771907313756468687563312515722710889042733079113616237302186059362120422111088303078266428752991674477020056974873295237786332837274324625290970819537742460633390212817807474893497442097441799431042526860787365636145798750911526336852596470739034237204814898125172329070750485504778045430538278827229282222873948254858272833419179827006223791017292063250459519998213059225900677716351898603767487308337708689304250105206254591082195905365630330812015284202814727389004014940627618045607751882964763423694279903278304470423134428020807748315052801974522077674033216122952050051464605369047317229995789970296111142834517174570623187750515542342290739850454769323902627692483518848112800878039386231479210786210870191085273817400745155388081750008702398166380204846637787961673213948588013011711655738473565965957056590835284541694865117305013100755724012854669337925918504278082955969199051007039954284831785973323272215700669776861359340580533452134701833672486845745898466160778731875456813038880037796176252687179153859619451733250227368555560716902567067474774253590739857661778874788846473272402822121432788187592226206969468480315237277509029726452131436921062696188655750241997059062622028084307409259236151227714169824045911440537538924850603896429558205149553669987424836925218929585451914237429278341656221386144082324240649829961313986140100440422433309465026843632039230947595981860750846471853931263908771820643226694321274202718558904380284905362410484875439654638085357883948448392749214927574339801865151415802560592898945882721635404909701775901404349714912436929071562928657666758759795864954206813412783358038677746505125964465504832471693676980354481366072160013596585992108724042787881774462586962156467241715812981995966490136848643107772560324472426219462615879731612270280735796904241069031810424007073556756946458455770117023646965500510501618503432693262862623697867455912817904057228964705050938170144060406250739830331013254367186966621866828405827937076848658188052370949639414497439159282430343484738668139066984948852558682901947767168216157631049555295830799920179617147740521545825768724855415789362844322638632665822123934813126261465151000764103903521673098630062187206320649722502951541791924626127821292447269944752056604072778647712642569028479168527123348671544407451027214309333427650344228639020514102639183486615008432698006976694642731623913642058723102328625314311429855451004811342396848633545358665092725772478652206891408921727782391122200898776465627191818180662777730717302412549387443680001688030863417374149078512953431428013350155982377624991019503951386915827405639684284495443290460989669044313309796987803851534624320020531417717936886488304012708154975348088207487073755329225838691665557160208478358844881246659903434508022402297624210259402894672121262365392025321992464445956220777391487550620658523764927788572630970789799195022775959608757685678875841659336793342328229786844770316931195402103128215910318373617898204892227876229790709531092140435738130744732999112120012078411618088364660472425702896076299778699205723033471066942784521429384440845517718679539934299738831052846551372333304887442599749541462562681914665965206334001065932169054347972489851248178572725426328301271296092945249941090572211510477057173733745245885773829819024707266971699650365588805936469691013081401469759799088008561611116147964535991186014661724346431934126069963282246341449866381040060917420638175672865059387141000668591527689671129394305192523440142703658594962021376945100530815302037510442784932357267091186213771883767814336344201954505904109025536973678599069342471168012903192837696880750245209633826435145535299984678337087874545253512117423329765466526957823361864026659703012899633725692136210848953262701343944064377677689778894624995258279582529734681578867018291628084244151316207359547088326363292097590948020029344767181897102034455888786152945137666235451546759424549977050954582737177103865993251417779499474468428198532509022133234927050812808529616792089821308404874334182631308992078264153550101908785542866025733469241478436636717891454137781482895609291565200428617984419413327038279032996756108069987152166719129449641629753905105601886946507769338735350036984797737846440812664522936248181652156200409763386919433516827272502645297429450870495154054258920188790812340339785016846988320974378346209853949566928407942141163641671458515499313014342857922044072223056760881075423535819652007005482669399534056340625741081303303297871311647173879067243456406506082708864149957976934344897765081618911766269443350163148535020368476620178692623661586459235697513572805420558122281091723419410473600545601089383026373107877571896070629929454545286991747949201168895651295073332372812697731786455414745470458130867912339210303619519804091623267792976612209690868979123858044301962336355262364054245609136715769546283508442348639915070844575633028240392364885238075221878095100462495104586489687863404807165375285357900932642777610210324766861108429776792026673927272180418460405562039434957062766722720119294364129066153427353844485161381400635236458838652881938007173659593684162650077764978573729264768730331517612236728858898973830536973481006680914974645628469115940205583774460667993339385978995426514169035852525843533640728641176633976622024387089473708216437302788744091033427597405945886021363163556311932879295345882973495611960540183213069592202246084183047746913084685348132584906374917962348701424351841042721341615100803531792916915737370784376420320095498156135780313093731396554822757340149493288486087369487526782954168497909881113296884659774811913924640371060910767110609249872284300153061587383199352399294318325919427824930344523080012516472278073815828709473993513646377070808541271810988443469127906448749413489049517897532696842288628985007912554752742681832068840782952017620156835281424182820770341609860717209346520125563363195519922918056592008952753445915561050135389494345285201895603176346386844237627456507255996559440881922473049251444658234775137705040831337344704464000045851521659842707055190700215690982959483701339694134415316662164185572020047507615691465535432617077310625908796341958823857298257215523521614008633050903163942290527819994342285732471026043834679276166363895281405852983951977239902446082139178054887139365867644938806373604734538877559591456927178874379389836379258332546754396533357092578705870305177776744993470497381806988281647098023313304569739702221466507837774830474142628595459185411369560085174285560564941814716793423306677798819655960532619220298808270706357351515890263171549915170394379102495961469028584261902157183506247921202107455699720570189099055170486432581724693853358962041834835925767426834271352097148416402361198570599554745558401547717717869489838403366604193487575748739832589260895007472405184862030321439217436855699485654768222184783911966458447322237401046893102813161172902376416649650781669280479677198175309261570000752433787075550860871271269011765030815077493310010831084856002186425884450040215008657875659550426166309238074803569978356225520395939933560691419204128487828432178231627755478086252217308644106083623897041532767617554311595645058229207659938426804220561688712836479502260688841550021428825683817971186748428923038528153839076171990046191360291235448530688072424410666459803089052060114948246850002015839240547344279243292869200272343241182388849633241302997777145700494331947694368460387744439252691186213928271123898617311366488709521320365009517081796903132410180642203337938387218410998927214413473581342438471505439313267158091817036170756281853464728866086673081852482049533647272473432505788474930136167899203763735238780147163349797309302911856163037757941437084483794631672049211960084214742213325125371894491396250744943793814039299009308517630314584307541361673698940482665141844542022435401579880088007133379419154880903443022046586457227757581677863025735149591648524318088749163885385444812174944178105052870912736794322714521644528276665629691746058222881764882177127874918492107175409444706890592468224787309601486800516603186329725852408309448065303006174543197295325115141521425453650964606983304648554422164916974080848257569497684459841661911867555931266609282063418211221233834273741102499019387590015086496909216043498701718370575120259026474814798693707096256899101802112253910069100538155775466192313095442690590051297399719716000645095085118361279092719905236338484600335426456129854112915882804089245546593788530801053161325954945186046207058121613224365952325948072701619242905982744379221923141576239538698694118157962223357661148287221783540815086680546242636237271132066695735013927142120056651822535160041399280690068165514744658144636939997329549590436610781474943419919253133618591683569665176477409183536661501965936154153472189991805174973847271594499823479729192815483648661578755465637938817032764643042382470591040170694979739832216754582707723091681177661269905899935334914830770800029529419946362615887096191040326299673313142208404394672078077586462900682437167622984490040510387679108602626815419757313988496679996624602848486714539232538980725810385172808520960795860506590223252062913406927502920747245223339915278745783517389956740284617752417552392679870738597125755720959151658456053954636258820275248284623267308995094175915765403572085571655080324528782944433888402565752782490719089995678288836548192974915943671398699592265224217185917964202190115177100472549486826392874117150002848806493267498083803358071746639948331748060221373814660336360409307464413911133499699858819634032244207397996078581443675890193885188429807758903746400877073093425249256583328683049279139828873119024773961326842304308976923406678300884055294244539489077656400237943137364965234338348321713505341163850933410535483803276814999177327116370254823730954817277375618864517430901518650715085366803236248892020918344601173173071847871946424593043950754710427141913786698822214768302188042061931351524728035868944743484095578323784987380089386391136387667771721181318891100428035270727494656255243881908557733202246822280961949731496462658090193347071440375293712719349329906574710166518274174661151021695245934711986231279139003176913248387782448159958553965156306643243621408548192054389813594752699343116793598712702692232306025925052147892889260769860618862726846387084129146761906299133519545970932364511565807496843579732884885736111935400186925135788023700516386605505179106114755420375557416655948847714209964405154792522539064899320739132063663739820539638298381391730481723835928204300016639902233325963430549956906407593806314749710063583061236853506168864932603013681045090428862970251452958375637556724770693122293069950053830007234233904515352717539280793542986252311290127738672606331600392881773492836482595335426169441059682640868174553428737406653559579238859531611174980784524560770382733990886776161030288554614839762811552952864468291568332645862684596781430352166177328919255144416849558684716546763220341580043607435474827415701614166154603706319239366629751250982895641964050199927736223786120246201657162683750433867808550376136186459701234793141449733696416227587113835110395871911842821418904764972011113853782005951185937995881375484309270166587424972588259544739980098417837090374499236901017315800897058150571115483071975290575544209930980244918555099727664276762313155861771893886140174169629711544255158228763956348923524492259207495931441493842793225062887606433662542910792971874477562456740870816646701663988499812313398856857304491291208544616703920309517608384671801190014931100657885593107750258111043008171872756796655512744178167659907259131781836051323452171882969462019896866692507219278691022372120110482722978931517704057184906508200808721976067556547920240317116124538027667348867090356403660471312212238290332810425209279163743836327827130168518929606957161626916771032705756901521444629284533797531240815218932677085797503537622547284615015251060934125938724945833505227615993548152736730458181823406682289227503187456555569823726469751878218226611676111530322453606208465429415522818128354918860546411686694599734864643701363906357614850781571941161394816548109951277217178343763413547004842945461703545073260466873819832908496041681470372323477077986169084013642791132568971711139679741959319043002538870206653892841977412274295156470040861300815067740180654337338604431442060378125728646641088875925760371853188151257312237692518010139441422025188433875953605039942920385810614418402428424759190529224974291626997132824039854740480487274958643896790152239922245213001229955218132676676724621015955631057426525171455579575548856984487307074615604258734333232043811534542342007785547616823711460150229086496275725841886005348934767763741835135661820659455556150423036176976247142531975023235556937817897806181693587671268254162976965016217659286326055483952712811666582233391172613893263341093199906181061525862404952485272255877263735020932471785752470637693455980866089136952584350291245311424277324879905068259701188839773439859227255754953734867987130768302636837707458061151900412882717519584438191570199700904100059600483081173731151923767550947709488408050545432250304497058398535683318823235092227266320650060943749366857022706945627167169335585951638682254403497774018561328021490306422112207035148020366900367736956506116412116232617841419954928383531199585081638910110230050747193073287532650945466068102622412557456089921579760303237426160934102961052656905289461151951583380324146316748357012688359373841507908522207654631198475289941126832153141137279531032808363245895139275716631054370125244255586140053268635359705267279224284760686528625433130733779060956142323733651829568197521402226128686231925488775563619721577571462903410613343340545049595027031366260277575884707020041362123796567557393262468283307833301822407630050120947335108219711880246715630802195304012133118606837879805209723171577139353748567649111472317801531280532914014795060295182957205949791091610860095287370593062902285985475322638737977985088862830323667053008611822209356891451000546526054393620257247668461411332737001014581399227567803661105738585873546339603032952561795144443399407799788587540766704537123265745864324836881621110293684620276071636302692464914842354116596480446682979515294346003727522559875351910085040788039407869967749241730589690665580207969674463991211842199627174515618328724476356276242844309198386674984587070303403148581468338248730102729327366072919914266605763969153248068052022991756334813645769375806321052038403642622301510957014929254073161341871151957750001268193939485241427641769541777790174529927262071696113416756063574776095702500198811994318075763576362754324112009738648059034247776410142840965847980779593609668986396281350228524468482269214380339527987848587626483986647249606213456396217363760232231247733449391688829017168245213360715353559551655766584101905868317538898740245866014794620715180500008038629887441165436532906760007754502304726387257683136728612210460008513450657532018397084112429815482929334821729175087461634422577809506362553785252680530941068819989162829965323417588056551208386037376152648054414676281337028343536598074357995630597847015797885631405145252108710861098313861683562407237663610207107490225738174908741493017441433140717920554102131563098937442441564042706672141040681642245522749981106576010754263210618878983970959523655139981798780342814355740952429409369148843065122558314317701399297854906205189341170383403478338871667519899397571326717909635257985244897947235707965147586257896196207779222450926008115718638159194191228869254997149528129653287669001433971457555760301264064275425800059301325060080507443467644135985426000313407770062567077520883650860383296029591136295789709083089155079417311788604661943738478919421680612388208303543196900159146092570822642335269916595807567538555333819596414518335096437024204303728110734309318507343368754339781723640966310879465771847983044604565704107096208859606277577546360408068697904952352612183104630024984168991734706713172692183081616355136359178373218937994108905103534139465601384743861614320907793660841528007471007749781845158311642634481163773732970816440932053355098858930467049912032391847954997662897105766584402471625329124393095585550799691824474897644430172036248250135629920882075393466061487554247506169988444404102193142781890239711247390693450188489309649368133067265897441728862730579291810884444709784973403472655628068462105024775179100323426776118523986894366995506359618672675885080106761191077947787201514647903625009915284861224924927310422526204571226628928429383565316069598203424346812186959175402236951038048797916711327845706129436672915597148620992007597706385433400670921322303650288792640300298275142093898005688308673317892263807428954231373696125665229602683872877651633895481462889253238660202817613595409227369151067269082341446482864165349210608456908403032382211688106436401046399801398151558244594608331570142346466920549253903146102726006343917309091393524125551082524141878242974449039660740987457531537175596457711650072422128066202782654195014276252951807145470577553747973523645686750477914872667107740563330715891144267272203922947719723390170330486340937417802458132035345945935898051916327801061614632892049813550483773333059979509196395835079889075371953709604732242965346430593088544497914593138063016087107859118620129055917427268315838504638074879574845128003478327543172799422697009256817805478453642822346008700122223640155907042488657395722991006260756317608086439664740202522333096266611887974075719789758511468997993591142542645773569966133333429677859005790955077678280240971698141062447192366296825510678108403146878182427881010633489934131320731314422052158445394590557738675899502157127506582007154733350019228106831893973408179642078948478077690277664608162512408965318274448389451256529478882508933544579958418249913873812879951683457794882159979753638131556296604316416685571841981516272618311698625124251288262097011662675658410094374552389179473859830584519215569533721999399489356928349492406039820839681015381195752839714216860748783156164121850341588909392729186975502344326168927281474057654548270469734615465641406297527768487733930225373757916797886131991515402837759873064283492957712536878099798783083435918751035524888053749729345680851500707559812133206726964755350285085774317047202385829261499752169855134802573844380830637138976242269977047559433890133236817816908887158979754519492923808119128228132982789880520763131614977621768417719041274702768566145423226827771742236119409442675167088883337138984675760825254568296965836501460627076294021976725338267992862154024150933643082282501102237417764682247085851921903315922675697847061430679762113317019471975308729297436408147626430850484161950636989863883954503817625268953987078633081579505604750733770829059046009770961143810269620672322393286560017325083460887468653712106505335713433464739649084236908941809515875168129762357753724812415175015566469370135580978157606336448431838297211475626172566440414991991092910781382032836711257428019213975067804464054378253663050544249695379528308327650913185200030506995393947279034765437319372633821593569486365823939285923385969580656981316024787522808772634434681739487202578480466230418017944271784747610450365465263340320666979153432102346351328163721273794570615826178895747222430009380420193596489828282318296714412548782364753914317137665162542218832692295405598671123982753947491684622464837127218989388986336748100658781484412041206916973055933818793149712394520060751622272434358516150840971699279375867018451742425816986625367730174289083833162166993810814282930110495649513414435391628360805904189926481945679471680134810326967779105335783759250828821799268532090480386053047401184085318422665185221471164496272475282935258873029328372001854674596626934887661226476108454965388191735907102192519320665272515836018714508179285936688601296629235084766071530422901114601416830622500278406009373718798063766760047637023438386104941943289283075157815152162757028893227045167392803288508471791500545067460660247686702429332611999926592533875091109957940413574364951551856046434825514349422304423575493299276236905013918037275872609410954499932376495905695883286074856559687241679982910535492156009696052516392511694838896405170894406580994543015797488723425264031146451686580746513969680284659296982906364954565978419124204694294863432234341945585667878674655806393825335697241649158391924276868876750569523548784882820839433542877771818314150565354949721135246690462286447300706957955019603999833146712280205889459814407310013904569029109335593609255325970740300065804298710388918520940582556774854540317352368469734859646494793181116568771508272981135774464911484186235569994714731634130513707841227529314532618151340712435816550174940017259549430057961351319857974238096638602500667973938445750175319417536364916866949037355926767946322483575945454267872065684874434833608744836603329006109862246886720875044192889953453498103807711399169894213288811336492671355784198419600957949211411933182089787213534293812026493187982650853979762493270343323282173337790257940863259397126678780910167354232177006931879959618787127423881072432864817103716836949272175664113705760667756085409736416762704466706222526988763648779646658152456444184566857221688130614584412671488006727547498954147695732758150680956060511107079268036992768010135219765847848935610039472304352956274058740696583236836377087312994561099688720772326562857465524450453898033349233447847417478189579223550668915297625606005540738175676831948799160728527369039406556318244899476964602273998796489712428882806568300654657785920752318394605494085714237975012070426618113731992387325115589086134212813123201527093763503761308454501075698418159389542302287017216270008246188670844060686632448697408202199142972991590078602316852357947765083970748001756863076310386641390289228828602536702762667263419495631806772240700816741363018168535416851184842009836852474068295948825156091491485457625362517884501658034690043293219537383883842090142418129768757047047860794089271939311428198056630102214577998991783654084315417607295228509106825165416422361193567269887714029729795853096672232694942608305919410729956359991325024906221685228281428677750735393971394044611316036815902392078581966936367127971235329009399605775283742829083473923985335258820533807760148210353537179200100148269006422607602404398078595014991134294952617890050012117825998902548935892313686803124256756437206420358302268389409390684713778789140924102235480198519177290187723240883516391536557551771137898454206321668567543022948949779787385625916363300595120939081420556467530951951488153236834709244548062558602702666196606744986925926790998781698098321967176051593449465543450282885300725012811569854113642482806030786302309140451859587115816813869745888649535267667200289518392079107124588386933509312542983960755281315368058913551094844498467901405169972001065947927717361909070279848799055855245683772626156508034436708429469818588852358601666855989116158589636038295451659505680523354888729045922282574981827562270918133289090566038274269725096726991194114077003739366306187134064911009996231819038596513402846750888237001312292740162829788151893044649384066820357040206721978489130364563622688663892060652935667762561100538454766671208772044159570832150103421722602591351718768966935748567741685046065717054088662200443420632261909131029220248652740033774655880667025345959468273408207497525804006753897062851849965180212785340927545697494080488729347503461979420474522264043059971683625824419013912589283742180845553899895801794938596289754088526169304929193162380127501685270963235572344304137960984070499572438545813767730299492156499329587656408384980178293846662973312715931986588682195073772903460108559615233593407383596012967199022888041796239018187171038808594434356304527234452866292220083141868741777770863727006575253995318007452157275064977136393668391661875036742279311962126612323141818349116676095327540690582174556542428970143018336846850350313553492105722091613246936855952518170409849530563096189873047162316958489664936958306304020961596690402362699535463013625275712079193518998024019271324784654505789343566028374435766090544358869261501597050792325225917580934710767792435729432078941812248254660621425967981408450495981127431702086320889844946396004635920445186888573059712122692090647360752705951374103247809868166236141018222362746354067835340100087173819472173521070818676522799915176148160186117643839816299986238982302939386850097047402242559039116787452500354939683723062145597063381825208390470617201443583747092772877154941598804242145341988114981423422000027441921559097938079243701298129133170102053324666784137969682453131248675015870019196289419617269159709544049493039599288963009245873658052764856881006000431994623035632125954943542200414072113462262438287135427765143134151090240251758012926992231998175475088413614067943920881282271846673894159294705680548192043098391441846963434068462403037142225497096407693336772078974836941527995531444619206872821553870233168323367656039622351860426397639923778232760875263317513243568951521642564697224362518088770462010919684463936245364097150739682036075785860680761790052127036397679636074433231285865621364971659051603690163164028154077728426386423435302583915028576710573301069724588374398127552041046542408384504100591454529761453184324092146920373664037889741476106037495466242531380384775358690232754101515519524060765112430801285492933364756836151326675159598561949960680080558850904047164897439333826748380599796930467189868938146953869724024123696538956048862843727241620930971321939590329618125527116617362927297269822868622251183071159626750037118314909706595053146233512082891943455553884972253109770765631944810876701792309214018409403701742183258537468039197773234976025263055953728784781631990903842214645513556114099350883966209242461069096217422475040768326628021341403030499708005038094975239223593909833786097969919617067200173703232377608374773358564588302807358033785484765876278291032242055301195772671655079787701555655659265292163887596299580489071434954934201295891650967017045211164587783567917045479329990358404193433061851809254702325558235254330694833107206591652978536629277781266232950078554384482096185623805883682843544565618737592729499576681246663837746142626603148579015923718080970794172606472192558186233618770576121561367164961930395047207158448041526439247106738645796051748508698753224017414133165929812114159321097568514611112413036331786354783620303158854137886938816978257080426831137076367823037485654655095879291779730824482286936464904379215302403436980949258277987299241982669151892350752619041862064762840935575692403394603702838986444748594607702063591528374731188769000189823002764916551400841588571257269870270258320523878862454713954970344038877054835506890835723750919727509600740470792210696676404653796687343110097606533816461546296476445987103153982296625076018990861749534096358001510237684649422455773877110611919690445949766518074652664406295367664874205604486950150940504805948660191329147547275722737491183934202610398816722971476642619029220503710689717033659089220032559113842734206541845382729252031248849754299896063607418910277222931801719429164888785788505601774327534526156696319640487988799932983546710168275009103375468270478926766217827207721842900525897817374805126237506753900369483381655371241235635738578264078332695770142359698682203203427786741214248086340817196320236432734991611789301807331218995887000801676017796925713460700154684886432602553741170650500778453411233997500157822692746033158263869699957381666473505121746814963692731149367999379088988547346767118839670492172490203958495157621699944987202051161574831462855504102591321986525907950195455179602824002811663619092742025941037129499944153347856595523785384267507857958524400201127879681708558976653959537898368833248277245349016631518763313007429838655269953522944994182173661709381462374654157780979060241294276052998937382676984593939582819280355520430784162892418069491135824827770683241771412820320974299764029114566680055422357096812567243704086501634078085759446901310538674136939714230806499384677799419009542962832729446328483004010357288357240634538097626618914621083994167143791504405874181952134630424769008894502330273179970124657194344598349464163044631864607779449342420978808700465909945024608682442289907871057940799624142076343446996910474278986212811030607157816599508192259184876019630754915375448415744863833518277347174316883288195006000134751574077199500309618985075748437827788224276527718031306335986665117915336889051839557828105549370539491945848700761388269375211465901898016465347200616383708522833152016041280564525902726404791337913355783694530755668918423174726178614092987542518529226412054662371152996372412389039550555769732280445282140891914867808581545534185139762785410636602876179000079800786258774846851260999349991617170710846816756794363156953935433716819964333165528380581889424038311393500154895463859858083695796779366014632791000421813294772767899851955303112990593742899985857223756413088121460391046144184598023123962151879033849710108730457191970869603254715519514347158511790855547067063568201980258798872715930082812908532359599130772325140398806039113931399165232624349782377186905309650655680954901956484543071752411743422253444495883680121402188080452919873043422277350211700903921203488724244617934145363560048594510707543590888971848282276680966106773273799607861256394421447215091007344404786823261688922317822083496855433852069208611216337006490791542582590939177627587337980476869306526917830848504618628424780591239319721866089610545438381178810866901781378553941659624595492508076139113944232861474627143169683862414338606120479998477644783765154542491919482770074818048109366246960771390804092151053233755661795600042537670655205436083952510579980560897727027560633071233285014632759103905234769627810834742334490250036735427325417153338833842476153057015452531212337068601246115768231585371089568999100596695785277271455640338330630184585006684690225116326635687668069437776223867974114390995099875546787065468081987955219596136919516046396249650916503204306270335348532616262266080333946853642330688861824498415502463315715944153483207777914490155049538163317735601696961030686455291303291756828722883176025478446961612161311266497518635480332191679764043804987062744522140983441395189890047712551472447815186063379612506105210756252063826616093906269246271920152727489286049341634164142252134207218698696113470800544463441608480765370096577359833146711454857979831950126278091782975116678646217724229516017383805514597523379051513592624199610181844177318420989624475648455426916057619844475996807750598573164436764536281332975575121605810057903161220716098234281762481005794892453466787326539711801370188308161750455212620022536053891080296702631290396910037577579039842475109275605008722479223754061829777715718077401584297159172467342771236403221221628030518561949451685633309964163044321235443067669260139367463118994079451280426613474109753732368939978244189491083200472094782492181867114191643838826209960104833734667085915755481465211460970315619228795217272864946857571295386629790387600364356637868558805698857638967449741533005129174905313316409876049310349010201935359018142143636884067414515837466709815575247124540100482939343530479865191975419531558700941065510826292355833360101001441462867209014305233204817176670739481856012210110862485869309722614028645638979678569099469467707380605939123984312867609283808361310102828477316045082946745694445134802321686915979673057983251983093809636255190068642090461761837416401374256075997297470674639885221304856885969793410108282869534214735206764450445804010032150267341933686749742097112574208055361680863751732272986250511891945689396885588555244537828522848012834169510636587360051748227361277505682091394532586969563986694949445739768146240543146110062848479675840292293171605952765200854699997490262251889833185761298061932101124275987484418756942710179597269216585019164105814493496739062977903469584645476889455560404188501646117103147370840911119748177168581035118678552449735890655144538614787874655566917337603367135769611715831377657504015415543520238956463025457491137330727483412086836451249617825492325802997554567217926846349429462493665763337484193748259002556025976669962181215343392900126399013175186683065065024518104043972537829286296414030813132029649513359478792722200081235789840034425084406241062549343450906611105509676128340497309200250570378761476795021243292883784536718565146422061574615255741356674848845619937775235187294389841067023002792557578246804003540449740448703219306912040484806312374021976974167183994184660955615822646798125260229043336141597616807472071144889675217298708680218959518390872533029653167683315849062496668895224182249246043684714951169693243902777341479779078294173657169153251163914492141847432292844900750475515265147134219252846230915473824071825432884618988679542794886404103089867190649719541493449391775982442554177248687511430021790215658729110094972890907974476175697807589994957838929834721305923198600797335092647757084311221010312161701958689450738122992543972952846887745885580574530867850330072554602463338960740470589557779191647563602877751396692108095284795140905346114457179008964095142928493328033544653526239309291257331135508804382580464258776746042069922815382619067515517856592892403998333157028645397381659018714191483075947329285566115579026332335099794431144677083116231040996371583999189315719606567422127276672191624753083254452175410210565313204854142240613723415377534879001508174932451551423605459890353900137693611835710494855826385498094677028435947781359621188929781089350447965604882921005665110997557804023389078971493538673981112007425349923967449975215751823503655480454610659017517911170564039933821739392459205922396750689320064337475168874901279767159869955419895566156953898293656056976889548447163447697962231869967494302240871699267418804133121652174806315407621122084072871830578075749818428912459429403582926148739360919472331805851668001820070994250183874003576605965934280371718618383373560256792147912478916184991963851504031887766237285270555595632422169626609263959489612292631729214698983824999174863570700293057208248873350268842007072510093577317973331634721115874550335087973953881034717237505220388170578935309271537008508502427953530854450159770780528778886913944996364895718745354935680082668379091460653706528989141308769200637443562189460252888069034144728709493504706804192501136110764603459613711786868593533595857366365375801372676719223588229484043943076283725544179572872561936345667799664069506845252863547858605328910620322182180542681459503747060590749547374165984051271752445100399715897230273640675010876745601817051989325233899454693387144537094869340854377708934431630827721998891431080536855784307772911869588751677925501363665995884543916106475002373908010474061088700118970842513338224575654299200855590273769351574820771970007716644344450259318580961577489296891717256073981238859801653940174825102424422085082527891913938736714318280848699291363786838487415557302356905357775465434279481195729675714145561296168765641287029586089655957650171747941784341713817232612307913920828392828364786696519493768375040206396039920795243165820041110527724233753604203387462502970041424377540633915768064745053894648510349104799042237127794163405812282568922827845703461674056749453072741423549351183018187895366502144298963230467660070655781296676749833345655960461246345830072523139794043901096780206995575429622704963937665716591180861108894984667406875999239427725382285193440849039089220173980955222216304033881733106368762139372128259515076636332069851453989403723114988946429552070267402411146462452702206143890586619182818898425603332690201247181435476314492206979756602318990492089394131294961872796173344311203928919415567775230944916160008555821139886598592290434378239914908500882246231270825687933921655434640460359760467239959041901576309999241262382040768980985076623015836957699695329144781552046352499930161120885816570227975043530502682056357213913332370433467959514345510965015829372275161880801455176361883335739846242681372184572351294572334931100441319244336353742857724615333103787151410935701362362828337823153018821017022236361403725924189895452968861173329991748193764227836745717260287117498558812866019227758253177645958195956800018193693037405494631803263235847319372706467976106000688034756035494574279733119744867801133710174477159085009767978745355744810513707333645640201575284468859029089761356650953406969446575464710164655931750758183432098563262658195792887115884161721788264684983009278090461627703975068339395435360326084955826433516763109195114684161750642436045540854135981340515316502072957496668409183853791891241503529374700817388915782324566410301674788799808500589447071690082673234817777389863490061948913292506373310052113684305245946644394183457251139543235670581791693714453081189940768039228417870043497110594755618424202780299897362525325887365078270526548848647783231179223362207241535857210382986246170431535271222387837706555150012826006117199653315540635834038479605486820416753738652199115760721674850652956111095355061230361589411978684345276841733315482305579093096336853238256093359670361543186703028967316280671550896150973064958150546910771313676988575068683637215994451638067245677783841336694690788697446394556119457382727197213759927630875418178796761052575771295914402875260798398102785031850434884951637574399754004589011999178582837045239288621986319535802725653481718624933817677509041132717064579470605338396411003626110436984703753282650468681933521019997320915451960657585379750920559472112935397861235102980881227922508952692259377761022186839074744113104651107217296893974506833022911921916820516447706137573955560631114939350147868497619087612474814197903460420540029343314354719802544653652987908927342305218111420986117158757361857691250551747865552111567983166968177549370605673894308681184266627674300764328958002292133209161564915114087739509692734495741925985075979511320424488101830228635057680946094773494559588921048490377384803610490845388521415236733924314381687918889293344004302353806003335740153570041334369399877850898065441978982414120840215888739022561173037829374520031299707296529363049074444354173422234266272219160725310788779501589828192766605472066061542083299235079227373237534679890304961090548393506087362748287888408922200286489328751415732704609622509449544921163462224993623167619172707310152173857493662848628070422004976357449746902706301982556770420042165989891821919783921342217345193787577371217329857553867056542262017763426801438729996350354785748529079351436292400200956805838152292185824855132195859340442827113551779251159060019284741505928514111979261018438339447354139732634090303467703076601371865959189157172802650368430833917189211054019909893264564018995982791284005548390342903802202103281361238910398844914988970358696932439393730321337709670546129981839748174840529564980177440138177283315194524514085602189954572447785368517455165453020328534923135667694966221629413168942240595757573192317126387006165012221370510906351343543821404726253831360735298332558667515397811091868171101415002480986536911553940234400551651471629265507063245778614175283628232717042452039432397867020390092760927142711036535569014630496134647064501721094111009610704378737928847176833500657015421054827562447068173597783244169242420445903333479282920540881183548544022523139938445717746022070666675856350449237120873794451591873314319286316499795752481470930132558646051653941073072855526135517630446524324494359245550011849243558616579409260740744173223021152709243728450218854427801741486564149231485672462038092723063218036523164206901713160244358720118691508354931864955904412202179382318041928527997752897848272856659298966842958635590454241808267355914238220663503091924310554618111322062858895484705253168890371927344437101268914912280959065178721043545468215262223996454562591436283592475207063713949292370781666834769993786840112524028757818623910840411879280766603829159257436402792260191840912923367273078276427630214552158495442968882748789372709791247062128529311137537524104211680730570368750730847615336609417389827345915630698380722605785670575416025618634524880673760580398393874797674149013957744906917181216543102120154637188192994853250993280996755336268915152005803902076679427596503916569563218793160334665091033417270833215672839174988354822105789301468441459288462895250667245930026661187313407135057859160336436821048324177853449167529951577634813890073392965207310478788186796290765804304007655035755032988545945337878757055621558076743953975638622828994609913663998147899451838593381837344436187450988872555055500637135273539013645220989440188726085414791217418463181081861087169167843255747617776782624102939045038809514354077473047311558078562679710865266407297105658773712102731649047798303298815038490461307617888570473561542326911351292142427686294800253178104064625545061360017740002906730085945928873264713017785700838095457361918074260496984978108092159733052100469552884541868541386002362863412595036081231785441619038611073849069850304722914638525130811781592148875499922228161597679888007691925693438056986828428911131257165233812402278190935038457047627565358363184475093548356062056310754322111690293398979879362521318564263316745024024052987361112404785028247991517485384322294508980760168478279653632928983417753886168994325257752479898197225403546026175528892965838357607703797659346432115642733510134013547288059071489066197372356021454003898947501849852584684010633377108021696209984782624410753551539573632013993875469623727727350304289212116272905751684400319234795020867494003786177015850820187334686993444694730702842108181823563724367476273272662634785499073033722807796695288679612139281896971180902407876938488078601225060800405167201486110222972663279041313504881072573774075600506234549143688462336906751958751567442550006125947237555667295870537937682946519349110852226564778512938156398894402765305426931539834358304013494872430875767427309109852270135959716039144311545156691074645228023077435991950847923788860404732584625625754783752664883734198427213706714659174555350892998116786769006692662398072956077723344559404868530060217828810645659219605402650796241264843083632397572510481093648852362465387273692971402354651627429905964306237725446951665783208197570795772179595213416824298155225213200771710920743391629625268482468446526347202973744022226750316066966919014770177600335949667733341665791812961631575375518340791835627616200648946787997314124902280129261000947800523094866959259250003389726691813319690587913878506525243309963848393598757276671827715325149277205396850469042289672494579851504325937331920895588910712677503222076831158388128192671390938139161569706768575318529336556057544236674774216406598760149870288498726027027090168461045622775121712702383122808129016680013035857288211739680442735926304189350065025972253032104744023297686187905385754948543272406708503694437659574380461362924604761733111260765524740906517491202873133398780829939234245783360080815467753424828844885192062090037123949629006110183714082956401603940354534450811228796017344248305042840630391757852648732638296399711318604053012694766698063089910045652288371209577188087424828052358476359894561471511199673389281315180394461960328008713235512279869314684059913965403251425819818396277114306290018521133565473698260919911181893506247941475518118306099352950568865729742156889240464818012071903019231713527712466130705162173546757442096446818705307520229022534707281241068673240206880366756258423310890955306070920191227942222710691283035508818563965518345245913639609931473789982121415390561952501499448487577066137300284402037273058966238172797780957493889237126741120181608561504984844393935147916122460902603409641705818601699515560283793445355526652922146447195142315366895929907709301259313065062994257299835890690873361554260275574980864838946345721994010830230894577420648535989297579307869324972747750914060323594976063834065794978765439847048280482899144584036146717454559270296311859819260933475380907775788613869385224839728975981415320163114845147661181771974611314479665312226246099559674619562364923912668070492058498468719574319864290973668606028587765102521198953933944852998868169580610625493623340912228580718737110547807708924125928597916629798357088774994524218903597682373429543812807851909419511562160878637310927547615472576139833444716726900899827620426608492542812091166391437549920544257242268341898574461215989506148114487482559309627170531143314499190908122055064893228557159598021142286621055105397920431039678419323106930391256083139524068039180911293697117554965580650348435162083548776591761319324357070566793016507679987565236330722442679347471627234634388593319661979513332839028211785060638345765803722830893532607527297662448844691037371344153947197116300620317832757291352665425279226854357720691062500848225607200371749604181296503763286004756740491125978735390147866826832005230213541597786554545077812945330426585605519159228756000225151695250908976357389390106755567294495467733019909721618658794021282083662813881727274879471213292948258078929156823514504470124575069692502343601111895471352436707974300378461766818805182856501926470396448616064723900426052461876941388696383929296292756137451934054727488250000838835133986788617104232920115412551808503568234670194013370373823464120544346223509449883089292950025637247174128325812237323358938696581394769348462704955102461154606273086489859778329352561217859208643412931484925065421690481866275553340623653085067104654592425001850926683473343442814007154079492388896627319785613763636835152118120338613402425287675968351865135478429009917297031373404170673895850129269583036106237566707860763760962381023983763651609405667764018322210428967487498262972852662307983076185691625948390425094156746207467522085656462925607308536959391788734241057025144132996319889407765339367608409576133736040634772810844357051090837874648607931016634954632772268172976983548755167024803649824087270453408972043145256020546994965556849004873081513788488855719076958625269973057537582038193059111337878978938048346173239540293454415214374527537865891797836069087704389428268765174804605536966375081380706436719785076079971025627023958790947680705575068294634021705320533968952570047502078486011848006069485788249880641741912292439200060497704075584172473845248565990613635580134465693789109440493942474473668267320344008098076045685477963498369021719930001564033395736552724912904444165818256240669195882843752503771284031354276059291241966045741026833087747832519243393445011474082809115385778092531973383367388259061629917598520661317263418057253064706292078378813450151078073255941903691628665484503507916081434004886096311844797432926498265611665800257191237303631650333919518084051139063610827500849117814078546980589078438179876375714421493448391988970444604593103968059872105768894504882153985324957536772667621934490148212485476810629417213614098575339020543008402493028368585338979306809812566771915963710034218146003468062120014581447605340728039470799799823998399677202983228578343788795134280349225021551039319349788981989712001102345020828634439732624329524605961061216640531981704522885996488902585571700917296425657890544101858820548141584887884001604988971734023561359157058082854005779280993470114749923258785589392166564978688807974446965199477313087482731356590837758573283015182324840772070567013654245602333832157578363716002714096451640193724912809965789040710634590620841841937453572987397993617915723667838457805523093285575668148577701948499462942015356920648104856630434639436746165376383657564211336877446756114943435918740077518545504916291718409101970570112541248030984702739553543677468124802690157894818366193720985872409675813085233959657840655440012430728237186138064605384263181506069896758084452191498798476479242765159488878852998226302482462383156314698156837679129854163660799615963281345297158601747892588057461809252139469929755404943803276368059994744214368573409408959058442696617404393424963771251820682149878407573485717455171117729953113044432032575871091140855092127585716874404475292977215220010235880770428015880473866554726286526202500806830988718465727781823676287873896351635253505452482121033929143756456525520187789386811888695979069742863941328703377159384012688019259612053327547295018361516478838155060318378447032400345541136516323470035256063250457678839547547182048155181427789793209769387848507497443845048244718613946105863785527843879034593461032556881342941553758846129395419587808190832798185907002888392729839480503558678119734486462370698677346137137488230677935131231284815805266923273524238639232572739486194675760994570867585849211185650901001400686288431394410728531175204827532727871033826871956295998385876692569852003897974440678508304920697265392002001841190873522823821008525325100796801606362191626687302242539712377322565594501973038946374448800555261155077109836758485920207330023087141683950752454751407077141225825783312151582160817950626319719955582737785028781662724827296357511090971081629810771571931104627463519713033271263267240601738749828022443365588675546247277482524759128047968976913631727052199525534472928488770364417612173348789141332466909498956301399243312677866788032019519968670579348622514113854960054981956997261478371376646724007717615788121764665036571266082097124318233865348241805794899500636010614065911756180569349586575630487542971699568994194636436138259987513041449280612084154407892093214321603956016176455618984852771542541345987730105774382792562144572967390401100669378937399749733645952672093179581547927122721252434601846291715528415368124962495286209531044760524656893167328230008545229557110991769192208385212373095608662197127999477257248852792713945188110533544947072167749807427074177515239855124731758840587414131351477940034944156593966094605612136533620759910673776366793811948212044143047058341083940850933902358812490518468781157681839232305229285349171428573895503955002951028985267510730641755528112118422091835518840103650992426736619718974474620268740231932402401589246933412256615381702485722139294051466499172920405338017777455730451602004252612324839423576372229198084705033437491156413895804034945055826482065208845281006380163908319789444637242254338232160974347282726536161013338127233564018642347539203456642450477250607822295258273282155007678175849241161419922901957689922218712696529714415086465339670843972366277272716249837197019965942122281539904241895158073061009879571138451620571328269835076606606161182399143421597942394979560865835308207028277591597071683662166292762637846593377861758420305201607687105770081549888075124497895819047758351478338682875904843905964899791326488789263181607075596090166403951236522379130627384890467150511049012285136706444012480025229560940629867063711550951372110803900411143464554260951502948732188171051276154699896739325563330461512613836241421688369419251083067545474440853627075369621925997419546857855312871164215836363784365877902027004728732987489396696004402218979438258447605153289411212076681851144267498651669707878135117545309048527157119201765908727664058549641962695689398928416207281144712684369451367323962576965213338668655864178173203122710946578117806879725775696193724706855362851742590969127767407722198749046892922235779687577357924273200174134743309426903568896922102158044402130073062087138558833552205567239097051330477992194340597633280593044496798758415072202760741285902791546794172808268429652588326813371201068568876557141873397165855201848695956514517646537801750968589990371116819116615437238826922082509403054033365996765618537274878052268504689196646094124627732915619463097451517054748969357175892825358607870187347968952648251656289382933963709002812044486816725243097659979816858387213607070242205041797731763320672890115534577792560910467532697005219496449605934803853320498794399509884188367079927702683539037943887642203997038643316980211798613376898259052953199789398876825341824943308558850788304239341906345688929573652645496582857582788709590875234696865798980013399024076342608698722791369712005204201943655393277926017099034953295833739758493847143255978554807828603168439292711003588937755626234187874323278096777991889754748750792223136526086762755723629202168832254286377582944566587080839538863083973241356486644633556039163452474664080465122677236689468573415369722779412281458266612697630812769323716317432622865622612628029282961245414355791218979271511279422850788304978219929843204074612896357727493446860344882345639914738644949155438021857305653940328313075049013101684458132355680099074432401230616341881804154480811490792727506165332923327822549232257568717347945635229241137461736721283576684667834176830040275346488150222910548264455776068791647155562996668589619659044514199663443742349850963032895264115197131111807935255795427011938292279630884448550933060112495241448074368264892117486032475436792556786681666464810383083193531991163723376551842125844210529192918005531531563295032304598253137062534887748355859807511652502295964057608941224640257224157011745720623825117349678037841096074340197299151060288513773117654307893604334185212553949016596786945020491868471127025122712241972794650119810925931219426683509586798505477572643737437714164343047780323744882763230327363371930767252299704403856332836975532038345092946036983097192035783684181021200834401009944084311187360151514954530480304324051710524124864212536934786819060086138992167511970129510999383495897890872957385654211305863122210958965233654352292827322308010072789183768159699039057920158492980037893900962877499862332163474697563277347419979202261952370291239559741779696756573726791120541476879471594900743232501653808634056205659412159335500334018793101219462609699703766384441311717313648001761867128732795657237099721440636569069307822831675564262232454180410409673472921156567254595623556787533866365433897471706394878943162969105016675048063297420518375676618537085663804733218250175524049669407878958066863086404198792378908638121033974907632278133339883224342839400014128197811491876731385274526847603446024739448911322653211945857141996483130435736227836010924225927973848362204977305902249042080740466243146898089462360773013599653351825218246305294761706203073433137003960198597710739137220860935932152684132480247905892979333559881690718996893964545518402474736818095392137564660628078532387438819143340305429809562097448264668546430730811460928495132934978339707330849703900382981158486431057838974467277400155476178170249667309958916857847702163082832750860361643180635658359837796204279316240573451808352066955464035714185017483100554767778707896652679662744621261428726872165779551668905320487537950828719782987660430516737447177401814792115580924712121931685264922931853569816657021461468241734856290036412303106030196471125304243800574938593394878068415902608077597340012065461485416517565525810106213319922019589099790451718917501397926532755296565014707572949067019151683006188189331071431150582243528391351727035551020654741359801067368240906285118957643100572628836175337602301480522462273185216394209078166523136855991916563125732481645563548337640826694891062137424763603343825202413716014470223039397060749343771284927808627101131547874547835042954601186512690304158694677835615878346974582834248936175985383702481600067225004212608925558863449748783711753440832993444194210785722196966315566909576241281664255572794345814195462907541990967841692184124412635961464724635368517884716667199773098330841089109526917931755561614799402765570927270437350267277298370762971973582916876246433843273107874454450603296031394513545691404440890471457498886838663703146065534607887057066797428603343647609697606638478453558734854007980330570361801652557434688908906987002171817303291852568344030465725204180609689573648942258299645910852305295885415910155681663867666842935572457733798621217342984811059739734184010899143326145855138344201855547237995853935062727106727930467217091485366734524798203024542313338943847812520780305366011286799097391627430865680265031238106088155635813790632326159381528187767775937889238752475456150148015454174307667847427420021158912962021448483030663371243379384395003341492679407800945587072395025757069478808249211826271266299810979716049698146301774256911733828231719892601626992873312891588967028887846641258690381975929930316518738430920154098798081371242270203194939217200938105479105467877833815303690654855679780127903676582435179419828832804055441102217142362326403268759650025189938402651212090188364052812333179859851226782200301924153563373057758168992115841924927411727010955910358181058927288230923409320005915984277988454366694449823978806126199213967179382901988666848413270839144717445545819941847679667525974654835283788649693835268964804295578709522474476045138741073690950594021950579138629927235064631610564428734550067753739308615165182576392714975018087100203706326696466410811504707450089452332881479630939692660538879254279147200474239766523758076451060084627522583657827263776357912945183030715678157923625011036550348097751185109806989556458109194992097382960355315692348948654998024497163804249465902009693582511902845380709818390486458042955331501312424476645615870512985750338903169207334481937099206244465991666536165224703888135415648732906370460701627683560718620426477629160842425222111033701314762094757921232015441191423512122458200816199235195155605876888761636299374611161029237725581086856985276855014683232034956326445847437011115269440317087596210293579406853962697469812400123646272459407945572928705322215292090083181497562354455737467087899512353173473439364480523003152833438390035908951615307469904137386325198929233125821778854865632014561744426735203726749766493455276330540234386521594916034365408883883711118177396267396066913613657230938870274122408657865513188377015484427160970172678813397230865291234498230725157918549053933143492435665697506174368292102566256981615310115765296648074095050511645156351753957600915644803392088781430060202857918306445378838497434936653855750279490894248847579954111235375901415714590745106515152250776486418230473906872584920426101578052925062752406629770754927673329668763463737310793687282023948358303026958944578968758428760404386506851319802979556188306165151210546208803493522638922558766553380767634623352467511874630153038515871435831947462415689605267015929785508747917681043823254055605133216401797184114099965735186940858869000627139641317918909622778346416205754254078610204198271884611817435897755597858908932501897940851657497514463534200594203003777392412287760941338941345231709330966099548744830923407057567429068776401607457806266740758646911538822926226107649656922623397724062136163067173605801467629374666622658321911982861512207792582168749423147710780414419896740039229228631646594083003084251423320779298104808234127257217092336440307076513727019740788559854651777755081524506880232163059488463554929929414806230625567429191159063869574617999347129139806230949396911055226957492627782031296661046238442051259088398909379369010421293070247836335960393245561666059175634872870824320120881041973206742237665291273366577605891120452539376352354891596307797862805224025244508914444560790616979503603880552826146982668723095869355262139158992492419200144054991917790519286548210785415152645162740635986767712582936533497022616756474897971733447336623191137497473611537719529801315059821711530043396659867401665246168860417356520897301798148512223821507429115782916823409082884357288492380483026936320228734614385130956714305425542074665892392203267426359234831274425519710875911642431817621908835767521171387932271566002281786487818529333632538992387941729952722249729562827009062210904621825823587279047191674092625229998427084596159411524153728658388481470574614398594314935227794441397194348275828502249422969431756007145691673138487123144958185256782918911603415696005980533160033040296265257736111206210494266389289271447385179866490797650557482496072234191087773298920794414170166302569448957562769115727656408823532630328593414678777373271439532136002793712441090024200110194229402966316078392924254834403593473197958978065211659718216793083497720611825465226908055017161228052838409270829104994552010719623592249298932641762960664622411304170578102265273149807450063125848155294035769001764660595938220899424815371766247538489876426636091400707705749821147415155871138982330187471289477305769249008809089848891657050587226542226784519135547183766494086686203455775689411894507883522632805887144434369922046611862607211855756672212741375397190500119776599196847704377036700540916071822843388358673536654880278279743850265496957494631026379080428942077609823488630842967310693473205438437792353378941292830870075860426436479753518597466783752922411243842510016821458032773442604555654950586604196453092008594363011649484715681427959545938620335491323259316036539545658538313167690516650292418021799640576257964746788308431946858202377542323039402379188837702525656882477052540640547736109596410925819240522773614064344939983749821094205477644364613516132046741086272837056692630864704915051730628114720875509047680733282139255963228602108199224204993938637060438484051855486633075631293460739124545152491131961702012193688210941966992468630816799707624081141304943065029433768648440520851304502379767443196077329392908062770102604677858563175770945162396686534240553493452118362565829048966893433484443145969757818612489454251759880482117816935262644843045697330499799501308476682843069228644520029643930106451194184682093871037221122155615072050098372667152639121208127204520583214183521599777979963121612380958820696639969732385311087546440718003848815193594774555818458891483994748885929511194306876682062576852357786427844574038127776891996246675169762999522803303445707999662397848459800165575640370224337158643934859077792472895876126762440748063828474868622654425277651859906174182426471589676129484953671440809648538397842696643186563313700441818526219098405652983185472192464813444066060202276789418266982768565105894557187655413508445355378723718433022151208507860636282449249796035869577890348578557417168140825913515197185992060934741882152798245540399711679998532186705155508188176702899042487163584962866659595100283807882066414714334685626308565826542779125831554598248876402724437720036618991122055546635784995743514123928211936625576388636242546566008181897432077231313858898742226192142206289518103440461465872911252736529717236428022465125896444733783170017076920924867530220045518445848517420039017416822552409067778942315181774568134193998378645093526740813038670542823960646601627315364551203180096441491576738441317397933713073483989274722056553869561121935063792296908457630609944938376679018188101597494427565134007002602429843068275379203725700465704856205442988222655980304880636798245587047012148848379231625097238285415081211999821882387027864305304511326453864503628929063136080348219294846607686149631974186181110562134101361557439821880791466429384535685932117160396440827855185408927967170407763680693302412358149705374887381835594212744460461552076192714119066123557212877066121902711771371328097120136175203259058104836418439647772167182033667919027443024612901141202038280655517135327808155168074046317652515375239041430862492083338135896087765748137115797568961553417740006661375961763543429526458588553366700531489977910191381143126516860094370298634064598058870114732726837732103313954279615140302024602904826110069336369640245444923729702332883183153119118756057523619677236267906358724567823301190323288367630667600154826754440973803620793918824742138807240292490933562451654066963593566236642515133285339587947789261858252409702025110682992045705820445938382843358823850238138933861943697868040691224456621472409963177815134184179864453423169607645355292613773558254733196274180577229690645633838585021873396495215900949934089795723741930354132646615471388069001297907525491649472617280822500944732262707613052661943237512826173646731401947140121147783348946920599736690429405047770315226891182115216082269999791000477638028162664516738942542323909282969803262863944916790250941481979508824065386647467065793349329249313492186558396438300040213967496679132943938350245621456113154166594124740173614274728424545482200488821623333017883076183369003900912933306711424163025725108343892151780994670427611829274225133068055237560460110081024335741797045905073978467264637409750087552397781303859625308777164444961186774065060593407262368016772978401979897477172512466383416973336123316400990377144271418537048737080031143134365416071408342061039238675142063249478056862943852712049186971706925325571119400498885387172850613741194055072776483837667198310443659656261461761566828725202202223660580294116147420217536338755654417556301545020335035917414332439899805853432460274382150530169315994346936724087744231494388240355551782726278621346796332615454888472064803075543199641164247900194687429567538685546224890803773230189202186849845991681415877597433212037849491402945078944901132191785966393326313733664293561704070612205122472504036160777864244862178804307422082981663295061638882747451891211054303825856762535130209365820142041880578268833511830024586440652241985053819230649825084647224099690933643145821190977033609596328943886074480235957908605782545483258251260115039528613462110949158086112209523926697647061930927606977320389151811618397695986044170183703862962586226361566071563584692269732894139224387308044340689675310856587594789127756023680777447368626154864867497636440875907971546669075640622793915621249125172974313553021501220433956228568586323661188771200312873384494428320517685579248403954121347043773860944731379931691045611463931256929267736426234692327271378043925829001229558082493220681392077455533361114534420196428022196623850935159487670999845978989140010762229018028391714319563361718314024599975806730728419836280022467104893189396656940345105863005665110368984794962111871775595722182610980113648759903631372943960434964293840989577770344260017777396214274783800486265462596766714362605325353930572288963323551103538068240540181951251100806036182530035545575167966465798740013403379383894830399973577938130601874569207611272121647891461004116458060451574966922309737637424291742879125654730785222365637627548272459074547734932209667249283503134319678811138329307319501024947811767422218226177470921262363882939912396793859625749023751718267008215614396000187763808356811190801543860366075849827382670315716742792719795799182230359117986497408229759242377055756471185402199864424512242083650878618399696560206898645891875974518648674252667889824886065433627706247032961965263573589014727501264324532485835988779957804001358076992558076287358601363112379521459281992554119062258034119145437856439315569035580305865861046999952086079641570936719211425064303912267806973243289222910080947736772714137769613024671577306660907260324460632506406038103901128655190892778472172731065073836677151665731487914173475409937921746749616829471990715355452896484490524767795429391716132448666554581499120445581758192247867141928560327281242773494913613687001632750101831314071597423636281525215001762225179058203134589976166836838352997121115777452956020960994963574576088807591489309796912253532118142086391506112761703149858981596899811139636162845257535445356198823741932256966450815910994833879853856705537551206357438131616618975162514084508410777138470535413939403263283479407613413531172860231196599475637984382076910043618824163997878293223467239994436661192640536317987824388646280369052996548376340894898266632320342319819152628956081230830361423343032264612985634605840319584420996964428096131525885633307488664991602556740896506070970421496979458423567501530487873890223429666489190198455072915421039225091820036794402508337219200827703078766061818691893460596640771792641888398203724509927732120375036796837813671554476556766831114153586633239904343210334457073046843356029312257103202288128545584057213014789115750794110332087092706354003772211528940535203596714148815032828664863760933900816667635166041742324520751288349684169483627059833732337457785760891525758012535976782276150512983696786918910678554363842011127789465943724190221581672523518842139278113431213106298826348016324032230135521067492665762950265575642658557641236544545814966552221460505277473746362062030539364800137646509230586199847375900440637341696776872699453546403636289062986022584331867740900571065832606357053003705184526888314584890492163505613453209479925654756742014262085017914495166701354325951832145699086939564919909239225546213865637721347679709169789015954229692138455665155018706279320424932637605246039304049837795040304520864766784318293560701354259641346847418139333145248981707393790017649175993560726940296109617314935069831359853912396121005704790821429915420991053579883587227210976382783359311415124715234262767988356960732780642950701652002568778316478212172586442919182908805044803851178999740538835318461140007484398609854252636704976623043738625963886885224742387781554651985209956079833618603960774204976773258495555224939604442200464584720056757845084994208960661484588416881132559687840861423661040026449150718092878968225368481018423726639069814288628843022240956232469600892980705245166272374902512563515914288734319226116991707825350374103528717984010832616279307359667855087336713385015298221491616891045635974587992954027288202490483080124817686350746280383396350169321789504446502854484176055194346727783034605543430390282349642293439733466555562991002145498149738819711990756597896143498015478725847852784277224164874910529273719719758112308394138167941590979385016702348092587892305982752810804024946957675789276410389477414356035547833029101318196927279935092325079899490395731681081421534501434744791137447713819186672272827020987972109386641787045296719590186192943364595764244197019452349493032477706778751609573337878771696448496531599411921863933637393549272438701125754124249387734408976218749792521843370110846224344196870978949753678661440646432231750447825573125343956301004301229976207283204910882817733562403640149692920519700978392638117398053771821442791995436786455989294510294389196597994230562393452161831289630966092047226576777829496000215925328623004338524652327104034034080094152072791785761694447986164340862108038426846633316541424530890304481771935971812786174823983290432818109720542892274914961550442000123324784287274528310755101397232656122253948936619122670263578245803674532909721453874378082116550466487879364614055111983419577382360971796005395146784612803204722956292977017658912107390860933814758048724256096264556193138994093411047908187739048973400592082500232255381924984755193822454912415483841046734206379342393025278235836115611907889658396346727063902095699028254156091876514335235753766780343472863437547236933748007601008575553245464002260392523428922199264264683595804326102370038026517650811947753280137971047208113287448128556264410596512208297229326455270794244326556907065509516243736469774352758701314364778798474774566934282854245892911512364292747256815052414318280592493106721971772401797371766299702578313499328610937047481628581521152116841344155323429260449697170110824937678113664635175913240295183765952641831148874385387918085374922316086458114934084075490871408016826707108383113936581371762402604737500278951566079189044847342771733991740267120975076067356671504052143489990324290219304410267782796656974596031700378303781500762441726944566663185262156783234844009234159496057770330986031594322786666247755977011213916305956841600582892344799571681624900117204681190257933219309710323817765556126261830912752027425261075922084432367452155143995978355492084799656780213629512243837752145190291975881754707424273068458423032875339102959628222114137504384694210963248184697804738293843662314610171778589770965277049746413538851626060428695975569700122210384703136629855407228355595039149448148522218148941643579857313060003493457020331533135927956265357564919200536544516904965028740130897407988723225228101826192485273552808274729511567227531222131795240346862076241910953578834096423635578860169271855448886544998072919573040464153639543142841078677202503733585512717028609453093463365948621690899911621673099387806431846718383411028373414924629285028897844224907775810682399004150249021696649837706920999429234710872833445005359462230915474959970220716598865173783317873086025148127682187178531151282284405288759569010210795053140914856489340224261142919548112402593262510231652590677904464715142756466481644587672652356309841995198676400626045573190091264004007569030975496847425956989326335542498740500243316239210373433237188671037604781954703244139996219148611317195808497224043078373471796941598859510369783660589331195769758114710883344000439860813757204240097970999948409839310364254762211675245916733771579333798333885682749459957971698307969763666305819954566014820226835246880730344998781866868971493964466330672234834994477255135542247375684336872706272783650026287102768572339028227325802590206553491292903360331233817837506434322095800720105123580831594365582882989721641191889425939896962304471142927631333429818432851623117676028253874003598488284751243679420756230215333633836597804306445520997883119127803661981177245969355995476889831470208777217698185058480585309540739163791991662695459504079259344088399126654519998386650102232802670354742149053075543022316967730754821836787926153646917471338866353975336303772002760361360139278470817984526084612344696720434799375125710786546906171410408096196963251629031160007098323128738264565690063745160108464221549234872232273587400369888321942001862553198316962943742310991484877836657049502121928762183944689698259470336900295117246791775460150081330044428006424116091875886986308279282482408945444826927373563264737915452081956678518086048849559584171099440804246697574474616853932577509378689595115140866694477364974229150396560025037470649518035940811461124087580377058721841605092710753269630281913523457940695239950280913070719485052570925138206788647037880277834289515385064455122129613929973845558452209930127446795151325896652075509469990239161082018608399481508884982951646240445682634177890585893958954139727387168450094518967459467256453686462497162310955440686354479746681128034414592672880529775061187942982690329645782982669193759210387606427914519704446794871935361554161308098978012360473587290723102531190868404443445280051904653027951519180496203057334703186973982552343065903485292895434629217130881272598354881055257338777576021583199361859104703717781538377592490334042880492934749694311788518406437946805135184700242220538484306371226923732220250343014980648021809285225810299883604166336592902712575074834530938583284318669538621852181312381919349434618579327835241710176364794119697683061554103871449176751920799223348175262030285907303956651938339945310603173058765803389592409662842501122242473195939672345290296560293614108082852697048869836943015752442615688123951437287216113959881283989585476616509667468106501952454056794116109292920626784313415794249236704483553715636374619834365841507890467545337047279334336250311749767012934158706725021491227332225443087255804430865486020112438496348902508541439056472221626934767509664790305529073507732814010018117920334233416760405041970765629802253481595105533869601058487273284462556705644959942699460950946301135027072138765378165917076070617474988334337425373358829742562349513948335575817871079286504520196653903883464171374892666769514202247585050363936810139416239347674574346456336846057343479986289966111457131179788671735328066470968505532715125508471226816299028647245072494499424443242739238574039456219947971845355319564699212011566845763247146866494538115809048954844795210725323676753906111859637983895010367563482495979330951807135470905499497292954332030955750309101631920995134462591952510625493588970265871777537895025977152912382845450610463016324161276853257333170166453707382906837683257290566431206839210926726136697005072604976789866931544313016983327412237206286048028507003808988341835571618999036395255725843608060152193295545573404771268472472427417159571722294320899775851330354538367219484590830482180470469683456581926063408658140044410860907248266546677100602683846284321031634737171378113363342732071750561306241112301333047094988286670707982172333168656707683217525588383334056777442970863599109619663061997691919333275658680002648190064866214029201482921673907117532515162843831749735600655326854722205297193563725468920550801969155698812466446864784378791907962179747483822818790623116373157549009392048515116129957229978152679491263218274177193150988434408112064491216564590215300130702826623691674501656600000910074469440637344550179366356038321370239415191466082515987457147776294429798611021314911435302501170750833544459900252144987220863633331549623393397729857506207291974773415556131557829350963134621110682153013229422188026907041903161792949200048123409316460939864101403783827087349542784972286372855437723529615604422986638425546390074516028944126590933749102988587075974381807903686061500197085226675804884732845308156402766420821791303992775634640434193241949617321328280466275586118711395767725758924796880112441482905606763309994527273707346004925880065377935172044042124077219089154305637267970062386061618164166197322224973241416750186403235750946327726868093961002126892811741970917069712631970267147227568500306619565240954238292354013346524932373881935245843395978134881531579150997585428829566337119891388209664028037585949598748753906001474401446795966386653760277924131793898881355355025424715177232195331472768496490273234912503633123563279137108438776226327438154286372548415293462193398461742793198098912467734902049340245068178879717349628257406404972677338284483180617073830180422669200299680840623043900401384110251988459202593776178080747954802272998991073459673029776088816602301426541752702912068692420913949779006344129131800587615224837882628327573759336021951157738212267255037525025997070831069237603590999317671473892698272584979446165568686332325759144718453349661083270075473680772094347795738256794150893189152362786528373860865661763291473481982920503952913326876838309077546481427265872946670003082357031468700564428969711130877386841235692213817769804387779287724580807710958716430445467489139276121349369499351176310479639332028715290491732647805824875117457400354412233523887907911599077118330973928725854520056778794545924218673736803312848184374543739577415441026130955672031826164975137492019501448474664769028865678303589636266274236170403841457506693105772050039307572245269175878445537450468244707314040467183720907199188802064651740559913209968151621640894680681435543847527095961610243768727436028277082881844224551138649105532788312045536582718357283081658611528903698544040478484259576527571896236876686986466900050582605107262972841427543653821030617948972034759109663410195005645875430846957598458506015429835850390328751340184870063537168085353581620943972786226144676773282095889927460342134310984376302831653852519637135366693876679002693842670361396868341459907560651759465238914353673240012176577008363888639059097866169861648237401691465367451674311332256665114752318112672426538711020897340307679542574441675476538324776710121218570691742442324277609348197735941850478958638611407384892867303544136306171362386270968884055932084843652700017232630829385814666618379019621045325548335863253209794350269987983563601927980072834104032713668213962104141666660784379092661835527097277303240325308032448656956504444880379377212387544206846130679412874348514914576216981793260354915332110848207458498029622153011202025870388369139369139936921991863045220800104738111004257376213576787633243139038401028680912349322092140756592393783405523001575905712857691289314527101842474396484837403804201131677751275983481480812673730231484746562026167252582651666690773272973881730555853410243612233236637663659647703528124374962640715615975168360591480266854043765087492653197165904078888456116498513205701123530869184184347904212963173847918920958099202813301744796218008562277972829157791791600747530977216224512474368571753195292785797396820168987660518171017523080257538959633883676610582711800927657937430992294068753744275883293504140827508048301078641643524269806586329961328967048232856241388156637523654044255715031208302240924764768364579349013685752952537861773661634201070945509694206551493773817087861080779529004883114763700635005448237391218656907304925846106925151742179762660379971848958454122301882431922612786698146229511639081737933352706825581050310268069835686889837581750458155773534439612321192564703726466902265826189720580042813721816093361229462503157894416370096271430119402336514002287421322354775497634630345523939561920798178600126077752036862446337506637798517452045912564108612192780268118679877641031387627635645187140485656376520702324206567700458554869942768790646634282194015369841470971966103255912374791929330844327129011944738175868235223449733815283427194905939211677654065171401466627198018869716782983293855829160103082185530706314969028945247527989494876865858677220409278840729490626943892706108686092082512022196102326390684470305417215076816870915678205004979821184436061480013296760433604670483445497414427144029211280159133653420567199529836195580606979001394301086749574470765895482277684616009174505811357780495692560953446889103387010497153602011885378240980320796731059466901901024147120189832535628662747428558335590955039344723043452726659314177997960639527840249670790000967881364217135362740736243045351909145967972870469455091793977234077363729433572402218351707387563697492535587338596714762035060952794207976092293294431771862555503781479044047651203488652886479411752070354274000303061220825709554991565991743760042083046116590161944302729498153555544866201143176940509864223322467684284961266604245541336158907315303091263425706744800232676368026016752177186047826584147275480112230256517995110265944300255932624746159755326383146587010274498436784862910030670231044896385302243206180419167872819400048267395000177670549959983922986872442704723163265912152270846190588811748616507380832188613423329450641671777450362119230045998098601074530777566592216136263901153670883291220044157606142882035168275449191982308690512608633039180519108667516576707314378987636380408741442850614566291057431536020697195538959328689558759311263330307217507444012920294918341422266708209478095555195259972769941553753259699449653133897174454736761008525493376162703180264925640086383612524826364290759708569151632516079439510358202704101042035174691582416899989008272881163940519062210447586991306639130466343424465297910281213856904506544286008082520726771735597523648930328440430953083135998561535457955433316499555907437689339621189073322257096132414634200852686824389520618532910150845221004833367311797179797457160353532145922278552602144880271005342412856320543083343453887787884261637752419287245269328184963542826925782962629615483856256510537173852971405377952158691366863070927396973942351223553024876743382016770685229121046239288005737449887792842335366333585398648237696080895861188003229108164238534683601533542801870462393738705272423923184193350722767656690749994519084124543245453190821936920492243722123704617934267139614202902786505396885267628518358924747919749000568082302920505782774518251429314870332897948937235519179778548435915266926853546987752345940886054937224418519102063021977457028176015328936356095093826092581690034114786643537661995009145211616667788840535646315686332476913830883853567961488004576139195279139033536453719501269210318946859793904654089923988954238998024298641404640132184513259505534552398100738198065124396431389658552905295138357533891436475393004164576974831074237728643648903257467154584029131351948913065013168999375951701756577506336307983258523883989163235012036550753911223200838115273888708012728243286596718012128306251062892436940957530592019315507467152970817918494001745231785701318868139478110866002599788100239577036736970390392325646484896226567319531668212822569018032969257995652932734296855384902346341512905926569388111182585077639899387719177571695306894339045932284086589958587745477459307161763604680886963166572929394953463002008873840962144483267920427037002209681601596276974284810292599839722085762029464903505470142605434850055305686759844452462322783946793662017310004705707291884595566244291467108843615952965482603365639092684783795624332424412770611379093826890799317315483602119881313667853765931982441175324263091361561993169530369244854923488777011015684485991812419636660215626908308228472100017078230500413153061514762857883642200504334443766170685448647315524387559130786659344991043914884816510181428078323083328088853494289124936965134518260411707775893961644407237197595867404242741115484905557442986532031463705211810307208584866402283355286227448706785687517963888039258249814033662513552212498021989993042752458683451822769220451314696946734501736943680509181260754258252402398523819106260755689155420968821835034205493762673230556123833959769058039343994660839581224799175490154597365358811148272436408142258457992000926100999611401161474935115162316023880952452786151594732838200571125925019798604429615083481721870429842303709299355773619303974008933699494077525173107398221162096239259389601761030821088327565099702520590753122157912771470289974805029892561229359071967468113026782918822247783537297435345641497722887476877952662706943689404959589447478198166555210848543629430682705073578374524831366777198696676036463684839154840786077849928527772197496103635888037190231516541338807937336613709349682082320416734223750321010971653367536109718276843871079898756848614362850071256330658895869012704172220982395488842978254604156252780686591198789707322804733346687772591803506449768301901506808889881019334745968543125092064949005892919883124591924446741236080823257695235524615779198011163085935695735267421454931243348565487502091838905756653476664103385869872349839509179537611304853123400997047352778967579054640121196368066994838877076152331367033416492501545373812263176031678905332556029894977492632075004578690374418427298661613993904345415658277301171446082194857078550273129435630303825694580644134229339465100791843895120687277425427648901203982153792988741577500385077966742952499602057111283334310997231791580209965623637380130552324099508637825117664636701758070971119139366741601325837297995626999914210473584140676318313113592955137195178394232436800602954333604628524241663239500378793162950377047139744758553721315585826259263554434570317761724817229157128594581191045966244544779308505770718965472425482521505479794951896082546573061630994759470444443190574324877917737585738044601013156969648542836916894746424561066614446212189424353711767960661184593466038817469315179387475003469978624450056352795536859335600093772692263591076137746351466051037050014664569952418226008026873794405451466281070777123867281123444254930104932800376781944359820938547533452237044262697462452663306796565207818089368981690353331515622697675756568922201423063159694152288961838120488908346541231816806837662506989792048510632592510895003928561082045491028459260103675427812371035087344768812288617364951687598873234858373006520960930047735140712589760383319508461208974486804624367322828194977862639393114561449574982587430561416675257938069849271856850914177046400253074485229170274806397602935522371717635328112762962055943066845858580935230447961557246020646772148555643836709593617263297341454010686499336313311175777448757301108589004874127119481176003596401891799867782589045651603033466744053730754268322913732659621005156158551185750233327001265558148940985026136890360104848731759872270768351215032779366243426020687280745080162347388960242701444933539299492289536799597185333277316860426512217609265683184424754551871416135097265947794415514636527081688886776212923084180469723696784390652352389362108731716552432087076050431388905084271452885261534409300401926206491078280172845397252064098973238180234731075412861809120658397677762489997539849718290341304666261827038553394308158865325243097912082960393674982940577226631564276368937331388029932484833382205184341877080023108690043494512484090474540039715822971786070630047499661343833268433664724478043799561622089024685576902767386706297878010137150981498881565571174310079028235139019405504288358990245745468272419604261331180284597666550532407021967333317466996880419532553221841173586205058322373205347682050000694056235425439315195711399880607240501081895966460619544081192661029620155668797116591382894885792252399831898362411904801779668531197511443847487998947286333301341579610908337502285703254720330675484093987374133698379557401295865531813957928902563868996705861313408340476164862587970027030412098650866171123386513868538276304295203871268946833141334199154600311500707254568804939071456714467320508353308137555323756259496455581108434395042046177457390151159127374492774097198803912210371107597549722470041277829724755907651453241890106571427257759973070697976188042852805386186365668866605912334640110505956510787649960773296275036995228422442752148310152334153400423490463373999710833752950949546991087451230951147779279797217583975166090104807877055366500997424838265465149145657398557557538288177181747352382595509053092718524898338118663495125631226613451342682727045072591088170419897258940280305982405455867743201453052010466737781181925933240931509993106984958562310482491217516550110306490366907094440871828949046171236495510316468160288878715834943661412622004778499237737472734635705348981940033630490274547103376257411446961086528126472400785205231860935257178351180108795897860885285459125650535779756095539743374586728174206525341358750331201634976790320076872195192315928771185546050765168073228779792527526458415574987538915675806368655377771232820339127329711484792855613664276411250015101913521196436668183130696010182244963808649211071991714326955877470398360989728108932448629562067089896579062578580457747073306956827968545551765334535180406525811261940234271346459841041417051704132685559382782437917355668585371565840101456039078459814800634095770059665203957645079172384243312350608073153279934840634491906928968878207575304214837821417504500161829067449334693986366637397617922530128261255444769204659779135604613301345748164807321187022323746269992080289644716279238229510726620200703350231520979776273021409364247549711462036882543104699304424996850189126409577920031514655005735022458051444109982349612605683689059150200093333064648777405203214537077913422936437465882838778775842034388801444390918969636158181599340804570892015576268437354216731033972514950382059967575075329615713147710370448713268839928931993680475977909623610116470002483470535917780258061782583896638011884420067214435917583016606629086192557137163895242943613493012900599281659435858888713222685358928051527721499891546158743208979422746227050594103393456797375181615869323569865429088498426678146757221145771545658536878654319947870610058946035235089255326269679639979069944108899151647675149995432268640281884702813729737982687488608985232689959234533852185243651643929030589787140652213990586223496402428126449838390528280068113815097773717116354743934410398374667457927447830366071634997451035196469976089760159450605861361605142987418058528064523897918031691633320469209601788447079758563294846018899454411456483260283256947486090853785722977111172894113148980119017703141918363217778796722300687084052526925450375073574369282139108730595118841913701782487189150772787417420207297520255040046564366076249183470060342586749862102804052811383472021549144042217825889983700346579911054271020987014064394314035840675796159790067579666949207954578769108877046812219465198335862099189406879104453388300856212412655979420719117659708360378848688951632037024278500329486699369476971518804196545268161339594248195615179406143415616548171836469246396068467228593357597012273274978858349360981133012213224295347430110962971880986842392956327188943373920033597518471382463818561407361724821927748555356884292523238823088778665184320238718221850674094605748297846787743110626876375841581403018698915045924851105418027126615662091239680294570129934262234994444194743353356436670278542411662863933058372515774701016562541141126291947889259642350400062626973703086055978502238223535088967015158824659723070703455885820489008621053851689926562668884930720933173496470470777934688123299257618974204681288994243583106942533568867560726176562222973836280899637998015911848204708458935746245999600450265325310271276742911808935225303881980883069036442863319681207833806933113375904704470914360888998859768634923826368323361347632044267826806709553798908563320106057403400159116856721207822171170087102294688596471619292402473596130447473790138446924246350163979506258027230029791843190454856311934168980471289287599471376116859192098329570463801192077203288908883756407686319691882293859370568148183693810366960352286184748302182644239582549077657086433914706132147701831159289736192007875813304020938869738730579350144985815765810726257478138003622844513934341059454961826572150521038296800276354625999729334735972976894852214005812193021932982788496507137209316854930397967906165353576375460477903883546221135806359197586806136138898491123549375192936935886759868757739819600772880387729496782570377364557239530110061859075740683046343050943043590132716870865133736557484575905690838021270702463098883212121599315642945798549117727917208871530805697247957898826895901824236302953573873628412301241025503705285667896538196405841821783963986219841932428353350591167426252445241204354670386228164748508392906161711911050158784276790967294025026288410828365689475198644671150762782597408960294403205065388758704295538743100250319623796698888513339209575661671054597257135733660441329843206910804129083961965266138498937882579018503632182652676923806775602304995475451625331166600701982731711439322904284239628565699656641541014631793158777953712552998037132653688222493082754661770685475976269279624497227276256229056809624606810632988318263186596958187992429718301801991686918729571029624832018077398043722252151315508854250103106758433299649784454545556444585554722427770533476210870268315878914127707217673824849284199962912472180429345518019942736977055407555604913171707471082914089274186173609284794016145050626146178567615343599257316423115511906353475777848386054204675823088275663244078713930179595776019979710389664274801805452548171301306485769770087299249296904360157843456836171377748159102656718706961381360540868771212203371617499279909058821852236072198138354040308004333352208399998732706010219349582619617351685641293379862772722673989609434744703695873558452357582890124676295102776068461093902240943042113948916681566149420899164922647329790265529313827055944861015391098689739108284416693760820973250829172161300523895446663681002137278858547228178656378414929055583223277029452375448774006663039545627907196447577332155450848165714390497746018360646416171595467118236847539328783014921976486806390861675891678785169582032509873637294666395081424866818449474986611082927171948491011691810488198599498665862891054696251964642977471653646318363056823788141932519210497589672716183129946061005841606668970070216186569295737070343102258208959832700562959001972472306701326979016568959654021057346676044782709943912750526612801946332868070628663554456931147292645177547986312197785224704080353326222018470680550290565276223982968479253039025242311629138019362562054835030209316337002098042250719405438418087210417525446728030210218338282224438345531032092035366065394223743521004584276834519816602071764722463120601024196581784866910851248625555611521248773293663603715705345272144005724071488618003628985595874776998807838051462089896532467760422338976775140665725014096180210894022683856288822827275123683068168686820291890489519644919170617335795486932360141491314492795273108251141186908082137449049643735405304725396773026434892855168830808679107112652203774541460550011940239559169985342744723938449995078344512223248555472941755312564947529286050192272212206807754545406920492261464503750992750862890498711087482119215649190199106948925951390576966343507379588992713082934945309859092612447083555938168963195226073416432199403313701923627300310513357022443177804148484090379415588549772943438677130008685965202276412584440571224013683310578249558259973472771276027461026801606445667323292254492482114934757117216151834183203848062182798373608253468487251196106145804197449354755125021496987889200738060756454217152592647170148318044131131857216437893088288246025901725060716197579201668936471031216085754437460947411598172306154749853966261561712968719752333264768040197604096706974450236372720892588186744193651856857419482120139305900720103670938675177260452881586630177997419765216905561498894827854662514552431677147593403001579934487657147166007653227610340258917054210409116830810607181715435442961127670026744764355900583086342655085550255879498943024457653223387509928838619263062256506828707189097643227854030297547384204949855050884750509305259578200792533397934026019944209788062138265309228001692564061604505100713754823604983716658318602222708331534810925596153475289144356075245107969258817627091095510315823879019036584445124693541583284485698381452315035787765752772658452335191141453940488569947160029065903571811405499873623506243966216551102472101597833259742177448817127827803635473936983501876756779820349450497169341253789603435955148313885592411600212709069027207414314399935388496626618617779835616444931405162539768052399269495520450298984780304760014197185964919072011108070654104104537126005255215896459309385079738353824243308957109784097008800906737270977280048414989948892784247856662771318128887537246257622743941020036683644187779312641415242463741915772096939755786374152494591100455174908715288193277469349357212721129076158961613909035897215755193006776426440602074359996159286189869866643641977058082588977872149192717315121503663161385833207045200881147441819957738457244027703055136494741716889365709064189081263023696968401012049379377322615170366884274822930966667665756410793380736674755323298986221357208230386448276557204475972287374819820246626648188137897105754187927905939604196593667442331093437829223976518019440307889558016594999970226367186507208882751399676273246285629807181067515338176763480222078304308446708515681071879030316978705438976993291819493824615435269720917481261226021427885855136246579959608096906063340631798669041395387276358608713184069175775798115036826349738614753790411886693886016847788017541751741510193133788319909010154198297419950768739771761004161881902266487237743879175189632168846435387047157092751168023931618248737648230468813948077175346920777458363028709578173523234318341357163224946465125358894456615176326176336838881056759709936851480614096666240134826068408528520284560378837426769959815155394885477979747573036264066071518610703360974303668718147482112425153814647739591806621600876169439643996751880820081884182013034119342579729690586689963565409393141689640729473682923890876933082851291355083420006329877846937902829592626010442751983599655414788538690914976022801357584625650517131776364284377893699015654698723323930943118729322188679014731931645559069302682920894083043419737482079392031555003947010634311220771178847404347398414390819810421872894380547686175086884042230726619480631130002469971576218705305263008042684841159349467256042721955655634200821520917476064278675878636870431870914748182459820947276979601279913959461180948127135775522757509506041163629024403766821532956281337321633269924457433746055602914769295716230663464270616934591020172897615192272760613169434780879289799247415738949845824063964851395780886126401240785148955754929505057810701968812823944198305425487502437840388800743090297720654787165128175713782659441317870070846410184290171325148265213040645586139191887398600713329815523256575116789485822980720918874990284168691962323259657946968390143132856028257854037782549705918359627560312650408283227600865562415016969030534012847731880438063540807085646100821493409598766058777929640948761206369769340731254024458798181149282040795322031146740964832277903220758931262669241601931171606802882202143665476958329661117829825748293032438647642046132576654015214346836529025089169079890156978552131648672219499835209684686673911813183743073008995387450515186885559669053244713947423394156791047041750617817833150440137830237449567515986531033899001736101491143443982172098596232042905080629002981075619103907518374224908150850985116999242723441814865231852047285187638971790387608721711299994832040715740004488790157634777711916070664975481554690510025533397979014667553796767664959396654789682910077620949143943317303564237748797273270183063464289254080390800024409061643577054371034463051228184552178328513659439807518328016058900292536884569452893981486791692433384782308000596017577995390504920735899947508614995625138510466821124086479251331233938009681100621513397784333425442566717712350597872536787812637180640484784036842193874374316880672725935557766323987831205195981626169364194517236648791050199689173761094833027450744811872581443764920318184076162003000688803998836978584745670296372434294568813613048289108300182111964357719846892952147135633227812983820549591592234496472530351730863760996846427334761453105097017842289337968902265315820488541546145974316699381242156311947476811259790614577744621870762314268700865810778296678998486564673122599806464797628146229179215476813753736701875174753836853134659905062204940751309032868479892287725842968746175099677307405278924824320199638973402123064686992384731808984643138114028353398191271225195858345103656936786095574279170121350332963651202575529776987285244145416039537242987468574476653914441246498317334135210742791663510923321869820444845261240870729085941883868110483456402003533502260054133837743428664646405223824659902899156877881125566179901687846205393552662206000429095401032085741295089044506045602542405691570994594791480226381445756877933802447134393372290344143147596238946570556350091342087921177412143032426860839975817734070162904364070061281829703605038045593072006743645320513813004375171796967916230250748848837058107795740072343936687941083846459308887580604723978173471543172473348572580106675353500144411224632042889663663633298021947014861478150138017244133171188086072777232622929758321489916872891640204949596450034647867494344744886330958227945510343614332695794608423321330667577258113795864038057776294008039313945018413639132521900024385992040877955044343226721261559707881746138193102074581795727974098574642471657566737099619745309777068136816858364092508296830952688771558560229255900502997309940731237704926049986577381365324671843963583623140199518062413503542041730994280707264678593149525712518687416091481859150363206709954680407655194403930502742397376931490757577620081172785084097425169246467955625481647010464753691262244408453809740715810137887824248885799287270880372098616244300539054638384095610777200110305012392308556646128321511665595014027558642189700406349025796419337527376058168049858720127178259097815134365859738216414605868273279502963744824176557043835171788137875446170049956261035787525733300000167851420944395972769848509798793275916878483648177552772313019143987226130606106628105302895890219821016303652946986293812275645062446086176836483516958108258602766377041070561064720264547042362678999042779433647691092070519040014772766398656204731688266129414328008112462803222993164804287932663659328932508753061897292353752308902747157049081059920954441741425667608953875598795907269371390597333797014204224998525847990748238062917921236104806605183912016636064428419253635327934718308300053258911202985636624462975462850243154188985886193889344689921827715453183842530441625974862437646526480541014265024161161680870235616663108759243604174666602031181690232022726936505637348488705075310957971390018584109237748855319454190052108482011675482404175690382822648456166429922856550850423195111306677882380538215269543496490912976143162250283301417925102973217057529576780533853881519697181650747027319564843852926657380884657885408595327138114714781040044652648350236957627467259915533760213254526092602512678836546947873696027477601766358769517594835590571268940738479395457863399523341609504200179428606451889776297323554597708146131995417355708625121573303076096029363972747462489005190553559008065540364818536303390233906121630302425828502797042550837698120426218658667483930821500083313386818594585018330929670655772111151447015634892971364585746463696024990277487383294526232742954712262769574372637616017953316131256756435358578887291545404946098495035065878041934323541244831610152092483706591197543600377940176252792907327380091660037686999888372018975464885580947402647799267353067621252350068776334012471945669955571832900810729184668192574886911024053336791610814512840562253607510968723018905178794433380512090626172419555239921405120153217793080720536698220339080878886494564694624431094277532453624181227967466390390791944859589562445109037926662359844376049158619224309972991368852061318408549212283423454148624239781966166352651662817528305084464276072206988044044558749736002758675759275000473035869458003165886380300424726784491939456685519729336914078948713857605117505523137977509117112749896338532854098648412110895757144593666932780516021406957378645556402250411452485685307344052981797719049833910536423188986414105992587277053186350294294939487936297605356301476505510319924645318227104189639990780399320561620129246900578168693426986246046307979946830296220920524891669840899775597288681922090312524695874068298157647180888579707849831232458636354539301607268248597568757484371001297857750761621609439772632278220685943040747715533735527002687152392455624509578129461193257833220468283701070844770152658594319602784835010328703769960273033797609348504766162745410584681599539253258981919124092207429130373451856327400164593974585551057140159207739653376153835447734810337628162722757000555962923188856635881737997283389487786471380971483260060308322495822938457674882068078413142650305002306688672092970394885778195579102745688285176798485567503737447961682572410882778100367377768987179759152648420702200470096279075403946369930913068859237096343258466987339657698505884565464387082107692225672018216584008687359537129384695702342126947870041548262808206167884493020988523259398639827764466504050214128602955889990256698055337883840362158153658317292546642517900010351308136829753644384694181877072459709199725287838211522501725811592755750976766800819224533667191972715235455664470858774025529304716374668934653156504351822664743681520979894619574373551563657834809283215574215178856503090871472997575176619003863956742569279748879946351865669386961859267652004872204273058308995095366383963276100040126839494965093117952060610725151529870908028307490037864498155708535434771360873047700281330051634440637609559609470908025059953833249617815578272812112548059400465098056823346688275993868276917014556456507286997695731556263360314652041643829968488103664806388457263281864549402725191765113288916609519149909513194602281279711255868007664518499925724707578811253222056783278158782774858612704918101598619499547858093427914694708139284440987634461518293345263447192717320654940997064114697269354857786669813999044161002202891152479080745402629884926531846481609377939164413640124885736410805709991374551577197486871409068400819036066917063930144004862685665229602055982801169217794488643898494191364389837444735348954661273326760561791668168735505670650381375634806345828727433508211023312366123538414450829314836149783593168625353420147218915520793945347882111006435900074411942124620064016533434377100754636829715844066810724428699743857867066854948233474916938755739175890159047909639516723083305866006998021126666342792544031320061021617739087153163249309160533666638494133803886616525404115235668482636762245433616648856037727911796739008797439584360759172856169741748968453627606721411196655032554469703083197851848854699016623472168863997518257347061043559422816936793608584615356822115882601768077377449291981468630667038899274541636098446043363032872202982256616512695220626728616821233240645695481717530714849116082794166462359025106479974054613289603371575468582776295378070083745924006070430596967366017090208388124014509432824170125930132265217794781266901208703185337247005017897495588538234988449235157350188435963064193708929008308482109273022781260018336092187200289062206140259096504875039978024215148811794297581082509029923996623655971196382485515532882244315844422641213559796886953696488613734294069837244932968658468351551474981468220569549036006630636455298958108457140371772830684095639648406876718473184869702634089101085095798650586890102153091327293237231825964934858952570540151219580775866892652140159971987077644740176345310226820861325941132621478325071040807493106834579798527752391823538876808227958491385085364364738295987992559069145587171638010996321189170556443314256308048001932365361266508895465678626173860948019526692314297801538784987852343288528435089919725568259662248477604733666034485439521732975437478661453421361365638308435150419998214158395695773001997102821955548547924971660508705986327452413799232978707326555974046205166336719091623479078256535833778497341307835652646711398590297526785241262084486617425666182968340576502069972903928796022699111591198689129775038037417497857279984927395958383214214268852724160407594779552879032866520354034580991253832495997154549667618905281838204338216375828198078650114835138475987257997223222983590007756439608959149434139844186343354345589852679027689465294749655527861497477319750480427288890447511375385628480802164457008386979534306124855080083195994671672715950304944793433125743302334225536828280322508490149836933649782151452730493610830892239034930628199248595934648014379558335031775187546102004623833802427616879308108553623094675122593310212923349406103969977366235039763793352398598593718100949734579732371816099033378331239740133685122726956719791838858497792425800791892318776766908757709393238692433101761299594061442282409202943479130725499620257631071512561010967051352434666668313523913968869703306328167403762079671587164740733931317798299111717359797317611015796963704340011156781872794351667459201890020862397951293216383632577097316877015371397049125790756050879614191696090399121970455760214672253015249756206366775379454962089279882955164523673645906478297037434691471779607042007751495465463799572700600200960906904538725383176183973803514491061413784579096691832834991325769534201215339989166952326913912104331905702240511819156409670114440225708200573699981501965332646684961034668019847284788919843575639319301010661068499268348081210083220596207974756879328842293454329492476337869364014669702158026606075004500324195055204647781751949635803589387499787478427080765951915080826080648014125625400943334906448738077274276711142642498150261863707894222963219623035282716925659146900435379772009544345012926683429344423367075186138295241200371780125759946618721879670569907420811486631673161151295041646426112447459583664090766635856250873949743498926763425137942988451806739293689715399789596875125315606941708184955548572758819869460207868220590281245511052762653153796367169572141390707458971598585397643776294583727111440785616493754560808188118989093608756412193527779569735129811226172605063690921573152655247675146913667843375726303769910993605898448604020226297097642108819242265457816025129664230611165221343287178007454080454378573557103566475932010156290124146711810151414059970972758657842371143640437513056058272472024368947768042532603945920521072605909645793663633856671010964256216572592223700153038226025642170399448347139070718308514226077938762500106451813241831266213340282160081200379161348441145191896796565714560099950247168676990811582636198806956218922458640757439010143908079625731895335539737333873833431583676680752123298028356892747192548128034766668191698880336187829613088324346410055167793355869687255476769261902138818613619710356658829640120549795850015945328358818952093389554908748929435073702648233199959511907188122251778751115141993597651096121904332126145014716574078715872279065145222354034842317850860802432310894781750907136594330365992354727168960458574440156323585826650995806116201007257471448008805306815630882929353139215382478791384512375443024241717640694300895952299388802523130212565983251778860708410584190766109386192638202184843480072699207914428380471944949906721756024695916745901157309722201696483662293039150457767750963760754128973134157585103585306342795759376092734307665836080852421891373548397244700812477954529372363731388403443877496351415030442409796986707582493655636325935668471617231306543500811830027843066791722366432435940234465000325879177899281594969366134586357709447519154782762895554232316473645411168445873863269890789867430878232683104656641179069718912996595176107572497061653985914016545128505835133481009203125726026366726787611355010494498391117352032813403315567912814845536422695881988178332242032826395313366949231835936295009072216641329334195517277721520534470296743331544832578500881654350324404939466521168806587102059462603019822229900024708225355589848426226017136987372889717531470734071074022277917810150757343840498292747996271682171007488442477369961640951259481329876215081391236858765692907585458763917440111832395589194460230664109725474975824446861360830674511445886177173142845181395416459546408276388053839972653525075554102242407618583584898481680825239939156060888223978170206300824276418903848522207323483959571709841840345648663160688966257888445954831222142101201226462183147832882474497382619235421543370450794563353780737274957572934969336597023042588003675562601987913742839819505337381492553069324394742423300253058892019706971690038285145246229010527078885049051960336113080451740454420221523844480157433597750408605699824765973023573023756065957253558312476253777291655728639909894466852388834222799231300980037749038776380389693349059031656246042868421489269957670679186629730329832572745028393287484518947772112391849433748909563423251117535540841556341612430294315248144932495075148760238672490836575482171653713685477610762370632941897547945616000409313614304717372015520887564014544840288171971063520537163569276668078001699640755467902960548886812144172286433352932703978171996618090471102954131345493178092585945892470783745263665410147180352640811234876346933254900983957706981190737695309218314791779579976594391059593890669432005314773915489210404617504755634897487799467721966171889579341385435462670370206230194548096956924080644287429106568347950473177402746631068051369115036972122559210173737562520706309955472928787543359346408060273478073988305171713001675442810341453739764845627987121684102947467108598956636880857333585502627524620804902642957869610980580535613086203988879449864738058252923544326027559746255144673858677683558438739825821823359823049026476649438926783393642408917804947613567462372485371112441872860580531923748792850767036419781705073692703668791723574156170930654008720164894996696039607413611214581172951009530905675693699885825435969266942951780316755750635200479080601139999991061660206649181376922196812473359513728904495633592495769247636917227559935424718455952638672680776675863481691688192200883888088895686567061073060575567941867059201897498107268094751986436143650776172391165897921302269785842118037354138957138022986659853003811647640245883018405819960060668124891415421568761824984249266142508438825987049574584999005741199397646221566223361826566112830507103685517090191486178051566328544577441042093345592884744278581138534883460604431322669052608718659748890925902753567140974792946649409215984098160864151271816719830746582320396561274514369711593230540065578521778865370868852485951170677986141254658195479249128134899947040244812016238137333427532951298849489155614206188920002962631223084151862202330300615021528757763324656781696693946384207662286883993075174651772870891525256795407910739703293617555436464469171937499985193382823920305533956940534523347188323225715680177281639403291984622454816497026097471761352105437257065412031758246574548233423525263335347839773525429569155293565636481441292451127408037776235912025326742725053890069413091406910574440172855972457661599743343013853148079909330532803230601934930176941799332587053581115178074831547862157175497369441786490877986287280745143725917935127047136318192657402676461929720488267845613656639840815578554222096693574912280402375226427194219777051336426096786126430096925725573367793040259270217287340234064494386642899520670840347954966942783207436412210160561914010927755046740761714347915689804325683952334521281466612155384447836435844860380410314824196078255599690753284778717653287677597109839609209262153607158287909249329540582217086424173214783714297148549613891411220550862302128345950286290297664234997761292648517088998416848632891236954442048717476070217140045919599892361107449292977190021261697217101121558772352347732491695368360636689942892733619704582730092506480661434576463387869921334766007137037947989947814084401196656986831253901610543797369494084871136608596928348304243269640879319455835704691460681155919743877815727230075859346288321951947290577026247092392823637124871906962886236515794123780339155382742685909506330960612493678964906773748371932597798036725457650845495822663347037177845402186185856356636919615179479476951940191794620168714685028118889222054584333659433865812080190565565929885991837793357138765462632921585883702343841575640105798250637054582626864131386373948373411775341186396557072546192098675710224586982057637733722893225058229630135397627627632794266254977799792073223232188822411448525697508610377986951278042124493577853321026302852508234490420310037987615709916545262200328603664050500463694865269791324605502687744738537386032974717183838005667851300532325865915960137557686993237256965215036620751783825432760987027772502631329056048362431846424754514413382143794429883420936197041836846735515860979053521739905567553510529885222760650623530333375126604610140630470516578138333444747604458098785497441367849582389928214481122369482126607525380694393279883259539637645684009806313630962340933348062620240554430821097123823524107608595290045818327074753488219396112450901374583419990667522198057002643878970958224690396595906177377461379327170639911145645406453169245701699346302128176655453594962290251079852951985189706275261747576988118571698307288354060212185225821724188120958419840011584133196292572993213122945245294501680441563599621218886678986128834003114846633708638985601934906880231408484884212139991692100928853021179388494887108217639067541820416950067965347651671030879517665532344543184247911661373006185414364300643335953362713081190718221661273554699963049302536863958112331848729591594822056236560502281173943675991508734340480077624991852646108358920921535829278625569812946023435452789721152079940681790597737128071028233519772915200957275060465419457373939112965363604090416861214801227547269175280030979669859711924396912334997968775586047989555336252910625305857450763901793339575317535373731209576206632709301010387821731425876210472534112134321592087365018165965990120648089583842208804689883565003659156313174897548627609704892749425354166286689464588844557779846969334102473255164476193608805939004716020302625327632555856535372745990570463020375084240584319830763642502199357681820810951800301410355072232728828290610461027119989975100905742335127009153430085554433135735737435247746007677121911541251217559329719971670810783009960336355493899155494466700251838920100688876542013296455741127847899490983579600736411717978118788686432343516955640980695034327372657640964502875840285780553472129014789283186409186644584154051263841198144232877648718836182940609929495060173983672868893105047371432422856443572588724031184274178922742302546848616199593363437187854407101449675508680925963593227696872086237306858824790786273933229261023321583633056156537086560278084508133815046029400270054092933123414607310572352966395300046387591084929579248934804454991691155270350869843148610725875971663878342316819977078650995634010334938643685464700374848408745501681329220219436976181075163114884082340805225707527308051223243751081126650173600900031805494550595993543300420127997602970581768396868466014344562633288577254846717299709312775151193911158163999693559905016677967466190021588369031326378462896035885614244114316859831977582331258913227651835995122232067229872976551768792923476924324548840536332082516260426875246597835450840142535999145687822576585710019361448002402341608928792958110586773886785219194954701282167916215889186728437228539468426475071580791877177495270677977014879249010924862713547599525002598139613691207018585742215315795348030955731061862141524359573057895588272549202262258728528429778624634831215671264936672354805953715159823543451013593750948565196960314925676714486411048364230395325118854133131992351903533031578383482034183377164728305299074491335486147126410206297640236012857460102859420599947308994304134211139050586401346274222576096041734392546418417031492369549135790941559302266618991565260770234197626279331077405357566965966949294417118116946192289960749531884365507631084870765612950525582771089605750643841630798908092992708353711254217826198498252668943267833736015228827996437763438328026891940041163737103297111145166713823120586153112073183098894387865714832292362776133650084828688769752439503722506230772813478043463531711099735012852471302429017310313261291227431522034985946665133299573816739862485781018936924571085139366925239208670102928915241026606563212724971957762794112823388745858383165547785837861215917848970993997177420645094517339821842545455220183547834178912020971584525837968938286518730764664652077342145599533600161770860038473140370017055068517164320816519161621579935305429028354126611184616411868083176604550524671754406947288664135720293500530285516281136023354540251515699696717783266561003514447810031480481291798108131075852596735010062642708753225301550191043095724687657319182696944602479336351245041229421490769297269775870901711397043738380954370783321563993559471896672515223881299506722684802830628327403723496688983706007123747300431821439107304566679775739304000442954809641141971943409182691991004323688058627886423902650870177540773863212389086447190820411071375187966069316364559819874496726628537922922529870624937017861937974020264610959291207047587533001717102835136337059281232529925408721744696880604034875646544315895611497457291330598890789265582158056185744450335350288324406536584922637181047404034337838629948337171883381798346297653086521682377319891256877863976775673039989552556505699308274223163519673649306516892769830668459420271953262259889945245295684438843485338134277102610388577317098278639397290786073274659413426788249046844733688494308653059622861495944775199920112433950640258741845040992523593740035590409780260219322262990140486068031020523961569897637353564199491581479724931315907567545694615711647847740175494550734310105469484173756991290240842174150983434067262169333029240363452120709389469245583291052324670519877831531235925964293404415437303332179431594708831227212733985773632454228368341490847241341098983098868915399580194939040321707877414337166498547623095359807753931557176195373165341657048609513610782502715895386917653089196383039519000165742494141186704703461852385785839823350843043196319948970192987079142970239368255073340225818223005585203931534265705519410445979804884462556260565317351714709147618892845434227366958845153995159452684712682551355038858829778355915411041964172465184718379459353371356767200727393645794467096532858369963159907608900812683657107740177661473538699173616335410729597321780836067759800680717136971944220429855738937898818290527835420072649305530436673400194452328895252800211192213039189093654983519481394453253973597420033257011828697998434906951338509244829513331563835927228579451151991506613552312623996573497699920638717525881916017025670414432122675467649585279335549912389043427972515465530183594565534166864884433379387936433638067553335461171842765434052524475587076323678101578448440737116582823469780346613357572040556760754447093298514092370825762629437031778054032642948601064556100801498350431194684324959465256844688488608132273798560471763658900182252417803377066162902247990163897132819331099368680175987053572409282014936669869461266613134116897001424268054107669235809682736251685442748876325635015446048420953820906986974489104175267519253492698080163008298593913796191338956570250463717635214238800161107611583870640052649070263131179688190864696382597062739479752237130123107160741106620337884069000479604114097460677621722529705859524554698543026637145632946118767526750165803541956723626163313592638790987572610222343683704696103463777387230653158679071700091025107138684946642952535902845482017213824102173919483666567065557439220562310206286450167066631221630468562122733437809627306440622505981456759129811034628289866092430823670906989195562415381194185445936311865589347330078730082394660405979251822636779211767212510748689219827087595302949478891604296726185553892702052008002021550367055332919379554658383944920221457666539645295123898868842741816082863056765798749796155360714194923046939255330682741774723570894050219360644858594457883365490019652531111533599092831947016417828600427707443217361724584657041195651690316171798715726330542570464945027341054912989643419751409093478349868835435263677578230836853824511300531022066428799605884396234675280088101488272256002929412196685369102868428064192423959771170025532122710204436375681942915313671236837541575554719163879297385664273144465292057413679787437540539953857213384554737559291394862483572000254291111518100767340974940218911932746546448560634680407484435449865563247540070936450819257135112708417509541084174677132633572527913035246818732600024174852072059430661244724870133107899713594774176277424085418149511141893127382572807586623522557849722253606797663209771188623413166708366315390297996202265027862858859313423191988398007955402846204561111177819894743489960598534730120767166985192239785667975444037404843751282213818827916897383749265181990960526904053554813670154563374066723663971933337961347041728291302164797164482817601071349230377119441441553790937179798242556642979311932943458287417071802495764677254663583154069376279193895962679021597797282164862493780256289875109445531879103085361536869921691892785017129557701248724168524952933827618037006580762018759314155489702016717479541838159478340700977441714900717696929407136316181398271070015780546967181884326733445772599749835658295305482445284213345859702535341879186941441553083049265216302348785921461787868414588732121963457723197336819161935792259915698551497009408906658714537528691771290093721455690881314124840051091856540550258067020732684645799012706522388398699139797397383603462296313037533722112322100244618874612293647738041773405131799911776622007208199160876343672569081994004763691878046674380417866261255609766810962923346498406026572319275542619918494833249850707095355392012831864391052591494786456748693387259758006435381550270059751983207014007572735323792619565574151770225993210985447785699363857511044260930761168103361699285631735278334120024974388529183375965065814707294886408178800707873554039672827273840667204060005719712542694416091474798564084715239920156425746568205835993703504686626391914984161529274804659060468599873111838055124435036538461229550025032120736260954970320752896545440566771788456625588990478567626365838095440295854368861627933552602133565517003237383086224164910398672682971253950471489841330610145037849190104206621976836807305764455364989002140824266675962258274569078218226185783855979279323977659780493695189429325583715878187903231505432072130193333541561260079354462224541120796193016883635353124115374111487264569640632257029220058843193907406032764573056334436186092488594675040101218302082502309908355410934038111808471586208947539555615550158455388931885381973732543639897811344031808034315325616571229740941161996913678678246651190858772822935150364932355402312817893294939574628873803961193053164773083688996932378516430742368208897198820824473353113775105870765730899458863989950963573141375739215941209912020169221789313018472439065260733492801736056821401976858559139052861677856276470471763675774428703381541773857716273603910584789581498392536794416799606979853814299974583296073148117479520913435921077333503402234587291730094904554637886179293309402543351319077213429258138882895750921328539868548348421361788815857817080892446927515666026766244632240926677967513455913199255522863769069049598160822014598989904936976320015317431465373843065095878611333885678069640324847293600348129474391486662307896152485196614563611254103830612220542788619105887177060729178607273536927971167659216999974376910403554684194610514306689984874146644503883233493855358471107019039379387045735868679227485564315474413741682709947416201444175666417396970926775879205412061294506709922689772821720145921036676930238925806437261688145794011993093435335948726911520752262277939916862580051965953760776230215273971056017657928725033527074543290589944186453422969853386075944772961484972422615074263574211252222894744266726389876660718039069291362672785264812157643718120446851580264769313630751002397236269832705485129756762526637698584349820813570378362135796715117723530164595834103244194817925301481184170179197297393707299639872365116704864073615105444832507427736834603040970328942774840191184722465536521381973132338284672155147003654365961555561942820196584917907811356431853713791833450901659436264634278331183156052187645851072364131698031433777914283365896537127778026807853699487190601748577126968997349256942810663727580313346204108509868932778298882990695431160850109317355513337863399402010236047178538413582566324424916915612551843877751872156836987883706740038124540017032865219170831391548955440117756507475471124189686323678056021252224211973278776511279464914199433097391517305098193614160180609487046558619368028390465503959263638546909493294664437326972415154800179517601276205786640480640939390552833591715758975609795040990726622846938239641338184370577561083073092824889356631981297903424027335350451563029286491047533421576394547788970130536661570628730528337629992896421510765575193843298987347125464082449720034603465274398125363832846618225092182109984587470499752964474854034216261187948545361972490602523930790570578064475690058798096269689616714020640908643164851970604668360478016510559210739052584353670873772975977894835180317828278405213904709250179694587181834176917632931021467441078470119108069287007896495378781617406778160266776659823219808189035001237646275894160065876632946817398299413210022766458054986866199882014294780095672174185018984887402928974536859438187841313069475262838058810263645361824699027763060795876452914144345144852647828981674662874618138886627207419118906624481081488058682520426224018312500577652080686719677501441964749585841526792474046497963802869935671922540232868793165251039360125031559856959152044411031272437714154274791877198643545046554719841745601728818788296309457801943505215305213143062264655210025213142115395717166479599076178478551576029079660445392078295190585719395801597795130235082055124319897034908761149294449517365133011049592018390568688897997980194505675382258755565945838233535656122275477054907516178380644266365709732543607058901980662086382781232928463252376034079987410090328163877812249193763721654347658323019894550990704634004037934857034664960464190316374247657244645710508301918494038057608564504852542060186500418620915974649827842554574351150081294780349796050456108188861321061958440756221498716756962467077147594115117031593988711954767609296737190085571694708203707404016179184759117227188802827674039167440051155238694941883544618361202757731147618108490508360524653314650987141504516617691323656951641052667375758989245098221600698050786986488455910224262865628762620557088020629129063433596417914798819114690865454918888198424620061162389156610309423585879763075598780005245175594458890090166658451279775788442567948112363047814323611357620420008243148136174232686184848188089128976030080222058503651057741671252405468344609740924680396380963061217753173493936748268532974572357981041689516279421855111741316859695603830197649728128767471987665972549746706762789271747996038236825157662208276881556442094938797029440551658515692656043538465188034223184621120152607052947921775221999668647823931059372888410745850210919482156687159737005062027550562112771307257327901021488601373214397326900397098716057740959144025850843691460911405738902678033211831200392393194059720274313680351960709467551112985136888505975839046154313153425739108559222824217550559419546084030529518668350560927754867917904557729177183498239279879657196587930994359076379657099663789912224985866891311782286391974462012840775192581006790582334954660137282153117921168905348752439190215275050438116115279206931648241539605657381968773667987339957989668564345745263501108421241529907625375202963562923904425913448157758702399243015359712959044445525500110835765856288863632603865816035658156220399695951828732924831949933362673811253441566626341289089513739788240004633957708550925070952430914761153241177658800744639401981068900926218457025902240634204039227180426999318865145413123479865929027870489554484178558473527042847265726449863464165545067484851850594170821962305348337355131999086356383663761180200716671685315946099988027736207466579017727974620359169889691675538629936294959842228298552922575686749862973611330449757290332481649844616908612545470338758128619265702487676035658332585211054739731421571969354798777515228124117683518078018633658471900249692646216990473652631417295389705339581065082518106150463228881758658658772639139381127336840415743790552873793571337208869714221095984425534363578473734502845263691947210052094033641835906060666727186739106472398342882956793113308084641377563909927705114434182387325486750144770064342390046083014275939674932743644766112916182698314228247697786783316020900491571894101489029499378111171965012089012734404513111231919779961911414148570430699974650419105780803298790877291364453357143329692534718985644787740710686359025791993041187869214686678287032522357460115102823952000344221959183100431764725124708097180640610962742415084815164522369280618841256985382814743905759640159496940039984074715219555761015601149913099109925099097946694794376564159269522897002964390066740951614840858769210345468874378203662794838588814935445522535193710137783237808759594977498299401047464780390501515307760321528494424964065081293693566373409273259283637442309453570059125957364010575027682279781471067738524533045090244916189162102810091668240777124408077840928849406106056090516487389902023154214761101894037857123129803388718790631034033804944276439592092957693288848400265078927641732774419704378723213385733811103721324402524156645113054892984383788487272144629509663773951743886509213535607181686578514298679927610167257009381166587867544806431500466912649144290768700565591631374721292941684354318213417307168268786794194624866465522969182262495860498220573559706796593612026380422298914290636347621350841478805268646292645420073268241601097118158327879795775132188989387759921959143045182703489945472070944979852863731021992106331230431586641107673295550865907121345348892314582483436885861233872298777989019083918916810480692967889803682508389716197778340199620103451426475315038566443455701539538218756579128797325339221740539699911229173902474382467114601379835797435547831802153589052063981564989974496262371065516768006172047206369834692223559408549370472826950048830896366540556632332312207439753875825594683076341353134837714957161999566447265684423184331812811182116137909014503686580334146739695061201261268046308264460913730498675419893225693144691665043954652893583072123012451900031449025191901224415179713282593942730737049221651994494782178397134131000739968038248210004450551552196327859728767612804512546310325402636315527837133484768818052607504830236433210212532742551781819931251862705660668821577226591936875042492371621134983819751910736280504824573128510508396653883951522541728505113746405254258814741884744440122888176161189384864639461455972853371803318693035885767882294646307586879559944597566843052851177265382542209961994331707582196176806462622336453950292126959026209595478429812903193502767597965077383632798955260102039667989652793941068469322362999536364696687012719669908862576516755385217252750145598611124806547498842467415482036614614980478013711303415389119399450982904213769731724125641197878349474251670621527611113656393082921869138006922638528890164780451359759778959934094889474868106242298720417787361600415223168057653345413727976236736159212510080384330375849649473970987340655574251938128053295085913939252249502631704336363694965724550757797921938820070194178657916097255559336857376478240541872499748572839690499465991141929919323830968762284484339683051326172796784881512438470009750210708350042242149701785992169776623706378360122982334973399374894981922802821521811996812561868968788799725622046374345093960093985053853463591568990667088248827744640383621483855657776593695736048721862200326633452076220823585695259687021679628776740565652432749916841536289540338460604239948123026294733011978027144464971328878987155797932695272398529200995089344724932504752221150585128340620244707942880793093615558561570476407529248154504642815071897724179519688127651715642779483138312268119313824518203271377585847890587642367045935028649510192007484567156869137969664083416853257764755315764244207883453994706023778736002382706491377858828663607075827263794877544679429251608157196613787227562144248172991531817534640666135623727501438275604916392625246493749400960472880042378587821348900045060647915393047348527131962959355642983706904834835744741872448001305169255312898052328766751487055639991542315622716663168824945273138587826634237019367970624971188826280953501206980558883777344766992760912360807534322814548074647936899141816849450239673623416645458433124971374947237809574229611380397237283951145285623910962362580719245418853154106510510926118584234753485095769871702177455222353024989712925973300221837522296958419201884352755575504211252794258458703490856025164596624032724343132954536694901559463822497750538909714611036569934440298548339023453029316051356202919142060639735466172428859649869659535174004285799545693112784412603715267142061442796089917825565778955234263507883227924843458461852179883269658812885028924682753958080259786986088460840445930924880117887119005797524610578278386534052308236980068945850835077937544716084966747994264362767824899523094957747370024981622377990053477538687210983109608772467812703825850824040161135190254365653665976055043027763639142770082792630057816388366614206216429294836222999263305869607405532061804489238357024209510027960107186296892226181275844650142572544524378260095507564946578025807348522631479406554473527998789674049534280359935130004346122119237864416222100064553047675390901012558556896451062048444741587722886886158707375911634599136586780877926190506479849791742928584497336795373141618902499362861933476147461682826654864933385246447486991820279390742519995618081234450374097975621175302525395013680145754155954294230933293838216770919812957179709187593934599835805899444369373257960348449944448122701710092285324533047817340124950687617456229049624695783731716821985954936707724168427237511047908973401727921762752557392636452043374023655986394173063849126692596592649569953986176865703227050395511998309007843997217849732631725192759668006236688905056758195652202713067375210054874508424035504838578097380246197001828054867382058968798226592310425770029157269595399002075831928034372003930526967132066735465342280125409224802871651141230829716933587494061509043443781589391297256775660269911654027689065082993650353745368866857519767972376185872998099423443277379919752828857834635091115221263393330635539427173624868739545328806481606758370048825570717680996918026406612435808192016506168884556207063562689806483748056015240503987332337690877515756245648150264688198422539639876777866251122632094532707054956465519421556891761155986796104123461965863136237372511576071257829064917399571965292853097914026874034790061544679920886363535872417967775590517187648771232196159818345688431943052068897511437501482091615322886546223135121032494987671335461115052610880963718199804234163622294153051191863843049394627470354402745028951635410177692043485699854855332775294878787389743063813274506164177259141051120542633675207624643980500532834828191348412603275025914741398186216311383565519386847049325287628463882187445260412935108493305422458027464812428479679486267721710230172323201736149324592136407742041030458559798189935241669433222157244236515738780922921570773355783620130343935646462293138552136573976399931873431479843825408846115967270011738651163641898389803012438532674817453589952103570367398825179520196083078295489007107251698160017333133637936038995368754685038753967450935031195438716254050426474641280672474625789123874876157686665589970246821165270790014815683541135914546739498052822830740713973544166791289072512719169125219234923832798791144461762768431069437896745972920742291317211596198744666001359873063988213646974169740426448552855961948057870813025510329019033386952145044838245738054101663554635644435718998873311957070745116243493640026558003997358433858052469750237765512865650427559627338412846381059913196595003721761994989476445470801632891799585048357155681601685374424456966345320719812840054584055679785234720123096663993533792816107871413738803279563928396413667513045347399449449306117955182883841848919210787768529376533169188201496462913229412231399579442762533982388968898196053214761274760600500273031240585260628195995017653745843060102928711267235464372562297635656242781910452814711374365942936061912504277195059961298743402207104108960202231400609112238319553747782900007920000088569824170616661768005290540902814178321828188754950982514321750150300071874153358688629566901042065274727251718824947553845338668522303508255850020203132445795149730911943260446121786021911809927930923614657337483756237051980407141346319327568400790914166783474532240788445986428899814666916888895466951807360670586751198380238233749135108132428775293779953135703695869260826866159121977678881882593465693973818291294354370701093016306014362239151330547090988579320365335702054585661786706400069665048174777682837416825602965731823140643522175485523169310844623203585881099561562037174959866399214256622416233622161302189758499494415768478495513629391410056478959290306150513065201416758177362718683223279052371092117786030795530116461434202705484761500695541848041960041669304581724479311917443032535485242670606026552465123606194584474714426316757316618954413018445916546055771840470556888914878209999843906496704861437759104564540259735906736695753615900918240553756880866981734305641770490179421310513996225460432041078437530829904442402177793006069049296696174628718221129464954911751964037386462434662147900849723931986776963880196883308238861682017108287583520304023693611153942269874515143880219944871721048685118983887793943530470296621657302512825453552509090604630260391022718549787546085095404357430378516980175450036746445638220846659297298826018252903241052369958542676910625233448468478826620978494591665548963380027587281144369738619604878436267359777145256013558638716712725203358229137429356910379980121453168369374888672535900556542279194728750270384505159378067559881489869791560735493840455541280629484347732438389360825954509113390910471278414862146986359449053610011106083230967913622433115604511811455916633302304665886392071546579062839383821801615350362567770989637518499450099451369628821948150919151087128781430537800571028874185047030060578415293813154894099127900720641737534931550054810453400099070191020182823255384189386876083766977521909810424891002673813643800459950081929820677824212617186468737813170991963555913518736625945333933049791305521006231637632008987036129455469277702591577698130717778210761846762409776302981077018530206371858161435683675433862540984656536537589663112255697624123563584929770179133194559304991492671480653060821064209024173768621197517852519356527898096600573587652404725959796295483554904930007495268313673587045092737600110986337661503759718860326835716634727064639639678797735646497701766535883740640363478874118033977749266238177782027362256411301711328972802585093341111860788464878870375530634019535394368468923590046055926393020233398358399605657788866097223268313652767039289570859148401077995484753899770571681212625073308508139252244441441933795992120103576780134192268246700288043785274818627014666228783260177828141627641909351231959724585457222469303601591538272259395767520349077177097651801651189287807688898379572777822313666485880595592294565771627382518478926676273457601542288476642646879551560345104109298423863464235270430223518116629204991613397104799489922126109136063987734074693536179440372212929864266964280680026823021745931402903728089538993156118646345810177238283993032556864498219930044621199390712295706137203630088498130379684464386775308154398728674408585351007126121202841296384475099708737428023327931440833463688920621030203454706824083373545470721763025839379367165715909648040869805643325534824136984139169384592636186653360123975320982829528582252171535717436296921084792746539358912345463790371829219974116136490010138844915949803348574971557771924661023755349477533086487552126929559632578783027179470154818499670617430825709081835960362866028424886552293230976233324022130748761579874200504763846501458705227427105353804997918619394696557957831460268657381575651574834054672777898177427404474515298785642562361326615315919082695368238750656629003171477436099378183686888720657303988003590990873730116203821211717554878267797836634877957842895988492466700511955307017139847023922792961082633297762597980154690599718763088413458945844184526208513277051880777874072860342506337360074041860335809207541172950294222836847696004280140865068351197780647625657264033041410488901085620004401311497305874197030380191368158476400602443294726861119669540313944583213243089019221694205827723484112779271013343572048688771325799659422648789639207991756754838975200364908980235979086419969831966997570357832667650351406813749024416805249281474523261658474189670266706830558440793767781855959406781521038300325473560749666274956844431783084842399676691455977868671762138208252590930948865876427440027142478682243709875970425726683231359778171550078780305150073876558294439463397734735907173291903427795753028385518124553293897625460328655497565891685056362831085261082599720604982320323158583928533618251129756489502322430680334874696807181061966831643514557325812359576003234442806797984952253190142771824941814572500657972888953002891547390525720740423633226454617218798602652618342598480810301847687023872197915813594807970653993600303498401259606633877034194117534935644139460360167708127041963038583481821673823330297197465747262195072994288751831333622060962214505637473806557212828604324565496078763256395872344832845225234055031470362979885089702042573651595730317654622935809372902562148695236202197817471697624267632979519661680484790952431522171240266926784752772522574479046032331186459082845256892273801973628919449363892090483516557483790434315543831777865971143350624848104047668147953850656662771041306796250852440192020417192071512793234820640549093905918226078861448519622099544603683498865145631188735679502355439108234173358314394299443396786831039822060349081704441596490815703846375486485638723356372738820590062775719787044221267227721155027491161656449381106575628721149153657854363311417525227890348504341290521038405083766248736065750211595852695605329576311081790957593882641281980060647344476814078981994023120495460830217048118784553335778272987408237235299617510348750282855977376119811446822531148269116060561893412121391865513068007733075120027373772491321369346812894014617321130967881802314101502351128830941215816662372054624120665991057969443680161502602861443907558625706070725525166995045609806215505640405655149021308603144640892741608217283646978716779624085840967798720678028894809419664945634495862823015774513640859764637939234753867585499773756965146955321451792637362601718747841782004253160109846580462628831211014149378224615874482195311874052107268699098507195386686481277399653916884947506089515911434092544134186923885551374772791745920775103117523052802852043583948200722356099258737689263641191927240799797671561191669967042589505485106676725928320249557117084136794481895122938878212163294435609085563819434651623773105204537030560477317097763763867131490142615616575261957458025858520786178923143823661851175003907143890677113214583228528403234377188019759272192547921926520941113715791582903436982087951382515351043053090952756209000597427110034859570720697568999016184026105316245576179718113872918367273471214193622273667870876117171204245066592839124175808269899034710670049094419537238958814205119258946404472036696061364049163323720515502823643311360521681476178333283781152477291603544251549814716828445230940989386317503254345874944554395810067683713723683924684857301548953937501896413299063796404990423896840188355328757328044425051353703371863513441857109152349406211686612880391884171752601243498715519640272664545269702501990756842280897137074711023696513170653783538076886573631689090306124865493734553630827361088159331207479770509427862578494564540754009991000607476888935501519949815613140281055589651535034674433599932814739445664843029628297372658756008783782708939227926074914836440931172523619949320400553677012253470946135946915214616244775350124841697326989194436684610040297671617013896372402075655553267411101299394037646498346418351956061015339111910915828640410268601321687558592172855619728775002002442978228351438147714417968799444249806111029084472171664835062291357836806215142255746778668237291027143912847674947808139505884871088021808859796089005593142685008462552602648216342397090969721260592961914305461665505523914417165395161155498416671988063199585394903077745504900220050920127712001219703162624386879917525566537253266387586092887402405062172420736796728701665425833719627950705982834090704530184626453831884537935225099092937881176872811855044225586801041709177583302017717237279930830407875966968920979412209407125782892509795054516130905314953340304326255699684432469434840259862729817171625504578744609776298184778676122819770567027922435503440395252718362286148445208474697886510587100440040015198422572980925425313054953002356612089819351256261877721762189301547712473112737683572134403765007528727087365418605506347050715397900058402142878016675358583514707596709383763006786736624343941670638040031358496348288043280170341332072066264612033774357690887450439232988504809273254808023484505083446944566446004116758575978810820674675611996458548834818847017938705331285040062891803357926384602101453581855018127787195799267206061172225677659776672684676880944643714131006543307745892422278443923175607851377700439360777711328357506704175827334392063758580111080925191618558145276620908854193005092622927834291797235406400836924947545161925155171450059716805503182145618680457717978784939334699380426973916977875053936895592100878582389620522983947912138689326705814334423271105004790658802522117697903861820899608236218742222566063664746963244878072567961821250164874353770357989248195229100980074377782260315830406112520704043102347700382139460977494631768062702934582578942638716627369923160446806291088098103224969967998151632701721890758349892864481731786853689829131933937098711924679048803737035206807496675145758642979083085139833706692634186060067008071712712538258007476930957343681525784836445239065001195399102367757688804122802058567849466698791504573697948897252637680697709697056367500162857966659655844429154886315242367916208021361180675721736774836246909238535480534022198970726706513518044196678718582442727954101127579538372070315990543201019149563298657830882333371999424680857169028370878933287551391001956221653680983357666876888981634729386332546934702493504171841081443402537104112585035045334814393849116110496201479553821755137475047007135320070580127869128789599066373431837706995621153580230209733409165934706786047701490311027681324093532179454265660385813005282899260029266599612732667832853119354522313663509319219360232503763642882764738611972353159405272498144029412960524358583795191041912381246091869748569992993486989459291075621429014108496954161202199240780293149957969901911278832457188166450826804622066960319735188601431907898523680273043943368200556000821299895576817589162224538296673396606160531688674651282675680705665017609089858040125664853018652491668348134812440533023431055442297144761054356096781517113701294562890864553462983455924963708637845723656950540757905720853254261722933447941601579691440194550115330868557518556146606508547510563202356358288789951545814483392694919371343063892973694952441163182909457495571015229359809865739226797840416267631786654467383326621089316082429828503331602583648908304151408995216149626159354938722220989653262486084404905977653866236928621821187856861836709350776181163336267874663904141177527454894777777706764825053221567964034108938965791446448366799079746605632334137733004273014344762809627275615696738930978160852017445654984197566727477824704051177667142794433202505155300920686947555063727041317604786138331989363143946215443049886589017956255314435284856152111317034034689371488127846692098355354042382236586956674759273366094456632048499107752492774169709918433675345176933771421642254105377639528779190285722479916689417541288091722327211435902462173685931665746901065232154982861484198912990971738655763676208420103248790427121273399319475043844570014426765989722779410114628018134728651640446545053149808788476654915836210020865067023890794947896555446286902392765183246083382550943246462485575746649049329164979441302717020186772452178983002901109261389097266072108629271079389590923019065505352892689514363241801864545531839964048180023009925427249586736349415207832141574104462167196483896306932339039975551760317811621454410324058843599456879501750050568191964667525964269392311057265837227701722581016106403157822972530067899688417480349839165950454718053703785466436321876802886376529540157811446006760895187075468395941814969056175329541377683738970508902230418676061684969482789540528090122665683780095816852546449048413891191083006828981199663314270893327616178577465110417122300182061948437660331237783310062154037391524215812579741604299272775575159675000705632021275901613763039310868400312153005129597661881300713539052473044190025096595517521198067946984946350264286360182417449773682316674342471593223328660004924942516875792803599201182756060752135686518577758699560463931011037603314784357405769390709426147155396505530061313666004057015786662514744485135935750318205889413709225584249388142843215361160251904075276155098790536668475840983352319921817462057308525763954521963941453188457703357452412796867432990769526576362592263821455056443310850564177017247759964486640370485287490505490297760454009534381679917038798632210570184850414816984330408613673372140053536987166705737999190475037431668397479898128008806961102508231588004687649890549531272561387532871093736388409035033425163769171634624606140205868230833198124795472247215847913322835051049271600923991235225884183099984693345296134672899112908049753147543008880611030804281858730915977118383818525484545342544907842204165393073910481790462338277296706967142385535621701182757764028932868586146784460732475069565219793053971580211470124091939910497602184409959859993600314900204382086969235189860480732664245049631166361565508365518559131438045684483775594335888673687223032241584640045598253487360082800350750737318326745607116332170871871009840722508197197852020559831878313015434724139730892900314688544561842065415966620865752359228978754847437305155484157713840769153433838269773226469565086621973628644254436020787391510179411012488289978776845156002534221511514711523844492012681622217855290705149822090107031813471475099812665532959144563351512616535950592663979268854890232824543558472640297597463428734292973133710970492954278095108104909964462402782286909533746982621425160871051688534979908670861989373915186396857078163623961459255732536546116973973274502746244491897326022068911177085816070703898352030373574214277648760429606216621436378215844604182130472521241610193228909590808456230387015468106560118870602410499098861954746492661472910874228605151975249548586844894983978482647402732749268632994734973475887980369219223481176906841758897644342693558448222072922274947044036836182197456774388448364637479520145886994340737893059361056284316878126480128239188879833384585391339364129784640643367962736130814454648041508633275055318909745406494703321171650176625338836001647800082732839190319581917315113862429673892864337262181052751927001019119330761074286806907087430784804214239468044510387494962958047519614048747575442579052445692986703056312377354874620050639133393381427434760924410859645620533241462367992638548083636822429210017696808248978732264467342196769142253387922498288056911223084634228757991771000619086534754452910623900304709710721969328508073979265852512860269209296156465069385006951123515409209789667344974905835830753300551588909212502020644798410791726295881520048302444300881019616398396380987797692994811443061688779774251134745892022882309399028807040967841210279571838847215243594910792603251053384304712495228840477332738387819439560172586913883625927253133551253799492893755571528369907272372223053462584469494263399713195209536179183015951793305153019295357792081912235177575224544877248920759990344537951258775368731137149162761858124756391417906097264276227314902974113135427809018502664409991233807348827585963856543388242750514632831928546403016238441786157968879652910409598939170159734677853431312738194627126607219601990608887553297561221816139015745492514446241574117666139103670447443449688043513553261246311353849082350248572682581902168741465142728581105694597442873062384065500485448212958185432920865150634477614526826907052196118596483572273207932450020643285925904049595296829641631116184514615011496825493068076246449043385559498364452039622368350512699795897212934289012737962606958027749632910613830650992671586903253599037628682193688821522099479877229573657978887421572173074688892077339849441822792525660357649858469394504042001275799530077057068644439386971626756495109235963766272294000397823982998145646942326185733832381655600913235217201384792192337076578527414877912298317496117978791373048999321403919772824859124543472610185445605911430220071899973117974142543518921371641899311854788914138965029678161909525630184440357374288244527700695787073317363262157166319908520869100811568464700448365296812193316651505385197560207796139606655490181620199101553911094433105570322515424185561681736475246654218510289330007435435373956673079458226628881399731468032682357931471294398217427726799328194460804645861469897022936014624198224827949882679551198811414019569037810655454145147574776196616835978507153526070557363303371976970697924508749674366564247180987087213773565195510223027698928964072088278454042626999213991475235808792091726555673187664722055146802481592940183108967050741064703586723806802601655142380481728297994369442437945162483391511493319137803577999920142753755487369558936182186297234107365934290403405937167248270101340284916761222344336266599992873424890253601727004146432446836185025345408857478063455334378348870100475420264872947014970262689307124254287217697373725738390964657344222275005989833528310585004132500406822988857197161159242422121103385879403805400797461575282343575031946326118873827126174451151861402974201305097220311587458007326211531265614545282806016858262627890756584733933704435524309592349481999104157793356656476932784401438586132507554040194993208485336202239489520208795498418349774246557614733380307871282379200957160132187303897107074345975882494660879395643535262466360223457950337557117926286804076943358769940106872356105553161930536890666959968654421200188853313334901989126490126380848242463016889752518765002586465084119724239138942125830661162133490744961277401998221986478465729984592263558625542249769710658493752584406678465257332735781532592475974397088187708399133488292914430233164911749637186399175280418162226641003116994904534503933167540129899030128833898577052322204826721172561161335211690143447573198533899015711161290477945700303124191754830703335965031001073325395502949221730313780710661311655181817804076370072810092547166660025444255304387845424561362273108496056340736356109638314454517260164218694792324463435917827871205784987744298871768402877476787884817795100740004635763884408871024783584097570313370043596717306861145105396037403437038154881060313660854574672743635996279524204725449623102538643620832024689332669514714493550176193824348589325712437236475754792586907367927140395760473664378735528769066042216968740497398492472128779416998548414703431391594799496834573073739264712616995947422432464426812329909342665957396820775891024761410893587677376714858895636180269672358803699711054597191913506464890629750436511960068223728156347144929202341590249810520370805872626088581077621034380547401041630101677774629345546342643387059727418455628598812402072639667826821173558049496899554583629677444021285579045513093208950993444271315543491638542853927988064338729684750389917892881448029439494457167521494668694446854039509423119198674712660390000382859388072545393190399029785834564568864312828103377173656598563607765313130810677012623255149826367063643793221726410955455792012139382875476358867231756930613045204457983384156431849765532884068200730911666740235643694410259563266408213762866797190922955399822819104923122148572259126174354325737314138876793614470028675457164836846008235332435992949049867945817301747498507880377492075800527842892556836402960373257756582265740333294602350033822972403068417034177009649236387936073578796845619395596289760811286618282969540263089448626740694592374002185167576960614588167736263780478046803090801313387241450111064315955625304380864484326615610634089139699630658313841146074594753010982095146359100031043463042574031077719318218035930663646319465048860411888297230935209783984357385036406977422621649502322987600615141748624412551692475427606975913017382952615068765710127138548817040113008805681920544398221786759320144995001981194785830050272205699314925707663985444757312339085034686276655502039911194379734100084406856648164357640651145875717270285324729909975088706377379684290328202004243368307557394124120427760875679165318145455314261350337526852801144457902734195363588300246484593672893538198837854447709921216720151359729948121425760331620486861763115338044995529253030602228213627841332756118998037894187862246440926349925046850250029216043383592119873219038866349975475128790483336162559924394611137012000106987434949181408889789574642655297622411274830056170971260624148650947411196374266928064675263042233060860854662114087509582292385152762779665701858525950067629261953278993557167558557168459456190435744794006476641782834042012215402201801494876545371364562643220114087566188508071675931660280573255581502941804787776484429211816104699653473777115226707358356915810387948052105867249228981303882818680220181697788562942165611937035375395818514695744437572326656705627766979980719567250715287316115667678748423962662660003571950410402752277732174871084795614953517419683719433830283390773355567797377066439255110626102909459114739446825747812360935239491053889434176186225190950656765088684664201448359379095819266076002433221979181360010558367387361303632359781835053722855068382378323875672829478919235689531103738458204824277363866075141032305763732138644903368550165778650022966569804649989179356206048272118138314775639060632033888228765615652858454355782243590816726091287462674907008945968012917815226404435776794452368705333109935571711801245901521162479434779736092751780796053302065164283834319206749780524305376393020569186553390719126958632264328644011371110913384789592175503969084115032936534723864233930287022000256279260407364198287655453283003294852372257210018471507604596196668225887431951058287244190191220136003680472967921292199195914119291880052335693486832715382093208019730264580463176659356461736582967621114972805736661635633200870961845483923445483677974511014359604332294553834985236241168040916841431968582308051394714001260699606791023750023919678106255029732548934502144404851351167225963629959146994678467757216091213556417010322105690179257123666745222540029660578761900386600374918603297907902627246745901049808228839613850671561276006939934288328819761468127129601160377619634900825423128517213600676195478194691289216103141639057046435549692314532159661498787989024547168252043095155560686446505246291111406770520968990848626384264709413442524907043097730475904545660512575599798945998359638298946955519584857844128866860395692631780293651276414822194657290397001646117338633646114759229644468375482119869269117526629885385019337370581373322658481836196693695377055447003563151959480687191841505427264006227221900563525474871584642547144497372727425776147385055763249124212818005302065573024464340543680228400999454639271279109467439174128685607365037048287454844596031165703461275584577145963591765373549026348186438467140174230192094758286691011330697261925285246674145653441810457424207196222060211058201161009772786997704888167472088502467071271259475900578340107762733372484458284918257408632265700814930166897573914344029927530311125890298795674147530745846957298880983538150325221478224526539885235054243390327922363266779699490912385033299741531976859459346814354289024478083010788616567162763127534175354414819076717465356839127537831938519273371882652771239387190121475265281530790525183804530831926233802480587927940758385891409220512009809205888412041498411183074596540600809039261392110960724562433554258098108611063570298542740578805995724636429487119010812000364255065826641850127315180353463205976784111835818885888374497886799185674297100684671117173659068980097122847006143194472055613611488484223003595090995689141787257699802279455879801314535814096155012713159634949260960769459574829131871381329884884639801719971213029637562908799197818221480417986258436501266338824988718629829536132701092961813275071257295195083189945689792315552914406771116975095953491734641135937545716493776738453545994490600204013698822897951035605352639495247188449972389597452125090423739267019786968024845790266962380637576812432874764296657175744671172938957825098423696695064136795422187613254304134843250184140819648480666069610873940315853742701430936963426536947765436832889889129823013939651849596905998689116840049307130391343174917730297359452010463652402171536782525952523768617102929586471552995634356877048034007820407135417720028620436205716980996184446934311112930969624883492259064685509433078841152187395113164229808861201337718458911008532769051312065312887762468912417981716901025804538493072447898814474889267456276429047177850220471605158241269076322200350123935417312116936837238758322123915069509201653268145104236487875094895962234851097949730082954563034835027018855119837763144917891100096984753570463850486217837373957278885648440936466733638069240904951155889989229461417643653642928418769458254272675739675026911188627618570406662653185420302922673823309102868375011523648682846384492674913034828741925469312003877904596503227194908971439581149776938144426349856948229971064502548320957403716203234176835618781256582788659637651592034458079936899217053675003477422111725664407708752806689258038618076654393537026218275731867921152520969127440234779600054523131966088951238568829552369161597824102335324913477148734735239334410919517296876497156547450016694225194571960363486069123148749519229773056060629260911811399435885561509714419016585236431382662702699528607967343649519727840019827092385443204303744584313002308945661560840246042296829290877162204041586846118550729453332702707285447892660514449743441028105747573590979348173557365561976790985319612638869594026275083462665882759722280785928451801049681514207037015843631755806620770528119327685076543835880129821469038583583001184325080241970313546682261851004296232135041079075312792090725723118193815917325627133237062506634210201943254890708554920794606816864642878676217586920044009531811144562857720295854488491038161988455818440838037323920709371528670199235960509849314200889678455531306034098570398834837314450000259303426974585954987378746046091350604763905582290610211360966998077987609862686400935352371974848847830807505300076923684002897066119416915394220145983839842800465390027898847323240360482761609196781408180066781113652373594497502599565025606229486073721078438991242047265029404932632626939714623199432536942511695076273884998724581732004503453510635167766595923583126272104279761756274086852605386708939324815840494778282764080067043192770030145412970093988610053471834615971593720530388644822110585752469429168888326966352748647778063832806277120100846222074308664125399576828739834735335034898343958486901546296677944457390363970612667101721167645320688687942802661170302151548251968879028471964731420809306568520300108017684552227722040253408001251667759300312397589079929559919629151679706448066981509555980278962366597583462381815654688111822612260288180746165096096694765385991275175964086496505912469507065203203375908743675039107196394535637635545842634498120887111598436204298954507862928444196153485134733138499067611019692712375104679284008697799469087078279340552967146468100702567585933899627281097731777979600873208654339640513338961501693544948730618962616605379263714153393951621602682331916590810162887110051581199504955419757014277565347724585914269086945658937833018304181382317714143188228719647959164099007053576666586444305832288581802115804295653530063596109014686037812777818416003931907272738523834529958089155491389060443797924617216210389399462350753317787425364005431907612721408002871954767943966985820195305491781090397774861749486242980460903904767842285622514967871231138122850984483688432786196349901695825896392846991798579030805363787798276849350565352698357345485386716895853835609903412824905770502266689223654962247344346907414832983649939717891313400007172263895765428690472446699905577399204710003887635152309644120510823261995748784514530267899327098707294637377269614479249468544933485448806229572318074357792373208437028551042899385192035470016801093577425247622970193624229501374825328430265369985230584429768426020397648747748078783836275802143511940628967613607643123727782336967033802731980773324926454003641941457646225052077841767549319178517383542968372479556233587639436180108802851918252539980285769669282292750186279990973251404760498946615155114516960644171078609753534984893596858511468424414150415504020137380884634440143939725449044913556545365022063270486993651263900993559026032687415058846349477238874507205204267897704585351425631749882475759121575923006527642044649637370005026103097519002934697661946033043085025308713586033286369599784255147267260024441020877633120002746879090563007644377874237226838703850981088698375784486379942340399897488473448191073826161405225883949770209116577856868290009480703675752132209851975918431711384604845924946478519004443923935269943888277840220764535861995653895000792282898099487440919237746308267094628003049090964097385743984358566928803285492036074197747234348689577824430673373215583089226640872145790241308645760034084527309129582955784985420570317704878262165962411709824079877645800555642545864203889453844261817084728074300811754506418096240640996653900407996116763922840020477091020461611112282366769246578989440853540767584950590134239573910127042562727559653148620956856927324754980950173059269160857318692503852227886283894806656874336971817062876886032677525075525341392105833865484640850418656004563105572593516163479260535285356083835873507543942885012891072715310910202499511250986419991471885938280024318594095525809083916199336157573247019605551615507275018148234377362746150292366751959383028540370212959954351388592982392551566507235781786024099066709173486740692654976992210070738058812544918962504912094291085144789887280263174594598324641793231420946485383605646287003322400133425097334949220281126476387833113732614989419725053455601130314046460739971260849712385010883968999541199110342402753399446174678914093851433591636236679620497712676836633464906093362807247153145047103183032022558565153537489361990112180544133692162417819776883837118922762823756166450266954176901375521379784690217989165393444438933004399865784888703083324757207700696894939581101235742687804915540439286311680050582718605376383288907192080067026598800376541320055858941851461531061685772383088541135265128444918723517518689682911966257600433106653170368357275369981660801916478229222877663480586035589934380181311613648501390641036702767658804376769378583563154409957311324615887347474688397227529935467704833928692099491392741734411814403508746713844101471112291998779890186946481386979690394890823757822080489506526129394907394808137734487602419409776307427149853279816930350450601512989735650107444135365840438922722910277053878318450603308959734699303429838809500777169658875737417329294776220292219676893686895068470692069202269787627820628453922620409367606549344531777553242283399109760203195889570854893957242492548003750297451924530510326906253923872919040376615994313403658018293120251804464846192457246176721664712521962874597629490684335079424544196100455770991459492704318017054231496316751243911373438732320960999887418149315135187018729579420674095610338883878749045855364784250379246097455285944589772236433360888588503705598638013772219987042319627057059301684954204827958003505067513135807736945384244720077407175434028012763200480661710941712734389405929566947919585757550280011143873802886969387701918289734081292787963873264335218516481775104432371239993781149680154609711312571757608445356147373896642916229806196896073360167640620600497504340926907743058370133577113316203142374738294837596729505668386719772591084059055435260983233561976399256403383141102267542906893847743564803118467722239712157608111364659992935227217121565741058638924395590715253886197976248935394450762055331637851589274775240151679862490464876245797017382770667845373783804613450943425876849990126798408917896718922534686231582530903656153840933206722831118108374185024935176059489203303392466472421975365998482377202270109804972952862447014847426321072404934057982569114149703281342299846709435251819290969954591242629975027765473022318108264959327758056614007924320724994978785812911523902274879931572212405986068405111494255480984154409972849802500202075958123915571770640828290540253219706769872604748717192991871944349250745853661460287400365953090333922034634663281036051917002247516245624346781444199595934363850275513368154186109717882234501174457430838355210263488298722459884250191107272965400052551074053190837166436458009692994219881701853510368196794301169483076121629066091974352227971661255193285379045597794932118081012250639839864071781801556500876726719317673875265284100048023159023990635173826581673141032434907644516244726619258088923906972127625286994290139408523169753580622657201837581510172159166156890133640245446676499376012805763981882274181950801917818812188359198364885228022068924128249599613183729533571807697262031172929462381960117823949916771258462125522804549709397570448013142056170884403318252638242946353518723459347989518777730848184701539701339057126918522869596258320096790840254581403038975365482612627695323627223505776471081839690652354210029094032543110411040172822495521932834811833960971741755863634190805072411389920558534493786880301912447345076004379477818471251078935069988459714700760871545848399241556294966329564135307680492948260101019506393546321870541690764590228776667624880628045763536234212681334370478291269369648139563585045697050323671673372874222418523542844022991639397772905058382079571542717181847423113025199510283695526408659860099993066689930853367660497261303195133444707955112456376727870005801413300714244449780619342182306657731588930108887364548868987519890084154530425669716913882205731209184284942422952378404811288967482069312841902076514837114267672174939674598685749361844481379077531576406801909648868292160980535014475106316320580484160148138535212396953358683214014574838129948655556098270748888913161015067719844482060980007719270095949208450600185161005475902472386406069951134943267092220006302590774829969752262916764625874116860250162025733643383998814601760869080120090958743701763373739411310152805184512489808171394411532005898432987050919079896497393680395713469596205114142068235904714706079595731667361034424535219469033658380038771151803331213956199597414503856934261784639645029311599140146689929399531127431412285895856879994663825394621334180685561309092258624027175539007096471161989185440013994765297061021212827103913748018015821276360714642202581679396755033139608155880189446156555689426459021083286692496572887491536223750298060816006715803448833418583831203654965532698798142819464447059320544749095984007385906753976669505135343375741520304411027137180265793496464047406614704556635094667151060159227200334376954370235115958142748464997724448102025176644261772431830495360882149537958864144334158178487826764286859036270925899199500395681301299434951993920000281938177548182220570663742048096060922337531362954231277906089486214469635976351202269472218713780918883140213766902417195791369974738515218159928435672677966347568369194754808261075812410519006811340485108885356325129980128001181085938501096782368871509497662262615138814965096256679383869200128050665966503400210927571016443791929331984395604825774848336134650046865764507416725014943671680801583280048483023517935451829747795403136644870927724818852854560385261010417250782675446764437137820674886507708514227297454661343207971387640630185358318940565740817418671477533388593176452589750977250981707435569873711278101860078356289063709247908155904549112016289777043396669564807256612047311630023623584267568903618292800897394068536819795939212310038168752493607281780504593751851201584863244344851517068512837179562292720942825344873051593573926825277678123058031339434896844804612040613560036682820402626274445139210895380078025812882344830113634393603656592928145757303416208268617536883735882491336802162184241660237642175838821103885651021358920780438201339210073317656537365930547449795011067813791495866048968224078802701566435065680914961507171451273434427391634202363041067039427069361913226687870992209430878474671402549558412345888308133009478064073415641608258801136373310752551476468225587802136896071996930105512137316257632703306697333329278048348793685538615018558527017907155077657025294585379629111677267398211924676909624523943898183083251486396921115610590858188068473991859646252849819565463168039806977247158945407241528012441973959117617103071552682254583204352613314263813076548722890389235142887163990347399331083662825509127184950133519372842418193249952494366595472925813921208588352410996860828934178989802668779602049330034107174322302299156219132522399404665265701087239737264553070196373419503207762700934389179402915724930327982221150766512977027064766049109252119088600433426018301950474318270056318801400093749577397788792464697166523600446782658968145861125930233476883846536245530252126356940931158505538888151185288255203921278870454990464083862952992305982216072582341138463547512375264990665665267275196727215969147474694520658922559102978768070032243650402482333079267074242522003501441821790883910793371170778370118942751236937720977976277304082861638142580926600329117055353230650659316256457909699597294868775715279074301436772760246099755532085536523877038874366862382002595613052667700582985607264402141207521746435278577490844834537686917916816481499805546560974008840453722831259183324758107422909919143229065815417820720905536050496573341224954078360565496051138090500156653796869759525198778465810014233669453459883140656063075991950156718359915327340036861171082603174514626725874663152301931628355739274901673938454158806672707223813689914658656004163091005512560945165725217051557239627874353288121959199111039286638656144058893145774048463914808742690863127401865966838070328924501939265567428773935496235318538381134758072153596106199117641582088645740107457221021314361838692120789947860356162339703586084278107490495270326008721524907958656148850404781271752788276244253615019340170291333369189693168078794314161976681400977030849734830966243167409878034544894156728604002603366541581634656622667125493179965039528121246307189618316295071644283424607431311584687801442192066967341195128774160847122337163771255606343660019034851189363365701358307328900184753655570732936556085147473609393258130806666297169603158849020563451677793246665742797890219114722647235904964279114486900408265584557198023438600244161722048885396549636471359853627929226219561942386182385780461746815175147050841462382951278458733722327933776430670412176146395451874192834293865272766358551760000121235330436400541478143751495585551168461547236688867396188408609987237390507281222943492934146003539144191681544158413655957562804393012815089352073109069317524714836236914030203146975290470245815363554779248802158867019631801421909011094568301467106647962901090596836914559790807440241485740190681155474053209556710016917897887370354868497609254692701825136986113331870854358220175923427355011728229721815114431712511517462657213401101179739361764865103980403398214063069335808469622217778107519023658308486903566998060067651631018396794894660752514644678496796607917601723553860376659413015974125515641069445005319455702764712118059382237392066953702839655381436032147295427056914943426992177050914031534627026727000736372739163461732512470368763318096766616253935843143279797750745957588679970139826431106714063002125110647872819916513918541198056895317116707335926195323891160471754704613354934756647983827145371146383344133042244678614525094042671734850654147627765065161497870695061555275173364765136239226362669438825175485103779393969659936209102370518344936461922396940466839999656464072907642759582995559513373107569451695759238381987410767996032032586484837214103570058975732104893436367258005509364786211828437761471380591330703135174968655983322701594378443840879609060232848371394007740203042023423481720720648430485492161881452887962950773030649050795785795057429013341634641170135405741782480503242251878151530310864524867066349233069366257560769880689148651875973828009623289782823395518723574731325131419414478596468627607932404645446701366637694899796775575067154352422250556328746618848080634676153753854893266960213400290036559060618022981604667254744108612734226023841593706446008249491874667290085228740000479902088796111676130893597040900855775186775634887943908827845436341038109281048770784829896444130834841667022308791048343845337592465983201379815576488322554925627246113550820415740876683088256714214456364338186343890813329715209843489489100234706370151085033967571560695025570003618980053495636113021469917660771593242458989014888410404165951280869611665440063156068534814305966290771496037688883649914660861249068228520816761163298699858971974974084045127574874110566426895527455448187378937358178249842823016975023975523371480312737063610930315165409739611242627305521492835425929359105577019441863836710619524653013119433104617730779718628366219032836124803590368478766307515977380582155053810744013779064581686022663096808946294565843746776564388758863090293923031659731905183910466299152212775342744499084936464077870224505873386621236504982855303077156079281332971230257702521911476065886809060265457787412104214595314816467379783152137478104894992032388497643635228917024369988307858699254329629501068640009245774791272920583323108274129709801619961103904643086544679773254297840797074846747762087183257811164672589534440421979225610123353900396240408607074222288592393272673260950733489039992884073256027567819812614751825309482632615402296261950484839750967959176586635313147776216474284661148861937313073899456185422395418810507849751174129413634950422861585916009601726589236461805672746530926084029088226862961295421118199637032939219431054186446584851956548840332061832072843382404052813220249977366976733995398393958905870106758462899106894418983252662738684247242853230580951086608882775378509347291783825643002557334977561932595508905574010776222769201559046983900169492696290721589115886703781496129868637250979921905805406245819532961991388726215540394583412225223986540269134941412954325114155000441327146173847232902183040149180115608797355813743485016641529046492298182607926402572603070885100560799493738142279239989157080120522424532615316701140406582551994325574798967168293648581636952810206124245608921400053749905341967505512271084694049281605810761510868011719077692571449373239604849870765067992093880060856617819219615901864278643212524611170637171573372623035656002282591842515097251114770916963282051441857547049698631274302871775918887778245522192896387128212023026962042632635807020409052422136287685135567345235722963259078583016661154838112433716117342048907617853490913379115927787992322609768152938909834142400194639688044208480474196566334761291656839039766753433201370595010531536752726149247015792930602302068698111634737557615129100430821796822539394953979878736345064995130666362762275257995175571362847165345724844392204267358629023148339297611401321563782443013263425283157493543262382025465613135656622943842435186010459479062385844958501789766630067946406178182383355478636903032886574084974086055180919382498744031143705865049155659101651742764452756135043678480598895045504191608160904700412695239146888419282678877530678157827764056886481717178649050488956404900097244041129267945413575143882739943994050187167607383385507622091763339891900356972687194552965984302576841761562015012935125909015400323824938736761130855235690245347132241656863995464899231080550297392617519315060518133712040315332001051175935573121940541590114065439755692681709852682299889671441837204555754766128022462591246085158302730104565923758590853595651163336980364175360047696115072471589196825478109073197629001351835198426324503743042894737805041138928841671119350284895873307030404295582826929573446522372832039121791504241597103470596563219864313531278200436794005373266100954946826692309878301684503296524974398188723700865476228853281852256562270522566984949422266016287066899212913320389173890950061025366219839383084148069466730066222373243947175504487967906198221362304523036357359696998130395222915405243167605385579407438940072854181578542709536728210668794235855503259247043836643782849863894728445760215390590891131858446267620111151576629716360192549646416511507361150287682736619957057592934166697663944845051798561650006107927461704153684495314523674368321203970536328160747867936920628359445645489080026385609642200743216046013659297560121740817111287390390147562422129025867993567771739952826933907141400888103062369849161456965063439050758346427966644586139707644425475814726529487855673203079381647593013756435063280091934858418914368948807392561174187679489647878693170018494187415377285159558870424329404017685864143622195812954573824473670200731631622713618588004396051441954718940346424287624700957219521560457608290825031539659586068189987411005995479644187025318523775063831293124818752519538400536329734070561771056464826002761526134145656951363090117337139860483241040438551142857089506251604468564590953534851031039009557001710877926577318229984373007688455682253040893137131868069262519518579206166015931472927392025767451723488062547180517466655701227846108121610172358011027154239099847613937673045316209404846901222117936268573623342523482397177479637022140707472105146269265262683123318171129166382172491658964147230803416470965066605616619831321131010337950569588915640285158175229940255268220266080298548884016340887212417601952908451937793519494995636332035909347446667112777876757306147342763143683973175963740684724817339394766523838197305560109970406066177266464876916681322639346092257432452369969070649397882780752654414072772944371778332873321489922934879947832906393646945162965993496415335273410349382086154585170653702519260956691984228751937580880511092058707007763833724358216472408861273393726675547471071286395817893098855484099076450437596649895772474456312524269715503941624470536266429976223505056907501263600168603528353985327666605399904224412591485167039983129560327340741841112087238712277863496390564380682521840609012649034725819500801278595837711901384866386256700369885051288392600101190358631151384839074277005329293154779397829494731206560461345935516453283617678450722453820766301647735863140556079062642997260389448257363481465844698510238925018137546104915963465915477712886342372892202749656370673452690649208597111454274163132813858425356789440104110126515359497359215178756556267953430779932289014991128864731572706566781334067334604251752178990844991417193261156467775251421471959086187717612873246656205415144394021750443024398425517653963239330195783116278504012540119484965414721836747005029551188047584450450750736365674643127915610726142352954004572480425570938858544287548047625775624932907886011818675919996469495722278717776018878246885137829104263360408879235617723025814322934740589659147716749405138074072505154625969824485540562172336417412494558105674693322390508549100406502245261682464328721197506039193955966925312093778771244811943232219045256171532428440422385986919205841509756876946596106162206722568197197556898711074175133234350676013399552675124292052603883697621875026513539747071810369005634558361979803918572125563940063277644428835849331758282663452124043548587715961437913963325117794412598407556246242877273655455299809765432921501037634931037985273727201869758299548482662582616848425192081950400756435895045480033928058496583369201822249375660757863899502555326071774639511778942898184832458396532007462453008255605088268413785464996402714098270971812329334350465953808381976644084515736692987642194916917307359058729247540300051955541194385276841904342599651998013762118058331136504654455885990415476275982253636719685416235690925515243877435896330912371731880610598798156745337672387147474104835170678962393020427412735145143948908889390649418184628619427316972805472192862054373960915851561391265530474313376724764758817543828464642655115138113889246731929816366860923058187246128919667343182020247049198554426242335515859595412930267536403189062737340690004053280005290985962650344029214816021247191158866692063245474259214141420187926530657573124113162388453430100895140568429155405922094507235424045031217957838194534908186369094288965485228599146135831181105437442073000363700653799274341943085122291483366129876814363070776010312196768396503704176208958362780781223725581127544642578615748021737765900184704285258555320252403091156751736567218903837076331021631953676255997908301077426850077308426441130089109938176362003588522220142900580166014667161493776990248652850716206836855964920830132563714378475604750278937508952828092583040520057482863898870977867968153879411832266441751509201261939658155473942625813283694728066668880409499400815860971647662583567026434088128977147371091222970639777140414431618851412200151008780506683997227517075926168355816750587014703682177330719880466230516354419678416121073780784548771304767068828755918898807858572867882802133997393915466416963675868765798007564662388872468394969483097457447209471321480251429664998529889249312648968292617275724136090988725675408534776385282383258200868418984578765129085350055987166079219134459150279783960223173608842400410873431162507924308033087897182018046571989053416244045589583970899104811603323631120675362238215959221026974752357469113138577541185331688718517835669124836836021307179678119370954147552881883454611566353293421500738537428955235691547867059031593136230936217472231238576069034914036823650452903564017283034480056181845267103660541533221768998388593893645278774492388952212629060296147788678853307170898821521923731563317631103897702473492359996019737756979067867614832937485129074848785427929932182751892307814582815322710935685054735280928616730582526975577176098842372596519106495552205325839940002454737975586516170508717841632152187666274871194091842518116112613341905243841962691828982128944268317246976848576034998606382501331742682361516096311082435481042632215787879039844916975288729840339011760007182289154824518767333045592689322028064575198383003422363948112503528681504011780422980410642699518839723897508676309486814497583998441297981772444247733182089199432851522653094699499684524771361835637191950855167407447785464177991116902019419823060954462091491094531774025419721448316414439930447685096726971663621027893704733152618027743400835438787069504921011065016303822785379217572350549762477548421919270324992503262322094406275579143982143115810088733235451915056176088093744287914119635882851397258510600462268117521421927224457189807188930340115175171509687001838516022856358568952770867660753756255064891496319335207249447153214262677862260373061958300309469350144019305385052509418739309948242814851150243112681759361010549598846502959918486341404574000635707630911046062628801326727696819345686626039505321449089291946149446554069877079924334403566472612637208396489912896196851435310569809002921586056214788836721913695351329587187112618778997273860915166794641701772292400627829030704408255249794796702346797574305843179093788522723152491730989791544052555992067462135766470934678064430235245832855084977938237253733948526464526324974039570928524365155127929067208540109200957627501356150350454827231115564637077654211772573198331421676137231263338998342901031289156697819607029918168351451636381446197582419847208428285993614156338824358668418740987587393395961683392224505764302764714645436560421870452488671686849155795511983684771258106673247954186947841329235456500618048326096115915982169263711882853528660999584053667388763768975079994824059941784788793293974831652668297447408459348320527572796199108183435396540720523235300114101343070103012623221291970634145260025530930617070989192991597313947129399187219192408960864012902220939119509915665542316954227125818757964270920809879106938489304902558191715550560378012374410932079907596350409468629234478049217297497306960324294808770231374520691712198118429851305365961791779441474344071461911164189411354992366417658952121036552400748907807450891488895501660125144730576634559003069959052825559169310041289438348955536969034900179450386947222499797968057263034664892565647678576997503499099124628636430071636187802818811360781415806297664303794128907505485220723332300179801465478172009749610389658040665768534663717359341593677126377747474466711225719278782043819777928081515189762639529869987559727759490481229317902837211723200350755090634648037958750218107135760793506527724762785972364383487295728428294343241820950360566279840305549455583433896778231768832569732908548356337580584398240903963945044413000529201378854480977158382927933463644510402472818231325580220899530290078504639884464600110007796655760603905028461946433744922621390102534034339239839477300564707549429087718172785184399168107762229778093716182048681342833447641099590202073708671553769864802386807423622623607684945745250986644053692508087344639869244237137518233994120624491812051609384532788499061271214921210154961070461841452320150353939051853494022749797625781502825609840001577049864787555444582022150119377905623910906132055248866790362152841495902847060116238465920095125308633612015144452156994558704219417023259001296125154328441597935336450538556288148649753327049092801587142247872320823143655574216076204408382789576571552780320392452912678182621936994961855096362601951677672879418097686936034078109704883767717910759437981703331901063727451939815335389273242911091767741830601971442984429464589828771476612544257259014403245361215371590795941019596219243075705073369725848684480812363855599023361702026051554051108440846601843307292029949344159004300203005978034632031525349968947425357217831105181420776635927012853232909579916704789674438029136618016610072052484523593199740766345169163418153380124210877827165394426170953395005573003723868659336759986163407755878514202313383033451155669606698364625114247612169434606941679652639481753668679306584571651441912265365801143709888388141559857293162223283740812114512913172315275937585784178502227403736708236732359118161308742885611510919076606591021675305589268821960695643157554117101001638327079915994565555871387210508379538665755479358024437003825595355244566567132206087423806649546089421929363948099165734787159660007150597386651462152959965021927312333349236855104953651670726620357788541424678544414847449095329062790344351415706265810096972965745044045723309183414890651737201273475706512478560947567221521179393819020805039063393119073803312322623194959921397955053867243378843040200638990523019234940453282183955325928203205303651987011871953529083449071880628682195824218635097239434187317535658748280657384580901095073073223930535681643723332091152473197628611221934007990418753246517418530943793169730496765917420145996738115329060036659406866794183037874401855568001829981003499721207865250166468894429413501568809988653753616854526092839028456694226680393512641182318428688247796736202563447082011423423497902891437575223047347269776499207867187550875263833442254087568674961521581845933971696097482142030524909139947246240879625814239342978963968236695322443053183579387862140554055763035524139503915317068248727040071903192428016265652687638654195692641253183303640366137425234706846363917033710440632056566152057220664812519246983402752103247005975272214189170635289458617734116698137199223432924283811627201453199846622886437932898242515946864483008910837680577703511267825118491739656179480176032065993778496545471070029706570001020324539251316852899131495910739746206296457574506232100869358284893465804768290361133949424996614592877319607146072003936350208233951128802736820329958987470465765165066447670782260961411607648949464116778602191426373513472436350597542019045800718758140316530645177232974814754545848134804359481302978566978507826676590680366377315835672109910071216985724898076553211073210744326882660277150679667786547646010792930261703817829656855613115607448663127436824516351206911592983021606278254805351247127040207131510335829019173020329901733797701478660065937611259602426498935542219922124231798266212190144218808624813045086252015357154648645338888652436864947551797994908134551753640568286586463007388193891225678555100125021501319782900748254271053309474370672956249693750142802077605141403756011316669187183467261634738919335582746898508951037972799038090013880138118108016336160300087704336280410443503418071051844381359083399242908989154071463773262133948538045868422102304347329106136878921912446840561549929336785028799205270805593546293010461717748196329151864778730563325190334376550850246940357349312064930434671053092509919606021670816449999380383560846240516439220978478029020431252915604235496392842421619519324550721318616780439251024649326449323992277203438155992971085753863126059486432617707628296772379391863486211211153419808117654354919276505385726540254768348380401386553511955943821546581807409519133044584180497969420705298544040492429082754117956102839352532063148845372339954677441660834095130865547408729896944741330067508411031804218899694322278211542552959552847681381628847417044861940824811807759451191671607955131749439867727787313054647733812300985294791897049945543346213532538046919972550353310975781185257590438539749866038311084507624218916137739344906013349930262452929073209751040490218643419132574786728415570327040641221903354123667424472757298173687003076891281905132566293625815613919379923930744200973285471539688639972907953678768280220098797498355228704089878412998993395548300861280941701630893153425822812486463284249381294714885847796663774756106883816219809072140012868897674515294262972255157574254040349647153175399839993283050163688345960621858353739990969242207880621708824998875322032388243689735801024372807510714441999625131560414661389249564010183564184437223786755085331100397778230050325596373955419622449329721124954343512190297165828483497007298463699134664645022949046702066151398130610148242579948838653074521174621807179159706064217147893704017829340509197700008747639200353469684060780549125430972226046049685068022768027069808024189904984535221712087660116192372236320779229923723204127014116519478299465773147812001929578104560339370844112728325531600748598506800591287450989945656961409975996011838640996110516726244855035950092650039071096845254580599749169768754454626761392655551500675591096146621995251062182329538152515564137411608474117970215072304676941827749425787090175237480390837434146613355209919021183645716751796761521703833119860564424880926233535053581091525368565072978141748651004725147253258003587212117249515813470677617322505589356829470752728909455412427982963090934306307787912095167660113069497861435420216929003797178145465705447035648759038114680630728575897033382308572698277580768487449741570211206937829679028563634722440701267069129987011878689204710288222232234005653908071299573142967685028089852912558897211488689311770149711097675282741501187772809559703667054885649482880807299754438026014102039057195583668450577092249822699299460033881797724755631022013268742232858022470474978457540595313487012386009312647794325033839441452783177643084945750941870271715588180523200276122885495569632537445026978114880684742476027696990648491942316094648183203797115929381961520864127882079375526624457103011741907189628115874716882642052990182444176901400549832896859802669988078571450369073270429830784278921706344051188859379339836344984245781472538470705277911111586823617748091186409458023259742202209423253826906312331979555841677371701958294299651401574216434093628322597151783072408038217629115027065414869823175619763856656758419925982546328720416937144527270770157109733813723232608413410397368150388746371292781700132249647410785376689519229165153994585441559776692128820580529450147754452229421985994940887303789602856717093748216430530867282327821699677936682540578846169190131253712032931528564234748542436859809283453664690525246045730152112290891725899845158205190973172822976453731264474541522352153105807473189752181557666712059480375345690027240308637180442738089418231896232266472884646053856854652777626148079494194708070484215979452473969341433956387483396035587102177358272590088172083068376391015778518749689697945118410364471348165692554625947067821618927137027871572362661203783109926805797063112549568106783123975417631471656486327254623980634710950292342335149358280362305822087642013834909122094307030013836234586844847443269791278517058012108084070668135174932205137179260803205401082193200105315985561101780121003336833896670177143988224889291978450406296111177855169299287329782787328149173423713388369078587639249897626033657803402370754416697778665735596487409745568602244903027331535268412862638294708847453423569047847991478482514112555870275915423670969098019090618812406178405063574751057688424207556862433215093851013056456358457369707322048202813163440499785461807467634644984382284362075902439016001227318958389516236569327224192338170270970025960329791974485638862554068543037999092379210909931098097203228535058546654956116790661065846023002108395839667089041869740876819428416685810750166635080220722098412662833024413730196285182041078851674849312957890947872803324132364381700801657142910855163795326043815768144958003296576860912178272466532643117049856946260368044116957580994299786725284677087450213376083765607047139083106383145564545348449972764672023954976096902355188254203952229471423621332726016607974461455306444548979664683839328793854212702327056033954041467254594737940507880434084348238808998271246086359447596273478377456420330050118139031064135969622729574813082174848129067283177398893041106041767030761000275689365189538955307175176881497470831513917219721834919901468667917220957827999293639583992740663565942070286304798766199792377012546684439992482256772429321064708767552044530130998135628090184943849628695978916097238431242109903612876689117796843713024328841529638439832837092439732917937189789222858559805616974897671365839885022852695410193726697451790838512360395259480815912017173561379585918915975664614882389482292556096217172613402080069459187926207295611330776470061297244754811477856446925712953308166219892818155319134191301692952059253718613386716899554596456828957101251286372268667245462068401915883543714773152801484725888557166499624677834656296420755337678266017950077736899354227167925304073765729569736474971688112206062160699614650187094787487778020653320168344064759899262782655170177998201452486862504977770950222288487319176449403266866373763859425654893063961353043813280213415384602740736620515008576181030897538580699933018554334585840096419709681347772292955376425941972469993809128814089217746963932054428274701345928977600606589516485419808030386976353122014798326416251453226720636262134761723057837725749885064091585741777925646330531167093101696187945598582430169060989339374967357258737013399427634959477867547319348877980521327401378688465832377569334902459435595198718570113926548706078292142883687382547115308627834867664824727596072524993066309482359900509274871684185531442206958998148299423527352554797937953557955005085463124982879960113902314534447911726951632197207874921607177225452885899526463200099873718147930953171601354015445753289974227342855099899514410161130516220295188722667700225173320628201913723943083167458983994560682350104709051953680743572312440376195085047426356553961594147431284020353734863102623672295494419408681085301552711204915057438698426696397010271850756748445321348645775553834972479549934253804467673082837542021015379698500859010273002118757107930595918163943129982756647653062335317829550722716418223783035653873168465008456546811666010813567549217726645230931476273458080546197002868548069762706413732230150673092419190704168033010745897944263295148352137892552353503211033333218307199417024059191866504032759109302952517949863096014785100140302943770998480181719082113246999477491096685764314691626436495443156814329404633555072537007221896770270346893567707248506192191476826672167776565960748519136566876997804615701492052519974879965557800766205917268945143729898848746035442048468118361722915090532313153445617027590858033401030421160830480370324518469386403892733946671289263625506404402935893847898252739881059378376022445904316743738269564102874635034051527289107284568244774702306094500708853201252426685846724159424465428152527619875013934601874755634850887695752007255271690539927352900682821323509091375918265549968956123832220823375380015810428897125862723429304779568115034812944359256988700549607006199878373221635655019445856604426673812121773676335607733982559023518184393975016647566093434737619077341215168443282754616731559117941502603844796567484354084072928766669848051587976451210343305550764282896188034928846231159433912491236027978456456482518662379253326358856100798490136891599394272823042687081031809223205141048619112113184212979748066274130489126172204452366387250006764840530371308306277467468238356191415491729263356318932387260835832487157198802135520687131427143607205175364184277723393630072137716834535780451478590108817783170122297967326303571037896828095224777794606229895080186395296916823936562651334919753057332173604105654246568164803156488311614378137951993103190792794491638051012982196449430908386810146027295322500389453320964874222397159947024905519793430181888541064083609695745095157686876887913454979837256401697879520110603451884045987773071112949171234211821983329173838628527438485141214313087158374455265189152605325885520345584754130404827289709218110429873125641711617953065880638542239649798748119401592195901347644977809414071315616248252039865680584946911464944582000664903460818518960841996330924789372762526392769307304912476556613376672688227075761741955836464343707754475512043346795224501357872518631027236858760372371481787988615310868580532886051888591979207529322220937742496419608636241277362021515883127942304307335600222357985358558712121704421177271174779455841067686363230474928752920151038660184203222819441828371468544401010409394498108426343483862746816189609410582044492757993508278540898241350633627092216342031120865293822775295865784226291726897042372602144408919166908100364701617952591645335805317517680230246941889719086087126391628734729879522829627147969633780328680368774885939468486456653769318627610371660793536177121632902520950888202434993562394608662996620889350088402995772025503787259962300951138768987494866220199883054062242141650883124310557325495513220514324968626876556928350987620122639745737851892145254443605450167183982323272228469886474335585916685808397696582587760484026735778904769642854043211042637554442454979300888113032235987549900352605965559175186213186073609357651583492539614336565148348588839203488255870777910589344352365189717217889262156939177541264285622695896925906334785060992232392627200393032462244147479203160348236728722092498462742468118028657078607633873473571522998426495614815082810303736602691186785458406661412694959555920670459318032211261241049790199912866918138440633944927826614544845750985194685264272587639545129535960809994308879316458435540083311667817514482730071259297896426690405489478431892175814047233820175807861350242615361711259400023928114943139696044923432310167955210730767720903463042807539541658097979040862794186909914689163458951374825817669814932024461779459547671670864281197573826334667169726220865487362251902820442211569753615288646799272854043774187307788184066710412096187808093450580496372331515894881594910840225280451988421977442577685614958091682351994933843317150770667224481031660629812506429042945191136101194672377858267091213027824713488717810450740866464682583970560808391596924527279543103780445834318052556720853472752491810057407201547643505332195434528801366324991013228473251205319487172245844425006266966657922502546598020787920207086058003070032962871032024490990491139335087731843942995206719900633751743346394655261968950925481365419020205511255960053097185426685005584428674669606200883269895328036687463660754325150213142287315971553367552269968647936526202372912438590044063706629793172435608436176826139774265745419257997207910124446772285738926594161984429115883509298853104994543750863223231521785332150926817310909854046172066591395795509655200875985070151812051027673666596973690948328224987483554299140137120061874136845311003165535038419583377166257040553357681451609065397162159391665714340609951302254586609492525194586845059614891994416142994839180723618181301003128048127876378236290975654447509549009605176124760696680716653009505468147439603788841137564076027709267330622679327497138926998649489477298976662777944561808374399581878913803956399538037524571139630817142374916563460139132334808514009839562762726603722130806947284042430206547788054158728638890692426986525945603989984801070765401010335040760009093105441127475216728019378923146687086847171378781174470689530293126600077518612728564723967040224714681331175465201626675754590953028839491252369883017728294400630600708829769189182631598233192303125370991933748766755380427139013063541608592342292620260720894758640326864939384748004871258598605871725019232439712572644916622411421556177570652099431310526775527952203046588165626312440330629261308781086165336726970385778984313828234516655623689631013426865408889509992153818454490619228498143044810308327991038753531106545883953288020997511990040686674594958054850156245846190634467882316748680072902798004026516990680571581185971406715630123261327322912862152462095267891393621497133797044408327354340193015870439349933732217478299425733357484480705205823751831239256978241478852493665265525958963767118764579500846598741245149545855939135403224146572740054069924609797331841156727876623776926697204055507932044959375244021587680982608262417454079947345043176571331613855226283193314432027378030554078487693758567170975766439554033167361638615753792865753199920462855300618897778319986089611671200957847171558269696740644786102955498340807317788409531594835977294091875127995947883207307045756214522853553924962070708867847874418215752230562806822860845469573725728754737795672919044151751864072522161266750842844976596335311305785868598142272337765533541156120831210527966269236732000835897417621516402120306542381366848093257905150401121656005338331068789992555678993179974558622661595352156908352532104376754287073745986732609549522997625952827737310712205528997268740504710369865529540424610563684422306082886064510141902000548701568788748824466345771363480063996129299482916321541481032597862157761100321669906383542804306795344920683842769039739997610885333635855901016839820116100612174166768646576525002222148151052612585386485177963825553930777765423725938901238134978453141412602962722030527785393527371999572110949435126885711851430084722261919822880510835798229415582958187120039027996171249866374032252058452859065097354809579324657374063818517016699696157638442392009563599956214204648943266787601253178274931077084274107427266264971236484571896547462654862966582016209830727917735868695528619568702609250304686323293493203730023553998609448182482123781322997291682755391713999898412821940033292563472746955048491713367522293180510712258174842114051761423554376096811595636864463245972288858260903500571149197671676103841676715000186381916357518992891632401817576251092946621395171156213135116054315195522246716689798093630223786510641618208770643343410271925815273518330115107924384880863269588742001310364091969310894199907608316277696638450111990158661998454913402827297678862894530244125267437060743063552426690378840469503132552263555231350297200965961992716278267648923710313643905527052020623391963011493071359080375730370191016599858510565385728779878278713078049705317319403667961521560860645855752952740782874711147180029873466927986421890363332327487121395410450447982237764917387712392808423571230145462743347621234942026622816038178279687831361864840584010808061505271325148216868979535759042734732039518590602633691175997786672733053551734475768677125955894707621418906408730351653081544711294134853843309739446810763761681567042045787150248409522270702921687176105677108750684411025437127418253238172181001025156436723705080030564683901539214682244802795162544626483652911794415875449722766048419825060396193751565850101390631767821919192557172815633470291412764332712693008507852109465701280394349949371718430719223547267246974105723014726117454757135439711632023143731301993654170286453382857478768568612145593079787727534228157216729094717250153704628523757756349635006125888678088411997932656628702082506719098389515962217879542470411738597782118428442682115911301880061802752275093705634264611780665332803199664752202737859677220460942264971533154499859878671525234628316946779998580016610438842668044280120077376656330930314638243615760139863511981612311378244771094400915943045624466712484468437045418620274880104291465026672859806914499113987602172063194678402428264904822566242212946425827452130846363442973586225878466538225464652593218075899019020578084949123446647224017110494643349979869143086474453452507075513557088145384453043788912251732681371892689902875067669690720489818210279738530305283363067488129757939944640933801630961975665603494844668433014906871550527085454373205628035261598935794945471655511972605065080970101789565906731935334342028238225295903652287339225598385823968277577255574361830596166464205149835763720100753578250939166623209282335880648046144120079949295331526914011519781261739619130558309065080840742899121534463118498625595604389216066771542675394158800706554154940039331599005569085734446395431403842545989855825246265252721365341176900024498135739508484450753888900633523075317762183991731474294028503326918454108454643700752470161523248720926999520059332552892818545177379449647402387248787113031643097882318700781077974624589926501605961898290538435759615913351930000829051601189251635688025881225186088902176798185120211249788955466075409081982134754169531361379064711487681905240135034140769127327865736310518371801497165433215280561409944425179449899449000547314620549098145947820217138905315683944543855771986977054305344490829164167663216727640758933342455736953881259864925052521602071554375305226617216263763973878938811688080832128356219621802263620455378039394827133991190307703572090165315760142166068117764394592885581060158795854990038218031856668083148163675369597986749679102261470567937841531150451733383788686864751667069501466614758974387189304418234509657813045798590062720092780057691894689552891084019963758934213797584753249253896775842341789046598067498252750689558334610672271796840093672492927156444690977980952832788719244722039706629623587408549331570296639481947177132248526661019105845673492835213278607065876223929049267585400433608236019502471449862944104609759502277455297029523859647409980200831748682129105725283979653908165498332006247870362791417525819725733703367348398720954264955167026792869181596794290255047891441731643698956605246194933252904506427412437088118813321623403456166073983734427291454510808788067366052280554374310953362921963415944695146259864942315381729704090611723875696623058022128846892475712999068194701037522706181047044052144462142816597562862415421358080826103834779828576760501402434965424208902606837365343113817864739011060349963697680147023177275242362629154783401528945822987237109798326561712239426168535516068742124513124902520900490769484548914999987427495600043996809072971686189162968092417462470841849347891564641336207243599231157085454147156320308115233007780869447708112116103409039455040840192669302279595731146541451513592671523062087776625401569781190318077022640488703201025949993852577300644922008617696127097439929714290510769042180712481283408996909054818835571195513487821816799386547715111680896087021310401078818755994603721878114322870749114026146225515970774783308642677401497519406669535631676127288742298818754952648465264151317574761140489667282579207008006994986694142332794864710857390462108877593430245679976628459605026199309328504960711767594400193720511620723601342810010013800304778514891639284374442964092197758929880151068601031863419312331085923079639579223407531543760833873749296962578505358294569554908329692884825053507223833338292485337439276064944483724078572164623001238979826861148685741706354029693305860792356493408248467928984815094351134751955504165793903595540752187392435368879107449712865013206411705868998178551812114469246588666205469744305759134561036793921193208056080874952842577010413201493145422730663144982550714677932327473690917443663258627062447051459967386070783923964604566591301349720674095150740314325329243984488025455789173380950269705006522297319926513724843267477698414891347837244666502036811657298223307558035146437581039223732513768923725859433827772441095164762074447705846123844768933261756416103414259845192744744960372131921186948348910789916114682106635427964343879965353440721926229561234587596616524417448763212720593266637580665398854960096059728102344007019335335271793088228680072749502711080894249933181762330578086141809133327731154333158486760721035341603152387853633847042609765233321334561376754747907871712045859668496120277029146962755421369339933886345870689424391157056857817448205093746939463448377572308318813050642056532931995401194684675746135376641612524374546667120034590787105838861553717200432149571724065996720136169054809734213519403334123236190439813084682583476139275151115746776082400506048318368902652746722847703793398302878345342817717017358987190256175857790285970894475210342762646148935731608522820947448431531659023923376611768736310382059103258448757930894973114532808179669752013137423242779232083956940327526542789159729528235435152780996985695201772083378648244337654186932898115087131489191915382256112219296795545272937187112121645131964690331224875180456843138932273741223872113104707650259933367441371517493466843450213894892038502739567791288250331543295462675562263677146095284567896463204244217942608956320811862460225397598372077429962765504863308624740207430880474310715624042402485147965861646550265748877350626938678076480469230455265828013932680854066884106962909980539938578340073672620747072152026968777621555251700328715608688194671178884020995563165932798471581334890845782945524645771054740593594283453065491836619555935267263344864605715630530095232318904855944188137063652342082488562602191561005277683399014329005143225242531369809863124626615316082870499068072577816978910208614944328944124454198283227140450664062404656089895458095324363039025936550941357079499474988982989759432457610790740409947880395522619071888931994757098151614589072225251892291572709299436105581164961904310987850404930433553249921315910270855169654593500350021940053033667915528942059604145259608862830023330422969536139052040412203731282597483369094130405780474514571085597283365729640735539853817014515715228122924270954095597451824040079857284006788681274658266694018049606610123907349525846325868704161266392603012886632264349205946093062328702512736199112779339991129408359559724662110262259869377976322307410159466720081535220764970473147610758207702051766644407671153482257396979416666711025763832121234553757385387934740803307139542183109233648301027428306030351013166747760413921767139681581432235238021177460332510255879285032576702905666506922688973989538121124964148375807495064734665946976144407842428555151169388901195303778492549527852053558525220963755458404690502117258130525833068277064927438589016962104539413536725427944377876132974274085289816865394271641375264152437021372637020595655851596608988694331299375156806533204829804663958896041829635117612578174597952237856472333256859869751091916830889734640819246526104884820020586857832134520734949823773175133323610386949947275184818626742515137063444614293128078160299035349771848969541964101508453141700358948970096918203171979158785053436812433249828801453461926281024823316020698694939631984940589669719736479783541163845993745106740940646857127474329340658765123017094877484242909389490077930677015003371126449556074613789527610774902955812534347413543463158786871286433538604946728726397635915837005803162468343076543826061098276420319637467226595955686290872086049210151288299364132773558421801975802781529470195987655238640804648568467740385969207481252739407135935573639543282821853297678634347309899971159807501499571199393487380194382110129232346941034812255170638817810023786943300950066825743713597427315609070135284744339992601209502969279744421755002801910542400261229576826700922169457412345102682184887897500801056264528090351931167993545436883692943693895735223406485134440067841107741207819964734254883415304128571061173840003819665023963891012247605260921972965810871206634921280209993627217265846763039334583529129602749330359615754161388755585255410697372407902691400602345503492885239599013569229705676149462263739388648437089766042591084238496747375133049633170198835056433320141096187396618624547896369041700529545315974787575497978806696735704512616392811589556616944552974232588949134067730068005416435986882870247608185693128095968068343821607023167475041981402236434091365195186322088940669461767659846417427579644301682185293554718082849299604377699555457039262344038150541464302833056187965141207713334432566662472129248807677645370175368933895038707136387180199461918894522838613092250816502752075653477794575827489464319451661963501549849085243259773101674808740631345881594206607701015736598105146571996457946185250306784739839136447250795154068283553986137690084311007237522840678219961163357265777680797145485206801355516282127539802817083879274558055941219254990629467266472411653261288803400167773936061581658153932308576481670390545995575837395974380187337655253092395686494047965306345831817543106606856993390952785850647089094225298182294436065593524835861818654653368519201445785400121764116797000298537241076618919417960373001300191018146131121082299380844676383488576585598147103157068551610250040179719701969131968791293304810581847714165689765582723942965125055395280194602104857323899355258657558722365076388607619876407559550765853448199253345810336700419418789207546579215360791181575069331284412307934523793831141131587306106644479535017574369483247079491443751935611770810621901159399134293590193725970444211816376871495933739310027244508740704428612771316688556410134176361981348388853555094452475519590310686218993848121758836565628542367076703329778961160131717098198941152766112902827060137393497792379821066350888402497114604129397867740417069107985572667698742571454141838865694058732588986563740458957748870345130226923840048997635961944829428999729122037799770346539611736882145314306060910214476415452160257112181314365492003857585604573106815094824822834039189078009861024748976046326009594702856919818454140465752540114456522701316651654579391605006526477781926772573963900462913736894564569274998230481856751224403359272956289743749315818221328257500470943706372812438070740817021156554712532900214155122721522656022348371981875228040725433138706456732376283293537894674090652532996091995402770966075870741461562146233188570907540078309312952289579231014968440777967175626074642820650283592621958995250688312534464982310859030439971317027263465761214619616323037610813634004846545145979508996048781482501498210596057533416910415718374285814496637205397954977169158426113450389560904610724686426402145744403899825832335778926501145697552921701695802360774544625668140932796551712679684328053768460360163577818840839870611961948287697486507184149267545867531430049993066528695494596473373502039266467349167415124518226074571186616411490729858790669828591159187567973517279193825367213385919845431706454611277352319382459381608833206346285524520116997361885100382036510643696408640413298580860133371984653683638886989826734208190801092193559674612325788548278870957754045408623624471835253830083043010064838844108371509535054708766191586776539437710496799923300022116205219572969840871249003404756661192593671061946738598092625108800865168479619191497070932630978663053388374346516834972800587360356131981243510170925434338873375001531223520175853929194504558235900990671040558860961600347636057053386718979982788092590144711406654287130152201199826382610926899409141939121518553433674356448192981626435027521959151586847503467735805286792283580373180775330297958546052329683647483293582377928213619194458415861457792812650018598324985814351278378104643352815700668335761096127368708615171672802682373462692474027288460018551339931542277032618587049915059058299198881101013263450278390158021818585049665920306031556511840268112510772559922772098822774119634632412635952605881305364590898704107407494774386219766996397016373586787828398455789533037295960196668379579152269686117395240302542144894256952555614957652080851594801719298945620181176405395810251246224983253286284442861914104699224371302678437084155157030246426935473221241816275499595775332414809045503528748746675622401555334430314542009850225306132303329683894596783127863592460641241025976634304002799765744560999267091624741635284205905426469910079505860131319438166960344598026577140648820483387752683444368484799707149626052128592905872622258665047081725728230108396815142035930525454078672912456985606075255461707521218847818729047448105173610841079545114829899703670085946826741076266110273517270109377123615350918509328478645165819126428181526134304209056218479636406513241009253837064257751422946912439781498967691602255281695230604822263122248186363038540440168361717409061427703347218545131205213271101184901753247305577121754259248909990208758731658706271663247273150367920767767029048877507169465934656830784683295969312454848229195634094047946712356362855108514170191166636258365746089969212304377987237555631131666116691824336056660971528881467399488631662923858369145765148727163724820311254755296948186961092914379795955972406832471443436516867268911302816746538776536271209395379855695405681723701602272401152496901573312944952475749894572265325178257613017779064698613503428998555684869086568615590541354586469282851969149817934506300977426487435902848097236866032336297904010730356881124981801773083431172184743817876369079668561573803880191325431015284736376256186058554389268267011834193417391731076707527597078311203513891952010240682283359770457670057286529656024233516673772427706084283971251098263191605004236994542208459412627627073176173092139294051896962674630370456058260137747764998485927633514098304427302996381180077780231264915722381200396723356801000846448762006256998089418577455797131921174367037115036667533498269962407523295894050901800368382669935212969422318134265080759128995393582162151593840603527608159287835727727420731546125387727006384830167732877859219241293690674647495956078630892524930561219732438864778063943897819674115734565251405352508037075001961463501089050788990114273136720198384880992195463490406188209982752996748636966152911119928859686971446171871600472727367801381666045597695254386065260524339421278381714572847747713882200569782151710912949818928738891112123329253308493584995611276683864156707048008292965708712848970298810275349278472207461408691983347512607564697982759608887339015327863595428098884048311302607444548354088803304376843378748529814977860072471859382960586439990938495321267573272203260227007869708877508956870012792357486554536588022625444738290075581385892332603347237985670784544104289118991622949574097142861628951636984102595751840525057060814801915026949413434905908968001536887794373177961088323035834481197553855488443669364778463087923991709206027579018326993778050379735041173944192178556104821538134816930858299145503489370005976077657612590339270939975556477560659649000985229245151435499749772413222617804609910159432121643199486129178967397477351292471334435384099469202033840222678100974560782698381961290410110271386264179903054823841994200908016157399275224108458806650110156251828474310661131378202026238008251184115582492803443065561688982382784773954685472867037298797018293192625058234610420795453857759165702318542543311698543652417485468111763331909886999312184951300338945206942997552175193942583146648322638052314620077410535512704483244417550083381258744416374446096105657137746059880910026340501386890729277031643894884570651964879272229558745701280241022645671607934766184555862358854797168046722802650820836159304229431857054569857892987506410929196238208004255058782800198834049218493617775886901353572812317303672208886406117646556441734084296912508763994553612238413611131869758662119072534609161014434113769635524605944820154306396738718006976626100905735684371635201287732787120560934711383501966568147459665692110852053387782423037795257304960710229851923852622494940332899167121712583295884710678461906341543243657843008915230747657211971285095389329553062564407260969344549697620418429705264031247234594979734066513438679121412598478551750174286447380840738032487316071795419682869405770676056218170338676905535474574627150421419369897560379143593632951171160283101253412920795525344510309124369011466409817571773725721825836117586213011304372068649532430851429369858176940231735420687665643107630375229362905147104790650810140008877029030324365998122811875483402787571168977564933132073464777827524055241295209467235508952652706979448288181423499334844419520943686321140503240179410104372006237443123233085459879578319700604657206178531348346549696605673837491503367734836265998074172865165468353357719433871954853043117905580576629536897545909236815535960902377887389058284105968514183298445225751162144380460503645838218799920877641839510977435149516007697382514032130369422258759802252527018588340403656891300735553803013898514260666618116361019625164547439566168696921248918749167379983609814654489438219974527316839501839506324360857560991771758731488650931023643207319142744605153928739463487007832440183094763882285855542452692260309386490384292124874697476471051498742185407470106030571391704740664156433703154028776178197944944441186446224729462468580029756944351504698515428093089094879386264389978121663622038777263417555285107859999567517837848551337714502161040763865312419611707076658271731506263225264406104343950376591600927567011720472653393682811134219263063413489321601464272007952577936410575456172652188973954214627785979609710502460532557602811926753844043529481406072225164542987272619822024385917100277594946157203536263117786390193107312219469321034807740175425657355615289893602785710105518056892783728845034869209760734401518087199816513035424401446191649951649553270030957339749870945219301709730774989540940670252613569672900263064187665699869046356348983328356519123691357119425607605349887331673032564821039637912802552871823013415628407880700150111487873390474763014552380630945146994984739085109019046121232124712546972090947678899188727789253284541689878222066899933881171920525339466552837205108649368839133733455555001002895635370289490757694694345309441247457793974102312332294117315634390535510650775171034099974232682552560876517864569751420223804539974493647172728939554440824002735580752061182554252593539592775629664923350461309440976747391175219467569159526722122242682410805245230280915353428756847941388027523920014735180157510516757030095986894333672545832143399675154464975578383959729051936461463514217265612368447932069103606437368822763608858121238467128983367396017348060420404390610918744575840852941308038286942592107718557096575706086007823366118637498814177150531988396273497602140778927741379143301005814616029775585104299038838290458937141378743510934910367560149504125436210299158101795034236962488573696717760189303582719582869951312129099203746973451201262290344347008980755683815992530003204380377883115799911467988376418437291486281240879972836285990861029727403087127518003153304158111346935542596212750022763970687218550484880299172802332657072317339906339979481770039504700838840010837921170057950280859178231201840521054781612322524287745396252509078400268174558717325080025334222357828329954711634738204893389333842599462261586768962356579677480814656419992367666709756392203504422166006684522490147725572655280696006861601115864131904627160903171953616203480515606184731341433267906277374840383795311352885529678274978734683251934921408645241705094844230611429079763804977296767588908702399532296399869045574628438539398662449357365079614891248171076226164126578042517028942828740198296126870794020847437713302563245562067091899812520131137020463106320713252702445632231459611227123027807013764063369907879547267344973744323155769697815453073054400774215923071891594511851734336082716603646691264029695234156608733435069783017067491685799104222840119312139486393457384891143698966907685462693448691149749395799744281230261809437261611241911323142332691566617630498382602052871839463705827682782259347318837069225020806995954443546187342488837513427883930525654611185601925043738188230449689588085465761262120300812892648138754543280654609148698464846974396685894817583009191385090986587934953264347703249516819759607518495854386888859633627037285344422409982920396349169049603071182924904286164895488058828403737904843073940577137672286221924689709964900772010060137356699321861505825552439678007754192917345757600669220724815596858865510200372704297358258204127631981614975608823845149761359228336089994095851985375956533764429064078685097013670287346778537227424948051326673089489941951504251513624618252376943322338173670267785077787626851500413300969051393184916615817186351118703024074697888254933849025574927276675561777272109885510991650802909470889836735855394586084921439491910199092987252041334311877002543188763535440080393787984133886534300572795040512140158145412697083992447084447941962982872229167175246772747514154820600031044978302140638210860024916632101213161949074811443063270230090092361082959500394062806470354510188579338380623886516749100111979111401238613677888345258499577644243261530116853316180784268966398916952215835531916666641489919670731041035573738626841148937499050579516417260671419703861385079259968590174945107338655189873448993686017873367552926786430561066397668623384417159107846792516332594186687684439276096057662413038667383172807395748247986932326427343290279748059345483234907961668926119620486327223167572565405014009649154223979527740863880114229969599928529004513746288614514167953141125945449630105663975177413638934555173991634661468036483839882074666951657710205822012718518134327372240529352435389402544996812030602264813510031672076535418402242984496769816744312328452871485187253383227494215332420807054604639210312842975595974414685410712728823371326798345056373413792192687922921769060426689268716748866672624929106560150658372894770102336226390679330915898343156751993343778738274335308313563731538210290091454931563645891757026946930811298241306208274699240122018682100927445338771975247593164857171832429533852738278973700137219723494133980853888663169953534564537040285003203271813156425249199331388914041927251271626875225451615546859810882989681615068985637698436324337140889094878314745775135861144466121801788645686060640471051730186669993962882059247623965310952891089991408927008082961260177207180926443443277505136530354317021541566580148652151219266469913197862323650080116126813730377042864880812355092508326523145823315765775467340902977614359910485811030144069141523236611388002220233723445314743721035029013537620320333794238939861571042784528524884695001493645082899854161472719569139104048244678431216877343361019507131042144551247817793097552014100003866301016988339667524919593537672289187453862384017504953326366978092836497110179334024257534924408774905609067688956712454866662215674453198212700610160249982914899001413910956638774600644319529954599602631013173645841942596522111962082690470944810646270546461647536004152885388893043125516643693439659685550437104921259173463996333193829994574369011791183547383069461768320861462791022561027718209081963978288754770807116064588608522347457385775232148341231487380027160547883109522887297545684993780437913928533480330470821199995286105897828384429855649216810998973093053738279721699401755399185267707455413622222261689917487633243365466018854658455468251518703156172455238173541704759347220656943274216308977481905650566838313537032798974290198178820068434797353409985772876283749090164889498887790963039779577998761283935971315232040307783176717236023202795415376136382049381886543079889199274245391380736471872313717104989860899866401546697049620945049490268936725011425132791346100370233570316565159764811329757999187102185222073841903195024952776068608219289028491790705270353451046131136206882917834616937140357172813767806930765912888511523783024192656271025992179360363341369084284291969721738701064765600808361589226041781475842018597092904524259306195962371869873840524501860327274614980203847207493266528659891428209621432710165939114282050289206464722507318786799901593649193707847820212446591955190806859842947672814123102361463778534050511957965772318685599562451436164397430275841381324476887595175675907030895937941903899551652405744360764846692765870470334884235010504311659293824569368366207701583598294599775346148120743188769661904189704525509696364965082251165674826397040711234595693672480623124621313995561609546630854558678955596183587278378087148037972161690039735672733577452085395446930147119676801949322747042281643423972887872287096360057352021124267057234466963955908264074629109836036653606201042878112548023571842926053155331551122151159928870874464293053963648712681944454367174120692562800776063404236733050624351446759125768897473970212783944075160918000192806944877872670388039255271286179504923800060609055541114910104136974900710797716532748557488173518478131456277452853170091785021306172571648801394589477048423421784693209467539499334644563117989433407187519175913855168301414954536164593032876930892880181146194464184146908306584887031073044879854633676307183612585039411490376488141747018684154307754670878216766062569241292557941622657038206171567999418897057337269111241441337995373129495871368830712043838827141720954276644661106740694881774265521919660791412592254582344881101221935011678821417822417232775396161958799482692617847981467925290001124098389894521831910715817259806068858220513227639984620082831064698757360039292742926880333986164649719277880005038641498748599342259033745706023324930907360535859932734990410547910091455049736430737697276812882945456601451428108068222835890627908860864783048102683703983059969175792025866249714582184425707274228488331360026331390774640242843364571510115472082941463506281743619629100471849722942290590282255779956145295747318879210370145018243914135967131825114577770430571867755437292361347977467946336259649479512999479585435125525221749614134869320949361861086579171245227761550439010577453571378038647342421429314809502878456905346037642562060323458519513429467342074222388136326698752288636087409765745469055827595771299639400741027323196967820266782955864288405356899904804036487317702651255975461062064905983816408524149992945083708157066974229254621118215647701893868989709065707184444049072432041858330960215593722361527109559625854022573128299162533341113711476258757941501179977448643381206182805289540424764802014261825997480725270270503931336179892238584721774573655254120691112810275805993173126083322212440141841520134136751873232014583421054372336712866198153187234361372752028754292547897709227649456947693579801858987670528410596349626617566513602911614224015776103743663663869004252124538907977256083835906334988052136010412511669974410972381247343888750094611905554464100425141147370284211273987964446090464955371677588363139032569829473297131952518210297658270698683748778498139619398853360109199512744480944309296110443701545013293068907488312520843163247487942286795319886163722304977798655666602781814367830357213506708027651365185342661350439446182423456848287261136218656545494968248845325644890413356688019408376477135770918585400103591012950872307430244409307645790047856843156693764438830138035465745697195064600497843640273473906616532801752287857219601864063317388617592629523664294345121582385662600518878594077850967575836341739420753675604950257443737334454346274048418996710092356641528433091137067262363329750377527601697205059364663919251907000137857069494784664645424847944661273780940666577530923675587752858818082761326599292440147118796221475578788416051750561266837030003220370320751772013006845597851527178395776822505617155906033659071260824609222907975209533443226264997351568379259231733662160620079948657970861519644955977798856446267486565422152882201047478562358942250412072169293106065182394712824686154084755063956690680943259354238267502894869133822194050506193249147813944467226556819767481754528245186174985073287643009422462540615997175816421280526822473783930235954948444947419829920776054338123607730356400415302758323901358285976021451970878177875330379862932355295305952366968785913840313182577161704112668155100738786354114283982820459008417714582682407053554827243870369377723452196895585384980807103102719083203378977606742234933437717362027762299762839767015472578373740760487121608339802757050096779453209132297471080892199295415272579946352715209009319941419385418554852238492825034095991136346060719125842135955842105188724701225919110382326140115305060708684257268946217528505100273520306981051444837180722867001198942238579689412087956153273662188671448721290341214168375818581701545225439209704527299307876037367986596336035077432395440947857541874534785342244172300135995480433440516382827091573272502894467710495899972975641461616492895603357656475524051494675684073091782638034563310225694378779689079083981982755586328871892247714465736806325228557204584073681711460002973191816122066600050306583971443449114411826367314623192114185278434769327608961275251037307640841522120741455017268621581915574897583496654802038119797058655734246596287936049627058548855289305359362908394122090156617273054712195840497558734075570696437229901391581284029988419642254093051200418461679255768545999368553328623531778882778242088425284212968089907279700003860469774792020489398458676564876043109461407199237854455573963743705052799759820081674345789263596555230176824517895540633746048043813662325971781653953186183619479084363792537638445911227312615370536092473239957789582208500260391244786252354550489188797020219102486547117350812508549680143730504386411733464149966882361148394263058311154590307665748099606877929975978051353169048874130852889735253000843306684607938180309630247155628981439297704922397650663034370837830222414089212070418112487025699034391562982180819711818304309712323861554231459186484380500957829854594027158749528774066511093061617169853118354132833489805805878388584342979573397224678256638112531288650361676437439611931363869264800860927346923538634788949227551012905625597205382084221016025008955869780839025737488399622294335380841311691627729892266139522825762163781188705639010147213309586464458282239833522191092869408417660894491641755835495894899477128816856670094256599008583602440182662815212846114133112848380975931851732624471938403354718312125332509892645562329935446477916557589794774533024978301625413449664997864478503390571893698763094232276770920688028404749996723920850147149590494052498061387473226120536579876910552466321769862115066569089750211950238732744385432744176567222234296475654069682074478974478933796060792728423069459202088049674781014557334930959820972920897796273861061207999009104232117075354302362393967840490924632014256022424106483405620100336188114027241445560989095544220668653464171227880119808800365882033754291591772735867638200633965907863757017642796116264771099119979183808963890470653939591907743654596093828413201100224886844566538955199621302829147308850914691746208775872882589298921741180657498298891941382758436499502109071169414221583195215006916125175700887594181523262265808221193474827526522848618250940269500302023247112827434137778687882834854106227536091297073429704529626630309867235418057176778111598921474056531593112971122150182530627354766461255960328245328916974007348748337040350493182098902916366516132028646690695229299585387686334095048975076328492126099274730278363927792445329126104212770632856765490234476716500934488164624467247341122455056403871577452284509766545762508742152490321464778396167469969613721546542739727314050600697951039270336153931321737836370194381161285346885260457589582466230604281494505921278731542664112108063183192628243760144580974999640192623212685178599312979047230045302684172195258870401999989003099989049641345648531224633147143896556753108511157148547014222808030838639451317841188327686465367120369761540227259154901856238256716456531329532458365824924326051115303123994101185087694419708684066497319479738690876588277248877246258516212197152517027078239568480301266910337847765749090712646810861096810487534105097844846668165182821847105766884833979507367912457422974579072816601515711489813123215385038047734087144334158326443624260647026021085026933898738084779043203821036104926530264892990250001703101478321530224560937699062646160211368989350698715017809396313045141610729186501708242983523162479637232357820248449320369980773457788621351221191348409901104722554865247727934585086024517457193870084324953906236131269395380698880956980510799858279482282612583013352308660242491142918984096404120640902714397528597441354339795428755000724126603877691985171635052895773365680524465115416551977102026492718753349443642052018499741393168002835182833604475665513413330298554136114563069921675237983005843035694200372104880735307222241850305725292848889565478269866972240102237354678494113677984663860194447385254517770025189974407266382250744342623426663553364636663839298886281978074876206010967855848048908179903488126343394555007140363011526049007719231445719937192031883033362632309133107897208930241204994029006338137209945675401015337911097711607789541823348074222771650568618836350828070772155058461095291160982602233517680403028948852569528685233883172671088886458339741544278613472174551734514949190509927653948676593183254116890179163980083853838416574116020197130984195653859971068650870997307561579385162965897414191043129395867818896676357784253216384450760498929062529208753913557296552238019691041715836655521775647932890328131954560879417489345805805875261727919636009987469384955949072816472538294779955643389620801590567027489584191289072266327736197259856923927439464749980533097483031728044128335253055745436423825359140587237536866473071480489231958223113459074875548875978527166423251421973504934184484937763938636000903664197148325155174144611108882226850874830619641964003526941310637022027120858902610345146708389098013249914660541241610638745892371403045804698531932549590184831990650583048446315424059789524659039732361986780566127293715775498062338477236722130248696809629545756251898691705820799902804764766561877776311698432205303205699505862347593985141378930716112169913916823616703960312975828233326371588857395022581501372919421866118696478339346011591385403751888603414989787225484085484925687621318974181492814171887006606340047033041499403072856970520290104076635247646751898192336754304952986429476398553337594747118435235827543706028671201130544787276228623944057832858743357704128531528505411993805809044242176711045437464681333137322476444998896697739470949236624539245547107649043965773797956776603292835397476048684824162615519342637556321094363290353283454655014275215665321188192476889656232863974952799171383796998709551182274560459161410162189865172710108426885680802742918408950940652400998258803108692904760168861956293875860427055336272550992778044100688412302786699779626020495263726058244689940982481961077683444083539377672848110890280508072274252144204560938275001471503614454122070484234359945512935928540796990590323313004461978046837167053025409966934220518358108887446789953173639469269564146977745624197974025610560727249803202873086129446655870273575501792868154513278423519369657977142175579565668114499196136555458259230076533814892612665329804936481381553859752911030381970704174343130344247104471182328193716149080547030682873851567233281047820836049739694675363867331473081910223748246488712877396179664014421733586575127831358912734743769592762455609100857176105124008412095313930770894059693629675351502040334021065743696548513115279629211771297934868186378520195932471358589538415155307938196352993359931643260018163319499676677434566385933214061074415989155872681556345294828719326443727829505269775792458358278700432394287045459255106810781419596441383954625900230310355846996707808080501016719873650348396023299574648965757096897586100131894730467210568628517106901493876827608569859481640714386840404929112341107686588518426956221279626674769479949262422491487387168344785638071893987630653825626533941213455348590315026580188962599870670217735128487294877692294556757307518321701048052037241350429446912087399196631538368740894380907174745995671071183168656188734278738943479319806996597588686607665670393533315929901624024213481288381472425134958481940220147139119295070339083772254619000113855268806414271798472022207072987893413906963322470309284813174403576666963384807806094188418031043838288537657023701098084670351301524581543187959628731366001697490231183383196924402844720391168167124735849408067939317238399963208368890025625316287991298614148521504463760872527055754722845689819152187091632901346442365609443099169097582244118258133614222844992973544159607092364741579046803247795396108107470239452108705264348176732322360206795216782963611638790458945649473703560739959328746845189020909827745969706986870870567877917963064499391711245193143000274768543315617198237395125032295997153260521737430901203473166185454813874829364258726205614063920554439880131313716821051025712280694700149498754980894824976256675113722759196412949411628748483136792799480664469307962075459754164294886915648115084585385350807941821735060083762224363051693311434098897735586521307302909099917767807489777005720838335479373372875063240400674240415302586087897049029535144674282040712811065626074340502505502057476673676287375001169772592122073927500250721084654049386061333403981093327391510480717082435951070904989037688359234416556734961490486608922450723614733916074093635211759691693423683787378916782720032221576287715467161150807529966393737157240823214742814304891628642118819902985758990908741238459819352218571465450317560665001673025071363606417583004414730379015054352152399094505909781353014840554224733740237465565606277587928557072947340698316021703016401370471753169895281340288017688826676270919902117732592613637736320157358313421025979847632092917055024757095726788934844889452255269806079192105115234643719155293622919666778518413478247339334885005059120993862393388685356274802285234987379188673863913042511446400508780590083589725229738803141139188333754817417559376288171619709747350005928515316363180594529565041610161074277077162006031853567084092147908553960757852718650745790587686755507708114911825915812639040387234092273057410265953586744908731665715178567902475716247287574694889784281252650107937834930877299302496715453875281276782476490215043324620837095067427906424656662955606856547166979362993643909967081874804455929458541826433371842140865604460114598238988958486958185107164459110003594401823478669716592918177104098564065411430523057967519680390440704313485545056178219003567144506351903998187459680941809731527030424360879004221698632999102520748788833222336936543754758363852295843139600625773394977509265417200045817229262675572692553017824569497873077800589558121882248165730322699149316312831855059267312636533918597839834545436632787361649032351578229203209425858118283436717318805269662998736719238627775797095646947226793435539637703330554887994563693818484010860472274218920436587999030932040152436964544578808486238212876580204273066659680964034398070715434209018148605915441699864674266953623066328669763290303924317775993114704736181111451196864249034223190916907075577451911405119693104019599708143781488896251512664427255037533219814955727658195933193226168615552454497019847622677339490490854276964646085409162835816680278488107180068437478770367426787919163848572559856726020934556329142084554276696071506374328883083860697284124892870918593856104855137976176157624708911593050983650957840646416935415344514477474003142119528381141989593299737724638840740069414627485017165230901027308651455003315790267047583005305080742046517593285866643640468356044441174837507553834936308698662595727882021380980845918973305810587883931565421901644601509824959395883894950460444572371943982320139545950902221268059758388287934964575573754491959478126239036151561243879038976948785933582700888131319938313681985543937096954647940092007826441955429122255003599846112197240721897763805003738788266280918206873208906462576656243383013896348596242980606439496913491095662903307260807301886225788779247046301701428797779338274393979531362751853190838127150383690292018507422987302525936954943010024177350100846337125446079107281561728824568394150718687827474421408662943587748826315963355155057892663048164709298648203798958859416762928623960497134532066111393302875468201130690877642053992896084703398396938402730022056653982910127170802095554257091950464949779543316956791326241407224734263502365908530086413693868472460410120142948891326747917061607252829630018331096597169560864220633105822408276153093937652892755679874915357752021737782658536960189942518156727459566538818975546978743701035252751679865009221037385792418798991754741397847657890245638318611797962207537409761741514407459770220332563260520602848218216039543658379249441782424539695850722419346113852411284304565747655035738484756354117375620803010527611450251613268615473018885807433462754091771997283154827150388222040394578549944013968220556992983272075323092893402343158464262185104933054463854533004853809826523057386876503186450812251692850524840363773589642080257883438420406789531561393215147608166158831636646759274742074729278100324723539628540623309615211385612149278084724220851073354248718584270083828456410834213397061575332976152302404005318164968039035185314469221806476789189137983354275373393499398947405882782614360530338119205123681954352105325741606653147746887885749068289965703657334929481103209136916041933430616142704070591594022100459021727631362372440424806917924270576353091529445413372455595464580951139073492696358825976674539580411294348103515080192214698924989458076385327822589462473946358968518344759767785171059170276510387824470983640879629786130234204428457540861772753428647841448700653465750536254901616506655566347685616478045540006876980994600381165403287481286807840269703849041510523789374228722382504759319294614630479447626694087034074624224093717110828998253502270401329898491097165117354021278980786753191034756388952802933891897486604257783851280824477958694009996662435428030718879251343762090652827768223061892250216931653521696293372264046322521830674515320788411440268025156031908953333089545450505313961653609488528568832315599565899087254290030203818777507234061704400651440764752276045076683441486156186736511036655645277008836645466624316023851215677672375808625997895346678080686387992316725810066915228013994665856076540309890769344788348247602361926407269201149345836629138606127965251640725758711059170560909768832396607971257497506271088533791307410667270775923590020614231061341085306565485813416495266921555045382738410352303133830678193902690960286297982029214732835007923109618080296750991389918963978644146352670470378874968293000114693722103966971511853310488382782364059479901664615246516232873527762517900592063049276393367996780639940351064473582049952005161091093711035178118289892127203604193923112253040704931178707240764494158457132883804523801343618656997737646582360102352682886455494472245509890368753846306285355856930240193910777445333651812064779884302172751472433430533334301836838107963392247822477436989425329821209153089896735038060703390077197548983707780777203522223140227215705397594205392095187583272117009525688003093433740665599079130193921361762249843147693765310283587807157546430347544189772838148785001747934325504828159221081392049197345112566616051882046759645492830590903010957058879731451119780785815008130436727482304912709565495821288195059820462591198594968031419754814122758846458689480383950080816844831991706437416912369675319334361371807250552694275523382147543650616210781211202533899673955869693276235300510056325769843130636531193191272461309401653426075040764005875408009031952501697439656510758852624581068541032614718277260038798540269782203029061591684028717413136510737646184086537770746327606603612433809142943127505372722521402528072166990425986036077621660038315366028175062581279991411714594272377037817727290321851587235178883899074328019623331562494617685750296033188659973227134888347701465714558943931246068230272026188164475816602363530790863119269773793615500212923100570651020254719282469993136784524803289419075977681304740368267068497855487667389335277685340121636388871686145175023029109647750193336094317670205636845680212979335490524552626705951939851206520725432107047438168962297654838315423304497057720139283634985725827641916676101227573117295858130462031251290668764121188883694375661997061289322961589635809655716089324921615947993934875549417254614912727212634289614820147032263501259073293110453949582964706432513465346407699044667593353448661690330248648154379307165619466370112113232889180335920307185514394904940917234908945032473046135267176233829171688991022025719640851909027095639135827586856320218829017273658932647299484884483828694089813656096773245168754652673409047494973979431746922899420394950676400503732986315522061127870071552012656978217310599783558988510476434069698521293373772445633042224597407697259050853503385692443839934478005351426256307060062259883797306786926700155717258506541632231494159752781349565666451021936556949343240205448826057877118295422938010462984199382644584038338767963379052854171373428420218428667132104754049589962348225974635664826484926253219679661921277252986933197075898380452132370375846279581979867837535967060790723673818778550521850123106936810143666253327358446861204381253972775463395626379420422109729742726876071738898317194947870555995128324789089570370447722566187386735037504377844001023601027574417194161455450859649864931093099659973540553697729008962718416055488791997887297622683163099861166780719247497899278980700577073488945232688932143576443001915607777816610765910195576778681368262703919826267071617272596750874925006142274956088772421479287193182477413394022901083843327462229840995966616643533017294028456620303967779643337687453217538485623844181125590036825919194458461532882425161332938001564778130622062299805744174585243588714151820180823997580909469679487067558592648815856776872627741043989692277164931037649907396705207274165976166275103852141428727975669104176159394964323784178338882268540900519904861428129574140143316457245652571920475182290396238187498512271677141470166721932432316179674127793406600505262472318846692886219755140034624145264559539655408912634409615422411481662861044719224263256676940021320537270219776650605541380729473687977654144268635770868188873437357182209404937542395766644474837181662132701372772134510903931524319146125592166007993454314982100733685828262332944085119129453758283362465159807202964186520094397249275362871448590518152913474756410169646035256700698682975770910719401231853801934101302091785551896369797192116138151644077243423281774034269647643489113160615888297120668835196151129762835299584492626128209334944594911875751934524709217547811469644231494788159897998290910298806289151042817807408959887076309320798210892469436883244224873713008847131977694419589332753255931089830064984107736984428294635283851238631957895588858911968942011758015922505722551057286246031138464035256125002726746473776856209306055428952980455036947357185607106175517916413154431051052479586452945540235657517596458360917231654019974829824709911321644104701515670208591784355553431202387510850918994320655734516384640008096898597653596353195381845445494343810204301724628442210816284694644663144705363353994276538954347197868833747421924646705064246490074536712126450089782083833180687814766419484296100612631137283795886631240186558431269414405399078549410039382383400769182962774568320613681694823038928739685450713634670833226076407758493846930563583591339262747175667633406841201689700557659788218183126471587905529531087857537723719711688565516606955940539174502840911031409180552254726405419593799991442829990433468050344495306969413932811369725591161864195913402689621592704793536414941449242615560744522302746793344047750014367518217086188344733758251517309789362772113802018150700089558804909125990509226356364154286568595805037633159889246209175519398473252676974069615777089220992207580308110637451722127460576792469173336745471408884483870903933845873768935161749241040539188039770176915040567665437796361890187662683521390661821341289130536077480964500538065766100410377430705062342456425368175550680397852177134286404390786231956992605040120102334285819344510702698459484178306052317713458365924756396978498379861173551488474759080399711123241680077426014281728196244054800114035013201199760055289864332221567644615109452028835235453299060281278231805704706056703871859346382254912472095663628766350381715723104962389551034215153751960805222776033020144922090912015818618938448043027232424629262970582927932640059656213105185867386841972738796511206298893378553563983717478932198780795581479810907007757619422229002348458720598098581964072615033391748135768030595872974060698648693284181922755639689596110985836114632279739094101854606498721694718082720957029912796063385372525972443988880566566519189320446225105976027659168273234770804983763981076234673533300543786442478442156289515685078546374047908952459207064311100097614048067576130203306861682797992332103168895095628275987380061485220972041661870145224484976974570559437422067241417396311675651981777834393994926934363229950167404075388139016804579032808885740722872894858885726765372399708632003094923903375748884844359311446271107536467409485955190465094048849313736074842486651060996072657942788023823976879358339959596313315369274289964886414979941377824001951915131342544288210557095237762461713885928238824340187854170704277702376368688637954326673343938788137991471171241411758586081004379192216599935122702136579190360667033814515938670667505064413124476258763880266203589597156570761234553708934241734331136035378240305173062244724665995991027332580854314359032279005045622454271236253770087313846502147984651566564408943557899367710916310524895782206224461738850414707250145581874372755589335529976004077542012234687389077535451632370532332386308908038184087413493045142926592955819489310202207557081998066798565236485992893154737661031605673781411930862535039220653195753499387846865754794027883530827632548184281001116949755979905159613564854383682536195648248452421529607667768484525353608953916298078219497367277107673819604469512558959188872991190398252155866719033883024056032270321273422339662922839410417973911790392715105361280946754382174331967482040249312174741661350047053425403470257716538167386945264771060914976513814415216263777560094639286884777553424899599278271957164196635355598317961410476864917209595490983010044596247554684599664492172239408679620080532968504263746764246880225933846812378957020245143778242787954780856961447490044247688090096087024438934056961267983345981326288245375058034926885269572098968320475747761515444952577695452405471031979578690711582069780740631793686045545124679573539386314645184518895411851871244405763436725324012405773106257622011912680829250564146039496964756955517303098921059614257799519521043987505935355480649818947248725914149926326106254972532856355565419744614406638428375140980155488128270098839863434327199898327148287876588428935244847829841207177081601482474503599210509690919939035462543391144586056294275155874581859275525836652510099632930871775109198527418018187118459951023768856982066828469990306974137654171444393867445212293445836399324035152416851710501631737487131646032111208919352895270189850287593131524506747243193819331705949474791504577804161610087820433815236285105524848825321849465952250627959340956871755169882472215340498527724881283803347987666254506808730977098028540293632428229256190106373205031732852172922325010157603160803017822868937289197107833185775756668926198923467786751786238248877290826026149043457708173663786646797271789483996887053064358184482799766381275440413880699410633315004791163161233020788361519190770874333024610241728206270941422579106973652351852654909021366516321488165895336782540020898969797428218963566293574189336870727432845684776140005414934963928073359235585277014766184440098171887219112961675114295990127045167928917123440564697627502449521411624497854739449859466000012660666547763949435808875727658217964466015735447448317519263793098801007208560569719722253535589160081227434870700289746644262871027577210280103020268826854714880426688240380856978845579117930960529629191012516417946778932072303940501130466660048158263273364734765505946395563276614973366355603538904766345613285775707836048562005776831625296343922794410447840682276833346351274932241988489749463880916230102491838949536157118152727017521465624941025097880140415578358260793595551873783094618404849092610090965127887335605817455822120839276806480894653299229252107534598728892791135777319837349376844417632192080067218195541894299014912418956655076254427503410783902197222412312258693713507339044917398403424859164451221543496540792139823966288520766679397009255891244368011760647763990003544555490714364291305906188011612357242322848022469104970559843950846410333825734919492942883472787712617098517227812631738822389481065316483871014142160238527937814217239045919972146109023040169532622064606694787362871067588956610388251969415927959411131061043605353908242074337816056757546669184645972127350387656836585614161690897517787482251508839552825773110156675280760027180958589099675818101137169294751494864627337570159741703571389707687129221432158934994217173368611805250293341901048459928825216453188241628965580256192669656077968288784500510379313688772015146092646333162811221572857233144443682073026472646001947817671118586947518980665688374187602095338627948127139610090323117938941676073989274581662836737940322272681509379447042658902774409647662641790495522461544281553431453971275977356109438097918012428587401193685141431483834104261673523540672793650371918052711741555200118384009152820137176209202752198738794222594297613376773491194818883870770319967480738427229837416079836214965236168225291910150436066300839574931963273446561737831537637015366179862777433672139260456848020211640911934002753800476998568930297392492142145390886471485153137712748358433864456479149445167371409122567377502838781756913796183783501524166517278777643874640619857995579760212763543361627449900113793322004707998555701383842809501581872676929135345550088120557656487021162378967481022966075820446481853151850231723118854772715848528283024250703935904265461562382234100309097511896114836468232468056223425505096601008100228181250823698507054875190853417450166129697807165993573658699729499672974580047658481022039685218730905066811477304446335815291947951765857163284506336337606564682290284051819109809999210356584742650163476644027405225869921575203714439817525337132201563389951851917732825410730385351138310390608966090527669003128863732229832171197749578775711425902927680894145855109767896571311627859309106049486043525345646150393896162215603730684177172320546116493955967244734714823565434568909794919751794816281828423838906515651666055841045999119520415149993560784096877788637248729005511114099588880489396675478456299983532121980152934308866682483425606259722668570883288662305329588381299572254039957329748338545214730927157875247191492053777298231283838351924448092761733796075755114274321084798382161334230752372635115798711584477694739155242920142724416484059967167296622505259260162618158710951171934269603754385181912384088838246952688433015822431775319923142044002663727972722181107129329625340083563409710798017652205953516676537066485992267051546845492348704893518239297834743987261379885717929072688188661440720724806474006801994273134712142992069265601615926409244898475080441927631487699890353712061643043422846372244621891165398853261796335749419805250166056468991506641468803622393126631000837473120182328211314356829316570034314711597503023285105580835625736221463987404238077582303574241380312395452134249732992734633992100228542626258672167316218011929411425845499404429217131986339163941145632738516993805845412964271802895800359137534296983828505526191851958282416215100461515332167249403728920413166066053202805725974219849764308842741098111048182341838910478953685347536818147042290709719913639435561910664985623542167479091393323581466808662163372080753578931649748026410699235055229481311743947231039258357358777463733359638241351339671418757901288759153553161809373657946310060005830903143621496442073359574577914052472737667962732250722246233046113021240743533816308530633350962728575181950134309458698625286940112512895763309787489800880221735697830484522052536168281203052360661980391005220646775193118894959380617318643214446198459745499496897581906067743474456346574594101743294690619227624541893741859177379114456819482443730958231974779718620626685507461508743183768329697942598441438651115982470889646634122954004212968591187687820041986099148767790733046171408303796533782023413858424404289784612170865215661036687135260040292093052518388195300859149503210683117132393498306734982447962162470127449271522440880329916914532503426425337038398471700344516529551108012549123501913150103596832315715190590590062328638232387855169810008091070283830644047881022872953908185184696302062574099788668938985020835621316835586174557588953034213394423691858511449312439473758593230555516382990542616487237792887259815278708302821579513026292639501068567798985801941243982023103052128440679226105333307087603511390726281894063626825521996100219784674796591545774643952798862219377773213055899143791244392813618696310056579668054451592096774787501242593228453549095073392064626820212191833034151159559062872710787529306459737106932582156332022020185225526218090007662518976818244172029397307793984374015366124980501517638976193803649394680141099870898065272106601121028289089201675056981053744585926347857996864999990113741652144831952868497330828003732284526280951464328181720825737013852676409834483557828473002113968489654236182295056415702686028066809267570710230205523952769016286986404690720775022291070528682956901771542848971204048855114869004985993441981809082416386604056909612402717437348911952061626978075553073600556306732678669850749902547169381704372992444873346510622837044691048098189604288060295203312587686308108753960511008008224866979279372694192475242838722630279575610505941877892907880754111947024482773837104470275907321812028207365214801235334021582492201048596644358456417974915368583124043571989062507625728167780150682891542583511783572967000549974863898517887513161615125301103783455751345133835803639914450116420391044857031506396867605922173465969591016830677045357853106926767349310652668334009440755466031008104444133996371077798610896760990433815612600222823002837822659734965126701630896798368924660197983113340741544140342351605370454903488997974630520996005823031695867616318443717135143881723995636051477838374193698771098548960064079675709352167137070340546169287740251481948140533473806309941286069446662866780170271839978118911102223300828078246614764418750960682286770023220346554088681780131966834950392860512961269275459023999178744210580382541387865632909768544790268085278967297193146235091933713435276734020537862796748426878479510891500794971406420360052536134715354480839141767409769378714002860430822349921955637050164565561920348329860219443868373236734208980073574395872137019700174295821368769222303885578610112578922682858666785459597093482066449383817736223807634200736641517304212025069683154585884801167975952567496089175548261554954839736672537411134454327829764828904425948130681948892324181857732783185873578509435534934431026772312577095948428309367749474891139210947801786781198163699880329148365633664185516103881989994263061856112702429775372088179090022537970138905313507093182536660266290274789997633865172792143763656338502160279412667657836452764944099731997026812934398280029247114318904460232879706064747381884033780175667199535832935222713469452196823355578721709157224499065896416561098594358459469842439022245181633637825470755829839852801911767621459138088399099986350584961597855989312918864122152831142245004427633301385922821495026671707944628535555706189705179402334854183859738858156902018313290457296815434339536475731244074182020838347449802460462064253972006045431546705446144516227802150767603520074419892009324415342646746765496137929177107288714977294014554245938823046213026722647182150625950405228880999136670916373127200424198285971583323011689712549898205083062830740082215071218166434784627359336328066127114209772805654588025219441744259547988149268708492092456506426970675215717655524705631744242265965137571982046730907186236876830370850698938741078541364479344231252927665538429608752438393661999367887820142262340835639074576365148985589359520157536015775727876038651982138788879325170929799919217883756912637229531253733826164315798784082364777989050944929620131404288989094347461242362133803982789497096400494537816134528547711425323699162907933338097290672927608612605975150732514307308200147224384818756514366564013695198980685031664307568260453889936031200993129454378661904068986069465398412634436688133337550050197015520838752385125205391226527305446802642871091464907425618690470785198838314354878563188290728686944251747383588021556453095131446421252635377485496243766408703902736046355185602433621986524770478231703982415409165733645079710350515391400598612440430051284844563947800178964992024982329966760825756080895010498015233864297776925341498132855825499052825219609489555158859061998774777160807062627496228511812891934287548656770753872382610121070325503385361387858102319194759468596163062637823865738066173213796751643984149454751056560432119090475757553956808026410059073305688350958479844555675358978656839776235832914445617705571816705091162645917098007642914011059401342995075124845754091987642484658668918393807336162299305207583639714086250707303119292971517628787071750213024801256903489689933435312661129962985271762079472095477323626882633338045759980489088543821809276763677957460678232809371380410734591854366810798783101533173017612473595868622146299495816698294792600238316055410072100659346088208324115209160558805600449481629580630976837782418206926075037342403346125777286218778346444595493111880593549335764161842210350909253737143323028680284196900485295922332606197923139921746607124114393148660896152622416035916839197059913718217775375531099037475322414426954897296625259266680284818284029214978102622184700762806421101934371123271119983864611270971386414761495806700310523444027909254304869058485044958636698581521978658739380015746884972926516012175632291176797800808519833764569729185066722573889373347832898857689842098322176661953547644292702463921021819744560776736528920593958231802930670319583688361949864257979801224921514031871790306073154508623225288794560874461168947591643960611948675438593220083015601155160664138032532879364517645110317500253003009129194558804002208709229383199174007439700148334276138143449635355022825235972213644024028871460721350412303821249710681848062968354285455939955950805371102912712880030626465056201104323812109029217979647373118500685521874318519492870063533079813941713524514518427154201078204199526148496941267309823021969086988002379438842525413693741877795295978404025088982107353914381202098195649590384479034057293203636181419069095665291936598249043974133791030524893708532898007151135166272617153434480520800280763855865401665403695143406448915089947983399992190948274315683153949026743425416557428233364576979111012795608957250375749006269109431810216098675820250534949933929524338745430225088416075644839003344297236767046853387576304349157961077132713268031506767259657651046188627379365305269109066397605429754332291550920754384152452026230407219694813468453795670954262315836111397351884513954517909058369639299275529391036478340712765445242128647034462253923803694746897842288601016004164535957907119540619071333424114750880102399296219378069121393397206477638534420134791601382821223473274936962777296214147722885666115348475313825136547030817289073151181997936288304273586043499902424104400850261092902732814355546716147751701468530630058805266261577949375931491992535441954129733046610066776687392129989338971508070009006905284790473133774929495357446496627837696539220073879849066685280532387300834775100746585574667936852556407772873833509626398778170698369772366990039347472191895253494924853774213092871488771975767071370414680679620569084343494427719777139522368593099159772240874105320137452346365685016226505967653431221461919889362110233350376941546704862424617668081643603872222661944697176539582135398643714617202342841120890141344011761784118385613665156199182632418271761562352722774473087240705640920185665009713183905936336926907582705028888530884876992809282023827912708811023112600826793550015040134037541465553387163095373423539614909899794840633897407682893256455526206508572093857847091133461038352860466579198127592233434396479866505701428038681936440623047519717718331991937800457414346551516315825584712784749193418110125487962142450415800753299493639501065022509284802485311639918181158037677525861888005326199267341788349977444331436253766889133308018917162858587516720310438789227600068615531751130784994046914901517036316693321122934755725476693156666376549314421010244651347906526141367735138908360079545804294833020860617444618057051517144560817834385465019319794565190878891635770905411698315518004791765066999432585780876950382343399764155356957759315908156843551511772446470056139352673251229248542860003423739714823231563844470799153919702295513606955753851178739805751453463978616363276286605259400293306739081255136563965705221937690082253980843434241576103160273825012922441115279734285470169622101805973140082968435294470597665665741293483355311317475050938921673361385821412392414315048970206001226350803988783733851579926475890370956597686183399659155655707400908282118883171390085597836993632176240998291361386648984936706880190232513869190612437195139338403499206912607306192875325934558408496590284263187276342825686025794407673496344864133437752240063952005825838965665630645564872199867135809641123763864049358148604657653986035894009835373230611995347170954169032558516399762855689643034985036225236254922473722643807145029685815313369114011978415773681567635720469526807051905912804737984746753817330894583679122351588411029295251464317978243288704776224142335756957601744134356379617527214911684510343831346424797933963511955047492357629721732635414801429453994376773990909776287681240347442693271850084260023495743088492552766030995648159448146102513131522138175629332276402648960508340626404687968162450058739783283923891002519604008292414241678700519688329599670176998847756826463827253712060096004718812404030081187555301972088007178830929877976686298523621481560440671912284819938650637989827387035518819505023733817572816451631246472847345736222107994766660692329111401580199480032674799209127459842444657046180267720369797630423930243115411896771520213675536690595374149148809778245703608817234027661897611478502310411588961414892468510468615271989536145972202947827426740050943907457868040507674433387869630313773466479571869847803365644775964265047302560631633454308779980973882911413566654759222542618037907635808085309489234289152191525418324453697833312807605541822783672813615028341644016166018978803981057297958897240994335736548746291671452740156491470967765016689659911651204089037070733764109068704013985079726414323088117829796104007262594428329746554593260773867711624828329484719114185915953479005220146619372277936621251712957293996539760489210474076227196547760111484405104071805855807647835827406971448909326602903868786923509668336458334644583298206734148059380030978352610969037380774201632861726644304900571724258137624002176725238423575981434741488575873951378788387023102157240082851868577004993266101594096066102860108285741885149279421003605747125466399006374939740124155175895376573831962996425355876792355175070536195454722269265488271983315972546419087910532844769919613461093227237422745342922347091475573070888543476932682898311291679907504308413040170010876653996189504081643240404145123720229185599447673466643522370894012367732469540225368297969528086884294237648229917971680386053119875123787688968890175982768224929711551398650937113676083646554161036190460819085822569906249354239737100583267153548874979885085441266318512670420734117929933425247602504315967817674934880651247197562434313698660228925654016770789386120800423238984605595151173148731097944626795558705807138758130936939185943682717711634001825830361157909328478046008604457848919573415414593039300149640352098935251332303350836215583152002554603305996069150627559532401105081831191148405026598073874670129507994998146051374373283207419051415066375399180685878823864822598865237279828849740592087692363044245260966248922538067555277555791915006397945711801266691316472923762891596728620288965170569638376500248056727834609845369046786056808513278305320507990586087048681861148148985256895845769391139514117872362075292086322310876834691155307841446261533451581854266366667307108343396899654731485456373050854119783174351897686180442618842463075291758921212230275478723888774240675078361095068537462625871499989922830176906284431439406679134966434924743717680650907133254387028651971250959773770634968977338076374800914848044248870677808611831569798756426335951932082214029798834762058858748229057233110483970540065629457131780477174934799200626694713550110209561225912670345339596426575692186918943386877511293670531693134259076188168291683277711101459854483960802403709181804675797671720792934399487372416826680313600546209585749221443902079861686140664883155761847770686170578741940258146298066174767166040051413828787071598619073905788678618234037057875890851417274982239225477236891321435973724400297731892448522769885815586396920259443873225985560017733200178051980105751950174045380126703058169122796884896288409376319474487041775362204143476691114227939490121952827862317832681207723288623762486398721184877991744256932518341344102989692141712323482876728760541250848784771420933165110604687367778179763010180869794989705570647655106712123364488522169696289673339750473644938002267673115523360104950794366489643707268758342040473038023031556989102293978527085781925957269478368174606863524648159525613251049519559980387560574792578050795246814074843127303039649580772828939298169914758623980605412522732855330829645959743016717809050656994481903248112335648973572204772994543585409351712100552335211226785895651630915528418945596187058943802107502644515129778790086061847540654852730858388662636810231331396195012690186910045014511534308471467379861939122228021015529126413856787715813009046643779499897226138943500208067058822978889926751951831464785562559601921063756823024791442009095517022969838270809775590364551875036414317322821461740854551681258015247520175206019504721549318876571747487888437131196130427871279345232592114617683139000257221576350041177708150582991511313603610844053171768694837461871875020511890503596219306454427208217894411488528167669476979010081399454881227532622105683545025295318330474684472024670043933671222077194195638742895041214487096903184324723503892205731392834810341437978014718234645186056444614873449226197347292062971509628197948924899175053016766522411944388750981298258925835604168049263186711672241312235949003521607412648062058370736722176705297087121977707577926535990650027501509130268782696848653398728997178911575315024822909501688350816458286780027429706773084266322077472392425846680110022097299375963729297913603227544534630221724975798221279007435451390907731417992256089750531458774821710119668499364735151812118815220895012655757996596882042464130957729492037792998539925227857414730009703564595320152748367311486860037870766184862101568712671118227365992071902982869135676949547368800384267046558825199657576984270735522178487364097688028670438235893141414966670890036919881508485421943585433054777258847414649628136991487780280760297285371826150944668597507977705067888982644831370798826984595220674101138827096746707552155288760870673131319064431015392978379582226760469896218114587754096640887937046356737958424410629225562696913785678346597681726038975550751693802025995432021470206404498451259766222652210661525823020427329767991132978210303595726898072978645673873597204413021519796897755172946952067249399730104742788896065700444550741978310355832417835375885887908874590528426669798689644118610940412304539593798809615110034511266872256880762061191688136494795053552426243533443977903985135765625256621091892075726407101572651452031467785754930878009073661534212798167734116484336269352519973662453227016256700697627291173052383848078151746315799900606949769826703499437988335984729505464786464199744313194449141688317522352132155385070568063146897322430016648104636240782096435434850610653402911153019269972242227336153686750490623450672500540206515632993259740094837090954827158224851036069721682062356876272641043390398747276651823344399474875962656323616332939136457483386543656864062855667933583969718361076420268528468934470290940890706203977615795352382894474167364764667100646353636171618221851480941484937759191191397187198304195782265445742464115958944476269954665739367180753138777475171100365810989386126068827910878978530040785513021277989559047437804199036942635490882355387702219069162625908293590661186300591389915420733491249898528854623766553188972621122084181668545262870886465716922161812010142688217228227080009042235465326025138812797071281398276658326369933299070722091417050241093498884480989239153425742650184022304487857474818878988284559169541096224589384779311846432964889316265532378673396645898673196185811637166078703862421025857808228966444815050550100831660580961075418003772896561901603418997679456163404826676449108056924866644550951786647884332668026541925372058597647714698719804063275912818847862805296499138107645922692904367048280951590498324222154601115045199159617185420808924281075154784679664697760783369709453663392556086079549891759430216984463890086391406705570916728512985580526980286643150578795725672515032674399512156006396182827648773593134568429323889381028155221507878023291019763957640096996002601802586810907124878289880610029030475955243688030761051083663389454863238291081955068079070103595272639149117447913793872380857680260147918397584593909246280084168601321137950645361415407492764382645657003768373490410020835107318471284632172175553477475794311569496463329168391191736479620324845562399987917141433898809243564904968097337488865541589713846289653566575096459960493370522098906173744034269886098575248097764929856042410098691549046475593026895185217065843283585515903585949284021528522057420055633522613986518266204980816429486124813795562776498415165514225396297642230797707215609190487475874681781256902520807540455793901860776561848922443968661575606886294705757770626821332331209172471821157846001230907946018093112740602091731927347268000491462614913745344032481113108642642332706290025506992591557820576567827955760392016956593678476923610301875870402352738321240146899321546644318596460912460806528908610750692590083416748635258668333650973732591522822667007571439276878740647052596518165998039331227165916375291884053359427029192343047029560298633902188746268229675235046164984501830530986681529155428744673366942406432087652182153573034755168265448309672924675027679128468722967017768485498244991364936889754603470126149907923413038244340551638473981690662063822758716422905740811925066551596351502600392946554927846043882646979220183324006056474888591622068678481380996245560522083644499256918827261333860277398189837588099565732691775804820743348848812760853084608186100860961459616293178910909523318997302121557313229837179890364896383693311815612203236574257356959886952537149049359213875047160613503803599448511378871051543895941394350980991513421419327241615483780461597942242055700690195878338910905210546608531970765066846271268038544394189645125847086293965867080777466504877961062988272695764858845005189855682067558255215655826385816046646095218012302518513202283933404193665380766603915430066547588338363350232087347672008473036116651705455331940032074197900938929687019365762002933935288840787883619113842210368308289554294897730233902898650812310551638972331621806548209406337316895674114053208661860693901221653330922644290342865769798303926030406091334854022774382679821430719599099565690936218092475840413426905960192739566354850614728968041814038054701900856160694694761961309807407792015535316098324808778901603708074717800371229304511727074638900235223702116364932869684700389599316018384970336633377416716956040151463534188786193453850615193476329815598075978911170746901593211106850650112382548049420551840325268563887746651464224116494170889507564234599994067940192895806920579025025782979697755091688556201458399731189006284673148413154608962781854403549821125787211472760233806371215990507465433039579529996408886793846318851453791458235839781211496087766332792236492310227918735044120850462487036180534679039314787346779544334627860930855103429348265187282301293534217476986116146184614892130894881476555803069765611840893085637876683142694437940714451523958440928419314316459937557894870317596538712915291548425149430131569761961320274588964305585809955448269086809607358150783706648442343223133439604840376380827429157236866239565569757827237233549107591031409349022079410625332967002452716295811294065751529682025739108726024714660574035739633193962601739915101523348472729402284153045881122168908801207015954811673999272526945338651988101319421839663568676049572109413968578068007781509848183693868622948478979660381649150636707832470919795827419206486882343114802558572515555515880670965968792533042719048177206043250374245300819341606830690984467160118568921026648064080034153745832917726679364764018673745225678709502031523170564789210389785771957279549848358821280311523865365136614913794276137286623852697921291641669233767286707403210750988835060037075620257406023372179116289751417978441829110707561173326655837478040431668909448316048573242435037364727561141528709906158527693056637511093286444033454660982134350115276435113024863061825007865031740944685031987958869398972049136826347613715886696677895663980931643642188510941291853997790529338851740033626185098997361312099944164515714406325185644365529666730890634698335652838693516273419806560522007572371981104475346228668527981973983405164150851096891676128187660705356205938368753126395831009709362773065920175331236287181923960795170288527085099015401438592612491443900617556146092523182671979044082796877501560310922040461531355819511531749629015106752300769522577120245436838745415215416150283220026463813237347531753641777877902700403313620090984822774509800285370342455566677076352437066545162058204964861709903656257559182344550795660679003294845058862870021894618517892285885084944695836756590754057080125525753251988882992064478619154291570233354024440023805051157841802105038497752942461602326930630823922807849882261016759147650401364374159889658996121730748850659890681680256618832742238571092219326313856556596477449844570632145499986986046984058857434823876775287699987410362768925946088946905279353338640721722842749266038074059347911757195390739068448486384698277725296108882595807083424597312569970377726925346428630442514118138867018598129373262516514209335839484969783151157160906131178405363468372661970756404600971422677927092636354200496701406608233880709747575962553749207368685377919566156880174151840294806705515187117874749397322649845453390167704452329645567981205027122002036034626093702388456863521585187482323700649464833833480956465813722943712069286343219167174315011005185822234007318623574836243755731310866198297382024850445229697327171164760576032798572340766952362473732899497989414951009869849345374025845258028153772992186251729401278692166252001024905548674480695084502112506125137168121776808604962975689598724632756023268696726004217519936491567155843782228935592483367015788771585350110961426075022757592812715798264320058692145902247816048971730226401363409146722592160575412835271170216017084082948327653827111042620255211763353032395224611928372972059341709110840844935182114633166360275441500916887808766282529526009287284150527311947914512590597426170867463967032554025481724502910354013216993285553630699288119594271036890166750887274350948146152715367936178909012353047819878094100516830088801268588630363446714218462885814480164233247364799145033283573071642225325173319376063639661455095916966543038901724424386619126429224753662989961303194021786460999993265869175520861176172335105912314093287137029155622108600289413863418003337516998448239696379405797783262747767379472509807398987035871875906929522569773722138993275321481426010555118239815679984073646842039884822627851326699837744183119067273289115382873339404112271988337731232086159446157096405338214441728941729426725115402613978562803874610000625621719805105607103779560686526106402658136769959453705732670425242642204253045027708344677146052418509233590646760611428810898959633705961992050485725206079555183206991301351895198495170459165008398930327469879945021041225874179526351396576929515574555645261607953543363761976746003840647465759931621811189672048961477136298557090141287333082777594175730524786420501992774246332517408865741223919753020173457382542805049491186570813383601397192134933571891734008016677830619436489039005219713562797469853163115220446064955981647456606341223700154900348766154028704185071707490904173327916026425366044474366469107911136975927043073674087319912169235716129556313879945013204925059392602470794021975333614289639311824962559656301819755421330987180210234713472904056048227739651439915050290345719468347943453338958341247451642572086876925572983974303760905524345101098875726048208896637503036222964825308113939229463012751752935042925519756462671227753989693778033286080394499930205278540148713764246518531178284314344864437217153672356221029444482016976148804700845990335624746114803835682110885459291923422124189966098521053504629243529643261360142100120234787458864719787958437874184809866519316023554386367326551305052079785495736193143100262142967113064368421508160422946307980217427335651451965021165499665878297959720931113929561474316237555949586617110417490295552977105729735942870713234643727740543980768228605549849378861642442003099783527824425217099936179035213963102435794206322823723117306583578156082398130091100469116154230666742413877869849848425972318761198395045236094710652117778099458478464934186559310721129425572588911723678814391353507898508290444240910452742881352456381926517932276286345890386190356025792668050389986188025906176509184919516246617883424093965959097609093521986479450691871312938935773295557253002158478547739797570828526177888873937390866302367350267770896810766787942170401060377670807317629322049768743583715832882262031622429996178000993474449005281465361689840487319157205027716812918856491529715290905611832222813683917470486274818282557680184427381382726375572423231648057277462229141963295514166206535386122276128243412361425127362796015337881666128902795202650277256809644746456519315720674980661782051506001288061068535286127242220761578900081567897295157705465011010083704538730371121384159720617103936666684370992076672233543548905732613811931857862691502768914488957583411304457747164685600432307756162000183603531968274365847690859115551977930426438058171856501547133858673723000456695566783064093470291683673033269390995366197228297813589687190390576015605408371579566735902913714911298882561917818432945605225532036314336178543689336169224681674846479055140843088454542864514186052537409247449412014074557837274723737345445381306084946325503258200628910224780893163335600733801380512322361946884146906398399292019234566372915160949312002024691322071931323600077171629696428116884926654130047549267052481558451426275271485547180397064933074129263261753663496515324795807570137312892122471493097873267891657294390626257276786028172265608688851401365222739343100067193610594304196525435412267292207598566487512451093100998635833272605961507368733935400186096476612312129794415433908848620104951896835119803851302536673238708873779631935598689409352437259452752651438756380092448160442402496610316783005882193735832049081435850405350503952851049304369782262241799657075136193824562891390640163758723178250778691400266718073513094291817483213772283149406019781705753430563008531275019189051133265144411784951430140832645022418482865555990716459429166303457731310525189653228132541451455774337692294492981135479211267256670937012591810576817140385864186334946502089707279344008295216324261096062994280802786367243954882922869490281210910373184830783072037534327602108500462098781869949002663013631046902692096617733039082620032211458881369381264110565253599753698300876803234968826843784273003227418299029911407610985002444208393778459811280991003393900085362356524644855270489326665771447121677984022584649515362645331100358203893916204234807936039132520052446713817821301985331284213398406372274362760448402924116332631141016746071877500251093205622235952787080738107156168745647327068519903057744728709347872248715671942426644037330713628167786653126776451627391273349336750956194472745640074773914685479442417720960805418702520923336319287355071076571495482506109792209403236169185674777834240342110579059974067657435503050149672205954269731247897392610593818914599234494088768837933739934143328698403779260988966017354440439909276003610655309194032477940479107309333765460143789823589083884067668636599535590112651142697595425739769855823638158796501204422562883598102911588327034761521954458602552380039375045772414734116257526624818749923389854433175486734905702654822837732999816799025946591601239376744779509657559366086794922572520573748732032087632191965482517018743678456455376987034837979701083851331268748498470379201654378389441077739123405524109272980585487999104148842228370185601225033025311383453873770316306385084777700435953988213344346314206684088832532709282983183789227720323097096541648564556727452894202763766322722063869664020891500352891055774427766941593546300461055182257152063279098169967719265161176884507382034743690267947003378294280955306923346091232212632335049403253145341587717548137671002716352882718901299615671902944945030798620947059427470734735915216232711985279512782690176985259180208432057468182933010629725208528628849704739203630756201720335113659692549879292202487567701175677500496684166839327228361761199317821126764508238650233041636030230454813897099788598699855112454016477824623677221468935441784715093512925445733621158641095149813608686433926775145745569023905654467855922561183066889480174481400639228975206573099437533695543002628304526525182051590480666763716067803667911647943501830558111248940152198407238384157743779718647406562570470080268319150391112361294319415641216155573510109916771463546748969927149490419313133460082607710771297031838387366112175794433274162543454620831373620973219186630470337879653888769318258356208875789124716676032795319826111542827117608069588634455110361384678337552701497867489646304062973297832127480128431064379995763725898246502611418975248897574357395543043431667140898665778445290996736301574880237089481719604571755442299188343543902639664289425792384064322446606098578374042931252974685828033704100778911266964470682660800413880256940746153229562076643398533595167567398887629578588226425760406380824663499024974856613091970719905023960187915956085898284126459082643639009266821271506222224395566058083130900460757087478538302394289193011406721226726981550465667264747131280024972319941366672079801577088736055803610162579776831138455483329314121479909601786956547904603517975165406219642276876648869049628791006536856792799668066653015206837751084852766481775222364476061555888689157264221092364260564283070856674252026006539017768106989789936466641952643350252065848067244630555459973368109842825475355619199129316646997998182981116907014662971984614610159252034893441866971961705349035340245491726685078235439944120160408188528993779958095479957826211162372030455637476821786832125869067135300990263997913846087917173463110634298016762262709649472742924110568497621951774336523217301634120307714299328191807443373513055995206054307739709399112461514698065672388901509462997447438231042002955008160438717778174857416354927332879970211416759909557873115894491429397232226817914225783962053219612548132441430235352234055069317358373161966601437936375332350134693705910332493742071392255673718380490960228811278779325874629694537166852608540011244629773216056874010190776372896300428427418621659304560544624716721775294926735424704452623277490967620253006146253590477675427738581093002448516472953088430152027080011947631410027983371790407090216116458304314050333731134860176740784244096311298793419851328880388204607780477522221253485680261850518377525022565980478114615547382803477876020207437992007342820523500570255244882065972635574730495431569178306750100178387469182446228612143012402194863999882338240022554379367551905910944593818433823440000224033407849687074012598820067010934998524836957682752842825321915044402581321909959002593957193931515443679349955882585980974694714048355747606916476862180866112373322215003581536164077241190932879687837594195080024636673728233778504566380878666168107513127405311965894321897697796648146913387787227197614311959857548358891502465162118647996487412778358968716270603586361913836704384394267326400558728507336366401081291934008037430069819276609010155387474867702915410775200171884412009794566574194559750452374163137477909093262326810683971524764155771432697971554397593306920055779581909132977292372895115995934612923007944015915593660283691246925398065853099088237392133284890001050089703580807182225232208437050273594188643267322267889010476185206475411612416740678439575475211730621484310310224103370808576507282051116458282355552240622030897882647077504112886565864680321687774425290017274298106990541878923923624445836199493520895771627143470883726631347041267294648204326566456193210069026145335339813527218010670358431731202867392060604828596500328034389883159389316934006676185515054644332086757115363282216619339882153831882735550960745069429458317461955416619018979995922860703846503260423786132011750293057756196896419275973256839437486736372937033863404751891940412739739751503737187663029294305698535562807562974364068416691504567972089438186631378830529730069245890195673830082562586843339564743476718234013221728769987730749163474531902016415408950320251447636080434962348805450604171213472700108475345729553708986066763917504921211889385193278206550977291085040334779322235368114945731282976461057112976971955456756796838490728024293491755767635286768691714213618598827216983799234062846857865353660955505606284259669821212274056189150627413339559469300908656491518462446693106812105914451879660719417199720237315642859877705724887204255205372694596439116857138678201211981754741141556530904491970624346120589118465320479348956163597336652730562806356068488843934202408193477217783344190376833058917677250731078501649654682294910161828557506323158917835191560452367196022011998454990629065751065385542406507773761981398473473448713965315276855163999840173818151190795667723133059965702876885097755888623149401456115307176589275931092674938637186486188487569603955698177122925267792802390292878009468772842468017976575745975821491097910239688753301056209602868519611609617333003929873940333434142760869198651965955271889371752580681614333167166102561085446226094208108449543919187150212400388307304435635516724410580837460107667912226772189123028062498190430471952847409757517014409203839976556821748239736684323212336506255307515975485942786657228945283216410868101049943682819321720724550539255196388856011733759354591001317464313266137095421890787809749891295324701122703975992511299977320328826346989689698502891691720594771021280729961339805760268468289819535848239701227450348148206729495110010323764357399264146493246019718330289344553911858366678894153453009877774271683844594199329276080791096015445834484412550011638513670721470300831075167012851137667477064672652783852346819674041917775568650068309024978328523785608009119209178421739570804219448614596373998874623970277718222388421325005356532012413495163466195542026879950488218334504029777053236277035571712590416466646773019107293622587004670301731999204185903695121551918526705459324375802934075598167255383863257102003370494968127867620261549410684811867724765603427691554729257182035519634856794337694355095948861871576687717693919463012078535897084225112656089609587787811270190688693399887158429896076715133015510397766585375399242539614497829954376984108153636797930768810954230096543453813684042273928081963407500354023261294308116200791419309706228420851783871701324685858530013172721920521337290979433161215535924197386489659302281879899800176760704242256126677594869879609752305991817030593110793166778915063561960494210443798298092449093458011914850736639059487860361563351804702890336060702209684505515657141442094094526024912724681395162106653277867408242276688486385584539629677632867569550031604726535815083225146532933629046642590885982180453042921218009847905904523643297095655506565635652025991420186227131448929417274497946526834830994190638967337171086641923739629749423950354117591851184038814213508819634694548400980100757462407149196852314184599426067282628928807578408536053902646559911461655223869730774124876483520786275385510978315239665866766157200716098214703015958136080755594529186438657668236177573389384455923012853733138405047647349990031521101220399316199830057023349565670537123303642239834157498969848206231772064540982144105819702364792822777395156849397329096192415938995698156689094926439274325586568306216775138577552423238440616320755407195127879078803710205602805703192587144781852259642135949433450883370417270539607598921662357471565050592580958099822089285893791953261379450085241972012781484241349377242370314428666901921959950557064654014767112014083706150556178379015912734780514329676862595427417557115227483838328476524063702442979882512474234742858790962342947892867803521029956352754800525382461739445161302770388764856720651915746134991248418330895156402443285648587136945390777651607512833327404130366647970364482002004279856157260946337236825805532519165329813342875598906069154970718904421774173616102920242998397812765160157249134599608540903299797356867325405644590120875179094861725278568884305548539337171038354956396037226747609170804704661579722175614099197920142509052599523394064660432472340792237204035060650451671435221601845977802575060926771566508488973502629719088962053601162350644194729517409282459295284853077063149471381853541591149335432610269852952726321532591404866642334394863493116235443105845069184291160112269793789527942939078811528662023110484029427775419844459880935782573125854102064099395564177509842254700368006046218992548027346561498116673040198399878288507997724185881679722336233897627821227041080588308323842168768143088474126915646609262042596936785742460048974554980776013933077189709668539468478027728063466228013408895502024820032806365827319256182573972924698441662818649788029948738041615941326461639874723969803346284766714263176518742626825660562551890529191024193385861114836109052762495057963137210443868571513444281667194870112102603569557216784725365432229180975499076531127143833893168033732693896629654268425691918742427475629491048550846416843836625959291103616239540298139002340086703216222837603095398996817123525399891711369442577638191231696050326832366669435476033981289311550505313266969599244365886071072055420855693869437746198556985333356768512873607937026273924005222329028550402901215480564436015808927045079212451634498967148160635018428846834816438702772458932692755487603891961997960465628758372334990751707097891660088643510781133729912516250188680786572530110701629674334980314062079144874207209331492113020885085411809018705387301080196580128635994781669007676451434475016903686617840168839499587293384242364022601646733462891716106059965999790263501616139010767821833188416973133962289378699561067562817468686515411258252831730183285158827370098626181260219041349370846792670726758100505196332168757806321132115788511128467698594368423621500128678382711125023192853705981037707610381106133762663733530947698411129224881479292413907877635325769564486758385873779526643411043396814001547402111007779839552559308230105331549627324434455439997199548461036669459184104661847641551687562597415153707645220171193591981654712543076261693396132414107347319823759348140746324352551674637799561677534867556597405212715577713450755651624274345397513833559107479470339849819771955272768881891885425144565439484357156373658441661115879077231350813271366749765985062803199156769369211154053215334880565508053029505326724116030157678043635751460783555559020324300511541093369895439376607443630794417577147408990105268431535712793206812256036847821149286429669353918484009366812837866476383615700772812542117649819102312240184623996258572201531466743672426412656152593319930321499406417152457805758497442204378430171100070582498216244309436603096244967053763643803158321583377320968450893158453557175692357867945156568575695890027430994085911775761601135603813499008118593847073357460620382577673956011616289897108339020530093826610215729804293989939311202815567541971078615420889175427283281902606714536922358900595135544989904703657999718061242812598291518096439572427100160690842170247865454692095331925226525205765740400725902705378154751555299726782497457655788367147248061176161520479122253326703981785462062721586864468393405274996134307467358142446923245129773523022541892746102483513385989592695280479344200110895604201560078261063993410588942257305360681487619214785194147622119582493271215135424841031968760724478904038846373408838058854863428414554123377411770091756782871099400813555442556712626665370814676008054668920335943039087178806187847881374437929638729949662147331795606004881994293942641853662373619696029947452162958569463337053509266451078207445922881717063951755493475637741476074994305161499432056852922839042721451190725545666963474669845419593668480375552951128819299431961564699285825259109072639596596303242111564313694371028321207418594140420176773866215926509626540697209325770569405818554522178909741192287638557037298686397781922220749396475441694162885772765095218920728778319229423065740407221658286283894186214294135381212018774511180258583754605709463102952377091170449292043472044039867940569654407034982352871471413567365654588967348966969452153545293192971244250866315057881079615140816519885931533247749285054535107635542925149334271054417409305743594623585743280653912415173132360928817027201623507259725279341973342884348093307883339484881705502824730326728428551200815393913329107160553292478909703303216813668990714721383305838353530057901216971180347362691845256630664933022379186591815210079116274157282171166179489343735551304799485155502788683948133014141596484801002184983841798161127967392729319641202896041470360448984266010462588842514846608357626364723534437295539171086739065083961667377718334313919605305233436664581586272857014886801988116799021248212318245423091292314289569953809799981990758894293830280165445419917594675351808411544136172828607667024823325195958199240472301590363010022172497944266027742740436294836577157280013212228258836546722827130281607926434068934563427988127076045174070141554771052227598294979744278507067117828840172739056005697878607390492331311142475565634092517607417635251180921985494818214717974667720372627819826261125887735370182712236415437056990421886646311908669782178784328244036731266232187578567849446052486142348161164657095238534984080598128845372196961080220694080155133059809510232736107581658462418022808613536672875120986459357977654674504133825217800125352506978128554857870567519856777118866546858390442014674170465789748760472697075251738647941581373995973961917856953971807273988902966649353187799182441836134017320599689614633789375856827106126498684248626049721754663017789634306897791285116468343873039252632169241502632037505111083442266250556951966449061185008568853326825366182933996090671303016806099641752421905085217912957007902278917760231605811196113955745806143791654657353470993647621568864419474131409972269407590609262197214069146102284251646193622146989351934067798901705476683244737205730712073449061896178221774328434900839869983130358912442758289046513712408217744510294193960360261601595869702121255356433050121050352389796990374660356166144248738175259674747855810276268165092354163557548855779675355326493983948275715370841394043746650796122799697330300079015563689364684899693239504280961606514997670345287667116885675889535193899638296430723536659873579316442312889406828800682183208446705121393481537231570673868879144177558220707068703964726557563870354084432508256522229314884032588913156815750506476885442077543219487350323548682846535212455897938951226551489154839906960521880092419101536507870990938786308495138989077857670689310565723966978265220773319008261790791426630124819803323822127628742631840784076562816697159260665778865259062623955344695706037870777422898724700796537649337687306224373211596513151230829586488786402033899812908026347794284226877309149951539779460030876934174398838359768571545843004882773428445211700539874122247433963003583613192371656894159021284848495554284975011955641125362445370751700204766647918662645707935291834227235060083591578282984675995236443518670129354852470326209205467117928089961784950824778493720661750307641585927544156263299640170920298015480615615185472863927586893551633086695376301849497839187132162700650109658211591441353616935206408313447653569182240297052641085307969272803251060249734072631550508422720701379532697682537340386285514240710908730816178964258898573493667828550510859298133919572562458455576499794305071916938917671152162048210874941200981474864253082621737096490043808013671905852676996571401627604365208107951264933217343965510286905420427112664677548039610132988498830664881581826635952727928346392443910265221576902369851242011389832562715242280454218970205416787437531865196093471744219206048221959647705225709689299819144265656847789709108570879930226745699221079979510920034411869230650733616717811890549868904252653493555280928906051248325516972484237253541440109067093860743011105494935818083996812449906800328973482803236933323763658080255523373871684252800074763351139696821758509059388955772491011118866273956790472932901970417509391107537182058150223583524294564334075265007607342506958530695609155060440524292033084342480124289394197873649982989272616153394955241978927911844126240354740462619495481891067135020868456931130486192513523299188456385407152922670123558893570430312316764494069051475309328456768862170702325911143767656315579363148393460309136145730605763267169589310103153770326524812540300223290848197028729176496813723138415612575680718523522846947609357265056389218109050550380876857653324725289522623084110378705110825598805036582574876723403405084839105579565512503224730904997831606945123698058603102519059264636405636549340151213850482836195049079936296323040533063048158269395606410314694946384510318906646926421498372060859199093029720527389362733032164682654590098203282932064559389542324404454325120350194456357729843418257925253239146263410934520391351860329184582326326837352273564923627235312505961121498201345683413994667054592670650258966300500159020702833913911440776452271403157005713272624807689900852775423916819289667390222534861098405720066366092930657568621885203916675960718374178515157222488248904334719104567506217946473739359440018285224755712457687678313104990983518833318938395488699130645332029721362911543973448720309998856243138409153028057139807843139512821708618825888738469243687452085865314421781378219184441796571694654954780214197539765078281715555701782419107234492717813145996285146782954724771915588185748679992199295826318695643046695848102833468054575976127573244579869013543582990351370312546116774327481019543095160521775136297856302667094241745424867082192585036057524453186043724013688235760957964246032986944140543078830376241452812883991550644908689218781589111597526872423051529746206358380479277587267994143216439771078622714148180142053297155262062675625027945736115702861069188118341631774905623792968402754305990113759836194812140319672242816973958316427870525606548571810939561159527081687557355806722915168094045010338623466460289051133165988693264380091023983488332676161147952346367243603979552089638701325390320482069660298763230463686809624317696283421598226471224276092925416730449584268278154821219062105378299054139189727178401702938875820615453773190070934289368039926743397852101647913202688861066879676064523598716964441300862560787287660384995390212810334664281800564509569854808245823331514446128941620779029220832297808932330418149249305588509756049598110244387412138511713893374144171790306071913561602084897926614793280279217935186960752433155041391690293988815172774700655435216347764363538483020166900828518486628509272476881456653372842748815223281429575709841406706532174795501656488723976106408581835885909448108610768360771490324895606027439499293251166317731910064075306046669061707371407631773291498076986230525435867891236899132686988917160171682189682164971472740078919091412107864959313933556527287889172987378594143808432598242404544648452817113216199494822472346092244059438847377920932091746292312555599182323579394067090296500674165120487547832274532884177301322447407341968021755592917358116252056778506132992530578974212401501894814803389869433607111081379988902077098878264684126309569507966682205844610909926335607359973564063099189718605556949193011002727808086278769152749629583208044331484685439625546550447967091221289756812999598580026637307374145700467256535123793017451750735428927372949957772529833382562675109348601616361768451191989331353986728067663965028317189207886795711786147789410516559363980643359730034517337851964558379396678298565123937840586148371906372518684493221383883992181673409813595731088576711897153971505937118522615554645742150172192504699723979929942337749797407271120267539148316574067975809607488266789361746583914889588045473326163063587379406800787439703067197261002502686208299730684256534962777402031174518587135848811815010130782985543517963438618877850501825155537767603913439101503929399595716150757735520778566917018209420869216844504145180448170047230094398955202245560225054102707990603796159772117730547748170652863679737114078257335638855777025284089835808192777614780831736482432707778792278467049157917867324796201879072153510292050208543548894976426246114427238408324415610683196273476044434444990108547995623359494705343314117730500781486505132099385586612146302903604862822163115145429202304756177974474909140910318312727436589921941605668844870218985112933657602188309340554871382144357736525717323061214032763882933261448943375232290808192095114778531762866061657469084867401811616146885983912449199895000975154687577602953246850326068416838799647464073654968955268329541652083512578089947356080809538064211543058004374435483154093555318893228633481304182633502794411293540591443409196697403802533741575542825416515367852003661576557749915844980853090401590903831824724813871550936093720156244433847809876535751047606128820053411432535229593491848277059176167723317608296004682925421692799398694262704807166839977818765867161790456361458645274814667695626634741561911031761685896665264156401815344056477700107653647094989523429416070727973939997865796256671901404380456683724966712855465323241465125113610561279933476121249949959926570878084117589887600581656600947300786410815682841858187942495068156204539478200834325052017386373076252522369871381730879767822698380750717787560065785279734673525329990991758900839495540131568252532464056422027720242115520023340301173768207009911465846161118305676440133811789744131192394614252309131852101973154692084563379476672510159804010622492536814185435529043806431403435528775960697381199114650667244065645932773715234827938036416857099155023962055890367115068146131903296252792195450591875832908150557357607943207885481980176970214880736867532429280040477908755517127338180193682824095972311998999086447210488983657302628452282068808292464507117103534165637021182827766398783987756342699450934853115114385881340350430610549483214892179671534864928477420725981715993255050490757826077986413265973423461445494543340665271605175516372539229211413157868478888810033692500678174024129944203331169800297759302107548960069582599208271557285649837934514837793500051268794123607745599469782577523134555670785049711198291789529864189769469379722350014241109470940916906349696337823827926551662945200391713585947197107853674219334118601218437632016760507793223398322701945787957563498727746962152675024450806672573303492888999507644989322870637490574447149633814829280476785177024417054930619148053649805189141471930073420972667500513631686829835799513052599636844026715779953276147570985288568431240468377194644549735720579240997656795002426406313970193875775703384006102745271698222470038206026167292746769688158677978615502252653624885504002233325223554018788862409384332683590357268623787419775296487375722352743902972623359277733567481869417756715077759278448188476507400756292181800771087855175155767038256735998505752260276068412753915112486871488293328675844513561462574593164442819007857147796496529269674520627379834499107398951845649190830404225364694546521461461737366866536424465239206723155393381900710184359819173488640416748551735927576346210809837238861748162162757722720305737253343407066846616356510837490238076240813158092990735344993990820011338875850273094463663099532351770091386972785313037283537210680226409146098325989508427088345278597264850476483614777440065861283817672778268114227688298431556858763495357810105943743873595193352854228546928469959087444005458278232405710635847996627463864322842154556909678550861173856586961954020490962989796176353380096948270629219397927309966845639790888651350775396160744436905928281948985153255166960912158452562506717567290510027538019953676039734562981846037678978542625718967027123118448560246152058465209622215197464364203802614201564574268709416612194403165579686414924018549523623348649662007931411695860749944720538782491364186462458754778432475312308077274617521811177698500846666011594714665235973588197817849009332807590239255896219422488994353768558802710006818401816861832061073567019612376140076081166091393729749292495437968019741974784120193322840324039523882100119576898084705150391969905027394859363485597283894468917207595188582208945686123248145123426041333054939161300532034814918633952105069647944500437852258148073545459150395449252318925014482004900444451124572367405624763386186242070291779790199539759145921448808929115546117658178341219077564334874193090570594563539375312023614898340344524568492861625029357097829620276416025220749736752482614136788564958204635058450775647671612605751815083473968711926254768638696288128851648315283640564759277567620667155465624519315699955211356465334621565373737286428952302648261638433596386293628212244895561881985483318080970259631664085686536715076426662356959621003948408409436664426578754521529308125893437076024261047259446895492717657377980446838818491978601592553080492245273242764541218560875648796560946153719726951324544177119832221882982652321119003215081267312071767630032674232010563799617281509787790235070100513887420525644282197842989294367987152408212757699271511493072988198688690187162031915246196682087356238245065532875243169320032514429901004100206274341701310039519824991741206588785052676683404424310485865170981994659912884493540804591797738991712312563881087917486527871246308438495886415610488952292779992888070171799778359375390493637702843736251075977077215505485324886495591179082904916051018348666608267066620586808916129984107109224452517133340347772137473776600521935667835073776920408199539732551717592997067538889074812256094774808541188597026626607667091134822293936948454019796112697871693724081506948003889207794817530039660347793703089538679073404897508168209718426813399412959073159583803553847418922052792370560944021071532488208771689230376033664370880538420349601570610718233032178467942293464748108809488120965607250174087464103643347891361682009249634218540780618858562028136802673312714210101150084281045734545996514047531135017593383835054493288267115333488595645117875683777528762213044552611409638499774650092532459002675031896714204427196295824902340055221545442464296211855582796965681378974485338561815008474632609337843376640588392146657288238835125965894207589803907037056907962782050373164280492741039228438258599522136399423220159764018937191105066662400427214955244650977105584866671853910475888500869899680380523397005231989435652018389852461749738412632073019666843306727393080650596309683530416314716115879032184319614904300672221045878203231945592210727160104665617998161088675002402662759318979948456822505622924023380118228636636751150365987478349025222381387564326106204421000794075834047999109027111199873437896043001559976861677569127221750796907034344605289362665957618306161382602954416731698931565906231917879621265173450431521941685221653279431701177908951750413045172837518012335959387633381949750203486421558829968147115047492106706783826374731973085310624603037959686297591276606694434724234650197402303672608356195020380217630568609258653996981517067929969194834894125711456821677063025555459095462398860174157975288433887218064964729724338660273050813976284463850890967258810036598439656476186295883331775990301941882918755743697370139101137456487344222975184904212507024006349207083684164849461792435042459372021028431112454059989073893284914618149252480800436564031926064574071573256025906977460933537626406282941114630726865883395014570599008987728437623687966453930207608447954509298856638680674252820324840264923610450908631263993514819385303042617668400669819066706326973629753110006502889911997544837043489390480467758866672552108406757829090517368113317932633774175307891129949438075291500548079123023871920933000546364817251633863957598102627836955750815067678884566159552060440482169486431138323240481994873841896119708021053773558022706972398480466091667826828194059698906362418397030250161720092901340141406771074923698231096802401471946200081173358714509999554410786500005195909245740147515081010479518364297749146790348182587309294254846459056778503875888798839625065718072203761284280293042632803186842735296198000682358886188673254845739560375175632225224091010635667758350089674346445360529576917527717651046639837114787710343203592037159570820477713629826136689876128760084228009104306501072490361972995898618551729219695985099144404492634007200587438910478041181268832073038779015738118161890759287766462643522872096845068849060926821105938362550967906977024757863964254428965363591859578814659985944418875014934758621421898898904950885747310210760650547455523980049956282215875842963450029712014422091517834631901625711548606744473537040971337410612166300020910774270003450954926076008969682446736875391020377458196288272430335923834270989809646947904936745069706640779572757679638287428941858387214719377497439822179974859898970811158230965507688135182472280093283698777917382372297240674225967753349562373029350135750080347066385569211879846409731189646996299519215794671180214569403970283745435994920759708166919182729711321537967946473396993078600797730795127050923906084657558846701039875362012925540547183243768306901774169321534534740118454635715574576805166481277889347765814969888981243615793147755476461864975214887924482991525715204670718575196841167561398541575314747050436477909251342169740965019946953270075980836555620544523675881053986232428482024393989933886132228105775516214857344748438741943376094653861073219334598881339825771492616533647839252511211230692155721324930269684025169492222301881485631973186136319703601194511592686475707715827543712263975537778261975030574308621227199468749135723387042761570074698161294648177129132578550147534824440873127203115916562265642934901485262908152593594352455879811378433187831601794531461035727149513489406056333702860376174943645701639223862564786145779404863237864620339322808132432719344825848422799193843991085984798867298195292643121573241852781016729925929533740055790984861371053052945349659175691267804206812547513946112002940007992165677393432507074279097906559180840464205101535935587065088986474362132195723182991827141292005968695126791216589380580407659929926566401043922482928192597169614052615798833463867438699252388260055372838673126032816501481124602700137862928352129825842563130906761178775475578705712631808746788632758172063592538298276987118255026170716537633311251863956764567237770669304141738327431616517220361692857241328776665577690419340809168590837355834933804369276518470009976725122370165318695997597792868170934966332468886380856476507782051166895402359206705486780807541974811383306731759233830925678710485226760221801772129826336258755675078423391530326321831076637445825916941174967352702391368933704284420851071599925927807859780989248857235837554237018091246667950518107041185809729479331738604780886523566180621640746029438864618597517648027396258732586604489318481146874507759717774218453202795539250104718373868294459582627306324016342851104551439748121119655156931927852318266611217146452395417013298423177551398221755031567178175021411154719350874964077315886851649016099802486245642835150787326655910586712648080997949538139227787244150845846377539551353957851386494490530988283002744716914662348357673222645371889806828647269413554739694899262126289099171346612513040402259584706522156525642980573560250190239014825384978576236131475018967848340309386787938493937996236387694595275953700680586919670715984715077123954579144892668665189643057341618095318098395628076500475095494941926745826303783419170957793611252164320115912639538310104670960008095604836439872120837431049479408099732791519553535043076664394655992450443344358976171789892098736777138311392015583576331749330638633407139866355883565432059211014362495536522802366589271148988788881527272278724101050523087878954961759095919351943934246714354387012246236869542322272657118183643167577325103887918675609733387547138837645061404939931744581259802534329607777595859991694804567807352806993228118207251388281614656677504542725930655437263610951314162867633030512951476073173305618963573672370441214132276819325170649125669057528408093667610546493235388717664811876149145116617457374367109466608942755027481931626285073917514815062836914683138159571297236746462427975286709381277306171762923145412835457770791366465736515999427984167236114940019307105391932751291512291360460424683480490323206799138846994932936516181334629664052094890002819854862845509587688533147122631462291181116535439624914849708978905957708226943161446616145220139414256502049304732541171081868240816131027278313170969180960121750581534584825023745778659101004222224707650152711427490163789899971175201484387057069377809976600343786911225079898632274116568629300977262777240863773474929999381089131761303610696798321896642680060434715979843292059450441205267138937495601338142282346953954318576254554935770745438836831309414565943851192092462115040008933581988089381678789865543162742199052180239118864079131695500844503069683712328525336172244468174542077094789685781528529148654395842916903307633476170860814407372597260420406883163765707711657267361987908793692816674164614741062743846388528358418376206228776019827158349301707000859666655330310524645227263825696186232221640722316433616133523241435543607618790514808307699512889027941179321712949671297809483926684342012002738749190659126204848656197741709438864708202838350218592965264580603663307693667069953521974556999190905993956475072138227541187102822660057059715672952476508361025964316734834774945202955255615461783556097624060313838951605960014555618983473958111354976392622112172659497764154842925107036422745460870645021271958363780880683072986113756004102777400288083202508213449100459032387164599707842505755457414778782582645923651802608567035541024384798144059418685536202756086576749674345322810784166493455109667451477311593982885405321794359929279829765655846514084634432612027818167896595878156811693892296129816598027066666365948010652443410137442373414272376515412654958721044921373207419037137619871314102793566509368433976492312617438478030807980221481625675553180641475763589441585627677383226786683208936680907027008517295840849270121906481154861509616135990244904251777230787259339608403235284366326157129830013344888653847007657118282903759014071223906565209858724712258829156854656858617477252066037677043490521640302325690337290014543391560069585296076397965036205439591226029224231396943038274308909666730100044941175178456472450421633808765214709174424865319706011156900979746326589645930296872306827372791137491041721046916960213708861381554865252356212283557183039998014596277947693777541963910840718415324392046338903402245775863038493949572601315889008050327305081651014609100648519980154765274589035657059032860936844507370278537346242004340788666892423728303473160197845511963569596340974660546979611277772759741697923035614652968408089423615955123120257028159462739922267069901332376113744576537840979547086797713848617020658096546791196852337143659209752228305700314461564144962563856666321184345378261670326562291610086969470649354376536263353468982398541591298915625949506290377095504279171990165828448032326037967532118771491605301071732296480507197641250458279892132795643745837382488309730052832498383683705967753565421969512801647652495455767011526562444974486733225415946531762706234695283815412893994556190094086094708220874102982293669035671766330767787707023456433531405350662215380530500513001349675937912553453054036796351153171632598272087650364208469922242140873795051256745369888345426300483682843742414808423590453091185533900514130451764165381885587332372939399241646778301601191677657444305690795644593807368214444503799780512374737452312589009670175168997021570415101907368159350989618702657839382846482559539796561355155787862037875447168629542970492409865960000905021588413435999563285472072613106359922691713818631354279748098097160943123205637193565639172375705633208550310263835533365383998595508475180068516644352657342139039963576335095602370741746656201450650189963868212202405523330284829859795314389413001078111675959792795646241649837167062286000932182554976321979444653321395774007718025621764071027347021178660684488180141215436277266080593695946519506192639478607993605969639765203886613496020347878754263103160578503352622241436726591006388351066870622287670681257645637312187425032377865693801576083266809704148454017090647971469148149894567780431819377837838617745496073780290152898831738119923552280167750243175507833962721382448638801223911538871878296275748960259024459942033684662875549254588638768551225922731387517546871245922587085552522134430055694342500938703172008148535303219741365623338230322014899868907446797085136090764111301779776104338931907463153975633700375335018846858075988534476758358935936561996663298411152158838373208071078857339499916193534943938535161930729653732568848613920544433059682434816994525879955221954872965373483877587712676034574683810581783400403862571176196182625319014211562970669426992977590961313273741355168577002938171254002763886583478935506160247147036869074517590903218092353212191051040653577769395605934877972497193077703694683453262941840913656592317219535537758909454894428122769365923765850863020195014267438980814329336344564238267319315634011949395455925833528676380677795448970508590292936789644915627947597063381495214633523140035686244135449033633311895966587352078660927301662613199248447272769064498099086358998322077371010929433967228186170616462287376793747462717979488763067567247447167498459190341876004051540142787040200494351505536541131336008510488411535700307587597955318189119469369338493859609642177099890056107019378196647807787287542623755541324992435840135249981427607425566596094415012912344716833825349052275309296490259717523128056127147311422826625953802251888504361617306363770862213439344974397836787679026300546632139317926698535319580053051583206652378539466522766106298395075676123198626160263543549824308139204593002360701580712674667398502644541134701761982906592125588196368008869305564367770228431727374673227949441872051794767182592456677436660892164695795872865458932190448548543286946622238806675430977898174499831112439103064275150144767928248096877363577164932438599994907691345034071786372809243337998356958529948110140819001172727236932795478545485606418410364661937126467446397921426414914481829311338980324997353565150589721813374143326212445067686164252634550340098257726269888969733819327637449915982902337610077204066758838068757743802784719447700117877005092236324107446398648513300319963107981940663044568625908059675469302382619260747174864202576804868718917128623577112164157977213828303101426563505803493551822636731543928970808126908881401682001310800480944653602772302409094199935461924846848337810241173545682589379886971354060704646323860292926459446133634430027222365393610139778461733226351934057343078458438780193325556720745675986807292898803199774527868045206555617276381241107114674417326602508173421236190597512837188622704376048363046026259474749296235630733965109434625103804434117876561919100323841309549491048685262322829616316674853920847860492556781725872123422919770634986811015639310329908924978376792671221107809411750430714653217441971972328929895137336442054959309873706375212745009750706235559944715237676345879568003859924873436294980261755206179033297074626580897529978527847548981300475141096601750410874502813199210895252740129345925776482535572895133299398336956995640018637918102094866256516175368205510512881150143110408305674933281385593987344203854045479572936296002596493833218602021606208045664292591778542091448862195448234348275404226451386807912053114413097429613354786021806751951300245561236713029178973923996189555478349294010887360840574125658713321380402582258739330900477512547739906201189457417166318990878869966605522115793447384639983705774152458290007697346420425180726472966269453402127698382148441767456022492649056583883614196749424242671508020004952234004663808284101788450681107227289642967684685897578060824650898001388767540890111084177525752956913656934215926943596344523784220046948545887992909948371136046199910152924077038379447040161417183594590586062775523298112945238848976363757964171332566724643211561256613667975204470323326083593600596600468763679709238819033181958631922112604290591269083559187333156835320912438206682016360976849601707315996144421242877619017543283568207251880944232275897443509857504848170545065869510411085070903349251519034356169348241089666321613262385585807769236170298388354488951542252028421057679859434028675528862616817125649169362325115551490257235112811883145047819908732931840127732442810687666955110030632591242463538086524595226936148960015624163677464994570014973864982459978757924835166975605622813609271313677815106221250603977249893314490767491338739847085870869667215398766197678573984704902547902167206178674524734396470147577600415359657410032217222170317557911582833878436331470133170395305782309299517964617227367946423615569221903094796899207910875848823602076742391795483810227452898339494881426113122276723431162439348393271657200342912169261929010079467565078995416300681103639272707448369500945225456647956008162593569754689372909062351680541053858029945579732133631497311966008722786243554427005511996736962565558977758891475469418240112694585330137608086274813696060923042238532385866759025717679308427588950081932139898542534274120569853704014636980210203911081383744945425275815819984627348138632407796866848696002489149713363771747266008311708888760315860771783470184915033873844834600701669516608321192984993453615949270020374983573919134245071063140020922885286654238536838494257426050200748360732831181099715052906241819970383216627292545206989882177541617938729343182107674887188183327122929907612814884765880255940963652257379912276595067242027949340136758739379787641493965538298159013291735564266320646187675377830531108166783489750575413203188434214812327960751216661642154385623422799575434057802915348970612993436296541564537470641393041880374998582473461282644171285850870300996067404289641618624291124591061505221146043785644637575975054128371704207785527272337081472931530793491854104403094702678121923556219349030520404286200701194706863648650084890893632374335549028734580991666222310258152079333232126138009594524434388286954168734141531138652481637771004408805677055619785468032860940991523181260814999578942012234376959929238393856599213678022859051204311484349914256549199923104823433266885048222976159444984436163883021763161802038454837426961065176469870312965533583243162383215485515988003098337145242014788926613868171099889580208013405110740003191109536994399479599745738374412889243243622318001275270826554960183862600881121927790377594985785414444288006573637965374351967920208508466343742000070622340378746965011473239707522406799518896609613271886201371391454908105880770887558926543861231382579750450330848957877256669645554965857996948106356694964870582694382518468635582121189568437262467683669505044600628695688783208720334336633602756956118832212407084830522312133833554828279314720705563580344715686459610321320198060122807346474104474248570225407142716734335124825521134039267847001551593021102724704680373150481780801915215976776879987915135631163187381784028405255168586768520654237767172417920482769763667628681506395867032398528456093440105370637785227092111088437076764577963614381914322426780273499007158239191213182848395493750015665754650959944240754281878763688439245128648484907573997291033859153251777111647675645525901926853258054017519847278339424659349027449985137890245005734244819297853521925339358577983934317364077820848146765741921822243293622965157748141410884914726071444926589460548881980697746425917983138786840962416591353012853744058311350389039699072892480814125934918618106110217452730968411270366431557354580677476558876954703700896161620462512510690468702302582609638096841048906027060579895537803447520897102984183405990641042554965697736616141473976255816894085311670831680849295119420170714512735487288261324280369034527846971705010173031602514568448073357904755402954916596402729912742811197916398166335768745703330094870475414764884642618328107785410388032286777347920377223003138945464268049410458041540306713217596768769258825290257754368160507062068831933589268475185295258089315405335358629077837542115344836492736544046776561156643431510597210483061023482985976859993095489566342967510633010204184316044190060531958506613888139735573010650126658598909485267223374890284437145389397816532406239193426249151988179811815967312700321311100675323879310329522165896637575855598593662728931115624548462948576784260971425131071740095263509775767915386771617424861247952248254155559213232227033537534681952671106166945928238951576801711122177353743987406835101940123492013939224037937520373322202622237472295865972806648031835218874804703458740249196270817991344732533057927456765127806294876885140735425424557698803457129318531318685192301672846512540639121119864654348166025620777562014954552239908864298723313206267952320968601672357719973130969821374053033750124880949385860406199232618455204104554772612732977406028906077072148973158976850626795828934561775383373617195952565591277284095758646064796268892040167172820253249267484197199990585800841030218099442460941216429231400275879969548510691860261974302291638630048527974893815018410847328740313268504713478644261729404568595701212577426336585308039933304246703652262626756493905543789646093127228807676187289405313606047835747660985327769306063029163152026846914087573912402415304352688832193820891970213254226105627189918624651673819199929487339973361957899803201650264691498643460861375182731865503718270918894313086973260019597847847097288873965474771211346701237000090503849363282643291938490132120526989854273670272151151482022030641260849981221895089441279234169921075548616399495236361811461530780729356569085103334478449721049526496704983219033433900347550045261519984500747327843443100201020282998670991858227960712577714271784289451386663244332959736517319070643913679247805808917930641949484824543702668672241975063516926931968340281650964059440897751999217377640974628227912179446673015936544342079076324128152459634668803270306814984348250767342446947698866070679188252354077045055593020654672877271842505261045581737650705669390446504747267557636787713273974986854517715971270571516200624563398039654032644850080529570416326944815533440007463138371260244206874710828540569405806761817495571464679488654522036083969009851568013125142025907446385943704731267020259758716183140295982425836363448204891491474920829698586523262231630326707318635163372594436101153734445923267002961440587916134525479505860484175000788417792260681161023312089858955727911766424280628489299814689821689709727520524511250623271014781299964420566859395246041564489865036811860131219767674488024554091871266423876669497358464875247973493466046687159707033674654449748519469747743170818088674875734077545992794973112043451755442050271332144351486106706873079266114346319671781298686315095607400177007274293074709914242207205049020558508219914251471710204482153544341868642484619019506612010177771447506979604929955860395528459350847158133032284198341553005142380077683428968832888317972841667331128794522005502235573142838925329632664914636839087450497613930731913554941278728273675520751015081480458211943548281085621389607339506711439171634116001655613187331016329413077741127639553451435515396623344793701083717157606452394089799096678941633740378135089589245563245806130444960429580903841642087502025309255646359234127215305471993062028879947585485711503395025764112606876946793022241491790577041579880555591979587838123017960573582491398515134602660303936813461267507120020930252453945334290396933127882117834227677727067476172329827890949038075044402306174265307398865203828416179490930885429186309040006376787762486917134448083170899401952139387554378967152539907354949059074488126553573602420726635408988487804370810581926339169956969914496655010759046948903263055228154926793663894350759637809143604919077641747514335958769116297641266403357690612144062714971712015108844110305683213355651125169915952678458285409827322381579335121575526198989134133876280839347788127113434209321712098963040064190651896749959834723711709510530954169464885345184531864251676761645544678513036576054964680448660434561586151076373049710299550740804984859986800658893382792341466153830191063702382190467890335782314581989805638869314528729596571685995251769965343555365662577158609561656334888466691807235724827066828714735433636086155109443507900036417725243231461019041427774789548930528108215577619861028987877227990377268506096122120867241490779767182568447032823069515930834981846432815735908795736537201595064272515014912463090886665491476153851107870397672733090107568264167630890358489639074170055965813699978240233376463881672476845734448707441737752701701462288575757994400035089077028341078990118660903039325440404063143207425696548498057815430738110535162830513756837543422009975750289534493185230901815138141007433571793775400365696699051095881997836272974566887284449988590898376576971427326647279965163983338034674556867135503368385885444331477753722939677078639683239616146765753613509959036285642044901804833249623594426509726590666169220527528958910146676234995140797634836192159201448728119095828380390381347597043419718910372829597824396082108200314910108324768049478705800420028744871135548064847045809491533100137155647113143972346134404621956648498982260797694879901604467354600138114795754043723241551670263064939219537525455955778969422286086781013950540623641755110025899926735824979959724246786656665282745400061282908425039827147023490305908132160498717031294466499589994319617885861311000771152469016938098781731504739689047025600815274086935074105884045516957238310765331618945835569106695968933944971097447841677696579937932695375189074761642195700232239283351854927310741441638087418608126736226970389377494775783780808298506986437830656138436936480136681476013693982566214603068465301947169006831620135292455752277401205878157159206423007108818356201770367483204313090398983997173034950530655916020383575278163795556224723200264434683229056085715403313933331462413422647721063064766707307691747809420848054995785868909059979051756618895389322938377966078777453079085769505506933925534001239030170464732197729178137899723651061455542651871182268038154953358029759667551362308352827409953431261293910208503874357301753349141016067269171731856470966854056965283350498348544969102594607243992856572393417426008598208623972972018809951799566546730947537456043831142683331428461917922091809174019642056202361342962724384543175135854293816948154061648011184253840589993222895640978353271250280301371442665558563768031338066972396486847790164944412569414466357510454777412126270034803521979897309264663588414906286841597325445806348154738312438401003727706243936097390976924427623323154588552346404806535495235251749646257619332170327948346809235496656526632225363218488660156411248092690674412135853675336304240770957666572926440830923184778375815788037887569651723353505676815069497715733624026747763979236760910605627544496753314460984682536233825306124948879560898761377484554622710795869660482079390490975638515036063572395242528234748322393758804910228721994829050559736484086218622025850601625675690093921314013433173980121752831662820078293227474416243458389170311588743588812846012911071330264855433488437576291193473910842981837440571598261065568434489070780316729941031364613693119253906980360819094643128420624532091157385639734195619153561166204679838041519642901204580517662854384330023946584924253230265989649608207845850911264370015806063887695006958065775733040449040043233377183650109980861722225675568519789776982755513863782722081678435724367099134131859688319935490269330422015431954146383820094866962274543759880638496744252715327254800658491311409320403530675149600092318644093578747981591107732908755273006873435862548663907317484412738377693317449851171845336629737259989573728767448151989124237255623803688776353185720364909170934463290279861236405899726130397279355299950399850094925894145349248328538290452153444879757365827743269781413825969104910408498614317662665975030750641159068619078955354287111740212996083626339896163783019994596146993925812724537747849085264983285921386249047665311671214041103914860835703678239247683685856706814873787759521305643947138038036842343708362689517051805882112375121587761862381533280152674373972975073322918223863172203340738133936439878443029423314945385147905216537199139138982336773961334952971373959428153797565324481277888593319976462217881126683619063428077694954823417877062823087559286931475100657266283035456803116373692591344346367249372702628648716167256347230215699364529284601982812547591823931476239071385845137728809029389708274344724082471531130668652244300210420530909586783200782238204778414168587929308669190044471633791623562759679408739681320144412527319107097330223149074702561624147230199701148302653446258871220294305863487559049346509878454739001838671338311660323991262865264743342113955346786525941254261374031399856791632516768080326390373622687180327664281059578625774153550164205529368338542792371025614627938761489494215881192156279734966998024569979775840613627021310427091620293578705915094062373262752390248969500351371369279185677767317268698629935826226482164095440015168866525165362331967714173328012513390704175029438777521821164403082357244004352631632908438832713236518897705005139088754728039017896501477528784369081762107258113904366888746619575399119042540274253224827771076592885762484583183808359029380159334610983950783316912089235319172764861541219466922396996636559375836442941413890037486369836421237542150317648461832000846108128291153839511792959045562376784032248227139388226015849367170855215408479327862499895423668810017149336875238492691953052791290958023860741121662480131787663520069635810457802118987763712158633900264541951413698614760980910025212464888293659178178197001300257337064264642329472436820380059002375150707689066188554409497177000415677059436084595080448895480400308690323752201221714465181142888523036811493991018384446665760397849998553150691601149037759734342107444160560459370407796146466502963239322730432216346350950420823767242350432215161097651110520442731738892648264462959340807692596062784109458013769388022576418573199821410514073412608090421956072865194761472547422500695497268924473873815651738336808778819551465887804056007265159400777874202219493067079021706167623128847338169476503777658298058605653123376732763363518080456267147634636026829695884498576807477737495259071238622360762461630969510757348435060531223285885561578108557549833618816170930247440459445715473390885777653746796837369201107663018240678154224851170521342545902264804548847003120491797537190655412287080183348693091407537172194795733170720221656442470601718127338206909656091592057958471774529005710524354456150724161763084693806092752909749860636231910201491819541871169589469214947511695965539598928512625618879459229497405044902632720569765470583715277697885353586816395941236589652878319340998788871480015000132142539387171032007505575579380536787059833810182415004693281073897925068905571678792919002280455309936148152823437160071780973759817390654532226247491289270681615472622493124467694172712438566673785930358716272435614899195649802319484743342450767826104988641799263310042464679736194016145939257177552625231778277687527710878946709309293119052659757444804196643539171685405889010295170219652566293964825936640377366831035300173900444653861279927823292397333200491300265674150049688631675268672742492369760745222037748379592307632336770922719186879244556468506518252035232353686544984302835930404375822050782525860056322516616014940367299923113379561485055075753319246450094578010752118374576844635149508766678861413775256423670871307836540673079609994930377306650196301709541012946369963027796898494554048375412630435492286433425777825138131175840489637721720204976774019306109086958679161117466375452946514507573858851709561966665223917624461924344821519481427500449345885981228824824916090977971678754508623223709603134530424729984324301944640641555444478513734219874041457872407998647109858561344261902801503980918800128229211402488971749704184595203252371282020987116946645504563760098976242116744825032659778157066901142844046030933030491397709287866351308400673992869665573748051914053129410605553394177123301820016845272027478671376999129418119844075833204069745141563936351547601337922852442602432541591070544480024102365601913723761244998334092422445890353990433738022344626626846240045096446984828067388146142358400107332610062655648738751928414091066320473599547632122112571305440777769457075897751816167683149443701816016344639305608778077194593721626438386843311416980453613779453150375552307434432847151782828264946668428852651396483957826790235215366143749120451204314314671164296058866985310184590627535877178768850274642354550052344742057071512435620869681288267090152347642637924808268378819624090712959843786028568742201075943390081153121394877460614574616344159868088244734736789037688868929038970257210763773051829174824569463817478773323394098668762585399799246410303536167298993165809060681706617200076637788671864992437598102861789076416008141331025773824184159473372578882803532404164322553594329993655412284623927387649211169516589264786460528383596658372297335262807483061048265341896301193429734140629665969640094426736496179996741607143297284959100640823562509970357052855819636686181770575218092887975705449629459905469099189840924528434776774281658159339069584400394979254502341048908994240326864553324257333393723230496890828428553782126259140533437401554121786720202699350883490905142141168479195864853334428102050674151776908477015828042939352169662278966132429168680374468087873098980914499835926376861316174181435690027899249063495707947841412006441079654594403169613068122976500153626322055947989266155801643402568995603418080731978108547252926744590449707408372472120569064958744879583697857838695403344660474936357732514479230579610541472135200730544767022671715699717840885353892280427141258361522815506406381467231316894952682551221085495392912935988673743969922698420229254784298465695161316442911328943709014805598866573609055995780875564434918824003776152867126476780901092085316495717020081081994268695411872522698684635923494396835455664656348795393481213500965455694861590809728745284395918528300013867169230766561764020500974577780229136287467784895389297908920619350066548052480887470956927295631398869840729967771958402854562314867140906633101069238894987488720322068698722106121876679755479404281708909881498095642394179702488889578485458512517866981739276222760729890512190437291688877531396405659531136837193429884495259356078404140937860510916797184888467232989531106466905487058166953526239482240670818948307116057343344390215064160858391749542397534893306233190770706762100568058841006828228866544726550462791813770465167732689323152817284238287752877019326004806658508227711462682172078987001561920636832273308881336265670839389501403634505428066049568136408943404389087418096137489975726627573370951147360516041696900450517249478182942093887206786145384177924165996220196386561015576713434396468077996163072627177980497637522791034388086658949449026412825780342619090706832716351837131874240549319535776180215144552677818922364761503950729972010632614272444702501976226924229020454738010553746627780434391382779955046513873460558115120625479077025551302549730731783485153701442996393809476811182769753719627227779668987117624449600011146205007947935386726837783447354142566085170663490812193186194340950483845054512446035241203714030772760772744082500305872206820090839142350273240409528564451213078200430231503969601583555794800753825890251844661583749451285831675204641577632001159069052516695222294163683661435966518561441111575718613446643360704388148875836853733794441817516770520236626244614122935607187934979937587365350531802108786958265029122523416835842471550124575506760027477606680115451690779025868855679218638465640132741692143029249894035973003292383185982177693659325639401991351283437755137698066115948273776092058506630412642142923737986838115431867412169422355012555653663170160684110716487009945067938734136008497750527984442551423281639662769514172698087092319070689146098502561388352766699463801718230564428573131124003092962199384511789936904412870602089853882786640118191026717236685826561270321333600036441145531334368604830384016244690557285163757114023200514072298036577134555153549582609939526294146315311897835028105315391771398982447885793711460650976242822009474389934035241101291293316956472118482072344973227028163506272060319807042260533355048348332517599227946931076492728114809923341026597281438890162230310489877388170975466686641752091072604339484286679449412174012791107798575974149140901128413591736587395988893531469652462862295994637693739741200577416241733272728308131122775132480387690231795817934920952289219258956414648977082542664413251532000393315241514115269656225161096191608637966959787201161221454958964154149168800848893929420716498224346077766010609058625397995152015023615287730422883603035375458390581521901172682096003117573455051444994268658622263905221368506146908529344045117187289221770036825924524551133439473270842075476695151403114321220458071928956769984988238901223290505043750224798776565551917760589417578705613226820101453372160744023150754335297706800572203611433581015733875343887269644137841965716122436558775747776260661634293269862755821929482672458271888503419585750473607062253315329043762079184827470367546406587856080741809369574075348289107029894490367871430456068291349380787458348028475323035644777610485258009219925986084039344088304118072759389960253619245559671049721130020044325500623882060503171046645759654607934426539101496052190673641134946132454026352359519629742150174384263259815012211884579880916228739922268584422391274196664749784854618651558973403781774191499739535126548348320049066188190738786853590178217855977225412276391702585194124917359542259353148469302845238492884841356985314871834311532838675714226401439903069362381146675071360948865145431950457691477155678664301932444450397754289029066924561931670341361534106241683042292861486990182682297814045909729139857713940860526402131968655972230422721958337549032484595525341751020472719315108521889849628393525877948404539001019370333275818773250731951674534783088200763580818506352310356996233692578013035329055492918723100458341791958131027757843466530129633997151425875547784433667263923640730033331324339794806742092437695156415060974516198898341151876114684192469535244617582546638071117924722289428499830935467984016055510569511767300480127268753993723907719057190143189414594832294080494243928984413627809191884453252231075757791458019597062740580013467779895653428908228261153445481275595269613390076625379242944533747641967191397443207218743398244946182053187588043055816108628533374201310626362170762899199334221524266840093778565625138972180809083808357535321811263289676003907787022364419059208284540070993719464882430716159476885209851944086357994413378064641885878612149121587799765917144146157541420007388411284662636855124008178740584555831063013332736632908018742025903021137492637311926481278393073429654048444569347346119812507629459905318284664103145576407399990665476552956156904768576125249150073452789202313982561614458261343060259250155732413093669804294695662558855570903791111262236111519102981187355188261666787184725598313034938515430440690872953979545454090126849251538819007674450004414741747262774914067579617809928561733622308592435937891969925489131229621314424721830589276925167769109381527838320280757776700070410760133076730043146326420620339317827309000666960464630933583533277023510501318085199569142918067039879318512621559823767756013303429382330700159089053345744419869557473563785034863278053373558009090939402571492879937459150217670447487912690156813850326286209620622111371997046222510947550790858220047833617187050272020351598628156049818262214272021318291805524041254402917872622052324248319094077684370065830067546564760434401842037256040983964162132204081432189028110669267528846200526986550776466198765074457310322728601809139245006023873781915212969001565720227157063707627060477928850290436633835589360008305174499617251510396191368205327129015989036397548321865058461105705110484526298805233825303072272205718918476418557354943029618130330474529242110619241045366069121805389870161360872570663313721109446240433897432230777848399784982453935070421417080191238559454941353551456037897149913555209057461974429585322917796826087465132350045635294252822000035570737536915211477410694209308711095583989670809805368628993252171168509265950286965601356146853502974806546115422100182310381277609501852293228115692182237832734360870373632905825101098981230999723041331680083849944940962658510622364480836952062758381021455942967231777439117687781832341373046270122005740655717275457344899800063144149879038350558110905135127741095807673922623244542076570081456980028637092229956826621240345117362278084757353862180962616411536270806287037921228242470303530641721403472734807733775883126681615924879116675657809988679486587692841614294894998862481614349523622795476535861481732796764179381704582523869190288494564488974273044439523831311317928895099142855324320232996463047087478165653531209224926165829811016818498966053179298891476992088132823024824523729766714850529666366597904054336521172965206570308620384463207559236208777048976582972966412879938558990462531218351091826681406314907340216352082789508907730734047428991075200843926290080745134727168597450327555984814844563839767165684157089564072788575132304541465564583298764640335673547677958535167384498281616073326806728350140414431831304722192893910158419590987590752110020001313453121415247897696427507890718401843806520915874446920804962605691875875453025572987386740155860192209467328432276211936301517064674832265726665636190704813987109919178560704276200629980110075684974470067901453829813139126933056798191185121387204853302225865330076449262736302759985633645481658378549697334717163406074695871787294258795522284037935389547080217939195048895509987885961969412379742961183936491976970614753709016495555860224303680184408491156720341205060015511092744865648804682969691846044569605764048729784653138623264783748613045332036330543243746161306765138173591805383955876925173148200579587650278043412687041375096570380364604547393451368699457836358152481538797753926873127024692850773670983349019602910927319920624288774653251949513171085343888172735105252924279004301581372516697061791527508889949322098052311528002650116558647808526972474645493302715528794996227503483744455568644745475849818968904176967347846581531217382542094595384745977156898872693344786433562729617472711889864010908777652280221228510761797743526426274042790954786422133408622846445230579594321018145384638575214808233569946145851120996219407890058481301421244182598110231968298047627499967782943495722666845158334480612050825185282980165477955427919387591914831912964199986295069955891069813684249897714746550146399579642727916979568719551649385566215185694871722332723889232337107155803545670407488709887092494768011758503923813749763562486442527469679265244552246714995324265489216309413681146632943476066961251935866319508272434180027536594743908780506678176487963814628382359312727978100873151069412691044896346272765073181965217063151846430288530921091030116982745597906272197201734417743092851361846693280458179543919929953749548699138831035439286280916877288779499666609598319119317777173755450072482890132339247022270432631481055083376434681754093817402939103164967769333583945808387298761480398263212674630730691765429317890814475689305209636789532599882529889417997109559105319265785026194166824243065250966636714728364776816498740014793521270068960191248321291339920437802563145022268336584931571461384077796269758518460832468354885615186229057769343037298821095617787658056585748278566790761277832849275709533690327892595281294782982143697952325777478895219838932433063758956613428935908830989507944893720941234838733537457388363962673469400620643060354284931865454757226564381027066476097272025941579028590908161297010816161619306066517118188043980713486520750525333023073999600474596830102213389118284923307241334499382118363034215220797261121434430386851024393842725091439344197844642528709381877581281145110425694100978414832230643824840731038978499481122539850277582940824900045849863639976891890831528927326911844129254612006480241732306263479640441213504168246747913277498081647603673023573005189758895713949002816598513245081568858330661159102174001556082332733745678242142517098942020912119483127616574883453179992497961499139654492767112095395897459799399431962270492353445607047388117774486765001205064694522498081868162393481035986835403634728322766097139050806726894352717318981543616417593919227976212898940705331099987380601667783340144241727097638663498494034210199235023827154336665842188793223265025389890238712245282229233151319385697534856669638751379227327712381456685413885302593232922054718834872514906100091820083070761184365741657207144500987992384766230638011789718627535322718932813899518191002289308094713048786281324516546656425447269038623631451765834743928308497741177973173949828602149894070568562687655681447210910465115449884602605437551068663734180984927198458840362566830332109984448951993210506399226940977953769979927719853148622016817176759162387163294040153631617929239364775235212909349677441912437790812641818473869089139617539097580994850483999202629498888447937973853256961355263726739998517133605171783831415391551080040495753492678300614958151313439376738409302281976587780414388726409785191488011401499839774386137271349192253946990425812199052606308075995822547707927489443804178744675312311637853206404216794513092556889957281609403775093595761567070247333023361350356484306799435688312151295583992994431800408799427194974301578745203892605507938979934315450351267420473411452276968102163793726557937111521209063976468648068842016655608292048714939940945166390509253195196357838620703847752463744967812467751343764422021752504661007152505905908784099461693551312153668273154101226476119500071684520241158885710779548525684099765978285997124742158344981751535976977963034770559864196580513284870895145808928495756223514020740412471310851350774182873173296289141763602216325893782832139984156768823314777604487828464648142073308046122660691106624880659644705619132723305126200612217962554504749279465625502533602646801716587964568748740192071650490452569592131744024634714670494511572255184042841820416603241748379930561326580839798116635653583606194440887885534892401937349705681458666929298571865594856665631662788824789879022776682886358320267108191085581359840302516197138205120914173395223558653941742336831832509955448690576167580409072227178894167241339211895321013275476073774256921417053131310971705828390811830246774303288832259460797725551115795097971108256032851961770164586822635272370638044392247439798204332246051086876014771780599513268872391846143023295540384531875880001970119294375369416387794659240861637137504518690442877515374797773643438194247238993288034207962138780776736117819496437709086931852548002991430387464400618156274559272375921589792678121044609347429553380830066042229228220595732664975147614455479055031255335292365561083884649765195699936816502137298794558952850971155265717164161005969917763697607270221456553835096911945514395758714972774219790065744531358138518109477628400903866329834289384148609429550278308603202195010541002173354699097651480663832809924983907673457491692333131847321858847833447969981613791091916752408481010682023353340149517145066551590108721131673953078604634727872557923507171580428044688054605075418377657297171023811116927641881827957081329722751922602984921112123855813679648398100078893479933611594961235783795118519090223394307679036411772899670009163172982012306348812791862333709742534650971573130086760492872355401711678249072380953525372839145223912301197393067854819451950952280538279014478944460733782778780708000877114886061536181874452669401321500699428225938892455617457259258248184140683484753633511005087173247558117261393009766722242207681924871447583464041813178699899650974919392318931648232697237835809852463066867703547254287673831950285788418923779953550215163995619530880251359920536126283871899670230854228270527177536832058841627976888778324380115353129162581674950708005543017725139237509984333057442673619518844018338439343000467990507496557479247383275322539832938302258486950449632493918260992260612761285439846418452013625163323961037252169743552549841953250896532035313428581933937347047995836431300006605740360798617674564462237188260689433583146577528374567125487762515882927033148801365060779770042072526282926717783157270635358043671513953305875898596342131573424274008557569699946151564084515779501879717079108430191416026220583028914750977198739622730266915926737794233105934807014199376318094949169578188445112451233512544571733274242818251158321778214457396604707086180979646181273319449383335871262178101317500150448430264778974465158288431053077618994261998675378239207613836700804695562623579964078850786529777832290445302038193208387723240089285109633044372052878492922673882402908665559268476332008164159512767295665977067116086322771442072867173787527731970176294157954467935413134361928225084190912834907983949881751766675517353183175032937951357789836152114610444204281514693249453474081649284639628321864539339931956976388856178299546345293093909880480222547665036312250121947345733433359369494848454662203317088640765441026507600493408570379377620983148565874288769909419872683627735425468720050186555442792898128298541052007278629501746630189200840950468933905602711086864084206491707870524536063344410154780354652275921005839353778634702406362904084602832608809450473900570002081501952898013570156149167259996640796896388355725566105809124848761779050889077762102293688397276046232752110235639431874206452707985290539389347859180568735683379867905501556781138381533449170240131469802811526797248367449359201028981585915351701833302471880289718655930539965539950341218514529959034037469540644462972194981009494166026510055164741998795523974482157569539793605629339214652870406068717996071295182173871306453211927388453252150503264274725552042769556955611973380682959976950463689691671567501253842950505201214951264859010952249256061385830989335196837137016982370698454858216505349176276924484052850817977823818424083497265026427432070150186282524969180403226609657922351069690397478223896349338909856728085646354620448297563731891907903629949147529264860789264464878989729281106947165623266769355455894957178679728286281229019072661833453821964427604502088929554574514309798746401421958288097383931985273098896071432093515511830457244298643765344470401528471390621012373355506010073914689000614348802652081174152449883250056329602371650098021241111722203084858353579764447528514094092784039558472451972832821568932527097692544781650039414256910760330006926519053187660749649344321792997993288058447959970217662987765758296941465575134139047598942867519565895416506587827590891667646044214742648633428588926455103636723283777002610131372895402941264693939428988045343077090484750940834216041524754598580566108551039421318460741057158982141956725093010132689715833971302826423662425873963104602477272481776483837646555395236817425292635293212935948733722742606542520848269250480250437355820090108713929315893619123961501924645318967392022657566115142300371732310885056047489433931375859498232814745681488603676038821758839530862978110624754372477325656461766590195943672113365041331461376630682378772589072978617318958324309456860946767756343663822972077422010810469879964093642569335760247941589866943101195027683025326790489827551836798078987101922831035268744474736883758820374252542875382139340893179962726701160679815248996433551169239356851887492323799882833984732851852837782737178877570723884117401972090200283797223070176218167694002201425072707799315108495726589080638277088626683471177573717553396274150788440253168330194931953811749149402658827399674667856249085507277094131371861789994448554367600438830389223701172332336642516234804055012621426506496096260811486636633646173521991401587453731712376736802286815825101678350860098238176639186207179569256126717124037765744392472718523037136341190218005881518713224001183170955525415456593613063056945815060709294734135158885064050076789480515755781921347978801501579528701663012976735593732995898556868814089261897327590166932764372783133105109396851346269164099581059026634155330809540813093873907964898113476252887474734665485642095719028089839156704043280097595398314310233280345875302384019293707864009410433127928089210245364909139542795602978036607342142399537822451712427426430653934462512923699682690521986906297188976682124313212959916918362569801376854962045641839842595035165576803717077032091624774092868711070933638402515363312526482239549118868130102643338089238139055972019406275957501356354204601908353084368643102650410854280814515294487784035492082727702336520481030939963138705625745238252780791868498487887431987832747352794632812327904071738908575857992778020626008170091793673132410455056565349993584386061404017707874296654100897982939769072861327713720209000536149390886232598726451070566053734749316003627262378584120968138585352527654587215886347658636510610759367379162862208172460613676425521948317838992222450534484250539478622645877569972931535948775618450978813110967648820474965478862340101518311796106102501942978638474039303787409154430575329798179860637711043764271544450922119167870399192059537681030376821017133223721336825536892556864495961452301828819102888986066115645784297658127501461709986440826871261178474643313698076466761997710650285588973601585227619134766391744528505028550163013353070322002536134126303737846197005741343151474057006828953057006462043101152466208071736690408439414821504375318598278919301682024026661323298931164385086326943269635627179178690519632700707483496303212100673221338750713966698079935498228021573620569404326991587878835805152246840854159212189029724071945438607536017546740734074019508118495455310881136959549950552379144277044308423277497560589706703043122278678399844718587408689049521580087028210300123220149940091922607310449076184901808362392162850293147521442370979293206472520520915686373068129511120761869356045151972338686016236390589033152916789679826751016957797580799087295379720430408917396966932300538179135700596289858560583004439550011486382974661520639952406498595302551835651609274411232659504480534049145394306764145294215718634376184916538587032068030406947241396750835233106660144134973935728304873659526795722502839627304602213172342913840124283298083269898766368289385461166094680868356785553179814128911427640466838287716506667570620114823643025767300151387387422911868117616817843939897775747194155388114121850875094876123620634255582256157056067621882196749301941255187448102303131494547511358000043514636833712671203140198007377109260860791868169401481144522691848051364486263950015483235134852898919717870310495929003596352311384184251844188670178992012416847390875430094502446770630394421434166525142816406793735267953884754626894169217587711489350171885672615965407673602221336485346683003443145159048762859051195450461179399506855530871213215830873236869447395538685770391755313069112152312968563051900357567795542634969737565931807956249987746049318789506511865643381470145879637292568782434886031176559342146782096573366377448725237631766748475160259411005260699469992414769145563723109180422857040715284429217506709741358543432321007343331508888333143401418774817743863137883089022294824289270605975196941391106480965325206980715794459196367593484580668501600897615638723632574251156892884983234280565768441450307372661699494941108972249432687659137548987440817886993608532602498305178489562569585971775566978144111252160435718057368462599113620890474236101928417531230386212373549486915136928826754081934883333705246977138364073450410783225445655342670282347549097842021720141522399124072626159241040079103943175120634769903655616171269154614844339672939513959203210938184035643548747032666267014761889529542529192827628461416440920685129415356309413440495228876605031028775171331732180663779332855665790581340902853524002696541070195580966028124678751488751527075694185200411147041466602750528990854068667960514752389514152275274748400449084152382435576524521228383837175782333033668468295067189010988065836500415290936434345735123013328031988256473914720447013599173224516566753819295637569068558842429476430121015280168520077403391086466806679047428132892249864127440315811551187416090514139066448522328264471144516140158558416496593914782707623131472129215565427836196040756180322139858021360355215853418619012211120876567717854818406560018007789277698247321227971592897812802499373904725386765405789377301076654471942864761085602920240380936224086536462346350675460157684021242374110867552205997303056377447073569872162944672216584372861733974256990514927980309457406743498497966557169938148649640158736324016910677079186841595797320371913098429458341630412185503926651946240791277052870249250772084737671571919997580937634392300864003175403934142039098846751872646865995012650649045304803116833160683571787602008538009373773199158145178806741535044567226697906111844671953637966068025287339690427986246425543650915423290441361538703943575059801935159937676568803846274171918929942790348360438323492708569594079987895039286685812311962508636885080271730256163678427768407681486289053999595460600448156954950270809077679181058515244839906331565186869396160283490887439506931419905248604371001733780113702087487155533065951807483702620251643353943130003180766250336421831430414546424497205659911099365045059220836540553137062137356399218295687558526422394956753834039665433799523035756508486361653779121779981735583461437717248386904814534418476807134343675612656748169265117252372576064712642792360103865390204085144642491838531105497560665540566223201013793385993479701147131357890767259283286825911632994428049683729447236689282208816775747684507117012156701425847292448772437717258770465456362465843192437883660465951154206415381563301978985649044356476694346250127875099269125917615157301433983817143494072406187443797176480439736309503760363839463902704521655657509031892942215403536525918197046017099683017297108420163714136338150186192997395875808892510442821648587378924988454381587426279032433271441191245507462823030288126745764734547142948029756207702927275535759522194468102434852863319791750029604065964083226130386988449554207686276809186598949023321306706252377399254332725522503685526677067135494356145341708098461544832270961773232356917091186472813127091492172641676933974695983344208680707948522635984229259920956699711450054226550239843593242484364160387500168806451382147756913283152141960688435725950913659595468309773548891950611079131767556818772217975969745135708764740745682882740480782633407238152605181372189640212809466047878729815324762190613653011692329575214276757580333960711990183332312816260030122528232592902983620118561981069978729408264158715611350877733394601543058125302400846183123135428215252681614964525814439919029372662004944328406364278226480223738634838943265518597376299656771758914345261425692358346256066764008705284429088690521830419591136623457593128755813600223817973489543052663436673059797628666185448262041823796994214031303025581178211698350855409629375462437469413903492680595878579504987663291135747826674204872167717463253696657621874658253656442745991544874658708764855802190352224477061010628346067078802372252702247679756356455382444301528320859805595102938705842148332306339100875331967003560894845119264124823578108030567595126970666905789804072004992897182121407048111287275530844441756421894640295760051772858524055941005351158360914329476447410210688911484770271381358894158350856861777240636020780959658631917021972416605931498728724679912774384200849268796328338630452170633200742155706244495341967215247149844461891763857271457968520229322155634899092641298812817494378907659106421490548545330545278681648144848932768649624192996787352309047638407095824344451044885223838278556019409866615096608970748291674953101076949656119990858292300962524554344952529319535780704234013716604798755531379734366063995037484808965022178061216671623548217336455510795517797483269078310502907360757745760184581993490331014224909130334748271172247586577082121709248987900842967595335551432732676043777391187098003480544031855575162517843813478514768345543160618674628877447477051057746736463379973828347874355936335585569350225406075255775106930671879644744439281734417435349401239572810285030748633648457306877726744198154519323347542184564046470121525721404150596381653798356170766570275489371781090290108016983020973903846651334849718366393830432478695960376672538024750178478720644919921579088387948580940042976724525964023641736086827617841595763637840844663556407044882535020319068497379289102253518080593377429923120459536736442768005832946822505602641111209651695039072517070054382303283095535203389898058050122277879142089070303447176944662255889240254467279196392929297231560350353865871541494908479828032902723673037190181418266125274916027859769414729622925993617424651948030425672662893805080852449246885305231438940761808697498155439594520936195183735722201561575338519166736557221998183437639106947591904589679637389067565913383235536141363943008354328130133045572799003818951430556208261716529459473070431921600021893822656252345209084548990455660296317815571235430640715133863967648843264317858643849906526253311043997350984927683328047681528648782138559409995225436879489116760785361303502758588351412358177389997667052506643079817530464508775120254903214255514845167645943408417940091885195077689449928914655978285433675463711966174871317438325460611382450173353467313165770709455437792378186922919994698707200773470036565006283004876320990766858504552225060072056203440837902010039343400777507539829065857433521844376083326870496980234711918457837453338667869828416416283541869911480680327646877414883995297954349352321451510960481474983240512983463942540434103468474070501574330080831027664417926776067785057158622326760924038586244911506551181510022393123512755022522230577009056245071322771208037915881592904646877230832872762762567620136682185913681910081079460810049050066333687493980000335590022301199396504148805131832275620643438007115613800360425449665582066461815702895243674760815318320566810310644749441512111301076064525416745449753587733255852741840272444999014372944178461890126417998116843447631182076842243889503027321885860187010598123203841362089091107405597491332819410679118553757878197387571718208935991096566745433145240350804046690484075758497476824673309134384779855936417760484618371597182156446635990659935653584762969426869704001310371608636613109535807363234447518706326352050825438278020011697612401532209922697978728221948475629609581961177551561887165699188594601142654496826572520815231045570349710258447917762636080786824583504992842600723772535779017856892902031136362105885409401954644987966306769605735227492862888643367079172012639745204908896373106887186867592293711836871389352531994367433542925242512441344421962242483939150648271775643338738195142285053460955719967006541549307894665975239336673943126710098887471648137420960783508765590275205406482655449725858161484931139264741521792115360950378357137982379002460453788807421677345404933937056938754491124343457674162028779501033660418042334381702465884828784896879915807718809706230018971521805731358950405439991966636949970312720538985093329961871172115816007228800547820688028034203872308164560320328464882632579030233605575188434485828558475163283696336052192588151070790286231664779913904414444958750423790989995507430049570613425813379895173237245705627679674301295581481926069233790524863954002641240554132840407795144076035619584586294395016480611470222327795834301411077610923017589349201428500758719879780489478443102612872836314104520157743594538213985212237744334633464877980678662142346226470702494728593526698459988832924298723462804357404548080717036088337385816847043161517714766465538337566043661263605059670687009222108821192976862542741359779004242722581541959876420621907095073181551813062360888048399023952113750128156197683305654780542682201760874640777162475917542435657311510168324755664017375420135556418655216091866118859508614291828536335663897131810716770398160416928045128168025071934165138393841763869517664050205989437875784967597666989080179607630897049523728982454915374939059976497036745010745446176163316507931163490930799502364587996700047840438344148746044805617052319675442090597147099712813092629494514639092080879162719022628382114418464216752279671507956731238140052309405514525762701513360709191752714800691098210820676443661127370780243387360749831942003052626279421890631623189956166495234624681474674645724479919685735428310168090067289544790219218370937155579139043072779181524018260102267573327334967295981982753199205957174301800005460372137675498925622927713658388785839598184226600901289423249401964055644056228924043206153168784537907728985329775690274557285791157786707335530649439432643528812467179208262246932184111187088700447486130100424571375329281477862404451261116421934531050967058738518402014970717249223695228717429727399601545677941732001498592773450364460414933951876795460362078541053073013961677262765748189982948075876409389201112940539703251510006948643974030685614868325068560922069773349123397123488900477299192728302980160713017765994396363366659424253582067643400810473604873767607849005699211103316872318655291493672764183957213000537478075217976583131786576436017398309158140532455502638737901539283565163209996330049485202337396487202669857935128062913188572862835641417344405844098995512660210667963798558402159963067108381814604556331578527594745018689745103427276067346495513865118736611993071074692307474339448699240176139407849428845787519369798539873855842873456018083897062769861070061385627359897603133833568198899316011488497603324350220302190938448396304604716987235205656652043234473824129204776632674951539714346006996503847191642126427961862860836409666016350778245176205168482742777723438251582151803906022427298272855271713357236452671045681181214391725494070471392958180922927780716643150264180980398182285226369300169012127682872884226349138661407608798977600640544810059553399371137735632484118742114808266761708016395518448468509167045930534434318887580528369132873720497875311861366607961512287926602340998505152186645565041310026607253015089503287808394534828827660302777203883537425773235298813718314297923618360635466675158531047668691618640103307243719991795669001878537152453419260596719599846054505471528035033764274683057867802827701551518856920761169940096468024078535804964491526007463399137227810207537552316693575425542076616908317699472942885207669336141094915192124397879447540509794330349359086735216212316218618839395718385038942047696833141058224304722538099381999845689336722720873457110307136174611870592981639644439773050595825713116295764157855473210626657616939885235555456103253812856233526495045833747123752492567212804366836428810781891061645979026101220973814321463817887924032365299003790475030614907396096268837072675365785676253616371915655041510092809659929666940998582048260734779831270937924488032027889083994447688384542755103782723703660495616094760670092222042123998161273034735489580734722839374644105629076894650691024004577396632104123342812251606004173593261851294499364288090465246797644791905184040972620042083157759224510728193271108416062721201718264247855363567384760508411576344651073176837973750710515347376040099833281630094682576335297923878910143107343082284696529883705950502861343345113922623583178645022924973649368784236235992838054625454771506639069795060930286275958526618100837048569609287246640969092685348067150112137362422089193649883601983242095526159601218583228894506660114056040755404174154667351465515353000881882571323465249190004968281301605345865209274479927782432672616357306983008684734370506448203346284555189031222581485468877537166019605361708008071654218771300885083069981739494453085811006996562992724555325005352926367586772513542633576273621647218633671960081798453014152290932049741441276328690959159248447750320578360570886678852818607142033914291473591096211119113854895415161029038103360483929412270685317151896665416861536218785677783474846356155816244963595593728004528102092612288300637997125792160217518998836762332155598493455624291766375321331839176300064072514802003091206100600579421634242833531952210594436580718206639811428924323441717929856766766769449488107835393333740185779865674371020493617489288080327783618393593364921364904092037649682817585170901737948237575112002205239214540356308163999665658820304650303169468016106783654971805421248077617385173420285384119034283224197374188156467811815024307168542524335629002423130286484348788225710974469805749279231645443638092919401951344056210261059774761823725151948695002115868377070499894213511031731238891074644103046716461235123446677998233074645454933968408502260405275472402577619868144427757528198895875867220047605299939594386010731303455776174415601628350039617795544491116418265834615463392257217306856313999218707684649939624040000361302458538268815864438203376189561387080458318599931625170183462549525725110340762517450388193908539995481577097830299174918547843382051927682681306447169636691232701123011000937167924032972744511286950773455597367111276090855447303435462335016254833450395661102789191785420311275944836623597167825745949928890743173637982217528565002455846779988889106626123219092119690198822437107977743341175444748248291435623275555057222680634125735697548544511889085446814731796375621119470756730666523795573129910092561944186280639752784385682374413421959814559467970025317931812600560086176731065344445449392446120321481165639440224069443094783944284774996963661992094162368771149605905489583903528310974504881537482653884325985096319490805762388007882824994474202007519387196682503588552991801867899128951963091200574068784669203795995008327614630839240034408923512152355163560248345059331579733768684957946548670578122272387577796200760797365543371237749946897478832251171157633567453942950881485900499328883755037344158009488084573838528851661727548549992976420075122846491782644650263946289068073508764245505001600858172085797301502490499049525558338023483726717999244032503541610239456461568517801053830556276342712561992773945706972840426763245373224193414337661088762888270341970067982465496956438658460239343263582038874134542828439001184560768493702099778616496852400050389126467742697182379673045323986379611883155590865543987538287553639841628038995094503744971051085977463083615908364929418565541152895653863548974927907295754220508132995319581511344448356599007861176546624104951581731708723770010840954314533713443916872692518295995743391427925241861228252150876284628326882862884823205360705574792006569103473739920920830647199681094857361923079639228307614954432779060328743576390699772861376599329014192176195142687927011260858928369941103442873677627359654776347733726520353355662826973579611701145771666246018457484960296067229605544623257713334832484472193100459490684494757929512031659988400196933119341657162494552446998527025052386286842278425751202378601589179901202558591373147424722448675139581655996294436032173481239249788710605171804623876664533048590063095463704653545360146513436870401798728165717498295507464200674982650922554065765726945751185627786835482346116659778481105536634252822300128402336796733369904128123142103981805679551693903955803381886275417335570131034406161043886575275784131100542125017567960053010846587340149536564458486402555040190321793558825961056058318197184727586217829415231549669228366052696148587701631957275843378345589893833505226781549422420666172270434213954145248185024809429273206124972286274400211519855160602670319161040744295071914440791564947432625963041912959747790845708248998528786353568757701328940465873015542813357346997447480178750861738519870502267205132886597318417918201036801157050061079286611647021584115115632993232941397765119541560159450458027676316790085138155293870218762355875805174065574197150401341694705657795211845069140694859846354313656412761473679332773486358697929286408457417873963032427953825569837476385335041279518214815833206859725679478754069947547547393542764812307955171583569581172852200411095393424776493312239908582348756959311830036879963079202001995377983090135391075553325079359517329762461524284765787943716816352432359431877935404756572017327127063712076374455919226519248923710544430869138477574485891759877364150791811931156294404552610339343232716995117599098772954992220232988461245781007218408370892109276204542613389448573480392311681775142358469390680168796263792068064772017898734930835306930805731966272918268426209603227140123343740464419305994955781778286926479838140456806761866357007522571787710180874350923837478060467319771979194378796019141539293800650313774919448340877258983112664009694069174058960965896205676676340513487588205872398681662594150611161887849857560037905198362917658103512514934546851507822333878616201662140801368384520566172535407036327104362980166214587866132740089846985115257511436914979550176262218004773203389319789507678108343066808530288515985330315525909892355822200455547085916356684341307176144528946103736042249210148132596971666341348691375864682980777131039256952325301847565421281168462959427434216516680775309104039408939670588050051567046856494251548715943131147236089806851906209157897737153297428968184731340619357504511133883900476775641549226255250438386208950120513928934997077181537310455796519975261671032630220238681233012679972074368893042821952242910996783200187153113160383371119574130112305159877837896675017944325361216449237950112522204132005687565473578330533819549047079198691797590819686197012083548971067870780569897372545497524557594756440313536530766276666365261635778059095185897196511835217168419968572765870247100718899271165149474209006281206923083309543272220535693948957973098880662238953636156688529867300824407591229481549404166420296838573380271726874561794840597861748030770597604052477886177548432910285804073159220623470632615637837175981236173993177772710344509886675401104946375602111153112719086387973823761445181064119019510228201709204197959550367053038488290890862733085016656678203462389436144990435574704620231465974721025263619857737764072053970782443331504280281921144652493987774628330209902090045187799754774503226313426772697602097421773435560946595009871988534803983867383039161694824445943414948607156282530000355575506681410689572154101895531822680015456743580131424040875864655256489820370847584537741311110351247480775500375657446459869633916799618470870786250655067644387993368729083820737516172572297278909190184494276299494308667680038484083354396319712250586466733542771145315802306894378840682694822424903993409184097225142484689594298091890928493108692740575011113634993063607014802599761830733930398169277861236638162104772953595942150042630296275276790164891827252316221729067311215963427416069334525164483997227460699984416601937509683481258026829229428449267118065630379306837424618124137073447871929842536912167996808364866303518442312502990847924555029825208447333607392333339398604550313172127974420497822447258478149954512145308310838688087087144667516406026439402717356703987919294051747938300453744494997331454273251171722495177132096513308400644054887362480413433330451156453859827391045058624350644725609579866676600780399679440795079212812754066582118201652557322924135935543609452461627902264906987635121204168042416943519623316094496093053360461516193281776284931617330208179072566234714972076125297273526057728688388352385395702062463968610858431010570913348842924332614015935131002549172498815490757538889983389655938410706790926068711268998075709559764672078368824853246695114591102286726562504900939533608040315867397806195478957905596120751084241966851653463236359358541079063661542686392931544701230002664193989250884658014623196449079875787606100220755805132380713347950365884367487792251177674027446613718422645457574350710787010161671142420983672888824943271548152486161833108536403402061210241065478450583033267798264438273269403878690052535205343264049320397695210258581055181743343124993418996755520061384860107363239265641921744489109096601951592685275142351783605206891769794140590664738444780656341869300347119110504866701612524174637911559631695786945969146852156408741159174662073937456037000465874354695528264297085775874789431703641831390084155829196097079139549789508195362323957225213397650325884811265530015417359864435664044524785454147596648917403301159062977854297105712392853458741603894068718997809955277060898620401405292160547452852837878190388515417971845269203198480286378636927767713028592969834342163956893933082254856296631100234304987683483740764894957038150597995156459174582382505564572261268123484102827177356352424225107232099474756058499488589966749938139402904814406374980948956941639002693493285580937273348245338035971218609091249648858802918052008694150779695675298261468702574497445449868925402788944706899448010620653334740945984742266769384749097616321619009476676007813661866909783144605966288336748443866302678578575770729291623945412711508660302706378829771578524946456182789897165915986116493160537492142973730358818283381018010833776623561662253708158997064366523482182020363357220729117312287906447390374084933618537136980041936987076082996585707490012603979015614549414156150485348741600576021710424489836042786059805231785780179216186741119461728409173221015490988139332838812902099390235240490766170586669420279023773164388894645926140207077937750872966286069336399948617973428676646713155722340117958977164705861261118431131360343782929764316730667582316081895918430293342984026445169091127270521577031477701616091367842658804652726734063909770816055399933823989245684599297491517063511111963304171470798708382871785089330017598812984364572696901177388633550646841461069409520505392409694754009623356464941271855597937948397623585153694222926443628100965811364227446370925843365324418975747838145561816278273568566286888870970980512477559632259234646549244107400878896843253986032719101809490858330633814897008544605131179410175063697273131739638849174094757938073546726791244241331274406773886562673610959530613912868332308245183125480992985194460592235061268914368237927767176152942737476556980503528318509458508659292759168670739333850714826313174037774087112692249113040439598615600335424620335413608357218293293140139816911374596333303935386891148825388623214893060213880564968167362454571520532561554735788002945090937273270450809120235470246458614851364511166007198493706200296177903462674600571656799892464502208483110421417288378310332148489108264103604433400232097167456925887739737170422357499049336694221007447598652321226326067779776989596789044058518101003627732193938400264151556842783390748884532261720376364465306728104930023976559469457142178395904125946472971716312715526907840943209791427170586087338114618647744940710827495174601236874478991898535328988450604464378423433186318572910684992930597517337539060405777300901422144852995975051879213691360632666199000288409949434815744821379509401298213954779003293354234759918477428315007683232153448776723984993602570789107960399123399895346383971526089405398854606356864749403970234824246607713458969460226514090525893864336235643546716919182804095691056783817990945192312973002894506778335649007308549023328608308776477649677001608173209832038819911690338968226360732713685135126069249512698125913473639773544128610541129059269708231408384180066591261027673312091609909264884781769528956457037963365424883139527995768435160022342230407319391675428603333005666266332030768071693096664201944964319268366742304703482335043677747140950860724152053991810971530032941174605578732368642778730736020833495756560461957509313515157880540223816095866044627273242837904957026599450081341961928346656643794919040335824692038903747460635855660809910536914005566207108105421255469678474391802406399798201338744735753544952131139863074098295526098526282220942658413992794362067688902295517644810178864987509530973490218527712951025027782323541078792095893843257850459786012230577567097660440195371480942127379837295012242483394167269749639368289938334127555509458083087955906196759744310447995769217799388219778042084414485862834226313455998745380275671997642293762103505078844123916352954754099526018941135603398392529477575647459519013793156888708452573755463650021059270825974025587962829650437156810100690899994529031939111851192779814336415922706607655509414641865740501658452721493881246600185542236145092485196745261098403950122847923075789535883297277984291426692302171447034711753287299904264035709158665053725247830469156489693145244660801798263011826221368559220692679267135251722978006088136104951863682829538799561500467973175714990037461331638768420853168803921829391360216349556445579470180918982982460968897965945098648821591579278226323468781236873891123355670417532644963331278999785459649888411426027339079371014929162661246362249709616110007150551156384890791251650702726141549200820027608511927959924727747428565659157346408693159284194434015340528811653298705484851561509806416212475185511645003484904092761354923229831455284042781754338087648084779547769851847557026703108206612204396455538197867925361294893678022059352208847421331056272769536862690073383788294522817243654722818738203350886348704282596239711013858858263377200029836381891011729851711725956615634101149752118304240057371071696421516016056984617201556890618137118945684253537030890999772073130269129923173511490590046024032335881232312422942300772756492121321084047077255721909165506194526516976305877949745759318994194993812416860485303252564036391131919316528990579826395425909105116794552482810969336363359893593744470136291950429474029236720462125353865498969224640140500271609606474170523778991891827667584319543789892449862032947758825965761245210065052857666657949199220589574079208088376319271488639190239936647888704407229685103486477708287955807766677338578725602422050216092782281695396104204494766102087026561031545534828283861805272718130339401032748578616036684776441113978279548247070961232141315228591994249792287893516322049132882836401978541489870832181837617223251355747101749765539736631614353306371925332274124999229599723799017747148231823852678674312692902074793167998917404288122008529253031145278724915465105510781462523607480479407198389827304549178387928273871362185031083130467388439029282657457239715893808467356273719902009773985823271893622240850326790127677592788297889875426404686523705552952969866092699988822366338954779496610614366881203275427487709301935769449338096515121337842721302169328863553958016350768831227442022849697652851535342541928049348372000850833750721726394016597295206301692593074658459974023442610722277896875433125387445255839316540619764112991275086098483958571961319404288054020242653104553428302412849139337337498005358159317172580150199576533958201166188609504802932918563680225335706309202039054202313452470245284913357445491248724290727981692377835169995013814142278258553535005273859020584815839237803861417842414366939120361761073549151086803198327062592360753829195769190673990582915819254893733275297151325047742470328048061928888795212706990277971586352576727067404894003010811658029726278765851333590316637873115395360288090110944501983464970289831343718425550476952598811494983786748699208026601060133196086931766030106288079467759096212988788630311505010680615754085462819948228291174079982834036568186517032281367787418524622480203360347930501206607715043958029444217800410840131790698467490900720991921067518915385165947448151909890880636052212461174155331360986699889620870048058824433052015724682863317269495868112157644367092609170847563036019043411783356159382893808391500400926059857893678228876016219102148339356294960977689566056190119369524732945333184820045369409770962008461830100816348011634471957413425155186052074330792270531470947122385884777063832299199681233693101912398475605618421715850030210552711058100288449059338222817539876239868970786490310419890604014702390771894336796940001845361471682970757464930079964065004920961666765963028376564667693209475225835248233642783937390065592838077275939094610171727025911656172957264479468076677092745222059849106118357187121752722209646841331130338744332941900270875203221065344929378376158417090534612260030817128429788436746168400625907141638492021109041398883834705615126981180452875628847987867358962819253259472919768888816182277091254697433941680083029361385242588375071769331439199722908067410064774845637577172883860972567234382868271263891356304696491288366705678372569605429817109510493746821459795638443266635339442771619645898656388138487500831216629647092619620629287448799448316235632921490759383071463428507583710727202599851706077773696376723915885854924157116960977391679080171882043463161504881343225092041782480497280118274559418021102403219477689108234789395443320773949055356413982210201184394385355361631030363772382466094907181311659402756350178251001271820111481681408702188577561649071598690107980063226364720341465310954310670068531335154330845273731825454779142072801677027985332277015330430929771341517764101525548787453528909651296262819050768569725994793543297971790878896429922411584490841030400598422625322998212948505203005079000717450464501931173868110384796702017137490435228137029209339942642754519594891617422432703916068798108184028846203195476828401800615120808583979341288092199262851572001548901300048390618775457843011795401416019571085713178217716121617163277661302477263966203302119905764338713613063758474668094652573753096030080395159572507010953894415619174824796780645443851663727968903056741909552970624841400461662556925811281188440938771611099591462193468488376566158436298706190248881790767734589584436543554520580010446731293453643006322217230336704791944606594510866843250747344801528514912026806609115387685312183488261273836845754051501605441580147489476373905329257130439774111638531158297621437699976296293096317829310546069958096567351717512254829793421155771848195313620193263040526537324365824344144572613363430400815395973853719378562747252019469427136701906598134548250141453743540858864047192409589872619963680484361297558758687151495191679153148011414148034972582218128485710347414222852217218454215227189492781434240830464891998889705642151285224907549396462712461214981676816718367624760196196890705044979408350083785340066777169881439255364705922910353924731682269592171782053471979150096637448086848269167355028779626668860640868482798195299582529557479294110622472402315196892455730043417954359967227949822410270172927519364738386226470001820254910912229457004004904593092536271817544554729627233764423353183906855059350821741303966040303943761126418560310507159419559223092184452090666721542466470910260057925403556588943509201219681687004526956403447644972165378127610059538170636016945246089406227216473174709291337973864066183401870979813988720969679069219528878749689987976356571048309447966977529140495206404493716696643172694017601401924151514528293294114533795029733899528787140860594392483312915527379043995425703026267060149912115175639929670643809170600517345360508985272617916027323538631262380660270473237455578039787633707588642094698903969012674668539954154462443297472392775711390842018977691530352651048184894271660908646967841931211159168819108794341983890963440785478082249507320763460302608273499565287431502143747511313167468225993529321401691547415217896514910425883787132534061778939304553326333146654118770514290328603837384126110472257261333912323518512883317525379259248420648749867222466713770866324413330385045317686982614932217209321292184782318477157954007514075189718054660483404876861485878401821456552372534893567419011659583412953379529879502188765703759229275312539722902457667696539822372973418475615557656729463406859823372016403668647374633761839963530392589518187379122089882026088711095954847166689768981458102627479612069128692604191540448344411150061048544421924808276541877483984134663719946383560218040973135555329674956341256825063299630246627134788764235065177473912483282078648814148245249944280677923718783892454207706407109074869182353235029323423709404900404819018892872182724945276337780376303443507380637471362001404041641562714185708041465347803323817301766148295701458551321290676006218386981154732467664857101708158256899924365646700960940427650273999322352916084174938698753933772987382661533748774399359956844949707973969329689597443942706662676632469863929119495664910212780722936018993698665199082454987910214520068750982394438391018329236543492859447481719622453997984667614963294451833139442133210462657311541174582774892233403705407110312449877123445142994160399227121170440050410443618945022425973025793823687977062049503417911461830721328907271804815952296644393419741615329115313428276586633653696134033719574846320098657491798133860042720914218273622515763386498167999673545377333753900994986239178955076066642423723998342360029056005319483353270382711745669357448932816049685080380462354362464825956425559247960633647350556900253434934945959528046141079512426158391589967754717802678376614075473125747839157185234238435668415766912773653074421198710270903868518714808898321436524887113707048484337367437363252834456860317320610685174693133616265344138043585649649172589329687264519128881258897170017221595286331999651676275598792552103715123847781349565868278323720842376548168307443707153098910747154357686961537076691393101705735784057751435201570771181813163552203047801060325445877416401243320876897548897782516240345830862022433451730569001925993089893169863212158324495786369676967913779297168190593353676412996640219300231776968174547319540205427446879820100099451739119253066350640271948377775891530585457535694655063534952647920552379057668601916409848318692745492354680428406594738677494307986272207846859042845144034211281735830313437479104030179723554239931584131913284663181787644854157504283098773379675857677677155321557007621580781429458873316180293917072720072756727107911216965958728624340212993567289688254949002174383845124386680340436578933525672311923765730744466296623546065256917997739605657868168778942371743464377406155712129550819419785988039093620245506614660958670376618658917199551497581448690945988857690131521030801972258741589428505694055693011796651701293598112960244962098009404087987751398482302557609145775176900980752438288428199216078124464456703490416283777104583327820000112197301443796127719176919023270720695081801088158792036840007464830326628892792363032763381179450730714736876357469400246062971394182141239525393095612870671984585058917145860295490144493900108124698938124181471873362434300499818949806558619671556199821372803016466789269122874753094669902955347560572501084211906928083782043048951519885939555241488144509891456833604392403710810764242224804451882237491374520290284569555678469960414361370275529257763896847400297439759035888448345284426302021981655388284173011122274307867556575054279382142091250898438997463305112668157297887887581063595093007072528802577374669165060668392126055851079821103898932235097940580512491031459833714300004566366152077818985569499445374565213883337140345444074948958310676318923382607734381598405848810403621777649307554655675292982326998811867982911625938554715073308963155430146650939289710316742002993795541163192755864707497871895400369712322465444121625344056241585159515871649152598104624771660249333761751200168637195846119410128677742909964750241980013735922557549898182036185336096090209872241670048012663389919116464788855617885247556722760741544226397270417814738281622123064644935865853146691443005387553592684243869814475312950439512720771176090218219064122073658967672508754448998376484205367251324944421032057313672599648155582042526115166442560966222464809474541766218804631914475513716004287992661028090606085694259324652288360709157317835629443562380036484857815398449302633807115722890419993589353659550885022428330345882019164650438901267766356867317712561242127598707757362611322954168403900174649652649153570035700060974912192158327862455848015305622924265763221719069826529774542186919810269371282594041461370451457671974108468464786901260774657479748250753595662486875409911388462069077830548041262081780674403343831868341591574305985806772398498800046550642389170066685939444806003938397209535190549483819747174472417949940531451195236375938942550825730884398111973466896532486914395701742299817116188624217991586755626742577429106990243831938019644657851633213437509248455308639145577865932975765900795770776539339796355350884051205482672760515635903647130828681696252605663487280246373996009550590326709559726300176486696927151860230201775677062307768999753547735582165969607326351727187474287369632164395334394104577536931103836536241758022696774158668617315701304628386098106667025080322928206096086539355660294640851279851938574490393767429740669248654200656566070199214222812862809263495832791871525970556775549886254863678352089716534143538202570115069271662387787031342538848606358068378094323425203665837761523185056579768257343249683959384565392575478569628104646541440039441286959958844209318066209796692362748878741946388390866130769746543371103857785434801571577932085691224422533575338917349560818349625236237410316305440678828476371225953793190081669438434851571307451825996817869142344148126189548590166778967960308963432162408762291897955212137370750589820005384919140012116643394084233544866994858554804576603790836227166507098850817333167073799077812635927311266351467439043302056657019117127475932005353153941526461616629798418204960409290254408010363259457422211129008360819382591759339182924149145855480942500273991078217540164391180962606502862752765498106658988835856690504636494939090443638722244370205429635716210283425419477796164451427013524338931214802639999911586883066380085649993875559457674100426023916719537963688626942099499711879045353384693268254068954538996134733570636240403351012982349008186733537331185195808213623700898257091100388202109751717781214991802542081924705513206308296338873011323004608613185997087222931447274644042650604783464219541193900872755246670183143385155601390958677042406824358195651237605802830905273704547651331763426265803591066137565194641718249670633771753456304779963068045418591217884795288878157031892102152633251452867741193044441384817307745224088349720809963765680989918468957479327242767362631614974326493919765948139518124260721649452042452037515951427505798545398440988065026443218523833735071607313621050873196185029382240702661224376604182693368546781968601087454583158078148750274276006235809405049420717142649907712977474795672369064693013607737978745684991095454578647380815030314569243617060979194704785820311966240936100776819436075802615746248938078144714660823113729519925933535440774865526116697756330846432311291254460101749062295282163498843398482854698088035521233891953663788643194621384099731152350376935204987552227334612339256272554236686379990069605021754827638187839796576800498467861127067553570912611777335957987963097831547090807339486154873513464398204838759285724300711966348571227267289655797900883493350476816574468507410595621606410084876035407528929692289489611061823131290223368496905551549610555037937993302034172265133026896845329583796886204651146057966052255457277520693973636386970468930021532389862782918522354897436180373947767460070742939697125690664052967070039285822464999070347246856444418396910950073083943598216933052774547393526054907035954827606946809319543407129938854006486089430745470684232318842732265122883534508346362283973341570358024494919214228517885668255662608127848986971092437596206377617480842864078255542812103865228974408978493029603387113814381407976820231002805328114600218907088912018889981616921821280901601753901836790736672732348943621903242472701630340146843671965140415796656167271197863503762836372924026253834773150836461631088504588306012727454425654805102889827802228761014956387372097100791854508210709751665877510117784410295939608558670760548421188374800962727979153935358420487673420777391587552919521055295222920284617950848641419392754052837226295534025062798147790565827097763667321041793016590472312370234099647914872647873658667437579412316882490674535254278660932453467321113036683605872369563238950412463994530061514124634281687071919251060401960021427660141126638882733569189917913134847250768510820379076729056851961722182238664487757803306962595304432320165133120525749084242575728747361298869992436746796889464105047475092460168988849425905613539556308763113936079828028927373383819912741728303226882643519242292585020389844829850952973188373783312800209879139813562309049363398726296092925200396721503713964303375845882911877255192400059786109088066654755683606431548403060897937859865501449417445722063415231756579787394956206694332762083847801560870779985812681253909485168190867019289843965278250825556425266153465087659378526576041348184933682629655897553437946776082799457331844138497197491182246938918604407339176028556607170509520120280435411707272801414778830235411478320470026360041411060548880994348954528737841810334423689536406745303099594155704740759671568878402631437881398673372190502022369876328691440204176431736613432717170505447853107048788989985814148737464418084209030861581776674189182441973366108264820394452754083934665344366201824791695996012888471606313355316858722550283802328530169890014783735123579581482434128314635274763536936212065500916820681857370009645710917189543664572571284703571969034635130351423867570114815101869047977872498913383859320022564706529976573260606935380566298672694770487147763847103485594885713604919887166049961198527054231728046028522078362022538047064543966245912729532567965672704548747074208349886437073423960434922460976833504103729653098094864121415998138147227626799958194207373774375676193373731363478401614569107188312990738756111904045709489516294745969599940695042288510792448153756106167339759327237294601762580469152236118507226484217097707415220248655462670015492722549488253207623267313780692499033129614768892314994936666151318592813137270209265419069171886795817034966395832566436097657514344851907695120218778563993829536179668584278273738477029497830928608758798619135901629239593065147325670503158864067558236714212303177768529507071687055075733972261238597081010288545150590151971592069446231407108062180076464661173345164968522653711975786016105772313540467607311458609403963722950702507811516843619884340109737757947919120439579902304046960615749689649702477197782612677659947283196698134879445066297951677839332193470583074775901142583750548055792808804935603222998785240598847529040260162952676592145991620306083127289019681980178316097068398069656262705038141741403102649819400566454784827749362878535033348828612197709317943434499664491071276456423871479010682692935923829456512555836521279222413645269498494844654406836864702121586483151970583069774470457371772749412577264144660732012070257586082346014406094464115774956123810108946284270447009374666873205326120130734592503216756716895476366852344182949272922215497433311735767033926713821797973998133148123741883193092585889180668931371583960449983416859489018562144512000414340642240753226041119828813539327680079586162188773668616648042746444340940778771108889893130190803905417485247835337654779762601537611035214726288807596696333880628800782303964051149108689433838502988733309696914847917264144476332577832980251981906134762875733223118288304937068535322884154281684832576170438822750190868302777819114276403507678756697805180523790389141822873450663217506832077041254088778711332364095295712092005264474927114300353910845378680823420321602733958530947992685596193620616184425051875334112795960522066424262731681937645347750272445460952552416232484024491689954291686577700398466867485570333413784316367291277676025091743621824940305847952723443094169959440776834946991665633017332271570960580548853608092402565561200808760905626168861525561207262930420185332286606399301972100526063238066536252783302285618291745875883042759307535319682884283399306837493099772628456607592585120280099868580517034174713682361153615837910642331433072234169223469934710504208977551710988857855619230744299595295079526768276640459742011502624209735493702717027854730151689166401224613113633658232324714678514709208915981288261042242254940192087513654303885744271123614108637075401632802652718048205323080336182132004885046692488524987918484473855490142700555736219493842538389766082868821989588976832132068460231333904051120445092037511227696323828347546840715488206578637517996714563591692227980066155855726509636428274377748449573511039741281580181774781696411056575487134032101916016437113836536251312726868207287655595127416433053120436247993762898330784768127463090118808809069990494114757068360559783551737226285159138655374572869927990932415727270738844104764903352702258640600414573274220151289746090654220604163060712240249579504122637393818182160865436764182579027231211722119262636298254295161221332519188073444673522618400329950188170711025438207554598822847003207075282239221188093459664650875410984865243336209030958375378106751533651478012691353884639550884420378266301825083800465271343661497444131640790465527686158774408125305410976923241850370648277922058922563489268280954358409417592634584952128395925484611852212002115138781591460286038572685192986208916851802519900074476604279186261795762152362885700874549909025663079186119644739021450387270652467616960913245442250996791795354147193296660396969773652559776878538843048690207055038464054161114808410773187390856482841455531419379792765775438615407567098950261337336526475587699865861449255306329622973983609042762151203703408388657772256126817836588588396603267916579967968505169469803762087985022629853285469756333277532652466761717912516850492177012994997953357030333887772024214165985569221764212801566510152601332304147486536243558323979246187545562426895782878793079263678619938190637565588406009584380178936359532548215778317134365675412203807930750062741905713486662049877805301172613827821691158371688905897739096831225821366678422559207466197749074407094215562768286237879722951122780227515121652805648923931133188728547887072274898120011179691014244891692842997610978215278568947982451175938785456520975516378809649017416123198484611495710760052680610530691295235211715329049070643931107550534412238949512580382935666538994993884800264610001791634988090530639448644594109181906905040702322660044976169887905934858327958171792569666141997569022332227528582771933186517811477907236662072255149785367802271725223704812850659620436049359412832480076714094330417832709452151992788638497619782520442770354224738421147888034607037783886841491730712357330841957826689736846360864139737696733504447078447959996540620125605293796147043804677552290755974629571509376266426746912175251626966758350727136375825940138129153233554564363393923210240287916943207081788587429608002345428174870761343328641917245001893861660893745206792146660309825143932187288683818912941471844238061929913358685856279514880336003375071505965701987135172074533672448126356793281614541382530129174406710918778402637512710830329070211287280401029579022526688780139541007007264497872597790413526342273392234838355280070220233547097977034262360871353754624589612758307706794583547236210470864905093804610124191645772134349401659182466251619470622771812856743233107354189360095948288275760833634978956848047243747448595303418956257784292365015804236098803697877872101051651177802738749815326372522148909894184236353723812065639086965919326082464894044794902353235398179551127648327136348506233517910970763817930528502229536643446100782893805630911722040153154967563216734471731565120232128564721428357363552772492252515042735024971839443902641766375606364669912811266636612794961287648463792347364898681200577087778682041652123875022306744549747575082553149269348554457984995615778810183271486580610562307015805510147731968458200835532793144897607742255588589478297953421464030896446346741664607988796772569227775768919031955020853124822420847483981720789010184810447715114127928342253362060431342688347127450933370185548562467552881125960430311185166048140781205670129919295309684221730997442321027642860468329672218767344225500351042621516109166560672833109974125934427626363375376384068502375691117946586044236815404872919163126722220523456029859297615397549561467145865345725452005327342058757395273641057175688525238981241401309897795296184352910088614707145074630198316537368477090631960610309837663314454964063939335520828725787026695855091081695537021485382536743681323430798443541141242960285221251481066375968949106204508863003113030485350846228533790376474804722031304913909886709526664055765409585441538536032655939363516348961545588852118001880287379715817008261624542605891097938661172625329337187605587486273943426192873176920076728627518140947508752670364506335118503459830295868746701707989062260740048740137133676298902534791917965100033380616161462283027807274640444032760153777934412670126173444714354357796087422551158596602646449939763994349674758711890693854984213363042398557987372309701292802417117691125891173841778419393596585609644179440224338846132013606204344469027807297820076951004634550467941384380081606805075416693888389982277195093402549408390895836436295978693327059199846139420089416944250028141889514423519429577659922027453757927990128842448408023023398941571213134323680962736403813483346538994651639684981120610222227652751265405830315879124577703424565852920177870459810964077522711796906384705695237687018351533144871792804710955051303138238116811329238714873598752646605044581954853388432253580284120261155942709128823397731108216163643970341108502215443521297336269406154092626329045860320483419273757854521817026929271272397490202934305638453108174693899257863563243102695035230245130234990760006706064657185134733486783805893673149700973004407204368391508734969981302582542851142097374528088254874037585106746729437767056580772731537816499743549357196474086086279902196954220644946767071194414677747853159120581215488055761399759373638676956629124015074346224038464357150022798012476264489771403010729844863555661586033246345432097130183545451003480537593920160720964915741313493852981066808331116436266370081522016772207457422008199729542304703118108672123052247889224530486538004846182546370198298805984759204631269170704855938419162214914787107358694102662935272914957800084141316925403308263957522899955490648315264141273560047831196088756146341484402315710979548392903001711287156634888086051674516055691005859547585860068530767829603554989006081197684972552696735327068671259304991730498848035060793871718301029694458493914764010716548394054394202666522846821140148499653597802171428585901553281069012994336882742582053036200677530641395687231458510860642435454525891820629676440783784539359474768425446011477828801383766593266212858282337579712367951107723521574298875342336510224215460025727987075884926992571849819404363858334033567547349063827925000182568902612431263679337227793583829610359965284184640205343748821152998341242575618457500537420873217928863100082030255249712066663353177831371524398147750280387063884219966064953979272423847702844120368703736637823754371076510413315874029050984252401744879039313004246095802921674070210522736885425215080829770544685131039105981899332737267590018775141544769451424110556780000587612394839952989073304514332566078733146013398471103521669028536122380106801796203641615943184449356596865815363013586909713527255811256347598555710128019322437700259510564760007930600365002969813126709730635738055156599604091879880194269656086579595931675226474094161574820376741667428666042985123309729151614114964701356323154879307967684892894672563740618900553409741811600016013523641078289900347159975392396504353809224850528383095855741457039570549356751264675448157594075412185277866860791532463936579897292761287323837673873257970465853167549244911459965171872982259346147145762165191042680206020709150515077592555446001950444932496406579956641898481639245685080312277491563774769275889289623724872195897854616009525224344667318955381136892669319402559739937036416593029079133836769614344971304076889546815328947963035021323526465324201600833281467377949928335290589993706891679867996487391335662884256589287158676427766699847400860155004576887560116772538380035701763236601137169028651749474440634181810034070257368170190867296972450867647431892750003103843345369447138689945877838386626202263809695728261225882749173303958458642528911980689460331112088812866170369277475223709735212390341564779394164215225977364639968820897046704569953484659146747764562075269814144188506121631658105603009512832947102023044507558881351677235536930424472157111784928135797152473793593959653611934722321341606429118681893477430653450704393916523241465032092286310444153795623109424580722669028629266468479134239022745744440007863025522917708281059169441185588252353620147831580374752001842997188132923439203970594350155406674076264630636835614932345246043401905454168305216944855005650581960137279856945863939714505063201052446451611222078851983954146034710221337201300533983375554832878048278103992905262274338172702675157431030838074821376605069831659775577428250249193626466910044054660777540323393573744676771450896113172958164636482761959428295844249861933582213824445856034536640788215509499815024403527548567982428125383761865217925687954435890315281905804271860479248204708055060452477368310962653889167610281208557405964595116277243963431311456852046363726243846908778679364110213655885466804156572237489686978932789618420477322744879311096115696095288368137199691602932601442031292675714003878646756475562596333891575559637827283700518129015379424733493198643702080495021999735789205801759895796676754803863227673273995528106474732776920995280367200889122031800809951728196660274641951958924575414628960476287682454931568300205333965974634481626642383545526054586715805415210343259632723564711705055817783347899303646953528800044923326241888345502409421360766349159122208040480903838534825769817298798523970586384622982083154990429318410177136219224979667967156338912609101507416188246983667921196513956482909430238161131272860181346321458102549874778792979343847825153526263523860826947541464129916532095715661458356441062122352728533130077337986225186394303575919679831030402563423001798334869820586293671071791792864859611123510739614322570346901001531848630519361570280481348576977125010345319347418930423276291555900033575507421213362200079055687148570685426543585297019880558105775302914388397116428468908360892880381330280842724111768711883886939067076520805963987786496775817715984499053886718420226600739391727130967583542669385635626787422730773889380595579662546681629176706176476227142576998173817138356569984947854237714223758437205461432758829266168117597452620191198802754138684071331405637703090170911870393342691372749285743043303912421204416010778286964334457536218635158889272065751877670001771632709271186833791309148465982719963836650538560419949089664404197925108134550058774812039848736616925672492374179785452213208040418409973283048433761960915586252023738727644558471473257334409499998427312414345661647654946238226662554681487132642548305653978923581862256657559490070672075478953302890735853020625506040478938081626862258795772438639335387945871028998154752291396840106047261726713011444284203581330958729719893535102974938655400066709579522760217752031306227810484096197664057697979477785966303315879090450109083124589397776678383790382141715959184304081224927027423458569555575040960453961809844094147355533320633595995017033023318479534870962541495687068927610411550126867113927715690083845821916501614593000840561161950557491798872476646263364163619034993800185109969201421806710421300025996468549830525353216902847894444589035752406883958730776838078193944268503551403529052870125588321460348670673657252361623169043867110493007016315819423789261814022584690057138949658600771640512628068094673415318094262097470241759426617619917839308571382385365918281468487079065415558092128446223891080130258383698104314905957974527086702449890809510506001644527527286045194322208302753181680264864060556048627057807136713365228117005261086115268082113338466806007333103632747995894179487406123264226905648937249010275563691585928893272655990763025452029287075719288476488923577680818597420224566231921883557006571570152470327330388217821116157901081157889387781840471187690483147685384498134418852367128716469716311905033643976701220752936516531551850302564967085906568124026295693003493672726670847591123658433685075359306098367882330160592757287082475835325342967063423865818369570615119157017549406918709489117480819440345587280277377242831371374463075681550369950885663449859817639707084781322405594202549953035618929145438773849855047504582605197367269506622935870989726651352449656899741887284269056227185569012352766340104364750214428197246549301802045300140566477351522193318501167743583898290512645496046779107511744588891001521962416565936118177907653906377302189566006597214011894996501637349656726853696797208398746216633852515652544419725565988017153717460165198412899426774220706048893038046440271765048100849125140456288733213517579926102142661409840056254109831626569940402943794582917498920084544706104395766850219414047555301316841646739808926611906986240888354901933388846392479841134679707654546951135627278179834425844313584800429848284767852600658510455750889098657414625392266915016090579693583399205229127824299358584949637969718638213050706941803867761211123638815687710260797682482906336025041525849841852526617311568884289312764568085046766233146240002455451265487105934129833189639631950667693425461607859584985602697872573272604932421901866539740610474872408503836827111719205054864427971660077895654510127897462035781018878093221939438305608521626600692279650897902168382549682538718999939981779715775511266392501707431557632677812719427286079677406749837606846512633576873497336594471542202898295659203353042307660831963629972449444623189400009375864516870404005126587209001600798050096229772039024763544895351756999898075410398780038312813026455364652157766284118303590743725743958053735172801972889004016710751695222308266753045390395467595372938940759429434452582325477984644821220465441421126435103727013613365012824404576163000096215858448732082333665700188022461819844218226161268052777823619873055841430394836648889892091994117999411746640442258860013656361058363176677923403589761797850090635717199791539226994730939986495711674098572536782547562581626054601009133056864521045632910530326289682511742631880336542736912898688777008013105434448498907142031552282130477088045733791365054614682884019748893899214677297968445246699280367470145982585899993300682176292857097081615836685673777576769086346169361699063167505806397220321464481844152229286713246207968735729923299965904545094910909350098449231750671612839925020850154230487177231552835281889916885894572179641036792054333821599627688613293462161068324131094123407512598444663569334465773458288191008712156390719063390189623127054693685430412592078442486215809423645568323691075302207626935699315990634195630347862878694193124338486806987194432700705610317045649782164809508054657267985994294852990486122388086116568156274016751473184363045013613933185310886785234144007289870488363973743409815961943816682764839188099485789946471192086607286335224906980717304080207739227809885455745089611519617639170458596135192498393700278670326080938791101066565821784676823819263599104883635674798152910123651133795099235770526327820635760117812108603012777367121605939722396951099981652877521407597036436550017311444575907480346831977475600525916959586779064079337589125046125587137791792834304813841171293736666888561884799956662183568810891912413904633674613031207973800652771830811023108438840072933137278351026789652082870710797830452590509292319997018895772009135762681165811195528276825694170345825636468963175985406805184797461893773213071025004431584221669155650837640107736411977825418311664778234041210486956304052819472770825837403258876416900236796312848328045991032326967810664481866715888838703528777640165235095164281362315318968174457321259524459418067999175577853974242673426848906895264464432547584076422307596405750390968991883985878438419363452231107598610687621653982142071420325703766553557404364959806992216224269070028702144103474479969148767736634747667071023105226865829717691689746448005127180273090672179301205538950832572358750015078108953742629785217429091285908282345745831251581195778883513887840375806219231462855164395521439713560620702552484939387220189082462604816788131221701056351968624735362930432728542244331435898866148392474588259318896625474434466396227374148882674996218968748369525899027258784264915818974121511856854622452308724631006183992666661807301524711027025957320486798680429053809164838453226294883840101262052991836279183204013949006918159260291349484672812163460301057411126695543316224546257456909494270511909350288006098848037652938858652545132872421765907238905959446553666311486881322882349004864395802294981131226130774955320908280874411378232328463478601705570422706328721331555421751669413135366240616177960360825292407084366421229498443793638763798476864899490228393691737032276059257882662427421268133134474053151648133713480314359171243887733498175177679760442799615272389303266090637044715892035710071495598150833599875205954588147928306947753803144206678790212096738632140957215096423263984963859812040094842134880503203649216536902000705182457042001572920576050158552382066705083764856759231211906983221745380184524933290015529104230651910793116339391925640831680273839962793734980849705085924253921668337822639064608816958996975525546469703599115136403389482882446373089283554857786596631776744746745417434165689866016263058707257792287552522492993707984621291610004084714094634651039363085336401963763845220349615135218342196003387312081259997857059653681479371572267356243340038578365992204060444663538666260791525365318227674960467062203999566170097383457347093306937470309349440284175932095518225287026342779934337450217836104635598218034011195890514957753666453266116479947389792952827363906042302766145297900423020873434460808242109941222750094735825404788187986666562501135336607793086471562636722224546366397170494328575736361162800209602391488038430735001794521641242553872880922664074183898580192713728518583927788168344963815283113994644093208001053999507030083706756339721326051765132287794643979318529653272307213561911691924002005565923067153980773220617839332655069746158509441498982193567068429969731538416908545604299456283604822805788820938631827966381950888602599938385886872908472031208243602214345399339276029862197444006981420139044509487920712630894255400621088568278309660013100625305952838467602682150737548185141478274782472179748177176855132447903647841858795807328488601946329650536070418381828173039317618105811142775210717800624544305567940000633528438317438699809174495247600661850275021328002634395486525678712876848322042844326926880148736828941328462431860945301373135635999549874786794068230721408518829873441029838110371606139246280712190406958402917130021585691742626464280322904867087683537047437244685826780511850851508889551863144110704698759536115604279506425816316356911968861063751370523315542830046095844386495246338325910515078453733965938062240058040546296110465605123181183980883167935267414755654385831754692152552433646852048514943255870594717548187913853988940232232444092518168490878307130380643420047849966906942031719962858623070086776515126426273785641817063943599565523314870146958151226313132540440381296760402273858006191203415561444888877365550679541293192150521404485953773088203172418833836459855015701109153743052345547624670153671255358642412405735381400961937322405869935239318802608546546780931400023743794077009563523401365068062675774246201298869351556695492654086021471847786567080071188716882655554516514325409756793524424517508823544963641216491571740226480838753895290273533216524639534720106632179883734395159851985504103752872782168946882985991676402096757123894608868128907787664595000020579756738990031724746309234599747458427811061521618520930474850636509521159656229846942556490954748718580506026771904793861475382091959157315441532013336765798368503310167730350572880774699039998956906688994915052308339284848887120570569204523259504271434485774160792583395143833161937371543839287019800464501820698627704751718425942641567398727128132991925919024669073671803873709845590943039310820278726289034769423119789314498854875541401471796785188102448302523932883601463690336205694752986311581245099826085419144671314699013121803956400148317603517349544512495946431834628602139322275439373878562646513228626688411673673837051601032808504722696890583274072383303777031708457508889010011728920374709511521910081309735040520126999415106283769466605127853136080995293230854014521881956987521811534131307931812684460119264273403842688019299206099889163492389615406468476651121821113196978430774246428882850835053323614443607521790324604202917997760639431361716476028987157679450863887052819449005905226659091310885634130573769916304986910172825304772667135960724484458341609134494012767409586731389172174021357818666009067149261982510970440622924419387821037552040472999321222945335621928846511992801165890129854410389646718775822747741859781154984970516486049513160356988527994374353816700420080250202180741753680071872791880819305709480805511908791872904372250941086251231140036151238376865121326326143906196402372163094465357056867110762221501698501275218183604942923174022296979543144956011381229820495105057681976738123631838748728561649926628892823917203290083817380755806950631751088958964933226154493782382525871173965907457100482854128982407992186879184825864101492760951127978992089771112365507995845782880946344154066743726868583061978486610714479270941337486288620022577342456243129854935590550686251922192765121729731079716162759551373053997418698564584781970502684191391547383652640099118279396819017347994402463268377212230712147571924931981883596229499737440844144318334509816442080078542180819825289623100976681826380954712048334293106102402877333264529203952143198388223478803754238073661466940088171841197175438311808555477320248900595330432506389634186672611820319236881475046801824073907199584121550528285454326917739977003567496502399208646658893825076867338023772498534113303463980375896479451462171588143912746947833399274508828928514742061810123310351237282743064662365957958352756872045450288667642676487385002284406053649899633536721951530436443321172416741323760332235929680978121320550258210987385773943095958870068576471842809194626114025844324894361797657146645600187441871802666993449749368158210378484971485637079560921965009298635083533061418737395187992397030612888855575205635677520044517204823499010915265675331357414965718231876665150673913268837907660425011603207421821375304924416703637149940887329010507188443780668286282646268730740196942206333966818835319746596763291805856299112093745352216645278075454490784719853596126387247664403365758862004596603002831988993877229827592179997272795356028748786368464475865602717105855314409747102954169199271088850525153348537658735939440391905592961436628062847561549839092539759755461374272349482659118462330464770186253857686519656154404817349960193558174411798712355592374417416952810455578892776606978895969704888274691947775126141916919610734650157549499138659301061707846246557342007839760851488922424459656817575147615475186750840650964957296104512907317691605181980607454193977432313300729860718476261657438708725062300330908205297643821009011158931285914327168949055517612785113887467153964736426830385751493267604200081276416888284547453656221517539946872991012120751660742102299436542676089475168186388908755132738422556189654838672258755848939819664347950672438020242175344970898887127276866961196429002121050233536283690629230169653620685604234794857243115230266653756364829720161709357398061514380988520546191348075078638490004133674549820092623589852389705512497303790302054068018101683371507104376238309240254596353145932006796372510451102370130596767380558326474905813841555568135259989892729507190085109055479946894930151748805677519049687982533190900985587588455069501915313290645864689833330532834844118156347460925261618635047186029300763616611483372240511434027564728737938851519372974865980274562839272729305596437182370222088988263489261160302333686539058572518372173235166634640475247923771025521878003638384596933361897582620906080957051149046922333918335683756566227643931152174082610502773970247571295591057542170941983361083298110014733227217722875480993814696772383893446227032377352991370314278583600109436995171046328018086204624047840960613666392507757245510780227274054406784669222243466892930399971269557954333895343981060325888766007660177775888443613133073679165067408269113618873096641348877730389218952202699452238039604431945983828142329551746865917945765173980714687121329905515225711332458015561621123116408293038635734016698510688210862451666185495331765592380535414399639544923155658811994761339944022976357444525576087410320842748274010008128984929101435266123413358444544291710141390617425515122133403075736399723324995708198532118880120159087250396596119073723024602742749944065488737457869450862027103185603977494092673943113700101449031998347296603248179674685423972090492091559306800919546594806241136631378352658807096756526184048257799142594788992826486628694509245921055045122278593597615037694686721480484577880328966729863738347584663327238814621273023275506310842749793843117239164026465386731732005594301687804275986265645592563553618651793500043228044498825287582638787144024434006708073950874396115171288150153636438462000442845362502707438103578729500639198041291806765428720392588742431139053911002806503886808930504129309635385816717957607169075430672993026685885044364764863380211123654122728632961595978989007326002847504447140879986270515621251871376533238248347492097580281073924626802844355307754974857764739891964820304867577398006538467513101727000660743639651226960683393178262521734700464878379256987584854223300729609488298036638226365829071667731460881032149835873939240627272863325724554544882440551613119062595483917474027020746429455378088820565499686928609140852610600983946288986753551901221294059158368377694177135086265912531070616900910509631301586996284054387441629330762178970434288417400814648575544136359480142032124372983771945928139023098650972148486173128168202066890968572980609293528249584676414687669470743326532888467545665347259688663959052049206600161705899215720827497500902259037358412524703099004480391795519726911823130242278057049908691056042001423198203773325873686720007160886967904903736466857147085921977289055101435573030599800795138418604360291827996111377399837309157321166780668666002077340441665883388260774305410776682527516085495203450566672370063170840882090622572016515562294688673958019345077175999228612545050665773762425047438827211679235839420725798584264030493555243818545664342090380984893019789572354111695672312167716464796025906468146315171010297154303810198253281885340117315251893989700135311429170241047665750007527808290155785188610992022784188935415991666579565266318441521733003667515533458067325574756477536851676063275023715541302807027618834768158480340027993436806908316730351052440227691353811167709273441228311546795671225747957193066301684914441838883178065283849798221106681224992945143651773754574391771975901184636508254978977556470841735849664286564736485374480420546955711409909289770908375339470934874425671799452498237301570323862005225440841244591341287188610621229945850881383811090312176188941802082833660846432277741285339716826153403174357627296696522392075702789209424599029034263611544563479824640913814843231506486652537448722242941960757820675314505515640465032458502349974619600403682296203986409802946722978640230083636521916944885823694081143372600751387738108531665084353556534291802768796655355835695960793044785439072796135030479474251173345341649098219792105437785737760262874589299476765723529203238318604701359367881018002969708870849203668250070516607467478134168566730083991373304400645337327612178506079347179016714610798999209638423152078316575154774450343207566970440196564075341803236748499849171554984938285477526637674819909306051757779247356575185553817858279312387291743654340224644150440379888952144092203879178111974370101337566924231893854248564867358569516524150260493469777287287116519378192095782787856183648243614303610290966655038755948469427244066357278856306312719001761451520310741950719312685453629984823958591936541128141668214905852749484825817765564325579577979474886604819715942034655528264065150373000220212005209890238059869317423797565570160395402796543207067313696400121181510380123373196263022023738200053546379721625219837399855636902151789395533206317814089245078241920211887432100348063099506478830585744774338665673997139188776491132092405547143341587260920895325030980016874222820414307535167754559255588474260478841817557252806105499329734360393411209652959406510965645769123064875093352418216695617523530181354722992373862859484212621305447642450159913372904171463552753161914513344850405135276694002524702378710929594330044482822786598226905219230952710187093205457315220623335906907022161397178356328291320459534415704329708742571040225535517475155432306564504334471925006989838512831232383592688061118398788594626837420994223486597668298750368251571548123530400618162579166547358860811198693282556500992872914127623434598052055859238790212982375995744904843458882821882927016773320468568891255071675432625884616951794764082999739614709146015414345179976228468476793106677821574433470174253149186514436412272068007162582236233432889248925784630877759819119138369864174462091489368946200716328430755534887096192732829983096063311039312353538394716842552760718891625423699261091986518498132596466761147593609522398140324144941117086898574729665099385693627569641398005637198291194196282099189534927844151993401320762671324863913789616865080632701762100788579483682692873761804289167854456814253020590806963362359078183956709870731661967262365449889954926425736994074655552213518118370030434418241752343758256708733600383261828609496471666049428139075162602809075050773657502398614918414096554619343192746615675053558516362790719959746074578557250386518415533935831965025677396986520623925264152767416537378527746877533467784782651612806025840404962868804606379833035005542915685507140377419600864212945331096320059848015352732325665833676288122819269976688510220912508295224329579695912000476132321845138336671583328312153627455947316338069948192716231939289026064173230976612380771502838310345437384295954932236047713057622855394612394612898398507856935125210563938009167340295612320105203035433918410271203575428488901082308683791367593476817846541495491531617234662113892485330016772797836941021417780426019043025793766689510416040337476358274575662786777603985533817947646237790248870312625647870092150673621840951589003735065749337443582444672522829242806124414674653254018995495425961882629970444024706292495221489754351432754844763943482293927079727454661184255766308512988388473802825236625175997184712131385656793812102398447997934272864523796608926037132236895088092123696285797639557699433543346371365078235650337650808164244950407011930416969660264035818681213045865373120565032741712605095865037593917526513896608535628038795113059470896797639097599476624938938995151272935479362708453521822579202459886834973173527624506207143090832803037298928610163990062737839787860293997160640216271857464998756994253490754149902832322770786494710493563698569254611070321303817079308148001554414637808186858997154760117013011565171213871058337216431729758049041288422702375913994561166185030766641551576766997046312170199586226653882096384859716993328005838138318581236433381223662137129505629037233711415700476625826908060565232403294927584424199135548449198866711467235985720604601764620848434974182550647389653312837330797530687606600943984827814249067598519684604682047964285759521491411887190080545873159207077987247266641803924478541861871032176321576424579997416237175091133905274447153638183119932872701909565854561339631729584293792367897595510072689168645572187184667868817419060492929739813100819424793597644366333176562721094802320180229309084605671673268523442145762626404334894818754068498035936553057021091724144862370659824707751530845172095243285270886143511343462448883857921580544797927098696638253319697618445264422841905701091712505655308586041613616922980786594898546838586955623902509165954795340747861314277746732753869163660542054587804314070728504580386066881614888549343755115095795143215853455196092147811664614351440975389972158565418608675352016171583228839423284056235565668224123030946392326308713504196527625779548922220745797156168737129398568505261602479351077011663011393299459094043239487203325964670978300337039744643564054387629393765446702997481659484549778447206736796878019054915955639050768583334672418527853606284962719264065952621025073576505044242276085417890999714163292550257507684263703448675982973506416785534965422969888785272276526771643907821646943701122544262363438588419090276230003604221098375734769909343720370050977392938150358999335341854149739858910141614126889715129867773460868550592726163363448871286387595171327170770972192085129943360968726933287556254186923161670954402051663240663674389149285924842305965161681345989370011805998714114809610130718988994008932883981903725294492714349038123152244983035579816051470512479706585994410101151981254658712971150629433820694021615078313284365138396762381353216661656313694846103324288109050157663280306718281463614076078768873674970842554392511057738123025780979382113298291021992153886744385508813468886178207513352820107098195288756435457483045341811163927225491394789242035721252041384311441691879741834700520909185686867961913784924968642499812590988337211677396332027383374651219079522036829744855451199954372011321617424865209346756762999045731611453503233902975324943513986350043373668534545219716428814873625296109509988021956056084607352850683782256706906458680826336994340605094530358440559540201164822094771768201142500003211036724096746425952326681588709611237438016607573362518450252184970961278024649187140438100794676516601272012825239414384618487830303052962075202100920571593284444249897527410625474365727466409257842954040153019420270274854301975171578025442559392445720929850111248846332728683360052502568582694741889767235600808953416235154966885285097953052276466547919228062346935978890960352845084302863152264266675176735881687914360710038911589431443960373582054985732285771812149274714183500113767303486833316660200506132621462222940828427763766079848617869296989542348912608083414141656915525786762452628526671072573489146670314970431282594385488767062083519682972425598373081581281375270078396787646085148766717544352829166791303326629482437657979810084020270382294299026624597623380720138487452777652090517681652885459846575158611056863945557286136514380972782365126857528514627142368267135849263633835693223421193193988264325943385470298910009310722193240820847830021623653974668362457390766804216890757441679445733390398730230418760256439253221469950102111173882869559415299465446449481592052303421296938770411137689006090346100751917900776957056321805348556305890882625051269032088831161115715748823255602706438830076972648494218402232921299723413714077359889545592938748446302394628311996568529819949362733168964095576789925381286124297083341101700404178493479579816969493549460396265401896433181582764095121130104810061785339503222313027722614143571349473046128478484563575498728872613618701778924607181342322862440893007710474832312311376414722495176723618510485519751682972766280041860859387318787625954541961536186620743841419047553716944517837473678836658416414463598622544288705206367936057658859098341621137024208656769207708028630134180064304061959764494262221187462840867512348578249783157008503478094777639644685171678298167032588481501617871920729139266316497121367333490178924639521709417937083075765041329239066869984451679387862220723146683879316778767593571969221334840081083903471310737029199390741055883354184249254584567188314972189592805171964401120098354227441469757304298803042436501063580764070778769078674478147985577311588096994053910817654956707097748350459271638770823281678160086033302300246563105064640006271228063140774777635018160142592556369984455868469764175368727306783261709448891871063821394018633994458535297536997025528439521345308205686647505129876768229362591931733368751311660404246781512033253951699210217784153482125082545580447976854142757178680014111328583918677597862024413309712032297325330894321093718765296076634113754024628779251379059366084517133722982801108972554967267012800849331373650993070306903216894944211521358003672399972157119879749427182425690787234264667449931807330260924537473185907598116700917787082779082666739218829311455110038734487496909668946987343170511114985729719747310870454421793717662373747697553675072003761135445146622964658642103610689417398169532951130709754470394406024377976053186726155717881875264766903680121552360158991692657026982348037024987768519347702020302021716513947899041245358174133395336105779142052749339531125605590911695221466359605829844297828299215328235492072293255536174190883443354164794906284339325016049087517065361648860462107143425890196198653775050232825212543927452986871026968224886772219009854564839743637438204159593550610531367492059158940617076747024439065433334290549398598971844026671652107591167112645554163979192426734775097880018242285708023443995390862947322747074838751291709643716813462588094056350064897486011628747073184306036143724905906321380449928746327707287444027838766240000088935643935249772436880262055640739761413698671661054650933910700745849909740500803180394825845828418847075068790855790622026937092732067170040113474794879257171661145397829633312139128825130907584600175398322450341307437414676067353656240571953202850206331910124472968693265746820641007288746361022890759893762653384183549897193696820413328318493804373627199325622861464943894863442513632671937210359465379174121665577500506590097449693547340677305135197571035528696649910393013730532840077930970363308861906933731446540474876516276914646627569190228418112280319608677167848755830680232072359964267517444833736387178240008705664883269261385626863777829926955123032656645754103267004719810180513726467194756310972958909364349678012987742242593858955950144735638018356988068753695244827510014230097459250295054486310540106267676686252811892056972328177650732344720885803706781892928567331953125307602560061795326215222868998687147958454850371749010587721035593655610491673671831221361811175252294369831326708562510102938296030623490664901168458987621362117731670772005273003333291759278687994766531038998632141619168841424025108651567861708816045267042491410936091409333443595618264417755966644287998930303785865573665345720929195163346227573146673049511518691097553480285408611612735857221116596123730195892133963419936406645235285991766948012379287412063750002551002507479545378394523205982102828870550928646194283275117391631262653824826121063223148592637122456528698316720848828285223058438328564242456259650892621823337465830038073790296492256473628073344606710637590547410955332495389739327587634288784009040835148994780340945590500309030698558874784317463460241763645237961507068951746995120497395820223107845327369429119756443897068444135670708087250363845915336618911479284219393215802815097261855866878669157478336669043807262010813543689806339150537451780710839179445294223732468013427764471608969908160994924641700412103956249641156292179192150459279456071146809077099053360695303594112353068497394107169631937387387784237770506089516844419334369724642999918485389099776009007013441585687153828751332304836640215776844112548415340470163747957515484039971256960833875714329003319066538012399826629440288485710673840139322833024796074409066125087007728383761779891952371623792680065871463629136207568641527371673020015439905631470628198783968601429485768343359174051307359259321988486547384589306502697867946426769442301823523435227646079744577619562324215892726802789253001686950945797107295333265086952964496558135216444696342477400366465101480769479011354378571840263738129984500777492331159734353949257419249018010703397277125262058357181684292163206936978798161975032703033825272858103769515097400637271504764766435026926916729772291463136235508951722511666270943028315091903558975605492520542430648594462530878829964533799349188375659882747779068438213291182268645182185599330141536557058041232953355100718594672706640680310322357941058657206701924532178306779793690519745426271801639817560762825787498092925230112885364425342868258147248203852504778498618253962846567777742306818627844824232992829566310891883803784970688889651752083774663563679534056753145152835051932954319631221778147315670775753080016754866615747264414429809412337279232678060675845651947812708128759358227501002042884588862117658179678662424484807944527815669550503611410543389188319064868832427644562793732068475339025383002600602100671553189558727200360116328431467265427808760916970225332347324323617808297573831279621084043363138083055662571382614398744837373972447100875260927977899194303696452694897827901015920324509487978211885659972248820246869530424201351794234043960456423164521031651516679331110526356949352178876895738667631915898845517027893111170459889385801768375665805843657172076327669995803476842545374861571217450268682791588674718686732914077025773156207848837978669978329671608796298537881342171226345989887911178191349733641585002526779799031165714779815084936753754271408308855656857044600257945061910399711597253865323532874317848392116225085298834668411696991423385699141402580231598415223483256829823553370346996285180951122290934082189912357250260030432297212338909772057471449259003980057980432156134671087699609839636221654684646571123646786969835291489793804945887448868127213620962333479132106716679725486018447008035117148673510503450045937809622486052701235647241472249214366899114222422493090149771039167718359739723007118316082257461045772055428205044010875451568767957197834069449367490187925549053900450075101605482771710490607976242451513455009891896606856597890067327588747804773354083010276405383990853885241472274713591923335560490758301939608608670961994488418619783963962312388786029710850742381587456827305272275107880339485332391658137656371454171779498350911972574435266166888508659318909282972505018153457663843879370674146292108935391597327553031349957893695552329280288260258814831488816067958763396127410634151643386367151105480635401673181065543706569699017065689424024324681847358095685862171240347354780227721848847275766780529111734702144276262147637639281048749217606383404579828638344165588533001253158402595248145594268788942157368597403432056290095530759842501477271134127154631740056689920958293903733890232776441388968491745865125358692596728804060134043592562106385682098669118075472886572684140337868672015287223968857886654432233291715446955878641213616557880555398852156636039865169595395084629044838283144122707152331795237507097122574775897161376256432158514831876281432102507182688984347798992415507767118455112449409417880167613979069866930182303591784292763605892696117941808442508006564614209105026586110534221607533918594461909251713227787546848484422350182010082884866707839174936299095698060291411288919324471632141396650834773056166366225359097398845887026201516235754552374641482840348495338142788011168776588944719436744192118459231100114676623872588172642465821630455160262308134315193555511583844362009304024899716201491056118001823993857146977154065272898990599937654298410632860136208651450361837767423781929567057506685470064690314016739884432546236216978489923347886682193179149825523854987894162771402226596364265045799671019567370045923077116827731111637229554584722540878807991983481212485852101713580072108231556759568036746508481758633034700682196093245603973128490190509735975190098073226723739357229118124471458763925850223684929069186309896602358668112809515714853303021763798121145100592411220870683619638344638066158322052516988648630049586869231930864658295203950358714762041677716227185385060501428726400122876252006997980947289711172452365462603802197316384908256042869847990518372992372729970155158461986712926830378000631184210663811285495264975185508003866980242664292654545399086223731678023737687713175678501603411035600412148672177350187867759521399747214175150927857977732763998426543608480542080860516364676949889988539327907775702381544336504610624026505030871629526927157360968661521993771602345282237974053688790887509084945769848702402612844497654512430321972257066941432613218781747462843725340246666413922737405678099052988910984793302940065210871352356333027431700696942775994333798164649532358593475260050182953855303901304105609214226062315190030416610766231518457095690746244171612217308166219796429997204483675521874238028041049741667920605823290492683493370539696868375344040744654093009320389460289772059330715021815370038333312408294521710317685030169788272580445739877917505583222970829743904547122384835194920296390717969844657884251876914051582625749973870582054090789269890536455422156076616873435397723172454279079365262093470397581548901895477243239332706158273701322811271225918889986786895709011649570141543557756594727852735943924780306213769044453322193212090860655894005217230385790425083608435316174015693858444737775974871146806403905301812850942085251481334249572152821261547310539503058477568695324471963507188910841759307799292597375808772532805019789896071098710513537330094259818850682618543506328608527492400174929265675031825954124727097244839757876205197049941129144828536929935253624586773143177047746646681488707018255988179666003014206868298868412042678047769033721952398405587020549703532990967655119343255668020586002576530393878530134490490779933935116313673973961074216766320091833815488348872515441005092444703523202723875628341080414473400405226367481335514399010882780048833232376674608146599446995213071502440357214243405550644177004157767069371684905717346303081237532674708927577182487507165973866093911728181785713212717366061471791035563318087851525597291220911760192538716341656663592210892073565764977707892912736069883883479225913255570523562521035583594981263799740213417924231896183727344330278000186292250968608736663525785984262474791521732974454975766632499799894163307093242078034576142208770491231077458570434890118762799662956406731860280933652501526177979568225238027601632820669232124216287012419742935029211216410875546004775641765625236579868899467519241162129994219411990461772128918158016123254282565581623527926774315996137845153078431330850737860833330691283635312538224764229909804920757767663009702136810772030161954228013749140426019909396685817449662419900185394169758939958252576775946343132585638997378782756293075025724644051493157415016240695413152691255549957802556900933269163178407791666572791422052372502655351023339053219068384899008890141353955629295748789597453293893936107855178774965045258961871056465790832241511806404670100594346171661178700203673548390417030715598902314859004569656903662482786923993287840284114214357628294263609529074510040486256849435363851029630993845303807652994946592063880757732765321789031512227190981972093012507248023244376085167737697354725672321043833635540616727671194716714170051476057308976222711936570257208349377164489059351953296300397591296989324042719092894614131225034012502286923074439215211452132836095905465112210754302077689394979783111057643617796380502906997580911807244703891278143205988836398839105041687934177323497836058570147022098361679291348838790592492198861654927957249857318020268144356010203290982612041072483534634732578555545929185491458128327121069903721860024680985197411216470062774937993180154686362354447263096797497776531866890489285031127365254577296001626018099019323823516586527526772156074887662599251101854766925787785643015563934729272643818245017015629559634929407081763065671147330158761504462140733887545016078444594828905952370749115266133391348911755131569417387446967636811763830238913197488320078349323825308143092173491175750836330448554063322797331336711570759188441619657390832493732640940764850699169276977925194997238589179360497997027242748564188094548558487070778138922381260609434963310815751537095342388287195729923290790039008544850144742857258767448694176105504497407777469533005925403939592421644714810472718519868173273026859001309482636011750846165261416958065916817530311660353737467978285055408747439583615993140214068349511856267035777894562694530228819724351880219928421388839519727088049476877891781812027881135045116272119527122446559702554698160250179665171248041688012970392126240628932719081901137805266217737523514133164535937585967811327357247899504541557153107934217854802241239567502489465331230061011032872838071028682336587401121830522302913482005312000043265000606055490677089063873287829432379234836991666911459586452153003965113768616867455702275353056556461333942972943664452527932220330182415589541107003916608476901528751096708711137589783647094312795225116044923765269487114332456060837771418521963335714538529186556871694383285602673490553983619508967070378113666091404375609004948966154958308938756587020831294144479991622796976959095682274974225221464162746329027165708296516564409237487215295270344325341529951734263079156082616956086584065219895230961832569111257505013582115216794946358157755001015476754309728388902563415858512429133309220543292356523340640113743101108581934023946266293616646953503830279347723393491453754026962063482624304261963188069357902635182112298223495513997927552730555599638274452743040271594435442076728303140179898034789115721206602261763881447848590975475133216042356097648683294223342322644170489791010446264392749983263608099256278664305196425834302791014820689851153149217220725428096882401079695854372788707526715803595773389284948313314736825450212307642714670209831322584276162727003620274189232312564534377374292730476371007091770477769971371229835376352769427925071845404136481926375334331158010126553532744217604199626542665842262877822360053462176266413875360830355099521894187951349669885745862715927508662180870664729254088956360859711167202625612201475665912180491132439412403170518150380119298639707805406657065202747210671356492209376515139713994277046575103974510815396288214593019302258872619137262705427442663927070202953245909292677868591990908512917430188041683824132015229395767662635388383086001613247974114570716149738130216838377338226497930126414719880554809749727168227775535495957057138126885627186999793061087698104965681880996266100645405208366194577502799000015508370752313125689931334326567124629665028636065282857610866034408632709785468894659689098371322308532494562269041608123169010818707109133766406907244847953140092327921737765556131577078917344876681495971526122035664525820337137025930075290735056460778178232671872816829588573423497696468818494985064572340700236854675641412002374940459766833610889015878235645530563477602969141302698743288305381608916754398254334064492080694507083905517307818483028240784297439907995862145276319957864348278804384511689851575570785004178776474305176585275341602018394594952568794825134025293106223578686030180595030495709058334705728601750764653800364679696719688839381867044573780124181113408111645126877334064438024835104275848043444563750569758537072994242869189505870559207811912559168063975910754091355996825386861102091763678192156411701279466518430949308675418445432443136987182630618080680964012402451567007291687266542665833328933237930189388764365107373303921986694997163102242185511671943109102716416724194894027486494377366717453818712146538457633767784110440938848530682361934934143153083963719391493861452495046321429730476448698673758823612371551837169727362312759094477875384539399979701872331522942412359465239716298310692214393480552293895093973050931697615448004737222144332934502578842141693090039838182677724973615671837162239204682115040232357022410552556820953810605384421568334120583249399520243610895740760167537462556620597811486114523491243363152343850424970733297524805961262869607853964924616041323150315266206684711976680678296474655238913710060480600666669984689023965249579241775689117370795936386006413911158202294415831511663625253899800354232187484729104284484856848845946408627271815795772598903608501290213522204142324798874552012825667616674153957559494931226669040273030596028897737458041722666107049933943993926731950890110712847092223615326589497008362688057165821750821983227779886008416558296576314164784453123677851231368582936322320355639073161173296830296210347655912286899785419709086249499794456340068977116932532348974114718504360626960093047987130393863330191084291808159405833083890465282274782851833426361385877563881909184274533416934524003025560248871763212082418205048503964785189055076165462258199793591895805480687702962251075421097613819300712530096913062188300137634513722710067204319404917446301966319671750302114585119507964468116336754089191072527495950405389757701918003601920751266560663256717232815506426573668402536423134037177862601141671622453063544001232294833517071196978992673069058090312032450342468235506844342967437052775769140100690693812141154470571323359182530604157579381376448079797467768943891291462618481097896547472317904643978068294831910237691165310373884093030191436003491156937264700854033871016535392364944016517991525695801377519982682149317162777995606116398177043547504511499968274121070106494972175465472302361444184043828247299738706480859361847175679595691744040528879397356463991376181849136698183991755854377390340784021892649105443540412279678615149531106664828134105979381683584756936226186179370533885814991298898177153250156800562469907001751276100914847214136631525058160302175002509468684224509458545334285286288673092212010492967848607397745646122857260899094959950549909299009055978558969584771849002921295502424768521143103043605871883347134472394913059818972961161437582904522727836280278500435756107991709042752568662584502419579642644789975175941946278970892567947705034680033365251979221031872131417096848377343765135744781357990372540602100753113091210370879000284998477881100233257515186475349976265131818206197679499642717034511909111572019433388219031103264478923201925617255179734616871907583355333881930138712086791113281720386162560884817079321229525366490387330285268425481594669897138264725919444896683980113334734814383779081110834281656418046555830008600387642427288728479013958575557868983791421891457423221390832258949821189749358570105684065268309184897095037892876407224401739870073860526099563890026215707496379105758944626441930341795300090536124250922710213122137673486868186055769077663514403346417034052145406815728217346012073317918010842140038403808265624678510057625822887904601131534105773740070766958794685099579896902200182439805220046613440646716935099885327664242586127594305000895487536099217539614241090743457473785095386711013847385746003974928127980128723975006548698303932885426664356946884890184540169314491959478524904340905755832207690562711930782903538546015343917060398035627239837466135252985497649526286010481710395831046327814790072031706880640576466632777225436979308351896395741675446264198228977584238173893852801235697031383007852125650783334623486249983478994561079541123414756703294201773357270272780637011691644409166146963943413475702353536030502125984449351100471955185781505149979555288228806566159053835635722859892763663379240796142722282501904223439029064658593857091478722491211947498842326092171549432801100191908382321901424341951706055144122626406496572342515778796946117635350217800572289706170938266698348049402658466908884856665244388433362073794816156151356710207772237546142604730451040116639461583238418560166532961907660041746106748891133674153046178411527309809651869474241110505522657979021906931324321936810433138332318734165755285510617042581948037734081265925809066107818434546332982732045149263627532153661305850778536617439059493547250453327355114156615454089354452396517045793444211419969025351311733975696489162929816397961790302741083940221966298651571604248913075276119114204480185511371365647128243239982632221014636953362252927764008202601702596612120966969599084813894130778045913738950630777075897768263759136519350054604725118133375838807993650655714009738802313421589154949226140746441697860389781212239825364702536563045522602255903692054621530234029762502194368291190054731082989560415139000341947940787129998098152376622257349441685948914571073810891345526389740978595140806383378620981122582511438908689833989689328895444122732792881927797969654540309176885827582776072961882394260170597659014559121217033126477268849366973494007656223992528786446859084373409422172129689186208256530615723792884228783208783920801991595613387702049310882133312298079538949130816487961363111229584338282355093939011202184993953300845568774816287131005234433779743182995964061000904596394701353047188098252430833908686302590999584128626698293777762000694363051122774086214397236878573469805566941341676203930502809791287878848383356687334299368896701583352333925286997460017397653751678426604372446860006452775489453555423491873695829989595139339686022547090005789108168406204648140190070544705152619319096220658952360020500952900721091592924764898024962307768397965344873533868875486347156601158883408763259880670729543273819212212579600896281267339597406145689651141556867451240393711788460282401816274153465853321269618600419528198491512614301043272229645743783499789966233895163457240709583309807393615192080187193391393618174607250284708481450597659572996782202672349484454520934817892626494291540331988432901574251790570660771072526362485758475065805844727871682747340399038840350960642824055855833669888034105527159387060548402634399211078640351944871574218012319368452455809785731440093311427981472338114001236009031461661564578325221040368963670292574600362577924424740456747332012091458871861633808126562526432245212424074515801575482776116937991714276100740945832110043687215391095166619482198724232010833570230716675817747345343297569986572974442108674612238169433618714873845132667764420544449649552884209354490573684511611135592951926589299102629791292043069926099072313461238828776628260417330733341669891474379409416016408661551733070290187361197709226059642199502947072267505934046087535604868031036103215633782461747458771695846966800844900098776127283246673918222754290578172756871524176452383979428240935745436038243963922771815319488174896413019993114664522405640900214068850742375028405689355162892261387341699119104378022193367642072977757950539092374682822701919353123639515793389262333415703195142403939505420419644734762541545280376479591869644503131829764433347289798753001926301006944599949971377779766664318008363515013352924239923949465048790137560258182396099326178396247867548183979225441322378111917062416911636668478738726281739318902926321520848969911606247010219566348636004219123391875682482010945460362262688625809446410781262859250347897616903623152365018471733223549835334097441237957488897208826823613330102437356489830214073771358072749884871395162130605455090965075766765604620248332757045610165361334029781078301174034170483068131653715940288757798535188513483849581490625417148884238242012464996635268165075105492551327443213951482583007698779248524700420748645692468521815634558926943022005345241222181215209229432573178441583155874300825100190434275934694536508678034393379418780192749282210692677986751103093289991430216178501850760419838635569411799930299211424135434383380662972625944920017870841928124946782245753573358234184888944527541193938170169067068249348968819119840549931918529964522982553729052222550591443344527834400088992213390099734456981340381317941109893518816160150366321247379049344400776852072099564073643603690150987075606531521148256118522036795681338228838183088300897385132925297410385380115880748655031056009316903569578482534926102645934718820206890714983029726754436837638732038297948705443688272892798608389561357578441072992144930164213053881869720794953588349516090738242513943061568559757309759221854897863799031843589872005744302929971924287864287802756959220827273014646807056513536054316076581962072377610966870360418116345285114300122761092764288985115620865227796477185171140813656158790731816043735795060497586831960000400309824488749152267127642225241017004596402299001113810991781313290179779001340648608094034677170577937216642872409207673208079868173766855196782365358425295621048494514983213908668150750262680761816338731483533864598476672633125028269753656876820715629417906683713157466456414384989346293891712319233501395228440929500895044468998730901754376160320713041641853817311529900396640839984189291613240250800638570456859373833308325837782894230855749749551344278865536442692456165370787428558147287410882198891841611959129102115074569300948541260103787047703069557371283551113593874862014189016327941764307010083045314856041953399008956289716397740627407310823928591557657755404564716025297772943051241001360289508814448659270039312813521394999925117586597949601600795968704498684109576144268607954831667352296290802946082598504999150659358163879909045069081349467020828508717692096085923840245577115215349903636993987860047790044310231670138484364330216720994783202494459911499246680613914037911275645243790730027945599471157844720098871410018462958762779597308177910166554695809213511780946406226432859469805466035436031682650014315870121181945937839463258096556136889305008674171747822272853728195651157821028772935309047742258994130336595042127500203028595674007477520952359293186346593261200256443459699731804006587820718591547502067586306584689635120579331503791441791450198238144866026492521046937800101078940416500448819581392969115628996950226807091056613166303240255850211292465210095897690212715493051382943923614989307812577854940572260239540994952414095202561929163531987862423754189625323683432181552142357880303000448829077501956416379902494621353205570037449167956607950311687318435648824090002433492749972141397057925247969827526088777939036615848340764916842175828319233401608620857049007945027370078988325565310797671846635247822347899787446285540246525740107599364059836792230503703702415487147320815271123736231260978061337286735085560484653214887515027748817816462347559830679526317434480396808068137485698818018404231579920515181284513946356993832537936006529640323690146571555896642078862652619729798736320791945632633163984744436159770006094627685600005788154174844891634064328489847268960496349678576488101249821180176275993927815466928873829683563884052057162164268053154882861529435720885792804162509380458382978953189885089642830187852052437632625537023414083336473767608010354727075642823273478712922076707748013293331013410736882065421909988965682912854401209687622303463352340554145554089306117173407084416586013875095875178201721233721826776013448782371951799205842600504968215382523493619961670842595162257424966490136876761695966605371827747346530086887421604185104266010835205545178241579260502224247561366650287991781643365503958013109642713506708882163360008839103327582581625189225205448293721160797993849525655178427642123612264456995008399895520227032662056643296992148342414927516622209183910714451833712319142897717648253273080368315634428171401899250953446707635242043969768858141873283499772228075038157867006340255305704351029662058570343614702179441157393378047933576722940527393056179938557831316683628595606165314600848197034769631532911174249803748964942250085138312843453097345288077063043396756326515745239639603694947775082831224873333719313840182481614640127258968361371756891444016392104761256385975508810878978515964118481047878448564035183944893410560380403430327610658167681754823844998063307514667459186907108533648707189727513888812342446476448479924099331466713718621725553339007999954053699461092806162421580267505232585323411223863195954147717670625331973714818520317661508686988999093447650950426352631005646804002977734427717095706696983381040197105782769680664759588865677105098378772180504121064658536458335165465020954191280898780292271400141407003675515267860166952519674813759841562827170704921118994918062623048602003328328976068186664989694274620836337403468533746705081448254012768270374107017052552694669667833539684171913885513094231504556996970028555888501505227402519648607500645302593390223015995024599789093561582743615581324762110639223567698208647061411468474643820964695945777587051308825847032370552337226217192425147383713996283201407429361644298959524699987653625348630618329900309421546237663838232402672637400349353009804601703057724509242746678178206300718323116345304430313979354891761555254637353610565388274491597622272943605658531918081198284980822443276600521705259712160511055023188488732345882479125546062730547565415011953558714651795445885306070700478397398464889255960814523336257143365386918074745016128126013707114428286164987101707403255248038838061244790322614244776547262122328887624394533493416117347535024553817353446861767272943385229198249322296356110380925822807137833771369547557933845220093309261791850381505455086948939127058306473430563644028429707450752017912345290030054953849269944084402169087377463717114200071000829974666447452266682528339723464972573905748920036581026130113302625452658733564470955295788351209284620233434096583625631791124131764513908006695925796611207536364432905455014972962149254240695841466570942303802150640375308215497403832215080365208733997125042542206211327199682997562348194167531673939008978665937925220169569909018027709896827290264896778246633352834211170745468051806511877593338591276333317639543318880868004896030573422962263097313508072760355104846309494815161321536061339898625743782365309364024737818943321748702668787713814108800747761294731813849366371058357614517724491371771014891690508215642175783505792650191699762568775097293476410987616071067649974282896902834542108864724266324199825995326272724658283441579857392527121161837695537512438487717924597282690189957460802112812467984704851873838488431462208802917565399059816463072798576784901685834216427778319413725403301606667783309674822033737382864619351923517898141228367433317625129470236586434113069361311219206178549392985341400030769993585596427390917006655500383232514461820147787281463008193438479506707455492302325647160047310590418488911068326437964848922736055740663586142178982042050793052364533198485751631082360090204912700103317085347716612442015601353067520660313106526563238212043452289033985586449726781868112602314296663324737600145135592902828617798136577040843711834450926504153876725644118390558692962262578525994495960809848287393399350757689769470744248165772839349254052705519968526567957454504108906821929002753965428713177786912771567691947502781872719635260446748261858478402918675565109402619026622605785272365507318145086303037673075900177409377543995993370240910936938031923011200073452385487209688713789467945652438338697104052581728294710218350794563386297942812111487055356571729790714668350454705264438489128863355810631507844336398444747136154333164555374957139285156561560685304168205565783778195175546526206882643662487598756396330967599781893913517108079682418093597283576671493227970244172633162552472854838937281963574991274815922483712626407648313238680361261186834819778426133008372620956761926246134161416568722280659668406720869903358121697334223661458365932429777018359016985335502173418309372149279777477045170439507292941510684209783507733839065800226727018109991830169642872771829076721244877252634211430014692022648079955045309819078662518021643526029123048625712479084555329244681503251229718888397570655620577610381569558907804041798299576749629910917969697936198124427346117250052221243590460509117219698632386107171703159731305090867659705447797109791665346236977818880401693263052398245579824466448147173893480875275359859400224175422818076864427634464800959582545316740002755491216920954844877987511708477685332853375031921387543595482400786361907316009892184328088283357125512404662862788688356341301200335626503879669490394406867401300219737732543503043353123661528888474657128140370834273813294145953892013544979858216338244040589453745833426199193796449663658159313565743152665474771942096583855708522475798684237555009366240870055461132356250265105199336904310556786890771591957091173864809254910064166858414830269498308293705528420767852501513102175645081342329080940726117397952924224105711049510886327312590370082384934395172487352631886278327612193565060228525998241524126625903444598099928096622135463882289740135614966764468853906700147007646722026072339443410507644721020152538738232336191916101673533345630561699520218856573345998084344005517419531576630603932225778099517716339605422032178649262941557270418020469781662760109045683965362988329418922049352393422322935417916514991910695878353685193872005739656753163157910028208064475177816983938874581593468956160375242554405933478286777350988877169472023961656330819795433792154816905443528696325902159930837759694924442958931129920112457447628554643921121189400484628220220263044912507951138054810746588442989069504599589522235330892781579319215701076490923143448961033397796910113611983123794882257341489157267989389508857041329370086850791790452754799689033480699157002183523480300768747188686346608239232310118310834423034942473446638192776899314695021948976601197956939384568172920260148842380044695039387758203604427474948044304918403983678463798546183813601553528856883122932897769062848280170298007837539942158216118240678723972699161351189336969781811008406815886907925393714451126527919359351290791450811266008152635715135035213599050887737311926720258120539842903517647216103873789519214424144558413206412917768491217692186152195340638622075608831230866870787916396362607057057696801445225164713873688482187465147931565611515919481304389793673332106126804560352879150510680860565025252716537193846701128327025741063468146396270428881476984329327350534348701613404052144619076554556060318770016528343156690369623071812617338139867149889561628017269525010309580684620283712197863169130364454065015728959368626667314408830187454193527239069684696385490081443416975385750579933859883912486980023988892272979978827523301269301749129597455045387670315256177859195915566753118715147915649686152107083624648167956459037149223959254281218857950981491603671048961942560001905568022985165993400455427729822835091407886752423919817895846694955911947383306332438043415236502415111058958615197772430839683564852909636554734755139007686959634892933939862980465281010671013764564810156663525661072653075270494215375668296095567443387443149602782190406955534934150155337822317347047230058393973100607545016492848307351586130921132454548360675142042270052347783995308902415220953665176392117218383832809181276972300129251009347439830680751050050745099039238072626644132761846665808040191520118386858973255508612620104686439913902794645279633555211636672455381180914644402592077050282051281276111364786823118173241717336296038063259740258087694988044698548948820402265311207862247790397547347701012569846850570408019969817471571272411774440297896035104727589657509935140078097829275001321905172364991182677661484441741851893815232987869219215413236852251919382026831584095543458505817574379555130605998325513446924010263328894429984533127553642570752486549665125541569003458137397001950909301359579598659217419526295233744499122659112644410816935035458501504290260052040549054327475382853599047512429126097094232857788702162803195617537022738626096054478299576870019730468087740063494128746166975512406804065843137671133743452889618845342489363223525461567930483383339550815772520573926342220183522379590977137566980836630112587308084262037939302561529553643689794545362565761858703005424054199933344636981735165754494939951915895841533271614991446768549625789425927021362190089372867982613872418375779992875470657778060544257011356003189896155182507280171482728175674962141053254512508699352047863707999467193026285802887841168211115437483279588524617282868070731049274348634356291627693859757712221455610887451452511633596986814688388429120574312216854738574476638784053404610674740272867089632157249250946389336510221505160541380523183984302724455216893849314076428567536062409580188109749409846320617152757178308953326864373669550591846709893511787300074737876880243503815157904314342405352246280488172965234369182187770890108564463848036539257070150256651741842842522996380507241465392060047025510023516088037426030993993166467372871851788326949581936643726662760548409330984462675449150016328442832224746308093397677221222624150060394443526796020837292122109630475639481594176916010296542048511788052924667455758574645461015583415165244344720772892520876364916232683210554587201442001050792460667848614205548226536804344682523252221399063436675708638711329592180218115375259553052494488364816476827289223515446830914249546611478059008553146510269486162890495090124612944255594714337783569132019789039379881898808327410691061942435467083435187429071227259873773534328605830825326924398981899459084311116540861255380697922936913973766518850084710046295061264758267095831052913293144682545682473900710886315003145991113653113606897618231330707175536760647895363619747397381942097840390414606718081892965961688032825017144882758602241313548036216628460557783274421997251123265920502458305775446095191172885387444660452170642222170521177835706495342751935910125073301506190791665986338139022406714344462421290773612201298612022236927925257402255271827596775701797921341714485527475237771611296321687702706696677051190467124585272889837970187006612027031152334208534090631851638256722320348153697198003227261030379567140922182166208837529696055514712495644068953964102778568973947346592453117975233294851915803832659632350067925058690285153255403771879574697313308745581362557214973838288306675775990735788859203638770831843061638041442592787153946926731127723193774391508216395445475676197625260710959959241795951143249454784257290452193626273899583084472499021379411075185283051457526355874066460199339805831998033115809294950504519633631833809003318017937245497037262916104440505247046185237013183692992668038920393503034773196384847627488724457953446464352965612957716873065335242652078547981538084699972168432392504217170692320929254876995301894682380669870872340714682283199729030185209184058112495051429917038737522955792379051175505454873697143562712885385118622574138775175844021816735322623088861477885534521340914270371844721378383889225349673290881558659742382613985049436528467851193100393633029557848278736348104007005260000679532528022274577099976386484075561528471089121802327150555168597597042964173361237927678063028090319958329817083043366735086058762066574381595614426244154318949695983164209371654366929817341741681862153598815162074298386856386549792741328401982493952394697205347643352858638682424943094916972739596876064731114453417969934297508779290718442090351752646978922324639594889068668163036117799980499413128960104558263725705915338827834275814262653804006676036849028822780910803661975809228633700690982554704737699772130805611072409019449304321534196126740047877562178747908905241254435289926650906603680659490742391642978023537408049245176009433665482357775096098848943602877174460343229408386613777457904515834085686427565451392805458124639291905902895057430482163245097413732962703200861850553409805102440827932144606396393203794673863312948864354393636151297812071578221546048999158689542208592810201652276179688864790710384352802889383979809967902022750324888462920686615594136265332264995274153166369212676824279364753212200809087683509606534520554357475718703906384785864327937093334004322651025588428963685732412092222213920754555241041234557107285798572378254728480904961223816190780683156997334056237633708865287396586725709021683728064493390881713436063324632891881224435100259434796719588613897876693627286406538177551898351553605634027278252417148092892227194925968092013321465394042565742497530546859435130419245016872962268339485875054774103097040041112136249750409190012574265362000258340026484805608523900255784648524769652314462265164272505306624892012687075842073146288110497464483222552278383588432329947233795001442925010973206217128753385305789490902533014236484427037393042273026358007280399886971257598615981643178186660127875501583362004684072331281224645749218858910530332525207603293773090407853324971282129402106660272128085135552952808613331435821796878889918462664983998100270042598721735763900962283658743885769295477341961406902182598457613036141894709517997177843145822539146011019358862170325038165619789588221809482068958008468678457461731057298773348149214550625105415101913771461799770052346513120934013402706422375947322228105036402520171334879803371831157860459311740362804702380508548327726704009389458214237935746837872149166191600066150584135732091366916698530197107061641948316577406849909028660067014175095281799492552877647007524146894900256320791786096337371729522819136782970216751332390063979270495361364852551166885160589833808973536981062938006884483322164036890079276857055514969317808493542479301774356319294455787219072995225798119136984498515659066261473965755128670315955680154242500927419274292800741244018158094909769427546341172018353409104645550134068338948329902013972863580832322669681139470713137199652294699346065487641094670276015226319222926957792871309474205524667702953919260844954460397367410136390472516911262065271310604798625464401058997457859648806270382391092308192514671119257086124628954300949813041789326797177149386518104453060352795141836047622186737570485210957030490803071804899009166096843185990669786447131840743741749959765739927137687154998852703053111676044113070932664763294982364053543005258401382967407142848359955289334713133875974465670800161848689186593123885268456445795218637995887300266327158558407537091870891438127153892150655857678848307416868929817360934200506453909141593476835654830068110742999049077076672837087455820236284398550805751951646685554619231204031813064388295236437745419518530066233838204909478259541753557469864064114995889670895375508764799767402374331600432054591335959793089977360527281599958927711109650702116932275785350663713922989015621034722884497639005948504805438765972683722885155697249228523036802994787114539615939576480509945232574683469892217797824055181723142771980305596806408844680081891223695079860701871822445796701730162068549875113660841867643896050711470635359023601216385131503101753043282351755335898162324764391279605439394929986752991264680329010486968813625473309360716156793840934832152107781117738796874903854939858424783303065909743209762482376593243450283232826768542352554115504416350061333538855371993087474053355934643567233166945524585182129174032044009534914040629722904930780670968432927200295006056378418225727301080189499547994621888688998910882060511170092265151582652871280877295438703420059279216229779437012720450358715287774694339243262803978525656519427501232714275755199201133825090605412673232739684900659942759823914314180545978491601730845209199353114466895061855724058058397101674401949704231984281044320909591248608765084985079965592726333466507914724728262221390642183195832500577982364935362428589389518746101119412220827571722738441248771361033937412210319373560527417084099660548127393559436535045056281196100071546784629308124989985018717003374151502403406555399755319346313652802461810722524198832412291113770238423401883179886918014201600733195078707105930921507222528831502834770521700655026026219327050037191727172099674269699160625888546202535781506306187664817380187070367546180926234993876318558121171153242273375189394421664176765168947104291314372638257940412640248483911999806263776211897281704067567956925160060178760303022988516581837616296424614896686933387297597749257144022895997573547728155498979377584596019061225323699125727628769887388703763993964084781888438829195161703961465116274216339410923089503521553782239566992713082395985371601220137338008022316755123412015596210410554233511420869563708904530319155345184472510731932971856728128308732800383605851538038400000944310627764845574791070144435714019193948056591406240384874566713682119934121511756696390530262607938436791924746760281191214450906743401018140828749557528654484222743814282062906264213846464377163551841466750510193815783514463533674362117415509717566501774248929670183896031284418435088505617435103039119875859894477028114781830970226996169642098426065886532833795393996072903398498770760787292715585289685003399226972253219933005435417404241686523729269093784194700095425436013795245875851259288109680757367555826852354435347078811346239755983454233195723094201501367948920009388977503417133670026219861949840351161193124031594896686910473979640632362078868063401192686016194527575870741477573765451413477287681397138677058400685587900416276686847871140958952680931945814784989033070384711856046245548423611882940535642650585647902803903711872816531743426312485587211751939902689580493972629984862697093494828671170909350906831337274955438463864357770359544783541150013791849889672256999409842620659104460889122163343123030150540198059067606979376612339629036731124806469343550829459846537333372084390864025818868867396822592190242040522435674265501622581764023653007684603151385831989500216973670910684587395957854218977983724409624955660996905622093753311734335824256853336468251947860481668227267270987995734059468906992407977939952062200179077090998812972889129147042328687663351961750492015772017974341683417198765547799969917034232573725356265667605906655192640658282858563535019634609762563195734707308333437408677790090806148987099822610557686701544023220960643674001203743958355995540134279660125276698843598619882606443284858831015034285910299213564697544102649558624003331477442853150260353260696155198939812414428385408488587635210931359160395157783423997524013823423607138584220518373035117091050418935876646691460492751242602606875549199844609443074467961841894514330533231937626907113023486575310243685065276026336099434051324277279981555408948363639544157888211279366904026907856311993457856459429446678554042912674938400618752223520814804292680900097583329050584391070519140332683761503104605828583350293737222536515206866283326853551276763242969648542604188258443699168161739780104731047386028018628080174802294222324222254850420236076812415743832742816885751381198488241673573426656172350141321529290024518616334625187383907645084048380001330671263412623006527013946943281765198794875291374020995674853328733735614417671482762494124595693484036844185978592456864679405372104277994882803934439797300301328701158724850104328823396326916918791515866865840313279702954551934879572834319162382360363700686964745174251295739882602414990913383302003635780918214342325430088890705962793760021575640226704488822085681279095420319529075506449352385770735730325276983025285849715961419846010354158551618089936310117661053728717225603530258870275860627409896998655872588819167741111829182686346305270546018068989664445614728823780766899130442626976110295744903068154502878142490244433070970369705000510711564105353041106917687342031773555762516851586294423621883839222694652039624383951013905673043500336608457869385089613069777156946591392984709178180790449041418630370061151307576588077775926031441198572853680471869874573975402485732904158401890007081765867416608694742516388581984041338889378752540959568818049171160435199746182440552872624927746298828374603640345370887292502446455029816058663798474871679603738060858382756284179156058844068908955505512994113047299834543665761667245425048755136246550454489744255527612959839938181472686519964970855104430721196529278121090921037813202410488184530788564013009437458082690317108283261787769746633297659603388150036311087576838215206865577747160942385280924330231638930624370454848603070376795888632086244747459672967794972431864597726884008489689506653615356510609341675968808065309506508880268705972269413406741983398062938001841196039155520087644857532818913669065774884373335021098636808963281832949970201226346541183255593414664134157373863582169422642592717779109589844696810078225711175717109026024907906436469382083712163003960719885647295920551582749037428100391640630342763805224907395436140396579388909238615306987208948568296432890490415986935319123679464389987205552445400620777958570530095503165031761907354198871484530311968780222154118284492218406996219052413241189705723257547319807386162625112480714272269658696719591546159854502968035307992226387687546010338081602652257306798630305829641040479759174508386451977051852063118359308841323771054132747510188488316712770148691669232031514553280267539537380703524875727331458691517602623999035796612225563363850790690651724732185330301151334816713244403666984854201180702849058096552464143320705043016966308455828203857232451000763338573526215621228209821876496251901792334987601050672962555766163264661296965843037830857407051346051979762009723373627428936078511847683605682798839080311888974126132338179833843180981125069201125443247806283689935203581763604206316564005746308909185790529501412511478872922773451077450732099080264977238620702849055935013856625586709621956064215285528681374014482643757570572104891227555033136100908920098814769923395938246124213787249965208123511186800359029458816125337219084327351814264788348601464235827227825444250741923439917416365611802713816859977582281642793601843803638233004090287337975474377856060671530116979560522284263166169631987539313168157710786004007710852557390185297747127225573399537341034186141726882491716523151884291112188345851280177307088793178579008720710005586655431207782440516843111361260274551052703642335051122136262764897901616602543705806534402624032802229650542461401413096174049026515297910260290704328655623288109903767632252520310798690726462276076644913407312994470536247808230238518319338320100424530417361419906584087833757112455552673362573451277885509697171130208706999155691427501956477585808561291396198571165627011542941186386677508836843601555117332012035539323813808062230303461865134147050536349861890104598133630335436183556508377149587150872755605482778251849026980117394493339606755163387317201229072966762871439429220142313714008894589166107018947769074527617532800714156754042496555831143796675397406042175831684230972848148712697959431432211118689686016512188405075443134182891230963681221515314419247796528767863836097233588089860603021547956086282329683057968734800952912103263064995665679231157871015468053285808268679819029918071515756821345760215315641181098490980203818125190466274960868713109428202444673107459233801057590363862525903563902415501116841258946671461364348053717785071722524498523396295048867309921886644685810326352434431115399455666361913427326114149210047827563593548933919233723214339188920783280493868446767510146575403753060133816450384956793728849362084258362752780883479023126925217037457034712807156685933762927190182171537043678369871583217514733157459497589749933830548924805276488402300752001712430199566580978853690528408019512352750078461415345877513875507374069006654085578844702537862235237276443314259990561699486549342099948680780962583754870887667727303061008516671466791128191027570039864475908910302624204671818874830623738718878962245208977476923251215306298358932697394520020096176146343400372201149189741120968440578822912210579974689185224728870661354570272685838174398865231097763163244244854447459396300938585146724403915518280314753587359823784567585887765204089346800953565928114359829643898450628533817346895545864901576546262753072017032574647533195679825573850324850965504547195103471111661442795646038666938143788382478069760749038119383491770958142030600162401972756922153035930164273479519566263738390774319086759284944744176039246136699815349386774123774320471219102013129480047700007832882091230554543560755035122368530893827094959746519408146446765975244765280366264432767738274258227532203241668301122911883391503250289618658615864884680474914807070818481309678172482635584730770543004105070696914767628140937713924184135325061584459128907592641891885695657976851064498625739770215621685480622277314423650075791955631476024613857880280489968420343796060419848244994553933900654261104475792636077503478494972986861170721123200703031328221566759308612402944947123534962887601244481155875083372992180356279131673945007793684943745815428539796036847655530437207908338708619056625292939149629827820220097203100964389495100775675360512932502740634144415200002218905866177900065516292848971862963203492056536324959107539727039811717017098396504221120993460078484317765920318422166482490855307888614435725153408616665564054699244519571889815578152913502545907925023034297390114763722726882751847568057235906403353655206251634018575416256702243169318393106495948341069566182366189606504241627336065557775054188672264811081570977035724207019009801425038802721636876013898421309060821674416202982693390061837956499533147253203435482093278767874868872078943781202671931721656090860942610029865286151675210705364677211063140254304898152541564200239506751273866732902132517859014127942433726861200549138667576843198427141179181903492284176276254451387007314168326489386698154202370481174528809920478151198439140031344717524085723635191305535104649094247601687225898964878634077484023005975708188747274865535218541834695989361768948257351229736608897083651597225239087893018367938244727120830826704331193544972584967455995385995167102947085372930597158479582420582487500705972013030404734037650447374517628132313737659343216192184860715144761550749286682410917880142732364019702823210144722288240723445430717437892185848755102121121353137342587508967106610185579920919343401753330445903051800263719555489724764275221762676694538448637655844094666002260490411329965952591912275180705918101683608817966074003259645929922010275609646273241315552123029828070360673253937841143618726506441720165681191416787377455231447772265242223894326445058345865163711656213195642974257880693112562518997586705710714288990500805807675921694333410052347861917861684061522458782413813789825375181415917459678289473415262516226756979185099827859448038000383096381645567742210913047997270699782866694963884536380365431057078647642632682603925724480921467571635590716936720079014953640202855325003159039420140253777228244835580244359983542750048149716142318113370423169712429817140983838236739032166361167639658473393467882916158039434476668129096137191182219152338624173676924042587835793276443831966230817514734660275606614681896453405241657807891891218316732082840150765402882013755788821804799531448557603878088655902641060000921008761477921060690154569788369770884897143416644035897573696304171003885295717810405101665413751449495245822000181859230252339449184217444338034429618079833791974195997238326292364297325545587287703038751258573735217137576825911206856192220818199350414795800958989030639649297041055261408658550374434539849440725747953843886790132101294100556998222793955941693424208596209382105639091841725256643029840187341971935129064517982816302157999103906070723196123823467088276784322880396520145655597834841701498676147921488578001431537416582917055362210441856541050813062052768801780016835685733796091009558124520714158660851335195160754746123938325043083169061536437964768360207120440365213578542400875253166273913911671291188994186162409678418493434708449000687620470581690548742428504578944580614906856872749582043182094461552068407001699702358817570499954574397154241850941217950564404038861080835743382166334871626312267897459165359962635456684494783245294480015902412186676890169347359583193612792410215201627833910202464910712649325945848269873073506818392091526339146741171003190109988578542912913565081582646421424109427497578554112314940306108436952970555964369277444563389153099342506871272712186734485991073103380123339234629376775573856930431884876399845111033227511132207246799581148480112848460137044624363534956752450947893904020618250596902231448987187837242283417271745218035451668510617491514443526843267829674249913190303734947417571010871986845295100334165333129348601551497834738029880194733142131771760151801144458533212457554324459025873870759311361837418761227277391512064892900449356750573045481056153316269018198885020462396883532950037225007600929794494753348714349350491010186950498196642771488279619655791433327521352661268860562584048812716726808935992918544631633333432959097034683225051269363032498765592707886762792004779214246654213921722493542015162665665782646798735709438123239821221360065199787326830613965099324078624412136755799830066137679548279968086950814658592393544238440118277466503427224308055257573882464571838979610565273525245251379866144821580380226702976296832910258705847223792705446781256150704411804579551717496392773380622910878988955385328062617533704623868513177212954142508540790628928794135074938298737075553695515252159647497172956729070200492377305218857587012407921820482579695983875501401090288898080925564721364884337111175941880513086825019789100696079049937811803052801177783263709845334786572881639425989179328767136528099328075634494952682900645590590504346484377259429713683188114245517382685241713022898025565574597259381018083227713566818794857475576413864886107688959861874107174086251422300223075177706294583393690964077861513498762121582414482036865326377001772742874367391625620682933686570253070967606429872224169227365701485745431176814455639844432248631709265764338522728228042141756536358317969146146868377917959474076914474737749021908990660130983655967794876739314562896333367019213052150363625249605233879672292736580428447365855619340784236754321848605118051856370695310201110171626016545339166220759951669605964200331367939520272604281106482251735637066474463450287672763953135800905771317794616170241647146245518687747635823758404833118510478309764375696624751142827462071441772398977152447875823958440685914902162033175394874767114324433594168052142064465636238919754768852052879949287811699619880012434599779446195225706315867938523690600707142063992151314718641587375533871748897388666412577184299816286756749651200867790688187333643311364269101634207969537593668543559097724782663723163592868194535841694389081470543014282839449889410733201129613898073394269562836075744598852535559778434565616052921179951487575633146524706951819415847944627654090835305519933141025520101443379176932191806604458137165246832148896279522578059691441609373200246360451542075798156682006989131112656406989952957099913670840295680032350283937593732780749047077366852974172691322436737080730128537153878247947221411888892458108246895306411208737567796028689443105656026847290450874853241782261789000294769175339140794574524296817827785970317055445634360263689760486888616679174130023749820132694282060501771976193533656678884168747213510772949648369594016381662935931363656308514730361760381288871608172553438451842800964863265171231737553786138810814899102632041149657889000811274345695266950124325064797159176420308387524227206840193681888460407096076831019272237714458359262749274608115342800234433540516309005734012713315489074013638091854906834612503315333365059359984414163345924481719946105922823480886867325159255434799161913329845559191761119370492725236550164590730656091777189217256432873100786512101021462713801528698829239019499531477058855415315351410735293147914215993307420337768905562463612570594963120382775012237824431929532267916607875735038344682637238512675090895999188907304814010011281846423473095185631068906758580747473960479643035501080410700480645712093051521606040927726867169907508306709061226622314586543398268669433809149510526961714562567886747783257863828268439084644379345750539691801687085769018605651928907911463817774656345373814966162432404293612622892685007798219606974841531489181146824993592944859360024545294464931767116711290090140449322532803649656755177653033022197446044214750810522123499040812864167587808499987345358594986071368164225843171117460845208488710044938433941188605132988471419007212001102075504973418297388291688506726789938100685539508957510936533030042172243860952020424758598143794350541203650962899622847057590446812508427928368835428918877755671403430231118269848295262832521070323214484113788815774947154974871882577154078433379524918074124371621731049015861977522166977771744327393716753919620653475639565789854388012925044822728814142745593113923442601342345444739993910745283517639287584523737260292268933381265660094786429912742372019152007582553273758118659633965487293385723340426649799730073582617687670719283418350913821589655029090094779147059057509518677881027826213974122005401331799154254242295161366766421410297255174871314324428200262067545642406499976113659129237040000535522497112097206673890547934164299922091726008835080387900790421392440950734855167918508717264738277707690446484548368096207866213833059526467032810531278328485400319411831833587943545288121946874318020766892127853973759901751621764037586146832944824362914320979276995518831694693589608100338731908096069495769347513210946754030804818497874549985907727268204588601123339242505081401137136135932199310953871292016956375298060682012219895853721393326912637125611775246599184554693990186579676204978474940559651484058084897513856679035093770137484632994058498238817921266322977321258550633045197919730755437824139649474650419718432189959023492095214409665197802638340325653645781991535599682472321520763316566506161582855213299138522582770255513714898619257659283787414403325354014761253722593582315008646596969479277207625984310680608451655234384074087870236273513484696262941161762460452294634848390329415898385807155288567468741330613704001743288978623978897717030336689843251933682897308113525358746677049966732254395100997592676614705150725790888993910232067757483215618733173188538819548060074698347913284978424811341081886415087907512613909261336532776246770179700657160821190124028588390204219938311423436345847057498648016301568085251672969384195624912480062692368098611087344028642718873779648829095873347646540541590817017763666838980622534992514124049266986530091369835458434300970072906659944015017725445291702962874950427835217883465169430229794786210650495705859774236938368238890853555282163760923254267167716912652358282918618683310475450578089988507128385286121188409601547300185110283960535573655507896199091918824197361786212606986698656554973848690038533584651332471389085290918650645873261328279946912366531907866318281888212954130317604223115653578335282457007578757266792847516386378072250374978583036820990423456475932748950060922743025963365165701275414076687853824350393601204365737268559271622121491035421583036354245945845359428369831622661706775164696294920359962704446498464348284608576788675440564453011500596299412160546387538792509175051761225240727969177844888854002437539199473043475524729451632022823955230704112688317414865877672511013350257073680942046037956930613533724892713770540615511512383454484813208580127382977109110826952517268835729381763202106594953553591873885131928573974455288909410636235464422524047168923999929176190976451874621065418910070591444649162614168164352020169951215883655477123337663375640373675771972062124536038293688137047718576433987931871285324193963214457185093530836284434756425843883168302499975935069085419212957591860593154136231490804049295678405796293256701959366523258961167125803897455775411368093917917220978329818846609762588851931562296940560261388791275432244285876967189902962048463575624668638471371615655030905625539683647005256390333474704533603131450990118198092990056360558784417711654193109935057560216770109534109052296052261399708401736148742729429191462551443844010430129966233501647548023929356412415287715511495297765864313607902431160806957692695943867038132834033060818647103715598583308449728414203828517028434747795663277180509961303282333967293625602972240942839673209677963100425333861193976657730601710266961965286649066147294919293331094004560254639651255583582763169230293556617409905049575739670997330014754434947936253559955238019406222867081420044154742655756271521192926930397949376489473167627992771136343629807862418909109184457906978924624432514162186483972581570721642274260146791720584665135343014716633167317119418001058997405543830007912139111375472180182809069080365511494552258181114193407780782134860423129350842211446366329577206088171707639455702724795883659010368352923871053065828024306388286146287772562459450057665004345484177930892315296306166113054973277892526980282740523576157360392674784635869166348126928106935560100357526453335294293845766489387211180828789406194293713414012225221497162597594380711666573615846524415983173481420399224034153697354841133311404623735315817192368464828837467669053932307574774264083645083196166891127614830880609967698037585460175600347312838586466392624181884584897338968469502666642951633948680881500310874367923973579431424096311821005150772588845266484355813417073835510919373810067706754710472244500377864966902083591215418339394336486728872204366851284407632033887595877745970566269863243509415267856084426451324955316100824305789088218698390851735877220727414679583885930093665486110795545938254988211002778159227182978372254749010251048218511980141609995985910559532012453616071092298860205021181186742132548664213219065046337904260409392846119544609265987897605107196301710969081021638148921338237813329038661861488643140267551606395890156734111724214814413139138302950581010613544934142329558854536478361049171936852124543194835034036251132309537247418059322219244742970053073096488842760590690685903311894238902507679732676368017212705465993487257868759066517087223026288637541651169247886902853713416244563886465871998757310764699417760804926907559992085780195193201779234484846005167275199747884210722630243884545290243136410880033604265610026548784362785999453335738170879662374782379625306330366597850107187120961570225813145664020323491739337902470130358046627638039654845715132473406718621680746445299913375617496145264667539306334282128392037211521399381283403523547902153616279068197858977173399509656641269318166971533116729493326971983126806459838883838611358991416196908949763043395492213098247899161575819036132456097810293286968063563477957566996172313294191500788579761265771109050549613879135483409291739888357857062143297533210387725999825864139366352580788413812985963026360824407106524403143797120007527850357059561091306225498357443355984573430127877496324365549748263186104393122583236308243371230670091410523435043775645490661262172376966249186565534339020925244860840077080139411517197862760351039268168776050362762796265605714019989526826949162514584693672866878687478788959359040136658437591764819132801967647306724856787352186309105315775474024310156464139103263399367093050002108242839355851584543635858936229901489962506320239589947678270030951853768284842739338584569452038686323206572416450299307212283410974447473671261947939362052474890995459893921655160100365627774404306152523635430946864515019105121552453954318982245042860610531204415954204908909905543995667437830441234389432151748359320005324270610653007421016876246025399841073542991332056155211194025712787590201302886761541684675285690146783456773710124663095781665641847826494564985753345866086830808663033822984888856772620601590584174815526396727847068885811605236242772844307215834153323521223339714210621641706547020206100909335278360498268554388472166597557896001681365918892045001924617685793801823146614966229754591530933506685631272165412459140505119303301935871512672257072309304026919632562276290254255216910934831177924463770670658541228033168924010483504559946621932714394189419220743638041396207394438645274110547834125011075304974579005466586524364235952088287869445266299000635037304714554709381672466354469398469684980253112330546005688943208696881501043303424476223644771354852342488348569002513548848479526408606528919851309952420803308733886409741120401247931758531633712413737704572799260868826440659843112537194714442767732418774007524453846909146454445924893513626760180808269680101766007570918845613287840794157224650100778778873713634881088164156057314967710619463845345525528944426439626502275741723900830809603145652437787832815018592136280490949343152568116268180769706047497734929390738554837550171747009013167113862560905244561313797004705271781090625969097725475789435768093739210782053750885234444430620431775111145273270447162204124466874492673680112969593400080039068967011806739824013252661391362661060612722366496799436807565839273236076570837281389567365324317203117954816693497791518109272835529887412815669368311305929168489633837003559942461101307671675064182499500417166422555409558105983827264801934890469373524986459144844916529717341168599263801041882889778264940094447874396150868765752195210492259677537205259264623022517829148673606009918694049726086799935040931185921705153949817859050743808062151143941625150736165454119350169621707391481166014520370214161220625292213772997462759838146309155724667913639164070517672222851292245937525046914857271044795813437169176159060921468064807521924693659641560445820603476197846784097302525032036958142458986502770040709476290162912288184098042656024531191091352380942845009521047390605887232089870311315789991442959633208248761051514455548542244900888310635981756940065243585010943320427321057133979994672554336543111526701555343310727166320166993799459972380864950483623936108742990754194334492701059084446259182265916899640785168485159649978248826392492512968738636545108643997616042530288880707684680470648213460229796332124954956287650536209621717617519124756773621741026477288199846343854267304675207502072512959979679121145016024069613125574298130059620682958520474142365374518243710901442038623070890703354070381708740038115371850834371319857141033102046869228399255928013166910430710329498498110254450931506901620600365072128741703858928951572397007467755767318216632516213477047005042261403552333595939289274375544006229412071343808227365861129914764233411182013336331315782544338090106251757788995115766957763584755704876952435412884366508673954620024388438026909369341484212133297059131509964987916674954126806672324159333131736718637448680612839383021223841684408508798623711838143385401624897069828509558016371242128910612046002372111932660120215070567081567147488441888625428528468459393716108594154792258243848558269229517474352215669371947449920651320993928145004731675730808930059911147035532594476038549516613194758038272597196545031812892106877843789681967524609217105087684038623820771045303601994779864878906025648145578027195701693198778778670230478434426869835603769848228031270809445084961696077725004335559687706642684429497931238405277407321802881386660895845041471689913828396326477698215225297543739940599535046773234502780121850168660892822568370841481103153194749414043909072362272783528141641900429452889910347752017887836809632974633397663085230569406265948259333656195381136936912207467814460169578950695808382883486445517827057840366399557792240717844709260518736383229301534136124674059434345381231693817339881110979248262546807104276493154409813618377611664753727795504500373583490917268013300254564427267506003176923164328862303102880624672918877263532389083276497283554491707502754557882617326082746828792765445099784327801427749067698424745954210899189246577444535207884020204134330204846946045321663810857703216721450886445330737162199655685721981975722916815009108800760799230358553180246659824242927410615983321397493383441083186697062129969369505668410904333770367932082890313509964703091682207974791959443324529318382303205758488446794497642294864949496104099470398210332859805213156942481560033868915657248689144733442408759489173931285036197124404354921127336305269841758016242528269457368299648930821101034497265937265430992089581242472347927740983564980331960878039165995094266774490605326395618018001850072994689755549280359465463810097901108693194703903018563684200431017854432396977658697107795558512443594766843386151092542408942806836340457292049647787353077144625953834380422921188281225915604600946947961391234903413042554065430631280496020401034849246777686597713550117093832154493364022891076882711885050250450488747903787727096831511237626364344470692322655938583894300692851529634767582815408191932535861326289876711004690734696300276835298157307711858065783458464203981226242558602170075625369220348053820381151523208270422852134613875541925054183790912076114427161403403844355208078390705015997395671157154991328256385776970450749839371888445106611530721900188036301929270520154135699677054107949585867904562821009798087547009770631427599701971906269822252835125441103812289764194433984572887751444215025225249463561734004291771296778093006041147130665580198438262418001844003694619760165005773971615337873050347782439589505657021059694713794515782608288330564869119516586007396208128430061619271969207086405863472728081616367823797408456010873390910157129616254423797391055302827672174212730047346810101730373629344572292798023081145990136951544525704452875204022353810153905724242162829949214485203733187023559253342526653224927702660947357833763192805148778473473051437227894973181917940506503304401473779658559523640888759969680417356715780924022292320211360033931333756322755146059906183497070438223420877439102279830670348780680734722064634424669521303028537404723594021457200057001736448336447713549617465242053913034934263839682162639211232120722192962322494593889581062594429296207064523498046762900027994047445595947931204688413977874156612651751415311920012313453448551922593490867214340398660926093267479198093987855199712509035392892150754866096373194493324786254713036482157782317469508039028711796327024768460895908020857122658818166836642674509557404854188596597702182061835106593131538082218243615807788482257156547603929724126617828904856878128921310639505438973198749044656230184553747338654044849010685415906564712527295538131054421295538451772712760197211411369212343059019710905744993124159116986949388636633386292242926493458658300301392326886605592617558146337407366752499340572594172393842968849609269292519466313188293467246983689966463591246490428799386865103171802144645466888118017601774549474756561573158422652652573137622130826567575795866957789847203413357298592651829076696222602094363873679839365077889183964792959483735350691037376727212029268961768113754126488918968619128790932314596071484058968060744406133918968208521374255568573685121493563773427834402228938879140845517577776929824240566491560141439518832170534363413945788735507760124347995042356786562363655796008318805311899628361221390839775681088865269105701427937904428586867746019757723889113942229387747957367032436878829291622351438318494931859735080559449713002920746633058546035985925861764057999382679609507990833315804471534754006564686554944732565778153414488125751339657163583552863974387676530702940426132569707170280434039090585341473777493938793871014055390236623758569592012249266526348769423655828427593745131311405681211688627179262476739133791939612551395131152997041482247184744656648144315386367665900979064495826209021493317462490039284595991778929166165216410955687667797671098136453244704981534978481228682477060716432223380237082465706325303636240339279096872156223442512207645674278589887057430272264736578407130285022492329465009372499762645295015371370602170431614923865913561849238748282597068328077876677921787084116306917977848142220582644820860076732706746788414555201872988162779161976825372503021242516295601996918606965165874648853098354790744064410166645759246289559255187181096763499482476239614503446151537320684647774815545431964133079479024089291442274696708338574439628365339889834861984336518706672461055538959637333234050317484475021354885935690037423136168481985677534662951831089256179527261771156125010998847447297670767945755677318655151342374824352710798900213330289586265927616212617953830600486736569534752756477992751208797891909636965938643251216788076325250197223613172805402945630854615836023659404516864032126320375045082171676032027179604855868236806999195585748158330441832471154963525389516989764486863886025762118193683874452915427279773936276164782694096164274402001399041256401884833035814277840688359298422610513323934513077429112357765196839776145557554186197777597177297168159641566154915822263200715333255011920421673621194461630633439287930643713476600591298606819901712407263241413484614233048158141208360887990478842776980227454453584322432017150741643475874171492352174563322543778246838494665922443609628956795096903748146369893655640544884547610660383575809782792654390179673780651863637108230299899816896169696164377004542374742386830429749458116804952666506142540092865460255835381041109056674642603413433546831689606003046838956860947249942581808581883757279712808232685580886989864129257637864337373402302692194014245357547027908150603297196256298272537260520887481736259698515367472654074294963580531365383746959644468569974831493433880537028545366550603101254613494465845251992927107368136521524695517837821914427599846417411580529282053028283262095364890402814606391052501434491212510668336840556108648110499607883523953902788610337940728989281776854699104341901960771512527615285096353567051215940845498793636452126400675664294417216495209996672292008000554437906965411126009894718708855988985221788486991550587508294336949152849881139541357142953009902265283447245699426395739375394530965005137228290014962996744900287373594332740787000861885536769789758218145719774240433513467918103063942700124204837346679254759840341176253135935207111257520928366870257789795602014804334653878712083335240310167830980724510211949384393498409719127693207699176522273822204347180716602840499979673669473031860057242754060533605216913452578743519163044582482009657898364398680582257771824608887135402944346780873872878873340467130162810254484771237055086394787912079527426750332246470242620205832767407341627089558560133798543755133141005224844619078896456947258971272377693467633205654323480024927070856332202900511714727664183297736689432944352968132841689137447886957687230207771252869454470733430676423738615852190953398484687373234030085225540404693218871549895612594249193012004369751232665061035859158788481352315982414744850684776068887657860705618919654142395053198566382492037094496123384568950111289944199087728547875692242493746305383690675207769312921014702916078316488848172020630988433583923961929564371622370824112053723389275363981360419474717669857369398971154822089406415102938493824827778486791588921103202682730413605449572989583071050363363642169899877611225479191568822625960671153145969310272252774050772121089428701467180382851248330874822899776224689848487460796969235160293889005279899620321571014374027591070002472312409623027441208381024246393865166862388216521376696681472367446504318940728075836035207493299755469375491108783027784240620819554404660588480280961321828448582154574645700198806600058995719363380924063882346455481107622274387162489423439783930707501757976506937047029112609613492036731509534231724115191790347006488578775625686824259408021911789697413042240235566818599472417827128616388922861783247892044498848038486023207266467388096634583643279843475745057211974304888154529332235823920510511003499492187096232635177534610765313151615236819006107184385524750869275432442815972340088420472320421478239252799205378574900397298841959310042942704224288796258436001497134308243934867387427544241224949880447466375309320316039996244348716777537346693441488055536182231326635911099439138505039739375451938325113664952606813971113633032015687778790172155396587887571091035309283380310665050102900319917870673372720809412316590736196611214044279524631004387150598920091531435150768252263047069443110521988304974996512191882041628656032925008481852783038213984146850287247470575024669987055153848525013575753259911608324169155258481719881250876192846458127390329833325851600112375057803400762701946491812792855651214982300095283388640826626345698441358518555514078227625419896717376156386625537462395937607027218177886956941398219827903543416962565954454537409346203788908817424201026063345852868239098925590846218679481945720229950721756812178330763500951654024608779393594102694329289833655760883905891939456622742836827428193885719981701606635772549237450604386833501506871564617964894941848997777039333118847774072685649574768562567260965309423874236228799209243089678324246667405244697696243378386535733929154859171520261809744403010265972402496306876161121923426735091703608228263676672397332411910554030721551663215326747076952916771663355389840457505522206368536661707099679894713937426894087254621376716413018627787708079891257653564206597505349347320023310631805563083169990057564910864535898844614442633437783988107973668354794296245648659753108843442888605294913985139242800214895620146187473248126011062592037672479427744364692413357298125138457370703924449098880246909235926392547513242891747104651640248849927734157321117593197892529018247485570474011121658032724431475167262986486409405784911547695928295375665103938158242694744909189026938222572192333832193271990212506835033921237391781941646616652461338385372154738638355250534949650226009991742271123911867080604442166731897800725149053401581512287755597292612212924596644390299190173458036015340100748589573247793402937026596716420116999781048420872235119658087273673551369973218120420921588927228077026736770481041923406554320402191548803630007294482217373540600265447922103296034635113525306141332946641620435573493247409863361845646998454139358092134659936699095935466500256715177055936845206916480470833016615988979975563274796776298127704605168228668997318194104989506031836182952155250715999595335776743733265169134257901165558655478710730482070125756202803830158426011733929767420563135555793952268564584552548329632655788951227239204317236120433027048165149513618227729566117173191577484152079921978060806888561789124109638798185934404926032101720120828492755513593907600691926381874955241051637838161589539927774017586818185687729595163579432328051324819446229841760914208482698169487410482291805945768792575723914910462362220816117271293702510440820871452775252880886804675724756250380352463528402764308671573740641447907730905260225785362269948325572702683673508499116893271017014920420848352129777698200134093942813810586576180342222073086074238342232867148416815334659127436116142037589327438161344629208422603493037693582887839526169381165047492653468711374849846256732702590551379307437905912209642478031652808118857077778757981771307643932575560747864727628917125016283172464494723777119057296701790750517286984745088073486554853205313896386532209728904851253093050944661817779065042175434665556430198202063454397985035595545181975258343237530146429149394879023169248125111227197566607613969332047275380775239175427725550437604398193357065614443154455682990842384357218304907034920672057215812600829250863638530303746635915751384616044010151704198374099600131655781537690308456301395289557531651859446516813682031200724025033114029063335590066960441834042555154205898749997074031213852365764444968565424727927107633093095449980582477036942249387155141937962202650239500714409660855518338454114363404893486785117316304577567199822848179264673206756464607067805030628900493559745223467773699938220534086628726466985156223607762917877372472941033957530135833299687718317930447857071830098928741960163196175080134054647956406826011222313838403219646938323903295887491832244545591617530592135268324084357774751279232066875510545778139838097327823978422301096059323490075171463484353944675788046999362099715498733703514811131697924431036060706688394777182171887292926073512360436510986161549696563315810007149453169595765171133385275424238735992694466992366354896195949700735722055268848277284077710269618001376995916791192698113333929830561676120202104499230387608732468000962801253014427678747448268712727205841897277866900095252322097120920590348496412493447218010963763103923353284426443062811451555243716206651873126803498788917867691280683656706158985810397748203016389233103140082716176168770964160712656217952778164557294869616011720736351904283701707619100340537247007772625103025205879818523683541488009934826988173777388583076872535277907367541414047460056259981353738471710406533100480564532772299240541775918347886641229704967950274101744702054454322957803165386248980324535414636818207934214027844633170458644633824101828778040747101972251937265546527313988939538779588438855364214007736058066725573116858834728015241180193203234573753904159641496258585821875011259656593376872145592833356577927334137354910713561382475065113218808148068018860702945477843838001347393514044221102536472058897037223372199140622350970537729907388691845647190252505733585099477614137514692755135326280181852959250551576316394929884661942472571992553918888700304346637142668215086867246903323228628687012914669215167128226315531231887844970089568310518081463072241846779767051612179331511038519829593420072623254148711995889132446663601519762530957295491744001950214073791217229323612809440418375082582961073591266797759659065101086126381855047698650587736374180197642048369715095823273617990882520246007335838009903719882903338447147942177446181704197891884667866296680575178914713090444551952799638785500694411689744256406737216097371974833607005809748911577924273587194930056350095660225202047067653248477867715009977871264925523842316774863703185916603852169085792409750968427401353467891057463211274162500817481386876003624245401718752109841074268213872732290740448609431408466935512873674218876944942119068103664487974500672108798003879642004122828921733823194033875835859369092795560349195191029612280675547162351285108354837024200582486113548291914861649128825430815987570101129131745958444339392126429628748095870902901081092447628807359578564770000441716560362839001694743919733891485145850104183888553969605065898286394840357968492448179001977762132689186317440033646713149032013506176828554310355232414970707914270672119044115473002781297475594409098903432112258211860909010923029367209353325413308152788771213110489451949770375021931199313275360554706223031631725320348344717078550540103683879353865650281385593244525322113617643028371598394553314204881974839158012947329875270206649247751020187347200815108307426285091675536694795755777173921943847830153166810853543680054317726796048067303731044252611301127270675705971745876676637513033606685517590219229281285324439181611393112406511440555085134579353847730709245046387173353235668946895050238208699295384120262632771357806557025716510393764078372438662089309164480362553014328535397613310799360734891760965692458825525251660281038899223109085872354310669172705806442765791350202642717740853554732106653459263934072098147701799078691326456080319345732891220055288258209822877149832221259584949832114474028523099384988165447092800026149215148794667258485925771704660557982982937929015558961987697505244469037217703617838687842532787358806711919288114857853870606095688392963577775186617044362209444445644415734480913711269518284013894282681350090498528175860579016690073932038218214007470497478245982657495011940186304666004052296275634331569822921357328691339785063192945726513877838812630546074094442704655904105455769010241352600425376929470660001215799685011062210906468629385137493890349010363921091644986419365788754792675282179214284788942097476113407022360377331294375245072279025802677291523795311750532946438677033374852135835910777539767670320246775888707012297219877434117368549780064275880688077620213088382218443198685406730852503460597223488738681450172157708007374339180060761448597549048937808218677000789300877856704893510451651485649658239450483556225725007099227400286754560324420649513078252178337702560635755910066380344192528912672189276579669511573932270486836761738200071925707733175097191196410747796605370587454817557401653101694235091516842703091699736765186933988955077743512029864723011357749704856668241120516297479498872300440982272192424550255834614394115470094411077733128110369855679852095191504714551060704439774489083307752311876691443653526812050901838229312119751865719100693743942128071731001491016286017896906121787746905732628363007562770533014799240692949750432194228521224681742015960857554729672766782048528966188010312822730555578734224997044882752410025248752451110397604093798802908418712521690215047906022675434425070791393640404060409733535495680278589843242087833485863486563399140877064591135455441815054120043206261799695397463892401240102674621162546742240026279172287374607646003129879592495258593782514537966789442373920576659687017053735076053702647213565878969399374134239956732932694134480336116992669798080404106973751585057372857905757926475328800593585218818397130770571779971923561825507983918976285668088518747422513111769433808406043955766202349821048446233785579983190121157743160316061114075759805615492351405040845782389156913339160440568581962093530820978457697527991966035545025342851247385110789585087148596334723171733018540332524278033540956311329363716046337520104133891558313809508199442871225357164670132194194291582443288895801342507892757500473893514520121418363234781169113990990841791011509562325181327040563720162300382298214043257219234105749393009331204927901562064125265058428768547999790180507255039214500411199286134293997597794098374422382071619751874261310066281682633859967043633874212936335491193088697880291790467509272227279374098150859844335118364746093151324406605510399906951094797300915755740664122567180454058610505803589414369604190350975449965638744977409820476825295192799645526242617070652209093783423779400395186265270169762089540648115459121283236611944387487054281705241091916133794569553827628482804384527767157964026449832716554684388762981109422994636523450601658247247854849835211086224718774839992927276222237416965059940531825857617914454321334708529115481880622745808075866209217498000155816247361828774573765339677307595635470210515266142735570565606323279149539622934021122263549465221117453535307752607835441984079538203246858185297938137132166873975568055624448749028935224026970468451095616065501360770287688683555377724698301314440884407740364817061010740979038798965120854096105615401012040870075478089607500534246348559845631376718606837647567036914744778025393439732884233817545923012815422195576057614682976346235737664417963320631176480558624905170017715535562048652689750062215399184931594471951170537976849434460879902871181351117609236864838756239656338955169483075988486998190369862128794287631088868071036887104268292652165359999590177434969691707503660757157875689420201730298738889553370138345294987243104938612318079188899996806077627687450000869440221953673544335287481271049196365124670552668233051431227969273284448871084785161262240922886940877073545143699277210066569362375383232842571860858489852644991710830005015503221439119254747146039718687963731748922950964170054592103154668662718538033432189190997563740439473300068715936976324611881833812830149054887465469204590748754992915427577895665858645367468036779600057280220302563262594977289247566580155896248635954721518437199891173074325255691721186310436689219215997237850774178425252086707922004040280451407263066683786281118377717432135300161238807897309905291832753779976251405574490607798016616049941184129569335524103870954506243160452400729067318213590346287621643388374518507241695926099922489529159638040057385268656215202741809950423937784136032445312672097961281368441196338205674790278530270757189825864132249724761735376932191606550617549038136994744275046323405373221171003736987652968985970542305367653778570491047702042568870028695274692529919077764041517625142288759238890010197988888374173798527394957520313108035112525881751516940542262722025992116261822938876757664724165071096979740309007664902552955597416557821195461700553503997750288874023782646920206654251568318335161257737998793589529711707508620129045193495044665367930545261189990588389769805551032823437203884875083822133135240843674804172282042406156833187554640390376109964049485363211952015166147168405369887912810242617509742690572974468074743357124689266978565881165025075018729504587622991802057369956147655649261526191312540486237898907865627259473056111887552758574284834840490357474242514079610383366452311467896436160260089937811259164475101318141176195258305702141341558888191065748185123790108138920290735120686629226912208621166481248564676833486114596859465842437385469772071326764235296179362898493859096628688812414826061420319120918956903033458585404972183411262495614808357948010203784911564387469034087770221612023218994562402717964783584782059907901511136483827202230697925766170556370582139073603800889066538150104466513914119009116972770178098603599305122217587362710257891984535172988316386296360095090483789162376792824399650657397329894566674201425843959066990311678019914163812865090053447507153566874173668723448887766784760744728656914754760022141386261393017362499726051670109553995863046875736316758356212472944471471526555365391413346938621647275210309118023959123442903013319992505852943160756020225356943107312276498342989848694026265098238055957835326149873011066895797954126975068442019773118851258126756462883425370370154991894770213950936681390505741021771167629954132894962664534479895208115525073805649918972801443701043678441033638077327949303092353435201208249735061037932695935610071414183345139051093555887000383508882529892818573031559891878597246540577187173641312010183784638336208580365421239549204947232294344369523193784144307224611236516513864022323396205657678238655994603739286889811736967625018405526954583133606660089706393704876543238610057910651299972627192678947690948659777961395378886886262136571434800562311679326375782585806594644007529466358560304391598939657406892016383011740567679137893107322063157219169920769881349397572267099664105512417729189154169455292850952827978414110588838276632953510600914057034958200466979479780191231210806601570060743584438542206804126340051374316634429264997832866990885745467450078130806204591562536295382165420974188122104192723137253451238743127555907947278399007991235494241197576057333468202877254880684744001932909159948448804195117549095794036444692989183309289531519472708133976542194682135292204434626819241207466120660648038442936598354899663322731685462166197235049661185699013541520709110954436438967040835790322799237192470706816257121475482348255534385111938270450974492619437418196245016448580147075574400672882699045725819523538040614495280432109286666626666731477362252053771734429221939139286852959912884249616389942695506097824276681823941982663725131649619709551431757812083744327271029204559066963468995681617766768049011415262760531232772989426155817980598586870128737715127678365513864524950448680191573781846283864449785623813906649034957017151479749623769204630671803712808128907383978677086398318101194741107351944856357042364029830388271665258160373671185115148327958621990663495894571557318960294680013763245234988662581447212852033602390129265722084290158575626083594085243987494766503205084102603593802848098662345128559672114862752910623674010270239937657434821564023506480016474486631498592042453334124208027481678959688183380717686596977355057309903674348119689591703279336969953443592216981196267269177034367594135972257887170697565104093995622841348278909925168478252681912757265132944167133971849738061091937331385558543311275349824416050616034676648573999958448258057263328124422218053862990222594268165172219691171078923752096485333086627115378145431120542666435399585512917685996739087940152442394496369556618500859191826823178414314129668195721694407426279076651818091912868076771491253285103324012119134464999302087660057073594793909357416874624558935262675381199860659547248748380611819844162744948655190095234980554945981237193915386277178977131755570421376540750931684154356566605173444232521591047365094504457714513479938518693667462201632128508182347822632126167802896549862077885760956743463418098378883879082848943938269051066361118732714455260574980740782693581365865836398120188948567785711079640797676230104374421409453459379847456071157987125448408491665574719704598585501720819246496378004173749554673078626127589975792620717637790315675663743198834692973028988791567352749857455213337846268047037065253989808153887146281769329922666212381300054096623584118452818145545296197343151119864335080318119977092779147026548779969550825702225691919541692009425544659670570960202988698425570648638410950751770840745352188827712876169702246738751305283647386418004204115505037214343050735012686987988493824397284246989744441067402810484143956502421554718410576430763945008175426832629672742797466641910064181107628422979456089583035222168158837352621103910012355090577226174860434239597564520093817589584155485405420606807551220647802541430885762908735946251077195578424884695145193330320620488528274832008314644904517876902022342568361577397727763052413620328324507544447815925394587244443733487492440518703625743081369569107850909620765170732407125495556191683900454305408953252416137014252101914633439241876898043451581997653807495028260936288156703897369459287346904623210910162283092660052650366673029433392514054332506648048429238637716629348964940820024528330623026377101613029233492364829756525710416018154563253604031493113545507196309159288922591337312931902916112773023253578051043049119000351451980634942678861302228887716676120792232596931669391090395559932265112673624684988612855182489731951013723867800823016902122941011143521037788657926863869255310716566008309818748060522735005497453940182249794891850522320494537713167275327976030720072648558011069972326227914099057350546468916687173054078749745239719996596644231217590159272490285039040947825093825047040493394061781809947291310790059980810109761265942795433180198016238493201868284515309462695950613598589519059154893987568360788665677034229142412608515423008581230467685627058425076852435016747258321982538898496527775049703975727690000464765101772263297532081354837080985191708327381135635273252016834246606354048557766092109220672275602554989482853115246264326512532770652028709431406236701726988753163979450054922285731263572164075999942431183239813939830782168324823658148405685583125524473755701740590022444571821812442353776880111099544199674506813518249167451342353980373609395176400048993516686479551515956668035472720724973586625593463150454632650629609858258671386173391660319435092976946367255023767790237376161855994462620014903482062085029202826471223239115872348822379734431944098829363731119464376163463520138811715119415756778821436775149905868887114405222406441292417024228762159272693498636176755874341590650261487538067125305006097924515992216578336924721956258602320145999807239974799672369726405690128820825152885766127587991879359306168066067324765543563229427735133174497059886054172687998255461170141628609217174105792485251241026330087794610495376878900085966287742209414415297464121151683409326455443955376925987143697628665187664574395730262390918630517907616974334667911430160039869656235438273596752052539682501858803107133083210147274437310653589612994209528082423876184567937813428899587158552618246075181429651365937190378578385478538177839657150769839310533141966065562755703958532075838055532973151813202790800977891614139180790991398943335610077172191780139535271651500339641709725082106410578457063124321000945765137062315127426831364950416524378742649720764624087726603169938808785123391938475015447633291572166184604761142870542806272218271115369072498206484230218172814879119317011805710545520083823676467507816866690850749036163206438726117007335949187871826346642586395475925422630743102901720667406104896424900089733073804766934301411330039952685045567026799550129909436671731375501035244616813619445570973272763815539962679405237213941876981328381074344029450261322834584520947670687250444613552942405515906249232817631057847096036807572636741826061437858484521438739041477726806238541886314545653530106766709273265558004672373878058239223146058944071379156031511079800493090337889024904374405658084134292370849779516174392254417408411563696501262855159307689483460547257782392374365854248086623401712623393173329866938143074688181533886218804232391425808264366488198416300486612230485114750301517160492825234607876099022979874503064774463536311431338429924960795298794419365731700600711830495122123159541737909793832320015847869546282689469893256445641275870756763594575863279231708696176734103330814421984738875496805939222495798018805594146269205014603480084387359376338498385792511354545411509631312327725230185138570336605090989087040826001720387995059650969501379919342004480243770519589428982607595271994167084511920961317439366324152169249096030814354929522230388453460167279864625845292706181770834797687455794404827523154508482897336535402786985655540857182504942499972863629365057584661760073614903732478871741519399616758718870032843125072239834211554127632457171051929354390267121911059073250040505028462015630544353230451066487803297267929122475076483559292486728815346343122427149641397660789732948822660652503773360535946647759575776242476938796422410828519620253085103726106485018829311882509129267486887872106491635133354005995824938376142325284211065314589305060508032996734341230750008061791602500171080420457710596745126966112359054127458677168718828866204021894157015619646273382886795683540541337556886510414595255185709820303160971402246723002908603332318317119967453117131991634939570383846257257645110906096709957477420327551983928336680381088966095335444675292014476666135810081678894935282142350387158601028952334595553157936215174886539774484083665074528028326508571841549305617998736335898882767456702590038197541511685223642175683219794599550263107649368122739612525812255326736257408628321507394082728078672874597947580838221928912434690963761350828767208071181167679797520962844978585471335539243461440869201936556642477356129113834956956975822967851310881588853913857346931098588274217777186133429446060723936222189794283053150078646364932316581235053104094894493508859612450090180195623740754215913946769362500813322972903997183828577896677095484126748718593252143554647686791293872106084183107541188691198253475239522336403704020473527945788645809715041811710718868314944786123288707008145809183369534972431519911246436179149489444984728150301869775980474656396455301343765474731121133353947590239196377235924214875210840760613670235243238487321622875612062858915757115061440362146253327714204958094829283621765539725593195230542015957532153946348476321012555862827889512099558170398673078175113474284151389552495456019100529364765133051396784305359274139144591940726050753610330461061366358033172309145238601829969766130906615758396582179448092624269324927903222264305544675855075417235298340345398792714054259400093396247201679999840879473836331225343015884085307086026120537800096805274463876375265846153868335474960018467973812697112322313873480050236441379378523096819376590189985295376172122423894965682244587210348320570862355795228151014527362592821154419455834112248293612420793863158231945170669779173437975492604821844874061563163338310188404254284944685396969393399687257733631350105856160919025511037594088396791975705260789528539293480161443054601011982365246579022328046985377761304388142984362965315463212308841068026024888827207602483298253899580567076187625282438482483170286476411156626752675509345933432656392919298802467722866877365658574851503469508249583675021570973509174801047270766983652683481782284369688553767064403296406605624016641570533270884629402541160817478692343947777081321020847863892167974087763474545784519538053586823943003101854825534517446516657005967768648540961397377705596112982401840691881768519285874230204316324511236501370480448000081074265021865649168138868060332364491978101228474868672312013971811508576645802515723520071952868535472325124906617244327722312828959778401369301387164412788649417529668134842552183053485903894648537555921494147338882252308361933490652217074370042211425259542797822457655052276092544377243117139955900164489387590644703197828398914097939217365253461570459864562703251569681892680208455717015748055836138588870136375412871254559613175155413034904295438644766998697857555404690517017944173333637381004064227733183401766799804931985227305395186108385672317259462386645579158717220367403047881953967028363242402176653337443260331845028028343767238478272713473785168952165767046849910292397191468255839708437997889951118826380190861344249966620545124620033844106422094776818585178484541140932770896402823940146016786474035372373397756972501739045113860736261196602764461033123212670556674487927122638293108134036190498603488772942599822385635489703466223311118827294623571416215048790144438034456771864814816233390044646960007622179666972070509995312855780843928079180714176546318216051233189193812129061366815198791128822346680108324293353138850572655064047404488927828087319740051543909812525950667025455215992578405831423394089855609537832873287646940126226111107268852889256068064538997724527587908472938303228930444647365455470244243049177572464614097179804784289738360025753459367556689450171645979609354785338420771658644058321501568178833958377527924490651939929941706374177975118539738556729324749073491740959351713772941603653166260882973811423528318038696177247202937146942783539235698113063466216026556957560909830517126100092743002473133771559527318331677762198175712600059459505164170858426818063230119000155093748554716921480135582652456811074836550930180934477738673840304203736541531763330821201162155496377708620360905716736128313494599941094805950329949823443352429112191046167751551205198701035675218918447948472195043390538805393474869853239544650406084883871006947024475164194871980581031832176207619945818081636850113014052796228128307084352119558620354052340697524776876742357277210107075681472661317973926667649639723698338307276929310679712333787999546021289517925044163950248317210728489257029526979795598585651265655293713019434330557986114308286904431213212109681062237677762006049399471617391292702635322630367367622893177511559644885882147281877614027505041089818576085638093760573534108663006497926741693466572991083346546961965984909747410016912247450325883577185107500079787101673271653539531402241766501036805183751114601985165516824681933474958456377273124798336956769883997566583466547509024737609219060908477046530903166013379763453691677111229082120369929499741491694621037039343946543785886330107530101170804054625564972405620827224371580072130772987261304428244997626617230015651698937104523714919350903680865682415224869059435968030537231419850714153005029850965347891572172780662440647301200898627884029124143912059803067790118718698834641942260706437421357046117925763536651428401327504218968936213393189982366376540428835220821946451501954095692959162525960221915317012431843135910392066697441386388752355208164785424320262519103450736019494289477448219098420372151639093640940428661804961058061973701910660242513327655047761730504370590526864422452301732284671004176625384757975363886341435591292053718802574576342831707604150165556765247707822548405177192305705360210422983235772220362715774088052668695254187439515551659270844149364717772102651694584042583906642003054305679600660641048162299170597454329065815325110068186382832774964188849395822382295916652291878496509338620047183178736531005794996302849451018505581903772010036737333968549826721690874772535481343167779323529147718382879232012465007887471148412927967933892318090586881942235870688728679203930446678976807935206042683212176280708982528462627078442316020852882982909448366868617608419764990260122476871708034331735374877125592861932015874779120688797169302588745434362902038901093787797850608015665907201730842331063340673422224986391402826994456086050489570503127182718410293967808489404535397266291966644468927090418622164798209071565479046698597968845510592701401668570818549712784046803231245358642827098269235514377626925611653120995047101021236744721639479911318236707464399455540089612037854249152726533244486968020037886685436424986802072789163929270073717732931208602983131499820972463389760929962100963157045037808116011124595893121074669002734521530625776583388855267950241208114468183625326317842457398595576031467245187000173618779021859826966492934922542568270913109919317672381557726917886432473920626328419776220639306445675612040624734222438327861598267176192080657382076201129561242091376491761575333668924779838036953968659789918400136788786736363043912036157779909501009633110792882471482237309616651927667410851268461685337292109311332868783303889645645408014043029014274997365894129624101013044121611202783998234543322952121648011766438051663537641739718163952366343276066726719158859350738544174999136014205350665637796037205854013696351659103838531962188968643675135631691024084317430750932445440763639099389865738631619183037427498462000130719455360131532694881354302600750615765147220095602995402773239965871713520305966705514899952951927059874787085919802323555006257679054410995189162477592953471110069002370616825193708394386526244793825095952163776853419747466246272395305563021514392832219816770069198614359969189905087398596277457784544784842612921992609539062831427767125845262122628668734805083038330712309143751850136192020027380036145316661073736779122438758487698550330379489653487371974107834468925266522834760906400830876601406053704456584776596859469493806122399765322450197245512389473160297006414698666580279245802849791850371364092415334138737113685249086203617372039968111537343581593112343609271584943539758901005659401603143486235151622946592749306269571764082361804305057720533735633304095502598369354231202348868075487037962974415689992819626558531160513023792248002926355330019230113571097820117836234210498496938301585700946302132437264428458648633180397466156357088148415172746272420068401523436908048751845539150698892723516752093302025604604279586113164126952636080400775241231934518301067023939323982759991254495721053729907731341030124357957628756624588493547382847116886379348046077763635822008347677479072775316629811420001194751694850869396183068220984152650289356829134679360931973754851974738260450349137151166129534553431892987315225170390518566501549489686120030347562460094393300213918622989263791961990615957663275197554893018755526145084418005937571793434593159640800531935886705610327867632055696918171860426346326199399663099570297484077285296150125632950108110709375157096192189829712922941581470999340988397593865838661009043314703424402602990969628123691127437340952354641699392311099617522317362276335341450000254949931252378466815740980645142700078270610528147498829349970971467362491306661544100305073883102256618755937935618675383241557615257764016360439457980553675059375269667366550607618464183834167739575868341322447918121846255828811526367831808726340459306454270628303774000659594680750721303442644941429574846211818332369492320145644773677034062982837419799808527865195157234901782158332202796403536852393006069908009827997385206965944356944197264375784977515197249180817941502374699519024710505727699855055889448502998681063900972538595722988192326550385212576609502447246720402888853995171708628552651301996216928987686698792317726525345257199784205172168387951708981051718665629451165235828808383040954427827584604597417090195047701253736598330773678322904686496755824803202490728331475216146511408904502477132558556060448286358396220396124755827668350126226019562769621761180508790089013274132397778424809368635703482210615981420910017089631634661256860869865488624559201627817576858808375733029659577567209554918083557850008382287091560158144136735967701415099600682788903728744913332195012564880281326214676608437747631828773034736623572871784712686047932945027443553530086730177490083516497025855625085372668184702949677557552894719448734590958137926492123595080439341746044240498745850374043992944856429182098711679203776463565134359390823769136501683635267054539175631392946707870938276622206012696153904174173285404149295723581018287556255031103377362709671284441749872256445326368155117581719214401605742906827730449246156267490789073768036914224192466672482771740893131042751718119214762261623631583787813392371239668786030409116791395532801680202115028975482234441295010696725021443621900505621872086630898895509983260839975852184140323110095885874136439637311577427022029025896920651489249760905235926598948387024252922478934049414338416925073964427264161837253242606787716148036322956573445470548159299167625725438516943709480262472915723480442820437957019070656497108256646028587178098917651051128650535063191429083624337015142046520362000931277793499007612455843748460537033748104584745185068440583931481662144824833226741637192576277162266429674033875044120008794293658325714701486104484625606258717359885038706802399633928155879000696296923214335282284179962206538194018888919350033544885496031276592225565701451631413594245519169041975275828718791165381277207736562755826496449237501078830244233819323035503050771063045064274026574175616728609355584238704984838192152406251848206884880440597460258419034447894292225429756042159221049815054383386827816205756450900992851599932973786516935026878664491165333138295129813812696696362500209971843491593269755792682598775840295008883676202438130304565810765178639173026669951870450329623410645572233901085609092766670077551547438459445287674684268973438722903210379066478709436251399860891926069950563357551993079413707130248179803240604060810933622981296430454753915735214085509947516530525960681210453257385825523360807152404175788448364516880402624931447018315501255477992503981396726811147539120482938926408286674941272488818583685571125755844463890469904878847324819835364013807070321925436094575854723242565752071950807594393367451932108965385665993272108418817558176234468064407806603545678080181894777351705239628215184693509311633765887712409358804826509370765566905440575956072786497016151388079589676847518790637266180166579674971995091571402208867623716013341705786146969405487974712523145101241655038788873723764597087354999121094686360852694480606619868880999979731095105255999045149058678481437824647728171552584652569629572360190270573673084812482504771639477929999685585954845090756212655930131995751336428712489935201677696460306239305397926887826187924610400270088958121626907803420245508186758190989640350325599061588973146568839430086147236526888781617166499144724241485078359157593705130561876015686193951669928514795376610527305140825327159505598088702532947919362992546953836387087420916106344447017243589453901024777174644407849193541258491705711294825372388435972899200541623372342047105938386302550272244862345566284773398334854860713168775584689709452112864583280163699273671982204180929144897558271116094380431645057744870666157647486454659601284931186145314113855610705353610250968427517335476695716388330883048960037450302508544025859389075681508227475940744243136375031270558330870747870899594736293457917926161218570780949965788106746443662747805207012007446055390295892763783760252687290897451615313881150803195209645964669518023063909283188311836774954660816680002393574084574773527083367304874017178534692702154648560394811674087663903861723449389837194843361585208220127263826642714625795129486607261490061716857579386670145869471637629632262986771506434361508657110211908810543624738660708085106721616801780050116611447730854287055951042237414644743477450227473550696131203202911490578119154290813750435464300884821739892881265373609083089713573256813322660531110430276123972589642268067688842151741427305317899150514585275471284120634293174947464355431505357008988311496568215923247679177859293931043211035371661003217300095662794026666834023551503833770200068372389735693619067061557653277684298598367488494864035996416670500477325283866329234777852099031490753808795821990566194977315170900798411587517681032101472062444036467165443909211899061661877442517910520504606739485774911327095507864623829849671171537261090391938615158091500854001248639617625529120976142942933812728385818900311872371980780169246901221296417368708017137653331952907557915626755689501337792032310121437119914509243936946665380794961377048100534755702205402042503803989766071748841402638659852939020648605296951265538626780916417406205954592060452916520130400329642976901552351338975410344216633597680251450870529476206379936236241045044809908700719591086810045121731351852587751269435231407299121770065867454527590655362175128387086056684837609718198819445489714946160432002608821807166863308277955335963268024863485313136200017710774656706655710576447903176895924580036367757741209555900921200333054102727062628550710279007361564710245368978123104411810954578268385056607476646970442533063676302319476320733932691899246684325015355782006549622549948953733610940335542371063829293019002418841430082450997855821895439028951598628961030531560927915714226470872867606034566207719687487956540364734475538410416122862477473024449661409920327716406895511605843397276352645268647120821361865132938225890061884606375663463602601160900743100615871376193920637853319881146263027502085146510809807665538779329117383007680900713089072645556457103639502970333426783910515584563748997806453459984878487796296411634988239407448987724927095434321420753632040507660614729086323137741115890327050187468064035003236308656205636176212016606103720361114549752625385546078787451722353780366820889638561702577780535980418829976020288598277883186584051416098618081521339930487295496801229971080526541202160864655353434269778967220089878564012411571446616379785604010844733220572197988528539888989905119445861471460073677182175303479987072343423943917656669742647479116456829721675751247057231554082999077897404420971900024520110399407144277761782800558397853087600896108169437602284221952631229838076363963786473189437365288672927951052918044492029693425258797104452350693469740452577402768258780582107874721693970914521541669687480411301474275473787109206011432936660121337254573535197952752863411731790578567020180365706769745315530810719920859628760319831468205940881895347058493192401538915845040125105855164979305103589883567736866285327352829764680820913969982127556346541449709946188347785787692228552527641406355869614775903325532774438668503206580350581506345557190946558667993273302754584775485933639765386319245459294605735921039747613293435980692023894977921684200712123236621911103058346955865626569978514593189425673783605426161044873260425728206167977896963157606589503641296529786944742749025880820027982043969014567366487929751733570171317731870697839287806245522850870742758177807763640878851673980209728566369357048712421403794745048513811705139956068139553410090097108218688787683087473073202401513076185665273926048825778719192879129855285786298630916767253308666307892209524459471363105494298741204600700938745280545603871173886463061094772442300289336874077512243882732173097100503832233747359722146361431406197346188512146452082337540338261668464714598221776758921267403805049608592944722484428964444248714447261046181196962652530051006612351980888279878040569065318594162045148313849198404886067402219267056427578062026437799005697888777469129798495518759576113727696315305633216151904814411563658936898303731658721000633940210107256356620224107215212615106483542893973801022619856064520672446323962450543706767648723633823837219675049783651756130969548163492909115945533882603772560969564032062410476114846084156022667969456334894846164245749094765096463540960570524510951226706733154933644241651288880720176544201971918779703663027799236791587687522703450580791268683185525024183129939516243915270079504768311116355012802906355477062295717256375204857008846193365614309986584648451972330591296049016761034839741670141576051715087969897636358101331966609526780884235936610709112993417835077096321524289729279075363550946975334149044140496187460481103366295002132199867984100665771291940032321484667379284820622014435981744050829540648601087915902198281146501947953272595177598606995128472988449158231311733550503953957268127744194516529742129440539805046807236296693829038198280934923249540646743984487381559531875340739670023587279376259015455795149945770701204349708293351487511496505723896525421174990981870248148898261228487337477507165818504452922792560049615879532850399452769886479396556643392676724899788608365423104125421757544650523279294989395457778811694073996376734953927290537677067437464194995088817059551428803576956342877722649494206227845642300629352656527120197518236809378688966092414956560462478395046907520905937287528627968624882796927757828935824104404564108374614163898200336119339456209944632801900365957306640282816366555643165635095847960096711763085909880004450856526649885612711429222935598414972255104318943103784836871259515617329052408955617064733202293253445289212236065915425939403228238378362233362322749437613328192138736601111052798743928371357390155951736008164505765614288009067915179275611372548151671624382821577420962179001159848791726401610927865134674041016007888670513725615297177065081506508067239686140976795781998986968558295324381257588168784067801417061601670336583375310988228456597352894518371423350809193444509287724071191188194149565482105850611815000029641214919632996975974854941495074916230055759946434523850814323991602184240899499473083087361230535612402982631010562616656448493268636494916531705293874623881197191933171342177961490982093179822117688514956258861750120683008238399361567600474751962511956093281381884607156742876306659907957748245162764517057093777050200012383590517694755094112375980352916896907143544420757515538593808380425188550991572230047788311905091844375559237385023401577250645139904428776763176658874077501489930340169273800962518892614110746655834276955223460903035137370989501112011593220182470333448476413145281873461788635885098594312446280141215576432784934245583187322986488867377009058825430397260444645697766489877709201972220037134736684396376017649122417720481929640933187324534904486592978767574021131395369448033783284182035958526590054303462388753093259973177506916223132313974745875755647605658939339971279248784488202121580312883494340630793020779065924455377676979659268007221626402977697545110052967863515176904905282349888240009420219040681127932333635380532931852399099486952558836379188154549774157250943587162626683886654624249220377426754574759377469512906347474754244655021772742620630811243744097121889392959025707546998215309900184302938914414091334100201882381639779513887613472717523532386780342444194980978770719510931842553552407320774013261250873926464202509637572640803376589145866288624587678114846189451590358307541177073292600358106791995864924225514852500164766585536374402571264948415311511989323087456356460315295747421799421119704605792376789595501662334576842815771037665796302104325469981622441233894648822876091739675639960309735337424525849351995453638120582576484664370142511167869618208910721383075239517034354764367909332072969467930911046388221141539489307304743329129533316209117891947501923943167990129043258650163144722373373200971115203017843166089221292896711148892161144269955750580450179081111058614601676665692683602826070735104023638841880020934091213608015113022661730000753664754106348092148709109451206022928609231108423076799467027430931306698650762802721771278888698393901558647214510708277968364966382701785552421772873579771892696435898912737307886233771226432220159512382115751054667775325589401797419741161351632488967503223382612163683764087921435512450028711769030246628377970976516257167753616857475000082328980476569820734764951878669514238413612783543571985991408219611541750824663792897381483747334690519776614282126995028769733831924072127771095885474891748982156824083737331136401207752394938791720113638954376353858747430202304729533328083249294538839159576578602220293113685355038162326797549019696428524129714647018711702084285279790105095498951892463917395236223577438507529463750949304154033560690666858859793583346591897415188037880264700489901745013607710602127073346500526929559325118653420626561682108640165340605711040730193701993046052617372845291170917368417777684584378542396874733454288479646670937106857380020666124526776555434296695650240091077222327216178841999498956630041244515714382045647023705138946480869658242941769855095435898135702600773174466709393330544561119008655816091409595384382717624433128325268958957816898359950692546420133685630742970541892687301313773233945229282762537938377723015161295721961700417905875130187392984625073344020085687526478566373340894818562418548224224634366659318337607399036295962902008250435323770614071261488799024232120244855702454462529347910346441967614900814950985968636238729568796693782360783737616235401620947047345783131510098797798497688290344981030566957330625400112108192677452260727872807298618481836683239462188421575447726353616024168717269253326094458814255015652596525375839999330072606693768009803087011257177844901319638456229550258337673214761529439523919418132012090814222917894115721576466247272893910108346357006754970441513700375182086476498582270978579694256977581411511344417196869363974777694768183819152796055701190578129448849372693454640550729136858225021555201265955940441953647260767036379496882622579995454644895614862835092840882791484097583322934092127225239940583372325673032808523811270726225891392094001587930275607298187735862070328269374205767352309393487454053835847451350643207685447230140874043732448382298906667128879610515280455155946769983116801028772927262010557989892805638832765288790764555014811741599259674826364626082607130873042107207155334550525882415652694461025651201153826124618863337042787743848465574832734526285487289016174489676128216635462592779345409530279504302732483935760732867374079712665819456348897766533462882958498074126554668863907772718256405596358155254861184333135530726107574543629564000874336986819780282891174576358509047356461038715308989219956650787537172489523286976243052304194532089551984808705558723934873131220899645705262369793777087003873754170645682822927628388469625557601171251885046210520050971377197166368576409151677010647173508287424730396904430016323498606842701862890683561572099283452286420389000412288319389524188854114493552345385777634835623192456157254389591614567465286835045779010571889035240293694420507185881436195045040822674335304130888661748399003983457219791996826210624651631776418531823449672361917013804433468310103770036579890678999120514900111813350586828079553422655859861445962622154793428118153466696344864430857301746053252059894718088948232792337326121218810609206750760344589175266801752985884994260599317206260574539163017664537133721727695301915797061004360323459102790322315336728777664897054004736258873801621147423190968329273390692072584605699137872820515966572508704966836531291194233434117757027382347982346825369563547232754241858530648401793728913602075660126408238542750817736763936075897861087171638925003597090323604975968513122230276928344712880429813090564786969589125868825967345120072878813939764006666496409774533947390553463607773179660147846721668805481171972490512925513411327546374209345265627256881660566974488563752759948804067153037831524823000806649392169463063359002071651149235681080253056663166776023134178996791737017083440956075618074482381843916948565819069291146246480326432364749689750786856353868967966175862526570421087653899113342794205339795417442471412719560802100530751226200336878339853281799421371045540329896035047443433172585121204323022932055901405251764880291838016800705266575991628488627405211323647619000567995398391656463298651148632587024217057172585064401659170910120582489564268013371660883365610437960027596858571185799413231529513323895014787419568566895870817095004004257718176834807470319903501672220242962720519229446120787481376534665303031562420465263049388645649434820219291610986911382612467025367345497516066551196083597577100729900511238695371935984710222716693329444689302378405466758053278070747249116255344140407752631350360164177707244496241719754876912611162170710312867892695457213430605328762704973102678385586022166923736358859306668518199160576573655187311646097313888039367033745058141246317553811122274163452869368219085022877830046457684113676231605332424504742867563910409974510490869246612604521961211802087449459790753416046321862517941973324821190504737320502710273437923553061175362362134144877359069095044470868902364007348923068711632832219962596856066600167048732668713510923730545543901429816189078388517773307133114184726140950639076790968203217450602714870046464733225217768071563010579266114400111345293211881554008995257346965467835902643158745695705431243400492620681262855997963984357936668155485250233621905788043324238617805323258366239205235836089677183091387275090323816250068914705798135087401669881608105390177336411324002651206547796731190022434661607053971801555447429423219398826199366526869680619794369931491398325635988825350218566348916015126572067496606719335737566185431005006134894927252195235091635162820233082423491760840351704392060069555807197635465638927127775877253437193709618278480826976226401856682722939088404872693328451423438400023963303576271520666091135320445815499585567913747742784331346785901223494725547032371839144016805418552926356852641826905396707651190356943669482085962064262047320567662800996568185189005072150816067308818185732821236539434275565712691448540166439652154973799052332322033733060541739602280866467376201388002419722045333502576249389935348496529397469828739338217803779399519612538276248024931669791965000042717500288811175351790796717195547066891952110122062951111498804272384674670845083610578473884240359179608999897162842440974133602414768668954838480350067645649047611158824120670048785088981962349083515681049492894273016527672100268078205412899790059108568816909078259826150301475345268661255956426743031822756774110784274833011541656325555818809869229556914457897034530027877507592263046005840165496562847974125630351319183154476718734789036765180735496080276928817293701905161118607904866808662988073901156304280934404132968559243994462154469443296987487846018557392545786850781236907538461596425462650343991400050523811168343975777538626797249730443179392045396190920986130525873680720816913579868173183546610711463971569451289488120909901883111739434348965563380531671245046213907478561884785539345242585770758054876909885291688557683781447486429413438099982533325868163398674911127594296856573073612098008262126438969053175577559770519285359736388916144390038727779854092377789493732861999097009289376113577464065870350302295189435192214534732848091108487238927426914471711134603809265395997450716237815427886006687580952260644971108084727967378182144396400858305636770154042983912790545015924404015072932641615555736140877521828477122592719083143900587150949157228877817064549745837892813652630156973007428801138335079121335945796840023732996184650763748760842170908486670040043945040575776572781208206235340804976440560782716749894831346970605265376675308683265461994222005461272773328715389796147542399126279772434075243373653045964013171234298520450315278966965191497094411701685124380124820700865074032139368714032054068059436233444901234392767436079858201033680123618806980504430636651123644298652733163480467511789616013225452055656932544514562778489612381711367722295386220560935564020636303840449756265216110180923088170441261979696645228927283900079986951477752662625036542308877865582031719306653066563770556294866808905135541004663896840450397405854145682402569575287596329650274059608719927189402483874370436798222403437884113325424077499891933844232732132269070261852819952015106074390173119650795041409275745641625437959680117586627832631164310803325467824865281325490025866322362636072848823204638685344801012340422970530429995013722151742744165115621635157714351568571961757003208930063173809929197368042969629382781947429720661537368072121782308977793947418868513445610985292931862252679430315452812834453104847970177675385898814621947939390673916816545290561626131488344261940895963236574636526160178289618313716587467779595900063639793016332549149848324703869885105539923405401812522171944600544350418468251923337202624706820614375432066347374302942580836458125514930195426541536590531266728712573718570906047212897540434302309122137443491901865958080842262028205618277926321821977261022062291053219538954206191393880575261106332564569975616046032672214102109868173059811275809539726761169873999029215739536044507194361705766356988082208940162392912801063318621109886419810956117388926156291584290996252597642927935347212264057804482029878452384713934943778169677244454978989385267580744013990682445372961160939409021980312575275649988086110490636709207743766082593850302568576440598217022103883342616139102211176554702153575292064527670266933535122418671934546765525832615481748421162372844297453379998603706015096156852765884466720495475255892441851022186292597081412992561861766571994471803660127237590613150254946970253898695839210179307937882809417142263498173004480088423793728953025780160290066154705350133876458793792565050537585687054013985926478475809856283362708213092239076449200106751806730396783278514323278283418030601185405481919008563438463188242705515984200097616382790506453316798022337534571334042465092799046676247776722787651716177419848632585691771032625529151776132213165301184602057654650342077126321318138160855567897240307961496933939774553717989517835412127287065041900519179141686368164881680948047801313039859528757492113812851049521298649692286900716585740886180929234471638617378315311973506120300554181793474712269579797031638472477556220489491909196851446624640812469101716026114384404326649236019998426758828386226434992757917450527226299741384310199279452887460566820065495062263394276516550018358478303710416636937461178441528246790723717684035857008817006524029871705599795660985062033349631994574293152267867028229727282028963173923227708718024210873791529239938200033449919174480281610676691053461069813012462296275566259931557828716864953127416127582768440117512804859802678187052743533919341446816373759316156189707965295556707173846310593984593431571719993625012870759124176570764084351386106258435782283977249475095189144586465960956040221321847820468466256714258021883206869155775269716102251219901611407156636670546237684163592117378843019138579759547888452379857463125905470039816116301767617186799501326409375803293351440566316352463204024656500970748740682969374427428389633244837142680864553897704945527545527304601185062029464305749396218793902062688530646118783466253315416604822108684205257046862852039784310023324384507744146770060816897067748054249560128320527789256654302925582655299574717194410150674943142295431449428817387602831118872247714775566574457913047218970609277533022496568041233475907571630991962838682994371662292232580589520881526919292473920284343452019647590651865529028813018400183598781787584070922615814779855287680513618108428623576461318551488007919906351205813101797064963139980917834923493828837642458337262391429196887121293144448806292142115874040055342958577376961016161996274751392755357060715108594591686145398749202271308977005166343876821639493164529441458052341870072941445053154043301356230590552685425516813125100093388397850715317994194425853931134485195591833232657109803455367457010356079336075832014770597094059818791297909691534736068844922157174701794582844056768631893306293236824973483602581054131079199148661138063874071651110273608653991694104306055248141014065477256511260383345797787193136443280497249968759510728601381336974786716031683474718785821172935204887640265111228377883363309119153860135108958146662269530681997084939363012070587700279606590631255490156551771227914931919601166503404458017017154758070072645059395014700408919517981715717218944943950001518269332287691020682122490127455675680397443185386933414838893917599503623000223916353374485773155819360674184517560413507182677212547884773486818325900355502299154482250689416674683916082934254504150987248410140160651411041527156686123294746272695053086374684678939694213923862288865401863898708539805693310752845122449441875667060105020612628597260386986092864290048679633369533569193571858549412905261211082680211273230720062014496083908040485892149528431011958887251292772695152612562823830929277819158652787939639968090085545608610010438577312046319007809520888920232237992773060837635829302583292263297885273029930279663286559622543919178575770770304847409826940240609367140638702155924130198370367056597807036488316290125507817361354986189212047961846712399737108080210839391076451834298731190480469355604526470125473824124907043601939728649376104732478202718415723099700673922334790572502118386944726617105848946257599679112737710597778989401164582906909651510483667067099518809216189773785172971492638191975383169624579188264178610456942782338061263614047057994794111877810887424929316449408823005000491339373901144613706626731654808278497686198048618400885810579604220468739503880150408378165357481900160230219791453764192996868307445216152273717634463217856756002750998755841312696473245108410492573143157331301322861942638065161840650226946831699631439546092705756289032389231889468140713025233258610379646186631885626759243594625496892632894685277683667057812732482532151197485205904940227202238913156199882304489818158675499276915985744316188700190957054208930204375543816929412873679788171351504280324702915461790256097840234455558020076514418488221692607236063133590727193892097534059784297792303693618628712352123781970146461696184979639467089300243967733027697158820358944619751408212638558745816407124886149071780955086762621597307356795123081944085056133580951865758780152411322767414835566450393477530260048809280816043029798350554295348090756598530681845259498551388217815875386487192892138028478032428147023500253300087624813063792373233914364550230898503016079233794163891831910492811923788986376225891803260731466526841154764488882764477956615992572745465956726868072575131560701671852964170038008607342618339417424520009633713674731841530438654493145677023421920613496305137273533261441832991923956648460692953305206574470486930099988454250514059848700432096919773298986955450019027495066535206322786779851925481729551166500157138215660121906624089537492562954917735681611750300262948985052232551866992962948095420174929868705993735043995481258330247926391286327589352406284047460871192913015053581228372219466542686480972910443103885432948657765638374752311036784560623395985008644233397162777661416747578172680234641355492200913443732172517563363053775093771301565063073299758322603120867341524873973255999813551083768642312021164965792447756060030670184579375648367679685249561373535704749194775105115865764744074519864421286375263291742411799896676186156352003452684655732668077382660828695934128216992621172664980064410151158340098482186179912410449127925510694352049908576492447011639256119539301525070926330235557674918445730785368835328744731496261720719603615510890891804805068560500794539713862487169129535580929906945171106122842625083814144917993052916889534960311982517275376274116236040013450715060251761136377129789610645865384037133681926247550016569594839123925974475842728301491123568206801971195499264886537052304661197538134400747264467847264277387295925127242121351721747670262298499704599719332627161010476587209025323606701127956035164551100784900635015811166776500784848630635478058491364251286370468222907869060011246753680876293200012510286135630158002233569983751329644726779527901167457643043641052191853210037564016175391653764821053551005188002510754081593798549688128847968310238117428951785777641743306667351249262086090378586460518347185997635056187019543924309444864211422093673420330665461561702215029818615684476764675011329097168694575311051600301547742991640887977642523974172162855721995881909999573541844292306520787891707686522984945230396212341462132977156092562055585046780219812753252959700443174341816070934768801401472164381342879391918765800860455212099211848962855614282654314449253670603356628449695685632151544347861138657027635829762229178212687712176196688216034304635702170864045799403925478659480639177341529121339073048411175981013601109061343005550520941294063942668526875644819603744817326264676924363003659282207510801941286357301134942470358077901413212266425347565503861416468418761727098231205760820937373706952837012505966184838765765123126391879716400802292892611219778458865259069471273392059516543393672179086236231281109975320735242981779259700212553092066851739851022156215154998530704233557982971166026776990823885565047428034792207779739415632947254382771127886082920970076646239642533026825138560052599832446358089090526254356417445296667384320746146087643094798478122738536129939216900826685765573752059596487634336561380643573152387453145685878992634755213188696586518579127027190611966326537191473096244901005480061060319292835578083133919433684186605300941367639493001258014353859014568477806912335254834932870630619116965179593409203040184386246341547368870982281623111007615999125579276560261554986188492465741906816848653071769970946611357574154081686947641079893808435425380460227647805031713042276857401253981123071717758814457705681311344865330099466113604238415202643175889338379670763432704228109319888436898623748187086257890236203269703552087356752637291803929928377498791125472465253434444928849549616811175058731184313547910565903534161405646576209636056043491150876692402571937378069112320213585665471936571525346282582157645429941622611784641787109478012558274071435533412335368323771104153707823745212754571005166921438317185559383900930942723445405648948123399328419981611361229009436652215853938561685095053338305339136191396396622136670946371112667162423821446890453192646859727534701883778346955700142957201441748617550096525541603697357205691388982072194022944978009962757494045651403518151770781660395885586317150091060475854623599770524522609749442132734200224924098551124043902056230488843111288271894597882150512388312190251463132982351765504780924898008621647882334902090235279766568264709079049919590570806400766099806908549707684647962634778443664073429348116970228321823855477310366220126969010368531794360271557913029550638907094003672785932455769440753460700670397783629813878292982912865480156639181970153680487570481958184979194955528207317088927509827701916514759073518806205591517817161065483523101509544895047414729252078332251176281412296128335042249063577294997697046827475812035245230906568434201905179595153908269397968771725157334798867276247873623878272615479478908241186407631941390007621526582751821922388294604736772933729618774792092167282567647000575966582690054831255054903300563264892942212924195299711025452823330478580210041374739056780684390390479157699460739723054171089973216055981652756814236332631527911616463791991992388334694210314528846914400052875450799370876719229894867546937169017197086991038573368088276958608725506357479477584700126363033310959863163313268125799172305158505234535345688981111866517983558167105891918128358835291899886397461042058776226443856740103847220565679366987352527677946840802778535927891900350289070687212195507446926488654633571260254167796180789030912974037018759008845744406432002775238408944562028214974900409546383130999349865679629868151878510719695980308624798748885037330739855722690811185852992952274814716654908802327070325665015327310168491256800140267210291374936411252046071551434447010826839572513724289744900599024748375464265038856060029160225674242082787344438290627105722248869888756474908903040150772324521793755653927291997774354043584698818056666685631551169706513651758457712997647228635284680992165941318992235905254644883416998746916698937741785574728594901910203656257502436606941526932720029800641428510283480202200165772229440177865120806584010063711119870847155927383249225030739618437794418076571117765572444748801642128588807081944799988443173769536717639616824980048008208527692331605075000536184779789112552247772373353137875958073328266628129435017073165959787595392944714642171392673535504732967577918019171215228445865837544864916209931391735564686234359656536924410402931403760105675867520507328876850828253160697907325582864456511136659223389901056535656239015579813265450299580708524737120847602110066438057298447769187248992729990280302933357296787148835939101922038816525056990803851382029030119793003445492544016763259871031160673533208665181012773888084475666266141361912180544811223846352510075245993515180309330780792431514309870384306905038748504331836190038327664933839899126590217170625268784884633608864986456874292996680053428173161480499648187516350197264697021035358074526796698322396388211723259257560641846931965121080147984690324676401826913204652537943304278506987626769523897704884887976610594020335707107602253854722759305150369205861179422063650786255170710456154477827472597666591462240879407391100536048557059141692798889851996407896610912577807868520585650787147298127817700395824934746869356057230630097343580181584636215462710536765677191352232233525214550668135478169204161052557431036692409956351430117225260917476406849469325970621142899292850276790586945362618920542353280651938846772803302996135727600882034039057146240373923505159000215958964318611223059974071993724694918704658634692146830271146062102271074213222465230662769785698278916331218349380712366500401676713169307539114257292215127050662200625697807124706409413830603760343673639703428505266485326265094555326450935803810217717716092019486356500963133282645218548403220413729096699678577092318135427017603118615573921436610694165800382546152303511202448707842822130005847424752635481826973660329656447748331677378718531294957550224098270483056934041353087423348307247969999180355574786997174505884996182884771946471898091840307161324577350599802803578541949695574809185779269512562891736788517057138311824641122774633127551387721810281239557661527231019763237587239057195804519192253273359439638168951228340932754052553761911510099340383552339852316501875739892765410136848750565401769987123812201071184601779093103667324536217038884351911245650802519368135886816209763025323925382748939745502981389020332853829696676702306732256790649825800108908229746467360890459209233182920678894833983105372744741639323142200270625734822115062825624146303159573578123227385434037989151719651155640699976335615223311634476456755633629040927133502608902711895038829861860663808977734965513314196828887425503232314053360924282336903870769366707656054248145908216370101203613850200746878717541191581170540977908359801618164128529414415380033403356020112029002782716040703189017770642165331860715864472181248573953202575337509243063743675004645765216039668468029777325167529078944459435178679432265521477878029405879401114005439448734474773185543842439226988658788123374348507598579797017628303206049855591510681291122312985904725333758865456324821485184448557081840830612994642999307290218371976719798285268909514637462459822013837018937090469074528346812531022313454256950788911209034982368576279551804901134585044135807115943855472069581716395699333849447829060309619084979250893543015734714346694582216841247965187294179759919490763092696118073677566476699996205556393437540735975623126007180239690708113684783736000146964809287575322600540560547542630017206493170411361145449505423465504926727799764955786294432812819770731573090783217955813576505951080438875380357614643183354727234525518466676000098314126972078385009382088232093722579243610397247326715839033396029883253556490816910930604636738288840767241517399370034770914769704627599604743287350116144168533465341491388462457990420852457622314715579933416309857096893590761792739408186524220932582107723312270370973356202870921827674194564565947354169941652746304185067255310654212509588380618657511971639503895840850456366504071204921265274980160083784902478189203058783921539731284413007440048912121339858732200675873553743810545963996800954155792312048911086172953563258042988608481161375509845119179654148091064852594504387143239572729520773225348621980987837426571630984092638872760261234801111985683236955043022119873650058257774627287639902365147393811667218688697640773684126593633861560362140751531466915361731952208908662620570785261234975379091308331079491345303515869600673477305164162068207306634402767430210702308896303410724028626627182125591327782633198891649745496374544151313116223695033016490253264915200070951176881944403412458555389993339272677141403753435350879646565042257071304886739439800821101505348414682951949485376455804090668327080117838728997040841055662262384833446612910978982864997495480755693836657374540798550745148767626558289382526139401725406195800369848787621342942223841882460845710100435827461970126112863046610870154832033401987333364114021164897459539873357066886872043795578170487503241086185983387900152018005184090748763758960256005755978447129841141186389728912998120596583052439471219281502242289813369587947666321382366108137559037802488536807883953299535957509641201184008899351135621852400173391646996410105916222661668793262602979174159501378784814044723891305969962147709761325664049965049177077329177972120510380389156376173871224870233512791914874535709915872308018075910244913035806263504567159475042642994384800418844906925365144611185070125348255482775693798332153853427317064264393297352930486043861292534364441868066028531982804055465496007441033379869362959543863663407733597585984551409496455824359599603202417032021521709936198688032583817977465025608342157471731865434273583955191865757721076175135301870952722726174135930734393876938303296648991822509503720398826121149422968289457851109344755250720301871653426297843296732531788826616375670329082257785443216154546349211862304701350825464328380959504750615578248586138336674112693061773257581323448612499632638052090166609913306845122938236016588806372674932706608695498136251784066965685486680547733043975738041651878181480329112404910698636864544365755255124595742528033513906811455074890972765779183829052683254320587475865957589525585744872842977831449710481212261807411212884382205822231251931825018630381485909371291605935911860617162480901458198188111928206029865575867521293856518330555650655931571829861245824791665225505689360179374933886878175397785592516312847258575579174266833743668861879115072076666080481079955934296509655566422404662829672975882971869063884141918462309123194897722907311789608385352325125273658484195882832221363320353575121363421924924488446235098122671440804680802946165627091810507110451001689217709131901898844114977270302121183001887522272273855491563315101303638345722591649508202711226228914225329900414267342513320879636960435698952493194788885133875459667278947659243316546595094656015006279246521499782812139927036233684497953571311902677300390932991167502516769302314546796390709019504154785919173670666622149673056542163410468364281784114687020752763316918654536548235754685570233192388852631658089052767176975740313627660476582072238772034652166393548524302563935645315490911189787621516146745539702348550646199064470418350116255040635255981998582693527060737223521977411188552654178585000486501020485884593367033972853474365168850610084294873884587994453312253124551680643395592866602797450177342576986698297811490663046898651944111643637698031663204582829281511563454370684534453599754063300010745484874566702133154728375052802329797268041897242841759470348178847839997680735021476810191569786581585316927980344641488777848803443095360441323434905161067861366008181849838153421127911551681437268953829900363517910424300849128515863713544585433663361762153048449682426279495192664761764784754040610936319786733412384462317436061680998880379091733382124238427840081221665725411276824100512344683096730463950014659935544588002146571506812586106330461211185345322724895775072927212533906043700326132912402096284589321350761332868340311805153894675687048854015367435134522061151172657537562395940346362841382961351796506466877413821998599590742987903544708341235771930572024316879936795356527363060095414970765827618008295567351798545101570003710511915656164911767788833287073600976416368312665935378900498025909603691745823925531208035528267020782202891306799267053319324635198018157792778903303580834830560164240858206522422051502786305355905320410095096961280821390197207676626972549077629338195283754988448831830101415455734629130418944984217361930277232524376754794876829757280928952394220425905942014753711390952093096441187576407150011691958272800885780334014991652432890814943072871575120393160375754129219152178091335562293516916126188047285825518648349687085996604796137787496344533151036453668149322653060906343682257887493571022057587539323604082365441401669406912244943538201796370710238537729338180843752561608948759249659871483488455945302256587516796503454235810726119848294836049256008394377075637652316715416106990916061821916688187861060208158100336467067711724924915609548307971899999557574717292126855081446998347858968093760041064321531452312471777650475520963612521623612460632818641093752206325509269144013610555852468619954193858888852332471221918746046369487129227795975017304751890657918997049565101244710340767734475166668570520492940631383898048400375039677598373818917814937373086878268660156777164428085546559141939022448611346000480116799338869449273939249692937186080287639598950476964477139373634339991513713925175412660366470339599877188951777065364486082661813054232889343479193828821364381837780158525579014827703514984134405044112294063569607246581479571939444438267696276534245415784577321746249636397386396334575866734393560255056651057794926302727756187619259354576364044880264826462170097189529528225333850229554634429876434962726718052438761941083905980369265117582344723946924003297663357227185902330448562938179652781647803451387161253497945786530978387769244609989142188794263184128636000301574471397024849617431043062273007049154415371700199937567366379060372230103137872441957525525569123172876233106654274839563768256322158969758939344084045705396581698995536591011311531812879957794922070047271616892848981184254464301363268204509417055058653479422625664762474991563493562456163954244488414442394830635466161219274978909100339076627071951714369507334006169907898881697042830139958960614306433775131114668082200246972659253912463319993139590995441441816882453991653173803597802116788010620741016481152183463317147552187007515994237376450822826979437317086206613214613703583107145847707301774947267286162647272681392729861331422187673174519975642443268119757780540716800493031538131477186777468794863223342687173336460995099794936841799064425489605452519897024679493357745853072254050445106057174985174647723992576796243053757668737858380436699176305880839963406835734940850957616043001157654899148461200799430017532546563060231767860131413575596877076897704568354600421704462719847653962968827666455365502091084163507425838876030898454693616107263271694219263730698422456921875883701013209602217524210603683201953333246187334980679144035550329558526023561939161529695721424254442548132011961709876825984334152462004492136021670296062959916055155320155849093512396564119494233526041540833233375025372359378885657490970389892231105351076547178682735290845181469115039082930807980632633142022682367307017949715147488999142307275438243379594782111393047168230613557537822545452636729461730717715078304960410427447202568094115748122632181008705849924504072337837544220576967106180106506112453116424888890424719379322521529515840139399053222869973416504000842526223506101798450084266816550596799278848739050288162172130986075732105147488819244451251862657600191757928513659825034330258395741823585492013406584580438568647982726137020255535919354526834570055725136865299553923299374815934221176241022666363414622519003350603977798039113045568135094498272448572497225102146577376049123806782492853732332621790362342513786542650071322449486273331388505699991991928400534924440424299295038445234281263844357130953796920259644617788187308974672332386659725050272168961474223032069783051561575118999400855160678177922264974920659327324090279944775540039835190281170634307919962225219940267584998543714813118379351012064444143247166483797320862376187896317890223609035270370494242500021507192838017622017257746487651824246939310623902258959729427890804825258037957672284446400121733518208583926612816152604460373954091785112301641676588039108325586753807712407817316251571656189620250021306600504143518073596717027993894527158938648488224910939584830787819095132233590107370777810769743909212512413175991895490915138822222101667427487827732966537061367296984435986587898817402505713460739749182355396621590124958115998042570819929937338973888855292227673575782031945594042646305002292314687896269123848170985221178559236620612421622073674049923246326652821963528641385117760006696253547519809272891181649184916983718740413377041505602711056179952489602685156623106838098220559534174706700015018963558550713457796259112748936938228896280345179011503227927009430129634630933134669980382376437951142777009815406472468018354338001473019427414460521586125383674237443003530126631865561865238374339518686016175440357124780942621481580298004505756545339426731891514611387025844231634360846775673764092668384227707254594541214489612841226931098441626887717326594832563639737494264731991030686828529803222074715278991771479128687110094726751544062310216181647639516520724376047207973791276125994545298129762269674820152759906604578358071669053124683805493494912752120421154606597339091350771646955495740826999843636942622987742691180492628157136429491899660903729317934893366460823461824801560215431611337910040857808433539287578330700444293406279823157362348617997202326256976716137349151291007539250514601790740027780202961084183372720776181555411708517341621298549295232294954579136816124496068593326262816937248250903867342931046590253232264761609784916006848839802583717352590702397132390181709407935925242436314388005797948941313404970416548223838584330905895984752689060995391201240649877454982677538543653384715198621442882155809046373097018887611245339016938357141618476520699332348928067640687590882894392639256792864197530578122327863669608632899772520565339957666347109227066613998401339682181448361058033880289367250002609786101144621071108741676741051994953839661748003261786577101238731178053333351515669754481193734037259801212962271280746597914790568841589287061162978854476169098314728838719839647203609717586298633159865563766259112347430200756010033144840498051878998100666138933684248853285922977414954783757899831199230378768799581169115957244925082412577846650381578121488989379454999304698270355458736823692407979798805219084847183955914198140294999362258515042500591073782152347260457085284474652665660958677999088150472109923871722860394396161415755398868556735588817736155366397249990708158607235326496883832552253298983180562895769244149071960442190706524531284281076240142064414779955681961511295246043615699519599981624513060619711670914303571273430441008522183882546317432467276817543803475697220848892762583926219825162612573535341526174949906807466804922122666653570485024747340028093399204585252922947850399216507416155036239972891747526669024253752258600499083693236841686658812747847011384255412923167184291588957113654904443683134150815982755441854640002256762382057845306480023733644457721623328803923384138362670605661240976606057400294825570734729096269238194314976904522894853840510057437513835096488299964446409134738238908194129245083658344939533927330544555265505280584921290780818917558141626580139492518047515879437749151040557567144658869285420611510709484868977244667317303217909855873976188544466976336163309611367884771193434777393258057402856476908018593766998713694758150637537443796405850395731587601922934786927424424530879470365901163276397968224082719050294201353714263215290891898853599838704223441177004747130573478992051947603352771347418383039526192914189308273186645453368649437467716256864388032468672244681295652048206203139560263448253052913961174294665983791889555160204488109254507447839288001488442704326288079533363803752955496155027470040563973063496682969386274572743987388926753424665577706798384417703602996525867443781470741263667308405755116842989561031099630483445468398138852159166269723610457423574482481597987411274067137144961807358928709294585619336850893159335681112631780307922023052295230337057574135145384716092337011685190196929420208108838130054109550309513962751010597554271296520010505768929006399332378760824887940120007958279455581545986884979748244399092287019045561104061594264660136027846937806984794620197314826085619284197974653653384608464505005020357236793152526293020503029572569517640936274383690259053481968146645198633149016955003079426876644013736624040430318833069878300487893125815961479702302834457876426115028008549689784830221183913302391504108318471542101314522660084174469129898856256784523724777153884627928572427434264974459166770030116885612706407591783660116869207364348815060118501990985768905718715433353402613012774326181360810136567394541236188581595792713258952187734505840476636913000326616457242421278777526562600184981588378662894768037762149749565267154846742599675242626458110972316321953455695512617186256070056905820969318459402740170172601846249731802609236196655524212860442439217619831211047818523048943268547133480988951472961145409510539022757525686115589895409363469911319852415093218114148304463770482121779049579706364144343928637546133634334505339100482821703905495334534198731443034040980287133150757961798593099463130283682677659323435190710079689867826661076564582270492011301288827900776520691481735443290135359788332523306194163661648548767463219453705512559367520577029777404003495211971034673385569207834539799059897681469584897977244715049184898876413576411774266733433159019323455482685798872467565741221502929017487997529303972507613384171790614746107855534346082461881228639944649278333546217677905559994451415073963642748293371994279341088892454770034808487830582765137893143398247913723592305850952998280397978010370286377098358624896767930605608558159822749694846624557191755937294292447296568817313726309944499937772802804520225192808949742182498316010406017861210690768971183186353047171098005167542353608618356939285992268168679613451837303875543791335990313454833626292089049484590039290678610982174038888661798726881170936994042381797199453395448466027818531890266835117897005451632407432951334873342297727206054672877085966148708116908853929409512407098099476264254148349946182715862390562612368822190887926886164733502120162288587416248201003225415282738728693094270597969196002000575638446341854570343128804935681983388815309205324920763867132809833224287386035332604332137340647953339819811467131924850489104244359435270422840574552141618471202352822405654217085563424374600164828699745578712201631214395631466577826047285923514497858679263229346200300867177904377083056251029546975221315057379943508306429804116659622639471484924529626364011761886122415081768997799186645861288607975768414318806076917504881528449670430421116763717620475214155590481872843774056252812486921533223722188368617721715830984404665520939866647725417974077942377048086538398580108788098208202875592709894861522218282727126869246872008277283093378093047348725988614865680460112543433106365931952747226046487300058795232518514633328444171281360661127010270228043087424393798538726143098440380928277659259530847150730156258248765510628711326078660203072060708620712271679899020683498297228184347758348724276792817662929349710493139030439582771684784876537616869856845550591004610265305639435519689602857490675515243937920900739662869536911864147333327180763443272888150023720458497091858937617596578566751104258683295979641142308908432368972241783195012147852035698738348065566066926029553445301740176340812815507773902560357180401744349505675830059168877666279912489194743674523584038929515864321208442303121333946588399957149536506574130303609834625460326734474077253705804506646791579019190318910769821808046343879526129023762486870305124847770851145264945592994186720903552440894706258047848808330410961221615080673488784248490468932317532509153855791656244901259946094314868869022109155677019423568548058899596946733717997048024012530140555637930877039149837667881078814645018246172577763675471691683367552323448295631434619286722801627356371672408634141023280256701836286883058880281679128100098875887167470284267027066873223923895395274354988047575792024747091257074279110138718101897198670047743054054616768638480319020517987859383399907694966091553293049436148707611025814745578312680494287816598869861030295652529657999475621831647908621944498204804203763915476411369859176091256726092166216083972080272126370012490495754691145639754196468811834268641686128152145894523073165240942627241449000241075456658033661447057395972125705497411455558142434135797005105891554226086050952958384788527825232886976056828920720395241924569375603229739246129117144348990240981769991425545665774760442956884397584483911006399437461057463566561002289451251188371992470596795060836561464887399117254066855296815712874916915774558587989962814567119294186467694483354486654784303157892426310708301663372479382650375886554633285583164784199542097411565284490599122059904732316093870486220834166966340933457140257798659742859405594932476254123793216279736368373665738183891010910642350124721144259135433634927236334233442941518161254194076269473039942456021133783205113361617806993381776871187573155237478618184207029517698952859722203843149742011146318612300971728525186207797042170253732928413755086059840298986191732700896187195923660980987186025753023133999362132070150927058403366337919693420637742353964630399196377704463010279256579343204616742762713351491677224745198042727574997643488085561272397234108240705928103453179368178894301066613499231373419613528396397823969508760231538451609102891686080181528316065174135667757785985001993479759425771371569867791479899457289435595947134082399614164203983310007500848399326904190756581595232779980639328282187982804650068453508385259783445623604342027328269358431873843181373263939200355491864035812882657742913029105528242881287074606055926482268108085754416266902064362162716678014812491970126520140248122520334284395570647236040913714170191406363858263843617008284476057541272814807042322816224816613913230325242289661016151433001187470197124043415192192070338970047504661183985678003377378026915516672744413149525156885575764506286896273236508354584061798591509702944904684736374295068769238374235742631994953320580513704721329487397229853836330072275407793565365324746556755434762973958105868587950963057834549591165427267912815545579845541556600389974331737278598282588083246721042312097378271705500134130067950114120483773461341972662922893519842890909643972129533610674399444873006414576917276340928965273076717615125701315102365102037338825884903131753348197988331366571962082361897376633977601325410861859928321533524439435457017435998254948316729608885460666431435439433595019397857909330641246596721288568679505378366784420845245977393982149935042054061990428475809649829691198957901226769496403526572770675815262190318538371224237551350232420843765247796248165438321744850619209726578858260704952848882015132407202401691572815712145357978782807736030741208285353629505551476232062008717837613764915005577466215852154810569550917491752829175894342355529702590884973698416108754045322192299052802075058022498998338346729222611345337147333221950732307476926935026135198738396226731033754537009493429353082591949936110492363998799716514287625191067864042648121371203728941261624261133848324057141438445079462009290003387285577785497542030763951167435821694564697540654040004801167829777550922291043283643689406583039289353409520303137788755641568227897450977177960068396816669470585573209096864212853629060254969490933917558578196544162550067763497446250939185790741659657729631834265033795478127682182776814547949203956794385500165622283725551260579748844009316236687304596905098630588586300916088708830360161431514384544499636257228256941694736376205782760792951936143774264150046331914062983595285190681401926530667520543968715237910406181051452042584458793254888231413771926448590035641133434813083547769086671932556338654045529921331768629797416094110341901356876411487748237876496291671403425403626887101748164452819481929520512623993697847947223769891711841801498588792891363441817294574804992760093103403808103727934555137946778913489403008737454128210507551227316643735372926444186111823234449028772672280199069704516084518274994338169735112973131408849782756308874507462508097145988367729215495640346948079952299807389891082829891687470415431493543838289622291767057644025449881823434789215494845478567298339570224701226485950014847582070551877199845009832300115842394004511642371205004531136832212235748555432252786950280814668464902483571021839020182652239521166258760675326651532116920999186498972417837092048754472696468180566620061567203174995961541458171655673227378160377690555954265028263284552773137869231662053381970244893407810483078872918848637010620297050030399823365578008684296465122312057819758710298291745527306127766369163844760224076019756508683247804664765997052209511195277648322042436997725331062545224230544370654050577701693708445224911120449833245718567389383291900383649470674900015176354342853710782128007185293015004664995516048626075379488343849661477294999650474849797940653956064713466425034864654507261374657437270331005050008279825662988439067907861784220188720498295480429004118160004987963505750345634086648188884610934309710867728007356507563208915928849139426566490412742586621404172660131237067867867416950447695091989332344551881478607710069023233266840728020677722240665197558799250925491299633392139853622318591790983849117908634364859665108744735839844121120734172643645881928538083079779096303679252993948670590159133778981989700877623466912966252454375199158685089408480037901958684769270971015279444262408267426694477157804875644089661982552364270195940242187674685289845976556147749915336477054065940279180710042648511174309138535428361535522636132109268331396045714330726556152245996045619878102132998131127130434611340945973803901434269095576759321869667860916887184096334808752288254431652955389236328631203092229986340023288741987961044752494762695922306181252687599020676936700653522336638268997606204069706523459764287689873088442183274853054742989983072224451439521206869354789229218790533649185241969159899063731558687469439731419456712021727954606347575984193719904780634024938716891040290278143435194217843039041250823722301452775819140909567205952662228119380621219886163371845232819434072400893499148633384957580557618088401546942130374784298535766245303735874573709097919035650163833960751516290125332196898296688419287091578672701135816161742756809748504357967881761861497244602263360601066042718888759022224619770780251502829013198045725397637884167783927885853987971967513502687368367176352192408506365476759673505889334967539332862656425019640377714750247057324694816542306476652013489445331295314798015960118670681719355946310907355875977272335059301015956032496864008751232521271510730220569663274321404957311484490937259113521066475564420662947856389990909984300457599724098677520576693211331698826044866208648027948839375428570465459345203743765391627759032641301956523254520776411092218388229303624375563086298415456144163084774495448232052140864075366072970749485443053741845903664448379873465313417577118719697488103858446285424957002955958093851529784263560522681906057245956479603856475185563840198767782880983443717441572874518778722808943718604925678640587460800602245889075973048884095944527764808130689870497392916071441382779817164055833680266588245555895878398512898239137678051827544596345645017375350987774785064022235803398268668296628315775722182709598563032992982381458330082305617053285939333084457014851662762133677027944997099048848278467758985783577502428511843605712644365483406244410062080983957772550052679707222688308160259544374081088274850710340671561864132801932363152552078583302949469235803240853377024925679852678324708026020879444022535692286166709178045298712699281017293742346991771308177620856697313326228954856680422276901780445519765117888498039279859748124204507188604347246220182310376559984082963406860111376600987843670959886173643622790285235312203388868694674278474776207707157865866074766548035304582806222835109444204709932168444930991716152010202866478331583752062571317773904990944104490599970521884539220495047088689790433169237019729884497012685455731396442802188755812322703857644115798642715034228054015906806706743791875965662326228660454233794425521337504918895140117637669077218575553443658991701767701067083629507283028310463667709785400606557743519485111992663565703605209773898899972895651978741985609382820114116118947457784289582826227225979855304841380285958700284641986353912177755169844091012007145079644392417339558017187060247163394319628791067556425170545875854555094085237733940790501639555669010243589655847062768652212436638473724216153407780498457915198055116384301177641005853397381302061933737725206378228009603108074454952804013434623793822317022902664330820010980556189543629093989718519099646457969566863215796183207316614085890025799677708108475655177921690794078670493610291160706354694000968444779987491109837313479636260258220192732543836720081970374837754582491046788252910276760114693052707121733889785570657864589222292668145689193031353883987828631946629098269733999883407411480284164001129094728250111026531495787761972671178682529967022362406223480773408874318568272875925649943232542701223921070185717213760788737436176803862546108560312329859239585086327090771749738563753174121747595050178327582272176751244711486483635280564543847459663916924466297779981101163417593878744387659489347603397324119945149059016791329866059153458936214924920960001477117651781073254977945647717313973033893728680898796936666353902823317385941119193024463594789029496178065746201529244411485422404886122266857091372741981698558604306920932742413420612995840617118806853957834247420942321951038254143193704675941218526452856228880731851393241956386365469017633606599129848562853422945739348101346152565594380041991637194152271206780725681554342683240566481779745350464709746350960837340952061711459005481741919690350727609854761821624219744463141446816576986526371997817892903520708567278758146001104967994841588233739060650780808428113020056414438075171305759667339395443346426474383147712744195048136045725230718446918249528336874654582765620513003299661185824135243476703510278526679141066310318540441199096749567841259109815863261819577131055396937241245777843919506464116031342632985509829866680735979677496087935743030873888660643819642282741247975992060386376949176741385477199365568321921934304703433782252049235034366165986260966270651989466153304774936357563829510115304001774057065011738260581849734562173980473282165237901219514460938553023613684756882809494359050753995530153700814531899948557139015628159330018386276589849082723747430750771667014859130843535674925126849932401323809215724901140375067217385736032423311796417244203192481762387407911853239165367745735030859614029817056514286434851494138593787931001435227646896136028352870168514372363501473191001024217869773620218504236868794699176136479165572754729980771683433930791757141287940383439980043378227155332347125244122672287047583489953740696942529214304100322709186567910873750264639728078228454741500783167859160411701835304837898675109564136542312270085224027097541888012997865613186827620985156267313019413051661030591036208261962362646020050077473422465305659190520141616120534144957752658582993439911420922907427004794377273222614721575891918891941988767318496457116431489365300734083198877217562469573198963882847144275736304479944128710141017994123349458310421284458502914352855116385981677501983040090669745331068249070918094117675483006626731918220065841077039962713000498690111669268914691867603057474798527315461229823771329472801899863427654032539695059157183371727702733465296360863933456770033355374028999705187189869571095245306163381054685292854713494520429262339186904520670052879097601363823985280495415636987396444705435698945267078007732191413659030902846314505615246280430613138610427257220976937576424203713222319706913971249648018687341527519604016008244524602381283809470833075398173931975356985969850702781187031992431641537508449952404611113008528343508116499562424026206975843402129075802497313556406313868153916607974032900369026523985528001352670317718598040651405381291518374245926556270391951219411403207570770444370140686534952711291888631876734084221899869983294625309827573435641750437988609885132143049342135642042300727919284573850044471626557363643696303377386749304631292218670626334941063479013704266236443022431782711067780145228040841597874362984737395264794152944409393790159589504222641883545478746499784731078514191057221996154610744388721527156410913055519028252078557764868802185209391475681054058017225145069975163171642455869684622546927707159124955112307369909754503651094490757870741219445629705166191653814415006911164918645596358699247147780545126863108730225518619537049591763604555481865654289670446243048238671097525578626573315119375273215556658211219275024124864099931508419777160702853820280734881302229496822145494550416414106286872594358935657533154762365348627512064855487837786431871831849971209514600678404692945711943759839048126868226077279672823666118074820335573446657929548115358929623677503181611205135737129993561234737160734835427233133028808678075782402384734403172755703568639159299743037750724844306484909417520413939817842379425673464356347760176899879076412852782474797460894042199666305580598969377078219125921687437781450489181000484884282479497632445818607650809364849136563438681732403916268245499727118127905104752351882314135303240883433327314611346077336544782618006533287007161174812633005998301607174803401367570398176759490340953880339281257876719494748707270673633056902987363084720095596833275917315655759463866513371112483142408455932090031510464724640759919511227012861510483389778399929081635269680063525700866255565105294154351304310488347684978207463351081272794664368958157423505447655505885866250446526728593968711424328003201540226324432108258814371324229542763224571468799561473862104278490391734356748960690297553609289442667142558019388452359483338713041502298707918429057989995132484043472241837568905742280192817268137632378977762011459398329469539731715144383259202646116776018994029569485861131008633759263429932196653364316857107065873370106654065649177764018901034991465437894384026720233002323974198696879454366958908464428651046748203073241038049344056030369561500952546154106524342833433749283350998520755314784534900027540733489310478920537311435541509519446899382262851951883196450443254817947663240727068175306335018008378130445898416512785428420524299181147077585425501621105844942122081524292921444520826496137399774380424493795306413551787262745555593861123825174599717828919320756445213926500391593523591767607211130278671747550444477781950276720615809868872081942204666943140487873552407709607750767208247520941783692693414345769354692330636601436551209625577855013137382403764838365210957255574838629651948921652356049107289077985552244833985807960745991945417062293484120430202340520631577506531144045199268267678461461795086342570675096302986178921574188570577862518835606265531520447748849754337110762618585873758660640950825320313709107557846589767292071637107302654052675665709912676485296094942597286214897497264385329263902397423859214636220822630073515585432363854265609580931266991634829478163595045938072522978462624456665181755902768285441317954403701842578874144675469528361736660241786949561422684326634383716572537280955253539245999438597813038360635990688040235115068455279456238093773697270586686268529256739777409110119027298288892278602217585697834875112790872863004784486986345683630430470807009242863108461407390689237299815180301382562257449111616217346831165246083402796676524584807765020577297703900731216512715816430677974451713610931801016845965473511166241179209534697642371473134617491734143542816648267887784257741183771009022726236381487493600438017779520062444486083084705017776560290495877898622134371694008511942374866976665183482948329294945425120477239791685173242745264106766200846776253291616360413541989986980404587486035156239358510154134161063705427136790759382428074957251333569496524739246270253435284282349096240900229506948323833369589329278262462777002007331453441963357051153663693655006069393479626261205505313285804756389616770980220809535971308557664978492763441126795031380564735823024123376164279544602185081600885191933100798924561167926532039189288015229789757368216268695264268551973047182801853299352193328299272872984537483970453475385539832449192506032270549366513600712153023821897245805974854604055136260462327565048141681373818628264950097557574459418809813889962807822742680339221957687740215305246626182074713174511760440409015138863664543594546672533397766498447203006505155414900151759788216917026808998698920200393129519117294720209932607256855280008701310467415442258874225940452959631224731902334560666947083619829010062458125764908552076736930707729642828645345351116732419847975832924336269823216180500918922365292074975606134655026495329601955322430674834313699002659112705813107450485093772879328372235198725000606624524374477515109627637639877671603354935644206455874434011786924703048216394572243630662789022854506945396273586054208094844176519458928793660622152594860679842417393356959637725636210088490150338865445305449637675546380776285058801293495231487101710533418547394249423649138521230565370969354165228171812825304619919821252290040119328776575723358159541255005691463900472331036909005930533593684337421077841063666019061761242297199732278106022382700792206593624965068654382595425844806694526146041718792159751577071383000680964909883115836067640536773693850948459647511154316514647407822858082017812692683081047145359690407734226124961457208297364967348849728182191321670943794422764504206526137880629016433930720650844805291011187632764340586316359854200555549540242004107475870746498514669551026351408791614201130504858813750614380402008433837269887106649161985388997021310172169794295351653435730939971121135954424725927556755821888991530138256523319999502689317224697222821294803319909664425953044313284685594019527019979521023779068980452243780612950437254338455262581218415542633122061960955667085827153797863670264838329628758162001457844769086673198685010622371603536629740806515987872013205147514333393851095309487848112047155528568169730944797763966195196247907507292790549547175147305890224642920493841633777765790669803324109818837205698885635369916271751071902410923507129594811102898675145368729828719653199999748207052089554252049339539257152173522107327062337918863142321037128425081904177686385040321688655636182310434279116942555935262192593360644198395487073194571054115354482531334440802692105655567886248672692632489198354401340762228465756216179728860226947715878860045784487319099267572318192127722111851697899334768520513040219846885843134463386945612596676951623258400359335584841173782906808022783732910194099426679521990231051146841687191549255165788294471015840984215931495455146030344325678041791916596980141125346814003941457133098527056935845427929949186319928898366746620797335644465451369698661635921099163712675256806844715062265964416586360550881374503382679023431930503149320161745427564958950532363850439987517192464506528857506428938969197302710644318837171857108233588778314326515296865393154428620506111805239255866620584071979372746977412821238933010745066253698377337601296035340993065769540935683321445306765946750560233304659302399831698408976192458875423619366487940282129954185810909143994697150775524134388243529659821163813135159971251027509994869041192910190177584931912288904822406779903261684966314720318069888856594933774206544912686899101791066518761466218329447041837364309369458985499829118933437777288472104517667532726426467927806454506070215250476742162061068949078196383609834985995377835316990310474083595203945672833978207242819842495735343038080515782573862174192994269334023073551124862020373111957430916512914901571700658157395368772572659285498621867525090028757968296510791546618835478167781858677172336343164637843987355192904574318973027277763999643077442895016680133621555774118632344367457113178256925653177763772540059345674273948087753463171898225332808152545130056332332589190765402932643413630965922720519236069258841843631366414847650166960031878313973491781196262807783948771267694515774272699868318860076650245515768858866296903251252095760932805332804787819164998174046723041116586021528283970135845328787871600160237850123319385695478513683409799190964346477565733474188355159844319204606402932931348684808636488332204803771799786647097609766235602865707317882382197086801835145184242407873266070178274838125499891103336979213016687873035037148024963932954183872755655579319847859979988098948561649533089971164639788437458643767152365756344811014085694107201361681119841429728157254637389009565926605460628406398026027691147806465151584876553064097754241823086730145541097903467387664416970995654018804463102216167133462726515923968457324926607834842582491868348947581963258086734795467401383839660155014146452906858955858342541371746285124071249914205768486672045980618129333601216416828616738874840111985505086608650053308051687792404691769553552173060238205790572115224889318781935558900660237455349156250604298724255240449979017855947288406537383933205435910548087100290066754329737638693356702178574348544114212968094382938010318276794555017733343412836195838158618999029004587429170613505077311751800778430609240387027209156095752533468907548127353065991888096065549308978025697186335560751442101336291640776584634169457909007128319233044023987528474788627734830826598517629669996742060382588032177241801114427385133774240031935426701307015001176034145021603026973562135236204728689363190154214214686807237700729509106320748186220469786153668908807035449510992364699220196359547766775934017730844216825892944126553838879349997002281441365311487483240639725908005852136892999180270925254663486069828023246485937652548742900422974353431922568786556095606011908725937813476314919780365491726961856548057875520844696297917784097086449738379465457248069615957397450395669523362010890105530392967928124705520021595438350774245404719860353303138090128618374145279482445559843880814080053299760476653688591263539706355235532778104114661953619322970684612806171222398295570497397333169007107646460706894808209093459229105275522473528659981134312715718412600236011705587343846953859482075968730513670976007592839750362482248954898024910943541753746628160956960931396604006225782874417044139412169334977560566580702863018857149031561403092222460167120227789248134776477547588206549769703928793953739020672100039386161846211882403047977686198060646704850667727083338326324505909862045469927595955876889148297108006234222759516482459448774221130991228591565403096896328980145184391078791478346866625486226446664664774338682733096621959629193949498464884614749412601882902245493626633292263359047098309792741791789678416886916647611055556429719336515050565352577320940458476258740443187799589478800987641304373636078930467298238790872253900975459340930219429886088699369799295429633737244003510301350221882677407859369267425439245109369808643933571050191435258151092582275764968429237154953200387258713487138477369754405380666185258063570758689006027160615902228864064759024924012251075611224907534658712724449014214371276789987984449999619849034982280551961717978155974992993141174564480193452298858138507492752955977398457045404719645401941458275334874522799236016646368559769179126575140809135683984294656207513220527347979091363510446872342337329467840293506441135461397988150729813628309169384479962772561892415596802582417132159797438811707922253001893373075605678539226230972642431307850797703126925060173593432591618883727826134415035793722981325394406449859790383272059750715260513688462060218347885134162789754787480655286258317690040396708462117590120987407776616161976280780113618304750073238848998555747388031738651938420215775411712299937303856198342767456301993978024566347634113386870826549228425569313810339671394934315297627522918093516950947688227133359804580170751859006476099217141930970447807907185080210816146164785632736441898657902392862947130449876424806177771191154246903934974806464583148565751532143145109123355507221366424718031095495082088426938489706158058938849564904494868789331991726240894610923958683865248874209595681025484541106520745089809993350276999387284731953260776104918576285332648536528484365993911965039530473536884482398619453307238686709945757394984182210978805346220615059469501988669119116885721808410869614511379155097661455585271833745144824131870960396208535610328487686140023207589231077659596047183494657871524034478426791962879371192269483633137391593270569678850654847577629283743489979215623939717389782983433659172356819225828245185709799008620960932174925352650070889496170958023304182695693430768726285481126502762623938550179833188994010141915076366814937237855866574849051952334989880165129265433390605351873830256975961599110670890409883920858569161221739191216776730178197626730671195549656138024376818133407799907564655320326785979223814184409987085514697380139023565048220207639309226943069716833052665868593216359794530521010564456842520800339738954431536222293592087284626669651342745390372397195374971121509876353530190805559812914233593124916724418171024147641722477179419990869424247886037250923479627340749151731933202397482730468727145778032513432385889372362721164212960920679208629791989621683987900048860704578635250022312899373034635422155285072750267252724453459144568848282512371715001685132328147568042558000857519388861892370646029429585696131817408933625675822041502644372140062420491304151706961894622858890817939210102963762742184781992214580647020273255904763672891410121748972771541939085871578615108147851001322087939725974879743643576679839606840544730452632476134735617442896737428538448472680830260976752287328250191501615207780178925581874009638825909051206654696373107166917490296444625583546744794705675528994378792076988458525239451474761189471706358574446145647812821641382059526134652825068794064499660589939813403114251646874174417890688356679872314822625980235868744661577459696345465333777677366243694478521853789410509346887039470850300147248606999270575112061972763641711334102334290411972615866946473574889160506885234751856109311076636145462020692885258882253077479758489202634687386709193194617447831910526343652143392320899202934834450142485632298103323937025640237763019224810909303156657868626678609466394299215456566118423101488405712017751065055183772506709570040736591665437683738525918909352173973727626077365458828421031137800953664688125502445339350130948253835463525438081824172643456866098685851224292247958594746054415273051890658562049450305235997137705404407323743448793932161269499295047902159711624187742292791426042829281405645043376763564843421999895170169727283290568078453912543078077707578261074273061645446781916965578945238115785872769211500907586003017464978252601841610101778751583818094465797773534610157694329864772303511172490281820517757272323247089126040286134135725961048800108440281035481885535753765396309555006346908974845873108136307611760193730020041061241399890497983171152198961056079149798774719095740104996541414402545547321186560550368164467758829666512115081135277317135082015258146282163610791632625988878111081044273737849875525495377917015467728021446782785418730709468548217172703328584856978850086456943552415654189878099628931767173632186868767280060239437496174844244068675492841705533727174352209933988688314383388997096055765627545532879682242723555124019423307955566535518030101010110541580563692006999988183328646097408634246515864810194766713179248493445494445593056221368821171412936398358204405706545649292022894631725588714194602119590988601514702206341924064350205849403128431306049434733126544076941040480500639089807340180118453546855947009121401771732572782926837080879205843184057931787721895985982436879561448277034402751672812084850729189168922043116702247096594651898777544658187670577315097678919208356793923492152175543052955089318425025415391403978410705411406755242336075961247013925464737249247530093170393162528745997840272398897086060422179261330936861813859837866656320678873713180448033513231278196441287071984214089399539836374179585574199779733614667456412485458554928137305501200591806985597422727145355825942994705431163918294354783286239165653958672186538743640996730574686208340925558088316940141982490085172706663789491964431676954896286983380322181914778176240077669758107425032783919488838128177854211731688202329468968047767589614189121082635095822217634975786002928762817173134075611018680926813318521361008632110228346155818965997615104235310556383078292543764823592025728599400903631069900577315044837813339165816079497139808181680758053462748672180748822153765782925154716527098913482563970913348528274713393812956762716871588718536382636758660290123084256408221078930542264921425244154325510131259240372587684351043684047874305721836782155936531684562075866504117491567058412460664176713368550203449227418684354441400433990034766418121040609836728796235724922647957623409755042246452830600857966587656459997538682595105328317934243822134205335318536186604442454898677235075728185332959917453789589143043374775147335855553117656181224227627893926948946095818175333357387681423319647743234233325483066209098722305851496749126887853240025208389467299420521270615944477592833045288309140964336304582807518801676376368206255708135533040956066249399147413273859966632445653629837136339618843736671333706865912371555188329601186871193326468609759112828424509396233895681627342403226523758472840839960075870314963783366069935773359636777234026739771242893815585426696506542547831422004853817349409509924360156168123955523550601676525868942876927646257445731688330551974655933349043059513420086631905516180750233876102270769304484094859919277447602036109988066119706945993504098622649942025716916231832294106167839481283961112873769962691738663644364311671090612597465813572202457702888926799309729966052661689866083815129169164636724326495357567845594930347095351098072791332221335353162142918886958338759489403035685915402399187146498235756725398023330419402003834853462773890137188788803280598450254476929097172073288446897510131512132052183729699978625719031894922821598394225372923640898901079763774578982726114507318945015763411268911432473737713652967793854116596995507430050186694026984090096623457217192162466635793147636565653567265196327856623585909211074564721492367692684787129649383994383705091324416362411205747754422301126949466406823748050734300838275935819232857155044268872088956338513736814673764507199487812323509402723498333965137371386913160445153707618985667308804999472430414104714677028477905177652117017233914370705056168933048691397827747052469671672122533131128431934781569092016214938658235759114899731210721758603284321694374206794083892004422737358191500629603249467097448431657629797379563218933709312613802360789403105129152062776519559627581938063231544517556128949470571887237702164547827236329608130299519381578109279202700187668256825059600214158289288525986597113818947561966276625526469699190738560044765312808559692072102461684020524839108000187365630265529466611445643665649289514430071813420235104395572169968038684967396501675177648946912807827887964413960256366798835945380044881864928898515451566172852528987698223602572611406479985226544992454059320630135080251294647455213981720987995782142318797430909232111036787429010430025902324363086369925418483449820161044319187554290031567253745592537416255865654751317931642667263150622029921708439317144736398450042184583044735169847171642750077963138098935230394793998362961247453325968357678359175164832369384661572646356869433886901350985906390624610229600100563321259773314967439258649540516671475491341437098472142472815328820654281251357714811523108364781226218879025921727076323275240842525108524313293148810866973148575596710089577126713172665225182907931808369984885203419842574180345917897740035377472167908874109787504821550425736222310862637761472625663812362139390099933245626576115617809155484101676512777608999954843737654545278309645023214225329674847299453692762874944669374217535336648322505879230086988747541642898030911669021557496443993807542210867279741655010250420385124089034539492189899603271805244903573077788269943937962628176097122481716483888924324641717469640648610972088396621431759145039727823224183904303892194778219901995160239505118949447555248743349488798219997633964885427317193594995757603701332921980103784564307234324700871798880725179739172106201644864795231467326566735750612823107460260861436950383524516991307708223179154209913156790447246874453097124992377977573691471533422715929727533843257453421001259990092922234403367462501930502953262160322242104989946039569967826105025593250630460373476911652093124569181224766154387539108635651710503853342589509871569510129438614857840909640901246352662763356268083400391101325353962827190224186059155651725280054234368594251606869169239687372700383117398283567734431472334632198230214531475935702137316418573339648806201712346529249206059911797073404471455036902121731880689806502741250445089923968051726921880175030712812920094614087526105575543948125413731992097712439426950893887783121064645710049077151688106416095443582440894411399452616932963437619758750994024980937955966989544116808401355567353214153278564843338656922444322493106361418989586183604784559545073433472616244413994719361393778908494834386387128960310991151739982330040121986416078321221983401830114162347709166951526411049712563196385455007958188195016350113692798306883972015271015617409881111271338685260017965090158957296121759142898154452971657023341858597017754774877168544741912604414889993468536277804082496468741247698144169846378074823824900714224586089707261698303119335700654072015407476017997095831911915070358910355010041592691404622950756062110315629598005542260387088507223387997418724465474137724023302502662174896871540322874823229063648399659301775350647879752068213702740370187231046010158585309603575793539106064671565774689985916335812491793326419342762440453385960880157491756682313663677989276147623909181333756404292408438798650042479888033735141051258691818693858286247894010757608856646624351682286171842888487818369280271201589892867592559246668987743875715765544336910413561355435915571048860651531503522855602156376414337780507407573480431581013547585307317609055435366660268891660271711974596806595888650518287877201331331629078045852744171001055621080674366611455577622207101654520884303925275431569087032838619533972396588412001816587905137219417978979675314440148312045630249091230500028530274289468370028153244504477220810172593780178866690130770135545067390307267281532364017011399251006625375291151795967649574645462584201849430943160151696625116480373857470201753457445330698335221969219328263129974598982632205322716031006775313365625420045610742786825625491544775411838011510711119867956786394178998143968512916842024275330859386273322634621486047757422677995418909233266511873335571274055392219102812238735200331050258001289028729920904939729036461501394136272232893940109258532636544886560143980736937699665633980745178387934894867146716486752385397817985878883223199600605292529406433146372686963223922332896061588981089585202771637957933976147815467294420933866979171732714983861045516807838529455631710370619830238604251562479018920672614899636362773966554060726636816630604546243553539595145813915497644590058354170735524881980073999764217061114921209252101056993766526612668223309042656996865447618186622498340899760606196816447508689803489445596303047149603966486358226217118157819368723588621718338151358667187285274141491652777799398148785848831157185667135601288081426077908449383194084781603387611097006742635474361176246610423900972857891068228714426092611236148107674309445124759875146148391702363748034130144849488669948487865319374167950800401723038964701067012104720275759890607609942172518854608385410275506944757149868493594166791446360918948559630439562648451558376724590847433628804774635476334431505329096388238245649668105756989584021915105801239864323082610732155227010349278315596980239058578718106443406615060165368836362210704495023959642292761231491031051560442305962983891126372275409568296245188749542130349267468964294981209487883179209440677514871046513247886101473284028425023151002340638538560490695842549191113489809959943229112966847043647563886750840991209659174556322302021172275775289428130164898778284049248718960570875144417095189640853310467022555396016464920489878201896837689364542574157491861891352038653800984411620146748738305456638662410688158206003954789218877419836081878614589496687804640385441698433221845678252863548329029666334804731715901193014437229800351301737425872511893735713414709212550558799233597220577235572478948914206232199784938489861012627307207038528843920559857613412057138094594223819356866804510043048560719709064782493900201641697953942996452496046406660323849540907613355751960288872162114690779566766079697166456438166677973404283461628876468949203494008763470774332059324169935945212401123377727338006993548221141098908185751420174203642160534310150529975136490837415911998120065446598070347060862474582559473067962923964514161456246929725524484116246955311567783053380713299590079230386523668885252286494281031505961198893521611563362957572387736223225179133110413324568656973111721617058611719779859732368663141852241688693720219600466241176354419182700552178056466548541052174817468885775363002982678319714234498315757573149030739408743835364039718386594687696996564990539426427265722486443469538032045499864529565807527826897925609210232032008909254113303690432801172564263075172473464543845472014535822314285324173561813636808216899164518031287868332278266392293164857366723124120929424785798462592440054351935712768106230573908703147899779857630646806695167082564130125648510874399489507022158558303080265094376879805731591346147975775853711440438668161723412360363860526029019059671709790332207022418635026510792925365538737410336878775169481326407453639172908769240206465304675370875340928027082020491838118039956104687342401329467455474331914135196377853282051044860521310938056431154255777099877343038289745101466371722518416669139372457946072681668597846813059610509763238325182327877707546432606214706318001166019655403703456558627127222834514386563098862867213397564179691328886912549475903781783977202537182857863877921507839396374676739637249389073731488072832473004135903296746667051676385243838223994373526906808988141679070659959383184217657911885479650481727218411740517427536243866931849637490991795949214311470995527651758434575182383049615723198277794963415213053441158757432078183498885862505152352047587243663864401811180394933778717081340252575528412645839532869279181104820217995242332580370750215771507927283372413549843896240825835168579281759281557268013971993805700249380664945688904918362614234925260258172479730778229473451488576265894926504434605376004130316873874575148702289480567640799603139555048677332068982960706357904311092525183566530588717673667595151436070391940911593249067049956864332494014919670826083499967921364408122757662635567029763049608338910710534455811620445344199012090129016588206822609915887392802525856988826055870671045694840487224397750549463797075676195745547690983065889299698068753813533659798103489158432020369316763816885869619808295389656156463807982942092000574881562915586802683626276734940490788636395157933118371022125050489536787535298676631062677737979763692403554882878959535575250257694937271624026116812848756979193228230271931391190722782421637739542163036110625463971462591066474886646265652662737261985351223983505809286098890277552493766682820289165150614889760051390609803780158251753481068450326262084229711826860767298766767520527221587034783298241664921301798600718322741956970840728177791470203268805655953693904941565455132556557104217290891663444890001749457920211310090095318928671571665988469009348040419105448508218172794071565991943906905475295008902613817016918440221180946999679088780908615000105765846791552397596937578143086875500768954677842677701813578353360209900640668059179147342985331580706530663660486788246851044289410151069403984682793461370994876764778929900355884472194315275187850504904529403492672079156048350601999023890432326466884080681423312466106615898044167858328433558491710560724549569084804040289494286872706708387175667597789368322202302657272704553163030156934327428079551916882711565505612704269578668286015063720844899294483554261280452516392623223278083975828130835650202363052486747222784748835101211555538947735119320233122562354726044238337102258819387535631071378387904689366557485407046025592701814075830532913731189199791764899290126241776332529131711895043917084840007466584346913004100670639563520491773670012133910881976539367718610872750149198621122929947168953722801324691968850660121250919582322345265236454023486637456846464196568986678650820604002775463867242651627503501209345649835850003932838324163711305476117747437360066109590916852357930695587898288985547377524737614193966587351597309532248747365363702031892991168461854476345550279663673939802136817020341521700483822492094753408850626710560480664859963011151453070224008686307583841511453000572383611190087894232033292612827301855969600274435034071809654750622445410612399595571258073347376728235195094169064534789800777479705667066790795812530763432803052995134748410458567581384765164616436557178638277896193851726381662632852932303176101822815688061657448679436220039881696090688879528470923886646977210331251508377386845086811721162032155537052402387651951092814567319379005227748439091656816692276599050234679160142799597418003504708454816928450773237859890971257793049123143572250468907078253289588627958693128890243260133502514012279724467504607029892277141729003908054186326422451484791463952789288921009217386677817567986733300431940467346724773283012231763345251924139033336533344695267106844995088478482695516083216367952926839404838752379525854251151464716034399264548356630028289491886533584039593202773259889366364130504663095091912538489662047978828961354535036175671461963722679686476946977577149111202781912720563177940236376649861528606874779566546308425858365087850461966686232007601970633145790064814770156090913138777169095281976243632011627001544467906552371561673504092126039272936432247357785203950221093242751451093728088612012110690392118712477428115390880945015394625477359472451386673976847004267835987171460505679849677416402768871038307405746421711820305156749783856552063446832799100886862880500580323317033368646749330508972976427796365835343666491073446854047258092543905565538481472787586260641511983080195692214131354037812995082883657743961558035097913140155148500699903885885009585246294116604354050027174811752866339432446621388685146182493882347550742599437492152751898418197781226390332768224069925974712631434019556421667232224560370751244163368061233543901164313723980255842163499623237602327767328718290840928166414568734735668386524759382920083841501716983756052387006144929993639561437479669199785457184399551636105353697402095953402350594586376733854411584617880945532468945321321838153560070461767712381145939649435427402557030683543212853716338150512647914800743901117177128323037736845981338282592005469924882239103911471052066633411727322989000110154945196173102678514254601411708885380897759842835189900415678762748981854339033228112289166767192791246842834731515455725276583022766539296917880614905125947393392072058394550386529274694775467596174116194179804582185494719625640323870588228707370709523504844908569230029205453682626130773654767343503994589777366664659343731863390364815442012292012268760695123694141030565390805228421587529752872519408739111148812812443329638587381559350396470250683077051682224198966783427629564698451371074914072594070882931834553277049252036548711807239990486237448484595817414861996212318564697732668816290816275029361989889752167957190102000290009437017647372722036290095527003477014166673653815486598495163834475463129631345465605153099492863386225324665069609634566843550944764958860246977264598473189933304120784066656442347856057628439450651282776268026648966703964560617129832638978524271935556851449345805344325514553756611044459225407942607931068793024669680411095257434041708319580120332306659162316778372962961380491348474308626079568550101114475866752020147797448217792280995146343487253113195913593326904468410799660808035232090221493775917479718802256388162750539596383677494018373262060645462018133657013904502339669732485117738223346467239904947750616545874021798579272586550077933804129542695513100685527680889502223981422418277179019994219430532759430424014013526840758968149730209043347201514601361198499886238487593901738615366938254953843660972522991243843893491700610168833125388814339842723779568658136914926391205255266528724070381650512705039102169652075418684439146529071994449141298939769830613462116187015962260288852360000217716879694654073350245383991101188948168600035262096459673925903840290494855674765299396155864533491073179690594203361940084841420905960646320763454969368884436395611257317013092734795738603527380833370645552868309787352856460759133209588021341602038780018952813201933041240935137206637631018885958245782333566780392111110140620325676989804717232888116082585542392516142975374577608121320726990829941833220224338433525065768900293004370130064879818898928337537583728090881435405145662173939085581260181389467594323172627697526307360751573562085990621452027412538639840098291045413089683785190683983128678091906776553409903006272241523093589130021429297834323874227270277733436167966470744167182175373342420078478643084820252958173580482331085923203186748646088394106290840533047665672872072304956714424282117245545254741948840608517597099735569236133136683525133363974383327507565468566433868457473663940406911846073771928533073671992292156001297585299849350964354729887296468431533379089677934276286638667870332517073983887935077636876302213920637570075368148219751104078787972052690471673436881664249675277952894853008417138648168903038915107702407025604454548062948897497147733178211024854347429562695883524609399716732721118313961706217037532885146309573199642605680465340843880545887697588171709425042635162257880890283245820401220103982791605434132055306470169271153217733735454809903774066242875358841884286871975732384872242020899701521265754788572636509096626571793722481435985304219240571909214795579723208780659331438213761538305796440700446685793260967888750733184364557842973348805768647205635092767087213924897182385467316665549612083312007179716919023522414123524038349560989516828330293716456132432917489992338191490519835408468888526394467135451000584076938101711116296997525982143593625741675699384774985063704667650333337173482242372639304657637255023222357753020102074811711876916252295148586721068640686247388691624062707843947531920430974309827265659739376493515910571824319792234806974043334331706859007056584799327190679829993126711443063265388100439037263018567999320013492566532877866230176670729365183798227968362921935902124478740870331413732237641163030287023953961972758183661674845668350575449147907739296217127515183725785647229525069596792421805125523472181895955513232049508299084765057162361333993360960305017340985592609362815971447006358877456991638193224426630057394152833254796699545576782985415329379055764761082805471233809422124659182724540169606913463893751282837426206768102696066299374928448282493288247737983609205648044293701560780754394536176965624073287616897209234198257392423638975448177922275830464166600578120113493315277427406281936197711658192361068091944529777101254486688527416332500519789744493686532239617397334213821416733076249389541768183525200626985531578255014506528761819823794019936141938183849409415597507684067856445719844158244746323450099949358544697128629918237048337398931319109685793482478759145389039047769485592600418680411873328944969226759830973884526390292311105841098515002694188496305007904063903150220173858673109015859699820036698489616475112052842188104501267372349115968543974123665707100911187398905298209236484567388925959314857334500099928126422155429831014874256218915647660521562959609538279246189772228598788515831350273992965633023979884262152974259653106835807276554897983085622931894718329470281012255757386466659506015383132133963088014842055541152672225427324038575786136479964276969318831866450720883291126825035358412459777681549694706532439686805196476551054534379770062806024280537129966537929129506588237977678149768131515047256136506631508453717035989951052365043764722853861498591686832719734479747620442233595786786694383256927430267411583185007951937916127923670548776704818053790667916886971591428079544224675062914466382419575865899517791562466363859004271810417711318871391343137943746334419537369434791564365117065301296098942676938660373964656928975615083802713001162110929745292214792210704539494884285687835494029779135815253330326685750612790225184640500903085961670564131818620210893984284826152891925121281526997072846241017757490926150041292268722870444407894747905728687670200030137702494204247280870287142007002353303586836992530167978668601802938552547534456196262139515490528932998622986433148178332375103146946967860472498155421996350564684675802016917638265263394032330218198120038478027617622541814145708314435193396161254993565421276598626776770566948947132619738235324350094099028631799922465087305376712041824299525637880604225014256851092007969946881617418526663674667048480976335509751577404016534698661234932791564968005937527213988059140641695437784884069329350793721720955474352704814836111057257855989646467811278091660264215099876173496909738064861284671173997467293843270484622208668920698938770266025340993297636248864899216670243910694183882093917304530895197168417841262256926057139841381147619076980288934229996202472425146484649853767845932819783264659709442109665692041246472347309866694452905846544714459004501657175608356696713355929537391160595361961164544857264093160022642161855429122638389700533313877023209260317311502948433774613105262258757217555267562466678221318263457368718121589039019549433748706926122272114220797487282958499898088311405322558009376007608732335266303539869788707939886126953847073024108462556719791166885997527266549495182571239819419241652078159256541267993432462845154267764414350944098004249423999215010063392445286820611648953677854055483984250821599375342477912234337234784994198598049626824625668414749335426201941323266093090387158610832478122060553052464644714232061911349530519949341605361841612796050440308153700152083213650502495567551958536149831817063516247957173226801644163006342585009323530418705335387582974719916075797474935144293393203102199056727352604779362777141454334222869716117403397002701203998132744039594318073230100920820159035027660741817487813274091612880739604316323739956340594447021999374508447964459095037418037043265542123801306814326344139458397043924387295009546876549085811997171043900574578372203340332346698725073581360914953956365469183372396310867414720583680795899917596958163036099665692659129208863055330004143691749530078659428337524695791440366318311717002109348208669416635097755954639425571179865787467287167575176886414451915002083713932110247325682245472858978261866240407577604725562493443966856899569072847832291941089272168559846709479395088793929434917808250164520330365699528516592044739019857860622281731074900587320229206947348353696957200561536268749048768547666931224994593901305505045737866541241643231196321535177444868654849416099582337773453664741511931880548315361147838301370804981600189522749313012026993728676087125958569081329080177914860340230313829342493516604746163951660654907712707010268142656539677024527020110479136802474746847754570836836098310497928131229962286957433562081374260543777102613838412510607637458303821428180704104986259542728709070001793414174627818167664762003387001743651993358954718269793226888954420938381701714426032333909337166791985455440673905840453917440479282197315698041525916136060754132406401877230047749876962292916523542341963994231060794339693743852553456842741479429307474309699207713099485749478189347641567265835044233158013495564615329899093273904761687041020444481779321467421209267865362347587853643411751871128705290864264448229400778965604135793608848540258674985241360877328261454747533949915040706051161206169527847612471855970353814389883820876072340857777324669433530236678759657984870581460824562462588592220635010408662817693227576608671447156844435422821994613046811666410842746432308666010730451282953407253369485277638395628127397885051038256317402655885112369526343651202214349489922885286084356142352632716056160448968527526910868483274375726103859817392115615135672725170118501898099332466832607542850020191466799431275723552930548551497578495334459413510645251515372537480950752734624998789096647061068159926848643286425660288848271784260105994364619062998534648075189073723753574217366602255088520233677941390201173276356530354939258584427019094004212478164409546755166601911008929958788089747515364772719889229318989029162471357689804847521240313849313762817690126953461651041413884232730635028401230851355360331880321999678440603402237453255917248144335580740770106994838972310111098348162196457676363851664935639862375072206759584008035417994386182278432682307488720118546681986865445058781921263042110801710189217573508733782704893409750769839959511362165827338115819008322238682600212138567810523387964895912303609329649922362249659530760834089552890394406531395342054706790680438135619116030172731870265270322607829308054723830388458272302869870104412202420711805096597206207538636566624310431810061578868976524741615440991114713414740438613369322310407696349582602175910136475051909295387772219669095743056803748985660544814844245391429685690077091955915147870399554538568369100848417190568214464243848892233892334259124353719023440223806175236043018678906465505335364568990790245234737893655104739230850407463406502588202811360331665866532467119488191518759045630535890480764010650608584891057835642686916183556521922104669107729731827007536100560810353776584914629052406093563240861562823168858700473117047078155041514898552505689357924330589470249286070635128769503631124103570986613342370180236076522066181326362827804158024756594244521676128911452991970148441961458440707594487727517959826516771989930524968716634180259574274725820806162165014958097636533617699930466059750769102832890546346867804885303450952554874551026143890877314172246747748473462036924500141372882437927102298237859355584110937690961121886932133807150984679548103085424949300926303689391915456308469635755454093028522352133419333614959306541054682276686075610992634585559865753001226197826221854787280176977612912879138095031434334759559507247258178158292757945812418575327183095107217098461127457133866344146396716273861111372709792748147919557596694314071173557192339153970754979616459415875431649298691059524230277678969337106367569310179716493967841875049451200747870162668901696735163849837368612462159431582901018861939481075035983835727020651427548859812113513132922716566440531044714499781444032120637146481909786809286354402369843373323121998760869170392000715740741121823997951067826316595546707096860141768809090520333291473716524691813190702611398749141142720927094466532800438865713100193805011922013494394095035315215965261631602221206895042678891595036547345916725276070571870823644412489866063500712321316501555979203351310353142654396900224984555049606684743716359967520035592449682119290451503317936049242551390694725227655369610768449491409043198354964365321323900720102292760771408198543957531031109235867311980642501445848035063514699715365339674127286423001392246371325436997741056094453249959618481487149398397936172134555604258605732447918082965205679115413565455374273078195336882951775003208809233960821225521618144760462108345957981438980955299549567979496438536949014166550488244182368018635145715938377527690094726561822078297379344659809732439264742265957121370525876025532842792038900709821597215978003655255040985529441237586333307195966797734478504933187604657508213044179462794399912233154924635352444421045103270687251052477914027760385145359123023845796345373039089014812852274714902951451259510397272764806004868947320390649257265758525608176842101087628519619038033073124749893696930125891186494261004899964840666590656997490399430894935941764080505523506790023096989469098825322983802333083422549105031484500926107881253485332022424846474882552072089212105252906973091607074281143198949864171061638093134911560575694674612220962196976074228049418131397653013728482530030578954339404027254436231590136818235373884538272063036209646267513000535514223506586428581855995706404743846233086112136032122602085531544823918062048844158995726229200088131735779662310740537335322517179217386865380306616956678048926156445360745068661629050665165347920704472894279859552945901633164017462462336729003180619202306195075422904864670529290778404411456416078422039417041424336081887449878918056772792198958668728768723554575859153342353330693290466189695019840477040842112330291773912178013995502953843687514060342629378185656826445099538787704705516683874317002581875406922754788485500374318148067131342885717568077761508404180984878830605012461953294979028125425911764326293263186630147164951464395490669003279746223609539835232718343064832077889985550132853882446282379662517624293546142713895208206898161584918132511129228723633896493055624145673706143250013367605083743750959995187293146966493593767954380752657442694816461225996491893424170700009721180113382818432282525639637385144988570284380675102124207912148330285905271833817431865746772585066304069376740363120108244019609136045594155499501661620708446799242553419923285849905568003246663750974851210847684484971875356290079813498777503170760441403431472558152375499427601498092989527518857997451765194811145481165538917668220441151308396611707020033142232839237074922974774201796051017128703091766900206335016902812981102238597619681542921986486362363897121635656809835368252073127255359364607400552015883684053416889629395539401719387535356314864444812465458659693857003831999960085595650483808991404702389682428306888845971291044823560242503183608585173477871659656239603325531394149826419050848703741557712970500647874751474572117976856161716338331318562290489363015715661368426873462250884688619404606763400776768590357481848162533998649108925567361159333989624212660541665049944047052146748179565907058489672647226473312741885971087261867423501695376179604342368050004354197080896947646895660546769690495673990238507486025012772533605011251298180786337204480266990228741884162577567881496055779168105207736370641751315087079504239600988625162720576343910738555854924313566701529105942526439501389150223002147686123177347590770132440262995764837398125905586506089365103176780233052778010579862354520117062981188288276122239533344584659035042903704771419412712158694567867245850747890913851613450343296641827028804936825995646429205122579111658696471200542673647817286701044800010977350067279755726474985578072861375567100057186213658585637071324445473904122489776063941165988985969101742083897783697436651087347167774909564013924920358443658541888190770176231153520845467603759350651808767943065297720760523873265983937028565790610411246992627635382855734991678104793045414656082941445653789718198560620266142021313055340880159834282385447243582166819097563900282451916397116607331124268423687774464148642535378482944784394085135375178643007999062798991399894103777910458715865924238816039716584637162674238965459604707870799844112215795225470419982119170838776584106353168485664958827122866004716789243142655912330997328559564313677313553498446576332721533849321883959644925669522372598175910394330796922075976455653505955164455823103306330777452900658602020812089187491949341620987039399509697384465030376212869321413978772264085309729659287478482138930673862205012799695791727345248680360787983224643998529488041588348675985384718211814823150171875963993220116656836199617629183553108583303026557224399550503737532499649422993822701396594447095534792745056999050670509806499747171526757025441265750692911891380477720825927874909946657752257826571706292489543120894375561850081343225222009227656805854403957453781808157744289065454428800712885096062791232287391631824362171822804348210496222540256607520523416555022421192518905197991985695432618268629703059094508956686290061594706451873534140030751640372391155013192866057277263312858633672637647452675392935033420198409927152688398866006298143394765282569125683885474392123848538985250030183771950248494164486169922534118851051206194838093485200509436438761647961192827064810132229430738610845949961707147687356861536783410552951287732309918696397555365948830791971796954586955169205507163867960196210484771782389372497780878156636509599095409866416057388302640744404187891782574216979609631561354048731860751828126110990589278680135993397650424631865260943862608786313821130899247922146375005705254953303413319246765528913506257533482806439449841726846473775820880217639564275315431305206881058849253821873951027980371126775517167226725171254520640231021163085276951971853909059196245195517667261542810536040445732083509076475002776326230678476411241976578287403938803161009966538592119528312072323008892596827434689625470286409910577281527115863533770696859119522111355619022619180002925515700703753042591426400427944806901768726735477119392053195017393896772490186989080621807092933465490131618310850742074401439919322237351916488195487167749754275162747534208596844404457755528698120085142187666893674983575859182145350075857217068350799705494906058768332456962022977026392571619000048972621115838171855278616636410113568000002240516258416124844647153872431520305347662976332703367855723523258741003556062485984309330514440467415159715154575338558448701987252585792124818562019564173881337569386610700104163869703061275097372607064355592553009019509382389214338783365053820507084210624455529258970394826415163829466968861628698209863198186777804076532054697755691938885731025985030360866030597321185160108416387634900603361418044838451760921183032531656952543311634430237051164676507192927194429699530519917781732876521006088009129809538001468655021151682081507153658774059092966162765395011379835942172995663572783973699408456752002482585421940602353126799448123221850070952303948154754395252335627771667652743683749727833851314870617046235346037730804270800013756554964209201029535818156784794702072191590194189977770993618491968596357654917173675143171488452488973257866472912251620421070110992529143221778225079074177174362817088356881418914439201494296888431473449210887894495591912494484491631806243361129677197010768650052592163922026164303253633990173198487152202936299323337389730101729187186643586856679241818642127722397840794981079147131385645354812974521415102500308866077438238660008601995061442971586910506626403714932095514863088279082971532534968958446835173668444726767988651645922361032356027578703325718829436125098331277626870471700856447488858647556774366490806458433402201276485231415850752062465221322351621311960836412479525858243363250535671608281251326769601501220033318014509208595117651305346251078470032267232966004096773720650801728025651796824340630712409339596693066411579945629189716239042066354170616001415387682700796070338955735451443569182565488912399623838323736121907586866899268475811718012706329442289366165744747992093092232209656413692088516827781020834346089587693081578601425169106373866603575550613617550170631963600950509691735591074777554714657624340743640095727905814536558387712208030018354965816554610303867091196026092921543868972876247744121283089896902622631589394374553245758655979199653995072920172869221712637976674478288900162593350892548802540054305332059699610766012555657391049519000728335537939431105288185056331558956817896208476190888979974690088695364948201361300946064629755815270848244902242830479784384463600290446606160341284018352216469273378119804543508033992410715351309978395251444237405072752117926611587814144973139706681491691611228949242907118918562513367139814301126059339752548223171836637314125948884990569311899631573968956231684020008228720363865664896662088019376513305229217425973806629362576240566259431845945378040496408699017567551703190250596425341978964568863074970505495154429984438289035019422483468348178796716988252585210266458486160059141716879988823231739842677870107297817790584047343343699221816995354516631039206370424457500342349208552417349642434127861991973376636611626763060515060770017964202238276352666288454383737008848736740146178503813849275700475936279634775111210563568591059198630410345746341352974145723152385615453076939956973605549254993353779363810893778120230397474124220096534173942363971788292755954292473555012211239598682498056245203381835781981019093072904360579030834001048006398899683909111440381246116728412681619268714115934914463987894667870702397326047988399701215558953472118198129232429084399359160047654612006992015017043036090524743015863544265618295483624801918558679470123582139359506827150619102676429458281347574769604752699468358615818029725316610084780806257819879598209649663579368850429751081583312713843960070874044415257354781133647248212617534988108300202684591250052057839802590420245182089304182476491794551737724273521357254440166394904386399834210790580408856304286425375437236599664472556785783233482433980709700663773149603042978636388007880135811290416263119846424640169000215783052833300473560193909301876401907500565621525179521559908967462753050236404494298632295113061705400900741008488718486878967311408149271619142664903130126443977668828938641435292633513160916551500671620119910590009595363676787310107934431764331036065903851609502524846021472572764506993005020550395915524324605961832733002937113073425256452160904589328577241423926240518592498753226415829112323170623800118648419100549831476578825448568930188285276316750243118200553502481220650803122278081382471929426111881216383520270349710643598031355280267777919357187689450629857207109653543124779455104403670145727913954263168913077918697719748171054493773605829116820393906499356544051116060380794211464903994817445390792238635847791968750667784629373674906644872437853079434995535642193124469031501726368280884721173208615513121939828995127951940035161608208430847612850204568326831149394082289402426613253798406558306409670724947146206624881267406800473961875552914888196626557636587085482488907295018754340351967220930253645285989309578005780266154225754852947823815072718583759095041522969709203812446656272224888481555954372792602048026675534812177835849618052219556536917433984506746355804023244142635730475474276214320817577296257988141654312000398096744172835083827444121971076365716671956848223777732746238721437242982367545764159773679117790524706576992969450548396472151538278105494773345988394333476139560788368132114734786086728761063135565050583039936563499660045673718103714794995461786553873213881979212409744121658155723261586741870558383481329293643955533315033418936810505383235430974602240847443665231706794545670314496855035637865302057153839704278096204975528965836481766190588061248403729654390953424787436478408636064533286074609643517167534645478080756817004833999597508045889998007718171339526367910837632942076482136649300478255834395762267662806424572751666318814685579124853285396306953989204486556425481034242823471279354113129213047415384624309850179197057387427706980936448148003457444266939309043076869024926332297291994304555900715424024139224082374398037299804690408538665845671914206376536888609252971710944460615941335104138037055275475291882596013461076724110400522903063881056900400361334659974621763331531197445138862631269114487416414886151255342599072741943315681216703452640716524087482671624946953144442318607638694460758781260781114791435401089716467818331067384828313263382940677292242085050320065627992689524660873540964319377778401337375331442816116359141601975228564911961143835309032619350228912056669213578412424895737161153402613994586211889114659838053052771712781417415507075978566008466708484166926074302316686830913729086883934409577418265083247608439910302548768100770848793133599984421200400060146901461285692600145086874772653003094162040784717525735711801586586100447839872028816936567730378957958055814116208502208632399527642996913679849186331527075880317872138809861150704812965390156768600506399834760089116207334718312893807039622131644027947746104975526038914554308182515187026713767052686485948876273107973480631805947229768955996607703455233067230655294423198829645692594887356566941122165646023218855158787812251932384965703364320991923591853356720343740733286270182663775516364850057602786660807018172259968771088216329638281968712346374423375234220650796275430032639095494871525079671191166836683057735255063369996403433263785750236291545321776653813190857867667735322614748158776211983144576605733111219280234807365052271130836529306957822361737837456211380383802116414846451179882007184281216718327225152833548966860563822757235570725141497719571438891914592511499771558587824939344664306102537183578364740498376332340305130540044810115267308081219130300890519551114587546707922925963446080040682004980001444989457746289725181165414169771789018671232453649110436863021085975752611564835481647279049382327580089275057675720539097995270426635524063488095166604162251222498947473867804872446173824463189538046866969017604018901633034731856765420436392554933091892534988198174962404414154388405923802585486041709277251791197038342178948007186314637106367650902116480703393434252026318215986123759257825552951895663194445105117034584666371744970527705261297967400429555857300276702659194714778599582150244554897356685570416805131835707841073039031963168068780292921567455948880586880591099688506385201915497813208129452386782525450088506277251947065332959893906985464016291937699951449617507881682188809924876799148470697385423758265364099075488328006744517769159297385974873685713980338422867686174408517891359964621189273574829398020631461790109299278188837196648311865567727473376307274593143312431578950553532777497453745093429031491064167814869249022984008584794623989122633751859415163748134413744426378002590251919828309812497321413777119576514831920353165871487545771580639112858855635572902441234116664011237994555630168980911565245888779115766428711780554742458879245525825517040612358142124317391598696435340203345483498810143397583070024613943885041965317528155314866312200310794645824694364073300743546425280374740264198407584941649116327831513188158686715167994616479192028459767841977510407888494779654278331943960444054062291310800383871426385688050263126145556260729196878574700249941400352063331124615524136504270939305798001079187640736422601632330460714643937426030709530924817503939863995852695097965071214538819148164923802702413641543075580624663846036447744675498439830343707231677967637539298919854343503905077789276849764396026249885180590842357200735640317385387909076745499909030720770060838702810589415950851163772585650724035846316871812846337298734272042653321631933338926811189794671798639663583054803094134319441521884146090893874407549351894042961793935730148241620141615032844548604472197893158912641351207791174691055411130621074792971490324410765864602130307580598929454823696765437131097605739703065457301123596531114161804632768612063811389462686829468054626055423811544755784716263096783259992400350575513009678443418025617754389741743167569454539737477519337351024500698722403822883481671455314252556909864876233927660132887018131264391314649687342460765010199350099080379546837270699052582591865984899129525885345727578436499792405854232610128400688429919653129536503201613774934903700854801634041358300876733114436076172800466098693518181950181703331298386085742561693235866711282865313231196424271095120202533256881985417541817401556869764103236101852270308768459927868077300801122733819043688284508195720356434401019664825506764271458709158898168882417362819337903360329084589620319452128385955331863837688616748395749171154587950524786491727493408343129239130107970365381950755145328446512521479262996565756634562722214713287814027943850429951085615373438765720644523647678209880488662878289724817538086754859976139738456655474399427519787754794077431297505875060176329725095565628144433603314112034758410104089713688113367711638089002016542960062872967977672811495520614056518343611547542484031066712747546243760050396848936219781899313645637768144181381672137365263775857262176387871104150168315782102255170368616536387302014148039877002030478120733203791005822973278996484863791505905882369095016210765060843837289572446664875588587656488568247029235669286324671705215006130140049960809598510831732473191018857538422194862790908032974465468046614718716325386112170460023775146366194213044062616520651487170186800825454883603074594570567234382212432401033568555639917031934578343696634247691689536930849079938980586648634343015084776121779310291194657192496493022561001043651988499857654500639295942330684581682926397570452637411544023308368799724601076291199483267130593310192026557916342186985695818043148057548453314879993190882733615126243337526112970224623278255436724309563973331930709879773222011589494146373596465903223858375461836299122840334964318685051572701377726034294289750495670211899854895169109570224080249548767690156767601398012083099302123766899978974941571705524571806471396574205432733141167314213157398646648375636539443367660890823961186177982503993976925109471949703340278640500970379997993713606130317298078660293154583552837062904532437404159038699631986580813042251333562525396148172900983626776616163773753586958781356373568627374721199192880935575465579838863236039899430134245934705560775446104753814235976314434739917563223801065923504948444435204150075386976098183202846740083208475180761725109358851596766504294936713747166477016789709717290595113685848599119029328732450560284149219004490037611756722327889029983895804694548564561338640749636501746740277125735837211832235295641192894049384671393468002740092747402874134212557220896702167420958443723448847276999168144396651372819417867005210104434496230910100235276730610767310085095089902859528081810499990184470976812378933011287635323110256388465395853384863165574307817887527541016301883391136016146672770870074490292755360904736797463518307185849079821268841772335503588608496084825148729207011733728293638581135981188626083304064070135305150939763018839332906422044983945030180296086146232863128511790169041506559806701081928409849862763361651689492212924937480938657730908934711078079143833652633313891655505829427907091405008791506188588869043372480547831121654661356179255168100588806748456942085253063362792867196170923901876018063857469020652103106064359367024534113365376898226254263710553233205415515568753833549905370795329050510432187511702935233371471670624078198166282132175171626361540791895538028039993264497759918860673684005920856330836465927532699199611984797369092283562933812632611048891208601591403459201146085025227147757497884972280363251875811324378341503836293233269799873609832679693688709529282321647930104613596667277361449901173097697000834162042568706490368515759509652889083262975879206828339831703853070197300588238952708574335722753186109363146821463169017954429209740180593547787646005785246935803316005377479684492521255493136274267178838586372729832110962213847265200008182272010847178057222166821734606411207556465443749807025704815353273428672140110008967832402606813410322174908472105660556564976080636036581278211647835752223987748896596987691999751771257360825683229345807170008329441462334362866930800270537830959649846442419346819318563117167831970636038552546686028071276095746654361418923005289965504327824004696743286361397583874031593104562888573560069656878181648194962698610410202950889869207790285532575467398973598792392686966826587642078458382268889338038201483618310480139388002714130648890229347075256229387468420496205321275453741926480815382462330626809480197552820276347801215147309170449504489203662629614327955773656571012951032451941213154855409092908296142310545189036358496401531088314271712577595146721102364730775350505088335214784386266727104107804361291370751348272683611325445245002936437394149247428619973699976329553388099723722637397299882116112538892776300228744763681231427761376237962166440681403946807558245608764394232152199528315274981945174168242038808914992196813690356142002177794181344443154464376319320622873750117470151606438384209000890026098520915146629629102941600068217759979519570485576562498756903457292291324010058234826684776936776977500169966245192914768267144970617007735040627535161661399838339829475759886649168159492520066186248689467502420299816114953789047390323411825178202792767351256968802559407880237773031435368701184041514393613753513833512479135981754383366095685224381183473610836989836897211754666519964965965297550214775567361581009100193121699642609337727816857081155271613768011815867090914795484130126901704627580468975387064229276236541056587214317898624314070109045754333071855676076398235880221068399998201804117351428575529508113544843718346938583723256919570113464701936705241941394046894993965192520340975758470383394072927175906076269930240512216215307112174093697906047463601333891052784789752936712759576084210939805056461807643459803608787188102508041334893045532061908254098818727431733612163769005157982854697061491169301164766271891797402453281911112972633852478904421472465853710521276802506874743401832744716439239621810235866149537777389189637685625553656837709707732596050327749827429264130144512974759480042164513713519304641336003002660386763361541560458563666721945874444406850992861708170395244181687096111602029720687138934578067338680396376979218420913436688365455022996057243806247446286509519825108742310185259335579938511549829685734521116652549287661373837067401123956087412810613625856381505071190873075812464730188111656004890567378589196671985405620183813409105931110700604409325444127587425114284648095893712459307015091556070678958451369802393002528988611907577010130593760271479793953626119953132797822582634737603834344296540987822442608837240009098414321715801676235062375734871491385612176771070835066560238678795421565590498083055884849726116243181821804377659921707210517801736025857805287157571084574445553083954234711723243008760274059499845394978866150874463101628541048105552254985291539857808829706856332130527113050333749201967086924893151310289045592065964692805014848548136222452304369871550035546073380244793094013951736468566716856945826374704665783319343799912843930362175375664703832365166305168249788427055568683325177635677045502538180771225588634486346317330013411384091289823508673193663544810018368064978973549861281838396291836232410552034060697473448728485663305495994411858821318891015129474679770481587869333918028957073140311372809276851377379804305735331487024631626416882244368265792292729308383936911106441445232758652637950542484424182475195979634972849068449786137915434786610122783164951037004797962467668817778200779664241114201158376357469299412422633669736573829873229775336549137875528631663964010736638487374570363795734552712593967124042846916544706251483157572502985077757134418350285146230129109441591806930159916594979806215880444048604800543203587184423752074814932979330091607655773845900382899643457317902924113734267134679360991349411749624265375486571147490876299550824559183876432136492014434482752628819003021414897761290313436615512166872217990523466586000417891074085463048574592465637243785877315016572418898655136338203234242164137369479856511833524507375621751535900843182838881267531066389615182250796191947648377384222824606146380628980391824293177861131493145020852825083235081481232176563161171333083995681699442896785381298777814380022999397412615091463245917147577690058296787024336108490936964041818421396298757382239176811659666703035382484994733010419054088233963452204404215852596712093210661317052951606283964941711184663386151427155967868896998861280156626102514447878674516036846169087064628672123847100414064275565867717591195863804737967863704097232114927927154385431215517561534349522939726338847848833215934362410111136007161309158545742297369596763136339785497296572366920086866777136300048696651205600706193663197316752095309912564129123314400100898243590418333374345391152740015869265164835947120578027695613358678336282256952785790701634729053172918800537462239695063105912221976079807259593245239105907845991885134535842557945107787841285845807535711613871967671356954444499547165716241115778185099294883387791774284806057912093493012907158614681924920877764178663464712763379383497358018206628424570838017477198153280112331191963471395212688427383697632812757832545613736166802207599117040381944547365111608398036974696786271111839526983105661106601319428879138875474396484298639514932482777027863513838494636801290776753942089994249849462805110701414022067812699442266283542436802631615860724380143337956184537911155572992833878997992596926707578546980173065596554415655770233218696632456747754266271803183665834051799831176252736204564384910146591257639026749924772687769865748208467884481012022821759731990730904348860306890238634131021719558558855811201662285157124104838373254591161892805826057040234822761200639822537909759139526055345809025995248773023126676422130273522802935484999970836663405191316785787198793118331812483814924005077747052308719769323307006869710808982438634927705065639091315491533786772823681444102818830053539652354217587043827809081973450865822421486524771339007916155214304413231197163458300208362538839272813157365085256821228841259205130412931086906715560754868139480842849367639419490252335276359815657492641873733944750488483391265068079341831720709316398204451212710453380537655877006439649081270978533931246353464733989281760379673707190504679891281044559097924628812687252303299062823270121736104860799283132702603627889700887453346636017860296727886357959185235549244885079353562276083927461932518213155256961830029142425646762673936764274585987232518393800959715800063611124626251011352725931760842335302822226152253751456643115672276054392418365879249255879120458983885884528238690965848843838169416590944436051388017174504881783839604328695389527612429825507941681185191682713203097971988825356579238486846249342749224997357747856708963174820947977691901887803098754008269418048877369846516613824431557513517182139702022861553120117653452203116137473433058498303636624836303779404872714291327543652120260223786053123486497837250465961655551311531197229741176690878386533509808924045029834851717562676863090624393543272420716940644620516498401597583308731316653786547320254696379175042256417927776423581624419012024530155508379655286080458756599291710242520351394328004985196171731580627005751812857600775030581016495919139723559723964806318535720914124455514369424181524348395846068261233989154826185635214616468417215509367347568017597735643195036203320592351122429674763347520926834241958495507134167397411947032825882414428579483184931748138259661531542990720022900207920907307214436526264511723656407354512870596309514886204453743167418555124517510668781300031739749052074526356562290742821066474516706513112063221866183791318776937588315861292188664763178260450966001456755978204795679550538226872162084357042005313506400858822434322348776277090173322086559593735712119047879808225061299042013037235546407628057976637940224000077401445995839979491198514580937472427126046129447289199593706872230776641290615596612998960825196604797382624343990274557833084038715674805629872273785565441160707693828527291752575152635442784831754694059632012554857735938441233874402304528216295560993153152179288948930840088050692066927487828934149173377434889230567115952823132151624209236666061427018540303996530840069876238468701537870669889253483366606903142564573646518873727327938328992234543135390268989422895023717717980665433778072788659761675645186973400606024922633128053764558535578745639615584407062962800284233632852201010687163157453785573913300374668730472682694927435510756082411339714325362050029743695532986135525981788724730714431956388858145688703700362620541240885773051815100653921543301241090989352841658214671667852495599670491632123653012468943011189107141320344406414026048484509146786124024646452302049536891124715041715309339804035732710414707157949881963887391272053955751178646002814862817098661777326469571671522081465869288348813145017805335226167129000606958776774562725837817977571332659116620862145564333621074361605620469873525289726012176321623269412914088395450511381263540716126547136519756425786893385935858967622929704852564184485251374125117923927774789629418062851754870771747607892116405301961766952905579180383742489936240579196345817207112887980435636492599502653847180006473063811428763381667429122509528913477621033281318628749369846746592549480507335008985061832545328358701461945436403510264681078677383015478613568750187661888883981574645493494137249592513643473000140630523227480987976080131333927317362196493574999114992787866148284800037163563607782971830781508549534706502553159190312600825247862044085987983035409560362336367904531932511519822992034692793905278311575407296096002063064945032885035914948120492831458930466654020033912921685156236529380276599615222981080193446021621599407833262207944593697894497763429429817010963537687681903705915474293405712699120371964962875320683662559307551358084521035586919013005270439153450325170062342070327603567337863970494290967191847912623794706745015308239619666968431524726635388007045963733438822304323946968430209956213605075214255450324797922702971165019830380710238548242244189789578437188691168578749367504399946448672128308337150381598567917324732427729245388121277149427147072672080445537551257329215942661373221470842158225461006412412239224216137485854145306253464309771839225342167911514976816744237169571248987200296552692601600912714634952995816129552869077157945422478329647795697108199462843258269359647918123823564999607721979728560014004013750812536140309434348039793435898193877401982318889325474490126328365123735977951683473874287754549448077225186721560805155091302436447975798367633051671087646769412718262120927726740766532574350646131240177709011253760822166917279225804936221543507323593586760573846296073122671313318719253180103392320707776844376462502795775123157008896988747356123331034445921928935434524821860817495220753319230041424788620039043527023758390049020503254421045769593385287732348584593779528588234552485893646006175755062195198341356855463035366492962840770163633463160906098288998280763748782847364034139688378291669732470986699480443666675690727623614421544131201819020650789378245360766618687468268903182250653109541563659185493110577911574539776293763322559223379557129079895100329581732901514024792501204232715284458821913705765147282256417856820117460789962092477371559700853069025651441422674745363543165523034974205315111026434943954798724413423423386392924492657115352353862416491057519200447657707479865929153662733986305767372839185050792280349559375549135941855500800663779268364119732959313798069942094136314851068126948987042130618739242202884343549077707927933460524217057051411051456198339716348005098021771879931948924298065556000370511494632131463447951734060955822553760829755438681202370261751044206418405543015855649081734183268214475564706804175964532102578550419552691697661596170575904047225379705413662865719528346055489114332453899809279209975435533736662161063036302892738547939394098959600832500692440339823459003351256040844003828461426191378865719594992279273084143301109309081279283556224051990394701908833916415035664679869300219589629178762071709922061919873236118836972357382326264321716560020866669367125165188441452409154096914421941116443698033240122224226349570529319153125400182494793877033971245081493527282852324731347872708699704286255919559895818029582726976172663391603174944040001771926830334311052944472167814789919101696694497361829651398311875731666580330494652598764234393399571309585424514819281615782767038617656020217649506096428215943058206011350154535742112508578076110434639550394984146256893118412553032192532097504175697530924876530431871777809150641732899402785158637505360149802198575838345014727760936159575855521294575124817186727612652642253767043488464858850591801965380326323102142435805835987516600789063441524376582202209183365695029802701245672924551580772992013316537400384186664194351565793162860397769845266310037964467216218505292549613063375517506789599246659688374258640915218789428903781742703028218375523687762174860121774458515184132972826711804233962632193269500051332424540845499281481132342351074897113097520633469139421877179265868118609060230813655623478352626741306881083077624536877833514434936831462050292835540147517083874027605126078438080618121349206074304699253632542512208661854270359857972517880242003501918357724307200356327001644680663788818019759494715826485151331875440344005646637585160668662674277496800310754191445294674958433885568039816497203408134098980124495797709785256994969344233958684695573274608004440990202256164399583240591970973346075455908238929249689616726247711215459459917561955405319512899859829357752956122922904048489387059658507714269155145501104766261773343664207923112247608773143584052790801522251782027532898795236076517234670905600371065350996937775722586511812091979018154662898140615314131661242173310062134314449609462182875615453344739838250319959515567624426856592824474776291056606413798801764354477022173763553046538555871605600220877359047129756627912557406161797143138833617190770068238854665150876969503109341928404348837539307910018068976351035724150159072543692395479556728284626406050237200689134226879949510925065605655019611412128252090908723726726288624922174262289368421509681173261904728125275070512890176270651246024567527664774892714202611869269442196360890692834093698879657047377234580550994923429860094936005265145009514650568124689526106512994830601858143586309060157026208421530021860655857594558683093286841854435226289805989046358606143781259220727965018735555797113028440742366066011340306711333404036104429278792538896238123541503521977457284473439206286304499573173184307111479966602889402883589637261692332201560297474063365621311355910652110784274576457991589973751180788309252637287289150587780294548319301213579366818986607527799166982980345735535725024562921076803870589129059201416261612021722565831750999338295065442453887123096670473182113484557209593790690836639193294976616474255810671499146705443954267736269350933333791507672266570496842831929134398611448194101165489852324238174067613853321555587577608081362143706535247936288189430518666921856458462479412334313294367765561375731230054345174504492789873190054142810200811443323131811760656600584041305008389745773052073312653174036943489719723697747966095841397520185647303823426725076853694513586411514502740149412261980700593783456576745589452408475835908528467915243431507867271485936410443139426680978290416333607756470478009928723418789497238113891649336640971554879517895877947444901625730867310026426719857626854248948323267304772625515831909139756951709414155417860342183153552390466124425873023361811115471466306464003982663936577321718095927290301353484728751399057361767608271690089593028600018622010083570217939060717432144717660570889797679055753357120517812492295432545683371848373247357831417095143980097160073039125888094926872019583220011634678495761738446161931066244401604223281196777082091853191912239877732638894854833689760867044096384742290119625806412592537846629525590719654178301071161495334664611066854786050941517954425826493052696474280268136875465386863548261254932770066654995877125598777895081882688063120841954927991097176127923376344649180429984399264890871828805244055409056021291988637465919028429505401291679986109586906892657363525201740598886087061642132943479121855227622788991769033268390739571702315151271338914693999612687699084134370705847326587593423123762279453686439919798374737991576388978312692757916406956937257551604374417069363903333857955062225196002712128545156627422377058199882775053222541169393039390924800797554031861930551247757406448191245141587918745254317613148784798694895822451076200528167206538096765250082049487134890668261505276882097688238806254924112223755114193267476969935075160054835211435382846779665904446046945411449191490673736715055810177361806030257687934112333980165637974134385770657285327867095463350762745206955961417556560219197285395567202120139287226688532632002187331809080188496626284058587152207806371967849906523694359782665057602053758526167361007549337815007560801962011298846244115529373308137391589763433022873719599708662197490466838343050592399631500053229586797712286463073998533677586782468464096672166641917246569947605833907367467844842866512544035520141010032093179008392096105328910541889484211310145600987417318913613204247076717783683431993887510800542203212498012987662357695035855767562876576494645352513305006995476054120682656839849204494162963001492211356033529260959504118851045087660364778982802366394636056989999335545080413118383929686451583297059641135921477060851821340584565681825532313217716186770880825641959997401107351192765257301338777702745528287603268759345291502859778613549452712483272072609063304031611431798317814608066555374860526491496716588986307000603053723839703684055704798332669038549840581876340528853731867023572672118387675491810337149180452788586926370876763772031169632684806047670303065893935029471736139992050481464832204865039996719855445800827474944934930500569792855537980591400436911368903449618338502277834253702812778641161153750438475931204613717812989135944631223883290676662758916606132078448766514895415701328297933827596565184181687671085449490036865375693829890403617522742812548577195160798283749310164491304111822687847871070298491350822730317686161959274736275467936791644775991909115833847837112011581766201492217043935779487853750081049951284113803122193503091590203731417730606006315687556689685820189303121750075495127477845945692419904885280610310727552740187547838772748871068208477173867799124862045704036141496070472791477780156312807437534808396692107105927674726992218210231350403332342523281140815666960921450102145590218736443625897737424182158750026516857195632232206810522111827873583067392405045803014767629482995616270935763426408788078375024214288083909955078269934259466190935159305050075736502019447322316819113868069866844784304063553943668862750629283906444813178829426706431330748660936212064985189798022613602015765928161230563108874964131571367974070833357777365847721030482095470389994104752892531587968177956291494813750321663314258347260383074384356726410252260429580641258481089371646807851126372840781718327242536575578402565769901347882389067406945002645251919133062577905310950656345783318683271225178393039574656858154254647373483215785086017719475680654529870751590136454822789447677856600394400588183878926441375691990678204195544930310531836955824973525257706208318732891989157626909433987760358560976168152527690520534823706171718758431894627958002549982885172797392913067419419063226220633138302337457905775617641056115979648420358997304124662388183057983956726410266062003358789638888837152359177233579976803247055583833893248780200832557184840935414547777224693583047681120896825288716083036494965882504372170632459369271749806426353562074828076422140331361681783344734096933227412004323903851124022388326101228680206501353550390846850183312529092358969168415208394569918389774604303233443326575252380961656711587626532686410413058028050808846219832269395530070443209373261649679048127360206090302644224208955009170529300090363845467102367908480551439554258718322143917544606124818387184041523693491486589628781527065649668344247563226654631542830412284283069754393606758792798891323475437390949196102339881618961334301244023700122422357399124152853257551791514088400983640770273542358125453311261795971059983303875409078619569972588690644214006692330573998344404381811178880358845886797722508356016242306402714099725260090054033044223717558281104826649790802013037122032016297079410494917566119853903226132500159201067780801543470394088828256765794162913089316850466085851364348890997307665391653951413077244038295759072493617367950441915670973195828149074095349492258384926003005851561293788058092477383560800767912178495669382654705106795326219133591702713222833022562645252773786679405332516882802588916182667237202149863018272822789570293822664308820885789908026919323483183018449341613915717802386028621203697065242951117888100147534130518770580944169829418676267083867039294408750285594668186293299009047396315087845166510609405411132450498129738841445443244463978139144930249523477070518994396387150562663255321845081974514795156227346717604273810474934090532672339469512358300955314642214808565213252222987323635084498834842571642118409134908481402337228334615895149122456774836365039813941435666983028624634307652610977495482305332201040829899956826116768324683157828541560028806228631465219894913958009180370121628413228751875834850696424823047491233529419074719599984561494165969722851907122669936543553828669807108219199237366359863756205082291438926752428252022595709256741672149821499775128591774189005287680433061843307714564668095799066011592407359430309733982647845170267085873195337356616208557384396376505757800333202614453062382670597832100138189485362251962818405091387458299959357595238981956500019151274365675704887162363805982900729814283746151057958176637040067141123149112990159421331979508578499889940900099697017749646149742072355553655308076161272535554251687139236191211292479819912942752475652853156739159557594905209530563979930737890902714939071091273577138855632434594055866638378574796789014197945236826575511437215024684178597355233494940571462534552148831251413615135438393878833695784676919214792011415951118847245240140347490244231601201795175246708902826822744954104782197621875647521882213507363655210231164391743098786592518410678467051124267364656344645930634789370623921990149880944839963098953302729041863357780917229491959139300692825511769006298511219282472113771146162427575091687978587102763044863204858855381544490913822323050374150092850957044785383043994638284245136561660583306104229640820911348681551002932444425795902265229546514103562361385885870614665833498998995513943955945734167955083981429500262910569247439369099300977973927175919372720550714989490696910355223093616705205171907973312491496635560819135026839643880811677890708884803811449085698556812131621866366762490845658734717005394640684985154192384672825070816861946097297664171613473879601759307878389443315758670534592427798318250776139167699163004489244896131816780520909450968439570192910509898442742457001022791127419823674002686982429801430572004722283432584031600876890908594743261998687337694686766961650731542700433935482021007411941720216586445109088250325476605442719045025987512338818442326718114457187773671620718237765114688540485830601954531749386082450545629634629651702738591693996475455319049430920020109903999175495887863890290596166051126819492397075124964967758205736349506222787084344057657197591169880505371770992128155646574894592001699458365584515766764620978853324987973389783223720100783868675827224335236004619123750923972223797895819144697920380871190898895621526355158351057322180873649419911444313640286580459141905718029522202619223119783200224861417640578220233784994853246241681074542647030688369323602090666322128041730293129785849332811030208834879589796230239060653074262617995526259248960264373553147808152234671880444398656914699284924729805558402502697854896937914665382298731654241729808132133426377887401932891155297486911848283703846328254504234959377057375993174517504181254549038545587995960449908490355963619346902510708993255646626933266146253862013887149084021305642612179482187087113395439807105815420941831353969706925111840626240588697663146667583274892922742656045530019224635397173926848605173988554985972903475220167697135755529841902286342493456725244601378212852266544665416446110725043727399552505493697980022492362434818340023806387320755732219777357594637266531649692992601109844681523211399028794654900687103068156378621138471026953433690886603002533279529883325843404705874837901118815892843386599146646531525518301269086023124303350841994509099098371191484794055734208445032777378685906069724923039141087660051611666098481366330226103477546160816064049873339537401392994071162661871931931589731882074679258911717522425688160332044674448102401044987290346588633210720076398593657446110945245690520124185370778163126828102379596892581333887127533101960303053394931662207140951937558508239563302692217452881323818689335336191450943415747429757683707126551027162641525209908442617198028217858792074859209369371099423768291322670938942576492164536516804274896394793039413784430200566765691584531024053130632885929475024644189899137275514604180857557978130167276392507174364509620515664044356780485407452414614992599335421258564206137597998575105808140076761674110236981397186678058102173089201666283803139097954836426778052589068102212945693628957009454702146258554819961419567122295110153322187536115429089922741826698255080670488609957939576759205982788241458135163096610314952940298614138387213613670935267572367281132184491259991828719717489476546133563205754806973913685753551562062841368873348483586256205662920781387011123589321817508288504114342818114464753027392982271893596762504046257145789466121379900463120753969855146508759332712319594150832851779772966662344843233897267860371039071419350060961765291718496923911627962882327877626933927285246809164693456393779050362380101305861590534305511179377014034016982619216080800451220287711346031975849471958593260771386207699293453857831444916187810754235375266604776502733639499502695197902211696879578516570717968977398765174222872020271003150186787865674919638524771613768181362076828520370598692976978765655781046363466484199776952868776892105514765152203809789492439689877353132155454301092060952284594654785971039133018048813601884126527305589494390957644936629169874071736351744981895026922718394767252801960499995469728866116004466380336330757959720145783464256014897106855992314953022310741840656755839825587117071467923037657790286199364880410298237074681896428206582088932880060335569929254416312669340480253808357820949538120667234310691354221728127873028268092815906547104019810857263200581969293603875112467196685721008668127001262466205350318220653342953841397378168645514883811556266772551445276043414440979080819921636589202431933944835095203665978974013482580355039713628255802207304952463872874849430829408219290128986229149987511134115780084825747291339332185982643765256312154557934503317601455808929875532519454542053608445637718642433236279205797696692932290406323451628431589803505339741401124047600374078307232848341847070974178385742864973330512690743820425077696779278697905149329577866349843040980017766670234334301343483719758482259474282186266911116887635513764343786873009475563731158660082719057105161060467567732347943588192004727938148842155480671132402412487736123653361843358299223458794773347227938066329778148024962380568910876550944286151495038532952119229493764278445504536980876884096494385806821957249704239553957908521341844973363553800231903829494165789383548783557418654780907020694041198718973757123917149175728368469136657576529415254046041356517019399257476507152024480939586995320667315613543659161912407208555864677774391444838315429935606815578333266465118365966814340311163548410899384140622463184094122185907557947583525655667903388655583999565326946721796013752324362332274508034464063714469595429068327075472304154758166526594432511058629568140650372459560292400209609291056937641286381661740500537415225355857956396720111924181577915480401459564750393234953589750902830499047542971644146660134909305170423728084931031946613039718420688173666040513143069684109495336576997488803592785794546719294045704762745455782980225686574745008026284231402165676128849607247362201508596010744161700458186097060607977082504842363277256616491815087406356195788008678708046243553484317522122258462530541448741661389275043294615744973428849656929247137881381601042756882182768620555854490959082682300010400200578041938046231033918679381270478273970089033128383917918337019293154722286596806681267215152960828177137785104962214179431811372761683365654067503950095764562517413757841250105137695273422650654659699476187687111489154674873319884200332640182102510832902219963321124436324672944505591700491124862709239736576473660812775111007558952269963887247221156895477893626637653193508415359909751052987941122121569784510037070072120786018137195379904947918709573289441291494134555362945233670331720596290802697645480653459508481437427013570260208639585380797532729603334467672589681162874708607638709592956707047171809185229251514818398882760338520594451427336347988418049610978763788784596613100041349024351048014736024108864773481534420975464122067339799351643501515542100418912528966376928434481020563376153565446351441303591974804451392288110491919000697022939917023266124431395622014260046927569480008022277886271732003506876183958496576073623591781344976302609156453736109879408030867995874538535840437690483254031202538294408107843948965129672564621084090975974850637616463782126703763552907281308844500452124238134304023202561375480266541798702845381139092331303743093247516092280637279972425681324613856897462819914631922254323476209686547324237510696097216630065930205881777225833406591697348876965853046840245571191055059164989859312284531560326594184892986690380854825123546418712189521519153149817666236018962508837976033395079848075488540520617539624296035848699235277500681715880863491109056051463290485263048707412793203108629022980208730018335647167203312575769151511800942945454283477348108913591104195668420326634280557916255496665287147231586381296371421261509082978180931238409650576431898364920553091400922414639748107516966681191936482556581802604001014518513527442784750278672003412480656973827841965216050829808373632750508280967155753383587295849922808604823542086304768226700222229531563035706984502127483333513333919738691067239100478188291831802567967010297934259446088705086586179001729369325942973571904320525896814542135749944828896182143935683269561537344523492782979851338523648198789514237638734698639738168655921052585408073199762350954918865092929068904965769504881357671961559998159435000561919700136187072999338972899096505345817893848956153237658871634578491301937912557528845735336021205900517826746852580407471464839638722715334903987407776364112329734217159979845035706001869754481733058312442790240834621372624085327728468489230046545007779996761517108009711068003399080220402280341904968811299643412596649646674516302837133450909690233339552664029802916526007333933282577342191331833385678148854093020942349294480864489567740594183679400429214752848001050834135907748505180167097123737990550819854480868783595516804528718483913470339859391474877950514469490338795310938052859362151241877755455429474165108433149626745214062614893960663901725279582673466376346112721580762240604034340656698777805028428514044839040561203848325605340226611016969069165168758250878090919891893043532015078658245817365441275037453078567024761011564592618847870896789888942068442611290827183388136305672957167039662775928982300477168282280060899957331130136909776447357067174652750768846013626803311983973349798873258668045274615382269502567613979933701326534755292564660624253985299434432313415482646918848884931238341650499637674707566012145848785939173582905140553591456667206209001280295771531358445830466844758872442853109895509414046175162581787494408443715974837268043004394733059282179671338022320216383603051273908394188914773449007370229129352971788957087072750583827258568717018162524087819854803350572961503574137511208038674370088247882585505925684691460163200320460362998007766623982575838236591952303479218998076585427344797741459266752057903261506374041107381181500948860541435144137568860987992631329536461096306826243026489648272870318175569597818060059364930603171996888372454624971517400299671437653046471870653658567125961735835246684697917542630686051377534832437595536785836193989520870130298506052735964560401963752051364275517738970224202057396963112785723824841875672136096635071837974957662895904912610252481969367849781123685111334222037884844913052020245991680440628168605538579250880317861641697951458214370410279373044576178874606873080578996245055692379187144948141153990249652634869313150922211919065565692299477246453816487235148632588181219182912437626955584074594455525317417478530566718076464190495602668498760681861374236242836966695410262830611193955163174784742103107672351821275457387286817373819449929626067110234785279514985253410954836118548177028076989272363811454823577433964953902031790525594312198028237288391459008533704011745487967010163103059699912116660296454828193459710359829354232436089100555444747244829100800976158990309960248759091694517633469644076401460218066320168988250628356705904970618440843718081551444104161603968220747609359518450239096852478618564616131807546430981746480763690168749328699415822638062213870561380552677494071349139748601090679603270894504726477058234926142302793068576719261818154860746088128025693397698715974732826266099558623709961951841045894409045495743352869942641187227678862315617015146991529577252487650732456114558546987840166754280929456458121219218355437194829058550834024016004524484988571253094593139865849772940555077984262945326757712869937632894522959766801553631715008701242608453143731277738454021701657384917998565498289283219443039596080617583639798887216709936405216987939725109849581251289257301287767458030648517750495899302530140387070665642759526626567707392119520430497667108891664697720234571307573850887132521326430829009871774259686644224855144951530247034516918827803570872224662147531311809072632124233148080831982848253688796463731433683834653661102420245182283016147492135169549683750547125847151593140559430484106209396877122624634367704594319769442631310176032428308266199447863738807442349643762722835280977592755544038214152248601758025052733922476411026577304472931004823185572009804256644996839400508051379958119333024736921028883386443803938939260116629164006611690198746896649859045741956714685268691474420524555978744077004305186975559356826498408896681728958078962735617055457707698794457307588581757900822453548527317743161434085059644819179372419478982194182332967200631886653207657867479486589397034513764470670926498156240775495685181844304215554257505276451910796657670613780425418311617376964436134159647744676737417171038651636396087675827913226193101164495904403927190594513421673897650376079196972932129371658143065526790193921016283831526543056240929773427501031381578026186144406454263254513127643497940902387658302172841691377706148768553822677778335841646998641755329318709147102051803676183714877253903997488249581885919965265456774127177931657301511365376028891840558093540344234209417293613262346999843449706972594630648676198360689444192635152869634907278761454070777433338407374291960672639118118203589550447224302635575066287552514534034054288003911587739721219609275889639339627330184743000447669765441443860618101877334457707247876485730411200042791179901926054350611241077778508491193193594512096989323871327937962932703314357001266239742017850210731514032066415064526474973746215320734659428261287424581135366148520797248006046409800425689262690495324361884893956417677152702027542680477903740971066928677073655249804034141857053595431621983583818001796964866161675980408457646456087075960734675021102587446505011882259994389963818105700215100527159967964993496382132980831186061624848014863798543209525651994061906834683311277000481364854764075871560559268205498084685187759352301844978671617364512226547509304684588029381840193110184820174503418544784202216652823902378519310474508694216629725236214351917837278877943217775323453097251997398930087925286517116788938244515088077137046276688142266954449540735390845507863241326522112357192343070029505007564089387084091425039229256501783797773455856416253430304530307651485576424687171136253951096318873961667608557085863570690284197303179831735311573552027787539247235908070082124503423818726813112617801312926289906665334315879713732489826214428457936598786944130295454833542434221438737761600074541278260869788341029898138499568333886596333414683202541832930711354490129265871831020651337768916475271466044083647590821619511869799488882806620458720922099023374556565915236988057405994080222695463181032374741199648033849022835093410112545648118857308471327132477377523625425727973376974210895617225892348554033230566578672104818756044390911078412053023336378211479636765874461663298768144102432084951304208417752526344118382928760669925605151979647900627784071966758731941110537096069235619148574925762982527522061850072610696524939226955466613291417105385929904383052318484328470442816876300930074961376420938922545094920984131716026516352439778445474939004819350026584640258289070945752981031201382122354135525614226343370674015669276874570121815150549423840995670737547240887224732438960484847462085667566662242763434541137606406262204285195948780431615239223365663948451984314431709963110803566137027591822590405126136148903272142960716524246939277663170090961587587317994615347513700652867990798218602463254497235416983859371327866332792367984691932472615328685342426659245343051849567550201762691704687748873181990497310015394499218036691835554538818420544259615523328898856997116769563042802854951259738692866761863765220634048768204589569209841916189466785757747764665865116736182516912288826024636590185835662686113650670464917621525876167926975029704043751920754861269339223662066017936146118238855580371987764454894057100492342579602526936091539822437627222045409326474478412559592481862738059801052672343257258126734291494330740267155826539657859628694790236762572023310684113356579444344286127950574252107030253920520672917134270623786078102182237729686544822728589195540815990261329518683408786517427886021030259187539224024652995635429471633742774616263219707023767436335368172847283478759848253988230928387608774338233284324707500795105123962145245173226025923188399520785052095393835957629914176486282358405573875751145346373513278467845550480269370591524244826766202286876492296499130094099642564575188785350720462859235727032500834053597812768876333317104357985445614803641665371383220483173682898723834029500695858765569057022779533199131548581815631522080088029251364138497347997340508410400499710512397945330929261371947764957293179794999383127235944724050546817383462226135768883938291175613280108680696738795702243191027765688525235180360932820170478941202831229802430084999163292546349087769491199898661258728039613795382351275987160222591481288328354778282844286625513297032187454422734669844591689920891197569939350763092412057691710429592201879191883933652215248541205261647786322505619494284527365627418888638826476638424189970891431091004502246087530589835597513864427455146355111319449087062344660203934692453821993167932034960218875951031295736720017988872939976962310785947242739496424673999977031926035924440889341718612736793917525724588161861862780680075436603686541852215400857493482691667655154200383351193051532441638613908423043527770409152733315438291409231717823009671533939868717427629699560923543835217387057880962122300978041702816060531674004193316541529094513757140811194375324653703762264773995866080494559649412637254289046051161281253811182667506724786389395927503690785388957103443210918436444875891683837370253777288132499658592391495045744964362877055991265874220417545889600460485715777115984687378416770106870698904133787090564956135061273372151781511202027417723780701542298344781500376278581136656231082782829308803772141493020863971074789151101624710689722701503358592675103777552901870017831655389564049175399975425084776212158229372532800501807469960028690952481136476061933167357633069804842749130433573907039544730793862062301025597644397228010330053292441472285378231548869431380085103528750873947697261770337888216986945404505520025746128150239699662220458988226344563452972805487872124035768708174812669733994798308761368646990755524929760153076327780252213132000662215134995926133910026600237284277246210125070577015615722673245656254649766353020628342568714457196468099268780552467965633047768933018992879220314116754541576582012639378337607584916955297880945157847276628323747800435551781685939294341766598400625597460530556880176809438565362848398654217233655045436367174920560550395269807610933642931542563913910477890134262143933162287208976913595410771711894560494923736312027219825239849686293732366094837271409841861970579698815075740064017308608184336833833492958449541898885378301494021249982021334768666575364374007839294387908322057665747574693638844110525463425988249651708853272538691098974192009387483339493326270031567783263679828272369043292811959808117052762483893380356647483051377543858125718253279247680939912414057693545482816837994726791044598063963561103374357597840727525811639126803364938701334949161144861315427240232102697362693367175503653341579676517579899579684095445400786476580190283117398049646332586647742853426085847014502768126266426009859703773603719273615765231074492271222030263908479398328186429960294106434721163687573499309944685143700029231056629972643245888360110662312720346163855253899014268693579163950327752788744169047441629784485400443039242823983864930204613840175921348539442094721955344161496456370362849979405388364595813583710311001569905132524640099533988097227091426801224974535007549001074242822784615443699747225448747168262691102333212668056905804567067094979469671617088781656894131989595947236845296615769730419383192251343567311052571540142760866073478125090734452086839235760343662037091985682751066044246117716549429300312903781043791540792855301480862084001284401391698577774957891693757434800309375162161709984406619830790345169920623997006034693195153947012067279855972037227410667167302976440657223784050454265834138845045318295347700807975122877195529949827589880934321523424399474049512736797409995509181541518521796402926996786358452188086869642083367184009867705958669881300475725126615571074350566746858146241153499933134346925192583540438091500936876223779600983026805426162354033756910489620286481313347230536366608716906758383769917525274578499931885467133085353494669030182251667410414837513828475607529625707982853472725253759089863969918612037387193686726377938757298191533403042635802710764316118088869369581779880499894376583124089893158360505123382105884979147736063520388053007880261954476919315097698053003225157213871425741105121791319238890330994921661266412611334518065703780966636780924474339324777851624468216730754571954628868571740321160668318155894883830802562986956038841428507701244612154968664010899668185688073339457999447180259302809082265373726936641251594016292287519112505634186328164437220004472784037559650578082296273422463666812797523809303480236164773075743411969546852059128438802935442352768582970432921525403020374425997196059701479895685751655818811091419086555333908388508975756014588420404723624062650954930417460610810021904419424248941179996381661660945135895247987228564626770493239310528350115658798468377497538719339878375436338331473560400079163923814696778847566360425664223313862926275512371206374868172027995093348774518408358228994593591942475555790928647666385243122056010770023801434898423555980130398981190891161468933759270200640768053703757543337737064564023827692126144482341873498755111842782711275892039306461144836757352381487138288752912057882593281795157512844503250024040965485761492077712865817535060883974677491944380329449418776326601609254138075816929509467233257739080469345251068062799988035906899878931144228044606549834616894055400975194797046761674875549884401898710013515667953503743209377086123458784187685084542966593502091766501702966725170265275615502624263217814657870772008230334938640067361446339286780522758004030922269412728415456012166582899362309293049737406034756856809769405442295356078240033533253067878874430629464043901801504174489656863428796560062065975213941011682777808208209004780505523885296564383660304541232034210750425805684364288655482113318092399434411417916019059252430235516210330293201717548374859714766857215579242536470248452946296573061756457237234088687830080253753247371498845905464273502602701274681626494055160767134365855821209488411508191521053729251590089477758631411415782072003302407592818951833698187956483383460864686621863156795356389303348569718832523218733781397366121307902544475564560394696705180445915128830053565683858201151409082294976519236241090142868832582379198218400117322385304142516376561249038835833110400744455520768794954103795172497143090172437510937555671125941372365860973013659842240633587571428655005778741000075536054964998365736546048833019725651727551241902583031983738802584338741835814535716108812711089777093788197078662379688186735380851643931092460535573739675893884330118920006818310822113370003732771071896545021162076222615170939595234124814669997523668100736966555780433917488626008380258166580157144178220732977121235169001674992496649660677913403350945994947532575499822223859392323910807026179618083849644087228021559314994639447350772553859440614330867785761666137389860494020354981395490759080276115924117128977854052165560640553339437523060630240629293992570751228073554669480403816847391262694837111404849634472361182379618704493505401521407555397792030543936998814355489125726052957133157809644793668286255428664927629601602796684929678141648986810529328775655635449787989079208691769380799664787821567139420036405136433498287346764932677545357899908722830158571484046916096247089189393387193494097081577294624118895605143314431412069578108586516346152040402736287476931097219729295328976017344221607718434896926434241022019582752780899770835556040352461999849098499341409442999641094353062663161534662508772498749854898449469273810655820430615329356090217592892150165726233350080626690364858154744591016345537084580833841222444413811323504185696665773429230660135860092751814858884959466434409839892744690422880545496327801384841109608295880832438541384492530023914729242238159169655683230170907780876370920211739615248807675523887120732634284839356129195443090496828493205268314151406280094726152766689480894763938697055316820496086455085722278961195472082496779749328614645010078453064901776581084829790216449000192278190154559508326148901965323154165037339845805796039026683209912935011302542657226112422999568077501745078341111988127255577122809615245998026624353362695932476429703300139392947016053270781410476527229165941642910830004306475865312884014388159097480126797646220823740603167064478927127270036000015953270789790445323359573710608904644803399755369489513246359524218173677905389842470828767234478709421290401059375081566833560153069769934879110846888634796778699678826737731338844749947522898765932279798919774697967927135225030338256852740622040299786047269642446781183759834759644864879790747544377453186203202735458727032336515558558165384036624477475548014713672939772594278394292254831418110937542011174600049635269179348857416461296895687915762988265045817745439740488563728661445693751642207184430383633691415083079258990658624798239760596147923351796971633863624083190727440091370840797061546043543772482033676625097492129080717326762708311457838131010396686497961173851033792120039695315876976535576170691728660777072615722424501729717939454674501320107154385088493599389798511995043067432454697917198502994704584283404284142021201370229643030976278547274888729992201828682054393682001044667721845202458551969384762769923257105213202321331808040091860208756606008637260672425459734388594032263097369190146919044673879382216138741195137862066269939925500062128089001602867632722888345062102297638590472178555590731242625403800816771081659247633089905476861066385291356949814192580484009868038889501257137592501911490655547963900922622209993553402178266390381779326865533165010318564207894594495568103204682794987096061636088908052069909967618706867316376513504443999890310142590751870266071356840198434499100887470400946244009964184914728457081930326148986264332956207095343646228991618129029423630794633550994900349245364073432559811136185225818650838532750640067088174294884600414449408528779842122704845551257130320890878835659308025878685082411419014153922646688402624060799394399158279373705099253744198930170460578022794175510165502046479213867014769466165208419462128957288961132291112398718738486838258315014990374112674611429861347272874915621089721275212739929756746970295683490806445873624738373249704646930854190824224839550843004972176110451963623060755283281036083411361809889401204010916290461154511509383310448079000546247856390191565263389785808107724852653043063974745149102879825158548252496549956702238673874566316758552733568226459426291029182839040419477861821774355241947433415511970657573935993688769480932543814692968721880048754458227885015297765632037451027675877440551972170514887985750790251728783434674968268858814723993835217389932316072110688213051750405804992346481802926288062112597896599922944483256900798389874632643199814746122287519582644395469428649570343810080676045799071654144055570147926024387635171305020708709738291862242338647581340332885084296132790333351358630711119652927651328314436481828115965209965416134585754978251241126694116808522051477051542158018997820411329285450303376890430042393566124147238516693131178588190343279233943663855253492751794786447932990886493067546127457278853659987893462674062323987915901747438082772289994001980241893267572792978164273964239852226142360364621349407550162801637813548944618841806006134632945318444746115992777950909071358508862988507931213658259601112216680146920367198815686947964202008141519039189503302607528529490340362985618463186837839848990475476468157919246928396081402723621570532941235470782973514180292722997004136167733538310017086261855731950504600826564976006431817962733969010572017023330993627137309484006535064588583634982093730617161487724306387386856795892200247863960697407314353539026637153350598470349325377204933968730550696735778116139716377173381173079102496681950717688982363311402066743975515241071468602338701955748493567538377576037700499670977240481407226279779375073319691733296487474368176497638234341998854153736674861042932919621262021049897552155426306011680678893353412509201089176618457279377869298493197671559390351992752678982670420437808194483223057810742840360398983896536700642586492166131111243064499209797801624998241633885261953825116995369890780577615524031495212833075373670578744036512388480591939856435018087005539411532077346445057298392717906913087462420279013655329232173332099014531749356654355215638492240849570732065458736235029305431295577342005679733157685063230118604409539829804197147309174971119074027307692962932243734833851365681797891266876124548182344505409753276000920379590265310528871419142938358837592164480687725395989225639676251315975259502149646402943430046367448821902106177818279457750189473803060573326238119401089721459200587378095897257617680082151066247123944660486946528336116717039978199671213298105749453490734203436769102138257727899117365225230684916471222601008363950795641609502525215836917901510203462497389074696963310007020281732233817015737569043653601165897507465614410446132209522186184578086530707232299032380304214104770530819652865670174784869511643213919816330645444681730539959263163727754904912691118180550681354041937040865912254007368510540165179899851972730968866023517854101755900430390946759134437601918360604746638741582350583420145600122907735507648831432801936487320207008751496047072591074600497082081620812599475358529179769611294712822081364521355351508901464641969188226621666393588488938075723126126939117242434365951294660076463670244081767566497755839747541974609274317570334984554369188249680076200161881306056013238210599244104785243464035733511280312136056796542183123918959692328331301131673544764680947909721845256301686633166913323790719801550963194170656461081410414393537357787879455385492208767427654240174311568518873131068642862223866315397757649604001237297706002467433557704425700054221897769622176917523212239719190087462121784352152594009892188182171520483012914864788828013563433019898684674100142417702298478244377746949441771547673428920805510372426303006215178520494776866383746757340218890882636325299674990008139752377677595204642061917820456531237538083684817686486798634829838725402007464408030252395926267705078864623464057883253445149259152855803144453032894847869517743548391297146461953747304305659765926749138905357322255337477131586266551221584413130560218412913023057310645423981321956334666235403469891149012350664417596162194543059301420327457333160656865747163197043061103229956706634702502413439634982958148039762542768776026764414098602088584218072181285330644478095967634256200783219139171500184031901039658372635568826071097020869975597140214679296596694386649211691908914055660224438446889754892257858110951495182729298494811672716791255107698418719725907765862985140154879813682348954767767952293234057748767931622738345706771234025218160033865897578305614831354522546849257763055529032372294452257528964691078064674880625175930668450583809034499994968756864439833167857225089713573252173339665944330174821862011661723913071941759152628423007067656706564340080982527823089548461430122939923378134145148639908223057001306366990832076170059708117695807410800993019741910402300744251085018785481041680748669802420521134102895083164646610184405906767303390894269508970858851276058176524260829956140300704607717596870757594266509482591349296808999723853284637690996957775179065833674905171973960282053368362620859920956935928788085722135048778386981113169148261837755498157584839982486508157544412892068274951752812432635986066191616420991762491859031021580843744001277832525629578324166471952945604029722924791086636704975795823520706150946365892885828386760396870447512004869725751516037982410030452115263672538416716245661169928925397615033988326568363359198967065237619990705658140220858886802900455167214648750718759043700656567910365484330128143036192101189795361756859618013736347847521884617440872059533772790727839941268962043448891496356781041924162690159533260277482224249135783583680345229642645341205432988249230826733079538871145439482740674619424955886244706838927394229864345544548312006326124194165329864459446692359101013779605484115823366411318748885811569892576904420368639524538981911603668209345822991588692771117862593880613650744389086538250462641901258204946880396000206074304031757245588180231140664345868110313173874090967674321510538615622411990825593236533078486589399092108413949491858121296911327877745006205090911516962127239319899104520389744617167254176683527356070238192157048923606146690206185985311635483846933150569158808330262839873326555265987886721525973190606914046566119793209746654211414587380607910025986540679332070463416013855025984279484901249539966815674934554820918407780698462781225000354191352024081095465820936229530909744452963080624146384610720913832000572846380565889646858893142045257569866000027468615253878263096384519014457566693788715583578268486382544101328155357046908491929884897748255968375664676991982901835043505911000167669140757727998812327848582059985643981315610880927686496236822211899021436203902295550719791209409265777209208529849929709667773892594555385920037912008874417674424297963149109620798087669765095948456443945417725498972839533253200981535123308120270737951142914416634109430611555157061446146214660271383942016915935444287024456681474313498346039536564452012692436776505067475064706458734594463466664410722796760086359515999112106790317000089888881614921415711262995489953461962140810257005850890443797089980739477670503461144951001293746402081633821061561246123935871994655438105391481325342619840347927242990166598562443442029122621219898230294082313267916333352943995471707522847044527506724239082302729146237766364451618441995040591123704873254471444038143641325935458976003724176975360419348280650332692064049232195176294809374152345639947581791830842391023019986182218505327721642301852512813545397396865456433747100930067558764267195106244473138822701981078301875827885726021741390500814693538822356899835386335205514649080140181508311716355184205567852233266718650646687074196445202911291674785977349464864767391991679242457594719491587861064485729508041512160687705290526247786529007582650387782069803736028495090844149792638533652985194517457716024725851806274164128172641975199616168534369113648135475898208225962388504408752901673156467699519951893797619019563225684885942653383025473313069770139970756448098334855126024227182244701385444166519627310727262114846570523135572250129541148189880192538666240187944344444193528519762725726559782121403944013236964495449714501289320130636950044110013753471658668146568220095475639445009284519031624915528357096882128014713489526031130069558580267153825888667497344779637423314400469685859963022630907059305596075503999537761320965905640747147577335394310670701421346271837269933120146537807875350993600088872574750739891136925139196846688566049532200364437782796516357292075849069170449149766465993144553233456282160861145397565484587801082598974524811007281795545345160491014128969501715406389254058723013829130058709659442085299078532169024317856428347874179014649495138320207038836301592458217017393284387178567645270836775139625636567386319017928328973071006669145087944889621684271202191456611625237376368172058276847526663992857247518469665485259803741688991486149476053923071348236065902677114972590996194457592710810757837521954827238849964860637220407355112071436005729694078039696979591402159929280679433452893872591174637962606409978275532157517514660387421923906374013979996807679752244685980957642527157571216787478085633168922941755496942757854177755039144436384438621374360275747566908771039809849672557476630236309311746392060573823188978259438721723509102229266922399107416366078559917969222536962368278845681903446740859920139252112630460326530962664612964025372706115164501190337400772120665200168301824814688514478473894636988748320748024385038821795083069578969070829484059915162265266913170033348152718760084090333854712784522370236614303179569839831133037240455204463774227150615024779996886800611740873291905720920736010308423248650752165046544872046164217193753881018882203168408498635323523468557016435662795407540231407589612188562846036584350686366820497545221731539983590968114379941873969399535981511119281234321182344850257140931218131028327283354412273730702987278158079244743040203787490323377334674506010564553872003249853261171961004893970972213497400459526554885279052626685683818645299843360857928557260153901629963429966032109092073758168739501794147271970409012451298569653560939130346479301453511060859197303951370954109383851136641991941800970158621181928674204066949182884614278351699297510883480285982770592846483004986697073899896571774731847901202986022720625965727835793850382240312885122174836510453992120764850669044379127760568469702919899504314117006848327867409567095062503389604642124029182638782119216667370722927404138129062452550734675700482465465084440610927542504522804847435282093172428247753872550339043580041074361133198749061305467573005667160702456418744382044552017828228554345517675484375413291275282640307810257216633145351850557683505638874643414863940890325418929034440097299349607572145528294845493344809918971438435247615763556325853336811635283809171747255514503676361230346527844449351267895343289819468883364916520465041911944744110543567820861448728722107833241330920767196737455164287433442426184765358831921786372683443840302863238071504012801005963886328995252763456573900567675484617811925950832740842333240502630825786646832672767497697398743033194551613002620752073569153864054814900835185988136971306449700040243248069237105204422687081216158969780812649979890543270791121063993788782988451983466445930995722658602658583635018120990797568270895352326771219629621735801120631918638491114262670216128519690831239982311225512503836597653855748924691374419869997299528956069525885969403477439934840411723895180260663711904979480969112502531074426934512688739394725704237010461175036054806988039638658457490701963143336235706594301446860984613029803417049935984425233732217873244647048471173174005586151607263713782653687842967538399233521779332390001887227479760101780520562291913627501765802878707589626403372042338151829660142640515668766527499271586732867182085330020552741632325821902496788198670082059063536960390175324393418491316287702119197222419053542310355320203013305202881455516522573116877699813839098807053368704318384009825117412754604683661735755692738220788661762635562076799781066969889676447488737858673201244828670883494289242485253526664038895374336416733868902141629855421383631859377357465409091680707467373027854348053201218998039739593447807043482103850436552467984047362761373405738824149053073882152031823742126748785213639506303135940373128272662374273112347942678742309732932914009403933460017119397565805085499818380841878465679585199312181469658871502640466135874327269351136522843809654363866233316483187299846329376083065290841606516178267547045495583050086469296403477153699070055766249284108197651539199188738375323568084570908004198025032253969623243401441280391486819425269438774747469185865248394821944224397799057974446074440158714493820892535686746927752336115146399027520144517223349281559565862755916207502893975190171317453729200322324346689952859654420743402077831142179384302928518631600392332442584470914469430881797679451211160228948330582685619350417445025135290444731439096521069936539715974118626285178252695227025396117036843778598970492066938664136603673391946454495515953306803714153225735620452543585305154078742915387347492645570899796317948124371483599820434048468531716762667573841607230992754178699728487164668259762040166537903301419934781295594740645650145473409004523225369296918098573133023337105144538760217651372347253700671437408150947752368360497275281842960136220098082862878493681442922887137007416277887058313361411210017744019629603635621804789085856264358184835588140061620539128013806448730679458132872433639646075912857078717461314474398942871180998118038977169549022740866101438506275387049186237973166754785766791355422966852559297951167082405899186312794547716433254864575488022115334785503322462775041855429964962928940069919165413164742748800342050737380478588446818249365847869414883882436713261115683886943647101785839449827288830399518335703293293477023147261429430771461410321332153254391683612993028231956001025735940653492216515479992597264630513852376018466720218092162977893848763582141950942228229681093031183914854394102966782462233086574428050781134353096557044609337332695055224347000380917477613819924152057889240981524900171733432995175199165239427310498763245408065030317462850245227387626870847246168042714074482797977696429381070180678020344446458341943206637561237112538239925525629947980330026324897076199436145659749387402390688087594297312561120498616335597382124460619604922040799406010081511484488954961489952807622350969195617164149792263294567957801657604788591518247666149261206363717805102442684025955411752054248439477671916114565960470015548244775888053329575291452709938245376636717828624794664437742137159456867178312885520602101189607914563287208078586091780000211462645663387886478589786421028061650286810659147827909364851700603310567670668748141986112718129922495656582325048097513187514190589786929257365126831141220694845984151583815544255667107194462128348943938209536505823031278390915908013575731689431827856641448657866000299794389205760780330521127998237926832274731714940717005711119453956397401081839493272366738642679057192335056914692571860661518860869770951892751973438265021741803270053034172470964918742395393618140153625846207425488186677811534661574500141141609590561871462419177410730347079280743372617367188589253296464703447401035804168404390127125290169662551956596871933139775104721624317017319974370034852056297976672848151016139565686960218784582034753914432118909224372201751644198725660230537024768514405500342536194070902777318785251833930610051493234185835031500316864185431538497937999815389570198672137869900586632403458560853490744306872925848974749359839603303616154653998737523013552226919915224024310277657811065860731103551090720221437675492896722725806695594643067371761160824257411487975098017672150249056560313729707004837259435729690350322329781152418953322148340583298426243856040397824216524829856575486076471996153166082864273208224227815723277242076046151680210827455406935495376123800656815235372430376750958069983118280855378326201148318615856670849862504383785104967545187301111329618366108385770144950264697521347478826326789640856890072437690690167865749374530656442445856514673176301346776588976330452493580809353528186187050139669458152451174000311383894194045856993406654618171318273142385828790415744047014832509472722221510016729048984393899634481074840329595317612346293186824585702685422451844346576396747094659394910752367206156732812336942952656979139417365262494447897312237980436853033797800128842705835903893091314854230282958668533778684837389133776194919779176538944868550944536916535920265750413846401174459375485948584044133254539699198682112045612734433772878215347678498811549217515969733825234917376182873713711757122062966713795214927617041940888028892251947336688808572108356322973136540067743485692683952684398215780021028443452648744917083084303835835959880143806542791893756670079847232552156348084595973649971768184603527471531443339806131318743613575129002114675002868938641927963045466227203480128929991122399739189261875883923665051245305975935930083244946697177865592440889342725599293264535916770028987109145624236884148126057942523782724392781870923582959759146309819802577558511205596953989875547363385023748848140805884094171081568421665003122119475814445712489107240246020363137675723544897994388685531145319251303981086964248186814114679360843081017764014387404201469411051980772223314478318670102245186527543400896195272414456494812881766508898618952859799576117187815566016977839863166583599322268606385782626031172743746184222997171853744838587976690402323404362512959082484318049429744274019790474344181360443016103679706846648117073674815824859255394394044064040816789342901286705161328623969598449563213352622453803347277264864673021940896585071479511181768699238935775768554380347792724020181235154951417567984240050850455363868634300719729022236414638438027319204528648419088616639394612747942235043387610946495946959648878580647922152015331072785183120467468409335067228434740383311494394164338259358767005934312360342207440753603330282546596708439130270633736080281745805915953537925054051933032630216648500817043284918287601998008944864281745347774387276158563451875993107377524074982480169284277669679957038819840289696339202684571005830798364216466592738220949653831445846595929679668099774617754824825362542205331007203679886486738521855686994187393827575511601617623952715215991928242915961161724940732001401443683713581753832979588488200974794037252887568215851828559448898385344969584892619666515819444655911636307795731440122299408966765501849180556522342462663038989319176581816301215805115857910309731992301184783996252101042912727098145542740175424970803483343733081096600451031178870347757610551380998583098118226269301169690258706238083241376038721964688357078070179410869652653742810070320462560686811481526221058306248524117755760642506714151903923441328214668031088348869409794489429072172883155311154689013663278849538831625146528509708934048656352071262758992412120786196989329046456140234801570386945966786562310195257300441251571090869355545837603186229193696874299217308897858921579453935623463936815922865277950727141945122999961165907218749258197022453122302204093510505849575773931574120807194885718337622029204798288633319862083225280497054855562626426559002917836133525519987571763742381999220770838226985221558256124409007058525681890157864801614208405460189213735154149513305691395398685313898907376312536391050930844470025791411732056921662430250805263473506425776639251942507789106482253408293926880161319021361198984425084761004204306609308470717016044363620005819723917643229138488377654690061941661885152084854254403447917115016770337455985987282632707987953666835599808186998852259857371566799141811394080980639483854367760834996422399488567102356929226324213036720801916339836747430228635567538020910825145825982466406736574510863214226190235721874983531415301208551285744971519988030923774476233581774134628895616859007663967953731497011402485703887945859592870821206054107231864328979267443534759508786348577623782292342583738021933159384766640575100543792866174473435522376771532731790072399183371309442299744328029544816396935460244690053543726698200877256951114789878640263592025761461120309738933881625850256308193232091788098246564335032958696198469099785476130678483715891530606228526755866286003160915654766693868052152066549960651911839485169814713566567020079030903757116794363097215786884405709726750432283272785873873864383098317224265621153517297011916389275577728737613667193218086308245908150335603995627026414672560554600075111160283161313757974501811141358387288769448935261777606423997703576938384089076166957164668119370606135907958295925318634193423787926939681497824431975847363669275749765581480635365680836770728361181368301608157504971700906305604024964211399220348153721159865772362175143348327872431999323983182038744454001298042830081761718305631525199710369351167949739606047272956822026744563888048446866719511977670726421034993444427937655635309476909718630304052247028931882677052367307591731349051312460233964558689745472619698857552853983461325606077808876014003931737888401854639822413329529116796615419217563202064676590217324781187612691298118701710726939078872856229705050086621184430471277614769943335442138825401077343465279692256409263632959007168529194760032767650366287354069992558968343687868803755515863026468896919967151827296973830098874492408892832935581438628055150318617841221333161181951783791707776103860707486335767076600832323736313184052538336485815090907872287576624310226392752079219667184871244751150948826921596892801997082740943105689831785484424483296945899449187823692151626302764928424679375705339019198894366223907075062690734700459619600669178147740137577913665761594348457859846419262700585952185765350381764370715058445790950783143541972722610692553373091744963460921817527854646686612325036331705012577573285531189239252006644088141247266244064660473080393351469926795525121344246102817330046546517762201789717840998433003156637719810596213869902549803255061109717442978901348390221987014817578395594609656782547909112644519293216961088199173462424024643745270664040088418923977833003430950415312822039591888391789077731873723213747372122423479473600373760389500581560316200777240658345986391935036587489605709353000984745601765479482417073835810272849480746881683161249572676769472412038048400852748415095251033684102369622171872106291516951742988271170816057879577645515214330178287946193009183887299013411326473763078527723197832010280202542725076406009431273194420277688305993127800172978177422542197088602923818875819425450809615442095568139621278006032459353038785672086065102737172767884966390339618468263790437239841264967197230114820858573935721987260044983738802410645119043586727727793256701238081405146485024766026725629059723781665770021842851909913150381649191781864596754304824064604580682019534759803186786424574594544478373987948080058451414830693732253477603757657953496284050815370231602896488458459964268558396071601707755673378363438719564878696062212538447898530187054754382212521200644715923119527063386169215824270271047188245001746534214533996777462348153799853370013679633855596309459906351441045736962922269286574970460806575678861564163403160185269418483444107114881318706233568840689890813786131195077121196238974851509592798909516822901148487334633611736819197970408336237343664643683490521970400643747018977735394962935409785994773616449743248658777007870092585878984010894863646638641560146156144373638699535769238364590309976668921646562314147529517636854174287270131392941857544729542685162005658468505813933979602942340246533365487994139568757057428471643986410785686906180261151003718115437901387429320099838710041881476974917244164506319832479450009246950436746915949703767513542583241287910681240333845600433017753333756289569855187801469856266980096206935317296441327046701564198512276221144635718027097096208468797689974424506474243876553083666554502610985329041704380016161941217693769723673952434521739201904608763582796840257435926001181240017883217584574301246714479187815164253411058273222677022215930479320179854581491800453417902727769411400175497626751507324727614781931604364229068670258406266791229295100597726154738569030525461584683972077686523965244687493506118919400846461346869605482647539914323769744083996309454368864038847697258882614282648449386563619642849085033276503174043540929812277162002029495979802758864556200900254586461060185342260776331423643195429119583568817129596688023974338506243325196318499709830472965182908304732909666037837346397829755134533577953169642170846433765398166142831377501449237041284260658476931532380490726126728808619043775085138526501896078719173330055990012387593774167762531950779766696816411655557844234552629018854279404949921285738536304243358184565206288167843698719029747037687179141922136689041764475971643845113445124833395598398758869263234121970400616236681406338803670529532528158050166436279929596844206788916814807855872530220395048106479395281621398973953153515544065974596537081996794562548722361772074762520917644732692234415758772920449630881303107484649946860797708958018325318869645514389184997012891713679103548498937567922733801553546024422198455395864028007580771911642272005237671772867204093269664875781110575957630758598287409829629920285116975141768831151545654391370171594574561860180195355079179991997081420660435701952799765966842412417747083922813881719318874376653257967052655842144929867620967802222137347885392712950464665382507939371061123519511269357496213813745894440671072838166898112906617369993181729346264263684585085588040558348087633389740359147268901775289271655402423330304108143253416224035841485254805879700466753911590165308324265657446461899926399729547815554700603439043505488177327302341014453044545101275236167768084703639011730970455499847998034846659017993142163165136812292555697977816427515433218791808821069351936160561673923026917793477725246835269320273483171849930960703945773629338246082142928459259260220173657362272245901343620917874438355179057325046650453298366023807688429815397670850774278854910588101628080306401756608198726157566260120147159881961785509813653263928623451230271772801557042225177347961541194953991269535118405225627158116896349536917597701112436670049698288051152364216750034600991273888292305176012245134999576298373505425221607610499657738255094135577678226511068469447345482964435014899446103453162492699404866641641570105857332236962177491855145953203918841713283304555596881353606025965384486842076116255234629173953107711141249210439951863437498734747408338956614369051907855984269334742061524028924538091556142072643447459452078699679542379407849480192025350353892859242414786491161418597343104492005052087027666855518669999357045219152548573291410092210860795710606649889716398106269408184790470662828536692786856196592693668804409589500776256003919617791649339535720631140544554583714322167177186415704251253264214034942486288670435477037165646075404315189085402400628749704833041957782116675070819066063275080113743368969346896056622281664872059449312983107453247711148706572537590055214101703908259211263351463834339467903932004004716401165501861730769335363199859169870534146424857803319868498709903264570270588631708274356521708911305666925338622488531643489537923116774636142595447526503218132235860020312864464947443725570405384308039904297413468669715934022194014217689780278809179745021194944549769934448363612893094233257659045502679312345201508578195734296689490960699292920350380677013720481963055024010829663259221658763010429866554050512084227976658388781996768373796547305338225722677380709966222273540541110272533061520923678991121302961281867933869993008025236581622571867421452804705137922839301464542453595155215045221405769131120792728602562481259186466836591475088738106688932372024255810189557824967146020713896781837235876922482249827950756680365315869643102134829493635968117646847893059652995154151625994948301427510580344855042806263884977735190636541519704864722996601912698037830023506028208727735033026446486095508321556265295433124314420375957845150553077927525683054546208933458774477700734568258177106737062925860760612936769318478223446520148447417376985810483008115683966687302738098419533502587708448470609380127922141483266856803228753153678632302842001670986237423733533974533550044411241652428387352515685544699240875637957552265293496529136816245901564493960004988124511844608015983722553321464219852061108691164043429137903836838829167414429514911061290496227172961440820566212537232936565167816569552115422004509841800605437927105292357283306859113004628500949828958488174518104574827315359451249932021874189400521144083372048421789592945747132432911219101210085311216381663930008368855531380515766390755752605940891843256053966940896468115904953183754136739961494362617421193073568908327967536665519427257159424973205442610827740902565486579155414690015276148963470513272398212733509755801673599402491519343890831641172375577480597250003302367251808911324311334050576445412084717772649619301485069720424531564892593435900471013970515888686074714100629410150858602264468645127779037839477668402919962811609000835645147120283932457437311166330486674102724385832150095573612335375187778791511740993180781123732521447669562940739198540218172326067131251710943790207635379320206548592392990416659507784360217188009015045597635176249005061502866713547277081219820201266553185785122907815977846848415233152368676762735305102690935796912169399175362934146269457684047660777589746928604536279977943490864779442465795121855425564172057186560237306516043637387767284344002181953027887696289099490274455976270460765884789766162178936537202259764217706315996121185763584038042589738643640939534907375073246692071302525104632174823250765858807794799858343883702248334906100020936623803915411227101446130127817960089903488763257980381030593876793510917426117491390877176432489095402475827936640139145965707600997995693165952007694469620300205722090016652274454278914478675538926093246950949953582263927899664725556482572360705247961285689547844401585779474121791478074641289482321528754061540328890635318834793093462526278902369206828656942646400837271607995621884698924462254293848495598065922983346918876326652025888651238703534531746921913921839182136442609322420417334294423221216401674230354890038356523324321836627382298262489940011306320080103989061635204622208116491266240379091935696369211329259405163205859996610724796475685156310477363798722863573641182768929055174835926294737937579047250654061406359904362358476368840669638572352391601474530835972645000748854587048184984147364696759656897416582247390798441261225280487477529462992991128183239195126628507511939967235733360303012816287133561943312323767698075457751106132605962570765886764393169863536436684536321316572326911623007032346878716124447003451291068356788291385717266617175957670293484988701043537182142063082367796398865793336280490856181794564266009874809642205739490613328186307734898619389513860348983756031313053064270447722086946350979196726102469341691973686853438380468653966409531922061225681439656703338592590004540392014377719000273082156048724686675002704926795348124314239405921328565297764363781573899643188181944000397493526973169963270421973069120979297373369157949305323158278538718567738956572130905571895968823011128804455301300872323828018418433613518912113068308072327717103215110335068502092306662046055717644772389415094761409966637798330295738071579070425602004449879402632316289292799500345875545298928174843742650603361542989291608272202885788114520618070924128394935484553432261178339542448320893945234681144899506851762591523112805777391256460152119889554788430994551948786118408498095735504639153022311650029330714023735323771900670535582540288856894733157771237768427488264404827172501948423223506536934463404783212321506219298427653550308761418982473007710726065432864498220371575556347560439066048307198884541073460018629800905381241995490969007468162721876408795695258331715682940473739026833001469846257961577504457158151232710696759856936909843197666177508268275166720509597487400480030099138097692281212326534672653422419321061646516207260893846026063393094820597787755123341530112035288744050501339021163829170749144442731985009473009504494971002347160079932081298112660646792956171607766219903739831095620346035394710530948659496572827136293672514033687535970271155578019603949605766680870677694137872120441838349089041732933346869271354771014640384779935338107255823872645901458890547005303742362420530090228882879769993416768853849018466891608035211431094248622095180990250629093835503840154870465100986212893281919196147423795083715029579705378125125378218482823771463157664818356717282099332804819971900196725088849584362964840038414721644824264694193346261329857347759450823997616575844307889185613364213556342360417948545037187536764731809302630457844179358398240892652388305139564733441996853735545967522071101615792772056314738306560680600324444801970539692315077578506580999684868033676075365340922077730581862986249002572860846974198345617994188592540511008183754440778923352702790227672067612670008981480051797037242835884381112766217108124454627282609152279881141784613591752543485752444761165342299323557414190911673079469949400883568137414546282782291298432606113120923430243731272257182001365428951159578460818447056023607132775796394358952009709844693718817448746915984089321437722818191870528054447723535975720688419583214736933539979303764185057521575058462222768921088959753063817040287214488939805293790610162785539554926018002816168535989087921796001319467508880007189987199340338146497820211897250028702962146535092253531041958411856713088187866803581984534920578519598353993818584494562918634163289050018536902535606927736823270934988078179793572881041594780127585287571839373671990107019375295815363931409421974591635950694128103805356128169753344474820882330389525531436313887305947859362306831872663372260919562582254540953325592518418722125384583759358762478201111138216971247173856410044987741058180436410878088723469038255649240456732290346286810312661797992316423510417858750451030210604624648112553987289845375466152301728378222347411080995289369300201070773737583066499650225260025544817585274232244138996222117827504105493740370047986101564087152953222774956668568046553002678043631497452145197531410087284908767891415944974260135055642307887419014698015111774270897785698121067654910489546804618743807427263603684417976786042518130593537454920951044300265719456358145310031870296378597973914234074857548477232569868227261922985714104794932353892320923227989100319930856409975277319801384953843721003549029703128458315923735473007660338591725129020631615242490783516190081719751982828596748186876529362246903950393069718964881906515736075501111640698861454062315701321364847464613608399591116813633318676790145317039104346710491007098099678534670074970682132652452416561203009958390520106201503918230603156794690070309777840095280770693128628604880567757021544854276126596806942080353241342416919037337360543993546351230811713104239887476416427067462751091437993905842138256852990118672958881224189578567248903781863726950467986580749484026177339344356949578585526109425306412986927544530386073204870396893229930253731909642190440203048701930732945502530197229613853632965822930756361469905196559724154512840902239598464546924068232515496257440909587009994690230987565394215172009562036426043949769686921996938749309462696699434747807478881838461125479752578557197075557811856911605422237526265657081235332319271406497522403214002210487236421261541162335359824796229686746682038556382714869553008518964466124811404256229160286659746310253575577984753128724509149064123013597837730131162955000334784247458157263769627534138525945493181399941235299185017061053372180330784926388562063887199581684903337047567878495378051245901633664084319291030177150968520174205284849793916630984417024981961322135792944068624048833717977393538965271982234171058161121847559365418876040917945476444519636465492338677540993162294730749524960253450371517214935241594562247916620167884361629574856236021015349861313538345440791537453272578035556525792681025305331471770863151233675156148820920126423224513057091562156446046876619545367842338316244233214137835296896920512278732190190245682211826633392220412414798755494688427440555588896084561293517727612634770306496196920339081295292558188876705361507376189170860125468915027966910898173142612161696372050131689814864881488487416928228579009888942280728737818018949179609993110803039048175579028610581493344139938142894450396753936376665416135059349755992757745049033923292653308435094632409260110561236642934761877600140466884789053336875592324649484087650415088773775661498256285352781917179434447314088995560157712801380110955809590630023046713136477291680825851301701402002685829995323533168738040212651406932395279333205806065114395856249674534924702911155333125044081110564721460114825428455135251939321951197522533686296073715532472076546841967304316788017774074382960050615746730796291750592351094266654696315203270518956841397233916189207374503193867718384694599945751666542320264420895491369848492000986127413150185660297430004047484033095300329986235792860865004768820751052173119715628239147790947628264431916908598362870913099825922930280553446533223679772707716458060818057387360691837131723506118637634562535631154396660624085454299505152250823711517548791709419933920302843704173341729833869332757789151342915720724764698768523523177167253602068229406303610756483421089788206670329778962397549945666147919757182344643982637383852814343129469735881173351198605661144706932005073612565185396546011420312475431631899009343184419983066067655304410612759192758140767049410786198134192542962313449064489199345139611345865476786657123201830410842338878356694774142901115214699105136387760402479088208394821171549210984766405641970797243266098903841420779942205661379344922479967283361396611776799547298862176403426505129918940050753687676431768612829992499366676320614051025204956723945468146403436095574131349979047349408983414863339059176591184225911846400050237943918200364575281229250536267721992268021677562410517947225373445061158673749934203014590758397736627158885339244049668267297291434679182625302619787488207431272979209923083743274004576742229265863461860896371988244613868058405864889321844818361716040773731071932894902397129371654448298873831974112111433052816896387568984920917257434905222235860451374505758238450646302230719308456346445355441718776938331214252333125521641883191684890396147314212830615053202498124820779698506096056006612559159880445992682252836924688495031712062778091391753062826009232607999247986235756470582228080508026794360352291469482377174426703630240937218226655282679782027570158078310150156177691476888200629094523019051460530691363718861047484034282055639057261744873942258991572914294023037285313029003326317751913888231784587748937989148918704626806912099083756729363749281194838744399268141102841187018778356424861412123661665632370609783192979235367710169051986073174341130983177003555815292441316473347741952546490343364583634537332105554191780275893142977972836475710659030030883150132914803233995437029890204782351448205397046579694293911539522737806479670395271087176881885041489417400504065655529211096492311743396007508439660285976937445113003482737246519394373686324337596066776076442854796533507609856885691241937524052482918786270480126536709087374996691557473456956489388829438904637527330123853301488806589562961240811522181311613910227141011897587948489996227001799659734120584382217322987392335219267849737748803278245736917182046909102810311853020343636417968872412104888515307666679588819041155318028355364649334011463799015524119812747526073894341522531084311127469672326725707687226520894598122533800754452097019066249973046095333260531863020283738314897195880929600409789644335647034475656003846003392108095940467252169124032584177053288468109181564751951470777525186142975318983624913412396280267258916643029874701632654904153874440590439087851559187811196281082812523953061533843521552389779483838925120239508534408738210460365829946064066799648396358189867519995509385721743445829554433739692923655164026536753127194844102269604946843033378595180689619388696825752203929176983364647450581197711268344520631687285059611589439400659827288480419896898510682436073256070111898275836516453266375316769127876235119216500451708817672396061688423989689604060698637215824725333595462638685177388486033921901808212389052955069000330563449265037795076187908105957504234605289045736455397348072524143232794410288432272055906908184490455292554582787439734909308773952192246078076111465097031045793786199282044880826898608585741607037200001789731413941694597804135948507782616731208945766809960640956176884696126230953023870079327398569746029591762115875959414549907758877352931864082774781442808554236157288087386164024901456334666791183165415435072492123453570766227946640470242948655271950427938802437339392675145385370502965898416486000521355047222320817528308439866624236994466060388286024164780860857718971802631732573583872073307732393645857307365863720330733939536284854338846412151731378517963343628678827056942933242806919984326071083252871618971062857412781412877802450699516088646384502210644733136909783666521803456620613643548179212118147206224613600331295121515123311092838842008780922877358079612742331221105435235492415442794182802504757241782288343041975871280462022301806622865335649579697112633092932220295603367335879627000183442760153683359925332559797796174616289066929911329567984952219314152058898565272847618734704046812287667830670729306658966368428153444264551542985119331597816334582804628108010342548163750340719201530083811237687398292805187862472976533828871269706158337893318690155978415456826042585010163311866104910821127636469585486360553443095502436578836912123888296925746477081625159101169019684937814489296749980688253828354621417464429779806822420265543989486791152250381944726654078448306260466471834765773165126833180740019200139362851294119456250251889336567985217437884977428298361045343246386264547104484366405605479095930340424340247271020224288469172835191297054459061431604586099482975106055740190111698439443579389750226161744256537499718963411924663033135564123618054585082070190980136791665524214979305491548654699728452054562715889813204005378072171008938679987079627460568301729071358562350402433091572041902837557468673470623554607551459484703496127751525883116970337471283212444759485737505755572396482303558172447533768430897323574540700393739974437644086970218471704052574882666405380363329085378370615775784071256033454160356903219860734096777843385639193120044977735745071226548692184501468497628308225823126693199291515507219830360468842332974596190612209701805699823436771295284964464305152445633890624475238789174078427542587144025773794519796066311215071486618003024677868350486034162026305310691707965716342246145345748404486148730629952412309446406873042806416943469940225175820325748237886305532686474422421140322760410985933336475134250747633908238230358599322565952736922716859678780123467868946694333219330147890612043761296841976667355979704317038761525208411932646574881603197096831023154089587359947794931537955036174604426993037815188562629429375220615187444571705679884132622398552173548322938736652292079438638971559608077923747863877909127597175435302846153405827004719451465534647876418750298144586908360218560312787290573607566468408946937319586711547270399658746978904338576404496271453045096455456207076388444929188457766943035225157976934172842130822818526542906936719088670214987360420041424606663936321891389918736840619152836715846490976030287409138793255736084972634109085537701471849094826199577081347814556105822827149500730645602545570750570144327248420083466417304495419701172921157918989178808410265201360488692512762447060434199854679990397320709986091008917642596609837585339163406736634874034918233666428334269252013198950129619072298626195020877198936266621237302998433546966447088105950446488465354486844746764697601998226117515831173850923936206500876445679489923926876890230193961122264370081063114961348507781655671700973758162607522362970214646710437351866265083544602109223605984251931312656836308204265215169868631523075370659899178965596629710038677517100367053344679483568582054168375575749504677665633010667403195411573192631178883353112138328909613557020578306452519517282599288158883390973012347183855706476619527856795283723125181301796766202567122926040417764398689579972530463372205487437534639039399480980868466738935969527456418017901803613175234429341587299587265071494205095593997449379242766031805096963997243303418000641968380965660298823276363479649131571811705322980100613881541384954902883900233076776119192602478390060268770637884448216521623772708303604420262770279611799307468972531356140255154925937963645316845370924887407789590554096935464654235695780250728836687581107862188066646449913387247113859855095257632756061281760872408276415011326314484375372180285689963196174748050900965199464056046769375302682430735475507504522270345838218485088518845204860261844860359395077833629687433169638502038064543712305867875583807819237053249813060997783217657296634238247298313017492884871760846236698065217314926901044844753143702027790712100592792855641685700349526695470923346371358697772251559818925863814561078476574231352664639479437640347643769799580398171045444436349823803876760709350724951308223583775428575828183615915835118405192208797607795076961284001552512797722010985647178392671766170003146333146861134197608035067975963244513826722552093278957281534461904826310294813152444278242724491319509370703880478294604287764080696211896907111256034873907730587785756356828632135207657511902750526218983711902548819486736464772929049484145395579969029149671833634184423552689156382522930958720079638065708511342628681477620639493322538453326946568706183094350419671873916928839853498675166950080372879199362028602112921631348210882964172109554369256951058768425064539419386076102061296484323070293942601261215411163763168833563209051362731612242972683416574806846507393599393060669612870153815217979168878865920174279490187850094413094830089526290012076502876327013515630007688625270272001259412742198888068332926693096545081180466474556990008715415857659452958476811370081119359578699349599271558641419513293188309439750854531844910127601966243109050786870214708966977322831676755649072672659179421413078409328848465395529924989697131385416721474544200599876908900911309737670627254899888987518339827735237014156887951841202467896283832059480962146918815672123485280857928501183258962791733990391284123931368242578398162691133138779786943166091918996467071546975883065200779357824456416489015506693711275256968038324331674033657650662904738323240010287520761109279283979937467643001322817680113780718780496302357530364365512553221270045999317155484942877157908213877298788236036774028436807373589969924798371222734943530238321764927400174340390098565757728792568117419150540392149255188586716547014934464216790352927445135778464979323668800458491733102655819080322953549379841091289475614691890623784691694680600056833962659969314659318049706792245431502532681132997646586600631407567726046429171941490001480186300859846063366606723946276579789665395857328308676665971904371346153139787399427441070130334187400242085826803837701450278688985030332452246866124496724409109790833797708903347447568231241698945994914673724468880951913205597168209948714617083441292695965287157948861824054561171133483000942397877807543467497367706649593422733764411456679155141195155311823513099944004309292395504611092012089645972057857952130089118532499822263632878097184780019058534781127265784547632421152475316280840246846630940317454652538217586777311278505551460506621367499513703985169611259013730077745396113561036042775191650519298149977646147325082159511206067855833176072716277712423172406363964106453628015533996869083283761581949229250383600643136270353831079472791621024435498739928827730186323940934184923022418578000460137296142354209748781849926038624424397131209934218941405418881603263842655576322671614491776268574947615467529913130767202863719731277559025974661833116357275211871042419431783661759040221346937242716032283920949410781751143829267367580892334395306599536789612118007163413006155369817596736369113069910698091497673876869292385974580835161261360252990049909357421799328272658719771088584568773803889853243123494379502032282816535614134846625965983153215796854807916600654166637539704898104831625431795146688578631487296402047704759103617390098093999182827099885011440318964511214758006817044144090173448966403520544968650700807222781061471578629446596353488582536729564427804968761261841146185129158745096569444566614946018830028262381624944307844414445707786624446973106421765294664482469718374247649188263875570758479926773079484084404687834480564320983512136667619874369782797003976025169428458668015685430978464645197296139480925151789828898651628298702629573143269755599859488821245796957851804913884727063022841481978681369128319067979720571945237789876813746608374170674016694453151466550727106189176821839119719413737372734273283261955029514385596109104906630543052030006315101838152080328073646968536845978619486583432167565901189723142343956363025164007722578517700837008195964228691671563398956055572861954646445478875665458496020956714544666015874945428836350265083521827056944545069158637264011404344737612701575367097913158430886506508807013543684926169999755066635812584290356884034506561337691659753585218077732107145587871692632785128199297527591741450008676531572963763294948179535442596741760825860144557456697401414192472754424988751516935022011796356029874754279466260123995789244799954097281421415412292275265204035681932205989986314575536412588757885389833563082587246106181339222666650287373285127060458480130164175474157036016124741972867394517154602682414363785369749987145145019867290673610544573717504683912336825367321802533487654411518526330377127177167777596395415078853645017425827874784881036443304838556358329828159778709434347886326552328874591875402044934645795002523536492765070584622764577890826601218091709777004972928414528547726031064063789668539474041387744182827473259271181291277243945888528682401056046089502562775785504126054301062417104823407871439207915083856588995121375688738786261150088159641929399469298705618195753126402938197912796997675698789103035623880872836517744306047897004399817293008346668082542862699350741401983813668710558655215932385137067550743427390357431698563533954104155058042636987672102576035185783320419475920582401026675033475417262022127439586982033095824569251104811879563660073637343353963522699673231589067933634995211434846208480431806892503705578550139512178096688192142318012421142515956152701412093166389279250923275064448010026724653442194286722159120117716254524305953898600016922503505409494203231008339769031302268889315709910183835913824778091440084227041917132935122194400024413773927946559277907064450761029163727286229316403626168456538344810750420360816801184007700895797742043067309288205663144458890424741193401509242711267600359869222709614972911807796454741398371384745490483330762836420566808367368733681215725503177503323041443053615266362636490798333642969967476949454877335683837816670835117309065360405941506949773755963878957028403750818551966103089359512399445907528081977932416400281141379093205851964785840688134348557974383821012025978553707669207942243411345198111576937807119054517250992244115568249207820921467139715571590820410571794026291047677195090006153038418016263293679977816927079717613246320969843684900139763066723381536155848340755986474612873644926003345945728646878538311499717861528250111115116903734755385484689787922079101953210212504461121311825565569984250982449929174408480382372844185044862730648739018848884792516630214947696706575310733130637682166083352217082079021591373841150258995668074733635039502731544558826983530260849806562346112250506808155027652865178952055861524657740071304637670941680062585043071080386903758652492433114187739813474212316130994348012751274136652327151349093378548532252183835736271956699443838416116818323210556980539883671062642383498707524259271328691643821101116436331028340219325196136385697092276646923662081434458851177642848105308799845143959166720728998560143004703918531206982701537780308164764276746123576792750772063587320033277437782386085410470477071639945010503022351569644753174545399733253669146181368832949018000536362091282909108225855994980686150405874622358559563681208860699161081349325021970905267784586454031516159551770547416193767002619117825642863739138834084276306252644865961568169083521399378671244590789663518109417006607470795492117130293792822979453548154617975109044985090652942307823240517421324758128496148203994542499742199052532224752414557887967648452874011542995378175365695785377170830913596434194331271254446493995019337858827644889502539409272765927316910283029994608665414293546629484357069884476562269680734771244271252233220453373059217779510541938211805255023717286834496223733153473523884459457077649794444018709204617957805020824751616016770833437525017193148682316004141091891085107858071845738987165743646666228780612639167919843981769815280233387407170206121491465418531942712341767245661571194392407074889599643673286917827947101982248178849172966382783717549379170352251969492290112639281074945435912019923581992283118906445856502613241642918183644985640009118369347857903417183683823830784894582551271701323780481126056480136105227145880293136614576716708430136071873213182018599905585472283207932216689067889285610730624901001857503951913056755588997913717285637987564164229228142481397823395494701882388969414755555401612031604021413800709547483830378920448117176629342802858407295930056718428656883807977548729051722461214214824693953081097299722272048717071801826903070379235487260546425386424907375795029775703244826308681596151411033882234686637163957248086510519644045451837469440359503220187835339233579337468223420503232408606077647136423334651911194826467872134204447833203386424788408434976742699789372584888005471590625375001587495536373805657265783276264397801484449936752361417793644384851670981676475349158251272507771210356209511950642296335043179878739221661637865059699904908922974487652051850783220099627694898306345419825518628488915900390118591328067669164222645062732338099947764873965333473657047642521499423310641391507966178670528596096106173764254253489910422017429604577715426257347598700942382204065504253528179966547986470568868970589719378550698767212918552814344502601870590305461391755062526447069842761891617349153043724979006582637804778454482294749836582025886546742119062735136736675649393428819939528830889567712133446830064333216294273622330948876037442143270406632592608116979075230806930080560487654437482855741882101637437059473967815161400133642998910164523558754693206427539586007708118732245970156220172151691438658995955146887075070863306649865141368770819507198013288197755764759329980795810170429166304052601937129035537854238595488124409598640029771920442288093371850366174162168827394769538906629711547999927838014577333733471960673322114903340357979268972463550010367735167810104480892881666727883692192340403040775316506561327829436312488808249123178405523278872513409661968427273679679266600989740371937844756842383754038833514581741565288071829164474041292041404340569843039211575262678786720478091575230408114164614672775537752088141631831696770898036163941062556399420886271233388020512779656296894581691142626444869906157502645905088148093183411402508343271735823428000752719881877364231965104164181738644313410007407747356490247533996220944015691653797239708179704560116451873757722188677592835080328952198990937390995068718606038481356963289154286865138109390701570410200983393208347953925265450205902217055416867191344203071233030375489189542331000178487720767760958259020451430197893057009624029751097072516824036838450992987358426871670509844131690990989043889314763729965800805333924133257996617206733803749449362342798955336163525428351448674154083784905431279173756054448132498092363311329515586203913862163732627428941976829384423299388539794760921588393276321751409277697589650495498325573082665776808392686095709062825181404969982244967205566434335981342737085715532068294025479145541475971536298861997992288479184710259753670604533309990271766606702513770433207924911169808778366255346507672263323945620961895431108311796978523897560590645093456573872590218272550966687052809264645835994520856408353772776745532689167511782193952528647140965142190353136035113595323799395023517540159673464890936998544058927478894035069753092639164676752916437104775483723387738073160934374382389866443502942487049366876800360023460624048996115948351554883972153755932901786176665699784155652118695947445550733726162578058361947898171140329745924867805452882022539039998212489962474583203438195080768848208031386558569586247445637136058327354846752715263053452584072105134679392935874923954127744673415595393010063278785787197045240030914069418779198203585318495247344220447804511605542570890101507969636808063014457033897119208651878410337970512596937720714858964009547495212193636412333210556600855319932100150583913326706167170787728743691053612059722901950758382431565528271740913615910993617121825371149434626159867952475009440900043595487513269320052082851411481381541557414677904433108604859911288672916133745264199765418823371304117896502713320805415194618142136629581403633599880164159780156769880378431730335487527862223759551569230522739562896968553789496824390811148592635304389002945441846718426800185973863731372419413995989894745750637197031473830557788221322597528599831596477299899572419957900764295656751943410467649975048665864554224354175663224293570235773582875200757924831683667229278816337028702936944677501476992953721904624965836634848091455078963787960256054231998068590980109346074113252066851479053919553152820446331547473823869247811460606280030843982737391306710729979001539868817353052137718137270452738810487050306690078120176646012806907270734039136577565040615727506383987567448052770243693967469051672623181561869300542507957134564054668877155386052725706825228965872947058947233392512135805226274199741352008154198319085211099576921146446141184958523647995270128967417839135888344646606884352024840979161969273846895360499842434340185739425044362574168423785855443457257009489070609740634106842084772499162578637355298193088746399351151790953526789811576952192205887841440325253723455367492201997361787067254577876974144707645769952110567800072184215720630676773698880366032766578089578377234043442327411532296571281289943739579968638860933065542602189473431547369033321036003066899057103677948556603155513313409067002147306180475572422294431694943076904242234212566601660248244140366457954867391850375510907012735931618452133636732192239269276703521936466244404194340792465134463747245694166390594458004147117604543343416844085417069635359607952732218215737465684419441822330165233685645176916451226413650400626477487512805069207971165856195414842978192815887468858383989403034470303406329656038549103505124866143613914967082005236111350453014464556647230259966094917355088549351867250184722201057528551254018267798448948386104759275540680493137411693057980622409651501161961874772954920087214567918654615229229596743684695366173405171190242261187618118530248738162131518511965225581365560307007081159879014707476291760871194456462955609471673995581048042834263108538629108541745497651802673172842695291631069281353466730024502460445067427460626389024852163719728116738237222570969753493596941871003317422124570474163443669176298191598381293424818066164618233115502750778284570148624607259154697556935817553463060455316705506750094278981430145536833001014025416547026758207828586399774611361744991945687765234896959715762074673161267540368683867939409046251887061913813843337572431540404126802502124575149168456871543765347646461560641967725744866305278273356246982508003821224467389807460107578236934232815874519639112003168653443078038642746107081639346315098474084380024360021924967564656352200356190556937155082338161777823293157632314941373419883940061260519591121566751387654959365490226403790193833827766574602745283029931975826322120908062350426965353109199307349136914869658294890099615715313330808712032226533409914753980914841586784335857519008031872159695739379911672488332729421733215538527411613388433457012707624176369549865756772309049407124283294026560072812312186888320996750974527904923944063546174190615973884801962276046060845850062364049360490640343966611013513290441717412601040731266869646813297625189928874688766475682712425723636111806763224766420115962004997208061544257145120003458534229632264014438192675784711230102863250540141783298424353899747680638242753687323533802869222336195320235465720599116393981592920697748248579954029640352607513549488333350476206124625921158260007950152747876844717140521054548258370282072886188750588222797955905361050658209787191660499948640666346714601212424093724625618133640107478590307811319232946930547022201785459877618657772249538280745318772544815004511866572246976560307312838365530762226676924948855602938969081865301239312236334057755747395390661485241825085694457568759658043225370981059558966374002168802868491841045777349890140283427927252602068182567760897236310720962675973016397223546060666958428474496207526265339761865376659536544682792733167735472521071578916379383776895860412750945237093245133141177609018416489956771371830807649851527733598218972164528055246856752799059120330422959369655927873327080083885760044108642065960820126150280462106386056323704822830669097559106229840025880987435933152600650867344060018907078916643164396219843034356869403924920806212605300585797060136499859835394698714002253682724831391437251986340224863124397041068884049585225984553471332996964971300742013910866185460283171640561650375605950479522996654994617307555477820298504253531166174729823811844735325106384179892533006868104107349255617779335956053304653888349735138428129045920779074134158581410669488919650920016045551451101468267772918770372941709815692660403303832877033789116069862220693430247141074894456440172343252781387842547904034565867087712493129377552093866439196854457292987164654858737888469591909509457030598343950095767621459124997809081122047415525620723302664132150010931690701057536269628110838032791165131421407750503003495783910108297681658303759270537532351879831429300959901249564721350002967924429642284341447213625448745156085218656761606773063742277169891736247181087541074665859775172370401860835911574932048691116713271303628626173919141376141024263922716633528537816685011932163021426294083145799524496741743499867232503890561255221570069430051122887714372502506814659272502975301815561838707237930076343104176163044139862535299771209941659012625659127552335218579477281900436161812329380280874323535311148671348757643249523898173896435521826483464984972248968187163760859235330795375603305105311254410945596724726116545495836715432629949115322772778360170751643661857450251660497193208519347358716037687523444223518665879951669204238423843015120415192085604680613734324360924981783908415563623689442116439067547904915012134546537858738639364897848829407373349508914276331320260625861693951100806230721289120396766778867219848962642638282169024759277399074817654157351355246515236834397607704037625141888105597886486194290770142776526971173450933287197207045856388900313391222888223735160398149308359055137786371883522186222847906875487807309178401738303926106192349153113685216055132669436407999276204534438582922602665306222103783048009513555413139630756287178237844269035499684458787289831983911771709792596321692522619778059591224304335421362027634417648140263532025491228051296083128022013023866738628212079200460056757916743800820044699917832358725683409215351289891181956037944894878972751602681793252030984358460005421513170092471642387062105710850072768493238185776409211788505527324366431084042068305133266701736952034783664946922235390929976776245221261067120232595144704463628258490187164645093427417030892779699647463343899226047090778158030779353805934560546309017277486399992634469065511519645717495146554001501893146500350410383072735228345519902621248626155024248082881206226219567041660355418465609910190111948855649501966060545089323794961827395441437192861562428902974994509224243827595673102146744682171717944854734510345891469011118371515413959432557979571141984110217399118440648406207018092452148509174338444547025944690397705449609436813501983910258370301040399954733032103661945135665514698418911071999760244957453862547191059792812335674151858876922224547431423586089634014597571020346562492727442159143845374015757298783976052467328275192199148298426699642322413938330381731915136072137419853440997755620834646152209277404164889906976460728662972289550835109738216793542789042620615733849346940844857415068821716508824383000140220423877914402642246199589300165786524974745198466686574356738722209278485703315171075504084146785689045923940013162081007662226912025582323288594389956962858967990390515665651649157422074518114877821977599356337355380921669624220164577083108475524545660252805363100577708945421859654388459806010700999158432597860551340796652095474516857772124746419943874324257502810052462244501513730656003222410002924376826977389046182822432260065536975186788934713307215705516415236860897002876083312232520302325971724026100703629203463821542112714342840668004486464346391677708853892942808820487067938999677565578775359927241155022842919109875456203369042477548075928908407273525767825732123195976240412414976181205079667790640780116653657820657704008411171306973497098972504591960185599577022875998540425227425418085013962479377415642419472088069838551619977930206090739653991575983054571868602940559159638038048885197940419173194611917715593610784432720840126680991612762085938040748855330698615710485582748879927295908985976834468665152970707062747565837727050566708766324943726577581917478959384560604616125146620092835828868586473932463524911700112919911796679678037579608033285580805839836942286232563772635481906644322110267664003313413685172890362920718088873094761617125473753315895421819415902582321239809202526891074359879839897284552699563375756962055071966528662287443608275069086346483637957843812293608071260227520371816399956548972477128057742427636756055375170835100174114263636513230676788826883228668063150955955512012112311751555937959295599759971918504010960646387694650186319177631319463184826773419475666656967560314497252088024370336414363416728083452624496176435716748416489049197472450933580601624006773412374310140222929444398874104467226794123917307373684342187818259030441308970533434096087791362578158935700770526546464776185812703961260454911170708331371227914832570418449823024368352388282314552480050839299837063284895516029629800256925812156809907704537318884094210621726001431335693700546278488900744992457361050183694495382059533909182583156411681685846681363833458779233258194068892666685546685065820362716798943040218858648010868270619023892732569616121074691966227741629074262494865796714068337976682516666022812783344390757812759616810437155887924289353118513315530715798478822295147623308450760543636853670666739181140063460454132538912698934189990897960926012521589828838438587008394209037700847445397647237144897708505031471078601503318759610033782001967650666832144563784831990944903824061352664913632104735369383379330827572311051879711285210859099940233499657732878232778099512719806157220340018361556317189143378427778390537161029455394219454137878547638587183621848071392744032363583674619755282535441858072793100700798828174926815750054742497462701124648257046913963351791166746765623449851512198999841815692143865854290144397824159644876339374880011771285415230303234783700667630338389724228000167885881084839367788532673355995830444225990987967222822226707732826168252048679378690268063859212326478921581976591549450617931505492912680267790876694866789179617097541315088000539380907844747976246398142946783409553917190938623865148874308081485579467483536110851551350511324211519318161066813105405375008573193940890743075799047694805324891575617460321973779252691400360310607918085247625626690364207069827007038607790676126597846474781498659409552913370598940650085769668752311953493844649534243604176662632659723280422637519639458581305597632961907062369155336797663721414485715200415481444436752377674603148157630909090933653531228897745494629404239987114723374304267865553439549109258186512745694957257547854568105601928022858376637003644013348434138360689068602022844119007008467330495475158217680556566096742110924835727285595639499205643036391116429013116360811787446901742617372031939508058260208408593988443175527281642093417374347835931969132082190853777350752759010936973331988500165505953092728543074543904806126868864542477788482499210291252384297564253831192394458797077367023973832089741650167198873900514225458894040482841360541053754753433337575461964223741331683685467137504193577565580066510181384953107273824104832607280511569515296194587081226433792405017077185376949123977534943165178947052284896609941654055901433225946841639258927712655614307197416945378872583270992524320473376207493807390629871342531719782384399063524467094783579565539483259435863946818044309819662872594156084770291000398143768671400335810781169179782122833830803914384477484715923772809808991820673065435167130439926948438890563032533846301862745264039965917819804482462306703776991630735555933425684795536227100984713812765097767495418599218973630060529780348481748314743474463477750833050686057708434871406628361039153760054691894769727817431556856799636212292294427761598361019542214375399442285356290513926473543802068677436093119173608110421967902974009652948347110429915896349078407944553058304410901831101076542427784148903024385351012724303907658924742627264394353761651726934653243126234961879823109013530802214206060404045851375954069527843614556886734327925357799696193174804885847577794812526813755153358707182468384665471072299635578449642943848629335311659371464319134786384541850146814681716229632319563461596223971041703518415537056420605078170000933698560314384956432946155334896909203061193804701806111639408623541478717051037926040029939149132752762113249645210502717443999747624651904762934280337893945985057129229295588542311680865723188552659807148409264530616629443361830625625556156604849098183352569662663340495766055369958911434201745329048949480882718263595224216844098146044210457268656789572693807677571538629696744546657467965429844520541018671271699891096288994046098597533602404779288091640919815972699444343259483182441003295117668662307466989659112198008071087886879513020783301032958162101569518833358754501207759278630721292615100128019185666039775514498485281072055602445658204496278700532809513031685031965198328344541595892273883286094015278015577482763786908264913774012375924410702169870830412643046841730886392106328419708877164669277299021992656634560936937159252988892612980424347663083728095884282220212110783435916458251631829389177609396264366735926120341186706227501043470070337579080799951476897287761223269894319873354712592260557011505568898486031201592492365311935025260325778782326426874088993441329528509498049278439194023926181948306972125143926624876497365569059541626798843983062518439757439129222278501665598810763186031828518116941835112569470862036704882263192579184768060409792009679462280528083433408107673762020509226403591335993127831800383236348563810386779664485998051730866675280511136173462444016847912377901657237144794469206903632350362214089652397931555428458559042059450717922150169036646933965336683330368939770108281122926328917553038168593746682264979905221965985496355073595701287301802809584418618564065366681663591918725331949538885815970224948628916235862096585799157692072070625917875036885465207656456928196090150696234535158395464125945856798253527860893289950364409248300140038401850786713733857723537238712909967126290471980445481060100200490679572385748226218721584948688071959377828887805488416588216825545283442335991511108940730331293029804784026403230628191482540876030834998480836489735630202888358572936788065396856326968357120447020667768829635628522142267854412585592397816593471798428434120041811745720629915368794701912591191480303468361739825276114347370494095693226178577510154386535877816066631836729095025528359709394758221779851906386326343498633615286316745908080559821961035549510186412219479120321788589606804119205175359982047506189842118399285519024416044172804544731645299549535439336987995474183148850201186119072437203239350374202100655812971952230694031644639539588346100260610893669519537684729769812128820745008117410223163295892936048739732794170823809758539741442512940509017246326105831495275061021915004367843775842645065552542240670414241076853205966556287397314751403382294790084916290613992399809984652265740972111283852597012706201766579413348297996673605144439875259734902204014408462457206203458312408508688636688532677855137814756409113544494786505593128547827157449442774809063787951005339174622692433242487649112428111828446501412549250884254739705855741148781267355813579476695769435665106392359325616189845691807456194168872784984047935010212805983873309144844254526779841631091060504921675974878756390854619887485523730065201419608822845325735853468020609808061264649792058742105849586678309177264667035729153563467624401087673443006602703720599985283880839018978370430353634025800130806546287700114019992069945813148226564152424556969402195472484282850611135648747301883075579326653907100953544962434611179140642904671254480283893908036580517255932630886281117440558817319144068696660968268313313176940415436827033064901012867630126970531797180267907762661826782615152350509371681595505545789242802086965757389305054475524614390057893731702130686731529172892135064964666560595709513787406927905122245873633948403127979638090312674889095904150596207728190541331873953207955690545429819682429907201006415896997890982988796853521679626421828526404343367009779228800529137161899009296408040636556575386827533926675929775611429524083911723614270667912460739311194547640249654185633143971507226269380799741418215603511139769572413893275787101238700211490254203353145470827967214888618293361275376778459028112060780986068039477470305744198617256879943753598988762587792218659084819617696379128286959041683282218712520088603359751671733211009130007456291073476321187587594340126967948076774224914207893998335929359501039304929474088312347636674713834500860028741316776082783909845338429483538667396823635099614805657069718508023214779673853025219772842868419048109530887540740790641485084828073631031504424159050494927385298040116142906087395400572194622648634282084645716203732029510025160190050257279332363914264232878003280230070407145846160755112536164254909961104299175603738883896941962578473923352503369415147857674259761579147241237330365707842554579111714542634049775658815700510366649238865323349783288129954378582390236589342166859244643317197313206897312673524363819328909929169811126645909421932857384773623737604686380755554659887358976650690561647760303333183211357974622461740062389887460833113569059137245918305695628172599101348834029886681653942960091075959469926357666743013621179800884563716916979190341551488088791422838827207049621929649798490864236517005838521725102151403599212516915597706824075713171177078748203329918589971145319498926570164454397595803607584913301114647969351820614895624918100118692398873458377821593238976910278737026240435034541420172952951728888223283031249339986692195190333127248862641196651868897943807098710725924917793319397755692415792151244286599726528457797961849092743526463435981267951983119653396546556658159628791929494286427664528900803007415457692760924010727804263311542914886346085951384742915571722524793938518987146040307518108404923624571682510273300311592678807932305472441600269771697707224729224196995741324984637284814954661195620352081288622432395348347945202802367030503007568715719117751382046340751809078313406965727572717416160633083985616115921611670241271843978052682436251051193613847189673853093754690129739246362056377107213297307026995109686972723612675041562049438604499744280482784299088491629016296501100862122172007026101998414898589134505083737166003157186411116026336608872933096584128338604944736198222462116239795429370418249766658932235588745539031137707013393726829191880172639949884506264428257731956016571458519935728015707156721909648146333905305655965527227677391297494212932677071321612845739622547217534973350459403966809390740618829748741317678794642393693600639393371169615831497705930166433305066934543881161748123599491625533919179401792322420998138309373065723514680324875390380760340301776926265222751722865594278490365635476311650379620836345118584755039412773458461700144551372898546520651633807100293499611409303103243941711234353918826630574008749766500973060837928435960143059188940963837572273752195267318564724373314501064979146666260474289045375016865766679181409021772514947373338779717228540629055901781674166419426670647858057978388579709598474164995404750697581934376388486278433016272538019005569815602173585827469151992990552484589752511711750694181793306828050623773335106650652622653440746636881128760834970394887158621963729035550554811755107354303506134860916624668273491421463129925568111630043856736010511135992270365300114760898857053259497311491190294963189240837834840227822991228077683641346196022043221035885338007172628155795217704189684207350919120584049704187551847244065187047242179687397149607250455463068278695839274406938021580417244706597334499951395724478571887691157899396900466777947834549387162511387705151081113600360910857102084451838408371548942419610593072455803002568763981503784331527931885438159890126272501069615987617772539130812780316384983704511120442463710592355090139737744602294255202269823724277288021230986809663545708987854159616815123483577848499451752448732063284316101507751720175274726134076980889034081829420331645162935089364031967507588198903512530146319320598489578520112127044741019891683984315846610808325091244416857587564460542458412513814479550661919618392010166367622191626137385915057331660025065931556308733214645385301197587019339263878797013158500929020810671378774584066137603172537439331962181925873258409242478733694618861029723185370014639795220149004449982029852860709657809827375376997327447719697083902763949517997176772654444534120547169885477807263156685935022082836399148441057248101248112858957133563513598155690414635743364884900391714022739833986038028849670414380844637253211320150222333647305928345167819876742311591607418127560766472521862604651633022820233746041315521780128865440139892711190253778800470737408222073919452590293951451989679603890710699497688334132845682752088086672047821611411723172551440456251025994981996033091125784005118884517363234361167617818311910556896551007634392994601886998946813849368135928623177361926941771417253019431969935718480023455078491104917669800697656706717542477182748960932467090289856011902251923638958094462577599315278386433106108345852528830073318760167470984655069472664903043140142041007630272480956153938068626299737965533752420132181020252677288089541716941288870691489149893081728152779292878822760923574322579695426155221984756550382698126375720379058536217514815854383973569842153191606744824980757533005110534123952171220206583620490185168599235282748153033430595251491304188146128259702517240689232720477430665478852737763509765404247320200879563776406017877440820602604153296469120605259707035503726555841874879254758103578711978279572100567874649374107042058891492620754943864390371665248153212795583042857683993790688549520599598142948523696682975353593090155103615876442107436768396358709136585678451895959975112194227782707340513785054112405640591904539451362510570020890780649307461250931763767639135906200595619965497014027022202696025718674643320899553524143666383370675541190931194118318623688564918574351378766982440770817966943355981625584542515119560647453003938792721942362092429109471511639607247842914748436606937951986454664729741602099015373574053569352805469922143605784574743029207432707405753799780729835463288217070212621405442839330355731200140678084863309554475045570005629510355615192074804301395427225136058247736989757248915785777116711966168296293572074342794934283144584896476935109060452076099546685858873863522902479418428737340632599107153369817358155598545693550075465790407306666195855583942664081561012979744461618901236556168955707942342609063508020254099177547805089592624894330480170221221736114732251671207048525577269324388290454433876366406366367467271621455367607324495576020879800461457501939497479370200932881542138960380514308067409031601295854189563443714175814378230215598978350840158278459185236813018872360111794947356852441117318045382082324171314562301028496431250975142068291466697887184751992586326054500196989925302404518463637223464237468584309070962285390464626201641202764121407959249190169452967615724922071455882188701149494638530286739350412958110750929579265776927833821959794682729546622243092473288530407739302564621469616649093262696910192403850966433261737970957895160457484870185984764815942116778906146933926551252448535777167661802723794011311164047332466736976751814232406816331339334238534202617657618104345335971756771558069193455072240601291635449611360497460495726268631079495032907103502090022056020326919119724194364596973872195734889197118122248414419613292126131214826383776803533668455775108993564270233376938880082646324115218662556615056440643050593167664801781851044120822198034291775503306040228279240864143944946628929805795456700138117231593509141706142014267992025011335839662170507011014167577281762298955005282619677164115096317251425007991656519281501697064757700097359108280140308889351807021106413533286307589393088665579823322571832022165700143740489131505596876333144935692503418938398744715108068901659795447809312871735445128174729618085611707634337995669346679256075112425844527244143459061994799966485466693662688912494071286884733141669644526545099918251913249958588672917057093742831976701874254827582943407129708088234975122716269399752506179919786296930068589357966770965519028459203359947559470262476592356339949965127632425135009227441757345558685153107075288836415806994074625045074032163385519037402321316491935307941079895634122369602673556963228448258299759888833214582477557131520167255863616978560309021335026007244429943188021583110039181466475390511429037501157100663742056737133519766395005338122144521761292079086598698088768889225244280064785878340351059874940094145423488571512460478741389120200045483070447221332828669613608281718902996544909845578823227439274363036873552327639258237148935561831817076807429281834553316206354738470054434338678770480957010554327115653445019978023068494361578430275241546967815665928371273215731205374534516501309983126360896995484699967352785503249586113102228768901228951984129167511578828670754278340997665783124770888385036187953511710330909768474697127732394691782990938166177485964844474479566060542227619907499527034344980419178402658584931465803668324613714385885221053620276417211961412293138325496050025427692487784208739458121432781088958015405623960687302536579537739545150330280107769925085904634335242588574042147303132354348703361688732389566274495431138482774009060047862415832373543200231695092744743712715821407505413128420966140423185318893645799078512483972818489876456925277104188980330485042707146846458696090390827802069644630442547634240339451059885845713620574971773182751459622976857246659110012202135905499463914348881411568576028723451851984284820695947248116455392637302294624922025133135880408725004082580810556643800429932696067216472862693005525622558804862448108299366396815277627692602693234326623646218492358755394912930213064070778956144901217814586045376168220670376879989520085265244418739131755825816799261825062591043338272533740599973131547779020555418561770817578985351997257816508458804716983126323359770850405141888390473719512558615006021595264795499084610559472562371010056009371685049019746969839727900745115502463600837245876496816156670912638936475840159827632473079221249414940249861414261785865236799491216603852051667126466672009447862142916617026719875649178989903351041887633989998967884902140009663066751310524020233628387990092062115568634440423505773862724062508778979339691672767573021646473621668349884787190886607729152911310306561770512167475201836245145151206241733296695333190562197227119051821561660039021021380541027674066523774908071845053708135810693313392812090807282742007376104566319873994013750879604205373103788243841272371108102690288065353414507827781236541694981059499825497314112247558577252686929310864612009121136000371654365239105315484842000038980034593469205061148350913799716887729383735742234561656903961905673550652650784511460592577355154456812702953349933878688856628907570257202304281488365565491025832353378868385664060618401625238409985741019048821361014538860660577663266232875431236569881277284062949189845936753449096278846234630017682775930924746639391179698586530382828181657096991659122146335482356666535075821452970860285227995794659773852418670996641158095317213083183448765871891732144813223369521095582165607481457561416444223248309177012699082048097935174371854651625608800451468655755885226816017893247369628703132381877831797576713465094941310346337577429912480699136664843276699339422958323080261971611126414829866890945666131522894340430765272591326489459980201461480150777601045884642591930655016912631100040617497122941259078471693364430386769590049917256033948529641813320110128770193008748754991784804152010676349521480246619957657903549792788179068646247531795288634971472453658667468539487422262059573276322192840462766317814952415144604627913563947756732268203287250239167167484403255189739948732255847809402933929209049140298289513866311301371472019445756735376455891808517802059919338904948251703358143150559313239653638767727537977330174356215593501500926829639396324453070360966355830513723136440065397811086314648083623094623754121753796753218159345078292826992570045114124393954717107018981993931448931914963773151783862421228460001263643138213969799380159053448353781545324407385577195436660638788041869469098736666573947977920945196897123748806797279360210835836095606424789659354986072178462735483458426431731925016733143212859898604468903981323503973701298957864272563853720003908661609631270314026379020582375914139772236593639245695860201440104185773001864449690775720590274012190493924323192195801506558158651299503220936237326231829664719235860480458364459095130316917380309848549900591878625795046017125089464916851389790076538718081887047366260223893131326180183020563147054236408055318488711985356389012759684791391494170056432084704435256328762870062004263137387004430882237845237085006118097439463071641642928227712653451173356081472498600892832988606550286748596754637993251783815885748498660431806277421990734614140241119763785328499729464273753787473101622946742979675225185565971360525951515382675791622481656192518543429587513982714488859140169219442206742876400536761501722897014228670561139437733416931207475011588118756442019285559484871029577430652307301162085544023283747767401463828495955073481391792788313051124409300004901061713862726961499659876743885778552463145745690339417596632835803979366123860352691492871152853634595125471362140393235184314977154106123865939947056922751831911832184742091696150553694274415446738471835286071626711697023211198608257834261636705225630924121990117693602034333657592452686720277143653908660397379291430118176207840689922701795740678054164297402622958703421029266187825974722097529025219729605239534097904063158336945184573427457261820746793950873964677708991135983979597665545401948631373545549843429385168622018488776042040643414107837249127372756790116507032033054182014672149582395262279161700947346692166981921994960143629300330325629001169787603969947477963931226566473739327178954821541681756549819772529464663048025814024022401183039141598184308762034922878063120797073200799131537347347132835402479510216348423115029301010210579891511016208742001395525189760513977355102091803426803021621065675386910617777427583022376219401112747039437274903626875943840688617426091569193205137711305318072703150266972863447235575096053964544175481714398631711460338725766478266878231819102383251301915564128648712661421486386017940888693364979548706743002003358089227921788230126603185840218680564998069291844776088690058404460779567030012208377725094791214791431620771204272049267516970950131195793398999822319139838590382443010506987111858497721023435109018374535944127001517565658110498452913675754714186933464759542089732025322799867942265723543527174711308576428219075357617218877886634669487736351466379269208331109638116769796171177658388826810386268998544205486336951075769571554321680404233499054773692535639587646122398917273620878420955224252496460513579336203110473687358751558850367640180632842809988900678173807109697766490312175901185137100054581630898952217974111583152586127756632238008091823743478176370899794573180270962548423156125157896319394437911362354713602223617814404194097236550171905944024987224614521562511186111566825011583230591121883479727698256035078252378927238012240773119990233159031682678253301814694832219075732664635634118427031209121677297808026150056992271612595063720326697015504493186729131267740103894941312624315683317431499556657409541371985898811013953530183960111442278657140720940496898891920788502691109566474461449132626049114535852884693272299125691885928498558700015641540525871652354331323441654545272291035918934767516731464189535900665822010610311460097308484214821715626625932526603166436783874191918373151441752833916394815746454429015160385909686576263422160333145985377793035972220824701969973870663223619726246315790587069258977940308574213333824861603425857246354351424571001150286811948905771995893071581188049686281540053975112237441871859974816324253746988538274173278616341463095168536377268179487190630646710726615772779563267019003263356769966103851668557316407871971261847260761779853266795173336700696414774500784468280521425792603732053414594620197756897821794220597461698543127652906715203356397645302913219858585963429314946059546961500353534796205454092267433966688292980723611629590748413292599621813942205186765955439644790148125927593841391125902813003201438543599845621296225990726425124469511883722941561872046431582788496739246838930601862760817959873841623343356204279023081312814845606997753453942041327241006736746325094173587874506626607748065973171472465139545377276096064048879734955725135199029101912698238738040576622674931268265185086538740098703211194585100385662863300993970732180322511017434522045607883109194306676933411397456917403969168510949952528466448269705068275361470674840679659421357428263320410184775371040896683872091584464884409353249629129949580919434400640441290968006736923444709868609905980866751793315442970809788843777817060209758645938240184337667449054810660382543280356058099668168536281783738801265676682531269237663343141353893714480672421881089918250401759517455263669540669459708563112692128457550901155596594648988527171612638157776935972435398902806519641168259333281795385724711128598910176441799474316379460709642536771574555162900247612835265762579305154270694913920736324842125391864271417056505079687256008103172676113143752939560794846834458423229757324892029668648454149027303197810415310592213526942041684084121304756709759194741497279026718223181500517362705511590732875761585709271234779042095773185923013873802434842141374714379332745347280763205411487800130455578117196531898150150709353567921630595440402793510716096113307772660653075668761969065780299625460501768716169708546420759717203501751373797548024237448618978245507381961775031757728704899359594868642212529894696512199361244060063159584009539873360006769629345931790199431194936537081641023880678467208456160341802259824819072659756204346337656136160213907760913271239705280397431890294992383674325761386644432131584887797479633626233000510156927505974064030708251796083414976249042656360811391461743140183089964218846810063602383403997316045907082166457776453757382703533688605823522981066820554403352520171435999458516230815471200824832426663290638022772717309876772694603990703951755242268614122629771536745847534613098094191601718385600305463888198592834251387642163984974801620144808833011891074140034588268965909025044256480493651303000775234872627552326948302698877407105394100532712453509164941306457590447712706547411156681517308646694905431962433327411673353910527484558633958451370301590212430513908958538146189497478135405165642144267085482448726928951662859569910906838739748651608651594190167675060130309181701607748682826879567646272948405252668203212300532777172490044347713237541635134703843612138694381148577682149858414134114420869419838932938464195549851110415495458787979455707005717020351072058814080638943982324344583183804818974343554129464667653976767204408521606982297359564192194393176225502854979779236279394118732173038648441273721843709866456088052603425544227432603698340259886012295211418118966658514234837056210692759229037960733123370489655883667776253435940773885390123038479436393985814033987655282413540006092791640461432500265735050365633095372865408936339542613395971101635145145513762827387945064441219083708143775783813250583812649694057295711388490761327646240306523864931830972906284555439225065136446007148394030249784241245033825807537359792044065876277224094329427993583436878631528461155999139518007262237681429820270706819950061536425818274966507923577744340696468625271945732732178219139031714956719079907869777506180557413906554904230053202646279289226104483883040799167175969511554414424272555619984496520532142467991848976175646833976850227406377402911427614443052970849250631035299178310751860379358332973538606899149348268824100848989497468619565601102479989184966985201541911450302760249211632793515509553631666156648302165724568165266141973808386639180047760544314166395017702424595008707160286705253366063228477594935766413518044143489681853654630943545325205414351365655054147117336601262180810433465594526897252238139957585762075915185144341765226687128698732354708403812424786610019162648799111035312076109502707114228108639250909065536201323173053595577952007818523533989311924309401236631163786730790020333179964575097072127533267656725258418061213169737619938362162503566692962696548883576423237909864400961524327579958278129749606035779387185823540467310129587374200658988804641335096293979346402954021322719527888771487279457261596548471052449085996068654188684479644532351355892050777804913049679690507074775152462684452578663139132695679425175869575863335446880492388986725569797558337604175370372926970488653860411546984078858688790900316415976887935376831354770717155359047652774838899542299294498026608667509908742299019471810087834603430736647109308096452669370331395864487528869928772163441812018325633943705583640052838865568716380034179952474782382871635519752772866545102090500468557241044922662369502199450746710418559196706715641556484335642113083821747911598909027108594667783737494214544139647400076074535706338231935367926232037912014730929352943191555428515319017860780815881910199876473692051221606442027340296595761315723893464987191112602565587693506636295651358032567510689485063000493603989198354584127808498936332849490580316953194764445536794985014977661336273558371583518313565256563473660054082031153114155901108465298920884366921220032135836489261320857834268135943152245970604286844117227008385895732206721015971303857076939706929832790205634693715395629642597138366415092359654149119721262050519810712610797850932482216390107184401809986249249109851082774338246057320739219988063134819709250708565577354446489787177785581053787326328889668264494027932872112842602852342898779806023817372004831996688722326278334486566109543634800761337430417136699655427862982360037894933220297260208709651191216919041911326545900982172350119693290781625061514505717804839767832177891378558204484256794479506458913563234556049351600857856127030221163245357590378441658583641416512753869092238124234140450207191644556380422166954980410868191342380623623366007112082861812930743787246483960233560681785363696427994102745816697670860277244270797101182403868276817402441110118290632612526584514674647313151532903747270739509608401833559735535355604657700934350084803078825934045223679177454493239080893060497921216041090710278433893716585890248508713182806787967499105724371207366998657963471228951551338167787676950216704389808373554413789334991290594566246475420221000908740877867904020937646227125870330579848237368812744276407859534270256354690499046019214310485015797448067784013664210699327003307406385735304356096033217037819160873722573295113006183810779929671692911594982430659239653178587499315772569235564284172828614150616147955784070251851726608123612496133595333986991635328702413586459458878641772274521880102069831022755337419732210401261215317173534594754943775175507817940530369030144754961668732074008400344655754111818965088567896560702567274827852080136693008341187756371475218675758156478057377063120351374702438375288109290938003102070869713594093729486837552257283138584504891137824679117611555439965198716549420149729338619640861904019773561362488989299895683907617421894354608625691363169567964958017093581122334475359546839603725768608546591884403128725146095782266429450750864878433542687958005899634276695257376833071901910585217171874774363138023098889130251058778794591494428299193110747724895714826198770272428028189513307450653527023161814933705640386792111150100528661222942518904383001412814677281958601805508507584990402799485763958462252346149545048487466265469707952676320872017378197125135460912504336257888173149510132657875142013413137955523099516797972695472828462613696476785121305637523539569536403674691610973793212823419923277014235682546319844145765854747693080821989207160766019494627304645278697695175372240512975572581741814659681422573278432764580614980639423658585593172336292641405186521680098034016288461872763226427152609203918515009049769753362804327578816710602397469551435527531153496103480897127562566753206534588940581777395935282688739619634328078956377866610612774851934663080189107419439027396333415048524115436541483872096246735869925317485582510056461931389438754673021320395117567640276268703001857664284054173872582981328547832353542004814061298150594673033940042629171292355156354741225069683788446503205364933999947131985272108443090695454782075287245544802585816079634273990182562504901738131675881184671061107866127277228423872176924009822621077582637264645651793374376303448843029950169179300464496863009391268712124844603049607424929999937847199430104551486031752722413390139994823743417527837955540230767380641427381606236817383114034492959178637274859055012480681838388913122474037055402493379073537054712996627153322999216040667524124279606703716989876909018154071157872561257203332147329503854102793804409399912578848263472939034368425489103225194977759544163293666807587537079418472453201437248254513037519122207121757258924879717832077032490930221422433172104014466056969728929132473903775569560437925940602102045097676282241491514255352442587116338951325362365237254882338359322544253704169024685105610181094651305458891540659711486303554859648519791754053751116089589793390223003425863996305378555870404895709077223626560797786972604522950717968943991241185018541581629563390146989453474707579830276366076488641906339014827934830759426380373040628763724838830821687386127912463830422069631035416497413443345616128783507985025449489024634565114694035413482765623820437702997015323917989316725696043592974788678135244448705031355988364456733907989279839784658834809871300005294108365048849808520736442469316795224431136090327897142507476931222885863650639922527250143202946926921353511579226660716028341678857757543055298252190594544074077862908432983128143144654940249985308134737066884655988427061565578174202229239530740062570463710639784622252645604952802061134946764491892833447949447761541896826192506971168946171143550778142132759504840711392030064489575935169450670128950759486652850321896571367138566590529589611168517071731151395172277100423717527717685515582875517329436291449365749577618670570440515620533507536743012022385830209130765220102706843320285483203727822392543105235764874582747056226153599647693432369864067426819684947089248977077002441632654616644439131957572289788307840625652778872975548359600344820973259646144482709728702330395040017744892323677020896339901068786680356781318967540142200768057050290275482999825672186441536167276821005196873632722953577367345178360985568165711422857289214030642062493495154073098075994093385703529514942863003622228747502329058277226940309990345664474840221441784510338989626738428996752723911961542356740524533277516319528538742040200923594461929085799046843176471903750426492071948654092162857187599559935536659633372007658364146585226090569532105392932201957395025394435348289899740550263919388527882764294900557057568500710637811243491305459804306757712398192172262333605605343351660055377803034837431643556642512888906665822742031212939821651089701926151339404804575948033727837793909471587794091116269532717802563610475871295855411806944996504875007553507116237254665096335381226720933029229887717031229008349333535299524795741345750882105934640047394865567196837830053071810094417791780866828139721136545921842679716142925501316105775236719192859549793700848019653666185612474256318826502282333547893129107821923477459140758107069138309930349518517364112003559074738031637684419841602194971156954968677947221517246100295072401441661332956245251053076236232174327005493886754029367760662240263740696231689495739232752851997435394480831828876168014179743731640436773403344752692855351301714851473419904351608242618537845845663380974230260184507860487640729449714563164717070858220265681337271062962933361963307967315655595402630040605447389552245047911488960856586918824563911621614210356213451749118738409007714896133347673107588104129562623219441606285752417703388432403346934499088135899756452301116698140457418473059112837325998902389665496504155865466367521830868474680376511760491278786594634026184856309666116211667385982619995711872116623762306825658123079123402928327289169588349705809393058877395695862087329395116363338090326981672618464722759474908634237875155552345820082909080200836108526614222112448469055111411169004696535826118442702429124598055077460090508536146471619935109914096667582540798808500316045966146292288469135212618276461127939681704624507237661502502446914853517501288635654079493845812339932625489002132549107018582052559102486092731361140743734357651464523286662597524177301452558968315999340747677294204789503497651703804105066142776981953378581923465674783859257599391103244338539540613425332555202936800773783878296185793272964027167032631382180853125254721158071576670385157576246615558241645015176882230079311770802426454986512558226414599367284846212648539254969828484471938698444598041197841917117875209752011428061610030015923053402426450859738585226068273200490248779482725827233053497756801672094886230277681693363029046507913956302385119364101066636921128721316130739480888760533085894549811008828710849690408770821026856939575322473538189170207920439807426440272520215939882352123124995465646664119089367486401826849017150480937457832008762321501591148296712740891534796840885473839510794078105874852547269799525521676566120601826438306353230383023110226760520617826557587246080160503627929435634161828369523879692473297524503460650230084251981087977627802933172314854835898133057602083722977238558360370917962421996997137883229550362465696575267337417859265788709498918442699519344238012919007749016147043334669776619916478375565384320229458491140307969709957499289267606595594996827059163446386175088830255265448005426884147885893372561411856564851772666207724858424852423539752968382645303622164272914914109179706189434598655477826423098109953970403712819634102628846122314493621359205329821116347059601375762263100485547080098037606201303096894478043068291117695576542015566082945342111462428041776341226763517283306088267320932489293446826365714467188907018678261696533145566731334211288809571566199373545553565866696772949215397089584635656012602052105704915508557564067265677207466577737454064019859355669369785870920049193179392511793395130455621563397757393433112003104969003884540317835311009105065835104108408535570175733021095744018806189215398931770768414527947870735997642399676634228993916175882360160240035564147662271011991111057497807863799239088467750186998415346325007452768631013356415109777354376132943253540969045122316112234408921280290309176024498151031516330631107822871380565083326678535930388897025190404768579919083201335039922200194319349332003302767583485923020272948967432061260668896735905425345515955558176022832563792121870911878042301343478068604487096135470777728990898738858199202955003164725823327241232043894742383140069488055638039843431817163483231285757307837694768052766895716110332865968353913667566295160727698379237554002286506239675445282797488497050622370476379965287813782704087642174062701782801746382691290754269179721972977811099481602349249406915781396498930455810011728159042035179573282161438859338903218877717271455393762388134441396372498419220830525934716161624419161116708868391262336416021901932617776327194601840636043829289605292548168419755146024474692899769193092051368282804510599747685853659421681352122913763541862259505616787338894410768590614525788898624478049225870846606057655030635290885562060784572235429361340353567534267041727803330580440976854484635008355086274916099008300839678717665469757689505688909354899505186164028762152438481496460738712146477583157213016223161854714462627859980696813353225463736944486770088473393554317442998510506319619466933111666525756294835550855945556516561309117496205203371358147312427468301791212107375004695728324579874669808013962548037382821021268619773457381397685465127806126991352911911588564776169631219031990041356324694860258965688389037350869412598459760628252527703803955599158712784981407066797470176106123627047670982064290274680667715903865125524360218975094287685430269146385863020674586474197907539342232106353923830466201127110115202134649785756900473858314417247448250428876127225662167384373305910345508923629211443433981950217582162970680410636285664405188894101519992502113625370456442863242619463043972848174203352645547779873649710701342844822577176542290030717616286190291079761830824111341499861689856067114957205025476705067580005390970489819788846662272824013410176821138895770033218158632286942239190621860121366260914377233261870213372953435757062403685188828520359169849766306894197371467790265785288829928369596218398346102470987770021822875712472361131525209528914424599938886458517574972843555926655611416547511990179094759669211088148090570146035910421582889002183341544892094205339308356084325721339979284559505713371844753258192279976345770416199501709514525220278952375045049197287322115351805868608715255925791199550325310476750946806313443144118252320421690138630891771199477447883970907000839154175731837017112149648246574951864154372488781429542810574322702602540863232936825512141109395806254369610136612275253125818150846820465491342482701759977960056658410548632830769755223781032931742587106404492904142198298622312143098584597341930322651008567662771347384903960042518906074619117048130048877418797140401651825644604172975136719686258439389416537815352389384734404825407571747536992309106915510943354809901137217697082403182363032346874101644321915154694376486030389673092669973704069763993750163374688980304820494602781765210005122633048470945501139648467085685806435225564499892202808751169801058699736725925502014072949691666206985325340426789156913520333581281056751474784548811236620158235281408907425472131158827360063285830886494692326419698698023249337711600147999072304895701468380392098938644335314824215910825559000633757529630408144493657370746462377113433864122861794399918769053974197908658868932480174295116944458268323422002516616034300947132903468166248126843878931764665629449722579090150704623588627354134048258689836231809653900227665692212860037021159021353035855498116266817148387881107443371581296761749770663818005746166689340400786562933212709580126745642800450642693877422319392710156267398429369812822322903399770624469493331189577497895176440709957204034575606908781352056451035399074972251796474236301229388569501244062247409858866976598233943318953707132422901153192077128110994796310356490380926032562450112137349614712170839878753908488471015235909785464512888973030079731670700974910844554918925023396512981416359178256591565788223999017584949569801147417661912654537307441884710313612356979353724519956162315384866758436299558939256436741915421299418096106117703042234599462672603034129743616549672286136996890734468375522123383708998622895855269136970799215146268136978028254898753887248394379157037985441985069207621738717332322526320306550832982406985808060337114226847905763797044415860457876238898642068101168855593891434284323379306799164991665565000651146552434960784665244197347011667868778947965787923001395907072984148770701487998382535673607200753233436704858637737908839167295628582982275752496550099914495890707029286375187865726347015084166607577785944438636716357615764403301864236720492152229849705485538704855113444165371390150753138622357697308632964291121086204250758691775318232884825198760517001853580990608357617007639039150069520599211906117026794317506218517077145107101690281646957333488522848486371377980498672073826643319537904668549845710173868015139850888397205642185274842193859858443689974608815728552466939170274563778763341007073174150524400091403308097564080515160078155614288955968732592471795553168549826593022004778789931807398854741511813302738213166280852081373677223666500819259634513169768436619780484590404141707948867830823957340910834591712924477457131499795009793350449830953533767854642742220224039470473969867203069988865351142627940433433929413046277088262511184722777025033698120675583632560484892066080801441390219126424932591169770437871309614182582447362042781738754382051787747838977771561000179015140198809074931034617576919249024387452441849837581121201027020431034543711547556430151189892140780146752487403200202695292795335402981720080026874336278704873905810090267006271675365509082184345941415937798164569984125714913397085387303595679350001653836109792620560288145106158903009615249593187978867875878682713953795454176426759959305875667070555902935513784568260553915386532508516985682233155490879689435586761134947246346285515521133426112692348653481981278548889403764049661899877118884297228449417462738912137264088811507587317620786831698284801838590656714314080754221019719465721583785479667462889833260826014850670627007832991664832326382845399864043056628166831290022451276352726111239244866603993126625387207725967889193909078619191753349257256182200210264174272227414174821460910128804894647505925917515999335511548965499827617769256306914737750161267343158762142944614493450539101085362934710217421702245857475828968285688522834374819306609047512075801508142041058127253123657069531048455329722995307795429290687892052091538611332883356195282303874577030801906381424725559916497826141105984211514976369805375036809212650598973543790957890977558298424564110823210505170493523195858707079781403460096516428989048616060293816302544866568654233435733868360824544353415919095354018281384846304347717115865992797410598183855222404204807815081473425171532007818453852814112880630529610071186866417070989668300389578327338423344188454452551764235624480126644832622629240770567474766949678887322839880972603569852908427575132461586088971941097644789066937718934423215420988279392304531710999912858579174511410200241228319027596786646326156942258235896483331936960200888924801536546356516807823758917569098035550596721528971212876410075910528702578695626719700686884032673220217949266665842314503463205703244013227071742038359525041556970675084197942066075806290954836286581106953137549895973574864689638533717834785571892727174907510501276475685203014113950343633108515800075470651105183057353278894449477882690603433488456930642308641422858794485859294439228002815246669993329541242645722495552575947382951930173970084960874766558477105019174793344023679101503338339240018359489506001078690885632597506961485439774240640234001070714873160191806101203453232296129422947339989365363655662242444800624918023051421821752099305369262492056739756869905817921094487656452116630764148597083802124265859197771116526766974276220511532513628324343299871190849355871209474362737304843387862390272216425537193682100524144047312881892172215098492304724567205910606295287004877215136669577855976763007773365773274463953135860642823330661860514073469588762459802087696363079169128804812438616044759170248260759222975152571284580017303659369876478705818259581896785576400694343351776195978059629675197586068229425263617079337221909320918043609311342881869170774067178722616865829323083203063709581730389256011820794365052177804327331219539660252411200247197668089843273483423715799688824618365375616803308848904984132590959724337089527111629722958630938301118423673392852732122226260644143902018699762924007594407540957305767792462369965144229773502564417731246232787118031977601944601744194140252999413743598833071985949474852477357642359048064863103731234898334728539719490874378156360495270565215727411576532107619230250882642339497621006119866252789777434378437606438373685324585630808726073860290787301164895857829092644513828938783789312486606803231970922554788808910902089836247459538620011773240460994071158006469486168326500722291462762497367760262800183648559543855338359251015521055994782576607022579799193223841019174440418444509711548280164753216350142846977974830901855748872991879082030134947492660909763731705142938919622095440711393152455076980147630621093868713756662923087094129559837209872007763204307913107377323913312980577245148749891544919959757610942721104394175485900806211908114361906438527796482243555342199294162150449129556987395900852876867666157650610274003525284866753006761068304032729504949478242508443380619869657619740720197677890850538170284072754552047844083358534312138147165744843240053134580653758960654856612409621967842260522599046939708765501648708481967016297199043602022541015267233855294785600354331073184287470813412964178719749799217672117012640491020625124951646604208620362261204473270708119437617612710907203350957098642053331180136531421584630924531306538873170605570839065395140671604059026133318059054121458519498022041026222332678063851437130525925026929373059332487985470920076049153319669929250960612393622820508944629374288034925078790569468900008262941415686019811760713401433755717028688788042172448488104209851005196178395173560396717065232997527090906847838248164604490424702568691557979332291664340349820732717197998527273699771371439819456462717354290236184902591204628085351942861978791145052351960365115524429034265795951790215666295061978706037734061364353245716594337931046358001968658380743943224252431027067097899730735528910994115254665525985471556648082606357993414096639856392426661712228004806535938005666580120444389971391531512843860222275034237495680920926617059330284749844508552423865191080388137882566485387393330143850574945023014637763023281814953005645821200410139098703892010059238802390427796684373350995268397867953817899572284299815415127023236231186360053558601502928708023695819819491649659148656288050162777754312881741598095216147129950738920338351208630990136802316508346579089977732391818912645760502501895487579030820917708330108066140496472356718749944720094953206717298932416411015945144062676571392214321209760788797360696424055524869046382333055245885960888008231433765676958144632301492739284739831001344510728605326721970378994613600178789424662869527157856901358870936236970999078175849189771724373871411994928525810860689400177154870833577655776802922812763777610410343637661724343241527270974703883738221404681435938026767267046391465582948847441707512846155983084878946221448426107625964376511843634288699855409302371266639579445804214318441270338645935400420738447449633734650081674237333971687663252997793965774956581503958907248920593008813626602194521881962785310958782263569708605334697418547373372771084713461651258745784699318994993129029917665598056814288473486418641336159927344978481010569436547959287928748107087717023231663536298326691083979486794194629883566233426707749305867766337629038917148333200812057583275151540960048511399679392596846651898645266672174321054897325373714620997408427051340137928804347978842441459432611596925696911566314703064278535984152794767605322683607279871775050347494426243193412165542451548352283376786906308105119672691380895046899010580753069841306943399079055622871631360544358695943836014849004546808163798050311233878748204461444161110174807784822503808228956435264995995334575033363156462254352422723894363696592407540308930837042746290345381550577231033936200527971375871855161494733038325837510980540571680145950259739611023579288643826177861434403750124973163149488019449452154488643687152455816787446466386614120606170496773763003863348052582506218252553133267496310886875435281184659444106501993803233858876655540230355934111719331279367498656290790629760707853646800910933390866352881648942587990500796353977591520456078425938158308743117092603231676421519919694443706782177583422343765976178944126567897703184838238809209767815146672475027808027286139473592102089878573780243768176105907451344546827322880888050161145725205517826653589304873336029982858025385689558922494217619315953638433782109700189206764442225962832471705098306409493189347507136361097155460679364826988512737819162204531200660071787070749379295388298768253389573132638688899855199747454005885920898402381537724870501992756076677219652997316154176859276312888586140442826417951340274315642643218350582290894945923182704248763008560092950266896369689351650894286908548284658949499377883910025569345453469386340659317696714131718580176019543315072107132927796344345307634198687390387203035019509671509552262353862120005941320702506131552748911052420675067448419886323763983668305521556697938490382817588612450590861085315150692054068631767705257021035543376230013863750026219669235322652195287242913270672847897934832862821533360014750007922466691856209901134743383610758058537394716066635578124573461900446143678999716222179555599728810653301721999183734882332248629405744236714624141414582079407326800627843999053317708591228004619534989009580743199759915380763980986797806184443875851081434908297257133505262149186697075364870282045641406743702306788098321912988049420165581882537132627161311132868162529483147160224762804742247500823576502953454730707473539350174287293136541122407170486845694168908647247070451773688856245516510657738123864961629417508025198811557019736517598359214004759619532946088824625311814279754641429420703340489492229070314696224241603846306686933090341468294440586112849560892240098614357259440786140344998589499076190694245758973460892701015799521877420440222731314984333986639484788773340042924952156680057132160811904516788224767236648533904709838455239117126253945938960645237246828361877795901205120426655807026449934573652538118833044669308117304715019028043352917720467981765148872899257999782330129617634356730707164818982586909551607998145291162800507151685250738719940560978132928487603863574249952083867904038172605681228473579491057951452153703373484651564846115917764719858189869317742302932159975515041554360416217526532065990610540420968976729050773290462787513977672101654494042557156720733010813495106573127873409065133883168365564241403529464090763373523077090878244627589204982678943969580090793660435855212845520749487991863522391041306188466834688030835381948175155535656326200383776811971374151958753505163409570291899277809311012782727598678881125854752814418342511759087100645281511889340876903659441829759110554799129207349589778187330313436966703862024456661769128511649024229309031548254529997857175246799014597429354948005003918063410373031120627215217411701483523309403691978313555237077409798684087879235872564518159554086255851019769585083985344054785874040911570566289983447639349251735427451891548513675647517321167698561662757113471722305810944230568152635111057450560847435544838877670618947054068892372394702108286440146353122712613639468465195823315491567867165087479127410641778951672020146512646929627784598407583845302479733782134436623845204994673439863849098612549639569315106074822219751542578527530002841779647601366093236211432086006249971880413984477487120146547462826579566366841564670691823640567714554578253502730997354791456645253360189133958026117062525474998433921096084602012756786058845905154788137246051290728947534736990932210067592135533818307555441969918662072704161284280293190089174394257531048946214188834484181894396343133986306868511590655464753477824307661410761115102312487800910266223753233124645831914989203519324254592892725367848748446973056870705031873342850678715546247375768436231393873001910399092152455640276243901533328206512394275639490099111020486444464190894201378911279865712889930185656868733794037225881874486389010758420836543429912087002519757251924873351421653442375401181878974168117695754704156520692348470889696140842759790089339023474639562240903768565312839771050009947408894680078244747320851443634339135680881902596621622002989774245703421802557399330309364733984340808763812247829503249447716001353970591157981699299098232007431239426203608923344171175515617095952705718538782639779297731934292454993503504798774213302398564524935656385762130586434638276077825670657102433122594416476774634241056725319660291247603620900829083037178282292381792004979637388603912795539370454953958047492591012103807433649922718057087661747167826209965111549998525258090982423960605701877401870541280635238517605038672687694502231526977416050926701085644564005373893743413897772754931044603370540892222059035378024852268145703568075867932020460048263031812701983377797119692214756713867502465414034457491282431764268615055709743987825493961904452325918702257864112518571780939935982941155710080978161831974218115029597878237979929280830893740877239541865018325614294912967139355107578169835194510413551124849077417942041864038943457317428909365058606307503102342083585293531231482321985517975908365779815830371964280867901074973229486880049455320169270553549759389584336301503938910448907964057870626298742873267584604874816681636130494769570467600988066783888069044477054506598003731638832026375183234032711446005884350913987186636210077898688573335348361276884549997845676534972401003525543010999835982486336844172062888810119289238503454137272380321952779786153319768079739581447842394863638047072220469544363285623260993099017849963910612706041145537609700168365069096920584940684448697413628614642205511405476966850910423287370112536906227157918282735672684177966320971462123189512327557156802811577298479937954128991031670184406560420369963294317449358683439972429923324224520531263186360616916608607427726909810910144560190800692329336124906296694606862087999311070894078328982935039967390351833560432374673860265640772781228070896299167781860400453557840970327036041511312768133790584359773453081209572042213553706611844493003179863220184299037845497568134272742422593265444568488138707349934126448021530590089269812267237238547981365920028314167744237063070205773278067576210543061217000598589713987146608103175145343061977753210753755680307234281668548277173203511679884438147053499818420438359246887405760353403148490893774423967880526343192854568952107491837861043382687617032783452190208212522623019014915337287005864745760236844722430430000307388148410311597596300402731904807337744838782126214247868824706323359634922128978808626465039698011436471437450904276729887724116235929392306983728727295608608517384803987507485481278855372158623079733973777455039051692972132153586264045044328880119439498035955504146882077114864656992547850069228110261046486681499458609162201924793447190039321955061543809587752280525629085181735407781612861608171535573551622809057723479898760825760400744970025946269782149161637241377491164906409514125703288619025844260883052248378701214862727661347732848864873181586437094785073381494500375528596031511720307890170517329461248471473556103629958538860964316321953699479949487619978364789585392499741381524445916563381166998703130767029782038836646094325030995774612481846055405770628948407939968526587573373405311934004580482648389554553838362559296533966202817699092239148479734840969584252003501938603001021585003504424414674242263067034325454576784969701093340442445029219162802962816025087096774856135804188686658158013540230875696368734590988258448180725628727328944581258474083435428895169671734993392497196969297270719970058900507325213034644937127289659894836124034389680545462160528444850318158300211808835974826723828714287746118154534891588862852724530337085622885945854002369032247124270941947436513511997385262220245224415496235683057796342162643489967515120135554118198233669443535439215152652219509858847698558895902481391942214184426365562243923709250209437697814663281994038351782635146460786079521884569733463035796441864342395311250907881321655126813724872468222518000772645958939601531700400445285599523937209215900160468984390577249852888058030440994622456352590911554665098164742722206694949092460670407939285359369668835365430841107158531593015658750091049143032139325177413189039433848532161746623846813135404885514313905332955118143113985175304282352608795680552252516362047422021996635871363291032876828576006812521160831764766924215408183665325467639891819286398625016841407635624317233248007692240191772949082442945685548889305523911161842390176900071989769659332692649222801840854683928677845883617040250673031239995097898323662501601790088852062065326382161936161191054597594842357904427249625517962491799525797875467129671302109882448927716524533835272236437909910128487049830974493754403228386781890655657407396808128006645891194115961519702882155959027949581212520188927023722370868885063831299080057982278084922335742156688599953435735156427534707497812318746854274562195904674194684250707475626111187224184887414928989339869993478458413189304698002681122061109325925298669759513732948001372024797832582810306313421177599339998644639664425247038286189678380452324986499556738664227949790341262407496966236075818564149816697360105603432192998965810862564581874253207958523067525365370368067332614001369316323924561657015333634159630869258335789014660477619183242290571485161110895924030087776749668356165118186906511990505214930321818397122180300043432500351098313669785482338595624262599653360741783326428226260763255276518782095484410364070703024713745214629229930463623843826719422341386173324922933618189981028613716532450795840406850960871437808299147646845976146969339643067048457321771560169305805389932670424480911975058258381203908896055381916101148273363810548252831302706385525871069925488791745545027765785756404404789383645455130071772471681953748677915056085629092164707302655834655593228102289358915950523981055455408928908164376699635875076389730271532687690167873253914260013560240162570657458755478552548582556071425797058182295897786926574190023109253826017847537185126690063376207161121128858381342049481370610298631512316794315298176198737265207385548214758085598697243949676044408123300042431097366978509925970014184994320468700090367357782390017454529671235008488339819377325927464537556482386754996366574829986236908982412556624113497499302096695828625350039470240869265681567160000261016772021886316210968163984598187051166748060246720516322510131699067278401395246632446109642764205770132395113035124169508777843307639503169529398461860369908769438931264140779712986975263276079906419606124437397711868530193708196431846304701253716162352700142627835137463879921056991717868507000173142589330165062510656844804565376733859711762519293965200288888811543494363008678022201605915547375700346840354396143945890127394239950649356082727298038008754911519809913339524606654820492153017697586768190581343991289951062380202969945193929837255591484209447065277055877383431583193821017845614033918773071188470061989993737705118407189095164137232565579902441773572246954839494057940653653268224726688156559548556871549801886905920925987164490077788014495058233035488867272872625939060648769056863392347288823379101562872558485939678410984411060798505769208820528174704367471382665771619518497941050375276943878789716347645406869896528160898182926507560802064599445264341774975952520198370872147406143934024954030672277346633788096134971508053989714115625170283142271077871668404317819812995729942447441591534209295000148951303212032355843306821851909252813090399695491152261222277753870898046648267144008133958935581723914951695900424335926265356009482925888139276022108752429931403840707342742929400215946805375560449765485698914361647723390626962487990376456233794258582655115333905166706281909202554625972440581059657429830923746388557304320685722907229296324926918564878063835820524280563290592836982264791738963483974395986483545652219690493017726912857009097044469068019860420597587107079088695847322716674457561692060955199489935402943910354360762954261802539714890725952658659006837062759951853092853939074935117075627307674403613723048886408177541061055439190940713425659728797653786515491826557011779765314569779808268725840886014294262807548750082749436171252778655108411344220780796080013077019583205688984750935208257205006420037037358024806899046528530451100655402166777887482168016765878372244097223231906845553151434004480327918558777005040669503535152093668589714996106188088733607211064257545542763995225080550830451018615023703442985466081937502300880688136227420339923271969371824199063276935635666740133345869167864383202718354506557334573321952723564505302212343133059105892898836670122932630415509620314220242085202396750537891130412137104328080557844163290477080321737351052127637602220044905648150081239104734315534723414460348244601134296186091099508694982254348777543220107250071522181061834194310313472492241031550095116490277550538953505206807976802552008749142879780699727149092584875780980547516893904549653929780455331724552929202924961204417793282475580595321976450305554428870564379528409409027892856133486069179031006859354149867365264741312490406331196559205587403293927128574600333999726472186569557273963338991827174318510171901821787632780334820500071244266446686919643221183776884184912195203619120857857033383332942376143175981506281338987319811456309066802151940174599464175453442476859920707262405934688948586474715894846380988996578723744609205707376714865745599392412768043225984079305977274494513434999869170162197449989540493487451335724804548875190274916248652638360133964972600114622355442857230956769574421866534904105367994934714442551923118839602579156898636364697963906982837720980668567620251365292082635512848078960606104436726580124992773021316173828136576948292793599305682202526035984775829547520953554903266187167557909570471817527335973432704988901853463357763041430366797924489024032298156765261250512649079105085489047850291513989715299671847273825349704269761629451413643685053754299165415483682861106217294403900214929049889503428695984647591743697038032167693399476505339823678853809404740417950718058905112623029207446842855841866360586163781677874729272894054497029055510009359189405180028952581035609537781165318664128651466149685603850851210729879145868299072051792608038552193973443575902453526832471498902800826884887978188578659759865824305593647166079751137267036163394038022253177242273339515610180503492152151237658193135224227806406142317751218523014500328491954832781388902802905086902391634543891597304501687768959383476748468547441104255470952289609000219766367753367405070515252581833969482646972443435384548289083174365366588460952969090122715288600884562398164106295941879444232214515060674746820872926443248074869803132310327370546151908348972806992570626836957073383728383801003769679130560267530994634695536515548781239244798709620552871004191194607140047975574057214491544007667934833618585187428874318580949203679463937494508683650728748955924969957761951767699631151429115578265951051072727085348216049484667013624673229348866034719510306496633541270421691148455411793958156405394135016863403284261535454890950460744447661570054133860445193352232733832895461569286976286532425453386105621809653594282443832086251694011398280774003587896338726300270777643518084150456362518023669636593424530020730113864034639624564464993988386713918050319484856781065959239692152894452470722529771139458266284819965884475284322180938730138603440468380271507519905596937861326332004557402015309312594046551117501944917526415213075693239600360249241036124097441174114542762654430894421039443180553354000259396833355089692665194185062299483468182145778877968699236575301604418018576743974912983533290387285912803121335115453440655084504657112763562131385227788621248088161287184129766922556009172518982104389856939549393341629061610927723300999392534234750380631808566124898410035128519111510614816802240960702471492457528817667940411279974110824047994055659154317550439701960461724879057022880710953254565394161293674778386730051169492671501489010242086829015075886395036494109001145145568075609258366914827147249276728321551412223945548993386561461513091602880530316733261283081163942898419359682472028794307682783482631049749846851466782971824586102190444925644048848435547033114937543252652701819079072580492759448301058060045314177980459549197250974044204496011077401305672110337300038703482744069499816095188418999794430729910891618922841749835230924413031285143976859748800286169300315830871122647794960370428013627529532302187241259297302566006975487259968941284594921818236529556789217271731360426629141583946755580945624488571784473649314848360689733041304070068751018262855666952013840187899774786244549514867950539158695851258118402656335138295129632031390641960440985048986696259642914697967164446452529909638938727761345218350424256428400898899899832752530350462782419346595946182479042383950368106736308440174720321413234185345208064513093715789994303498738859397140488344491489817836412063244660694308479506259890087149133500930562421779476180446654007554875901489428768838847262493872894945619709463069342649607063150090189261136224058238507563082993620557408392044484156834649464584434483229482769441646904616190834836730782049623748633858269122169879938246603534312546295220199516650918423802949801727272919640197961549607252808836583280761162635246094600625347581954013842872513666405599052885942837726146564811513831489701125183540627227685687950167573175066498888580997275951251089538386718522374701343583148805552573478007487373703364849764676721341521846378269170781258989265669304881362772483181495787055710452869535343772625989459594282048941295656228797460904539662645096962454927552665921257421218232154766681590949658829750405178030558267770284811394909864634560979586239059183417969942998085212618687991045512703726148803532906296877325691639375793389561335313568117674573753310816626731978361127165136848134071624274513212678977269683664520097191709882458440634184583378324045415927630699016769736159378081066614144997143344659966350055863380688416922871867278238266611329694298779306813878291884370480493168938585036126111644528641649780521462435863160091101949282917724749916771930374095448352322891010693064623355249481717655362865607966101361746042441856701644865178500324572969881528554949487085893733450393114680004374362279284103697610955801234586117054340090505281404079380864835516529655083090702800495594233523493312598131164846181786878460286612382409049221448463615277449015097010750332994899332255569413613567819961802232964767389619301416967584380497743842033600334229637603937003397196650130246119388325373954808861636373218659894412309044500797435214501280546331638513600117761676289393271840858012200279851273225457655588252888076787952890273624737955989778674047208864803048845110352955197286740939711375800006560919308245310918786118910158812533547109786621702651802549856723982332769800767684243176524766547343364694624378409811697986436295511854483891947638588644449791648088584977993917272174318079482534999062136551486675586932333500217334570313206527439161347550128235019235793943835516515909414269689437090630858948732416987880725371958103081628963380930928877732699298847298174148043998356822952843761298584996455370608496181040536177805438450332793021861146999230894405450097688254254924376357821009615033830697140681086178754975761281792492090991918765285592993837808565920154332852182697203439322456957545995101741385740035341977859416016420744094359607816476404699630440688633592429598964593949382136448427518658278917112177213422146771098405918979681807953587243225498556598848488364789727145419242082278432802927569243078281005356760911393858105143897652900054412670583306991639057066796346766801152422972903176217314802571961897563805128452235040998238951171707764846327930924510109166652196877411375190897733553067017632041473497226033527521612117770783275845447358203752654419038000098128179773336711024899996171576662221771020984729535626666148532330295052018062356321086919464956119952128815889698083152719041856080269580283180245033741795513398820897159596093280484932347105556005569200590494273275784666004266904772036626044498248181523840139224585363719808825310946064640386368979401918863827698046503453188678017954233042368398656237668945629543102399208920727633572840198782749284746117838660318179201323944664563461852448434915127201745658598261135424194083890323428554264888690230674551783907817412015646351484588179669403849127712604996841727002961653103215889931545605859811730438958766514079534348847218604468678668022334264184230563560907213028915095272270784293481604767555387525812622274561328647192163638594236122808191783935747394820900339896791459368543305379254996307607595936437345389773833005478922458951008826651380358330743710609313154020237626592865837133104859787971140721218682914875311590815124786553024499144422980653903410004071702752278050419346543077852671656330403825383967206297917951050744434956806625516864461958970010020707920440009714850983243215512406078864689014057802614006939279137896641259365975593624300628183010370583709860450083870320262580807822439237601652327257341541954233272318864552977113064530571348861388648111943471941067788031802367987384735058532647927839244558523269530458842703918101089199390196164747116274191586307937891522615370558885266465721434637664258409526608639469222763687802055746464528830635618973500181269808807589248541019409811539542168551746583201905760300579395556466835440900664316644276554653600910871784347041208961361572183118804970400557954826918251913831516671330996152309699486839498580079801803254999662811325207728379883069223350719840969557176578072350635362229397203129789011551318695834813462731826112063074932373015566832550597208431006957534208399768463563267301366743602602353951787936953972995159014923137483356370865912860748401369160551206513157864381144638493842577325167156772131961028280445541041715917778605092589847106705453090858431962077077464186296446344604845471724844424058422455070411321027455173092576700490425216273024894837650350193833633342639461179241708684141776669315288718069230245834614776664600138613837029434763378298033605961328655953640173063260934327411131344142546825392467300676148095705881906823772921569779546767352021799396670064364982938556252543257150022608870911810803801916427401317815199064267564789301281719128549616587716990985599007539991793739363678270883121301080617197627912756917785786942024912722702538466460412219500795811829104773448196482005170528480963622137647975199617688651946097516365825775613128291340864815011087882448914293627000299769544588785493370991746374599250058406020689219601945034602249305370305645458198008930632091659200310982120978420788411278514982942471697230069619879208824181451612125047851017892532767497187950012157572837025922282175880156504795707610567244921733378049980706519810688266702608841715142605305693284654402517776651963937593821940689018030836361971590410531518689597850110852870746988510476336456667300791309272963271954293067945638131370963269281293943541311523990218200794916650740644245831789755424444449878339347220723883788849572253417973067266775903284412223242360715429181334011689465302105709085632597472653614923836486728455480031800739983475870473566739779840990160255635179452108217646922203456340764521766075370571665725779556123776288895468732971317207323817741153266608027883829060048987004236822612883807108539802213900780556859190044194027866497773453287770241039949094075853672666604996450960764763564522185336848596235275450760781645453427242283417691801949926572786788896256553748098694559382231278884691211549007705893159909017363795149441153406384701383076371548000670275239366344504300181128657454457144588512299406330613076730240562658407336597658708755993462026464359994340867605912294770883444122345520458925517585741748300684799023152426866613268751525554922779899277267104649339236146239435924466705167787740394990480594833369229213881800624340990949488169118658027907557231067892619404347429113435954602475417111257762290878116856137899396239436485232078943307882927879499931244219893426761731954422391966503934177799606115011282677356360648154773210615984069614009600399325762568537488012395223739885310746884482352482333373927145871146692600512136349249618903132872464751030212219597874994094717364355372404386167560821164743198765796066337653583551113546530300473785034263433267442315277737908050842016438565268763461176958813120282297881994309072860512486632901775852725299603860382676661997248996753589949424923377645250449018803820570387464330436540815110265734459037032440799580747959823354759241889118840789406715360909809352302697583941669172930815049736744779853440088127171975824714649286307439953131523777958958913592020653711432250146334410787748560249023893381212510368448641070972055066872792859055880049977210881880577110609777912568911912096065309414361668863536905082010450822070810564764552974406585375872941350380710806095466977355641566298804301542710288728815430488404385337984577255393095660237347972809477957572467197204017600218504388147644562951756368361804751565795242478077832672739873721376392553629313353699332572097956201311914515351594927824260280203051321138575796158327868231022806634471074048471203097789496653151620157759419675799721654255968985396745601204172233265812389973692351354132780340339950477421361064979439626615391172344033566802967591589305565931845811397074771877473972686251719073603038518604316016552782394806351367233247270169491895138120615728867998087127533780998966339454911632841492939070593898881953390420045651949441221896613693514517583969787132845199143493281682019197228970846862573496261575290476553660829103569925206440188107240742947304049646938754156472337554595328922273321351575113986324373488821068318161081109304460221526668773096014720539170870129440877934304717873561711951625367141605498164807780796617579200252339068241958544634350852510889565858857719288803407391591707409022646044386466689198239572144918914119003025304439772531931204976176536742616459720619918272412554316055961947083693441428533059620127123543117986934641333696588322414115221878349405436757832738050593415564474647018670021971642545797088157325397413316830881181925771352436158695153992960278314727444487436725512931967968199793408746492017074132612386335216984031940277861917476083591931001881343960569121881042362738403752930259108277768470934719564181311211445196906392105940192773406258197454013927087279409529820623658845961399167977967492133333545750425769133550374961114819077282854740766219574114799010012602530712210213400647345851505542949449513406371362876991180670635303234618735665678873720232038938825483051806705373190775633840873355641733114611459480385732568664140684874936214243967712928014884804734674007019094348596690516465279713500723849861885451761093092945001745362847777458680826850631292774776072536915169465638959248898358532440528175232924946967277990484971510790925842678310404770991274281870242125690657798641361030416403210955961011747708476402264981575110389167604755781277586241041882982353901693165289098684622782705246378390981859103467587240957346923192554131768959404501928228130794672676206680189501279445703251727755181738391076528058644775073757545359827938701161087793180113573139950774393531329504696544527355933351281416224740183640355121724451211709207931963861072284741201237437143746583231873433716570943800465853342798049958054940160592404473541916239786504679890513434263385389143189966327410712128872661281307926211359813422378020219431272764183937128485767211032891962806311146057173517859138511954211394141892386237415318318928983690511232644058420968070636320865131536838882231137206856610317382871651565896003494424615664457271640378236649899596840702422193345738360153758671001904111768581760258390386015242411194266647417427381469952559412439688360763457585357506283918702476465354844645818569701379320833554384717876075764105720454387003970639883823907792557535433616902784774147200002703825349282954614132932494769894148300635054582281184781765140456153211435188422106265041055109196057953469052431730632591313939625813081272210634443244363490422062883897542995572479052799188809352944720619756413558065273934307061023553734294351288460276503957823530375419097142114419230339248363424709626429573576535563234676449611394676825656659115197680038847527793545129196367152927689474719727467340519036761514135037496173671646971247239483136371472062930362343220913283218443751676323276375166067293672880347828134475536759015311453322320619496815103348218758665917495555549568365824924817496737681880096193540124498673352231191550888826639058369855243736857737957470281219878837078234175254686108712487595921604732373651633698403210947906782442433550970977365429784725411208524932662208247090607421527492040242127242164068726462469685453116972487079596555273365929612679488702543388581889957931747262549491158596278049268231993123371778795255887525197997841764822160470980593721909468608726368615599631083182492235191649978076309852511094270355075287270999165964813375912440759858677283488951680093680251535135816937449119698992514948339931262398207231967315244564221181044231880171332032377601562411920209873533560487261176779789164332751010503820820382074872886048743015477137147312761394593023418635423866413610204618013298514766021468027787496270145476296891699425057909024316592091658785087228748336348116745442740571069972200328088825148480452511810926149367804927001925283890527343836694817037155835046991856493240756134602615326944903208605230311534866050447414342094664409268772189445937489050300690978137421803823984178415003744890117171956225532731709947313749260981456184391807435139468471741169274605374732340994671132123541332201428310370371291961177765576657631798513533195496235244127775248863609948332303174066693997781663053021682371354480482809205432168322707726672946969053219208209644968783752649836994280689544857081129361657258620390702067652129748202960169664260129136132559922926801513155822348426946963014873314210091016862161110847005369854686832241627048734207526246604418952993143449326643211792998452502307111901834200688499405042151356511615331300108220873825480611273439724107836508737294556573738502767010112056064127445661552188709237431214266104821652126090542527486249892222303451251771493348580912355186048802587877243702142218956197850652811340600136939894664256479256384973657749487463745345881508984714493241005790309575920142731931772980419571333860720457593959545799764048973088594910772150076782647970329016339585730523323750588511192543433203844865464198125770509359774368093399702833004638360959690418086234885126502363853378883711218698666420867139794574961094142711568774421854257297229433615380798270989504871969418974989186414582098565510668012649471888199772246036862666971588340615296612248382052313063902218143602984658987187800634376601943987490405431014646621722666062259254412715856711944131617180062389099151848393571279819507039330930564903006027283166806580930260410066218797710928881529651509485525532879002683411195940517439983612561784419936457831308546312431686988077047389958031025846796555217139845067593135716254208407693374493216254519548284047222737164393366749607255282978054207802570313671601281330099250051694350411836224536762416630351386276070247862770223642388354857336816287207931963328677128290882598268801434378702240280312843155013110485845969892624053712537657723903436082714740856663281342077440373537521431282034008061499302446786483044377248813055309923538614324309517597541045017534719177957318302115362331021788663386635422424628318958577578674769947900339862786170885368598253467847567906852309494067031004899342929342911939522984206299612810348662976662749760179045068128730482181941208798495045039543367414229953798373635626503662116376773244404655932154940866280114230141996440410439729349874962475996907838078955456356532634829943146738166671471867953700614339265759390845766323719366648870577794009184233539086570121120496796730937537157586226599774081773618640686849258087287222611281673316256370341280209976250422365707101146308636859624463012406587939476449023394054173192972369320717317337224756700437672912706013466266792764609624889848455999678440940008043228905025108164860277175601728520165559844616191658981733345568426189379197921786704629335529911975706262395642146657692453063348577367671149004106375881093777111177868337090975256073347849026472702701542745200635180835984366737463086440271161624456565488804281703354171054395890504120750820254243086381975432875674754342757139043450908806222164307684134303907131245494602255112599083938530969512210231113412766114686220898092915916936824414698090000997817610418840634558939136362086546462631788179840382864181668955602494069475332601614719452928986132134691664074680440917148525554602218077122435668510639573938573465072829779813102166825590525224031985979938599564795655332543259012693507833173664805324646358072512329632265312499407146649506365340672214961038223732371090925674162611785314622764766868364853114892788625908950994626360370731023914662373361042710275732800190150643426464399974111691756040435573280003248564458220312887130606806583392994608058971467493204975597746828608247515772674183428157570264244390633466461223985040757821548132122286955840621846749657754958905044604620337780824362099653428205112317940380799014020554991590309202104193273857591208326493502526887988737520449018075849998791490432227187445459224692394783387579667968654407431070234818181798752362372185753515132467080871182659658454093281609044816130955250764623587095943859810733990249270414734252004558854739539113177845775572306126354230230200494519966005440605728926542890890953897047808074800835667975611156368769775910156595587007543448085714947781635793889617769169481185798789681488531069868952035939482948019186754938849978641869898057128092451922401456815219419754374599095193508928269634894501852005738467278196534556330340084497814347608238330288219855320015332534779367136214932786543780723834151763401199216848863407091663884278348526965666623608630020667140671329095921604463568296036099563198670572697799641768430349275144282079667893536321287956959021854226436428594521828938285322280912376612044101381190407468634967966921624917341975767492437518598727204268775688969168033380759972698539223885705860067888603761891405367323356342582053066856853862071315970078837940298523494099887422803432026963024515443322703512996899763693290766284849859889790875521264799994610549744693832113336495826801394700435356055834283768097681875193009324797266098453062707451546967235392548904350518382408367363251675393575769562410199348727703994967629656809863689121675969479566055740607945834603982475510890470036426827354918602840602079076269450980753737683717356148246391664780296415835748333053656419641873249170468553334448009741392858585150844798538138341161592033997824798504934099544866130837946664780124427138621853493982060593210569523438398043870637688416456842793975004004556293608981304596418543082792407684177463435751377889415204367198946653660062483767678783803914246377665353541429877104115277745052097407631255169468322785806270182641649595920537383877943765398488423202632971716306232262029215211049024530129932699034565701181876934465150831662141070154130210360340090232481117500775576079041847679048205375785721812107536612753439773259561649235163406322358323704730169246972429060390050068270301595912310011364452654739257192609521133049283175915242497640539969256769092375950313122148936276498660958700744340375964775373852382061767107324049792440287062323885194819367874567846106637853381506887035785403625710112406610174150551385957733991893385628662640755683517723341295515494742344909033139959782489025140238097486429977765146492246272873417198506780936698136911035760955465703019883835292138658824899855554127657262140875802946353760828726482667475401894869849519079209972874860507328252519034428669144998203675648975032366029316853649482029545127871872583578062805885831504625861176037515826077143272877343187344638531218150776607167976290751662757336434049265570460756208149132577691232693409054419831975154062383969318453840142529234143945039515974406224422609655050913806427158367709051197449532435027170894955085218003920679094830911323361962841091508432223210245409582893153439079551251341545006681680189232706917439946038264769882685381563617367714850136749531745999882857432151401895621375183219646873677468067214450276709505412322816454964079441039408381522442586491288701173523493486555807211872072549153391925596635751686998870654551866929147989611444554638613613228115561629388416138092956816526957930155284178284861272873232335006859022833686356386852640071342589324399730940784569670052120253408040385062363480703603478116590281696050745442818555903499510879921463426290013863770613242414705790690005755416645669439431274377307256790603462622829034861324464030142355861016150152668294594591485493730993713548850083097995490909982089605259454167634466538970006458240455607096615067301718660235163944565125088417557770368360005754466780722755265562431217940104846398781773129766348288400034392944154795339661085722179040050500587826401161958473607773336978954664504759453288505211003556463332063896670091969377432268790060823074952859266512704218270379186865065831675932584890569003146540898834142612036661991189333144024388913339137705590893448053690155577918380131385144084351145370408226853862312149455492364628149556067081127251187478445147005683545991186216907485840274193917386030735703225916072356235585552969448244845200758172832945005124358534675022575253766282007212851704879401675279035660204073295079632879594580868952860640768545094981717958925678744755384734579055515075527553742809755376502039841918089407809133058048944138351868666654611217070665571533339724204146001497759286586258099789123556813127939842304867392777774462201608945890876835009909784414575118849634565076698497227240049081122185971997063671749876021062340509748664965374942008172984783237892559408260645137843863391512349979598309485519425135328540503569066237288785972294303738321942454807336280957373144783772212791065079467554212628522680409823390217829042585706525781672264790730467675565149391892030705046577208789995078114632929001861085682861383784526907687294706918184478651319003907791147975780456341787454534618949617675442758709429771356567837617618014845193870773844916107742847692738656490587180897366388919807961143032545898540545875084626218727258010814737453136167857891157637152871311223220051699101782892665817934711685074427064257226997726541980111496134484270544822990374853871142405365740062010213758333543537798795471392694214494006158331628667016596218831244029218865838969876345596555479271657586317108875303814863549819997719789895613966827490227808360239400529163076459289915862036042416049086716384064503762886716993915157934689782411715812070141083296465079559238100381475893757147434343468594447363000078495954028000054270209802725532352915000996289403261329751749033574992499494728080366988405505646849971035475980416105091273646718668059102094414614390273883858433104448513652168249020493627384930914846255325665767551859471632329774165836439890632873722409996304740997256001838337770828204993207308282071341750624736755172870388861520667573633431374886647549655202966591896790753744574518319238556917808330553766507814328478693998388390013291138850296758866615652329581822796829006188163574343888084030151697942471722611142536359634218921065275738421923096516316128091245179283532222031683306707611908611717289770625300287536190274780984155964161356414007147096355173799588232911185765464593895496831429840827296165570739142372823044309482456454814387192499939432771951239654110455912265577198024015139042004185097627122998562161524651999572545413916392788670203791120089965833111442247913986715852421849896286833411161336170246929624772710732492058808550209905180245025600203391002575574411878522061277314222563855778854579333254409961184748599816926949632590255831991798456228499022701953574964750988279174782264172419342729289607966830944745706239546233647311633345585244914187702311158340929712973682861669707949923514819390603856376459530831584334287763893080741361016896874547652789282902409789382732747171609547230639934678708043779736655861868923734972886169626638551898038441002926939761030797934820229160241078455363455029111479722746027334635288409603817623042272465675496388493071018044268968104663787701910731288533193188575902071098760585903496269283716062786456041102061703717892015504771909843080159275652036693081253438034616982261374795975865144767836323790690427071202837679823371860764714564341553151059381835308520045785111258293907413786411420105405508076392641189441935117178655513167658185148537514275215307782713844655647258313437757950140690152742182861022457789283949806476288270202828874942383127575890420367888480841164101775691976318151286756566833766618131647303186160116371486627993396068672223189147102986366715221628372915302118717803125583582512785419188668125981821636760423836865551746411161273523447933318364980427760133136401321029120414653724041987656777235879240979962528116302698411663709912165362910805490619934491010778778297156940656348972555060652271770810807941197906151643297318055696573362608584549178016358306072374738669739448097215594884977018422514546524255812579060156909089076420864400141098306349068036522024844020180622140419167762602299846062490185224564500137279525414519357680334272231206659587038724141047121925453708229069883646716432929020805782826799086992552713328947614596727991988954722932860333816644873587998206569281966562415902459985496894818348899066319254977373793898878018011867769911107522761866414552957467997004316636816985078701173945560865159346210467296315198215000102581816050832964740779902690483004488905356086632214186970438364422655812731655747602418962152648961185345087437479908160085659595767780253726797366306827431831127415225437780773179394376714315881464604332700780036638920690143596421492833662698757946285086639383455126328430506424076121662244202094456406134333441742431903221728682567367392660405932933617728541600088552013971401926189183042118790656650835976918022997412284033298650027107421098793348854475384757288982963941966029418232175801044414011456133871920850769681185787450482979595727853835427535145081906945651955236686136613583909096664956568462219683236735147092804528579935491429251765858572831959616593987753445818436252150041688225107922423196150750541597824577567534458788088263929964035984960095046585636574982595887691037559934204881687513411265896079964395416109380532212147901326241591118714346028463991370520844780818334055475253637257099412739041453706132434564648944299751785414689071003569786310182266225093934363761272181066423715023898901254725467879456910618853613493068587407810593083798330368307355689523888844689726888408519874991739984680053979760052642547395704848837062318394908547747857606283970167172110426502016313276556298104609595826147587020155977691269767541928656045857769082120733760519426977220512286369433495776060274300352638598174360153077440821301656863796175887107829252964122998959013124567281443535738688139698185522550890528283336136718844894231593313648493395175071889065635140849148227321502521379604957190262795925233381515957985960106895579363044594870383786121888050593791821787320132069468604056335387582471610067849861470905639801200228243802646523780217831908131411267534063189110820564802070333672281263127465379360199163633276644403413839552691443745690634294417056059836340504260853475567957322541512516630464276988418706285611743068366452327688595990828584411325687928064173729288801821611127225459489439248928698084800426605569768823573087210395811816692689640502134555979675083313177497501998734850290639124428476239843819552455402546416495544448297424366598637837478695425589951542763243276738562485845379339249967746570016572084449113249238079770310974586047763125953475067946229420575616227900733649067457060005588130252600500317642885360025235725012566460714521554193939695884131385877779330844372615761720189497160825847351378713315917350514373464438458156744481765444592279154737040800715321885849678843671874797161959975208205738100530495629143669643964077129524015737813283550966426636976885799103588472050843470407347305346671676021205420337420990690241320098657976792181642620333859215660646735867877305374527473083653870296905548133163309198891091337334604866490797875213680106848123380545965657904503356724060187955628913624863690065340375285149391464057185232472430208192614749444091002910847043942855827637158919825055552633268152727603371687211458255610056608552346464214941787434189020464312454760258653056310748789168571376723669080865203502941426321140293299922576965871183907307506366926107940284899807647612484616409439108858453505364802410685046134481686802331335948214725270613983965930460870069289980626106208654319241166180506819885867640754771625092983175031518026484376914452102246471652301222678031001358961758586726322354357051873867939128283750427151989293732907042559573577040837122642062884489313924316991414370881846330231259565616332008226981287633101063462768009978861840562086388571800367810515433529589255462005918614974584534267287116490122963215222383989777243628616237143816623454137144860348885045870258436710831925854122480424790536280394726048822793982872439514714097334338494903346383843973269691644068354129297610295444688465986859261499076008354128763194926901348226790230261363647190774579063008311165321990080655986406881944392959220304838295640302622479898203575624763195094712114525078816016553093534626759063571143305485405922032440746537744093068570615541324225005735236906775501256028264424160189686466700220173056723823799924336760621066552189000995571709922447486762460823642695806286461977679377484475079994163315697314370696030171504133488816356060162434338611783601259527121050486414961477742250778679420965457603619025878491503120298984227743632936249554247762352171744923107635951734842153421225153417557556033888461071651257663555982141679159585576468520756809641883690237821101155756808780337527270728561911325086035978343454354813314173010840346373435465875608670023102823976432258139298999740114704711280816400671447398049394569236615679613199841229180249364487758097185537154163071132544691097478834931883122471225784633652658681673490783494683819643751190400687913480799013270419202892598381048687761091604162653927751065345349707364021817335202268824145260534869189546657142535354266691376195915251838263797632024933557955025557912189125442626300896699499790116053705109607807193660866409190371175032900694686275692804413944750275239411821868421426485099106838819356386867465581271953869049116582858698692867485174723705905094767879416508993971608751026439757202329841386304482797521266166976806161580320821162310347718571741066178373148004255447493012805009175433101310580095253370478769491231751633678395396084953645333234812223187061368093425928951004066478500086399749088865520586209821135136408597809559544806773799874012736998867258541727171443296059371933643048969160248719817378354222874192677534546789348697504655842915328472288370702395590163498601817759997278804384449144888489537347459317736116444011261857965043045786587799676123080600526567717028569873639651282567230135119807646657244610778167389382985293584679533990263676857024278478272535412440425534155726474212258744223890817206487910589342670732979258173219445043589259609980165783598118185615293611944460025175410089385367104801086603294452336660779471242702341075228905168049064478133512891194531371960076890133194205198486944036394772917812223553128342542081957836897835241683773981919033020667238794710386073733149736730579108584835952951088856050637182939348180502452293622144289954807923456051294493179736386796388036714587278557519829719446272920882861319417349913762329844286720579046440968524871205105145357509509045496847173889840135828064529447287123372673178863307850892604056962364868319065130724230115149443486486649741840821411280936963632553255513125678090193490844690999595485573291603919183125951198950552463900072059572476864775406566262843889691937276770925507158985942109348766410229235130075404371023207118555001230884192407546336172925514238895871277148666908287775783722964486174822034670945435658880632852290723376903840153680674424708071709620636433014038478071174106875872842652660675692860450862730841410744281058560064038280992226957059497174160314062235827667222882988803905610606241011546115164101124194883072469386002164536758784099636375928043610305492167367142599046657691517725361477245873083065893932615476527552320588080493159873293011052823096629506152622455714032355525079569823625888415434772729791011248463483832479472782102666669421153250021224128408307162778679123309982541865950984632923013226430356909399823233930080890281303023911610538371018431090463209587507200486157472479902658858626453947970555654619806724035085510996940410657313581027070166623710674192976254951591893939200636547760635051723829389027357658487684584626398885287578640972417622986079042730783712307084356967066705461498837742796282615244822928780000637838676484676972267825644495916976516242613246602678347527939810508401666523052003602802850742538977242055610243819079417255687083113852027599300887965150806034697611414469300850124591204568905536632178539936849473312505250452988936777219650744594788600438622304590188388281720780400290358425685500210367258842132884754157784304616104001056058670354570118739478042893196385340210868903537165251009255231524644114486840373561669530905534556576533359599098168287124483301306841927028978170065145254257233188694714105465141678409923053451682347376683355709331603781147774168823803693564456956184016190880737177742791652686293195640507143763273365987753880431899575486384981096492176883536776187987570223434526288985372112487374922984197913413132660162189179551361619480785244570164903469085988758100136289284443598298332115200920206794237173161414919874179496278609947160394901993409174026849910084761811348207518479868045736683902802593889452141300767961544068388420057336022862721858990547456634358422722852197994304307201886039346777542118614027136327799273047607251230547031370303823854625833519716889492093535008176558208293629609304870196634000161933121400808751012340412021253233041709961102270046371354528666816967798250061623125953996932621802790075996248926774092456586380675407828859152597578181692981620042139208380458199274221693224686627523266664159650470971899125100264612473824492642816589824732623382415903094399445456259364131054448896650169417386676089664115032839579524945213947461535324529138625392382858872750253883351655559415783385088066218444779360685894314745584831551774533359261315124710564791502876553304814058914577739363787947327348284805332688178793246742054843045663145857771879108555149541212469264835269653533064893306273601040949999650451304356460523855882682976745929855822102345910467260653029590709483929131692332505806596044486260059139301364232851372848666128645626820884518108210985203099191898510479193692676153572949023555210552378918511518838075066610925843594321178416580461756718533825908581728091261240061506744164326720096427349352301128668781442624561433744610811560436037625789175093227331108460372141522798477345884242506765891976736298642547909158297600640658111436215436460506896307764312290543872428793218193965698457497621025020101720482644237644971938023085866962777949837383852944920015298245864978682528210063430130282510314685615482420950812284289493181339395041328992849058284234278531425155411507647801975527851938184579717268322264469993310330224538665535399021474991307833943750840379125498095487604867632565067317564106852981914232954118627300868417054166269168529298964591651382115116955850694392051599923366724394150718915139006866924690999605413924614092305951090276928882429764383550781741697813372039990892858175666486442823360181021799723126567341693506872341854223987552758677661892803674527727781226157000168902435081122415422862529264889698505109456175564019513143906406409699025390147930185631251262419944249538900843250944104786246896821125215336985641619266282683368446887664211422137629595734587087909470640959637271232343429294931335231380082557022196101045613193909023180174872998190741854960184498447081623327651058913766144311713376941279629569729039533560801595024191761201111880777179255973499186475024079349784291231961438377706998175050525411903062768394259007418572470738617650386464581142984171655303736787690632348690718433185874673163028034516972336752115923570501279452163805427621632374056116810134037806365528483299919382432008543853177484966075443285303090438193677723374657984376689439466508491853263637466142374798474674675950600617036852040830672720873303284713857997724428845703771192283497496058766918945945040173604829276998108772491750408431187636862422946877790341078498997234404825057467764700098762378185553796385082110680518719069848521900117698857112743034506028007997838495289759596289459342605691772752527446859684956045107991352337456226549980865326387570061501691588067996718382418952135845985655847290259532937764160073007624960562944518426664377949116496685116051921215876751376510321299217666944774626425278358352217089517691598230866207604471432078814370954962068693030584209166762394649102955126331545959843799004717192376537669002516774772131959646815048023194159325028991193847082533618109318952570800919212994329785321048993556632610548819360843830661309714660372212968391732169068556035753745044419347249810292984156245932938491022255795244259157927720768702469461846681106351531257242884710491975512174302527045223815201420721915736050081642024112085744563319500079144746044553304062042191173781129102731141108229376416437696103828154421525134493168014520816959679295170723862001110021764959345130716809005516716087513491001377518869109134769358333967201433058619150012001845544626778892898297031727059217894848907998597055784679568730422512534212017124402015929576362510195746894891503501115666865124062591317926829865739717304482402919290050362751833241299462301234047267229419142158229468610438815784241732924510160830264071210766673219706378259271021089876383196363219542961472062539485012876534315287007925063639123101318863797951747921074524439176663562755156391014838803628768304105693578860544814367833141292495753596356255518405230306667473104709323782837380182947464503080722267237077955757966371305633554894782457517260620119599726813930167548156197938179395636114401878594915450278389116695776032046593108981708137897012387793367084709788592405705339749889310113485140168830882855316621088171519227020259494278970617033663096351653205304881424525012559228364447731701511774224243503639826585931236019276418260333278157060367334136052582861278302380064548412087804100095290048623267103603535818409223666328525917111649735027037799453538978062577833049161082967309954334757888760023958174243977202404898531181867097478327633504384618319280809485800926179888809498789388444316276011259305935058118167414128525285017974378547388862057984726425358741936850172878068300846176403876060792485761971638373896788325511191187437858414358541916951554622314560817429921010320848403277651479867527342383719569712179345181324537876213942397542403665449381183660110879977518346520675693973629775337235967417530296554591620979604724715591043668527693519236741150925445574169252679978708189506497938426701690642118557874704723519018389963028646923375268101575643421191787531013754728445493167169989787086913279004557566491003071000200439462975235337837138954566753086361907320375486208941458601589581761415670843385991378832211004009441767552525201811597054318642059180131971599223839100814430246271259888677387419125002738701646343117703075882991517927838327873634416049486698838291981451814733429833005593738980943432898598554115056396789371539155260036462548459938866176115103760152637072069594323926882758312482985616787682452524886974999794342970347246721589894536219889257404145618419047928113169882831023318281228172112790943009941630983176918548729203784152866282631519708880850072416810662302007732800509498261668833920270775233204483171308365098722210860710355800613100271954629943002822451974344064915229130280921169984037113949032874390380303878377195860574021286480922189986610587601022466702608049024543700899700956965577815811470317063330993736602202971255119638752692208767107619190996690024918701434001652307242797791822540616297072423631474171940656702996584149449668860029491072748435935264322279748020256365265537878531323124663450543163681427170939959915574200008314064209938856588868971982755711565611270746082180075359799334716629973005768914036494494419496959341821482030778676163445184928146883376450455425978424305504674827297542533609752504684194465210304437454224874566522380724348591884465418264893090717743701053320246416356884698372268114464484676328447004737091609953957979834243740709682279810772514037450826818557082978235173040816704213162283836016633093856284778360938911563057877660861098940810098518251363284400994293520605751573094865682370326047791423113335063373862847723509233026670351840277254011801480263223842331932487370378251166816940795355757985998398077183922303411077644336955133130623592598690398051408053430510654508859203637768386023457592237999713167965807939231479573003818685030032210577989587418896594022742741253974141664765196812633885619797407520606976540476402408837504544223309840918834185066920264773981893191572292818254369578867249843366275954492065635257218204163241917405789381766816864661641456404655121333397400536686223451638483224774304271146811240665977495369490348914943481079130867547089559497323963371820068672117748111377370835297829024811174416171363013865146446189682614584617635839761274616593907224794944727549667203828356335679001964293135238011652760929346311190886085493923265631155152061151342295774130335674970648151314152681847546237599150957738056142105262134567923343539548798619342259525199252703053621464283155275821597162487692692189235769784337711204777267096570020788620755863377713410104584233973254926250658945127718037797402427911607571666614125500262324339649701863069560994803237457741811366839313111273496786891588616292205556590249400730777071672817597447082133952990166300881436007305391392092966560417934666435398996040883084231553574861425863887212299154972042788347642439684556858674777890101273894470869204785957790251053523037637556795983263314420490310296732328623106371070483342408436588905183125644188820353504851396459951153535154834900527864449992089663445257971351468782739289106617998255214749079553126280900168389178691221920572509300498987830511073259236840099161370974628866488865042333807853652606206808235688270623864270252698084280954909487282341084975750428383224312734995272852185835280110091188689797362046272761318919955814741007743365797176080077038868100218790384643088535141147225057908268286366029107798391484168895368580535383907719055617651268193082409527316246394158451927541913647374741456436841647448371169820021918700863781346935716673406957711990557184307302970158913320484574966793850268917196989344016351537868928302088506824455848376998256609374439820860313478044530538143480689613236950577499226790057623362228886941242306200383803349801784230604281072090053448975141767265813679840138174597452600788022474023223591796480726801183651578260884036967167198801934134182579071303532136338749740439300247003239616973423957426004273317898270477061290404960246567304179016997745125703301189039553357744079302958266526022694768642052055304036060983357851105955027456870980975833460348403993760984118585251405647350618554606173457012405410426471823276423454225733790628653641820940251827037469140443541075380364414447298160898170608022119392296833691673517186966129098273468852078756250493192507979250237106388871412096842160159123596257478225679080033651259371690941699059852008425140691361913268093892490332155627192757688854348071769718021219080615537422400893661579302370725437815078151755504237091276700168737420124767382142772306826117460940909640283702983717329664883991138217295973401454164414218961993347732112303497764489060283485711572616204325329046097241783869329464551551665217905338502798985644464620522932273759958424621558020474468602843096211709808604349195370436669293157897283250761007458105994337831693911973993144200140800085636996700976996023634104486024518660068984550364771836944495541567894541640372655441905673836981348103772513579948736025745186274681837186890870552049154304961188962671384164183959909771259764417193836938513665789265951549095935929496369096946718777332521751411473403023690676978142093812146950098987921800672562850300544251244929671378345166870922621197306806298328931624580339662654355314550419818091793479980768339696119013403977101313828722882688455049050337586358460156380247889166646678373685031458730374531839289993522796442117453532873439600138357255153026567197954865380516974384215314797294764393308418955068184836072299921913337661471837645052213003182844926060982137169833768257962136532355051809822360166586560087360261143647853920953960654263146343571768202785022778783716226453077082827026541219314110347911387295831802259110326639746758112902512935943937581438015035433728777630012345592387914807027030875093544947806800377175978507052645296855227559895798051737339319823397117776276740847029669479595805751367231559285918447640313799768858632935629678062505334556318844756366613606244083085562973903594843902286245173351936404480744578125549694534635387753924383791879051093395876103867977332867620981077752212083900511503670192493668825697839646695050061310665191299696993904518169908893392083985864511887888854516215617414804631525461301022240393892491646111589214780219544783440014677210341015871936135404853731423634416241614901721214217221474499953276759141916826503375282733051054454616384283307043119261534566086042709751515566305763187849223229996072610353722397497940271708628000680436395908118979526182300747859033386476518053114320882871587874319236484483602675280966417689345922914795736457476193144567739323206843648981917170473374627129302507223743452443590020344078571561633113275595722206831139323135263649693488735356427483364893872336790555834481762840596653626952682908780704783890336625544033961532266983943149619640798145007734298789755789454181917960777212879139129191925570735328264376236524959349881283816887949693928247340880558088304830174079051552209744850628051955546455236034969402449500443940474056927998766777241904250406277503978667392938172850510997534919473834888291810306401632259769405031407055205301604643948269381264708359660697700864402278973837041348677853511849095095649797597395242733269316742772150821329964452306821099250894816319298782527753195055330615291586232948395762723153963579645478895695738299729997415164235044153551667806146174239516434839111265821610295031146595700824844110003290246063551139603644873328423152670147621409151299891913329597568108679962248332018310892525339202764077274192554524400830057809934206122526388667456743411935575842834471577479627212973761955378242884892766414547714698858155041814986234279378696865005200034777209771476433230120315046387977598344735759345203695731665503233472427960289968922206166562695012317979035788128381957283963125682675250390952936255704453550130337378615836855045760021316938561764801613137821930279172194212914667666884774408132731578635580807779161190090630955992151688729975307087142141842331057014550482051963412439608989735579578527166830127414235940865378589901538002559803378827660052026460524041593478284065349520146232429034646653945297930945963578191853053552544066179516033703923321044258081821157291148143529256537497928803647958886515439843177723002006866671522240914990519031536847969963763526496508115760700301737868745816886122299436022134206454750669473800792333352938068908213872080612797362455138421248208636738380416522669246239002302160896412787498034030944053740460994114677696218728659299717011636424385150031113597293231328495297928485933755434172659623512277032201631482726287078876835655188450864462570363753888209825166261022449316382560036083606241963710129791307267076693041663337446145449626160569873451874843805188454699216567972786558666579762629403970615708835209343140602847482207914029410519153734465860255841573093710356235431948922179873146987785223877998680302989932444013301686552313803752880927868852171019152904488101248464573862214004116604737964465554626480289092873557536615614533683142243393035372529282172799458598186142275613243910710416785680421999205636004425171677754821823656405998524631360429381767457278017505667163674492931906974275937867143826940200808819778971261357126369938462088366834473025786635485241473181629152861256230061233824015758190109143759116964193338376596907750646054512079070656885604689442942651963089865423817259023094140265036525108763313445729802039914988519451390842035761987410307486548863578456291686220350468974351254246472140321869993419119230287091972208035330867529447884334501131944823698543917843386623040981050717053681727478835898687755622257073935071140928976142234501676228633076298620493458464643168974159324999574885124835700804534848009553998745848576948914175542856268164810607240489478672026284548020398635354629206046092380585302037817080995326334732211753615282174913404848481171959289670467992096979642158394065292728513959035977305871081891125201597870087075166669213710650129876183125443612846006358562156164360152927999737775764816178139359078311530040679998336744163238035497180078333737617922434521810518112999255327056771799567692384449299255501378179273414177400701316233603126231041395693993208493613286008849784762495315993178323333093518110811356929357069901436238031226571455684279450602501301509245610384863162121252624783596301907904261028685746523033602449243098453290867108697834053326842199077155906614659654632807977301819130989106143847904234398437486442064144015076232187518009453062876841751477702254944438013817682523412122068309666417356572685451456532874957248433260227302690958415744324265232194944617835829795329361051403442806287720503224490939097695167338137486680097722302279285505450650763297075941466666981625143440218757865185704620313026490848479776762802989424682791239872419810560499761193990173748298660508052657025519149546070472191983600837953849221695742585257672728502998182274538477517776558449306603702314103121073328184859052040822876378938825079921627049793573132726253231209992868644167460377123881294295013555485003200663352090287929287511255109509898109306472946691888109340072882246522470407826668481889671627893333978969605060413097018481974048530180898106223397003498649803909410260183301369445383242763667389426298197239580741900664560353722340151370413061237484734043306985792796365522712244347485029361733861070622756353040567701975866336972432128624144437776787720391742302559832352720617078015929989610688616654472567287998449750196373894336356623489437718030252582722820294728382902287348516603142883758141999050976166824416088208934357998476535145767757632604516330747578806734841137867136816427190435278907168147605507524927843719479095534524058753631214474897843678741281143306224062152719430542779267611633142828182619282592223913841976311631113642255530291847352795267040311732070621225601235790086596360573230411163947662336598244572722506288646613892224207915766963296858370105123149182863829864800918253002410678063979376759901436305992267478867189594322726312268885969775530928931366679984334264466245064689757617002411726443995998348405063893708937366368352854254635416913341354375139959678562559361048121465804582651601747912644519145052312151438963191273417501467614834179384042570904469702494888705958351169885124612482421972059010113852524651937015337792546682411820315242566857702612027641202217020051001995998776516809340892993284716065174787405966085433681218023869571664241124808891175001032068315009442339283214823798263001117109144028613588842644138683066149952125462121935506408871319976606344812171587194302771065287362290415177848505496048399189083996001684432991285994783052174904167904466408665931717360741728077208497780635278735665300155107418491816166951155122528863712730041964904167698671461735208601463380144611236498011018596803118172799403901440049923772090371192508523963513257779082546465000501192210347352513381383632220676820490986222643814397558344431469590396997993608586816589178919974773930752782633812733685043973448385128091516407128692256173096315559105367463500689407640614523911342801544051514092557142515216233981697633106560577734987808100657042970468830172148489039945814808702096505758279843217959805602041607084265872678851811247260112193940606180059484017678807221434409902150671988817783966407294270555531746565161424132484617333894692542688687846236791323302418591417718695452616684039033107399801930281911255333799221035481427402287127964158989998016999105563647704792500494660623397868146741275106602490578017579921621929979010219805636803521596239417088995756811065276569980486569195750888471004325644345773378045434446833634469765110703276490284226416011574487769350081384742178559022734340588156125925943677798585711461857426149820265161941028919237544808446227430920317067881480795441732477975411121168016415186044534560988642012861755367685492427582876314694684448991863229942963548418803645803287360351129707366279803862274860555005690767000563786868164734584902265899719641442392442983459644543178518084562859482067676370109540813075450919393521497542536460312388940630954134616848976332117864524859292931841666167741049666164563271940430916116320144765938083578923592805253463105841784346305284590923223895689652696462148880379853359698211625916553999897036288069330214269151985587907232734870488250949164361910807377452963261839116887536785910506851873561296405848925771690601003804428988247694948073168796645486831934621725355111945978929925013446405752305532255614933861947237982992146116045922086651955234030365943795675137128118392126758990594745093074384890087264479116255138477831852135528015717500482265669455262739269243181720434589706887246471916468124124950181258654956888034916003441829390395452636508480390061142506529540658224851654357059088756076057281559327412667814032369712422167571822713649157290206684200169108735349695855249764504117959953853277216194398701922066433311956862661666820423488723287380203254713425891188155489743121217061378205907672135517105314534845553011944622373428511551144482576633175199009057172476882920761739868294911779407548007785787273347634825945331100198394017964625046456460728329445780523438736655794374656979288899883304630881841055641402663458094583962727204925812730360737789621395238617157656621654072061159849238675885787992571326934956610017083681845373566163323140554499690400594288365431813936817476301697148354503352531168586715787717981852447080836030214868172939552377570109448698771293854508025407151238022997749561895646955452459472993625375012037406732482367117496485983849434531968518521239355500046844971632909586728532251126476920307675298423322356565900033654350157807755102751714364355922614849045921151905641754475383617984241169140093271870637143928338601365562499933684528393251792374842541068794005893198976866386344809772067440944694665288216245544857123573512084833821106250554203617171142137945587297170962320983273493814865530985596830400966348913634768400546268069081115822097494913823368145634310039545938921183489129783350987016883288212459588902687131821576470335133665612028496935388378790188614208300904747879922088204736270561563982629842241706812735516420223499068583502817442660073030830253578835549860492930866424365488561920138250834348391234819440391836958726302937025961076570881191534603507797527204742425558124323600513357185166001775583337587240461517600889194083383341875709491081453235478964370658520251526565162393459911914100465108699919997863374240532633833345904224313256536190801718579203264046998690451260016096536704672331848638048144713023820469786770259232399553057346159711367984456031909356339713473247526444826309448354378940414932418087630924626013518026522962589046759160196662313002319536630723616046473599017001893121233431986953611788635771457083710750157458147565198802744864874549186573239548905839398482647642404750055326940816889383911888576466091170663930746659298232300189718844145610651045970167539908946054853077907853167147233586946243046666129904048506702794355343780463136988048950487687747724921942300125191386131429079368708575869387565968002614071220004805614622219541942629333942978748864708911472200117786751308875254688559328822021219514890584965613685643172204814495126038958488930618886903519037665265640092207592250773568101118998623855084114738458995399574729201786332837605766190506925397902878212049097140993693810387087956363006933947279205381180692637736449450332200954843223535501735811832047391693234484450885927757570853381123924524220817897934504103834301467035064542122675667858873885725105349655774402478633688477459573843842004955965293322567498309801640978429222897463547639774952649232244960520517005629800342894788302701522887951164241968512148109220905525140519631748787535806682205382159962767659332273132379013664926227870885672594522921768493822668779989578567821694934847986122478863839278525335974851489244305822927400537051440818409890525537767236619117318697676040763281075278652098869909714735854463206102213274125685251108263466149876766835756193652116533521711836279987471465494356589934469440542587230579895668354063274641408389558540804951800388774047543629405355448517008031318124793507880056191007033574371337381475227862083662023115037571176887475262960688830815720524360458266664130689662521928712247961941224602372080552177712613097974742942789218111849712675209894057362542451952077705575969006687533936699659651128110313437299833416023369077433929611951613223470788382662259756410182054615557549138986317433639775031028768868083284231592513955140622335270778559843199142058694013613720420311401586986308043883208435691401448251211127616940137642398102150482855247025357617672475685095006315391388023119080245563332489205524336610010007119387615077496075174898766084193189315012338647026120062105057418419808392188963904072371055602849120581931817939616488351150199682385332544932672422916876486892378270543805373701885643397185609793082053088893959708631456435154773274874695508197095199405054730921742177166556842838570212443918561400678312012303542089010932717937787378245416552321364292139054522336687985367032551626982795088988571451963241758384382110681145918487916950643578564859360824326998754279669273755131264843234920712331416950458274632643561753612605545085397571050624213238119643751688350230497981251518712840137011096980827211660038088054133703217314712675470794416198571138904759952152587227616631777707512167803808732902294622877182244997609291914931411107357023594548820805648205169454049050762501457826802692798103867038069809051241426550558543750588915932109136650581033754290146868953545486507842142871214683288684159103140248572521542224395266296380537340850949456061445104287335898659056846679714280804798393420798390004940581222114744183079715126251084627211635379721655320480089424305638717942697661151531422464003447025851848531118932653507460822863282736835669156721295204431661361369205218693547280347162710873122865389994235933071095210121093596781629130985112075682865518622672038028378674218313609934568482730493264036843959377173506045380822173551199531484537805980198877468271280714200506962590855424039026181488871871026178889924205140593356236190899159761319665574167826682575058988267118527255909009938600344493986900534297437435857927882627846171608796914528942817022196686565723721406410670874877374371370713813712018022776042277275606136887154998832156404312971332375300186852680828427599371935148809390761982031799182515916255961315062498602956982997704159588426427031405840065240673997415484199075536758815127858662891353173568266485669389883716179377471797837343783199548114391152918378801729898688686501008393880150873700569191332781057749715697085253047467510432882017454338492471227882089270252587455032902867138362317450855085328799046871410275029766413094884042901578827020724300205566048152510565752236058892227260528888024839191086295978382442403542972488366759251845872649094230774304024061513683536338047641692183908097098177170656687483213515822001073715086429487308574439360982109523378888480098392699112474148372012623453068912956261019321335950718098127095923317193360781307207835873052122370150526710574550649685725890744031034393607166334517129837931825686268273329381813377693134166861593125526961967178922501365696714727006393563363569935036047014344649410297690954688665934109371021464734782930792393962014013851871305523550019552069297275839532800375686717709560499302691781230172729723994764333298687818256503724024613193154900827962454607339488135169243373804413619404825883234073389054018001865770091067589000455632999561882291074097824396797203585774641552360443754156645629441482952448372069088798452062123386468725486403663348946113282518084913606567700297668991838661379936495896858169764735386207453587136855642068675614869894488196927012859012201826812528529279957027743453594608119999402226683605672736411538061861347191386580283395908350639374134716635738551314688574748674669461435171428300611463425003703966563294482851263101984751958185207206756995256960254051344842968441575392904669529072579796285683114299904451692092067643765891302791903210922792382864892641918333111889028770931301007435164390402044892487143637333362870991300405569442189557231842398637568420494609108666747657809955355071832385010433251076094606015962563045076154899400693223740833621789326850223724981315511103017761439921198337155959468676010031139404425992861076231597045505566335562388085922350166639111184138875797809131392948957333526518334574296015687767471424945211043522359935222120696224830138914656868257791285348770952224518533575515950345053833422606905892294766154795673434780539677544056735583261572740843035575222480677849542314769182515925461860714684204528330974985004411432015110092679974100595709537773951598512805501037751915717918082914820878127648032898591223837331135944165364521506366334865020493548803976919156062112985637157113555090474408581916383265270937038096353119595912761259007613358659815533652682216462454650437601594696445977297614394845724742150872290888309610323744348086610025652797502107943468710425917485527548866895633734607689314342515220911963978280886214254476724460186917671380125540354372727527883280588061940080834178866543328554850356184673058367043723437717399147363258339409818623276066931845555998272019746849025443725914499975475603690210932839082458952802498041784658833547600124313717687085650955234105332921151262767173105324919691210220931508490214910025531584674749990035536625523910545618568858136501868432935438103131471426376553263684945188758517641994615956251908100145154753220839666983798035293882804557185099677264402114981216870137961599758703777035574280153109870218561992426350430951616069591895817077777134593587288849659081410586116459683869060115927954900038168123155830980707804012691060058650800409169073347279713425441039334567888725184932138878071747668405485432331597134809602016162963499068637340868022623013592966911084563847497257409020498933503318403996972235005650729293065990482330457724536806707297146114161682507007629192279084369886633241421988848891935845380522867449044320210753522423241096948565433414241334620989493653312199924969225092999191797240248741947386596123313894657161930928097127888311856374525772799685400452324545187232165740281277174427824759312886410515691473278297534817862158659609925569714384713912647125090657258508843796672306278592060414747197741825518050204657490745553168377598716735087035669443939079048283410451568048877896269263684070368533834580998746076650754293471401887939963199710094418430217914524461097229005097050354306187262358850388402925254143902377788238005176761568789132172122794174306524205285477117750012222611685102570794187450769845271968052030778269468494105910523555819037365400162693088991962621570900183243444553184335991011563224223423978631788890179869439048759841404210919215334491847920390274808583033795254614657321948208063331043056785797292452720681090853572157237242303484491148555082022583323660442653521031482700315356132127089299112449446881112140624653890724754727875402663019935552049659672514754382677568688047230563969915812566828811961434476664600129549373588909734896524469655289641511030668992159283993207337407350627016236754626185245451012639308697195864731406657107840717008806777533429206220315118628870887761308053857485063205800002444524957934563638679287083740265144501053408879398786369933598421926924119285621558618705413974275432865741258883163817675235839990608259610597001972071949936362847952124553743156198311029737264249193966729886403188351515662099754664755556534416182289587147309098521752932511608687804071976858859427225393274117929373483502903263959457866818179559656246047476086306157737621834483164807217009543378145429456005521408120819688118756061948654555747379806667115125391624217262859679437920775547228923917664780487031117956568855735099444811448342775549093735995271118909825020431383443025048393855791956389235013500079947999734487494455899547268651943115459722010939250766480192555523422042720654467341286644475377149453192948117483052355867214146550737721568261596639979356321266953774037460948895130404362226172219626477157150758664167261310743075974117136469238530300972943726382789790410653826658054142975681570768486927479674327776047976169989174375011256454305111363750321439877428196715308534918586842787277153145973224912596879095993179981447066943326765516562900757380316151570306678172096573723927375196384565713179146609003728569448176578584114137480256777675675045727964288621083090450323618710399594099000081424571560713886956084573990385775493113942903988205775990112513389617647857062608919315731646016886553084392785216459395955374542590345803912486188404504599475903088296252866885906814888154485933350183145253674842997406209386048641398186831864117798806521966879089095129355013542490080675707398913268366862906980908430303050858359087231121850994048295655156101963155658420470130744891643978717772548575267410353654150125230660406828020570568219471929812363411703018031472398867342995741825051800673870119851684758320690691118931601437407998321410968598675536093907098279871816549323645379251411957351700931614794701424103029509100399152507081105046956671017924538075735669303898504940702807042029384492073936332618429083042394184430714661696913761618306369477288965053715743920291744175344410675688021468425921469755676422097172671394561242583753041603752733080666800835898073777926911324265776554159738232481686383651594115004020632659500931501255682236091834789552586026073564539104551023525692170945979778101779722731380240824489486810112565520308892727457663914994399701797039163221878292902172870943582188169915867122395121392727993506287964718918262629095201407447462985571163388052953237028307459175244315684694690774335555067535357887483692770659687030010833749826942797490508609665825062133812286681883637498390208093795308078812814186008173811878986823385783368380975761123577040123164335475465885992773699360747899612765040712611002974068413842008807327162250252581541957953030666562042381281741948431775273154240237767933102758924849891686943986694054364685237217933850303180286928085401533022379611309152301520523533446791077958006755479341763808958610654252172064043946868759498197685492907816132546731897147862932040552237707016471586140510882627061035247108738752040359540930068580365409903963997799028183304874506228305544863850339231352110340953160680154242768733299622903983098255443799249634737486542184790917429759634043098360055654366988990975504342562742016074712020142932539087607150191632440574109584377121412243305139857180538874243138646494314714376153821967756458687140237904513140796505919458033296383764171804518324897278684214050494631779865758816777368246995519350417929162606720267654630240209927533561549534717174326180893430867930847138358198993248178752302129480515616815046679541924198612921065542359139731366502301331514647721390883853733930761644177147923795876010573578911304280192829312237416325802433955046448509371219581436820166810606903736188745103319295678737229662172571658527761897900423506187675250869499128987078131466939456818770167480301818764137581779065396328603141437861039900827196938018711164003131024783765575058726273804394649717424922494577385296616400308919766559974896232967764028519921476092361460514466544462817393309279854168270561555722844936351266245508502571769935308551918169964934522185714226219653821572040287786528282010541866370621677518404127251203180750457431353773830647273144185618067772670053272255984180430103087765014314018382387982380466140132421837819008235053632269754445601130078338677850562618841491319050071401850775191451744280226158741622407866135034326942067495614437997467205551834590414744793036364992077785415039747830154133690557576893835613661557873998954916461003721858356792034135451629406086262587565011301785218293493245273477326845990825348053483832177355207384142612080030104769495182853491172948842884411914980302070034368757346021036533709457896321216829507381885406085287474388587268875693317080809684778896284546059108830145620731049858510042762218314760846977964611400916729371806140236675279107935827156170941328054851847083821253260463986832156858207910255489641482464753721631241916041813843901808990646890387507438451068943060497580666011033888893413240128044743971274840702128633098176637749068699202190022845811326981879569755189288288102534669115093027241165647354164768149848397647259895023603721149235641778256791494360854473933839963046534603401267171620031997407586249677895692630752477111383005347861820408626504739368027297621181919917625064068125721440970129598226435791897124774899756713100603336851864002896666935852147307253235621805783497411341426673097743489910166402274619768468251208319457055149835487051303298216019951722139722417471865524544929616597099814508931182911536814838421134982287004247869278776119034915099591751302197983710525862251218979761108456103182422420057726138957635453179849697316596218220386988435836213099652861420067458106239312399609952187516171826706400932227246781104690119182667439366358502438952152561018070962425325746588618786366060228644087330005923643397271579989383050289834495826163249910889919369883874224353182163466743440452705709806818314777194449917451066329911010146361269424387356059925826665721183720484837790441312919198565166103545171733113860461011751526980011922582963342219606771675821110070350115445764279143309317102770162154031751063760720214707096975832304602856911143977112322932000147601258666379210382505767595522302698206893149042441131423988280840922995087549424384828993744634020184388759135594975283893341407580872912430873457502699558315492453638016541590854833429102729590369485657697474698058501924911118556137597401159199738256644290762427450940197654239754538510518998903127964010588983732704165983666332724009659453911534393796446140313535667598210943493505673648193104801834107194760008797030760079881691553014479320881183827228151910962608312962701526274573224322514050614886135561659095913218034609188747295247073404041106321120393029377895423568415151251373870808353672380248513885365572069700257017803068624466641267852260646933590979899711664494853884519082519558350084136555465506113659275418275187717852605812185516726300527732882229827879258555827994592259374918183419636947295794165031145998273853280923237780987384924989408344927963676099634834336018236524592443728250492830063034383156747852161340499997354749791017054758415153122414976865041906810330348428080651275537556955507977769340114671390579057171195862985073699313932156149413474571953955138015957180008858716150517839761449372921027687611533498718964875525957672626260935079623204668976055202886264527174111389975818009443299398572564919544336273904544613473101282000720563677842732830260129103636003066275431893282958138807597636187592280031794176518944002166222619496734729583206326222509662214048027535297262909461177226217453348677610787253172925035652088579956746934367753051382055388539516284737402332175257818539025008466132488100860658406875689504865036926026756251146151023430695129197293406245103056386128706889184246097054874154783775510042617527364483607872123134535096021433695680673470910371564172970677013869858294736356950643406016677532308770468865819486192280388224516375933600679824085267856632508938651824890306834829574205881106909973000613404878464764468542379246958607743866157312709775724042186008930484493726908297005519245468430775874830731213025257010491438543251149135723430485271455007566498392640103462543594076060042640467424609177608252491893951624603762557586675313719727154312350248896736899204312827569355055162382848874117779567442648942750066036864714198744496312741215486743309253064236083912278564690782968614979185675703824889677127069692478120650445877552701947614244269577884425216112147853552974659273497277933880213346518397588877901665630968350366602954454673653533993908967259317010790849242868157900972767972566767492382762223365307987508972429483510763999004503373579021973665164776293856556211963745761172358541038509014524242657506680068227890181845190429162120531778746949548047181295620349234506554751960249188494577064402647130763518745342601379539182728745248935447521404371995475863647122479964830051617057501289814269321859317114401731207734413172025469475035970859838287510874769322047822497106692232613393902106094286688869580245918902278893661827063722764628334835148699613015766342179024984276202485132852685566106958821823237102789472277335563448140203545457248205563869168411145700379848193936939964934508882915137869138671164915076616990873633932400194149599315946288721356063019159259827518670535813602877979904457425625751330774127283058771847041164723293863601120566320934055196814691171913304453821371163179727459718331054149359379075073702147337272769360713164437711524842215588765710510587327349045905597377570752489367622883159439563427372873425359817519081437234512832268692758174145999829022807319964456428616274820315215013199687486289294074468225188792257542165818414752448353010927160741405669970615677851148189077185137265555990100304693745136311065400608325742419043719737450278274783561336455929414287018441292069106610927073384732478451140600333192353580799636806964255332171306965344469301198749461908150803045004090809324375447027498573666373359542787567870393122674705173836338082710145351100095286473322217188541154923277784132407475724804014578668689082871821047553201707721366628686953541059468824850422400343679242641543592594228765780271299698454725141858349549629517927958876642803650369984349285598268546893596414809873129711311078330016613702336976208609252244636272903019037590499850028746495579240459809374616849549070472345775110185402438452731348925597115582429461478206289511546178623229033682320960379019454778760197005534218087127919913186629533911171870906256507509790590042913347099355194424413636429665223022531329889305629370033924437419425335382331326237502257965785769252143170635730149918840812247055861815592488920091552095642509655667419320545151118588965266195608263611231201764984986058754619089100033382192989007212412866082741798891098437920786814085263346432689103792474184587668046211470555895056328045225992512491699602941167800167614517369932751894514301602875726186064470582701016190868289233285406026904556008366705740844643088926624358468036239710832032097550804425727597117375996731679663484580911886998318947173340006174897562257935972396728125186308475784617652096567250172146223543934769418910375714153507092783212885204914812082581289348143106633147877570255449508324549023484109413279319787652462478113947525923115886301195156860713615383271785155960930227024526523497488285955439404491006773675626773891130025537117009417124652728060439421901194583626868213688011686297247523184097758454435756518497118427113889539474895829963261750398088027472748558519208735348011465909036764576074463034005675096085010922079416584246287205445926458287584382176981604537385017150294810341681724570120389969340904618626281265082516455898232945608097967475755855770162696806802635983157386158529966146516396244808953105332957751679481977196818807282022739978494167309088179020573160011387113734990379798953454267636974065792312542682666357590750076205337711894407029692356561910345735364040529278352981335820986565561807600019878520396106948829552223625678149531395050848413461105025232974412459923803827077877777964235424707035901583819372425567776960120063423752827983285333240424721584219950046240333314177400669229670479449342847744966247252435315915940856561001669827760313957260170933987711568443308952763897824586422265245092930995991926144321079106496026082595805497079561287667165759426111307777276290481571891060619616360940768303805377431821943699198028516986414859361422494995958373845783980739300533824426201009152796903776238604453461569434065752096200963710756292878316905460702051463121400065814660407158700141332092090849208889614377927945677137317361420271052558886944461181684636608912764140965514746886033805266987762667634059754898879383909515909792921196586644953960764655028026050535315979039773793341784655057142972128561489734449953870603596714051971171174481565163021543540851588465299715797631344092151655631547643223204390521539953458819516025726190859489603140773631592460586023431111201457037211532607829436493823420196696456348529753242631149372309931744180513218544972193842383972263475082850117227658080266863381288818285128259057891402281183995094422948365211860734784838396039655168366555531720585780616834571796202144923697686881279803832157091526832767991511920798303924769886792738395635335290536359896079687623582653903395523843206903291422793643562155263532179078722822349455995454415142149950968070432661927245139827230636618529455239002167117393002246930245897693274314299673683958798553119028576423280413434569888351113094185395922603779275569178023651877223378245144851906902726378061688622742116799979914949436611341656641136999898572193038111903813094971792563766404641472722823603325805436460266571170471340419314425128267593309391868966352888732861857482011019872323325241283549194766018797966750646584226240155079199836653740773016051283431737613959212781632740993319003885560095077863582930293509223094562991652644679605502816991674617973814120309192802841486434613178990012002530090739526059568731643960955807107826279678428532031956452673416355165007271820205711005137130014738828855968312048701354914747798321332082012996395741436073413065870691322537697404170566974316469538356932933869585766117596344194705857066921412977621188807449332458689635510534259170139368222311865334553142482993925331851722261012047333040527958160575565115716476852828072551064064578630403210010473875456287457829835318278734373838420751610752824084488094972893472312853289710710521191345381059829360059203476013732778695604938648799183442095759803118109184976740676181689484297287272354001025969314444964912311021695647000828115650477405278214643277682873622746466905004069096914357968875669714738071309335059917082026645126287762868027335954957731022232627979564905426531830207080800905606911975624051136439634108274414741832225653190796023158879854031077703393471645821376019131663626630322359651146400562411233914047514590245452273203649270489248407218909371702081710240901289059650831531391507538948019496353592331919652494966428851650582342558804403382435903824389973490723608234311443717349151465950185655125717228852166884225310199518269168550187974931876220637111229007838052040607700924319608589020170548828530329059779930417709585484512154905701702194403124286129909587911294734558138129072177231278710830639686095633388835288808333306287131005283148398178216609832741132336330608890049125203844088270930103978436977130805719781115197071445054937672230558560332590559969840506489035443261266939893542167485458351481683411306447040962822719399169606001333775662796304999226246002041827565590802243518471810675716959939585166012706114363725884344382211917278653807275490010297209138795860782228341066144997085212108422265086959338017096489491744831502421924378334167645636080028380049496525720321203463671540448067495510922609257383426131625464954532678410113309364471528692161953141286838273124837515905107883919215744328359200929886946075935351535852673153151002519961951587781840866745404454658343153361298206914625497828450511843868605824522778478326240791109330738232326310839750933905938871504489296272671713582438475406039684903250525555491069923078064603987662980540870731956861062092985012519293521846185295793950343901660909973756391286464656175991405499871413087510068999540022500165325812556706982955663254533833143846625577208279068760757847766951089242899596018342700135793992852771522343982478542775989460713904848060440875138869673813497441446155280460510276681778648546139675014258683566172036576357715410443182400367617593892101695047853388321870825769562646852130771003398654558162751614779634433397293029115101562722159049184250880332505449603196245237257162369160462321993713836871587505179720251364910871386070848344678301402505927682820266794251909311822245663975659683710349215842473889847247852491420876118307334405631071721569565752206058889108569450571726868233978250713755807834360195961958228122424604271660610364489317468880397169286219534241799696093438959179837340278718844910780167350194180498861281829306307809676138119261734164449985433452107813791116935268487024523375503961128645468095511849725402768887187892577834138583849176634036193910399400984216909497075470356221311591095465174674465801040132384610910454108244760844686355203076455633024343161777364079576322518076495463134695776723337674865769084180457469037782590939848565796534586135963350754679656022195157992939787521887469921672960003301743862590023347606280814833307800428704487110175701734320362243130612057799796886814678623226253889715551798275918127119924150393153238896042884687034555529533805452679236734986227827484925073291139208948111796762702218439840798777297069818527841880382230366681392772060585777055980063921959988313824234025263922675831024160699695233155184732012332350307190312042172999732750264593431328873476861236752972870751751364347170813778223192121776123783384812161947487464903884629564163353125472935247798525600693792769847255042780938295212862341674640115149641029705682772272217688067149995575698085889302283261742274518794854343494526962096652109458675252744821824613147540963028658251192535980125885402896067682993449126280504771887743857583367896145406510408387270087655158573974806549272417965565324741897228860187756844176066147089938582493794038537385034677974256207724084020978697999980370915041939320105585569234820202673422438163618820718569039553830198601770956824608465602419446518485743902031560380119816496897618772383634794384655633277311382271574493302851598655709086840551817316313268320705878600763330521107705914296443361998027537046553892145982835168920611591457812904553231836197333383669123709537416302094856178558029117188193464629871278298649854382248601081094508390603896884533072921361717974965735425646413884949475192036549099744801770021802058426168843076952101670451207601186840036223741365846967419113863439503915234966482460437719686775879235093464563379384435809277626742302688707393275206353996066121527639097679481601350854361111930234381319493475667696224650958089796842447746096378414498532801515761078405116349362672697392555246200122358633803141613664522834635209588203602879657304463430304719493199051599599149243373854665392181901784262612649837121059558502823057586138852488097860056260765496264079266880515034719409569158946042001968340730634439641042730414680059150634049231326357422161658293054295773280188831554909030270488186990441126111820694207527419813132484214254572891160878311413197478287557145954661605051675656895597826021275898500823610784145132992602861592297375288039694543433819570165710542147352367595100905069405658958386756146188070781388861265651107597507111497520359620735293131138863099992577027253715234721890242740754111560543277326184273160426122590535287220556436183660531214816985572251332697837691354491498570003947347826101554302185018321107106518390366259750336875582666003531834922650047710315871206036641758605767008795889187766261801185595673002622329403953530231432521293288387391955912130479503264229189048561735640413707051712070306749047032890542158052687964719663025485548701301052660798211087920213180386698066936354032461265380093835331282091382220459147708235563604007569268983724167000917702107255715594033910042634104362553101860420931940959510299874188047037875754371367232740862519166465554508545049121575513071328422990334373337815839742996034698518461934705052337246317086534789722168165439802474168436203218693975895189999008101705131965186413664087106488101520066308267642410928810897483739052809570454589772754768479022204402781733786119692729524376833079756530772811485726950999145630300374724607944686472627143017684847353429655151145662131669170545434941316039774954108328116872890119427252841729407503422233057808126914812579059550568546192204759133862237570177111389488714987816116186423339930075520488849834244859716171181475713236266785476334545235883504246739536153720619631037277695890226117656839675905643259779229597243697307117163964468924626676043274842262986628693360654914774697436334922776797772056407115946520637044820092964313947995652167700765586119476768607709948670457096867928504886787428294935408702203167720661735301749795723613477154364280046476402392299104939201232811397662263913703618560707666414300051418810970141936122131162076341630476530748131445751402015862953172392830314931861255804841307056577014102062550151509826731015222784735285235113112379169711731907078156350329614060949297111047746535477901900607320539743510925671934249418419287785408945448468123040328483701780310904444816573399848851525583134435708592654165939406712687402114607399238608363836178026469622750968729723137342649457797670759749326995534559540313553013158654605348407398019357658574323711715533081783297174325498765255555533171192171080342291430049306906014589913465772787049797981163347172617357805337869219635245544638114421289465028470408610466225797911643057157929603398838801048290459561696121827962493273538770732952388172477642936506807253464049379349330866320157210034775289718112843827979603163507496593443146541692917130734525881895824228370687388498743339605594076228254669516545986665974193864503925173300615658776980728137553604913362597824343143973067735327740325160449083357336428547997207395674914712764389444230542596750214622085413715434586466888178445401890720110450163494939258653095906229004614318965496180227689955402736797840688060149497220491689559124585747761139838291913831595975123818277543181143562659600976017149298442902957083432150889701337127557706555654633866678645773742477036262286183724126429808931130849912600618668424221114850277837599006691513038446828890564257771288383690658295272210923156709108607616555724539430951266398130587885774723029316453398901375007141275553904172275220169380591382601865103960803118043427608385842088618234151228210411374703642182410694840023110947652524434917163016016821047448465792414493939219429681945629381095820973658183998191006706371524905968487911713600367918352424870930192372080126786360942469624222868136223373885162347020281434897510664133346393772434007301315971726553689729629455451855850102031627673752831769070701130738392708133497137189459789812091612780633493895769832548087922640731551644427533698589425064343928158374653988130765524172666575174964946262268725714630053464668602960966648937798851318547888296006559296075663388193932862713257321343334231730497289617078997079713299006109358282508290056541135389290896340749200004393009806561872191392580594995901665717570187845702768723347400373232442577714797395645966801241445152557229951093217307919125564259886269952026981275504175330148022150179071719685879209829027882616309778211771096522566224610235410304358330729707779551413337930916756880023977917905016986164273637686897577286490504568338449705806353218339025952164764718812934565280562014348981178850970766124865778672373456490727974501707994684283909007071667017550542170883673236044987095972054844718173709237226989048277375740647150562503190376289924271982404656481001325998338645229737115533541136378144468595431990165446211313027415931645750881591117676879903586630385705202974621066063293414439821997543865792731471495019750242597069075760498477407897483081110198476182189119986510288359426488739040069705594001101067744023810396073700043278343340208087964156356980033527782316978149946687810795542492271539102107582255411785229221268108619252034339335202570589123941623204056018492972589741296697619766712995259354691662214683694869224262978384226714868067154199188499057639151919840816421653237109526918202191620146377410136709424751451985180708990686649138218569025316056905338845680199415259944757078930963563385456266446416477038344476857883183939338347734176358914251390803272269471657924976799017306102501573923385814734783470927166262094766604389078311431079513566839604107232535318984862164622842829135463688421277355274253190742427546482524335480450131840977430293605420688209584780689896449867337065351592332686953764595181510301922331533512295383963610115438552947870448662061341473071306949117779576437004741308919997711853774080488246998250650742916711793374005627391301775116083661405185417666584163721361665742936175807323376036518323781916304465651863544413954804772381111477650358312541928946540576682121709283154613249623965884568055690163764757948361509569034700837846910163126932131395584243057329540275783080878121770062453437547815636103080970829932201495452949769215546832357320857309035059005655392797243554568379645418232147281319031346655906584535985399986314978589067089666277853882780430970856304566488127409357554219908740298976381754167679122177673045867610449713042486846768428589411642575663395097373785635811692404208384230721888802028086166910428440469391232537783903419787222531929928532561272883618652685325256165969056869519845299661240893207540476707789533527657176528965778259596031224625591050143172992635459027960014030462699592101018677499508325801143464069575371579931377324158510867275733526161528262655210805425132486192592415063193562915778998026892549916293915168143689950534417326749927841240241091732517019326911902269689641425927899556116466200766393635401252607470583865130867645571930170602271917200216643480973621060492899062648866421121845747389450855885035168105068799515119988039883715353129157081581603402846678287346604674805277694903022120478456260183997870338316966131599163361040463254407270665160198713943976995327794169899684101970829955778427265844891029413635526279305501967425139400291759853859559757879448223171698946322307767294810009400068827424135021866606613892421684229979816546351862109194652859193103639345282134472464219917519435124201355221883613630058684716254009924717281471479676830070344970963530812389795519321014362957068460830598296287196033426006341896597969927644969113918626151976777618745380525925605689321803455322017188777882596676765434029186894866725544660443795250535692015667481166757054906909245278723344864814066469123977368394608278836765401752526791085338331145237967161537386760100255908711296575658051441332996100238646820999949689970924848777168681936237481326127541906975532149834597698810636545423419467658640268849973170149573765646561127267951186750074755416483353201279282059556867828692485734372111972983762357920557129361806785765758785816709896127345488529027337559055482705021259334904229748307421328633050769011336311970346929775658532985728732705961470824416823192893737999165546603928932346786903462793140655970966181950155601036390121320395042624586915015907327024175185729926112460845390834377995323542814191500529875762644619751068544084543907157316543896191335577000865685752629152770546715904856930434413144234881934681005079851945420848244006722624180055351716881683212483176419830334675783556580673541077042640736363657693940367551159078288902995262069798151295527299438679805617558446047752462227955265680213310985621352701553792243936021739254937888105658300777957261934259028720567742166880755738571805855528769250443499187982181773302040480710966428588903176270152421015216898410163648637558912244808646982368692067705197043355596769119010757865399233722925349801490839573158208774775312994959432756845643416058227402370432626505581373170952541068183774260055439496446183839804018531592947084343574835934469065705845840403707424472694156123429435657511186308696827152966043402733922402729365646416109252845932980329740362473212739512173219381443896116641522614034654249015268028100507121379488232028039525321458906403214682623197510496680804009171648226404853733136726611800454634506972282582279533266150687779805952900308224562333260470934406064844936053194867185221068469290793833804625545333159132142918385233309437494604894747307410478276435651808506811054834520476248347169946215042948714292384218594311318051957355117630116242844480388603043810067398405331751317248062066390266928702886260102419005191938969496294493300942138120334209516132597348885157653185543677696994297181851477920456920267989813376900196824919458026738234213298875556548458619487049597963565113114147610530457586888174041989837426126050555530791467945817377878859099977487754588867413901738187423427181492695988806514551264994238678673718494477018648535125996292393408262021202035388567253159224944515504153061758007695574402750761039862648108603410282842880540820851869899393221222741333221948787371873629535779334025991261944310877889760077561243702198349950219473800580483227498388112951497959302874950419900171905247238206995604183003047207126008498744049071643454522049288561445961021352223651959537336996338646768005832974819417729905797787579865233384135681988649975165710047425420689662083589940309577760921980439026146852878660850103616647593119710213231538835944472157586086696449822901275766362240166594016376275456732185799645049132412278885355435336850588157730282278394886516633448891751052237595716901385741276683244809736336821446391238173892767513172320255151287039738796290048703719054968893960562134105067097650199492056952952862355063531325702890976014264828981942317257897730593083574171360495168750951627036923642152573273916548049203574542171026836969403209331806461414859719350669359536396622217896033781157601615375953775715880515148621040911733944143442890405198936337579994001081605971501202207984646602247934759191512888160676528853034534606138178463369567598574553076677435349789933604554789816131270473965679818803618673249960215895504244698458444108843329942060518230050503575495887245114871223778809802981810492708048191069067167858251958037950857749189725783920063581354968515858776622532428542637327912359879216952990734886349185273861490275438312168480135690485536678365345264306273602736470665664652906779510271972509909913067835641283235322570514281600352970192626172245581946726864342320076441067274711223288383743219447887229734626845558555656906291960057286863964450310974497956791324454653889368321625684903587749649306594412690962013854609315280196454143881136391689578431411966102994792404034155297669115004564396924644160706762657643401657092750340997026133335880569222457646664228761364639511168347491136341902048718554826072056653901109064173276991574546557453425612242212492209682026414951083848721252770327505433968821233097430322857379938318650581490331999412011740501863877510868501956928865657039169992092700572354712416171718318022936095601801889885203865568071551484541003223791541576857587640507909707605289559459997341739997847353524062842289313601683914521651659746405256308399006537783950793846415085612252185379023664998990866280765989494857679392216019481240650539476978744272593877801760990671114038824782971220047581558371138993874581993797595637505042472427728259365021617194323099751008363348439480321644938745504046712867226645022508599399149443110483912447175622921034830530803663601557415785084122826780665367756669189806954815673299741951485639740041739894397550657384131000147166000376504612885405149487830920448758284968192288153956107219053251193518285040283073085249052905868507239507617542263221532435075313885771827495982813783195457888498184926571751729211009934813193775598051132877785653856846913376594076459418703616851533751697403050063169698246891084612721691535369114996716566985431232165936333060481372315083480503421469140523512117638016510433637100693295951006448378426424313562092885422173616874950702774407593115718989626698138670048820053300536676205094931974267604824511728013287327514273645551095829554502853612660648248748002714450317910352787387603993711498375523400680504421885069414235452052875518035566854913655071740292932766308424763337496522318876543813467319729086284522085978349556779223398805884482276961924997501157546099785279129178716776862392442076358779126315792851275512525005869612466235780853764769516083673579151792669845300432145010508705391607857614017882706402929951842728229214168335335810703437247883191532580956372151520602119637329386289125745751109224609140008969397881145741722540490220598971524247304986334649490384753127794959889506522764853261557988963901706228830899278203728390060389857926459876535834047081607339312812549476463396676029777330623902831815427298005993932644863150668148165149029692861285375144837404242924990203368723450253032568826371300457442450405301085260423138268798992489371738790806699838811608093431544710349296198216903872647584540846073043243786231534071370935661082433083921790510890669765075261104002307555037850213379020943727635893915091697352518648432406630980109115804828812094932454920452462803130197437132479823395545322678191205919329878094334458416631523075786345677269653179356404083420075219602672055698762318017802661487983306674482478817459680732868934468395273870898959599833018377382036760770279923295393278615023618281636173171672448825065055758499327864696991340973572765296921253744705227752484418277567137676542432332178094008840857625877196219399794955028169685132237457620238313246251602152144360008883827241544285637759006592498183888292978556573029348748156569207539948106129238355192444999602503342049015501117623946243602241861134166405563350199448009915135793535104423233945249079643994692716074398870573574041067667587390613175679771101483423176986152460542971119054811538579182858102287475351274995947968511233350231826336547344588362556398629247551543387702234231399863160292480502647101516056856120485785320074688431093146640928359630299646190195505874024034244292235177629157431433478054161875170358951770920959731834611040651002311021823734499198072917346465859305086766395219799294699096634887843346429779048052028465379509397291261233577694582047498358439085772343893969139130758572189493271301922952214458934127896876759609325493588879949857032459036627714736091422094561255357871989582150350456803837861794566955567771569645195807834373777527712499948349063930074922308775851607923054088417459567688274293672463073829019762901168772634772919777515603840683507708949002799120317849266420519357043863794639764748423068087210163102210136022993354297709552841087588763463679412281568410415518606000943061360062062235721479936366673274126694696099287681675483360005967775947510580230317137303151559542547472097671054199975310943373632384112542836758623683750857073046655409978638197362823372394058392409005519288374981706181352458817168013515566754699216187147924924142144516493047919775343628162327380905812166346418473829048636018975170022858639711011553908819149460245487080636287074178256984275191775048248238847553791794346689872844171882162463701446452520256222620324059723046952395943000418609221271597524310228366236726499047634886398657923428116320181036717173152989593585372014615910434234417089781404469610403723437999671977163798024818056495030923997466122152596399184152095030813608180115918262685867166738165052341662999084217716296994827760109760515483152855321266057251325145957461387438301715996794058430227711042725816095335939702009257346278986719300534789550860121534038507258173523193388798099400543005235018914360286024753321606866159130166285726080575728133969226270089875188985134601817140957424878929741943481045098656782673845370649814678578836523743863295851207753891535908240518353223786313593648865179346669714047509076293698150031234690591144448091038436827649726180188936206426136625978598261538299884940122583763186076318664146389164508033188325811850785137509969842187382784427000731350675180476952576372193781206469233011210015173343623644538661016733485548385334799597030651657200990361300666147087650844044941794132792181276755087604208165413135536921078423133963893394069548444162174341670992575618540803739610222519304003294261144471821724730419437607148073123986445510787729533187004594831882606771682688588477063726978029555712429154506690787975535556569617188605784890396395562153216235376796350770274985516844175556270217166560750464624446577391535180219226000301689849387025906015665893098845532957476337743360738309541982745531438290688868316663817151365489962557489155615516816667058251208845091436514469107797590277817541277346414129565333274722212817258793023953070513890813300992073449655155095291192427038163965957223326943378727121722604161783930112085484661666224852240871580532311408339597655802772611699276640376447324365825989789427413789832891301991501232037620328155116232731477512455857675348976530643704793891534363976135469216676818179953866065765508952479885201910300262402543904054074957181559623684985559734424315875743137810119016392323351648144500137670639208576342037276491361565013461434484766477058469376649081944548688933762458369541557228346511154156821190809733558813925963117708865233102813905569267698366272417435332327499767663479282672022759501473942702515526627700823593093745114536464367575077284424095256788558769555255900945534402130583969568741151136832663683357317841476308305230798183053423063647860891157162278613292874824668491095885081186647507785987012147328814392118184943313716306661975495754702227996506064471649698084000428350298157253395973266118850259180106904491116291702428550065501840740933626016725110272175470987259652666635370944311135836140206530590388789165109597151303671876099015183808517405836084599860616946027521211178993416687830003964546189707090147000642813094758273076366882687692795253818700455566395596398891365591785731528700575874573759135055468557060137574756941541241911286700696515523608321518276323670405227261168659966539289259507523344067053997619577195416031434541675150876739261197177904827566893495885211460045492004140267961682351904873425017319912453257600548226031586939264207114022891329687023506292931714559194289297383222983616405743374046514749422513733331016773795640205610501327970054010340293800683433317415433116848109303795678326117680613183990304387980174654683812669010269613186756038998163211617457860953187998247100953655067281972515787146068072616375346742113529426495010842409946472125996404248223639667291151867818333475449223800244213419399178157877892445297877895982968716957144929171115720085172741620339430247720240526013271478515837080611776015006080258738165515435960256525248131772469329681839253953290591585547628984848552209980194852964171590693757037295968469463520239930781997141355966809162040640749491790242072781148597217858421241471784392631895800175656784028808037627264707307912496683544915846697660180989892541593218033099084474180947978080482618828113632366432609881901943425627721205678222664245937378546379034532800376066522320744948067461030669935250658508686652380864447237255129649702816394522479625409011016164473636760411879436859137527901103017734206539888035924531715367166584197365049554962297765535193317267572494314363278155987512451096806687356164072134629430251286780354440308483043441583308025446183527810003839318483816428171908107772861770868983012809355243118002244683209446676162057771805739352835070846772547219002617558712951189039517489389224688181504711102380836824413433472058078915034127339707718654107031637134184272286084588378047518110739931455181403981808011276159803082807381013097282076726211400071109426369948339840946515918848350158807514110495164976201050074115604484302301899336690166271427814848915523887161349452238357743177338686549089947077699476885585959490033587198921874732723761791230817690321862111109592616031932546867161726442827160435236789868600296698024673600100726219142950401423955308490700844877647927834683183552254794439504656567707049458636864363735299742917935944238553849444357055399166016454859062114442412548252278784904112019727091768906873898423814503810953589495225446608794397791336875850135086504601280799196341659575400432740687768068234364848373957681097913466226332970580996738866236787372902784874792288536879165375908604885252869593364558172049399398740661275496135071366880947480250702368237983318181838219329124784134212027153613872466774847552578081754798087940550114853963311701292539876270985358164052819437181323730384469077160345922887707058378708678596690227382063263383499812069268891103196122383234827527547806550854986472564133546494111804078322177714489476085591840934678296054650765610432008564156274163507807185714578035454000136447717259517289416437093963755869925557048451376948796967175757768698869193564839344534142537751068529841074991869244106350157295009200722122227300902920711275196236778962498625072103205267499780600163313442916283665694014770063768010527959894088317219038547099096235333631360089144433186893304527656311544581878430517494064832350468209167728327520557415197655328527556137164082666985270356430812258889467071021526188384874852667880404736893263637196935340858963588675708494353580338034549557291607429284057313141423839346786252027227306651414835635999605517556698876385527498470473735742780505077653626001194516453674765640414708944582613466052056526537636347433797850259312723794421805288972408782834976804018224873159522624761832952184238386800774712685419308011453788741692337042786334981041448253414499839555696803755864127551892285849265151874806599540322591188068310483021425007039251722245246122800660547438283578353317779546659556318558600941293054279751840102645931293357547260460125443945783512965915195430472369969113474743228968793491474010969773025178602558247468940394893104187137899724037804672121503709975558373543677044338085617925804259003041128704983611938354206488178101313250687752961792290988485873526608598545277976625460940884299716304798762355360184413977419076239741359740439199453493658901880929316286188725908946250459493923520624148922654989289840165950901534991000265048193245651539608064954442532882953910102599604031109844090049562864577014178061879607402726234453163546396245231389070190687123619360037394773789072349521576202889069527120454905572403334269009991311259124477531002437442417035582126162193499092690285928491764936642705897571560872132874809611989036632471211333323935883524985722865736302193281042553066831208411568509230690463766564902725946768695204477321369359911541890250869986720564890915488147951059407534194590128480208782164484245495958736005237375554282132521113317264500872085573772417057663535278594195317108814863595420187577932111294483868949739205193185799418828483001850961764533310538497282652603467048571943434773275742430444470067391483144596197979538263102564928397127799181517170424884514498433054389976842719626410763744002590197857892078506409002145448562182499799184605863261337871947697627244754521492544262596236587217798328460723334981718381479479824985717006387731429612186754199560500600584450203051649870615894246064089969701212366850121275018324428798509245200555760587172385024930813434653153296964005092972411491861172184338818035583326099516783970726749617632105103304566127292058300248732152771859210242647710311082587660846147644869166487815840032405367164030846117514781854780727867949103623485482423945708871316432915863678682639748585939385363452275656024268013645829499828171654585242762796461277349353952953902629139834722023628401608811932675713369816963546098981599856079236539227337005234938955625330730374585349006950146766640650993203187307470991711062065204579888745276577241613939454475647801513634209013661222645245901879069569615572254147409511679125504911045143000561975188033535521140443497754633379416755982288438893901429543408537758425686466518638660642594066790991385311737631121687415821675047083203535327847100024983651722123986560273756674467302614315349828287454129948906221487263289317290504586341493877885831748579175395855570318580609381699857253325335526919995261080498371524053943995785434026758736603388559112347080106779128576720558493918065578136363998467723113759296988489680471834918833323558316403311007939018133058029314794900230646041084526609767775428730976824487966592458573187963907664165147513677892104880901283046252294008392361543395652147354719469834623577901850178781175257468977780487830090198385576975393587185578716737915750762816054257475396588620696521902508051922576465064574466139796614093008111513351151300894272532763004150678771708117687231049488290324961913390845704581028464113878713406883104973919875274993592931084202767681375088836749182131250158054432613033142647140798308447588319977827426553642787519146904488184690794366517072139741782839210157463951992641716961746071505975452039720086840015648742678045217075404083037037908975849905844057726342808715417374297078152221974147840722464955913513304063189243098760459675369367772997363065718496305833520965120044726116829821626040646188765513866241273909476095747654798123162064087116126045316967419573570599715326843226101777064508830291871162236941995445119948405759568673670816741336511029218678931146620986163484670048673045215487648107456354744611211871731528422941046898197941068869877396135827979497775870317958528867562172630062190330666822310663174877903931800037164331259527146742567131157415241507049028344134655305755151066454072794342747139301736917939105816994728140515755133198331746402292798882552509740334042929745111357427758523422011909632322357566735916235569913051902414911491913547828081866888869253427095283884307934405602027940362305891998751242131838180288933417032986242025080978873071049298499767067088786992450748247551917393401538282575953343178813995229252733196471849356947137008487817763280552148452170678475609879374244133769094932019125704147788250967701615577291360740591173711608814855285707698065713753431312621663304890353164483103128614446156895270943970052875888289151473498592382393954594516040388209741538144776785643290079759326484817797057766711813110391513549562499838725505856726534552501397250301637470501385933308771755562658102363242293267059767771424720690862676957238526869918557724936730123589874687486129437458992676156183615850919855253045799348353954372627212122232846328770102539508231116065722419564886593152939359485434500638403785695807716308860667179215217720302834451311551072571380468659014389891647692744220356124550329965073850899929787692404985028236750977521653607840396238486469625390559982455998270275043532865773243438119614453138018755527046894988319771449274920047254039458614252839049366685833179527588121929629861297585927328896163447416930474985039904506640704370739014260351389805187854328945603286664832995098877462052141534898917873344058302136095576972312301476414488404447672543436657305771936223416407408702701681998575445740739536751065194584051072470947742122225224126421812663580291476326234011839792667541651432763193352269424154220724845220980916224511671771608523234722759116590639142458698494733751054302151858102494624953337348177458046444704907868855230006743059913828504234911088463065667422434982948279994514714515958730867733486141839942747057275513957641572829751063149513888229302847561179463236887792529161222943610074825284164305095035904949907347948350348770610041634336099077318541279491341716164184864555884795649048480896478562560508990292532472629481607641465479857987665322067224532181654483311503868034319351156912860055507027886046842161335321623053083325457204434455044240618770377103583353654321745239977500919427404486822978559601562747967161756637196948599853499486242633723572720647880998383746563907322177365725803598248829245529205376754349493946074372375290418961579043221635085874297790581920305640962509998843886670780341890624017595250878251553586210074360695487388416806599476425304063727653774968501733361537522209409739091269685687377853934982233677266529787544950199343777035473848720562457006176005702974165402432577334608177433068180902139752705010188009749445572863640743904584733011861781123984111689366843392568900520737208251201350786898221984010087007155465907278247397692833590549165272605733842976063546213773227459092337128905557564092801445349020207911723032496212068592887486393000664626831127053826191043643062673867551300344668324885643737898920656252475394741967397314558211227779984483533965647868628943285387333982812730935605765575290896780195560616144212855376655546257324650214483799328304152411097899604413690164175263662412666549805762542727611487832763032884154207309984561848420127440892944708732378479621685872124258877009703129285928484527513898773608535885782143875611454582925673254354641911104411995655035202312177387348695906740397706059660797489794811913988304846115666454124222815142047544806232473481443569653559206194373552053559924641091980959479477857980965173700651967207657697330135105012585182378941807518507063036883436031554949469846208968735778500650389933075517753457243956710763635315132336303564110716095437086313489019678450502438188297996715632617984748592829634539607755064344678000528428810230211515238122732815932438492938396877572803338010133172918170697239998169610526214530397329617609733883543174759953005267245726918297535144916853307950907478810659375670484339324301926043433002233137612351530431511587171504765617235556098861753011267911650379771049977523780289403494993861765402443767678026522300819229655165662958547811131914643701000334965666773468684481438167353966949576045199781550348905909096488325178938419891008662095354031141639704977239318306491679757618408151712374541798445286671963095544163086257612939260973696689890597902865344635272922850630314911712545552621215529886440757842831770428795709265936900560091685691314520976920260271352426426522993982764245303583571148775759807961634731836306919524631349966862042812227503257672737375275934141767515570197487668577104784262653990134457457280178525867246098078574801246711712272763177781720666594071645420593239151465861582108023680803142501796567564858971015550673796535300140301999157671177385263109905879323799051793002205682298867234546683937956300204184433720964242624460059789390618565644705354860703410155806444415789776956454252254094337142989076405063245227310310219784158778801531282904803104051462961655167138164168409585161863868659747118246584844164884826413088712974368131125006612529844214245697103303154517837714251567252516311771191254578827301025410039422259480119893954964351864596995382535570488854442061583945937916202562428188010815874502154570416622634190857132397874955184421398752655597754851232240276277639670029931094148045599801045493100707619644627103641416507108796633066344559651327417319203193690923694228948337376294067101217695745351121506099903403733360935607546970500327720529038569015549489912416937622471984231868905617381188665596352294616116262057698946753358363406337803286891268793407980198977598660223961702343096260908333138313257149538213820327618903263889675126827133899948828722773735092407564128972273152314087425882637912449665157262075902627823156877950090300707935949909398440555906546835643378036613735185168916044304033116247047497197205281545749408292487260413407185568348431313032124165053424196868492562062307736587589076876569398402163291651810870273101707454857807308500557241782750897545913999191756393719277828582021261866691333290917866490625380518896828878785187468390064006057585607386294531566513080757002162197756830600946722115901510702304969327124099968697457157645222095577383053093197227263941020372782710722328174981592075889008715760702915242834704738796521835429155927511204588178720810168021030577450384393429145302693611049585233369769640075826875686248550597096928135328426214345415303096994584304733962128339503989131984803092958721839787532010702650696143096567174013736645497813133920589725858479726808696559935886093557435413789422881533458133145956427599436537560858832171930800545282942013276984214977472398561796050335015189807297186674618321610926992531358689588550489419722367105790700084056016573674398529625449925022407612479141046269212426451268432052060629871167791234731039533983807823400737234977394014751162814740019578024348984743869767369231309210365604657134077968210338138473468814505345802768090869775233171853462153146752179580807373553153712048346196504350601060351139572436081596058429193352878082376102607336557464236313748510297652337046522026509449289896548032187651546961781929513166169786215371442125574322605030397371041460160727619770693304166711046102388281821231456115067872429964536923447442293583690448262211293916163812349982168341694143881123047773879276794726547633327144831773561113315686995132075542533822110055438646174114967610457503040659437997535329569554898454909231822787585805707574518096840960846944848684692866070339349024200059150649497704548382637364914502349449314320961705361739440726102995121221583908610547420665727228349506724348874988270168250187120374814441669073265174270760378691895035345614992861659975048835788938151358265040942364317382079952883118261526393417090284132750686641765714272749158809372123607864890244634275295196188586600559894723923821311936408726929331036181976127345510778774386959803481669706431102065201553863494226366284965292690465239915963379924528508455513591110265368400022833035531390522679085761663956613992468734599528819275554095799457762038571844362138819362260278755268233428468913960473792328580875650081111044994532631877427654468563102827968901681269071902009230112987310053837531253796152762407766781942926264371003423246928005114042534883998053221236399723266585019649436725748836391990902855087143143640744764510592746762669305076123588594815383701485394003124266993687259561995782918581985691165407754246543522018555037356011575715455600286770598033479651362248811556667178264331961613649166043718560703952181413829389425916095149779398967514805890605695466715743205014373753645415328943651536996810427620776576373297785077874196273264946884861688011395870217803821289643230312284706374680509259266118358304186977133078137470107594682176657340554622539114184888049399285418101559295767262745162060510713270343068021264970190007287613409292209435166792293771279647797535607754676802539939242707357417106058510559006990756710105345202831203668813613262377385378053297097789001988981038171494214025291923154930574084050008093240080214814852151976440762991654548679969411481163509721724660375317263094907417108779894938067314184623988450406058938914791642550527256090819495276830735865590565716555834822859869958237611766709279789979940305802818849272287499924668733589048570626848697508389309124119650037464844625515194307638386483406948554873097045778294687610393333169526941127858061205855079454712139555150088614725511757287752950553419017890669158551145131251427746187353846366691834183492114991130784929192516854345600327541792046578546692978509021677945991376127177770097996849849101535142543662501715560946557329577931194609619526443596463069903044103907194515523493057727006124857877222713432246947528368307802581041018073953523829428579900149532550598700851980287943266484512326600151693022292141932254866041292153799960104074830065661044538417637703175354085117267365521836101200335370649969098367508060459033225867935219545123053569258497558360941254936770414606996961081350140478447128071885646594143612558514339380729982615831010597358850082189983548028728141871787297433557633208656638743270933850836929104909184849312503788040330236687862330115875790122444749226204661610840223389470786662395537376284457942476410510138983402780887232974748315861587158967189902749872590783904748438022719387458254338985181825759528666583365268245317559217364562836766313408960975180859686470577435898312796710962473063952284244192637708206571243371296759221167117957529017932877279422406266998576295733534976154962210979546576558936719399109216780796961297533607654597813684520863433313429318175413941734619157251419123758056197814874059150559580530463453767887539226617591168630540208977307525721093272866181510427263559903943081144293523769450182724045362604489829833469615896471283915899540599458021674405608408006648034391688440697606566757664582306217654503728490325849697421411459217125286912926669501060840713723813237561815568565363809375686674198522731380052348386213542074570940534359929844470408353693659591271232252611003950896176392420918036527465330139216417839520039775949694774223105446379186907184249366331611363059920778659607219536394915935296964521530762317071893780516286811242045003678710766911712317010691465931568992858080343233810435190008485339503628632854393808436873098219909077791362376557571755231434455762223844893080298504579671720338302410899668145510710007310592320160812079737790160670223809378449692600992076282929408030351554261829789580219760707233354630622498776638609754466952013983303868054364333822774371833597206465424065727416389599820400341089010447745959784637112809734882746334518726901436992990001644778858306503889224481119371058124070664364116435604597524531345026589922050106008544457198025578105027006960319631789802379964656490194552374823939795947167246892607435435537789811073625509841161473827012889585218539133702669593326902839902946551809873841761787315756741112668364113951944340244579022735158089400298140101488362434741342778847303379500899329003242687531426615603359107650046825658753527284258330804205845405176941093871189196602043470704139245035171907739085699083604945228039187756219431074135491550289875376560757906472771671055629369998817628972001113389792271775913129613775583074444393935953017902574170577814454377673643993357476842418205429262454914856754642749404818384830542006331573048422314224166717492920996326205630293457134275375097637292412689899317994207398554577054051792800705916881495035237695490457890651624558769275657467397690894059906595742907289307825600519795037741879596735131945916335805521977256308339188936707846803069886652368288544503152605441734866762767935107519529492374282256366616184582099726485971849051965328077064604555364084010485616970393057437567866987747015652159275489507608038259635625241924122809990879317596841364455235255601675244860001570035945476926414970461371312228130048016669860925564483735768176128030226208104266429215842453899403811104133941022060598230871944295730334666695722389003500342233481814058658141847948061330701476493090404796164882837131241397278288070377562622998408145135930533246255315809319303167708936756175375283335796354578791726109270669996975320778992853469989043991589526573429336790116275007022212104653274531126608155365058015805624704502054802007729533234830919268440426725915243584978342228746498900162010874056098027996586878426408832806620644151287834711462367189809097331323524789533583775602248012084438579949931662253661937306624422624390257661345997068801266530340007880064952956734131072507034571746421092585114718532911498097940486030704289309032402801449090407263398054486003428560231244358913512501795047320946088708000146342481118643013385588501100513085714643031622814030064011113091367712261889078757287142111112144021697239328114807578227070679771929352310572804052265880066560688779436984712929876919694812484621512287774184366142781425679983105224519663212004741579805992139686100083025799132345907047923951495445577922330000261198996035049138058066076306224720046636079822168264265577915409581525763733116293972969361812874253163213761462266346445340593309287529135415000653645109744536701512068723356179646459690419882617692559032814444728347193217730944189283230392266256590646880413500221774817920915865480628315485746280141144819199314954580189618566333585878477547368752942967259612675821080385487035149579553851090663372041927489917638623648152299871402349247748070193529695472183218730280844929293291071936825169101870931514565162569863391367865208236382108187515001005889861978161533472277571460938118742235941810379382035964367169369559209191632545629799189720019454398266790467254023696986957156800337895876161449752666296910771777633868992323342860192411985209647460328702990374981058254537614818245346185133276127890023969149597726919490515918867910174135671001810623221672913933963894840792634339123670848489173738169597190974828592955484128836756303284192372975334899131009453467249174795156287656737618889854350815774642984277051502379266984010155459948573834434877663876649048415398312030325982040356333614262138504192547210773539871029287730716817106068963205019480006083641101694978089211037281372281192023611811918402437816026585042279358475009670249790657485074470704853864930993793742309629280266286938651494936031647652496524734376247546741497815052402285298131612853918744373877856407868145227889424091948103012379802399395153434921742774504968998929271002664326453863451795291256228053783923830678386807199695154079329810046558564365213477018969597210872059674831816373636024122771058666021151915649592898139985667941412474711973068064552622074735203800302453558550502117584101629224443624063065162566924718336933666113575175591012911361622377756817104902573340455778024321122945665367847787835361428395827384164639207322208394076816883608445462423362726725287626383628019163120037262758023713426645517192208122142204596801714806201684252711715141938682427246661070318786444274746895239111243057334314668429576519740820319346079121264530747237292325888120500417495639418021068921841077869834765618198762332026745965387468406925489405387685664466757606457782417532354169495707054307952565510953788162818520435688861661223975362159163300740474376580101079080415853464243549896882527684835339829043216061125544013181043732269580280393812496753462556118269412315625324640722296905888274774269421322604867009603426452425535113388993250777944204478501828663435959629841965428381290111942573445283165788710519776215958191233294154267722165608243448987386264312750440074617830691228684320984827401733927019314253125630220005469329310559301740768753961544635331217157300783431981040526532657065662802671703212391707519327792945721450570834097943013058358094374142490445059931379794697431259830409257338432868862395128915015737353527703124083273854117621253941016968313499775558128762623552242714101485707467245456647743053132209891526884977795872676915689709499139255764793485134409330111374580548232876459375497894735024456108452514076843536650299985569674383007974966288524958458027876222522016673080743668959309824306405063215185124027272940079968679167989217889637529575844265779202733497664769980568350303045725072830621356313490586160568367721145109121049661658536915179558725013640061186867839370047673384576178508385723814527736627470101186273081887480590387108815558280596166325689484908736224295166772864575088710084851691099332924314554155141820176027347182159465433823117179596626202270145825277835063359597849921738516807908955919394274927039108574866775086347162708016746177546653640774577295815236458234742157478105044707004548795990600897608457344201877576690184609994875634609555706898468018979741548413074350580032929965023361483156311828892749997642204768151704397022122408781550979187517333358099747581686039882081042160862202017359120400077622351360715622168385977935623627216881040990422389285983461544223718969848248682009089207446862348452354458712442028295248809476109305243602999956571251029675653313027150363828985965664068583226711867067870207738213279646196260758809959884643942965429251432983690317960739441989464234448174548199367258368542773597044655323808159514580486546635748046009104972828739533611150199827625628209637696121194597844223732265035507000505581535369673699209063646956598357258228229198659913004307549017771008739730786410384664613744637686128299482262578596898541286991182805027669411691629970834614088545036276349939687361887018345783338282432580968311761040197367716432500022585156174011588127004960955520031850313541953435879952322445847188397159856301577139989796336161481207703093347324347461918814392543046124028401302796212457333457540933274434032034279352502295099186796917856559285064017148130727442352660095333656314729326584239913427226043911329066288143760886334437107147546817475726995300162024689342992458626787386715636109814855751558741911321126735828324334040056931732774128485753027800154462838828079057766658218392017315135718280126363014480135622131447427597293410706796895808416282007569505599259532474497442884189905894811835400102094594564749735506771530673592858266463309597008686081918081830015674445092809577722815903007575155896031113946203698055694291212374840939392583497939503670329567446451328994222460142857055067423644998665556410265648066810094947105805536751626565319700847278535843861245850037912395097808998850310354016598786754545715401516260598894939657515426553644349391432723855271148345459220064841968703000568064510677724851466711157691339307535141883405646535500883705795083040870508217592933603004088425936272844079297577852774954513024511337323504528055377786641932234498200883650598983992496909097996520469557881182000016607348199235535973537641907394799499696247988077756034887850010934184116521163473322314278020462265512184200582249128049570575642600842110637595711288430934471550494759297870038762243033403229279347104725346449014051268829630207806182528864982878638365674224306495374011932277279938687648109709507350429253226127255091953629158695180314050975259738824595506574661314169720093262169517621156477548270260569470446149611908857828376554186117263211774806410877208655226478752624899576923472020288793648282041714978250959062921093299118520345441192273031334998978326212202464896794047038792315872641856788945239492529221100097268078427446437191925898880221323596643037031691110733728891703923832700933818010486037440629660296952937317671362366409332044637336866530070336303036898959114034997777815667104102530995460791985912313931288153355841089299226118738436382074263550381255320550797343104586181445683570014541575122841105060360174421864373257508502413003334579271155710761535662384738630631780320474279289806491541595542725319276950017958821630975316184279630674870534584721358182315305336923392961197745734221150537437959574720513071565978761700194043042506837977033287236579446824710585271531835914881588855419069207635392200018278511285375257521222055219722885647567897881290515599041503862690091468356262274454411195380620066280049666547654111724893807251417495799098193778142951822980281270349185609607960629237316815355247491459350451935787575334454200805426629955154157562727347663516806231521407459158345850657006512988969135072085073922213052802983523742298495883264217714038813923240767083550071051869492430488283838556613832369932637874027619131554421303464248513514166822953938293882647440507470371458806141674090318355685536784997499707750472192604482730414745611254645368464360612791258065885366283559649054696547014832175427918505476530642656533461947073847811353729893762483623360447467883669219361083603968618012704303790521867257460232868732052381706802672879236173928223569913061282022055594380127597371476519989768260255867894538622815172896299966864561989230005621996306037084144456842727336017620498669534046512540263768170778711843250210973922833574348996416202520863278683533046238353765262718033910375828199484214557177169731103806362569460726883156272591906175337607504106586412984861580227620417216368051989766984001855395624343910858575160613610506926005427323837206183607160890020659837257881026393494267447989979281048267963537278131028113401839964878836179638190315583782373917630781147239214190190632657061820068595714585659157308649860717042054513006629280937794038575217482928179348014312815205246307554252479411640300781487883155020036232792741504847022318042116267065762133450199817990114767615691459423855828942801761552123394439029965256912435621821043370837743096625729978011903473862043394238052535914372317611411135497021644028344973147722785355103418744655525615871841107267996159847855014278262426932797450329367694539582939077319162722471451241206703829177222134178395506736211790015904316542403031246155997757178669659097153024879035248367052967172166511601108703518651378610064199260183110208007634901421970337129297329623674863696595894396701976278550944004418832468235391450575189100365669919925028348395739678638742915580602223989331945101983799963402340273573085608663281310899402293511284078291531844400835207872344843283388446712323283898500721680715549385666526274417052117909795357288338397219840627446786403652285714731488092372381362943902070605872353248136060071928857873548921368736860349670620275120005511000758400765627754168532159930897366475535156988643065428252570664621219898337603754672505958951347232189443493687988181849704238968466750333526849569852048886467882773630721851991508561097684465713221944518248730090990931502009395462027537839897814107630950685155911071782122854178360594981035207137709786333829420885651500076342603100932484433661664878104116346912805736707815693766670727400985907877359865220509836615310911651263565558545446750216043658277688648057494061443485021735735349719219784251715120188561841124508771334818480527864538025117068004199173998518955840074870283828552319323006207061282346816451658363681843216597494687547061531784416827716641553469925033639877328949580913387471473068932342488239501732783830780058566539263115945413266320047891504302149958591206808531960060601344940498244683771887852152734795963128621450987172905204732473426009524090502446240822301867470373837356439260790469786188079936232465959074563038981050135262378860010372024767941338965407408690776917775147707038655543456889988101606719466092637992526397086154798499384326992807810165999798819632665734340686184949871839529310206398866717991938684832236183315718261651009908173733145769742598590372365294273176369524991086812815001622796406268558291159422370857852940402421583832019793406649831218038687660486912379155985747103884559877500033826434351357744391359353699136029803443589829551869730378958518996492547356563436598447236659881344290330735909224427148689523726490724440121697433989817113266822989699943624149137864859881502553544548011429201132043366204049047355173590203387165743150448435781168851628061200001065782886267954957131584903543929172518564550242512329111558735616722511804244047798684130833202715203426837411444593080523114560093122020017670483499655365819780178284455271883770334314912995854549725070043488022842395752868105369898412353180605090708617354542664985732586077796076666594934604372645643790302117448094521023662150226005252277158290921810540573249319744724779943432261717442971798050116579169837600359035858522697657698100575223256356923292133587763711043518059929380236048791359839774888068996656889484905345442242245012052414052752497207778046562036929106093029059529954078633033030612416472224160289862295669263534949137212124406137261250089795217199920265762024548139684363646544559088407686755515609814968553443559006501847603247186580269072841457596916384786805636365756933615776343631359193782661243959945769983109534691437259824409973557610602215023416452650086127222767752803510244377730296900111927785713348783446718502600345841609297471991138923042937801510312929313524486935460563829366134978475435127702853318891001560613597483312532589743171968772724995824802693324224988212015044869587741807528938602347532895848573753896041406951697869214103304270639717264342227928737379504663774089419673410172524470418749592180655420183286299891951476400280503839543595035681941961977191521629191858031223190910577982800451049129712705773233100857950238052605002247291578181906821547167460864571473372838022080008195823725792667871512679005860390020812744176553002402135979252451152935799783853980130029183213788086452133397518754554746149280491089559218860146653974907471397166466957159498504382086843077157638676021441989812397630986182734205929329387169515755302491787508258873430810673949832130189384174610309520757362332987691889646794935699563857204374414774285352137856831268777855528214598813678868365425207607434916635520858188594460201996828920106450705414265316567332133212341056789401131224310964764754691357653285724110941900115880381844245152899245077691991108290821453988400393577916046217456401420633405151035447993705639779332148893635488263120783810352853079307819360975290138205821637482112449703914292811184986518283436100596042037328122819688428402141632918769264250556059049252072177353544548072920684097621425712168143539213140222680506530696589488337406866513494251941361778965853464161007732369272050997342123614914400895425901339341297787416369756949947259764012196071704741955395186655407771064779880494470887557805415520136050976517903951968856863881421969645868370396386755942007465615641994510026604510012794693253618454452376296182725262471859841323861830566950362543257665558791875201138276254747053192281915016217694720683195823207077581072147297397557684524736423591806442463440810397368627469789449662968666918854567358544685552016244197222488941170782903885365066048770205428925393456877231225305244830858607181123884245270521533889271450576355532438554483806590569444081542107133694064084377153256280603070513234157899710433688501371726285714589353408221618182690347602565640578138695440963171592843326928617619267193894218708582167274213253302281534493286747633839693694976800071516700329349231949938245893261202201121970482563414430721083481492196528817815974948927770418923136268814177296017202564591666706367410422362693962229925559238135439246309639436035774337361642962850010957192195085116806988398931677596324253826519859876561965732082762437084478203400141741189920904475058668847638265305900350222324161674390021650169688197575080157847896901823724105135829649234632349007142064616516794060878167149502770714711369219937166280447377325991397556975149897527154922233808055274611372436774030168529402647250671981263993961665658674267625442494555751598758891980102277550312574755868654442264251940089474588398747187589095915245592980505419069534762137470122429949032871541365306093244160512853866312819914903467217257040050525739928240968111067648087484288570274791046896706719112891385581572788032502629025357431066918356499217178826815434082763798660963218502126632214150968871197886022154127306081981509373808861290851132914100351079243076046748475073294702327392069870940872510792101937103245245030198176214466551290648259696977584732945363089952167286064424426356326774747822214117599999824685678569289893214465301469490752322886958691641091591743459460525036281405533431287042225551763024771089914485790380608833789964698256369041354389393618927797918020951186339293150766675141828490497819634859945218384504077331045880707415423619386760999933999998430735807358606713891917159407000476328039001172012730208014268969870522408668857679858058550289985818588128101040687991665720348150729880195814041956095871984932004010133778610579654242441550134335139849766673518148062305606424075347877036566393912971805390022259876460914397000539692724249324005627753680951624664057573875522247123830086551285655638373218100108128795192135085335610863604273895044979189172551568894501593807123722864156606957486758384778597376035242886085625499529110689370440732302976408609937504101790193564323443387038972277289564179911762155133626520136930383213558741277441000699683857690343155636205641279957430043871539123421817067492363366440909821160234838281278037329514212947358733506511202077875046194423499437158612444534076641655775107056703964661425765228993105179058158633903591951389596170998970812730009865277821378513606443055879838689408406031929286397422498288759823325547225559994847831008359351263502240938259399780565990654020686009118771186935801130832268720393260280794641107080799227924171922844036053089952273680260594044625658193611281326428214036234268118221318004748921899797417872536579152686968875261632580375308448917607488915842743928584719379284364810869197004293119318035533245087707505706270807625027582409903321172217569914712823404790652009608408443993974754608501077207112939444111095998471175507510639260109305488247754378458925062421861936386943271156460508189503063422576945650267946585808494308036391130918605482186684649367314897128252345245778631797562721731594966834293553540073777721111236826273355846897123384027950423784307282895711671114875810417952341398316876207799462315915604629553138305860764018177429151145556454803425541699027360478124580005797739806401394697317747404679139208743786535777703450064260278038505885522002748172261677539175055730698972800503168956835085919035321229442738758405669217134888233377537101751256212762227026259794493573404399184591139295696190459071868768602073977939866638117865670693203964713255509147212086402126142141441287931301810684996741505089406138203419947293101562832161385345581175148636334580472005073356122041809264377734635841407690225966070629716932835292795254767139396633029980217469729278965185665745819969723133261641130554778377297185202663086315089520932162414955190005446390319630223836672601532395761829341786755347942855445028216255203918333147151692951765440789298489026004515689552627067341438015294031975050973314934406296472473396089456528100397886637135520206313196815967322047661628814195603043825902433769185337396525376079052298633619763504842462615447364277255387200163923191370263255153717898640962365366592247964640722281562342079464724120271863244589590315956676828248407376775402457344978317631067007734947564837604008182971731568818064846433066303398794635481603457227904960285835029278100940976808926872691493520832417537841991518492850887976235526235764572535518269893119144713174916127063415840005722061399786436708515072038190655353660562276109374518865599264382872167539865628884788514206226289920330475594599203660870585221571030994346784253328338639253690006384474903397722827142390741797081473084152105276380460665641057536296705710488289780137930145672848049972024763279099884885293044877391746195356728216933678339970837884747899966747867969546462911594917725574411679096646863781665580131483631593952124816380224109280327211494314256570361120777121015510849448720722888226965388978751123841128719650127889423706977578607742505052561356600096517063764346019746052674912167345206296033548793637218991539082653538540343809223736553373273413953060207518750442763142873898151592181510457191203558439322097789572601739299947006279549423001486486174197282579950469714966023732393518415162223554891706567594292875818767841903382899313822810144764861428418920453601690711206676786868757143084873175753232318865366906827710081998953268483721834772226992436329972282276833495692194406885929283392868015518681235070482230137355575277523934119487654345737854096137293181416232169399657048395460954511908947147323846910596057107818257771392243103306215835952967446130040919727733128177537293459145109040738409017846967618417423261424551621850426435097196664217622205997639694033544676462610039743878101936477701494554940894723657648472477603386783830932268518221670519576529965900424529373066804156217073580792489402191356485940514745448021088662583003846505987013663782961323174153056130502165494896039201067623465408440722010091363698229064606601580926799017020670510289307374801796536857555676346477571944532532121806156410967887904940669555021226075811199154153639874414959114702790304368132647865733106458008775944898900859246037163176052797206718391491564550263151080388546854749044622345709911619189063935512694112354718328883406896967880540825002306514541519361462271547952842492502506766610507832245979998470174677979210340272774496688652643709844739573847944130268516211235758187325298619344076931332870243829860894986850785065034193459021633576583207749852863817389933866734272791545305314934598921582211701816007132227639762311334424483688913209115802183076124309168440672860520895253158040122947172151693744589416195213013232760819139665542569780128143404922902525030269473090196602696865838444912599024171458424254637601902917219854419437589124806720664770709924860056413860958395171546976082600185074214318098308612836342672451245434014352565839846457274085120243646278926678281815559530899226325458923789077895566726693005581832462381582743274967731945379536534483673959178010426470374302221065547518429238081569748687677384046193024032044426379870764567918297358220841654691555157382754325359828174803453627433242801294518730501516067963239751855111325155851846917146939557961608737707320683108100771981179573261327650660779685595740678164022076018712506363507686465457575363969398512075906193699776739878266072606063955025806545323075371921944946356294977867881037654514693064832882999966573634634080001031879521854645583011243027343100722164305752645022069737656698708179180062036574545350763375759776310074718438193327934645133152697105469163457903872017480727421330830241288425154234042602022168004268806569545002471530227508259716396580369592375385034313599163139625396724987613037922071184276588613911253680831818661434829861154199758277203341903942456045312590558268745980464963608721897681306749083240130232895384445972888142801954346274165231527959085255498432650951132375325109114797765403068607244446982260518176805621668739856466713735745474058220174130993079611814807344104867682997273957931928740720411808491910118399118120219772565947602721112998061850850532626608318089238797526748750560553146462347911912344428834509327960598490703493757434592606965681897856430664530991552098371692277418269683647072751053944805073363563779439005784827051809472512228158234291064335642256169965935886043283603188918309274579523477804693452767779164790797398597675753023149742966222260647492943423309588024724099848628376214398707226359939390467210422382078067151595806514869341145640068803807346766518599978465106032070441056962490493201240725021311921198286195880160929062320460234704236090834940211335876025707383655406804781599552307954391106836060589078965591279974065138621179161104352549602558697476223668738020876611024785016455913246080845948853747691098188824186815119180846754079239684938426710480087044659954331634350395466647821320730796552722716550965362596810328462333886933914401125675860549640611252403003134488690769339428893711040379602843437059813592206629458768432145999063122803591992980934547803437312441083306152798424366501939958836358222292446131627314035566026354135147590072342060612436553665699236049919468765612510124350512241253788198773033021466542235027951593229942014974815316837355637027189709361665089391864534846515378403703783043759238979554460427962990086210003983013878736906117680626142723891705152846308772059679152737183794030864213673745663872262617366253406063635185556269539000281856452104141561643359534438254233680332830050295424181790217730125624825088858217984187440540553020438708481916336385893710238335240263817657714600906663886133956438760019010574211332994605145596552644952907196043876443129983741912149919842263715743941008815977495288000637676639117442631053633869680317747669547177930690563887125870213170519135225871046697509413893229309973380852413316564786311009607360470434093563266021503721315185962910828016432054387624522656596505743648621422595998701316330533901093558603406978272361733319573922806912690877450647037040253689848973756292588782934222666253610928375584077196417325890195981079054842778042004910790603602464474951408339729275356227489788414791987123383945550059709473738998268127880012164097641397727638551337211490194943006910187681473456187114334731910790096953257158681279975965411607763810563471198812029856339334142129451302398194790110708053787092248575317997062782124404633531600748900322189061775415237497553890868462699991690142650759239966190043797991480485082648045112116645015570767821864796486254239855593379060046617687021274846248861087526814940830397059100355100043449758041053738708859476393837361509705103572917512604285836919157928833123727170596336080665229624937427254135418407151342985911520200368217246294479248482025961012930947669920423957524564371108846969382121911063865778590535040552505329467955925295513592004301653815575985242432464598294957729638541427971658022031959730484447019279092360279657282657299227113904999265995029241573739345398969380104073959641607752081164552699650327477199122785472645745656680079874428633323726731393669562108837759079909665574933587416210441964873933462491019666871794977015377943392437487617547474763530757135319577750146104628737420254575198135159673033783824042659851806015728943704008785923919829721287808425831749504946794683464621062250489321691388706791644668493885600758398286392135177864304606151171079018302134961113807789267232182542818589165464705041617404999269614169898989820663678666569481326629398620023384787661963566547097438233109810005059086047432997536013380482110554244824712500553518666841589706896456702885001655233902383729114188927574374077042539690540664898990480043649503294595965211089544386820440167178270221442839515375971794216331523495483514671508358628019072509992950947032163977981812641469725561008047976083575184747439163767877170327816288004057461836852475994784846237720320041239033150159202286194791715228354906413500560069919007515368227923502183706866866715337095671462331856428213915357786581492480461980619761179969270915598051967942836877925435023200852510378185727820462374485932736180727266462259086246163497648837115451720528750018348499845044156645360814819629447362514488854160440804395849918863294287447047339283168815690077221925133460540776782167813894461524780198364180801217517780259513552021551683117533674932938576239446077737756763913874362123513938767893842361841220032619942256187201605575984419848565671991033965254675627441118435166498358406670989680616107347889116181942803211644804439522761350735800528450366526023196952122908242621811936697798020074158549335555540834411294935846952264787116078984521810109890596337108129256913132156630830496138955868457024580507089218324911460260095609190431872381138937029547755322338178175900701809790566700707121213453633972235463154965673387542385049873481023419067286369044395936547588187420487459804023701406416861919821094437721024701928200997440858407011674165193214609055180541478125245603765720713967178094568701746250264271509007838760448272708920838096428064269042840763791600040561825596588991005134011294360198850279800769087889135610688186767070576072632308142892134309265084479751201579437146761933020514594335636419165655523029543833212587711178355252198674660616195133356441992103981365765791860410983295945297108734144021974565199577653605043705955841138730695471737771173595575060408848374765050454115915927275179762045094060083322180798735217569200983241490177728343791612634878562618417685990489499901377721908960121864749908048763714741479482110745488237445685783929655786402510111922331363038758880387507187984594291653889435813955156876244117833590447959673054334555768461413821090508370955688937003831032823380542445972560583417212671675895777176988079913772710528496908304579000101738350711272850918907300500928108700807436267858239780116977258999883198090377372532716543749936919389299548414581450106239761256688565969671692741111656386792508370419472797730123460100828852629912005897647826161494333428425723035922316236968675428062643238090481227047768067948391158623927744705825887686694942325090175978323666489582935537483674308983299802445036431401846944602345854601551182421330036579404350922633407713745923092046489418095327574227855102825533212879975062982960244485479167078593152649331486864729507401669046644233554084018979991382611099390789055867810336945653408346625835105876570191805840539950130030676363550661849157947860173041765869993350246173468014519076376914161295110677516421506466520257187079419311625176540175076476447425106749941092052314666948366684980715307262516864816009752749239658058707084672718923219435542986686841923491964088308941635456099122526169655358195589412372006975826898882084158757464252648254024107399745798448420544666799687475338269418368996648824711635092204733881926005940852770626279114042611365476267528732583163747235822628063380090466699429942951255069590262822643302432318396945702008310810074750433186973812074029851070423801291622893285240795652467293985590030022647787653585515621575934854613669414691370433816866975732845403212880015401105146600213309612339883961507434591892217968585462520656974043492075754854820138499318598219099625839396811999183266644139743827845731271216541357165814243387613905805921980035529095543666263552947371255876558476886140477064384620911590662028789757041670665297441848613276180846050043521309169342268398088423449294299144993840899068299385901835692882440154245970338061410377478951817063620519786019847392114531522868328639295605718172803060011930217623084036958341122161869452013673258310923740416270845380296367664167895742471002827246614894993884666262079914186596667844975448786365552446744828070931345767823455926731289997495644560451835652876634076352072419186701671923868918287287740372534099201312425733004928303505617788990856388096309135080474271119597884717918973917248960538211178866500620253167998951066053094473901169032962751081711812255622930228114290038770492073751879651677501247957477111088074343115360494675690317685170202801489192249131361687821930508764312001886046604846139671342423267180165822194496373986424776006839079424001427869378654588353134524558042426083445109009980738432672372907813647084993034008193214208975648901713607734697259507815137076711210269332399789909930744474263357787304028816301820583084338325201674871991272658444649167911501565191002793960554832226682154510035757833549436682275877315611358610027797396705472665964002484570516791635734644036958173902672847046371012858794592619146126239331968739227626966652530423640696313203137166540604707050195388392782513341717414995215141100208152351648957834279768521288925351096555258988336166279525880331197779682437357654529925020017426964892205092948815080231976805551159553476257873035781185817056503219272292744793735708935325582002291841649049676121724047078185560075026003381695249083696708491771716304390225276849372798528911654563305402779974351940254241167704773933257959066138906949955471181006265749747603392438371559826340123524208752803779546479442401228814687485971304643198887656544889227623425316647291146969862413026857821026084545046082424347647533355069091789959447910901656405108572624910216660926727209866852456058466625691456656705186377860664030391730134640353963206432065755859059172449847368061809552921958658915149093029912837824722939322130487893615817445210179675922190873067373616926362730865240721405607988190532700986824115876393821310115685007141254027918406761933680878857458048693211996689697699993144492109031920987187614808934950722284422310690531407605096489951702978061547090382094727486756862363138982382278440489417729858429577483878672224171924519398447370985881141551239528706518290426082539868429650352999276922572085630929654030846774378882508691644593932344907042943088737892369392709567513199743856349576700249509399964036881633684440002088925674583067788592307511976813377303754988033614286212058506736328223880347434154840133785449043423389194736329101855937933428696434503816688818489452328167207782942557448645694267199667145498014835484776940358751140231516566923251114519089419358202974089702274594920551216648438981782897820297716720951617265135423547806360111965605540724913703624327844706794742495322841953769836752875228839683120968533474001798015028035847246283275962325390773071862676590329279987387437907158176518080638480610209485375335477644692137561237284733268259609869848156572925045509526422758368648716010082357827691458350987867567509163157873438853952754938849697130508630604287484203706861287762876619655649074747891591736092381237652487283408536861592483337880800895875662297630458994762188915261966490007067619250104327361294035282316772840178226170919324947953555094479590603216901744462397906306957464762333701584930181871116852146449929469330149483199967357076952338115552607148124729171184894292984640734399269254979401644952991792849111059575839037356705841684178091189239829685602345832754824782613023707543645971981843525563793843967759015704891690500671327818904999626292957730508657364011478764032745242311115931438605052330000104413985079493809209549597848036720437975458612761120073701573632786766860441723728012435043236274693154387648481073683695525090683500480218093338499175536210229500186912026429495078756236542866027688568513605993879556064440695759539180435678887746190095259971664735636549946937379129752791951106307210104712025999903667467216419477035142448098134469570201573487529212291182005246481431257385509816848039317280582799635928087324913056645754193901406630968463149998988432280141453542047151702453430327533269963767651722203847320024893343963407184052941166010842925890739879382502219067191204356206273639282420112068020480431954776670221881821838454302718641463070593753872284143285131536636190013108416435392362556226120370078347100716422968257931283741563603500155656583959441739125435381733980910795615452774944791500647355136661302797074935796872783575564377944745026658251842721336317649113901829225147826904549020632823250639639038126408905266034030388119955211326525888872261958458071404234237828297476208505514253694612437047115681861085024291671761646698529466389778641165695680967718900861052257817494703137293636088042720766491649155390257708544252215234001084333200306684499580363408147749366872258149148379457773800974185334297084941243349815371878430656559113376969979402574906782250515672872737986606705710862440081882945731384445301146857072587175193248555317532379175915324846171994423730488977479683344111022651748449557336814587259655083796181359461665891974837938532398542604585443818639115049437159403600752662111429698821254512525591004373289744425016642701539150267428053336786673628220953862993562173911531089703519447323264187799905092882978455201174709276467691926459601934762337172486911190179399303200654749103383968127305198974682158633712511402415651505971110163283622253985534328826413947777560472082684149495882750804225601191260245538358346487476815273086603511329846603298281212234358805198108679415189159716043848554746602051875695553314045373559437668273523413679565985962501836166369138034244597495390753462172263427499160378537456661836808900081307100884591197199860884234637493726411484676865551711265844165997773018530389506404079880582078770031750288603035280286865770597971774253558065481152162708581004895291966284714341189090325988632413661045545876856773435224552252580500810448934002486581499553270124906421774241608566277536173742190452400305668336847681391567376444508648975323756880298346358930494283081384057132767332787292503782404017926840726984289570924414626868762768557293112417714936907302396110294955239556191129924509686568120723819714626920472762187925749921744896105666835624702642878150148177617276117546505644053935323096129271234876498921997593060256372641692045245103398483972070727048960210623797035118868519712220192031916161381134866343077695582456852766231166273234166560733458242766992639998341694143124670821539349882930887370159899752153008944321772870429057572066096495596760376562986712084095296096434540921785542701483744754928269660854942613705687739300590951788499803103350487441764997602914542526342023040659349673267185204323182896733574588649758754220499397626186575432633556293011838212370214657137935086866281856045613943561559769670984787376050904682806380766848840344148058896937171717500341787030327821003507554556726713827493598722102516489839902573194659463407050430976189053681783752605751300591441010662130007174834720382103226164843897138808615546642948463827236577928813682083721398370248642005296473852266453312850669563728802865226543593225882208054076417418984138077166823111706456539423833424222499338062917959014738582370246871647047083934646962512119913969604591029049937868241308395907301068968148631180992093116262550082097617129555137232819267654624429401896943070325441281089267152704421241205330621861792876303684851881283688301944671292682278851919751554542523753944195306218536771846406824301937920304525217319196021966440615171108527822748110926473618099873721471385204501403887812540638993531572545052445969721046010559711082608919092159310849391380500563539300106739463865068866996555262094016107222830002875784561025358093417461678508269127436979902459462769668185872575672775350653674245341926014083161814810425496388507200506172281170535669933040043405225739701268741995271711136263079210059228096811344308050167592462875452166293729498396732111514540331956591048979926299750621635119253364361654113451277510234542257866032755815546434371401608326450803769390639144836018167343058561010358541407472130864400677661164566809068730282468217888910675797953729126301670420903522524265887278213008197643640432689546045900149799208155259059332684623098611893777533528581493082094334062854095759020645877263131415196501643123028823889915769750077575768435988769832621627272527155242094115483163102400712954691938803131250510082669713699824510038948464250972635735860044689505739091167448456681449300903279738898551816528336499030046420179295154941917765027189892989494676244909734035409692647860310422000037019967522835013418421269281767673738281027867132300884313355837316773958836224435593235907221054515809292340357498341501613248520305163099597722099143113140835625327584708994855227515650034884773148811917614036565460860346483225174292087809568018823477149981973962206908670929743404569620801617170504081167776305439798706260666432619693237446382287217048060204956783305777790206284015606765787906531947673775620854060692333518395748060038321375012142888434174227080021944198667589979351116020166697594014307840582876253154404469885454620998376728222871282153174713141462446842011947898670942609183146069503487854426292515502244788605905994060194241252889153890507412702623484125394298034737288882841539815750165014511759927515004624954056498130803285872470947485495930395937938090319954809882604456646985928818654400071340861791685612043859091941407193370434075364679876438486310580905969167736801545145789496171883963183947451069032711129941699567894211677653293403763546747712774901609364964876825674059591590565235194961973451109414512874489403574939665742021670357497511359009105468664006783774549239788022150659921933189900972989435229173601853636241364934798750153008021777523373702093121058417539881859084617271301083781060241897343483336728340764685243917352750397240739739743995356637472060680359036160650505726502224960515899482018405432369425150299265875547664516893380979153982554411756105807006307130560498011247236880697035265617443243985873699455644669706861078341320335674301751304673522282603236080669681531700751576475225742692776157872809030673942005710715321449937475219912013964342825213281554086152327950517133791515188907401340472291609426796433152476084238336704742002216189235684339374499228670736133896455310947170818591287176818577303198414008842138741085543743807055283692373088670013819866516991424093828079157679277027675354959767940685722703226315800311214712016677636345411810155764179447827386047783773958088279005734724156912618493938421759608807410355341210810590820356801359887752778409318166193521813896454690922667692009836829980921339599102532050601356771821800608213563735750111712395026036483704908298400272731492451800877361381095198435737598574857945258113121458607960894406892671517797235591310185822640873601707361959445070459720862421672555942045760605003789155448494150588219040182023702437456816635251119450120992427052729816110957554130137584454628161430130630613697375110715517501154604559872629911716994011442035751505410993829354526760464339346719880910201969187643397043413095316929325161741696481904450995370254608707981905155496410174962902333526390190915921258957711122943002210510558363958490115045640064859747178307885211635580252892520400676978157742669360998462563057330548561610043866292479462777879259551063596351390096741341254326084054008982923717275364201902865137824547926284911468813804242651134415536065435708917437210287048150199220744490660778721162492330425532546145112988333397364512572989432594425435972060818450062317929404699875389701894580574165627691054928613176314144967232985744028806691374703439018208879255322203936401664834480488715065097733015740521573409825078771710525239573903184269828011229352820433738888338714931360325946223267248820355924058313309020233591117705838295033125031841232316835277087862009392388087438012584386653614425062052594478654509204766762273166435495641761829206813179728437638370957322967896246990233775890521148265423515723859175309898725351302103487083646412782404860160422671761181459365965772373650654414277292708269793336894362014388494090229632598784819128229074694350307549778827310126908402239246394604628894433198455097064513139586024647289704141836139876694232904454626121247565607741106407908968656404412885790939513498430736072930150621556771565513029642210547103877657632331683147492855074568627005396637500414737525082000189381767956921251757578449264328600454769949965948381553334689015512009365617681089355822427732199889034720601782491117452149733077836470590152431070355603032979049614006659955193323143972859232394204108447071885356051890277032830814498137559751819963032118940356179240013037506031894516677965235391460382509580779937037971957741792895728924822978587099907587433021095233000320227232791887390140240361379175489008053378941291110429851147894881193304716696696932269720174921341613224617878177432707582165762055766881670839335462809050804649508969942727302962301868941489160208392283080176032988363183109525106202631661419590029589539410489868615611286495256372324937780295885743886133201438986296689006725495819044965997637737378354328233564391626498614659615290591380483335353491450605985723198937016865528265185585873029927067496010869700963587925958678798831589950965889105085774242704438768065200465482409168822112075012054201656263270716087938154994457665190465581817545014268410645720295892936161701436806206450175168609742760518771048277727814561203835672377105042222225222030889926349713327111008152696425508907646821314559852051778871791687762565595221308643116346870991430595609704648800444238510906027027270300447749776846542113806096972912976732213102582586981889704918264294400157825878559039605900194040266088211324226643498258577369850511407097301897936687720632829422755130014899762640789399723283390322028803859078443463545584652670105546602250747806855999556215206650361968646657217483152125184820983512790446659504909114821305085867227060498170032574511067870188141666686267805057690791357861936941105514473384748668740705028995815037935721277116182782547913030661616374310112126684027561886793920768313753862017646229099990787063274488540176164558190843488648048682523544955674229582363585755271073923827322097971322605362632162838660432170596265239811936122679704107478094149731361364906824290187035407170963047608114360154037118915486987593127315227814276881174622564194700785551376474736064837172831423156597302762538377060023744105337501791176316434022446223563925310694404545288714079625728150452368248225926264073604256703413365724376758893739922663225204997961086469746501446776033409559144302232696833556261160026691406570240169761323000069601779707546538656482628756760967537973674304295856547755323727407893067263712593994332269976533867111669757155086533019779843451029889994442890517301525697328090363600245839887689591678191891158037316115897087469151353998662627647847468843525982636909692232808498197604979183006893215794916374609492894284595672689698438769246808743805093122760827144823913434936890328108991400402691259828605091791350477907001074483898433530172624429732059018244373536923807337435836459429277704496506573906597071483347419633873854257962944414686720877713051464876249453405018995299559765659315080599211852435084781737734318562079635717706903420820312768010999886836199799684527585065105828826933165582099310803951299968171544869633377262503352342056213244422708281468057520690139537341818167140163001212424339684728924232659424444565801125441482273474211832165961257382731771413305003195511385964183068508005257713102797521199243585079985106266347022947820602075588405738265306336023369645632025417588176270679978490565285621373485453521791548644776099461903215596388135695641621716004823217136862038250885053890681203631937761165802852000594617345788422804668104705404631996955955216811592463864504265195350646383532109831959561511997299076467408433296521224839083625023786657905725566435525594637768597335168377783957819594590919990233940033784177003133606447594001289039886376160183347515079554209257594060898810191479678679635945829684439441585850365526943016145722994042717491867457714559148430464769723495509656257565611987725186359860971810149642421506874489631644441961779528692800688418118675840836521221107228106784723886571175022108794745041241079928366154578148263555380409513269486393808293761307932429277843295744029989369382953058372064844230408834736278106867737800393102927726598862966810195592272957084340630184905093098676424374407588613887098701544961937185970146949357740135316766762729032861181370337425072600458510848435676247154044847370998678796106629235331058954180346062232804923826129223115923242069893268785183731286094875133258304402997642722476102681392539944983940005502143214763532087274544646616785455470288224404014275877592223878927877489857934347331221454027078353770293674035377063431491877655228333796688454339312181156650383419216594806171886961468542086746970657207874004629344094466520002625943198023348824879306775176365259426636399256017943078812521601725772694423844261414836064487065299130942769845234380386885021167360305786299383494252867248649386083833321459307380378835499543008322972042155488348788367245553481487786920348611592853809719582954743803319796309113249828101007853925938678139913343635907398631076825275528909244216620090284823979370007073960321009858112295714577205262561496092324214713604525187116302494158063359788215331799258316565278451348211159081668822069663454518788541027522000093480701722577939592518133251108656854207488342692357659655428342204452346660589191151539851894748691726484452209595974394772608207708838723479530433323742312487996454001382624271487913008560964728559700515580607669756712447789371936290426480983902618219238561151390389701773301557222836075620924291122727448780608330627768416713128448318263959749234713863620791743688314125218274439683485137350423767833162116699346753265616094174049691433236691804633269881595305473767281243890041152752550648182028694363434244797709749866198934822627102531134835181179050190063369857170383240165106398577909434006256604394417532355220669870738682287963225620767211956035306831984630043249544632376598894462636403247271163291472539775214908714773459034296647955682849052505288647449654131745905936066765977649858661085540880582359975993913849148079972610998759666256714327187658004666329972753295602583834891765544540563521475615356777031646075315261509530941152136963682410102740499937882030135760473289831744175753249415906944978726132159293316590554483931247289576674598066323513675796897579873970340491862434821508665995523300872196548026473753195661221629715241256408303706406480542988590711122230519973179257019167617805570066543739652406990486091473613429523322822881558537308583807789757858656848112439056647654689469208819819636802774536907845592231623894853374750867138539038355658123421097574875028399952710205000150444416825146439437258205979059000457362427015913134067196982185114297196423141375779842366791988501871784873587296017571297360046803317873239439622002138000974641231629824539306538014343227808285751771402879043487341365382186126280109713913267007972332048062545508933073663389346363169263460332105970545414510441384760633524402934611233929332674873620764007453202277788381786573186315451223483817456000453604030606537693131759259134548483679297379938884372808877220669085956660592274651113993714594366108605272325404124182599111380850581594314179195661131613901353185693740621917041440933627691453602384439048767900074074132724437986409063672575068950190691771098737097587218173094630565089244476187698210542282979336706984297686848411516708570489097175056546033111456551346018782946865429285241260214533319294837351068271984451826773252595400637324330028735255668109260669331021192410243067577936665750963034716333487908778557963837510569383949217639889879000193724120097512342852053553084788884647825865186339615715384019052076223989119282559728104993166396879455165903727218221760354170736537326739216099954371073466698307689222114415984266569603240772203498542855304210710497150985809195235317700995209158674512888248411874590995298777302521118615109983212552682426483864733790350039549720413769090282033255592410759810303614321415921747724440996273188571327288882362803476582094962396226500225366901913476383211956627436238973272793415350052206817876086757388585050759007813303538613892800450740432456116686914249779250300751495220783188965781959581601824478226663865189022116220863703844164441872205142259373831158063298645006615789694097916526714018278660853045136390455259519849866011949505770869418768409106702756772302958370984261049680894039712533552890090462751731904495575306589799189560824873676004115497385328812467619202994648071614596613955134194732856307153363126482578969370207000077340278008200116155056244424761496894333872894686103058529900938020231519531389284789838773958155448526255897907980089947170343372827082870002629411981446230783523558020088909599846011416034453323699211285045718562007207887252284196368503930428164116490576426718244680151336797663183302427846637401321512449904198456144886161431059335707533197256038330596807905288483259290763178237123233100763094967502644429417116850521090046916917815005445066879939658901432609516578131264410944628595964301460757678379428506022113832706522262908430052057391994114980515357270283100788118884901651437755597215309512144472513930293402276674979320664684233440573733895616649559825309291523884110236373202528696868849797886887724715251179453100117556587463358285963296502832566566823285705791154127715910955152180639799653958285914840647799741842173585396690101187001434313288505575153336517405703744883996111240075234091255298092271071523493673607522924719256227804748635085405590585123130182195092123176725661205652936688401531252439122327762482795283609794036863655067482888203201228180661645080863000727856822849206406641190638688079962333264588209944040838880377673002912517749299162217417994654163564019288772684544072568133408107402536802729473660394499805111251289392259889297043634811212956476637786629263494127309758641647855763264589237845561422218949091566999414937358697290787370954811434892549644799310495374771464003303019122455938839649732699709888431809335172384070113823951773222850552487581533362910624274198757235664548751853420985104841829354809066219917397046275534020215351568655817844185071497525967960303512189273740549878404599458611309917848603920647943123251631239025620354854223165732547446801535305070892918763377652502987306068361258600268384445922574129561695095461315199381651284030750385726349479627387271692196108023753988551731857570432241379799936488805455236008330336348185721697258009779476974533935403190626963870286003320436368310605620342320941083438048412404217009015114471994506561492832392390276419584564125942105076711017279070323591330761674528746683648269125847219951224651952677826640337515076494768692509758401368725423533926378244546529716271791813912046517557533668039361196025061307938012493827992150583858611617704562975577896595031562648781989143527459554601620032513211603949887699904309715712697539593277413078027714036549726272962702918561176141055850984624807751857602164126686077362993985232647004695432287755301007049958988906878403699194986760528544499185665793744654056029276627814809437142600193581600284761376789099611300424970568830600796838239948173829482441400900748635176106841735376867244706474284026218031398555174240457800267331937362221966565645422507825398976395849338970714113992771444394331670656654626045255088746497126918850264293172419413074809062811903920555120837872742281358652980118673034971982899671093326557634566814710189087010731771504273312457840981178684271248057387502660530049726068191145193434394620383050537531974410915018720155859301220935642200482031209754758230888769294039037208852556980282230452820399167383541252916055087924669738501588578125780486887092026221314174811143146455414484446431817238778388316709756725384399812061038753330370039059732499470400469552184817385489467496824556016775883684476240258381109538033117427748446688104135071726142841737657050659476845842871043745504702414396496084253900814928209246671557024512793813941382108464013042145853365621536159886286959272525782841498028165061688217570819941868436011703638891330777586857458305030995911743171765426973725092410576760745627099867564113078651390198586809823726902744441172053545047893560685025184686682010822180933124376558536798465566367463376433776313057905419854985490972520944352106020746614305869074217851678806361625729863812108475766104256657732606784630789826224434269632248508142733902006579958210125977930139739999492992866246519757191256987857816794354974164470692658592033514138358347974345661950536717180549670469356302559837926921768443380567952469102554744404557179892532544178217782315910933781309926184468902112770089099438906701069717324426929741016144287478030761450509022693285816730226887474540018635682184886078377726042653091629293459948874897130448077174801686129441288511107561468636912623474963710492109575562911330647211079885906970040879352261706574309698384846864504021268011197374638110149703697410743545762767869195043782626258317513351143454736284469496699462141545539642756894897460866469906369573428647113410176858931012365568054153244376816161358664802027254396701120318418353604385589220353563600066223002875119994684025875069852562914623324482893858691497045150652245486212349278045306918267965751319340406274763527808272345984808359251230815184163865533345840634090372249322197357676701536938561745417476411833248459903847450573796035149882146383582826886679450438433033725817094509502859535998625818656397869424571057952722876398370778804233087690874418123523254281248200586919963825180393388845887184549189613058050560455850528574719372153329809780818315075715657745728214941769629550459613698935514522661092473772158424108820845685962618507231162552139801753329304691715562573099822626112942695218448014881708843094820414631093254338936088559072784230898701430107096463448940030875250509370292250750562840552363231656002143517907440349945289615853555406527703822084188262057419729753254464019656657457016481163041811903536147901542748061119543414590096913463368969206578085675840620079801991583792649348632438061975762228499504014131828470573960821631163900243709099920114189548917028398922024711953356310503590856041386181539724130256360102288458186607762158275096968973824939098261729855062381061443820785177374027864014822293284742982099095018763596115932915061712294614016971909106696140907872461056594106526491381925069427011613262368166704077052701556239517182906438281425402952851778862385544554967374320141076580127041558635097070437006682203120689624810544578902215502291104926810703515046474879852871506159206288616087922828525116844435108230494720439133982163260890780033623589984926927861746861120386307877793963592649490150657443517005485278719871859321735468430157066039961925276566227492979599934956400896065491960695090731473756419250043908420974746995693144735045816344490635230811036180652180210199009301745718671619671851811410136380363924088774409255299995137900521073456034329950717694881462891501127537879882688188962960956028329043805205949532190952589939753618222222599435139924599675840600339963532464403040214028813462632952505790851524117177032352452367937659917678076938160432093227123493860720248413629907472725112615925518977335626028076306285001124358442419117525616865378917369249739209934987560865438518306075096291620709763708562879682909050993538220439441036015744019393489662346240614613472411711921052452783882688241983533987323340111752045789723989343759965893501935495266307220624135051944078779604700638315951393530191443451617206339169866127004405884192027310855363270481666513035970178116159970624415984193353778782948649614517428705504600165212072701439043890425250428347941445153716235310637265963200253633792803883557103268846260490848838385780542649178036340096978728240461467834374249834369252498477680512605969101109245339574989537817239405328049750957471134825559816309022934723254030820273650125844301354033758657791313694765591121383383953351615406393830190441037327830019004687788368529003509343794519786003587480918192085519480492867976108232072570903693094133567570798349298115866974207790974520384698675493898731597579377730631831677702166617074847138398038335281304863765886517248898583439530440620414095966336709240486552743746420055380631261946134225496501001723055624846987211002331527344307756773683051734558844971174822905607284728740134080897983546245856794053313730081431967134704781366210684734825993977762422739597200700368347542516993128838015608436828724529930862525845844138709601801302310843334752957170729155178700249011553972558834041277893066600522723702874131554206669584405222927454727959581514142912258748078624938417963916314623584095520563656942486314467905933246546177941644234004416552250490481920696420095701339579247914018451776335416295763797388148870339982597888565282940095209557366982127952128474790723997705707098667334524202380617548284099831368178055794385147728715831941580434596379835297687150735272168681552578869495239104643439701276040890977870122774629472514998567079103866051586375118296222883940195622663766411152766839099667244107203558573951568798338275190142608409456711868451959004762495586299857887636620514418958044690681992905984046161359267106679906971743759708439838788245095521510891694606405682056730107943710423450578557116046109223514722516306713932228390450565841308296349151821056946364136450162583154229031519121390422925445657051579608680725520314827044463545935099500642711266060866951912515575335440714869416574999929023949787767112208020031642755738502264180632878445475684372212879776606897869531241294018322758019985160982898798718806856118430434484062230601419996105386854705395095317768412412595256852908213341158285126867429631407998030530843992611695709234593264426873331309793117332510678173848626985513207927973809088916114115127425774844868092602604730854301813904737424854598392479335935282137665298414709255561930030682251173217951973852806840759718278796040002642783730799360284779721900380208063944936282467456343870444254110433431009151014898961063397574210363649865403371592984701920580195171062768766191823743008812479356049149060359410880971101024969685980581962248092408540897098692050334637435444625057192538612523213531659043726440214413619026625818851889736837575099104970481773918840765989114067279942416087545532122833118034395937914808402852132614320756057568478400562238600427524375177953461635988285450637097840364229475105080149675638422501537858843050413896428943687064423621776392183163355012681260696753929312100602958200030537956987033314281419080212457824090784549911960303246764354055160008614172830514072977916312694560259671297243975056451624481281585523058597118721455093296282617732523604889604430953424934513001281784860508109917407437429335032024819841707017013771490496639181001158380806945015491739661651622988494680561294981167590221371526550649454627169377983318528999563988229929395838816029544457259970956137210527824182946836427996266772886177496088705697492479611628632359687194615245498490055549541046549292297463483101273764673168880999776347774971094341663890542717181919074727209355546450295315816338716678199183952966625805851165329941985237267690408127131053580773675966281931024386298905513801261069277239326289883658724260964469406765726853770525346605784408458322192533230616529216863908211549492866596519066324068492659946829325490072354941631825196920806941703723618502130431024840718687283840683116813426329706155997150132736755218397938421415487457603340704347514848350962865404535370560547121822490028749411930580025240783470764436202325466839122462034540289798386801677571557289520218289135505231786136505602511616150520658100626532274686395880258607888440376489676374879212241816727113650724123988952533210654869733174855134658835458437297594404038787792147579424007494035431923452544920561435491108247288465381908127008038023263209777546893372137612012011802124255837976397197857228350692804916221278668880978197228963985501517113503918127323728869443805389407911811758631151302315549773943811138161379842386494696218845629495762126573550082201331530954577088838020239732620098546320659999842428111945090251467717951205679920762131914695664734097485509376631987971823463952727717867726971433714975259911741120504888330333517237591349582602904944764994755445392797325398600781003765762819817682313239067319724479569771499934855580713243740425284184452828654547104533172537317942983503478094232353802179351484191818138408948551658301058727733715175473058115184557139135216028693995674810735488115578629934637776922568852002206384766450884700302682867301832237931465637372645652414442049414916127314266723177222753952200383209034768732207574923168887015744446573635356858949542670533394863049788441702541326337459112675948723970437767478175451961857779207158954013402317324487795981187068024368038456129636113069526223490100114109801845549733989936521482006910604296818355443044787580966882022107374746361460045491508124079233871880887147195183427097216932406317770066289066156372217258671036580897160931686421021969086982395379275794321515121133251053532955170564579993262615918553361755178539711507887808184869513001114567214338817351783094364734956245701730397419207540807140154991391750207809259232547309549900850457471227829567180039877891534859881564506517671103279445939709267383552967126736707652475415069411981053874154649284758150863105140653485666269437005790620243665759516133834579087412905178586899770034801912200494391116742557554712641437396331121391916362740680694373868170976352680693188499197631449398709121842276771807650884855080991394552063898003236432952171399716166954819033706338438334257415116734252449045314289612146908551175572226183039548535275700122683230381916170575767110646859643593331321857608025732468982036197188992588710104202751218361194670338201219814707824420146381765313581800550501924795394898426382941992744672280014925549064637264530582117514805021470447714740068334673903121492906246497879475636742404448528269756267787515049863317121378322878637464570917143527485682798240858274192152188341992187814743835678544850008567985307923893611299777357980180275821993645082357679401620983894806215837507730381149420710009379629282868561642239369545528364963169273713108354952582585829978895002792351518460506428486832811933069961870808538141785803820138896849936229485953915604198673598985376273842734314741089318934868044468152342959580688427656284999246420853858445266334261943875693072328177588910731984983292277420274909008235161074535440618699635671288226450582038143693117759321070319640169899899430267482853013045522229903479686854527067626317477099334849191736732132418174224358482084130599013362532907604354805498435280160472269932416924598753709058842403592268937978221112816432939510795134701712996330913606743482233345105741459980289413674366854464123717804067140729837414144156875284478477008931531764857935797561474720974036509090159485487246058461968221025555223497933198702586317711071996902271686067412156665556265013572942833584314647140341580013717094127660361987631530758240868322096114981736760451635056765213890869996133548952085791195847051460649316316750556279011115094704990950810702007398081618501119349662820242376589324496225626078852083910138183203504164799970501246873162929339571850895856179230767015316798211299424698891640835575410806157184777995088545161667132194228576695119827462228325787126024599077353072575142828915875839562897376477170799946744814397138503230256401501404470378350381318170239387969049883827106833092818876271510067876565792416359855551606911891790828724295825688677246147540922989944337184446600401638052877288691657291980292554560418444580345763317700691894611339613711874966695352759966079244397873779851647686185675440426515114290366994557511762208880557563785865038371421184609680699985984357693129476726194159019398549309553269927776023524788124770207085900507666160431131154765152908026885187887144241764055987007415935323707256192905044881170493944269802677971735178676029339618260753025800751299235651646356382466536911715084054257838398572972637985679787142555794799054584229586977480848577630627600420956142596240754853412838559896077634624195818021172892791133797979710632529463306396614064803771649421586144720548097533575934797713920180476981517544881513600560638504336650391053660758004053469410071427416996337571117577301484421977590421576209007844848822201736676958338642203565117793223796535062113244080673268070299575336479895365901719335842561265593402905868669863165028902973401121689322829435685853724563750510312754143461743810274075193400250923358894140560184742958987684329900435146380096266917335921693927787761288814930218913401540987360974282216188110003103535376077526767396283468715967224731020181720028932660485859448053273220026984070635208591372794366895809081765236769074018873441592556442189719539882453231604734917114667004539578833008822291585968301189662730648844467234064920673888394712039557874041351580031310673304575719676766063451497667805350698244671798868277908623755860832837789253631382143796760444568901884973321743061480527536827791641704448150031664533394861050343586270375254833415085645630480022493193298908054707098954072284054977062151215665001720758973216412290869995006936675781194921072834963725858123165457622571630072861298302818816422992672121687137280545362284486841919977499502164393341557936648724693013385207084070724235872614311264738489019138492925381064469029280720631990520431257342130886182217274863521152908514750842056037052984825961558807887101344545830816825391005507440225263168574509111236339343276691112731089880658252523039479167177387784131595246955578355868564438066689767185208694591894880782866423496665528117480943182294644430256559571663754309634829220085028459334229507658694399368606543976777984908153086846143866361825980767153096803483626444680390312526342014341815536383958414371625096616576482577245817226333014030689409951341353579254638890255637340513714442418687098375576573556369798104669189406894644336803147834875119818413802604640118495083105131537329887956168292023546505460651816262140461644618447449592336486145423210765814798009071269002254425018887452576140945045443118597433982061054568274509907391679719009430146679803585674480945188565278863702013490279718221238957621647498232547882366188340814357939827158147544064434629461690943089257982678252828327740773976675328434877342181420880839714115502421034454918591867199905972959383781329930821784354017939330606622696518915809639762876091081651045245023784129415804982499478368282980102036758932920993316970706294328496380510237690859416636417664716172600450204131832626788806712578208177592308737526169711691305017876484242897935079946149399280122706166472881680796946348162997569171854351858454996098806199321356854555170604686668090292228722742865197132885498694481440860773481697348762944882693280329752408505265971452348391973912397302891701654425790727557638856228892301274929052406882284225822389828448043044527176483095548537372523169343616676844022090441319793411564644253066602423581599165721868467455486965816563909007832002597313021985173070241263380434782366148942066963703272146872345721504761279916892196062281172722000785386194291034468837792183622647653429659736090586119269167666643433198817389711986876893901529916843077561119161393326590079273890947739540649608627169205323213590248523861337674274764276449475489244579203996115250967286884240247440588962849073411217612752776691282122147366120631554130049709654162122233961539402463906703580700853736571632054300138830273346888635086831254936199182524269653993544713125071944869420532497535296293380834295094043075890791342020720481534286387808010025413191467445664502778637684410792643470738883774092541638803278384225229447521937381614919861540007973086730428023956137379716346519774701578888598734821241238061210179627917560057663020498419383445338039475711707944766292108224438910824876805262257007149665896433533858778400909308166509134217424399990953780388233786396423609088834856746191308274685753208523627571329248900126196644099324428575187541303871594094088288370657036430491446982149668570494925809658894357925782130447008742754510486316307447279885711590507580600094028342825054491399452228259531286684633775459676309598329065309977866301076848172094287245068628711871222998695602194524248004834778127818592463741286514055814083810403060670879688832181580371697609177245562718880963469982255483212348309373662667623486937894150059551965224707806787179960568676508426457795774381954685252024782525377501986320883504644214737460068812488558199909937524108702514742319850492079147678224276516680161833760922404863553219768362464676285999230561755661515656279616775061160272003135484531906069152781590889442303071762423577787529806550998078818515176166762475617895425460923689656126863842918432005361151876923350256798230179516197087938609459798811212919685652969334176402853625166461399870352287498469964425022454631311645667797040661406617122674011728240035209376451417407539618647355676086023164895355402013452565572529195866399066233864179327376109212403320101367036450967461579486980415977644488675566693917812990899875620347129253952827200821749604576250638156756138734447882192113636894937173437218167133361315946382395312234689668430120110559570290247318828401091166351308721891833699716975282206938972786945994112531044164165824131461829776932087690384637539732228391489486706082727396889680922310545551609648226169665968773108250352056623786321537866362150182645459863559366603572586333631118382582724201232089638245551709192089876708098127071638142788015513992180561312187213470706838167538703260472538393103054933253646616467724239186321480396658190360246431031349044114243913543765553335243642885073498401104219466179212671589037645182550786646382189725827441431208039864037082884343184216965293665040377808857160646202762852897461504934442666584526370723376176480083365908034244092642491782219747169072880474906772991361654651267225050090533684814574281083382563604010992031806113807346191333353879031120346712337440271179699114284391006914075411989146534193892917861537572095501391871798490313963894272216143410358228541284050509761763678276782956264976595260463158651720062874236277218321462194633215950226097166876616454993413865016966682165571898519745516836671764212704057749965736190590723218753566549603585564185461735229788195412628147278305850720440543105977748733027400013787193554630214949333621478041584138393727492977669292051616130379535013131442735725075613439987807301488112661765936096311437887611546909274540798724858932103635670931713712373676004693916106438023429071484951255709844093473129431209984267472532616042206043176293915364872791718544006798111638423355677466801980531737358467496846312924292545875335897518465740436445315718593040143083361098764590219548199389266204231559917419060583974976619996457856581881227284523106950727863789334490653755244422145935354962992823536590696191753431207711164512150270022245548362706930554026965022997751247702359286386250956115356276230324324029153217661456896923461504231208814134775774673978966735651392742361811774619296127990261267417416739972207997838741441704639537512873047921028654494333188719124051918489457696530497649652038691004861711846004258627143547154647830161453221705225189295072336741496443505011216622646298887212446738638428577580337434354110395728737979202919290204890880242914424354413181949990287761393542769252153186676300862374150039607166264920155427609201971354072475706491268009505061758420942139066236422910854000614957636335084802492107224631108008748160190471437635833257557663243399807927624184192547449536866629905026868314769458456592969537260987416533303590349914374718991013327017322625843719880042602273252038283467294684775512741091960087397530759142018423046980984596081331946201222386256939207233882787766228689600483844810732834818143707802464942977696593470135287520406300918621199820367992405844231757833611277295436925900911284808566541341459044909336432421832970847088538954460863576186548409070964616446068713806831946475190216332128685803585781843023585794082082359169073009509201707150684234828751079100160884955942052373714505042376142323954788302978606297959148777184291895217910669643275308726604626135968230714172175227336758581068310445243616841067739337812261652465658026415405322034190029229687179063996258121312209319521260240539344140008221361383050550112576394158936444622285622874331245770636395486251922267229248448219191961995860015690401714086467466249868832671957355840695697175971988320338204605018682631375101921709223211291155833604820764017432910251852379360686116829960735163071147589195740797591395092097605331730128857253441992284496587991661930311632606672818802892733900982005973129462874536915328946511628388608348315866797337716098266045358838667900773175461586671883332192228279225004695413367010021875072781487400733357316304833044458716205164086784507290290593671399559662392417965649850917894313104960198909210408416147435926444405909569677172512047519021516973378363752488558606842240279534254573361626190720737946715252453955250329476905922954704135984821823586277500819696757960539065526880450626943594045243655577610346921696715149071687520663438035173187661198832761511790542937839451857752849856428330362126279450692945793940802181193106450573435403716051519069939043552268509097562656973076102869290921674347449635449355267805149801808249833403581971469051437975084387542790119715045007202431563651264730886833713813269473081139326810145283972420485136941254515335182335660185914150876407415006868605925573262990076184646979828713237939390199752771831201622988887116792335135884002004090656958354449490053015810211427904699402424934943289313487850061815197306838891291924285978340789568269421202663240654894432079496402239607919664693664966264709431450569519506937654779453069416135489818428664691339480803116177901086116551326588353891862969891250902939718188309108833428637038349476931824524433906410571746202884095979976706210769629740026113098756533260492145708552243703721623741509409709801715009778691426314051649329836735196952096243250413410703395005768476428093126189268570752855175141931409315378491814533051209360837496129904071529673850620724996807450498137890647757438873036935825885271009871364046369172487564083074222098928192528768830271326734232267981604639687629033039654912019849796038985067190704817152910050168942588374174310136742126987832469314457403296145941939947192414417492543005394888753071083864231417296019695668306612313868443208512901047523143247478376270579973376962265816689879967055821933842776688012806614628050154555476864014491535263075947538940146630757255912480799541328979980528250346305531887394576095697323187026044752634469986354286342572938811248451985842645106005907227831127827634283053126407943334758818297846071551420130103445866604502039913950347350081115696718035192298962001083369752335625178133245601042103313390522089585446478800089310500762820104576785858222676624255091486919065158546234672116278458409588265476576808813895138895429332894239954090717863118131236159761836443105324773307268990790801387819288337009118360772771055696376905450498224539341380226730699104968294369670351757110898867724002431075405466143416484747624020409649268757131850042593186875550526477075838214139589619826087425304735093613425522977489483070329707139130064755285439997200473026638966829715524325373007215156237544354956885193454001653390472422172146191987564658716692841133709362231628979421938275928570038919351152231253069559446414722166571060773174279910761932881961322712286671369385073672083691883712107893647207455048644267244848405528186369492406465686107282155068720600702264820137009442433239430805534092933064474632629172264945203540743947718652509237631518308813595074078142272086074532932346866409480873068030883333848435189396984674826376444612253148542938287577957803200979448702559607943700564505587354151688626935766455711551193289120656560710619517910889299483932676660997519694074749935589819538753881375929457768719541669444090129776593934362168384148132334028766274235030798170661688662305617937656463936766921135682061434592300244257773425014579357621216352586988127886148096218389840469145266124249017462178743088062814937672760767166002084801133674103761293425695610238677815301570166351704760493800891183858370257922563894582390933930974799920561734599615492610217840207964183526637095172745556755247780853722975218080515440534652325314050365490386647253042856203714273568570758699045366073951463748829916595129544141538490861696407351063553482158974775945679400864168650293098987064816274153599330033438108141263536713845432488978418446332268278269161643622816312783410775718505865009993665143882257109447837403284578936957991243125566809154967445689013332718492991182877746703170674725134920588346717416409983304816828106321804408227655843002728196502684548660591075231031087542490659330020695552309256087214142833868135074994315855185659814553218426410328902065783539849444780757052081802514993270384778740583721467277578623718182924589265187571051729908624241181665703766627438286567817359215266894902549906164454580117098166989628479761181363321918127222511744739166743803890872836390252800464625276472502672529620188853927255136163766158134211604992894328952209460490114759779413786550233299134711842019819759784319298319103239654478454678876934055845066320906577502173101481630047048712602695681018755726518480795124069210816406051741149680708042766160048280961969821396880138353397656170591520889249505680315120405322950571055938462428347737143063589230966333726282735512307806354665220583750136464669118571909277697675519339102090055546975137995052433764501560838830463817450050180247231207724396188340662328672898278414251480521591370115055625915005123465117043866249815458786189373405843035018288728968547226327812947628612616842823799661918610472652146222548082290011304326321820637978363197945554972258412910689592221755183751088235662406290804117624159565327713199250951608912172506887707329748755356268658516325519625516276875091053064359272549780970080980491228463664040592525594920499013029740166293910540963105231858658857928213811924585061998065328801731911335832889216351191944462548158627340148968258857554347566991034933439793066967785082857902829133246156824774726218931543177317088013093230095656053017678625268244952989725527530585189313306585392550226823680460249540180908547284208414588391477506084133281551047672467315442077908011718546392343209481608477350322516229107819200115636983814648619296981309591571453854809323439366203525198105209159536313538064294709748459215027220911487686157790232466773170765224956121859665163090281500648004433081562052292599582793117784730084099579166269874152221949510716659805306835443246857515265830408331763371478857472174686892864535102300647267348448579608969973210742470490730060570695829715685067735751839223916476084081574885201445598484491687488486140697445945709572756921626963942743589109395218894026755904912463927302599572310874481577094319532615682740823410594189414431378047274832740608181558424869864351786201226708986117933170481526598699483033117127856337646610296570682010704423212087631534897050249198970110761058650193191929383232546861995712549757036899067405374797059240578738174245108091383151481360882285265097036830570979023010395060172235926077141730060045294608187666827540811648821177089402618256594705117299152329318373911422949922278571815107772744395399024967138174373655164728108862692798098024658142554370521789239789675136301186273628521297292307406076177935528400951162086379487605488306351349243410413018289738676443874590471472425185021771130409040847678295288650254236604885687553044009061591943601164605620249687181207415622679962118159453327316077303121757112880638959029883035685511836530171407800719166607947295783461276304286777430083179990086920366871263014810026928757440449609572804342728710894753939092187627591451084386533446826248567020629701100454366007194763751047725531307284181773934242332732703638172795044732367213323382787048358129885954747875033505844155854073198861540691391949620598562034062828284123316687229618397781326642875801448383917999957752756215479280260041321431430220726242652941088931484715398146689483966832419059168151142272280512187061434057006297887069435093130158515973421479001185479085974810727487622281980299460716255274378110870150955332770667084893849508408867937284407367981501599889827998170853079275739114741281260219840786360283555390063533885276287872129487725655777277795451086300557914833837455901275578710271565917912279117535542525138397721950943364862726923222857325341544066652219661865317051220614472772598323822010785220878344548720716012809390847198257571908614296443556241476754970445659342440529676339107322661016100263738789777491087409994206507857905170300674061983918708228523480152038089979777596546174430231189627915193425525942418531489082958325323317173836808070718276714125774391254558132383807835926777151425754292181061261579775853300034350420313241339393845270062811384887646509038673094656320386915116217494637351548445999836401780266519016843491120717544019268309891956144264574802538666804519184595658481294627210365691394486809025589299650177140105324363878512577572951898268203815668926814048707685905863161914073337909885767436812990133477454739248665834065691416149276804905250401626043837634594437997548861440668260491677611466300341813768657959117043272224787065157021415016328572194970200976943394747191758426324296890584611789658357184267693392493869003569678745561212186086230255336952453660441805024182174992291438995352825158728277307994106622468088215851197747119863976920747220697866393382511832091413933533022540571903278907693235794026071703418753713134624792660609703258536326749642963768604088029775620004712028396804448387910553347320438730608415777050293682156512742245386930730192430296540708741875618703015373196247115052682361217134529757181383909507944238358566792309959222808165201730536100529298759276247851938854411544341484685956458383487686361761991122335987775053041428499195413211807425501963414778517960458360821653129189336192468630327523320016197631455892841143340509810670242501625853831381001507778563225545505154529510875926598651323868014586258523858739295422277333537241292458372175132052106096169380578378625196140079995062347444075265601520275244109894959101450043008018711819314025970962594699786990809273029924913294963724423040537499635724569425589438217670828284919489850799762006881999358123093594492761618586349786262720738540288026217428792796924845608833333889396858279869647765208283020374748109522641702759855402126202971915887295540691703754003634202275692165922745518787547383791122943524864127263218979819602075573288955062363455412804580589661199672733081262186372068501728295842538378963141492166662348829610364240517778288945023837567121814931209932591599043756302966961314418292768154342694670612390202824241565831551627083699682157739420437673963958912433752773792976109072443540682558202809402473075666548224824646665574006719124319430091029840769330156383158332245424679433911223892368273110548795673346258003089128778171536862677306232863365133395258538575695046103806545800840849715087466597425009030473308755617444388388545055937233238144394008691542265751611709705332286247389027538056699330401894090263666737158821272386929256977685926518929452466350627160308724390665091448665083395973576323287876404135223205624234382181338957967560831581420634161275331193599535980527498168912260253495925934116410621814256278077696898487017943395533499331954664450901087401589420249469949197136263399928922307917851520879818078779093079141606256756917223925368252550848191669923027519331890952112337983563015677593267384986880186006698635849048895436870040378550955512388568057632170233022971217499916288731322042748361801859839962982155287076465837768904594298968296439491070864363520231824863645368486243521985068883821017077696501498188993351965185536665432421372858973499635817841592047686941035390543718528368159353493865356851377403550403139348710823822624529643238845871570088428531089314579733383786030374394177134945983958373923838907171698237567281432836790507528136049677440853769434512986493614629122912913213789475209617824539197871918034069642925223731680338911037036325933079923118823520085316808050790669525968588837853392773297780830489635067492153086331849126745313822001861951507376979238849471631307409557510022295544623941838129503176410811640567876625893757309305310243795537467928272472386884881628007603293410196679817470418231040089072374749321838915332601565708185802882874596289707376465231462625787860447323942355375399946095522895467873129313106477335505665859171411534688070851756239816466355862884353540156017407873801199878611656872064198392659776258280053187007955936663372275035621788735714194257666334560103505681355244183079177112722046511178698470755461151295628885080174879829962954102718170585668227636281345475838219627029362102625154136356616933342928903720941880789702731569815958021897907643064308430485317965370140602546103270722629301171314412107583858342868590507193703279314026631385982378578263080987156545827654786530623774575020538800736321676675026495107713715128152835961693486351190386055412569838526066436826950863663595215522300451070999734234928447457335527932977761540337729376658440800523972116645370244261010128426985889232127379455626758227824531141350392760207837671867767015544368527758856159175454501163156567588258159665177011746456504847672661617672494422386842743488384446733571307883675838287808770627932133784452442417546444935063708301158038455160910561389374653754329523205758808160451074213932085541669960429205573641219621226020101661369877615221253973928663695542058081201042860586012471271198786601903183246665958553430724888498030791475112347678413261662932317392790466254838817339742795877564164281580424796153650528556896175071208857718356384994952414729009184546839831156386017758882984576995173956507749721073971277454736954663699737192385894067268421602355181719354035113855588182025543426708346531443053464212978123610033652085222924084778848410131386125627586046063308721051371334389534358922273282071021113816557702039670017415553980756155461910741236637728310083321563027155267300829778397557984203433943632738029870397147077577685927978697868796038752309022714132961962496058236939771474638270936071297878935955897036045995954121811333816254531632966300158233731552950042040174424539631912617729611634288828884879780992860602116055838941643455779349007949599829960491024387476620337606544050512781555299601391224495602742854777191100185632395148765708789558268834964797460804310997783356862570083846873544242606645865160090362469117291441291254412027832719855987746195210747823749925186018938219359953525179830660063578002057796102051670234805397487758067959857814857496152907517097572136280395724979766094587906955885345825086609068603639727198867728366445321563161342579322005286719471267052605546230860363862883062064144409124310022515940199478803564523072118136859463770291161965816235434306895072065288720420062841674477132889090842808648618352203939938269165030350438792999589450781368275406219413651533838268470629497720615035658728448406355248086477119944115531642130192247864718623817381121561979751114187270363683490334565341363967385348269358506753984387704154392902610770145885648849046119430593519339486681985088050180506289549721791759506216639158166714895830298804959053420214396398880320844270015091018403745478489301838420128718507921920074032940154008216352447947912535607723069451672140726139582311789369065003234002131122302953518054005200513691448242350636379041897028700587031518089136092981694337124724211644222420648775270060449896018034894437875891932420202689512542960965624632051796479872412143989579456714126314478768974386650035505758040119672566059643612285866597983517446292726252409337765791413107861269413500928689462041674104492946211456694294569748674893492783052421232582731419678839004321137995114497066846900990666553957579121073425108197950164813271350733738341808370860730048777090298853529234661551577874468813673804290698558891263009504021870184559578674172700272784448681714811191820614146474456962692820935379155057515790824327224650129644502810984094495582949771646105267912168128432355810827378424673304783299337039388448344201181004709274682040903180548088510021106979742102494854508848382855021814643055849836315356783889833690325071297070820091267445140951217017965692860345493930464876211996491635897179494832969014915595417177910986559954789028074612991747663838199452742694184382836283599392007384943860553369606076096520053648845986465738642811344906930181587889466004322863950596856301574264098543588232808521104467306965708794630893916641038214137470130992445113953701198775011065401353639766272536086881739981721888506204615492022458330726744739176151205247267300904831405595823975820293189695196379844218481668242907090708132603172902571143437053597316523748489063402868628152473247903832374311836029757477039033288020604072181009402647714990136257987432692557693617359193954922597567645500334011488633675139891316280050269700250670944535915923005992668038276697986472788237413573164064326715422871933380309698383362421728337476499915465238881556383806485860791770728583194349713487305796084604916598821411284332232833378137474735492590182122078794965797188523762632033392372381409566900235404728714235235967792350169131571908711240616256685149310266631753093636405047430626887625038026907031606178759319616072610644781098179569484388756173188404697651462625874501034806290457656830645698559169223663216292841215520772193070289603699189265207283578975767335047413145494998250867614307387999951716277535681986325026845703114431669067423930146623652315638913247973292539930422479027199170237453622606312837249333632432540785341400672377597199950484337004685762305334429474345384598970201533990269564566657052567408792720796200484208960747848969795625170707918142629895394220330272336806758815696443214342692532275200309427761334088813377463375717857559572176462599214903077441269937834624783840934120164088017954638065562891470318481450792333355551935104836800389858856326642649641112133815645635755420751868099372895850248122862210575568644892318488860244855984373096122064128559605877237014036103671744875686309147385462054468712386381968733649152479324704143928309863370669456447628928383729675247101230976512246685909938443021816761992213484449477105827809031671355001063632886639612401508946485909002618505305806591923696206731498027492974598739403124620775072912753187694571708396632360463594451245479419312750019808617561215925903374619384593859832876125181958590677986548329261281887215848790954333104228157261557414785387810195830642596401747137109526745713349031654305834700305715634633011277772362181727033011693039363370855501618346223752019969783961195952448288894344336146775649979021654897273635989117883052810847029227848790342894035891102539297791709869065594989791533601075676046260989295721601377582619065115057937000131126491714434111324117534591008176162069337672451115130951747069693057913334149064280344562202053786320296837779401445132158769130778291727410255826246697104379723995203223311891186756204497766671600406407320567382215041742231787859797281398866134786000848630229622127357936763524033085201277226712144902032073212538246063024136113305593200056500374957249415558503079109811971465585246570600319046289090613747287669769394578149186750528151697946192118080181083075217615633340116720511095446125017625289051774924008034947437446980893116645594362051283683391818937357637149833755539478042246820307334087633169582665615795346638228995946987948249420912751000326671886143764382579071229918120357171064873152309836717847859395852669931313754661570243672982649245009130407121787216539753578686882025577216266533195783544699839515546461568046172832862800589175096406740853889319419176774941521665849610421579279331603883065963668962225807196934598195317662767274360958114715843254380918583234477882545977835865085372479816032497509493014840137107246201102333170760463006107768553076779254692958639404047207552383117582767834037231974390907373366478562969492780325472689974563521631413713410547086645656829901946055518866089400782295648056755341677554113679424255386866602206969625896816436941540981002715371986708931678402696894047137082370906207869844023177403769461068612847081705125654381913086997970929343860353047328299328805012202559842836413688022051280565088103478879240771301513770043851433355527131814917557935762084784385119486635565929144018186959170908952363243070514890881259968603306991644202875973997789603076335684530684550806926492524227308879528505418773666299623955746407950124668075988857417499040036380067481903643907170606829425637079061305151061513474714153158198965235237605594535615451713423949375322477163321894445251596262695035331053725802558949122715246089712062793408535558316782464010583876200536339749032989883047033905887887534219343486488581579295409769901813345590900481334349202013891685559724763328491511226483681714775678041511862342846249319858706420336196569141394540586620694131476872478162077634953757496721482428019346308511154987821994177649737030463010889207538498181779144605856864537857547701070728084367994445874541260729517766259417650786170283822872776250326668578523496052148249153185368466996235878434678772893221447830789879581679844438052126008066104496543545597903409685556685749097846137698744153303110915699423426950922231717841676142729929464988477343887496596400299126252254310285607870600063185473576875794673165158832652010986951202518821073678497204067130868985570540926940625608474786043797142669839558981014284892691432441694880682611555910502375225952682638990995530483058708518735339993121302723101215654508555572011554667802157335157162661270114888934807273263053014036975817330214196603848828814115792771104140947257260314678509636183598919092219269614956867622013281897159155912953347750946691267231232222059278538715854402090689834101782705583424379959110291327257723925795498354116811684560753874032338052678782112796481388293877141751349196602447898174149740015969706808956064229841740692586304558678282270147557694773048326815607718520405917421084302563998255938476070619788211489015702403099808549491157147486830149609907371083822375189051022134212235404112860239285836926444645946660767837481196945825834952299010611887428458817142609861770494997499589997294034848166103853449672265710051075794599711711113263795104397928619515092236057033300607198020239267631950459786582782824220531934832849765463086894178693945392681251809814339618459391088719368305985953389081690392283443382447721345849970720967355630830232273649833524182479285127001317312035471307750862505811448421072450750332472401358323752920385420433417811924990936878383480140367568695707009881342019161955382047557422734943359965973478737174862230379731632674827917057315084018442788428203024376665550731889895585810806900582121705779263804445927456574316881648555085686487502482771051540830864916351967534611581755734011790033738905559738409552135271597919899291263849446360041500459886251124564402681003729709110891336094225483611855349167343885058286802932233145706771542591611190877393897638662880312632469670223810387062299523382305841858177974205683127032615600964691563004488591414635831825877047128959102195635302995359518445538113408961665125570844971061448762558449661701859853041531096056523593866333164253013037056265016028930027370722234595045169766141192698376529428314485844088665088225819198009605796783302535496970346754454174703279568130118371400228995820736573084717776683274839740044339275817271951916162262197665017569457373075947710481292840449564662889725327182384883252531851819217843566926537336296348127002663223552887024381144042235166463500923506479798355529022092578528725865741490860804671371857022683089445749677328442469600555984786948802195370170005661996204039604000487870060117404549823412870629168034099948935395317459440815488031035857348693424480100073848428252746281244127808065311311988333844450467765172582451436976468223965657771065895965648508777884187103345643003763072043090326193676226199289730458006455171493078906634131898838884305340369747093975084916678353501285735009576502469335174304975955132494049897693089209942851758159063693990389272756517162875130756795808388139428992251324349734317287316218819943936921361037973131496302764835279874216371462325065488884311982845875585829760925208730600371458513617297234339672260779781794515612720875371098825377712906937629390351138516907768267434726368016129405697523559200808322926997625186786321815404304853981253583114594026694141888251864126661527231876546859521519692739513108829454536807391368089823100175598865312246615610966050835871393184431651519018682772569840267252154429946046658749986797935038736386299530352658490700289168999484588274825666172737681259152323613534024386120372254269756462196801356500962365055150811384109369375210478768173991736560515693121116829609607193519866627969420250107113662920496803031252548739149207667598329012734123545653527954555521213443325301901962234962538657157415451482479128804064106997842887050810815508437940386180630394417879831586717429913381118460097849700718762155364670584229581001773198213156055247030916031617877263077819324097696573317537485305369820410555985071497997062530447953307288330259225382637504212330200949633852158410314494400401064210201565746938614606061987813428410170756402737928033976487218460224893213779213371872068559726702642147034897510495950052747779872615977071463496601527196976152172509851647553042780687879984387000438198552861944600788708116182955699815091210232183864373768592549566122820512181160736861943418249086713397021497185109339170974896893581293260262284566558523757885890390116184276874181245085462273987830501370041117983380686916814307930131687694522121997085907565524913539695268657490866723226069409322026253734136431782306451956998040678364322927937510473858446774430560045011046110468806729443929183682778283411160408175574439883556975134954168111663537332526215897480633792927054449295739146922803705026987770281720721046401717133436412562968662875699511484811155872567967582895199851469924267659616865354946012424438658354697967361444154824674150829553818675223310096235324527605414310275605525952589447224111635293163045493114772762721708546175386771529799533604601476802058292799898049803635922264640238345513972968321573832887909247173345911487759554495661677436932898540343858324415603308075549939879163008796697142135899706817769694041795845793274030942764430030192923950475864751429561689537459654396443574268541779790008252200503175500716997180723125448014840103241148288032170831530852578052192067777462324252250271479610419026133327322009225006738806947664047132710764077336453409321021622507897416660726244711071366669219631127825412459629520645675141474392658721900960202869902420806927585406874728162611476291752182646461266141398974824115375307522719479823363620766200930074876005844893862483988147144052086299474040272147403969681510848226443462041867842245496182673926583101210308014287181259960807543993209338437815565272338460338814427090124337373878352684113963249917059094850472672418554030017345333208711432152090075997848525982913031575296456083875549922868311673203473667429298997261945627039681981554561101469192122714134935674913486473385951314191275306284615547559402267370537237222598367600748270506012034619877024183892680276484214997578723047353695612581403495592469167245461449128785612855297676267628512628125921363732537656453822565812968414026128672673460865094493735632811198807473695297327149236573757049862324857423283385258823628063482616456042374435791113952035546915246249062511032175570450131546602580871075787349432563511806160260278494494656836312005248065301349809830565817477086297804876155529943861057813577746399710003394060452375273434921999671869033901644223711338227498099951907809293960687494783146183956946621223803909918228942448542809511731052583910597072370676228361243240337607457421574137605910749886579690122004705836163293210946486193305287582127086997539540078562132539698967297463675218616640823176830929848178609718553498062619110449434487718939798564082561928411304289109541406844723792998968455953201427936672924351892933657299151947710732687095503152013100480839184647668233206844739504688017386210197681131315888245024338514908371788247757375557244164049045918134516565058431149682399998143941687230164934648484096057478714885051273344419570415948779453223696323118645504002403979746553224038562398828231462452354790232168606973942619546244738419697903639810861987896776087677543919424559379421185626921514339570644844344757361996604254823978909063494571241794130734146331565759282399705993371995351383421720702666169202672508350767878987034968244882057954357569865206572771972324855728579035045483912291333011235807934137935975197340853690161393163308982728641341306692012781480655789323908388119451688678704900328724433477702573823844704524270512273178955723153984710985283343967774234565683161598102550686718999315307177864631800264257192629091005336662181972222867798953391827415489734436809428128128965414628092012704359242256782001288894793481302713124311990971025359086369169218198752420638070762152832420138317246588407991295493402659641915326167412098011107102369714759602669417913207235140079244967655874842940705772009241439304126640049759771300457501744565476074838344589009735023111160776308956911438845207033634135111202755257835318538345980315160236689204153035854581881010015220373390762887377934749715076523956603674909090099450445630027100677576034028022020205793087175835988178872002650776444248863115702901682978437034632267971403120456626758913892743439708513032164364612819910554131872084028958333087095322555835567428267107550173241040743680318190502517992586226601169252124246772233240919467371302927841183296926572489144112447757055292056610517963026119592799238512031503407605897679215207605888758628390239805024532855223541105917314586097502521161216519980545092982908233946462782614755851179179946146407745064751215509577532828888576931035936723034048842389297745367083076787888136869917671635388496948394338836247361410142973509025907736774469888201472316928068618021432918137661235387623680446441614220570880705453531061761048652343937637897174950575262054403739613289290542831295934277517608702997766811497447089493903541476046610552004131019840782050192418930506979655743575682908637696371388673118732567275684129430620668515976544354324788983802278397502332532086497760684411129261610340377382907138947446866769162205111720452570050985170019904251105527326101145003063084580904121016692712540762982657553890651119267001795474477855536871656717421023419797835130544189772394619771254553012480669144303831216861242708082066495001145005003017670172347858464379007107231129759150701898530402612112005346020215590870625606608095769979909297471883164538306772268929532897211679773764069710341800888517523548656147150255689095853103130565524718053938719968541783064914577124057529119243891782581499317927478723986488263780573099347925035587259179862431649802479145534302669009023230221880674946254960312062194223544885868421205224231345623593290373350546337859544570210273840511285032390078751977118515071256476899260394894047474647618230614647352114236953663727592989099417289110045016955631687738782353767484718745415586198085814689889659032005526878474092963607883471399664739937916430813108509935500303131285857064266117030695183107391716410760779519500100771283939593500635238538393151997730389091860991646517205513860276496143269892568821324970348346584332847767168927476055496304465992514060882260768321666029134729399586671970779939154805538538526692972117484559997320405129411224722330664744037354696902371991481482470823355758065931388190978030031452651370949029405478475855470014668426141730070474666825193247836395470697867631420408217245386232213595239830831797292351657466830433232370463495036074257270461626881555375449293262803447220334254434172819215441713758604311479404332532037042150880697729473814174156945108922639618648766347327475955838481579831072733615660008820800118474757167430935536846472063244584320058008594192993890033908642407954094264838656551916334116755381014371020772214340102998488233139483622903527544335382405432893476028744433293701750107856452349496610612534385055013995140701090873098089394708338034617766265166504794085266450768349435698318396995717101041595636444804223483474399109482317157225437896345938641294733653476217182769633529130208730924320555721881492100495736579590249016743832163172526588124327101491278266107674744553970857778618706273632641319482089483573675811124759280382213428193978670804258209851322435108005619145981069171817830996949706693317587259859180008165248899648062966461189759257761606336593418455682314132613952021103541306108976976835542041970694152686383323885869960846708553940225796703906287354849243778962722255280781764011008534942001660034500554553023571464724962679447296650759570773472475496166128327374265177733107813148718378988116062732984960631079620273975294736642846239968402838236413369920599821906072377123433304120027329186504606555907328825051125610799243003453859597635596506076409614053834193961612827066487372068577606405639037778804180686483993295910600475209201614436885591243098192952105218216342328993929694126079706180823481088244555733629644602929229330915707009872695890977672513578510606935583795532804705048690686323565540847036877536592788150509437213859027758318205473825498272118758346233721134792332052058110886905790348397556079886263685230904591333655323310656035920279819724532719989753703778015227056651641692224598479068901589182586095190221035266249462474126690581261956705801666556184815861245351653642209729093301838616602500317492481847524057727275245003508002440435222122435367849220427653826213993997216245676048391002002870118679076413578665970828006532071171274583395541738196942347157114600244007314721471492149783700438878293021739119527502910092998840228876185795258148275011122449460698258306277366629233171793836948843292029214614551546056147401797450108470705289364262847149220936671018694592125080935399299037055040671805455672072880024543933855249873379368651137152553791728243893399274702801714549888356260037944825578572274462659385460346626543735864041874843304074281783938030862457048189859610523386456898279936486462366413351258392476237921347183470390319649542416036921488594468250101695334262183930894149500235194765705765798268257649396802356304710698006396783427104896364680038532590151489737083366856563603742201187489948123443957505982466418318339867994927049725888718368528041797309327188450063990060943005751019263224523470135820680988394714480709555938430755172130823219245469512618576200160064374147507511233749887917517543978973488361407163980579710557941929056361255833706793917854418896505930799593010475734386173034077805868174238746998716829557641635716722632833903535874435939487715088871364562732770507286187439260292909127337302480009588638833153074975609176806753944903301779215294108293257597147517270515640516564939993557308061353383110350725172389151931203698049044054756002494405583576062187954183605818323714960422579978641178462672584151211771442510169616377326805324748298126084502441667745979064860586764102003040840015157606877587446273024390101878224790282824953298536017224725632587253214606135952603690780171433014380839968804544682242629997645086717145569978432386119988423309313363984072664711158365498736358261701114593412075946805746674953459499850195803473282890287616914393561073106255144556105157777640039544256075952716053808840310798039229865802477231706642153456091312314450380529391990450180721531983698727530490855672383385306624530116603648848838117586626150428704316681091818190281455062003551000151157983475568850556018570525407479731359476734078140174256564938072087463072199777438813976984733711143256273504247875705939504722966071401309579198632799682548632902932579914056688821714125474062021617056808694173280860320152661265552617566493282159598236947471903989756418239091879731252113320400075741550099799132567995451228091063863583323227345753444491748886237622838463788919906003467554543109004680803081150241423497908864037100642161425334650440204039997545902441291608212010983213811140019479029190528739296995801574939564929590009311807929531224399825258582520224651182931254127092776571578865390544392885184140259380822242713130404604644583787069693879805451216137658186881030883256873264040000741895188950723179777431059300865256888121695207435963045171585122160627579709251375260870487258035731786099027989586029408861809083411257742091053303958007022620506415077595158072052499285898998634909374912432461607194926145742359107282881280728195091423938597125745207240491038536964058379667867951671284177456256863134606615719109532739907961350624647598884608414141983206107199829588875495975174854995424277365917571976504527928341428239646496423702642958762980007138003405715307001399204290229106475986695492119126288948838633934677111422139112683096247929488293859847108443374725028065264074676964428663104583494205301099627610423379194926197539984506938104568244837058509307092270935517747750579179113362925969813923673319549085426485681994059879746344885835220529704075339173813438273247303236656377122805330384415237156913110550697040168708497842036310938491512095603005137392579588760228276094291118674287518257052158707422828340872186739081355861400678934461184199341868337812833223130437156295273789776771742266780026185411791331972475083926748024392152882837140019856738475139148366817887638199520826173173166162739255514751952967927433751405624292268897261411177957673223905242287600923578705135552095152892547349701908650822183433207861171070041478489484887572268388150346991051428072880934479889741700722632170962858567494534064711578469631576948488252699824416644511198528647190202288934181803204418066020206877722005811141283470667480240579716746162741581577884407833029341588342099234117833890861277583302483713619885057340500207303790303572408662743637197671161158541428786413405392392595889254205123232562611352685423374110106647931424984834641610007706495982691028601979543920606162543706049462487638046025268672668500729439090500982807832288065676672341640016540543734406683857106490494080393527033513454723873450590753956367545625776050666510187339739425614109332673790282726954211603458079257417142359909053331689747638718580458651470975175571990512484383088785579177074258892542782023649559666901579315561083523286951811618023476683337670920189651963522012773294593459481835562614332234830335717169347101796227540598760349037723810217634161760146414673486038128996984590121398563440073129899984343376603358339592909037869708599097107056208870294577584877184562623910499217494615231124231871107988477492060470496672832662940668098391042760123965414211771060889158202615761538871007141481370588509866305249472436949450986926657309652587221565915447158326993356186165202794991657439891303685500227923096528198142138556423637930658134821922816456834999463995250966742113773107466539077463792756440456183647137854560526170879870385353001219802764624588882810942682376119315380016790220382263794774478376952597901268634064768452827467960647167949224883714294176158198615227339403920117055837708727105111651267042208904416584330858708791991751755292960405756023321379081540485616782584403047003991401889626216820028038595614078189585280474785809294799681481830316260600226089386838052266686666299756507343747493775850477737332466769740843664222480491737132588732039410832266780900051447192140611793745818824073238245667756438615380414573448721961915510984058183386744357057279144392054396377223141582757316900118659262896881855319230094604211582239355926007552724805352693864411677221822038075417531298833886676918950911061982437513715540915887848858162643400167364305664426331037324663802710435347914598298591639283698790587941959910069025977414823132724542034060402340886066757313075657858937280183920928444957019116193711261140201753842814567395229067964501357359464396206726192498407604992194427192829071843318091457419628578707836291790401231756448732722038321017723084135563564258215156367075531510619288760268177950287434125926343812572775571333201746203001813395901071092021077816038668855774462412786307496692997972489613609929903379342644095755461457868284909178495306560520413052542192562970754349714598801909343642623405124397831971139461125922864436645591771665759256570774749909104438057832708607943560451689082260332161875856830704402437183880548638887921795350602612826000398856040099374043567399010890894432756997571135632915209929648152066512291253707979515964763414531611285824276417650482811862484233895747470292612247215621880419715066928875611741603695599901871042135081741451462237962355023962906676645390776802049784955796085968365140271671373392420239348891019910638110979648647225878236222036587069077222552738332007894162917245143522111754024824557132087765880433009730307380561524724436038865495661799367377613911621057380746741709327804460337683431411026266293004172723954392507772568864840104550194433717311386371740398125021852972043633282845906663077775793100292998757599490237952093168462314528915978239784289301555356390171015272221027712584143914974444821906754699729853278009665058317297946573854505036688916972084708360207041234062995122010844772491096068824038395870119373141784011285758892273095741706131267187516969326518562577595436682751699541593108389646084151547777881921521214586168473507281278830923519778027430655438214631863754264465993846798336392285487355799031923989867503704308083329994596415685713870137683654245047811227269995095698603621684771934459875014534564409478218166332356682879645649410544011852733894138823721746616479732943612257331867920394107849334254495019880575679125076180124304976377116433171728135131510834602550113299157454247637804028490948052478187622835020746789456415951886898796281057630459176400803362689802662631211335226887787311952674225325213411258051884974281966306810186217678730667381445442430704018029859505782225060976345156416256205278389243992573515155927221615940417477107296587871316792277154179100749590575910383674017990636731251961442322525777366122156223919771019542972350936621524351013375730229327691657793073599760716580615921463552269359766519078721784062202460200308190780710869353808959016141869107448281163499865915638351418257763322308305935744289292638988252739778572323087292105036552745954392856511185243125913201399400019433572751244029666225473782332080307792578220213280727155734786850445159754398709426078320708307977606930392185173489563697620278483416511917579180365401885194448823131703373059261147573589645491466183300028232219710003295783514300858523578617903850190148116278361146857233009808086161808297709471081974140811500495475783855771900789978467671791828857944733105445078200283846731908086294627245444351366433192362023889364825790838791345096056831879123759253069264175189251653660688304199876876944979749087094593681817986794894710610914412559657417268087335545603016712948108128361209813116715322553896032128720089169871735758465442497489594056243745480833265890925539616495352966372860446077206630449598847277727549562971302522293039248201665888645495198693163175260504586837669630832111282375165915633227134879165447864948173459673757804335773951649140505348568131158088617334130996697849273006413941306622678950650601546792601267703389071827182998476616881277977003557910522524280666486745115439122153639456441065303441423235124358295716576224555857809468217269229269007205206827306230389952381724791187046988020892225736796741905199821982181650631022702989569014066681457420328597318822033683477316559253161909802837766022310990814337473763732598085537513662085510316444685873147566919100663018332730169571752929411607161672859425034288942971683870688430808317069943244121133119744748748654475204719044111779428201946345489766180412040414042692540274868094394717116580089743998993890195193287357081115322347290218605256580539274831426356252786522233459946968890774002471089349267571424424900550215834215985786691182104046581516281392889937633815302903213138136694335582971511834819599291954702081554975559373922593599681840288141100364546122765132883266724251169198960754326713644625009306035556548125806551014581283954082139434060664615952078891904098907376381683425128822741723187870462896464252474173988128048991395737302702945710431019398412372489302386759900516131454423111937135689011515929751053551330318312357192895570542034188108137473703423590047255593785025472819269678663378093974725039651499280123854056445928419440430045877272178996084939740917829308249836467914581265024037632544344466142632360915125059962267306082540466799538485122252002185684809820102056805883132040110556544875551073604533284541659255413868581869353364997791790385894397852662563181507738236737016505496761791741651645261207838346151890242714519280562520667796913610587756851397916018005103518388512477831860268469757865707588642790569606609585541602797346981433915505216482215502171831640881505838719033412538254950813884956414368891176786221710290913358960024873106935698486427313079753564485531740274965670462253438508425174966957483110347485457487206914411715428121247467859711042336780458316947804511470066166178857004264116792428980404685907987332817891420291232012156195448069985042646245002790322712851240291267319677640348462852309420765415614456984011405396486948610075812128429820628950802614043864829266031296646748884791790064205528477777484742063913373503348307190761112675829418842190555318734979574399730183630465256088903262833543472442330582619196441240871865106177452692518818178474604165866926086511904714462379481482464092320803810663219526141093806096351464705559283306921564522423588399552247315427750825523641210716153349093915972426238927283751089631661569664811750473501734768770090284456367059622158990122297043859216836787751859830091558466498582765022423934451547636419605248103621064779196869590851857987459916822666513283705181091927053762980053500166666713873077112855703290607165292735605180485023845768471372142115081587129148959709422208618837773718149857276855666866084224998578809196948630775492951109939575028379813707041966536640487359161144835460243915374360151421074096774407517879899093922839916254272312352714145388584389946323737953700465765536777390864544651729838011039803068609747912671358911990943811339221764660887671709816505645894336053562848417263296733690699429769683447963937551546543153731464214350448762263948841362038138418572158606444242620825274461495505227147561694073958523052161280002708183208696168819919797267795523094519619115045985548209975133108490137788631210592201798651242697235453792619966456632773484236696037889024826086681007915301170971630709311926152242907670954702073899856154934515515443870871450356387624874137834519257637772097480275115320936686280668611764964115272646836357140283637013429673755506474450941398646283631329178921804572467735942983946922634228372205884864825497300136818101320645861247439794454896175790608353673431285347676107788395438068474990387289478648920461638086387825914146614385430552289463153328565018137161564822537530059085826462439373889022816400544378890962678931150372911145819701574729039097028380435902378971903598319910935541691795538498475490410027299679685204878311654621837894372914945818314158429843657150436605275674237731270818016938491591336473473153512821346735168710149581188876874678811855081971397998099735472062246373709545392265893023389154786910588370163978504051185077808048042391792380904681086729242851113167552532928494992918649700870491411536507212421723468830963412222334425663115382620167904873132816249442060139106619281750456615391896384795074268140594002583351417526541419095634810544525598495672812859576958552492871143695873995671095403028526366225972396042510207994117196129349898531500589506506320605389989144699110152127815950274571872178726431167339742747883035922195558380642389255244870909555441182469226382790328464976247408028773866960204514903001090956972252513425893562789763502696174397509068505585789247433860748132913965538521022715138747751005099324076595878351096547732806597596877400243907918853306037038181965709025976177280990969613265041929377912658248082828466430121769200671592214105203422579158376776112897496948165870572684322271520347366291894471379466003508508392321511513461685125173055805917077354577880569934533643000562748248656285180043933372950949904035422300256472706787064590769978424932808361580495710914371537722668868184363271223832578134051172504708136514307782418760984625302253682261682899470251128306623081078707484198885697836896000063238488405633696508175605381167354477355608875123192907263623916561735291640510941479459720950117072406381167617189849201752155837578361450298092208252945767231929708919834827320598502310321906781947945133382668064835795218270734032069702651826423322502301599585189640604019129801804466594825469254839218319011059552885023588267986703060311779975725299686694245276785126112314012289704218571997992335258654078667450583450737902842603102745590768863864989870265190408418245660201733359007531363807580310451371344015806056500202454394413463598682722281530374117652784523682024308805661770868534401389340012952046731330851709036503161876823893787688112575506287861536090469049022583306584968065308338670314251492953455772941298483465189265988111848108089486672873800293358429277520740747809679410190274283747372387386335511454771825737969852067564327613246092322017600694231635416455092816679717811732997972911551080096376033694462495843199949192767248531433063679205124694354749797089471042851113656091045166584693800757561101008268287472568649970354141396882384408713632026054874271704708139638157590748105539254367128739966424561297282690285660494767694395824302974858689528793636956595757988730560515113889198082730057895119177426769615973238806184221721321542031667737981560712415148195820787121877662194478712944126725148980100947265972982599258075801550394588711287485500950923546697777867545899937889123784143958382974701805041661869295578144826336941232129156993088887961264765599887335839359221637629594326398468377107281510127039450094569268022090609037915108088486159563854167435457169488183014331787005024817722791757500766002493787944229162385576935188322220974346914236786919854793829768422536495868943618798465307401347790309982320320008658695311703491779470040220649631247206708923540912398453129566243015679140712144518451043642797703003730415572015187344696953022534389580866427058661478624417642446396439980847310197379489459239055542891300242662994863796955164017599312594421188858959983734566260417691511508790181146096630962797722649425857150562871904129331248309731338435748558906850798331707291462160621478685534355793434515447056962758459701211175391517017868178352875704772045745957857091688156700814422444890220647239594104146329743759727650054493462537982208473444329564156369077102792659896730806411918183469672718610755703323973956408126845771865617108645417957383028189579322091490511834241619042036748337311358697471240352107085324690108157473669618564614836382825014270308287668168590933360564981434007983952002590768958570096433632816498605199183820757104918824205065219999843693480829287976073516085323126823828098843582076299302387543036457341722194258945334444712219749660866881379770567618715575574626146151985361140569583723521141666098371051110924446939851890411361310398180457598601740778770523056542256960903303871219013642870515558913669719455781596525703781489426577060114737625507006681748196267719329250852072107462039068418292428956509216965170684815207848772933161235501486824030931856550342980258709934004760228071198384131164039479305589031597810119468648812410378598476003166705803704976611702724515559308344789152837105426830369058141197049406223843682751586615586919739672171016029958762894192412681022343705460697017365622765877368393046151947026024981129741500001731242627914649782361067074237740486707919937323926057342170229353772800267004372034320012389814106365757262042075417128321735725389416599042688116362648291762708870167249535989043275059439494131759604724043228603848255873697678418874929778493122702249108075210798658085589690503989356543842094551917259046523361828909896691526840784097783414441919739846939898206215903206289250489815868991287431130153168879560134710201348710851712418961219340755445805088512335170197627262957260998403546038345715362346369927199338514805858511037198750587502214671409622324145241946705500796920314651068248152751685155547822037727048184737190902744584384833183275713792039467322673473831943552146395705231704200393879178572589147099967212259345907560493185014761447561706814563956792207598111111774634902090400469475609398343906432507080970209237610179467447182499231667049573828866226152381569835728389306499991018592106730437639538753762074369070645514557036306218437891944392319074806704101035760158266107554599117409449173056428357035865516231865734159426023978043497549319487805980684474707231024659971151132061922122298449114500993059539574922548236814339749627161311428536066474628190080291404280745699132907947132143244434246213246742145360158069623631434377982031091570902002732035533336635051853170516692784864830951777343849555014072646131046077089511172816624624119451344167621375730572463093094322090170868230371585271059349020643316003493080058961434098517031139261776527779374369576259650869490063918919530971652992387492306956237079298895485323733713770259054688139464831565149931225616624867471451455018492858742792735516063587328769032086626916974265208519503873105086812290048383165925469495590860395393153568720069138225177628132365933283221540027956473283187960814391924403794994285650624261335615975180161769733142912633170004131128797277229481193591370504952382887433535314883985963200658151996317698373488185772845782382154248345785274110318880086083352968217257497047583747000009884291615483331550174550379438061854490942005090936234318781070367597288722126574569446912846227068417713879434404341352971658271140150804635403140366270718234293955110638678128360347811080233953196896321159298800380983631308501303509842785933580419696073055438596666814495858227310554251279581431797714737991994660604047222691336179403418993017457601696504477908922802347826073989795105376150589232708052006597470135302032548709828075438046508361510580518249304093121561354584704409079850162264494450475233706798113026541224501611651628451589229136571435735311451392112299391558338128973493748932700277014519995963927313926758055222143090288327966203315503534822861114931732906834589947093410544650750514880664655430634687075040014682290049812081672878365983536401873236824502194589505258289073919089013902322441180210672453502783184782993246037855651225770514029464008652318252896503802235097180960395890560532094581539781586167830569735697146876349018821258494259730321370744943001215553654188837747068677622754899595802519182377595305222780694094261902614465034006333036611724969835722014211475223233986801241986904209251999113018984192338168844782464290782891956876281349577504054946675716849150966457652496153867541836308121212527311790668722879150592297046567361046174798828176472783573463105679527672098147653505740151052914122508426088091525860937153344522631841861810606591989733957827469225792444722862460609165629775203869459695460695365085869711162090882898560912037751243128010181210329826795225881003900374642956285366559226208973311599593539685209137206949091238429935033083285352457155751012839735219993072390366638619439900931067290108434143743969176739632751034514932300587753233490346955841259741788065341913631557323183036759783667823957729944332948676619200043207768067094000622794477122955171720495184514574676377398249654695600468395455723330074489771610298912244884972969863873218592461937875306040343385338275336496288305488371859570138515707805530793651552824216717251155620274796010286174791863288941143706355874894205244758748530266566584396255409487858929915745407519112381334278884201064743907620448698700566061145455229067766121723650011348122552579511807587722840233553246885340932590468140971774981642174707218138412554280919466918334492890402364576532322585151118901849992300478769902919910695506451563821159458068411444527384498009015982130412643246802103407720568359113455768841667056416422767118100092139830014536374262551241082008425242590282901963720409150857290237805584157038246701821249306918798073420150489550617136796180666914631782185689583501228958467633235101869100253010015333179175271657820347602683968482603896570803725022680697185388172140263529163019259027875932267350778040619131331275483217610795064568697719282350613071189927321330781090916203441540356930723390693125864055697175388910534585387204490863865507424468158769250352110329169126292379609742753441941623666752364710203265179028352151767649612827836630205378002447318289833741783579543148922632166548684325926436488355589648909086039578031430645521949945994762417933589240357714244416855926003539048723879360973351447812024392731578543733234058402087724765781258788056345022992132807142900445987403486933630554229796808391507093650109947108852554573319412524276481782557780669666239386245917956715871187299211592013092352235725574198472214308344808652136956067177750707932842910230327236018825521940608667818708704428432990841974814384000699307223199994240067604278695813147959162379032523578259552912660908234950753991080114308048530798063567077718517069537174627777506255942498400602804428811195810576855076892007773715384717382757822855637721016072985536178827241904452123639652226887654335697108498389593614313790945502915900043460812998855089853525134942504019609606793874233185282422350116411498083138725087595944790406308377028486252583388610377181199192922120941603786546650844631682472233446512041041262477763260025983667165668286935661610730341889171350418975857662252360178244475795300316237436257206985236545140561331167916035430576049125727389860728482915858558740521198442447539727194928014949104178407585929492822919167871922618303340525303015581723481112324143561437375674563178031221661475517354585405094260977167715265357978724067149269868229087157592275046956722448193888487373677986935632282472495391399089150424314831625635191279420078529298439939683795472794115182089360185687842161094896780812473349731021934894533291033448162243799543105918081098903266876177467198340135551569903640303665458461062843204159247351237479989547453203475289592246048495077051160292961072945076241243382532485502550974871952362055465897982961078449972216504621126255539920011075101041547908093494854284873518640435074217032817192055682376952215653303840032496436182939972575263970858903791597784244091460888874722405042117570124691140159504276165071221740620400283142384206200667567093865318220205449708857881774838867917159109207856324149180050294872945866318146797489511411348067850763319248956624204349418634762643438589098827053527114732642477516962115493558970316415841046877606099227473881965195917571042690158403442249323823831847033817071302751470265138955650143857345150448653335289032940057070245010536158908784210194730847372418173018434158123433415910332873567591521285685927785927715391218190305971424833645293055047304508638908599290688271785697975352550345715061502699255649747193368297042042638133140855361510023494994288336471490486142747676561603027268224283930618907491566695787260417640919194119133826935280239050964619494395107147449146458279051838791296955140544107389278893169056012774519885584871462320648639705144976474424092840921346899065622501386584126655113579185111969228898953152457982484658195885872664574226245496341781969317657154321941870001332596859565760234934446617714389411509346677918552231665688533487337747027219983787033956669176976503742382426992479796230687911112430346328697167495873360967868063168084372426416860107799708000682443480946361986795889204171287378314911700312984922003639755942958398359058779735845656982690493999019218024608137115464753939609457320201793392512817798741287142476971397068555216970438032388456502437945809205571004873779923194227862564322846119626606803758986554329979820272784070331931563038689664489960402263378039734341034773183174298030094557499443231856286407553206052476585997538768775538458888212357524372267909915392726551811597096793855037848381767380815016394360655973724958289051459837897428814697746922602598173319106575949798406901686543016264832338702842836725213052465887404523177416459251016319144872685653631120682797582152548642486160213214286437987898108091845353547844783016919752214053274891430489559026093693410078850660354506097156350436568713103536129077747256687207929456841990681246861370389161328110663622107625485211420278318776895142129786531601651252432973535260866934514615104807828489188572413452636928491782486524813821930846220461773105497339427646345498185941286356340002614271194535172769425302621203392023288446672683610503804848591635153949619660067527773706566719770180144207141070400753266903328232884856052106604321151277908770973843252678052519680619880718652752592737181561290574734843271544026376482662584794824731490344277420619910036176523950312586062975515570096289346393228782924978235428484277749508221451273801483809420684556342449821541903707484228695835754489078425065126548448158576650836635095244024476890156864842119383636037195465297679952123078454742610610673948871227482264659075851422543796979750157566799243382564690342154604251771610585812189564455056345968635555959748293541202447969346785823748802116457882481846076064140252738412631132297060163909232809138681432138964560150567056675699391070903319744029413478833264116841727448989760460886176470336182681410720813942918485670394241720218983581316372001154584322198298545773849479811285543140484556852780411006819825087343215681237367251112223360272869665102064373108562627404188734788194008779633431649592067053880882737062988733041670254886240242815913855541880339910035350102052676873383782680961749440866238449063798160199966925836648297946183927790692868705641709358791647707241959413822113523411162513600596434403415865511582283899764195776703973572943583186804401842395886155141052402015402953726231432262836011195588451041282465143667580742011724040793275389783730885650240888938735033721096943765831710522490480937927557532640742797196093435389464793050798549699878178035240842502041638158740305494802562627018736817459734114719159578140674349607847988361665856959100068669472227629456008535656153753974965500785704085115083868653791528507615021397000919204409938144017915945714095205763187334163424340627276967081486215272252792902953766824101026859209165875818481088452381100410133437491713479113754984762482915024493606754099080073742886014122400659789440087796028184300331620358403189140681801792207814355729292810890514720550061581170337655241138482778324369814692134484615731539921952246994306619686829445498519190510887582760847683101108540602589292007376314219883878946067419088761618385833653312033826197604362124886421788273347591965937370154746661241984385848720164988213060726556375429075534569568947224011168924666358996366536150105035704031470136206465115404453052464249942556795195755667492437421547236367728208873328217630105628352508084086804261652537008669573033076623177683333082053973186954021852986551790277373849500211121023971306306162077994272375416427886200594643819136652244221649955785581231100737992345555489464366528691378193825379057697537215266710305645395997103647375469260791188426889040211684735860637584395946548229262463875926627130133383197010030661879671368736841869947330766194604255199074125914540671608491839322231041969865614703948481432456629834415979375395916979759635022156178415554275160753187766519149652526923561634844812377802041821719110484138840582438211789127845071056651009426944235023457905272590997848428139776262303891468934623143669852272743349203393511199243478078648610436900969961629331191214499973397790697889777882253607169722508874509852850207736894259684008223629101832802324003247192171644325996869442822384857572708006696433811298929379280598062848333468592208588965287479272506851636896434558787120928104498955875999767938162551337561992393704543078229561473195009557066450792777028413772949724108607579401064147516691425179179226700815591433131193274015847284849923949192453963099426670461579690165832223338353447474988695903030378356991991527978432395696035085134435757554937424611431033980503376636296524388811110505560388846168744116276146435356995106795698231935994769438128709952852061994435201169347191759512854924296626440146145011035921419532359029738278475394258918022820615066725483371834226242850200853317198834754303443978978123224130126062928589831773583038972697764175307437187678715077142744023473025646752083822375398579285573031272815443745963869915980857027757256203220147531157999077832410454676285856308309140877279764960382817368788050944066270879686795887021965403298492418675549900634564044591415499649047229987876453801668245683847016380629898687028138267904292467101922204088941600803826154299181512960515306842064603175987811187384413795647699367748925675732348581497212743751529501871089146494106181224001156598960724058060955004364525839990850962886136783085379673049089364214290182669688569809447787990124380392182503605850506125333416258455449001442710454421191326331408518215733096074781209175764802562390273208612563037226317257222520299425538458704352961872058438644334915654843877320707454091810117718547396326488370739232121281844352980670211788558101288331791650178194069433788511555754645079577922163868767945211479952970503776500920321921124839576497291823207171019103876595603115677248960946200598988324195875928232246983083381945157370303524244886133947422802657826547287466538822740267945651808865945876973424136139022760280116971757590941894300826035667562041213745896574711426975065781158792313146368117519824163879659768121403544355765305185551582020727682547412684913263587679220392252746105054243138221354949381316186270982227974855899374548264513808259604345040066305770953278792509462560791676911117983454387620681636632550211190638942763691446737320153812488966684851808466262520196468061909432921989045867603320980669783618630534341745445421422037485880241446266787312832642739929328874675814537160199662012069751691275262783607190854987932576496346802307731858612885231070345896428503627522911922589578213155148138608587248083625293921837513967271657067949723935255629580966998447663273380007740359910182271518434282836791870873832599253278615678346735942726261364005211522493828659076570253528078038371600436068699691786111147306010312037779652819920382580587835042165115304146606877560835032177679317780938685499010185323501767378190956308419329861659278387920974044569074039150230552005372445331291068588316605571592132213482086042735479046634506254459273035113983120615794604653752927720116017828522455007833364064595593110666915976450967190004641351068071330263386705422624743324664241775812888125333220562176759588413459135113599182616462363944943154311153724905128999845332589915930812618671269590626279062430338975898509388911067590417935769836607249266387058291305497979572488970270107518852569139211290280089665389047334126889854944003825310284058695845515374523484958935834105506741338641792306256086843576657038236730672221557222496872331791313432715712619033800454623033472406137782831931093856981623157387440708211482047817221012379438121314546354952481661779670077908085272831116859125350575605307285568859406946355557401636665755856882657348792201755207673975588973980752852931407534559105478524238277601536689186838065930812539862573826946611332487138382587609630398424884492913675622494607719256110389576780384504403924978075331680475548370945050120614879267664088807794275017774758524273641711598114619356833311251101383282586945685204967712025651544377608490377501288665499459102364412795189409217277670483203357155245184182083532245402354888977179360683957200297870296855777147180852446532632405359333903340747644529773053105619396811219527259295553481587724762795089114364354460166114840287140013497604283589053739442072328098822906085564246168042756592737104098758031343815845664046071231102129111481811873279362466028886873326229100035529103074181708183486938783452876317800144079765624049945817803008626477493367862904387205141714842909045914905814376948992391158110789090258227720278646322599188903804214618698294943392199883768198683423982529317659274727679033927886883217983232109406419192455667296875525927702228695105160606565001230207592855679228279696498553090607024863498792044173354915836369926034987641968990242347489542355900720373700429407704048132039513345031649333211736374253209177661136860094869650417850400949251281758806861657303402529554508598349355622286413968183169831738924930295937138610935374013096781958438969961446473696176081174955480915677242646244992387613690112146524057536592838125455135310644349443302379293084635724336008447002199677632807305314150414651342367665506340685361856206692055552933771152068167613557361308045810474984729109782687107763806841439221229515172083081564873007712786562866150700612328779089618246797157535259508575432410989728013135599564826133374913401225383295377898333047593978827412095560932876852750836202774096034473675422412939889465923864564421938917766226846903359380698044116057478824241784888411060223469286307416057634353862668724785814820008895064585996362678232092673957725504967255287098324151279878131330134356802720727515799200354267701572221987702928381452541597308577472185776681618957823107283318524131212928855277062186712548210895300827574716150832733497271479188057732250456388841337475179772645392013625061303754667575344157206309660264459115467595293655826171749796830358161286868382974149046745201736356694425112469516908817706185229074810066561701415064590476154411886451940963870170795698421002888272610243822156025552484131820864922491443522572338965175274513209197503584656265293900704258391222313886611899539456228266856813791463126806251532601147390499036434482677606541972783346021317833962333251063328908619738976747172371397042915159390863099262709350598638113905900368369220644019115736406701956705985383088800471391771840022656618597591125370074255523403209946658598145266162861390124842904177859912455497938242292011778790025193510747254179325578036995869799553066094004392808968075964954520761660492263891543597909764506302320933509519727560093323643389439975226404758734833464955721528925837071576408826187760475837716686861664060017540551089417831754775001374818009271674243292925766417320203955474315259293842702257496933595842307882958358680162581627513762711156546975017037513251747147497247175828988757894663723407511639301422683173556056089952869431434594079543645536046229752647695603022485876812065322817627574624990158794584793895690466891695432154419204216186598175886969209443186201993030317266985248636564541997266869734744619796144912546900299531590389534556023349070782554817102955984098263473693784181958792735624158872744803756027723475102603345466369434927776454515472370850380294542479666230059176704891576243731697058658262337363395160551769815695758293294868318553994196824834181147663356007487411586622837669527480829670242908811245702523116824984177310939933311633546462336569123551063669014243941971018033995052394513227747286239754814960033158060611858433082766077109576937455576643696367582598310868551539734019817045150978305715470435948051269558085883600746792470242339470474761761335250056070780643865727128607688203962645694776793610516483251180203760924909547284715629292417008243127165773898290087334215949655506094601016835679948483491249997425078091923990149832125138660099184816946822145501341542086125636646703558615956409400578968236870978565687692351923912337535134925571817108879567573781134525134781166467604840795143746214845658521659526442857374082845871157452756483050832186572672153187461643211016219340014876290290661423503371877201320066873728908098313369359677003095517997752544089303223674641511934663401382901548017010913834325128255479029776766518026451102419046131672022051864037484551484796001213988684747208547017021850773452089098930088734656461764121729291021786238304586576806994410141337968756867697630803250111556846163560095705623878602011626147663600018430370235007378897035394210169942201763763909308452423215094234262608315701943107020336349269037794240084847361905811509980734599076375179814011319113385561429208063581138624325256480419447545793080760633969195940006477297584603059010118188910642642814087356102932728668369632316970013794701358120437125790956613087026957409420881810435047656112329174595348208778237570316325352348769427967326578500917389389152956820163234096111937567170841113407213168675580981917912463427640271215384967700017696458757197384822280879434384633701569105124663075445172185093955160418788885920948486561430691210945307422198270367533892029542031400782277520103329403185112325996822951329873083151113404798091647236939732502125043274798400823451171809622884252082682636704617386622300300885930776399705588536776822036090769167744641404557268083733319221761697311824003512799570792966471248033633745113423776297367936069799507635509353875987370961525840721323285549479116602075305666353606224126308787344508165685369312314941062656401884348246092596860939570545393519890752193138063968127708778716959665378773214793294694613103811884181642548798505469925658678356953477501434726185059841207350681242924417033338131591911196047219345334470025614998936824542892355151850864166498496843872678515418916618968337487587040757230373216219050195264995464025627465023373149901521233145126828057981589649057982401139967123431289613589729438767083529440048453223621035964468557409313110794408462820643178287175371974219687879733414991808284996841942668101179294166646578946882689022192619542174417044647513218701624566714826248550366370007758091427149425100863959130790713199148695663574909784479960219886175142465079895085666417904717808384229281034065306880326294302604179724036617669965139840246847888947513124939839142757746591580439534368210685964625386144462168376269361738018616606205210296397659933567586021457476731623568959012959090534810481551997566920249197454226279738080121597585597627181096324973509467589175842570689338269008205618146848034562737354006921817771487364733564424583161519778971805633485145888393284486679709616009889628093352504947118729133313892636314570090508794647763013098417570502259642071971970927261445360505453496332057420440569657654508048186777425475338997418195345390042103955786293769075829878720657504034059857282174910408738945270144512122760533414292481996413168834926366552930568755252335759391554643616678151047857510331571151525156189062844585094618554023190258014132704776378304824014243792479848780959346741666331217966848225681727413774757069031751164361671956029222731645279003647084796575961253738646098055103140576267840610908482885986877692927632869558010499335444251134910444217540035277891271977432268568818580347553976617313104989318929829111689422610805967903977810997747021152246004532499449413453534975207737702732472628617642129519482670094614154186136031810581449493876891666644960104010625165021106718761339140912516053809496270822811269163593294889555219355589833463279057416548781077870355740525785107568246118508982627465187702358614646553826029102042307977501919035846727342002332213200949870982504293131306743693324217096777272976093056375476907313042448144259107322442372186981815195411822127124655999801452438479567686143865951402924531821090844249302977709735495448825229300856615369332047763411721817962959009926981573382060563593718927729500851518387398964378294301471085466129929990210166381288501193045014896055631168704695785487209615632981848454018851495625252439439146713654670937142337558035895837097933412354989209125848690130462002128260611847428278724645210619359601720657824945202824272534108062940869793227528677943697531664197671547770644799806196178914156080313519941596646173357089627577790838978426527240911400705181937776710665118792072961467941438398793975436094503828493049926113303625497115704226127221711339132425004599833845616383620411542418772429225382424303443660172245853955097102644883894510690449046190360774106140711646827694585734765025368424918081166132826440525112606144804967383793598925162466045450143759786149566941626837140841386201992667239326336372786028791201723367206333165007608000109333279709038167994212932025500802889175445318552086721701038324056557729129349140460004089367621318237365368649980973764206407513008719255443312908344400554124727624127148019318355882995723461191887874781940392120253877191766179310650440524446632201206555740926532609227602629160962506106286604705587439762758960497150595914108912666849575289936853943969594268691191484292308918198705980948605255576548196630601591605228930202318448551588103569059397630430989734347922928168328111775392969089152408574125071337503248009829442162032059243020583436982463974366030821279211909333404286342288406150688703969071221756271804348516356686265342331269881045752824009649642319366638557530241558381611033255730202663390074350290093514012724020324043164246408150112042429857398646404205238926201011009864361863102649803188063333584324623559164006563929273220763055591860070394105025852477776287709607377652487668891542176915549761672931882521196716368413398209491376285469671551219907379497121430454241443408153796117462054154963892901038292132696818877245909179470197634696730207755853447693764342471849364420535839923058690466291067333039945779951251526041235884881872442150119786823604810295478143755959922975167585704568601349763678834153951530686237619827976789381565948807090013167670454523949299629837769037979816532634214490727383800260258326790130231515993558512571313650365384680720496632389673118785655829340150108809040266596308079147725181336480205210593788295205838581331253688941783183185586594507991381923260248919747193988955261488346009092850170975044361538678429103140547999605722797089531951929652221225746306028389945130016050073785805825932132704710911513253216055069919758984607864990703498423128900922838569207982295986435987090410179303976664653988052327202886073874894335594247084135387706414395394333853640285092102683957433821443693969049299212199109628327035988429919290747661362102332288426203983893183131665231865558802860663120264348957528779852521843560602123542740858636057691428548887858324644251368953889747457585484568717695915082174496676368355417437668802657167301003462379692423624420143584442708159421034405889311455431056350500166705839971100350892998543162415952012975113822683673352317131679432857519482342793868630194288815243001301067763263292955412039798082505895944059354402245914898148347870989089533334842062120852790842887846833448332631124675924663901776539356694767944009824005716693210712510097518495591572300899164195379304661363484589534112813478564704017053062601796125699238808629213904812893922167383302298275908469230984614508188211528133192834416145399540329915053574091369315951752086191683118913160917343295076050595782195646186342890816655314315418832292477837391735360371142901466247873806950049414078892165255048459499480500720742675628867099542499407579951690589404752732927780564483108273393105998833076336513755512861293866550433960571511213713614901687863361698747109490040137867577608178567040100691847745315414007030375152132714141261121958840501103320062390534640298284088228511186307700017311742850678268469180371570813574795481643925361343993571161897820997786072053951074791099883276277455699274273279629997577371862769147979433592221714269661600796198154163336377850157176502858785663153091867207528232795554541574498312660740276207596011901852729733336813590890143025750469628170075447649390883705181528468984710189747566558237101661556445334348629607318827165753642368672546285874154393391301874085840824535006206362933352128078283713010302294343022953200323424286240078462156250149073239366845893832525751881833151825514243951709342648090885988105407814244843544115404355323028113237029193603566000804862184148324839706702710130086407109734359226205543242136087202615342350396458550220383664896005976333573154763224710700347216651111996373030869577051432006326742845081423470817409814354687527556990301659830607070180566069462839328446277629831088723814982325192303829934245476107751821814251134849339060422451131398618309630334714301580855451545137475415450882619043034448648245050106808704350763020227501672265020710521286160605338427931224990328647108419887714228016113565415091090599082702048963734057421968063580028000665352870173054417481425370732962672486408752031035991984280122636894064826273355607858925914675516065098498898453640696809219832840870754904514265816498446223296260103477166415584246522288151379032941136690141842900097501483728767821252781153183897731997931598182556325777417424173465861362383134127530527861944551922034053052474014633523488701813907699808767081164212222690933974999803461125965404989162073499183272987365815043176507128884406412260667205346600195744749426543811045519992436808117354998293751026081184979743779454337412556852683833434145346108860006403594767531041111465202878665340648008977284127059271132904112895085663739991076527250613873317741426711447046699154458819440132844497910380168500280645819240435143684447961490985207951026681838609314907385665546020459438541117609290946844944471461623214774863121620673037069815943673813610098405393629662881313995160466972174081401551061072190275567823437697135486625763562479275203918435031583871072808430298896254573282329194799491554696319518219900195054326966990378895790236844127193698529321262513454398829608847863002941544536204567035090521031059155874774505949977120068001224777051834118160700646413671137936523775486130540712372337760383184392660164501982079805969190663407122270772555968143260307548383130811439450213781514108770933574217094064761929875735744312244945857757798424629204850363670046281492069582158095063810234601722958166472326698593002617368241451687283803374713883860031697947962255489679481249662978169219721975756474645998473859648302885196518993067126665464566660836968518103355216880678123754258147075845574313872911514605833701793685197490298391671875081175619758377416635207677490282150906623269201830480771178080683073100790608980720346258799770135441699163705104463502405874009063151785838064519191006127847501063072073711432421974576051317583543896451900085881141028280804690120499967761042259388449026049730761457685098329189365698359175026023318030955381685145524231499214952949095280474577515475395079438874544768234225741030020297349243550341982624460165596906858680140149987519038140340534868838957863254700287149600506974579781044110193838914675655512625811313301666475115040186741574363151984059806123810630202983586167616499071049363303812598176386036272078066101227304503154340962517520685141462748291044202037108962924863281002207577319777764027727379639481948225710462955776213013533723675515621091068734558259546378523839971946916466647622906425021713978088943065427807271867355294880558325057895578813502215068661193307762678876704815308748114171320025401354230624862646508273110111926290173152900733641804402788566194283230862738708238448968482387155803571586412914526854768140659082185272196058449370362727990270753674223236411064854693340058497247043746066951746063221632766443764168357746444561790974879445980103893096464835751863600978312586375069450627239956482842919052983568103213066035566137429501772306244207362985648494975715642205048863712502940081872094182709151387135798037460821640798954797311834738488128145009390879459491843567140840548051313350011442122911019792041264162614329623991231810666454212990257470326159294073871765152656767532286788791658064180089960600250050983849868699612005606855631380398178219499582908053780624781693567488894067374584204905028863938775801968819456944538955902110560509963933255152226476095327277043760161639735729273833490696204080583342028297703326497312709018275189118877763420565494811328709321737354575210504853876948802292388582870166687588216060256545264794665699723083589408956005553843278108503353365047981777602978557461744818584879067136278711253571642961316166355233185105114362716003834870761778824939044410317451127647712638429390367062831621768533581379761640653920058227094640492370342619540157958614066767811082806118074078853627406704730968580758156330398501211995603913567006610979742116305103470454483738492074035373034193662665763214534432886908925584898507641622061271185116401743982094763982039098993395021315759284140405015558590731192992395068390269516710512492351392794845062309212881330916052913006384841559984801301628516302057913186517060064626932322720926400512093748184953965650428812922035523685476766291086316436996125566786800338525157047496150550222184142500187489575456707685914057799221742123354039454167879620477171445745299713461656666042433921465753657989314878713567318792805668257627497860399912887953268904641199807281296200413454538850798586984754433238551336293218077071778075973522670709509447115742433936308689631248600898543393815720408808888857685391143872128502560832725473730669330186975897461385258555490911212395894743961423282612017722068247679214957773311893945676287166423542376899037155979540641954631407019929237776016070112640757561024349872222418852590667379589929689271635597622303883591403554337535756957983958220607200729743852531447384758250008586054856893115089139942246883410743559282073161284132986325930988628406001080156782674308551317896347106910494378409767862177793783612808274199137862683963828045389131570664502246513370291454988381127911151677085838760587741823532466692000934213068575024246438236669787228995965611136632062763445233206135108798901818822435923342723017787456976409382688856706042024287673476580281475733994810355760810528474856453486837618677202453599695800515443649755146035380013520027102673941200793969944947141196418752703809243460676456551465843012671994355012880637071822033076959908344952957971789452237259165093177879759897916661988103559120057375673594036987805172778529557529280503761978519910285373791777492309154584992860977376372175431943173660859772593084964248427647331123452368892269715166603667784522968526677313260638204151552800412355308730335525317018745880763175713557998351468615374143589720957112670065367192911339890742273493814789495938596556659430697772685297358458543909701600518113348102035434118224616486954736079698352465805492103232734284939209253338205230492788379468327886046566546681564024046094805757934484165048138632291384977482881694515512797711848748541487181570770559667852955625588210749385270005877989636754322646144191593795690870412656335783394316886613393369603790895201756839224737433508079155674523216501477554112173525455956695140196561044900190982897599742239169738936186053944735774274130171089400510114467231240176466124790490395314417671375510332402684214795121667188364219430991031376555782125846976646160526128385144105694387984536659808514092810923103302656883784745728160176583681848100335431770004996617210729153313682235401652740817592429478132114981892719776509585603329987302763550277703111101080063066931695127770271606185879901216521815305587317682931021072421171749881208658020218584171648953428611194804710262941333318919537867487363392733444871060242766288153461889596540161970962888529697933168411245071471527730209437508251160537890692906869523776958940011456623881155682168173115692254394654472051394678941326711412359445465998992372093404085458996882566125245107084473177629056824862399535116248410122264596682235168353137195579503546755656624310965982380157397495202516893251264934493312947505134537927388144520433034418748422982974187081163253602519211163799310334902700264855107453979028617875463120526920267772638207783924022046817809421699235770025555806427002073140968396152547355058142409593871068713445809631411551811644292213811609969078682487550784445343976600700073070585882988715397267375674139317310680017967321326358423634563005176477604942249724528920908491116377946163809534873494356915056092373194011086017252433240178403141297813770142286550455542110341262902063770171377000508379689832290580310823447156410528509472106534458668787101740256565700339615444759346859094124893116373473530192012350943691554491766603470565778633733316161581880035690357740256933975035461401158468427914646055782398519278698090172076741824992929735691663490004729846968253039552382774932884308200421623930815594412508590938438673535285208528282513171164989902393086383585874639439973755314627596699607542572190402861000704603297825863087901960105736310139852596487481188169887512695701833387025634925172567054575892456416169331665221918920928799519048639951669027631987582643349013447608301331878693698771862413457514997469759438232967966920226239945322500768057728821986380980328208810955982403205520712735596784080106202138454005804150505461987918967102632060830281128121065168192191171322684142137944241917109883766175391818203352232706826232634986694633566437744952070952888263741191110328861561814619565114306059086998775074147053942310290483206474971541928390433942588223390695921341795968413982170141123283605150020518408976905790971932330435696497069807926380338712271309604432755371101995064456388846777475711363591218009566231458729759658529753671503704927211002026205397364413921146669721731461326549157250713363638947240822485432174549260496576993782516151630558562181244824708759038156582351474304955496515462424414434174794025255071502006398141456088448812453995426450885350093264743171370966321418176535026236258919635545635957215061732770374441792171563134092488109055490462000990719540522556474314086943604099397148468205121377292535732509008606386790712465119410001156560108249668027427632457403098205145662911367349742016930184273753475829830975260352142683715626604281144908710447094810706719468611288446351522595797162251785482953743341262476610632343110591161276826938118117802530834109500347708324494710461978829586358075169949288158998019849517127197252225289242429253462989313952138518750538862525551243222760687186077917526469934548060903182741523247825214322976071476292801208498599701985698675746732071585571746039578863626900141261046475092389509469824728182013829303373207356042375797612195717606068270461548074533593760010320186835512751383805502593680702215367495264243720046241017114438298199368921297406114687296181075351379002011960013252696157079860815323640355496199317374341548270893190024665155656054829544644183761389684031384119105188297222962154042394453262861318408664622222509102074971898284655860538057966713324984912372659587562002164035726655159141004291015594641393972217415641004085257089241770026561754719121171660739132675495924046185173309145404772406213221775256312792467905216741373068113696864672958468859118411413956964585641196341368168953417170106501318467312113693403567981725880242461918539772828684207230625388188011038765743607284723505488746376488409371410626015941505213280642818562287083538529456926985884148668863268457779304200070960220223166150143961365768491729089292460642852673275190894015592664610544509817835276397578298481860638011128981207800937853604764519862333757523195357967021903235842366913577025442190627170935573208676599317863300548382116619868629587273714821840915621559399656175464882258395886719662902043478891723902075140907157632350280125774780455259712869892897244095006626005729687441003506416111704052829290329493825174527123843336898142167334269090350109014185443294894023017101772954286078059533004095157200480690816855078728702805462483841971937107676189670130396669255723301974666036747270766876040301466679706451766783549395788376010341582490636458791323919289143839911160389729301760375928426070942214766775394703456752422218259490438165770121152634437064403899595392232017745362683470573294871801626422100907553907985867926343066502273959003961919149340633579943806022971973535096013808744434898843821198774314971825589955138379864868869208565184879762986473089553032890460592646456301362528004201986918393737565621310061843550951952120383862685090205464705107785294222898113256474747801678817463078264064327094134425431746631163101944928361173576996720272376981858031604650138156584548556951693288246023502980297155330969488507836477080657106459314489836763546230701894087916034288685444875051921113606552222493376466700300740047153191494389571213372161402438599951108176105767882645502288395498807550240488176470802041018091713390826833197333832459996540324868027413415840384708260871945535725476874981150166767049143417795975677569142097571027999042013753046514486922841544109045117953636409733214329461960494065549017788293826907335303322642747715868797947691338779112999005534634381310245259854601432061180682826865286977617773367291096646251175934650825901002164582058678907567344300856494828612363021178158976854226167433971284853674787446481807706573624757938889472410966006080230416535085363020365023632981661245243133868662733911414322679588651992332476183233729448991947073265028803777488245911871594521781523474820771137631532565115880607611627893088233129367395963264275414378489876386185397332803927074800081391070935398363775198405578861255921454090739153945389690444150894445470619733984567859873163384467357038539465327294477199237030920840837876025968629852295346757121067915834076536199808693171206904784733926900855674272198844579842506764434637454734207078180385303046733664290950356841965759691731680300356438695074291048286042576915650259177013937423554708648174039156592084710850003175260958174150092353996262964755803194819021921013532565541373858176404925851595242752199102603305586794301246247564184089570953571079033595043731637480904835318132959623821538151777270779497412845202458188195216464883772991139319231471224808325011259889005989472249173819109278154468518864608913440788073873428399817239310580851578080591839559787775827870777894398246685522546125591262206035559480935219556510082847120761612641399357080471478241043002829055979241146077436953769422043203999599156266779746056006680535110149665292276155870490645767648131019868454660421653786244248884301843592375969432672897040140118786647131854627131792805513983241112194172627633850697807279973006991180903289090612498594604290827187309783399773037491880246796856295878570748774871645700216822417227702663169552314718391878263739214254866249998018052006981031539409664142982300559113844582842034936670553907111235522862426303669317790975774562080987458301003224003745513447005419176032708356536122654583896266660556843480915230642098928969567031319991575500938534335523816249013128307986765428164911987116818441560721870780908784198244260118203074021660239293406434529941886545893894426444847034253881777497872001063178774409047103877701173786860602101445553673633938667303559465271389573244926912030289084646635679133159818771038180886551366825926257950035315600774449428191152929476875744570685430388796139542860216608575287002942739015767451414863898361112554211040082467870842428818202712826480957486145720360727208781803448710485703515854559003483496481352064925153671410386320258384613525937945123885897790527996688832891454408773143801000005065192103241059876851897831136239342788089047635374506597558343952233784632187666483250522813814187484415412905076329824113974082460983213054754069288280979437732726858583856670317464888034027841249361994154104211473420377506296624513281051593229814151596820448550137183298269074306599564549836562705916947883360427568726574998262166943612445654559837550607130244153778834414610566762684509454749648063667873824801036446322247268739512737719219400075082496528188657280798933866737353488185747611844244973263594896879283984639825774949418631509378652215844684463379221021595395703852229588929801508322502618514913914457348411666567329227338645626041800883747256476460878175626443657565942915264553011100782817784820951891077681044490482234976549028249488098439978026680890213804401559176499832999319312871280046724112921265885432335001619188153498514971949332720624751834361139045765614508512492311367683162816924718862163339611779687914950265069347589699911399713760729727709488774075672751314452331010691458305976445034220958849708628815232529495950138746010170554105162492561311327414368401681357014999965884841681796757239701632053982087333511932368124723838186422631436820549787905388801413418435532712326105718149817565859582933065548346285436482385138755119457659964678642016550122358264890718122414560644939432905511970364372238977079348726691887572661698566752762102366709214910564376792065134811945267099835548150840409889580849028374298037213287810056619250606126177458559911313237384236509794836495156509090042203072214485763638108013102529059103663161926894375528915396488933989512011642488602524063661216706547591428582354300053637962318234005115685967536967858935965421852216281150562453066163039532259741311726062941230126403525492141785924300800002925557387166079686313186672578669657981153605595575636228438973056292582628989905307302494567079153919219168910388083315458579197256604796760203662926470770387327036431826522896605903456913886902259082555793553524210371230745764801320641501452257408570352806042109905918187400241492071388081022044865293636644531239570261358726675159881923401316159732158881324440776707132921834513022856204322645598690259031239209885304534917506078723482731926753191098608844248886257258676726532387396859718699704748204448407182203871148775907571959472490346925984514330975128093244778265145204849682025776805496122196515642850041040555642574636181851439783005586237396333145515345203758007252351994358390716850627450990452657880639489183543479379786863627024460537719067864946898617278987605719311896620825553922497587303393392405827879236573294976337544760805870808705434075471094843128324796778460803585318986697634987883554826009563149210974114053060163489905480163038690386143113055618020489534300698775046652337126212060933524221929231602001168458504199413556319128117231814239045745266600392498133059899837571197969848618923800860174231165941120084749073265785466881669298108599486354261771930030332486183246728213201687779917712511952108110293664487077970849559953877379156097671586455608412778351159888493883538654539787436898351736869171870989740035621986076954477478088016242476400094385569364030698717555767890293271311939007853879288193805647152393824936493089289426754199695871595285225929056356049494067466882544244907076100818900975882136892121752591582708917405776516274596502487334063458913039745957706030472999412422953982594433083468168886606350630001324890401208687809438419873015194485322484337935347387925591097391192469052729822886800136444936120195601200888910534323741989131135950306371623718144933057246486509815784562935944125273170359502899931521862840204897873698696542495422624663539988368655999969669932549032033700334765149718031824126439678975557449339184987706483289532755590915722237296055213391815121262436450020325449093508836176538815535106768496777143090373224019675213797479200722271877500845731700406197372586495086610496436943350181238166316462719599429158282985181292760630271592102500826808390254409145438987879342655939446349279221237196136045817407752731853716414691325971648650081274367568776111241075511552070911409157090844032903202954242905489448697719459188285370201256181309262387157742705016530564852232935496940265361290222842401339217055349482806038987053525083601245295005463191744713681339423497434335060230039268334606256072268358308400513433022397352687279027716093096558852359943780185681342890987953087216969833551301475688339347633700515789841361923171262759848548469700283013903588978243212890860195034083431761765176677294103716658104465363942885144423907651835094636178547437139973099747425656835607289060075935786345434181696657660708193062786364695110278734091215152141405396003349136933593638876241420621731416325486496383017947548301931495032532563429672189383654083802837676520180218999348524938097489761736059819125376636893408771986888194389219455926829256731284821707449961075651149946004980729940993305548590714570158263540307158020050983078641859328853811090887979707617125904723127488925877329196548072254795729636125959346037322709580029558754871494288592675709422282477731209303142182921962038751033424287064840354801098160969213115339726260089487295788608503199544577670118783032647692057580880228463919571685112913902527783937402886926036605561329588455585713040160903411770225074709571528728839479291494758056622960505228878801575128762174764136598056240570747778015836734649165636008905891721350242708836941964774993636860892418440578382017559078365631339334901965307563658991128229839309375597498897365625080291972880311659577781210513691145819136912561287163014981185592524337510109515521942576078971562535003712309801174584056398586429874677977345180863372673633727887932196468677565817986606373658921700967521722268560970497056001408800067668318684142810204916826544032349603221582258416014365252708180898031071318610682881554084779398068735201780060770000344496930653641658479764212984615877223946719409344514290243592831497121446875634796100547012059498688666113806517416304062991043080221228896098136411413271205597530082319762026898104943909006333803882801637756721890246480667435338583771629149713562286642500971637504333403713861839048993286692797814906371284407189878616578752068631862029862488224147358599544493109270915548322805665616347397555819771837186812049197384493520429624810278607215570382964954773882995230871235524195584440446863810014271243446869734465980930159390291216439964785689001518486712255430718520324249471089247951409895712653992313473881276889058514860713200530047261866173849387556367978110441648359585504339482630481220291928829028805810722461148811302424973849247980046643226093163348097646972082618263812583408209075958309605184558736264751661774843653346106997677606690270007240073900995351509868746078599238225250686265162519079007688674734777992484304130298552203551072122927801310100322384166135058547950894592996466192752997894041364589515583588931500796727616617910375217892909215358446668274077328847299037415903741049145338125969617628158902331293724522921197584030416718837759985862938421808680570225784520657557578308157372384802571785016427656168498066943790757171406325407654605754448142663540470641931865468197735752758775254989130869854340858531953163631145870215416537011122060866588104747219839930224519938712446484440564399095386128194026274968893492595398971081524105059137214001327457112140345198018632081643804139854057533125884250421032896480254624976057612575143837517032676240849167080185516115423734572912896266845015407691388590962328116510520122038054880655815615829298656537780469925483005103044754903206131403953309412102909207640410296479752142100918198670666908761061670740764379834319798808715015494895323447235381464705495403487965539679777366702251771992719473786120809516390260973454302226438411693591559618099020405556743265563047072648610636333987739146835391192444540055024901056176539794928917599366986043878078732191230134319051172573142002436232559787166642478177065974693382223118031538787311450052834282278598711878579264361267410912810188140621601317118423498924132839174644333881721075512723544259409946883200877586779707042902400988939891803121688058451812652290036645650083375902092597645459594285580597898492411151455435373675357867102636676972167962922827633087631888257454599884729734759146025747210184192354434445774924948641961903996234202052227993622158621404754508760144786878468529059581809329681404537927860121858450213681924941717923402396977298476390442089043858806397921769249081421001771752893591648321146400277253512594561239796714056085711164136745808919554692892261739745545424387334821625224861033199946456744576038827650899032526578127418062638738513989825428237768087779583521103626670424605208157535008675960205559115919012733393743990360354053266446868158410946839444529690252426502100093588901078929416585921221338056569290481262197230752789336845064107264805233998746123875278041778092565981719462042503016047985301176256790184255926674873048202734897621940555931951840583551372128219577237123279649418317594288501225855181103648278165598455233575806767056487491161962561823119150240077956155372602385821971852915995976359692352724130314219911812009255333296023596755120308209408311167529557212425417185641142638631258676555599597072640680800723557024164419466999997236009663403318312766968878580825892474371011241141493808438781826492100542634039580565770178405241316785761976881649269249020896235036999285808171347550561382664667955723148676003394636745237272503679837095142162770841656594509148374141113642405848046661923859520442792823499642845354432754769087610831665468309956135139231111802083136063466883221705182998044653407976193039096554788646522148469551116861597883160667842972930972616931027556334542570968694969446734598252957854583303919223064939372375269024668596210942130159653421978443832275804089951360137530503809391642417711182135874012019116485307721280738087840323088320315290209794910877797077087461250971033027145182640938598763740745018740266762569217554189172643778351710366630357063479912897953880711337482232236616766980146807359384609819792368466660920549778461040412387331416306575304435066122342515948126495962642505525837271949094607297450200930953855860096922721798979936355388652337787442983250252850998264841760384100131176328425166085587310999460418916168305791478102015180595541697219446040699063636741966169799117636060417992129499891704555450841714464772967561541917638567473533111313580542795528842776215743235808933411161195220344075972110270867839754255245299195249925690376721107431491276200871939732951811149597778253130275115983578195511487025432485309037651902300784557400112738753059758019177868267591864022820777261962967354601709540243869910535870606512474772678485328681239758185830832822613496228185537550672941463594087581864689760297270600761132648558643346676468593071051010662033899600370676256007883184219017158151705353016025329171918153863961383431291358980345023933330747901717552428502723362131049139331588354445025725157759490550992835293408845437962125898615606971059495933141266047412490527704110250733319802854846234205765145219093502034719007008353072187797486413567498694373919022574401117939038671103490131494318950389601024490652704949656301430125333211448050932793613707168329343217599369819700871676591389294133243321088976719374255306196488757732363264767475384145997032839873947052190741541134510131250230581079487969510575742133704372103433167539379893642921748747411533682737015265188978694505275418679227621036130889221963664772271309299990941731119326595374327787014453609998956542509502328704398474878659269695340703360366773114147089634927788318873293503912949219400395264268360463577251963855766964298236237958781850835002871616465628209065855380864163100163008086034081838233116170331007354830194483404610997850718978519354998230831398246873927946183043770439223044121227601871790768839680745039997662386414973486325585764024234203860983557932387454229574107978726595077622279145987491783295891093676564419829223663895167128911392535956210350791385370224891616789462004542409732878826653157055537085951822047326286977544782262806077780176788714102115628884796844514687749232373741672040615190174386362127259834140224447537138361023445747774828797412142174894411685548243216989311813327031977908289446539745698575961518167600192422237767978012932095014102340662121007204856083628393001782374021489531436374130621141213410389244901110962161177008562004115587215340103957425876396369772617286313062340756373480122541328344582924563478597110197964850901378079683276513686795028923451827209562928860734253714984229086755021938088009326172741322801277483028885453331845999341830515198291861184914137653395727350065444061384576049537528110837611281197092662361742815499703634241381925808349906993947569180382088094125100715645929987543670689979084759624513389633059177610454719811115398823365144773686668330096977552648485323220562139928906044348115475765204180830834792696746099279940766113970025813419948357714541632343887385535306734730152078811114573501108787178833916525016459709835637047805461756912335333766036401581167281225618774370646521025220530524267874229898051719247254275055324274815664788624242593578409348389825624369432043593191097293473762688322761435293535552487672177822314814256594495040554288594935967421428720603450648282397842489642360496001777379048974995286332862743227846624113718368963995864661465176404042933416167559095287663615677298456003959020233774922476539756409379410524511470388409047056051557751639061893099619279347313412387221547333192332224888224394432850381659233470062344425840531482187542253059983554760493362381685886193972323131719927198177183384019598261359420289145824538521487230524367632529920399276313692910403424019218901952305245558274038836707495514181013459789170247589112747053750322489688073612654116438583605811703895435314555699860852986090982108215792386696248752600294835232353865890913428472172292693901383726038554676703243768693656137405292354353634351281908326797512431913181885628170952481381510903438930112011960634342683829630626488467294040768598449278368462891772854491422801954680750171652330311195412792584336570186697832549330505036901539086101670405262588263863683564683672908862317612611570906449193506544637298640982812697355797109287219035411002064557698550662953824819212112714557065749150709509941494498782572316207057833183658118164966728557517336818437747548190921234638019878318249213853522550828395318142343220574539175757659930357089296243982726942269814557531435985049985225356604908585077253418042621113479627772649550549652372273416115662981698134855716772216938996519155726677360265306088024943368300498283128627848478274548414994955242071178329124798286879465225592610736611601748516931048497060683114763470763186857371879445782386114247335999414847266389489192454051443076636614409682249060099785375408791980176159532064680366829623439487107829591439393498413239780244883917991408098020588538027407116906932216448905205448256049203963885499817542412396999487114959894192774258753496658580894706443204485899655973596393611016355820751796601986353642222418276304128900428274229642227838096048768495575188301336754971383189948862888041716507289023648031680779490681907995410607322137180179441767597520399191074360833914592112961225001538834623175083509806869423889492396376469123402552332233270821403915881102024254278667204847224281128346464615217228558194908295136328599898921205982212701312859157095515510267378056137769446323287719406114526647428785548170330373936984623092548157162344952799044496472488484575203807605929027606296618166850992945635222335878128101277629676617229142136732590273892359387283963217634987902864973145785972123498701546389959255936866705666622686596435928737339599167270214153499518184637232306355359687489172658232212660800723832149388339629694460018591561779142678775024322498478500536026171865324728721052612611891688318440749428194850520442810784397923215963790917090741160412794596817780841093838405687375576448445255209999114113402682064461413894698905379045850478743254015546300867789517916782386801247409262861951763116608094831304202795062555995780497295409367733298501573962901996351648084751926123681672182378923064408729742123399614346421253156500421245987468924937177591383988043831034681324010111935243736540800319242164542005757035104854717862393931376162679108946934947702784661956698046373623455016998521982632229023152269261378446808587606750149806896499167408661785121293600343439257304216496179254925501997159922829578387798909650419086576693640236831318985821432337826900340752497922552639949840230645045686410630245327024742566985440400890731686111995657235647092499152241783515334701062682322481626280217550844364283398169633783854452889248878800704559682892185700881106358911171097886865994729885717277986389191845826086470787355278847827528676150741441130528948052295182764894330693311642085929964921389797180158348391107002796937415167948785063948361976416782365753510171399036162704153474708092253929827810735628143513757422038397629092083008336659402296553151487792582100312921014405376580798785805380265424748796849468879368840633548539183848356087540899104947093700882081954389426641102836233363459946418599791385827969055845655478006426171504919505026078808181481214006484032717539144637819352399379086331549929214258223094091909117071839123891152968589177969551680020674596583106671715486849429169992988128123699203773078087911020312436566113782285516725098689043565926653862601431112691558384745964251570163351616372722696126812797609371692343806656710356849915152772288747591864801178540259192413884102630101769520268646498247915886763703949610300032717706728958866463465173804080967672280978784460752605274553642515608088939481333807988586653763706038047040285957663197603098171101445326010555713585231817622560130772885815125731479538865739864598823628389598832697133217125928989807445587193133936853268676181299226942890548935724188126877832235698555106636063567394906368288416661675185657008850275624088618243760785023799863258529999040095428939656770724916263037703684568703945638568471602767038982079880160615494006738261074764057680070906464307991562657612302058488789440875697393720493529146428462575359432213136867990715358011810460562861983963034280264049097031756117714175021414129011938555905822632588752239240780956627815413430688030862233738094888556642277402889519793005950216485694466431208384254523718087544573518368204176383123877981594294143088361264543733645958580902328080573558919893742442774949588724056528293974277844898208663679799328524896608935145646355595817581196052489939680770834779836431987867271228782260491691978994210538879321671633631976552980657884955223277913987629316320764097096393352731129080304794820520651236220282776746545650621445198069985874243636386591003631419272344325822717669993266614304260736538494783640288584654522221831925080254956957125626084274723312225543201719541091531174648100417792545979627812518557237893017363843542053167616721076309355877788307897494027418035577822251165101141084415498524087683681561084671405026732693950275266908829454282357796894715598743977967926182377967182003227548669571064883708962470665353858874968019670800168569214132107611110333442872566015935469522565965775863681683787600705952719532302968780703766369196475738559713124573551579752172344713217774922875275068121108612283755253042414349930428905879708300249880695890223839274372463934969735340548444536278463131371860631823228832142482229743372960450283639190510450997003328589520167594893812976677370994072079841845325496762743918309279223236413461615018184540844544155216572739500255055986641207449302513922394073273241310650106784190800487283033094539929442797030973526703699894165113558885159107647434939511515283073327772433414800791620666961956847791918919580214640557322973669157927640158373065039843268964528605623077636388447031833860545319817880033545088312478779170603123723376584784409888023920270596199841534014674829328516460300743777520065140184568405463588523932371329261651592287521422498768038337607270993214960905117336586809072848555603470993902545963620768807031967681708911388000693563515263003633233786210636348040352528404105289849721221853011173310682749653499160743305104978534401742532387879353320354411928413655929630008001413193145794047988412656886102682295785168411701816998558530701139223540341100348425748665901171522888434841763413644024519699262414286390267391501886443005231212560880917498020186509445221675941541247583075930893132467008035073744342573182051150725649244495066542835366152469730157946390197758565257592775867128366656452230508398098069173193498077195932645853823531007321482973968888605186593297361320716289968950360252841067199865653536748943749051799743651427380304808313973116296534204380236739097688723513545486239147765927954677380608269980199410367594490412773107393561030424918383089204038968908421805993574374799567491580991293223019417342487384014151628218218722713162605075039090425838601173079946647006908860615852830027795822555715571411314123725335505256530172667609019977965220889893891511379010982994632211060423547885655127886640891084784631384110468290939278716700163527257532511052668317083230938315524093034754219094061736405004895535718770225669789224182127314691291690899178530446426227064636692273962920190957612416841094351127856715040811188427739908096513601962261969808791255867764898398102301516372904646042458931167135809356348326969902252698178643044068670622552686456360525457106730413036213400799999092353410659780428309954345016827187044038811219992199311612161181794055772973463084577667945264208775651146525785736082110027467286777869303887196379229400009662524258243983192771680154489012005453348296496956621033789807114083274522623041512236084955213794050473558649103237960015187731506480194032259002741066987429714083109476547281886241884877770775615515750072654178962730797758334029646736137339287426696163200760348978545555721932813528922069429201574930387588244935598779326443174538169401850046660389929083044960331784959178921601030950774592707722293804855413182315476356422344759263629625077409422557709099660475926996245160501904014120901642815765637767906710206144039392651369488001491363314928382649460995789568075531080216834912047129832086003068279230969360649545080234775211607275681203134937361114170217452372404221065286255751646653774735711916415351602604322190995453478172442004203877276951126108435687787047411792367025899251715714734598473510213783719306869981113749827088676667648528356923682471091487774518300711632670430546915368845285659756463082062731310065956991595014677646043257665601476873015873814661177889063537049499376473536723486267860313230348035435899066260831954381942813617295249790320087617181165499030007077872936474261631392519119317537168477891080192871721630797623940462966508499902293640813939958833749049205214648725472855238475023594530738600965885018856233535210809217233218695285039894191499527658429420861047109287352742667553727246881994479652482351484270547576272228946514303017432858196728084981633274269641053320273942635717785060776462667981242703410444799777021752538605631215041989771781736346516890110844572758603329153603891613058198407616548530549574122994332184980331249597848179620565682145794804707995759366858396690503617929608960690749018977250503990355761152538944180327264053213177985557245886265414705742554039805163068514317222670560648316453053708036571722351093098757471147547440384085559224851312441912276360207244337330099391663377919876090186586672889513895321725990957251565076787348766391484918538880640534727325754883589605339193671380795243669956100698413981373560973916735586181067424940631025777110264099925921113268087393967273341098803023878915841101361453916552907049662955406535429619230993499676248116446222316220918572155529890556329476487270693822473197065015523126550040485637461988146409978048105234069465299315116287249655809405394870939810547989761622190419131576613692365890702718349200375000858680948940586859319180231490428130046856277432363490933464224744944288557609683892601271244307414482094972890906936597144331364024079884122551283414177455280941716525098257296547939429337812203533840146085940714167099150944437446266926176338753528566224307072516909775379492226406471930280170477536940837602901314644989208012849270058239559427389328272646165301063020291377580029832546971497663884119414820126036706733904374274407053155619903024311667284007562978121444820860528274159895297414458262935886914591202710047871000309369319748868396193486301297991772082414356977991097443848270834407038121736682018963168733708475883439745826845897004189145790135520592677850771187146432909984836304703964825154757322312425635654635251040126597138390735475606019637794544987281873034594014809810381709111313298268531089518116374450462840067271284349914386378135000679823246856584993530277178506020960104407769419430417818317445005495073261036143312209970279713840640165525782528389948779677917846636460889912983105296906891781947739509537650959512257747018509757213333674025924813720154197490772959340216709439418586578918198001293518663134793828218676800823341615982077018766296625059188220988456007662624405933993580671629868402997864561394962189090336272936585876989993144711246740345132130340373987405628637308813550451590615135593630135029444709499692373941211360339181458312762731525855135883526649603335272758526161504054802197121314784841322373416971964522308762199989907441814114586477867545945675061256067413795525365243710858804456973606064792609738303732796783729281503741257629500089141744228304587096952577736272491899800713803609808591144039819675908578478776106170271327321277900009146009533203585443824529874873255754799954322940554705254273191719640400445704481840527520531680017924512808679894663495422141890647309044571808540668591445025141593438325567258718268013245406577361575812314224984835531116790799348058126725967525179287253796466580301554627858423961161831401211542016935703971100312746032559091079390654159169963562769047532647925862169385934741008336463273651605646040668788057945166443772310623647084854374365032740577516716061637468499775861590888390574243758441023484489347493940683496557250982199548911557586324735733244011469397696144914914189206179392922254420014286394718433078266673025295083002930656086216128810592157826722780407705243588236087240128068010551478411320974192757712017966243025500366338921650043136843533871546715940887361142194923263379982273430796117507235659724339397636896381388129329604216794320923694389386675317264126655214131760127107261187892233829902069314433613730444383641226739547318503034029604517795790809198965022952729436412935563623991416083859406870508969353783389660448696111556171182768404494760502613210845352658462546107486997646559436716193134769484647285726811057882225951741374182063143358004358060037763742308625746046428653979678465070553213872021534808265383656981212029287626343923344535426060185568281279165774235392827818459420852336271643078073398896358973890804104273185543359538501149513805497932502710304871668884667098737801929268328082966079952276422358824440332578797592856216017736628661307590847388350513223827441020356212644244053983851519097308549270353822411655065411634770189406974455872164587108346474835718024048003004326245498407000565725713275969980764084570015404739206787725980778798466299425401109303369275028105675185980690098755918405432164949807713042372911929640045844487383427765200418950125071400541726375087437270587373939595969924802164986809513712881308979175667738721722092168195812286177826547918035683684058622632355702612294136241455487039654715895575683685923163624901301638786261734157235375508939829167862500877398956238921419672178224708962374885805349140628593918382876213841805206146163419733993280162157600222040441720590624756994327301351522923781653811626234494009111058261058758595951082727592451558488137702744196731885701843414703596488304722987073117949154536692471284226240285606817953441948576431704609987938325450010884652705450285247234808729613282918318701347516094331630633053938535141770234570702554868399129468194884835463300862225126610522214859718870724420072852077220283233939678447484690152005448978370897677595020594373789907196789259340857379481418659674769787266254888235052301717159897239283743355970175282879028027310535258590067750326542902778295522134215807813865602481756920357413630593850440702127797487548228465515141434053301768395025131914659552084023716368860382492424189266033947536978615882948691007460133813151159706980423181318651956358841353301935441175537715759373876760035913451717942834929324744010834193864756264161906436846734582439300022138141115181295668896817917330323066607953114987445584652636177429226278503570820932092549614230973097472709242839174527495365017198161681406291992663490240397573548774092403061370317491129161133408065980900261129515270822442639809021710148193448717778044809726458762938155440078162389305749738576057855935535765342609744396271186306821659583614369304399687485215517077626086842363174084416759434569170418611617309742010683217271162188482112921632798704688857725403574538099938732291840945592027751312844593905301944305396300009150331904439243614997260957419059498405074037407130068225586807364680641974348584372497206155787985409788418737222750444135752991675044195231693358677776335546133507062534274770211366247539547977178439953311084067534147827546652800753410139524844261266774623959112047024162995847312885476280777049237563357422848199933533222521638504953022504623256138064285920980729386589787893761332355281468340256795706806518228500242545819130386802812708815424211652169934780174205408158685860791367999845312066529871997225558935619235484192476663270627763297905897543636654452550519527360216962853006313247744863961047402510178463146847794976991734235489217963376697335506266415419238281782736357180399164005730083040223700509457325382310203179081767312526681790339848322068505540303054308040191654212588277962994213062734661277139139322714060700147616153163406451379463689309707699230615521084193687644780308573650857607673473723144825970951705614342891013571904256859207282545735851394044346328685987220566372165707178005963198985731003126398793728581416772892975624424704239150467515872565637817471637694866446364158457011083666885001480213346917377852210085556589785605120562522473627295871822500806751071547076991677293846393642176834564731911118811148665857456964707819772609591898910057976392570013147412258237573809959353191490871114430123040761560841448467324061031046200601824686948405854822397308828204395743442727535831964010422050683417577605796835434078162861492015874317717158267098689631678074965710693552337269068268083636031278955256013239194602260339200985580396520122084652419087075210454731027474237450353985954409811048320101753246489523888601208849110023317846491279501500430309006373872693390614304345929852137608986231330667309751286715443658822411396899442137246111111410439082336073155945637823841575956855132655922695922630393135693647893473578101466345206530383068751587906000492405282921498700745110216224265036281366841937800496506121682202511787215238489907220539560889423590608190653369990495064113389518403623980269688035337843059304840839239167368951084183799148262058940103500042413491456066390933901303048218562334989185888753154408069191908035150950371851594818892258437185895455031637099948027789751503282261232329567628154592049064471626791272980276250432504376423937658484365350349316010969022994897452424067825673533318538870700831574271975319883551937925794442785162738873342927086828115156245553763187544023803571356456846565641335472102363377371669854288877724120213035154881150590417947484927159847760622441039503299640038253837730968515229740842346696340607659850237729241276486014530017684569781872561158897015948629109401718104867158032119122902287059192275274774686801965612547700788407899588168523193768386470337459202993517361396421660379161594168681765919837376763188331527835850694901201874454858113916503067072976991469915714936223251848677565559854089616746330362475713873128981172215075092482201107310545617051134526631405257131811185758448544174588383412120302229239826799409645534693781827901901833649412183531876221363619250825736124452130798654137594256578001732733125391766747446383502062236052572864714345690393288865677472650025220562684279837256682655261021606226943113440024931307806537095199180876620682034534223260619135296452670707785505740945428309300736097151209078818840301196957572099334243250324073059095191145644115925586953405782861248472578561374723718916561349096011369331480094631293320190679156834667786293241259855283201671842265348231929130069408555391328130097289437709178037259147807312073251775240373238808084547281271203370384031470645394281030588184909539263226084335632528711659838740229077321059269753595346121120255516722281432697130467624720328713331147262172915353016660232956288151567409003728944930689177454443233892241216201675564486194229052489129154402825119707860799474556726445411083412474209143947177944384736849765237867441008541711815773176330760386182666489629881482134870587002131014871659492926391314968769606120789985845479604463563025268549458832739720692333057150664753218006444002831624336625224404357858028804143896435986609885416441868245159115279274798250222515323186641648680397878928771244492297774010038757609796068688456620115098740284953569418097928306685935262605713211283214650816852169243801499462731846330294539676019340265862574297435510381424648676058017001086368926573503907702802757461342775119504856116798173629073829630074443232815642601604573123629921049680703062654966012294016755215325079325683016764309301326204336037279659148145281680712950963223172407843698864005142458609970242440482650323004936757398474032940662156067065472653212174152698173981060257696216644643831294487979463143091469145657824856754658593739945711859026005930555576048679721703992999860422873485427332776812056928628078659017806680401672298825675151108562789162064068790952498964569455083546328888393395038310412411302376591029297030081773088237297522858098259685480226469702696444904088108185868400203396873333253457890863935571086515540336930719541119514454973359043561629866306570948399307834736359155437041139509564566361520297263521737162900599803879291345940176396616781872507593778898323219129282183857524134205463736051095176505953461328319341122281852407763344145894096875980134190755265044297797623494955997048966012619557928060674365641227721035401638768775101428278454911340541264191337468747605537728421960049525233479200239335629663347228372607339855343540769946815386292963850187231816791977226280579558514020191959922902219524715075460099333355709757941688362317899686521279750545570778276833449588144052062088459623910145839143515325293104937643605699282986436348635579023233672695951462167263133518698970065754714429482073390672625860476346337768331678096875981321301014461915225084494638779649553790734933839433999169445496151462775114369449685023719061180736817242226522776886122680393820215507648938872047113410250622356383750626564823544907764034785113656450482116304512309497706739475950684998971270595840570694583487571650282945292429094142441165735675102822616299450564757261449598075153567679416343991598021682837159093988057274283293875981619621860642568283360535631116296279657554794943322658607186058733674751151457543172134483916251972988288871227011785605557273843478382942446466048242521573702717786685295188570674981144706206873313941592926052869328978618428890127551322418166230548222259341584201173393358562702999183944683534426423810988799125599058590418213033683371504139789938397173334750445496132188459368236002674881743941635937812535165500102269706394654512028519179343263934513778774188760458688104915544345496491366799599034650746286781412523773221175936902096610877543775314059793333437458730860331373393904868508671554949545128428642196198199398971401790586812576055196973557792673210925475908028066735810033645523176595436073573976628905564415515352756242892673574146514279165173886918709820851732106677892265329753840876745772883702646751747752395048306883282065289620817774930789124389690478386587561220133344094664733481634347133701971466519126396393474525159331693572636797197424651541101514498042153714847445345190995320031116019288012380175984822609060851136585633056701614185309373668993516241867718791326472528357897037812238138668181506027950416836930413843136120219722323643237977150400331562195565116918168077769458532115622342046137057538103481151041183141292869369787511121674495813077104534676224906009663518894040047685817861630546062480626325687239513057921906897904888727712730653429612196434890803012961576626142262285315410807043310923228814515192489061406901580635925998526207272165590007065504245333030540201303477488095705985007422256423492029243088732927740631146972934141407753422686170075704590506605073133641337373275711396255449708601584050389523520389159506001872190868990410023219346210746259699463612433244365789522125183739079683829532041817189691947347187161601074368039609656681695562239224168828775168161255906636546688156199564054284309031103026752284661478630010639024798762556326387955494755509902530209571771316584109752975528908446170826813716452181641392148613934508124014273752030721485346778966468250361061595875043713999771832714997712498487601223660353664705196213225996591095246318530483990653075146272438630922416741719800112063435723502608400674667149701142565871690013712500344946660924896697129232163735139285774433138503022812667942830857410764186192837644089787254607146657332509814681189617631699682580734905794259599517302796576475254296769273760463030061032690002527440024406170839810456465819512929657111105155940243023986751354277200514193463444399900006522669631029415159413640902702352738564342182301098111447623903540961248428937607139755229865198380691828234539327811145191809573749465602915427458883591969823933540162213664816335398100457914304483148862211422724190582431593522475353540015443140857920733313676509591602540398912576559271727170476790558154689271696784011637800367493293220817504897219513169101711542649586224910603633506770591449176196611770419850511435418043393032493668466729010046163900724592589630503206778409857780284252533270070603958355564453699084782367705053566664596806126562947854643972949085230354519453140299821450645973322051235567136158380898502564442691484840434371419374576307283907088495629567359567731214115952525885072823109665933559439584348060070948643173235831765280263674127794934529113579748203613119520001643202278075574350623436879452138337305740045381404781894345794783069493748641712776012887299968376093586822156890870990112768221949778836405808260684220895515052612522553553620758893257245486583492761805938238376476702641393742817854629861635821600509408109505851396877241952392311567876350164539285317532565683648287276925060935201203476339685393458574279257841859647056064571512573264154176285367196119587319379270711641501313387595751488191382701720853076464313177752800667967845945980553094147303086638841662377843755285346847294524785262772287759639617835707491986756104492421851260792730427040789647977095981244544858300961079876859904472139899042987803893154355966738798749445411647208302342322079002863229645091187544939330809514769839665588040826610739759248418200287385846811575926710452105848940766408826956255488350833839166200092240072590772122527088784675916595957293185721459475159343235476228923305488841390752110331607501250001476907963810649836028431508944036904712364220515727321404364821452151002203506164577703977334725512040070305191190196454897961742754590864613993797039711585971783676797884714338138682089713390651103457647096863409517977785649742056253989170865212638292701446822469899088619236525062350237684151876589420542244095140637569796428108113564117340959041801898715458435983529357864151253067954688682681723973285071483326368743119396871379043874058460516087719476823684847081514859307100311441000659177649054896181197316284772136526785808436354421152779941683237927136476078010204611297045551105280809777578113283670263226200084988365390565176136091815980398025730160520632457550540568729737988211756447037928483319092636293669467018577610395435252046711671474023079573763209701470990773300459539328945057937898956813869460958457859734572627488574926352982154868290152355644560076792402045818881553633472236905800177451301459435832633226003058832261590420385997369065256851379262117046863631270691078991163527641795537449887808937032905203419807603545628065184123116158246760232956279888280224157854364622103102424975046917534921939413381856626003721988838058080645424293789432979200080820816574581344196924949016610532024107499863608375870575975855379307331741654145522043042851544435015529964933894036589912267400963699296992831779686185202690979012515772000300976623066446140148556647357406513241948385344473554036406530969810000966889805816571290144183924474351011543820153968029845473794458051232996431459949135932900888905725662493894257134577590524124603156708783194128457738927910920114421150267814164006920839430656656831311644517621112435930915356208923666577929225508389459758753531874227485136443516116290024373764580577739942327853051751982837072634062868467866988334361227475631978407703341475733936748412551988282615078961986493029120414622355036861263936484771245292722363570118869049214810871771399592015369015021970571670846715791035390218551441591060778464002523418354932095736097701469390950872621238210487850244098792477319846779340378258826160895774836917080831595857220099217979931376352134746858979834181428329680261492698033227269473092208547780735166170067436974220978259956925845854600997166586604821384517713577741519675271518770920432146849752475485793475935182128564184283365681821025016431664283723793207238077157412461966621774117372618362338217769296525293462553825244235760328082478161706222532904414136708685894662733048797101827998918190435929781993984045153505589530910251733554972794179852939211718873946708355913725666371462525824896438893722681396672012642287161141086627976147390492946728710555512979759102134448292377761085825133829600895051632123693312786882501862540622924452931767277500375942006474447104171130147782175526418373701163730903422907536615676377629521420048104477252760115597523720010794801530290231780492888063040172089141831445249657179837730448236322817931649405664530491874369047187183056159569561903204983052013341401992462469544746759239325664625231766328104029029836744078711780726847794306748739216887017660285996898831580705887417626417192172078430274228719204913277191194665624956107627074337515926211442527011966875713108414628491131843459620271214495263549643497169602645856919000098031491938727310341277767185311785164299136501666088957663326956052044851292272932808667803326509880958451006762644004008726105049292029166895497303341572352929220377329455257693495524477413723249187331113849322097077123591267492679371898984769653488964823428043233480306022031516372212862450750712986162620653619682331632846891224616495470597351164638377474967415667022831391552726833046356496480835996706890989759176646368998119118131506085346988779767625170284103429385478242344755206254593427862399710990894632647080639055445433976922386236617001710529954455897464191080246946928078973368827242550294894422373828480429032866246396584107502650243117575000165903535843985841399724911766014930638699245935274898154968107247547580666206626028429959977184862780482650054236231875933245725279927322618685310331076812003076408816545619360483205346496870326187326312964154071934914724516393020518833592411590194232693322330795718474056142112825957000368153306052866423363793629679424421804718614287065160756360407285071413206700237433311774128926829568557707105295237257722090033798330954621183410750178291503500992308881375446496414509541646015594832628998425535552135957621665656718320258320337121302958841059690212314505540810191138240270012646515231187559762864397406208713613917354422133621518578323707798247748834082554073103275354503346848259202970357069256695208136689589252853343875177776547431104966295967332784980611375355486427836204923147301156697853894823877430826659662832672241688232698297006735961041595928783231140179981126179520627736318679402222244363529378857163755664589664516572198442222539657261797290337311613885150694419293982626365697721922720519605310709370366356728670126764119648587743113328056006549377469014094125097005044309963577911641611437279207161174581094859306893672850536808692348639624284024328093534917297701154943065153502018004403799515520735045504037573428174201397911582862711027301788087730373388077115461929950457351187475298635197603863831264817608255896808563901143916041756282133240774812698046722531330476047301734926598088659028427118352284148114818899388670072777807638291117065389888685011004968571695466774326525313767537764913344303703856963398383858101987552847020076883071989681314458907152157793911704071498858167856290245615113192737825486049697182194061015791291869931612478389621657259633807026820391532913228243778870858728898398029350768232898275016595012380060273292207812277564070763351184972617219335051201508441971652100494565758676442299833652227599088057748755861783645059927309424653638328295139559669188612404059720741065963274538100132141351785500428169470673700522532361155934785108158045421420409765803123434662032555712805750269629311075409669269499199195442838974629734158714765178484160799504673677572034015440385164626328130469328451284242128198354750475695981697519228776662364408333943726457018835544814382469081751396482566459717456521107061308998086542024144330718808201959594465340176562679600268720931902482936477326086580662686719590074395869820871702660009272548622692598549765858843860378403049465958168591107413441299219901058583262863058333567599171492322164215024489435803424755305580279603012745831188520892067643862257389064745601019773782563631692017313836820488021906153189412388451276430433684632092012012980820145124157728719278011989593832368784462699202229400956964278601313117098560801305547566971078233029049257051728404271009918078078828994164084572873144166359295172190847538254344538845432571669431841569857769122986171054476758662383153491315178233449246219498147929599803918332438500447295214627936552476637328803054771149264347221567050970482176209726204111012701651099453454853413944844743345194682466094629351704001251878680417810017239455760638452154579902117632304296144400054085692050541510891745746839087396419769422295430001349993152067496741365664565486781789303228370047481945057431722704941394414929050306036177443656257717463100762713694020260483272797272153330475318424815438365870845698798574451292558483278284466584313258929903675426303024582286827163008625948158958291552515582964371419854492550246218442698823290171572132020961785940440866987957110310461507865599901569591117172748975686538434536793607977006413795088108326102139243328128837260734499525392649883030718153727884114377296708576291066696375807415052590992412529384320913617418604963983714832889407928051542014105431784027556534806285250421109548168352933119838383490041991792209754287022719471293832717784776155079560868833032925775847130554508207737500525006036524498019820644006297556838100096355768901295244115223221903122584962068014508589389938694378935029558019368409428129529021839759482277192231033936998815003123121901271410387915912947972033860878906452520776099975411285436437948955408719553657616189027964430425604142590486462088638631029237122612003955754461681490876631962204277922610499807002277349319473222349819647237267380724665114916634462484952514141934539757968257635921040371366852457296976650087034497705532438201009075132928647642104575524694507646875798987452767186693669557479387310387856227169952669827975474259495379116107721534714124238634643240293561507152323862965407102185503860732650692779605410903934388611282593707406401401641402012946374981551899516747343771940493084145743367891628846327193518329523495896583832461518466722587935818215590104824314605483237383961130908881297919578581934482150617737104959448055717879053409100118068740514340102707258522535492629137367377555281460459828278600784523052350110697607853634578400393976945337686114562667158562030396320294119646561308629782157011180685889019959504153358090671086923504703380483400990261640255733624323113507219778886872747138866074424956460046613238615700438574281983672882433756221664419074916170529869017183103187776974733812673801917630918998265018539593983257888317784437446620191901315413893011930021684432431107401764391181625010397400564926636011064628293163570021019878571002734876826692845904089664282012827740636514952050571559035079936105027239945729805130909213956871851007270473459133623532770368463482419292741647121339465128609518156067507505459983837626645354186168936552796394506578153502609640258717301502756429013983951161129973921685573787955325470246665914574772831850440382608891133769568905304508524817163515000487743475352695295067959843860319812488022609110000444326231396611073335768086727278117394625865270202422621609780131475977778638193341311334053566081978454244962187853466508167019413526640382419156917174902232069877778601863167708816527401357317244390576105273364260417566761833657969344598524344005782221314937736216227805894712230428058524349638833703224770777972204853231522554296318128660604464199150699054072832323073965041867979036984369826679016658931646366538445219948829297983711982297021243515025439095653436532451245235011089255655407969683145730192279012552955765301214487551518554094300625440840097984563548134867271126901466699937180549787584796640171953816948278509450176883551324061117439744711964421594597457399655446702124425403887512908528676337987126543879918424499181613293602960687887220234450830028902866817893483970745552748427658315979157920575238443787469262591891619924995659108415445645123408672268100950114588662390173551527867815479849400713526287328799343389334833832124302301043474267392624476943655404669092278408309672340647091816004924557294773778311023714316895504816053501142701285843866887979504152744567964590609828104370702743032347452504153128993909277387066952402848246144052480511919673142462169849806291653252475584559418503633311653266436335730274010090517290488977633518729245708353168434937157151396251654744082209621083934200832865646221414378214869650446344184075557299243651279192818894965027325155018376851703099004499479043995496583741780630006672216766163106655456112755073910021414551537796062360059010841658114892410198255244607702899571943321592409208643393719650713290036399462599876743530436711292743142689554792123389689411794464808245068012874121264975490086938404112794486991492280697577385209427125319514204549686305639727317880717642788970739349733484493802452990153786722000249202149047488094462144020658310897474472748476489560540225633833618244551678152329241132661558895898108899247594764487732590541619343258537597369646137906076606497911311863299246875746850594165351041553919045759867737694277531654432513599465453946154379829380655804148760074557089347391945827598735035823706536165447650308648155277416398181656576603311399132915604025023074109575193713234613586697202374777998575975644492694094677744587489667713287094774954222404639351910045788998915885194476183707376265728818021016567549490048094012682500391762492356110494840615294444835520601364691206120318369600366468076801104347549645639956195166916857786392247138215015515702051226168265539103836295937014436695054529585973740142165864332781773978157407082522893737631089413994709864870505957976186639268009416080207435005879148848757728154976093655672574227956150027941624012526838642807835342369790085998888820033945089708084757813345836931627123715313224187990404894613489798212099408118581857014464361368891802093385654693250159517177536853975856632453235232010057977573936512771519617273124655293314841178712660819340822018729672601184842739454391021559171298141946069804597360022473757957376279286543873085502852707723970864392125466258641648295359046541226263626197623082221640475630985929270192357415298320618209716527889556427321834188573867220948648187148373186258728038951827141861727807667159964268343424928655813807585990583577926742706826330519267975844508347791143737326963486479316644112263971415530239456482637847345531869477741000056214801428314223294980251402228578631421461877971878218412374468555134665046063215985371902986050376240236404519630497442695839385445504255393175938313897029002821029205588178083766508179601075988522651852169673514593565504783743797255517854283642737029296544978452930540177919244040012252843742793644573077124878793112727322977821733751012225831352386451746260170876245984425534372424352982216004194612192052109901885328603300424422510724687992807361809635963640165219333964120098949066791852084301790619794231994056445284013405265496104271611353327869101029790121713033288329359073556935998756444549267305335166692863343894906868444452759224657775673928815091805007140773911026868454893070353803364924938002354008844430897056280359660618441183523900179398330583812841917238567312839153256847811089411218290226186279024847160509979863273385530194707729491315414063016071682716064711149661556453684096493438988600060050528036756123480563703752090387625284062292794471760218960036549265806132464817910205619881516165878554835435034185786782092903207718853252287989545215193087113526463920337161918191435240302458980719656330702773126768211204755386692464837210331338407491963634213307629676634555677578665788080450804910433275138247932613104273398462915443299855194169280588973314987543595478887241941363099420090047309732312292927333272463224393668198802778690869272467446478771253973034422169741482858909676863698210103867148759385661864644872988991837908256112911862644406984095412648223966032368061014513715493408014869138012633133269845342475416874963949576838369216808411255646319328614500887147367414162594715890538239265373080680857203722736298681710047993281137570421155889296887085415571882767200827430882818410817166133925067327527943597647799768302530010960043966511115087151663486246541466598994813100273520587757792763749665677966236865020288783633125442223858131798180261194138877424529105974383377569944574469139674980059063315350040578610144554883002301921151123515859353031578740964997594336507195129320989929551149652016532561294906278463946852587598458175053405629288987318000391946893810445661159527229582464500255101354922321756818236457374408920188459114933405743423045262946059760354639989111936630541645197643066556411435327930986239451767828619041385324248237713250827733645868651523106198668659018612538949905322561905888859835423381811660997798948876479958350774692517331504040043150263234478308681825458702671355284998187666671889122963776938365742779635847064771393491412415825949132999995925157220706657366589230318302844449137173082806096830224499761392240771052991670740890320869268645676243944019191385894716578815240519260257197996210632020642475594422130533981113058053909058743472539505712400945295551775799219256026672456544312394822830288635682318143863278979404156078700408038282051964627828475292747898987521635735015599493554649601231944741287653424240723576468932214057521409684347783404362106988252003557222229582349985725906938975837408130663824463619503622627177953187885076251403379762330150464640892612950231032151293007271348870824482312958314619601114809298333053917791487499965924999417659150443384651786742839917073519051371771312314269329701483385955637255139892945930571756625650926185496050494261407775131668658358711764033820324030638153779958610071765007401472823853977721903302194646941382627925030612768110744237874779082749886070545601819243832903072933192825354955132179703324026827894190469622111028539756958800565242243975447879177961149350877758340443919811016501661695290351738973650134080421689938079561743818064460216912975157304621970487317546632791267122441192817377072534283797873533642442318719474566881951313132095680419740946431067904089762414311356474368558923251859206768192770523937669079160664732570987209557911888134310013199444596876964489424232624215406128180282943080058235655307140887373784819682321569387446360141518876092996832653943189611385469972076464383364906346714838695512653157237550110171131154092962424366104282209690697327997823751979546555497284641701869907604138783504798289590348921369740807335205222126184482467416085135044776809953169530073627296043896881906014062626096147537602565762433210972252141680547634282481440673968496750647367849371973615822699910335683203255111594973284375850190742144117916186601234424986814997920202402045856262316728006114102200816948399214119480367506881549021754063505892250257700820289578135124766981824789580383853305829825931101800704613001250095461837673220666707476337054985482001827712417135942299411518084008604656452339343821591299157887222270645213861650730750271281323613428261207749055562349310080819227842254827285005556800563753232791118754075504847975352215921663175079710379931627387318680628295412223167038911639331413408053075390819500367245203956173675819843353024645367904005991759982405445839441503544947160893901748089723707390133251996384838206859066656109320020373578836931045425817323809227906181608939225971593511485498146257367094203589848502324732845015707013935462280002229838236684780976352649187179291615901115846540152174891378631091177895431970934947659212525263188047186976093984725571384200816346719128027996727604506265695132273158088313064294912920064818113246923559684261270834935788646127515415557767041618255464950210284893371325646378403260366631193243236235613914115032549062215925349531718818597838268496781438811456473234185557342656659946297104004173627824457381371626241158644157408936229047219819395870152786080368860945743053470569453656115903195592899425068092906741293609642549609891321599720783004963346167609623337229460366555745467696826573338774983555641352781848246512675943684196123850940934519307604859015671862737154415325700309407243591739415732741037098122175264874892389816219559686778744780655986854262381186818965025950743741874797590791662279715403608554597207650598157320222894308340616968479355686470255328142305758667555307558072201435205671398783592747485387644759900878332346671836835660172469533371931056265487322327675115538231781086835662294210223375797158961101822358894705149957560283208522990967032581593234764993990426456649918237444670535164968677112276202013129326493920671075363989579754161129034370084014936029317780524985994651767189247665295768992845129085181067661557705809636589377003962951849278785193759600405735667056282903797556581903238860530615277226148854887252450445093555769451233440590284182769821648194619993899304606827363399121827928942110388276751833361876463257085844976919530283850376951480817989288978746125580983489869287261763461509339688238037131539958637616329716229202306790455532056168947924394610772428197739713683982750908156690284447910630541414117111323767529266791031591390527409585728997790630623965116642880474711622032724119273613770611962141014632249729801093300859367141281022085212471309243897786832664999483803898880264661292800753165164794589328435583189089945305619148663005185569788676920152439469704063719758807880970112876268047450362159227677573789791614638821197257215469676755224390056706548287020841181387688482556367199827123936024141420073628529576045758228528842729969542360171323458882941695175614956923351464543562486772555458002901004807656878954747457719996529046323762218339110832168650740103169816048367287425930930069730748222183007346247995281324805090038916095640876723595704442597864835668587916451054129965801805183014256105764211894136155970669064746584029015263792706866373458078515618247632261251245576128282278471081789474431538394758492114937228567514648093037357298372591767997110125970125602909341339873159706375502509844971630628411663976998725028314374033982143715610657261695504294340568184322573389462595395159108357587114446847407089091233474226465971174297847313666420697308435376589183586564527477881601282418660277839896281594087359909340533290302476527121384040966076636727316129811375398235395958066895979108056037229644987800475696918598581137281895386993166548505720753790296146235534787751343888055799830838374969565546241451862428697730059093219748649455206991219928211820192710492870303244767709657721641527968242718921339396137480247473865769185404249124058492615256255574746667787560214456213787596207819352827278164710749624513954817450443696819142661810032206894321335239071397148072547107404988975432791884617409473115951786878855227528887809572429127814530991079805840107169288692780247277141645103486552807742211353266294006986217474505781667496476263701613954735982412732856328135982964145946395234916133818015777819395922710412462131983674157757164011975805336889191859188027512347829714564856311922553630333950834637192518418492683392097584047654711148512558187297052246056250173728585304225638304692205208099334053803418201253391380464361848498142581019222504092040711692042562921476823119346968289061482967642414861939969323960621411044669298152129524571566471108933431332399503600413786988519134684848831166498966148980855351101490759193068743650483140146240922906309837785992882659616634124843144958204954697651989934607048566620606937015645367359893114974890066349630890613090469354126701143637101179341919472947263978286110089645428609353158395639126082163656918089122342610463342803644343407495183381269678807051314957709083375868613805566991743336531729478675494496822565530428224055816693201382551666417132216608636985418255754836009400528935527885926373584119274137476931480581898465870670425733840756523986710447280484364276072172934613399889604073824297329218960465703631341131111645908491222808493154452463732706730550415254394152072484204685405585715864457700548723136353015423126935725506799104844575180322735851101163044830245123345178260084861593338481437477985874512646370505158987764157663012163616054318961382451633376261409216091991239848867438390387979080360421877348211116402591179995235303313660015348790683310411393749009275604605905131174575634325423062770061484171807766782044002420265732202020174985965742891395273568633834088027348330229115233992818337268546892203015084022408529023289533736989174280483024284501005690614758646780535838712083598563938750243584323528687319636000032558705974195092044151048429989698322854705683914024655894801176230434952245055625192090037561486189166164132298143695439821544422827627860750513534382867730245480662510422891668325902819581784138159165389978602175593254859044078572894862822813250667733809642798870393382195351493881062998507148426694943024693768343815205005388388977473650010585293118419017360826318232418661040775911245265688315743810492040576514049739709619030911917130012514653904589409311376856694755386156339882738607494533434515774725519746198571023012120144891370345014956756371297081128718096251250363160310640464537863294606418827791106853556744686957247393888495396197825340688860763052807733391918221908606690892207384463790719164521070989313785869220772814462328919064148810247020860358975248709551105343133034874978543117501303007272025470262880730321060815904123851543064264095218917517071989001129946259978892884609892678908009475014151225935098335201015115412451167461763700213479562896249310056393513403160576659023180703348733423512020365095894598663211004716155909792869290450061826251784605112242421938046475953806315814457887729766135984662368235155413011105275418944941865155811259944976552028470078115601713016397894585964450810973657719043278234816038339131019775154469959258996532374045563543421809287070547960652916905346321974261867564997454420673232477477441758216019886772510749668687329858859460474739581130678456477790082795947196433857821913350179903800903114906046854034468190940855135442872708046767049121066857746569030390968756174732865680372172870237368364435930360268934967817578832413254355566236420926764136204827535115891525484623555841573593926678717212060820598027920300838392363432778226392922263491844954170840783415049508297411250886799651336916417619264374730354279903768658757658009997856605239918975219937438463926132202630434554637056141310344208342855541532463242403872997301584929425961914996264606181253809228108053276338590137138833535084112850441805415368482738030119114363904205684175183066151573192652859055915794514071796117352989834738101471709267664453337937622577256700349339065859783058771579760386260510484604707193400773667862619011403566636833842529561202271675261602018531675870387786400443617005247320806089114164867955427017064332815385203006056739053761877928805409828895709359321272141366909885175044408288506658080254540406636480418778688597310310510804653278838444309362892009581783461064108841419817561857708972434052067352307319671319311791137066811410219483115975101669812820419579052062340469069386683565273531378653923778198823426356931732737261458400519208989493674239619458965871474088581555841692860824859712925164593297826680353941682558438639186638352859303148615674276015224836472522952388424837327323275355745253714605172980494170531031120339615516472833502996431624070087836300824322383392067291630496253911355865241600768009352898284368628100996110741686618865818747952656989993020773784178964218919883489493207364663962634963450136186116802753306396079783789045938664337962184955938580312357022290589204402773300494817430207852093614338226582967603404300456065523401151909331418504454189463613889011833547670209831120589256671429006426335749687442472788134211931245992006910403052305846533731106703564942258094728902380791478023192833176465907630458514399811201804310962706360854773432087213748833112396930510766254921235484613650882775844005239621807434298062224901150406679517031715508436393725118025004777307857699220610624044903111124702867735571541103352482390410066537846387140875153996794818042293470345811464818561845086927073887270148312399728625620371576788754584972647677915456171342789059727203263655944091722256664169064157152321763432487970638455859159925982774628654486988059158084983324915922152930562015216036108069416001180392830557895399198648346156375917934182912081832006263466894032633595456561678009438841328975904025122492818883694010821543660976562767036826405218412738030787024083403483707198006144805207168123204025775933991366276124966335414442602507090529593073862116438660037344368231353797940935550608006598410989907345132376686775724458273933968990355321567025530208167631247490266144106150313063522426553695591713919967197498452139915845191183613023829435715593800251298627547665653142392754158936727303824646531856145997461672253110897641421885245204333520030070554562174576391529104095421969913680127186338130394032894806275653223704431525316874305141976499381980081058198857063237686868639644794668441196681232570491848094730360502231749042085528449727612596038264376700238367982505824916629509334104963375457350999992177907059829569695428499399957291935372649527412183820680991906778150208076262815047256598245535515130030716899453552278108936521829513282835302325638243741065889406695236710819441001079257828641139377956913657767067695943415756033494399576333707927613634710524778581021577820811425838338086612373573306594208047673140404411011249677631158381380258905333666267837778924824534358855860847912189309671767681354100103163698025850049610518608410189581212611542060285379415992110340915779133650088900755919611488460470026530794223280163794500416484849113908005763247331433887189848636750233003152873828153407399761167074773892607722010269192294742536777695328276494092535966737672391889303714694795329994775202310284710764219632149435458281911258925986485240389988817921909865979604218822000481056673459441142149540290975317057807408189767665870257506583320181647467536160855926791041487908226718283343992902208507968663265124226648794825327169014222463520055226401485425418353570520805703285087014541446201405034345330896250990625573453020388713912631823418309200937477184013361812207892880283810600924403169836310401168293285236219654841360167983037659034526757008816724272291027448832706160891016477579208695847646565897346357683019488916021901934073203168470819737225870102783042259062801548144944325759801248347129217942909083809385756351542736694772096093922980775689038075516918338676951712748498032389861910944909960217933088892269364960143334456614262004512808310074650405431579050166219037979255729351453654351088754805880639840158935851129735693729962670879980830324073265591585122623280537807981058515533140142010843757531895918800455823069071855744910058948779713059868833562776028531251815868158760170989286357225691533563361898530227970300157740723876376537377175318310441716967529468364268487952809189674419831957773200995457753292378779542258494928051813622149246654135515533740759857957288826016722666912589009565814862707368298879884145125363132944474218884352854106379850595439984796328181715695218629630484245293847688451184634315704234845887492175133340455964537659948255842177534578272224901212349531023200267724902796029245456316799418811232302969200264080636267405324011638584409912246796587219915064808970623420309881702063479014404087006728754502862722114245783415067794509627922493391477150112070195008637090280165255626206041327445773673715256861024816560406598217899397807258221478389911090968723283305935774000965876006216248800373652404433128707002365101862086894002221269223323365840262114816171213616122240625437313710884704979079367847444608838560966503039794895964317480790823409017643841958259652357889117824062033202354774052950042499237219646545284793988929503989004779296036812864766191717683146825449305215953975798234983628006232696307760735331158187914481061614112650350692228042758773926809993996908059871699785998118689381081068443020647321126912167615191562190357577705486424502636016847356194841538851079972167394354042382000484330659625642708208119908551221546822710258451609048868053937045384436266640119416275793352388123377871787531479267651500376748382852017411143656589662505380472174667868819097993407462175346065006364317494475996296087825845482906574452383709576897239843950549556654230934832808053480584956693406241039175801677427602429283784401501071742547231753901426839513455917822007412097076909374259014495368596224684407658021320693064348492268334832888005957501800115211424409511999806038699294541601879220868427351937882398562656442561936454362699179922846332461417867758142323455869457009905727539550091255247998912633601115729626479564378952071870366631282053415940203574884987587713829342513062932980986896076967061511822778829847912528690058442233122336004628802417521844889280527273958614752100539545865310105667210562467854934058558661185814903437909683002208555597136570582466919607194952689691965388782285347592990603121788183854334104125919172006062485180151474772784428927064504189166865545725596139017273392022463968721406415672254194823651788598823463547418589507723675673875728346588862819344856827015809478416520888629319631983032203329540899685151785168440640290377301385733239573155257112626324692280240497963787087484802303265393784913821337051266497548488675770084070132444329381311786686856735223965991222285273788906521943292899792912717002318774226395014657785889368609511486960540299200504738937799968145604883713447993794905284533812848837772317729746116895278407462886855361121037798494482420241418576936799084901119306435836698440339349696809280280739486415604991623612110071086583546682756920143166139959312400535370690237167469044765929981786603895653939538836939892042907290566076109052261982666151288398688014048877317846459580338767108066350998107508675098208111894599740365500791410315759670175366359666451375778246931961664011188236341767898570693276131596948030450514355003476505568512451401300138798511069844535204478661555697332743919798394253568012943543610801291583122068607671608301634066129332923456181506697351310838696587613695264595687267466477114311624357773217682169879431243293328549632005084054456028663117854074435942259682153789735062619807211351159452939227576712385713790486404434499642592317497588192896306497804331061997051355925963377899880571251030573283323796656747359074475168065078849997702272555837112588280508842912878818373327016256070861293522799179492614762084780679420126608813026751560402634293776530647448580566130669715567317832968654404193216495895194539562661766747391768466377245064524363258889374583243657792451208575353973618595332882209006633023677794107607436145644112271758663266700965413500929592574920631278239880550261452219697600698231710609690184789513032273508577444101120793574562386920241007693633989400865716236042472223154183910569621032813117263421103201939128547607124121566746886149274759187078155769276666745610303009164779594261476457813494942982556452360555680244568597513888942275255328157757387350185441572099852191306826768901268808347266421545035993337149745222099343774251480439452318463102444714327853020292392711913044722032370275844087130498347011612497341483025363296920335210326187202906897000363402665523640229017561605331475535899830659225926508797797966529528836765810859690295400952821937714501407216335972921611046310893209886296589495843757890876217757967146206324798801052617537209764369277250319888285675993362805096143227155558792956358077667308071187598656386209926704697899557431419749992673990843786058728791995477128433395067669644363513682937508801149568299918005489392099043124773034901180515580342765820371196800686375499115467153324922366422962850317057833131631853644304144913126281448872777380801400621436012384414606853456984130069369211257769880576010569559293478772594162708255280567318412249067510956055882182761742608033792345569818269273516691592474100070393766625138133641316240139011631462116835266824335664801979091733531949183904175445793956037943926780612819397378303982852506248897796679622462313717568387210534728076573375953681058595429521900897401151004710694699717921188025639499188111300378666362174488471901064425667104893593573967916105609062209676495217750420666450117492716990743646945628541675202301588019794650344214336225827076480561507989939454359158416656177133929073324686004344965185326437565670797900189763327491626607487414824419551052246737584303983765506267986472795283236723491635214549718348706287016004861937564674577406087883345912894561340495511445757880061005988638740144173610534600396242120917399893492269693317045876123235361947943845232394286309849113469744208012018806618654859676366791075370483505680771979858438910990779244665538026676015788728235101195342861862426866086481926669299924488712636859553320333869507375741966955651302724282538343874924264849286610852706267475519156796986967525036737921867001572250161450299160945493358507887904276437503519950269489604915537401852680676506008344912776687476424513274934419674432929565496548895647902719288917904553092349384765679979296709596636465026622941287538016510593570179411013659496019315041934940878030516500091281444837228248393605816232940415470946342986195214869718309113785099244521114463690259195022038323625417455408970190349584507896574198914077285553856216168059439085246507170447737963489638467490999940613380506109964981150982673845292523319808463717303839233737250792997329114400662921337597038482380634243113731980289508222660568751869904218877794175006105179661198065304167401414390508302044696864184474701992388923666083806084731071914425324003454928765663207077159889535117915233331224395235275722413353856964254310628060203580383204857457128866508146566162514103271017509854976345346990886302987611002467635155629358074582772079303687158081455976073144158378735812172727208387874247378013443344997719519440301083755800573916050785320294761037030993693099351208750137138241927605262387926901642178686769024095133975229015722073605623282312237899668903674025350041412001937766359137221963855143094572080051672394689584052692362043698933399129726015418053899796604139555625837074238583692042492703341435008089456234249890582801396861388007448467731437710582526908965822399376589826069052180991039896959355242613649299960458741418210104584128805534302099992445571217167333796058740827412959687005305613037396134372257219417146825242756375891130427321572376131088813672541876639482712282320066695777489987295430566648864644172855839990707909013385741676988926302505203619346659234963093635792200922000238578470100896087512593135472752019713582409435811536325118859835394145814101410592383017975055827394921171055839925939206651399937409688246491076900534669074634993535245210176934094535000826181258889389253581751451605328930414234070786423581714578676043762915115174363448859162974846436081298054994774765347752150068226948324258945051289403509062715572276768935431471353935796571274762932334907677062642514241260042148911858325194814079171261545047417857997985372510828709820332503643246666776903881191166777658197991581993670558616048529398650199873864592928875017539031773694855796267126949011824901408197826551510344151166964696025588813517912442393038641019709326064943708589046863556343402122511995338307193814710784529343956470808150191289327876704456257316463493815429681646033082031670912576925349843570113996341146288700176187571653487549064353771276718617735964981257368708857993115482743256052536902706681068939013792878029407974973303844662997634398559872799601629205017968663066550092141277405239681727141132104599306570993476827809703183833012680552429527768892751687597078373749993800231324961393506727527523319925131633391735658846455098102134709531007343384628369348148036778958764463187272553133488955192119912703190196690895857522414868025464473988219990419343017347563422699760036479470378025545278248498237579880283822159854713739878759482742597315164051488927208218686281030306631256443359057975092823662456639095702190957010412113248815112246802429520267003377482658156905874434773693849669172753476993764560694386816092034474272065002967227303321606042958609842505578299736161593521603149459060250596241220619494223981877412184538998446741081942253143942129445536722267716790800828299584319905332567407487861486631154509786445003154418067253076230523797159739189518494011868465742018327375207950559132711129221564087410695809222091974147557062744436784696983201484146764057799757417595308031314704190527176834356884821010608409121405604860962136990096785392008344687655565044463760187217297382543446277090494097984123211555629396541899859870314198796777824914399166335742122374285702435162134371754106683297982413512520039988859490455225171281091748449544866837260980963661689836087550730674347399845692219682650252224509880274765820059854093655735237664422914687292466835550397663565794136863577152769006891616142174778999814032578070583303760441453606607926733917216160990758204463374517466544506972392731596575044557475395399107001447852172253228341446590974126072319521222870843302845731547381670720953038219438255189460359928586614824585915499057533582767458670510708100703576972487238923433681112834929331013927337387632766085413810472330425607455165842728539003070247064699489221402992614077744618273110108599999846881649143625637775314781860949239764477052020520156356686880733602131728831077908813046849319862794735623957863907943239294217305020332648308044310993373496865121252115968002454328642697702125263054363120985163083157198515990409734060865516540927742656223905902674769906770785239466982667938130841361422351356434402989954493466596938222418833919570387674571867961403230755591701028037129147389429031029669276996474776451905265121840187039345057716728047142424660665747754131798586922300719161050092619243202240338801033918195777913759452199362728917105125340649670620172788538479383596799046186581858167052043074475762624026059127594523700344335585947819551436689182740010010740174669148180003072037223966974161843799957790857693687913450701976218044496674031431249006455165972333323748440456153651117952963929376673805872986693406908205788430042942761345327263717699546823981550429407257384478601678454765295032811119394647635583630655012257100380344883394306030173176613585306770598872189689946350678135645054261362925845942137846160035394967145220882100261652430227801230267787959231796643513902594823443416565449692682049704009983732770863053203372940091695197067252183181723206084281726098614620823376271012510150297639056707210221452734867571075847688385292973744722743608042928971210747586269168936715792281133800623677312427794931489243879463924268363009167948931156329153029567766266684172815895207766159853602537574878158197227483186117000149471726177678677591343136858613996531563035837533257856376952194671171406910915826573067215704749106185069278877159251271918390016029162911928916477537590230410605494740855002766074610204960330235580260498269800417484603250245626488069462923633093447889853385873350396267802361486776546609385832811911954040238969424471861230951462717140694429074154105237740545373779153922574894133355472282815258220929084227237384217487273877611447811606828308746695823800924308485934320884972625780018840528384036930129184112790019284017570605559846704879224720602603854952638656658729704791040640587823878605071605551916435588731841222420495247915888388323795115217902223021194480344071989230325439603997152608126097666182197444396371444383766985758749339969533745077475773143946649774273553971260145096038102352469777811918739539980399778574053879171122070708965481544795882372151424746340168970121779816089021869355907210433769046269781674301802435447330563977201733543709826175027904758876779588930576654994841023692105436223475079657849939886740308553407065072576202367447150947743478307104466530879251962074968493898628488699898335322188981755690754879311704279907273100291894828814967356585614890858932921204489109585710091805401179718163857570903081897243479619012415370808358371928349726830056235306101653055159478073994927266525787109775719483323279120932892917509595597685020704282636435983830524184217541570596665473294577305212869647594887610035177634401698328915124551441670982115547351903186447105892427518722668176971775363929470148163899054836990658211872885779320339625057987763113028810975509469824495960419046138888068790502236348426014953492516404288114923781092909293785075199654706519833752773505997747718308833282558906761469910825839781135384307272643476458386079890098357731794038139683438196386213757022304606851958805696152965665992630874050416293864141713728407215183495321399853393641689570282895149774438803452771468031778422076064767305356151108628416543592991776009254740262064483908801945182338837933779262204384966718627430588044214866969310171465713929878143516487975612187298760702644094126456344027712768114444312425352850388539224801701341712964611265157922354228211300755591570013349626975009906501810351466019389453550440508811964875319320515002874476270998469439886663129194599342763509322667818540335946501333130256538144662934796027408222591539676253109514774053697377574522915134379567598313211215836497641666238551438851445774878943677034988801730188313102784859576746952113641853054198123433866007002294502766701190875376866544404350527720843139338409905912869483092870456819213696655764305353390660359569907501577697670071090556660331599954635251358925950259593675224327988782018419775256532334712223261516819199444427723699440588532057267871863700473210958550042770039026947126174736397761378512855155386494374176454587035635379337653571700354215564490476015371282295335134502719836931615764075057105944393833811706310639228461614640088447265231600861139809744935401550406999644087127700055271756319829997073487306400974449194670254924855961188069970702250194954186829173573105323413728803888600720102597077517004540851423660965575428905012161233006979435228641088022544090075680271869673336099048481646348229201425002400173621210910647516574815974971647779884758358923794745684376189215356392534534491269062164934266570436791731307873900386967553726283537565704654778422410117289340454222546926057476582878024932018709866507273895715718948666906928492124702247735875937098995581333026231266057192745805449811727610452855567652930062713336586861869493107454980079022047097121839272458474139601390052798627812012619171199431346593234319714291786199386612402860120646917849817343679514726754626175504230655572128793424492671900718436685726264119403265593253222594479352957367163873093705753765692303493951705215796129169746848458307619424616586838186226420971673228079778408331010133929512232417990355815454426395188634304091678020648433558481077100062044578357949632893179950039395640811055535082102829221775306658505001321364238497875576666910972184890288418940304952392686706040542254618938984817500930211180471090213321009873898268216224011598584443232399184183804579387259176122990789301256445211377324061144791229765519477503662542189935662445993811198650635305941978366657498667929304884148073631734540954219767448072698477518204558021141439553950431446102062614575894489183963614439520660018406009213971184792883750973749059803805308458351019702489034632123513796736459046330523004358983279729147703566814326692891897363161186462723834190510544723048609307597780555755798112293531707635634162353656355963259626821054947183886700831083785324141332240788708768027069428446257096205303032589044090469676729388478025310543626839588401196564525881254449827722611129599099553684885878333871167381943095471196808996554407644884297982977693487078610615058595212120742570126908689906210228852737076141074097012770593960559836037501029549270830176421419947663282276890428237084307616862652784808207986723797903065005820238438866359949630546622638815517205387443605571904583970685295317490686676497582809801644549586300162824343654776922083077112687138347574529886874069383919017697781141810726547799579152466757677324385292179008767332934341697689107561101132859695799954325409308199742910676278831769823884004948072769611662689375206298805579992099824657020090195264750305927435111022330196978429706152698719452184215374264294222866863269662698816830116810368775343394984537317326828860542787478679555354971000145687157908949674324387959816924329061353009683519170147080540855376880134880876682268787784764489677912858937002409314089460155668647492008272655103091354907742745761720107047949523801660102588987439234385185831354371854982811813944386209050261166710882781283797428106586182295033559805564073544780295200344759795461846328233426111379228512146992333770546284989492328691563892279894988742573555265466197842275226345090876544523735885887390997633676830587410867922504256270667649768248105923031112106894559958173944627230743800161328309710885872509923216211317847704366760052177001314172309719394370585038427364416163459128351945675783005841571567323319457007358737635772871159956134767513594874609646325456506522897087378169665497224130772977384624265173854427895678501653015249612474706557877749526102393973066349759986028302256977633237012359195399149803783799364345038039933180744910924594716927113167381065398591451466973573897953102695302796246385003213558017233875650557993269786823649056879606551268889058984461123607586972753825545376601676327177662577787242843826000993645149555103652248958018066851709187105856482710729366521037938627475379027847649022680654155315318989776901192624610117928964095176450466267137215976973350697278660039574084440382840384822465335005278588267907013176380911990640454557269595815070236053441406117679176027106562564033228872918371609791190885863040509482165464153287759977782144473563388692592867754003039626692959079408121978776182007109635494590115055774036169575205319223965621292107839631293965463838138846391945814856570030879701939639292702556325364336026507928371532543257253160306256909601242090746126247956516920912021543518678773073580119536966901256210335635277428309038565811270876999489934421523380668569039510486852998357431609885359371986591161913464255676554259301680094039922788312226406589086390531000609518588585769423271993433339398634008267262367350852505793159875266261298305136266693565420690764873900704863164105696828635660484199763647980878849115634851516388830167449037406832954031101879453727786606512652195220953580794677190868936098230387741196977107496265816025389549011169305512379938619671820589439921468984037631135194389057569727141143614898630821209376904820562762854157218372176066875570568220239113674356501202590589035163227726543512254446592410063238206046624397037654703970264964816537050066488629578459475207519358849919093958208720944395628742468232147915488271499150825711897253641035017816316163078606783221203346605484276652054648180548829248157799933995643369487244097189897258426277705627706168194305869027680070031164781455496337102505032748831615067256890794548439444393450157654168405555680103969036111629020419667445278654166913321804863594255469403307884899334494179780310836409834150377757747294270183799868890476706096411354274783065746176983508227295091067872085147379127295788080117592876779321828271455769034626334644670603970533870807002742941578126930107554400526076027708960121004089243431164913710867658364200553421407175166404411795875755334106856150580455275391572980535289671479938590188611163269484840537893935360927805453307419120639506136252759388699872365065663677067180368630539171095471220293562804480582694873471746244978607340113233055988205475561983450538454933301915779463619800955759241194661382953121205688689905339398856276200400124325788067550001237936987636539278615795188179250776086660353785345018669517615786033404202727467765901388267592272175085833395708682266467428626249376269055625607890720098957449605561379315564687140306690278825952573776986721212292571923865520810040455496946515018668980994661768577287573018683537219121690869543424070976652627890825242821867304261741887426173397315303811037220991453258073472289016999706259050229983347217216347442832120108417890149542423124699048060488995368933551505521566043712530480683905032685320177452979835378181311593662258446352828058094087756761424902917800122462814587761846067892195074277113041205793674042579225934325876466140209090724423029175027664846066403034547791575328813111351462669984647450002686145703382716195469076226733775285509668290893163012918681736145004234372178985091188108107294815261323365861807413112198308800251306603315431567175530879151961398311262761702217509837984061555178357626194793556639143828867786419895578490187820674758573137297302118857594980069936560235396886210684127008504275668153065666821108914540446455376625696739825523306452539255932891473585578593326391110459030304927935272763414949092442090759478537654150728046124335600295813509664360832678248886533763160900438423333379721101897017050826961055078662904172672778098685800796062389770997813127374818298049135864379247109031262904645933125712274294307329687340714915782113654324627627315126544130406621296910250151875606941615203204342877847006317932297500628013512582599579380264879508508386156183559950116085845141058323240880551689071511394027646997637462907420558373099247024835739165889309146580964248825469634170133588099616627551069314282171309486626017663740439345612372694753915724353318152577157101930706734684641622106021327554172567335995481458083977232228493480202184881359573146785257396467738226974392321458342755249291609727677489072651051234199564817933353820497439362195610723264993878455629975598314521141041909971035956027678513977497997134562880035403528382257086869152712066858844957478309663773641560171656757814730671651178458636888926790881440962057676242068052947493315489138091392401938160824304610813116822157072529036004124674194809931597253915510396397643525917720608690227413529418449915904943180150041460234292755618217573951814308450984828868231540869658122134902004247787076672726079364252106150919303210444841394612092793765844439055689193667242016274851864825946869212504569288005007045025674053856698484259641799696478970688449063931539218380170504832655207790121242559124849501406336881730784780550029170137598618938967210311816444944959613957972639278002246952378133028815499811928043250037330456249292840179858815698894887946067110698956875456762622188361368416257985269291238895614938948297137824432161583864872794885372104290958592979613247303473004080451893824944917175878113783848565642170015415184533722768673443032800643405854326662986168058025992414035440353079006927850554071460868755269517816602894298105636163464642020099781994589947212794364711280935381859102854905032831632023717407418219810949514698020250553983339583554556088613789188832150688090324899012348243008012666408513115835147361279577078687698920417289996632433373219075694010858496531517437487403714116920420273469969797869520742127175771902961797569072137694897423547626241927043477155406009800686389377355348838570988798085570448262706971098850631846990845131090184972551273152762934409062475663768680966795146916550530283887714336979071127477104939211210900097535401669009008838094009525381679880334816550639231008320422437223640137067636930127312372394067683343580967756599776399565781859740308485226319575199958654403686230188928274978056402432136880231963759161704775137494059605449011968854282634952105133614720826788997051947504843661906641407364085674824022747649127759146709044581526960984536750792068954311191994880163500228785207923124215793497927145305200162226394108205743925265174355800068516139289859384562776166564324364915964557630997844718043087592734304548000141519178325272106988970292727043919011728315987043361977441277111933802150576336934848317616303094081838592471756947845270129692606197778123149409470766510616417302106771886042193850476585464648709201428788138312859509343894995173253489508817697325146410939044938527624908654514657964107639650717934330108160382304693163575695323527757352788453670342811446744599604347631199871805156337009660103055601986387558810209540476020750382477971521954420174781748707906210561854396572412910206223002349807278289194601519559210679491629560472375247328589758843743688141664201480878862380901012657384152246841396441886173365427587856959832188714198155000063371119338406314376106483278292159380482371541927865433434878739300797140041589833322903684419337942654525894785013575100544324185731459145657311989536183802932310049931914519438251281093323176347545553865959468001505497707050460249509368031153483155588515159078918909288140619344524864991362910090617105576870645503915261735578034742641832932838294197953620723852445014573382985309142165432843104177965406448428194842112630450874548659233279580076330233230650106391095318157677816063423363926698844441738005904730805812558587035453793058148473218612127717477069560951948016749450327367540597756448697143078899062282997759238264072126837524310387980908276812717180949402905315585919346437778561409209518958356678628829813884266680887877353716551016899440699204904289014433816274909804399171043323370299625599569378361555920587191815580894197006539368333300591037199623116484658309412906010853632235883216514352973044753711060803118778875421810346920444445235618196896030198438652802959283898894116434262601841416948647271591842377469955454665330788544288219752398145003681909529853270804681838569310956944689173647823350984806736327021388598394033809126082961734771311628694533020515237324655233014863050372553738718219270088549844717272307463679124895809004274879050153775224589274251809924131490417911453795401237002180618368257955036581457702453521861275307917389205019780887376684770435713578252634850832976190206945576598859072280710496890558861441365594761656670261969073157322224527077140146636768040733628441676728939618606131010755274114656682916400212602975692007392750169421587287390383470525032732651024827948290943955013464003984787821971937817132039947910869952699799289270408159988032017981493346320350603055669669760044434362783254919601844411364885188376334819876417259008100148813658366274852964399875704649688276355219605437870057091787924544486928854540906645900467439812623274185839141978828632207616517218188448107127915060278994291476169432925072508015163689809713213910788355487325240056082666936143977146145378732510741757413304632826133610860130145022214662551763920940696477361625479172791980081141429373252788660348689031269473906118157445468073822859817433424662395300167052963732526565530705607524446924997079782271733005327114583821786011029512675079826359588603551980248223416250160944782787809669033607656051308001415422603788635814729049653090669779201691022726371868627258296218090880870728955575059408303508445144167836229849350645174095710403970652559607176075100959934859312429963465238845876082397687709825385454067722721458237864461448156410714210141205547150365096224830690963509342739585704728741092013408351482224025016964598127337008000176197611185911097727017576059964204730287938101245995930155477627931211789483909829225443572659753814998977150968002538519059983562552954998354389519659788381874079891456390175429202304048334553309440613725178038581850373283467538529506411409784048235739926052993501348991609816940536542546753030489311227030849340316569457773428734282278699997495393171638410059232417711694247251109188582964943958743432015028641945964418047593822926684555216351710679328020158713479743488333277841992598051840404395228169978843441265572611121510733007715805787615363340791058692120472281470974024236516936888599730272274984486798528327127909427898160410507112347555123395741960960418367468037254597719820435704002211200402268680874206087000840333411397025862158217873214550104582887782865125265014127916932466219545763556874526573737073401099018411861902912667768445837906429346336883086325513702161142357766205821547802870669683447087461765439139123037428448834117651654007701390346381176172495173855111775465157909568561391606460423793641043154072035403373790799663316344535384309323881720033634732280380695819131271057455266141638458219443069987170322108935155201879948736495175572936226309615437211666609451016985042381376686126789027601728288440602530634601548305534839467093212125893841027377599999517478907728955237905628277114155616075128333685335146338132523680520472300478541548961696848014108314346918475295970120116588595296208976100928960546686688340724584424003342488422247787486165253033647299546053708664653347221197965869719251773521366022123814311569412709988610920313731685920486334908940977869351099004292879269737448107757382824228012644391448973596038340156886637284860509705204058645541918130265837254111634368458849046018509830368511528254682754169894978315235509346116578779247907960700510767236909500016154889946611583215138780395770162956893353971281211407950279127642194111844810360459854196728321514715613896115006622747862993610354895447662455723717837720593035124569809549194671309291738843745169102648867765033119189980495620719100268715106998692545941793401723715384545861664912457930127416902893702599849754700671795689709147603633475768612822903765356878643912821133676548942572225391344718476201955372406256925551550212428226467171574537338950768171850394312886990894345212937806779314139393582422228168168058968141970806953137634924455046660639518809751251783679264539177360932468979356815530314947335574894828445098175083078123949315379652779693047685141794698629429765055279630577749984863392647217175945728063627890139810081913921903472286323606119291333457791546181826750980910438044535977810140122676732867108693624172167180012992826698868892345484789915513558124769277224031317001389356531133693122217586142525112550796026235952186067775748741453102739143737811087206755977037974659285203098402571051004800162400177339102108971363739610831815260515506225852992212657290656260054150789477271161902341424478289153218633487801139221287741505748609487040516477726375018041920700847100858309490216167091677104502088083152744249421806686664964599517970637161762336540361202625312558028228319756023050414242590692753727037162339224378903062909481543325617769265558750121521056461346427150849819831369381777728215351107358416519802136573797469918941465887071492432239392952037065196596436909071720944266303580927139183582979151885710745216500553898829085352186347286948438561000068846919503148891616911133485944452890012934421740111437790279543713443380391529039064540111344667265144607314205023991501060788549680903180852713300365360542804364117139351021182193910768582964511871252516111264312502619897509860457723289171373013400655346150055127055228185726585705862767578574052275662373776130379172200334391949718091402683983737685108194442913090953901549446188606457771655799071282750562182721808890261854193780743794749234631981415895436968267802749003632637681105786434156530274391967343115959881025154696161318609037139301895469380307641798017266551858237207500732241765491941467123771496475747342447134454705986074293966321050266176270550892708954996487123301048349047056306920227155547025202011428019657464271244383333964756447255961994546791006061330276355250212931079089169057854476838146472561126719756330301036663605941547605201050365866911454000782944636585836100670942639120679035138214596968603683690505683217015774816692221700480375019474003712640357951616006471954128902680359501525083667624067731434131953976042609980890980760536328904260989189777741000887322807807010746062882106995775252656021524488013688585988394104698366049622452010637117630510321337323725746736763676710910333355502821723836092826739318269774545638896564212550309042774597959658696615290690653255954764208424579742966035619197688353674057643452725540733822273026355237942928231295283938177570391617655292412673040413917920152092190993668840236064216749256933579645039684662150434778687243324850412086954077183963027806967875111924120196669196589004827198783247887729728708312864014022107718142461277438130713531327083640502763301433661078810041312622742080854803357856823456572572128632551594628547588500212583315825411262548066130176444508746504181033257899762275797939684468467941137379248001633034408374776564417201081933362474403260804739399748922481729935596987634279285514723485617236609532695805739687616898246102191933400440118941012996821329381159949049740702785930556971116405135268720544140276766072734644504648045482176372191460764383022157934511913869993881625398964948859219367055460361674146662965266944287188522134079744216890744220322059788145271013476393307965116569237412740255698054624488594373728719536094310001865179067613821662503046662688255778994057769760340384046296913787859192187065847768902111930459321714875949495104897463213788743691229617121512434276342337271133922926101138206580880533656220903972132863613102269806061880643182337223685027858661628403803910421934473212931900330950064493188467439657144948338315906235835740686051974748370597390226687506180725870503457775235212899130982625374782587048286784991114920792976670297138478615527594863420604141797391806127880082203050286514647740419818996227332014174018881303796618858337103850555247288353662237369531643165933786018598208435513517589500049677128827580099528256259881750073608083828275761692024686186458336732245528510626038419872104515602957107613532448845562731735337413206024000948532228138823057138036382988898439072594703704121729865654020054010879575804013625843426482904012541959700099180050745870353969185440854879720196808567913966278571608129955005174844045699133163116367030338419061006727511352825728513625833145118603932377946405221500425096310220111792505423614535642539869138301484520806701760801368161169478265253444711513131601985505889553134723233439184247130782612857508624130032759344424019029380820490877627236003554135186224341966106664410936759614786919534949011953231623778013668252737510587991204568306273093520121278866622763692696235975549346236974928818793860454140010563122563882245481496512088049450392234000011824698093175465363261556210808262885051676297482848874063796272839045028964142749849017198405642047483455680379090205626716025487244090500841695693901523961493755675544997218853590459780245606679035752154427372888663359401722085588542559650111798994122975572675834717548932733583807866935101061282066859893838688403172948127649177409566365350214616312805050787146003620042288439348542124234251715358128937293335232264290243809793058083297897502064729037010766221992357920112906256265200529798753510890143882045951229050613242098431988670454619608247606200122988313166203906696598826105759526842789262055505025571332419303183086825950677517610471139026081706809074395060676623701714954985771253825755889239982059788720681178530355606549962827215200644591241830493162442921500154273337136531849353807146444126948872922919067586200080231591853847427948945213745044517352676665805915176284111857661999952978051349382420248620913688810316114110050917467130165457937147333452908536527588242689048463082474564126138763242863903048167651528921852987615787911889039797710648925996450774445420903936267197206635835431385695223048767628477433916132467082118868829960483755323674463616481824528481414518279939776146677790590315395332316868734699346963217063217281939233553269140092361159488263708322375671613459928608923819051234275192761340935916724474551628657589675013561483993973830839571771784529994363201661176621585154729782444688907626386087701665010272262959033730807039353906519200635825018392382048503179060959527862587597448990409705617807429428554768036688117688073346562064069757703218417012458465791925888511225995981674630201088728095396069217601578924725251328464888285651059492720866914034103537704288708569491789074451573937687585383402353904746408965966999804044204787211374973395567202192887825840846306578844141377378423277266590949084481402377589081012351221443891494241275693666703819882845033325405582504182418695574887955428107484153627770446565077903458425550507160658045036701265242808540853613072257353767628910842749736015376398841291886401519786843803543804549574694257880087919669018983719213513929085167228006218052987237595841044871903326865867087987654101919861762582522859531407484002770902993812434324673286148077585007065525748717470932506844033256993658880713690460830550418056972448242446838822378912503771156045649673877109935620591934341559713690709814298861937404126661636936956385844064736308388347303557809358408353823991519614983963500601261086752792047307112454270817729137401551677843787602446251411908035851468867752148812001050626047515524955893668124800624099427218682956968649084659732131625144463875661891530077354924940172888118905106755760867777650502275828026651659070936162120358345488137946894914934966738710720055312252175278891638015809515693882016472813616491878777571638269397127788074391474447484239614732425334494188481475954506037236008615176400070089798479487389427733363248784631503822328823750303214582756465838635457768749743857946939581355850145628567453984870583681153425918650091757416637716900130735497583451848729724091950208635976239869446116787592923466605690421516446714416398219854972019766029967899294910078013112157989931664503421037880737342353083577225114342109695188164503617780602216263434109478190312147814834320955126751556423740593234066629748459806484201455469099586131960741476626791926757805684941346943537129036305199843327691700589689539550924032264760600939578021547755929028962512364809519863373247850263720120525724294366608657518659526893869945327836282364162484952854299263793071825155887258659548910920175569572382265754734438475739170977099448289771019611901809391169764301090735900543556270661999701035972665482448773054329401858655456107520804367003076894396696709701286631290030518505652776961602298896413895314014828733281218177574861738503281003437794730622611385194873368818345089259599284279771734340241349248244382023533141357289978933390453726971043614669932046785711561767565447969005844804834104883359583626783645945129925651267298818132213209014050737146485677505001428442837199834282951760949450507355401641188249140809689332166605502558334636675406948960317273276647683409519691560552560066022900684542348807480935329283031891860623833723852284898373245859218324129042833891670263443061454273629844052441085414530066711108644703000463634962590969398962954210808485087408724935851065283534340491628919232439676582238282009631204724630444994848647214906183523409933771716275967562784002920854802532514375936721664630490171240189871496830434004387822136873513498772674215300010264099471050078883579874921139992165718994586511574529246537504822698547026391109662800496988547673000822674012426826056239888896192635569221974847878038126908509989580217075666413203929856752244753600470354899283282589653499467460326576422112368365808151811624497676090467011261628166996992390803391295258887637434711221109276564595883562222324301253924374856831330216803514039369960360891222989932342791734687343128187790558044601594050461043346479728736151949304296496193076020622728078867583621442784767985261084603625040992585908388621852131538465979321437426539515498218076588533548928096796491453008880835357344039616901557992853553652603523515499072971808096688317610732346167487335663571282627884561796627084222136748450995133857708651733003904731216692686966449403947340068747265715118527815873388603059776076779750619427452954801568164359703313312174303499887496135694420678405275532999174731476324165895960701131908414853689369195099131528360910304563299483228661736744004935155801642677677348894805563380832905138816366380206265377546475392434574629144167248710970824434789764252320103682356955381694964934526558322780653588783028602786295150235525226905623338116586414372497254646021415532304222649604005506515150633000762543570250883672399867760014709833529227852196261714280868877917073961648549319116989072726057540887081460029038377782817403781813250794967312302423650299364643241735046377321267669299589133690153534628593132314931961642461480364569964979613431970960908157237067911525180855459854267914853869939712577273891443464048613891457252589309211597918213297466811489510532114131714278524854937867319478032297468235746522959985050077728346841665480471666285349210641324858308406189248960748507840500677014808117666029926427036449374264279851514702868016826541232925238212643265278068690905273453350743151257488380180394501792958200594551914546685552499474978152533106875526170083949150730281802909178598955697353178360377667863720837751748098950875981049809200412937429648471386359765423140720382542560516362413039324512177765812460155579768339763577777912207735062845633315011636293047578992453267621587129349579991571619008822569405698791020922331708184413224656381937454948908155128502366223252863946990679207007180065690671210608357937827730786246023517509830409676151876931705184079221468261817044293253710520801482399125448593529998878442690401294487622596191897356347572189919838434797571183567537965155354014725489284566595212764559027755239008603345834087765292925635638762343607728281414892546363936365140527568109325381789684282883768892665811752180639118216721165807799842158572028023532755859992148719250975072329923705369838150031877174363332423897208185128096056149868454115969245024798749926051867591519596888638074153637261494059218491788572663863720993269252188002769903441291277832944089139541042117965570076885157987370510476757087925118947219548753497047250940108596095659269895930301990692222341657941334241721847949843827018668378385880870321869506896121496002278079811212757250372956758355568593285084719240522186385429527234672709613621956895541174322884352001169670349115479235074448594084880579249266849006141704956512686175087032247854859554889156576358780511758935310828202362486503310354598915482260407184010307790749564482132750052353297467048725629989276741947457584779323147505266025909155084762267538098444177512283220540117635660067737763938670112356851714351412896154917375196676356799500060440873016243767260533920908350085080641794941726322197417536412665463889658099801469989581984943579399389527347398808623519076313769147986546521786135430735494122102357967957617145400972359237842119483909085290479541110695912389580272285547433632851770503034488512786771648680452225230917084976024644797868335335020073221863519302159555061275878922681500131911559059102962955784485723808239185061038241019020720853382928255282388097400955644859832477702295855855818288260572838967924255904781965791237473088428285204752858732852403053506181362229514958025365535039223050451604274203655524542344494665391581341556356135375089604958154853322233755043063781079227557303083157007539689071146311536680358178214382562550933220990061666679489086574058700120737278220255317964621670816895426560144120564823373980306550001863032764923118087578479792252659088413707941558233707543951804565610827930136412919994312538677470469014221759621810500703587464952717553502356366069109179201428062452176947599932587724082127080175175131306407719322099060859835178529260164399702886716500054211556756509669982155579360265740590610597417548498480948077630304776956810537287038842679240560487931880452725114208914620747501112509734268170814752240986968151349563175304009509882867430814765626943750170546685962942501110982948792990125527689073662994337372684144987298608201813623826165590909836302335926615156064229763516753025636522275870816077147608946619942816031376519535591284618283363555751953595426883260810449021733144913001072750483695768473092123445309176997944174319452093563154497980090862438340757138466361301874887817969063294334552128962459494028473434862137548356633926084290931432878422980890971645904721475172508017146824895534290700024030175361463918137990895841369309778100056628340776572412186223065609280535848807732683045856678485940013457769023934394010178206163659274493919606998758731447277731631317412215169990201299916211754894229562420875953234932834315378113440244415858139909205105533954537529492291557081946221811566449469200884354014202251615333308314749765724111260524890293408454278008193701281602300980455844244903015813310150948153059876680493818518020949100320583022613006660627353431547671298961011984961769268785898074443261869544234177379292612651679344543000046080502270190896061834621648314306028339114079032188483475088528660500830599681120792149097193266915056627894701149265290243393802688506546189349471243317521200500698966634259211550645502023562468659891870467307679999793214939311217963504284376911154193880324051920008112669204004908280248159131518187341624096018187788505615432361337385669986635540276039866203430918308001324978219205042563196942518288395910962695652834880135299292119268836869022425352821343178087333554775059721349104201707293949307894659870133158325039330314497385109250974067773003431748483216530844833941593975781251539652548175270963873864833306634692250391987936826486661954286953049501128198597018267017344261540523376756304117220769208301769172707978507307227959765760069913671270600255828659345399016545320908341899514591045891455819916481156251788853563184816789220538954835223978754906030812634918110614369925317920629670023055348197785724462697400568091121006428857112507649984314517841539906991440164807236905367237689353893656052942001613190651287217638991402762580060238403696827055254619132458407135170125014527100668079959554889668056009667630477949153562681789187980542469208872016827241098553921666535784946044988594492227785712011638753508423716459262366580355779161378533598201951977869701664046212223066924569071180303025092771766039719652439042303255930741363661617838565266476242932240728550114035697459152463810915940803748171810057999949673555631631731474583562765643629093365623617796349613429651494778233233422098707581170630494316073241701316227246922859724402204435417836823860688152534787131963284550954329867890715059129279203668939508161335142114795189426917259041475105751209190147195929327891152341752386808290998895419171841758127772247883887679376012105690177085306204081041118825726298201589336465308030113293738421210255855510169278921171956322020858386697206961657791119305837371434778102896138724712199111581003963501580826557360211344890337912072657979723328832643711478508209885967462582223353936059099275496502714903384229454126409695077603189501277126353047685341937477111440227151672397334828585663010582119801643043949509979165294294270899139111331856999941200344414096291512142689723622315049520174957357235407494264154698870788462326898208293014013036988894186105186785204625010842864804348263666184048493556151894151273568239963475701125517691864485326245132473845262689207932233304247531448280804399886521652968638238049269681996933443217751155616923309719852477937805862865492282283946720130546702683762958303898960370895612468472170217685341241356459244095995114789719136710358648161334978237210379188663036469203647140629570966474621615202419105103569151852977551931531953855553046463071576708798039975607684547511282596348291968753894397287468788631955564514889232587977418446198361140150093019357191753246601741571995222520527751066759073662043429389462728813181074577006286916358696920289110436221800572985545243160216353430015894783001660912218218231552550608801561889676458478116234035470693116409692842867053213511144334711233991372255909510254832300458114492610414651906321807460823248714922153709126174216562052158132350448247894797177104239806529075926303767570496101534809194712000657560447174300539084489918287394120695262674094420718859606271873001396402689891177197249593135027783138343732578341594612158673040978386449116012848837018624886591875105139220054399469923318203615250411434347324843886575380560010822869174219697891431524349136025345515090005987937074166357576701478453320183403123105135693943108972509846134128474434657822185749018574463863127654094069382010383088828438685662156122949752240491759253673842922502070759168786338539535384613940875709139837715524214286011254578102790476769458039874485405199262686419987805671062527661462431104392727655982978810435918348400476501553176857821680031426118797239365701326953690700166934552962822929553522288057496300058353617338744323180047115731080599600198170942269193670795753720993719682641748816335097578293782167335929174377946277772311164397225219832016636378546322016450884702916115687418740722551063108175897530135945519052895971427131082598917617686501512614635590260147836563147387012559695404774991691690383257045129611400369036502454039658394849351455113134739050409688240553770970253491537008407649530439103507828517677518560387495207608149986341935897886908821886893208722891138523232837187160195561337806460426959650037842705515475580529781207482368288831355237067138429796530451814340054066292920679887576435569825551860523911672603924755907611667357363644802656335735289269112348372449443561102989224001678422317613913803782014039064580502406178788772954894205893161399887476928961404476944892697827514072073210462764037390194692660633966716300600775126158935983951814771160590917380099849517611189123300829381895123538025895051263040594787119720320851880472193056608648396496142436695853964966968190398540801052506530815892082138437146924385818905956544064725159866929818586513987774820296412823873190726699217050914488766592152510221167571497112474250892461775617267472123459794426794534525477132690537402448662867750634125409636092096452286222565086031889830174672831065088746263974399409637194680813880839489122729885064739833684154499811177269688432454514918010547589770432478809244578517036643279960110753409683380516627453008569916228720583826137267143712032639759100521050157832923054368619502098674601868987293119499236796502278486165900576519126617369299534464556525789787575361180504814516692881886962042055319104124736455755218377534279271544945126431254463896581371260350844769606287496231259710566926602499705174231973786898798998934084946673330633841284092501160415360593755154620810916819592817849773952825505375217578063664687970804405668604029710099751936243988839720243470583762264579450440475719851486147886303818208044440754164823457569892470808577576546498365257884099656207926125400701383349691081734360819473801032564762403133219851107453385216556560502602095778513747396717237550167992734940207528462952878456345000135574301407008404166550752201525281004696573388397857950294379305869011581229651299685003997219431950101885184635136114201077409163682978961884515735348452672046863908681681618890558937128654935205316886736206538347170081702166453327682386034229052799940457919320794812966250812954588121511703274611372446083968049140782267523799050366251835826657678715219702411841211447670030344285761186824309447456317547576408471644353825194043416343039956390219110247150927846985550390353323455755421396721539339186338571031878175521507977262075161845321038961750480057469142978879435294141849615302344030831980832490949835244364011130521349463638662612892801527622145970130235864203603578009854065269214127473395226370544558296018989620754339866797548869260431819450939825498216114904170119277164066030505604006293333477785336776514572245043264951499945652716403965170098466086349523780378607689500755085446652393368747574142315655767875435139357982376092846624615091969418528326929588763062130722965368884154566830111894398951406292698024068166766598655308392343269684465179431054089340041024421107509772750288669487958634662833634082558677990479787413469489558516036125710746392033750344846011679871453621257252115410700152542386669756566313102361465941619163824219857100818217958137602374242220109855888030581622863053455103930747789265336027593722698851164365419681844588280960029078578831968946736473205596453679958793903223938858578421506354354831091217304573758870755666169454751858987361084660989943218874504255748371144882287820573720711002166378346055876286896737466433625670843793881779714440790555291923419622206213997706021319865487994850286687342795254961877816797266658541711902248478049650653752508123606964242418311934684750692866509099829226116065433968331406364225783777750777693716094495589779705492303149573785071665902975214851122385890832973899596871208438369288080898343812207241237150478225000865827319016463546821082975613814558984987535390936952566506324239263243444175955946732935171415590764560902621414524857772942760673678984290980048568063631382045495033463737166972604797134678076735655571554617383493478395861123560456444505319776607930233314617502713995263665690792457431488317686804865968657995892170671243350705489148219171913943354745977781302929612980106742019911784521036067909123486572825015506331508994637594227807254649920101854802547527858172913858544675146592444281244632021440976763913934021126316650278482452791257725621540833452124983464945680283894657068237424537041571772497915744722296202799921298666301905953346429900102630141963972752928440739534875276431301900097593861375019190205128207447362277139854125286125356252848524509529845111222821453809372229300154549765448010955947617357224367734015201281311555413170495199065204821583509942662435885125344851875916824618156700183161202637325567482241041164141216651465435730383063937596289729082850297756782657405111445498857825461181281304598182388995547955370813489159883213099274859322654589351281185105004690568460565544650961447404725773424195049260754509870558728227908518577837325144782348600617939921904537485724720250282266622362856283201413485198145180020057883355270243439658848211285525575099573585378493565205676990551408980084594723106406509580155948144380047343344786842429300913966947490433896507897815170013665193563623178620325986202185059241580688282096815957709598914961534372886810934674275150982172358447198215395656316343640669572514633492027394529952885098399907620303382007496092804904434896032323335153577086269819890973307787187354612753979813369739856195815794688774189759609901638974484196844706513337104091393733399591284652448019476910686256652167856097262150836527792316611580036542304109206168105746802195768690221747576455794906146647327729699158436872999769291287261455176872026659387829677623266577272330091943516317171955632984829464676749390761424232403916671522683059469286429305884738751786964868019156246422332539972707750044681179321509067316932760693522486587310722088995260338850110548695526926698192110406953273436058021779492710379232100566131187801543686704644393693943079971301932094519050838940157669620695630760641100320846366276686585269393207807093810121345409476635684149953883689512801368135405045381366185514522255912105275945037069197389220605065884908209848382098061984571707009240226061275823364103857358688778499741441685778179797938943250664418348060965812261338449379541621724156366337449754697486557435570193249150790665595544820538563741707224832944551043205450925996587573083061048221718565219682789720173389616965438692729033859019943573618932560196278747365107246431857528868435075590167863531169843197727922020443402092918525716620857573313450761955179997056696379770078719016334693628485887632529812667600728224191253508433673649804863602517172896090153626335393006692382411778380585915966952446108031574543402660786454299355489717441690191750553265896450538010308824397764366155987867823615582158624859122407063281027875527684638852491821546205725091703091773702166331704173692957496353292501980997590421310819536742706878099366952456529734119144667921464296730242550138914054327777902194112412892045728434626347852212412985072903724834853427789666162774001977689643237381772356543399512016673773834461820547060775947114767624026306983604762858816605977294555398941587304709788573304500034207202042203032886702451953807137375347226547277391198300177321297534949772728132724308403307259915198244933479187077546497456436615602185766074964699202657861664846680794881715431653551174826036998681656978877591611353213025582155573269455234389325678081258338514125350738705733894324860247991485194245088259280422486770021187225560322035516550594347659866129618211218038604587028217893836269252526317180693381391311139928580580740041982906349221708314291015722345994176034673619611170371255223104475540971415792243119486804223810589317095700148862213076761636214209246403341160486319006042437214393884938158867634689153677532177832778497634393999194841510478663462320821180558012895775507025669308606015461507206538833747842189033463330461619342253171775984154915242841756733561506976091381099347618456355998251937463437203280614049414473220442144687754762161689622841450888651613618670414777003109509713692215393689305745698156509220967768451824839111886595421719223920570728889920700444502795046262649896755717413067702766899450356128942466899640101533120202267118763036792699753880297647464481289857101257996408207460005598150387765751435064901169138968348948553798238331483737366823568963045470735713189716361374134757449423201753694471479819188956124443410712750627058794714047380657778402501684963839882785971342139370252337678967839826458320220047274043975634303232994125619382814655078337006376193260102121566997999596791346276413316156634205666372625417364846329049122103718825133901277414258860672695268798893494235926104092894722858399691523530940751905984319843456188991623442488835623229435113505235602424484489713744738815722505075526377942989303158506188115692493732363751701439111478359873763564047423729816919585112854834114247735280855199404396616210316217733207606021347858751484521404608192728450795286384477263098174089056013226827921994240846608041776152869083679605906625246316679162730417751389748665487504121332747240434415020767847128227865891895903417697186610827774237919932194420705700490466651727837922521753790400670345777021743103740732663439828012607453235031764439930716692210822671703769774848933841365482349770471066509313230918453385675809438503759570829272757836207573834962757505341983690263432406573362687296437737978563499509314324128931480071918262984645157240843400228888451761080657325964562829227136642444406806941117203134690115412420065831245023840952578528668745143482026847778717734917715032300341097838574302076396241344686955674179411270735756520789986647643622506122168299040593895020115430098037340999947760217671946256439985746587872491891073992235523089156325367925112385684395424776518247540722449066138691967915568249484958454102258419654921202183042765531695242515917457145180192479884739223193204696737634963621557966336558035566757974604564661410587881953609836411247525159564594051897791975377164745757902572987085565761780259480336788842623525261078421208423870436784319788945224845912758583090025127804692471126041970372823859635027000587454344218044546216055006232011534022210675654920671413087948754743534287833971042302850101404766136914842177730809242434209662816415065920420047234711696503528414790474095189395638763770148131604382175231710211348719047423256827052955132149249026543847529659712177234069935730235823563285699390567196975067841506317433601772484446244327176308550730358316845739583084636986926865746903378973326430376134732735680604878579698838313191729671395553679382273366442004315445955972281532331183015208099199122857277750389313659617934478471168168369756286482147926363370329715920830419583517791251002551244570539148189302054832621967084241861476891393570993448336542275112053711082740219524749421920110416205384977863198288498197721687608748580595093603897760723496748380556646077502309758726239649062334915216988195547185870661695514400348192640365281921059156009220571707367384431144385070773773170869978673305841507106678532944010980200858146669355334870010108036027318708340235080959588041896686609318806170078028560497962275567225192297428601102864209552307384207121706167061863072542876549397251501690950861938630445888516196563768770683166121820326682099536833051516232450119479139463591521138945474380042370810715623803780253990347402275352151324421141508183188229645169544793148065295280907423044071267526075430493172242976116779331664347808969650414385066695242141735228498030354429074294217371081700785816053885129265341679106099516159941781486851162831488429348645710765732297845342622163828335591710390291826893025646539988271455534598887076292092652526280421572887284155399762121471917123747186574947321267857927475388810875699847869817263653557256967521553653312583553344796427697079831780873195701197974196893208319442305721158822221376412974357244271261633107541903366204561292201131251119482030415427578605988363775692839752289520815948868524452046953958282852342180446317899876055297516194148232586193046697783466570213027836370541373483861761158660985779437901245074850165317242781302534635058037280844574441860001508313095510647323541278693119829806205023100336269845898379291252244704631336296486139956744138528012372638642532346346360354598913723404653390068760572453744619668519798954666566615032133332299706052192871815890796130949201864521826788565791063940097726345091272551258024364097378664689753856788327112679429066752946642997536212703216268031027827802892143694601552143984606668118848773198735782760215398421225982373666199356785601576933468570609752769200982171404085740501548364240191306308607467481315378179849870881803367527340544241212680865917038326832579393065690831611077528956913109265625437529685226612070751605776398273749442694616485064649227287004100114275909532138322092114858643410105739423741746415458307244645861254990140554457754536195792024161600149906154724245486367197688624660865575446949347713922907032683717880124722984300413272914104256739708117805443660952898811965401537345226068081545523117660143841409849293979183169096367179704744502462666387876608117894148268523338659846544855190490548267847058062327967156769886241499028825207943325220622754690579341630509257423572835033829147697815636418067461043608431538237346944691547319163732685934804962668976308699265485597623289466344764432960160471053733766028147982939212714186590042898042085135266411779060873890794570031482776020604159014402758834827576221101343769371543944995249686521411180270163719308159005645765892691404005937925867965623973633971244222915355815241041157889676743341275799002970743404535136313241917971507498000964571658929516168478490624365540692676856260499202532761236004058042374341407132084314796151498827762992628831216632110213866538112768513329004722237080759725205676477144588339306457721341763850356177423931970879043964958191648692306079799446221573397640109271827027897789974729023770883072430512127043120719729348272131205529196347703505386188203612291428392135249715092912468165598539723986549215969844610466277470751542637583442971897022623356973665338978278829673814036544221853521765973008709605135384948598282941522229277387095058592355483785437318806658042829523045275828263635357615521303726273535890035709355038924044075277260671780316435601949078863074623853276182964267775721208200419118581398541474649369750877420210056920964688029912418190684379370029113777929877048054433380962051995317970551505162895316377841068633062249321683227098254375956102634908489119726424348778591004658745130155654864509705911882608273187644580393930973612589169116050937233610789277091174070623739849488724607787716362781526561904290558778888226718622972385598656009824821075703862395887433705250736476716453601466743601741500601217356177056987860214319108708910628733653891422363358117303747932970267997659086143426308487891208926707053358052878212142829072266518453844793263216209573953043565470800980915069755906567642695582764179795114044144656834024891046051323269446411353896172334367996765813649849590722023537873238564913804447740205573981844841695434694224455633049885771043576290593085780459887611743955684467883381732141832490686421240416118960860896505566983787554025469313134979906081227537478472393585380811975147015617198255765593292561888399198572755266073724065317637768443890434169518905624021492082543102065932885007808756375422622082232045095118556089171082502855570556307574738123152164733227400354086076226720897150166974102142478848691661750725428963000713263505947656569318465705123671482251180582090406050031584215118558051580127785746589192454222431747982494270842827905982046711182995786633646193014460367819116646907671373490733691609859233732827289551037252790242782599460342303118106471322301831993656553085955027067853492002885228127713221237489667545094269716702401300499482350215906341837807220782588609552200814502352280590985083532096265348695966752558199013922072992907349773974786489479776221256463146203666705933647992971382434824565609555548354206546787673033766801964398648527557287442223197938924172331762609691453165617483306712056543955836138666699862781032502821980298279901114954474046401638818124321198804353075063516994601259783284930808786869371032679391156623828529817240712296925574338031242734412753687269631576210723041884430106607581953241675199020673821181904621168965714268970654452245599320637005347230703336171404654909878883391223770001907359922949283049617423527487315781383653318949567599267555416931247063825253658298103969054885239632685686854922139724490954515774430435902298526381194132792146195639165311827169293183292711558915650846138991915048449771576457088295902378226835560827430087032239324500510127496983660480698295847360811162670633661353214897303663528045937486770450755737566635118164235146243069113903672199921032838376670921255860259079089418119274124504858162071199298408835553285986917406257614060314631875016988482031656429498102171226677233871707507348643658695142440286728995706310829134918867055223771578337073316852596568844793795348341579179822270244581729730250336240100392545452064069404339266147737770335678101025105961026585484003765487181278259635937088022382172566944051179602892771325147929381200717735537194089257663471368305868753869095006473188596573820305538688035126829258956386504184791343565426240125107210790133659553904641038718865270704237353403043760682879242143198851463232318573175483235265396538175926643255213980249963820541969888508212482214836429336624727534971103603133190564139413103564839927078570992491509044540279241886507642721951297684848941917847208101202619218098791672405174293302333626380170719933507689490117396962198930071371854452573050239344465177060637634001370977539849588130907898062772162247847440188929107535228916571365237427430030594270363414619787504463266129921128321408053106774433263888384002718082926791337661460529672751424853982967971469809463545310982162154185545321636180879291252945656377607984003958330538819154368815184940660427934986371844156572774910390621441790649793013073534923858435375505711223168279916258114029565878315936281450460105480702242614967672699239054419036336495982966851238522004963879544948029377838758589376419583956293367392212361201069778103199897371626635544409692418373586355062010345672798667754197097744444744202798846155054899336357059255278811948041179415238121663378611767168204831835325137069592141102570738614010879767381821943606188300416739708556657782937293099838484185552879593705410449783408971738502003872222510889659942779209982541670934714141735702477514913260934042855424351320276695659423075966855543962828522857938374651904289968544293329298055578033470034315215592107853606315074687316513537356280246453707648639576697348835348072448264982619080347979018890891125322077661139857210629616209914038859254982356412229821107382237820190501075070006757004546672290182010844213216461965810175472519736931559377893633134070989162711075823867021082683257991122496530769309817111512527888195265704762985770885856674775212036285826202222265324076608613442796675966125037731446883495359064277973741727507977739808311229336876575710336601144898841299497492727031225040102470803405830959651347035701063224032903389927291479189253712154117166217092445903143369330171675487655768992053349690093299076310062996882766925003148985670357235666698351392325471915478373484793560934522730472730568904263806687239774057944850176592027301518078965609546400066327899498173397134842474658719234754432561183585529390624727450686263437332592126316745136359657921084007807454141407277227023251042163347642653604011724574867661342629823216963602694709306604654560305788970664546455409254287135476786181157430845207480607607161709164118877620468715531091302688215106390876744652423546085441728420690387333734060752483077836025162115369386913227764923453568903480056920160526897950113965759985286711525431734572767293924813195692280577307783735107134331464827075720337488654390919667133054498743324469429867822011974924373234074676908123968907367264739806377654404146240355297874159757694084781603774303338667873047878102273366620868430630962260526668978325365452153345424513232100170408174295534369545893468498684765514406265383472866734199354620536386053855713974182322013363762658766041912984694102410065012994415491639851441026156897260296050127802677454122344067411190726467174724227250037202550319484931931865713298882503654933431116474516239040195747202506955708369646744355503591086764421236966603980619253713519092361022830595419456206869870112360615286433291402001666535775867881737156540451529098191145775109881427170234332296234305698282780462475396851682118037288298906797628339965010048142650400800328322047781205404604747465295992637045358990974232296701506862594641897381405153436118181432567296764868190984686375035702001336385711719977774831489228462888675098072094138853755239670997596343907413761357557609018317568638766004995260726104259834309964624403498873596039158364288435084402409851739245617621157817627025299319865101488970649949408665270941731713080661859913933994201414391478448998057739726014006540933352428421082179058348331708355854648330948133268959995757201639539570017276813699556615033119325360821775827418507744345903715153962085029344819507991740733673309064002274006232408330977168976037656935007830392006792429094559144074038195540980231718941108297020313061709828132028205135563514432386955879087517690558331114014278394489663254859318933375323789368712849276289688782146977260179599831020052383870592684845985569326369481054843925597175339656293182826280127765197102605914383150065663758669302337747431677271568930093126439503289264935366150105322223396177898491850312241755118686797811906087835660153630697084696588568158415355200737923584574007262529418850147371783513130399442547997108531116950073302543075644009371122281386362520142962491690735796076004922614992707933121901729366088979488899591743560399980963183478303578566778008209857288425994469078016830639996589573734340682836334323970829349845722792910997287198127990527454920283793950501078132671340927251723999816181123459887981114524044259456077711185488743797403587555208517021308198385058121598179192501510054454989734777145853762825954382525171207371189723823359259725722853931204418173224694526647593855974072653812405998786098896936612763535293786453807322026025091635835285147391549783406875587423590930491406109216570307920004791727113016742056324989338032292636610775842047900834963023301478431111189322471978771686003491769139181572091264538820166131946642153499455760615831075115680841731244413387352777000827086841635338348421318119667917611021072568164237761250385759405068939653819200372350445689724438020591893928774668599970226361446368237678651431697846222583540639268975057772305125504822411389113185352656280224344732209453826207372839303613842984744923459847392977221017098013705108100365468898255943218970925308095986971460357571670835764408934410205327220982350259094358673412723336662161631716911290751481631794843399417370904963941644590945136403660182721252794851828587726784489112537866958762531435135694085164871519339070702845059422321627128568629465561422139865420161339264789708665053414585761824206815188545888579052753520667281805044861912834585958515964729280282669809261205513928857422660900249394045760168250804485346897730086611403802663043827717591736109839492813159021159771396658365094255625182137505070102781716451843762013251040548577143349888670547795663928527853246279646253634437618197589399099673473308973244951748271064192185849970111910116562854722822918345443793290187092577020498412426533425255355299763840313749905776527896606137932842824860012126371888355549659078646385288441892703115242380439651880595274856023703688036126385577781752201628539076211332813463863344330385145719397348952661936366844722710928667635209732412758712860159388613238545952788590772965177694165013291822251174253067283220684591075852012575162380205491215342554647943816581859079799612607571833468865228023419493979686084724624400331094421733139897456794722470786106980678186684416588855836457081493573602825135411533561764077583264144125030748292932315446707425798065706070572447525672968757478801653256740482430602768733609482279516958708072059721909665430484040212287050378314378524829611276893315733397358212821233061820610112475023192590571161132111520902361273006093886990144475546057813902231775095734947227713793510335703074620638304006275537917201902505856369830189265849868816150000613846514501384855914914687213694658204126430002971429031558443491377613737759835037372266613903209949883167221811829320461070242224390123145510772888313230437677742932368928853630392167567822133573910483650326993603319699787984073061771280606833961262431863904926075625123800924228538859687384397128126613283947560371591321084862552584327280489946459926414345592273796184536847621848798964383711253857522917413433572146065408358605677454436707572238988287596340862932270542707616576569089215954308787484342276403951886471557962485119210855373531855030239953776293613192298098879795908797935281376787750359999993272299384918169938236438720274091970952917325106157024548253851392073372628802202126744207956378306646323388769613541871600080684385654698983209649462443097025589782120909498797270718878040800455124150233723672007718169951278757754485514909548327750319178339663720474555013182026008626020804743136839992015241048601408782539002021957966961141843508638246320852095399836985669066010121649596421782718061142353081859001319741772265978458212950925041495849699283133443187836300207194408137700938363887771789790661574875230248189159876691758930477912214076835250043920184063067329651232601866126040518070530082774335837205328473179352359042712712552867031875811387197220261070275391531429181615170627254542260453209818592740194093486136249500574080049732572741704734227220325292137120671868247930597284684490845913774197027468155749326720171210543683077669406326696820847887671150690242770198213751067898711199948122732838290598498152732707598493633746676979656223916969650765570507977867913132787435406814215536539074661580459550241772920078264134215564191345613236258045926832756145777571915563378318767156635416754599709847478512190884567578018275676083575065815654696793373835453456764485417286617426114039568056158350120477080668765398308024077061299354304394381092058218502324634490214600939150604085676456874221070327223656978176407886481275393070333744163419052623525840253034520230203918518118531715583420304243881197919542645617027622946115909941730968762957044802499423479082317914394024529759348345584656654512054928367503518518541188817653076393044591300682859584281705374616069850955089758749639949078655181232386476095856963182044288849325841737730893560663499350516955479974919389665168330436843881978592144669750454969240581074412366908829090404663487649380131964037848820309620250035640909448142035766428979012012311110515902430925301456444193828617026853261436017862811229943283806832350372579408756714630894898563937000462437912719182893239788691355808568085062902810213625444720220323931829278949086304763007510354709792515961818637517673324959089628592600463817018019254851848392243976651062618026431786208949462468283657719595863555920840425608009594302282689477845422715539604691626900872200678563853085576468794778879219820724214981915490019372294276675851872950673406191713894992481222955085671113030833043213674738202619410835749286653961285109224709968537403000888711253460369432630200251886620421913464121786818877648789405757800768922100703967099140238534374648855789677520197888483082569441998095613733084345819573479000331949404200929664635132908185163764573719897775656753746051822371285051776152678703823294450692201123785606574173245445852288109568124160301046959067248093625730317080051153801169592945874940989885441583363939289005535659270710128901900139012437146681744423963482142847207312451403514164806065453594138685167393070000886673722427876205329500814031255031933883930340173663209509602807885485751971870716876057279994771542604916261207216095872273749002240791853675942994704578803958643551024647314119654452140065325006113985358317102352139618998746210073248171315512444304971458409035346891557280998348553837785318581767265649717862936492821395516369202024580939192113892304978893534513433316571714598232608649630130677405381538645040985439040739660306431113816270776988166233886445032104186695401452962371002056137568642804207119984258394485120670313798561603262451271972754473840068818529517269565284492407347314753142346061550198281859122451930379891361060687060372156701706908092151300090644350773688556450087832848025581196078490568098924814914042458069824811409969110059861828050832379194467727790624852337376686649802274974699341810613961170256870081585969014692176557391150324787175176050428169244242424188221104503618158627227441361184442609691777224725360859336423374395626784915645018536384944936841985933417422938970633719167351010886772141622116952580022132061268038627734813399873974949024637606517929225372168419951013211576820801139297849714376122833344553536097229277635000720517316748976925400681180323264610021103869917219645910893545087840638346796742273406718305294537471357515927612535787994609338105669070865015281191517154376458349020866713564427483726769301765453348566678748926925135686037193892460166555629361014373821881995398556417721205349340620211552755632930522759775213153237185718715038291496813273509740478146040205380816931151341784489677260442441969217163098946165397842911711639579206861556744097271698265266191089760315621052638631885877037717830764969134763527312132547151944623056435739548614513113217510863301852857000843717376011360378563285589506547043956816352761707688067960534589587524781564595904791337256698592403015503629972040650611402681081078973532027037642746779138639215597121935853612020559879083617499060653155012139752804375952176504409386846358257638640752465318756317691265605136212500104077028732502231951611644957578195216726217411303524681201456847161335455234553827234629929199546006831719294156240215473971135389863568470431150494051713227423105277549755041526976037333609272495848846165848804488329376268017508551029101153689285365298313116466554227820239636962049133475399747986926299385764612951125584622433472217798764931056287805716795849285215463059459273917160249252837815731206540641888021808740124473353076742105069531914883372325370760714219222182350169979455493210127194859361867208458568013795509836887963719874998025749785587569152435698513963847663018352309493671297757925790914497000054706887677039388135160161029285378577450545027272395617728962606658051075121465432322728307996131852077929222853714998336453024666911059738134743807446994443059338442601120096893578070144417725082960170724458067469525606252916218092609887686161636691613116482754055288999229253872408468099086331226235516914068202305290622207799887551025610674252671275977993453587750911808725252530752110381450817929866023203713088268597398267870447185116181464816977623619138620706848955497001781288649375182886120377621580807168692982125077002183409061367152802496092256683460374820230855132147153280531074129936559548794950348287025782686566337025488333759412777286787200578578571703671090998409230923465509876359190448034649536150976110782330526837528827967044236693224363846453812613289356373441891478779178519205976567140158962277895680866669581724333860785243230089697814930947425396998300916440940105572406565068453186619887292540540716442167573311278227430742472684978886904452247281402161775614539854660885221085481145192129216817864556913999216190257373743135485699505692644454503115455244638703506697880948018772580571166889487845921554622174548341484232510862069973994636222602510374715193098388178189836514549510578231030984054632228269266011460097194739640014591707181263296477984150625749330066544125890633609541051705543621067764378520416594745541012378121792967013162611655074276102869239669831985092231177565277439896325234655792809484543854753904005548026411582816405590287023884508955147593444594121712733266943400074266847647119530522792924625196920619459696206350713377101908665388684477843534647826522456973990072898865629415702733818367697702145500887100590465047783778750713629789483059120960745965533229139333778948434080223142511293554427166761381257307411476219065530542823433551878249648635039395831227730578990145683618921193824762174344166432380150139761155323455923692772986579713720980869899188336077650342956840466987601430453297987040056610661272473527438698464982986613696491429805016921800163257143152534596203090072958928099916164022297859889743907684541481512464088846650831400533582775220656465682063315265238435787518920719334213524377571895489143867534807589686738778360682746141308411501022960258942090539096012090323607272086737516935180182459971467297258609053075547969797384020669787140092022930678944907444380025159805176482877620548235797069762880646059766700484541552889024584183211452428067835538743284296574169554495689434530492203810753852198679470367989624758064152604453827691579250020497097646497739629323213046092028611326003544199996388547996856198211391734662646314755464404917854338055508679481769890776000337318952109772565910749773473166139474895208551640239599965308950026755338598088979662831151145454848244385198361956118812160424487148593937609561107799846190344769621675921094274714890745241557488077882060073324552458424959689145107107653212371655214279997663974206990676126112821458730996915765756720274638399933589797731490849625232752553928525792888551054728417283424518970769523994569204211316562476987191397033035829318314947005790931238911156263700773963102602698346960264242956225085715785495227587142043896341990401236107412381788870838260991751918033606403559754254464665580100654104342544557291351558905156118054106052557594149959448228942411470655142376167207281248160003496800748960112564582884805053753830366814411851150640192851462565183300580986786716323831437669858531601706349122326773102245954900753892940822652255810954318905956870823226416098721981318350418051968264009736576718962952601943572756425411536695148785626710234144521964123821669225416425142990785088491562594540229644900651510016234749951580701023009577718122013362033703835702718955839539026297098189092040083483629989212793330284764998131548900085104359475645090912413761153216317876528134546460543925845015679579728951108054523966565041434057260864542271393964251672102180722266951457802609174559250685087681006446733892610855845422654800092460151175602486561264901552135019930881224300489446015511848320709855729473480652738768544438761914589702750905911649828339283305912702910922350960465231486325436537340706500899872486921685041109466772825443359213018526444400279454029016232061579069384332235697269353968033459579781439413715963707175807050131387006015430449907452054384065073055242854619367915318391050125629368399412102301222916817642521390389472574949620269942414336553469746537588198520995077758395514405400457207240764735408561040386502174855828475775852235103167446203181028375622522263456202938288675174910884235854136693265800237919371603918875619217753698699597605336541110186797592943920428229545763095824014098640272455499238511733733591032772089139099346884849701735471945644721841967262494450242459287756149079259937750997265378606609837411842851797411505228951150275442289469919196581540164656914059118139291879090162054263822381252607254845049243212883208751398792784950012704986193909568262160379375222496349426257293944937411850750611288517140601962301425897153356807559213341453841904979279998860850321104413753593146143897206260737512925595428939518320787060191922216768112908816134692308098910003749611409311760313402365426458156075979186563127777218181182767509238193595936284333905082443253191890675533508365913966272666205950500005904957546318865388743476674097628109413393328635805676440407733895112509215358388054380802128355343683955717175158114356225920560147998644658341688801123983567640537997942080086613899335011537047015883326019268059046369683686414226028322067458654075549085137225709203755269831254593204789933010818586248630803073806862884150173048777870560314627983766325258103379801757431173162678715308592605666367315509109450833802190983078131123147338215265090299574699646055527074699169017702335259798406296817138433205770343985307540312412264398395568368381043010879882188418166937099016241967286609570040813519707739431490955166755952398525321619372887336921638361401120058996541225633027600609563012975834064294837987013733161886549960649964521685720464034019256916703236939038063211944620693860012838692055954130982630761759335209537397752308268043944421256630327060371148415507946552918374269878192191423752395008099243568540502033482053702288136778116992190229823321043303948032790399245612975955755987111791233175077965984726525040957751881379435624005136895734634096064201638034759141201669297489748122482284056587600236758027963885718520210247075651845404584275768611206621938341036265655314639927074950833004335866169785392196292163492134681488694059515286435148782312307000072590606751597428928253950338078596176476425828135288708662201752076791637586764607446581958136840655705545564590656244303699790600748715118304845772491095687677076959744899872247731727156063131957286191276468277919002790272462986657533343747618839645784067892702162147278475375514445322729924514997752585515040900468026266779234696684890333094579760421941557183828989514203184801719366784512839322662512011595848757857778907784307508208213492455556185781490228190179872236810057177781353603417822282160983183288912181515435167547094498166612027307697540776855579523377968453592920474070218911855417284992186362222749991810026811080960893414767538078869979285475476825124443205328610478693687011794676820167278965401974628904344611092960641670321642638457497103490296522613625059348029819869147234468063328857803636796411073728290574003428061926489004645729435600135124947185829389175096907752459543752632271286408418296963736231091450943973886912370160442880736605624920683346036637014295606187930018834923720333563148945271849278515357885144313344682295377931894757451100741602062006629836542507155629223378487780320952058109091352716274271304479283749966401523031914178312155744034075394797107331837151402823964742594850155663138570438323274083298802875976509069045952934739410832720366558714226233418728681473311124875975903536051062057169887140060364284558548219390017149417263721216199869807189823191841752792317392378960663419729487002348025050284435307270295508862061056011081292764952230941701295994453602066250429538544111570599123071738492114902347301288599208167034175858921912175330181220295528157911598355663247021951789999748541584677107041214239697027991289683264277609506883662407023487344685762247357963884630274163765176267821748334192897761530759889064143852843398074709932954716728091439848476217687369872705123283752980609926830522037404439587917740247199311142369910793857449252373137965428499065963226429407222910349679874739042119064842792706491934464233518253956238549794059159080440265902206409359163884607267647048857987823996001278934383425636678072612244178148430251842695939198977255444431149862270473911432543006256435505194694940081310091328987681444902644641097670125263754936362574299161400207272970578915204662080193875283802156942869852346540591610193324537608650697601931594225213558391792581914166369813786914491382841480178072327889345895164160117881984307157963128574193501672886797546609904160464857543667227962412943560389435478225997260767706937101115919700198138553459592379303334051203775050981534739394857895176564466501299074085829824144021619664277424125916300742920891090519164603868723069843583814238205798007317531074119363706023504557028571374073849416996619491542983989887382157052892242831415110984684821775054218365702714230511775828874740463008786789430764422452512963245446967739609609479670146788144011107447502945387656045575280861709640929394436354753016566098173188104988284777188738010164598758198891782245781183335280278719650708614702049629632376023616182581826750849266384408757007134784663785964418282168030899799485710069466889063105120599950504278204722877894454907395706301735767666553828545923843641329567476591431240370818521176926952991223427859650372599451151082300430281904104807623006675670606101287065749893760788711916597895962749705737277643525596940695999215073836604955769628740573362759540860769308659077569108267754618159783943327596901531897830899339181809985817231818701279377136515711456687438895380215709288489225845398770850704467624098603989956891266483350057381352756468124487116547081833779285983685789570467342174440664860688949444420665469913372057458124665449495011835288813671337631850512597895581794035314534767587303865607920974426172580457357594950378916234135990726770038519450069015007950096825104751768658206467756313360230359371436624049712351073405912187394492736966714048594430671550795478393555573450876350337214607191024792289492439640818470106515908042856105310574018453035994461844556173947310655811775737722992491412802611267911138304101264353781172952534212023888429530360696686314179141959485370034412695654786259107584231490563865197655315652604039407216652879305975149547056312000662427376463872611970895061734936994506627869738331510391706729670093197740361534995833837070453721195616741261042393480599344442769843080481054754033560359909454180577314864787899117676810353829885336152532424418769584347869836639031317460291865070785204021586233924285853601011737901687035216204085183852917883488746087129256396599630019089001788552615976064829843633226456865418153691893850472506996336848048132554798994382980625852907662166452654413317099318503895860393535020472414634970658667065351086147649942181443169717823783904335919401610061999695704860356804098382570891607046109289611731026718390177322810832701565675592605779658523153275012400010006614899284132874615179632778134562319984352327376162922320471247400898272020343173491499177708511062725004901073419037376835483720871485575296998634187892896644592542253540385346904344905936943036688536374712866022524763359532949894315133116632978695307478818308226848009041352268848393300163817318272602302246297502755218344429611456860903805029773723916321808269421149019549460230888597025190046709486629072402394371265535120536013637144366588694658377241475080457983920368391819065703609838974196739993409234736673862631596328761036512195123826660237124328075009248954670522520744438431515324527106782519681697346783063159161536621230428797858346905923516102384229691272264507665166299141459841732129681639454999248221534490412168433280876309007257623795400292149814833303375596463598422640083204228721280936346763284433610567055587637609165792445105609936754494406795852663585472211198616394849298866252997001305359762825994380977541609778221661276131143883736420369089501001663850913731276072617827061899963362438796011149762123205552590956333608557895429213541327136122974523553839462075199559621882516473113932308248387589836668253852298526776422101020525297587325528900549649647483949909191340012057125976641317728073742604076160490874073366684982752036354869701969319456454185057198069030577430800012541082055786899917812554170693020967418333830077013448808194247748656603770097739296108063904126929515502360617370667430589099652482651471539648239029703200328828765914738801040265156677484688222523454409339053568702122738037637392018708495463018587216798969836085663553390208693193299112400392754875088758496138627511647323822801763479960141394027516355137004762089547192609289020994496480291062453232560966668485474043110323740678733115596804932624736653857788186087598373061921563160668920108178242928223917548388800799134616619983335770865935331768289545587288067412202139613204329634696898231440355283191378183339419474838156272960063272708322219804290431807844274507233737859520695536332865065117699854782364597015675365293861148339465219289851786166730891142965777835510709635443610543357816272976737426966158848705632194957634924691205237849460222546119080427783035924012175266105904340710560130084430305902593210909731219072514107924263104671782240405155041244340335827551580409819222724734586946242796313679715488017413767448041685556073675177329263245363606078813422168780990060131869817202667866083591627950896184119527277126944968913953927579899144706312730682570981980202461243696699629417647932175695771745339202789890033932550773597197887313517446163464600671685259679410858409136341320243747435433517195399272805994658433869137199648932718103504394429490251521380860338953737472657463583849145214759741331887620899834814062686381067146477373457517247280935099523561991501280094736533029004208121727950548586944561832753650989666874746088445532504236289298522789993511587549162914182815738527345258719292425256658735344889889939720881798910429417274872424126002960741001573018531489605745366719780475436961008214895245047918357380137093841028411991514731471999273728526598224409212250817035726320166893129462416685069117813338514436848029503376894466138680316900053567839410860396869869547039315973656079048599138306987029768409228050226296747486552271888700370333412590846810841754018893767343304546565471188192653693127636365096310836467161902434428987746776366113919636060823227237470413304863720316011204148235771922012451312504295764029407160916323244028090266697785120838992070895234528214221447759323922889102855100455859428947312623930217023856501987453799910978222608354589418570479082019855013150861138037333385249418099166650888664843120985818678400123578451098362880077654967649561038961168761123886264962978491081823597032923381931830868509554036548691994340488209802028031080428903066044450847925149291088649423716233204153101573272029825506633967015462343530834457499198924115019828376309632100213099948006156019672350939641126909205176028584875206058129722528442324151107787931081193607285199986737762743148455558385221816096818248481681621405225190296569155303402974307729819509474780642464367630339586407076406341782723909488504366644574728877039199162673379407671848337700938467864320734843960805867175530286244523567642017151172292732506059264461593483038154415301716713088170675630505644229399232440296606251383570799509131110280824489254839106245330273809380515568310575611651494326085201136608904270012520739177986531996042869096060593718095070234042344766149967312043335103260107491316153094192269706982229643158664711118025280770119563670749459066585519677497701172284292360410179304416971874987932976645899296471389516437567874208808417511085937910399001812616936309924804737704725513016161215062633800907428202505770848507541994999278460363858671834900310957370182321062208709758214252280296043262155944625998591055216966316735556473659872198702679176089746065819907183055175826841293278086584786022010750260723263882867581037603272000294144766146617991540541282880472035810905466892443428773516542462480314321360351333967498243161264434797080187444102137766548028924823781642584170804600245224520784754933289086561450855235176669961162799156669355243026745944956667049233352136750556410763410759801056479533484222349647646501184546334632910490649030645597579986198198039635176318675934015162797550210092865415891748729200275939606595229612089795514022521390806148584680928500645374959075437024204059965866361646841572687255621544128799308427322431334452229667652147624203607866184473746491548394539828542116961157806641729931083940327966809833873342614535579484526430399911852805961347751596183274918585079905544221510087363773437048799297697571553889229291195943145118750383651579153493759444578985433743906936461398010213701488278344020211201387402485052385112790394020732601614508142145185358393330921421648089724953059244574797852827599795225883411441907956453933332420771878776295425298605944393255509125727684115061378444408403280165975140318467037612191772478318452531265624916981848389373103608515112112439508822064324787730530612276956737745339644464025397850840228793468140985114367595133275219694040944825217744150610422020288584613968012132562326129644990389413174917159490041710299032422708018148418224882453389008629649715798674808437976804734286154456764843448419691582076204952113159266112729200095168705777186959821705100862006755158812094479366693000405445306679514242763886738274212051945953407256139005026161226843856405805258952879484424667016036783166932516316517090773633602339865195297966733795075407683718458702075276624489815697710728885580028627102427571567734903182968293512498447850004554144453932726482992663980628004138135661076871152770961452011044163574282008843710596816304336818603078985149180929864985904037898818332318845673758492451445235967001564324821793491853656615887653679412186377652641341761985239851574675807390208466538431559934600947052423593708766905729910422371002427794897952109962614747297515619023465973727588107311236425072185464970019616659302769818784853395499867879932869809319974310826838289266698879035013199217903126809156777616775097301022004516922102620320516545032973382459806769282499924816930716744326883067890132622569218285179635220762736245052525377594746883471248899515726116590186461039690730086038570865566395094879037375339573821494973342092467090047538339224266990069990288247243998270355836612862029371178889573705825240683552845434739382350645107843022056497057077006027038149756857750843572285349450658832885787204664942935028149063926593997940831639141056606187779332868251187506293089165280713177240708385181174542020602277131848218445485387058620562498602399071566919357434630657227611038156015988668473342435806416595251236490511706340702255621827067666960320024679193894782707466555870048122364151049799000040569619958133294501364306798285143956953716812527657894831926393555270597231493316080182747383564215605441001827259290620726005014273074610357806418912130240336992790197459545454108454076794484941945833970877083388081078260193707735859109215455462488615036133161144122897475799187925811347370621817214686207620798050317752468652435987827157420952120034735292510781438664106575737640290007431868435991829724352630732597141143550676203844304084745580813097516790174403838961418277408547874760351300421368650675230868208056191172160759374269639804367631922812908035784092758564534515598714455130654081387726963088500800569126386470863547896756857127378073222256583793242451835097566999073835152303490984138854677328231562071785980306643856659046081500783050375745897081498745308480188050007074379097078523183281887328730384239990262106989789163557107185609294136986214731566543992984812331851565296513276533483564036179663208644036695099429977684101786621627059709834686106163420650912390848463696309044894312911230292119100004551059953204844503505177503181742182649810626457653153444926272228487788195891949142086579794940831285507975162267972503575530728751047743761426158396655516320537010002965973820339398874485909434814595205372019574857866348967437036411040756012649619036766544169532609231378253392558185626691939634536732133482036616857007597269278406503080304494455497248840823621641997060426093049448552139252728184871175462122291952741698799284483758084036066682984453856190968723994624687512612251275367776772030637644639101360758539086535464304319067454966232787280139523789304931565229714416359824724885073784749834461958622326531420579520821958197189725742303433036293569878614568340394468712085377212648265940941764569427764973043662051277913402026221538019859523111517495045566651629624647926773677589047344274853785447582866547152133028528939438265089828816153448530149468879029820524202223627858279078939885468278410141949518318330408343238280856143010567362847626081047634261923889527905865384309905283247327765764048635927171141303430344610566026737119022323892317954956771101929551329357422318779615025914978252930987897391322763305264353303473016799522831801444314815342636322787626587074522181580182289917632229189751790788351336742706017936389660779483710352527121612941760953285885065889365426925596335593507344657148460919288784314751755419276228387367355476857498164108873939434427220273899150645363014241637418779895123581553667290956968140774651811054263076764707538458465206336012097849185393798146049581992196437576892718329124943321096657615921727908117289856246483419131843952477151385487215864763966755341577702100932661843271274473832439211826104479959539144766172205168993454481433714081423481969684627505537314865863032894334304954787490125901213564271231063898365873709270747305192974101758813056584711787566345376589463706177680080064973261250735126175983689506977131054519525880008804239213471079922671846580386795408086317935427011373913668207184224926899305522492086347534625626619471239152077262863673385013493600723205908307370835022207905745971474912415454528347260497646816565502564132382453373645873889464236474699174204078510607142115890372524499489516154612424129188396187938563207653485109226023302612947664526830221733610800806697814703322171636099838211337085736509270785961153834954125978709051623066380276959475463455904869938996098155295461202726284607158983185527467353547524899623822314012479857398853230384359265753491820302567542159450588278717214977006066106664433395823385432361099279375154023631094811639924413052950472751277248463277682374909619429052605454226507269368290936691154092748337328485004224894190987190996073966569124453847619357761403245393685012472838557283493826156751613158691282275032522686473477968290816168530346242021144205374700514120417125122063391491495494743850601453827617065473403157794198031353440644073514317450253710339309455192788971846171670889016807638680083081912720505186373698349386775056463295050478567569244280692157677942993974929034158819297649134432097266168819651003617504309002895524755792687511798713090986094469138274785958541323122043920301004993582717183142077938971645664502877049023597586349944630884695345395084827040235699336963891116897998277560225560484854179474183373195420074666077328262372412390439275331638524141661517944080582303762923424642755292744162416259292764980639531740075498945818018150538477685476190060520283918419571840412211275029761619439934055211094074037949183991513347547646839856767877602881689512930907208589313372378955455104382875837505933649634960475964054753224214272275747884302631239381853633003719179326975367669031150818093192840570982335986807376067691799891603594984437068241701239988244059405954203564344396751183716176955054984772193625259012447839199080889999224080692127621478280802781421900422636045336265595634018682020666558148996348656446438290705274507281266573061373814085804264490930336813013536409471592479967083662291944094964730377275683356822618524939344523636695730260348864196022059715322351629863746444144642690701388365035507994818371516148320975889986940382980645364846007768367481489209282636922361913634828645298887415326147595333299178771616836387287534315570277016099523008233692140063635298947855364657016643421226338027985536280028063986015027122786441989417735856405804449506614697536390588979647347133850623485869081581704869550993619658728343839076556626891270433727230464269152871175332416991762913909422191686516316829950072444994838622277850865426771613636107117395277764501325045903365704045472464666863702825494625451486510695084386888746647862169639499070947201349686537512146899817391092971188495676275052000860494733609288610741639415111377594805169391837907936341937884483914600436148702284776783183241755281143408125137744125296986761670040643655402251808447986833736153771147960916939536682697360371150749456148940089667763835038218879387652046305036265583503229288742405911915812820421166434689832128253849069553412806148272447338158700950539219095871280150715406870959951532818268104444442086472591128869644771573017981693721000405974585102165881661263720184111662276809030527531590854154628422012243075416844562129727523454009438135764150988793724092894146757624668016051566958613723050893391762988762498853218440591106918660884423197939363899478311852662949042773537033420636497055071178195832197190203468344772214760945376343759918744129708363178801732272162456666688026607656499029072589180636854024515674677232484052077834165165794719819015057527089619167197440490277683223714996081813816889996134955749039296828809722842753870262953620724121455831274472258665596719038292056749346231935616281405016922378208233794798170725234957052077298352449985061466616219527965461100262156946433810808277890359127803495449382911050950632016918735822850290513236127130453025724983561568690921606849586869734739811070667651459875805944299692523858586336046716875148688319416100161422485276590403158285713467376641541779546705955325976214796877159665582007152163001723390374625212251485304092573174070170176919673978344271498530831856215389633990031906950871055658417432436306301855467190247377174752238377322181330362956198897265703086443052987522703985582644313551352681897466957417276364810435554908821680733220495895776951459231812111431317360030099669575686692486372207568760160407288394631956865951323102155453139561322079344298537105879162473713864077850441516740693777622819241598735186983832093347344253258760381487269247798083476057574863386688241700232763518922249724934390066108792954354317458510812963274390320712955311373666080853711527934622772306852539760220278261715895322794325155851180010352651566641216552443897320060899448941850678574595772894932849260458850940735999363609506108130139971561286938259859634571314145454836054406671453083943331821332516192292527798528288362483701622070432283339226621513483756268818664126535993989714569771821244022197200937735012153807535132093921720434290344633696783219032658656450709817847544126421664633926717615203163209207770646413810771927146771981568433680537391685143008064678436062380215894306330223334024578649851395396556246532723217244880511228155638569848577740604007751082738916704648155036564654775805924446606361835879846511104982085854484084760993800141497364669328147675365737442203418657656242612933712176571092131577431043781455095545765240144261784522534000843717062920704186024971961482896613536177135690251750004348495620097162688483535026932571676432367741872801800806167116418894843473581324286638102868772632239326999336272360927765443388960820289921009977990404256165028967196960847268436565116879607222021118528219311391696190465744142493718701345709595914512505843561871579382279810229955891093543019534237894207773702294230576931496354979576028973418726156067449375580401600295748071833536161466983469379579718930952978695842144008877650479064338661142568571781395348086100632269103194824249332296779158924853672133111458414639244457515838176630748843289168990170155021592628071510747612767582653106582063650382781917073885853112953901938207109724882634197719972425033836534675071638212110697016234093012317379978624883096793008435340113839461058601426442618897804391071161017558564437622574172526714592380695788879520410194262500745010453510025895277325726551865794930202628226499708252278390906034310244002138889698377400233812335124120282879886491311952874876984839993982746381777783508363578651184225952614498754540001698286900987320771006450717186220040403318072632126713537122734068465464350506803876245895103979291217452505895454570635295482112809929668719257361654582784944903244200503115564631116878211412531390346632558656841070336671420305094623833925457205693041513839649957746142300849103329557133496799141163042449378000289908710935960253151203380554573419496624195518498107964248595317661508378316658069454179219049520907513001918738328165689362442356336836513421690957381505471267738204729340797078838719617512606862966220173117141514377690219520499621479350519519976719170975709200479167596244253728918365075216594861689619291101192567237888273757322022648843845593044161652277638601369636784772400934655795332805616563105883402171429051607338145268376200437095021511387239076791146552285139429039884209449093626337026525248299280757274032457846474823432565728948087805390129674425121252680602985707923106861817941624914412161485067165240231695545808191992405729666820736778281305812758529907586766446580327450031286489453533542572875084428702799396609593593460375888984290781904144566575349413815310335472030739277730485413201097122272894376562520483843607486188362409735286187661522197398272067314116623261860007332885581134125064049728031047481220255005161094916803345269433272893743997883661087471125745147710627745248382009868436899173228005395604765329001543071802061188123713270381638482799501818601393435331586047309732140624217279596477113513534742844483505036003634938297015397171311561655219067465956802753613881031771772692410064078746531470393268800127280823898405987613783223474456840860137109959405836052981165319411240620069270116868053354744506077734088735659660707409995223477428456794613599169684952838523792956804913817590677455880596402523131364394145419824063494320335019201712818593864867712804616265767291805586530831058844022523844934993424903953910363660720839309534523603740061314046984362862547701553760384189300787208044073723909419392182402013581429117177075269380114377897360131791397248338582733989778811469874215325814003571703668466251087052172507115371060827510343170830691798808841544735580508076936852406643481784441552039564868185771748635166101519814038998220844258044712699037180383217691283456034729584434113306060789749660349185964216548833314497837796555537627977925083545325033426277870701571352050301639129852847928577133356441076856107148488394702423588601216882588788101161254779530088921329717671559694205211555687745566852515586339479414680092998615899958620117697024007459250258735956532097633911929275324106421804689844016711881581648899258937330831405977728632903674082116754072388409206196298044720831416460999886021378589823318006288426218019462349993888639884705216719577647727241031320850594964385752373085276742798666488824239355340849995160707001469304885351597584590530829170602512078873205525496967354098516126470244069303674927935968339063151275150625743208646812048832452908944455277153009602302272973441985340545322562677092886058628876940477836646953655319765039140095500481484953040178421115099287651116273387408931787294628093968170233791756035093242820101341159025692949309964171964553883625619898718224264958586794530958304580609110129548883739762201224359745236492235785349655839729509641497933804394203356349504835081396347129380871150251974766960414532677403166929184784282001725185296889203903824335436168561435717029268061759050543684320349627648955865824591580446255022152671508744066742397059230102607656773494345892963835835798320918700108273217058946727615428041010761885337282256581780563451119026736850409595709284831205291708944940653522314214581106007686132923861509982711731574204459787498281101670307701547263040494518586814963675509932212356168853061950128102944099281634205421617985031958794780306276262496092195269790199265111939958539067893155291546769144537918650050253086807223044336504866331293816382511818980463646278893754914312882684364124388791288215091673676904573714968626009737313099525301091749824971880606394641315068389285434519428972621962053621316506388718016661523303687644459124894091616691530105798206365238369168783628432285201041784339812454127186741842315501924023477159731065920399825895441529583052788562054765478068872162847530040291424171089987327693359099776695972797312671633112548239456505379574226224212090703198069762169979593253592670922782791248254383403018917451453047368789128543961581556012424969221517629023161999921248971778345760170324424081078161706303373690583424369604221800000579462148898470686941431044242832044259667651108028670286995911403668246566060195831765192136421291536537273703188150615298755371936706768512177413444533395021508005144426948932049438307954337384838986634162937786988222836400159765627116631014102369860802091336561817047237618977978799804467479642389499297811519169490454508763040855023472016550247438162475401021476411758185480861454719068815857755705748857310357888272475682336897238050768239476596508114744253860226400303097069604969904410719169106594012400985871800718950960193332691343398732280801851221118728998596070870273292632230232546724962342268211580367782251708045161740929790280299234264327089960584860925584500858336287796187724750214634318791964148462912007380012097321871994106887729260993077574236604216500361617372306380011763390924256363972767438474379548140155674385716344973821440831093847131658928626696110391866727013865217209848809961710780196333855596396001177282199114331083514364927552902497235709829640382472487096104922369850083399315703301574028019994098790393927449189123010244548463173250612809773996339727657282963837481195174065738421789677022592254669876618968528081807700498724616895264047713553813792494570813527047616750408488652176640943280288881489257384364972216289931311078023609245710152439900772190799959763995516841209774570207548771655770634846656617533638366557807919674173298063521036594728886302624358981739555969228549713382290470235470710363055075872898014929752011367223751295436462053570179497028337039066365445994301222989051323617522935205716585670254777659480508099798974935103741352465886156497097425906559794077105732030055338075514660017771035383184619817780898465205517108723874768018319320776975559788654267438078249751053148353320049698076540035448918248276100093019335897827495286121365845214345877886018912895226824888684428658751471270323497416409970384710510037324899871879757258794178047744163478876478704407493203260668954392988329433423987488969593278220722856971879074276572034032147228492170214522382215111685080809239403518770835929467597080319999034320853360815794520996461879434094152373433380865552712070176426394343973592365330474308562651923703628329877283035001253996289457186124451155357482319874018484157935405692630981688192084999960081541801062227949775197928644541682379751294506086226682467750745105957255617809798937775453053383005174627846926462269249688572384860199450414693972424106671575167276813092052347155835129830719548384802368610275440159566753137459893410485320442139248044642341286817548247917100332680132480107077185734340271489185445776835194388519518908102349888890671037585739314703801212109066139122484855923333324403461903727955161510938666238644499087299802329620527695954100649070511977275868362489782672791337010421570898655883445004863470537739570504148936554081600611470889113427935809185113117035592431047696913038973106994655512453145416953807619317450481146486503018431385906416752065493978443529789204060247626112432369910019299446106955618737778128979843541656472272627868203286714361519451813604484113988339918142383748216985734125981373513835508058975202083309592389330013664135715204067126899522877876626692416989547896849365892811822012396177382710577893557609514522195132765931359062768081697405732603195192905761969394836600806088432301279583074709199311016244967249437417424556398346727262531273976280982311490746765443360087383326885502518806101590183785288104649055986161588068588951264106587289796187370944186827696143022874229885445625823088824038780259317733455387111882579337793430654236606695805545330457240791453701714716377802075458836633448088048883634304945224222347516156781083846916227126609927716719028145022198207512038961778949111904737782575803589116817817727722983541294706580296931003516275558310008279201200565173066651370257427918173128960776077351314917041435251099078811289513185303374793421484514411669863970418489140554154207535796551180680898694472453859012157563736420964656446474355771050346285340275892500373976970806905564309634113079519701371946607596842888995275977357666103082854030252911159119391651402944592001824683085019882881521431339583981989558461625423482103057882248331360873916046268611426241020525923491792180814172900381127673971863270325980153647919617335882128581918493918976066065324784621842251223538412677241977945985810717870188845875678898070648244054234801590868436598930720274853173127767824965463199059630760575169720393290717489380972728084384737262089203281138737254498436951674976233590299232899346984696694995917044716106007033880326319789027194342542807604093908769080275664835005983305940659741559041018956134884616104566712677413411232858844078610690510777801276476305760879550850232398391272425302226453893481852334044339340122722210280206828240914253582096391176143929798883263549054213777959017813492458915748667851389193399950141394037483786240746285480648151106775334243586276538565663979957261482511243692129772255992441819686703232151238090308901655231557095914685667257757507927018829209850513420235384709070228863485683898458366141311666037244545533439881063113143527710655625491115508318639270101075963723995691707756953421122000626497774723885680776935117005060788316458776650986351874409222476705256967671946346129817324213701766505959729382351649673111757661346401154581105155241273473276898997150606135056069310776617491780852898298823800098510812801414476721726868481439484286805623783840114923793194668353381307358276770107078956820617480191151671967311875540242097307203991325109578111384167602913898615938875931833063177666187312938323907345547508726562314280880468085796894271163206978236864632605124229721697278543055959244875724161549757140318618693174745149760877611787271576777994007492643931303602575610836377981134488967725088894923875190218595105773790363795342475503252228836379492207975363958757090447028161377353194882057603420348770491645513101800882227608822777376387383483831430619104624345043004950216833621154043865864347656141139214808053123224801749165828564550919117083043051485458973851543421290127869219318604885738626162179774094527320356434947487080826474669859700864546902289835260634967162218579279898849031528684939350065851484058543850188559122490035157573682836782792191587423997744118471959282286644103859625072366326029642844460357092842950828941286613585822002189746555709220946113791773783972451900781613224513332431685895789280652815239271193488719536011858260972611782742994952013307762113811208950624322623233429535207565764902417203706057182838946577606007195768029356168120982561488269446235269991084790292446898384013308435191105003325732484888284811560262822246962545490689754107383581250739147628278116071118252630357199224627511341461849691978977488661077109332313272173558969321461149561701827957607864914506051453167587366874371407470439515361295440784878986052172975834892770784098311111656476234238597891595764241931785274391656085289368322005829344281508636885603161865156961987419573199735010517131487666211941254575668113950662064739920205676053610095386583864946236483092378758703552041465404080332853547471686107413922460534136133388800298318130405982203841324429664978967378884123913337863999080263237170141736102489712742683563538740826003279360975966589242530093719271535422231081551795178763612680518560822814176108904335939299810475567499481419119013506797739881949538439179234376567222669110262438545380092910704456119921467308272635003248657710788851164310552081088789925776054206798242080261478312052773730105361971213529886644400614086583888475586761249337957833856910750060659132105340579957609233536602969549657736564513908067450927327421814813661632710356837691923355081414897947044848667690769799025888237274998630637520004721183069967292613365898865298311965629028516389986897369237274147882460919187257272536714345407856004284988799941553167582401324175838156491110751836291236148420447598914845680754249636728545616455387648297010757837078125023735846369776757881512487687788289051005365279002264797832807895713094495602374249337287093420620959432221556377973153750874434690393136864691337565446117538034474391158579385413394247535408824094849847001980071802824858922663826639825512629645297875521259220626993875023727366441319012511418423319897799406631740165762058736682544981024637139057454802744453394172562915961925447110795933189251331047741119840430274833051106010445381324497649367041557439758499993893410078536647494485428960847859094756136718805649452691382333353226925068223581565404482735359606738814516691143284960936284480405683099832570162661412850244025633928952291549336095805942350304142205815470717162580123481814414194673513613844922428925169314039398967752592334629173245967867584312421439130672569648867294372273123126751493383405629738678754009998739840241891328799520182251947285677291376764014596983320295352121929934473743495294136337170293096280622228579970952737793194733786057441580093965097137921070790126015867938456892768821608578976335107407899131128797245195651579355046369711042235329668074549345615946282857175699161639632460890201401404407595052841608662211518257186580684744103098609542476452867406521033185281896213870893167134072089247938027395875724318749151617506550620105161227254421929504765917823705308607514567982556934388783277129284863210130736893343196387132205316490619043767570897391204278194023463765911275113637153149489446323391018262243098221837844105784383014841315417986734084719225897740891845189665069419407610175367971544678973338497138251654760958292073500617838900843213666952597189209008105808947119910575808640217582419348430295618009785717743511636079268474736536851438382133423934732365060273831794927180830020711340609634744938280202688001423230578057451111606440150922224189786601803409355141240740918341491217510982211502551973912032792278664696126419867296886634934534103734935908112649122416858402464969531555838271425945112427792221098009213571765882459237589514995697244629918486302758511260608946563376580159824331416644499478475478042607118022309830496759940063490623596259167895771074948446276117419970987179326201295744177469710709161712321560364935873781059752715425862835769200195780236199690789510397778031894778871795976399865380416749628018737629031902501088558047806398225972997303446828466514826566909349645800363055919043503783401197737094324540349695792324714515130770757360438833159324127006143022429665768721904279474623473374455276685217867539442996231749929216728044821716512827055087262387005312004729526752199225126322880427009945194709121452486977164309133088961018476517040624014169737311181296979191617014563651043407824865137107611772697792713997316484193814727278782595869964350671457541203645287812481937238973063175670482602211977937959690034437369092941689954264626313892314180699642198295409990679703203680774610751406071931067848556750321349562585555915608380781994052617723843887365927633718104801500845551755395925353759017447599726471710473663480177246519958007379173215309690036075956267955731280212051252159207364974962224573903380055748309787491266052525295770396091328275368745002495097890232424539376563200436497449062158989680816462046364159725324133089655612000408890551603212074597151253188547312816896851434455750337756010911144989022894803148221397378096340744141122466804489070769266475388934357630727881861359081035398689166545007423044309314347735566039595082515996000291210796618650984290906561505672528678615771382800964310545068109722121465005525376217466272878017860675263996292790997894517967806052753339480425979918504760071954569956033926107005382382247528092116344406601328777382338696560347243900897859656077254313425574598785460817961485267035125203220846475753430290863485909067959278823663002077561156759886796147479624739046695074937147274839297476597834130663407863638563576164228310597512437974489282123078710529845003002539883827898963855614249852623111759758443332598520523503759164291118415535259850328652902144463397426336762233193149630492742185885336143265597849076004860020495690646451835990820296538297563896263695392273690003420157436852369188888850019517625297554311085228300763363367917829571368156411237574178803603602959647754102190706607231703595469258880892836571627997957195613115602087456553549249257371698182411035761633230126382113755316297283635699715343060540837947469165495124735653209545029385098737324214069412908478157370499900345072660206256701873577866270884283155695731473269156631411911225206184036036111495807678677299915546857003657615887241119290394255551486384132591337889277410940578882983882884424182431486410301901529805476087691308710667263284494859752847369784008653162089379052124156610551124679192460060864879685830119405024196509082601867869219550996035650375714260768816944390423962985258315056187949911602115701753096959407534549364445845641570043845276351543831047950566078913576407017180336866058572947930517461817361696873200427415455794304116606498280232006750793751740500571625379892484412346097204456600455309333593106810984697032569029452027407362365768622588232878783452113476841099753211757249841904225456166022793716517777509493655850596102900205078117167566413901520927932531747872465221894029899077789368838071401692961243402614989073908673836125123246229323584298585748655849696373543166766864674313493422857102306662641970227867780478682925106480282820761802827106567715452121752514065534514443478677121617836748728078693585747234225804267023487840087716926044926999805223844630395996213836364526972698996794058307611527396479272795409726714637019768566060435706951881815756871369651752394427095847581026873313954683977648870973626283303890031111001559181188960435398941494454481454128165078112433575080996754367409240938401172300852385937546937334242943077173900322443874928436258729834508193286933965266768600511018827311222425550493993863989689953586047510107251971593602447714254929719058295253000982902799322524682033978695740133302271490538492446981435135706677524980245338497717360555868794733391327677819467878076561685671545794275481153439131439370502435060418943326740383522615416559233884441536506996980514888987606691575286699885671155310345314572769169448874964055328091469666829181547575575623481193202633781349929685688928454966966295141363738604560597615391241873020150931559216029501767555783475044395603398465545877324511017908825440560399826076305116400569663933131059549900114863433443030928703773125481029013796991842247436149923203206843269680613771781332453618629063937246670958339918149404772687565541542721381319825387422391632481061037256704861105631436304561830296730571203155831899991129989865886778779851335903268324032517737150622905544516481834555017241965680496221001315949546884494358577105979812128612329154937046580292594012156990665813903291957074879388997220659294029811481137542807820022260000826058798631470055379858777227137431595963707711953592484877290843537450190643145847590440874582908009796463478401992976471229713546124013868900202031898888195388563806421172953116244968224887429527951471141838009771105396811032891149235634155137406019071910832549763653283431020004976539969255462079141316970586223456974905658429267263696943501620012067510781278451291662781030083494807091312792880309247029064953678321432534286356480166228912240255677041580854602140296676156856766780933209871378459999596462729128161905544278619689128349267026888014327571928960528448179115049883568453736836894193053559355855445912316049207420783167860474427403699197517844667599281283866750625734425939728142427873443458790503517182287070545083883264169209912970612240399084822245065939861798203276020064392958816491729083073205315629462027859527727927144737033041315903810028643455103979737231479485557158634552492694041853150817733703987157254241821971766055085622093890598050687038504973496613572910998523479749807031050476548248804778188314711008849022893213636245568051816479182895102486976363151229510838186242680163342443356925232207803701441672335885386769786934612586138898122920195250642723147758955227682680750011943748727339025299718804867890361659443168620694708629933782482626145782870148682766463124060054489020602054668936651099507493032582436607355718361069228272753850112334054930940671906644441009320089892224756374891349135874863098231095927089233418741747349493862638058185424194471726838885444837944197932416984097337573515956501296404743167933150796220694837672419633614620639948323059122321698722133102685862048141140223889855308138977177102855517052345649770374593149649083772262495501764285939376151274071731311935128169273471936470706773328754327078496732499938313905098700595063188012393344848031371721871037276791493960774493067728091562087831186781869801189422709903464401625100706976130638138345586760790109731799599699753211762509646277093943618944193833555091491986161747942522900964853473724298217752832396818705179111469843690372075298373932721036214747641352184495227056994769223286183212586945601037054055478825540701184765117457913317759181210284009860158673103200828662741088788863250956456244339146480274530574689924296749030186811639185842146453408059471694495250459441910376127378756684429376908547021890273925384070401329635892559806854375389822365027994534712886457878142633401646262527887084951681427242430199492978428554692039430723950183432994571933839244585915885210529055685287861751201434109655268367578137938176821443147845756174426318749957390732437235225142665211384592056470522132317170429154233643853321563745035254281657385828105195112426063245218860154576036268420853535345985186584210101048135613603388122088962186084137661947819702318200719312469354391318103001575142957096118393634557113686649565006781411289061801431079951785816575501629623850920920249208211532736068405130172454214887673925927851242279654365394260196701747044710872732614492792657753140394198289109081356675924451267825237553563448117554255397050887801527661426058952160215677039968306103813780264045186852903848802023151428614245055402038640541432269344136277911287678545306174069971210427407370250499857444820381203304245664491835722433853169464597135543459492161497830911960896094629199406028478097708664591907535772807836634996349933794191795267235985106964745064248360864616573922523609254973254026936533637365710255716970784137793251517681501588253753221420907491522565333864195055785985940110060235650713479233894919808515899674623165411029741204465814358026666000576376646142243829317481573750609197501030896579100852279000413215637594639688730585593408999698967926274612073437844362866513036847200100419550048245758529602629041227693324405706485629812970111381590771763392480569089632311280349136954065376973491465857323536368660321067241537075041860803076572246869876795861023605940081959021413685667596141301172616124025704052455877774488765021026563632872004776708625097996505317410248190026790327026016705131137649504357918767876536817744363353874406111813265736963459842075285239232151677636508034290050169119231920332571457459471770570443376737225235979640159085507324877165049554659271065143929296055197728313489901390726162386479609692611941074591646273050839050913724687340049505821659603756132533132937258001319351665464199642885868798617673651670180493560319760328324678222984953739588039116314894253681668329029471458288836252744843655003911869309441817867030457417557758229353110899270381539031376257309619048317888501967430180041241624811648997652834108894911023271386594921786753066889144462359770219659983513731520713569020545593639893261917736862891769159566382324646412928495026462347772467332650650297227379780084921689804111600622426736866963342252015104289428820595965132125907727050917939101997485680819547896183584666020572974234592686385373674747030382807841159092431459309019060425312507908072493714263765518818372486453627302613336099467590359956572859444318001846895593248451503814034870776159952292802455455360528988495253811731127066512955748556242492889897130156167590455203166521285520705433061991239213005737665410403348345675738323774572737939048268880036738527535967604794801366355871681057832865232824798352457989794128148280254010488965359557100314037631552184373349306700012937966057522483190233655433619213584112367535263536870943607250532334168035071939870722956724461627109742776965048180741932342083902503053874428296793763610535360489495376192967309958072530579228564441445842596605733491761795487764735423698827163563853576970536865561560083475239823564545920584252021885991389733359420511730685283047435875606664376425132704540882561615462437016481575723644585952356899718813791180375067841627037033387877632105173074510074553051931454063120122209187579137965242994614749639487676746178858413014098423751571356440764859784541578916606452058835034636796566109443453011398426205258780931705090418973822652119342461699485868362588490159171223246086925363521461635359721765713774596788828468272207103147422387752318633777729397177833911839776683912225377479500021391574071807488084602367767224613220977454329086879604734716132240517742957470615705179911760952327627669861993876288301134648276664647003835965311257146675120036012282935396117505518486978470724537867766795135074545465242560888094674466294768652263564262537288505159647584810055355221921924776217604460471941675200934125639471284835106734107168557300619789486950692661057576028776473162887233609106125421327224619130573513692131482719623017772326106343859881855859772874632614602568568419084100840353201491703308948234184676199141559644847423812524845154139918733743871647185110970246627325499354361935455869110958638463036917213291630847592972652502293735910578378666929341692243260503292178057421958377330603416808786454204889358129279624780097719203283164942793701941259285445606503185249798202361158152194707927009695546125225946807079122220132081257761999454490748427775700430609720969322970484159904451369365984391012554770851045380160134923337713574226374333037865628166746115873716941398281888549292206843194808049530755687223090556012551546066806003404760712490702089064562909274074701841429834680489348833016926460735775282522026003558680906298679614238151302389762631016306337306466588631228963242086902149174461861540086417380132707008221940263659721465733638169454202974674159175648951525031038070701691052988070510082394257679552232018669647512921696177167410004535715992928533606195303819452269653954944766200604206535315693884467394125780781433591629247234725879567017564648378921238663699610158374906434586254525535075765932601084812995733157418426582509339834697836104309640029025804053931058907792087617574048726042319368129363540586809237322483413346919076251888907898449807497290336123134003523116538979896627544834474375965014156013110561296679936496249933846462367526612404553615386333437765982230055431101215569088479909585447371572207984852777513434253504599273631320174435850448241975157351473231819809904927589210145600637871566294512094285510868312085149206741512986558685341069003931147610493963714580570707074528476701924483290611248075349841376253605191895692855432891002295816461840582576065174668208962672824906063811060348853854754128178542802335826568208632162646019570751041140413236780177998636653955035829125977315316298222251927362002095005193923863039077549988002312370253813515255193460396559719555675119179295778801340824094483111757840604869058382538492082263466258855361408064180517975023808399082373327645420492772447178662239193170255487925164161201691846520450827510142707742104177332718912225378783991987048936134547980872850147919415069135759057683173136872625996641301369074900465526138540256253182362096517458199890694285325624644809086694760025747813337927269872495221766796420603439803521855474857393796667952877349928485380394014211598801934631772474019807857882564684336329162020839972282823134353727460671999177200549602185984105522622492533200557413596737195551370568859233563890683525767171644377284348394196836932302088179732305926540600608516118932347913088330483443445814063328100651845122121388420383713935169892065139151973926517240277323420716590777074878095878520226991031142154282335940613613460484997443943637233133940031268151940852172704415703753602010345735526432128122846145754782611388970108454660193894705850154868370543590136345248051256434007605547451135986130672522472345902742726150401426792274836207674879166692291046592420094969016000024904617800330663379516448802959217743778595935975417457148790962854840103890015806668741140097056965397937003497006672554779095517593637801535787625727016036121545383938855842334913134164188393239532246694289867925304589549955666577094919483343136281245601178401815907378651008766609768535772286210648817073491846143819515130161510932555558541132976416556394163220250484646994464326451790779948786031494691818035128108799433801313809328206690808883427829271529994195068377461486641267326410200256041581183665966824711389764938694842693960904195248747672192183166742739492779040544861148249614132992020648118863752540312627131214560971535806714034364575540543352045079653876613211899637143719617487164021848781035352636829556088528704203192777817048189658742212603241107344767350195136488351260258579237783009674369859950435720121472504319367906308724195534665839958750439531100743044148635941401318325523465772436104158309352073391276532633768493628687009748144842571779871311276671063151276730885890783372500342954116332548946026007699885026838600599151386511531159170539586080841719405564453541763946277299385292417507430656110115577648793753850176759699487660421472839296290826943708268002654913260905256954726965295995735165047430871078981356595068069273368590999463841373183121071185757687119092766620057171485190469217697100067148219948102524009613972715444598415580137394500941228926434810119507714349745524500628379292668141613964818712670430099065986730939800618199994268969315351719111570435813903184187226295879952555486565515836791191307867985119790763254661970964540792716873066157624746755647944233050147734011995997453829006142161190064198134525111308071028532174700367005680807048474278355765405578974158074155677445997166750909277645355363211311665699573927640269421908740750815214841936755283991655235741524462583043787516686940749120415999539220627832453761377623402875898332858484388122187752658406835182444737125058283261783783389712925791679643749067919780551828986084266390179457021599802367115258083698464468031100548835335250186869906537310321970855360627066488221793157262577935633103035531696842891194956041704025718837972871644690132892248160696266712003983263792535403725655989526379838381591232772175922738240862906772568588977268214195229497462103833616645556562110068825723596363702160742008326888626878344540557262277330489637692051974464067231923673763233205916312104452117072098067703570123951534207320629831942518769690867761940642902625971909045405000155699979278622129672145573946667778205690312648816815705065340174156589797723469655595386346406869628752386618879713128273738488711015156567595894458412083938520335555983235909101854448070059738450781236115705894197111098420529484229662610988796423971170974653995810136043404065259653166337718110330247547375176276960994882206353054265819795553129978681279433923641582675910211101835562446208445994066912656804915973346810756707568475827840620846666576258752123221216663539004502504217710289559259156217558702627351537749600158378697032920239350242524768641317020691444092993595854892603386886691645569683311741465790873675125917545899385162544789938633533720341463861262089209590131069677865089551759659092845707422567445913011945071279167884495839749317790971418935381994085458053145393575659311885452996114747449085649641149523196043601012989693666332566849492366979041817155871933454308967857262831632288660120506152810638316711922868805995867344480367844966885272500597176242926139664072774270966724955571285643151298577608455854530681545873955494744190460756939136311487339320087362138834425653863675069015648250424952997118775467586963221865910123646249427508350647813096486094311475044129160941896333148423642062742747647460083952750127176972940613154994690523786823600285726530281715842866961202881472401467544476788661665393429178144977892484589234912613859768632609815243497044263755283080481169663307084627292347276248803456827121595300572444336058434939463705291992057384243901774052561128470014447389582009148131284034983579400372405613606994684225083714324240754041001311245199902744415429014925964767541794900567368296518466925434437440951315480543014256006563504787711703976262187514512663466297599213536543491321287564466916401497434570648781645243248602644740046247126117647241313097872142714032602935124439482506303702516101448024894393007253110890224653774591513474394272767952463500691971149872809577031769299251369526382642057336761068820765720214530088950688218074945107342494881072622554669002246075210799211835413763156187501404938045860813623344712634419589313887710986901987144761439283811612002482676112485780756961368285968248666481243006955402193657935699214927268739177824102240593846986440988560840556058171485107486816199335920273915508588183733992464600456121704447648837900952130624226291934056624151127292434806948805486638491524107953244569683442709394534680931629630588229522115336989180072451032418785762257093848950416639591801247461321964883005677896340874506182577765511435878833335512399011836660018517512914862353539955039842919353979565792073269799951428360973266315852374403248983530768855560155971192390012501675887855745607969732000081960143055193727527819915271278040493638396135298061415456786579760447472007097192604843603340576255114885742791303076364764753359124249729742916200349009428928719855819430951108612732708723925927688491242224029206146661553145567331527775375369338977595203006736883189427960249056520588432318383042025476610786347847728715316632920144714714735001334091669283716637127161915014093863111929295370143199807659200636864287212057853623483451335640637713118215282865283958297342173156222243356296191400069463425151765662127965782713457575457363494400636255583187875498646217432583569158159525201267638193238710950035347695728401883113226976124138221514904312239098268944450522583772913375251382872386555293423482627583710289255765470921175547222956819372507143433351317308778868260983756096892332828090577085501572851184120881604190580812366749191344656200950108837586078070798144878493612994163754901909682546383973716267985369196633390805416439404681260868247718122577148762554389344857490622791618674921807182371899897829142944157904788839259349376466008654630567851655781106382762411199297701433156260258160368142691171194033736856863470277688398411475463960216755541346433650495736426841478226636684256452578824592184724645592883751576658770116819572006484982797644554994417155725925242428312050197323319634947818797187638094279921296151955911811931994156552580971224329876752814314651456275413305077767121121599233321276166300864805319012878104347322220255223097387899417437141241784013036105004077060761695367992626192065817279468048225568503249015449518200845685279221802495716593357637832902460949426950225710765923745914241830033500771740404514853993645965046605444926023850100536488951644731772050582546993280285238929497645300581009307261258452357716601921999183159099871499206978355215434996324868304471821681483373980593645172313462954495139861269750531672740302839658945698454785333464923124079561336214197469549107700779850978181318198946934223542686489296521050776280266873928036368806913114683562307472972028057240881575776857188825297783788987337576674050437118067965491172954676282044702913588968793301515220490348142114129954267597397686295228030727194446685656956187217263359307837502810311223067759782909390885359432413784162792082782070201724540208161993424089788099454863016258891337730725199634940048241161946473714152417842484184693555722104278278695502926405828146818848988694498170986963468830399723611748214584219992483895127579511686313487020098652659065243311250518359170475354786690774079418944225457239823480619372238445401147067183029367898187042684776725253156905366848314601768301718006473222820502535875420415609681908935181159488602482371049254972258884645387829095920866008428762836707605218635096022046177850650787560563857718869447996815567485708952832590958563770428927913533495413556554688828462506719833220857520301625617547741830572880530084506138838321908956792590545563706388966712947203943213189262703488029413336657817950995429741048124316610594630329254371848321677485778055637892668600225351960303743981858721316276962376757254192042086093279981757025060463448209823795681520572433779102886731711997315979597449505747120414063882581544798040136439183185641734643095676864892005744560965458298227914566756116541284654554288113783134681183316503884737826264373827471620183494552888647294705578157495662800688807433719677787977331817189481187216301114467675993344231787696372273706342472138143667426769736599285246652015718759769175189358732085676101980679824325408788728292745425583577843969928764731772173329572767730225177226898452177491972070664161197422292317328596660524348538044798243834748734475312965306712901052972965092004635716151941597407729045100728436092656580885386649711430888830858189542195792219763697422533270927470085289743665098014697860007772597666272904033162817165875409358799852293406216178190911222744944160900350154428476512702704343563071614514865421565678587927997930101449970433408931439757216574608626995063728595857305932647799705646660021740935288975662160999084891069942046204218668922703731825449027459631288701578694837529781473459814384581220434680539252103944459828873551016427260419920804432595054012606057014846701948724791908880123404727453601728446594179407938909431595648406504220101222571640294334306538359848084581781759111626758011124423492380106332763020759273111590650267800296663080802079814261313213641523012048138024123289987179978541267048756491507391453458066373679775285522525281269385396101921604788151889735064778867428780642402883712402618045792342529324091561277875847668744872057556690925843272720171498751012159417866343468540400784328667422057862868989753760853044865570211048984892308829480418374419436732925777564096600661023637956703568953913600977726897402796085962373733532407567502731114833645299628921115969158794169578513176284686177846179946298750015830916649656600560773780427594166155998595575708101484518005949905570263477282545193917982051522053764806196184678373230629157139274822689669621221429321270611261858342030991256466497785715067385341168275492193137405782066186382848151090741388888472978895390817670905662699259515323377569327238211377259387746255812967830484687374983744952601085667751954219500948506855109664580670971956997864937195492559382788689208330394036278987471446452374570950043898495347679489943020859648215156912245918915001311268843977970380622603268510956902754933849570721470169326828967261359525583723583854840837028581961518582964303598932693572045156068238367627007656560327695352475388291458846849488704415574360285652109926671489663695208940219854096158909979514831229911450648737264322391759679518713551467601711090845686290597477372623151371497401250321425832915579112212418294651253885724590397534153984308754145483244139021682487730393090682044637086886769159595739080136590082972899827328929334604182096845621799780346925914280389670274085875677483106960671403998353026743931299689609201425343206393543518945720663060042214940547608918987565310392895158598576500920407844626668681515028842506438786407354332321100534100632127375080826195247875878003751733727727663242064212495096269993732760509286632373489493347060090901783558727450517943071923141361651601762262271695545446023745305446717709553026077498509026099464371890421074501376110312349954532307064153668345479311992184640474413204965709924320105445858181940291656254719586776054211803158650433944097601831193985001866674970690867132215238231252658082599203045220990878682988645371923124561595138704065995697944427463283808726677369985250182121155521750754447224722751379822267359793020311281709197550048023285728623622434819773096672888799652525145962457818230276313900455081040373441589609881025393498481041115644652704584380454713633461130501395499453539982598371391720393938209353450301588033709584733842172162137217405144034070503236556541247933344381976836923828407368012038813940542930112301596450113398041725462499462232385959812589647094461362995431548486208078824552152974803275448241798106809446216561754010980824402337679654110139702567169038462067129903521422924630765868234609808712503215404299844126238666398112224180249504021503063902383394358869139089515617576117716810953590987564978848805185577114677739431136461723205005043674416800159074313390948473909981659274626628862378176755601771563403629251847457382557943523602797764706218392583998041491838929040656375348664854263217788433155698466549879048371815852415118693425499040592241414273596926239483485078778203072537759238918838285062125312510931719120775831744483997311049736341152772348130091391539746531525626194421592540904274534930289510416344025274905206255950643614896638645114700801380468637135073321249768998374354064779613355213093146648303707723882508524600653084909455846631083432739109703600626929414439498954542383928171793169185723003765252280269461236239016479072985628639280509243150616318954330447490362594124841569842065674106753429135749023887947877697852629874033284514457718415570758225878529256293875943144246385706271767684214133515517746710067577861730120835254333159272193943772821885646281757316168080678260124363562738872631235826201988156406782587703088947185951091053887600900394561617602328544668218906764810675353940375901496286819208704869975807667649863282612530788522338092294067211375506037679442369694108529559032602614401745068345182229607049766457590437711924650239988312032504444537946350458822379800866629981806822967504378749427450905751674787672087909679550587162894153994554204934603214262650251543558469184139353195767729260315146752587170637802471432680162012704649627990096972064924092748630970466631169967444015387782962857449907101072370570784969656359824391025419349031898383379147226206574907485185464875222896029099253573344360117206358961293633974202100978371041223067922284446549121018501425060685055640866848478885288111678644877579869037941115822536518238352425806952299880394636355932294686799470771329129055252392285692598380314109652258275774415887645403101230085482580793006254437611969779904694603952257688330511599439209657361564493364582054462872465802078462702941880295462316843413554059706050921039486482029441002905804147558374433239119126299096058700281593142887118528739011346599156793640079621102392986693090684838089190799060548754224226363294641106145259147775304043107616202599370365625447435091904933823167860938186847411040549156906277943952112026371898061563200222497203705117234837986234720330613167137622505477182029828938927870815914955143316316236052962691755386657006976996687748312359545818818423068063209072747006493925769982454786530850598291165344934761860732091947090906411000078688912755177976990333010870688553254353477770710274539482621492488543371595367748990862550126850766849035300684975996002740954936609811089385051158832796593460321164907766816357167513544984548797127307918916265539518710351162517107372299185238264528564591211827110248297540367883103738683979328368075993849975806102821281397423973406196288225382192437770984058928341751593304843893031420960284688294493615236234997849654827310307452800367351844984325790180004043730737597006853670255224151240906782063725658776232974644949653418202740209104818272370335327571610438125473265943152222124322995208783980101603453402577041605523244049633651771435806417176562246113683293937207867179798079874184347034126090747851651293542588440237176496146952821543992458787053321367095000582772318154437189641468778925497994620884998897371459808853966248105378878624619759461277604722225451725017849937949060028467942909391422110973579716063354614206771029794777042964441840711101852785835018142120257954191886673003917516282640762666774301711159270311114740024089049307519195837641970922221930382590823251475938105872932674421885061060234120374142554371183159203918857505281634750266328692207686359672431230336486006680158905568201781684608980874334438130146840961293637783716946642772578002779092726899241771149678763018977237825899389306007162585956608641655350613461521201623585068000498136185204739963007478620577668670672318903307437207955543640141444441407096749044550534791029183422194184683058781864081997111631680826316214654489494952330360787624988394187466129895267443758382015855227004516477861100925270951991603463975619436068768869391561962901737068098940780991138977871369344790285025853490583517759875161322369034630531315315115860968887182262686664558936782425008549545412002451732017987122157224402455055510027783628771000123085503780672767864101308793369313785824188732761665446810636854155476984742980625099751488208828351884897609869661392690916128186757431949776795950297703231852754197900979699872840372977569253995032983147520254113033586058384221521018124087533137871412226199603052116737944839967076722999380196141432509204326734928478859084781416755638263770989759496862364100197011144823160452984108060774535898731664098936760232462854339918603271012157802816676490417484422027035725020348651329453738352972673312393191895831698772789536061006743471976760997055398438482444384153425872943902332585193239787546986261028604290644668291500359389650874108409442847729454530304842191471522676642672535358798503520244268294819803072047077540448343928598141911071615618311389533358044077462031076194453775256848070535573391853467347857327535970342890139351308195394065177211199795908292684360320989291564534550174597463432407669993261839573685943962245978548916978842016073263249004878478093183482355557817145168891793696893572953127431461770053759043971569930805396318227010696981930739973661919206423328432520760274742495958090865764108818609130636986224856806166342996265558920725574542541320746256932646716488587751396751534163649559807932678147944896256265975207512217497722282997858816342655821385390084790751283121768208917627097717523493604170092297700130903417293641050032921821674429326397817877581759104797659786945296822474329836585905994894367126594898487328699703990645561342512574330075205824056851852034392794623511279121561591704023924125035726111730342803944379782850860930959944220563052553076918363092516874827919224138419168975941000201175767664695260404311010767776936102939527677434899219048539185423429452814574264398511296240703272128916998192698610961183470820095482120329109261620024071141052834066444727478395181547352323002386213812367323617603572645903398490655120981391487475147809079635161730967388927688648118912783430230914510398752851809018567260711862478769210338382828988955337028906662482198290643168783060192191558275804566555134464809630015228603530007761668325432158720960073031228651215837477046682633292592527108334848627132782344158795556060462477131686316538811092683857507396442646399416745109225093376454174994676373343686266275190861650610427602497097297472137624451645009994210473797990576350862105012360569320165692061207802401026174200318264830024270349676434508479871842865403574604391526060690179798703021160919332294738072333090746059979372956173738717835746868333359256388453563889554163263661822412026495366350366266498579137921852397655389213085231708602413856623016505216675248487503825691033225349101894478384109759858879064318917226344550266325686463841836278491073040352632276478610703285998658733982131838103928050016744076355561209699636188040867913997882140291707112923739324001338887603270047113529669516750563194424988256043474621044197436607574810041306685874820362152753083390772700738346566847068042033961112914558270742265668793098260217489301503311825652313251462033958225480933198750057109203763174033165323289735579123979490767917962720540480298080089261060048372020902270033834521785661596599562101165492765958158024833448134937569447915660332308194881669763830592276700956227779405527350487317128859028652898861252598055684831819074198044575450843968546423981580594153402282213409963506500583232017209517843423420774383256173160633323350215500584730279995206695261064308495815639861245508859744307958974836737797317684384919545890840036622247952487030333459177169860524974031743400723945114618628784234082361134551475340444348610974263580910093028181280178461314133108931283823856549334928045910690138591873927636204456520597622228184936674909449806762445878723747320624375626106763584790849847437890173970197625762251099164297533403323876916061095304020119594151588625386328037300842819864835178218855208862934527237753808246183348171993012278678431434731553365705660354787231117399634725097151859645794116400991369372262585308695088574543324902504336912818783563620957165177247960311838597155800389249709807090541745622089347607016001798274847802753602591203105410610851575887079454807851162097173167177694780550946826185992240539633717674489775754898592153290716813748482814655316759376467105408871815585700015984274383067812833412768645152218687102149076793438346191800016160254787259152270744886424637541834363811606619288796711259920732141495784927372658873512772607065016595992290753897674490766814748266250488343574027643355542089479923867615130420409305582556177384187223456680655112081493549641712590335132993550828401737808751880102340287988010877593826223512615233760090328131284127532259891445544289610194618900973480374032469393638309616108279718276417288518934916633674851166909697638614395156958362164683315061861442591488169551011627716752497042627903091467058687135014904720124884955550915623937118388117634379379950593138755092479840249541929897437685746378694510908490664679547094970239252443648046776577997684883806849245532296273857124878087533464328107340742395029490887011143741259644988244802543011384011013109808808637661581633306561080853639173187111097651891506516502566623908699409712109366234627702540801972719081901813261844336464784155801082096978654573213459394267942102765772616676398316961188411147236933339850710742032265717841114380598799765096232807805753094586487553354431096201757609788079425999418470368848670255847767631274060938974402134692553681547178282745214058500997187244990591263737898162934762974691694058291254315554705343396007916416549537397793569748369510907309770822141905095840573565416639973818760795999827538355292570740173218521757764158343557049265010909236917156821476039813883677558703099022131815679567246025635340025101621187456817862901475044132793526576045584617909247463932756710473508439043552004402914574339774404426072416936232040087634629023000710097634758642169061562670442709906152204816428560685504077708115383418599553526232237484915695534639329021640104464193357909960567080186328960140862417210612279318346355628007165835060290327762629877997956691776301318918142757296168873705546980766441662027333179446361299908094620522882183139351396364217895300974661160274133275611351730028290751927524412546295914731201387119547863569881720023997816733747578845746248685888666588090887118605640429854354058829439564229024236061145347587364133729763368746971973586901263316992346194443168331173360670425340763493142786488392859879901418435381799630335696389889027899582186174518536425586414114271081548334692254396140544299803722158757518420328945792019593542951810190365336656121735665867301604632980825835503744768973526022600441705970366321808201591966160001008298211813593658896054582244920264571057454112866115292969292312571744774551542356792997977544666797384320376204198566435780860558972144741710448969677585006753395136630031427076929004770304114669174922092169351080340079958964890308780137137759430817395265654819512967949441826512486895517400439293580806460464355625263456537881212701961558389425554062717699805312431972274861341994457583866528057863531612463865785528419029718371727237397425185502457116679886256529687795268467743757923625561419561066715216611526815199251082493999944806941956266272005405635092428399186936390124941845701307772129964908601736759593724626028029357264588954601190431855857762754535201065613516564243187408641846617417162621687432723747948703441399082914329560225317548032709908456959897542427708203559973436889994213012025138569939650063558626356247807114695786274213841529262558593900587293759497416946578593525214773960973114258471336373252008584882487922674247310347632868661396943674746370625296144883610710057151938073902667206370395791120966398263471120523349469992721348697702498759915049324129848231045036875197915412828999111568376127696172913584250723534510354774515718885118095983390470817903521111816041516090645285218286264937592659645213505731972882139880656673107895459938817876374896996859151054601078048756853419257513515212635559343517825413739429185962361067213101575149183821127519698503697073567040410811406348077064385355393495759661258508492881793706273008449634685452770212285523813823995633798676657400945493077433712743674907462489764656156738856259939773822550748588509420571552382470237566607926741996780054998638180380418975274933335024496120970766276715995498113375382693831419320690983465169744236246333246662649376828435499953556691617797973952033905910866184115483070503920465544710731334189459286690734010530735897211709577557441222182371663808317879820327549194637090951690699171866297176210477082705076623209904145950322221366846114361752330113564534313193786870394285664750264751212205570952984338292643356136891367168024082868162461276758411814539266561581688080512376128334121254892843164072508054261171182366649775268210025128877545637890164283044836738569269414074793442333481038457469790289809881246954684884857630426023078784483227766724567879053192975283028880514179204790215300933523541880550020166532606428672226981506704003540203679214687645344112538136640292823849773776558909173229609404821691391287639706595079068631991444438576132963959578656479746860991040039853212945320901035133740352307439467969498046772178610787701951399616008297259647846042415869825241955731262892589380019412148510476019200745256873062700851694546211945357644613814736873069162804573413830937625064034146156880157717570305716883882296743415700577105684210471789034462126494743906743717460685450222225773398334383371988318885561633925666922173154054910997637559491103863303844244040420967752715181163172847016588424021166354459837119147238527195567177969619037938616817278550205026236166223389925150585855989167799885739098645854186410709957809149495903352848232442875595711326859872625797985042273455179822517405355732205329629830547533146753279159034620166724897364029223859821830346109140453058891326122423421194493747741561281657425504006493747743985436435229974536584582972221730702286520538660185489013671139514112987912972184796644823433538084025074205551489076731635454335100635528775042421522301089690906205296892872766312419748666986384892114270294901047984758653172838863434280422039791585644964340525658491813119246056833708141301580057506438069481377028614559785752441027339475265232011231165677290204387700103346324220299207567386127775795219192010181407592140062717098679295004182719747062264689062735142908724801425664992156739541323420790896054380322849424441213729486943310290256984028951012431995998314180623362721529178992701164977671337831913494502872818607480578420114700138174918683746049892148979834938159664868386456894682204299172685784408129680363323833690371616186799387297528626428993174580608565363097096332823697383899625809225699960041111881583348808305630758606284047604904880722738814620169952340891253951037741068707188538191410583427180862343490863749355904835451837896413710369378558481219131453779280186119987464203004077882170396941939756134060164604948353691228114395704918473183701920289892752684787440123827742202773232944011559836364795095400102453794347887633228757472270362292369483416283709921070625091588383423769711113832818662748466488152634028526039615269194024779518817847016426034064185647219554351834287104349390308876186596717324025716426986655463430869317503372479428354034100236822420275064343198749198281009385627252893318712098896519210024428415317873143004776060751159048956336236816059294322191327882813300889463496863682176799291373589985700365637364555466227256926473855853477296613763342281691207448580475427449389406039891120875215245277565683500702241077326750006855230542998233600375412945075009572672548983893008303762823195869423967074987261220512844905040544210327215968462090901957062975091420034724678424264956972639114649399119088307936584803856627038654606931272244568116078520519020961397249933782903278603392261300099265337480023666743032993638190365257435483140572419984465892643753204314083631851052475942871432719624807622571635153376082391635347564480758914602879890243286686273707309015918907269718110986303003560593521967505581854199764972174949423366298612260458072077982943972198418489038444731971881037722527952305374787706436428144269996291879457730319189940998881845474471579061813694981998573823612509630259919222718268603268450656302866527285933967055760288941129152722431245699657648603785543629682328995012796104585139100685641232221687012851341349726534641796749064521628999248599892955653085611472343325833603795446192202831315918142717118255398884865379418332236748045919205167157938670653324564931094696590367439560981379111639922123886097241985299699504107681252217121378332043891517623016319154505641081035079328107488022411559522572849121011173234501129695118140255544222077873196241076985587377546298136568379205126494686116062299299677551085807659922803985491203097895194060099803643261370316910687786615943135902794938567987815179282627121298251868735185151695414213048077675401015105221136206695813500974502855146651972752221764690958022856833344696238778389806501462837021541620677517200982542685414370541476928667852957623768803747327433163249151277388966156103625097993573486105753511137376875647958099483057807421744619881326199516995563627970175878294016145468844604186958273469358601384976055298179025545945121472499517007771718814495739837956454394667873354990835290787277336194225962636952732513308965363249153925119572815418604388527697763323140283223339156612792306101368816467576050089341168087860569379613942097675066212837857452824662877396372666492364359895958599063881152187102526787490671329140925617754808575103831905941229992177747407322278653784578162731307519358867518383859170602514990965586177469863350735009661150174415744181456984167465070238638282071854059740036172966891486654009057003092632182582629498449582834383207545401949574229117055543939096479602004718999663433070077966959329906947311242255299200858450928291934481694676301949388651984498664838879726118685412885468587248590064607589196730685917068157120720959639371651991951192635946727383372156574138697048456395410659989291218571634304201344043751556405236789739697578832931949426064349284601444829323014197925709582915428522465649053482795546637375921288769483233602449516309398652610965669777482584879783931335831159963365340085808281844375245133804644885316171032970667367853351776996460892588152169772239920951299262860464866280082377305741056879969870131996189673989443635272821277054683402225140037074303426429867996435425012925959588241744417037208023270393780103305232187943739852526339305919272424188846639002943479048864461233975273042413885190344079930928760307186510411632215678493251941515404424267102403634520088364224261295684906029475711017500511894656203470493059060764557182780335152172432039862062885195688912278316757904275741749907984592963074850365907407039106173027693053405096414139061587315883156937449622302543247043183139867961766108852326981028879591936343446166777302154321476061365459858935603070901372316371085708141800986659778040240376410630128647136976174098208656697345518308428577660004509070117619208551108502519779493761093372367430583898293847765433230131502345855248884276787378852979195951442371254197202574869438242241172077073378932142633591012635541787970455215439125974005336993646512617332042454924661152666964173901493931931724343641643697744662568784937000154531813996177785335313532462999779243361661527142244094991633546082823186395307444454560417251084099186918089091936076471749972552088331472888265383600959956091000220469657179839086176818414727451008370545389045883195873388864549601961565511420837579566922632166708920708899813913197456283284436693614307275359736879644948347706437267224844976097839759926719549806422864551080438748371685088741015281469435630223086866535628346349330429134395288923315193465966961459897481122519494419194170464208216808223567590993426166043371590484134411241818820736042864204851013211530886750407364707476194254042132239263433638735131701976222233444733838710894843729623320415798170973101840737463040990322726581162178557825873255652799127715166002406466784936650275085822305962003838391331439509274343076520612738124572077973729455294993205287644404222529851924366283681617443829013976855460937582307555001779107104901669936833346062616662706901414307506470570508261606982811273117235007724876241372432490030796752356507375472546452140587055460843250773489297821123838015384688233078388983678707334736697349144811283835648398352267741246446056347428133752728091701293874137620763905859064970061624148894641176254679928510114676814050374914625298899891061230904892000808366457892491675184272118516360538391760829812706973649339298443911008726939449402092568725087800307919488822721458130707673652539934057676156551759142721195861850929391737960754045497884529439771225098248178584166883717094733962034391183167446320322055238788910184878220685738730642738017662769727320818196808346164540613178537550676623888976336873996696073910188419468935674592806580823516945640476801854626083272473984582846941090614678006122357945810211592287856928166017116143603174285341107707173762079060109184646929150597500633367755034130057284310183762641094557718226132536307733079992902271128492492259790276261070162202769632938237993525311967827914404982595687685383142775943728593334309598327299473695098984466244401426010916626997619637596147049921558052822650170993026822450087796357724025582882986931225578219440697413697214227069856327615914875441369708020826415496201007546487079709898629036445075869622405670363524777297760712881373608224919703155803588995830807678100297117527566506717525667697796451514758734592957726235401746465618982947340110613387118041296433834403443082640689734315695594851622509827872769995097009177822167295559856489111282723003795546258365949071172621865157794128056397707405078998834040063665456652935141993297784184908691122802798226963658183924395926616450086738229058418044103304720142316231423699885619314099889311305476952217440834529130257074577861679954300330714716056324203481487030071602316145490136751550894497537410915059199047411124672500848367011052327626927925233417087301170045615608433861564405481372329440010773418754099612063139811230067600299601663766497136872582142022647703553066110921097984336616160216432764535581650621211124378872427705963396754154804138146657338964739305657342179590527989725236490797163574794589661608483065397588547264820894097125030623931013244884677056187408610255143347864898302875190199784172052826358748690343164733619220017132043043327312157709262998713322212602078312803079165963922781272502062146607714424579015968664570872746904764362008102395063773336803960931773639135522286995559384304356859140701113713982950414699142660699014687141488724882993243273357500881222102381464925545628380861948407022744134728203677729856129924953001210374993049309008813096917324704550718438527895743091710719311190309579128722647892197446923880109217267644127416044397960627780178314091910406932806559530844769234202976117887939375347689525927848744262187935930042252288971530426244895834024443382274520389742666830680760275213774436618856198768657861985631555345756690740516691559910708415029754164962642769144481950571863248776935447624792666269955236193099322098810910007870385394239757238814545074995471338519649506896811554863960836360088581118876802040967221651972955485978156359381566760258927049230118729546174831109910740616375804363624189083623905016673492057427255134241417405465690812089852350820940573992351736129073912524458724651192398488217377242531675045965773560465655153406384241160630407137177602230013447546969742896299032557766613505458397483578451421806802039959367767959498429244750724250623143267105505815526125601500521288193185686071890089236815430792064671379431531245814042199833017222204415843201396706526113956319812800849432165672005221840341427391957123389019212449125567587856621717115069563116247189751523829834393988315713686621217749574094152764930732553530111424804074964914917207657293429033853178551613272162655972300462626066901986892828455515064189296281959877226393696893720132527556957422687487256248882454646507188636018273320785638581911970380622266974812695433665872460641757965010299778924555199882798088796640491777243161601793085395563671191866647933189007653357863833276798644410386848787795382724014950342607333329180393072808759534654428092796541435233835317399441988656753063696704004553127076990912762345568032592448280589293407109922903624078249338975046382958122422477386460281455952919366972655079272198869043659901337680512614793179716340383511856716109545406449147221681289269343365697921657828101007893197205205458247459840205177636820860107713731012626270403448617793007517823928358033052533057712540165295450142607870769586524905362476904422466694748714839451428933870243488490133748457498056112142547961030637926934682507631636369838268436538936043517950080499835517913842073694202785013533958208830098446652496417311138464373257130709208471792537519185855255790974254973228872322332935188355874360945624893512127189797838589397633092646730642540498772393543884614995983764748286145308846662566815555500193410019904480593927557164997756611587839333197814153991155949586655066239731501636251839322475085337318134420106627955881925234617881977715148006910956510788962607325434826200668453306419119294815749592502550968264674156552220388405048711564727620222574718988083477231133387312224347729296131231617572671852735156241031934290724997247611696319779108844226397139782949734444170153766979144092532196239842137128783696394078450179591096047705373089157473499507515676148675011255101835352394881036703512529434460960101024322418622434136083142394377051368023596541799479034104995859116665269968897957635350771156032769734336203319316326083816840600601308664416257526817737299744259649364875379200797140964961679286807043956234939413047005608249276219759433002576629453680228838429849566818755299192254146574551096885430113337172375840051131392609600134608553039516566695177518212960348982765438339751271282891394016421052382966768337504190709884360843532494790439381444154356174110971772511814647083099549641748409944839610997691296001861136300569570273171308806822583469726465413617032567805579701582913792796692236892527783610991389803827131259245914313965652185951140880828012947636205731084466944547248147513132374711550977147076961681617541147580020472826335696811743888480691681368944115506984758998504081967133199674800161431048504749994653014294727938451005691261431493519078080033724988466206344232898959845059542005064680793828977166822416569873845038875788275487318823562852626058538991397730611388273212239868543424786375725459579378287430184478475423734860988062329837606260156096482796111629015253862968827092735430620280149737004419769124382441295084527822996967096681842756593989307351167705295271950572481620513967573774391502001578136486112355031097285815596008546264276410026187926118089330292366617600952951172804716524784323347973967033812464336597883078313200179614408205150515667818587330014025030532927163837554755973611593147980199096226838125984580434622372648100067879863135780261668728410859168849603032899832401296615004562838352057288727161587074167499784735929491807456209126722369694416109291997840404695185591246273280357390122875337103285840812838295251594809689782577628982611370871421742548863135500539516527655767821256008523764666293327774373617990576350226050450159560125661210877919073370463653122507136068483983905384845669035401778578251475041582364998907800736405634569806700235460111316475807896660763387425214539103206994801613744869048154801151875221599854320781602117602760358258252173776405135221802033740812534967368656271196350856929415326455855960893389481052625500461069406528527661525466867986267296114731248083892604016718459232863784253964772828356530476287942667511623054773902294275859082622912693473524942766740922775147833240521018611292127511834166573158162596434926829143725688257122074932055285195783513158711354243119616891502880749985467291367562776667116366525795753245162082501374486065926906785696521149398981531203376586764443689302535952653860476737152226020470715646454281125555633977997839861671095379417087652576339718995794317292838352958113557461308443770895336867603831356546644118979630406258568495407186732936072667989160178686111170199126905780328180741339591916347705553883924621228607330286084659759156175022312319768824684656917295136427522913567234600723402919329761647077762995137366343265147844201518759919273837565034001862550967020917872320567652385512660173431561513084314933712554285313241711710082556754947811123160094934735060233212331657593135785435902605352828760398405703306125421896421172887503537993846956048600981471153161687075138435787315436009989832500281552809399937655516608617600683596889228391143170577546390910409290146527618936479032047093141624133250985194870198810369531870875706398962610073753792362567364848375700133240978298427779397926105415904745398913977431302325854482735143694849734670197125413346648277380492052298661858246643125407178811273203354509327624536896737608279343204270879495112860233900920675625489464772432332007785731265769064850826361660597272087080734281593898030591466402656966131943789565264173460179368805256903982079057766411642891113845692776388729211848782527965570238735983411252572866203719626780234073725017566036124091177812208023549322329809477795572556642366933074913218336025296981372423691406935722707899641012278296100179467781986286394303469856709937485800978104069798952926952218591338155562000585766572825623401670636618499865748257557265403548782754458643040745674893590989806458668366824418048890315163946256924030034169327047036025873730643442389660296428896836107276467369945303644385715896319193249522526195356346452956179238507715762095344225233778950703588196890984043588990271302745830889287867564306159493145692946262890394071981008984562902239899519957709951139806358778020717232932360054965383553820656863634784892092617050828010451102081623614028877655496591623795587527018932721491493814142575229826685772747698302207437390915219237664870482136141595827376482110821180243500746251601312137816512046093046259074059780554685678527975185912235933008897898977368145607988885409073292142565546422574850826779240875603991193907495696846350995520984061094801294726674990028825056228117458394107570340366206724314826418240705692436330125929765965241742902475471811863625329886496055600319664949837599862550291145566659876302801985127439063657090466667653608804413741039904180549527111010747114711648607355026314451211029973690215610391039392451437433671361354712903635371087742529252585384319921045714429423635195024004814405187658822670794456133194891347816073300220506521165454071750526459077902521485441250604840926946550122267207084310565203876443770850096806917221834931772956129487666677276102151095942119452432956725311332708169708321091682876415089722235780405792454938744849030376661617110360792575233437022533396066061965012593138029463617592477466055308953016280669961911054171488695954451334213456700875537579143109986653333498771470001205787672884198702001652871106086268171651219367035279390076424956931747545062403274805301873327386561332406597210046097233010353526819875364079106272291847788196693012076397973721571402641051163147204146366883568766237864005470355635399639129909873916137954036854308100008072257896777477672647321211395607312344482824059895481707947680143429764576852534835177498951563834525104553539110568024372811391789531460568288674104066309086984229587732435794760087247478226116521728878950181153477613891696372638268633113838633041605852529631390646748841091276069617197633842998231482302646835858055179695289589615928657170516615242327095309757473267700464731103850019307890154496394370073501451818314210589566300467823175178116340553873218736344435243082760941426282545702218709324415689027439196895056794708095631758435170042467047205490892593894125946549995778435800135140488172888589643544404248079906996235189371827758604729315931335630348445874854906429366280954911354527413243683625925309414648519988553551884291887130763358130510525872630541381193807576897023947626336100033764369085834733020955222947254791623892577207333017245688786738274473368878264715271598041259906622793539967307920132270303091597824091849858803938449891068649864101952362581211314036430994176516201902382529931754405915891575761250958623830586990954053346333546345005600342598592515991823150488167622915894678431800688316183445969235828768304955066188173117378632540001993442157801495760818225282164993704688885343773970791567508646433568798989523092792042168454226540551745536192715971862000708454971698252014417871454420154163202137713095300864938916945608721497486107971192799161601702812105852971654136977244495678871601494129137860394882443532396645260146333625989217132595840437561805861411854399699295889372859074160888658042698899588468250239775402456289326784137549482781035932060022948721129307190781174871208570775537276643276990612670600887646630466871942507783814123761707751253783756013982572209168003923548378737774404588162912233752667524968264385165518319104777797868735940932634993738436341414314079564975419694161064361092320926803341046213768973529885265124099747082710669302327696148465242128186535150296854506450499977557400981240975577675623392226412870150884721967444089269181960149633566346592621722728922822246523201889050369784293767172752594480970249526610550989466469345891252766688164507443275788608558278120261793150935941763317214710514278880808290722551150550116986111049188375384778549096711262604548226541493117691919855357231186736773206965297032355192950254729400666753147758019877507170612368867937728857335231069312600892699811475013936076407905551908990392679745088431564103227970984722023207323149933719455522325272392310812983266822063553010337575757814891909485774623294949471735945641723199663655254267969588415919545849393235202266843118934635340300287871899385655251338934908257063621774039082627720588059077497509216356420834650536332321588204947346853541183193823594616275908238295807049984371709005821845695670933254317544975836427292824153298018504966949432146944168840277739515739123724741552275313751613179296719938011710722529472505489984216546211942040107054253786079035175727081476980396009631929230971318357843018749225269742943157790746807032491455543572559507263294589689516467102887084879512043201259544887528927703105827653419762455633859652135719346630373994512486445038512951331651091611826393328029607946479354826995278423714218112553156769550479443584092236711796958071461846067727074171169844563838384756192562435306742946568864704413917725577986782047791887169139300399283753541654603113896994539100150567446794448155755678101317424790341025535053158200718465352385509667555489150954371203654679012201409741425666145840611134924196088381627103345491950302621646396552192399035151695653447388396316235014885544936051022320299744910670214374470362365691482025878900811122885623719791997572341832392479524530070660763666690234704952026115122743052736579280193096968720425113119518692001711506450875529676547410034422473649633855353362609733025717063042047547576620242161341549484435762461881004738897089661943838938451789200247569831651513637626310153873916853055635395480307793742269431854278967474814046382219514784505675211393400474971322156983917891157172112234711030414169690839836471978122422786406062003854033064487332673380487221636753894377267582558263803632330114401381350746875753927491236977062566188219012776213934741720805960441232811017521347658150512609262666584486010414497491608722203120163432075563013115260919461624449104894382727837817278744015061039996338924269298627417896393929691149470055881579867801063639442682031380376073017843503887374926180028010424016297376038647160955576423409071346899405323238588840808388750486937166201742599163154546187670261569507759763538749499340297979731254931171232394280304555160867601227400774068204906659704254992687801781192321014397621281658280760419305305246503604720720338411201024988806471321458802933136885626003757507977337633399360413405332133465137926294522715027628536127011700278958615635771950967054581743631537816654553483311739215499422899553876462622435371328767501989386051881306729493200270407358437038899301310729812735726578945128662867122904859364316532562154505128082159715433005056476591565032568097177127804333320216944725067649445145431118806962598729902988344779090552817874900210637326809052630184756337718802787657566769035383879605077327972120634642807529169136199502842660752523364801446300330506157309458036841392563109677774223130942481986748779823404142418714320183842207952321708722762938366301585381964380523437410643607593789922814698543751020013389391055003796355122381770906009771303005972535123256216955849619467583850468180668877286131774125324197653448920327119864288566857810326532626008000379551243950940735538232688910669893775859341103824659130414618237680017055813777417529604864195136182365326246084283918236720266958158713270809612698047080535679959710854748416547954236697371332515362071103690840319264212036914285936589733765053569208846439876356050388479591923897220197209421506078882972121995096718076989042129031268306180169259478848595683471729382758279117444785095667635799325565959822046822712598162405483785233199250951437666015308203343398098563653167969917087979951878482849540511990847784855310227574772135106929148908880253005828832885272041519396741839989046344129907094655436804631072125267903452460791542892261302542036220286247823212151574520772649275347198610062918026676619573187435097331315023408755304119974826679884840793103150842100995086960673838162505945141979552698896974795604373645575261824833164019810727789779180243991104010400544202517218780926495157605110901554447719111657447893813558992708107959305694582174406937448728321167101880683609692877697019939655547910960139116794295729985683016358548017928112898755909804290863251159631541358260650004077097996395027899954656201497652820883874863335247247053811131870304938570490030327211887103120977524687773701122082440037592724532959934023333885163200974463408011465664728543913186382145466749319037324742096810953011517783254688640319713082698270338213384321065914684290542313772958251028421293791286185541479855773250156772127177044574799612873187716574292765584727531005501497481979107930822997078452709379669520628570286507364118018513877100624517677578524526078095964855039679602512420066327012561131136048217373608627702625447323945140785769470919388875359745903002656046204836609668414708888646153268082111333174464388490335455221516116738258512940011595065799159181885745523690637507923299989252159827558639891073451949296666454267606967887326921821733968619439339489548673244245241559045215027387964521365882637431349305009004460643223687399596633443830960129697523059161214045327373807232199248022388521018430892567159826698147816190291594613360379040954100250376608497458558015455642470055754695676720873671590093567028923184556026042621730841150674491718218547177758667873086541060029717001072261881363393375400029598658565214139654182898148576999828280563084852745293837377982630932428628498115935260050789289895166755360033422292983708418859350924568116234734731818878979301796345667368719209495004304871398017966252749629543309398324964121005564572692514195462812723600911058901825735363586423294359370734284041205736391723081928204534376670395522930294979216450973161093742454202637414295197637249452390360601324041085242648457486105164211028353191184914560775595478888518735699153152397703524442031881791351750735734171238136052411312829020835647820427348913108417248796306549124500239939695084704822140637073634088123573259271473147105989266347951813715143637194290294213371363086040434093761043562827761628047837427564312041874922473721189225157125956215917543252312679096563273718113003860176061539385855433749054671144698515872041244588626163241262781100100319603545467044108748381341168194982554715944774442064033312574103314363908122391092435110952214158941018234400120477218111967578681066294423075130570725938289270048356797626606536263733455887881402975248231939100098943877284414370522661365548846190360910249183165392018630715217551926269159117572041172243173491279831458763504908548141719110456000540282395907243236258808804916859178713157751141904216035967810106749138901068850245009625072504358972403699438706858641310519858709293825180182064486596189192252584272412406609291085889980467636039521511802864244342690124735341969628895141779858503811636585342617017025898583139862967719344085801418103238250868572033508350910151727307546954283918652111473293845942513945636678479083224760186692201696205362461224948911934152863473323836370987524309979844473896934667273887833253471123691123363001668490139675919297072420391489806217550930900581212756024607864176732822224289041881287974539420348893635898135535091692466332856940376383915924373911847240612472621832682348617201332723827091893999091913311353977383201206805077409514821317232377865004779893088970558532808090616963846254825337990930260120939644224973154211901212164750618486192413667002988819913887152523601428326347419527316721706631893546725855794056317805358770454825157650553790831478238833756974122928722589270788140241389280355048358222156814369081244176469918466884730850745198352188130504335071940071038186139098014255560279619532314408100947087172235288894582829418461122626663384278946017122838881699726638884050730902497160316006688049264017742626185042894712382520270121684971181287576959128786067625454172030786543682845213190563847901319640663142171265389058000095063108398244359196217335947141813401375902962509793431779391651378467480811544467559951557957442829129014743211256969483927255090521469119034245167453929074080425699348825858410950887606460607265670812520875362227168537745541506361857939353239021533041548425367362599170739021280448330176405699488499093729343445877085074968815809818326837546522205680283431536944269413535806242096156151820501540157384206448867037004928532722243251443077233124662669674488209590723513309089454768143255368295767830685071472383032405286922284171086833723032147977697919039533888614971354851886643999631177980301497620382525835837444785458048531431575301187943520180184569092142317738080398942320136997973567800874477276947451552854733467109859351093884176958106849423544981382772107648670158704550140189512937681127484318205274851455616839947810712198945125120832818754730995519932441556061364839536961444674640948486226959250717906875324486217016627977176298913333514593388725616011371611895739077098789304372641583949766738660397658744387408330180071208628320231549949900532938009891331563877063925047437882100799926882769101006761405869892162460297641653797947168029513056924431198595382188257508780563229285607311852936115583544363904000294129609873574262828221142953999158854233432449184895543555266319231782137858036348169852011291725336360072079927420816470976364934563958457684436539044489723506528826694789271383983343445922120697424797422065652661299810332384849565762250959305772026286825940021161336120133654042242483657548602630081718268528439300776796005814000870346663489871603112897689385898235815938903018674366460429320858652695243143919035189196732591962783449662488022041487868853606300509145943390779883600338252304024361858022640643722843588428977328411939129872577456859046953575727379937905533598630503102917736827835755470841727758669987922912045733569628467147391620380384752824191376185825457617055821956316139438820957670217895755530099737984122967411323635869948740125196458100395037543844061470766527153362055894953722934713903818401444276139874571678035017387176395580378505900950473465373597790235304026983644038686288002282439922932063381653712760143422081589057334315877439492689351874749085485973027221478610857091586312675667389848021683544913318889860497457786492040303998238003389421474862259568368500604691976704961660592292354299840311846363645782885610390355759098278714521545540228557486705797975829552029700271387493865678252341561412404605635769436572313084317650695904876192952152296497126210618266613751911911641687078354709654033402446656403581203535684073425331923690858166610004129361709533015782145539219384790997872733232705159912132686563571911653626359045296973824275296112652075691169727572936329247827703080494024747252992767846386746041124283582693436655271729128174543637173835575392332405115244162513239205606540945192505337702260442537304168532477351921936798276110489738673528776831178583721815860227990662299004419862991259776550004920157810086885926923269395240229103149639337367534218927539828147311795012020716131509781009325250196374588072494083978888098864140748392642197726775325487348073100278928170243255396339676397419698371930722979751130712819755095107712988716077337734179664424294456194518297244111051912975337017989834722057088671532556619896153874448096387880670584251560412063411651941206101806614935139649146824296246502512095055239142699473166651108140138678677936046550457091332442606350563294136301240013046578589436001013752442765217778308631048898404076037933489584897471349328103031796768084888813374155240989845214985488889139592826218583236646504070050971815964299582776552199930943001821575178781805447375164694784004638645717478231665099706372085290072105529390400119619790923934069051561671024167594157127080518774820129318072146552549930911335068627263983819720220023785992301480368157430712895834704951209849076403782005100340630681711080954480634149810837745944447681583948958851922420174617342479789166850840571814921876693409330579188226482046462683574365728468140323032828051236922481679222406922807593144908987244564064531377326499486229166345787628500930148108419019156757654579615412952831548972065690006868695742347420597885251885830587568177581469603619752728770092871021936402831257821931071732552614381223644811457736591439357015963015378317550107818258432549501115733220331295164668340585875740164258778649326163678344538454174478273256719499507347097437658983705932202400166942766255454787706976661040784620374403757474782316561869856759200075453921579787308473548439092460452412026124166661646354199707017122332872267759230727160560282951220729029499846009988675741472786055419714458037359395369064762181627214633747007836500749959063831793628469048349266319497669472424296199699432298616653575543838134141583774617195328554688013691944940563621370597278390282801092591707122269015473688233943156167214238141098269352661003705857345800933879276799470840261807164621661913345742255154439811651793432332948128193900396195179451932235468768318195754107645045233341468485400869470002072371520623582611972324619151608266775501037237490873895790580785897284026370168957505644863229225788747452884066418030864599175943242044701643458065472149013937886230116476711067804517209355796759078659871365074942539102284789488519203009883951564732679213265150620150897284517474323869505595130232623377693002027069582127970990658030414193429274585668862982279507078795791318976965117172248778814413869712393956335732420925697998857796724408442846215599412285986350763664079936270408813661847728906480733692215425292011864302542528498246928859411491759786701206691556659313511135712859347594162055732294508398529683714227252381666661639879622214790305305551928421086642577449082989143856111659813670989808035714124956763375496326079775078084179070284030874233978985133881098020231279628474505973607108774205228695205670193606301481612134015658997242935348674110204882818980068502768118138354708440812860242892492730708541534114449676315096931269863772487607881771847352491699311639847449700094042040032886916893577434065664336084969487988210730226173056251675097643109903888300136361836447719066286242402191410925960523758055584181315809503768770256233281109395496075582822900515196485020217870216957375518980092675204173091730439871740000348483878496024012407445651819629676817143680756029700399339198628514446744026642420975131751307545537132051913631010820224847668964324082547317982540904664524716414385505194116990113213355035492583319361101389012505360441763876180833850197772452499122272664276462009005044283934993190442472992737949066807161799613032543009029428592930686818567517952657935732409984975933266867769015675078800369743834958723378560544415303647733554400555003683740817069646252383302754149010474393327816187926570363195292694559848493034935299418768417946607865858252048946691803325131875802461841082479897244658308986619802982789779070832984761553562452866142250000988438128807131757678367455138870655370044855379480476002794508264798742371917819347720240881230002299356816749058926799464968631060153510705162418340767175035600264354579185857824406791829887385135828958351203089014241246545297976467302330857550891118571175205671109527364280085628328246399276311452562112645525938489146449107057959368852215198867274144271019431892680245471209004999798003400243758956960140601535318656265072302046882529021375655489205834754260405194449298189571732188820780476612723514204762764287156179115977568184495929418466784083837267790831771397761709070672724574279530450386456435446116034044698852919908787956383556226157297096184203628864084871691109326326518016371589700021472102992081969950581701673495914977840120833711444236753568910759252652457421555253871070273335918496979945142249765253096932768035399470946274418763413843851902030175806518462834227072691548118949659537585695970243761298375311039801200083002934471106146060078162846503363685047409077880526760584931272823108742646183954489697228321524204005936864108446130829962950149022766599611699908612214864882170225626963691316629387239650413334927983791273721535935639545580687926528385781519835076054156520551621290598801873660130083387803704630013093604745187550782927638285811730244468752826351273431530798858828360627816694315897261854715505725181319509950389551275818811909457861277034655207876332985383259799347566942174962430732510189611848054233106442632208453057523951355273584133156355473408114665024847514238039246650785367134331707402114245539779354936178929992929860617455546383406331857171174770642856269799823605433764435329192148444213337220911970913857838137450956295030684623542002124845309595237860114483107634252723062755180684771350950594169906684547697796550909317740361192341170824446488963846470149862330513356301503480992723066679785867646590374234567493869460567192980487439193769866030373753620268124756288520839135970987882362914260469735920762122879223330775906898287461519362598732725001916824218049561200889359678669485492707914615870123069080957773353184225463468811934815219755005423530108688931575476050318302120907072670026466189549643298318694475538277382472490381582565882674921475788508009489995695688949992731741858656178306334806749076476162830017836050371900441986196362833670589249390731022306485798355902772186580815860839194771336856839986879975078804568420815679850756277124915756157544455305164236268465317852574779755108058877954274192767608126997949873474595563285284287688400705093153105086167812476436052227241178191394171248618432195313279287488841192745072820298172408694504129502244032099703406658615048207945864251995067151282099002969618609880778874898161513494078310612971967908901343437654795313850372796974666136383033854531961849839076785067035890644980418911382429727187064884481916794031014969663290258811272425676348920093726443067812946240946527414694903311999827257302694077672156477525097775915957964740661139905321294453845560157342360719540567827979514774833318604671502014342128001323907789760391789628978087301454510517323848810158706283884636647928910785494201035295027339292595301129662932621239104247957275270828732053869217837654021059714576474985840509775676115406004233352859387859209380234514648899453849409474173427646659468297092607311126437858629623093116210894090342762034384814816888908766099077501174039290088412185733077977733127436507004859240062635871947577068775701681688505087718159031438653501403030147632660904997642381050345259726464805877938735063141379176956878532276933488107980404722442312759737790635994546570882554136803988300303942809998018751257333305202626036655493943913514299564536429220621267656292732222151092470332121198660244234012218750358359919387122849915391324486805822941560135298280376655739135589883313603502833538632605285434252156784680898943027602423122467813421181511471157464916142249713554971166282354210084040462677946815603021250509533717200119328954943296394827778734655844202306202033873100757691893180809114553917316771156024733884334328019135095839768276749204593954133401389061810539788487349966819011440024944191596188069182228687201228801852747418947629431725704513812039164775129877526510304025081745535009167201053050209490486479798054965187971956002453411675495484465298418383090552537199096051529740703232031459160346933778377204371535966993489245222450745040850755599726839893581493592845724503065885671410080736268008409260965809214457666787159868451827573397602568098260405200869560935174932049893051831179658160593014800490030463913929024412933727828084420786795974895283225104097052223768676430040313519781895849069084525073921045340501547540239363159223479201360817006790375567235048953650771795171429084544783972607781515593342575184512776933110905517394275152881300511293449688399914465864668659886526874234735941998580603119017399698664990564914185109888309527206305845209552277361994546812952827180352843895935977181482974492936615718459027717299256037338914472442901627722790050463936373850090637089199415381401448763255867492101570059767236836428783326149764647851480086908686514192223785454877475384180500039289561285763112496975440494764536587105781831605775827412607395985773974196005901174408286662720256490213989502750130289508741979003665594496717769148487795263778567973958485906845408504689826135194180103076718922943104483612488218458642289285034313295810820085018730514965154193720310679249487953088894482124527406166771430506301444697258740879456883753972827138197412779896141658306251417288389810368719172657652372508949767951468023078665949831847971031459246050290718732659818696925015147299733779904530790618411243757852516216150658506945915190843036060992689791061706421801372703312639956062376610538346216492251434005258011255524765967011972140941470714739600706024954889913373885797373492850674646164795249991331136520336153005095751968537443093211367032336190243110225963240478749730988176832422954858878689690203834193465282812625064784479322992067680436032774068895237323922183880337895022876179452428542637519639279134978916647801039997013739457658666984449105290269761572585211707642438061901878865984990009130653027296955891178349546392817796532304800737765052444781021262412718180623426813589465963879086900185466918426688097586022118613308853475831441372685308148315998202335987124835918783408908518698745843114068373713446194868294903584515654279434379089887412684249270122845156538750136276130205927103562402211182404555738816918836655891620487697866376066617234356468030898783990668087222858305886573785613720921290526234944922342674752793021221493210843400740125436230347321220498209446876240242366005343185521761083703945223006614824760713432468187250270435787796222856228056676106521381243677519103538398571496030235553636789918270740039628820745869435422832302216925821933424811721210546418814452286216462396059596613127675609603458848080165984881649412666257784905181318343948986995981302915725877264419918913207101384724803136857894039136766144019982888860548598761898809419077906153036643578529999127750416152959311221662049828686751816388986539210813636368866236733805103149545277689305106087654646899273639497245211366296338698425832243713052859406509606474807241602773806902720014883053118838124986631421279435160652430036820272150241900178192221620632922092114224001696817619252532952298312331833321245863951713297952083321735335416281009026120158755317314503116749829295751059111508200455845498299485033665227510985939871637098537586244236125566537121505870356057038167035367681353935432838574282859160724028320858861630134081738349465521603796807727022550480592192064079542117949296813610680410091970789582067952347120513340627560196658977089727214854770032393382860085152157245964797794288119100440462186791530982238410623225744262281954077855430347288494610322960986774509812465019036707491371530258012875984640564734546211593674134759696544722668722757480145393071759035609412514621922483289979751600654424665270797845352725882582992509322406489139662966455324561937414186179209536694204465090756102381862028302526769829017261129761456458941346010664606710284266590859904889315244392691531150180920386005786300556197807671201826596157353939288515402909543859891459349552857030297052959244098259233132239870283694081159368624767174655921026952587909828607351289738764318480734360254577826401312195073124129585217604925198629702762006262799682046175384255837497956170993510848051325242999321772647331948789865152208432445459857124465152327085791243871284816307763948664650016667999346505907987254723294803470746587439766573258150181425416543737378293466132204228786497618551864799408799339616863633751370449131664346193801570551756913508134513290882804941475672799174270008998296705419925128309716836454204517237708499190486438647891486654057098041858775346725936838257276613430199569537436340624701508303112242708489545173804678703453449682116226190666192635647480095191860951474470329238132170838566613719118749986286415313251714762912599231859636826314395670383935148847594841897095542689273965503949570489417131931672754417250279775369099059416134341824906269489641608529156836452287859354724104939526791131820555109784331772194083788445495949371451336032072728005954303152137086980626360824744629236598883647802683990205149157714863617286863647912215069251172105967479938196215916479897590185094913978587829789958074214794318857220857882209828438881650817660258517309758289538237108698453897576527075468123495738939133149240029828222032237534934949147230402167555169760511546734736736223628374638476173400447982137430737618740430310105722591080230917407322312210552025048669105855026104407675803383815633255394271265567837835287678745224124634951682375407408345425813074301507126781095943289840282549161214477357195439156863973377728308199323168810118930629837062831040335473414290472524633702085291981263368969096071707507399997194512243316334065762273510197062218802834983558176114809680867791257458366965681380547270475104813986147257431639075953012320958982175442953000169380826995430119062193496442345803753577867862502819938101884475498735618425513613134937163475732222018554035262024959828602370724886674205462531699684481072681221537913366879176827616189045482485049090984058047919551744268792513167315542397351578514708703218583129574374116471798546802099105713236238546173273768027963681755336304942163938103914736248791398349624466071436144624284460562131829358277095511660181061521169177804028071162849675994900165175929223866077621513269016244101105592191047885876635420585727963171293024193609722574350221274878799566951340266989636741659405903781886693156143942495771480456897411938887690132434284803909210464202724594892384316958638782189719842520349519793725879520050205349907469422275801007139847181555744826152212010999333764244720266191737545050098646234544157669045818836213707175561372057433505139229659237809284321144455837973440815081124730324421710043459081966747042972800488918824179435018083394068810598009481118196385281978592586898193990482971652956702440245929939390355166851860259080650873297804384513747789072375510834701457477097218123594071131839483435207272661308306414867882855123486645960753059374895670256072966302736856575447425688523710433921671784502390827229899125624368964655183604569864478552840691858390071668130705120141811919410789319063017776947250659741731023195096755575137362268632971947624644322062164133214246803368005545615441314244825413133003158841485877872546757664131282913796602076123107920441022974998060349897095175049386912898229023176663169585404510235505286507809233557041407040652486299146850811300003871928249015245914293013787343310177992392691237448437637705572074338891889017132949553525183897359606530968991708496224908428447611064023952845185721742649593310989505104676750723702272249462647385889703112110623869418132479094539899597128076549217305119706025519289482651757571129446048373688512023365523205817703555661213467853453430679681431307785844259716224869582970876236068495598193378587950764062779304288486407946003704165861571315233557833365597502490180034768898932877602334443252443674514760953580609465919583447896610124905096454979436407859931856208061960828955676145293943334685516610045911248743095918373192447962277613726410866931696382562670271840794817392396105388329607127119063397232757347470208099862846545691735021394268536832784403283054141114630782566277395920825672633271523185694244621289027667051111465878943614045190025805996484861515568679173924028227380979511198403594935197207142433848551381017048645465667976697385505752741025902866907477123310806261956045479385429997020164464919287815878113030290645443840819925021888396751214486605867292640993218841847567024626709455043621836783494716107854951035994211807828912979168414878357947419358507415642443644386454136310346859681053013937240229957774756835043191683817344198234955352588648944348353453965695424480216927301335732068053589697600935372105774158935905263049343554661194933809236990300267238983887868877568830873414550938187507481154358994752723638728203164127980288797878371118472862552231473326072870589021782965236216551400968816240082055606095449446642024713421742157799740729186976145560428809795353676785937071307050516992369448745411151302024991488864392035188141321491262437043841120747775930473894440285922606646527577306484451657942389465287890749247140212823196387239125993178331454863841710289854737243908398255852823331272048320356091820884885920733223442834950392590202158956363131776042188776437704988492504344026142336277627799988293526336972246387616137100562452962374807895328438753173351227225768067177724206106600368150753071388473160154121622305684376065281585854966242085123662592725458729599150948436120292269217193891218685375833492998213973051258168756261993594205430214868802239832483586218953774242964109766055323466552564997115118010664116203435026050865115103426037200664208289756308520352978214975266656508953779087341251046008743927357458056506303389355881489836126509645338131694811528791660053848375236580460937326493867073978971912634323471627748315803031578862385351407716299660924557238358532180058344393259684062727637118088368218733264812467718395677983784794887023774116423285743468273163963735417044651596944929956674622267593701383649981921470186613965303428735908571110177433997541264011286011081404148270596458173919134611199008408451744609739037289632362837419572221968369891513857777644105441390793093904195171606896652291232450995452861964755056556885683031500633175500409999823914670880024358334315540199080234135047165374676171784019261756536295383346474204519742353787347715081034688615202042915415782046760685435878689499490157537168963008641390924927937407632300000867356225144836246597844646827943557603016727886648443701824205460442610317860203540339382044946228914350674387474073926566863405539110265270772767012898072252492173535573239633445721478543648270092855345986528828608958231348622395122423274102294288311825578514672432795849068345406736846455090743437536543669597380966436069679220431941033502521732998280590548867661180369891429586722738952222111217770051844862356460678515597043559434656432972583955220431198334296269790133842207258782853959329274473914602013554450666076586270234644582788708670998466189387164343070400216117518347269094880497999784948915967022599467163057371106844725784844435744769251138743220895175446692798825091077686577759152744789090554271575684325241662324028770724696405724409618967872008288193757611690496056246026966767369528471899093758183842740833200874365740018498373429172832190419067390591517540780590434215104283010073713388261805384005477544042274963743673106985532710823507118726569755527250747709535451727841214212926023606201816391756100001857883443450013237631181143379492932170459339445227628639699007264514602391793893759743719321447424109968911089637284741165588044879831625245410476646130382259505586066803851751292293670822483230507935582932108952385958266939266731079290901549935793367567181857957842244330525493915622946067298621302604537442024944308324751406580608058630901281463101135175980585478127230212785115762977522503884634481687176579798649483891610713056294901006235428268646045067587306106235054097705711805357996398143588996993080581534163881404453802442229049652256179795295190264631746618565013164253844437237318470170795430113058907319858618312024992734813701680775635917694046540765690306369022270458143503422772240497304786030446596084117299049789908414116778794895551880171912339908339783284552575381266602758351224496986136518332856617289405131234599880615274317694940121897327845403636076182305720388520664921855354300589022247309810173374210269196121526298530538896546207086789221467255798012849449312903395634880631759381097896336224810753794988238763513912440284705562862001048726464344927135004834645375771287059299529415767222381208803449460362924582031200273226028763734427079458317103483952239353581669676524078311453890276546675064025435596915213591193167581716454616859924941242917647840245388365440664352843167076945392741690310009549935368865861009799295954382246055605719053572650168358354395879000944086418879993716217350878492073770901462057763041165481092738469164682983295506515807947747544109378164860013189922007280669918155758193012671933276662081025039468616042013263214765979701277973290043693626502956866098194011212562861028770329169951936628778734802845853921880658367951639458352962158816217879721479294156887258870565431363479487349553284849920108946538406959201470334678393045978741773124637739818737402911977422979384464630839069692640603636280943127532611979352584646441823227996915297727925917182270279195562703784558225406226842786306597405284729656942340068835380893946580678561169043829310495368036596582396287394514868160799905111224607892466858976884493986104279595184866093974405138534128362029322060287635323730981257492124002009156519484047809455294620014670334371585258609820303670174002251788082463817635415633961336506763694205090157061689891058117565067205686396595738642962448304961122920824754540055757385673088856872733226905433962637196340987145382132205240836372951227910968146477351897258564982667631976207653839545172655452070034910361848083826784338091383266279091477277509921704480010191895328032265837779221051818018308065369450428771896440169812318652890052113146823647623189445887357186749564651874124894621330013131286596883166047497661758084512180980283097000303198624479589250612798002901076496476789174939169897089874829893678650284477595491410030766940466978075240827247342151116217478410162126130258906200677144767166685318312887264683564529506395931854907447945908822024518120051555031721471861882108875296526027178786644094984921729135426401759757164466152896093313684280797529495649785798903155612747633314910762611753049393575452367498148043316149190053443357015059591307696279073185192408834410090081758011241520443055024413809257088151223330397961675903733914042508407819957442571731959360538173464949620667632673427594390072778308801539895104640304211996665444193321763497293102865305544629713817520983678710158964651097411383739094201775723697176337704396091450498113756580716689264943034072852228147092846766054701819854568367970977513643479869937194127568563151624289292624998141090193241091631887534872917886759370799783384928872564367266883997549089520402247126147392616150445149363931906833009535237548010755430829820807947110067821700827851679974233192084861097052481604072272913517603642573206536892975143584462711065327708347933280805965534791823143815475523891438958001147575247307742517674049275502280278088965872456613580678629798037445022043966159512635143800165805218656447359688412900396318507197226489038818440302841099877154239601167007503225243254958627764626197704905895174384700333365130936871615610594218769344756529295954125384948763783457727498806356794972731335983399253342589869765207010666017936086644818495951679189842375126062852397010840741345503982071043521948402324877944527746837423910772629184618895165814070194955066244948842614864743130345389935482842588842078746004811190261105929031380717886575532288568996147668633133686903420099951566977631480714807798182018835993937664916695572083713925879426693773263141675874103340302011046333954038014383320442451861652529030025391269476532193236699626414383014054589669273000771440000718192041583256211201840375188852420543933857232425239414807742396714087283614755859757935822560695183991787333656916949873771276468186253101378640309766929597549178047011771217128831407950911664327821870079393469683721020221240530277946999181118520143488785913140358521500767600492326263224636631975446730980100077178107650700364222933253390450785348962948051682642636942444065400675542979701249788493303498695529902154116237897995663199111931072274627603088568738338147055999531904318818805606676885518229744131280740824929860938044801120243588986879559505813851167132533393628662203690420751872244491857684181862970578983368453208871899022896200626471209918406934162107253652341995605737328657266059522083283981912047200995505637602201026477174487102099794394261440337329320441368302080531093402613634669432756230791998278688605777307875547072397315506410270946030309709645410286747428826156925652300818916702636954028866521683784454992903013558282631220467203526077208183618510452673652830630952666040667538355685200831498240428352653485495312058002294390229907024076930035267663179948732175509041595534639855500276614856881725559151465320955373385956885678944496686300360187440239675647949067051371191387001879285288734009518097770503152134230032494054277353677130085376457069486835561340208069396506651470129537993163991439305166256656290808774051790463267402687377353098682291865796705945514348675902554541774783771384393266926721430955031569238529348501559829300120343799742321992628825341944478808474581630445825797068425693575945068895759203778163631390074174546177298841312542907181213667215241250389032972211801304739860330891061466625741460348631350389769126085864676921538804114137908127922046739359595978461708146445105397746467085260180272999253616170094701853507467377832950470119805425619471359537513213698785134120536653143816525179113983008310634890944188296536811119190373340719211557069051038965727957256144215156383861204000314719804990793489378268939495113119012931703436142674694988128220222832655933097802689843710014706083084179503517822222995154389204809210390915396712170337836879280945660239332856305382525351953185364305012862590675789977203221382085144612520889544687703096142611381052855079864889793240517201075091014778966277135152382408539993818453700999258418006034377505383771250828895578587868562362665561663208664380497175961614305851244858485386147739389526261505190880584156915138622391347028634453405304214263282741546047698411460707964079694272756218642190413376504103418849765232982768714970537776105489206553518565352857103895711198387333759377327371447102407080869033909546141199641114614186605388686821309601801868389951083506795149736806921458209356790137273677880752077169025731729938271836762128744619079933259184371375067604750681745456508858696447314420782567114432242700538927687368766753580971826757129351361473552694844724088979580122641776506850774378803462929102357613854051476778701201942864952743539847174165414264096222143704152001010990047550670668169813375708934198978996145016360663382315935937028827013351200316247383326650555055283249884010462011419435230491090298248129001478844214935584021443603229157929027442630785813485313556204433428563358019950582230928780050380243225839602397332213670254863346331886740831615136051385205916072132235877734769509035250907183137604295927302988261243578442697941378226868527082117872791683494648795833599567255852676877498602790202501306055049664372024671516638610983947724001371052197293738543384138036100877965547727659920718626337180319280382775422072041044483834528472953080247897693977446119436289563020899262056117168657031418467740967348522457698383734932183820405949760104194023737338406894322983094057157867657467475445695463042429405264905512559109176835026946951096940461354373644501647390899668682339754671681414684335717200298982166379382501491397124225220336782289577568192014746404769659149942007798030531410678560477599473088020205652605538329466522706333960647863292070530415432111751647426167999283156093115485675532310691133972489388542845307288080775333222091379717821247749765355476382287885739400810817767069864825123220443744057780570034943821739334409567641101718627544635472247159852179041972499761793637968316544996050343033090986088707072702742187489688794046513838421914814742050633355783110837045682485549896113629434091894110959223166045504838544829565044127522480650863586176527508122626597402270463869830839465788784174229787195657257968664926076803403281040458850038207037009615247030999009475377220914173744082297003750049793580453828537883147194469632540100141743543111607740917219851079455722212990610397618698925117102889682788603927730951630170057396387434596522275098262209199189688912649689295823862477037313944284115019889091660417329650878665557278977984187247397745570096604801186760920582777518921152986851916711951383856234908166714292039447972446361406869136018988554585121652727979452248584595496091680820082556025880009455733421951372444833535714336952001865618619344520560923224278010378188096852261500431988667076080246860597105309923196298509497965636376330784015970504832054322943523799197660908844275763615879822047549068301399820500414992629080252913667396178208824442586586477545190227920949108216710702441305476447187670388671682405833206472666552262104348137540844783115519039276669929271577664111002847213805301847193460726712345865428699046687880249365755699512911235871470105006016945300147144818343260474169643112883741455852050769626451740172351820488298311194033369174837779124703506795921512090734047160393244677892480770180460472949892508061651901807591834224899099460571988920562833675523388647827162816323862535994519618253223157603926141804378286588840662049645622707909874149257356538802390557635165783913261687397632342020826538517555870526468070865321818390442899027361853053631233200498371425976725178694469622117510912024722623978664520113784887681149139441803271674947436888172645965318290828929196800917964705394498602159000701739132575215039713286502871784316760539861039096848309522788503817003173949809072484217598051693425445685252553958397922915030428011143097492183102503168289682247283542039629947708669080730411235618773337796877729046860278474218072599248769470181956276419851440742567400152722647546759140178310430437191123748750673233328420953149465842113213091239084069774580662002820927952899275103572008180086596946367919814272304537450024410589310533871452537008975808454987296050262151724005556825626189250207306915883992753153666780893781161769421228183808902415570402186232808344343743872017298405098352260674560799452506919865118602694246657331451673797831945649653717365944524286505989254737802878343145378972293374086700779080915790816403598880882915253001511996127581964773669392360146893758687001563799932298379861660509696978926518908690005891519022117925703118533583979076007548664446106385667359668454218330739090515921406791235894945952114876507731808180208055811455598267129895479286129020180065920811796844001441903513405047529909721028900472091814546831038943001986257939130280569455679467118617250909548734660498045626358889650280567455968277761684940723745463890891333492702709265474721766416780576435724922828506671361021385510370356491414366003730396259635948206831397910421102793394827077090489674037423015491609584787761329702442742327398715284491434631325387129030687574459046638213314006562803394390562519924317508429611191579074592337722724746104700018906788519079013101068753076645926889505224818907074038525554089002063634807205703543120174354145788648331843941652856342033343196503459815758641151064187915610152465721415017753725578450395567067541830198391585974959373198107138884934864017975784154394353089588787349242911188364800721650816214936163347055751729231813274172185965075716721080129329113208455440254840901940235390194554493352294872774300475893905949299163502225241633383963996577944814427429451401269117107822111277875052090842739714416838805203176375610198265293129821640861116250784668649133787833096024933412921965547340901788925618700362311455436014540874470376415715952686406446799185278853421915887032185825163084629312122406445908405314362365622303981570897766614677190374531696446849416231253954245626649135431215355759979430290049525152174776792947559290615390034963664189894143781329190525724770441703072853971576260495224698389457793797108548320785761324056391051395719083827582136894691271471886533455335258979304813777013039410423184034182608790562014600774449280062785913485893237265887146023624926637164513184672487093181605442752441326168761836566816240936622234010037027005888572854850142489318951345570672487630979366736233695742579114782423765269626041290306417638762426085218265927274589061711895946360393482123495528618545048893551496176294958725752603855843600264167920983689411337939401955171685687708777661835737193976695976649589245668506118861857826401630158480795322640853398396751950000715535276532582356963444785429904163585068457169707134985017433366935601369432628942564723028445510458321195542484539280057106889893451563559567900994671926716122253022009125592998133939779444122320493523471249450041060234982872615170170783655997990051499626371421577141452100959438569908613181081233941724562538088531018724395268839076275974521700188091856734435647249651226898679853994763728975226533967002329666881480241698046380087441348239472619406693807165452557889150108355465468226634306028895521368197908381581645149043985118886542063276805972518470269534047816435966275968344863650310844149984512669643493134821332270916158246859091634023900741347758754174123000042916970557226371412549258773653366095208748822407978567260498740436473493464709321965443664582966165430854126707851453075373604171973815586079756759423206498363221333276990597003552103245577040559642144426562615680714066857557653449993589420092713049617833685516055989693261620421186999750055671984295446180301777978778991588017304818843082216032758668093649110657547745648034895963781776551523109597594871946525193089264040986155613570609350116330583994471031710215277586545162132309901533364399491099189682637099823977140244631818022359313896411244655159600146047812694407103704743841900873061820954468564238579422427680041108383338823739951407348644595032013696979971084367667979958473367935658340134781470541245932005076932739440854691632995402568713586300271322827486172224474121195475144771694348521847188131448986472350328740734021852834475036637122771638120104903873798525935516627073300931020010931390678292728809499012530024622222793267520153679724126758100050261311026400170235536402678450837445138979469017790328025490327606627807155349125629486595466368451591790480861092023675871224977838730287365818264737787746703317704142544308689545178106485036850687115609612780953260545374026308977650814685005818319268773500986872128870918918020880988499931758728656629241980339554933114543861813302876817641458834244384576951677152370965649349953290938652035915246132843265138877167538226383805916357738197294351356206371101931742356510318795362974775401368768850593140446602241592239901169079617336848976256167642208807951253371367443337180314329699795805290453484026668109832430014570284053683579383637843703567252888415396109041796223475541566047435769704862902152076348594149602015452356480364753838197818094139478432614638251159237763315382172643434112076659777906836030821764992333770751193550566432324287732976624971034853813096757454442393299273574987434643262938504901258187477634969178048455966680300218671205422467873213659367455450390298470872277930063908188377699063357549801053086955912263457071374475757393704794420117292953830314838274185868557526684164955418161403360683073155997016360284387413547499186612157157385886044514575558417294180381166272289175242154296250520924252274533599841083138489536958936608700557231825050213154436905180396358567973473098207640651516287098588524247801623719255146766257222152647821842234965682268056149100837223469551411154130978003875441629615079278184264859719833274819515738260773910987823234093319802422384325567327695291063502041671626024257604007416912264241744542374013784479990464050999800075396976002777736278958358531435863727452114269740710769655595912243071314189822689764252327205689731696236737186615398125680070294777673153762773122282021812838072448699552714861441605641928538889025601637907841909525007587981997330777560861839397865684242700990828705221916656365215759884447897117464772740237453517898190668940337714616713922655879829910160743401747946825597276619572690415691817808592231921226692360200602520141944755221563858871888796462605627405014540127220753164678777682509797903195486602119418387135059633920826564273141601657740634968388566929217423362904976445914150843972829964772914948302065569228981316207404416410071253258424273224540546359713118927033755769954108866177077499039566189907645300439051719278827665366121474334302249708583479773311361066194065473699524937459639215335822733942926718530239659126428332523067485671108926586208006946366957397585360576599667446556501655648186285914616038315802172147778368591821899479087561995120367665814647425761432421621223769417300432071799083760044557587048669914718431620856936387601150956191823061245168812020631093968536533303943872863818067911444012393849166216499716007017876409592099966754390817166850970714178470318416968103392905073185057002421863758399697953204301148302542653729702819426871033613320379718433893193698246158659739331187670587226254795417397280962488446625607474786007692971465632482113346786389272290819423768967117869296225174607999968790680604966260593827261863249341398519427691800696021275298497153489514574822974633589113588847576976051447368790604482356710161516577699285572028873842006949711480211725709800456579272368504019179402501597340093019878708909552489602299121491203503124830280078766097150293243531448373585746229521248986976000608277091737309758433744974193954783453674362566465965874963261691881676946520847923198675998419877443819212326680002173956756615806728254149619565516220423252496979022990758660051420039373470619364537126685590334607815048719485825612674661210569666986083379223297056076883871164253431734240728913970760428430590508937659691105627457643180996821572420709209707535981270860037612400668850100732392105571608477762051090706474158358406814559818689351117817914445564560620524873246973310976811203565068951885418527986855198329408475169294429757776838654940643758852645423878872259838635828445628441616059835792660596455922063572287532288411488011691090774694276629617083339426118713713805476580667258116260976159157544290197190744152290084851101593477515628268232076748189500359743121696547216415481633855021401122442276956121414695994855901283643322697350673754030256083426545561084312274309528454420049055935109270841999300063635906756341281068115586612269386964800345831940752716812810108381867274170866121888801956679616247715578767935129415667037446776026010454749861464269822172615083840228512957902521303104541507999452261342057321992410120904617550891359331160928143279926870739160925914065533447228241746675085224007480729649894733959196229632093690655999410412393632960411920844154517013920419191975747391744417759046305027113672492838089949776167061384522347422180739314860494081240233359928005151630454599894620843739353811972247674537746627368235259420648517126051136989298998344910238449564533715130308907593534129474537988483928485667470587058750793917595075173344374894700193669077860045789090073408498998164592374517858684409461214906490680403501414615436469530145010785581113272781782401277835916735862113079846099900379438993911404701814918105084222761202243667205215293005076284098679990531743169755325288338972057335424867734310592568257177070534990018082325041723661248645935197119768938447178273235758363190732074067114794534149987328918300862215738305572208401693618060792915302230143349242585221575776235552443443327693999863375707306855802949514014613403435248258869423612881133788237901051062662862841496021738879275478642347874378824854581041747756069471295546164427182674358926420856136134222770328342113557750020469916600460140546333797010019190076010620594901093092970649465853868219204594195741643816276761369476603793795798718068581900376100775059076256924665171163837516027714465915327873792632037705413716337942072428896482800491071576779354325502835850416544379683159826127646420742974945519842870524264212589504989277017112592218019740641163413506901184911880551705103563533429197852829036335740031274422545164572430449513354915090245092806076474786984170185170590195891529642864376596731626125497409929745444179373875760366666799036146434686693563308195197495314220958347431889314139444225208179461632644716605085762105384766862162668144312809742526353020059395337793703086323965888724556375037823891663193790283782482992288325410710107446080281100777010182970906337436720528023536391965459321836423197893118309677762410766056591263616199716558909626472492235907104785049457749562956407255458331464492585094551932054137797851629682910841602353467223437844286769561773207255343926214814323365460607326839216000013444027148908446516151437464765400217415575024032413544873395481198641144162179096821762413482864289446853119413087983379670702780322473345324851328180778144500506199539233760840497802469767443332017365710298523340804633906345288731879814260074374664857835216530697713507676582725189784992910597859445780373240226378131132695408068929297379285750047069333117107997291129868455327120935931132621353536465662999010565720964068901776133564119770710429208599398543529685717775423145911601981718006189065772335520764319567511711087208515365878161252999453752673167050831185832050715184959228947932222925281262931949713477471550160487941711796789998144969202791273498409650167511476100808268520531365403891549798626482416744964495016978304216553904024085413999124401107945660801477232992854489935217756284163549016205047562604827282111730343154350887264805639224641231130196666662042594256941087632439366598388327691413528547610501750421028679310693033739352185457486218108260831271918209927895963810289069545740545749146579561092432317642800198411504172587402217585140870039896958477880057741114735358405820337166529846909846408245908540558214920791299712844516819205842677532821960180075994359024903471956300637647568177098096108426057366046984546794699649532399350471109948620974400487861650904931024880247628917015163264919188331598742772031072506803232423774440538149657391133655320753098414146232197427177104672318878186586125957125817386781898935456620832359099579705489605242410304378839999160886655627988023312593663822036812770160207904284125795217710054954161372846359243548569308692115034951644046027695364823397074013500728741389514821179444885273461740643324431347495601315646108478081723868556556315830967956933971054662455409441093239084817153998818402538624420457927459604817511556108303760398417811943692223790727026900482653146962193685795923532647753213142618447911384336501859131176912778684120581842865517860475457063948964500322329053494093571889563449976015650387350217797634096144100587628002011251866596347486127150629632005993279279942424322104180113995962109254718042648015776775428297425627651616052654771247330590007527315741288246792445887447053954934291263484517670549068073223864121354673386844843725390654882390208541170999022788640749495483417740518710192370876616408007053616244170242873922810814525158222567306398380365516960354546820168265967185583728180384461406058590562837445739697517477988910642599890579295968563336996271401485126334051079156194831931262516825388164455267016486183357226580910463248006988033631712923506764259171614190834983831548820107353405738630188642946626784471465558720487297804694189743106742630644105384963439405123121783661580373594628591864795098801181869171268059766258830311470321296291519828469694490399095511792361186477930694916892141513282278815561205427207088913098533418666860003663223559247535457261271506905445924325883504011344753683416151580854003774943989189118172775512123198248194517233011202017253775123375049036016422991261582377651407089922430103183040450224566813066515301389949037342622093081873691390164075814129118903132662136647097217375057753796271086678152708262674497466926937112469426952970227952615069063186169214805860651814867149953679685233357937069170335350272409640688128295892247686827483960608708127566213598168063697897891574185473856718008609847653637940764159707737291007110103529098963451461251273893868645689301054641813376115485025245778868029277048777274267812604661183708141454652066130651916378836667686723833388031409408308643915661318800524035701133590182327263511931573875651077632375941320900864146821429691634794611194700531201312038819879053893267505133785620944146940231138314862619470276382905857702593629802080373414355807568960107359520290466853367629232552866960350227285730068198643977591533893695622444638793161016126326962193894442728743350088738329654634390223027718883330278218399153809874763641506281683303866656347243573348619360603168346994047538280949866491765291297831848055296913742749766658024375822258284434651616986497649138852957899605122582569692560325778559420610030524386818961854566619155319054329386677990139755334190909231691479339126078955847494644766381554217862860603068818118554480131807142826572060475119961504018189874580806894826124880160998407795350845250146606979213807708102420977364413966974057028894458133810969976447149999023732163018068419021141649117089308996104677380745897948597408165610828991494960968950298290137567191838327365238088416552666922977248135907284876983402221284864335745231390275448759949345121613996716628170051172783837452105383222340282499570508936769468580713182877734908029074722162239454578215802311720294410177976015432094437792839434526081317312937774477880930498574412822897542788480140971690045998921137467539963251335827289917603796989531943141192994866513534880795181837909870370034881253658188137989704864141405797957188391115568827454879778282777592319667228224180973634388992923154435904034919397240616910008986489066601744595805684763151008104806410439513629564779069385827384592340415553420560775261856677942496960108152406751249339224011439136510500926375928902047107495270119268740099042351485580155488314549914366209758922542659488116792609496453620671758854950955802151775201352929612051969635756718809792986393931100351158021475562276069126151881097838769385564755962212034628144735822154182049998611970587759160412357431348437134506750816408871510635025237957417706159114738120648043723635232476788029450673170584232823956251153909318283622688308322076718602170508263031762148436783436737175369129265953142877736656433949929884979000510335602795466043965853805090860799331535914145069573325050158891746056700509939579579421738699194348690141356020773537034074591269976088974013674534803616341306206066813625200975867052487871496041985170345944378440725424867610081117234225022839415108868698380922993820706382766526074994142775463121861666147392798875875618412370365434081797216184775319979890244537405817836994859870780691114256236958154178609432625746909108288144373964223749009148948251548250139847959041286472734738410551445512023510922573343553665855208027441622473553081192838885600198735218719353557102904759443097076732735516187522382261524571516145365303359403812087100300085259608053580579078258869788371153595007630307376981299151455261966797466791148844167934070163249147684051170527416441012059197016250813913108984704619650782146810552983411493783411040153672342812613652587627797798350557403898582013564075177856300682189490565337926329170268145684559587597059831653415170890506930456577598589394469562073256877757187227103112737459208782369583584065625273834349712674994453355357734100011173615114814565123051237851079696954070240297628302998823811983668190032661490482228944947077028992569982088798593798749519282897619826754678562955946457693001844222070508793852002085773522079507816071208605678142434765626249104775754922153342333197794325797432690161001800203092098276374816612711012744510497040874162180036834443901193585616936677975347359244871166396153740364168151646538140780966408203071333236111259209873609975704249927570399215018494886610614228304407318147926986314255636194797369435427776913577576354633537490981072907345521491325199983736716642675326500446332268598960305466385937263857351310458227578056231380886096873359540339431335449032274145480760171410807437462987633934749513100657866926355064026927779704890472968820821304721564809055573776641042629171745308626290919234878223547135267302610140807102326572046322108347765097453457611069881731280645066553859767354966425862246214480551105702860532894760115761678944974956498048014252057857870132729916945220697881460700872559118624117352469386111046493051373094140529530799603331365268390007745259430307986490416440278857618596101789873478789189177726591977106404115787907901217810226258976091670270775359263851227537607922664372545395810385430761611500974826147207536062478405262729977587448020524396727698448080919799994943787872230634793466208592120364138895351041030423723404700255464779523166483972386692564054264285424413264341633806703705826836400031819256676683005583448102554387016107447387014901022701651741888150240000349812284223880930843450377198434706489703374587605670477006841972182793330861135125539758620928625192685475086136387041022908964861730430087930118750077102302939616364524061609097432284011444550029222351723544318219874282255403480460707311278966497635116855203134218271387623388616274493357554693463641401223258562300348825467017145504462700129651773725037942671666975338566040526492823527330567225143140891888902795385425997413085809379451971561346252444233188923841330417256496946635893692605930487916971831022067341116132917990613853348426725344007102587858675573622651150677233564147377978556674976852041425363427888323810652131364898169093888040843616385368880418699032446722463054423306086457194797085842139134310038626741911435196871097967372011086199820368291748398400885789502267586595590860326476886628753532515841268270198163631724633948959497381909177214143904737344041392036463342413987218456177325273069529539505688149168697786162080218721185431570114604508391866809805952150361751589083393257328757522366877713093327662898616127127620215706934397963027479511204511905887833508393240570033228001691942327523005114381276621809159969725268785635702042009556886543543636105489954208259955858432378794801563180562045947222819305510267778351015670929865217731339693042564119458347327056431630704327859368473025814760773731456805267092551915408358143338092290738959148884303685977048388074664598606478984705483996017318605160034673382431749870590363378537832977420172633688063137339972939385352438711569005017051501361645385328615910272929917125449962990696550246592118228253742809705886250369776529888019885380719127188062256961760194205873994872840086412019629620651633327642614392200389643508758969515389286023792537380201069485009230785924615311299143392754368603535357470635034987795638353416941626754045151087850922447649063057630149931857636493850008527832846639534526700347296174131395693374589237930736318613179625105226189303776838236820650774349012153995008178082610922293726352147475505796892496439880881008929482465826943697210705026763743007865536286624143630801917337564623782054621569948815723763017974465007263849052937933602578546188829630315371034038253120201995696061871511731596747697815718963464898782308341757551291174083969396812984136113102527631027813642140241289407348391880545625422765725847703341356095299366854008868321500814531810242828488368311523797254389096468899308971056371768545438393864805765555178099634244564342442593394179373475073338160091123993554775490457657473417787813162687022786920855121644636545437034758907037367369822127792963637460079434768031355746219552631105885742982809404822688223991483025565826637861930949117578555180215687294055047506872772215637802956004982668122366168983960868265272740891155839034661398281509465040927267389929714348956967925314155152706737959069670880866985277223719831165330225421443443535912508669431955367364088497264543817440939967425599601160167571472015234430060355706008268856509476471906828394017546496614805176586316010480844954029987576520644891294043859357269309786446236368672717755066095919710810533312950677172414218060920184368389938396990402075459171554212670439217546643203056921664657621874411238370405592064836430171242805560787796606348736802836570610953160006602626187085342186819642143993675142939737921472387301470959784482955342118732130388546429587950372143560844109398383603402470586739023239842414354504274838678103708377713361628828321031489372348556818429756930419015941250083389495473918099514886711200476905306150134720092175792959846542340182392028085927984804240440313780999822802823269283309341662332226352389735403500808476989540973468660039134593272470810261915927722389116710548804732172801021562319523611734615715433848314363272713571819233788562957411681946733349226001096537568597800345899965561629908769762568315526956902718890722254525826317676825357780586118887256439483830807392239893461128570060251628722932483800244001827696964667392399920600609786768903900154592125443612652095502765535731779649432923614930949152125471321221680272647778389215291764288374487435261704009182953816113503193119997681882220791630804027796483334088382833214766958477083574619470765904852807258525994058826838300868845258933309236163417329688963986390777324509490591612827123764147859025707978284932027724833596980731612299945224664083139363844856421419098849917470093900777264690116571215420807164375065923528387392692023978194201119619755243700382358789622952121936274054489980908805434804940298085159032607589828335982279271498515595156300497974199614320147577991569970181419136205207190723100042853741919455120038692673603182541076220893461365968431067418535404254691361370443950875173948332722778189349892472753934961641907427900255189379157574297774916033378970204715802633098281347796053990587205420478890659897829070596896196597252717835547825717155221477619552716543759538810042833798198652147081487948642799345898193698853759200635797811444007400496693696717683323196808050052997298373651746026848085448585409197441912094950375591231420650151836206593670670297324030516491639161612089920731962165356316495464630902217739510022228134023672807565285628170421789237021506558377539779328252260069252978435412954596387337381721716508983030583214232814929104460753962891567848785064961288579175966940106850173809571100149705870169817650274805746152082898715522337648240163188852190541389880293144764875569434847156807957429900003375777942275866808034578755954373301326842756313569815846409768818566201075914857190448152149636930243119728201390481954441089687125221024101016853934919384311198208044757055312903193449771167908993445766689922389913398250969061630199301087386600443850729005254296165040389457669301533751389107365166434247119370422556301584516717451841360698632201485822880623501141533925097889025714065730309704472988938269919210377743404172626386630412309245512479822046625361125022098950727219263615666055519143169526203796406467205427960309473501275171168066554362004072328809892286374976179833692452252349178866627236252485956156113503290537965971420101626373192808240673534881315528987087213374134881751454105653771028587430517956013307082156950705619618985128454013376997898050712097166021546552683490059125672496043439117042889943530883261661341447404221335076231072802693916102136552218098136678934978885424734961374775179812055143349688639575687327839183869748335913691266800069834921933939898800097223210781083111603437999144147275119105698611436143897540351158720175728315443846093268600835596881638050845564069995843932595057098069903711253901632391281778649051006699740131883467506061865806790715517905254076185698309723796587833923410951761562668957401725602044939017947412290333414109406022602448857292841153816102968843970679377600986589525906141614251873050128942895570245021157681375993211498685228302499705213802071763287327164813098974862647728348319794126083130647909576970748174516962773466120956586533641813400451642783763198001438676760238104837302340634779108374712363687211786864070904502512520748533857795416393489573015661145170154144170259773946345955169032843437421075102417138783988616333376960083277821468065211459534041237866679369312558449067719075572027430528130356480154438074829455541778828679359429046464198690333242696127133713933612147075448909957421742702954581154705682807285882461592735056507011307817769688133568725789003715577149717626205345227039658380949244531590706025419670993047050146621385276632702556748066587458697025025832161690166756271409800491526349373643312815323994020057373053420507489276734024838096085377356353585619642025119820569311599366351946040346540011253842417101111630122012182213244314964800993014707979121036438059764644704842014111895835261114003494396456523920349050288642901554750992138970933000533222562939937728828303056850974090307400402704581279662272767030479450048999172465329230415119600610078977550353843923571345704141335424618551993716332386373462366670936457644807683047819202435306487994239540412153842676144170823290460766120256400447844484317914364849633152608387747283081092535471837971535025966486976710660431404370186648046120699841057647656833920503315648789009154470102505577987235237290899222413431390136120406430782105136084267596875751462899937091570570479359902108886853243292300900259846717611881512892175733689178989961611277461075264035194713202845811985526531092697626689420859828792266930307539453439019842365554824970412853635664299542329208257981078091014454174062448423918038481921802324420849423415715168180355891259831447141567575196933095022019660137073496707619080680489365494842008460500623032339506408856441606230750102740275416821746320323287840374368335617535940599699928948104709406556127954756034027068875722495148415358070577760112071342267918193458675291045653089134033226434628481398824586421286187362445227528996542814436128480129788210575121298264768682281084311842249584741142026156127022059815756471880293276612547870181478019575608804421759653847707040762852436745730673383390717391534137861671169829204587937620042312249054638384683781433038901662661414382374624389615393144116047744354677779312388100963936575448643273505389046565739127090968917528487583684768943824817299938819323947572364299849434211839419169821987653737245064059986462346232149138804529949211231439733440466841825179344776570375015241400121876183562119772629753731341079875471075193275816318776092908170322333937263802388235356900983254332903569093520138962588617861098563439282211299415320714604074801654408751123195412835875831314185935942974929943134851832894572191801039758470171818111807624992399195828953061452881688427432171646388400436127506189920890908958725529126903068978292414326148732152818140211647631630497400633684856406476302927077098098462905115278872924090233689034529132069349037747399576715694419646308899304268962956202148337604792402895609303979839152244408865473999842279055483232040857234108436723682530867563446363293869780765140497937484404600380969077001290793183509348142832353938268480661973986893681239161331752229353953430378115879727881530613011902937394023569260498701424042299464801466679366739821166006666190539717037716764771055182746784850168071690156598937512822095339360220572915202106518036785815989578309373180046625471621159281078545853985552774484588174944122689083126034082531988768244392726100760788047434839100969565670635907981075590726214190363891540056666748108434333559495911047954111730586558464843366455349150179815489944289176636743760460455789874415776184824334459550730036881425950031023258546871533414421431475642098955592226931046850498607944656482985799116241048762753302666236689388007852143440194835480242924914551625411683632398586333306798914580695567124983834242430497828363829022047679909298220025470825057335785297154890494897817997064004725379171246425265967833646369875092867777826598727737951060162013230518604211436825038093728923469552076632032653864288956898482574125752221756187512761069349809010476061910475296325122169168345997197499050496821202189618093905743037014923515935587851206982238871392562177077105604265051185878710163796218835274233405421691440294219276445031518977374539196679293285267387065603259658587932651856268679875374413045359489531612683758705086340015964283225897575984957040233724760457450882084608033615842240469831545960191044771074898478721574711954570662392569968616216003788028517985480176687306997567695470445398484493455347257433506646585319628127738836129342392506805304407957576374588100298275841407300886807101966632688914977687111405505040490474753263891248190497933647676191012686841434244264150226971982105297363050827958236619952903845495350242934868990109321771586805370270282565228657612905694592410484576894377208349157414533765607938213473943252619377315335901671195260678543489826698778471702293288206456010940660644297252783801160623532401946983728347155085373972079786775836126500154588789071820504205627769985725455819894322485881207918843943332759468836297877631927777448150838277277807481453508074374291828197955123226156384568159766769064194416622629397329474026921014089352349032657467858143385143736235371949402513578922660771690324484246508855867307760260855086773002084152090640279857888634510996913903231651638039608767355984568205946277744960820976413449124708037454017782683281483046592173989631896698648810192876806132657541027307439495735349359616782595805940288078884837969867195889569573765497868326463157487452860169368279740892683113081618998141519444279913845519190267392162161708543571901815781037412566771376709693536334397232914889048298509495102323054133910080284598844689942533326765423001210451337422934531852844010131090696176932725124282970726025126489987766552559909827818995503405060923886534662328649859005129435952204577789924780696287018955496487277539209476543291383977795518561172726908578291716865824789186901231072800854651350456764132764717189165967652797566982248718320418265081555222711358017773913291988541520962315465702693300549570468156658298038785794230417026360105017305124804817054234259807636306666278728687996149023536003939565667026627158206229489791848839517765819019064510184052914518419389000330984833068341357500083230368056730978597387254520410338575014558897696084737433626308717776294102383599355131184275957149534952835908506467823294846856936643065442160423741306584413951901628885703676394305472855559374666850577050042682211407657361982394423444656338879234975394560891718402914911140020552585376325087054861779047862796402201240188056150299441841904174536058877127892192748053390130534530874763044801998874640712968197216811592728412522214432707595585158712125686852244919449300500976805303983029525166809655180613352002366515435312819867739659433123427026436170270735543628128724214815141510404974407762604449158462914124796579742779110986697856924943706022319610935675832682110818766839888212699443041204207372326630886377838513842785938249823056069741644259057974485136867378769289998607868529586864804573725627599748939563291344876215239439023207624822900860774420513450129261500755657403691038078510745111153718266635458713305529337859356246421515126899870680825751250434352736106123653074229144395197538794300159044995292987621715385414659306003296042218201206796285482977488039834288379197452890965537588288792222959928315633419723303773081324159919306757029880994712824358501361030353987367444238778710502215009140240714041901058488964726625542451573098472176994615770128023543772396702637941511901339481204772497240485395528382439180750548732909473870983915193874755388092353530421762278563829403334456702405433522393973518695909706220422519612613513449325299368741955986103006899485962158062964758163911057146023123391316114486468607608234336218931809499803279118159872320563587073478603589203497107982527521344947377321422185679134682952737588073098513606723996516380938154910837285649758871811938171340978179709139251946756837313089205215700780703203335353453545762269679321088021328627251144995973666202331040870392995697810180546176093714667235065007981103849568664511834965469500626069502053596759767388741170254916849680735315615046062238925698050193173978440552052007023273793145800677767666422311719416840667107217939632894061327767332035303371834397610923271847571282535373136681233579868920591054584427844404056609470321079754433773781278107382295490952613078984440823001891852850912388001756693883357719305597790919736754451478334390653021591727364980467097431542806061098213375726089638868893905135489404296475960479890058137285813400075638661111674495707107698718231243334265772735654616587546007013954440889442133790289031396935744572338683910099232951866238210928850595561474951113890578113476779801144382010523498124567307696014103243010088395671960364214073879463200071410192074426373475795159341951723274377411362193730368883229089448357521553148750766363477688919639075731542099634294495949723064423729021577555017764066660806817113649725698267704600621407481424722926952792663858892547202284760794146689130926252488374839343485723699515900070675143559306717932115395769882565559181356483906120262945595873198544027891040246180895453978495535010347274407795713078245094421624951566514106601513475988461301322731345720903619288256891927940104924172335241282309363531592424205847708145936454320827927361176972455547504066093131079334186780947110788121206439456073997201327267244334585672877985336346648656623192858207303848563980601084188452626112224822263213445925447864813320945846512353612619822355486228728675516506471344042806897902778523154775141137092253613689327866711849747391388887582037230435359896415974392904101727673971591868959490900476032767015229593987743362810748866650523259440621028666375629785827782965366053260042522116510501881883010346772972969341486152050459817936442838180403090894298933819468955276505274382673633086342981512895734580555533060007551489015272191254351368545745519632935205323382372646935768723099792574360672486411130875742716068209538354020488711130583189824178228144542001570712107898042281352126006891520031445837097750265279542692448596455730209731704265852204416637920530656557241968833104862601098046574639692725459778233574790333679626749559811324339614138470847963409531960979577967122031659010262587103800973281740351005713687102872566765753006940211798390190262975643141290743153578926675979998881453817285088945821872170727347186047706291200834141996264915149361277757415632477827611317615466480829245252697459312719102442139089085101221484159165381218854901290988056496875446111109465390612779795405030311093648503787039794044225777239613974128517642898675720170947324340066297131987461435127599066387197501258843088095650454424377622584324887228085018866196283798277113592579944528727735704448890546390794636662012405719161211350647043423730206144038438761678241690722926838115153500955918753511609026465321736471831621047116899349247258923232345549991671212640818245144775418476606249166944891287352369298695652271884307192408709082205136342572494417092395990324829006588130557926072589033520213085083118782546808631351558175530485403465511479337336759180483579930853687894013468851923604369407483785849138013206162405142938426666184143977436345540386214788443862398903049454767660484680722391181173830973999599208269023566789209993928651418343140534029006683972326939187087178769935155365005371934897936544292561055743468195112275244416718853035840076924154302184748272715917518119470995119390838009941021352454278777948999397091561069513790506064831121496371492317142364209169426591991857153270818636514487761106880098673704898076003653477908380320594885136405171751865860827789140175145940276685406013796179584799125434310549660116980065342491283924084522118553242706551624110645369317413515431136193114332960879883382164271154695686368845647551469845105401638179033075233328841185157202661258107088680224865887520898811253285097974708536816663932792679376464265699976496017818574794328575271017262619023110416427258642312915392934104176866082249095658463507846528903845488969653626021822140156189881555132047244701678315385279397136979461356334637388687576937888539405433230483029707627511496987959044721537774085231416328583676139673240483642546862836052807999888103943066682856399976030498730687083953884085621036176794017411026718852552446552713951722895161838498695427348270662217837902901816230462131334274525881890350367582145645627407165880534481623256563052007118095396969726076247103726483044914239318665668738377204115962971342632175973820084204714023453644243190864488076661713014228718102207137908574637338886646273124642525345908821920813428898126098988207051509224037227657135675144124843930582569205108285292903970217911750744278465299245509958944679755171217112431273759722540158226384178185537770962430757351563860407077279897386951872512561914164380454038543849817432148263792733545255382091728226446601274688527703792388061053052639945007769005875903790138085094310152150269494691358826487138897934340405274645670807740530308703163466957231555656082171159863186338890611909096711541410545255341632339983442460132987607377454485308562402286097996163688615785359053934993440238918218954411407441528377223656400751934150723578345218433525976350975778077211799108320529900707249886851690337191045051839552414917612534051863466010864305413288835693025315874127796175531448736956818172054440548504273399731564778913361963831077123481848501006550123739629267979428003779703396401333428205088414164427410925200291439512043023817404463049160638875050069155741707742048044638082792007215929499892807766277407055383690014827310282224986092208629484984422792269886739659067721658913442787818037441820335347955130488945886346823607529374756486052643986355011759276299977732551380083760471212931987783987217569369742582230611062797685601951455403719036654142093743729800822222153242695520149931663951268379515671694025311438867110460266198185620925057332313087791610062025227704176260610332832713980084720305662034524479697705205112325271259240977158376592338959716007551541862231425223814842690920914448506716417623546330659689943901202303998513012244853468490125798329844420829483924325230033789061333907160175144185986869189715414523052821714005538434917138502482101587987261546822625249329176471157857500475729309705123843964718843145970471404953210511279422806327254372459468172016266081092834216210381129277119935447717929523885536590800898063797661910792022496311870669872571348828248222863273831113544667162064679023373926916636532724758937673821716965079400903317601204364806222557398652368385725717752532857300596338644856499385124522495624103746758297448353174040750100901882765463602601171980762463570500591327554478599575167001665076135608967335929087038216225822400353110498131047292977015614274614516825242590560759950993811386915443794809782348486033223921926956484458846878775598790432845769340741783204202424445760429524684541104745074390011806711981575259860431597818716399558050727410901461326090980427861050940427678419888640912125590161317694226235296296317222637682767722766351531240969509998377033342312383942557003418199335963903301166990803042412666422280346794059644390640608921386223736130073490533694716400104159257452175080233980949360876224963201603059986781343248806257095004062926241803938912176959586223878776655956844092194401293230126644036607566147722452702331538993065745841672819337674500460760577054301535025589976719199202718701985868992126093814433578336582219127655824236750268798312252657083721461128830957937115606447063950917736817611496035941404312269970819082729771373341418529963770133591083899898834586631646160912334246330027580930695850689189771798677652035327197738774462038605665511085626440909814702369850631881995783832165858349716984496983649075325681918505606523921865261370547252930554699963572857638069100915664413523314684636592201834152206589882201170117429710997735673147305957690773700991563474938643607530913475338436160319768101458042726809233919736709820273925706561006719808927692992598794400780575067178873199632507429337740980014585768677424355812896678639420743577716036233959644928499373587167243728012457809121004293458132132140892497582165321513149710889679714580818846957241745020840659668330672905249022271751119051948994487562555912443970003546428571145704242573190591306109679369164354200754493154541280871556587070368911626093258239520298160381907926868532454174701940898635522371698641618627771327899959579618360594461982972489850073749719086050191274458584414668585597850766655512768092162385970895916359983498150575622460485286015538375389849659171029888785250386174959697864491259653826296773329716776284388936282508830067773743792761679249381273012405102948762043152841117058806547223139030852876897392626699858748967970270965521056090718227678710765494864481254949342564320820563367208630957887244966917239358710897239535544530839330880193353958768501081902406868498524655114068467464329129721783202346979628052837302070855167517014186282258278196903312528096415465414637633735613198208549898680892978869256918583113961953776359075769622910682999106241850041841695920400577559009220677339429449259360004137085416501252770905833557736808801696236512490722700316432769498462187995817653199530347939275399465086762020045403760658444829606245657376043216329627386337242707947544689148490301555127167245914073292535024004092622333580637688770525496645729296960476397060079847592930438857840935517286722409056372291346058011927640602263658736841477412791660423113333467126441484553262714099265553459310383303382242750860771648420181964658612363118559571887736689306037950024766204786126366789949123755660788827671525180969401335299655184708064101882653652843007998911701779295514918407934995230566986868957638219413320056957209937280658079163934169677090252518731326414993911448515880007686522422943612802721805208762188862681629468807837098952694110821653852108194326089338959821249619064495825849429138585919542953133790938753323530050317264269323413141943128722639037876590698939074130254880701887949416700090820216509968174242969498308456614892863716763645649213886255670945516871626111142485784753544686425648578489076448214818754635505237158097361908876724572242979461793266217131210911109186095061810571054473326539325268665439326113050167876629841156936361085611322410271153820798376008360286350757501684941600744568982399037046991299945824636455552605929498452845889786418933293396525570310712136799368213701496031890635549925808387219523976212641430776832347555967435295871071207384598593204411965320417399943185619328327149702563297248575568376069504373751897171631458261719264653338610827228983397903662171414437344644539232805220538018466287874139349250404923640626690646086537923837022148057398535107201116638300618450254974937373285996164798022712975334185367696768134461023515483114351074677085089904252449462382036291438331913134023695374663562500865432655447914893934593964170359160309851923687511469869338731481167022131856115348360282968042548199609615156971400320277747231379299371745390775294079311183740371047405217016235779488520082428202818648493301219514787778468981928583300426042866138655821607552768765380884250949208788028982038199444444859461732855325453435077245799784141636505652475612848466161086448893170468026178349075294996759206133763839076089713445203868706775089334427200499577389574486018537827659407817223260013409177927045266450570779671609805724799628174106151145225202949732877034842846446480435003229440966859290816930781554861754809228954361420520176345275304716640428336214314012607918268410605278080013976577184086323341598645558301256266565406759553944566884922967415624075132241846845329686563588567785610737188399610326390842765775831848817146836739246347202899336247229221360404953496310695600124559800067487127963734483115014238237507378738674180696248079037647451117932698077025144382878404195979805405527637862772337000382828646055045671153915787830566903540242297101587868721796062040515744786384511999314641162609094049603177320773815025460053251383719029671369239979976434178240076902200044470638190659498614212679338225413648111804832860877562362415780975062641371081659917483107055545997328245084358618964670626143953207120810969851214856405726541107518268842540953866317062098482542855431345162550736320188817720458516373828296152495918000139826054968252287969423690605086214310273910610960436014646637983477615881632280408491431677686496196521728055497621178047125986460923610760650946291076680828838698319203726788618425458738869608271833080377514226773754137395801746837323745117347385148057075879466566678575456678112868876737586460535978206940889534907020069402409267415926986470448630304323163822200717654630760465306262676623151078132487922925904277120841845229467433288342630427001737298839394732318632751028372135500020855857643758929121192995828440692127937817634621668898377801553410087068179673756838902767491751175256160052768453609356383839329090350625394036848377174588716377612552997119956068597767966781915719508477026075267553840652821057578681919584814663746115108679869901564185481341515557884052155394643439113257461081813826946943936371619566665355055276663998586333673868767396530021467352539760567233063477764092877597042142726883580996437410322578617832356063343474322425749237116688717844949194022802022959928252207751687853940293479029795937059041959199678333849118027633516418380322096723523745008487521442290204825752922589159915313769752137979972300947510665736856020932733816050591666543708549712075957051471354334931540080387324987805833002442215117000194515853330405945058940399501560947983198056817591780402962913256692225796685535126966054475646240054011004332300346728602062475503562382798543224486033920066931689337763702167430937751274720837728983294024339586053676708798691304497214510683573100266984163804084704211623901233198980866852154752293043630656684032215064853290054045294924080525767893381093005938398400380306013672983750020803738969049883283456991415978418318531984507499208534129578296099888659005833752402367814042619345744763656716578096733187258024325608022097465338832458329304969132079237107400596196655854325584911115597293506947917877843408738044546028814891901487979055493996030541333221128049170864171873798940437279868570996057478647850503708295537123135921740943891798742179720973783002563121758485227051007775068143287924745905428266127211657840056503136841763059484056097052968334561922816958816216722067238642039751510991326566972588756931976922396341250806326107332179880583902070954830628246263761946343908110901410217245922107886245296798067412163663740964092297719944324450471495248525392532579599971695262799753548072728047703442278039442111133690186493170980193841964992563736803333042575528992275429191025841754815193993303609506603707097405107912537787722790354481349255208994567409520466525969478383368671723444537677684966246347298910203640688250541065352514000779113826351643361813703963028643241091699756135372073842808827179610855541044490704531428554063851942692481074973031320450532330651389503671921659248627987255602131630079150604371993948265555973079375724279952183359740415643223807944072049065660215226329109956749823634335790167163513006931327482277708550919384635690753371422447149227012284063720644105455936428908606921412239150223881214863733645745466345065316986845994693201561213846396221366674585434218156435765035161470129621096997447798715071297685320845201101749992921923103207836969109625035366244618628319121806681704798119429061427796287653206032134435915646044875863774137763031155082858796868351761304178359314577174227601302850817085722826904362441451955266485704208317217129381907787877322400682157393612068612640464060581943743733460893886537678792589104746567166388432811689043079904407251608824301415018669119514779716725282967164777610891197022449767067819743671143919770298954403599838462757056261204068967068882616236103051155926753316396168389584679780801547147250641016030862240538080094573044203212021364240593609873950363830024395652657840419255469479782802976182714789368821647002184754190385976461751277298938685525227239789021172162818642914458892186058491322137708038964039444287804176305915634347931972459777179190042255872129059949188482244070791267830590479794314151469824609275295017129748740006690691174818560692596501799256584512041946118270020848914136511607025699967296565309262021488969722330023946828315977264844386043196708136330312839960561758029812753822381253765855442901871684406236835412615356736183301355312866061343390395403213444298893056365643527588504284710406218112396487524623869315328274751143289043800738648092288673908650889030537023053205865549797453954548738249475443652379155632112466006169656192751448155031881103057268255548103647131904453248965152539638897795318580284150545836465846931132613456131508392882706667802905857190850929321913872597915717038090860714453224289449301348427205390715346144711782764400535810644880497065009825416081114835263883125065804139846188949362816261428933025437306151481647854706728032537762433515645555783394795051690172595510552690561581253676147430813129007632677932214172982603140483110603176218655887961626095721807815236198273929390759483298618265546908761315145342597294835354774608215357909194250664519540502337917942881519453535859811848283955867714854146103581854736637304314183725920633958510040007673991060450214686975769483547260282213839174737370686143581189134178447979676976362904865557632467196674167545855635170696533905559821452124912102414528038020268667239065102420896338490395205798460637686685366045016658707842358781340702764967196846570277355984405712276082585017343866699123794962762927371390240554803378219227939181489081102652091498717091891188460000262342071339985740503099261581818641317142286415630209461399874541234575900601872792804831912389139536376366228019255318288443491109561730808037931658340315902041420903014796630472843614510250441344738980925395080503180169465231205853092209478167142296515072273280689633897677006123509340640645094866757774751361615104299863255872051899857967035085958581673699627648601475425196945885315663006893220273037474062257721298454956436210597303655813016107427539975283098198855175266792856488660059043982132788377971400335170625582876041552491531044236339077344072714743399984265895417338914070026889512028383559020804745055003906798639012738280113039921268375465862641975986245856192415316548267525385118646133741741892244991698687005274185191273491404758868904574989669927385027401411197697551537332054845841345645898985954128722255661244319688375820766936352282866553774740237363265539015934177703444113293416176076530218634620280376878875237095280705474531798665840052398078632087571945092985984980177355135731724929217751021439585319177794428201074322708682858063856027929499673384825910975629876824140223304809488531217364044828339157075335975160651443356087932261416953702989572686614970681776554728752625889693804587637382663994770470176410677253528298262840091407803816276827828712897436027689306910957328088567976101740286750265660781022392800593928316068022699887100927795513839668832927278292338093667516025327635293654303351970308060565591392782319635551512921980966649575858038756646551291372573988752811302128104408896456846346428256873600561850215932866638796724654632623936936566377619264721648221228449448499931358212054060802651795559944185839608995814242495730952001376018816810590338382363106326078926159423464875174781838083329084148661808128131451534063551449115266972539002934016280380718814673547309946107068101519781472265645173347972923511363894199815294488857096447700100090035513497000023314478589459043079624656797730307076468908326026750677065130071409294116553196931321131266467099164763059402949363492480684304451560067867975403353006872322476001267990382778695233763712534710170698482576307317808047035037695799707116954578020280460746068856364448294950412993958991950812534049312601103367399330294268434194894140714044349581344650577494837954396179786362292349321344847828342082352910226158278331484631246502534332828941521794327287735196898014412524270131927636309152415215260525348683597766891159466712283632356849374595070083104042184055184516459079651238144868402822763793024591222588833134883857505474176946400681348152975886730715002997154744084820131462541229465495879975674772106380048799887321747318192880796325090915226431128483299798812654502798398067295319166044971045665010581513856181407115557991114109072871889722182865612714215170615660893026805563604167123142284437786634954043528588201868184219948524376939093836363496194827181735120379435294409047360202502405358149063168216696352841590476896207283911353161464621148290346442146355037751039350588554252996635022489347101709252654257816752248812811775011870069950419797229384436258512074723773017007339186949031650839318142461617845189345781204812322903958322250402775026443990534182283802695235621160516780077116899011806129046373074625804736201269065127198609463394874454027875125169703419875526565411725704579939816679499742997587420939689953625351885990490396589803974663991599709319657408361439730342378622407110333525277663159847214976318990369300236451306748243305330731060279662635274846503915820435369872578102865325712670171973109331855664273288188384041367023374320303544909872041680002934338150563824990142349888168672928091441525956847126132373069965750890885096160216478195067744521702852799301790799612104257287025927897634095640280832810560356763250790297169354263814351040314124769387323671271281697418703002578922069348583694390998278730141700378928722633723229474611620248036935891760903878936048285338456985404126392634994427515673721949811250844246008300722613208296504675885758089428229758644724469472081215988654074507744212596005542547301229435507881741470187983394682555540878617740319994500206560609444845725797949858714395411375555602664167718563344482443183110614493447902037917758425211646263239576531905114313076268150485461415972233658343426964930023190913022973691379470320211977149485412447468749215664455756723996435471810690841229105899700227801529500907007228014180652735531881833101648240524385631516521375252416640621208847855810313273457604679203820303015089487416508081409200981524036068551396157222809017953727697671871108279463479205966696342878850061881471530724970741498490620789838329486487973834518880457710425844398621263252774067801970701878582602876337363025465905814194060701192913897025186977066805418547557224985047805133301846195061210387313329355626426827837673092834233671320102666879273258765179988080864703777057618112860071412862066796324667828928766448378633744461493101320917864243855673730307981568966645009893708702468144552415223355610930530998364245134987499896481049717674208345831351588805804869842802671470723539350363816270777223774387649003309057672713772849928621903449323652801774574893968018201765959078250262701773944913726592276240547305037813655785528667451520948079465175758942551034027499544877170470889967666837067491705349122180035329743326603325334661206697933490898835047562160462754355944406797104725529248680036564523484134884198653907924204486132272531232338749924807015937304730644475645084225747524895826880986045794879655404341966336024356958704145556626192323870807947605706544349672063420154944550753817262098567523122104108232800531601149439871201206887318232329452650407015517246135879097387148186496494663063445567329733529757983284111790807527760315077403956324404943432979465192489941376860308689061974985618055709951891187232189891225746812319908524722059097780696609303959189742470068521302851002203973032823712735055247950272548272303991839563321792139543458008254695683449131776337140123274638964593885116976299356510886100006764825602481810663694754261987594055024561138841294235761878782114713781389824655189453264622983110229284589549809729468006135906040193421085767463781145064868789546251402580255260456140443249914406507453499644498822846445194446369731625025607570044108736985081163697077782620491001235884735895640997207124865797816303107352450619299481773482898284833986696625909735334486385884761473182553510170810203215156405967655407151987665084591588874242177377511519822367556469499866689608779922073028533222668989688307288761811417680561108207181573954069464478703426002593998256204036255385658951867788523408118630511031117894745524816438741481247582261619661650790085194064923700947741070353443541972924453034625016754935968646108170695790984194296982449744543009443981446559503302317911095072638831730170421954733554826026112063854368593841388517310468590862484178914505618264948149295146403082472902738453699906497676937789269110249649181213220895963741037753208539192518928371663718956643984666398917987295161287272524957104120046171284972217056790558504727928375691400165026255613828151101982416275398935012979184457039718906556715895108390902854252994186325736782606378635985182763157402042079589114295142324021919147572363290660607536737959545068548995393753518747860021524975928734999307896951117242656111000386679555392512720776370742007011594383435326703025692257524048215314083020614533836916535485487292039642426747789958011914385053276322283508788873431747847806699806861276954088795953239711716231778701331829363849669649390684199527836928917911342920030704660469550201429815023751504267184022892975822152172244939821674351495711998775621824426154966923129475735263870411724333028081075194604659840914413035667755821940469869997850989781355103850644210043740459859879338133848161079907685344452588321434515474696744321167538339156409948593289650733726276687420740387901779591442353001106078802217700629895265700906956751783409958066209890000708863171859211407433814692359368037756426056122397210640399515378885873987683746048572367271273280518674518217954983896612997192937512434779533481677024965795967128416823675343682997935022945824314880610475787586194846725852461769920100461256553607246545168911183896736212314972008993122884579480908451775548093095697360825812815594853669787230433967945065321051910570736674691481046129525782209934271208085239432309619268948732562020770879143186611045293659260033813611578536626984634181579906899764176069591121076954815839031619155602459483786205592621536343463832754514102727945871803124728393063920491544211369603771005577679680575951791685041212901885789412037038020252205856275406411152415808630514794939046544117653789902439353953431638498836611598108123091336461420904092994343026857044109671323999976707084423436303204364633320894829796314285568901707934624395765708641958630939873988557347817785985954818333620067846576694678748819206679863311360988248121385882262512588922280402433119965313641402933698254558528619588714823236581017487975144876779508356547387358649534299605756142853170904162986198802196065822755110724518046954987009153945015301703884717471052967065641184055911846567293148091632087371155021756672856520302844493409636373398909207640174278201368943048770681343030174570370594619082665786014751922935022118889455084156128226733741937223770816606566937734840350678301458503566648244206757092192357010492441508845049975861997959957577505530680151548738785106568210023601117294041260719844376524052363972919057206085591072651011583301195648253442225597343559648542754264210346094205767501602406768405350453689715402966429902489887893326372832154386428379173360165850429694496961669765320716764870047402384203033453146886791748216041588363192957427306061730839004162643948454465910674378782021441301783666359156777237785381844944331820947409561716793945563930478094105785301642020327062349721827156018169972017821483560672708144180850009518154615521742280237737046960165883011361958869863917527275887826955472426477471930136168556714477036165296820938022222713100832175296945789563817758846905239121435064716945728178009177755312045990466213243630011571296015795190739520349947743717457514501892089684400716841221693809635986228940276554884234146254064864833848565314576061355401266735854423923603511052427020752136871316484161519435998897039986115426017226888726211339989884128137358701517977046317022708424706888062199604631964267919170438979503468791980110068532639165710206890787059057791675623108647987197954346487780054250444343514256514548095693584649172364823485815253349530686377105576115193146992280549291541981271799197182615029648854207824518263168094711049166065585875748773158951232117815149882238356901372246396063921633181082530507546952080205821343862916601354762905743258253244285087549494886556745058548757274724094599275996829064454322899474025651206525179040435547216486992886691491898367157438904744585096090624347524677562567378327387063449264138538651624839991566389901548570845838259889658871890333740957066373177067185435487811240350115590026104443588295516232886680488550393369558510949049236941242385260295587622781878599463033886429032238469535677785136653370078525438651694159800255339023697331465524279455415530337623299766854221333451048625060948079197826998727788105923338552727186045923853664223765849787338813916157504159162977640940515376647986007435631214937107442476343221083450555818764620747681656087373296073460493606248544419041602919017996099510751708888067631120300599216036860345901345880480545551463520707628420094438485077001482307758102892559760595130380732934011725560645303753911491197082819950153164404076766047653007782628724302661799864195416531358844900056184521438372120271775828563110432697369811792000761614642838650616445567320690502931633012225861539621653349405519636835978785634162719226510088728334772180777487924445256176389674862196526271038487106501984671704303331285868042980431629078585752688202338837398795780275572926061566238167017003183588431517379143822511815591236096733179118689169164657724107786157218266697846211977714503760250330643131703370171799940970067597741353892246089565767073632037407331229534145554336988482376147582283580533234807390670831389118770401211043310358324760136833725969879978246196107548038071730502892441993742900617432312365497713209605907008605092275734543330199929918956151743325231044703000335780116482331408772290442251435953028875186428078003168282033947218313787990290433156033737540344171077555763979394665005973261091680592040952144592401459425975424239407300097058499848125251920548561735007309214848268097470660300189484050700620218060892222440503210869736205258799847914974578465329572914028042360678063411550682818815827876284164046590965523737503490339840798985200462989156314757875326103320000143600962387055222880366557122900401918389150814484932609307231435099045351684631076173216805074441484768782728485083113998167999545952674582110042985558765858565885875944471045141256965037532578747559758323083209213726689659381553079651178419491780870701788232777171724385927616221703950274174492292619372027731581533192237428236913572036767589553281321768867992608527544319852724652194060477274442575493015266415961568061209284606444513174970950486227473838350025835387471073110173184151565182614328960616753760589582738901812789062646519150378442095546839219204295336117723612675047030831462443666145866203736462596636344499741744230916822332687230291178577228362255900812233921079126840216945354497431398316288556241224958588459233919135261974025709860712504425128460257986575222299196708596721249811532384418422229366077731166143099480869893629561808766137321038777969801203239725478856588053170040899429367556328570929330503326552381260871744335707886982305342341328795264322829731314567031131732780980828248726012615086961547941957817996610692582510933846981209659339914054173829399324132101542142593471216774778134885071973368555384852434965321895777219368768573485733687164767852171288758858387343464969714429340772218122375317510439573225378206987016202186630330987506459129722139291233243306185268227999303832931470989679723726189697158049037681324431374882373459894984166637282668628170158587729846434102002787091559905646376107507694680612455118420400325008901577128880628823290069701001041851954014350104458906603675259763440172404314532108652016256534252437218402098858011538534006110761383305510793777978135501114392798016754666355089017403816396454496710267505510479820908836252074590678671514145065823993426293568936459848329647957203381711183358094696925482755980075667546810807651219100689811401574976878198076213707517321011484013283926379667516485215278161672233513383407079718373997956858463021946502333552125088226755138543369886987099142231237418720820093340010840472366375255863580731124184154772026447699295884330362622759115635089784883792734141176733447861987993919251459671865862363658220105816856305897793359570497191743514433244626228646592802261745656029942683465707738833070815275391538310732764866830992131059810020165767547873608518816921133877865530882017857483121476880046173951982429830733009041246335973943883051597629457792513145546072908878572532313580404622793243887149878342262307681340022449079526215649212851669606872088184010068511546608431144805883100272537080094188782666165965348376606685881701457767193879346070817424703999710657895829915799765460046695523993903656049911288474064353700579131149009931519773169201930271201134373140070657442265189476340560926598571989815094074819678999018166662269598275321409925729188624552848116745290006739080210964499111536582011862308029593045652613810775985829612606606311200413802918636013806632829262894405292474663018408467791391811368490621602268064377408406227865552863990841810753794035907541891626740932828017332578973610212015798080286440241106216657854175400789382575052731640889659156423958005209612130688457273260156095297911569376950476680561061401865337694741952792496928475023314626220256727401685849185286319975902461068335918016060023775390594862482146121956547747418576795326865808632486687206024265503643632234292196012074074481934633749215279911078474413985247375300152846208579172984299752376385505571719173226689701673349534954379757760998603720112793409749515022051664189521795948454403566396527738747129452494130267738571887345298461171667305242589381085609146558693481769617386572680905255509198338913548600490058716315928306516731852658709743834791390494406221389573156058560542353156081382786795062012068381079540180340621398450015342077429117547445588322917945238159500915949800117774520666923880769839562035671039225933311220915749956125785026671552834639544525453501254524463876502572761553184504855545761069220996611746690923481193496341333117065340839701570404707428111589495706355180784477454870748736547739553721960697436925839639076727279635420911194837444468251355005064531620943744893179161598436395619038940902230338501894069344781412440032140485474825041350000161084567077077003338683091708729417950288644543713675453686491440310690295288943266570272830105404716047104975709866991806296951881595095643201766842550020387766695281915222623324403532335028544033708375575200569179029729302094174893896809656736406505222208280470209808797636115057879676484128270565141334384637798709665957943329514309957812896292618268973823557232501126416488243967334812963887021531404083291406233389236935234965122475380223753638777354901154584927570862213364055049631241591531148332546272626823306801290155404132139160448425701827344711224646281761683116586700358295905282370986100200612904325076044382843226838748209363221994728427219249890454860386527506856360174459640473460424970784725279406082041250410412737231120327479830443261248180979823799428208836523343333885721707213108515116375413506014339812428393544046953075897234098822982455882488067338992697442782991435621954695839675324207746778354940830111079898649569011381827621647647630914284808963422669683089877816167275206721848467963294046773513346532934130356396384034042538789022230322288159358605057196657922964818833777688201361201490283920452014597823733938912507063933440015272580480041903260190402124096285849222931969594329494453362822149262321071459139193693935257637426854554709768266593549972536575698516276814451398341087537641846814121412173404024802450589611877242934342010423202734748960783923690935974716841350340253260522300643495010052237390980685829118197310136330405367666548644285594028812243250839475731812941080943719174727800802544035486383809846552410501210083616912445617484815930913901359513935632221509784083618399406049074559579015754357666871605083348588914472356051107420540983933437207401882914786621517549447155359940888494130277321084203325284458441256307360565889694174181593154695667296591269442234255733587825479331912090163023415978034643922524078036241582648821865582073499803102174141417853799564737969232062747724094742354055848002102505769504472395393717175999742273160765205614448756170943682812412085455365495426784021629985119613383824894284339779007472016722017421235984975938682609548386647055181429572328322784948988544122106331422226776357414023696435452907629044553326856611511963065565061725311088333722899571540621072325192511335177331481578088391783597325815052230947258265748103436371870547516791825751555056362835997142178645516895251272143241894584461627676326144924454713012177299796797081692633384869934188563301283122477703227887936549420883854391564416386974496829957014636694404354393042349705520443334192696864913176777394122895060802167778494323378078721641326473887731081891012616867043007614611145699998258275120439027979126822950824063194619213042032890254534819097692259068037076089859054440784364965801733632925872332401653278181492969145090535963549824866248615820380820037108674919320539392943995143283584649466718600485078466838922949721802085008758656612072918132031965249012695988585500932128240813485900248220200074806832964910104886904084171793615641136991545175740347787642553095276666408334918168044471051688986517842527414813742941899674226395043286908406260855611250033124372178619009586679846681013066907221124466583988654593404008309154924092430497193754755778578123415837912860836615305545679861102407003861016553044127715721236100274532942362894181330406989404025612631056005035827420530366545652042669194940588626116741784266836096816769823925964951372895043952898420775772302370164397399392146061483693060558336533830512813824526621475328640538639884557652747096774537830029318004246822263620369666425405350811654336778841247291481726806046485877637120802063862373322223193290947735826967708471088210872548360997458416938983430798343147353224882726485608712992793398551254479504592036926225646911089949920674787612058615067398640404488717923948959726862972681631810826811287049571336449093339569723262899755664215469285941374588906266186465550835802475225486791592610752685556113336662793170323149611664698443766241990256828916669555001699936822576671823505402321320787439932928557755131088585659044631495283164747543834459743460415932484832276145436764521489074581474307628220150663041403230833588259177727552067643054738674260558440464208238945053586659005772568068805499069313236014357288189677007260567777507936370507823284551416450824558575311345398579786332961305640839909624884778620855925950040437056440483489117519881640379770505601113220340899751839938105975498667651145358964988018162371459593126095210687546694292969457990793289438474321089254863897158552295054930420685970979066456855804747263281435477898978545178036862921697382836552353241541089406661906460398192331937510463475268172170983766112590839077522308107856552392712335356889385012027570388905724607821799280628808896460742865121051807993705380618203331331321564214821503572972203980023062819119307025238972580686277098448924457532734224430312235706156704349094163048075657351762420824863625109662156276706342596820828084766669131673723554644156587842490137756611269171505194501445960678443508121108468156586378087684244040670994023877838117228077471356042889250872339973977151571856832976082757906885307304932037613601374615054420479253235721620035625849379459515728743070491583166021624893519918230313999308434302786702507558429855499192551061252586073667493034936903012565477607401323513986721858395713236297239170471300875653880890772261591745658165719148470767516812302726900835693384249331690417034501673377517429532219315845736001809387164586380630503785327768236263605981949817462776831829464494698420855067476973816855954991050925049583075460775602519091394995389181792735574114419777589482904343334609593075446338135351377674142478951961319704939147792369799093445191729867620103726344689197686732457091989266485562521707196351147139582849187700853814481291249102184290447955192648766729146136949731630990395229980530125334879672977194292713770593097850326261623800268554055200692142940900674998691572624006654688720897830786134294498058095998964206309055719296693185831821207881646399809565945345718860366297062454508521535266669583126657054845597057340965208878157062631140236077949472518587975203783020937400714193606158173072924101085870803949277857497146577578148510742806283208266395168442843974595566476360921499061288863347841277917943292213416832665874381424178707337671948190893788656981322737024947683550869883017823071140053277906905394533327738265648594858335729962509855410994021882070507047947183245815548165774230553936445540215627872031768693061081036762731741124537267446681151852186453514738550158549867986602896793338730878614067869527719811134842607402004286686677695485417158443203604218332938673563479107019419183743843086808886029867053159932681590324790773851419339020114394332670207005785972638880906520665035974868062988307587793666967400343523034958888052751336603845369997588124393853961809504154529070341166852266912983548745233786704547043091153398155215992538160227483402963166473064790448233644553675996846032714504614057475451394092747690570389923192729144865895289979042517283954692075989270972203937170197742198978220570966342434892311619079470110165814775342953016130557611057091130013278704875918101313025108377762172712800961432748811735341849486869423858958458558385677148918468690648029153599798279880135085361469545279344889337462435632798240313138374130460919596428863441070389009084988952484155738145691647373752798595792382673637790971135669907574009775913147870952363902565707839219267031052018954981713713431900343612881626779140364865964997793292045140780778034435096661604869193863773993537209969709090768463713908597122579128641020474016425536347932660174724398163757465473445625655875356181516981242961744215160876159225275426601528294787034038236850320966501768125407104740896791746133532246485565240855137604058674907347618246766301847144712797898333963305922363320338402466315293029517493602647729786921902749558564778872662712062759816209242494879308619840716963451774759631848123850333731042683550548897076725254419284443153860280914329381855268840719713157028978998460404247026083581669848396380221027387254442270014673850326819944019815067613855694274231627131163096873996134992703894809887489137124099062286100460842900287125060185229442678797836156915489302118413992397389208118428660904004631347469205217839301421423173133067445564157608120823509129727554009250011124263543579817228727556002535202941735837494491806001215349770463223987765673207947059693132356565665263575298679579932756911757952014892469411283606713751041586527358170887366876184454594248356054468405561509312804497038310243063877304104650122490281574108627998684506390744297985802951403038343758462588762704503799926349641589736740306716301785316730687782667638315562908772974322041787269540601909967968849424285672403294388879240631954883010044009877735811725782523259939983552865026659451975638979597778165401701686611905567456560540624409194726831087918253722284306008250621306624180862077397579614300736036779926681492613744360795057980498295143223017744514398144191637133702991874553703788935762531343358144793366718005216286066755081351273297019241610824420988380352449235114100538700930890882247828233873709596510075820912907632137072244650297085107150213986159135840174797385942395628511986786704499248580701077103269693653399793044261427146614124283382030182375472630026975957481503116186403100833896409918830222199965985047414168314515391456851328768493315825558096288381192935888102242718437357809970634028856848169844072251472073817769041779323780647197191184811902687813906760122986563732555634960891362878643196063697445315552550771156299289562775982924583702796112509569311492313863014877876953630988333643980941152987052834149468980678620101338214573294462451192542141082833224467427832217686784619056750554867618117845382362668161328118196196917203523581355434986765536724221958695422647729668681410737142058223040031938735677024348356307542959767958040452156309217963167177111625696704683918171683525871672161583934231474113785798372691604798218514716988894453931084398796980271726225331474180648082916403291564984369223958799194118390220193249054794328342320650102775964571023328470830703264865893038457271818200752174099506560295890514926371027416497608432950521547077002409344755076690020852599548698495530497638471419077666169623112528469376729640255127382198290516467453266164066946906739157979616792256835875096080519449694445197011342455562856700644717071902140857559026700000127536859407789642415931368138121468920931039992610060066227549310692323483016390750212526140766080467106791314555222301594883707685707601819600082421934615889558755222742463463306145089167942683051508337456689468718659355123713390583332146667239397875256225962008744754239532182910870888131814521350185562944307641415804497657806490786366649529329649682145527403342669231628086071586287809814225748392056797299346438037104829721207222298785806297625835029970942599449654925262937137218714779989638790048986685571227232102055803226940205297267240068146852543812015065985008850561691177794732111537165235556237273720988482758084549922625101840724811508127599414256925883760009131200991551314822747278436362218058950230679338114308003380191858892301134599164160732447526770879279689617152429177142842948917339235648000541125098373470678198201284190639320822381132587141963033454552483022235179692520114076854240525289848587241958389345909533080561837930323959381293285829077345378956021162483741874350382258503988712014897117580789409129859326894885277839555174340675644062000726505806412401401992587692486637375154402381780434518638734640188774947990282930183523678208956873791829632806834159946388943975522114039538405758236120966502529311505147809736572883211972563493645853821751436276167165626857722494975155174176743785209291014341322940324647986132222704003708503633881017478976333917801290822454031346325468435676776193962017488868280075244280304040680694671493428540848425523414801564047772975878192572268639200514374070519319221256759910140494877349225139978503455274449480034539086596104939075719316593224459801812649589286799742851650997366140212958377518102116969310751134507354477685092047704056695592124689034003054333199596116130575739298324134547249886647124040443720592366783052849233895898332573515816823243857899410539329627887235425432429535741719285705790970072679476261568062636773279014599936171901206317080506344770511281338462002780867421064071957404045148178734819696178106324039808169700298370399762277127816099698676992146081798658182036818205548835385606718785863033456822023485022684017455113698841575725297802108388434942463323808395577929241167305999221098340656127061012949806671426697065163249893848713943894639460035892691501184046678403462050453912155303933062779192621625587443616468314486030192321991507242333496706818964093337911091522899257939055729589836846905753278494323805812540043859429687023742175941353210960136504649142744981886200680448506221336964545050149091703633385700640816001285394721554324889914868945465559837501359451573643249919695035837522847170551656479126454628875666695831653352758312049099732671812776794492423362835999616877975418294299686690172256224442995843790597709939317068402656873994468534189298426557697563311759454957055450861767534617566244644628326977070473037972926534138508366498540764798238297493514751016350171994511307150415797505252474928648928506621244653996374081908801851681252299317505235084812153679027825083061543294204702480323651732988281442898588201124539504648352754560168850353358813892729076093901279264342347312578066286791524500350711909396790489659205277321390600219237439272115618438820014789770188307304298974741082628944441118326332998312716970794780062831169462820814481240313709799542135493102810459781020548711518340248783042883480423566402397416865862455023336275526410513951141674591617547872129433156367548151838207641839068714586312981232271328713657788033068838148354675880551304722072929392521602910646892468666743486213493837629387994363807456865336749678966431979589144382033593558667285404075390298542636597271071969995555067475133367632921625559559719581794528429756161341344401750487215874356670475901165513374803855580516263341802880706855659637545426178605378371572521058034017192336101166652947327923848976712623685680991471532369658168259528367639336155294107383771508297009238876061825961297187037468443428975369599888031762918788514015687855665724132657667777967341859132492145381085498153356314880337825499952951767027185642579145181900949109551949619187710695854180798404211984477018958197875215751969223568860685289339439415796349252939114306184051815133459256158431494987950857819366636386167803005876453418742750463842747401809698782977575193733882264209936017724339219564680035979392806519562698130785846157512760377909149804583525592431166976042695274711252802519767806815738982890834437175351670858509470957936198118424058333842054921654749490180546169571925193126103551926094971596745794145682998883246121667817486884137727807239554807877325135743286841742471443595582425661459730704126535976736984888410347095480252731037497529256928914065263710477042912613295848475879454049807287141425656041308936252015195704308142828803047653226113518051812641304206080646934869154211013672406023247361089804088925693214514691639946483100495910166821678146503878304151148843211750251217603560967782531749607052499555572799910507307220521287158445445159965660469594397384593487675764214101805865634065613652334774610780783579288548663138759229881574522555981113339717438365998638749215667509099352433091670812339061393577070743339611507443096011225658992799384911408635725560161703194019106868572926828598316972884199902693819784068773779613444851779230281749808786871424382756953699880572741527482507446305508429300339161142408932471030878862134300337296450676757866868304499612268906411662036436365028760565413912929358856071869578687577434462761810481715169505759377685382082292177261576161584288238897588666381805297310942123680977563210302143034516824542793091725465114315157713963516692937762416202653268720707282783089678971390222156577439998301500237215312538072615437638311960341176613059040877222833563073213769809393539690872679747627613406813387072127843159813512500847983212423871361931969622124324542683342982903011052071313521128032454487472034707906178145311485167645781489088292526288783623953938002599002479722763191070708842856329193310564959897576470158654604568358631449950385844236036619554584796316931347403567096893181942502121833736275597743252004324023321937000059982541079765241472771289525848227628191996029585915769440452635122512221614382363558964852347468918731724598834097345238469377834479361450898185938342990451133531092365857777017763088916123071409354253801034485679962175898028117510676337502561098630379584807338834838297855087010723941792010221101042025858189130489122036825887629640077646673891516556791534378072336427381033107696376942467983433355036691401266264521407484815660195866333278329787113344651510451308909896777910992927471451582902158861651405995065314864545972955141786325146923652422804259775957330313859057291339062144191681429730042946247453817824068228368999063962069348101043598522133737640828536770676173167740657166961738551258652152300508182199308121859454016060446292383403908242186639091693651287547197410566359055964788651074517425655392416475499715879515586245105277070471830300201707884555130380675139539173014819312509863691314152681585754463195250539228732449506418319835327313203688955575422046608195301279313292032343869665509098964500809168485739179777398997347811867607153370428511965160027617058672186379915247179685778789469361369232330700178051028964940141150419821913208995930036080238790310194656324810296445441970937661094578424782133220973098182106531515908739488037918451729537434907024035670780922035644911784599289102971682727120625070110518004986235732806177566728492457501399899851140931120684206284124124312174059881342246852241551894768718943497206100460864417508614122891773689044598243466935226562250437370811287806971738426313898396693128250747350982585116571472524711962904058544679251090019393884747380893022764165805335612465680418766859189983502979058506537904054640586869015366678343494828162519683560529218091211430664758684356954718820165639580788981150814742943684704589563634455119591854536735303838255734107184340444866939502468732901650869510475021049757998254962486597362694706580136009040178295703214149278229588148587931920848276478832707299201280786232474137546035548956312108485257140882249059110684136204454393491988464166302467928153092736318902059313182146101557872502775699764927670044065608056046745153965464261433375588569195127120910803573347458504361864681526566153268965900420994799524257397713850230889509321803387960382134463373613534651013104588334332841625752061393433227549610917626717903421232368375731331690488323839461812516795264417968813901318862749309964911663040212430123610675131667594601317738960530143829770659598815189246166542303959126171728935038940872477965337009978633291227188556541030947353151489389076876989272799570164305452457712240075093578560108384198295011293936427926451940405671391533642095269510424896171961900995491857876838810270230674253324240873423661150437336082555018656359432584218957306629277631750908322256687538803304531967445641863363975877693660804264676419683103455707592118847552450990063460651748748550786283372184337654544823771986556242310619277792042561479309173182420573428246107952515217739731103729963229654914815041036505572574061081554802742601290255233777947745545750628123095446507432990261221423443980704405717260251339350642644165661959051443112529924335284586777298907238568380261630284640158663567853209395946635615719560297009988109071364606418084794166625853347708143589746896189266705350048744823537761362466500385901604680231020412583500580445132279424126116936353708770087275773699019003594472539089732835436651299007757908391958759191890805822028852471125616579133685521287351648868274972968154021510686293630661083057172573070735218342250122458761018609612560538896295645253298269161970530373682725202392656584935640768151584926138853724737945643826309301752262761747261971329071965625233250010731610236007175662008513985867782159303741775164894858646974567116652062208857855010581124836418108448118674964513036023117388381627061587956290455382085436416864102686103475678360431563267824222976807455429646350467428924633041722881622484247366064726076257699000693660708567468852070827634374267283854313686302971786268646602793177830198472148930872335306284827435852815554916947677845484513453319850518933935360876251002270928316855506826265268630168104123218340961966744676076293934956529995329829627341535774395768309624326337777261516158769933041796580835614419444063210706453072989237278348314523859566910968513226462373219363667092513289389117551343267315532207508473876260697499423459918178934381839097275500131147363867712291599597495607385755154600842189175342414592862228967393095860530095316908585693897856876009068039046197965178155804997885784016857398675398717106166909924175266762514747791380083137775245932661104922468550567849128306678400739093818989282529684632080084856784396918119145898936790516269907731288717893319481308477270311886155348871273880992627084899999681684253662562772784416917080877583861825007626436306896911818866540404741064666130302607471699232450866707932944391799401024326059170640595433633400187446125133007278026397061581800647228995434234043318739888482994574693642010919979339280934623655902915133348763506569645109624895215904039772126075623416707301997820791083965043335493618517180504790601577197482707841387429884852144837258692458760102805062114102522962692689810887845860132708819027008497782527130775694092855717255376205000727792232329897952440048150618989328573284444286868866034205586681529224125183228320207318550781396275062890534488919174965192481412342545582198460725187346651598221184057691014327720104729770802087198467323176062899785695520247352016837209145216272436797606509111097428267651993621148296376501692972469325242023193086678131243288007860273526670954153494952098023202405472069893257235972992284326664649903542074957691263615071483528782012199538843050681925394510276153263816492913784825080668095554391301922356626771899972057661575554896816799178658981855875874179804025166621985552064712346892648211978813863382988536310484776434430329326266876713707609137688147444804380984560960283388305422579938734249999816421817781086184015601481907531550828942032339795306464391369721485855585922034571785362004099202179827853195553695881961151022328107480092973383124250232746570957828654310100851705218959557741883584064940004963740076600929227960298267300037553852254967420067018045470532332196955390318836990759406423188960862598710953344478228432480376799585746170221325932214401919433566693206392440786838128057572902426672431287432352117313712011773045677457856820628257761439936560448656335020413497228806397389543531355054475091935934453526353713484405253702467132379636217687850860281942763181051855820656566293513067521885768583442850350993739444360577509816654892359314062788946216969364007490481247995306819661900513518326298441454764770737686347574637866145556243807314385136058654384574382940040282442286017800371700144400184384373375743422660912106411670750940487182775387877802066830770291774389459497670930816248355811697230539540563593193863243828707163488657927344898017865071210482134206653354465969314152461364095004902864573357988964069278451758416834052022887047854837178266885662702195478691403221524375025471107233138378795383247841070870604083752039732875465840636792320881679867316297523309592586116971363100031872691883951897981926327605225595378240734618785037031351854030337989492093230982384627301284266558085141845661129953331156235423845966581595645717864367569041095718425726190499931058376491068210133574295040155243010521990293476797099703230140757523674758821417017114534320215345035306236259191931223438251223591463746576548659244078250566746753600272086907702874891672673402635572324747765504643841754124776481597115756141951975783742098658740586623445510658919467586645604460794045022363846486271865234030044267805394276627150891293297870409180969441163590032022771411034279560791800651081276324758154414873645195428368131848106491371510484919311486972053023935891449752543685521609118646663849840887613984563341616078362198388474023363504511424803798967270242364676766308662913700849069698141842972118272839081246713372048908988759442207962456346078404336002245389340672551220833486736826442001082767568840604543461573661580464841850325384568104630768244882484209124658075952923774834821260105297876921530461719658860516745178121228572307853443038971992628945950056328107362794380289318841145047612015469016863870470090702266529867404225015043892160599045263929145818276497720234001663885872952773487299975019924659013509450911743667492006319975476120176050549904135489949253400656215105306351075369387297918194654668891854109967833427718456312595586105743046543720801896946366419855204729665517652539076526737939009253333922379830925015286021908990940180243500046611100174966823455841321970969952642920025430418872119441247909558734856664163413138145226393611217049906880227236961928778774163083938791902609276301846249462963735239832924378468408845203750954961104283148751384231000274032723556384078977630518307987408397613138487250462292162195962453247253145172427792414794945209445907774547048143339850799146048838317804132270304710340760270938025906097341646586551874872153962961295906082319996331042152924144828201046139429554315189250012349110434865636857509269121634795451437831696844002347337601636481550986665519600860516997334893176564587694884554709146840786940064374931351513542540857178973990397506156030695997811351864926375763327787142312046529310512983143252315338589015758620457539799115669910260783381959763696515193400186652074236303555342929496648288886448300719394415137771315400204095471256899934272353073889626780794414258135686666169237798222598075742432823161518412224667996907223074964645128593646529726405752478233534020619778641721410044261912569994438067138368686406767686623210506599048665256777852634970936451071390690924442397687074489850106468821631623094109318272326823462095818566359676342554974696822442946614274378150777518214576611048119950461004552061478528606042055376133858881776511318073312326956300043217512756837303604234862598076475180401603000145773484450955143265042199822026176570885431994253552186036307246126579655984509836942152225508769384229708606085982373257587114057552000219562936211771317858285929734792283459390770402719812256650750464111159768169841947585054398615577485851293633085156699109327012796994525275895023508232096746270866900001741559182580837258670055274628330150087951549939862661272677887404552837695224425186486957831464700651501052287783101107530276964250621138988642157757994456266065869980837422401836472707126994379316370687123362063007873585082183531727474620720399537047661611383361385386846260641453962326139521894405318621695067618377563449216580208027326479604009276684432341229515465165442721558026897222088571031088372035934022960720620161986699726772414387857813252755508055788852200180560486092831429114539057331847721277524550953208285648807790275118210454689417188663128140975675191083431360230097243923522634535247890517414762474129757816486699013982279850742006773865533526741813552361429744469103723471683687347592571596842996769184672894880204679300368251162328205295962980263496736528874117403212451955213515668535843356664148751640764366002255721152405741120147263956383021380703057359483560620133260040625172018373024300366646854696708116768257297081817342167511151807590190708481944864853761899880106720832204422314037113518269460235117766161035286642109152627408536935143380061127893469997194530923572984708604950526173014752521851959607869156810764123699550935202191568908224031569587064240621684569941535415765166453834090005704959545715426845132708925710020357575313128251871956387487805750396296002708560239969777421246235866053330612152220654117045447867022928575062157330260964242991102695274489338274286999812323573138830690952895333661436532912052965432300631502950508166919075905180572344242644961223977364229815342750205650996208507741243910190168571185478526601163739215289782662037521470034963480250911988354732403699161554524261893331917625224239203596607246814000968854746081237303286991184054045480772809933516573544872919728891356940665256901904804808246906464158726729992070241599536367664608007128254728188671848926991060581101182806854527133646168598809596244524681370341618616207787966427174371388517514432272768303973314123745824013026190066270458765515175750422550669296865143603134969409581995329423335551682550058704953512978476559767985027731165799395193959379510157707067244536537485193657960055696857875491334051105157102916250844167651782280098099920487784749928330333604808331479152223352631657015181467496291388494725454370614939969401345799703934011785372909519344974443250789086053736875684727651378927551978131866339795441681567052058153318244026285882184558798928292211136186975451150432654989018080182308071361271923968513682251791108861583221409915681698793169616761955009573090690035393196966685041052741796199182457572105760335640691659162101137582216290835980396691570871655344425670219836478124265076789280779496243628822389177519958066060509777874492408352954431419686138762348896033060995302430588391710455381433514922025015497476032939570291837753318770968288701157087644285648760421475120243409618233069292364768495389982234262172992393016765270753624013633561910015023254206036690001329021941686058781246427479949464558350347658871080130094658825027240793254236632342009339678269839565030952794757119893880737568160063753412435734611054300114922867497692141845277304558437079063105783279211432212301383750786900713316062972907664167660028235335072185147887452148562763816692635975259426227410464720225469957087709447959166945359064144692274847108583254429323246419495082042313612122127589335800613112478701362838879313313564599222576547747963605681974218645197989668723036504138332269732949598260360452414653128414260543641080124059863830174810877581987987197240332997298179903314585483797732200225547578801093907700458816709365474106700763329044530203172787864796351893043861873057804114916767635591457028978245383272337956960104425532357813903077733651267583486864869456603140532022522121535041116673272215528107915281519472528036305995975750835906007946727205280550838288114782057074976605271192065319406444419338958934577788529295531579507545617252817792023076690880854295682345052419695540552242657919300959261317512064256502677135766380720080551094306188457494321677900513549962527909354146643023418893006699508469260396960704336808125809762446885943200239552107340671666278469505860349869242665585679197013194162704740473277115558414281127308432657923041008913325566237217040762989293546282383123040602773600224916902552937829187308278425813415949397584527109566703928973256683332319733569894613638670324572561961464171260271698449314218162586904781576774014826212084155214813870682457448785761400207779157725234648602015705319789786054851305176348233812174588578307884605434640131279949862378344135531777910366833179431535907193347234082192607904390977240858686970322684922538265323450590693027620041965495974166479006658741405879503581251145420820965254789600169316246632890053178515475378072833476098113358776494907999509404613514707963301760848352917056995874462143373435116052617275821868140254858486770402822392374030121030957352726970761008219589856869940021587909298994124435605451946557018469415293100522095861653473957772506870892048165320083989983640276953602406390456254008392082911402990203690557383071658518383024964552089984426182543614330704082880518926924055565355544580083952129716082308187618140630210762222159359505982166931632631270884735233025822279340509510283237228969846634572618990350067333471484806220193341999071317385923345323476936323112223560944311828739698485429690410094773547974091603920911819215310880141708296183867899376006219594839554976988859252176066073296952541470257926532757423164568423902847528074393419385235369696692184925635003696898588889770736588785909087466176604006255767444063125321556808957572237517141873183605773904347280945536635338427711491105191581391954975469404201522145577277066521449972730672193363505744912289213161615280153759404566088688558404070200716985970356464028616264108785755837020673187470802921355985256452875239494839096443349280034790376122169508234234183880006018143659551873885822050663751161652472305050533671805203307330000423038818665289876885108427455853892542276099726771409116572898447825099454613850349823896478291350181856982030432512206157683019755367768090802849249498531053631748962667360058832091287771978515214339970561497574377313211476829922491358550354336722012134405148111166784365075911214165145990222712119872562229984244838235605941843136670331595554560577958163360613701978035961357405493310137231165712588203389887176792774792162794545403008456002771862602432743477741089917551097299125926549925162625031180766971059158097306142466230094559668310553311797362302033511768161805915509863055354462304256924336564683107661138227520147759713347269749770030914783187798085522998950492827621362553651550465588296491579297367984119147529669417494397835555519728191543751865563163487320766147139838671974727625638900022721668925856743842655123560204390552558302161187537207998953373729549318572131661417757636881244919670055576233492913700932485840578170096768175801221094508695464461393923738742602583058210958137675956586172293303594028005032299490116864854694272817479112464468856243047148022090287041121770207524723396583541538172281502126536190570644074063261472691178440781494613425041289376836116276946357164255039510188704980439884151772567555802950084269952134305693967451684239981452357392168971174978002333483424853183581426773219746560064706698026721834783205178741621635741592542023007299840582762553483059469603430883999704899183162867976460018447508625764322683821382728962413999590268159988141021861062785446206075314792807345434480207846686994062105143879931774081603596223348800381474903678184207594728389816083085305873546173704192663177505116792412163169782504719136292329260197656684460587503132871632277111727749756594419838282753241729305680029647162164844764663308139328135005975140594929054947719154652131922669067379683353861843002096398775308093984552892920087836889240102750970712620850593314538432244335346920020731867245205346936148089826898035333825651267689676739814642005746060156767720761290190435886287892433366159442525836234530177732958061310060170581480735730477227167979855008084330804357199137710755137392514239189281365713757945350946358216376838026810061771136903752967182338280973468467930946163057067520514451732509849831214480236862458957861087090097431800974470791793655444275242663499536696043339241353870396384519742413617205412565768242230440520122077408502140164026556874572796838512741213184284979304651018741898946225138605412610138976074655024767332505593506898486026570556769902560420849670228363119086885290819399886557972124419213063855428017933452856508607392112066984921428370488986985337799360868860798988083479686554443017039797627625937675466175680310328635698482115930558171408505532349605026594213009690341719396971279559544327635154668752563568028143841667900802560927148725019101614333062553885863305684829427827967712606874482725196952556850258147289807224214765864603381832432691994645744979867481023757767970288453996365714223844654004466618034257476274784736112747805384940019731254770183627206939271120864044432099586959000670704193405083873668010513009100797815644498245588040885755573284490999949387453827023822524782646362198393956353814437537939548998287160820100001336892471727578191055610122663059495516119255149711480489147005041705638835911692975887442783018342116013372443443110319531473009415989124471817414490562546501807673417506075059189025720059147549028702860445993533211676731371899674207556617787643656335485548749093514168741167733614693808280369164600894662923575184182201815509432716777190550051821253909993522035840109309927191451580245154842141899472492858560415543694928078709616882139916804071655477294287237329514439317104652922028617522968435595872735940465274446665970691039042828695554479447884023283219540921163761076304119868879219022132180579320051963276176115813356875911413554580390646411807272860406447768331929508230085735227829799743040604459580020504202247125721006334117200134172072360488567204913159121648955897495097796324071717104976711392065936538710769516431626435271852302838985701359279208803957348535517774900443070512435117196113675916390951712222913379203239062879266968585287131112693886627199727256458293599122813392624258797115476717270996010167673089908758939163208356836204268093162459252619225482000139598099717489790936981507959503113518297546192790197895286821460633405153654637306783972607517019958045564273667727629792549932559793043573187080092439345166295322603912987056075767908655688777012947763770073676178632346918357606423059328654091828250982377120444076567171527955842089826244945891443444970322497321201033810111212546068308365608260083202346677585553947324494829613489934980279676688185343412803535009988934299036387567214417115794858384166986193868248614673371236198378179710473571992908406221251601003113113537542494877395337292329665048134835119488961408110331582290147429662597179755651566170671935471602430469636262568524860515722164117587667247889449606817212368865701661148672138408581483516319909108003258126482492671227619323237229215422386044956506528867667402874536975055468010201050496953816469746497724641950033961979204508438591686301605707899761633125317507394846104580555582906864540750773623779197039932048124115902362392593401796903704656359572189103161710181509888806829876103254313534102895689981876273857802299605266728552488104842442272502874265275727788292002419161053421387956134846198845951026515374544864169760112645141883814582923500512028217973224439015402694630247798131849222269574575517399210882437498713065141501827505876212645645966001820352444412825696733298960407391168625858895805510705527269048540423243877701306593720127817952635139411095302561435191742996891036184078847309481632190911637265132462068203978156604650165648348976593955764438109896120788353004214138496436901344214275808100599209773496387917250917651100166296743010760168116038464830640014822286398933976460356662663125400093972190619175372424148944169726462272055873773162823234919668953858999114087579100424360840487670191872931689757623804823506876308660756161602402700335754863637931556266027241865650543658434544257691112354680140097785605212209576724840533183100709856775058840418876731902563149427310701238511337437014634938423818610380253891835426044185221911513069427381382457068851924145950857280394956780724700702510512569650106454664897200859753008379546751502787473026321194610284926001418952111379197343621392971355132838059759987602145856291497816125597930464272104989372661486168746235844807906476508484865693426063643122497609395189021359357049887707787514776635474133080511384373662940146512260928918999313449459100235681517237138495453345981313794385828384178500336409906453610295408607980939929446293094748543154920032597841459922669668301225036092006855953766099790170476954626277215496856178158478783232470497703484431508940613359415689925264350575460331962939987615977988540236685232823600071195174277511453466507901889198877911401145671341802632505392172050778269201261932591596901107201085507968187647891305455400264331927761373922800794857223676142981713257634543723962741885376409954185171598374092773110251010815995921040051157103765328832816901553337928782200657239521982414152946021379812395956506693605997664641126569660738998193131589269712096776298602991569249914960280775608820143564741135977297663725426933112754396007583071595285999287184376331857294917459458208440117208865663039861270132196319764298578497226783968065854199687273154973251817166267427960902592609985113300870909440918771804202799515676812990849444332707670062241190610930655679790220596475154046322677633783082399825670302272712581930982636177700635822229040371599533840738033943820730470301790675021872634870633788334782627346897045844165923031781256227938792464055048087977938720164580282832902160556373331628002144872240496518633939369679217397747501622899219081290504218165852951853703010749940792281604179160342489054549042782920340257469496828220691953381703195989228179154440630898471588270235910016104758455976716413786768275487647974975669286347513059115711918426603809033692771649396580212502558781833020018102192670947623942041616402452644527924224790749881557254532970326594148619269932146618014728360665059742212434174627900021747927956995058313257563385922948185466320696740768118626278983828295336151931434445234076155313115864355570164583303471676666881853507908481248081419565194455343045561345739552189595558357392391362894760080116347847935694307693273957776867036426670334111261323345596259112240449072881340981254219760294938553862974737268470285262763419533913501079671785470764702633997626599501008584500309516851965171717463923601062417433962235364044406695401725826902275232994901178949868328785070785098265596849515228244931773775007333481741158979221904588161679098272696195027606529091074819833006063222189953880345831762603687215266571471039303036278332929971325151325012801499129883208627125415719800725504053119497886856775205245024914797037391155081611885154461783878828241512113413663747759479795874998232715877889785456990090069394063699040190524128308059055118038079302765363119365924122787153520750079305990516213320767977458314747412688690153614196874383271039530925676621015750796504556340916825696290452673781337058050978322297323435398393461726921828111184247051299618198399489265590316138784376618220319868191307619977966076551022159331833236751258111197141826286598820732309959702633373743166134959230715372899294804017748151737413990351304525653994027151151922732843354067943182151879201184608988150940641289283026905448494017013679778644244841146232482374484607523353047666767344422589200769409396505143509236993014356763081904176283028804054519563209405704105011729415302233561777962870527472621735523518966008288398463909280282666921726685247740786277397753329726033379825345539612705871451775290351893447671451982331300920927197619352706173464330353728798353301237061349443538960390562903350980923886451157219860093022091268513521821589231843328552187677566053458304454727690345088534224852691242901119281464053886685229949769795634640442094298805743177710116859151156986446000877970624301225513093324079563133422782879003048006952379139971009121462089666834040451758874728922444971663860664739619085473370121728860236414986591224446854088863635596619987782735709106000103217898813700457260829503102562440748787722468321078988696496857705873366328055879924127236630769952147527652795790093398115284999046321165079936643421707287677790680269061271273499011337650978502978367923678056073800128972996268634311723672713413755775129172527006504001654936724983375554567272623728009705398732749834917989497301529546426679895961346576851854613257081875985921746675598150485167399394436844678857655204070420470189620939224910593434596967387960230392714734504873044501031592895019897379665094454044182491722538432477662880391468715403690757852717718115758891954838061273743937101899887880148476007519379167245392366086342497630093311666038287492279234909750018719616314304258269422278989771182449942641620969330608384711242744626506398951743139212060752465890323974659249694543861474015502779311817715190902957685510452229550068558015183282955162540157086337694938345219482241985671653500936289440530542337711019056329302449472468870362125298871801464122944834131320882595999476627187631836508063056140896052158872488984243741637243250391846732275881732979364927883633492692271953389838115748854977744461979416431195371256028371963112856429454529055262553722619324500640170090928276579117120410981563642149008137695466583206942700862394552425414357517598898014850265150699509720277312338185983730538582969338700951261796338132897205666244174088611886309475012929981857536189917978882256628475795590658350090633842605312785655053564758159812107353152128582921369146910046382870018686631702159816448404617254450491307603213971382401661476023268756050862717525542269552380096449997172440937862177309482106394783920414368289767725993846251579961784874029225390477322420363443441388837499834917568849172983908482480052673457118446989391974938538966039525954874320524860708200390873207374537073836967006005383039302694630716348119922178587457561697231791821629785983948912386787068593172085479507439560284510715664548410689538977861800186586355647222332276306972813784570115282914248305575895406037588237718136348012647967234933413616045726085961858745360656821892159686275252244195404186558410123366364521615386015213816829499201187536240852447278042300651560888652419039856801796605802995564292409067294660209571363136831750681625917144530669245491617186247248283878556385630524195489270162767308141226788497257119297913793219755483202075045653807472609617560866444001313495548425036410606202689451406096860083169174553244352857185939925563612426716358391198254761603431052727354077559155585210723345362405616158298298348134449156094181419017266374475984717482683277993467687680111533705048147939083232853125424687733513212866890503032884626261992062984623234109125051244183261902254073828135566312198497550985972133009646658203301187869227015915723327927270461070364161475246523426716404928647471332511001537350429684603513500082748655403404147457999213641702750808868780515340526999895527184177464118018938180827020599391459191430946434316758364881251986528314969187142682866256688292025914234836502790171646534776993288472044022786751815971862498944903393146167643101920555685404081656240585105537848340479061608944939666882070116819774392336574009423136190138302294659327901497529725209852880049527899718848499173579595613989539340792318297382598256947352793269622213342885275396065511286191949590350658657059673536810565459269758322038811408970449102332245909535259925999354050299279739383492420836337953732696108636686377587922123799426495046264484695583278504480637891412183177048155485849090601044919173679981420407120721771503425352335682810783853950905689285738852903501576970844582784961553247708591237876001266247156292496202567227949830415296940501680406237159645539281854166366853230800086446869142539067635479965809925320947170853955501875813583568085797693866143637751388847652569782431932549948290607429617377311175941252080855555781505286084845719913636296346494198812079356641481630022024353212259269460360372390771698820737999237498334358827698882771257309959771508243556975612277044733954067325512224084624034146733313082619056803072372225470951769482602089872053881049026110366179047852060754976757176119072698349525091878470304218825792964190736603897611560426588146580333514298608649635233847489536261609805262880871091972717879418727865033538686120304782533930253212915705944420588681836494694224051168537567501718078338091123136551618487349506049553559356694636110351366170649778428150026000099533083376787719727361970223075913222303490379771668978914993114359327358028474894483959978294353845914148176167826499416329846939895156040071391401338764489794472410447730702958450166551801882660137778315911078480290208555963954211649161796147436152053684342255951383209861929431567685089371527779779021980692292164682003852850772122624496431638316362772056808809876164583270582329989324766881326843165184792064500728478135302325189653972209084871986711881504855670357944371952180600417501771657577707986716779967870879422255989123332654886853196833175576805683524110974306447827276689846301782838214573704284203647330151615824931345406145289913467198643418971931366858310175358910872718748806108593504722761838499903316571794353323584955837543159374579343755533467797516670546900194996675701748200131812780145489017163447839110486160177015449362654719206513629378453881193495937929929085641923086142941284614989069477276368342448579099306333659906392531368691456521019139406495638061659333241782578292938093606930542555956568044370539065587190304974256003795802257579537851614962221795274926021479329339747615099603929944756672258520271115039772968212281734388834322347113647783739439627524775998387539945724033568558725810946124050842047995720164125668278575970552225625240013261721114890785569544835460655674218820138911231948246983861287557831069467800237451222007388779892721744205186130171957863279802736141520713181367401399965046736618538592871490816974192061010765964052887736074612462868330817217925017880706850761992106156467811896845238538750125354456930126333343860209552115490163566759092989369225729143585820365686388687959416856841110749518619866331316431662943437185641065726176891880833421144993646239030457641174106505938604068065912166608087986792742400610656726444016569671970762891724915133947244549518290579003772717876180330521122365680386343788181297476565393126002168651705870049022623197495808008776027219048889650792387356922966344851553712459327050783925143108342046153336565243656589241221088150359817609250163359527220015979346677397459973902901613260977696364203729205764510373080124243458295568529404961559703419881893104444401799539893692249524662912521322724913570451412144926051571791696669648973200285812776966625046875964912058873551005048055820585390770764575609100116405608631979947059654549544494505157842460288746550366710111100791325398606967430303964343254348930023951510104029114439555043947085760259389981520803337637150195208163071846156371793087175801241761114509899095250845522471653856971612841772010132408237720330765261401817293319801750688013848000637807026386131693305819519781733657278841639030681505432005837787931843247486153582948860129765408063326526556436726544865356889616176782627992787239022598316856035566537988435979335760495971740420718093184764510098944441433402766476234540924237052313823776695623068599305470030319679485447889298268741103482549737163429154521185697150911175815815813470251283538027204558337668913432970673267293183783182573055205970912032251963829844906924883374564958901474926035314870753038172046582163860503849134531507832323624065728206599698103997282104416855539839944681808914983609371913148589207095420641181367987143005529396738822981525799924369406440693025461284596349053863130603814832003305424775965362429597365024776429164437419456693171330292015020592720507171600591262608207441585972236754148572382317807980562446495306663424930002612858326701940059110024780517144243710303153889026024923606158985866438546295190294792569467553823343254536115383086254489022310600125146726367051851963146522837862277452557760142299344294136147016279712780544080164838064422779810069258917765698276464882663779845869598192222234035235507191829061252311116901568622834948286014425902961651322062922474218857389275490635473678665620127403223677648689960930492531224803229139024527286859223659217006523921497172637438402157278816413690775265762414493635490731070021418802958829787695349902227298775870786404027352837059496240281602376045176821441223488082929812947801988545651436597205894316893371719234517778161653391231788217004247406728354811672386049429961572142412594380892846591178492562307908879322332242009930548752612992663506213580244046950009586819638769795653863303796916899097068166348800271408334442997692843349578772040647340931803714865442302239439502596827030337846591276960198154109588227442469205631085994010642284853658490753270691500186753381457807282964037155942485384289660150838055133502056728314023912231322657360477946493243919034298053028952647149195967125039066069364473981205548996436854618369278468693708890212628862516304743208998658976741973458430397621408141615535942897091316462048775973536826178916389552672004995671418228664574801764865704763702069000092012304864867191697965941423080955615776017486310775378665218137374253092219668643505181058675311829032819281927091094775106523493213520984723232331081439512026858942261528707406782824419387991701153649566180824145718441248221094723168044495015446891757514023995726311696986785292054154331560146529816370329182833288879701936614027271336399078395177735304844582657007869048290569001487571307002567818392123971638478098329583006172694585620651841118832265974464166084596290799798549301227615411416308019129100103262875868063887558482928545431535625011449600197510549350721967873244784450371233273524410921719796509482028500198784460439849570234308408229588735608283978344837998244964499365405176613184970871143584393755584992678282901091099889432526654229794473237857465307527703641596756324298902516930451258214434648504516620409570257651644999972267400001431882571671701457617411474197115974064612988813493725752421736927466875536884882786350174338983330823768174654970281589839673500795769364537351613363078217883389272481439481553986742393349198608689438305216867150737187959428368641705849699651131029406981189841086359235348513474355700662024775668146817721638789188887054607629366440380942663762501107459809962374809812108423090485724438255653149275765066872793525870925591274780135506724519708096927884157380764472376475678872768946187777501596570516185642177654870433922768326253000739261207811195799833091431522760767379856651077140843517523034473490920981711132831850884474833947527053325314145831410499507331032178795092134240359397461068742479434012522143531454470889221125173799557294367089721174122104938581139082119076752656456398688044830538765003152510028642534433842890278735825435816962748112752628189215007985232880302741249841639228487433065176667888432301031131067918004005973840094598155004381191008224055721698529574436855884934086377467805305750670503296497541190799184599790520351665122593701198832104103778142686395981769511862800203538109845787430518544691497391300535685663240654743336636523711079323275485342376302681161180654934312869896414171599287040021430299612202973568308213477012215450486100285239209486991255825836464289113391838511378254328841429099157176658979485151253854704759046969825938912905298650940761083543987930052797567795494332009293619435076464388123997399771865531609945054112879008656040090415418900445641812400074426582265158167771923795685355951061411593597085529428569171083946697636028439066096189303782936821005759115250074316741075218005539264145048146446162525885201095574723619721718026610608071999051859325738168844609687005548800512010154170649508102147622705883544628186130819514325126428970401696382662060036608980625602763774472455394114774459980310384039574972271033004981027506253355947492844177320233580794669894895827605940506154669320324005164201717144523718579012380389854427832269715486085744115999717996235456837793012593903939921278045990450999658040005021828972735071233178407632583421536360428527923923171159459016611881661757658671998808086572300911139325269567456468477108600263380532346312853445260512492978267302501518223985659539673979812091277621602640981323957271908991627801387033364627209854138611348089397816373286764446940837833290041377028558639381705812551964095268575415025669320728784496762487446329971080470882942005170784639984050432988339382540965983791838083181502385613664952942284225419587793431888389260786718787816334700359003596459652060729840973091369314752892057094803514882431609307167350611031974538327726698974612447699980528956237561572410074119668400661994223021781006512207284530460678848564515793289579850042259043150409234148459489880389835000275160620158122954426453688681252218904564082962362430890559107326452512393756821294667727688963681284737086858848959829203737245876008700335113024373390393748362593386533252453084271108704935580496081339498814663720287597188301162169565831329642707851684104218328669890503871474069078442279539447850420710150724612998706548730388696446712833765821103659525692220389275117092342353328154975751056402333402778966157156201796207717901875632811844652992187856637098014748371021359285478871881593709191294979640983549352083734101685110612808544881707040224791871963898705338201952158240076671498854554359734576117309530421239810491922444091019066680097954909607772191154740473741855550040374238628757107502259128660778920665507185316972983867779009326551147992785819555327113488343260778716690372135547583409282232707424456423814202638511877748471866275946739024959827977480757493767318538188967793222703141379404314919107409646941437017974125292805719477084415292384549757925308715801255204940752437611785666428206471494667475459964925713218904271396667259994275412371896672206248740053071348874889122948291828066078372352116510081473843238459076447102035583286472541801383340204890287622705066673744147128151103651660144282005675642199727644674277412068767573823001066872857308119536773020512451157037797964241282553671585932430834703105002323650817517036218053029830842964893202692996275905323426931226701538838808695077980048474014076146913732569335863133420574279093469022208663755174819293733339605350205188203871729596591835996216694832290495783432161383931307210748007101306907327836159510501940858197556919235770947534143111599946743051155275019537957550042249791096270116867919255348366276680824305966167224752081858936352193635524686388158498766572184544554875551835917200596801754332713036900126765762495429583641498127764239785192958953031502363112386134017527880835487102138275007326574507513434097178577618456462892517859633957736052814453110452953064349047066018322093160655237975892193204212328114601977387482240060896913057833112732575927322787046358230058983211669342808719752581244859956207761162972453348727472184055274508334357240351477144719415990227794841525160838753222786059033241724874948529757958470694516403600062228917546372105206577481945770561422687030428105526324643027639684615792953470507049092220989916786656568605889777258805005871649662489074883884528517014106833183820256108574265931647138389697875511565847347631576292534392633512517603398771061684962449070019079887786294082522668665952444566261022847714939988178549164824320488397434289350929419297289428036566176996527445829304007406531219631374873788266962069712443109704448019752166523311145381870879001488576181177225507334868785964103026551227461545671956871580047214414743208724877316267142680135534607438981018797802800548461268935473936864577298727941086947194185818751687542898258645921125702317846984698212939221605840565549399686238814516714116860271492200250899182292126420618427674055688103112860683173764064719057497617282780791207030215806625755911145237970713857381520450348639574051276110855622186331394558841909694879481385900540394977371274871854237751842925780974435233512857665503843627241441900829537886250830965200966759100598756829124768898297083434570413732525312143829572503803265738567300626343892178402906590494939658092271381676499363773202273457428673225599898613640854658817367306248494358082201737753172023808318848975885299717044131270562391156714092788420439840022151499552378529898577281142570908817574656104628601611649227608092350696244221589286752677846287884822605317850522189950812518727091267263875009744658085460063803120316722117718735076681706928420267175427538298294834008560557399053576893832511594812202429278571179827143713655557775987869567517738191742698877184597454992021708435494704067732420563373138116926991293551066833829663061601812342035165022897828295526813320814509167700594006301719902340089866332001294704657282837608958070612165274371566105347666248681958491719107797590302031929731392197653245537296534643192554058187241535835598127761882079617966060839977549398156217630749163324713770573723406582088842269860749334687100783780229083201845775629234306174792606195748475298519767563474869047960985906603676411259304763924755098336968914399902812316953230455471927398339946268697173620443535071811724718011480251955983006968350293894342243397367027869730320242555716028353957536586411378501567784353347502382338669525804614043030368202326961359322260065606694950281136896250071300887478320160403270623717431733445333674486277883998234438927234530676741135018238407432397642453059413945689874017758528170536103072009158432745730979219496345167144486560062903782318299837961674148249172008248877014516959474553268374379384568279060124293358142370845405267139086367034704889772778596406339603307064610591448629386279430715549678066531452370172524014151437746124304176885417070652061414175708568057743144397208173602109919211951012076153581803161964614785100358632486110981764230826367919532865776865812253818482392655151298736672317542301882801052588411157913969109231104587175746496491062104822358296655153207105919124537180966650492882237983189897559572483286015574232383535370728400544098017112750986499958184693560062052594605038371592078508840112705800052779079232068844863634592067233943925079499958332016433863683862117967107255215684299678193956928543878210398067248321690723566840736124683126072973401011286799437457155528149561538661165976850073584216718792219801347395839397166844793551702250895457426837478967658282083769214918885961981844458635260599362611405464147428775250230053305804102038997816698469615423987705974908538163148545522761618788993887707998451003477838973257003202780811185098370594581154642974490447446625894648686667555622124458712597827130342555131524112186741981534791395043433665640213635144908078087059205323233644274375388688861656181931024221740122759529838381513351460675978399156495914707304092015030676371624919104569514017973931240699120281138663622732229209873124463743884678538543524762354826331116479723805446786395835583088201538337111599023995531547388243623952877070524658219528240257456000590070517127702194822324971184383026867987294787447937066630963900001480721722229690252007836630807796600483580722511601426592407871801815955439652692845678957735149110113312921373521538414766156951914915284489505078548283673419767735029537850167240434910061766191442708674702004773950773136863212278794412722025217799401708814752690068762398293920053612787620301474234204716386654918023400467073550408890769148994269954555801942140605348760832862822538619481681865377267707053488318549642084416736776499781435621401752882004096574485838015998471340463766746146771538005195325780218286539289160182864848054461504865917076207211008553239836996298620616691462765384933770641936133089214637262214928395623846780516714761630004254687753423648205709994896698984202172432650294128786727045096042162648951740558873697684562482528256978560648986297380240917764721119409809709530983520119238206384942224115820514806053258476624297330980200986921051842374814938623971947755165002149246385054194984288589966980514289746404202990574360758734945944560681238811459825487122533234659195341475460970655116543274448674307061932642513784527763752436330934040014195421260794041700829520821396918873532543580366130169932425815140525487138116549467462413381043890235578480772963049409459545506688749916465472055202855174146248262312101700765860700118844455042926191037973403606000906280987947374294298950595577492924756065166759828648572297814894079551924614920807885186670578849962957047181424838681068308458941170083293875560723987840030139125959379939187699639633908896691385304686644720498200689824598304541963442604065471369953463007006913150018942440531146934055091927128797533987811722822939710029510249225040409136079586921659732717754634019494292460649441883365822716481019525333813965908355402665109150456181063607874643114273593376067234695790055522606742285859786251995649016184327508682889920056536683260242726698264211589408450838835186212005376247663854371730563672065506063330388681836351085826526432593177714804231999575694170224655887310116629603646745410071220618070891251066911320925437122967411392733105154990600878321055319388273982951268615071171729913165984374350892592523479751096569168994573586632613093151326878134368250025257741487452864525820240522683648668351759148172331122104476093017459792498299912230892775591095288444100072490887989128591848239104631197228041753268267116220277627106004955482737762901933993051845326197262516302601268236863316199563282091249761897945238789464487440059448204635219203747960108579833781527926779733274615538240813301323600182925323040851863451397638867560140697349958289468196349246087649469930670403822302622605807356667104330144729063624363613457060872046678533156046709820714901834753563484041220501077365344587292492682513222301298334039253803768781180503597839309371324616870581718412016517023462749265581451933182351071038209442741337199598039142246262099354587897810988823930061033799033037803958048818628825180679231654657440190599116989585425632951684397466389955995943393236195801767957550683607637054945052620532081446426980735654662004334159559422518862183230809315601518382777666652235886821242248094086277930219470402803188120875447170668156670899552845958944985821827143170194537550304954279616809335115242220266270734686517427800243960878245918023728120973161097562790994789087282544404463366066388141890831355817005074300648380334363055591568721145407719773717055215137260298772753222273900121920739204199970134313117458231950376169775277482274287938589244371893063741948488540458977796596746199534676451357494950662611744332720899138909755856093760637057467282949567286675707665168756125747993580549305310246246484226189908429546176122179048302821168555404465260839939815720371069753585293376809474207951922650947638632309796665844519526534390672308244258518890997521384404038797264587155657909194838339862377056434831970297917531777230877565025275272850639484707668924210067327715277838066172525088180040144713334276558718768938477235501842094533909477360090005611255766935016417421181782965056514846455083943634814434328426867951248035493039881779858515885853182912656313973331422935830198730333752214080441614272324530008644108124534283225055743155317902126437500427277114975754920996508595512770731273401346476488385582244076072101964211804804931998844745880180315244025770118079738778343061594172370429493689069268083138783180512441479630886691584775521015759856733714356060525714514486369330859058374901496257618159149898042347097723896459045159150278239447768820700015497683947272369680462869729909218208243445619378965489548519131383556544590542082566434623994723756417246998968514908467737851283809397419706708994065828513732549747329326891576301715690714013797799546781497670871689556295969763418475163352957558846634835943210353402051500272011195178910009349929223943436246591442110795950032822149037046642432638865467255811509355722347694714956813480604612313674636026633711822098059778720434065877362386456030919355091945487494095217635422900356967429120539322142476856575471048153980473214420420566132561021671927036206294895919151775959659438885938246083006874056987526789504539311536228858213208988119026389514165341870249384910644449735285051623809654975939685225862302381717421376207456275023043676757118036614349523759593223546066515317501214475842159919512692773290316838794129713408113072819440992749738781212186190734563552497543389292912922512505369277479179262573818822507399446749723884900572700712430551636732840280524739046842649064077089706733213111419217762115461303989561476281230197115151387464466199660074476397669832743774493588943510027414117478794630922852691432197941606472763550803710906802783230010218962319703196987575690977500313045203213528170537032493925795164431951471334315612216903176299615932810345563653683303291314784010474222098836484904249704610246872915707413103399384473046350875549881389382241741222283196628506959923100853534669512499839023255982522929560296332956626985884802279279971666005464420278782179287217934375158084629959466570751296884091950722924018405394174829078983813789641135833797876986352926041412888446209962228941879539951934009425035085980979939566408223171504244090863401311697748324551023145877411846361011703948667884599345414916892988789596643406077227884980531303480128810649144337540120761187184603864335387935530698071397843800633844163549100055432649394641514384200780960487616034600920014185793156041292600090210699884878659378254474805040935444578921370261549140837324184790837776703978889678437887422588927213397576479960690355841280387410653525627954377255580054891076652634965885010291700570797717777367764938001201671081871788921189195529983824985750127328795544240418903720322528059126602865078139169273830501593581233545708550994503862632433028927732526724589070339500847040296043512210206250613639921197128801014383148402523174921693102774665001249859439951618853388623797847814395789500614096673427453013440280543131327319222761798643456549332725329320139824338141931288018522118810593327490737885165698117538827179735420741971875990843492656167147028159692788413231548419645875512319878179857547256679421293678304422165436020836153829674704838621169115345608627530642839356058450910175687146629893695717844304905840467917520591771761580053400976016411511639139147106930502480480587319898446669090410563316208890377517950878465785436176125072764059927241604109682828706181811486772416428475163913876286020037957099031975707915181885843388955101791383699912991712955711478493577487978972434814977829546560057830544333466266922700767663869429558502986905698594502705476400838292406068153850266927553236354614329151749015827638984839167177184369753576796797582043372123098891406498099684916563496872569366824700679202506098607026483855229433799993705277146258577579154993888443285751229726565092364187384611422699641505230463945269046467158049227623053065889672643285573569798143933149226124317365513962032960627930093056926489837335484800543441209831947080408174117486068130287435097923604976213387432211184675084967888542405217650653461197518687941248951444629179614775263630975999851705924587538228068518712642128227278039023008739638354849432726022853087973517207336224632556244042728922299718149892296761965324238318480483749656378501538440201005464480438726036657589445348392916059712504355124518681118298803426416183628567931134215748841970095863849175604694286100383625994252501994273295579301618846014755511436365168566655225158238676725130361432888422669615104158185373775785304753194336524346255409687775301503385273987848773326169245674587231700175357978865558086883736535865868677860518493153329868868919904388196330129399559578777788890555446742551373432223951128895644682291636572263140997261584792288020640929797372510794470507794606790000088245214868437681206931711888318947762642178152972055252901331975881579545943752712499878910175392596923363353816767983847966837553377270806549088637500385927059869451324391823605142115442507525910544004368891674295843198999583764819056860656121916558477518148421029050196189604136819538754898224113076316165367781588338652136627962461551786096443480003645979574994202972925065916372331587486396925690019692606847493373701486372746126634785579881107445862784499879356593499650266383711694364117146099926039179239860589114128696128842720545730683835195271890078890959290647172134490216882825818694541999182434146063824657643601576621970659347474855946637166678710551725156658630890157060936693494922333231775197232676975360008093776284457386462265602117463654495803227548829426863492434005609222654581845616382749372122283960628069196455746715504248853849678939248175435569230695275930672021589039859337527281268664751079062208620656537824964092995532339849272554202755345438481987441346007385630747364060985164290614057146410111672850358596534062943729237157835447753354113786252430702286814283256832959853204180693856141093745229278767803545332846132576554804561233475228596286117315598516789376114590497386075396187909685077967099322296003972177649792178823518781111331940988642491712774529198643146073863078412593750683172497559660644931040477548097832801642420850339931928523073282769860037226068192830784765627660810207201832257357724177100870307489476670133879199324316519162690958007063941058095986475736017275085701299291590361115472879797458156478376598078559586062066337166092965520326788825564447490072306654931203420925556330888163532179628064477262090687131454337615249317704622473303047116251037444059667724488842397008028193379117748594960372241020968040216654433849617711421109761353248885662793906497366018303093713524242954342262406558241388201222557443216795205156824558637152289022806833206423455323059834118495966026585635851883973012586396258852760098699800909859209214658117410562663496526687307358782000915773746538373205079503559490646814133340228222240096226479502398034295160175384989287491507512976923883696014144603730023453629249499720694652887351172861524291981188216268079211839632759543562446115666481216380649596150744476443547105729387176423237112955069367579799329605852213502586452225531022007599801454351134568667136030066117145238680335218825886015633827547679154462007124723886372882459928896948435942499196524650162996347582767680306264244073106575069572482551231631281811099470742545299144115454669935096103455204245381993926381734988787101032340710906308227802831632626877889179869523843516937577957276271768427242423756940760304177679732174790712435969679983607974478963015468991236054107454130494779056987938054301667997260185271451149651753921635051954947740722934069934936305402966889947211367069658367692792349444743686199567351533236117522720707070781893623937078440644414482436253180695932191036059860000329031875668482914235367936530870516627133558081012608228512881423593176149573200840527168544473888900080401842850968317770709846804852704744865329338333310100856719132665339057534011749289121935883772553713035949023598600933439108130064933712469281256377125336753626133198595362586504721882854693330447213911994644279745049145714911642231716937391144619516937617598908520588906890425153547650370293922997641989317465658438173684095167541261960842044005128557852854549708514237664369100279453059580616410760565712776152272451488926928927543115502466643220358659848941697268022402134018433641839955698122550557379607714351641867621393430723534917946044489735322817119848872398385583119862668435889173726450353695951255960593900390254310447103548200962904874391629854783607282586568695672271899885646349175722612591750595383630704482073097110641988501274457311129101087124555392460624712501126233882896846805418350372848071616850376301925529583620007894846450538743348212144844459888275680134829355069134788231445940259717769923111804970445520278853295857771471353876145718410714587112809586088075183249290537937774151623938121433640888753292785873917462089354691752291783501944126417889794570844915924397384044966913128781951477821486130201699823075680294118325957761877173209420436452804295805619418879259623748179901468951645646389388238410830934929350319702551607750941818583918738528772854526871808970902318910822891095140956276878306661541022028612846513301934257716882255602957402405593923396382946816932315598936989468184030882955119064911667604585931701800785338484689373860532813168733647284467649822808899308681842506442825737879215448442108103029837276139909620168496970234333222065267905136520363530814696270246041298520008022661400697523722337436120799733021811531743950960949932598991809680456466430261005975062731256499163169530782211900305072946095921925994127416384374797564427274954950708390194280834221735767735390606201828729758482648837690440962508037249439701003003228257031200826755694305840142634856958638727165944956974931184403323996036687484849858877775236626956323511778614810928263275912085383428206002539177558521565291357733816490681323595978438788581837859819753718926615615014878609563656753559022397569357394215678694006691492953435083438393802326883926589711030423861430287505341399928910179611568027838852002442862314123282561134102613082129461351632618848106945881589555669416010522368963682708579313064217993878891618176721157448872456846245055397966896836676162338734452247426758722321802361179982890625047342768260725099998654070842383307602437516148655450108737578113874146094726146513587497281459236965882579066050608546833650883289534846605256176208936049542418220813161658864058253135133839918173626599168440003755203460157099376947281779037903169662827443060648719772495124140069343201006153098598002875790798843407015289429916117032212273677660975460064598868278681526387547826774424438992089067757814693669479624901670435971679963445886583421066496500811790570128276382491167450445295121518652213144750246126386375232085634265997280031573757879522001375744928451929539461415996709728313096962504377775424861003586932937570863281777588671901318674895812724536685117621478392630859771295484676028537605445076602726150368517449695571597031918460858800890124368970601147470203470310190926977553417365865882926503673773428456339387339095505676104226368802824095705621572303671753161103822531177805641811238315249876426428351363825736272099752444870980348315142545429149699343905842568881484328973015336278756579376908070035988593052201095782343923300100788674479524173568242143854830690791926277567827169735141478834245510740776060444689814669413805865090945320098627001904197484956920153793511018042249344903154311458943519540064265939403243398141588860837519631118427741367885329399964159417544698718794898895981018907203383182490113449829304119253749840140658008319995849942175287684331087564872501874738855116433849564940426270198302265721393246871712234195148342728602495269872983387872746048388385878719510770362661877569361701357954032606917240621959310930259153445345111980901194034930781031321048760109875944835431472242701297242232406856262532631552947225114391992523566873933077018696080737094105896827553909756278875524471782997182710782146250306962481426625174033477221649221522793535024640100370671631633828410049988560433646673237153751092592265238633213897920929367076192706817376923491059974652020655737124826171069400655861252200477557960139193864051334678881227115915897590327979521076684093090656432652221884999117436308191507420247739593989547266075701423196340555438591444470063002295586844669027078901930220476615109754846397564134195970239814820203440181820660924283725688316541825053294474350840150280490374710830575393008804498000205859387057371565025804144540430615608987068235388552999768942034024764035191464627889010516886289457652578579515885095729994301926732760527556834978963619501480707903235911188784199704941579306282184000647923989993610824398745745333963861280070259952561667047599589314178851901227185022403716312912417828701223365700419658582668850541290630933276484227061007915829957869439065465961129700414917371872854406038227436529739339100125699275188934076867498166182335042243792538274260982193191433195635475997378925711275599859932276414342241441916013653334790983893672241276181394932735096004140891018149252666551076066831449230757919153893142180027961343906543788810014577930149691572559379308318635505976141049462691653141527513304140471315893801310252690309859316755679499057241565701963738295203444756645754570669240841940094167227453600871675566283949992651663611113785027953244131672288374416592313287236022080885665156056526228812104763352097408656402063738073005196893614447745606370195826895960120552512448739702053394684752769449452326802950213400327338987469363321849675472863554359201264277602581875819640989002798873592968071418298453516631945656592957949790477111835337482213993616939533033862701873033832337232383542579121587285381964814090368167985956940500384130327161449728889398243871243891551676207823625790997338220260565085013937124077209471006001114698310530371775875864619179804057125154482214533603813384771125124448142964608769281398391528948598889787535820118130415096182648348295138068526675945053601359832471065344723118766655330995392789282732436609925494789541908227788232120519737885527602600693752261065560764928041154027008346990031176075413696720225201520399174852731623691219274232896476741360593271759769279759431974350392600025015631763453428088267929071354418104439034091600397283573900407143951514332659793014461502044879791917844675115820996339745055612295641839962700805986021210086811955713199300002749740200462940498263486242826096543526663045828684567942790837014715915502990818122743634460079922752244812044653436623047911205539452140813082771775700123464756329110724639503538791981608373882471925649965504896935056756207948873727675528058145682034393859925137073008284492018832992081481821423483820650720677770914417049701510825199140461472365330470885728341540667246748317277591324547264963879094096833638613655728464403716042403368737889966335776674828495410014530711291169458063094033387228148822613670550784241658252561303873631942065393839793166682157997860613373582321838560255949921434040548665883678371003838381501549092742259518854170695323237088422202224752297872444433277537599368316967212539780938225056562941180632751031112744293859469142934729443474172207861077904953601918140381590584162697385267190808800537135348375426647533209966514209770572993892103710840385604747368211756269755366167994492020338303861284481060428667965596893860461340605778422656809446877252004872098977604519257187720944451331691852890468252038392252083611581442251803260367470491778175850721241483028827331896266394877883259535087660888016969448092591583020522320670230841263226004846253100382489243450767951171263768040804411551553223295512406843627098333999260251994829661391745592341209640471594375063847567391628341875855660727650352380501044779259643111435883881803869896753071988730727481307149415953341129112904534158555040006839708702575370793602111529761664113574010094786053695397993588369747653922187267662722607484827211472874115135750581244522981020930852035200963043523808176944727208822936320593263817440840801956608468508867784691947528766256917548973161061838046328561981904289574667263327950239371206645852759820528569576716491547822741321304178130818829416388712357266928562726749096705616386434799061942515302252135570247637573744876097759105382835016112694057450340358750309692491639907821955301731310591666557426879533813412086306127731895200660775559869912612503631365584665836334524471167695871608463362097129507845880860361845988539288639443505598308717071396275480305441631221386515481392571229932275446636665455829440262882598139158955787893236106053292227361530921249729880622528216453439070881799350592225040420141928157725925329317019050011602634158440519924267324837265635505071954937154201655767565016449999842912107167786413781045140926052431892245667357718799411312187278474979261427331384433596042780935203199537266424278419371378318318060997732530507239779188368614184359958353535315573306707263925358189890648879827888646737331135108006655346684338994992439446389097752664508969954296558220029240299241527887967210194657172845323410667817718540199904698735450740523800381318056207032282416377078406567894192692957161031715634146104561528727394143220996178289963908648972637027376747101893006676640488341521167969457691833382227857966151298695485370862669177472426813374525860982711841600022954731357463001790766724688161526810575500111479300248644377373962617341002965492291545839658416489157745085651024817110387002490187417669420928345721440428389847525592972163849560869867571618684837503844367520688916669218369282812726067635506253116574741835785716129810262279499882965681488674972616071599338468588838575323926734304445671256977510793791382480356521548876682923283818572360689068237322060596450866020011657886870439347336382611672982647352468699145776418081271235086781280250657327316504607298712377992285686282563545351550173085197608265281617197131537810290575230444592922453897155354879499257242268846481267042565017810852863713813201051180324301496745591109713717222264425190939960753640942878273380632265779085029805153700325018224325618129692690184677299630053433593345632990386897553671185450990522137344772155815534253065830317984522036732206274068671955036736183855038792133065344582284655791164290701779070501248169224435796337553200199989988573994833707143814561144470469452660562843778222614753867802861996639741380904874894767735241912335734105518629306038098358982418775640551586139115822245610240712707810742819405798032164501054264455413550709195506023434428934108626220642041127024525033565022756267034508770796342069359193116220194292613382916582118126012304851004556912242771662362737394351062461368134004092387743969148764444775739019397542925349069192164357961084248317716713080023186077928337696823109286264293842766096000175379836570783746229375468364370741445897938391603272877042429746241346254720900321488123003370445250217015135311876093058190391128965183303889538370838361728749172126185136857701713786836813006238210301079761517327492047191298652270794483277611471694668306784095535244843312814452664180352247117582850237055864661509896701836781256774853392095325520945116683267579833671435419551113761099744704020606292392620159886811132327943036068766574798827281507315683758275055322332708832635601350174762486408926005855060586199585047291800572058550820970930639795994202518261420237409364489198146491041582207660170815174639714489306658813014998359714278166284976583786547620368131089934874498676213593491627325097204906979794168936787149233131952039964843627680083761456330563040783288737904487165868765353725606484891842442601557817613764409557334380474205778650967195617070591193140550210775115184057330843570643352070158017116097673612639417924284270021636048748680664463094764301210196931887292430563458030192616877029004287781366969303063093230994349926338473011274675646363266157529989883458180495426399382314476967644165324631199105341617803717631454504333478141948251523269055746872550977344480045966448245407820155923696667380222817689696456989564175410192898583159671765699459772410692637090828280419240103600046653505433547323703861304710160474897990670048524377683557139848677222380602154624317131472409068680719685875653391359272834316605973533384537619200423746459504746705373927568264534123444567608531421060770337192060407251637697708212912304572753875573353513091434569794176641699369418369159708909995971690091772760575449124571432419940411756893860839972391475945782035157792758312304903185053275205193747272324081620321628977975853472658270871312828099533482765358742280820990255904641749082518855381575858293724089487570685369248744772330601759303996815249060841709329733243200958507148766822994016943190723055190786056168731625613659074116978078441118030888259101696411568100141988249569666626724897619391488047481064293491479725413162491002844317094312909852181018528580574100160454836609666134978084721110976937792908894065642337773688520673813240182769360364472699381181699720230099295007994729843754481093898231832496992916572920687945073630125431493189932493106552108788683513471516476475873462736389577352163938961838864359975494675337904000119286448495813588704322455285125359057497689442984775804929718654645111963298440947550621072881645398769961651468858125075956009963941137227435877647638184039987636873374500944996471047747182454509695836025469615271283429692250283960635326829640935349609892805431418440867079803011961295636006337468582281732309126020811356927163798331652145234554614817854446960505325555475796690795332829703814234476033574412239293733330040548079507158563211174558978172294840532311511935234625623563530087968904206780226220369556762720972613251945121329725429166447697153966331104463428564087016118465325980886396426679908135295858743794812857908091030128962638037759441825526015727656245779057588733742139344099448296718033005788282374921015036777048185858797522894437119596013366780571421182793770791805373512563259006692591284782606448916315895453013011859732899739936756605444101151371887016795656841364776711556627523108533814151207384847449255575075359269862228968471603678264843288467014320404891997029310303397186187375574489914672573596408476703205912847591522919090133879030144675268312146682114722041121870959541887162571495085051090994887737171705087879301386445204477057986216799131526007055580409666515551296648866269630676909390189818572248327086252070365979917050011323831671910664976707380993966435998375841980800269277253939160248976651328446852903961547288668814519632036976247573183724698891861780773004324375536288431643009447847329128045990889544273570506160541176183804660712464434293409222735613641004488390150652120110800066091797792358161514071134000646616243248973147556882776092968016247795033115152397955551662046097405641273481263573506761879507222838744795936884610289418864587484768151608341555612675933566003561690978458151316607289219896929777983482216718200191742366759256041909989338131518728510409508935060041229549266817715228016631538911886187679046763807436159264720891735405657526940643642870552727025420694484435707816878362069162306908696482083536785573055624656260400782629603191877915460863622491113926329441957430635500483452036772868213858811441589577058222680220926315218770484149508741859320251689857221403416584096399267177811372544513660689964322678043840758401383346712214992064261347478246976960034308229548759943803526302061295946759333088874391016723256899751913900267459364639666964242446538182872695289617032497492276564904109057615115347387699487321132392241036870579356507597964052526311309342882652570274048777881164934260659004869888297611349299006104541345073580773866426575143474984364053665385099819536594957612444625983953850127090254347794280704819107812762876160721539786785217384789595417021796285048544121302578915624836064373424182089315975911548205052944623662023587476683305494277222040777606576837512604687842151466402153050317180331306854437169358756966051761757952415631187321794829969598532767469589506940569491115024674997519141820649736631904196938719748765186686857561649210132120241575106026436757489985773634700362809702768461332896801918681265558796609495934880264589459927114713980241349732051911235317067304090650471543649258571676430167425298814628298597109241165546663640742552070022264538462226605368573055632314415434074529730244866579613658812874396943634734682984396198597126492974479248867926161395038010794094731388198350339473828495922281496548046897555842250347389064785407056433366772427557245998273310727050850182365762021777297792220557889382396654547950964284360902219395870036703993051171696017543031799962640615959530170428896093589491062103721086555759187996210197132178744395624199275301871905259541057993575920246799460784581821907056523181940433283550841876192114700481152703695997092900905596509068645565055852577601987062641304978435377676052285184858219435857857064877554755252124434067398596834804209424011096151350296258913129728478847187224114186390069880776131568311021186845709304521055339018611020944039444238912250036285895699806061500646507696772727776338467311644931879764098932627955520444191072901076081256538335543647460491658894533333797825214159430619689771040364990504556892283868514253144802851026596623874339576074527511348314749659604178901162553602274667404778767068929546771315237163847294051051978532271572452911859618158964287465655227426627878134046059908964647248484616734239512708828242635494683892936533668255013524106943216918426947166536643925873629304504991077050626753587602210629327167869546330997410410361019555743829932016077819904759803993013119133466439226851311756332351201561783112566716128542321907452348372249809370549574029089724369748854935524698283530480494322964084452841432138185227321797200376899897076966583751284729566808560420049616140711569266413364197198157611200305404462623663234182714449559833897124751859856609719752159921342301653722621511417023605244981486913485174117525326882566502563242805165800241339537198142596368861058977282025969735524496994685178304582202910925565874207999045931043278161290869379290847660872248897844319078330523306492294230837938888461184380877710093936819591132690121314690256994812337291172335832478731699440280779137158153705476110644165501012457009136094134728119059403070959837943863476710044778258810971001626258708324714148636280223885884148639547412931269843891103604296589227061403068673295264296975307773782847738455286220717167306478384648328910305083423798318596759089893409071687275780499690987466141844231524971478836239182721651353816754207912624758323049034683205642721134661005623218190191478381722572590394252587501906777963624899644779407786343852187802514571391841286562339253148053959630301784119632369792844697655550544289521050830602950917081369365725796746222374003175330087189137350311003049278075539598323459847431791892639321629222130855415845360772817546522225215900820618171843582565737563205330749316815126587898137518735122534477096303274702712292239238955661658055882981041025994491956853720006997272720908667431544861110263883559725027731554730908255745352854657616837155536048366270820517712252164569341004080894511553555593762169723612249032523839565679487090288632088947072445857574378919303226770770731898144773417607958975295205853416949884682352486327471816126999917956995972036893933231416028731297867307339613350582836803555555566720709322723402395199491924969238992541947721997234101628269783704450657003875735534809046166372183652854104574541010703064798197174629712762983923513950062742045804630976127489878963673669909214670063985330317689318342017472416200206194735142216404824521585920835590004694790059947388162338351767300272848701285163466032379693224602589760911588626466631866098011355761974670120426953980207116776669882622226775697004123917488102398799692248091913624191703053285309021587907396193251083424262753936744282719947269880135917141508529249846105760540061408941732967333828504958827472878877209542301345505610044585816127648202069137715536338406837460918322759302924159618712357692067746135308221012455187213821265629542355911012207002082548329849760435841970807686291490720474261372750656712267431494296230329513093155044120754350526120514870753650373089936405094675054952608930471836372036599844334284644505597087235305921496628850671991596503835602621154514114367476512978965401428835832316837802573557035047964173877589241824810066610054966307403995345369243742292002992355285833760375024807166975198942947856772031856832236071369578786794452256641251739169622356697544330606408554265559024699812980952692798926397412994668698000214072803134893143218891868739019095353331914576034668216196825562712443136774616449410745266872936893680326439244469678558223796152144702710428165851326306605289807371989142452797075110558913321845148824934759413290414785052753925420074249354743621194140084107549413754639428698591748799338556638556791842533743263987136028230542345092949013678205521284465150325893542091190721885831279583376890372048360289067924941234497698195446805631595885964036987827237362491499343781519730090763454468218602534441738530691308054181923879622235430312739214986625237393248588446570181632648086608113402503486717471048044348652631652576958780679358620109801644165091605935276973916410798411740657371230996649402065092857069835360409968434042396146096304325572329449013428752238985880167351378058854701581307114048424593974122732613074822061761356377656640426692428110714698774777587016224236047799315556004661515492747220877174668575892859301739554113044284323286269557448544694407749789668984717747385988463423390081392709239819838513303769760787713580412143521884381114069514778008340672898045051241745307808688920534484872884032743032345359696628057487993484143635585662047507756919064902460244168306537850779748643877559153570401487809638183551094941559469165889342606375374887342929038935035835903186653825590695661219482644278335354950737589677498626841712692132188628430987160779445192179826650744912965123890755571481782808682328043168521197668650752876950314824042538298329201794669383524524888710933615337698901058302225900750710698988199900017436535417595425949996697006229477366323535959312413223210347578734805066287933305296774889134225837284015673120754895769682926667502687299003372098203902761105267691414426201699599530356480808634341611719830194436178628204697944463369723608844525843865852057355271076770836245646149585069039188554568156078715646585677216007674180609947729966554263581992627067283383848675044215040000636665918804746604075545312095722482869155171852308121128883144515551456029852527052894327676455227964957287119022278658573796980344428884797298333998249696161634983299964857254111092136743516948007404287186231729318086630526771522317352001270875328511662973469536247442575234127350102170731995811829666448521110316893411169122592325957443822511769698718254282086637591342244430836674248742791405146912283750078187441983500133979002999153181111776693421841820378072406294738784896947894016008801597230536835238622755683179890296057922173013327766963866440095846262527655689262552015179593192679197596594675531252002513685951831614311783734001867377206554817273307898928697954895426990207605910269854050979016793671944074391145795680091632343695426418029050946668596665512123130179911222938938430426941620672462887868160544274213437686441003295241811716923514661983951439208309462143052210400973404568729104345406884175885406927671268899619726975338289044887631883192590765922913325857707410166805693781709755924518536552407239112698963722900025232830096563434056275936631398682362960536699689450884488170089606447759020124166686559783081008342385035402577484415772237435709093746046959472720662661416391440838930205273500931642546455239813578326085633941921023897690692828523849036618368263431731283245859384928593168707067460578597189735382825895386730103434853861007361306034725531862076706741169146904576056000674569425343849975187840334312894641661425184224487477412449295539695148439847574206951439394770848490390627881373217012821129230746067038150935208475405256222511013367798555396337740771418335158257698584528229857956662049019877472121601937905316652601312555083203433372144065099953495222516515521744443125495322142935937222968508421195384163160383582827930798322930359015268238730134669659853015188641080958426752535940660470573422755431440386297217080366737402041912012081076924842809275481100408215623257969468676482245338194248009431813725686280838327306589802193760695038983077299539318470181906078078196528407949631523459905636389944121453690517093642276761797212491507318213286009685709578358143924391995269516191394063562756631700078022835323128733103159129265550493455847816261784953180805222421815847705518801218497994392339782943294835403708414975412785030295774588873019561508869414380178065654087953549444893469211912368298436442583922450568470734899655889358372671115999452843081857929354500521993049038793632840162983001579853330347046806984150474820766695236398068329826115898613311606384784353402798070456502777709376679581811746278559281517204864901416395854789306139843132452040726230730650740114389360463669606356524268322656199758841473774127945345023044635730304134756128957345398820388132403888487235699753375388153063962222955846306195888954904259243740461600087446590104752037598317484989043246972406442787383274152256859863301638277673767337602770612189349163554646778800664039310466084081468537073450510773275043227304859177506160175761768941218097254251348318562619414480331519883316376454251336546144523057425953937824436982771978791392729308262164208287835586103176783126598171021876708702574583943835464672658076989155260641048588004061582288041179165866757388232039158731666030249376445859369627538536396808862053258183131338186444548432190770071666701445203768515886029912052847345547454841247627960789682287116905268697335295208336694796173957530209957418680399413833258645806823635816612570503437995047378850526677555243911642766405628970818198248217482175280846437140655173226640225655972082560276989998058702190822706120884860713021757012214290087946188588763957253901240595426662351862980834794465145976184470986238810571723879791018459183363852196713113295017831737666847063647832222943650209175182548296118904882150676274248212770048890870287555076146486460559547863352189885358408543999352143708466320939077768281164034743253917112339788774184009565932604481554031109364082083263691710703905806129309856608007476461766796295760407973079602721796966717560701947510195677019196870424203171111885947920594334283982578578767043866253965243284632772254245953663116331697287760377156854186038861592218725971318146505891140298529942121215571668026056139952771143115133691612768903749627863420611623741744168958445146085228217036890013141307656030014641629188418149130675781572188572937897339254113398537898676482463551042388341478546783596436533013295289409556747257438052286610696298463238401795442730009326986044913594198882474604180463459023054162507922951534187434545737384017409981122345176039569321781834331350657249944459574098952073311243931843944301190042822414713073948792896686914216446611919426846592819057746461649451691913426802492440568330575976978175364734679014780275732257097349038644463246155107360797032365871979746603337954471618220624052100988941939064730945329318439477230764657037649135052074646427945988900987447747593495097937812942537895141660449242545155655789688841687335320333088978966728917531038185596447319458823457704976190553988228050375359493918653718112496769686681533798057936035148280593341997779780451735241354225038936934864790886253090590280966540307696378458620892128477207295900602369758163412696578943493624451387414394113636603351458758681852028962974931479997800440094169151762655751945611815427070706414728555929366283254566984353506851142154551570538067505519949852475734054864017185496016681273629714013774015420392324593906416931614180038000633367170882696246205632065323414187713576506034943401680772552735060800088796834913763605824366258145201849605737671774283190301851768659350644259487748990464573391979328931102448666961420006199664388158156122762545484312527182589193155202435765419035652833176821087756558213243325391920145549746004056495452152917095235849729855942225683739572886114635259392415598775747701506855416535839848912250512701133276711206603141422883650704616097548033696298711670466319153210269708552978007928179134300929624770579649582599225959455968963273670465029350357525374116379434741572024558570535919349074300358693105685224471005641609480405307155545947143660154617094049655322843887387569613207773804477297141134988590128040604797935425975447214815013149271848866772039685890185472242558563152266616759296740401524573896735127996503547933578531362908564754059716020027988562475633586315986219699204547186242640084636684782743173684813519459489667115765131016423722232430702249057640061211178413782198266701295185709990908628890085827807310541547077665062058270743203486970293160911392366601454687169955888918020407241958334667564691450242982038659893755550571550792954619395431161648568723891926014817541504732584989183046916867467343821752599390012889436299961620865350742552400078832079424467944775901057488894861358645375525041433887942404030621069521185974951978534456746536747266993136735819567324361395322870956922118165850710229173210820677180557710907267504680979517337315002892701828524970887540885582758408099555776459168315284149789421370339999504656521930266291481433579423526022256420174764739060920229749196709907746489925579953410914789744726589556845802685856203087983230363613633643292936314771845788333747617247163502466354473376930965352487309460624665199491940654769431059428181631113351454508084249086952670248367158365717404461310548655132820353981841850443911296876998784084099505049626792392767160872349809094311761308216443993787746778317863798236465319561957173812927609613292764230293306712030586486429784813552928935738460544789313823596958359708492046224659931818179965837291521901406293112232082948639383766866365465296801884532969282574829988513815142465271660444617335572224084876713098020651745152565894098608026516033059065217679580497806876453674876283218059397707248669678520772929084347274932525555251914646492163712816985255860128323929259355273267414963692323785702111522710558607099569726073927423420934306489596455283087790112686838561702612759278222247709114426041363971213849426680689041764942821680842701624202478607426125663242023686010177785143230349100568987496079786207410739534234658605443344629868231774002808069788309549743354411707795036873129127563144279933289740494033247358860907764979246305917650948508854303944388597823417831044921815830424484299166865693447052317790514874553117052476952408905794539164013966557971934783389971333986978325756246549478239037964013685045857084747535165548898943273040527999313695105755487736333422650337833601446048317031930409370546869052583003913177397591354737945357184670929623790779221741042045107653505309634250510584863733546623250827652999453416155204905837957492995865794684844152310975789269331350165719120930027864376214269454335464847823685134798731474249503792331358303879809399440684318668963047094706233486557351335324730183881043963595923773410257838127456150102918972420277848271058780429278817611142713611356348380571934865447214419780968385589615181182864717943672366506995166071184373249151408574194107411042837523941503910684969665491691926868162217363942602120497303649113424528286607531935896360739724207816347162111889554755237277577087847095324582125914566981999984545800815470628621577643848159415633526226199097343027727098298793592817332628188803617952766934095664728659535986593442676963689637874565978360660285794107527285577045406867498610344606967146819062991291235436740052752528749465520845803700269924636862938080040375664284683873485310736144384629287110299623825907655176551742168074501330244520190375899085273610593028885229741119517252716650958720413499681093251105221802049577540465549410763347039523856729838367178390619791594503114242804973534388547486140996810144375896205927797049095108300489158755800603187194486516339637883853629618477109171484453229707200840517362780273179926498795659523108696208549153230200389726726763827318036276942065717276691647150656471726898994670367054739681150972198442698534772538907312652211017328603806989657392108817301975661824227078912831336767357233240560701513064411498692473618839048109397837236574393840144025396311206724816719572222348151847797990838681113434110379979068254281639646105384364675205434972219685734199104405027162734927532938717164322573631705706563843309171513966973762021420365058102995822668935193601443142096193045741182294069155164802010263808655442307934527836301098905539148328333286829404981147819661691093027594372202114952305846633828538819115948111404248386875334227442898173459222822808378611749675673861309131364130976748979185976294008887492638444543033781904585402447649436626370592248852252462848469330691116751236395257332383543461950714755483848978244914249987139361076385173747969100831756777358015784560773230793557246858235507736246391294501817049280638011370562519012752342592217183529203549978551055422299053273754862113111513839152730872747066216718459732111456802041443412319702785882435188885175048630707520328000853389482440612977069986375383688704632027217635263201204434841651003700808687206498096128029826587411519429759724458674730830927556765342616759110504423059597326427869351791638731472890451896958761978089525815501893349469945183350750922338659108891645922335641331037664112217515856729578937277594056650761588718617986171413233661489702371464927724586692603814837638002618713450273320456658262232570559259217657460543365392418568854441813392478147880030808012102153314897072712156755019753668726510607254180274709924792530999148635673084405650089111053662008323730933497420825916280932686784847720392574806889743362383136307600919080481046049565501625318253334976256003042448696874989144620117943365928386625187653998067006926807057341031114673444667060935754086145516323331722356900050253679864532804711745007948530056231487838140294041800956620427488301155584642986940767923538233049365857352728656370730751794903666061000915716771032664917974417205616429082720504907432385146718970906450735119331012669995473375783030321716422394624781997534428250153591681340759746366282767019416263974014276950847450470976776845504301790388701693510257879887886686251533170789407422025022686887514131873360800885834457369099363453597136983202550445993964129440755645255973707305843562191133162887132595587454394845671624108474039436706909125870674485179333512734420375939789109477618375454891565679015305055927773546284509469496439825747980643303971077424339857790859265731491913220348945583092628810619208755137742541121578212863489951583608441676450650746455107911434777513838086622666046320132988833654366215291128766322970994539468450462514195871739094660257384174921647627510662922037081945483714166176985358703510234690488169609162090382514983785244726505603417382689090640495153292394108943428456493685049028353720802184927305907210552533200726393648813849321757560835721430997371390191202080461208129234851968887784770801477584903473407938769816284915027145393025940905657814140376907805162324311383719304219184525117630245370573451454217237221565755482968691078676760561090391691413816335037284898406642501388451027600207614727290177369908121961338941494630493192508473357472664489753413595891450175850145321649005454235848011992831429008018275492058588336615637752049819571945678765654520500567540010889423445709107129343425768886433470765725807681369247645499103176122140544200650190284050634246848039079062043840553336784248861310972658659004692145095081938017673707804879958176892142017116975171518959067593120239770036128605658007315139667731757738633489434105348024154911748628015518222561436374664465756148713801431533533289074530423979842374916734677992378477078674822467069160001268176327836264766679596970430519286654167830946763817345134925722400378404965598809582813639512008458822786206219743097978576956790372666824340494385115153758547847886988044692144251682095013482896052277121422505085148567481862601692248294293117302994391475076318619330215080154126777431852534907594506171454708888672503677232468063980954422179546303425885378225745299115508898315581670157504637893392990153341169625684210671946026170713361774326756200531555789665530492552382641211584028026946527224594979867048397324772817190637703878131695474328963375025524816317208012112860652887353397909270624328301978728646743401952514146260952977987709644613351251785773155842846542655476456125213630924391622404804215179561551515981606479964637341210542136674357124028190228238567174458955147388042426494069183427058103387444459734168848704842638745483094632617516430733585990668793700971677054268786211207731882020403711235329714118530584761137706396164812964212302495727863948076112037283265643892666024483599766042226142510018496453870222893537800464538146506723694128801482308963089599175542663753954077127204748109830050603940591441666616371619604095128491749239728468750294955002701850165183488980081132245430367866328925689327714370323275859140526675829778388862193126373241374100747710093092754784465586108165855314645581593854932155756041124055010336668551426957573948054011056153819334872679447607244378090535386295760216457052713403954771144505618614297842309655448279824921353304985921707621366021270324394682454197680466701911365729500103039450675700510567204921657430165690252197511121186016503106014578301161218374020418279052544914634466218567846536792244536809150630274272993230351821851914943785840119456842758819134333814768798664927319167518255962195665926624211442656553181262387125578812406594694608725903233750533534887277951583065156848658592093370050244365543632440367338550562687889558544477548826569845382106925013860632643150042755469152697988650856600801144816238090385142555587638734647339511478535761025449029572652259144289497821378850429440041592378642650887077111308359696351837593927030035083555691789019937186353267755948371786358048404044669267321219882484756477851837282703794771721621486534807809174558215268088269551397631362233242726927612173533767587931387248348492248494638721060774138155410954590168656272161262602619739341931373986916387742358432352158551289928139281505344400429131885279956321703198319692802261304151659272425174139441664400995157845247236159319084981452105400591704000177950980800478903176769172893510970674902736286342349086461902532997290128981673716175718072728272081308418066734455331723426380695562147075485409756429147910313215650629650621803143368338021081796881108541730593461539394793289865320636031352144027349091006256889992562828808600255007068869605522970011534162893815602157861693331083760920772040333577716348256168127901650571674567708653339907738085369987513979357323710994859737889345355449929749062116400605898107400803809492818372052447786653793112013493852311688792231037652353226338707137494997096518404781696419690758165592745151274684566030293793028967182668705697752669070247524618673702022903809702352584112111316275114156485035342993832644116541426355186174289377721878324759383368599318879691467377384750005082446635794414041505663338971352645286456405564738972265312625698335753596002812014802590116028562963005934370635492122134437155734689530213373035851939969467900735095235356404483573427232937169144508275035055942391449541809495196559161927796208343098760797391793015454584328735879441223202218679130600390242403372633855921644782382902558533963346844643760008688384266187790042254231577971099473616888088802264755103777362727823924796388964070170635593559141358770550139469041866190204005906086722604113893207139544148600071600357594862799880366896383182348725466779342293305804864679551812159802733604452865032666614218991049535117742633616011682890424071219372210518479994728060054259685311138820235948971373421758294137661328674440739343827956644498570668439658615660738010964351224360753798169369314816527252401501988181882969825327438354772097975549536586384047093246087241141890766560899978558308171593020134636678040460965682350721387644648278650439421770997848580842271933933018194126064133446043677991895437737210500210077160268340423628868264647143386870291919115000427196303247867787969498574929738829067496906323582184570187572899341882695574744121231589064587835591226131490277943329836641677456356501078592040297693682389453196340637407357942884528203981709248050240186336794567880341441521261923462421962439187921644041864883842526868547331688032366078865576718416352609577059998194155080663072891019758003866634004783450525387578625077666034552333322059013411690812556207846743996839737565450146917065803012423205678705346390231584775333251490885090284679412275036935223065180329377034260441473311765531271450046030004433199805103785096933943273589723725335779394984234717354476585691846860754359241819804949155970128511930754370755979932226289897514261357737086886886940570305186308824233399372951970619158806789199979110619362309694665694908915850950470733734829203116509384030197052578499056601639304625893414914815338871400888544057145069764969863744696728990817124272812603976414114079364528127636411853707504146710917449616453749922884430859783933848266802967817772381403007777706979368038682397093179548609929018199393604359038568012426948280942584215810282156276687941352586024669842871928903379202865616632167477433051256985370388258705816250686062617993035936977047249987722559054452015814018630630848677898015086142294903924788321695752411811263177072655390859354458176838907986040435737292883398244043714871293038460270051796002766909181607728516791921261699432572619272613289042734529739063958701038463083228562964864082742908324512822527905453021337459430330365556954244757742944138006104543281275778628721121392519657659400182953209164603184257924147999771735580661664681065041032010532311947737311473109886790261290766622274449485963351956354439234087742965099081757920290502627857400154701048216692094945384942932489439354031670057678405773200500040707906895769895140335518222017264124220121676774209205141930166221723735362879632871488090236323181591645042871251405548699581138334891060864127165203827384985607706112036258961817300446811758770972824312667708638006815632301890796506064003952216432507629094528577503872734100042743027794623787762011676428233426511658535376780145284488785052256735235738294369822204053571718769220767586708003015126689600133842816225897663435728718174283998059665876467354499729021958336934956719963699177688325567771263591040246734177076528520195000177078473767799866576788572601649551453064506335206692568746027382000766808607078775823781367790695906480923534673462063905129336115402477814096974609515745484863598774771794262883786449329597073109778772348045798141947171719758354972190440864842859338568538712251747109095983937756415233052604938098765654327615361698141451774172567303763779663789307598972274504646121994070994663025179156737479661969041707308725339273433605319383951754218043402596587857371198221223195224325320716655021198591789017224518036777961557364012673398102489713294498765270150084709487341423688760578112572384658409926804091917012848671315805040127215476407782644283938239885067340508075053793822821705085737625331734228899180970748826990085221331841032644962854832410466427291010307104200770092178953567990528987181749845617721158202086654419329268002042386778993531609384986792873897490608751944171970228968101952560514130363441723997336857298848363226416570184300744876690783827520487869420919298750297491287438690045569426986484377277098383515698084042217522121890569326210379566206865443026855545568688981637370540107047497657067637223580300324444556488925193553883324982244890545404552350316270675834215953485008113098807441305735206814912352643970109454210322068009079627279674369303038667895536016831833423691257254756008211951806894516273260406691527405131038542332686814990320244990836710505154707314298643874202455342393698357434905699205585538332587461840115439653020980774969551463126443379283339706728100918045552166107002067179011305533881590245567825813924174738490491359443213396634330040067149684386205811297401208523254996581126930452764543758990822969199312663370974555490459579972123733923779161200224737790712200400407798074362989799691989871424923939289154230686669255314127077655041505175713479754461403245373612254054178252423876184109025333490644974919706979243485740439697020191896088737678537656796610037847974839019570350374591887061464700273375385625467950571664924796087422933245053102816966176576545608150772586567419916064171148714963451753681765109648875202029620739160015934675616293713505264135459913940591900217866595527383748085879386390430184608061681256321725445626041992380165486109191489865443922536393556021020567197712253705110878807615985262011379632942859886681010107229972247985398263336188964485798994910121743195492660196802346235767764293324957872474568102397827593109047947827883415275699902564306959361877682816162255281544761650445463263878939776004622780829665306517541007045798453652667463326336600733883305560313514005681047792056243357426053641318987955265546096222000628777732890900800573850492144106627002337159545178954948576294692228531597644017522384149217175006835120840914113091858908086922818599248828356869140005288080957884374233097229305084743850122941183890756579096172855880604149362835155811444851165447140211109584389711914944992538321243036287075312293618051369251838831923051283780614605690290041089503695014770124750724509822844978207140551471481625754779640078034471433847407553857535137727151822911352091746210561609003736353535217477623725486159939548624905290637851192675341081732141372840058923693402604170034313627056819115032895953653731754668325075003883677817532207458569532339176927153360202528043988083984060435664592760678015046729362346693522795041186601213977394131207972943786426407031431289781346041825916196685458694533960958341296593213726896321120283129128159851932114257294826119445090436840574861666927814593236830827994274077680554150941535952999551182870560421770307644414739391609342381446486760679569268677459059537069450164751456379465114012347599838618187884081207204095857988117839269901149798230075893394089939685088113308761073870499846514082139305784200951466007776806069333850669820663635560816804082736461826792042701618349170149462758406083483591774591727893204868089181383428560053181964906092448351944651006317671762342001332793475122623014408672806459022810493040053274668326654883571127595761106498364068861306959223652128193291360018057516792471438978269623772007006254326795753184331081796873478109246805026061847660722140748185183577089101482482304038950678428437799017785127816726788770727209518774588425196024628169766907290973223561879570062523729976694191745333637385642653088696607525707197787280640916136251935510948300447537587015882062545812443443531285369158489901309110729556333448406250948729507865312883589545106204756433038047869068143548219538660739969290489788486505828528622175021369752090996037078250494323049182128093831243266506412177889041619089406571716803629451373052131405836237274595802050363031078964996022344601556037594879604162418193567776152996782173989440839416440120119202534117984017583162100899368860510387171780184783523933764098243713016241779491269313166144434489596706717790357811137728864078321206152783932111779395876582554511701698807784710070052560658628430424977587033215023776857619959837225895089472225002541359526644776983733678701849898226348469489729072718664238592492192331527596673920062885856613688563887229521948086950885745220612880242511146923053267360087671921356013914591842316614793699987740467737560486717907276196410803934893046473844260426346362984497817144443304001452276781763949069403546766496574327639987553941620445793608614428071564903088162527796090596252730682774879233767307745190146602690582206002500219497151259867707174852090345971396684413484755278146767475323829228282442951774558830958424963041408093028031697349200257870669647704495472919160950657967987857785705430947730110151542676998703170556636458599238027567153515649392001081726840573066086323712731951628541716814275470021518689067822413988286691576542985125708798771209537356512393581979454787200830695831403898043198951637418522804512455998559968575004852880737936280166351352509877958889246162692362910341313896383506201585925409799179243293711062907025882418269860124276890914053615633099899282769393141249726809252684886070570588766019642915871175683890899275664629810610963221816548730338849460754233478364365884859616814076758085522942949947234884635697954366785054469923843146146172471883492470446862169745521959573128033641630438511247594823385274050205711222569298585655788246465585467326906246587256241228753816285091851299730494277411270027173859348235771348162453991709629947912019940788483987851125255328430856256686879093498866197266152482673204142028696591793920466343765044160235587047575516056872831841751281556251429257134286600936238274132907669995133978550546917711127620577828588782837778459913038833762985657461500997147764945690250976398040955826577495172156741135225506239316258861100343360405390306899814415679391247119940298464212385536825140069727580345776461473316823549705216918525286416274858665750823084226261851110648070319999517741723249375760666937886578535201934201905063014564959367403115519684281829327452074500213753873588717731760413655900782189991042786153990968746510183596201696931965084372033526686502621773129292745433513308525549279492651123846694283398661494654866610495945370096352271015208801390011629820914626637741035797061376390791911909552123218794871071519867695461902034485018925022858424483697644214113713538269869685245417159976885361096674132250176816519620870287923247449463294499519359513602921207982966108950308189813124342626047426049623261544320743877341237824607504145234203680046821222039115244224675500494741635436862825907890042719856043253017623191209884086597304117439868191053257272829889118987751035606868131462039913350818662075742468893446860537183363204836825539206857736320548126499981600629384303516562583695999306710019584538764229397169792063552613680687033918386513726559962828011470263866412340882115757913873597706060381150907397292763550653569778188378329503545654645824336195774750798416000356267965687179108001713969065591829785521221711745324932268788479626263271521845404413250379953343083251911272331406216706481729981925230555352410647712818864428768567174328387024385147682168797892783202256011886927273976330645189107705613513038236255244145094612171751626088526162698865251268363267396521460335487645799657684522421245402043550794252622070707521958343992916922256783213255526781422504425315825513841537206002887284907609016625301500256478402524792768686486796250118144023245006223686460424973017302857299500641328982502971035961563221520526803108319243693069615816186036224044088046865332387868163447787318856782101340823439392262923779928136612085454944997918941960985614935528727211197191107021319276629712658900304306158592283816844750452423493850036324365105355284115234098769459983222227044260731381025726575353245100745450191677830503097410992823212322937084792025020750888205946615825870243944218378599615952323712779569008871739733855715946452888809922917704637246153534965763707385443180976732169471209867261709990076724405154862450534752559119061804168297929890807198813430103976008573307837580715102137596809669760561618037861817251658335806422887107894991175191161642306675246342210823196812112176334731166827462259310624721224223158554382312650516571310869035347938766541273285428601485596738364308242402561471057176845877019588653020796904029697314499152467459515961571406274225050055228250959572393306173810108462673279228151175580000270733760893256505576841888004360959531351570123770239955141830970440448969751544440442753179694745994805866437272948555087021527815084344303487511184596917448383125164609842751023583007736198804938885323233560713650514133032658578421990310770287640781024741929939503198443131712308735115725207776612857821339939297908667821043000973812415728003889559930449868868936045434882854459269826937167536815963861135697225100678119762442164799282868953830264229320194269550639438576519658496555711656346146436355899275058758041382354118279402090736154772522024257138251357530859248197785394847704595865891774427958082734722293226974563994967842778146327699833931819098572274379690218548561823474554735314986716176691406198356723506169161922994426921673777585683105650429798299176596900863006815918940024269951351671601436120537247179386849960576916066188332378286220008669029829962572356385029766948563052963683041406493718368540902178776452051043141382283832150465545279292959474633709521634674624882553281099002850726458075582365338766375025622629505113783231748605591236403789915615046581751000827284897962377896017577357710934447930350748450076170909542504582224980635749875406850790333694090331772743438520090037221008311019762606352923184003265529084366543071965868938092035097273722827335012672659077359179078813509697006196157928015138270809710504335383184036578458437052979353809870426162643572943076593985421694112493196591633924438449839404278198412265079074504287083829666887853162425492589137625535573809839063079867343275757207220047003346879927504932810628426766263010014647918821521249730941855852289520428292719842097852502722304230904543564352370401549123814342996459010430584835610799074143896773399801185792722591863699281889093157745096348833475375360087666769522936971170842584126141215171584422115247949492729165962478859250812388904539449255428831839126703944369399905590977005716833561589771485585929630404584796438643359361844974255371373970873413097489043614669507586932616315103896171807868941149958268397394174713224431672156798472849973205909223146082767546246054566547664846327008225595882246112158783456355805251945089405236634237715608605362730868155406369641796544498557063138327178863592966697333889970804400077747792452769719570374256454818679235981639440166329571841753635726110198269528314571561363486780176182409929080538675040685524066316858928822722887585265442132433205312137072651366403746062677387195656433481272979823869153287384185204059496339717198800985981090049853130772533609089732275177637201916644018868516304662120372372623947550911096725184974118617998765745135524338443468402087558318227319161157310669244946258764896497287973571483174445770753411873448491099615207590487937688084545180516826474418643516302839993335379992999278566141092888667037004740773221608729895836720767538970438172832523373936177690115445518243974270425334665688067120185292697524214109446180945393651025023051904275846758696004621633611749873110580635568063071785008786996178660845414386462776743310529202783634939344195066003025573742268408836669286862420568527641796526399245772433124577195727112135928472376398559629100402323981753660681444836899086765682907161469706452378342028635759431539109489623242366850892127770003511097766708528871516177039006181832821458253746817875738512818609836066636407510310812182079729862155687395684799179773465557572062973774481314984915282778862772342145152892448327135937340947153534825346593805007724385323116744065432409402611758665621513947438641235420454884089730693398886766560203875006926892329520005188221928060299104711507949897008138364519050086862939687327661010334276176963695165962061119454273842989550919120019944522601370123574323191075522038447516234323970650713443878102495644230396851784951556648820423251308677132365259261940653707861166994780152233746323246585806818200764343826361595463479026307093499430764316812359641898847263832723573281245560277583655520629376755156612639487488671655712777152978228142800241747763027253455905989143667940343778327851050852461340805837561035108657084618625607110547148591037926667102565687299893520568544068654125150459077109772953250448510332320501239883805318150102002427193716102305072371795472066435701369275923437841997937564469460972105114456727197420340249891584135322786424036541348085928853472999200982925272069346324609226574457250357071623931359428426117512055978295621898336297877443655325287405789068964188026208704667053112103948125804889390176415391684851876090309772677752520917252110478288760529313391601387419631870656798404136733671266035090191964868116433384382189126056022919120996716529146539684848317203291931568057880260870594784945619138991747694563247170354019899262324631672309530579963712990845755119606206264060766130712326127806941827343946786713841947513746931774517620109710613406676336233409205154081522857919342616865023971710217214838754599096717208493217073883228949309741401125880880488485140335673828297679822641736821785284808426189420065787070775415493896431932453636699384797716943529896236907862395673311560213253347274057694129737361621721962659750571632652267794949604472122442299924366837124921256129738048624569296366060523390286010616854809528096372456975010968453330512529628755218883983828709901872538305158913652044035639773776913693718528354293382789883745789899319516415046425112741384690928223369339406589318443127077444169679991432764313133883106699599504564579448472341449459364670764712357083860441465478288726111503875956522707311663915262704411519685312711695932418815426619464563870964176455955094869608515761256638907614334347686764945922311362201491897079156719981332484423856410101414319118104552718639534593186915367005707493364667132155498150052629731377723585779423333673907838937869154899865992728428126517659623824844226978567765625306645320607206084974263359578758052061271263460141134220036165833301112373384348943953522483977241576286545169090603105173230990254809070812429706076311249591827267644283352006764103927006567046195403653211833773961321151240249321639516619847991378328888629364662814762521559385321526526441380362010715432831057889404878960933443780167958666159764096954536518791129755788045777022192511694230107399002378883343488450814046837558300773799665104449676033221977052024411190759500985808590595628044750613586474789108933975644517962312041091879543134900435802847670222611437385939598746633992499611232724681539922124869515631967821662847699625509173661721229848470663437837877179970455660878247839834046906065351918358852510296820659908890125497506093232897601090940122779662175742277684368460227240103371817357692655309052341787037084181806801524716541557851698565573236369844477708238505249851962555380698168848399278967907070080448486351039849542404564115871583962260734893877656968469594739079377072103125896819693027292950847913308214299162727122357454077489145965843225445800323329236164884970240906155494803024460166102995592451504497838688095162643453982269583581525461949048916654119461170745025015066438249941151847934608932975478171996211230808888262624947351751265298903350902012932725828231997597416690413172944002924000394223703297417701971478028447185923341868805680420338487888321806998463202246930797704612251548355416424241298573189951927468815628771251592588375970195189079870464964816648926164152138545737196198567170401970824252424354035189818053180437666780194404246697319443145569124775911174886479133658257700399581414868755300916843740773484279014826397602279532574226882849767372613382136584548890921178566267675617588536317796874638942197246039391100843862151015317579529548405168944831455254642884737941492221756626413209620404659864495835112017836730731934124550329365861664304058331381634414917991707848691296188413758870157043447917250030185885873160333046244735869857122551907652518365252511492263727015167763400519419224345562026070364647710250526513808084324218041271396898350514827444582110309323879882128604670932623907142658107662287866225172361470542392843119313475551374401742221598924123610904825000151249597482367666262301067288498563854768142964231076618735905171889793464240928686704969730588346614435322455518991896789737473611348746886701847864852574470198163641300878706011269280411503491524091596929665985564182306982332499159862312412580362019009495023521338049257037203583187546847153821644692370124227542549871900840608381390924227756984653071707252000845442354787355591513312870841526539067731545988944869125515299625171052914859262547693205474763042387143888096127856124082378827227678896076090995377921820570519215387170913975156421510657754316439677508436504627850458555445210298743537440136701907539185293200888679689080494701882667303620203294848369335194793945830299936169507516628008644727281032146622949357772202610582395627130931157334807220513606108566219391784640407808216148754594861632131485017980375205889441741020046096022799209396445810574938064313796568422797534549432229017263091204195748878835004468322504232997760438705709408256867424960986215634638661816283031525358344284310990926972114091553080116633903705593541934483009931109175751048963679842053374045471642656921337566749480072607878952666724519084556393680725618407173605961921611683584598233878665255025885353379419029716404562304270220237862519077005779922199514040211092548772971377672206313629939010319919972814741289870889327082604619162579770118835178205833877661751983483664751257140174054312880938252840660317355642605693557037839161969379523071365272326531644084798431997903349286298447284888123077262858083228115755173808094394188511299708409988645940872889671781849899428329347467716589978177125142078161922426613963691915999346100376957920639416505500670414493996571123663255676637387908574096597426313079753699488214633190906664674835713261708291145481263121745214885499856235265178329759833432596781004941451915615551707350582207127770926416735444217906919360877213215599965337986876567891206227188348216753179491000085336145754073309298418956537167668005540720570963590997553699388628920585645340155942599019311197220844192517521673375855374732085143552470456025546568719507699639273101857942208514139865721592111247347904874048313500498634456338179996941200201197285945009107311118358913217436466925441021721950840174767172026146013890856120839882924488160880300765597378565047112207798831871053526373641326100740621252336378530613309606002590127897561084605519186010022446749561896034327819449828887741897860888773714216735610745292452109826488566637599520339247130074457527853278626869348546087322104458965934100483762907891601194174639795585978691536565246223670327855917225775029924392105934692832875992655483741352989002140560288622386146153998388871158072283737220927236037807755948511275183432932653320183934130718134216798359079534187124478379034227571111989406515021845235176681431130583820467269588229744514043279713768690353772916681670638731444739913483108332387092597430415880601903242498814741460865698997061006428261909069068869789494113509896030758516764560981652745080865174743188575884477762267882904099165432706854850525115391906919074323195947037695339722355972945804481902288494551718646321485143881380325449242351560027413983850622416369722093281658341526792545618223635706410326831638869923533621974498009539791172357356833191628441488330278943507362133451424935068551125256678447875997019024424813629930371502418773404277885944802345165081549751141430309539045242233368127409543631667269369953477851543894372329284792529336684451891558128914218835753920138767231827806468459056553076499979230502651654329951699479731487741509712787987211734038358009112764583584012222017144349103323938316084833200236139070232054590674067170941768159946167930819035151636472010265782386422152689901796135819555556952170050857925416188488430943129492390132444521569652696065110904167554017401303398530622631144116312683195810148317941793100372843771580826329256592508433270581688449856148830174268673760513534292111714398857941972595955757911590386941402316493921219519100099512077585082443471420206898401725705567454200804916297448929721064704638206857684421626027369382021999086131495122560282734287983333591898626280585591500060001292700135290338673517373018277379634680541234315840293589377769117349459876766574751925931912249758875609711187460531138257721043221111936428129016440033583415390773581515216720421504559119794428035018506594475733276968665878147408271018165848995627379424087682091714771291703486682661616522936873010015270482546848570736265859966999108891521037332076958284002476313323477222249505337331770980480803766332628299691126526004547727460735788382191847038255351541807309925944188377003020370613963184546184175953662365709012399912970694945563576786909619608656484170325609734655445886682297583256629558602882255593826878999516283471728448395926369307464690315226815004433868901170859400966838147405708767377592245111522311517574682926916267436156136321203874488563323793758433473777748639166525991290658281138787595978830685736059744695697264689028628836522542286144369748715634335839658596971736567918437354930404175124949220802747781248583812253262854205613436890547499225618025713637291841355662546693532069981742736625539310275830781747222881828729586410972237302972440577087825529970406248185913760855157460294587520050627762251627171309942559623509098457424711555091546330609660455732206586659228172903064267004980475702370902194184313149455221953834361196172333376279541036604457876890814430377637499557301718408002777544445087799079389016794669769744846322218798205387271660605650805144287314538512455115957011155426094082853586455624785235689198404341184982023693733319793629011156905105968720026862687042882469626165113875286855814458329399052952400108145235150310262850430639359832892800325710378281604431198719070794893090216856247199574300689894549065318923107073896000495392691752242872675169233408430024185413458332103391064319620623384736710457059401567208923783681507270454997890934957756716325234302336157480054928926765092047130952416683672861934622143565412588546338594422841982881558589800770633769554318603168286370787064262479754959192236942661053674514075494455627622757683161903621994591583068800026991273176457222974020588168210933156554910860178212275555457795390162917088775389369127457076968534202106050352446852085141118554504068546689798101367517888524902006517509242681738682431523282093746531136244420626378263943195372873062541593530793565019111945009312726263847282382007816407512731404462949921973907760155878590042744443458020874775049922190528744604202225579430294042028049909870267907611650711936342222917010849717759541078851472740318161815691720294426726418249719694027827604729973971037504240757973227010929558594354609863311599436583661258247226465552214405391748313267352795578360757856129872884294255128521520900073789384870233736376808803439688803284652633258788801869058849169165502695530618878489103448495069850447220000512747061463171148175488902561778533117342539450095811707884088459646868603862352012891200657994334300767803917442908863048222572602893288615120681688865101262028860201957623711826108091229244384361690209670480263308824847645902109491802989854063880818081717224163206168656634269879866790548568341640545956824862710593756175319816690074585558501779442788417093076569849076692554702287984477506915694224783264642797169168590165755203361194937032221791055011009901699090704681617583505883268744212725186312410101523982340938039667099696647073233557111388711931624528532092567636633098669801917355107608808011625886732161399883670484934838690074698660067841785149217934603686675885440562423704648450012771261417242816924592743141066701919103536520455777931761734179661764213541354868115412596706575443404317378893770630622010283737971359621155866836582084153033444832920999627197521875913230270607089086507905720866301351798182285717289524884675065182941139057235826055195116604534342239533387921797359376933819622693255930991908113638271664256133392931480245152728229396170684560120907031447334205913775108330181335942644890250084326755621537313408777414588225795439518527979198169877048394492840637365035210013072228717086262885913112607971049979486517107787703482456690047443598325805749309595872862876383270793374585964673294985728072500535866643188842601954874275304398520491476379757547872150159937006779224183239176059286536903027587441085821309378147454786018391678467101316689416616872822670314860763854741155277869588753789109711572254634464059749048285592092934632541002410693876457250591731970817521477390598880258425652234915592471736797513146364187274164541985017636338159860367034616822429992058658770465628330264328035014132271546231363705414211770658271436328439841292643976189094602319337383567161510211910483700009433190547890342985024481453227585843800704408275580652807449083763458696326012536348245560517815653574265716134552645950226464981367113533551228795130123375538189122544524596183515704647447189665661464598538483445069627184363222577099517058451995051316022012815216942806965345596285387149431145089069405105832362416621784232275728495737809394496887385001704417575756695221634950212467449761138931647340001525742729170975721914816485830668724572902463530002923837112486039940034846467553031619106275913633609563911935170491466346674007917846578183760041215908023438768298205832637260366929726715514453631985071868300034999108066287402889380009345950968120651838873229217745149273583053310353946625473915467126038790730430521430726562621695855567811114706027232530880028990805462940160850568145176567413072842064723935312871665638167821620275648189320586971111781863957330658413074307941670323486816425360801420378401606604446124542769210828205039864005129879772005664137608112697056677606896319395535653166917777399538738874429142097334844833274288823971466163141617598370835836337604472041540813913795505611561393509492568353957229298638166977144377228564416964086152398310014144756965889086866672747502881169854446048152766940527447689709385109289758857684993170194540873466719325379653268270339789379419501768965363536972551135483461733030250495203566368274266562731968092087567510703089206413121988114886851970736315374062189963666396876794241477689222768461707678113725792607761715704991686284771680185067617058399947270644476300883101233113784908569551694792401476411067438445232844622873461201027106651530893440327169348413280819959066851825458372465268786973632981976296398296434645512144268847680902864893366032238507209474391778594232570186986742942124420991679277786671570716040462450887321405515059100350248476366438085002222997196860606293090442050659344788674905998732234984502750549822809836113040524685578966642749060516024717773068638043741939976741860906480348480292927821916322816405214061626829376308964403526887463381801302233422884006929906181527914164537523893071446831233230232799306883327779868843455945744235065511601008055395667110053874840831654585995310798403576876459379227900251229893781616282805325430807505749991741275460934300205648307522107047267744145784691646084376766998397162605573583557170297007457270412633811211326893545652933208140484586588564800403052239936503200061445698489040806130600209664695687236421998010527471678577849395454808300487071677295657716361505907825023787381386116966238867244266892879900990017272254589278618256720434410434761884759997296339908760734749144484030101253134961876994402241482290527376586481618850173119122390588814391419825019207868004816860944853320684482599094526217550471636729731910299544042433010086123531650176444267043953680244974652153934173875606183019220991461721968075933095812824073887462653304035762308467296546291730628843553078619842565225212701616732629610258623714484595408406898692799534100842152206674872620385395946397106634190725166743132658133826722137487961408614764675777414288832290381827668006339640737880848873935625187125612820004921684035894883234906160304760633922083286362045418076184121299477497203203548984610844143981528001945031589780739529962126840847951841994781124053583039751241900218675446494335677613236773008295028417838554988305837203593317455831938411146792725129389412884068892454291638522233908865502438152981179922353475562805453484959039236477037049188043860830570843188534874550291203413256962960226085879563365694068611883467274265481777188428263433407705915035665808411060528495871725994973992818473972092733364136714932626790741204728398673080893414624640030211095955731996409108295152707574353100204415472637015133909734703363960873478848631928249369748771450924752882740934635850452833809828608541996020153202091463989811008074436545730126935004017962448178420552523190780053041495465883866134303648318046891834665705325833632563612632600949874686091904577872515953720919429987302592789518510904172427073381430769991235720682932165373436703748028432048729586233120680658893598006542047080268932080993243856457124621963821987895080256431468104438404656879658125979851471908881135005628582810453430685324555271243483327701456399237585047200228295193285753357469536013516874459559992531585662627366089829275210004835625399242676284261697342265933807407961308605217715838330302271019893399520939956718769418171605796596696876756183245034547279961848215270685605741320647178038065069231247513732137096648339387587064566965808793276722508316388081963206382021753467726968838838153779179810348005638177780577725154703249796969359239506580935745658998716619678986197750545542856121803915648144741445463163928148987095975736870015060798151125749355773620546269103269677282087827082522594475741914712912234088960822558377232485896748294932155997000180030115340948221493835025202280103988567888983598778534021436983386355006888000019397728665783478441376447644789355439059268156189302751991797346713137885846741467054939690543114023478550809710631208042412452801288466625629210586960105963841490476576334650266343687622669625010990856202555744625021189338023277709197248531253621550502279040830214578967604465627252558048776759281059348234459181223665398533112744142048979809278394376050162028783935308246893434305832256985001828086462913899279910631203938621095179381372883992954477400051289564424287072032797201895558364376319570630812120945478143070764169190141831513876726965754705922967385568618608366700334189118532438192785280190592847047229471288746518791231116578915599620007481960035421266703983880794781690440451590824118656875568218206689892015239124989243607882135259174868362317350788236317647902412489095454604020837848536389328459450864744689418988311291151974032763689980382283937956051822315847097845463550300679019048278997646760830841582346696916250817481390138343564745965462491465166370397951150247960550541502180753139269756100501727583216239676914660236716052801813595784401061821957215326124359670209040199173684258290759174187742006778471119288863478600406876006198803580135674049342002656199180138025120457708961921591658768481208877351279761345237356931088569781780596495164859858328570479749057749989875438766779440399674847172383785381597602788596873848056634640556031024903967816161539267640784391265216617506828527865961996564334146813716567886305875001862396095282166751404233648966890274747429471739806562443986103145408129809544953307182658796722197650906888438817593050913289140741876513575013486333257914471504835952774636015593945368486662733463540668756409736002154150835593538334615848652473024158826411909320085706135360905946359710751913640511545793613065589516613501361626054715407456535979548751883082603412811062634554409038873802617932492998823358159562401467756786200031152455527761955217345617960363003039844150485349983809072635084741323416232835263000415853034306465362277953266185034116416666827441784707550820768076555658661953804331970247219831789806411740625923996795669648234041984493558645470309130211529340036942668848214375369192567300461906540900293817628602626525447350306008458375018185572450510090542493138171536227022741507549039490525942726222653220680286975323026724523423825413512551945704877403812200310281074779564997765823334509125315558214078740317482976389032215312356703020786110308766900533164882408690084657632800352235631388364964951888928647111680107694197232373209574593800824811037586868337834045762150061972473811307224987205738208148160881166442736221349081302157100989586782788838746485026299153558418454250381262872480373194040778174122196250294715947803036820833677817689957702474205991795326800434988539016099505109688493953693504338552750143281859845928633233709696429511643105405691205279265019447801334540146070302771426215732840531482625262059566521321240968914218893203435391903461757954304319863567195087173594597668322411651854081337342336072826880161990244379240370103276139765045441669665442660902893088423124396598018673474815997200032715063622977882783500071637634566446641129748318614199303224948190750751300213163889149281821232443388676070306646193461619016485673288316693417128736585436391930951696368687897544509861542031857785516475114924675073331316514458596334804550052912943255569376739134609136591921180436323602895492809594970834691400862426903167094730919940038807549646559755746990543689144357727949811843319687903944243133452886105121094971188626499671428356448259656666316402301426467849690598082546848096338333342468336182702185975970141347067330532442274604093169530843702820398308335683949890951806710623795254339302526710794247660206503645516614067947790620568710086021839824905688475266932096206054674326826541579630624391900051128767438173871631610911079975930043782299571353244831892722003236950199266078843077136974263691048798626978065792140282102751470147605139195433745528305995722881675617020907334104539067839412569655155735557450749806888126244902704360285730890961741072488612963072333120693985558801158039802220369850228154799711323155536456698167867524638706458921401058989000412252075323655466468793474984078505615352498401251758659018973441721349274230463203894573331001267275876271443546648608654782940026671936911090422803574389892301151020673105948738343655359758272244987388909234764036905373445810711729088077992838054399807450449936724833282154177245601181374488980432008171355475855350046321394681092584752480456408618074775591851802416555045687322826068873271963208487547451768467702332538652694936976774176692575576695487763218321048072744034825782650694746505160054836876112837119878168537385710695041730379352688675894936467999989902321019247382007343879066881430156615658434952406881586255544765789547875964493517310649294861511682833552714195443583893356689884063163888651329646334309205760378789554149449603153128648052024923003204658418700228903833281979084231080388398687429193951434843145832311211087131677584593300906247955486227866985715417357965805308414552768222617817203903450587578228147859934088484041551430714407953015522351858148532181292624823577515860166057776757759864671676426147613582103010914127570760402192834650522471551311305256444278818170266809342389041758906066645486582590548950152497466901865289530970409020836980926888158811738658042175327088875147245118991804016363056854928646787883728862703724279003186720672351167407038036180835058978911173132592485010707055380748276887028291414466738115289428471349716375883277238778097044597648057635762666909125999419670737470197133760765206764355554013707285279513141033053981149030269661495840157142564432097557067528808661023646497411883884904928862372833878780832709308237721326004987275762122466256987132097399239129517782571371054729454424373826093806092931588426705366070351013038937538996919535835196829682640115151048253266944808266216157682177512298164532035222028806734561444868044370225038555631691793937439931118871210860179527762031693084376757959803628518582327023680493632458120743468058277295491889318115925623114927058906984950692541527598086516223539300094350903762435419638462529041405169795940464673086894633297364562541894287960549340335934533877032210922633361664313842614053076281166138620489973756198438564131041360561197346406064470968155087260221844485604496773388563462902210457138570954012446340194581231584020547798426271698465152788286319002374546025822873344640222375780530055635495474542662514869390617394343617963833405357794023304384244071335741528840689372888450675809228777507910396342027310159838157517774643010713305329915353028634606663889597375671703724506728941796843247252400146993855712788604406901154183816060768452191785392769476225918227095230557317905716483755672412835887665303468372143739796081270615735114865265959959442692427539957305849507365934952508209026543511126014793930376730120789511173596971801569766668163382723606923957918463484365740030501537391478363429630506632178032227173331442937602955298497888311294416180031068726732414483529513635844128531920731076591653512122847142487095046008403132286634016114488890996249981705087999338418179424080828027370927125613879520891641516007015101197662812956114028974605484626180528736268570178228894265505554044992307096008365019274574040624100213734400575661299168335569176381892625504913805642771375663031033504651588492408078951724889871202076662817061244534108488042902871410871927832513776793312701807601556361353621508749503356331630321821902160353036518877926230225791410465141601809526500537909384147745401898121557797071380820976976037982878789782198466573569763975926774084889659202556635344273284124783587170471750560049592570674557135982869608688401522544460938638910394482799175432617050150751708720810296884243335273789368832410471867728642675488216666492220198776263716264171083288779827580999399477319697069860872188355966458367268772972989389934087005157192116759573230735791919349134130238526850519701070911989393946340479671895689451142211878604325395973143495895451789308994768119260964745383777187931422202464002348311009822283210272237999135501164572034776191675444331180652032917863873591008791201015224284605134058144593276723115364607421585505999263710642303771288068830840706173306171711738505114894189682800403570463558962576979222413639618785519889235407830059840402098962217199997979609474768086687849860571233074373306661703460665172013220995897208454666814358742029227963763743288134385228577481488287347859221886934011054974354889223374086683886544461123095013546706489386983293495480845613868413903848149400517756450590389603159451073997527502071435807889738996444620076853878856868326105836639699310959035167833430509611449548445369206131310230146402463409200419188079725573742358283688715771939595764305180490782738249306789690984607000725146559989547559897303260391760538703612938961946207153822154534828099777583572437892524543824278310897638463690364848536624163919806547644220108118229522547628877573586736136987803413176255100808644916434743521164350005669694999704479896500108857995314581419803116972840663975752815841326046648056630603829984745926884448646258117642288526880943005807565405679807262822567225553854286728737774058098459352405707687000437927776288721345766744631843324393274701389825755460897838052605760828208841101681657525392245448543443252323980995106142005267253823538022126610592171724666914019280724120247010518817584522424020145941767040616802924031353751269098407679627303421487264068194466345659338274334648565950725993200344486400315903984840024296798710617591153269407374204013290919673957428358595726828665472983190364589724563096650598916010930356690129709837666777709750380262613776976467429438975838689933140247100482968816648776039119872418270696516358268047990169076952252818266487625149077388943744346856197402647187625261325254428077304387600544319294944005323953298715632170878103479422348672074447134791704592699878352851282608557263663176540194829894876569318477456373042488355652892704187100835305460398424414652911035751028861720515467189187746519513230078874366300806781079261280029498240331940987080967404932643201514976678335321030392123516841237080710320696949636281197753842737210023028316479718259566714274943902324936840124940625440177382825142999776618520544445912353167904803100121535312299073633903730840544386312398028462495135413680681452383903354160820695407123857370476498967831795105162098535136353556431824505231897845902900236350235009725191061623916107139442999456741687484893775951936255673094701802576542907106196073872626617072559105054349583349066878320775647916200573215748662568454936358496360616700035295845663115770669419144139366428869323960381297383643821146582877181235419541677792502619801214616646912349855577149743972824184599512295464481576413217667423006533425512298980605105260948537474768727195741865581668697790319096954240448782206763689273823710035020980807949008947755220594353262424414923389785457662262020709762029069791557010662380327682743269643096962769558191290280102741208625928448499129218078640746748922371707476510188370456246808118373443288555608565356249348431432770277900229299354107679980821204873200641293636459522468897890821975206255044882051454358813293495929556234328763662129871839620083072937073894237093067681847908335735715526546839493837029869301428487155366153597604862177693621686148098273231171226677635602063112141980680761509188300445631163194488222782105379332858330621459368928247690477516909919360111377404787292941476950523622377262296545430154211764104111845905936497365074853283507231159749233319330341932367593259276382824151877288234752598936488228846721638890684640891980906004031864643384336384035253182163902092590443596717976816694626917007448514727040757786742562685083318524809028797809461287124743327433965971311037954343785804783501021508600208249606730068666669831845273731225302008372042249199489825466648883256696303351775871193754701516264502480366469541157245962474998163060979423701283151170828293467179405467657250534892387226032949847111079016292309829163120878328684143733117283577520343221270090092458961403083874387815130559815094428008082905550647457536669394636410725843816692360476915060342919486207462360757845268262272637774669700299962255310201386899241632167191114212186830915386764359136165209014761216431724075776013293571784164658643052639742379816045710873885428972806065030508980017914727120089023338626722368864545328073728797390461295480202155747238771361145871414642540271696861029065479739585648800386251624350912193040892677854239744830427357186566670386479305481355446191207990422138490506567952491470202276686448717679021752398370537846630564439775686621659423055521341304455363960715241677681735398506613882432187407135270023330293652624197746444976489920894895846869811288764642358854469265105255677495539660623051804199029517103839561192980324904445650377496989720483698145212858922398557298058551776379015361722893122672183889435150498584048133187686023671361570751408562490493761259926381446581365113849917156216257020789716792964383041902924624582357073953688270998531627483301639394748838404813975281636769297888714861811940985307240584507129250098653812737669946944368211719349796523699618442958412421928519780081234517371954168714934351345172194805577944165160380411922736547419465478912491199965876919956324414622547171699203166581935795847656132724611561210985147944743245569160108663262114227696417833084536365438506871158685352655673557522461067883006272334749762569554159409498537383384177522848344591884181017284703188322515082009452860637409980918289972719377340561488567490907789821471292562909560801148594972782142988831659659832773932003615108697909486493006540912966530786301257838708379375505294309379995179342191518572900346504466299703155530514364327248102567246454219452069102961450871461664723301404808743297856602553816837158817360152453211590894333002360521824556869025462044018664097574759223330404738593000184804864429356837991622721734164624570486457510220901933507614373113157246172629715381620991950250834228904589250565705939507947758870810382799080435458814920874404650517155112002426550359744144010445702337764300889593454281470631193637323824386804233877077559722500261062704285400276888788833453900968561799609203372698402435824177704679251617100245991733859806453333626413966778882326092115147089127814766807931762491532194316145220790839972241559232522480872548279456153521253468583581199189933800932727869024754732716320974668407047652654667160220009268398872262265143538505252437652826132649954430813478095180465097060040971033304946233062666962395328367911622393088254441371078037182819446738008582062199000268906956863861932303832196305215348874439339048151925561560198815159547491387096577406717700739431955994006379385122032740850582167785231402772068895953968740003783263966547105590952232133436808686335962328671854544571415829806723249737565087783898122832106716413606481808495671465197654685977616438733595405437016197241130644656614048375054408526903751627879511240055523942490206408000445553578080111195059548993767453825896718567417357492310637889946092634183497370080414291369317159904422605694923237624422200400683636925842616390374182610999987663184936120958128737730253906961355883564849602657112956032087264625797671606937140293269915174338845295350851769173468393455466977610221901871055647343477790010269815475564823830377863927695861674284222121205852307750862658101985468776502916766547986364870301480824674170723984697683535588706527165127241737551698758971382573196206972545225360185269419141607122862432803197552951133467063625075423774969456983841634148614290172704024896633088453786116946316618111942548165024660118220896884477087415477210834257455677397822361536441961130251575660447334130815002010861392329418265550952724856928400274364277995921596740427570263434144179345445122492862990252567382856579076004129046103817304226967492823686036820616984554743751071189722115478981960766903495530639625198593403561889814823215729480065065388248431092587378678839733309817860214518932542891446256684087591385677356157932611204669822006502365798927212376689526115177022304338601226469581851400258300605923393603299186657975464346302974674228374806985278824101982829481280838165812621038566946019285534493290917586106009500329032581725158007496723548103307163874176484712439578975392182298235505096035663155831495878321130332502578295209143573748427870333513462308654582580931505691961444708926963311013111781512729285156162224003039824143267915611231071090598984472040865678067034684665940627133802472748245126649444203417612284793285215185886736932698081131143643125942282864957679885214879132809505701567656712747354862626526602627405010035572357032573982572838980457571948718654091992118212259197551851010301653253669100615389465489999686249167675502030904748741170889558918195139393835456189734871306996361551962259836297408664465044142565843050946046656458427104014136405411680096720665662340194479269158131673507958125349421653737363549669232176852267114297677336131931987211787685960452023136948978372933472037897278582192431794511992280893353314031378223326629624026097282842665784397772244329066664857209092066585140814538985096176823461141835797266233375483147123671135826176130624904821532400479371821967225695281407476908210962805620232170523109830775009157398950105561991776606349516977608379945550930986139441196112431528653284856177903671925305596825835835745459343419576934625880045571856226927807978941578683192235465858320364913399735044947302541677211239661525005511210943316574756348519770132718708429864414872117181230255062573542303367521841325808298206601182970333783456387988975612658981998658104101645392380285907149325635475428147924013311593339541827982847328040218290815825717197981017342257188395632878553155607960879946719811234188149726842650457846543688904322226451572109495280349596558910384776249901306297545410468872198272844064702502299217937952455490474573844457614228508305306942552448956467753873454892329745569813785832964494697705872122800647987472271890537409856487744745859621016711934402374954345295543945948626189059226633799640212600327818297101333980158428437419948592143961396010244725785357504420711627043093482371906931462295980363095049941283873251646565443733429525458766959822874574084955245884096989106529423632006403219500506696078711606069348575595488126722841734892127860967339171499744801319581322421601652888409843290588597978463831181217828103712331685864856202498759490204749028492363531917621193106614916301684364907844441139251105214227138037111808774238579376255848104781721856629520300580357621196746922948006372152502444956784205642404136486227165138024960385458644014901344310952689383162353602288768563243166316793746650192367458575536265975588567270660833734023128756362090397914368558241887330038625949858739467068475568020768078771913732492829768326064316602184851262889783287891690693498269196000832959294026914513330019788303437933186125451607644365921215483482453821059395862510849073189127257996667806850739286632263213438857011646836745215441834888049886380885450614776440116561605965070193258382440011009441934941006161750739414390385142623689022360492169488090954489718589037955147516617069088667046142681863606000223635163975467955195149740373633168079329545588376815257371232802132948531437974101812379847726848254506532928705467138179859901356756665900121483946950736229011227709543226622518132760486236552528126706614889060669921562537953342933043424140096140875993971135360148324173452124093380178562465138839422403418602111064212790012273797198445738641631832660455569830326141018943531546841745986437504117415841379114187362466107420898577208563367847564726762387396690357257471554070727191408700390845350367526374118758130618298153683946986893603394736041036520528764930711193502593634667168851769807720386265364215816837610586615190275362980658776705386882125039301230522624485373365720815995149437760604148322024620611874618354290269909260768935592173843295515861147023482380576042245120225947872144869921520616624766859615405859118680251533152708565652945658758087408289549418691426317227428544031734731943380028979107488136048438038224513182993821716537260215700630639829153148476657667649115791073952333193939129277765797437673392556883420798783227415157578514444578614189615090747030542329349819924791945078219909617915920971987992266529832879740984555720472646648663341140585758982159563793573065400384396630861733081268285329037815043851804581733158469260795917414711186976882041463277390327746601621355151767649772563232589405202025550745713524487036943961421977604775753544023205814134564524080471795532049269684743869933068681008908264289173113311267295058901490846237115153869561895649876803558292359333458868750661750220034584150887203645457736358379970901782416473385941224076400636239314431528053248572044145924128268192751327692662062004257217644794781585113786250916729399780597676803493986659014596768030049561745152980572589103923298171228932601354646039048311038596895066895143361973548346159588051366106575857278209583667450227102092303875502315319895425850436776542441444607207345911343340138750647054682430454528721086221489511094459355294256634027189274496518758766827690415767438436868658164333509569953386309810984963533852115734691460194191688222777863641815782724603724418240412482122539070186405168235344012038077839632108514252886002139044133849862738329461602382692426832639766694699548377901337244534000163163919612269523906955301300598464245959680916716155113461891084675910949056456267874018517773501837320141726088879544094282912527830640491028726615887757368606207734345403401231669747739138544297829116451231852790918498811694027387727581012089385983816113791355489409819558761900132398942585241074305331394636803195039979416305326586868016779703922103743879350573657444406176879339285112748657052929481833440923219398558815772650560523028223050437096087499774952753805549915268035915829154396216731261130802746443869292223022423306059768239503731496865900835200373867353919773080204118136174530388345794804797781972145009382622253726814071896106008699740834188886426556533537362571417576254836429690678950201841791984476629735981820882341753013952787476386030539175773030720123208941923693398498545556771430125241703858676502617026222455407975664522321288015058875979886951241008816173810199706102333973927126090854651383324340453757397025475850589263058493398305852761459091962161311315873741943553477618497162370384088737676245154048585360504373672028413301458047335586167071416036653430620597967852336203246716592321970049961051953712062838677111624995535776111862857317704277245633343444400487900109051090329590236346464531258638942000612808368441586175380599125527555013873979771322335587676937121092944934345397388348540489847469316606351942696406011362402684093923294151884508193786223168087208448313080305794413185099478631898141970521842075932343489855090563840134306049061487329154458161017653283446962711797472337003045758052885543601443348428467751906967639487362885758993014826650362226225620079184029809511154207969793985881828856422266642503357791472092533899292177656554263694718318509124247512818952013722582804081205287140990680403607837105885675747126443502641005811194867185808861377270849541645164322415280990818012394814940468857249334909441378098159452965126180276837579789800451176359135715449562607542247745793163066529334202767635893098578654211811295309554799499552880694381645908504935894430442098103850350639646912450943069887060027452166847478189107237802088550153596429064111636215674519389520418223762141203110228887482054165232902343144410118595286610517303219736554958121498476697766419456234486975895708930340063297399594365621320048090407888667162175416833429301155036237880492041720990382281270293838410077313934759532937468314062520550315628184761699349158947060771120738983505491026629303082802485398352442630326352942082138820450213593188584126512789033005670399108641568634987705517846982733228472311843578279740728432264233080323055790445829770260377125668536903943050795125664987442660345176650690865955667226408711539006980240784910955272705330358256770320227950426856506489400590413691746559466260396856158639154796296070445020102147136297182374161539341126720681881496761036827699509350978369905116951354025429623488082659118573089948178965329591591222410523298467948723261501522891454097735270817106878360088223724050946615758935246726353063444367295297731200938357238567413176750351692966090262584994884943953456516135765494341188917133781741639076092408557873804425983509079306701148537319463257677280612907487674779614089418283908493365970766534447014929575436704809160425953659277120848625819889405541219769019780232525086324101356575242771913431846305960713146095752311148606543578413218128129058014861958513728722831060238664183950373265870154255211326248398512918949581052317481266887135228966599273400491092203662025575528259003414770229618442589915109180839824061353577299214281035194215483841261026481065797816382918666469941094352274214799810752026496861589541106230844683030626481569932932550657342186317715087323449088378132169254966821767092475816421735288232578031613142581810837401374883940035211771580176748210521405634872144664710432720069966047825006088816702795956095726738171606191615519045472402999013844707036596611726238630143991292203636206096889019367660837716738668953026998814714489320526004784500389268352113787424028947226135588493082730584971738452030408193464590762907213680231614519238114353977269307559152105920812439904713358697798547258221370400372212353239027719354758472727206781309460557580296366906475564436307977779422102459762611067742185726832641029071533938497953045567978731423091308162515682354768503970493176751035239188046850657226679079332351832697807653829805876242891804338855281514991642326909256637506777759498928208835011403862091139241359231404077026828436880228697789279025925733656897676454408630536437216463371649222004063788614213045238817033878298104523853670030882371703936264722453853594768307292318412127832887043704309032770680981452134446508540398654651943322288670475667223749133181798056814871249515402427437608019407389966268649129512132058644536708815110386325238094693817721818650523482474248005080950743064959650254291382324293239235802540280377695481088804890067554452867830072351599620669978819063183119660425157892473974263379695322878996103479125669412429260402418898012256780631314268142055580321500206166417083960700413783170548309435785487522074922473369609227651261292166118681520351713307608592778671567401165687015523144016625571024679219190929925735006308242771613697423465694108572121743149827094886506216908751946002950547426452216667642734853743673440436745711582117263195687885749533765593401377461407732311452067102307800041123970737953159633891866805844552789535902158067637999193417631751972106390436841842872725728049238759392541122287815493788447567507404283054197233090044943990870196787307185779053490097858807709137788589788312070856109891112927723000954815312221798846985339068622766838736402421179048948966770675279958497318746478616086082986227010598293465093486929052398007483217539449672045843883097358508355529264076090483676659747459341309587277150133986350406966582467244435838705255117760412170577294002207987970332588755319983077102419289573600823018270495574391271473450062435131349036629017533368643659593784509425555822826176944294984062647719349827385604755277121796641919686485425749010308930905848422628388163269616181562856644135301375885819486528618236890085741584903240203941687061457905412304677996240622723962889819684624883800636872299187770272983974659375060970968810691769818831498855522887768382690701862329608831798468563196665715157262805034726250760227764295921011935197237238442089819867437905822067169778648813453413439396517598732461806733348673588403526052581211564741409988103066779435617044629327866012964391987397902889173288551120430836236562585224304091066427324122489498444267314070625077109515776647478970674518351876317290385026589970861591702434043274924068506293440227828036109486118976373162845302724151456639656032422134991501216121515665359904037265572892361028230745137579898691823780975628522582440297784211348013031252021168121270992802576391959323060636110760110215201924842047932684431883440146972061954766321495930619155654872243362931840728741740485832923344074024946298277782987123709633555836210901432306814302016307862051771425107440517957104722883651268301417704962120735922985950262322029473092863953108930587350383028230260403446043961295771930460231374165532140936122502195634820604412882975337803189961071221891971476387295864849690691486156829753361698196658789793732531374662119379641010025011817973590281857106309373666859979027260449230356675337805461563217093688079768064370217552823872037116172723203684179183395261126644240989261158044119350663197863384447913237880763592035199161037295687970140721776185696513820095616687121674818613806317151419776567228645937662718950902122121286407484111809338649592028250980754314163146763721806939515376880606512254846093194328252564127741725932003289109076942146296787613662478614956039298724471398086838493682112986624255393713086474660500276678798751652532116088692543920437970118208153440667540879834038125800451857542203928834150353439309136401402684030408276410148526760906064032245758656141991931859715763189962645654710441279392270832663836842390650913603821088443688671321938391593878094392269741144278420430566231402297675037281960762426416558922870316842706327100689115824831840655098229628173627053743217634204212845457940531018216843539159117131925883869886199310008076270612485501792541610565392032805674024037999305734362141166306659132149938510669141167517941239651756975817617989690145923683110736714592645423214620110808384294963290982256961407411198762401141990077408916764425140218149099996260301895021710096931570962504129056432652045138501202018419480795176250240139126254661338592148295290776987621550523471349920869971187421173923279341081134566701793440124469276904289707782247613603168055375656401575859457740291910406272404782117620877795318549558597815302565072161276005734665140023742644921409233072216380382099204874485892598255435546862625191385303407987865801899151839963108445971673110923618381056617468531822023713647877154389544990944558269101061274990960685407798933053850714611516421881683181228793229508961880197900796604541797477398228639689572336756173865466897235800518994727715842064675233945908078498429360963360040463205879608306364210821257218402245157404726728281042233761912444564224579906887272882665823925711642590047207509613952812056799837193110359279286536408216869907953821640421110591962626411658645758749125276501894291872353522631795670010082396397237315259871879656513492313200911264282800590235089709404678939840427446920110153941908587769682067057389321220811902164151789802486811492097548801837761352127431540581457151741470128721691653422715505213820803578518090861933401079111050981154008497675515871655306349365775531314242949137484231440127501087290743538213395599918299529610290135410492555093193723212209922807845930820076784305832724153047743680872408498399450782336201147886462413858422186499243736648441227518773585796762745279436782656295475357156840752764422499837867438230347053404309659122845442185529627182316802935378249797842581084068329362803277358023521380804139842526776713270692046445630601195843098888200700781313650679875190554734605136672123039692607851011880379106846002865337696396797062016932235849806192425183584717577394019201382489395965075455344471161961700714418510579786625234724184233320653038401742568741492257547715850193992511843707324192836550140947310632921784658503688656919843038818122555034927310336858911159802047288728890191992727992975680881780838924920553208235741679230493626860995604845607004135947837104820070382248693434934578528678535811306923711095836876831685607995308453183627690089779402316161769748552854416661346673094332082627238897186370943123629179807078107975474548393565596455320395341314308227744885838791637080410598675110899614893215316454274183610824042843398587481553045033458670442464559550543322117360850468675230945392761820039200611551552761371607552756442288199224938377236744987081942848520045928517154601040665506058636605260771807812994973774687605111265473553374691130530664276291814018972936138303163569092344408375912198346830797702121147789180670327592854389272944374589084675319810968568737556555543831436490665197664101712172966325886137440051406144689829262395284040606437649226510445180974980760947598810054632131118268450855089535400685487217556331638097617157570188635251451006780589376169724091507250368869041883482466194220048242017721926093639612836060919213568370338632765372067368238602221262615134337822194860371212440740162018243177067409671806824528613607845999834238843091956451548209278146761128299745816729419738985963284060167908804378947956602726112149208045064471560206955827884342338675980734500863133408499037970768076843313197088195971175912712912666157243018948458339661790110388997780231395720028228670990046909062352180573734834175848358066338038816167520996346334700091779371469984660296844355671233487192635722433241014955361287103936408694971515621234829591840474087278494045065945442316355508898858361707840747073738652804128897866796686992734335145881223972194893539722540084933364386529978378626880839179155096791664345903071351032151529509265260340236198070002445034242635320920297198667667619116272355722120559277444871968514619395634339715679243056082369951695463039412306546258128472870282518826884602315233222225088453323063708915284120155343514744646430713700032757547207182790105100394644527795996882322662474893677126487513024302507076910035965521392553446306349871984088392969906031106983323724936367381003283707056736792884376517065771105259197330141953292097747613572811144850607988131314028504833821148212395037742380596318019701643469873376101293889495825341128380002919517734979373208197954810958502091303289666826851982374087040784554255601247884686766112763208013401063585110576755007462737755384935967158331081092982402947853142162618401603664979100903588109128817922202335008467412639090555809235535668899610865801583617108382114538427770054978289907604542512777305764481270302371743362960002854623968748866494621720370468348274063079444789815747814180555008560948239445920368283672244881037099145309757129239869906577114828693938927624085592141939688056721363821764529995701685471302913499217090648774376408153508869014784621287045753002255213465789482534750085967692514408626784920394973325949807789785410093111181433654662695738499044370730611934173901784342632357535978305429771293859407163489276226939073299915690787685132937301074185249994052430424186636017882471649139778558049557522590766899668775543548280994010903903651790011785933174148146674486224826898699592845454283012886599498630062691288464848528053207364414697195722347918253538294955314465396568827379396397052418719880165161265929018304408991455974400868000551156003196667032155138562095156730669591170790610592706358438553889168932846024721056547255617155872950770474809985088375066463868071988962786747329404334248377299750842599784894189276329292240170195143924269317966276834632905802494266977792402500651369087681648048363954002136864481996763553914328156930525460916776961023309923825076741146898053697510287877890447299594774165535451788969276668624354196395094037425001492039009011852960310967031470940508856474332574265137530065731142580786239870926075345180923583399874648272131193130400193504314301186661534602648303836226109802098537657761621374377124123651551828665361706763068869522685099606813831183720752781074365241954579765741536804870848082501367887371721925370170794025697452153201417819782830465356296405289413628761105981095513931308427877409336986821752784829265112242287343173643728501405417086472589272843899117835874331985945062710395529324325401635644248833694981464100667110145470768103863626654580472999727294671591224338397908569861532465916537686510733130064154766582576407558187862459519831208698791173399716013463157514082573353794591922882362600971191344875035649403558448632842652645478073558648491155049203637800131875380948647245418152202439086577938677198912433121287272310610843143886448729201582281322376369923361177407954572271806031163351969145646705487794296352665573084298738312354767467194979026683036506725011961057095067955020914307649325909291011920932643282031909120730117078887225814485232530839261995798976144147944745513042718544570867016427684504843181705393533221517301590165856555201929312655330644360859525871476399609039266656715878197750326460112165209709124746897575943239478036282022909171545645197808799905331154477329218947651075041982902013827609236347534604627879213156249247323080822396235923044315797140489421533169727702131021612179214874964479254810458235141685631093800276813721593896863812528379233055529821256603274339790083531941704073167885545860207347992959667784175058797458797167431208822002214105285593792024938439285855723010078755137517856782573443791417285551858739930013735266143509118321851611590190469753537539765243515635053617620313092627784257077618797082502947836589156482915068630149156963192318389225093074088044969226177840632283484997138489539816971322156142914631636909120973642151732085482487623418886635706824926381197208313080559705335457866805714503007592101794369467581223182492277356957094948432746590593712355963416632508575015493420367569755012423573833708294660869759768192399613019050176973133625298050613630126525500832567332133315002480582218585183812994859897693263638226326985419262782840079167923635418305534982232442904455116812874465417844842855221863505565980502427469649188543435290561138597702970479408904357582515124820313014628040843362826347386067373175329436713109606850886214976627864847889447085763862564450904590261867617304320585615327669910102310981890408661446458298295439357893251200570572025897587142462050465059107533596980100446621494049349302398758766714490253638287440067676506450106740527977636242570136186248296635545608021169043522237846918573262290833025549716832600041753162542900546854825221468960138129883199753837536015036193100189573176065367296895543902050208883725835570475203102165776073629666120589842272605201697078406014152605191164834986464547750057556179840537964669580571540962248833648814894734275715448814646845139024918372955889119003135220883310430800469572141903169349613711004728958297890439153389272593548427960213501899008141214702796005167459860045569635390197332333045418892862292846771423391422098131053762755285440168782628004092996490667585181537943026539040784719854250331387640432053783575011257408958107562039561699168325548058652496445616800843712815973228199405522438492968098539753633874850103768967487930680703834845707229378690100633326621564094758381178529688072936515496231589108127712361733008696198304194599971366982208712927277762067116139924185762004248488326517994386106114571865838908159629690878239571848332123468107401896155033341389728135097966819378734355015437799190293170265081688281851750060837575342618061258637701831508663470030436451499804610591317563687185065014601365923700528106959641279354665091982792591690918061531364641452305828200273023467831122440230113646380090195705073946805385893369988869428801767379845934020031157249271421857945393487388038375127270956037357120411334411714501707759915572704154228857768790336419706323660226750520722018529806709210575303623310876198438529266546227521439790621776084289352661641523414864585002181815866901462357843488339918480343117839693327603172083215574110957896696909783291398293179421476543048683631521007332344919808373936459552632854301431262592825804297671659544194321733947012646579709411834112941799316085918673097942630432922260770602382258163198023553861484269518905821741385357767750694829133562782909411067231654863805395203497754734688456420594945511639983596156925152038480986093015506960624536426378902890581740387479333533151518985171530923141743038567727573779247826988310356242749351611294050698371482253786390854879733750017175760462671605575526779686352938769299977403185212388222171101299845709541304355571969076954194705944697223160937094209243489831028630149690342873493260319489278816235789952869272660781181833345816215019009606127658781716224772041038204719794796682698959355943013193236451537419375595687357925050060870518625699584777411806435095871411744727499944847140134216789256221793873116175063631110924193260321049475728829123875317015060313794670804742236100585433910753524345050218760255250149889651693003814421206673099841763666647574919155310604621097561953721380146869811098234425591182056299409356669273785888224080803934540121144148987803277057141370004620726682805657994634056591383908012624011197892456135115626998742875912184928506257416467653175974721354604179268759335516915853664463195009998091183025230967715627487196351542473667174883001588056556705811622355551860189589866565819049639217247629911513404223500249261840173766641718379319159655181576273318188667116988019894951892205873426285881064157483371559640354986911060012021493642545132549783054628953540249580599607545757283273763053849973600038868690648804054963573710733422575583865217047248277258305197672416567630353260342147607027279517192534071038219411775689201484695949454761083845349682507191067097904568031637249263101584171875200576603768798790804669593674248639357499007157299575552570692460208594070848101567964822065890777938064901760248661162984680767563837404165399849804077674788722499873042270361727123533918216301750394397999592828830406504506777901112519660725015134510647202236542145271225652288665908693068541754476217405697548705483193466193269605746304683861660564315812093668428636368838782015539377404174952562788701113502295602989834528509766922820707680606117588979213076622822630485139837403645656932607169102716254088247673730505039133983666536547826535347200245962253865229126018351545986549948325951916878345869869538953490653371302316926800565538377217456877277353883365618465086735685218365106601980349188566535531260250593758332126226199276518100308764377406233619479055019309592657202318448178451073729506495337008966642450530797899944391530472442313081538938445129266958291610655080538096200632648907464323365677853793049263639931380078656446573614046637510376480797530788319035087159570486579381712751367964575130691360852924094332359456392874124658764801006417590137093517175816680603598967955892140171256339400345129637899808146873612508274889123300124803407546030187351931701313801189282487075661045062448845632075425264932759750551466069386736981251654061579714125005900732016949476857890295414924856353902485356486710617508296531463879275466813252238842398954145948555343638812076677411077605931830608258676992324052655447817904628375341754817593375306211733895249193003706105373799687045637337768837971595426656917449239297339646433474700698983259916139497640019982146411083361374723067354307689106706864940277753123462084362682123667263130762632379136661924071550460057105389145513707398253001912022834509877494393927218625388752495388015840430400900719785126380457629217419746821598419411298341588896965124571686445796243003071432628122055175730243736288405517574472149710428356874023596806371779694921267465692596517090407150377372790174277673030539842749152151069735723232505250553206922364519321938497549850335620151591825916830759353821232730473485195566583201768903760969858071431684580268508212202057780029274887980738952196044765129419835900517640817361727118223540265768249244918694373770306322342411887572763575869471774347259244458023586731746671517188187420062477403583846180244425794132402126619086478558272126748215646318570706892212355522678425982326056047148181918053796444248658822134158555166461243499134270840938187630336917244568616004078076425744620891514709244988948701947756683222611647014758714376795722404724710091505166018170540011647753344417042415553357044574624111117420764749787108428644585749964674668367220317394112700824394476103591210371194416150538623535143711618392566111436244848229754761693515016563566966235231250383117724765553155352220502502084584556558337220727191376730407682527957560075137203486604162119179567733565207541591144205714064287365391849095563908468488753776127041368810601523628911299794785862880593957657292114381439210885140942042931007786746469534570385807767583497251025177244943128682143915603802570459026651879049181243616526683141205233744925580729590389635943791282389344641910511758876187005318075370799365385797457123165692777872174267811252590258870545943903787324103287713824637074957767494440620680766624619664709500851453011983519991097456796161438408512669969177409126276549978932935025515667559048253991290326921994213739541090823757718288972261578068121702496889215713038653025839438049263916532841915672600280947894109597445601608377321703995816544683673076086616851243505271971516595242076000319590983595083648519539610310250597036165106863699413217117187387973342739599073843856805139277488585921859701095904196345820039619981876734178911492626108446494837174038738145030589525578314591627327193150404384086618563370694551382141182299095356145383512907112817017863820476981472863447718559561293322599619946426818294697317324220754000862229295894417833717876905319775099040161154986403812179634673895395629385885288263840556257252263291896980542327498745942341466977834269068959465515232863693422977666314711055617973332482247315543629269003128795657444534971934647968614262237278118351373963963999145513645519922502425234681324192847804305659370636256376690276254705212530387099619140238696144487347160558802862580697418365981497876441048974531721431675359943481425679151433487179746388089277647054627548826802472155431841831781811775852141697384459121358775840858377208241942672774533365292520312864535588784285644048664163106250799280154165420146301158224114409763255886857712102518058017580062669568728611277985728263330918543041428362333084023934603063415213283936134103435996005675454983412674396597259477729793504610031054531026209449941508638604113645126404641778620858376357257386608191164999734556200209943073084126760586556996489394251382059341229335103645205332635352917288824469442385960733673305209203861014859593153685186327729766994727797698824936428443334729793117340654764528640553122229070167935639038954344244672970861601843403303536329549492893691869795695244978001672332299771188031990245080573367575477173927104234153129348282906148936246936511325649390938227038077280668580210246979654457748507323505217195297202167742789136072345758822502455264767555465631274928802940446735533877383548494886740565702448395187777899538865839179807199047774677017082941508380111445485717031486748794429330516465724206469038798205190337770945217684956654480918819582730254322443989149800562877739771452586965338575872704760757794608048480090657580816778924568938060795083828457921751599975038610561123970684131051904339463759794200840767016603914802035917549195873609940939555206596476438810357924286212253778767762845951471332925929439566564417945291269583521076449297971968381200356270668381016575380074839201284225478124052786270797141750552540678863518323862242333053739040434051046828943836268434904055936774497844503652844899804526939310740938613315871860999311130197700291806606089662175883750947373713569933222028140529480526616189290195122035646331962268228268934600775134200770802749700926163944290831251454968807704086560792162781733740296080836077196682796055616098618333800050295735167134340871267502101522806062922754858173528606736081164964068007686438257709149160359202293382241242220933453470322230507680870081026919749032820758154202490561875398612487650986047690821614850391165881713604048668428454858085098657097595943495997524860698253962851193031123178575219312719329033588943113651559058726537446930922843027727773822305902819332910196820632552215818718184331529698808398860031812548323198853499579041762819882895946099965656846451296038442050193442515091514434159567220740590807521187113778301419327219118470644058075578540271438021143141721341167833122339374646669967107246908107129573611257886072773232562723631559225946416596799645733271096909080280822906088147427500957594421206626993929868328270571842968233039150913754501986805923811787442259057709059702713539786840656069666374251886105067328771414973635926641321167064148564973089470242600081216280374859639615997941402582484911660690168075513831473169373916507960064169243805290288598882158486862187610344019074986282525569023573487202983762726124980514479297570361277972790561413620614648756058805499650601092124315903837249434176388978519419662455608480495258379336906494868016163052475335536558818169013186300068853390397616644514711734454386139087226215309930686894668081621264159280784315113551421779114712633935913073135079081275926391799114563744739370665421317810225863667987886614894460625034517615623611579354502360263737989306643103257129744600475005835905655580641907104628958331033094386278488863128032725487151121997089230755357531273385299659825274562124300071113470708671210157234958259720295736280221682316355156581427015321135794489317888047750405562258590801306482848740046393814084167678615222657441680818115553092005540619190602014634115530196685086761063605072575904377584412004122328933876028812075718797718885250155395823626051610182399595173931181493858182897846059500959133140435450960939818447509027978899142131723402611335527577988964708543930403595139115276779432834455844125726853497002123552117313288074526556314332692269816261309281181441003527435272475666558888471833271460390206963450248586169537411519708205171856621990770678392992209837630258297454985225144722765951892552839659143253677876462511113240068535209613066072815486548845853661647669487681665663387954086320739291507723869045707778598279637154027140556090031682415178610359703485665611471568592806360836989652504542545622016105884938288085988242111887360604205591629972294887492786513499425379375170579738849804646020610130059681011134947504985971038447998986342797524986045558480696569730187159039650232540018024560077782689875686731427323705362304428134201413689307850941608885311803609663269303753013348863096321417884257767490804870172866066334722687122985777684579506870922334015742414709081814460496257753059380999967945484305614657218984396152972891929734742287711302076145885140187771808840063161487253568772564301968418206909737646342396672694180556988539447321430189663284142671324015660460422989177250260213784544484804832069802663391222358250351941794088266830087053704924271458470841480909955938649887703534084391738357978068978934051445690658230740935001972462444871249047162306894329096882985407121689306628189961368961479540235481344712267973121623406785816650447344415729579956195169391411271423896547320748408164786307304519923762242358517172509514230124333096764705129634847083507865317053736117436827985596610296072210311959319855910905692474953773324290033087694039267796518652165204554163932167248107634227640790050065980975026872311395550224199790357032022586610422481906537488439710365955351545065752709195816134860469093674322965217752160471242437064830013851197400959235628523359814699371001323935587654494245529679477714935199507883418005467278961892171962680007489029356415340493464562075187899170202264411849639761642190523805564833171001290047164385668005516548681622663938336063085738108248519793904449401409264709315171017608691448784967994092726861523080503862125062450071036717766387640303790832533986725619975089668877191481477041236209102796491853965750685124991875133229102680311521886008399105803384736648821756720205670321699452838088664259770712333174778573644325684642447876157271788521956696253384931438460029999531044786568708416420795325337876215104601590074626620425620900651237866002017336529939624980010367643114826869259856810401482004701514559495940729843300986074878102945858401696245494306365197510334571874258838855559005302656875135633533861712050333862023327966602358387304408452144802836687675050437046764352784257733722529651960255474913703402210796674272267926243806372016553533965668320261211679251329280715908368455220655675212278924536812494108787047596149330869375073446013595439143955963189857450188513063069436820431836042696960128346035658316560230798069061107238079828327728030445614303312851161288410365640703293304697923161761280582069447648089315678016899475942660562406049032876143452454566493531485557942960820605095608875616011552139569396993313275850138373403378213976315783193950692820368567002270698100638961932756128357158088146345411906668629987316586289292808499429900624530739422172883169205517020623283531133620783649272752931876226965151088801751125340085288424807147089705829365128680197517725691019042258807889127858828221497445392174285453365604164321799455180221860430097911000761158186391359791211045394607771511153076506330850986707353592564432264100665891883851535938180348360134799706118831475815820072688794916198984108505497161420302458803742554388629755917032253040974932749841883302760815643461844283621275656058813127907754983144315079369427670271362567364052366503007779615352617923495433682273762235858025178461263727085917014912731226755855430824262704055042807304220218664138651851920428098738089374802141351004412634797564637160641853928962116674111455044534081211523541349016295599346817570099814205382475556580001648740440051342302894689086268337032662514708321510649212296329171490388670945048591223266239232061090468967310941955311197193528561016432971821716868379444832187241616842386189490976028060670324922787676503950207245628413028109951251444179871190943806938525263466251024309759275338622300624921965122729317242652616989639229996426608811367918390838346296759005077320009639371719185757560125544042493192047200847851695160360415973596505113643825797499431943579729766619713232239216910987718407037223028811978375575192904850542554052055965599022015835917344191288440465943825886750843802984197872837814138875671611878937201067749489325493211830479684364016182225674961940594358755589839211507194324804572290940165304905940301537562927033307319347323678733450703216021294242123592538695849166133546419786585965146666418009713475581794106691993366730617622562724999783861454648519738066708349140904741569711304351583837328108565998720483175182592347515331759662254675924441894241360424170485491429475462775736972883324897774213354089997410781389470066410438691187092331260507592780453089071566243966084480618903926291094350734483588481245828172418840876352153063318129011859926351736429173349137003587590541233345110753061298071626322355011502778220710792447332933551675301502575489041112875203830706426402137445869358347790325202033601957674595878266323033324575398560793086470409639534549268805752670928372499471364214529122166835471602162018394941440937993640913169761502728008182393473218622171316218553584917880389353764336222510349627712536649515147783000010009833992183572200329691380600825949740058830014494556744982065843106023354659495596156126103766608489243885645914870889309638403341302986612125327220400539016686225119643398202807036992938286726545485949699787616828662708820696765030941857868723631728182434666349917823291753269159358308740254079636727282816020885701501289892697117748632216653765904557376360590022887461511965968320322494082413338553831295914795562319604555647830615949394315013316017305236264555970305647938229677438360205373011725398310547381216990666970185550670600745480561728245171768076516938854901949170189812390101682300045037863244982200398559350909823066067236126599572823240906743888381023689047954570188483330106264658997720285505578398193074693978684627036224735491595685608687881830174003215141983614928913297094862201569083857656184393490094748945397200714079495582274541404776243449475758617033802783944342800331804692263502921534812163680926348630163188164011554999397370963169711058726847606238998706368695041979925771073796543930823557432483950712835598970545220165985094244299872527821161243256744413049887892610107509684862591016211358205818591140633941428189664278278228758973583809707255805685383381186254524048118030683614254700885138535288669461604425123397732004381952839814206751359494828882938835442055667927601949774629481187155051543506947798740343607077691769194240064092991191098222522413358453935188367758203142248607766708545802175039739546912524883929928570707181651155609235527191531813901562822196060724286102900762425087273532252879657836363334225163717201646112235156384017003393199440192606113579663938453933501485772327368053962580520672579420238380405865295109587700119726892964176850412450219592025032794999286843836058266047792228827271663584446347745521422678472878206122770815950505516225514100692512619218104436743547878488572883654952210192178505883108992398763118393246777284710687333604893514570884971211849732230035337629849006777462360768080017012581107127499789859438894720602100273452247250609583116950326563024715288527892610854330634315163624110904420083003484734022384663936750894831667055950417396628796285111150622370274344161313283762368865651014136745837727587183005988547149333943980792855928975898051139314614445606783275093765500032627786306850970657693911033901629716041057547482007800966693195100635619016297858518289732577551439567689195589429245366896202880955437654354027681117741380009523474461913341154234534875047749697488354926992413395143632795037939734366048259815253356190861849268893238626962448125091841427822144339062691822177553964465083434197617651877948882801538839375844540499192964775708145080299231320329434859133729400260505015411414187620878372390451161397052449533798289492120194948889859985173507856643759749674651956333960901720800610976462903048803183031903922965096467705168870139919757321829494405509886584522995948978841640412404923456079502023652944243875716859206125301545525172517297433809016018682814241530845378133713522438334730789720406915677123914394659027974300316465796720642647643937194381895266043246913317530134584875803623662939209681541207521332420704460881165623928807286021031747500352702386593593528241052671027651653360148535901454147214157490399600831924423431062328515539454456421049087243018608962837176238913909555120675924530916847750024220411047571214557652839717377477648751286766047314768706733747145001297976170313347325319134036306505739794060309851699299693231292095975432251591615420617008664139659352087880852982099209316256322752949194690360418824819247250518907438662998175601897926464888487228492419101400130932498494162640495042933676556969841509551499064938184637876519158300232342761720754698074891262885203699621151197265891939915745004381054473886419563386105445677429237316980309541469206798648167091541735533630647599285110536285562780419786893882675118732823030566167898643466877605158308930567155076494301164572344582013150240901901371918394689150713852213844212375296705170762773900095317390276454870775816411473650598543427310111789189396344383485818541024551830764969531559850594158804030915949013768339909750384387148525219264763659954629638490544655801010270571694530566712568280274364282571018981953756637693905546178874353685646021647381970866092933695376722764590236335947678547592094857455892832615526631628695785821821255857567939821271388363226713889124166999537061686461399525446123675672289253500923109211854109039163558669297388430762048496975499166989192140366653387690410009514527012371443019450925591378373610035884552222208271305226860244023329904595017223788191169031670867444276375110476241181549632321651792790109665147669066666689984185521016618165253065023081071488147721456271648444735386557065221385613227890483366099721923936469603229559098793237133330304172450413017788190655917731659522920808413747029120853481681779828213282699353306561524131543710437678378866534879757195938126708540361874733702443114032286350560551525279092609107069794878259955147251035714315663541969435583547972750339182776188080929976383789718235039798143379721266228954835471002266500629192036503618734570821370253210729218947325878016068888501182692015594602199221415240413750189994512543333586736606867574119513811098355016853949823646837687734596359704161889286724311933598443005360013728029823847852032284420344875217171589999744405987414286223210308810684433900020804330837955602894590181743432091508226253526613159023533564062172267923526893258740094240943520900282728714895437863631142424798246582722389425019579482910981382892259195001195478298030890773902940964137423691351591282917348025506590786842205490838190222511379176542414165871527342808002369099603326722488855130016327129942092577065428522182588134766158179493675294664717255362241663308452834763712426481359470710314107949788719986679467925846312249904391802336945884171707633604137917798910461502104911822969189796775210225758880042060450416989543877126612821754353178123869338756639025037185853551106513918842916500403836602412772330372187437973907702411778694250070163123692701289948506597770623339325679217241761622945580705289365437533027797717479602767254203369734879298354637067434797757626004572468732885073995889172110803013355890727150511758756958623807087732820519241771071966177939102077610956298162780958524661444147200984602802927137582064211270474474647793046981923968318379264154226991262721165369030263063582443574446353995193199343785254731642683357036379422385149177844618259138602777964557486302199490758104290936494842747308421428996658169561809300536575583878986846383475835344222205267474698985173045645612108633153082391214728940058038312394938528444487015357194615782890447393838200820724936399416513017173837544848426462481782555870924219698306923067102872258645463011609069826122431210248072104427039010706891161598659046846916861803816528427266613307091982555701205676849404240290737400266253152350093014168080994328017862210162905187797799613265990087846709321014381685811879365760863722973185600837740369937915339806668852418311301612951552794606255228594203411354879514354891069208687530702439109725604462780243984495804957276919044076002840907865297136536797941957764526677208809971380663742291447159142311251593832656620816807854893938933860789855049959434432477083837293430847495433812126583770813135879905721291921981996685944180823186699783623395967486377127828412392210117324014986752744324567661645520091106688833485402717917555741386200751378349518162973216672170590628377558366541491735426265002611155869230946398146301781023897957969139227039780220156793948368413247607034532036748322362190989272385280731647791947673099937665416533689987997592097975948511354452585595107670316858054731214517264497176805621077179545889969827764796689003237847381016355566441453172737635821221361800647584580012706816080078985416498381228748568459089025589639143412284207573024096917016943784353019238330418752626373944078799558074096203754715379852482212628673915705092696288538035242790931545050051251133986351028069542496727029847318751571734063914178574081608033923692274133686022466531053428771109664367928030572276886270952147534600538667614004629602067271453077799048681993018291009210572467601803857848189249931480633229007659856477421678354425113608310385054064584149809006623842892058766026709113277806702022366815566176995485867847346244944365414362369677086115235561810007272723600882498337755821680496483786126804903740533717237614320992074815941313601801996130631464269532218054046700858592789595287024047410760188978763077473420576376989078781712844046768706621488232144738657468857109621466821217702683859936838835159069316148350454856551871670265508512274255426092237178887890148869122226383778691310236276784079061597656601861393350330863880329830511415924401100997648064971729176832298429757208405344422997824133977763430119352169749349639637073973967932690918094385730894405929352369565366278775379778294291481840248272185854101949125005627314344105341237098115354790415125840588462447827512049442892648097012307271866239900980880268386445525573128640056475797410468686278688897379498524893122532736559961400481253986490730535370921558730879938745086156324059382556183336377502139462588659390533871953124269504808185262332983767210597248129139308071676116512434811079173933283436340808542377662527514128604990537102151324388740063376647197694696175555297029981788329255031282981450754170351461956108175321511006729192143667283738428704223440382625816633570278105474492397066583814930044548146282483235423458760277942726850075556115988967505143364341162519159955794219286992246399870456450635979712403470321623058888051642945847895824699177821054304133764318118984827976980217140385206086955610641659879609450555415898230176380946794344871738260781606178073830531978974082266254992066166250563829040685793006912609880084324945348438634981635321403817792901699756431324712664367491437103121351521808311661587421123052949164105282886276131980710940491974172234788002053453062406827072491696937254318776497117630728577711286618986813046086117279333417614427668320126267792292218164599762368034405857462137512067043814140744564506714676945551434436052604755023289926476693466573846976858689489374353093216946967320873627009391798485762629521892444954183413514131839393557126635295536472590792616855514673465140159848331989743979425092948139296829328912397723927868323215253322452893735788774157243939236820761227950862823266427045525064180051704309330541836718974367190996959621530927835804920510926573222574726174124937171671246288090006005995440644638737828907759675405558780456490507740140213920883583063860123879165280880030294168254420141025480418225600026248525012479003245927643871222587931291900268915313713972472673673224528981534934827425233451947402864400712080300602598105790832151350241466988553772952899720362693370222302541419064192130113187492108653873330371565386190242790410840190663359237387827382048633464533917276542707458793849071888411841684411010289506512514417067712075261078352916810916349488642781592429589675541140954321022996047674450315607802933582651337588241595922392855231760085318047264742539602113201855502514609669038324265236250566104873875550147481989734762391853531840487234163019700453102090831076618566172153396509550604172288211490178110208367531258365081494073529609406086019906208705358433687531525090557978533764906750054044472965172273315904522330705424985125570054687303772339276144538614000199103554180252189797730767884780662176791208358642059234362350925381664954689380358330738356531574096564939801875464515549723197851009634629230561906516791226705075996838065973812607691211352721704906105024013242405270711055265397870259553167319264325930810282859611386625611829256186582038457989759754685740408911112364319473705290398071559047129824093191383289344921345979204303266517220637461088559693262174109255201460674978624298578303752421182740004201789508001150317206830024186703722746024180840337637678822345223705145052438127452026293809387805238441212040542286027415657108586883792724636765038136425231499358363745846974343202044413836045278286358764276038470305177085429893950452013163460415013463731206796682167716263796607490146426978626162366056920324191529537923696808449607356718484305582671385841148261225617371301944436982790074862723117287830341045046989373003296190373726813779352146915367847943903766776180128618281594006510774733836971911723271912301090220641662877123872366552446737618931644504133918425361911417139834569029165325517948601483773883356347137255012230417606526646862761483521948656832657452673674783727061470239930431425850404635158931496680980321527095709773873949334860161795493929578044393570534862667335638557396086188797080843701921758043568079615918795930798397414882615258879432810178219071696619843911541376207875548007852559927365806026400244871275418601537679455573805046205387728409221421063731930219991684189281423185234687727571995545663321254721002989238253080941404323832562434441144221546932226144088966308385179086571867815452948408212867273961054325226329178563451417860566268188655984790210542237703994240533762768375672856455692225520223643330151420287782909987272019688081234764804084016361252274293472757161818488949066232192651446780164283741930718201242282583605994982506683569959491334357363015991698527532785173586533162805920797234147991969334679144014455021447250662239747078933197159975892327523300979067162284514860641707353572682943435367498662485384172633745836116748140193549109190757522442306854815609152627082988747908438122370019258291791111096437966150563355834899544787807128117356692032625786829641801385448616294765187426562614691868478839342511945879279010720865078385976178585070374062633345041112624047167873557210077901424408727667359494619816103956781951937816260491837985284946139833158625697009444513233375119152301128969502334248003843152540994592814501311340796928632102060926419433151325861126028057687418338643467107033543002904905181441425304626014003636136394171728936006664929540881416758021452267462519809969760789854526543521646960521410080504021777792970103773499497337964869581817490655576494638795045034872010765296346275864851548244377677868286810599981738896398492119484550193386378587893868753209680148096436436980731453217446051223242578425289365355420470015473943912923769642975084937034819700537296726362698297392196519809681525103206606356343597812448585978755032064843136320883585461301087490603104758902979993880766929006961197020857670157805100084346088674441643181109382118745611803144525900977314252119360405865432840735808369505709121515149910056724017520485828620449745948111317515553680049320174808144928254122697230740152653323331720596073426981531130192213794481683349426086952457931969577311364669431333877137226068491467166397789286911081401983877110805243875071156554717525962845973200240359355419383047434122940779895761302612547155719649458910607719564454831095536812891692436657918106782890153609796686944460272148864656215063348411699224674364230421453787503727833727699562340275414861344669371004956718404065472540190158123227874465347504383123329007726755083503766098345706186597517622271695543042830172652250661092710139532119940742216714063908219421511780797387210880671303634367890428271744134115848867381413603809876068620055025783742614533894948716789790395953672065048319577518010215905523846583376441529453801418233740467836659314234159811439814043073396494541683385443210828206613214701288681495397736730324382704999321163001738002306629696684523784597392995115774572345440411114352789596273878196076778958020689101042699396412648038460527346900566362514458104530544721132057241798172224271055151665618369079513584405872383376181040657893696259437162833732708057806861029649231351407782202301769664415601950235046242309883439959604487132684638008273116671577014256874828362149128851037566662233237191750199271834796980678216396345293048566086710687119735132303879307249878159506443201809851439022418170392916380771678161666163153475900831974860937134047853888063183985714492200562514758855080409032716142036267523175895389636955562216499376035135489508019741018322873232322880211638751263258542324170410550454054959634161515424876758220811436575597588676172736683958585821076083185285306022045992675837413728140906798754483101240913754374468587930270994471041169091768765637979302965547338232526315109677311203625536113407027081600809569807684933223172994440002260324169094474112136427898550274428794020976356589068066190431148672082045286658711130706583291864777998528175596351702542599407214051342126297883404035965377713084749288582947853070669589092238838523429743873158462466255216092328614456481614993700982008030427617921498962430164945906283608878274866331046498870641530569182344886152203293005107691064342768071294835672873755161249048428807475345430404593345176249902401694875355080943403250252613844227072625805498703175488833902133273293400319795891860536286516011921531358594718543670568128569998227758908859699693911602045284244643671361508283365368675111387283992533971860304136465659980322239723726235017542571062617768279375580217947314595547097567565251511478882073390473907813725832236362861197144249583241971579505922334376336006429439822287605116870892183593409915858638155456493185528007996531110665812919534360657975884140036656148755011437897667128740318987640826612663012683473876986231553331524047325392737817076177188849266897020647467329457192582842557322367253004771654783358615869125642600621266162610192052449339066128943180068479547442795273905203482084281135837378052958448714756923210572487691811614513026463592481982270186230441538019239764064516410456486924828378172596264175578853493899359093075230090024405360511225261308008581298767421725883755170187180305366065518439337267439418290551310624523959989257340691874556036435209676173959402375403483984303688016836130794050033890268099410218068589533659873777385618087681381989127186654426339027935456904003252625926876342921731908659292793133232779648762242250304126951650049017979924653970597033395541847114838506447335544448014449325176209380600161284707503357036986596835379148950215029570122789531571009836873731882324147895866231253462289558479430151844827122278462343201582837641285076135577921247258344351526305117495396056326050919547951476416574271674226011046352503234650214149986639975337100545207390291408302443410316328289775872787322514330371630624222580375722948784050054855941418188359051599934337731288573108397160443750910858450341163340675494392009491162256197474968299350010474001048526505191910476776501588612108474175830338312376864220785393571412821861185605236053671683825322013022669926220281362503333889209195158191702941289608680274469232462925655512150536949480320525095732097891186775678346996891101119498317442973958341084903768485132533180443707155571244606280676144163740845148906110820967828300693780845755517460718109888529391586970819592892812179535635131360930034203594749102919215008485246697749555215737876844923162767952736675594189193187248396740928231625255241499361994591504842751776445357581103438919514030316122718569125342837338142221636721020202631687843028072486362717825625362884222392547759729807050237164680995418812822819113754286197532424646966744282542546443766374959612036539000803312500955162322237623943091090178419550904510762296613771522612376830009348442664668825538999180709281010417955451071424639687286771352873460708721631543947127353249209888933033724406010607131278076227526471574251790351561544170011012166928774822947128262327724083175432105775154602093935975722969170387043254976130865466294985779217155488802639182506606799344524892226885169825095046311373976228051652932265398172405006838905285880250345025986641008388171596329215873441625942511160993127845256380266125326757997035835354635184958954931549373213124312557770806190591302133860141447356721169010885134196626814280711005452816490898067581306249768276013886035362121654970504185613275476230493524330346721455766469519472259074757613410800534193556460810827805874216328428559981637132734451346560398165019996222625585192682965607128736672383516233198547241646742985061608294478153557717803595316784146214554555521881210319760644834513949244576739265952929505547359405348930026819798730914373432357644543961242829289819429424784820997661697682657394297662212806754210644167866506659049596232186748303976735004978847109630636602431115249994438951709191183109469668052946946114895214589783073785102077692071738697133643930218548960927914330972466684172866618778037266820219860301774530729653439896163443554305785424750495332265361787505804291428397471493715576793422595219910636291241003398473900726663877906151089330001490314374510582351565195422220449561391545142534341654136256941312965079907121348108183523329252764254845063371699286197885684439225083807276292406436513502809390345691075950323505251939907708469653403205262625014958495932542708468976833385597006064647360191499061298675002902616482289579081703241968657130695114639589643329461556410412061993473744855416461624203866392395881298831805519682915611050126536607302338051407686035333845989664551423403245110567677828673500475826211367291233468564448105130275058643125661612094451648170600319731001424379843472265905190434312177897776586276341887196193362884026534164886851900548016638174603559776843426068802606592562247468585870199802404379254036845651093624714861088406291240004944131294060975266556100518680332176899800545393609087491085261256250109611240171637929850139676476533141894368559996186497095330385779624288209941755451961939819746678589178061360849715201906200165923045935084176680418958784833554708275593451212568416749393449022665552884514695713996204592289233462488292494248837000342536054016580038522500444671732001776219219901166488343594661343836281214643994133245313829563327653932871216359181616285932386480838232062790963114602680194494491820794390285887178686544931817747737489022444899423443224763142614201165944463880102462509026939485701829853508810236617386262180523707707959683671577366318842473068933686891928308284983038485465625429731996773423579456857050055281751083097375909602723841370816068865792756194322451642703953497568646016090931218467014833030191811585224066823177241691044844812569524997310681586470386442971281213862173576059537770226431016078343869509424294571255706779203808593982530723412276463717068702676556694396644008011955377036727815743238864618740896020104039984430320703750768915330452371863459258827015645950771653269181561255505567506189696133428977815376793803153205755717454688723356094406965042408271466854745243440318018323655193222642919417176067077771507402587335531519244984273500025982068894361150223428613188550209943599700874158557567719729737521847318000513393660959060325952818540877320251104439267341687515959671264418759852017360203086248740506701408871789329509364076601663254427990799671522895785526807019032159967116179323479164015861151568006632226951851162449550435259281282228346337750597114039377478862114699396043783569103144853684160342643007649817244770627636179889593478791932642207377463504482472240996759016685266280717591899715587193727202429761640248267575198338131044731973914183166805688948967078023563146141459897552396159499736953817952981036305842708857932242719257604429797706010787871825262498650855747872367058131894301203893072945667584530656952717067233595170363050851890804965675025895807188367722325462592212950221901726794060856147589314607056672218606538473439051841982402660454511654221665409065677569937528982014104430103732642374574012498510478976581741451538855479967160529869319795719112877684981938167881296382406602223870746212992670033357526391727902471580561492817982140014853672728631135158038930482089784654556681380800008443507292910262673847775368934862517116120025698700266571308650391202687065114220921526748681661577655027716511540621921896776049382833333504424737368983209234323795423393312250939465199412421737938180447392883076553432194200662869153216335144613925013434751022251231985759629612689266966864823681226040828413057319471497098157816419064590233856027497534526773902687283155383635524161518416996507623505003639222106305679337728191502150980542063508301489913606099230191738805496208501708438154334281290493677460862979108932284630376258406194357195446306828775968326873038247168270263854998001881936573028668293422304838037115646490927000771429114923893600037879097896445939341074027058995805810750991253978612736876523696855653536791700909053921558319075547966789322810623341415873704530854233333745522429241796889369003650526860670695969836814539053218196912787570912239057186595327961764331285523775711144067236840752018068066182493783799559245139029688831325508591148676144732758604910955306749000551035119325093239676556214457611321537111418552844583615707701880615054726305263223365765584021792171553061087044976443419243152934043943193061067624824710204025605981242886459895757267998797306158084877530146444006344278912069417544257122661481084776804133432316496993672540757849053073100042059790340397555713394510234870484515356088068888347046831836520779897574441582440182433389025223225027674763690399957974588924235768665805099904742641561821994424716650491966614159088946781711271215667769313899861750786669721857450032773498228342015336571968022706049286901257818909996156345243979461105190088652757209158688261863804777270476150837655990680807352766916707458710263773308299030277677083095873944186249737244893366504526839520485034889171249117758954641650749955246988282485528793168489287754643404034043529586458784255861231908169231129823849073162936478310500799623293360489186581666590552249626283683678428878889613755006244513198040034302872435654617805306085498346007305219642455573036582445412800102773586087427861165232131489017808838728923839468240727121358438982439505300645130729719265175870273617823600510577596416436445302970958856411603093523447070074218865108301818458487821647050750653437487011449413301320573333951046548252075007607847362795700621185438614659956138223791300786270620417633326364743372055631299203058180737235131712559600467229162754051824060223567433207455291220447925367057864794558813639077916572286193423176762208220236115579505483330377143038941511240520329789144249038183977713609630949219877181577030423183050837839014600925282443991847337258770407941132874246427519325874034083158591027198761837253646646749382802556128061939108311082966631335700933070609064645443942383887954331622151466874230654327094370742292698831505563633730791878553699161299318581256443661742827261616228160106696910888057832758370133920961909646332457097448205639339764028283110500009703089323162337525078555057275335257766651095486455323255333612175084461387905882643491863847061922237719724610703855409741396487810379605592212956247668950768539142896409188291461147830242722805385925423746341173618918560798307322351311243765582897357182522048020817870814317029202955895920083445624558223392246413901773885621822327347911860405498469550948887481015684878570721135677212351472567182004742261262569953868546796454073148788823755175519088276487820965820048439974456497400857178644278620349505647498583243442670544949236537787664792985764487521650621181462537778129366502898331837428614462422863941639873345116230878868534101994586192479480628721392792330488950535429300475361593121457230705600043695712706642246233983263123125288559883533990767577502214914128067041244974982230343423999082040962695138220862959545962444291917964197577086959854031990661515100945643839727652177242722397078577177179043063313644400462692120442395162391940846501848393892552783775975494764633518251456683030354228205776597348518378145854632194991057398906522755604635027640722645970756209608517329108881139815209511412721162267798501924762336567382616834899451441381160253492455267284605736270962063162187919358594355909005592780634352343690012030677414487643569727444427506778205466038165235233648742595489012723656509280883531740235338174503665324354419693765544352320196073577571978542495360531645502840561164825552590324786246991569729910558354610716692443660721440298237583707107049324403716355817432883240948830969627955867055462268990386618919250665190133447440820336615453445397566541576971527020794667253407498073138926066742106337437599354654860399351485858219371905236461490123140551292994405682897093208763097183896539184789145605999389901687647459374528630881614088803365457527592113819554362639466541574852719501609668869972388777968965657333728645552172665686573685821295876040477461195984017760315818508776244469921450588166650619149185698212253596807462403803397064009614941998926114860599953685217619112397922709723490001901122631841066896465471389520971457775093668687695998475247000040935749562944438447121422962024249845711534217978508741586989817003656688697502691177881642522778742051525653039855159006034730569097661733372052125926769060468019700641903551810128539047843944000528759525763816976469546346833196597731062184883061731797870375324092286014827194999346077380220845187028078354025184134400014794525748190604064378974834365114240617237326886049773164908602614654058640819169147307629679988703480213080271013899849813853329476139052726412324047541565151153941078803167302162542812207379780780351163172487488791914326704666559553773970355854366138996866023491514028654349327140781937583368439176538666551496806515993363465117167080166796366556422015468485512358900514715236752848096414604580515073497939898779174334622310853276994696391352244200700333832840697607470735144480294813313970094318970713040438332453623856064461830385002014359890165197124746849453806997748234709544255832353542048477123076164468636286646441056272083565583891159200207985646100430940661993017696415928353188844646573930097176199662477909453588858734337510638992941011634107989967009950318746014916280608381660911937755000852143819659794011642170165511607122586829003476116638366388104453104126559003579603336199002735212595964710839195848311578220887681474486059272007093822654302199081618016606462513635783879692598800505709765577390987534257647598679468682174480006691627357416737919595930632077259250165670328157260397595270123747357055840263299120540624569641413192626478132724964735505798384717057736278682348014434812670910724006277372085140373641252990358645562205823886061579983417060578982823819527678596599013849845173642656442396283116063155658634500589869856501087165985869648045261038991422312036174257634358323172304351910042466560957518129141285789716560054639528242674557723932798986431420299735358070324611604560364223066271382193318795538647202121170227909569220371523170845883527530887878568630633232273179116328673881477967549421225646587998129394573303268691080155275002821156706615303106627277252284245110521726416646333720203903804567725271641735430222457431434144426362839592910451578468171471442879896377680545391065504713185144961915501259520124569921885031700696172561468134106756209802508396126303746410298777967629343026308650995993844100255653477175724052217728452202282995795173824101779846011826815197698869791944857993705763126381008708707223812889613305250669188645766634412772597875664897555056144339783874948059081987856983976762292475523182995588167216169807181773039091283723608332930606126768134450354064264654838790091705145054000182597152265724743480824282418771990690659716902156244854169628534951981259947416313962222701128538412518947524603557525871716611196873287698049166857838925049954566246546555018660859659402538936138002602678008139876378541303774704695714061888545323051810006000469613103190191083817605516574402426550926865655829022082235800958477435355925822608366795862476938543019658885104556533574521910584562286846557431769545235597408034370169918600875823882258151671028456738831370151072823608941967737241688885618530254689566561044141846636782449069601321061203268767141248145308616565671693586072665658723384897307310355893510792432413385551554602954389841178942035330296060596340821231273182641183292703241037810146519696861311866109960591232916037623233810036162265152131342222019584214865441744524036003076113009802425870747780891144507299384489575263846561901785176563490209494834084724152993486670205924214861875345995046320063731215562089175910860549392841543630535212561308703699317348773214018680693872103946315759446206530160926854838586991138676217304091181591835746432388866959841769701010067971144016089224395585055739696791199521734347399719071157413843081783570868597161951537882868684337225527607214386895124343567125598576225422434910937886276173960972547099116797789500431804230811983061554405229192404074701493308186988048063013057928532791432502303389039789824545684126361758567065911745560310065565045631189398906543493955474505805124475968492820439846912881798187716138275459705439322284205015530747547105951347382983174359851430208059648670732851027030545684990617799837975681252102884637045732529017710731947264244380936641653820923631946412605485843295774350033845853071606346323793433466183780530567652465677069750450620890694127291196790285480063737596123062841318216149893228295230190396744292425388347227422308956890438427321145550170163680611635070210468063860951557906502632363025884360101064884148674965995645607544354344948582324398952519610582604659358639293943117034939480308866294202467985160147330210173564118139326658802123374216950738426813504032106746541635447884490277073683438484642481924649585118323506586427484523362604854573286214472823171985762009468164701150564230728226704209902704748099265820034393996883683089110080144147899550230704616514353148687642104444258303851327278071837891930362535933470697264922224157685575037562881904610199685001909521182880165943400862763323650047973226156008692662543037812621624915531551957955864017831225090978166880641077103526795969713420991201406780270272940663025396471934655393381182142167144460916342563134751542869627779884369641928785682144281642685123007174896044644102040159103598510857078448400980482149675900487872617309475422480143145096875141103057279712520652038643133308180452616980416002222469953405656482885620687493745500779473582846920467696437281996588679709153598175568767568178361754300027631875218147215922348498099867283377271326602753745134953574622710801334504962524365867499818020277131032935590369865020859828371822410824797453300295715954548399884151434874832079090784797256030741075420103412947394850159724314090642587169133897154772261401568665132011158254426389499747930529149545528187606201002651291112092889149405186055779183841148162380863801200596371936980155128638722768287084222061979169245578226351297870369794532364812773267623730580253522718074275973320900145476346978831891957221178773682848214584848113980451656358899080476803004296482684285757124392446692628887796247402915076605239363841339832394760806941865133177131835349822743609059515203323234725178867576692284546178213894991232690761278441031690667864325922024293646451312149550032053842110615792800806317842742134235118686053220917766125308266052213975022126710846853043402663790347323800824631749789150586155172194608724898378984135453639541793388593137464256395614112041422122342910092653651808515832786822870885853527514457964508631299173131322899449395181483994106221902220184292879057735550840290951395342818074551872025372890762324619459867223754603224980396987304154527952963894993603149091145145267772844673891432265320554750669313885972566878864988766932129167040219750523908843300396150324642307352788868120544282844470520665430738490439816771216789056071442873876790506148708169756670271623058859661059491025106656511402826598821051945699816167591248490930584281764217571924981039857237014121639324377663682805628094024793392711130168463831316443688974638072454843164759282846533134445060582156746556629729530077787692826973937032685816473119907650794598899382763090508564219120908613711082077621625546604866289186628422726881027979460017834996910415207026279434427776101817173733747573950750758905053497664443457813945732626550939404698339452764053297187258720582395307738769799470401159984695711495567629704705413612352586687051744747993154266095710552930846803353785272663853911140155697847966065057889146395792743955524411206447149123497627720691180451343440641597281508348507955474289652514762186693694982864603290655406619220826018515481043900537631867530251299052534394569347420788592341939982883628156767937192630587655526312993177741000494197993890904477985356826844880041779089938631296531942463406652791081569630935640705864072973140597842882970318610715203253901752312328194169113684433672351410442253663075656556431651844655683097534801773855891759369787993333415208960957618378660683397707700493308849441209623212017994246511785308761558418534720155386146762970065898081681391229046283829369936964447173980455654572846723636742597388216951350918914379665330947347519413368497580680535529018139456512424668924797354675345308992390348355574270517672174255670978392172999052853140044881087036503038504816830611885219351605478516447385836247380593624360365439742450214473813786619468497577424338188152723024159606888380580228039461519707947983334567681088885110209853572274785828579035592967254606193745670041451283857068636149428536331261768813636455034805125455024639700618529429399796142269435221271091671794788381014996784788812605475450221113897012452316086218037197226890967214906111131938350402912608112723040487657654807966852656646081073490395946550193245791577996178279687266141802672936405870998023582917374144498473778540079329926938649062204400314937119074013195234459106709250119524795291964477357797864737660380703814657438582776927091067963156577179546190374712483681861671649493395790195401451368269875245107595621868828773548378516459988103137604942140732631373545659170374397334743728418032901660730455208463873197561196596896121980523219415383686373410586535990499397427259827428307574075524317028917999855310670619143294696761823737828407255105450607314890148646975563249656547392760023767061560629936050390226774527667630134470351191698079578056653918947995732020398824351205710739718721988920021042265818350750163310919503700702881788413950910353182548394638474458846560866653660107170310273458359833603407762188599837714787674616869741673019141036994002328599795221073627880611890643843765560760440731722533577590310895896010544908012908482313869263274339727198095518250504371403212370281906679026499792136635295232331345507397783596417675728093755336682911132623292768188311281223227901975793309860711428040376218429055913228156663344464168230392677680838872190517346732922867014818555623033021992116090482890654213069385799793035371244796535760289131055303756819520639970204923337515526241208569342510987859769623057943685157147698057779482016060669008551969481891689336202646693099887391284942287160647718157048624611256823605652933302462114995111899626905717295974073893395817286485843519619024305194917626266529487385523155835075489662035600632744870136433557576013771466614098521660443614464098558741785730126640909112629610768014967154790126504864899804761798722797434856627308339016826054403251337012042861797640725874045037961690479458548317505217760215390769450304429972823287228257308018479277473522888676419511031003789892120401710151377610521945298813608287453671905411792689265918143480453031152409233150541060084790524531448984385421089977703499074932148806105950367462361906961428836859861994069090460341623507629624436631225433478321011080080846713795838068399975827606166431137542346221267392524673176067913739535116205020736797064512673420916706858854251458514689068862204003733522176085389537330138440552822954849312244920707803561312105054182753240446367989059589123994739267693482241029476684107461181654203324009156843281859371505230261804398386523304025731715079381544180402002153996842947161845210237843397156550557708700977357899141971082049609529266179921682277172553733787372714980843926430236832968367540759379817823736042252305249046340306424213422490981408839577636697660966879453709216252966632084706740873149780962435584688059089834391092725473674545451415168509706724059496438323933403191253800057428168652512168945073438201192565052338792021825092848531356620456531050015903785299809291146946842903779429124161237976567563484749051290388909339879192554825504970957905277654015354001148445904691882492104314269239082186297261833717050312428117985488220675561803295668088730398303628634212850264483579454147362055936893404034982930875917799127215728151553035730519705622621542942823426973940005877364638553728589870829543901236319221496226023231574012131626295261103011949603367558216798856294759236440165984739989445572346705920958075128087746914334843654713267541557483450434532364358413906299190422429361800580088330107094529609394939376256704591671935360132631292335918198102624557177422834883549558126811126687491933978460234329105910295775561319953608493778837681234485962620844123971073377518066001468820353964436778532572207606327416475758512582293381369034120496711478576142533566991781241518426964587175301407091993676541945870384495747420519621415476631264867614661777676756606039586033414672846148017420347133271424171634370910198815121764625777743300403507695896580397279508951468481133439019905893601389799296227052729634631293414087427821397506943353651383479997275300211547192508373032811063419512470919200072277742663693568294768426077534106351553795596441965665241221116397306438493929070484677354633704509542017457984325846270401334968615015055650112198694231178758371003064026834005325550717185805853758926634060483783658926309971383403458694696870657510486247937394546492334277641811941404229752920684066381621459455017958961546476390351555397313828195718798174958872400620986085129227562784044770925401682397773944825966316642588213856447411295465005604116011444866005882223938111185987534066261076323518310831004275207566009681879317656146490591083555298737493455016422435292938642800366248632687247399708201935258672858689004124265147052332673964482653140810009700587805501509658008919330890121596933571118346088964670894580638486998850762954322451699452844378772741312970085513348280085114179635765064810642089355113934891633283191386872721413828927401212871998058822480159557657508495970533399920890908957961951684542258925250180858195204203796113648638834390883057943098007136338202043805031454314318664304742113744169488179426705372809665562015401296977459212206914555117820681995873652007440304388429673962543279017305825667211679305862694534927089661886553703234686159383408245351025054704568378948637878561151681755273293827106164655642195781124892444161327160069574525684982361176263659052193915896343362034919836686268243092703016942028687006618613607096053207127331522892562767883991535148884750180370319958226156475623096848466683232193917627783510908793961671541399989547814262833881382991149168908922012566627214166787711645548809052695092905383518121728604820363439155457128341826882811802163668159488326678572766452560850957448231274977838314480192746091144410540261153827419146533930374086333096339399207675755441364262611749857441177707386569897241145103945894093323747806568635204549141653133528792072399402633969327752371449391834116747452579941636391799716084701541760952381920705723316767454911513147511497983811178570601042252882603607827125160588240708998688746585414165316170859187357392164635501928119304538695951217424977079150195365979771070549180000275200984567160720609752519645270510806635453605302035576554772659375288171185629380090861692432249326504363806696872437924617532844256499116194254104616302862130851082318501935574726802428450781790322879796227824243750530976520417572483730315621643924592571077448240364244632138287773168939939345241884964810334672753877543316533451956412213627294996030154504826370422114756382122489100469118766360641671465278037956235508445951967137852268171306575140180087193609340125306179053377635483639829383928161959246373264842594229530181199552767842153552361989686130957574510200790336445428407182332714768131530789880663625262698569739357519548247103801174713031295393532482044905574162739822676520049572693093949532808797966872732267812618182927824550175485616609468836634417151322198453357858759084670864178312765121527816483315098578842946968989326084147198722374070010375640248241042739449600212785971669746360572923277910085760996493551176562444893351799855653136865426811116973992889087447136371049426120137309166181364397012656427457665349726685856818962832685195621163223957020902535039642392935862035373355811485821265282507328670947594207960844997523996432706800705960749385299746973735197727567874198024501012867194975604961148874727060026267734905181132909768280346010581741876884898926171637548389621748165397514231771399515396712806667754962562912212980724050209316559171937360695566226885127569665037766985748431570081736767123983737146193463651280889023246185158305272027199104295320936904340501650414477684400321026776305655416330133051261558080655297638886135609194287923959991384299647270463928186325759821078441246702042017789437692043204159032519990339804040060962145435362699082473679432599891319977769326131199838891292292458178517195183079912776568836395547180157473562571371300963921843787483414016510177532294501843479685211653177917286891442585718955250947843272119186924511892422160560492487427744576517683093607625762371416004123472097389007692267203437707247937201448827923584512367500683887733187631022456949772639709353244819663776158135969528060460308514283839223750971570906702689110497152870146468877566750039117989099004330133171683388412386336327555041849887134337105009248232265615876048514477379804947008742788935854648465684601825805013671034979566521998467024891023183055993376994782334644325867716240412746196935465295950569864690668190067480912229841139413036947385548250175908122026641110224369808279113732410104956025500979413857779101720414401523831415464835525986295699752453789497786152065404595591769980095260928612244311826014051972443660076335290991709711058804444276605111966875793816724545308850027903342746926746703227207343695441180755081321064942370739683412031216804951137644917844647487458708870309858341223811158841506982859561894795598147903175679616164625501592623637792686392760151243398966610654863494904603315158341513750477396095154602186837139109804082541879331078108309067240361829494113336217385981248322904166795218660392606841635483514964318725865873365422230420476839776051716778309580889246311294147979541672660383144634872184673974000513257203691026073866656408802922636234771635605970412213732464812492193235233624598496059246073101774899011610007860893225362710448970334723580814082418991736047206395240361792470504620454985862428296826711636650159460249306064210941164990276401845185396797968741512173776615718958811484923309570564048039756117528439775967416992463896354166848577086600870621654256486584131176269929305776402348821923370122359018540610841065456940598047408925135992214437781285764162255101840219274236154140912052317428992667668398361254624439628708981145336198344852466979999407466311141540029373339971699875214946337331339042318771208352858749520377898746911103361057529709193463508283079663273933504161234617217265281721292446649717562640483206545693544249770764321041470205541731890497962547578832900287118541559714551353237965745041747112027822205981709161189090550219622013671641694881713692502068934085415762221422642834901873734891339393818114677807673354672994827207118424246723667765844687088280458139700516426285709199314145542791735500614354319953608593747706804668718916540054982263270701049500835852656073576702231634020861367427739576119031523949787277743293082654614378406601054448658216067788869319527743629867417541421347736158449079589775478627817607276591640371888646793475949421236674008526588740733139661339783595522443735896723425212007748898518424875806694055321217936306470174711352984225328617935762733313004576709458266963796935030020085325492037100338260610781705027806010050087901811132838225241670699092622895290344857875680622287076261057593668991071028585046904605526411613945782978095072263427546272016646528840361071437010565549798308317581048073087310655776200519606780148518771134178332304499239406941465780446414243178949052829616960657235247959063424733349536508590642493971371007898838077965464790201259215858630232615453106738921774302758305221666734586833697155461108812326495685367664974451411255771453884019010763677450671632426372033529475964817741905596880121979554283562155229998358292876388521880139434302061337862582754272893766731164747522394526736575975353237528542436680273031983298233217908525127533156656036373128221345732706918951591652397767532620378340429307575790156524289773297155327360538680387397634904828006230625478298971317098260184954906178170171629480815596283956336504585059554016132038681266407795060732364408700849908623783734570370726325893395156926263034859365568528945982282527594893469185875261695748753853690124721673164461901261432138499253996507328866749363087825050915306631076240680864312746071229423497463194828216349093062595779024415237450791422140784214404464087085613547000796479208796770119640607895164513658528356468846946064191301262879223718248081579429880043137804324652925829618645024993195903165802553642201126382358427765194610153657440113563161295840213228534887759926768187415002259384538093144856861639498113423990487093019756188690576530696537381088177878011442256618117398099965427584558192548756142386419501344154362729326536150135034085864879658384681462231509274590994986679229985718612733172417760991899919595112113923642360252681155609447537823755904595319712979877356275891811731792430881975243869265604107440551081318006383942973160386718830779275086953203541201299327647583412614533014510205135319800406529490051582724927327046388664073826713705034534091435586281209476640641347724485835676891396133754101783416906751467671683535587287778992660315073558006800404369236631246533562516807781262183253264030833234277203435878134449043728295244718797706606080860918183892060723074975126691614818184619370398933730999397730402351440068174719475274510921656959828632983439088661525841679844570955927967818378224819378582775199121195575198309499952988722513072357041916566885799945598609469286152660971226867108481582918664485973764473164785496009346577336045574981558352605757782229490731844514470065971798684519224941462044887883687982444289117083323460607297807251185743724673277851233057622651146574936116444165927375784720902347770402059097690698910580127989053612658373783026864516265227809510890449304691138222943484226010663219124117120444826062028159465722291743192401914315643310381337950041818036705645202270705587436027916387223400442254455841931976475838753063345007031106535863398397114283820920084933980783688189449926072351453040837457104571401429474486062690344926149001119678825903457261148828315874954346926515972863743904184735076072766952182592659703861998228708178546932175286530233685020460394173633136109524363410852558032706717917430739976918546577907620634407605638362700929194564011233281547987237112759982175036307863469155020068577844384448823731227890219995573268483757523676251130767388562793528691374279160998432778767965614475474169004372668519306960014592355957878639681081426583514459429327495103413314397655316235874957570246402437905111166403210767929954723038696063143011450331184875591060910053353195913088488917306637646834593919295423090201695910718044235076404168396090451907991440286035137822947405803865210058591729996251626587916337575595195233986808363328355570476121122719198398592951201092642475421517827384950658122932347465471672541060447034913401888935942528817312231285347126859894419002752991415317119184556629979764297810320198408510847994381690051122035878023017351038161525956192606943574552929578883316854645627895665926687483335403223336586951197112903078252696535555318611890395620584503020303080407139826069584251340583897520677144338049256845192090096181898538813821130590122354355679366853675901966020488265032922025795077014469065769870392493520290171839920671845090701920722582364916739841636154208280391259077384537386820828480331588879009797144910347489353164255459549534145741947748104418277700936743589620390401463068929301411964891824823115750545977202487462844746488163147731732775566653222876841011539966843600926581945387300150233716887625885485198639304884842191437727840066660511567966863504679198953960921785895368633103734293250910328933601969639567738234825568950900862592272534504779213009143659601555164951201474776512507518228983636776650052730023904649852156060346742546769849170155116404804083319276716720238074819281282528145555114677782716661095870284688909320991699900604279050601391248599552296726802705492892012657057909672724843228665903259158995611100328800999175690982785851107532849109588841452362259507769457043900505595067985386159861720035570095825446097143338157363590279063247493589536450171472658656082792395807475223241777987573884842467161709212229432121364530614738693311492161762725510446837323700531506674470595578023403385379525912733920297016056374307072830842069170715007914396649230851535424928682909300765610458472376040101769336486462556302139526140120529574711931896950381816701321824115335222021790493339082709522659655900706429052942045944470431344145118607462990232602588974057491846755330485843192173794012901904231762055153031183160754437379800612863075756284527408371119148219544366340207183788356485536172286394178990677630655798944582143400542923153776669092724203838658195766083648992908723486098173014028357471824962856968805987521642136666478395526736580136960843269330258911504698048240586677857937221360517639887116476341499767573409874121347644458563937193888593242007186005794655190957141908279286949144116286430366671118482686073962163661773301497200200320958711864567987960794135186211347587186024473857065345415316714182199177791328395469387014471613603319166818557392091644173102139789576763015220801483095942398126533529274226131164860039839755814290188170959892178647414171104628956572002638416873743814033006939862670752857367128645233486318036169824962626683298415386309933986068363307395605344367286186466626992066669574002883993271070197456992087182318343296557310020553799516902942400277568686242582966059852142219073515613898974092248317939093996304715027937492760940507759479715352385055690169399485458506355783600220538355339352134591263773019754295548110456823821932141378374213943388187806910935682910489386724257647907838843479828383879920159859552257313787465690447939627120834944394007445104700310175561633042466929343807385075133414382673369220343533339151803397980851084234025404752214145757511034466033671348433398279113386418835798474853556158421654000961947447091922646006075795911146745780066029437293635906564516919323848888228339339607645222178134961665123429077276167542778590005607819701879183889089296841676995478368165181127946943686903740126058299752460280212143075496313573539392054104858343184759106213311462390123824896025130258985485370970455414500064311491862184148811565346122823698142851585212696367779654213119660371812571123065600610726113448643014044355020747940955595124520699814146885826091178456738762599331199974041843903172101911223829419635675836340788075525220077123023312459995540590632920197252395315647232952649392012630476545087586626731283233136026018666772996865872959850298056357034170278082519941196805983767092968867552718715754179707127484513948408643418800557382256317256453429248190551186692781507588551229801461778396271151026145436029170300959471246290834721873416234424425512582763452784105713102033763310080990407286743970644619710427722978346792995427461849558068226681010507879393867477206591300669623740226604520398762194428285832800708469858925069439888865330853559941264640314628539287043042687575373990514315801502837968535600439767163209966369611131834224384407655300891854789008619755094745536439448335753152540733830285073998982529574646866045524307811739342722541583531100228691667913332247603515059990162437707300422716092076983926125433534357760970003230952717366462029598697612495067982040507380278943981810230563652088545336025404194716478070302433550092321419445328662505581555097401174452952481848322396431407374171092146481551032281801142575058891513987142555842891914886428205064548769706313369835578722296153051903309097901016659095216699715727515357637356936170683747755945903145820759305039888914228533231426730445591033757772068401793843686478249268415273116955902994724705812252205219250945508579247529202426197920736823834893484172271591846078112021468979725001812044230606145133898419771399657011761124378026874784196334072331961271045699713302576598263883100296909427444699829204280886000603135199969189081115841337889452807951681856487765959092593140998904164758112609741216997833354101280431265151287461973121932795411394838484043645125716077808798248530768384114578333346555617323199265551196372937410917306971057135540731491854223401638736902792138545417078146103658508663503210008881639911438446649923014316398295211943353163652207929654303464760127419378690623992237796193063607232486670508802211514668206189570758148138347946858770690150142514435243710023907294299748364103934310645310069977947853974884284402389103373830927343013098898853166186685730143693467101627130334458348983146120536712737873225217438530527361103912849749375049028478956926673379769471008448889508104294596921157365815964009485887332014566311785602344970278467684448618046245444621156106975293120503014482183218390531775855846818872785465649041679204168386123754300176784647851887650056694034197693850932922486728695789975485656429439191633370630645607317943229854781244390951593316816418125524186684835678220119766968620646364254692997866343395272995546342782793514301915263356302363374071020035732885271534964137755886415391593656802220764492274184972662857339263314093415176425732964410772296046926313541276086987056808733694878252090972354049148999858022949294959950382564452622626631287006551479372145614907925739590899572747719050656145139533873899465330843058046996806635623345067725949948609247821020264380639914355441683950697835149909917263771609177454778530832347231861923499625434894835026272603416761292248619595670505622732487950398947278899415683690493249087449175951719443196770431694938708608869060674407656504813895662772289189272160071374618609551164231820449394276546833818507651973881809484797396757377220649678512067513020006551980421395821871213070727166287874394298585074499007617178171930484004717571621502028855846571069059860743456760528100571413319027954840694213704889891437868176811090785072015489331818633673851949642910732333029074456188309709432531883598206893365193441271774178386805148994020391984196318655436333124182452745517423685726182427290978469874115712506098676537987685898325736352395195579218669934328802213997207333582418449881364337509448340537197467494768835705279997548992830445625392350976578366762969465316258704749431389051260874071090541588531466139380026095146601840491593794706105990328829916780883240039930612052925025257688639346457036190684023621874480718387344441779544686996943743925927063565320867809728204972430441812274262863471655415674876345699650960514268040331373378100547384974869943132167609431311518344688515825570787207497189355450271506844121798802858562630400352895114439021812610571806337882141836133186196591869107562599906327726871336427007347264946930095515432251278016438740353761811307165693526387573509053247404092601988557796971215941222947974681034846388335110951058009485142260082019636414459344987812157209636823810771649356826707721765159407780318293237402861013521006130293609481770600706386606141443412290874437862739817458682735055502658468073133315343347362415412762131648059362553587908965965721518246407571598641920052190185964356816474906913845616313732726267312352612707633171489940421347833821325333451729156840930861395648163812071235098342070845388148830105704330239738901931726807231391346811754742418725868524984971131132933652234332495810274165344885388253104012314712239637749578051695125289849854050760886251851327149769573608193633781393134806442259377153441185009356369709891366809438727615137637565619121540833809563970982588231002218660220572394755478634799482885024868889553974536612929333571740650736987896888839647826061954047647736389723598930676480261290094240632363267024821112712831932690950619326428178928633270676029833632737906227520188101363897519553310761052627831082790648771627947268506055320939328086949573816033337293725302264057058840665974716089879697093558367498222357480226747904204898519517237825509549228563173438109268796793026032250189229451351427149446743103971402660895871547698232260931767905702779506341711385255485122525974554162881883024711618062256121594471169883965626293319444830838042958340318481977974109065969928637809153037172673352162248394133372244817145067429936979657349402287540497264115763458653736063625397758283652431838107928101329590141460808356932015316319682312165353589920884842638869065793263449642036118929826321654063918831437737927179326490384068681569341870133824281778976334566652695951166160628409392224358428632341862049373858391465760097958059908853521897414881247445260346347302867222658295159513166730644966631016892876374066081136587142407513579732828105353083457084477687592748784154732593578478331391621472264903790080592162654945821674159232878438870065895212421091132467996868575908970835054110617473720879250441472431780386644482765748445287955045892787161380681331200494393862270410778116271960777687854463695800614233595051141315692405692183613167335058742485189622353156851146982282681934004567668211100589957858258600517354392899905280963351725518011796496579002103804097913558730955298167999028283460800752916277404774354924749064534523561183651060733741896435455791073819865034444450331932641463698807203228056516537856326266978540540190150069565845626326487505299386228450649796670647548470807112829300966985207600722002271393415490938368924572422273419676656501639036091494358285585910125533677745738535950916412509300793001336270295009336848619662318317461713151334880364079240957532936890059992016049592127596807717445581104175967450005156261634981142622985926296642602741169648558778657774941595914410237857492180916037363172137240991076573233055615993250355405790946558785352833842347758569573551087911206015960675949867588703132549136340772479309450537200767362232996122590894996396956780490435344231894889581016122022540438600754024295630205773463419744181200503434388696497523762227042349635749081804796187360200999438736655089360443000798455220493727701943047747978496321616473750316460150508878198109242413356545026741776831760571018844885771130733371144987427261656183297776194025822003318742047744265410776502094127446904817892109796971693155433938083701609209432705439209616520459493037444693043196424849180120408090175816469666883166330451041106142193533268770054027702334338399734548235452331939842569024382504667391335124171881656924414846855487975580052184123626117131786163446609257338648067396343533595670127086092663260789671343005779104794097367760116104208302073150819279087723255278952934886364494220558916225910122594193964445736328855365732128273687668647817763609647748792764388899009116428553663326554198172752593464778895683580859717454245409594898186239090643493497084687624930706284650307979926323028664346890545395708942182348219797235645846763932808180233640175899785326655322193346584674871962476202459284229503210549324798509936458477067623440994158925887875210373378831774412943248989916676016916370158768640797958605811039362585094824273589729652258000187556287564865899994099926360985779487755671994800047067542100537710273903685081697558188485117752295544851443845007095682094152744317481633146637660395564889139652678511423068581702867354745460559856994544297707314230718752158317039883177328118898534649434173457510323084437335327180452615289574754651655587332907528424329628640792796518391182925876325615105790239946237510303472278071648477837724825059830184546284039544072874914204376899683994802891023029616485649740288033670895713213406450383206777666264004468010098842097445397319733346855623215443009254289185812923423224201545016671880253356838486758687814076136230899144045595988096550505021872773291682818384104844131878073144513147947929363374746044630260736293903642268410062316668416911976237599371761647269670806629218873072245490064574486004398228584360593240193124965047359159634426456451615913292067020722541511607481341519324730246699711657248596344569904555661741739076793378374554161468889907239335095060521040101786962014667786575939034427656044432495060655410591132299033469970162410819207229524884569262368485458832206782561064123892671369324403702116074034796042666788226801267686802949523954606179334219266280411319489855228987430691624114271185304446350744029784330691860608808762358657696486279119555240499230353173349331199327027005193489965392693784680365706237224681259548319732138300478099986242277248878395532504738941290025893596260266342611385700001356761183045799758721775304676475589583155092643516460613076221006803785805718963569126820262851688746162953585915706771234482490599048681809302072297732287428391330806165894108576263671528428365583479832634942528614242585761511929270777636503453701935866865293439375337322304366083218143279766167738195737744189426494034685523553137809983354482668291032789542593818423900628604453969865471131873105412812344115779925610734559487656256652580476176798483621621843492681814968448602612853163164502088904875484141541456246527305600373812715550318514231339375457997960000610202640621294938276024652334141127069349369482212846853315197897642316232068695928726325065475741644306499697874783278103050936600949548668404856493807231920336877794057374808730333445669247259518662128514455341138403598531922185237856988068599912216079712885090722830218741934530713544866434935279306303591048457943136710959146266525107886905383657095589212940865942946922172287135149032862988446371121592821994874561857180995104565114900927413999072610246543321592014400125674142320781994742014058946262876060388039648728033430557051693885760375759820815258265093350968834773350937147129033491473841963043083504082423739859925328759465940167995524568680624030606610769861354486427800367005495654632611719887636085196747429634620002254653094383076506383959188475557992509451213870149275953118689806794905566000893145730546702491343627731869407710230880241961955508196646719085203168201853889134371760456239192814081191500728198925391636203941727672916404887035070538628916825946707322674096229192749608655353658933217787572072151420919349178304800612121283091041893338932785971866215747943262384730047539258599722077235156317234460596567458270736205559480720267958919206487175078659960615855789048739121691767486428254963855719607967139160560909981738338571911191508938842857930237068866789968560751827244477914697708215879113564242419188887781153174871144952503149427152792388427875330900348100952283664048864838017347711604613926825847023985040899122299683364028272641810725392839961054002554841483633663521953222406164612893382162627777733873519265406030225361072735873074439199481490455772444998022729393351588203293009272404384027984945154952790781813767615492732369945221062232132556838663461774057260662447588361303371966417468361977361105985816385785286758741772012901470251923349567943754004601463277485875587710855946422241346537221991833418266069186817717501219904163913534581957356481597085955694925275321119032611821863612008005673891814003965886360045312624505480469901754053970568713754325233725705211498957787582035060487435869876092483543322903857594852950704023174977605555171765579200889756225335958888287142515573188045341974728484531982576559608038033335732937527580943359054555334493084157931501270556136514821678446551277082921967475368005306485058625446710996671930264925546398293828858063791441160966191452441122958642814172711397614364609049848043636103481159231179799580651572521428087440466770499265945878049777973821170582712616676917340347088736124379234952439917559676277653244688868402326116404863419802802958723263694947164385196672847178956450459524401022116090870424033273662861330173798923152051074391284841852799367421613823106695746429420018023828814227623365220898161028946502365720943589997049256925011225758781362446519185143261042138379810263348313689592779467716477805320501219556679233881986446376277956255508913197953440332395006004295375118599119098709420224069011969872110964942724076220649960569839445347980059398733813526997605641868033077087176994230194398277551271971741541765777373969332491492197026588062680419368815938634996400135173876324917323372088949534148149860045085689239500821798292251131141553304796681880334575739003176316491765396096788280366275204371754104900301373536666215421518139251840066974213640980120059326404324651845321884872680338954890856909372879772500626135966472704782417294083803084099838144257225682486408898875886080245838776873034277477931343718844201546111549952051163480452108788380311821341505820192459232550707541376232851265312606988286755511648870416856592026510789125742926318608076612613594054794633566782539917177128852145149604331583270195931933081970273122287822895978704173431035921996091582714406032380469476212179561440650056436985688711397386818409093911720805962855911472112113260341292855102798391710864796110208826977486404886372358647923967210011630219159631419431907331764548704209921217389144580958196967685102059975394531786164178198639529349963231545572295632715410156930323437187938458902205099059100869818838494253348519700446217088958763228624602710900450461456785689086355195317691785974686189984831633114329311474132294863867209268039472455204013035298350562197960857764438549533784932209384898505555703478281329382292133075412837810698248573258572217284523126371341657097263643457131468471516082780467265144756177753993848072403616697264124368508681950080318383017617612423535938456145606531133146383142551549602653154163687075357398339396228147561364881569405621627451529228203782752247265450472521766380672001577897727123979882149509516963284492354551423381847804992440309169972709343990593841327376465880551213732391392568402725599620195822642621979019480782668806849363100519953632904505284331782136736277618687181170009049194404407912154639740695401657286509137511782565287404239061929054261734476604963236819025691367514996961260506210764845538896480276145044874737652719889246133223371135200318017243031410198787721997302110971880907674475006914902201135836639011881883729878157353389456340076042975166708257444181691426380960552929377444988710511117849048176694862102856449722429697500961336831536078287050940570456771401492505391278568302603387281028146292778235001705650931793814163601755276329011125875308233220947778827479747290665417205322791260532882791408750099134758959826945454115330329228339760689109568951141444344221763952677544381873691223454360982690067864049335850500644796734131114005552710345596438439359541216103888340659280293621903979482411103821483302995551830008976796634594077524996407647548944852576472229588171032749113119369159145724682721919229979581288271160536325576007687496383831290728265278263053484005860388509562664691458426365920007752838521507389581149533116696467365235870774553209409780910730402596658294077434933621680000267330972268635534696413205340766835056234873339764478644390970563980895563881556032462921367781597658544670921584292453920262583136873464587883443386999070998744956399391208048378083514966327266678447061511081512771328101288890960470880189791198005904745240101930670445413799505906989007261006402214823806613165964537319181645192847116237747777499717500724490938630997749612183607503780354560565333675572261905612886378353806809388248431113210202597279060140006429354991184800326514810656989637558232187703536144539619522580391638462905369732842884548320232929424786446624073943121574935791934452020467567648310300238983945646190675736285488361818859015703077173118582450171165678440520934652989902937835221748242338720559604456388743943724015228048567598905133201989472926935073302877953342386438206522809392016385768076310613847707518737715907789719986607595064491455257961934949361513138752951476461973974687688872933830521396664652710732970181882756459911386124145465642231574568047665764105685712360086510017576709840247700510898523767375397411886740772891755715402595257266790219132977565001265281753154837097938167134486808498025049796754691595714780439601870772068402047069034725960058670050371722722554906725063495734356212659262137094098730587269220111469675961816543935068549191859514130694940443051015523474084596918438439692285489478017574603118467853407118198162997644581240812144710648601572665379904386350524343863259253927551677069778043957581147242372844312395159183037854411290906253687378151990848528635371177012384310361133401866167607052336649514044438849233688964135441999827287057354297290169539297086956587887685594456976883484771685905787802548265812855311870026214601161684804529662991550674194906606666930326832876431644149088814239826526799814476477806449549883898940644792429406935753823099733600497123807213120795048650989530969603950570255597607515760275999157020682343968199640176506756168019225945831741779827979439899000284251821057863147186712858119714366053197334916054185273157018679627985041082840457156800288836745513712964884017152279967014979201975635252777609139001200603141881626914979947217549881331014585059330008439599918725754110963634328546126032216908437848738075230380789069610382978995022652192089754780172019415453315159611886826801954180757937676735972564879453114928213819682989572750780917146279025578407886645376567859084962425086056684955240106509107655419107234347840065030189274510859457915351848327718441772785427234637766611037714335926935857065482412423453911769831763932955387513522371198044253117779024078001641843699240691785261139500902540920072615278370577193276081198402094329506100759962989637912951148504883840619844089171452665535622910494754180643525349215674204962331601684754285278850353771826860333987867106708248331136472696044455273220310989023986024945174625125774590129145160780520222192025989146196442384071683879947044435530719722143368106523332551072364019855010371216992358530469478277010350085403909971911531106777616392499464282933828180281467900367808485098480968518789380590901963706847330656029876024809256489566764251508849322510193667132951330781971163283818792762061411757964916101225197221199464854016652777620489135534153135221955125293076153197392411771055047706304105072516614838975207783439234643630787751287204683796805416861177131413177960374403845466750094038879634885074904098371456739280424040710313276493933246016834824719628072324000729414406629444095790488002634924050484843204873407714724236370724244296065393030574922391610558639911686926144567351554544984353537386615819286096822045711782881632239205215706915159205282437538097923568414627850660594523019156686452648224160446990457689096034553523507143906322162672938359550370600049836812363216669774232436997033737192430214183188214342228695828229066521818829982935477259361354477496088138110653492394309176523230086005725517670326676562033498214659859526121416984654255338298907485491137428443629898652309359292449801926877911498945047851222716472362229427486725446440835507348102167508645062227540114726078491510522460633085383409006742263078447495922514094521127268202208853630796323310990759909654135779288445980835300115895766507140876258328927002251509826120885514971499422734318167303215358297005786500927511675431217006111980769940508789645888934989970445711398277044189087512930135535987985168608980763939624459197076560209791221116237272677788384350965710573029129601043082876750569481286440517525424459686695803692501449690241457134590794185417341829310784291402215709868303024181730676005676013124153680269818669317599216567497863132098562262725296709032327699669463070433456241493447833629954947496202241917245969898248485334321414849668694407041536205092171318072083672432164035287101448460555361651497039509614796064072431275502314070838407170382583558465225717814273011392674958462262277716117164919286482120324730111880501388980125822400172680276847510169042028545592293416891427408173522957822697666390079010384241941086836936033797999983380995366520811886324709746734935268223700985226466879318786385259786122891783394670239755328434116992528124587414682171561195484434053339572675988663973129682466650779768064822930197335974238408370960041854469357812126295900804492053103503490593319841933190118469313073040084525587424480897678663404700469140673802861061993373440469813423436840981079712708736968508462453261096972658722997473726923687865056151511415260679528598243395278083166786661713807787064436769348621883359022464822492009575595168893403919291145085909346710959356450191190036931170564001322727198737531900474819034034982704596503823190746760973862141339541541780935600954703315075138003011051657260204240262259410316179407406538497469822941639606320966527186469525939684406928097666509012069785020659991143194574757106570100161412589191476949233010454724951796006180378583644334813194665029782955916996782435180257015850522883323052647350657003749650541304085447555182854337694312439647742063554553575245225957274037221150544984852087347634332609060501964406135333159821146599041390730443297825593322350406741241981389219259713297373093909034530116774020011416890579177767918282481665198309195008825057193554088270193661859506635963376610494698871215605874060716811653319510941747287326849624632240032336301573756881640195708725485367667720989095869594654375801988255318975554829568567385372479268135028263400765649622587587756714731997318753819519712181234874573938253178292634411412761554035643454412769727463861301411413072402688631277986367234230554432424973043883806997790947222893278845203002362082181374271919694771210772233018160592917267565073660852537688393663464298763316979271443231044320782922114328390291152942176482193715947956737597277943740058190222956233545886070505155425585666326062417693035230707103490055115279020586816900601630296577599947564667607222193434914355876568317786077627776055263725892782285024136846436188976592619008768184935341744102297582560667414936292340269588728149725334767705675499670467923307442624718083261447146863644225877196937227368636213819855712070887939371607800287187242728864098409914327143157136295633369912803787078658817087364908635772594827356358337231718525965609531581285822119558516828850686171541190035766850062963853397012127310361345388895576587093729206779391857265304281584747230147705501752392904019542880006976518308936679268944948195377270819192396222350126037126233917046263435995947904698531439365622196935218034311056395103938561462316562669998915814600741231394683489152459593555042659456937551217948613908073677862259938704369522174842471816986714618506551680591502941099311832803998367678979241969969487812762661295122010568728107381050233903062668826755643929207840915379610354724118659434571546258610176952125587902345498734505735183354039589692901855313149067760936693120074011309684334939453604320747203721273618126991469105209186603033903975836556003717639224161926341063606469212156188756824586904459517147022267451278268615301843137258613689221816521230417068881439162076792141252254337927047438140181926111044717758390944194627998510121062259940385073120718606553462549509019568209267663671515772434221603601740279839922427976920869679165376945832406362904868613740689240362864437314048610000861752921703904029892726126112895185122675829871955387017525247940361661797847438682964376345838249722388446649934572298093799059971707389430678924934915080275156907953895826190257781852921209452185194321226095738428108859923965991378913533617984391419530587168970345037292505851194707241882589930269601030107089746907032052482997826528066746649106148254983751762230572615095439501979484386751204970377118062103066329714000686485962321982757838822844253919976815077187887011272486719403839500592432159382938685325030955241904591654108756737472822755074341892156491863899306386123374324889569336015384570914013089737933491881992432415940526297579593650964203086208618959902946480218574303070517247958321602519316403629387896301484907468144095398047024298962764081532847762267419878486780815365386600783369188052433971490043764403476712662734282730671196594065519383280697202675548321309739886641334112513189695595519419169801290287289552681368948551583137983808021408400425837177003076198559006181341238120694857759160137234358124711589206523932775986963702195757438402119770524660225715478700278816502166022664478939052597343203583269634909552488664299486569469212696748289308892615018190479179605826488889523767814505151975772618074699390505860711386927008281229794565026193319229954565466640173754363129980086051614053123509611521412919505919786418725010517241322077127550135266926535376112860004768401269471261277001554244159371955545606261239703623797119613945729860724915921956779013973456425245586502121050058389229551180692224390147594901552160144033283683143667337784370877781039512898822006355471830236581608874774040761576704625226677882481790968883078676399936063003867035191046417081433328691343364021195183585336894681383722867849090134317484637318208863702598591971333370723093279374911070235335141421178811509149842629821535945215591363983067587619318615578908866203772405032334945745098308167665811920545466665524307615819485195259453283280269911199184946866289425735901814717186243390850659694021305438347165411765431764329076115907711577840220767103275932572825167377658503847757147125863912679110771551926433769535536501345630993425276430873943798898429579698727104777485461353041302155620111753242562237828236290025705739380825854878106168011986339225590798748022700347415921346249750428007801451751709170597823846074430575803745847338172106472806610815540118759958042415945387109351196105387189242883010950775564469973741336561396283375975984623044448976511275497151077399321209061657564277902363400153274865611733440996725057830502963533898407017670828278190079454866982010357601574105574658026721728112782747566680335736321012802978739573420928191229131474910705346743769939281511176839095854806562678010970109658509001840262025687144831049415794865892906230449280806222907107646862479639443707691508993654128296994076889206065462961462796081884294899385128076640365215517565492104687788246290296742699279181108933145733144135734243382716366332712134946141974557254841613445907512314155100925908974074124244284927130268482646346726184879851187773305578518999604656340119914246999210343187320832677412794292176046198839860405863927819664734586877799716408828701981876709808824889774764917965776808089500857251870442901876782279643504260721191758237599838129684837712488933180115539099876613410413565284560593009115497101196528334922433637303141257453647688659002679583121758906611963800307479498508747027652377823918790737857169705960965298331877317927538831865346503672107406761743614720052008149851893310037670185811112657052858140598793018195854055877713270864293504562006702172259305837153239979325296778696663809682136951657426999027588548746083708209572662162720864095325810426770657292753575744859703117801942027537122687032564726538768075810501696812580626993928054766406777093274926702577038557005287860158498511056101810565548800918069585440182837982651874316873909329803631566795332444939476120051901017112091368778247493441648142140609193869466578507177336416738331153565199556240941334461246914528701826864132995739465794310039802010541232603838917530583604299644220166889542948430532222124445567565624745292201262884315622797642668655547085112554778489360751307636666319159077695439886656762694610905244749812727618774722376084545046343023161770561830272005530535569760545361355027047220235979333786803776890911289183951835777307384596535584944850614482513526934239160296964197333052006941771580088352875038828207768415695602068281676048853436207233215372453182300279587501257736516122793208490887614206240931565059716487422648720100467665856045151678262877051613555400277623314027364580682124398073726007149342879089902602931826517301319412525341505248622562067499713931088265177348415170111241022199729122640598682029078117181336554546616676623426642512407624414180974071021513716696061086865338430962609347735869068633031302159462734380070054592748682552519152157508873185105903203365722498428765197593179174073512792319496617712415060613439336396790634182691198648334056372655847955105365316636646115841212537537458373648853683556760105926021907454251789352374503845512865784393600637297882669497995442558305258883715173635895880155971027348715170604111400349450244909981428721084588232560644513324120397999857811034586995752152072260232230242764759347253199217078349041134063690233920268087905193846910466346415758221759360222176567454101940039065093966223581729692140766964313815910031625648853893163520225689740814641857644178588569337960462592889646351317548759537533519009980119880274336622385156148424297665420324170007696036483601801011038177769096316899703487458270122980948268683764204940978889100508125261059723620482841541504126561969414635368326544532150884455096199839445323379673728444463500676008255846944668636374378049763720896730853474814622388619895117944292058202542652069054894339761126612637606550978813100456822109601014599176309067274030055333650278522124477250067872530153501452207749147489541355588546454277329758098265071032962579710088209551409327845013837202809426422654203371297692590318222665759355782253457629159536515213456682650187265643476123630827635122200788008941995744165952339118357868701626574816667816179274317536758404638139074094305086425590151844856594066261463364377043954835459660497150011875715447845289522899709611893525711397408756368467305610230398517362092093447084266443533650749417286647297523422554205078523937285311964177732335336783990566464849783727359837124992279418703212090293725036541157666579804261097332374880509072831744148685675940214072154855206870855570512341481570023800590087822256331686494026494610862402988411981128207047221988858433003528196547670854965456586430352695427554209272874712323452049743447487711249512050406936262083675923609063628624504968280910450958216872759314745932325971122169526364990247306258342646350592831928834006428389037015501281820107759249344468738492828690349992920694553967575811408196533150560865093949213312442913512593350281580587438425706842792671173839499415066633982466283750258749703560598147513569444533250317048943788774630548195622764537553745963519242323130715563727831308282849440051412018232120582641896748924253989606605021181866739952399134059106841469489261493357738973459551272058158017471727409407244895783100699854719113921576303303743255481884687772230429663945640351636982650329380230078726843327106961307678632492468878913151039458132782884232646977539683245855298744653822436937344267731977445527424569276352207500330942993577230407443979218967238253505704185572146353781002088347011615753045861982699758708454734702216247914509763807418922250962808972032289012980800125521770547042204819432228941602018918886333585127440794330000616918069993319024692109280708438112827033499564488592496356607546063426256612437414097754232496179614994204060020065806911017200097201990484669096153820955031510277478428692072959731082794568861565591056716509714790382103967973119867568445473961996668520960806508161230079528062670196508720905412677079298175067002436033656322880631670129461977732216142897439710035256716762256675712030970038330294135617961411315226954086933324360956294909703694396035759693241636097168438123135564021822175041261498249990365019875778221694955412337286614020639951506802333056835559742207487619069723560827316450427135035826730527130405827196461471269626014695438177058260238101065209469669886825049304599365856073066934346332898147857770623998673473164851727986430147025634460103153267482463064420868201019110997748457107034643570616721111055308590499107846018556118792342320273186701443127520473563143276670219909924174395007801969537164552403656574883583489393424431230325090809622408963986226715594093350400619467514216727200389641235870340436158994076217378228354931045319473531467134696111340519374059978416407609547774179625694086577983019168741969647822218425443593668598294654588974254818840914009758579204330201711770417457676253417821650679513569769421293890626597182567816483941433158815529507965523208233955827192019796225012786170625671436773797492810304831920269679884225955493980935837773087021850852701358059549913075693471673961857894216653933210632792200439314521444625761910215823667388929840016794174605930170339750589197726110783295834510864504865214242973307886531726024819678672594264334123611799109927800800152212437263011767373349976398879355314419828967755414322796298778524800827466430016516060300274211503802450395351769506345687268918716762666484163076410782278454594200928923646379408571100340154944570339598588378992745119243557222194148163165464158916556468239104372702989617444189359338012378230514455772563843667693465827822474500645042844926739492256952848478215100493983309824650479553939451964354669038369878184736919256285036633599236387045185944202114400377457196111649443424978405948454511860841892581743496881679266494958136072681173535098261099485029318059801078512320513188738636695119065344290573407907233455613255998832606499851730304678996747199112286960606656590938928681861162917547237182961623528985268203598137892167298714238164805953420947998798894646212497918794637851504808156366792286520596867995776598417415355127162899365361389039696618297386216234418690040983264960847666224746586073184821736984887051393743234900302918312038519859388622835381048342389644125848164047266687086196983985062974856538454140556606233467224308186281214483214617616223299618012482808731782317043452093062671335269940737139796795101730969834819973480210468515677506225319327937026690684472657221562756303189231940434780606373209870496149885671148545044684099538394546078682559768819482230584690160137305759015299367439335875190697314209229247985201587931644233182677289721104080042109530307793566045891631057915234053996474451054150669550658362587419867974842450856370373590001492851578027999950401246646410623669956006670869876557435165582868113249852229255404123847885127004223596101732060592279987005165308254018066222738261549513808592860124074369195316570331648125042557892930709013329107415086202374340192905973515067953572527596652300186540402298088990304419438506161546686177278160479282125005908334717755151406468517750953579029200882971843888091415904492439105326382499068216097714844385978949130118054993707851711191417777113481145742787882463214411450642534796358175414831954159733297756546069064280372004400399594390210362945411284195169734945707593707407710334535797111814289710765392074174948904417340079503025834252973111298666394763828934521252097919210740331230783945118885804336093948026201653491311181174482982167297810116177791780639529878812029346068693282316470635403071388646070647165738366225591392869387303471472916500003248518809915732574654391464949046644668785601960987720838973035705435196655123349510358528733886204963097996608360575417331426919048489744110746867194533576897283486221696167656080267646799368304842317168822297492599141311980813139803509222544699156008437066891644975033777082137819444018612597096794264291980840176068451857414299569691553311751690771723034155892646572376104838933546879405508339713571876655188177326622954954048998284206811480184673639622288575897181696389696317751654743924573496875987524557268922961724612498110258808181537511324910951244774991809147203783841686242213677286054715970293304327287868929818541684040688523098576551309456772402787154649827282984390691231258359144006573292151063402198145570750549086191172592520603070792243469037716467140852950567684335633859643567479529970434118416063002271658388719513629627449654405634431207256213509844355935325360119332615739710298312315996680899543794984148994690983189359737014164518638290419893726202596409960158209181860451764416808756687339603258390740978696906858799041388070406336572597444025752475390377630803963344915176054209320665771817129609507636767385682575099700278938569248364194418376361697881940466503882922190597932329743151892702107017582932663471560081794663275086119132319890908222002186031641702814179743894642046881449058151757178784797244277577301185682272336238190894045040111680549080713414614656435959936299964410116294591108993288825442905881282889764007832373371382356443798750870783557471881794680426462586885333722099222268037082282414145872656958311860910434332696323100801069151789521099608687246973988441930516219142505122143340356226405569235198928353396717847220556077809410014260753730226640653754310316763521220120797176236832844414206322281294448306464091867266170237637535306710364393619329070739151227844601173492193024535221412896200868734015603059548078624519047763538080304699652206008463455412226065058939541195116755802397152785808810165822156491093189201711113935999333114468089026922717570152216408667083246946070180796308922379424493760794057257025834032206642782165855731900557779855716894919345099832078277297403508232433892001245336947742171682247729117367631915202007613820748232097161160239582010069322966843666896058001998375308163108144358885938951507960230050196609724337198363289886674285008636683819952713909326480045088827007478053646152356943192471675012082272171516689835600821225795428586198206916690928810865776465080498803010312163847312651343904134027527081665150997576514007457184269794608896670366065865094000038965842420848469151330026080035420816041298994964157790985343734576229517775751694793736024797271406612973287568917703684814970044855964738669847540534280222200221748444248459106710422182052293975265403652645472053335210501088376648812939833064883042292878895440828581703942104856162795219391076253661105318537038666842285300281147569984774180475529127975156033300327066580885018601337614318870775063715789660403660674656009896164782912781226646871121703212136416908486045626193804170801176202131572030446676750504028336447617509336521027894375646358049383583550826679548750417222588523139288648009206060207577253074036353043879450441912261007474032466984331029425438661047759183425723354043862562792381866642066624534431749108736107938809793582704535756709527075184868808766559814239710958579741891023728404838523590501017185057366326687173486591885117605464422960099500970212338026844020013359797498118876467966416169590732498040568422243375527269638563855869387385828528360989914545119087633735505127206971457855102347447477330552194907012068760385813131403533724202869040241382107726654779648782005544870391380965120809613605625261856373320899924624887468442381502292240702661377028856688910659782968357325827356770110228560348282052753064511798364730383623613430048680378766004281559133463183649510396753535827998362241361769465431864457749796081426820572656579855714581310326787781581794977829843122332851219262219458885905041397395715722801554764881464186873438128695129517031350406616571236092042023505219869840112116023610715277899160171640899495321386624650627004959346660822600039204416144840298606223579262089753688627854393417062068843894366020695695412249273100369265812871575887796997448349139138473103969372865767984948298000070048615003233643418375832128669037146459934947076937992313295457096329891259416720612617860548590439867256082394269759657831895463088937959732472500527470990907261286555371357788826970660756405072331356167884728167191086812094797811498029563444053729916433379182265656397915998807284259567098549310445850120016494441554254683792629637723987083335845204847565342782269672594784051833711370690496605612334998506930849698010050279455516989213189205486199300342649038914816793222828463007258355329729770381638196931431928608705327159950074165146696337422047492975452368817214927786219073497644369643181448780838961592061806934818962891723021425406988219274978888077744055761725301848551161703191083306745393968269359876963743901258889138783037077040247598324874519957373942132010200062819201746346531533593109618421902906831281151688044489010445658549937839312270721231186277331459170166856264398639615612340794996380939716901790130600180396864574351198446753027901018847991428180634561660955079427075158377441162910819226162303902053616391065890029710728094044683753277172138701062196387630083509439307006141796087039566932552895172388338296927901147181873848368428673336472205485279934298087104364862818423823404007562367533777479270234570741439490787996247039543339542646846066508470054159506658291305489211257657099769672381451240838785213887164373238500769632935766218607470938131121578925157049158973218298732945399062285826190973807963365218552363331765114756042729382336237474926967735540021905962703414983948152847786335276395799207939060515435278917093547170733116481890016746068471657172062054678274298337349354362653380160215231302508262051480967308348382298866740848017041002011501981867497795115239526544165112873224373195098061179313120306888665612698926569401358341294484563264684721927239332654189805722893559014302343662600507992499161178074062012750687300083324364760791946225164110169833892371747042038030672306651002005110827569985752941945820727523401490920915462006734408726003630184903951834892711651184108469328039356724851558184145726606487795233669818471377619642768238167531054153020994978492889023704781025416738247689630356488366745593086064495911353672621799942539161271010584836595145731953641571853962369314097753357609725105675325291138842070355991877370594491697598609116425746292652409002063154078435298009550406024419720009583529403093955096763710696614466924457937442686623673144996462730078225841752273461536466158245754401501947381615658820735542168204121846642563363385591472833498923751974682117127422581652819091205963349566587732695082683108887443346466076467111119115607131905596580158846010089236223368699816002434882417236867456714484857594237495078631871239605243258684484247336168118291044098427396281767540159254323396962293953052030938527122707714498221068853277777352260907173793222954979395037372813307705616631688335547960858629059699201024619074301396788387358654195981130992681144506494324116881710248472630158880141959366165939477654079695856100272086334078208316308128784985340380955552071924008083640981177632847867542499241284295223499339166143640260308335340742455587553338103336073760456185048988722169950976641997543287500884851594954320009539047749976843125566150019086490702227112602504752080629266332561998307092903487648335967910922692674699649822194045407297914064338137572879399660889767004629337036839306837404571326419393710924121847096908201519429741334433987411682169682367229415942260840308231528964257936225810854527881701856428976336567189467691867125744269976894620095179138679750380928325577599349707148600519702960440793748988381770267900612477182042832662080716465096833296100088431189766859243050010610698259992541570080034956732255066352370579135461366856064418049254144062733600139278193248609160715757047085348548809358971958666707963896054768045193330039417633466167955182051163644912226831276438511706344480084010239031205533248617084830901186506349196410782363032197380758882445607646159399538668503362823497977623409983692200812748046278225484484037780719789382278721349231269714778164126477939085881267878859443499715752607871173210817993258738151185187718980107321447082134995701793909840256303983085397458512427751835316094621244356120604748577276630761702337640065066283443529900816633727220725221185194837254380110416056968174973122559643133434834414803981962149041629250134058930760693208527547150553903554353771858459772505945861409950207960982752837740046612964184797920175099173626704436362949539277745811231780513481858245567331602703653634286292058145326493966203506614438009148621355618207518120473209580707567050737518416772566444483359925525284101156751052874327754358489471090619459606810463136159402240115309936451125644009039727458829916334524651473124337916821027048027866451460728958987467498409939632338574871947531304514412874671944827310400163237699710121418286121178688890234842893181749494002278069215799636251915278136200184164088158905051937352400446872453064284637236868065695052785169180901474627954577778407955761052721359862687960273342608588248736998501664991144398422028003747719744658711128255063663932017839503795421827905321112553091122194897944301944802181368959629601672906618137622650749825778168846304225733688417069742236287525475735710744812426385359476993183228123514883552717210755912093440921864446015798741031207247010998094407741423307118101002175743741251813688030641296616323886240027898271241250272029831017333552627908458927443822428897109239903050398921318590107778260144945239916794152744647880704826055875511526155951106435626444720464190683417132804095227754950362701305212295608085981755677792431874856827043462054940384691228168075163829250845037833777210098427930379444738868035584555161121721249485866596559960286459998056248040616422813033137064322057895375660107991349928988749599257415050361454080406883538043266249057267857475182263070570061067989895415515115123922892607546839456942801580061473498363673909400091128403714668714223609165085722781797726621246375111159592934857423625408526243609663749893142767210830498375231792308369127515658974665131553695218774682701537032344512731474708705770690026390735091156165896165015489657333916005247316733950036450827660235520654185902573493407873377443782500700347959380924065620479651864692459718317284431583547995212590124308217952502708758123330128208555320079389605155823455608115634918678973256733516619998366478800709850098002863400788609886004048284349143110190413221628945765774924631139181212923168601967515477276676843266589301470544808869797781891780805443695891524726002144700311403161748651443465105246076048995861281917181499061391698474168093041699605145994989752125977475463706120021914689710411974308114236105319919552025829281064128345578317099528394271443196306053692444678505634490039223953367220361381198495389715479152330997189253874191208617196391376947215120358435047889750891811071700924008917117424366561111833293180271377953145003564768408176898767328175267598678274808859031593104215352941262509710381352875014518228249441102130300214512068676200443729383906861564340335486776236411222648294210003097670555109386000279067991143402666046258584070732327681734862646904975334036879570901573197422540820221079983797342280396252295855516257994635181820548978362951613212605728085958499922413869432299156360992115524752971183713463769952046882117627228677360159260176165133280944134145298692882577670751533193709091729483531991705179458887302345457194264185482606767195766794185434129997566625913099964114421487470635233608309915034310429798369441802928128321961241575947757943982721109675211251597762709090620896834564912525192108648425793983995766855642927199044186524991582719452208055173452399947169867622722826734850978328332201042424979799589943597478055591308535662668681508603923056677606697607283527484379456073192144250930315932261993658727970420745422885883112976870972774533709979487608644752935240953200670367129310823179197067909014862456758611564157998869077436863671167824358065225911799777446754514052954976196925618115404132849122587176809356300720795533394521556987343553950108008371303602804842284251566597261028523903381847032317144333307649305020242703538580587836480584641179185311402075842457790814272453429488012463774411321230287880363640221546118098282819421689553522133548845646361443943824333944597224584131553418713126252865374672612108380855382627649449615427122923837296919250431623935161766414884512167913081452772488998478214936289426194668202548488993578907183422725010007616490440459471822213230996781108624245313891837674349723150381374126075119142620798348063874677733006057155607016818305404146178357568937697410140020259514386401131754379713506984639148241891570790063639865455152623146780220783245916977059246090208141824301477218192214778291706808170565609481895628344637157805678295059843602764695931779448991634392950631436058384619550144959976321229114199632657313130268716965556441717132447226611496620932284957742530335230477308875124358557330429231118138685013269743820879080985897023495370445118941189407137250464300097128311212196614721562953709018025209070330859373993421464823010961135575280286245255252013924517274687536301811085860855122408441531343470655171483488202763106845214383985404113186193881417873792904694613407989503957832488643936290734212144979885574024813905380869072684354495646420404762072755508854689479785882379565092471705095192757405941422514725617430791514091843560546887041623740592055485808864147619390066024899909516716552977129027130735579870997190854680274141743658435049706275860913890289987076273095061950569269536309343986494873468330429776016019261366260229053483765776530693649767217585513170805444821341865908700425333381741553406304655176120393323108210279102238974065001517325318468586131085930108016754216619767884936148617470137515773060637039622962708227460136578412300960919522514619336349297594840614199060884016299690081518585636285844542633621774547023612721378233267190145022667287401159908882423711466516589937536022933480268348406023947225491464773336999110924570212842548426813194147150466918291479616090781793784029906411759760361897661139218129954733061626447770675577603498528768743340638405689033925049016483006179153007433762613204485460516860591973506200589331041283489506254867783358684722562368568730953915161564005967678620048918721500732027242482294355280317037766673111374403723131012542674402985382537227206798033116047829308867878218858710056753072131408117274503351719724205541414647166082784270493603905289885690496745276892560242924507182470403254554666881782186768567444221621705110801106998091474954603405576004049251385241371068251570437218409704897078872147292710206211237174256049310516794505512018877084915517800691652171056585565346665076294151798796383149157493844289696180408092014577308573557960694612462958466994921923940021350504988653064027213798387942612103360733061489187341465427454681654395366237543165713712097668795213340372518764050413779364631376545864828961468329820574258888089346747876633295065625885709888651197529628447447182713269539244099734194665374752550954494565941555520687211916952479200312631639201699435364278288054733203718035421413342863858296929752974668372701102519630254482189924187605341467798045736886870122096831191020537010327682348399467177110660678973203550236947722622848330114524806185464069248395817574162782071818686770151211406785010990100771341441510395123739008558246067139561953183020800799168386918339443038455298721251545020674359943572269250080788284944369942290089357473695995909450160336005047907782758372800446867838785760773751972275739605536819596630401370206836695914146394058668280568933781403798508281872235209262439797991969546293261625180117943205783883203428945849892572563076168046737027410915278232527941238143729013518072330756868464912658191270419589455582238861980397460134912334015488589914378969699252292585577357107405564188791719740683120260743151116364185401541424784349975212480979058515849593931463438679044111999216121244824901674749278518997746168737620461225271698559995409725332994619088541976807334299011059650618924007264265661168800569669215223009570224620975380772744544521838922082881443134572044655099936155224627230927681359565091062473496080983728418526956981575395210585224965376964510759091525743009401617882277060383938491658775926887383201334198977413889630123605800213962723602026072578671152925475486623448080758165149552817618344853562304779165666106103631085171260195076812860658878820769307295001629239375463832118313344088379858682380704681729915881847745460346224286858304519200713947406542361876709741523045025318203423466527782981729066569504685293752279711763673669513984061643475980752367707543119111021281219982666259563986165611275006902618893932992514905819022607847328604868774351458962326533202496428116658680762133050291074353838952987457947899661677456573591520897972124915205030863792162441858293134111596968699921951033988688502645185034323251041356509801428309476153355546703282535335027057480182686419299321703806703981207768626092935742086766908508642757668430871679259384984298519990281464185793589381744413073738884976780944971417423971715059177959936993424047673342811391016087456257576390241301705624316504009767694167346582982994073899529003138316646718451211017866143442990933107286752758907651859703434555713490677326886138823909370946801767753757787600702365584867647108613191374868359828018400366291019543573539424532330618357700162808352135605860400910256443637034744368138238031919221471670873016262874255421873315308358171337570065490519021175663601726515839873212689706695307530198641691146449723507761834094297583381845560974731489193881180855124903432085351034234586227584360380505804611010037026922819316707149586979197520425079904603265193819053441063576089673258786667752130515828456208300459851949135112898381736966003632949665590967998383733252170708667051201207708929910988514653334137019466394867342250763326474216721565703636534173453057774232078369018453524495442177267810031841394807578514617126727909814373262544207162058548611161727674619274005525604601780733448808467359802425728301318654863408487882209579393320545235375402726245996808714350248280826177625242927999096141674271482076363519975282423853067971937324111218037522829550910867280922030723835028351418228875506609549029303524427577117747079048698467306729473568721149158799474235617523042469441926480082471507193397098978201789660969991826605565631571155282250314923704805158323296376781423527902384645506809227771171564882310356064848271097805704259148735914540293305332801307275136435585914037356528572126358969910204794919866164081253918473319344809041523277944376309960645952657586483917141612337842265611327431382661981832548841495407757894759102644166247661663733376140171268245599098451658746763083431706046150643874980637588384709354556405197695012709292761904632372961031291543654397000719220264604395745007662671959397207330365955257074406392637895079542015559389975764306315101803457183072368640607792866527629292395215813968351940621675255447430638869749809869357628329926413010890980008259645029872146379103963275101516621690669693339492923924779115029088790923144650403126349671049625169947631099182704098034947467068543119793932664703831214391695402970566638264085401533790959062038927142552363585396848040991562915367652467663325433581427512060866348770498168980860968099224852553517023922564772850639007628675390880282732324247249845918816011747792962837422176482725312335889918806616057257998622473992420591325690128771615785957563840446165554485343422810970061246707492232915463223455425671632569166206312481907188955952763811086243372181691800976810921886671225678186906674617246697870380953714137762418285932907073810946787999125179397319837515963178099267851633983260475530333713791907510219483980597863719379811812947964594725666097017550009761568463437323191343563267180974832397050956757639525182557933340712136123479238072348651178183220527992704571775710470749068726261775954507064078243670388376606471895168199668647560754729395665711441522933931898548553860919137799408416240633903389561106907883984731670074561146955604543519603672096054374132055379181335594135895490294530059066010560684931533871669152447729608403729566284947426031314439613392531369152473637373643249757221685673517714185257501540042646785243763613252241977403804150634939976210587150548315257057075468521801957848440484928209549825243862758175186015105326718873924498468137866728379351137066984347594446508727726593407506115770800735416937819203886648433972142970111388892076541497220389849992518410280733925973768338132206389378874497722455162023461646371438387554162684114317996973788071628448428451019520774224115407841000820536796451850445870296846542356605703305967925167563977636382672389496992598785379298802324815937633802064651695791456698945886472175823077234566350703333354850050882044319776460547533596932239611458660967779636578978532353122568390749481387303391042964072905873928113753510138261540088228289116974256295488956795787459557518900168074020370959972662982536384028014015578544196918428910365397293312181426133003376225406339414001652327381706496262500870413111648863234190482718499103228088314364967881082641127029760978487641925227462987963122055619696369784274132656215202316795144777514035193447604658952535162638764821941027181265533543922819879354651906035568736802112700457540295201601371789240161166304382823598276322117409104254683602718603296640181944456112659512081904476962521508590805969584740834524239080114463431424246213804845349889488195672484729943480793885679354419935996951219529304800289668314575566601272578968770969007801043633368170527572861660316125334892106579991006872149329281785722873395072169503633021991017650963071639340556972813242924511120604228196004664478247555133853380822769273161863835602899388180031069672548037921887799837600101893859637007314927019649904516324802676956375795759679412093728543156615911368921335112212192277377302456542402405450506984855284512934940894919905784343638442309517135115021307756062219333411360837447346685377155503565084950781021305112841472496039276729067133554695517649209218789876768762802935359580814994047136713364697609440270361889028287656731395889664794745111342030087304837791022028439063282435508693392187857245523422812062230332673145698438117390241955229393100190289482379548915623101940414170016056823880509581442284558976691519126167124728796617726746341936232520916183078245957252667976038466102049090158628452049650680232252892751875701976125283838253183048327439573710096494831054226009758865912302241734284288230767416465573745320212740911866570991327452783807437909661580189302891155718315768526632529980207280561317171746665583195080655271471991544318506644328999860474740798821350335673551097460320543782072278191226344209841979888795690197651425681718075841680213194586463144710839544763223209028577796189504646082359607979348119279543254785189366754561088975001968565576912874307285040226286002199343827186443170928229055858861347003345000052105973461224343277503774819260380878736016562464081072300907619935541404618435225764305916291303995757175336728218053761906870136048482991471947326819733723322473271674995085439861065435650758157794047895642542372794625441044773219439309305723415274603703425323833412835677974031546442812474370892785005124097769197926664651997230360988839561424186197041204585253420059663113794033666134296877727838565150141374757891019746952084761445279301103918522131755931521071023691120669204633135356737260147082824096893063237053391238816104177792319924108612220897888094516544043211248422814364715533091596519841370550767419448032840868095071892129295057323846647109615344118245694943880152706116453832448096337545632705757730625716451110444282409058785013957134394245309529104155159713485470093215751624983441332930189769612616936710975595113391355875445414013082403665360686804817591171613514284980557281723576944613450808202129779167174374321565647627175816351835692183878741666003217435507052458209718716176267902539669377204760722816138895045813709098552615437371426978664654719453348901943831200815173493407821019627895327809405495719688157435247214122546459550305011416705570695752023489664655063462992252855604831121527935365290377581577214266827037608471794737192447036779735433650399419623430366121256016049968521060730251965000970768697341520763339551009064938551757383163239635451091449026947669032811223222135021134911616971401415963424464872128151768449939372857384244847228951535430587323020651146868329344982444105320355877279239391711895906133357773203409389150429017038255342407194544495875729644310172511897373580170843973622226219442675962506809578788648181862599705624421804228329918653602720500807147318996535823166638846860264463410821764852683045070426270725972447019484725166551698355945192327918818289200171312556638692112300362617883103463284723851571856632106800256880217476617842875645569851440537986861535364225583813639204412591184180138389566795391619887297312234431421930857463031041765062470663570605755644566500037997013940204308709640093412840328124095584438934463644535949811202708629942882721318743496687981395155531808554580399255216223447829524104626411626719591510151919645482468720045210575686944105319219830118454266868923641090983876934235316333842850255200798458317471682704080851230068162057605268709069447691973845301203833355653270436270226785668524608439831101427540634515204714397414410310400016520542006487443379498765513059713626478051732587143814452308123724716303593329679994394328884813659357555466718317265466146203362802255259974010090619323063487587761962902724841041537662593087033294186885262590909373801970962478808782925076442814008611087125022130258986345974468033330129465778135310239604236943217131470878391243953335254359112303555627278232456506471187706528609599492035071898067943795220304705959079184765164039002329724155200408488553917698335604908079938405618949653001376569852167334082808574030412653810301116685220167505432233805650916381170418156343596560992580799023967727651757160197545383818576952037645734217315105984522880864234072432385318043779554018591396657764257457449769485196600791415275267086490074111613815991536434303916097697751127560527518291984912334067919141874993866153055343192378306289841371636550367425656581065177838265044336364523705117987644220068299035784412527199590522302792896638562822353132771695147696177635078033834701136056347250404592311042572568251339469253394408391610295184724010487487120120114150278982511019390143923584481295090616342378551467707223397584057761895327589908570965580745238082196949055839830641815901679151990662751694308642862722589742256631693227569304341104698511771280101600782974324418331165874186537615051938121713784077088330299368902515538418042518504533188715108999609255455525216761122169287488422044206503749890593276257015752676930620128209554579919575120530268303244438960054121791785659456761748151857092531183378356862418134554532856042533606754341810053418317107208300160798940254831899529601016820763580515506471528310156293351612168207528053456429949640360951778092030303390645649287725617876186352873989928096769391377392695922741995686782557419230459867736785059495965830509634675101766965997603334081205744099211177005037992492319050757142175355978708531065767538508565800297593125459983000648273397569784455717114272352779168950458763849454409000273146108467054178683083044097931967828977877447589925916853109640925680201077518049040166663087232041874950846732007396189826341913373038785907881812368260800471290175366068793972650354639750695720244745387238458649762657265039340426580088304416048572528155959450466055185440547763780477546247445716303582599046508983365367659217934747034406009442242646494923706586564447717305681218160853864125030556905610448081375517372521366017208873519203220330738695962544253160079920062119617094614910528733873454551163788614851469470972809086964771986072686929454315667868149277906015699164875480417059136261408707641756975764925999852947937849456906174745136566741862849967541209790790733577929219728383779999746345095561819348504352632886501749483693680803963054331590759283300805586191045254504986786402719247906192617174056129344426801934925366803313460232463545306284970262132434970545276956943558010414797530404963901810862375379669825137698692800742778364178667828340338286665845564591128686950677848829880993784473904335625791861031004908511114588174980932438436456261050596591942435754826433899133100889243164520254718199730085392126674630303278513155411062349490958014750668272820328377362709611346538108301165707513223876771588556278476239329135967983313767989822374670683431946480077060290809176983583933917727823490763481876186744332636076123787768275846719007372494735080284972308978138773254209324596952778522049384057914410034310688915962280153097270566315696831597251620625485699299974832603989729241816700305916498223860783517733976128279343922454757447490323794053642910746025796580543140877750961519492128722440962441280854235519421897934604706561320636678686453200400897713681580848010149134610308594008174179123120324434102767302552359569735072913423708631547425354329204308230119546576666365984877125838709318685825619558326262163884218270377305918000027248298974689749962083550086756997504660080910836263760798187998725007638469052854997589454814124003914639457498911467604130900288856261207757262191584393436924430539182919695305498825618067527834064755599276927180784883486393138221487419576162853129937291249514812846361899585866753733870377095273102658244896454523982106126229353688622936770024857822908306678246223755214828781686564559043568161283730172841711316058161985381322900744579482158887940652249330282972042611860496803835984943552680915697731343599155651831875134407096247615620772441741592435374938279914503378469233537693960234176434208974743381502239734630112780145581181954083063881947859210439224315444953636061087145074647833189095314997541521940595848497701406031509036058421245544902260868406232096754314857295767631355604290594248919686563874112703656228217315795818048986619537933745902692455635616212545553992962487696526976532697594823834406343121667773601316150490066260927482063331370153227687757004364715057582228072064069454017820796537224094100995778393818358074277523723390035661334658787184043897449774739207132809543189674331584935702937554359329463180700083950010535598844048576971194877685376188842905833863410400823257335355231881516874862526951536830464143200926862469344561635643937664348232609832794813370989028039961296272565664517990465088058114182018783497754802327132008303099564931323772321191368324167569792731368625830834637019542368832546292231758162436473371342311250793658832725273195210935105016131778567594704347421514357444014197228222677864115078743242673296958890312188946302794517247095896725809307199484962010510150779279652859585711189310172389524641135608727799668984062891140933422535684974392076477845256827208556097449662089738992866939803310251742097829279726143227240205505506954149456357474542424974918317144688314800010433412339152987174986376791315557207815937135074117910678098288697939313376890370063467120795481830540642285963153465765712379198667625391059754005552720227975459395102213627442474204910065202111476210001146145552522198094389561487869791780408488054251690954078203206076963276094827125815203679878290154024855051344415739078794281904112142403747568337277957636703606384308797879236078649788446551871038000353267917195521114470002817416597601350692261181977638197896924768896374062796208529227053806370243179404140944688970179609733508310814339199201607180404419858024396890359297588469011928105466306886002885345305184972438402107629627848316291581520799354636216006472717734575988999618156048833265008190405951158377239837551405466817258551316058690291271811273159017060393347793703218126298196193773085026733624400464573641968207376845505760566836365494365687470768127295568104892446610690278302572198388342025741357035101145483529588348556563793601983258518440065317089460390089878713452212374765124258041385792812472171335554686776786953289070451783176027085559371829354402122022794448738085477502171594656426242737700323660491777091036630295253342429616013887553018981723808645157255077080300288805796049475574507582929189263065427671289062790119692293325426396939642516221570313434874698669684501492565003274897232442070404426647996151159902854838328462240886581521929900179193929496041011577539208373530211432036943003462550883654894674112462640590267536237664958489280651865991225110949209209410061135703525289818437790938141328381999641613615129453222112311102969961057651287791762605952151417211147497145947520978686281687417799011435979114467498143020342511247485468239828505868609363328592769667327448461451257430716085061013318527226735658672894461881277998892724490706038439067928485036883258174247624946805371587246048194349600516700038004852724555366643368269755839412943233293561758613623902116922250440757315057561036619103374575943474570337207118908984808915561303456998332281309986109125123499062535611282517675939277359666902089248638116022651918236735792755064401410701232570050482527794310810628770483517599531698950436924021993095098252474473386814260110991317655135754646924946545661237860063205019541297675833552427065232786854747626302157443778684033121738332443432161776823992928041761787586848127047528857620297368272794421239377883085290154358872535796209329545101018694420464079548283544967815575233353669975031621206666824949245264463950924109933692916970861225217745694942739073662832275726065936110285984265956774663506390424081474319427879837654037347503825253942782086801354954252415814378792528654946959833745947136478870879431322676114607498266292340724494976174103990827078395575722683733198718041030311244447708763565157244352292116382895984554923216607324625418275152236772773636950972710621501939959123353282380279978138242575876264467581791169138417058990374942105141909692240279834812961131920765431880974495676175856025774096448707993182569399547756826253487787273769390962680111547027537833432272468897519775236044991926196681243301857270072486264299386490185635604154791270141267290683415826311331511210217523728599061708952683343655512872913019291646414626736479545849616198224762843268880927519432763307141864078855587068760313496478946380125657223296532820083098979337321795708887323118824309040519822732403131617157126817076610334260437975344436486064908822463193398056220181955685147250925282372983343889779171950923156354081848468440289654976595271903115963859792346353040530546845393428020216608226739536604040791108862447587398855332491326707386026322697713527617246017589228811209672556425758965421539246188785782335008683364738394701554710456617404179758087178742444568089714165103337629644446494367451714536501673207374534132161618046447104153751455226786558929886563997587314972762065137273799040888986814336389563931565504125189813695325568185323153027014921701613702331799219989040710356004558888609209996441997520688786683185628390323031933168343499707098618517649227703417789722013854036906281011464486390628884879776875864317624784462762377055560119058334913186659647140529595034676150162186415011842820246165082102341691225055348903480203078704853887119656882615728507225997089933721605848803550311550469814119076111693180224475494864960045935553815341165210813186210604458947016282496904369703115824705501926014211063822301552979296441850036021386603824970876716842987957927997621698977162358449845424525149909320581512704154628787969660775118499061288406011794157471621087526318985481908900007954914736564168222365243656015801598061063244049228354599117217440882547078172310110682876598725367733749203304545324315699190879630769723545263368495674618735554716985458424935684646259693110166884208992064509867269571727663162467500043135156359696206439726071361781995326546147943746732837786519982075358890547228420144394594829341522298724672631301973356192840860898357144533463135344159586342432939454350798281715064755125965309724269095766371935803998659509535656171324328325269516814203318964083362730776596897685196615639764478244325349690974434050316528592634087511495685394839830008954951051773225521997417632360115815613022427077932419435342210942263251021448019386942818963550413731134106222265472149816186382951357385098121018996532051905595580236271146910910616782787450427426401609729447583243943288014315799965185271133298487185321818595894061872569551849270219620768882579992532940422840289359813291775901315285373265518486296508466627575281640148943738312563543581591831700012695188292875248839594084820346493735788388705729743757361854559292228040092481074627333208527087811782506450611639264607132834504922304435362719853078438687303480849489039017558972931083832883554881800377957934486527660649470540741730588421560911991234239450173662403666306361453096442185231000787038630841223151623669585537011793526376196185444394197263686314814561498415177981658003266659204382152356414233929274574810503010199170546931162885210032133077529538736931611152011594296916177439550187514011987936564832198801322022621327870783691544140337293262647647383941987198037554413904617934580482397330692071545501757623898308326795015307837948859297860756891440542052960262521762467077515056984781277258337099245494104474117865383538578549580025925532223393043366123763798014575240551733957632284871234876775469212709311039474161775447471028412430386309697003649646742639082164639311390499028567535491203707481837151197604455379138425303829663653614133831367073960453868654553093639788771358869316211847029817423398584405724536882771929526270757360251663289003620222313379508877172618099799018309906606123051071432990306657766667906713979872166161270653004473739955350653972134564951574264076451726923305462365524663293217290562005321341803687934170748965275839065585024989213805192626649127833258497853348748945746963189698315698849271293309987951912714647221168008966488580533205023620488161581800617927244653973238621727352211483272694125560524272518702812875621121506689635038322623147803057190592257948053807735876290854804793488922273531058488333241965041819748020898004325118932632160340927983546162304106504953148362816912046818897939281762976161384385971828323545298093555402114027303222071256180876411686536180887223991559614688393099511124682769765726412743515293370709127343931286876983867378136722246989092605112474030783448250089907280999646301693516325218947201319008490737641574263571731614831993854234105665952823432340661408118464392064283768697582727263230944838922166567596869977553016307549795174238098944902791782282424598927434673664214536555860818035491535337358630231537587350589554328409566754619371717374139871397588584193758006401522539534574106541679765126709560060793310825748283915132212336365039860430944566865997310683371619986182189158427576698513472018485211803748096918805417626872994176896603456167348593136519869376819750011025897664184062502231472976627421453330941530699729497444918194203402076380937852312066823842988513447461105815862248238405400541800914166572685879076369946147130236664989940001112514588570715200974590842549080043992665341817121257636247965838337947274600681751190046470980920226682505349849504668825526662290117067736656733245367244380329692921678574817461956827222242903648798894994920135892979524233842249490721397654840449061591413272071144156899577756693939303682639966088706408155860047406759358160105609681287257107526746632265664814877021515444734353544796237962057286999820749678825054166374886270932605550326798848638403206033969430478306382361441269580630397556657791971006804418168652455649006630871896311958233192416578696269965479314441224315577939901107043451946930689089696923342258575418623741331746194076794195765345480112295413667339002244181136367404777083242493754087835767152777684866581163734959621795853444447798435068701996729903859294001653732233729521673175096278421521779942596938037203946869481054580129139520543831547230716089952066783840550305873295854176253337370176437561890808108987594278528352975819348113024454125070867570970909074135557355844922117925925270045891574160277343340441362332837309427029707087629797717270523547681623663951288282806630484311959736968042885302416762436963615523595257284843982978023168205594482894955688537871765935994828711919497085345649564538016929256864998049470642873077821317332392598552583351678321502694220574866577574524114463115063180773290791400190049151382263201916391709218427609151673778192438874333397877938033140310658205409233689606696376941814724206117381348938204214787935733896102823880810167999431856704099394834749860303034753254609941425473978122688029678080293798665512398091991824286819761894534167498669435479529193293915643341346173233410596759409730229049421351873246800142646094800290217261178676865150764277567594831235316528056233255187389764329444132375832926580605596395190858739076140558878979063574369675459793167399724261264860250134473413951164379656419234929132219740613748020128114005590737248765488869634173714227612283502544087675289880775878470936055042563505472722394224025277434985852023025010168933847528440006855513292097517085247170936001792969725203875667601924027232273208803021698929515312790687537890066637678392355211184003464304385844498258492757934693309006051785166110400362440100661612398360073496091048956729267154731249493878674943366293821602988395541278091601854502739031427664003612481783541599077930074183081095602493955400141532336043047454250743114825000975831264760315505006104278235756805847140123891742162456541921595073165359273661755311955523298847523626117640493112340147719335603560139321795733464110826053285479145736324059007605671420266238255865205478386872514438228849714102405334351256860688504307588042881324686617243929793638001326381487087914586307740275587927852456313223716995640851093186131901768897915194896072542756079298936450373540227143238671270335783747762999773318850725227216900422225898885841532109263023686677975728175553744549942323727519232340948954846587157449094760800992621515404979121754453123957340687812557603176993831950598729938258885595388452736768861232995359218159246656337874881725160080684858202678905027871549735795598407285087478636484986666820406892532317020757197147950847666682382031811843730373528848311993624049760351344453864417507927816905492722857668865665759483050191316887499101827826589910557517702077870145681009450013388729515488731452030793819575748460578688142391774051523235047009582860473393698367484780353717705913690510236678410186701871507361422066055335981543962204563955580202526935881546099439700895133143605692108708081183026021109656973139035878721484599669576352289075418805370197715476475580041656030401269327277378561201350083736650772160928201400634997813538063506627030403482808754465452927425288327998821609874526942480201046020219244341234268914772455141368728077258009833837608119811247667732081334713418786608204889425871378756893471252310805469397634081955929818869159209216340787624953267757145628690639698874854293112381599518625398753944772026699170830882954213894440775121832764384183995109656787743114433693535879471674440835636158605831491452648466351932438445390565975715286624618414940929583100730862684929489881486424270610375043186193328041664862734857820133590519403051247520653557513504232077173124493550970894877327100221315222664845524270975127581500958382496647101377439368285911366460039171856371876322306475879422300088517284122249208495918894066048295762891709688819130009655546143822363029264128072712655259436583079475171232590901249035212912914085136786120085185990061427369424883165323183908431753363554945480851886133640192874051462544619822739452434633866126351865065351254420051378671641255314675051363711725009503212829944878680654992374146531956102414872953716897971489076784159820489295844727152974657282594776950349616970455730431894226688902936599587929962741381901437095677469047955293109815036307439692036147634045852468668998565169682279176603600240770087796038563596154018607337586746275567847149047013946773929313628239783550314364573064085293414868111700404417533917384999009128303834248177062079467618359051635596256362121498087184693831751071532946761105468999424892613380106501064659258334660110475930110359007082703728010063408760424047719803754771203245363962315816179668509593868336995302203781398873153809034140764518140321248099987602612303907184889239722810421778128344557593851191635928647017757917316630227642492157923081199257247943985418078949025109258330156729858170666784591067940073563151279468443708906467665092051893082959967302655935471583743477519823606863368375873778996035715497630908913492227282207269434240235559841020299355568969918308828155304985272485820032516112257247106630044553347600419615922306487692566914581799920574790267940696950410631676322198262506989950391193887229451328212344976212768111983707129516036519063540462426289799104676348302575312012001386114818822645059110109011829524171059346937100282595891642778284898999792334915331094502543296297248545612471863434206389679155086198815854680924114865391616048631282609308803355972080733840589030677408329049795127771751614436224977119455363718484739548143102841846105293934627701340922141578746251970155569812479984871099049381343887718695549948312513240806203559114750803445764532920238489192823125320049482607954717120126106490375356667913780838781021486567831490866489549675142697989447095494725746268682027202381421979368066263185256564307052541301840588934313769975270358408879295809925967986634416117298946628700607788034818626865250418671795339914115265239222795332994314621022569589473968857743841076345832811855108405520181550888865969141625232082448071110645470567609678651750751227714882000479818093090768187830081206243059396201033685199049175278934728585864854730224521490797129576920541343282584148609832040078938361708988071019352761966911399647508945566651585919656262443571477927435398372296736921220018547868401314967006290685950846485800592856452558343526051536454047406029009566594426628748399370701466272678588506544974121022562999468032633229723431795489556027171485646989672924129215035564109037418544147644175926251218477065960986211173865427219147003871471318204022612252218418316933784729541718266013521899517660012944703298080261870761564470105649089492124770972507545545151924830506071322993418603829968182544145172665192079181460379328448322128152555830496181230163761491325214913709851392738809425167421544040969565556110333539045694457247474645834123230017530842325383650122226712685886326422930875580485309909596128065862407018515715804704503134779705978016193177010924425901803689934089001726468274992425460833925988937662615915269137586125329637802250386373108690537014176692202193234192972911744183131909898386606297930626394391953522991489149398092623903112007777422445780076282181699064232710518763337098120133323651594860444035307497941818023048959899252287940806377394544075768379868159052061544990138920944609165572173860184614484461743033806169055729661332147686962632138217502773203605298967814642500965291609238049241130467993303621568697174274342656287735576318060331069319786555510537769788911991104724695891535998775084948969395407190785470469246004570419287864958652160571072737593879004824491825092567549128478246995961323021619185602242314111748946053710847877671639265888127003347279025815533042100303437161235039763501939390902931264088835335158553222157058147801972514239707709252917080340186241386042013534288796198556395252261689361187849481677961442980270790684754439314491119017676467174433936775176441591644894539267688447626104076886800175357677800897445532763646328058973330983540459198440042773552612487297329302477159277526469974466238015966178318134097379614121271390088551771565373650251865712554706472828679726788210187732182843004401190834582466495645476046237640341859579625209870848191595683097341184118985600925530151792070193247824772291355987542973278687704227411290624582232173833015254587049866282645050514849321223034976366927396012688080497630799622914886512405375758564224476222297509754020230508275740556291468653012330865797771781122215983230449483861400652018882993628040996960478790508670940812684904371898570062339969711207108349249495917682372888774894338783317752697163943121820884292084792177326331527858325282854740025840947411288676461079741147536263386815033637402744837470821586015046852734727688992849864703233077374260130019655924892703915913840548484807482980376453795875511774448549344642400741811725965498596388309753790498506405297687137617092723379667842162678930998847786093229941709725958732680115186737042676788430216483962793840306401634567704257963885072259845842161476143532923794054641728838686536990927986054059437052999429269802276660052902902744118052425360114975178349775295714688594960027667289279747249974857278262119887113501091493573324416821559631543354603622678790117560485111411099375372630928168186370861212984355709211616762089113976265351936049188174966611926719481799397275136677228256559721369851648955662548792663552201222307022765576316471440773469750037255328720834822594745624054211616863922548762779301293458204092188612292152018809795444603619910066977578374896662647019465173670681576487168293201774037608037121950905005165375193744888028840355794421641962328887808037575703807666118005544253698351276406776414229649332102994342377412571879872412331084147192171069715464544340759962993351931078498185784978811343213957313894665976735446038693354034697911809738686887104104399326016012483466050815366973436687539568899191321759772114551905301223017904043272824291729828027092834870447715632749157319733610253683186953974055006646277976393981103166861775758368783213612384393436565595302279894306252813097977401532425602951899251734210215178278659096994261508080179956527677354489820806169173359666087342027108222996975608658023784503821030073395764872358881898928655894007285485145225780373896314348306817421758064547788870482749414896686841275018734123298054785462280501287106355924060523858616001090745750527440600775399456932423520110539163576268480366936005961592379019662501534863154823251025269964192227829877317837357088789027657731021869243249846193029569096343475810313996420741274191446029960013522257182505655834421000911210550162505820101939974241814912077478962563814173126920958562507304445763136922987301415715913696854250610539558828026181624636808663124998622217804127367392224114476129287028945226198549400253314255242951340534709099869316667513315464676194391422130073881240712324486787721869418869265637589856884397982684777854132992554356511582676000978516572669163805115061632668882532250834700873998227908144809209866613532222019171758574517569099117548471254798066285871920148629387252576230662953435147929905642916344401765272843523435168853351103837774274826119734661850964961660740779381427743164697019074899801579336795204393331403930024649990341058599262526470090167105417615479020414314206738067921198233007124098480393217278441984158762758005471928612404037175668459932886108402262514094830414436481406905657401073099534679577145396363270212031747259406229997544621087314884314368279941589942472363303077340308786731706040085199667254925605633593692757168363708755912448706680692451341729370059201216826766461390141824459664573619046396832627515754495978175924665550742553149462170198488490498532437139799810851403642772707442919377902279279506768850737645808685249897111737228301335242397152558277076429260384826663827433335804296751859207275944066493438140012188988647720209559324523186012254855124532327513473889312703326228458350501984280213941766639568075096416490979012772113298253505698768799663729715651292588823301241718317763904597955498209252251333357053150012492625728993733059116317712625225719082897490554712099963119584047728089520241907780689625754872018282196806290827045644031898033895987014782428740154930557759025791485391632882983387139445589840627114136636572965549207832064297615491472021665091349456557390949971009987033984030986667664783080046099286190170574168217303382465201072833949720876809400380932132175512368640990833031620237095432100909999230403677715638467996194581318254991693557805257559129967200372227031493878982142895059088876635188971721587333168360464043505572881681634161974169405524604372732216047466811194246862861655424955853731528288177663607914306302658486459270793872152735169551695598861083520450526497355399468453398743957217083591259671023596536778134337637293912833299708611771291128606028157917809455519434859341807677805066435205853648607867868273244530760941306304233222491964807223413953184009004176988815790571913328201836951875037374625291233532347393302058895800128520590853740483004313699950901269085304128552488590587440696898156491450148467364708570781110309817660962120884547932669541511035387642072121737480385139948876844153406797485172396493171028777210879492017780514225802458827827590309534235963070859525849832170658652752300050061149626155637169015944987529704046446600439073525839428280335937004937843753181355973312148035991492448749498626254147851958402136311979901153306559925296092794764232554019762932768881772000552873522329734042033513700792383549295248369331477176959435419049809821010897640590486303366126852161030949367988035954728176487535810445510622639756978285997041313240727473033363344313155438006048707639117304291436811341430935361802936950916901100843497835423560843073454962183570526581677504358479245183485244462065575573431780741954292148159722611170614335694904838210081232630442881937727560020657678660151327962992061686643580408612908912280326111787785240476398124189822641374865627782443168059590464011709905634868684082333704510464735461430566523020641049089168391099650387949724816776591195939690570029061960747021578052362165750065609068209637649740447491564606384245963034812642253643606528378592309389869136579348963031087041033884527583257910046097651056112740301510649494566961846316378863053624974536446172468007434523892762208962323009671280631933502832055792506565720616029187816313303810375525184574064758780896843587370647091712331600712361387300479958383896753646771700291203043027029936870212088946162301809609255367427041293752340972322280630731262768332538521716007395909189470033736881980789951578629698966233267536994995715374188839836889747042410189094797530282166602248725453860849539140328126245393380579409234327749671184395638110889615121036709028185745910244026711200666149150477895283732797972152304746862161453057774072356405524789093683912306446206545614705281621847172790832671552685656891127539797940705559825425753094469305333518827361308783882058902911241843895298456205167949724193232723364445415805453825328399684498031411011385502121321755006356653313489112731462878411300159060988182093489220493550807949665218780317402309974236265880403996335717778602039456650871776320078771789318909720682934262393162215002622402017611097693532938852039826842777612099765878928488313533552354000918830833433032585014711775169819982654047084242002839325524205939186012050149759848033726956438808003156314427852065583573926602790728509501992861016783351711945615796802546572523626200101372044143195791064009223263046863833863007739828312441403738878136042340548893648625254116373973684368541677394736116472938854903192045187026277242355226916869497346980648721714599980498644586750001862434765093698514873189689944528690161886207300539490103411385450579305123593862824060263564420624471684531472579862050975276007443438483339510865933633539451921009178254985709986870154156771536929949662845000875206254048465506801852520261285916847544543398028079457214098692734426369392414632848911437337857806133137670693167653656044033706956545559335057673722813173470608648209136301598452146919398758867381665911954987262435535833989098347061379836674679805600777195391487126507113536625852168077963668576869864208416467680697668847293485603145242858584342029456156671500018059268582686375936285087789154698137318703376255813706161991252411504799077703920241290769386075149903804089810622850678681433453892745047660630434128465076234319053605365100992984255038860737923401217541066337234376464953779644474576105037163856742332427354309137578711549187820160853687834326705857885917901419769727902655259846915035885671077346179316127917898035264890610502296134448177478702379869362879964790178153834203465233042909280315753842901265692194708255375512727307302295361167634657700823419319569328724456327157271755258778335002570872804392085776563078925439129981059188015996865904504271101208193877705180657143097532792715076620511776566272836594533184658342040478914067680730135976926569978269260189820634524583547350518363993818253412369891079247280246117937132825248942380434693595734072211984732601108343536866184125420140435610320109317628997596068099521803755919942226893060787592611020702426442922061345588681362546844632961343729125983155134640232705642805563878401008807116288120477233589249737823905897243343748054109112299104083193239721071109955225399697945419550932078195213600322047133685194170304808191463662172769735759797384375864545417510190616919874889578399282170568428924454288621677933656949319695986186231491667360006678913244794253916932550468038780491480340109782270005486386980054392836088043177521437722550573426891945024163038314820062728061596588376025773590261655884087945343542962192150191404309783277615182295305157785903356135671616151597537353973068931450302171301234019889023288317541556872999999606518146119530588639009161115167416132147503690834301663657555354136882702612395126107864321052254596851819896017664420934834079981434516852509294195903022663061119685696740977864984026271400277137783949989798783988952956283499797749161035063595703898188357943186870495097582792739924019972631779325749764547062160796965151070429856582605188428616285738741004859590243447973809736762788126634076871151451598281498021480059899653415867728535824540211895664992120360804073835564011955557890453379595279027871049569162843943401399054024741200413215748624217106190142302688075491212697373337086458603332208989983848961471237707937239688040060375809855236401980921479389802668411581118218361397564859369412732772932536321971428241716283194439257928975279264744073762752948599277290436477929297835642503914178527895666028846842881076347412356733125384409351800564501264669743598956487675103781175975313563529856697323944990022019376849444400955868522603922391408081400422943146956967739046782608369190162712648497813028514056115440216382278869046903154462313049252281201375521617394690891931147671251532268259340562112957422896080313497964697919172235103929380693809803583873945057797840322922852151340018419523658631310053433543077896051897616059719361839377421128298105198303872015589443331478973827950559048585159337394550941508686666569993176265531320981951211964678635998920812972434988786477823907785345475108129422500502155454462708033185113223427762742437436874044734617289142679631279079204247494680060615585119514149752566819090679317288228360588669493692789598757254470252922193189210263222847385433837870330963398492278073911906124832082542007763860117343144235475864891442836189395910911516418238075424915892698177779633954065658801791725898637763594360771650945099630985858291192482143405905278059329981738381299442252930880429978420823262865564770802833891802792642515618120148483652319154497079312849976496026427652092903759511780828977389757851968909246675169319797879394414456474575502678201119986094337590700255032915939058828371398817742156547312668415266746742777490930156598263409570009810877499534975837688326097315431749828128140135524086543445301134287223545796504376914323574979992475450365395183551749802120004811746511235186188610545320136387888327812561248787334518370482142458863211577862362903840524821200045642777098551505078524152595878611064943380192371908919416978612659166471948353943239697493250541817207440572686927145967888256548625546311397296373345217999425431854283321057812612565837580727585155350909527148367462482379790506501995196193029176623648482137441713154101148606038732153421030916607859564169319200979242917272093292148415055766808397639098334498395587935024482049942913365588447807638256197918681623942678093503700267683942485480029479272651598064601969033528202330850204296955661543744466536780041934323088573637724100633708107272932946261432174184412593059007713433929025180759852642398422924887971484166333358901119874072585834233563350712964981982550153983266126807890354178163155867852534234171865957244244237097932018673003774739060767974260675196366838098507453103066419269196315426602114800443352230929042124772917933362261824886520735524997618941519891850508186387771758242772932318173574564441264351240411112779707331835350134780033954977018304529682075066124981741471157095498545015930331244314056734459470457008876559474556657243243306605683850775873387757640051285113249929925773060076036808929401993927106365324314852524521911273564554652395241951850663344987963547742744148224344076959321941252406010197004147043126724787029039297915594711982992971264522951977731955898840444110091174872528568364231833131155590999589327675096687295740843237819676538843573370085399159219067972035027929414154658542263660314260382803890104401378446590329552022461072764933451373109283870218109456220889005329506117697906213747717793224187146090810747222082107741404651658955762105870274584107517326627756976230777187427830519248873133340071282355259339276176983789383197931593819435834449059941045897273707056427571303168674247303063791447227943323621070044875095344270331227723043646797923941021938276947074322487833656552603710986196699989418861787539990543259255769787023562952548838180110277977035286151670018216019086802780960827493213630567359604094124180559801674329380566556390630487221659204870596960712780302842134690193930048089357783753189582345022406323898942662851660431398769169745401554141145164159711687667992441910978516973349423965206440881809314577291386435544398590669380125200423245943668490151430791342378410919739004521728335026435197065922989250252449893386545033690848821960694701568394432995044267511051587606317518901780217528816366288370464361460469988472945458564284734635331847984062838335248488134397562206076518612089095147882902397802669982191232605455568392950574775256379622236462005122561359442951736582700022035083745274215580075042774412504934780039180553003051871100466297372904839167046662957062807994503159488750916439790117261176768705001057250827537219356965158539299487860874609603232213846251029643159224790415988421241785090842786655562916562114413825629774696696025136437693064781345217297642395688693766489664331431944863161288554432923855641902030821126422141160741744262040314498359830831064425785454966073414135953496262780996450661789762774382774437252972696114249105078810927933828385464671491801904941296825392505680512174236129400304400765907610785539432559690574538552929466159139029515674276398192740699845839189098660045942833890096164200620114508037171880268870656041617743276698683730797811902495993843495864641782473760850651757252859697117616223700349895740377222279719516283185568310840345348541408910879054423650229491795048360231714954014753047675989633715044935853589281401248577730349308013416148212344328095834649217798280749999243346135476094909395979271223176398273372758980899393472805174691614743669949515529879970176270417166732165093763484756099957934808020556628129884223912502991141086809857271000677309419231037436835338631961474447981449531586769495826854187334816628898260881056569602514115016243350027584148202157002629256913467700868923947832182479081824613214186064366026795457864010009388027304093265001315234520275940114708389731444682340397777293456191980064360524350972374505620022079797787142297440261695893231736033482214159821049905989770619195415812115872197999120573493692815451217153165434283021105177051422719921820609774965804119704915576924042023521426259268809924060440859097586918005303569074523740123663787577415962136339782083110454360257261297799996044249250170503156693376092206595791187260433618472758282780552370566717007577987008157599012991437608415240837011475722650181586841138518688304715860295818437097340368964466468621454407771832556038940739745570009371506365873564582645606601330814138970908152739766192602950167957717677566112633085153791003223884787468647025392912097891361157755849883139343201982425444442379278100032639964471804802423512359262035331763891796126796922530292650108980953115128967497630804174155293853092098706523000584200122528132427171945515892541504135359252386053818108604327811646022850513057830259631463244345759563519880443579163066180335962386964690163717827699141309629441073031885967860608140552794998495301980726356653117501150341653615481744877688481880288426919001917525429676435655826693820962508194897178588753748890246561663765607275328012613719084131020841933047157118818576417032443089141248957831606094924021285851261685469670159645109657943496039681549338776567336890494156027990885877554977803367369559329249556135823830550075693152273501072423510648918923629813358441507088028140399551904478241411468615331524980286400521857784078733617570568785962016505110513440793392491781827700285409728565863972308449584938344716927983312310370615271654943038649229101676076551949502486580680144773136935149240894808674861805992898078636922829432980075370910252419330423792538770959478903254259655886502125585869933508650137249408765373812476159925788324619084507530452800585007353828168844077021298440201040220781152342037688669772282000683789403438166859514316787868237437212896691060282914903378153924133736397035504660743111030831213498950491709300176397199549060534308056880291013650174992769496826086286549253333986575579866144250143283905467335034284667924626277229950709499716379416369238706859896096489545951671329879458895190288704764905103251559602452390596718937453897751786431560151133922990804268410851775817672407640460689693076645039380992622363835792080153977214230198127511320856986814754689395343978782161740070703947145714859814805338127261924899278905925243812011089311022173218895212736762135078941989560097504911697054961907280854914782922430486072658905685642406272212441912667629871373311327147974492934874359204894642919257209126834811361359023763181539728167857142916699398388530226996143762885000226533280189692786582834279922238874244797736581464323272300297148672908106779874454177884564622270962083405123255121928919697282182659022779939180732074587621502501134344249778059684586407557454354866341041942969105970787738952567392725598582191884888065658541731778837946191758729360244186156205509680770434444492564293260935001148456393166249122752630321084984915307247187116063607235497430626703484419117718843931330474317311106933374551134483372694746650317203714128473699329713251537809341060934666262951089393111450993762233238946460460286045371186214018123360984608405428534751975912229831040317689520821798093439918839696052544645406889189556369657443108629235940497041784002397654258100946065241736054855382871896433667797206430508820535872998969049593230541262249849853654027177508815365363763696471943291658599967835830177686647775649516178751508659101505992964904861612081671835660468277050904444519400860905602432371401185456780869467594190759775901725654717147631261481541144658754327968068154062523383896064873747881900980497685714994834488955590152313567127763503762437589265411699712854924263615304764440963943123524475640838675377031947528030747103464336490790699689782283882708931053319140630939655919055811128038596326918530939892946058753223993913480874216648648056576288254651991523516840015114802694948990468575888985984484601233277813964470776160691685355892912766617061494737238399405650614460905760534679536277104189212582012362351852743501149631632612507674139960503151625420669873220192356787974294446267333765796970370459503725175255129946826730362766455896949752846721964293351346095829176635481897097150056881802997905589941055032897133637240516802330843646296492037321604504787048394842358372648325655841036375612504125168975612472034850337903392326055435505288450909656952702921963119875372839514133912712354451135732976943052206535704232317798375224346177173135270446899699331469781774388283303412821450148915738355622779220695605568181621846195548435561825280123716965157492992615454006516416156562422981591124844984845346293615876068175999014774086171607369151110004102015004563661803247595130451061699837405442401234650964032271805307237688097884293863474160829751396812101918167956955580336607592290532996379363654740614882050353313888675949842856299715803561060451395478426895352624754637856612800585973173997041137872927671001049807060142472658162818481205595139959779084034602225010917643909281063087005643686310668024910156805825666443309484114270609012925082728795338758530132171154730804013425820541205546267254034925960999964968971522125287515093061902850425374863295569362911317612023449430954188714466755954137862678213466811493160649695546014441969868870332892380263340386875259789148734435331665862269031388443809780412745801834270973235936750452903276176924241003091074272757287778006433938937946146518792385115942174969626441624577801218234331840024482617273929851074910852265617620465309471398297889959359082871494334246347493673188838402841306619141845668913341539717009433076988231604487385860602642121777349814918804565388918938100990342776163673411915422182294912883006045106322708558046654690212303802461314415248799537520879011788938075440498767263907497969496050842367242816600686005041772870363236433982384448347823606222447928617739627892300771495084302401757323861255180933169272988197889461803590550032481877036447883128678502623470450030381812043885508162962687555382507393494069918517678572057804652707598703194201041221988359507393227748027288409921570637985035548642325475902650634579139938456228945433132496046968711171653247828184206733619524674855573926680506396760480189616186502820447592478398782481297337512590540406325570660463629901138555458251158012094366554922889849711203292857220804150192588151731126819080204076761922958806498238678317273674572800094115110911518870345529655698081064727371853736354284898182897843450660414447519293105343975628109079613264045238388768232172095326665227455356548567035557330185742344597173380333399536848594795869101337031479889879769592834463678762530951511478427620955060451932313089980756569557729996443545201766713055427937906082590759977450185055258420834782401688648602478496187498595559896120477314183356399353517510919189342632402175494936241201194675771769569842353642927791881259542312491458994231008642918545444462880397266464035656040005524527707069625713702740116169330522836584763916040937803122377951348567478218611365619575704065210481064746868062120441420920871980652047888817570360685339683580997395385215549435920679889462961092586421026761455843133374384944743810176775050153246447020763396960175043638336405767525369816728583450244553091788344448809017312566220891278033705728918176132707834626185196662922120513985684475530336461992968202521984339010906739974144860915913532053208718515424922172057890144995360549370622052708541973398408084937860304818764665143426172317396479454078135798833275138314500015852262175861682587303643163197586811741788619398078994726374682269897867847178698810276444289183848196562049881675292453469534632895787334679752393923157458011846881339579594918647343398025909504112936531331929139650965124476637850684890943249924035185107316265024586167055975124077924598417394945524246970439167007343341039840938255448672144686734089466903213772232012283701806538393451977927697858831370169208613431045527298553941578725520365419466716297860181660559207874806824418171386320479199722135359318735450130950609701699295315526659337136688014451874294083705521960550348197903318753742745594175296535911924939275484370024119880594043092642905172007429881747519771464866749858605665671764019232873853301827495805117466742670636145803179443733630522468860328570122002771264843000782954885173298243986239786368111027483951304136270830852964865849056950995437338973660523906688318968263489539847577687037332677368501745293113772356403136550946484194441062110737222602564573719752590865606987703697255785982635998524267642464519367267493564358431623843648633809628835440873020120309111043775284170657079404368806182577309733665285169860530882441712361563570050201706085562679501867714736498075173699350707512502263641020258162814679634590483611362787859202362512265600928515741662796027869827323477130483716094471951728724136158841628214528694988274336640413567323213358327840332709414022720824199437047511288841283278597138290122429918391379706320512989790290392524099891721599122545971185162295331388980479538329970124388370009878402402615673435885398273273771983454421583326869802871311912927400739272169670658097789039908871785279062873824343359861433802306481840260835812364220085050216389903635992551385080153556341098087408873562532700980165442041770838206682640963610534594818423572328674161591402022666130711620479198658777673290468798398380357898354702666655206995686770176759463314325454422961416128150743816271106444425877872125960424620189221344114032203277243802506108478282486759050156737913984218635836107112332388190431804726476995375938342323238609726562877201103685518522996537188224055533727140275805459604296966944153580409607028296931578628495607011053044700803912106670357932868263646867331806677151065829158560207312945296473808786222002933884372525410196532959093986414822513533564115938655316943794816244748765951258387224361053490554864726436903153504718057006308887940278401757081036872415887186010198913999387971440483539631462099888636065053186376647400003130381190971582531705359582290035973351379975646905031871059490568954986823171975546219294598138090993471981405437932305959764213579666477354489296386796888603642456313803692959837629085827264356310093569844661585914359335839375075783562465140047548202686155402378190332757440942338596540112761065016748319002925022567746628666026994104077489390991213108597557942986333252238180978059389834675606804655389929745550091340809416113853782803857869332548757687017243765228704628018272446824643862596687641526314822747203539440994213462976487486472263730139013375848501894747113522891552840433914395723489862553410876046220092181780548336104353931939702712313950633549900144519688592806297310013243270044395818634730409910687334638713574730641278538805878969859895041689205283925930463576599573152480059401556428710216367358922378596652025701344711715619703130935463721764515392680595746527710385329656299164751346776294566635613084403031321867905979303799256425006877727345764320968007567774765799682635194804043292818504390913511980142922156254079314444957112323940235426364963650951321609547241477084384882834326276028913228151216714226618145615224935848873326453585741834496701556762351531544973842354316816356308160658299865629281826528577530109187409736196509764178673582542327961770718935797459159562068472785287170435617445156264802342775954537283157285873014743923652517987920470459754189060740521748279615531141848576998295353253219830472143513753032380053628435632596098198389300772531179567579508356361426645702132087022671960111862318961971041673776438464529810972291469652944168965197591824929344649334577558561610112024580283081484589665258064373163727190136211625680961502262349208257753006789085298332632839503187837817914764929530158257116430218759342582136463521979617598244565496453576466582709401647823587345277621148287996067637839476171943545114865034386036040101810988672003061627497958884510238290985586886083996123994845058086696457314315919345371836735938518984948155060751117803437885248123570666213914045607936850810355852917448620745691347198058907510533426876242254070784328455594635026952737072369813968492307738862482968619153917295113531810845120734378079000035442820120421371548075371529454641283542764692804842182897851705297492995331492906320672585619995343984393235889742202544693401572383234460371016311716360229541852152622802092238122499973870149845905500979541965172959656090983907976027294132339816731405557922721336042960785036488495737489875977641248050404090825324173612801749331921348246410243914894468810862500543383887830303648004324058813648859767098836749197369709680665650173170970398849027147315178299815029274676779018712414834350132836792647968311584604663684277856002525562848940097071329692799710101469669241749076757965819430482998407674687627182030983747443739196564816722948893775631553714298019334801225834440846557245338528839473532512295041990391595467184962582511180551309464413486646106099496887809510845133750528861088270054453307382700846452822508235050164520407056615124043525759846627640060624336884670500784836622340130335271468398084893644799980566702399013236433366161451546922841651828203132133208476533240254263576838856300499889713657576603571181103527219413040570764028110202650172921960839464590894860152403082222193939163236087499074960861963122914733635867631416268308919535391960907170218353739413170303688782814166932789157860420202564160524956206984794147552527768862251149255634932574784754503919819100891791078117355699732656508684131130664619554723102213151405255823542424783884874043137737175578540428640630837226303507732731738068500873590522115759693136947710292561049200596376615802955535022386918213137725179188951659269562186520532413526831648710100465063839911027069518639908370159748481295613678572294251232781698341587196266139009342280511333954414386661575750436986215899254753868318159793057187171950285807017108274280859193314749205456370530126793349399784100841173613519875207257701628168518969851717832551432848713595236023696817484502495857244566404954235457782240702686344690900529453537291659605778438590670738889156930062158547088500227135113383925219053652477735887198531522420744699877773532840946706006489411348994510481136792741433978025029381907955811352578577295489007095269028862356869215715632921630166197470621488130733073403376239884273033988688731674720247651634288370577070726291181276654520088951414353752363942654831853981591955852925245668987332559949240860660248399667587561824425463945967369837436595650988318736410676617134279380253034577556556148703791369618289097725759808913127460880475235423090386214148628527693382663408004793887010372934522543969670545288307169287133548979266597468601099858422624103930421364004289429948051517234974342255032017222275041057242412137359203244840049275059594575317759404889776816011542729216231983893488895360659716485175158504582304273565024436784609627716343557984533093015469638749453300824198808186419563761119802709551716298775677141180964530383132241731234813924045904760681401159188817430945253874901113690527507839686347981784240529580590760035551980223247994818651276024889502987020671659749158035240523623333330134654886047221771056069165869160572160314206864818330336347450474396206752493533340828554827323433565020217819898770211105016248724600758386666165458060716505122675160124224881516089685208012398723829649722107823603987102880585270051938002597769715945368616842147519991253295111938608441082951726152910340192716232313439769518597783911079185905100441651582435009267906045930655203020932477115610319550875120729533121219979940792365041116978508852897079964547941431402314971516958002648342442199497919317746963379667210531894348151011156062543275212525297735832078220429734565462197693307964230795332454196450714696172300067762453616897352531805298717087046878986027118480045753831353419500139048537272983423316058265683434749619367142394397428309660422048356955512932486207649524130805966311285490449114693276658913062617601645309802819133735194804941624303226140514474512114924271249107246407385129162613119330210575964945820384324320864012540701214993871077851132587880204845583553613174807897914182135316295711703531607182309540217169248221532379414577057792689593692709747998635572135860424233818252295596592932655187266513062727226858648989330521327660554902157179475790423265853623139800207233784545812689738689381625065809510899515296616128444959933855153884079968338752464130081400175597185457638690484421584532310557652847946382851777169018971560264710021925785422526181211834375390725174591502508607944486551391550399783336289617371029604891327168872552352349558941591970009530596417630851811681933076799358687389412425464897312492780919163563348198348804117057330824918127969969618691571315459801669025940579564426766102418160605270304821317724275584414465578458524547432712058947149406825594011504215338687468420802818410656765485563392325758320290769153317617859480189726178873631818058609551973232605328055134869140681441225769527710534360231923580258037872637329870491254506634121759201571301860471704533537494130587673847184190917347689240874177652688465152921684449650206451451452864401619195008849197099732067521190524447350784031574408542639096252300565356419146643745337358380871877009030648783702374274318058843769564482920232307669497915048309811987212261074751220255279081015553271442230489697113035097659098781627182666085268949307728992982610213944702899724109991270933395895411368064813728097817186408804608365480654904762615670662018092410192601238666152568661888806449502979712938424765935988180985958095384972412278961775023299489501187792211685452450360044193445557511055913801148358563110522065132186948722530780284030690143697602610822711214239497103659203611911870784403884617192020333009481538050499628449264265887853624726483956999131750881741346790116985161028470505833347250154779681547563603443554649807893814001112710374184411656306970764016067249503496198150194274931901101380081678000850252874056654773298018128330549132872286879038882747705354272549843064800594673404948295950452647516180530434931408171883601753930542096375149631672585055655992534497658116514425820404485939509619978009531799860589295588197517417462713353146945774412094503801022391175147782635061104683744386946376796364559921004226661857395106433978702992099808063876049480738827095570206128288434559047628468294798372483660117727503025325539145403258135765527705289564858802176366181789792235221301125220229710316979898594015268538898079172926134211995212574769834270400418743670069100715077711356989043208562327287401753707295361054692873310214597322154734209434458050708579628410340817461237855950939937910033763582310748826550489516447931590774492998775434921318563988447623989302723445893151683742454963418553158991960628973149725091050079807273430682346389957886163143916475983109515694813968021665512212296949884154992208407474397740555685724016362089243542454842560042810432945783222235372063639561049850138833714470653528564938907276968613878482754964024448291013110889256063320349326477364939672271867371584083213419129025449222244389611894226967505763128884182874266430354306459165640708962555664952366188878000643492109051134142134226435784090246870980162356450241680554430487920798076754858093305018233534248503945524939529605650054619727028222720469431245310499205370585179231393268982914909249530027814919363762929122983668342181012213530447053400442339527741235504253845629342300631689312161864599196191535493957417231709202551035659004417413286205797185868082336851005856070474600581969431621675548774809392097803414064200981765236499700506789672737938651371500742934474061746621007488205979549612253744456551299038734860720547476836351952182411478359614492830982673408659260944756338330133488173319230996269364717964242084705260257346778003755665938542333578732677717706838849797660095223378323930096769798202402598441655595255586410948600421323251921017303613598778055226822139148637729382168634241003696007005676711419866295297648997875502325854383754120331352273456829492631677514295832139471122762690568686785035238092964668673916046002667638695536978933040163027122911351296601138462206384594275921538014298463661910551702312866792892846275338763394493263389202482113597222601665889037737690882489367511692580121147155599756317635410018848560945501026024010234104651442744748652073350524167057667306206472731864478844709248855417181498488353406597726248499966475599995959335632746915888499570389607997619366673946611844346979835499713082985734261924078568408805973581107059178903809905100969541190388343475439406517734553691143342861858061287249833646129968306997281665098632878052748634745570122518291045197323006021307143877317197722229361963798281527656547595910478997780368751285186026547788071581433900111787145597189031725895390707352004926888748224272737401275979689105961226481085018158421970149916541147633195518097658507381387320735419888850377376223049533377198102334725494617195469096089444445734273731468524547247138127413239429166249912016784547256847795917041218943931724489290413296555386230956075877285096120241970055795193307223812941563780693902872883986701712641105997538211796883977328827488064694768853038145925198744503764884972266114060055364511554052375708687770324613318176471172289557033842661846612766293893518628611257481569153623086859752026745099741327130302676131357340464303482226709540779482234519668406695840982336124266675593205766370668698954650077955396561509670190397651284659414695684137030721085017553140268411752787148725515216397738331446897553433090150242961337217548383364052694379605707906388256099672249268282198875651649764758159699538579640219131279049576010116702536747132631830974958668076512640702555788706513235258489847415341910557347362893021694209645234369889382340479630420449011567248552729466485133972151723998157859846295491201296320803714379570437039091451983343944488660350959769885895990545952155140385941757175882503300304979334505959937342914366341085761781685596025033199087229302338186867858663057640811405191453587809880469982517259051409759353878731994899294226791216306803506433390549504790916553969440422686952079051105328238133101519115203580005116217145727093871923935809642428146158182990776336171551481572394845312099659774689078664410808289481450980429192171790059838803724438311731826741455505333608067471950816700935716094532198246390729320310820200672105946100844039613189083056396884857561229879582713900278770076176952063869962167684367783626354082127966626295590921525004580800444629204814826508841044250470053385089455431100519204944989972925722855034546822831908672165518345205284813919712217214591039401356547440559915953262147503293737545131304408144436623327329040136701213730954789585423983056760260645493299138489455828173045091261136937963196114968526946039989695137613039225463949614766397760713626973039125730817990192053018754824487844098524675424035346565432072655112857861799487416919970996312458027031903596622022183081610481733376866248751472893464698388191016519544066346863272696314618938182136068100594083568433352802012772149891763769018711764062348950329728386430167465956169688485495168588483068564160943385582111068614185348147590582354034724564188043487278085322098542316038517082646917455425566906755521430586701031448522338417925783200990495140264827396175887105674101986664694190801268182301154134134825960715023976898544995401636893656364089624434492561433445358751318109166140047950052740843030222000999479318263768260924802902125627785236133283329303070768813117451550774398833132700401132486770232519693509019070675733007007753109478016237254329174719127832572058405772877896962784137461031703794056310464852897194733600196762742820619015136355588027230398454241537771569829132350184743632461475597527442573622825787416362955725103745656419016278443981211132680599170386752302642346795719045708127848464006736984669167959296859785995032836219943741467532942054180364649137749612224155621684603815605970639637857634410821069462340797153920736526782469557974289509044768829889339511391795220897175901375623119276413248317040190394459060696667978823217777894656815361644820363140841477547108022585586133647085763342516103129381324223350960104845097959025063495737296613299736877982049662900352572184246638251718874285433727999236343200028710373401301218976238193484041676802395914242299972787208645195274509638579823055532902938087195526505564271761396146639278277044359447051450112194025756232959994221788153721133732933115113450448494746150052388463748333033808347910063573135101654205911398323392135435733763644426367811594922544314679444864396635064484353273813438767583283557465227024038295784095367030110342880164358216371554124725668148481087631360177904492424581396435540880142201131219778469879450585905275563557755545505926906321681343080345105484849592569911407075018178184447452171533620904110683903997948025521457298863309126842310179249164530125803877190671682226161032496695183855502604466349920967724963101967578733204964218677270938755543809820161746970780600443298763344793288268152316286733970592298973281065099722495465323042592525923943487134740458519501195620916533830171066845097457590264957021652641270199069301086114901130781380404470461601469549041629610373175155435937103827498623466496188446525643369984101821116354084002618079972636623382213377307335483057901789097103123273618873133065591713009216198188337949608814083678824906152986075117109098255786079346252524607949477480242467622378811648369252297000004532939686130158402049863654136014610149819149868544151669679318169182179518886886736974025722592308714731748934597081649862724391310951276883827023900296701161365612139599755706186547269930295644420829375186132390898280017611608741282203194667818762756917292969298687087972261171149368631179951897445902918882299796508379721918279465333979541205205122951459882266953106601362513631565467082758745981573208415192516620002629105788846411834230997621433039394442601412632211069051396581832418602791912927463921847487334846158028156943624187439304380131165439599607047202151602786288997338145508792708130006332450325769142047706389253320336105418827278056432847356364161620257310939441645798576734047609459294073275376855109555861925363586100553325925192754262303355743396690361076793796187540897092433687245742307215766717670488357773021888108015039420289482931368838959134750089574203158019214713426133495327424990034027373759865983951177426032944639970982252589391943678840787246179149721528448919233177775096139535628397034061744926488254782746912239433236933440005815442305289683691390030521266187346492403521528839601171228080722050112121070448345573740179310503310693536886088393063787088080565604865023403846751812674618417017020146536798959571481370254422203097258373162194749849771185427601370232835218427383968132765104535796965937664419064934933624131879731060375751988236192886602008277270780009674865147007077701615489906891915031330257488271062099877356676692505540259441345076372291106935654372530339584077942067012488122622988498922403422891592541770833730003569085712152977317102963652551275024403219749661812410426929787805556405316063890309188658205455454279624590991149693384843034071054059420071825619992427582872344116037282508425158169970921891326853783728049091141541704251485221582647814287075285190149866726566350208261083999755011559013310914193739567430645429898260596207520264873311620503486779010543802885215309395157360766074000938251925561019944035248897200346433606570366142025711119923063294854425147741235240358494752288152008633246413249870196660281896032201249485356651858195239866063200935447760935505115581951492896410489247610514385880377813637282552698775776425589273424584625838056693875794727852239840836240297553899687862187584859147171336069111612348641075564275137387264171555997818781867403190170905265117333222215993264090913632137821327591083584810900513834858561390694362727424754362195373858605247190115933974429872533821186268346687851446865165931395271537789395613036319448758184117358507719726713353713772467635760154091368405720263029724380943108953039859163232846121924367021194589443036463235181920812206649312095569850622476343971452981009150515767641765183873938384542004248505376593194110716177645069656280663177212797359910250649171623414179332926862635103985383817085389481016930837721308660777830250988759616893624285067628405002487020000512503180394085587559359067086310335732305309836497061142734366208504334718179867578131459114877168162248616745840397156744647393256153049301777136074833798750526609009538507141768659115099490184353198814346305910519127539094206249848007300354527998708345511072068841404072171982983514317285947897880842506509231311840793781084418691020905551979637471181766870742752174174083650042510829259833008187512361166843541773472792975608859155718596658823796362556678575196985084253580293280548035498627318256130981845564886957100662850212628977743035247528915823993085489326868005167431761931235505456982380463694614642031575523365600677403016347082032695273569635482091365842283825379826562196287342121132523474652337547970757974027125515096143530720955812413862969030999385242174938940530426078603743591320750368612594431202055825312550326296304803363663784769769389649480353874880028804277886070738627521214281213830842231484995881314124159832822440195136155577666835946808533435163846168228599213971626794259489317145703997162952863169868880893621004011342931394901262193714925635283952710308886687120033514134968110814388644333023143205546393798403750087345004978331693553552960156594800232041857280625186212313738540190362035593225550596118261453143929436910668021115033865991768604917462388656138913016580951683663653659400709894252338980385627870056405044141122433334882933502236568273523031537896225583165659323780561533794332418357834573639550551144162889179856422883073803164236661392404081388139953619918726927134214532848511704781218772717781028398340319758031492067487937152114312547927617173666098524353384745895770910740708650917503493816664364127964542202979815973661151529400408351347567949862312786855404416423139412714496041834885708602806575690899101422576359413750048280443026179550136529428140025404475985133397552208061435090220510520846126111200383912549988617944382347445163571835083369976412325128503032829407424837699397190309887164415275508747994009412707150884300288643107120837712207024043529115882820211334381639884985272169819938811980712688009618200152921789205830635736448410978109988189734358582572581780473017735019735985654747179973137408027819364608725012069478015082644697911178914957614013458085229725663307073270372834281737627300263544454369829193260095219212707880037464531732258954849392022055859147050632224042065916619657826003877740497980911410749469053835290650477696758963511131328446240998018510689883140936877199927139488094303089770683826637700152503395457372226741858881882245238886473748416065830170388412523620448852814514249281525973185315992086859294547342415192798435539959331501547059986544172300986422826338032994019569444089495002886132708385084096233097209512368829424538021386124754009839704275296628049782568936163493454824212738752454965587983024150095846429406591960211254661696710657144582944583274580022575043026686867019968326622398118887780959490335048081166566711244205271066377529384431443215635187594658213040547581218287336502319075335716722853279047739739350994858641639283963905867139033367705713222539227935896960604885141072958045205870243944227432774680743766623898270830936060384475218823857755347378688008298932335218640076532868181646232684332654370099457631497808591705214378204523332998635087228842748727880341242419980279332510824577096918872971437434596290646723370854476983744599567677105297597619384999783998575705082901102517368482954653386655012235637581917337160444024181736943125797686113959451353207913228405494951651079779803256358443236066349820382612237886444756019254143878312808893292204470139721418510227304116085064185562724749717506302397587962572538789866195348325753247287367568910986573002912802713530903633918304086364237040219670029290935861296769744714285522234145017195644159924398930122153522502216417565060307914079500050932734746050434536132759004379024738204889992314243582938209963436701401318948717872881978110317934839099491185585309976729799807689891277821035855104467805680127016753404021306370264945037560369709008101796654392201416098284178251666048788872573380814264986029041348108434608798430787247873829602590442378758625147585077552806858728163396036859564848847867958647764606204817045933315166289564748663738664150052876441573595231387654775183325275925860764108933996408347118207904005181407733274855547629986747910751755630565847467804526591573537248859181800391843501513815214645153253081899893768440651066451756900679412811915601174437057156624700925491624900968968756813269664552962824858241474929566016031845461892158493874011482791525396723959329854175957469360718552761938310264172563178859121603988967842544249322945078406628630173712072171178176734208934545022596795827610379129292647616936558216665108337384335688672151938048940157070011937275140827599622894703120639727021221608179449930638706196629959393405922921798889511814495933677855562974962052919368017969148541589592593401886618194600147932328253961989782910321212618253168813404777190696365132589078603719428641493441639973385248333858687245466716551133441939733631851158510900668244378662053343532642065705939111426483057135978630049717046359619573407078549961332002707976423503124057119647554032733251146119632299840768339336333885593082202493958742511866249660586986491866513916119936902499849845295984400746629828814745830741626418664008943322556763742094006036566230438109076548907602550998170643885809467844676124302863169052080794925083616128475366842206264247086107744184926636357371580088056566123829265056965556496471469579767461728802303928893050799178438910491897091577910397319485387058519152890591880739060110874171599649682860393248401677088178445475825647906806720436886398473592223143228915765585164045860439471497219637008336081763009314990253550922370932512678501463387928848496675506919141160239876381913158314437696818754131968305929977431447321479426469168644684781728026587459932437106276424198013077694726919313115893729036380632138862742954457148061980898578786817165885708830720326963916670510262484498026070778107286721006231539542199543270239971822004808260790055055352718610090876979450315364340629511470262816175142603827247300492817699368706971861023584090174035211252977907142253026495246688641115489360047411994555320189439923642232411275777884555917350795694897713111494049743361545919534832808312056384926361661508489214562518591290553592096619095894259978693272677709519480514112508122580634590839359666623649966249311240939074491269683108791580400400787891946971102109579643594748808018025660222915139346569178693594312345346870398371464835482010476456038291735252456378142075935326816666352867974784416831818438972555858084192783706996473889883385400231156645431149763559602032150494659619782293529995553216851974306560142957030333634305185571213881959686915441972888301840636575229453064032052243792134644830245704212835834909053326456242488303953087029493914033580017666204459664586431197761096946633769259484849448235471720861720254620207819283448834162082704258375065052059616860842052308058380370336319884162831843493933333703882039886449185640789694780242364880436373717795390731012290025036655577318060013102689679688470503919333137094813683546641163705485911416148912499696201623902199980328494955901701529346270195418743329087848707128048683175207799923165302079308069225054121936630787657541535261575392143633631040456898452283175124581554745526458905791444922116219044643686198125578010771370461798834253309330107057061184564757380763287813470139166830707948178984909369352208548497134231501230950525173594492700775628736936560096070890499006779772140182550294307249135065874393912898627124428630919263078936578687033614963538025652258275397637989603317710258355039560288874139139655036014659062560224278556785904761806538585777210838404058561030460023107775910101571285623416264852241587165451615643287558797975215336942367836154392223250908735348949133056307860673305712721028561511951797838714140919773085645714757906466487472343552350421674363279012576990569719015988599068775501538620507901948128185105836816897075467276051070996695346757490430681512634461911332321549543799485632196308476005050739558108850299411156525867536938215936440045780869032620034812120093248268900142674677986782768150717393530925421306650279021976875604472012192080664017278243966484449694468736048302206917013619151096352421689806443381694263753408291598406174790934306828103668007794884692674884810965899411225569582597051661789566550418180753693798003027244102317462087617970154537613535319037375800451699880040193382484965527042317838590045783187465059948958142582827359481372031355758582937456751997772362121450065367674903609286341766557246615868799307993732184088455908028124630994040024135501885821175026748996741387099922799738702095153615358674072689930268848566397027060099449674949449660089825823708745071784264256954728596478761828305501297875262152419712064957045274717187696108219510759222480942592628449572590560576985835969634664940328725981484871372707478667442172122541631443967772900097097313539161754767195589418236700307880129950793136805506579991036162319428224731183846191520623153697589525379145857566768542560888081698788473477535441030304215112264651764242419198730117737746931934864660410591272579936487475988506424872226319352940588635404913139898270671579212039766198083569255791910214018150437388763889417703464022766663043677775680880537154453110945505202009627467885552821959682709015234304483784127410210650992115146572557051944516666559783919971728561940198520512790494860690153890456340438471233649157287043108832750440591802510779862435023694962152189301382868935451298007863209898131496023710638381164394902605263026085512461272361450530479949236489174058521912718067370453000014964468547434395857657283509318760858986170126325450909052060752064647769747404735265862433848159055243698490682567492576619436841951197829582102228089885641854300889318503695676295313312601122765036688809555781941110365864735438526708718314809008504327242604919392279892735872869332987314109919429497202386356484068295120887585658234146699733449093612257923992274139952945438652234862473609289340003398790867388923982231653161194433008184416148115982817092574673612402465415514187612300073763206166344121351069620449541795774272535946537759292666204263755309928737545663436184585553043790441036216752404401345089308798721202508831290060082909184703815816690335998572309192600912140755663190389561533569436554997494580148794954370776516842503164058679951141852370633339283100002304047673519921195712394114127208647519877504762700631138512284526117243932856074336428157699970694945685195194163342910304640640270978415363732635035782935882173661289306489445069306447516372610385906568705622610894396003618499941978827918695940185269098429656329243323870311456054575090797579305866356000922466843448973300130291876956415750533602508031413857452928043850932055252939171299523137586457322194738754710542800810003030295524186006974646652288604260225767372959203547972683663341795088568875905223670095552485122585078872776919035616297750232085471712383296805368685756702909334916529953801213688600958772687285471890318077109303964645908404033908533623492458552944610924415944190114682423316629505601542907174124969372760133726625685890720607162203015140978667278959844303240202486120093435986916439440588083207335093625317854013896456245338965544738384153874274706464809948354859239839070262373131477121196318410965375187299484341457975024181434318890263407427176607057139204869997904142300970364893742750213706584804070484732732840999372115232431461983540987937824008917416936404986800838704758801726538249144997899686894378043611430323415448044073271614138622088435923220393472919088810431449730028241988178579415321701967717428241250545064309357125777102455430918499501066483734710741149170097492497121465249854340002019680374310710921229457133585900813327592378585330755043374346248494299486890996452045494187778917973570464277445351777558046547730788771855206524469153403507891235257952195682250844521873870394617382479832223887116965049049902599693680188963423235806462272093125710808692867086565086646048248219823085393565140397139926669778185202482022169710874450677532333429566648892126094268913066118629461858933218502922230956772487489104000012669502798228845588864366007651917769231013075345210895977410423791322666492576425493775711070026607260041737943651783999466916562567254019372013152931463537804118431161038111608161667170999578037954818937636987187282921624975979740698524167626736651187889027670944698813561462174381704606809067002424693224812535824146353947310425286784486916769636599673316395086839215530440254338689082293741737466994820461567165074910950246206623426389562325067977056229940631747247257237879671758167073226565404012175811004363296526704476016602571874700857427170470150185324088614106422731974762345761972145532204245714986686671782566374933859725023230271218388065978287649872190268546024649483500997921714587204789151214204693953832993485743332371059422596040831672531811244454545264016168298804692490113606441020185599111403731499620197931744609121954298223045875601555012324122366588316955031977322507075949416553367967357492722780893657771126902859986195164771624492444553441225261379997283798361716902188655443067811409586502181644205151412606751726968318524054322196220520173859965297633169856923477280094474735202482640522188554403916957418067911105313212707078355447446514361569813975042927845396236965803484842656785348694257732007461796819939549880755653390937444921650049579733989945625859591105114221453626074610193422427710059661894878190256971592761157182592804496486596926176660481448858410244720868318617927086228743408637853428914004454099915134585550340765732235541968019570489878543945796475597470213148069434505773491249513834128510407260518285537655767640056171969058575856978012084756122900526064520820735977071833695569050638376070743621691499308734101121029522844211402923814656821489232094570468895616246778044122061843580389938828706114453395491581060946241810641450338683029772020644506710211378411167221897231910435605379261009789401210008429814971622015398718335550117687038968759057760388753292157840038725037175538209549912487988138993868898426483870716104252084102848504923396688519851592141365955082034737048980128325197177826629707003798897897809392752629388139905814083476717895036759249578688292313091083589650065006932207872415476101159273770015436896222340175131669809388350540694422893158268508158254978532058410300496661040357414052939406759260272600652672501892297567070533861195359807367446820948600033661418150145302696573879356296365052559811810357693252623995875442132987424230845022930873873483095235406413254776893713395951254311404913455347390059005054341301556776021939967396143503064664016325824919760131072630409918080428283767515592239686832937664790572877634015701714179141663494355668172378237324450594779002549979081244032828973006266546422711998468491232583056297093096333434819216133842097832933884607385370412445076739991980964411286062522324201035370240330472471736639777884011263861647293528209809963240975544471355594188144432645121299393267793492571542746458734316991015807405531495977122312085964277652065090233408814057747578847490045451494579641408089950707133982576177697331783660367917132243786826024264003344218760371711931554427075881741884677837062094712037983130963978226911694132206316182573015898352930126432641783122825532912705117696923175082483637581634288168387906115578792359548514477177323146426197189342303409900136522077972456082351471719381373536533916471917106283219893231426203596269113445748491672334633491140246654120921277296598809637860113456790885047587195740350071843160753873770500185363474823634845502666337652356308566809886086460023207407729992570219595512030862742267431124864077550199877725885859561383852690561730510262052742384769385328529899614112924989524977692225637362145743124173724916832495162168912625892849224133239924026788349365361645479503105913302801060142408465774705074904181193845191956948192760583427670331174076600630923817759395063898098624429807240441889179333985673485024157162148482370226176693506506278819309291085675945289700479610249099845337848831299260138741200071484681807991516600335492608227170462052037117490536190611775120381627447259791120271209815886638860333045312188652642676829614022012124218323735520578626170335146836960960007636542872870190876469720506700240271553017038618288863988487665690780151242267829725970696492272191021370712338591218664986392572366837665550381550296273611077145684197677255286840761359896575744451973769997150320358313655181743384931701035649897273296377091624684560333309895027977861579026424857015740916697159069555347514169183824535384798961738324064205729796938073750413880877691411959075757357425403608748471912509483024461933474382941189883429155648839456799035057760083910516676296871856789108329518327765768970922747198850710517788628331238652642325538757653576250065723486587485020214885126029901290461693497872157776029913247596634840570958648658833872243470447558481408028355222934414155613210007498095239890513540272611947122037279819013236813881941593452075746475950530845994300121906188215242169987147466203260940338455956471654661833401521795332489531619722066634364689195829442638552230670895946490993531661530777482879760763791111338488800035900708870490185208079271328463200165492870134901445262748842781645414809404491738284133330886344155032960896708887083274733024363032609745312202632203306256746862011462348264643257623981536495688321559085062726369225402895299355038322925347304187936629505206100152872989238345295786390324224654109200453349633835378152835158893194411607175091886781631172961506798386201677667314871153878387941923352108930906566701833277209230144481802535020330695015753564129149920744883823670653837737970341282892647925984197968762302285256098133973042863487708362913775419783416707254539111404131104820162666665952176575691053234531749615593005134359284425066524996086260444094390182778460415380857947006601530102490789582692762233029362944394270465825009439907131298867622692504434157044654326930230787712044781609928733724503513509712545723428685463799231517052406720692388599494227172345814591369356862627165336116407495230075118818026257979581795342991159031366730491067513436171636497989957107447959554490207877219788512140726070330342351315983905574395538239757174588887446006180363985558307149591427435787966349989606912901547510499755609549205954836215027587461524322655433734803133916861568793881484127875891775005638803599061639816239938095065218584842246751575767786050918822666860886578300104437209624369723018982724605378822315666414273611912423258525835996228854639847842762185497379472439950608380554351430546715734759517025512967270990847657960028722238335525967936444719980303656070961963878845671979349080259440519572547355699868908185918048171617654808272376986661524035509948876038680542716259864785343110326539428874905840650233297580324243542364664676080335010263922639232147001278821939775050576732633973167383764867189028489220122035752629996781181987565586862863755401661274263564790800723450323791420378771622576752661107821827903084663163129761908267752183016944181000846733888463139374043826015607959424677352640435957256593588674247543339424694687205260504173749333997969725247356446264926386868106061552052662278607052551357264023985527512621580661908291268199217241201369880865934543873194098791780638111742581009269462699448055405152386124722012195674466948680410414778443358148618853280781528018196630305744802823342757087698766334576326638508733919340730243473325492269162458368601409283610865600421858208758957040895273659274192529408063163019354740709856846201105762030943038257150240239018303976693101207614372368879387991780124768412950138761444393842677115232426280234261005547028341994585811118520912274790107614319293120903335525780893950291096923882828319875872693090359369224658349629899773118463037131169609272749647723447536217699955741951294220221615479904919355197238081271663452137639045149972640127667682220509828943425628158156562649991917615063245226633158161725037569096656200487242449977891392476044575098660474552386001903331309266852763588698585394876090493428907805130067678378245591262812019156977415495958833179398568056034997600587196838723285057533049116491208297538926839073840204729395317043055129782102619529872858961110602836576272861055700756878790419316089877587526080614482186603613803859870806322358490818990162283354155531784124833405979420063431535391770605418834880866448897598185806126179130560436615700637349085018480327097115112836414784463159588377875288245496063286018923524711582968153994998310364055606422956048087387683245639242974389847436390479112395029142036315581404277161020073060816263071941393242450910444687408047711442843465276581554549121135972143702313309029079983689694722823593690615067863534509710708673741802263126976716767683094696947429913793137533984851904030988323837556641023755097218352765521083945616272760045376100611761683735202741890189852358116789180540680005421028323362343593942573080993047190023343221488909755561871428215901379782984054182872165212482922148206461851462595840710183145369248822152246945890605997186511319978603734090489338133712595250055375319080695130630742092886759241156786399434514843033619495177007412439288130376474745357349616567187938460011369213250434654885543715280229327602603467188309984562266030045556301816589541840267914094197410476873478598603325348631975522893251162655312709945284362439172780961308081736434323461093497779269798758185981181778401233774101961287581273408722567572239233643757021796412244609887687986326159301056664482831176442095353700278306538389622099260956441611584091200095269042467867051926187076758260046909683904844167822610351247181818655751082999099971823464961256891709083000166905936440313992319036188253209221622711319730762961055126162800740354416364693489530154796276983486446971788645610015632583744342776800105599839360807451033780223368981592372625035950781065410043861477850523736117616486791939937633374015960770419456154329570938571345897280344589292385694831526083077768243444524342846137727405292672964140096657261277429452907200817440861768055247293094728508186616194126230704810967872834438273188695296731288693392118647413316270677506467097396634486441064100366532708460116314538611289088710121579031873417045234249091569425474837830553773648835050521129012672406722199733688831410939219278810458463397767258934805454832132055884904770452885078613554698293110296883027683117198929788043268327688537746127834948899744777597187443482951348560569572504806570042190469077525196374647755547551844890142119549037153932335980757350240859810217403788541370451728865906641348599043158977656752256906193579133978757367445211788550923911929573484661699222116254214706439962520073759509104517009115309855652849491834774732915389464210875243580793430343992455799753174531896483883185306244596006664998791531840491375455113871626772458693238507414855290162619949656856842630676093702216863412126477920791053325523721952359806642317487354804104706096475624194127861201033167614094279746450077986861429416171502758182452307533872122880259955336914292427193939196624473657670174718117781324372994712199821510908608779579788131597403315312780378765251278218876909082960272007903188366429042122487864796545669255029442125530831932285898844799663196300299787845540864356618209684881635866536591282701347394487390135925148519358507693972337461628759977094241949180178526934731794309024352649134330727278496563895694450662654387427892954011993695380915363347964123308796091546303721220982982833881224790847943786028500929760199934044462317717261586087905906681876621696794315806220768405890680697847801157342204511988969486358052972045678759580644544025291068176890220819708240652714872980916068781715538769884173151848107586509023863258558468812996724178414996792888736923995987127593645974528820883899038797659623301599414108775067179798612487180022963053724235261498086597958028968225056009347774839024845986747986664735074459624955534825989870808557093723759905670423382126067724026651939122703630872983345149409268548969711958032049876052978377007337704977173184882860642359958171885176921266464489622050890134552624700334131086487648317506900476159190804315773586685374561671136360466945061873781981083683612681897989614077802868183578069377868181992853024683017014632341722112184990359430454566395936291075845914802938087009116911403505694907839078428902161016466315600169359850607158169216045492283217205853782864121794110443125273033013729420481321126852802792371637892453605514569184479486923336600911148030734175720811894154355131975074490836758436863224209551575079914379192988832775645990372842539630898041985868181385237723270002415074104177369304828266515736540225760719632803668565716831209286546910430299243959532813872271947695523636491238346751412722073679611485314483381018458511746816075276357036652916359975397981731588337064620907520197636049207999919300794241925024626058851190769025817629717444053333009164330114322082041386260201556751853073123803870554428062128146153508998001414116711187118961901325408648836679138283610134453144691370108998343618417321291664776091711946201292077506638970617151626692414498895189488212063927543514057462170622605356665060233722812340906655449658845452798755454729877368848608293379115243884054974107896006812776102080862036499423142351497306596773410634165211768609267784735745675755037950848181960313890813203049295410013962889581692654258291587691391519551321174118844119792851101850434694400660650865159839025522899819471353114528096020235985477407278816921681625443198113637860078585709250343314432567309802618779283483407076639612207085667853861610592161514840428227174830053193984523200085787956262736540800528191070570103892131002498950948374122413517977756424919003266633261982555760930435019802490462853806235919024756354290805034169061700617012850122690947938283030019636221444923539085131693448396750957261478927337627244548174431155414219645106542117930085865806806134159828010588789144698723958486325381277687956910320270209551731496343718289588138538426207308425256515746458277093074249964537951565716288554467446382536395356009424315516479869728758991125595670835623354260426700617291613024074051283429609803537154191703954972948910860799920325661432640063661340796178365781941168133118964669998558192472574993976168416148755818229788344683781646724836325081690503472346077603538200410041938414165683407433516640311354737494180614548345547669915961265316599289340232566485107468696072976720582998073625434417400283142048214611156463325190804105804023688049367703653131716517386894719106688692281378373954738129236543170132847235879287666965945357000656440440551202806210651139108603323907160604637151703801800611364738210130543638806653559232595714394989526340504389671980526808775009245490602480272366241963764857920249564150308396157087632312494938269230387890564378818963606370894929323513945254485978476503946466253518061268031162841309644508670417200238225387144728982904923270078426945189749549898650472663949657666371435577609285449329358172114801788370312748909440634771206365009213329955828465088273699390350387603715533050286316002866907002565783707863354619120196723098629264197642593148907086059123019457730654437578599643135806043324277298501404121971005945699774299668304256792582591400018756595494097216665785735760403717178283573806560565295256349673739200197688538379298799627765103334577926196248927242057742965998024796089644210680501622367444055920416544469579580335224832582768684830109404705123134396253763815846727225247501929473960006619431419454190317595025452219031467968406416582512315681470621500014471417611614979272312504482903690672804899907536640782071086732349467853630226909520485009166520221304581899210721467197715882137594409944217898995132462433493754310240453373917202267219091420684553603273339789262922365165898153675446545816928531094675688145110643920482166392812436555259965093559049364990721747442920375482835496493084107918295453636326265511909226755837974420223078839218443933565852541732856013140892994292054862701607041122470126071479782810090850082108822353400955484902735283130797440180700752139281586509653086091971469123116883026075685182818606491001746540707500849340367008571520539589138440515324136287504541873203631075581568221690305553426254904088606082478316776729232708032698703376259423368894577881910554695661260082069910166725933564134774147689324734328006596365999310404988244284266347483793845703078671784350639204151800460607972993671420037622595616887091677445367551983392366218858275406877804787697058118497537239681652969695585592451852629127391330779872355926327977210210212949948531368053057301648666893972797025776142119586182513337045633426253698199724196798185533029771974836963501214359735829288166827090780503165257206979163775808747223666906815878098620574664348194637649910086937892371354403037971927285327369330113006416971180751844064990274975790160691181397283448344798527051920279545435684092525999109210958935907915714345085282823069131149515998782690038222229139261989768985983491852437239975655720199579170069806778140330804844802650464964314415243502865449565261472734853603989714779079237959700771103332959704822659423027782804615373398768450750148853059672070607784969274629580716323184620431775246802370848150942935549819500832960361729977318365818740911733049594444235722937556189648970519407099768401670933371702578788423236445518131469451423190162721214603529349183522315507660385032391856310476670272564317983156111143927019815518518786773217851020611296179354931450501356119321408616896055563826154568384033935350810970877894048623360025208963634451428187154982688011293562342441192618645600289627871340291070668693281692763320247343515366272209075788104713486580844168022270457575778265631062899477504002149767785033199000663977736892541824551820437337252654679452481173079125513794655234729668308084614317621463083918170471520286641103735071876868263059068873296574758312919783180453648452474280060510921632770343463395970540249951107737332674223095069820815840677610812441797823228833818416164616180432615574386399173729605245158034656969980922334975238520399690974121350451476012437530292988939105043672349438021227887611012833079685525489184258774252578855136502873181349130590568525946653284961567624419723331312179684338992440596130143531815651146682703186983725495134555443602557137255851907326259362193914680534118772137045126896112587480103306612177778327362004210720896811136411565495582806958717841945477257591396224134778513066379559466743897396918115063294480448683064305169106414083078399801044036830258579483189544817327838746587970753136069261207865679685960180567998571130852368987488091797970512269793134732691341892029780825450630180237308124651747212308645862835392532971134046071112810063300185983850064002438836862054741495481200971447468397093237882127590728429580786034031814630022069961282315557840209869540756227216259878751856859553835903254263185120803864986581547168458343151596002711939379732479550384104062072821541473040324176108780010465190804533319917713051335654926376750334125746646264945612084977551626797591282584505722194963104854463035956466902689136547497937287068839137141576585428598739453807190797013720457445449559180538889918859222364078226378125973875232577572199758171020459244941503143712274080414767595044808483942492354991431973441886736863661960921152548762288900842737779062563701489130480566743918503938880112178348770749251487717112086009772139316154916685934473527388744777112642792200017208212608739164377819192220741870062506882917700090345955375572903326651727264045132946025306070237098291523747342902556613468164487264435684444085054591694171391974065926198187420794322447985306715793875836509021936823780758925188252035891233239861451573621587975167065356199303138456475455937721475505968375471679855634763099965203542222771879128635966293026099405865343342436842543594624944495518615508093176339421453337221989427977843712789475309317370410660477843888947907766898551335626720534139055840160009558517913053071985119547087592539361399577561857957246043934895633993450373410159524636615893914456868041466006141007402817095382898534106541538950772010995759874774429909218845344303544104308767188455506674019792430069645752249458320781444504016779733774029568145385674938242056696435041613970992917316347270572950328955333148205916228010519483254177075362211376187940353118792576407132784065277141374133563318223492198509948164722574535939509726448732950659898015535912733946893195781317777793075858969320243556742096127803383343968625334844299974591311023542635320825623684149528293989541823479211541691033743824309497502487361685235836963731451474681482946393012787232567605509788683094435200084721065564957455098432078340251089831655522471066250371764963839885935607347905163041252412186887443976740105620283621480846416594746583537448921368611802350810604958085716951381923890373235514627432503556126353315677094331142943322464140737769431005581787901325399594572647783956805829343096404385128549971957773800002133086848850012318321570245916033655657161142788841825125844048431380623537283823302096069843136749938224932655305637458683236208580003367865711540532572393403639724328690531762986539318117292371537732007455943217149911401141624509254549457082193397847981105786717867219100390837146006813279294514696469050533546353609591457784530519416843585098394994643681945472050971943201918849922443063046135277197712085893751523052843101991413923579288086489758655113754624500573779763220579191911901851458609302767406615451372254034264195527691755354417843097455878450116338164703939283098016122068030047268638017710166272964413776157525851861140442522565314764774669520921881830310991615100461949390623934211320633656611298873942998843514090667691296176394490099686503633766988657908408214275118125401980977847162049563801077784374305617391928448568700030633782720450317479472609077606233021805873007484521469433254491705432839814099658264841557702115669479047875108811441283992492079168582721392620484377086286528125504463905509714406896652608737175602808619612759860633406298494380570342601584753695764246956504518476844710847364639529688709403759509599300996990604003711941611406950672605878392211038845544333468198669075425252325354432702643660130638060018586238566558619658000982690397470579526446766859500081089203953626707756749690522947293419776564130854481903763932269629679037712776690435893622098078356694003680928882092578541544032039589713132489099075241099465037185974924749765295893957333711572453717578865951984635701108334484338164698508743084594370907352943000117763204369867072982073279400003116997055140986202407581735230561109038899338442492228997064701856473737368471239369001372891528214041582297754799287590236620692429575729682689745923971582577626177264468649580169618390793438619807597836323330922591717344174359674945950689700668302827608744981457185707240672786811841349631305594783876234409612507812893726018963824792509688210601132253848333971800319520709746873830716149533364942842939315223261891177385445048454983980168108852898352317344903704254951225075748501671424668024113919647258216317236024243969253651683658009444400035878947909170297767828098852057736983442195220149350147577057836652187567421453375586073548967272165249351261916239796799208348508076990500440881713828240635628801756806537750082235858504470484772562864328853683609507193220456672319307503753269490977797739216168457690258232636853739968387506837133328868390313188352776639213535484290517092811545852930807136903269757161222527552290025340216865801485611915203062902889956805925773082503487038253658196399927708435400593781943877128710935741773296497779807289696645999741919604856330428550484868450613551398615105482907891326401232697964980740761700527596758025830997700437843572839345238937105484995134882354464060811578831673100177886975232750144977078486400414769978068758295166248039620682964283881546699734067089474799606686793450804926975243822178117858644498448450021879089636944286277258960195389731216369860439306711138999918638110290030807843878704885272722444349196153832432811631578408854504414732396454642720526136640752957717007482880369853156172634861182492595105782847910997228217219561064951931081721105651673302243263281507460443404374079456348341863999863430208909659136944228164247925174467887552512459919626408592998981996595731376972141341967844294153162426084634068657433951321937313309109670254450153211871820701976345173566164163248524949376126062425127095893104286092347644971969131457867862220688256176289626277879190637621633504862387431813530716377856701325863362214893238346021021520814269870962027370016503954531921793940115890203075979330646901816175473476491245857225598812395163283973389479323075464334491720117785741354197978285004746193497519923944430718687539633892636246145791615772303019325700890267501850554957968127533087498245915871284619157784470296246745831688423342633164612272013308184082858347929886639681442670010565424952583578810529518038948088663518887338221235207602897846993306318207978701725284927466299271803448843981817115323314334474784161692986629392641590545122268399107711772777182645283765191630837191841590206871876489355845233373468929998642258959341680268847418306894331062259306889308287628757990428961549022074035707032958279094753059291213840696323696034581807150001712547708188272125921639028330167698563020261977324524242578738543461065561422029696594502330448566920775654792297855134931290426569982946724253186346062030888683323621196713867927939252949796270732623908162512806442349256416871869558321403470030973817866859358619625210727398434038738559300551057678982389999160972683343045097773086719271385405718364390465770848047342039312062719417528071693694342188780294401256423444358971378680642299100681479828561555205889195890179651913878932766634855724557992615708936007997613669534802981060100131751100609770683757406936825950608269642787522739596413204120416788013494782777697585111596977929357349307816491603036903794899932019629706119731647642850729031640297367915966747744457868962188010966258101708518746381374776659646394574298425456462779865154422218055775033178583493163306543593274498487438290313782067539635517065222074223731201489745362944098381385038372701663202046456067508019446206942806696356386706815376536433126343494023648609946693419380805712018817886573723874210450470385076749065401407616761926239762501916279200744797424315732286206540537301068970749325022054664438618852132328363965606334713341101906385453599123510676265524488957194549366344364744846308863881559825951201439023422534210059824004167481837618948315242329991396255664402274408753196552508332689113688910692620123876012602367720871126590688151731542311537131347340279191226687430502065574428083498217199229333407011657008824209919369822249709890425366254595332619169614735043755888746730242891735230695013636955317416663223442216973088743683260099385292967820091877820893182787264177288534610421974337822833158546663324641727859637300882695132959391822470599594572393294532492244737217788961990171179255699637529720114394047007994760851556048168524241419882198720799458199839813126337916312800841969822209221076917120894199231936112997016258379575420384024742434487290697757527046954640442204337174986509546994123243805577064714402030099568399915899101412214689524699613333784083882167758657058130089009816869119423340449908810774082013400654789594572584693422992484205858855584889652840776773826515329453436556293246680693790652895040081916841313317317378894365522229424524935313910099843421996357142524724180850697036288903783692994596056442956438580632027437678561073569140627924612332011493192764365532645167493540328522999028959907400179603474866340654605603120051497066308062130152392175384219703499856623451892621345779652098648982819597992156883876413325918354901683185120447483252723859773097298306975874897265669884180606484661227620019731728110493260929112389562575904297659491114218685649090688903059683757552655148500326380153440459198888616157827270338074567468279958589729088765565514132833973653869980704667864794827089292722778068473593471616050345807905415893341990073247221104511170097302926608322929431270726319619659474019053726052123778678800654679651549748681421172501512202545811974974036365895213705219048620265267345009200661723831416837526251780232538983308583723440236831305564452851518980204109121615638051289490272815029314338061367417468612999569298735661598489574150477289545846885682285120719970794864593444066332715323202107125709364555009835870474135335750659166948309871044830257429643282126596610768716225117749953330801496425079808020458830004749533909147893470619495405230883047767669659336084883509273676472571716294537536331979865128190657007675110071615531673998897659475297250597245543473465795262549189920511940094916565094729618568811464505069836963341792567243997896893716942287672452493285641075465999778301804060495983497541888267808281509165608378125535734110264059486944584350453069422635610764834355661582839267674567841158244777887827891087192097497430931091648055843455964533081002347848641404287723770605512530371853693945932230110669714529319357952994009667176625190765889825457515802000601619132308362033763479923210338815512194258073036814112130709693457739094566003502319468824310679052539443951020808273998151988303239343819553829983378609170579199113602233682250353128271170825205710872208617924004692026527576610374231724010307613696285298713939283073643487694864864099242057202396996740554189303479813179123115882335412177491131864122613184569394099613054128417620525144342688239763635392065920894055244205843587452399327848465931134904492302254192427639662175287871996665610178871005704350786463554802232347485503460315701158275592633920410322986586251670333017986207524352938209952375221727071758688109630823356325859394055768566089930224342439493967918669538872666059905221188929075057941010292972797426663186417528602563834314441516372099767156749739081435147865754808950534423487246149395257110364914891603740241464482283866358341139148620396983217387264521435475131324698390057238777926034367788242914655381031733861233783981637122582327969819244494490852509983636260188464665865065014309230416550778707171401891670372334876769290701426734018996705067400138268870723524644976776054603042590845239227146613268822129256601147870148896391084315201900803781439939348736185323848117126372697276540808645417227625775824928372452520858411543280537776645629015426028268016610297834717402519899295515105868838592730754089262263040685409247035318844699184469223932007979577294354262601521651004531814622772860828012551662202762970894418260637335099584982952660831675215651506823707995728687036651479675615542263750015599691806897360989070270204742262045084428304640618751334574699115461950201390140686011023300597617122929725789190524401345058013390966905497421712510971055074189078319659392604167567533172889412136675513107497812376435133822986920437734438233471139499898442493266607839548787377872115729788769019878036536894825614859573907516990584040201386283330569787901436302703643794430296835887312501799004296297908108185833419675494388289214788177879834822933160395773177983134187842993926814622032964930835257822893740372041177985508144277268660632236336848722235200278321719342847010475636181682327563600810468500405408654167010651528875274384824556290460977308757182358400943913461470133520196371522402052374681891990467247629175222053905481171313911544715062868323273397135442328727264667010402742576172921748242105019110193010850836603107925250531708633644377299223863161578627601232271795450874069261465501514471659519485533199253760456871300372179696986627696479874297560903579829618138694351403988674940274978849106659802717218344487104323359058811090550021620173172310105030187960000509833761471410085558773929883690311021519197125291880583112230617618860259678828278383685337227899355190510780411091864035275981655763691941726636814781481919960112135366960025575579877275535160796046071914295152129914120540433970425567543630863774206024139804152463461685249950261847455273723392335707413099105557614895809210034791406030319536116276564599867481453268145625254325462854027148230882724439100464371554759047652588061613525421052235285260715702261638871777482734990540998310513976452215597189988999839445737619281068898381000014443940299746559802498342821806006781879723996281224895662464403891400335264772155718040294523286927399125197314328067736945244091940074528492122134405188210457695838387150040982871929726070170024209140827393276569600234626094076590214101954132232051967642277559899942625311595805639193830527740191789081701320620668490076671536844450012142086962631988033316089110949012743684899584565178583088258908194951936167895739590251860044741297954033580304850935261468970829699032297998831714879379148944154728099889073856349278629365597833267748282415597924172006402760347198887399360651784963421842872344395963769559762607475724746802015122381424722609256303744366923791343557932649496851849194990163173321750376550362012450875872134613983609055160170480280253868812063444564729800937384122014545635856946113926217071891309865131985914943226896999798416582756562838438079337271361774876633625413999137592934801687181166399160736870046054803873189003138629461788400994903077239525296714431975876397429651080702703742280153617355358927296491507283252435258562121367167925422684780157881348889971710619039222695526155562471730694507951760745775569352221760280529733313865752468766972824251662121785653338233216901174698003472150678644272425039224791915080085304854640503675068320887577268438362040191732526735897773314026783940810431461498044235942643505591483863119741031384920822083468848974908773064043062074647654705138501113170624156800432648479218260052108625214669939334121065004414013149037944852244245534147520325968528135967362561978173766003730775697737143770484513948761977505651810587483799944339486865247867254789176897471097994647462414449814210959063615067985446597476486312764980541278423675914991790330554966910712059577315528240135873769146216436179060558664152488571430595347380978560780323765967013331577583138391081041721332230751803275712478082976151011093314687058316064417178935078538744135405726127284327851369170597458354255454061038811326021034811099961958309639351631017753481863633063395014921867624653647074630955609278721729255245582558312572792668706510978161348791028512646401507058083360191073430508026675345298270857070072043515323291699219461623014166546614969965732654059634096796492781119369890134271521641612782778515872519111316268885384460197841181026395253894062835509678176553449034476735734169542712467639093127588863570395804196324654385619823829586738141723134522247208994178703100142643910239146450028043372602974023449093370540575900391417692324576542121801004811443415066784179869959330727307302961013099861745513321325616338879351277161603451555618537388915718063129338219172686051476544919602386725185431234738836706539143554297536098094212264638372218047464446364333287194656655129189981550841349995477958902124399329674118480993387811236742395330996770893165574102499870607470415301853156802925223293111046971581903770384074921552778588319163696700424736943787548806271211744841927257896447829153486710402350554625501558307801926339708473736241858351307989873901381935245392089399085791839231075827837497240955509916509233013711865442163659814776007565669952545881077387838369318087748087059709637350729027928605439523624841278404896163700073331514329074203934222415129006742020556876500785858642766562673505516347553373457906196260393171930881934045468601334053288973403673581812579035971595285169043303756149752558820015627241344436934187542576404838954253066155609815080462865617552318623331249993243901487909101801820133665849200859397814182618479035579566841568114853836573646380172057665375777130433534601806558377701736846969742540616490000237084717157449429236387887302773155511933536746785547317958098140064224156081030237520496637908854444560024643084758480713679452142058530202050306690215545120244660658030647600162929103614513725299842834791309790857367856820145953896892401938205167883637984972094551310456086037580455269794947866023661100663497852917055549898797239591219998278648214903181476532958580930749019646215269497150033670596844363357207617082503005096824834850480713767716979239979162819494880229727485567973550082804464757301539837984418037874755338135811537593839627396474709525793899722453641068480538657835616396731193985378850398473766874377454859527261108250653721005498070991182483877714082193960039256583558688268811331904423516827262128132257445928460549565013387398474229758216583883129886796317950124045316508364344051234609050803486925771864392997408809625879217884473435097562863446435438150144876719869042898854099885488790087241100499665615683983342375205651071038651756011998488101005754331986745332003440405471498884316307950415318928965958898088106938765627070365713673938196951407238569507275340548841709282243807758254272608175199483577018960991336593649029962699356078565515743907563189393944012918986311045740140721979174437681496902862612568403744063153505820113258675787334345480536472108390385326194652155970735677147773434799089903974872926942055824074693672249258922511187628957357217763421497263404660812130223570752000184254354485068323144748656436242633562857837003710508347285040378742312457937507039304548573969572710900040676616899601205480638912241629619040041938115898264056464690482260953637536772946509960287734070071043962864078149212675606385123412455393375988497984591512409857838408594436266751645355464097822357770408788457787914028177611982780174590498299117328872495776219019172242440991482703461122634640754271265844439550762762509960580384812917179269946177427777928028112020646009957400265815744082157485280987084180298349444902413641354313335686374060606674190904118425932338660247677463670272709581626841195380685803658389225059203827504672938021285351388814745540559473641500350043637212678558791610965108361879030669384509521189314983273279585989880896474605794258209491812909466919420524634904346677883756323775892896486424839519007278423878828579417546728090537214810882434968304937133749635741067126726390845534401228287680011190211639723351060214882824242364894739204846836861145716075210082710531251099437183090615137676889903429537258956808084030723593681605108830450978565733514352741105665329120348200250631453804389732658166954830149612203604710965765404095192162661365509019572469149201154357656400496545086051985366565824850396599909561039308950387816631438386383113654099326811778076304032998482558424517400062715393732008216481744544254245062004652398642526578054271112843189425966211623251781522368899130657695916054874438321586325087195400484700226293516250774987075517101367934232330062360420914036035159686413310041290976793928149785727660309852414654738475772623331033876565197099552012570584389152636563703600454902839152925122889565975122074722395678063055260307736380232871853405998905228803524449789090398317115694285480256022437733362550127531988260202610745471921070159526783772309416191966284989331113767473630075277604820886327199623244069201166878283525556171372576566268953311200740078900552429707865259606998223608209793959292345344769662731525205726373583614832255929605454809119360995897092420500710558055987411388206818428773597665429796699914464808841430666780813856493067498323757441742590146140786160069380793160777203124183495773534646071423488832479679441175687022443172686408519775045988750168359794005534045773156320179691871334653354882373146103214414535486643528627303030457776828985215403974784526932601527616621134304322015020091339472179344673434586341297675714240878332886508018541459115941569386517157385266073736324221854483385883385579078285521919707526532598629638180654302540857623101388734653319581466782912023151633279553352738901100435715456790763525827995509165663031104877482628819002471489362594299886074601554643043559269222351351607900285382139130183995066908970443858066276461400077871105759243085730588800963694065769972655967015701317164392319820075689479184004187178503373021481217162541552121089708953721234532784819262234436546639469261066272389701679185446876339998609914335027993323927197253010852224362968364218102310005652348329322941983346101184641929843886955702953468591946347730344289043156411475788132057826982945132896228506324576528345510365718265672764349191698583606505826756677977242929806444906560635716432220644906395251181437732956047184610981697500016764496560340555276852561453097982954621220505607689232629611679967340264138521125587685032538000226105411614667047887682300491480457136790305653123170611967415697238359805362252999548488521911088017217141121006158289314307585152391868175029191889293077618225314880340180748432167907538081441680567218500700397916044572185156801846059327384182269356742792027371826359211767897365130125301355693042228102340930541009459860244130557860277595581688539775600964183958947884718843040567196512908388831170980273237902910366862606171604407438439485630851170080913498399838033390467717278057269140594849080676615338922265829918050926665618176908397865707457310067963450264596179360946205540293206251603540458876763341659195535880110621049102827445473097959904802834330026962798401222091162654120726662638349331171934303063403284854054137179331116086049169458111780718819158410830319066502728331491411334116322328269786696492898199375389938866810118348553717390834329036102373942807934952995886921493907146591002871673766627565999164853547927432369561875521075595844061400866326315622230090660755451285769366211170687369149495550446328627569825456825043537797719661851476313063710753268756716345059590261697573362572413773822721113299003604380190473540265705641868161757811734164892138332396584553224844403852961110601088938786843913306852472666192313455631467636306970855995347659146945539422374400857148908577532633655031343923716272884058409523308372479892543754546023326196868973558355061647865282598246026603602633548970439357030844358493375284778004076750723401036471302779961876822864061739809933009935764918702132715246515934938335887195787014954247016324129715661822128662517362410284224340559572279635089357421753103131608321557990044050729762387513433695720580877128885629196398678030397533881630438620825380200792348278370064802090795007418800591220933577657524167445468845575177002130909922049010285624355392942878416731639094086442864021290127044519870128564221414276410388280529751180114492879367202261018596865168103499604071928586307210756458491784409247595530698656734070854317440057337383355758551651968662316748824839330002159251048546510137767831446177590124764414607229569255470121838742762996057261984385905264701039720934896223091731690995040075629418985211227690924153222032992060997550801028779633427685185276649443081595087333691601029903622480660300819289922758001091133434954428449069660350567682212075112239736764577500399706821873171448425079672094324176750009715923319344766065519004610798345205457513159782677065188003706735445903274767607093335563780338241790059710068515230868331230682645890333412292381267301787242943661858504007725032886901909820723092330340358905019827955418422434700610511697092747891320019526132724565819892117043424979714094076672301835586792672818887466290644344050010994580227670088234102056887357090574585266769819175444165815912938317108817002755422264717817665681778297540691193634765279652872566959612008666547959842369216334359102723460084603809763299521153144051234750373876612132111057732281204906720997238430452390759111153745342696977561400624768532633511481089580531397276190317626737515672586257996217428550337394269785525851060775929030759222322815331478222416119768244834359056883852307352964910818639330545981295109137377951258722197842319437992339226455397099637274584049463296844352293186732559007147837561597781660796629914621226944838545385207378099129725742612097811349360117078108864377464125395672724519090376831168710778452220613380494375586246885982235781869365801151376365722114833259236220520914086135458662093036446635400966598809012645296246373863968628043826396138748745085211644971409545911569413854642577520474657348332729538910374551425324283240973003663041704667651317953997529125913079810278086477006778054017272847669805695292946983803536023577672661817332329422849246552447284930251571532742399231925154724450615076195988468043633046506457376004209551068232714906138996660793475964598101866966070557689399299241431016146737329603714622917901378283703699247839993397655527812658505312638935166111834778763023779834974512590686257946121526045988249000636570047399668415320623422467658284966765745560196493993545552890747905201715136267743357696485472656742830265060314789874528203144813303900220520255610909782067685119029920027514003695381408659665570093884788672988748450897345414649663982392598717662406369576761908482270504681178125295808358849794598772022479998800979902132044584425347007582543130789346121245338991636005353470379116646700347308733083422461264379144553907151188170989167684038482109812537573444411428415963695817253484569599798060824397224783338886752491517161740448787375771372068914126027546739201226094465068435905750606752569030722477041881268858746238662983694758293733110204440478824591985178360746955523098336896640650548463979559439351042656143674104179093534937582205928179068304216050917246173325620705992018776180782699150679295098838007689390181798188121772629682847504712010133706881803095454458708079404206981859178477113861256838002014801020116413184374015850322784504888198021070673042243481718879042935634503225627084625395068155498890676798076365122303679973368089779550260065872643358816986798170441642156062252495476145022164301942801730303031383745196226048941962095947557176405600360621199691552298147026505314449747956529398130233414893321218971986916442786034534622870689926124337507976535719914451954866653317440052896071591748268013774084475823737015860096579503604379882937774613320079826997550665683551622368763017975653354994787049732228574269140909312525870850606413985350707933014910852983780319491455202637676209774549014402253731981179754369109423312873938856017354809613529906961581109759434561082232392398271249683617126655342595437001952186646321097657618996322194887385757167766668859404152891423364979809588524782090734010158167319000654990644672523434716319548634771127526045350902859702475681715920717597038704740863770297993701242963993241617263053851906338615287019672656173533730027074785189403485927172436573386225252708867263311847530052085922500642448789515757837120261455194251505564343613045925566254879334447913052105369442511534014828176822380746924163884745844591134838234115486797902519370396915616981020397800046739447898327195348161542208525315044199554187195701157587223843736801724594297670127106205909626079024167150638160953851179776156602281874675444857464947824142818879469159581515235954584214215095897605764268937109223823436397361406077909747197702231277614443159698211618925258350404401138803077003244332247310288018932445607535123625720306055056369029368748852868631239076456640545331074418221031047294203354734307719765114603617756786231050347344828813133649906643943999788269016058397298320844555609259832967504077666458745276542821733683233978791367309545241153380479490308741355572417898823996640259785583709142524519186051927101538749346086505856191795232625611216370333293928427740061374860259076705618551048153805469705350229620963187499415854757020987656991813843671172586401313122919514608516888213014758454988985245311923416218968466537364189698052759931879463786990457732320892208050536746029605626332774389991130201684057697977341171424882801398500984273612656724223143195735721461689232791045835179578626070858653282815528562891522748069460477449075827202434318799859749565447323281057108822079669427058347661618899596040234941263240265907998671825477738252862143179546430609600609445229626597587628888141628978790638680973517650092836119047782216584563471167500383694069555850447805722503258617371083346577683477431377394917954750082488018594208604692409778027604651935826497248551622699542005253189844999522087024445072981102752055880638594897972300885082256806597716519777647792503216900201831635974922729271565232349437335771730576485083857484811256485352340366241606918512624479211900238687937388122676742082375108863937611817922328337858633148435570979468446822370135241617368415007390077097771223313392428403697528490391798160351710229637849899049804318776466246167154691893618002026127093285719227385734328567014945423774856974361788363984970399365557628476858315963085070592253170739393432016711017284306762454741753429478244858121894307185426004481967261881828550944631122223237684985834511643683594628529356053156097949020420789207414322557646801601310578355552652834489934069251360614976126282409469789958528085575105464293092355598142191200351292023198616047371084086193364684359827709993739456299016663949540768693028747337979256982381972773865178185696547548770244634895525878450294953872754047192653174201784460549534363236269479825773425858946923165905675586867705110441122297732010985900412851568830556489217640979166042524511463165404712920226591459200086969379396991279240987333109150507310579360914768675331713612228484992858592033828647854275352079846640322300243630884932750733459345319466662484364203899552149928418056293773904447707527902082881952779441476720603085913281480640480457548791729220432824237291815323558422806459628766399145901367338480761452294115893415384255168811451602519301470687078375997025501874776186647408179433319028489115224407557664589545789537151505274042140546825610002195511284584351407455840506218006847808173817115678405699618763808832310465233274473185168925038407479475594650433951170298605197644247545014229176935974553658400899548085822272547159291918319073286594910631412438999729540712182669634905289924864277662806484052977878988124409577326737009677034999762906596675467398380435244507001905180178066839458257756134647271408658517649398550559014141928481026213496130583999817266951385366288529592839286112846884667758918078398528976352486043446576210575827222948800059080180210016367162256485841672124869458024888854562418391210721723277207067226259803293380735016946783740292636999133210266958347074676161230264996464113086521061377137768519785309752318610355233967494624349474436362977179712318524426165772842820002572253188958623376106756471267762160532469620602750198306721066495440543978853545758741807682120337652474929676060495697142110791684968388366804258694710788814011985322420749335464299802994595776527118159888077598975612817967628898205393692338634988511413548595993081074586971862452466889308676980411899103111557337288988870932358612774740755572173865995541244476783521899804197697470580386752022368156037546877050482744235317122504110566168221469027191955901779451954703807510142082958281664757537049009670898270972189601947066592126563777416506739247711163667127338339233134745806359506130023431428068679893971070440353854770419617987158296810273549570274195259377001027869283357003608852390791020795827005359035308549709421785538164595072877837028767996543524004490447300242961886791915690182634547848289375794866702452811319034382908061839172683845640367142337462904131652449183857372801681621842043315398220520737849189316306314358865072098084271852040444965660776329273706948960193381691330152089633462240906120704337358807898082822049739823082330201681419593809713581415264346577317962611309411010173660064611870697236263337863239523187013634004067138459805059624777298627623474049865614436394173329106280729845842024471754144518009882142362670613661702965417294774824458438493045011856755441836196847990168838636236571376922834115576359252813942734480100880595226437855244755254355187333263367135311412510617995926151238699567804796087316833750715172336811277782034044089268107595842937014963790928265945304961934173152052775651400857065123500425005652948248541129708431606689774882412715809192882501223657209338011356596048637296859724629785148060158844803611265896915278722797267610836071478994699747634010291422180959966331951816241010382585927253118134894687023721054898385000073416301652095652271389403752440848135217123156630331647713649174879451579605017526895467663625314417790450144774188759888487459998740214574072301447026147218508583697017801915221520909929975557283697121801604621838602361000727560283959371400931616247580019855161478270204176874544258743057250366202489840291381414806279282850956233951622670054730445560315675116774944585849084307775308467447039178709254977228652407979075417321278092361053240531517420053042139193591772857954808354943886168692696643456828824127598711541762326700083905385314743851923106916355554878320544456528710074270070618816240593752470215544212069826111816390010987274685043670060864499577483572497036426486302351182256424815978736111689620436395259853438332267516248560761608958080467160341261399428802778649979615254231182886774458523640554068190703293235385118300199715887629984024787276073407301695089109569222756131195555399813158783694480082601448717142731511751153443355705826215395242058738935286050050650697375731816677221302952325814169362295626951707477021521015497526520416074496046823068508781230930394197726559335848381989967882543743295941678149345802405098814817091517192383888564112944601163383645548790278095399554206310038905261300166364609832523995044483021592270156305025973717817772778036545653678367980844006084771952977463208012285427003529859236047981727879983500858471917413308803897546135136540495289861591125950866930352077596256003795968975823861398831231365837221097747167602768701393223514150754645037819131607216621406089366444485238774511572565257638819305647463477868358494498788016491739514947456091590855643386913598174189379996071960384323788126601816107107107370490402552770801983206705426533707271888609279080865026976249687439565688374873990677813182178340945467391605806559059929879449331713565511456871481360761985437775934805867947927487226183395963409589919764199364362054297855992589689699201554291341677949274931608503764672501258758634980292673213833865317347005115639139907988650323021236615930356360096554370718543227756906547557219674107582504606697418780928701175347547931800024297684661066012290189512912540739333049615323511039727806292291708361816563128145883094500186926528660280008365330068448684460890810200978591497235073749161839728810442240376398992888561420992719857743104258180617679241042303372912099136051456657264161811667691576656059481451264667711064117705862248335855239402850045506550048093858514926560071346881731141636699510180830104424204667416565451896118254036605760542336053613960449104545047289101414289976510966193034418702239537762106138349671607157163291636610226775867187099926001396976091790874195703268660612369617001824318044166841135824043030560049593566341009333836114245064610860097872423167610403454456881072307642989795733070905311157907710428467281357975120202318365742654407889048654287556922494653069677414021075050656631556230423371045689153366601718246445500792643801882857294612148410269198633565934890469834557419870317370260028027922824749831508545527620328570388798003464246743365197689882781920071739645374151191534557805572512928033669520271214736215888638231274985968019889611583890967083608918671500945465841221132145377995382207322647368672284184426769465372399558034544387991809391238896616845966486462064340021001151238276546502477040430362979772422088768148505444121498821084617458256398880447237119846366973812125884274140013130671361064614316680734195083415936344233486846187644242238570365497781564250073815379394541291776372983583381810477433356820012680297975456971478258877389066249886974337085145371030689604939089892458751646297934405627222523940069892313639473522371810122939777482553280615578517034599132152485779023608456974982746099881767485866129923120242624180000118440597292454733498391013508590931296147132410610432214885283717786315366717788662154432919751495876556721624416696215556210395279517801339538834141358372407715778551348238126939365847585870106586236790866671602443656803573995502276969915736576797059394618580837981050449489310657423296347410509325412005878496138220705669547270917228757292076525812757002955250617054557676360025098847699527813218356192713815799505628889555819458848997336996680593131540880516819953619496686783517103252693752158056756334704915662983058044296833384126481390920489885690762502321878004544740151099025243752097910240023483362065893157985704362903170127443255359954930787672858274827312181975004209415503609496354106748211176233952204479362724823548703028901669610232723355265181772334742805292302080864964053753059153096143491937111864033382503035321021816439717290586169567346921505296648479043375058161474670586325975665800108128045204126758432810124649860889165508553514331582767416018026230250240015087311727847685001337632151473609934203313709529753838948349451550658319377217588415207824252053817235603447908722905121041877316023968705215440909055537859150592212804611981050189275101142190245949192620410622630916453203846563930134597430238606305721258324531421951691490750557230683189790285687003722894392298853706935772080794163301189545516379600885442024783609765038390067501693722142753844000457652624517443633065486562274564911314225635483262082221531641398932228820468996341092452772272757928111626690210314141149762078440665271333983162575836394241834948507878185715370484625452604481155126308571885685558104242641086632827014348387156596727422856885868838654489844130172178156628306912570219544919542272019144683751889747513199319177970235137004531424118486725046006779639070343725428355510246447357916603046911877913031475062483865244954420363419505764566036047828497504020470894273033860008795972055630764874893037629241481496440758443896689030593704916235805662519577022659394678417457074172611338650033341708211570594652058734636824005370697059251471580871045002631404226322025608606416640955145912188065928333250566844058178796732558180740899001672152332454425342757967752196046637349847692902019684095784783220212492121890021763898455401285960340531242673328282310480354409991370373054230793322178359688780405897533095195017120788727335084282370027883619952447629554759092424473488944015685022399321296672381949341788247836509583040960457175578591606877481798219146561587845151528175684388393901355593204244883914628339361251929035621969112950232368865586633834036316430627934959177313138752576616198682800155412279638717118315052985803523813084280823068638774280430996940172517656792187647632267528119270382855086794136154344433247488054099876953281815669265798912915921025120280948291399784018119964162982862194931346742451397482940387122920336291912437225164399487501338555238582929880840852304944532628683643844693861447197406648428782488046890119933779929879454037084238952130454499230456796817909802519331871234020612725048129059669043114190718766889867302363193240723822840775438089211447778168610023748204946711623945584942191514924702231674162589194334203046189435865287087872646554929949761561847731763802078556156387134120459959521361756341661603110800585526328944235082970005327811274573285952051879304041985070253277676159266927389610317989023875000536638564538346605802058239498594581720709581790191656564036935464036646905363165755702432521870216588008224453924299518586234480820003391895967306902967035531382766505143639901883248334143833483534701565652140062327559303715468830125040286096351520063772157645349389523324234347732208214422662153404426645788740497280389016424701859942505653802769342897254497551446340464071485014109729804898844463902584807354678632241703740443121422263742443824936103856815251365805260717608035136927902523467647766581330059044423583769513005492539881589515599752219879312102491205925241422584838685933077136907125279100832498390893294577550420633673943543940695720881846319268484684672308558444541623879509979950986135062367812733350000941075552552464357340668319743399585072558036106645092515933954369703361164961681144059902376947709230577288291528644208850407827253018117472344412388948279497148879012248439535714918510375391042082092146503022555939627540906830152823513162885704432988616508517904696373990539705507752387220549095622123791404760838346531825670389511275815194553899947286812477021642088097661589223352283347713020903781774989292794104822099951845960307020361283902540909482904869646155794957801582278364603982506558516008386234806895712354982018242718521825795851837230312888908511036985507141519104473404408126879018774226983109180111598074057360759889495041428007375362474777908126765473752379099448346767877312528799872993331736464256858779431253659214194469984218664380254812524019676058705380823062152980681732629481904604989285107605343022389091796690677678628886700395887212947375505868062359306025409397608520683293842297371117561166879864398914222078066116299318177770148967886403413390044310784453108729333860832080127302441258640389017433081407527138543092996886646261088190469864040525416055085527740258104621404941290418161222610060744371409048299617252361195556465671786696802728763779300795993528857754616400857681493890031512547971560912427606371364649094409014142134130215933258736273609831490854789039098379717387149722180143794926176933484593133966961374464425655314078358558764774267467528851584473726781602827602613887766194696697316563949525733724104908810259047755102429495626286275154902471162876160353297407875646938775356497964930637984595034055246088378198939919199988559224168078176473842991888322428405057415201658720213120531490818524694701321619807922653038844123653331996083695228492071044217702255123025744173344458743405327330181295961935160476029038588721361654841466949216015077352383510067354688651037340611698633304960695462388694562469941904640623707303158318360403135493917261817318857678899337484911749380759768426896081522880402296974746102179590727643287699806988652914649718059081952459648371368705246545707117087467550761717287554733874487113281729544233842623452904264962881058341702896285250560962555339141733301608703316976957364401781997316674876574437082448091066175930340185881181712664606654061481530404672774233767298704343492107364497259243256304408948825566588062368612961891671321026108052208849154169872096335853781763688888978125052550765789886042931912431180929414009757564506412825954929502889846133738286605073518880466589350230769552759518969414352497940841170070364172293517079261547129650220639898903526385863005870936673292815194853659295616286609298484384170490985602418782591371316344022852674290809000349777979451023103036776466352143228368888855465035871043863957531472501627988997782030057881627830396002940511041949009517063143700085030832822952304176610738642555937759596610624006510558362581534788011993612606967628620024478201444528768209058944273712522653853070756628220037719107586319529652372111656657093698814387518212792922375688179263478690200406322524091032400069335763901193843128864157846907689073208896037977739745592549799985127867631648802321164676247864076326906687353252412248515303396959536525516670284923210324952913926396027883133951350919819838281610671351484266406301553173257769432128724079607559982839571438444153081091164222655403835055005699128049410329202384538083120913688712509212521918853689362611980958445595826114490498467402794569206598307683699029726784952269667678199100695047117657414090450425935658157001460976003137762693069025154529990226098974858115056449250398407600441984272427884911198058203250666106872784199305441207102703996455011726803863630438524026959911253371269711894926698839572597148356346031363061449512651115198031033015316801378271189938049390863570804266199684371498656512154968484986414835848753925179540382627709386736368953765522985229301318290771342503678547030088729752011921614619961393921275717839448491167111792340867050476860820645810129714750194488565331273920254826245084098927702272281092032435079998144597586256230645221880870436256205930819189743523540979545103062962304198788046708175442661597043334091337437111706930211258149705407272978505543273140188271677608818032211637130599700251656997252829652252475022866342578011663140075246035054964025193274309474273514433204363087902618356982663450513386786260198906278957575551743441625529573430105916638442730209155693314043465345304503144143743304178639492374708099154087818456764568964623081079138988429134441229008489908832515118965531225443833992442467209765523523376243094961648505420026570944379311124169359043114005808445135404358164240912434934532075477819128655213076165769667929652955665764372191152131676763466468169146391929324906153932861874422566672319072704518354411367528831823563083507288573966995620400182184219075743664714275292956662482842564049954581606922718678470027072835449039556802229346394780498623002291958184603734068248150966676460211740430350391463367765355543616680601438483180127773799266419397704158049903863466307546635388961931854512862507674701497640062646944790445447413963154939461048703905779487075951320316133926901638813992906448419913898036103233954765267053280613914259637052261337444195516591123499635816943008355832540154166932155119327847628917095429207374530712232115291223595784797515595135700358234250837452599191197468485517607704522030223268423574076685505366117288648872895591959053148915772653706973154372093303912322644060391374588313137105348777051458342069090466684774948964444219544824274993773696024037001138323208222188505372417304432517242584988362504023730820723362831831342910626799926091889369043075109883476174103692071918213102831841796105694371551437856409142235932592023607497884233319892235225870695411280769597837814163330648835615731456436484144372019123184273782073235240201813681609320793616727258194146662608857177520169441894696057939095120106786128894620089053447520952939623424895567322076561254845630862053996777956822748413719190990302677486177403305045561068576781993226991421185022631882929439129009461126312459020618943559361420853429028643222303609342906638005093741337984563271571242287513140552360556534587735871455554668865782130343807350406282456147420100639373016637992241241364198639715815014470713053302704652089888685834830368390839077695277048778653346570930554089380757200671284150948854834253321640906925667514161280929994044851997987692712850088347818879458785456440526404698998434527476896277701875874129814230940099607710207909514297278092773474994960711115424606432328345760870250448075395303089343464768192953712367727860849786498256854709212718926178155077139256803913517449676156969508824081430850430220823779718348976492031832255304813568984956047135412192516981152750435795060107766933391622766487028239902810687325323879557958889686139118761467794832177411388532732428898668597032851928746975624352169608726825738223677231528053031400297295144639686192539896610245218563985364663478403970765391923306774470214261345697614805660409702348656529368638722881792401808854567041471532382328094195709103527271894112962736962425694557144922233190907229087245671058461135330494193198274739293881550870505095379389514233405738038515699318057159852506694233979401373810027435773441511409840946807599761895817866568765916965276410934968047171030695374852375448651296576492838649747824516207267974837725392243983280944939525754387511669220190411973387907302432162683824644658417553712102017573026948166255241346308765049947130337708155521949515647343751011121954100471427973155338847768213465379770927566562400814933068435084151101551145501406605254097404089606087179855586278440313463495088122597000089521250332889185533520891487026806421042807317414970469733066354530282117956975429077108031559067197104950205692577539837403467873288886523858631017803112551306062142965408397648758672814365562821007934826523236217891653486872836050905357215936037629541442670747552267556273369106644193479856771131316831630019179365140925789531776796824332333576903311691163908427106309836452737700091593877840359267883246545498220840409573752005777315107672102243089692718961923390778964879137802620401949100364218975946238787986071661600204487228074729356372779109360480599715486310848161209839583493771298451611674461170005460810930841612266362617596320944453467688741645562667332713817720560716971933330574477578003145834473157601256602111769181764404655075771856792835049885180798226561675745522865272946552540620511767713159964990776773031779067616024327293174922653021708967073542651531806954229074441072216069599944443765104357287972783649369478191559492928039418676258561748568308540640685217560583442923814146499650866215609035633805496989381437556020313067106633484500012977402188389881746699039261153600042213044083818964707503141292449797459983980214651507408562993644592694378500469366686843682560236598385469062162884103364173090335393447062167777031336818780622641369940616238813400728799931706771150590255531717702008146409676387573788198797113845428577974739686431877382227576925724036171781239505935040782289375293483687379490899696237145946073997845254757589823072661124040707727426399515925110257611964211686013589077749026915149104861351182997974978659961242388081492698920418680985393121589266988091681150961611959851178000161999346847933022127378067001305613639152544009730696494958846447795738669480774797138901187033028346182031872352019677186055585774982929211647868958362762675832234385166690324953726086633959182182430252109396179237164006110508291152511081866594289123248111030055912543783524578925328078994772252597395757866924150529564172667257261468594402727566251720623468673761187547938448410722120232451719697504658004611120689015230991198126512671027232883228871748673478202448439032469572878334793419623449826923319707774874322183426497962997241954636525957365122875086641957469611454196490911455138985195312582437267404301251256252050978628727454123830709873440807833508044716263542460745005014355547477571818936489043244946452146664347004128540829570237091397699906222359889525952773085685230791735808344665097093963948041455655330102323172673909628638389288466980496076236486390831930653965138149443904185377396240754574442750804223935298270619453709245560676125655061256585016277344562781737549987402395492663993655600404376604488502585266333785896716554728012625547015610369183938083309493138614236923650566291072658719956551703890196144870896991050651077505635587627829268628299877330108821668921804353627119259126211545864145318374591579387551333269723239979057735803463801397218019746076363056068807467332641906762612575962396939371884737643794575546554171341714926764763951226332332457891354334009173178414287977081985613950451293156372063730973185777077612427971009314584319579243041571074797282531614451250043246379978510332431541304920630483487937145761627379980362424696338052675936005654427189497915189699262836592185992965212512326442375568717685419544573563750010503462703396137775671503592288013506381302574956022977361891687421989263267673748670462498620274268442778791859403136173504052103663841447412995355734016759253350791416765562678542136224575239660856665655046434063438111533888747342176201108227788920519311032533638795840470895161088463640765749493047569496270697540074507758294168448216728636802880025286354298245662050499813596338662432880256998091556360509440563842315278219914890077159889055264473568712338216188414913909325009984722485913427500603007493420602609837650765095884841775982337128534789947282272620650373398791360825678762942739285601244218551890163905398810354265515003746196268115350546682520677431999318467614310385200103547097494562720023845788590747088564107509219331390071333815022537590538973238856586466781291298502855819459275549245675130667164250783824288760375074538690191870471902251625439197891255154134259830936374066846710016202159516029154913007532478751344253396622514396084486428581887748648463329594338110580673148573785817360062979462241660310246874060726070663825465023528967881467629182883704237467898720364258101478610931990100484412211382431075955606955985667679633128381650465429035933969019797393077857335097127305538616457486348226467629994071055137150652194797914850256813063558196749672846432975219397940934540386967926006026344004799138835145773432443753066975685749778184584465877649372566288880924819280891835096617326463638005264977600121899339016336449344000387991102407200211702629495227586692804964642326713611711540861208713145146516377845242961762505503927964337552958695972704781081553580435869144253951294627403985052237264840989587746461636549636566711552553099320901111166099238052840639176223257717839884709989865054896200971428476112069948305999695022987653316611761149488343635006181802309436973145377708410775599780900467267139080291913683561498751798302416325034350147717513622367909831817277597369191214224036322648049178567999914158019005055933555423021027619286070588642142215063394206843804339272558056500776581638393077591523753441919136247215088715202469101047984397066586889672593395525774113873498354160023832116497070801267798429752398797144917855462819701290542723550216237490929341335861031998027728923267687146416164151880781501801959273326684160413078593786615714137886771442083265645398302152030843765325286923322989079318033658353087270762108400334504519154690886532809334004988655232229776973599422119707089226257493273626302586205108500313801019613275824082980409133458910727216031870506899281323019850528986812693469064779499132938657200557117859167222096798860305887323206301697520972632722520587721459225738694438435390068684611563759110715792784300793590695716819865292471920480256140399891348889985510105692109149737850097855025942039319289336965007460100218773431551936969538960941325811823605383289059328477115660986665825430557672174962698172135595428975946635710551210959309106751355575959617957701997741810015089119503193426540831820910518090330484924769933509413543086173494142512178394540561843720406496375888633130762878026948838755463067087984843919574237723554851619691359146922862091280392151007056991106176417472308466288012890086180063775389480907363985810857307297936518067320943988079536623139372743886922600290119353986534253098902072507989539493118940633841620816783377255154983381504880339412907773565853967147424577636933590157836650909952909707138213736201282167922194340695154457656035795327756126250049018597510268848466060572867261622052602579052675660706764133930999865086851617779975921553348226762010171403540846408590232299743782341669040546651671432819588610433858461343321822448497721908280644174736490647414716515116192753597163106081020306749793129890832902409199890727997411731358213919849439707623702178964269410447697867107395571626845047363136979060471223765308730431946642798652899432167385366431964214603904804446384132138218692339261881952954708492286636611724036767698063038083012965930488074054887818099419330639466006241285716647755795798538380480190185506692242873526768274130807570296689590437725809677395806172687692000264531895817409341836242053874807836479911810276340651514440620231854605008090188018757928029548948518547516582916026888455069529436271679147462113440962688536112865102189919309194410486005451083962578215111329061631988228731446897860548968497181171672318202766262219326916943622582717559022723922913977821568595098074588912736889420062038675395603662546670441351041208643804970288278433680433482643606836903443262661974429214839180368512982201916722260157769343884113977903902220509857242634293117286921220293726572703918231417898297976505979785455845959112805931554142518028060276013111070996734177741295235911563421020322752870575740030757593965467575829499539556431186144593213303469046088407378942327480291824130275147457210132415301528410081113716889469133486572762321732780287586020463955706272731784833789318393016596614219313781734104527242594824815985378213140072805777868720421164453177665070195284449066589027816109524100489548096604013751322073735746145977454831090287648332985403514458249016622272390764322849584000009196305648750980987197802847147111691921150598005115079649342897619014306364674679189080996551272854401085939336505586596859441329274589433383024301391164524515261064585831654317554141468692116061086509486487708427033808375874324180080039709739420956856843361584122533093659479868202014122209902586151488266066090366859147076325558953906242457619888928553208370480873745472075485655932918539228311885789146438170286062192567414791964606669782055502640471564719159349789559369279229738791936385333839213931931392673981172977268293334028365453573136483837551322102823567546522500790608022416877478524397128764956796289852437303712072409004189335677141587106495222656197306787413886502004501720057124269342375183371154368204266398035311254079292946778972534909589841206571790078895572245366242285350466264366091227794840615241239048219525512530105387286387174148740036135801676045873160944101156000307236741952779388037357056673338243951057468147743319627725457842997183781862271995377725118558314670228636416197780800918763270597082305584597907873725333520860389512283560501537215509128337381594771094790040155530897273238328806609074668678817868107569152537156601389384808345038953088847632713841110202706494521346097122711681282312146230056913285685412643167197636701309651470435071252993327088286247125279170241641601653519726703708084907049792714754136254709279095740678223738586125004589631109865892195457990217516319868047138601717467306646943632918495015812936387994327983184596567808626642106609756116198750040537720203062243143247946205430115633467551050757681837382137699914683644822877441450819155460683854228958013179212574406964880746158949023179193785410259338378051875943866778455669687132490922027634751140979814766761128933499940215184295101899689561395328424395047170724291445476081457888734290101803804444487172011138876447616056554877215086781058741846131659484967551717318493226854801353528953365139207316451428205619110623234543360378568719094243990866600391263274245907669400164765518260365446204482471986086901848923201243096106509614898028076298466360646086545074342923886783884837308599739273449729868874476832677775388222867932954343120470045441786343235552539474657222738404555787225017955119368241649128994486906676587526739514575897906027602462981747416545534998370401560669744182915264857249579300635754400996633923489051250127601577839026948913175039305789768597930638517051081361941156748759453588948768793484801990974663769570274369001409834383125755874538926972025108652767083347461448792998667220107073751391768904152855090905814271255461829427082038493487214045942012379069920049622503168383057906994772373899199829886633932488953936563440157035090413064486544537997740333894894577483751162280836743099573271377179435978619763350266395630230114338916657384466561895157950834641087258632601920359016640163029466697929025678228485284504632211511971784949068188912833824195212320464770655865679799368286865252888119353615915671174531328754979311017337984582872997892872681125290365358620598338578845553621737577533828279560329298169780197274309811107175347789032635272442306510131539853716997130048204869818767517937708046972528806104199075132786485319523491450116432713936408483663428637661361612270062412439934967310506657468477314697686547493513440300816475687798822985252900407773257033220516861186366518189297788104250956978236231517698867617009017135697168134097702901953063102830385054254863727585371792822203897020843832929424338527970836577955036378156397790724666341414415619990365015666023775422703638022041894256415877350184651923841673825644922914023329846446720071378427574898552720657521468509832192595595893585914841796607621426766791274720491013023979942835637730589332271480115341236817273974395069470651548216237816049351337048268333438024023860254046477858217924592272951589569086456152127517200310839727692342983601745942245857081130054964311408766990692274094375293376775571375478120776254723153800909781654864050490451693198810191093715383958809850835070249407052243709725298428062276011257261720365733247590598032084950391508626567343125190667094490842625127862574322317610438871990307063008783344449718022672854326792432380740051648486430174049316611191037228061721913987659997307614001905083698496119638004451514024236255217481372486399100496885526227678672126099998367571340491979923811101486705043052658523011304223165970144809700505255593553719312263365463237716327773402978881115551166605422654054850183693435902376835420466522834174525765258438020046817257205382335810173258634203544626668543385472121697251096000851702548449224737375335236913476510554360398669265614275352804500208589324586723830923809824953652647681982083770804586724223348195796294983911844324221421875452338758577835281952939077179619360136261354971393688877651970559623711460224658121901940309609667762057746777098288708606914047581513417598446948794970340212083735315903625684262262609428429233052945054145278396656793327871703515065968881917055943873939085198923731942441313459600784395319128325220054703283762113161259472303071906183863699112831784724320267116598553583594927135280588385477044237313215610281187346572731773273120463904585228895154587655886461645672060453404522399826036021543666307668586613916343444285929890847158752237680477081104842316530051588376803972510559858010381871832434874207189884536425442748997177436743312478322498833650621892018341959557906919427989158653158798982020495984829591244872626542619622080235423479118996388644272854530104874216257853752192325712407910964877774756715830347059514524836892247918008896903756129986897307380533539577690110209505268956240594952864884636267762513323525073906286159130812172875955151420478826504720539985448210081366827103156309113327987102020746011648091664661040768174036606498664669287308374357485337564005380043053080601381598729484480736947421425485595348869674897294197694319765051008551524174916207288617443387465004743766660453733563204422066626704641457792125102207273965711290364972538778064781547857706946324995989515580752945777694664887831865591275494325512200145491406400269179477018062618150037264099786716434813088107359695997933335512453015570238295777349059201027657560343074981480452444268090798360282202760004490330028765148503090708695168529765824947769534509020140207688332757251409331169593176142713766890248253066851607585092532252253351551036828721855803253895349458198281843893692375315498958312225454839312316233750863885885854136518210917982329848366380732796899592244053192928102155744221235316509019264422507041267724271666014051828664273794159011211113325442378566419411032582302646473133290057720236188288954407614947517790808922700736069527542978403885027236664115197441456395679546482815989682177477784098102966159910338741411452903447952509125985152425691980656717021191715022831719383412021586468612577579940996023410774311485132867777203303598656581381782519520019907310843743509717039155086435285961693643323206155640867768838424200114208280728286076862626188010286870836398778684982451745180225518197728509061212822323911625495645509559756459019010622945080891376700683817784148413301489190702690723678339551542468795111576277852550486429649398210678600536811770775296400533672357335951669786493672523863440373722473921527463618156267164497746223685598354833612594769361683324219095890465479593623902226370825167515522631255396651228811401873943872470245361108607517312339715125102726707602813065930976586440582962877328642743063606583450467092678082150297482181637376779737366723584705365113528658454970813502188950724875970354769259318219690786428964982192328895706549688127864140680872128996626074123062884672510687870094186146172870428800013162874642754818795460106163762014635403315161203607027763336900698446455570401917612401309371666031402521359304618203941481447451373141098886420102513974583995543894212352655524562714113854799377945174835492363482123187708000053523985082979669049752144180356453759030780551547502713624332558374971103516280445859683937915065606577824423127176293098990308465239187558850810155947912323431475835676125483577765993739765841740016129508607086184859171251068978080774609966060099196442697523063571448081139145400366461709353498260575168004155358310896695004922792265624208799270970950244135080986274333135256068291048284501096970468336543054714537466293332194230578871823337584554966461284671821686083232876890459495090323713670563242905148713219937391463859018558470097580129750935428456662193571429540942089678891837811468519609655050736503453637839534401253645342450395853356575480658463793530010352932304934856055369014745657598785652903236128052568552967848975378481039935772072021569598197825887525091629732010823168519731053120965431535178880877080658660720350175712086051294359335495423138926950133955995701523423696578369784148804948666700091865531302316023777806192255266946520985971872324214301047101445134043839605712628145683453912903260421022387684855436063893951171702012996092586573297655583900879614863945981846382250601716870476063450263614379151592356041300276827569643095032387230587875969430914161576652776046388633557480101542951509468348307749733430900752865247606115580198072101334727290661467450864063330920515166562129526339109558326053554816361183147820298040914092628116135590503109320216954575504170568053717045315596687453002284185135418669781864548128656597657058823745803363452335986140559323090257129926823537674566741828917084944485577361541391463358992223362006322805961621733612074887657260253581607908975481366187115575681824474557670919309521803632828767308192201796488577695247456662727700511737928997993822025389100451773984160039284337271729129517790931290903771149352645055523116809616806711106327930311127748120263407161457120683142272667386597987901073193222582681092123136193833336419031607740983626257355783159265339288672957368422377500379163543428827556144800570908301610179039330976463104879105899519592675761259774002727548006595784325582609513865749573606477137367475106761424324217318386881221617496962017535252107543643950941720517650862808537667913628774744814695389864052527579507069140536168313499861672739954831244671130479325756263627786713144637303802945596021584371151172793646702685191032402115632377586421204656682906697115962772034049170383425656647918475631907244286557465553895641890481135347253775340171914674973194685068645389630926419183609415671150137118968822180762400778212900020929742348348422637390915094087568679192134607084360723620164405232098299954769205663339463689012207041550121837158337488366516986531033872867154053157170212238531931068219455137044274357848911570061190408417124376821093498854836084325798221939786098871402107760857328449354252734288807403109213105039461398194195850092357851817038063321122344791250962885447117170044594776236855532703623541903230544016349089168049243694027519616760536718486750773203865171612487243309247127760342585567392332928680818262149196858506174214797835141603043490578217308297332374835542419455067594405616314521586231584071787107936924840804172306862592670432200765816465271434651418515627058089249317162719737302915009210226085099490634103810689836841609469637391055631767616407507097838821042642118005555415772344032915405064049673809278213256134354274698448212575620963103632780871185739484441779324056334865573691558823139450320956076825922155211186144140750265616111242621631622994370304238619867847098486948744004066961192834106250361372795911814065123673755528238996093375916752166788177160889284162662849564144532272916897499494205079320045282374329015034971368930019650977350987185028908322043984948882216716935677847308904779698322511684060466319352003857921581823580130911676389586774399098924867075980402935438120266002325219941465550763144106691717179029072445140641785088392180595700459976604007587734874754203802488937500080987339159697258537802502047155568142928687606708539278592184880006498202114962067878168869364377375158558460500148169827009475561199321683365465799678084332688035531515286658729187491960001173314720400338492864090271397233413952353224075455943543548611047264662850555784447494775025802200159019950536582879078887429598808135207124893992562597226951181630218347631485868276187595286344039885463993058435127185005117404024141240505242604342165008439969223346482220373022664999085095315208075729790795111025127674554789168878697170121776235082862819836102997132340854392666131728838629732058061235087949947245718445291477819155206751131941927234509912297017568247823708054410867930312850590408188213872970455188710900063212146462371987443207103846311762295372653008298904526883334677777744437048404485960633388440338681361041494061845033224056183773349127198177107528649736067043270759573618419173435700163449474468971024895597099745867945745590334186522309374015540638764962284266342607648366184207425750081719495661487937917446645779733320913781167123229361481708754771840778360178987544777188975408188401005137487595159976193618056432881964663955017885241424352498863271602592847259452980232245906345663505754599254103717048457705343761335747205979799417800572392549633919736095797456919280138580947515681578360310469501961381465609165607582236758689040577960507160928568610160645863370698236813844973884904823587769808094426422400165873130677757027715329059022006248389014927852191557740191359251588110473135060833507234079692268359938355566988525033197684576297385733911589076080333774796361506318386290659180239682770421128071339575855302136659906432858781700334375231186072639122132742200594177872991684261884984818541653822548838399167546338382873799605869032087879201486902451386261369447909320963847255183220370509560396589368942139653560781977800658138148978658099164545918140193500157886528981844211455553602744379459347374871631918283128845992413112281040287603938992554609140514095051622990949342200182850605620005770922345930207501534649352259134767720581629607816394946212932654923248394123495203497922083261455449293916651379280558144961124504957733700689028955219851899978897382577725378662983634660780243260369143335405420774794356934505524538259505704973496937454941674390951739695182307001472185754954496338498353268007582663264325594434347315793783991510217808122543541744095872279629300829495969085718323468434592239106137966563191435688446415434751303044163916435617337108740075002730148525022585752666882720063429709985949629020194276453016103164237266782571922059414253902535332606762495737685643446510717345740171064279790180129733134339177776442610528149135669547405974650312090566849336295065805006903930842385569779446140909560022251483664477621104799095290955189453660079243938669150906655798593099847077517635002754590886027558075630391140165291657260439169475305428205601028046137546720778565001019076371478600457922393721890759083093959704920396186778591662290167883652595372899731190666864839742951297914173649818130050057592654276833651476064338681369038698485264808288491715646755207483633293673480970651438196269544713367409121985359014807276625442379906375126357048253773268663414201483511208369524999268280062776427751974156946333553186098343409729434061949516997365626270389146978224506036695301249854188147695584069614738726183357771751212048620786059449800650525754047237182462517432113344723675370878033413000944000985156647663303733034650481196352443864670254927738584871179640104352723427889364622900721710370818575310658174308808517683469530341012825515316025536376948255280136972198326143225765493817902047680703936831189676102873087336731607713833318029459997584880721093159537260678561486513851258049709375345044246509774882634458351391200244364828827370384489751962555921880179429302935445563238566450273099405083147809318627962381690391903233350697023112581473075418341015863427477950432299223858850643384779253714456499577279702391646159834608896169279624349520726260720676366900064301560674212632932358026593625778149504061023243460598648957656995724481516770938443680068489087711747932930060031820765006983309342398544609530748250897356773703898727301938150004929510901606165168133200766169521147914618129244432523506191976460694589730896082441596803875218426559325047988850358148380807146240513594266524390061684132711676156780809931661416714344859403215065803207073612863895484249739222837746711683060306824275248387748554988746562058077390332862845018287049312115051183567773261036651454794343170391636092019068703804493930381178796724330694651356708387952633609355473772442494134771624756172077105937555745838583336886541060510051760241623193113042613513905857721630073447587843577405631126552122070689581624925641088505115946982518084577654413589954857726005280959372626572958598978901851554383445743399049885944886938180448038341361319789037421713277542183121641786278079252715404506021303755943417589774437913624267703319450709382960426042232531265479826314867378996231072232023440245517599899751231262265489007899369316627033499414353740037442552657197401931594799043818028530648603551103286305292140282637911619447447342163216214678327725908255298704197488756281179174939120980185499713918211881061325189757771163012924160372771517124154939501073946118578993802134582331605441956432755600312112696376295657654170947139180784087122402245045118712846935356515039602700561618817072663673863956998157299531576566583563130738387830083341910430895796611205230153052775849933947072561347181792824875213338274171930526121387329294953915135261460315614384338565077130870627511341133751985797438846227309103691875678790200054207924364633522168669017303821547079653640589735129882634647715755683979279127020581793837135439772054721223265610134624278798425380356759548423693316675845193976149156664770284147430484297659326861617289213665498463450328220359910072971174528752773912811320027578057398933139612282504911450497888362821592387497895480594202035518488373275960865770274998253945717254978249229977025476820824389784363689841690489174011018799664878509301541337110208394559382341248043016914669410232296727045620558987611526002152944856088017586558853857523755796651654536915810798187452051824274559033540126884582850506624617772731081804964754772822879883046939294333761378413892061073082665523249628549420750263338386010477994523107193803815670977064007693453957189738686412614029368607926906836585324283175196060945007833882020254930032559013838080366212560759429240033286369318646579729291485662961689825511035983136298625180544341436971432661437925806262618785481714049506267856931675879507225462182351933393195620391070359266299464215813763445786456252033676309264212670035593928517337723489254299196782858607149045285618216007315813493593182179565607746248821802580116197578769577752728530031120336936651106004985573623033090730278888077484217172733696690951465024780661203344804708339295864780379442403111941596253410458956092091661565469859433582115874878947457777536115986362717101336293167724637958127540170054008939179418519056120057465054235607602001487888438813906003910495404717629406517087882789635766333174066876391292437398477148929270300531733435549057438739558137322126205704270682592441348517165602676504871894126433570414087344628903861975420620354804952972008710039738227243470957372540773711619964822072664390871897905821415184987373519220397414329509199325018463357250094990287740552678687546400642469561801692295306726860809288049006946507589400135837261543026452762373384161646795822301968296926306550711098815175161643989954191296420530051863144369524252644967980183370991262068046903136288348030841700301036624451366200230783678105792588094698910539211294533048011593030182752312150821029289973181399926887609963800402002984094315440125636493862784844574813729161500152618983051467370009237208149325564581423092559135939292048295710866181623496929468627365188765414578403499926900845844635943942143960748749436106520561842205396282046571078866967810723722788283336272345140268995807216468896136470138442109829580278263592212023793652226386346596148796165237659719140801679809139877641712104333805202110018334561391854414694370428868023054922960258808418360542241504249255794192760694881836464222872288130568350235386669854059485290911716095041022234259833381529301201528778189638882371270641569482652014136250828457822921360036290856136976028125030484788669674678361145495584575382829376268070560461421704816910378117444272087752523813192316662941610716762515107431661085579691659226037657324441153281266421967067484414258693690598657334742464217590794207087225410601963424668556838672419972825388090994848301781370135518538298349521999037845404863433289274481389687064196342766201744176150586597731456942329635544213837273529929198226808630652348462697413127634332189173269029240895062525750085226893465200795510424216837433476195781828232340170569730927318357334794432460579887746246149449650952955079017542307128667550997830265612447258845436468050904604985198443812143307840673260435448438625471515462883250032034162600689545589906772790280850657489141849309306748196179131688434346993462343158248300921516203023778887354785265462368890897634760488857086003664801474564119626913229588203384039333583334381539706992057832654004595148663017700056705935781345616911261440353513906203238282438420929067731267341751117504799359761850191882643108603030475192369737208955217554952066964732505667914165779429541478512636511610739815476970066155025017006236629188589585996810113243713392795108066830053415423431769303491644209211797066902909625682102990391409387096064763820681713895634939524216108590510200820509020610110285961913580693200669583941049189947154886516407961456993666356800477634418978443900419085582703112990005964742522309952676745075456301634285419629572806745045768027318606829653799101435992976344146075463671651326982317917271681367557971125069281740519679005996559589700808913899900771330863112549244744294275363983211657405128779433119285610066219418472406162064605902623257641324661959276457471306995430777579022813194203764183573250133705604304135134695946884939006465963665786513135123994945446174887830052010729536895781109333306322091924704099785964098107013009611616582537626742836090510479380462026393509606075581732168146861655978740442657323199750699353046479699851356524385769533729664402070589093908275354758845457502695307241211366259767741862042791411729316120392371097818718121210123160606641992925283238729601479264911322818298311149861872741992685239143843296371278052988070356045123608072598325409054164099731775161012850484425514892732223427960289494014868939150874991688073323161030970476961320754795487101459950527680683157883685974544361997338621624442220493618844075926595344042557284546329317893008051928585269786538240708137421197266434226633768778174009148133705071903466553910711886022903615742389468084862778138212653778573813246849185708965010720552314435622013493934680576425977526769142654899142579192709532357245239622951159167398449188620394404523824748596610367217252981494120100516542889137276991069523698906099144575779945288901043833877935345436884790008194337693966470078326166486371297883073287022822232494341027772735492610941517526878307294028987690416177405997822941438516715227194225877498029091053043289639959144246769245047981108621348694076216449608176471271715889345176370443642792880612180434457718973664543355788776536856157283483198056819203071051821712767075883537020391086884953557600553784471338825658451993927306033328327463501969451310724320240038367272374226321758076961097491672113664293728940909410743180641477336852193678661683662806083161202586350211162926445739810513013784643328223996230338659576543226765606242219397918899946976640839508285783786800399059940405950035020412649766706259282417940627636173894723708729542824449403212828853321077633580581670102403993155140814302383014185705329774090865258355190673608336867109398358725754103407540058260576547050389636529297310982454939025614000873290070509891880628371544439812137191365851541960455718176899986178975151768115208491839700358342591825064546337562370609140259084567406719944826366885575953097748573305778000371270151169611709121977043508559775905663824963096592349744930313081101225655723589210630123276537264456524452983723792803435423357818364403903318980791081112464957690142243314797074366557566376287083422202829139333141628013626242796515385895219371985628171830264669380970971135336662004599455404830012558187277947630797533107066157927810430903651026048729197537379426085834757643865893893728047678309303855809471115337946113247069456842635463375809438293696677209433107292667547383190820998692837378649658842021296213960519548463444428521074241453455944599560346359456537274680671350956812023517386295588563696281696994580397221662328358615032352560325227045980093465056242476105054722439569828213891552862767257984672169579449019760536169016477148973953414964921214403411965227803579060876590442753847506237504995782917178870072552402694956937915111870233887604463071512748175325403272234345683244372722283825134832387672499860061102403142491744064308719633737924249088011107871767673483603840449103977183145670616658315391839280861048633954473875123379020107935628467461325308893445497903711022309917412218499703885180975375429819512622215719973025388212824194059068323890117601168033195487748385149853912778071991481995180301704098919811658392770323790407459478061419345791172338249619500780525503230053249292155669173463964401287528378666095895998706285445673446439614575290887058737064798349835175331945874104384944942785917231899399364311895002607307263085041372694850381821273856386404277160174170035472417298662276576467820485082518965356329992215343401242185579932164329775073339815720534697257352992768574860140773867954672311833764526077390702797491854793199578333543462270409371587332664842701100292840874471925905222195965364634388191321733070953561500081268287406989968944257507625151483900147668545181210821714388761648984883704488878759217099661566784401199440092972530387568909317379718553765976248412572799349528457299200006436002063842778421091474989487746764175245325775034003359162035483708095137191104765065680402702309211938821866746007771596194104091515071475492695166408740757554684402446605129526670874757249545861551264529889926516043653814480129747667619420536919509113957151722194077439916456030782367854778022253079607281519766625668611199591215449191796355419247165934351719632607863140264031014146444770066604412232126274454689908050820290022644330882071472924328358470041857262622552981780819105690056005321813908204538101507280317703339569828611796534106453268632631221234450819589986461158589581800890254263755219744061019917883787107438655724670705629826133422933505979504093303169323101449624926282300456734369948668065505614736523934421401134985693719873125841476329635149591728464426418898932815439657535340251938377996424039767934467173422745584559639284758103302780990993005921668995760326729117708512045786503971775748550523965648474746394886587533416525731340503127251568398853220192631913962261392662993125976166414420296172059128604095947055002590858294750988024808662451375786204775337362513548583734372712878432327329772753112357732352389676304254851751642107472610612716877946435202355935470959190204183213369087876121426199999833360000223854535571007008978362050413811671175373999387048840095891049632436746396091725715098364778196638432164729179643339919654609021903115039617078177466967794194200073181972726886254909376177157519229427571274213135198741525295655750711948414444573045917940622932605687215402454117257631748842777035097187358352618186827162731326460701905840875319423410242179963323057324328357108043719247318007564493320024481540477987106780221446038864489288909865376368527110493333519217427783117077799849853419523330326478970458233373144656189715081790679967678145510513389352350228545154070006886018127450881204899546043649890249418315739474431202171680086440079248240093231534272729574859756710768943282938924470520555613563210160472530667554306103083927895284205302761780373475391647356793717256347033973873572183337388327593168175623094347017295748316574146203853466429604929849197142938212059420647564877121489438630583683508235681881090451377197364387114874757419832822388153758813848690950605599856230519824690883905079684232506388447308351232694746319975774817421500256056456869778095182975778661383527738539925989131444191574666499903377614701582420576966370069383899716189516215338918682312704077845012405930295835761343302018989542652583823994264614109829728703117348675806968987360154696130188444346981692779826629326694987330463880812048467785562754897612915476081836672564641122254272514894214659773582829873156351214591411183394733585826254456989486470514738248979205959173486449166557576518140774777222662175509906376640569672548970209250424444492597152455080546141632569844460903145882192760483513542318832041955177212284612689137419623038723771056857314855352061639929772592624251047931697841168631022098298520735147123993294581700520169504419785953763887152156683182034579159121216466512117406679231564838692284420058229926426427738485307573517420301510024224306076279858619983656338298400970917679747889385718070395904511936811753206959826133326279439191348066818045593738074576025537999290149843356467359206617320470163799436928615913028180251624086765678246412371813199032158236218255066417293864642966697424136062194676816509420489485542164006882612971558198751193535980824733032260574556408229238854364850527844117301378201825711515032011255930382103966090831422626398431552811186558029663445367717918287883824802144757028699044113392248002608892903611452388341997043072168612345667670477595804900845340887004037314311359977599426442693280015159156380554201090611171168642665282197679708257397178054207728089579957910072416418093914429804427111026321709127224757392084194022729805292453141592989636624173836685768946589911287027607429492832241130655214461072473751352878184376346635273737164252331464187161752746623929630332083794538943231760480588825419535984380844572963697264561949888409904751325135585387502231189138732924070827986375626246785379980045468818768621087943895908704466308462940904960343337963125657028218196625979527037084293141324553515524346736659572085008197292607948191836134709047713211492586767153459696944903114715478625789052992313936374729656012863438302539956276978584054428005180019699664154934025660041615553388440318611420476156536719207427074983374772918038583444752391622415293069515346717174376221006299254716675954749644152835082304716678656214747574102634001587618841303277712131277700142611534000134482904682405222946411827740144435330353728930890400356630063800241203017142455121596304556640478091393671987743024274426520002181276622498124084951604280138770300241784004065921421716737259588092861072801464497897958427703655303355568885678351906604075035331099187744263364995096785006572389324033225194102331542281703156056495232440253266056585298419125239992495942465197785658159486316166729135210153035915943018013845056651283412736058162443083336465302602449702020905656730056602936914189488995559904669135852188952115200594803362999889171367441144560154875210327936397473770916118701917856255458249604039032277617923485270388082577135317748877777279935689886862248682973916982919283533040268666038559948947237299933930351724584334050237411640489136868886134402352520623721930065920327994770548088684821552102518303385054576882810862100223378360438104730182442059861687751578736066827176864334507554842891155906644962597701273021865428008970235483430197151789885448072767105042630596403989137783250077759042944688290218228497744491466507542854355888852940386065709698260570737897003793734570488104181490849166479900554463549385238076515831192638181587002426843086732174864155553747406049442507124053520433861635268775664534410573567421882205426222765922765402152894416393284170370969028358384855714438363049476579318097973495382101404073486508561857975603986789544004412782097451124468815402853374399366210336414324636625952508217603078397463162912116579998443230798667002729125382276783341754773096081902717823702959076287621573720873756927188316390876110426635805599161419534321530246424723029519035544468517426564687193177710832005689286992633106804999501429052195914789778574388864928162857792888238208678961655837626062958988767662503092715163680343987735132308695651759903734429580291821343007114863856984547571849418938970495082552386619141002723591230488419757330282908595903010470132083487107909120251497572560176736665976603224487412957975504613575255735824129302905625042620290725583033021833374421024009271362177881868393710610023089519593561830783165264685863436996069897819225382753955510287634350062094736005765837182699196090405530547281294258581543961664164318930811836575170991276440579754017949879025507212159569484253783501878195543517724193190822061971456996362262931943509778362177100720101925709243879256410548494166130620062352361603395535211851803730435675813682572021031608333697106372986320633146611621434969925433013901684464028764337023102462059812035927160690717730252178526059411657901550807810615348001702363693880245970876560726910299792104982261030220443014077699822877831289996085591094081651639900729110899344331591480942532199795388983064999629580979679770618060519548315066663301047944170490383682143170928943934476594424266741409601221629311520016829797036324032846051554747567089560091635202399228226118472657006382743784295859087405088582413771441514699090901888086362110205185512157920201580454381848572724241255597648283125174526551060322647945430597888401749260207830324191468419135719055858112804769886764773823732116868228032389564037254358861480559757479547440589297113592884394597582659060326809960834118134504964456675834431471566246288731315418140383272822548461470387204565382848064553185011265782195714864447267398513539839249077380287060195696355314738563918576313978921080175100323960858174147550773552234059215807696321938430153739838024451988874374894146470638747117848885218209958167600070969186320699803218464478630555691709835886004024017986526549214283004071182978993354402074601357430918369940344109589264840604675490693449922090427397761113942970946706935225512145435846478294819037695824947207906493499871196109216082061505526075465901377442547804088252300482373889826350768966040265835795916334489459216078405117598942238162078131090585119934908679288883045633984639175485310930781608558329318320492454268735521215995146989294253715253890743178752132142209124425374467737414416546110108457530023352056929448942059030607631021392373402102384047345254529435159415173082468602503224967747677598697363362215668943466446348759361953877020829964407398809137789500288162032411482548294991678038812469824708171565460643659006609936634878944781535185425931699047474491444360041918849401584870813535432862657307535302609707028664691113927165516537397823371388085898192133294669867903193706873230718533204734429201602580332413834810042932823460711149240554274626068332367999315139938334094996294659881675595997876269500527135532753908374244001336226656134859179989641571622478634269079021327021342977336562086490035550616171064137373780776783409642192143931479032254441277600799904241932464026683948250359441254791461791989266802817256300923012803186580009692058378991809602856286525369689391969437457119449580670280873764596257527975779030716755341958908974983448282526143205533884587969556328514510940438414906848453339958676428881651858280672542378885348030837492439649250103270995971025782257303558877602140241015355347658638432527993442997980111306943874034180940141875091374975507871677362474921325118112936249665968814063370636631321952069996339174790327520331535622207353948939106571185445712606485575831353651827860506874209458058601842655200691942493720516113243068043073219836788036095294819217772923203252052220670301963601315741897647987988671942852518908291369879368180266967078943621950931979735462271836405228140783133946099207209187245023805623675121423404074943861031253535935335922809460985462776737349379775825704563002564214444647272199743642434548586327318684557042960519767678720795297715529146604915557709924554577572864441283664548155448023328953784598048634977405886586064598918922343358174603574414907155650705729492120676895946510875973943082569725806929640252594086534194712265176703879928443131060038034752331887770572029293200617584207448706245180704869248358034784979092813400690166006263916198689838682390569018475589638787242083460588780580298806645865744990152720254950229060119893826209155924013791907857279570542854591047637566188885007149739245653851773928840175692782481444127439554362754593848037488759664506894806219224642165194445720659302448309784646386660307080614892141468983925123380543834756940440768723716670534249867787491030084983351534100574715762486911917306002540138932160241547471473476505817199116124720128341459092136041667243035100938863089806897327577757440045085004140444121954184912484566891387330083250800480044011039421868515610157960561518971140721041475733622650134203656245318012776322426497742026592198203275852630916630783961169209669307813490398544196790469978001302340825706976218332373660330392632895044340800655418823006843118744698656871811150364660091002526772164949046183361673517836265732135559502563395073411724064786285554086303917321514546902352226680513318213134979198589277339538278701936821786391253727034800559173935416203365315121602651585493765906464162008521645890446121230933961949102865438878288916920327315505615153947816897014458961839717749801686019959626787218567634298759659398555872866125401359595020765116730526151793020193625527861798204917445313226989083193117593710168652698630862283922909517869676252257431488604726272320205932486773924858118661264983759231541061623223658687362843156323444104150160495282839744817740106133953657580355766168101469432057024638038759746184532796471911963438598472023079860715320715991160396853835231390180736792602729563014154846312225972948514172671901697665787239204119040711906383314088265841462240720048723827196077903590918072708691382290695597300777033004802847205383432668735789652724685577436532331353423787712878842593252508975349734869666844300145702288298109728624174406536541221693852847399743147205864485039821290760856431380690762482328996202766059605102177559945835274852683706391018710284860941774535960895050380486861400754014253116113399685891767851029398515548649985757207927425985646720739714390392247379773415716885278124747153845443776072389664099237127740335854652347339199997406063149873222186007222062260128579901279501778614187931229143902289906530746289614568954490906915804063302191774989503082683138721564182088683808286499845986315123459807815719395942964806942974232117856313326742270144451413238138410945227442786158090511314728390685854362726034537090363656615138217670327583321532558133612616051114989051963737325557284492909652764704375296104477001776881235951870115999153895264693292557027345772149932168763939393094283047833029463713061625199963631971158531263827104549433057073246558994440136190926223782669766108121853615318720805460721419040519464193275698748263818838111996116225127827622536939079879802036168574589150411225478067105668324057849158515144508858706236377785323366368332367770031645498570887109406255609137368609711082406567105749499217645786351847205801109767879260801764311265838784513727859261809635355436702838906656848901050537161547871718331171563302728908613421844343399491789502060244169265956520422220383822821781668525136638570484077992823153775598677963923176751381726478285257543849797259138963126185802692279782500081114438551791503606234027648808773173084983145230029347623031261229524719690407567851637091315267513635954212878540536543513945768196242749912168259670976140746746296408047070356015644756005606620066198813527372254105104223429304210168253508923612122740040385535751838566765449675141482415777063971850652005981612851755295324230075288835619263524435482330006999469669834420608578032346831596737445676213405663009260941535904323116087194031533516574664553836149029039959477511631007111544101542073224071621726456513907180279875367246005557720181598467165739953056833124679424701236929403318773043447580470541073656294662941391237178426464780692109260464489047797039359798555562262185228578256185236172127830563484642514007342556368647856388724830500510773349855986045977875503838127662923873684040240816124098262619362535021547068188170502501416423985219748937541746601463563064772633182362478805462981326585553317534361646906100833747652424157874201386036061392580918437827296800782194161589967765858719564665272679095066583705035886676662681791762800756176904780084579785978614574222269095067371436895424913673031513618153456298439462479001568742282522167622512711600294256983724503771545070450026972097611007430271613510604191256097414772914661668793468356609161500205498340062974232135745645591777095371253337489203096424960379661440646924455290063709006504179981779966831588178931933763836664518034639470888268714352420278999495463494232392126685593341796317068424870399556989362009375174786599274524802895000063463712111187851370665436090546064529670760586906818772374300933756145310540143248324553469517273065723197890592293320292377294723096238112951305140662404589936059429674047598599311984714321956124554654072861752790188090920975653223530087622971909204092733951364457779680883323359383966834917185326421009920626584776043655027840837492313865316430952541797226585244291389146343728733989506689252219635406218744729562090594533718598618014009040032145587109226998160204477625236066566817363637238636562443395009243750782538770241588761093860673016845330960123556727224201511905710036480574915783507107003878275649862634330723968822800117610543224164854371482394709079836181354434437155073897425897264384062431495790304862444937568362906184536294835580867513426824593382899446749917570457250290645137752853066378217131748930184407131908793140198446375331487885438815078550238371741194404653834612708707261762044040941738809759905848541522110782657953517050634471947573240552584018354679361946694583247458995862938407705757748584428402522752205297486702573656137983187635421145191740297710461312800140620587503446249801753689519512414191785386388580903467703054922017306726443876734879271092787171572423591199021070189927542458212555824506861107258644342230226163221263326621523404277215300303001795085626149438711853951845223435213090981986321858927412022938933481061678451623626560153012746861855190615240345488137642499030460355648596326592623181757345364938195764549906393654697391194605448227544970597831774153079161750597230653183737115193380076033679625079995949539800990080378681921043352540570547355200686581965460999851943405263742304416373634299835057076215454607207015514092161003640718250707845463421396361596073989524882699175652304079175172598665309078433237137242625973793824602063051719457151772166417222454675401519929678063243948160472614172553510194694943480384841607450500888155592207768525856149060862485854134630872618061283789967282096987792657373311149536949137533505643198950995982775643876453179269033788150124998701386379807287823368902075252670238034863324771883439347903255976539870305815689888669447301517787606519945890872592344045878627114106012436509318150693281791642509498621832421544067047834712951678106859711050165363606707163837954544020428152264418458051445349778763174662823053506974989935019126491821785297977109366704549471148856073103995749947741054085282457169606969885368376920111298375097251034708594584931262272525394185903156016323900177577215744561260371028817282651715574120552986269613315731908446233977290371355311544208750519469816460517180189902039524080232314999566912206569755229602625630046902600480118386840561362846922671748601312044569082467777645691568306059097730943617143674713817314339792861604461839042701539667659899757072742454250569139940975532638521980637577158306490190138346140576766044808953221428547153435031359523722550159962037838747507786848857502247017227023220948361167312358844781641079341486932384518730640705099383276629380059002724456835727643120799147467847661021015894187352648234303229331896859001926378634189643655015073410353856864891534282959438593603548530968961413109361743188633514335336631471564478147446444488654845754823007274050968338859324686393940370596200105995044876519989439874008662094289592414254688783624438687085035057994995749398462176969853691683168791875029553907199597317297504839197106495389426089857288768549320006275589626367802360017194452617374808644626103639884811147521267119356613107326452211487104139735845226768789129285113167397814101912242465476434949024005475502884191851650404909781492716627773136048269933781084330180284739266251556650175666326277545693113341366138969981880994012908766571956881803384075469824506730644036465116700985587230133368782861553504551716262947919273196922917603038159363203846187467227037123045863305359473876772998025302367425343610855963660722525933355183871478744200331204685406574817122316758102057253485863700299577063447328003679258405743484151606423928696820240308896885046393442579235794423687530969658971001504043502989887425973960592734364640492385424609720300126854526516693325279464719086338761046719656885876419981592024815915841080018476869934719954420528777699805236810027595469811586872531717885506781414695813038892224630520849879524383762388672550086513318283328752689453211985541368539691137216584528430619148441537147267883358343439999733936289523044635415830634809563094206752374470922802818103522187699246737917378997211152408930765551376933209365020349234925179575436811885699129088246837874368877018806561520444138916637513157697163414933693561024456679442853796193881774857827114583961225973242785418072900177454026275116068805528735112408150229100998931699481839093946086191491854551419787249869240829382068053457335347805893706251417011501001007244992109573082879977994945197037833495393540938162305345277164516367106941233301230644326439039226990639391827261602151358854161270802454974327049098806826007446183405761655961663628388450937799948126145563063342719335429052498312352489325669687510388444702674447688794244119323178214057062144600243658055134850462429303543854139356295027393957142414767485809362468425568174326159051989438050147199595300028923793201564753951700047260501769652101855971103831611314712394840861107481663583327062853477997109539309913812987875242748898859691860143993802724405150523915152020152888477203481325673546666174144137195664926656765951480842495799094750548061841273151058528504406443576579889059225246189341738832064366138710384708110474125165256901106520679216495414982817891967539756269036926967986541440487871315336511356879165318598628092350119602260180346626613137337340778061809652679501242765938965014155804903492888396390912963687422543074689073879247603147244376493112384008834657749008156705296212985769065697847401666759507996477205348616028865374621512678949252817812902872689501768081874685341635829916912099856516529600049228873450405475256458514920717290964577213681825696014203771237876586605686855034100100021330006549376940392120157744770140776753530609605061781683942729538126661415063229046065903864198606622169123569572359737131624918132996069646847775471325820533695551679560642681782743210120724947911939085308103585789226864961694639637434126137592732818961571445147458648127872774206201179493540816600636106229265022239662684682159352958327081668498518077588286159403576467045870427449338549180471104178392011249924049447481184597822998626915613095512120222953539629545873650191680307593663115458994731268622568115174808790811115527902120205441266946991265989055069503092312634272011621104624808601364811953832288727421938780174305760237795549592619952494824306922446271206715315285331662134618016187388630494415243129509262726636707339899062494136361150318743561528050735124442731287924011936252463945181146175119240357941998154928030844970708270875593681933575729562470981328307246015949766000965327245858978919104104010227323708189277871665715138497328549973743808552192187797051188782251310723627796717564802556909123046134446811376232884288063451815334977095974174466189199052476780973377459966477425262380328543785739673123395744971319149203077003824655461767648937098674533994879989595752178719521478837646125906273162371561461763052633253755780067256536176995551806736887104176570876232734930329520656697690710756586140468401708646321028494803433338836399887633202851486131450592105673804856257823116173003162593591547768708184625742119318092749544952510750512821086768185704869005526688689513621382949230216423127443037863594639162797159056261764568048317563251519436698965045082076616275197189841945390049683108177796890592910021751038831860069686970222204652130301333735402470839866773067759226526891458260156461018686803246223391610212503021609416595531980844720117723083539614671418783235517423998391527358728972213632102971442682317992797229152634452021290504219532076404816626557888432497899596845736120246717987644523092321264729218598165309378649148591848137850996714326643978588753902806825412445674080959874970708630420418501838022641178681186325060826625759632500821036158959204641409058621272232880089445165427278600145411084276624188141606751301617018585304435861719828192101022992877052438349883048291981633899254004681405791711754139378867927797859685773817240172205946263393140569108584840274961529964979340529309584604242820005372968329635567257506773760012388885214316769440509142181754514681351839401550369385686054780277507978564867629272960955322395426683869028827057046835050145736336055951748955322990822713895798494931032788998026932207878698852395276717966235425244079237737510162478964492028546678749965046121616416601546972658850775136095722163832189965921579127392500484690582270881835543600670138657716874665769435819093162603397061596416282686738272684343162657562654913790614318999932387639566460380910483103267212133988485026576334751318766389243987902893663271353698222677948426588822487792227273024119668282587815400184546703242334483895393763113065286404366084486986068449642118692259903188207217651886591401464713637268374496567903940933604630066761920351402448760779662272836299238345853769959014508166277920688657454002815229379036178371269526152892570106977290908451254778782440611497699393273300707708959087086765131803696597883015575997706187288059952201192185595104935530498095115452179918185310286418467539715511985294099953244286953817288046699127047481255262718595622410856568510253583904482665302141448819761160005499126958793939155828171576497111783544615410426123889278457839882469071347497282361346787435881291348273354360755145991389127026199530083864426226515876952875594714068491630687306619219709460383726258068698127090411289911118389354993759413852295539454738952227069270651469691050362946662717785309843116323973612874568584546231314569312754850096104307481987749902741051610262041294779680904479985826634633915399466355418361776668237450736954134909070421220405792819089743419198053055607904125668360310390621748953352899190971379093992282997274938455692650823723967467918578108931577871462622479272549604461824525488360397529587910855007061487368262543509549468717464382680491496891275555636706809914707669173180895645070069736229471398621958669371859322880872511069727699693658375352463006040393063678176434489533198312543197745647595631272370672296856143923193737949004051198174603783968040304640716550816750580270533022755138215364081541911138824786110626142545674355113492787030757692139794124982924117690886781890280206118190830845238423376758359223309399861771498350031042484255935069558862837310498533175903449437267793656421534897563621463998670251596830387122212537946998362298764801038533653752393615002341832332412101838162956999028304284459384526212325762710316909037051257223839072126707157745260674282593613228877440105059622423477031222769033476737752805968122526339199416565103840331072750871636477984436672521636662842852785741141403907948663599431822196195959113147330651043818954039648056156679309570531869786527365708182010833218879104720860656237875228144859929203645448659843140067627958212197423886129085773728787114242757948326658925864271168782691805681105585306817663136138011295293025531955033519445594022698992213670217342067586264277105227470021184045865265282931605210344897318496869798574720711898306481202892396624317525103108447398659903736372371485936483345945721940739656970053555172042741942428139326381077134745291662800321808243132340424689354953299623203373700247698069445882056637631483511878647078461461327199350498371401589751463410582625240554737676432075346514768802571163358281850569813920176464116094121070530477834638875507556897391855004498388887121311629933436374285420861894350792252307150388150710493527999804519399747115803334124384592929266288919532442967655591857752420031241877314214702071216073456864209494131808498456430188053163377229859556210763963412446269653988930277989260617415742153561720204592843720359517241687764717357581419253302809708606290597893369213652233883824701401607569221209467670413947659405807684875856937678953723773975540442018701578457110128188989237251075050438636414411048708227969161297271530251159738712020471426718553512953913331518637217295950163100399041600148354274233839896046381967585047507470653001738513726059570338957177116878048465145367697979350034007879133685675807451051497072362335487327663677165323098034808416255616800918683904602933259751256112063718134524848620458267359536894529350920614279899357543264243689339627684903612323678246655349222671457655929201316633145348951335720491725171808505288778610259956624299803040065469915137194419205574404782294028644027311972611779891096976009608460883373882006662178658092750397212041701366523965380458022466768441521548852342350096543656049986268778036162902487866134426054572778055476607533493268182137535375315622762868977205995911593822243810310873967571747292982002147897736832803714669349489389421003959218415251988024399899699941780315132462546774480695377772381344257322887849243021657272741062702632643136452623847024241175412926498192293608124706612051649148182095057280589773922004435713218202624702266978165180870539073863090187426613986724969575474530939061155994124314179806739907396742886478894496237317836695711339259417721388675701574826857685373171180213435287989911442065943855740692278186059498507042719950277891282969575113293111885010961018119639788553648036340129174428192873935912887288661704459852969366705182513996277823659401647124804636181116265246124263886261637126704454312755430060725205946652796625365274918500322268774632933742524753905272608726047751060104723297169524786696629838285305903038565905211493773807966790599597940736308389725396080210867672691865177984688832715269968096626578682705224646042044938538107601679161567974503326357743942921965807490812207460415690818029073672837409131662333686877628308614068169596650574443739574974392805301214077799699237662168532960836482984216120919413342847477764180615310446286964805175660230266634731406363201939063965927531937470002636889807681715922918179309239509881204851558508040925507590151936645247609761918570864729574682159011232670032295778798088028899602457721046564511830292874834886006947904369956465671654576300144223112095913060447028595542203383350772046628852998863599429124581748099543768924459468337510779826427215525184473259108810556155936288342123172299059675871522556980079692899348703273863481102398855858769200142708024649528434952089311786702727514000081532827547158615928001212930524393260834339301400408189953258205015487659535505580031414024793339534027186710255203250450328568281286885951282653642217673060592723734143459256176103065986063307048060995397095563420438542899351682475245640307122880664162889378900454777739659904283295481584415793488338571592871188335513327091122403331467658397539681626973299032345391379219246410195306646683381876853425649079726078050737547753115489083565355435684602147023344199651016503769503399099114262856459843128749747788251819459034633035094333454102607935566842659555805600345784531930710800155888043508595590585489225505045246145934240395645894732517586503295650169884019578953575792086920611672919366710906644196320783703667710612948003581402540321404429456337404990429017625204108429710029156455003452493636852967911986590665539331489047259460275286772491646173022818520544343014050167956300383049020992205182166802310150228530729615446832442624996510304327947929990945912086983669730845357855204188882699664782143008920222416574585363813972651489511650955306405714636226729953097365361544381258325412804217995099857499852153622735666361369901216281199491077179009909419350190918381465050485418005622714894445147539379352359278691280243117430014125236460578555174694863700977362429019650325735222903597440849877098654125619134919573431856848888567811701049902247670599958115518495874065793354387515432702633446868966776613441940066031360635841857891597039400550178121831154978291326681109257935785220823699236159478495473893534997077211143741618999494696956578507946778339952026182267844158392022694908248622406697125008287770939729020936413117259081332029862718646354912674336152178300230763989039141255947059636441889991405542069553919344531968217202799734974133796801478915919877457078992243773537644620389385236421216228748699735419659999494077493643426987313282075226710307539733264213958980869296396832320857404792823721175062910760095541335864826911210619438505119249244941511095994025443366925599868051142158373763549640588536343677918704085122797868925374401106053058161246313087703896983613500007772244763348474089488643099780569422685793472082938918391925271289522812222137441908020051718180809531839821313305234247626385291265559127527984435085586098379058254187788143774407525392133409478971947252443722632884256159183367413042980431884276819259315973279843024403538597130757947592344437714591508506459127672750207865658405166075415921404048118278351535570786846970205238945257979517995105363551205438563811446808086300576707643127256174928647466522366809692772400199456968790272277949286304465160993159949347143854390920086732790412685386806294354871541152497523171142296021224615488238843566157331603678264572209615636303569853369502796103207987311257507239892418623013267794631405248467164451085485944796956230438495600065194380501559339054389484563830241883655783958061986559770123927052488642629333862319834446168733077442054117756650759274813073720269661103419142442171694114790732119911332522094407947376976467654228384160101949181867237976465230261573140682688686789340863978061227662780704847412318057484324014690693952309431269511395346229644384332928269714249246095210989462573671154826755798683177054221308698070145518252355194971913419764688890115682294403717431004075131361109850377964576264186199488477185881104522811484132168736662552878192404182889338480104759083540308635803728052089902412747858183541615239822105128994022425017288305829889881305079038573656203478695578188561996057391997783859692548442123425731399014920920594870558821802337095684118993713012796925288611839216190302021477234297717750869647826229773927599426616626154425261459397057350249463016805422448867570420865116835727089035729011643793838781553110823751674847877795041002290052428601245844318327190544094195589367009842945764133118467745850803558791640010445860898393998260293092488246687484004507163397016063400528644292528102200131955914483702342598232590411151864766275741321712415909305827497989167148632452439602746078061698102971586480757966807152078622247375202455297078034997873062256419875973663090760780201857428685100677912450997334616275667260182458853904766242041407800607858746623211957072562654601083369457153050270080393443741801455971914644924237539067129195541773821756914700799966270349573551274299729228480269051085420049314226131565933864312291145991564294706843099366895598777888317893597835890094677763078510993850563204036226793592118450374261486654176571755731817412919561250555198163032891177703752851591075353319064458207972793735312119010756419227403463902307722546466357814176135529450323740903128391983108808976123802565334748562456726642001056327494437875597782795721070134687383689383152849543496110538576616605511040346530769451545669785381825148914856095955304562236049236898500946550609788481150232191916525141527837207402953893489729492884471286149465564702496770445658243855850995465486645454838365438677195521568151459354651626697485034744869415089559071413740025772858475989286753440276338171238619783041338247875369426519035983442133024325750068636229333564247642097566198598606402801278091212662491771875368657574143109136493947855782726018948738900823320117524595187977813497638143615016215693183709837117052904334519150353487436891075800049571486487832644696506166051947521974288715549150155827533721143214040177082945976444236164236735221038329496011887335071626646310528908093353890210469149198598225923470691628325959250798583757318806905385158753619938696630973422920667025025887978549001485437122757439129160354876666376477777893243541927758381487816042212216370032388094172867417022124185496345800622929376074332734046828391549935235536636032481386734806218577134010236984489904962626856847331865246688912450377454303151809825854987089535353855576314617328663783120356026461203381854032397533859777415729720827987782823390575085668758794407007399071478683970371188259114760999589894606838939521541275303045639570298974925330515408855255529752010967606396894281858058274667094981064687146902788451533146555186160284198303856632548013507581676767392671133311340393064689488705541159594764417503759082114970925416212185798149544404543255829251339255018486543326668706814086808783852411887693791772444665431034236546618799675737355585609596816570096788412331971308759244000202971014529740290965474693811022666342626672591045625896345416391257250009570375916985085823298313428400930020831837014853306663719594888730117462393505761576555458999894188263032096910719893836072918135722397622042353074898989552687417564727428140767718552526857062811930137154003807309664615525210382723469421903959548220706161467842506052190875431045721608988830647978183829476762398520066368660207884155192295767177896955068024800928429323361534190470078008856258263447559498905489665539578665973073953324451566148605190981056175085628455265677115839367499783219450001000503687804636503306429477757956620938923677350126164410384032563788758039243594068276228705456346201928298217703862529384479961154269027517785582699587140512760830392144816060708148994804440899093775122483785883118827926292614558883566098243073354680469962589885447601548538117597263996891585857150792450592333112041336434544740977215466426577358898372279064673317422329773689719443856569793287846105425536069935334922087306022560036036862863598539489904392988881176429662525699020266154245784664309712380270626442293774637474976306016785942087984403492572453659590851378316823471322093814884626490680111920212539558991176639524367444603296037354063920408478962924048954819260210684521186453554816561252589702010150887982742582174781302962852073432518416051162112893018321811666023409500619925888194893816030980462611744827879213050293440712992842008786359974171868597511417367946926116097533744697442387457831806599637362554873154568394337258147846425643612847308609727419529468155837241225341055701764237822422255945284386160076749671745807061078308301658175835249161493306750970506143119061064263989262612287660179947747168028340198725573549702787502187473216269043469620881292387951419231891175470335705741448686537478013054285033695198474834297656698156555760841478161040185346398548905208758240402287266518329573814132419352519471634962664914803715469230565673284552218798503758231489245389034695003670018585449480512310149663118623313510710789189626023740636162766727166992084417769141286201560917253642077769800233740482315487779714753271192163970246570177977525099123411283070069426199235172842066690560778954974234448358431269367106811210204782413019477438572284881380216186858543316018420906233565755292777881909546276747845803794168341067298661972519424876066696501441401497499696114906314541786665459765132415512930551979942428516174245630252057407220245595669061433740312377809014412490885718740783310235740241842640078777244182810192617618706783836467559195404013871505223636790130035074639208794261182216924856831189033098305793163315206541757486338913919153735143500506918722694814532970144604595920884096226281383652191111897758196699247073953741430289987120546892066772411927377523024052965200524362961949625468854626769857680541464860611602735428829390789423046151085776699350822172419301188124443449279030126415066904057691550650039364144950722564796773563323959580791431710623125837438486428762991965618701362592387760857195406435183612700708021170497970785280377318603441666935035989923336668163264255004393355490981894418676036426676521734381699688908274476183620081878227650531478959562057796961845876925602356858746257950842281774558395416741803190907887954475718353826598497633737343295690055336388567629509812129955753248403852256835751922413643217769781638049024967471868066072752810992946881421366687695452945674358129722610709246912728304337274566323541454998978141181521440914427836600932747266087015818648267011239827917208017845395744950001736853563500953111604389064601597269075328260023019583800949184874958107900976238208171132387462326971966556477476971008033510719937363929412591605517272441972704123498284783765274772586686139050945681529753975272685898753965718860727346320875427781058754475361217883796769108945816126578805363049708711931917757954708622413343291791597927470823367550246465629302129696673149657507431175691927777279541912547348283680393148475448273748161423472376581915913833450448299808505822143192522376936097594431958685032073432184836660036918666267968554002190637710300666373755873591290176475056092145454724566721006770078416447669361138094706459422304746367812162449326223255141084172222341745537432120426185250582873662932830572341624562132366520469444780637909494406089717863182100239111060577394340441624161481806212868968677944562972822348379578291695352356285671848624863463181822061692991974045374610355430157543009759478893549130943713437810691219418566680676328053669772189486585024345802673580539686275925875938118765785066001299986518757523253835640002589384510771567644054104039482216572125891426915621510010731033579066975395420672737616401896422370852648417731040115503556339409215478997044876615712088583059622325559528927943390737903088976184896232495264759300520670335200889608374705332776327348465404072224955225668619312730585291821898378379748995158945203274987309367534295073110928271566408264394303260502632704603363735049254185447912788458623945936646375432550153580789182973696566025631265630356953653331878013369114661373574418297582687654103422879391164646188700197313276840976538347922528895263408588598662130905471550930277151781281905800061947741369154597111441865420097012432652666348592637567746373058952286523586310687328686839006743534941262803674113407792921585379375295599588616491539907071484870375268996936038571029562136439599520724111556951577829480388557771626908939249463376554908746888996355937080046859435929278899381856432961958711670778072469548360798779090208993923492802818484356538251828074443425217048404556639795722488011942367714057482434052519752105199243998498419464607488006629740764714809012740573632999909906116876263966798089264882385118840033444150655323179827003546335594619713137708911747601596383718532396498286443706586548150697943208142108304598069129714732555312584195904020913109134068826372635508447377891705010800927346626939619768651772498692942938833729175947464793692710975589922206087704196477741140217324013853285581437856033079956521313270677456104854402811741527598385932250577820078597296682563970562670232925745946656082753351933844719824119965221887790769390354263051113013230566740860389307592948644716060423506173621850407530010224055537608973739168825317224388713560953430861989040036945735766550876965507342608388371058281777054280783666327699400488955334353727485691895860836894797371754851662328187980452592127985313878794625495476915731011094375516561968388378831834048195954066601095857146036277453497909479419400578942682120805044739503501305041474608117495569999925879678692484746184738345116754256647615729725704367570746776031599936807691444722200711181021216839511220345224658583647896705643833764261448581854371677795769379297154395760837639625080791998207236655821882243656357862949911492006756011968818827126673373002772157914813086679177366558602705525538204340310239854550639556433306999945068195107958733052701332034130580103309103059668210441846595539978860588715687472675677456756099055224595119243622091008033720547055835698178374912154841688477220492620270549041123182618545675945994277770358841043337038037545533188351871361450467672812513515404016181899781471677669384386051541339139766953404581796316847414607522322916608523292235108586159130464279120237269661760771009583138413821853541380421732956617347578350499271223046245260147891310655245293376424476654767828497161035275230654277224753808206064827229132025062418719901087942152095923825335065741939063131987834790159139678917920080040103266032071222069275823693498674129138611493319072621854706388280717113645842298596726018545033591685796593977144908196632988663892385579234791567045213718431015980810286522424008219409533615387142179867482212504933326449633186841417717777734010646739940645676832125258416498151960505693889542780141676094719040947300041834764707144103684548147075983726866579463621657068975873320884868380874236591739212009638538928176657744550161619049413435927794303613289856865269563274554510144420986037529330942129001962626238183071539021866170315733992534596613363439775736241118211893228088949505798317566339200673505934478979059668967495637722152943389488889849395038005543627822213381712708345359200191982643795879542774818346413585488467383183839850644260120715251563494035554803378341009958122180515858424169377080471825619054736430998757891935866161753994903017903742362384647471706347587326580373850801851184489647792476861396986437790631558137359898805822896598908903463433377471101594029021317876977469457909251553649118232194809820919881852757660032733139498214739629938929059432114343445872485642350655991927152654095338849972123514395634737688246415743105140241177832062815022543688950269197075368725132285006805719221947392044009556396367050721543188594219568202900512222422385383626755328103829450854750842183994258551457446301670221197333426763820980495067712193746711838586559984736341879049896560827560114496749293366328416191336816291390981208218549110849670481139849788876161570756864983073700654426674641018760174703086921230048945860899969687404195012687351515361462238560217430532715750509372655321699428079203586551708167018707023540891841699695104717367863558774841416084515135644465777358533841532839735841121546334131603405063873060713680402419031424568085452017080954690851024955127241178961959998805181772977719758566030223539101499971218600083446674240538787501203753625273739097934535656032629115614298480310951872384049425997777835454081721809438639090666074960219626446669155644949136749673015286924231571512553066092741457710517197053977792126860257082365343601760079154625073253850111737154798041303749372503745495985521136229369296413240190025922286701171508993688178856978609689631013809846371278772087247866115166983044108695443553840485669331194957125320208502232678315318088116801110735565699954887623485744880809882786266591038321859875517601352929221612221429147819053549921982108130571691922288620552188702237287682137874298522337259014811573213069591174063570097351963396142569595036331106802312864107890594407205215057690404756066647833970474415174783153074859439465514699666106406910741188316316232779755819550054128290973717103198363302101472348876806845029209115290944343481420551913285055503027766678410949641561536234091130337395746713327003439101339904275036210911895724086336160210798101907945836566975623510336688529189617841661301932342551055172006720417363090414756267757268021378506808855696397165749233058670791722387811247092136448944654315433334265037628554965004247304081384373334934464951622034549914477450185641569203890268267105998549735402490839832138889105457842134168143164321124841160315052417589333961978871744497281447630238304015947650083973780133092056437788126860359225915442423441844732290333645931374492406772200264849758495471773202593346358752772920396448045956086553417187820215160254625143757005415452037815391664339025674529662550225159157211310226828850698658511075566780403720184775391104040596635324431766511326287668290189957802965759998416545664563071143312601238790686458554089360333220980445232058615022472802270070018119321315667602652386084998968915931168402030173710087419197317761171248747639554186639146975626492406763443889506798183168246217220129475508365008339683618310779560963364813237304836014121229182396028491433403515729720002470630185323512681588406034552796181780327417383383135504656245543996361604777759351271415497209044389605628367528858639534395686762065197288071153476976737096764872596472969234065519613043307456462663085553161715781822654877148631931074245054986585186036709983247500485834170063477702144384876749755946610545174028588896724043225254148825942643780305121530995362451447060708831996470685214547192022404745851007753286748429138306319125694009586405763050363504181151163911820372330314923194942401955945208692468398997183666602327876598591991332400241381881037810262965690589140204330244181711709934820149180459350443948709556634733998426305160391237489952524671663858375475446378214049577329115709146537671250402209023668890854157285578293989608334013607782690384961919432201189253869461421442529652050638718273170571917244574968105194541122310088799153554099156866035874708750972437794179887613078923568524687368021054282576190230981756248333564486961936762537042514993247569954039382012574590100252209831218796487244427602591742570622632104284084113289308412436145420417466889387240901419237350788372922867248505954286372613282664807871971344884191721282323014287916451868507607011161004979128315568549522986346954989297176598307154811192929079415711264567780292313620331349320863531044788292353590073036307570800908858875345392382666927162067194718679611216175879178110299763910109030768476647429431494736524078376585175891675602022016056713458436009195586759416513726040762341533202303627229419709348609790281479624999275096307587516942834405063181496460722673659497545079393815394521051929783782541122013119291909697993606004728770882679185253415758538102293973713496123162549174120769907048972105733146008712139159976792479904603989973586747744274122743306558819434224178765619496629148185467702712283098447187332948033464390663350681602128882754374523408205889781105552797508437969466984770139334664442473029057247913602997714788716140874225338367486544567106291526100650339159293242160085765959898258998803283766163060965993535738853606365532871132874339625276750425893044787530120228177785710220868418353057119121452560997357035502948900844309945378869224127044646593508626530203616389347832280767678313980524462152255194488948718443914647152886587403634118331331488583167624015057097808917696996291408411874312512445903375492875885153090693923856413197978330818613203146330962444962089718860671702420684227672755093238781999347223454002507880016670852864847043008345205679118853080249795784799356832094905573167052889413937986870380414332966967026525475576914904378824190688451597807704245451012786434426831428660602238748084097266187098309140821015273042576213387103216367360979367190010029311146136096496928115975267327186549969958700419788385466166157841843176365753809245381026448723680420135188211880839576820549684434370062496629615100850869561198483364644808084444419653160715362045476970817152273676402371598199402572571709358681368006964505331303650932687542202667547574138554542268270979956320139414590342258834554752843344673000974609968136957789993345839379948193937268228025557030217827058930191686280143241470912222765348839863122426156033204556065048384430639782691221311053468736250402790112537324708703622148152111709258937263993617246805079637197244377743362559301342959549005452217075769634468537666849177000128902687738354267557065664933216669480071691726205975313651950777648899065459189770628109011370272654829327920543857925958067616459833823394452893691274882614674892365729734017774143143031244772985698828651112862516408585735206070931380901904783150818130261063991676015255979048522647982826364874815344283475605553479660395038902275798720833157401659799970766425566763399862115353674033103212691570431852462417788454789131815520121337572333555935644169855288484648570777247277289868278032629551043293709065105854044615834887424989697938676215354246108402065656010548036492534158581468004707546892195551603093998443325439961125925749749538342853077512246213520692645199008825508052683685123966158936325256549136066853222006612511156974742774791993597966968270375737819493645639416645305676750828860781406077435458794948877538634048284748249257085458484712505542324923005544886442131452571950571979634576299170769078675450163437839623410766809610445876826303519460926079309022829780500868583805943461728819827049314649809443228255135460116393378729114334267571053322565015827473120319949353031489323031674623032176330929330065123790225092273793426579213187131631901953522463257368112718803015354563634023742510993265977243561365454586756725337953175947200583696812951257810124387588306692014866088150593989311625881086986726307960087376703527236392739783796250355476596125509695011895624099562226424896525680715253740468105481990036254827477488860550651242366843967029524369658866837103185556474949873009498018362952252062893073540788490761893957153541076957546001263853899304494194723873029026881009800574275952461393956540226511918267260360943719130788490816651502085722725487691303987684025800697726154595215540869579625359280457677945787047286715977933965410597959341411415222468762567303885662907160525123479079453233786265050212464936466672542396505227887914987593620465376062915163946454196617896836196530712135506322133466557262475549609686173420952332565891573935823678394497762002035971597093153117908802115665397343425797580604610603170381782232151471516144025717162661406604177596180876716940956388952110815105260505381692765966663717604373903710850188116522587126520863618516134975873683426378168776965426891491313115873780788074935338648476237248189374590334170668264322888453221770501833048730100187692336316332252162065245597646221283266775686274894400174249188075748759602854501548748605472274148758485528294878541123474217224495537088113899043731088051887528509516704267949386178895525677959923035592293768857671831150398703448003343232610814808664030920367912234667352122979655380081997135214124507282127875287192313426711096545589253129914968555899987899705564826953840418930090306114367967355276954345580236732429157958427491864369622825050281475086866347783876499332156361692156592426826712774321953534117871513263172709014452833339556235275480121401579383641275035372411494007205077385448692735146661401747424910304904127381091598021374693393407338706004105817784734199397881163796850415655711235117396860119908342421767900604638945100180833533761998862099686567263103714076044791912001330156017930716162237219345688204246733794959625670081393602404202036675800027057066356300180671729743949342191574065843609903858940226403962065739171293278425591194389410770758059045445328113770471625878298199428571369562399215679754523441833625225148616388951999951142186646318304595082520880129653995481961178784861670608592377568736821066502346408746181006393932827156958407867419855657808358956889624532354535075898858726304136035195204218170969261053835646476801112176312036650400058305663932352811994457565129968123569554497745286602389637029218161951155246545366302487309353666257485161605133463762551544953627403335023058056113237121259027599117800472042165582026374006876927544912377673016807068359414567297780418051051532731226677064484966795132183975313966206367082517489821770497947176438928708198575358557758442517671802107412635169395198394631571165897325740213182770017507862055555802853558590748689017259248836797334956238360533006632858294401395239214919007349362306314097122788265635667016136589780560792135408270399563998113364854500468627596904733426265327427155825462074987065779354264469005641420812154150197543492953006395596442619038959890615222047603348626591953282148699593536458267161116041456242353711056637489103063200787635378142529667918595692716943291159978325874224290412345903805928999575358674877461937360309596282689147617847931270608386574655475269262547612579619549050389212702602971144412996550767695933380925328903097620426862276325100798050675050842527466740344139590698493226152411803222469012954274699997876557733120903940907281256683008111676750431117419121580850447692964639801325011022666951113472248489705072982106781512983953407570654260904721056985251359901349403190458770955465332154379559970451800949934107565303589689153303558527850600981278695945953719208802548222884012955365104454831371982944660961722635850168454312205641753946496871328656093984777370054047206077449611951202934078476168643896468369533539233311159959422425464366626467096945166843017051928548972325142746206877741800563489130646539898259006467646520308909732192319535021002490540892525945005584389854519657363497884773137821120913849152241065464153037658526061577194399843775145029336356785756946289119422370574798168164920545216337306709794126023451347856634126598884667952848262875068684331704633473850012613431948159844396336609271686366905022146596789385444611251254387794302258444826666124365120440576787483302414162488699612427639746605777912961755911592128297766618950097342753886202081731558285115036810908589095348925200234890562288595902202102798518352910372987816201572390968450228582125872818479652014086102470564775450621402645738314705286316391554104761340404468000033047172304245196321504634295352880427162428760339026542311136559671145719899730536926514657691320835040490437452185313497469657505977908795560569074956351108630502307857401446931549985186059458486921242044967525603141189525671427492524179170041470861770409129133891413655078860328895183124277904509379693851270558596713523312921983813230442730696278581600499063452319596176814064611846888875399612984746975861693032135963163836310309058535552435157914313826136302904532407786926764713241344745678495279408026357659168193532396399445065402036931698774964185745373064994453761242527723813022257303915280937992846314337536898263898321004647194086268294312523507826586165667021755083783891414776671060767941732638976429921649471981810144050225204927367259024011115779258451828164900393748910086252318359921947617200345005647742452709952368702990863087062944219341506622940013457776847019186899716934659589234989100263526507088431383731062132068581652303277757512917170201300121200037942105887157620912146281070596149710047228189866449536346423100793058641261068618148875283639465513991755350657907760225768708003618131928625771144957713663997305980600186055821165346871467998501631254460424631982054277106395647950605047265643159291058364516041448540125447400423915852407613463841552230629653744115427264306084158871430227327177987323776763809033390936680710952663735906266057716879297336014627181855607611899002731366228186584395252704553076138359035392814946157769650505633548053296701236761591008755969523667537813966935277422776845239839075621428294484033829151860148172367496181993595568458081886948721618113578772195721196493313803939956049237907890983282002793560316275647623855065798142137438839211952537472034898024339809072424296144929402083658400821862145973745986483576947524312405504668106702351983656167398895522562983538796680711901537697905777741905209382392294439405037936075343586292942170055895197378529736725384508845824870112754424914331131892043574648569766346790360929276523895721180235228322660961913345198463543527395514802766112910536854509012061604449509409255642040537789670440174954611111387467139267339283871337200625743044928664715526610617504441729691880503663821936486252737204250025915782933403366725150129428521042848252025439589334778087570378120758238920779516864541868419775081423641688728328744874586825989727055768938223255238133644484585437420285560542553258061454422044309522607475212589029501147742628681131201726025916304639085764610780870869666801224325040557762223964454226449005410677803866204561328606600213261074531546566400971043895374786806900948349797831395326981375514259941192021523464440517122847947026652828670319434738562419698775342613497815070225808199863735887798777301529261667303533526323741924812125997904876752680395090797629257380899434269590494666786304983803476025153034516459837801268760961291226076110899537909949294189699457856160531143778083379940797413243923644111851670649194001815980844681290853395957839093807366427586983326891880969348990715686733931275098442817216007461282430946582425904410622731178358364952653455715984846837497930165468901116869251450200609022643537958189021196384994741560133753003235232964536836688696132615735694173305745177293791593516422513330243817755766616401376756672437024182325114237718127815842305323288627682241921772287479427444304754509258605982892996971664585099341213136175835261784982185948221622495916917955964347021857040351992135145441399127062342438628464979364233107593819395597616656407150762297716591344367140752691631719935181317816545988890370441205568733440577504053930295639320591957092531308312995450199947972504448252437820765511951807617984905276625847884796978051575252157319307064719384227060488168556462134034074691462995566274360733373095269448587421581358172759870212759299792927066000860726241613797119895748402402043107411378247030444102557112802290601781933487496673701698909997700213868519877110078774825673152689564703853466037223534458564757487152765122701629134183696911704427289310375976188492668054016523806783815397626601205304292513848703559248554812439868721187785728714997669555455806927794964279019827022545517298409342677674904870757535920605333672845417171145954042737000868126281648102380615064212439754996051311424300904387356080055749831117087538514754631506458374207184299620430029073500883385395346886028279852020993240717778511272192069293486522779815245536166919021056987942318424872530175771464002203627143595660332117204690588685328329639246303385091095520080266180141807333852604515655505570588005922750387646075884909221770531375459994751464010785231759986012137768316376765096840452465730335827099430976129025999205121027776122045572994915254882550436868366468218052909061667377333075724903169470204988095633726114797787242761905295321951263901124232083331894048333824918292181980456834961930436452666810774427378487645812338726820322091191200485210314237425210868572977987193436495979917742573173516638145821695084357837488478551920422908665868957626844715907536945292937658996238940814167783266484128125753687147205885663670185966877350772207323577121575043672176275910283374403713631458756558396707544736023898993627906046778368926227724763647798569741163220097408579367683510271870728107706015044440462200009834665683031106855889922258572070904258382676072076525410126368023834009234496175498102779466363412335438357217984278347293302038075098983667548255014445518879205051176658760148688845905135783873555808975816125490179755718711014717579015679226665994866490628055921775909699820760702576654830760791528355413692640347642031381128290051029063703922177076605450044116479121557720305507585633914700713618630699821085909738159441643283563239541879139432822361778001286280568523388004947770090772428386532323492783796687336239030669425948793917424486134638456605844382762275726087225942698652640929971401022803421750137187456993203489591631459996332810219453567499004849946908753195687480912527221930269660649095406651203325028979465452377309168506268612405411865095975827631265877089154397359189390182671079716650786768738397973519033356989723167402923163140183709550252719994377487991919557793385172807215365548975276281563490588147739986102430602071335718038359799161618163531690488080353325787357653397821006643550018001684254179770003516043985329557092344968119937744687865696406831783604702866250328844571424418572478252716857671899733192000212338546357100501024396438843268219863279510873033059529210503704656208175817948469988338915136968515914954712026305454016431059497783688832527711771440778870969539007711939168161736708870914349554857612512045137842401290723081965538684881402730684062487099439866533581715448213708580424996873523209182928232489214348479629998105499185964262884409284314373002901060768704214790096259007045336703439084878278027564238813156406276186895535499961810025599636383547625607996411847250570251005280340051939462536400372081684942390389883607139465583060773655493867170707563093110376220185196647757142492457429588325669449859779623907615340635275403100123739099087963515187194227516429672483659374265094009302811624703295607501327024671700858776182044797865357318972415034511807235583886539221575742839746466438367245184674516760671591221860006844916895154275154020560566235270765965445894939538021467896559412681883328397149692707332365501340574674182697641357722451844830397194688396286249102513788737011428840626374114936153522499360069288511286611632676844066507243096417184360556551622693617339225428026536682850191176968726284553976082499624236835698549828876643321071985121300432497735466701333538570814571758341200153944492153210987637635354245458824182346586243108457803725430823453086307639796872263438889786469360727577701094421888231098911073912398559636441430903928157518940675720337664540061484167520102355412087812288665522023778380422036703741483352588850058603028743312992618097849687721748150203363130940219066963992820162507412488500729488507168059114263770096873085018794899484604222162580937284011536780628693965606697952232270713063539368024381366255728781668396719193010192068970923123299517079258381820206126506232178775162484700725891347455814127466833788290068428193085291829943512645476470406053897997122706934099763439909073957120333981041093747177688016891291561297953855102980944705549807235628889594406241980277191698372602831886804362845273397752405386873610503437099600941511144863406425888591581800654099154115295402462677923217632687133705292847676866874231495977287877646628392851685751952639958670544448976951746331550475734574815787353701043028961524927043856283819860761613042668243001700433512222640413847128051480075558414165691321545663267582321151761026976416174301442178261783954653808921752779215926455348137217486880749621397970713725040281457489835323292846013351910904577723894676855323409365053384864990290245956863451472322168750800784836087827349514435992899368373509086142769325490515363202948370571616255414823488753533598016530568820506515907370054716027652875222240412353211220807315723207522476007410183022435739392817350969204608878773618690803187023054884954928918985696506721450648508360239522988318096187008556652093262875022347083247611935582324751975899500634865443246706876427581151449008081876061336494635871718104265745278717705943788867965757458338341615426600245244409651037534060258986706593116649179856071088021957080461612677320690041316144421825345330428142934908689240892581777372479137414500732113396860260240804287978928388276433903798753981428616718386573581595480535301894971880083893840773095672592286899599534018981134619585359414719954729702910913181477658832995721965770879910237051323845810222655208764051455127170339386759082949352943187433266233750290497324939017344867552175392003941409813987256285881389619336707348305361792688303382932140935298107573274508566262362735210256870781583664248586037072615509301071042954519429320646412704783720388022520563412745697922553108995769123674932246372548512855175899191179935694150998050067623051059712762646487518613625218047167259005644030975335122408277533370229516656626874534713113499691025477912569566380304629425865412650336763844122431594375281527879317747345425737890875857059101235737286998034365160082048303790164694249198569077554732543133701491630830005093158083255617533591107000782128270691183046633044143082775840777478495438260140852331854889035897961031493207054885950291941509647825615453702381444674253161803460237849135127524162668178551722346362465473738685557480159603999897777204373161760670341992201965382574208909170115067414466139758540930585517773346334357630163734772014981168243472001930979497021015220671197911064139876514315197111531907622719251949869057729149666818324182794731884750180439891728216621289401392337248317565253548085905953581992027593932482018404761793705005976164474403246027636157136136574086690425644183796589336203161516555424645640160497557629270326790371463244307238416213985513409771578165037229268970542008769290752444261897738232635387854273701758871270832737439130118518511849034016052786271240061194663294148576361534761762276819213992534959162755528402357790079218543475753115656469774971181721922591093769229049809769929926504598491750323917568835874863762527361018890877537070100351738040715353318334267459984166850335853969951217113537692633010735033458624475023635196456140747570319469410791258559565768676772299351115775328160914101800189813681405503169633433505653690166003350016155255459770903849353974238008920525319319149828855894398619871204752124376754936421456173910073753076936549901033931434158793408501616913719045993712136441951119040309332975496717201516069725435055447568889583030299653560709451070459516011134268832566023104330629139607014626134225719394208389094838193708637126513749721507676901118710435186402473417202037340666556333291337846308132386660655997967112287038142731294884668674032319448971287513465243387455533554441967971183383220693968308980535648971576322246157153095952099724195787036909696329798559235012035014502808112386594618389074035011664033870691913237236382458054343561102186152307608898466537087116081232371500179618733940930008463464021811105662984295107341087836971657200594246225044848772053692009768156196806464966768740584545233946501470317103746812372957215846510183944575719892376717203196142290672653222970573018583705118365986426434491865558821691165696012721882748925560269339075566507790964786956719846338939527101260471675705221872989354270244959166912377662052873829071793261742032207196691435511298271838860233155663519871150978949943628972786478707164646999065459606333243818272834548408897165730867060233175292249623587573502850693485996490433818016545910738421719708326867159662271653517757134627417443750559765326742770448362528936101813926971139447783464866865317211762398533919089996314763861059635382677642235210197931099071217344507660058944655113761991849758915325157479661999766836866258695871105457603445470254954863391800566246695393903150161945101525587328375808076996257048797055654371568945405424109024915864643717824160429564906093720376578280386484279905327939491418279815872449837936233784857049382349427118595460771900004759021071430480145948202324866601481605799846089530985950487954332724916506324793142747864122957359102940523274556372966043601788612428917555620505807507932219498522620214295665894628283941546998248773382790018509557211994592857978706192023168608494235046332066696724013527961538815435416290551386541732209228105178508965971871164374915164581414743077291102306184120509952129078187531592053263455160345390520547415123299111915941420491264416647907082809832513125498406295663572522334711602084738338359839161293076998742038556958978394563453840272585133079113227503002369771154511556437021781154376347980689635235057738822688107402228098294556388163964817395056670989797889173537160694966074042657528156921190463567549883093935813342246951292658067875173378243744844713230445571310075454472012171404972422217988573792486435193154414390922117606576220360002440819390914287921279531746283011947243789125080644856013350997020524669530250689720678227082239367397403462848910987828341040485348403430398637854912708559686936548991483514901783505591542170888576042633113020974862261443772364357005611272076826760630710572483010754608033105615766957604251310109907958140911418554000106918389401152528873154797040776120208849527360791273366702969444675997315270310014277284076213775350209545194956168523210202567118242867860444973924307401774106505024919137696087106244670168575227473626150215544982514765915113135908704007496938463103705069877832230579609723734017152272729697579200254306101193792053343299140377525812013127199254148291956605023293065548182013302611879166370742670911567087945521880021707086111704348495361855095655312375700422099071289927556712632207946520698392069456968371342560177582807999418593970676569254719654500189266184999988920755778335652434154874065703761221683783822380483111826300147179080830478492652618118876059144037389243599560527086008518479751740369906410692179675299451457430494318217925946925939702075717190389188337878624045849859231553879095246502579817049878932918083584525016434973123009457670793200512907315719140946551890125934896348273291378751133712789352529658172407947786628203148707982767687488765828443956179824933808831953908709583214045186327221580148585969161102347323297073232862412713530441769484043541211020383467153593490064473829785170434226054691562669752426524543697058829131865358820441170470214173027027119427621881121492357356443779952033460904540590269449139061502478363140164972481655078706700708697306818083555221629036547668271043496607341219442404234541063592646726019651581561935524250307146220554725435785760059446798952400442403366837861380202122320278377501780091534169625531964021073901716970074404153819125971455734438631514604509406253568125794714036808047006207447578768499408646439781569420485992390452506931685116492724664605585297096696900273146758451200512131183850022794007637045680691171173507307081751200363001203847308196743259618142383806555350200990830009011097132274059282784847175674646274432560637400513959836169533639530006604688061717146436374138429336111690093398644729035958802369271778326297013750968593405045877786586292575953632403061592394531307771220758742055172789515090641498555535433687916883276391292857990112575385503739047927068762292997103604889789269559329404151739056340304179901405922675746691953674492423023040492931704916246727750086162813492663725861652205114602985559484653157442949614960166652650465901874904697145867119420319289328430250373147435238278462806103649060395504503174890157988801676150649726314812729295722101127084957945788508347204503133712286508291564490200435184716906594327992714479456918169859264603309552995157696001453489267527256020355459403242805114439262219155421081448995856759428325019305313896924857099863068827219309657809978429810707675819300913379881533964164865647816440593750247549443804500253753802728874294046075108312921681209510680196107595238066384178945771064964001984809981061253839540677780434825169827002400361384318272902924779618923495549907784162269882803704332971201641638985140616413061681407165721259337021338563507255417329042792553314699969146643436676796918517791878220083830297580099459216930968594340897454334052386405210818858502913342804999480702362299694942130513895278112057138329422632501124886287906522738708689630378921263695125584344777847406812173758922478988199004185987871597020445801776193045524271789499006734974717407730660308986280631785625312732448987132920775052576665606235623966671489245041869396015945507323332089813152599145475844852987477834872700236376001512898465414255520244567717650626890268371361185007234435346833069680950314718539051746295959346679436407601415466802101979341935492831282111165489891706134813188459172451099742743197589782688617862074496922581139536960698415056694813226567243174595634149850585836555792557137358394361765177398861047123378932993057597361478341930144664657781418941950207680424010969233782608608292956414644551950085860825473722286293995398656474513555564183433613693253346343729614221407340594904370537254941639691683766097532420925333686836850010335697089114331952454534382734494440278853383043628767249336557683131918375447311248459097178396143952317160704194658744325330549295217591702504263595981697530884891447772062015098783736962499371394499484922765700974380190171922660717043075196277398900981701049844623900610564362570005318295933778448815582437092159112107857154238478366603901027726379318404822823986270911981616777045844209283705519597949854517537995242516233901221530344325398546700077016672065818044935329635047696164537668769904784034044013380589518747412122432396066866459106876753299295906291585820011614372290421986572497513237568736345937743489388849734116670846741272376429562130982626989792449344009671305624469216988715835758754763313672121429433076120240257033132463176481831953475336851020743055046777357126132577262205251947590344543459353639942516985397418273535666656690809940765323276208151041093434746245773749599102000294666936488425589128685436572408139027666644943174499834797475572243157039079127926186193704588133988227272262433044999653567999977340324092945564468956353915043763679987317448247404367990395523387500096270405742990989936781361057309433933176685916109007823698426529715846123328856726415671517835804274795708664247272095393289383507886135877457336053599072954037535428271583334409753891240996842621045212214254260839849510047022530248552382483364363299670889256540775446634298481471120290922111105866133070406890284858728331176520824155711563629075821531839091615137027161918928781930663451215280496685005422606078149357712721974677207268802148714037216022616182398688892071913124171415200556596689158054152579926477424093146824338477987637019582769798558699412752642592758080339805218308542570660891163568565398600002114289101187947728186388160552948087542529867243194787266309368552272274189613461792697126930407722363651139119874703615547612509566729014494479550628981275307972572626054911456582095209978089362449585470343794434220641828758608484006557762615518264051551765854404533475350460603737741559518889509379357844039453713469097812277714343336771796365310053559717542432884732839000231937904520400689332042631972674980781031389573229280421472011664744604741617024626835082530594290862162101650958778417740447291443599862133202542501482922838490708903147278370282722088530288860605724162653947051035160228596729770990066968653861644258564630430714635032144747319673555872795939053560132632797409087427490241737440578204463537964856314867920099828830972589246382806687090113026367146679097131315653300630065027910527265265320590265210158024402827356590259901710451254341566556788508752774923014453685111265154993401630932075267144170110760438103125013911683526812217271115268253031739187609580272903481394033646619195701725896392918414708929768573082418152800654261308039897525109394279264387955208516500255198558557632298003010793206848306894727467123891059608698124078342473827853311016640193133288550830369920420543262170321496139047670914882874541338454751801706699031731305341039859602467689690843955341544494342682931054746947355024200706649797323011238056068879299406792245422094446026607170433381283113455501765451469891177347000601967312839681996044887461709920008060280734251628507062933775872995489018214381637585375524338389557822446034447390459020640116537127085291538617098700553389534351198414780098152338223892943550144206610837358614964890727989620330501640529580680070875408970893462289550287535102232408825529058762091571556163740903898514759595041590595100082452385292865665626692579273984399558772921499994761348865490370117585203991019804107797282923413679897166541834500698593671547714639972909881769974615766486390056231991526495877566635236273713836532956099589061604111020857093205102841786260644504675431776084132239015618636230417115874738545470514321448030801005492871539544397403653621166738502546515500924892409204192629470558717853143691795395535041101534030845167765190265852720593268797562521492323245601201377380179875041638990343054693077033163044942264983292769849742672647556285422718540593515325041188120463142969341236884070510319265349483760478393748413300340770318084656054190578980604151115852941111968315354051007361327820956826923823792430712872023894771768232114010032529769771165865914781433388515963177368143681561787860335043361533137061540594605359330434542957567887905878358985523910850105465678212725365024632435878113797754436902379056936257793335307305374860794752235613966322825746239047539649528571600981695063830494868799595093698707971178681858105378690021377755170619088180399638687020032152662516809087819291423457319173146950918034533499649961808703819882754574521230993777790762602525520221380803486128039173510052858941696925139306617151404136937378586615251064098803879427712507396204717212238545954432851856805363721917186022549680165711022321910710439885967870207127957071519630572210140240215320628047017261848840839867104901953718753064291261579520219687584646293955094482808933081176364596155599012659113972593781000551602190712527094546824602001251108646779725233852277348015191164965445275366617276430595792534273817412098005380699546569844989367308624606387911389151861185855049390887443705039815964379741342008817844248539047474105260020284648088833385958228747690727768027417832989537312098051401640133301598160294663476737379721690394748000968005601493792329368576038058827965548518078611430293848598647347032691057209567504000835503716983554618312397486152073233627271557919215150995522098908466570210708373548259490773556636744709068867232520547229068706098006763140382635273081394692704111034052438375311248034461093376765064276876843849021296931392362839891638691767816082916614334079189486856322559214205489367654941570558356819578234576692350422160707044586639726102730592487164903905969490777746081751921214991230847900985466001082547978527398624918500625006874520687976674102802958677565456197035677120285797404245932502213186673394828262311200873778560624891051328444068926769567915871127564450635667744391192539927978146068754648848821930351337999036006173566575701736040454072786597197451811354640662160074171251509391779413274370496527177917217098161376738541379711301577834663568285287239777095254034061561692207840038925250504020784213317308692828957029337706122321698473913860089650203505906491092203283671445418954740988208045234257345100386974382594356128093687724160132463297993321354629771070450801172356833698048100790049626001743803547259915309511591911615541923132586928790008691779862701894708619621075640401261362344563020548663284222574729042758392816641849493282546755899017702794013750825591419843446504130626188603591693216199746650987687666005007897795215715192717239519057520946402007049193537087668021525126217507136596186033263521851409804228564233116624350496966796665321235562475891897806617330537230537774299538787060533443706638813604036483672876379440150073493242901161563810547120944245202845365075581493495552203230892234229697234735181498300372075657822739255838098845273238880543847394332196539048850184370815036438511855572661152792700568755704534599990408613427857225612053436444249390128942031796693954621601266093434903590048551048962507247901410155435826502000493557043905172326731008738980445644378896438294353115197353943220041411709909259189016394839616784544143957954161559403008703478583947346713274104572710329005396048513084478500802653856357483277434371349058172105321989930858810214264348332982556935383631972518420599118727067490032843969190790579545144298521360751441844060739086035523352034143341930823913694099241152519839900198039505057353793728895802837997762994305987998325997936762934047171928979219568254742583890416178247320804632715975809714453000721966223109519320186845175400634217596628923116120147075848096083037765897344263655437505899189227718441120761726008944742102451675133150755425647342425959176474807405327032085719775150686764798411372894130698908714963726022468950621839365851337520695830164632717799177385434013845255286652977783770732306001630578640307130755811471799432313490488056045267076700028349323673164509369232274126304574270409727331188960902734451587323918025482671755107459807877458016240543869727334360917409866706884649909700660617770368132311898287223734440602647190196597926588219538361052100842322286579155066426641838507196262428710308791682723462740612234121216591784688142453347095362716285568329106223021930220983392839220025867038597226650585920176004400323954432968399674024156427989392383207245729292678543837759599624267241220381626588504841542471512146645980278857758910854896777358067114587983796282014282319051078065755222193929955476278113825170010919571246789132611290548505122971913060484493811978602755789370663267136542560374813291151312458097022900667631307468295661112367139543519092654557263037487536612801497893284740665564523912943128128419022059727513001470496185334201383338269826970659246286195074819219274624893698752127521170055278986241890264459496357666606701061328086919592964951810151273084804430164268560636638987419949795180879546685921753733832312980211188520822008077275170699206369043070312967312783315860890257345868622009671646068447364467678847924211998921772724157432733496179502074842423561807004658466122242374917336721425212582374575669062939145505571103947482742903067863187682543008009985681714379982339115629855814310405863187370091635891268956762372621909549795532293643901981804647572867879426518894039740214085884674937577145709725100711180693135904278525502360269394980090549433688318253856385331958883846128613665214491749798053389939964092075167512633368857637988480210393653038448929226799263027731034230804981996897551618606342571654287765325408228954436837393772618270637284870233171535342031547553933431660791958353542228981966936319576218698195046828613299117210680546702931897793658453790157227795483404104859059194779335939163494477462687513199934762883103189111624073758657654525232298833452529392905104747994888663691950087696638731027808135622297312625126925576762059409831805216810015300054199380420978372401431465544200652867336789562810881318433179940791197021695653270354987923025671622406523717124746951373016893342081905968578784038857557524042135009010450773982916688489524551394723593050491599573665937229702188347162057668447784480060242995924454035702773605277421756485537732161125582453646702245487331541647555615400728656405005582781218810837927406185652166595108208823197152647593945009623854695426047085724148874672689573308085395379263020120521825052557073254000264803370326314430851954200667264500496030398318706601661510531345876580582829040527500120087324319649635526578933141870871999911148684951689570660370321570509446364988744724170111998020175327457153435388852432807825774025464920658236051600275127643145061376566498472521606189778392430222662526162736618788897377450060171791246257345834561984248759596242072024122982955876140350918680290102911399634946694476992646772567548375014780008512541831913421974735070178354533288547480306819194118787579409056664039730646707333214800739050105979483495960577391062481494186464548564977734881614031805445936066873063655248339246357142426647453632000779312241206851113016023986115755516940267277677547076138065962456707060930893080979674920759128972770915090172549497788885047765933813124045162040048455114565640790456790305578239963902220000601092849731363505305113952624900421102968479478024890851335681791378574377726310308638977067528757712674923902964110429895454586759132768985682492279134480659089361494976846076337091255834019345851875986404917530725308269174470978791543711660730759566495665407086812612180003862988218338632404060853032939843059654925238351111276258704688087220082049295165692996774245199667414067553966099248933586200290126662372931765252932326040823625516677106898237727836473594949560905638022263263118399991807623196081465438718099106937262924261495125301625883446663340365687287026817260099246288139754637733566841954945882137390194585726285949613221478231887191023248842697663740202503251971023578308522453397930879664593052642670051794847963451834951564270799973164256970814117526571624506675839217530779044904531479990663224494061183941966051197858013423803318364989028857922103787523811451267097618468570007411219690949129351032347876945573877566238122593382442803460317141736029363007048065800508395039624386959002909560284821650506726833460523260389288937280964842212723954434959281045933525411352016743544026042757240831201591209945761123588104853555094668793724016545763395783363778855818912155212454193423352213387952498233542147655407066653498506870772759867143569536178670643502514215722350076852490170613677512983169778865960183881543094206476651353094681356199306295176300137325599041559330861507574845801712448986192092901732965068290859988495223774845699649544124015550933040516334028966907545852444417168762407986745849429992733374915029325745162346992305016516604111984538549024237715513931021839548962534030642717703637668965206393963110876157128718486539816358195291740018811771334637139137103917961123858472923576695858910089650356356129741225550908429351569792470932169648292505764502833263138889249690727576843531101540985807307600748696212168317583823403483509053401089137869803298165647891071893687129807781060656802812030266653628082225740707963522515872815783556732140124411652357649647478514569012570157730989412501656061092781302484141413883532049119321749393262183339634429193470178260459470028771484520916993961266891497474754239641217818470241766760018735023085847233904633564119417961850659012189019817174374556444415356466969966578611662775953500775933665900224833712301042197868706877659408183804808407664399807653195558241750997518966421744941524376059327874488282047883442022342428256364589897867499881688061391312326488048329329877708192329920663493463313419873338047591694327689366608659207469470975471082953219759718481942730896345592310137957906927660124187256287105694819782768219537886066186661767477747498891572745858497255191020185669184139768987223311869754494110435511586613072041841888481015729788407472595920109920545229148808660858166788025062272317372920900013243865868879125736812955222847515938519825426893376134028239828897800989004455673079451967940494616486162772791735551573007775512840930173638085317555135302043850004992695241931634784270063199621608579916842209723648788592330757855681735138677380302175136131344678514782756470758871648398903913370701610871173274463660886077562848168478201400611868278727126960464014614173872279480596191926797034883750335130956627095425398467682459820577615935235298362899425957421643196342981534986933865755134620969860120555424321937953023754514401227201108470078795523597596220849265542442857733803637161916578975869378342986426120519889502634407526499949358340762921247173827340622060574397721038242564792242701944105277539997328156823577436863192578718486139017296723642885986991155363711909458650802489231975712482512602180709079514719129532356446726660069989638211947547955674096435380919020726953555884907972938996380308471840771135736450762144363084786497295803838997863599248534224940116608465925708502587096915236133533263406684933559094053236425488765093988614622366367046451174303095775524810093498468944683822495976209721707190321072662016069363192666468688849992829219624931574987004667798341661480581313433988189300999671933906955978358380003339906342394335766961448880714030626652717469428946882809130613848182188212160225444116320445504396453785810469540475204739570195557729439081627475588186525959790274189741405536383875226640070038957680346296486565880730356077755787884005408129834105663785104312578901492491753426643964113621982856243530024964794048842287276516435654213837882529141792762721429133146339382523648894495267882980718473099213919829251916291730190107306499846777655001784799403282965351335189711111383166982361745034110843854739670438682838180433593541763193066039729704338682146117975520631644709014129718237360911777583285884233053823677708803585821156060266691810082749116606679935787865596461534896860365602639136186197671327464040347804668444482121984215115188355650267072428745173892712569303547537764249301388812117995979009132971143793455202560079571265796117789325961075060121378541415426647287783244969808413684133131386722028180041716274237292248890269544749203014405566345354591968890948168448168720389003428306463334577335844252170496602410942086784515822070579325009910862972478753417775643908917921742394688160193257657784342424178246601435169928712256498184986682272912149604062013273399737618250364505502889988445995918860296106137979868058784212719692141769736150641880021160687614848436899643401623288973617670894796877801737166061576834917108563820728160756111215807682938130743529573262422057513371595169386513800708627551994952143007112571305129959622191553601197674937713510613440145126656785216906230681484224213490735043678359048004687485190553866473678765828962183068829330315775719958591693014601517739669882938949624193076853529985610210015898408693256194456535094703490882907898188686170274330779691407021692124938373097019297313905623623146722118180470229667085437607754588774322902216796312254608629217794367887321323724103477705584460834417484372989628447618292458291312135838987685731571628145315876071828457328301223782713431796025422897433626587852636397969222783801219356013990229706748598299421454383255561365176505939895539759044523185744883946762925841174225997180530337809829563003767286550498478928615656361919031555625251223655944843829954511791040925170805474161064601555995772103966546262899051937840359935292168456323507688969624703884025169572444557625524413664059597106579416851095588436654363210088496046263294821086354949126284765487317568712512343505290979909629629447434903841488951131483611493952028713471823324256289626694141306170623902105377274761633974819048912817739360044002806429582655704874667964082401412433758851106790163968915560366913653144594565087021010715309242688823227553524514275026114408946714390428164358844711240283236963352920895443958401125431381746148560684048903264284325229887870974154855767590921830323747103561932238504879181694569705943698658699017861720577641793547075260446135901292691723478511026469583330596271853684198403894910131047678706839652442762580840283366916610721419385681689581853373287082446591499297858520615694101988018558845513366732514023340729651587094857721487010791299773881047947194751580905339040315772826945789775045018074244103346450423577155185027428836278765713966134529737965014820411349293121135190717722969126908709009108591045403236204864701427519628029934802746975337063236430840851936462709128860696419683886514138720812037327878493155701834137294739687964712486718120478121832376315505579768814238942023217020373214298133805871585331498228434975870310835551537039626390272760098690980081731139263010642316449339338305673161275326197526848219026097235248602797052593795430987468507606212468436369105795599512063989478112773547807219628045113558211377356455101023676005878006169593338314560312186086084237720029484719233487667785907089204048425405539603170347137128538462251123365266493165217876144341143758294986039818313710028732756377320909941132372916376821641291597665850526533710926689188578681000342754491162416950600212487475992123769911361642455369785016023084654399593350084528386569017420941184930973498000392147161240531695685583354458761347199910139340762985565999084657709319967093728362729804619465673226596026976198527146294688730720387897806766888728991807187446190542471809903272949597069425269614479644830547105242893490712993801139119648166733927246952875131645110846939469137973704260714334640784637089891439524839783777285652226117526010377328086325118747355625530994868413393742368723878334257611520470058855566500128900891888864904110472612537266577125450312221392732183956795038796182140640865716763569984139612503958910679415968998469242500754533257796422343269709315389830216499226965820163638969676352326526883833247564865081725706547738663344143754850428176323386638577321855482302881349898190904028032020247030717554145726499178747062847247506652432928739886247494795523699171601837883702290846513365963387286547608047621783687761325882574956462288028648466003249095467926660301524367551018482435164212408614789239185785226210657637766893941972305633179918213937481650767388613992931445936329721577597918184229624842468375275292149669270305055966464057643983516383896554651520627248996281884940954541835929250402965211434672946352625943883645312010358916419348358277996978547942472890513381338349390942031571925020469621859105089014940969989066678110780442622298736816022487377268220407104203066181827473500031230004101574184257599529832453781062272358882188867433779255872615331261227682247891182994467476465587907468565354572217320551302651351700785296379601952729561736740480490294270573332515636716003832257634696108175490785496824871728730425136205987073386146049082510192789273895081788232947240739602394053035238496530423460586142682198537546921290324768217623882203881621786600811932554371971242386649307965279560111989660769547777909602035565292246815450741239411792979090880138950366074300358687845414113996313942057005009961833264829050653980156290915242499270907307064538387801772682359479878689179107658810923395562053825365576078228223559205311866685495304252476714814891731499498101898575059917629773907442586609779363770900367954330892935649639942505158167410642696790293277816016176053436033343119610747169668714030557895316032790056563760263007165280482588267821884895960403131212573541468690323181729409717500179552991844813707424764492376287916966872075451091997789909391614908084266848732926819400260295719328529027986116757673960730452696996314087182971662211149123154577992032481393323959001692117109631990643868882884217068972508479163288475579971138983077548986049692420064221915873404064250312216037680015824517973045193517871683976876019411322731086615616010351101743379182368792170343691100841913632522433270886205938322224531549865994619646721918961793028099086385714968075040294632065255877488247719646495897715229528511184681837072902748546007744024273948113512351146979341782239602877731131011855355305594625934814688172283727516460520736715474279414837853188899309466068357569612509441396021199547439864084842513864839511998769102469521013350066164777314263799484444773318021580426394251768076834276444287742681679051225300753563594059056327318734848659422209200190912631740922292940183239726371555723915775239418609853823179495921370538592441774075136608189485424306525175885891119226931176883439627373503782665348258394178053517727001987782317270155021335200040841170723635332893656236467751693946951569219574252894827302227670900649712106566608066623341334254753389738265222272264480766238621579992486577225636565992512944974581336924910933131603345851998630972462534976644939985422621207553638821595049819611677819162198978750355802682003295883527128485558302004690050402024755289413703170554203854502362599811234758071702793554589656532785104006564941171178548545648073378616082282041578271248869535279454233518565087145263587233187885282749020068533500459539307738696315189283646752788381216628559873404859488376369806270300391586998221154173832233655165257982562487775265233936274599232622862746607995965485164176507214258512417684771557466665677250100053972995099945412311667858637801602936923896136549309605322232072231079712199939432887542510450459654684442243139828515720793147463229682088200075314091147902197060372747419584076245655772444204860059323510678244553338807003495770440781254447205194050196748547896781337823120950967975619248066345814439645092103504444196021643387856904282929059376894279381193728425835962165987583491700535753477561056814193590546816003249799486099835893813241458006788905417590701625407700772021369591613227954369137283269939324982091199879730008002386942779469303652993509881876441129558094192373273663083023188761528678037557370732717867542486374005208474550758584555137344597268484796248393373009838483964648022779275435442864923228765466960720063653699737721021043727675923840213824900650072422758566210446421782868020165807328285560414383785161299211177381549626389134641504262882899876918181156089086102967521428018724300634186840335820913775768081013794658516114787681715430488266837704438524321820416000799993564952328967257782907118798604159670168674610663927990033571978793553995668499196105666277205479741310097936354773558968670633514484732839488795147803004681951448715945272515995142959555810081983679287823610457635436213314933516642716629158760685393861642202079630436782959748450576062090328297031053145731881930446234435234153990446737427186901962228325095551181009766907018714465244278299632344187858876088490127400927590715120897833692291052047980708285933390629398930003309906566251666563377232182838331402119237308662820430567397677939872814221161554416216101319135333468845215922127886085174512394198698532363325856194429365032835763040030693898619977501987288192977753297896491401716667251448312352672072622453092095856688339176879195029822542902052424776222278560100632141563338857791031746747521974272420883073446060680899473131503023929626793353868229118294197204825922984653300987261956440157053183599525332315608957369702502173734348400056772653985869975313343797820135786002179210854881372919861389307483527916130927321396680058552091654772521619564594536983191325060348531840065326519947529359551322566752455981992820291387356772275337462231315512986202084258125379624354661292865597505348193876715429525930638039124002747373186332303080343839544393980283926897567133276271059144794038893712939233046992578521972782834375035474762511140011479453193221710424063642930595207641077887418125125392852446233979113057154188235283729631776576515773580868534046048252238939639128489909891266594481144588326372437714412737513010948925527395351798314927410874241711955982006840254183462788495577039515495958405274723099682411278634386544732884191503914837438852838011103531156101557321891126498548819902579332814437671004884120521705923449413276133722898510080819058749726311153440192594277830458968673306038639815215360434372739694552268222738069677212083548254468447741262913335119744093371042520397396608988968142268488191918464399176915089782833704060887361138507760296820009943178451414506600126738104026769934942493785697809800314276266981439854082656374164340137624003886471644158992673169473198708231076174538232842574752963892183183740500741126145395794773464349138985033771289989003485876174508218281295343378406002577902021978917332734516754573431465709607677041604220835446780134673297819584357224743123876301129366891116805830025776034656231457645539156579497575150547508098215244371118494083255480658864551984489659740547255190953939248060457038518793475124152563637992815590707925525249409658049152016733017343935836838281288680051842107392418561049693174438379531842956768083901549327772214130321041151914355091131637964889735063630232996839389062239875225885903954080462815936001792761758693165063681964220675786590354023119568225010838503422955611873048529371786140656251178006481959495382438103179032426517542032814295293400321196069706172161350457125280997743596355980903766037440675103308286483573483115279018588040941728885861094287669217515437026847596537325289010174108409960381565655108939801969114974962247362438141039774886907759035407171191195889161433340950675482059751575219472614633871688421069077251230192045990582931296405281317967287773614523541495640559943794967918635051104655515591007107429941420861064501922322373748124466612008570775186855138671953027286835325908775712514341682864653301347857915197096639087947264831428575934204411243831202326471764640604276766255642160672510040442962156153515490411334469825048346845153674475215358179034211555574432327934191301354439044381436170321282628051893002947638447047790412157973922007371251650536894059194042679158764279659149223472088681208550104864274544880637111174450505258175600997887595501403220261988778600563551027140257940256339188940317276773358276218173560601876779658004401946828420451285955808159225260829065281142350174550866551223087392161618653468380675596429971567401452863398815985813083696743992126126199853747876414620641170800205498546452540322398235726982190434346427382217666468288818155763025685734721866707563058784071590932871558474558952870184982429039354587890727003965587832598979866396277007723040462147688301545288841595380389475197497464081803863298702433896601845614676439927685408686501523615919976583572234609090101946118590155273590942555228620894625125424295994925427617588434693044524196003162601955390047310720820093824015616610918248953185385901227712655345408847194131812009171029334597992493948626265797286419380062865754542932757285977060392138551863349109221086627206435424772706055545302756436049078700148855132927232678893914728298727009320029314020315813511367013591540550221192673316470715309202319443528210046338509625349299893209174900210957625330361157099997014563779653788477646948665024124372987135130010304574448452897588113901164065885840742419838647278740763032650509733170120687630587873216109431201426199112325114535112761628072584711559096779198080189206125855206372382916077039118548430547255508979540059875908515926279220774970161905665600257070702994296398031590949238727479862784702419463750850731120058262338667674023871507474737529982465937771806478406221415268817396466537462714798815267573393619962692831899238591561893768529250655079692967453537002577877515994267777047291358200699917326874961570894239175119552095999199556045895712371811798120458268694693246305540045518826634103200793538557673535778761760032991211290508858589444680321639887206920718477993151505421662849669785013180263538912830249409709355494582243296210580255406652997609187692099850650577239212497343365593078069373954084418233960015313319433907890165561305091036533700975203813079283274111361577205506137024361873640381216215568125368970364224848962918048348123403211639013213122861931480190404945261136092167935839276531042893875150092599812634876225875020032130025169652607788549588340998130359995722319535475940514953639294631436522724372225742300110954808159183446339588857089216817828499980749279414408371381835294800979751806947111562670267507881796059921253380959930431836365637523415624064118575850064739733881990202056027977222463154159905110357049210574111427154191333905833669981467724809009146121278805286933333815637188384988487104264782437102762709915692435035141682999282951069329541300420588895976216759127869217673584958610726722728290357380810281972993372249918158396973754625198499863495435323775589503330360078685362234180764995709757374144855535652696843005674151532820681919417453854303817226199299128473311266794969677763187155771644576792302732397112941975295171687285728006722631158812278317597904027450827423974578316248311963545459552160715912174974734353497710690248879087187700764823544622394853394521537365104039524184516052317953922169087299771227009180047486184926866653026741139625163520042487290278626877455277740778111694521572546158295528669028201111889642181956572491604882602813124850160548866454335001476806748255657899477701591199829602524195730460296441989128313248618390514153786868705226866532889456242549182699236302913100626465443922792876497618897355135454999296860276052439265828936937320739319356183618483593085767347918645015013852631047093975811328174778753868388276640606941796576259970751704747743021602173444525091663325505304089222189771983160919097020109644891422603219362733994462669025814488140492456750785450722353092084669689534694330306379410924518912909876231070817535890358155698753688927007448538465634355633901951835869301810860398433413259701771946695623017566348534019378890909985576695083594410086766488473816070501036643467600127897414391455714718002396660825878970496392832604767804378297042767311129063485353890160243261568494930797408272032764764107555202756822638835263425178426892246734832872973374046715425593019383648948439380281374566177557475764865191158297871888334383658235578306452835732569967141104985678864217798242214753499595475077729946181308159427523519593116642093351908086759151387249966031522013886003918017810616733856335931280741030103668703229882115500421883146072760111639611704819114094551623019067749852115096609883402699798723813538893440186040474002356672882357533494103150163564188457051050552324841459927753569365284801034448320616368519670950155069340594807025354530972983991356656873994575185036950372074535153442975569993969733223277616554882340594564271146863347146747070617618995272975395096643952724095080712186871817472286439731107057980755339893264991775839722814064314621877294587921008003165784151702441013474302515070606268101085569070781730990443113149877372989074892468029755642115586190137752878608368710794866416248602330121524837482715941875156945259504952006721977130514014378265370079091468352601244683881612023090348281440138766203811780164632146114082793779466024518698606296387765433386759961039504290869861350852263314738697396836942106397373155394795564157691209085526323704660487157297396011014021851438625086408525739038112682517135515931207071886106686872008197298512179584096580179308757874546099239571919112781895480391375927056620649534517249830083713404876173388981848823899467027936650672309402814644253602342592321388294856529671997935276366877955882886950512294697227142157285095073788348816778031617499877810743228447337219754202529632027618978126867858813162685174671681483197171116625908060277094104656615308828146613578475371764747594860857190739649428660134592032519708487435988700368294071241969273269428535831578713879672931458462868028839709716500597602652677668654781712244408834103923803555727923258709617347782540997706464438839957183566589524579583554144128141520791987861681333621394391755542791261912688207389565843587861826073035621735366649879694605318064845064996934322583221305391419011631208710719877678345606391021907754827740583426634643333933147524354238689963419674420933025181631718476526002011428237341214206872744952496315384955583257453967042561180691921280212472035298315664945028326604328384779986924089786491487492320250110446673638184726430436698538677634049321474686793950674408028449228264641734755998904194987500458378657746221631508674886675621730582487945535770071434375076865515088721088324460666466966670849088683328988395827737686598725242495725876651681911119694169481013381864564454536918273381304498332324217559845814814200163469207801138119256937107621166715278240665592417105203793301481957357858149077141441720022422981177769701639515210762229105816493570867466180243376864421873433687691127451884807970950342421004723101277616797277494717849109908621873669298168863146253469866221161828617917343043513150433822347867433955990469182067162539868800995140428374979025617887714866652054992385372747691170814128600481514918177477264926092268549229537138892880227534415961931453500217792178968386585433832715035235463043789823753084189290745834605240783823277971062292803505734474805664938850626350454709839832981820874916490490362619790930186002332503441534780507213697799640372798491682363203954811347137415639124094363195373783087034414055895882851819593089904120081951856030966109231063698947596716487296816652489656012959167600716543985959141560134773604859875840729868307027040165622447865166165491038941695606724744664591127924258147758955473395734469036464361755228694303185373258890538020270635274810999247999470522139089479008261100971537435565656397811104810987069893144559585293256983962940317112288985942554091838095280129247246236886465026231968424036996787787515693360475423256578184200216694981351955177039635333815524933427957740602594045501295884229700913039474225627949797137557822882461766736174260819280598603450826905868699678237939910326848340711743016799398143688955767840179395443376753824554584355148944895206765367482555584711283652180492959771846415205291158920476320139313909949903977938723150118226436026972199822761684046888233962524938481883795218456956812920159897598517881473337089564668865576217048466416468367301333291776488911062351554926394107877533595075980464797319802216409471788350251100820207006950746535304807024725915687921548266537386384833641524938540924893294267417807681232373758757440137180984880925555603611152162989704961755506133185852114042736033401373253748238711298350424890486713280046829355889171030641418945473659624306683866014464007463236856316276241306619030460693623917841063547488212742639270651955840562684408908408458685901787883909606652844272749823924188253310870301730913003869313846837077041198982941727833454733150471847204355553721322286302677162996020947205635010793199925885378062105340956677825136898928443426420191592049952177885248038546087559637809682024321418759864505472924529564552899713902150582478416654264082857892793942419360682200661194810884596597870149130237246496818438974491750427410786587143459221536149425241368500094584861855583448738475201848643865089495316271204900426235054379500191452980055763729492296501737695745674402607031563213834672488263211660449202472971429780011859966718707100587647361679402910560382262909658749021127068848469272102341918736855657136710597694168921314647460735559228110790691260276257413213263784163248494779216388420187108474494315164418581811846901311891879776780576954992428170478458823331160932931233373311817598061243092487054792266369524174795749834617752471990141315201458199318620555409365632227159165043309571612148771922563288667675579598047994809134083806004710934975052668954026440237435658206786442661898434932282152246604167141754779774722112836730897755695978417707150722297794450130154411893353871276538190474899286995771305725944453589155569416899717886931799962016502824530144776722601805729712385928541910259374033697058110162746423100745675399984533082403382952404264758362417779578980697568900535638546954772231785419609390453276250816996575672596597727946696704950946766119216160238498169324992303494226061340505828588918213526295790439294116310035484506180792696892476755203697496489595217487410116051272229722044444171120287168221320459470715691309624655062719967700517986502002840341900626193398048516046382576904528032154223619959165183547768634623214122865651782360282359558249570115933173584992496482617777183087303993362004958076812354164469593306719497970814067453140298720939682914405255148753899694859255545618975009991600935734459835740494051222477367703139227255461528363292124221099108445509836758424775097545597483914373757599271688988766263331883628153795864744612823119636004647353156624766482055995376028958010504205527056407007201956644013982241998482399099066733809172481872092445446942674731554652394477325358884341714620266440003439107193788575808253240035672309965112825251943085549350490072381778371971904421659297340630383575527328938259570555130272656313867177594014187213453351156174716953179960573617256189085233397354995052515112333677259478682913076107921825810460564255910785767458839413599225940413032182394254348245620069908595976372987403849333217625978008438175155292637514776877051025541258241460247674192071091683492166415439784161925534165023437031327192368663292742618409590665612057702259900843941763685179096372275350987670265269702443433547138894235056942175264412384885086560794901955022094825557707466915921328327950096578919914249637498392835381001165461630309980498264186682827528555657835538620509936773354112242280600825295277702196126132781510686846839187360354162353234314712710503124561461809673462169908818865106391368000338537984232454298916654976002860621580274108509378392639419451514362852372706749112214655961086740627243184421794426174162515081507892562423132596318670089323918754742302051985741799226724376961298787034589185748220127254291710646925601119352574924260698572659168996523251293371136829570330334937485692165427124779720415554680363633417537283945307448457188599229642790367352409069818118227980338293387097271396221439306838571210008917419705023569189390129841576407726661387834278020905330465875203661532256249227904211511341008587221569657015979683030373886179959502235126295660484056006348523331214161893225894618477119092827868056843116511866265456281965726757097691517889004850517459851168463342733086076196901177740930083531656959484706160049032698746015878674258597506822186683118325801952823335585745205032905072669306494029032657830746895236556151484650720570396572583220390500988756566032409785059271793819075288173696295543978581474183927168991764290658881597132908644570056122771131771019240129895480008767797782823432736754938207183678913968477991821378171614057194297578219578326367152958579866117714813328924547498851662826246075045194939993830183018999300815623767769681559069325444357249624935299687732372438089719019183800200588422448975216232055435792260653380255820982174240285335201605977340986927145228050839383958673156556432383323903010138590744414071588780498542936235021187661881766758211200655107119900591339546014133975742142130458774293530422207346132746550140429947785663945960913243368735096160708048751821329851628007673793805535870036567385935273506644707065370674092808374083276032587092269242672256745462168309676572495792529746664073251660472034840975669882565804187759240678404280784678703259158105969344820249056938576420416326516793469156756950644624553104859111229045588060500616295147483186518117054766776617725897965497857945108924168655108551881929962781824217717086462102893682327890189209806882466043251174581091091593053068645391474429894882778734644418255961569089625765603767097606046858374228708164431015912126615743280316348400106727367128705683635187024202179966248078649767430060420401118599158477418795307860405618737548211392945254916349961834230231257963929144726594548226905667233302171754983398106424994070961462695611183844289401730902959743868720877710798227022808550190473204613780252783322721311855553281286901205538288808468386784081254131812983014822185802834647729943055094127964652616564028190707723451380714349389087785555834079555692850634171021672294728451836087396475559339775672602666660868275830304262739200672987739558379288768564916607116472654052472796085016734390519752448323357143199387184759318610001769967500759204948215583319135744579482958242291736114978120104976142052907619964630643230254472467039329784855794183653379152739383486893656678863060255945333168196899809379992389166859011969560078737339221880206078776996533573370630669578046250317459186930151357542670253300380972451927352640271687158013447275160861458850537997856338501491072840007000299198562328973495095815215327048815706662952078180037026679110288967481027700437632206392923891765520746796085830239021225556522302344634553236207944064575229324895174949292774361774145849750206985375695363770375299610189708484021375986971151733749664258465263337204596479499211479969572481912352265240739587013198505481244062125184853757867053891702387545823116924203245515904404782033288520987083695588660206502006033028409347623228672217890831352887976619910985607741267104590473576938276502049925341621381818525104307910429892194185456057829584147244178709626556872157733342251984014369171812130496374838071358439735494912469987478138855069405518965002808656002238222219228812360330489308645066218315711408447851833740780430601115911463123427356026191895418698547052866052850783936445658515259352339528692021379705438414498908379973250517186296254036273669143268220144414558791825797796242442467118227767293971759944814524534917679008945148232086820905714075227858393481463859451536307245770439094428985121036404009560176169446020111462276148835875993062730718189123709326250884508902993025519400550682119295226701294344119158586356442907340668075575840505563863567755815676029044668438328817649260755209040505983057365355728309804051812706218991402071906874308493096507171083288509381816575194370471278400960593035739983373268049838253745321681079284648006458758254324267016364578781297521997802429170403150819931092530998562486236360416561994149083132991177443942027184151907741301644575717306160142948147493310972516196043111296475678946586803412131861304248865781038687521745522632628227318092536678721839987647208550824652608451942506531519229409367533162792495246725625033986455826839049672265146846543974673870877924610871157446871662245364330835486725723185762056699596960422114626305179716350479877221258974032348284744156185422823617808001604571674439174266878871217875597441832699585943715901806392428623161988136594381359713379042210846591963137228495365838591355081778812932032248967630697916282918062549065189614716656739104840208360282959500760694486463222173624381077919101988565576792317914926251019038568169631723241748351197400258438343753510254592327201498881710885453849541490648882176579860103288744607879174669920577640737125675164013037807398581905380088302703940620999724686101875950426907535759536130448372647549901328220543158390246447467986498868862666066697153474706152742391195569883054394351423551275867649875950627776406619049019770727968685836894959283234863515364564032048571656197542762987964563367417998849507049881546859538339311078538398532789080812425421783243788855340327717287368510995370170682639219744516782634742819768166752946842775754979482945895599930990883436667244206393119250354744001937609334637041351741330943845669413502491237265178431513900559914244255613424673719874381910408543096243323919160133954527942483471141831951835238318180541527099788462496317351335403260487761871444535547733354819730633202297002453164255892450785308640859384832348501682585783999108028841833189636605755919990484101960550898050088053834773774524521992806219942834078762010113706572063346406101359314633548209798531087196380685788518304187662374087016335109920995346611131621039576811391601681517652092467108083623085263406044697943880152766502012525779582800174756620633248740926246902599469714920730235943125592603207055600777991245905724953066467983439011217938827214098698370260245633913501478517833924786441696154176554075899439329026472183498918495423016686165427199783423227039710564404087618488355666140706295633908140498104841388581840005255176574887907663854379225525025254339632041807394059657449317316101000943607836602763008390399421115492549619312400445474233755462083949782538635463060992266303934172722159501999744420632701918119712291861410711811761997950040825112553442774988838095995755197767643319569351413411574353684113174094665477923022287159932560266036495194965403932756589868265295365553820075027807699717859937869960999253182508548748182898027070016841885498629652926935731747173228235539493303912167337486701761631100830827052085986720378005659576770247058732136155128501613139844153214260202148775144220142785458529402673490273517350516374120186837696887704154692859575943055056094333532707610860765710425024980205472784835709438443155365501616024627184262554244532178250748046975003114970691113695560129067410970340239747575759693705179247766537239425315361459190349049443211071848358365428308426875165366785303051332246238679659794443546587927201111671168628399089384242274870438395889540206583145670250145534843136758155773987616446226310583181170832450389979109945431784202773687084731397037052260096028092382134865899925352192839487065384061699736764289774115240933372587089342199449009184735807226498160570052697656917059578503875343604774182079523796349933319373142433585640723384754908219629376025068175597625686488176105793040422709471589888056156374404258899021169144938795269269910170856529178416311900839282559692886429749436794630516660633651874114386086598858849405204119602267057294230806536603902310632859088213794818018890866586618743949863482486573109896698725988615403140220692504599093219711149458521922763558761356557590314567064182985375485613807705833898479120585200302168356124760899608941696666537728127324211291093813613852408794398052384888756327253886184415978528080363993012707700286023277821563638381581563129572771701190157509775599248703547449416827212247476490522946290003951106490614314239605626589544547488427613687913024144611218558475872453245406589727815675468640269940112482981158672264744794256973356099279249246489530890611210637388299375746300497615950723527251241753921275747886136663807260296403282440794100902325898849577518602753198455442159272010707237147683498905537166202610675360601615625556289060862652731087784846568192779011714027116571689278570700744412215140510107610570720903707689782937403095191827892344744983643680806908592542776749533959951538845510457540809129707054398384103157383890302805718964850708235567740414957109166666177212596932592337902690199721880337858753123058884614502877147572195569891296674115303048396158815792906729690845834465877300798581419070643148514728825475850978394581745923252578783511493563839558389410909454996191337778666216613025983309661779059031363169828768601506333982351716128641489848394324537411539731055768409993465627984981606885107261391948738918129576352760341567127119299008242630845943116029063452889505202420560642642661086019220763270534140082645728525271805874377405277664969475836486139111293705782001896449875821026767703852832136417747922773981279939257512065644424599166852625795718544748642624904116587224547649208328539538770483852889941884719699593761547094499334141989893965028884201308666790987664760273848793372208402473355736361229856579862688010434564130909745973067742420041779575426614401911347657334906100623061474911470576293727875332811263259917509032465981622213718663754713729317569053020841805830141378843720008169294698970800509378406221171700191699433593161537067090124298969169516349061439737206876114013914845903258072517054574582305358825315293460375085713717406863415020844133595822763796291479847782971637975048067066339590067131788474838646089208020877800265785736154007558107471283671808181778939286299190294029899532973303846018681118566024121399345667037167963366387740138047706537688528355859245677332612229957318270004908339665111753908873097223921635058940782813943039615968259270484921624155193570030950457194786902809059574978173916476838270523214533671459929734054909933192503263303793557044041871848287046034547561776418767426597052275794266407079925617197976679781075236660799730784787616603644638294134993066536621605698517518951554061521172490362267188590215889902649178566144491901301001153933715622921789856599562704195069091771107170464050654188292901630760887899671029450188767171102182481009968379273993303130683253450377274308963771656879820954619911293986879485706263963989800254617884539676591810160750383117840995948371198988341214083576877078970683179160505000685695431869476180628287296636106120564445161803498850868463859872717366781519973015212595925731085771812251794771157879537057531382913881290431615017192774682934945652237620259123117848464847767129179285417772598381774010722595021892425468489434269464500243357962615271748078024532929612033500494459027961175870810784934654075288440624955252192076987810696265975580425956092579539873927300455162746279562418577857172809690413344427877732539962893109539680023700707716799481646077987975860163290183333785933017606466881267722238131407809445596221330604748417386785067173356699146217500589281600104487720100810972837584915362017837486821319799495007049078935635602044456052982083012734059214869960858217241120193428229264356973856454016718811101095319872125129416648997437669149527555979860185370767657743330576404986790765877516287964683205151191872560749189675023377677087010591526052849062746131372888682134381542755787508455244959591644682047035782647118464955678736692871897293578529154997894911922010829853955856487766743820317137999079885167813993098543515775935585450141990803851562461046774321412176908321959443849927424421065893277883796526646583917146547537284614088167569903365454353488746162254505530848313579092326065443977065233005354703104092712692381044013197337702636689982398867471867109060471043045739682678466264665564840337379326052218580180758486048116675617635497087851425010116947019358077935066644466402911294747188648410624990714268023586601806727235638985925186030183590795777382760374835810214782829038840646215668800770347740741891271483864771528925514773372388855420399263396536844235958022653152714732292054908796362811666536020783592309793632107316828061163909022145336745658333130695649920720756844361586699341726691457842942633644829603920227555739745446547232616958547201707978815998239707619637048046033865339422172394447088720813799498150846447251454062125687976668267906553561701419847855275955870397646389818013608666844905602939495583464449590176116544426445306433382527001505811833428070399757436143985899076051318341726241797300453505784137143215068290009117474987987013659794321958157571879998036558935840287158405017595329693549215060449893805927107911224509127585768650425193766823878193699146755860917545368640835374969065511063625191072343196243050491588731921931579122585477880180888783724050088843819253090599632593784774357575066789431636962199470435873717279930714541983726619990396868585316219446667498946888999050909953688042935302262426498474272948129501355567214897762939180082460957047377508033425193694742666106187858808114988929975875364906499999244647707837337313696578292689924206486760456749635468850352384936130959749791545606400016622942985470259254233433831929676560317193967481230142636550388757787780569566373707829520041167219081133235580621857276336296825749632592530517062694743916728866884798540690693875044221468918971835578180861496224362423590247529174980108561856174568101926420532976354013835607867008708542207425141216343410231219647497220988378634206435670126431019645565643301683551487125716254201355870953709580528273253794070722801129446894835465863531799722506023874656958180085037351242717766832357371441521721459912925941205853492614999651766452780830113365972132165198131250606430896266566144802323258249399448790190502100664974927865288075515373370125939289326963565314576551741621192023413059102549733234875333487671960840900385840741377460238330545641935525396684169376773203414973534146774322506054454138098078125158076225509434383548150302159018517307753102428017160490105763434581342570794029668605140095853264688732564266812465757129160327863297075446074483100200943870080186338160433873186972457856812512259078964771434112799414722997520062255505926972962037056673490056869427791040966946571096981390789894228549942800970815769108436607574874371252899847099386413585350845637044962730111686477935612414713776957369553044591352542094146707324332585015620889408400544418295550714087398596285043129117308640304889823358513317903571362792601287287591035607477796408244867465153008112218619631674032007707530608075849380018904896535416650514601595601381976621143206493544021322478420184960440370218140413572015462576279160025760470914446072711294290993503397995376005566488668493012828878337567545938401007116409502981286963221106266278182340837231110645037446241547222961824511136093168518785836134241800865616804059625216729995665135494556603624636558780972816510271291558216529668350953238573845067361326323478026986451185220173228082744880868457322542521899929866759279012116889943202604424682600230229948482047640023544564207689082735757130590192022611011937241013568109928358963004708354204292170448348110351895326823078403759083188863574188878434250440925939135825276176022312444779998620637361839017165658670990512714638787940501069039596839667597432238833253715327463639213749611646150283863987264347859505419062124576453369017165111291940990943360842913564622502841582615948388305480857372419002986937553387995887247911809361690345139957088389950554546612658140989627153213501030370625275167233389041574474921560994847576393617123811236054004925183320515980715724383340841107163330669173165900420753414255872049983897149668086650786211537262779220317999368714355596271257023100641095886500482759134929209594910099543521249796962301312485312545108857837191141290697177795014056164271308964558119826558426610287801551602056891087188192022115398316457147442482933601730109994679079391086607960212148499945325966741383677682749707894606385945544492716541266169071908746587221934994333295637130286621075923327371330218134727451362535335074361033503250955290147012592822392470726038004556360512804055880796793677019721197830074975358977272812365130535136413148177977492770027424904538190856385592485386902349949567577358121202588900608455655312495478676777024526970791856062962787192255449977610242094843366012760629527461215629597922637670594884230141892016074040446400588276594038992655246015506505056646524520186341097317255638095931594075542195523629046041933482918622102651443269012938249247061169003761859019233014138415356201796373996121806120965397578374691214308147052700235373408081086199428374165987017112655118555261523738081838063758299940567559795970693579281294880670553222279333377243915738164812788784875113092866573914923829046404860635539190664542573885343933728527171990872121245541935589833749791183902455569060826831946361503812468164847317321923316513170453459972337370650104095372035653122263694638261661515334675897429667527000378502044558083625968962184439347951437433437914652367839872696152135127563487301490609000465662637024943712463569067713481789069642364526005239325581440458016804101478258775595628535969872409080911486645303544533171242387460115179574957110825774820641376391799352611124516592414753038932932371158727759463375648601751392671166091671887965827020382190242960444526307107845606125262367824955788945417746818676678021298057702356740350851114107283779847598124600796176728123714009313530037387458258750215741545004640406187090487636372407294861923387963877176573915460991724985139820031011883740137436621136042278635433272918118887757887091117935711767441708514726155537733451702730091175932980462904400622340982863984753231130581891275462774117605827735015938399681938831050898882800519249801320248547566114688788039228957133301108188916142215047178407605454350291460328755558024535737551484807286820543792377315906005615516144872310659369261101854372147435417047012276749043846070312474782300810281833898275268237602854737920579784064233070952124336061124017069540687461337502466561246739005605160662381465391851835936027727196593454557651641754230309303739895787720173768699475741351626670557622574327940557108806325511137212731250170260544882774893949743746153143072305773885781544144787344608910660094281859218550589690598703896329970664033791275831608868011578180388889822668219223306927886461255421995648484472756575496377170465504315549052541404284156835790082774166843655599282022157435112428874913318351545088535015088053264407985240085659653195419457083343060370351485427857771522927558363321237912931677386539017383585717423348881497790025904417737101867094986305254003927066456791687022665470111551142918422518531797878669383227773018269698346937912374135786437505962324251733045416046437717071440576259847910089879631962902428168552205234666789484156331992243499076122261656150507602051992662370509148725970030937951312187230511489783059052377503494199858519104317226188926993030051963721618604838154203674625692634104082040793459883435462807457032101563443329421143301005011470951494571549090442279699225847696564120641718673932726588896588267186866335036654973932348075845972204219393161130496549302312680264724869426061535302668651182738791545670688406579116092376861918077880910492360875995347986877049807569586743923566329439834441426778870226545225252412812018820181117594093157950011425809194063466526015891935160665248438870884118433826621971117150452204429643274484674651158908127963670090880010749645767301792803227181202887563558152977903989297574215616927945826933866264212366874377669268926330041153816204338649831889210365233973182246183082514169253874859043538146310839236732131775417680484516822714840331482379750026692674753331179054840309016500530648864111496533957559218271818518260321592663348502479135849618347432895021336698912768879262557583996284841342122097348452767350581903611481842642246386274830257546907458552872118089984577630880644427185006874220615463272339570077068521624297520618375796242308598924077083163349044680771500687453694139704902312448902431047073453360565878543293536332197995344874585445765152008420528472069980494570645196600189900815187042570057432847653502819856862697549055111498720909146572254824324099075672850376390893279612904330593330706168582490588346092756792055506458299881032850185706124106550197320433274766395388189370681424704334478346362894604762438177751991609421644579891129330132019898617995625283250028067746708958435924672309778888672507264668636748308803633160192733041323625520263331983504005126885827868848742652706984563747739133554674447458587488544740222236199449983965289997634959835484168868728374916127890989847609612700423245530802768269266996776389152403228511787604298438668320860668409597339765123565278756125916598290463597689144938772372598939789813041545376444725504476863668485324673567663928466382247439559184707574538305239819960199301742404991522962945784384027666712610454531419696424090731082218081032673311306168882590776539822777409262083887463731151114363949307055452566804258207083352280019404941479144946837982137434537384098078006719774205741227251397403640115811657763085756122064981902241744894259352463398539261393266420103957684566989883912239729310749656741072633623752192168158638342322223936273677950238380153426623126209735663934021281613969176949213372384847004381985051266468238153094438335146553038098242674297530996424158008859825451732054861556174697708939954676661381797915518031315415035819834047432903245149147633064919170870813936725178327762836326467586104933982655666588743797987683919561063342376679992898099258279764985741057575496186356988022844641816687556864398025429764304430348572280655961849402010641911804283934506662457734084843649176705267518322807129091735838398633433933927105200427448772209731600442971894856642931251429827179498805215590886473042281605786838416250824674077018131657094507724076030737402760779784267337352050206223460353125564682738869955598124924437583063964821492803651046734993699380123546128181557388038802077937558351223170367287511457154367046939375652951427376077632491046655069031947584243705351860131044310581248804616340099132692136839793170265090181413786054947736629748743874688917225900685928033707054978500522385548729042075194912796444244812873779793237741647940951668944395447679230906493282449392893875830895296968798478098177634773538815031615293279172664597193329113447426325394287218994602727053947468308912455482109066163115786290563722718345326249670973015511431363301802769986005728831245215936094930212686467688422592736804411076390943843785124249787672941457875186510469321240311697833953032029974975441920444544982390362523323945073687800951578970153136365395672337905382014863665343827225983634486535522443749053048256675791486610150921009966068283498078788190964833459810602876378762425341062812875451004564683769438066872326708183616724819758412670030700896121815019255482142505830313484679277565321091023089112875576309074880559366801162857417414628796350730596172535830230910326934866377117642868270820483569766663117748578173935400568229086194043714988164285924593829254474202081415745186422404221631237383590769659582267415932041632749734065937291795388765943137987075953794208989559369712321904884414049668061381725824051035722309359112460558218365045153742981697795650832293619556684714068662254408345864363698655470891215874573380475200730102272089310759687776941004079552218430471714167165627915370195074417830216641171116645976728017921117968259554633393660497968984207540116505908723095263321829683582124910421980191324825493562671000647984704400005655463010462198950856875867204698222917418310212052670674406936672179371711609115351494882917276220852959753177058719877105410646333168384401111960280752564407518334053647456360345715765413601410831916047752747200935205035243694193390388555405753559146520073160060761636296590716984878795364462347470413206790297616265607806531737609440811496410052655755893413802170907806501699575293444750457536324683516313835954580964610336558813181604328676463648697653380939959822391119427747138514176395841729498165529148198605633807019147987428460705977201195471397510914838961541355674102838146885083437042515045214011450208396323941570686948338647734627890137234286550799364135422461775437792283718349955831603160502027042808874902829422625716626659368731383192641178622545734194107171982332096853646091349467137545122755235647119724873743639094096062963891502055645489902561834867842160572583542969385914545635725238452653507291549308055260559626207159227038085817179943026993208628983326925051587794416756626936174904632098018392433823429622763205055919813310511477868038040072619390639339085400113891071692715018698659111699721904569664724196132869748370273024451550689008135346889296726757525108282967458551693630875812562149197585874052973787094367650968977118819412104911239842472665703626945891060188281329279212016242922894660311329293396432541727181749656363114503867260198741814114647430885422204483170103064186580095581689057471223940729256977945561506999514681943638150331062828234391318770735280869349082646637810615294027334265450632929902069139524774920545365806478361173722485091864780688364771738638461200084801472230007977586592689767849766374010681972167940445794287449663069863238648269164727941578315580011002838293361611672771023790078314753350996217231927989852378461915079935209530439931135183949116516590374685847736625106664794099417193925226815233417892623553540754538211730286522100271639263011055098845133601165285958219220638104669193062694612737837386991365009594034737609770745206028416330748124199222343634514893506828877461536147367621148782290973051272476565281072454209076318355051528829678985497733464260087719568576304623969401978515772629223065390284022156610804124581533670102016117430832442984311423691395294274697086424906641656039808377472893852623779765036328306001495427752749461420269192406019951531678689098898491412482752922558874934760664702747766165816561783156946252599223707789490979123848228302726368303266128589451532188126034150828242510507524056317574111077288240123619519467197041080585200836735409471651125166984323916122845415407981913080842237104595081535775203910222885834997138944774513785704775981588021753490341332875089235146066082612124351582569232499629487254131162682748336381251914081465843236849586871146037623387173424148713158607448456244929413848524958937346519155080367801558196084352370313490236263151916794823399571089722849168441649867495668155575740033782836475099065169899819867814157244254535079173479300001427969746340352906724350677809547208672682078717895928222137567525385916529139097439541686157279408539793570457773159420720253783676986472638180015016164943527063395885373160900996790335339810460435729616077107016348050252641946801307576457599148698142976720022486639347542448359923680133027450726732191934476030321693280909835275327943770265429326339778027700316055706468010646270817069749755566303339723647959585456298553283459272015539892913548507072768624138115842918200710661641421150588215807392356666876506240793313725602620481413144832438895767620069591427353882088010766437629706229440063808270943548330512026608788551427519396832562683855263205202500452297945159921901571031951713830974400383431984142271505098079924453539328960217737994513766847884575665595259758746401750745675444493932723912862421125517096356323230669112323801356766545999474276908354743898083151792741078142668709454120346194400492046476485407274745408481386170608472710285903524097289228254600950867515636517384880546447617532459705618295542985696943267223971660327751962038270430296900410955693573767814709232888999858248537449100038262477320261101244697993379990363392887066073145455236180778745633755007054258811033230636574000841633585169984043745288147097332680605631430897230025748294102028366308023443711808926429408067573135364194320966158251974554210110632416231285235906618355027692456248365820666019613811640781444049742287976453960123341841151738599270869294491729522539010613403620526005135050620198734120075356116413192795783866127516634733229621046412391283354267744394593120145058147345071524766120983744193533775635545877367968211483869081219675541156928717019350190148405609551989284091626977346557098139083146709613545227415702804038613555228162817467773583222063677615939190020550554569383227943168981891668945998217541866652242564263091492508422885314768082004270206065667709362063106434780422631940407486907781755568670431984898714583609728891758420050339611132363233421535887703984257269804733758484448412262629046938114030353777392417410258416994055585831844009392279505241450302108838360890385096992533453809056453034852870064422922501712711763191287092776621638676359665749811750043569883687181138650973398294420359400023152514852943342807877412168361953932955675674398205085964965933618063885069523674156285897204773404253874940461256041986232178709405752958016262000471544088657073896675188888189179489676805730704934572946931377194792158900105111040825226295773728728985510307929135343931048625760123096737157655185100216260879355718657776810428505856775542942663790674473322759372153181101205496310209194365783852991468729894084528774092241605714196543745339097917889299546358686128273348925474222047231661514736246913845485413282306076079087510165494179866969584320867578475700376710830745226471341243663373154974548512563929506107507691199869736836116245885356950977215745784895856752148521766525346547442257308951668776627534869962542080843792055307879180883900627133998561347420249977197956697333682081528963580376691415826299947650574904140936723660713358331400415598279338745263767492426732030181941527723523196040406647481990566025460551291105183553209852717398560293955523874866585822499091239167221343034784616935744524449694849479223975865852832841538226721337459952027484912220771080232091634299697728515917558020419097053398156667670198404531653835731836113690741104675850157367305549447792422428638084752906936166112314563327553175119868425019305392814057704788192509553419451593155601375334498752762292454174595916472703826924839284994703025716695215472387576893366211388938851203656910763966236188046562500066944407746757409799590049260713744986151745436205579098160871170198470654378850767253693685551036903768358215075434707883556277646600524995540643563931979711096078125455088303187195523189582320813996526946086163415180612934013379337748206078613751129683154451713362369479946434971506713531300358119185232784234112114664265101855231652870903298713723038160998171763105274457134205457526391832112577187781658733403141277055480231951335382265444274632807968780697938414937650949928482667134254074719857309644369084741953956079642845090987454172429757264179536272643988192761037337605238539259731901882347847343574685660554041565272666039044131348242280502360066425205601713159512554383252358407237312638461082751974544044640860532780844831477688145013769407300594097488006542935918307596413839777185606547737827446255548609985058081616202297374935738474080226339925499884898605387086727339769933269901819795258762724014636814435714647467096881374896714277324903895082141905583128717285620772486513998319800664182300954825534042752342627552057759460209765307641409504046418532420842213658625035674867912356322630078668997023641465262264636895908657193436101441588700003976866426413459777760822386122021990665579058185785522334398649829203943262866101117095822200221280081195116469210580063062273726047531603596916621379677632850941063847677234078309516100605939483748587148595656687703787286234736257036126897664161812572665926631357634449002858012473805783136454582164317863643133230184936777619880145716065690341862102077950914722396940088376220028233529664298670484323434195564098251888422416840416750380456408619352796538465787061594078043903273337844638103788321605518516813664130253896111889868500560536373757443437234829694512553629946214597281718227963247944465616430730680706900735499285676242764436736658070992102464260309414585071991405182116210121437947517420881914323753508888561020726428517554173390298915887921319612623608906328904645263663106929442363269694624503708909613697293175364457258994161512452225395692736733428189365640875939055200985626525735103952813492555558937999612760550467788066450787413494718333562990015190502090421238592713661720991770270968743867289962846690444133864137786017514480833793909080574433771795784254314468238031036761100088026353243478513068789731829651043489648152565338442730260474615886933236303606209069256894449127343271127095944144895592103198440707010513791534387878881355322783349069573787248515722263528160139653671165376148335449345612272703066378276539673429163597074602984592596901262698938932675500206874364149025037967381860989606718263373943748349337187212613378351665176255283729938110563156209284921651878566287018778894958443141903731586843127917377539811575903026099616377643887098864386273134430301340489474588094756280864183805708945391293697874354462767464989387660597873667205385998341893733482041878795985589209366792387032969580537500887890716041152042740390131002186850784647764674288971099763234729509215981059053409892414218323691489721302506159708278183435955819089385092787608081220920846185016697954731134120861791197075240855714152673340980527990390551356050785339963685743927338030237559199834285240014725375980644090246835214720856328340758192978635001288538669817901864769767217066545472785296638178893320955977215430136446369822719554899537249388232880377546449260694079369851422276235934197020388549275506877335413494375856811866369884080597050230124026846913457524750824745226588703032566557310519390915763156126908640282214046639999322330281131636872885610216868890698752272963143192865762705666973161155203961293281176660229941984069590777420835108116192163667540180952998626746489279477982206681745156497498523357876022943038086686507240163100807617593968825482864105617827856397197987876890420347104315245807394377314529066917065795026960667959648457719886928752624208686750283219038577841736500249517206532607663912765673747835323088966042989569499127958959057572040883975978276879325988421106692263063549019284208497426936903880095419643345612706118602012787414998796865869020507803398604195300919416743164947588927346672168330538544714424597216319360087844147604173274365930166194694346987585262375216369836398314046676209577366442424629288938973046365019453001373954801568266333678651513565349508039487607575006866384057601814759383801661708159910697951037979628006001808893967038788117419002555058486650703379877433009929111720185475853911333824109626830654202115165572971426666394516983532211593058459055018081403825562581796898801437627253954803447630522409540856489480841297324133677016934946374800859721966941887514915840982072592743610176798388919484055371112617709836537078068387949470782860656068643362482529694627941586518328403691745708227684690192884273733695288281204654236597580706081771379703651653207288753081996521925186514618489506199273078770244549564010693418611519147717055881381737900001434494889236954706570591911625574963274468881328763144152950174950105527266182774148704541611415001417641939298714336732976924058193988032477689959274774755802033379212402225178352135707522258353015629552364677656980370587455885403865889873963095145952054480037681994001310242255070313781627717225416771966252139509297239965649408815234687131016548029978789386526315254707685625399282469173785420190688978286654154871017499604910347346130556111540149925635863117668497786086139601099634748940180323848567812012125182047618432716438795894099648283349013843652875353796063562876323041817503692397434843541853267526747056215620171481687891959889847970771529543161013054633196829802669924453810384804355622231904449509270062145855055334895242914482071003764853515506408587626154813876821481087960747059064263423117137846440994040671829290194173781797832121292169949344839065302653933088064583279353521827469262894243267903999013388829981827837085869824443439893800026494937524298722905866698089826762403660365164981697292271233623198273830496311167975612122864045458142277527401177849493835735757715392065353897829422596672345404709884532261603513811604621785468879334500885857631017322152493335977531897583347678070773086569539788247298153868168219991061901566121179221451287760181559035591292799846425128497260007544196196002319432714897162518327038338112041040698756546560829374901290256733775564120889262619677824041242542225267155336879443771517993845752268982186536595286727261099026907678730416821460886943022249415840574685070160152567426864628711388269221602317391117028905127345684525002904205517567385362555929350662653260293235256428546167617534317235485832583453525151824490072095873058986218017928962376792994297532042273611470287122126711603578090552321618520350329897385675280820337999768580653126967876974652969291993302428712422085375201049349972259263227320650656955675507280651645715708175017845415077465290800598625835866926583988682512430240182730197726185529813041253693019544847758615987732654622718807092644757439456437290387223674218936315635507676834254537569862078190024044403901222976510259776351297333001624083363756006921438879139262307568267183094505682257376039763212003955908861464711394120011087185399147586030360547531171073777116609736511374982460889615924667339337317977329576815521454726271959267940760406917845986745710301631448678524242971771130558874636422686344127600064681554214155499971560006151482304404946828440023908132877853581402879290828698472793845393927944288848131739209629037718972781366282443505557698158024360686593539218591819164329154028860679761323573795160084820369032325772428610610634187816882565719294948491327807212942463462481275229298408023178821937692369439868616662290242714626785402746015874943030303444811502684016068260111634741125695407054037553493431963541241667102328001473753910912584074682866612818430713975845313203341193672566154609993242690933628420697576677067531267289910970080810917563708788295124154255625570834527210584611416763521984364452253913764907319168989767447065207127972558306175769037726550733338894493991432466653031805983819523433709242817215737901618790962521474039727859317806602061991653237198411959270047879499460190888703058424109950944890896807001055609097901975496366594624356801274224768217656563342003872694152177265669733054854157167795513170646577346762841880136996662954071530373689416818718533432015095948639516650163811593187924955869420706612451094557515151529683839288519076684543619837879174949818274881447996807009225530624218038179772191518226086238748896925193576590732829418157787143074318285446485695234950842982051492166939273042890155509080548824757150881073012884494421039228341159873061266531935445551415279005816432848936670373535553299436382118860695756904851908316728799678431451522264774924598018609967458398541168061351505596014659059267022950120467969564695264891624351993435701301878220679255079735654969558319016695342555001086716613677016757189340815611563531082220952151831637373968020423574828617998121864820705753205590434558030760910384758166475210628799459663118560987967818364768789270792006411853611537975591274769412023894424628944471503993840961299160151431416999103254567910915559799921222585648168303596441438021206121461785769159685636389705374477459961213204454898752446736080509832461879499699548350035359271386216426586051620776284545552443384484102030101266636654941244373054756565917019441567485024724901708774069247376213273759369875920889740300056573413123497302575075864291320489093441876469695823857423368595444700335321332046183507430853354981840500934369717174538005795131482931560273710569381297892189988019191911469992114672128481402953530216854306674121893509819069835326290058956931960082812799521391070034780412339793391034111594149833073965362962269502474629057421670404256192619784569977482299490575039582135305967949455574629752546303352927448805914055766162906372876020441915772336558935829523243772810826265792786693978720201121238372081519879928241495413490786228005674784837848289456955694608379232679881641745302805122228645784941753328302040139833777867957284710623052870535829199547019567493553914635642699337374693285683666861807692529488512586044845691679568415243664331108440344289193610147529583569943942121663475227720735356798662699561173776244223117431822684695618397272932657998257913452276859199884668550477738413993268978043695523302644083400076533959804517541250546294549762102018642123049592671134259894553364560231716535871506480469500849783793808637596377377712833025601464856102670252137519373800736423070272532318438354206936044730925592470793560997854355742656097500544083672732418805413435386985303159248343227228417691412542942245667746604179245003608232451239131808527386030343085408551829828862155902728805197289700188128636468897708466618341760180752543309418953459373415354614401607880148387667414628497197750681807965178426808189298472262387447669832529225347174467398648963238929353948657325864976351525291414535850222424121261082358312248695292622411017394342446599364254814762887509752497564920047076243204437599686297750555563891991012564130817810968462627661944626042617196204274996955156385730352308144434955059654544018243180006718346298292770934476123737114697316163275901631153101884669453326661461394260883585715200324348933537771736367821465961161096773726976934134257258162317297501812751296215325918998741182047757265796185574860237422820913488706796776293869370346363751313617970531842640170552263042195881307561501251747711405230475708234219492889303003617931005426501431180403249610263676630274170925901610580039371756900177649824739485832644488346918480016015648068994928715955267919151810054461750047494830347163306874948702814233121356164264998501371281023461978810747575045220774163515577955850977726884637259147262661653755086629829796628484937261734740883216572323677195535385702318000591066033843629759686661695297950242044163470057740626044305859741672682612888892933448368839558427732847437343879738311885863171895615204976442172639113823440611756890678022464827324741582241939742783244423342106631184570831137701522008179759850023257145558924199363416708736691832966026394176994373528796002604030145236958163082424936188234232065328597459937259616280924545903748766553840170132106642786066390479631585111240890695483100967167138851008988081504564371513307479416848425261813467979577139598828956093246728236732613386058542775591324730847745874276970925826788551665263919758709625168340304025860057755331318983370368165685286465825513765433856757005539403812405229789465360634450617102009514775699777862896101980161349836659769906747225405314222841922311668926679522461519857975989052352267882965441322573468999117595732838602197891625021113126031182435051005059788560026808705852362002985458278929477328233734160327902722207919390243428905317420414648264887486044087162630172401132903853165148018725298094778986381166158929106050209054909814029697122888905564152739281542273326194950766082532871819404355792792770352524114457940499577452956593822222379940477203495801952329741184648100254531202967496429512624790075709306489681565376214554400030365997869176056332224040480609546750647546162385232046806089513835821661686505938907618978410229966205843409378401219687882729955980347239327324369978560608763503362202911315276606871829232808521516885467247922448945579830221669199796127030415546230497673604205938645806389308388008612145153867747105641513499418978641903982263641507084053482458723995626439751878737690425149230286335926326668503007285394041863776365952978460696308427202517423497081884344097252791707339945900916021158374075521312142508644051020937792599793678393669725275023784984563804660711836400256278338417484169889876207995560115764297492049826315215678259559822566944762941542737192440982567291022323470592577828521010066670910300934297033696957088419146493052918157156191857042775403300556732513984818073487680266678305100282577108046552091698657734031798056674826762940225542754093478841375349914090985487678863590937931090664783040343768368237710366792312434601980249393065176596170954878482495914392818062716168325681389405749276393428827604505561156825546750273857282997559455901507670710433910115657349460321746235030125236789140744193154419329138586703813679416013999782664062079634461458982854298784903793114038538409004568854732791387653939871787456006432574373308001761802942656023084099392418845337964538299415729187833130491377552854934222638578811995761077965155274060392049434996572937315652341686166583188589697525829636265571102084889398197711694534240271763521883946568659195435685827878786160361571653695780131467813212286786342937400471656823172060377398339281489898432550185934270826078095290508672121203412215392443657360943913692279122099307191408009180389351687119750842134939020577063099730885013634805120265681764252931972420225215445583897371582926105914346908707505564907240479088785298962263661220850240695221003328383891244773185229190971828072146833053705666565508358321902985230852011077588463391604191501357493911097448997196498385007179818837927187431147109006456293150800071853644453746674703124917306553427256850925459621908650089801864798399035832399816601211337960398210224529114529143432830191838499281036297493582251481201151765889840584382706990085597177691479395612625753369718611803512723231240474567197003559960691846472846407303915141446776726923317468429649881245363551122895044997727483338177281135594062154014581150234169040102963205626827677941573910884418856463378431002171878405112215099840911541252008641047422404935986721621947455739384420565041539675463560217909268530651091545552802405885156413113516038562358206772976986819176938192816502202223151004642272070067225071614236044766617187009805676555277500622110655953657516154343305630853902480777469924113576235404772669183001905868736222562443928898374081129484183690158984743682808619668574615410327974279128102122521716795151847532336895769581358397823044856876799617982470686632764391870806989616247567354244687928910126114315091211656394924988261669405486882598303578164835085277520899434347290290514316280014478653248657294846528570102727358443201779798484393043349942742941864545000545679040160267988664172733650702121326359230950440466475552170947912755139838056131658798941247418482980407231129688437692899394249338514668959678238294743604244663900237631044630934068310713486556558925322593488302079955570187095019392478256009087249962353065873571194865558497624850769489139000903215643864574894992265522087657694231040629541120397009908921020445793242588901811394835742547880027930264250368333024876865359960259040078814555193640294111706452262800691465844811943650351599958870895415808582998702962858388105516332250763194862684543241620854894799364817808527926109902674469496510106146176439358042331236019230863634928006183351351550810591315433109939116632229274250665399482655753712809199470984811575139213267955641865385447275617282166258679243771686949940049349682951690871275110890859440913526128533393529195645564842956804309359761109519936588345695200731595840920975403521680316401662579861404307227695786090290649613664989724630192630318541140142122518814105362335840847493469203361976890942377668982943381578961569418859747640489320632201763158409083914767122328084013519218548273406346192624767824192217729468794723222016795379810358691060051979261738346968860731846760847981064977430169386145002813820113844011351962822642254812524908055533865450736441546695615307842158367183802793788306633540302558204372680995381649431311390240683984861640966501280294897660883433845256535014672534002101652063892124347382595253930124601361152491620538401622363369134550029939002345907966408101606589142506465735177719042008357722949228865226358775016100843489102862272017032187109512797027290150911919600361881649154538220098707958779821687779715699493001287213491440385675578199309377180141306826669055552079843338494935225839842029965637198223355697407290159366037244451264599757399348144865633583571809883190085905005755782133450077377710517880988601582023571153721281765768747323409572906222032571481044964725408018468392368947198109581486484937237312153926167716293723992583746018756691319770242164683051232018107307711423361481375058732071756617719331021384536484613532611550364414739460681970181416302740789455729895098135759781550562682698675686935746419310298482418668347416645492481543518871500005964222036447657022263022466008090937343210144303005509346416314851253478778738450046264653001845685521488027723338281171318553937239922547831614484046165751145891359417319571615824141359799330967217045574488985985482356840357655514297857903987192916290478532270486054248364571978120004494440959919030181953106806288794553332867487791925504865678482114820922369020189653686690858389360639193553435145450118384209366726730229333646573798564962975378170827655144683920741693724955488324399125853378676304007478493302781503854693534793542515656596409456899674354359356750112491759827864165685197501571065287675922982905590808510011349256946186297477203176023123781645024503494777401489063449395334500912229876561166873202766568281910536751843225423772866627562612214020474603459802222663304853797440965464451879070189289917469951035944208427781662892696440565274816669764757463740575319931672202988488505873786505620921340986800897789875158723174700037608286772560049769154367061903510591339818585042592336503511601856451730370018517807257756150089563250633715627875971395114768946666071890875803019131985189361133169358235080397879949972207396360796620568254243101321657559920618004984843557429656593166732902322637708465390098986245551151847003077917658034725168218375079376515124590258518352397394807121203805408534098034290078287852730893733920004385260299068165908233542976199551254244454890924297083709103560972754981818725955810439152020508172515498378897495846930592315049186056406674184892228437116506117350270323975797717655283988796077880803781346450538503780698053779816549896394067198325265759006166757984757699858728465066275078633516928108491434426196791050740373106932904595395942078235031710784320194875414766865293089275710358041120431345614923413983218208012902502741397085887856878794330589874656588619650834115026499898149864036020489696376358122957179173495735210188435472564742260889339867377351522050229674508875180321539717337383247705962472481906375234672237732788915976369318753442129753353373211366942333531208316435722493139478072010231904717023081820061262897670522349817050953096221380795257916070925820927512039950899912970898222939180294592823163343639671755074341525610613955298668771597323119231902086260587350714639031058944776284847099727087740202609537345054396608090665062828556941813665394424053208688231350269350917268100242857985012051454960103195175405392744856169969841939440892144342177183154471484959494218742655815336943036740766291672035653207660392785153270796968051091258450411313936050635906542013570611121591291144769780804668807070150358287986123676559520691762581319959925320377977750119042940449311377841719905970697332960870527311469266769836033139047252635228172702668719428512258013009510808658215450840933560672059171729579680394001780944112321707170643226195685921411637174940986005945706890166484152857687088974736705079987575998715407822654960019787078230497648725001229717567484162296138260236510391849029704263007271183580562631341938920858826647345838634612283374964943706644968569224827314412201619611415602044375022222579127122538845097063945332631524302877130002987324640166840578664089941859328423307832929455623889154952446957282914976783618082284181738154702781081877442030325430232050281764385920166337516857840617204478040553972071452035684612326102762188336777450661612640812180665706836438988251102279124183929789055210322799157387458889302031998568213563069316286145167862034716271600965478521179602912212775828865401488400395612397039243829848054479835561574738552390762584115662771611456716354590678572358837347828350517750360129891323502631912778584193212411652682659002545644329893256723373945476938051370954010920295370818154841932694794973692025932064567809449785867060691913477108231606131485933301419057084269374842164245275989869487088573601228024620850638299721855043209725407984887749995148185256270037153118875634383024428621022006550984175092697095274134205684964391144061922475124621359438664629512233255320642001670322970275664362989301788662309346968662459321027133545044703338101005482178830930594886891755159625356688470225423935909390838541650536218468774985978380573090647519841060276421364259992161999440836433859557565681417512699936339641282394765392899148040699210296185071922569772380428011988323502129056552623069269344709314512782553356282158010026835085700671164579241878774358689885960781060717182718576012917691425528063437289034264735642602458648927843448909069118163132490038962409076156944967410070585164680840821768008518972402802605869312428436285388966546782621396659032149749459775084510189265605663981850744451242823493019122468076097707580330975234877801311494768602702068747039397303783040633086979121533159881596442167061229359692577552321431789472163191481283679304705832797070938909791880068409599606323924736736197986994283651344114833716778785495253153934922076649959436768729728546988345412157493515432032511155037691529984125818738684304343875405199762469325297694023148923838578401166290598319629461339542939850128247624744790610956621127987432510575959380179064742005912482799683433620403034480042944902384989617967092702738874804802109506670817599959792446627937163349201547091095223735549036804628356527466960960220172810018127085537832559060666398722080569817095204578870476493956514929556196463909673678157410174962775364866896143963651411292577325512119098217140053234199520886227598515175195743594963341448701465592759743720609843672420001214449390966264664194748252172296507654395351240712130313269348917168881029229388756010356582074242250263031934319650051980409888091096280944999796143935794966091606300015967500054532068764543825550097423088547794840358254308431152153876889669936932443158342779216231102932374694547078233383940066804820529267979656384490306501634436177199123510982455479619373534412254500983501962813119992988358059284336895869216693513408639009027079386111152672483141251900822587563268753742356451297154347848619833336318903044114506660922202311862856363139486757586387268470465446479079278199692455598102557439073335112712342044623392459709500319622053985161987314182328376930751418642878307507133922849282379743480702311075389032368758198491520648166629172992099989979187967018391370578517252539839061667751352093742357332572382535891311230223095748257444337107209883078480043480699738550413461725368711445984668160252766702809975303826711102468401782677246567297152152455400857877331935922637717576870288566746296575794030826137497827387729404976118685175890296692438885056296509372582703998608703370074258478094378019344238912251307411165611544091681562149674543444724046222738442324869445667538219974515938363518163421149597221106874062229281087694247395879528915087784734013383919061721176857839473098356388871501081912403350234151118185161773529422351506987583501860779582553069972955398741505084151378256260746466952735331120295144106755243507371000646722455095837235941792106013165767201490588569011848697041835256426546244386494090839496201669978375703111731741000021797502561463500805814034669235608543059705891703599593118479668354185345323552185615198692307237960217806058226163638398859378838160151540487581932735796730290106562579011196736278209450196630269470191338583662178175549007103528790654752657840017385227639148374899289401602870865436975745686734861077595122999057975616274298041538225074841117116260693139497684148388221191450658161726148292617408477902950788150200015805859636635362330825508963736364413674312783299048944553275039057602966140861468261351042390940818060209823603535684959893992371074301532136572351965477020082401102457135213965957304122376483802344232999866364368896069870670770549188828369189053907295708173251374396261650843065776231326163028625892813541959123708766203265603940530091368080380473321541101968391789348317557986789209179004231697028768221920008957994620397554118373268632580231856304739573884567195122053030817953046338231697787180941962091015557766219770902152815874476634239627550690395404828031730054715768813341677898332697635046745749256473390562053210812719254272022552968041498418603361962100856668436421915231777131697665101697619336645013833885807625997741501007746181701963611497858477542059145382636171776074080693779841561363016691510619413615665903834457526335194279314345949335770082135168892618461349450523154531573533993539249081098541488030616427012264318009471997683063169728824082513815984873861264947463001708951342801671002884209508867000197817645349299174864792527327529673445107687493446095978662311847148336060490411927278324279869092784226053750462686294353132606017247113550546983387286643632045383680382563612902886304739782770970392882612796781727462601242786893938043651926000100178662895538018719456847050155884495339352270856551657752693064122631503202671535474019948836745225130777107842378311238466187978162438251301617386896227773788233617788801582951425134726583816630904068961775872079644420691637313184195845714996512419450953541441960118441632232621542984417721204527189668868317796285987054239308745626312962288676319406545564661767514956397345415129341742584212667740694037616847273725604509635140983912285681420492213454440772777588838069202807299052867141613243475691036855377463793628588537032073743912731643322155123579884690003231060701089664339444590680539732778547717430719135116903890221641912204070218466995878613033696887760539655678833957046671029376837091706455806963820377237468419041002398197263945336051118374054479521877720485845203598677102870392977701472364905017929711487257267403353396680747416587729908338435582845885143220384402337151841822386591149341165547812701532469874309086529947904982116310535733475975980419024398593536525809499482090003992980702069711575227792878116814128753926007058963987146659514133010488760448775025096816655211773115840308272340693239282028202919887914475424495516717584039110980845217923058047717225341038680076449220030094717113706864896584764894755116259774739655407056252548607946228039462266592893433732852299223769390595113294012645674528939042340896735950877943603595829902650201171484620917638519793464381822565921229653615073997595852358833235913679738728916263258564419869173850397346339474749048571620796698825608930531354841270742170480033074286272539807683747275590115239127756694534822047859973794267430279135841446853382278163247527227115485766339856332186059287698228007626735275965870622165116269255552958940374100295881228323883851699503547678419429961425235541901271731901737906572385935212792936914570177881154246024368054435703296192274824247638199445370157280717866794743553779781271892766903031084862616176777949949069226869119211109734102625558685901808922111026652560570807687086862180013807330478103424151073064938194829128574450098291241656595026795745530188745925239019200046518562216510003538154536449964919298012095035378937762242818194847536795022710611710789934097871149677740938178109504239076837836398142331368236607073580863466500217871918181964355333793478546451444845582836502440568101430176245460296292209682000711130797832255421486631269111869237513710044660271652851914989722071806978995865338918161439742226627363694389139900954898527116013471961724985204126948242276570278518571480641298566800863324183023655159353873104299078947144284497741797344137111521634718644530361517697891047458562382364461284108087790158130586832523212059500905781089074825069860799469801948260958483896673253777395561052947834368995332904059664685353267263866754871639499981099407319197757274880901082731536773447963131074471137109696174633905968066047988169718872277256014046029433306483413442877202983571667395421741664581906403514343418679813127881542273039654464915421527093792807794108457108202654528148834002154990297702600893110912426220171512518901271938592527206669620800996066059652853197952013695652927962968883498440544789136945947719931195268161012306638235185201510071450693742188192247340127298246973886574634771498430186144170627267080635676672469812141418675493238542897058421426991996666328182966866855686541338470788082360084635750491323574912162587272333134140443440145955053266227770996536597903260565342537059672311162583236938956451679210473178722919331028283560518110478122648210856825276063968763723014428711278802889623165218108490506120467143688452980654040933467401413169340907179316893363559520413180952394985217290924593399954501360117168974474391456610266263355365216898975306886933186478087050479967030143003439456345581574367484112803860385484145647772769472811080404639175726459663178032804085851787115848169035203391535128974688981330304380878276971907240300748816341648236998323340613959810922218318801578534643478668271017341271936028195540052482058483032908659769593869625270454228323874512237513553701566594427318539503501126828983052929954717632449419681323914140989179596272546630459709613330194644803038326768562059482579309085716652107129175628793895934627612253172266699736918059093983064163497798513705678073728125869918326169246291882444084930419718551322194678922797106392626724084005287957482439039783218155528061237243377973987324042735212287834539395650966316287706367562953093990716343769569150134527244177405988732746767820405893493015493331914717381932662758636645110675590357835810482859776798040860925672720781103518088704564219678875070170142213019058920746854105113751374631022549484115761076486208366310699285599543789741827837785569574331844611733885017359692663155025378842314326014674854718120224563453648218451588961122553528574148349398517212587347936201737034660037815399175725565335860495219767922753214310197993965339507977195838308822763875131415716122148277521894940083499853274321035043241615224227888726469810652870566798216224529486916609222752579318698861891460209660218220325509929097462969219525596899114394268025137045291618949641045660343917882424774197395525770548244173139758989026743186312417899732078973695586452311693540468201294344255536758087857815422916391888957588533298215002769751909332403789047069320848527313603554581914713314701202785364722777763201303300934765480481713280626073067702006252720293583413438731967872178493854076539401114489356376026210828213742608848115011109117955897465564556465142202599178198443045117817778968129805286145434719440328104197302383752487032444888793630741683946709297761643591781525279356554089970839594507683123381244810188574433419843960103569495420302401871675439728681990480919916561227468334577583932709856335672250398246829729565095012448595334385514463423663257622045154026306173355305012685046384330393698504995805131873895096180143746946402713708870459217469076920271486775322457220197251149548487649130481270173579225407167604234080487302949361323941222539159560171001668999248216851916631989444708820016920997687820865538081626614531460993114157501660593160824258944839772177020055864536330355011123135796288703535159963570754179771560136342906360330161331477569459748172932742533730415819538989660127901237626584342434172550062049677543722994122376052693053772694256756515818139598072738296093145474841970069657143604206701600442730313820205054541875963712065346062093280594454311699204637609602008890683107899859875739838644755641225207095244505295301678617681186704737793219533098837733463956736788581287283340151525232648638266855673346332525849370482290623638108842931883860967346794312949071700786061225356398006897160655482619484010160962660851474345135847926958304895967759103327902763546794566394703755391160717960047332117607166549021002252808397604479478283985481250261551085660049605662620273983440405219995298691318889972674099521316321918154132347031216951798048984807180750790434253416660994256771686170629503914460732007223383837906759940379133583272571809359662356098245564732965670588779169912839738207955269584775513714266965636440623295330659677395018459839200152703466019834326004962246636781259399898011552760789220960401993422715918394568470702915919945019060265278904566373181062373772121820885255812266419868533918517945081690831624476326357857853676009514873841684728764468148613431415106213553713449796950968791692625196294570034655949777694117878991551353184085676261437958213728314191549293735475292322882578171911023019317790214169373119275236614689994864755603959071930451581454450327104537856230207916824563843139116329438571928214056795476392964868406313221039736787883950621192471967914618175219820646870809361016116714572541214810094669420938353077131285145699114147454065451178146129454052004511764657548252206114874079563614645992036695714419246264320219806455103356468032697962243739214822144794924835544711152285003141911956377585805955620505937231598751398123914181421063262380892073834063386668731230148613527270369620167829925319507076313507378492759970080653154145819626910629885095623632271012582804185092582318433489640083313152863870656317739986500864461721680798198253499422978203571886472402035874252820673716798258773069519324203543751539294786161781968444865527713478392843896168032756098914187691501057412063409598121326193630462160351910789888436704625919855844990417771641939346524944955887903306316551039058334200966540438900524766997979978527314139594453621707961953105824249676225463063913575704577825104501387413335355815017867831764705444506112374132900021611034559152332380118031716638139686040466517128879662016619120691671042479953345908130983132311817823866735763320310481513087186598411019897304912335569115330610221100964037725401282301304770809528427397135511649582507005016554702937210905091088532516857236156805197108728111697346426509657373173097947782879893719735000224774947039175300144375857900981899835425466351618255829583529425922615390311279957917783021788118232785102137257755154729808208943816958579838188817504468906196907846981170622661908088750675717074830416247356056864718211390105388478668782077667573980318540028785478942172356509227838282291545052829258671989519746404923598563341516773550537802159029165732659008207568238267895130884049495299207476820825040845700778686839612699781411172002486380690631215119128464964188261422271709397570189154509884397163385190699611616337580602919091652921893731383544713747137503304165637061087450221167652786769642471145062400956566633941567621588984693659834440873484957161077453964945288343582138430295665990299148783959876729642633896661406092825121015356762233042952421505770815212163987584454473649830877864089983603185531688379332340281621158408392958480380722072652666728824763455931897156853139067745731721694806491696845464466293705088861389803990441817654680147550463024562462708737179265227125477486436375458099706152835446569025719433935828551253486071142522833402246973844720881460262911746026689023498301036735105782940184903388147023512023755040389915159610432309132085384865264030293544999240730496454028207623751111697459048398701261004401396065807856213744481526447292832400850211388093968507699218451442964288967322728588814338242084301567973871419211682647328387247325867244142993741665199616350467290356383773664218352735222523126811537873881751886725793436261176568956042049027818233636714078921417127313760000420667322584758211682829237617905294671718381729905544761528525927366382223186426940322976255230959160051475186959631312967418425653361211548357039828149960686415521430468658078430937122828907645880593779893827601692146567452007630184019757177684272043801181382941896940526645514889913623066931895298713163348117411087551738604691687952207219008059981432170173201740635499805547473016482803067686733561611297208963173748560267561885804472554580576819305538610452161458486749026933918137303329462582919265633608278346366725027294406800186100024357969211481112056187881245665652963647043451432984659887750692461093401407486773072428056746600480809488555860273572888001614937647158805334299845695053375253781817235502447723473541942440239249527316865813629326003285605994114393999947971100051170930415676088219731301588219611436859892342648270710540351062398674840977768056725025052859824482153289411122751451359319900629831839681246279059094895309324729773360099413853102953803546074596975661875327429106152500185266467684550320888957918482373961337384029832538906493624790327946387322557328416472772379136951218493987959131364936519173056330485182218819131714594574705875450439026805598165986801331784433526801238387950180107347290703644763734919747937547679570815713760057196728440112222901543740543239749372688674061031967655347199143831222774768500685060025978541426209038627781071026107074397442684583541717605710834824174637561014648884008792897480829720172484095797199654832531760929627225155790206338446717398999129874537031861629086914026852876911749820929145565307799071416110983394186356692990987239780991114878338875229795272582836199091724874489762641290461365761600067352401233618488945550404757760830525351881288817263317418732141951370595704691297296902224407274321153262804621767630952877915411283580567542314929678636476857268737308768172844686116514226301745343324015400451914303108133436061781918795246109957105481435570888797152267012434357762771827523456206676121309049970453303471296747886393689272805795846566005582267483150496220563123214287919607026112802041263678952491681659316101180684518201323897433533701261821187654613926582310227025008628294652844702585363391081114274168234586501482261235129765080184888065752024045001892964485321817801927275078497203367933882585168429099210250628106835713060839779686942850896521362856164880219563954261650220954993444289597045897292868691934973461672992482547314432454751491698458382614566523874581918793901307787082249088842594198286917094491336528393553953908363996157991335015490857469205013111572933061429874281886613209396769295230177400906791773020878725178893622331283985426368434481128418503634340872444778646654204892684497875371609477471748727165256920765722653865823727489554798582745850905133875166319080477831153500379826742791728084050687298840502571305776477026056613090542551702237721459053354437960125676684247399795876990259487175022584755108306383166190053624515233377720352620049710050037886877181703247517064097222126388316541842994022478865436943047135793172855089894204555165207177408006106437978731957601832499777022477094850429331417843795590398929384807612482643363022466946102676797506234687730363056307810239586276111998822798564651165768980519469259726856103521284968900622251759199094243566864119763857674665725615867235463581991543553621924515179992064192606398865767971749896319649306287481130100412979928984269587134288764652473590918479474143162959406292969592785731569397575521768217017775643466472727116359147873790383811728005438289975695059282754695961407311002991254400297253287531348415862353441495401320706689459757774788768604728473736800032981829210189336126024720761499516049427584961603592850549115198164778862332145966463630404917492242414613614020164164613318378157497711821576010439167044947505637232168911165195831440329089367726282974936792835422055992469629598825393636048038714535704030404960128715603094916145653581783775653110807392700114559863744827023925478841165216449225760618887776414061407853112479447033980510609929295059182620732568249783331192860460860593929098841271374444469567137822107552844589483091484925054996715607674461093432049268741516839171992590691356309035763870928260397927833293614375354039931565585620824788322315826846527972667835141144893714589505630347829175004629730802422848149406989080456500432665865254487146441405278003445601915048059587803194354959280247284530138717133675456730405722445942058774152636315779343144051202105252499000024027839953262182825245100704306491981898506037037297130565494506208854809058694525344577012356094028113321792461864381562324923904979000179846916978035876929899490617492340783459502252643464916255207308484008312217871424967237427481264590620075581061069471972000695405068173605234204439401140353206528095813211232767507517288699107164434596687384940271434111687553952023849500028017629614516818112764387370054636458111565948138349005475092445707381999524969387599591168187368893301029704033892084733891092397671241444303310936263458480171359093664627688851651071463504092103758508530826512499369360823515779010017043921491514789949014944753561086669133767932848401913474110220835949908289579494679310142567963985269766297508938331298713037120141952038361271619050520301561885404076397992087969763188306967670146610363161949025082397693923154344582496556453376471768235075781585155281667001234218053673322343113420650230903444535253758765182598628981512675089781215823000865330243562625137586423459180837332954960221587531583585579032750822816933358520660334068732691883980045239196400088152602293462016567286561906181279942568092387605578667147961345970981757593548160963524982570951357252790073281939157541620177323759143601115389436190953313099722416225562091761365094627088281915983283268830949954363034373033749755142332771332850681944489675144836359459442525886412679226746338284711973244597210432677903184261242861387340948976199683855998419275320449540817914966852603517289518732694701519376966363950986287065022125397225068716710078784449429684956830616207966597155300208421856458152365271181714164848596938186584383948714088852526064982410132289407734870494451615261763290328695788427350201522515603318061233118500273279987268153041907987482334407132754251059978966857244477831393947503909090147377559996821030061565612167054993646883975555577559585154612231712775316913562876628409403545767513191865335379820700619347081689210465522408415043049797982372157834992439377862639017462388908047429716212261836480735422827753138665574745245824483640710211022765146758333424894451158130185248138522164014634344561766137242451641385734104415193472208184813895314828846039490738651440816569133655808708491498014944678512111341440271668776778682672678412829065292366326210585199576090732322918034305634614925910482262450550096252927664018346882897440118480649449870437298634722686332451475613571771341138565772080156907328976148959347513941159338549387669092211891702292939453335970392561971583347110153260007741724446126943341578549465927578256762022143649887749091023845865437388530851166613026039978625795682055624438353240929747549118460254067405550121727046614331750418233968112614007056054257744752352947813645333377839365538223541588761686022983048058755497453179365024817390201737926959392597140663450927652981477987483061988077563070133785565798028356005064302070038777044342668946206905608455375746197782478292927200022964002292012164651723792653106736274863672853390447955989297859222961469827914128095670955397708216899486062894784788693526946966371237356744221888544063342291179958263909292729079888396956156232948868297897788388926716481114047295468086414937745695733007853532978783182554974335130915658260234951396838369954298955347983137023461796400717328577954823899057111818436072460239970903851467332904861589341740140972239306828908396988836716251633883427026465588487175859371931556024037434419178965133649771842897373795946817105785490164098051409621668821517575193385412912320022250217279758414810670535094102672994958036872432456687972189082077832212986996696728634857912407198336222536200851864515450572829597723099198055343868528458223645934024206779466245722004796109320211302625121532978724430833603757292839028081564626345520100371435275373257553811872918112604565792222884805539503287594239703550306809619396996139454310648885580087344000165169049792533553509186106273385166222538597460840057349344975973995204853897437908965460834053203685635346374622149136213888654700902423843060825648348732562565706695061183019421657296951118567581928639288050507668466833538426585030240457429246725002565506705618282998167824944406620911850786124227389352813125107431082098171063587350920598145892270306639884247621760066891331318558653521049336384269514521601709947953065095438861426599650653273670288144356946410248280108313291806627523081015954097208865853485181174199475070722128390816705539202196846959203906220273029250406178595795186713615988863649380809705263541638836343266475182601851659072464788424581738489550604822157606019173859578483574570767673414871467557911479216958855902574567792423109596739450875600794711811233098990519917466535158358262419550817072008097988940148382154968615457376698021727434934369438364906439431337637877269850657747165056215859922571048264448271874988593889295581658640427045214265375973998943905349037831470389399548518778692862212411768433421893533493065600620302220738998741706934240950276317904496782628819026978231482989809785943565489171654691618546258411051745246794224045214147144185886979704922352618339019189909426349879583688185439617891168495964742484724470728833254174847128125008005445732777868201944306260776080225348585894979279965889008908735183818903566367133379932062063872163799781042608325336125295032687382305910434786416101993082383678755590741815712763842570864836189568233989075468191272679284043770469099966262203120233110498384263232013938102730524669749874444486853963922611154292413394001728606343860721945063095894395385982598324491417133567488286513813694771000214698517962412675308936271263789158829962452222726695270449253705839319208852868127627524376448310619483348608070574360724615621579132246664988808146480770196262733823485235393633356257298145483817649360110456394110393863457510483294021851769581701459089792639810360188435292077668102908468059728984454589615610112354279326946603654523234658732143689133207070444787482600222001549913586863355301531064237697279656473475347682373374340002093764700116339977885022315477186887619047889092240625138157860759682678683103085047237497156734290156202045011759003167851059404371100614426530171005437682511125749785617440754382888442363424103590267583467413104800574758942191209508085939881988810608541009482782667940375338298473894197893201447382951678193772171105561531884549318712081936791430305250212438553861176943584578821561401988041953309769452392971502898594594562505690689949468009623905869522148869112411463581269749402817979715760602644736083787010157865353959946867967893424406487760902689675708729393971039021952666614319595386382129081501175094303854769465470976497344644390618011133630261465376511322158910366233476499445104470734224330029436476380889691411976615057174231008889825312237124501297893922716821218106813532251326712568657507893726899585781589446639869739290199166437756584148565536790758315342597681991212354537159682202002957271112881803513634054177051677774952757943066652578751309831506072531891707335521686705013912547974834487654641288448361252012539892717576955739951970764736769755791829161022887189537858159544972906661201427263592800104584711736696051491275013807723608459115521447633233171031253314244474283644072227329835338637757859071766220873348534776885322407369768317498408504901971862840814413998351270993383295915863624753266516137031712914861000521940567989945363549573932433889783565452237023624307736553957332939746940556863109079310460399666473446125131367585837822305191613993028839900208230026745881949292888135631354575279282529086512126524868144668057938903414786479217954093041874706164869654654758542306794419141701574139302930649104326946545937915055912790073612169604326259907781021423469827247451206509334187357166580621429222175636060250562785150966752537384029015039376193864751624854915307366563235013119913284864442211983759325174016918447672404267337018777575493426015338526615630203418334157397994945350747571302213161033527042945027556313130851092764973672695659542692088456310825404907639681061837499465436144559244541720369705599725713757035569222794171249328323461561505094494589653712962298551643750013249828405330272415966840037366105473063137396777044188967792688162172978794516843271215963515745103447820925543397400830326795772046861387585921218690319673508023238332557426178576147764315310434870189920657454753444429762364912099132764379360434639231227766003161186638419169891894021343987276876205368045336749428355183537188135216918407786082023471254208149035450769742262126488460527072630899441981719478360473781127694542985754160696302325548093643024019271712879487240595948139619749015829856256352326661215022149722481050613660739274456598004856288243665283049300611590995805291674485308015758238845700259419299447100362462914967777071037941919328036895011833080337195427482889414718114993543712230312647376700489830199944420880206418403676848779296620899441842547005469781752909649879761774649052054640913126558368240731387934562058734428114732359540940442185093651971013757990857836792382513918313697609019342498531857350798691545744382714479176101212851547197529827597028667112408385217933492430657167354001267672917194282848022222089024774846427730071762284080283563924975547701400228178906593825804620749212201710148330810307113152018598182467527261728284656214759952820934349290651917212475291091573212048764098265839941659738457810035494362566374322067998676572227470106131761041866431335576830546007741893747036865630255890929752494145995221513261296312304107356069676391186114602106071073660165383885299539540666099091976448912992987863046554040877683227285626566216514893793956009749128933121926046753868318738280052754421290364095587475891704488697695969355057302770056306926651792977374076677140962803100370123394209601946349122928522161169490700375203732390256622790153918321465760966564552772607170597011780212366329600361555085600462499404910150905310412407078029344434435852116898326508590349239020715819751037946385773073439995448519057950711720735856252055050767152710552476271286391164055366684431008070728577053323243237669836481682677732877830665358813817850688770790434197985969346441001964114211700571099079145003662049981798555237034630494760995888684834011665812353878488457356276465928254215520812567363517356594490281009505397738873272342583966210848324798939907656061992146512673850505746704455102522682679004938308413067932586376589662684003585760634410041203808760685606033703922407553038110797942209728428932484209470918474800914125626269547860826621486715310280522174030411945969447371130559167999795881654380472488766977118480863006333486656712924973591875373971098998635430945510843738110381651063427976550393307304353262575573536037212797391905652090581473827211793813047672136416716676079991132178274973513150657780401370511174994106532107198876658911933787938248757761399043147947925256545680112762028086449551926744232152374538175767999538486857240401438308830378085603117131847364194371722509594058952932489196914449656298905948718653522004586456061623819058760982153383194767171791372968463364186303742385285581671369161803523433313078505523750134709553461808806381341661835532729310991347542385274214099432072210202088682279872383258743869066305062518158368946300945128493569716604647535527157462227195803442634967720633264230202155202779952675698605058678696817386608622941219878949166649718399920489764667278100127082470732370565696843321761967219695727601493513890125113278860711835488887969768290766752489863681539008247610725352538913568923027779455273245001833219896057690545324610669087713772274538087907562227197682760761270243003422356105946105966040803279189149549550591385429845090940007962834428029603298761733854223058429294865265795723338262299751094297313448011004713727790560518755772271811000157566731382956748002503297934210874071463148007135138956223285667906064613258512933638246829776420242962338926855992298325838278338072839642891238314906709842900018678344226093384941551972753302968626361402214395701697703434682248556329949069055537534993931208971547627606379543827167140999438192695856378673101654494726073145785072411450007415579129723947462043092479281144561468817733281084302481319970552668302463409533012624014406754474943686405095693898109917769407647860680729606423436465995699534996927408340336080274479416977167213051284179059153123022680030654928003953062699486225747711894153134178123027002808680268687873429157055322348791180749525871191892873840910058144761018121128348021471828484452625418920971711423583926592372733285697795549905740218043511781103853499842496552975601260079120512620145391306682738458771664617308549985156559330299548292433688481987166785664622949911467293156462994104805691070445248762786395439793368053546198864111041077346824035998763499378558856116369973919461543479760622587517464687659956337669324538893340870660516518840578571988089157188327413194573727883712588779614279603694790105595546138143647671762038497903718193951902264366861230209424217344532570577730783052958439205121029378524410053348040854302945697287896723588726186370716883021876831624947503527193537493014107319476814162680666267330013493566656109658902908781369222239356177829351726797895394082331409591406569115711631752151062671331156490381038497954518212583914071292088178410311063729162818379875184328211449933884437807997884933751345558430043051427664372514408642228025524915767769164589082455482107545229299992552341517581878168749889199308554905024978956551044828932706154799545799191388182472370979469065392600494191021141169755476241027267717966568345240115314063837142513151957058363849655774460853415768536781826591441727098425316619117813205606713913155543215267752420211197505724391137023090904351182881189514772246103329262645279348590017224305962925457062367623036445492293757910581679707712799309512201832761847778312888800716817485816483322926135482522275742915500871633565143157923753863562357992469793191679583950724546132700575665604771690753096304781326996123245224121136762451728943386011977766688999424360122589117914838069094923877245726681696005022866703984687550796530356111866233536361786483520385278502729855232341795106604298302590206087495861072527543695303446529474167650015439792491555302197685291145010941152506694271659269510568151786659648760050727604328234537068918148538903548858287842870049042711149548380777684108284035547278685760783700811451326717820263304679857184982990736902448258649758895780620598851958724638189730809328225138472249267584581543882845668477792948906017229120961345177287326682638032481336026414211316084792174211867629205918236370984943897531345153329040722329554945056467681846525378359476309148953475950114750105944630761715678742742151827475781144154642180619955934229419569526602301169395460557845969285642818394499837685326080907774399665427278926093912365663579752636263690917889845370497128078038980877729911012021032797829470111784905970859959337136882550247526323081829525046682196214172898958546913643076621362711317164767655893925526486593804770136537741741744716441190324649983503638024628630292885802234661642144384699668861287960786003992046404496145250272117392690276116724948491918289114778551879394306698657291881281345222941749164531120602843915498863439728057547515946131918832511963547223331976975252148561585712732507597496979044359916657675142291006676238945157298077767015658088741303573643425996557196557965943695863164617140616509202664045064012757196110831547623649336532749935612047011434425640877017982764646544737622560323739040226212867384575694259906094007209608637563230616512748853160271500584465877964465661446194350939654234327623109399321899059132049737324919731965684741962388769677521625750966252559147480583179983996646782564466384476501300498334510876538205765683676092291633519992465170309904247800739167853787200773464020201256600854478784231778467237982990771438003960213027573458700899520539045090632292307988132716124679208716704416389842619475013302952114196858216323170739145094003198296785207232405670834912986261469499658129219532761490735793365428650116968121878745701324621928099614253124453819696085451882307284384585248228052382599318291469655658374419019443090700995941104252955768599905228906016061645522239564833323168424407686339285107638998838622624235544115180958307480375035224308589898435012446740138074261929718694895338992624959394546548259044386812871810317808582631861659976809261203430229816559774629560412244055797593825729254549192771749563493491574112426111317737085347717014153084734651918530944525198396405779280760998695244907649953802280514452012349316447247841994439839775351343386637564242416592831206858177214175595446335356489101822893123719769433113057087111986610050007090082038893660576636418253483842339817176877129783032603236272504081400151761017874648826835303184638177895029530857028419516354223061941418105262695136924022230451893711977979225623495492463989087897869742229990038447318867056465844944330338161551053781813104782258335218312826112283221475092908185872660017372713551717147794683150917427495506514182981706822484131439780763546800087594153327971129836442552639890792572415921024673740325860707605116546464583008254289121249019855165295863321576935451351293506321635064793254180449160972933102584858472503835613860987231610162845813363018191806483880055802746982906034320579016942070421605109021348325568160743431097351686746451262079428150737862403155511229691471311617022262717822867638166496983093393308958834783973755414399111042626462456344244880583140064031956879304290356530228822111772514521994581443731702624917180414156985919421363954058620955269466524018243604585111887315358324418384376581123524601258900528508223322981802819998248397912569864163214042603156772250511859635894657968526269511338418453554342780515976473047038918364889361424241944775350343050625739359679414014576941046678029913896137929568692079907912946152436077063153165140244690128925052089981865601625706444524434268298105431955129726150602766607586914463192228784087532526808884309529807995171484293801769192971309535999104002757982105442029812490029081931317978230497295975663994569850312594218304982956462251594770908635400809190571146250095997102791017835575921116551908230725657288929822219574130749702069064923377143610047829037760824403602960019846682445009334675665422931371085024373830823237355159856843959553882453458428436655819685182501621083509612588075454658620756178693211474242759399199046820099607803021895855748414339767536112640735466185124332722734398577691879836030859464231878057753321056456175817305860256248393316886830838284509616191998402764322364608263621275685501088154197922912128167564474921013492155272612886358581851781104977625958762447697918853145289602456080721050426004166212464795133461428693823258862401971630937651608067809549229067576362605508153010806133788784726541587056189212649788727654423520996440793698381814057032230487385142577140670600184413155684335807005971363252865141938822077801851822229811619666678829362513865826215722972071636139251499482637136978115955804706870207880016777639604050262123416918296545191987469440888261048417320290292372457281862506135918852248962586387113546742594724894477424435773053529509536641493436620691927054627593889276255461954657049094984271776975426143042122906637634657453291966313003818800662498432952760425409298517498451107468654901135482003942272459593571450192148030756404022996951078721856999152038466754603597938905102390458840173587594106660679893268374613156564640439476455329175821503088506529900360063809946404486199359046096540089434226011303968994970777875400110277537601701368857547686327366510414062259640505253999499178815487247231359861087408270028573535553690920612055874122232920787863331935161067857406985177054876348567977781249530087368051245041258185633326966262514484124277114837553807230062666943138154382312180871994414119036212702120060293871948650878902859087409084912965851864954816525245656419454275964650501581810241503619753355207742109706873651805560816149740989026560101303864373127416770428429829219069172201324905454058711324321526194150039510127962113627302080785065847118377691622186183203679189757300872651054433751710730179428322114327662681389224193818731202809630649983833408568188904184720937678396419758545167908484023026934149071751654799665227530710229212245069089353564783711533600755367574726490509588194466357692767465982237252217287317210334861749312733933362251559822080587321543654167247778930355039223172535726177075793392099353101305467031745668191784072330574145533297701100544139789227520664315095154445514253536454541390427149881925488435247779486267929994828567101173542575304313295175116821004459645608654438551390789612775698581348513639093538089218301106865595714466209438590771503967009146601884190549241689089499664581540339266056959724467754797840775384019977486751907713102825591740346920386392809830276228753879244294316323163277298671260925843694403568556788335296386571219763002413079169989422250025020900421486093750992456508722583989803883063112922636728558300575768784255074553562870919716569764097589649241251762103888281086208600493294203448220292956884944204712223649966064111580601761859569473095277659996037110200747541695962929446825271176287067723305552335030801670221801378948220488811002817737179567390308722477584387998722196385646938887909288300518357163976545308921113649338571634307624201182066337228559602468745921874493964819501678253793686946210308823677997948796230650127047003381764339365517330038234245963135782883748520262913492616728280679795095254211513479973803535445139241817079038103743254134625456145822513174002410650923060019871246635715597702594377049177573271481493526803394547056933820036184728522078587986285400105557209317232246607125831795740863749361502992791452552474449867220396021717432862532875407202608472395394933561187661895245732993882449882039338981653410729544325104671231216665772888454684032210507623338069305138788923346703779162728269116830793985395448897531503236090784098493720372576536204958317218450043323038745919631658452684143568252862705574782638266315928254924548005898291497012280424997029828042509472056141319747090391676158433744660517746689962197004467130638981138187864985700451158812443059867524341402709247767063724905870234035880663979520130104320688214494241099075685682478339934850534726840510404831877826787857444348770027553263107569284210299622252657914667741423011839787086197687904629847283239637472476143817900123643874162273650709524350092205993433700537737884388878471378874120261232976166942527895751153539245037045610857806702568891095356187253760721759050577042657800621384062188200063397328759427100589275159400872566130511836288905899316834665778330819401428227043226922527563376224384370013453061489396447723276409274394537818520361556605501350564552056032344481076149320188236134295893225028995607588198132221295819410732731559718072320088021712019073157382622592463453881029979521532690718914193359228366673684418742415064465655179380493990247966329490673802122941002762958009343674099422784251295385199102099387477217572244566883350333361109309397364650711829283297935796647600188025640164168216839166747693639434940821621174124591758969107621122034654654875181065497287225772025090429800522147388939148374525789496744864285257276450456100961758693516279447416879948067968035266901621142904898575550327032060406946847050429478224456930162664908789407484946802686672346567901069724690487944761243241406272853573322696710934126163932607010393715927459510777889142503818874465861504064789370461158096585698075321689301739018642606399651899112219805058551049393898320709592946324240636601128014485862082199751398077277312387388323642828332309346347538009032434323853022482140540729944480449773856137742095329448227080773856377441944217712520475931516611028397927218378470906054132229570499312975552598501974655402640722789434553916524162084826330445912786911871194487602676357520787814689098059501350445419604650378878669657735792886493313534806770677118385227506413464612821733015726400379255109084821433141665461410943393492514910401834917520955269193272523033591355373209190094467972265130825482864675893617377965032038866661989875308116347409333623321603613298244422073054452614607617878956387990780257176016684324978597382040677615706837131673948689123292194461318495631220087074161863874642810318860491578996149408351988373478306020829293256170914255345726631054996895494583075464203712799329937301406746181024036092530658784506498750256087070108680339347289877565318876015639240103872943947704889277157067229977005165157134434720487191165832246577788063323008678652455509622347073065663640421644933604318187397253861512101401729993158428365206494627747784682616107234914398371923574062248314058919050668390099443246971081877417530166632795589923562868303126493440286343690194229562417887003607832243468281933168568647794409260880741733338053441874349104851616331311474004387399671328025823757936105294872833099371955462943609253302060951122242389728382408635578807246569064927656648656423789766883875783769851357496565394655777912789047320472868493041594096341049160479515995897985873812409434575970049066175972293115089834109203642819217759542720025282080330446149642463627931322032851679612611102663253256837090947721075380023330739315416262062192418811364469142246346053587587086869474584282515168185791413678760615123465798648105927152594663321939860093631473193066240534734983903226043985817761439210037548956491071452675459044901105010232618904781494941846378755746332990895131602902959590769640865019720487051910717717559178515246241831562795467946615627402823206784853792969015979934427634650154697165231465553679392388923032410617167750636256720551505662781050408929260275536367485132945194793284203703824640280937475919188800280447655420161953760214056215106070267733226608164619727964905452082194212345225669438436257431415462510341991357324227533648209918847008610353297306895633458320729748680588189428843270059562295186549528048998389957249508997548197991174227591844188518659534166565471150094877432600855665573406985468098171064122713904431996040211319744061541206839895862096572241512547504832311751113662612132267716982579121263655926405866650147123692230541676065405426616161369234777431197390480969480837720489020200828495236119091071139100960348969759331052998080767007687159535569408839272045982705562853062562970158438128198411794047570003578397444125601079068771169534447526349112010763492570975123981186099009998005784178763432305272714224908583714227429599383438034224897393263337310262143856019707902950715333787866145524977459360896217898336232479961652827389651056012274930171132407032892167154853764969043646665777322397651882596438344093244979835958237860164707095026303968076022071819078863088883854788442598206511759072872274394978265604389720592675408325467703768061509261097721315300538484662056580562864022586412000807811139901168823430388464553999066970118716770139928181873891659530074494406093057778658738576945477532513895762006087342321718311427052542680569424089275986827352121816176564986378225810888836762568233396564340706746652099784145717176591644268082982642770205032723084786088347574598554045530587352243625971243494799871231588059101386169745401539275666691133223749194161097556001216560364501796723863697155090539827614803998977981491277714361455672836540960317143309002953574811889878374525543726129109175606589291193340616011376967254513336820797006141616627277157024126167417249926664300489014636418085439421387086852665831411431531108910377534874871563061790338505153386079080821104740476812335826819613332533330660985457927153848846867156162455637044478094312336628172006571566527209561803528722595560756281942272399310139164821274031621661559754807657399899328358944001818355948776521206244095910654114899733730502204422694509759441754184971895138825729693999522064653171469351989114121647023010478009350445535761691128479202235797614051833806783096166633014625653858284381390277033356467940316898039919214620128853073755421938296386096304209463574086787865410587571382525877576022785590493286826456306411326567346666100212337433732140217248614118252137972664239903224720391701766067160987687351317793620226022298761338259132757378232458891639309222695609379582291104133779435080249143789077809711552065872954890235072865473111310774964380790876778623477173478249521275094250540278140041362949053320762072717896344780426769552090374096430269499628766658509722216441665905071184127356600165128296401016740424563833014925645624289645945251095214083119811270035355428311013374407100675428141525900739271662610385844713910591656490401818064629598779926610341027722757210018708134035332731024444895220181407839656027536599505191909099820649492734364006128671032862652553645926139095673921067264440426878877732760633199638743348523824401771920004603149260486383117062050259794836411953826095817319218689919065935470031136812100752910415533613254725219546316905422110948527010788075435192093336548536682487910551185444678131181439736811165298554049526451544973666200281126289134425341441993681854163667978253485960414082625304943986450177919171558470351444780220388457395468243296761351919339325793677063208889498970895325783570623605773552685737484019426717357267894753510304736628452156896140196720067861211963927066590362075059009539065642733885249920168752916705537808797759883586140348897622709198879629319426031872200135780139377020871508410274084048619920555108063867134414619384889306221660031269353789623058858768368437229224468022229897546488063141861139910623283177987824002556138132938509524901299876698446593740311563431431611452738013807611200962255030514522795755451250203623671213920543208875836679842365999270467790582153961265395945584628305407446306801883770092261292288795124690156863127932488951626318981131254570915836732869053365383663811400404880085728346646432235532389884614411061974137344774718024016068485282812190166474480669194035210579851712154223501227920432998534135779525847990936505972274570667345438151477191395038945377467006412106528540648824045882413288831397253489432578894725117585440395423494934109324145856074921684228519209360924426022471912283377766788684598965442309597038242052458778399200214760868806945509627085373570466763844819424429075680002876676235924078194451664387891155461840590717297653915313439961262680397494137494973725530170565654635988996020015649479226997650804018722608235061990835628736312575789174100627264774906401648206235961543966848913664661563458806506966142741738023440418460335910209721098661693707209577651499813792493628626671526404826262990314572367121137383914114181511471815557653997173366350036638051513035288527228643746183555742374652262714336915017911320142276904800389052039555725428980346004147314564923817757831457951318352134996964534265017613034129041574826956748588916538509900247872937999322122029973890194931553832023762435499864408957235271106533564163393811079421372773141455938730417860829943033514641739417852311195998171304851435718353057489218710752227331471210765530326552302970968322423633005467434817862180475247311527604080606604277730387570466173901271956534334589681008709718350045499190311534213852010892257894695392456701503106161199323928471182977256528185404061653621183918249387651115443982330546778146181271065534513392454625991613202522897212895207547290314823311473751823811045059929628392274027233454454957462104063859687876104448959450653926936327437727487013405742123387791967189949549116687372817642869794726458820545149528294638085141102213749279690201827505787447267515195801839323845863045667889347888297740695255541699341821169849109432173519975169750158723009028592254011163554442731811867123161961262943743320646359203619813401579412038139039464598089939131523572465804639871050000568542402005356829377168701653145679009266503522154669321924798281389935628777504617547481335221228931933813194015159526124520386195217561223809327444838688120324902903081738548649403070913921976311198263848135920861158109795846858719392731613149092650502012914928453450223776475680147698659370676618660064204750243378549701788701662961508510885705244225160760953045933276198282816876765295171807599222867452195092396995431826728407339704931854418199940617321235849226689512593513831697626704643319422146817413764751894314744576825302171804603534897542814391479632416687385631488324696792416623799552677029338620362926647395053458848673335369753185887961152469906353188071089062797830795338058651347239402770843574681810258714915754255643094586685585286359907176266807995820011898769530346832130716912705077479755621205914078855610287269214760298239653435792256631487324254666271261875440933548415473151325144680948993707921109580462673363198107104846235833583370675133187562191055662442890660357474195999618150443933849780608413526212698270813622882104300420102797958513542041391659713914449173334198186896021996104530075931159293933187268879292999870254462846608289250577009606595900594340950157740167816955733733737487593792845423894716842608980112269588817931219366735578693866477166223005697089237409576390710733553091595920221476964057739118386452654024140556092136382031096424195742178414837051804477093174554870830454727435541877747404478458365584214198367464047761990548631775145018268006590669412783078108873837990850520700304083929420128297849400197044912017175753885072070843440668478326209312473983344638946747067011481182249551949402095133288658132549946024834226234100354199510523245491506060212874272032330293712644298230338233246389454948430360195886101077089219571525270049069968064078387203058000641953422808966317798329001206284974786347673107333514187858507214984747954737181640198684204171608152089694456593218969147345366771761861437325337691552575447678947370236937904234003588148753823219755950186265350734124702657963106601465921340338926797306587619854833845102588287592869927671436394323804200957768973235210858089788252270794664343667411189944178230009945359388914499427516487916885756294889033778772740054801137281204717402277341648445076835846841764332851809364980212826083546759344932186149333024678433383035138282956492088935806846292821058175477600272953463501062536300843435425153628135628938628108186897116001195458440582021962036246697460963812646244732688163292643002029194314620237199695677700744501235434019318346245774085784582392784976791112032267112519166969510459943641442325818953379368342442396657190465341750930403250326920021937856951709651056311180317251220938754109874972319044246413558525673958332614066988516107077618216746087492910922109659491112516884084690542743766312537260705882620813835069160484014280843571252175663315220598805223674383855184967100967060349322008792887872848826057220733254110123464197969488762760708082746710539043342117918860777922612149144064080922128237765448147219604889743488801022569512870590421020379366621412897855533604524884672879995474481308221915137013984342373152978518685001925670170853565354438053647583033940765619620287058479716034322348543453122873903449745404911500439425985829818215173722440929399606556825421914808636322825926258712467372940494599591366278822671998955041004872162981545939338651526969830687868625787958480827346060248173148860239608644981499598426634714956459677946592334512353026201232540121620646011290159155083340277078609773983544801726390666459765415013163516187922262957947048587845844796529250054848256021381097084520216614761066323789866258599965601140300599003910810917816630758233835273171937754410625191016195799096045380760351837967149788853034780703620287038459555679999643416046443470435317967110338599926996240306388695930457530506845366839820815450524274932919058427755044717096896206959562235702787297586309847376082975477824411675527295255972417948896875659392657637706289623023741613192462660982990984025485491643623026345996352853546687199205668711977686804124878577074486763174226194043401000686189479361875013137125540129615699144538959954865591593790968559075776216832800809197541330299040450100860589875619808724145618091844161499180159380050039191835334791898039649608346626457647028481783489185380339488166335125915356496226486048074467493898979268423916387533997491089139851805561679857712433682251876960645003375765675746478025582081340124131460909047968741351231010317370917398351874656603067021987715575422570930153122883843770531913489438377921933373629245229061514680480125342684723839960596195935531788894931439755721410993363806854708184636165598635628446326743130332728763745279446807593787879496796133199457102861413161244754529318326101045286433047532569320596510627651128614198850665313993492962791377684064492776575164967188479557306438906878608777653415541325652573842497465135503672464689664121074609113581724480299574850840433793004380620115914005608322282981318468983051321700175185424468891743443823984594551255617347007203278824393073691953671497981283068755420210742330877365128293765556907744475268529567430579232192727836951125416005679762751752454379871810279131137965544201149336864824632198956898171351318096303981145428937117947390778396697234300748311876208659917369312439851828799552774350302781319421934879927143408633996899372789994625553028878482952634811665954863724113454723193658928251037876240717790100453396959737840704811958199919017928977139489117585629034787254447849265977097458932653990358947516028151982096836509276172833393013203692101393843831105927176508719756515643805560500269014693163245322352554601599196843461366943642186041017555833649270839373231197124795598734057632472488744856671455440559511611216019910492830756227229693131395539796172337977158185485621294246762114813076627092875706745878917426093165125167791830547823725239391746931289724071705065605270919940138885287798572008218949349794337469967160742752960891854916567447101614728317112659467105566838023613805912596237977388786326175650470977531315734426180966423378706488007184881577743041553176903689715788751901224458529209262896028234127930603188440660828907685169692726907155132461607966528744050463563253915279816875684849525556649413879587080368303508531406772303674258842726699410704598620711772691552511120968163212047506853601631222890841255866141012656395070057683240224658583682920935349927221210883895815920771402594759268578335563195969790576459075869809966322192998379592041431520652787544606927486993833391408257422967714583967886556140957741986050407199656475202248384604525311873651183955706601524783019383842133807552510464838533899527995402203534202350846256167212719006273377780568130443703570448916526157537469366100155476350771098510744440786273469192094097659138746790603433999058257873598927062386725967973659039784289387803436235526549482349540600529408775782341040749437362061018110724675951557778556260801283705391589098876944278968088884244880842257084399171074505551560791707975304545839704314516034547796522429175513254876696266378173149232418418984233919237591311852131199711726706311453344752026433127958455486675133648807749523231164648043984296177810999781342010312250054330672887887907859788141444024690394665757447065204655345155134257019828613161486730205921337548900657060387810536908935068145063192176630719445003337009516488182318796237322611550874245206130409758421775259402501370497001725219548444766195369737973992437901051652361436030330693235484013822022132045942291975699594857943333241001950469352262455948575529418779685654292229590029404066410609456018187646814006777859601846575684751353964186497920941280557284703618539002517769511580498746312695637371846177142971566790060928884051555688292109331432966617311337641985932551056549342414632896800234844486788169826276947837396966486570797013588074678295059136555471280813077815056190915261284385759706404037989330086896780416721887466524244709497526028846224967649101462907225104409370190630567833147672753355424696956541085138285945525934108932562021527679374461557831819830306794142629046544288160275363379488874047224784089331342492875681813284778789726668521984220871490749927168298111001036465532045376499469209211955959555775430991752554163495227801181616586477542016063567161626048910604821696611797423777323678924169418634074547058648786801784324409860866957960034273154484891025571195493396133193934901880476871609871074996826767822332417879105898439085366872634861707975498535847392929058839560206708115666963015456367627201241485719377715616277630001403371951692054486833501123315371116073749675722875021111886643939826356708108878192985221120034357474557345743400152475082875176201716630055798533963883004413643402713966060112255806241737696706206275208504517635901575866656345124628399376881957563437767158661995275998054102234796505250160070005191509144520484656153016388409246594295499462459415412041124365639827474095742931030465753398616469209618041437403080073780072257731239923517640957387749405577246432164402687421065073595071756579003637025958828109060571898348851634492175519055004318288112638160276748330080823305631803577475325508640210853751759271918950748582078523685268937554900861637964640434125849319011121709198558472982038084457080415475917140641523795369397587800126060581422813063496947635437064190550349243052626129865364160080507947866835350682540423715507465428908829275323919264748344804674744316425708750953903040053055940961605497899703834362416258677072160287694929842346808329373624929860035096077505736823600858930756902065925651420529443896655738043726055101739702069921135533574723844964668738956212330469145361054765306797697113932344341965454412781957801133434603379525670141268450626232557160036521687764146975381141286955794713693362325847087090696344411694036454827945879468135061900646908082042835526245507079512388198312980947671386586188893450048569025828051468249958546542144743515966190037198731092609766226285226532546728529996079074815674106997005201201437684768054558644250558244623763834055693112790175429496092832251702120614795551476452564166493255067064521220938104774148144795505579398037601952385273717014826147391016450956280487008822551801693484945214870536026128989582538450904780100164443379307858178579401575204239966835205772851056226436218088459593960525153068829601181907931578274276460290148537973724148748506075210563088838084139862988984389424400191446218682018457095778272831872370421270346189991424996365056271959669961068688224610975108738119291838171863261835218406872894424220548248795027368413726443007131199829236781905288270120800383217030340646744742451006571643178361084443192110199044152563749407304792869448509671999473603366144413379859982255628462023209268393277670641113243866812944220146108010385915918673588191195966508872676317512911691350429271713697049900254271758975354560367754586280184003454804402927504625218058229325992137750029127347176364597980701184299172506013805757558444992715412103815952036237249712673355750524913394594292051811836439454613517078742918407105499137697667561419720292621450685635024571474004283380620640066763382904433052318638924756046039551570211657598497736040329025890041025825327014489684019883348061560729155183888371328616294175156789550306666612926588916801712414127201926179213460008553864896666337741231046375092144301226513958790322043338069452098643735422073505961635682568563586221733984547407120758317071897707028001342905598148191690866423231548190742636045544156853334228471164286292260201912714059619462827700793850532024664525158722706776315678301094228061612562051877151701767109247998577264492843722332128511903726021213147538100465101275072399005713228472679221566940741073304123687175543446314321020221217559171444476970388856528132922134887195068368231253015175956686014591276511897017881892202991726513882014122430226654374551231342495801330679783760144385126635369269565576410360813848380937028596938222616705985008877019867326149071663740082521295314549606792607813439981038996797309268796173774990005059961275725860357489046121514573691091086652639825366681021916917225017974945962741547595389645579584879026130133468312909462034278814152132130313759510339197828080659038712154202722030812686047631941976956569945708467263092389519281937909637972361733313065928893898446163115997894518875963366940995178411090356467776929775187506757449968793770063569487529089771770575800127144724532388017575092709087132939243060700752505300618092066032552857971283424784126447664257366734679599540339259776239557948171753469539018360573577715798648950850441686674696885759432468398021982838779329373804307989980149964049065762163963258801062951054900911649638436388983639644291283113749869624619639026516245190398407200762794563418974406932295448181305994221714776509116574592406229769250012560785758943451945185446498296391932692725669781684999064977610360785778554650666999117730312859122723649121660020307974910526752793365873451825713530537002509781238663780641858176573735230512576311868206363039936633974188303863903748824032821205850575061170071290082970401937838710685215827285474921022351871308080330038522088937511180638911819125393592639294599177995067900730453104490266384636931628876903686195276744147765182690839395694220024479848152384407806002759751115876650437697487458296611746337006235322420027595676777668914908781065023336825530737238618434233162997435664693810231411783635128686851685404056591065201610408171364124707315607807831052118581157665611232729226287926275753817187482086949147501382063156005366764982096765112263559705758188881652430964826350601573990487608829968941776509958493164044808464597794970886261979625095603980177656044765892904061533748179817350384639117936753110187305518748476250830070383299684980728814675113539902785212712493498355774319586770639395693607825915741663512032020318276667578887893061826761507441210210807383513066871299754358015614949349929649744699111714920352390468263573132252754274612559913373486434853771944750110484838109480556460633553336233724408331581302286409228824953971193153290221999775214307431144370130320021630443684090028953259704122606923695403797444718177019072888717031721196458044433006270599458008368611430700071653670070602650237281543017990859668831250394697191905341601022791900538632418653974066569423213539734453143136985705478997900653364978244634370853939971669380872422115030847238657893981118830163958037418063384045602980960212192103966843966503073406809339050370737257350350972297737235010511724177555538392920309874133956671049766306639444204456936074259443968762215351098205612469472532185994566029541911906065908676540907761825999661490900781493387859719590979201725109742042202038934403257399583706813661594501369995786933666645619167914798736940024843931481032494338497511423611581465211533613012994474022860673610649856624764178555220121132011984529649105588123532347233254191663241832871691667751047340084172385654534838958082984902958118017907565897934208030629652563568831420651524341101290669333321293546678012156805900668367396208567363982538007366303201654234601665815074940358944413670435048273510129794603502898251595247353041692196145019987855944080817164389206287138724346382848248951959516133867026874212545834704908948611450191614749001563160248221712373202725938255361415295091156982003413288710824565277726039949318289666405272243926503671383012315255269659759223255772840323147386681070327787786618787161556170306044508561000353173900718259342941615298443448953973875781094378660941801099324185720816292982457612185661653219404203950902658915074288312937755638347114801096258608808559117592893018167293808044771715796197656891737983087442313157489996374762266463335722053280534711045839558142331814933329314269442564234076389594645093622603095764198574995717456095295784253163577871047416820729817686080393996903257143390347639283761134072157947514326199046698112596952685113486585258778092391928338779896545572499792357212844436276907603428130783525333191145080083095006728173109660933196613666189239598820463975038018229704567221356091415386660739026017001425867666497077634512842111828473265735374766397619865572429084840143417858320940291618048322575115332776806055144969018716396124157269196112856091139501169105460719461105412017918487419542477599798961019827069301731052524141843807040374927494002132796548128597216391828175117309078354477068110136525304165097517217906598095467589075979242667291051526128303595679633452334547881238641876785024013972600726996713714208515860170146828690021105531676069696451583961105885687554678076986139059063826917722328844186567955910570767499164173048202141937135997337458321065726062266341301621690073903582812888866237799053510798172023021263167081772076973939083878354474261642560839574191101640577640514428332242496560100327193452956032546476339981273014523845523928199947484216413531276149879225647662428478325452878287077084017207301860378774079070731213766462235214414436657431602426973181147674195310498779260661847006706123064954188305523619019517768664057023287282264487499816125106906675641800643804342798908928713034242343981955174651083618118309714262488026627146877050633259807370351295110056068992973860801531460015884454575861719113895394240390132523558753627150106742705940629108531424237909624802633919388397760389637017351291539597232585758892660354522972892283551903280785451332440790577313846392806323236044025231226884005785162960092601288033163342953486981183403700804802255133243549116711302005174232531165049335318054252317351310582976872114575336001405805879587424668110563200047893755108452708741996346751645645247980926916111459477568156705472055099418708045144802655146798036611827183538479290677299924527048147714538310359756903579185349363131085415303486750300523260496207816515245608689575353483866834190415104041150166419766434129101324162414540130990146318166074405067913009854428034112999528355856586761116016723834786626364869552844873601943564800354537437428670201647681600281864295497712393188885067716288512669635777004037936841323987270107932324612922835511545925991642167523778795364518775453077085524474088845530099404684524803429881172771067014116020639650465035564539493484317150962667082613513782988632958857517957260731355029438466051150147135861867985990332083112037052393085054262101449624396606950728511977705977478631316788179896352922077466550218807356500859428609816002290227990106590308926815158682932840808508699426320734994659403971042040685995665068228568454618256590543838500350342005637911954302592135595156373226413444633325694817635716231683270952595799451043049843087272081477698203532981539344808130055806647384729113581743870117560401532518583779701753357754710847756606145068202279465582906875634669875988014322185574857146054239133474049580488911267668639840628602982869271130906716806152670958921279910990479797756422041126523678020196008424820864113759288126923952935390380352653422414527269407920698471251657772000876643477208151342903602179962747779989117835163513392573221278123530762598673150971569399263464405065370021051001047429404243530419317414390451741434354544464744273575109634137207145348686663855394608446394272900009391334048342432905195549451691287972431908962249752082871791626472677143613933756086718502510512104957757750894002643222861600141850243424232977936716858349355840223349889526222287971043832474418151691357498032877867373777013421602739128187559599931303625420823726966161746104746078574594255225926577670651409485180099636062808511005943503157680355949728666254479130450236384668093871389106420945767563676327130770328596647776889512523212632189147695077190266391400189752159606059981833561231654337377787497453994980740277773854355669777094278857074647533675897423481801487275999024362781726084203520917591249260238348007390855068573233401362657696637505261715925219885972546949727161895538069590347167248080391031003898008893108468081735538458510392976072893736936298149322756563345169424356363024350682039103038720379121084974458061381819359886039973687324641151816063795114862662028168137162118446366521936416803555276283838077355114109425319530112870991736406772641769736863816676542946851724776378133408717578387966936423904558851184346458916399993180269597982702093620127272995396549565749400120357605820358716016781862683868279694878970175679527734746832284882917759431908419321885856413923279621439653862588579640477103404329604294552564652849491542548120414808110755856146955361344131572090162531669600319319173779824671775746816511446939110083748193525390562528731012049124486179289837611648992222104549816554384372479117613343515333924547782817939498799664828719814894393702972448374958484882129357435861861039302900856682170190937919041118450148958919087816035810826704159386537151349968386822972730930934699192591455037517282968774123641766867963384437738138651964571503658816799598679091778234732774913096396013955734798279536925047256399163762817874268515694735453344332225129617124396394223584608564780716961829595656916076747263655627471260366594099154700025834912308282003002793568804048973148284888011277295962699536364682256373681139857874086462379439210388378778969857766458337997680554796462728849013105219893771603413469124855571249881991604032317311387901731553499085624928959003447740881427029001720497104915617887658555393960312440952169326409756586403066416286406129820638842856454813248585222851319173108340152519253348518105288100013633227331179183536622697543549927757244019308239119535934105308326870825249275620601062776700903283498525917570700264527910173771297142813144121666160161819918899982460213967004832889879678807834569699374037158723551184526749107425359069771408247802226873612432995903278632828370145011511424311517958825632946588411029756362647501377667388660148860276847892373777182668439442066339967999128817481705446644227155376619027532442916381560218209240386175756807423253058327843540604536847936787881458080121158896919630702844682502316743745994981609391714490843119316499636054825218941708857341680232393317338593337433129853401932629902352211885312242993097249344786698501621825688600250939694876503455149802971419597343009168643373178948061168827021928833577399948376232098226817096618450083245190642222423764470340265485492998606693014588834173317843864911722028006576589294666928436166589278004839891964508225883450644874031593471181290974559720598980380203559996563543709041149248406392903697406791833657411294800216774477670731308532559949212902183530485759273685123377214201114242194589910111557548787675281227047985935984256313806067267606729346735220177966481543353546584551968312043460715050502911970023457335181895951145771079468827173038616056649532651177569645276350274842387133054334598318865471294668489008980737665116065499725852021402382454451444133791706899048065863497812312063337077402261482448363991117771294711746158062665483769683882217404858152240329086092801205891510514670033482751687647162450535903869184500412836423356206201223852191141417054297980143490806649755243203378218897237517817224178548911100812564732976846220964360260834153229869001994418220106622868733212208907775327771801028621478432947951640947900237118565393892100329581882933176548894256403301444614816737033859023559428692247847502166847788695145303339055744753800416299189264370011793124208608499158190541906483791305929282954220242239905635937193647552491332566150165433626857611792503126349846524267151491774136850484092448146082105849773765639734651725839387614538526348511595838067323680815947595969873229977149415839565914082059396614197702420145947910591324423204843295000540360628489334276026877604154979549528686805142748317616886857365927533660656442573633564779958567878454351296170069313413738699173775726081562033596559318446392644928519008756833028899472068599827567954870135641561610494644091679869631062890239194040810159921218462920542514527971561870800872856256961684640373401462699597958913911193307050195110489185081965409927257330685581657564271372844579985845511734510573731266198842679180225871903876865798615837596142239884745503758923838196667854387339892302003258449193455870965728659923772047625100754625077061214517237495362545585236266480273648262218989829347021385611295321939785621357157326605010145364582354837515251904391370076945787493275776942846533170315193823413929435583017798039635102849590900016544636567134165914321554905489370380733804399490246616006032715164306624828173096880791483768839361790975867851579861040136623436505177745316351458072276737442555809919481063223799682650035868812254131544910322700014268233142336017750071008714337466974742364268918233686575956516445440362370035424977892681909209237162342268096437396198201904555017653748418889603039371192365693303044619351338395991670890269614730759863154341118237453483082785103838228902697268277336573340986312945030833507263931344014033680102387542183837615037430404207374068023792846514843636054778206853045647723780410747154334326175661973251089939578256784766968637536735754439362411388435739013977319365348796005847537498667640687074512001653652031112795357849519736234002547274133956448091977683459337637794711119045007136983820624499918043516581343101403635285207686109679511977457607289109288405021088745047067054027273246047586439247517936619771489907599995645150572505885999269158461668152005036519574825592390514895302773765737990745251494731432824506222553286120719114270083176291329478031437110238691546432171784122131973710450286838191046440349999430129293919933584905918229460679564096693179240898461801935223133690511421902794762507649615843499303392488345257028693165281240424405042745679294148490952644973696015526570825663262585162188558915841953196671852239907349086890910129971957939145661449900168123667834185627826061162632875202077773516642203391074947493248740319064789700190303225509376025916790692008259682730099644060407109407731384154881210208520866876178406474728872160124031419347313110058119226435325486598841974390419019231934690059309941170227968842061280941424299921391326524783194411000610169435931674059112001080537396239530651207117749281588071985943365472495135922363934687151734109766549819492203377172164812589060685565285041202063218790695442877914846121020527137171816050481104792023527378394853044078125932153918159640749674263646004602877496795095342886361414621576391395866581648967257796087759267372322328763825007430092384846849817765174189210412862540885905592528722984026370907342486025909387937822651111128384423421583315607898193785792947652166420665283862421135917050907911245384973690427734991265321444159202896848414713532900885725605677852563110828421673191485048330508263889251384901957286249227693121571373628181629376137282837795707922661723414852601289120753469127643634133196076191173067732677284704859302527305242677701772912179754992009189525930950229570322292178838379414505031789953289389491376219424736396037817005918208417679936679700100546742894811395198467952779398824185614053037275196565690485404659980476977997343356711050824303696190397820849080805562287162370066083669608831695277761167925750445354603359102413415304583998337159105835517728585998641813494399999188257668492877294104472960138507331109444193033778721301030868952678757768518303684630278674602316221178608838604706692004891683383342132358589050812030431950728848953755709210458011446853092957130376360232382758478934981656745756465164589786081841919996574839358024791628299623321026014012823784368419123557720011209786488110439255969321906065851443969243276904588789180621108576163821073560956280783564851404105608458997891871648492383904804585896168136697317120828776281430924217730774308409149717328602477527654491015219470595121581470354857343244742987053149784687247013147492393740980467878991142994998037325922964220431248661318805369796471342415153546939336221377299806246640725663784387872346586248645718087886730326759138408959797624482603064391400234367628659905673684787295173576113646833116592099550993522438096354867310892690030904284751724254894742828579206899234776105779488843563595391265018865163117633845465037423954946949157391134199687044158674344952347107415049464889793874064404229041816741426384677774797996092362319517640380638320525674003097919694022925818628037679132974609085741495716582163360681550509384935066521547758285940645945465082207728871627907770343191647745533609760653048364092362971852420054298039623683258917373969498437121314494112049636226858203679265204670096885547228633949871642963010645552231136972030103885587214545557456164281650295145131706439492195626490395712012949819517321040140078193071233373619376676901061699323924447486415991374535042133194575774671869752778980557055296212112515400660247892138783261331867296093401310492662783020132395601058599868292488775026139425947589882480560263201274739527218101436470530799974873982591830185664831202852884208404850730898217277089053612396011669489164248127742575373097944737222123511490022785654156308016748572189507680448876694057692608717399233069401449691070153827915875200890957028451005520439489717481914852649262288277525961210309292210473622488884531062222804564679960169735825804450165823261743111090578834493427522092959851977655315169134197887454783621392498973409414856320551497743236751377546956729917107133737268993671068391663116324503654724046690098205633994713814919242171519414157767338123027619317510201344668110414739423187493799089833219005637937958895728397465672331021874385629731400384186625107573733207773914638011884948566682151374097095978936024031932206315875880863082642852510946211951059178483477517001885670488160482264267674898443996928158095144770057575928871969485608194332939033194777114876832634659517215359475690183901449837706652095258832490183415106414665809061951662658162255014314104555539370197074910632120213874578835974583198622558019722480329381744022579114382945734540499728158240054447169895790710011379876229618093946361298771870051867962534068165566699950984193054073997604036827034175198826324764034194762462333611873581170452142780886018906974337146559041391274698417926905241993002759762012786865336291633231500357915307295397621524118918593117736355959279277276097209175128504032013172015243249357489918857201848211537974625957238450876970131212805953493549357207908636571936484299147048505279736657685510572727136509324465004481188645896378557943623068666356246100739379979461944022494826303756251245639276869519413120939313316452358203896582589638507468875434075585104654682146434509136028470676837234277575642607489736487301363387793610583100255432866601397699827923458862365744491066548906814091288122206605479027763820447476294354351027487152616365380271052579909756259076256467367292749642009522263196214508480676833068962540983772317301351663020611623783751996920051861603213110875024668263867112864101823189610192232210097868966891707267856290395878814169212433795867495995372271268310580845837490657181600700432752311421553324003471311201618238780733867727580125597452291725281444711943803943317439036297153344233047261574400063808242690383862361984951213814488448934216690745748770872954763643951256046079702712096327092583656698788750735743449783632188159595459912834379669581512798098064503054406408469998336271446885540838033664866626139637235744902146193428817371948064540060179971731687676969989271011259377058076520468939725703443424532802072509783991157405665524840844518715587986410422115498355162513379401438428697113333950383483590843668825316269309173879413046123646608060026220872808844476874035112391130482924272898863506456940715159849249163384396583458729347883246366652136851455645710365239297710467250616639265559377537764139816332523394397452300995257873289646388084689838777380119891625615811763739897145304006110241566236561913068481991627944995565413665025965880544721196273435326361573458905487421559598994426354053142577081505580172633635861718810632463744679215075851172023218978247500383545686138897529959208929278187384731797177720766406828534826439567919685765010870666911314683769200384445406465424610384286988506096561544842234376864768426277742178513842087415412975159349243064931498284074101394339259905633020826757619176565313483604571233861465703327791145409164043680926519705473495232050973950356061157966087299244150590569872748994125963204746339469324439752309276311624223594102677018466968609920727515250527897833715548011131792029659605157335321117678678909752842896754195193741547660698390807269641925580908360583632969269647516564529253366557829208169450481050721657944261502503397058592848465735678120084919885451138899857149387652860629905807171553031599446413741159493799732163439596541261024191064187101402725606713926222165775877024353870323615336166804789565822615203409017745760601005539552654946986981003135270017967357144007884844132422332876829323570770642115471613210353546033891184466503846740803712502178643135631521219427397514475316046899736607172495745830157340696563925590556428476394411811406392379156598602466788883570454609234892465746932637133633838952616881360668541296127911964626412363724291210565366597012687805747776928282032039963192874291221177283811081881713194629791915008554540400534534471816771005891329627908466739912377981489777213315218594963158028303222705176321838996791910040786518587017235039483796471702012501860751147359795974006825575978873873199211633534438661995712013644880398775230176082729779652066590215370751889295966595290556109396700071729302895939099513594064349316070874620653945548519814408381862094515269954413503909918244002139543644153980439308349612070581816039942811279875438029867567105818352872546565203588478823234861381767367143318975149582281404236365013465499283923110485377199523100308854825035870870771148020182332155746716924313012012021987223985004156476718863895189346167179419130009098339711019746033208498625259362660147260463099558670921822281045279680426855714533390421017251242908948328374586715932403521219225454853736079841909132805332269485287882865921344031316097530230856865265863215153280130501059337473844717520089225622702292759539118756520596213698789067680729871148590572666643826643521291823695363912489630319445097973866434404405650666308387798861703336603428050521033992067081335198930154305102202442992125651490529736900990791201520015932879937550320072842961242626532400587770968416501131123892810880529447453051345480018942516807466863765552216436061350544919187184809615712575548842277990441450107048677779756770387942787755452602457099047696865564199240733897583594759294660623941188310488677318752808067244609788287433185340288986971253394269593610997681209481392016967907596439386846925148218630804533344224654369096060407465280466016218914640541946019720882560746109827937575421944341341891809130944409840136258617997188205937696538432395151517280311533306741227257525767290842781377431352820677181878719874580138389929982487156591705411869181539572732936085922083878836470989479638041787932878802697577859957938190292365770467079714345254366120439498840721520299743117107028391254527996755301046136105236003808503544732975966207023629535050327172076044165024850701754408926829699847042366797377253228742126251645771828565274442300184863155105016925819707368070508709364842588408414728959360636198595351445660488441087752030727007962567142340793189951659369311297045681591351986742482476583105834736348048567645985345048515265854808831393337717476834173090987660676924908466479732646784802387730025695693356105451239255950856623085925727247567590533678187261554043354304702235552926069511919168329182814470992682961230763202017601052022460367345572403284639429297029875119018556824402323935462144095578241762967876936872548048734220493957894072817786308514987042995252315505395157795746487306663482464108962895947589516779255877955911186633756708768091192279472074094791364133696251388414295388873858306669096823319219479775207799871552207056550256302069503748230175930809668018949718951859626598598774021110662583137383330940009259227604406051093261610592678707439056394427135896398178980902023582313724366202590670189983027697254911419477218328254070790079170956427293812280093914627200924092900457642555148915696943575002781468931272368096250395533224841290663717571914636784258856230678955520091237542299879614335307767681660262249678074172571635585578796444476718930551326350696970028955642108095565539054334329200713745961777798419628068542101444492206151143128371869561776480178484279515175744922441126089549301413227780899087853944290352323774467428610823672053034001274892850380191489148211619549295493105433031422428738802684274005928706884149686955304431128441645369125975175230839810224675349299231755059816898350149239724816676141294148347967106559115072360257355845748831327380286031644981742032436613697640971668583782660147894340650866543293858385513228043317282667009319602543533412840087592968994715319147789832996919505388383160619044087731954294804409214645468065773507292288942725469512810985913779730929941379780653237668257867646525093022989068245877838085927530445843798821069431543154987553952849296741179857322233245103733461201451038426099268103851612166437617024225647694981542968353275659446826295180895430498179257902557717758967168153264665775053115973592569255596778577420607830215305076003704258836997796430760394735595767516510312044807761963029863784086757320153931613894817269226027549948372663631848525953911702787602877646848466076565221382266199695903545570359826391096653828826854586915310077015550312548609788260809081214546227427530405698224833038365524394194851181349328386095664809984819637593733811782014567823134055366695626332434696130063841708107983060524269503826990117574429425367977594608251689308041859025238090563777438955994593381740563739231095065146383047328103493117103587020822584978655229382537793327785218065892945964464011998191540591096092668356195431345356079030177377986003624731318670239060123281535842247854927546534197925047299461317216940047223827521166022910179535421491265116481505649797908522274852438097973101156268991220935446882403518578286116502131811040574248130539475366877328519072504661270683130318662952982356899246828050567418717100874729597400267406678008378973286888938194196321517654348620796556368618143224981743701352731990637095646926384582977806957171168052727706099737445107124605958052630042856794566023402394341548004715939902436597715208426652377571510448611376462855870895593390245187660489180798973270849520841146635598075634856632532761385410002937901348727380244726961898479172519283543524036069514259747546893321975370888117787126714430009997516703783131645313952158595252740351645090912276962809356960477276845935546976851904254472832594369841449729316276191565313451781918835587608442670977457157987303218834746371960629011524311967768311718823150110991662643554283596588994679716194211019895350638263079664418730269150380076649617925276344769011016924356419941682551087503367917196520818672798269061221708590596991618638566829815537838971632103153911654350064875119963780501581297389788556055922035155896628054990250683992680536526663478078529346600615507038341388002034954112843254351006365740994984439326500801503017533688301363145405633291769268711898303058151702475440907215066597278980390339491722792203032901797256927952603447130412391838424930224851271908430953997929756584829327080400916458217414360452601321954029123281337080658077331352812513005554342139742631604193734981113022444169947649203292773084919357080411697151025984877899199634186974255359147359611980590040283838398368270470131118460268828734986557773811867571076566000012279278482633914263806983518500590988534358664316213244159652265699759055885815982022797758520332953954398521826546478821488627062710285149013386394223198782710268412382457609839589228591446117912619110217429425626412807652088854947368688401454178828782483737499315404411967461721369435701206709799025933508613528871454574775640266200633364736016451967184550565395703506837175807927909899035262802873738002303800425037456103769545364053510663482204761746012807571774266616345511525695505627534871618215978857283976479303611730840432929994987453135605860324431834382034576916141859775757435455959434263710355512211785767924604689345324878086734456923262763388521211894258762521157358290813296681533562025791597460082784994303090650777606882421864956812122454265531152223797374879568403574376776082096316968022399607743137448784957045685573098477532648545870968776684753407084154065829239535135427680082312545760881687873691435261001955522458776176121524918301265602367055776507041452479870179323722854014912891706179709991467346910011592074145026935045219656737163365582869301190416822187474524700982849751574152701067550743201195811873090716238651964584912772812159452969854954421217007133077748586006134220201610499326704477276906335955626989767426842271565681830366451122318569470598126106541755999683687074705357174135541943112303271248491515847555216478006477891980180531768696721272207833868385522142806589214657023178878571936938700812301632859294808239554845048290102460894338171129246018988999897422996784649234972418693803034384915187335438583384995100516382274782977254426699042805794832717412067724970580310706293544920349092653109064556890425622411677219633451652156840909967333016330746534835931418194330583362314772518660846139595020090842268974329024031657403087399250719499021688983664808922020578826885545433631330317202571308949031018467661239810466415920079144282658739859865954048339926439616402036528312986700776311260244635544785088139105209075396336861517423111753560213263320957434880352111420952268398137013915372471955474692953883422241393126336831509640894339356034381613372574931103325711660166447556310117537855193390969066022776037759694970427948944661110347074554878842697919652158263987935848984415486738310421615429181669799338584814499005429937771934638314517053361137407183537699191620255489218719492964819562320873576878779082313177109330019766759080311016249679092575953685037094762076009636447661334295045882482094952115351810566682652299866480557279901701288032086189952527685548024307941300857372618340850444126433570525441176245380253852812150177196296327342896153525111194195532929431997824651271378655030469907269720136695487588451794256299981351243996663409896637319752242882498056234337141454094831994282021529833786119240532723539455526994596676888347957593263797739738491583500964921581544453143759886954501251111448998887489322727009646852375955602220008105091999141683004469401801098878616260793744609310805444662312353926649167751223905605391286716640371407241821637875319153649730586886570427369686127137476260538410903517180440529706263588126792137220997317687936503062982457201418631584539958885480524759179872851034477928353784394728125891499057844889595461543481742671866715120647524801082553231480499822292513388544941863739735123459132479202595772190676473440770225030003862417332932771438526841222844745478225917019406192643068089204017610380714904553818314538981451718023605908497884678685000391192646136004069298965218491045619341299662867736732916075704343290034197047033570962959630381911637731090296095446144349245218897775218163466915351264484279669245159132581574449013414172539967135830118982602198013227098022840012765928584466648047323920880521977073414348043207516371357586177556277550833229558134731083567005776272830391382632406392963463286778861396516238324183712853197417840434019466085737930683906977363666439030960627531570272014291772193369533462472989315264868164506151315773219362141365152819708447475388392828600041435261268586320040339842624182869392833744801876084280837641839762836749783158888778372592295122553847055542907308678647889788088008338704425738513450979154371892351072711910214213425911341913659212314189129572271642305083442168705634641615804496840828449511580472044483302860216955971688247326067083757076943106552297949481323880266292534576878389888830589711759677115049561313580923490745785267565673284433715101826224989404572999445399819189076453133744532612607079981269089460114991414847918040823126719737671641694840366789097748275992848454143730840193095037914900027201265435744172176289317983619152101137089843137689947838046291490746882521544424819708817869662363105440140064108643740995444370069143215833764765713066751010809058457076816629961221390531251238983412205405306281101463181934084362287601116811549590194364322986482699290464110360752185954885232330091220069508791598864618415700830246586567785644029532727674496507918195718032626570324193498970893939128371585415208682676264530016242294381384195853634034721616205663175308304265886264649408549573587181722513702549051849820044715027657766749379835716399588911567990673203108450823235729043968215404402458627494311062065737945218421845315221479099814063119531768392920325386927629281519741487201711292534496684501629926966244235342647722623402096355540000038786216055159708263561277055838962944118878984177760320023489453618504653166515679127046287026343005431456720077138666120674271179532391539154651526753183231630824239428415754192699382767528494528541117895791754743412166118532390154693415589677170517512335998395840957779836246320876877262746290460970956292130445402093364592171049558132628911159493136228548831898929882540150260999548528211594565998763807465122082080572448839654209869944371937869603115055294930112229430149157743182144538398688253509780951567287165856135336186604645191079431269092977055486395263349604071959717704867992924677192197611816586538828187149698634172965042230160777984198549549111863940825658676343241917622176071416481057516281614885462785575313570329417822648632465574313880639205475731832003173238162865129193143866069235518780815831111128291472702459751690993317209526636967829926527008954694328012260344886675143116586784183906768918868041137225285838002556639731699048088080045215277610407198828283872093592935378763794624838009238267814119907865756190612119972558784141902411622594246830218467624857518562983631560046900588397647300597297172916866170725539333605497380125646897314211134356901757824931919070422175072566260489902661656503904832973351315612268713723668493409489226356803940031459052326365694539057597320611228839548164578482524805798194993149336053232767067401170549997035974482365640824857271194426845530740974265929057883824217241534331342349050248869198083688354478634406374665123530901938247408152721187436952260403008791950163131252003221185113200351559010954299717168360472053090118292761480516992561065905309502723912362432333926619081585541727234354975813811268544468615217169359392985520850455326848750015223030868164905127227999575882199491324059503369460974225003188344359073291570578814607938126363879375859081783237931653226512275002236666207311255633519799585363991700181271719677075955111107803464854718951426105052465800488181027157181921827896859053170108160808448194767010145600676958791980091283789813791923331631953083311718621256245285623494147338680196948036229741607258117702367069181828524840719223749770532676949351095555714079223022229667936120960125014767012714448030179599666396330364623825825097255578638101932742805562544912954903453162355122181008704859127277271593078836309748285232907626855046150399397739230950187877966988146097334199055257218110535694953381845694599428905212338814205506781677807851543640120577438434993683798861541152748360917168354051707955950488785350127026332589732104336213401754201240965976496321688955545393415604088619095174048556320522016621023581749589108262536257417939853811736605103426207056168583948870978083337799371403526184402395442531834445528952725303193276673164504094154402516469664993074904146530828408671103070557285247795324759050115447557334333900391865605837857051476185157634628872218699763712394481003355969653667907034579005753692385097250211409465700133817532108282035193642143824059615689817328477510087485032540030118966907800333900448611748329190260525756735986366417082016250387063142971485395370823514155824799954282218706291362340923785188718137957728111974748514949457097486929414430253202621479456935791999609592389023321350468916700541694727259111111206219627597978373742609599495055960528739908889268969382795998085420084960528684482160138014020961089007142883855129737541389970134098088752929632606203377902563359408370050624261027143248413778067473502283852374521769738806060629665992403170706675215104545748447687876415948173722895874933141223127675921026930687649791437040963807090426125399069865624722113560221033814966099698177155941558694386470272352347779707049106127322494696344639175309217455253449057803305070227589064533696430322064053009510562668242328197707169183937154839813079218631277609349725447358008006173480369896673258561851071306868776549754468615189383711416125784225484455334750827040191121756073033176085502072976519890669944082043804402017533866399611949402733532052088993367031614598371929160526039567095485640027485137078114887928883263779044227617205416777612269980491733981810263044397206356109395150939936309032100236232460118563436596903697881698779711734498420524273172052872990132236539219899217724905853569212711439836804704263741168282270291335867354106555823050580650941392223332090247549295601307711009584327757084197083974842676328213695155642956399269294653275623310128822449305449519476626011315580326679008568602639552081013187835989652241886770840889972383149851836309784689951268018568628207612303918181548998344939861303521178029654250245510979418212543465405154086117016030036631317074642473517053307225041303808908634582074557019364629033111018542505487953201045799842264832667134656071488297416940871905749914856336224629546294033612381313755979442236377998676981480068131415325892946349809748682989923771555525235954966732196842655737780733791223003820439568360255768709074959946723165268318621078198247326333173637868858601092387327600418336153193466400360153999417312977693969941599193351655078960546632472869086461744198143132278542179223621622325946561159684191529565174936724839701693764848245853930802197695315928036685582085623206270069309739223648201310818628894437157109675715227132492360231494098477127817057985462870225104140493508641681729090847323937031094952882669041831814619837072792900733220609558742134877719858135428654293222938268420120527311609950642411192245045492229510544425140951438589036702504045055589826345729543332621484929270048003973314137684185341591853585022206012066707693715241909914612798354074986848871744766496328774134494685110669583540265750334999506004921667863689554425253993172948798094627421128072911082760866604915536833267981310208299570205026978113169591013233103078686577396713107816372379667317860268931385650847075402023508619411924221864077821062539922511191702983719265671989045081967615373205543387070132511849906700670730016490103289883287369192904869043599918281030586141264397962475169819346966532034304457146781849720486184518493416719362936342651248519336293873616881055319025554294862729757199882295310419511702220208363978511398889344191483737153284179686054827792518940621914446907711411629486351676512305715924506056283040857823726175632591758528297646067211713391200470879588539146693094070513352995128489210153425047641255736448758172428783880661735669966902476201080851660701574021320627482929622708983189393685094610605033745737337042651709182822812626924012473373389453253550576102395290096824152278996349100739579778740318841094130038069815401079093191471821818660457235939732875420217806271585509777263554273434821391355012329877167978227291083101690595634309129683442814092939610982897680865914731251414165074492240483752946141418802574098557081722528947558973242973747633364814158686669956511365280599722339769262076326279654300534545955644511523496721278858186047367693520546006248736396155915474905645342899393131736886125889018011765171584636067104466609285523969852305260606405071117507772509157706094537200501345210996467914869443829407463540487208665072196163323747530630847980463865398215291524904893948617824227662601591691346543418742983154748490829878855482999296036289240634562260215096954079458821999510518492627053493376622102627185807178958059101126233838154671461331630407921223381539500691798166815283050062871164462653224505674653791779087092399123277596738072401224683815264197375618680299459875114110576725415115295765939695896868604108085667229171207452601361719377952008988654258854894498362073328972194455433860425319903064502973498784409336215177643457332035921382119170256823414232252106080814925866505785952896573304476069621154920019693430296734220832411853356212410921827839061257672658046346381851636232851040233272263194424230175800871027419767190803162285594888729709277983752159406300625644693312910908983438290374352130647701184148976142147765979609221537165747904593435706393434275227409947145744087588611283088054459000496942953992989738081829460412594951369919015696931113296902577072770933312744956746500403990339434456113517649114110413340302424163783164737136691537176744367409637898108335676632648447952465805213613327706468145462684063638375316902851382875813790231437386196209084217816145655569196273107419145970569212202778367563496551090243614222272568243757169847854967802198212153354037131262613250292346753956023712899904952919854926268065523567608955547862702438234451488668316334569815427130309916515169811992563660040811863883599125956206064655197216787214533507841914836221599423175198750898291135780615282107583824389582672903556630448205183697947663777159813489388761566837005803983069938338146689803668161310938682822870021214106758675046802630531315813336219630063808698130581904812901512215766602118536214649414343126229711692819356263782685927696241939014410238525223977732202663937743439732710293992169557887513115388815391784357374372770190014274672423846689340435361354584727283999193662667685299916922652318883465801960649662826552558894888573392702865321447282407506621476727459930365705571423345767126554832949383530643029775051218244212922217272744562658040981168289522220710298449108187682454401340798033234901887216646358462204992475273151225104977076402653582741018673581892892348689585862478868781269428037771743151582578524210850720731831342685151164018973730600543422647167074200984732731515051277574475966764924095735624823787525999671753938237386822906807124171446479194630632664399945748742114545777027002422287839615417322837612790838344073060020786122262156577605227973508099587936875050994970112289885788546478812939993323337162935677520341107478676567983387315924631271735748149377914382953829707413021451083936946387271671733592170737864732011943521355530574679174803797050101127291755542023263558215525370136301263925356051270955546989887511144704926748010670845976479139662831818864809670887295603701138959165193440286705245035916205804881562652247717931133333051419845041686290157642419553033561234124136968836982447718138739623070581784203860601368725307418776367782808753457194897962531784000652500920954009934768783231179437075766086650938248380445355517909482023802898954688486835607068276321577692878164366314145353896932364854584148047420056463159088369421828855476653452509079969545945039878846170575741094256386443929451984506980530010343412904781545670961983665953972402055036016600426837109357258993434062945241828222439169613957516865326898863912223425747917036171715864255814280191524219056736497653913074768490086214657420664718562140165526649613567779378483437634758825824201708863004378451292906109749281038069671432584238061253199616697833651393823273521766143173858848355462624613417496625695254665446299931791890959630333338952092555286224405617306214185091096916294951172813501315590489499055416082151687719706206545771192411115410819593681868324855757267192967614127698740808887346782699171908440001528533040403549814690849571610780270691711495074109965343389676133205424968460190886591938772612340758259090435857884093173513900975963645855090535793405743188333409297315278597453212204933997271947470390692399675393025337233062627299424989180029869768581720285657791343615735263522518541710837205529786525705487377928765791123894249956650991002498032900993289753927519820234428281765754923369863199965336997995692254618270281657953242149261626272434417568460554579194184036075485008324092498989435539798362702362136048450879882225760145414217146904253463844295626850912576381426414807671744692952780706186434689099669622680071225920113471396488184857000992089594908580339040962788873802941984760041239034287230627156156707193976996350938254155714689858260860447134146499302905569820254056722632576026585340456242756424110228858100742628157761047217358580195667025267986213550751755267226243764710366820954441793839203332886761082552906359759652650902284000074744344714650273602675304460460453314745606277214489090828738357098256647122774936915484204915554613830881521974611927444591603582757865723577123534212684572173683810831263001973898720575896860760300436862756417972864045699017939284536370574499088544747627817409176770726843064549282257209248769129084470344240206541653059863106553633065514764895057521520438546069614120851905256729644434922244632458712148344727510991713468117711018292318707982764980845134447668560989202420812355659603374483152670207475124474272582652073146816796542943310425689457906281527106308135160649673884196795255425093022701728229796561463367806919113032050335486616927158917154953051703885162037463623713733654058710988727558255331401119839024476897049662621577540730736156251319619102759453462627289027803330926074463994029880982520512725164419393626586404641361444169806125437533100785943418229808331214522089328104877561760820278384306467891229043380414027585402119460602011688609054226978136639956710422348669246161990446303906742441010292501177489816337293329972567185010138649710885676206072733870670202721945920731880100611940459727584750687212108638181927836109423132575310957884436650597032939539188674243596559575354509137291434666556163233153507061527018807014924074076868831320849060071034483707139037275335030647557649678790284524008402461947460777250836528122494338535967782382626560467238630540969583773953328695452286356411566629710546998394858498984083008608925436112415316090367679022640337437468467930327336261356441693865412168776854791428939904604896314535031390868992022955808034645644282352022561146390473110640842931355679813187093836618984291506807562986879494181408580341082735919548681701803151720053027681072423667162419021762968893376057500753937633970334874992630515663304062973268420460628753251917835307706714156953234729108789017989329954542600187670403735799721260937390969653758350071666105900056784121640888830829753381321058922825206016028477630724012776716298120123819113060176305790050393957818154052157094691435936757892363296104599384094462130546076261503444174580716668230866484418361664688831422169983379110618455530571888758857934630410340452992938243036950918980804572182904616564920949235823343357311360171919665143924988311458172833446606027234349069856445793501072194512126387130780150703138940867212268824460976307800344671177923497460393008634146273095021823219005825560375807092863264597314423883019386753948987786142867539373462596503568494809460335702867323786719802884674459798577798343257971719113201959516072133424025963245714392504640546542914619376502183700615384467472595356132167363000208208811542961059552284236144826819962325631347981355088182336071345580550661269990999983470143916703537344640577202194985435789348446389511343769554055675424827328604714379950018457169836611036652387467685256168479646747751734132532764367718531470539020155413018510323625235520715117940930173641084550620420094044265919880117541376849213702499691758083268773431434093836447929353862779083263264268959521519068236007715498745179632031779975363251560546085348259071876008682417934853274447694141305110066596396700075017740210134371940009121062050827571507972610404920792673702593792749859175607300787193247256914987296573016815051221889750768610183089704091186759050849668324460137666421270760208075512545346260462403676982186210018822281529556236776442622418703509918339369426197366112514954370145238203527475787749042449322305026883094006600543241282858880660102708598038017863196341602439389554115930679940824497588149230100288972018836294445959711713214667185174856454216599449733062253398563410490454844450931111918370555790523830493610308694931204881389332031971411312573166539664209408481887413132591886936687029588837984553133774764009928149380676411329976790757686586764771831651679008437902267243860785619716516712097181891712413345379413722963211937710625400305893342465508929602405656154171858182533075873662175961141197281497293739301180612121760617079532984205221719751039769906411684097760786234888915190082533897600346119345211273793454233178553874119192397202121500854265671585700457192019666732306782961963310147910071576379295124091729894157098979316064340898951794525457604851974993970563744909245030999664099056505442511282361678891012486655414581114535850711356930252456951224382989571401272002682696317740635241351669088504353821361398512623298052940207219321261126354232677809054248930194005823742491101110585492051584034374717247374218490303032449548157303079180757680833531307513562568281104704620586167911719746738776971452728037231950347824175576136897832283165350700595920580604806603838647444764882843329748431174206983079391166160619913996962702194918889434015915231820351453710043838891545520003104853204896795503940604446734104693207301770612642303859539335591971024112791259730067869169286338533490029911616092363202457656456929599427116331476020033537241349074319798117221219115704514492699430500552911315847631053818086395729909101039882634195411813148782783254079221124322703199679874894889996495886133488257748942719970883686281223988858391368450838492966688961255992409976128791750401704982758827633095456303456994625140515988355952745018175395824951349209557171394318515844264297481905224265860176272079816736483856210064837555751569152795775391194156440660985655159514296059974781462371669043968408837811691478887576688165385238291709307215034608311339039464809240044540469432308690497557109720627399953303363348751509962927034145035393298315188558830480295769011671934373105351988589642888918705593569688578957186392971513322737763095130767162372629161435195394036159083118640312134159618589968111156612187924425572912097950285347191254791864968208095557360372760256824725467667402414242963289721311132948298948682117381698176555389610951932253128945494280122205650807525048843677043835355182874576738902592798838691749020291093278518614914622723293692326076384339095977513908824291927655226454519608481701599142807304821298413043944185908807133669586983457742405261446918177868547615267832708896068200301568703828782322502276324729987842163915909329813290765649058253667167831073196285528715111188681055766953156949863050379689483547288382108887873007035748250735503620206159982507098116099001309380539455953839431209718118643174394146471529867003072637675969376186744010454499252348186876220063207597555626168248107093087740188759575247188414932013245260146174611434315641854613923504326776515326573770402643352293310700196281588054134805668899945320302510040524293922589792476808400895831360855428974655678903543129289472858130692829679267178170482895515567081107946754015044830396222701002254383688184507695593777641216283828873696692187306107943778567566069303155114772551299716679623258871825605925809297734536469788890233770068462300665774235646448045332175505674079914700640396582436362709974933024542094335208673370774871774276248605950715699217207795938791892343106627800225359142777823429954764469546324773435045536139384530758432031796979140646262316394623639684310371392255691866152140517164211324282736826823652282833260481674438697621769334632544774188307318979428436688152199881965316700430615894704715712332524665306374946454086026469987057534389084912336405168600529878182753404720228627057847395969917545518667936168766654375836810894218116756039670276231414436880208355048982804802208306858663467677834118987390050479662271239182783262393236757983926091472058779831976779733946208970583271255276485742678518039484723648522576743649165226514386286399511551514825175776415383384404503525334571613107020755168828830284837988756907248579705067491825225482501640985770760528708885430398080552143004694211729992171553853967094670496564450400403834678610415075730168040948489108416456233530819065420777345419594077335577147573593593132809923857923182633544704790881269894751581440655146067463407124605725974545465705539595157124299916058910218344155263596873228283201927937773277133256517828503204805769589192184480472216274877258758593403471490061780110618255855957067424811704373012377441677983411178449103938291277714148121067414227236582057676828080220630165673551803180831855823394798677670551185838999979842470183651967916241110936664626534445067320416796572308927850480142623836431303661851388457040197471282529353438183923684970318640079998927426760050194523222537846502696972792690386893134278898327784172639463979746215324625338168146409297977246094402492222948910247181176283650458352389275029143861613030997440833600422570285776874536685312023232484791787380576016925288309124311441495031137178707690630951723910141360417403917544789305335443586861069260743245003178452783956914104943382241603659985343763976363331026128360697931564306728482715792517909375996727726915598030320769897347345546633041374478764488968685532933503193772485261795747068974687002422890657950458819731458879428319803458210432304536900787334262851117222050846390416962861051926415840960134578732091101425723768939133766085711074150061687073237708134282560385456615830778778543953070366895513774532041763037616902448546338241636060323687797503491697722227125828665242690883942323308844846779556479914637743758423777498930666399457576950850250473279737129865040258220773292796111119618806303966342652142063816753854840410678149801485711004203102799363412755040105493696166059168074860793860295790432420684747227522765152104284389626031175841555585492235769914911739188375231057909381747185607572054132180204958236888848905236707160625269277811270672754624716004337531951167944154079645379919264005057970725615713858618712301240158561956547978120454806425700231429124404866847132886863896945038814310429981089410250092939594167231817476568050904950467484067152885891332403659577179921743077972554079490358340529182092101562072676765624959242612993341266998422234770181929868492904682378836017645108515598855537553817198047678138957257916916237245373988439551513134152890372455136509077465079044325919756809946685131394067028488635120230038047295481728037462881165934432670552765714052023686347536483204897186223712403091853907765288162746305749140678755588710535577770073957486381576297144617283153031570520064802111583051685659170398278234956214912589005444966081548958203847772894825653662647814490717837698362886308345169816100598458817911200480737322224146873397025227979195110986485898371935807244390790814556430066441247933725010744006038728988657014504376699302612792218585477797385352562810540457046578439026033665444477815209207863215006947328603123186816809422339563726620516130966677729390021379862439293550561850709944098708730202374191173122355680780792205391336847178427686888165646326180681048921747661728565825993910380091503420671218581493732488641102215309420320408549841417435220471037411340303365357170284739321313981936292638561364163335414674648379464847201956716580607149137584482496094397651206087240806119526113194451941262872582082467594791183173069650998064323666589261895723886191472675221368531140369989470866506959393220656058505456908079487912919965284867763793312113188281824139191858509813437344958811193929156244307063855134872998532591298081197536581390043884650648090728206683086244477713942267059568191891079887505276472763605730421179943616519857746509695672713083593589218735345412999704799552061376607814944400771623147476721893942527186041565626999256613404886734685395078986354072741534622756644887963553150014288159036486915064092166725900912520207841367859544800733079453782502057900341957842713387280620335782844781362395729097379031523552119863429008687050970307713450455088736125982359263346094213772278729375900349668217069169564253000858171468950568119576462667936032564848461613904206603773243869516856734956971357223478119136704569049909109330769147147054286729068060765403952837846961737804628131023836622597828655161206379623947894005030269111000921170103719960010430892545759338740941780795470422993995865652431473586648697973099609027835541767370536580830684899643436129090842583449300446459487568696663126344595777572571249415204562334366144744844443939615214443540333565576874793756560796855503391770246918687086891932634804531381116667252417664275872698210466104056474811276777334595219483388439297683744119486262708875588620046704787022579967287682459857889915864366919827285878940290745581457227079433122928844950156296417250054243794913673425090673474842153729330478333217938846415675299866350322038815894038252141475776086706668760387275719205942648747439355725620434168770990183737516486904269995538759485854383017498930315835172557912620026772675640391049552318771631110358581756214721854405696971853907119022381538944991745551207282172208682635799655961156681972725649458944668469305584807036905013698631233810121790150860843987997566607407525069334169420047627799477860340890334922122601040704583064029130847850415824643482319538249169231835663903048350736628045544258866614675821854582442213928706929271484098814879718311791943596503008365120893257845747354418246976448057401062723149899679976459390477002993353058416175264934101337268398248905118949954762657748158203153640112248962193244846575963481791002457181590114766452545334965758510780827013938717229684759412775111424746633295727385185665822897792184028913404753692037619440821120189524450315637148327869636885587060610556238214466920802699594950582237534707048528085686292382300248411507507151841350862374372666382525565593734485477184682690286811395939693784225108466111637317433570864710482369214003529151058677326271871918974338462653402233335435740997167050486763966560177736583079384964941474606848501077064540816913651866274419818159571210661609453139628793041471783730195275601956327829403270684384937159521381270287403666935442864756340688176978719483588021193865222416700498779031860463600684474035396971445502291229045362229952681383907871661457500874465254999319203940823268718349663206665693285958283531701663575864840183838510869682010609555938805559614525640493783776535805805393465840343736000732410152074045098844730975131879379783052675646161932378801285641902076963574429563776147556080478582012768448327684041006557418899802116752368774616422649952860352668001095952635882641857243205217717371412543511267995367492627108553376016404566723229795116447811614652662820798140047907622740593506950675030414651263902046706214254762210546075708078012698718813962549004693940505341657881397680260139281315264630319694720693240011555837835993809429330846505754014437298894281668210072877541897596224071330038572944313924635931195942041350019023226235750985093080119552405141555918415312831871350483483165165112283281142593739482220580090547528371504102528288820455998107184566069464380187485261726631339215518374340748884934295495859214619167450755122141915230109872619499348860215143334668147100309359983444288597441352240040762721332759707612198766518298685441551604956780199903118170534962946924961046928085331313574149379675294748341696268868200691053704660610062873082390783134507277923220224301599434241447213516094438202555217613329208981404923190005922963412995495583091468601348104442027473827737001105035522367994071817179376553886638571362799548035982120225219688647604637808324536355652820456130020693129141258947265184953852707895273738001028905812904930774530722863738692564487970081255285014351816112066683420619097783140339347699271054646394620941794715749834514057403454305923108437064710897366533832781182524059341798594803525434108284312022500942567895372935185079770960567822455607027412002140936706374652940582965165704107066662555154756491148601245446538764930388585305562040828374477567004270784061005795115639010392922778159006359406008857807027452421558899144889043857579460298756493167502479986628323035182356063717593333605740791381321749044639215317624968445614192401611319120924422218510869928767711808052681497321662130358961970057316535236648187325911895080701566574235540883029411355989604645420291388783891700186613636515889846056136701661597512191263295678230225010560203192067958101749013681503963400185317692301629496932262240000370526456201970443108338981451117559994803812811458671634766102538544152480803178793450115200943625019014599041075537446462754672411074170992078704247805579723441065582733134924154980613003829623265946785883419875287615531650560358505697039822083770560252710648599966654292612910775890183281598656105667714181787916582704123188154743127985230733718362096476479358808494846986022505058061637958720907657948380149661029953059161736965965698152542882990287744449356783032729328474027490330490546358484963813899582858577256511293312665154803702996335203495863321003924815884290332781810791468687768252258505357197361285891393008291906162657222565656277830376011835280293429204357875515830287404710907634160587406317775441480746904273787502407523778261064092434470434813191549574083244895506057954982734366179225101169966110722558932833298430637157449783967201875451185524128299311355616193524072313183099798453490301650767915050818981055984626252849719896953209161080165259674734589088283498686663329439276698029353795970026809293763773122875975381690913127686754812105191685475596174055771703644802001255618525110827449140353075165428134412523346450697037716474323179463969549326392171189143277800682387769432891202456326961265447868047906652665311244765127989620426530578256869719809730352875584371669326885527425937662913404372506823391041259214718023268736452342520431624607234008820218176792493771357155914937035467747917418904881506843603221634667610427455212498460981196944036361703616995533506196152892893650992394705362473151468372959071431108860317335379608354134102974295365506156225568501019955462648087027035165660852574837647671338455204992052419159176006055392738961519526662830268107394978179034263886915935368465511117976437240920562059725012952059745658755962227096311828765405868741644542177535539190667115239475641561596783702160312022108736691290097141545963215040663107255412163781424808895155628793028634505134049611654122246309036335368159134315204341313761638245976593171255189536123649114856270463538744712545727495769858395464734364026452003231624228181342020406204702617984321858724515048844849608599855997053210825008830076441144792413714616611276636135457625936999417260985771548256980602637146746761193475577971471762100135694193684659961618316481659146592620992540191444488284989440960773384291930974198948133550142342034424161101002774686047824697948796399702377617943499350516906965838560265679180627068990743405337774505636476547532153836060312621341135260468917835251129795891615121150523178777389040796865386543702939789255374256037268190440577630209030431959152283005021171299142336024449611279714841057763930858662061518398116467605360179387357040340247728088694619555492184538645478748617755649136123976135073878518930420623990584862199134326313174077577893919029248836313343314241611217111213229754420295992668059436212292535792755660962475532749430823391129402909713233516380081447627984507113313708342244158332914016627864803130498026462962261859879134589362849134406789203502071289765431764977260448157195902337714569180884991573441354351818138407487870000707814561373843882504860534956695586582645808176297311742994514496307678300465176722314858680711433031731785688411977882964657334329919456753469651447589475203568418356915073228992613104746156609080195471868630799929742651562206799424271874690419169422667460063496981179238877771562777888203597006600963293684874849875130573712596974783336760249682001891389387351126389957018103250887248863164167295754817927629050713285021297456898138699646456773877244644952487226080133679813842721003927417261904649546584413903076532147110252241226022824580444718943362837873060766191782018861086642866884752533354077556540039094276505660249323970792967090125081434423413891111393218926506557865228809223193261876073542255162583080833911828629097684802032775011435478540371065720023224869273009892789360073514123126340249121707920862354431686881520687190538305025794387370590799816501324985960689611711020998132214192820766257257365649433791443481479707295177363381783885737493114531023616619585558221622763707870411210221222347432709402295326746380814134186573012262803081022359692281045106836177126447666375599445620219524381647695459709598290941259386968998301008550597968820604011900161414693353058574881433170575538355622098070483853257817347943417252869779980345438212395792664024301889839705575646025067560019131785054906697869805915581392451157781287284789143358251614657251110661075049177609437427682409887059250228777332389061857514776104576787425066029539321021321216713810756333897032243524924267868804181625753651963045510232054018106441568233345481140270182777484917738731775562675627350977172370922011713014825277989213594311820847272494769800969873436870902440854290279083030805324901692529477172789088916342107712072400544785426665920101145713104255224703562461042163413811748548949887336659280867615693660111279692326897664129339687554618272042282345498837640140183629303876348682406193560826789885475768281456001369617381138581624002294458629947970457387876045255286892429238472140574709588415261934723294359768332248602639310304296406279078148490457728528791509232170453412145496553019695078730667016120061103006671885513650660923457129159755167310892703744823912118808334785497179982699027240228934803443176452905190558287543559528361974854047035590787929422185679640019397293940644142937378978618890981089509304553295251028473300001883211466916246512575858889266974951043836123883393543092189667373279047981394848046086266732775420796044153965465849747489177191002310298348303270572612407302989376409535480735943376031326087421400673247508704591384264882024255196121795326361957664971317839691831801326755015223369375474634654083583155524601322612383635728428660941036919251969516357239889493681979944064882996001139686274486475030899380664874061621699769519891691260485328629491270988285449967819871342122135776640724433972616190863133179330650026108772267971569226888244925803142656446847273180297493831765915523726256511891139020662983446374611418400182554080509308098156501131062545535563164798754464299974710019087240307002770351365753031883664548646021949404978805701863736384406657097821974593673110536858667324153488589744415624737372409500073534339867741797846421358076971470878581430796742394486416956430626536542038530898850047464780083119420365015159144967962484014173375222129371278063680495186190603525427662523428554064099115700561941926480766126364952151974723747043496292384955346409534976395297038423645858865934628496191034545289915470176709824053537750600379137962080021117802239194799600646718867688961887786577630467373646513020019706980721727247178447375116664743037763826732719134715145864184968405402719487280840326039094954853610302934847874705038205036585864132581174150445433520592231735839393103529830666038066921366553094949099130931782392864553748170358897378161057793722860226254940910355410134053192092563570593711147131657325538779415891678528202818675405315366456797084751157373589272016781520333644213707464866039030553481194925664191652117332965222487213996207831848523139831142776029016082511648306385602824314085662898180320460674364189667302711567500327455992216567488775634565280361999409888160334808035715104284515447285192842733210087017268942677091484339710105121918679152154362280909518544744527876335770670760477916027609658134754949238825759745988713651230577548511261274820856046353086135607625923088515386258702314354761482768986497516074232002589033543446225177789711013866811346754676664604506501384944020544361421760168397664650496706216351437937497925065249967932812692132835833421960748588811550403546366725562989231438240213075259689478500655886218587705263143235862438868333532814095589207017918522745786992551177694051035141481775419814762304297505497292950399486906066187991169799193852348681470936252472012643313200679610461231295893662957721912758401845277249172722728935989301754436569438260486429876643192904762794451192448568852881261785070732352311266690448510316229956136052134708239106065272920804104437745752935002845128792394569964296206826574278449498583387489477752632781218488654860105528697094426694401307876013259809607864526463016946266833328351358306943802374410774337890803234171476531284872311043667015519220272745317393316056682507799255662886680873889710613519575480187986026239022772724750799575230519975153397144070253899939820084761955096426972411929723661426016507829624733895410417648250347478503835751891279806378821713727365830597873746259578002042470260957034540485672296358433591062348438830267327517624334518921977194649398790263951310587909685563682671291999350227952638231290794601355548265367973774138942910586578923311476761442277255126641691149337182161634707284960860498675531580487306919317538795486291805358556702875716285314772907865597636090795431600220329166369396577966625888537329197787533031019542154067575570811074975295890874678821283666604919995582815867436762972646581922897131443860884406879887220814925131497165215109373968177954968766665801163020532791296982093521517627958639942565406720680136569067801683575388113046178218743204162207973885063285591290567847377912642651712035686685225778222903848488839989310596711472366767103737811817931227014941265643574194624429606573965662013896560816744598141185333251136268876282238819392325236001193765706524260636914259082513010842198523093719565876382705205563873431927837615016827802607346993809384261723218679736326435274560034141865923821124140706547164277748831840829302149687402210205474003700257796899292910950934259672126171563230437033804395054914652470812384676597095473258849779782181749887763804311336456119429704009799464702288154440654779608606129517003193947152364997698644564114049001126207894553582551133493251862710197641071475472034040288428542762747258622338623987794254073001870616213463707193208866610638489247525550248705448078567303829856530508152090872677647133752389181865956500307240101688670431908712413809422237890547483714519828065634503471828243120554172876130411744798293649421146869496153616641734582914938677134179208751202598257140682126516155462879810671665022312258140823758672236322923086227038745629010220463710572230275163323663070198756630677725720069402331898196024056732667823248624512769516001952509166555094035223863232021669606186308584647937988501445503879458966711325111781271196077874322359179990856268185114327368810281211322941159279943041471672824605491011816757375144700058476364409786026368819953510642762140917521340054532012213198622992266631331601464495666841707352455135412895545910712940033587363763141821012392770140528462109426486258629536471288506336794808405465631429458380520451036068834368191862544761435443163451971507503541062964658953992447220160544550704066281544044491667978265815437411923409342209237484823037435043794541888108121688864692874283756872995388304068149625677323142053731795519184098302085164518986414372666357411888437950845156480220042850394532281913015655886831278938095411449331911712144397296707733620634359371337152624783334074021612511812538784235653143707772887931696510061024688856600840750642788366634346386053550628184692621537356216269030574524306177462508383316627677872593708983468895054462507890659059298614510861657707953274518708137792368505811444937685774469718003390492451493891279933110855740901813108894191370108608115971853758821105589281029582463379723120411724410007952732189655162244262929676609763955316193313232016420436372202783474532101293470687681762061933123558522255961345701882878987098888074638461843038900230504277172055055290625530908143405368164680182835079441133337984714990070933823562967136293991702032937447830932712671132355301402211314817801100102652032441447126572133479945172490026630229108686853628471512971618067373387218060945723495694723852770390447017361709002706041632013706808292321812095100703349409632757465204357959366360008643125243348787512522892067888327391166230918327351191877676426891467605461080086321752867022771973333802733658492595319399028818155247923758751390532305448651497113189901400441717569614242051387620036610085465715388515022242212692201418391006971940611345922286472108328185333612864365010929844857210815132831972901873923721597636987246635492222832318587476215397887439344128518206374130108739689811681494673379957092746668653507560909566777580741897381178241945858665500446393338600070051122247832218973339052122527333019142122157692159138651612214090978353843640019244138229611312081969710503522988823982475214508997053658588053677549976557380184580318036549283005810502612128196993103090684098680394793853107699583117859647691919067025201600022278781897005709341767082859584863595836815893886978108566384498406361613313713271919794772626827717088859147005958342425693099443112966285581888554766203991527206502985348077740380419932869034099447514401973691311663696377772850116590412298172479768380217940618245772549815597955984734605201553066415140646763768535973427898147586438599179700919677571261757065194118611335391604728060015403251732674729589504761964847307672071764305299402217073629767282057541024359693331615013535499758679091992126375325414015499244356401178407973452027575898764285810308654879169483008009279542534647153546673590676182961693468328566572724854381586688550942934292550379912797972798106341804641618036048589092366561141354395659385436438848074596898670421736125277242780968787301217150909056390860252654753428861290129882290019525273875706244791543061782069018784665151153851053431816975206535464014008877107298499913768306747900918275712610797117967115055669843721871174994003242694157850377476308947417601669660379021724619799449513981870606827989166270295859753664746215894612796494432689140752437197277020234963231284041626456656179162168551949646984135947669567520636611635030795133122446319188982870549688696838482562961528034144900874664150813211233313822518736018085331525922917074778834138742321726462305870766235123816904978073277267836965844063515601007411420063968773579974910436013100551046632928625535931943526275224077648503879634450883752909935390076494665638742804558740906202013267849099966232437105253569876348578604721551043595853762856299222857487288377055235736841631124618225642072833424747807853001431860808783933664028410073410333313551091201215935145458092431921751560842982483226220824425387740486596190678749218118107426667870830571384362455588021834903804789447170136314547721860356562486502683376542344838098403190849852538115324726440704385716904597434193083654596167024095479480954421319966263660467883541218193768314556832648131913647404667305515910827641935581373821580167069363791335084744303563388701990427114110436242470113832912301210151260220799719774859919844664087740672655413295701677180815854498903168541493787123136582814029854607070890368302862759820304488516454707542894472424151033623470211107868721586929779294178789003967621301256424729803560247399265279883804237195348153714308920613140314996493678329650599208126301437516343798890046957231936991913558612679052620189286618251531219127298652475414424147551116394394009611349035767041277668973110143919855861062896499232149788550200222463819709247297115822499477625868657039365487898472831158931577756184531141627644004339308105945343365251048676734793994804732877341944580181129667298006215498064422364389581278664453785970323819635797833238309270728012605105498293351612981015223279461537066098328956533417000105029105685949801933863837841310670330404079536599831638179139336424889472514277674460348368753753177252565551782313623210844015678856949671300746538117629176032901063519472160184242658963285748371093748199064475850805913022787711571753337009975890724433374773097046555763394965374141982901924520833906496957496482304994617771182856975785771142499921696459006545924648237805923470972928466189278555107550572167268772824826922799796125883294641619859371406186678382355297309695438814754345064254934539083744138518624509131540627116879095311977010465569148560716478949564380779912332718965350872575348752972969663695072304973397017965447464503052461734011956327968745991685318148632515622660193664016484268343196647356987248985209278687368297568787442015592272342795498105737391842842200700546209390405320638236237281247791367063768866056069804702517561688581115840635052169760679550245114753051188778146915531621864606427504269540522513620676768306843249414422757437503342314772980230470444723316824410052355424716540191410033056749112353377384945327359592015566140919728564277276140667510843847287991418189783826467910229743977055864313895283488514176149221958746536742929950720274920655103892026021685042598100117233675912893701555181222182438320625342937107896362760288995576827469165916815555553709588569103716066128040711766528928970016779621003425887036538598906977437124943386331383330652156801774378205404940085094285311203420716287411561248642635791044210491938935237013066906823039988627924642356453187850227969588312984324372554295279980596707077367065532957981377736662734469635391806532845737998958982235198346885245905341656339938661958396718989819622900080274678060310750104423806330230703809678810974070872861705351233057624945581477072831239715831680452883772427548380692703912136987273180801493204057472766231962495373880599092285540547165788126872350764026667633371526370051132667206179143108523679008908843628838798652864149011795217795307378388760087592446733198249034519579192981462859604835141972798750691079574795236212066643648040777491176694120594245826499642751074750948292070841514390908752803573197220379324065109386289758973043014467632361375261124681488233795699965089423008251742282308891752415505557780119969549113026765563716416269428438155342607991156815513671457785524578334077368145011879143907211830127274552690549678173233162840208245642519605788469196300733498398120088130370487562927052932559643989424370599324383447903934642061906334706481522607904716821804542591486882467823909817975226656733170538983679676421079510107792519021952083689128721711311237010281056159493399643149350531412382916628342142954704724313342343719592504085368548497220873214931501325633722075818890735937785980973234587412926223038258856775023908892266706379308954913722675703323749092854580280400761848985868137713948267056280334580802116938118124366372445927036508084118534880662037130925503674773876607756091906789776644728143439566759695737978092504918328272705051045154319295058160388160587067386997870671428543588329290505631776327180063292826047515414628006781664809875234427072380553471859382969782018094158386717556059379579273159216104154477524661049841403484566297148806773295117680319795607239479970738275970930783108274958999599991603549736596350351048747450686680822350791105057034448226234139699028572877191079341931254969842079749877733287356724084882354011994321896097046887841196990332650783327345753312357310634623674563319254358388554863473660809635447531219573214936376738251689512457989710979235010551976264471745191984238819551880990816162118531130897296334581346013768355000168379963686042025649616125235744578943478484119032893820044126366337418783040178784382165999687459057201402873324902120035350027095217851205152765682195034937218786950036160324707109059056323642955988373789166533933818882854452838302818842069679459160350898672853651413089649899318151176200695143561815086473953295575294007521083300320507591168536412616113883574176480317220753970109015858939177103935580086510319932883998426966364899339150005337442618144117542696408282834654203855854949415269539941001720719643457831691882348665273506940750967082774149335137961331845152250663813181401035467209461491037594628914469417104002052883227251029052635084568070714157950157385407838220109491933766735479380789613853504053103502643290251279474171968911469372675072022898818928884897402548690463347503020826484274056372234089268225248259326619991773690110637428006157230430822826820901002600557345715845520807698362489434398962304871044715914915993027704267120237172853915697557809610127525964948822918695043851106270592713159604575064469887956046401392206544210903915703974503098572853501468363893260081788957244068167927404226084914049684450946830115391747215964038403269509675168466185276033878725639997884235431591253305557378690474138707605181613379141888879468284944050245346006855676699067275053871955669757990028140504675306067646908242911820990065339685790104345409557540948836074585409848683951867205779347382059393590531005512829372893409035422115076988792360220518450402056091433270102137193337536891070677707732847946530770801912279780378460495303896684084020290854854191238013308172296856076961113652367961138009984028930599343603243690485695432389898324820064301617035618987729947385698384082925954744949576174561485885244307068674787795425134701852612758574868885936765664206713420268685694762392287052181052169286635335270485792225074618889005069661494092977207929829330957576343722590087877249710172750574450634366661815812598208153703014998350785467964422127224216788432673247518551340404626269483030264728821685511183149933729867644585108193555129948185898407945365075393871720832037723238760022676918298237787520658235914010441126580850320489000759024461018375198154620373843991827395556924652518410810756151400188312050751089842495820465851981489348788887216188925857687803884905690432972847991952002925594856263880078366606168446421683480614773112355253221862412540894968253216630251358578787660033678648947582582409720806331983226499439706740716817689848316837260430498247841092765732693396861982650537571636894231945787597555400816950538032592843004305525044325844499149990438422451315264565398682927211498727779136564939566972766876849615124992672683613759958624815033559385967371939081014122493554723196971342798328497069890166631530046619202763623112963216653580290903724771441615568740392650044961987446705768155561243382762090733694989205107500584303139774130665613286811591943123644165028176661651062535520897940378590870922537492598309541035828746147003990711940901451215542848286536036929487031988362951370173006703915387233506859328346378079461598247584907378870467664713597688111838115712100379963688290311273066440563918823814261847375602628403191963990143141636468305183359199733023992821021604524685549706078993058212413774907953219136602417961552763579607999318503594111637294077584229993796097108632645441237131586389344255440277663118787397178000510842221150678626832882799705023355566612361084434386790019225180463760040453805803576785793897044742445725903921828699153623891916033697235908845701770009960952586888363857787749550003399788898640671594995893136776880833055333447100168651338824362531132969040411529238388328568878354988676451181582579148904078355149201738186100836996587129976347686071693146066845040649963899819327118045839771071684274394501680013700148651076417443188894824591751825557213811804768253355233255418205551428069572115379936028632764374331144620964984048272412058667484473494591200960915588972494460883690815187916506944846245780335797717086728719166036586856203506729907300664001336623230073214958941118569666649085330417898644434889507509883932783810751909849229204930897303103670278865928214678675786825543972059557409824841950460281239424772635460119589259593871097510710790124034790646449005267578918182520066915655375419319214737507178260816160243682715897625429861965393631342507476045659579950110270285302393694149198022117816435958693483875755170200051697599228936808690610035099767293031265653749777149417166928262418122194672827166143774228549030257459300599357879569292134162104910557733847721013966289546733335804818358464888159228676679795017718797730389152942736682427174075933050374147176659806993040270017142161987368190824337162424049678642722727964439496772891018174426548753847132784618657654158325158240696235829501762297875478003834893258723864878384395647100041786225435174264529630556396206570706388830529235649956100300238133284449107829941235918805128374197335953778013863692466507119545228340310315088888553406832489910899506468536339315485744202749074014879185910007018468757345012792784994251578944264926657778585677324799317357775214745930778041702214038857163313701084477771630029086344107512877410631787007004920102745609674130610980527459551593280965331632166738363802742293635658398241502760433281405314499499667308414498107366610505536937477103184428779597998086515012848553944127587310074201476195319229190490832890698452627700771300780888238372157473873200481214322297429891101224785895188150490451275745943973580739260460818830477438557939810362544905467181616011354182413383960061491524562113888990356558215041625974829261338339451274939398379529973404909248438737248194060317964140796803940535007279082374786513592955506984146983618527818185555827985103619971122704789484117851526061176945828222991141097827103662006159150716204638232773269874578303141105764884362580660480032757684773785402975656434849299315777067972547295061663172975157905376617060469582334238458512220590820699686633047801702117945145238735265641746856932541658505515124105519760325769577276223326483982425582992383629635700902426451429247819333470314228960717932326953394573833838625132415465532037349089248081043064268079249155267803242994078612915742641362560324357782185752219349436122467028652885179212188781559456448521954540830383708414872019429073259789557145918281863573735748650246438452668551461198952694854446440123314586271252978013592733105981137234860257782894144421033527671783652414510060569497680196279128226798898045020114208166829955639348557624854887268129680032294405151632919578749874368140806602846193464798826441860550896750236900621686445688741843413409392930213289297168400694260841669362767067949600832901627291506645953469418582490943776806431176054296218384838522714895376345028234112659158355217396835142632018342159239890858264725848952865436982915887552699192600612004429816650034990840834902180240242308055277136735075677570907014680267836668410276606361533124709960226334954409144735161626634201380550906893024237657101259365989356481560743673203929079687013648624308438980202059056559785411985222361918333259417296872641667849137504662058822083220032898328641241355868042984326513011858621960263644473692771226270455206834699786227519865087786196640068008974206118879633528039791021293853630689437607727316157708341129812275680542373173724834403930791579515627519452836385229780480824061646891521178247626066963923954732561759803626282654787445890451908772936948281163689512707591329546025248701520946901276375321342023081291042582668829954996565358353352458585872948639727571841522603591066567770259430040674023675347561119069230952695967661917415447358012190536154223512215580133791229143632619423097041288554370646732637313857841533754524888963691461934598010241823763770270264183265032882355779007531329896966628864917551807835130492352142558168100538815357017305489130124280374629306909784454719213361663553637333509986386834557501825375379041487199024216660641351386344518376871814643028617505138661826357563058933320775545813041881002574865806394645523302902944132944323892223118471482040849185333426329379185736660520747859270248711754800182523655917740613197325707766636098697771225633520567723347731428935744190948679803291104285665788734460643777859366938523544256444307946668120811311974570777984451891190683921536835482417184022158830501583914954585667676895392647322002778708778384091536274476868244458583821688630032035047477285570457753696759558573987363132341051979507774274629193617260375704385327655596697108554522345102659861727655287301372628049796642890680264810879790181622243098231022748280274644009981905099772130470472202133009240037061610585491454406932264796065277705561940087028046150740089659062314959595759241880035228901878476809296603305471095138610833647039517627700814937557478999898448129677234247396418415053588759557497524129826872401791695033025343509388313087038227371445406687388620225522778781379893723120237163059401081386511196333098296604991372908514364858687946118701216904850570319021876742889348222504510159762853524438005808087680633329986977879115294938526053901987811563588698056022754986044332593691774034715300532744582684419610065507968880985436911740453363501688751432424536650512163660250088341065277466462803583810831202923312901715380512988291385871452678670184817467917288996861031274741370893158421462133230736434587922288493057112882285532439331821035436998646623484666652996475696170538953819771190669426503650246234232178382466338621539577028366910216238500356935003704591490210409778694438055750496581761411760411039865544973439666291645236153593570237298049181598158385289895819106082019461581023663077040655599685111505640133475810641882850465662488836866893650028394539317841212017577503879561558025574452902295166644517759678921086177732555684144106683577949602059633873052613878522566398295876339732229302791893511903073583150967179086586682900079850471869162803237327626783859040025554313371138116882349483733999014361893530276148912009484770244469049287101209668499120191676765398745540141301801596406287594358952488220987675738332192124863722510472364462733145098373693553254099206539428226745966245719632262606714122548522633608725945655722115058401345701878209965689295019992417969789282083375806828135399298089221757789085845699437405866233440013852230521862356222668099429743017239604068383052441812645921634055761594496962903183321613479025972381767625037943205033616792510794877543126650269007404794505431062912089161978743386032918563456726530029359779917169527379723940836935628574621322264450008166288487060758135571735526040054977817737564035208713191947943134668971231880598972191683875486749510593979453063742695481866151166451731818339999690687696139916806856601457635237839846013058653090084732099220057008480178637436526290827170469770475779863057359429022386280040858798685354925389768543114444409388479728095775023049623960773062024851800073361077252738638223720863118801957489502639270318067508115349683552505690307643748198477195713373056418692132014849408635417516095282783904590185688578811174528029808774469237792315096068391391711462957999360174076939836187738523546995833760611180644342974851262075431932195589291013289357445563732985273252987025099873989745271113227480931307890587097869046902186434848966706871501517162394053310431709675783512640918841194830445983548948904703250824811290465434783688343534967836409885289758754167112662370717666364319548390372580915586502063967587800578987527335697606278741379102754591712164142335432334498798101170303680735936493198254944341391555287150085062421626394262459486427761233571692979142181840880047520303193111825412310403758193868279894661291757213997087865014395318438565578902555120054896274930498776660919450454812875647357358651383298350704994458937002067351292223732060572703573482446020340851724008018433204193369104657686438809805896562840788699806438669634276675827125685677396421230571371281869413172722064069070677578757425546100394780762466039552354950708454561571060604706579432584239978943453350177614302237181006317832562495410618473732774846971119926364478847535732901160656998630734439084256173061182322447381614500074442230670890698931468037600394956227581021055217739086139256031478168009206443626317980771197221760056262422617439445262539341410307933310395759839295307720886990280492708416184174069542622764581057990695812540828278793533963837067962102739329216661203151589335984387188267373662020493715989725924076800746851213660991598015561118451150645148427882256187512051388948792585883284200857154025387195790618105145398935702263625986375751209152286772636358447041892116281176003064139843388723027184134132115834632018095492111483644539785182905039796185013066627706635223693666554567859105983550728908688629057846030677337921804692693229711243603277568666954458562454674483586573472561848654512659684521639144919228909620018559396622623402602936721886086079964825382877037049007718281044075546267226754467666386954530231100266450963186529532534044889104943843256058418834278531453281819373361480245487941585130926412339269359871419464733994592599122932049020852074432520500767649554653997628056382958442051484420615242994345585676648365281302691792694836259421609158283936305335829986243709621168793247058539738748266651350934251200750983846227415387385770982206792368694630950552849657361650448712798495829652439133519134615918479729396371003521482108107848445165318147173871484649251423068991182518308839578801853564246693924096003586873066845471321091982232515144573326791033189313338939538544692007596516423310203562016348715844217208340446517456231643224836138754143637051601010842635456163826307546217701751433396701812659227371080546794537934315529765623538887005115612481046950492342561511609149922169270810509774791760383036696509980943416265227882621404580250533294340377734748339045449935152398020825174040856230610968117475526779823203647858536405578225835648448259495953858586517146503752812561128451558987896903187291961959283633869398304766947547140624085855346534764341067653383982066289868112383424619669846896128769095569966779192745353744040590696526818836782694820690945942640604476197033210405192721983585724871317591460532735488194691631001237554488140507176693319723107357109369054973663924191092352731154693755471943594028207220163764874518749487235537547896552265903179609042262726265145212976759796117715466342648986581345619988700623608112042518959557580481420713162879556571251731421258737945567940638072464074420228764421361276780774545945325013820250175698500789023566924269092182358573814641861926026472489974535859153263324033206811016754361164588079856953541958334837144996491862540991170431302539636604048182271471609281035837394349566209404740045230127641882919757344517605270170873859589861725456841999728000923975531717877232137067025402908624457552056179468655650215418316145442105709886738670728436635170744453471488364418121510942606569095947761941265219781731076788724252426643342121973156083457215742625710879920373755348334015236372844727702883975109965494260531245362483234827720424060171703358416133906232333399149956679059016595980863393894654062059528934747625292867440627385227381010510789691699918421173315736263893701308696031379818139613369568444404645677558831612773853277161688518530170136747864651789297842093692063594668284171681998311374382365782833139978330110091381401262724935166294080674194580850016196925840488919705021668459536154259016040741019398069212180229561961635112311583287522515170593976336337730704166306604276640401676675667362619193907810819197721441839991363084987695860373668231429543820416024421214864919658486832443778080794549726628999910384877620548027476463845408819565282750785683543376509996121320011714774717780516452535387071962371927292038612789413373215149564794855950319007592919538849938817828381605521205856798687498348707056501191911343481934133148241599350880820180288965894657477610780106126274478447530090233619324765128446123988902065814826055971211973482337966380010798520637212186351035179596818955246021425782968596669863778719155757738072609029061496306349276584953834341974859655679848892972018410694373254621853966441788900368425733885015901652395464666088491058788533601199635010638236925440579862032797763871129476807212518538047152465356473871090926929064194271916585599312686436403956929232946863735928231043304625023123527496618663175508845966556023817520001876687881608135525370324936933993488058665692408091635374410688179135898732561234126350312415207827470144191379391099044237686831197384536384388958151836724775135155725524245878089471650027856312421444104210734362930694707597628799157240983747016599741727135849211121680852024196109653961023511519766808138616654817607825457840489934694907911209125282605213768959121560436600523662985976794244329798347860200920990774298987056634170999763134146463243366710523299335682365019928205305033864343488438764714476958023387042157517091217218071707268126328778051818545748975563409065562042233695173176198122418358482454429326616631502815952906601750380060456598427143082793994862698541673289664614030902173023479890780613838485263817835148776195783339355877058129023063046123738774196303244112946925683001296655293356903452534409751578975250105157147802469596101695670760010395970422030682294863172215923879355251131783208128582853127013880380930451171952508605965743287682771703390748217602212912466974507238310119297315532386020099521349204016066542233746054779476344230664236586975081428645020949928024008013791349818765592502250716273109005506007712292957943473801488415654476082913414911027277064349550897078635649312844432159358851525465024722882635639615323832340711969479087567531372782151972830828371770819113111633259572163240463747446331370314469682468878074930898902176923792615242798320603771689552405945326134650606605131564041367768090106585715273709569703826911406079201952590259495160061055877294938348332752610940452286761688226275196184869095348215987236762879854184646221762747048321491895192204374834744949484670010127036213929046954901627189886976254192536804857586068004523126451311241461144083473797266548145621669373237764383550827690650125967815743133206075415594438279271682299596045194266384880871109507170359203223449747883753269015042168102329616923480871929525678685914428459130379219056742540919242062234145016143543723866921925307175036953243505243464777687680485377045682795548100407553540038857666361827467675602165104896969263809158771588098423944755819595898227410451059560936076657937477751459071701150356778879651672866467762882871906672426020122094988896672449185416258271622884996224529270916613841817727003025309389550444360950010180260665250468621650131180941311062072275534673469519481514231878572516651055435190985959088537449812119445195860727518471206674111734279107463485225319129164551809589114797822094813252816466328042592360391261748095333072095520964363831172426999230679219969289438456247339888043482965730807728399358282357450034397953651003495925171115277660143165651399947134094683527842519819136189703165989282265272631307844555602944268711221674134669922876218392078086005242949786717976645741334997449419830764013315368610992845254863301250300052576370693985894047250901206109934727550808318196653789744531221094521911482558176778653082729589415622805806546595512946424135080262500616793151602862819253844129164422814194112369479047748729042810574016007816624046104948441747503120476066570830469325852695518939154848406028583268308805768125074654662260500802136463855099842280772951418662144991486217924329990016786734427017834888943185602148968634062658334616477325599512412277749024071039522608739478728943125627335548511242897005990021592604893223403377634499357774003925305228708703964152172792101646070071973794841901741825544400620004707812086783095967450474866167359119988394102448990201858099887357065351551839190987853021167583904511948522088552138524030114468168325008452713050553326383837606928931834561476251607476610844989997901442528655217618198011556493238692574630723490953888625631540924546564800880256107955308659844252043832597963516587732789162152166340091366087987739110644907500916465677257395047583273476873105971439795594435603565561941784206691258518061167511692922512531874377159297934859727346090833790399826996682858358332506481889726447517649408443736363725948896246137117873882250991607232057172444139384678921128767870468205684799546180369985698568359859457914747616565785055256534854525323862597839512549999455391165845868586948254795044426300195932629537615407866401328013867560378657446321307367319224051243550066279176370986421279839326878694359999370402517062882232221224684170003209560254232599061511531684349425282944315161524070829592772787069037424936080325475188114206968599991191469410525389251880210014104797731638122324261150356528024382339429042536023683545914495670251542558526998251757636729925512333360416059206836329500351573199485088939555876128534014552944140961635135831480382147262094795723897821373647585333719744513725882581555635324620420866414569250370563679293725022942065876813654508037369366407292322500366711875295407103193224398179013710246744443918162328194835356256703334962067167493553633955092677248997960247292251482786234713879366689002230669654143710769081394817271155813082259000220479953649000593903837909252183455464848913584726247079257321218317076951343326885176498732859185776541611556430215237864660062047104312385397593609301468910261219924094454293020947350004736948678062829636174484145809608651996344316837341243999814490614000291569062577733259969804977130213834442891784338871407827769394581617268967908531812501455372199739962083288821167626852879448264656874192682467728542322889137245220036042646538969718147716337303235378672295932847540204873164789119717371211551156134893114546779498561934759854225368525171187491028007865574035207418752965582252210216256709761883293827196191013921485567857714853105937295125687871870719874661961008148613737858338065284423472147411187758118693032994440024189934337889544326792282095182135775076072631126492323930543027553502071153223908114617826971263248155166937735742490791616325468266367004032612944370514819869569287544441390731932494413090685755252090818908251015123117843087563903363454253884543930300867230649493406334465655520955172468556805383435466121222952510450811933119863298360804833723321869108494433674817413905569018110930944002607535005116483864386411079930848621162289324172991889259021817191360093046455956355231141510188082211517294757072999778087197868207590095285159799324221139048727311747840185321771066851834515015223986329337977483233962475820712208575138865931495867145558374629780127830191418575842945901387395243659553914296792251281789325242328899905578388112931889809893279906823678084036052432669499146055598058929207168113187686327343765391643848491235720173750218664396099365806543271614654992244858563564132388406008270472906276346044805938733005340431941563543946759632675364910524528430981356125726891006955118075955182445394389736810513308931710298220215873862361022084749108704502991836344751061794248670211930025365016517612606148190902652318903289883529354484999271869314579408560621031236161896491488628490479566200834886910280608278925544867709107901977339169955626536373092265350753413321336188931660012869964131205668871876318095468283674917798570017316477939533238911328472982455807314593072435436816078292513189356404382318562558335423207257223334539717427154926595362212574752220881766230408461197776683816967588545178955644334212950206474997601792136259651530549981667603214685857532927098158263106633537486770108646324033544346573285013326884195475428197167020269534431016272620393207733705382605939495790232246505181228486088519495679874985838871070861600260765011605397456529586596215658773426241565414551057724426542541776783633830779936583378539439747066232910779627037332035303374589497990354465412861436555831878746158654206282880272796049990218254901500238307135540982525082235997158403379984854461397603742046890896032938904725838015799756795488563528996732179782480741390445191723704877889340786057487630106333582205338230681056831758811563221820756348992903052155553933492104725671126149840063021630357390030255414793184465879833381322365435646659149372943916229092740933132603290369220530993701347686458686273017705846158461187690810162362990745386191564824031653501192790872456306078169468992480568283522364044048635034457763042745659323813615889335175574143916320204552235525587612419459322450855856287641971407002956510838526071785018441008542894183180051960098730347658632804732601214481453248947512801737107297286342939419661946663294800915717569254294337423837723124262094266745082800356574527409028057163209659901474866204076739905305473331563481142341018707555194721961293393913230101031736944206883697471133503224400315895485046606929254415274660059306341728220630105653127420598873904404551096575271398300543295173345380029216183955582575888784623912513785978203782779512934513654106912209286884708012970741755403582986379483781771532519594881104147831543177518210232774832754086414224197206457969732018100656689314154185032875011159923181732797383494806431246309638836485371398335744502139971502142012731658184014758804050121820995074298045704815537550267997595683585514692816541799612601047911708743609743317077554796937985310731338117912926280867068409302511736863650530043104395131799291942322129389397608270690590619753032507430128123180957794820300669849342424826248446206491964563317459172716596020720882296234051893588928927446101464916870188395980761636534727991294382544542591697701915636036494059290896926105385602031522761322371488937119252083158601649566801718339015924855090402623092444006657688203670397064565662091335067896675903240340307680781250893222648127636236093204997640706992893094584184101451666454857656822619253869826012935922993712701472919695793411178396724013596613961294186815006440675345546870328184169641872627687440669981022237476686265112253704723650610249945351354985334735045397109963822659596971961261794588221395279661418879669596015549574813604470034261452830815314127912349459325734792489585016278210302173300134978638809421740276742964870574246449265295351226734030322168922267219825488996754717147146550849158989151018508733511073135014909095300188325256351192155023109729975347008658940511521318556218080151672400164752597661986732380399419673186187823888325853891365960691342439835636454581004518071076891778972650721454310788018345799350930557109194390181036265167908600241113639786666442608281245487940714831037190275161574188877799805799951626705761994443547653927127483978574094591993125128945245698305306210211979909800649262931983050054328826774875005402614668448805784553142396638889707388092313586154679778574205042931753701174980911103582547800842795284682793704380099221622779638917618203776605652687287375218750947041061102687437037114371468374488092187858327372504893288604804444527838262584539373274397896845921531413470348554092327203520307126460303771723244177417579391938131654979312067248863309217835006858835613535214308698475034509309544281418915902754015444512032972046160736427697226354706262229811060405111277545559682101263684458065461184235022571002112143278687121922725231090104860916298887711487389412324376052622214741986435418642866510177109259357026233459935476992245798013713658008281435363632462719030475151925346855378753782756292092553928782429347674007819411706909896626440038722687003737648190111499143316365725132040402714402535734221175288101854893647813618635274316575717039328526131751333090332450189676327400079559958841503131058024441509567207557722831972665642292373588607396107409256631735761501677722238550893544563532154487508984982147004207921458886763497497751977160801961730236923157247295942100730010897484284850146002094814000574222656009523764810301935617519470168044841933869404147361267617293171611567346396820303332917986282906763276376667266514184353267012967070054367657037059941268850626217372840619454102884070793690445284545832413271731881715760019378818444858535241991132229301210834511854356919523409521165986115842918545647663582831408386889455569954165735103003031741766445426270094637126191225511888522879928500271650472156516620494971367883893661641709344875437393588376461180248241556503736430564476009250302751285292554644025090433164366582800866662369214641002356828084688279111085724485760326141657489665232038257648719579062197000221165697050236537972954132462544428638663666797756242444309776448673632781620641653173012470160055944567213401493948307043485439410859895638564229254937378148393454502050942882804773492785851741500700184555090968925207912144715671579489795637316381025246305125651604755802780176383310793309626352503506913814213308039174012377418717297621468714539609865572638800909373115894121853639496692626283668412208984662279054999482721305785806569002239374928018078959334309696724214407815502399072950235858885170875649135731914100841772259401781021192318876491008471837663138304610816981389766024109195093192479021258235672080386841793200042735001873527420192321750716415821518514595410087297088867230358316487915317625714262597203061622595172951054816068653678919364131104693168424264964398186883480900211639870020943591612697412340898124278984931829592869297091613577019984988961779666964970516960160195886783647916483907851434233338431040811991988676873528169217797071124792629435798933894759101850911857736477282383930368685438504654336266215718162208755759563523915513217850301297328775578001346644797885485656111774972358727716166734426377224779808111939233573998408045941330943354529001985312242680388214301232104557084739988630923417248813404255823749149678721020268748912369301802158488068571563451716570907134711940953066628728144391367762169177098036007111315900226657789021276918037676360451187397284230478448192319885503235654475292193282652087402223051967098656389634417592230808883995546504813071926553518409295270259877090224249938229675329662706468304950736891075865411088784671667819625730496046980008217562731290324685064967381432759278736118788781008338796043771085760853788457142176546564608304849886484712915251261924550628415836963240683111585052483321229293846314114936503208088519721378779333054397959948321161101891041853119542590097569808268873033943438813408321632092241029853691154665943080170901701316382098598118883043298826616205215913524829357223039720317044792793132846223660484669628191057244137457024966746953061568162708130845300397649075856536417973605382561105924666027695021930652597034855523685967374405062831584465532398420182289734975041819293814499849400594123306773093337976969312575927756495419826891773515676713373649653019539885868621872162032455782306170288462096059416694479637773962563950975928012341759711220618147019611301610701310169202038773545830661970788416135009412739695398799398086873708138699172154993419524739995146533482738285923187868605715893462100859194188682887605832269697184220338304676364905666545509001555122699272779177462710604977541631836850418307404842348867269547878497634931704280325048589522117055915291053403881994914439959312999427389162894553783372060734697444030614220110263902948173544234031903197160382603719048680154375425295623354520805005595399648429307765110729507848026161772734337017028329510714740905562876043475280649953092423652634514286504120857452018449633108221233731509672473450359734650945489834669031231080760092288595563023121462663142806542818795757802077680668790747974205999443781651139471943394120089044710307368627726680514828973874984594654307317370636581056153664379175944154500357571437292581108947114526754815866469528738992892036705151457212768484069966254279171695668372594926172388381116009161656173795199377442821006458100581987553156516728346311104552462818104531892913813006582982104167754769897609527303907768689447747989851879984632041794994170019610223149528531342509206721953509976966247614729686933628198846821283237167035012450853535302551101605106714493837938413373700308374078459773870541814278954819865450036459921093798901962275898086206309050381251558515682531347693559488752810425107986230043066464884725919319621974809201381075092124435497049773919449687223489768946425230701875782934372753805672700715963700433998032849382513687260100307792158061838935185978057481396582240798438082940186789102866847059454950955065577814510633951609805184365910958295097343300764219583091206358622472951946261138552659499760272594988869156636787754559498695398514268182060120941094957987164842013772897759084550215928560829651577999329546177623814518716887872326753912863566549325785181094023444517300023566281826223599207503175749363656067097251592184152824629367378278439449939771591024352867355509090159425367670274239526844115292942513786592818496361801592896078879306632083024843555813638860017413737378677062880070456616377766990597642032449126685390779602737468249998018716625434809221399852321018264565953601379980205307686054511652040556763634862775222158412292950843227806207298307662286203287816052784517759276869255711968733588767569626704913680298889017998659623321025782748243537224023670955689417207826824646775612817252090161124510754908423548006439612258187559540988431231429295206087592830832245978803226702773348245540897091838297403293702978408346979566303677107593475632507029146455997929661809959093793143871009713286241879600912445998517196859075388676636943888317900239223154557931308090195838554389603918832763913018665315297420855388705080993632848262686208185375987791426273104652249698464157927267306614638674450878451762342451601805138942760425173859129050365776092505250189480522829196428886143278032057813342066241943131125620012745478182021077613712414479826267642381992494197762728973925769929789890513506652750210171352655882377504471046755316305758486870341276061722417385477009450339418801258593459416198065686316591312507104562707269626307196038623146256164998798468492061995562571413586583161562127606397637790408571444567898750369990771509015822690536485678800606166883268755837317371467425338772859539798635682818021007408924654650570923670056868976022349149652054998632604462467832617435827995247155150283019325565419267171507402728566330659097766990909390012741667211969155407335446649683463575822966632302627387611385958896606845128379375271208064685779886368445131254260008955281950900343011829739481422843416433165296784788814270524111101507194562132492899913353206284884925729505331988085873524705726935816414267184028037374600526551760402345133171071543419135532827456387914824328879651239991212356024432392477640447692582120258557378599691230990199999589590883848747790257012892065921986410054997904481320796178835329620572306085835538402498338932842269863525276117777558112416511566814195253819280174694550285894065581613996990489663957831878772467728418212498181270519994456552824561269311251190244613202889298697864942669897012711216174113649446972491138813582358243765799596909630987274105239177473889954079396231375303559316704095057103573785768407347689197659019141093828015171681903033588276659264316535493885576614069941716391674408415799332630788447917719797275358637239988422543050157533695864539900442808683779461769039533357360768695176277450345765471905264934807274545840890362000662176308901190747784073216227336860588698626710581551558340843030640855396573769750306182134287597597201876838929119067839383478553503561013065291438325427540987780120176110149354570491482586054735824896982175022635048664888914152810913046614317578601256051692248081736413174737442296955695153858658483460880513431943673119597782134049819007688966962172515216897099269677019802681219876756851480191490331186755748240672224937753308769471199206048999934440146807188029918633420376451484968683830205400738394138425929404160992826116795743699166624646997153203153456971680511638892236131359496717017902635853555818557404511012870857828571248631380654290878309892010930920350965770112666852109359857063929923274282155789493705731508721420136431446493554682951741731275991859717324304709118337742464173290396090909740526605675914262825851377222399744164221610273928598173812771294769338760197398191762634663867811416005706332959569243027219539778655412420480523730292309893211884678747736163845516027026061682789575077975771577052460116548996250396969039194840156837368127852142386218312246495895160294708547187044345411931184856185133020563946138371225846531688287789516354075497941738322668419619924647029356351150867454726509523261790462846426191749852616756574696030113620328372295578104150566061758590709244031948520451971590597195905895089696305426018701121323815792368296448838395559370517193996975365933729303101975798770109496321232378659094881052969626429991671784497674594718733948632090147972000997635223071418083122126366116086419471514726656628791617723535996822715876297488275852329983287105729779856791143520917566169519209255590405283628631597380994777043663789137425320215194042900454258828149326241383177032384596986943567983481887039012597201583742724958031972228240929073454679293304624531835489812856509777080723524892891622293992441978065031219803926303994980871929125312594053741809545827357087546266897144854356225658941635949430595003170467402974973934989360839265296657453586970810105915428673161888036263821360096537935808103431784757292953582130276844510136973522648964535451373160084969624742751494016687864742149677008088683124671650680055805325090912700950442446323590346464512677037395958794122471220331094537232590679102661641606935078154026950011207131354421480197513334720337600821861966085035320628333041506861668562784367842542067051549947972311065810520846047347698774604140000882288564841581065138171608399624076289731665022390348686450477943589921876128151072278362216748417199797365777144988021308219897549667047057960458734206456534925961542927111588418427953011508551733353995913279675560591067581326971833398908927505715731140220684810433600365877600935452778983631116716361501316116678661061580905131484279207872561725909797204980602844071201738614969870731005880617414793461254468486630282818058171190247655255664217797499368990198167565214073333300838380191902986736922550239608003360203982515692906573083357096020482306489120494883205650905668481847379052575058807548237862519456409146865002053644580994557439120086618932205474750307811371498174056391625047381228041852931558285315088389670829418104596781921568849683105964500198657546538875923323857259841016616691160496789715332697592943437750356264956460784373848210131273960897644690052721223778475085946243420623692720435052023069910711521503076783695703993596789015958796711601831858182569626820262722277583421986501823039210206328905263053725177557294761424297152802633434578335079791494909584644733107271593442259940454961099954905131516388446553343059689362254769925527669387391596592160562044658144887986310570353680476759734667513518657506042318297917071752356307675564257265655867939067828940596772375681127595953293207607307945549237263672002583222077607610036590558742737645838432107844554791409036561932302529519607354251246492138141359470036592394130444541033677128419724255400527579448131494234455998648507147444520471028433575638549799673742304824406781185001808936476664174738457576317854719142804143130263323352452121109977193793362825788177287518141530964872360532787333113943314688668480266658288898129776407583372281005738599069303858753607378293107987180109049968584028524339810435687125167171446185923191968419328936393884534837426859399179986805798832377157378081687554317479475104587398667946226031394364559891687448937272059882286422175801530377464056406418122709731399709140550579992800717567763038746444105759480240848490419579041666344043061308531372794712284830468076918329511399780569196181082130691752726007074515139079110024214775656028088412526587552104848793698976494698188576349256196168784293483289016804397377194597943286364774787077446377120123656955964914828827410201276148491585453435716734853999252171937983304200629802775979162376642830342426052210633961055880992633748736982415135481217762483948164918294279471767678007434076684330401740385955601302967121598958720021772797033383106399089284897072187262186377829915570816333654236746645942053796406346695883539124423060312527231548412643037008844045825724632658980426204239834174053416656085938574515529499573740927533288371427979227561257764273547160875488306269818872415090382740401042050937650755414561375362472361151144669074869264512286521893978632757042942314494883751056655319336774539871078175577419642853070793200200547925931411341445777604652865415399065798634470390388886239780383891886646044060377497967352991730792183398842056015345837792722521081735265537000262376606806335165891713278691063939673211305682487194346633034156906964634776145270812741924625363400249679877130718090710569260047097373073945158277372143013657902291692545029531116054796361201036132465887740479768955134057637374803516643233370328059271793706901192769066518244019724329226157257041842250450274733248213435851906009862155406713001575089393267775902082754728724366638815775323451815158453972426865448317317048686836706255644123608234592844214439099277773486896681072657399373976773980347463214095610756797492259183960562310751005119903601077663113975287978663871949438108401751114123570436156254353379206923417432183130279663804268517740382198570563785645726719725669084791305492944774412087796974059539793922046384111659165464813304897394410079645941464073626496289019049422079775263912433146118654561543702578438373555432199396936590097959556463184736699492246616178119906066218914452547444240940113245739282822322756417869921791309563112652778444344287969612516582644082276968808131211728191977175218814373299721081615923060932604247015256360577883475600139775089105749211906704937608654374872933815867783660356506078167693121112265699317409300597986239414489073497705984788322073597293877267879377968260187851729750461964828060642013595340884246790249570029394833148279194316901200158116230179775234756689002945895673274388098034417414338850538487822817438554304064291031351603429840852229221753478505055446832424269486460887828531171322894672152149062932447775739184991451000996770974120200664195658242013185973745438198573777995690707700030778566667225927454645608715055458098202086028039678306108715120821159839817714117138360088461825781671106932758055773374405237514667343409835754662043089160615062412615854923216418298909915638604483621704996408775904243911518766269173499442317457798104995313749636359404663421910751816569850020718846897675601916228306522938533217582821785304998507424888731836660668017580046458291361753989026316880875747284924365689234388122696211645325679804409197839279105990314607017165217123690906430312719523224558379881895045990435754577971601306915818060861048793024149637276499688841530662149203486270260076257558066971335761373780640561614802477620731065587065322138482974725451105528241020316441524192362135865602755824228979279633882038182402892847240300489859389195131148345128612250242549128234652439015333680251033374723596403762557970955386729157221952510221110197080856071233968486678056758478702710423839193833075531309681778901897332580248043266952033563142538510079328692888918044935351760877089665581018056792871154682585696408698224486224663182861396261090477045654438478129609112884451070382535635257118576917898561583453947345017262902638731164975698408782709428792518684726529350638413157579350589586247564617291673441264459794196747406320225026212881542527196826062135724858955920422131473462903674177394791229732802575013737226824724654013298178948620957843311905777000559463520121076898034799658007757074235801531368599096837259560823905387292732846809636992247840625012139196351148759911915306695566424769335947381523407279003008863334150136610726114133076967057486440645990592230407314175759632647961904219034573076216703045313462973521923859228010927922212137935134588745328353120028037023992111267839880600053830370500326687393782568445484350913711849810918220677345076547833634437875347382079370300549623709364899651902649666555920869915329897821924202281362420783100738783997442385916186994578431874426855258606781668338327412441942530527503093279394901070052781333226272277730925211910188662662053334188544153713666503613623501365385734814581294467998844980556238888984905660575080032873714564874199182967502268608360046977251512234063054552897049280966389720691359169802363908530990967435803376242478292923146798328595669614320252432174592002597794917828623682422290953198065010882650683492124061184489339184448684360335268110195368789736743607292715832283972388228375432196039108525641800873039422588215558106501063352438872784984206443819766386717399913056068840014507355590817484828344638824981717737308119208655565690624590457757645117684971977305142809074594666169059070885763595214016721645894586485910328060855458143058092913499337377045629777593380746447374031911196182755086279849532671570867265094268467210860574048703495895212312845187860784614625113014136478564620107911744934270815384290119709609224042596159950106057975268945949745536830834739037685182958170208962433031778959300906771336647932101913029053024524678969103243318516384463378795898700410764023358766077055200733638284163860201119205190621512700081460621019614281630761579199425845411459391259834838268332764790139586186776413228511059196188413278858167135080810840857021068269360090168094461799671502962517109847835806226919540293466423990899579587193305065443545715445363951632590168928722094470041405989161425922696857025705730645201489289296347285808611642047875119275249399897121810354106072711696313451214832451832489548904659206335390046163959259308729829159661862171143687431899128736619275980802068141443704753687578660719936569923634710690356380150675348802800213674452332129914969432476370816506889494379411056299430567284596260041095967553542283693607420820731593042636732000433115407965049937337507684680442478816885682152740411306644410996662933979994331483903476313112250566070720211488442465238492889752029166455288094154207411428054969595641748313339792135364635721413044872216646706932041329613299344046629348215391536082593444802075241401293168917583991350687478587126645977138374324552799046393744715052826242204184413751678527022880732434517852907386391057474923739450660840325257733696926230158019662421331587856679961322980121575848376105622023745140225962281508288039289074344698177146499092246648819952875641343932522126907943647224653595265835620097334676998232631301076716703845381792319911271998042344912939532784679464912275695679053290853552174351077762632841308638774469505550313395201312115358518468892458833862585561861618854873738504064549732234872780246420998656983379844091717830645643836841648428727062903111304680887079532616017421689184100430038341758903190051311521362440656660329573543385651715499191204502063933340735158263529924357292749046840389772124835632689960903247017408157904699638085357382879738403696839101791246648474629959697608040396105748000214669068521940767604201507850341677248592308258662736425674448268449379863653445691115704195627680965989802844726998242455375848114155109695318171121627494091289248828294434516335263537905426460875903237394873932798207558471864393428445016881198249493917139147759903905987152898066132242805698103903936106945431905950865374431470215307808646133991525908066470032468241975619625625198447092926466312692004854160128047993223305832627552572052141140734752419753127781058676560226710381283272818804158036720454238755275077423397465353218267317791008259088287276606522193977655272045584424053031607213421177083870422461696049048711411664282337808119403741304400976736234980656718917084353665892511007408939661510041900656502652023055543086596075399954631395810959602533732403889112833037625932137826499802508956703784145327705894032445132394739615995720145901939486413974620958048811201601143354900266820898513385519991000831610821663971918811103427265667041080488396887266890541555842152404285887933719988976465308698732255865382242502816264116175731881044672050187462229669454685509302482215064329223871784187851135922195230857236845095636899313716645063331658162631883955415836070369952216922262950652758993474269741712214885750359142354040798459492872215357600860717383233939608678233818060915375847964570253596051406169027041099704249647877686578280885126369794968986554512344476301288475186418929301662776674620018437132467215200862899889872657463648582458770874819515622193422748532729591642411307947064276029613160658446905798810391595578232601529848668517583106756601698273201670233064399483322685265651245063500441617212381173355413261520888303642466634523148396114828833889655118556827473761637636990468235333823546411212805122237011429405533677051675402687506810433487879205202731068483638822094974422265726593117482308800590933292607671457964310465537912789564803526293504806957998460304624689631933578704994523445920424524870860027310151122415601742395419733482839959843081572227800895763708828482691983822207952642490577159090641046639292843574753846292746576231916754248776524677431682762007017247026368345390155367346200196453917619200459646972607787311409894517512166498046011535698600595345009934356858635896578728403054303526327788663403751505175633728622700041379954366711935451978752546571754515938197601676626717948831297175804741943042563977398420717693427483952598935330670092944495189199253206019328001449993745728782328847481592087814814575063528196539065787704085635375083492244959168485914544159943214972548229657277627060439390888593491862371907468714941436732750053878701723336424824563205458658000310917090893325952050298540044846754740495119798835167695661966201932504412318051846828033629859093363960769501096735984578470598897463408531253468795578882784147076152952752915133147546307481536010244528239739665256574659490162940034254919322716717436859454706795281222234170090164468860789657120792046028987997967642375518334864602285293731767273746162616043510619216214655770640010055654050275081344660788666732218432064185141438163126900682487056341791600704660824053347346772737290587217944282718719989668222041962853012949447740213533346839514748533342890266545960691154809344696226272282133647948517273374950458289746728752006365968808343640084254046827104771769313221766318667449270531462959226850939827565882392171977960253991020855048692174182275272048439867108265945892424617908622704557603001605085943104098411295335753044549348634066882563886357742815487136310774497050077368971226875029693631651836628512410593361351076476475163090611772941636905033452355155759394860328448808157794625201318340868861660422057743790897054940948206952065713049243188138062759601508169459797004047681596384200457854221131992688358794918706972732936593370284237772010653539262243223726109897407049983167761091806509024678482226539961032158295488531562605259927951269636840577600832605068053900477176490697219273759547225322840104359690378473758340449447848821977832067496903448407591819294764945745812676235756434357657210982717616749400646818534556846770492986331052516825628770507637840802716696289164149149953560019283460463298356262966129034633817369246891741477484652157195626910982674239079485042031337849388188885543553407476458442824713814256057131783504500189933992293950867532143935526641732901580089824591066286499409334275279926361206400103846876920491051967800817977123337953384850107625325733499811909477467914055808243887830163149501633837439505055727502475274660764046338961685824787861421594865448666683407096313454365854349662368126351063946975964275386212640466224148299342233926579664047698822611987633722911958269054921763839142495678185832692161817619752737820507301730669509464191661258078265783466668953279646318012488207475644434661055628267049748528767471711512297381484088051417650786076933191922617593361552176409477077524716343686998285658508776841646713238110809965724260007753300579064318434871443512851057098568204376033991401188859209310106316424677094527186296559696672657864440829491666698567289192233591657670588822158923103885525962104047777512397839565636213658543179635932740995885073314855401112561379419515638431008599171841049080779833724739412404801455323276922396702396614327546590743956113472810770724526016638412840257755219347272844129853932780736669981879451717747443993073940082781998365606823717941075363171701740680799312587032676104870800059036982282199913693279981351537771327966778186136480954563689879068426623432252778182261011785176258380234553239574030345615027340609521977479877009975121303452348566346842611471385875152744494451164264578387356570204381375856078230365559126664212858116750381327188164137005049343015710625526222757035695213538376001058115740181555226891763645873290289090948233013065258520256637968223776389950408600663723986336462957797015946806933699356452228896692119563950818470973234539730060520295569082552665621565763959150601449834200961080561995778039581491387965150444818257572313708420108191010512412045230427501232829549043604546854407686697356214887332442739812285015920334429819637420331486754911651228796797428088321929139607168431795014509942348612046396080674999176180530607238144008294601099131622688660641590762992220312042683245087583730402801396134746317627013158830643773336833341064717325428489874129886747514289669544728467855182427391729847552648217473551824164614578721620669764320370366127014953319243709585465658086142366218414754864988863664993714063997576683598786261854437323270473851589398301378503407729885535568043936047964285439730006138653362183667613706389888845929025781954474272537478570509030728144766713866440295754000646380133313465104023369266046365390361956400128757841845962598854761112104016015799403618333566659685702291636454046690077424533660703202636631868166061724299508779492754398143938277389512434210407421075340531345082938668205645040227453932447702670300954659829308940408464616344448015725185024785009321242852244414482013900228283736065459789349517095836890619329952744685873462943749773608900116747709972157048568453032836072325536894886592576629313958885962560931957968150930455371342164469256522223069469975236952404160476094770359408366307925625155051656844530134031717050103478984137897221073476386887338930764778321567950830931389541398338815536262429942516551116277678889232951151649844226527978928491781460060121017927170126800222639759174247946857934932407102930948129819304487816708620156398838314584085925524084169509103281041989043009635889085549191036031205601083858725337214665726757856039645678297066911166473222965273073677745217736611113796127263321520642467000956531214190475369859381486707897947578734997926960781481113423713700953459347076202028362090116353204877897794595325686449963726926631119488912470237305672773410144036132799778682892776870532052729103307192396695192946118716253040915057967632413503507810124922926300965021435159212035982519622841786272991929769680983468383782628099546212275907265053269309795021806393341500863630278966961179391917700740171073348255859675837135792421097382643190655829374247861064397682187866206375795102249446287656554978883418157552553825998564733552098778672225154552001166096930154225472842642317977079403262242345257857172536761011864048396185263299572340289260501951714110039126361453484051743078263958919326637894338060809649341863370031023865555005333594970186542132217892881057296084391843583549758185345607555536093718445607999815946773709315119934626152910325310462994059146761612161595061924588442972464504415216954538444040124653833782697989660369351023481705182439922849041778257912051587620107878233381474097947717565317832630987964308463334999793094883534995304530841287132100945706839757794583482241154977852755752010706092011746678187053531902129848508681990226031560202807281766052380910782959351102677810891658859713943984445703456072249941176299946615042055960408521708262663639329493214600977150832836142516352677252387908772449150280343323626190341189277490717977982103865529193108260412553985494042250296091895218707650559370456660804083517919898979579225230415376589561617421240778401451102133211235672134008271825168822130242859984705379504510306664938578432035355436539735523456140748338060054105551794893047484091422549536787250811940098508487251860866260687308664794466902740091614995220695968782511243168250305167458710308559392063437368841447239729375601758555542780929173455680411119130082484543838517454684138708730545509875113566856714751607761365833501963851969808191878387288541851403630943014414680995840768124402426263558162116460303274102454654453416795700428017899249764972096199232657611146417736295364560745499726199631841151871425900512663372138523974572711741707982113237534140075046984299763907972609821921741283377154551674543249541451753567377231176578895768237327593728607021607454630201836957894318119845690062100743674940102565148264897410238661242670092215511264793578609296670551822054621996184257981645261582410305372627911357886325201684500991046899557632382413664275067143161700392650639502281993861092331238242919900978670576236142759359865338575289418079912308472130428093511988854492595285262686240016590353640372970018366457731134404707842483656187692090357399554960566978034048766769969380408185683410201518507401414569867732955624156815649567551707996734539248365638973065106575481970933905940248504543493840667207753790665798576731486350891639021214493226996466320965659487710980204041375370287533462740856648370332556373222749522484034106523651469539645876629695592873477868225345820303419431959980628268581687616556275353607842318025559116764305833066673093527259419949452259742005820491861972589286741687058682812941151209322616161898712129037582886176946405020955346209820518212298642372070792102224148673267765924429259076357331760452714353937169706519620104465385260362186790910647814075462301196039245434208954757120532335576730692420364590661525701195363173927178285783482364096215574233818155931077329225016360418223461831455059633215846077116268541939544490563727045343328900579688839425980129501258293361823417625328810904532909259291417958702941129855765440530688928114834913948331042472884127535908732727611592460863462901401123710593036074198609339708981941788839014782715962667321737679460075289476286173346505057265290587549939282085591742093245664548677319668095300196854936867473564534133919499530471857470271124402082845620826447932029456853861252035286930156117249785573219199593300848234155765126865980340636262585812891530552931779882808355134147041194755576570988777049446025951359326799085663151079751941586954569006831740774275990667360376503426674879136208267730109180214266896493983194672449450584539507832845742005667366258336342023886615847395601618803318335461634642875821305914050506882078969081047669170511626183931627309587243296785935330490943143338304259848859620124369809310365442450766058519525735409498842403194738913788632813604704697096537664155103224384902556290866605643319979030422795216571035633994110533936686575213554725878306219457163942504826265124933157762723339749887357038838276458691764464778565267952513943543406831498106738421482811005874274337233869480016056301063863755492876472958595922122480286332943537805640722871711857487796957356176401730123559792233349963118783378784164598524471169410474152798645137534637829613080744121618749238081741693340717256086344769843721647718280690130618469985963148977357962836102508614187415295614188246674064819572525407064689569426343467483976453533192973362986788652448009951248625620548300578851793353391426129249043182623220760689343608060231625506609291678339365276853807350195163701532882792130157222525313194720081934543050281827619192056251185379509549654986192409378417787636966509168317220388203866630696885409286339460519978845059619625459800970796190370226846674506342377590996814477746210117130823752005573337022623487225761167227673224901320214294312197847515383671010683084500011114915666412179445816573029762545880419008139649459890304601809682408671193907581468553883037252587679397403326456950488512887617999058068747829424348327295744771259874449946408252397954111771724618128813741664415574219830968903411476531540431123527203177896042343192567505151815878340775618630216783477820947476938350349295913678492994407588697154798681884141045387125176787022502374148838742500378472806292049258097103588849944533724081924197396249284945350644734205446154477546965437924723208577629983955250141121096313980498673605204861748972630274037277695412204529277411014988365382788859036832587514107919083575072792158100758054430984385697821956097144975728397325510649520203164443477313481023880675659827387048435796982988314127813366563861560263936541529872245467426498659291884366699301477832187739128366491902463677018282514632849529020795645132332917984439040580327271382116341004143524670945362833884936646833561347142807221150740242122160755068329321104625345405462026598738073986356662663049998685896111930657813109190092787990852661079367988477177826154804988312408334216289454564558034256209425242722150813460831484489353364109184895358104747376323424430562223193586610444046740459278836324195054628042351643619375247573841537350647840466809745975783833860798026781442076075757278070699683049320907023577378486913249839458510694062330259060982619336045579989701206588941670744043254251762557267151729414611183645867259425230118252834629453100573267978010424759065059804935775342439007810332728326488516382541935748878450961267145545821163871245953799481718219438642699487423650923189993708047136276682466193369248646545993096779421215924715956899117232683262914866032481258758685121284613574125814152645295194963617635690056410268557319296407100180867032587756471271093445701774781076264484184723870859815877849616447737965883596695395338448231203445236172711529103482996518030102836069537507535610661651696466275425398072213004309329633925573727840708985196400728315597009141805918666201243951766214445073531901868023911127544700706759552463639843489150422086455396676407838950368773495194962999464752723077845367151380847137343960168355132936230338459584669859753022781809667319539934907570029134746287927533441524190759783282332126892722511804280304142110759182747861212167101403425356532775467693884654508134140217666573920932210453285550631960166371203157662030675104149160260171975708762408944211618560375541999926971368172160085639342882949300898062447640307004594279882514183403373323315408812843800662089168264993070765652197415887893502753179044297528009429746026724499848170268030624210748361881924456870716874931433948061729280488445291560032912819595392420163396525602520666777912678873658684889711535008944570113224415690971606519124304983169322765162321129380513233577099840569205878522875544792949824039691026970990715226571022012561290457907026955027418942892333668436127813981324910506649858175641151094920149385460120625833246172918583342843702592046401896806220726883398962979642063683102229508651913885890782011165650044548191901314889590506025813811131822491532754939569850789107726543516878627614156247471692578018200508486237728202277283468557445490036221001325017817755104509749598496299556661652182702625485981972935631319823070262777909102927309155373438088819902465636620903389079596733207532431502410388515547146824539159814729600095913360286857190002146621617066634280653526441702980496952886007154716802630086231654927074550232800765891587097951116962859264310835365732409321096915510626390336565215602253826575999044752186326257635566868686569898388582987958629639207034581230658474141673969033032149053081961485324270285812574963884857966624721497134304414311305060869565701240178061018756218491301335976713335250385958954627423511945322337244541910579862878888359766559679346220726988477368862439765904014183144875072148159154347488727859454941599071697831953438634739295484842417470316272712822504587233525849650729803598668311816400216842068907217957101416201152535390187167813699036923140205120310392172214261698618530700529574520118024196629125619722305075527741279882875229359041055820961113968055879973162804141638632755196534658208213404777190496477679147888881004787161530759547086995844347062928103119734942945331843240564255893846685205505284555937855576533908331116847103923268311737282915751285839623181329456614610929463342111813149642044438886994455004669712716033651301721382478627307960888711554718173018503713054110827552612968387413168485355937329052358712243444156585886296445299534667434383063891855317702378170404886171710750752139723157954305887424015752038174317187136633255865280069812874576103111375697384596977611378850668813808437094932301963393545024336718108381145022030433789226531405118896668098107100421964299348209477230201212489387872953725681057915179121355018281060288927516322770132468401990600141354807561885328488649080993672494444478788586351678193484723367942284968736299247416391725729854060336683593043973850830079107027883090385885706118803947658046485365513601874471649706914933784157181660236678290082058197398099822629696518128326877501767034099942557144292249571830543503470468526980008187833556587531391636777304237767318809755268228068696763757203839760605315385550130127819731215965796689555171993057194062570673516530503187053155307153302473585503506101976052641142886158653820923081074232872345289565159466148402098759353705629849004718637343886982957064591984734433569320907677856513696318805195953132102437059307985828321947719410451225423431260599049412850380620232571669591051107418750796007261749051616612934106604712985201158863676990540579260031604981424794296798350861780960110512909985475398836804168813606543967445207646394453927480374397322946353552456200175616549542084423476449896144470297756931554264761054962203547534849904695447016074237139270712733277578072143619478607451709061009767018617860403615624818560602346018192617042983459543272381305474646939808975925575094224134423658805234755605503059170326298541737150954854087276484759261782889189885669121810427448580344586532516071715128712774818900210085506086031151425579607343711680989710909262886481184509843194185065442841159588067663021625297191233928501527736768968982726729386471903596840018253659364593730849298776951038202174468123836430120723702807745175025909055408798494715997235864345714642241504788467992978109121177396371903853975284669620462685703588456504488003489213792526947827643532713721408419044025360390800035256926547803744348984640026070354887982625292440148246972471083593423206943844236575838879653260297867385270307169660866704091136680687671816334670279825839601330010041271007375391120733475388902940437632901439965594701691929565109934482865068923063627352100969043203025692782125558341342008375250829021725739010130113597463800236226089207444999633122098773635442450770512712727820710000756308657403153599061333753208273531172820636360502868314021390389788990644420934011022573682322513461864421239150613745877211483653893098716524573143191552302370963798160823576027731644997991953490601032339188099188684777790820329151592342463424708829064043585287790515688900262485520619377844380150086221064752697291916713421975913643779803926632722807589022715416827290633575205767456188609265026457323763584807373882163148466487280986854261776620765663897209633988315940070212073289352158330084044078129685801642585881675828298297228539798491029668623517151263239115701129499314676865391163308069118140817128744007903425838335075686011284575119758682917867982963731336486922292856324271295954704637745209705931545467375292097180154517507417815492804124924235040457112773585245767563339551154074702520124629127530108386108940186923263255726941297862635789214921624628377310826764744576916948000611140435077785501614411836592304725644371770580154794980035588519842715161329294240230057257186787408388673116468269438868118156101942067978078629889900463377145768395635809930726449187218870672315811494901556396959671168906675814154624483525962665453753850661892611626843211584273780645096845938811970218177471622443883572853544675568165878250368580374464085007962273966209963141141005749066859877250095697190420898632347970444296765268637645778757239071243304865727764324273310981520816159015403275839205969929260956993003117989449642282093666303750445284559488976693180389447468260171041339292555130281696830408941055690478906448552019726262199336410293144116439311602229878350678598468035767292080419231462656556994094778789819066204023407514364464236549607473987010100959000541221169073392602447117545742666483359030863901076491748613939941269164166350372248793307419962901001415409994361522067362900184373424088089407720996686383722650482487643964424048026751170752139878661821359121712140366111491394398436765517750125337942149190137134042034573033931659775764418260455230984290262173023954552124334935092242612714974476031661536297479862659099539875272791691573402083177850904567750003129184492355525020869484999721116636830299017882734657258313009622857420347491218570329996193231227874406575125731561586840434748168112263139284358880978986433770540116245369010523309283941503639220572587024601349615244570981214624442747747831319253038668171806569264690068529464202374803878343226642091703447327700249196188563830062221347600799458511836673345734233536588653774952705945404240618999485148259069897159478124218713275020919500112328149317971882217922226169664545722120031734019747534120990936635471911729860858065007227050244539017499378094172999423476746735061387021670875411995293155670464302465827195756827232567056616945383016613459370905085264700266475922813505495807709023612870098968504641230692696375433850468052203969631880894232162284435550840274507368767110012102438051857252152947539755365013573835508170478334360189390427243922185794389454242088518733266888997610416524359694338629326811694671775302757915853216494788884849891588774812813742565068573954829374398475562268501918299789303081421844082184851103931166707942333027217407023070733619949132518529921204175246998927230045326773188647197800517270443861776161432108653010051019273961963570824123447352737709002967866973576294228320439737192087573219886092364984810368888086251206944608543069142348685821986388493532289439249863994663971462464039178802165379330083718148229449692015129820344736683836089375508694237611418443297931329339581705105783999692216385809693140986356584758016667120474638514457677056404511375101377061538380725211390359343008724364316270246119031241318939665728463295131894136058159122043210490630374804230737730845769775493117464997003753311477989144665489022425861573892968268836008136545151235626519044894581893116164797286238731150887747407941718854125699036868385492950325763605134794767352444563986026349639384755905708699056206326922354680152864593163285269440913840401526426016190254904512120645589133112868611670320645415779290602402062045767014031704665250715934932231979326081312723021567048494673245617906490355176475982163794916512754540091326841239216782867319478246841373421551957608587129856731225837109000004132077544827389669891359405923585756046151863528336369533035153102794091431277378870686147619557949975402714686513639217046102291433606262188075921841061572294575399605506076933035867119743720471726909508149784381442912003728939380447822118437395130501551671274450015413569864528741864656454023199943437064192797196638951513932847296049300947626643657994395632057743071820615330072563753374258480827343794901633474252320236123614604875433238351976256463529439845441306683375850713173480395705539730375276179779281896672635346839246788528485659471555003981128412155450738956130881133142057522118219447315069949310005128376073389974934307740293221417117178885941229291958999659541942117638336261214568128234734845993459752918007827903745804345161358751817530113560919483064487354982084483184684824005322986972185847145402168333110560664622575838453520449320706832634753504048597387630405259734334682769108264062946822688557512234950027760528363503318526879485542303462631223058201539104578929325485621436457730106526269187792833748639572390566590089491719358813030530485650830458208241825651110647303007196224529505918631659254962308676669579306857335957923350099981426923722846267829661388985703511746267059379831921068229067180753091723530735770810595818643187600451019934179485256016021342217584074119809830668343551553159681808359802427445957144168095426890816405273243252332266434708299433975952589576885764765075618319679036132301391445891943186302739509274922112103314871704334355299757838186440726426429527341688320449190592122283659219683094537968655521931307451665221244034632869346304835074527216723544088274085342249275456231265232109660679574703562569837743278367414877684937956912538931033875679306433276366170658582383846075653492617868877711695863110806101254029740389704965769079182083877362264943249208791379711177801989498609010432959293657992903293810933656962146309319974175284085856603921338734876489344905763483340261432074227516157068078030025612205532291753609919795658973957624796021716464753507649736640941187856952157165912837194785166796728666253411344791470201985797931422399272222551920315111265354804255889628433095582116696007927173473900335200798911376932508169632600084914455422568772407479309997030847139305910728084432592691818642068508543889866393303539003979405349073507563417396322213005108971745744826138774986743650915866397173452035095869500382144008781607283389198920228818103372123130652239484187646938894242643785329930702868465011828247641990240582529761593139844875905832948694385626010137913898799451868562761609916460534591504319326065182287187207147325109311165083703611920803815697704556238340107004213357292217182667188406880217190474391465686474619757792593953780741858932577258844217120072294717544434182159860204609683455435751766064027149742745486563871256773049433860267321515212279472783695708820282568328653275303968465236932684143225339857293300936146277555051257182633563907619508272666444038517511633778771001163599458063775985017066170339327928365458628927791865090917598586354436496565468654374975455857119953086305277883217588011112806006443560105568552020718242044496759919867806460780340102999635611807109411937026012587366427605526473647978474879304837355351355425282813181958628484889277748619215088188162609398943421801464894229966526979650199198401967314395803155199294875386170530423432548607073642712111130155900958935247492195210585476613994409869805612217546592553285948733469082202740620053840443439890278026480228540574447668206700962964625636477200204600197594696868908205808728727955134686841584202753447744530950880302064634882534379772332959903468747984482241917855874214961832832571474668205887568808878103234063220402533060522041600964307754121206482852696015285100847793586337064102725473303045597541688545019579642723639569114717781377193102049185321868493404179224715314401925073467819996248233041479751584217106170492113814097545236462055619685126735434238252526866034687324275849749392118305733298919721798049330813352087667768753297420247587415133637150204188279594265013503843577306453461076101473779404645779057054675058106775852553336542163135319985931324740120598440879375391497931923362631894971396249939641240773632815199691190508474121133998766636848255671584986778423360060335091409516748638569815505006939805824612427726076911805500056017127263953737644607596747211407344563590794338180209009130502151882636920215876168618918880472356096682443501639346048906439970721689765490200413449176226047293565415643824614475209122237037385032754791851563416913691022782131516661225769629710605518168581057056883428041249136211304591827821370445731633544430399656899752557894750249346299430022063242392573941750803189521835002294493624500229281020480482500072022878259958396945555174738296571113344380088571477071817822738827849530496496103681947051010149608331491612440759864892699476150104511512227358352696879672745158789559279366161927255791933843782372421513625380676752258213938633688384507800718213509497253584413677831999332424121502061217644113633355050806266957662530727142370308682844993687115914206875887318744148067803952271838668440902451044365615167107763724623689922334062935610284461596244939210434929093676516041735973040874932294447892695416681465903630598671878132345667373852853100094659246478934994379961009617624854899055064528697439266448271616336006145382669871290985331397399777781949894705004415405042265639291576889168162076572866855632432093984017969018197651272014211710412055104927595310318522091190855155774385749129630636578163245889560242495647842815715348152187506462506550286383411739031815219082040203905390116171721169525624890340196228497817894119730281094699876413233753827253845730645242323169477864674248606605423339191336400039906596826319500017648864368407960780368499511006252397674300790265184581815953130037218747810803817084327734542879658128609548006557176649498611328753423126718877165775415521843007159192775561604670084497870829877480708622987799842752619729832693297957165871898583087710049998749372460622403641847780318732784035756346409155295271988729866909824176880168380456656061786471101191197799251737032945247824485107370478804611503934999655551496274331449468419233303499420558961883562785561603993829899448453864622413634153223877208738450070785473755984215045938491535299620898423999798882880401464443640518897733009268503562046434541817433280475357944171487648976753085999006223248284273139481988633248551466525901066557193484755416456503436648302913583726365617296423270889904812344678692264605549031015692907815557250519043211375935026134280228576934462024879185493336349601860673562304446911157084916664355445829505535957670887874467412837769555262076174752840270123113227529316169391378853146885808167056140756003223849824475193914526131645504631418752943645813734645913011972917016897919998803319043413127344574578012284558142385189650408213453274751253501806448978250139977022076706617205163259296482654904900634088183291591695644549971192157973866456111383510183994462042117865799995320850931242375787611702306916420607444230345195059691541017929431499361806223782985582569950565890223127460556346000827979817399711341064933316297781674205366842839525666575873791789027864824835227157977559168037434052450462940704446278016829663678795734117185284514245863250006103418787010542756924381130094573795230263164602313483660627489194189513868570189032405581285695625820486615922584361251941492197833129893444892264929749108408954392589335861028295005212280498537961156735670463015678200936471109211304015007872465536967872133160509444805724593271721583925090731304841770940964945634438948590851893124779010991127350238171731595354960343563447311597790630721350914158818087569789270992110807917619045667568796304279919357035947840753702102154174026194451403545040605254859761949826443477758877025607107134171283022971674447276398503870171003152777486683486255530977622089574765727164638521526382937309605851647604634874522087620181322602262080039213086965694409429696600951101855656267666889793565431729958203735492124467076878774711023952650390512296853134397430109329856327330523572806439439733696939196586957849182885649725286294850283203327124870673130613514669289721610806700562049795681677922708817268675408165577690882330165806706532267202724175356799842154728511197962423074204040852763401517349786188582037482049246312466915254402883207271109014340092988087358207388504476822448765111116118672209917771832599215314096690944286862837109980203750025905227949953023013269078360566269609879842116882321301690196564842702355083502344855036862781703529647574856381147237971479550310519473137550097974319267553839918735551493217455499279860520228860643939176373886389453514469468578643610574473446862002297841162318348422647872369016415902520017484673031899515266220335658851622930309494745268242586171445721628626031546811866642279689930774680123705645726288720387190304209515084068474115899126050845074746671531654131393466275185947566752349780067385018450918645702012306066046922939795472822270045356232541736852825759311877330918332663603112961134127733099925440114646973645823276339375396694897046205855887317217566922054894918798146588333056617262901611192406957080545603536740638576460598197058994448106550899990419295770066441995305300767744283860060535773186666583663229013268712892203743911753368630076910213562813069200105588819482494869677713300137622329636280010752456020123157843289898551371549079239688715813805042110459549818164660745711790477203113711253769061216647951229942971176613364386119837038029892368951073416166699035167809464851988747035694022141366250283325026876234443232213877288975185934810550453537184481957098142196173520789013654292868118382324307683166019632039347870800711278962681507550478431057082446279374809256012638165722334348296824518124548414652788468489698874107650935482763383061711453298006189458016000858540512213547556272347806541505573701504891711322052883520215996863205535517583678732108835516927441756402099858455384917535760868550894171025753528003316293612571804581894137618338181789048383150921947781750920757733475145069773522443830862900151493188890632922917825647818519224707154451008097025012082442281346211274159964498897710807318162898914494584261257417551882968331315539550510785584581624376560399606768992318704374768525964729434955486128551646686308690422985309208460592588667299293204932784373437054727601011483779665382449678461766549470608693388385116290523463348253247979399658047417281713533083820185392828963854919299266748174199653962105051218761727242707289027385630835931093078810955460303808439795437986351393810517274085387924206367490181931948875058167133637465713310249265164343218356655987737377305222009267225176698316606897803046114230203223542232759314763828920604062982146045932097684954692119757914467452363242327693228517748901540651486064159606116029040557284623868061838527274002427048636357792770270476333447630737012047484719700803209578026515740925459030549133181643417332735870567518692096476952955380356579419177440920877127350670327616232693232479394832525229938909671919422506990597766798381564583404671990632829822935472916295129997316449203703881564958981221944381510113237129936878312935858926005272123120229488383194708725315305697612610432157270583465501596092755305396718241434986694660765320267672171667710868034253973529076668088681203433914799678900309657492127548268043216055650402662710452480095640483033402226586727961052087483472880173061655529772595367101090226718745422999341590115151425435837211922804201506325957871202981650692592815688444519150637651673039248626803200591520593365931729380498435675420272515952567728794905735231064790906445563659623032784495541120377908138007373800339286327600954583167424525803820559262221081961023720545836325163194525873139482810274368803198347429084839631865201499864808779961769471640779261289549695605017727915781231784370103203160026470849038432047671457261418916456868452895319267848063235052936131726946186395345298086972828841783092943823605835001239692252211101998357555145700619616849505225238973727897743941196625533553234863684575932914161564080277456781911699322738003703267886433067734506817621070809441447740714855557196283499613916713766106619726555591424006714908293632413711153883574102523475222371465653960709264279210377916775298669810367325439428676842803284018758389581322939285238416581667772833782248314712246931938907298605262487365139810271422084145842307217258105130964598306527627597165188777813639767204606892333257376618099524129000390200143839291408501288875673021600398311111849573302875004819940887707276437167277972709188022402880870819240522605216564184081365522430944191257631569825333930101732643277522685356713442273473854165281536766409017540094172895889466752278397461217146931211214501534126220548507345790922043249217042082922078642234093124930053336992690174711961678967223035370880324981655679662792651200944559602152819831853409240794438211945678177450034426019596665017833468721166483057781341203576602249086401740408717584763158502782648864072932114367323571982078958962063790187692019972257075683563106079143565605175364846133769141555781042051104084975766697088440563432644648049818071545914452912411201237424151308340847427731189113326564412940868479471766881394248649161737026280654665628905162773063234741242499415546429885106884933046926333892460729658542351635054831463895164969917956527769992468428991908327689356623876293638524586650738185026619050118273507610796653390466584384909012011590855220046060433882219595374612516591513293099775110435155576933152432644699999763200578279296668152642502286411560771180944874121190104117882186743506088953219199272995944379736749001263054053598928208419308957041601326518500289598470579195898094097401628812622030449605342752839031425729241669975365975271879920945397010083679869349678573982896504314035980650757596005937736937178730094517906934490126390989889901873950579142900383004898496691056758387730776059814284418103770408635427004142919719031956274783842523448296868601242759272013044646465699691870675267317216846923827353965572269529311254423544820914993336411985719474737573314639992128378136710977575096849342301722661739813722949551370129677395598076585477899483001902535958994768444611336533296436124465439308630144850199457480002449822404294685898943249368304804566765397800803269491623812946425660022660370488163967093974496463165804412966430403286023173097861082518336290340572943201774420171750232441441855947743788324097820721368961095731118552568858780794552107620919965544725024248524247391284166245669303896541392657285136010082982979317518573721662291327398647728041544057822095721065219997778593937680236403093818850752352930258864039246041259499580087974676283812565122197608875976856704745334605343244096174216840219795230473767049035975925797194323602509333614146201667697159016147436277452653950716209355405293018274888445279973571044361374779689930202818549484771190581154428055637781495940192925756989584895989589593586544914671852213844939840667964287863367582948250877565586813627761382689151436882754055929987913445601115086787766401173378656857279546571518293754467757702394806612750305412929802444489059608501452277013944337135158341020449245823428158197712474354236306199142367108761668616209534814705614846602186856877564416500596413258313421230976298842785903954691188218694014924038568194162399872056928958434312929629050331356439237220205743407209875580487098738848972393478664306853017099132237132486500028663654589361076980552696930658955882467854004881336010120961599862519354826062110701941224654555986803825595378357583802700318457123127721555498270411123658117458889045151675041810236182426122440609076450178377068851191896732176698317245946234358789691780635262078202611087583580144940183406998409852239772960953973731739977891144728869052529810559063818090902492133866897065631442671354033460550182679626594648161996156357426499897169900781290106171084711568082489578171804953955152341078703599760186937612733876068798587240746098927980282372875388353550429631443446122904975424016297255748660296807810206071963653930236614557877827698386090152227951241768381020134776360539340739216362663282090598887928990185298488725582591958613622392541664497298480315141147847410502661942277199977392335127439069432526033389785477229860822425182675908374158870623641802433115484832036143492744593626786982210233772222230690322840769601425230883716537534383048419434752840621161418164964911503073949817712314115865948400096216876433257056348020196989709068383467662063093439645629538381917789857049333781835917746427230986253012741410325693878917242594277908212553389514979787322029235662821927476896057403756380711754748648470297102881547958535242935609212029709131029397330694411535927538211231019857282011739794381782096005529590633156591285754588948489166267839838132242059365093055747374863397424549375645461075528964736408243785675799103321705959699119229885459719361551706523049065161437440600027370696712994549656383916493052315776120811873209322961940289783096169440049473243029423908432231142710041229897922714047033846063632833190858266555831549733704738302785429711391675203870124855665145691307849303334158198185596971653256865268289785202384759721128767584458252200450344313669793124239356144561098451087692529182322246161223352976089600725919680243290670273741031174417466697381570205298757739081854770450259643142239707715194618865695234572175205654699957975638460898058776239405235662506854675216025596811250530842634364398464945478005017793991347227656194346004863910333232621124472795991020830902280174884523066705056421077315862301889146230444927628554710443782344130727775724046760654375477847368558432991808532840320784723588029464945547843339047927096125340927829449695215143959631187729562763961840073295229713971013152518609283778376638837141917965183152378611289909203900816189032461835964966922061391493940291629579371098335455307560144995121187957941780603273852445838448578577918817871519884240401063190042074311892401373503751955992052566048048895181130879213797231324159708965408417013972467561490628836840963385234927918896562508697945031397326827745010892350519393081345653205383307001918334985312058499408743597610499905119787989840914222649065789612714762455151380061905504601979118954730101782369946798543892385457769342366296621414225186769389226573625032749989534791797340555844263456095888845599046647714374123669999242446910802293498252066029342750318139410153182529330245313691923247685397042973412392047832558816739960523848226272707719242705229512180722672455273636732190453890681032669334171569747655755458847671881725840693922192172648845147795194676007520206719726988756506185093558668906369373090531841746632050627084486175100858749164021187591694970720379872706531402348198761745505957080007070771555209711096649914261585876004312189193922073288786997873122860432162660387887347434136783288985638373676243753605861760275144061174941312806920836194732948947500320945763037698398955394432497518568330201171149993838482151738808841748539876512221812523314141455291599369854684170719640238065374250815841874809154433176041687249216223764697361837323257291688493361181050369667247664096384087930700625657367671590570467096116217404768874205238152309195411367094568044013604934525896425157776057163861692471358452394517082397851349329872384237627821879637894134035002105299391916101703515577711409929592849797234912706091399231038467883471473926396650837304732164479573694498435908286009370882307753301736720066823355671705207280722663536761258437033887342411040416971622695353127582805053552800973912618492998334303813638905758358926913969110136221131659587928764438135080679824090234251580071555666324429286063427756120874219853507155984765701683609320890446347805837685054704449638461930651471006004380969329867069287432486623059976059077640222342098645483028640058954171294745493781378082266210533193158329297493713661727251748245477186527869758862058010569881663015466578981590919022601460375564906987148482726073627390263916902577737900460521411560333104941333326484161265216710619553279496671041219951902358473258401716208465922103313300276238346774285214440237735525290946854774469180496287955958399126150415825492247869042401684535023818942282552045487491792235046603343439235518544911349090571466919064642382789181531983934130860637963610135742862716967590927219474640150332620997061182193124814520579756397736055049973344464029331364886449548629965580792629766177391216979235547473763042550272008153599937289959744514688270227776542731199753365183745338423332298044885919372539193160399732906127057684645545224491513235789564429745429936283590061925116887684543096134365272353638332874303211866085180140075582270163079791746203149574719026356151191420329470918610839644198695493080015920074798044971924655429326284628862226554806934699908441756334296883064214054385362366665218289476423324091625913546944192453884686331957522017574550919615565718018390309011932835411389419949758004330192378288310128606702713725534970212148476244662244420455846439790736459247540336875849702458850076745953983734702290833910375962760844850841765344742678718876403467892075372245870643598250939845032787821497751378607340866558697408055207206853886619075699357109604487162733081619694683703421078276308457397865008812649504834775808894432760399957438538457152487311180148348479075893675064431139571091200338217752802700752181526575988214675740773669894172875986405328081603044760568598143135980180798111826366299929513399567310791367977057982632445848710923493323075557389165513767719124578786186319723417231532002972877078832794338436695074209220566359187073623640630257660128424629991379847597405466249903031084380868956604689483837384425445471174311607280267790727911003516630963444846687977643043907643675930630572429360640551954195488928830061227838972990937430038058012443896499668996340185707882221368223381875718949611397648454303718470524913123894696815924873060817410221286979406581039071771878125762173729367327274819280119471093737700603958431048069997915644852723745726066498064712830992384412054972295922045485319853868548935517509613358256558892074186284800911573283511600003286656878287401668960659607997500303672497900187551468927958434259580073744143603729178237640881596000864233674524979246262846690773886403178047846777548886289457130867077687825284678873229743466066103059948215838406920983428614186885491563419489766955016068859819233301889237205439952869652258139406986856305286773358259105518811857158906161129236411829743451585146775375025230245374419191022097482795095858149593620036635597218276920115950319312678572686633038658031191874456043448535323489634809208787522659416625410417136410224802341754590142181539891991357285999632465653582812976077270977957840057611143024293426472718345727660077011806184847416359552285547204290638624885401630049111276136807869604166742153123757591111840884967632978458645321795229148761833686692811277616200412413463327190780358298264063049624403438475495532210380052794621187366123009265710135282198713525428650954788860062456643298576947738629687287987418379789079924104029846469267325755148483860921997266571971330493719472145326866611905152636376297483097378280607958712053000700703127705550958633085021383366922753417566371908098834384122622797004287921894313739376074382913271935279966866008390102461418019917583112915313792950885567378475182930922949517061253053800879504155337014891515892113887369405381267005967856519495031906522043862326074646943157314978601881775429811175412251111936053458626855973178404632386849224723869275962035579139786032847236158833885440029090897326902901553257081741455844214920416072875713999450071153421753421800243636479791228493345572573206907090558558728923305713930737217864075169374378506796113593689774664656743160041119375144322617173912817398592620295436999167718615307582156745841163831556560181542352329958713435562341371433417769666538178655692094900609039843383752381063354107413417870666803085914875551398518454079544250603799206085001858607666169268174560535076660134470486413004543776691340428276337424521113224350101091139899136988624332213317320637957072298797379460300546851512208790312888517541683643754901355238580253248301148909815657949286060689286863882357136882744360422897170303534858255378753458615249354402452755217912325695386860771000220428499020214790828259882877357180567644213396272198130127463561226781486176760480237434964100521012819951651512924061172766434906505052723993348346527426224775578853285281850553350774276568018249801008530375622125748322995037930160454972263717819074232365117043355112576690942661858858029409798684387530425751679229711060467532703668321134719456596181217108672665520215076954893090719342084607913636389367364596477372072521182841120082705079427957097694592421574093014394778781572420157307191182537169727973456920732138453416929810887800525697245718565084968362455568406087303693401986523538849711753833780503593199335545018736589048880429670352172952551712346979870252371293884727157213237756223613727846971073208233239129806379584091091171959072825031634755446481571373168213042349463447900699046996535269911460114740471042480337035638886393669395119149293784163518034904382287007713836674632386305855032859974073898627047763036571765864478959070117701387192891539659850252755413080145044488983968649682625374639644319193336295299704844994568088451420149217784456762076366602697158402835040304565577431350606306644972645679479119081682307391968633217432488959776274876151007009280258632852861694828151021340627556541173617038365513144660619029345155700444899132909690301102083160426708754053087986551719436031440560743876757566478161402309453042829760157033500401359259545490790668299056053238236246066708781789784864187618709404247973797214832029868384043487152310470627333585720389125423178785956105279969359391598913423616903848266312963627050512001766684349746172581823216199576775365328886522172792021945408124403832188321131742583575889187993840376996448821034689686495253754038384124839462142093885954868071986772916059576791293362851007259107372629240536250769355748217111503641772138151385896477330923543482450236411826194094496227782419865489684616821062383929124604147382935900620011788190105066562532552452071719735225961625481027924388155775508326909534858502488686221273631089451017364891784893999529297528768782707025208595959903243724152048058508175571853451694970623099509101790179597639508736639052908597700025251620730537540189466614284105823486459640699532107014443454073926668633723904663182160177607537031100378293816943123863043101333835588454058301629716437850728976660705365908381777064829412139717710156087126161253749786123653524867195484430139480372857983874840046086845605026455936543263523376101664619384978969048299590358248926514554691338313128803356466058087726121174349848970210469155108053776159363599261413133585146652882581153187031675773792146798808299050915883752280213646170004650694049431468169661455370065995921769406858486589484024174710479770875315421812102706442659695791068041839495999942508201227493867073231110601422195968575502704267607283531472540453073995945822580850663230409761852518411064954006548295647836347297376052345506361177639165900032960329166430396222515920854749302945373553918998283707258609120958819014988350332187344460467543164142076034644413342471971956314703681057187742968369546517100887172153568932850442318882432762240997403002463505808345350424079778018600556822452541462444006472655203377529422213180465388934952869769007852137844919666394940918655281020544485715852933560838007315581815126158071589038631294205537230361866863132133726912177108314663846528793836567838919633013839621097747280996640627490148783654524672142203535174524459537446596786259679572584077413832725670832288544483079256693859842615585848332394868164260965541097205391088641292067900075459672237467931833697197705733590197990812059230045467005589594591070947747926282596315117542506459534441288684448536025929995868843079570316424572110661583628472898167184166133907689257810454049560760510202027564068012901798113231136115576456588641026802434480264105497860390077623156331212434455661581106495500538227408069242016042364805534601785013673483781576322064870185965118115100306906732736976022750667991500305035475908426528745453009271203924800738697622808166082121854355431468606861005279267159985695033434477954864524394509121354507166844263232527425661147630095452718090298990342129511226442985609561783547661639864386338284780828499871061255448337051242402004673399737905786772971181270912127732869312624170503541671422732560620556256868388278706255877333161182443280775846994932270859701705916247668154343251429516387040905721066080617019413874166995025141664334009104972507787962790921594098116203942358352323803562737075215364095911908974706662377278359765026235978371200785529316736424653945671368055267240950062533364089662975824338522199485887604652027295662611333447175858245272724111957786163092823702654981345357910713669491125133177736729108115674475770056683049694982429773845366588179880103006725952088367987718741533849420469480928873002850597536561710935910259652174619690880219349993664877514500405695615420252148743608582467430312263479845154753983718388196477429783655899151045686634631412037282256089659693602274696624204136809346093783879819482663108778933585542247508794225514079268975865767131220905777528621646112929093124009379879521442014053506648482523652548757131034805581865750501665994146393935129774764547132390769449188750410260209738951899370423238916993405227303448754678356701216486444042497537417099288113067435250519508285481567147963165367855217609756378982452688846753876889038815437684140491469334050359060626299971873201715464431765670070335184621212410159559789997563742439667918511290136816824027922879063426384264307125041802682503409548605411523727931358376650867339104925360843037385486431307426977476045985970593473991289717708268893562192341873343941730128892498446114267579146183298721735336346094918649482885857456936907480244442138898348546439840359115775551235770151793261100569115036599556828734232560022270595126071718390199515407460111150806646883900515837150071723914848795319827172237371435116627657907316288354371306594677486680490990274465353917626805770958898215417399989460270862956545758857990729079964084331055092136184685958589606726351939970806576205334872769572748874782525808379765829239756367804753077240401763562758963477336096000014896962084156703355543537212376549461419839677228155087807781802148744364485157485708578512703584885153835466796957026281729096969075202430828458566706463227520480714743636672607762164971603356892882494202286814220468796109431377048158769563004370860449610035176832728754247076500570159502064186898770856538494336006723489234699150688769791408067346787608818035077279915980099836849507189576928387771448189490493557649778310532294983891247627795948965241941606759683483248495172399480729542656001229146949677499966002549039588634439840785980487885171090436253556336658422762954934918665955590454250768854137181497860743857139917893010047013309252744928084759727545240107041001235503892049616004244792469181683063039874680322503244361797131036491934788886440968581945828822398430855105332040799703459718718099155120163642047556976452089606425494965476814514251122129678714507273119124139571653524891412963841992732013687707076608883037811324721958640447173646037579496161947282444946096308388170906256853086497468603474722182061664763554547149002243440480552324065951003134238525551373379409715357167619126629216955819949683806619424612359731157246242482062564233028120197507958121681229886741400046797268130640091495739360638070768228119227475987017225795054423178734091256758268796003583454589655022575775465359993901850822870959112260546804781660554710964010364330800695374591567207309096531707621301812347685488965650671835140711231657646759443321125527946468062627066693041278453245918175044491956784356489175170996671130654900678727896208123037912739300829406133349623185333222585872263411880724184027293606504126752021493306802282854957065378704667600375931766113381158250516812715459173704834759775168979121336822895940073296133521217793534992173744404955122914216103084114531922361649283145762239730015642984732376574111391477086358424521977396164599379684903858954657122085449327089761059552301513283692120989318464386191470789046635061340702262409786052939175978014560631460343142884266004741050905942250841028175572151391338102778779062942155341534667325681587578341986473115832473239813636821585431235360695825648068537001323208286231289262617600774258303829005604529181493560485896268043528162657244763837783327230198545274625596836001573931989208725338489817135727742262460387292956750701238957887481310293085052205810565496693639928980932189894837393825003830970103366364921349982296748028894769844666677932099531073852833105603764989799134360263957409177449150929457672257637251501670040897293229418341576843591224774503435295137897289262715400241899350078246624712336005514038458651677001812774298526947753215590311344187596975589640762310780866593817375086682411711622077330642868570242651656753298014272778589747903487978128490422697432769030126698105763858037233739198065502185171072618489258231868969584854949763071866562766555160954252847333087776335182862301344598977243185604202312937268298589442655722516507685842595541646890707519002009779413957753991054570474293269666269895468035155097408890354674276268221673953870418270123654983637345404983414080320386991625135969211760690563336489659700375544606871854904059403507210769868292847783079091887027105692482743589533950592487094774552437131653420518785028342713638365672461970226074932038613084398506998807001625267541441210270358586661937985620506078238389793813296392937684271953857393767605353216820520357586665167690568463225997424733514330198111794693818162681029898353461185755658539565998995965272106435360226217609391887563349189552239278814285629715614108327788775643569233190730171493545524128578471194334729169210944857729025452287975766232782641616966612563446449774061863701297195172587586241063780669196310729030021631474700582824732082365014309566026869402910503676146477654153060799543871129916766316106562636689638790854438399884195080792666026624505136388377641289103155803826610300274027096469854659246829380798603727485416971144150589334268988706740039492000686265203278912772321737285046437255132963869956252437632053170603352676431459381311586441086638548959845689793761602997273482301447382727284740309977405616402790863849187054218926397688711058340795684283643452159113088110663079698624991007683410044920625515648198753900026731545099610819429028482822418434091964954827435648944891587052210975177830566126418847758988743694062255215557230395266588952026400667725507901829630694931197027031062839944231245176566104694837382961190135282814980291633679059945442782979632982392204600111299190874200809309865283250243576742667101259342933430543596166152372553478413071730400795890378270739085268383948980075734440141640443820126096169423091926704343159533075347516932392733703411942398055421812345474239779100682662320828114318403380299730911047075651054998706031402202648303109340701116411350550446807012958413820945452232813781761877942685806159990602248024828615202179259111921171948067531327057442265211867096572062974583544605018921722618664614372791596203356015034393900731996904408981756049084056305004770893225923696586803983958209796765405413831516855551940332510349345485602639821933195228016716142568371788835167525885479070832412702836162982937159127666310679556453381744887305143987277187516745886349425330087187925159835711180522357396280504251967559398728899624402480134905063325177910799645071439934255159984588171965905998790037612291027235016283448629290973616892169936944270558497634465536048220838534004447124249304693029331702345416186043088160098028988046227987543410704499123389888208807385846483822117265136817202669708363081838449699347254811010791910483148327022661450766067282659762155289527701572029953013847970689636474039620726670037254586023268663344341404039335427195619622265946617179703437701074059677485670022088449570182036070657977150254713533475974984585694190973645262211897908389107742268975741574809139965434142122168208352107550304697467582654306390667554313842732907584308554996047843043522034349943157218476573497288774393428535994453995164374167693252475456174056718808450607725932468689533508547202079151759049265910801234807794084157833041039539762195008100483337851355068205808410873502774375691786863456343033106540815642888607754635056219502250966282427510329858508514352781145567348040043566579418134494551973706378734613564923424477232311939716165274793908377995466565529716723300703368467720752999354820192849918670780296849465502318785324577567929200969463316488201695328115051948629966868224696317945587447711285221531517012417526367539868185141364270202572382591533603916601626223044781158852925267353642103206154793955529709176980560603300266134672501864107730882123435555154842736779984067533074539281265414610359116007891398347872068368208988489563696514135709305218024077350081273136714659069030686112422479252865732965352385633945069013468286607922110214714633093983350511228861336863751273703126474440168905700019797392446857308160467410053443028088138068983714191053951754069162509274496088019379877008641981894691317426957814332828575047886888287465481558867009242240795836701077144672325976436628497187761701483637297495761326177977501635313360378902172195444349650131678556312532523266000395586259896751157003597050400363762326312152971744832530381514891253311699133292189586922421823773060106934229704045223376302841162099074113580978712847716061393587522530326840005008232288493631998978581458447215018218611172860645232585657048608782583862267624875294854563614989104734250453380855431894399549848165852161006447689376262592607581936090767549022156425666201178242228469043435100923049878464054117051898191140293864442091984952054245567603522212670560531733440518695757086188317659461244474124270310849168388557398770659556648954284973475535855762367520638902257595268145858949499864086068941763919110026085539505122026554594724645364198771696104864927975913358103239489310925564626066051683428548720233181045255609865722720272930999953858430076384436569761794944599416037726818417410310619891560023288875013718660067627009387779632796318181363529417537107857939441587244913250509077718775894977018359644996579002444385430508468323042831895685586905520313118185539878866288251497544387196670532710845661319195002725230329384828010768163951715028104628865048985340755113996083839549715937530689196506581389872171627016432028632634257049731525647483655484810461755987413516215974692480848601326716400538020814661662340768141271078853520133669463093226749871444695986819043659451315621356007699065084405401994404714003405492936400696496672658209980028794688864754758377609273582569733855593018338061694765843600251159929819345275253627054925276723717415258606194568270595515360695679721297597147065090332219305980612085179832684324365029156624268075103489400582033673938871448009243131568431024565289381192535950248148177195644671392323559399139599278024818183093702852648146352299528139815066931122150940657257881273681015525929637083027836251958667734257839573995529299392838708636207854970635105596510728566303576065690470395121015147123962237826337979397237983988725295555321919451535326423040018998989097928172214578343931758978673670283508039736602025440009428230190287276262331481775568159500229139341755344722790383131025044352863996661209456472251372023096878966560200476120960543190692356153144306791548403626126653237756961149175079966897863768711763099285202647100400982638509260534217371313804336435731587528936284525813139441642494720514076504353463371963842694882056357504699686741049189152874299021104153359788951156325441959697037806988335921933238561304229289459989085986399240008565071697682647660110844140539014257449433021959283783740136686102711364630221662522496244092703464294112142520346844967066480726335122364177884353869339698756299636406699138282968953433144088194705658477738458593803873910257441191565682427538730898441140710441193604483345682023609424181384590044338392045093229063827998134736176447752932014133387048608411089918854663153690156123729347965728867661896155484392064432840601583664199679375968444775020086944685864241056416014098024372301469329862605881895159050158733262685188290450952486444796606736399130173473258542410441504828498908155271706290178083638909101889048498062762811793402058068644385825863110576884033147822511933405180642518587742082039818791928869601490529489420843142485891937500701886137984966765698390748299771639261135709663327078641794923098934211941484519055396701560151128247759549819326568740197421782112169092609346528805421295266304967304696300207751731031144827052680254410228785599054278332560438019657779848421642438257717415941356635703545124763132415850291016045981808352551071010393159826017273406485833217400254751808516178867768272031716829465921269256195861873971593537023588608454123611475521662706591864577622639105687308600484460691695967941688863800645128341958699961979651711611186369397739875513318157404672348594077503337684264955496598777380870798871225450739562737455402276673657671452183949172276701649533101260801717668015196739514642392163308967649701227328674486563721679508668243402112843909917963075566583813607608008034043464506085317344970468049122447194772564169941752206105403441506156946979726321805737258288199085912814221133985429718158865102311023513370306800953442748792766510213302480674651342500774583097839971506467690325304270348927091425701250686501413812429948723097863037493472190540686622174655096946408657051809169544358364953166935508079967735294164314947802362221313295944148043483879737625031400685465499539910494211750131243697620245242550556606781196875958820738109451666595239978483465911751497454656029740197076809267576041257251042289336459362266495915508979641852878701666860777402214481109792167752252605036873469388705921855965062588431216979674617031197346001658638987395106073424273430523637105666192008305941371943815822185615941791906553053154621440555330114108901833422629044556910565810801300994483793490302926724870344558309266880101502564721258187217615128583571422127224784513485685060958962620967199327300389563909147639423743286473423824773612591283171732280477987357349859673896705326317325821093426443646949787567616794460031923973743187870702152904819736916914923832773836031743041366687803308119142869894827794499841746664121452703854421192794768511273216510520718685728131197677111415447412627580218876775983647162651965434987249278310150133911332245277364155191980542269646223112897503677990647792423006863193504658785023001147464142287147394220447822379593685315775391951483654851825364201898403028491290488699522619261464018408722970324183813521689899693226098067448777514159310297045280481167123804317080708217106097705774640463882454391981352017396001442100152121923138090555252178663245914404825004642101585542179171489566797236071144830883363370416575137552095686626759958174712409635221148473155352812125178717156871781821550558997301229845353917301088247931076863913857568204032014277594429028172853281398028958875961106220122575214115863502077123215924181136384183396749298371898633559659702107668604744429980406939577968416999399957766155602376024443947944713448460090011155430982675561609524443408644723008488437438254940719867175031840612483394734114770084234673005278818245340418356620169635773841517428655255560070558894342173911135595198016474202484467711190023195909985221895784581662704361272723823271847728022581062998693901566070575512713442152849235586222739554349307662713421918134720614852731787324697329937037439877502169817834331739099475976994547159505558350978109184630917917135917176599788948062385154725748389108485915850764305510898604472928270372832675375466651275884069257606844752853860362272491256740942271565514342958068702770320456763052162002672927656835238607571175419139198722487876370072822506989547254736284715544750601019140193846203192916166316738017417638875238238160718313273990282354617626028484478615990086655387966810853657830517752421570073201074312118960226010761679119740342652061488242496563694274087221448436841380450461237890644580753735770282919133895712458642182146599713748734406735631578892465907520973042911344366146377036278089551864991813715316620736338800502057314645023439543625707243706179322212644745653153131016851258372317667696068221236438148366710146016879053723793526406032220151700932267315642113923705853403699643993247629014443050047445342352402397885871114912612489774589173271414218412237085910881215220911630502581678059736212068750901707895716063673671359542377618311707345382760072060340588888496341204795084293402973856282284704429394413044988786786700460078363522563423104154857982796147623949039549688807402134540711318752653383378590891531980456213886798517623887673945043555169183848014557965344007548149150566632477865881440386513824514787103067014273266745351972438539524319714404834142505925144266604618610595274213545601470133834852322371388599840109841970489331470786953536840420842254121529531352792085427548873648909012254966217978239778325928839181007351645329073450820689571842275653494927553372826965556587241213184050199041265829089870164948985903742253655917585076598103073368680865892723063869330144834634029785073838200569658335704318006755568019241544708706813056031644087300583359703353499478568733739649930826497626443028402103631013784252941588788733602311737860361128010733913247877221574365908826638960875139967187633552319446917727031262861931200010162235621647023805318038547970099847263837480291541428855811322148878251096977994955256598429378601292109065859274871645117677915709460823185629585450889778223728038576567230080108951293875895453811762707656660891467457888105764857550275521189248006971523161989836183785511592850893737075103149473547168049858768791785466397679324267114850617338196127976365665979177709056112417079002533325035923941332734508315794314205079503904305364471098045934010085188103617296885778599989746823803230672689415830547826389235955147243508048854867276403220272549990052097129833216909505017848684846510816504012818401715927979926784233319760372139512666222232200329041498775623623004190992820938717961949105448116270317395524039278902107794163605140542065192608119892372930532450959383847809938722112292853894575384703117272951328495950200582815340298915913602553116873372363540946846438978923038206028028362256955961134507314081110547952497838457530785510206162337444380128509418033426313677752209858465670857655007438541177875864181108756633111097325277676088833485445849521109432250690059625562953113927489448719829985710463835910138806159686772546074671714011702153807992232980641264437357437280228538648806258316340867617882238744176741264522971264302757131565630856731336631933978332821991177470849079546814793171792521904980708739900905060029965829009876857801535635533613461465478498943356256912834237536457674663827794357832079505167708621557969808743709699667337052979679492582228579109062711111598184270869840745458860499745349347277159658790237651901972325214531558401862543036953341890781324185116578458344578401527004549857344048571642866050519104286409531389463133999266146897777192486093007526798727050380328902552370429328017061810579174528522105029871100340990557226285664812137843512793435020874547385502270378169830784418549469141531005139176384996816953980016198480146196289580554354161115407169401122534031658024136626286673538659213928059407806868567518882965612309424647691150577270565605822771011274029019092142208862064428823673241240221964074723092282320174363535921940273493259425169113729983802145592657514640843288233821268574452607244047458179181560434799715718594252562493131451207827994110905429142133679167670129037949900919794627942025191897187491968724424180912662064850882091404625389657658647412009144208591605164870736658480637276141537943649772746334877874960966144444190496035369343510265635218919802017971221168224067274644625380785447551525471079806880176223621270093519380759684347978425767595722687543684834039828099107064991923327474524563737764748324853062919230366811004988357143718287931750011168084468384193381853160233878317406750357812911215233191646210566730154315070822117575314927257959974308088578053762655248193324052990279709276641552021574607561850754116379354650991157411101734988558874306272751768115286689102743028059907862573165772363111860026363097579713406922157771620989137017736277188234775577723144627697934349115157253731769675029174900016685105730279913321555342809482924755743310587730381411539325994078120336955173271695987546631200270188092852183986035536498200402245567924601093614054501202820123856481728958154406481511298124510641318956466896551489547802262372171934481191302909470712273802534044142061352649502947587507467564792566038542488015348973682596734432730221690276251884473110695898074109329931879435831020423155456112014461381201973297064886589748307460767754816540331551303006174711850072090963053075193845923985350055948029635410897720930884011020723174770372365377255610107720981330028213332471239167974778774723831036378443369061567883855620937332928269362616161625094274042758177546700842152511356608354854100305125652131400394307491763771828472769639281975791422279707534824689878876206074299544670438586609340545899550909349004451039035168592727639055306609100789040651108102235395091070323242201623148526823711702775905620491201633158347323569703664875783210691138784649271077305014369299773330195431112928186001159753415765627267862668386094311823413989567789858485077811837491177787501707283083657998541020532643307850588859766417170176706535479617978976481017849735396075987027605973554876932755053141588282073186658529256721855094787408647083793373543858895517927471488305910377529536742472694103435921886836509670927052994126006875280445720148023126267756016847669254427303659414018448696806471792360766579368836410397424946542383661017203905856526393665822488093793080280758938424670911126204900677138444815031292706346979928714865688020662073299022817579913716703302612637288530939773334685514815977912340919273123442703286599475383141695682371233486523471587337555460274535180776169819108004069837685192139064885403298424163601071635627939133954410292061522301220250484313685830384848851980314571285503081229594644730308715625035293927191336327394568889506547967631167422285004540414650910475236818090822608229975464263461221186104810471654918007676585376066547518953538670657180718904713927460103079466905542463829096948687287526633598007437427770669818801356565092738257095816185904187123612552858728333860373262865700446077615232053647393982610533496413466498787643669893126907452843723771337918957740827065206902643794475902663370942108067296381526485711187601213845246454985624710466310243835696940558713858469483417642429481068796619470500733611172446203887986992010751984031733846168768912892284602478151022275675334023259435770219644547757156694983295143353725238721524934088268160752885913065979808139461603233986991027763202692027001897873049748777756366071371786036604976493923885472050764604564949716060149969192453340612309545986304520426413401777186379911739528832930361847554620828585777239422807580308781082766710219318591194695382965121011272722058525490585791277570553047853747870306912081094540905160498919005195784016334366971795674352984895949956738736387932286110435633018768510360471680081363281448679663615232417764819704586073003837937415549007618524047454346304812561329137769534647859844820166547955741937822175340462547229369734663339918002562723422887689889315670170148434058042329285804880076161301956592641199832222281417998660421786796905201499079881226912160242465546371503944327174740938979774005269015267475593438494375576111232783172239583617017977435279706114776914194789872792876374119536413917750997032770682368993990260125730352106589302382947267622397361338476544827799718709153967691925348366749754371700634711506982065344685807117785853190100218572746590590828844276693802582054112029589338384609732459740041689909848665197677428527017371707987457537265729566766319144973984028017525314527305114728901390022870563977354962777064319381139269832091485092348568675376624520445131905276595884447051737339220832800789069387102486013671563400675867341977640983812255484361553388095756223014112108988413671569870088860816987497393649643956364747563556826170322932625130268408502121309552521710481605583727138817710611909644125077344884663483294861948186362184098450422493651943072196566347377311887949347304319238595495876635408616389794430012877580654638266781528858548838145770737208241770814085041653637891258741288551100825369026845566988983308751892210652477497533070097752067503346088637113529490173546804763189222865267546856771585047702993955060261685911953282233870341795463717960884336607691842730244620784669704482393480120515485864081306551215170027832925502645867160054390524238531014480631973576335084915738775587026832187291421901876363103962973267243089995108216748716475164538131642454330435805521558262219173877908107949765111063151590848355740527946191217612394190104983437939682327780625983404548095029834311919907139229922325724116997061849659305826696637686366056798594142882818367269075719038013866676157522506309145799418700034536217329396809030644485368784572014492827942845374042412053744079361539235516760165688088069224685429504311997952166562905417655558230108204060331463415679989290330505680810024672861070048636318120505279753633898656666861167487325640827798251383238437281954972539642787466565423173979780883222773035064755229064218076028154357953419288975291597190139500020942912769502374976099543529493945139505406597151788215741163536730502559809747163925631005710496997477360595692088124517825101592918382161637734539372538797681598643453079713058942627470414388454977627564463242451632722456649218405625404978488390562694600633454900225994311122057271960136573431064008925556903710027137745408543788269397674443433986567194651834318416624883429821791532971738011468336038887488897718049389225778882817066499863358594999851604966897206993667104090061200293760161713663906673479420224475865288728469060081450105746961684249082781997763297337880439727009097248317927204891000147790642411880750471909411893609088989938813119027803113820277952800321167680896700815741380665677589006242684797062839412198444244481267104642923861086947467153009553761765385358515517984246105827267926441565527386764638234157970697154025162192524112514038365887566507678573744974098587046483547136742121457169950534970333827739748168483686674756055190148925898317819205917421544540174494811696971607588134920004879296088481834796697004080937329205474097406415589472448601962057469060136782899422873145635782970447714044100121184049497401509310236426242267505752494879601880888824826123030682239672729247385612918577932051059928637125498998940703794402415265659907667771925850183815283239773941005934941192049198191629527128119934499745307510973046393181045290531130245498565159325740994304189087711023216900935397553095982030452711174671441846408088007254467929665083017175002653317890977072491059578510988300761528171693566563760172642857496737421135294726829730046044509976492590844233742275440046186737242543066619064787760474776355059950888389848108489052147144565465467296851820310618054151606446016909640853959811765152625715227912807662620683820161842004856757073081296453327822727571984514409716380226355163268500383246091190459156663958077204564674885038140784531200025162898610243915200235630569355305950880085793764394940751919620076296440557507899861768414610308631869756495076909668602341811817966874547636103369365272077905676238486313044050554347970525123457508628659187613774907623640329373532384220096531665736372307735473774458766682015219210060628674138846926773835054966845990815835960360035479414722328517083050635925969930223535298456366049429205683749161861158331765436450787001507598758783599579906121138137123639241184714527276038297994994782273259321301572343595418318231979459949493723219127607869670623847914689438841633680306873636559670901373053292097450749182286671010993386213309233364744919015442048904964213554817435225388471082429956541635109601333025716031707112878235682067142910427446253662308084112565809841765568366041117378451945967146322392935520111694765248745952366172809794765530788744198040462202137666809796857810103250828391360978726001851370368511196736069156167204109912854090140767508115538893322812999194472179889607507674296404127676908527408050090164040530850875165390872711854184298053453741087493400844568556287735490908533274712477836945948441226583256941426804820880825207422568900070410768114527103328568363840007786141020600820776231795780645588849748977792993904452077067330856421898434989464986897676176334039195334078795377488428824108018585960392284251896045670212747669235296614893171613648421086462158806109989907962762728585279355258840181196005278153957386656526643743267331908379689909021054539708360145347909037292038474180594298484081933629260357353767904145176426292032596794818316691169955478449247433495482157804972232544095118594722896478038547385330254517574416374624742007329225706402130387538823009116372234125723828289259595167992065624875722497953349351667431436185145902212657838982437691192857831385646486494817141654365207429899883770692967230821837268338154628947037558860010422276518197951622827732099713529582302204302649721887694234561179959981145734300165980206855910729378151372822561102178698370914585134881194942042982069620556458531208614911230716866102817457955124832356734704823168424069846550807458204055617075756149581206098122161445631103784160532780529243383961985455857681591533553453606273242381027293732979068118832059947074594692295925819893330309680320938115238141042529760739908540759607206511105822825415407145291903890293772955389799473204610696207807986202194619328978951474520156943461327883075444680573232310831296388175965185293229111435961654703056265836361349882954597493130577851095351737918282324698828449047222378423318539845599494988922573511763669320774324183022579975339212219913410676388608161943011297801688921865169387042254963876761886003103645868028222618560857504335089629849343276482177799500053436949911529635591880651289930260249133998461030711385348578694272169807074311303551090927387576083268429045769453830079301182037510248347911965333287827850303563770662600719695779429812651986462713129463715293379007578272510617890180971601421168153377755839566229054830225211948874196090417105706066339149967910643002978984910903163531911073242322074903958284310828892812155850286416976294031646815501048281891623522450223801236217998280040073655764720352276572463795307779962392358017322786685694855781307925016231327907559343504175469500922007213939534216669807431160059702720181572278163567157571532209544600414537412739254230677378792710946744321352284721605858896430667970878540364126175952920829507435626281488520129813173843311739019024786449614263910408566765070021209324657053844258068128957805088384597221252469923153940413000185536454341838683967314623891546646812638993615588408533567704331199125652874842386917491635260570338614018051550966776426072687286320797260444791571909145720676557822983865804354978915367395621233412112041903362909144015742829296593206228680569807456756087493515927979881028203035315358688756493758201488608489084004335083469936424824863378893989448490101371306434212001401299249913262470128889190147853669814800561960213925243096269240766650244317744084487244494363180330360731514801369531553934015290454812945387617539123402247664794382665533159097394892921388949130770452223842916941039059621724870391826922893473001982430528795985429459291611473486255408233092134311739916612002789552344168737846511361558409826235588360104068865053835962117700977813099876334724213385205227356546654318261525525683616399184641733938240121316604111459579137929196111252883397724410909767612662592598361523992226701376186551918724837414240574413911557171727222749726456084688113990393086868130894758941360343052817307870519857944847703973123513982279634326417151507772170917752845550914864145946841554622343501271621190991442828744484554840731022262145903323554735284131213812191129163369146634842650078515313926822860912474097367562830828549157507403033160046595381730024608113278766234457916279771473919784374551594155397669855424666912593197297607987598082139627607467140964960845061299142305888773278887598947663699866325161293941925502343566703428184201056474589881408167811982620060448434014180473929887104990192991099809830885141797514108925801898273474794722138004322522067861910809980903605050082740106480113034094192995116721716151415563704363128233589418589919701230863152211853120626944741227081687621212975563558545446852184815856496926904560979859294699412948173033285182184873908194442331766431417213696502786858954007489234245836887997276137342275483385363207642836198695811234794950152615753148039804824819102684634347349743607686803137495096825750147000383584263286980542111207195694404324069253401003170293688875548030791254226216460415697227924858838266711270039527273852811347408443333109116435187089214254486292595600110315091245816879839591747712251864930632099747275433164986480319375311804700100767126655517113033261993315416644066929454744282798166879159564319985565054585354694649069845149022024203626077752442106399611976236013635948254200306125686526097396697512278073160002019848482435471723089195853833352123130868664625759922626440901943724668424242432816086809691087840299925592738628166700439870792337648889913466846347101574918635628656857725639002412959568169820679014478391493664949275867601456917191987279020012893702921880768176724549537750816560256778668409380199753819942648776893443731158690378823474288092580806708458492557587892122675284059017221452188096055765619190753178365672280812280459898131594296789021015829572254299944033707544349904714752776202832293314393551762935444706208049675776464040393041114212412904291967266957039227138960997805303047194874934167760310109442125416051617763065103181185820269070414273272899629225087448135074175501998097575135784618812449802115825169896634431411382859262682513781806278458087807873616266176010047334589265470928968375744472965585426228063325690114621409204348694638655169725682219318796744573241961934104363250741657487499596496756463605946756087296251060109633696709574952244842651531313468284786047642019359954045962587538664004418705562465877760718469416402691485147919845252100364541547408556256280443019442604886933563264975276939025813015156804334893430988629061981285764305877951559073544807318214726014203159885252367131058770443285214825373468602775443687979963040557140658241249463721232414618761602260976282444859872655160280458957534287495043030132354030660588080046727722368075717728286686641562710283616175187328713539098477961865554651123987985635749250204097092847151431869539753037517106912338906332526130337345139237679634146656321890312028272715278176639197729330518389750607289375128172127701177523668701354835367490166025926314699395563450192427687684382017046988856935914513637864665347876091750609231068534350839244731348909463971813505037453135915152723679854595813249809952393687251737959843357594279401687627861603631765744966561634079059919169368185168404582666496771657966589888513534032135057448116579314086479258695885954458828253549029748883400952883217688583736096630341989838667051462680496213125366563399947427593268236467853247556068893601876763159589077749339204845894038675365632075183590061896102701989474471264088678253652904316431770921440375187084687243417929450675587910332301286941123809554940386800898583318218881527519740773136147416349664779961441641943317588224872097616118551413710383630738537135674316989599020369339630222418825227484514878676745218389699447327552190123934329317527623313592498948221871227897990115388052452553968197378440303417730553033229278662638606244097253910971702109697076935498582906073578334435127082869810018394505896676343696720454004523641099268414074913238595528302150565604698970536237646709335306543578797980494595121522632344018017429598859243016230662649128250871470213451236385484826315220235833636788179826777535238275332477440026796198169632677963748801500235182339930840316216196595905073478868944841068906314940428773375592583377592356157376895785530797576515206985381933523255678919597587253710068257163250009399460779838405911956892834660957117864409679688984030441978447480691668868009300813455437230255147846441633777527936542095279217195788603535345411120134091846554768017952374204771965135612588475239302246241283935688036942270491463043263540929186661197267612344010188107674911567086805549816414591724493888296238845017952091666342269749812735702806888559209180476368239148762892657122864156131931297446075288942117253711832019154755796228296488417838292355561497995191601217661982902606185567842156137479844323977611400193590621100991297931450809153913533310961194073169352573395174049927828978125031498493331016710134466236724715725987138817925284468528546115495187389919307410689043730469881773752882735357365793645042504945881934121454353789467607753631189992153774660259102432878174038749321354603385090987799778792399576995387377254120305308643970166509024448919382561872604443362568590418215636095091661651930879389051795834381566142203018795075156072542274514731314088098952430001535222622847229983163689658480467654284140534772389267999284117695728180943159879005108910531379834124306576794239173935753805481621828198130194162691899189289756413387557641748504237834209458495538380331479420981607179566872587004228920521784528708881221012154310646532740672401447309741757209743703987379573269671204438885867742889597659070646349951803868250966788992649896641199032949584374991109276819370375823313640215388964002774492999435948821334251023753168131892080669133867231484120657965923406222786106679142730236344488849246820758743596421786907557518604759110469046319826078178783027626837474013411862580120668097667620853625114813807870783895154994597899845211259406204935548499881035677166332672268584858279204523244458629382824826855831480285020213514767014716382603633842248471055595829145952484299265891977865251693316362324766657777864770886692005129979057534024942571516969720860329040298627764809471905175224066247252443114570622008816023194154289016155667589160387410180081780091031767951291414763387200124509203369696125325706467007531934939883619508454645154167625414686073457045551661047729784026776837119429495359261116303144969238624732008011443010359009585988801943736652115849082000859950026285325324328248357189151786734858243039974640791470239000617572747960530606993745513633289036217097238719986519214216794461943669341669292748700479559096555162734648525029710779080427313372874691384018345038682962198808087375649620864393500839433850118571353894478946635537276000568792680824825579086491388608005594649074937284973082134977352071037317587511296995186551624409679811298412941461936072400190312361145273778632442081200719510997994682479016334655364926881553336832004676046114192293633482530929564949894422454004388254534656570400671068319903506646998741232031164835162433851955403276876065128863352610115194232998372420350569513840055242586113785253693027957228014985915385552329336632678965525690132788001555869367418464271755007058811863963868522926992368134892128285554730960640467823383981764562449940392616566692775316377759645875130059338399106750166817782824491397868218415883046756052246830591835972679854939191299508683877123414952993586393382031293161640913536282943747222107151262869061017923852644667459288998463543372471317401162207562866133154926813891629616216722127719699231558159821442836203597986044224885075023148930291258472260455747538039746558205908303704923990020268746371002331178820285702381990176419715766375171924929068390604847302122403130414403221953631613963583812618999406798149765749732447428498157667958986135044846332970271400680397768105635092199567622843591558088482170407644475651189909580327836988134762764468285915788997443788889363851184851458184298225442463031043985289900448905009833479357669117732045754868751879475769643597478938659867462843185442470029454816185489154901241352429311037955192470511031185654514344379190577128612878029142402542271976886875402596211441034848601461709307167071029452696095910415450951822303401117192510281394356601820086632430239231431599587813351455581729540765405191670106393637416790859459352038568031263008359085501692320940174982704314147823136239990403790654743310286619877042860792757864362894482550391013612738900829558463169051364519135178648280197290201319957407317586226328256541797444191249353244325388286490608479313772317248939926095005015312463069378173584837822031967149570330290950911546937145486929113374723605228448836494264740729097363468554042294511541810049642055156861012694749134371960654401972449569015368491542072024429431255073357176561781016347150870147819950517184338425466356116835130365247680284206006785097978231184566564485776115218281991568967821516741518647977000604006276674268908126133388145650263033104252029519235757137528562722402451993809016469871638756758461847691100353042883255379706149592801387002403615298461425606422870089025403302965830755137454716195050259181820433430295771631028293059865231373060500987687744048016803543388550363806191339410563052422561074728028649789332433131309154292719371881838622009661316226407206220389456067815639434008947971669785149883353788137905447525401679197970825410093487057060576836127098681191071399009376960859052204491996394551229450292635032240856114743956266918256866396428300409910917659712314107953261404029650755837373337691283431690863242030374928173158868380759244096752098325896269996468393769178075510571428882559919864682761805960196564562834308646990771119930937215515791135158618421661230444573375319384851124964064258436377257883743664023616588698049956369501236710021134592485241579165139919543570084983814355743049611270349720599657879303062649082840924521265166144499459000432162184042803048215849506022160995419320578467767235133745781109318786891553619050495403815817684779494136951452682791445452765259922706111368146848553315520884283603772094233148382536752894433895739334768074477345007354417412676638904995351895905462515990058521620812723785290275520255794062616240314457529134464309030563253259964970157585348686125241237939264622833715957601963224323667756546942277691571463538154547500194092536317168468294017991755773221312475544721804228051735658633432594310299863689129587429163773718957088847853314373643843084808706633831806261868514756883679503429952576316026995343031173441952394742113368067984112333853716175211307774500612755497929352556102710085391874517925196169496506579381751385969872132503354207674557857052307455742907612323260664741659129855843756893618715484006440583893325836575292317903443005333834824812306360444425385028204444108544161419242915575892489442500862996170275336727313800392201339986339733192032369552168209809400755581432850156576110967343969289981273809877147446897203449552381964051405251407557034848222434387634311962732296344641703717191365191533157096218511543925312886221303976561251083252159939817099593473334992802130474084196588533465438960525480683143062545072448219340233987883412628419692496042220223687697302435717668719416842939168880030755760223824769972107813632304246571749869272247276662390670030445403129324609309626441436412931902872166916892257834088403394156570027629247529948601954826164545108728793717439908660996628017757916943561847944643449178471846698486654229222142080238780787217069631375638373939183780283727969136700049700117062849500559338884104621903314185429736096379839025262471790292060602179824685810157714030926762338219161047186037658884525127388816690878309610367714762034396037997461730127821693956641960120659509867935813409941176263471438875652694742400313305610862324960915910654642475887590775628889782627733745927889397355136562378498368144825465720246788518354139137981022970014352847574663504709421988690164507917174707785735797684951168023099272180210679893344623887740527516529206472569770548675055200172271487373622242440321091201797474504714978615024425418331667809497791458356449440995518876395089054148976493800699650141020606063822440986683846764228488735149476006167561441411446951313121612246415942585701157839707364127593486732866404511997915598979887648283189121733434013149302975129858966239002764810039236215320928589502102536039990066945088250418149153041803151146839171669306055390807372673329136747897193878811326548444544578454518714543499194854721951142249646038113462953703193876340635727029986309230793773243912628775444118305678340767255025909470997411559565877253769355788211811029647565971234112073136584557567154344267571104377652501778423198671910952719109435733731318338175890140897807382349162518954298219809037953942568741909898310386188616491262841146052105893537691415527280283951437541513932773571717927169085938295310500489058958812704132943106737774179423443735606068619668005045628033516144997929459689090041055078171721369744436152370496849334229888527673901630898977687340447820358537588378839463756031964790815740348216991916312296762831242826083943782780987058628446604488435993746506703898448759681372870042081331555983629636378708689684586997589451487294437594966001554588416533639280384700389506128144581210822136643129976646956104147806710703438586696236062661906532478448269123991056418628515637538155938483379900054548372785854663371565124926631089439637936427644321643445539312948571023776673729608730796422533792289749211580705539412445281187803322503937439039246945362553505271131124852115086585014274605042217110909251173474424547808874520305769668283601345563044581053436940607060596298198974914018620463338781328825041789668070156471007688857306292985701937663014275204130230316240704913011677423696180458324764284684514094644537759295848678802203251165212371424064620286654271153973456238582894807912336802303361584477186109470727559376636823691248377062515148984301109239291335226644938667310436933687551522714315843840244473453825591802111388728461564703133023761097934013553549011714648195134194575648714332607958227237893694622820205131813555075312011253468712365709379601160447743616096281773806639342073788273928983532203263522224064943433421802131300735037324259926403911945427552771029486898444893518101983062469784997040462084434035127325253370973531756867110790795664118802080201176559982095481325033759978714123822626806744113030120959013586461280680950548154961010830910383498813189880724869820092516244855394308651178265052507277289571943339104758831500535481426434806738562655574970248169429892607725056725231007663578535741510962725125484021103514141206494453199460691923856398616738259665002241385618485570115588107366932797646166439376443598393034338203122257727472084509783384805628778877926486995169766579550167098207738730490207391426528936624327474516372605329415105172196749177671232362419262162157208274160911427705507437638549052957087229852477168401245880746367929392810410962427438636220238605641665324073587882944690933757678722742175133941296521609523661134379438124874894783368798236158362426749257292806485303218095712094738161369940620224913078542649567423759864328505850739706622000234054814396952830847033197877682288737454663982860326086431271350633081981847294259213954873869473365931410552908194546687221314357481959106673624916029363351377574681125696334965287750991406557682610212796627543432549416278959401356231076751083473545579168995973928953337985059480696435066352836609906197424450023674364498540095766492918809740860678690837397186342370391770229076491727931181946214499633278259708588655627451968029478678377128672072738286010514579261286355839253316581148071450876367191488796568659924868271705556646331100426888863747726565578053252693828811415357429234327480276392917703607069420021371326426202747949732900353686379843251516542151054222768788232675382650194234188645656210378544613253522442797296237755831853050949090410793799908927546667642309966541673262596710702598646986067771289343982982930324040423080664878819857696335279048990369275715842356555850370970711092411883456689151545670635052430667872456211214996619743936534194006191153492214344737127831001510582383326389399224807728048627799070902880312273486122623562746532639635266510291017847160479613933085981810816551500940757006392481381827335864841274789716808177905408484721814750245246644507454849949690774906164107185104763210799173359588272520972731410339814175037679716340135952642316134958246413998314837439038390208060112123585828671633813581389334482955823170867041923618270619694860740420272487402725812725433754109272551815973898555403769253131599041591135706272903540400231669653183705505587660805650322463302034015473976687130107020675588255135562493671063597981118548399435497229976983855278854234292301800821887882888969225423187213062469957374547744249620696216866132558015238247519122584645420770562096665742475344622218416147009024868806833629986862333768132707070010534594699938488523554521915676232006954065622375142031888969045616925724389415496963604216337446713936196317787218219252682460619936760541991493621251908587471786097698386320012144279582305480908405613392325218212762830384940360326693853478433601798174680527279002358738121600085935334557769045204312641821510458885949187625954494952417151266587389175571833098622875803334222650280590805818493734419488020058210985318747800718142909896571501225635874769839514307819396064216641435931435021414576227089232644713358569646687788347483391714561097375323279198129197381526337341495316542296866010661674874678786988983607678114026873936772832233646865199383295888729194468336876082682127405890315915260864999280578272707203064290536015927658393134712943666698601733119258720386381562852553869534466865884076830020807627275821629518014091739979044080512229271082919862862360132023824424240026020715027971309940652652113868811356338423246703132637482668780225850029550919030725294791189710111868195628558188787866416906126293209265844767474955029269719224571072366512530219857991021183298278163091697865587696344570621420117604541022291382429282045883184774171808155732503558504837151348881552945089512273433359017417460399477380138459370423993731720939876478605824592224540497695687995824188703350538215703297204349062899062931583095019379460997619259937795706953102604202953745999553520887375507577951833139950177679385294265040893206288652773896648054743366932736216383872929428660054245699886815703523357447107015049084975510255443697305960491085133151456765339537631199661060854712113735589241652369174072673288437329342621762357156100369477851034473705123304957605818661935965595514319938743283872345399696696191658458193748305429223825115013552604768041210109678791045998625837764179992211764100091006623415873872051397018640728387724459797298973369479014821739425184024868491248175387243056829038922500054205183292090584656402162409798780949011971151058004035147829029558741078417057432139566966658166417554733270897728043903412238553356679718449349706551786637301019822035633148667160979287875865665538951415691153260104692599282338427074956202432981619644954011676085047715223938837214893815571742085465086480661522183639236551797302940209512496432789490845472023774281782093105118238793113666090670733048322325366222957400963383464451782721360767234813666954133954133540709176335925548492639476806939324981173567044445125411810963372975421799314829532706128415273862605678957493247709768665927822078832966687181287182971342938230132921723929122758531544499858115517875125270057938143581944120289136196933484626318124335156778831914029590158973457498900282294412380156681450423463783181998145254279217111086740023526196273336596726096916313851056178824436235304947011548981731378350385189549898939654671526816443123652619872856601258952310527474574072554275392197684389468449607446232910298946893290283949438363764612580782720647984646404362093570636310219134100540319599356398613111592170341349244741407007406425483478916729013705060809698147153043292548714458570858220610887601150048786657117327679128301745376800008180366551441379943889308300341250503261454755163899093240863874043472709756708427810098046692641833732551362064358044690916606661144814817936027672763546809674897417624754211142377676288221210605839679718904777836505138220648961185467334318597822307999846570212513438303807112611507356356458907892639892048910240046016854102830931416609697794725298205458489274004406841610884704421699038569795472422465774418755030326771050494641573255959646967701535535333319469584517361263425998960445985217690566347514356231403676730098356374140187421055390370132267932314545974231201736663669480744298552106526761282148420094692946603880857909871907329893119659520553306370323113690955810354457704199241596782745359966873509808426871547372477681735562974483535488715483295319123782689610662353123530539053866425225140408535037650905717918319403567120940179724027158874229493578836087379958032422538992921242287925367154986526187642875493960315668004097026513004098875644040334648651117658255936904245251602306311923302303888871845488585804487831383727522971215813613791692745287960056601841719114455272878910960945062685703347329430290381634418025269205252322711995188041701000984611786633998109155100172244581134456529422090774483606981386281861528144806489264165639078568676353601953693840498445304935576562910681517118181667945659133256686477081892449370887917675934697619081572387139695260002217361748338507780878420191316861183319763353125452364756645021977540188978119900769702663473637277147730598591457925329552396237956924010934218154191986272912931655139456155097300390378311315076084314354182605435522433797670806989976020650146256592128305446032936612254143864732806576412808969216661236248702755048612367908032428937978781294345020911900727930896995833044049705595745172428163141459611386950175186475312628213260824931363907816101450064573683570632958523130128326796743325883414488911321366580470654057714928479360012778480205521355688954428713597290220797880009103813453434755607535808395447153275488268805021905987573962370811189280590007323745691720698212026746158164096750362627286177866694918371870967222770437369355333015386292600994742114471682781226742578814745208242805579831482355148618785697370236134363723087197928249471505516020323926822516060798052132063171382133078478579359499438891857193237354324992654174242982477940178799602463342033609583352863939338576750291907434136569421416993882122684733464989543394750403762568071543359380776810015988304520612891397330543154304434556290024741531591855423556634543875812250226297355661014487988475959458227218712594027942233493654722702707772703097096842444698508662836415207419520006149090973928582618719499140356575997537893012097518676258789718757511962665213351695007467048215965608778764034537250310737499929769550798330828201521260833261363776107124048871927700085840762758772244383685168345384543475784285363842393785377931300381587355608822801625564076253751787336064417944693148577905522738114774935513051707521999627194853691922293055838462018745421519492101155043060901194241986978117767090951260882738541462801606740170017916943641130287643791678515479774864293841028463556575154102834291275360934524162039254185240734946903531224380200188834198658002919173866343213866835651479789426768347803600758822444127780613951381880002964526334082007370292509541503131747706711734522762144785557688167173422682429694176348059409054597507404215471259679571519176679490242112495985310695023369616245538819523266945996960297592646967329177006271858935219641055125057494567719944191928583597782204742085907171289270914323508243805026516491181254675845244147770006370770411131938954998029015358983300151952874082032113752760496048178728041254931378361876900427364274217414000031809852623338203197582496888543300604153058133668453735154822308063234406223782027374505557116381341094838845691638674598019022501815680685118482517044069531766805690318276854724003704228087457851997786108136721753529389680429214577631209495700140429719859290086912159268156584137501323880419703701352782007214076075131687730065170398496966131451509339854253230800173145508848025376952855391142649885825998341872030413158560185900472390000055760866539130964644163153246948380996770221242419157188746281531748274866026666085343828264304911902118264573267230028222236689896131041325328345939336239961715690338502766520130862007416850422011446741934985806392472480764225757271981436376289225565094250137333055036209229525487621732296933974192516683439213547397931582230059575798447170684125604760488032252024220145818783766280215158785983889189477942257630718466522691384224618488847060602740539315537342368127369322201319676387809388901426956826928625089383163604781876579859102003886454810511033730152439431466738335005044917942603120432349869675035591683354287479636767764551345733389378677700827679442439422773734293512482478267694572352695989749560634120573650448863238328123676859527982723435067258926557263056646989223355976940361291395581463746914911092841559289290230237208900831944856782450297856615781607111546397933665056772577669022758364111081151411416031462137563835602019010924416275092855154330416430843742315760888810420172465745289136701960080122925413402074642219649739794282318023004273463268372298945126038189799165515476380385341330604256374193398381191197232116751261943726297543853600540537503245287670521454316503297128476386873343206204131334349071338940269381550241992318654885448573198375240743736321511639527127058042263116309852779285340599800220967905570842506487875604071906002082614715940601827007520718927240476971682440787088701587876419687588660013977086914571756612789695747674767577279895149807458066523800640111771164196085135779884739221372720952277811014174432263345196338994195113750068448568964199496599335097521034289244327272120478039863937779329978607770864871468570750578842826594209292985623969859963744333158560110494191375811423581713420947657345063395849745724974352338790619416194021220410796002815315180079059450784174636884422910387051337623716865615895365900634783075090933872613522081260224193786944848813847435247525602319234303141889404601529712464744854492396304575623947787771855216636549294214324823908055056960528754050027232017914447999144455074320386192829746112362088413092802117489981761508877059076716238553882197102498391403594640459754225557404349570627124021510828824699447982962253996153004138026877547976835707079322590654682252224297723252250933656943554971738164105511875370711455273532289715808788934318834179986901553231947484286258742299325300213043493724764706936133771407904925955212312620804587283055302136412355258557458466319181646866437476605054198272045042485314364037872520761133360177723996011821490392602729914499848209213845354865706881662329976254377201098322623750441505724516288503001702161838818792904671779964230733631334802527409941057697876999072781143648592156342968555985922571069132910232651412044956858893281042375197077021333941573805859026529380177331125074770654724271220801081454975300367301594404983681689925448902710049178723421551033205632225953941607979154489116998999702546159981001268794458874104542311580050038081188909036247310350921232880112354627876197418629522037497323947386258644591230305245348100466184061191132851852821614512829636753971372506794369203684423257107888048859800357237636686542181677661167081507675995231262619362353776084501315296589329349587088301897575421961032849605103769069593876545298664746043659778116769259229947758851498464081655688759261296071716429970919995647005790541932519051333729452059065518640648770337365335204328992922315398119893611386334323925761456474272342125707596025038041087468799395594996616787881245860755630020821085986574625171207099021429124153987019870972353074052098520437551321377753118692268934405021447567433281385739350437743557834502925908879245858995756672942738158630030095654814424918241088965988551984028303600698689203321672446102719910166515371538404439283683291298955422211790003899476337102738429052927482242029007271490624994426087779777333740726199882415993070415890697740264867406777082918991087600515119268118495428696985579001967410519386637093513991837434551613509454426327206319856928724277438548487012318054625887585799680644558648367284387128416168565921567154584499850407465329019431939788444609327505702795349880340385569175961391416559913279117154899766596936046642643784590191214298551446070183677029447071946217620856609733335734102619328004945721755400966420079374462264011291574801443323232352723668150765961807041560531986474861309918125534756143699512001114586436610330013177263863885377641538980725118364285135728272080297655670312614916407386932053160875444230695730250517078509144740166363683246972433581194454081379710942262215168619850622935869110077581265332837982843289593506569142873729642090817269030947134943403566075558861608549153139539104710997034385374322682297360034780597348800533888954448540247174170843557046407515560090459210505932137071875720816950612331235576098099141738878564570381860451744081227809164622468351007999326115259521558837217743353437687452826007657995588563271604648701310167865717928805858044738697837883806563645725159255923161978626715564995569439580562235284806978691470566396073576343871528459654498640073151418510062800474023954155797833169359590754132298178825739035359683135327562608821781305187823971670044778641543571618411731526197750114247722498490792828254830681021875651920651542942467261191800895211519759925011486270607988821462047936939314775812360451674360465217878050646571919433049592764878293120267906868849532688084899768792100229174758246103912073998970688929856427214159436479005409543177489870404434717158052224762782259065764736960472131512373002812039227392206953436642863516742127785513582876860267774241737242978414374293116902692202484548045076177000013668816248375867133055052272404047985756587133214768706586029500792364536695884239337184745227148458471035288113020971834429675537043671884827104947235711272525204365534975901319072386302559066360970389731280317113749388361449903730015537997435161752000343698869436109345287730063351715380659695538532828124244066629895386689063907145755835126987740932428096055777435241493244929589995663114187426543129726062030399200336238604189450048172653563894240595088246164999635070813771697340771380186826272870015643201573623173616902832677399540620192889059188255913793028185495197782227408116156891763652852010643639544657966106341433956585856974269609611384544249300200574436232766352330605151963207602089691560852425597277766867406501130288666937288357573907383631585498089563770520059369174407682445079976657317345953030640485583727290357797742389409702811813604532198844597327258313138954457101107536105416355236256799038996316231494142263237366301458259724637925866734082381226757244472535243923829940710488455829101025235240020211924139376736631607755351704130972600951255937257744437205959439383306549378860111162801819898165676567717973953618482882779638901661184975945679516204900868019854257359667799203417024024241896594863966862181645542235563822002780723258308903250518377312736935792772380658787389436896773890247802935222870997605933785232162830700172103037160710251181556307691486237102242519649314336746082585861744024124511639908514408411745306015960085829474910725415925107517949441764931071481304287669818364806361848191648029321718947426883109989302389936644441328753394631121422672305887351911778214394863345625280087070612572669035109117500088296179005460499335913709377449569967427534283186086351168836849222269142483115434312258925405295448373956003172596532983207979386221070186195612000920286635290424145909442136798115802343846118343557763998924750303051810267924005837210296295879039069240354949461106732603623638841500194529001012281882497155129155830124929158255182697652856953349239149188944122730477729068860104458452793325302989841618523575414203588885715747180898600673391780617205877589869649887289119642301250545453740175315893483896737358987611079126007547375223329652433667761050969379455126700558984552095418368925175712749908845185860656632401806452871334028860786510182187276288341433897681795614370531955722080404282387938046883629816572656311102980372141450706547830031969009938953775845423925544671555158547634255864384263850335746956748008363424212107800377995462968668376488187280030029329263390396025130121044005155975348998760414925303367176193189367647399608231208865030249877397721134551616941105146641112962312788697932012662599328444400930347602278273528566203964332118877647553044538136504502604661441462496105773954458330981197416399197920143695352999459597675271275977145921231800738152610770695417610777484588456603835013520007782525379425810323638495745593708451835815190366226210632591376853297093617827714520181017222304521372940057552005430429251152792194351994849073387311812871645156628969349917172509891156129964470760294768103323735919735143766970220842899073533222574516116754695352613719241972258049404085446620593625856430091552453876568865375788557543622493065243941835788112784688871836126859053440253310480716143810848134271228229961213081927480633146958210875553091819006249867068672046705736773991526062217647772871850265773733893091894331450937171950025378590864640549848728699902647230097177716001248043782400254040020136556757420555815293658517719486119491934011989375465934925888721182171596448653226925675079923681361921347522749178003151366056353626329997869896412178931026455956114434964682304742144711016373615875805159257395865044971393095778440098810676057652770092503621169547130269802241729276651562286318090318477027407970191017072376239548449216132174139365004056250704353081700157135954784873928445493830037269175998873733199528121759424865059792727599954750364720511637176545113115332132476838188375952836708508961766076992417154110647346263984191216631827114826092611179468993687678810903135552610302368612937966658274555142583504213027375226537915151192673772188290398529811395563636300294779588310545632657878029127806924746753634075980136870109229125123865461090459976773176044804578339203587887577807810602401433966797714789443262762660873892953295535908193020896916879161567136500530780013241099819518806830389828402492332509221015070462637967432995419885532010173140640483929372641438307782054244466237537198851478588926840713749546334295138712000105454040246378715159184024938583056923462814689779317141990495035561808834632311737079996838626586155347858002929880924329074404267552324987762161581878745793816934235682880181562904836275103229710834250632128932980536346343197177040567932837536619019447861372803877317996857638798313848306416866738743983819139628911849084657892265865461436667123749731024583928166650298194389444867989326177137919472513841103418423058775959980452855471838759513967822345813643869485776666981093475944451317810289962880236954389120207459880073407208892972719773117643048552237244354534020229055183731493914946378989646879144799290968271939258012628588564852201119893563422611893918178933809572578975194217730465041001702175457319600676386222944925719561499471093103068400756612510411942540761321024154477264977004233439590429028382107615717234240101178983308335347033083518637571498849903559434938189230384670730904542304996258007918762963527426648152982829169099461131254863179671438661295747655794264602207631465543501495608430402039654852392162962299059732025843073526801588820356727493572459272425299188575019543362432262283514379377101826350010689101535307909744159541857028869898916233736775773959129765617703192967577822153554139337103994475944703817196425711583301148189608082032417973622565083259975542437645109809229228138457228279552415525164729826349203116627426194286066845475098195368612113826256496495568948152460861488791423479841970985029847062737850828175291236412522850765187360279957362260806385542774108423470964980043599788185227536698649514990904829097613333646360486993870579921774720804106711510871389090847727338939794289128977330604298997550255047273063940533104850705161840537990938704835520381820159225456830959179647478122172721977942357850066647659099095948192727089730444061060185436198340914870049178664154279941579476193791145117393835796123621742872246412683694093055228665028754614040717042149882919519136075723733227758359384062261271309754936957885176048530318174190362330433876878960798403445789231451787363079077773356307551003475213976364314659501920153003033347656354308426714676095348860450074386890282780592721231940659289196844712354774642278453034286349322373373497202995265026928738684992223651022406435071050193153315283859580416570328317578293563595524422269931462059000553641600788990021974560633387490426387763516970014266285828639426263739509463658147055918462314863321868029455833587057350162549650724511199581921489875217906790192305087923085347402913092612100086633855946572227265526608217643959801660428938982912966332632649470697030960239009182389278347801119589422697651274175823818966725062746900207001316945947837887974363274106579803067063214896560582964344792255128526467595000300320787503039044707054409279796357600968872495394227710125965316764988698304710648051887700508306604339856523416941798846028650162196652151537958016974412404584380399214063186086339306004969559987823831474950026031632761315776887189597368790898879716097617783666724602922478848123823506059231260414079563372139085114539893607788577323543905470442415283859707500099375172444807248116519966710782555169297174608058489164511468769947248985993856415404170222066988388981262037679977099453837194760242406583534192896707577856150315682641318878565681692632530652997728889348831478293817560716731768512907980959201257458730476187642799973633733487085531493503397819901059973307011830294355460615383745966569195118296588177781800888332479655004947545970255611990197535724826461686150964070320968480861889596190860189699870008877056998620917696645842364525106693312917851563375447684852843094803991567948223929672880050634135157748258636077093863800584929878118600671200362611036331108071020301573713892256440854649440500255081486011337600490471395346233608584226446889344187446353645950101445033053814726951668477624282372223758195170460095464619532536549457605954753512882215204646460380258553215963870587760850476674494005900821766324793032974283358745782023090774319342737025795668969476834201425880413669559568737081050232030048734157534977654685469998493721438041067396845095685125078404426398716205150895591863028092215633014085072281791494458090961483390458662498906587519330354056887096460393109993991860852338378626012931426458720443362469070233824185538983969940374883804586859105089860356980460095792258574948284943894502799967618709591796067531714832960451948607812640958875154740072408540418723459846753746640940880071891908794869707065864971492074352763730580006283231920995063225036871365570809021354100371876786483106250722265750286688615519414743834417594012506621623526163304649139754975966624747628937542866746803515383602807729998899297620099940816521144753182222368944339562474186808741101430385177101149151774436208938563320048748584761941965260434979026632485750689318119528962073357617778939562008364792253958643281292000426015826885306280296775953758992949997215144780830808929710044394037224851842632936576052119555890658549446759337269934083045965981350023007997361171716995582910569529938611273142911877486611900541464833565208551831376561505967147445166794990761669192917956859128266899682924484688656775281154306757265158935309724561142808692888725166361320071719619775676478335288362586690495878678669110470469896446642430166461780426473017954505203828961483612221693290217364649730107935686007829478607894767205989408710977154276459039670575945783681243291609677777211092758180431599111792815922454438722137652837988937476776177821246186263214871318461479991019772233598039414199286240495744133596682499971935327732148899931672093714280511002588984384614279624748575565125836221874560197554389816968016471434392543815595310042806749900893416668923965162092128340287200225300310779869949676745440690831683199121637343294180968256616836710077623700817193396772854502517270226286536387592545321329294590837480374967738951940759013503614149638736653281700060705653179928522059414564050249146374027432315029608477488863481752994639787869604859352441974658544029169573811289826571480450958338719143489867876968294763128670488257003270823320291568991366235312631614381443136103411316544011191138474918845320520043846397663508841194031924387743198377781503444776471988267681857998632517124363597512195736369368546578007665878033043977470939050512840132702625263650027573045629472503616915882129698443882187242956375443411941888638644746250765649228322365584927007069733149713278652538213962870659927758504306391996554576350040957503842345512230981216793917166883005038483314778846362982224926496777038485665820989729243064408159311673005894798650786303592820582623426711781868479311946127769634962114899649932900525624930702720915931496832338228563062415696967627172636148156643355461201656244136378209904666929486015150603928662325411674493856821379902992425073953795100415420817733002955534218511121477016878750817540782745056398515983558915336138780819594834571615251987600152492443015951788959890440304044807135525448887532087420776188323676845745783138055617045672158038530483199062824140942352531446862187286869595919865908779285228947771496870024933774983175017063770949661677336427349989374195336000742749303492832655626772109700628692016978151230095101658876822559163736995838480596945144077729604859655790348232706647916434966370218918000543257049108210944958435837571436299618169557824138808135850994083801805099104875301230709891181850348944392393800630258386040817900241192938953528907210213620185402976689450245805886001063189063549464183423074063410875249280745271215459668898100269888846471128703523165425428850520537988020142535346223358646559497746186588452419581711393134048032858046115309080060848851491161832346878144334836977353312962199590966760852652125097217383906889360916967489690393411681633334166228488758331316809602768922975392046465311950114252197717713477632101539358214411593335288589513162875764379082416594185328283584779655288372501912100322307824216494270932291814718091954938045106474369860419823313235988860951855823457633342854558776590670126750905077388919857401492015159091234812307336932984188995795564625779160422786756008952741508265909836536127217603005282433186606750484624165327629098717815907310553206057043194262509997891307934035094001565166101430471311632174167971951111444557769237084618990127432162059190678965483419459851370734160718493512844163448665408659493364997537152668642661596124895038980709959621442986428414125045415259262824738518099951225942242404451632159820655725036213655312387142539360124726665757614817173420242185682300147861715785735316053088876937893675680782097116803537438133116301782443118265840255103966888297220266503078314974544134780568129351307654499333826317519850493800266483954762310492194767756066424635234772149937317471689234384573681412592343711553283768071214410585986106959379304447612584653869786306446316233706201500420091679472867470010184403815149589979045833340129108971145592943508388674339652660231680256300480106136487235471663036193545019619802915958783978828477090722239385723107227320119232490571598055510251322259889325516014224425038325538893559611320173035032428619292559755100292456618891073792001466903991771226825311422905940415586106148616961969747496116182912052290426798103535986957037325159618693432198647029347851118955903730386442652084959413971126879004726337191034515659494468839354048160284479970701467053812149423310650506526882288717451496716348166939253081495883765462870097831575481919129556902555500683689916996769660978556057429098543050785065401530893573226916236739951737540003761124307996366824455018844715353488871677752674871258527656832214586135467462649595076362136095991228055484545469176833899815846462371342414247280222085295649368188297457555863283960932763061055824207345175622012827124810062926402873462261217911343974533446490467120627782249961642309424725899477327815288301245108975610357225660410404402156808123014658163178704386937592989787461883317966019964460509809003110074738206636648911298226762807668379354499592442997348428676509490532120981559423364706675486653850036070106441505194810127839053314159170578645597329287687578013447946640200199485515873981462301072170627704482073002053962406935299281315300353059578245990021309755763075951838927928025004714026494594728421992225954832494704773961356985717659093613760238878977004752816156328058366944986835146813219397231737064478310670300323577262367487321431269681506487944175948059974119379800689145901473241516847434463498553052168224648727552054867189300251224522269947714201324132464774835514804357670328298003233312053180519391212170709478480945545097360066958017845022981216394328753829727004130396509588680141806957104909231038696179199486143006973988322647072723849447687661567199376259854523826473573774402539796451470581057918834082425913642389400607759837052593337427860474572728531725956590520550627729961450182567643795308123063258103442661151073157872354071196496692457432906090641907671121369655431736940773760321176494819822314256548637617344468761472564497301573332135932767702159171807987143892832905614354154472033507667403362022840084678580656211866473783528349374337775804575738734145191743709493371316070351933205537289804884350379864640437873113020282779750085417367604287928810373252748635704052957360255766914818654641425222853053674184309583983087636677835355712077640256573468239445219357159385480158512992290914055061791824522126010454360261363007329231280527166211929902287931439872331961260636415774011618753254211379853051366984826432597522720810190569950199102940295110364718624364768569187062994947800630150774715312778537523989608248090586747960121491778014955541514150825703731998510761371506657414456751025295227442434563738298876627756285408081645219894654904613532831302198255092706419881823605934408218758531286992739373128126031865156318183460060111687294101552823433070654673457396662486590012809867352660678035711689524134074060591045485865239719516454167463936012030689567463278762361296687319402003941640167234299544430172390427545977556453557680208917217445143585142811277270585711748407878040056571104312758196545564601729059496122545283909809220181583899296636694336588496743484945814372644751508073250195156744270809236331318249753304333409159060764879068723736835001148086106235315048578095190161802719291465701126217140899282130381638514255731173375161671836288143015013181448537522978144392120542788492928463234361040918013650687003167930779580925569638125596226101438563127265232103245831660451703853239530448218161495600019572582785640915337349392699655940922860602486634074512644936245502696021089386896417957547628957519226506208862597892477638180688672235358234971115711771126962969211848022322565541120010859045448220435780256393219294535114509662754043880060906242879498786298949499585869685709227506610900474232756532603241550739981596659995614779320837885862357222500721789268280773791891207308522715248813050995626916824852076309970526964084351472122740787657057903682558109627330717500748157402567422353662815112270022608367515732988018240959377239615162064507857334784650888505686640294863735860673529329529889790201366767425202366702639767567176036227958050317282670897915802169922568821246385416916495110847209516829772575631827215636367059289581828062220981840673527288502962132082949043546090212879741726399215113700881695754605959014089246476177678952343441909493592110171402374137610500350751018698709005606681070415017135605924050713569160396013333447312573085482573359938279535981014507210578534956393017668580015893316306160591944525141992469114490668212290621672250908197671946447306060917762703657573920817529222102262172952691451425626460636305864588412411142122728634458926523799299212897798639634609234728598907406153327627967962327342609544157933462835823599250127526847185613704343071503899286455462296010608761182864789414164106228664729095146483566767046639402602005689359886436269433017199816279065099123143462725869887980968746356757547233731148783691214945329985985212108691463937287259648154825030496385338589830855347009775400538953566013312850910544117542323585989193234181434093637004537978434224999511425588349097044266385374575233065313937251248071370252102313457033217649250531731164039048677676645649413195340766037950448100552625632668752994699234469620046219786277175549781238389224969783351914452293292889984751634590648330660900606799253682467789659765997210742137233769665254446884830742375755004535410174784441110984427925352355197716257578261121622854358653190012600768670665456720653978980509862855718656725203465049906101278785373004786189497656215415487153432395269157568066457194717696808079247496411663103221648068949415482785284166178608090761355208257417616568757438244845728103943906873321541719008260449413919032677394877978124935162500686715008247139345100404089175277551055392036035830847882395917029836484310411739008379409254006992286540181856496420238990388656469683228990754252072285773702748357213318240568891447851986390922348697452017039483370446948705976375508088296352943583263319719307906457090980018670510016528066283748087988173127500341872503241494266204348131105305420617195163488546122729368908750945636461587001005727833615046545394749686315011120145260280266459478038440216001323196196534023403383069785174001251073696596639831145339741375540344901826322482576816034117162656466673623965938474750112062001844319154122349758247173573397939583778565691826529756559046270461011776064282302687861613821083391677821843394522390845772052288922286075440318380246287419433083437365929841823105263420597614234060159365039205378878937183953785077400034138503610904914982073073616251237488037698677870982426387625686642111075403344854938336573628728036901497363879192920834324599278034168997791802228578806158155294499464717929744595284296037355285732056274813660435989460533551950811424195597543456880444136242267506333909041377202178669329954441001998682569044321187205016887605897401610365300750504286592683525561290582786829720674424114479147195257299915341296165836419908326889302150417176061325227697624400572251919606434226876978663516244509338177511451492368312628955158249933923709732697477247103195487199647804613584772196195797695662564245614070101560404189069621998965095460253025404923724880548181206261865484116334723492016109758230725068257802032318775492921004078958947745124316869337452741809176615418189281942219385266925657229752587445036133631821194933287087394480028436776711130086869350061356238012458065009455357310776054452874899513751680915455081865703404016775361789206146095490803176201151944121995205563967221459969036359612814500325926346146495168741715241250695243004815444741587263022842902229427636501422598354294029264007294077896180744866582160525359020793041205684935805701029579207596983750755183531652035886497139832211949172728881589475624027732807910075239574834695806261459473423001315467656235962750412526031781462388137377324463156812083475782177658579285006552766848238957111695557951998270926513634154709919598803320418558214146387851726641741771743590237599621695841235998782722771448364334663418093143185536236777688973085324843674234794659042179965722499466610507710532071288120707969408890908249272410316916909695125855210233085089651678090867261829385579505053569455844312169170070537990415571975148185749784469863780851482585706222255946512481698246038061170904438160576117033927799680605069811446479985269810923858979949776799690794779901831090068737594865067634603201450897900383682646728698352268713199175598550528339193676318709308226908036564615445553661808675746025618923278837796994828942478783096395966991675264947470414547309079603909281382574419812900527029888134710753262683116536996801964847684477269693452328020866445054876170170521146287604937992939740676614683404432519715814800876085450952836008836699400302317214896514638765384888357465877464899037743112007347164597429228787666064700355398213780439089041800568205932745567087432535800256478683433927375534830249131731184722105838077319507767988084871268708484546859808293486651211122809630319737279704850010397422925657082658302698279614035725953178291899775287886505064951451805133175072271373810586895089051584198361799569373266891227295673400370162894696923105917425251980232191150474462713002807222095424937457212661373244226522737764432619476527274479432043773373626076248063073644543283644070824723523091400895281042708036917130909022266837695417399366273968445739370781060116956094523656148012648389722192510894469215310114254341264733164897029851833338465317636124233434481933058572368532430175674540676888740407551153187861973586682066978920867332350911735459387733392828708540955874894898975706400656893393657771849045858926553394507093949862852740118329527840921395944721825244422321800721915386277655925489225187988819445369853674012832557852514799054133978677115202781735955027896669076653478981770730311776641269137131411779035223419858161372473565402654936049941696732470741222994650756770171896088892403491270352904861899510993962304780943733510275711681907612916759148474910680597558455518903092903871795396313909334764548020453578356272098435671022022121706230317565690052524729961494518532930182958887757779095973356078155575993138647863797692528537123337900620331583257556161918930036512599530895767372837065012110767768250962025725612997740949075005695604951224292668547463323919139431253211803927859494970862504215466989059732319389242396443082122894767897021053673054886065387716991641699490823263512793832470329702333778230614513773012248183055036406158095835632642450215258564650737949111368699694186313696440232670249845451023571388897728313911712309428444138263134889932297250193002234133186389231836958458807740695249239303755556238752939632192135080982919397326943203965401795000580721575096876260249905567623486664598694120710998290679621315613813821816940907597766553439613009543317953179839721639136790984321956262732855479338039138531017568515141279667899183225023035881525455882868054106262017970418998575211325187902873336673334427082638281241499674087898906065762989439844771464429542350794472546368199214127619438759909415831406359566332308931654137295251382079741430143153004600725113920447860036093554795034372259525112303022393739931895310705288358031926094600766035329115493562415263487243982622741069953703676517428023821355743252624005481517445799227054344724622531126452183236622042893041281718645270842481947800156422750605558862883602700887043209648400670141789163442369120072715456658543706186897730318651164388138387664749927573086598556500556768096543340156680948869661367954622158599333298326219968585027276803024678127378926289535684235193368077961725064819293736170800950916830078881387767040465207108915021786949896421587431598837718692066041310818131478119890449392691891264914486585680259781802890949368660942016251131122003944644494016981283390400423794509037271947113934086316736014828138924445829425316459320247647919621765154131085099381945034612017583445258730967866604105103754687171015238668507939489792456524050534270986213914803901216104107316398075766706714735838120746527723693336705386375641086079395788537852932866919378887461111633131117495162127280220678133895260457460019393485720265590937831513403831419277128097161076893103588972356918174847255525463125103671743333650917078196488620622326831035046169043513293926056959014926695730491980737244417803541344204329805279905646139181892868725745274214859927752472612135921757340760531558634168906072081765541410870956845340236268390425052534007494958181885381275553341632311896035475579391259727199391645392207617366520485527867749427861283039204482574835098067453368691363546854919279315006618284933278564950772340146026744376584262780182821059769847826717819633445549024474671234759740433014986467784610794367922479702648261233883425863761415371013321730539353099675326171807226697746159093658333354288628017629019285866141316724735417645186033141004233525010922219666987754144199952429660727400987036763836634970893141730602328138806749032457872006639649435504916836675687713452885445239235721261447684277350825817754957639779943228822829976685233658808304804734900454298309632232773922628520259946617588525834935900691697798319520843250747533496145482438113802616415370354557514441601413242014859392196659142733173055131721794307442869876872209484138266881853540653191086294626664303466027316749470039602805063937551686306800054410081092015365382300118638869401401219195339436142417517943542577294185775925346126013856439841114050632923324854300783537393262509143491765424766147917054751127213790471942333055040642817230221138593894382782246248386228504393068816064088751826523980502417178665905275543725130923712864488169974945391220460857327787543292333802126647990673885318928244660171229292453683685119948725941966231505432324535864302120491696552172207397160555929647761818570615946522627409020069375810745118793692273014679919966673021660250704996000325641038653509583716518558908533426793710534231255829960580919792754823959663807006419057325902314099217959631015578419937637653237736209332145975712150916488235541449985276606211121437367161983455737694935973820372069309861139678148216590588742219856878088144791298848070124972651541492756136688929376761964916799864858084802686418371350047022541406362836891050620646204972367484166652685151989169084841896454312604286948040240094919032207243107770476446538781766325638832531875367479979757880305770169030921685190957271625104260817899364987592461792126935663831876873710040007535486289989452736359640483019374595779563729862395125528514430343841629142309674857155655811428933761875676382678660917881081977673730994823277883907541096622066457900267039226018342568449963523121700284060507924744316434647095740694757230121800903605800732221023283215885931680467256411933324884598856884911293223032456313226312822313205419849804144331969254755439131439522101526847328881513622314931761956973440917108781362381497076210593833918097241840975098300785774960239024665446329129425321689795496240744572103231614570649021994253734284729070679178291113734862350109547216192423034986909181109166626964017681246219184641104577619263786120850630711214325878052093256544063368616874084710985525783595465058732265767095217543978065899347092597066991361637601795900298377708782772939095315503460634649837000061958159595860769631332301356084251152948320789059987265946444297315346785483670020856654066663636856488023805764498753764789324564509704749879097878041855864338847359071593097921241304396852625930620850842275985138032251704453897606341364296852596876348955724455018842703448248498899218433606907587830312910730610895035461698777672477374692347364097901533948231814578455858952852342503779678438915444388376985303437506672951859730170146269559987925556458779971052381765992879002957666128912423693862929571245195076982940826524698645270809285209262421162433759471912348116158591466798769077197078771544033399436748088632789807330494100390418455189670832130163907312915905256029750581199330970122597311704757414222001465478526646137087172842131391153784135807121996751172212669369768135367528922797068169171194100713518028440265032303137002888317054867264119311608361026314441903352968915682438493297759550256403187695688887024408576077567119176902203584138339784908142977926158378130366680969845077648803223562485038372256213608134669353687596559350567957661523592428674960306590096793002682936570078695485748304547989070836633993943854701169614901472928272870390708410195497285999304486607416518965173716119512502614489507201919046143943244035334935881913551570373893804735121826960868761294386576431882369067862876296319426562441025467902536873322454412568505339550681732694348952413855072873594645098454052963937612979562113257558364621476894744103383865011721341105348094957581920900888446492225563442482583816916928804259424227339439683587082765329940634660617857240905863221586471651639886907503332400888317409483135376791080522506277891259242068309240160481364973856578824300792905224714599873127482003215413517528731908862319804813858549579917165514481560364693882913066567618550277013898851774354700027100668543029338336947165424148288826617432884940755462718114043765661574343380239480458286721126786116349811064755130949819178033316657490686213242775221826378249448697559619782564516419130197092211830018506673766686995111419675616020973489015028709251093886151655302405052601749248210157297306087055696505643496918555721272665132115893353971000380500208808642928166854952128213005176957954590794265146087141622475795040218455507084039169575257689255876599634561849500280360741407961050434679680397871672930518497079688061219106685889406913531232350903667862827272439320975540428501226460251794559023882751838987804793399395394012582022238761198656757635344545773049776773083614384932385814652887321136835197826731947747817566185630609235588168311629108951329439399199121036032945253706850399100076055119318557122517055801961802423600412284521838236904780937676776353562765513301154606255002542923385576940518780072944146683476383194116950950326884997466318783707768244303466720588618534633000962079030122161133653573247441096720362025550316750241257705434926353573813352537852965021859981049953617618514479237953590712005381990425596881136142074253803715586634341351705178856181512214281200599430642418579289129875981667423588149934236191094964003329636669602823523379232638916181282419881025044772908658028659994412257907025674402599992521817514868966268448875428797244235928211888328219913830116876305982394680544306185170588674510639649823718949374527742334722285151130193452208211545953496558440988995014238360414362515979195589998819125119890388667341653139243853182034786046872993452314128981761193977214747653673145691220995210501975780695529957001375154892409374293183644218201283358142244206707288469061885774565829473675054710344489026497672688369174104714726620565541734282807518692516293427352472196669182869399156031555616462165633012948408453770373082170935045959015504903424435829944012040442473450313578221478903010914144367057184911848058292913058992954135422487505125938968637021510448271815411412990542544402467628983348853535721407064550609473311718407821332944356326881683847607179443361738426644195599672785989963917570407100226224333821046666911422158835526612257573328782175611332714947277834207213935148855700241008053551339882097647024313910895728225567641399444856163364291946301794470632621488811039250076618191532098986800876169316165645962465928189640687552923435874373503221059513580680068184017272390901992868675773505213174323219393927760672861075900847033204184913194944209890093546531812690658276423901533596133006963511274364249716147720789982307149044323366387968403257128093617583678728180130941449857279769356995752985492543129263617489814059730366684008293858865954446208807316455903497596383565484587494787998500692393411448499668374502463522252810280132388206062652587324877454533249471641633262853023914532017033178614992732767958550299833948301596926263955091606207738971946833306923209723084382969873067924508676870613725860539943187336852062636490324201506593364978255025191179459804746394493573146993259282554738489432878099055770022296439635878531083751218426751016435659971981471969502476534848089480787479364620855967593682714443953032972855150421843365207796620478618025400799910478370745733330913937470413752827396037590295204309508494003218553448925201381969026176604891240536113133300892733442215534822402025616021509952384333496510308099294709637106185998223100525830160851856288962554929432828958280727772829957236649261129776827170686996929032402360082497035185191606908970416918050582037749245411134230517964098055037201924672579454485355159695384795709473471914906510055282914943358204016503359490115765713837613776693910520577423411550999437929447594256343111488495014437962642712999675765943007337917936409969453609618789744225836325931329084826486634098482534071516810283608831043347849738956994881037339421890889439761263966703545357883217269640727332006699950969002150374693513331253876882984844203234468601817081235848916874743937378690090565804184332881573224350540958106695295604003923132505347984480279372111868259113694895954316202328288093239972999710106814494573960129693022732620076753098475556410601134004259575447612333444326585021976671320911340720591518849077566365222151117631197706188055028895976207350141710158782187834393240063989499471063532618527159098402089199441841321103667168992170392391525866197062783004142276578176784897352056574810243508762890219125436779810501529139021912608984725728503236075373713102253948833253714707462180687557206448479894730315209615508746463694458147633393404581760327572995856549721573070396320506811702810616808826378013183686268495840652348074049395485981619002884747094497592882660780725429316370802351149726545563918596779375978076173542044968411424130970539707670704214005795003727203948235750620759149095705621864877383656107974822833503240737120297398009389790985546108512988170098198381849419337300645678421047729887515885884271533954526515772671371998074918787957234635977491524999648084117464887636183277359739661314115922145144365295859769278396812173760368034936690919486080855601610560268828673852730445648076052934662165384983663476262951378890287781610538984074331541202395251583348641448796952718309699045394182513305898870029524855832990596011822640102733966151897082044052355569700596133327638340063628097200664896784599485746552294424206685467110416668543914263416780655306835113085175563308586025168592958896808455304271546770413106754421177597565293951448657168380146547416616704204568127494637021369173794805336261532416867963648373743937551753090880774132081920274921531618570297678632027238873308123446662896515267965055604864375912077631172911991867262734899895450865777414354106792260576344120204101032904577476610832951795633267090431750930431550170565651349989304742972862322698775801133371933975140050642652115000515947749540984014447763578929177773090942172949071813079993751984743637018573768084763033851059952090268543932507547622265918713205223584828934043944187592322995052310655419826037981102539164399980034581951745235081660903599543061671703140630989857172273144529025279701433139396328847108425263697350831209213784019976371120822513534003903325625018592554722616415198379114638891993710904534155708318843983023124226417632077635999550686473645842679340077669962091900161524929343597828715570576089884495970296897045704867534834191187372125603655708238309815081536141839347706991093011779951029977667848625225558113179077325524985418636096959622536564731148741018962901508457704446614531650734500092657654502282510517647535631167835506763107648010383918679170443965623399153690540692817403520876259486213190406637140026676657036865617795622404453348043267488623437722404015009157326957713494415243299729376574829068954860141397000486713860187880517329256749846543491068422061466875391981542881165469297133579295390441654012199104504143174659578091660464143034009147168098703314970894506883164191569491086694513474055401027965816276393736873477945558884828342931559956382469631408575469194138382505658901615680474077925169805720554545046036131754001046187240369166953508543904686082972276848912299905881878447097728219476661712486843079574976309067719482115213405949399420302393568584616222782108504438249630395220245469955757095528490128595524032619791496985112236542504325921231155324379561695956289340360417762179279592617286736101965087116577388385157915058357846354628180069927665923573956193712237726656337037687324123821943589445625824946201715869718865706282657209532222739467698250380808065817743580299657380550677703946744400202791494134305069339793468602660292104807529043685932220143533367396868968526628126445192546192550091483203276195857246523568448552439379306081238335627736671683242364452674425512437230596822340186451916106328413478956741915158856486660180686930240385995784019191530020405967878524169046038893187924417607887831398098044643833577956683375799173569497943614535969002728085539914370705556865536465174286029328041918841814244189439380975483078687449495853032044902488187288159897715912291572984045545449014694989926321436752647315066611492088692278496572991921795691173638211067411679085212510203692327936019785792203655905393135616339951799083601797273810363667606111880373496088159855751918474597965616628815734952404447956965122259200542974978630855785117517629951574089633125167891763368184205514286843044742843920339292657086483936115022698744143425420606896289849132544696375459214212376718708180794767286249650391564893448889125673436134775427624709290181114887545107758633486444072077275808866122201241850421575206954099234188056184742565438688038969513377434877603525753013405917546345400765877440316381407982009746155462131773330040541068465828572433408886884789697499600490047421986119462356878957002009721142065537307281598544529854100030314725939514662592713956540620682284913007258356386381480960445840057895098500598584496750229742546480387296093064633365800201143844546829061265134018563031290857206560364968991741575173407319365388792193592349056161223789591273438217243331003450314342643753357762792861219273878728638805246540037555894988556182359102546547888270013854422766705214727456306549096427146097387878657953312921442608037958670147247789028350363190610233050574413056917203499392799596791882158556992000164134673367231778132840677299874452073311493669342058411701936632878737474641215837235033167149216567732935989027159245737924132581238681615018279563424141375028852211421882302805465247892986786790431867849991129694058443573486443741917754755953522610944182780303348763582046250071248417884423606390640965855464907930000521414395805862875444623451816289358209125130509834140100618542140060646281715199406580909409535038205789518010908518230062285425490105352703142046428484960739721013289655632685345610663632018802520698572182562495178422763601098169552481902110625234684214317965457819864841513955641121928317415290809210345471987569447737599741711322755479751300343474305823746325794006122103488299669844083194128746969979017159739760582859082074663803908424482900645668359263712754367281921829980133576033334827792116906422521348380311054584301580266030680563904175410540490212401382701338314992893422442692891782919610087545909752207961068124880792517449147861882180701185266416596405737646273601496402112968295956817666622590062824259760598623557814735055714475606473704699329890185436254155155172970129798281152235503980083027011994034136251740027319174299980880345358166846445789676793328849844510321257501730818318515577960627542265058792657426788611750037154894660363330977441199588136030239426421593461139511009295456746898940562200321151004073319238125169813133555826563028857203311781885428972075180422795879589543565545509708916955813201794404078292257810132190565783082322524198951804568380939969207886218204214650130704180391605175873355184681910765103018829876122469413027367887167254052192774308866373327636048753831642885337914476040578916052254295198325915746332347356591078672299550285130312510968166119321266285737556889546029974248457845640059610024849327812285113196179888789792157336260490143979715434498608517532301269218890523963150711296450879126976817227906546618440214482193253797117144816368380740021809129601971805242971927984468474640955735038041253631764958968619496204325443797262039407541618366463093168800711089513071404629476894188868852096130873855328779695057522904373137563417677832526998226786196731066545670114496467807346811230847509339419064777778656412125008308186220859083714474627831800021369313902425912036950627293682676741891410694268613176797305132218852930727606036608169980149799049040476683350938387368602483429461467488207312934376594118141171520823599454734215476874773004444777779203976876644951972695045879818975198591687542937967634217495554159061660274408438712603585267744144338774683441766020002000869746214693506639215232703709218558840546451441414157979193549676081822704151617871780788383178704289566371328755117763579315593686907688942812295092036010401479818485396399736554559049602221697498412898438656818968740546414150593947194374355927464025675784710475770842061815034953256607316042334717447897060644037993787988889784018351896357477182588487530627955676709090319975287879335326544448479240729031769172183483167598907227247450161137205725582625771188130892751494716851526986074248382441759119736432281020637364362724958377530126745038824681579221798889274315286268587855861090483807469845027989423312874457110912951554528445693034685358202610519496707690817169712353989209280189650579306178773349267228401151800717655611376060122444234561664319941924831878912964264829002387461225460585814881574324497472800506371483627522570627094398547571792035501600664914443645704479131712784939612324523272465197124291221366144114240216411089949467532884043823129078348936810915804031734388308743369875805259869384661143814783477195844656557385767192962845044652203618623728895388860693328885360636220063885443265252205738241988594317688211200660548920586378908111293466913262067488923928207446320214010702301531272059217465645063810871215902613995854603163242729194454426475491986859056587970642431408231384929842394856220418251652543026989948943010244570908815097828521949179329311855947820845579713056849122293060808554607200842750030055804083404986117273090209820446828710404297909640792889561066554848887479297853825830194557185511618214834945979920635957774159265198143276404932552790329731382829634766919517504743055376275404347692934256610038826403677054881506966866358419874627661568452044055491551902289079617358746180676472771817094779265550172139547002001898797045864541188907673328121829630106258492165492556182186391376230759022005084822197196330856718190456111187805568919138932562589547085478787312259249906965440416533225562760943598668829717513043377886763434159296951954855827966790045248841832401587109436204523381871256507237849958243311446384404349990966701873359830191416296387130141042282904465969015875016465662649967604888652625434825364644790028571389225009855487761702440756880928667814740692282159966966226415003042573166057792252637788077505644989417292668349470172175566381914650941096226274626938883702655195430764237804091280937817490403339174332035618105952120446839192855539559227010648480209458964702972058169200930147652036640800534496111451743151372170543904508478171472165857531705817763239663693569734825432484090244797713162440312386330829749208343376458697746157543931410983557316703617839188162357488244512991461850824886192333253487700362485373048983589776952568196848063995394230834065905263968249945375959295624873830750798532567125901684554223763358844256934910093494328053616808376652296715771230955781233288097576252728600721109220528981483354463392292757273716847559928604778464468114787234925898830175996934369130058964613655685499654253917474595730542824384288507039071156327830834685466312432579071009783428426904854273275997227388625251347958373894374969501908423197160580907954971876749801312798255467074274578740914725671762766455282960090037658927654654208158462415677924996512388054231151680086800248442681473453728642966818302883022699032398829550130923856665650491853752177382346110234756080195760091795100793033797841091832447849289692965405048896404025686728263168057674343532285359502933141163993411896792612907635902395852279226648550142445393593506389580868295999046630716568851637686561029652243718552491074374277587518909149659331153641412479748166237891707651463405990974085949168572217875225387624828227745564826994969154183261829422261200750945302780458408309166517182841436329855994059093037028309306285315325245006622280718990733907954975934259499284508462692900873952719412106383405323276035250857025835891486284964255719345697723844684905719069909567931536348703165445505614337239126886241980402186086809551790525258701199214716467518824857973735460644338103923152986229564530179222420739456013065940157814229446682931701160454487889071288447164646464751572919804639933799393795831172275141475772951611547413445558766011800931545430113998513254348845133488298999349172947747451922205003239958593155018152089641965521994287512193015425118834794845874220059299985501096924126863135797836983619054868799556378716554386823549159648697424926576203538917490148594984737228448459615880537262817250833324427764412729285415778172749230691887290398286839608173986806216698262034133304616414010955869428723293204597282687371353038748241017080173407262777050704738789314731268909641817931765838646430494685107787012699301211569725611626226917381605711859538931633904195670735099571064350014260642108793763223276587944279357625194809538268829426948963631223916091091937305493555850984163206104852820297562040142852406333754041306402195962584563512594021171984263301106928206104545343231324324790746035077385612000886799851297843075793179515488277927658083993420896366790724852142156433025514743065283507849062920271636891414333650856953545235087105761907927942601023915231076775939345065819388599851266504555639593062130308070129817929005060672136506552113683282788724976088680374081980519559504142376046988291301307273953204769071226144503453242297017451414139109595918021079560531199066799312606223644077483092295802489276948357147759146695342359557124311344227025984571431803853158246317866398882762235797958689646653964236707706333496130150549611006742072821934311367581106436682583240123432586549838410963136005136748510195387637136429868029760171512812931535647603434855100716662254599058522642807989820556109675121461091178827969795922525565696056712626535322032477722548606911488185849471312616790170446665133642045083083101481969015873663123060961708519491129248795245180746096579398485606581261984974544927901518450136785554780964935291345971560235315011386590753110869002776981868995078779260504579369384051551019695777083356495216527541748611392597653119024471370221086299442119209694878257674879326406326898427913437118643077036605353789553610218424038953602239263592946876398321252111002297572953424899295674186150534714668759380238285739372527322943024288598630214315486650158240726741253843104057406410669781401194442437259012113063402507823560666096688787535884895254771284141819667268165208618320253317148969609591178755541895756829065355904357594473909169605024310781918553868948907178932487775705743539498899685822093490042149805094459192062243035967620706260254523660339868347679395346061500502524151870440224389528752872098061799103617089003173231430316801387804537226142465014465308758349763133030452665218117864650964101644923256114783382464124821630046026159908812663177551786777519699330395020117476607586497701265690880723456139238992301057951654472317040661549243268518840457342201457358502742980835874803486199464523592561923077594516316775274109320709633207375745497322777070409766579772764745541740486433304081793933011009357957263926217997052216843165613083174380201026277755852262478112168049848314745445748966692453649699782371693920399948839570446837738122309902320814136942245306541380438760539362030128100336976744299218937491444642487667583632126123492989482094041986664525485872033656150408801147340972346482209781958215907161676867899613360981549393404691107620804264273971335953757262681543965809168833473118417228311374365162691536147882284398765455192173867142417547554097124170533093266300777821281436500592933172436042334107193032176048516156000549344237961190656033571303302315543515699032913456555870266043021172872155528589953179256111378878305628102273092120142033042526527025652783152146759668154688661032781802982408157685385179961879829746993306447039898190305158695473953193975426449128323054125395075906316368606354607069775603886565249334002528271029540114127566793367232031739182816091137825086966786506634555250583419211252711892296397227237191489609444213555400883476595505429691037689680001035349169573153825486744408916030555600253124360628825512561798535694803847838213346491400406715012887267925598459592006579343130508513488782890125535703137757452670559042613865825432168013130033585513437426357588165415399116749395544439215753156071814742609154081552673630886987016618925884548573007617376036353254939681259878997638378144529023095481618021494675403883798137490739622776702787200817297679614807863804220584301145238390017787844849721783371740730370721057518274126365268601147270467654190227547412523530462168335603093035127124631425756364646862992057991564325870500108405818147739006078374178660272679102349456002018140819165190646298424539463929185373248039206509019468108072523628381624459935180891386835040592226615786542204538724599314018230985837120007189991331190362459615101807546565713302329018883218411263327577579370004595759788843996193620117341927167817193176314533337927387721715681818103127793999593110889402044145622760247675889947696089500532178697974637256835378090965031980431762726905561652621743905914878362059063766622618181100050098420218427514755274986979355665405788819492986818466554592115105263092514493754349480654314796648768963739039242933858536742814884691950771073420130634704589216362408187715851000175361550102541562235308497625067809483261281903090776623687483251426292360958205367272812427491066495206529899870207244938514127082936082768631112313815585816556239363212449661938198289151103059140856419848177464502358635275106967204596442556201026341017475536623141091024401492760772187427458271319946092758967008284517365667984243769271425854234837175991485978649969598733303711319416803523223942480006034967595000175940565490573115876307028611122320439397841002266490541816469970001187964446119635029060991743409338741825652005597774719132478909457050815366098203817484632087891681332618007248575910424388567703370849538943404302828204147739096426822705851929239045798602693618837818500591816540489582760605946062939603738594133609733815521967787856160993361031514335186293172685646290141663283178806422714779498286449290211027769822509442391301233264223889487302180871138051885581243778559794751252383588275543773216042477152949663587398819081921225758783392254242551396327182625684079953789061161722666409173504148981069512861069002341249630038073475743478384013700224297061264501305250477168438763453478225737715671389515396500026142465175386790501615492501421667610323158543226519915772657926072303167819285394030448718268391274023097687483139837878790708941667743122220582889269462295360158843982288617826222002503917508687470765572168398141119921529595230363097809221530823195032866789739712286806623340308285761732508619536835908749104843497316249420945869496149409072937256394142185356098291779470334711954566249652136277539214238537868094094397981536730695333033927634656738427865455452887602492971750620167746605480111559083051207317466553210937695064597617765594467993560541714089456699260676825525570837426519268866413332245221683430491223138867972399630500968066255898497138634558971404843278357104946944031435800844994834248824706967289649879813087272607260338930239054887291483103059852702623173867098161257103460855557525730608811239251209525343259124117001187031150202216089895105496736574782263819943114079343488061742562614296670030130117071769954503788371893526019417820717286364003224148045862360516888227223111941736483307569119335572619692945344714620916691921216969123532769458858352738727589406207390735569117155568105724206071643899280946766273080421029602385664551994330105012609588798691033086878914434900595086026452254545252578720177789966540449772327529548666493026222183497354744630205727582666090151405045163732917823017848787021060765895002670205120559185368639234196263401803018271925874104145234378323224572794169554952642194996222136524104092795566464662476466015585073424787788225667486560198818657197292367035136085031820635534604571693642877369957616971042891444393290461139244285793288649694893990064619587532295120350625558802173126067266960546423064296025553161227818413721629592717936009068250194615901103621787612252228343249113091514531433233786032709540665251686744423910072392531900013178835266733477309910484597532387028441011920345326427277617999415265589478540274323481283552213796837110320613494160657170806624472595526020240938922557284858351179606804984002064583155286962027111604881472201137231391262992014384168376793291197864666337154903974816987897152420041453503970516104798806289774313818655922143925564465473095260718203331552967848613524847991649567236363914335302475428226291878444350141794800212947317446412184342296735895872627130632169254242952650265513489572505690914318943522136323948934637368704505356410521711047561968686002954312771191578730868890523866605119948557304333315172511920706388923870149735439027361548666263342948589312594096794447764438874959090850233344860294803353427275075904839528465289398136890172557734941307521489958542094076168890529340992148079018572579816544702747268321269498756339848967822528322930305919513631334153330361320466201263711719295366119043776855016972318400861091786408468606252659313297977875957411956001433190625420535770709944765761748935922308415585139920476152611826531901049535550288415559051262994868151378672867615225280306540956366545843279039303820092995172772263260073748183760212450702468529333441402288071400892522055152468668013218374968217305503133773536533486252400472310660960339139617726152885498158809708943991481024610417134108601966525864540830753917693842319405460822278896272716220992747085581895799168135394430922313801164954201987453194281941128436906388963855100763275924396824378176575945896050246165748807345834054081674087153869725486117879293585002865680852442023853251424672690285130353208402197908262137218060643620932370214895590488976209416339064647609334561845079942377621446890181262062982984122369400537555228870433554860385549107962002860987253738156516857130098609737539799123139372376906961119141834917176251497497018975282556027137367077821931878714752249468310167935560852462427153080846552536318761218085968072616512121998850971092671769586286077079773017174957131994401557974876498957499805208569422002934129074888698005944039845716803527767766346692756193997431330579887261713189573351018933431059499287897742098761315944584598206946139141387900103241550109299996757381351969386684647783961709301234275040584203200263991062672712736939294167814329131185492920605226282690496301353646191177942330492303525158990154525892573458564289916603877995352210475989221409275723303647604447066045862811261164265750900189405136951985632545478539442666258738460138830304596697690501761179926034539949039655259374095532355509753052057314188432516162517595880106474743197889976937652063663985875668034017165337972010456788017080488748321464769828773701639667659941883945735120593861690057677769243145362260442420318323144226951033535429584651931223589421236759779663840871622864779192702608481813552223777166509395723940987605699970890412581785540661670735314232797820673482063167714778090841953827881804469221571471022694794057252139487942486460317116656218748815015891405144365462489301227268250245872887584465677342074924865583829256097274745141999752635557195666357198025386232386121496231420717814868341776004157444680427079223715186485215281404497123631869070687520928177891837892792219219050653976812646817258887471529823415747013958142198302415901249192950526916423989918297804778182620166019209412736750943920979324180876765857833001814650483641927089004010099809348841426167567714960757755745959764386574647128079578566846092676928686423258761576550319892635743468028066675847489786020070964413568673294919727351920147780853649845012905155179266835612971497439492583703656613216624776867468427970084221655746583737071441336910702944081312416985247651512667922668696601957784250423886573009068303356550381334982773822220026882589312993476990693926876747325475010993499591451377073602871056559176825745908152648232574421047261733193723264653832670822040989085256885536648147782429931894022817032481199893127284891176542688159042931215104020859837514321616758836607226933764400218595116283483734269769231642307582416818298273661964050982128134969059488299479707563411168980241087650298577795596782997126884987214100106950982811898867885826996063600374411404766319973709030809808132298190695059134474473430101389500177573165341509067746436429884199271396094481128162847303439756371618560840896352211292661152726077444827963481505494273692210300361108892159433700328354047268423518778817217967509568784043463255247665410227197404780520199566726929730607383871655605122444347043354813454730410295953626199098031475105270213400366318187185746890559549327789344799512356647131591884114032138382250574086368269696378902094187357836850661710129948992737219500265691596640652220788435348049665334071812484461330919722059620986907738674207677549754004366248096308855993197790641203952123305860849118601998356627561515480632168638830608916904556077911134081205892019560143485054909933072256965310097152302426056789391323993547345007219140390987744853100877311439204236844730008508046395898839776740163382296731596003412029957900614238847084464063154845344573023649741166650727882584097269299909942734994686449286113603570035617175138889732498912750153000539492022214675748568782247906598055464269225361386264755153366990946347893215505203945336583066750957919756311718590475368745448927699998783795911276446875674741127946264188837403846115106363951549374826044522488176303922634339666513306517620676089565750084785336575224935874312613673837346839373729902723034880441917147603510920354428868312053037826887531208540663708376485817225532645089696791080054385355792942047195296119940497551007456096152681872611116735274791011056106221738067309475593645324903304720891203102812331498419207821097223141783590568962888549968163900395727927076938879213168050922915751199359517985872357201407371019567573531456431575004062284783738223337700892332053914128735496212878192339639419541307840902223443454453968559987608599065609360629671404378144553986413188381055367175773716514199385012466934964194954178984899040722346861710897366991350772422073971567213453037435766718759158005975117433544630651497461831887098973526607144656824575234968739641470519711150793664982359738381712410474210020364302404344631919838320060380585039526824960910901182444940617909170334272076925297376032642870200537982718152132996314071457779361324434570060342311522218070439907046263397380072550290842487764057068854633760989477404127090854829809284137440446210388134522184702099599325091500257663133102985783864580205248339002071092189387670925685690648947047803974376868246606249373279717728689072386440074166417178658615225375336279263565221440385031487835050715693519377093800262496680048834343696495232616537975233682950535982120006274907777552293276876682741445490089717170548390432551232688838263632501991532234711474472891366104537565903478847014186747082486832840355242358269507286400649542083351657980730135051634355202773721430515527946109827884877832547201619609712069473990694982381114561584060797832228630987616536799867623760025169712895296026141298541443598004956351907691434318251864037474137450587775724042549427491999241965393425235994584659608167911874759463714310762219804824651964865970665877500252638344299738311367659225934615937682078229044377075930739621934200592262462309040667794205509412123023307910707466549055934286867554834420886818649382131379599125766050799794200205020790066323975593117834829535314086009558404233804302162686607745218763720759073695797914862647593027755283859251668369688130334494693936535302814118781660051182414141544572113116493033531529219233075770548180921618433997043218504918129550794338288315036902880607083063482538763930538570950146829697657287414930766897486909480093514006778855381224798934011648530882820696817448313286611208118993202264209723645238145186900424067868361292071885693335579078550387286264404021947150533309473897573323469836154587328012050530662239796838526812818708683340172583410088387894636001250557475094560460184830462698233061831429417379481674389009657605936019230495167250295589451769267639083926946270057763699737985913517212118262763580648084154366044911843738180133333471585788501257376300085044245240079326819481878451951950220163765010730739027812681020401045632709412516023818573325501629542862717981792732197314736986646354419923865137586179324484817774795835685697136692024013692535557281186993532458887350860107208467888334415784555826141034459663138404808669419685410365249972946913806829543556562743501100249872147560119166801562902806366619302596986954488125350274253206132358095513163521579080084332603373172476980173970573895768165024510612357663049305724938061568115695878241576668170223434761806026564637569880907895993954788618102229151082607255109696167982243605216986758545876555694055121979496352069069650182627675493544090018603997163758999378807010205361678696207244357008820188178716102145616576674667260588423102718101050115603394321334649067717235190854268296317018164393521768556056497702782819748248850217170517935200281629174728999856030530986158626082240370182804878426183367340584265225217865580515332487375477875301169378861298985641432747961003396304443693755943381047716657633674956287776760123902335321240471848875793617442784944714766896988853926511375900360358003194607927196576583339541690152052925378046938750045238438944080598084893706986040257611431647948053580297523315398396914370330216642727190864742566855925272634376458338077338976242388499996967173981165266072775341299687785863810027005208219083863619495294910250828577597023384280559396533207631527942100000363615349532374004204563274018328464171426813155234266511322944491722858358452201792076869129723744579426864629337600247715256446266438793493436381934338888184612003206097933255616441982340688269668635267690155710725806559029736795579051881337265098707462894475649902983429808536914048492496445869040390599206209693018704792326733114476249952711816948589120043279057271482401917014053638456761199262522729320595539802199052132588714172673440844489265811464921676969930091480031237588686787712299353148158252606875162191499903403378422821203142182570352956915863072981383949594029211405637611008588701766533539371000088386584337381759018689191536419994683646525611175123812048130857736351133652796352350159436137323061515785213523204774376297812125011242245669561360784290062372830361099012877380676217243007514448129493229701810153338372051364691945683151778046782323335997340025255632644262062755262624126487243430533809564015474803837003589129065297240537877301094268532641642010930086877644592796181023066874212028000406081557136958008181243927758869751611936654599616602351093196586262463007445652867250480482062405594965225631909379113247206035096403322106041925295879362817197419152350848153153282303418527116156650368430878652076911913177007074141374720742506880071165680412718815364572791582601673615261143630399921498774362141473314119373905397868573997882521195504164245807268845199000083618153748432831330259817898042185988464397218794861255459966086198487750884588194908199266991501406962944632888097462256378586684192039243804291323436467910801511145963123002505335214829736058830289942884908420393062773389216531207020416115311481444631356201491125882856413603160047819298303525550380122277986072379527093193986323106890509195485602873371774308576184270987961267875164060908819588601307128323562237374789935707102609532925130078149704013811782326994856916365141924827073115025093709834807893418921126612015982533773897465615926843184353476631207775869778719961099574579721925123058170715834385758389028869294038937684050526898135444631292417333351721049011588470553755025947814574259490126002388728111080662525146799905958988240029537198376024325093366741475846440134863757387043370917022613184104592313844794390464369092299331422019559673749283360491127440695783560703403308292064870234960994203453259079872221705737992498687191975080497596068763632562076813477198962791104326570712051485553082789477034862809055993735615103130288191383179794527732623284927554151108203511311827000337256846827427824218500600717827955749482877653542434682341005739474306220858019572466817588350960610612294404641947821859480690560152161460373786626402986931976129672794820819938854271942899901406682529522022678539326845510971781623284930265954060112190467735789537970231163855991914206253461216473446505526715303995888981501495047239773387010066835515858239941849384533070714750608854572340569843983152495023257393410614707815776588355808793049459892986984743103523940353588390610945475101748141432486392782526732705307854612197428688435945932349651531460658810929348465267532362140922101442117348573730924232801743918624294534076824146001394285783936229149863161530268866556641732926738348773960453199313071771629082021699609870527503581612544740710076883630063629494770839294479139468165127982341650965196263528081883985096519611912952467108412393972848153692394658109011240793314291837582449892139060368978693564376927115684460278486019963482972889236000628242044604476999895999031596681482456692524546951101806618862558346801692340282158509635337966943092794952236059494907154895835737607624060556297243492005412664411457077369048252100487409084299991445556853602467541343857467883690392754422636438235743202603640513863648034209233396066368683471702214722548450734916354425594249198317623365210401311937906384743895133663726007307907472116714065774248944686744937691949597079103005306355489557705939746343684099012295840051382475149410224880080729715403382358920744825146463722077629985861931491778083237234721350876643067163607591862816675332797488265534910466405819411068325522069372631496295299615496061737845152931767765269096443651125239175464133873552945359421327679595495333821350617174370489293957793745132466225771910371960843039011432684202112868198283870486077754484294849725371780283915255377027088456651587770394443800417277619471975868575442661180703151264014999196573530521438545188253492153067150239213138473690131620220022039125202109691509019511820215155219956632360055809596876458051148621740583251386039604679383897057394105363730496678122777158628687401713364737931022279158885514775517897194099959731114437235354170955772806376571647400254508862671498094868690125123075432059572401697362791988465483117671098841944684807752329941278642580983700306728260812819334033591650553784883779121407241022505078176955206391234041745544643895024503974935077067437132469244391612817000314993705386224004045557656240531527463404529622068539866468847783803387119442283787875452571448984250344764517625868013444668256221810314197821048143289614512582073727558218091730480970294004267665186233478532625053012733292015884983136840113402314103497890392663562217625251444719140006802257497387911969978021107178100548333741587450057967844794604195989027611544551212285730085587865386561720111634907268535950193643902049531872119405529363749613780861319550956475120804863271938178530764289818256891624398423169443985767536739560356999516887763232412320141369749850828708600705039696383750759938456003424003433032840435702372604979052344464903936041728300262551377540110501589044722343957826756784901102676216879619177758167603316709802173038897787678212163008243829160037918851532681444018608086245673303328842895478589880685472642185211161640334684909609555243441859404482921078832117552554440518689812238432350391130184837916097978320033439235378100983578583647582346182853471805337565034717233067969299089395642293845181602017285019451222679968652869795686804556094596651873744794209676103607375974411065509853745423316861033713870965863640989561998047858075688086032958700903717640984952468250890423412861019686471597992021966556236325931111634552033213109508705921772997117771175874183494991981276447416620581354937803290429809355723222054858999737692424114164700271613719850655546272408810057444056297578556858599926355727552515677056866379391142791438929242223726285318699382829847685525550316623245216064116431637559198548296301263556741991583969261853779970169229103014351283137127240711440646319415026661548110872238599100903253789793688159802450876950906533829488979628886605267541175517086465035820128761065337151023939358158965649175436590177695682981872480524623008593278130021399939169928372206000594054441920422448878787337718580831810140803824742109123599380492219907328886839108746810065759826252256058364302009297779454241140121421636673930529355417419066716169204596217180813915803266616787955885055654929020553312726873540210687830075298561598730204315479354413852490788288939529693414671425067079811166319849974576277305007801072459678345292885033161264373016701205077408522744035983844230428804651573943477355117562380333848342542189825414033456429940511677084766289903423001387865917213480201532424666595836000337262879405310288832868943702976861524233913024922018630152571035696748021953307674215631947652513375791866536497358511796779092664899298742175438469041549115653130857734604406197998550318828093110985213929056983062674349840614527936328517651454842883441469057676602893203606016641705683748332031854859471959074741270061838102185187579501138278886176854912416943013923288200855920219199081707947659883387890802324183823823360670550569057531544411201346025203973357983320668481054518554231547644580212561109743114441017951788993884409658884772455434647442922323455688893368593485856295547771282671816272347269840867514904307017312453604693307269327609202749386388309903461443345468845069809858234385714556995939661611517660089242210714445647058690919597659950103977847608908133239338436422657720945488445572222558857263621212738369532266391976920727695613019610078952230911205248532564410222433994413281960727353670990530190117858498135988343412490800888263432607913740514636760657143554395421026113725857655978769839283830714259336832544298951270101528006678171087048825255998014948123831797324342985619636598217610088618271175781522071383722810928668615626835772006887369377151165097066737670565923144669300100306476990947657243940286471395676893320957983109545706378260833852234047929709767632293590465649803295133494771229986377098533687362553973272158593934257955160508873172284200413324398106127619833633901961750868949339978499025697703853370734844219835383809613102477368472972110562265038808289584611940749473987334904075064183958422907195224091949831490408417953645331602552033113019391901812933060816573321449733335867325568412632521915173288722288807951413680863543658995382135568012371451761272452105622395285271482943706739350417046328304023780534060734127034706494151236110847911284952222769718916136321744267005979785363650323974950139868930389192651052107524255713799569075682251551795297611790766214892910938218198062598991744136662975391970349484397172102792636444320717933637810473082271958875485011565591578076792791190178753017357730946722910911227148593734831199300454707562398289564758036894822720195462626092563414194219067675479371643013446657160430531721117702152506374689430955945247120948457070940277847365350753891164038514186816798339232600638887952791759079446723666097346933787614342460190960894323106546188284439003935699662569406261775957225124849316136938877188229914876522247347122249887555829352697386593484914844126646590875853457011558141733211622681482416550344298692444596155705716241737844389831761410660769204111389975759388440948655198362285096406797032531066365110077299446975549193307473459972198594437568582689137381445831792543799786510791851594721932275937200350608504072238613247305884320339531268077289238996347483424899516638439119954654409002506554751827473230542851879918891790670627630598656557273119783083138999526727227386210277988796579999217298154742335944096485195875041125704290466054940529698717210493364631474336198211343262382657125312605177188453975079521664412922092128552158998234600992063526306153523323680630655274013601056855675779081360701965994413996072030692565382946683545262645111547114147614661122880016442547041257800127283090823106114444388682446380941979332616053794236114980260232156835061739924770102425790378853515615303570256743390656558754834455245186836471930863516935985545572077435216319565882258264811109971887046390875842081682468343000441811685024765466412780629172006377945108437255877277876281273529735836737879494354366550195255713292635420027672276887716300415390526009943195747844457437719710732453079347322673890952554698236690062924001520264577648820951355007226036363255264251491286373566803571230033938422642212799657667568514242456508278565184668557360544204846581140134947339264293870228959504488853530602051590205373908987588064606153378669587406021689872454209815497573789135237351025156567084583799741714245515030759606608157513783413800031073546146032634478753624932322249009846855118527803253310101523192059951170720566513730073144483646860732219076072838971877918148484069582134627657444571897999586392188972872941912779461385639064976616422842970419990602965814936197220580900686502403388527596379208079774692254912796955251224244627239595894347118904415797472284053501398507005253199609856332235718758057790558208711221176171687060394172540352987602815780230018046919221646251260917597493802909606865801858690031894118744446396724863039831791529189851317869620056837309725053791158249107969778577245783950167003922229202648502280694327660544836122463770014567453517461719544902491263256699110666011374173330837069702581383898820750112061617545951906427436720371755511333967456205612312672581414567345170062534385928534826105567684748460977378279317910783491994061120639544387217686593060100608890042446783004372797893042864587128851705231759002314322231706040183526152298295855502614876361491553351678535281145288968003657872827106191078264155057111475522667344833624784596233027253375206100705921609823478678165320480342597703256933448117877838724590414597579244727962019649103935601142613710100772229951426658309916927780095681524822077460638261104788791136557178246953470765129207058450064122616411713816545732491747866982488648018877991548963701897551570776122164458783453170718031228770235483022247507303151119779030163706813903575345759170676343349886826062356529224625477899529552660533248828985952668820630651898381388670247318596449162112986918687665772609387188823762393808320821555404419418040558069789379744239270827184128390734116716796329793060126631386472377337975168765128654415003302500068360328627355101803066901301029238832748210767515630781320492806104734888992341619300273312090512078443652058025048708978534389033774344692805327207515890896729381470622736388760893895206143107505688158746563553049520696960419456876360221100468394734305489338976672387446190878950918874443400563992545568573309598763493020194698684148734894656733324217266934713077881530428619347059201075541184212402987891204102419420167388428306300805008274198755801086876003675081304068077875856701736996178501916697048148956754238749929171771186464585003418860919334678376630963345616327166235089575140279448856805544555149537321072285129839864137366962148282505582096565649204409555567062081656975445330915150109749734686842963852281517755147040174859185802058978728712128896062052841015123176184421075148832848629135384013379627811119285644425162990151759479542889973119119814380584799044782264815353947999219859243573370836207607928282979355616414882250148368636765522424213328164069512925270190693455539215659346054029207613918219684674669560568495142807940385483272851092870606379980647783318862574787842433096121418238356144418852217435339899737763097912978746743125262241571039345364252921730836344037977329557308015410332355610266400291387269444206856329771299452595530249523682765248296711935052911813677611213148673314133542874778883616385873554142605596902631428833345241606351816659919177898501280546190146398522971634795665224914837986422140592553336035622764343175652336957690647167903523972014263267386193219618376543571188470985770477216071402374891889543416752960786341779605860594928576129000346476510454674306715313086651106163125472551592187752113321291658714293433082715887403792588286795341363907738796877788387848628324597119804042799670334109352657307570469744984877875712453657294990262084351116406320157808694018402826902641910509766137682662667597267481709958801119871165751407305015374209032007272186794314530415911121796000335320694919312831981532697553498561525449050419433856101439886135666718375198199869141625209309142486840303205036814278834058220261506391470824156418641065271451555998350181077203482163548749288689754587604226928426708038356170021078462659512058988934189454053713415526504342920300874990313718209646523512886361016460820419163649692635309884280336117127864541956340158189661992592617917846906702566425018129611555100966390591844098619521956480859639324257398729050341737515865201617521341909804301144480433981024750285789507390368386268452516521058336331813052918197249091234487479137283259526186540256466319112332175779461657688101396084871067238086243607152865992506890178105932307449560861276412682677915379817052499783765007392109178280868846699677593578722122339716581034368337209063560712466124839851964119944250534528242521922673980494373154852233445199257399665245462328965258679854138969065917784166419229763364505492314375293433397609437655522939710291646747078261852752763494525297386010079039919707267874296960156380181593997576498890161644247335011522174597497701012973242643945307677970617763652856526537743672465098153741855099689469810288295260076978465854218468139142099404793977188500032189926063943351807661892575882798851872234791780519715685376011834849545451767140344389201029331227420621992655485771131626118332776872371711364769100016745451357656810876155854756657897002636104870774317833909932853125730041786380164520287344111308502584490365677314094451632221637639262879720550494903141437854814102444073600709523592913336966985669753049113245040343694356965473458109392136404002166990727908881157632016783735308961363370163077419053614898140276724666091359417098138046258360012665608319636127176165088864475238890552828695821462515226525672327246746671560589576720787920159303030649782853304590947922701046663676475560246481724907514831623834432351105614653139024149035125641844350996796403372934341011088026992552733654352259176987359457459186482996023469821346838703529760335983515360803093662782341110515640676748693972272660631014992066062028490169058573889445103908249346588635664332062339432922408339911527441930429023675798425976882791913649312050396748865462671468720963034408938594084379998467129592467398504449652366574151106598135888195966747448440604399226155495824155269860952733392164486547499310229543350884146790786133467310687030774084270909698354633364078690862883312447482984973923500280396660307258049669817018507107191276878123854421136194361322170266746861012726731927372225581097648644950194906809598116034288245589960597929813019874496061865024486961215303310271450118427258106562575853640327092460744426562141280486307600836420359482676424760054416442058000390885948625534192694874662569532813678272804456562792881660966421628821751075065106050783217394702377614280802470949456562868056513564308057077870736675731868798318748388520850041190677202678334354798022733971645860242904285523327985564609712564514670949715660886779625452461137913682988567699874526813437407693863085466141442951343322077970154965999135498823915906234957037450144167633041732112298047852236606116965075905663812522343221048950041340123154105835503063788468218012911550601741989428998047860751953313940576505646379073889125496259063231093858730210822534416238936408801135822070454287173815038859473773749696263285988900603149303043589491145472408636806128165682787914022883157942411411042013829852756665518676837760578149777835811608162903064805435541539049625644264647536163462473770680437508070419093441590964362727790917342492880052949021186716970759720739865440434226640359770711864250213123451538228320097741387724835597701583256905985390084642683281879569444364424154543566897868871785976768590407373292890672371691586112168267399200967519703336294266415586403198843855311990025879569553436621232442124250408725378124783405441009927233599568385387388456192548399932516948872730970241062595994790891945492630871718579529830627631273998593056118342354126943511876375567214997359535595955985140271628750752922028684117149337971908364715468453231809309396723392110576083943004547298591624296227764953072871179899510341269299940124636100318267765320245582248705868032752560089909904432133924381548970866704581738030266460891462505403644939743598156989178425734766976792399861828410723903592466359542346731132956366861268196770102951702894171805204157702696411061100826753573356009907693856882316618996751578537273272734186157326808439777797737215166145883562527480919338508843396440999991591982133644163325879475363545027363736129158547652623142477975908377973697635174671187503823989090645196403513420954948621110213612173984978235731026230404537453155626994417446126966458284512996021882280322953837876542088689292984061286958781095124418693122580113356434705437385308189067892757025207061165411214130330460747446048278764656319248023503366290697867866826399595441636684894826656423506248023905618462032979414742632876855728723853702765565661068495337618950240561047328310364254679477971258337746061730851110065409657784637540546880670368861423427075978505515176159596899460203807568805150002624304702577807253855288546302195674646223620564063708872365252107768707343632188161716864283514642461888843876879211760956583067507817688626775145573818927074386271514468806464956068965869110758564365265175158220079188646465766390224882432821491465012419611420757315801468854460836826017323098260893026692197368567997423142475063995405054144169435535101109034591948511611700677793969424900910163281212754294230015042696262442484396906001658127732031164669233600674661806165973852197473780593321457416440828196248795143963182721587950280554770328262665925545560309548359259705083913890586372648998773387439269079431919992661176137717711304243272261443354504663147098927590367588058180977541710919462263074961236490184028445494475085902654679856787789498884726799700806564913498820805662773455597787943702303737853304930344654233445442129218901451348338181292440502719139196033982019117394520734486132694462861523490394741940446381562837989067350802731428994443226181908255687652900171698362386864409603969959486214815770186107854007429352289747736128625235676981537451945944253848798667220885580438718322942582652712929991380170338002336837764074275541497043849290108466865734165445231796453821474341127562883940233801633649855684631112582466619583096846828215515772497262662602825928393737709260394276514330461330812458127096943141406124676321456606825070282879743812946255075181478997048232943983069877489163453571824354214938917332105236548185020981820425374376647945114277759497732851112196581359901089507367944824340636967086379606644703743962695240192969573752416982545038210232273833747391952262236748375355826682709080317632046628125193106751821411458792503749968203731515530299084200261893494481131923483852617257269847584217741598166477970421418272937845334267479266946765352463274174287610690521179158146237990725754756816171298116528487637992010340405095969192327848066104992870179881178672976405984178540607857850143840258202034616341113371424025000410658153619405055253677811542895403732907485259567584133298508512438184891765758868076624117604660417700238920574118729226676162705230682724206311471101859811520772607427780215483866049144622451557529950058280720907656669915408217930732200115937032031511427242675196047608077172127455832105929658363516224291514048453791688292712114772789193998914415669893516985522280341613292099470457612879616873523921830805723025514452578396906093791901235723664682026683145254867247373495326476155615538315541934859281768620982494015184759285737192943544062759953413371984145416770069685439708285754486078021897942143778612559966672150102579654544785641458188600839150852682271454028125134350742392402455473138727424815902308587012564534524048751943701235159540121939764616848942306719244984734933783438878035792501821000946888409109974058457222078702606672457684403359274808932235389552746969659965053194567238011099294633494922935453153248255744709195135691307925735971633666249545410995265051425094086808944023489907193775571841607459159021062892810244619964837600396647666873699491781627537974876339032838404911453931445093576800098912814900419005530836904947273905127886390775746952197780800540259083319687227132653264166340448281546955258282393995397837129096628200007287133012056497088499305357286304321265724018677109427877214135329206851942653034423061252407940570943738610048698286488528778141381546837840794673877854041670415645418654289569463783798452149144446599677513405730635198903236501583841259111505288352732167488065141818134756303107435803229393166825705408335222865535543897626723699034173657279849087721409465868322739069681588505153415646253563816887748909813118681868378529334402832170335327275805228348439026424818307345901429226280572081450479607456120120943327470976674967825599673911967476964015994013487229678230814707578844091104854763289145905998801832863612389099789131139148637353541123060386136117058335512567984799143368028887375145778132331133561321720352189385509433015652400687807682114787690842505610914085188031609850140725677458850513742182986806373758657219695472934767836665318707118637096355796174365783296350461259218104913871929436400762528981100907893298695999937647614700276692528307396619983174705807233890933985345288032505253873925227575521255162386322230923340799864135981760435970938455038673405523751594535795734407851826279913187954162873556312183728305427985321321248765955350867869368276575970553070428830787952095910241240470862172582733900374086315836350272029189203754988556608589623913255132278641923610403462412995744492295480111648365353084125542914303113232758181422770551316049126707828865744230414000572688069156256415910417057448398239553485940959773840389345526807874812581166393145008233194959726308749744107012814382468304693758808196449972663201127253268156078078457117636518127748634052006479756193055451265508088637104279361450106603680478561216287462745332970518820623223309022016615865522144978047660575957501981675053622989053831336229790829785861021757702595991521571358209970563558337885547431218118120196299651320480749207307031072124113229274477212227083263464469842936801247209998180870477000209409734670926717832087159232281247215857753511202289856985104173065340491340106592886999959645415358850807701955599080198779251323893226240581428896662815942306543838666935165008997880597380569363594857636399624474997250144509558056415332634909900337728119199794539171411753606432156950010414829890478879759281635494597859798633162130391602537417118954844779050453289063830784397133162765248956479058739829142708064198478971812403871789700508458688963224255701067751819181749405621354925594662570475306401931888339596456353917839629646808906722149859052623647179248741631720369887151168393343720560105138673753028471700204155652476579938346894739992823432553135972573516197417687425171257397376853772777810791260671203729571237325328382282659544006453692212745582207554775800836308885262883763176716293856134721228872611488425999295805669832958462434827980723403954633951190965180225692667480914082845270320061821884202841107295935701100924588891454016644933538273347438856580954616355014473589727588354999400165044232149958885809736381329557329037170399268637800339435043569944227885371406832151007701805887276407113288040424095075938983819621317342407134734549076125731761264778053905501047740775079657253883935188766259679095679068638495848679574355096443760319693240364757208202733193188455383746083247850496138431752373057267230095065498590555655573250706610271958575266390988190390772996561629791738410257619494147203795288967049896340285837129636821324097840264919677823333405004264026863689114420258539103938564285289226971556857462238460317812102787597633848592878958062120022109237955309855722611360168810005686227434985844276362425239959578560175599737445263437800488359210395829492249805861488048338478574427321291235799110372461072929753549043067605575128188880050272439151182171713926587539821091932500992491646518891346409269267591830657013381921388327363250736760112592037251014310518491026415455837405318254660742286371051553668993271873678399067560931568663250334261110884788918039307031956792633140191733303512642144273143492958960080024510799224486051220832536109468006041454220014602183517884203818859513824466425784450349840944527350922483413050882214798318334353824345311774445631863019247511151235140915144423258316328179164694462383661376330081586424212490595596022570392586967828158541680486806507674972525587444211075333261181090724006053860644265385383488176694948431442614994446667354262264121908604370850133725301636704913719440300470026013736832239543509257445956939006276430207613832283041472807373709283878217743208267078953961795742691756397527541643002677928971254377627034439290267525729802233160929580463206243540427024290711570739615334998016705673533782093769136712112099103716475486463210461942455132741462706780200892839412584053303464402036999321332167835904447695220906531861120349816094915428982051344525533655885364233500883986683980625627912053212768860039598868393947370599781639030937089331905929947082497360185436992624247192994096146128378530294843553436347353829041551721537473184819488933301826375465162278330890138755791183412054177904894449497108739653772829871606779529885069558670028405594925283982462837905761011731875603107562394734808408324493167594722978870334214618520710434311954777793815542424921214093344605376075482628803707486142395011692678927254456616976010299336755281158653725395912554353301496675412590163357342486390598341464917904953688461929247575606670831202747642572439989174237748351250024194571811359568652874718577071354900742439652199146032603640766160884931655853199581135069670870076649986210567779699312991606746581266369131154039613033411887021369910248284320715845899063905589524933552569907763315173401307298863751233282115601109045707392516273330681531671673970055667323580384492356040394294479618185389632320216208213712969307316993182311216342986201664016958157829660552958738789910773896594400247100820866133665687964519674139468618847840878422886796915435726684774102468845025778693389693698591391904662268102257145150012927485454874087462903357875156009051244903162734004102833857334790127822264092504709000272130109251885177979053436384744827720686383218595343643375188865348426064202385062788418128151122667519966002382269799236199846745114008145680754908852092269900109616255880446537970101252685240765221817744567928686617197802244602068040443170239122521480103731995278593472467953839573704691132337740975568204175723105501152455580132638036312897952756987475767126656118512905280637868737729866652958045309888612690586070909322082274177654663865059183356032300769150818174427881091318812802579146327983811945867483035834743706716702322729610755380573403017041587786340066855682393694675551294022328927219935071562721186698407555415262004203056745401447582824611724859966398832211924373726722298837216894925295316478581716807775352338036050593817919117198215516359208458383586564797674596983789502131223082983327969885034175038811951300631277460453957382422207285752388983291992781634199367203832266609453519062338916706803673840476332414901147367072207954329401281424336148300183022021292775445712163206189767578629773731448751403519445407487850167932124158688048920626104464649067251704252280351487299758772953758538995361933476178187597706866010834521801534705177340545576389998721290233821431799410067876564919465383140934297235911446024296936756797235610050510964217791371626834094958735250539195905417910832013244761418126524711120276622882727406857304859167054943397249497013877696496602067416884408715448842091306277282245017583221815767358789304768371025085840849472153278462009409466705760702749272347766071027016133197654322837353736935797971518861140184167802557049292723936781083185031500823530686492712680311130640139513758194343097293686809230130011906314680571187980780141410019722284187195720321380021669565538532870057127395615106666171972951364052862928345248886880950092374676703640392086142181512436219493634161651835932692973343589067794324594264604823612199014744845076409060641827628618958067234508956570624770462745683364117487953437859985402636246586917556081146299324107090095319688737379482143097753364494582605743796047349630841205515234018858647408872318752367636867326703066731623369947716566723625588421440379990529281003460096250506263896257090537935470655665970202743581712663151241274913774170639902777504730574354237428969128124871261105902346417172299956900730618711233280192884904135299334163933699078303937561218720648439818734756584218467919062587246066846222006657554459157072377147880178887491888779006351102115943006876612449614460359549196243787592105508308315427482184960279514250548127855471310764566691893721779704509239490431777123666662959796341527655980580867909687465692710489168413037447084464722222209225419511390339512209735386518372767606349478731255516371206610381744627509886911715100653079156070143879161085443903581885588746904653850749241462609637731324594038011707731060873582043301212961367268837230306298505312978148416797300437228776693429206453850429692179481045685537484985607327496928665505745048333862851088766660304116439714087759427391007244134978787627990762180834840971968264889014861833779851028579636510632447620430583127999441614628112521908215407876825826369681763432194739967930572267850231632065313866774575963968883708519666342056656538834134327800417952635773342325124694824539004391811453481478503240871436688388132356794617057744659990170753282317738856114822699297582767006848837665129646992113648620034716040352216188544444124261053077176652550711380785724845364795468263654588450482478968876291406052846716391757718825009906895208403735395293913774121623163257593810978192432642255158403122759110981759273453236915959619477264747031906254806753827131332987851527867348843739292214642719335120223579248725709674602872739521937616534396113519611680964123463964121361981962446404675166829310370304302248355484591221699955115395486249346528405560120230443879757787221369355336226136643652681568397493077247734338480251739345556207557250249192614402674118507841573660918159042207772452899216530380084307150606788965806959572491213356507441761102478295351250056826881063015384003155768436933132761335784863199148901248307923670780011469505524116531760426611347575721145165576744868023424719601500177248022469426395090739447688084984542581359643815470511625109224663499451181038511739813404478934267847484067548151418899432630412700768755216416057998689002152607068607922317217411244156873545844588504344364349398382047677948411896904987969051129644997219267101210537769105622531352593417303515709292628307393063581577870202683176475114687643879868446314992235581686758506693066626803172973471797863001411997785553762840779882651921538050678052918135639730240388107884469838493716855742009187543981371808225128544398659282298410880226992209945881917225090481722947955252703368347511332249895081660384747462165255067285909116911810874015906894659632360995898406582575108597396565598210278943305388247077545424882597000971350621044468566458397318368143499873383646623069448462571729293797701147705882004224566008703347135005551100294162851745561882183139505600067738039159482061781545828483266226809886935226342166171887149998031961800734513609830199610760357336643228698155330615741563804628451617539821924727341954474285935404876509778621568203706372065088887112189847699725630897600082830488703083536986842739457644206124491907149386369174035830120463375557853251292989388927292312394618824022017812770287631330140199102312403755375255384783098010074617352519408858199150331877615499385170926446408499063465416012763792726137733198540880550442894304935078591526001872992059784186034396900224841902753547196868746302761021364622337252837874841578042513286999801579318807671202927674353761513757836554794054962343394730899011893522627186213015083197286020584459928395561283855642559692908910483825001105433565379101673965150802205178607961080797828199647032196575156265206186751237420015544591157546143555227969791122929671557221363596281543652349408421481905790274022308414014413913686816838130055665409164446655806425948741143565317801817743035095036009144144001483860657061485648341584520842117615039899408800542116287038086892850862869645818135155116480129980487422933506927991316391346065579212569443250668926945924073224923061364241739849996598700048527132318311503210735443759931844732468214387756809451018696070363768160829726718993579984075692015907319543115564919545371978139803773354078757788211221057310180544094282294348264791982449665096922758164172331244036618456354163790460737941048750517187263256790817178225393191233718913130433087811071522611182220835924121954803198126380029387167001664923626114454970771158878293412292364920714784954719251011066805169535199695814695153934676397690362276698990102265199960285423897506682629308338070152104304894533043600859202432614643575670013116728759019084030575399810868637705233792313486724924573432612232126213389322792626484357279537115126039717643651355196969079902193313431023332090594772364324904018124131822890274715145223966209547125758541592092446067954378516783484572961848133424039353585466863936274036000982022688232628762372253550473649161349232888784796203933073015917967260029184699583536291085540215145192370068203913437369389243021009628407554252748133695118558128949866336838560963882423338399033226940441245999235948554775310132205281661002665524240837187342252863434911435099578738689569585804077343584163654885521813398995446283938949399936252722154287269448943855470778367278338571382157264064988786076229375474156292298682114466601441122047285609484358600864196540384442719936236854412356234999066019214079598283994842941538005987219559776539082811952612604976341460952833623471266982169815970805947791630107180360823196510370572323216415248785718679812520935999015564140815750420782490088554938031889244650455437574726506181943639132480665353436261635902092698240463551996922656078845589585439989631764607391926104887933164840823202458146058991566220157534500087411997299710095093320159553374746596923781250793772203896425505170533743124678743788277881087254045096185019705552514401263902928236638518672529624479471687870804022361622305247316457021737979783699138492887444906602259831006393573545500167617319529533072659235105475224533228541079688427903547211526725195182352308919119339512665021680064340499664218867915789551443917927101403315308108645098797273144489638600939328844766234270841748845706924749547818517464342719900874694453967102821514354780024211637941764373241062276762942572918101987305791297262595548774653402729153694633307359724083824557837936262735210941666740393768765190919630240751607757683755881777271888292330199560566993695797733921875007868964460615018098422007810343218589421215967599797954498210296158186738948518104962709273690792783246939933650200821194187586706212679581525167143638271930826944727738373381540784916893434941324669821800101005146327300914374933292535765921952690407074040078534935929580150403690807016556110401191301706984165027938002943614377537272475144391448817006925136649888638682688191506953675937270020271021352744963644012968795025574131859302301909253051744542938567904249044989729509551358888678143108152575662673756740235198719678801943999632122107921265042162532263844101734098196324312698752975066117037093708913433495741367331404222672062905501860467447964348342326478943264834817552206589071280052021005294187051035135596366578960746988672671904659721052012408610395686098800791906890683269279561555049297508248086847432166957377955294182625794075100356771803135355018937649431131782546448225276423396049736402529833210123681044334263145022056281843898135653123423621784538537201499589655326431320312390371415046406796517150547600502488949477514346934143271356914949875013988780772108594875134817343918121881492262489586021490492932976477321802546835576388766836373921292403292389356081651352764155134377397731144944691368235917065757812718239468597566717658569583121143437100639173945139448790206083044352346867429489718559954787272691332879702192070762561193748865483616930576764364400221889237298230859730492990069473335694358958808417883299985660735133675746655625457421068492376220575598882612132316316010312731750633404322100534676562915380820597869782776348150294512184074064958717726392626690055221998558252671010599906527897976761098690212330750933315667915200902580023816099366884944170516020530031583049432783858665803680016692919542442199570199621791626411552837377065900249141487201855430837735497020566122664035655646589255711275886508489913300912103304153019416123963553371418781005223465708205401773341321728565626336124968457011726761434479144224321636236922704137644582799430064433223482961768295139428576681995233768928738542989564520066089991404458016104759094425759348640824696070264310415976243651725235686312965791021202075145735203070318632157971244471928356026004520265941503936060230736657190582241729328387893638049327304300091731630212696140828148521734123440148721836174272018332266421328643409882065457845360830135769172588952945922865406705615199827924244970500098992518919404441881106610798702422945843197524190010513294015826399447588122478065437317837104994931684125713357678019347175921372727983935489291030548429882989905530373756656632278873486501868133716926653733695601822627667384523275299258439751445942054321636211364309666100486152810199887609194200851160713042536529893689916712874777520936661729765165656212470969143369679236314744320618108473777021963096148300226093901896415431220582394322360855791919025569301629504006306040743919102894558621440257008211604646792237275932688096221983543011876547222010868143597804109817081176602803135715461389249320402702048438107508634142490395944130502988726906637150233929909588690713537495682197023189260224770189977866271024029530310284019838710970821093840463686778141427158319109664560852904704026805791264025768476849411786837707124148600777349864687842638905325629969415539837293822253460160292021829841348147486158216473149814625052160007272472019073118115855145355945762530889237199629259176743658557186720285912068590308496636630670385189066393594293750836613626746609323076144881072633202830743265797591459269881409444400337603326419907372603906910361463589337582239881710347937070539052437120554113945338947414314234160410680742901053888307165090714063210624224712883451717768352486250356718500028952216134016157093013375479070266868369006822037822683231560112534977742228735997827635325906702586586576262041906620757338546110795208108612466592852287998570172146895549149043250041320396525107529604491209874581790362638741710005346739219436967397765458601939330494548518983587132334007517115507286671214003324953442528968922923886584207875039223549607531573264730000721474777887668465068786205818603115633823132067741951714848520158987413399452091018770345765758921632815479053621747121967322766966461332803111443163562931582620015090144921328476506942862053827655462850713453478279432763845511567490563261945706968953941484680532058804031833871663764961107336223139639039008971967788462777851114875233615136701088688337946956595855309872177831359601303590727476270406181939827344002416784138256764073240885426256744062086962161989166516532949851300110380879632840901786400429834706577687087254934237464447669909712497847754216425261277940871171683043468971355569664746216257008086154580538645685217604430924510482503442743681715817583397725721604713945968143844356280313315677445767210920050350580145901406590216752803343801597427635144274383927309093186282048232304515319082937926601308555271840535872788685779149483360598397691566651624520813417846722071948028994200641223995230647642928777648828268895416657855311486467364776002773454904697891281784215634225759665319433518576693473140250736571220286070768986025753315697554434681833787320850913154348172401793116430934476815135244266122452493772178335151298863994554693344646254171915919945968520394398295935087182057257046703058363380286461299120030068803026480610672103019401402650244570570813302039168655418456619162304820747070559753924847702686411757602658807760776149308885999383541685786857860255774891959114976076101767169084003088631152911330637176574588714958951231396407896562705801780157246449299275490493967327892313349545206640558222010993645467054873490873737593066666432335011109099604915262454840403123668635935762049943596838007214021069616164887148937716903579228502983935574219155938046832872650090740931694104715185611044863295092844162640834813656760586441919207306832398789609215287840406463787884209729773762082672129763261264441930495069387415699788171156988203247218720320329782336130758813747657571837160150382431610240816116068259934281051075812135577147089820409085971036762060881416340625995655705577890179643305690007937790115731323337497838719264591890024852585625717107425901024767138152667965833559971626559027075445532388357119231597940275459378383971786456624994789204322723304848728300655288573226523766993311456057286967158374374809683782467350219017719401746718953381378029201245038117039304430735750198076541274759401589236647485410095631833247262888590666815681578339430077668483411453629596822035553752396881466282649365574473928732772964753820219439484070561903752230061420948274411077785604387739061286801160782103887255700579970352481860690474521372660853837276391282819290895535511175249577028179788409767608774385177016001424496392517125395982133975105964341124383422194154176702202324135368312031390293261566768167821877482355987815324544806211337490701697672117516121162036483364765571054689219195137700882509527387122719146529613598542737242271860182198533509929093325023331584432430276884355042111355662882359514267283152495930382125877715309563457367474854555604103223876748729958744616830081664483826221561799246220989615805607400248258042371530250291408057182876739596395313414845592636532850586102351300766840712421777098508982127538031128093548658552772961820071698839661450079057688910299582632176211861815978554800184169526309725220665357142332686515814136324527324822144713308526177907440551076417647529448135331310287629420762574083317245829582585628072709758583375945696440299743736122037295893852529680305142517105577773761455092830864837760131041566167182593920051595076085457844362914642106499543228779052285866828507937239963839942643888133220224017810329940132685322622757553739722766422124035289490026857433684517094699229436601260831883141669514881021738708787001170455751872878998285784839278276021494526045787618520385448981056862004481031671718820574696679851051847035030645005821546849766464604424574882299739221566440434462657136753770714577352727115283360183459951688002785329732980897261650063637405877508650569970666174279931557052947227320060108001816351988920076212742138411182505269772575215822692541211026449757771401851210851213706074910732552910686611013909610550065821280089676490632446811179798033483559258107099685151233180678901620629428853550105221957801828345999860372600270187399507302424940176182437031871233730882909425344859917118850857808256555131406414144876312042270609357990305149007613544036465282885283898375912051916284368807070806691199350432147280380888587936217340864781707172187872346025345677682938488717071064559732827092506960650551412515541245409366391852280289755094001682644741833339607530090965619796730477629399927845205289343269217325394217856850951050820179412637730034995980532404107764387335657968574003707817192954915857800337931794860265095649624626366555060097715410315209310882983328969536018549862135225368361930635031123256375580813920278420180850688136549538997299463708511274809664815209029629641836178321333461037730797199016606453877616781698027957415669340117620061741769672425144519098944047034409657608482825134535640813414740765352196224256181825911608598385400453687270701670133228605804143852587208476680084670072725963087163085164540621082977923570385254766504824235301250089151888546017372220002939207156845457293670417945397799721722831884189525948437969916785516321330079378359326829305838993459565571443940232715128781755962325263603204320998549634963380471458246159308688455867683552305008934951445016514033193713175536922187903501248030041243663538618014416600177803977344206629790329345236751444457372647471180013903848570611051293647111064506450162396750757382149678747905182601777313408911791463088208057077973912876243751637579342154245026164535707119634223725330955554276381394644213377668565163407945762688896190882207955259125385013217598167203149854777671259211705688063692807421438980262609072968038534673772136755431348939312847269953286231670351084511796013614824780380007001457981328337370930378951973812690909605417665034582852813480011216712455276345102747645714439056910555303153852793956081393996676669469303108380490008454495295742792646948634291602456411103970181779799184539356055696519216714542653786707817861056057301402650072659316303036669264996263684836122052569307280986481297462093747199951348935683517708275168143343359071994586373000439825073738657731062085004728162872740570669347191949239311374179252350323530842097288741139907264677328017156570875644531169859969027753802527248985808757806045687952265764055239609632463723184986532498280601856911703679998037862649481894153423104509030334264554185556367122192188361596713028810381140351012187098596474185949227392322398833951277261408132803532158957944671910608969220528106571604522079171529866528382504851030475115169790147633340791986746454996766186482313927619425788295113167720207646625128646486607529468269182919230445801026596206461753417075863737766463912291001809650736201349835937813696835231477948467452078762873449051223282956702939517689961374650571550029860742787673012538188336553848583410025698563711284470065862272924786508840653709777356605845712760849749509681910250180095336257207077015271536979129610246629913109214319790491872568292178226441447957225173852414232275088624070792006303280070687302937160490314891660188753924427104606514314217171599892606890492738771496361972055967628287056521072108496100828529101431291541441362691157684823463751680196740969572516545430766068250072056691992321248816679866977214388539769236900683801029268489110611876085625569443543182990652305207345864279748186520085695279270673196355570648837132676908051763953377847736828474012070040523926980045823487622052368245320359722506146935645374142597986569270514144692090541258364371986393207506768107836488252025053678023176054776885667311374722417272737448504343469831834039900702076064772245078304655302850086468147462500318138457566067990589187476806066828265762153265897481502682649517806858792793605426919679854292814221726331126562748504063439272991473917736433277103272277245743279419664840242200227071613589149838515903343551191219785315038564682434173743572868516360861011112677427644634771915208909369760051082561291652670503390931463157037440946106845287382144431828067479451751059185173071162523161657085377007912685642915068836330781101772324905673314421110102984475922957629611569649936813441562445520135775534304254956602837962229107663933404979220545462936945352078325416105809494692964335400815252916775164926706409379674945037123626841777653640936101822174676301708947175285534339770089853813208958052239971939957460873863269243358899427024021558656506029662750486652723203475619624683985833971149153279093277590647708515562455265371651270331341001325549767270551948322336811062601746192115974411099144260520814235634660925264868198650261198471778072163990192345893272232413157671223713123220823746012649396934653197962522196157931699889743892216253335519953688875765559565615638487295232393483181488382114772483743552414147370697100122132089807112341518350520676315359347013802337804221731768997130455272651824100864929184330114482934878184767384839278983836905187526303333416341059019159287632088523325537042342511160648905468091428901664860178404425667512777906298785374637826425946607248801665855878800118654908821778084617546377851855060265148762257971407771760645049637967758943068261174858754445069514538983188752168717209647797727632928307698178876433180330674915229684237574210635339315301264095892905703121524728090116512941750807182420415253538256036173768150164240531471331476483441937275493616140260291712832666006249457364845857294975293526101837802362828100277576866500908791697253960401673111176088818630993214787762979832580428772986965688914876751924499380207710973019562636522072987276271765387239013329350705097550639341816066913501483748089650969731614353722506466375760596077847333470738097088719663042482885481645147891117990121023428950865048189561519330532673511022035080787414006443728553232383892835972787912946262490699173354394261766844927859383553447748191236210650174086991096625169340563274900983521208379358527348564521880631645735856975158837060846843325482904175624033894586893346531365604203745916573704346534558286996454569529724742733584195600251526697001589883654120827674060948715616362434317246598341865064611159938058973502612145383564016892750604369454690991607687242302223520877893032534796055475284054593957656766772291018300625634753553544695165316687543313829993599590442875331603262922517601130599048398585221624864988352797538236105676172687983917749950267891705788091534716208392960520560910205298469161861471685815720156554518270114749707594923867537324161766403379674115200788739599196299253688608729477845539167681799592348416010922605420775667263505743016035469540678225608036721565176992013760024851677589724102204710886278506244162050185117200258007078196015386922664211291758011405098529647285930550968184332379227228584509838789845832699753404856184783781532606922076245741388998082612519860421610242423020035109512641733187059136496853007949811855637517179679346293953422299186648491901287206603025081150477866625022331835436555147708719768863548032897678211331342439850652590869345815210856282366607283918594772845859171508299558922757537978185395389990156952405836484475059538598290374066120143389018660949607400696316342680539026721459507762180111044097481063570549958187044638509241899729683238591539474801016038168186810315160737998691614693928942603456302771111565468162165700088920740473844895173048674466951958067910409378329747169950744139434279614306659664345124687470756418299056030863823699114133709684242890254830847374548589613557480935752360338340162918783372360773814190388263993693148629111573315222099490687717188625230025708322387240277658015352942014659659656750443682743286957948298324319846232996149101839671785252007274393101602134971494557340847919502372035594822087211641425826066558424786303455206235565540870329237550976546724125505717594097598587613116709148280119232728884797409830045584294701335038424150644903597360018446586528408352891401972332739994371648543979833559871670693524517623758945862918013040028810852749932861579858148029346931113563790195861584620601976281652060792370411113714484321757883893665797657482196882525591678985851431514063886942156151763766952400977463002344269843970447595683355321087639308063887207596874352544672596096797318962939646895957665908590968050181419265390802005734325404107819417196306258771829334856257755739125336626324631245094478757550227360026546992957020012412840697033183323307364568955170822863473284220916408821875635118789279068407192930202303672945686114855774629612191225506599327129451114618983202061744792377349156672801152917673557985704351316815968677452897846746515368872603542163073965210772918441360025332253374188281697861504372621794619458435781108679585749876767463160396645877606288102191524063627437011155568197933819505633655058406859842318949233384141910291209778107895515196649424315451259205662741420822579178528866015756394296879233337051282083008396177226268958711354925734029736135099550094903501632646607924894720039322153936127476695466902694519218951332742141095646291585192219699898861922207894932273470394190377319245482058601748421596275980471347359771378725029628618592934466831888913018440001407696605869786119407342001715918114037037244198631337267348614054287174115171986540713301601569058118866775573096570770391342196882508214036757948545064227717562012928770629855676097165989535330707379396007531752038150951755263817327403098316923668134969276311021290264003439565076930830217131139664460855938653430776305036832365858246517647465170873472436661292623175860010099999967657274293067999592503933663009296649483586651617643295152577996868455722335972157418197033266630730173078272546761977634963232263178574703147375763091526254194637623902397004684500380260497623181241763071534617899149044274833381020317565330460039868341888759589872404128403169762191572948497962818898207837980819190914882894655187278800906673744736539188540549249878396833522315853407824581620542210282516606943539375397884389074135784295730151174789192121345417474965832930076967467804248945342037861154311514693600502915082168607830511779095420686152478431068226216721877955124700908998017852140685791506895001957540912855651400973409756169819218296894773398228991109130745858573712063067428445514541440737486630637115262950215465521503906435202814439739398578456672602162148922940548294075712846939314107587935599629061386315885265683149749347371146056221388673113028745560566173709326625391074745989733330923564210251384889245096249347153328710082447483512517485207411108280575039654311002875769641398857960256934491373589844749943885832912739550650331478418288875247028666084010971948312553934116836628947635544382256814503557973352851593275207869192075272057888990079435804423741637749515628406071071614205606337568230840959590911439786549546348491716308159566548394059124233735563947023721018565179648407506398099905187435267236195240145448047905385782499142961776911188631154558288534665619824321742570070467887552759919955143848068041851606991976158619512845733994653407387968005615898151684381003444883824794621792912834176246507807321682555655813748488993450798910697201900128961436203162580710889578993693790280919012198342439133409275491111749125458525582515461677778400292697894511386344146063273752306106887016936208404595532572299054547035333840306077502874154792459490737676239715207111185458942464865043964654121594124421556781210010191828558169240964966597065055393773733042283814030974929147938983199395285959846492453536954930531612136742073940619891687594380167459360306817347865721539829367435252523907217717219532594728011528451672606666882462405942935472867451522437229931405995568857250214629823537834229157849433784854958901391511847438357816651858370283415719853408036514787559645895111957203015293838210396945300389398397660874570879268347926773866898215690153851775881689777981719200447951101087214069425517720651427934229455197934975366046526295413354416028849586657543528801248074745107347011169539990572898176840704223901976646229902080768424791565875454688076729880488648464430912090622609586442645206907820082716881238481687312217409666672305736148639143891640202707666132072568240292029663003362587156939542293817815248071072543078626527803111968763421197191719871940903250329654178777436808907058729721128554990622885460161171964391733044617603044220173812876286754261397836310271551318753174518716322432942588740066402783110847254832311987239381027940840892314422632741294311268990565077026773680315051603352387283175168671540477706682703379239212402985247813413383527156786454473084324750641763576647348651574052250639913539659990475996445606244178161411628477263908112468405513443528741129551011010801051025654160365830592825909106900624539478354018936587629145733548207788108225354596612892784328637506958789836343855015533476030799043754729426951114755664364769399582350327133278536349927109933017556350321433724813428089996369033834376226130392557684256276196413035636856801808189752363721564081720053572941250597971803985918627547608546161750908477992351689075349929817217991203905013552479076997568979392097453369296051777527123118215444243074547717509712660895590427871349946072415135972564535025295133049147059176886101881951015316733532867344916125170800589236665079430947499212804266370207822260352131101891580703654379914342872543617282709242899225278054103316251667125289839463631808994103757428046196449364670209285348184427033037441032028620201088317523913266238477326251851273309746622077266328039665616591008861143915857099006141948112947575258016817701984702302350924973160557518763024531191197618251766383733107915505145839698138730412733918476389473808952095423856732411298680793256397700639359028059225442062932931272791380443480470984459243002117281227479378972634477950935389289673102836191193903005414793400281822113029520750431230260317900443978401562524729541424168841826289178196104835346386382082050854521564272861949957503065393563491320818413156432817712508984666437130506702640298556130598358390211338023061480296770506821939246912636966875970045421310367865831501657418629265025582569905538784398566400335865620829607614062923057749256368941498034033434068421028910662824376868598176107454331895153698449418433459612519577525262978414520135864043292547208289482509245068883398378537429423613464311185969037383847106127712353615105318067472773130164436780540692882227004790598469575075857487807078636155891818352689014371780163692851379068223607784327146120101996862867071222037591170416088695530448847781464203987386391566209857060411833939895242688036972158182951906422076336375628386393213878572628649111149958555673319674410097828717714333771566823442162386571103927946653600240709732264492331541761005609376614295801515419890047196902825977457748632237472189121654041502210363061606294894206785680303693827062726460600091477777627437741337481535102102822215575059567384832597724043564525320951644554936651783676271234964962926538153814831561102853927102650486997176888453929676945210920183524033508095733523558273759943744741894970375310171743515418835513169879155106664544546235727526050985429072235005847957523171865218521185466429771932446817438268088266871586440915267522595854441770401975442413403924234354515131498819638559142361808723231029914367358679986188779339931729381726040647526549612830517400301082936717117098909551011578244083378500635361906528692269838586333728721281523831266425053097754167788139422064860407278706388860408961193817133447294401204860290193209593034862757288084645240449105828663691244103715325918120550862350260189591728848804193407068774326503883278014258440754494143739009212514588439302620206917871103545962725357252018707854144839450801963287475134524809627930939225047044701786620474613712100114323488213009274946868906302486793540089580722230626351178856112344333166749886784854100415755273092409996842141064486457701441628898389782176231197489326531003714728679605411266967808172160356693804750556883042839368796709783097915936254973591990445218069765216827556247330947394142647797149496710244506147190689701970545207041754183784312956628892252455022133684873233708752984173815917794616252182093251498347464254659290220583598138913186464063377139941185955700152779443974782723760417606099057997293329089985523701162393870799853733494039352214347066841124797535530126832367575402731422127336138702120882507589283426539204219790894618811117438307382186065667024241542235972188675930707778671523123883882562921169042864551586881707521889525623805368725548451403223626253837569786831110281184733958043966674516650174144437795084735220959182497589136700867375198392231991785180116432726906638911168210489115260910117942905257964982724982719831710044272214828162709992282780204980812414353120866545771324437713335592310747945922202368027874753304800412358225196213154860829683688212132251224777277085085030563345095521996256672597980454178941144232346042780401274761384294919680027607715201775353137535382111968576023828857920725360305013199709714493344102488591822038260712390536118751804134621760636373259695627887244642278147920158641845904226405840787360453365636664823823483170022038370927251991744840238792399569460664977097021606333358168830861185618389121081142256910546658619358228278734565521999985981878298506558003120631968974002776039793782025042778684514362333679625068661702910348961291141385243532430606066837566034439287741364222536270255961639448180267180805163857856790346645239017880858224630871097847418530096439514460526155743975995344519735740544960709637762324693527972890163251705246579307048289692769819669545082640938200596242900615567189818034395515163539408762342026727783497512571261888720747585095681184541602395441955709053626253640421182422737790266754766503798791245064999205103636946178616234767432670981727040832390416410851332859556219473408565390521459647931613329630026376761406992664872992443180360448368996414223054103522611659284553894354160716573731235943224562364256415220019652659204346566910890836599839385291317329538718632658290701195614207864006389386328403893084686778534154549430927836134483509888513369675649318057735158474209715097722396613881563035953563074420131236768901510008924479234135243383660582649224991656952383961522037775286268327833326480243989944531118560096817613257327102448228124490801000273396770908307982000858027876035115916963513402137430939931510902381759251627427377365372480034922143137562908476183969577884887634639146410256593611107217073293696500743442031293646473396304625720649049862918837601128597621644223698179005959263043465409938886398723858186612467676823532189695334083545824786936642070778215554624554402995614364527678606591805909523754209781924461236137819124979512754722086591531901060083480885527047114032575523637099353060549035944128645333204090410484369920375564101985361791559643713743391025170759137329257365010778517792078674240889704052632084726007884382706196247933238518204503307465378762571645011692970946794103717178476991550357697526224219065631934318921114669912821644453547779900352871209488270533339286712036962810160934806751507328096554705240298739393647381932997676276805164146165685898134273353382876887018783447912936314865777496866816704860825337872739093040736827855040942026608282325343921099557799484906373819937674008302875571844153115202851480590845907309497326815382980282197733208303382291915091672017294551420478456891612394040666909079637305587933370439925214086890117585066314205199456434236965990710888590672552388800240951749075876179076082680036837429286699195458726195362649428991382305592798845259046413338942900041343784783144444054114797772135525497772490455269623936548803634296932249555688892970359563419670920718213652475166698961977355852854500516412551631456453502156583193381381763250557258278040387045245243472269292776042021412509874848879936282898600661584939565763775754219466844952210552578492547422697321872385792483969526902908508732564002647729596253487903152158438927833560763398961385991450760948326841641957801601287264677647707732189426466871055434760780203237287804656454641011517399646666006071823805573517805976558535737063184914874492477689973755279920647099245080861825377722592597277902398799361766916153296967326190553749812983492534834771746012492405205097106103446964912422961385303852702275138627719879071629588192679604823750216785286569232870466323979803443659091780328760387490512745457619848515870779889664853886164827333827203032459914396896883236347014097022405563332992875995652732073340347557950800318819319770440877284155304518371168853207008776575833886034594680094333885883388671267101840839914488115302132160290843264882887112494590814955439705210968154557420076039029333441072830971797380422179905232347666822333082093176319463319404242740896493692562876148461783215734046671013317186406584573048230621809578653559748793057337704017963246412008848189697398425888209974483587565166205404426917874743851784847813731175505165848291831700080008204752599963622871884770846394268238809684875719008990557416274552292054476952278826454693943149418293744977400406034812522183555697912003848022032675982842709713755870935769158315133499363050248650614294722994655059562733558075482692328234295584938413806309727152678759364159566438671333675477366817285645454463862407181201137485077826141230979279641697357823055014917026750151491698197972574684358446526948197072065759401527939756365053289521060490019682261402404924683627481396807045275992741838821773371870269888428583243274319662038819680788806281003441550024155230376099440558904449237672328029911916737049077795918899203105805825936396105108083589344821351754183541992685893993976006434695186229054146734197851800141646260506127292152097628294570877930011316271819201398347543818010197371652191810424524344356853812177231813519664465732905034682936479802623860775511085409256115732225321366723931711511707235501805472283138851744839598380240431790135084893817048848856908004867639715393193313800032586836506811355781845825196543069984729179631879821755465948771137402811791400471021213221410276428755186114323505937831378356362530702636631990064745162893415329916335939751685155213124260243148362557926184630732621299940988313799074598556882034477352798824031320933535803532545932926274924429776979556873470626525491709335339755295849892756053954114046424745711880352295912472828287956112623215585337601676819532229143432483375519155282997309833784884388943486176159242319976065608824719149364458986665568953734310323602447266455469252604904192475596203345464432647351932440364230084443885820234975975215038102594230597846935542960862002144494952516296932286153285043138837914016264658071502725957596903839155500410826075957214198838160501395837878652198321179981108477144618380889126411814083563122832396117588549268003397263243935396850760336615073080427117679693733999451602271735178450734332614077775331685149983678822658341491342044088490491567396036492781227148818606247675145889832441538944412990818866115822008323028301622211225428409384785352114387303228448459220800768980465981222558723038253372063976883905730988989998254617717723146497701210393781516400746680279797057923211571091930684889445923646276173430515730190647553819351821456379476673519243552974977926406991265800589992023359995008267884962310366316060022483306686461088297492459950362483041100670277980066592412873475625255016951533195401156713827104888314995272595438784386728633768600274056041375100936846206044884490865077730793037653742434324078297057296929607510126970555852546152021549123330795216790349057964900881662092946030107653619867442937260439210794807373093344718896859145162040780540358858439373638502261240388293394184774813923458872171310328006407797739883590784570920195872812714816113275222072057521316600326780084346800948326239088108971886038360379984819013008663138982102503076527123530941347495546444361970630252776007269930153394121693301005482411958906854719640221817538599770475824606282808997266475729129651326986008360365407243700685423438228719308081160423223279056740287186000710145309346482175556265157194063297184555862199015828936888976772525711335965293441673162483077126580440049494929401424305209525140318662561230741513713705572788060960000094988063238398456648605254686984939047486021357907729864814638240995114932295481836435075686851299046828913562667568759389911640179126491292325899254534389123456027593813912826025704126309555243393815980663879980621688230424476663735373413128259455302990343529643193428409593699318927479140435487638819454499151808877229323099387126144553578930108786124839555648080438574938998576394439699494417491315802956723649818873514240615071256395682453691223721658324302120182600388845006527619698864115674338315897173597451461620378202643774520106364443727752785162514839861691471083158361559315421661164844406439337687172010001779106700106230071507019489369158387890175333075299517203032847305603432394454173288888834428014114284142370400025980881207014657880341140438951263172863749882165972512239865150708589342495788520490674323840149465220937191576311155691005933890890376991080549072705137817821402186512494816137121947287266352757687346559697147160417167387209686343844003618084007744264358869137608674272630028633716282767274885037307503031464533754792244718038412962739636226165143167032510771580375537674608552788734892374195146018190908381394869757133156001527094500924913741817248823107396218690720420857569611795297714460601402751259970047902050358102702797694954727631959394985912784553740261786029083139028632850192761244980891691751838244417878667651761696666871734838809233720912990828224799272514314423739117962516419350290322917682607351158455392005707508652709972082655846471010349001060165461084447060617680511329234735075183944937780644592529327669571479741606050166237226351082399474658870311516526688953746748562776393899522629261685456779609966344036853847018764064407090043436021959247825222397413320196718892716923864276977732014511823572256909883793691907429102763081660015963955751608809779674363066268088125704759106884971486197948124016731846813231954355511072587581114329971514318526579831242030286555309485612191441727208871131986217774972778963429448687750467101568375704329314994304524099689095889631941086440295388921035179833608465584801835567444933442302419698576341541609203979845330299556969563802557015151411886006178095022932118904786893931799217572143110341219386254694763821291603533036451875283047153060450908049211626989983092966836768518038214045224598761639904309089317994106857210375904437184597148499301481303755335034454422095355713382982196085318054468943090151982382345924020507460055697031489607481655603387563965534213572080601522269371284988230938473391649454127816134954963450462098768776048059927659591367781829244080581358106790522532445789665012618048489737628730891080328132697123739174149119831390029549943947093216644399354213780885178589594706077286822822047845411743441288365679881243826098329895190986505004492956700855217470012079328554881253695241365294952099566721398204022189524945479904655002154405976874382659148956569068933236418930627784618410067678597070338529526704896703049603894718262621789568796800519889740348093844141392203762490280079161063423357570931404283949478505515288174241990108790349284098957158509566277037061735272210085802761580389974259656449259583193651616658732163103550062012050420453844453776495632805283326656779861955324043971410918107433343915788642110497057687919561631254078145821175076197207070031807413678083032756942266488649440475334426798941247924112750449582359168118814461177655819778305390040007858149351234980344977808179003564926421962075417093372940917761536755494101633991952771916410764062796595236680828830399371760428947437912068521082600048070328139016062535272663444657779996387524455895171690680429007690848078644387834370575140805702167455008064592952922321721415540660598220577875790088760784987303889211180582082679982455570613833061641823217605347282286291095027137887616009281142168274538830381220060220160543600242283721100064463431244267616610720137841773726225580864134468275177035497803969591304127362117498768600615311661279169286609080894686448968898635474167549400436027679934088702270679416543763138660242866785250803543531038448510394432461547733170006995715856566171830033037763833883866679170192870806574838002014871701168612988516782682010114263716783704150394175439945084674741187087851466860553495782316368722607877086239957175229569997992927370149363746841634363030207520964998652325200744513928528925646303335260447916302588035109181296480643721303230640234112950904188123119392834374142264602677336487190154794461088526963045815995994580628378797854061826993611407450716219557313398894071989138050213778052458569992268904818056553186308334572406151074318645951825210230032525387786594138041458651130431163892324222234840546830398211710313721669030653715829722816683453267553373323492265382972656982190617620783041869875417850232233150789152280815755182962022288572106824860974258786849616608689498326897688408770983267526795251453658257343113902732097391907121396457350782422335611459637151466476871598038521105887870647196640231659383321545452129686042201841127156621377916050069066684545611427045489040640843541407543267629244010125177751460040405023869141770633660542891107748832008250862031301026233669642502525613023737131677730099182429575625315221011578485607249547832935234286539995013535587780673150940953366454145720998494154360421365288917527849382399649481853628465704180457027199299348563905012612157945518549384018706443002084515845517077854647687399700730478535625794064840208432875346315756204588770350575766410109207722991618218034242509530714315208027758198965993578984849209555148509319908903545491223735973912677151228137381507234194055315813971937084809670054205680890778165626161905902767875743467700892886197929437623022851310294729818127855930950923874032472090058160482528799095731566121696506217689987975022552692096683370982677578558604455800400266485408301074317983721095723100732108219155266184916881631905799894375243367457428851212950749275534444272016728911341806238330007907542647295462618690123286823910631867792411214951724677582990606495945353424800717215679230168966305531838978342768371919391982314912409955596198915047704126912229666876606987207368930028576043193225263733400514174412882921109468835071739628765065119228079858151798810221851714920491948271797772807097504349575013505813378504741286025197977873634042805245775409151340482159044247875366838450578374516792975964021733668731655502291212132788624823592663782569834542611765523744540833477916930112896199089574316443419633157202229502993883642787807805804755376234758692493689864943728334251079298979780044512111062965995607312404434311962186114931015966932554738887581273236439066143245365530996283941109530066970481415039383436377129044899517543513185301499497298549442556046498931256861755035598688819315911900963127875037878242381196838578744663484051802655836672523512902227125282985933917294307844268170194530820473572447764037510238037208710365480354261249267850588903598182922192096207739286792814794189513941596460607144170524319611611719320183515406336054094322248143801904237133522155996626462424720458698372061904600282254880971621069599457961354489977361033942004614819669453563090551773258079455415087269088981403832347111484350189223667584596996482118983407335147949718000841388355223523731130916814790066903835342010669488354971149196987266573577810217439550527643610999637132026188897731983390766192887038454073302424287645197275915125141806338073590313493451027855258174793600649413247446093249810282976522460559163226641517460162703899541470632143403364167964661690990847281945003567392019555577681560636988225597948574719376593815510354923063437928544285823515656077124578902246438985742313985993520761932112432483101657515132881771796959281837263020321270522254436807795196475273647263256972488214384307317803027806419302395354266443841813787147770016973685910118413928363630148419424547903964185215090888775476903053568422976256669811232595456123455347916427978857787981554276194334431396649187764847608149017130467102590962686613132121248583931087594312081266024159715548204777973599327810395058498333641589907011892895434296120485666941814937253396464955229697470823230104199304200745601873430420271068884658453170029449568404941703274771974925444775321389090231299041148028998128534677850600753638173679672333013438991804516171597833820707908316351484765224687798310150033131054869990557931273142033690717367596256524742664514695102768640892745962600941233730742695519365718834832487742008640121649690512236284404463389614294464624436528990850551137103258465475136953531728794712557671981010340204134151194929345553767650420826533947635224317383670064979703837144120414812968271146791048803943119498337629642684387183011451681783449800858403685222606225797250544729469232210371410000716914763539764207403729880368154813535752485254679171659465438431681851210142647721079892834783343390924222998012467782676866593913204515114178126115044295546987116310594157289426267539487701866412510148891524076851998459781204550490770596864028695947519127038859472396345623172599685090989363551593797088134780966100706626196991419941670613925752876245274861471467410940053875076865277749707297429648617390127404438699911756952985915252284950150292055253000525592795965615400143523886213358721400758774410680211544998739783247559399542975338631612523508764392455835843227487470924877550290286575753778075548486528666707442656139019080860598606873272013903827213094721086617585896314371925085535899654651801736643495716293374173069192657474702002121715134620531245861174040311556149367692316607320240737508107534807253836266632463046579443009980810623295333142725285684074371139271148853587145347838917733727186689059509873514976113938064142119769438604916842555289440692946538301129984968293992143876877717170466529802440891793489567219777348668987382199039062627812015375721537010820464942248364039728656594794911887234552155533657274472044616019829905040722056805169554141648699353618174333624088478828209740877923362024655339959121481369705583211041769483595455603700678307772869615193591236200985149794901929157571845373874343639139867507854196757931807701363492265091374686071933914886733944592494757800036423349887144408318242671755063924847977215151425125610487122435465587554607223857863413509117970227523606606805126921854322503071559763681066824388839486766635104168891089176779027452261010351476070125076543489489019615688686530855168172116666927888408611608745912349738265955588739105267543560587050124022629077673540084316965134119105122770822018852493157474710847699174538001424709953674438552143341830705364299601810558161575380610758125793491021472787853520206528890995428315176638722308541627883927475177602132912705520837016568599279910192481303006053852226112137788236823083868159273292251647290824084401028300265086299028705278435099148342807009448558873909061377418609659300122923184954867615201111396401812011913008529632049442643465702271244589597638318394552040839573028869408938019112803810539682678577120327905097719064798575993270755201255651480058483101313812185514512504639381965105424709125452257112978741370300256053195020241393455008486592650154545076536788792039224993467776687212718520326817933977090590447695357083473424448237692353029249102420544894468282562566053554043229977673665344999995889814846625082427069063053509777181809608762522944916304044566580128258270472054031836379706890321101942531380067130385063119726221577640847678423281135158955534112246817487106207444220118549586755020637811507844634525157580750526759399779164665373138736045783012435136317336548242386126054705081639982376911476595510419071854978430142091479055694835833731621898840341360077976646808111482610770896036897458191560343092913791301293800899546636210956944952682315293826053946028385320106207343187657772784247700843106122736688262569951789797057839659099873561098662788523692100512211429091316191968409678169130307560241857347279403379358407524821652677125633142333898890587610468051041962434225577625026767951274006759152136147007301082159797372750803074860206996843559935496891947765921776331846015689390898412624954536362557463688964939985595328331705087045402525734858794673747365536705351011299718215860769594824952884633437156144164117986519729100798491753406752664403106198858393788111574282484475817385161375372043012706105017404743607031598451435340826040592309171547177768482463951782524467513405791365081252696654244246936330712336122148969120792720434043743836698866459656525679598431801269582127363367874059647014793527079736223261490635377380298567577743217935772644054192584317838437267482820903472418076158246183134482251169790435430081015537366740894945061828107585403250401226811045387126156864924376257125775835103732239150874621833054924164194645324032037080682929425760242694549251064799107581597389278726711898688604677989028640208159573151808410025122499787083312305954402609119748170328207630452951115517674263733131457280132177063884142196574506707395643751639521128697636363797706999092315234435660881835724426566081369319887841882924505272250648557711207228353902555869680734588921712889450945962153933313954308783924498339528262705807673892691520366368031775184646506852683711709111720070339471235622755347747717065047029388074009315115666848279886351823300893627219211720255436167980921337016027636386804192366050499035556609466389424239421639127193804818500775108796535015672523135274770925312635334114579149683152704975444545520685396484331101120260428808707423228732520766395927921653115834260440821413774725726653710701590496867211948595722061071312233996378023617989889699674468483824835810444033274821725045665666657113597909542032678749706974878107962092709926390008479894063576930437497887316329116547794001195123277340815635046099360606784442783061343485770395394079131738065957166704916592419636925989114104586667420959159172071544533720814448294390415444765036351993370765808005147998860654835515229173191368816496956129088000392450330314413611619938108047446644132429970360197858590864712514010146889402657829900411964559050578349322678994387985256728769200168192784205665386660814180083873991043613386135740582961853362446412418486974473906525964256033983717289354014298240645392762727678324556506772954907222711261061032381678674400843146869795838078521496487756262137022582892955482914434187918104582675926219038697804005441747675415496325931533074652233601369154395560396408155576891897455158470246300303391076028457833265735227415069966027402840336253902054644449734280792803288883033981636016907900685576659517703400924009858422927066219278368805137503228490358433466344490349517769037795973638223921311234354576965757874951515041137100236844626349606254543850872300795289708413732197577838912396553385388210407216101808843733650262361684138337190693430088343132804033886021893684770325546756261353749027130821692329495492551902567658629163448493225594339164562785053025174440947497592865886611852613820485329312163380598219970673160170672365949972949795564507792402727493949127854380419391035440537800668620050254593961897381850589875729441848879114249633355081438619571791379638479386026898401643206342671858545742566344771514342897280954229309392231584182576310942275770479931011117480020892048796975724907502777348630154579223849186243899450171934878001553326833321428574372901589909823427321277228512537801182654734168686416077316244686862627732572304444947193502156534435908060011543420761932690373575446453377140729375301355305855198998427056849056474218997875123130243309734969977346262733943156678227687225774948208224611215882196144467589130661455339738246235115980765296482408940881015894268843082507272930086650562314964019566134861423098526095808952060801423847376615439930630170046910515383438920600338945234420095616956629915155916465104225227558103389086381986626299591839739789389469052492770552231038981754237158074123137803138092137356888102014091883930206217959661779424899003991578820385615131685965719425293113038728776039644263658812217324520764625807433723826144784379210488981999951548101812896384293120002073680315460741846994645259550222470622265564786130163412041508124929474620635933396563185615663284070957757172383460491691992277713280084899514458685326636993222968069520191780838869048404067631514058076216801998161568927830171297835928800825907082979238023638871357302581155206883396636759444533582832474390148464833125587003236272326818694286301758369151222942806768314184869429233228569815318068309931161439749010456753681056306488207687292328826881750466384116563579370733188500010735614700606013138748420077302101436041908110511567816484858893088803384115539022864500484345453405304024568713671110381031278491226872682273372816675640927786958777541005757108384128931209207122297871441080900554866309003678980941796120265486774975567685305041437242799103183788529686709869454493120919345618801887899645546631983684409365276446634566153709410798435405981832729551572195050816200776063369228915203162488369726374053656990549310231465264982190565618966763172442752388939885757709974129981602130975240262718160675191578300135243359906853632386523499078809843816099898019204960385959158701376882802572473415324749401095494316003154896517880196121890522543910353474047513128876588250961685899935648008830289941779293029847232594364543711621520193170492333345948574520530699786925068505141457688311833809833600857383024567550281674616047779810474224291304474497585144502625426871782139513608505149650345114890198862788229688995444136909319982742813893255050411156940906596203720900744942881226595725542490004625285581506042977083840101315472879299653334131563621567078536893531619908810813451651949979405003294309246444734843245695017349484392830130360827702094016556279938491759344530247919485261639112997439504290528075478320940556149068506596641499730628812383782567923579800603021949971733300964822617976697243287956180590610564646219492206440769522790300307415751545655980993358012984098231642338272462636698139488505316405371865964434933853021158109020510302183783663735826811476801404083847065599772609676782126892438707679684096464664946179629203457234262146690650761131325907055288309713880801445821140841647161402295373946571300457610577140865838454586630896326273349831141992761310961926999298318157036176011184847827779295780643898376612434711292774077540496577700960713815946627485404887689263022016922552359932984099170159442472152809660558476335513175574320351319500289118615148459472730943921460999084946925787471956072110519858825218315336631150456812359934941393279071358862476746494787976532042439380004567166722259411183482803171618407540489784368472817585585665504408046296999804727115500677133472493260353485315913706506016931143734476029455465146794210522439018757226808285908152190226782415380585642336295714767631280210133567154333916931858124356268533275707526276376701007085726270673455635550909770864313634979235205164280436779480661087607318567998732604432285255704867614841299236673984918167240028942137242288693266897218415278331877809465254936366268205656260554225104174078470674533048979080942269332663395785233591297419602575931216607377964619253708757944122990424040176746454261460058928633569635028691356238663349109582442863701771259093003441945924902134528867471193376802906678626603568555406948109945305395313751004242982505701257191393312425810994419434530499284664088644972022007503815084484252004688649878861334555850795625924993227705474596650716553441818412762079654365222273786809809999367701696051660269153834190599498419993781988474413941169089367304083665698533826245892551482154748810207217909947894464851362986279496682904074746124062960917128122554122395126980974857094359155246224107933586785447277011369247638636934887397655532840450064861603586304814712029086012053009524652754238796048593178669242284572803563210317714154380089148378852823049571833854958295991926805113619016191481825369502379871031174408230018688460404984420351131241512408667982023682129824279118937679996311370318367112246035722661564843517809705625480195034133004264512023229271985263873356827728760111362070959885572328005808314409168595263578930142280713989036742772936380912346936065904778841632786209773898045365779154021154619808948080945388707444863889561295724315194641231278108682386724320236640982448806597504175881456210331072732871108880074074029801716067749560722432544187107525330558390523930592743001663942195685744426970767758118028535570290639332575850156292945817885876598278546600522554501431112507770965730282197039382924741839104327428788690069732268228623813405678260411734830515177830815902869363585350752162248334629564423951722755132458569169031111331515932273427791106116729157358449930372100561682374899990426918091819795411943984128391754287130126043167969413687416046328357652424936873721195824254021312228997430995449635075097934511557229986359490391634583079754960688361765316379523354320196531558900537121490687177091334759928333057859040206933192889549093104745081470631850084778806076792015864068735968592484558180716289381294656622579325682892731810226614565455182853555703630849852379226325752276543052273050279509566357981710792145523782575897583331742076441315155618356610423309118435681006752146757135755010322338142915844539579730472994894265503176501975677767554452375317475953166622886736057724879461895371567229813773615342804281513828117596223294037359182903476855226285839038225043596155527150067406068216130280284416291867629592540663790273947978950131731777259176991082646442365054736820472438832699526834442711415030999900156029395539032071441553181952028731363823975617194010363456185206300550339326721428103571005231640496597550240667375229577640353677365544801867696241785134193039034631877040817006025191627139824253141890659180245559933308956172288791325578043991729202042443109912715533088075042881688940925843277254509610019235562315541597000601264254969830264268222586259086593014175066695238853934503059272980319790040609595012083599649278996849610762837288879533752731835851952296261795147346420366974913141451230050686698643263343838056237937049677176866843875192495624426363317791238114320912481489649872192038794765208501764128409636455125424189815962349065426660703073499993280900834615458645275743918130138856182435672672808606713548688035467034425212163904379413954175139876911008913844894155362006361941141393329423837615537350562747451338325011579607090820410111751611135872188283301825210443375962125800787033956460521804523965046812052322836019918332259976764669581433803502849007791036060388210794031304441170793537273010457841392298864656720811892062737456050269884739123991911674347119407156259403557802630447497826628141203808011815405215226233876834363507454026445398776955567838104782439551040848364708039685063072612584959358924174131123796421342408313430482208912972500877478228079435330929968423986328732302267321257813636509208220505015204047990865318743993722801603677360518133988631699964814932246492824727959710957412836687034697717747909424743321343197160405405906052090877924969089840811085879282449910659092015651892434826184579357240024169762457181147012282957599281177173097939686683364667168470754507141624441188814131109930163720626222304032407017807202588520547704484046194073952571918154138027003938558225499895688173024810371387974643128798949316344071122716959496315720791358552569404256241907148859488076411262343232614961151693281313531602443204242940239037749615598129309564458625851715149920617802759930483085009021610380819228379951919851277874796426008913097015535159401692349341951590143489618781514187887265030502020038597712464727532025533330606851538478523471875102698863434848321540409521735492836112605719725100042143811988026814610513738717349073948169415838565812129304320118162382891503899075413085771323579694220136326472116090542593035266749899597072944998023588211800471721321424899531935042079489170747200398153103295569441588464284168757897480093646951952606117451698610992313085263928029871632046071941924583659694128894152777893095927816766636680241472948900340833293097288744938618891498984397345272607938808592839112083820054419161365751275381807670879753623005761898099747873866124487053392617000581915322496402200705029112531111546169679959606296564013620588704695095603063055114877506175605892895119790435823700773496201143931148702732613369270357996282420269210276014045947054072513111384381713611713777882817159861809803338247841866089842875058727607835687138596150217292602820979242380680026163378712596692525886489260339501033960019163908386494623173014847446944098994878230602377491131998691674228517645186209479776208212889229682524312024123584308292104383030618488561602997611542413583427756520626351505596624160088608180554863903692647452093102949777109478593696956036411339379498359658283314736589288812092352957083348287030088775159102343432910746577590249976917315232886177039467369230009198367971365496612170362269357139257808411346556405611808515720638591697807022845750285449071549278102416020082270074086173562917527432069985974078408357405521672502262383901582752180127722694674705941952381997315120807009351058610651340940278475745262116147569880073062589003532420704455987990298805315200437149639275612355688517415445453667637242573260112720390331927322064983125223551329150963823887490019800864378227384931830555054280394789692402015737851348733684255215915761433786130538127217386040200680948526411492231339709977855458783902019735457304768229064099537945987638685326669189716426261212448516127429779328871299611809146436007412163073427951212423599521982142567264460036692527852961980921328814202565505497643987205802311937848706371916509538504885571286524284889419972697969223550071216116230705024074166912513530021497833850844818649408886749004863465141452246344995793330565837136190691718593955645674805178481673947912947607275441930570032838594448970438513309504122794139587614944227148459601459683754076420915857659106565242221517265790949359734141985068269742169277260904776565669417008301671819320018673138535397175213866502401927899221398635481050893375864523245375949430664393167797312682757322077949901254098784136447219538984601688074256532981821271370297701444205534042780456737368001530170307411975223996449950958289128624710164345655637769601092352909324621621267825537261431550833016189998441011975301565323624116461927779758465323210879184359793253482755033025260907233321066367211932569580942911289101134839114459971203251334529034254079386190830247233451294657677460070689414082482111075931942503719374893802763022915680923956092223398497831585687201127564529841805794457168758847668243177191641260484448152351765156680462038182904653115423739432557379557446481094718355914895256909437180213366108472762779872289702402480722034960983767316296216544614592632885294698079953246510594165898178397969511126369283956009332345723024507047164503272655506812647756426989608742062305718240888293251062060862533150308703367922664606306944747504034166021170991188493396933495741751191730536582212668878150170397304008832847547866488215562651517986726754270566452853076865859781420082760342331441842625148705534619227419174457509538354817086447902016583016504607883025619465396130476325752929040162541273848645611678601521762045381716463761764110875319825130546229923645302346940001084495464155819769908644351915598903430750986045551508550320569732823771496865535921749944167761649571694098475169742848012816465599921276801694229937560510175936538264104859843031705261174424973928528457208335602680545470789736011956247628295062906104363715515358049851299311792374755779999765637736091408860421652422522263702322463588958612608575048885407330958801833976798363705942390619003641082415937645294435523944322326623182308027378349879349000363911288591278062112923271815226179789309974658231477527759469424164715188639406059550037021482338660836684680356774985360694671214093186850090840633924629097029628936566829999062083230717412565858923399686322407020474097815386574726222353395619751975133998308333371977264798376129971155428092969040301875039669142222599972020460591655024090754232558904202353813708792553994682215694724092859829711008625160469337958402134898661236341701449901279008629040444289924301696948976950090518581909959488975922305750386872932076734654247856905112828981572811906303887736574842179762213838066523937627595229594257074725158592267080644074744841955066209962300762211101297270437504601359276195907181464774247759124410705273353361662553215402772230921534030279523339565853203659526212343238706306197946855748453198708376520888150722347808737433287096364557042797006324122875853091413229335949725618106773741519408708709085989512895699531373443976377356866773069886376477291558894801209000004482325165387781798210684423436426721167401234954919054227460259850483346389014022206529118709862052663089897789567561257486263359631737721834973780632851936005015934940284222285086842765042412734872613465461675185720985753884293941762202708536480346046513509690398684184925643812058563993791043759029443851819437017358801675081757639299864373530504335224966219215138898399930641004009742718597401881831445295875924628814498785014029202380122712309445286494087592298917455531387375535457117967852704410242834843598329337549840854952035126583401073721772744086081806074209400890981191485015865540144598970705340728938043581539705408839956236523188738817808400032679998234195930956270680395654557092200382700463863078373259529697721090446252743779404882087886224521875515817675334618042082427593224153195902012043772240289778002947602854818485569731029042355667705255720686347673778508332427072278722963620897314397025561511100471808876842346188844579811948100892545135522831322612331162113888037997544753125959563637472069899811202051680142661762778458740507916932153185077851831118475004265580012280636242582132116752047670922527771046219985985309299811460783019461198978926684907573160240696310502242875471278629607583490028074417244532503485560276241520410929694119915410400502749822749115048547486080263599791982802880592364824913092599457335838774968261228749468459929139794613406438058857150872448715364266400271663052691221668043351473911246801312461858430719165459458237252396498303252416505860307871091891171809784995802568342332510515503554479657164814067227647268622855965360642099750413140943869826203561439825440481859866591646757829266251663325670163021744531963519877220109404155048670137270280754428179375276261622550506156676574274798684696256015760678535921076583901679206786694499848089712236034190243616949053294458838434329131583988561890192814160881005002303398471918202033848326196586608120992412456667730944834474396335214648282239294491463448971984454818522385892040862784231172879039347186527886912928164526667892890550632941755360927487966569229820856176733124774343253960737745519688536249573124571007683927988796977781387348100661648620127794235990986097766800148891487407805663672754039924504496145323727005950396291596002937270515900547061944494596616373467524835721714630977987357397718104986441082187429721008491295670671670785931461900966187140273764889533354964305488146184970101055562816667928985944465091756210715577080780351996697493442984574108724340571206559979151290444649344871940725157628335074109802302941572954767760929201884259488731616410234048041476517242808241174289999951951010916764358091528476467693133862155873979422964954251294319118677143655175383127190532636434410443319921939209999018152618873883552119211725288125222328135921591805033312832682761815198737713214499616212121654062179677066224671431604652110367012260889625333616507259384509917378608596004669930414239160636537581602019403374480073137745861621010524593602365386232377038140739870813860663198224182714161329246803805010161422257384110795662534162720382530821197003409181065647837643068413260783401457858293608880241002217937404404154312482973981351938043674197210432659981716722445134884337897679904738667661300988564889347873440878569037882245650065862339821582750098149355154839846106114749899252759569546300904632797751960592583604977253607799483432456225137497311893456402411045425303351379328046746496584251514797744747578577801325941922945962697165308577413436507339258861938681081042241309163546880809969873684914810112963492239567727664697481719400988737950070262155517081946853899182099421649734324239699151065553146405755918606981382055718512203833819733336892712964059544143637926517947637174284683139706119456013722391140742357824532471527797168073416022255599456714100689571346438119841859413200772618217049517208953134962889205313871748071936562394441393587819624661303128407819113308496764165061893366123199848148352810333241517176960717984752910993463878398459985364525606346757897681494898670766518927195839078948489901241570148899030934493603058733681796342820259971120998985439942029640522021902101239391196308943506464393201248180462743675598715229927139723680738511216655038558763376994971025774946153441369708181401812014251982622031437957981514136592168391278510914509717576614180199356714391356273606798314947618055221688437182100792244710951471902908987194255726572237641667061152516898817658959734610451999187227238865478698801439644009603908293228949377346278496711616068344952875231554527305926592857322008895126816768288523873802197421529445748044533640292912966172952759333804954437436233700472040305295512333813593501747580762376300696212246267211221923055562787838146083724721473869263773634852084754125420061369526920089742253352653590167300985342095657217245755293263908220055937320479090512719338639472240422145393002415438704625818571268133809554931305485199838034339051460443341036415817919258648013029275347617083352565465127464561047812623494689051808171004741966840494732760431802112145557177261622668456934670010981960446230264962985379810707261892949806981197200541744371276471598081048474509369134062456580293187736854157523774044461863041830943872870463290379281015238730657363837327720292882327997138856865120956480755506263356076958858026589038574429334330604514836766941922994549666733669758937868091597826503936627908081429893023247808937658598255919087445206299568245946626767736622865454371730445067675758747906624543284718991338257276790122796629540808242402977156788948385986572983825119340888943203890231699617955699179458588375803162104562765917861319639547177885463485239176410122578154458443904841074690705872203704947767221782324872934662209686602034582863089146185645765804566731045209729085214601569999574500148918468657756828904927519947956900688044863635636617578717947854089717059812642504733812845423278947199917279686854441159143279032164452038983639106380633935956533266294693220875889607265985197704168409622748052685442637060205156454267257353884060414559206431675755446968508639285942840560915480210731367358377004563886622842653801188291341043187073410159763078017965722178167589742683840846717067108512920765510342334092278623037864094269085967604436492133453717899984413468899696729913869797953511173341554925365892457122600879645556598131811805700747770597189564392369444319473336326603658461703292825845953916680672713502486442352235339779152297117257085980537120711859090571568583571093347247029082523656222427870795447323032009314782287633425643247832064874624336766939182320718747025940425788401265886804867286797204340638672058172433926678702890208679428417837260395361785778343389650121801490924904626189204008197273902976790123533144562473741023970157545633337096991005544885317357959698189901349598964425780579630665752072864383834571803527989243235455261178464967280021891805546784546302520323548601092411357704687496371798884374791797185437329350027655416757702271233883919249619876311096929889146737592383883254690270876056236514390635882828022600274388744558618468792700679547319162095743514633461049597545195027280299534878788792653687906881889509961201604230872391784451318632719026113269555863340703409988627150953137033807447729549227731093030045390201930659695740060303858655307667137846502337470362101872922840248866627911556474399889090009823632356581566463821551008298163908263385093734094966740509268981710443642189124000120475656851532335068943748301449724493390717709419770972835515016376709596666888947441488164750876370968740236902296505627539387680834398616194068580953336206715485866332217186836938097157284241017637357952310927807865298803474228505006941888555607040539603184303105169343981681272556593717696870725726684246380045171304772208887312684120484228384340181263879847658232065258960360889289516158507655570959875518985997727412592173762403058362101673869593686201570877605190808598263016012538066590014303231243621517449798869091645968151662187162765030862589269069475670522215618148991064441848431949074820096390117474459535356525540215201432392554116397687758274233255418859775440746424635743874164123123626667446543153936000864663508637273265375124533415014666649721306375054372092968366297551931693024582485939683431660825158953758546174522524049509861252696655255303427016151155435197485611372767830907602508000045264171218568716155394487096701288878382464422659916007481473292200847294484648532783551763624348441638444432572364762276253425770013928347400709545448847432541589121217901000465457170776198471314336018289258685035112006938677326605587902810866294742012992078012630940680362146648611056244280594981109164557351741695441058227524677550615555340947219473169940430435173883936023662614695764834177746711552031523842011119512306950111137662993518891263836353455531345392205973635473139861388274509484941467655477001635767284773418126748058135569074411785088230276383353215131273473253012585495814108321985853393608260955463224139283818945510105783301848338900481590744609356061127076338420425136796603413654732048620045234919713648948920695914380684099876062198185621659604138887586712854353139363617313239924126431372590023130978153604972151120449383657078032042276409581332451746212406693840175153772333251462609340328668184028765718414589249788893235350452333464238572467819625188421578576717530860679990598027726610900308584716079148480070768869327375955465539895770671343460122119998011410677205990062454475714584893904064581119609408829126918075497367744469878391318435956090382220662884339984556707314857409077729668075438636929986004755984800365304602427993283367721746451733184000810146629930051049600727636041212096239821039050844184740038807651009254196169761497926153050354895886970759844246723435606058846758327294175220645308053300623797369002219418225608329306860204980769569732136579517131002006267986104466202201147699122513471049387764080324136619130400925095341975730793376707472129181057527260453554233382874081216271867143370317923415617771168167265075426382410790998591431018829871575182028229631970702247635352236909150235362643046464835993170968839648782210328567956925914263980330909860362272321394996225084269815487363434898309848186331839008163391358651440092849888712097360421970765827425719851846931232745918786852908129960154463341683610708629773849537431074441577404829618055610969509214454824619282635921086490916394416110669223643128132264308910160681506702866527942533271793542840862032903741215505269231586207280733099861260358435722527283938661598067714941503469906846183676631609549374302238299214812907828308264632509204208067315624454790657808156722649090508239544922077080099276452583052079376863752470310163097649837158043140545206856246372534389052123917718524627450580742326966312173829258930841269427513867262116980627429337755530858783304175968611346552856948973335085696102000204210810458569074220047231228672238675670372285150400612706305037023706694783311545413282678441959270471583801500540092776224324783110098574419822953742122679541151900552805657159331063003942095249902243990655402150529627716441670372047169151121093974509681418129881630026899873863127741218970352746902041812690088674770954878935642188236481972767422080358168341201186014142327257989803178428586192542839234144402677272961356120329028478064328069358321042448385881477880870468479036580489074865569791173898640520929787034007329321586288373952994979221618690959213125857603584814951550564469337246125401974438712243388146284374380985773315771059040842232762731500600116069115025562608558916886620204906895081052926678064537126843402219653089398172988404419333499428338271447079073863182938586026375812122918173202362931679114843873564173684516664240694739624099567332123983028037134718890870775663674616010859938612785228054192769911445398283959205826476031937989572942055064349829030853036777121876740002603772698947673514397961059915386006552227545620532595675918458949074661936003372574217557865404011776113365274633599365272710039493261544384695637484348591941815187014462077902348573341470028461453008280072487680549006757288431032164342413119882375128192276218539529382897823213757519342206152769609876397182615280449014059238233290951675821176539182377818165025224068988088886240212964787081687872837601861702841234471288123401002550824182420881604316630433445866022409676543713608102523732207370651196134711066929049819226966897412073743541073614435570614500757349798819991030418470954213674507009653594848184886794890366575656311380969322457547106465877891499996767947157716392239558128380326323813229517463550562500409031113941339747096481376650772442537608960873207989165989340872138872951963396273816558396133076441518442862784253091138802798191258334768049391454882175614071018812840880659836884749616221926811521062497853764603288324614702612781229697275712933612043724949138673585068564624444112828643814542544437211042469655508007560618454022182617627008725236474914092528524961513018424012650846494555606605364917270912811853340094929541666804279831872856162050152651513185039092976144035956850148821869337905209880931380510281662425307086630941635312151008288952022981388650079684903192020527654929634082964535803487089154144549397781605263347600206019978861186807329030625835738126649195404049822504793760819211054991973896290307041824691782608524239945685750534632941234780615821809750307385193244953566351024455192304210438927804338769574430201575427135526162643601217978432349914142126212218983576468435571485917083065144785607844383819459585102962862132250279748907723227543828809662087453462872593398779951129048922674176498063306828996982102871903781528282884568572811701034313842220645109023840363218217507750782905898671919391981537896001955955376301767995026027218729956965406278539269324278455198857217667364369334904458992588525052595445956428755225793499649599695344468115877177450684269429351869421913260943195091298478943668008696313811548043276465234427472913106523735556498111111674009590939788088846281047964291123904505425221587225127860834626830531114804240764187854027189524233119021003092704911207077183408189556849703825714356921341535489149753284542104330431233461897573034327034453293699717741566417076944213441083804368588558543895831796695305993644773810494194420382733278610192328612147111698483545381552199757884213192949180082492886611934503122727049381718747675159399814422066020972844822642933680965249339063467549616283213310321904967242433302614011061654885796710162253444637586677319629898899944816518788593432233907966027449185283371498332510870716645749190906812590455846232185597124314819422198422620832690843895844721416311711603916444864944848186635091677505949515728220250554738311454594438085614604371877912993056568567430018076663477355691245518841893519838291270063542874757790280446548173816526848023858109810104012633403688666877234321882703039164900717960530010390318395149865132968731410929441684901846732929553641802426275458005233735124375052113115273767236597632747299684607420003504077652641916652337985383769831767202737574256198255263209016215755368800070135917926463346359522951431609701504327008278928412026382415762765617944656790436455644226991779817732689380051746641652673126076582489041366558798156964986573840894154689324758851937043870306471435472570560972466278716740052992224539892968927348707657482845319935403611555745028797368177735462071156064569886050494227878070761715188920927939821513657267160682917898396455097447797137071136244411705604248922545023494688731256114242109231414153025673996835367235401424058045108334957960612815169301628639862284986274224240857433949501670423944740561606127880508796138437302611873071574018884627390482257278370639629171963431302317893729815785927787115705248034398930137865491080363957165176671874089167747795581627565755408021104355398603158265861295130881400539253340465041413331515016577063696747014997613893871312026250455444383765230709224649740243976061720248976284857089509106688545935659262281424646878262278576967349461921364667576816992191099562253102763186971449126937524480190236298202188807816181160458999578529188025905148420738163638821679316570636555760764149577683617783753246297560706677027799074391849750660925750756690555207868895593831264476866914610868162677407765958751256800744779625462747566622982958127465080733647082216450903755515954733741226097733184257503290377620581957121430691722561743411797588388693899554163592959157981151871393691616424692973277837893826381307053381510956183700805900800155049333126442952642769743024222893600549900097913805929229853314946672447801278455898461951781454042436074829561976725303740126213940361417673393460752610576302432249147062635346205813883141506271627356940429715478154076908817586081768037287142086658117871832486246793266576786999151324972897004457944032922579989985568703164400885807562967885465761765116063156720138522450859559974712094797054159940923997983560882532043661063537187136608997041777954699242464793021385166646345391225580289645277195948462905194172713332010925065498836125289913747465912609620611368065844761553658469267722759976498138682408159173710658387341593742362562588688674066156624426378403861910124531870621922510939597891435110625258239952923214335388900887099421242793570319068545905064935889721289133787794497063442820722198625140257706646842139282623255507993326701478302722430929710913674368035027650508279805988652470372034932561212642210500968945193542366585274347846855881510354319590795565550605099030203253576144410436777555339533812628340039050344424895919657871394795281887130557208562621142641070118003120529811420020407920225004804014593156486031002184726039626590498066273963930232850901186978906461109143876326226954373295365789544875901598022970943666932380826286288686011306865998007460093767042105023129875371830790416267526672589246354975828410478193267317761798108526921459909885493315538485238542371078320243125181064663653407475540556053939529193263104684738680396522174132562601338131080507556572835079706518520802669778833728850893799324730329211838979299379392967230294441716890009407871851119607120877756971520725385028188055950333331330793955428175684500793518779988709907674394125484058053248967032869380302426328120190302854969121462023207122327744028381718294179485752260027724898910441396928896639495356607559693362199063065933503502977607740169534527092936654087752300008274172094897656866922894610241200337547063947055002385405310441967639793153139915949914808766601967597209171632544658283102004982308275847287660277275300279544342591360610590185824840223292828192244542022429366587658170620865152124577704073472959647479348695663847667747840944007135393536505668751361530589022217253553809020352281470471587216401124642708561789851483059917596262613843885824988973688952935373125265128460503306591507151765341118837363474999791444186258685217827113201796182157767458852613033710241002151066681532142996270347775650342704305986011805527087947957353036936757822378211569456263207539862810342373954284120506826486428703556774118785665379800383179949118820312297507795255969125830683421905641795979488174612534746867123761122871748888211587544362512672566423730943070961140994994661016008002958780725435336116971922681945392308074382063400087383107859846990163530862102137592363956134074153813050055464169653493049814472129380089228232412084920932547775141656807365757240666794984400137798696848231227217502708671988878397094487593705485277777158654371180446534987437753403624936300733549552092181784925934063046425655783275870441585331325386496854717012411175625862506549512681747441201789437791245073615009155853130785812551139161416791915886112898282423804258019177419530474190961796073516466974305366506320382633207967580617556355184322860315341910751055602541319683482275182677903091046068274451702525446428715710381513010451922945559395409358903657192231081118110176193659674672835981390278350563728778323901952893760118994975018459405434212423748506381757748659050456772013088650152847804469205912020328143210202519896466101807987500928930779308493398550553449705211928280742219473580847560588904654481694518958205713046830750270608195539472300932139870481255989466047984909413072760205092949897812293746083507055166631707276839308606915600323533062628131826473118615833298828178467626384332490426424194914846664820435791218487385617709239481449379377865806570220948081152166172955619576382012491310709540812553860610140185907422757440179493082992996824799652146377823715953007700292410206753055352212262485396691149613342400307141142461807663651638638371238822543225742985040339291688534674440016729935521918733846265845339700462739023780417357085653981332992059125087117581571486045428760746955707288702094873885328984313903425835393225160629398190469998478531048257690707014557267868547818608861975667998213156578776026099717122801067620925436623789883813734279799980479519043101419635636396596178393118006502963617040617808643385720763114830930801505636873549743889922816204150467677447161852250686730259323855283217002064454048136646077782668725855989246289301007311480944501615101748571057310018359531940141328541611529578554495054167498443828481789061334269160964446608094678133887964543432721894695621506577936659133199991187456141930066007620515336780722949646225791958801955440446957463290875945478152763099809698935239928748485637994437379504408882767613120949015784952942185697157610790817305124892688322863225439290441564785890855791374059834568738723740918990376510817832708803637940380024740902675071210178521331117858463378773925977800193307003756687949225257701051702771414987720717990809613621480770922720095408319038090605733097669661559220942564913080563503568016481334009085714802786744159142009784185132792220661612746468748894536178981630848251814577471678158392882639746321483713108784616430390653487225037467791717565568769010356053774048528118341708811771800146785019347908882042065166555279674350831159023971599178688525796883369449999462862361462788301590658798005917167175616330528125615230009959573173929126510136901059317227379545796077776274761530132152834851448307006476546246179900587699282920883700468478842136741952832550369753173853897384587400552610020740362091170953464717953818897911664465820321993996914651196631717846759973664778736918056078167918481302306504438537512756789869391955550878324506649599939534465025396374261347555481177444787035958288586820734788405944376544578725779142630994744987356293983009129070725532183345371704571154547405137268590450685856785289491573090458851220242716470274395149434409747732706347396418337488345426567151783153033048951357443463814546712648526526191114518265945490526859195292425463873073621533292726691055578385311115468882560951241724572792813257646710469289252822676539880478434889259394823260292246077283514585586056995253308583091262504115523313086581305741518778055933931192866822214359750403926644566946281860555839860667999079102477124941908474931568127645239689976256528057074311627894016977415788106634384813557885169703108597408144151612731258058735549479916043036317220600201359658661952804372742163302305825265949147658674159016341374100525426252599733785440745056340124316534021351640284257489476216834729249749165097524883566776141413720174717741056723834731464618758673564707360943603653340742149788969467967920284511488906315208587270663707243977172740470516229374616772870910594445371265863776358303760466329402727425522517964424585404294132184226164813525247985039763876734247711182926640714076132384016561890797619632409126091729303897683706036753849677927115974258539972570381905680038026968996098997222348715151335005058451795537238019849745228811845613083938234826645284543481383171971041414688297877698719774853601107507167575771557959899068432872318123395671612340084625070584992894906543018380407538567500668955533791490552052323848043820003040332018568070023773296390509000026506561288212789032830495961675985708480045225658788044457202492862445086699289717207011403470728936102426216539076084600724669894004667379354282010183171685198928420332852864568534733939052912255454041229947385600718344160884445896754412426231290817276718383293587834644692769064579907845976343696543889051825995771842527213645456625810267268912989419866870886696668423892600026041429335950793552547727102178305509976997383344322049531138727059133951766183866629010847232910435637988912299077197557547417449532838217054831399696881650165640371455984500912899297904668920894764289357925221954513192221228874365196735607309291293984754987295057169105863259786060265318407881896369220043244463862277502612297178741622713953428870334193320706740358560087853353305087219778116170819652215368058720482670546838571209236553356714075866504561254640225877997377473811610733245299315570425828968778711304378989761145614134164042445979022373723552987372369388977759408201850763893937694012638984689813174925501488916375377692917144509505727142278627048344058246083126186480475549945241656054997539672173101616690500207531576946956552954227381280508632126872592085039089368860270862668643995787125883307104095869066885869718983919513645838848924758817337087790545938793039794916213593689448549355906124785917803448615720456590824034168255240706664973889427662191926708573388950060789260450405299186243380357749506103501387157645828205485873180466903563232991102205482103137318171343626143347888523113745458736630860158595181252296310336635504321059050095292113576203942209674187146142320390733167624202041787446322025277915768950754369896681415934104557160069411977775561023716106435718292338316959417348569393722344470034868913780273856327242056013006042546951715606995081427088907547187122032711173538396256030758751255262995204258622496117139052044848042250770862011183862928804740543185230096585401192255961418526942354221928117983246051408202189988339446245340580246842350253788963956497266625087593846557597283404043319899929536821900268018747334899965710683091472144805671922588696562434226222729150316474657338962059715816399013524929158265721416967824187872121919068642996160287975381439113326492915217689897281921515911879437738724111647130579454868083685035891817699030199292905599767392300068364312912608251611555746398617924919141421942373897855833679770552541783820656801460137263387532930225549767687216544429414504238099250608818098379743052499256085323895288855877143968729953510611686661603253122040622147282675415999282875082923798178566898769437264973741954863842881490832670809046588308028518528386517468906135413430109631112345591373252636057467185564106606556983651181778265331380702867713183775809840614636569759722861643203512429537554477237570212401529847513796955365211851526186995661122243930452678950478306483058156959809546848220788407959788503005723783379065780852034103255563223095964964529092769765391814813286352665667091767526954942298663563496432422077666164430951891276480757425697080496227979285250650494373234597814695066625410279153711696897558993604082338558139224648967255370673389152706967825030284158207917566981942768562682209529234501227630583693059121578733118067991004454739527101731055833099291254758859484654214820421203430916236753292446959265293451861202828620466038416408797213791665801303737414241216165317436135436803027904430623599264922985967400196877247911530031371972064377610606790730939801263961085757623500447635088937990116509517147654647274508073117298396563834174380142291242900326756320937894250655577411557859178246747974214211970459304672834135323240429890889175511678841684877181177179959341207320927563366862045891125429262948774366293236390431818485768390010510943978567970184744576409102490836137392441913596204699782074965978269907583015296841374240318145804790807918040765475239138113531304865976824577901392191420709504571216075822276982589000145771864307911337168806434907279629553777440185450948055705045278401954764161687788207970388560728900609351286423400682790761609092799488288024949536917742734081472468717397054496427986032560535261000124903080424743891084791406296203098072194292831115325894470933957043238475973108319753547575121534289964759300197332262531019295135074560648538978940558438681626192211459113881828141157270932461916857475068225281544661435148417862866639407032927826766556422524405991350639462604703950263619931571943478225049509187427369884264954723495307594865089642806342313131237731971961807453849958168266549021262801442263723838276702464742524213387395046463580340159135494633750775263757773201799428214795534386452696799385556404534641466898534256578822047215058495224501746397004852742741973333089069525642318912806406364382179644516424816521102732212575047347071658108473093698206037293640091059681090977428878466316084480777060860305839892508352885853072890843749102197854205872900036406956436429809396430395690216198398704262189284922163311668050965778140984053051171742553726037399263695947724792914009247403534987631873694986906342991374140362832453157767320565837477993586321396690096074561926663981697294607092145946640826364958401762427256172431475607939065564746467852711656478793107255271184202256360180578603955749236626971748067700694544590954568076619542482632491693632213186714629919671015781114473652618474790511968088027180166302371727023445331196565707967660427048774285296332437627764457472797500954930255630582657858497992894387144035442123620485557744068178601958395539754003469252356725006220216065724843271866210288073772918509118812552757374173735701514140725703466428818991003177341414785643490686176341001453543220125221631202410174404209876719173120445376464243818282472944572192027348192350220015592793610584147317145372550597782345859769275135390483520728046193461064198909126170592074241890545596983633700854700734940568643469124256720141997460649876024729138118330238203799114089624177005048045054257648493166940442010261541870083091555867477879942414178914213373091327535929285826708872057218923766346259593360187450027222723147063425293542007431719888670170874173740000726991031861217126028219762354005027403093154802727843961208929903605243605697619858176491068800817813436500033723478882982926461241401793335815497395744086254179098280771279765029483798998715974498150479667405283114770453224314689502305905187003185438631803140678295936706850175685161589362213098086830561738190923696930683239453190116019485992836191761362217324020988197087944902148503687430302369730346727635482962085281620261273072403972919513572116118670532365780030663993168495599878128787799707408294894475944762693485331056206099851449373941726628105356226456427901660994132577265549845864645976489915168725432464664877916603046744954676689878630396550581743085924554874483353378116351395605499614607021342053096326778609233475318126631745339119308831540619185009006630042287607550875051568175988676531194228356785864401954378359229725365892209684050197257741093395238374786792420926180047145056700532095978769786370158078593079722482047507012942418863327424124838610146323394708913184070887377299448423396418793119299468098330281336600272789128538694388665726078615149272114417083945039763232443315077711257102405733745559630238629208787818830686765477885655232825395964517907501146488442679828767577608409468181870955261225122961323552192937289473164740311206417013164264822936940085612251582373918923568883702048182906092554335139482157682741600946563291247736698066556512951097607209381075595539676721618414106106659820808385696561612892708451338835785773732127713535171696421547364730413937380957030045956405936250743855534113028106562803685930041250087585264526214018682368367936035548439649074036379547244591196796033103448317668273874431355470508522327653687788343718974925851551758725052758644229300353868095693400146632443976330818918308357591107469126522780343677872442632072648578421662373007958998580977113400819912494342897139670114829967993363955970133846203133003793746151191256798453641199079301457759165440393967598999330278090091924916600157907715680729586630106766846378667270643493594682007820411245351779842141502913679987617694522899892393952684894539894089984939602284199782852055972839320619242816065638642411885798123783989948739746514723640836915095159656835960820507779093338686207392380707455591724296577495325248570867784500595388025158818107763796421940209139583426812132247734281414400551212907125150946721095209031781886645202535672284493930415963834141495100255798983267377033503881077875694471440147425926945205736418592048836056269930232177598468842168428084611738169853120748471287859247867629467755140228571561928970467020859899254788618025222020060569386911507895731214507000636281269263810149532152910302350918015172912010396383861170584221825973273605982909675345327573717036037988524107305129048420014740876329186705497932015873734314419368888956651539166449591979570769119738269735417208270940519232123880222868325506093723225571808205280194247355002608443097267089463095544340062107109441857440858166917136708087729546656116356277366083972928872077370187022500261488705295192304619891235853758239495083422030469223910030349416026813284734219576919918047450068549865170614665545924631837357777701374793881977555063669718184201728483447038375491655112020353021079563569369035176344083892402048067826896331619213451216533609987293176582028915437949323331863271909088988842002360493374972911241558537293097945184692802027361418026776255926120407935900049441702465281505063307483229680170228106877649674477766633424473959704627697947909364514676547965896333638783946984578818238669033317521710011869961081704638935834880421323707661619338025746783000739940292637676756209929665560548303629064074402406525837738985387722809005313116263537639377600050479455180963146710694198239827562916658208687235574882968031084213362081253987548776557051257764623347737256498656831847245690254070129052807892935766818383110541051575700279436197612937383193612971554780020343596596040072683724538167182628184580794533130320483583199191397975571716755636074393265059127235963206180676562884208736085648305629466186142275846576458716469939840253103826461946076731562511342587583022138245092817604130213159008836894064603925544079290594403028662936289760504398458546791961973535038927541804964796998554574333567140922520546092159520890735521457995672416316820648515275495752887236751804277714245767012602847885720319278118488632467046313194121054821842831744222819135190173689956618330507576522385254484646284971415543085657300844424106049998879721314370483331914856813348266135124912021056144882728545694562392461856746591001930033508147195035549432642370468852685193904262581328007525674276449009737464550165034488118091071261920951717980406580558603147830534208672524708357876711501217128337892532653791025660760087047731897697074558613329915997518806889855007079247828549904117454131002127186240745140416473841489253764241066672744104267687484549918285435836414994749938867776935605422240910638639433222499073135351844250198420206235078328823154164056334840373688859196402196974628799894631498383782317180811729152123650940589294146808085762287352447040320971715025881653343361711282045157151583861561131999194265456278821769014729744562637664915071741536606195814207867022505408417212428782319843408173593063755688257966007336872316831817473256912041535554686446548938928554441430732416463143228425330054092153378667524643132135646616434173109142854089891638289353162159533564614343521748909890699292706439984888618618389752904620859234255534669517752194024046055183058191106132667240966039766637492970633267893066956232351580929433770644821595369276021282068640190894985967883449724023395218679400956579164210182535987589687233211365841761083726687766387024589932178243343727347303396391517888981899915752264292111300176186804345593171068068572429102787252100537341732599716815376698460955009141618778587419150402374193676426352790867392281488044735374203801895392277055243184861113872992307377403913158640961347085917833818401168058642459415800784512867575422901014230606470983027791691535341213515469153474391883819227521361701890404406868191640826048474555850112886885959485526364770616159262394161569938781970203731165570095635410178891261995790018301188912472239061247770888237503649761140081991162662685092714722650526411761726843985182114697465013721162485993367255375945178409356137920337913563373191384716113190195096244174648657073914618858755173142941081594868167757556004233733119827200634794455994673116034521601108528300141647703682444394875481463251451031240033337010445840188113971187879473672876749120936898655695379066823331166107565175457523633514603419791523196393857877520852068449059517244750164398080894829485220458778483544637107497943247995000851689811836342768039320319751512268250139915794716988200425896931936172607910314887860397297307070284816337572162519889811990421058192306173813037152275875159335622450969551755123087352101681462514798620350377953964003390641271891381177738648878759725304866308086521092863802920941604159197375645454172383712872613390614735040093910970251656742998243838083000497072598585363168328091452467551921863308667643408995155867449143674630423616654962965463489677366598438193978661128372072469276936097878571344921056984512260563989460664888382825194397099630552901015040777019154570598204757633818664845149559285044749227908636518377191039478156020192720009504786143024184868799634570804778183169979940363305251802199033342055810844165315465539890487102645337403697375673719684661742841926318797571413487538038336164458025188656470460329834615724451617968457319980884494545499996786856335545894089684488863689601332134069880894473387114629385629587223882700285460778073034648407643515315157759812386609604789970351881390260171565396780767926402236547361057475970673568463269882299982608484664612981747783792691777751214500662413243709941998447864917638452253929101681082387604505815132978703362250003223747007822755737436271159167574633542428495530703405649558241397532867227764195857058551337463077504029411167168405426020563946373386924605941637892457471825624128281081897384258982773620484228528311348031669210878736095427765229025674619208386681560236602086711474849765755191499248390651900043598898037502004451604667073157574439569249314135286479084072158245092956734071352592969905142195027216179352424444209639006748255302631850598756534181715990972328210035392952977224906658788085769657244177049464913952740257997800089834128315287546400755082940551971472472102365028926527629683267909244469532712061913585980808740047221226888015728398631883065445327540627928331684280888028150025663278498673726258627793383837897199814988937178658023051340047623564557481246238645825025933889870964068608993903186255108117085821847025032994264640641134144669956513214965241755507350800548264635295756056910636237460236817288521898217997026159129655640628579629076811230163731788864349920431567708686936657199679662757072525209064561240481139138247773668962655893543913035622662073775267587775612384065890196231839887586800068952013719270316099025544259334816829940985110923885777920587342390766636390368330313520733798773484107217187599834430116015344921687158062268637697392192144595920107139646585659925690585135612419585439743072649097522183944123242593924102876547518269309287193876036795104868149122279104094993244898353006919609487303255984259540680976606860600202701534749627285255284523323437111826740888272787800797910705284782429375981172435547546435704971011689513692609899564905488373590470949719609876990925441416861536074311721729674522365902419560112545334934511326327099948096290779334418389483920542716557005330391892590836402096475537910070356092219691184372506502428265605481930454765501144393947879427606848991010550814985211164754828381300611981682478418043899929590848375184061324718639632048453169469677532569454170960082218954173002095464231149176781525309284149204164438208809945697030799921821270615665931633446610211887536028701343559090986398128338530678322407801137006057460777240718774930353069161132769469039458531411752188361333159843839565124844745334676470241071407487144090627643100604655676253924235905601212493272337892964730975215923079317346967383032930962832924247922032308177159791552559317207873363467361933570384089297789474563160735524637947430105435642098287997881206480700212745370695191945681876682359331517911629552069279376865810689684847371010705037764307652659629009218656947475286137308026093006758693171953333579096224625262226981867973047550779975117650375086168118240579177916365983270048305906611144742421165519478807340889223775552500003142424163494908700151328964077135165765601200415151313442513571535700454218768141705829893933934962867561213258763343177509929909455080654244848432229405679383237024182565649442387977996317769089796996349648775094562206883513683812138954936068105640472188042891135991148526728658623604757183880258325365583003246652188924114305571672655603504126624928577968907884225442179214171095424852249152581245764530770285017264411335073405074068262622564549261689160660087508437323429979853944043494716125386698742738052395134579431262025264028654360041082584521013745155962709289752423419946762297799112699370145432345229708335483857374455434206783899032471264320583382401309187465879818482637739396729995025638165559434889948135494641816951244295780810466132718654034784344339945689333344394829538898507344970175645923711129716588809134249821401361293162672416075053152489018104458812893583013913140032560350775387807985557488235894302155671600851896322948716685513063740993494988160691730475510653988722301737240023274764539002104952768322826720486594881261674431204759821366135371891547270548839268144630400029279048420184704039505969759906830466994064143204324619133824622821800260419730930364207019651488068249865644735538583403890828501564815937374687679948514747605588616956904013873664234563414378944526050684151749618652474954511344965507710053751162033496523222668733359178378437297621061095532266260421903454002844337100051562909520957457000241928815751833729037487834164773718230565353623423104072591556146362322315344245784469317062976110708666964253863836952410832116146814106640193997387475179614568294491289654987485516355315574481694609485926557977324462518330023363659563540511887456573359394153308945355592301931106255543928450372165989632428117773770020573442412980343280675706478961402019266007303737160893685402839857613324330484998164381510933506429267511001281613947580614127467565476356271960533489542158195623913044550741253611127124107319753918691003024823362481776753563110869919214955718071168649993791577204904707920472872486832868077818840781918600294713321171272629885182400779441571338009753589540714858330132937003672725282714625209390187315036730966991441348673967056562990220143578115746106926462573031000405730958896205536702366091290924256407196169538412246715637827644120082069211370510872851877973133448064114038043935627781463777493824672797649772850747839682733903513601551073808115372573522289812999492049558900397863547091544607252556303175452205099798022638845458531275411959468554845166094208305538317053177609955110420378629705188496629831341812860053066503634907428912594394067361098758274668174896633927832791023298664230406302221997899683287554437457857455005749652649581838791587142863878518003439744051387348196864269433751081430774784599505882590784984285587102894399912728340501940348568298807201106691637468722850663683361979131133678200748680928947608536335320874208614068221415625273090337495995678459788535502598783921963818977744573233355209382191472110242936140529714271381500069195203516855650013118380943670892284308038930701114847518314473391796874921317530814533296448325211228266623773674667623760132952153176026809890519971567694716722544976428850690848921024297868541221256000610313041716177502029365165236373987366132140664500622472550796179311836547041468521915787103605083406814195928687623858632374217586209602997937757304401175621876294666730784748942511258461479517288722554920462011828867812588932066381431230429168266745473753574324968761675392676032928688123122680502220574132999575179269178571857546269815358760295272483827387369774214371819524452324271864293479528837466984480884609881019457887805919610578075710110327985827050185037972057282559944670766499926498288875358668523472889843579713061348070577339888448419976053975694067178633003299851137526176014972712641195081146914815518389200450162526820891497572880801752461670611603939329005775881648332302826798324335319272612377358842700228060993958233971635599990660672647366564828276449360615581593706384500193421159139910449054940816746891436966665517403972316984102742630161391756617690594234056242246989898614060527778785583848816492737251482973816125759742529893420931276620184767794771838790444301874733118662453057581707093982319543049123874337702563305892977957876711558967715939353518393832055688008902416551260511265532202636432007917500632578172530972211826803759763428968896942754959115262611842796614575278708538900458384422761494013829615304161641201681767548355072011985589798557786902079965841003842013195777969291427272952972629329832708239534259739798260203047289864634156337861324763128674575768967617305039745003296090295652442450714778854911157092360606250176880771882497769082338624796691870264830029491289540497889591210943534460679766917655720057988553294270882998237684875686924434030403289968458492899414267580857410043214460415522408215065690663754630386791706839579773146394842308168236160053283388021044798533295707904654487156775165957258029191103933467964458894725634679529446712513626104902159986725909074241608485899064175653691629615688326421579371114276385892856693553617029695329223139061101772178231913602040359085580050519040845751464858925341580610094820383238806084202914628225549234241576172283982192691895287416550149248260883349081139484667911633859903584518909287654205336292586107427988735612734368703515928233353814915681537896172465495059767970956440287352480032225506859785453902179750270588600879125187236428051633396281928125040215211760695120646094142364812390317510651633530092267731495618107327649074281718193133619518362329778745016426023324320502039096169502834557120113158847989342345426322996340000743713032254548068387104308191525047906825605548166255371473282990696551722406852124356572128964995482446688185215956553055017201094991753494041898738902183817782358939123161167119665671735007520616189789232024591761734461982461278014779744385989948098937484244487530279036203393376231127832326003098962015914511259868748229824404350719873242487960258419409469717987979525509306860731930353673665079301161802933813908608983768187502423106566937188535176180862988975899310001605907621814693895210649008265407783241295550530905128074825562965234767231725353160886299822571807835317927389194514390440163162249948212875782656819545948413077290061098017769276637555966658925573973468430083098182994456710542933794687224744907849913806090088897580209858795620245174536694618861517827992183177071485668771793329996873702575982701144382382674230131095850782843623931123736602020932002954357359547114620492754591145540786814695413928064584147398096712138885552333492572658313273765090185736906780466894920917471617015286111798383820434000214179861517209785357291570055933208968218940724137688598717003011979684897956571014856960278659266148136987699224424242782722056652484328453568242192819919476659915508333617025399815425292497219813617618845260984714290122343793220673647905422939458306755516548779522605824327930954928568061307727269896823727183627087454339204084838279321294641738471743952635362632313791725959621787198158871100513464488400172418657589870127327154980334414256004415586424195130351041403955425820501284756112580659446660776519237268392103286651506907988611896650194601237061984222655890330381940776368355732501152338539820291082855702915136483280802637878807637788805422788914960044988300728021614847221471291598913058068759177187942039779712777077455640668469689877478838370308970192130237823080995262681164491442736743282263739164605828745331142619428978080305450012117866967520034698025377454004786839439352765075146531008889408891584387574069316850288899164226357330466933613034933738550754074189775211642607736045959256935038007599512390843088744682484778307312454288215742284692025874062828018373577219756464645384207242374195524280539837580378460253480130682583226846618543810097885667843837178771569139939773970346924746865636671922839572263057114588944416715699729685942010162274745081936821653971566778882753788045402019858962021745760003367118009765333861612854958996841914971120236290757678478011744600389688679886657926901781606321180082546674346475259430255560396457790120819502702107092845744541374806336142499252433237916028535513664100356364120266817189379729537748968147796201541405122047513233138421879714690854520105731593116344501096544135247917399558384773133953037533158938608075213268153669153534732769961354445259246183412800552029060711755398317346758009168048355759463353660845155890977961409406482887162490738661443349709375361114453965771857242972391855732266884162880080962979221661399165725101431872948204463200885117315366886304978993129835831279121372061053708744538752045365907792362094365768116361853657114658132248220398041909118887323975081687878940436267574740960583075444884930408244217105087579333942274633323021490203611874966345827868552869008706541013944906091630844201214852392625860538631666511366530992892895297941228413835610851449036013938134140233515261565521018216968419880073165413493264225837247836129133509258459279905235705603493229583707896937162866408016468767140811188759985667621838947668247062535209852749337397467896103474826450246574662218467968179302251549576548463403118456150609035859865613110576722930332250979919288541287430587709908980540916779924565319110541427051995999698060088306117694895995461443661899725448114222687267164692966439702685909012942055304567623651585416113734700765103950547895564669275817802351228520330352550082472279105114618723194411421830668923045738980655284524908431082322614608230097366995816574978833537810527617203619705693180308987176522597650236691153534158182652826266235958197868795931458709779882390143995003456694602384806124667257305712875618997907764391348011773010492234285670351136615984617083194876347957099266562535808325986521070335260282420192502859262752235646415785948449391344777477086221185552008923300840413729783319670526346601411969733892597676166717419244956742989785257342874986808502455734385379043911570320996565278950085588401707462403328220252348780302253836451277935907370576779713747860699068444268995569855593309554633191183389862882372606344513771666507323213646799419992815691334291053601025024749599794083212628999990043743237739390773309139447092359240969477152894740085688829912974241607443560208706602843552884030965008425726015128098223367160717440158227036814922727188160751573879234141132424003584667844149802925959574509558067104946072289237183060361650397364926539793459968317779244119934312663480133273387608004329516405548673792749235633324224423830816526431969965110662976603982382805925512910992948180013278078808299511788083066201396830785085134097504401949202532187221886977624674749972002360494789337715727734743555719207322627681176075794310336595971820543200047216330733206036978760999947115351546784673128062262140801616829889911698613766875052455135356739232725303401710087098289275214013029337379173958214016441209017565614837396231594615801068839534507222725004704148750387873047870703202433138386407937854776649784763681519327375243558030163910099745454885423340291270198650655671557684319461821182261182749929812655605260644506178150411740777307163674549118989057136733858339060817055905280032704024217723623330022791170828038232741952782849807618446273802715706022794482926168964558297048497424851702077220735502939842521798893588869083831162653342027327719482984029354920076477765624814707089863063197831976225307870544746343326945147771362510571383139713112311086008821907879050508567933188475156264071758353153197936847797524330786644667448624387110412763178161879990835355050111433413566496818927335947924960138906192182765340916063316437461329881006117597743738546686763822561498863643448312883376571594166792047894844414138901974495259757220264078287573499055780543863139132190786821483177979045611936211069328693914347244070864187852386184023173607298527708611177639498649838625009515705168254197228754295372895791828700087896575781827553511184167547412481026120367264940420820409423862073794119339769712252948941812006721358328824396311181206483016523041231748101160088950523284944189564585516420423295003867217598503780663722650706413929784038228059354885392665365544655188795912470470630115168133667225458916437052622418897116334909353275045277295443269140428857036476514506018960441827826749806612208562250316431590065815322098434868356466248410085247751922778130647460109571597367580251401687117637860101331888320673818815372421765933285184114803450521323584863707468471590450355109995891549104377779466882730281689733223576478961274908386276224271089999759272327625793584754037835899900055506750556193083980660347606074403154210988734455365484019209738937457188981022511076675255645381503331413067541319247091068912094628915346602424935247298027638680815316019074597729263684251758066490516923121874479808293566438629585626784871563370994848812377080877134986523897066688005218005957373815348700228218687275483757973732377751874076554578145047894433784698599315250760950851759736671965195067918137569499410252718738007774058331487824519043900624498671715018720318371469650021184459420067550855092035855888167741922692274936349675587429938329569535717864865837410174007105749467334960669170721618933259634415283593734050843219243757695568407700241152506108533173495117756408200402576663574750652550040611677159865945339207215342557258294150200954743102728766369596386243103308760677744464490379883914731500853210734092372543122797697075411653060390251886356194418329777245038937720505670364396776720737832180949440443339393745247521199231543329897713757194822547173225311755291379793347688637492795201946634457953971952654627324489806071014522948479157325955272922127127053455217174505890016620746729585811438837400561612608388789651738783675631553282781669896683938418682305363121639784725766846959204450479336651316093076068847706396039891878500656646932868515000255605357580163363260196385553797272256989181858062131782091789414930012216888799813793081882516290210932115840196767194661352974547230165800641540592354970246999673751282972386952007880869045965966343454030160367390811229990681784430789942221315487436384370330868790320310663513639770910294478458238375666477907019778586669673548554215088720578302046352267881506092356120848980137181057554992672584543413719756746881026989448340679460374172105966749643703874340624474449269676830255191376449258468683975018325708354220373822288105651794235302584379555297742731805196603612032602699871343415537293091162999023745581529373249179037126766331792575561453741695225620249316911704575742553814860835547546766540361638091341305900426360553382990903276810726159806115418834298173327954125449801221652609875003242377699186662410373647580638359257952658415024224566151640300822257403759828665729350839259235285499177502993910764112137094701239887342374866836596871134331749446579123428160485984947914332240310175873708108599041387645383472540369488973406714831555724268204296826415143565759568808365118196213384376785287883964899357609545685302211455246494467592081626824078530545323485538533728504907792767064302071235665877495996810597414649000461211073440923107298885527553040606450484529769963351561611727139159262687240596771250207376684379941297643295431445188792959923942269496879139800917268204273572490558876399315920902584968158816771040082700660074666292849344526671855276247149187055837672903792464126914028317541692418814977025035500860702233195663377394910987602488229173479949332241766950160015834372811966118293819028873160664217240096204650203338196652892980140699338385364625456522485045535649478387677727348494241728636520177132455120527983321654910743473824790632588817374521424044478996032112952706588959547240594140042037521601202469126770051221913643687056422514995338896402120368696679688670809645732478700014590158962755514663997313001972535220609582455453656197283899143027886561813686931825485458134441054289258328815218047730090453058361056216826834258056961676064502660136150992853353637040763741781154294391691428935910293888663338624352250258659197558604354999505353802696886861012397937256815826566246032337869115820013405452846258473047065841879752833320251597563986198560165686840496893597389728386510315250668662375993502181498475246035157125286802092985191202511535712207427207455077415659899172539882154116861350607022358902985670817053293024705398812114685072011361084736968616200191987008140584908736442155125497020640423342209506437014251800304816494533726542079893727038238809240783079062890612725296258141111718786819112286430112405750869663034911833622950366420388583508283999251261788680894525590336837945872684789830594217550821119143166966876663143416789699263369031033735665126498215651493221116515494766448918418195392522700567971287285734404659522780617335480592958862167474930090722477074701602201974480048019748879022380982353908544438187567621346832419653535199430489237049681693527861867929789479633112740248013441142792656971218179077225591881531009155229308410454848435748301765163312927108954067954916248235419713628350118650223253256021446541511127229154860948976152415676166969814378708503505231713857747059178969589896771926622555947451047081985832608477211991824105667808586844203599482411410625132660794632299607501244783626970236348560185884679573952906612920067919694379242104648892005729701354967150083519739641426439326541642818085080930591043068748147328167407182520801812523529242888825289826313923896312431526241852375412198670046904205319784790427502953673265936258518288344520034391688606430729840339422882595303618410986002366616507560006580157326649333076029414592796252980889132343778752023053354948964704955308597007871125492877026210820000672478939477240962225246439783856651899898195726894169606819976498476584720832444015427032778178897498140642590074550315860195111153487378767290827393858942697934846988773664823659767254456516620953764725023510063914185883390101782829487495227632786445094227803522164960736061699979792345672956004422629735223408642647626284870198824924540649606906375841600945349898361029163622334508451474181128982585011594874818198186753605527211005852490462079514043456114466354857093889897756793417724126159017745213178443590333943284604926806812325624950852483266769422105399485623828944865127669157254408740191617376965213810679722909943029078122205393952695552514555308640399074569808685683935557741640090950636845239293346065561733881168262224796081067815896782211846000101697810491021387814093080703088654442747511382497645087207906143889868346167770076327171407270839028455288738294295180107838454849282055905696882448289572962657118639188068981664516282810793993063886732884805386238485253073546282099239687058683732357584752031909041461417256549114231211084125940194601921858538019819555765071828842222551454089465602436324404707344782166184791838017102194396572294479958076621275408187783251930747841506432566767257713546820594856201678202853501731661251863837083510471568667615179563284855168957396198563205952042878930149884364945054938909240483611293889637048573425331526519716098162138135411684972743436863240628086505227600916582783084498199555412720290283045684816553633680397088695658237554930302450906114232638292857129547902035747463538597484257450890814638457533596239247946148145777979266101235425016786325400821708124843977509018914853783699819151489997095129812644471435668888149028653762497128965153057279326344000068340435454256922033185496992470917098100937572894770795742399307838662085927488178819995104816508188005930446999725803997403734158101785057676855027680234034252310905454023128535339212784782311469359000036344299059456263304261552060032079873153547956042425917083608549865427037134934716588240616568109716122592564755292865089032780148965675126853876915022752449974752878344593978795069556355944139357415561772077227448655316490624744345410320028042462792910673084022431331421932281762062632864297918017246576859888569863426278587133662846532256687162662875235854216314937844916388324025952321910129661820988231197154026723789399749735959151059240114450016973607533193495989961807997387412531957516411321301608890444411675763424866847136408850844478861107473964289639122989744918920418247701141441783319556705852626007063753338384539378466061364202643194485941118475947818918447838660032343331474844315672651086369848787285849996753052506223189177359927662043240361685996916057335701090484766654588531841489398162888620283996386809089322458132990756436522433292023824605421732337114814097774807663922558784189060318965270745298935996441286050127476239391682360938287886879612629641769916997143196302776658915703598542461600421624101614830091160601937406982784968922780609919279482395211119032639365103331356277036812888721260549654889801024640455830251677890599850347859690868866993449153127253147960672451397211181883322943961827736968376871198920976523977634543730706015704966616672111994990083595982423067978930755530686652763463620406329450336804301708744001063431599085223365104928442796581959178642652352862612614108160096689911208841977592813737030979392981984182989635441674214358209952576218172826241041473637641925496319763386219419582801730874500112184546882344327406257997860377374695619232023401607133415512697054505090128624995153088427486837117099731209984077192282829841915042960167718031616229617267060856885349829941841827291848298972275517289419886913322767203764487402767682799315248643293627492013373297662182362465114704728526889088501376390795652411138127405679268316116832616333729446475483413902267563226648053130871765153908562707563417313928065039355259667510180641443052633844943352243941671050656091767668718575822799760648585576331047118612605323534721017032684431417841969609650123789782069554654769128717101840667602008058558804509942312126505449694666225141538032455310988584614065371480209846231952326659157282165945891981833825505642884803572245026454879407289504275833418359875163716748718286574415000964561106130374835440902801536236896367215930255721684139644287728590944085279265922557743452500954489160874778168242513341255486972869587541839968494937264146401638172110541225086165609916739360233393816742892533294281140723529673777588201769595125146449685153327585273236381715920727375385123511442334874951010996156515551207723187315439404662183538065614586401982515513965279829838246862011990718359316620094638306599026690892449113361359686715754352818403818834859942229295894056729946971923969835478589811429397961035675699119987400953090181992268189976607015937104993978543640376919615683155905446652215500566873095880338363504047082222204241530682434414953503411576619762105082401088582239532844877152006464752353881256576406646163971363057963184327103271668530793178981139697365368024289484806128313362062398426988668429944633746653040453081077013030875534000957463026895848415163274692307400491322275025600826227447068506407028758436400028469793469736044015577327965237045304163123313690263749458362176507364573106867223922388647638334089035159314571994589285785903741437653622851498289423704277601138433377703548614694010852429353055411362845214091227960313743251330928474143247069481576324969982296721874767037755723938540192883599378311158120467460107756192372530363775080562307268330464258034949024855840082893014582378860587469269654986175510980075556162974806330494896435490394600753266941451864878973444975848228700672495159898129927896433804330698663931278586671636830637316730718290066085350510551863328480618713727567673277294888605313630565771640549148753220116990529050065656793769110310874211789171207823180365991577450371125918645653260485365051660598029556043151656480164558846724236500755811653083924764970382639146265259792597635227301511237293706457935074415260292208069144132029086143290974820371377712447973020368861898049882105953456936337288284251883833124163404963523756748946961610841315635268074037721534326209712651955342447457741177291907692344786007802209329223285497748405266754111629188169193338076310445412445671607913357077941004989771355327675565261912124717216194220932889273557820635133180469115924003655750053355116255735458768306330751501781884751203457132806816616152604627800852001733572464835461770536937767042723995967256214857390327837499425768960214010423275553958056079580425366055797496752491525176705406050772616852969661953734216572728679960401168395925228394741922470616492002505913034181180615983648040215458297478794311571257749185470266724257046840556828737179626928893019917347620388983349455758175489541621660371862304077487329132278660675789314654968323284690475173599497948052716484991140178432312289898189260440949533875235251310447955024553017971060368243567458590619931552806298417928942801211763485142561809130994195016271215265500453351843417567489231754891795000108397789478548121850036722279961504678241201052774236869427709985447701347094142325711024941673306291772769983663320622781525890555644400585551662382942736887480123406118638202663497894077851125071716318368367793323852041221242457620342539573683099004391116436028253025762639280504135613067418025533778106557969810305109832192843899778780924980383410130131234678160201925724592255530539975933846296920715034040122013256005416724324951284546116590616966837439601767411387297742547254653554503618941980784064331058588484280241481916809495520558766433440469841411221412387346320199089250180634827656864605054046930182406779228417720169846443814903606289419461629369139269423614704683853058878714072952707709777831813496302237700190428300657814514294998859236797834326141297668290500539139416598173784467221259714994511296672644958278380830667951269371563306021814561435999477166076144170701922021457325196417893285479134907857348999760945433552745090541668343239459378794687724162869784275402703544320825501112854013544754293211156850957442985202915495713691831951772289058502436456136451146979414861481645979831025917513078978518594807997669446824949248902795163887906699861392430044800451243522497987867876095828725330944706333628484428239701367669308529805384410027291323959949637833307485993578479997381861990385262098152956639900828414385589184096614705395119584562958166736354915956000019498070682309554110600049635632692092589523555432270465939254687634305303858210385591055693311593634744880932944929296656160516950361455476768392095857271778550282950187536455755364975098099055368137578884466883292315387826135921109622451838084116184400392935238635221978229626328154695021796457752127197925910124058847271980253775531310302996222329886338583410869559625504902690523758062243029189349819370200275891279799472927791000952728766055530872380693136598614480733048413651342902686837427509379564120448665687727785739496900758484399942594845462800184815413251626114971846521593374868676565585351149290286670331567205578976921979533566994766300619053226650238808260726917572477629809543063682333949140961743572446603961599323828765839450778082199106653047281399429291747159387390787045991892390369316178351022628532758521078185426440701199719742911880349603854714219478426849185858321899818869925746823255953203966176317632633159421346931657197138361140686155585788030380308774667536383859705958143902842100519014931055453693936945490806640779697028598139838351650600587817275960462259652121260275088686728276745838501362440800330923383250117655268559195460258158847954367570148981869211785985248024119083621285431444644449741505273955744072274201642793518280341466651101912255833380656518938987633433976276231607845915930673560826335792120065215357003689552687401965853681928271930785551099906704240702461306866714045426848816745870953941923374044786544374614906719266936735781632401401498710177320714297221396873288545454759340446936148563642638644124888257637662667325009903466513415921118351162201405563668847887762350795630387906651875684978583493849193788659748761599939932574501583558993944174420126868845265768527291943924827605858783084664080277159983366197957160466539275037757140822962971113821510230482838442929005873867461075039344321400870099555817384038775796078915142607249807214744298425202613253008957291918990976527546650316171289121220059551086642593031933271204611910923652182093209417735484599041294195038849831531482071127133407348203552349967712610549640738957011027167954070825666117078732358677955809515608971828778395065232205767168881839241233243457163789746038529758682047455727055500973254368128629568279553872355265792089446681447214878504879161606533974833151991081902955837936359226535794455978955136829005744004332217145121768448828236526455941724066140352151402089162326356890156807053722656317203650422236865119338058184020958354578922206417716204548334307517165891049541270193662101803507827580047754061777675773875560764604277356787508055797019439410146554560903417494745489551539897358590943652431262778558561800902238872471534176389874255069121615349717410004282534817183940484037794803023216072258370555929412291825484850400463204354599764660189655287875129507705183007942470861824020200014823045602188944126178934403642201334669452900559448729232376116763486107928346741143916873508366172936169142648426998582146785773393175741501831844201341322668544137985114990710334862660819468110495927886090984270927988640206388296064366248687967639863305218123323800118380385875156938588052305447705381869428309746980300221450791770764850538561853852600643373855579549002612827390208252114085493287828771549003218567912068166667882017545088363447129606628455114084131076349255109383114513266202523726126191484657246285250179956320779676301004270092071006408712365693244043805357780325425484523714979564495493093293283313988564973043661170825215254208232891824720379260103748817703373033408425957196120169213572606076127723409609043875647550810755928759492236753975121511826850209984002979012112171928215457418400244597349103225011838932391166186824551600409628199406500785616480560461640145027576268010333330496557488003836397928058195237527477998891568217570383413259962005062612475516517620658261793730706921817367162475129292578132485594644947745218837750533641325142548996752266415180052473006343186563470771697089120549469825841626878470615084365000949318912437887088053977588989689562040992380903899999226819120844563909074687983948788256902368602405576717906118416053596118019217087421407130028309769049921865996243754971444132325764343067275678775923965772085873146820835791648592544829315671174213963915578108351521682424226381510563164499528153301756635189987759013449861797712398547953993443216113625326875536485841899564093425899888073572551326473740081933121622365092812390710001809406872520612688386553009356790616932219470215107787279330213465181801032592029435594870907979502062482684082672394577823615656722811022911262588833246426192293612319682580875005612585036017109364258986530603303569648586477463665329375718823021917010419619653081071856004418222447076105178311318975517862485419271385918249906026560069876314262398829878125359093348091095312099720558707170758736033347562278168485901159541061210950801591938773094044822557751508313458757072927907513061263255029078585294186218241839573728259833271963408442139529202846795832066187200885863086732871476971695105085813322345158703568532863559942051267212431478333938333446093113585138653210443056308199354540825778457195938021190933283377340734896755915370027814659521779503804409516134791219590745530203288986453029246122224491244129401468973121267742999155023587408554883360096757710217905662066970522499442155058480302765282710427587770548094252144555544820728230531403566875985846276316309271728398549999192118987869043404331119401648786080407949428296479784664727591838307341305691105237788903308306407596680105339983389895477507528408863690110101501000876782912034503495620633166220414470934804635313905049153920600521842710078602359818726205291706126683184209617951203486647173443957558209970921177579154254788312496998156790128402247330868540477783150143903617762105666988748674343526616737807380258398485237939752612897548402121388079506060716970635856788054286122761654921516827679460861548244702665139426166217250362172366898342478867454447425819432424059150702293336358978747918802895964117478568038808385565216514075409461744817466609665657429122666221592927611641085247782278158779878874974584419244280030256474217735863494670842140235416743812411404358294488785656579199053845095365987408800414066802191016309741725460883121793624243904751591451488393772028735904694045272920799138375625127641600652852464938489867835447196125560579395276223653821570431346315455150031463959453303593066250589118677996608363398590596784021414310127814654853285474543260283528557683470056207058141134652657211913624275394341427811252373056460736125889496928937683561933397321315750308095226988977779999769006695485307273285802264810248773661608155324221523145093048344575340097304326329991490623604743241921569254108129277219775596697484950590226260575870262168316688148655956712863894803806717419016198557932554582591993845314452675624405588762251008603214479254854090384294006333751633059035271202645511077480723760387464417274343579498832304144500963343308024084523765902597935085388218774661623986867989209566541824712228795097459869484452421631400302094264543482731455324754600428990614607556619358556191781821627087772505080690834189807529667879351553411323217497349174839559674525590928578808184999973083109448319099360834793860577001450093641202417567105495887584409573976676721069560179238720630187462185369612425418934794721719038383885288984239227677090086766564065643810475760158825857381789801043216867917938504729723650074046815392650514365383194684860410570650208621849300461495758260516349141734278627412869384719220083291614112096164156460263470187296202697582554798635590785528323266282596873023601844795266454299545011615707501332220520611475309531593486125686307938373253480431740786837857044463384156164161697839103511583811425603958594715863508040105288596364729636066141284101890875315442984119874191639574532811962950477975747313195807521552481006515878422568577155090466753711800303237771858334699659258886172040414122034172669757956525542082890180948637149575281000709399621560752621758942499256739215524910063237258304423610691218085113295417658911697878248857153874669411843428641041780232269830031665318976790439079710060323977324912371112376249614009816376755245495865727834836993267859932955067595934401166698322120179938470635259748804185304390756685661549201405238120626812720671805113415999389423975578728576773688765132726112744055608971635494610632091632525510956802010022693117133501202938874917179806019385091308604047012064936547277423935427262095907092896658499518935517959688306131756184598152165328791357399091300340119437623221990732947314782037858094610370880383023737505368367634717730751364238752508556342180914527855618322855496526912713004235902994556559667772232871355051797930783251332869599995993484432256634123866942029401286837194557936744112406134091474481258509612847409001508114824512187159682781160999943302789801140372895671709015148355620295904366733166321617534259536388478910737697711841535167244726866538073789966435960997188447671845507688205823415383322714240997429641448424541675061732269875607684066509973237123233692534273770003798865377940108110027432298822100115560291190438464529922551921350364387191824912200123747040034218305597539393505375615691032242534986653286399465088116633786187765336264232263190803424679798071485468793224129053449029009710487234445081478292795933756597893856334139679140366000081748121053856737390557724046175694955180501749918276980306483992082822779294498296352054427743710367427007999573765398268642848332386186232947173558005043898229895589346747021844514948553208782505412582565853264144911136313051061737715774558061705370792490700930991808465215156851981071273981835402411059462038925538712837376408927338569483929942773987294289812124197715908548433252656618377660165327864360256095487113897718452948488736242165651345953094007752785550423459745977522753239404175794714180183609407396925132556125178476316675308574453797999567984809730105537718916001914158234182326014853880732815823470955063745033532398106380565264978212069128263790702713018188533550582890473598842226770523377525572783796028470295845747349796636847249714924319358843389990245630320291453986679230512151233368735995310779609937616140168197444946920784501555415242916659568602957054891980777854253348300781360736560432719769262135669689673826560734723043166488220329594342693816057212931469973540944028345032717907480308648560268006082673480585640120520956786054262350851370517193325623399980054228920090512535957030732811769119683206204971418600816813826694403219638890150486647011439624417956280272143566030772204851448295852417823810852819638318099366402869379566322455587470924131842486199722714019362486812746588970486182802415129276797023852955433087184317686752553179213435432816508182663682819680157698965862009983749602501394983402461355062408331731482093765531955303442424484937982961863504057331506826056928290545267758730920407907557710051602602047597047549288203759757694625136411607367983135595865978279239817847920095501598898071142951405967285067094904050364580542954209599883678816101025701125548432369864447423394951292461360099259841852950733699612420158152867967334872494515539237284126317084899693629896649933128809209106652947588489932525949254916834718403812271952054900516702049980908625687132546667970489048785344691457488676588196372276223945659176434316808675823385632598753578841089432120577618586090893332379103281943841538242174334005040575431239804223901135599860630943152677721616083591099999668606111842298765212211852526132550918659618157721313042969832221620079661851627401115244382946180659714451932827801559848675559688892190755178119287715735524368799369116585077777246377753648461335238934224015275450812564294061201167126022696086761671970310006328886448884653416885941328773029746435527932637294055914837291051619396342729706506334560626847861788243769745192959177609884153272705439656384639068627785746698850406865669361247765656320136463711007022626446441455960749044479726269355344048730987033668069549942771970870693923316585974479588011678399747461526380186330406997631720826301724879048957148090409469730688221396418079234194167479153823499560654533647395253775506334368148963985116526501869782907894308304642902663942797054936142786515146155480794264729442066915911835852503997993085272913233876689277041907509017114414490806019821840022852534652877862369243405454006620531194351698505186057532526038508318629801916738036370069222227891268999948366960696928370020023612842332164059788044625264254302477319405423450070677906148648336508048413695222618279700064773581098181673598035039675272505052892407433042986165645287298916906610148665184646278584146752866707955215408982486103588628396416128989528622002327254992538902447511025291531781527818311796784062372669966895118418654574330187221145912736178830680542591853072640263198338663119515189813609368017801794642428400332932483865619852154152355816717457883280283020789276193725993447055057164521680925303984422633722707222605312690124520579588159204795819739090335642956957414027845539844670303214142275916318645192419095767860979772527560267275898622627899665841855990540163777074018992339073377093257152547126032496372688544387958062662617164558118908084195458237559936321945583701690344614003197927113724194079657691951953033591570055037101828345171499901599078405858530318306869552133150518572631720857797250850535129413228436946545770905965719059835636153244222413460369140160206054258507901379853024042903844713696001719381727798990221064639354321796782913213512817030606757882620865116154526669307213039207950779771833055241768550521297410872434987688965903206249172085418673772400495165983050297412144624433018456845001942904301501085358608922078630005662703689283557188318256600132413669741922151720353400517150705904131867594537041723314110429307396712720242690679077422672633023474015987909205084231967109450299141929575566821871921457672421936110426360833542911531453024319154637542833859452969833883974149415298455159441563974101046566735233289651243769780120312603719188900093140145710411720714456291015790615210406899444484700481143507160889972938649865927516462599698351677509139583410207526522382050592754186726870092502230395064325233212241063079798521525092068380803284379411831567058002228760329099594920438649015987654642882560566592064398359851107594673468699511478541860592054062584692396966548901194250254989327699491961732653634192017603622131498404823490542752092611508650720461815750596966905752648064161513025308282802999627342452524757034478506859231637736731843030890740274517904671084107259084285892653661731048055223204361448422512903710468372277381515435945525134055287909766017241065717707579069520034179919190966315646950052689425454105461566907533287879779701212406379595711571036085083726909940168989194963334530592574237585457985931235755858494303459040753294251240776061737271456141232626400928767268658490452325267595144843739552495594733861294642025661609218357097622794743916297468279793214033658283649458301269510893930269871140334787451226361952180432872509646217905073149756756775753375280874252549639787605482359415110983429095751502532285380423363895114662236668015903081206563281991175322347195532036016507731240221337972499257238582880427037759107906566320420962929318028948145612641052359873276043776047699740429517002953247073430231296627420388778496152256001633652006645115936288467579003083239978037820132994276987973137946656792235270784165327980379425061088765396458567435755790065739684160842301658073354349102329630628440966712041907704702977872048028603245706943392364217100337410909047320931826376201594584170093116871490255269835610244001633185937311367029032077931804896338958393441263957345023545232818288923414044222952216030147844867621847265144551749259660896921000898421262242349926403423073036189285807618198785689213416705514457427662258191394285058795097149514272483747988514219624935952644983638271407838901985805888083795318063178703392554339222258028121449310894225112550742538892648334923485338782710537311728262305518162795931234605233097891921353005425276060020618358837229685421105823823292238737613999653042926704805454465653917430203660077074288218801523278826245618663732577604759676518552888816812481948669269794505376264923845377279314904415643344043264726986454139054678799877478760436807453639753996408226907276630352118330799041406185313722470191051895094621795356433875771787639931773037724874094815646679895379297500856775008636916807685961771552232436584317569535490102656508760698355792682970021746041828388494980797280273028855542232226373037367646899747878417446195627858685445602371086298799594020943786975247122580328596199080500656131600470591280626091871010739151906845827498395691996445064608170712497056098741164389902912804217587657328568562749834122368339570883634905768993081951449777134815665410609879686371733821330934391420377752888590896231984269746085349451251047426644897434672124625690363871404603685314307583245255310910335426644116829912138548210508304443422827455028563199741688414378248349786151843139606377636640554108902332241887146895360703984095244786229191216803489728158956640614522133309775530941736827366906126445375718437177233094255555302937410972123420835174362834121845562969418294292282467994627548344075745189934122345516538285578550961729148117545097495472857868266913784544409288530367311868250391771515443050733997466801500557027288626661639902468464828015485930322115746671082802844819119768649032069745745037454174534492833199687490176591877586147244520957061741577940814024731191380005163900775551375693900959425069635764551812475286089255281798965993725254065224152381340096570948669727043378595270452821262357865908724698117506462825001634242866485902729770115413300550911160038422589987116681824139008390690051070036458147716152574024949485073015826654428998065829919697258523745766705094198577722890872602126798853767847984924867326897705582957349185493107222436559624778045155900631798241210601518132461283006536197121013556588168397305176719079352555564564510162603968471127532868931170769245871870474754049162280441432222896696747592366459430350141878946495980759092200904846092828283109907398350328346192149793049593324873203665345947553303059844736091493599330351623235121375966860907873849429822118723941735095574032009483656288359602188015297251708868299674702419778761656985736883937539746089669667697522858487088555207617214190820961968796249332815116054462012438901336140090623353301213881761700090710052597963491755920114711403965062588126914923593096182285590734616996340380425985704994100103523274526702739122811293982005436154558729393693670619231008818143404126942362644691245566565129967309032182719323366634629628898885960219073951265614014376133796331270280538928060314017517997721719947889362000494207085239040083201551966250222344209841412824747666734472447897833246906375381875773990128989348660373644403481114884304284705329357231001415562934123045844849920773403595281475593153004768265765318382413429948434239580881615675621097210846156056878803788473450197755712034141764084459105249823058695470015984171610354500302182709573129744914005419614177497004458366330341786607704334540987330809161875481593799929488559338407167063328821794823709704904818246679588558184300150798819250095451218967361107035810422081954625133544767247200272024850186464045598051537536869636440590074722153720973063220034559535884235331347760965811723684739755107652176408700512802854229951328786886423607462976193532491767238042242341851824733114290452542153878787100235404766223237390171095259307565479958768459801567030725947292280990594520766852534029058011208641257274608255117760337183884494722841971979698658778080487786434253734752732807885167370580556484614616576807980238874816236148459343446695906007253932335682682865587995857852107288536055708122187264534734872796562049653463728650559756700541515375781326669920294266696800841711595868614660674294037776341886582230156725084896309548761229920893617086701967754354496650468702839088936400271203338368545056809299506439891669107367022524398789312728190084322011346167301456845388963294807948893470041215698736405949300827214717239402525853969530720922891002513860697579201866858470276157271134220593192996052206786719351988178568250001735844565323834993069913861095381965226892567790041036770780408428898162617087369269553406717245368609833956626987155701180621600406500330982869103913858768177012711985654230180372013947103423763218805423448817980562549871840714251398611088881456961254883553641925567355188451997122949506509356198268441645337972286000498978641297885908780140522098599742176241758043506898621650709970316963602292154951097658472453613216251196932473001978884337760723392805958908048593354819855471144200486287560993419790044392847375613534277419496915010643762457149458718419475097509070840024600617676539602371771919637872944673959053000775125285073432410652191522116035106514263135363499410802785070148829776833110611270139642610400418692097747285202800245417102832380439984498052209005053515943737981213247577728811198773180621434975921130895295668980635993325927818292646903218615108967974224505551248292039019331586539872093268897987033516999178983177296966373353541664978015231573582633388226415753055228987452941637797280024378730148363443314092833605316147854743209109393556803817322298729857745568109103620679897264410301060940132399898782466167944919922365466674966638820634653079609160213692121700784819702258780508701622655573578067819213281826454737897625607266491397093507588910756884456889989220828861893786707989106956075407012002774150039497842140955020026910601306553925298101482280411187852545182551083779958928835566312100946489814327408564966785595669974623913877877978348117200794536155710639324950909471886083650456296730707224879517325232083061186140150868663323792012340947458172551984063629757780328158290133976843221896350552298231471843725927061534192545705412259111497289345115448687820971352868815664224158117139573193933984651002972438411367242832521627008639600387470248862064589040613450861903535574943942279500612044723911089752292111858555637341997508896749007195577175030555232012497438963161497218043562870638992442912119522764296097507648015530791566817660801295500530984681271797493727444497552933477190997805230482382256968554926242783137987825447864314004390962121777612370741378814754032814755771316699729222707611027329998405124013162314013545695681969229767689810888685607417384867819696980765230848755645157885677961590707944737911968083184672328364929445172795239549451495461893463063798998430651585406439365125176395949380119802514152127348494564692463909829245085634506897076401838332348421587625092373704161804551998148085516172860382261980672932472291944319971742349256215778913169572647707207144093146182195865782160963970373367486825764267111344731920487253755115383564695317312850948233510064949048372085468078512672695649497029461146182062815044549846896198987799241387295587988649889109526924076848051238463768867755806186584779656251780715672170117423799039106976126460157751895443258665019945767763694567894681926208171269591306677582993085899251961643989974281076160738705463757478604705018068421826231370397794592831223933005666965826189540066647155327903431366821227782294024861683915399559244988364476140930228830837694171947907658022558290433798874548176742514754609686722661711487703371342445051456570816486173432532602540499137334255149425754400248549987159979195844209652973627737135426899182673442737562520372117873199427382605689320143516950877759833475218904628358086689796540635030532919511535650057627944368253076695786253223403427673914772156991567501675785697757724150151669014139785618079113586522358071043995124892761554221823722642655703465453775783685393125149420483796502196855828965738587661012564389485801168805916208934222259499727951154489005191762253116123679036559650198124625521688858225298232912999708697803340569134612753612347600063221113288317385168478742619610280084994271171326602888952753269949514500820212530778275209942534411585442041687557027544040242599645123493231985904948342433347617029673684802515534340038333635466916185457196547281995789715065807294190179318152110225028214625635578339605925531417532987680468474322529856293184359544899331921895239240769108292317947572401714772963896693265321417466085658690913841307302335729253810116223551439693552219427631324263160507229495572000610438052198642491818831364566792070832216836896913836770676162342462743211433310132060382883441433140990457637389365713514034508065107894556691247848383026460399365842426113600248809213446866246508423267611752746630014727150058821251680256883750202482890213507885353865857156720077405079819817394345315588586389853501790121352595907470015976301628421741105237334599510866065079193486876923735222349798110658803577723811949511353062047300314552458156397525432376626657622581210776963605569731148137088676924679243595107827910364400636684296418246994175881594779321705892582228947260789955343581545181091765689096782542124554356148176677310289811813081091885367387726705568811036535547732727052890640078976280837418392976935252286388306305325940374508246434327765332787808919357517093146201931221843823425787681935682692886745438750346648931925337866624700953477610668211253137255264665251191430282708122283098390064602837618432269836190702400010782722631092843512983378179346667108898547330844263760030200865878217441784068081925913162313682471896882198130883974589321910550904533587216479212174814376683411495770028199942576672240279812016762760849934761568589602752708231306667811942518582352743354813310242857955375375486179171600783653990040489334642646183239225323851120511687326271864801892378816812865120277581041088992808589532898375501529485591556107423687085032447197372472665162983900003573342251175678618398381124661880237614263978276604262186924622186729328362084851383677082877478907760638184212735280613289511375524377850110127285156704599348819839957826316010111103659954397135808711947925521463116977635960278666880295907462999937440740817724468524482380908917806849135134504911963781420069912756485791557488665972873864387697003119974313122377225152755809366656761659424600147333575550697278258137352877852633791701302996467679051049365977557764564528161318819743936857919345162920171683842262834466154615315319552338272299801223040776740210828606542206638902939609132847245374933408418552882563680260850172219510436635432144842539148454647788921748489863358465226072284017276520938503630961710849306040692661651809555985510132500680074777392830777794971756493732647537937978523736371943515210210777185017233713407305725648784468083595884248193902476185952573158779718710195372190197329996444417260326097596705478457180079458381885558654095981781545836206944154730158135965974976390098468116811885650986356395273190586609112322615634726977729568223456350522705017759642776870403397432512768706933032380239993371090483976624099778192681091169279545249532662748895387981385233991099342573974075502771192520201674909810040468097771482110879377880913811159566845756266005728180077360850908478388347313965856940400902371225502049697464978337475131568570695516545728280721374813352942004297111240705791961282186502811241200784188900313610804335685826709208671983040559655039850891028167328483971461485864837880509482907063749264167626398471670175716265084227986578406465734142788834184759897251491581835620781288259156597963297358848156552171226199854363750484121176488834603378033861977298234675736183300234811763703693175651689690067029424187380031696465694554731461647931855339376311548137749697616798704984546706108585417899741806895086596420620673153285722099910449472581049598658479332741496721530366755089138652702602014800773907543549803160284021623031944495289685124270653220495054203815556928771425693368872160482434437632863246905787494106360147003355360539087888376208689045882292960221855538208769608707723673192015315752888574738493572319682399661412106447494507607132767813395653797868402268581119310761844797269580333684361099712506993041113210522773245439923405278474594671847242992596428783178913889897214337040431470158230993860604272610695317993206822054203360684664479748833804070758458290982166515421785183460842396096801455066447195796825708358306832301724172819084502709229584952466611744015189568261609594487319410463408694711897155364685488908776519396441387317654891318301289181889020821780747761106458174782110720712248575978760583776693907423698343854834133430107470814295507638487566083186683025086514297249674256800757779408611698742571788188613254696529533673071691461243373333024880143471885699417114584503704690771473969531450449245365837374703324765423000272583762757109135184239673680238218440737539859481165745815070566679475714043916313626599413086052456009942788118207073611947588214489303240490274354951537418689178960219516458503810381595499185897060315705878329438615935527072771243085289659042395832391371847232540417722928043555423693873643214494864799181866794151424986953838191266777597701167376777538469762362468212317257578666630510806886458743412870746387776144375094743386000666358695879556617205220861656251721331859091418235706136247843318540371341432142285458878232053824951033762364964438210130621655480921763339109740125306343526245387979635223947633300081726904666377794918155041136687701628807733347542784262788024152727035868245288233877863642934046540872718030815090440891526351931433876149978060991760751823067119961673096233541182407285855240672490473124884008904895707543305883962283027670694915482492521227464438515745241982933134690046986019864933260263945969244249477609934650980722997782101196012239201336328824186718266428685132250695429091448252163496476256122937030598448949230863787157076552537443727249985788487376170400141424221585979603234632749848433353626643939673625026211202288524041434139921446670784598747174512880844348069754325128250938260682888293943393368658389242691026354573632466250517943767716715066510682166704293029477543819676164281130645164008840218867945215954838539622553071311180697325107436221558882481816561879642961213058783241101350987151064661663858310520707192853753813720135686695092141432477449624728273061832555549167464616579124804293545196712011138913599575958872354641687255365735999026707852921962445725807138682067249935157551607884470632142233241701335336691970173033534782715158791555081351883222730845235582078619367841778572780569351138886793326117509414556402106731260145192474460965798938731075922343940779260388289265313757603249672579314465847133827267516012205102968042938433574863434415463547785238362106472316574330055345869498348945789366554615641211220136320856954234296231326700107007344419284320890465595815633853678654773204406211518276640861073413057966647926388964749029635162110479844382257652662072876748313549695434923521638245643908345348014092803603051823952933520809589036782743839800751862110654659727611718951564797143673917234928629634629265665846219692448109745264826121206809471290435762022836735105552390849111484383116337983106373089525293117195250986340092212387960985380650648772068081710227304986628216806521430342438189948034208907432543556569874857046694460904171868153669919422730751893104708259210380760314673407556029538292077556595861498355051509339669067109920465738846829512947920606013616053089597179406771575151334447886970127819492499913686875255002292347117708002403165018045863319768481055775194123977757818229881140654786967083064267300559589335024887742579585321395967484372529182970128035782507629064677057416470440427500043898676641516711988863596519891776045238610021650385236256318799054244862609198710016032134405280942091719957688460044701843243663183337568293784639190103383597922927129225706657773089749045695343882681131739625604247347230430075937935525453937528213091665938226207637219646302084355446963180279635794528149178451123146414338339052116592006638027246036572776866663347620885311561256703081772700019669726075228584533987958874272826902504754675501509738401821893057819875833985530254153354251989229443638431225933208331601951846874305709679419544356330211284324436858711498062774273163345616023282267177056352470896691260985309562137433528831925668776298995567479330447922521380857351193897508974061655352885563055852315495040747722095240182681268667326535912314676831295006570405360147002495222988965894640618115760873383200964850504459301415347080455817394939752769447864651907264258257349210114048426797101497362578141844979294711129958296996699488205914097112815772173780744440186012511692253756611789608547748383250613311793187785980334922369415645766744558543421319687438245712128457006276901818726304851721360882235343556464696229517779012800889708265623047613762097297743864913582457394970112764970698134101155826470447167511955662336408777810029680871917284635108105337199192686928217441329339015601719051365367038129633654314887104866609559799587190425788972097795054584661033492153650194613966317105488901440205500767273290786930443118113695167563725642225502819232236395491892002506294865041607901409296282645116055112606132189160009663642702322105689027343183552108599697832277608108481790954587168836219337743805312905173594178380562473705208736748312620642664162125237921594103186104622187385295962020267476530421030627128039163903642580300107834809642566035951584440336651205736020990922944416061473422271557813640031028383826800983738961891051408436077984198269073157674424892927959538653001749427524087705114175991536234614463500359782393146716184803129245505776482645965064002513411297150401914600062070836079021773742104075677279361201017500262722325922997683142239154442286831288864410560647756592365777413686179821883797058885504478372849589903338526213048210014360881664665683415246713928043839954016481777240951621699878003254965805644219214022314972027216598663675671859361372773651494124542007650297310801242299595977132809457899508578546780342980183357502044930278581562966567810843622964923380332315432095120971262799792913919281575674348707432880387529496507713272733389935896401159168656784299986934238892123364225018363985256752369858159310235727279679150341238461233462178317347123634011148444584600911632860155964266374559886336348944589166451861646891660860212492816449265625987337146506835811833314070673992576402967520391555878187484341992151871806968718815982226804009632261814381347037420517085094250674993254245928080956724651890740765715151663709630888094124590903884784249495299447589672045368681383053209184266938053572429834447370612009670966073288836116444358252689876022939018043669245632117247198435340767092176700724110325200786558547925502356907616499794504863739647890133222765570262594588153516611869959101024861240627260767918290097494193718202874781443596786111226715427386318398424692565247248595019958907593899918934493131723271515381748836107383680953195681802791125944970175858175982406637652953507323643452026390467056165092631914712842402579709083184547615088819870277567640741711078233569878175748544741037315722628918876689366673891311140088675529706296456956233920271421821255113504741028191702383473748754543701698001440564348190796546308991808335866901831376822338677008725261503256902451868227151725785924569278797510408056569047964077433805552361004020909652424538879672495457796507391077939537869878975819092634655643523075810266607038850692388472268965859959510538489760057631064989566505108022415946154099336575942502399301359568878059703451613219491867088115971804223934439955345127977601090677062934674458526920694413668275764037610890918388615802737473225587338650751541527926264813352390383478196305357052413772833987215015251161587957134536499276939163507181934085793924934179059182676061185235818131038320026247797457420213229223794730712748572821669272392957901462705191527718689678497305196170807101009269163639105577394962263307237494193299552499147109734226751388259904181973588379588144928129270230009189003608821827231527715328003893563590932537447987998596939320695548062249395168191488767216947928608338314432465670664805457261192439781248219468371877526101814141388058550181014544465554418902708441732564676965193084391955862097702877951338892215962724085903142055510041773078581417451151805820722922465576508237182198003292783554107226850806980130767077735414175771075537280642384580563969218940946249605602179613075039629930393412666882220203216511811627454679560388591678488216392399130251800522256873711027308883681032565012819671038077812362153812454147783557816513212210610731260056482839713179714098286883979072866974192576992584905377457273809342292616118905722853288797778923849171653713430589245689667496848337054459378509678547098976012254967913840782873582701164808745095410456788066729207951342242974157922867601673777844370682230434057281997410605496425212238232822605800004908974995640767266548104750084889640428490696498185523615956998246934691354351345794724580590231265265398174907724792955205691328346370265926555171236950502000624655648707106730163359678575952821662090651462083972565695406569361390503078590251449261630713801688241441739776245192456509543042818263910866785376924001107893179595376185716008420320195951779505034154082045395476401204354948056053588441424720336462039266700521562922734140901676922254378855187782919705392775455511093206328189705507939692258509813262681878235607554519547103272237804045181793400717380260995702283013784518653708231669973076942870567219915164829223247786331252935056263704800656680825989189702227050636773898471031779989553315989891006264827767146391847919131633300704504760841772655668163561007936892766937527822645693569114773826827450464650161964984843591191715832258926231857670448511591668251955146763058070530714663463158460887600405612456408961583610802536941842001688221985050152591516528287633933804220042827251145019265704551264926329852768916514569750814412876083832087202628491382309300295502594013973816615023417155126899895305169517436383377936429503169642352383324802671335968315997488043910708374955857102331661210183358981365164910164471542912079922398430118433769474163135216795671114677978718049195504576209366302744091667462825333561685036258834366253561857788572823380720679268452377748465657086560093468373432085923423604127035682593866813183578243017378033902708691911462907345201767531523502509341393716915796675918125073985973837585580520835726102464181750071968623463169358580517707804038007356868037065110520628486321655770930428151176061708982062381033156454798371277994412244125583239566803215456401236946479608114056995733454223877644470013787973552074332040527557843523972862876928945345747106705763863051320439230547375917632122963742073470534712782882120961518401429438929069476974105827100783549545833405036033019492204830823965645883797350668085543361751585916288734564896600517094590962928439298740194287261751326882381924326617812244005920707138272108846880600763365766156180270063566354865314775577144360722344476584318485905520536047476582963303290675570950628883935300397939775194745171381827371677224267857571680534771815851015440329562709570895927519770126919696565596088171933111475228409555356764710621117141887403667703811751900293706041327590539774577147868766033200454961969783139254671038540825601902119862417793590640856590142951038277931082742014455512948021934228423396373507617358524735944233599065203987976433157775644624486544662549528770092363578260548579175284214938187718290604542900634253268667971576832700657728569686125035014861987821210781982770293817780323725290529155203279294104109790242582937611210435530072206611701348405658917994408188232409493949720097981313384531196689886379412479778877842665030507188880328493894082469667362314037670471952870809973012226170010495525627371164949412513995463647179269185325930548543332332880520413122393186104297942148415035007248608745623961793930572292968441562194675461647885506542868261239982426867284459006062466817859309537685400834406723131142064424986451570980612139240795055690632187770394081445745654905485120475704350758915304176341498770403106219895868178109741721970565360449528820000933787666081126319897140126551746783180556232786576655608029723132594435886917631166415639118479791713872522394595931391009536414184941199727267878023107670995238629987511967998492439489341455854628859591545938985760304253955211678245436751173309232277388812886197902923076528264826238108416223767363532078431978476113351524478564169608809973514358090708812677406554441677063568473111024950512456418699620412907479889839859542312140841122619105129310124738057509127064454357903778143903551415016491030648753748465240972962023474799508818621450551080525731900457370145927385198567373791255295179356549227915778651061295662409891749214795426435742206290705060965970629387599539233962987103844755386406095047170277634118478186733532658327566747860303490638818077154638734374507315355263368947673340523934628784227661168859719574933504706246120399413505975346799704043261180677560293502486324167143932620226868996148300747445220439395030374233925751186921031008708775659160451769705131488906139763390134899364355061207071666007602998051589647607026780809122668794471821254581736174530390269543158271727369215326473137342766005549769488267039028933249476044788246664410127434273022673679724637175875038298342969896680267167657025599994101902128842353873035082632911835760393778336536939677172814413891983976935677273850411581980121794901732640907764246014487572679231834980728209062317221927065405768378973634699137320625227294412214017937691935039581520307216523716022293835990095041289330147718348694506150819921812341324863704491055235734538757365331300601212887026761600557205524270313294804553204400750095946888952073547444340696180051884140201924053390019303212402858063461494888843763172775874314817523531107068236823051187511239987695131433637177903642948725626265918029450603148604219226374827936207462291356322610448033933610269263762690588167696060299441337277981068426362470851743511673231313206583819295486330271521926494943852150786534363247215212446034492117813561339774287990315192211214559877626622901070546429841432074714267557901301027390445165793188039876698086941182325716985100814617187410774878270899828818633506846803835413738550457461023911742683664961448007187287873217034333761160122038718756308056630603763069565343788047522322461878442599468797541931151514646399227761923166948178286668283271491751374928600709550362278712731149576444082063160408251420632578700553140585063555913590597310127533269372147646705455735084911873196693275268089892651293466403458383226880830389046336359322166970008128819267478262596332087795462592549080235338370685859385294595411560820264019470652369999918928175657150328253831807965924082926092830898139379586379224651566470601250964059220580501577413280720397868825947615591361576638281183236032154332339691240238269740547635925479857745391696685093103493322921934327605844117824207830883570956362000389306878720167148286088732323836664647692568076235386540917255983272600182710526040914166495394919336065122250860385538800707688032746715567518936717979102209304543017219016597667991288940840540574435813399191757834010561674338281332255498165019514487698273229487164054493373810340656637719673745278656347529166858600847057259958238552143354913655048778283125963318846260040771996616912683354588392925256961335634256022175424453434339612865303968849806798799490170605070327633452133497036654092121799495734790495386263093253264123538744569462818024520051421457147471718265086978261550900165984068709781655138095245086709766736868288373092783487655187333974046682753936027988833691236924704597107670298470132317457119998319642723053459791091421611384628082944781734094679902179125376056418593542475938969682191805114521884426056001290611337597493189908146476790005653031231034254420613444161126475669615993098371652407776703264944409251724000182996807075462555511442459560439724978010446431466214958603020182806147901406129749552387023522904677694677387114136132356844782688661913660001130776098609233093961929667179647258780327771020503958273934776926456908498866182798107429718375423308058903888481883021997225052603288295678729036774456453020884395872605127224314628663581527960430018263418284074611670681467566889765524217056991936093290671877054066903213863872149431267840551438886754098130757758486559758346280576732052647506753207405605633801615424831457750242059354531956567685656428902026065740611782080598992850346252259173938911172873680650534116109766072810180958291256500674849739359618255824359817534891886180543027515149371669214195667183211500652101368574971716604802411279550409930580659395069496982747220795918795989538006908403196484440635928992465211419894686227054445352935013248106963426110105151776268682927566643756943856391795397837184495261027862139458128802336928469993671781193779686687588394480486698239946647061433406131086646306936746341862745810113631181247540530750834379676838878767179982579469216933351980239854629230122437620419266434788463497526523975109551149102916757038761517780450571538528141355136995497492469961966801248370468501821302295158683886486855393595617578493784133929449508195875582129542082006448678651775606078813125776046785334604061388442777222756234364849895203257800225202880341515027780356364799220527658254263957739035041398288548604845250185886406182911484802577322416688947950901979614921399248559944291174454663741825302221111703764080245692004788735221213856673108833390335440776928040792990258782080034795065578437501108681106434021766541276118731376719021266944328808233559333273370473280178576829414899435186031514393103617494065585034111784745369056081877804262377867932081216876737806024729250642692651278457777790226065616322659550212932603656392215909488005076740514435403078075274496008850776525697997022644130690638341297550127977484694981096512685623313293384282949330046849371357656120181245889141374580993850838317304858583962298055659955173453357689382463693675546485733995954853093303281580042458772584692839086645559661383721552877648242170471827464426245941264263334840489058296124943028847182921012805879054129423974873375327424084645124287064126458557338048083525202522934569918780468942788826238229228205069265226530666158926916296611811734778686234674657102520437757173334523119121147904360183559850957178384016060669659619115215859366483680641270611487870588851579983144007075174096559308747914274744131329810043882263551125258240438146913660933863874150879881126241436945205182708734718902356066309539458437939776577267351556473393453993727025654920364736131165822843797689763949577957996843574008042282311208330591333371067838545658271112791246805911298725603356139895876209935152670184258767413876861803463693615171239548479928570958783564561027513401832263233410490697275421322269057359337938093742241647657124585127098204428370136067304331271185196219693167593999720226414529650074663246794831489865345021380060881053408860733253236925945399983869252584888834795649081033697768855239186160948932830855958373312576487610312698291533189178355993665990977959910177942521238989449226641570310824815237553275407851165919374681005900629122204016029867372354476151436006760500136058794381936192464858254115722977016211390129734416900361211214523333719967248800122226428578765856062702462867283775631835278080048658717078391032717802329309763603884079473200588979398148323719311504120324295005475962429801957791589946675607233610044337244464601455337905383360848966834311318466236913524102265299155533458089208812174171113203235220779681111544628131857029086369009278263701937044433370107230856434701642508218000788179684907007237997194200311414257737933419964342331376751311089460553390891917977108716218354177383914006901811782123294690528901558305808597939059443231257571636248331155551159127866541470877092124982474742686516298939074379209937647275275309057358611514904036287356060825274230052612560643233793976766045328718249864050682180198283951060334640627051975334808681552774036345670764213478502805316381204876840680147501415586406881818142005528333088670085774474092288955106361218553612724894604856583788189376385188712378222499696271937910230417666410659166342848143264887887067733313892124748550829168237359407963762604350199589024015738342680885093319731571464647120528825737385562928612291411765562526844995206361721346714715648302834689108444063435757420808761884850849064610156288663728297603408438867440354949129256925470535463330608540496904942008600042224257744350147502035984273414603800051740898566082683502839815185671371921111043789177547085615840070896215295214027973750827966798219015924592183652819576920185416761276072043221436219732164843002129644457429811242102838977235581057338032993892029599196106731745773803580729647411059328507826373921120227174679289003868805106773130055863639401078764009406127547227159103266574897529822896785827593713208689386510457835012626091667639660720754780379770000827687631678893085274299778468716488668129886166993914015900176516229181081154707642148826199795363403043434441370773914047155471369154552951478214216296085024448133007531945389984472931338139912136836044457206861470042126347516475582681446361702590743905211458681331941939231387546680246186213259730654806577671968880150634887485014234089128650657690870688671121753213706531178954622749848874649549208653467580760255565844688358995627636633448373475549052920180276970058134704023602030704437323371710811528258401526453864821176142112965303596101341298905915873776663794093227807030401605379695873527380559930499381702863102128372238550450897166799266735959630408108845578724401765546243505163948125919062540277222779291009515885956584249876793105204453999720174325186731648557871103546106739802254299967820994936497711678802108461681218289292378594410460622272588898712504397964307979521381597554461817703656118325063968003122182898427949817098478214348278580725007575492048456174946391953980957904074042048291682707173909560375040880170625067550868051927741008850260287656888988811316587710904929425732714777902064797885418818900046642709033300157987591835376244180653686839135180101657739299187488228454367888497076975833576390181609476643282298032603988951425563775790705708230858883912272519080723877720574601723902706969772198131609362284081179315142530039705173691804492632669781972156937201402690127622986963842948776311551138744427514653089685051980586729585878273463946449311489520010805805451262304214328618400351296346711244637828215088046029944151961982626937934692168439872462884803733270160922838063249487311548940197531442780265702367709090946417496041884696545594986178689830234707753585446062471928783128460329987960525098487504927598906122558934423973753719134167929173245497303595266157376567250947672167307963380004192999983208407862243001322763289298113825494365377119587370150425862973544823809581976169879683971131064177907850171261852884983917041785848194963038214527985434808621431722718177169167574284701901785776592796615736550246518097672770110839910546786988921290754535725598127191117448174410431026474652374462852413777820085283434800803560558303649232027876289528682001178570021124142623220976172033431568957074061121891123234771036576021335217155527599330818159449644969098692684081097732305575196665685791874300004090056284862150163651801344763903930472456398510654943683891781347192306078590016062041439271366230113507932345939291841830313253311805059512219309390399805924883570185527874839934346892256869682612414629788970752424106441218428013383574606216823060232705200993779007826068785940294972567692893833754799828989768075433230590286937148417001325671856363457957655674499923128953394173425970126843230195920538300080356204200214080058579192448458051321360879093740117488947995287353380922557881435372479632250234242484074871339615978787053970229612570651932561024252742464344346180086092652613588890073143026557185234459631483949858994542724781584148525154246364295883262714387009735959143965770896944529401675057382799044760430060559653028901991300984602612553056679195245522831426163735043035872258488125772488733805581380653149470215236403987778118118172763568832702152396354911222890876305449680034862755589344821903682007609026163827930834327230260603820249210665135335689588394151739815804982830658570291684136666997590328455540536582650576223274449794075737416852915452580367328636902986568193398674854929057682358000702718988557137432429183010970692865322214940486309016353286042888379922860808662762938279501505674151807056210594088477498838271330048500017442812340479902611158124638912501568548028411563109182514604566474515968681136072389518590599990976164449221220602433662247648760661840796322470014063060861507888995526164006791622311347432172234907319692067793651294185298315591568901359221262785100845621715246675660455699360568866259448006824961152759049190073193345923911710915182211004868869229908235122993529841374959222205641201812004443112629937586922452840731758140800453349459944107793718110797053529676761027645950435498969410686598924149443818962526683182951430564280743662718093390448662319980382272965401109648165218832814012318402185437674645529016364501864880632277647071277237004182436517470185896912693450564830683189981087973889445468123716774302883686443936618173285770085204297468682829987092317233471254542371678314925850331679007591951386639789097071306421091674926335462400422979124823353003595569273874955547409970198528564788199866135438857034811175655187588612924270550925336141609734117564378681535961670286417626433550768994869489264778227018934400344414381789098498688272421916615867629684686717166727251183257285729118477170833601694258548476670691259270954916467574343701806929537596534857565966044250425680800736762389793841655873605790278399310293400790109993849707103224975783430461960697908249885497680039364077034577788687220596982008622455439738049092470784205930615624641433182614937022518375780500451920099582359794350486208198395743399981942263911957354837805600632835876878099709829055847519629490623754050378771607099919120256942068568744788560146922815717918126803132065297998046105592307751054078274330240160664071534000443171130975599292725129324011029134867123508089354767685918555095398506370843942457957027662042329235102943109865784897757899458600494321145504098441032163741930068601833727273238490695287860790521493714804073397567094513526724638170829982132597322606414038506558261370969149273879609043580117604020836175094086883246937179868269107641246150614077305272893976635076456817808320533599894102719973217565775025387886881771042006706073081755163284566944688569909909525993810152377327831186933874088381537864438890202375628024623158300484244115262415388688679384129357831981841103420100432080519920225698258298039117221557123042574551606851898899684391488138904036989707909223241470120030658185874219172360427847915965633422623864863549521205283099400551647293668412326699038165587893643103802689244458421500974120541263819578379029836962983560375726475104979108566907917935539000820159826901913583670337551021426147288637366666319207963156451032241145113732597959152673039994741740198617006636672251942812672573857779131082921170929824476928241199972334398506066286038597220248549672929841891121707169404753620142728168156364564523896078444407172342776273371232382820436507185395853612831505760892694951092357442215781973237240627090548292426548611606032457418327037208884450564267406625659328763072463900225629845537906903837206901035119679770681063092339212711237382224378633536228769890389961388816954706200615414876213595500815944604470446670381509684548856435629091132470220660475645012366523372469496809173905523962939948885683701056692549289741084269487148185648331632621137074147437080363736926949192596775114167168914824963155284508349548742711858123513118056327941557114568646225119133270122277635944905071168378762301966095430869134541849565656574233762186774628383675737209129921492977221788477764728006396476312082832170647485162550176215975089741673771812878954709265362425504581222353886056646880734595328062778480729033131271450006202741716931436036717296584105757514917764656700620931968382230292969760613400650564018545441378701496362296643922266878151911139329807440748398650486447875980168729015703695587469039505522310187254018301378216006364426774408699965380909507217825042240165992437350881371200042691884252559286380147261229061573310692720019835089923959379050367639102789458046713403075538171375446047403950563238646810547895130596915727383119422994377467684164642101849582374861734413472846875186188048006426654781551960072034970847364376544293875907023912750968312680347048810776937687684635217903258751926042118421899309107536386325267968755787301222480044727500991762690100919149548946049168622799877201407745337470869715151092626250439490200077082184569579260286755962760509728393999409761987068127767744283235133311459530805442241412540748613213289680665412443049891927440663403367120949349366662052452390981725444029019211357637336036034433686546571707048652145585289851829097884599366829731615026117846714251830193850748204169842378549881815585986917426517580975560526642399491389119304327757562480875296919469699326044123483387351614806902398774620919870580511460884720085616772687575906655073103085256628746057774060401952657707899775397445306775728966625010180570835767000331321238428967254113929133825833538253228060152383232353292117158571620755384766487140711386510084440292127364538726924596994137668718906845007994705280346784754323291249672238560949671251709101903499841892226717162183524298964472937688048603780743403432665135104816709278991141124886486543431080020598372526262359864142739230295750106509430970520942988533974348409504276479535068212505049981843502289220062883916938836878408855183720530751675974750459925184321492739530890770059560094038576542098796576098076821615411024349506966783597089646738607250955235943607434473224226940711215586124297752163693176663913799706046517049144236029555581438101395027122688986071164464880982494998363322246105813486076569664557281094577943364298986349974905585090249352100504671353289750309772888913925893306269295086083109303071337798184629934352081191210394035240211009063380654741847232587302748878563042300699243819317806873216420960852729722887236674464336776873366437652502988962944535161188894222537946081890028955321650590335727563574035084097594867121018217125505742790740457879472623905580761388050288638436631597546403993412167358287766391722947224061282918212269879675712946182439170760285131820522357319698193836142780079009133799248315836289565986338025558863467223170103896883740238636805265457470673954349666377397834356290226471669833396239776110633484224772807968185548309261646189458212836455115702283619757127316785452823124987121816598812631234655617273293473322214782026683807627028969861609332642180409379017727448129683837588830045656970950563619809249596130964153364861723988447090694987287539797991727027834735121061874023789154830144095506844084989647494054162840831528959276670531483833114844884658212472206616923243835695311862995672056823203784747505004126716966184566120010240421687218217046155763646345166981848938480573909091807360125818358047453135198485153682901664446707830256522872778192855102561517232046336944974818956906614330642705414210764765436944058712571985014366501755270345151222454579240239571133888071655741700891253091288833273963475189756744017877183946698556173822623062065501502742797221572137729978630961888421127993720642704562622097437537327094248245696372428600480919243238221560430370892826603556312348687007693718538764638206427063133676686402384967434808509943566837090788621470840882552224303829770450954971592586219817527862792137750074331345198428242634475983314702849245344604550740145050297343943797525107303247076040441144221873330154442327559714917275251503790406518603382177651281546115096139729418432196217405000182716392541545152722611640483742914139437117708638500749077577845281512262418751487420876657281143774955686055424659638002831742259480746401239081562260056739276383905073439644971122726351397570100976578658740398988060669225730675551917470338100181081455698651881419191796419867235219101624793729485030001223679493924616570342306467695230467068070884512198978431371137746128346345612171637580043560462593325905051908542079454611847194759116034245242746656197846661549215490971324492383293114609165626226602073739303084385397426096165580482681738610670062020705124741707939714778370424098917024974248943118807307101348499598435871833018140009710330842068518587271914559805124815816581831182412463343137161837031725561728295757295337043210947386685233358122753268073849948221817190079326597296548069673165484730480228684725139931009746654766516008579752805812017996622793759056757671444712763637292787741882601548288964009856541123138665589938614567622613523580776416717469344831972694503779240038948046485253669220225577144054745985079445819810861634062285976077873930632722878609664917269416900580559877412994451416013719592681937185836413641839143167724709951267571974587524866878087113779925388061756027660489626543439829531477480072371638254068897445459595586048363558546262628931639572352572121771342533177595777042912308595782269361917960424205247507179690406331703059675107252484196662635907336050126581936127290862014995620845819920751618904414330166484714900393000219859320577679632402962631272457839024396441285661702718071081983872680102092957805788594400703270291094771714877934952555749798272634730876196407171828079797585321610314055202967780371072844656650212345220297258520696282512250584636360429778317367983670816838215161591531950239403278518033549066119537998776065464332280767853659283035330303833738197573077212411629177766201812164104257492030106707347127142536730940407565462028824561637390444041693429901840107795212096247161415383350572514974744428737507932803304751612009574835906936502345310268459053315168447982499533280447328379670345569765748217720600781544144791236973238388186171344565667615160236893884522409870102865725973531463218181404745245952373850503453720441513140687793078635537069002984095967865096289742213817344737404093605155944168658271455153284421405598588753604545357514048776640905664022612816992339330700845710617388124561731154468976165325603168251457205740203768520125775739624100024536324314231748204553360737909973111825575699524330119839325293751910208023734109159099995326805232165446625927605754856098513015206587163413065719169444091519547783976283229368309398204440276775799850311972380308653687750601765450308786439282569020955292344473357190886202698556917144410304856015506812076921327851988104623576815753853271128490314716775290101376489534419207884388074056552983101422983272430049836232410146909937287788547969978239832782250925263176632938558345631241043233661896388844262003708254380279040156140982063136327305709732177875818343221240840404324226140652418194055134935708911572975958593489900770598997985135545212597081651881102355510102498223330592027191269040915021797158206193684829454889068231962856141129411440567654685573590843190292824799304592797232768650549256893464954094749650682940102844995442530792158038638980446061842624612348629963506624369874745364028477832079905605369503265095026517682410670775081442179806390153741499443720541364004871397698378089352281268049740809385669631353543902237605598662498223662243583094055176044727640487729028291064109645088812408011320681120094615923217206503971174402292161408723619706423180262787807718645551430847377769027138539952010905269408874946635897281770865382715628173679137712674190331802066219631892114949323641337585222359039239643196654584737909788332564523441927574528970595172379711121233487186880540109837863055262404850969312212557209862488388417905712417992076723424320177439298504069149423624189315118138026352720845640555907395711971082775292218934965935048143813832920165866267402584718636630350570805666190846597840691513023680140349395040511444069363017371733911043510565027973704795067911073718242307407650053178579752703373262958276145064027658285792529493103317454484271493129010658880028739648190361839360100071088424130776068832317459787797467198835225043106840980017485362608146845764070555848545088341226847601936735158775714905786019511321274034885934804800314671675170599287406428291831155819856665465097982158957124640560309007594058935416632215386875266035004877676165039069400309605707360111841624158118129894455407038385616821504940625473476166556779827743351383844355200203368273798772084338651600101497380820861648712467001207217115249811431750876439395067304833377634761418048137882637233835016698099848361133072330449296024443323521683628602163076308002865253629997805935766467624769782574219577916529113817097405618186025187666891486490003255832403035523623991413216778621740369390679412013800475255142026089590488794799999846821612333765867985292045523667401360431920876890260939273255747699792777912072811937554249600373421952362992550460414530196306648504985270222825910308979867863941071556954980689831189308747696226390411471868155830608702778173566486804292508748574513066243663167538693744688138960780250091569782805422484813694459067688609739350627494430117390588062736105338932380201077716729432578247327768318993400961810885374212266238340699512163587253722945239691815722831887890972711410646013070858781215857373625556996937175567260631047439551647465472983781423985338035022531366421963496793693799831245565960903188740519416828937317580297414828438856029014234943234674710788464122804101531556803961690798284066695506986420521308350199419579993590597035496128106861843601793987814933708295681905192460404160221120526577874875232534219837570507855423162358751868719520694259808630314041118507062738541251357963092359744869418649284916496614124041787185297805122081188613700497523891812982644365824438826589600860558500719339611994841258533084692805715843336675177484113306533295489572844037545538508402167980617444368010047741343224937376018497337039690078081483394822288201838124201874869935287154166708478042627656712717233880485179117742741443851565140251360171092943554345238243046653609984362896782033391878013518855323486127051755709788017207560859532911229090352619668336943697176087796986074722264076606598729081439839814757311302658367400027299605026819862205555608824847638757182060434369648902338020188305955004193453066276451409411007174586680550322708817602190718607932447106098414703048999490002555590229374231061484546428005167410435254120721627905429092033348377627083708687818274114638385606218886318976274731866911938408898068222892180779927695779163631054921125799572016868980077785694685196444498602351709734674560268317386637826382762836376218476430755235042001567017055593689993767210849353040244836651126764318826945678887010318627667501043927042373439520446486904713320540377664751689374959187005419831065991120413644088124494538422151494771550250133506785389016359740319294936796998024531391644063171076396033365782528961754724340858900627760489852317059613398323863050428769481038336346416295477547886524085227582871797129182551765136833942570217623679250218157816934243380899982143588377348396474182118293941968739467876676975152401968473035567219574058190255596760637342904288643413694156178675022758237835547385822559099857466978402327826353321666096030538935250446541047876065660419415832281856397760118855187437127519674863957738336996693954098994888198012344678350073540099555870138265086617033004328212522287499816272129671765019755867915716047024906388651291454658616662301752418369438394761394792284975522666617490444445472350557985132817544716535138758783891038240984031533286144861820047788478867997618848669348896651066202536160067787004267282016238853115626126194785735241512962407719482348839961353334218896969890587654311456800219020049616966099495433132161624394689385594377711295412730612552694521393136144739503027586709316323626423888012595427154031013316919787224305311418564947418227986875997061805801609738644710047240471433146999507091985161497949942674467653548092166064193672417719982825286998929010229518232511337417291792779803502517098638028960448658484649652302950958728875038684606149489004295660072108985092761333402660159624762787440331358038076162688102184649070263888922705698480693383202245407544571941891795342729079799226402427355044948725486158089197035381468294875016003553981740225006981615397066887284672205966412737563816477056921241700197206785588855848393737407813752498255103020291594441011402963986330550585246321900863083159597198666957697531384843275186304949482758921487285573909971220041759656020011292616234219108526067145436313181434353450186135204438691223806741119004520593990035075643506912014395824847000317776326448539721357051092930910999058499559639069661375884562237506051517678336211076081630837881738942225160443473479605038589543286182836694073417887330405854284670046741056012111934987711871533584517149996918496603588937195610511829922146533431156474978245278388230589347819654027664377635056375909915113905248753350014052026033203272747534478323699618760540229634907591325413896119008414027475538020257656182637820658383614713150133429405913325653540592843126892723598375029829939016899874116395998750258713303812842145815511944377387322085847070893013043394085084824826318085600272632684575086560327302662913523308930509423456728574347468310579653856284251996749304251612850367858770965926177804864093920613168937067366526192107886912516675905433619628235324943371519753412382742286350773414063824024034194228605592978467328201155032889828235362904183386974936695767891698668534575432380428631356694060815264089859017028910638116786768839114609351200577611289965685808954991960833620831249672269501377163933150460607870446273691470829310448118862152564953364647364757925812679293608021799894449575598914349859897389657307803784431565498991052341297834360023540448798751137240276688671110055322983774419342564303556472429175784617955435248693304587260639330744759434750069920951511287025532810842712827072076029423013034920714760276382032186014052444619071880086095688084458898768080424259250830095447239345006478378094744447073692961351594895023798203293870044449615278163950111090857432067630969975625795387844919340674868563608269368883935524707535515673011402994285617211474731663312037191113542217724029618332389147423680565515164130655960197961319231546087851846256307928521847313476861223633631509542391922905474347146149944782890818662672936930150029446751322550395569519829243631812465818887047117026609090541201667210326043754183395606526379225927535091391961892571892792250610198579857190471539610808142292005960007497749672414406505597067068444824566491095620766332195878869151016914246911876354762740731160161075330744468092410599041494026214622800121053175769881964286500961833959859696832199623291802458408166553838156942697333170499297017603934897649733016830231807387190545332579964967833217279814680710031394989894269517325942733170440793683806880221019279275692927726122736755641854688630787284069277532856290044864552507951875171234005454883213075130399027529700413907658471334033728947767846555223969227697984325244861685758421917210227776125872283425049206658821553002272461887110529412860801033172601629027690657344729869133456917966124715619672264062383426871447399335416038531212004011291458843994563713395725341029302971702713737240789507034646689132354183126499812495231056723518915293711433971446565113938492971067673209031998948741314728521113468681987531604631689390175886929006528202667047163296023049537952619179436990283609101214772761291758425682481958891820327377270095277536718428243835055372011444373162430119969487702856067927451062676163247106871530978723839249285474939283784958610106363306596863251617553462788974721943166968156451891272975585131060915403225598932796894591915683245681070602811768017241365832825644133339436491492012685329450135973990993479632420310955778555925264913949687107719264025069170626629647602229502051042846369975393358989577320238380231263127879169564572315384369712704416671130961891339107820992141439698426480891293476239344352101492688067401969539148125061810810376527399608900099620733730921094103636126079467110155691495056068015760183532304455695983421800464147000037980959800022918002757750780107272212306249453503302120619880215412094259084998450720497460912227293059081187197208214358870764002106421407779861403156655553259196158160218980537957507190604083778544543261216355255948288117473086096269714057514776949539475503765464275581972324920182523989587125383984013030094458472067754637798993880852981853192497289988468599177222907788647253405034868201405808375898725455622030062273950108748952981459977502028393281840002191234446287851788143049402695917320039298686906322671083925015042127676846478867815248214434323415947836360414222360448538556734597687495050271011798276624852181305079705707152860787784080029869817168040004925156899437088659914289181574730415645723692066206505895263765373314269182082925306922477905642738949918355875772264114012702045313782146123196320189039436143792085841745708638900273059529324977029982777522268554571187846550394717859741914205864844966490478013802084615457288532101675717289203080040528474472177434248822827642398230516255811226480844933163850136843507068645776499084158293296906121178132017248384722995592920974352449368296577298512491093983966481439417219955243083105774718738819260108297871087697348784870064276038112885629246875609750002121830302555040649896380614970906049520607292846368985457414438366085663599605077112803321989918793641856426524345333965890003839745645991635588625554344538410537495679836090337423338962385214388953961704520508704063192917547799532939284698361090872907214070376028024538585472070884769211718425117645036157017529155123962681506379555464115809153328474361693138277026984931278775423983106831537288902995673580824935292317129120497347452945212748536856261016817283053004159066982258233275997557845889046462033355182663455407215929696228480365819655948609282757626949026263971229275933390158958855930362310048736715899529512418285515803091426344948554158781963938527361630692758270399753696850116292334901156584681643004646426320435848877015673555956455997523641889314198462231434568261800085108534624210226335825422098818456113706774011758915328158829693129705306962254077505702006595370426298576334967766574998257106660544833009879832806867988799251449242212448123220268802623885853629631237145493779798775938019707399444369993731179384799498447285847362017187534186854149644177007103250433241957476832236086863650824381206801553018806452530134389412291117129049355699823707766116494347608266270080442691136143922371828940361413979424378124022940540669315014661112925198766486567195476799981015304283657403861480372637055258746001613051420788456148713875832203376466196737675101986148804451644407612165265725717421402108437082545186628782882559600915806623207719008165583556670544922512136292373632300864906690141472633409065340346562960507361505508468342109811403967130330575476560169408756342195388730112453325822615288671288006204407039885410807875184938839701440309390450137639714894620106276688898285001652649353031816703225763073584326649973040756529989836939231073754833952361851941410855090242661026258553112650174887326134964486081959955091734355492264332008135722545969590233718508911194481168831025902815589332483030659374775937590453001496614990005146445941876208665747818542436817989328086199200640278925581037906459367876283284150699516470729568694853593715039505560299017078942042337740538906593064681288776055280011197114592806057728896430121946279560826231902143119129224086772084724743970669294910869525680105776417118197630002362740855121511195237291857844670616759464153043404239412744567123023997224634911850495325693639995285527075556343776288375969072474737233194680978914734003417717629887824400652922813588492996783630888083588261759878177140636808137051643073258199134456843766731529688814800495034919206048129028790919516380075487963062608232029720540483119920919819785378769958671443184786553389041664022500351658051164715157300169588221988702564470280420032692919653420067153569926906496166115702290182627094154827672931795372742584712501159165324296188877747692854666993096876611164093281240617581483860855344948159502715650900423559410137849152542710801869832838605770774262983412618293938847788572784801853809273876625280646177278845922116615859004564836988602464487519912285730358010955886923918208664347294669330076599631515865990877288229145259877417791872982803361854723382190067687433335760975568288891924023937568914706579429101958923444398709417258280545351700279089540040389979279586267330828469793607398704318068416309375801955542923646732278601594235901416295200091739751431634775571027570331295709506282752253725271595746822834210714437175413027528647265186443101143822338530128763981214073222612924140277455213637884760529034646793586443336454089411006072664641557112491822003873997932526644817411027491596499780819005125876419702506678009250300242377071154288792423560946143867628403331698103511537337724101316997314372661357595088021969790993867924610890278086467278049513093756310693443198234524242936599057834145160222128547671477117444132451204462549704972701958295596266017088872513239262909025534160198691195719104280588558539542065237904176176550287811847936823952070960788849915326814178205543048556525627965043527598603769983491933512924129725125375605131560271872608063460390786723795227548226715791548274957759754895339118932829713740298566190958882190912807797371797215505004885734582249512073537498445489795754192533095573797460441015328393441701781366367152773486531446232656442892290514996074376689611775102637501974241120689581634953334773309823324315018974685860978764559788794254993343886990527397555736113229456170952978418207806805418393787321582381222369237064468769600228607222590087970108730239996599141263559595880215294338744714067499323980729677339346477666079735440849003264025456134266525328006178480474379868285360156432266128303855478466316127886440682859765435411946351319206878864309277256412999518799261576967027967039646884613290379097385668739938808755542893472212343691267103186344832255475862945537830579411967971287184819696130224815589954549348567619055367795652440545399792418949932890635102920177531286020037496079272052024843767551176698496034352940982907698331775100955072824911658489201763298033753802113068501900598935139704962029891659037407938743244040002951728535940441968774791208140010579424849740410587282887088353137142564181404323774261533862567661680595374245652925315530097932496618144126379543831675078866474389184222986103659252356069505388806367963020939241899668655374581161726268692668877755394930569282831279282153697769439722608741228617458758745729612013790852313347388052960445803374641964191644827105973109748479065670576984631040266239360982261134800956995141313758145956495882356171649937163200759340994095953380392107097975691500501625407025021940413318343193578606048073304288197587924362516267911620888865971072340905364497940560343322861170815578090956248543794284758925565522588478070713630524866985081467302374890269166159138084127055975410847501078564982634257396001005415186706274408494458302520433182944647096426992089638961799255105239463181662463769408051493909895128876302032709243730117399890993594589189367915007799180837163497614773874536596705801344102346155808449959733056884610039465249383843343459277620526781464726985117269134465139102369591757476689643407854051401709178888764767906478329614116086199465239915410938837614351601305481051568701096829893197698642621095551097157109628798392268692130230027517042312776805339327760535393651244603938477874240616503290087144025379219384379828005336776928457707884054887683654800594253987633543961246007978516207112530965849731807077767341386574444796100998958080642676014593687046627299818042960462680107109668480381646623383772835274934942980811560041425185090531023658871705876501488892061435135115254670487548606085182297410969556570644049708579713003985087668788793637445574767100217355780261455518471094948406709044384111992301866628259245747429918131019024520515628508150256252143133302090292905068001582625938044181640586212181827353691174532703197141558406857558741106310489517127022938714567073556643784547321422763904421589178270567297600777258465680223144766409589503184594782693905949993500603289200916641862586694141512281829952207953798788659347510297436835654729553748959977765037860770977064746508963096791445384925786353585771990981323620908672525022367669955172127863944812626837614203746367194634733342836017918570170597374963310082724130692711784369690157666282963570569378329281467937422265168115183589019838307104945439444985832485873603997108614921686547634378309074574205978633243317424426821419711178556206782348520455694185652453518625023651235704195703490387012021079910111722586849022131824755005171518387344495083675127756029741221408086754129164696092380212135942759555245782071835551915362341374242279229306351262135007732385328545907373740872034329427507236169469548695930809766032224363493651399586984460154731278438425780671921441836957305386550063612438124747164075774581838326138987664536763219633921593980340762509485760115036452579499682679184292119318455478801356528824197241949840038417457674695563303258327087079966264063605152688410183999305114623442401973450659625746532638643825930149069152253410542228156717882922502955414729009787280751314646258553647825767907639067879523462660931283928263544563975887903672723439990233375296873662402179074375535194779474114360117686573338026408519000530026158590169413487241766878338067344493514449097855331793340403137868095804239128989606647798087464813101624177128999656736031699475178785134061769730213861538815247439580837277080954114877106660998297415616556250240046285535602563169644108535518659721692522059624246678370911178675374956380315146304953861603142234980863008827967386602594119784367510483787122034382751381923027068272202849601898898007352483751381847032565972934943655086774240075558514620491693969265063957856487911437745265989940807394681136127349453955670468242559735461636560311324644518461679531058861485236603298643906939245631146470203966135330059492036932000172242656066856170552545956020788236983594665746666715948968874491167211522528640984812687472686954445046141503877699545497679060952923093034569509912288444941745184229440754670308992585297407003739585404658158212701840690194130487525562178603105284656792062879821651467202960117605264456845534460450956377253773775221281654086712133274293766212930558844491303745830687018510588718226914891610234314059358631070105360924007563719209025918953086075754854624076081101001123619664531980438737013934395268400219289695922388133605954565121230252886358835030625178425405248893944831834368517844192433104567609052966927607448056999256333269112742227060441178513220545749228942955253874192158552266569618881700606247745468677160528695462486899495259693015267497328635257960553706369215813854546675568832855501344695650258401593641053935245784409737294216721681299684365872143192949509996632958518647856361128342622632065629771116551321759760981970988352021770852226904828550716489515006231971334402173285086093454800559219800500619777610472906939898030279470912766124294261493783191493291963860982133033001443582328191635713414041029915245034698877395282268112268353161800718407991542860769961535341227744822994458251217562163712135106232054951045311162173521840978909713005273058037960082565497821969912926347794686805595404437489037630845261369744764004087719265153495506332378570554110021497355520918987441915291576684171963737961564199507442186248908299914209871807321550731259824816339822220279328004455473473162326795509226349112678735370270993128106569129110294338721237245323095160140533126245976563162234011892155861288223100792996901498350172415816333882225961665607497784622298636708098443475997702501465477930544323308636245131281078210157728057376875199952884078488643586527530549897044441054464767696713724418144611210987870996521275397011207713767969770203622133611426488545720492767425084756045235712255063880990753245298350999752442562266572792427991756755610699451264906273392889592105739315198828041523818802599857040918451111258508222909368928254796037896301421011908781315970107942602897913793391925535541140933738396754968125606031958570809284184309455784518560743935533077512392855631213689729319713690611277663226542927526873251374069682507178143906244340472341072478216446069932506190220296854081229764710363351653928757600510151301261484087180650987451931958248619868011677075853787830074661912461611168325069697626880206663018462031723537740209058757149409503496272728942939319435661329664194199599393125348012069772780510861727798080217725316899451451619609295720003797349548593165705326106570123871542462401287973532921475855604443657560084362999704982903614055342867678414272860223207045753473553816900719152105993588790901245711908666796622354767776495595626393486268523060705064135931276923539299998463552412687787397142630572842590475068210467271879544707158851320186835196215598849696242592849185182835238968355189850767490146644256213876722455714859324616258649844803987267483128074926015118241771147448617289145164300208159485848238303987048178558329586239139997618694424168530934449298876163535039612368762335739461814816336516789800930895402462044207061411570782707340546688291233484611396915568842203426928156025566819706811964032291392130727564386964206873521534634484852288647170550181554631213155857896034707768128061907723344357262803545629406069922804460836597839898703860147471966182404475148777268253664389011552440011775949263629163487662664933388803847542338272354326562344818523011194528087743419892337336876202616345536720976498052121036974538967401341331433716239041625529238800534209776095691046765873584171682279301857709392060608835663187516387798073677246018652610420704306396442928641492601002169277788492709056961281421944432256984100854981889126647541183653580379877467013807386719731124997365802131869101485876635050115942115249361520103324685764497196005645232903534256608841059365930573145723519015052718836685221160176387892832593780504821300118617527687591004797024221710350797618289266525023480814598983725659351107883347861192494429759145456089398898034266184479465007674624604809224203250621644702912346414388896789600324614923210659059848863774674930346473184085566414008587996575938626558638060646136674777704511633053155184651283354308574611756797512283511297175180937962078732349573438598283174576298427041515386115390444914372688162716884968428475465728172348623857847783602125725949258771798360645004857207619040968457731301758704753833744302525873192077377560491519784159311222612501864077985937731936231873022109779635143288435949626862813139790947393173837620194173399628795864796044182973820812418168535756934807790701075693411736411373321555039346924653671758546005022309367859170755382283961243518006578711899512053332950731357513118429975448422313256184391712088089428288776169508036925250619611270888248835912454676779741678667867808391291143871489881994859996252815771716041979538838237418929836892749857706892448753997515640720925649175777813108756779893413263808864126315257043108262050153169355319962917867536353758946005604442561382805866631655019641913809420498379305979258575603399580785193093264736283511277789115501760723531162201269502503813397301216417105326409511371866200949819466236091108112797538392590354093359307422057010885957663039597630496442419689477034042469067260899476876618998214472878217845753831160658707343071865294116191693874356431793502127027050753679726518596163742016538532590008233254570158211318843512071693826695920874105087035905491175588793611475207306325026654280099945699030731181012042776536243501306772657193093623507373949941298992958436471420176237041328842310029476650530779586855129349336797586394431212463155207486223977587959560725161480605289394152640570828406163749166216989995956406485687290718949093705481020113668357082320494149664193813687616339982515173679384919284713357551401191720607726934381719864618505948691841799084336777816655080640318981515644472264236431874196351861164576793358367137951681115664628113069647437374507024521242585552291458379478714623080655744772748219467713092277611911416814025681986317311085960918496778590024931863496117671247976683255026850157694904830633776220787482293493609540067536135998943212690995796116401004945727949597777580580126430894492598757488812744070341844418028881076027562238067148521042860999251552792896918079504686936926844235779758752353378958245638084185552331561493393320229139210572654717856980188867812918829324106637696742252638626998311327261512397000882044969076271065301303394939487700653988217081534878094055304692637082862238721163198927230300216465268530921682612474966571376380710170415096322099274160223752578507840141178295075036040288263213492983640212623746111775889651318402870986919525142193187576098041295937212120623327411326330809143771340810986051709407101962914364090522680976234732273173711609792599519806608872004113073653493589060292490822875751435705165522689723385420632259273819320633981868790495673711537751873101185553763470570303871613798717285981726108178947603393888551077843173941449929940660983661333950088696243350151903581870711084266230509815942073851430702818355931697336103261002081611174068267009250419938094651861073662733950456648943794403769360611187186154003828888123980455978301819075084920109496629196088804473730168033533274048194475931910772639871171817684430644899010941869024395180855868327211052656550407368254140392144642136328648268832325546216952241909981212698718199561555458965512338318392956349639708946148961412344324738724049048291328419358586558930840185227876480511750448435744902593518127396432685255576928438460958388276318499450616064576580141241311684399021230585613707651442070738143170598957208281575162543190634320644204115777214033763986190479817839911071948722339681634381955877936972735760304747684521484621781570365926672647621898585897232403313749740992553827651909092936173970342269500296192677503486189156263642676808805417367172770438481800178086221068435674557560553465207736921345970768573046551005769904930376923514649444595577324482450997877437754807789344520470128444531242613356230474554822756346310555147615322891082913242368546126990121070551603084759906865081646163478879260422195422831039747758844809766722540726231382120921851721289887440293013657359153881437947849009706479313043851614500157268668519818683194687928011685995031207584726771533584065170865929157444133082284369749049833918922827290002783152834392584300047934520096197966908741349107469821343481904715727888627980791068118664250334875613755427730583493138452725942424744667514610064609362736780859260147559251983763224987980594277416559837423934828962713710280671226042766223378980041242670067699943162357573791475988237095168262519452575726363527185293368347863974609847940429437313702111942566676385388063468070104166627940207935074593247348206624082635638026219471927973234391747565673572023210826182026969598100330704756957630862186904200855088612819749585040676494518064594261232506783635248782002377710374359162436167155814546809211904978286529255131533625016131282420760159511609312709244931781268060964492106796368804055616404557034258882633496253255777425115801100286097535619105789661964555914707369924634734471095760026306774325620451602815604649068748853973601105476600333746565787447763471178832946686373431658100607879557038167595536860060977378908062193077270566294402828671560594616807443371072377751340830722490126848925844407293368639470551611062793656498826594402167401661422416506863481297700407533388354686851016760876069383044662167741581723600725449585794981371147709107919589440942923197428280677920118966240910346951414355102395957807638017000493410377105162031718344795113068928289924073361094062840367176379227616849643191475342152248515810278919655855473492826609742235229244455427321029643436758642558812246058207943781090678382701788190344210237296557601538940967476871499169359356060063000428211491275745578285205322067387384637689822506047469880470698930159320828417279457058505915741136798894801100026218886829460213726803002416405236252810821814929363925885725782060127467061268015648897073472096302798654621392013265643593693126777765139504020789406000896930948275142860705279515937697604145623009879837495374906092557756901253157088900732179822520364526480495925273526860260898210885062045751798095582682744841338901024237090947250146264625036925517754240775129713070454548262856204603879667153524087077295003745971676771027609551820939139770856010724971221112989621781710953688582905185486972273763533393647256402366831170640103512679459680215078279127820565445794144045607172085068281280313072863411222935473199222498173663500516705008072236859125581075182322982141415298212275350690640290668112795480600750356613992082109802276011507513284329052559588423044491583583569691015889790254729554135489063418254898610356200225485959450222500687563752464007594358660848024194516732074590669238254961903004504456049972958096097658908598276152480931242400576818291322230464195432598929666603490995948308292442681183395918257119644558850611864957678348309390426022331880996303226883170910852480890399317613014794245078509504309235671937045833234916619380008152825224525040365431818051912436588797554637598052326460048112230656367165583595010787558214400746449409076581661080922898750009735327798061242985709394848149052401759355050774454070279162257534911513169293219526493054420866602227942620155349569899782774072054518892598241834661758793162020188862351943898603503569619617217610686040350454548241439794778974926820436780820570276020987205750031101280117154267292064028684121165782903333720580685931474399856764348036228084665756768970473212621637136393018170201596580566427328496727418513120842138794658088128396942737907694451122983635105091511803116104797552621077561115724464375813664304059955992297220282361845203362525489377540067990608580424647712524681818337683877376200385619903613130742670033836899135459000244000053889909934898257653734032196844517824281706832972718573885889244744426796488128828393906328114381197709215541053723902344784174291390849928379344487791404331743613090141384861823189908914717421203297917662319879831822306016160541649185297586446057599251570446942800375698385001030324135448966887636994531768632320979827748465749299962908303683771048828278417038399491297976357377288601461425377595754280549894160480598577602311025281076149615343543438704206966905896954174782981901165319411264952325280398593440428064367337257725378661292885771921572101524671105496396313586931805023516236222830739171261932219167000049605539904477712381792495621914161449161292803594138909558368702262445431321293054241469775065169341877060659887327927309809953076842160402331551310313904668358251686710195626683239525810849845890461239690897964567828490416470499839992019860241523546016813992692718453088271783733369671401317049610284762700172071184247720644601535338909373963540250817765944197205181313733939489635827342696911949315381121708917685874051201531578264081673403763437232340414402669446789874584202597333805673009721902283304310700624900813340059460556297688849249447769751141201501070197000092003237561512933322297679946056923235656515001989510407566522544271904980815883218206029450650637505479749919170268776240505696516971797802228466489293258331389079738681041249183560096785282533880355148714063211936744641665708182539793691826761999129925330544612109026984230073156068424776971335633203361771723107912529707288401452145392586799617981429248916165752657039912552763103087665799267823531866836610072312990691637414684852302360154919635840000648786957360591543446821710947559326265620218192120843546450971759484164606939764467100078898843560914737271666793720940099098931235787756793178786127050631206347463296452604938532900394420942180949420763571891172655158579684806780327570972568409539109012640544024818327421459387655524071647984404137212384524665802479449820102038430812854277066360814359895369396497258465858353193819704457037529831148270782225384005692022392410517919691553140510494417082945890103308754716153662336290253844390384320056073910726406840534089117692441731791676936863109687414290864206292714345232378083770366239751457287658203504620974065477206073976447970564365967566842587007952285814848618793586264302732741919170956695636710212121912298088767181367902743125293087194750904129731009558413949414014802788521264360867268408079759516561454694853851508780073164908187328459183946841990685858541476896456762988564448923443442223189913733293432825202399621862393174375718204939822372617353226625151942392706733503729596533795110797917946418972120354259787706276908296746505676567166845464908692872829519096878671448625557281683630950077957217646885254464432613028074781364052693652018137410108546843290386728005856514889047621645851099857053887056838119796892616464127619166405923169090380792473003067181496846171486533014788393809160671159507880633147160447585049948828435191575399003897391696517819842899487276581735938768647181604170017810523004857569021166892850770554979788563920596385805883518921330215115557543212785353362139299427129076784447479995615474272832134706177830118509873021365881130042228887921520127594670387882525109255271677850913627028346618624649427996887872893435745542321812570619595793412278032534806346776342450777138658597439166101118055146547764274894145405523624720765278924529474895740198154500766050526937931209991294205040888081110731910175973392978941320629248948473703425027625814524860196191851100991394351375925534921206879972552986247488415709425278122481030076071097418333681583095773588483011276778283870657984770560798644220959061254158786794149952695741439372700919533143642377952894715877667055833885157426100076902771305507317742904043123743127727749997647806084659311798005768200340130630581856237009891709006034014595488543360619103743206444734934572359459145431500846490405917657731489713094215785696634246380154184340536611980475355977877987844795607970639520062228172877098594346797030074188430366577786650009713783169292953486885593738735469815221607527128926192235119989311232399433892945158230864010610237910470703567736094277783074938074292858472208926969262441681339059772054736089728203984092737052085605659198562662831743858991342116358717938716855219405779169034390968954951677241647385525176285100708729517874617210091364444665739365483044457553310410712099894669466668203215476589372370471796653437408362951369813397722322356307911240550309653215336154580274352345188795865837157201387143900290706739773982502254186831495586664068959955647157030541986528956166588519924302432702772962552442491164680141802482394456120120709160605889069334668269852061566022001521060149046813750143205906563777183038009707457896510963055125679493889825006818421960836222682717659854312716008019166274768804739870847719287397651424217990054147477984722812586899391109645637210364594783686719852118843948564967047661454017006651169344044615409993676481794842834262224926294782295541961118365237417225670949410775242645055657794700763791276368060429172915377233035388051935355799667711648241001755530491648492105933648263888178408485043560831735043807118500961024090981337053726499178457246179186856050287465918584293299130583768637056239910698886696349556624618936021532766772037343885975624015162553221864598609926065174425849426925037381089926371300628081931016556324816632653808323544249564454615330629860383652377985350474392696958773711163767406992178949931719917399831272273606190541478754011203219949276943156392156416241014634213876688419846308993524540702688028579680539757182267735602785166537868883526685880236896836685055291636410934643431680058432225745061547726062961134750656008347023593330926009266131511628024910137855286861855873076572690588452630915852691360533530804634713571159643720429794962207361858597561310084193524407430045496349250731583293375735168159269819028067245969454623937085812783456529870900547063728752166285469876767663089190521733778337397075978385729004368221749534984381363562361793732348049580988414005517302196949746578285416945794237564146653858332083368723777057108800131962669412192671384041088195423212633675971961778185840196089527806488852636710561574524470249497726139599598058056007249393737745101104710031224869786452783802638747917284353193658600575092253286663331452036028448215318040544375703437311325239893182186342905460972680470906394675872129039680997243885749278247348621412358850755498270164532135684913816756164027494020706445930133434518739622375561188704846378249537360102276485729744379542755056437007081934842468732356513781770777261350110609218802125126225087662993651411843011466093344903086966022226169189772273096476231193127966838525871099133639561330817861501243959170687852665840502476376600851918390360334678344527173579093960213602915379175345552017722644685960304833348731511502780189693174432733402040970851078027955744772210805762071751967846184739323433171308330380488036395325129612928033105794590700782613453435211307086007199863813488336894795471516197519106752460269271301307969519074045111439674631160306640404775432360829840880862677717121819568271284827992907525507926812639576674946123187350278651448775593588642394814136125723848918267487017964601708698817455333492970005065851442396571964472852117306471001793322548452608506882516709845710054443895511604389880057024324516870238985599793821127826155157601723624326614505128326320216458581060901130236116447413217917390298201716879482571630303689239072807889656143877401537307572923575036094175376018693438780291347156877622190095453066282778633832573623877661377424251052112587873591231835341286243668156353351691893400574798390108806075494926909203597487650623908219059976453153359994111406544315965830699893601986984440278589519847423163191747245606859445340939219362595274425822211197226562959205749946241215700991441023417389515600100098030043150691437284895319858294428793347097739286493929212332057766009842338108252076999836463945255575192612287228322015341393091589435624236132670430040311796671233349260165778415331728746668418517221437222583644283337848925605813411588279365748673408481380292968906173065800546514820843782037796768097690173679272525770445251147617304768418269377741790747285553321848216611740790871771022787463822290358781789263796639519531378151033299210512422444255043998602318520462647207091888320916464049804245701060412714587213722977865557009403851362097531253567382593872104870804319264488711500506374425981949643600307393004359623278725307352981759895623512789064280746038328788526436620162217901839298377849622512057274274063976211767212209369628491789204235087673554698013315635847364494346027042625711458560291789713740948204242599745871987148270728084969177368860546073234437196605565510842521837371907790457818750709863944774188021922958551059218690789494336365367634800514086002943893246253826503522322543887556142818815091315524049943739735537366701099844374764561045016943780207565059507708546718287785408004681131265853157705909830883158775656077624608189834350397188609716886589632069161100632700305981926020064739895782874932516489820357847371836413393129794880092094848104303006916647602913496146768296951989191420901084987652569194854118517159672253630602834338995028706200135064846733181732742594410982356743473989967817034158288527026360624436553280735942703448071423742229690821556884064298355442111488741765968398772363842536507700515651887535552011724825071439584179312881657639109672450803887750166429733983518184169863512289366158432038359960032700255196842715286421753668000738160572491000873594669265019104087466267388727797199793880026198248051499610766906286533516038301998963472101760965417490290647239443680663823328462969404681482668610344666778961512283130522196718976708777622050785010503507125651765697084089921518217073976492733992705435182307781005039713008431646071147437782153803674928153054348038669588035074660833853198667464533775231784164285429799142751547744619681636545762670346116377875842448108282516542961340894721065154816658451096935842422541795889364124002634400906046046381494122083813534265933854293942806104696532482918848371068613753757021829519397398188600912345185399901132704573916602824866273044789302923848239823497271226151260708210867001935377787023088797168863152052701477299472339544705053252804410560976921781437351009353929879386138323819533195648059864984546931499247667334561559909079383329030436147434587590154709686266350806085041836813495248135485904494693502909359316116692417893422542774053636883681930666147076502808927058199609749806127180790448555240851818125403466808989106567779741544219290628817393162286673076621672688903283063189912794201010823936252972246066398751144311006304244370126647023283507078773136757723594125915502743413560171523762131230033659183308502390963135693160191965795426721498154432419842655155922552687161411843181164731558352894337861465712584523550226397631076387771228102545638588761658937711853031542502268977058410852288958970570631826557698764403085845284211875215263089953441846808319233191066532468921227486549607502389782778246125114546417923158201703158373924724771327156290594710432015426454753188009123150656063611461913974238604323444355818987319308801625223330261987715956160963657941966953899243286280274212905878243640578017846408021457844489644632112487648099216253566482979104152788041343234909258265940746298286967034326839938963992091607488036832057957929888318920249930699247100024348295671856373425264290107531502306584635713517589949567017047679736437987018439358116100183587445809096132855714826979408597663210477950933135860817811682845991892416962141909867027039880413898987639911818367264425187786138737709930490630786774327820342396016284170800688479448020030199221801454469952163619378885707812008600277636734679667191869690223697301623375186429963695139218181536211693626502300520686142376579182766420085933584436145717728599518950085060799408910099248559019526882744454906051950165922704943970969351017418520385213513745117853625517207851044022832741818530535416251002176683979004019892311048703234884464813896007305228817558345209628159624718624079746926676377659195266232117175084119596751701195841298501145208134162098073844896018226225156854639205934998371396492901499680968865438427089435868236054370290725940292487859418957702574759862118824507142940634190513566866427377853339171752993354712387844564746656427373856629660073556640941611716863587813591068829110373746388122784421290916218768535239585027830805275577363368150239429548089912094299149420387291499969427681761361145047369441864091347086328061368860407173683827612550821251711166694304267638057616275566755610107555173917359168230156862048538534485155088911061496629444846811249389116786270752703855056648921900151962347093429599788118032683932297633652653301658717806030029746471088616772223802259148962971525775059786716718414124437399472625572515074521820703299671301102972501231416971437599467676138028762881040092936309838825708009858482626022760183174701148159951834551872567453331595575233649770517437448210953438560085836914018846582547720176478923775036370268922230354047572220133372713527166174422478533505146441644077410037140220616618215651544240912855092088501077704454025004817446085095716658249299878040633302346217351474531710734256265215681337248724847913084970381218661144994382073331802669844491875683974627593709114661102471455096814462786643240874290487678504470822911224460166535221538261437866267649271404335375403577217644998220389592924156759922545198524649798408090922631459869676845608145567122131792602203335857996250643152580227910930505748436422922942247690489579173517453879994776547425360098051139363893351561360167974205644438949070810936224255966350594944151489441872937851895269824293631025416284229343471097547820501290437543720176338083118748909459688168533779952577389453808361711039727667883306728795135819196146344136494964056780129671798800049512022349829846533038779666910108526198862369607794318346189684806715218084051358755892382022531909786563246924070609343029916678719706776959576580859623393191518440439153928849289212076097211219069281124019145220229410549294895195499658275052769520311259776430757610688212114739670363068495550449892094513942650085832083724840685180074905141348317980505311873347002119769322265379210244772121546198395555611905319458947454753036129754529446303054164194067165775909803119626815914333646157297584457216846636753581433211225898768016730539385239502983580202872904127103713963789321090764361969858200142763903281728012376072448229994536128712666091121229434225581517922134668639265105200020469492013859551813118192751645336619703368955981769979478099046692918837248134620369377176645291181053152399869921580265985715914702598010145060716766995326161047720177217101174416534745121417681273906458736373111028012194843634959297535578216491029053405281363996296623351290242632407205835748830017634134067451802164034798460610669263971442848872801965842836510932675465651981065513241353393089388103071482518917529282145592291588957455247677181932621066928380623244937818796620957278361456109521316603169784901845673026348037927182690304632819624382312099604969679262819809510567415779025005673456908783093752073457137368975100829223157684677018347059380108831867927112141061009035604278115060602477642451181095556601958533681178214071187411436361690507359636556146723445544205754205431494244989421240461841767428246307774705434348605964536583717929876863149833892622505539596522454632157958514938045018911648529619039634088935426120449541051768964256255278118810740078578641381638506018156502492937155374264717257731256123692221813629555137662177665514624875570802473936206957930096137808086359396596899588217215356105219749282025228850495556483427958434525072476380322764822740917996712329363642406029248121451474185644743517509149820528970660248853350214303931113135522041051088545869754042766381954360794072190376931443172265294477225913546980685041864241826744451685193849789524115300658727651972351885058833032007863590574224226819423468526215989192550881247443427136614453565906940755379381313736037779769823470641372806909913354139161112787535257798672527452128046304446933414052964271970213944315776756708572003622038988581294416479281655640264044189120863768334227251130336826340075782160246634389978096627904847919903593471326058926545694816918779092334549554942409517235805545611286661045089442219696309027932087017295322770553070430626475547964226681973641585852061307349121080481742038779574466584296416284828184277149072712548290552957648721995632642647264258858709016197135036973354890686781024761239595903909651053887008820543882961533890619112853439472093038477042500565617217539027348885304360119120076436485650480261872141335411145624704196145863779665465289718041255260916944316776330539758835345613020075219419230928510603334520772170855593650430817403204970198070558350210784567459810944415484606877234721463796431399125667986599001491027585255305461854042596049506343922771625574411468571609109426530039665888990159063261014491833149751179235635448203708171872253751518046453092218915898831429495440006287008156893768232809985457281713788695213844842308449792274840852398867961121761102022468083209629235996783308952224608296080485091598830204451553492251858114119781311247161743442740410368777431436852667699098202574709577614123884789977724072675136344029458368013049644972706536797717250369713389805806107697031756650435853472484973940483221537631765422662625875170630095482645911329323229054589677285247717972963350831727921544656056651357779371013623186672893861024496687313010114188539508651073157176308945416819922702601985441277548732539224767305946615332334188277009705713012594845907455722455420991520017838655169839556067132610980071585350862307503173581021909310722084547724784050158524101978772599483561137357086128837320058534490908227139408681452612461490100039246935756800933318611501245950284181918088934370280225592614193749984505068440130340882553302919321201284184609614719198198410724214258359131809218667430093854485534329951252745034699920827949383534484448371618320869111782444843576652629549819303895259474040148463495996627983556184686897905884828743559636814403845283558353238642394190296104068695639992981523055158463422626510470004183662756631016713141384724885431628201890980895931086238062836381800110052289132954674178042873045564968683378728702399106841602275908441728183952195334582804786479137551291935321636061285267906248425247207352028692364462120015920043122828143218517904780104751390323693106256902201734645184885182179489751290766363650907029240663241218744426825634291294860139568316579335462643303662888656582526265542481010328157917692576932921468982887287124184289131577397273842669669120115563177693583500810593146857725027569308727895461725822410815017831665613928049303290947956746398080199841275342575467605669530500344197296916222492290939910139742145056531132202268182616163552897997954739331050030418022889668240478746927898433545900853747906385608718045638271897544700312904330244300347574440539539100674630799509262038365337362086700032211294444157933644474244274443346954383640860235952538352799843241052364526516392793213660300555836434528037036542986916326261340149834532066895625513288419893218585961467693980354761942307720008912676152629074553764715839492102850695743543795420866157217573738745455660282305393376178216471249528031996622138330863639499192228007647824163361390886125881592702674453712221982742949855395218229177114892766079507728319928947444340193351440885128382673495321387690343864460860466425687423710432768783606998151493501500919400722833028129908982468688202122487408439293497743686539558703182955575516433253147825137454130086230382631783319841165038718971417111514207917007764581188280802834610250240593129325029722867890892306685163223763701887198878885730116291590193928479447348348214492601033887200489986202029710054990946688428868493170571099662154028940678625144036515676401827329409888560100548197557401813962906354721982073153886995406309107886327956107821867637607471378298059144798842745953326225477468178611207896753659031270111879785711145393487623173560624626920613937671234183528571703968748193643030685351884721745662022719430330712191305940530760137359653505236883052413371018756573965429504745405394569993988664303235613101368668771538627243754975305133142892503090039166771828552987129559830147422942323899910449364152149518788859200099697723634012671635237666466146228079712125966347519372636109024814225445166435260625770811224253023714627045009687650986617645158119411022368016735926313267927655255631806078129652872841153584552286742981501818868083883022236908138432491834907856544428521148615778514391156556297039830728945504687156219331641310366776189797600756089271226483256575542679259225733756593444951294595625106330655604569727252322836502940173873235856153419201783546641935163720668111918821667101554421929070859283169091257497003078973682187935489675320299524757373520677062577232479485040516104237870968628731692024939886325420568385416329044842942496006227482419452902982396799401246962375558765384266754525312130006005159884451968772252095552588802671427053052392063426917349650504885140588739364237680477838349287515337651404732519575688437464832439565114273966725883977322564817589128990693111153065812652114078547517061620791664400601624614331082221197054780575455569057590453283388069438005624364322385323230427146524641074646663813627144241390030156549502665143787216186989098309912416340828807211604406613779025813170474602286105896623130147259398971896717228272845605823282838686768364014751051891669985803374944990054522771606301243720735989776018506570089563283316668953754571822672258423406518478452899194553820854895443312141045561667756676990471483141310290742291395593918318631067953492517498607173964741722128119417349383874673117147353196848505974276132081629395277098385313292078685374122473657041466735286602387149436177392533445027059158334001486961946667502793616167910561079075526882925710794076696811217549776983678232262185100986739834158697229867377246622832437294362546045256133800705184794622350930075104313381589164109343507546476895034178053816773978892937129584075994760960983375064140206784039657568062008091106431502649450428238889410585055823422075880941721405208821312680934913345642455433922168877486259616213101002155512822879994203043924904747183213274467798716164573500983571161098604100556783769562337964247926312583070675165052557570526562254366522376192177003967776074098570124701206732919917697207956381401029012308234274125219525135690134837882933543232002766975669929079332767185074185164292023069891774307132964163878599109546404868887157439266088658278789099987106335475916659273197416415428661433554687210848514763999478311917576640787261281087317102980477489923939004686787140835451705424496445923754367846680120326297044046608777774984500867307650316397731967667603603858942739464589064276409232038793850132537557210503149703328582405137395905300151876974817325826969294078960908833943951751872639659314714597600001831060854619816682518940568915936094762797039028440391925610849499665644126687521174115982349784213881754884772359107904139407585525160652121473454506379299403736624583777722159248316793002688595863677014006994622377931079266353397061399061336832048088687550485230817371744986836521229087885246416046867158308565255331590035867676833710887334352751767433280861737473377639581067498474181488039494728045139623930742848157646834572649003851460687965762276665370075425485046698001182087420222169966599806193554810525304296324707997947206758217515674581063346334413239793435692570452228669934625907666347864933324279516905334582080088972990527001213170949272815524395459764095261098164510626315386443456911216563326732247720576705770940913969543316287900838155900224040375573538190125445848910014125086423641330714171726174449412113624288866652289486380578377231971604833866874344461991870972174754544516252496199411161343086800956725435890007269470728828968153947512728630255523841970598635612082624739210249569665795452462488566060092514672744641051958065422655104109417428869473803617018935634054216973686567767536490334000151901910606895627983045798440636156310588808629023133131466354302185250836145150003108521916859527108144099678659299973508456436303012880327683151463263440110492433543835355659915742061502251766615120387970717386849929095138965407820357702419149572279349376993885658215417931149170201233271661244162116471064290655285828898999231597941437854869727940036144909808173356676959426304987566826176595599478826870251894607871213933245466457862630920501082418870808179962592276775891386668413043771231020424398456569461952284690805960215869262436813097281380693227752738769377906256155628227881082816004465262809831239199747681851578269904846262208233595001960131212657718962425345944725084017942791283534330467736432292256362810044930062131430316402916543619157272020126322773109870307314464585455905925479000294084963833896144103817062043240091752082105421345810985078005436514583629080095599207587070448116821193211010481466563428871967193437252713474474164254989191009296920953680522680555250397446719658144929228203217218325649717675232248784887838527838340576405164936547818268605449793995496161293953864909743390684281348597303350144456094512285511525077470348181762220376998924167980286783338027733846318986888625737905089176035457241796096259702723966014948075346064071932663845880777649397454068412783281771172512057069474328776813399811741715884511391653279183082903346401957907817328314203637892113903399693014269765619033518306170350333432730931298037885257040532837318112861494743651287944123937953955980928953798753547750837165549286695023352514806274039412074872297192964752045089520537778233981468722505363730297931160483623241224696289298361696945979690010228117714698753309835939615665914995122894307583544842648672970436728750431927806279304254591796722075954537639629833804435094511662493521592844358144253241146952211204486931972752917990193796514786727396443802453624555163010044173866519595377805542150806984169928570665757611122638888502748622543065279758413938359485050574769475049683926045631285834166864646321923910687446527641257710539240991448933668626621019816329440332969100422756965796193683433411110060757206892363762029868361602954625179452086912427572073263181526354407769942093743091982829493720420978627460398457375154799181076439179713392679917348632935042632755363964005672970239686565237666977169114704467585965620538470451761860365448911498613054868836814309025769321562185110912184891778397861717519330311404805289367504363049476143816942912935613288616295048544597889796556999824345181708614315761760969477795895517127313462610924160596596712255225947112804059856108762990993794631536876622601135192511286093159309520560068773277159394613319368451530102745465132789113515823236735560705909128848363585413040063976621066970229113625790958319485852013665418785783112920046313353123397145520777553239618730120960874129489858033118719987618948088267911601374903820783183594206991593965002075420709355390166752631320542503451989837195281007385338963196109289668343690824413163625322827512438869247388697846658546112837398937966693108501169340555927231460854733386893533692019470155065942140487326882509488612386676358497776285518157984544555621355964310853259771793647016416600615397526709426606477160153241756547714457160747850550911769239698960009626887265405055192310191708808404313566259321607636028432910209135288019899739431220762413052822594265274013368693123295084436607403616598201741432423386662588310083266904736917110005046519197819447501111022450028518542084628971380333590423100289676111585429214247107999971240466466279677654759501401328921737584135712952831553199987481874798863959737595429672802079084329560469237255383330407387843468653155051451027044106836834508220192908589067464262834241009877362051988669561715307964951333327455955422884059573419953405786069595761569773349307100891383286727025580656471777992758370972350402760055802862706605646185030016352209296861101734859623265474452291365614680002897450461046984248102556890735706909877832983557467950510544241477158422529995800138580032958576041679032813814935594168248630134796867700050006174925403928676533138124223200063421267973698482582580412276129852862775285296369525736220219314647536139008260582313993803357292095125419701702828455436753416499356077540401059006540674385314768891303779361189735361543505171769055371096862351460454743786088963452529184852667524513749087265067691026426920750866733167202524420223643544469838808542388272313251303961044410023598323505445997612751165203450059363133163375713182660309705780343151282903599336823234933147594655562345863323928529167728833389316231494683217406057102991495365715092021296442999924244943727847964081206965321036933611917195636183580617189723196423446923262226634615810850745004911686939163102508722094659645005882991022824522514899164249477130658624377204076269036734279951191577041492269860217656249750779241554760396799792395677109578047460648314372526545970728104358989175064600656922752680957588629432078844482031769703207193223877384162672118012774954195189925513886928409256310652799373444718494838819791803425069796961797776202628405702063132282143515989002148006017170039982459341513486379398343026411955048042660159098804365113436315535794871500077278087197991247706255452356449462599546159560876244014963092600845410710958088900077799685195997724736178485856674496056739529424116925254777276113750047302216103749991921296487104270230524828397546047648935871845300565220274502601668723061586523037130560124277928432971295097480765747011442058975849453006758053708664060737887759777262600241778139782371101823208826935370273673341018267907938958578701693296204221734340463959412196320706430768784245242885649729624590827181596653902498550817929530226223990007523410891627806655494715339827235674257032928723476272187777026182673694317323878742377478842318517074067437099753260229743570600396809355030063419612583689839720460200808259742656710226391981709656835218416532912564664865563251052950685390231717304390982180016007104344433554923808522994610344742089514255447971735982305850728485548270343785076591263537670721367942002593109811709557932327906066984157476694384946477292708729479677835599917782352699514049292862482406155964007686521597720121935275996882919009616084890023263412672566570180772867150558159506341815748834652257493392842503534784515093887111524246525712618673048766193898574200351047850316798992608812896092995966444640675928731777432150161024275125148466319420501048975727494816300393430192350913558743427032004688612735672183015874878513499564364123943578223542343316130973084767993255507409820357793763206884630503039170466693770682569935617372570057603018774513045561775874287162359779776309115969448376183875885634603712307228726639692758366868383534675251745209315077777377808453442382041204959047993542593495581700924362305320487359770728568406098580096591841469382190210841092449502561956648812639056009954883292105359510840781202162189926315871671912290134667616778501534823885742124406306219417229407142264797622503419697501719627107318416288854699275779914909537339467059206889152847992626911385283711097954299528642666131975873219489442587099638588764988374904832155389314737519869855564359085990659697259871845518189933540679825788922188758827234030046178360459972159507095027922034007984069036283896261801677545235391426630126737143461327473501678899449007390279351709304505940502169052904049597115285801590676997624550753716848031020395362358810442627336648565014938148522076164565187502661192836088690675109336092233040667792496694930019808606447658100014786619279212406577548008352953896965001950528001222815983413322864881435512681390993353331329476832219203784746320563280152901279769222880634564900609064688627556631010415979004841097461933931904563954489860740800994649895026688131426036850696913970554399965135138115218012941131244179758197728895430367717032010958847239352264305245208291307050927683995462143558765425589972138136279802390260561235947433579273816909152815979325492641401450734340570560179134242711643014868057773230048596825262556368534993918314514135543128663787175260269296736148524359557565234775311156418048764338708071886992417434158244903756374360828856921027957412848990500259216704882719045848520114814775301595230869920512446119152600144901494186669270178398661641374394298978039045870874951194524342276379407639152915513980891138686376000118235330977835824220333794672645404868719894345355795639126458119330277084958206538767509041492604677154925893154113242361168215946307011100947402612381849857141570889422231211452336893382977742963995541036497020916308570214174025601191323488254177268040576194839511999266512297704722727200562079447436847440935031237496941211850549632760721406508380966926346488678297475003879485394965291793032045249119984075382813231631617915663184904928993110094601003489680595009728307772036029039876106021001994570961255347235435911832382675059657373417735583058559235344223928594433682135191417176457791771841590040154511081427176705889670011166222563252988062446542585920096162711792897432803701595539149009392966137415190983958821038987106732711036797109234903100761472050436803542869933647052309826876678207583161876931814290052484588473981352564237974656992849112158835448854746033640422339735573327353155929711651568850792013325478810963428842062665940377843121675474268274221364578036985054428690510209553682225410331360633824217013567003288519691213085214015166037518295322162786970288113899027202307690834487766815236863482660627527060653590525491081243085643077874226514462877364838697969984075870997175736523048806381140452769830994681212533346870092975827556401126377138403322200417237804353620419488339172836983306311136461932958130093585388775950952152830212913335118101614920254414089530729312704236674668578408445753368281905000961089424834785839489379173937801613061338008173136613490465023236699366008545774067325640997312182677774715216202565327120879229424091183888288355815208108417020899654114601828241465657022456185621781414031161886801836732085242043896076330890287192782179601021808828424654682027536401880949561935195034541290102842148061083708834917540086942565728740391386287795512361505476578148297481541263648654714812904107784361997639678165089784558040920507467850695519644141870069498664442169576770218700808076729454363211887155666098568078368493151530791679001881502159357047232122745918233168653774470504134907472265229133344003433054494535896232568537507098703370711255810858583872692824450082303464744592679248976360958576771925010978266726208656900619487804807531624738895458167323214796090739076693998842188881451264396070899383854423740194128820990316206407660042838338167180063725411174111109127118404914562910338463419109150329538504806374353462734653411167826070734577385623232542544853169268134690458839019832011562275098055701562970265171364672443228128069530404984568768504089520278576446021706546238591125153776517695607184860743850862497470786495981201467436842570384771889457036947868823786654342944179483265795061577466865239619146724099549116572665918104741864164600113287993069650053690788796261728618465762911707382200326857081651978529079765401972389315437671522245593601652334662715791234353939677257946033744541987164417177097151965052675667812443506826213609822188381622434429451509935719727702783560554766258752977276474208300891011140951599395531406352985573791009085535502899026193349989448727364202196530223164229800464803277976917877336559852088707264913776588585585499294633616564942688232570512416574945217555031071808292114715426893353655931485319566996464445651723028385189677375251691712758521637731128344161447513268662388395817878598628106112416973255660585322777642124609655437209759276004355843998849277872778552065078328769623311008844365048646030888944552007628491100151759566066481966362697251318560691936863952721121055902699657191506508429217015841643975715407011051908767969344603216483765028541773351483418784167592973058559562789603085955094058302602311647015737435721352800665599905851251139561058495506010922187897990727292284526813571116936964693857603099753589977400124050884421370747143774058172809588664256955561095035566673956082286257820065308664202660215626897106159747586992266548226992305433279807356859251661416588435960516741497296644827340926099448556415158269767268564080325950171904038562019932653272808701673855314084732188322128729290782573487999734701420411691350292492708676246540293268228567368969364243193489233626169384271311238643010207857896397499252847454442375133690946469238509112744302856248780668240937505171941366758188466771780694924494803659863255193295598738586924575187302595550676095754831005277092210512783432412166619170570428004578081521816712814887262540923796570654742482636742750581161301388263492339871388245404767313679292860102618846626926246834699911962188429660186415418973072627112767937325544004083222925304384678477348737157480751946925630947366617492197863541996528529953918787611751515737343301162385399858989861201193423324096950728720592181273237569694324713047868796748003384993035976239996902492878203944441838242542286207911718611096551415288292973327601126517252110950261515718674640685632983016918560490187961149255690062095589579609631615123518183315767835173911806340114291371088068045828005926226567160075181851315544459819505430432291118294905733308685540105909037903893918085873458061545502567816118979315886819894165168318803905924043705226681493287548918867309339461105781882288574630527322624653326091036104213252899820304718203446842273754131110698662840827478721890159294813280750422487253954298266028007812162835530014993475676215291056789320324961399709368556722645850627086897182637198170180136194821228487043471110435184591815131974020207535103840656823896809947542103041494827236567876880079360826503353761199650527237496002111556625448528138460149428650147417401692444631615872002184244867556672053245607685330595998599870368964766511819580030056115860837047584212277312673383399992311317851208947996563169409073605178885678412589914303572579875336724774470160552310988041379887780133978783450686615987586614632236303380387347327752554078980415833132977147090158570272253140680665099378718550003358870267715334383247342814077608812925367042448355614197253217488849836316465848572790013872581115224801494686828921041075551688578833661813462372971522422819244052471061254374440001030999936231215239277490507008158440565317612647232600621088539858992065716536630705170487711014298091180207136352060369596384794080094716892739330406471855850370551297160239598161999657762776424830904208702535988507447385015619219629443435189916913998872787890116697124682352207514662421833122187058232517925497855351654392963163920154667775166495385350168970982613513153974431724762738436842700061468131079879603453131147692039420878570193798042027154939012568475024125839259568767616705397419340923023316444525029539973549452896988175567518142935150514329389721618394317242205119894757709544993529310287490501546258686369823476503993096334539885924312404778378836599222174257328275899310202192623271443313973737133388483884638683864191126199432851441690470167679434472067067809109641747817426146931474339700750802081365529651420032528401512563318099448198273775143595758834618674608259196941245109081427836610123286956557939678901469374965086990806140147689416061225776618863590980637627378338397385181390151436169236037663068895194689157147752007511413779798556932029106831014281079962676476692760019854690192515469199422737515372878161641560466793193219208584247494224853264227143436126651150252138250414966218804460255477467776817350523383299400556599923419717373281683744107026666941284016834620349557006028535105292629501475734697281105889478980201644633307268614954413953967081540257576071810945436220600481391347478328371870513349178270268377711105958820904843818663192297554455335990405296167584323763519848982743485633384197123588287466876586497694172913130810903349892677654288893200026353307774023330284013499603771011302514378852896595279788246275785840856935709167687643304272768958873835721277738411053331349210769342986581664522302732187578124570175852357331062496185421393143160308051105847058241153949593538977695962320865695909770070561860322825724895299740695372032511771896723690646232357219491731458304113100242986948048754781628349103360703881774883515290539008208994424135966042359333300352505724853329786037507625518454299651641846207203673070531245530770541399451003096616944196887020003219658213473970395883480991852004229757741771747560150286136193167322584254304386679319815508816689611217239328557156321703884132327276259041652701989507156414876883271101881895530662548826355420405119475675942689775736685890227960249258072055301470503654532922473814466846832239523358743791820697631376728046112486529424859242902676136331825699082648109894668517416441881023928033154948752333478165437206073334257690230926167876748520918525719015802370207757147199467928336468937622418912946045114581344081931752586214022734402620189362747868329339403097096177523465575313332703205978702488104976728790615936332304101476277298384298543357041220502245680514740674335775115345051736526205187108674225359851196304977244132972330253113461888236787735103506860079871134539275164200915200179583301859663780219446631068469476887722758897269594030022191739557523485002074966030958843190355951197421949887032503405334831514721081275896660007485101564890207366021721353991332748299767318139339658432362514694769323712541177575887908221373676494237229093851756580177014833981688932770003409050897481418345585603115354785700143457959923336346279272743600877586389080058726106498511535982312767706864299563883428058627288112010141272469179320425530216557587333843474641779996291080079266926735878676541187796591508284167564557694667563655852197884442371994300153602172105873967466821406186857432930048381269442997643913355193522165076665391967159409090287032630112381717720118710270194466223717994755044569746825834961749854372554079493212223680893814041128244103144227387242487285706427138152633604348827106992597926610036148514639468519573672281988539294801332589391018993705058106703401373080800842490479348673243096650262518287531491437491479619123558893606126342285411475209391061335594449458268550088076304494580757677326037820639983690713318359109453124321348637427308653406650215444932678491701363674150357069943623976409177505291481159040437420969728439038511802549241864414588184299999429446882016914571664707686129124007266838522291411246298881950882068376967902861977884537388803831373996938696659563414171040315242388390561083142434927650700158675622082346645972462391010688243032798582502737244162409411402636023888205612149120742590606822028259613162971116998278780149409151836734032858131205024389351250136987499315550917055243101348978643699107416752605604495128548781432767006108738572178554254253082842877876657903942045486363997368048569627149993567225190153933189400539741176270840597745953098386342720245315927806487265756676039029094097118181708139199467423869935969509131646705067008896442289717760228426803772187779162222389317104022130188841147111605388594938637610189670298465395253569385673588812724042735231390120450433806055407358538677397077915572287511519624442247447446546592618461204959195719645473662564217528822692445168849216441724881852647621289887453778997440521202195890728878849378584668341917661044007356829979150525905010406136055211153187385758328956374312359176953056898780273694038391763014037915658339723773387879244170818176639510831332445712940736546168399041553107400156604970844130934422425946684336834956692411072792805470061660512248893652615092441835657850951142036656425522534489553751070904928934225130444719381749604788270152693498024024375027240970739011525310232007700444412872941998339050260880230978376886877742622572123951288113608263952391581150349216635176706018415549885815576504529381049227747178498359221223716779045041343918500539717011715605150582927420635966664420683016817055990654045076317441887848830632288542076106188388399338110113159136937779112737210428313506425133576185766565093145635616803114894807477960408437969573129043339072336921263728391731383148260759169230707899218485478415431981194723053613736294387042786126093949254698347095067022486785497835000658308057255303407166670331324633357663889171490060374590301994408383755855221330207628626354623528852138285341842123734367818451168302768081825945081111760219594118399619008569493646397005937906941789025239655669210161803480784652795580073372251950361496487919483053458583725549697148895825082463082096572009667032135061536058677878189648216502857531908940236491159827491943551799670747707116586276117189367807004213952312316764911230483768232281589928049833323537135184699861659507454105465603387237975763570231603713831485293989107764793956808132312542288064047084180415346982209740736513405721597621278605930494882482900243672459030705279940155836696032805408062816488591282283677673256662789794220574358462868227315562661684433265709551195087792398923547043380739687191068373020708362839845031687176768743151892399011391700993911659232738637799142942297946820988485561075935653411366406479312593582440523425121272191124673029464905484663985255849374086923746842824461243457827172275377976707346284248569426850098740845410090249396405841443395360789938939120362964351277351651608459035116068608672560865963995529516586917058944562659433660702539086204151054025914306817685094393491558945440042197879526279247193127979574182494384422625276981158671366137420261009064817489680220259064979851153916051004977626766843955732268298715662681106886270420878630425645394991784896913222033186084347480893164174427619579674072393498577010816924893475818932224095314164484252360212040127510021637262139173675735907497830137885770485069399441488727351870394323204274599375341297323746450361176939500837502260094571140309232538778624057529090895586310425258881839410782835984402890155836797542701346960519279047897350014693660946433011323237418851399896593306858948443745567719726755634045203308939822460997954371186749694847564523436302360254615488563444686835390571691397742782724151076653630152258823914316689016405189763154660617659634388965018262811147767432332645708416893501864616295370256083459477900137603223326394409035467438524260932816019812802234300515631041125648673805815930113423531104058611110730085607294849809115595393568783554775492129262789425942689848030274416887370573307715241083353461679439429660893674148824987389689282925871563639288710341507662752616581134106239495880383045109837054849644011378912303313416057886508136513681085636489181787097867495613358810119427647564877701603950908774897522785807499038882263933577464730886352157247166460666898531171781543489990026813907850353240783238436227554929107377154245955562220237072052639145628697278829592494269367790571817823281132598491313795988800924098021901184937826518125369460287927986593403674089135779944185899514991305176155907921732452612654598728677109224421500865828717278302522388775121069808222880327762683492859328618724450855549905402108894499734311546309298522793110544131041561606500684301162685240361029902690429709424966632708620243463341575741993134923878959077297551422296102284097571092482406124156551388843349405027769636359028578224827141110283903696123174436992174658831740116631646031163109730392200113703142975715554610318002035220331819430225383284785438949157267779505389411822004118627725742844604102661734613563143300831862270386419195298571400311318557214863496919709772061477034412487090104698750958707860761179831168407700374868043585341417071630137240691435885477166403610978277504196030995184952694349645510870906084977995390685124179944732758409830305804105267267094290521863826263492567413357383639540675125598542994541561931342070780039539999768385718239766717199208790586434772208259544580074998099397912350963155612062702635274858647907741501071716385013366896878992144668562863375682307746701588327393721628733324878749345383568494828497410798541544673631604302906381731221772543402854789187385698272638445295442300177201576163662572248692702294068199603176417180386072520016441663568214774814903147419486076158208783165053358293536430632176816225094987436552680734281081680519437941448209884570153321709225327241080191338156118831089315574700529708013968819071321567103107923418590748897889273559477719429263402596636183006613283913466581463579891131867891820565697446089338080415439681149851295893626909152180333669779573779618906001813986906897687564346261064858697566963502772096365399663493572617918611330354586044482704975303694400788673372110114854565103705036504467273498766019873472605014045014457485512924587689149638776335577091490147477608309940088792961881516865748632808235472551733263964887413939082215006216126211665645964500540020740174773613752584037571927475617553963108761918022755406532328567659508679907351654428863891963519911496874879368258768738554720172630646345308849652024537672194059657789416931658674081339449036444950341174313029400736638781399476173429471399998936100482272106754944566875453116260350163111022213368647852819676607890791533643198527548422838250225190956729183327184740703319478589315059194710448037862745399900862017067393574969412581064390349201429371872316718288476850047551736702442582953010259345452170624408217988214126731515271968097090912565942988471070713944986272751606145894914717523999147159802175463604791615928381181206207081927823607958888536253225459471275340513334635634309580201096727714171171555833996425843523455118464478068312178331218269881985530240728153846246125351089013181208727756284924984464217855014426872736313750355779627582158846281861851683467581541524095669071074897917836130994077248861318047003367207609195856134208411239206205638078407378011674742385836606435934519196230444545942142838770557160844867759006386039244377009006913795210810099189021920077137836984832994392109738805552525498067380196131705529974339639371872562070741749793760113925931920183393212672160826171151647543976164868991811720080532159389158194070318482455421011728189127215350654335814184261818957218936430481286775773731159100120814490092863896363661051372097731028691585097139907013284810086172870595923701107219035923437081566727635284305012374578447811353707042958178460934221451659196499914217624130374643487423350278170830546010915920581606987346264853525339438643751675816126654552415505241645569728955452803138793470337765358437261715853931240411873048370343255884301566503681862055606373731900482648796049715791111237743120419275684472342263435595881295963414561006801373546761843428285511426823873139008435038407262121730878748473159693531594296076189367982942481170039005788618765441681762914437927074039121333165415743889884961326497976824033739772986171906951686120754704245082913941793971906945803680849457904106582674153799905391057430162707289327799931875665260243483271379787107010590470087983790394658837918040732569441663867361026096132659163123316304736225357629135723482986174552177438813910008830575459485383173414999687914035573483796415341655614746056994725756491053077504578592153021632767201661316959818376428014373004039523622168954767281698023281909103343917556998529838534912451675029963603137231475624782254155782343372241290316354870905715545309086666800879879469147389799184174834284445569146977833896887434064402699847133078379681610784397859264985165344935832760859738126324037432775311583084870977490555701836813997775733836615446130579892006836479853893976345147725381085774643540928061710304084200803311453594382262870104966163979456789181645897963520302872524036541579834196767513334999372925890123449082795075963137176745382552991014093052042928931943165607670974792073843364602337712980218759060444838209601714459879648932213228944234089625518340338507572789256094284785544605738260952766306626627963284862609264177070432855273573593373266784484873336740319189345772526912913308578497870381775598444893930242738787342912508932983605771956299595250093326550711871724549211985634863720244847376710763068234550176825731200189532407759726151649991290212107549679887220664446486678766257197301905452204990270405911674652355689447913971711434932029834223381427544219820813528881251362076574274059668009843410877752854582219513448826096670037799249446242897930537393541365699975556252239215877071310697449558271922340168916564246751580079239066437716409535808577258225832568930458301153989861836752092415289414122408495715531728165934018494508469225874667981586390947070558860901070097552739596522148161922437077720683668573409440489654836092453195177195993438512706018645360464598866758324897706149986775673228525495469888659444256885044333274849317388153435110442572010618229166353149424233009573698963210448068069983022491281202559953359471336073515066348714796005031303557924191880321597868319243970546276824909589277261374128494369881908552282245519717560879626465103938501947259808441902012961673962136853731290989219853746921125289164797795006594174041026062233983807280420792648949439540770799571437603842254283421566151893144457906881098417999424044151120302795404679551511800573708807985771733412615110863374941108425435732053104351612341892480176933486951852807227552973581251872088688921907898311215694750535694844475540761042243127559563728829991445081340042836714004984834796421250642733971231344005048578847307474864877416035838531631447948420215492545470559803935464059187666269911522550426847724658065134635889593716186555255766003215982473013694993802317277555492770902354838148064628148433936458454522641494254807522318378218615959403865810392195059317445843870664322157143705816077218855067442054718862090110580577214525241203483054355415414161271185353739199427398624748579886094601099111017837629346233066251129661573047183747970306317453076755946447790382476557997415648987528013024839020119564989461186549656136511643435960517391039270628359247839186517516455952515872725532349118028260314316568801619056018344469648146875219991112144685805214808520632383934800337200747451241335817958535812066504054260053208879541784878678711510489743712398051702623695524164194374313763908617304211340737495635142353169085331977081296948096417176245623128439327333878835792460342120141793616850326866561838131986003722852761376699621910059223737353327122740977444776693914387826615068789979466118945812833382997076953790590251399242526241038600327372712586288311118035841447457201565603530876881964118212051126226178694539289144993442543333907290324848323651600645982019699328081398672467213734479155248929198071295898945309174757917330290301563969354924664210026169724792893832637586301287767508404578281041548261522738042620011249257736830623431696761106571719571635821213788868276842498473061645486418413872777466149219291736287027941758856932894666837260829481356242334357185304714852674398833122795912295563877623581252725421631173732960010219103517379589879436782218478035682084066806248475839835693472266131675396359452434911220921693053472590505936788828654853283102843907718138169545343502386541178531257037414437236721599311473308730222068446843670368515714247298463767747991462260108814812563725597476771169298117207746544048909503769971515396660977722522979781120648431542278554783828005801963651033324055252880023276525394030692304730924992718734916703684148783747131186173601261850106469619759450731562253541649494229409397457217444083148449349400312517198853220052641867751036982197662081476767042221804698725603294682074158821641369439784558039618115905912263829881383553066429374555997387129010904816748381406411747497158913392543700962749519000635244230469432090100543493135171164474538397575469804060524640127682368605453491408030248014722390006019788397250736420577660226668680476842026020677120572895803422099943007047321855163628909848541067770951864484818803727955769202843285156233035070912130394894878843942344847478890229102439985455588304305162626047781339243602717011298175515922798008733564530446019035858082292281396388888135647900165506378281760557312660206278194340808835660946490961447763874009956065645918215148713928767258200447637422415946478858728681317320214574328862832325752945159190053124513086933411188243032819518849646056387220594145018924384873179933694328640595218948470568985015890642626121630937918046132880332369217539465365564033493243308327712218141629159257921382426004249288411638843954977244193022534715629698338657504759397010382321469914410509319217062378965930112979764975575120627993921293365064252693762184526584301645551197064155396056490352946902346910513526986480814237946354108934675034633488142180166630293207295999488642582235963901809922144943676148754450449414716119808345566351482051560418142733618970410271749310410466137409751913180762734515747118335180730831383453578277903741009881762629684002131545368931636703677648052667317776452516065209401378769263096729287998598293426479857466380649330403898928623144714819883219443786277186190443247825416845198380629141813747188665761356482107308877873771308273155631612943181493054261739338290520357164156315938144269744976574442263841730252399796144551728881538844709956885203916025741625705988907567138919943905009576429612505492941674152554317784114047119690010107945531137484444419344660518119421435654146839566262373382738964474573338932372014017368102686636142770885692040286670195864245897510206053411521022047950274093354532734490617152901244944535144008761523872458351358803388058946836389154928357576908525570715681268298419799469520698770475136349893467429447092362267270735886292724767016519052150445506014043165402614846340011007476558786684393535355741132323163819847218907336282958193820361336712232654249858769856248863629495399485638813691238831756661153860398276094955815053586646453570684039412388602732965548024659241382716916310887396612605132884094204682188372184085870318191353732327413607043046799150982647766347748743604426867073693082903939551587755453145457490923206661807466054246264938394080727175732955189685498906548503532319693931958317452341160136541485168154724602864450878703811269730989181953754958701762067316094153170851945343263929233169960724403916711276656176014021622445082875400670384529344304618122933040837874913322789265313770676938594093978818587817028563101468474266863926956850313847750301721638569984923538853811650821673803087339044306858110205760961721414210988073296593648692337369562994903583316217273762087212318574009627445130309982105899994674991406850782396303409424059028001334244466424958517582693005273764380667570940568890665796658900632615490026231408320798487139440743998289870191711108746603879793214580930226290563998672017810547539166019254020523622083291034132322855608176943644121722615334147467065536864962386122566084901919316818750257979731460738130355866881312396728420490546052044374726346036711019585818078623322688222547941655548940277412157960807864539863511465058148258613990352549969238621963136677740103306332630144860662393582318712356211404651339251093746558810768486632585994433292045550327941475992310660355278289680161149776779224860304579824571867986587368183783213354930830318078926201461985248623445217514129594226342271878027551225663344020773739587714286333958094330938768359194767963079936762099024823823208714778428995234108819959706805107792019157947310846014125425111791405079522393672976129413359019114613606599249231930309873846907858235171164034285037679101409940115268437010992778230614509479943553447143185575564623730291667109793405097210649256899826304026804760312647055240162907969687382964048294296614231219394818169238594543792355356380537535774823467014879888681495624745171290159904887060839492858959165381400498941933678089248543241773644333824244614312343025612237638378847958690921445086309564244227709637433734121583188909665722527463082390876520263982808875156475937283280777851332117374793475323865726813611661986717003605286558245173681645741337933678611729675323633793864887900940091273423983814228306675442656419713662004892286200301259070589172140990243695325782170386681601312464452198525010415389443505865619887266452228941932695209550110239779022787314874596659382432713603746584150098273821470010444311290583886039501769780801779124119219862012822063755574381522266665852372391344549623763773021729685818099103299931860872458297476954588861181149948034727281144691710829696879168621596326723227368560149551513800710506715462160686932186649884753228765202645378649944589925395953047113544232504610646153574616840935104475852409132392230327352074207090011859908003775306999320325512078475818919079805287827511143760754560857538200805902290156446285177868552462505692450677546813195431500467817368235101299890599378664229308921003771968464602277827745221512434120588843307615850673939214238168958309045947822496355681397166059242097262136487228239502065074622004711144211110614369929784295664118362102036119952977338037211467949447969720357737248568612057251204731216040721323330029738826439172575085182938020547926164401665339141097589146379265723452099144976593918899239072370813422194974916069112105061739127353623037793349443708629060131631954889522597208873618514097638177999383300424006350273315604777730441778884494910587407897872054387852968715901595674503139200383423930802344912473577944999609781379279260006491256069497222963797829505671312033963481193798008240862486442631560079643488178070615938733028914803501506279688397200712458100318748714872483715638973376172057100060716174711137363753899214175462071095880963695976706383300118205004322607955689655463809577778827643428488412053911930650697053526648507834830260061787645737502484071166300443114971052238796986283682102676330688659264657256588284998656233323000496449760802595828713987212491109518973844872815427674888894782225211820694014741781294810904965899510935699933735810276938287599778346401913366897995164965793535480861455783720052099657025129416990295507591078383997290941788232067349776221508899611590663982773350269322863104762828528403597980213746979800082500111337826644298661984610130410294294927461599967015207172346334186988928996953370899339949666560965347197572262836204579074207224155626421485916132759678832842718654066757843840268400820632440321396301321799539690483247196449564150370614648247924049991070304715406436286208210688946732262945299877459921424118461202086408143333458546733043857028975096042674952247788408392051407479990760070588125368588748525915734375902299472222815434105021110361831876210005643338926105626186333811540740256343925699896887740219001044558714606279845566430462575569024769073540810491153645884480307134497378505894865663896118705012412514544872868575736898061757661309580089468301794572241474878149927142110839640460145180940389528504161476504356722753705881325214216191832314182281534780197986269125067666912706758355020572383514808695886226940485787938548154638007774328491513976197835955716391365985256475318500202822960386400242872486502341006506864180781069706166018809980897689753217773350485065422246076262103653460187885157628767291651879973758404379596595865093340174741968380903511883184091061391778940365408059472898181521233082661001143629527505140598888276526296820277569668643126512819161636925007927444234822331194653423902793418665276495286180394090429692290547108513017216234683570329627683355781141177730513105843189202671624788756891709586338379513113656408505482663949661329894081784130567653344101841990028214694890054564840043987243164931032192128169734245569162474613432690405218916241336364592298899315628685763349911373399284973042197468961359934855513430192746118488248129481788900621963409574966159452419996981185399524533556911674461412781952531857956729714504323512534739001927941013991545908389870493192320876693117788843720829690449486802422961483101823407325352269614973372712790691166455642823237834170042698750182262260168212017154009359409476510382977616072216554790969239450521123118108703997489155761707857802954059914201831590581170766058327809398299807393421392795865335402622588873524983078655897520037538395556470735354927032768788939362019820764055464723195545869176197364649060290576038454893381849685282502238969966385851257933109808889184126969225171419024874312776676536635956829066583919465232661504567723695885689830561628672952506889745026023664803718120006449235793248587533757905907991660273499506108717844026644666562020610993344369166712904180399056809890446658232322328877618612773871438206204359926327603041708499503503283148945737529452836212215923315969798982883652435623959495209952824466758082961968966835769168192716894845983574774298740396018707445316337379452551475796866484224422220711895481725387439052349110946217624082867363478979406966317899443032631892725779551496171633515062502775121094199876172186788743890142452089285650989833708761345704279892057141739730495172007020914272258234226724438854913276442658250183561435153252141174187326209611405984557618213394397672911112654561801456733869595071042336410734020480037501421670851851212325544751605131223343969938703501857431255460764097862156356555768284186934198601081125450016534704331882293851119694571942494240908889773423666058452673276820951713028579651114532637979272530697332759633252892776870615527910945092715408927355584571160519346353009179510600738198995119413598563688660723672452093518100559963624713512530058821308191886553937413261218091112974283359400169845093710814829249011365387497841019528574896099364719258481657778339418637324408377302499581553082104283005969422034509866956685773465958986068409124247653333078887912872475392200257155864819887815475481170858245679654786551574525087915937138963105853132905440479241066279292474560384939873857481475202820052589703703693855788205115023299863154753609448183416959712351809877920572741598701768348940247710035707665310087148018205188111158885144247334221421952654178608284013639974923810258794434722361782931869682087931079932421791667236290057420343641037222846910691229507202869469908863969723136085858344255419151543161470284346310868862120339608036167490383377486908422364796832444171314055838320744323389136966153291592372242084847566681944695620173957864081688051054550339316236169813143433495753734789872845945040634592368365888506450424056028308749026686510161000222868802748567385944233479143664563514540378154404664705914499867932779039922095873140377542991480576875143442567269019640930203269020590766323259979517800166098345120988042856764387128002825072707169906890671378779338009147395491869861601245656515053640220059734577465793534566179579290267127082684503588822082174492006127206358468883479731805598890838946618319374364253525619463225923110559892232587606554088001601660409409449079771962806013693258789076461322536329737963589804779129527800495368115985212499339319674800996202805521502723123404476885416302897171314021018850375917129232452691871271049614742404688880471654072527308697065395655020691823511239707847789034921921986907171385513891604307459437501086501272073116749581674353084281925641471681398619887470257394080074816035686444731448455742701267782753630433779506352869379044056177794744293381665076077209680001749357820023943465276115145200232376768817791787475140701955281483511405493403192292511688834799870046429810491976559234962617256112709734044291547806582821675237799542145554080791559444002789413136579568767728660124872713739945412260897295143501660575547480747513510661587707115796665560527829833623731406342672953080941931244163250350703711647530332569199394445748596327391857352207504206734685797365019301063922374012437317099090994064298223951457860494973287136643648665248107822730066875108520050826424010430000419084216522159474414899657766818001198025067026399100624977362960235824614010001241743142229499516081909172905030177975268339579382105739345269335669560290108386769153532675746832707507279683108927814393225211090897660783517700032088852818408555208799980042954434865387347583591824541005162804131165647168750427365611738457517437992561308490623743306923625403894139566488407304384572032708125028549590375826189383684595128797891832274526162182617871609123997208883579201065216583183281517761391769380107213183842536806708401871694951888820765384958575998818479958171385102131321670417245783403716869859357693483735002304542455757679623605565519173383344166776433489559364624909898051566586179307975517212328803130965392965614714921027342580457284475441935241641859994912105321944966165258114673100770664622128520522929449979533657113547814365715043790589113818429731066253738964731363540812287595365017437742859719137385770838331374364974610354065158457152846792631202842760492443813006407140533114903746849837297875672535571274283297688658641528019646084615191306647639975654917567701298384305199933619765406089856032999711918611419698058768136278377233688422945183838640642513799573985055803843135490905132889206794948181043767396240091007866036376612594653972661616445067789498246536215674174991944280246404612236047802580026232984593711456906473574223294487295065580114253820154317513328597099158899118678359126243201948725449796765409837817969902362525258402669684257800110440398496660008428682488519607966270709702778337812434980443498080939462635033825489644366067459363563470536426749748247580095422253608115846575128700623145466836194120320953156123799434373493912949533007370517929882695967025952197983938072192929214161603806911792543805063069534606169760760002581001445650645856725691599045876708060147366798899611168989665027226754646194110815783893105448094738840790885866056682965940925488216150220438744746183326703886869615889211463588088373999839590198297388273192875674885538146298724353721791708132933507875847732072889069791474458050575037291864382302911992242057631001091877795335491944266493383722148382489611683259184293602120309615299293505681306067385524586178979916567015879608263651102394135865646710122866639810484368840733135180003681075479251243600229872906030538983533173235818611596496650940686500805770188457047116832201381993181618005611153360781289029336586106942293259576433171991505679235902781699313477588661003946025338753557702000267910364322236416906596411318508704882550776198751024830189398608918262969827998522472617714586014691555032501962853822638087582430692336215410472788797185926871608637671600848273190150020861659055302685945135597966597923561102074421066396744398538601665006266594132347649811519698751444173773091337203622567282179769914672452928533038392064864480920502133234528091824997527014454875647854204675475642783114620825726108076597539095720973663652472589079902438136784315414609357947396244720506977013587653918828380989838494365102647539225026567201431210188331742916116858878947919779395423532494295396903214624916957134367592328874141200404691380785025772214902430806592620735126110531931817364713763620467009696125141325518613744893921340996325662314715799960297815352125715873245308610691326259455726149835213007637670849950256609682102074447842059631213495612390838885967689707774051582358048219609347859236309094155714758006474765264213752641267002279539134563281852519123431818159272112759628053111420042697985479950126969999845295602662703421771542242354417292595059317797826953979090754439410014030850490024349776749414765914115775499660650017046042127047816762405637098750293353155025777863705299470955498556541497092103196716699131842744069456185834305704053499024859568675866263952225639107167833108429119595741666046467368879408555998016635521048373665045839576566154589192878691206457233516423164577588031367252164657220482299767072108665970376995134308555438801218944664093525454977208277589856354227875543705923402532283511551070225836631613547211457905908409799930085118368454451277934776819020241105386928264922163482874260757533822955219580256182355217999690710637776361923584197149135575606867528710111994127014921463075563125126484439569939696233848598570109464878293022710861300532278919751512003827694404917477140063869986897514366104200153962687165935548084209190508203600314149679009194312231885222254034190297045613922652215257521102123261502383679483499349638993808653175742480801335427685135930983710760849252351617251070799114176265183411568535149166897437830725215219537014952010343925542561861943134215918993088378110417382925674594662950712509673639118229565757288805075857099310106525576523586603413244950663943351931027669385630034094899682566250190403550037680488317480639277799655403122294070508893720259581070255428882076219478347395905096554152089138974256523082949848261764850622562022303065121591992959979179121054666442041131930582495842276828873883752927388525244196344962617383141007096188665044680097486148634639220872443399071634619636854249627502922587373215753546788937690659334041113591979318075224347784683160116400622425975253786210311469002397426870767012000591291341421742384764433757845194473633347494070418276683957850127076890307522165218968444634849931294858620543202695261795124102063778177293063318197082060792726209296152444682712843198800405572174297779056302283813366597661363043350740014127800112094913388363526672057264678376445897395813975109708955279554169462927502681334072698220989253015039104412689956187913550500450858895428939584283846189815151146228080906267823305907982063392697343775967047484461867087344713121994683956143399506553358510365379032636919999591264571694129164398400658772151635460034822049859725902633043467750675309208442978953020563523357439958977453050865045349221279224017986102114582096022829811744999672471338617695269624851276156540592691514296899689250000299056432377884291203155902232962126186201454744594799833551605220825358744634590189908419361233006566445473075916864027664030194524683076717259053812124749104723194741893339406379519694989223395781396406765286943730642022355442692168124266866845189990864181594416575796160266536922707085859364516040235907627266263739489043971688449699266888676755428915661178368674466321289419854525061157346138651139880179324073440236122767483295000118866026424080363250495890663946333191805791015058011933849686432513196448265817268685847091745792971145978200190791671104024220698455285141596187804496309077560626097028440288751439002203725898232187852793822362491226292256233877142783655257338183038829725146175601003910985577057478784646798380866166587729052208706754105988653559330377589081448717170849084960842611351211425796247112769897532188002992080740623114681696881401944470179896055718321527210732719297257930264533077297090069502548117615978412739688284932958142031201987763418848932014093761867054985306755405877156050733599430729510695033585814589801752110283352473091890455139143443332428656847042624572462272148565298507672224491612023114216601405887737954830792260124086559056735618564538247586152334331754697063240185961620710068335656533563104432106513120410265871108422033699668250631036216785646591419902677756139948232340787513574973151057126378329950147572668086465190563618212658069219394913233451283232161659348906965049486525638985249255767973214728879712341955942797678389727447745890881962116038155258415251012958121566786545739810621349546777082599213091271464801126123406901055347958092501864459520238573236467655843070422242041261753461902445777892920786583962066720209352708444679776247531897878716496078827088475907095382834143153719996134343741179436878382577333335456751102881291185193876133714090908487980990458577365357188350927037932391217032860134012673646824927584569163052947161008975226529749386042250554602958828788811549026019547554868861574626211649123976980466848697850170535118103016527542544017048791944947442220551761147774093667376328135595373556053573166237935191074020471902349533719058035864769979761510429316739915078170863890528776460817763344703008584939521345497271496655816440498480837512577632494977001765173878185117273259531237900076153313455249441774241074343092321755755961684328480943052319913544617005473321735808111981873195581978551375547264299779477992472315786915053390256743720020951828815112081742243525572086656320201150739371515948260706001508465893735066501511346111933646638239836456588362379194950766237499756611880767711808374161338793853479805371832915547327954438439855648094468743636202406949135566258137333392985291727391890274101804330329594538783906514541604882771258373436702039259792872291062308757366958409500547783239467226785459884113104802833586875212091991834108964833877733508966424668060049173315350163169951311646640177809780865246817284653568323469553814255119763259242434640802481905967498315636525224393367301149395126001425930274496307755425515776857883301924427048519522073475366261635011519388560374859172172871452918110824668214325697981674926722947945240742737667564845896522083814607457077007976453189517020299589703893372603209618957140161658188306888612209040812098835767954037991087509415720454908471406360910930301636330604367709605944463167360472595267326573244064763563481179336493604208957713278741496032382616568840048656088521948492547522734351367481875546307327299532531486062417849072531617151540401346154036546946813931915050308207539337882937295991708043269912105452338187715565734762404622850262288633098512561473230838124225277685131862525952297224762211205412155483261652695992294433328630929566125210592606669165342262286199153676289151860142721050354315286310450925097492872423043326278270255915304226406115455251178294371546457433001028606271894143562024962435428669295510406181262331562331754813300496682379859068366128019163518964557374633453327476525795784203818943939523793486453319505634688267951094444791035998641442211152591682101069778349234688791943182172575145716003071801633590195616055100613957516018198025071247742500232325562946820388167240678010416067483187251454508152738110122484501166426925762299366257420428622797215387972994374365854687276646472218173264746494900592345954935876663061668568253490505528840176361194970904366545915250924616378034723518891198011933909951875393228733219146391920302745735551691368839897342871342386649806072700310039419963617132141793163083145130529015428014088266504993860395836693726710473099983359977594334214429995823997243088743967959744626621681303696312608314275862754432692506133214670057313043471288444372534669742704711007585140754915081287747506984424540371343338648562271317529863247393753988871348516261518137295175444369168191140364660090484661449504819497398032211908867958505381132188402816668669970824686274222610578729583606592152749891282900255993869100406796230143517066971740966991073404483846960172107976916404380320358612831771594755339941350979507295990296800994358146810712994463631092636611508252856652023371773911081898165651035350083885501617164108315394372156027255014135603929687146017233458058966249401471661060748935684088578854214786431916056755589782570641176388562450139092675122601227559307733015208728853247717839071680727760480626885644090652917665046088028991878075917635998028219778553366496411958599693806571141191807834463190643861508515447090962505956570514260687946847232775272417407211810956437618369925511774589118544696763804371598469273460288238277305829846311809961656110058650101370807353091242476781447347116630892205379349484240915253365518054533270407539123212324924922431270833430462571432812887539944221085503200728173446554505592690984677530395967032503007099180880253140959899593091869956644913262301935747326081747506207322886932304837837202661222080548521085420726759065066830718666574514528294041495434746960478733135851775838779377939850841086281749738574361100922106612989526168094224924978617572407840507988016180089942648799523087662209009326079344451790760614145540228620581435822807157467599955476183259440956672547618555397631225703613637991260095312458378246931559810344393547132280657871261712882775554327696688294604526448168433439427365893329108670255942516724532127666602285405346047545625796998210519444067865305082015636528413993643303555939624067449195891199475987008913399877172650586240092583108356413335163530223149272119931331308270104734706087043794997012083024549631693504377090602695480226504978224634502807034236793148525702574217694639733133775023510868740063463628594564380308537600319413430400073561826100144779747720541186423463483144256144360081474084679804295685391967628401057657199210808717387824271322999620812274082926930729375507678026030207929463558954161225109314346601892987326954800789008415840814312400735875936253464747574324213081217241025835875648061216677154293988614048675056923779615996800787215110804531634150225465666539358688271845710573008406053968830047906566009852953094844424461007474111162163441638468514717579456994730312675695579688907958123554829474566751060349051373564274118593173572307573669055232552683252523750555437242980100743593517082428167256466641112877302871566156063369912045902019228805042927273114248697356426057037479648526450235798182406629983927667929871048773638590109136466478096616202035895046851501068665743390371338089221836890967489730359207863251269941920892745772275249348362461574331745344849383909179629298760042920629819433559425993504374284123212451891350155673244410799036951541248576023438369411023586781537189918026757558588410934305291884068434933192356434620537356348810930175426677369119199374685718338849282772396386738348448685195739684858196546374077941317519879524896021361101078605990529310268923018181550152961427265668029677546220573314255640301753425443003629482096880619693051707672021046782030240864042479311509596878413036211183041381955630895512970232862917760098828216343455088531775763800869914899183940946630178709067728472935470095905841822403418448418760127343688488335323111321352772487463538985028132779172871607758541351985402690945928601055088262695899635279003774832581913857184484514385255040894379680389587365267785845529059602065368797258701692027776636184345568903778235807674430339751185343115092085481099758140785680932291990499943793159801038326861150453444285255013616164402662674190928522710748398842042945738032607042733707585476727051318576259606490066794965416833431695042350067749436771176682100677206737105178868768661155645269240380633217011581934661519220111678908605297068551242904024490044099166012446182603438085457980000594819780182649870865591057875892460870065998063014508544834661679199934701764963960535593777563940090323366225109049856180845808232799768683072695266902866945862543805603730844479979957563040900305824007696658313323762436146825436081617297074738635490801045249982501179298501065851464027409471034394539933600260014758940277855766300823380821848558545066749488180645830172201529427122284615324022125116082077802593326913907253930430410094615796202507339096037921445472091115117976056071933659877650147570371827905301637252309041173807586292277924432855080452764303433181999134006747274840215645602583638213451769260946178595677932771196783666346331010199522655982226358185517628615948423457655318400168677248194360428808236602509050141425831168230828393621873129668923331712648380187114145023440014874712018890768531715035191022827732738833588879884106000218651763654570291139694727132587579445256560379406651274217195773182699773295677932992377109487084058922784986905757418289802956397029245233652189402852562442552957550077429775096142207647127102519347506734305370465016656292119207596535209963183337312996991731996317206736699390846520808024441230524600098375152138242437440457418491937509850966911232410678041451883955888149621171897161780570976257318215116431059829039536182687754862835715905533795309837683115128072659519224202169858996338690057216247251457368274616296506951492261941500149860697674449932796440604199982066064880600959334573604575833887463220352620211965016229817985567088646693779933178737630453470138342662487169166671865195107697257984930982455899683253549881033986665114120637307334539685698442408039051639425335715953926790894236271319453064954563773620508232063584068901337443463197163082079959885576368191480555373940606998510043599516517876552781923853563495162065629609320404610539440510244682551174823804416258278731962489969365497073662690810751247011436770780309796182536179188675825073887113847481933983043214295195862015653481970678781395691592558071886046238845011552991591721650338565149841834481433907741437897393804098043090396665837467978024030012565268967020111053351866460640256071760939622795719256851413385625456112682227411464069542758191232649538749578896466622572045214744822951658154431704106249783686171089372454258291718348420548251356528257471491667644020652216509658556615119356548675891404288507258656843336433040470751709306670616636658804488459253924843383292418852932022937238204025211339802224620461538066119207960700367625040382430979178523365057147110326967095209103403058845820847049742504138869034050063880540231562768452853626558014079786320482319073037312987151891273711700295120908939756518904609785714488463119270792922400335895036008661308171116891402176968261973147362220521157344074723207064652120856838355033680921715011923128999670674471526287166642003281115796605779518646114290022843133037835108559607419244517617270258402945346128194733154455304933721359148698819541041825818156616429815764794865026682806254931530985617878472077547820231706008618711888854967033324338693214303480144477061872703122268592401410162459543721267063520334387689250161484806749815126692582379049746100828038061966081484897327550183240473805438979785395156899456146772237848768180281434995265295168367407298483681013002582531141540676685284201911575069366178740514672838153196262480988706255720555097793515845366817671713911848770930234821745697315863874537423596812975085647728776112960805695060797356331356241474322623842122972066476681145240589814153577074067529961482748451171530331819549177415939984634081704609234693818099364908587997531250528160406733696360866401985490880504772235339600023938611752722035236864246525796114893784894262428099646887059744160567190620521656148900284811537703682099245559218572169841315738615480991905765190497324507488445070754169268122341735600343169545587852074120961802139158261112911945937618065478215361809958393247396435445077700787114726896166656683469216862651466636895311860438626534098778293510379948173849511471047024497439105685347482416013265389474111008528150276927868365483041779943064545312726914243694670949025301436781783826562813623998852747156277805088369225605144676596569451425491714829762238638096713109529497154481168262822041031717511162757603067672111269881785840427502460270411395598942460073203522460443354594184171658733190855753457101645384824997929640041884102729422755784120592241097757399440977796013660157992538527670192418551267713264125629288179648304676804059720512694004413517254438534724742089065592834574505302873830187054232476558386134779635845645266023253524505210446838689094705002618564909055874094127533483058007431332550538977598792838512282256060012224432227660656137457904668090901937514011959201392302054049436285770312978301270803950534187051472854502635238211362286170043182167076488087669692741331886169680513621235023389226452037552998492152015316876682273644383384260884514815320491056403710372569718486372546370080389354571313863903710493892299647119737306944844914101103562422183538718389501279236483628696503863947671602053836612634132458843717281033146230394712775052701012447970783723819451993192675357915119376450317232406065852158289743999736201915058399043942816830518242207930938084333669831320919718206501931696161142753797108496089442871260538192437069214066659390687713920044337203351687339786233081587221218572326255315154784455277915492602575536787725390582590958239249746458133304403522641141792049636039179225544910259932166684188815400603071056880671147615970336084257991663416731179250165987260608953842048366725501855567549020243947266038279497362938973964000918258528042688264455464656023099471812177923612639907478062158316520793365720240692787059923026741481150100929845664787741741227713612268687864987361234181969815143245716083299920359878306674909434585057906804473579171280949665175481255846483014607242442176215323261453176660148507140420609745629914632367425306964370630814265598855724003830371146713733392850086710414275254920165290755774723101785307706020978808192519885080651771873450567539946055485206227284876504759092652190648937206923038389058470884547047714117156425671332384185390921165583536513724326078296257878419072285135157261045545521297665282414554828088785212140295589924284803287383170643820005990830353530404997209938219597807764919467111729912175658613323156897086613611909478975507259702379995128313608196425137991324349205768337474590418952087738538523263814834995722216582154180346172791818934919856258947322595335229878402427243363611655920905561983103147388252001502855935302424350206437351595183127544106238331489926703765381623405002236998383059415786406466873236715261387471447914595265101005004316607182672527319422738244779091445095293442722001073412243518924577895033231344733075506750066997682144828299531825317847039894700289178578941266939943013580364865837472134533096767672833536946913091546787899615070500877566944776393387880860452185892785281011950653136666819246563545196315304770701985125185181135024720178956022129030498666111647580740455650636750598315908642138695030034952873051043388462403860576157633427206726213098307172443609367191413703035907220448552267673455342986412351773686008418201717667729345212933985964533060338637090938733331378170979628579879655622654613302967293968386158284307953709564370581436830167626669281408692145406150451052789771901077475820816752832418358434728019552772149546331998413707406710630616379016575030036663923419484670140535313526149691237781940761883060544612832814970907462031462941294134619173895421170787133601039268157902152229257948554268463488233742137462621600672421967935944005208991018393404962648295968262895276622363445715725089857524283310981756439356309223807905130072258483550259579852610085326356842575068628925150983298619124824699474273036304434417663401773059864744661350782841236321492945793289333753654684731244059722831515203301924012591913247537866513850128118903017292385531434672466815728681884434394345880661629321060529563263744333651352976778137100400103188949100079160626947985591586278483782444983133680466709729078008587834778301886010534714281689662663678246551442379470627617881398998022537577655416143978466179246152719880417313042871636898001998961199275211793130046837143730714868173514150091705626098977399411692632843994840477491287151892853786097077286792778488835951448099346433131001963352953855773278653736336377476605181423752928288275327555321423488807244863372235795013014915921010294738129223192646519644546501119868488013408203173283939134990757789959115434562760670725664800121334614243987356057696248004009399403778857732710558697969749086091348495797205211315529740321678609004743662599075949080994436461379191134581742378884049140510469410377190947626621800033287369104385057280917883718806580623383240801263516329835695714207646195987863651807918126458269247443776971874008954248351401019777906196744767250654845974255513831186328047407056149820158511348043153391198229102846015758809511416524971892674492649152170443580738593827130186525345465085213737992637138400812563824057410148830229178549877167399343865953214940616586351987294068397906310642249671719690617056434927330848599761220722283193209604605484739592499035167234364283997260900146772362509335056886734081370633913316011543507622210033769987937000932607588103966339982890231123732457294162383047967586285904119224497033122330527545336434553715384403297781414538528203517531445232939132078201669993131859108320623043945430160841162501224451306301232669763337628260014792116553794544847645122858861219526578075830682714394722032768077103175502132447687609563735641538930035952588859984439078734001890776511990945734512088378491194221526991030440299553447970633371140276610418515458023551038160098889674229367008716015003041055386994610168427351702486759847849539109255491439526597873368844542800970587684249935072189527855092185290368710201953053312569028045493761145306211406668770865888363141577883826694705113101553009482986368275900771639130729470369810667218973883199421175661962404580708053543281764516555131055969375808697153970434206960668776513368163361720281854417211017199705719879568789107359372033933443118353246271829598848849146035360431627278887543929899550351721690119918630558025299667896773343187177036354146205460258229663079273268341656577069498310054184755586847767960261471292139193949879043285189727862714047398759023613240344362121685709732562110856731057996830160255106082993926433594603671225306488096396613544109128038194013922613333995762647333430404983130082257710390206922894988751372021974353102866534608414209449159795565305740753916420098669517182845437737417098061522480780279051779475145564423884306113341675397330827448053847924071415141348696131382639047939066345541162466472518794029748630366660608446583030672242452520120827845490403504149381065716398675347934284711331677925451720921629170770182402681676811085086774243976833172811699321920568609235992789278026742862402754605888390992488084092519003995841660810140195248268912019514728868107733167425735970097305535285392935795094342242633862786699390838906830604533801199936325601624151651547329654696149429794575024210492772576322809313240260629571350904475545565126449200157891554908281597527987305048495418032366677020112704787809070154795227647378482944968442501204571820749813226805595783133547919173563766189320386045109996929760740654603269893626773562799764064084335546636423571343122135776938936752964593667796513084976337897035861066476926303692509726162421555948909612111482135126942250518643642183645506558201023601134487653097182496210918523829473755040857055653117137884538763311588327290545539545183061541760498191132812414780489380573309398337716429366693857925378941039177396918745564071689478477578175691004674223709751034257745491067174299150397678312575907558644818148708131782654212704419804252345626811717816072981022996890113239182910780807845452065084706904919050585752845114831900728015351926408501253136503825196269930784972313798097692052815139828775094802860292123942662016984564817209435936629670085055997445084489404028946182918550360531538914751713670854419308457454613365991367487979520401103519369981666339821687775077668981108602036934420693738430442389600814945470574619502333062096410245562399001433317896531224990840144000623313807004978341107283684280159492749014030754795530806645093802975392251688435194553727872067775987599574828780980813123020382227988035340111588603095248720165968708971972988064813302929600296722737494414272104079936887960460168959541725122231641865787328894519645863232697526611990433610873358909802715524927198925900158395327477766024699695476225241008711700963129455766637619377197370293544351264960302620770703091109841882679405587287270541570327759519546559642574878121213925130830863898106857176574126935635290828653041885042358374215157143737386759116729319945882764282402192460504542652237567245569713154306052056979820035346574638607135646036737984708810437283861807668075050312575046154027497073069963417938511942829003442478196384345105197790976863141717691437368650029737159955601061630892408719697209798254423124427025930880140580476300796229384192898488727305495314251069937641778586330743753940215245119710062452503365573837470466429992165198296645411556944861436667232869217048253706751320889392344707728560937760966025596176528353904936427773127169110480518152617761848428710285059114669118155123032252368698028168971347290203820163903883460668266348128471672526119840874876486381148014513504450213036985169262909205715528858546287796150245084048019625435915933642860746161704331570725749147385742778060805682090090286408054350345728274832550425051539544657554153829046424353461657027686743308124861750809731626424948593260109596264621658001032681934898359615534183194219363041474214340212132805450715682922224356058833280281350985619977742893371694090505382417347417489780682175430772527850025582160585420294271391903971731536822624521522962872242052398167093751864721960696131460494964467408269336338520177689697090300590223710393000389397859162612753058784587161020412728264595069577569553409547632763823558106783701217010201731798417619586723539803684348685259434238826132754324845375085417789870690717958796901386532572302567157473717627254014055449481681438613226093774650882949176123825588908246917469719262610562593015188332129780240147535622550547390154694103081794321056239524674184324391086847759526037801187445076436173630804294823786192872341937579425255410242414267477992151591916441310867070996915340324044961122580452110973188910824032237988850224354706730938036869840604660668053008338181131136456956460692541507000141302435151423927206052934784182048626299081005690518230178527133519220707245057905795500260635063305138625191841192892432651465429006362843212688813350458281008029056405886555381134767624461827454079623260135180083532824106269859325942106370917256085154200899926316880511440056363159568864490064592493751085539133152380615209067531586738863049653385271451065872558677799987853362131457067413595513158158803258856713814250676498604446253498816122554978981036205097874832599192303064771126019346490152805196640338920681192976099648756200218178835730955375564021563402496210703260367423422812785867548836872122717900383476867362825185183040891607720034624065477851800394662452940732061792617406141376357011767561670588422485120179691115815378010478304249010327004598352135205876114209677306644237346891327178543398502971554209488910479479277625168785780350133544546105652718670797050214017127243812601916382000115008337040552487895504319479092927071381143453918445932841706251913863533110276586049806467260071682664531622062015366259590201686193870740202941065850506843656378894186043066240568436823800304569606891328131139345487255801207545629794422280191057265946314028910389299543490177496284110895979493266135495763111943085659268572768043376069613472155150524035355107302838232080862868911540609696134841974399156202691359009423078390878051793116105591116545630266429679222861721035085791053391428947369948996381968767251507808938319821474935834423078966580067068593505736230008783147734306233219136117532124150953538583771402407394903689760653969765173136128066878212854714879419357078201071507580195504356029337682603413047660033023544367428063832914611253512770717591344006670248054012836275705275485202347751609224750832918625882667107470007346438602331591044660602386832109405951000427840416173509693480667250327356500502070566586141399126304373248218027468877116219035216547522733378858271221490457823920335716096300543346692577220118019218904841300176116389160509842640000496965963784783169539158237321928492529362868379420270872609830286063152093735906439243860131328265679406058463528931779115119229975401547183983736872366106493207928858270711300174575782452080047454599905186067080683811064607111311702482229490768932612663900451549345988831440500995798360101684008199623644650115634337842161954113760207327718856398168618383953128094562867863889864020724622154058629305162024661728703985976634629718739743736026014507130265233234395564679065383989110218380193244904021767206861761286594008880698050433211680332816763382898110467853944687550951535146179868517302219567804059302221456649481536450982520471202450232553391531564592531731109408683151841961988811992730616227436537908210995831760478533108668210707498585125136216449902167669128454088471979481435595022509535379208825270433626778830469307460959942315125810357386968688542287097751648899338573923475871048265431993805361009952483449927447817307646475506200257650078646022571919876638772055641715633132579665900563502426514479943280218676074363938481227867769024502203775006261263992194317020962395911483550940527277985443448269712633710589889332488456276429955531507021882723777575232085371526142576857104727348341890659202734960838321056497218434095982373574071933077180468506727377656946263416201596461406248144973439859965981556215931725404985005550044647806797199909920588901251387749927315072301788176832261237051291755041527800293568984610863042735167995363513859225208838571850158782374171158376419333828651796501046760351102914592899207357132950221261791518764165433656251040007169678313684628654548654254682351209847475668818773956390959221166665429731410986344615401452169797290399980947434891239567975233571889066293482049124172680392049386431374528782312739919386954153738236306357176296203389730830901186416938626940089050647996590062465449566789694139469036091789856343906646110584492554566584921006502409086148646133319809170834945909969645076031192354416776511380488119186378842084453303543631035912844581142743902289246447727092514953283810627214188786196291320594855844797211490518877032506543567771945156692633979914533204353588378274247344029029911120671671515882773633202414459173389649764756424309062538533737186376285660293584181290861371689558567408925021891442167454800355662701732018594226392567833595011258087721929655877646480343603975505340934013890314312539807032041953793821636735343435718964910637445389260970512991174600710093082372007927566504420820459706145444584035329113958633749107518404698187507787060341791343468161201043318549388879522774827190330859748586157558326751733938377393717267179959042579174583351544949904561966470584162127438263793722992129005580434368830822530221468604270452623759786023077002504705699832235279194713005534868194342060000532072982233455115268107601514232620179504006628485019264282796241624703189564998420383996998416589223632274076384227331715361416875976153745650747067049851795880869108301415082573234402778156312073152194348486989368078878271394838720473642237204619274260831842890789746008208240780531828192752671161347240619656606961250683184577948405728718119101070271367770904796437095097369609901266229747062061026008999738081518627164556839360072229190697808547476721421096759595337566759552243804299973965696819087612361859182693197330215139488573396681165831224806503105849171640052881708396327436647132063811148331662180407515501202103597002528129869254883630028632789511663709381831367869686604466740962169541985209062195365389170245623465384324126391707901496967910666188807172209833712998286354324543112776422478477018244874620375008105072298747279260448876921746628099107952860477503719426922871288288729574419583066563142358382990012459930600349357531995972874246322636323455195270564764267484106195273178583678898594535463728416706037023582511580490834294545039587978745845240917668680585949901234280373296851607617595658626598424289124985124558663904312615716547333363253879104547488295153282396888673612047289685749706035558847200024554003056654116509372578076042537830878584572496851995780014185891300952830418737741347323598228838630619559764485125231630608758504880196097901016313146066397377692662079331880401765934778204665887317425893348302362468612330634602250072744379378128837335247519142690366942500023651116981608233546566492853355932775800065358854503976093290808148118325782193172721184212925618505126008796269312138002920768241775939177931639313254917607432387986392702727358548545594761504592578004110106752278312923484061884582690983403604127361108419451309637095163587602490012554616956989679637410340072707069378052550052951615350862567556417450738937365237017233459257938428357292730484267710649281451298319299288412984770283425831418774106055840933206352816162579340010473540287493704996851731863373359269000697020811337060414277491741437052602861989730952779067441889469475190425945416016552982884845515827835003505096352935024064396392928709640706294617836121697118508621028595181464501786047574112538587065915153976872695469198332675215863697381318973277705783417837552790807712980119090713998142344746297210221211059474494999682930441912895960653452151966196552158506732113191506892448159749581063672380287802901234105647602098420303078598206153572656002991369801436354852769347556757315541854762798093604754928147518846915156679790567742843373956098037988695935595399596839542870665073961620009723277933560683531978016072236133334628187469972534334987730803875177558424779077998103491519962609993231228639915704052991657190693585115615557212071887948023325740497849589481124833185936274575248012455518671451303318173946110467694295111711231384666558803309568742243076256255720572870128776409749054734507381300592538044150920520864233199454109206148336867465692568752947988985154404940529379340195489059051668276045475064432389987094619962325884919866179177321455943979281996123084401097021616551123814052386872231145684896550948098126613128822148788553705915068224673012172198700717098549028416202308775306224625124697715613360925159423596078596214253805947044763086842068289573997853903664648868107231536994764692269706574983794897940620108147402049579521609040563821958271246817176182265814906568144448492337604495003867931409309365652558238782296277053056433154430674139475732228205018821079908885936809229922835493092948887370513213331587719373993243778006171484807513241363942957339104709958520260628316805569511029378441313407300862141302636823013432194933445152499297271095732547788037553851290365296703272932659556505616509127381969735698932717856392293031643780543314836928052987304191573605998353518634481822756799275973950465317540657645969013666549008583063828810121707661894492598650985023359732055063132532851651804078319798878991306279571082643016124117047115988408901541794321307766240819441819599585926873935643579362017929704038067237561302839013399017722952162991623531944028738114100856174390593710919148914234178634039662000468421565094931491535740355282317599375092606212403498045246706616133414975602113299682907740887914714157407353515377133033964259754775378268492182875458225360974000989355563942646055433387433584944797086106197292230195627293801454456886211638188904894387427140264152302291757395322139155925876064681070732385599430937590153892130146697719649075969180671843677662634817448110404770647755452728020858210111834723577876424080450585028530576125966937731862728035523361854750116404579704925113468668212428935903327970334133787875395859624176124437034561063712940673063786393481843621303426290177300542308198429181662752238177108703830134931660512591862027124359037472517547172762283440944270434614439715516876063235212257077851209426906915821645807711399724917344466917807685582557988837404351455978292010064723841770493401682834685522942353141087400494662810294161957120150745293941197762789788736625663235471414405295281527022654065925035565999427509377905360106717931138973619325875567865037378067076507426738798090410193121445484814056163993870261597255665652761644834396279635937386355115169354585703182867268195371366374309600514668672535171398893347944142112624969071082318998566747926089903000084155777996864442722565355636535684085245673015523265401357093354687769508635961800974317807857854729146279048643228611044180615067869780974045170449280669669414342670975819231415663371420341578475426746152676442529204343745203326744653015377814200736717517780609884749513721922992234655607075559390621341862122540358519288741891755851905158978283406337401180511164235900888219615066873072116643207335824586359233006021272729196816003006870975677719003264115941468342213342004919739157604321897859823864164855993379150987400189181559435173806688514341653796133809773524862208035613723997094210709792858788047103355528154426953571973071278866075666016946334362325201758041035962106286521930591672805401827712592794465962195853241008780287218403744235196687573096014947647169288888829649992076736970145952316912580993400773200699303321851497966818204823973422593859004110141353166259079295600445812803726081458682863389006366314140718005636590970079089627162669230903747994973179296324076818957356007093282807338683062376485374457083086243739068426461788505096106758243720494691411652836910120452447424888263070082539142498163367531357929296627987852903551870608945972381310397145928694306840697982624496411690505523090591835284359119993193084045349205425075501225631406461636302800489760044797401008254388272957848242760525612697338116021609800422474299153946344430221073152453811701891413732107571065340198309733829313861065272090246228031181933758024450137011140773355440969963032791488965916178018058499684150076703361865435876061409150165551959426898499161437125375046404008633410879240672056714847072233046496861399899197803151516180779678893274393164737453559200660229664532857363876729476231937504761781393136274673381543137098613388523583688586638296436930893468154626426407576185121669767708048877851758646340653575787837997463408120482035033600776387158145092679781468916051425372125421476333027724431128394396402575947149282112849780871761466089764693191287809933971746063268552339668556120594487825115005900752379035866392258575571811654218613532291976720821451514303376991590854907797979608111093775984905064638851869131787773043748672351024104344648043161182479396217266790247923472120696366378946593282219870999317224753299637820964472789089604618520700874987295533819944602507031681080541783630892034734264155166319405197475237333737752764426907960187988821904805383627372632682195832016818118427233419407353826414049747077189088334600989581704801707591887948222152249247050253348536558878772737540296462665978128278839164870626345286568807639334822843243961094769853266809902923469332802983989697810815441013329193846557428284539894649857295706518996151850122781618036955776360967844852490127676624963978918657629011182270390736470712973610072849995757447971966886138748237329512616042182974418978740178067923616055340307066806905363583750702345705221200459595295105945544833846093095421393307611432335430107504185175960142460370980528191986032864550301613525678831148405057972858743960230956738176283208223304341311469095937412307479393666504642546401023411649589181667426281518172063397578577153809415892682867818521898967040122690914627164765398760692435376348148180055241958054804227788726791798373502570853207667024321883020495959766818512930164968052167465407387771424259062745884147929479628542396700507950849660000924612448611528270372795728912756968451684694017153479585295355495347721015983214639096271965415920519847364996211353529126196289280914812419122584250459343992311059807966072353084346450674190759337377282435514826727457612558649694281659525625622265184762921259354473683691715105941315327839324538605431580146613707233050150836692197346230998904244417174309732928785123838238975003012717645487966743529792529638004419417808312238251977123361417614531956322382965648208744040335173555809371466859131375568988647030217700102638198254949711985425222472008190765208861677905635581964728063627549767506457449777010647915862142474899338155381221872101041849709238196487020234783361015089525717296905727476283914062380809347215776632823292330577402569772126298678793792969521475917169519740688767647202957205801688391123788957018737114031484449611051639342230258424292771299455436899711287179301172762631155844775619733961834021734143978961994565038928430217090652291068987763564260309047839916322320530508910700381311089256712882030929016947509357066982910436858024560666708504209420464395602289665279769019824057025275073927712432736625955804574324338688308023183203394059401645375467060545571236477392289169498695544268862952666362244875852913488082619464751294338332097501348166986218241970637307943641573777918710839122666190863761320915050373789617366821255385518381560460645534830872442684951646331553501434271043724538189154229176123472334181225659157665421621003141042344067787872100202836833491734567066966120285409256938474711654422440414269223536691318714649866956248304221154863553131740503989354042309724600941926186909218669220179565986808067443016490689631194565190840562720486713642428900728920079923732188042428893617581098713398932908438802160288312534279867635918443991634363151154039146839463640297354039681410993698621858757064173329270131792956395329061188634515691857561748284946096467216094113163832361001270869013827118205224749767206580482810945999721948176835309278228226443289169097943847972871821635452544388162864680835819859007731970361401116208673047240043203231600076808708550334913974733465417969305377916858609262641764005929733990557274796982762853800807528777064674791495652260373322901027114939250357538244686075106952170625049339284711037038334494711799126879263601785121122517349448410910130501564600098192438863099097132054089907222899014104641327649768052652167273891771029414495611435073308404398797843929928878054503550524622146090764646924524496968404076389166028773921029855653012647786938486127144131874450138755980060976059974723187045118772751693435494503475870262510753139112833172749794215731139127680260007813208706159513534999039924242744303663551949094060735747546681411759173006557374585453884008602812296350998889981089209900660114256104082682164314632895703840538978402763857765909553972869252443270905063897129410605367389496547643653267284474181736936680485665325656498261555964848043150858515950165754815118771087690125489190877931999503256727642105073799437623852899009501485952208359594514227106692044675871851001063289568806519917517061747260169169761637367475451707862533816245291098845778999765219509619291722936959637509480236895553240889653081019249352220285610146926198635046016277550010901442701399356751693188689520018208697700878888095461110681164928952518000937792468790378496552901350546772513805412523649783571059794504303102923409720612909273052956100708169095451486410415230000401765837161199821454049040878441230766850350277123385500909526720968214766126671032603102158464717626549159190801751284614877165518736146769728111818851145059760027292458203905172094059315760912572452851978443116720279948697673735548229005508340546172372055433389108238619482768992365949196653159922554162857968270896981364738257488597761359915502070842237528120669849509042471587453857952858460082483944199112463498069891824640307938750035467484309818674537055176990928548275082369028337926548458151083831839582094495605019045345096811171433305368496635193317518738247514622142133697823600853737322659275215216344320372464284164795141348934302636117252989912419135175038032978738713570466761980154584190819798434761769667358962457757005709679878784316035728014786808739667458823414496723769553663718254802566799059935409025406730158826103069319759140322782956586783964160884772884449714385303779019924192641587175613345040053628596206905505230416601201851815664966208379635218842975252275988957989000679688579394038523172060706318393422097888692098529995553420758503087632766923963754462777121946935530107986739062422170909518334449089285185712116106405429479518995346323152729958221601878290887490923600834319436994484614034568732449681970781402852924051873056254080031764166551046432131716293663960025645359668474899097590951187359358473971735121203425739149487624499724827150326497093473550436933045476029346357488088330589238490972574977349760232267949989770637003041020504086706213023091421298823542108254423710986107255098621945023798038855772200388864199199814464816065934976749324477521137871541057121897058457906912459040146777046543554314720958012483779722069515815428953552944407987120616258573675267222086629740116928201174222382158723625183590497133570617839053990801597954902506157823352909886418056729355829730643223737267437144872435608714702915409178445936684838597714867843506284927216581302349021035156366236198698925499432346024938686334908005601742076814329720475295081641607856374041157110237477513330076947043049298683202430362154617445296093883523388196693358700728374145977089685758379633908863829371787470290732305550150485976684487152112221001854258413331481802928984797365069307698879321962769534447821432578381632238126305203530958998642403522194335584858256442269599518578305573470360072411702499237890971917004792669663691940038537700796317383982404494165475542038058980531276738143175065670728609357553723486401634266164126364652829712796305782895271960336455124665755913739461491812051189026670438062877864006482607743319640590395327851898279556586694621234113359002607577418194601905088457337050520382779826432074856964986458327013734689032873618856671265775059111100878824324333943894768100026372992292799462770094970594235127680040605488718312264307258708137848918905002178207812092060158687533506240015697325219478453438342835434005512737061636418149096022922763053526425775325576910219357629855681787569332569715030071211211607073599134097406753901653347894272506695516597397230185210257243062125470610014723066534117065675008709475691935554880790447906272008860364479766279001132097423741106031051925550285644149464206518292426817212036195841445963462081155055314073662695099215886194674594969446836111448650678548889037763532168107495474108217617959350011816463475963891138564087199403760165068344326957640192380990812529449109030672133053255244076498212092852660177082301901150932714605615131968777434567487882182418998630951006920551447531075818299737743965759173927358524400848549887464893962084229760788280213868747821897614976677064347365655971842766895392191172879518986838731071301300470825606721893974667203700361549401530083848697534289543521181691862465366441697802528664333066252532714815785225910235711953311955824999474253654072453595374547696385788996229973494477236040794819568072708846095630443900550696235231680828495562926817772778705490357142431665803214714514167343340885363884256736573488301276968782723527902152287474945884163791365337862835801144707535431242677662940267275065989067465861618947714326908722189222438102650416664078986778285884765586385667258336519952510908257224275472862689893636249861202227757742733697032259573137843495008874171717251847932919310591151006387195069441708492766835607178650874382134890370169419369913239585100706368566003392375392756445171155883090028964480010970402767499623242121004986944711931640760950651639440040204770889733855244106606898521094554223450808123192480806256626206146577692692448457576168280871075466724369424267362869655718794029766399351789113017496122615164788957074960602038314533583316955989901096687255748802739266662520035962752747486728118395116599230929701434342849600756961880733567711485762051227571582605751367555487669174055452595666240715625965641114778188219464689091742897942721900732148540391124704340367107372866897277044742080181613997962009984782531640581713553902298900920032588517396187319093590682249976162677134823426505552349360573841341919729993753211229797143596127961571314373617540671952673778440161785212647653466563373489894349086918182224221129927610585500456579068723011450805363496811732475159238607720796777470899053377899968774323907071787094169186544014024768179326334306656293635265982660130327485610150699461576520848477111466130994760187194982302203366170480975322166755673627693482032951824410803714998166319717013586336338878428715898199480196872797107792890739626118695054736974297432031805422073555429670197272121653191240325511639575820905122512437592579434521401304676573024061245261116152694558564531256196308762782093018869850865560386074801989335571034330598138206717205408341483520815923256744649634089102586152891182357858068355508952535550406978217921600833507308581508144961963184651203520463864167949807895107027655155628670967064575045416842676521675233043769890981456884058275257809986990031595855974845978406107547821625643036417672481812333169755819092126286720962661258140535326022238832081890551088836162049485094196614604991193680540120381395969721981992083208327777175902798715613228197761852288696539486112698121937532950182090643486079127498206436931912129177791687283164758450630868120254803944760043452984683112573708669464450145691811840050890145245324697670882094804626460634504573941260940370600822766492192654496875622774410398217693433276731119360405758366006968057559120127520765161972616762192973510509335751112405605589626365275556743000501363028630405054356343260850383185710180504894543521902768628680216900482515716749748657153414554804517041824107164381180337272261430467315954659330010024804587655881333122567969117754207272898877359435762680796669811364279158817052393110226070519537576698318064866141765130437193895293005658123402168655627988313705665642145753528562840585617134339459628947168546986783080789002784929002674012478366309676461947715139762844218380119591463301107220793356379106561154116134658598516798631183792352501805234930485910217964616186888688577555363047022251656579097693597030244659461228460396395404357334730036130222125428527396823909786628471944597455336594778462333872062558897338874666624149751207673933216913855376255619319805108790815328062047796812336850265715680312680347517586393181548546628443442521987439901225771263065350182245116344968456063700304475618509142140526796134271561285297914290916375599144656407517578780775220192078217422650967353232888041921000819604248256801693148299315432726209862672399075666059850519344883433336943360323712058130302328241785692165542314347056296433250477133660829863674627227059089350673269163322731675514883641778751216066905271928315950831780313404567503037106509801681738431491942861834159182189256508464258655658685737827156918597553230443060271600864887920106046486304011212734598132356215297429918183685204386022212911513661490927234168453906356181438816104583104475858020412872217506520996595682911333555421066399832380925162622299247471158890473038266328689325274082142846566880633972977075198777567085305989961509940396659645674345622431524435068874576883138665412114432113282234946187604047962725474674815746191394595982179949217978675874874292652480033433814184770554513142686039645098866354644453531788281651143100859829686206868166230308341074696014244181024928699347317775023485027068216380980273851359516804538538270814388902835723864978425989982400197110498787309002201127995730852640589137145129505640031335861496361948007204868774703818532172619748410013477408946691682372157312794602718576375627490056955660419669776428084080608471968767719653861491733400988666641857545730462105537809276105516810905894541634263794333748152543609435750109342092905250255194593622128345817473905786640225087662260991573263941626304937999100463227837927108525273446023075901001190616191254093198539979593063352926014364027617711782643725773800093490476933994369877392002504535953557637161826863029942606763616647892564507866434747644554927396699368167274465999237277069245399528490191266723001393332407093163910491322338804289499075114344344210048356143724736057232100002407680606408948642344445292869712853743442729431697349345926453311748455938502212470803934990256384413714350436834764398511792139740978230688084706703561139156235504132362900465386179533269896995419562511144474700317976051416339671375400118304510735314895091657575263018653698213729292098623307058933087381105949266815516821433879144661509381222454936318351891809566452442148187689265675771746334139605747045382715349504344138912723160848482795003492978194424612160460433351385769676344807653531520459090971380737719308459273243550657838126314812380790218284678046085944668294298464042228117545795194213395955943806568056370144717186640882913549324319927541869689022678280556329267431679524473929968201373020339065366809816114189600216680911392858411007403230121677953094750587636218072362079828976411407484812943191413818001980495269990274613270529336551306148323470544126578084163768712479418145189315429188008650646324932225192014267285626361922694337227627113068100025336766658548937896553225487588108441777068004419664004557444837478996908524075932032843147126176564863784536329865449858017238727659302724463367794132493133626205858899374168780584834035351186651624700198468474071109841275528988605796866853873035800034568841413019211661605453224965660675357658800934091596756322554327566584068032257621705378829882053692691685643923407562888182974412580237183676166881455159139539242492821726587196126841086114319312011243870176416928783082213934140402984911564997701738058400377499557797538935007244650878231671702419245703294067206789425046117284790696017967958632247017574456902493693241475500683079126488683958465739647730648218242746708748351326531009220966669349310686401582638953800679272250033951362687039568612941569151569175899627552504116679458747709137813191428499918973245501864409410173706410714825656771173487264872934099488770959346925215272168399288795996315415459977071902313712719353980410821936618725115091523655838265915669470581638586009773940777138273437518757416962263446869457100393711067486799556135724098823148118323167639641051442148604090023170648533023881178517194686035584064947968522474432485751463521455346476951529593718031602578742629032612800682763005313983507812057161895589051362862896792576390271944835627824411196228037155106062431380725072985947840358803753596485841423465488628475180317542161173884676715105812273010492276631588741903710202458001050061381779087041701878947040871658674052227650721617520095178401314987766880934479462446108129646383545276730400127278271352543103143057005997674094452990106943414868363166939640983914141863754916009091038481895467686980393787362303272683401696065713214872673221484448850091569989303791953027456224633730881339661420259299695292867187365449577889422641564291562429780588719777438200692423200884460810370974665539561178405019998412950379885027624789191838818419393157032686843675397176849715396930718426207302219382176306165666119199935291283204167812706813223493756236249158013046693447383165492738137833888394171213741889586399556982590095875704427658645261825607421427683717256420226092429806646391050497427752924146712481978254975619132173565018591430780182684455996946217900575261320076946837976490449909390889057615291055451110599194826221301905230450426143399933362407355758817623738672175363225936659664983799897076399425093476566813423219172660344608584416444743104019034203353673905105482169720264531196226682205373480526376144787200189499266464163863839964472636528319484453655385020123061487993713635863378750926571919371500872735962595891398665229776916977418033637842301126051285372130155459071236461757812781291637911272631007767162756734830739020282477102663540054102219076174456305018308317995827577404962987655122554627977160991033347069776298849786414836101233078982818243622015567770220263908508503510095085199848318601585174389079864624409680937215642565599102994320837974095815065020776637162080169280240302637994430243362533298188936859478526180446454650955733236133614706247602174830509998035543193316118856472888534871625324914837226416876429032751773251639526541755860902704144071457106681333039452462623826519430849869231791946736301784666816713240992628984594831272402316722806460657794830094522431503339315947021163370978144106368181176227013518951516773890603127662605107966414851621729347257846212790615943709922947607221240620539239515275950773655068877523222887796136112923111541916646110637045323921770151254106451453167829322763967590845808146111815655128689126053016596482751165142938847467157732022529358682262623187381661122451613507246997474855126173577519386205907081764515722255341837052026869418385714722777289748074682926444732329482412150588547630237776654757506360817216095454246052155590427307593739273117726725822030755671495824676913499829117112562213339738348435108600446341574569764257767600876207301063650838441777414151492361103446505488738288252885874890471371339601873255822954689656018067208931519036598095048351231049423469314700306372109688776245729014442647320259216944447543509134476184748405148855807682746269853224005439993767665415498990105147542553371686680819216991155331818699474266670295644144336809397143689410787762869739507723309686652619894936382303067483479570369583090733476587226228315080418513914915695923782308672861214448136024602732770522510309415699119953205038443173318455716251705531327929752128858283500589431389064142748625453693595509759792550530066075067036554001427774201137946679250091651830926938836780570932704600155776993145609645381281461268271396964904415335336220087111247253178500167114709027455625083177355479341105916244583402976413260869776582097812822982456408875782287363216885645956953542695517041622252432276502809100313859418286337858083454358950830973766932053074693828195154266899131239679957285420149818153978742660959941281432322255293458929671176545938548614728973368780200837261150830932384213655026111172223935117176228894015378265860597023369241679475741344342170302079788949299269522270574863462262019058044799963118151484492330268017918029739677547132105344239731990176048484412950358221728784747553571196029520869109825042451881364964167557758775946046536308291486929908551909144971735431733011752967747460285117018602488724737099861152004363182216984407697220334999073768335154059588978817332150045339769793218893354783663377816351781616484897981704659587444139585860018273132226260716323427428423875678241965752275095001173949523243163657756297372173320113282316640961432148015389703638164772901853840323621676285091939765936985261934306769759312113453551821573018981261190567825306353625276515511480204368679269843322222670209529718559348139596062755666466866811995540688607538785754511746511988722721321239899927647244426491700289536242246318275494448881545580480854540426642114926760444163910330457205965626894537728402156427425487675541828132304628565576776412489686785364960136657155615440483803752630136716859310701924293340754323565711294662052626428849507415737148247692943422612962597226090235024825303826361653291484386120154990105925685992364430466246751052980782389553787041473804000663108195129840536553758652662700526897980697412003420681549266277678874754321766806205655304413062715742540872406923462489948035525354886848057402879185004687471940657146087994388703501615579161399590388455803074528148283802479134771809510308649373128853278275344031113875676556619361868167223129223101905255812086857610061660438527718832680465150035682149699391249661058675596025022610142252515315424000838580451776166715679798958074734690207009188524366863980269647023942202606121381084109275897768814378787437821252786476035876814273882789508963396008199388034274362869771942162990872709706247342280624864012629221417074634220589592971289485760068164761725991683177461153554898236589143788298259267111852362635672869847952609064005022338351589062707115965380168538535801962565318354758283084407004774976242203455936803640273355461926548115157271166277541776465779729676163206811870077994333320589458224022077953558002450702001086532144532076575083931642615761737712349865132905457960138127430496589818840040676864612144641063407401499881362852342506590067390805189678062247944906042270997908053041410353907664036985519907417907596086504276217200260233270844967294370668494832378209098157812757214079114597813752569198760763325334664215306279974489363132935303088006739487839048231927142818604528828608097546232202551827086225481951697201461168894002398829954572428582715335919336929202566325749305418952949154000024442515823704610901344342408461583042188531865661579910765815474749926046297065027035797821585643502639512605817806643646097678821774138553397163037802672001997704154788143309202818341746779509367042138124776681823667022334748877071820638393734234121799795884952292948303122671081577374642236077072605114629910456746848341903370378645475565051802417060816889564725287623031530038897966822542099112138493013541189220365092417571884370775498889882633751942763602877113377796175217558445285069875760541950791445661228863313153426327212105757727986937839896628069675585571957665396358941825332137785879911406890034433604015258399827540683713288980762831202895797243094935943441742195367273210194607545134911138853464927857458193946605543728596762934425973424941222513208830933501422796202247226690797324014262924898754435627917915567324314724362980990876418228888815801691052693680107832354534859427272150574159429253571234846368522023838308699730148572353126772411697758858865119137736434269489556458079787625744801470750400607738117720660102387420490363854361924022339505404500582956408369383802965311139060367767104402992951222507242246759464377275438615443240956233031080551297640867333926308691861126815867922488571352641001211311540976869979672029220077196487849349759602145650826143549127228294520701104583723091422113760060839758056936834378155862989357341138497289150755291318033775458409214899527601665218657503554280024628059057168223854732906490725786388864348910794720901863847146279689872238120215886598450708445133845687542991095930287503269989546965953508794241327468931463165252144937767754330386147745308323012958057163435616334015172178981155609073359747139231774042844302903792041422349795621960236785042479818809345822195473112193735473102054890887562087237087522102352877338771290341472746903822530544271455782478196233993964479543239276708480576762131346078650532176032374256094654920500989853803218134611471182539880329138088911090991634224886952908406044610140183470199295488241273037034557439213896962241202603917137856760730093984002585107971306722007963393383742552393470792869866695940065635997058719344889864692111924328600589793651797738745866104852027309149074815965526575736020860880676300187684193545406088067281156641293633426220630098767333110009077298236780021230075106325008459342980798131739592261475999615988897123891290782226199461757578598645876211755269414480571641720607666020431631850948765900152535711737650315262960285791953251307316385842103118195826292636828245877965702964595776215272684192220687408181074126156910333058088336259953573588763118194284847003743015659257922428500816354523461237350252911844793848621990383263548559569874124812854861761076075434439638265999568270802546644160080825962463339570195987771405968895561139764728302150151148072234679083523316555483763152951863824861175408579109797829378168502095532832909587050002610336510445207848810215397641114190352166646686646355105132987761319455464691624959611004872098566855181683550691702419518482446525725995901134989526004191899473225740271998145235087930680279898213493538802883501262226619517499427906993758616346548749065882007343851200390352476509724940290800372933891447961462162741461214968233059505059403440704410456619486657023812035085182044674214996089590592347435534101192911084650939212701231872639854626376634586832757914457124217590021899137876706122932604377217422452277910962432257118165808924751944512774866943537070571004186219433884900771558545157931635639504451132448255874112123797611183997272991478799749557950336370422955932719211088090490949305358216898161745626673623755342592717126739511865093576851122658668284518879826355858961610670202606848786672382600171106694279774733140203446539812521707247050146853523873054661986745882157456307932323442624553084034668589825298252327187054252658407372256583613918042313516549420518691239281281484852573589408696372617111237573998848874519347657281954458580712192279358614735775187376027127656784201962718282890951961556535252222490396014384220817246512961330955138460695122503771866955162903125736739859697293654876367639710267270491333776022840216527741602363568464150473564656381105771984416120726054050439218217399801159539806215902468792750502419724422478987296703290456861466907777094008728418605560755744777956377228854854258906361831908689469824643397858926936224244180673452907406442671037300901140990752931090641862567013481703841929970110390237949658372416489420122504118084724007472899561203657116595989799761131226833579689856062926136665267584995503536998845212832297924995899484278804823038198634625738567412856560108216252033904295662709782256823424026503992158674360579338992610920042707647880666613846326556401655871600116089850763320873010521649790195428760114854642131481650924964522437158746936464616563990371110149234409840529348174072952933657421531744599118182503471348428845086683750183914885950034133002716897611028322745921757170552280196515719572699901016281155543024518239083694982011987484741592782645137498108514325986102336817030144760114126774790383009855350872860444751237057242779534217036754449895932836128961022337501470796524823618179521286265888675405048603787112656016445893083944070757426910666991641490747646551804395342322910204442241060914334459457467246526361094603839966234954310097070561921095997771745318855004235525721325769034947259573696485148522056979234702273627213446156476103279549381240705361613601325966031272467508904612043459086413327973687754733203677377212050873972300074246957686924425984059162994237410211431784735723854982191194563768769388812721855719150015094792146548875811494207562026823347971688345133252264303086727633579009407108410682629996879036879100257791949639258967387445504776744001706810870314174567643926797411838208532352601050748851930384791615217019823945375038318832358641271839218706015822407165153234199528201427436171682037874543336024180568485561328141702949359130794439750887407189201791905692351171114808870478642724031794006486792405809434619368127939863672660793261928838635096992501361315166749768438085571546978012030272566977688722905933691094799408650756310636214268301789256046051442104004681199692445509837497637487539172429024318638195945986601805765706122154580880319440716095846035834620353723522747445837684097857902337481578964523897823132934673246950628911621278792003476649766759979841471790249986649077468212469930960112376061051320109310010984928098761921600655289590032275570186604120382240311696388366780602733459098150319905261685905307773765232502135394639422026500042759686020338595053152360626427953579203763151335230157970293075470333841992195739359370569596180268827314091147765624132804319224782323275644365158367987388688820263088320167631967291704526132593630729809119918413442212527293212502564370568009519823207208798378923096304983047546712340481797991507352219039564434238477161178908149224306887080676805356450580905292862941943438564963589886021998313151610286099923568666047241545346870326763114261380314736703251183418678639879270035911530355656620176948016221542313958392751115984611990405892601963721429305567894795312934362051295337928045512373488288684322901657910837776814832254608913617196569927883744014427102720382797202482551952249722631980852764093307108088044093833819619676473623514596379321094642600459207607904172280707350741274950573513999050027568005168838023256415003352383416351628140252621927315346617425409641284466715811343244719497992702956123770433954195851874928498296973063335695156230804010603439334503553251255475339782020662408693938336418607357231514453887933954203046630895182269736985087242294974292252287560983119153213484079407153218398508181613256712893589100575133958355446719866480428654644126684233558577263282586200283464897213905079507333445281729123921719055137494236493444691392825244974461261760886280609660993203324759839387511394815552918439427892381346168341002395798577174443153371597427117763454853444426814595764732218259228552592104353525566898347766845888878343779193235177703756286467017640791685581143917071454733752613362009326351333756571995340486750466275251146084084715745719172362697381347568094377273530638625441091152880133244344757214746256963230595892260856023983049271293543482402207264074452627425160967059822726681504024983099393381003673801612622048917986287774903231847975414811210702569431158488795467050415868008143721580305993489735847727618482525238357350281558487029538001201692163212890306502564989871103638430798563487502327773437082317912556158205413370619011101662028247956590612507817818630298972702864459840388949371611328372553406083813076044428221375537048981978232756566486325320665218119695398552150131426044842215872333851553299691807159734890923407232485979405308567354750279435110514556167045738339099201477753762678588871736904790401299877476026128719497723281906239049026138398287907752807213305911306897785139250677886292312293446802320283038462229945305608193973381923447790583566859769962816656940337965178546663911909821626696545129227213783088415726556374832449872987418509062748686241034245135554008757806559201783707583891953314204845828455127358451692769203263925580010244634327616438351716374765597702645169052828135944348391328831044352168002907159139425224303423729321230522976940061421490481073766165322185689884322688076489819818608715365987081580045634514182222362958627083092644348250945106836017574655340807587758912164080038767407422869664830839129238175190108271234952350199649875214155820398709224799110067693531155702746513324395586588313031761286876724605892994103783945234706369003006001734029463487500171986270050842339993186528309379702942757672168526104464686062916296942489883074381757248704424422465139592909754538873267333716082402614250241150967133315243666415508006799647604968216919395556806086178669911898204348586047943146701735148792777568167991347173791826765743716538797220154322872682346541516163490825353946597290225365724275518554633042786250761182663743630645675520689799235404475080880178794261010236792460449127191723134121960213939473564976251666716997219660295028508940281626676893212794554347624406071618555285147413066755876327433138421189179003562300591959604180196878166780031221976163861746745682522717551366361028045415303615487521450335586033290733623651125870567149679423083821168916273959234327463218465590854268628425150114788799762682800805590341839315958471972445504930970071398058672235663864157071871171722640743408098896964727625381956237175890372097443004414937531722813863094217958072683377818656220272446215829256589755814005666794241393515771014731708740936670629385830927575244178533773359648315401846933365343031488665904615987703312286403841195595327324952617683180062263600828449871061244888443185140889013982412338011274573397589387514640236532712926532963884188589880099295930221714253879736017202913779160115506218713581799054004132941722502419008891626321224334614595939072082410892609115710525201902292480280353575325736555700035292360288226309083884564196660025490861007906577711442822138690795064996841868637566327698233423110314495129704183772156215063359604940374683743322875277839107941368225993647033098673164889906125174284628291033099425656138216075011165795646888451804162742670684408796646654040331397098670845653896288476551922928566111292097531302674224991091251319071299645915949235323367003263095500942469839012524189601733597121688127800791545457418136750217999650237390777163152382002128743887529589807879257344401528726413146359139062275972523762352690152046713186918495015414835983103691767659856509241542141032777642172848126107592439770210742684575648529060042008293840724342281264135418016583767718367017977358953412079316492461807707621152738642992210659177619059213772252510659549977994619487047373004032420647590660776954546494952404081767363768725214381592231268252175350615237520682299267808416721353845206487125434933132424319817652580633280668127706059213165373183898130157809042079230194095438757982797447225697155424972232539092966659611445184760433989470722108902446270028709648347830536952544106442784616934780598436339176852407612600433361573578972540098079745306164920252063859697937543148152334994235128803801694372194369120232624780230708581818639966319662739765287674284677070538790968342276925115143639300725591740950045275533150854487876768524646279401614571593664391522138258668744354186840516336421867080811391005822603211006439594388047154580057101757010915899776454525342047081188727073591201031377234806309841627303953909815068382154739412668949039358727922502332798613456414409258195374096606181318850165387213483780186964087202765590064240311101508928901744793577276129374829547388904112316737337594519979009431001387789136031415969570219724582329865535974361026338945307667958093664761244810758219613945455129545784822576460049308189920162433940309923500182339234763492884033427640810892438873864678906233039021858341788597045261882665696244576103378931000722363618484028945088780433732809205479599060666364622878709060598740544465491039345149088474866442792713354675834015775321946556495261890925687080815989448874079152781199398509626202671509554434667896612121707175134379971775416537884505221967770755012729243312603390069430533511353851200416515931553240233297765178953184755207173075727708654464707519385458933096609689040704246863698080792554013476126711789742575694738785521017076778789687111948542957944089557958127612420814606014617357356702858800928690483207250794572100732866684198553609191945083305002034512731437504960103263916283530580111292443967094018090566274244331043264820582936862889818771640110125557742265680116037531531626505395388992080128206635204869984104303147109145105227639268359892512746139321745193410138952415385103488586732587003829378199276768975908551578119948954682240420751159975175751996322437176847865092195541145075497023854570173631852677759743780071837335571988548821703294350116890204825661896210436595908861290661891057095354694387716127499298689273296528135930124442752371096549821238250864340333325830663546152164561331374876373480829109050857913511843518114058385014078653645512144098460317939922019002803781000700661086499179962743305020609016382975883020494805411265064161745850614955844152638550098304191329037806749952912504757690283993222592695956041433501538472305880976044441288872948148457242491000301899287980397980429302479940954069123652848007320422160649719670487198715482504918665472489332662215536543065815301089083175455642035921507794732617909737358449475185882437571680290355783013170286793206118826624004037506594206128726096793416127876490569094949547634113270204475878622218251311390672926728912877702766187829547488083115346708012926985951257575294419683787864959674713935316631261367286180588697722514231164696862424295738585165346396176458095946270422884394274102667512827945521002491140226970164296012562420680348467291740212008393951747987450234257591158671865209987977187249380095615783970732317165850930667788334550433010063201726912468615833366527119186106812320021907997406829135692890036954424994024849003063215670941091742649499001455778852983063584978619877781018027876278615868841661014843802859396795307192309352310171542997163675889652190393492626237784578257228615512490956168615944929246955121217179414739492650694198511497535529181582188090838765054199500939166380780814499611287678866620497662897845532048802873452321544316755356780920388359921702319020833843871242482578774099551811468215222082357309815047515430862875024374029078257673704839722995624835108065412839000411522898237350910558682583524083728338773237429768540057088994842179825359974801158695177858194118155688237612910944839566881128149147493276568717679401466034199637721817147130780258140037099622964254136152545304785742563359697054875540486248431049522528325129371820196165160317306980451579547772638929492947287706588599016429288309301898290485736314471505658762201351013562453276194658621579186388847362032710164222680822151966715367086939997508958896712056668977525114636694524872044182421416494640383377646251513620700331641654702081229515985151776008579508052275765041800293593147979367248141364782529778383570228416774037143829729799438620287133484435716671910689959758732745047380390270443266864162445981054404329124785147543642985662071861180185927617741643825589641328001275358314794603423906718310941207925360044727312561572674299807809152647423592935510628695198551242024711674595488899050879717118150261218910912863263477605892634804646327239392138602639721251869966513908057432189446837804169206061221208811394258316343874752924901966345542790020215131284868621895292546878556922937165367929408746753445908281688908546472509182619832259034464842584524569073317947542364031816933341074707307337096098894752973177365282449682751107636343186279166093687688851877047209944104195328299849455957106067363216893866093406478425798657078959284187115326920131243744908943685532852633780893545919303013448148617650692704981994052557847077820083050161741199730543420872658456250483999832599411623898419632352106027944529467052514666542209041018546172512503958742686380718002880281112855246099201559235691545492139032770674052727753095087039037500549202751818732752612766518485826538090656684333560118157257303456571554686795467638145229455832705680297902569117722265451478388730258497350413620355941374845268503816434445172594502790403099640070382207634288784486743579001931403086560213532488604013386891534596383209220788607028362705476015491654260255965990399161197837140402821870712835225563680026563753185923885723051580194086056344797420554255049563836776961264450993897127923168201227660845760291885165937392098992184918828535326985484281326336722634839808786603549995132263889587381309095413261877514100186000165582585237058936264885460011520885343562957434520418989381991662571403173374017611988311262476243441390118302248606496850212532078295954806499157811543232087815608042017121447340516016612379031010595675384634581229757627745483782333791458249948050551012721861454581172013944131478484385164798573315493837975263472912391903073886738620576964266679236035297126815393011950505212586876414171828882908266690535132594788961318371501739791547697016158055089088997320296360567026409192064345507868598972695550812005476844010691864279988901193227364375381417522251329056182696475219044776469055119638684652439650285941336311753348532292024253204286670219846702580454721578111272736309987985102526921282512591365810276506598029366953323948846312939427407777206965612626248514188121907156936399853217496501273111438410190505358686132467288486183910729708261052029300355853985590554339554150408396044461165964752748689430841619278207700451172493870871139578754948491182787888077297181454805246328373428671661346839306969396507346861189322067710184072048100803185756640151633417704691625639249122727476584876267674327791530924652499258559688599136722363403060785319347947566902398322050037428689677462662378470440921998071729457297038683162624417691203537365531411591511540312152114040144557627231125985522172277681752438643931992880246992618708264655984490851006152911763381348652842911009834079142383908812084521622792963885293490213382592817469405352566242028056746784164604734458048701907733548539061990415623189048597673536416764969826301366351274788872772903744008257956439516264456328254974282010039247276675066799290351073220831747803542258121193822204997330690763787905860058778651095487021688695113812073683623341361076357931734209580830459909511530718119554321678347336468126336675148243469670437647321449670379729910833936654697075702691717648166171606106755484831699763193274079080150477355452777772666928303071047608528215059689030103300150502828736617455336457938573879798541959605420383853923053119936082781224885502216603397154827918079574179049128075304564696219472571414856101548564706278543066330429837592460835065841031906922677444558045459171260859979773730461646405450383662821783556517605418951292173943007823831179995945027387435997587590693922196093037813245050766380124791012911233713129574229347326487251632948298934412987531344558901971028443921996221135483651666403218672608868155877450052464949231499267098783300496480617486422523438318145979464457379514416308702701499361368645504314342229179418530989063395317160864211521636477643150481587315118892621457530797367112194125251691398354195274479080045541013112051831983601437449700242916744658864065720397261066448199569040667648996314178428682497658383579817363568554213417571502358824586531111349490249386112519690949174756366130748770201220669011805246486519002411136222345739794681356697038030602803544323121379260391139945523527651252876936363135900004392616582919655517479334674276705381366670307016971175205904590398107560805919065565834474615280066544629916803112515316044863983953273388944443897158839959528750992244494776053053793871606180783072094763728341846718801044202099212339784812052265225439729394354365957365444855519580625131585365183654003579434961885208793641417036046703565016002885411708771141848867953004439769980421997474116637532895471440438679948709943252204331895938499175342823811415772134712624237575218887465164707701457585112295224210834397728667847894426248590268626608971480573497406487994058006474637583465605267416387315804813307131808532762464817693345072670682871577983771510953444175493055555757028875628195850856253123570169269218298369075396988621000911794703301543599961529882435965276838903641221902538263324864667874488514524943477487664152333761489885516631021139301321310974941264409142708329131767398816798861462578452336896829753814879289569394388449594112659270151815838133840781030567668004950626674523910489147175728857220996188165473051293224608599583728981006424680805789228185866552330821931480729122008694876693414259401855949533615039250377611790693556234336867100177667325252583193120801538818474718236578611970795780884105603813575492263534780389129102807926930040890317827695590401487134292787465300534135039185003322562769945749404829592243956669981677667413347954119224581527995023806581842459568394175452403388135505147042464732914089859749753060948336727596585883983224511093453821885226854474198580203974906821937724494111542518920600716579474150585506352940413255171911948692630579748319075850673090515488769173901871176305648674489352845727007496123412907840867953218461413150866429625051742562071727434364666753997831710212532262156009574510179813830145302665172175845146390713248981781302042269450094096025621392115946478839083260608595438338342337411313410211012073934020578873403134120110495928188771292565708059152553698352624291856762595358794043368769890373947506593563733665209000459780407840946785856788462421618853631554345521354856594663394356721025109212622797061119800566259593970068202935905539342342660040943611815612311633286598924544360854329136485273079372431522843571882173953834914980309094603818118867618214149225769454657249453074161693307716676923395116263047755718335382207501013724847714206944654934847429470246798916238562383647233866315763963929299699142385948118023060048060899241033738427951932994273121387242366478565563954538145512283140104969157716859195467762296567840036535146382522961796173365865860290588098048371602796384250526009896039291704978297937603282331076009181615414561740918860612655982905069238684825340204423279837805707891514796157773154443541066142517447240087501476316548089591406917450326891526761176838396975861484900282609921279799519098721420687359304264416211494397787049886083928010056145387801914142546651843129978422168816667267786602772533695229788935255358930949693694998091595704560344736722829766103550702034892776514329752595890409900396195264274423522859646721933754234252438487354971290463295660364160857104528363692974533885446686445029262185615165038233997145481655026968279346722186735875824012538979266998653212722906577085543252459196246086848882180538834093023079380514832008688475964502024236429868777283291330790314510774320181076504667975595665827136203702788940971778822337803295858336478336584068286337904986696731910138595396998546046201038707948538059006061538143581172442983842072995057005733183347527534251717457124662539312548563132034984732618594242895174049559146468808767922236273782340480117189683188834822991695035859145416281775468644129755856579796450998504167897238383417539714137191181320667243866623629258038294041478250851776604853777087642271003248286163753917138233004802416407511776695145712292720865166060133030768180486974456332978508525830445874590408319664853797624023813097575201704582201033721748538113941188060165592790239653255350135733931504774505343096453699759294016821338061030162792121160116609980520803369733877498193705135360968285788933378676927312429524319310246242835500595883287092377851476149475911216782529200071047377354017490737151533389219581881129207825415309662545541372682128074501168737336165819547134938864778700647588817269234216660364185972314378573295645310545996613814324643793662153275361192462476184009139662635518255198762441566196715095524350321553569770589675910734648400445305677636817986278661713526879893388183021908981414617574908034347739696764567986740418464442187972447377729262040119787322594796476632821460920188826474147629488616426885098161165302678120534983577870079065846547330624131964276185261118353836461307031259293456925053608424243278560276428767573879511121346236998967217485555882464301154139940666769258697584079620105229139967217910375687955986997399407012131305692278169248875681952462113369459112825443435147487054946283454542555450139521277246819622398749385844124505839026974919702900628118867087152071446638005304654361733495363409859335757437541259237349875140978808045581383642722199182739017642800483692927739896215342236341501611286630551532654589714923273253106807129370945261909598278139725717600578126935652174294884602814963393606473812042905390404293343462618358679178759642813911851942217763010041556334659527481758018873043590015671681469302900675855782254518411048680744063964657916125657467350994895925320306332948312873618525461282143331268560470610684335239358859566323752725947088254783926351804330254976745295180598032942828995618045791544596297138408720417977478330173245629123695612771581401682003079646363678325238250348353176917120051936808684829804748278804670686333618014604923506494694171490690903468904777962948603734393193987381834112242846966501389778771823977190296567966203241071110841086004208650491262699690693420634210745814258968970131428758157176998120579779593688443735325082341192148096844541898502107225017736581515344485400733713945401898302241418973611973278129534091450633685728101213005293799092017656884636932717534374816024956255837102630243636830016779619207089523734787964351514386014434858738720204995265731830071163588658828559021200701212124413298848215093136619356860672409860676708155623896056388056927391001115011918440137505039550185553184567825871592002679404158912456758371071785959695545140579826140175857161601658652808361608755821787517756672765797366642427898694659832176672175628303975407839746544245790857588871038670879180107473304981963632170735459031971532491355282095273119637403884134659551206001334825082397955611728485427995189856248473358188038046311564012416409846611847202821672648703284853053339166029743447624929231320254991528915385435518900886680300214545302134145284688543915635453942131187068158779117149415882036813308941699530989675040801977778488352174270037984232025482454712289040667239105255607971752019523536790923910945584351723550157097306068606128810144876728912272073377071797141578848688675905703307635689908354310036240048363766197681461114535589112134516427886370991731695778607271945091115907073850919124037900903783242306651053224963672008362472658946761569644436770552418138112913439377032196318732057797526374818466214755259392238530896435318548753433843011073250999912861940683235694652425825578107610778823426301978961428727169280951553290967377566453781756219368640361124406944674482166579669351240109068485805817179425702506124633746162844818357325905906621091395271866656150507363287427979485687380528370101376958040053480433638257652283227747283463327473886217096552841882199590669933607926457140904974743677910483856717325394814143848237015062750487442628423532855113212887489665927907025926105284418022294794126545867054266550945023277392658577885250163132720674953657399164741631016240042705038768780650830119296882044855009701272566551996835371069244759584399962749574623770191788625721662472596419727183517026648779986766175699337992900332252527195493572103671899390748764693186156805914776251804105633709447020617101080199769029718918619178604555697860782544659622053472881948664681880118098150103332393673079027156183657153211956044297179002740354349002164308068079908873372414363739016665103316862700732545797798999548948033883171098646031313312511330087653893659493210077983042385901396794639989865147053479264099595944670397030949024282920054207646260298849342585048835276155832770767994626532430061024844168358963135828223972987665678921821522314550711572801127188533976646167829317466140490595559612896396408586809904859503131305369973262425543457513401123695654847971325752907112243636275910054058674962594242818279551266211183320189418857577710126538505212073111211752383424040873510767796500782385824221595704876776449799671927352877871001424987743271460945026026645681233325313417875719382797715015390542271639910008858941013777166301261877319772937212486408246991404308147636272150033395439542115998646884498567157517488670310532606959473832128831068160211897667730432737916549407117684976211306251712550210971418508986669630804571392446702361426416279782550979302743876704589499467704046464424896480424901540180065982954912284593086632821231904043269010006742696541593804281874149859047051592464404855749127099438210695344016010753494194034704912921692812569020800591357225343744087793375415677606898395314351723222990408707100632720537440168377971616561924746884579101921715614467369371983249255196829909107133740422701215878601723177465554110951622867085418588741600005589775460065674547946017619830924087704770833785756427549818909490600059348821803611293617202461263372556568775202102397114050425444166056309982620960638191903368426527107515721961430790772853828620399596644694616043213151572288884243320531268883586706089222861965428363149627388344895622243192825833807942912806329142668525530434844610282098862480987050263212900134336904824285873642259816211250892743657907896799095548593788609006044696033759833155268494067218291669220493712028405691824557839583601708999277595526025530471837795140095062312626466249275333262285037867662268327444155572421511569774567989454722776365080593753354228076916993435240605600477455771201538246182463867672612648570890040937627210468327867628564124438406718245888825720185716005113787262486042320559659797477859737867245388976138086036641607273512246433178612646153630578470951430257332724117285198149091887992886581643279285097519543200315330199953017999325695682711272686796919171509099806938281648752523684641081613203227017065749409550915871471120036936084553177699693400210632062476750476107980918620737329505418586930630275406012557033735484919937357516582155886056959986578416580474832678268239016968362773281529127832569675477217298900378640484928297913268924422515821688870479524223653639665395425397773486163582426107551905499925882834875364981970408375343149137605103098961655681012011497861490487554393997776135671878124625437973013494224142154830811518460978015409353820986708482682203418109403399666747622673948958405099196140984638861511286397478505398155407275603542313695207259867151115523708622731276389073235872885893309056685692691470740513429324412752403531317759186690222952254035467734735296367076697148177241302419164479438601624625884626970718742805059670896916176367592842987783568067038603276214500337485182406693271300661777958051755812232842067884672838435976530298153204032387832924937922002123083575706152993889522113521342814864114717881039700806569710794152076508777339596033936176176480941656257333833864655120939873108134936654109801840225646396471629380000192135974032089518576844467621216917132108517549230479028515340213586251429100405510448550369037343916941755566881782533310090418396832148632332287851726800703056777543726268006607416277364765905699499458537570497065356952918458861165822106636158754490629487792327939165647365328658584196684316336380279950057454024863540746072587640107023121756881850427411867981891315596335551454802419382245399907752481557738472730138124012633993942659528915937338834730453135514540465071057701643030734525986243541148365041616580110617199265354011109995190374469361803252061532084913067024939471738489734236666323766781961289101123798477075566830491459297576528205885098404823570018816568245754789590221341662219044851727533382721056533116423081010843112844936056848122653807971241262509618901146328548455136674940364411210751049798387768155302697846753580984681944104114162854219387410226008867454905755775983458505407389539216960553623469413457193574432813719715204704327370506602850980231926279785572232850959893878347610272230094360767032330939583461125531766287010360133786008699247066575887329859974238986595435918199200029262094557806314396548769637216623152563020378252969037575288144697973374573059106145738625266765750902366218792236383835641871867713252904076471930166767416018875950225147714177321258096213214180225651640808733518175296305196000126046639097146597000017413815409559762563818025702127929969038333714372629223072621491555783763490213965495320320042905804221150791498736827268815771558776661549905885225375066184481186683747367287616980362276799362762952527889609187578444970634412516547276548063510147396875884305956307690576806271982964601331603551769927616850395654119754419230109738175810695619685175885542827419528335501480993839004019593184665231639334339712278034850671137462893070391744926209644563471953038749735594203688760107289000577853384343012259124880373152689988905652756399831431199417815398121378479431781883348974912586410841025247835517628664933412439379129365550061897837621819739246390109471931197701775986381250718229274879249461401201967086920516007819687318252350529930733378421490560405838247029496542006005385907682028614927796719784784413059518029307518474635830219502160304146772740470797900189960888760965486777672073364019937885854530761228883516563645201118943848765456005169073613540928134673855808580687578190740242640562273239565797015872218094212834265092582419300857588841106072015738324931973294860237615822705713728998792171036734565181305815637752050403317522393446766895902799195831256928562016149560520115274444635911518001301104254985788562760353450731515931467093598710067518292873082335568092162891333466750802349923143800811772344548045394332730741196569391485866290610103172800112281406513729151003991694196073812728776338292851585168095660783418874169018221982960264402802447985932347935500657629096101759543716004466590382319879111218635655152786348602252773286620155386521701587200164653974302939117527768626719958303640504640232629370368179631842363914255845200889225590989252989097545564298090043804701967092246159322477900404736817278465929541677301719187748008403591790343558249239844528023452922600159570658607405208741996369661693191061424950751157780824812694062464060033721344423582103139512665931047440395348389677483372534855226651095006995958253820695022417785936385610151736275406935250148081940649712431006589962973522725617826914126736379892747432515104908910684355630355526470437612473459962784437123268741315530142015244051798307933130074957155303298345969060540137930055402764950349060947217550752600213681242818507368942704785856010482696155342166126143257608776600722146868836571614340750842205398827866710080005067626486678140751438457010894391525037475522477963415373661848745200258627028983854140722339875922996177616572971261032895623814146633625151741458835732975656005215126522754389317957671888546903004652839042652657116684430640192634226373289940287206882641908191704509478587430259700251911621058288175665360627811560092117844960850956095182094705277670573314869833325185823907690716658389235553944037584858406908587696225559081591513478037753802193307313603302407633871724449498013809788225803904076856410913657248037884299817114556831947890496236950807169374476513234972507380737296114086769278707922721030204634722873258493625264532600175885018680296909686990845904189699883610562845020703108492849642004204431275471570590171232729020118436209978400085443329152189519433337068136680382556884364661593068238419429892747614924746732047154228206543468287705077638114921728800478660453761422723441522830463963227961909791242359457412490756984153669475105412568926793985241458278669619482245189915755714073023222287201316345024205242626672823070861098657658365026484991846990322192892528189107613042003609366348859030149487372619386928103396197880205025438814291417002523191796503709217473308278544647475856046607322033730542836958276195108923143150183775168774082956381009898590747364599018719605981341502103732319973796964038190189735809119856294585586378862765737312902430995535586704322872083956401516009605746038445059298202392390590936760171817826500192177693951655425197757603647034326935139935421626127365705558945161612460642173398086586165348183869647377068950059782410085918367856384286575227964877909448647520315704182422731336161083602665950974239649241952684194969018932279402212625944471116256655393053606385221491049286847055973723979711351337214298355296030848091602144505619310095301342627756658888095815912938510253666647288168386261692858850451455433979405872987425941609996528867209515771208327557278211241670209141536076472888216352322698686049414783105508436341017784930317159215157535647579348530934166293807712882005206734081720626393390073621133337107331404049861363465888495001259191477332434364869749657878151033622883133378907248101377341947659107787500211445940382991745033105395847001117760054982618925479856488262934653495318346179365788797215908064302230726018944732719288106532882211026094501903868249420586982159592775953230015058380122812550112604496973475469494622909237530937845940894634019248604416677435010629578697445046707329292892078268026740355785530871062101571417386550476510502171112879947748706004459891022095208304607748720498291026597249942675237198191768367216171677924135805523701230678832787080768371485398449138060799661701994910156656701533873854126770630009767813103184611127341282294909109774713527620450869504990156772047803113106027986857682272407824657917140531407535061959742276859375433721386989701936951521152183079460539111842720684810792983048162458360833876130380368192606172899895669585242846331800386283568520916724491621993987128793390429984721671798675555845282919448902811885146968603305363923964311216570448670128886371467183366491024752138676745126380609998178497713672572397736610585698673985526648533787725166215832591862832287574262131883311176776990140181001312912138942735081313785550392357914194875709071707844592908717472062988963837737836816646018904263197833535144836283354259888154588022724594580537532345290940679735262058900902745364728830542375035603398681288079977431180277824613750276649275489607113918179562059600979989256210958794627943414255766453620915165341085437893299699275893386899574163977049748854444011757090263762846747253656642007888854559217089430529691024004615269366488282500110628007909171606967394543726788675210939397585847877705345491892633400155157072078864497382511214958749417760604956993278649345137544419654008349414215111874431988259267768110442343755193466617183997273774198719471434283944648494745217827798084590374915165270316431405572880936749177779919079038958270831790528215036760678642519572317164860005170403557636737914402471766203129884678579664836641246598287063833309548535238473316897337730388033998264041901303612839456678605233332891375550836107954637267436830659679709558704823173390084801842205342780159788297798011703463413526082719409284119518316446269412948677555821499651466692452002887342423801178517560544819358038351871569782634376552670923318251734426950779953373767408750385093371283867414032972183741341453301691493433432833182451426174143039819678889601884742902892192655412808619760111010586576188992054655706158927498012959770044931162912452347468105247465701234038162983283520493237087031931703022331060986214264679774203056690502249077345094147158190817466324228921932132835484756119265113858600632209555540945735018137792001210745603097544846741602988732156465432600483160935400112571978941086307877957452202798018461187897510194391555610854713253270433207826856769891157129425175506151695989236636178874715983285140517528749300087955511197838384534005541813977434477861426836868379288175405812405455739693660093999644176531908381994760245068269472600571082637732386639583779891306047551842725498806719568629745329848828118234891307726200858238507207385113391300808370354756735794810945566793260106660198471672731520485244063140879362360923948973885620668392579497950381919016457786472992451441822187022280398128834246085767125117568504130304440677646525806588419099593467381673957193264137272845182805343339663035329194823516594271416216603591234479963733780980052970668828225645803618443824033743347847508184969842923597262376410850225496039251644371577794755374065458134467727332624946182306200208501866106508981700663191365259746451534789374920682628818937546774955337737348831950085558079749910583232972757974626892529167866858477779767266566372472116306909055312318988939905439097877843242198378520642509168654734306098683668478592128066229846550027207724846126690311347222383238404254583850979933009973978616869872691063191420018209975578171047786064958936178024514626466739156435899922741844072109171434343732870649210630601856513761512301203035617876883921870353669735628292442444498403739717220683416702648659110611090268923557918823092885858477240275545501351489228943908557157971942998315702693572758021608864908629184569849834186941591530827565826643766080109216472702979316351187109644854684643105223134100653791932623820159171782297640524115756333125247414865818414313768982709062519778043483339604092528752297198957935900712752284085466221300466635653052302875149326727494888501208374597645765635258614881668838362893012958745325932872921297507720533827112524762521964824504831928080453696525264250744439627303841310722220475450378063449818819249089880544585141277086346066147152220611261070258834912887364188876323758444987035947590501407187854149677374780502347460050011381065756096022752455985803730369576387799354582612509528135087908693155467284412976428529331065686797587766431275501711785988552554922528918073304165070380081312716802169554003176261971480438107438769584935777974154566011501786882811108937692956334077205170943113071481054247755946753857619423889987740827960163606436726693776428254445122196001810261812403275077017657281131655806508066594167461139285662228309828892823868447330708569556004433169480572864916178230439962061733490009406754905366844262419957270400832677655420855020807819609720241166532155958617336008237787948429675372033492996353350289698554555161543171751562299888020032601520633977577082232662538542644260304820784667311630353889270766340293996053174761967149633462995980605018061870481920028321872386918455821185570597378760221067625509411742768640358585400422849557063763093614222235859928315812912831173152341641622071816047542260920989355343187726703336384469390494195760696017022234739092554789538298577131669762445296451501048579452015127495203768134964750578902538864668253605689985027545057924708298303993294335791087607469969600589016443713570398752815602820887514707884317898457862671181131228389132168887599943343837500008424939492452550659144009076249121018884994277702508385830502530731298248958283304317380352350641267776623844542960257415861029056752195522472835582907259490495065523580469402268237147467973193034065288435090591183181232331193525074692248579868089705455876934992572238604286276885257389974762541672531222705049326486403065156619550742104614646642485079865097108086617360989613454144073064418734372543321624877414793681359144660249720228709471876520382125060620218108316669534690551041002247257623077783422140005200751687572212200388735051085224402881337717039376037565698788724145350501831845478689786123375795955801209403807582640044340781963028362413485571955493870773071625756006820225874223861630257023298810057079217802513811141770381124819230013116739560121532975000769686017724831135676531633459056676763446771547169497011791965648215657669790497224525952665129406872684004465285413957974306091317300785790739529226033617188252067425681740712937499373543865700653962237482690560472982091928305456991764291445827429536167817049399401705655374689041756077257207724568175529563035675558185518923254717238942462154376745165745605739545875943932022908777011689524499753103079904691332238032081364189519196867757971778079365959550054919066630741622183038327127164366103101550560581780400370868282434209177180533707219882900545654877202902082254644257548667558652613262971466586152334020161553949411745680868130914433954245213901401156845756725648436097534630166355188223107724131127718072321526637135346847356541897928443561763999162837362881438007522488165319380159635455256326585267846411057655459618552212023507241185984293054064519453617965380871360735097320305338488978366615093293672445570540717594211451777950723668540317743723172672229315630615332434440395036941629195687374191070447262827525394639478728948312447479324784884091736717138729164818827652809182325883787339684371125683019024670792704719587332033574717834588317132198827673561012346945749535295254842865623853492722464025442569218127691667158588180899011078515119140706477799145662406229760558679592518310695522426278815676692738188221480469701548925252629291143554430937853683605164783200191491442123884499215006951540962469094550309660315627244155269945312117283319958365719478909712295772887596226535688996573140967480484909422773376639438568952688316794580043679944063618244573073161826997430675008632433091900625157128549376394946201883942067407643417583733835496217107683074008563829486740540700207240366825272770256440863518210776584926304233059680095692201377953441903210438255247603702309486238454299190388725188283305093507157120261646455508387163255422566156620537026200322780345914427430040542611203229362240674427841613742501088156339571665450836132686832520907573524183252054503212970623587009529930050312808580499694585644297912768231232636278310319012922890495570697606889122707490123290567702262678942519107169353360235842104450482991869404689009403558204110515136066458092569409462842379846283960688853149699785956263951425735170200275322912147755620257315747011728694695517892409889468238912448485176222366895553031928437231538405269549730389177179754556244545441815984242058589958293125933249576122757988154818207197072673031804794559151404531901207934059353809714516866333335715392722135123112082984026476748487253602987204658720311794193686285263361269090490026426302154610520422615783479704021647395780816089951454478107891513392005380389212113793427265732216599828616146869873907823516680188877583157656506746759309326843015171912954752657538591989038023889896490336610820942048364190135247481521722796635186948062102501823047624106131203530700505330614068430517491459883694506758868524544609837052413500711692436427842691253861662321131477589392876320250024652937833925125288896436988775999901893691548657522310101724479188743869572238941421160083266871913013059830138472611487411792593381405887453518871569167500408332506528094542488811627822530581594337638514751724036386110761386216905679831544021084649225158498391290659497607412417625307747513324523560565411827992330684119077859469577697618887975122049123087388234487960016386960469047260734432425426824314500456586531720809589921977222818496185595571511818437168860719394025071262230915230211116502887923285257189465573093434047844953469240715253306884805262467360787309385034435197611015145807345511749486816735360339383467967860369651654339615464299216566135010877845327208313168549354504722577146871482049785987301065397293858260211649072239321858030441953541222649991222400064202294341686590378570402609648602411767860950914698094599634261401381047798610509212405410567493462966066628312028223018743741076680623169087465298312812912887911907543517543514826762802913538566052793370769670226358720575585038511161694233870580982599048289366425856559082694074547920601412076651339070335173901046288628641627648000733579174464071535649909764583502434497609875999770303748610942642152557301804015853218049938453226553990844962757936846645660456964705288350375906590136866472417548524063488089135718594142308281545902784460393836442228390713010043242744191511615633391635713547530469685356598933318829283531174541202871668178116017077742484077955145401943093729006498068248623127826295547816114579178647231014687060963051089885274695404523466273923057396161388728776295392261737991816921378435081123729129593993927198138207622340460095470430321809892100610535014066585836941913767219056582768531176003132644703904064821298034970463670961259369442107481312355392781113295097143751160619333548387382899393764399042590216867861082661821506079020759453369689168026424285022429547102690807947640174150156620680644994236832062845707709723946836108292810280678815720908377923244408220213599784348850752040538289508060476953545161393517010083523268734765964364892057849496329229787266122775978548181500374884052851127876741588932885852971734674201023468028908906837095941801807903161445238530210032663446348876593519371016882756438100339559349101271267972863429282156588839176594305954927431500538232063648269391082190216649273121949453045130523818076246388533633075340629590577866687810572570902775758968707499161589290123272335385169659713577913214939639156005108062988850966904894297326018450815318424564802335958672014567919147191825252992086003773577603891933410385464857452954417740690497582912117421890140489763971836390092902777465511358178189869759448506945154404821815281801963114943078812728909673414696735811880909771639625587532129715491708693706025715491941826892647820172726109697113977468084854557560567040178541382401452599279536533520739020218927451136455121848735258674560065334991357577357475491930711288423110531283157411815277477314878714655504559436913888041684151048631829595247446875803293570958122854157634198453996888313539415473015295937640346987624910897638265701283747578844481444160282711249536492852458929671418975601311419153813625981114506501317033978906958103541650115903985274324592624200159162331272663570185038908920099925402774385430405776844936949460644594511490192320991539394365227655529697092378696242152360772564570405311132947594084842474708387779003583408436154220495865069850322989871929901323388896711651302722070800789971254015315914544819822983949594364268148178042116421580689142900843593481201627092713446523996309199916883857750640259481499033884860513062106040203027281202067836126182350737398250819789982347017882380401366603060723591431296183477612458848229552190894857135927216176947051608292952961066736837805128112398753821465020830976256151843309035037807904627386074656968836772183081412910768384357265238096657762076430660859229663304849510716486422441307144316620553842391259409901263878598235684011442144069149720424883694039155832152884065951666497451507317538993492307327071242186984521602765441460113210701696869822616697514783480792057826213752419607820823006326334259793571161920878881185624270628776853909291405132007959980997902698049237234877066845590675402255667181932420687592301056975998506688806565957310279652472478705111185280776398224059944450795183915614803283320994786921859443448946955022026131577617926837460826757374693679602440458788267381019980489789410389390106369107901407008545986272207530799419726499274092655453795522134222554902552285757568318840418057485544744116446344711917305305866918792136032441912450772290091094744786449676780381922604208314435722835379909283985550637457999127423077431675311238547043470881560614681019742030014696103802931249938972635250309725779207626959313229167713799196438860324539242195721474616828700905858756777658455872815816323008234646666646461161245032522920089406373644252668414630209280727560622904101671935507642601584476800813757245108593905016522068122082919786558223297853793057856936093934820842176117801772252926894871859347115919531578804147350102235670658065574976724560837932024572511757113664428136621086678600920672940633948337560139470402938061014726505789057061815978025436862568537594592411339022033816775066061897001282363823535192540311961706978718867788547621576367498217335192728626565044923138492688727198039433027586961627342684258026199462939180516762053476977648240973481380267970241531325742204717495695602479420030691436029111051230028513781523987251056519402200090258877739087560096588643255519780927487057125897077304773253943106754577972248256486697311057130461258432370342726197665446941037806182233955971543121853733106916033022751346619538652467665253561577332782261652677029993842487567539729388991310439478449983828115697567036195457625963851489238579455818751591109573851274062749239855671532684751596934174748722201761846098833643973288436719750229903186281869805748351550751811714389369769353967979767114058719542174782445104595346969428399604967382000493272096927698697451807518545283785529209899679908475008489799793929587255748484495899771556860563692368087211665809008622069750365866291443356027663361219591672155882718102708993242997957510453117834870618753975250520295525532039618418982472743464289221767527092956964537817429834669034818366650384504170034268641645965451424776416712195910586594896333750296481813930012851298963302809571702858335982720831336820934805339139063886804666818168694608875755129964901815035220887959876665519492438507676985549085818508430604802549947987414930839571066420352481125952087638109799482232600788086383718498002956252845180501961695514804611513865135065948739844764937853967555368686258711852796303088432031988059119960243081700838253579741786253285684785897956896396115971581439555256206876750877856155904727260913027745918930908036511281902913221437999570218024421750749223797394166752890439212794798187346015138160267125290219874025727981685366014688589956210313325956557887373323474315059391736410832541000935460409633392095579792465566376489952510933460575077414125860211429742542024425036925239434124384982577831230805984418792182367913983803375476161517717897328292829507872843052040917190549090570957609141171775490450110117227774604073093841043947947319272795445842748406278092289378879009184128792367708325002100797137952146422724169565615959382160588982412387915672776112795750057422847993883871769712534812039040805288451334012845450677583519608477271570250558561505607369623083328509751400565846204403299062374842804010789031770140914494434241905808032407152793718356408986551794433538680356196499079703150689558133173619355827283033034399932856616667408218322600189202617573059565385061919975276530839692875951609139882697617004518972036139057072646924894546131640501696724171201885946149112963748879186293178121112706498897204605983392639831935051298617219408557406892997932162113719833897660692338513012069220233202093571010057014961592513718520232201230614899475092352727334103447604377400006010578152521937429285638360795043761223833336540586968594331310927896473175489748827804783682880104320101435507378313917052725576226306781891372526554228281835336067113099048864975410140802580924175532669218159957846144986950449372380837953513127346139393687204749935631721834570264177904718861702727273500418034277106312058464256506858769487246623462714669195424686429488124800420184511100106027755087058832585697990203040389553953013715991940472114802166508825290456535306261893375283604575248327502544508140062568131368288596011117350680118622595080367201308576375788685838077865462920857016908429399334312128939651430896383754383066544292095468969920838925530322667926932124986821929087429859288285764382516381461708899136368332320193609884017814098140303433857357743583285508433060458696405001556778578870821663592248012625296809518304826087513878754761912062816286105510510864753453280632903246906798433374596936796095407238082607973802464551743116453215311546435864536248687943451179712960255238149364327573660889376410816885845399154639027804483085134223590421399878946624445476842133868112733937049548548988231132199702146016459371875632236606102204682444332718794107338587296231584369110518718994527329909287786636090443433705598398973465116532759109585318064683308267311318023889076510384610355670332933876849198340901790292820106444891468075553003804572853061174062941951183489986159073770449357910418870821800891995987033303749390417863281578127234127585967422325984176688308368795164788498791467035680494094504531865277080565322468070258246003136225498471330425939280240909550491637583279615612735134042107857773478591288921109982423266434445176584263627760385547447024502820403771134684842187467046361298042254498589061379938425124219840171112613793146135711036924179660152395247093701412970672661324219575553722516231293331687674435187413373963488199386778261841640937275541232515925936721893897389796678400081166123779393111885838601479723706502777180038293303616791305168036222343079757937581429607367169683655969004808022135624326303114093995527974160971302384622605722827349146678545464413874376770837600322462489883850338177294516481106728773055401398539988828749393101660363724109594429332799967427579862325509128567242382556667955343431748973408223154733304552369329854690589342710901638006462569585621224034597751402567915282322836765466897155006238090023355094853548270888265137352649465043966424374978449831802361781696369394996965605878086831869888373678365246484326707232192421355233231029276103060976159452249126815161308569038095567649693480116088268275977357283970741054039853199553754438287694206482518595437752979951654140186152446829506292593004580231774686577633267959317088979394131255301200045952262718909273349556041563423340061474814566312009292978462858542493977378374145928551543765907076331345251516801055662656857640765551498536102476038943442294444264548322860024598046097036561483944158377187351193365162128338790494338431521820370461146858586405909552675787493501489256775706651393814817200787627762036433600463544745078429737256286481833892225036630465970735414276272085058180409434546237591711221118508995123636723514456758779311714935735003839472701449416488721937117833524642054019929941844784033267199979471542801836870375760435545173892110863299996585806748594414365719058883024860268291511529431644500856577136348223311426143076049349016373332135319090570350990131104959917945744738534891709379072196702569811228050912697658186801293151091103877224121016656737716485565965592296128607953779391005769118238025167146373647155060629516629891685815703142646610151849345472141460711380938860585424249527333736163471742150039001036152157158341024494034257442572647835099161690208256456755858470838124655155190085189325296518067625090040557192034420283141894877926666454943751567935255702311400257786228673550362735507984108942727167108521317854707176153580310892280087129478146516949665579313843502068267501910323611905106335034454189828069884723023635303336924409983484921012488433152501083556373965384894208551599831980926930867578298149857970284304487018810877693855206862523212255303025037724987586910930020608996154929523286046635742631769646757600083812188967936466759316225712527400007202891365317970043259432507081124323660970455954163690923194102214024311007471741183243771278888052294941112278258964493643788606769869886107115084742185536838006358450979206366236572776158981121404114035078566070390403327638774445899422616994378528775268915137597149729989819886706239167303896530267975116102821425743024065429885411517686363977906427762856662007355963545917503707468795673486457157687664592631038081107243582170473205394051103688558441757530183646013917908792281378881640504740332874824448369665126690220476670144443829776656009517630715259213611476273364030378479533538048555243217573508609071544518136559402516180554032796912046743113301967718220241485028005602084040531686643723849703640417983746484708699622044621164195356452730493082387725184541341590060458565631709908969357618254829521585035481989774638893072543065713205529151959456881302125598765772374563766892227011311186761266868796219904856401624063733578715616676398968205916948961471277364874133285139726674520388671521946456598038508281973887773131848788482464132999894864988895739031136544167548976097753020229913861019195264741129838176273065314295677999862764766682273170144349894315959824422432709563629847710914400232348132250531552584099875173428285745801417040254418142222377729246826375909590042214469896381875937293166572139207203505404383837834560609226156421127170167182825257366645993210404221769351036605684885938874462400754018309364534656534854700011116526665148516105242711393053927736766157631865742442957714311223334048780569608102334067223361886620835330487619650479340265453250362158096533358928282458795766450934815422162932324336724909551940304516360123387661058765712524417705631756442586319687294843457383565191426268587753140620722869605232412890059377446663148172661571358755508575099702039246237566473713844731777779545147972226937022553599058702828839981782030762123170388074505211209691490144099259261160725132036032287721106008084085849109827023637223752636608275400016201671259905473590100768739985604584993190299111111693341564038180820938178536817804952318253707884183605507744804995744603104335114968264643243724587490891620294599894865327114495116127074189516087353344953624878933031503476809734985826790663331549308472253988230298988818037121970726124280804319947012109022957183809871727348232425324110382559033326531535519679874207453262300228594002972503362542018845641745409446832739831839415948389679887191570532739701336190333616192913595098049603383442577330023146532481665433217297418557298690770044893340568393299515607876356702861651250727685631729730621687553100163660485773440361575625465469540885459770649024076396096772691752685926307457509134140895977416676206307334084351239980063030227757940909510175686276324715287557346180795125870052584787074710257527237741438425541154875193471404120824011590120141045514639753642292856209635048202378462034983263242792085089824032461913182189326508731621608794042957493531269003824018871861301837010269130574188703888750531759770631978168444190446025080082731596201339315012516953653472815468532325680245188688470492322093411270241904026918381749902327633454288284172140159925200487352186812838379650949681279086556438032326429362749015361507630323438377776823596011351324787441428637067013620276477086796737396385300380878409791039823839650158764590949519601724150046553423162713575704635112919188469914158758727130670240267999296716973893217427269473219623399785826101202963987189163961483131590367503162949351263081166878210305517013349759599054019527693743348125276715392458372601927961208729361240002863419705207509995087529443485532247638915377298230231916248162837982338953699237129572348842175300481533219397792353367924040363561175957095333146348194153010445063210604131202738804448561579211444184385819638209520327606370969298203185929929668118865602341108592781025949403745323350770810124543832126716250096921235271877285656238084528310836485779842375289596406354598970284985646932317472944640619789266182305783519708531315241073426936889413636345062098286876990434499979381719076898651926152405651806273563426266082428254642898724567905978006255134537481749355999613450221966214479707948899912016755740288419877666763498415589923113030246225869970061968135676741373786464257148124204994991606306836120435292689258289388848954846899848193306186889727693490783372770477732003045383958144842129436688670642867960062160898077299125494190661054276685085635381157888486474973865109794626621589497426573009710745789895608708728678755891557627251723786593856802737443328576847363238542347310119889611434096844723962164278460012042010425274467318916530764466298019748757530425335106172161302362827745351730794838792415922007331902051823854230478809405646594211884654296514853272017065978511184610957296764869134701380542857238195096711678221155661920015407522547501475683729841275238105432398460307347900750753043444899771522025775361041414321419773225781670913499664402615418725924683674021223224636732549381081666692404365170230822866724978964810104673769272336929373796048952371328418261930535369236179524495246792036249935616082511215567411974161009394531608030628306590193317737357437598372636913169349963685396676268145196589058987154916930168398790106409110089087655294775785174975281282959658630426734769660974593021768896729661900927315973729721497177961836127534553514508329107361936906488709632149380085698140753005430394286102163365292891895547566396440709290381794227656180708732826336808869551392497561789047743139181395390673116934387946045954377382576213375565655713191347505803812144265129317314945984911701209101223413612596351702761473437340275252920295152666012426501169049996825575378361929660584638362667675854767067644410264914598212619810512072551101196466832015472208413424065384307513193482257492881332809724464633117228846548007209525240254807155230011423946008890744578162596459937707212675525812904622254890105829489494899928128897815443410499835523958305165533466332862372177437209460093815608651121445900940863959032792914994154254513003382609182245214988041844496278792527166536214458452643187586255303393476851992228433258408558081087646546569115919441555912506506776929039556659772023352289491806484861730296728903944176739070756924150392703763916155758897781431448573961202597441513002309339016492701040944707580530563039662351592649206807189409252465940855399074633078734048594262980107708864290510931721910760134593186462765506933451747332213898191935392330775845770373490684362293229445469565317522623513375886706451472316658245525896549489660686650506692955953174874835288784376384170632474539272085006755004541504633365197117206416320278507604009298181452156427325231582724804782029217004355161830620301171062312833832466854685986669368824229020476867631826281269974526477074011757861435344878102227824940894851790607521949056074921040558912025831503873444994019512281976069295965188633479121368087089750215606342846887009290625259087332880263362954843311311596491262740441827114800211511950995767513090194486156772308607559143042531997717091196289217563540771238609154101469545566753790984303931856108612193274033863814700283307011385646586765275045556242651517787151591875424913210251040884680879714880990689555315578328877716842986237001101994260442482277904747899104860142432241158848904670891774019040195362504372190324799508588711576736192897162097714513850649798608339684406747548890883487529024972698111603299935359774233228443893266566216089894214465549540168640971476394720883752429254836946922561498867852642470979336590570676230978259991495515833836505702614104849995541956182030366575513081583066336056710258241650962415091657874546322364371933191425842723077881569976914926479945841148419819031643131137885060659002993720711449099998089916875929509870683790605339097188224606016800640426280185727556868657404690023304801311143810350805859686001318183512451099801920739356926233334360531864684061567122442656551347423005613641034670186788493232633885456306046748301897340719499780932601575739349400802095805202103444197189270425153893900863737575125359389765149388557183523281747278037592590995028840008013106997962675227818477890115828876695412281086618428753517299732138965076392880568484937153337817802849408385130462909348564214676742884135877348029883054946299536693934125486037745534056435941623862246735006223467495768671161708126318682831482150437203613274521841366744257829519473053855787452008935308875190618125856287458836588266733901557670504936340870694514837178361587944819368724009518615301116579177370603520743833061471564751030308679762039769654396284106398083347956533738200255837760129176731717266959111313800102269877416554448239148881375423027594435726585763083659674488968121648207672401201561018445243512143771199660166906965319243811917076822330317700406890048529082417293795382759883020753743997384580626106182076891669679889869636783270627145601513578768024213749273666853016287419173814343227907612548042783752669417539043074818186023708292523606324258401097710312346509821463564900844052937196624160672591281352430052150034724434201141219883549902246869033733988323028368586371833550729314032079243887276563520607403511801663470422370525675039677349828011709761941777274260753559023071560316500838157586656978822225038961851465836859943505030500103765465602855290473829804416853376610323759992838860769317848182287766127887357650061905661293011827890674500926963832123951343917602868501300139523699144949064258770946467502188210114939460593587473389258231565554174005505696145581090515658728392584181359461300889857997493566093792341683662844803173879442164594243237301973951706946865613948026673075473485796042071220813660171881667334936769685344778258074246185656777550853625305027503393441579997794744234179362398908821970871513949494800627397227778270477315667919987911995033625007727281932953997001299377569890933467441578983164775461164386319097657023150135739338971441127215636087708228177834228126888179970279018226096002890751165087960682918163274217382706202751490182023687395031350365733995852735720978191600255274530197274549917619466012444431518614490333908218210864546123100318025952951289900473641837078832318779572927210563198753677859195953379947825427177899001155758970449432344649169254162905323077032882517486722106612486388716599434204371307104809276006836858874996981022732840028046446597273407034900474120098386752401083895007494401102222085966184847451825851564784522923966034876128873956804185719307193978294232626803422523025094445783341966819973404309915759886675609221367623609196424322009726687456067784669682325735596892831402696072082904399569899146160684051457066118683864847794840737899228850533562280847228832699732091937057843203820566882826367196023765534060929273791864336054875830173612393766617280117083525213116734567320478846967422586951644531581068055140450326922557074596262440309059936880489383084084394644927491371685638627391502551277664128306292662360727704702782123881965009299558210236309387024976297284502261235498079214025781274955098076519376992939703169143397544052476005431184769580461267628622107318905837500128528912436572727458768237292945596145229916552109592812324614163147305178657982052187619122042117100748851028981466701086909370885566825895253607474485206029437928352443325326900084366382287209442414478738597607254067365690145027568686027002286637210078207109518356379139377208646774675065209439909709799576703276330727164191555724887077272611240727226378288975225205112310762088622986332704517517753391573258717404375465807605775247396964194447283912520101901144091769104132610848806898050974886279161358878547216537629292901514181934446554040231375489880615189160992320396749387821650828157968934366284667344384617791460314536485225336246427201700456251056114256325856714113322777934622250008230809816067758213487336714167173323204316883621298729925475716446140419122742270311708630578082409397739233550464551499542016465332665547047249284773593866153813686478624810077825432032868950050139309166853729643627879008630673361758653833487291894150771675063730902229854270808737015050108135656944775470314670815225670283089814851824892960146168665158612643004960508585889172214888606068624909996485462933724739776605894969780629652411291543504989660448153785013353660114447697643279460220709359893995956172042098529757472005075221203212648032311840514123576199207667143709382836656069789149283626281284045380048796679418690295891157601425144335066718241815398561401738208689847307365904422958263746845426361090418719659616300663189489842761901559742357660816636798963837971208810199658386799525956378838995325279189022536504061203166483290786048145454022585482275624871774843698434487697737868777560308680367369253627210646006066890774458739734925945470593371071605687874464562222246080021720676414249466496904419230321777343508614805710917593420765433628805664325627702230440732323340822320560252350485130848952618364884428856001185880461908347354386898841459035882710622316634631189543111410242029786147198732290375335322521981124086786102019236620566861126501160399438033678067996088117867520177099313473305272527064486811497051719677795586181028366328299690853860154630574726750998752131169642187664628378383125648443577871011988781717607671063382601315784768786655570014633989230460276921691139267633380604452994563382077330587329524298584055649020468363226166883784228517517757417231957705805246649488355228862353706163447107735717797951542656775572926999517620282971111895339083110885960288365893948029496543996035318142859414545401220627453762512446686137671630357836856566483893327688121935981588209543757054652583991090718858601989594010651410694793128834762287400221680059482681851571438206496634274232310076349902653034645151769046155434865348825983864419266704967817368034940981345812787167540361260476334898981537460256096055858458421168445789758042280421894533692551932212886275707059258585340951977040239225333400669809318978568486850003994601440710139977889069714910143443630120663598383365533423054158070333037195573289581958748148014742730536629689471753119309764266979465724857181968391089288669836609050601918419017099610939454793683045355379843610535138917331027390399011835599836890400293578053279395265380188877942276277366404225720128873592170471489016185407908575288781749655443599001154831616964505569901309704581114763436107775591924079995690759014238034802069747230449526395463691872612675249419632977708465296417702987701409551456736304272390667660790110945410367255690222431387835559961102955299461357272788273196324078888956627625221944490454035944792543788354608944593255334905939879547678151866729607821663233906091690675619559961597136303924781472129629304847412764764709570547526813118116280016591039860209842381659663710251145233546527341083331421828830193715004174860517533661889654699362746612324834498616625891821040237244466206996336482664493840682252674185301283349888543240158893605578716140029829153595055183547235980938768072074482331814645888406101860107666113640472661550783394564841705620124520616651887407166651632914882082389725440014754252321393501527749757863499530905993891628881008608858954240384503347955221534442261742599610822537242441710963539992278113537760998437825879375841936696659818547402155879598427901208332539883792268266110464724297223675988003308049873691062046132673587869053398172748481190548973859838685141601152673963876825669225270262111800052078726415092386455243143183145593208997264883562077049330583959422722298437144084526743997198902186641685180359690535808360022760366361633107614436750896849598322017383746650360498695509472729061762911761894812428142605731180701229892394677534526395829217416761346328403908136070711389845818433311181076700052149886323728580012653775020601081127875010091330316260374077017614378999253360195142016795426178752262625694967948690923823548591068729399986961128370896447442315413813977518429265890852624396585517427777800500393690446536166502030115685520342083047899719681671056980699941532460791745199819823800090878074154842173908478227002505392956972572041458856344923549367153948662659565811728800142715149734493077424082174624892889569543645807240182661051166755042282844269512148795026857380769628746979387914110028649127355076257658746606447400508049408611267111383413240958890034961178614361861592639540920794131635736627773784487374652922503776462540955283751863144255937653214585800393147424311528832433361140161458870024956079549157079572891137567712270867230714958410476611721538446763053892295202025773947794468165740616676468616806633216881302783532763796386157962702119566654717354046802495245647835734654702094654424445630848210176663441328350458104467754565678094480569382533367574253151265751480406051040032742733350400080312417684754329077782604781569426402599799817210836601184191374494922029287230283499780694948725889876410941047430810659665570116385336671370437510207581519969594686540023326305137988784862023367644047199825895797669204393133261752273185329941581140691762522245778270203086594094203550364578257760072524336497215138801270304293938749305973636294691830259238530570170514784360133544964815623515496637852394757375841475936144432125462606612942663416378926057899552264853923839814072383435246723093708118426656374315823235724910864726225174412375348832059828902680294461539938094193267821741208685192313055434571940401374762730109352108825394530859700611974359118327591213714557161028611940643332264405713513502421862624629883244516857568024433713538299463293030314327750692307185475857071787849301079012179503797149142211416372591232213323526006749362617381363737070715168543431089782658972394046601760882715227771739421066162339307883025902699206393368463039975189624065953190571382972182665370116865127343159122163400990804495839476281976229010170366184347528436996317384635473784677191902942517634639320013435629685544102611105654847309712374710077102652861064644235993574349946987043458314379583920601689136528756409873780842447188566175989799070362820228572164026169221867239387872667795440300939739520771061868723048202870568662520263966847002216938780695626747786122867151775386801848342786798303988327531734062467938154974163549736771978604463471356644685358705653781673551328266021271814638849949916921800051643613401278394692805308870877407925011705640326109423959726793249011677410792651352204676626958915745382326766517033804866299783925401122462672515904388605114181748147243781477160014461032301408915511131316644543036360221054105861163645116935471182601372439892895703638944435466791206661374714719465723257817063355012185841559198788496875065600532397014764055851389972294610783956072558834023310996074807575827752098033043719826006436086982285938547585008766238379803970361171478955894567141923614120148126859512259085510322487244256364966796808243476941618703393574694852316145661177798934540924372984376593429612516912755753695461540881480271924421308550514182334169707227507267479087560954105433678263503731835202754222841721859023751802214204961806968709503299458167390017839787912510239627120731375317373401574098470384135568421385863862165773299417033734829250693831063088580354303683782447826176926031191430221642346437554906607347840910234074697955144311258862828378309867443845238360010237467039101645408974216846842141006586499890462350169459274375145093121213259990203676932433105577318821568307885322921615997384700182423492803702542308520285424163187361992231191921462810315814708823012419867156587791204335904965328964608826732566514034996154800337868963166485774326446824143832082793578827007591317937813877413712011812785986824104997261581686733603214580004821200974557929851543712950387183629879376411948911225668719877711983061574147371909681806229869002900425468128596050520588424234278804603483372462801500612248064469188806359312391667690700687856049637590608780050671135369389861115622603351252421081024509891906962433802831960800613076963532895777001596857326362750529604167798847495443917372460216603028523824758013893734006675352627132426230013440230366887905113092077080311361053433940617501886771829833131953441713181459225488846878703187037083467867863157584773421588401615161696189152522513075920216663158471924328508599724671640801438284392783505081909481034900569762055457456544558113877086345172817783745104396440543713117618067600323533745582033105624916376980471347390400639163207042167820486173367105988487829407045234798576984624845776004616776437677992772436006092750482038825319331989789904795977607071744927139997418622988523460515543325714594286618588426015185118048034054119766726497767534787720707397035426510633606791683196968588068354443867827745453220081527467900450413941606593145809806086310586343380081027857738192108595987872936451413440893631435106314949950601447904428092586475638947071940936155320984752710939811112930582020466234097501758332566683103655760907793948538240086871197380621881343969223925595868536287174845527221845063174836231641313601742413713282656848859566420681006465603433117981439192596928281376149094057452273710508690080962576727722123682249688628492107164783554413688861231685301337767535403639782353319840727318602099223151792871958686049073803287440182773717438370558671504742909102850982278534289611207102179924560428931227086732007319478461085711501225696890381785124262132120453878832637964164634285025991126438634249599392051999096841649712112963343475574554905844179644220490759212326833381681260416709085470998234885529473470610878639321983480850506857081943531808399885405077673837964144858115731749617054569724059167355911676634417392503914993684897373806707938403951068847707495563763275475184159295999214200353581967097291920168150359459478219826439474814077311018888035211699875575210523894794089949304562076506489398166809129426498439311136805328528261471603531483465921943177331945309246048125288967776330946290354919449226564217190115001789590539817360802895704442812329741068286419514230779718263325977945013034490220259013250902931237929586047028361336571637221849355361346181324423370617610560341589045720328708203723281862324355790179385310038416337392097669696898755477305787793473274870170266790318555560800699453638163304191592396554621676594555048214373535505873251320757427658377715318638118971017679141410523805160666598928752787111330080079595581090261731692972263346795960270154690399066090021975073436450096411207770687047551924845268281941871564926073287861226118940126920390500304592308376578386938285336421563692736135721686656238329700137534299443168289495887377839543975907379913849120355979010772406796760581774179127489794051514208738904429510673499300165606142423124306627032447688016294224160439023744484659748038873468825600407734186214837445697482766365785109429394768513906234466928235795072431208193830442648898166287971289906816989935370944193448687477910308744932104803600252441695950188328681490171998792362641493222240798149142768802327084475945933389214220300839877817495898780866199711223795831193577014993290336961568815224951725243096701720127159309420157270762819481540033822360053864463398424565474020230794329493459270394880335172746613682473077066872058643255617718884588564635115312972013596189379490108394616370626790034581648272292216205625610765025701268722948832100386854364540048126045557790287659036227035076494490766393242490167852783103280948190564781945653311564536313648761564489282401343447831801655078598993440882895598678119073700353454570813689172459198378192819428420359344583906986992240554148019192202959953766967107341311785874071681325149025740707174716735078653255277190018279493398300256260162781608545878436221171474421027742207742970108308577220435021434212308793078409350959196582320438043345325318390115147410511743767745215901178358317759945136500588000513368465701538859131288566902422106095483773060771317340124928298430719907557684506634705913109202850105704337036883687366046935398703980487326590267408689072727906382817231652658207710489915525591398092706909841083816955596203217337270905802323872229926932248853204680829252940742457897733250755098923434589851802670131804165420242530258290731373746686065830261972839813497476367311366179096914479917477262194194424075450663364046611530826717885841252928897636956256868664929279806061189000779072941606487321141856230442621181063512616367225547961521511204318892823073179946952390048891305518632141154128835822914965551528993532083769620748433513654500304746142567534086809215766020202506534543563211698248646967336426438372526163900517454846531550887024191097201798066944359350814791940482158739271218639827482448053289622697000411819849674680743126025885080183880790018707394821094602575668900219549003146370095380059332938353903449331331830286544373699981711011610569037445504005923593756453386686733803416252532368794189517934115959043304682143901362818679754843344233986040375905174957009630765701401799320367119469389099989010540178622869059173139260216748264070185931847231027539549857761049454891666556408039233929315590209397567188292779347275425489036338398557811539436357643624952717342773434444539654979032894109830207277081787160696554171863657855411973175736351915518519199641622847536945028369708748208221010538246792951725668182854580604999483750866658658662261932021909982003789784074756502089618104693605951183485578768490866100723019746975124718672760580725426691841105491132516649363781558022935944250258733795084945549070091059929151680391649965758579122532672559404288815434513751984694631152803775827412280124443809379030338651874730869666399165031437682295357324923768320396648407911798734221598895736020883418291433692563301901675040106150420935978938600006549449006977408873554221436495863886723315355955458939083426606490912630631885070565165670346737394356051949034056755051600531181506325369450113662613572915721285300170721820352102528598159294368591450935733617000719664650875910740099337701246406671006769614458466897603970183673863383528815900170875146601943201094861363102272782124359690508253880838332864454003772331622298111847878941399733135837972491484584815541638845269843183293419777665890755968806570765450358695306099343796393383402693454340487294678812061242553856710612964271053650739082547893857089269549928451366371784036447311174996408356065593134859386765520927575562896320405480748053514886209082580577278540293983434866821211869819984652470767740763865780127260210425554101543047748085494564015594979482145106873554107711182469058579584072256286796259599106547335401629939872061069958343652057457361564939710426420349255533716817409745665494468820043602962165654949942159982350334697646102742617774084437235863500941137801537356485124307618056472302887976441600160149871507988081616027501361096045235825528080884107981630877164065863509909321735498669951228502028741810917876006581112232230354275649311789936092502209331438949230184740563680760139633881620614845761460930583417750721187914393056891340868073540430843118538180357121939594154066596903048502613824760797784952930206095762900953815570214084156724675514644822775898674408718633105720911159478267058655571025564289889487186494373232051199666428042218960181843956705138859769282215629378591969374115103003573547462785129375440894235525595821934658027466726600282511974903284737056263120165807706200683852190664916043502617707248931895984968505843418127172696467522680511636081232034532777946647369224581178746699074713641174676357213349745075017427518824015459511130922212948370862489219403945816400554330542515094501547867409933749572284171161542758554683286241599907605682179976513647572586977551191819395217303261745646873725877044731643354150589965933838707534008395725598680160788097222325831072947902579253046879808523569685857744201927999675469493542847898386321915949088873453761144701247019292964789556203232364394626665176901024319462215358779757048142196270269208896583291509069508913084756552696760831548943637696102306749640584817628545207044646968993083763690810053661099758160337565387358596795611495121736289524293026791818710229051382289486909367586141914927034868324880911812426983219460390186814780242727557600414321368943067157416118953820633934927874357468895140362777376829825950596910151473872100834509227798312649605708386239332942880205945980478113063120662027453833352925507384992168341474743013773786668209975989187245445424672704782414005741553795259030098934860484099274941946592701984827576297430757063650966967560273430238107042955641164060798146850816511184317802748190902024785336835206581695167490717212082563095358651054219570501464875487782530379911057462517732529101739719925981631541104828101940654935284987018083656656354777786615090216316784456988084461608137449476919872898609816260711099715003620157513991049200912063267729823521687681455155275024229258277167007485457138316310911078880805671079271880188208804049462866090337066829243806693270219812560304958810005687028496772874100120378685231197300431680849948610993819366322012591270053838390638904414244871362807572853192847445386739329677014961722302759284109576879343122050971779318620368698182219456989877443231715211696413274350411961533709592104609319518392183352476428987145480040188096535254501090606389857363741053253027789275017036153381345041881212538579466051738118982445364771693613017155534180259719628600320462081102944885116909719589118950895625035392748887569536599968891866623613068957398658522122656007092930357638835945074064458263466803943251388601602413482639725512489936992421506838420047208196497458992392767946335302107703653453217591431613346413528306767324004822179201530926725940983753964917209540350033983296508543114462179898222059434582184988619111895010371909265370572714797635603570752709808232342176582422632322633278087812753807319849357399150004826603585497934440288169781886813516511727770229146468295191439328333528038374134214448840986397420151150465845138832851644481453637296550506311147644691805318262900253150903953483760096837642086932698639581254427279838538922031173485017719095306075069123607349344484112491481928214332341585245310688142825853480404626577104964630755777817366425848539782715816581388667032362184994751175947454778174893757323446102706649602457285425264013615770796762032518127929471853316164291222768555207153942785394394548213180789821304961146189483747579388164500304872458198990785052983151978207565077636057156823219948016606882492930837671283113380864886969674511634948802962183802998462118825047904221406475951218583747276560887800308452846238350923456722181406614963807959705217882773151428225001089948946792794931296819589172057619084759237251917131868238056350001965516453123328014137604669946689222344274254976161214533136796766726444221731243913015813452377193820346419066860851021479082761172744660978399419146644723092914822576823629439214583555233726778498748265131790985075770288685581422684164756912119494211719420059526310096201780626169717083609327609524186008368615867860335834231635233739444515434240492660441105625745014394618374662905639056363736546401434576180546956525245098233633396129809251557727050444592918128763925608554242447916618716642638036994684696826898470618322081721486982799849522875133957616039165420104344351191191141672642871050862793868670912551505466841066238250997235648606731689659992272801198776139141635996267861715587926762847104246476388323469055050204518071220364811266268422799457180199369353823274839528637350736656088371793944658938785508866488568221459742481629051553749630171417214550350886830511115524795638235048799574040123201188449303306119214750347491052684836884450455649001726364864527090928443627523150561094698404252842824600289071346080343379908260031492620699113802092554608391723143536497124190381807694325803965981070525439948956596363886926941587290260909428003652336550699723810213246875888247703060504318288803264448070297125131489355513265222407853459892069877380546146091001116771573472527181373548526536045129326565681514780747486156072186353420040243377960738127423511629675765561542628631584546029812282106883483756716559969159806246293189313006411253480549036619448181292942095279465277524003767792612706774588544631594125781502993209625955331908694907569329940930405672120241966120707105088153058980634138692756487328958378158994389616349044752688320313354326341105715669345782846790854285863243950727793803308721741289768131937669466508470656348972957794220714933387345582543479561273602804659907026463128835655258856461971147153164137518680903925153633578546601518896850685270666189931751088562566442882550188319429259345268413704991759977789984925111262864745549784078352479871908684884529890537558386788868636876065470636084590303205810850512097970375152064696092143279054549995110557457205614377010746390969678981870955100425784707578457766079769550806067852549330926158850161821298071307178241300112832034198383731703862887309315137247721227922749872444114371733774299952867649856688699283552764151452130290741387470646748625933849283856439867633084840433444174560668035720210334861584615720392594586190310630275282138583921197492819293505511679663482270621230898954437001865125240484033625803570899562592007444809818701133915246708369320754818287762259000601412657516527081814402667363974774810094005590359443518806181535413953621162522056692774456438633595456393299226435775549261752480945486980403429668827762359009633191341131139505337825378617053250565432638801080434877149463251104923282897223567558299137862024924793250126134416429817098278519849791383317987799441863512971548274173042041724708588603293422791149002438387110766242545123719796116043549428704904862123799082843378325312381707073597465966072777393415399976450381680762661592139747556313787329082537823334275442707903312060896138410360048012689077797400443232385355203163525898749216202027121901434132066855707144650099007293683480146941118245319603071576527242115346058288236255170413309463548150992877948771494498893527232999153178489894632416584108419380953835765864521857809773391937918342679028219485007247913698730879571536339249734879612979949735327943097443167773595599108116307369541142527760934451786242694976625613707769388493408004377555640305443475028585255868673210279351512271819868443099680347711002084294039316139261832488051661313887527817617773802418673731934803826254741227729871464196650972692917921439578170258425300614204802760487580962947606005926054446159268879807873824974775212305143990891794459813477337477396032550819968934735288487642901946670938156202521065272055320379136080199274589634576430436249812598885443180338522153870491905570714102549339728339253046767498298893892292764592267025166354621643014424018104247262599095660583706777309118218567096580100817096369240944645803478119441228268986017092399146330238682119593328753404911889385727401430359433901579252414931924339892582901109335177970745743983231589555851276093319874214165791059881146019788578860886507039188668367646176249558368885730972830722271899108202617902083707248859212004038201329436564178393965738390519686879891895938294607691390015886826993518848312633262435245757736320392720165147413255041710287237593514715909292626499642437549032245235363456778786514000850266924927627896748506499265599872825969833187876252877260056081691672065871985995745089433508013270743478678470840684808692314615374978470041849411375137163365683558843109398355954553817254771327042539278147444174062478470072107188084685472132137695456364774626594216569729801180699398377659364635155907629712641149639126731525657024984141611524322010738683649575343911223796499931998942527386705773555278436750637301304789415101305691606205948728769937846352973506141734428268332309634027800965733186095010183565002792128569915085915968645910342716173864399764772140616545277876789226497761514238138532882226610699434672622038393504009762125058573511385127181936279847909232907396786345690476546925339557025066300661301575454232385639095640284225632360484181580086913624754091925875329465914597847318603027489993812322270601722024068352734773094569948853106601367844144319659012715495894755772869006653834588565384603357074119872944458328297642772891281478876356870656641232518777585315132874718943561879513000327187255360819132854383561242168192626199676158906293792326486783957049705339197955770390439255313186869044030186521993093499986112082437243888395068328476791835588182347239273220370420997831693537124161736889330174669578107309078629106194966054252687723118801217964844061963787526999906233778470090449821156836794090441430023854193033044535406405517578691458330242486803585138537124626484818890845356424272039253700700513624183520173998750477289647133033444851226226294441249078148809032860843015926092374150684959134954773739734292027348459430913572437773989455198231091432658419440765545296314717426023185337314394953565754958449356261608611414124708115538523008680563972827477544726789893113532152119104810416904852300005198156917865488824930539850404104001693839653178076539003536329605860999226307321736253147430004233887459840222540397713317700430896444730116868155862190688918034484767179340022561218413324548004483895595460541742204046445282387585086419743020116918707121681765560573339574237965188649084215087150518003192124719508350363799737068117778036590604726072484023684233566970407390721210670074115621726735376360939299340396237876742358092769054609874208677943495030835346642649777383894441581806898366600290651771036497681676304010405718830085384724004701001212902940668294780043439061528900427945296000123327242318442650254970044050860080617230740678611386627914426699200866862995653587312245388499318589417474877454448346935711118532052130492953777673938712195093607808031822752167449339193052259343148516714659790209565173564054935336579009052905780044416638180599888705457132144486893748670151727540824848886077536946794692151147904908402943265164591691297707330656260295272113359253668175585717756910645346936450210787720309302603770257698248774917712755637140511573392736643082565926334961514892619785342528836447175935699865327055423741680085746555601553959120514297858600225133564824218717225364368056499074315806645239404974082420741739379664221618291467708551414174006677349764566718229995001140309687201886478074325727337575074710481525695083450193807913410639591875176419435089386627743726871683702507011619860247021580295680299318098583462825273799648630999700348440496571359186582967344565720903423620182482436242757603922268394984041671673740667639165379234568035076376519424076007037611835216225606053928105652469946081523644776706874887357670803098995051960613455239989822886750777741689056332880979797116368223514459605314338844215087854876953723143496936568812979117469052562756764011197489230857698161263871176349437682974364467445705851399426189101277629449135669701718691248535289084335073835181481533546937713982288103033693801623989617433021844976192352833062489196242315291788376215995516944778610364881287497589349416434891194436000082205720047795572022547639186317749348628156421774342527623574256564789536219332225147104104204504056958891274827841896981569607437574034141394142415166589153646877439749591272208658764803631768292614236037984474036206877730470824706157440448268558749860945016573828835541697024478488395310246190858591710725533484446124863208378957735889143360706175214412239236057785973946992830877256653518069832863334081421329208900861177340927724374234649063540433733559958320679672403460798960199222242395750396603490853445698333692183905116421046626584456834606538461769801977387401189982922168026642476440176111913885834099293142928658217331071053987093818240917684393664626137086720427520052612980777272886121665584129605872983428651348415468259364651979664800395433467788009415091908420867497067639135257074000347454170413112317231191241152823204925789903593816793879783256420055003749908517569158261680063145954737109564468583967463030086298460235556816325923536912828931315622309192578786305272600826105035397995264649849361582437492697753761533072834591776002565912208648038795838861718390828197994305520906332509983518014021228842524648006888967029616706413132105895757867399526999592736196186259851772724083072815972973508266014723153616788048172429888102873842750486957512729314015825437072491021707811578299356490699091552440916214561761580518997661619113905368051386370664218731595259653048324173726599317666989799045733598795362604162508159297262348505356617827979555285402664563717531448714673425988140567638929754150937051045235244069590091111776798811785446544380822032591052175870030727010301280674936818346340055032192312153331787625760774115959382146698373570102266423897248323095182409393152572909959426557446115239004727807876400052270191380315426088742117537511362710854864150701388208778388844304393251416659978891928797533934498823281981906635781406654167147993111964766379076087027587215800598779175510592935051223319661463670111158123241295774936051501690157800020220525715565057162424746412760523148592638354686056027610989742605867694249119014843448040602706570665018136691241447748098061870677129287193907611581283116289906988653402112232983839035005827673578544663875295728813238390181464408922009308082752851153556385134127853848565143266388654426701387136660943244750888070251885457729582941688401395241379983756767113848261004799157498517608228081505019992777655766111453319000446684945204353721610052875518388105619536327543648756078210800656812579484463655547658296643416862086164004888781378941242817150960785967605992265906555658611180028668332188888601507005995431142574993303332029871536348140688649426976343816812331759111846777069657286637774362661553002042982519570087697234335518560977976199922109103910530275445842737697029956081980114065006034857928541973291615625981469078507925481031748303188471773771311321781005786543548971134786457533807318988711788075024946973099347106913841974157705193321192491949332785043406328155591407995457676680914530212389483995612245575340750455302445206641271730448560311622733833588909061898267949165525062626451051873194627421153758794588757120909028479085265737007129329068420487013168594375797116887660823450294950723132046920054064468765355705361071429504159405780154740634629284618509354287951078287828952440445505985347644258818297899529917405299858105344207976541541093245417495942752570730587265075156826355067374762356812950669876219017378527974693826987896452360438930068122833728693984342617886627372472672112239989957308744525396181397826015686662632735471543799328201491045631103474354180163533008539527232195027389242455225499888437351937826179315041534240631750800461040557374326094394796384836682303087792871685103565874024993834233568387750096311416540772054463289484648004087122635801732411419253947557237793820605922296347382693636275382401039485680192932080601902124324260893533991967493275557844039343677126974822813707571963844645378888459469141855104183383718853625001874027129922033094448410706658132640213223950119595464108729812000069836156643948450080514305707483399018850051048458961771669796159642577110454218587716820593099701629758262294040873795789463139965034036473889149097097071302050897562845199400430989757983198412253918019364294068207685206598593510472523681143469370454522150846798662425204564790690522915426110769722139931508781587652279089001679432398031047116157603440154451782739069688198064679990066238252936749185368014473071146029912751828135936228853088848421400803551608086807795635220842575520039316687882609522268987330389395242307472038683383802266669962325083913941606739623944399807935227220005107718444169887853936020234895956033601666327435650832073318117675973621987229093374906469244780596088788899981785604855841630282251853463327562433355348630582543032216161740747267073516659827975997910348084305323067333590653058665830507158679932396872724019316438134909866654565398094109372993495430477811386132080787119161232157310220649710541661943114087904678918185694274503595934187439402467245243257527727475136199179025058490928502639671648860547365319850108498191367149071941781555521395346233184948235180523346136973200231001661871847592096950759207338403854831961908430356507018694740298654754742560518884875195229308696636447327283613761549981218098227352604222390658689553976727397377174867940851228527255162890470773497484264280727261434886741875171458586228415384297170981252193206487314041764699099357532276308723501550750186224055732630700904810134431727704095711132719014257172693219612479523738194483313433138931826139033343362609087770798077556111872235011627081473711652408357556464795314966166400995072552863819470701617034642426364751870423345125627810531899023026850393914142933808018671246995192107016112460616440693841873663880559154272944551238572002020297350285280011831577001774114888530694200196254239989296896507861711103777113654105186983812114889221307596363676909571108442470350716704123478729952816996932133753544870749659141261927732798073459237921251407952097031115418534375326109557488716753634465957085957627144927062746695736950308418423004072737495536663262061992910571735499652725003720340741371559113402006230052229927564075723635571443345798969367798936563458280677742360678703255702421534572823132622404842248380343036176321484520952012253054491916965021200236004680848306342948152607001098306008101154213038750211862059330465704596911435508851678670034923331605070540337463176359473744406130798723141615200236428534333595618655973630543634214244550275749318806569160003351723945615422961789871124980954480626764261563800370327549010216530675174173876289682671861053307201253898122686657069491764139693006731182293686570304985973137624959225945175434463709547758211548612582987862555881408955289333266769762299293823576112505000566452248463578526089075174070127621195419397231203121922627291060350193212487320332353088183432264659820889184225709462318729194854898338716301436869485709305361745159977376592627176045625603109656588763050213060747377843537792463758964558947386814176148161582315835374038212609469425251103152091553451707393970147210409081668767199531796438437602246348214846218429497625966628992779737827280672946062503333451552266674181435102283716973070393728954685216706515903618856081962190776562514247557292164986350988130239751333090721718007664739621743003746295164602799330015650868794115488723746342501688017006157637054144033458463412911056467160057765744763148426149475593893735475008225172948386269606523809679422663972513972966275403979523972183859766144998896699125654454835767811015037169882647273298297782153068247279177509768167628378795071840281023780844778651945482792627776448925846205252440897370468684142217714746822030543026149693582758966565587178111967044158662615611288480148589403919055432378284136983112443998631550172032451696437349744869321321444279427081839374091564145505113196713748651788265551760734333363909832582756860403906260051077718184905392120766403961552252753168421560034345798384886945074289161245196062253765307529787084966855253219931899677445920495451497413220384526077967929774229085272717110028402277746648898270587799114327687614111548876335849366875356732518309613338758430582315702982112747651919224709804275619628773709179648694115294910720078472187273633436136977757909311554072802963114287254698870180616615391448410689314694674170783462561771757321055041962784143676758268100589466543402882371775979560486232734226220487122054034272755451431547792248304894100437559757343155126736809217012495442073969129849140275706527741681829354600548240511482739962031145363913850223886202780739716305712922973346005006170604663279409697234836680360428648566205209230350713295312452421972466437312774140567505166583868058720990390956277040520276166766245521216444774737387332376064484825482153121148972295795798684579010936272131295180155334669124735239460905864329700641733175958911877700178501130430093517971070322242425494389088418133796176103098495844089770771091691232748728522927790492639807726516137536928923038953666539564716501421417323230051939679125867629955784507043738226446394463999527326963739945309559318123516236019241854926857458533468517100610295958575935764238307189968253543816629252237660419138006304495221222257289450831308989374256424112357191144097757097386318984099229034679758254191416697613412135836687329846908820993077902286257474504676718543720152792725624890291877563902624584025857568231849181518946610641937297101624832178269010525817006806957218150608921055741391350205000486239448059030203395552571034143862003684329178132862954229261324665487722468260268646942525904061839539914313996022315901420100698729496568541875755166138830502964743638950826245728778999390145158646064105739976434688761020366261427272559022149606101352344031985459895685367719293689898071561169211537290586311944831827359245637637776982999846638003419742984430299132343582499105781678585791317181587839684599451216168292586432785014365557986326214611409294377482743531225626255923351746601823964298914949440350101907217215446553618270680002962548740584689057560029235401834171834297653095818099201584296219953041785916711910467426906800535275292524541949233041426728290053267265531937326596227003822895919026759274028533396459123207895588118668359119869041398239838971220339704745408536295520123270740056746007087111574170121455941480856723662943681999704706778323659436378296909616727713268056971159768920353917035950020463927291257314701578794426714456903413493102826088934957076703152252812621554855516164129898793843776235329025709890355588314917083931469588907975308444100701170411548047369000307893241605177481622638347431753231457265345688758228352105323090373526578576509124096304707232885920261057956322862325078208177814896807639448130923190104833542449554525196556565596721595787631136757051631562909774280816598572409628507468406965546128314986275253288738651743502755847511494702571919993972628481881201609321831954523975022589962551773382013350181870204673134644660730606632737539272015853639544991305794490485153402972858978555277030767788354627202723328899391808173725993921864967262593390142064788422712614689609557345594032904357047492328263713880030076303578082484507075286404821525478178010318289208267752652267687248857541578249213284402694153444230641036475021869425311156433533881815424691317969570982588949591528111217683982581753053108220780426190867252564076975029241143010801197256471074089247863970464412014726246824629615131141242452864651428027342797826497876871095082621013982917585451465843129563794757473244228633987387113915806004240858707564534929606069614497963747176469392169227950772830846964491020870689779031428553538066162892599583865582212202271363038688838064860009253501775336241920140582276738701390448997144578214036748279212526767483033813621032318257976335741289867679219025555234706460638727436119461772122583902537692631700582686406080943112662480223125701279629825910399112543280475518347441214639079410642008945644434934662835576664833210572000669253148741488848466329141419235844056358035230301351287810181318826184271417590684182748771681887845554479540766593545423247215165741963625490146993023329887098530748263406436169440998739812513508830591008759269830837762987620292011750609673344520118071119708086451299163359772153184683820114747105453619379119486909212233700316994145479258212587748865382237094612872773959662618104995061559615223936657211235598950304331452802934758991237335169248184697549040789367339237098293666648335448925401169333986633380175365319401403159164778349552124724322317861500447320526652910384147624282751027132935470575464009084058110887970572404417443737361270485347687826508857118804464308250557529681018371971060112915122654613870143184991673484286242247460432034552295378753615660591535487010800043414490331011398710709551457403956149656986767126484906267254005732032541420719820530428433109657455967787656982323117374005387370861766053862928567611853855670938680658982038203428043216241846680191075907089279316346926790391849150096500948495296360377419910562103914830381319377403755152731769900923279315901097309874015506087193866471477060659184141461541164285683321900583155086791713140172319771521259836856181629221321243118996879075329569613639319736054368112771687744847581440532909719679150415848266965158416327594898018224577318625228786617638600245290235233050225483362808465904127930507163078586039668216310948289792936489138640810587210878360957242615460185165597282458924212209684557422143282547756453570312135484017188335769257717619733635397536317646001656175295081169598096968581087076651257896840377084761530284843171847630822093754162592213059707697540652511724534171143381095589420737000277922007466363077513809966770279889141593363086724067985272450056330158608752907405805690753469619465445443480080885098842664733139387373004386934257767759987966616995362809682528949016052111715699367055442559111552895145099642732649956997553708733697644329699978231002271544304357163302313498926319244424299142719073513179558955547861848935215879076257712045307979394735003440988386570665930733786694523627569372354426481381982519221337042942984289675432629301120102990518375156842084347362309179398739161283117950062587489805402985021797009063858686743525731095749221288883704162910762945224434124940292098927934649371587539670188016810812438876503851137416376027608780517985161091319016656652299788848453125261978889061345815304940636288272454432832953546053595617902348638701548191816785553930029312577703233623296502933744476749735376074920628641989474418715359295832849653488005136185367332190231875441390040085396757028031859004128759887723803445174158785379591669465838643032801806099337859270417621447256060143069547962720535638370317352918139354902008273946737278258446876123691864682288812174153836624279555074956246420769433451091999003659470273605411853174741810290666111337938381012092412981822433049275273463149741852785382120112979732974872050768392250312026018019171809782943697046981716669273401743286751308305740590306954401154625957721159735274507550041110245530480147635895178184299930628292502233495537289832028695983557451339918261601958727756024190191389826880687060510148913919357489829223586297544178032865687693349367364676401503523377070078591261551423416018891615222917488836522162735500942266844104175318799082845052364706990989191516874613660416920498300877496657274167896987807287765767111433191979854560987958837179889614657877829476993810843467432991614368135031490642135816055586993969623654002296100205542730634898252114071185503207078695558698424457410173540221584563334943763919533245896749631601011473159559763765408978982184549321947218932948593977453193591954997243632995318403570849093118780253121676113267620171623352313354643883302238477332720670065314476753185811325959584414686312879267830074699437220897760980207495574612363833118912597264645456006329423760367660762249796655959918799426235228975490731727654922883143798701757664103359775607090368592379346232843822359374786561664065380385106359467899286996902177231953861898726335580146433659637145030485271193774214186145968156792476938780747469521522421780333649858908329758002024275082039843606410728445559247406765578925575733775271711284207266853741199289295938452751159682393308639477830781967111122020092358746192074388646941571551987671412558245940378561738855800747332870162885874191996047678491558536905798971254901783905699982676083336949913377166969897044670200099461479968826825522490110811403755309479085009048688595824901177440912817463657564590140286718795014000113530688402148875952974741799522504431740523732854167180364985828951770680715138045979377860159067124260816671643896945763663289048691992072452834682009074543404437837683405006988831552289350914013355367498470234376025991129961442704837585300572931490736372488045300586666084129098647834810333071949997089758899137356852280411597289706956492417350526526659522805204165953644110482489558738140111762415634962030988546441937395795023253865787350426302708606960133336102643540258600878331772217090599115096121072244904836441968941136534593114989606894214226419460334175191583820568499454566185493916090066532341319709206350835861045260453779844610228976672740389450361146969956117671296032123434951401962269508146638797961271502537818466104472324611856386562071741446008177385474568420122318730429931494873908991121918992590464609246693712146554368904255990548899203290269934744303199623047563598259902796634392021603342900087845121777645525776915865094838829351604939632349196203059910660167902242597288692872930504814149302844486517001380780307924903352853103948842271662032147596410499400676182795353545784644574604470135430443459565711825051821452156517769003890418485427624109643096576113221457702944982827953761923989717673049245658851901753996544747427060287857196591473831089859362706931621889132632628346311744608220642001741757144248199229188033193224244489583186987100246341546103911339504526260856002805773175137202236320005520798958596338188912484091201924518202279484178522611807218731653750417459084457631717779748962222923053523954537787112790560292495206491482933641103930546390446223041245441468496247547779428454394168480884280459013364049617037212342682602096473674773485270189225869295061160063346098503254001383334135660095023777689760357644455087608595623009616718154186350346165029198957825554240151484219706655375096015591760866947490902904099192865353874517965863126826891359498102460160548563905736732182945599800006601825463860461282751718908674977076523933754966696219879141155617093804262695456292573786075691934895647324819589401492595016730328817118966509056599936419404538750108227293011999491385922423481265025814768756404124363003426100995880870042552972708021636658146213915248316011075254638090546113995819242591007757004537481695343789244392521854278058371699711343535910647986378321924037526287143143876124949228084472203155873607389388559104714893816812220299959130079389398657357293527069592375182924359177937142412477081005781582862416238365380049276949043240728456100007508476055654966420113100848129198449554754317599376612995192073568365369338993769652038302052584028371171408514519139547080181055267386164277209519667237207915912842869668768628446867433949599584034288359147885956352697593867140093755742190996303118311851313423685992097477759859933227195536440612900439642238894735288975934675268227959138888958368202507947225798709543482842820228421927556270059103031615674197073843570689736785431531448884880512278174373435762459621644846560222110367715347028762278733839345034606502947628027111376924063796842545774133851723251591439717756255901970762568118222256478575823562999877080761298861958698410798253625035304615586895079594214663592884660846857922247671376167876981485577216017433469688371600790573580320800018639106756218882286642376094796072015718935020887347848221743352963856435943260829133103358057930281955319192741695481408810338065178161540433206555008307650332483376602064979469248291492641361445146368424448870080441604854017555308434954791368738869672795707384594652634717261765506745231788853551486966698958526874859248132972691635611345777558461301249131881040921734717772137537217329165801455757314576458767077350317360091206441228678496748558371459169314073383968180507460716840649421124959572604032923566847488277096675952303717334463333661787054884692964011956548813948193692578020195447459973892151549710279111509707199815103741974248946644906718075473225420918720415971387113358241812985458725500439910062406569552640387230897993020048013850315507590269947229259168722175166199507589871160798260114282262966766053289500291791165351438764550204096181965066257881777649812999437906893166290458417813889745570611198737987291123009564630260905991977466680863672652602212055506395202734803772510754176473103282823396431714328981313593124084579627657904928393866436661015366237194993311603509338900869600912828053867920635263715383994358114036044508887587256468265864203142721690473988832544464504481790869718804232589028574623456047361810626291048397885446354331197707425229993336684368886465266562994555276613768648342811960981125139995138847755285455380527021196340685071659212115728290876803887050050495050684386987777736767557580594836266241118139878515660844270561284061378488898218778328864261917896162708397871520876332694239479405474842613991913805608327740746818508868005389961078700370618999648111354625771186185122160798427946570310020081016531793157127499855290341233384458626025768004167241755319326807796410878893241986626714598119268282229165209679166027786300881148584323109645942814459439384001888222564300608567128249410776349164262518333944923009721318126991744339827081162699321939730269850476876300692111585844272751948514018228243737407002220001578423091674639755283462279930985422026268051853923085771823897310132734149161080362237676985375665315933310669739789382993607607495233556050418134452574243281116928758975461793961166585273050670932956310456738867289890441004829696394121592506596256795444643369937163011783204688239697807138524647857940236586703988055715828916088903656862923108014209083208399729588210982077567338766059477232084762766498729988857872527131552289078052202004255976101486029335257988398520749271375070331020687103265872089015911535152348553913155378519842589164717078650498996705821450063930592631763518010560151372322553692609076547892278693723997091210549998917531405924830889151378037271618614421002374594449547727164613664802704016341815265318598337754387522085048784482755782462258661325274583458380669328752913284409673071942509469260898448790715659233890716824247447405791507329553676117437382241859977129644187580576286930363130044558242842406601127269002889990114233307388227667054085628510474007870389167573278782552355634434682230536383340169355129042584867549218483557515345129959127113645458007659378404612098477264551179873430025114219475914201179095100311690364647459338232042203883918916278450021623532685272457526463027282209421300923687330303884464015118831029058700047496208885671143752403382148064761658000015017461687280337991483970677433803977942872691598430075578483160080251663754042565144043854468808967771722751000449246610328401884268615243858343286677440092333051987036960675431794977088521805440220097136634140333507533254949577741924112966358148167921610750517536774340419029174808775675746548930041636722358034336555209518454084391331319336542442894159135563272313535870109446048449494913657134550940729500795535215416267555521650497911418295196614014278832236980278238117895965528013099747055842685238650842138060557436703444393836962195046493132151932417378260241755508971145982849546373690374094885373454947669883896525460345249158627489450079319116602827015169311295336887367380345663696058138075481395553610549985065780883445631764212969365083418962180747943354302535667656662919899336184812227801559567535796189075423641812678852782115974391614113098774744121961377992160671272241410871332948324100697894216868023744432093168300439025269793701047222633115792989167625259043698914155579364082673645188581272778540578254234677866893633109218207267110230297348836863872033484289098950435253989410838036109392500670580698414533522397931886013945845626770546505763664962546197106119990576368157703452964901040019994843052806888691281403631785981691412763167831917330049626184586351586216234700768928554684705757966772690440143990878588631255152681442974874850358351641194359970039709258899782236347752084111770999106078473330799714108304769597138154008046118709299006101154808068836843726423565317116189823730968988200863573373099199609256182924961510538901139345706225013968785641133846529303379231531583860863282524943490729608756503654730179043582059065066110392230523156193520889049346631637524749838891904945025775117567787207369703956525948504360857608732831380335871919885760122548623851460289926195886108753574628614019562492573024104852057936784461154699442355650951056852949739705968255095582694120459973602750299514938040799588406545473188229479563587003280196177732580363591989057676873597192962138267619115008143836876942724436967739435326884725642106114884683527350065982307088424999042325105524388861458108500929880256780732476773219573316363509874026147846152100630912430602938000576020653110650227097402461546148544912585136288013155931145089995891780993227329659034637274283785997987082980613363613133623191762905237023540783525073629697472808245781543661607324906244027406767991433340761026529848661178823443485057728750389892020208982371493179079446468685187295043500891424251058023356751699803755500470601566572058190995534759289001000403818338807285862824720969714165227481563770668064514670074227124399293267922524244719718121899239553259809682358436666136815266288110841613564706571269499458840871477946819121362421631668065151385612450039665881702394511181695322268045873462875303118482627565614153116836052412374930296598501173168078586283005720109403899244603600500995748500457533954130143536577453217471805085584945297439570611209157347775926559118629520602687129850555458434580403678822954606434381788216154316624397553675179726885412018746152206555468793748868860799761768136466460634542385448592350750441261561368235304577336561487663633185620014141860184445018023224236502501617579128976121462759656579689294246455226496136895621851779923184104979979151388503579054417419643177747636621019229566826679718539007876912082797148458362249488427377181761593287979224963568375621038779525645670168699987712653804039732933440950123056352087430912468819111193610601620600377011330750750308477673952208961089642388796188836636257246233116857636833731941905466410972193948183800461986213686758342546191605036503965572570103212456605292783833247679254675428600685060255763790984262905038928659375084624849965889916740954328122739986452763200944816029008184754189286994933424175080317386563470852429368113788943912228286272046760118964318156525653668027605308913589088736775427318784931895813261186659567695540468489010442341260839089507574052575920497321292459877170644123034425631089820318235718605715715827678365629133109849254745267793523099863876911468765578979149380759007073656916060840960710770895221174026091282312687225276063829908282883551565959835799336307741445725467498058314844038812632852142112036913858591026559658314081966519177129365493443215213997749977218210101026093237954285710704135939752688275779884305266871038899802246781322906179671762453304905267931035971521131840751221080517540936387941254571577127629491120175800542055476767161039432142072846110600563690352776015223378580445833590188288995770998205949609973532639780686972944051242430107207819621649114603454190864313023128847769178506048949199863163107320867430260231073289236341894289967014478912726170087743446856736257018497444651561121953803610246320259531800279789575655152238451561592570562541553070880633825573100887961812512942583752928624991848485446543567638663699669073438756861660223651915759757272468234137749244629432734377923114696527300900932517301973092890614139828124284044832685987005908183158344745232134711575172712089488973615228990255073674895049766145402866476792589497339301176592392822544532365645466380226072434283334360235241096604087066373484805643155854614223661622615095010132730250555372132891855725503065520625107688338315962326373429566049835947343836441281161654318345269379221456972173556192419579218180107214133824393521210830430255070314230296432737147009375346593717783651492544325424157402888718084820961027478554253109830752485255803204069250571869146220378746412365037500232894742490197031177713349461695402169866251690226869491871998631368775463539032431326248817149511391657071584753289782135415382313926380233280963794464899050263180211704974462361674926034255113963621881992382102289723326135909223991253268635856633503962177744031994919091787318891376415998354540552038404772602614664121590595895537694656924365517682385855843877366415479382349677145699534035463899237800002259752956193853508109684326682461694278920315195777930510983580367204910007511325762043686296422481173412916207809053671398322022420750296863354826627385181741378525359989548305050315726918357733592812381827453216106674288225860646818554588252729460987267305177168220472869777728339744908257352486872012745089018334035873840023021383934851589065884834346978285938665494013820388602756058045515383453622072648209998659914505964438558862593741354540097868198282830268184374861557875731392935924310334169711072455666405180340095158532613040455641601145599693344845304867135509696131803591860023510220072188239131699096860121696226268980305675012036064834223681225807129307767975770874176119144442687455972885962887240544616331191714837227255943364903869402690708499718623140243625827336239739563684809327032972363202714409660752779613703306113068921009231409050429018544963277247007303079359048506727893565576427378270651035926740102530844496064675502757896138366261526480778253861933654059310563450416184410260954753536565925158112851401823158032844143891302601128071103729893109125728318256471401378649695104108712472742879386065634709647075052824823472795115474258301530310236985133091576988261885088518293946632307041225494172544379578200586439424137870002747109082727168854589394985546976977782331388206186709440141349448739194679048155844919452004298652642431274017959408890869445663787458424761719915261438636611361533489891691522557341596366838755796626863973775597720457690232331945679960907143062179345500940901855713351660965377362863744524730665047627644141455609668553396154395945170818703551661737639614448554883882164498334105456739554703636311444381010282403232193169940072371993069839130630083864275096111876231353386551157537806776664507635141911590952125130911639952598252540356039785223708565336598239310817044142006986556030414280254796944898832366394788836635872713753798474074576207253746870667150645656027005026420465634009623143999186182861507331692133808016548492883965105808733321033267683760209007544899868272578312498830157450522560962818025200159908001010028698015811115936078138245510998864967477772973238997438700606188426169628128439793518797372663591725198961242772661639547576774650227178349721204384078715040547463503250027499569853833003339364508121476891834936968884987071173933792330514528640190394996526161222122460579664109821404494156147540529513926973424705240182477638871670859157891034498802000862278169092343921994393039398534210694792410468972209729021491298156982514387092206993317661884342289508855841584575784459066934397026519992376551706187367299823826037164048644298381151844461345197476196963499218951827563787514388169341923421748400814423541691075685002761387953996650912479133355197423417179775761484286975004571247822299941736746947807571790303038349395949555984509451553430256445719749145664241505800889528557743786699323304052338009814606766102638621144591905370358315117577180050788538604697689980693006640226730307821933249248505979716354382843434858334502186555234396479049224941452393066934272055855300691535540458623807624885649068139164715032728207506235915140201915947991044552205208414802101701289953050968686505941011262676047648477495477113241102492241385738781975728774534582431461874667216917285454693161413136840841062338503115753334130340782854170392425651951504196520590972467522275297600942851696190750061539371984050578812487890724147706744877608986992391892670540276455922877296681692907882603361688476396597878492485889354137451207912605882511801366241977328769252458606251348603306872992452211098362967274859151421221735934406161149444671908681562066204897949110353402443437111355781139918693413915718916404956387950398809419454332511190330740196479454979114422791674414486394461223815059779129719699060336223522316346957517644220644706738786946829998414591978797738560350600766561471873895620305518017433961813150686492175772782715247474968759733275755132964248159517850442646631688667614692608347182946094075674469541153342160639988492183895025298089803755634530250145962824053471355967501773898877877373362548945161979705729129765871280829900201326555530668080688450127674699066625149529663926335663918684940357383692054912644202731748142655889277227545680909219539561179478021630483706152978359924969816798229894877877617697377019064736655128872324120625273038831802751301254745290603481523495791546357950524119501286392925806838700239504483238766553143409532035401585384836763692574595853136936141834306588178383169145442827283772583666420458247688667067278571496593446198934993759053425512687852582076999482190605795753523019180357538150331781516471024257814866481481826477607837422607205991087585962879542536513320377088827910331467453773272674709502852143047937507490563887477233076457508145413012673575560759578842946043566568805875890130318406489003465873946042498047916388076391531963062759690408061614841964572169747682157041883706030322455486867846278202131082058338336256394813136770373461375109437964098700393095588702711852787534122300529395159273930142327603272381509542401807603100838199064672998356757651137502440687069614705497506377081323240413651744573439579090019524489324357804672267522277448336564793793205988121936802301232362969292288706924029348207464342175947703677791469437843527134449352668891896440619221225572746367705558988049929734523315786119596690651459041969496656220284819752080863599589876023582631863324968485532119441930209829488233621547135076819416775129443949481984306351697082573386153965174514768167213551467444714336801834906475832208884800797668473599256132133754325179289742122183801416133568949148528519859612377967400031842449608004397396547072103222413555124016741732853507566726786284918460071377608687502520114928923314716438058593567355945687599959931773505531022974003976437332688223075497639269052585125284631731260410003651634922655255867884092690486068236505389868789972956105079008150202991516332247325895225649648691144438677134507893493962939223123220797055260728631976401583909625118017797327814471996164438340031054004180247067748809331809247811021388495258301453104626791419852366493840673352903170741948757942512144284656693655971447041117197869233717584893896998734277953757744061652775900541597642586781470859113995800096243499186797116497157738232921368573524968449274957363237043045065253944332547724022597904871159208654412717671317413460025648791899119632856707991022457039162328646600572355914882472972341286323573688825543036298427817609755966543314559012174362810062041797068982773206179228607633159812857673588972939755508100566441398036561827851485606691686567551148576631890277665544200854083237462300106719018231510339653014410357376259039100781855859452208565230912322581668149417923029579841041890452879995140810948000368895691983596774571837521429435575917299540885043488457829858871361008284066719047531580134885984016982670996149881672083985373261278146814812879627382465266761702535325161516083844688475105738763988746195198637404289776609741442028812754027184485087859509977378279215987186941141212175518608136781062493277654103034459184807327079897085541351664141315591888939882424683539845816941866816757334251728173531886249321804430831498924077232910562192226472579374547983537869014923505426392463293764540660167666017696226339477123712654814737432753096896836198062217593427019460441819501792412895667282380133325030798410377943453928309455047966762797701302443181130598416509033336949868279153816515485754860045644223452861374871000770676706751258959575018308095538498692426935133990240885454067580886392974861328796108744978566908523623293854558513089765679251678234260210737889528722861963553506346739677395114974964199018715209370578780678766967735678250623444659282599003054951643271647239837550020091800178724121454019456739125323754114628186367729695621222975882772913856241063805453960558829096801169799638657843329434718804903502246525551848072405866406210801524981237080685865760226127733780688472914902515130522553927402913573883184005726424111324273300416990835149540534293166021965019682060333292071128414129718422361334957327975090330070364869633187981506241200549291447777161566633583487834327710138662521989187497059031180900397360710449316263190620664926313203525135287570953509431407122963326918935182754617725077823824012292376770075766611831900789593697471975491519358277990469855810958525662875522325529362500311724846006075051413743364814120038888475099496617017217040937431610031683771349321447176385318630490741831328287459687791132013893961790925079003874010557793351810099629885668980031067030977043762157048882020026248254842871692062760073938125127673462662547418715928613047513256668276844400363495193990590255907251420913632926838538259000283139215039621673303976618812622463193189576733215025449499203398883810868947438792654646306679873559415785677371405836153901039446152795908190452511885992391639182991096101215141453075200028999751987529316515055527218228910793974999009652302373960028494796478692015222562966507104921934637493798951418248553968050251428516290851885630048081786519295463257364999471314908370516841857619743005241820446028449806076478205376075395453387167943965892481657838620425400612482740137864934629618336164286770996092255448162278831338835599155183941521505369320887887964428053419419955014872744197375916500937105986417034295665227342689424069722781722712735980721760742436558138828127928293556096745918744498479059384443095768933451579401091331780581710456582831490994154341286220290447518227315285925546773733192860532231201918837466278602580182927643152718681813517304519434155342297781574091291210653353872187662436105620037908075595130219885943268179222985407705067659362675312351335035525712419225838966664389960763926874096466556234412091324896105894879545381417053622228305847177045129593252932574237922500849002177430586653834605643537729414560684621749422842812366459602854634249308176398147388474400462668059634866105136891970638908109017259992634242429935107911919897518564948256320728680062724946741445309127151102419523867285190074825663734165884964655818154233552828929881008247209810268679203554900103712552715213199396833834303898556983224311012626191944698006091154697772535315228002203073692786855102473700818529067509188532167723004982226849371155398016921772667478978508155256621261023025214013964903012470634734767656884690527281565863406313834239552665272297452562816952823973797006499313207885406658366647041543378945118576760270369614032154886385367631249500781814343027451992090327526306931289428587813001791187556553739238362629277860252713018866983716002553683641535507998948034354257380109569726222613056071311069294932286552087164413456665544685270591685665533269621780274857575458347452800374510951642809316448817682654857844679560879298143799423597444970868614479293570444667249889505315767975703327831133232647302573420736396283783132285401601092207880002855278096777652748059926631307666369135677140459739000232949587789791138695214952321828046239123327874378815610408796508219225358116432803854746814842575192990129026248298163322013415691546960886332117901518849578768013140320027361544967299923345931376843892343902557650529637530013504034427545339228289717200682916890161178426354916959527003299885697675840450208756994088201558900999336903795844212934356725316373355164185912899733803822570077772540325357253289136579046440597859826311558443603313817774915842934012540263524808615280902839825843584119332309332512755389338612309644203036614517049750194125682152160796870607493065620066173699017865550076549893356368041126776722460079378719782367001718097415684310226941519297375780830875709349795709570393152219105515731457328690502679480499931425074098648970021774143530713733214519321650034817056706580616601236662511638808164096104294523736733820358466611014127110669222683382904690621265296706087077131248998527691234554956299198557110440979317963452418232761897714069956931595836864290366071639007100147315008997139448087664765703378477262249415968158550611961640814343168309888443759837212368418356223647723115563710465372593664143693712798675163437279829643841529097087916246672617028555668007402614344067115713964653753208172260212513917428814846062638062577767797217470288077186553687521908438542759172828143193275799109184743176280800304989501624940380223217129149449979814102187495025163115515687586975741081206938174512613344333507799600158532484584009721240048338405580709748301916027593254582259516527468082238073828763419631343241133062875148692830554726635575267246984966083830670764319270526148447288029926265362566939671643339960224654806837054227850000237920244521654806097574050596785230348978427573042976196544429994018779624078126501803460737985563050268714663519754959541079345868073046638438292463926708829512575908343049770333800728978340101279004888088254365212179495393233072301136517906808678488542520035001026108451524531422764501937650420050836973650318553024895698898290238029038840205863849559893921841413037224470205471930884423889683283943439053601982609614494228608075491454391661601205687186292017790130761859135496758353360801991297102337638823134975890173893253252325095247904121108598621814235837964025935508580099098119676179073647050059916101573285848025451865670974622592615853737977464322763441775047392589248912915135938724117047534824379912547540084583835020011657809897943259657069394371331313536093765302343673277554817232895717169167058581974732842367821332210619985753135788857568790904588208509913394474939232698003478578521650931998491739402737933938814894865583136743955581918806498881658291862207876342963935689754497903791413954396899454275397245427929918062860763930542377114367567706429090317882491942039738924714389983583339343279867434584556528035138156917179848724588102761316002956166813712363314409402263487459598483295409704417119378087434365398438276275130435677673854772774524392812139797218419071329795158538679226193332728512818455026051596165222396714407113264617626883049163804378722248467825667267579205018134832477654033847279413089981456225355385373220242184504419402658093907784458525690321026137136545218696128170162321100747781335884342934269821290859650211106287545528739080797169649963421668166392725950997380654542623820806422060537320132414439082964262602693104359661165412219111857969424623391175797983484746687775645775859380515306360538006426686572461392561620616295252706181447942066342341617299544172114045316122466645721338245173073211337976286118221501023174817452659954313993795774440025578599927440745724680071637740382776181386202047158475861193395759327228228551869574294038393776682313578537786732552070273217985614225249796156132610975509845845348093792772383352441557457732905952966479917593400570102084646856585787520665094148135145621789487202439677348641076471528002886212087509217724571607819578967175268729003459805295282504184712784675822433847835445778326484063381609489023094565417440682590690164363802217946212899627493082232621347977287422599146332731512458412200319664039905568519881440879884460447634632619471577397460109282712669648840541169875034362319570962948305339189754324946640598435974114832805104877175331942080827870885387492619772150637593632034222145858518808436568608255787722463280864583881765050705135631382617572103375625956173565665888009221945803409233887941520848700999260358792724069363212657318368258372060602797342500708172857618825693908227793457351837910729614640881378191332959140373210856787820443315157211196806648857961807447152470370785008119970917186216648452737461829148807564728018152191806420205231752915270548417128748803176113212913697029576212448831026357668763338226038308864717408183707308168732728041602094910238513754237603046286069826265513207587268431289100065783453238902462190264776427861433243654757072776652645633418718466881853096599121760277787430718447210789841917464003747617201443126128879665598260717321837350199525117663377346475679545555339113452011392240723877571111028947978451938365675845938738971126550710655464230701021018926164252555872534837878914704625975012617799806222431545244976930270382384830573259588152037602627214861729699032350021994394803645915802191089935424679750904869250114135452687501812890497685395857925138047785937466962573071053297831391729661196715158506387790371383776429162051565898293982587643484271609099597070980482913689534898500276653858287109463016523305803934982885801268310974185957025787201876607824225054916037609965289455477967533026189322879484621470915694223420708958134891573227303687354548214961152120691410291801843285500764671782524686740583536315639416107307243083860847896578812448808255732332711870892206857666357924825668024576136375997591724775342283247024251773793477977485913660562189893813108625358011613292241479838103261057226835399223323506855119626071963795778767816400029592909033426592119418977164677716804947770943785885680474987651135791567152058180515983074119923158997471746267158928153379812056644510495657421045643132918326644833100282425464451256779853086007053990918231776181677100908798316400151939731244678541881853185506227461958726881159477100423803543787490974925719969263433518633978623074132905910448872362400999739974487529093052811010730015164751576618915287822958636517982317695049593991828762070621713055009253259641682312978132831341636414786501633305173968473027643839973626509027845619677891881596276223178644457550584727675285072193519418629545438269780029647360091074423391460747725856894857843984153941510071621487158176358568325290716549131320884158516977203056590927652918558533921924018655878237404140384938482063957676978768909786472900071533453282522169976753833677344529841958908865902249295816876336337273370314726032899685813852912194664668874717484486000472000783176454330836439878795349778306743990077237114168499900856379561449448317761104491889327745819384305931431633649526207678922010715766169221351015906419536764187508835237663590579561282387191797864033412544406836420089691984873183589308666753825423895991906687554230826977618130591695711424276716776965648522288640254644083403092144424295788456267367499930074662609612446102630505487591285830791466110991412825437893767355616475158741626547799437451021263866099182017566822345031485203596754059884601202721884035160954244476849785302507793833800915835781049680188039862858227373107168231483449038046903618373202973972516028849904643103550447250761710418478565285050215665450872314062836834592915969843308179377479349024711097660158031006727465151301402003665824113951109348851469611055310804229219156862606286154959608972040180557947848016101245011190786068967997161980261737599746793072883539021276759572284884060539007476467420389162630309986891644367260901649843566417667524860479528197879568154136408070476758158013069756666702781968980342627533299293976353198019800009746919773529112333565576667301897177587675438400733395609772402978230870461662105286751383893969820172115925282110555924539964124060743688835970605090998464311652285817085798322822257517066456616716422456571070129190029538193478426937241515471113728740351908047292336080196374367640395738741371965976589542147909832524363180032882933034829419009611318748787578400067326646761600633411061529634037761186580052100991054633396937079578434096273790077927868316953510118381797144213478680506209027318702256119625010176574867622099215677328876378200571346967154856500305848341688585523026425990781165966086584964685955708590606950966521984483042762412834624592304859580941767640348736176452689498765151837082902016914001061834924435836158262869821884550898467253970304625228734639287862745750722661739584307569588605417262500095759952069646312328499185926214184270920349921067596796407786549629126363709856934878537211446006700880322485976450061956922883458008261913294330893235464024458527192503731061469699181126449273113210932651660921479333031474063101366067202952115936907766259152187475077647475918360796268153305553417829758036389203632735772097640801573750485912259979489074294441962962885034307062804527618304699814794921123890646049678014751814682163854614808004860057536235485580256770456563363133253016779662937871633062806145866339636036105616545059230742030851665456272893028181021200128293549662264943843730997935367942734995310190595838128653223117866257532883093158034829496410773969502487667079603297405541710862350540102653325620738975222116541137063481441041142174963857128722693908353231772350908261510654216917712883013442733973013770666957028915911437814271200530669718571006467663203459385501247532525083612728151786388333992463209733807043633113921320489979832264000602158355274357376143587391918188050214914335280507554597048060740805276472077904847020338496429821749656237244618726947899900303376323371123710550005461251813439015677466853534497340988200064491901584336356699797934607050125283313571003999733280575730109646064276302530857361832233318761786302011448940956167707420271050130307838902369133661247174844940016087270194038461277050705692012682629309859155367511316750895979166806678962419873047058918004759103054486349550042015160422177537041334084810170706006723658525906478297454163195653716048453132470243117342990464945485673998931025605850813363680672947162317767783197987606107028970595112315055283940869192792221750884209291207465610819782156268740200339864389979279229178518753084537581137177394220981030486145936859237432428893804183443818127686855521275867142059509788616693558339648991673001426024128123544313085589000273695731974710804453497398596953500743236273233446192590753418690342719227098206983868309115926955012174577468645538153407401131863489362706848771349833766239276557028275619792343663372028456662383999223304984528770371150258693984543513066714789972526279880941199575987741954069985848861656345521961549084393251945691841387903772675406858311772790338651397339756715557290110769234924101542924463195574063400574092236861827854880294840137391731915558844228640042519301834686355384103761890987702369111019802118948945425247553083671373920561993470932935815170086983720074488739340398439422457568452995437178964148761793831903359638802348789873905782798071633478739511596615267371490893299006685602284842216086393605109794860582211109817256664213872581372484871279919733793589343313262860433900203565087910775819458577094169382390124734605474520126517581481208023111060322337957671198480370478448245059462552866416234106510342376797698991985921718083315890494271064486824660169023204093953574203728969312956784796282093514578751001759498814756887446474336832844413395674712039716275642126989068896469195324156148723667963753015673546470922555255292620547365803745937950830234731958651634726531533874143547815857010561765183607702894038253957639613016856806738096542920919842573301996594318357298667462948512130889292570413581485576576995974503121042306803205423818224119466841290595893791728139317983713558295644634533884643424177266573634129108721033075060953451038744277773669255120544427805013433019729382363285776216991441892963746826253558470769366126552460817637350083973998548335727525028641249732967865363877530053127607927354124395454664877787245236219989800730170036187329627883403076955136609405527734684997729202768507054351900982361147768520702955230220509246678593543238743356125547462874951496356425634709860642465598855312216803735219477954637085055154387540482003595968368834211982314433198437546291963841642018166764528279283472606845880407715731339181995422661793873316848415572563185257993751932457328544329166572598864861980948448839506488292095833307595465836568699688185312300268071306198715462789106015070971847766614598249996037677572835545312367623288785812493323638686666521165233277270113445834346778754128759014713298827221799776402512938126205321490342135548208499567815405905600248068827448021050953962477757028099804144725584862337111787435995588657512660062407032930322681265276429092588156279931382384260101556640131578494794020098201704647213948983547777050639180302541760448571657247216616214683078909547021615945454372799503120379323450005431000347348470405725499634629590860355980237929676155450257734224913246744518075540954985223620985809874464745410966515256768713419000494802640885941449345026760630630857946610162795429979946804801106819635459635191737810053912904230852764668302119615955355852779646616970936039946997539905485487105089301472133113352606719911577021384796595049126743859127634925111353272225623417301262559717009077814971600329675124393788354033729394462291113172847282587338739641132971788262181711150323716566705634465705271622895324911220869609225782955133738399141078509196678938939352301430853620031115627225656587405821483201414053493467932959033246604688775360423004736001659644658790673502096755921016714102413962427107227053858137677632103757942915527671339712501375127197597264672895161814541405047886780762267773607454312189100416073036314477158089131451635082720681408185827980609922844154485364322009454382684669084364299017816925329562557192781975164645587699246826253415626384258237716289822349851158146323568697260681082140236857284805336212095120431126542048951102770044721089831879299929979554420885119501379869483789149915297052129999848058986718654569323996988377022915743648102158349704907512623954638541938093650626751923002121766971891875174353511886587081926721165414050177809622613817630311793886104497012594971565439381691767727283507285627048171517114076111992141329047813315164361029198934789281165909536701472772490052366890107576527726285186779601887408673765553002033655630947157522596197969216256574790771366339544148601447567181441902040913781893531110083133010674500406055981955642850785964329941451224136655538441363864987873504608587373602859074312332052009903844176012696392353356837637257047299454875569281004082581883833220478321486232012382629747951754475781809696547779491134076995786459326262476946775309340033177337365795115296514946311537453645568340096937706909820345278193084320327890626696748691767927183798927772455846662511747597338119296357621630006558622185148771162540296284550650110346711934754194860170661747760733931790835981641255641994152593244870622556587076967484543720541724691185716616616972224933217594914988293727237304797669373400983928355925107292071928518950580550546598143922827150598599489264567840566714523278754429574115516833268272364378729810524615343950212350403762616205148105767022750445166126312794133538396103363621662027030076537239257292505382914016237190857277532415919159854086774823495369763126694427014703912190692402698386862850288579743005885115571646218668447271310546088803787203185985705833417913658719891299677817206580412924881056912630911372397045000702356676240794712282945729441276695675410404760023549188559781509163635702760119774356016090335413667853424020288559690967264875663056254624988143576134051954854011077377871779633701009410189578304971347102821750610624912698968800840523150091475301332244887642577071278607276789020862615516393345838435375642048227209351134943633399964615211517319280186660646021995697699333357827952622082674919776455896840675495475067022221947149912532750055544786317895393010499894652970851115337246346366983623308805521086111005153921055740901001165020837881184625992695753707177198215349867528675644097510862820048624792716802687865619031811824614257243813915522032293943229667253286579675491076157964324642894202511995894352206570280840347365383634363229036339454488087034289413584626839665737197047845220007133679016133348548560919917365094275578378611723212876425346400532899706446472694339029873856285486083147027130303684201829254362002255800456665247407129270615202547761949846155172418053247991493301444611301675536881191724712866374416051671155881515717555251512436609269691538762365833854351659776964736212687113545188868630315001376831315238829951352964051642383426946987868055258876759675764396503379053877820408803717998616557204351553860753951870977275350119095103372468734366342792783047455724254893636017241602821697012979339833566094889305358307842890854066547469889836072067274264176600330153923546812377564391527257618000871410079298238720367934760450164579919081356735988352216739917748085398368604028548368290332921560462976173724392252476428576886149695443855100559627259434811424182130572960514227607149790325394852510427748887563301563961353310560697539689205763886714309180470675090795537556274282609420632285177669530323409522920932093916461250817870179165183985559853821759984404881708095328663266632496336522544178943242568243063701884938994166040114990123845145449984023882414443856791799493731642482317649414363540958314013348715767689309104338167870347274918792225773281992471859135474959270059380334346847210339006436479664079784183394087804270823869261101515599417242279400243471780712050111903257336363494054562059871251048575658134534941704227305295191527062690732153679890221884738585584610486954936552033239350360393767967843332555335795288191942129521650355104208486136409049769383334033483164258250218923860029034379702820524599652321943473889693480597696218081400993102083194787283454924419592778711337686581960108563413588365882843348239375056294247763227917585622834732926807424827330187555861572317248391241124074186069561420418168200086709397225576142639041614386905298708556854345876798767678791218063958467928013565049211459733416204566278809101489512787839215532520260264278278413324437015089854161285623784314917594032876785257082543703879106752713382352339827924479663232874343402464512690177101298001119411608505096311804038063333821237864877199835649836460320159791930172741083761222088981577365428220091863679012374405039792441744525026965382381830203995838598975292540761706828436736814936271123639137276391374670277410025783902983821393628975391302688035403475440491630499333342173255902721085355330280336357539735370342585189051513478720182887409458456568734419864801379133185317485821982406693037623880975648045592180562908379890124891214610951002789812793249960122914506172157391758297223012793410304365203418621068720426293196173531178957890796640525816654889076257385841194270985410691450089097760512322769779502465411137556300930880700860648701621820131411861434942504297952146116765308988722284637128493904805598061414870671259929256278747191629462525241713447774842913319300303803538568211645171496634193141184204064890084591459445707208632329207663181898481071662154165723117006558609092994343384330042946828775224854593137344368290438309890463319201723200271674738856912801891273093326845454368379215737729511729325096878909935537507130355154070870061378248064222318414830560446606405527753245222712291724309969854359456081443126858890418488111359480572125098494118340652948967779242247423502958016242730039119525209128855993908455449744388167556210512240113689688752050340624002362157337398237903325588116406581998789204569061316874497513445986126703042925543985198669954168314037753722702293221348242200792491647682156120288960896181058146810171383900419096684108451271028950246941471180067963059810836431490102931636661887049047608339515070634537749717617659541147887990488946597492563641595676365425392197462858032400854605322351838398577709001319691184943759298061233967968042509611900741533686048499759860715843248756981941534689567885615394424634810260885063796288375167373906535973515143713211172561524100022349644297979419398660560986309304613556715458387343507314405738272277563215388885201704442606522749125808121333407396994522997162550949946850524826250020090136770829544877106038946531794758540548262691891032809856613645171229450879444363212433186378348376856032232136222006142725746664504648304745270768941911850487135686522864800351057046970247924753230022328409720088805367645057545147485347729569626611339488165832478423285055705422583492780083023478153654603938004161096387197362486824636602144094249340863854913525346466201495599483151896474517067347145297000455550416739947772615904869895871157014599058300668318589153865579506383021910871228748169578176121453159228607096613818131890310847201722924705143252620884753736852196880205966663937087981815245604051350888654685541561202111087667031823040067269714794676534633846395817052281532116898427895656296235236911132065630923446464006670793592656997216043891410840730461720804051289707817297782546557886048927770645416213210308618792327897241594275862875905856522473332319113341454313434720970481428711701830188065234923194574535308088799279100375780326457483975219621006219091224804215335574158012904551611834412116703586842693932382872878103205459937454077274427015521643724532281309468949914707184785610814672356326951470008680939274261997949508700004854215362706517939839146838343000951388297897123802981984710049720100211843758505666144879275099655542645039649228093232247915001920623380675256213948077166178782396632885537847982783917507457776441641843629154431348131526790147518251573082983231015722047778140593648478712607567498992798097716125528327671523725451204449541590102616766590887253128839297375849927834109486719691553606375381351128093650769334577419116847933216943960407575100215834150975593522629073436117636861027491065867635449314047389688438924380922041405316973819951015320630225109511427380618509664224856538328991823832663636877961516988136588821470000268097837888627210522550713824016608089960263949981756234547882281190126530758922302031972733654354018955076927263051691931003439475829919218437325930461017046301712059252941271378166932389919029810482940144794656429944922121829398122303997777751835233805235765149634575629744419830277771154563917720578568611959924689557112877834151294198984638315083644934522093135851214618493544365105277165662513260692215552724936654325195286975085061963620114504911108989282108286442353963085914068662968415861956091910107128967963511879592641551761221680587709459015495505163397510620618210059204473284835505575301483324655217220998230311140986565641716578959867168753121279370968638665823457838098074812852608010259209723144865367110942830541716682114891288319366391203966120765720234331163835580308864874806065090000327267405549822211589580456797044173378048876072390834661019060472991118843859314999041767097624203710439673347986174848653145903425785603048884588229353994173914957671359182704799044396128493446374646272344569530796539278159571904118218462753019731982896765871902742715064816673482309091384858122080655596568752650561308495747045590422483538806360820031184550188256183353830610508608240457421019723532312428469492057456547790839649231031717148238519083844877636927181009473089162172533499413999875369676116804216156025803447430428342455366731672700467911073272291994279804703904115108607805528701662861985118698053930973762732688971476017470946279775419363433739102760956175811151435443644236571401816679968862026266632898553455101612490576285475543740347912382111692546813834467771755504484567167928367998877153601916392974905161226468965661497030519154480277170699309670716569178831661583906049883362254826615602415551722482264267222675679866671579784874020623977318394769267502733257686987246211323934155440385685584471959747619373118310204666473626603274827968845242827493508894927618982147350479618243770680111307272931244595706146669880391208934925295415762491527875763435347266774516637893017552830169729696654387676305889659348700602298316580332911847387194373956964480258403676047594721034676729306546303758669311194182416730167700915007269468734763949883907947365651064747695151816755036000087517478560619688192213731071944477936641058723785779242499053567432512969976282802529586739195066730194262085803940388206160410529105462122214591088796297828389295879406557957651237401901639097563405055492251031588833967825661946695534397954825876430932017492408160490556457030978314680215154421658414492107014037810009479195125134952072590727393728154991223206112846177957382696970248923499347344821825684441961762784257220326483715134684781865369776172514868847027054238130074179326860786418425170312503549299094948349593710922837123460098972278400262067234643558763342760977250523672050153441756354025810448771234520324113396646439519400098529359627573709098134584989815487030583314818299299410557689229181775678595163652464220664340509329126573781169755879194775132523454498401997137191490076580833224293554835986692082027067415091684476354612565116573205630008001341537742641073442752167560911744711869170411229011870370590512665550159402109495253186878569019039946081857441593933315550499207916304538498959990583790762464186357498554328449845970872661321274251753010711747378993544773106553202436008745152664454406631769635614509342040079908685304059162498535537759845779623628324455014420841762563315554631657157650117184848987326987794481834501660807731708970821844376333483256036910695784826125771068360841952137519114800400741704706122716135797442988484895010203029381064213146169487392080246355898978240427772373452082429268104483659530734628806128380851955412419750536312726520664119929671229209748089283099012543938631159813572815369610815170631973728141308920152440965915852327158234322996566264067228522992615143028598240949134674561462335423152961079860558247462991592916972803886361924728049541373690339206721251815978389335375696111681583896686336998738476603457694857496402392338549992776283783846616997386953928151610429899827504261273344115698815729736500608586319435592269205379381170815264339825528833146983097410409729813334678656194794224837980683055655458580185406939336373178680550643364728727979507606741554159287306315299083004314009963285779811164223101730374065308971394182866250348395825109072095246534682953605076757662822809281176020809140825842979005312347164687257932879870596110614565983374846317568525946290507884318937555770194853947129331488974378533422016207424989413944839587352609529513864451391280383961403572695811143950357339819245566883183751031312436088471120133627724118444070705508948568034770536487914766061847843297644559818716395084822312606736914909761706048787789742186744843552832438556207819937994836235533051767715255353578798671207140416997501281919304336218142674118118297050941295753974012426480950018740685867707268156284611156405539505417910683811681921397890002801417266613990663707670005310067444917172697002743254597719767137284403989164672345119600386554750328539536793031716317755125876150157178487747403271049522033713462972863861350474524689347718713676864872807440519146459040948984279642608645978822487952909483528299676284750122764790959517832695960602802221880192872129831718280181361755660842533465656682359233072314250127654453129611119679554019275368985329930462293698252013633367833764649910474754373264675581149301265945425731287100265148475409346454142651447681753741126105692097087916369906143489037828615924716324395381770248898246428717971541584702712219325019989251854661147473039120240751490214593208417311909993423128109052019149675100341234705129395330698246613269581531451801964412493806875747617481299566001267181409208648991055284688096621264087637947571204324789574640414479273207815479686316328567289772724390654572192962831888702888778704067410695210069771621781868874619548482956547045355039290414197804921897798315239182887259164815554195846788815653068876151790242467712361090760485318324378003223330047656328495605902682971101591742256512192091496173806274231932191340326212453322525888638229757823401578899637766141831815964964419032729224389344098928890380215175603521651891235745033288549415982984848944679944420250797442615926491891259938710223558475804454542824799734830538801908460983086124371315253448232219554519448031621960079248085267464389814317056798230117308735142508918873520004990063317486879631972259802360662818883106028002834019485450087431291863690257218701868947768351469511612186894908018488113881168595270525724601226172662691225846570146869891395096262796731377265707204773380819018983485618657234420534239179140121525891554819092453035027227567308991321508216166046187860826390750870360737694101850382199913554695080627857847489290182326890116620082782861161067065996586109559798781121835976726765945944926721025757753125105033519420521817628241802902453011299248675174124666948238721241948742911928796075631960403717972381842213715333934539084785502381638798265379653200481623737458068045218529710987271070543211211697893419265021470382965987990283166285445004520650168508503006781018275127351160340598796612541399593647615807298029247850397082508504368029220836278137392748053395013912996292816094555745650041405195684438072638073018898651993679609415396483336571546843960995776197065873854956686724532335228981112892754194556034646490112902194389065216669649360759061157251721491451397655666364572433617146528630452301834033359931717754125981514436947805634770698664165514770423899198208363924920195665135210491318208361627294443362735746739756911791092139079255914518409542921967506699210660566108297817658186991261467880791504024148529788293942258240943220796471122844109310064677848121441181013580415051887941568439798238243816393619681986509840349985761537206690635858464296152233209480207265155695211301145100765422123529637295811206430264762692101945280007387052738107546658802870009038954001976473577452179670824561762205931732256013885521381729614096831717307924465596500841234006470000969553472029064087565151504098526432753045371874105376682343190669932430150347329132503666030429282400460216658536228011336105236867050018156565991632100584545209514772112870121944833648745884734573420713147769937629492084518871564957577341250264819275841117724185016154318437113575659622541968556951270019364682745702878952949781845033797926577204716390336027525898950813699550715457091166632283671315913040074768089726730033385020813391590585945727955546792875196362574374343068315544610961743984372425704019562799673017038622725340972957622888712534448585826507859706157883929991330966027371789224054266641588182564295073160853966398060800872839119625930603035672937375985369396953616582575529507594366649228495087186068844001360764478634132091737139825155578274805372614775856354249173166686652152776376405748380828106260935262242769317009940073238214412310663826355205783260308086040895056981808429655058365824799937096169165179417408105412694131267343783445662137871257456270677578686399078401400357802387507980954700153533365974460085805594289924177945490615062115081134115600844246027644120293552508377587106243356022803509336687555139292885069743115292835956734150923836155691057315061106390654175193473898052163050463953732380484381478450064738710805359859831788809224021656774786920745285641350123841613629497683617693316393176921562931095933547716255864549595972178554865682421655341016472931534902020185183364205986535418476717426263476343340686740747441747938414432864520034637133159319972622185397619830589869930466776177396218033470893501257460359119699814743791159525728593675448907567874507117113394790065094861231398167201966551696013490126933272751328852832157739338507648559489897716401677985242531691518459028038532581934090585604580007969248170497253030718072302223038376094066972611624854978796883083632656262251710128787868656518471179625671575647525138000664195266487510224566429392497474805406109728695576751329279118128527490707512240001419490871697957920667472946049077823656501502543765457342604243929834912907782254174187950558805533078372999837776386521657769030700600481648678455532985727207521586003209010621100412530472984272504000922713155176972247860545452651434455287394269219334197715676218025892303692589505567613413125192256777007871586007311901856410105311986154853786474653809923837915968532267467790741149335982581378615711207743708909880653135699569588621321086738303464567365394061079018043323179218698047078050593053100130253907489770316977255272879651456371123987080464372352344244963349994027783080157194313644236599773406052472370857268248324587113750790657884551324983109032299594248577950119131020430950073690435977911176354718003734659494562086628443489145161923731873517347021395281279668169366474137517110921976045266823578359299062690620309303250474892652994830658887175438989627016189766259209327667548450857039389243173464311341922908937761810677361873037871749784000015337454464010330302283318327677805425707646329831826147285143858090292396254542461460287639946211721161229618591765723239447009579931405726541699004488533781041547208348482041420239990015557643342943063798244766197489658394985995620861989808364856442670875535207839044862991691655639019500082422333366271105541794561707509474402207685241526693143094795101225545672653329003061680463841558684944956819177204035075755592623510677927937456787530549207724241437081662431304081178265618590617454140193783231436329553732065027031731781173979467808093993127313016061928186853238358388704012070890381712440785900048757196453828010804956334062606704446167832385526491630374547404948778426915136340957183398928353701183347578377357937186082081831330873657226670923744895142964682989865685789202571312984770558501896104437329889671973980580715336892952140803399271494866190199239947385562366217966980190137790217210274421900937271627156626641729278484580728514712232261664578004928710491521381423549410697908973886553449533390384887124869367898154716127718012206230162808106177933941299322970935403142279880531658328180958723848703487829591978303861860786507080616337470771893466318423205941215331340541194162925776647479866836567809228306598049125475007699637398115047676205421881173686225012115977334329497662319255610513914411119888496674290511859567944211545681575189087982356250063776019304948393774204196644612225455176663191708636464172293952970500741639940574739414497037457643254302820462522048516346213796280683611755380742491296406176078382982430019373735586532566810315413358220762255212082475313621831472751315694049394839198519852396323523470564661398602592015474680403790899004005870342209155924804598871854256164371312698080893316259292228675765314143926667648706207338365244093438396273704687296769623966100047625643214740665196612131796112468447882888564873534582470657450978341258301971503175729219467104551887103557528261569190430631116809928166002068349526187662166755009443904541034845577995447453571913756021028981846251297604968877304602926101150752442689265830832725762588787303103296018346162896604686967557964978267578088968651450261526153671424838589516271277281380616824364811788919168189896688209339353423993584179126849871661836164578241761221927574489384748257752406022405294516068199281008103982890875610344083208983622353573329980177385322478060432436802820055936185710063282177026940644384258071631716745816461257614549262991702296345720606754486914606340732971609972408526286468169769926158779057399405294585693326517124060404354611405252013817867543766735322087450759162669105367936506076380553953410904951993220051083750887355857773976781479981758015238364810653929792945477397793441608097558123803625755337281419204497934077233344084472798839245582589612036331301779881406596506275961507291548309401393338404991842875160484491310288301196238298163652053090887564100679211495683558792836862233408858614367047668667888070919260712206202568843301911576127746598526836213958662138503714087448596140038543955615638824269518743972430668090070334832511541308946406885783663494345092103392035912286219595778670841720512983554914456904800388107935789129167000059618649347351050710039092537659028434764918185893683247292678574858932665656074679029743156142015800990647998195209503519481599435484799858878854961506552028240285734577612161974688876351382232475624022889962576114040970405919014278532831067126274369123323490929487193952769305683761637938156977289190213039422913198336882268799031057645810924597772451167049517293939035457422801992731472748642130055673890562350054370171459973539911460362016235157208039853345203427343616718015221321792350025645182112690513671239502410882752918703921475864922491294893885239951757503482312103016927867657404432256791415671687870670058904135258660273264490956699538141725731248425747306932636685938658884690498428875033123376783760021474769528155740197493978923391926898798254350311149720263290401516508630455463973659217313443161220477779867713061954987765610603351536498251032460306370215963262526709690549224644113838826147155686465655003865850989582351947018740813074451357183354689153947897516274026532591352714204260117586620469335136496187110133686775612475452038478418866986810966598257308818617912592333251227868042902826844205975926646947010898090719867311740309857386832794635338578039764373616830894906278991115419419501398048583418276503887333454825173409748539953208470817265879920189466603226308828456853346144551402636356485452562986207141487235591371474337227455845122766148019368322603784773178285910912331515461530764926645590856378150330465314836897126842925662471629780512393509808769341724558600275945314803496907507037880822698339353230892307719819433100406092383662263038875862028686096496031525923744525470166401468424366347475463540097616559815186527532794387634649330342226904712846995007022372789290836998438429823010626384027848258155666487269530001553522823112050596513910002517880302422429064702404019811348327678167468122372597157913241751070461037597469072267343107526169054416906309223350152984961725980317001176415231567889306515331737850128151976482750435460550797862374851220603979967927504806775895524293467522885428218404428388593190552620986019128800849146541990909462099465771106029018441520293251535246603504377600775309258994613928011739327489497799060464609033061521813650257245376384059551419051150062562986561124745790549383831821990637894734451983420527828007857306378633899570957061738835210850288795917918524149480963640348122515388149774207420892356885885689051001246566688480406465928263007195410895231379658935789938331277242274449943928016535908606206872590245306823574960470085308449382837494092149037325248705273223358725878015944887722344505763362343997433856095210198530534650195452730360802326275026333270935752012343552678554178416994800850053284999375794673551687637803761677008256840334187896666028740774753980160003185990748590716127109837466184962599879300400507807901625599906002853149612807553394227525088760173501235045359348365765878225082522947234121741852988975669192827571067437147277708470358600868773650797297708550955072250832511284151165898314860564101145023945637491722558701535578823772325177296826758471542742731622638179324209531018403810610280122807536919761446348351504936128795105316071311346455925960333630127907241214455421317641474715895253011832037307766672998613495535719041562655055821797942101139911225319252680078455908934487464532839966386452168909857285185778433683311647750739144587078339393967842775415071452342089559156410034034073713458836275119917696320587416055708981009612793617067409645121125095543546361049018644556892698203759634446790632276463698204109558872293301257759544561380938229769109805459875844319165999275804780457775845620806083646094287650348143370275428684691453538699480745577329814230455198064475242319233843843138922798669313979108400301397739617023667504024304237406297582814827073696218880261263689298140522371656566555938531350556926483432618895209607159676074239673372893357333873312502131385091087663365608329166156179540295755614504894549603361102590803489035055984310599929742755831185152372710850898534619905572444855904495118465977296268026480704966904252723892662882993937584960106092429032022245259656127697367738585935062578710723599927460027424184591267066613681631239425537674316010655112459427557346800972063757165930057510194356728227721351492498117441540310089617800765006448882767933902103335966751240005231521457570203809951411447233484804976989208880050457714914939534074521071568672591437411712983161698218453239006161978406158056347115606549420882288898924007202422389049344445287545009214093199608183668324526174222779579403805791075283838865445092145948653692301601531981040430133859375745004887056519750442410687870568712984223037656172985034264589021798779476339114051613375871875887559348091614549949771801369438659162436952932794628617860974012010290177948539211118770459713867823596918703967462552164949731282406086651300319059947818227445733857930727952358397299037737872020794573717802837221632141161826130198954911585220121623441872038187074641188654939926662965639516749442830253166856233779384746307035651479198229804668866370941539829860489642269819525524948437048986884431433207621778630614177166968583940102231057584247436910589700157937296483953637802882506053548798570818021998092080124992358517697326916895649357259499147433491419971208704502577653754587421852492768501170856943047301064782630581037074094138519661200643904798679997287144513769977497824759060054542812276637372299836230308691494094870144819178513865359301422158114767455144546226634939421203521573589081794259382181822482819309142049283635641553561245179291143467820111342977834503040219918020222205316669367896713960642530752724514354907476312763097096327568948133553090111829638917136997547338023755460389241901355538407512405369223526645953549984011262352753898643819333163932054803836373698622688405534694204100593525465019409613296052010100850920441145698006044978629254032579675454449613287945898168272687125327874147409325314031885416749022394868821947770629724330855297289188392107906784928132067720329075291449976837369918149758929215900468122140530188272309335388071281551870620321828845395995611355706071734325205910797466374419552081810441960874816501343602001540909377916788300119273819553787962624316076167681596443603759567711905317523550000054233611030323767625954881718238847417381815984835931091507094240559799098209325218092640702146265085413231302288789973026708591985480937060851092024383504631501293491606295051526546237833473005084200491052122713811447100611554400471205608601329581608108675483142892211877438086823053369134138247726510172413928706591754833466154340136724408080656384035417609619400791941769994499994397253586288036103997360136500891133341916813162264893861509542069687005367745333951181940065046176213431414152549666079352181862927419067895247173630012131972447905681140346557704525679123760491276728563079363052474743329639419225920011600985548159599684520824252769126449900829904678856542295411257451142207291261569684386238012349183009761976167246630548775040048363381906330614329576094964788927758004191460520406076390522190451704387456892227421153339241122155246991455843974214470615630527219079550498529416720592693147387859114795481240451686027879047598295786977327451258688273224927508842522323176119770332721183686998289920892349473311874408979993514577192799168987241477941837891379801840123073287124355414482749713470625240586975500057692592860955948866680075932536799752690726715601990784777346721257214759011609902016715300317119648408550733779122819505517273866222692169525555214810865274335323081086577731796624776900962552018027173603184148814110025378493354623527317585897498358660346498694963023918721301482768845696686671160127793920214396808076277526989766204074919468118283567185784702525291628410399776225472629788596042245386862345034927980131575839572995576818244242525395527055084322754461358368057420460847489659029379751637661883206151295879728867842715998061731420054937941684447945078565988322976024221274647616896415527609839537433157980542285126667207632965103930955031017746437509231803814448316029109595872041917200846931335318866912756642966636126376805803782866608424543440297794910941212711232762434087691728611908258186639094652142107984308587601829077001530494194418279404447299654660006585963659380895919999419607204257245746407642081543805799843586693562310408112953743412174572555929001252849074312131784427069672778019812666288336442472848726697230183532511767189765572608129799696720189065898839480828797763946604814333539035827364463850357272202049366112849353947495859059334947273542111462238191931458983890224644294749000932183218017191777779297576724845034753195802608819356054912727575727805437375624891976984907906487829146464647785391308731798392356716708051254025869768333546294727862566052360302521750812085187524892308711709324610742409703017179733249976642178525385860259386568628072391083013878034808167233119663175711281655365204978877761963290750573668887151580656381863657080558965292618660662105966020908258726389346032268319110089902746228801972160645742360752126930454309944674772984948545523673756172889776553327637559115910973593923875067656610430989968416658237572276563150848086319526211880931417237334710801309952515144861459337513897473180926293728021003619811935974539462017536970963149861013163577160030866242465178097243197829735944402144811999172366010573888238323670531699770901745607825261248141486471923390187608944032885962250648240328885599533529696495240629414672780084665716829285353169439368165644137690900782232981438599304299017898340974993301944287848763273368169021779927221608026461554930049391395138788744659864679072747970364834971908409497350312643650394475215256450154261944952056360831535537853873613195715837908665005160952929885316353348690566126753882729071352267006816486346861946058612094036282519702674967856036905310326351468601363034806884354662061296905922315515291539472119085930958398186162408175536527371643600502420719469110533024137995314263319254691758770693561331117379702015914338698289185223926527414516680816590265326421895781595477952935042837333587198279173904346786952668871213232601909360898798793573995669714491324662262157907074646477501906653528842299179421272202027169720669241236339437906165341249093948529698067319771926597728737223789413728462617646282639318517474766810577630539525786554675169631349046620643451354337513987610027410433051068423117544373029284628057162001298475058568219546345557696441993826228343446844680303551261535832183609193122410529735778133783601763984241925369613536337714416092240634838066202773956768226926271175204416147033497223671369665255515882255037578361792945654979796767843246988370375764253105858848797747972919642045056291659380371541817756077129062242096528775751458165972139442506050053926952626235143893755171591423128620261904319488771899380770981150014523551288435129035073617211226967155572462662222280276796146096220303945522530664082983167415067843893237947576470510565101840642239523176931472868424687761723148883591090455334854582735579482111958045583926490155359612539366032403976313679101113374380952874028160503323310864682829496640524460180661162450885571844359331131269888002907192426145310253108216102824033672906822842706569535297428116749697980803452936248957926356175641984672689933237598941789112390590286803045117682218411735733105206578686707911632183121269812659856356201762025133139324516679537545889780035686817568147458297265524248570433422684850189795393467069221800301291584473037750842872674935763414941881937879755420209230060936865455986123540362116860222111866693012320153513305485718553609878597865725288832664724293770339680459979660892351688777586976444443278534769635893181907581639449522101193594697017220537410129191119287440873366852054922911704189192374930128343430122791362982059188676402611688933033934810433827650685390938662919002672582265466110385157577867637948977011323301824443304622424354332461155112593814119514197840202934726471814005576060753852840055684122877150525089391721249422013283115854090611496255437475269977541886666141578423840685841191441923012416345551974993804950299946786444236714166933037019905544847518223060796003774702861593882934027626317419080934348223576011358150986765360532346483860492117890436018407045464237801793697065897665118354657699826492266205331203507097059291676151253958854597928180312766752117926804865766917824835586243472410645776985793799579228552455718557177549737822207491785144583301270141075976890294054787017792707896806054245476713774508030119133118169833412606793601004309316114022011096711743141555493877490605976265831299852890474296252852693401397603875995709233916076975471635477378328673098327926351255398303202819889902299000337285893747693293970735903326973210665405766877672802374112157686234741677699806373343659338710214079758481436039924057768378361977045993719834471308169418132771880419386422630824679241594666629858520025457281622260313245415442176033751798445284224697712080802600961625019689650710073169029422272367548458916207572929133331686842791317045061690583571978369709129732935665524802946586098714600075452482996022962101336071923358116573242042364970701200062875795636256901277972520143792113936047526589295558851029247260536591248403189456906328796310473216847250908459872586266019104900496845470487798430407462872819357491713869674854856539194155815772925672269967250131129925658582244384376141228698924459348975013299609409699867776849728269532884549758994390422701646324097225370260553782951041527317241157875739358453893301671318617143063571876689254015297837596042069061562058393723726650472686711235831206610693618754807258035250779413768396348986896581049250562744351253753173064022376834994697557451302935512915484572475915896906613703026519009143190207591972186744595451569667055945192768902433408714597422651911022863895701542910196916478755176739444072444135926692569074213218350519523766483458385578139458311312217052683119825964004469847358741984716766351129245742084111674203508405203945533608630470900232114918043054501633707336281881865836011457741744348108441262968321039776746761758978619603389294995176574398620742747555459765605085267504636159016839845450556222552532995951040949763700408744659451902814152328721376249631954420655659516270038976345503652544148889960328243599653335398456190310938335584855880597015911354797757194471830828518509621519501127897098165779521721218165608338942379781789072537724435428465024891527143092479527811404351765015001455247553362536053208603519599879722550768437681649220089492412444266496832004675208400825138757759778071197699408273003623847424213749250533044387010690800428104071346470209772743693652474055332449032812340481160923843275966924100586586121277302906476943056042043636359993231916123380077215969941738281492412076689552032781101142450002199345484896478907317415742900818390604873372082016279182817087506905473943692064683370891940812793580494393703922745311617291016334517085424941931122128728134664574930777288280386400123011937723289343227811810556513506771125540931430758849835598377015973362244581285306353965182716256146905535480156533952972754129094181027992100101922956157239876779796599568173007424025024928407162317889287477434541413141101844210791744961024270379258510197858560333847007991364213401187549918884376744001752080355271015139346883602868647465924611727141422442187115966442009765889198339954509409084502435707316319561016468424388652426374632771028908448187756611813905803966453940687426430680250242260170372270475721256793106607734593585317478087827662184746295500475914709950939546771332303430891015473815750991043209183217588201942967316774857020315020238002600130626806052254680890367950075039074280054051521102964948315202107736580819267568700426686948400375841675842938315135296294429982941351341344771429569756719048614495662970737240372235488767625988434431277080443728935078960194092695019628653085596529958028414983748241432714906105239391876575177841516348303541220007269572618779166598758772433833095939881959073101014499879286718561008006968897788437913760299204308538991370980619111092368719841516520283627386030537301664851928765639201114097100158426147009542604633118207195406797811822265619510824202974958090378723419571240259834588557992197949194964200609972494434549437008532028955724599310873201204178487736642520768786287932903976709386311353338502664018724273218754732217445833695301730371223427222971609905689975035168941403360200279468419298072267949796906652361868425715812651485319552401913948065318308605003153034204665796260826001352092258793398769424510427668802360163208811133147264277397517795811714416750636051655626694788792971323126303515592751321010164124479601686505108367132398450446876419017871778148047739847290022891184526527714453787462699583116226567180042455093238370949260044917949958019773718804219532426486679552106783016972348259815212132769803273537691452088656401071865584180167972278722473815624345553128272842568608736740292938013639569833055872416263905138463776701499767668845347064045622388206597285575068185126135657001033613680390061238039702604936620168348844950160793153268426204931798570107446498296715577889078595940376690294318513081246531952202988800232089148605813090653140741619254085160885531512149197158915045287675000916720370583782244184554708447807267424113242311580277481314262545066512175952813704360575674730322244146872002453228381755047484349119200833926479669115395992215385783743081619236215760992059612388698890288308496342985718310081747104840302570545854447464219542921038582509260285050284271596744168937880251494204995209755671106665025279287095246098733995125986645476684981978441272709064289224182271579768355266608010085919286505322533316126509527540869097141286722253248668217904544205954191750766219153489543880386223427894171858259603749636343140797538633005267428715791328338646433334459224553853764776480908511889124992617443029342498311216357473878392035156569186677798930921835050738901741087080764328678312594160276359871551626232970685253933608438463469466758604193393915613610542601754802816162705368796129714399141061552164206718950356571994736730513205418696934637794013530975369894686035365155511426757665632294075408997925856359076259741776605811985899825531151568762936114541003834517971229129694584231769212634235710906643141532383620587934837179201807320399992168127697513763997835005446787097831951115612438846668911870577228669685121460812578459074984503186222925391411094871290319290100591807701712020115741056733475015430653453868266909538477727068887005333043062947520194634351155110124931396737525777147994563276513654741245572423300519448768150632257364246578914176053615916534415285855703259410228248314136151149032723338727860032791367311126866649171414537929233000409174996704261126102352661942351206142876525996965546792843902724139930521481691485896494878768296900161571251330527853011521802940459331350575392826116925751884881304162616720215344277468448605077611832793108250420033558254907387915200662322173094629799913442551140477483901777899875943653769863670835211430523058219235266582238493190444073572642918477736378937072375451314796510694407579063282499875362662168161638662547345979442777208991242627241943989358609226622139950215544303909697040696538342141519336952609143102153998158308686913982208628533400694585618292400368625105689214774113582546952066430639151490389086865505238923059645425468439165244057630611833601868784740210881491189953231940041579308482021715329771995955339634411572144637692055346182307359923715975289213309826782142396079282654168242174045920000105629566134408562700366980221945372051951549284019695716376970512339267682275125751281329280311100956774698480064200731825853093549929525939100062413861645842051209470322645389452208740367626121025225835018985600670223807299637994215335108182572875938879349433533698613336361600585898801518488058330213566798719468290057514430368078177552244183038356214400268608089854954750324535444485532540536695067728701657620286164902549649431647047048145055632915794821137101825881884598719015240481085922160789471264402712625431869949130012868723166257800227077570972849861205508013147193762674100774917973667157064660177217235361831672357519673677608388774647963218368367235564557006231004203113663130115946747444085299965899912574371416360861640189598941920562714745098289357975875900995319406061705185358119066649856355659326236531280905864900896231283627898220332489513411131100627141290883228040310282357917975301235723519219164528631703671972506714991338924417244384538697925832475664881729096206525963462303219037111271981177146607759725958999465648275363888296605765466324308078488347768309067629109543768539040239660727705826788939675781710142471821428014316699169029880238845495203090636456249694445552036827375657583468611641068493091977063897019309968400484953697739607243669983509474207455420486464803056607729208680101999041501899532736539469451849329973643237121051892008940175355067057031095872242856875725228541841581105661898596925187361044716370326025440876837733858259934809942436558622409711126726597926813844503219034171433984427971214885774116326547305482298888018738602464620039128992085103293016854412710414256180859359055722907133604836525429494231052628858218963876838647823538470623314483871184148129337066724456747312790962751949088566040137765901784419152446870292344725482375134674239647014129223395493506666901481795748635713449718828679570598112903809061583610081314717301328141731417740052209518785583625779422638836232457114274900069350749024247201313094867797782061047750531628070174099596720245479520667654791232819278092144067511123588849844113859194752963760834782877383635283557633411808613669338454110623374180278875472045158626179263182265562584881335267446342314871684773734924452968747329311974911442885897876857988084455150006375353849607281046927838250087340417603153333172852566597113678280736719497047328548709073909668521616116916854835233384757037915695742108639467621519281475460166723159602158826451713553755425335099499725539588354575544834178552842432083173519092877600249413441720431825103674709138458197683441732303593736514595863217027119207596327872444027472943348392159285140229277768889845235497708307865012887462441052541521450286952270385253052614476521749590765130787863836329621032825268118686345919881328247943957267357158881606964355012775565237652082942518632631967808245407720099705997391009621772952654772903309120790393438152360671764332223942165313106351070479319961716472825789612149252376878600089472628416600076620079338473204893622907174214117228962230661462532445322669402690999236611922823177666137831493874793058357857120207265119036771994795740585280492970484132434039090207254002878773999612664860007466673009916810570962007968210954661137748691389421096703121759440255274645885864892487502822258339564123383272399239701816224344261430878868211611120348020110084525139844383138118677992991950840378203043525264361812100272205228167721132246552087143420044061312327405785786945695001498564537144661543496364671419555625651897308405050847070854118931435513303260737899084758728734061883745620772809242615624577193612612177413327536734587013488563358806835315061571774188864572800569910069450326611115467688593690279394858196661382883254588062166257752741149483964855845505530309478524492183343471040226733455522995661319001522156708215088059784635989659723792898046891926754911453581116389323486938390490627351622622165044251765839161333405789080667333089104723640190522673153318534368981396013549253570132208125698079661947941872826905083880427604121813449480469375682334063413281078529757072708173096022681848493659223103729244117832876537498154462647011786099269174774222640406145173253999970678622163604451244636689932218567619162397905112597583297177886880644227482174966711698873047589412611675101539036931238694094964841619544563090286803592799926589992229044602796221457551969026361816293376215328764554495925721290736052622043074895616757905331592053255634418400586211827296707319597472560309314068720318503838017280535409018880904196592291569184184744213315243138964283676879828953999756713263397543739856142833480996799385224337942015323991897008854342763631040206823441830761790315535537662175809669102611046886439721131288569009756750224532950031003719705676487090856978405119713703629276784359752279351643834308848323974941596563845452520531335372537793169880029530441580095465377849806979691826962224708477296503775963331682032188759068178818570449044828854933791114773126060993165855378844961483394719382956926767578308981698142285792416662343357474140770300621643647991818943481992748004115518593405016227082662468543911195992697733980417640443214555022518169143450507210792674881856402499745677268140532270742543702728830173660526675030889287972866773233147815547491485696349175840290048158738546143011365698767667652489846820071837184818817305529198971145069288581069082589834868166973591815860112290807814009485906497464717671766966039235941538628009684985331871035020064265860649456275398606660678199597272491377566653122135293358490012047279214409932768520841840385405513471083068351660398937200293386536881128226497890769892461289407549620252366502843972713731320607150666187133554899847363698565864441845825600394015942115580120227225320792479334923585345914281276253028600830187093031323789957970848600476228109656494826921448221473269100050015027666986669017719240581781995884574066505571857562085653667870253902355809169594039531477654194561044124902314420392272209151468573010197651176991331985909442937472406713957854961517716667136974152563580610900180513099148981407311419759893552329343836525396489312286787259303245616296304837685826147327406938132802011701703063307301504662928722795626868409566800803142869460739272133769580366879127062932480759506369619499598819457857858016877194559827650886632266068997706574087837772511766889368200986177201128586630687052195340612871667899797295021778085388471875654172581237119418826314076561584309262992485895487718798772713486651623909484583549700899204367456822691325941678263185866107084384597605832162534862459259805089199695339115467820213882889516277754074570687542419912813243466032893140532470325043102599512266605675333723017640876058418233910766114006878893411985723211893863733205467063868767746952597643634760007211537499798493216545118063690729453825422243825504048136682675955532370098913645659661124891428187989782148668831905638675181846316273696270781725983491490136192903595418865948942381479396764941069835513293470420580273243353011213004899588511010744221885552054996644397232191365247961337814182255853068355706621246292074514046506889170886336727367486047340752700667184114375819126078367954321472892983893337237308009247569552606861696688875822638251192607524417247696653000322995634814092466331411074533239823362795967271961809622832461462862837717976289151995214902697953611766353805825465747278834147970921006279798799654631973741197755989980721027002431438153169091212862400567020364536886586297991591043038745904759700833800317562589931011478065451639504647658729816416206966528454293564689668552019262200140194738936366587981960671476133844952670852820700045577018045554545855069106820401608181074209741382588577894908800371685373504886657140921370545762922134985945289974383170760140197179402948595352847685085019621894546914689119655502885166882350439175597902905316013737581353741456495516409385998287023858293192095059339011981560906794683676428807139162710554133903568457256451699979202793336600555723489813000032056770900254109599959830866872579736497549220391626252500742521882716721028655977689392163549534191800593626286598433183854962068751559747347778350654209141812946693346888117199372994188605597645534502144672678272126682928518247538562208194602012434194483484369672570043626081620419989640261811878654041873029184348655886486540665119656741461516493980023869367254907053428031868097507640389447531715100604787128619106126595709342144655169810664489619736378409263992918270361418170123788947193749535133215281784265978689551157421877609177254262532815303659288154561323681184758919808157601231385377609145019823483828690905368532103998158345456704349186870257305930427505286208420421271680750987655906468176735137279721414559859157197686777456433649546680362351471404875955387240303781604892578105781046638386253415382040697102638269054963777178264166070368187604924833800338878486503383670316002803224647831625633414384368198392716670833910557779937516855917627516888091361490094838074394375041763867502118344096500291920570857053908489200238400186860585610423053406986337678413864446203264984164155567568083183919608725876328549922728965640939223774562207920375997743718496240451240125156405840629400568382667223599668724895726578288773921816980627138007510658173409688846316331353396025478772486376656376306442370279098144690555773568510019098713695944415123040054020167590931774506228287080995942048440457944865207468050543410059493233656627199423758318104626955624908801198845032097005123721851045226151048159260098537883402262223024634407826458189035028704193519347297512510815765676516662979791797998833412905909087035661119300956086441095727789307703723993996035771640880268617613328869707586030311370689419507229838015179756418490852682361897597466162512003560138465455489097365035170862574623039387777986883372072766261137715354699243217478541008414707111410946517947034355488386491420600095381067217042799768013726865021689683085786465979458130903427228207383436050022940397754986968797084638401877596856635135346912106640563042957139926880242341992433061199276609136131999598086360843017935456405908856356080018578939261835236745937731943270486829778395483367132461688369751398237246544217149754608652529577453027866453805584404760225342240948120782523468028283713312861274957890431342179495480689675185271610892207453588277527507574109828086400579291183969130586880215501065769803754369460606129496968189574421744776899919444114129651468360830356197978380888946982797031583737349163165915772690542346748432993508237834512434832755195603600293850277631324011436525752630475495876439080549824885328419970972033786737884924860770253321404823763909775907937135181990642422508215363774177909150378866008108392557944024662512659171227660268408178093996833445217470728196936165344806970392844726835832215277928027985544801150738718918019791014820293902217607901222941127497633761445055584080595614767728677611020136847730280318079886604358142195449579270517569774840855041839609528816387780952651155005967633862185385730915763354685960934078718636847293369419367585904181307005611879062045860784579140002651066857488069932981808187688030397215434659530714128925569446529967495531253978969887285911735133925743358254403976443833130605517317578059646081310073458382956743580768426757810693528588432069616296534978076937561217293750687239538680248502060114031868914098299914251158742191845767155679831079914838247089171908768220811400396349925223468041568054801294910944917444686747865025628462439894144569302128363496180123330881728270224654034723250202929903706988724360290379312747957927807746202731824545978339013981644200843008350917523280394194375358863794885470649585176931920274993188622871648105187955681986762833739635933125573314429236437281492058800324914101879871517115568977770477360023166248429034344234451548478578229800786398440468801980468835762871449005403187607974128958576111533882700271641301999921962558882814723073328790759865581107505516032180292997121103301669710733449630813210784119715209616152406995378697324703197735276491475438204216394802639911882903392839501275697457159078672600506963838726871719251414919613519651505408684174815824798629261731607873673676099069109992612412337192255269005917606246948328003003515067132275220977884755438996157387254287911775535845046898714404760799220951148049343014645600560171928564245508158410829184105570465486459061060389942178102627756718414547183899505517261579606655038991852677185646695340903619778330907291707468162917664208202995625581059435094226185589577738553657151035923373423100229350724954187766462849879424163321550579571430922100751236525122548044716995307126667783430671387351456752813866393088619374276520180506106107914524258271955213369921698749137694092077709464150047473321625309603852900470294039358052437456335065275486521012489712265224929560697524447004342697628716351038605843125206334620760545808609529809690908447796815169526647156257035607193523104850374428493157855173340234404181086087193531968234097085499176943337816461594882678861156866683745420417756745577890892443007042580138215534079700605151288783630172027159976979368129960132006691853848984369437816017022534325080185309014917743895137530681972451989413652978469796945505673584520575071269581722360456164404556879035217954930086089657851343754736482170639950527823417261121535243743280340411295218227325112827519794720601800211971474965903543494717269221485512079508139513535613324903657846786375028703110661208247494407970672582281248114324671563300776725344908376766143156221495201380260853213302103676424934351236198786837375732919649437154081013365243295632643301890496754331517320675291282716978456346124100465289510713812556718583570570621170841553728700762755692979993298486162984505075025370859966308775430471239224095955074097239874926965292374080160975858656535632555714751588840341610295027339462980588708380866903312066676627697970593769891273448701598342376622399602784063341971044735777311211302652688444862366367334281514332459723106470606902377663428955166349036742567139911635773709594469699834774644472576584096409910377021273156514194549319228103105921238034344617370499399246929897455656220218220850690666072156122762555412310977587792053446531002219357282062766063236472603967297861530734536123330416307089092144667475738606057665630367061859049230184132425566317120690091273116074595660653695808947384311196084054467897185185418624700437306586886894241433551692907345070311272690670315750355098295213534052962972509394332828303671270081298210375964559622071482317818613298885944766456507432746785913743071298247635299012138703744585923967794492527718283887143545975416361920596454070895286256786221012742002147544321946310523027713227236833832835044154343630770689352425482680878469980720246249065515858046411551914786555362324074532131966121726574051393473083745990013647355409594190511452177965524081182496377739230413597706321900211474094402705857772864503174057421547504525571481919168859106946762660190114890199975242926620177195768112083991205744629617951334120902456217162687979754178307269612603158981981567893980080552816602887825338396427943055695415510854301185551862060114620120058928683216896694912962549888982987880171627660126680889840890293621614181281622551781207555414489028288729177734579037828599722971447374446967835067106953644017322251821867404615406292227481391205785145822279031012882688533327191814993958809142996875919373426590732694739539401998610944643963930338534509947675192513191735501225651918980966419568314185746117133001150349132307339322020249674787336373623235451326418698389308645169544015975522909828725003167286022206704847671869815168396195730842708436696842956533230174336619047348551429604563376401416460369744597855407490360350667835626376879502965442340858810077128927774199627880657023151137672929143574667389473091758009649965282497539530600872592259005825524750016329491973095875222264613417270089730253354108715276884922898360283945045390155672642320695660655910051717213663404676519418687994186300552349285488708363886299907471472872332480756474049127615976242690040539050335407989369674234753020456673479530361772386539166471548214678712251275043021084827956853982468436018279028041249520761300089241439504919067675574065183823909164670029263584103139981241068548142124703462877014340076283747534782851609144816473825206825603489241365526488211483975305403932115156755869836730404570496630600784308466179761685908659177483211184513255096364653824462761082816538850607951887894861324853661696624754999788002132662756170538784607093300024612033814425145860437341126668858759675132770086158942100893092152923138159380566858027614660458136277833871223301188622501575256693180365933222077511015750494195554703326202086187679445088290536106415879093400530465407285999773810997982369779726859557116027998308748003144630557611359997090063039248873444108472964684864901703057699061785694909992552840270280482657753160992329052569012663528992913897627570882150606881020333008135013223485713068615802379750323062779999244642590714806707230810799369392819755659566408265053897069762376904026639886784033395232183670100188761332620101080153198931433536212988407862355631622828058899346563744830958075464878061790526260237206588886091426701458804351132035510720595422661578084651521138566225917331532733994540352003927338202344802291758399248528039986981486323580810374476373369020808808304633817222110646244832643466793717096536421537477549299293940402910311706328345361636527825445932683948875527969030703516471464836544680345640709596692307837403370200424069203955502442371124306674779484576747849107581725622108508674335162095328291432113432512540939538723054265127631205420714808614307173861716478983941070073906120621113710737536778136519597386525859455944475304585672552209625596545339331793305216003631096118925027375793505366496436928884613612729734606339899078889037364381930333962018071768207204245625804878027758595616928999543880422643124122833396673214553428962005490079860776610740682785747419996380921713742355001874417511427898042779157857483620591579792638269499674341155294265431836282924666906492379375812391645380501319511966092623227261038014635429181031946809828737639236153009121879135836125276364801692194378134512610350422390917185122242613923670965628413413189005016257111078282066641055607218229806140179342456332932212731045486213861779159113811113203309147457896113278785234696043814096551320766480755301120776712057215882904430117037180541021339050650163039459820690720759239471884719980861953829703012314803008815493491932168550934361953702908986751291001635524270317672222737855126243751554581601885172723156233150549995749229703883937609646634630853727652487759438354438082521690084230301007192273864999142105488974371146855481358036101175427465835153392968473951708910704991610329656391617228172335623544191190700068454726356254783839304576535984700652715271513326944632394408703638850357993019589610726906475348379605445978136947003180560649424882236294262746278182719124729126576307079748918604863363746761129442612279232133186075389795369823025446457204532712113769240552416388218851734783238571033479818593643291649855266660244588817440771665874826910118767422758752579155870109280227733763408491056899105871031290392716416059679325663730911051438687427540239428778296318574730572169574564748008985890931665595536514481873694602021374851726643065021743698048764641145618379200256448030807924733979871652221144921308515990384225736845613259364330017928688596044221592044713938980959435354609818791303607158742622323480740732899264052035396115347389396427379509880748548472881194121607748593502698376282867078591437611067157653276445345323925170102285901899869118451088087176608045393248832650944342088620330645861142486867933023749338634686612810360303030219855097313730320170658876411245759371262805625324724483437957194021667765077945488912956918608733757864264811672260003976817801428320026372653881101653817920695077813374682193185824600966961611114581996840490437512168165810902039613492117355705938843008330296219938930223957069834582448948385364041505537243666592031217320656058245467964635497774511428837807864968432736348134502911365318530620781224265621095375947556871678076903162104896822291037061725946114284575522691719510613469917020906209550341473257208697692279580834668303645039625841715925559150539806412549471549482396718176444429182185664465654095233844325522740657333780681938726778979553636456767269711179236534494266827891106928519759030957705058913215282441009566407764247151761625587661117404278244146334050620667384812461168283076863391520837634041442308135538500048949077381428473899325493482384267796999425190739670441777651859638584039840531892098110518370522671974547010071002146953165918878678260637527159105001967260598430983727941690425592751096363501114821020736116959767636549328361436854715052195014607075398561595144580224486235710033890947934397916709947191632194650208470892058164270795807672060996907988438191874328422658759961605945632965070263962450512952591404086426488173875424825707028422268857397416097389549854254239647644479199042712045315988785414427152745899395695377974269791354623122765919478298697174612425873160424932772145944656161428775366056098075776338250572938758689290983466605716207272403236553714941536661967403278009644821554715035190558887754612299579657172858121631942710632520648925780014506917260783462157436491251962569492964319165894559944219023067174760797097287843457458149263617985824335060587811423377429125054921770441755482201773676155435549918024366915328545714815171896653816444975062592919125876728616704437686930718267104575601221572328160294679551892013101527374907397822280445790408352393005795791414747931290773543170051532557115674894952713214173071244919603013786887357546662760950721510967986003713873164830469319192750107280433283383387799375321549380860641776589937772708599749514404174410207008813383389809460208449379635029479880188598460449289070647128459306967751734700997782989714152591631321941689846495347226366156178427382493908052900427379434953885838264370696870674563585265199290236155567255090803017208142798482267860067786987245986993586092930786355163287372460439088233388535907820689322612241834319749617283922391639952544708049782108714394296849027729752241422881030535191482212367880551998679441937928542757009960093113245585226148480051248382920249924513534034581713649274841245474081686451281730484000595337539090271047239524771119165239791247809182517973232770759770161832379834958226614643690541541561018590074677856504786954170687461887288533020949566654025622857413249526577129782433470444664995835300784705586242884455701766138300421200226287743783773060769610989426356711623870464428632855703637045120391124503690222401893560608963728079012111476097431344504818538118109961079291181254209522732344504070255153372501413162462542701805284371740307577093618691382724840839906995104665397371031117744377144532424597391948238483565624537195687771517894528243730473626264437133657434372725638938983403302822053420034765846142388430722162261934381524062023701549900391640819013052476941339857423248569912874453253465502128417026475615260147316173929064956545650918022060731919479997817787182007602301680691951596978407685691460462291906249244391853247036558916705388429712814389802856166946334479040588046845368434070730750665648044415387090941054588339229579449083021264173014258847076659076344761542859894137290900444082747724288398277864977410374232149563277017768235165003724831393306293383364823238152940135207020096518041767118022320241105355254422793951741801265820544857939739884988103308020324449807330098612051592348154672204820929181581346640371862449528721503673403801162735408847734036348874879422000467591052980114111318414527105844815332443150839765201271765740951616640400610391723656308484750679716059068906141714206718412860698198126948212885948207466870069578578897642994361485746194936553852819999035779883346170836643195597016947348400597010973616260761297244858528766291707930663695022407538620334288843544986993360264411910284239460114026012743637151828543459849465235883558872094685222941947878333554422883402962781323618370071740843815756247769815942779470719937039936907523022732848623637842585143072875725163019315079364116236011008152302795432877657952237173018097077941235724716585724555355547572649923414667926733648964126132000160058115818075490466312553969362989215443233824573464397658131387751791814740367339625861808230012762275042842981186485627046665139860700238860969239949452856266867880748027748466714113898700690622502445197273725709239826649859129502571214492697728206726601440665379797082858311147201054106312048983568940700212827100216013644281294172923787573634245428906181768187616010782816012155742159152024229265751917347609650236589185835844479185298097467017867819176759262014851588152753410005849055826259347299083837884722228638339621310750141000602098138153866800453379341959709427156099934894142095022713357785082540963788153980413842684043481653661105224877004660608603099980127020067211793314269552690295466968584594054409444363278951399561907699401051396550472468847176076021638681776876392033481517294963980938866343547154310133763994382284685917211518093131664709442584655953436496345901863741437598776332525004287344366517970465681814761741817894028561704589308688759173204010396744991178068776879919688231851911326561705031327715358125663515511046245478504604377828458162167814324386355572864535598566557704584397491894335427752974923469851524667144088846843244900741092419948620451222097523989074635749526426944308801576920552670503274390764308915851987588231774684367061720690562541931249768004996577816015423904865235208198741723159066202211886952932700312265194539068012436338764439909873521434410716550823273702654629107158231656294105993586586391898163559490757500273155215563169215048156611295110423232772245607622306620004851210686825641219633068849942387464832284390851339678135411019422184542756407768808293531536430681837490837195130201184930580400731131609153155962798190021644458692212729238460431639117819068927585075893374565256923411300815048394280130472833770783815879343450066120895972646001363238775391432920034555792584145651522556801990357105197253275862670398417195690560278524839667095346413220808745902644212325962991287107940813560840612883865259526077493134717506907051039600276744358148999645904813933724720783664589064231659667145886783454710367358282082398560537725837485827115306070269505956655132686672639797348466314182452707488024655199594571982917441392633925265351379256016238691214747518117763942020748662571777439850173480676779702322512579157355323618505089081458194328738885091714693325066223268020044043270174429277615118666175824114863070179610907704719283492076837180861781023062383723508930688518542887417005007040626910190504840638613261165478253126464119540420344392703959337806527465368952750009086803171228211088569300737091109043698450458991789629808475777492749134648246346353450858185638562714646065820659503614249795271457499730140559082924410155478074303283415992736289862869343423847021322774175428436192252353100746641649172887040510177002889875699103244145501252290274572675568983955609850005310195397659604261223748855103473022064856156283319123282622586193433539905931342774638836960192515849838076483473395226460601623596385989687217461146570723111496942991605886141702693638892190490919395339273145573099935831556082384907055632895250691872006779134788351961739341060202643997039228717440165578474627074133423742398680498929622854757861974825577121933263863468778273679489836915095910492707680360033524357140665099672204685213829694453592757761129000118760020106916545409287807821019634251037558660461502650251434539630390052341037187904733147973673864971111275049148501443174816050548197556558022808856003632802265340816420043924131401822546716897376486320551100480526696191473222515735378900168217314626815321482047385883330562111343798353465587157462570320928894720644770885591917762922302375041275339283457373689354768402234775480267623181254160822249497598404296272444673274482924176500897854133593518986512748785333290327161677815828853588177581471069241328114294805579858942178058558866665666915004085842704181941799117301286890840687896291106539693261173431488750703520868720153786969943207974579846119148570959147230667155207125764795187421522695217563882635578618223327866525365998730098386828674902468207905469270186781601902541024404850248754917446113042909715695173109537099073126234874179072432916127301708158193998774292701099843859868003788313275106901616077003323760833869623939867205539390419321530107608281019090426526623995471510103169963798461727415305529279801831949753500375471579546560006177760169342519493867384486936128186727844078599880743135646375058033259630371288353095958525757640342173779204561788818160179909518307781574776188983595822720481629142223274515358917906370508614805684913249492349579382561127508025991566712887069393423623700845806872453454762707739916785576711388984920257234989134134452003428641903733062838472831120223961773488247341470295937759744770626373109269199915724355777229251436321347143445346088431806110761600847895073313609025574898086935357082503395890134898260055222437546189743152383754359112840091942093216987595045871654847583507705366742749737210808493382622758550913097689988589772095748545974219812030327794425331759049245844816943838120854790152467988972704041056483516497000310687341544108854081446166593782115164819654863041305154040182668274181429504609417985836676401109948015712465120555420244469280566232608549822815434815197354048639650685857567952618978127280373473419964622701432979758449912014787035689755634951989921600262738785629028512738943305866866924950174958311015651887975332104460890142579219951525617378065643815520748634142676623683749822540229785467742694054458294579944821567434304972430233268374108880440149044130402506121323596376502843344231939517968580120609272036586539752985408731972571869994053811888186149675051797295607955002290210392412008342504072890618008914493275905927577377452995083050213747022319105533664305270867435975309960326420683975079083899276367977895710645000936820452763453426692548762751640072284581645773226524719740865784370860834130351450483673626719483056769622194154861142772136857567727231055427717472856933236244094707098217706166564397748260891289812569929825469426139512997962279402568452495438599871470448268762872003918809602302176567088721634843564527681896015851600411038477139380868372942281629995436738911620402940001285682002761159705451327887362355503274273851227509682997794822072271201923205526710840550789691559608936584919811962037930705786841227608680745424653179934113208066182342261574141426191164111709129303930197937578914379705354250450864901782235185684953043020635877564998507797713826097668514069240688402852680402447033837153006205474080399278618179162491525457467343126099046704498258620254813726873037782243334863830167315551949140675609660678452441532981105452933499618529234372957037936424489774173635427024445455775382499489820729659598097174854364271750434620540885183597363332514717903658543666572709549552540224806494761183297834730798452456405614329545394072845446574442961366018397068808596269576642629617172776466383005426658775504005670476071902289274276879882560409547985961627566990696804713206141263729289633724374358102155258871497360993567260599805573039050194773669997227012139071503621514175602522845652431730542074886228937553194281426500586878943927162665569807729922348718728361829238415697295063590233761107018404407314308123350065847339664582990802458048178118282398664348572436737426274391508861689974023025023043566668228565936996397967129104216079636108048333443590306185256401507708991211054558333200319210733153830359526280775136320844232804044386808776189623446201640307220793146393014397941355018944587386816684770197668895596480313163673115331206676609388775089289129440236906493668456999617971959941536930982738104682651822024107208607963447407067628059546870714930659402771536504572596990351269955236947662711562038232585536572338697937339435521119807239170146312686390575496312722236710954788341310269389472950225371439805123447971645770573543674107659512311458461113498995473588001985996667149056511384971707123686807201919195682190094326063903989798365903369406634020868696624882342919436272644115192092837221749582706958145988731050223965445838633845163356756993193429228202033599238230174321840801103520290579636831754053589238194661505803095582091706518851826178164675524861650656935209778821018765101368747665150596099983716204216472624670770862914945982551002266640752848733925343928301997555219582718798941724893184183282009383256709843784838143555272687589208116683465053819488091338260593698723609552754961208429837141638609606141831764802808412579088139277038860928408907041739662111906060849744141551641492418202187338332378178434202494862495434640413113991092305468609554575405700808336995211920815991562098875145421205278868240825401328484352337269793448058674377107264142145408787816494607670201120627497645760033262702901471404089493556162608884653165750838360670915497221005442701303983181771151870427353558220527191913414113908284817159663500435383806682888652727997900551734509996001712526403408950556651704503144292245939717127880334800212214959556014629539793297541486473982009299407554384232625604085199087194756911155511568322075812252208172697882010422355786282328651068235181958303093517535388889568057871104748454817222889514638932950451112904464184991096476352927392037269947661554448429146281800574400718152926837383744518435988147616070356160915894591589764081817315929284939015913551294251436590714358002156636798125203315735547484662974892666741562094743812638624983190588439188216510044288042609387568817790665327667827728250054233728249137266923485424096442863931516329369766139746515370855477847244704099576780198398289633460960439407622780261895800369613829314239997790448266131380903197027007161434163727874777322328223252580170964866507278870310044479989545438212955502652099223172667384207156872159987893113999876711502374898535039667997346097908999477452365951702439018813760016309013412362933677381872892567400534436642370749789070601334515070822918705143093024236414476177015669193020404769467241337628376534882168657067360235536940036881511196253708202854696189908029494149010063996342990355501603221770467249597476523789978340545414593065558848503063181556908056134450660099163682914379426940557122025526146161640301308595631948455483102547587264275105897782977271200670648923244976824239423524902731143043756843997946890267091998864893087334957448927963282029771911192803513956946677217743547669937037192218727518598348251436216967508098148559666408450290788718404455957318845443513870412701664615146536446427864674251610085677060201604863057784022034716730850148099574843718574182839938638775180591236595130581201167973508367227825094262657865941904806412632761640894554904640948291818244321956084018423424772098923693538615247924128938878915075628956537656200677237815782464532626513048054299113920491031978751765429871387702887123915471819909402949756772243365885227271010713591995851330391048549057046892896892391084413924523378152528398900512514539600652036812333832810940410174812939205154014813493937032998857429391821293178022634050776150712497386437587425139683027781707834561295317651883591028277176975666565629709940319804425644509726233156816455098261327952202444257863571516794249267999417096745971191797218183543434518313482511851813615960242510040248734426109442775253680160773963813143239210684396855963574840877186674376180516038645952856855445086319499146110620432764698728629346391758530291901723339161469671206664527364229282829570829630101339650531701232592006448190758179569440197803413690322447382064257098068969670350144391202130274016603388136652447419499034713709410271953268587835821710336771922526629857026727846392826992733309506773860942624808427108187162052713876756313353207566440777081077080378483456710780713646490749469655628282407112247216505472155359930628600867697002321391410742958562460590010060481972435529657948620809835036068313884412280743053546219771165950861091850845084945878609561426335909417582012949989950004546595123529257115086365289725749674997099109954306263048667277944350615915939973368983041181100276538401977018656213277234107899822298226164677236448794223535449485031593226706707983441227082987025633729467600990814940627016858836800313343779735649179805985641671876267892572156701223774781029249471252629700267386935279228373512196386934418261996110630148854199078037985312073862247895204058396508667491963851549515333790606181826952492635809724348754393761596875196002497705876844335136451723040514760696219730941129848540722512620911938876610227228037567126765514401390880556803028804667861400711963353698760182789640826979023770427302473421620187316470486447841586751171888951816071688569748107830568471283585133666792351686321625730106433724023612432688675054478103144541102487071369598150566953344552904299633721200184796707881582948694821702996926827976320930811159995091207771546183892192386984374540150887542475361987516508141808126422852481973768302951433592987662031238715749640227233720528951131513960567144507346516044652995173622447280856153229737655717984671349013571070942596799448480932319912357664272904071062760610094249403539827502390165475031904248159675963700675493156133567897612882176974312993938431232922711774327103637731392123591918203852012446443071983926313258891956674705474825184119988943593525715085319933894418080353379421115294318600123872413014973636707614884534649949321938675489352472814920927381654773818635344994961094233834732637518719071996132746571276893798574968701872631140004510271229079460338315567294409391969288002601250533502191760963901872021579600509942379700400515997677455387961932072956245301005996703248998396887182825548501967873933413185029461242550022652636348529983160920004489859225206231907951283214694780928884523391562222639676389532260445796257707083019964075236219110080468540322838653204192389331617122267795499086102045135819697510187805466704701526313804274796614178066956377156511237617072805064201376622161764591371758600833612614438646852105732703059910534657279391150065619374761325573180719725174379705570706258353011608210042478524702884945892109278955579531991645744416957398435246637711950509691058214648279584106288303813483209244940643579441298900164489177082824254354745449206572169656826574890259905736132052017160953413962242469966099879330806484579081918179178128742201911709568590880529326314549969231985694555743370566695841658844407218170194588902609610180678298579620335721562738499760360094417933354811757348411288590162449644492842122865026203812545461013977322279749859111791619161498718857045306031286175127626297412027715456134204948087668161929447698681522555765477218096618497409995211590133426492723632260161034521643510376629436325231261160721307116154045555053245646197676687207156550302131260521916805779953483666106639746180593424417137881483049216172560890400134072587259218004753370902898277236658359293419027924307833351597090681063297151799568005579522934995642541125088961244778350260527999029638367141117849188593995549034466222850304443088398764072697733747014373230773103524577543563873892336998366691142048914949648201927927528705628139603725333456091510762158794117222570142289902176018489037092140279226356574266052441515519760804322383968083755008538494382440341396096427760304783244986707585756839991088197606298522481317277501715947077383232343851170075799149658100298324009773458576702014935818837960641080583162784304693034256804074578957911967497962405591515240060645770837325462582588445322428434400440011857749503881934519261234858132480140377870434669468375963938380843198324328829598735773957651644822600563074242480440034483752011403176556869524290653759148087452045695637359736163078053381940232122764990074685272622474967499096697143244864393097902677671990203909435584792063633508453486567189746455627110309068600355215694682903441220953986630098527066947819910695807777907706465531942247750465804115665511676981288682292934402246710651672288750119864937228131407884382629472468635914851857943500638131407583437925718685078727504097049740010051589511842488295364623927597307374183030611700970571786318828642037485053799080533719647704363103543635919250066930691553984495429591935694616777450744095425596538223452123725893353709932058459127985357655754014819817271544081131901891107988757785276628969117850163654944087192067547668528508251838352561166488208494022558262370564307593930266385656167888533431389485866191271952487123779827595235240360719748744374068093203167815979423291451267801164952462697747414640951425666256133865875330171572767446040650949090345421553990816165226881345819398809923568935112652335684787512554581780451401146099038605508549996086890960480955460429399465219229687253394839064475830058789244500582802099422614045463179415990729809013350557787756922815582313459322479460033205083723657046797266884102390129911611398595574573902698703544203342524834734487792998950950395314498294550042124373003535039946386195529395800468726597767359004609770987574695421371540456358972195971157744949280667102521046378256272646328551568232002995873589935148202932476530428522716039878617213376260742886417703099170748436539231894867087548989324779781847768776984718994040279817138759788038083860098583427529571598995652024143033240964829616511078222728781792297825394376454949190197017306228751231819307959801336148357042444172620174701527099651573855980059560847435422924987867777749454824907943257801363332407574595250509120884049997366738157168897591664373428841399788148138710928116964404035581904224388049180433959009744156395147946567666081502021887061117424850754856000424397068227969407088693718090089635118693925627471715939578278401863462275915579568247497942223305975520634891266394069357287422046411906210364138204605755117002683911662634071252811040172314492540046280458075407416412950241997624145946220374039314741270703102197175094537981492560361280627685203640484586366076844939549646680655182670534975574111792670539213646085829898781911585800455404702258556580973245407202235864907057376220806014045153473243787799020113837418797516957605857906528488766612972570534925274127071589719405509855768573727058352907642074962228422811600432779162163037275300551161613938963034750441262785426219028800218415160855056889656136592050632564626977866040628369987555140865933453426677430316255930786841924328390622481589758833191366023463459066154686175877544001261733960121343749030861867383999616664016524919581379358949446845154282812656914331113312745812994638839696038980719281028778768405170752077861882839119691502709401391496229245002438317752905459274809270183610474265751123410943754221042655518426299254175246915561443584962327365952909034935341611606829332703701113772346870999414406892947802730025435327126717582599122000906302990990757004060586593054283425243201775968163358258534973796087372383821453291943130055699477457301782168545568313195890297324378787295738312732404586264585136543784237363706681309941130382720379770745505770097840527366811995477333606203191939562017285262034891452211331651359248097417951909484305927149549479607544915315231341612542058973829556268016330518934793889242541810577174525902726227892210768357600298639262655085218977004991048767523509384980325785477431434951169251368290099129071745277943488698712549560979534317247494455411149869606114345644642862229091053892555423452600256241528539783234724725080180093745661587798481058518030251877229696750326559166669851466372368374152494746682733496440095778462148631602380134094982097983758278673831786301397413683227179527770339904402781977653660933715469538004866122640966778132568800545448280043016962316806978407420129897514278074624983599949321089859375671588716788523906480286514080340148955021837812035362050023666118497555313270785007803568908168287018133935766543879989934033099501431751197652973651186903973212497329535983489657402296671024319073108018339423427956098066082206097059194662160704607727066458460776754870412748606342353905652947819963468408101762377603616491796999562433587383374617261896266598389066081371572962580027484896749351840898724094821697222261720504011700861260492164781506633773392045519647307601859450159000664210844410620812059137958733690285713144599935730750214037443586865645134751351560477061393554999955005000856507188193323980915589168727267542953829777873040202772827341347018626048642565395690743872456536233102339115194743914708461920764717533352028280922794339008533930932774681500398682178329780471707706245237904037971193094813174861635730756258343295095768973393321259767695249744666014667344779710207671211434768599296269594202943624380316210229812613948929693887046912759188326580713302841127786417190390167388149128146369003328238256161801588595419183652750282372102601763349747586436721572935049224829177122286384499899170441402369992330800085208266038768809141226083228972744738834048201173195551630157634567632082483129052629185922642232460763534041380763083286638329434379669903250577195727043564617069572848016148495981541690158710990188817698393920479338551234755662824810243448088146460251663614179432591249508363684500334072245034375254832221951542494596754956431304293587346136255640164365418206193256017596704756006015089806363689201829041518997205067591684572469182989149329549054080742964591474413107293798682514668144805150935768809926678870528754564457406575521822406344646199529955346237918913260460060034025503851081503447875851440695678219502583178503854948736791156477760144260806919969124932945235135689268729120054413579240047313018686414030359066509952007767710860659314712488088309591634994814683026542946882574557755740411566139909708770545260496752808575554066210855672134271000633565492436010531956096153942967129653792394160479075991597414598473179116722183295237378155635135785664868457419245815052252756254806673803067297212589194848260508055960439169035465111071508616255113333735042015149486636561157918771507501416939726806052607159906125992205704521330752156846315090763828306530281268627613257630274758511571268978219197762600601020794722752593031521047672371954583773731355539794091841292278172989132681431823545520791905052603528301701079347253634438229866840224676175528752686247897810937482912625709941836315895255585338733464577180060257273515644814236829986102717462789217745315307219132218507500919619190708610336601554811365425297400540335571684654446060815239461619137011862067379293898119920732552145705966888967901823879624507810047973463053327534078782043015897407505222156489489073160533499252359158630254637571378443819685320732835407263394710924973580553903661023130437123691645762515680592904948894337512386188461377078349348053584435071812361071339722511281711162511087315588553370908669217489462428790622427228717858526303367934949343058167105081844261268835454202229588426205234124390812625730038974041683909717771503246221696500482020611674268500301984829422514468607022491088478134132172854603682658164337475135701045950544941959792319064391057163962534620715759679588586238253286362642374773688156849441207697686791266006197444577196891519626351198650269654691681389650881349452555304051585745011867482072086236883089332548240230710800547926679726138516651668242546302757658006956647529720047033559607335487465147102403031081364542822300902407499193663678526000294754194659648052126613522199075595244508872759549224912206606779409712234726786353367840564242200057642709906145068005201718502375571771394768263038066643444903600835233041659939342176302206456171245296964988421136950281991759531328975478804843729203543230950793308372857766431505379549319432107245159144812203842038212049462337124835892705856429459700041461705450311484776616106854284784136298571240166455896902053377948336389561849509804610957127469268386556196371563755810168516002416785437858171784469744205380922178172732156978294820122236446056251372787280976152862341679732516766249668594574328785877428726202956538089453288160102659281306651092772470335165762215094014800846226577770438456940415208401125490036140378499944419954016003557227241183904009844488714625562196725365124207231802002891827783132182236634691730875483484158757864534881803839908609046514282280942811786304247902328695890409687066683190524267896499619895944149311530265877178967298431143774414153333120913771851327692570934543525510013302081543514355798590907619352182402628367662539897247834222101981298356649466346431803192438490974840089728973138192742326225979822683595880505474154710870316058191065809168791454159742945776498239740747447087291435016528331515022510460194914841610053429069178538155804871955976412003776566525703396416308647339653163258803851242605003622989815236931937463648215923249829772555696196234083465683653318446169194768149823551419684584015239337356266755354053600202587562264804243233616168715163668196323338422044327413713562956010711888908282318132428831253926275671668706635670512017153242245752422899603405266581270694976037401735106153231902298397821231251123745188525900122284100459017376464283035284932983930181163171482255370687707826858271028040864111702720089591898071421782098643613742822315490331376220913992072363318102576069540260385200801640211724830363497483059165128740342240208415447900338332915782922571486994455550320386131291518792017205284668926453957254169659823357938641209475160088206601063661303081379599664680716237653238979555495221853719618404848171457442104236078654671419852527699583166084736261293583144592146923232882790576092391024845601488029185977593439259441721085828598335971391757707583842854081118787528852094323747425028233518351709494566552523435880891075442939327492961644211443407141685185506319341225116618502071859841299066535984888721753617464625680432027798583942271727016432100576684593930388658684456423852504672222395915819296485343671800661526693589565701575215299842305487664898157037588864986427844167648462330738789984368895000526996337751177288367611154283576388507584525841226558764107694429807692794128547361724988646450883346876041369544728025889384484131010775840401630948013538941142784061214447339805620046920366710995847786300623808006425096534051348001901054309213814639727252195967458860619710506314601066502093143908135779333032011927360210818812912322044679434113046747913476824410912144023492371685982040153193439936839751729209932729370285411442403889355130633267375412356757591337854402745920225363344277507855449485934651863398784203119437688997090777742387865103831285474291183285704062133666148829055280693994492639459189678935254076102533574619977194453392865906092306935683742495743027731266252655494275254252274271742975682947177993513840189946913535115473100096746749524309785870912154654652510508506701871771215726748371068257956591524979191606769952724794559488032581116332980929804623698745940442262921179820531706283725705020988325013201020679132941541407606056359551680815142951818576237444648115480705204553284307715226621876150427327013926318367455104130416248702943089120462792460325120449603840751708877406402843785717116178818083973501419911200977031622437279568781476667192047110365606978184372446522713214662081134155260824262198151127680356616814818391597636318285447806397562950795618173036105149168157973852619128435160212776140941455717076229222931733678604362076071116252374955762219249086995005039847986973662938940742890895090433772432230298663571158060678622587916045778437566748025592640391304083302486537019590098421057940958385885667169892306658312381072968977977510129749323607074851550153476963576633209888948569161651570590144904199499492464988290690281515216587630802229415141722820564546502045184102654729121788303593443099245510152997944195841602563760582512089432608897035636132088446016992505574407722567954175085720775877893263101206601432275789083113498247996112984711309532088953338390673467141071562382605857840337824245993073032948632730959083175384021369288800860900561503228656520731537021556834272281855974888154646516882316734419173065081308197724194872166061513425294641623467211759127180168336299462686413844094116070307649708423251954493150491368341572540017394792203292692409825222366416130149705055303837742252603528139040395925301664540653248571005333393618799200534330834089151672675380976194805605533754686346805443934763435730260646864071655176940822572205596695051331639749489841096304681770131454127329732919582940150872068889994115189887639318029723226138851901695061268543404044527465720938061359416246208349757902593375691124129777077221948885745742904617084222994859702787694865948047248075473916563926096815520604612940880590763972770613867422307351808228624786976120632256158869071362343117286945966767043139354642688505442757751839773738397371863820971168726233987903391044083316710974319761879761942762227946745154251325482887744278058095526407159045842856570921773144030697827366646918655669134413261079565019705380534282616122419856743625215485749883055692600045815117548662409520497838246841007173679877156785224904854098020710177191208115692820163871478999206433081577256571368422665008883699663534065553504788499959338441790521926828234754228267232664063082983888653355327008806739027293555623286498199134725767035250244329219780165550711606447436127666516590818600819194863072147602557399986255954088054536164761922794281559072436796056329352491261109965642194819443645620722520544520029802697339488101800321881319779187452219668157662357011884346855664198415975950327287696331573717065759990084599982860529684830278835151134779259318546201719494525765474335498896134683829801045455374586647983973752864152930043519407358268073309687277919877438438498932748050702054181900322918885518736744342015086651444585276721592051815346758011145442547619050036091630555568389726438851979761979456208303449393203112950633255530276976966886500716075283798509239048016720479965856006517201971006218612463182566975482894602044839416957100062680626517437338786507161959426579065578200471110418849616816709059350125466960198551461388602476879570055483309402923186156612436292017339859877069072499210662815191484823393064977263176989158904881055146529970763406403917787604837849222787247301195112983576432155729446180707032871465222651921359070696282994979572257659717803808146991904149711186439318687576768994730993169886874535333239513079348581672879444284017276252706233319596680186968135878088833656255719259116867183809144418744557153520644420660620517868336561600333437294035855738921396074272665232575031104465284499551404033002163463542796399170052051050017435430122232453668978143105955816929318434632004046846716318609259123307035026441740818455791924674396327010743117017483660721692622583033962558299597077927022239049601842047530740448110804590487572530968127882500636297086469474377017698501344722255523464284540160394872965957085506936581314774174598274870501749685827525202361120939374839120809355147654789119849188699500091925710316957246949947014429412451872713669783204018571458707389048500192824534710455808446693095052246388452137211258522809541293229386582252261963915505841344323304228447666990654869481801723235138606041558155241308723712887059058082084986639483508169251988696145334502220070497977121703331744717303001779956857159213456756655770842252107733609033297269982667237055754748764793492560394855494629173697896452783594164616044647973900112742611417282525712156702836772594045831043407029270145693562698161229667328975686433501111234470316381127476738031591065876708205285065467442758693862817709257818858122485858765341921333314337864401723224313468534402729566190839773028530098759008281227844647627216191234491681867929362493132357554329899971443672742215100060037994209274712883344866529450959161861693718603201078442378216353638718086037624525132867430073098089752070470677333907835981065112763713944764749437628643313735719300911056005775534540468619214211151120747858899332438423424269919171873275351247780692798197194159358662924113222834629411438944042975721399967043858358919341513927887176965231685845442159937237808712602327437893620203449045653106207099356184824716637076378836465680367396624361728796122007440574697099653494557044595546318627688207646778558333806964107882669035837236325318278617797086511428514955838273008964208901811043476111393163441475206953064831658499588237800932838425881369435441395187408189452693266112472304623924776420958835692303703668120119722597466996716771855441150535650520406066762545213870541420802850503853238764469015329879218458331326364577481330166308974272981455922706319860312281137588470525025964616875330081334634500553962387084950241337666483210520684642193614773667268548016816045565599008663234814701250941615067362047899935644719267387712726741107479869413463214151917699851106082435553576388191132019841046160714797311831093876865484749208151911812559177819494716851911745912254657431500545278124643690976328801088791369479551469288379184370938123353660219410822995703162121787947815050086528810952750985459189917289388509060244376368945214483428872256018581852567949222994831911685557771417376967127755016597150829252024646504909627403100123103741492762569183354009791904083999964678348443749228604885726811433606304339559633824811118457230552284129719779765107242307784776846049802109153569461132919083938814878364196862825657284723754038396209431490894070137083440422913458247844852684434115949218810200044251421952581827004979579217393469320649922230119499512085077103958027947024570489263007258565018885177159791246934681784036208703114366469972670612661033757864509993207899308386141455340613928927809916194687953068354975619160607325452805349197770197374246420931956060164155527699454497490635997111229382853601699127115167080713143633921477213401410690146665070011772149713844240100115667686808157520410159564257361488367872078146443374012764436887313490844652738905244986230223145318363262252104312089718447592833642776075609275417625754238801333555009776879123128788101932553352666035202370151798867625358899887285052925060352802851090056834299594265670282991290490243435531677296934732330761707605736881990548068778760157013356746778327757326419362241552972178130645832236542696114474340209594716980940040201053269527404471443514951927185519140142783465219373063297648430246918137389778827248415687881655842896552927868163761170641199173324716186914092635487252390772797521642739858067294841591376968740917918532700852444635181075882244296666568568319600537817447419445201113676783069133629221779306178490271875982353448836098592997606401161376547745046033296560894363486931815185248659287056329387834895628892185593904120265812059764091478853950476483939132831826782350667204829646008367911193081276314033222225305104126624546913757486970244376996754961843790541303763481883157668505983036349535029498631906218073188264029836131560773810716429747081776407464201107005455470575783026017475069981653678937755913422649882619374102080256243794490923468185324708424662266249927068521544380983098280309595013615421082163786759320288548161910392507777673746651183670200056318518914883962733968973602795778799814874115045430846753269517394796939590736967597120707599893425430656715087014952786805739261859721089868772765377811472882640165373970343393850824254244104650207503320700833705672492894799245291739263112561027220368952188998861035631046261120743911856003814419144826308731266461693303486491480715241909676600354474938407410939496249927359148515209678410012248400238651574661084888356192192684262637089182905099201085456912346944717137221214888226936252297251220999689585440262655051343383233989410511914560478095902825101959758693384576293785410527759378676132686952363195491885158665237348873906369208726467184296111766093544974157255490883867277468909301715107765191300071707991176254987812301844683356102936171061669872805140161807000608813443632741288686075588913272581881260568745403843298332175722778919065351628542676262274061526394868905515110398779877538559728113130101529290973242770916599562124023197298871234144896598461387636932603019968206072673744148481682363817175771106284227696552230146649445985091248002804628605360114083561312671996658422833076254881989039844528504589984713337389983554746116110584315334505092135880838793513415141844012186636372771753946874933348896178716868208243177392776116690745827922017135187063448704951300537965125232717572184992516549023686708437800790972702387614400862520295046437848092171172642426966808579407711900072637692737482161641557257958747376062269816748373118600628176865841369817954081277053721400872226002814485644086043733133030486852088497277460677107916974947784323183750991701667819063597507968748527802786989930598738213308417384883501072330623512711399902198467552788184466206191519705135615592710297811480849456608629216632327604873581858548519067092980113709313261017350392242778926247840598579080372244034221121377556175603406961030434536098916384271792975078901813213398191234225471927491217988973120294015453598120546066062679733353451807109124289918069147925919707852211048453229001857943383857116958546101518875996642306039890261674173325452596787854268597345166415837950626909868382467094135024037733240762381136783723302863568787815436683999817317286281927086577870322039228720952037019383002963236252257418946145796346270579211736989984022588019895198673615305559622540609410920001835881673552795734092427509548830112834836153562427950943580776384051558035966337817359386323322569091646574307564316676379474658199241597945246842220103605735286727623280199648027044836221587465996211437720244094267462768527057857716473465893901634253301371247454257308401812524417157638617197618729261311741831550963592612123213040160673544069583102675510937107283559483869008059442171025512068655263685661674533780382078300388696556419822893550392786804157326577294482261379313597568674805484657275191966274528427407713205372507113227388915551826642317178356186272502832208493831818150799295780431963738984709067345129784646280945806791206224840702334015916388372107741941045551371226915724296175040221337071135144294064257732091925703158289707847048603638501316583430718743711438459727680265835440933876172478482373807785452484675724683119338570308936586462140722359217240368905076956535888799759536122305129940300074360268277730220888816733110199792712242080617703980493743981299324999479551283086061400814642628241021679078639943495351682176833184976381492440599654070671675382550290961281470287284990493471853194656590083997681387743172391505226447434679963187590619315540948559291474802998769619906418261248614554039681578978186939399825587648788804420394006250835559571438704323792434487462051559964447025754394029875414876743757594450068202636620429991653913131446150640302156026938593093658876499234536430219222251613901367726964054006191315079837930850698961687227000011364033765068065109954746971625887953817898009450376595483147171840173345101631778534672156706901841339301344765930158298291354393752943023465490127262031138679202424332906532317936806298322980482839039293471681989581410202067905997180712431386044938823109448577109608077153215087342681146794457166647987227528070569888483269610210080377562437339340152013714369251788096758237727719537216334729717166435685849045401684330387604629967030124363534763589169561356181964982278315536616045901246227463362066563094429581032209947890596108767787653114780508025572179342090509063686556351512763853001236420961285301762950279272742174412561098043632076831428686178692020690098753340140317940272564853420336258531401134418781713230741851961555387970304646253611344830999325535713784886319533601989415869156159131984845807511807043151737389493543791005781169139355136805993137102496069119202394231548564750380414203245037284745027504229993774075368837788158989737955854721138561974247814809743362089831395973821751097778327814049845567280240503205790749795018780889616378799564318102530647203141975071360689126658496994204156862171562425322550171764597918226703570320760354088267802875224162311935865889244829293437271581435940788147274711724822103184908352050404277167461133303615381665632777149190726647846950073739277688625807815187919637657177269449450030408801380543921338495051386775904727092227214001258034203789660295232161952877915866960020760156044961983091312839941872779705956482237544066097821022385612533510637887022239606546212116735841853165278848956263845657175483970947694323964985928001226302685083012186499285952330634903548398841517972519550441390678540496795576445475131862118552672807827868293115416754292169150308319536111388536337196282450048608688542360054320635894254409139323886740101664586604662835474099416687560420711991402995101472869892794440923692852820781628321208067466708452865400329052994192509221971260646676315122008456737900017122964172199152487020149730167833467697777222831622925057915357224178938055528084354998692702817178545190903147123136260131955727043971079138824017329705063880251783162173720789420063874353919723225078556295955344074574481152084781774376536503933740989918244809460730049877652089978315172315479004111740932451597291789003681564319567069775292462231660749839716417742191341276279952796843043565072685469682827084712156568543564743732470246457257698633587634723887465214808773261689608543250549293361408993645045355799603851766265132912870128148815514443070152315274490247921453519221882889713119207317743041221766581428791145901658322973692943100043763764011744238454500739362540234133920925642073202624554546232650230290528697996606441486146045600032476526557516129744360250499003534598003594488275788434468919906226160149564364952341841842210386311660728386403567943812901625226817403721170436854944149984763404510942496641702527308401728842929930700905288143934339888043421765731522115684565176330224287616241485263620987383575979637857032805665495141751501320508330225082853883922251611986938134384664401291477132166388101853746476688493827420438525003490068094180885500683523642135080240540310330855720657817457030209749350279130823991594681578039549463920108047056347564998325419376097992807375180448006766846044973135613332405058666295651278570239268953462071637226312306641602091041137799665780508503240380524859749380343079107704306119392911046487303633875209762342747467742847381783736217030951572796486700812878948835217290906579213050336556871856049432787218208312992936056352977105878857708403592138120411050635377295127846280882381702816995279524789036266219816627687321228437203102650222290935823127803970447390540138841429405223870623251939440488296152965992086677928327253765020097767708046812985562978207901161688454910960934962155601204555115013257937948015095572836823718395459278315089545247563090467615352267188822971891694683750437708057060030459127705922337172635548806660402208337454555349796385597554126911550886327593145060412107129377244510935628750522995310726671369262338806809114073557955465446027073936468906275768063680464326720768730588193247606562858070616593769148499157974206302128816829698878872639084715842411324724258840715738298971270055531980750378594136870145247532942227210957764263301362106804343828371270046605837979244756277450196674591185981026811631466424359311121083417282673606681805663901044197326600614644730632236059155892420361669424707515706575713284142509426917346790713610633708619802461583138188463069636348061890424970999960237578855837180034256965674307639273296991726835754207005675140344043220253638679848297528352837836929303753920751421830421004851007115207525946636377962546260330225409710174373899049110243724228523720073253822424030017756557310682882542898833372200456517988968202207112519808983486251380149537033304804938819166288939345732228921504435793687342243092210308897013764359591097692355513174039042266526408590433604222473923816878589027776283852013092500200147487592741871614308344919866602612077033560227696512631626864907008042039700717569851699069904032463724913702073951566284388242975436160256114488434705865815410969280173851925343800007945825893480864330010690155685014688277498997806967073090483894119699588897473572768218358535126026282598662100788459924294583234716909950629929317774372101450794007564985850056690110531828498906477127385350644152175563283276382288118588582719221286219975538296196293903542643799820880863367298296265867877155376525898413102567706961947467902270299241245174390935099981903554762911649519533631946511450605126226518161798847031952779783547718030609102632269817634646701908987775765987979242455381341873125575099988148031007580115801521313097320188546817431876437013717378188140049150337857070054242890229171237591963372088870541745263152956391071887667595837139420483641185563622493984360376203232893637904677248712211029833493290322210255798093610871492643523773054793659209813145165995517725912872360794126623618919682376016147038132113525838075565171206770900255364594884076131243867204958406226188082584391180583305089619677363354145669957035403936211761112044140239008280224271832024320904949369122703793246461251621413437287362563748923073369641012029265961561729051790505090548332629274804252515010887403240010420455367010395117096170591264021984094895452017342724809994465915134499564631805702311316153992465018884516438706579876165184375944132283283459016301841536650548178514160726111322821034251700624559391129401048916292596496733757449678312474416492215414946551363650869783065053268498455133651404819959193304466975759303870242195980944691475318349747413609347506468607823350054372498789481854741473996155669067598896597463900108768381803929995080447205734353313269770620668314685213573000486765830700976862344842354569765316007313183211146502702691331712198140251564797350191291822486173357956419921669510254842552306707742499642324432436531107027048119528132390854649186105605229753438237570867496583463268351305638325738697664232635687019887251661581850470897788318987675480947661893194214167647673980630715038040308230219973785802552395016116429800533238102979079334463000985325769068313047334653690153580248900489652235781161471155169241306534992037134415198055772244531387091364747560327683284482292478762353302966092642743643808209561141549187074567466699156471931856487403721106918631088800959238088228239102991716522850019054266840466977615030596376051108009321515838139124460551485833028773936068689471279322770551151686537363515069654871776188806310137754274916776037957047934940119393729833891140615733450157362327341635432742656341126037936532547758343209918512494510833077801881737806697381758087256856096930006812969790250982982300925186643484983434696179437319161902280644227128044885590572084089057230059907262541115373178564676886851158435100113838261326573565640817071886816363018049843825704626177476971414453482204324158714152276821291100951605227914317454065259347967930942254323485299882104252500664908354497705683346414634571985198094058090822742366492920448130337904671957840539921988533125406367831255543251759764526959300110053127844534831839790492087773078626082793050411633564561665873767660521462230269118154523629263020855524659867663502678068159274385763037485939652507801103938242083935460438930889484866485653472884023011680201601492630772762600712290136010789709004929677810967764456312117308207964449878257858225797709834525599309237499593723216403765001051407648099605880423426586853415731357264828083298226077089723909349641256645868419216822488050847775272305269010496999361856301745172378548904581762611246890844382035875184711818647303936434720226595502607007003636594063908500125680767143663489093394096025517657991499782939869963338911154734110855582431440353797658303638296593241927044531983754401840247633066417715426107778759849251048604468129010760891711154935667585754851017905390216703888974137281343831091026756851875414992694911151270903924479863289971834700115807304540265621098335450366171022404324757532342695832995440072501407599533758590646123454078029577396225064139375908591766576675048972085202854218922666613816978175092223137940546980190006842208566585736628175484575677393162441780725068505542279722984054708710991015827587308083082049383947586168723975381534870952132921586335838422794979701553658188283612433189268085622418596645685019571858014446108023551744883646374348347865620680398610934403133290068086548956310629173382440524698679315755672871981552502946586243381507575858790989094201244245025834850042111331155667864982118139094698966942742254423780010417267084704830883628731420083793012748439438571339556834264325002466198029986760346667271717418997021813284411683084959948567328797753902004520075444649737633946776375991328860349003510461588836644320222507225765805953457650967742319084299194072246409659824133375193257247884555406361816525180623013536437901289268331412584307235424146887168027646583433605108379300546012789944601718602339012470915673693286744981472141641663674720541093069818993475303482832919888947660041728907310342202332043192275424049389402186567184738561577285047635676210661939460148255190901717670089700337046539594828393240943363494078703925431954590859445088324326435367582250691140150168349830929677691814826660477979209937804505058607967203862229373968597074037857588568524288250635071313590177980029006929444750604719203229751271645783956684085484276718732315618792655480856078486696011304674965997832417712683973172646892038951992870349138779364502353155644445825940812584132872209828558538158618753885271060677663844791986299810856776422522588001926481782499993315161405924691677989223370243048833648203488361235312334239186038857483319389345362288364694954541082732203737415631462956151099660146317607421057633191854763610619092024412426263036848355372334628006320425994785963156735509934346584012823902714076103913722141677169185185414985260365436807920380656760450853009268121954666451401597466658970227108107978830635115177960353996053200381628545654632026647611985193899289123147832857307249193297184921718615738804865276603462077670593755878614042655001780569652936878004784186567538739695179993334043859836452915539327087128988090168153067408062694703965193467472006482305734299023326545183505313443439515058608818494553930565207711060610748563892324850708224593528132883086944748504526387291238333715396078751608846673694831711655575131053977490524217643481388378001386980254366094117203160864916378180777632706609502705182417200959902340070870945542474654554912494608220162995732224144627840597174947001848712858447157200982943442993945233037751535703786511207728370016514629570677351569924655386779510938652795876991779207725938805559336674822947833602168172564650621240480944809498462839445446839720515396182594682569976258623350363129338173181808132566675999584265185688717002854789165351464719594138763517346747017514294894271646035742825408012147678912952953021471805051132106040626317796664529840401928456046342712359219822922287681780099843879037758935383539903589993329241169278071262379466943491990528673567331039446866860966605375671136730578642737799675582896287570789919223896774797095253003266866675642355595334580578753992599498226247111378812583080482691150301519335716505083079916523064847187634843413715915642937977099194840931649002620199159802224245331114852385523006257311504676811653204180336905347716726540309050894760768646447729194886902052886870006661492327574796878205969642096420211245628109460421845460898043746164040775895672292433781395830715980145019156688562549276421778803283450503514850003464562109961439787906054575672917436056189403522979627980574771384827965387200366256792259544892779230873978108278254405301703592028606405828406759306581302739778097984102164754105691141906275894710102575154318137913252768358291218566867842589502209070233769926951162484123568730213209814186304170053251976552189210233736942318649651763137858614515797242287499761549018095590463682568376227877194426168437500865357235239189600711724395558590947061309919219018962897006913719482639838715322257730994040715099397089329374216118408283990639588394393137195691789482515717242812215078150316981132052740959040900189812188698569560901775664573953367019193772892312860443658208537798409954077242775740449065859509499221175714893627250022443052014637414685860719813482970781075522991160337516534049394018611835926294230399940261972537116811186411669859091823240845901525301136706782982979999297275566050313720665081818178725908782701806057306877212143039778732659899257425022080370191568652281053419035995958647395984744963219755080751840242473266032067884571619570048768787684594207265500400835986009930404687563567979310037275573621633992625002492140994133628317108570672385968827750802865361408694553007376258352182650391597294598806672500212595008975734172066303296087758321927441080349394409649830527640037402274337480295308094485956111551545655156617309332054994773351901191775145160208292004389448626760343009308060426348328148255196186977251406230738640352339005928734555453272455068968406792748646079542213006901746201331396786622864347050799458035266715376848500076766082495359362549578008611430932990651146996072204600103016289298369216712573980798020568805304254366187312487316212723870141154797427231900736525263044260129378667809422188109368340283905748586954669659643628905215621899131974813961688239465011020222167773263780335414700991117638584658786090316112632261722616044658363398927180677844397918635036997648641518819028409683423976582895054702820702683202358332679306393548082958648736108438588974412493550325212940166280424620547186840715801911995048439448569248120254267264314267890140871603588621739261985396380581747972260519094311402486668352595349153442061865054398100021328721201783822031635954240022768058075349763981747733585156323773603226677802159998456809961261736902223641098327482176124588295038528912448954169432470944065449159580094504621183075405192795604164702238510500712903334404930545773746469156994235792227388513578442967489724007757068458888943630650706889468018860983030039744951071383940015695054220808875567506431798227095838375343049429165422719562221548355953757342461685908171036192568211808972522166190908024071594045116356640753423149163069580015493464733454484232159166535936468319614004274387991339917253701959726375045155809022787762106420676268081794272263501731552812028920867048012234544899308575640165660125342590735342205829886299321991934745220267895132672084795451071036618648676207057343848817974526199955703400832056646309628680486303081546305422337078521472332311860971115066412634830488352969302296006901904401650444357222561047509640525964864343695312160283974583918837541784881463321116497890226551157292883232913771879087529944595138943574968409038664064867714984217861637017311095642725896629398890655443216465713234475660528812127992085013079760371837575455245505265184557873051270978882822639633343087744531360276928634471303507626311006571588568031931322272836493979346635987720136292800603925349771211265023224280021762078155998917639805570844562756262674636166963215188634352899017214150340805296836904178038588243355826277889270681091848843734809612883422412563054236321886493696536594945945996936702722071449759606520302412711819031120529469876785149469623758736313170413060091796139829410179107852709427074175879372285051166551683985161273399436775338060099073360941694182851451823531803663523201694583863073396747627444203650315047276334675736460623482189936640532432300239728846561615000310632154629350640044092987645205724156320038110111674624541588320471207753489215475836655774931892568925227152222894998070805768780213184165341425687071754304987406364004017503437121323601378688307201589610299965113663605116599894441982819357283535316025071457892733557328622764363164830633872085512725872278647299235601588424504743084391131861882171996616387653389496224779906634133896363167439982429045502682373039475494049647516023990805176192768349168761924364258527695718926346309953269301240382464983121534429358592514734393697129139579234369007396001728541064094441857397078456385880598916573303390804163835883618953167931675694322840504797060016011501153608009902352089234238450123021009663480297651725160451723177123632924088219029835191508715619599298400665067914323048631349040347754271813637849992952617291709313470294540103357071681801062101246330335856503103274892974582532615364463318705526324597487131386824967985773342093067636411472089334308882590427466606499415006022435298901162386875096385005248425868051278434562389633080755226095936103783239237909341727912051991437715613253262500179929558418386578407344660648472593947058376639592705543477426132374560986411521636294898199492473929201537546283131082829040263791375970813243951844709897962503971348569238204906157407782647213519346438146898960190571655654221683938939719094748375562620131076588690264666231557258032767346172962276407736433022297770005557183379878830931677759194567762525266283288307607572711138779496643923193609830696695836666279140937242511324513400717002733710504552616454031721429020145574440960264396724949176103240077665880998871395024240719941908866238814652393844834624347212469796885622499311098505196013935368585421609226630349758211698495142617731069043045392201066709070860273672804723747672039328768849656604726460356622734011067045605837172968609173090445387861350744213376480389976652130878660808149812596856427314103817340441085597726790169234702639027574754417509006527598494967974951373370745655379399853612219616172470305460235965126255854740889838127809350206834939597405619437889039780114277221576042651338376735829304374164428246452585021996869651930828197270744688372137686460186449057371478845722825626919421207764483973987770462968528125228754323706597960899606120943714957622326488309650715039781061761316989647804370335383308172840357912762193443637560903567091628972026610839289528907103481914845131029682528995207466109813578841617147468281998034924879163064415977489538798135412682914418713090320775012989856897206011258448366397062446197804576803231132303262314103363313865596144117981656390749883030890409428052306933503173001156430939522785113352704942423279724397240241789415138115533436602598128052489031086893081181062129152892242085928759992933817286967904894992336110615287463159473999993110703802196518534955929998381753426667170873565168323450651903380666000118995309503251524876406250635752670396292492456549155604953795749087185011438480093944550616708317614121411353755425561940630956968863801729106812182013944956860357468588070200707065454234346092996127085435928323788687004949305319951744778226455312105624770812454660629056649539142500339368019433711928589672644569843649354001408398529097733777757054661922264657239761499337975534256197895085538488364002236347413550736457637406389511406131256333339960809324899834182282920203362817417041171433901919928215894841840919509797459131882278007890009217144263052594191970184160483987703073586706869727973420591890427900845624469916182059972472509271825842327470975331398193677248686068261662327414006052109949551704579012585310289367376326098946201522044031168935253971091186301863021916592609059589384967800185396102971695704117432426228137030600027978816538970777767497464338523552169142025446114174463113975904697867960660411275547393862358461919445319765096031756735737540264720182297558880063175136791573244522760902485199981423045392673461864036022583544889158024131131883477057244200147564249965103127586109221033082003505165186750509711413453795627825618849958478137860166761890049977106193494858132470795895118283129369413544392849645815493825868387142473034663498552234123273533702419660008365306054324897717702732377193133620804630323957031315132748698503249076236556413323555925754753666321972489204035482238506248610445173902074001223507688517498059896422023041994504379890411013100042366746827091674975194492188181418185468498324971062861482688465896572639845293787946565733588893183149413115004047033147579120427131540822802808771915800994354111269252409544611583984817767067946324908817728554199961523084740309702848661323335598649330221971441493804183615449806935866687039711435588042965134824596851320128056681959297236926251365038330960931931601538077516194688146476509294957629394045775104065246680102983742893508032270038919954583517759678230243811859382216830265384061199220947862551049430090819829732146865666942708360453663286450897312635763626681177614642424236161793867789063549944952327431718598050659162214178848208997970225501278251839115982020413710165644099931495154899018709687226808172495803328291091462322065609366989056000291937269241242777882980577050391976292884458374647604248980939592769292579884315118568482027272087209742232231218094926973079487233758549210977120513906624092088910535514019441461338369209298593238989428016158400159158870146734760676139422318987384135969670512683898856139464856578585942073992581719006097122793278888427481579696228006410551142310979255742808286393949396752513467413666843321154397540825403654931515470870758676496304025515152526222075388129012605913116907812912604510770161294163583532312764012437915030212456210999486585878560593224525324862172249938482311186746355708968604063162912010340775364296365475265974332157865343454691601782399163214708848474643424548477571002924483463803607669086255951506528825605427130892587409339965071165564961060575705328030566627711890862917135096636043241067631418083005539310638000137996601619125266038337930988568414136905875929114286720161284782344569305583242903325416091002273995931786855615773457801304675628064336146931877752412058755145077746473264801317820887728623186584990414358244577664601576050611984751393817409722482999012290686532767354543231297705740006534577234169100544769350413434255680283289083225315722942091102816633799964734727103421075814691951922031852375037949608097478540618783110733852332358559834031253519137356713438864628667460901884178178267572256308852506392119732853337711277668853488014706465233295838463501545498525837279753703981724269659623699454257915869363556784175568624592879574307269430162863149399521177264908066160485398256330087625543915164794153139443189404564329793300596886907384086909634951412185953668331104929577799137694807883155058157111816589814928454955926412947046813209133300115092449327183033586580504519114513231098746822801831485092199839998534348488006954631088331333372601150007868154295559143265050095961642875086968935878189352574759673266124017221967491426691328495495152281658367678996395934256666735621821729773281376863397054593635307931541898424779452859238017208495953603306648044800998549159474845906627467703712991404373081674124788704586290509926154421170741220904866235490694525249547276019780381018370400633818770086780940843353592590236212367508672682937944258802293895568559652394667596685662871242499365586261257720311857944747188906207294630901933108992978338437133197395555127649092153101455846472502376465201098075095705043019628353102516249294546391555777756969253597780017974266583348268832157166663469201958841211547303577352685361852754771270542939051398717940155360797320729489872733173884177221458311843500635153038183343669229172161285610019996467448399414420874678658268497363588562613474722934978587644671291035016841775983422118812661953870494544060315689287960940881995093119954109530053419184536420402944664667580695508222086846528826650450470065947582992938126418483125774809964174885875784820755625630701704464314946951377488904998325756992694714657614160458695396053104612706099530481965155239440148352981950703295416664808530340015281718856708950951131057773442459139635862515224536859447885293203843685296699536054044663135205025815778647766271406972109693398760833969734143291859645083453114535561604179512419479883642500218156538903853175700525577325305466821208046895955432110184723991983030450365794188694860041580026210146072494883057315629874891891649601712858574143448464902601598062718446865721136776587260637113005438364416891573674960859026125107547388124784416999761729490958556150754885276215785096226148403704549939701148598065262561663627374427171788225950444646565702625661861604484896590355573015917058894481635890251452672711152717288634117627295717293600091659061106296241234349437009773634712639731084777572760368814598713745638323167918901293907019256854544319984016775217034619602603835772008128839777601891530076090272350490587728128683684780459422342969409718624652699280262589203231152610321976801995742166938001884720830267178384319506712806185188569409437372172148864247090639431093661384069920210835472548574580421688494445523836439858877910378286630815601713564623212774475370343049392550665546355043715476719589876888493447828916346208626185329677029500754652037667357088641246751375439130245184117057597398520402242716446652076779119730846178259807298245219715660927451718260372941202676925939919704433099273571574945207944462192011728881359946516373835201221906456337667281363208492495478103508919135634787127553731475164762844134311742478534921406055729354637605039693993292969830895707465193161872782935802154554662241304801785464893593675062788801034037973940031482160234291420378583074246312728683986879016908513795387339297743663412855733732356268055372481544249801984373843075333954233196246796251825401691974666551107199020281735321305885716850961557054542007206144210013386555611821047931094954051578846459437774675232130554431897653479636954518965441399752581782200572468025015275014296520077373761143874205618021737113381953644866223637084495722448582986766103553907142496158823150282453957014398802166236658949040569666341363561980672823889486968072441267364967430805046810281153754436953486083783681447429157060294896981243828031896887355315636896240120610503764424634881029344070518911900124865779273435447798138583802632330754100484405203960204840318763157038597799361152164078925274789780582833618264243549781011112297396419539106027070174473553212558157161674717051511528766231827430565053709831081796291209168539042954217332215851254622621109393616903526249096327649752373873967506515581573640566330009988701112600631984249756245482422304793854816675980822164067442758431733282114643433486773009175816446321985763766304771037093015771006385458090164348382043092973890946433480752024370600024996231552152534814453386801596642743017513898552658466830721903857555852405203268099144336865294769998301569005370726987542391275213199825199924885397593211703715096732798615903827971458875663125108828234553129709004832464066534352846888470841300373090374137057452468064805971874978089343961518638572299171370267752821706894423904935182239622099093605479340612273710877750717070407564262496083331041240367938609647876913236073465790115654847480572673220088821156391767712607352559330434800041483603677484380496384125618347743709759287789434951682911207764528221168562626648473183428732150123386301849305967613933109459133620996048321120289231200967706455418072350158522916829444793584293704991163341988870962709264214588927033098754058762526207028585459751675890337764810221406147208148607825953948485523937829286069005781633801254677283004274670851072040281808264999439392001281466260530123736788131798028022499510042093326388343240645350683672649586276405460378698647237922941718079626077665413912605749936812167868549556837606468437526491657845285232545399243145781408913120241287246505190128217500835835941361033322466232072031694221905904015662277583050178786568687719665457895989511794327647194008419334365757900976945724617076955430930894843210126564797214084567911383974244087259331551310672586925010908890237045639709074635825881660821437614289450869090725828814223663169552516208185611277917819776793776886275339553340737956081160561268301048785094877585596467696914810022631093775594541065632985526901991561602406097279961699072536886330063779978627487026341220357480406874976388060481841680883699895903483664936580838788402341106256912774255575723218935429599497578970582166524451271005529782770266238559845980490763626833870712082710851366057470356976434892544036792675365812554149391563409100213678646608108086304890112422093171255015877052244968230863301215186239350666172671076757761786325291593926112012933574119324657256820317199988430750251603097474724917666548097284213541692549018739709950175051777502970288632832728844121102509744037817467396997439728813859782973803224069026508278832562271109723824915651669889183942384621674697455850468830013017969711800499288184363164422070967641918714522981658799256310039497114100821818992192159090507270619965308247106590628067884390581208055914911265819354746452503559233133395112768730169413878344018042662754737277246584541741055888649412968712554119454953866275088129928943009084934186282995232223056901469699775099552331262454980501935221116030514306173593343612479303061099457827237433567217214294354337076584703950860575690915393057889766582935650772121413112372870986455189596161012796160779636334519620508588269069119988729022514495007449591360573305149925628643921404255420964660834941012420331323297377275141933680338029851398565092816128405724005590633810664296519291144992732773247840245333500983703455252257014419908372337648882172807709916571326408542389905134894347872636750952754946851637622223604234532357825368172580178582616911810731491934621491803283351751357183482781033347698075257791120571993437045681159384821593166495300979885586727508915955066869300729833070217958195118268062536235441344020288873940310699747828776322484755815105182991627042212417868878018833556511506511778738832895446772061648223129998304981255263644456097254863429528128969595617580048347035440597626433816201991257492233503844056351392265840220109688351399260867351217200178281075735764788157580032445709777785770184916165483838174029969261229239142981405838542434912285655824458805111346122327084622380221095705711833653492299042795890308233560113204869595314254693322375042145114889633988399665728392815215498032507409625202949045125526637802181350801090739775192677118570511334117082693192531853076608582148542974089925761545099760835474636923196564513325548287236690047850270306119118585671339170899979185953112078157011477431215753117842666575359229521296420522676346180264312670931927479843352969344052183712840177491108566718104443168476582854224142047005239425655441853045767226306202971392172490474376059280378772967039256895197345641768363297192085736402602257679464956534580515748602114924795891467187751349787412054816455885968315347099912525083855237820455323142038814511491940243457852701201706787981570375824709586998499520085720644475414288041409219898454559764549264282025513750826986168425912078670477244772510915584535297610144494705673509323802073596791403236460997089215124386990469069053948894881211148230603817359707830456683353869934562698399160920921607522401927161710180330372192818129547616770003619269529241277614717607390889597214011480661797011116293731020068875557932185385462347226452511693220610878894113081048739262611537504572764683033747689526113596366847436427958334361491452403887559113544003367827709315244980791050103988314804568487839656490110854117770834909308709142392329977009601902463067759947910414739847852736554004720876178330609927486610423360930977340075508492424642986841215696106545979445767446793347078675045928794404532489020468619025373595535540231767339850025508499260704327988085840335716076371286859280423401544764790811788874587554009086574514906459887051842030123485443743106294382744058570486869185839467814286898622542635072713398760078991497364138044517039756135344805768485577246724948882040416631103864985916268881185257873911335286273082421844314244486077077145727475786315742277771711381412366986844502200064623566130893525526480828833860992192088938158814627501242007871261754436352762901764224329149188900022756776928764577497343886533482470578535037297138008019056135462655990601924670018739280555130052696774328786672378145942369126591517554448750601871056198902753451700592734161649087295091740662947930053775762178665848323582492103767507335863632288538724509597340939173061098517782748211184198995151964698060936125468675360496036989932619642085569906471545256876877242112003621118905354323006224852901649951655810176858702269554712699055746875203050596306000444856089237829785511109457760886454915743423184311705414253330040010589212972994372499333259989315743109665073478818356232307645878861227716306692314913909892040862446287247905038459531177075209159402841908241893244597021926487839233953257500468188536307074573080999615132276900884741897521450574991532975776546222446354784777721145802961788730103244395523434177114320196841425858331717366736484451862888082729611721381530551918301846238702783724504644910496138189284179538708095070775199405142652604118119832534153668221605507621245713067408196402861653920878875932874404816601547679867299675155379474101807851933828421205329685541266600493221565751581882534447648694399897533153723243037274714308359827702401157010387168681354385558612458840625460198839167883037282814671439903371570384619530099416322274066280748797729244515690792113583064143664612754434253477977619795174763123578045647049143207158850403380963256170056902856457238965994840264347751884428867485055065165839305810708070863378427996320149106352827570069910350977957094702976474649821086136695321630687645279505651759578349573829656084559796539480732118083313370037424682826215230477446387783741072498843682869372612346984849835401074693214371958685153102377459617404598116361454869236211292634381701209146623908108774115009546339258979802402129730815333979849447915601089384954798286882816950852366257903505976312280447653468045423288643539615400826879025903920460762901766576647301103864913011011028600387817736385966866976825961156363976036556192328620097195814975469886535269185988652582104581292795780035411188000839570780492269732143468210798166610454430413253965750581219114995808019436522809628792707050382798032891418630765304403087173435697272991430720494245015055315144913132976693734650123046190825011569945514748840827526123638191876436216464797039124212793358186384749689621215585259841899681042007415529410233895482504763088939798977602255349748667097921069620552428602030101641206762265826291825918688375757283795797684745476630416827341120884453973569742208951547923600300176928685440464154132976929179094745939518263962131740578831660252543460965835181031358250455332549295445406482459721741165759194363327078255969108041252539856367119541555998599016202534586318101081520971366799676829597687125578328791287030217036374886457933697243492458729540698150399800777055852694665686443879006538445124463338744654929722164870577336903235008451112334877114487649301490394802225997310659893490778096230026768312542381827406176946743881656300519907716599261620975965463705474349456187906543116122591947782417205527073782872486024727840491679676456400741301702467003589512058611410116296622796840836099345522134879964914112905600366258579582196143755506019878274440507524508786278943551567440957048952639620771702788583720189151784727647925949979757291448122201285013322777436612207521121361065847405950687589818159464264853146899691520374322637557661380086357327782550503118937226786325763387121328683944733608053586528198509012621710248573388681917786774826129968214415876528652773899808667574283481619377782489304105159697447155053355732577770909566033163954036991476327409438743530621107847480093420305968258918755908416363866816737711145223688726402487395117243197560211219788091994192948530066337658837282364597051088618829862959686774556506080829769895298218340022972059708396275361039667948946434334353216450511229516928499026215160841642472495728273527380910137247380260871231933397764710680954527304537610876595470928959669244044196330709138617840891248131335068320746336220935439494195122944376899558996484453214717694323909171037974676258299005012683531869003452437188624691564646882841637901948197786577250816652806017949614030987644022480644785843821927826318898084045705195665761521459472801083316704033347184952744919474411009166510698237801078441959431198640868296827058601004273311085273145503488706997059981703258797497866295852096303024208732740721645159787816075647042709581126110432898505028356850912566063211901473144151711550675370840329005446618244035598200770254251472567975791785869694707594408080374088158712088090596195795279325553942466066277023435972265571182548375475127708812219774689958908381692119045541372574713827474604130306011048669666172507096025920056527817724742520674207729905055070288218076242792782194601127099261802300425732505681656835747040016781474274054871415653215031827340020171281148235992927035862036686840217646872525763377375315081164296390298146181453889493028249621400286915189063448191826091677525811475225083836803794618365542568587594892630305415805492125998957660187969166781198698304982965552437845197233470050907962876402541565822420229587063516456010525402738474100217461794758305536570452124460771456357292295545591385114735818253887644447896598472054368675519542184724704900747624632039366042050255523476292100207868390093137471206729490996999091174728149836805217522837674625643004918537672322132841905916370808326368587183177980746073171737683639133771262088557716475308257762296612551285694430692601469344094217884056318225332350427818715816128479323933147317504377809224043316064810929473096855943287936449456305757132170902435762213432472985832663255679743384016858117985978690533725543445021241069319650285353323839026201001157944543179801706174424502087507555546462934946105609520014389678361476066663571435752592223676099947444078704350905034927420921732194880641149950018793078733503361378885536843045373672810198124535540699623120001454609629323550578471630255706446556236509400968133372585911362135934347145991739870369590831897210716113923982375770450571431881906260807436625238636256900104405668299706308488169569910538582037392416962143531080193732291161487000414530802411913386529513423251008438041528505576927443509135262362739072418917108495387784544523083435619517769849692585550289774301297076685719811487139981721603317042843401806280687949573209301940800521887819522719147932306142555671673963998372100008605474169978663484218664398871388562351493004806645440384602841172078518721429288888965989520561890221965576162860420909522855617126531084497279817935539783549381730156139727399072550084892200133669713382536648427800418008198178889835366975609033694530692783446033145715924980374411609072246802605134755036186746088729639754176790211845238543992516181913356699130000283289520691540352880191128493468507967178396110493160356499621164463080983395562772172702426355896412593833054966741054627432778359932123155985380352722866303975106702826366432657063928144833377255165845413946442331520714942051783012976368104585102112679407205793662735250036894630968363034836009885564778300328126703813893067416717769576864732711979738092988918311572152609108526723770070113403359236800804540941758689611171808764602590859979104293150249336455459171942194954729021998715532020992378981959083765603055584496419182544944618100490075238810212364442817242065960393213100421384152759031938300608566602926566639157889189850611199524884736700189871513991474060537194393831626266908757834584871853293224303170103331774795323689888722773889576637045612640130477042715092328720578195373128339146078975620178387439716495611307015621479459986390839252480404290131784257770045449036004732644633232127479439776979575163450899353322078216593392898849196323241083996106403345815556796777836065168157037210145215157293631282108040474081833739784466325213595603391763039232668661517508720399937195765290175942420456651779746267255618200677413990220342519619692583819526795793873980804333765926455673553062988586988334441450442607809379367682353585380154899913010657593438813690786673741805496800360571718564206929785487804057780199726266073067933044650038684316882809947942866666907283977994334149256860559036171656198901871761388078800116322056307112827954490519269924934735758940621025434537390999490516195051792941173243831028186394740373159833290455485386258340907346004160340483800237328631789512981985071942447024026583007070575651457987870408021924479512434997240466019135274930171405676002606071251125180767284628810454722957054838720186814829954195115330414178278207046114596974006342454270667245979371360586413805674702659139441948779715159557713318415960703012258210123540367940704213417430425343387937584738689695137203236121857761147067279490094829855704490692473992196397067829572974464137364138968783993506929642909234789876962050934589845709265804552162618278825156693561115265936708824053533139743385847280368226535377137740620420737558586868365262828048506784002726371809906425363778894204792088931168565352295697244135078881497868130018519885315959417453826554125292615779966528838327257365075796599103641470988803839917752151471478105389790184011809210765780991206094891165208309347214555212741800888697453627779401350196292408050143652039125536309968498613985233988220050162052634838700368165121378804057001716372204810362638977624238856227316975622082675915066048863263437951769166311487497440977130065413509399472439482542039340837376989956577051618053060768202098442356493605060973664166957276511095723596317645769947720444736783483373977694917025816240550812522492939044042252224883933786025240883022903356912382139668891889825670067570635070781112230505939974457585043062912585467694996205297314359880080118087662597241844195125693209747011703255855569012596432747690358341974887630186753571047421275737233968627939805692240007209614390099452460282117279247237950430936446455116898396872069293352809523051464316318358676582811246076308770443904565377834548940242229924932799436062565579714318237309749749081263516690992057576997863931795610515167404225786421823727504921230186860258208614873005268086146323881111933265070421517493109103951899981912078872462818816661498625122679902024350848843607815185545832051369750776753267903334821501232094119206008717547542166455499002995547140894402310145332857726551638731260994288819879487742208400351219150234463804427653566735910935053333865041580608012409715479291973754247128848451417193175305932445001084389183254726588510395132043859496897031689478645995211936754582044173745517475113310772839556179153617994703117239908070990444643038424034329544929107170963712395785339982864883949735266250779510270420999740567417012148172493864677185880990062439424776804018513578733579766799086456368985219716472304427207076040732562868130821150296036646574070295036417925543762128534735007710037375778540654813090644335754490620880299808935017422261160969289298099630074447755352101397117307823784862385953519528904999399173512734108033215220142584207400022277819001255892804054042052447290900155069002965218115940935376222687343734419154254458861251043716805338313716263930788970848128780536629395792926534816844547451691481455348442635449429015557108500063028608807798812514075808687037133547491768756170896340896412165670130741243534489097714833428735413228891050040477399304447481125643952568830799903869318216408230707098501689332677769381616811844025037934970912103377482467208698293229198727929264652774593449911503531795454464198538344618191483525792072937677411939752102336057389825952938896718512269500567683818128849246987191971856664869390270101649054016064831495458273889975102203707186958788127787132825657334775940023589442236120513745483093594956865017293300635164335055272412554208489778073683690133536212458362546125710906448872854277353433729540673814159434789766380462025343258087922277734475985297002444930721662907375353652303174888503187797905232827480899008411809519064266065968866708744372646278840296599993814743681142596357525962994796997259068871939303361982619816926896417977805750897000725697890900774350914258492850273516336525690311292854934116486946800214190939343935922723193455177436884035450869018689590986808198878145606258930159998741289842654695605215658924954139058631620395411320364822784088192574341666217380902941976011792122299082945008294854154969269643626398304540170270226230204647973571300915219468176194353050551880035908860776112814870452454186882972689438081967314489380837279707396951032075759718482807678429144731546729607112298899145543147509305023748520784407784487827279881862548859487704304085113674025199991499792727076911193626196602098353919675611689921027217223075746232687422901475365701460313120754943324399697015189194589541773079190217186892666445140216316440753256373900269171867064499327065503928532857941620591029719768657089776442355654447073325982357970823049079021356665930028810673176988175201531101393825757511828049440485118267865738255284913347397595906989176259890800187331456929630909970847048422216369069420866567091829418869239557598048743620919660808227528186945818994921051908376817640232114805751321408096996847810522533937893353339536419257319826080993729233678780357574378940087945785259637531362101583303898959831880869676570303603299501854075953110005441992226824845099206473651731763714240967853518544377533624526712271053107010963888909021102227714397687019789089758638526963711156623576472796614118711901668713046380413287835096044843334524262147203983732324302004068971530102677718667338495422810886364280826443247432915503027182142058686633803678902012341094592953240804692068705140291025105458034977004688796863541473923962186356305975225881053642449479385071166179406701500358134341526577099637575133978232607574967466513248659603797971733680936239990592762093663651332359678213395172618751586791190570708703362560969089030113008124975336695614192635070350969581811537907509629897256533632139052669999304588748054381436745448403900330155341571382859407868152814819307636691685694143012350212785153830751204804936527311450522006483218355950107338484071051499717920114767982076516168045063721488620902856994212149668353295194395526210620138253055707701692292340207043698859859511042516345221253531291184555565976842544187695049598798365816679119792660854698656548028500848224339011163782508426814208300132673442170056154246356638626905958818069847030152115513747834913199215382325239239264455343416284137628721275753412010812950676375215072820298453903033313083593592631986424238035956240904369957689677375510972366412135773964012921200781250333658552810543404255666110995507180775285342167817517966298653465568114793771454110630382225224763463405820345609800508206667246440895026900448935746376010228771736481261982337362716585855270596327124828716993933223812633788778959913391538874229379373083988641533342927739474578736114124335509032114958120470942367785319685793113891530761273088406125801116771675795999746304276392590006357057698765960052216496714713240690959127216418733919158034517368160508242188114261831470151351504533183121752007544550912012989841650483698231406425498989645329844233596035628685310420038805938822256015504351185216131629295673693865782188716995035241114760149220665547359804649659963269921469871218470404007602567561224887757056056866127411611337867311147064368373468949158893973136815155237116463386085412341687307256756144265336979126997841480960740890501689932244310329089125720313494007266268497145892339534179017675969283357756510437160583724425099151677715463817297452222032629654905401405891279084366852257211951330294164524809609407823355476495627260266149489736396957953436150764614150828845448380091874579401995859302881723411024447113975722088342299243889841220036419669795673753898015459060998437265303451783862871400715727500450230630550134286980961094523090351574373248015038078286952775927112039750663794811476546088549441424259162099500734654276445572055227508377007143065718941148036941775234642343120816746731466032053484926747486768680499361710953643559946389010236614171081287197550634816477494828565378348486113750678106620631952308774458516141850993607146217759596557675956640006663648740538115805203808326046121319406202686317549788705733321407089646995311509217186565926779103610797453118708708442920838761464427355710231763019022227734609541231143830218049706151256821120431633076344075153792927058010510345928805928711821581505137913071389597073491267312943001855352492268960410883934018889877741751746998731228921324374895044842620485794050438368636096896647850410475461090413922186387140410623081483784161492828952066236657499400847978744469055208865928107567085315446211015454090774909693476820034037510689430600716647480918350567611427133117378194233581955713414183146713871867337033536239708918021858056757955037568556272042336875495029584398274593568025001720835882283990331562155304280052546349478049559858936727905530313576756988362077615473219294916527125732587850634306880268584853406558370480631583312315577346744206829047206134317462340489697329597458233934550402186074512575232341619205621456936582392594462084188916278463622719675858750158492242057341854282032711691028667097856951935912694921979105289503073233947938549169899017588088645106602733439616917138668521868955668613344809551846025515788095403824620897762917221455352403474823127179664769832494807017035846785711901278580374305851623187875482179139558064401038805887162065234923077412425645687161649647937546104744856509491370454496657946453407783587609989632158633051938897778107529506061168292844502317929574970888055153723742809170106340283438335575515152810341933778026399944740532878631276677001547425149534101493715006473822121973890135100777911001777903695921520554328312669929062732802776506052088783031879531807935606910476256351508939117895294736154395684800725884939209815306243575906305653675391522038577519316669740259959155291201127029876937053883774224225376426202302878516180646886059007190694994230169292086558676227774112880815888686058795582146700201348525052134086600198525994899041241539977060157481137752141592172341007682456544512969311120181074740901294481753768679785549977133629757367846418190561545326880983993600754402069348463752414095603973612122865877710143919000991506643588593259506472431418661116984333455722835114313273957654332522740982970072056179236598628081502058874052105367510369140277682860087834807021142196854275417559455234807236241286993313056141652781336923394890369655958910153183676597169470828425384469324141312132458448275120155329594199293938740352411851658038961790546148843859446009085757450425675385672463330864698788269637998052553590272821769717218038960856106698070495295342262581079806505855928157703413759677040628819979893472434328593553595492520118196524230349269407634990023059775980428994856015881900134303552740233401693850757193455620522974818503263469010914955692650834280857793719894092262101663253614894137003119592936436059143290937243335577961365946794773239616152180736201576448901268034974886958684955140654251522609105341619713038352647316072481226421339277866606903189005302338523456466608367615426396533611654221800864080471653657903528741890889648336203301797957514684505420686376999738363492359976188804362258667346087477591114847719791593930563064603088339862785936434422687494176058857347612302680001999079674731480451687442715809292719297444606500489034622934493300881583202233916799849987295162728022497642983348284054608856408259574325991640341698786980093884643179044486694019771856740124939021497334546259125513031121806455549894890191310283551168890688556563464477778654982122820820766753198014936603927732942420993645112789845787954073143995823358986964962851023485787922099867154741714244033903348399773808515729515438006223757876045376215590578361947698344081772088596940198890346738164882092566390657763531702267545920301268752978281115481998063540457765751922300344519940108097904975190264933165062526897832399973915321858317128309443654689341707338372638223215861215455841824214977386405554669032868877081226004015706440705635803807036707878112519032543535824388944645006097569263477217487618900318662865074294005950412814533210370083490000203417893129006825748473271051067520604644066658224762423812866289103164804383012581474135048335327661815406745775019634802475785407237059316841487795416434870151833765611926469275154314907757249953945309825470770790463308336239268990701410490672486539404429060269817256734469456963080391373366391066266046067153604432981770862203847122546574025178152980608305938400183025189622356563615407023503638059336000751467013350215300166614317356924378152070516730220264615946582230208085153122853089295120871588265764130593400570685839345330211215275648999285428503339876682572286773569354999236137979631457326915028308823495120790951500803401746897761805694153859925826146323795282509706182183929998264948907958775218397579777395260565600095171164647697439631770142650829559086498679801259327654440687123136346397785211057784393504430056978180760772424281835902943523198463172293237016865661328581307320786707119120242506845479256620535073702507292339799239345113611028547159919233370271909018402637155093524363153524506716413373742874590944827493797201611377501325562860867656048661712632875690917004562663471139996282161058906552747906676812002633187751511509089780670922020782483078095452639793087392591965823511302937985307865709854597646444651697051196539779276453271378407848606780284027416115264253863315482950971108820479641230259044305944808105912475047578631040816958657894720326788351248624238986897895140918639469265620890276409248140972496339732242144929461929414371379401015930330802281728422021878539727944201824091415024707567858002913764715043326363378303592129912341309364454747869217231527538763924813622450372758685339974964885601377057989959830694359094874293372291955253229543908534933455812249297988994940648330134259415470989612857521268753689834529966226162135381926010324094349403345947580606746156588931724343974759364353050085848967409007854475836175560678927633893634837732649615736556726078809225387813629163318652991206804177576627413052193508571966547110713250052238782103056697244685279130255943987380568094277714824347691202206649514640257284021147851667165941326037343770511883064472761073316796247779840484811989062029690202626734777367799076099693249073507506518873379660411575661669914418732167600627225755634958820022458271801674192527272365517175260258393131476131017107669725688500036646641802675671978764458779321855072432760916213447047315997232540287424812471058218265820416215491348478516264438736284581454442462106700906840013009352893576394085860440240789130269303952421336307410844288269354800925641953351834105077839601178560154802383812521083055789512160662285721974398036376233396653422053226181739218480879815131081293724148962766798871993997705216591977598838233756377032097076356376158986976576521209584919763953795483279104490670109302823908093649751525176343525309436323795069826601510156680840792535179577037492754119329809721019700470420057004427379132099521541978719265055239746775448451853785552655709107695298498934331883252536162490860182807015283215352466200726841207336917995504119282327898044518248185717327216907690968941363967241340829010331411004510567232673460063031992739171283811277611076393269301710382141846781435699536956130134900090908034713393877204632781766696059618514349278436633249009753150722511100768426758466696842498133417233191570407934444625877682399559960734574090988108473854765498805922251424326217875687595247122674446977536625770231896227044247861267407988496021357771804916613973568806588003075468309377883631164538061050342741424392154928045442671138110667236573280835637102552341173755513347126256752132031781484812666375718659159842163915440114201282766317458493274559664977957337253418120468795948574602098085336411964125711848094776304606292090207303188134844118610598700392002906598596445897326758419240392269645875644959393972543782251843098607001560975772477175609261840505749777364793785212205598096728259421031033913229556187204499802339465981223001430676059821791635806831777061776808208052475846336307492306078386976535151690338881052754628793108456707333871658728769490154484359244472246383996202688825571889114294686317497672251822873676131803977075874218203638561547742456677048355395636036167220358915303828009830059706095096293175158762863674389714594424635016620061897163983877670856731767709839167659098838130331926127395763197891495488445980626389707753497054701379165309388867864209877347913173993066481186329626769878232477687289774870566303338643063990276371907344286080047972975737945276944139520350997545789711632908294822887196440198010329200542694157793247618746608314651498443105792957778368747021523778419589544024711951548569293846800323843675974745007743197548005953391827026945839203448865260729048738963426864159039167761419139056239441008026076732616878442547735165227497701970617456844024605829718628655094898406834648912069305489936318604976943741042609793143387763948122116229024702349970113141560516760925539115593345708881485235762562993529811032321000928535087282257913854205984087200499283229900764211420781872750412132104408898219787396669407676013744704102330663611682505590632532796389669475220631578071829288653976165613004424711321140967072184369489269721192198731067351340613476604176607142166509813483978218428561343596977843249514673755634555656674981304323653870236258712341431055965601764718087522263252229431155442226001088165414879666722746726010217574272416335910306627959389105384425539679047832853591802333728368839014085316465285561049077051980392378320387656801481431363439498490945209602572670453217637595027260846886765562331637570993661758242192139228924461956374373972927644789817437644847919833300751599903053747207922996073712084647130963693574251760919337213912801447849345592865460797207507844637325477537594395929090610479402395932073622719396249766994394175988118012672470981028124369541590910151795306078662554865266091730866836098153963668712411714234986267151097971213694455892243815083201393900891334980583138105691704876585171983269120146474009923770652732620092077717590259865971471575896931101646039540702554099984322016354560187497714898988727807428362995376860466231922529961744641187726588324829895755068633873469450041715194664282015652127775207225954256394432266297253905120352936542805340280327175002846437953803290332602871632815576331479746670726995407566893260303533165609440261631169429725899564120706919251081202947106765543679200842530073806075127919569132754776018365275472373616874383471393459749569418961537068304306561039764691160276903266050522307670472752639793025556298601549887728335839638192941794564666124251525521261057936590608258643836932321469724458943550271891509521121622878422873511246566706856924135140434143169839619880646792918589273119682242570160240624238761874763482833890092984667748691182843007899879667991530590151838361382640734763799429563152603151296650436177963506829544742116525537380657567238609160189477013705793137794605988903605497795445774766312784942683697764310224500762193734804190664587716974841531664381154090362463961589231038592201378883147574580804721077683365120798220812364330312376491320626887301774434847889478674767513889916527868582347084998302511502283057894509604756987948522970955387405982686817285881067683649735193946771829313710500645015486321985690884679219074255590809180620996611644494972432269647899102013402007619896828832872472004583892396350433441595772330486575833220899843770922480759357661655966298292686398864377168190730056512294436570379266113224937200040123482204313306935991780337594449826064083588920008098865766056579597199766989344344587702271706458212377079157377498982362686219168760354463030382594454723953842785115601465431007613830506270449917712463119345206430708749129131968860693323088725334549346006846749612430246659009458521823596351393575190403323370957933682875454035516164843773302793490340586847488388856837255338471035923743618806563336475579265338600633948541180843554896259338460268549801864182974681333830933225295629838406196793043557790556671748697614682615546300926747868214991557977095550410211465089995786877341019951916722602093161503816590582828376696832730281089798223925224476674533903918907664419937515400294308062455357266667177062776918893043875040370315337750104761505917279600315815990214964188968977233941055516562014679274802530905598936715483715323537112880996243788068643424150971156181198624154955067240001350540544332484626187254098778509665086823179235905813966840350327161578272849847498200083452332200265218336454362867990476310497295432077868058058579997074790590411099471318522678853599386937672387704645876369851664535432550483394668252616026268084661418303712569152981995507499658911084489705639231334066638233517757267608866209448619501228707341024206998378444081723572760255267096172787533562475324961658179385655945108976856840441328623932560328878903924213285235771589836948810709722219970731961940104627807375210154198858744824638210385325945319895428264301231808854018273305363616676232351509213172522652251982470112804318662974764946496768499118551940864273497218442753705950257949976440457527965265526516276909693882479436339047520658470343811650845442201196246639061676640929451825070088554427480713860368141418368325553021825845142566051422123383095228512813742523955860332139931591384922026463378014173880396161667270570814284971033645673978885291807550636551938434734622317747085175864623363505426717735095714443167796460193291197776386835540516711318698350633187251766673660298562226985813225549006684697846240660581116882887200514552249878549410781878907354096180233802979702847614587260823046322597385955194853994904088833029502206014293290501251981818356675529395357450088644732067159702926951727978148984942170907362680979229162933347842687029426834093305109377547992105998578391973419060878421575940479530650768046670489947242229227748053724084503488738665568566157816600233315735488722538319920213686774090877039164742509395799200543316158398642773175746815485065456351792796874930813451686713696041250752125195008195600994499443389781838971263297025381811184807494060486467218401381785099568476733413188823884943804763749510329799504712519106694479518496499031475090315342930257471886275692272579767962206506468418811306386240672960685331878096908052086462390711465564231790810004938412840303257128428823945203241753392368734116101069058537668692656282233138946296360366162420224104985813765635131927023931952740979050636767716364171846670860592839583897828160238810288108323455570566819051828529550911152690233205747588033416495954986385970629301237207605787198603065696901093022535761822369229132503574150903794273030302657781277828624190586737507998746761069109745180578152907975362276970283764476385712017197009245142233520541608873641554906213122164482915959194110962352024784959168992988852158571801000988646681180734858476194699834245932627835598114850457899826501162167994095354197526816846550905749446417299410067425206544826815479459316080931931389676359886363248545652189562526116336864650888738575593070408307004382873860793940807254332093655693206012030810992455051084036146072483475293925835851468973623096147422402638064878254821269284215754889490513505462764208609719212185605976314620073659657235155655226341435386525109013039060327147480811764376706370105727188654686588701527108068839904789593760505687824440226449598605568879920770035661059184604375318875268737554539450544955209361752179553512318778646120216533518957711605959371340426491674576212504531495800503771083073917703762853105228281336902752623113105546734678446208639904756819707488139854073443832993806735435288372238168494067579930419708230529490676995216877894515654415526384843275144646111014422510127855397487268198678715938079709606642661690621220068614056742207571645958669675079699919301926644166993976097554140897971872482449512626514063589626420540237521394433099806533407265069078217221884283446919626189726226400460186559745871451870648189441568394550828137488073559694845198153031331290071046829528999466426560347060692288995525636032359972823621844961604055830354930685557487043838890300151120511539059756316422591552724324129302760716468987866790422106740303746878793507372790127664204379277766761068106959775632608728364208339077714974131916186800809018368834349592751652621501483370911172827211609667809394400924244091896780851044286693266851243111503486973079183014546349568647052195869393049540803968038155929612119893582364982997066593008360079615991359442268241457866616714316005715234410048438208712612683033435699944747818336432416275524365863846185581995099013202903089031726078151792661152161171893769650448718552040919219110807329087904155941798036355189684649633538318893542377112189872867340510870923733525063333485988033977677908778109328583210643345919811002166233665897693878435935091563958292572552268160697364547435535519006382775569482656270395537624016340821476831191125211795898236558150904973129976059748888392537185418886600175538291194609119278440434019753753654810232235168860271066093262892101645164121226456466633703196718395198413883197751748822839643844366986198872357453702541890580909504997862977964181788250767944913749389316397064700396967942523313473490855788969502751365425729907678837412796026793465201235726874564056740393763242907616576331654601463187337660739533167737480896128367387782814221288678547452068282540002009899940744963525960793213990441660929771751738954981753350252633408232692052008332407895528534144465027132575675252241258738341811527405592596587720555069031776616861943354563752299237285510194566024622251804563460763076045118452664195128146547555606377014786161423481224628515540607287533263186518407482682818247662098420921777220652887632358385586489032338055788774250689149594347657421222430370355153351088208469942936921490089778266485086224835406740718471808121099027283272514696530219650705809499034931212347434638864431021285162081094947972225275336475303752838504012392343386335638860171291407112574142854872008085383175998066493607407649891949108341699410233756344943724003131280299211567853562548833899724107622797924619392605717295215037036375964077002963828984093915021796862387998486786452476269145677567152408740010928323558614363419101681879541444246917803319025074062645979972995897110035695143983469583333995147835672229220690096477165285543095521558809854402675238717336991339661084853617572843271671785500035999748695716159840174624619493493013169545237507983657712217649282219591941794186189605353779016448329156633070783265540795590800901821101711330702550362880049078664622593590409882928845512841610538923102283237336501700051068912528800650999419684022275309870702005206104525264993609629100738959587020546727832414640454389335842591531482827612308805638126517885987354612480412144318052217526596698206712860256124090225083687417261929469854199629692777301373270804369928970202823408072280576583313527813186938114048239295380731410128095711322982025283234524715040509209357306978655401561344801070450232817985191696156791822746646342044733963520508881996340137486331171637450589477940416319038586291581288707350203587338615113195010147966171688880870858911348977547589652522660084792225713465231019683155270064695058700522785302141299007551699261731374000518695140673228459813158436420567541521822376136620693768963054624601673987675829938581425713532103705046672657944315841697924056988607226023793639466177938402804910493501105461579222973446772563801660592735912397110158758476436729745076194607578308688685372856232984601286714974241453189778850175711715939565432825690250946508228714104893552736377232937502785323294285007801222196442203200282007936230003697902603498025484756542791628315098032741069716144679848442796786945307993695757590232542989256679198951186553800570352293022619782864845501053711912070141535983223633687577025653544134055116822164090546132087519245790117813715145029483126588854048373350834892425796913599997256612711436654355560851082728823209011194777544752043838051985687917455648249358024524846398061340750980493909457013553990049549023728603230360323233940692833006489457182695183039221604510700768214110152988083076271789553305799131194261652041576817810244364055114681510554323918825730194274931991012212232149187486335015133836553484653266760466128290065892722402784052552103068274793883319482382938981440990058272704331897474728481801277731266185671198614054203393299010064414206343540225023506911481214349974191197174354379066448616485049811682299629695134970954395965869345506075953313243420273593957685827712042996792137735941400334958744128806338796520069985098754886851426708658818081916472139982247396402645792756200864754334124934773700741060780754297080672418240718225323267645893176114809984073982910601695700838891417553967448236928253581705005328253336764823262303254849450969522063150494519359057079853733663494141049817266669326813213399892388089906933446776831726131822028376495060447973008830803022683764947544738304141341332589679373094856904056607437290605643001682496963997252996999587175874345251147566474152390580565133830128167632450754937822522531984739136211350628944538819700244998660640980762863895885467819640855826098900158784792141591246099023400862099856015184106566293742253673015574133151544483258936784173769610445323396328533621753710883456457252062102347265026991679730758139154246052782843219545142920717932326895583624763636358165384366651395875887780449668772504908933154627450095974052651619855618260387129857908203528982549829293111793308232875349233330457599361051871584247035385444853622429347882542665370435351572017101667645111125079674662955669976387871942689947048486569569208729242514390325606495138393680356165075882542635804165266453111474923634089598547990976732963287331606162421725257213158588275823711428034402035390337889571281646104558936169164568878162221439271292408010026988479955772264121111315910380283461217695870352665743151878608418660980400957601970554526685415441508808259192193402737170000673999955602158955363490561074660688484256937315679887462901984082061687048126141349406862073014201511271865469280296064947622486768804915363945941476118417678470188742467436042075074861638112293802876804379387262948694083620646376845041358408803860216034571543105261312328534122666053339295866055543698768741510771637204759624933463478925633884622088744995108587265798918588307111808562211341041178677616196109005800514521041011693415708996497198837973311917041643620435454677840050911164805505325840740248773599391889756181670215340068235100581728059620515919683717667222320976242725953526670350262091025267650672756435144120478742356198229456611552392836388160967123575589587505060157516660366097708063628448018851004803242037539863858584476952083670726305868589716430031077787885711919933079987525501069442635712072598622869002690713490228669337983176474332645035346088194369314203347894799186612206319667676842449950875446674983523692405555435215712177347072785893129503639066111995771952096753976134868588208035602313588001069582410081191428609695749832582572732448988638176957310585915946607285537805398044458765142751131981477911988179452479225603715975211558473592132746181243887718874810431666034122067994864963498521504809521131732443515868753361290791102698769231790885895257453897171180170054169934240207648879346026267002532241657777291807372334646314642235352219158008145438711462293784401850261861534256049514475502955893586054500767181737377714810527893615471983383827902147575201363549577344646033884922294638305877240371216860506272030650075939678313931628883076497689647818413681198304842201655443514975202296110122343528891086571711338383898101503668911182965184459100493251384471886843848120077858896769812522995495050996005210210781389901428429876068516335484465774486923242462333810047514593395174084265039185477760695530537330337097350205161687022618592717119318219291144610483225589088155768404141034040503310168734034640345540868408365504926102245523967375913255520106199509971931250239373507651088629348561538778863666113251720903108850278048534375974935563353285195510572691486223134077819478523106326145248070879504349923755980822436205485615282584319911957799803362529746596342579358489339475818331663744651613899797441052236027575575506478477855460371743326881624127451495059625913587431888943601467448605655762085452394205789241761755364292817899370349684422848285298005763151246615584950508437293041769174263539466922074872645596853996780203904227653832100817261038119821449554488884379373035264125301107993351350769984286540158002676777230405821042224946943639736470869161477046595484681109482333780103961612888395338759970231339499838052039990260959388291781221050233160078799337512976882065777124826706514556137047187045115842328860259417339000272901079626080586940467372759793567685347821677062089035400045839283587207170131771424749800055476976469348760034450698485360027539793216231556870614575393006723460342298375298173929018880450206163346802122923894008291468336371244440456942323585840699672338452031267012391508602192075710582019416141077982285867919468573067108770919517640011778250481044456273237855888476832216077604146691128896282720713232710736469280929955655970952210216753508624300492804314795565105192417562382194037547507857252973275980263078110920778726602689687215123919735228761174045880768508877018022052871433029473811168372832484546080985854445365707281449333033572538112534891749277088095159402903992714739118316350634555511964502771230812861879670130874685488914294959802357586893401702364546938445308279943014463599424870006992572159433603799699395136845140045752549802695536069762074077662622905324213223894793049061142692203136901866621682026401203095880139099766346030242405275972652851636343813277537029589243572324578873775345529746429685457981103281182157211637334236417661019772534188690969381978508506308934281481415759311261408185666063857663505935781820232267239435795746762403345728704444603528036030096598110595214774659423797998948207891783093072668733597407718246159357872140149745758145252885752916781188479366691166347111974453859159547013875396165464056167888896712846265108172517534481458788424310079680122577836036434813999125841279287481641600874939197440694208895005903814433198524103544340355877869711663358680132265551897172799614301076529625210305839945098916339715850647763009631691793041000877268252371016387199668824921200330966619496334719646400396289483127075744723445326057692715870526449882949494202554756643292303671860927293080536949752015427954879734372361321739045430036854047376204161035782011214751763992755889103469936296925316943839067998609207786902275871074760937821235584803274867097719594232885841895638581083628956084586712606698486964666770171942801822217624115885607827696149761659258616636807011166329338991014967876013204900640181307999002994415261061909362121125832130187983950903596622231843794552610132153961679222462922850236838447061728114933611378994612762195729431939704323475640300423108514270498118750000818790689487039548310580205978496156350914118428555719689129547974813976645341199668470717281646174611400362853094845777761632102532359012892812380818514810965107218685529600409619072018691837791082860586965954890223112398069978578451520817604699747057779355100779951136544426477970710952120986429265030458392562980154221601942845928607039052583808690978458180470177845889269364614707304791655419616284553501857054092927361561297122111673835992008272595326816195352842442781607605078613269822140526372412878296875859202451468188859638240081056741614052571421642254917967601166784376039125737039232087970751642149595192625443899862158257001302070245000265481610904607111120437982514693177394002274511320413215159266912117422158250940149517632503407136791876036891519413682107443420023271584045777788088953373395404270902994513267442342371940979612935144848578210165365477197061414657852932639100022969247043687250254967815396415141482285785755284493910762671825126735212557414388573579498332538615816254263320516069240611080233046555357284120688344441926721716740177113207972364033968859809713756716054169915568939682349190008105991377793758230204359601201433913221638493053463322409107054683754377354071574718551261700254669599747503958217713213803553052868419084914312798293998720214657983884258423645435934554766667585841352985339313149417809194594759759411611520990856835689994893050435307934900543231667901188615066562200865287468746358904387853783321028478174739744779614479417416391948571355911103671016128240239230716157638728196819098796560325299682111779503523278360385671256040689247196090697172380067003390162622933366477270333558072510540440784506824690876996137907450473796193404184713673543034535694312007301111827976127776539737065697828148909206913635657683852719847500931704501924826184499090344864125602594899200508827395888695769166204767774601654953410081417901329858672836289413380626286269180192183778644617736034233973457710817426112907390142345206906505647313289919289439752725087979534789783571653772646371890869403106924483398890145372290659776400104210158350738883525576262536889231117641975757272904140209112101618278174535999697227794678601194710424580408816972342331787831064957238508913677823505840080677414949752399667983927971539176172096882171354575883322243590553815649085113096043725872125989181892271750960018114925374279645739782285037190435166225378689287543055449397213643849617636933269096342398337402382661091817361196757645828097701852074494528785395298471155000376203021239211779852328329249392414361666718448584267881407849402398449875524355796684858814965964137131663951610473206922447823749659997077207641008064800587785995155344356606108346634395606623593117941060634882192151239161260996302606455835790796501187931992722841272186955318943456337848844937838101052996894656457686717465791628162961394072097274805718966009870481557147808585887702326450525709841210955884784415044952350912934479248248071706061851394901774986117525769492517137064007065869229719126123549893705417980343848418554452031400135326368224826139964834632959725385041493146843589717780776446335074434330787052770921873595909108402917076262159191185574762315485128058491207153590959442390875165708420530200127727771567074513087295673385679206651203558864972281311026354997954100454406155947989734665093421088731897813543227292947194667556940173593686141679167202642342747619428241391784050128724725619628075572051610079334646695281165435409519151043044689814435163315509308404542632592227933557622766970778601288713327593563650546481367120029189240082702648886924408789282499497945420759759930414013549825687333593516155232830595634009702300879108624566605306716114056269209439899130982236064923956899212122566120548229091476117195928893099500904252328518482224968396941490053494869856385968487403313906961509601296563651032014192876787728738654277160673091666199546015838896578035219190904075305157781183783647630102618603341321496598314656326597454599172913798613506504532247782573926695970581310717931860382682220821030396876504659650305509161667347475704319012324364537943923931443686048441680973345011992317563904219850849352289552871729630811963428804547943558473304722558175225926464117470225119341052848799459053096926236103475411155792356976318746036443990827031921503654484476778576444370692346004025969415629294542098366396103472110906522743629883662288937762431085865855212236436934216484982813399531731903629368503802509994808903461747711872611287078484337385885527554876729322987147545510154297135951512599733456460430028610891801563649140463993503930852915528921534409950747339990673508746206126713444494335851876766941700029698353222860029523839529809698826276493280234738278466437702685963806464708356603238453126096473802571922579013622858768157830653553249828218877002720051335712599868767024450967855499588218724200414980703281574313031830696963516550950738271809305227164470236411815419467899829786280462711207206812402470648645557944980155044805564045115659808957508267419825346521846373479130598986589414104991097919227084251700386916987821021712763728856877551433952693477287100849998192632144501748887572447821711180411740137459621691024507912308967446569702441085234390010821426022910884930502558531650054592298890204831095176356660321808844237061201434118421032104263336677535610759404622468037076962951502119886256859262469465153670755584424474239306532542806341674840883975597008314103802895949249734625775660001748096506247411056014048929919409517817154532102546434942942767293124519063226320926029267440132836419234156971304667504471583635698531695797424998974503252620924277201239396010700691809996578315523545440851068533136553533843048050035540824389869369569994856408153055727071771684112390288654760215269249900594262259651546645788123540600654727608048542109213248324755166015832703019400328579435256719563825166277372470180389891019780798986382664217256426413460027869988841432199888265979614766279405707151543866227880755887931929287116893455634663560635482655516455474049769967199229811885234685037975156098962687403757247780496044679377409803108060786785046625992859906491920840076995588932110117123118398147411824599512455990137812247663219770122549203551435228188505496119705541102458287542447903077855410677747217685808998799430932473801985834843664468929965580149966297093207025056763274962350489841188673658052245985092055748762194127202744652321942357648488251910027949831446939447551550784524992334927721585838614096307759704450982229001500482389534476100058759295036403377747064535103763281772978362080135101281652169365761618394128382244630264155635282133284164517771311118339272724803640061148577616799643985084945761869135742252526126076054740798417744104075702571865417517825902944755101323647436299316696672547663371619749935640578127495356710709096002608246694795680883268052068610451575249342470612925192020494959036181352368726524618465099202548506471249551710410067272878312878103198286192361054058363422740159628593304098734682793124035554732581121594210853472149176793284355538477558176537267751037400827810113576775903306452716178278506378301800690477434610187090055208664974292936470519101329984912248873044588171648546717428214446383572621382995908818332059505235244462941285203280519189221823784700615453973057129627627096783854068853423722764386680122964031484094469630788654746666448888288223011920981259426655114115142335994291103857066633428486195839846053201877497647975424346315450391241606967655840310265269160331628524701366628961595292322522643468354228086824190874508547596252480426788845380852530008510776101540974100849266793096715246095455757559215456746882240354514029920659847787381613553446717605819224823342188332704339718331218409083737184714034120761377128299971061898193988531630748026331448042852271820370114478130813847289639569262474752446142579860614624052136141516701121346733250092970192737500208587123134446353523149322468697548197675985952587875828402807672246508747042741253227419036750356969718197225820855390808812960050001069671767049447798354481904789615383634133069398268868409403338106474352543080117580671102109758564326279495033411285422806903845690391715920541771238818003917453094781478646580041445011165730008089245906671460793823639957953112088134745399927545649394283156082466947793315169569225966423313768686177459937739429873275535348772500370500816505837656560934733967504378255802201819272476235314579636281423776287231803862960368320288269927945889765422993676389573427438022137143561640576209980910900803510555277940329651173787065724055538565221255975748108867079671015283320997445174921663225948255914860221412892024554945772636927609173462571518134325367699546352535378572487833048573381533388925423757160129431208638165056268207794640098990651779263410442452446670716227865430006648549428459169886230577516534184996650775828419446296217921657480592711304150038632084161111395213684883232107506974808035642868382729935982406533642028068983695784173850042665426496472356200650058752481903354938026983212601617271117856812488809247024512771501333927928260797159696162330609456353028927019488495681515756592743363071865093602400895708796422724986012427370243471428973024646275289644395137816421713320807853306406106911040321689265333790396393698364091768685760110937322797917426147347294369398578948918300071015260451518842845729938335747520943889952377577620960104681421769264548346503233148815915347149784401366289486864765662720250895465991688691897473405256685253047783615365898602527286065875040416630628950861272514097832600318836702653672871769959028168464967036008603218895911421060563069431816875996918014008362487536314099250277803721460032355371497462947862166889510925256979898297077324954256656798277137370987462972351832166318507268093125354319841306379831969644760994740821281849629736917796066633899681185778166260458609106331045123931404813336206994901977936626465785356948574030031881270778503573353574862474854884051374513656325183429647651000458742404446863894193796097616218255771505251055509345213733343790745239106703341732471420355087567586170660757389328749741224373369891454831516962244151976522093441622693528931903613038228252706583622007194901762181623980172426691348531899646668763024669059226497029510789214365806790212737097064973584517225838988784092733598514322513112719568425772033484764467385571508702009574438407859622386569368938779823509187608278662582830741556376431607102100385498043299721576770312166245832696293508880230262150118504711582494705021571590840291261433159549496180464020378397573687807106929645238605363536389825462868664363357944877700777342697603461787490404914472830850281956352690699101957160920236077205675813083889333807959075760509431187687281613689784671294535082469340005874542427769858458664733327551816602810855910466033533212373423066260326791099463814708445023596555285890704887502665168293513797970807670418689157941974645635698025602121467158064158988801192569559557457709704771837993995042193534844346506631525161135097607947220343306778498548259018894393132865362263088356685386072695612769269529852658988088270848782808288078008922667129552736656990642004352192998662033077279706143029433569283325912240196079766917299772304539044500013515789723455614212491977429909459879608223228758020226371722316050162547137658678753603588802728362747855481014562970241752513299610042180195526494950790341778929269509791529144664145024141727364741919792923322561355384828791693442232351679553405038578704128170548224479603823526962942690395829537562012855899668460932918050939549034082371291914908440542969497755033498248834873856828636457543930523807235491156484535410652807479766201107412765920673179978907560150607926677611745023921612834954366800998437138271291665102709306635167868464729056806041997725990620789916034399683713682910498059079622761449534150621034299805161601126223917152725623775393925358066410439578556772732719987518000036560573363622245390607841139483630764773908457479300718904482163107480247991912642378538315851635899440848904497471426448354594260559906245430133649851730872149618841016931355904056192034827922971597227080792445877107341691371574750516869307356484480451471608037300831746493680480230502234972672770536778132149156429406283055953584189876474498976207746379858025659539880903635309620085074994465931299498133806622782428342594354604796968421828218997579579296575080924291757619801969688320575711412940942232923653632564488399779410716542179060909679915705188561746822925549858911506122154030975747236792087181223562004762314971968407261039803099261785276108376052698733346266863394459200116262861646492381101900485994340830255289081397794663155529199756259795571117769352174106868534782605737849099693361932128540530858756112517949146429698702371025933223943495371238328154271515241585783558167594702188646316662014845273695347710775812706252009514760858680036034132140016712457659319233388169979723691445332500125588895397555393090184655127113198367001099500896532210652868565884916831170015227616476493263680497792762200282599940132031701414776362243279357617624743718984212347798489534866949861212098465443928285267235001876499429315161740230407067272888302942417304451758851516004052779205743046293400299050289950657232990878919704403939067810018722855226318067646594395485849819849333407246291457979386033930386855517543322870679824152760311468643741037772284382705219743859391786616632913338502141981873036960786897688019471115380544838918958048974646576421568417432516206881225816032994648174866014815318967575885366148805127066751784788287494812851734241750141010013641942958620367452560396912777019111311555289769089611511419958994453641580594329963591153521120863513224869739815886263646440739874025358429300676770264046665682998367836366290792470123798901920267735009735561371698908493772032732736810231297746068909350973361287993136913178788380882205821876606357759167057060756715945307547330011630165751869516364546103024753310310092134431544130815761061030695116425810045630622536438754672598467413659264389382189810520229497576632361084582485611765762175415953429641034966927984802707725200027615171161278429078000869672203145849154970538402312172886475129589197084123578540646263588830194177141935346909063089813895695298841135169871510708492492277000780711654003769917589931109175427149846444899425316230942541676372085225080147069306348885634389236287288011127528440240880281316635794993197916650463461003668692207223597768763334310752074791220247435962906146325730339156150131899674906018087278741080655815542642358024426485306534351963908679090521286305121050510624989403037572978310203324567026072325030011343639082796679314315963504016594412147935921584686875951193581838556253862085329668060755279192788125155543650243659133288892012450743000027191824636808815304523451755509053555265930260135294645611887069790244672492925601473750588903898403850589070620857148712265725080784154415538401631466938932835660247684946559616305819662720192400965096734364788449420086275145551758901068913124522972427228073944978395948197551385244979089131197242615997165732454786072835075916600758702328332580026332765516340305757904593615406065741689798734798036573252000220430804484093119634171324391593857387599095142119627579578386443749058071786966159256701962633784786343317712108755335382247433251976613842383694265048926807311767572510948045679910222534235861166322558748979270046012406339266742290317035517600083751610818565062530506525428537277995910999675963514776684662339700586511398074197835413151870681449562164658128800345945489830876901329973587768494021902846399730116117009937852038818387002504794313722396364952394729801708058384127415738208651279089040496226167649398498006544519602727820774234805885001258273995483895355678035732504922737731279685295931487867809268901352227887603251403837391917043212409073017003519148620236765026838558783690109605454565735522547657789562094169300371697457978761451234053915460656742950279102917453686069797837259759588604970370167455893923220433038915077069947483780738954365604863675771676050760783800751654517192768037841592950059200438257995016455799749753971518636153158362304438854186892023935032149884527487317569754172954911393369479586840977113169988962680567880457754914487686686781686468504349416305393316512509491287972876527031625188607578238666528656574603238718232873280672272459144821865654756568212742232288906954078684841460989083000550696495115113775321875883945002420174864034705985194885209746684550523281718551812542960639350994919641278552253942267325035410087039473236872520439941618433993496197605367008776767441159412697954900963253705954120498930616465276670938960972071016873432624669508435797672718512837997562098766655069414745765961862755703582731069620590778149493341013289105700446232577539632338593237147861364811014856786072782239676877845754476067459053619001961442795522766510811056640212759979190283976930285863292430282707759711108547641175410328568767183273906914904449019037252499153746270369818334305970149100120712140497234703869503730978907342731329031143225346223986194390597734399189609723972697581598712980882168589542174434756499392945636561068249906529364307737855824154484429516426629895438526229310200173621262905604614006411361012194700647685377489077095624395216888609435510110416416445053540770513628863038466712305727522685111402809976668325052718960029018831837128037616766273474767237247243826345099081402015055249601647945948638771651641628828753405564730700889181399478208566869317049250401905115860229557395303377278054787820535034375580916473840292389082845936598983162808537331536323173494664217942517311912177881141574380414335147622929649021230925724482410447101781110090917438520852787083981164493959239076059253241788854022068953806863774616890842341731470529605367854698206900920190642839606651796133861222525793793462756051533454734270660550212285704955101528510230479924830526634293108881105811046692697605884082773956663311632909084934758332614577130301043809284725847072106632812093147066174286357250705776627254948143427078764125856467869805879764091933559834799329461846808713328807638741617826457449971059399012944506249977042717211531231517859599272551545647244862517765794916493201855173727300704569370860882549024834082635812703395270040807647560739382558274263688331689297186209847742590586222916825946638940548656969178937381617009804263291527986517835196240548171081982553522364942139870477430069725988091420304375645298241787903269706214464395350621295761714966161286063143207340541514740708520974433400541912353407569293861197433409077394532178232462710181685648952160939661548800595261623936197735704254707194565392612735205847653634447243947274785093519779992708830419560404485902610502891465486729196062651823494770496278693304068400566063972457944404167850906908497137505533370070159648225834668920194019250508042102872761273445228065550876383686765315721002781910958551425756186042527705940242474119816767734598838184115856123276812858892461406393696089832849057726370281663712361243182646254527697459890807073750796963190505607992983494965743817518581622611013727017262129385801305875125286303393843499259785223819039850198665322427295731565469207749761996772143429718886312592810640213041755260225278508728787925559069301089295154472402546075965753869765186001378248507619564841557928210787056738061717270777271846735794820208900253670580297540654516562503495949051912340234633875609097373641428871713336465654371175493473841393519104290874567088010265828622870705098114069397594123936662716166552768580780716147646301849593594546221464842389212026433760510365706800254083066433088789234630601703659398897511087092820725301890777695300930053013030438323533156663645643883448355336537162805683354453221771897737845375971971294946746959264709381561423810526817231205634148544164822152211405538218754818473879816559547877177364273726487693855388811331166150487402377387979642261868599700427343352015228767303661731318913296734603158685819574088252582732773219644495552568366272272043069469768457160904334529772086173212281490576880366352357934238710470823520839359583942831734875648915151442718252252995733341562875647568542411688489965417942084464158693480843840179634886796948662491979562451924585676208533346356524720248746499369471390178129332516834650738499118910366869629878865128179862864157441055118716670323262248147251863361601123799241643602297139813178131308942496935197217591983624670291418358276469954788681775587641415706548237468532672239326688323588255392046828128123076698445770089869956645114041543394548447993084865430730392381592818192024399273621969336932964651303590771492323308023896082254546187060252510588112104771223115841939960585044680710455126834529821457301881605080583542962810264853652968238548701567455346310912558405124034794815610605908347087822289309865272156684685812253858797824646432598095071349365748403930977125649847722817549144100967709743130646844186958314683017431362371403701933840890024374597813645165637053148680487680364798340558883857639109409956501710527244253730354972032329082872553142025870230553326155142237684574280798401829308140564218795777505597501177226069956374800307782855275177332344172800120245965007518425536620809004468371175852321723822327948809199326517624463490094448891331201598895395887578279855945986252104745904764773240580862935020271553407316798367479063826055892377128068635300827240221863252204250021417324160199427215600166495089445541326980420712171123792968130360288729369261124116583579049024801822341086734873409851351496120045036358580012519126699087522349694895405119988736049913750602536201921397243344386760783220785396434134805340945368628614818310174908761353921230032040359018079228763750417186978799750237315564370169045138473809864256779984042240253122527376742114309381884699969126671097223892674576248562853699113234136883703546486461506650931796274142669628747074897466903893828481408162510359565739771023027894090135846846311041740775319066731856826908047282766309085661592797232769182697703229331630488101712544535478093439089228238500654253474528559491550892431636120375767900612985348827921031811342224681895088145193342101683872164392148928878980910493983342475287253867602596353202671613183629250511349644338064293289785693178566313563709535062239460789918848960370434440728659969803438431917535350237375750591311265291933079671085275341790828111373973505289949123109638766146617491444666087268610087567567926162698616650322870349366541356994508122859508462261243444009601811391965663591755400980867326227148323680611514483185241927601754714425793976073301549553789626948329514649519341595903144730783584718790149752839578689449519290214764246526263351453449101741058159616233880635985208611710386149059719019121024182433114913087090059628411560806038321608740722470325390214660614084534090767694947730253460351812627058088770321070772679557888498146172126137902769169241250428975142835829963607125556905349460386284946353225753545875809874411239472787401668669471051853710630746472743511232126305990445563563620282895127136095775418790502571184457686342576827826916794357404771380720810955396812831800759056149583668808648799752500595392203640057686279363122717444028207381109919720296475267300409900052806132334839315122289555429149467086263475248789699665996117356302175621268878904334439760410814852001864174503426753695207727795828079370365094908438122805928485394707015499595303911115124013975268385005335787817224914220082047302455129973659966236213401958304220272516177044072138930108865630014059590089555115234609316354491559900115866651041800884126756148246471839381873667712386192899028068855708928274543877644792876912825509703800708579058533452166369286513704764188963470491249718158221044077793932415623373034419175494129245174338155705824532860433146442304226591598286332364336665298137096145383954515291211194800649136738306404332027982665465901661504778876204484436154679501093770714910306356144888320722963428843415161039092304137892571523922151053438635205212292259960458683974488696690991733943757552026988462562182119481147799286981473688908683591745841462428046506021242568858931335504065126365207596251089649116209497775273704911522413429593490774240270292022878550034322463816262560020769438716137827357795116078808406834990127180739289081042242361436431480722678840411359311133468671379216518451126863931892698155102686886997862658169662623796639788344676981273466562582814470468556233358349606550926123826580188760590413491217895887053723137990894404210856476981821401996435089913845155766837422547544883801240042374974509358617281892733200666090295457456122858485083992510013670475314522913614770912905849992931926556992714913788734134658191060682862610261187059040074832321952789371778588261939266584663310385316829313845726304618359973035324778760193486699460563444258734317053282006373413350914745936526305213450530714437149372823915075672964784450006754937104636613877120891845141384135897933244846750950930909817285106140138561527585542670047012813045318533883896020877840873994085956859922621751352630844894436845499701075731689807725354519888863123691951066325251708175535120495826404259167960921436681954763653899766593319829273301758380010262502588446941412934489162139246893662581679893866496636303142071928657045837757948515877041241504774448258115033830640614382482979493307907041066793667401463967687376188850310685517396432699577878717337877421146996986782931132718833374949525634698653819410462775311061848285692449656590291488093082438212536945522675304896800783068160093161025793299008659301205347760376382658994127510470516577751981698876279807481014672842322672736430214113825342435728352340607307110800213227048676360018915915396184587589914159285984618892868662923196321736668249523349644617930119870025606094878901744154894449065222238454683410224380837818079191321282304112282660809690465503614973866832002468019616728255410433113262203179926057668069440598680360462196272590367564663637700134494062539500712189048315473632141902290317678600186692343319628007951443155652922700910898818357145186272339492323421606092842455456884358005174745268285663528834072203692143409603704785269711520124771672584072176031395781127471219429805408557171302616001084537741454091039855888590095509229276684588838175814171105694598919797561767452856655733354927254924258111910179461952869926589288456521943388857715449619402752095893776604607842046042517980369667507184553413268872508237864341300071623166516588375556238131373817861249284147690667512387729366590627891213322723950554262395652095567965473055121590157906524106774663907214194755016021557246900264385599873371459799252424514366060732479385685290579157176775453573449172226053394125168791480059105984825449722723040965419979858048271665420405885935526655279808242105470919537426761215987019106009896643817651065771371253451043423191315275359723886309324739100637477028340001770027767532603145603699375643168254152262923535806744858465791879644353484606249400441857214861385791823459546837886267311704529721355016396756493378850195534110203140529931407276011920970613240978411316239155533714324881588874880503673970585372161232918389942591691018076456027949636797238169441037612590778993016011310185213497985119397274148538856757949925872773609463838122691116090496072938460115089804560809956688408457475665629801145617801381699435951391775042982367669285565380549065016698228686045314124089314053404166714196494725914028612551849258383060414131079984906012388173095550946975013915553943764723948132729021965824538852901269912154035446834403196783610438679900349824975443999830309895463072831069541889775932113385604918305120713528454187548047091735950241380472826956596647736889568342100243574898615431346465888038981930117047182132794693754666579084026031025666803425474242570595432981228127116141351314179929251203021211307024693032654178431514182267711332386761637127887166218539726593030910956915999651185881835393376299213748717215024874046956628340671395636342947530715565045687114677158411643757452835875507007237316594858291638858930846044466577044586743399835880557811156702573900361293143364223743801137652845255286126311098469669113136904753834672157741933780081175853191607811489320077533086258127705466316358423398456147657246171300540471188416220530006225118870062259323968774152878334381094662966312531872249877251736472565193894821320340373776546340856082393287597863537990432448357170653956159393898948019138746950967629800475175717822270493802890214834070609693533500999435931223766993982063213475866568772383929468211817294518274532492764932809664465046759483056610505724276723415660257720949270528133535774216628588593505612789138892856585156810207800208618605012053150802073363405889668231626779089890559548566054934689916181227088024894469625370758038081440465517064607940886909620747981580287119820238503526570875944865901816381065815034677224710055298837545303006745949166992854960521603342000486145605620061152283261933374052620324043039062789074202038073159344490368491416329625697829446905761834443872943053345914394514272621331939905899448552027055475061870878014314247780104873365699073418277721706378786188229354447788532051828337541551937422787039857364555056776394510875934250152737117428039317213427512878545542615337859792423945445592577858255743387480848519240988302165664493832569350639691448395179962181628399834419236125323305668862821212674606361753672771271656266301669072924826971967740674967509153728838622673152820386987079513580015800625513686050584448506722131159240831342154974479351636866065050664816097101429057383832303413631740349935803746840816162921843133424231089575593888725738895377093319607415703799570425727459623287611965115710333512954621931985353376251667930782058679977254064886366348177836612429406415296889892916525839167747388149629752357123106274951894859310067767691758955853769201549743626782480157793506751582614062484581777724452829980425844517627587606212748246409886434460237851885291901936560076987039014900701859739571669066171429100670833016505615613303586752751980007066670697832390882266458672027618882107034107455365951033656770987596877445838428048027075676245898566177240914555752594519414839393075714118784044208644610408035857404038748559808103865403849975062081315903396192280689756941920651982862068810029547088820772744438061456248571240469293961178613983394868347559293252259431155397010087461746709332011289324440934780976677969587191762864776570358555277568639141073054438811598980905031145067430514979612820542655790670838809504856759629746799247722858175972912025546369262801769991508084362116159390446728110468380084918455476222368369338257172397123276016841801763498843279088120488254006412378494069206130738340707072094468651504920139181436909924478896035731132822849369438823836921257947774612057435961404575614814082895110892858409386180785398901248981512791448343166812088070373457646508256649721130189574451773074434679695199134515804641350202003311560685397054029303921451692159920406441519562846217761763911183226445728538357516924357492740484562014058313805636197197027843810763579255793817178736064789837381105883500373672516086452341742212018347030460965227286313923254545327412672570916256165651897947776830517570069056088685830816953676396713018587267818805464406576379122816715420914346008312123721481218615731111856776270335119647681059533483628874125153894476618247123060621727540009575864221372704216487050765168578276237348893896011269791273611245475737155628963997443920937572386068014231175649665820670888083031118513002441981029289219470809102016514315307305670011982560417336118675653756767414926935508540708410479620412260920144376880124409131434335918663512477564709038440292170492611229862682774272194999559305770233133668691197482794040861564636292312857861474293499127792111403979458841700253023068185846585606087994840348935541630645295748759558347954815270011732849530198663965702200058010511770127619870358632037440190836500607251512675169592861278599272304806303861122792929418296775800212922043198591640796624360402085621742104891883479427879029310683103127330110153333364456786822273993984418869701262387864641160475325189405950113667218307901061484229707306236577433004436020510369340833762852469082696565705524127751898907115326654277896320229925911267484865014889276637002949743062481659953842873586044062101638767627913893928563777733119096074099096658553438601715406642664871644346722925198706063887084537787991699528023449855315765339669038899292950186046634087117004761050507586274219791442168186912304806535589123469646694147706554283848060191840885431491515768882158761689322677138596688269329667407942330285577624749715655628282704627259305324550560698872267953945290687858441987972851079898608560743448178291512464735410925814340078103082302937957000210745149183018319086574336949347531328973340168084172557445886166997470416481182675122569742365957959589749094836658656877148021876691942621116094626628897753369486169873590071729099000158179711163996706521357572435234551607571744945474526687435062383761912898136114727853120895549917688890561386541096741053216577760313973238814144361361251475885185580586933966238288038691652477804459401459861216763122536809158209426317829981455223940900229769435174799546842301999764188699677835371965906233436384056472469610059557121822125706597305755206484362452839281148304212859394442954810526707923721818234426032877569391963217791490177238484679366132373242716930225407296235197469232668573238167420398154480771217383764790249334498387678811603878245568551369654230751710328150831668978136823209322867834589887920660214937451924014353914806401712686207660107396615584989137287511540697152910967901378546486135397645331246701343521970524605900469688418168644722363698585819949072176257564781102037364226108089433059495450763700138389971131794189057092249832853157255068547018212607093708921077665334235457145567529636849894847259635510933121796298776616507686119817192648881002941139615265646913950295330029240737567708030017220867376403797152245713570182632243038525606955721671100994268910461359321432139233162204740145230493545564855138360439107051215527498305432074608874333461252995524238101782871947751597170663241390060020643589980020106406871256685261752190969277604523604784076050677822164981893263819692568162080643651143186795156248120491567639835647294234571523597848376092735981735373324235208787621441515923284394395282510874126838441763471309019094052094370969254709425870552097193858133739732509680763677120853515073587733803236558845946001056073266396756804237768058019200456864473479543827507071814835402322962026679172519512578342581326952039712531820002042839124939163105395479960355118073355162034801639091598240938800389197285853079155704749258440065850122475672169319105380161565520514757604282394942444415400560118590112130790192373982020764864806088554453264012725700400256892621843871581968495040153422586093928805813871458501795808702249599418615549177604395439179802559009083115489709955359226318462088472987120563207531351153505792553221492136981892268931930935642366499999532723697740591772710761636470591070237732197198705289609164697935441057044121916019845710204524482224717150644283796248710904832549755825053913267922778538168111454057014504690333238956265790496311393416989554370696293211519697247730742664860728866204759339473780656246281936241194275603711630933518617989216851980888653242340781312342538653100163988723526633976218009373270650275346813352302485069146086894730432281649490207552146726507249158582088094005539624727101397267595122439633418773911992801820569893514078464968745610220363194872197557407792356350565721697566232245938858473152173632600179050911461195890936250113158943412963694320500292155524212007712542240634646007648524968799840083671166529369500422523251401160010840232333602102641881816573705327561970594776019663579372629272981537790282330786895153248505253419742804098380020183462987870497529752814785385422742015379396051669486702364184761844748673095130918573475154387029969097072698448151053445446993065729727804455476952981641525709107576766804376795771527789902097806265978673545859452790739147975842585198174366285738067988806922701128291833804815362768386118592710559948300530010777293577185757757634894820063160129237455471020656913388925306965608551485085423637146663077011821912493670722285438702544362933128238734945671359905236874093791045473557246154040545599578903661707810828796417068043888818506408481003967329343557477220014948099541577965981112655182932267802283325038416066405354908814782969260268103046773113436204122122544563904226392823532775774084984743208128471922952634106438023870518800487236370363483176582769110705047264839685744338080600833291935463939459790885763728860565902932387582185341795433732606213023456672718286702981274263443129400933463980397001951540927835403837923990738481200208519160212553038889445256641273818148854175968730009568961565260844055813284514379515950489207337811168675175671539843324857259394397784484047467019240988700977063454166518077168087349639811951070574026517009786421331149864307471837702441470116650628852618833266868988115171034498749086850072081631404627658934435055863859990207952922654612007684032265475332557557713068855886212942506177597642491051912830643225261936902460400695153316868275383238146803436688307653552631030050615558796377080855852367471077869462449201468015607498748940923118575617945318225764821763575234091079917516356850399614991553705948316679985531115120591500575280141051428192970782456718261028337962757475664121615894573915795520535735916054140929900669255970293389488419661466629560345137735629733833769895444861089194719052222385162963126499919485582165348637629384857040178518520832485419384956369710127044080051545291009062034283913293336455066237969713655531968299950320750009923828396227330923630336421715688887647697571865207630444217614910207238973702512387349256119807210814238588595189876944401733941791564707267345422450994243890601405874810264054280482702883213709391896405994762392057070113135262397452698788936179325901360495541953471714054189955855468277331949578018928496760517372113402356776662953522837402370288844936548735698874421981588061152064315387112774008654504262440031837659635110548605743949415605979724725863719220859137559793232367723513416109440047731570126309571878675901572242250053281179540409635658702106654069188691128844282878704865616858130635476758774054858479847757680710470201392690293036695183969409201547255587082200913333778082792330806972144110211227536262500307487403349731644886552229118640008823800181310947608162211555490413573417670882728440162608701082935388106066037920755251695647977906444661123335050046892516960476489830183773782952657482646731768184901790723290482145632184525453558004755821338089359461508841523906464446958407360491990849032617134175854337276516883642481023244300572735631622917219309511534132429849956513603380261789184484517375207730402714975901907827959520619741035577797974731203157989356381765003317002009726131401927105408918100911814292504005381865782491306206368176685067913466371441888300703296926567894569634937017288651029355359359380929394391428592026589181058769886151332502828535232766395761631898454249494110709914712796860503126538080615155013908503634614263217435822151625008857154096629052504530187978294233879526455029652555910397828205527225991939487934385086214044091540731783218314086017299023082170639500670178543893796720418797849432242212037113404942359045393978911124541590971478227866717775338045515439613837978485020791598757767441603944292500359991467854853116727991951431696810658789531042269998865885856819934917325471883620833586311176746408966373061217474734374278582590374734310063673626877744991364762387832985374747771126824038230276425282405481038230098804917980330930169658645129931100125889705138327863525238409619300106440025875303504710262896839496885051566701431170730765732812387851449443406961133270295711867055573938348292569076831324653905944217610555184815059522009964462292187621035950327437580724917497000738518323144933463497700395803011834677111481449350646933708170820302697001536914138028650618044938769299097828858494677828340491556214175364647641287249260318991960978988160414150184880464517678708783615799733006174764207771239776754711860813716864496867627482036091584754739801783044272309706275590886500837295714976951539119667788856592360399587983694472575953150217273764243014535044986436245150869192108201158316515213751168557352971458015707311186148416822995027359975953603317033338636950922202056368530419806866201903928450601881808621133483639185686200684757634559737154290159307691268737440622484513032651024952969558933132651174263095436119927749629467776811853925057941156769700554944627156408764263735135643094403005831118459222514211971028350010414915520139503120938239041876270909742530310077039169276888176800204329874603434124482941556303225705882403271399142625163428895496172938397494286302148078494921271184017167780417061743318830043375462824440219756937726871528835565506840188825944933955660479750602905025651266392178039793621621948269048945321190859585690407912116055241946250356246135703799773218970934609981842151068464290612995181666507551638229342017352586715830609292445388033618716188773883248239261480959374482585349683261015668492654403072704071552513036664369616104957130220273812171889009457702239323359600180166496206197950127786081781864734950489912715993109758880607084026376652073117613646717704794944412452301811221603142490400609272684321195371739980384837258079128406628767124011832405801806331357304788731639788050491121410574143850163790933736117410107082996610001512106692365889527640150909750875889570788260739408886212581189443887810598857714337388907418763329415433452874352506551611617674430833305000067210421055475644560537823674370834706985650683169040499628215293502070425805642499446288701852632884400551402136677177425346764527396967975171527825374692949388326520177009381769656571715105301226923208418942257401465035580208551467866394196632065909269671467891272254520845234243558480372292595609537705521212139034474536129698765571864831443334653527031081369264536191152116990779532870940332178159804553994198771282479794250053838633788921157251075448643784123847089060431334768959219514853214844788683625738813539794942449691000636644708746753583921453022628802047552484992720376037171067950428551237403292601746766833196311880211508446842365725384670156115022282807250207956522483846818250451197739302385060648511531918841119174808943155410225449540822044525967292757892333182754220003807546541288255442953086924955024805928292954783208764109960887275674339080998244985909409193305233717949042223513630073783421549482916718726005540448094501787912178852900173799964073995844067968290560619329957330390742551521439719797789103837705522373141066109345508757695367509866460128096530216416312813913766576854204026832035025136681982924469222482536241510603368479505243575840341713721998858535027120406676838405132806686379966725090556234265065405447689906403462787908423378959018827761492825418345109486508180051581495570955930309615351256589560764858650907899870868225142636907152615794917689869719143802490226171310440897939031707684583371005943506995412488760602813798458456052479439213746178421891608086902985149254198637701351405953028913209532656809555220411366404041050612282966237352216487072475774554680324185467874648547697526928770554343698759197657438525044255984963322630062706029310289184062598519165519839505279291950674159778656612937176572219099023137408942780482924969837368644397018223902384710600157076421928560739248746172342811306820292910911396659322962599480764225604029242401626324760723648110466848749718156736470498973174652181704484454229076180120544493985766053994935740443710054121998768205979619634277732124709927932468259820937917717196135461320494334265766442183934383233026111375560703384935494449749862432511592750039708036471180265976396974040742578792470250434707869833077824139335366627090482679902172891032112204482779997795926980043504407055825084707874503604547829966689783437181890041415544697939160047183926734113679367784225330045051475753889301601162992820654709533841862034730398362203015982699641935742670028770827385379994244309834417113780770410525669149940659577235319154211698402032874952135233286878540234495567893105074339159012908543875162645226849358242254906440927375086633996558258415978523566463524621122850150860846957013314320296202994585417032345547923370543270658282536925202947453049154946197636752728220210138578897761951700771598902711061543155948573835982997523048070693313902677535786268127976888920116460703640148182364616183355307081529231350207210599880650056128588105676675827281326910140701405633441960953563706143917123624709437796321504024601916469985585181800930599695032110056692273739728393743217508344842622021384649007205867056228440961084188963339491626432005458011276834405430528692593254719397852199532100360749477724450111877024897367868442662757844434038367588255171361556760681963842437722187204445488125745279589329243829065927171793411364585573710243825229183923816113602530032892527410757666358653243461724179990916908308372735076306649783359774971421719898015831604476703512209684731961546181286410323958015684207491434669036131698502523007867974113188584211078574226855718707635546660726855968843995940992659865671802535160947034922511239833821957783383362201411461906902231915743484547504470431802232424623817093245915876797783842905276849939302165743780414837068552143600423304905483807591593996483722593747358026817387005717606315597114195325033778779931116485885906438334634997939130103462125531844604361965996945063385074816803293778852048126654728389558151807235612316322830408853232829660864795904379852792637254762047842625768790886447639078358424371231359069431896715482069738366997897644984336131755303483408104773532223222704017129905417169104087399726477579394308125276592634618579258407457869129410885651697520642209435067906038331585749408064907033837868456707187820479262608911563524435867586272644226328550422411639268794414452244335902529257808655394771019876337794031272804812853419197191897207442304422218727841857454160858868266368529335841774818390604357619682550357965163755851459583139478966982818979160428243688499100633087369043626081455185824724679083320431790874969031628141760533222747372726859335359120313473526329354466171750982807615451212699939402277063144272458263795255788122504993079571422173481379463169685348363998490829214518912315609106191848415407617345566147858064138998577489730853217674264089187025002377212800400610967032989760051651652382063490033584714141708611638295780455462310733254885941107734233905527152329435255772044295380495738928998060269623823165099399499547149067468092180139637956428154279902579877173379105689114663244850424823710777553139919689800029227713061238982079361867097496309558144385988413325491968052017721138773593449403287021953505803887905338790718274517336155574908108069872374607134343457374171325585940701991488961021490927143495224959916433253162262243195753219282243989234389041057542291255857812856396602846174343766843243007400331182200737223813308957536490223650465186399963120607177052371833755395771051277638015402215994327929204676427632654506376999533954357830444536853475217763541484129797102427721894835048313152146430503203901795081850893023003391259813936039770413388326831548769633957112760073370680853040130206863014011479743733711356393050403076525490665093922065317590138161347527498647849812937492098479023709605694932102692050889569840569031429392395411870147956240626616245675971850418211052219116543247087163276347105649967306291915656960399419438850639026900089755097184986585798115889208006703438697564242712931188622800803277586371109524775515200398603119473418197619889377009178368246920356445037219435380219852665711471383456732462000349148135940306252502596632073940246151128104203394221930597190035984235440936253799219602276369771567314917183100948606625553453069437429879032531293808921646281805309343355407597065781573257686800028070127777902937151229018819302568969399924353145323189903695534729769158251521805636809026127588973628922170258928984893886560646974632256970307975391456342307419345187172960044638009707031406291909608641545830468084092949283357857008224956369824734578231565934704108288421402906867927973828405589891549473216720344866081585030042124378826433413847971207123392322924857202150290151948595693312319108831281863727561896485231765229128823321670748210904259401831266479504700172602642302068230589288029723649918705263034749984791173854480092391710209343156045877210219060141215186210875462898422800011932117788547683265174469921001525494820627938546068190232102209622162978879023688077651678665493313776858575077014630620789842053256511596974841707405844737592185615152016399753207536035490377445082447211674130356303470167193095249058811153408761042415021618259605410328173303982749007596738892279114127486215034462598757110198958942677285999778571344651431963364284915801732987151450534482767590651218392093612706534255899585155243424919741862226854453775220034558788370936295998289580206614262351208978352688438189550100924887830902174286840232254157489934950292637548909383224346777520025638768718415850454285017282696095598851756116001561455355013100044823916748098295935461026661563392240531460942328601652032596231021821060897204668812619662095071038836964709282019478935621604461962241889863127172888157107944576841076708414320313296681528064837673894470456816012273595761935638382101542888295184822570987344993872977700550798639341231421470603770263870309057262960559658476207699628968485352724568209908487270528606911360538020921767660661669032528316840294321981970570798974774078329637211584202263480903664096598961936946303165903868548148792529627275021047782661485965743624123723165286701444842602151621287872563020812337981776672313266391634513003684682324011410907374487856613947374094664347149356125444958689056660850700541520995244025676819961658861388911849844690436716123336288714455907987995524143440425656255280797849936792576716225489210910636894772191273546245562561361762562134227074755483773586879570415778183136405066137275434780578756462629444413960701133946041648323240822678550755570734879251427601532127474507321434674696727197990503079353244201746612382710102254348654945709166506099816487157929270189938876484414291320626280531086589968399349417283071745483946127743807020515195936072865553146544579131906700957961420691199928118138023479703805689859723350756009193459192002672395269792796133637870285655106935771322426418649191950767640630524032926928641874246204829880311730718969850059574690180254611618616453030629508735793282555541238896796291953410699049566722893296795918098135267850626210609261803289192809456958817490403780342624032696955273939153616280290470622950296490830279940903209564731378349814598320269309793412213270722932790387244744318508990423594861502488240596130370622746009836190846670214527928051151008417311804130680924889385185709081601949273529261087741476397201090557711741851648994847891924654076515128179508035394671927616459331631502420710850524125447703653844643157456776919175423902910963480961641008907548211972363378580580920986351539478882663826561729161675998424961216692819983768371575633410479148192667285635710933180913425470223448148444834129612912010050765759370680556708180561950353081502271115593915042633851675049602489862456995481862838119480061453814702416989192666144444930325459036088311556679917373454201379218587388011301321152041869159268943685941800003289217238358027144137046091398229503311837311311497731353679747153580987935782565706423076628830953255742663804840782269405068903648290518743839425768875089996093174269878375855155787031583620760655352951183274077163057075537848511517914669342998963328962521602975217627111042160314244018130875350693051307449203172143690034073687850844075462289861257452320796564761012271053388525761923350706030408557704623839913348755565780900201416599939272898148628109034230182605845294879991225346674373319369836903842442637792361200399419128554808142783458559658596639168584613950613464643519960497136769719372718594019238223011717342088160304799338909958293740560135590364083656755441902375293838320848576412196728558870187440190094427527600032988184119225893268779252108159623724460655623665247096914565797075361461685338076527487890606652054779728625233624413190364413851366417368893906445208574187829617160304991859791949738297967770608150998824121493572221381658582406028262870010181697381048697637451365164175501347998437026615205303771600967489037728386816306704897451166526035339925661665857678174794060758947342849521389363757561827486422302881724117295453674160167461295599963008295820324804229766013236833463394916831175245795221273375156523250863433252983268836229061607816793671571384072775833970792548229581093449281128085900055805988907622910474943389492524839515064330283892899132397747281939985593112295001110434802070902738294700201418822763311026030692697430329180046227884577097882890503917257001851485309346914365729815788098563095804457110577009613385625192903957211935022241098973764525627275052378913857678464019163444854095931698074650011997107498480048090044790671023196068716525144149505663908449541155112645936293731826205428563436437695893116925120137552832906475949123850927168978446660125194588530654737508318043198090410818002015686988749238095448668348172257857793279021538707937407036730361458921648969978321775812020621059985759026760184102981772603012256620698600897781152062988787414568204552167503849803082393223231769870690415364429928322056477817161098670871856646435009027411346929999055724592247843774801876939144522641739613508730930153320247319588506195494718236601558462979334943179672329760348218531839569223500392217670964927555901097099272297473440534943055583138883684693758521753787973757264917381942138410962396948746973954152543842083329095561911806951907409683080090187923313885692819365807974633763944663546383416568090540314663433269770746176684422813943275416125175126889399221741275731229720032623331961364988312844962501897342129573844947503268484551721766742972294237824521515571948254641154255841630956945558348785244465871466485426165595700850223443084995046176343452359130968080621045417882209854424541250675367014332196921246907893881587258194656877929624755872873779634104537730132759251117153389853595503589180527574824857958123471726092755579380586710364837237007134313513416368987851134522016370131064808981006605959260907981692820346521866069461019078726679074281586784966028636428768439868114591613705831040304138751591299326583711397362755756852035948558453344972087793135183011204488485200334410570701810955394016805308684941124802958222888747595858733244167615072962844044473682415966429150891379729151419026912226618716127840562085192508910872872055156933507017702992630669687752273895263508388527988413928807356435921880077193610203322857667401212602905353138811269791600446636547977162395217913467713217470918823289457778972328533994210222884277410154146467606188730714058651429561629899384042571169138463471869069050420937488232492036019319401642768389563395748377404915884235054874777594962488805272541024055833090781357289861806296393860072389634749517226645910828242258025130668087444409109960017091108996066998532343745986010079854923942805768543759208783456987519549047166684640620882147267801337301239409193849915250160519701894542693041928833966956040669555881368211757023460557886144776358374557459461489556146855205074785073472334726742484142327513020923032657266580962154047721952288814383741629939914169367473484326919929764327751130186238512160224384437920522936023360710419950943555638763203089054998185493291017835529802857437176792128043783924416856552289846098902944209831459375651544749032075624456074259967283164113780000590209557037191389988213485413668694110535595166601734368703499587828621821626346622038017464950015161020235966955642564191222232148823850628978956834083861267628217598400264126379515499651542755731388781547486827979083015298334962260114169130251541462583407074675905222576506615334198307942795607408891776891104553139820895277827466957336625988709188162861695998483416543748026875181570829715505272510288066514764121915397828754987651157656915530091202335485867744410460163202726163735861116106152263830547751713551304453051455073352107435041060861946742457872539573435719679355668343042293782136495137374803060938459963866189934870636871847066654907666724517839843038235803463603782790804322377313168173194573417143057050224183016502176246847422374818246413263317847515894960098010268126722970061298067736453191649710685773490263501418212475318703412919643291975188060827462362043115477623175511719640798261864653450843873439503664302108833459890365721608873058218647139427829557609420536116995935216271612889049658095990904115224057221472338624726370268155521096142587386769112542362587056923477945896310092706723138872696223559939135368177720397332525301998413401620048945067766827985787043364955720003071754412066639116520993789492002218802230933257195889833832906708534017994960588042205582141203502043173526247473830406142306641912605779277047585575618540116264139844854211047149236197745557665255286605911106669521719287625245813998596592207165248248056928906470755039937745822920463888521678665731030219317560067433373008999993981365973431362113289843757298880288763223910237204017544195906529337001567956644330339602940391005183874176436871964132627944577746448655604368026948564905693260953407675398135078883667930456355343867137551029272323597459787016795460574811674562016419842611780870880686565296201374537371086726580015307173596358141766169322217985922051817298191921742476392360867510190375741294985502370201728579847835626406261148866757788532348093712264447408603193874521819226787182236075366579393036094081223807368191199803141109049150502238731421555094534264628952099365209521262066022158292827059525963892695871133466187517870617938247011613419665656408207237520091613568860454177388827179096611576123459429444292936884116280779465791947599990519959328195500469820902777949267763416656377986224871566239032594510506140359078943126482092569029275837805791616150279386679625405917162336980287506706096078379081490690353212252440220039313963797382530597879003779355475645800536332935078439311991586146079485789763468358603495337425194706792301906830951674899311419042313747825064885698247745211452206332338933336689372591363576473761006261766024574286198457453248291643290507114581974533001892324250122459296759407278998233623168122318632543872859404659292890505411737377443981161860346157275511791545750019225850072728088704846338332960799381707013892184249645665723557973677229900317459809131188542103643842568610579153131480382862493092028641538710121239774047101890531959358106665933070608904158374332621036585946635124646570166771674520042405336230010605212770609042015015259941161624464210742050390496649563997893219191476592970252539521024069957481790405940565123152319926520761047158097596355136165476783164320968202572012725300951238142735589995493011267711711860891337950398338119393973330168902088696177012213451074873688996247418848289468411969323177768037438785427481621027878054471845701898798041493835836499899090400738171271488351918722378709381162826780161619838979330753436762460056590961015961708353948333289298789970267081500335347332802856079000635208712917940842931418125446786023845994803895098617357558022945169689063520830612173455939454821497916411497838372125771782923865232508442122263840659718786454720687765728791790309814687302486113996591254021575548763334355753710054245826600265082806530260217995816635159118419658604775169730304783985906416731806738569405104870192118538966406598898114504815057390704465431389748678019515756921729214088096206988461168525081230812730647414703285295378605379069185017861687876008864178195467563907737231734216074497239420795706229848042300842132220822717192752832142291746451593472428705459645738986522520147705780917192285648044616072251333817208440422233667746982479918403751283408541680640154169356099009807763742062885256870988396613260290846127353064874016206906155232036622252795124506781489004552748490249976798453614215820120335516654882740243935805099456925706757145130118691100914512708532807776240562523104528712896677318998420468322500810935956708260768090777505710395980638124739768462700161509552151936603453858161193756861881661935967744769970435839122217451450601046751006763314836976741395230892403911728159736185345701267725815719474144466929261114438935337930125484397965576076970961503862261998511216466342392865959079111364827466201918568193996662150375126474153483674401780770156074038288574038117063942957844052715467212835498055551550970851396474085779834163789673393151394266137823846862542416943449745844803578907583562761730871134693709122243335052825329328839785392531620953226605762828073372559607040714931498892524421988723735230782687554860377468277171520141386183125790180269530372122079784709578030166542713192450913377509786668564141961395235492494325482516934279107030190076647392497265262169074052563170296065638450030882773781737919802800407583813091498959956166432870844436571436124144769791755012396737127632522632111638946003503746056114087760922763464655265827326930358005872520590643886876466801178997796672781382981820294128441292128370650025278377380755603512737287009967263377640431789669966012591168061965924823864471656664166936333537842967695940480450202501788699670742323424644270230521800477534072776254028872041174937404296277631218529765703650078074563791992893278478237899979537132911092461132205940038816157892395642122400490145570171017844971042557091053334651430372068976858731185516366788132138538699882929853053326571536085311208692811840303989095762818548444757601329303140368567799280396524230791792616642257692524441855842016158946968915267348329877256070580704512122380986900257546247590246158253794870396924017721070839200103700208465104968419054528809217884939762737954790107592395541058412560145116658417022814888719422345487189459155705819715054518280736299675115946673963499567695683372527348559128537897592194371666986237318542611103197212165222469417619654275623201913353518380898282639259643269786854744885686986533512595889847908878069777212315734187180714534490993662617295613969786612308782746577170269623189597871372779020428931583804745789123575521242459014562917005711567491060748903654206559504995309961465421147517117941149597401052357434125112170422281355269146093555598571515241724123592834730491224482396976126583332961066809002457295307599699995491138162510408477490807011465341305376524974487864964617840648337370270564128025213433855739123362813098449023276246284796826843682303352260820404209918784013617823300899219201299838586160757998293307040923053660161078464034572730574374204643012173839522333048077178798616197914619249123931116479597230216608143617737410095394246718534202490423002835294279610567085313167540867115945213611919851946160139760926583937773339218262236386026735817292656411501374226471283602809283919866733198545706440092965340169146109171922472049369460715125283266751963738317857399020040738346531477914263658203576206461205112221173151844204813173784712039583773111059639839639421189821448426518255533470890937231283400169808369891443459275137881015307793273112523236809647696302406060834711994018435817213530060102556521670337012403957722586317180851532771458526374978799981613830639255095755294465627114288949204721411094571568547735949505703451825339154855889722734139173847344999367854391599832265530750002353983498794712331161841590635864674013542456051434311899010018993309757742579428222997597571984826270706195042207640145318412023051114402069268355512078736174483490656219659267641089793898181978200791972141096674589848728948546942394347627430579283651274229454001034190170195028449877529010792565408510440710361207763419173837843666394528879260429399377477819642674660397081210022912857662317987827770544374095371383047705531695902623844497249528876856133752146678763787859876673407423621361266784946820516115901063295192365413180371782368089803140940854167872214751071756014285707247165392278222887623523732375267421006134695012264867463483378343487926491246161969541187246548233577654060070872886927329872873670957887327896758147738757562694112200709832080307192476825847645419326829231381801069675400221343745024454705844169634102999011863137313409542620145393726102354508980048627468969056823969970586978207119788604084640997882234462093030064897405567934345049787794968003991655958686700250197820640424188435448757863826885560527781179338415489099803210413654830110714251508054213274732462846938830586871766152535573523501087727047823503883782940073540097220361885089328795342356005462155587893794738170822438061400940796153190469134695358322681684979450508130962888615562832119871507873907881631458620063168378052823597710098221725871120327944440707213846673535204043324084408170401205473088493975751484062115237161832571863789352487614642493597961983234623602672864457149768374986286109700559833611721475279371976936694781328921509289674744334862390427682911765311512564675479109521626964001710658619929643047029498330172676984397854517929920036621372032293230068667305271455449643081077100309866296767329995591500322745303313611693093672287586003269677559475078767392967048496639159030923696476717383726728441304577267126015597328635131519923034039861444604395750960601014711953051809230415135896763839249159953489573396372691244856326640791705054467700134525494796166230455415780198797418718733088346174873212132025637668224610258505107257607054167745064243798957525054729167159584186924822583382687757299034798947080719243854205595238908997609472160972326613397093530313590320469537395465344759357139807984070623585660685841312323706038527136570615384671819568724212247251591412894816169228605905339900842528105072441317505724243027633004160225472668553547319320367359842666633628698835614404609551071184998297434309421617784138476847658108174925949739158941722101499553395880330648930991527999667688487704530909678501532879155868538983264024483550701056925637280258333265441784211168770910952987046900470053974188539374773302214793371056925835450944681757580231785243505220964701654732683260917966724184224278137482551700543411540652456180297483364666351480644424046515353114320026360295736905281425174245051529512372108717128593033586649086564278906841978647262101988721662464798584276811267531895877360482615186120994582961045792076486773710025629873849590102696468325480332075635740136135487120696901418239180332447252893628832684004337158465575020921272767650376854290742915450093027960851732653459595679954688694158499196071022573954860312940954880909619092695694649858524386331409790816827485618203940468699446595346714973203482287744692211325932876030675026654691182391658257909954653570084047937931901085662220852661644378051652295274993540418057889424511907610867927771753230817763553391516329848910244669993397208116229744418172683786906714412126698762615193029741970312485340381250705566901104438555496744868623056914237387429625624274315460051200547060252453668527282517632634772182558656228646096107667120388904175807220321434474371014529690775545759279528133700418905908998967471354562271634832683701844533306429669558129074243018017141387562143668826247855644770320097308464193767582863350597857702733821404958358666774210483343383396851618977439122607669916397104242352947235792928119596137662026755630580413377972117728964402618651537097427111932991537029934848253085854425650694169941434055550263442137735781004981121386708323493277676322379560009137222732118670499488669214194530419705086569415131230874838010955359312806101871545891034699967406547996771603416477984712803059250041467044741629731921167709498556831642499370981150296300994809397343114952555944154942092722986706774272143127985406858438401409560656257261713506594299501692278799510371867460177154613973836355612120654724376199234984081895823032352817419566487909982904478459658739944580060658711348554981328449562750032757880463107209076125136762615136253208430216085738223641869115838745597684348107250015040440448970203989358628514774935975414625431370490616484211959421229541800378143846717968854950101174629804611982374268432715062452367306137128774414047129045234204177621780764915467870913864009298869394117123995066115400910761688777449869614099945959055766202623802812526613214890123750100378207202634654258967267085645595927589097967950871229601198476614130049028471626742695309630705590468015545435396189328821995724620376122476749646095731361248177193514094454912934737861389491250517312694383955067894259610082172340762596582266252186439028495781716580672822240575615771725128772755340846736799583718855266157387480667069235015195594079280366885781552095600145189996709882636786855238202664912554907693025035129251531090971224830104226462235341368995432668545124075134699319480824553111255143576163369546405170314538190268757639306576697960529493613710164004499824138793370802714793519380444976782579417437563005657753628085448918057848211005087602622655439046554966333696023450231324621292246443399418792477334367254956724094566546815353614786269207642191480386642773248169252104388110322005871198196122509500177408069057601330567865896540679360106214479187213652973099336235410434350438747450385330936826473107778278927673670644897176076884501889732928957224628999085660345158003028593272578972876378164496479947278430243634558193213417608955136558244653517386527711590204818430804490220557315518403407033296405442667368763230177485608416580847023930425381924965052379683846922080026621473762195688838001612162187177689843303480724399757869351420109742989864558208675286967242913331018405902433677212668139236713720545568477448683178330579784965698010924421653650817411932746559804042470685159796299827056055152867264325544226916872563400696402561342045530690276135127392295870822744796271757321107867073245788290521900036739007560873086920043586844712641787556570859561890021686882556705666366644315794366031054229193506934102622642286468630578211239850130509793066723468244049925830565114060954870234235857436817727113297149015634027470281663142695139670052731795528591197744789045743756915693503600210757274860760801878136632499720396382394972325723985514801934712899163243284680538338910804307053541420183673399318653023202274787178469421629411884663236278423171434383164066955763232615868421273918996527931981334729611548820754632643221487186558726294487706371783746424628309776675661727620797885437122900627712913869563240756979313885381059054874222764453674480650638213582175093680658484719923520863867285901606075963257484377407790079674604285513624556675161915785766292288368093914304853687748841498095129095727172826590987537612665362238994707951813868949250384872653414667451639516491600681407950663633709329614808627456726607856506126892575917131493044037801768196787565317221036283954826955018080792320113529516985341553867524619011163218068327012501762576669723605854746506505851108296624547496499945338289206833377288693451157276017572477215308627254081042536100278356895791014151660517423582563686385712594230969605380226585899417475003747779414346151744341731719087631602932371912433348553536151886969047045843871199922427975811811052283823633386094262965249303192777123557276495254788027536310680122919843982317854700805326248076134021027117752007904704693272761128593672612353607056210604977431341048934240295192079433869701649953836512407911426276060291315411825139723733617605118857603789221731216721657543506151052255816659208140362552014789805004948911751124605955204652390481752405916946153508632550820038435631347942746474677147787268942042226503270841190025440996016440825305298881585784056685583100609357391896546585158243299941407358263698300113156124806004916722047224037048428682809300213909610973262284237161590012105366100019550997187233719114069876767240911220229489071177009303696900710557682018749570822206354487538324603139669523904971242070203117829290008570288883087001331210968559016902620678644391653177029900850635926869088069995538140443256248572173800545848124408354250913363256278455653893190913893342026567347843421490174199644354868798882718565348033257095463482201475435012033338105949854445248441214179736820269634600782174110182100227537481051429092319214383189597134745228218337995696210068526642511464508359879860198099374580721935840252981221439421776433277281230448033795127971337651159996184870104107960703767900436465710154481326669741025074538452512792646232457429162907904986522729403990465981925263276101483900986942911581419225004539655209355404595133056208797793961981105339388504130910851999252392435113672472610148968552868197717899671746967222328840335267212225187308019136037462662950234731020219603205985390889136202126251972543638748478079263007531358000735417296739100311139393785338710550846806423625165905447566599715150111985779232654389830977936731453030283074406705544499420973095242449269080830199701496407234536624740474982560395877233863095760286755003174945196160109252063710319625936017066179475053534422001491731026117708095582077984332541426333095629736180037548294570921174113650951454747323739063503475063710829973071748656234749852866946688550742021482722759393916495391232920415736146758091095502796147925513961869863125539338268118175519975919433386966857740330237287368133788632250275495873149426103989075614952118046764586045665036112793617883388205784135897373305525778237122171637700725773270514489308973662734745379701641784393388863564206207549597868802210200926940666411243005256502231392722132887677523913816875945418675756025871729467404174166941345789645068546432394095758161683844490680109978088524183589321081540233371207344770743591346185256028504399051227790183947817058972549630596125183482314320885389340872918185851152668709720219186524829283988647505088912309087251477266655838715833227979650806336351827690348427232504300009213540689298903488343111447812812572787494081916696559449616093165893585161734936547966315096673946579633952792106533726459006474022144727427997019929805715030127596799979718364143384023311153206035929231756809145167713478264888979031199794147795202932334451493561978268479998785710001672962511051165233915502502925842217274323397617430847087983558036675083421698851451876286853798430639908443131209876393053135858820995681058081196022527825268643763127594693927275896132984017543040080162890229564893017803323829855146005268546219782259111221070882075874779531148736787920518325794695082402288528432215089591143555052921210444149248641320150117355534455709370540102661467321972586012721131560009880533650769209520769048342130519800574079360139259506450968009988534421501545058660745683386685898733350242605688487225417653755383659699058741917742409197749092694941104766707045350046272356347458242507115887766599897645311836080619265429175098673138026584928349437736078592880188457053678914883505830044811449400065477448395405671308983324500273207176539735117971226096670236242124846694619916294721001206169152145433300166075170759158114156403041189721160729066786476418909718045559364164728485724942325473976291449192826613612877337746842529093757115545682283993567313079944895264266044194523214480843044582358245623911863504290311572266942398330959803671053385837756457104742430948066731962791728465502852225963251018586443419586740964541645782158674708629026979439569266165543529634157744435693736402576848061950333070391236662785752861063023491006155681676489134162780939411557894385689067157108838782104783330137602675784856507259979620800949081076693398925683754887052736928233315898611691703166111442093498748531463619019017282500656292545392308190584573600220707197163986565500478837785118166184089269873737717010500082890465915168098703041780479728727176998544679637440302711966878437450823302098817178308600784957099873779497495498894297463250774132466665304277608979482428109416637335142189042054332882567445875072185625177135700677704981988173958980905876614160152509524641082714434045657461263215584816394562605492306860008579871488697154458307107758162338507744660546564322940784401310681853310562961411603485789993580661500994290641467697474382960586235436766405217747879222798251754156823728615713306766371081732710535949027608944685136569392443252458488680629208864459729829439505582782301109427536029470654621124434868858387159278234159889035097702314744383137087053988193186139407705271392550238195676866293435493091685043181468353281792951968188317337435709340871132666194608803043659686588554609654904320653762433930434089339269587979359460560550969146307103355865518057119281171543179097998749058972358628136304699775699182872115328363687035992110667894570455718899952138478975015690119431810302838595598342521827104466575269768587487125004521975421433325907254421317390297655539068708192852426980075364847305484390779245902887757864059978250854568208930669944289075366946633703267008609486229307693413931055361464326292966067916404040666771905664276103431109868849497909827385646877646307766252385207274303631944023266913616012416040070497871213701011123229168021980544490991060398563926068481880429878708987242911774390270180245234774347829767733342607038671788142931529744936599459746601649806261379835880174079164678362086119079445687380438345882400010304253861659299776289892121852016546575915402195527282246958324266369400077250143190079850707088802439854807013366946067357933317869656690708124667633139033506427230889317361163628202542689946890511792054980374496325453980694640820005032129718296806143907973478782325832072672395606348086231172660286019356418674119991249310840703947456644894523285321903067674121186690064442454846012884423683193903895825743052999740971538209935826763603552702411949944939444127900364025322286420261251254592908378871776691049307285341885224921339875749384696075016745121028396415227696267910925610110263684773733612315150692904564184991342953985245377759487892523986838675123254428644575134720753402199729059104918261891289106210991465372533123372531776273033256145876909216488017870627924180451688432878415543985403508521566812091661319330574841993379280680569292418378845478421360160667765427722139721112222551237755674369585838385493411941402634880532856690790119766493232526775708919334374698214182655627731172214496321957170141627022578303495245085286821593550128499114784252201905948062760388923348086419692266656827981559155951430307235527635341846871306356682211226973220834556232249975643926740095627635428752245829643127106170181947542776510118701292721310661977639328820227593951826636995831345619586191439101850089802888295031230070101869976102690009230451287234822583690908441121149171973496952324882867370537201403985257263231479936955420607557513400044681984801694333521084293085669756330628673724974663719231866415213313223752191015562402354627772605347352898080021398562029235177202986176655278109407620292563398706671480382849644815907770237219087101045467936903990460310863422869091159498387307412807504894938648008345281956829521698012927515433332136920086824271153296729981194036121258933995905843845485971445167774843635675728412876398670716767225523804565727633069195490731226604718936590309704413853347401657317223916274901628725625109797899204484485492995765392075526531759957215262158968715426689428604472589277226142096072863762634942910147408833409230178397139595102263636321164124259120384001397881410551999627299046919081526078709646635545975949103952692880779338070584018690018925651642435738396075040503911578185861853585178467278104968186251790346275826702639778035974239538794559579159771586657906274575445306926814886539240497706275433833490470822298770504379837295343668935556859782129142408491598756407805288380073250187290003947464322242145082143876291268366164755912149482980241295770184625158073724543717500873330140867653637443412078151763392593235393892847677539352609372845259149325650552582444812188050780623080652791092514685444048776899520589358970765701800620300422392129063566768999025988852727516632169222711754827261804600658814810359238955613348525044363813617033644788506869663783025791997233982707271699292874993626060815072893656720733911038553522825454597607604970926740341012567594976881563881781416457986103885993237285718019160056149435692702769962951267744463436754816613996418027825046062000401859447081419191877587781991795259673087227715976219958367134435193905404543013617959111857624608591380980217325829967131743237806311996565369547361498717437901854663732665450941436450907423825067564239912222604727818304659503647521129503780062721288762946813283188673713431647248016438688066051708415192197212460540252305160231079625437695846030830008231057694301819538689047353347109892071348595501363423558199633938948359497009932637158837009518138443883957538068858427779893508821963692351967248179217048427173727952652616482238890481725171117888142803394434112094696272215425550168923129369696133875413104814061949656499074068281247073691635421087965380058920116736709681723042188538720174604678788567631254351238160612058681007347754304092683818672512469894077129598343828558274855621299723012391601895504476426432670602301067121783720006110735621084911756450581033151094893799256355100854765223420129158101055551972668332519940931283044821894064412281494562181282905249004019548674083263352303880215268878331536095104049812179097737140774231451651959858890423098554659653359841345615104501527162188901717787945057666437410200033987171248680264378120779925034288725060264929590801202200040887576714552421758801377353123630109290040083321677577118556360784185350145679485527018038063879462210448337036145489524531528063118194520870060227517610688938243777296964065687598697146985804636446641929442797965980992080592985320563654756076522593845827402593494628016254732070843890661139299059961822468579384236967096167227397941412133607213474162674578385577170325731536624482193741539195810450031522738055919374773875544117464418065337134892184896822628134819693696665770068320764302614149548991795681488038071077563090487949203024252111061111951567257787071172373520059054503261143217768105561062635617945459318334804773269743380285603898024694804952746086720901057990690500940262710325714215724675662638337446765070200085561073438244543399281807638318483216996174051528605141613063729100261004998540627652510505678725855414480155521635074524813658782680249102527024493656405990480834776991382296448965963458939616656579287200588843786558089903322903835736503333208163062329717927472004346919354080135478219136273024339921666550175310861538880511990770841008858643652057473807335293576187448216186518968930644814642966171293223875108442571271645440452288900318442837512535565671983181743596112782291240508222790987405641992529822071293530106835988042601613926334636357543136125048278288308090092181021815643082096972857819640809092517136768195809391209113192679503169898901012130998471881202235377269836905696677379393879834299780174302971218779794434602505051460725912142597074220313787676615749272383162960316601601889574249794251978392136670960922918325729305998330700811673619361123701653338487488374582208778660615190736934518676127255807793087009939711070673008791059070159324275681484702895216870947348268318227469613279052369005803314962663964230359431192238352047301989621931717802098627148671975920204570358163319817595983413475210833868915119851743182928593271402668176164013476643635638976063557632196598060877739248856220879736314427481502968127584012452655181444325622175254590678265785826255825321422969065306789859244953112500504184069593699205161075145713290724462736031411950747264146749471806409502743386993008591491814060033297524976458082698012544472559343057691718576874859105572861279711375485371713864065913089972506242453653631272376931412440349277992601439416583435770752795333018370284473936782037958393490135635675360585576139510778647540314127609252243905847548296830748991075018072300331016275223938503108771724154916235690562348507094705175560514096120313830178545452071724242894967140820652851226591707487078501165903127274594976354604135760556230144393286414624309366840002560802526799107270765254362140402944682456764629737070446091100286132310047292005919897555302172403257661001125994736464812642955872719189413477471218600251402426082449124948575518977724581578241681624230306646436672267161146681337570407425790156211973222298826476072435983728666251094710954909235253300065982326822586865910665546852305088053265080488428877805836429138655435836725693576617393810668901804162377995494695752746895448735565750769277920869793138269633665590783876609463407649290239431755027366819433359821410486827804713997762580155796266934327149115473298229876147636333910812541322112962055615963069856354672520505940825781983211094302205299226384201765610010243423226306480144527793183142312372162368701955674450082948567816373211893275688975092204801665405111987712637023974322750668632831264232859360629367036930703089982446168168866061738596924835511642855648696055599756162879986848520073896518981933381560363488158682205231358712399884455689501433868675998709351970903149438288892586288759053245478549086684084283826628925112780269345668369308662400937158527100935199142195641781323139737730704292552309823700116353415696526902757591301850314108865660494674823392799598308327462235870902367781714912885384358130596037959203988680931500582068068592584820221374218893390975900914290186650131527866511585577458506608617129662464573327950378780546136592438504271034821002529891022327850772324555190140436760379752212443756455252700014830283296244953377116755099682034347054274329844178367663093091123580415915493135783576718828587119397145039465257252014972336185353853906463619661188029850726505368669965028747011771919458993094623877226404524053071324584065243566744878289980222980990547956622877122640950145723563531379254226634463837394763086151541226366688417941766599145145678244363758539647935883273169655578898973062503846220703826227302424825174691541568738093111136187097656866941113994780959883673731556912056816579353947038171457618131093389685906522206941875399677741909912041001442738159037699445934284006195253642177878929881672741312391447993789725080535013840745690587359436933577526621517014805429610018894628792342807179913304097315519727077076732058863876508557914571568990861351331367503477985926867432375139614279047914288483532365275633797826260250305522017980016976723274286129517589959912442278603133949464106576966101328507097680920909153718617626856036356766667911966123894660560351819062735274236003965100304999755139230287332490603056959444769337119257515038131146292355089908873988722280283282100591489702042597067679160524839754826481223299904291228781837012216341384330487023415717756419078215070648306818721826572449598192160789935457184857206010684301311350440284675957485118903757827234901473796336098425162231244284193733219384325465593663461266998165816365334129778484127304116293698605589591112389319481992367527218037660451686272792167311560463040778489560062584092330601455597374264522204092245060570529611462319391238458774285397713701697938999141084324573090817472782318786030670019267141866343922396920366958316586388042836864884101314785982957783280995457685531800070084876807681865035474659094277949982190636106281116396322061833320417219163049167001457159760952563363478468597148649800150395115255915067479524398568518522011281258640002355912223032990086140817606838876587849825194238894445283636920050807938151209133238775430840677547515078757211422082788629001164221645930346615085551245047867057691219381494462163100578995203484345096409725844553806861853021484877155523608405752021657803785207535387678869477454643852389862393534283733403634185018395992442960037943518601911793569495479531586572702776088268863136755270261897728611620250397022360761134927083215532962937333745173834992045276310672911368299374065530468957340759161351238609256905731362155776708373138675665416649550174877313133947966737657995266917553732369883150918387950378765937209896449098989724043502868706115359667555330946391617111901380444946737303494509463073235707305111765883614986387587519713512678111214119843867806320994781861886974506337165872543088955040642926156825940042485804606123300778851775521095202454180314219908029220434140128143861383741978487263547225439501788217719021932974140684599950666250065332945491266047814549148807052077602301720716863017821548567635811967546091913576099789172832992102662076237661165363270449521600468151077505121579196788187693084287685773212372245989885268564749564962683213796766764279455630991305974747537973600557998915555463582068735110834705302404469955885591650488183693703897201576142786773780728025391991583315353326544433914324326354046579115024911332416473966388585608429104521993629109095109758566136947573408280604693894312920738164030584224848817476348589558656885582029925628792957700718095733050721971368967598047343948509006431603142285264458304576326611059405936960600316540372366479030576847775340207105557575696068133182306765583789642614684134317115338810395714531698592300433540450634597416997411743711008474976858080123913648880712907958911265572816916678082916946603107442377514285262522408529431953692641644651031569024681586962493399834761258099685032227968223247794522816853174702929424478436046928378346058459338785456265586288881267251652570346173753529046954392136651852256033392519360123677059339029316236050795217739691787508207885409295792958850981410247848093032494534546282970880903770194559875516194837929151152672410903458693766468912099619807310473843748630607243546923564848525692472275986721658439267816302580435047977487934463226038170122292244723008723815190577110551393863266013397812078063691737158408921972018845122623632196324652392032483310035714235044829249185716168404204526492597180297806083298642443696080057727441117315446773336259524807840111381056527366730834501731436942181705243194852169565669204954741165814493107393501515584919794637243709440773966874045199927029298641217339511899564341956207052511819793337849897285780801580075953300480119305283618415997072729789866727259372229081049466193089431559691357931004860100503823257792960342983666904303374734192700971223097395743863338311452827679624784780631707509469279043245125224371796310804007174611579320301932298984466791582078008308523628283772549835312641395355981017153481672292278589714062802679331359009096558339323626579769152877766419967613856416745608371959708918268612277629473826943126015595574077994132379789865810014616350776222376413066173700731694719623454293816963117980014692112510670853763850028329996437297293425478876075274756797895171998377711165212006583323896149391506684442980574847715853239355869620125921416727179100732454371253913753412778608016467178143429856298298291268420152048886790740016032841481349913468428163309631808633025800100972278523340969342478574142880916896957640312938366624119174077870355311128899963366956537233197805733864828104585906223574416594853509534551002292998108938427337526789991777400444725158230933637192983600747171267019265462934904267788419124089255636632918013046480645246152516119620182500040932044309203666550888541263049545109458486576523780861291228226978380332973768377773619848499484405966975965732008155190482170112924958173647263322597293788410365538989509456837210386381809254436353403093305049903984567159848128886984936604167392522724003907239937059144719158825437217366028645830594863956946890723966876106482385538974829549285208247711497297302269819290103281514247223854401061816679723086928743055504920278229325560408992008732014564140432699757088322308614698776588271470662796393731774245915427724845857970860245107026935703649385943199685348981758508839998510364896737699162469061644535427830090301855166131477913901863463761134027048754485932736932938317827003322670582029667250486229058839435264152507692760236803681330738783954090888385934035294981162363972139553456655103993485429535419765822200013567033653637304887195165440547835934848689416924524339715052857729807117971806723631854119016641575571705744042970573194249720344966023428141208373089544393001440299123862032355939205505929640921900213680705873203976189770843076560074158147752323200186429877519263289376547936187632558900689325307647818422976268187270978873609907837867232061041783780768072956312486167919482577077535140934165436178144250354612221792970171573675970480886871921200361145809854664316638989020098673823617932379007127974146947023716601181811861859270131782873674652249416162359745692961211949048632128832572087924907323964167190768861770603828541524215778782072893503706741907594047186155067396145889975699881270045443524748296433112060152927891471384920407635044148225415610191557111454669908472722192391495788523400478935734122351979207711888237812388171934596661104648249199098550570244849087698665426216302950365482158922951989853249709724764931048508624730621238791217070181001805961461689050655907199488670804323776700180942944168672338234320530417833309073071961731755022414491371050167052545599389829294608617270445675725436520969835259985593155978704718194978067678884169267251451860383628893302576589368871071325096512447023355974911947748845738894052275859421279450667095293601984605883607148010543930525398512788505852065222474597289883741429000131196421066323326354691650656186658254768294342966009456632704478232807789496101582113059586845291698676556129302282393973777549595008371100322887765473826456658153012523593690871402380212339357627958252123445288050505964991751201300364870962111093587276341862507705611552496143403432019263658229068360035908955317958302690098893524432476201273552230995235145631179425601869062335091029801608142545592114471451381023940051742664303866074537702919981177098647382476945978019922096144091760718931266293263737834562188813039048602483866867951565912290132110136706993295302493504715082046263927971903067899144353938439807128439933566492374405890067009220421408079008220045083206935530077118507070724665737930061216670483765202532968968518401354904641235321793714541086610487374972205766455596594137505943359573705617115591537711447677156389011725435279632777902843721135805951285420954396058025472789267548067312487697751258755716024908648088027129513665722094938743907520182008101784856168624837576134106217586902481910211419041324158865341931688340562047261406414112309671903434488573618560460039973001461076954909352800901854888980209689575766576936308911028233959760009505066217577755190975044246564970045740890887668937434238749577760337988403955374789890251400815170628861240729424122045735371109912711815824751086042301180117226399315978476621692309618003599778099194935921392044314418097653695452732812581154179020946518290796794750933364247270017638372229931915206356415332707117010425465918007579147107334713924527925762669109032126389586912505680455814789953823195684868845375703880973765263979445172346173945371130272572038475441285461050877661815354757249610203071304317497365224022341713666433927399494917935314417084651995030012511173432791045414668122330875162843530797283057045311442933827829196524938546503069656929644770057411335404908559587275125821506979886155501176216408596594464394089408927952848025617367828712144759754427072412289629398132595094304518864815270704576373483548567148073198632291588967231549468722986080376695793576546650358870055116949401144281256555120013354415695116811235877842248575214592283687138002895680801981899754011287603454066714541526549623837373780849096261668562354619047196649235545834091967008497576316156495906337788466778699141289971510100907692174241264571551137191687035407357943317569739825013697784246451638249813972686994821709304278507504200971857055389128741312660149257208022681593030100216859686407317150472888797731166940931897449082862199894963916856130844242774301878007115744406469434635252040747957875490994986427698908337108755009012301509014096878639232999178069629931997811279098054691408875327122608293214603146390971788137055939908817361996082687297734998415992335844041960134311254244893308282868165678470908412964601028695000717600468352485189385873104617739828803419065748580536315536333190359659919423832053770866384060281156562511455565397640943069528038039289907379340815651810554756825226458078479238921754501528203315152427424725238816993382258396133188752904923403112420487724798493178189735423153478456789935957236785057118326197709944347590974481994785593527428362696459688513503389206526571041087129952399552358799475765287360613536981061301384134154498177293228341434361824978572878577254455380595537344818439548234153083956643442676018867876548975953923131852404359698945151780858294740245777703441338943672303665012514042087487653716483422850677577758659742156020277144119439887152714840089635761277762807252637220121554261253767909661109633798237976750838852415852895275315224909256464277761814244563712273524714572759223180835788500789132123663865525038512742971453188478027198381486728019080601233134616436144377397323011668408547113061117688066202139806356686656548140358377112887206948155396218446027650904415275044397400112309784235091667684120071042461510780425254129149365118877750029420211529603849304588686823299441242578085549051517282166743065305796193739872311066818403144236126963846762555963250404192149622816442000498588711473347360378664920048901996508650221234796620909974577557057849913158597972695467993953485902515855896555250599428347814825650007491119739582009702746861843205506544009577559155567307677921753948629344283496567671529057495444779305020807809281405339091577269362082443420454096986974495227881300923180555707888640875270183320189737741776662469048644852331237248578202039538811330141270431239435360663125679215640887680947429588327478922437028146471018155913781167772843354133659197630758148049859261742233485814904791214598954297298956496459129734694176240677390262980925045320386000301209167464540746814774658441338610670805022483688387768840728802886486302305917875842218755177398174616051532703537780266160855737421845571484393522176174588084373300959893446121179538191619701652670473598983035616920151114556264083960208545317954488683204119188244244319512744415034282294091058240967482426130022064039740128543711161953238108125337474637419177283322111196013923829268645205975596415302501853699842466405143625537379766398136417971332250630632038844555598912452193554319575960011374711626295285275520742849454141329488304082816736693006887259674719106481652136044504013922477816588175245957517647407171891834633792146689617966180607242826537460950014643021323934174430768648605708202619832757457439394725451525801487900151331567217550418690142267984403954055678425037944873944845055770977176259292464725280931812903290867493531836120171578389486862192317406306839031623982961417405817771832538006256711426982707343184156379276623325829429194571845478790775901091879089958537288502107214918043277741903891168460999440623096026603922139941627503305549685266360781873670465017717706728396713335044201489179028425264678492679161436925469342612833939833961381513300480236025863324442789852987589977342832881404641684230204196172810907636676250973452406258265715646778168035008124494159724771040400973336575643400297751121750768187124865003314817183997084025615478149639356103562234349600759528563310712184834617735732919811358690017702062405732630543095053651720990317077238104813638185377124682869441498130177512838986589160733348362569884827380593939664491974395004356839057580386722104280123982596783652322762018922710216274903342215423585739457612770788740760570430570275631314133250343497039347809187538136784482800071191223215979937623046191394137183920468747017043816463306510622127079067436418088868741515999336859549298432238141604743005700828193697100583374896219304217932695285640577946269075282753362536613782884316948400921321823255218629217881770060634416721810169839376990619241219541813422966831163444714356366341517277753893944513731005318399307445890156635692794704350976080129235776227915702287890282818624156417712965093595750597983729070161609883218835991765932462144512918447473624533338075391430999280492164953744468828146968395829152524443762744491743203194500861364536322016121086324310409162049977160294763008411346821453369760985437836045229932174802227313838712170766336158274746154946700851070023484438956411411022500440421222062554258776753769855180442043283620431315517019690278686052993711130684516732326010217264215169651090146109599572545178307245032451209197326523039938892324429442710102750954988056044927324489805840554406321951939515858350725505516672221044111968189940798329032581356705629190266715191509477774665306516087538039419535124871125621512444094043422881247001562989956404116723542070750864385666657494261219122160720940916669058890129469527915376418887948291241446062444180739205141827683148980126467917133432849918830348034855209183137354672991051028830782324326889846853135359237233347421071103327938444806798641119177107774417740067277711020987462057769215742980459385775999328675562789159498508645360681957866291309321707284842476601380197996921143463464106993105718386695466552965731486365707986071939571738364870183126258650631031271689012233227744727584271454690473945135532674570534249131764789943532097434797640041175007535029483991728967859010315063755530487354330076249311672113532723095536202430521345402347385253364903923003312080495992583946142082585077893105859539845854599403322345263833968479746386828734008860198918611029295705075018465246659166836780265867273284839179687069997469800570505826570330037765444151972672538102137564076411878031642422380933860296675333878228984726860944534077966225213135623694921778808649181111953610193748533940368964427887308281336401037396081149484303551168950712372885598422729119427458055469267416622124516933380227623921387734305740882467214478705816684982596613028073254542319170586872892544665107881173339703965705611877966190433849833283882937469870773055134178825150799656214390930609523351100956440343017445060737073826643543176360592428067270862368694271860054697589120741456481261140163168800302465086233962150713898699211398017808571225617604315995285173069463988410959343535173810750502945323611089820974551808796026948147921539455474077570294131767205293210109398080692840797373591876838064590565371067276580976434394651161866191892200510997631848475917350405501058631404432194618396396937793541552112872876398093389251476301032857362932173661124304215714385824618828469066025509619779441153064809961011024972261963626483616387162412339482496213449419276130913293936489093792727793644781385105506951725046742968701260916545746448685151463598348427679122009848380376687714582180668808624104245773284958693361674348308060832328154367499107694625472782723318245209012139844365143356373351845210800689629647713760513294216428802195451845742406063106787192389345723940494571985150911499862195422224251265732574202457992235003278647185751774053507189969296156457112119845237765064215024748742860835439596201907880414462255979839038431766108025639638401490532522557892726715566561417269306127119354437029258657166920092860258407391970799722902274122221722678942990059696488489878848183596617049991475246783455976140707798875879823403649319013051362724559640873671423621832441237636601578857429840357925048532473038824855058282095590067867306711280800635896254359087037125134376122727910085304513155734671138802353318926587395545538472649050702413166043213940943207400869818846835248192156463332411573838810717276899046229082029966385148071379820469184727050173837662984919238460204401276639676097297466262729937952314763027485224293952306689322271785608455472358920963287378007896592171227398688122049568170410895693942304936755368660687492472704540651438053946857254412281505077966102669742645481411029460374114988242453222209961132205439338230608781513723065396187170761371831014643177302388269054941828635125795660609824448816281639460438320546317340057563717160479832458583434559593697747057066770821986187004366344433456567254718350051391408572733234245980634786575267932676178480970839846726189672032452373521382826284647311626622307964157309253018979413334136357787625520289712019576987850565622052963505120139065053491664424775231496849548359264845015809253596673924009602453941485739531576423372119666605318289398033188677330128653377627351702622076326624458880692969219480623097404902424496787794969434566306417110587917860992210298511240534440499148646607792385921806306251537234271487939081421126623249438634632690909414571770862724009387896168878216861131971479189598084484286000804921418021373135334809138157539267248870506828456071248262044406045624502483752722693007492486120004822822589131664780023102412114742008565779826613824433357023987742849046643381539232691125362511444445227199093205987544346215902580203503321289111202272155100604716758874960884814540938864732855954647540309447721024740100381530740094649955595306393703625687840049962398441838525438683947240750237262675311506305909693109273947674818143592417170093074260545424772354825409350646738700734694769468623506610962587359582545247325389273616889633924838550926951108111217889115822863616324664807832937856350511470081692891552748011697792925894037056788884744272690290956503229852193269248769597364253680891481989162429992550040805038955176145218683782866893537711296123035643671087614742747473188891587511993093917968082667292849844144387175438347385619041061107529731147233604968413411194031315260925683383657548118273949201746654984483643574511328892974552108357509632720519626739527803641979891706745512429836289295649751891561938697703567079450691437519585729523070461942719959564027466742222498369591432507247430735761391509675582416173348995657442889526912350967531800201680240432535648381303331854131519715759360367877338952867854024305325574487115666995389885672383327407423926044297675086044306640075919061466760713134293073116957927037272304318560300580429729580266315889069344964371642356790460308331742242935104424960590829944210964589667282083096476565526840519406148095720599059497070725438786501275074735796368434076912136015029907564410378948778422017138574456639105827523412640728367752914838363180843155407447813035751875074702629327233468161327022064047658402180909590861323521146130935305522938319777569244471678206976312845714515527041251847810821686132745416115093282549102435904745801340761886977456199004667028198129073011659565020286520313424581717202177224373902404692383588789023951501916308002661501356038458990175929376649261460801336344937968853058850767146580838154429049867500067164455917135592233648889763755134332751489318088501068164272076829151483475670792315675361992549705869048360623848548213936422949524407840058457824918653673352155252139772529209145475238158908913841525163878817362709391837016193707561834394600775624740111519882259497055279029051066960099679309854242905649667300098857216184381469453610607215537965931278565147692051468055159508410861802736080887861304024454385663883847346643982320185101481036716565784899968643985711589668300654307057054522370130475219393772502126508397859153411849413124619298824600972597905190231476811328523867530853929380911434355274251730663561891899225403935547505363381764472877071074992973694747409737622147747010547263993698503420681069365457805329895362498297665643521520682234654028115985451480186001490245061097482420865270990719644520057114565671773289328615522941299153750836466322148998616694234330552675186117115443316093385923531682235248372179274956471405101514830052541946014129735568162907271192834122380060827089612691782816991257756173205993877099495684231454883475277418816625208328864517580514529470580207890232150936367104694332071312170014969399163018901541512046816433797303597686277239317566354300606728673614903678363225872373720520621883789535947764087576106115512174639984948301632494782780385283711383717557237272883405873768475209375840263750014083676825717232257657217921676463495509029540814313309940283039303791929959544936412452759743282403773447114452538971291279614594288467742049167653325633083751783746063637589420525068476250853474232871890677862930147948697146793083626842834309497506427907703945617536774885664769805338425318341884843606337515624237105019647801246224962348286330097351916554048401167313102671007741735277399430186956733748905879864717568231825908180594826115039162093485974979003913996986111693927321667984702681594359147675402484172716960171649004013234536774384993212029534455144775190723237068157825959516825754654204680158103298812452110801461463204992842782964195558734272735283562848272486060032910567945027285873748164745639842545341453351646454911242952241717635344466207100214811389205509012492912622261978271114172517319460760490383949533115718895271375766640223787827408874120070708605176848843028201740309320393175465065659329083509201178084292948347879982408829289807054572202665989643780780217665617707182906598336555393765425983125999079680344441787173101199393744811302455721825089821378568535395391740421036401511391100441724717572113674853592345244525959092776530726969382308703527987460753998096950487867130096707528440798104218466889732212774814722925841565066943009871549410700933429630823053997477594944977360003909915585648991094379787343214116253137335436297790001943440320315092570037362993838573237212291258124012681130837500991634557608862729854717422254484080206058883650584794715015273566043189232427286783126020320196080250895864359026217336049459943144318353414953980679764385996249540547010232206424855825876696182851244278305536164560439611684844751032290260570933883302778019094673182397438048306743377021915102267082623021081347462307630530480579586616457271801312492818454032604775088299601693338409202215135245698939856946200242882500806257396628094041324493429083020954699477403274813524739552114817279116483864586296997064179619603938102572631897199890260016482267035436083558585294329047104857006050645753517402361751285272683535022767368232273044322783169608869561322684363772523572789566421562207142813565936896426740197372287237049612597213311931740413627742629712119984017932849121930582047724763627003375949093344397601066974269867075952130660951575244557484370629478478270123026321447138885841879637227550454720406109119582675822168013575516818485833884150277785552524150856502548626246328076535643868728620970427596984485155510455937008842936183569459405762301585866538760783398712883484093690942279955207714759080503091151360267900455302732201633953684076630167010134007970432564573385877305870277211012746168760388039965130338073003447258520144134923155017677495704447528768848780403246343580978655382829151997466937897564726488525088537253764826888451519296966316474436700952372558003504421132792859239955001651825781828152223300937357380049362412074712378032155718817545969534994010930860607960205196899175438419592265950867821517648444867720095901691398330802110497763973497550059551728738717715489103138473313802261002469927495221122773918282757976649850144348879766643627294125488640061119260739110270046201546438773035789422718987802497215458328117527351433601133747277067005867598304086202910387257594428999352794034294659414198925821380587536152798997289073652867152042161033019913930522976058416883197424900640013626741576146966172189632859141584904030386443404237270284514026788984387839225627060668643353375985525155817637772845949429465475303565876715558242633607761804757799748983418491615195395871707459549813608046232835477983120072252849860049970064117550567452965268238435497916040884151970082216039036095455243352724661878315516298976000241958768265535877665957395759431770294476659818653102904452964659690344274987155270755253397402131104185309893520708017202294021981140500605454574169803442228757431282669477873451514382424951097104830581011762449618533254531973313597622753054166904876613620186237063604927330130382466743953454738596925842194475906286399396682294052795293252316506297791339238175526460137701783231032757484025130944720596754534197325869144001172293324139020098458131062875187231944485416941981112400940797040761946055546980595399153100443616692504635453211276279376323123084709322242859084108019015063306613739320378188933598295242098812257964718034522953344280352895729633501040584349582567368901993292026726542428095705775936564673916195193359918043108596488658326270328041820404995174040593175443862798821965180636855689354622247207569516274964284335647750319468705387622733832226020931212293367649878043999653123028236879675267543737481744825428582235689287351360338393694509970561631095865493451814605849244120703850015398892561035578375379011556686212071223147276440396540152281460900433817174639456969030309799204965077968522675180773189028173118660239287593936606486036341566232829352610196498845531177975572119812491474921426859077595825249409975446045804357304076921939582527349556854714904222482476810966814984618143809768731917520423049397336957428755080689086895505845205171566911423042900467165508952543352277021082987943934368204518018592062923984658542460047334816746061946193867652084735995867179270456854860987601318942188613143995741929327579178828652183936830396470013774443100848710518389778589370564475183985767421824026667031437942883210893450313368810477843513217151000892960598265723906591335037335462949973731809143014313203735635528476157141950032517501397748533992283148720368191712595460563698283399318847067255963207531669594783004748083146724242336912189198002624939695054239435346229312010543368169825828907350751947105391674336899729337591883593333344075707611861397279066955954047057343028370555116316412874338648518712104654360585904157911632177336800311524783871153770368294055592060633817975746291032151417889522094171334575700868156451602159795126527931245556371969901058243833197293779723739029077462140682858269584438119311407299492417510609210718482351344698402705775882978791724606331780094547730557839688295601808295234767768220918273341453121559639051403077142130538139305832297140380670668223361679419351757447476900030617375198741186728254607502723556347136345716991793002044013129215043317052977920749265519813522673448175117855729195573991722116375053930192645865851215854469446988195006392762281023454893486968774068252152080915142378956511187671631514332526259581380189621002629093537614006090386414035395069785621750593921680138499355407182631154262696251053958544048013880997568067817008556980241875256051391293748279296601796555799079598473860418335975332973242783153193817803497326845614657080770953926176249405089744396320566986060634006104653281248514951988285328008472191295625742241399910103278484726873919475726464976665220147394279564523327609255763849061702316345936897684466770750546206395184792905125897728016256532472392575400885630401301619693984728969751718750275370039657000836567193418193956808463595204387069800310860188167755470283355272477030035582188693984555753765633127991180721365748027792238877289873540837055355588716233573309048098344700127947913061616999123904666721751977121822148036546809154250720406972314142928018812167221248106080935790183791664865892911797177904071459441941279297370435133166047763063467486164457559144793076301142389572075136138658305388490339638388490439435107327536840712740598280471161281865020485089621011182763038919725606402891715639587466676010959322146320750190410319669696082730196628083939331231028081028754897635609366077000360685650105519378091880999628381524221364222637193305610821229337958434829909159378278433283977808838964885709312671833310940933817968655120793660598930199320657108474984320305819034205050942275019858256531544095134889887834420463759574102205117414429953995926718981675455194731562931401961914902633798184928649134382948963786892258301107575371383321758479259598471042815642191436059190639464344206780203664400882812805906065614922211874412675399966708626312888196442953589482429649856380272358813934774201906336396670223653291587799534783458376786037120929247476060216512859301804288612391323738390314333729370823623443639075529845629183986267452348965720879780090480883114530238615417907938780577202360175370388654339636504140270273800461357360872904106531176893589447249493475446282917587679002700150237884512527452929778011658895648729541812685808221901779656999326559900053317821650327235374777913448602015105899505360147208723710095080368869193237684658338568416561957119377884909509736202641569652116799022767096260538010504875252267840008599941612296398311901890303233458770118047490351361212658689173018080011620513564347656542834393830386174637673111008026459546742139854999739606488597447283285636559156107686855598505122018158381150337215741982353224629144551601950885539100434696967335203426789229194379964940280662903693922952541151698744442142290054850847482566168797254818818903398239218291433199580799141578815254213258461018889355550603961534026135799896025813709709671186988218469431612628833908960279961883649594961504683795308962736449097522871234478503215902683959598425897319164718590129000899563666821653980359471982975486386036700691121019105406023132619428026351614659027141132724102547930670876939046153859962236340494842503529682806445337941880188922483516918504440218621894506036531156376797535064608392492271343568722952684637537767221734096614598899423444925230151148154883515101218529964744049722207041693488310130931347569266803179346232403794739154285955850393620532019919767348102342118365103527892624098137497309296483022256017863512329923102389840727209710331828459695215760147203919877433869780416892613679079629581739037508516553973149330766272988295617975461670117940553961352675065588368690613854995540964899881012593504772593133579912015702144176589156843038000447828531525987464486050459063243116385316880046801441016134747584405962563429804741872772164221759165441302361785228642261079007306385659747863021594165033292738828486195005829957591098381179374954105908377323246557312592944874796744697059661508630610200695894032864496089468332220466668875467396324919953517908026828343308932288683547482884804928684891576925408906577336131199703650607260942082688579871921035340515223587961366855854365947720187318358863131019123185186470028207595364811452907738325740395590265465770499348045458927163875198371532776672890206498790307256511080891675534467229284874621139610355074972735314487630738437465189396247842978567281819508078028500767459908906688866942540868284351391793792495467051815056157262405197706524159343818046693723063030423610305041299405207863768526043550255772586907293967310649381422796854214977983419565602625900422281636124582336315250310204375102488081610371828128876106711097129788089890668603787487131482770752321473924437812400659877744895344997793662765280677512957181996560503704388383317328590772030369375481358254876191767455514176892823412955707234002811287401286839982597001545738761034110867200692817753294866329443151190981759124182542669558031646259837018555951910091289862535967606762397650111697380394460917799279184081997263513411262090803435836585517382344712402212369597631090674360867486539730428031431760483491161753478968646799611834660101263246145110764552602552336252599683371709380258305698622191117830427664687878870892719959077562620153910647802045292820606991708097387041193433962650154355592892098076508304355196704598065595683683527540603172187266558662016133675503431812620604806864023943101157700220336133869218341577725228067765457899316229198927463969673227578666249638561040164487940981164722849135594285205275442695787997421525141624449703122086088739856646290761663745277049732622593717608475379401182509576802550862678837669390499530206714733184280709570173913828561596979312643864175394916786725930199542812987831768520104574550637504752735233769850925530051210725357688171328746566751343699389500210709600860131751061767741444786829748019672065574897013103134085380753387045416093264345271537951737012966701413230924787367966290739275683372390848376536942131733103879231938096252193491500856922805848860677335704889908629503030851536948003199417256983996596749407281794210316108596019884057961746355601241514306166241051998839759170307849566534518587229865491279495185890751517216445806640866746596032556478028257300993363792152223136194895344399166504362354018034870657576920658283149299848059230469201772364914445815796782562961755057086959191873732312093945773845743517945371852893106304240372328781661471054238202794570994727046771782478237693873606045679892368948410561202994835843198097271120032632438647601817245223170642309863955599214061803296621881651113979263116872974783319395086872528777180737447716605961226871059389600661433710708352859111998198486428251904615824697692236397348315334631724464420221439325403024242261111453457401665670079233193395283173158405645010017664614516734331801465675470309566044737789101474644931887505984899698711166177431799230951486090687530136161524546152898088436373016723011079848843404878876283437646254321707231406545746524425204553446409315427327197935116902456804989656323018974817157713016211737428741203361830199168602678324547447421852322990972955046264072474088077979524135808730185822870181082586863527293009078029894281691249261680065968462650171368753758237462380634115732605774509417752526665031314603341735324607480229565054685192559321403649387939529632785681232765447170956409557577143652956093558018402159605417402611650692785117518876044587485681141776731569552254554115730893865792563523096868107188946564037191831347467726268104761737971867157272184069038624289404668735685783822428949932637956274598754063565145339042716163193686759056411867325484285825071084615498921605250261258971529537758702173536560698201967652032823031137565598920329052095326022887101621624718705045110059155739028466366376097671120105942849810279288605806743138967422072594677067876664415565884742987599829219005926670216368052113501317582635679761560052945862256549644139462344976897105218119288246447810210914998686313849177808172124821435178095126815887811461346489072178181867503209503630290456670814240247144771597532717300013517176936135694709130758279738156151269035994418832208499684770916928996271138575545837318847237162131383239525957058482958885608617919782228396875646059466824810199727253359339271399188761018669032719978064833211200284530021451835005681023260845209493687697225105255872760610216124131136901781871712118200885207313213899969433641092186510417257343368168603245449253212658131204129734172478071829327762534765488513852712374269215604749990854084045422375938434675234740043878229644918467832135445048645362200918373580662945420224999768090170296505840250583483907522391798543583727894424632043011323848369802144507462207801396039798316647093928167751762605877769937825894811370938669693537081003189643219682180862656428904167804178486094795796739521659824674564724828767097758137750593007813356323078846840895439625334833277277657894424163440269984430122144073512938315613846440709250826683839732115955156488396726362838103866617025611210829270423196998360413096140890734404041813862014126665022117072163788081210995418929948823001147582205396678475937900830601483240111426396568743215139764747347498884350959992656970566307225478576293903545174894350171341265195459298166750077621655410454155379838797651440712632218605508424676796816462400217434491783881475806679162555066070784175132030040835515284224925245916579051561407380172574866902148963843657808556065956148020449950590338442701099484356247774854431109945682915958582015473119406417612476400406042199186080362711306838672412490017229168875711000896313236783711637198186088533761760626491907244808424632654093199268956253388141462087532634882916910788420921111985872697052426499754128311411985480473384793857318716639912455515835388955682882568213398706001063997726604526285304112938688521026102089737976177787524929964117159257025375660073612170269169820762651577538929525534548925242285340133750229533701335470972975981648225925207515609284871791243755143859313521659997029908790532738365768805835829240124564486244067855507739189838884041516585503219894726222756778480051232249692345406117193191623918381011754335319750833987828754206084052369511465481419265362693718463700024362288994791703637058137401668097048201451573467242126926791303904541949177665789999716923872746195755214972705674415357648899157166186846963109103489070930394532149832906230101489577835578751784456622175390832476295605357274547952880063270006898780481184242185930787014982719043936367119391442014453035952875860551621551456994160083974181457494693720366404226229945671189068955001711044833646356475055750853828003510418109184583401540481990372627178743388287998880276449336158982142407041199014397713449448639427923877806523875198201003543079499170927615546984476444729403093161905107346417203086474931608074659775722047686927916699947344806210262202164380086714898801817184688685905449677856256893025330716283624477613995602471235955533891331452952181385095666434778502246126399239972877719668404313965620111064083236291128909279353601213530785522641947528759963057197414910003558185956256757944979934016073994293555075599443159757006220347299291954582059631900836356160495932523446638342064449693457598914775175278592443734593178654564510495004638763807985568201068955003143244167094726868438223899163389614366970529861179029836172319251972731999672697988083926537827318109746280112011077665940041290369113422965911880915505049745178696639976700266902628205709129449049930295013440606076891247702796572257284968970546966328518918421437699124932939384181053358253312927534637186370044011548914568884524172659902675201246038612168038584288675047719570876514153491228440471294984703754285248942337123294245983160636240392777102713995233981897927454451352727773573550138396192212474783371462525185557222318479985280067964345021844593518065168571813691375706518355546692651811417882205525983290604078245730771975127647542251250777810720725076923887990454593989706692807830292807742007030121018339622026658705512499135149912244503628443618690307774853812725111470278423213448661007786522359999169711786416625690020058833397367151857666959095093401201190809836413878699391775771037490492786223315577335538773769115786581222975362504250808653186405228540557701116561896921818299615548151090489927977769596035293581400451709215479937918670556139710879876574269630100751862019247434253745743922259152142215591322941496628769352233634077381411542832917436612249699309836603466770106516358989924328767978659985416750719560450382895271619927908431333757923764765870731668860248930877605753658266251041292986430810602540276409723995019470048429954873471222213134927597489583524056983834530428003423933574249071166091329503737176617149061762076669169833570496431637102020272692911967397670955955637627437126962041135149530329182839984970167776229055448996189129867809579013713028903932137241023596486980014432808932883150740282786909698484544151143323983981191418012904126147367302760180427498651044648458840675854594001460872942972205649659913063721120332838469662396730560049338671487677715842583705414744153873421293726058549339361954180668271518170193693673279146378607803633898964917241991928621989116346932588948019220293870295468427684366111599044619786652388365480934673779805707733880591972331820736101710618991166817338101779839838629792184689912428280016596507091946514026039446787728701621609263041348321045658747271156655353400243942686985883832594408380553833760430170806174239222478129671006262037650651756939915439147051110285354074222190291523187025510630971979512680263292478931410879943549957220466204625791645435183606751550486761159928574183373510626040168554567056930068059285293381140467401486082430740885902933742226461533049542906387426831138403798127243234228295927199362861207819799301091259602881103895350038347558196426000711093565064535553502713839551285126164861604434280686561793915638300627772632831049327930498130169189079859837389705016990908537591580900984581057810279679557752964350558688658550298803001632072572776352342508317490606734968811670893804882009384175826203983408208203932778305792555917026785526953037743370761335662242798742506092127253845316737263043038881480691639611838355140055886022400389424447499365560156103977842531964697361489586349709076528327025855990683214851407577370732521091361614304249386751785079317708076213253941376938082303103577047854061559456835684820572508495516624599315743789975916168679782267000780326430655927830190181712281892132326635496598256683947843987203492531758218457113837760662458170582256887149171737504702016202654829904681481512596126572552379330049257120418578257711185655434822016142566655705809486155543001538609421673199926989266696638731419406912845168052588885612615008371412170088258184903904035638653102288107447160763472489401780407234986559496268024753618752256554891313525239215220774038413485190918467949022579510127818570134312947572336215549685987824602140414242462302122927134410003289359733867853918368527604014771205731314553373536982626568983103675650201296219868227466506642306391598394755676078860002604220498660731999774630264639030901062389025955007525754557420371128123790164268090421192366758044838261561076330757645225154963920481575771781586408613249102014800128308630225136193129089555888482622318072578893276915019542418818040207968608629318797359052194185981856054322770309309393379288714930680775791388543471893929145887849890411212322415405903266713964767256759939373617805538375906754682238689986620401231062147050650367072850422271032158187441915606532602501402682545064802089744371508990088861571739870889576457598607217226109600252683887848102111774391020318367290138623737306162850801594744440250753698232493746171147276693882302414621990354234134221955491977966248444737465129151207993875895294117150838771323374604547668763762080470815446482619578950471944360829103843392117498526753274332898603782311358789118265283440644400826053825242979483409104167438261648538768190183825374546966703990000477393308951940831132320331213908909866552937535005450603712400833257331755235359888850247421252104143469916770553923123299860294155077565119356530185445761055989741125877499153030174674943093512488583546654902386916019988508527926091212095162150281390500658463968229493041385095445889700038772597465010836289392600548241391316201105407969167746062577192751797295684762168706707810020095414834133356133289336279810193798571315869843560071608939384216706535092458641172424097948516081080422836536567190917786254034780692765231039262860048514978483261924837372708265281840126903849182349395039500788372136678412370056598135208827730352950628081408287480219545375459663583984545327852146733883818444726556197684566331280460513609889626418829742148948219879052193909299196569335664654691067164808115197375442764709654087586107891782624377105040661661858861170917507880116071922492451239255760456169362534618065188767035019878173910144648017408935715181047823620936212491426458249696398668300192770492566087620818576560215123578600829644272862780254579061018058760472804353551741282870078277721089824561065638560436225111330319512435297197879161316724518064168226498076722977876455863856344078940737196717720366980220450794812355459105474468023905473330530331258664937202713472627806212172321116426806014898415064316634370340681007849285384177623763804824019525786881265555182547256167761400350629659825420728195553417672542805111928868264155116662131779511491297069116020466608391240567677007662089574276983408103741273674667820565583194469761128901955899818098393253303265112886185351333942182261730261723683698344687899614247042986107213492590387268825862086053238873581893884112924508626132754236525639244563279006717706513659181195406136047079221339072632637618015215665737450702137284296682975438962333843116771999595702655147153423290370451412224611292998549932321833623567203201819540906967093608695367293434461827042541534962604491439613977494327534902563234110913167891921965835692765585653682912691536262070811696256963983245054450898470885742761584976424937784887593601312114528792614246232073252925823773766478559496662696782580056178781271991914417625199264520193875754890503691166174135057448352617561883331837767076965001479694954997326596039568066043385944107863557626690008800928197572491322378594575050020039441608593662139844348903163125046800391891647399391495111831906903692823730890846569677915954609123995851548484825723825899527935063512284439383486669241967049655269807369998277525528549932476374387213683176866105670420734148728333301692057101836481869180184553791019077832620164197231334382369939788068871821507983737581171551019938294565651140086752321934750681080831332349305510587209457989149279497396012998359108477624496943961270983252809342309866208355825283476394049992182234795471132797449955150677170688485640041465217962136192494144559924755493829114945910043150928904335582910908534206747621399269630175586588371032012117909273413787671637409952727733771645173819960666048677817260207206510497603875408447741531129998299861464396693851783633129494864819713653860181914788556772111332128979515166855697707579189774801247639180455527470112406088674690865174002301940800036513829700380038612679773170119128649804659829475443843554828731782924886954738008924961662772892272110301196145979319764008533714002667693646921373181830199256362680691132029468877623344145570064124105427816371522089138757806097331956689915420501229957790902183139617362481456751271581855891173348348260397691884641146886536912883817122557496053108757598211116847706097105595669271296363919468205932648962519443071002564517084695607609891381080495802168267700937348997951146911640340774939059470072876938645929377349936394622061728848060570403527495728158543999697931402795060555945653780297848368273559617549069898801495172192059115663527473779405039493361803183910910680242731653731755738573857333764584723499702922749921471231965804810984515404370262062363663174865386704274706463574372819855034486157122730996423055269886666700392294227262258486518793110652688073046697124183108318671631350752198753394318558258344595183442029206505923046082182676195905040070831845579156074199223823748316472555658737332992298176140608397567896088171683156535962130841848428543735688395804966572788619353044520655959484026109308120639650854505691889596681943512016766415073877738692022432699509853242941618924782518306441364205938966399871440897051275231567690480418366626162209371307296777832050067686522439489774097108097242713128670055588750453834474018759765151735792398484337397118386434438767826052661760580203687054456245794496998617937770627999738722543311827667538678180477797812819315001594456420982398713253130292750124382086971130820206031099020570793409983592300547317846521662867369111163908273400976965678289299680708537024772509304736858092149167874031446501867154585611072496424834170319978917186149192911284543466949036391431797103073268022455752690800270642027728503925667165362554031088437713405969612937554935549056787422778346264777168310465043245888700416639409288289992548391250297747780248302776948995849373325774646946660571073501391163982043732851688919475725518062448153508373681551807601794895560810809128381241534139385227463356393294377593244545328040549836962316226077471652246218722352065202781181278686878912512230340576446343187711061970811665795019953219022464690312338819563348326643733123272488397977232437120417891290986879822896952654270404023388477903056268058146323268627721763208202971324190704155043367959665760411584634069036747306463952290041987442245695591326743555048104188183845507378617268634437516902883796730184174892931743187628586359475727474353080513834882471895038477742419137168148854319347212058624843395910960579485127935734708170702260086111206376087543335767115290928685038596054332413541747730093081373423038138838387601280011581925325767655566893290163272615371201195063809529467173421792825396600971956324423746411588799960912493652128436659266544328012700159220938954767570981491318487157259068032126746453889365918701509570036291018271653809682955392973879826714077127148756080845834399341489730048225913413749084077821433695919078271208800798492445664770189197197855748685481269620073500979533382520071745712154867047110544040046121280053267216496966845993537412523804574658249725520011545883407484642747138572139152781201883207284716012279986985576578689803315219846978977564566520060508012130757972792223569633697562870049040549698945749474716157675321061070314256793259970859957868118316403649942644045434147302920274796830230938519521733163765994345997838071058035021628508121464977570465303193919540163821353329428839134713579742828362409156639596377443084732151161297341891918862018707450375081431495912960913760126658363085353062108221925392413509763103497389712976621388778471246904038594931809342176781101763268460448518803535994423164179758843850357683318154829533924573263956011377312786781448911317710278891807379637832516679509092867429099092356679312244620769525670434656822196026589296776942163064885672266098697589778826853089089186498719467208507648981682844668539147174695896974387958495496298084492311631207481594773033117317467956802883352630985621271170180584844339920751621318332176446708680670565667319676288104862210776187576634891261643509748901338696931795817711656914879507922896307631934180086299751367267045756181839912720425698445304270468728704610349886390181805498850827288903551719093347933153895108708461634052396423679180459870083969706953001294464115732911883978121251121175841224654666105406376501271936613139906850231004124017649405733013197484736039656232659509640294097460423725385586795915261074292793857163305001091454649423451737920687715539539224182370052356974751322248947719795264314174128908221249176510492719293410060502822247651629458441001466965837657240833028322595334915327622806768191638169329365442807715906911675007726645180354527309564466100295178719196877567347419908173332290999209851205523962535722746844003377266384795699143063665756704192994272206680375843494867034051081979429004566118881928563607330535036303591581045332860629354700505558386394884100180515597667336998141914705599134334597574083194606405443427912643493054382537877997414396316284140587890346829107958772865394041580060452134971758445459029475223378738008452195188759984522949060344684690090728781333069254267545542116145230064004146585201494066748591035950666184325594731294048292585005692814915095441454261007841597644840963423547415779339401352086975327194509087132282070723156160318367344909721641482322167326884402638074270953961881130945573748298763302288523385775251428932941525692083745257939468883874154718594709236240988466652985011449863910397337494965653876300299542459446914973323763338194187554239048153117696554582801268944782754916729429124789511547183504393308748346393270659570864953632766930016558822468157886606459850171322967611672166346950787507467538742880391297967090456794551433253821996902796214070531704986701321194734545958590006355028652486576897807745706423395568598490602985845006038052950783905580206279308008905363401503376304724803816777280952333955498947880685189645014675224158253159630595035496950785738139576024349859913151503231965090376869322974046903218677923306430152951973310295737737266199500042755809962398335072724522866846661317008378638876266889247186624110861220182043374446286241290225025839163674056460435195163062066133745933405608532080702086383126861114018087559540955130875823018849634900094274890643339612300256721542119714265770045025779281979765411734896022925782422562700534928618007834191865518642861572101255520193569008956805312453804046325654025271317269598483160892241189910130374215018969071661078484527289473130064901310916190496622927722333261334352390509909818225487933723502274167986463873688712081914934087699869154656315861817915318495108773472345505403233595457982029386392888882777854579791930030332221636862225608436696546026823001088107778035746166908906843013229730344839049740894662193500738755624618431361604063078589158922146587614390096839155004413232532189546798391125731137581899578294407010597326798060961772145387334241059196976124332721473797486366809637037936531076074206730695325766170438323863707616051329217671042471525779819165136954109847690403364152769578328056017358782346541299362956614184539378075498788821911587552612694428033167638032811628000828842623402618846473138956832767041802541000071014031154847647662758832482139978396714834883222415982864528767856950679716097028752114734027245030147037569480453669749032106263701959707524956582094723372828716490948871382715482406989051061814120588737074753085433897183373328943068541436796097955921172254654143038335430656578867032181376832545562022968429442279046363823441152686937595457161415512948966362085850685965726970477286511203578033822363424076711545879608466049465634730404124899468551666121259403460527283536395137310280538437930925947170745876463803605384460112413991892383902461935501241832287164911734557180915840397083618256182855150606228495901486419579946787131792550944131727419347749505915462064887773074493805063249424764355279695863528625583228671257498902087591174891877127526187693158370231364779156763241091058537729607694451116799726559162701389182422275506008085758364787624147760967699271613667135105915696553459792815606885773791826565421898255044759000420532716848088265804742860045918414663389605279258809568460989811233553791861794624592016647900504698001848782195002273510310793573889590519760531645883536127588857992331058942752729624973021035018073651561028195005290920806625705567703813740512846631673235151243651570364412908152365257283291125796553518055272472068187430219625717156588173166817212791026588074905561988962504124640554075115612935953305881461226084312918301811067723717497831808217284328142034121760268636874610335092853646300817017638371443922788983933717990609270411940476074625958524548948727170460768051964587380648910218576349511163018610169543061318889845017521962441883932506305729323040142629964196581901377402822165841795155776516249751649990083979658956231046538456184633574877033875199915835277504435866848401077083633617994924502615895958996306029501086537002841034135262309343889776699799755862823722338742735324814351008595222896990392504337265514836220712131737968217246388433407120378531379463282886385455675953148382263503197856491571555417887808754506675946933957259548754732628730007173967563578753460770119210927670807047120887305881805948344317498976348231921468278747572087440512896065146358890663440058745909301129061312418590499502013586026825810024358380046875978848231657229837626000600323189095285252104440800801930053997938059322190191458618155172969370609469331700738447103226586517394696185519009986803048919901291990535050093797530196516422963274246677423240914156292621105866948289270564453677194524894425403922623089746878729470554984088134089518633232294647487724863876135258732978406199826656820879443055386984128256538434189357206625685993666786746418757233432305540017259246760594067633409929783421968145726809366377377135447081610080918596339325247106684197874026334233759235652743040817423876347416120543434714681843091466610001299175075824151605499177921053753554736589540795939047391413300437877842097154887821917022591512639738623410823538528981953742178579558221853093673517940280453104232699537445479088405430823927118096972334431376331157099801686781516186950566481566993757439831747049017149391218842890149371599099680720402576913376883907686572283493970836606563134471612379587204812738760781895009270897898890961347404537733310917920435963129571612389861183347325442093185613836828626815810912179947466132040312704377207012574448836944914265669134160127699264942484910039503179740377588639753065488274736118798134569281300269954719892925055865843344360309353320551990676486168598061864037822628211009089323058584857242200863242613580263413808655871835940906757311201952722493450251956457579338323804365540314435434297743438311753307718437062717789632712997376476526747483105740412241106090967973606898860030413823631752604882877111710544036954295826942289715729106274307879893023933354169951646025802893532638017876413204332605206025730540612782827756586398097934733613216943042400109899498832966695879577361720414930200641126381859553753890145980670640016278019929038324397764790652433385814272702130607260870740775677221329695362016966521661487208405197604829216791926051094422361940374663298090623132224564842882740036418248927762864243599403414401582804841755481308438320464398578528538229641547333161812986035671213530973082645602668531803329384343301799819348471708218683889481179646486413072018182653897014459859827258440367542713162473976029252097383575803304860116668878218028950958564246955620562872937973043201981380426046249789961837698749380840993980724045315630152040657358870894660247360936803470695009757240660947624530180738007582578734178769229621904221341562672032259534912370055567481841557111409615072775424274988834002465924350451315846109423185186880466129986293764469235047862686482281109692885196402020199008583288216943371033655337724782200928786795399751034449685149752345317891554618171633618638966039298317895033241946261420392169405668314273121507123509138678271360409820329635169654119111808301044556695799822853555208123982846388707848576231991491148043975247512906171882839188535719796603283496333134444729119408573244692572430632124079469204796813245747496013939533833349003850435212426251064857244298047796976131377046812558079372984731430307533738699416944512364506126092179787798445478293004263898991290417996125538883557841311467565240544014419902082373233021710520820903998898782139977791491421954081762066552917772044839465116935358339101919361290802514521641902743556215808803170502768611621217986494164728929734745290015089256271322985511548538834774747185305799260098031992007804382589442964387671832155412715601707960780729084503661408592397092756523455336821783397252106666593633296459404349153778167317922267994105359984104649114079790667069075701916633707119785759016863295925850143653922976038396751522195374131200914620982558219511148656902416204415989214558059010614487837394763051437323374789174787980733953354969664052925323472221879725844474987642037172743503737661872251180774412918666359594151393693859198552922944586747980923982851212280405039696339454612226983421405124015641831918790045957147404821768859891078633619550263728329931951950213651396080073697501956651462190331377519880134488090145430144606737066571001607811707028964951115821686804155540585410751527555650530798622161917715593919230759077150887161114718817097228376386784988453912677525416645968840996448977003072810874438394691434764671081906474791079828199410379448042080105874808654905687407618793613401718948706628209007958138531322416376665861123223463841061622563121178900620862920980131441662810117641042514992930685565841006779110261598657302100001074021811433839332213980014722722312467325245029733081463434206895458011619124565294241301176409269987081996404073743647583833132985613336528874402096686741325008961618084480464808683552663178831653799775154764871280752399078543688830729335644401230630306730995989732789049648843424879507396700491064814879074843232221131232783131434003690949912795623096427604463577467741492323832960236113570915006383124625414095665153409290252536478013924829541223209824789462757650965247568573597385335703845490671631820215920743985404497895081327874096456178046011669851027025862255704801667263579023727682636882355454959931965768875359722684316878673135860204579731705646993202027740172846100465235659483521996248946407697887297139436994019313939910877612628245020115737346651796471140314360944247255049734070343626541747001665095171882544692953575589900464952367380461521528377928490699034175852061681674926162997335788582142768874612671294396557351726968289002950049103946970520679693901572037661196929519026938173906050536220501749816103064357594703665095639768600496887883164691347024721945386296784878816584309852488862205788737968734099427008083343591848751820512489412916404569276207684459918109794808262507121829436686190212177590698492737171531187883350253363503779136124198508971757632448768938776953672091216630460326974046079893903155574321895923423788987634810788241082183149733076274386854412254497852179956096405343162328953569035168639225261261257441644542847506928686634267784798441595742069221651393535735328195508955753089372330603250796413671330241379822055258692017702986273668168187997518185104373983577989822946965111700285923059154145765795598531685246872609595941700073183012930416515625573596897478079636702988750675573231388243155146637169467487633996747022165066887045414117325995097060093427014111431112977464921908677364579771566964521230385027148086043114731698071599594124477177512343776774630997940778241809736897696388897623567004333616930697021599055223387962073248062721792130589296645510181791652995517933158234707546669103994509783679202018743017415046581775008677038849245961400819000273416991074121676377962314419679924645513048146046497331090699708308492481613323780876191242804361687194956516724560372193052028294194939771747791930371038219402025519271188392205012274026908222520493896394184864701446986662450233261021774401333430382968961024829709821083887606101102563905300386812811731820915433697016613424061289214435874982221428147474749597539529573132620870296252072605784396680093799462068229017903927640465899436138881333547476374218895348250463528132323971556446445431915277841005879780386982367521403315877991378204456436362037200186852758327119092189155867564980231420688999006701227427571109910637882044686166123841872723524520750642784983028928213391305195639069238347600105541710488146988276805677446838568774278801028175730925031821152204743915258018214242114280065576983686042047819252676632342868975878128097098763069803359207371704589125190138402472437285104947910079435442092289606147219143861030929598697227278922752476482558814078887691252538509260436706191762444978877275027478539374756302782565424470418366807592196176838758617043900754301844108629841896386165540016826872385577955537022673992991485283067680790319608612047489223624622735773572609122182992467896463628916692121653306781676311863673071600625749340879793692376354267516796172120394960697449755706731198246069084403923573493887616522205865749689881761163265795882282926985613591836441134096553240331714475431070231539965235260401740827524767927169800629468788464333421109750223803867534737990215098317359226252791987379267491503065593098313857563917840748356436231842324824290667587743350946884433481781740101167976491707461657912800124942323154925481292565709129394027484225179092482019927438805434307311282516366569425768708437628521452361648309787290003011860028392640761243254948757488001004921421976632358765147263455182168737898420623031040884487441134882764796230695574774881362277246825308071154544702040883317661692688120549559483623889251519689789730067857750867270301363353138232196105716415517617646735017744678827019907959863565834127167307582668360605976229970385458133844704908075401188405298522146272313397065837541609368588587216021539415205676311069702340554622126931461736738541639150469745514961651235284722892633809939008549789590452726487558971545421069159867579090210444274852383492566692531380861062290585752363964160671427612482422150841572119749203709232237866734166631811047237494492961610407335545681449241545789605833179654464867871774194537413335107685493556551736112058483123530143266807742044372464860417690031502320698184971814622476841245585390477409727821751298522803915411371082891697333967027051757259340868469691382240950621155169694144392695204201080664588314889100112931196007797272529233220650541595068891957415279355848666240614962773234785507535885745996309452404992455954346944464827881159277391976068203416883933179980475390171569085057917190341629464946010107247906948205309170863943120324088233391040024220193641706667157668317042639400725949252019787744551498448862860414227816493285248756075557525124225725694248177236849896966138744318186877483975339428548350343652583479331088198980220179782447310601536683696003009635793124282510468520909705798410678656484800660658374421191687560887271968197734407142171858218150397890469134050721537814269121341773471446050972391463855647226174591591165522670893415084599328048772957935405521016463873781932020812309103592085043735014506056394873763816353115639253986227350099635007318162933270255358377880239795199592899039462516403752846826239499582249022695940981092317568747808369032722772502074256867243414588172607018169214840882894538401699433943484771079207790985564356967746519778929721735961128849330768125409107824145194135014232699669043063584308316312174955170661621612758652625897705774637959900646576306259254404593152420180688774620800195007821604101819202110180143738874595129434285352049725772545514567901001284800479657016247447255103491757133058331270446602665551786214592145180174772335483580964317368331692167850281772209590281583034639284915428851708252919371412927641149006693190998390763713196624334568645409959442793631350866686163741316778254693665621703842223716157065382863754575029941738771586078810050291792242929585182913772884330204877611812216393317284132221464867915349032578744162154693938675668001824846324717235689148764259306839327510290278119980272297791083115124172614037594901963485338395101881464214717271560298286713217504129997840389075787425008064638471201452179486303197483590399453013783282383290371452669664624865420495783108236751902774184778604157633360998476177019297602912691152031439827347817827124535747213176470631813797379566227566880237788472158484254831830243970441106367190652281265186004137210517062495862341745503558128800139704766739239882492215390938957198389709564526767112311653578339729939330612970605290473467010668409398344226012744706748135547072604793116145067506249784921688961158872530718631494453445271696403956984555743940371806320321794348218516262082171723414370141926639414498362438645164730426172600743169529415804307497828547855831033351679038878263074942956048977601176711649337373930665580514676331068062940915349936092199765186324406106484570919699353709899698944020099368720051476296041207519034274088782344924231362290693907816903815628167159207190107660365207866361714171811667340740558070620033184411774974181284391514560062156760402454405435298415974958534451784413099743355410757037712245983635282107246192165984197339151679557392292141579474486702735502384672740604302138744283720275916194085934932868762889310630099476144392743619792637244628070127040987653448911452346073780832898467782216163891479187121078107056456175581372611102003578012248228789145547026126320949252511290746129029584398138765271317474469148254788107952193833938939354580848169905459447671074403106385803467946083013157031764492687330032065675888882522457308074425862605649373528071138649192079454837083035652044416918111406184745507219417272374775958623540234768437894970022719429651494503384141125136410051595322895630014781753530462557828778493644984406142565835103190006259342944931193630060744313584740326339919546132286474899791170490720295921042392704445685401446405336211695348043767691875048906470344293970653084592472253704980126319971657093441020591307326971137068702753209736866419481481947118452443561488145644460261799984460841603110109059263380088283816175740733927529663681642915087299935669714419450281261489280631113171138949952665858065199992956353334261126918283693979468676233795959957759797751262601433135550759539922859666554813078004359807739577826129869817328411567681979439468342258309688658292120983142324550441291780108766891218610003667684158055189628053409717707325557123851185695511392777154873638541751490955348943358466960327618168370727742247538660707651934991245402532908043539857197637708883553092901667891517478645816404611664188281299681305738399351207238167612838794270246172619397463896634497823605403004549656528929844132079465330833510113891966035532205308235885036412312532406124341474843377953080207929324258047451818645732234919003005335288920954673155253658652023748915652505165911540113727478599051553042505252941320248326370576396308559291514672402199731082026307553685867238627641060328768999051357736390660843152820555508604853311213153562118651622075174609190483552119200275323804725572672240739773551470166766897327946630595757410078450646289195796177306389762295645793633002860433405031619635963192388233672077099043431647221083904035566952154886206218401719747962710215845507620087060639151504896049236056322373025540927213621194544565327948654013079077102819913992887667087732218232975469912799550479823891577410404648334638165772901639887910726239059152782105038429235922009226023977074439676808908096003396157885921851624039199437365128502030488765279615432044728590471119186304408906560002809837287619135405317637705444118641722681734498288457286483591290927025943866118399426672246629421802569101436436105094539343085031316421051705066713598267996448163408791758866329386402486045692255360518531332183866582955600198542708617092015737940143307091029427056117801882966248162439808739863789999094603191870186467336649745011230091785602451692254927822756040777972128875529826300521572709431441295833755871191468813882618244127223827023331556268532596981336225394467697914815153870104693657234373206555227137885835971462790211923877524813736461175523671289150237658072453968506853310418297077247706579960616555698754889349118827303567210397676554835182241888278875953967384256152543971732937092515226930703700558658345804733487973285880355711463252434736943071746647082079500139386141036841184432948635041730940972182456809425210639684137514006751565886788204261940122890366247574547462509546757981625085533610125200193727637770023051304000369732667383909664254318592261675122327962030414944553143776925542702231184785262231594733576931433512000641807999525394671794770760710431599232216761741610689358970791202497945149700873857661775598129822093292956492131806272287808903096636405590008305373002158605807460412203001980193404718033471858068333983823390831737325486155598521500121281610666909210536193775700424803731052945920912118669338808080479315840741283179267216579768240045613945264695538388562549613643007007672630703102007235098754296346580185954931985453879913295955365684765216382753101378590758108255727577431700664030678588966091661891959037962237817061406412054406980691233743546630709835369604414442582456619273237765350378767368782688373224143729618794655757652734879393048887087460821018132748582046559122065692312785690390204906992056623760988604653092850243823590792177076799749995711163216394665967884415907434901058943161401521770225844337649176753914976116830421135015455437333289446593150940981823520020763844569113086698780244771807025479026770099259076740436759519716785535413401658892121059454033271548813488728485707947214405261131008382910246592806408263903212526701792670085095896451670998519704707411984613448705237239798781429185221729578767489623678555916419432311636354144924366719172065858331076229554918057387906714594189282584799800887238309833096638172331700898729050017550586912916794928436133098781564860378686304359396526192726806906284346711544640262628085058246296107377579838298438678638906236494220576101326908746291623980027564820653992374756528220200497587956124805841082372892168716500412298501701349041491301469187087969314019720547197915220922615697997275144205853972827370454784962624147299907472799186279798494135815420669981114331085760676775402093292081675402143425754919824314493286161022315874692728217776705141097220131345989158668860456505065313588736816036972229195727215956181790726585293557104932238732461742769303673342307735479526760544769175986149251761445289944023654231597733637106891314493099651630454378557443857837790568130774702328947981462502196316945795026999061767510261903240069420572264246348245846559631537265439247854300284347675125165702592287062208244645873772947405865987837247222510581140567208221007513477643950236096412290872467997287253211957557148303634309914392548260085343544982524173566765264089584294308524803352862007868138403818541146084364956855125635512555834841156166014557800963225901353657183768526148376373519733593908292442057286317087268311758663885585831834931733579200495619428122120300322944837113836279696922008667059624691934585264165780345473243049624177489518881273461708239877690218161849522263652407455078666676319755480631115503543806856329329549248874855624816348274350188178834980983490289716433504463415193496035760394578785274179914273681962287944775583913334430974917741002884595237663813603475075490350544714530069832082575734210988600283481658781964259728212099372151437491364100324625028332297199283469130534137708639321217219968129918020283002878539708842888040792984685826680251145443679618599587818975683292082979834206986276884013044207285221833584038790109155424048666708133285859637292436213174619534712765885991156458867953964352758360261684673851686346351481444444656775716715238614685770635393976157434576423965282022585368974166615711370923717869627546929771692840379854818322072267753156279320557678442435571994405915362807497822477866004433735238951322336435286303089130357671829397179192366861672472814687589646558864050447115693119167623788456263102517321602246679783337446460162496593274915588682543636212308209008372539098036421433787997083522315198229755577180413127783123715333689229812619647406141960781720191624272905680515775196742543811120388117368736660127561739802906449195655288767356360746461262322670157780651379690105614566750365138721590294233146577464850953029104216872184392247626177130931117455187900305363146830659942714242702296404281036470243403532169099342451535700637161633019830171549815347675414336521279353785288300188303998759126417003001636015711705353216006374025834158201065704861091998173361312881854138557118842073325583579372219855281203118339209024312451164395090467986798453871300086673577025874148037746743850035655199035200423791408864022006768723032706221153402757858778208233019639378405592977908326769270053867639024217169095532753647205495781336790990655850426959203267366086974689256115822937524229079522903589680977813160388453256539316527914912840579160588973379152304125904875855283397490712410797164477666765256930854514409667792737009001269708612504935105665872914742048594350051629784463952485718766912046944232990595333953325945330763311312976648896339790053649122990088870556315259623070609930762121063072484723650637706346142477655261850902397352375452812024751978158644573217564143340231836470830678037641919696546269788259626390336214047969524822720341935742615154521018739313855521372740206317438584034297031284807547538588580375639402835512746258818581223952821749991227129746757549632225527473311347339616982802026296172358411001895396747054294029491069368264155562302970372580700848778337284640024833365010740582943442544718363692429699383440069922729386729992880573601382564669091209145187541978802491245664060183265604006760462767967529455955072532070697446329735138481288560119879048381275304153737261885358470307436290779286241959524949096459309683672938137833843697746393892583338003398477867502369377863418246016244350897047304139392142092303334833927699031558272773554458175819302602809843405948490176598737337562038299699783002967316650240461039626404190363739114446890653964634290692521987573944208481217711033651103366685706831399807969700267858498599878227770215717368950502745085317922016532524713962421313147795651630725410161755285087102257796420947425646004436719801124709580159949659109547102258832059400408730831692821211807333787162676765260209793954928829837863178194526978627543140065772851539833494641156677335241029002882459951188989767968684005870188380748189654478769162670725230783701307611367731285966943088591977594466250074931893729897409968917588260420712256931946351611032286236562676144960440830248009507404025181536042150699506585788503415330463143664591353103121221403728989076453870397782896110541179350553066713420394792315111912049627493806968453511688284321098998242419522035938188557141411369735467007410703669907421158578088394747220747109420549046672232030640259953502551490714952854600811193875316620825965758889533495122258162693643029985287739678866867453657889613667975692366414813212317589837093924985727459911345703328722863148268809187562329959986060346509607722792327859051625087711716184164163256902774276959286247065728060594109727209603441620698339046908015823549414629665585503526893181180834852955110384312484153296376551905899772357454487921655902954411779909105429271789022580828952429306462748309091943408392133904091427019106203416176276203773545556782996426374084643903998131898424008895817954805820847210811169887260047876827776005150524864207967819228551160642908067468205765726928047004264315362573948011967953988744084461651445526225499311267223375347115746797437795966055798287711008599322006367840217079529549545572519256638531958449566412484255259909773091432999593840306726054973381435982863552215851727912598696761029252964924853722665010926653949516958819452011263666262923137885179838950244820291841530281191140939572656985902120299398828211295130309269514578024306494397490022013080808650635610558955265966704388538618488716347240045919338568974252317898063311367748929750304715422073246599574812445570908923806440206059100472703340072997769607796241382111413960269025978333025425497889780591099212892511328460746996564245008162512071817491812808524033065976860238734658078281745822779063023937109798186338159202009434519462764330536725148298705141978560974671642205415860629843402732133332557867303779979108240483179859104649546434875628173781255980737836575665779736202300678275807838546973812545988881394282536282497590574622349739468557761791222636510577831318250306821536653954220747348690402338956670971849917514414290810455885233285730927502191984777707613086899450971153693686786575113711745027744169590040676800581396682579962413875497093041946892362219917093589474019528079359593688443643797672140921796834393478842661127011432784100486084200045466430688261580430964756033455851746808112970562279534381364949845642858134579366414053325550860906486279234759299468820774919934496233795688476312237434612429600082271461202399941085883536049523309444091710015113869001666480947804692453976351609439665116875651999387957745343794040003295574466183270010635296686639699240055903211978719190674946723697819965835522697412715451145208453653254073972807829029489381021461866023228963719058567013809714328071486896724453438191376244669788484924936451826140832220648853519494077264389841588164823077906808132441464472051637433890286625299415370888322747306020945893145582267847735907207265038835665729713804928391561932555421272576676135168999366857310899831757886124635505545405606594539778403071479840855058358555228524637572367257905964995896210418178020084769091669015377431458965492244507940662228213307171617732518051978298353751684756428967578986366393909483048971835846715038196174286293391301456954518223586684470260722280736177272867391535959468471359418119260549449629249150557657840962930021710827584765856997648320854010739898079721874334639071116382180493806189766303886278910955763982087753589097547176570859696978799297794201353602475303941243684764378506352137011272454239923377296884413435631563060583844773486735444267392361513722503200037963325473887441691681952065789489527708591116895851098572208953006478545792728716014313834839849551915297411889818877720184627296880738960322901678099718713680396962376645131442466704644501030854331303505314752462072588454820355448060883419205059015925344527535247747322639834290918489463768404126814162715407846584468175082476694658406998376210988598583410617318315563595745992911986387100585836209114113051726207186171405401537473387425216528885664620048079196608862158319642683358926503288753250360801127543122836381744962265005449958456164703995748359843681709099884984531367820046640849576341221403760264003999204499931054079101490983918739010263902622572221776850922978634059994523114097202563065932243645134427027387806021967417748920999342572000774983262942064513713618667657762561314990684640438654655527778292309758476140309127758908103959554095645061487218072238179854614750669505829467568888250036232437389208102050832071208447188505459185288270398669123253416947348696194825052114021826669123421977454691420412814893367384821866451622676301512463604580168784968450380331504480228581021681601645594970899352739223385409256855001548176930092770685816505933434995628784494943468097407444865917084835480021839689875974572473816605973697408209392967570899994357111759826091471225213531333563926707010100941226685181323347752747813201198650382790297471836659003070767778650528855793134167665742993802731617640920382624786109096953117726034249449660437963386300117103760813934178454525931984724989262248445066395734143461203663309713806364229217279567446942088365409538508917049674631291059625221430390486994878710729774144209562700518068946745890427245082514052476143699401822696841222898242088954436470684863523280994158720512550188792626236634945627713789859545389937681705061509731896439480000786747921298469975463826402727793225035932036631782743882233443270432531215665843796330647226018603507593161352084912537095694167704574753255169152342560432194215302897187507362540343022720113530655114015837937986496924854403871462549885274623661191100211630939987089397033647807605648357075524199900585531133849381511315709462789258088233894714353217477355983752726972951778891486266950611188603639523877447190381398465409687064485966429856590616882923620983364876638139098887922371816623413387487221161357573575414581590409533586262604041660935420198541732930096228445318335648445114897825331412493301379572472716586938876531769984491514395791557491415088859780480094182764407526451962862862309422017823434951121618045099601599958016059874940751365067409917278572648255754938755023215538762713596309435218063624821114474599620931496397893958292453686254377864151434829807429673454166576871346288726713970062182533474363283007075101611137755907489827407114604605233333518593942361927132841757049039363095305329174220828669824758547069511070193528838416548326970265765762645868634486197748482516484712927699639377854505734230926967272175208055606087683577243822315148057561434706775669524143548708189710506787363907224039601550252010344834310936041191789177438470101861993745655733831203088169937070235636374841324197885782933872490930226202309318466706221933712103355625724355855637591183133315741142338126290647664542276762002724589166630107772210549754914920555043708889271220553987406205560080707563036594498190437277748567743431034601526697210836860332097227306175416374666606985785570174029116635095890051023327787684011152717270960182713197650495905828831564931400049782540620601781999274115917839222230465225283860651334613576790672683237012983182859200829242958625318703756299673707974021155235566131669199306946799104279256097868285006615456002107863841468183173748873352864675820031193930859293478570827427388786529440165090570770441235681481468459070865946737172193833412809694406628588856221331717252926749687396195817358337723247567462408306682138484231363767129475197665009385404839461028724463423773395209526129868148291999466098380610770826902824335755598527469968868307584508159180987605499370212319953428101948293670790907603541076565760317366028547804964472192783030662761027687369302450583523878512675072403151415165334588344391376782355534562054579177933735006833051981544806546532422905214509541219123629393784469880326464085169798111314494910269981903992655835628257569689259381584371451486662977651888831561148108717142634329099224737188970717640890017185916390633630459995262700640230378303041641055262621773045526290690959400633296074821914852202513774873780075229431647224674691058443773655391542518421989540219415542550961286861178131909199332440363139384536979606257945740395981867602365019804361469932735770279412414008562222066638113224085344268380969216284165651447234956718015544484886224317958318633478915391057226403486789182963551159625552225897804094389901348833258838802618954670002824428998972331983687866311948670762458787375595421587543393262823792474883466954751993367964638132885303439225175705370943556379347916821849651461804883584340190055827593787575869139841267366402032191266985587442587747198541605628160046215820984018329337641686434236107063538718284217007061021613129225569997441654796960327916700783035776584456654424088561720880349760322390582597363548716429674115903038446957828649405677906256575002383227105328672816513944203845876704545384795683171352850890268164964263160069271036839331940856004428910301581225841997770113554919545492867140280747686901357220525986761922132957653763351344401611774603881949828532771841869842077587366361811947093883926527374591099396902077136093306297090515037232018677681740228897239205235620536637338726616231008546469061254534213633204067069944164644599186221171651144133247177510348004123087427725523487218854177454239254882233710169014142771810809982705346124756685152105772919138088794119702297713224536639429492650631487171980927379941785771781680710328063419143639047833941136607914578245008939065190509440699237637310950744819394543648181212901208955132843830825547190109818872373302368877373909780956374834066803759648839832701112247711906100826342657523618671209836325147139466015916476281041814403508741420377929487762257409637327003560145253347490692697494805961262259716820573284464755247980556091974826216085595127958796903783619349594819048826825459691776543911423724276656005796024895473042125968759905326698780866056589925614228132890237434538753327359872936735524861289429983822071509213756078310351676604212105065147671958298486335814293808411278532696783038667359870013778448374816848468630360335560760931447989185551008525849532345886290534272466588026792834768329645658791871310591103313479447461930173595650654477597904872078627998926456657667282904110220375746703813927142966889912505619154625373606690076876828712071054994181744622032011408577937698501607213254597053228640034765658362951705697399851337273776893047661761755353749258254726842874739538014250195063210607894917047331007725886896126859578533643844445211521241790831388833531908323152780755959108217353800819825447923276905756444576823069076810103073161745105758554210759311804416354041277578009456611977548659841391647629642995835173523055753685847573463019261054367228543563008424913150588860366778490652332109390457872221924298001932704264174216554771561107444615025921995063955887574249786200374994159351665135502439192371361019878739287633731945633946469894196847124410713277454098158306048649546515105016523035892475337686504777549631681517832983244247163453502596991260949001987896748348660389655932396368435125062501792819671250591629907924468389195200321453492160313875041934445099905524577121771556845151083785179292658272858309900343308072447974509029444149036523791554402045697541917483880610332012696054151939664421626018036367541998064388374077628956139925191339566005030610052401275025201459906139031298875490421748956103268480978867472896233656806292391714600326933631967295890985023166593890248001046481538479545657035003690084946011920355808170422092198307015557232090775445839553787827676007493696446730890019547098176719298148443730813883548019752653921099220045156885064233087264372388611199464384809056674830833969467131063583389783761717023690866907542776086489794677196673052400110985895649685163476453056948057111034885432197999783506982568673998973638708381148374590940207380688458944404865019490273883183837096618242950318169239734302652138431337432679334053413877579638150002951373192640259496518607775567720866280606584143264318784986002393077868163186263754883027782813632225191891115126479050409027935402363894369237558972655482455783150861671770111057215358068787886343332736805880570528926106507254739761292381074406827136428743039793457046106859278966439369196578104981824494026034711859633086106808009231517981770564843830929814452207787457034146076930118080791840337064860041179916799742652421839363339275735458296977535323040673431995330554939801051937754621346060722603173314009656722973988428142422694750836540098470462119374542385872383426691817812502627547526657651595804910531726511087565796759733880032397571189119092960789760220831970159031048601583175997660899514572873615532160409316285363328354839786534656155668349731156406026416586825149085931480239068710007924594280732805824929239470088468982011376440094110354666934696446176630815501662853805523922535009175212809867403913624180987107967467582740163740000877553893785851283606819787116778992090900963647135423141528574172377067557522600843840243496042061960215887349205970932736645971410220145023572961700032713909210812592691377512403319213968629919281372808726139136955195353287066765790735014179318289068882942561062212102927935646091464552937570324780223944607728717481920185318951490061928393782158757294521147171281645298810098787001814342252312350841233983460591464784619316555322915029205456138406875324183632979474092932197729219696538214450074108147370106324799715391378008892667843059970425842579518686057946916493414914019491008690892595823874339393479008546149856012617678406794511816862931721096510888906209573633177945492927046689515465101961471194478686861600650228414787364560614339475245529632193706673343245167576222380738023333462034039911492357442176508786040903884488520827485334912943680130650644025605457263953150536324270536241554720740898239488253669421952196587705343962073708099743510471574596750288559609312067016834656030301492090161895202694862756737936772806744837165112467185265979618347689932181461964550203761617608388857197823910560462038119225383971830528306307446690478941592870064460613839730676192758053000307929537033846910110943779649339778015308820680694865073539454834321699891463924286613827819437805244994423868609316508676423553654458967792859753163581815764865687181445741621522957878795765258159666977723504277173633529798153298023320250675581042699161342496923897685717141974225876643973875753689701829772171943878816353091493969134720150404180335347408827921129691025803362319424427261540546969451463766451819108698811343639130860287077083475487436542977741494055778897410762431608773682143839878700942614360586934282994876982649740367086127016791689483438759736129723793547573184442026772599847012326904965656481340703620448777909285536437650078210539999485712665988230184325446078920909991778403796881053428281627696643641083218549851285657850292652164543500463712393912561075124156580763991534656432693575753278081891723663676754679580593254285261547912748954959582078195179982169733483793322342834259973423161001952051913262287848093668335007503725540927399617031778634643762168330622115191941294138426492711908794245888749969456749280600756369639585865097425386259872480822689466764573633172273330640275788040505782770614847742854548931678238763285693869670426831606531016643060822733762733689195245704403593079930041858548040699377307165186178568457251269650557859503443429360360770304404057066149852863806199380358083007711236716308737498074955723539911437138290746562695212311703129344382307415167791508018388173211150002005563451012267172251512890155226290220132850299414607862289169732034131268549713126950070210513097533284579817508101608371720545576035135049345187494051052002538352693970154547666357285071270829026292937503950802942473589157255297534801937523562718044289088175741635786459144778382438419758293314490059233141868502945477118788000568435672367395143910446477005966488259444442972287480982935976696636994211662711049068589071760204715850434916556113047296769383537816319795621151373750943051035491795706005750563600543835696036257432022948797289193004706865862229148635449258466144220114836329243840773858363737475343542824582385546247532855001424842246224815298787283148002953404451455551110566053071101384241426642405552209920105476481633009864466460265014842948427992565955569007867257332786156443295350729259365256667779765146065717181227046568066224504782204043915493339269152083971293465031613881881148248996984766564107415142736859868226945024276779555480814274758058496360695598247120652033413612093862922762564954074788887104651172115696221489389536613944913307640457908596821188167448714180698192535591668264044716303437813278608335228541920145933733974347196569649075170247280847161131261752378111452875504446286154426718070293023910359394271052036857742271563370872090207037342172073257774371406104333033851112025666413145470172041609512824693818618192351952031868127579586127181500606034487455771944602659596033032346641428552530605498259051044172334378996194188818469944326694301175303301328460039669482999570775956504976577590750391671293138189973796456624173137011347044255607630126220267506295451496748482951539583502066195745213411504311387357836906800085047614106327528258283682429076623847848211984171460251793235583706950651741242832302976875986396702436102491011554359030967470694710594538565195666954591125202177176310664529776208230267222713906967062541343745160444537692772052381059829941173807568999432436307854602151563203119105733010729696765976703998442521757509825314478976029684259271018429654253735912479599276504161880481950478077864855383046315426398587859119411030306638276261509715114235092993529494201123006711557585932174122004620568412992355142660156517947969112391162495748563969148100888486474355494691731561313644395656378523782338926315481225989822097521972660693835235596069123558824081856724694461521573311687729636151412641867914271776364578275130091980589170761677167290617531857046784837840369031774508323567143333984193187088015192285046697099127300967155939677737316406570043307130215934592078614993026135174456658540972618687347795480423390000316889240231790227160504656373843567902973786559579785922487820147057873230548663572326054733747821188698587958602990940769385664623613634198380043619742335670490767554784606042850535937123143283965736586015160743490467577549293021825715051564048272691028601212738035767563198168157654407670460860797776187716376901996544657000240434344778892898554747952682447261649162284819269005287811722669509910999009700179051649865600429940223444596242186025135587944496728116822387986257130844783447202268383024425328181695172179612119144576045393320218381725113468702835425908165135597762510197292550973062501948727409570710051635565083343628605008788573239643311849227613328131826291220040219677895264640866627639282197728923967810440702369766262777931081580631011479653727484835125049194939637021273495611006487726992185263341676226463897076226318318484744266894107857936861238819005610037450468708551332504946484547386200714936091491245168131205688233658671083762688486696130664026433109548863508919250921670266119454411441694569919277994911350548914755102712747099539550882322244872776338610837535665088895860323206528233517297260855272687938027233467441509354422452075858591227683086784936100295005937100635329797345931993500800604418826010647411156016630519893709907898251007900034915516751407850578870157201669098802590232937662995020740092298181780036156171395607809401184660106230665728037232464530719929979982121482179845138538461853362818355504976370918789513514726229823982717782723348438235524902358622285279715302096050842961956337568223819009823433216839226407661587311336803141725870174819415081763884733409976741042013209470440181352330555343840017296491909010381227534585391611074034292692993115899763835120187979273177199834249841035289663153667037531094717122217955150294239651765232575090880916054721608207038819167662759961124175927088702837227223462844074204716850379611718627623545008705728100702789479770834706577668799702895240869984313458589016842917754104669746864395929084460795979829045105972974780969217578321813082305544840032530899632591714573067072302599211854397939054915341433272223157612588497344052117043025136167468613339124091446541288453902936664128025919468770879466392328393324283864590267645283590202573801081360031633951478737468988016200420946949908342405650159228101556002001729259703759518234151845994724486734152516763144743318087195372339309020736669033754522003340807919429712254248215969939623064105721694275650780711870962559558097930078845922892517305149487533842655106106589397627169340311609238307211686000563530977843021720001432758999374011511906609353383294076136483619521146759597829038846106545610738077541915866778059500010571208508938173527986601301999034444946441807887337884009450030914927179965750108083088901120152404473049788797275992403350103571618623283806751011526257326626314159797653380311997725809707488625022398205744381160290672498323745787578340182476509366753434402593798688587858490200999338871250150795237871236208996866982442192074249804726916743604712428224879791842530758703717380822138376735584103713077264806346582989532561799227994578431654611015689925340103712035902728489322627356350240521981587417309915549902237393297137892350214000326743294221170597774203973418931780084642615889226940263989629087505782920796122569262298720486304375004571955540251803993500207090452921734270327499111903736618786640914280477964992906868969697043023180295518498908468904051325004226559165887880891840681874596723164318879733886492069367765318258120458469888458454224896706405065576792142969728133380502260847553390476000779073991033399944593075999032323987742872713438215605751093379512073574399986636624077865485671130676007368165519403184538941991244977340860748944143128314091803653273375450084263932921495711720305402775646939287023886194620869957254588638858407125400122513108103576018325631878148735424869860866844315893023454449642982038770445321239028569852372281251176198842005023107020071358153048270762467452310432510465926522844720013969489499287951013466915365581183951590071356852682482281871699230634202494874461245531997594299121771720653306692945411107743007020559552025980377176562557824790082285670714174507635571098393315612516266529091664745312677188020296097970840687602930913330624633955142888928392233129719362934826406061428175275538970475225534312624428104062429575257143923331918203809159744204376150578997509068421968370130195149925417150052819604028089071741727889403943988749174250674609925225564439309851969145409531968118651125267560134481340773873733453471479828752828836876873873911296786913837669962541633266994650311952349097251622622313505359851996543408178252955601979958117431584811670014808750653500756732090570016990311085025253960330220439771280457274013965315185800619723841333655351411277568883622717405837015919604725759059279692975228057799664735615170245193058918152324160208360337662148156661506651097923957308339159036511721927444271832249755048014287689991482530514332143456303470861968207161953594532847361696895124275881377116775493958936163108337200446654401895089527569324265562243441245374522454442666774995291198778192837693945486384651489804788290787513846783619609784038066843700915357051857795100562605886382453001372271515558710397850576642531754504292257473521400149817534353148818282753190972007966844205818704466024652332668466739097580308380834231040086312501897143899951354095661971960860925851828626928429895895961230811329220587036417058295793868546432289329986100798406846450429085607032064259229268035178846386524931430738735781099440806633495886258707282209712802270740807584886731698033168778545372536898864124697393725945544492578623870938960593989678807902962894656956397007231205800520961373026547244975045657125017017817761964782398377595002625719182796058699378123274596069845845620524597046442184420315181175328761758559736266759187068452439694189214110682737949999923191343153559908654598666419852259425116514606927272489592255212070784809503383015657225372078498739127133830757378345998591113962051046130186988433474544725001631080689624282266160930181064989409330744582716131561034797129746364724743326858706569488012892292927255072826439316950853746758480218655573908677709060355147010649026445180728125220059695418318907564088374035186587985456782703784328513651496303331916812175359097083672219148414547715211484824940798795718769904842774184481604958620655263795271153368974694601927376648077171348531128877272942903829419638698435433074868404970617277805366251700692938376060934039823952704775709900731045190684356647056248934977665346436882843534202089755459844906261114498878230503961942195784389499218106617213324365142164710512719652222799131488681145984655288225312864038991220849933882691227537433069968987530686898853943688113863555732756531971362055960131253716971743017618928253638360482199088751660144073571714097074079723434553081873691086695885417471860098644524654843562125716872297111122711174940707497791604424866880390762488176639334290450370904068524214573670029348179121916623028527542876427868362536841031129531406425553213435456526972439370449379675368037651764333485461937619323932141170312710692060168372069253937167740800205459958107057379033419561898390213938211608283206255400993232265405693003632590787516114011936657467747592772590314884898517921117347716813940110905945788702074378080529123183320974065578190292553230212267206255979347640629503311036112011657443106606026984117121927430584912453814700755309058330696429004963541122547438524877895642323945311751904480260687750828281015565571177684465878307635642596017177224250362264597058604100895423077296191176687487711875202207326051933739166333132639019733440745029284086092379009924721327954216560560668136156296988556273239748628101730052035790513066940766191673701329641858741399255248055741336405395064731209480158943088153037538413613279310634075308763309458257483998460487609277581419836153567192568575636899455121491636161687541399531634373421543033305777259925336895364691760899771512087532353506915099537461836885145343551020797576458849455970938051111009183924717954250545637886890296736952759758096531093839097610091492669679780238305317870823875238382725133372041646818469131567062018957552668446807870209288828867535355023023396575191053075284218481804585287931560295451350921491243316906176194324924417898315893702918410103378834548968943181507450295678397661358010803104668622234204766876076200611607880316925603369211853624667061217048854681259776093783077715477486871283380606682381218447842603871148611776936866602901580468568625997405106902164722067483233889301271410527948675274222653744310774604982019699789199268637052951425829594947468234417867447928259124522050284553268330782552219601836674426940919355856770778609336827984726324306209557966345561532335631631909740114987226671209020570381501008360612266854076290138532791477495289880771146637400468324553628228567252985326416254506587204282266947542652692814096541533762767399722112723256268664831243455901861465545484949783636927579687293132273727971155363193203991626758649059666130023044417011276775807219335493182806931032732348785554289138950289446967774195046622644546314695508447519333840303360363355534743453154891099803399253392847430565688742393472954737034807862050566746725292378502036047888264637435458952950650525290592842331976458627392105646194317314248445026103827184589972979852884634461393706548488887675753550374449813886275256709663299966589562688507659412746944062921929776688621042524411554488757784738452484967267671053507993269881084377989788882638320987889669292965100534999523436642224195980718113082540992974971603973812008516609492912935745067236828861889721317404206624447768447927294904673921866157364454525401945469156296648064890188369171815349538253341147623881484024736698639427226636911999752919969848948094475786235928642644518965530326777326259272681848616501379253284939148261046218564710734450890422175201024853302604316409510274179388048324811411577493032428163516831975316725047170198639514825788762576317932568443537392338888944091978949772094735942117621740469423469031318250274888350259350834584899626425876217178822506590150565633541018809618952334539269591555832465440118546330020622092348076747501076811729468029136405373098257503802527142829345048261111703243535338262194464290106984301823055531379567079155635882812483508806013829368890006176751179741527942760887028757085428108087249940041165377002603558470674483773941030104405478973966682948485272921595277050524138584929805985472340693034680916065535124878308446182632552001467922041821258236481078028408591184686699204951574395880557535688162952912431982515069381491047985060710729581738196198622313164985596182696294748227661857885767363809651744259444457046981957537662108219460922541953389388245256588135868378561105294362549150820912110763771354624230418197324816889790075606935760406122717282085036174036005789598347149068709752986813422055376375385625332656028411475788272183601942400125178978269118130950824788695529858530098843152734164957917057470370142511166780823198147879995968491454964458889110948933468937753781395777661378341265545409201325679676828203266542472032249774042876796959656509868431441171235674149754522013553265872920851323772314055851551990535354248872026973588948132998895535843538892113795731256400552434606684373700743749851260347917921006100914341795135450520190891552320057360472640297166335425225891034811011287815246492870290938768894043535481629342805531709192266594120272959028153674850435772842727015850626917138311841482117573430332448752869214705087466693748201036735532847879469361310973054599934943085206217693646473244297241365453652210381242442777107162619616417991185037623952707998601383739641067717018813864113083623563451732744272744493988815216081103579087401270362169039700813078754129404016360392411320258804955222282021813324405652075229161611291175480617914816803073480225946734348298173817976583449025216220250051836922330255227445778058872439823461615437148349571401421562025199808980657608465652305883977541553669102506101097016107231363080545102381898679645830426244869414024817794269112901779187950568561864936384931471433232049479280331301778197529337769365950086201320812313983100598478052223745715419535399167264473774131389089965724097341938045173926233671710433710807284070256851436755620483252522757498141552731686948714746923825216020592439722534163912246991562982550506373431720373097885702503444797663367516751655236004325019825862332849260664547613511135825233772912253176941240620164202670400655728610563837654458122046554030894620266638712044533811445226307626121090112308300657253632249674211234131820501599505530781933552312402237809031251111630642806514982818773460389744443907946710329930294482989468005387500366344468707260711486982188789917778253483816671781346472267341220249889046281736407533928596899176901325430343294252151149967158735259976934705040068580843303705023060523459959678946752799899849240050007464537706575586590586536266505104555754062185418241168603034218538330395988200648373513856423398507652996540795954109732028552237640790374188461598023972283788484057070829337558782759557457640816340220911021056645677939728676375618063138976356895223436807685169005677804126384886971781719244988387176760300228146058164004994402976175745022395739081298141441267869120203965839925855729753672884378012808726231714167367001357538843534454938518822199064274009567958813932150213377244209588241234361982122807549512474537847008409229359764198846748340568607362494545053303641475994989946558175089268881085559638666318526343576881993503294560230422973858909735731883472239831019541472252573585489685170667499973689897364989947719794507117224987920485826398494973874502238348759124070109510758589064546034420764461770971142640624861888534789043627059279417535817574300560454413591559528875964870296161425507103138867365988491445915539423152863429117133526267476429371411461451366709960348249543081822595229538574774834507229343864880434120477160972756428360437744281275778966945178544303001351599897076891666871852154130207337682113688469541168022962897962493754110979749759686364875411593962702505483688673766440830672008233907263724301416234205573397327456076495139978743492433160420836422129455998689948225126435993169169386489963248015215155493049085937242237343879449300695769664436551137402928939516478127316119445689998783152987191482919506092018304329086034680826558975800307302989149597278577873005845918556920065938946573825885674259877628598228024366097946691577041027670304319797191941762045335581676831117670448314106663416566284489355001426955165674439815810761604438926645084415004679135813418969478666531273639433409597373942904129889511729445865810608505879278928486282807771185771024820429828601052526963425759621681113369454742810611012007848443432956173498618119209686489700412976993782075547651583687577153390628074724769274327049471113636326509612104883421203682751725068926846475996872697482729546914572375460022883389478322962437403927124461653093216434170862113634506238025267537683900960048016583573066200680001334552835197338408114242998280860989131145444835138535695498053985350912388285944464215433867638365208340853550855894275558374655456023912218021429855877242911932359983016243224148924928221982104160992046561146560296874993253432494495052326928278099877689362413972540039360291822016816332493174852537231933932306242619677951351599935294571415476038169656290004918960232494008853467502884960876807467653036561433969740569359301362005178247509763379186829439618608219074417073216673407877445982306108774736451470713672795401965555404070334989312183076075027355650858071987392086780216506984213432287826232676606830441121372769007881606510843113205719846853673633711395859403296030698667846707668601970565986564469542822286560789252516467033735126044425421538159953642785310023868686554890024831402427234915763414850509366442085103387308606682079004986204408657459677451516232732711398906158413475272375936828114902607645286483027750566010275384706031351319790207055565615174275737547326567687321413248430535301793215618259813523594785684505268327354256114029616076068587193395751462125500955448733624460245588951298975427582935499624899144376880028230513941108279260345972710183406298175495499886590467786154177033314416813509326387555723109742628344716467049852881313616287728458935297797356266732857722600086993608495144537085995560889552861797108465567243706198486418302377219989019140682050117600654804070430832390675172686611944285498511605188257189836239939378296933163958550525509696604802110440903792567340124322935156977167011365049552164223671422736103317523838310153975409662526032629798532684934749617090354487678983001299341493329278996320354493520636641386538394891746764474227078031247207237893323078642972509750140180756541187305293751135127926280914216941742967176062343116613977690332332868098032575636927090023520045614882471184324895489656895397483637799153622216942767815769327400808339725222184123229166955531456824978647243954313875266639992503239260662159923772563207687664315259810586621835710316338941820940904209587566050272141923898951402017566552079260154556051288231554190100792396112305336747862835535429968907184113312459973053488430708718570235924122540334060064292952249115051397942956362030933601824437174434887610306669579087667391186764875203725647174711541088741213885653465215046208605436147185650316383777234115315128147735553671576013206030212845187021873982997246488678643598127300284689168641986048629931823656658825489038588433411111859528053579255889048745787042103906789683076900819785083971678455444587747395071358658347348627777562387154266216046116805772749985512995081505895215093244876576099866692645920884019849852457335975361435048540718252702683975475194650392354682480619102389280695475552478097467531343528517913301492458875216163589513034837823834407302368194068669875239070844087777248607621487597843797197052655681404905730097787032361711970193173888103531863879461343386888374837759279049353707041330903087117731555056281142331220611589052125081270397587243317181235207942164088771501896977705359895158042329544617973307118965902851012005492286425682127811135982195204325890391980348123355382636809928099601891516959143078104044053221737860964500519693414410748503102758753362367777828229950279798260594453635615421621381262725030852170271224634223600541106930257355202506053932807120577265315253270010138424455563941657598689284103630561483683308483898296080146452377016794016126392466041018725615642597154955997038209347050756280477950863653093117039429399832259329537797535277168304901168476454461407877667952877271436693562494554785392822784562981842136109236722620594507591339109439351580698478060931802303390809947542738031609132511070714758769444902872925160101588828498306287856666706445305472217793497325749730069798604811151573130645654000102506006903271010869047938350771752209529952757709222736899965327103578437138535732870104178387378275156990775682457359739721242102398192111897592705295837685650313243258851657214183606542520241187927925635701782345459668954280080660625521649254828643757257164998888683287741537841053288552294298117958839742942955350406114160180380820133087874183182534251085080101126016308355774303253594696031809571363928128244149617823417628335975417933231502881007783768098120722257496305493938554442930997853095337242290010662985743619507033404817110301134696701808917043873845964273581970520325637259843687236459436554973663529224557137259054536754986521600388363639299673349352889562608619873547412020946193538780108214243436131455538920430491147510598825811234972601113512211435225951708994043489035144990964894893243804562688177556994511587330232401394299479863698881923967437252495709923833835376911014066073710392880744401951068399768174802436566400587760168894854145521879535146454119748646081122242941569000497875416211640086978473253237541894859073680822238169938015223555812256102254335818149213400722930674754350606656349111062882357797507301848415425945076387488443508610867322378149654920017976172632925761293069236585871400987457334785244294135156646248466912694121912331842001797141139185835809846636582442543890149117740740266634911966436474671022499103933427224249137433974567931506280587923469464765679122330970266508791228677376865502865881176749081825628036538219822225685370570637279066079815304067794347320741320872307865062938012698174412922757826586035163771990937069810356354711420458520800660946456460359402448414009616248795074819746437784811794376089169251345374022677723628083709764247166958072523948598350513838699047945622037529307546368333799111853449836927996758529815030220092092274822471994548746936970206285348782525520857071311369333616200626851683292780286370978342802141716840209302959411733788375982205361892188787075828769661610082694121508131076925322281128876436688783681499553239898276986390965521891290123816691111473582509629799077793288898172172790044837896432727967809298262619316139423141085299911588947489843239019874869550783600572721312791403034682803456687545096791155680120645252120049793975684704910505273255999101030509270323985241501445641148048433663572183978892273031858394483254332192913096192130724813476424583414802966214979276770409579893019644122980056038006765608278450956817391216400833459149232527373195360516348464704364021141549895059436323108665979680705438773249352427541629595901801388622442994207071277414664546200729435003335632521362391996114950880643017870852011406887632461781584324218748145268689925610499808716456486822425710125865370858218053942859140857373998295219938314820031201732889170085767723921016506858188914888044358358567224536153477752772580765162674347664424690904637978343390493361498997656882815947728143414325169219751700860621763068657345570028152041102281005653832048712720108924862418707180887501911739138396646128556663665620332447154130750087275493240809245464640112339829713143184249964539200082915193922781855813940348664166817212816125073655225389547923110011845622346074758902271397735131232379981390974923252473535860868164248163009403152463538178869189232651209881455709720513555504306511831130264544555319607548418735087076284715997939297787412350570914928519704934133911223404943535017083280821522225439642298434447811259335256828543959097691383056951395204661637186008138425125083322389421529353026551917924123092529122810070540560130094160624594060911163917217415569035027317238689267541090620603227505239695522551702525973131747043257566684171491376110282772988235726230288508741059094719158415188725680926217514474804342145119605210617238331774017528615684669063859381260776435489142166681774970695454213648935790436445346316238375630820505200409217798546024777885296751875537722142061358116408384876492069595802800344633933306899643439276290928103491950649215884119705827446965547740884543605856124592623840500420106323119190607462362885534572529682052519982952559915976477692463989635781327081036805890231259875192278922013843517061782496334932231826722260581984013320077908723262107117483321351763108227625106908378964066789943030569084711047400280396563094491814327808813494957968850002485595870714671070717761498168665121369741193643680357246787590565973786341336126240083979948763785681533174794463443302725286858610642899339077339641516745154911590151558252066908507040389641106376563331730232521129818113438702603876540822006430281071122093638548894215168775981651704137754044636407070806463261505551366816159294204689332978678200501584611611929391850233990912474821846265503478983214097653191562450061524187962319669545629816476042973070499788640595466963360586831373753033309757481517773339479756662329999705885882400387613535019975572173888421422851354611516373175143225532622086507817440657329025850393655315735979466356044647603220564873490295506644035940406595028045555751446354936410146437653499504265271389917340180762061910600270994836420172324638247673271631881094099704592148859555118874809049720197707663471470783992053839832477871277622801502621765319222996946187912884649974856953708756226633683588866656563468653632912579343052895879088388945319007146090430315425327468671349555115135516760237284625974612458760599828386016692931728116509906472829283753519029824903235017565459074983665282615293444110895089845324506934546014783347403027569871719198113693008064952160678789090248810778751298049542613054763002073991076913873548787422605275141583375101500847748351984372660336739888306579180845274292325217089319284464212081296802998283220756755699986055010456991346420083387679825020611449811822094657374084763041612278348619153305014525167854965339751585074914290853778439843114754363358017127931470921677438559557181228531121583916376568390057321270779298346395089314638906415913360286366771919044300917632140232757388054571967598537274919690588462297262226071737615307799597069995232188710821596705987272000761941173303165112638851723720387996977821879966276550422681729844693211367351448182151726660884414865304007951812440316834508336928934147515458575636009599644976244041908488743320947559009812693046185508537341018217837600358540657015254797371558455197189012546350920629736745777701800352606868670090446685335343263344262627530923867043964681144284381891692197443322537635979503340485474253405612004448831045983419116667076151137200380165127781237218583619805451007631333541310818161443423005634962587081722918422562399150991493308247949098114178305495160560189763035728035391070652470819680347560381631980014650763187489369151106886446744384069596608177954573989466468432726338985775836012946857501791779781899320418929371031063702701035390216238368606530378237627474906780522224962651894488984753856036892532506200451788878467852340023531843982687025404118583685402602752594211666959769590852038256844114305522507314380442665439484114351396730107347767105677418174797402553330200490213210565025289495882683159914022292457599203519157714871679133856633785419449260805522035955211786661026592651729154038155686941923751092140092409225720224264576214275324885431368795047351460187321140811877266349483920597849761752380873398982276186351340150999236518824704444205544462314449222046294832085292075275011665912510303558218916708075275548724216722098389413808828350808469978500162450475582030955265151332268686944679428330228434767880321433008989084343454910497806974121560466618795174710708714699283421910532010664707880299462025667197298705004888057350427695152442158630916444912699974189773053247127612826696346176560580816506519062460868991064461787660933261862398878078699154735715060695871146657202788549745694517776074668871594656803157302235073494569469653692343980697078168680695058822649454437482395157634699190077803928582554931400349732323069769537531130554821802004410804663088664717551413388652813585297873228653638196088452740857239035575478246219580977702826475983395583828586565577026612485349754589064433530407061000170637105035821197476807170451767056007505468333361637601518987295648539544608267479756639910612733887371135745108871550526624577112464048923759811392828308625669887852777316602307024348143708842245479962717646459237011363433157144730506230146800182180643605452848284510076533097564827418597161480944718069355038697000101782960105192082190495314149512476026271745255169724526472166780583190013964161255154668271372339881878372902446424684770877759701416611727701301047893316907137805832568502371209110429739218304421548303133036149131397671749550739372016108988772618772163355215867535267389045852282615149357899599908916357890646361723220823309773073593644056398788832735097018240479994041027211518494205486636180335528456999427769558952232084156252413564974828229073328403686267145558626983057245475171302437143763223965873559132346803979971112666155443632842100496684553908514243054519781379726667962647030051146363459598994315791218192744445676976695110130899493326584191561110221103491384051771753600665664312994542654649184264610678214872607255748149071123641339562146273423566335877337377154237608117983523405284750058238362691563882800437918178830383419062195366273373540251454732150620413986712982589982037123067126388980387682822989544425788170924480518033519463449619859689480973296637453694291168732236018830925925026237858495676976342219198434829566218334802368134337078557536230922698502592907423785813326126127223566380530388716368695578891076044597876837748544264248879783127655451223047065625583088878971893082681162262795203787372365806729755196355248384688683124949690777163045563132584337209882963019308855805759786298012234208269436455512900992033881756452046009781056061310988869349093861172180090615776048046632040219631766511303797612102154463833077036608748437224158529590762179207160631500505236165865604644210846802227136786871044958172926741322641345168570567304623852572723489014532953960532873535038430977036485749933522442506470564829660498020140915635752748701026386104260340241580629361727299171674859801424328287365625914020524612417617030908636132473578647244153433603008373024469722565847122520185083304307070027738151500963563035955183319164346943684083501655502595815235335981911039717103041037225686863893622879204466273949842578719355334037558047228033842193774513881555531556447566806027571357836444330170440769936640734075179217642889968966626832656811674574557494991782552510345706302082977443968016512430350834880299490159107668337600929936301259768419221044635923795276693901028760429318904796459616028919638597904151943332408900608154743602270761524722457798193976222298774635670694045127836135537201910070073445934529780381233751722666728580235406712050310718804386834139739473486796314010286906052563803978596932460673387840636759195187248397982424973592567554094287348796704006231847400854856474176417749403388876389577021902231241427540788460536541345938077299349708544311148513811089061762156289725824168068205462639063513054428756649263666744264463825090957464144099325486603398546662267788055086171858890774589399928244912581140458430912085384613375924814837288185368540420141436492335832600557056379395600020253342383927733383104978461127193547469708531449225081577876315264573337683445327470364921569951027196300119940317454775686566793697232588193866278164205189599279083513916398590664920988650875899659326983582854971778249133090310720128559914931263863137376634498883146594243907995349900079412323503661020513606502031592563677011475377080605827808944898331068410723799534266531413124003097583789311532745595514703446605971175610024486448596535259834867597441949309153736507097969723229506958613706334650989793893360100134603292083443565739987915910799412762278300163514321127884244055899544358707057038441676289370330055824955586875570564677789017366996325311273930647350240495104245064884261763561931355459337953723992443282626152092632534338344559656348907191021578518599835154676348374560374160785750506170291060115787178462668473798951788004489869171546261826639641715085283692089622523417948583942519127862897494569224577386036217014704079426075851209438459622082387571213900537614915069721649405670738028318785037236416073348873124093435949319313834922981011493015661967083409511781604395172973205359605137973375546952469682305756791706166852729018458455838888269014924445713953510676554304872400774588977079493872093639019107279435977441751031570056285945351524018004713248734187171464047752211419894562600747916286475874851681870842988294583133856420311061814281646127667041624393315624893784626707491599571353234483732470056901996384658181169650963572202373698573728217787713731842169166257871236708933777431299255302162652136511458222871898123627685586742070287565524619721787052074022801727924217871397265749084341602283563564544139907141690300819649244967410265480830579628291493292497880274934944971271004094696652728467076923371625470723839742553051104766057293203214873426624229505893787856720594211981786814546088833806079387933957337548314535586348217123290440577669678999136879377274871785990477664965355258259831622325478986930677352561236894929761930681129233084339119953796783806946347077485736193464211459259623176781632392049319038300255600505571783925590063136355930504903572717313785820971354384584858976243318914098504963031372490016455840203772120852606366150463249392203193297996196961929087392018731126683164735618013926594171288935216096898769141715245939667097515209422716072034481547913491620940657570168865342621037807573488300247649466901806370549972435216694530975890376893863848905133125402947923292490244673313495586262361348208340365700645930500304559943541786670465489581567772649274320720163791007157294608188248282817383944951093880750893951925683261646886381295101742522289534502666785368177971539907913211283450886612013295339194505699193056198652689155812886439569484080332557686999914614203206283727065843362051756209349988563011413895881674950355606810314719980985249085813921068929691611750061474101980360607367218080113011103497854240121403119827638807200726979647581389676513789932051967803410563038448931715835304877729599173333842956846403639917216856907132399441474764680219750675302898372110460439962855934475419143058251319615893635465649757142009766679382963153667034439349144140007440606321359727042585841603171072310048934010043724615349568025035384670599255079004715206526323554704841387004564846796918961925181364826274563108370139316666563018364107484705201361871043661873777563797889449464200680617744573783537611648294346266782956878185080624892538228825836617617366422326827096574158713832988464186598398230567235087281438008586546907944438809581892024535506996272850376941618802518783028077345455617925324672392103373991445275512018431843767298698919302881249323897091999459059118782119870554119840791279712462556340023009492404711885347852626544066246217743700408506669552360066219655676712752761975434049056367068487788542470788284143640246686175067612020410836447705595255365039537261556628851913148451423668265227241656361639999799167748441708207474894364787799470033481945578563658726035400986024093777860879319742172449183313320378690784214813879213838071205691010479581518848022212860106988443630408337221866692568571580606708278278794530458315628464739472442816951322740538223457302761155050893794709496196744366203315452479779979929440577418902968008442011617859123241018175873851612874315024391473196133627687754264526724812060518128993252535838662706283966870662059674703637345425193932934359869371074566804282331007753880576808204364244288051351357378465844589221643650585181384835896171574433785895124775318122607175862232448324671361350022143887771205448559940124135912406230575063275130476781083649695022879604399439774385889736065123274290047163022026768806540673411317589692434180028046417002938720217821385369791811612949743387291577272330372392145041171980220862446061172993160048063211207683225383641816290922020197288697221956557471462458117728531715880913758256079934162949817465776079724948590509402467111058994197279798236238681583062520986262780841290779113690719020324826644864847833944749269678237393432524766531423422152868641248158611658962609815910787731897833637438084951362090018732498610696954984908973944349405179033644892083999709532108332542433664458884422832021270413142346019578288143550334787829727227187866670618999289368026052026253680008698555181130204503579509990147666952009055379416219145190566726170766389908577682745989003060772502676755663307091774650414250085897404999866389542725769094951938297035585967995485329975158045054266648807597640538280881540253819116597179470231371424995404741761913602305015499669168565350648696831039112871936480385864823215740474284954108926949287660566035879864742134366403038984133293320794271617080818396640027468609875421817938024438650833460702912153093911836886510034938810636574944896483317721169861777514448113734798606724783556215988038163813398545489736210697092942934206729959872551335872344627267550663337383640593569442024143518131941977646298504981658608598936090316521627066463033411610672065604111246735425017286304104948061149198775702353471467932665333150595640457950409464039028560440306366791015673364103146639606213063666474518600564002516490737738147215699847819462123960519342317173793866068622147338569242919735454337321089498726482361622470623052549452233020497880028404351784392910492857499063261728587718038333448918857017675632077079793319763984014838223800833486369177899826551036538076359501233854333786291144027351775740217604198194263486570097992150081758720980245946833135038526867885862177350634885755700687339238955177138574041241580647099400054519237805364074368420113657106697141202128409095050485650284952810379997330518291230693435201027237438237543531189930373261605609229293598267523170797630531120766901733387510321406526750145861986086388340210073342776450415850120258367192330098449281000431053963195466384584385448005260615736261458588682307357400682592295489783152764807765421430733964174829680629095684365479177168230856788905998451195205260487127229424267045030468322306414026613318523506575803927490621448863390714196708491292220051762078190603465902635716144262100070904168303351174226498646798916023857235673375909465752320939936060998953945297827907362386671500537211260477971162304306669729752498870833765314238201362641325001366708746803740300619485726028128001149529241890628502219929511279730358445518038321114387341934787087311298434416793905885040717994007220114086008945124433527513007058033489844122508936481636797038978290541571608064736000740834484286531020846296335662923654913815293454155457029099818883573582025081515432553397555644521612007321829717353649641209170425834655841411435101828702825758041848803149947458920983549226749255034133072051122384308605040543586021608592773247839556710161615560068853988910044034084310217565276728395317265035501928558249898438736528848680726815277262850549758094741029821068247529474457972331880503946233765285806745887784386780199252601214736517389497615909459232878851817201912306110662815251302559786516154412963430089423395691777993786432839116759831300654416605654692048433569567366350370457074158137288921033297753212000318395721054047474614774147597427919593202988248762905042281194534594352563990211649643492671169003337601758911247674308678402185751280618930539929920755444745810812652420361265620945143202356142894616670477256864534448650319478647873283102202789447808773706258192008078930872875738019933960763010964630141995251320874272629418574193543867406262622380042689252833213463236411332576768220309338524241011608139341758169044132903136055763878870358903866005421963110911699796280030525051287102214698332659882465389826909389941638899347864828139921609334753147363164153400849257975403895285148928588262833161300902068825013286667045492762210169227431207516447361926298352238922154967577928274598417045910140344685202853426754727558670730506341544902515219600868309587257949150729671403237997111890205937950892872797642970948746632769615126751711094940192846279291749042430960589583575579353745508747030408241805867105839950205281737223138706551689111778053493569012906105435842293506716121777939146169042071235703181422366601690886301906577215038418027470404157435210995697065372578783186615011406840966706529666966104368926657064721766062065290431230115907894490734221416658725395465276516646425118349189732247968839307933993215576272956511282963603366704848839006993006261872644693719358935727163301147097759199260393744647617430815416081098221921597927393883765658225094833051096218874500212987924853821050236664947599282163421172203760338737936902118464123905747306152552445778443321901897281598241881376987172623387260473766808853283694975717991817852749148400214344823914985247881060536346499456125164247864625416627885204082721188489170224773705585622947718753981788784148347785578661618091445818121205724274362039975588909570399060535658591795438102502696572365038349958386074894563390055544985689719324613780922104089671754337080283823259846682069101364426721701514541900054367588228499982223665837602500283951228393307419780783615129209850929860396364660110814076273446336832109857875668594528014244661421806887728200964842516812459318756201560596217857642293509001443109588243763810351338876847978307453519903549143054440971402224608374380952414271128489488656723925203437995798872747870853446669702347711375166159399308794063435819324197633289119844495821647051363454853929421073693202497820396581918490196290532800456653217420803264956566380676088317194442579015063963078204697993798153722076800042479956914849005399458324767511097529109848142909716701372376419698501059051769590130294481618823624684697003064802211911234821645219024106336214506344934605057195357700934146349711950947106476316228297588403995123429172554937415192143835397764806983916785565876553880559718603111567557870657978816657817087424964205162470721365749654054148862618029300464617259969794059056715827811146233801543966994368125071520674810004276716826732072358014065549892335341098351227038151647242415041727829206966247262598653063184299692693156423771418391160993434244892916939760179473017092883356260286395327168784529198422489716635842077760982913235230740799245422006946982211838218070388246247892622466936424372432791041242411023224588546945108349657609347672688606929411784034266773838711300849162421789076602773365638491718541310120592150759474408008823786586317477245933615849667136445432475871597583970549192031303781150371695557745579213665357026539604523395107933075528988577534539949194959411761259389954095908044109245559634743825805605021886981295223377701906473364983518820609767075094330229991675905193086261362884564195869611139881996548685829923982999464055277010977634960426630395270278007606460994496701960601853371484620687246309475259286287308633059855078817058864688349909096442904558368912975068438778042931466124640213413535986237712966954662502679335225640123993282301474463002071500424794421080335356660460536519780359965224616845440745314621677902951566236120061867951177616811050289479424018539926101267937595616731707138032171803069077215071718868909440765917010121982119898773488898541965541539623769197911583293990984011029696510290529697693844104722400371248425064734065457832641834345184520092841075442329057566105787456757602716737866927024249395665311702084651827828101895167833342412483309810797207477896825769493044697021670029052567031822610613004535440318388866210490991743341193970844902039419779994039602133916616105547020671106693205497030278666680647843998339387529174113290059765778319695630221449475840349903018684214761571730717755362631598849527214385632519283653200589118047099431475077798419702528118948767500044401896602735502177161386281517567924341196240428032262745055689773343248961945473510243473653330578860699114087934331969601091180097621335395144793861935267929841800205851861622826265487137746558018929000269083293951778679838485209132935120591041121930591127915879039352227520154247843918455708524079275952958320717295012849524666186891222462755127389959558167392107715662702706738096499383194982904805109144476697387315309051750227309868410081645213593349223614802973733551756847221891573613080011207701995753968990493379335341555620972875482319141107938821475823127233020290245515065063782866115551257503280787984009841798773765446190541844856139986857758490074459020299462064485881721897954824006789643477962953278162296842162323507327944937698965611014306084136144850393299599085141262536099256346593806379763635234763536695579748320888381815806141054384719004233271833601165612679177951669000534290961098541984991090397865120249873099610427498954695816728054214283232645069942101164362556785071810897844543820966589075749835270587169853221861025789188922398057353913013352174690926789327804017293349081536637615149250159263244416078374633652271857422233606149795596808958274274662442941039216406926867902036412017009901050097918995268932651540972102567224488126284168498464951111105184054637650009728573774806034014685391483856185245761551280074782570146857408397102424722607131124681034229639559408393164945596812046531146069240698380873648723941714260197028811152370585046684386376761419676723318555803935720840904079288522276281961161495786438951179384791349357945961011807326680381349911159018020572354228981676300879462846541230295464243782028086046219761950984979064817141703256023823409319249271835498310828382137112747727681876246137260282942212931812847896375569391942675303281850895956871953891452559763458445667906833372071454095455147643739261839560597003078012729138800935386072084515717804906307847582575907207195487553168691219747001142244544898929681761679288771529683468520011115040319183266705937719459916274169720929220871312330581479492968817766422793319999499228337526585938134444639961626890922389362592943538427882007946415778886961360742805366745220201387228135875635574718705843426711115415968537803942658508052490626117879214737772299452934929501147687237713413660807920966690712725686626353099492083625665019961769780176319217097085499416079515440220838437340650594122980981229734584855857018681183182890032947419244085568605313546612945405768915501087016422110253374531093471784304304379464260166026749168433859212033949173414621515143240847497739734262090294444921528968845870188562252803707844627035316904035116326480250025902114954466308369300245648022603921945601649661826762179827086552788965166085633802848262178144902700970164213124022220540682833125109977628458633579085331153411268658237938918599257374768731825057380839912423261192183082695147613843882247888050839552304851550673908645600692033830040496226805106266667670327419739856489190237595388640978447568554719793853542400661800012119400987510257859541253075373544130927461595474682057459284290671179448183082670034326379761172792161958423105617521388300548201293314647883305743100357482084672318168502907725126045972124751308433029418740671618674709315335864554627960295275337209933450261614187206557396163439855358866949355505348489939149270028071052011706034384138376452543326730418144760134942668682551933369724135210468127315159474083379331024566401892663381181455217331219989204053257200648654626829676146039738127784186342386976122579429169906133735393369260780002373292123967781469455357175478068749719117089706861844910482660600968881788298473073229915500857319080351573489372796141874025959227963903718082908158629363917057196582813966402712140436382391152461159956414734472165284873147030894415670461651804655997753811655018085959181861728867091339518388249217117308514270453804388294386312170047074112961970322870738564545970811368080558118933205101347157951751326088849445990421687481198919628376538345682924810255770583454947944955707666624612999565420151632773116180975552572729215570607703975772028045673814304121625219795129629054859173607684109363516869964459191420576700370753243744834019777153905185320479061642761816994511841810974487179240161894334683289187392017558639108584362699332872788140380771258016023182870112674433727730363966941606883004985675540500368447218541779998788509370622995098509424274268365510796272551031005204949856796055024324587985884010090613332684037928528614619676650535054426286201411319574634670929195002584803564012875374853698932652168587053923306197046270012818262869849019475963210251015974528199359695806155896240535265841184545171119614220408365707340193407017532142701822864323083688102301616426687357907112479093891326942087886756081577263081968499222912927995362210989951361513475842623792846690878348755582508948527186633697713003634794823932958062566808753809300301499984647908933219297049815399691550977618353125925590501350809757603493498512826024786227588540552317659146045826915279182635821772830711355255374599099636803118180376820083608213668095226516038649398630198241103293728975701931819689616515848829936874390694016866655240206746657883610633802795552216581657983331269482352129514470069116697897708816194916035752322147867093384542681079965393445176214606928227756208965789423441287033706303543344236299139620037182493039246823608661995547396791567392031855457009431577657330124968529542658816996097411886018525766772715103863898353260409931165725377820313716806547677162089341996336797241002668145605671954077542849216289840772334325872211435049411009504737297390835846706335627919609756964378708619435285621738078300216639062647331091527409066734423092189320290502492366854876125390546640578805346164586182479629619555977904643033605452244751349360177140812660258146278376287368666024475591596774932763291581583126347269272593451028747275325966968211195565445405182666905029468992838460589327264671819377105926183734214395451202419993331021766318560440458085977146106788010133805337665248136778506408156130718166755358700313442749149158318326697132842258542954759742718436293266267609968315734026996392305157299163142016952036383610067483032595457152610782364227812151941536706933812962032873159026988081011939872763308715618385285833744484771660273507252642104342234725037653633824816384916185203084356917427072401853400296681780436620315797713449836392677763927890766178403988386416682565916049195882698402265224336926411326517245039522888809120804969284520911371052768439158921122144789998721662891140735845144015708818185055877433982121132389799626684082049954417971597041335951494995341429264478604775779777432043619817259727587668964007973609408269475327293980037180830887619438639814810669960922966783981946668954310087269591649138385950760457548782261608872744284287502572090280197987118259706915365514288028176341980545497658358920759108874203015078505417193426131390788722987100600929536477406814320330357036742108562901927186079175823309733890802550877453167656655510590103518824864197884114819603890987366966058308903259859351732890396520518578642236753676518842865540139593296633413276425303707651759966000577104129978435714885727255661908348999759222173522626293718351858388742884178551071213695794132791780765985308968150589660706506138388116601316415868460859502655449617655126132196929661075839629650354558765014287640553950350434615300567039564551576589725670024713066611759300184961484785614360086400714761681862664384254827038642486828131613084794394375125870211277331118105009912444352288562041861685432878671470067132796837385408133265525864057145415540816682949225887968850622904417041902286734762443343414531646880846651671786914916848534468205690420493448017631511172994754134039809345738998657356614517732612390211830561275990412448598532883460390618191047249518266502630887887837840603793794412826670536619522489574170631913130586053680752166908793426633513340075908533508168766694813713475838398438908365995727415556468702745375911332798803406387470314515320962899312256725524608661382335973317923676887959782994091449177191750090351255109534356981080218396997804891816776902846575081136289609725732780734076558375718092875293829731207177325587624210381010096403908009908958291700072218319908888358654447240396608134670136170540570046350576111960594146815569206647643363574289457361918062222067069465761106360682801311354097067463349302263669131237856254218388812871757297964534704329157611206963714524702102697297611940711309851118779394261391320540443168273836513418310906107484848639921213247744675904371691145280128636506572271183998845667244082940206968518090776456484117135314463302973172345411866904962114188737993475800118882103064951591219326166057472294939724443858429775978102081075847898649883860281137144121013788581432812106453155518227063844733100086207314367150413501046397663784302549284996328193637167363844222175614007390708502120904847880699282378127128832553041589284634602687711590011740584813951705642545115730711784426836260430176934320838880635390484673630535029913908665849590654790324045105393553178210094966224114232981498302302290982797320045766574926887529510312482810137001809229826237550858756705762835043845650755012733189639789585757285574402449670474432614304856944920824713671911194368088136217925678767766395642409128150741354721651815377838486878669397152545334393205492470187369112689062169655648747334209640043096590602213994702636861579461750656354232924753846059628088573904127576388873498313213949921848186496887631155937314663363359015383957358633310860165647801284502501237971142346951733747761301596912357592729760690042479917652847268103200104159111980504142444265794562212946964122843084510028457658029437154058794940499079699267622857131246423750694078922865153002701884223750074165650736649829093579129531607751447748843903163264239449736480999160740435425506076188071090672725931456791310532738314225750110747629244620226118505835423959261353553815547871000265923405935215277201265599861082731182176529431560150196085525183529355760570325167143694723084287618402784991510224448235240728907943670608259021376595320643854265028487978635135795778316468908134220375579391591227659580842027862351198431157480624382934968162549472190518068978693839073522975247259561070139085927719782784801040795298520669693931849233133385805161350492611751850180660120755705605115601493632784409134543196552432143131603296542512328720884752566908810188986444368551203290734273783116616607472518288111552892715974576120531046640029201476086097874908903495089594274532247675779387078774141975253896956559448810502304866437958408553184453334282374013018518326660941013727772553390967238112387238818600066630863375421412690685542288168868798868154571756042877142096239858461434470259523353478600177619813095880130145214249207394055257707836008407709286022219179600768688957820342836070516596378388597956911563004191536070938298276885756388636546175997958102105352017267150956515764374673113033373003986789635345224933347431809167873157871971896690037813333783105509434047378248055860443147088633629037635280087336184748841990377292149204714620530446839138242287998540501466137103669787311767436298157881839093457114518835756094417093247167483842122665101436133371270943485329402155329500163766399266022327952760375584461199972619407992026267116065849701350902076863196521272940375350087947538517769647827966409236900053977283666214289869665914183739966824759632637966077870986736102120346830806584824194061435964633295684873933293662176681213823187578575295717264707215497492894474641412601477416607951881814864222726170670317109834473761996372994284575129756373709634051020648086308096500349880747337924772835234721829342719307016950306241747995368775890768404992213964998279693374760713066380971423962892877424573144539502187380486430433433884316126940220572277504863195271438076408250627317450709009084990043322195799306157200687058912824835099366137398437710789000592586529136842688653048321368500320158489062606976244053680349359320181538921340883510754928945841075488438049684303525347052204991051172896305283288767829818139504396140430546056787190577791867546508693932272761162591648811171546599697595074250048495282090167828853981303446058381416269066251410208224058381251397731578844949510888409027112551757579008522945135764604638427310929045556532572001180268552394520178947760003358635171669943502044841121415825377599572571446768480782201624229226549144563933754296935667934108745365098864758844413574618009076008704613757429472041964269284833523946738094710958010236952865451008937563406518330105767049625536954083152941605913028306736637153393697712419014693846028890324892791947218448420939061296876168980252606570391798356057633527043502217767500160058998631344373177195568654131174396418869010245972569167400812464860068320513732626159192707471588210504926969980194659528211108627133332127301198661180481838596532992921962426938995372338086455936729198267452795323486875861664131717388623628865659779779914942158734905699215820093860113988465314245442909089354235453309673603423820255768640209156978295107080693764967858194760601518927853856233755669312654009140558629294276696481894997335815340106278532459799007685792287067297875869735634792887443493712287875126971286287568042049165330075808521930350393518681848274171854255791898485797562847324186434148851329610433426890798322471783587491288331511532009983936558902502121379498591961367838029087020550268601456297939885693177117331472164197184789881652980684282885285013215875737718748273041388944699364905822767587181170476273124745203351423220281605668179687301775572903374905104711295695880675814981493394959732208102974054355071301974687733191205726776425927575878459302991746927315845063396745137464033739001646135537864468764500013094040682507915229142109023607931770989832324343401212515385452898275755812749399202707334804862349214112947810994169886124635648698538616942187001302999260674800084202306347055172480775900379095334466378241726277774950505241811044815996713393320807900209574428788238000131229058558001237496958905749824446809105304736733006088021237942661263087967277828160795577643703652651229921431633071172582207345571555041816512880718183860278676309761750831505034129508525803987033661654029052495471732807921742283692839384130212564603751253692151102795370395837923318432034689886085596772555999392892905992722294834656139873319455858120893934785970216344951211581171132188108905044738975962442495737203798624907493104809694543269759007644139346617893572751022363555209834592699938970755549044999862361061812276468369829089651342841150216827577442974044994880347970410878537063586389273886305809782124775095836718641202691365709574248620377206882868336539632219567775041748092324808050103137030005035063221077924724279941574510630768928847677965734625547493441474241114187844826190465101654236992946408551770839923499861315805526939955296932429937891053800922150241074639734001689506428145694908166380065329137810310373971817635214060925820866963438987041601248564209719980179116192730256927645420253812780896268860962005993002213879719159053587804248781200197695911404768143313228631363402215362291459510530497146701852760033475976381838731977699854909865947134594474852261981138318841360219719246160337363514314684991064019538854669649937942468156727302700736793838000243432020644516614680014399606704243444388449766798690777038016952353824547922520704373576899455882263467601738989469271297923374891840033714095718870222504431738504325864864601247824427045349230141787888735846205403204480510776137511837013149762056500495147311159659474528913383469032404130998913952315867942462667974085522837976523252127742943957759493943000024671588496469249823182272087035753586478089715282026007273500221348434168216478547694771730715328535328712380504181040941652479427882341645698973157810620963621943354148748368964488302231756724010208623658951154429699099387641509201623370737479937676562315143381913955143112375951171680878113838144649548994104505899926521965271111690869534966098901412485381679671967369982775684489693313368708447650786782448979876665865053698832063663680436641637249194076048866174318199367795504077291085138928435269994533685360478919889496693891095323151124206976814266779107714584046977168159111179569487180116240622999286824372600866541889475320942280974242560760993337328185397574623447844586395351337678239608146795045373822309838089873566516498178523849533305463347366655253175310829456374612055208299201776695365240672714118840264705755060742006920801413703413458807449998273398477979017276584961080479060055078320755502870865890703157783141285363037226223385347056466658068864641170573397363117694714812470048456335248091261993123057408440888851929464987202351671049329393100255164229788090510603615455204205264535349811676726026559592766190440873451149902117450116664782530623390075776074525596648496893222732747945359864115528407352864456841684599705779276126728312621511036124224220505507545993581074107238890097594600422955646173434173575043582613172862934288047512879476803142206268702860047086341721547613245588355170243217484087447880435824963357300514433956390190583828056641730955188425587324694834110636915181850299222965219981823909538465692758838941095736706262053649619747881503837822297386640652300557489823056842819865482735381844797103573304130442915437680864565293992188799025411970932193043544320187306026326944200929685586043789769712033895915202384654362218527992016899165534903790140617803823551990096649364338348967022063742867789792906671867905058633019534524219298502882252931301032320713424593999435510977082198785193114306391525162812212260622920850114702213569324167054364067184675366112600791425232455896651847139318771573086058891704102005273333327437478022562468822400354000324194877835267471936022856346273927245079356134757215830950694585653612926273381455381738298190283493356864054982698421026986978786301201287836906620622920348142141321059973053402506850005860606193262977535830262321366318640946155060690823948134709421452556163164131094480460623364347149341034735790178308254163107810651641558040580834479068201237334726870599820829546079023841521801424782214472889928278151844828627197708107703554795692034507245442232243082379068313787608212032241186220865958033577640336973372966958236832516772303602900402987704235223122397374327097657607706307141106251559559423926977072440664077808845802533628244238867095093098649555536162379578217012807174636653342884600365081559257444012530714914564333716084316393442282624892872158816885296187482336491819660471239302943276776435414965474505697836347293049532475668346218319313439530228370858348173669365863052315385867429816840205664636363988682189654173112145708904329978281163740744196515414388355074432679104469923097466040243510825578911477909646964641654788031866747554447397562419569527517622177201882567135381257020470068082544365432512478943559280593077386342483002600742042614490996846666085096323079118538908579799072334444301638956919334283237609266268891085535438533899802684204294178571645294721023450970411192924563901584134192371476469083048940628598878267317861619529742378756591920057617014318237095599486230310119120989066848099101107183370757880005974248682273394313532340704811371852973651675635364330306198830144666332217052293439491516307336803508160457799681035921192928946629167061610149027505666938510711993745675707667731590335864795367520251735786043053870579732514321050860210909447246013911494449059870424405470007869423617203153686479664112234597357990823192083704805668008298022050688296237091004246837472902457322830599785827192770505587864945899510778503557030125022682144231045899271223686547588363856464966409248839091937091771015958998768920885306977780484444241206675062028999662252252699971974918181397999889345245985489836476064985127794489341228582538470472365181774675532648272509295121400732493884804933524044512417147973120054718448271527983281133543690639880582461690375842023838845343046264667542119046742963990914591740084913992329565199790471737328084936374900611737707927770100987641992512892513835109154744364686049282721147493296172468126238359316583872614603635683460360118609019232476207376551588022075562022973821091194522868135709176146028897749698449966543425935654088913041741410466140802761269795799674891063474540150225013260544156631305020042640389794739459448423020463985448646082378227822188503785092177416124735320105472425543834160488627628833186199374944503747701143386318930012993676388967211052378345585700175235953511551876708085099646263059962084192560270134466027326269283939821366576521184754902426340427831290335609434897137870545335336392127624646052416492741252075790945572801271556052683675531563742232999468945020325915696280195457286581627125481695925343032553332312644986099406593879002141926377331944912663328512168155010541082786584155534372189489761880305897807827106567676950859466747824744687611193630456672624410942466898667241556188969330106513742167961872932413656811693992937644471608984003964158412128694424102070636644578639868264406603599238552995159470493016299340176660437975430595897698971820482274781914413028194227688122159845882228225372803484850309849943279517565154358545623104231213322815156849433012284243733875531812643483673823597652764688283839868155992595007942047150327845312283168236323315287052320321097445388859903738268296006292160870372720991182200844037208344691160255890834391534495592444409651225920634295537469179472088045357644293650143269322541185382653757015223325834811353402787911199005499521128575192558317668492918152327595853965040291330511102369219423444964374859691175620326974161341238469877952071604693318855838643582649872789147457446422480473786734858217195473796099624801295258575434595211030628761811987941152141373773591460719193111397071709737405869735388260434205818091709708604645877546142399311333658604817466147770395009191109871292678159357886080530786731982414098355453048085188870242998372003310874239805790949002976611817075542543077229985914526971745096994371257211186150066889160930807321331413041781815543420576002042430661088431245985005016999873513881940525701563380799745403593676738236396063068923783355983999354936733591735334677728717977329812377247783909499757300741962383003415627572123454927026396979588658073485623486914550616520006865966389390993155420160408926474838467046562273464544182571831491784892315617859296589129167648933918899823613353739985946089627739101257141005926897487526117251047789356002413552280477089380522173060317027271306016468686288834346189204743628492970623318952837057023958865213870089580615152846880400191206515111868342724998168446727898271166167710031776421114420553107287557124034191518726035010009284565225164078297441483577205145852553415549826386265111887908626251695207291247308354558665964284793903299797013120147295788853558664674384410657585245941929690474409834618107458162748405896146252925825521530778288124238403321450874124503601954361331422214364927670856053236223485519568312114799203747283582144136291557228352276617328143493869289090907001883639605512311065635922415646458055186244739058597180450732179207312088263849680720933267046123520460528417556226817855985150019655235220758297490582802468686854432941142645191413033408321372992344821083332411008281683416925030566993005816971935832998566193245384428740287983785467126228870396944927424393314744436475265954730454079056640186265023195338812755405929690446979429713541343294279370664475706958717675170014930977705229897143365767351836974021474509435251612815432891840109951603954846267936109730795519372340612869223755717252164549068375179754745242420036169857769131163787599889088788096608959935589128674921481313568778915211817075856015573328586458768231525796968560343274832566828558396394176378181683896677819409951864432508637784497072395040839457319990251055047720624835792344394887518997062251174362600793962908497993843539818889119407386947784187859851791894467148085191404301567762657249142279229386840078432031980074006975796593577471473389358348747040850612626672325358320456720158601277316050412695673076963051790628345061354833793516820314105146638602962914230666631023912519420329222711328086741172575801364700831465954525801069003742860677519486143941333494893292989144469323432237100395609853262145152088150273679278719116306674468424442366451427909243532440301575504387000901763234819500941942167786280151135650798196109413498833832067820408750631264251027800778044965615277696471808442072009817507891896835322066381334856255321286492515284582478389615991986783117001874880974770675762166104454001112547522550852157529380305861253003728756272348262544763171874523287510318667857065986874622175950480849958574943468621487504387534716517363417644538012637826640144149593228514120056917544913313190736035160383471573515638944552680200632978589781525998414503239432855330910159597786726488590596853955075200795972436870515377562323015166298435568579340944812253380376778483289937007480903941816873864230441452467316420623707481621940894266041499059770703672625519691165805736028229053789737744745520705002067941483225865872709474812435434392073817371681765974725192001054855355332097679418937232442623906632612196146928595217181404979336194315964708479551809985779616249161520592919930741943281602860746032343345131871657240665155916537648849904171205760936525886251357288175100950440662100236880714663500607334590781737570865897978447842520291160828421938340077131109110667999019308850774086523262694496974264967222738171471295142979251114467569343686602839633435422406274691277221655824838030851703873611025029182589289069908313514149926708336927158594567082373041964693965718858580414241729118093385551489820002325751451147814257785931269958285261623223883439733180891277961526375718655728903813620883251163571435390137313753493678616573101110521801781709848466682327174558698259345389632643067355946070671987312901204635189163350142610847998746848640193445109111030535296999102612775384895530359845515306620345802677273721899273216204101017565631630647398056091976333878474771698935931812394307217336716565156105891963552621190001160806222180170885462275163127787748048526427565208806417689683737954368329099386883128151944395898078498390437828613578955106606261392637557809035330600171831581636226950065565990287142093214053526073701794685905038129707406326285015370898656445441586757752904905892750388318608945421132777112043905324612249247229552122445441171890892263795389852437147004462383775090843378143026688959433115428627756676940713282319353983856633534420204377666313345460103650383391789854977353456327344364402895521696304259136390338405811646881614440447715423693217272127385769870815805243492406502147869646031131484304134019097975835928274467028621587938814556875631122121610455636845631923340264320608524181684825890302780422820814718442465088743773454868234056380996629291622015676753723594384816501977452048792101540690326102820703514353066095144733768683183965614852866877817636498952062826759285430053670058586493460114013189962438485024055370138235815457940696637217225634131250047617478655904020322519414364975421704730552637666296735512416993027710106777905917069906917934574186179687355318917338782185213829563406698155805640343388990270287613696628597399841234067575631288078367818109018794589403102000142304420053746547850306134751614176531246660825648184831364496965376272536352335469212982800872265308491609647144016426764512400590869774056288887926339786896179327255730097957004399742980908374840766892974780639580338977825253168466440549776035842877948859300362760610482470351250092770882111550326117007316965224983725708684992063695524467546686196811674111000101026225834654223137051093839745227031534580062205621734782768034011574067725931091198762809068649733470279141447675237649214692354226562238494397249547286792146457377008110946205434303942614525912855199098471729857403829718592264852015838627986423310292213216865874917241575185982342768567067616643595389360671613868692878623382884353793899270875527142683876274362397256674070212419667528953864350459839222377441213798058387451846432798224745729046738819562739910604992282707728809976350750904726701062336531079711975117611289280295060695612818016842011787445425182254742454703985292234095945477405572532754357257726835417893443476532880569702575155860133552738573938581374208563974051702533734050801914107695362268314129972124541206791786058448582876319555749497296967014476078799212693903626944884728733655675038716205975836103943790441614512007048220898322245322632384051315161105726658714011984253469273354378548037403171615456510531394056317597437224812697420671509064180889609295715861453372999311315272747063544855483976744534301932620302027800367341480366113695152422254521825949067222273524716298428176816819635052974543227362569714310064151786079655959556054190261974075084112410150063370636650208864750266909057776798621857744923989945996893616808782143187064493852615541203183288629412321398408956134344033854687934017826911517643072543602586207652491281487810630686983771602433001278552181337237999227939237977004815191423934103619460225779463581414657343449491800718806812538958628682774870649634001507940507442385440375066173179760588858694739798462506887646238080333263951530156378468634672244047774951571959610477778503997566620831600588184407186527605355418958611979627696560062340762706809731818713989937155350174395779873359071686180820167027343278034600345356579795361480835049451097610434004978500276506585307936320986552614833063908421721415565272716640051512453528551132546580628801485028738661258557552944047910175692248645703627414532676824137681821755408452654203132023965213242900086647134220892341966189641502094994572171318663103566666764827670743559179888318816642502181326200176942065046863693741585139941602791954336709894898603714274054069264072659926690321367398443957132013964354738162569836157517759375623286018027686112875768133557358566691871006050810571706208882177275159881282872391303463490949962038573682796764446611173278473388883580318195298291893059485411035923370252290875060964856348340032365116499924284781966478067519713781715366612862230128701662026716934933736661779605273113220395202696451164799522608682415620525757182033441556358201347116912080470857275075817340570419155803622510647912168434390390868558752827270380137998295422696741992231108661770746284250601523679276955566669645041956629435009279900678274442562644506947647022056340390333550168437947133870607285468653960057539470027468000111558882824865729719419936313727674585010903963850824796749814851045124354577010869579003437835153552127070641227885897799895168791289584750186663316794212732839224612972836103532947513468841722232325839793912399561435940487631119932200348459392919897596799470122680643265537128623409232341805735331757819071246018154833552398080971770823625888438192965213865541401297812175966649114712515131915476047362986619156452708773878861275630802257924651451764063638931719918673740648972506053925161662804013344501308076401150215860640902815949283278034184832981167096269283026855022324834106004780218971745284517197500018307675592996535424850600717677429760404130105575293931113095055317194690142527657247601074087220913634445064407383522732825127474818198265826398350833312127233016622160097532810529710370597119433604185076968019061199554968109556540158106326579758913921294528366052225380038851994293123418562905021323125416065490848667198325000644770694717102712938283774298440193242196356643123555411276430737939191201826071882353899728836887932176309190928154538444236798919300671947590775657322131323752020231374271160862412133138383690029796242140409103007280879996133108849896424151189120098184332986423203778566818621069238608351057455193158178623802612344699388974909887039117411510929788831301374568700882220835729854260031104465921659798460147759614290764054452527631324432271092349630534042722328945519245826847766535142768336751033738041596909116763774158062131973332046738308485116668917548325144450523788799032731810731203129861516958738696093866705031657747230706219762617181506405277695439092896034585332616181421025320007095300118711254394458541544116569359666958216193463027461966746096486166714543251333262593910865344208262951244349900147853930310589854293817702568737786186511121792286396621010487847656273217175897720131846982147069560340808485816088182090564086169117512168254162655116816677366449812023049804552215073901423086982893123853863594141558576768417244925197262594978950404502699241453569284064445530940580857778998015241920244285514468502880380281890085462425511360555732555691585969469366684644055849096151163215771470149228952354720239012490825541423938386089507571505895885509732763758140952742100310803110313096574336640807056174781788883454620400608206778187182150076344148978396833548422971684069123477964347305088116402853318795770538456350628980934270598577406477536304807742382205572034934042125831047076278137357750754760986333437669339865441794101613766659445297956700714546832858574326930430997774563621992978888581972050243619197490191483539722548849008827532613510921068996268496640086331510245200394265605093224447954966772974886472843076201208546970428110550930472033253223227624812056561665713080955286828126782884373642394848813533911479631223371979636760473459105888572801574300140095860491599058684997139112462429359958228618748722748700552896149873939803488379021657307559549286808343767896981802622744283565904931410473120022382395272446875595008165654501348029186619055274390312483834582830890735829988365775612781439990219392889401025151895356349612716573522101864997569388179963538241490619286842403068987278745171995501932293539829345378708107407189760552729880939047333373867493020107351743671966560463149994317462754313784707340131797236318240746658124977865701188817125695289297651095915228906512749415348918062111034645954731200434714348707792466085352919781038938161054523630932116438583118314401854452866639712397515959371998340957083740118104806627837209607913262568216680187191317785252378984162511563547563983732216215421201914116644803261144826602289366352138613885662496399479390629139671862217578687325424508219717231910472431342562422603656637304462477332255641385703466208625455979995123573696010416761964879316556743136040401692690192563789456223154136718021356362503534355072427122532350385367720652267644633409921800628562672400250127311434697618678862990103559119739120795525535110086289194061210688622754227998469132063498219408668369145487987375515585460652359671003359750536027332100052428764741059594200017371902715501806042886784298219112765581402854885307699092451419900560239403974382619449147878491070093982933516781178077317419115289345639616633178422622848296729465267396582529551390741957753251205745763861783773951132394978746626254715763595550233655517821011636556398451798700158543096398475947903571523981994873764727390906458184550900755636900302883978903681889729218493021667528094335552446872695040451515208613306012696881997247364953977652219508565892695742259269469403019368121392682781184346395745715507656402539711993894244329618482288781017082674575692174098186668725368108470963243443005766680592213026365706336131466372146026714380924728603541173764960510382192542911764618903693406281668821230706399572914878264351264876695295344635386394162267579898868046712553998833385056526970159189452501924708666265178121425623157058235188282775849831608570816989663438147961039592995113683352758555856763214256060236931019808904268727284140825368989979521696864337255929017093080724048146745558680680885133787049532202780906085418379286761002954351265485658702788037693738708292143724899294470014916135039699035023997766761152185127176224048184950525537021286883881818299006601772903397404646395778549107924502406767077427458764379028783311545895662139346567911701205520986765692741101939513964216859655965041103926020737769500432759770289322367279754553635781277820119140564137957640282223239859304654398512948841141568866385621165566450737149873793162080047985515781859380139477156494033239853103373006589780011900943756318812767187385534958837744171569623592308736845541616219703458979690820219785720293109593684962888307677469873315534458364274369673448136506243874123653183921672646687095467068870177327325543398395087736445066712775461688951496429215220883582841254480773157900556008992865127240646307195354138419087437189973476978694494824724730797986562642683010059400127839535161704775555911100146611923883977684823600337307187647292984982362269947694895764787040222955455383184499652410581763769535254301397818597474743476262207430743102031772840391529020331692074074870529232306280700200401155515191291423538129484809771154622265100019499010290090339383995990251557959325012974774571416839155817300347005780927508142344219496317377511505160478995352196762118125817423412969077175809204438951512765273738062462602600424056186185055537540591378431175318216400440362847270391273599852323738871971701415133644887988326534013620576252906756436982237204742190276378177428927914114889728610946877808722246658199280910611914130138128234904337499582518969817140653602932213602285614368193560684830781221413227365087160830528905664485135054084429137218224770789803108793959816007441416154415277352458019839940913194922940544385639363636574989149213921912104182269833170977162137883025443965712588736134660940944907251383251148105418636247295748266893116619026874214320599755538062048723099147862367401380828472228453715406269166037269639312056688808078700084138766582505507658462806344910086538518083445077058040502253629205628051639071136984959301892837574780213730180671541607195256033074216768431789414693629985985837719712832936812498146445824285682339276248076430767463174947196715119412748215241311196062056565195516075896747335914078430496534161092391237785512657698736743740471870111177996651180362214293581864520046530732803256228972128785032371777536253649180225609911938119822933821653413403582548983577914882929143616623926181957362525025956992364463912136214758153442870771489564658683269800975141659687214286228618081218119315355625101079536534406075661216248147052955985409087826733756228416487226139891915079231270874753548369374023289365444270805060924558102054831596560540492772240722134652351933061768365224780425499598171090915479841948094249985651206092452822294651305912152413377548031747036554166118466100899157665936229533694562744180323634553571723803326816133324796177098826114189819401289874249432743177713717522511856943309555504089193623479217163377019027970462032300641327999992172557240405944564203602727651910103581617258017346839213207604479801279536177488716219131086341745474219186682061927186437474549281252274006943266983382684779630076294038205026642832950909439839432028455529681822031592321384558957336170873279551368967427386196252277697476248779467744412144463150530649505563492575617161248721791822205760685073429738249749458473197509678626016192583850418041388792602649311246977654045303163068006363868224024486781138576925914724911274623437844306718025933537344303580452256054313398869837509573760353871841992535715186848133786085176854991669687234788480356997116521931938956088089661957290338812441176513173274190895823997578387339617108383039630115087888430198365900294261869106233639220115098284131734762600946193358823561173401494590831937882042818222750757431801342642810467247991470984823731530234157560828868340803830525524932375665920289739664096474124443794031873088636713622311721992509104164812305761796527204557248978369561176974243304616074980670967188767373325888848081718987953120561360607538827184642041007886688034235090825463498505276305525191157936555701678134473446359315000324653458667442296373497581247371450505167155293190045197717042567064778477340554745484975780513069713681674020476187063216786802934584150042045063506956374194598280539762708706425775993425439119095894035502986779741024413947263596238907364994514931347780229348956194027671497204505558841029897217849303546454772182607328015540841086157048179203831349592350627418130566895232811493022837010663391592296900094581471457017717781193565684265239730207858601312858299734059905196167910772951289126697926607384716278142593445591361089667199540835215689635605197111175445746501022769968063416432402271617694169397078928692054552040202469786594979568549205808738715865469336623501401627034290577976263608077350959486154715430668049017208972239205767287630883787544667118860967454640647968138627545197166285207040440941781479897808311582083822022328780460927480249607673823752972967814571230555299954234902769372625433692815057332838946830057453236451333620801612247680537057687391883772691336528102643190756703229936803358540952723172905025151670538692948562326900088619329181142633357773583448674032795793048490162015027392018315901497974119042369113693703586551988996644381026566762703524501066272864512229315639702646400166362801639947510200157507714703255807665943758353555488752893696619067311089393700581401340723154284144523172042897379593449730516563185467015486882296469013600709427276971078010959744411430832379905696563537352637576540864061937901580758665351178725315401881064642486223634615816258029526893582427318354206474423447440382476455764192449163115328777151580170591951856102584178829863746997420816224656352446489054215341073257115242326817753649542258996118274627156412877731055946450571773155394226182212879321650657542202155765945463414806859591848478005172606881034116410843726353090529237403990183021271630338245046912066911996957618221658270845720116163545882819973777542112146513781405524417518766906529370270128633796844836992327967249660944764456226465163515141273088975565781226417779566073220383538455607211240245369860547261882986586912316054978223333997908614566284339703843031908731525285379280344354527316821018233228174999120983966685406209831399506437795571590543521060984469132964890249088532133733670049780189833265126616127164325182944773417117709447643443622427275963147522314935236034117488323022840662141708241043824760796487721110490527116499596328143837997979068051958273389458051319401879057577802280036293391597279551814788833326698550139514060668818189057393747304338003022823609746495757197552155203913232179850217721770496774135493100943851426269735355629193345046968107944923917162054523596798529194847672197303272664987883522760075846413870318057337532608540663334135391060002202996721720306801055032056046786035576795623151244305927312421674774227531696801737706177095239445322681590859740127085470910053592724742400352731961193182658336641130909332534784595850480344755041980955472594039592343710916487665379013281770110949882551323018736515314842045607034634679869653838536204359217367100772644888388531416126045993911951011497617971102624096214877799141784879981347566187222181358972707546802841568480864057288744583269285787864174928942822225768190805184854841464393894940011409188225474968962584591135042809548698373188301846615367367407111740498228349747100670153146587915991935725647821039494104361659271813848152424028017884365350303350066248983078300829919391256234188923862740322766829720117957240466366024980431353719085960871146050752320435800288956407722776503556234208184053774461637376802185943826744338935143028857146420929454533565552401156190600304227405232303909370743995252250619723923127381985440264345919802362591537785246138527146841337484366926320071143222462892262438494418247924355780379138176880723186396592727356656053090432755032320119356428577275046464875003957845114896920476889748958850041508119200826393855104402897938983236307143354328253631407283987081469520056445605552323956930652608792599831443057076247765110794353746619342889926654334320630662987701945459955564685783989243620198582552002274189412706602085714719362211771255227962291737208326912686650496767115143777442593768069675882502656152726022560385378064203652330182480148744723337550388604719326662269181892460592082000582843278934551027568270370029158036837673404746563855983423709796718817875258290839465020594020559143285916402854065267291538418858426220576997633981991930544035194378252971838084491357898667622928360151318016729795733397463800195587830587187061295261076277704602097237215356135168045004315825002543029012513450058044061892839551950053649348868617875515374780269650964008424889481114542684940246039414645598343756142087333941172408032958819708679898144273093438148288007930807794895023756679147306660146648290895010502010450880773697363796713308317449801032097078749497058660034909992333158713822507104164304801729523381691367690555544290979251532915313590579266729056700726131414025039297552827887927446318927735725471530782842710450030332861770125068441060398129180730460297605153391579156253792343214904060326969267417010607034411562124562735815892371323401057077277949892523444350476503509338397978360473638764106200738497490330907005114203538078820102597164979988235834138783275299822146447641094395254015449924934719683016798448300173686750788113923005797193279155287948233888379402702316871319216361856899183994557675839667351491342421909976297599013419168113447424479924408730922511441220840088695771881652853320643100775909667323379626719696680951635483452112077790301264615676686225322390637426652453567715602543887707141519865988951496382599260877775074166790847344698355469168370977630103702698258063291422458386415253590213608837226128285398859800224474757993823757788294255410909874036079499244477090427050540170499971381026833645438037112260350052537869127232243737111193458224286490705074119539589528532366917103409011131504708565156140407677941207561941877671688734673988101712328212399114507964598513380449637256043129118461656434670969947788255299437668020603762380557463136478089249146423158529158419895052670644690863237580011513996563291225585230017805700721079668314455425403204409858704991767264088167770168737742393018915721804021936268115419382311197462403059364955692112138176235358648573319957265415148681676455135200783510961203006475813267136124788667115790515039593396791898970277620266656627140980260675151043999533341574993069777227704441998299767777147904438857566958447750430254757761163846974255536843456041663609015198595490571496401104175641875719277023605431954879203377808617718019068008880312367505066300268719322711691249513905648875087837593892961667583606741776961660339519376266279031610474120415709295254148539914290988417271473360954495432704564740150722017673017877534475049284058823243748603892774352889084193948581481581376270725596508567166259194271081884651605405377834475250736361899890123857832405167614317896868028565567650563580082060044719340335432366491225115702280538604237318746523643877967874615569423124127162621080190107507218209564314462347793430382386884768829079914977007239067933883481917345444697339924413894850316273699958771027555640863435905683182355087450936301948147726353639847370403738261806393169410104350514260832381719917078195289281652844938029573474676628852534587409189957603219605949317840871348760989513405730012632847723287058506203516611014387660290305377477999699736737426287576578736403605160961715169150127813915860367927194067315361527632096619043759187222839269621852292950752389682882785532822357863827494266224903679824980124477076828762638363499181722903719280573591429713243277250139191032576790780285923277588960422682746520750826919233981953513973482903976799821209676080066035965756727071673190218294693810662976692031486581614298471233608562860367523974927280278475658285585606406071602084919267141238017678610992705088485851257046634647435065193822588767864652113261343687545577705043950077961127570943618958070758670073196524939207955274997114315805499725406257470761378670413177547038335674774920809255898828116956859892043103625917274379004262336942008785360099463129779521494867003289907968164836178977266640129597310614877289478567151434369405657967035268885450407600490431317329307519869510047516239649714512297682823536367267150837406420499606994121835726703588740162757130877130247327844304269284790659853883279165034439065104554501096951838939478689810523478251390962944358151813391860834082342319172133428692797779321642020275867525944753510294829047099616030117691565458851664511801433891164556231217783702810249087890521723205534986363090918557153641001875198976838317005663027125303040917730626543565729145851911288954875066099201283818179876861177441530352445176217172825564624223451840551117963839801292999979876493964322836306245475565801578740731394958082525772411083667826286217718206195690149158660051932050212976164343219021283234250622735698643617797298430607953540031988920100248423948485356469895784431993611646008030021081328959527928246801737440512499411548282478941079531186302208669665096352302378646691998457973395648917224622285886052798745312092871108481369230717751398371946023534531080776415216096126957702636485164133978246662854716538142264101932612424465441049300482195781013121015810006817099007112092503138788798713238734567751535452868092311735933791876150662493529185042363121648641057848617868624547495133707857442424941428896643414678114029366168732744637300785091364108253542538157501023822023558008957514439967370223264714071595757996492533355357358573846971493715386114191453043788138283439205840718445893945567386555915918203105061089214696480977188772332460649337894009393425496588134183979791581860253944003613487143064354908111478751600762080977953194087244393131331472303531495195250008733363512040421686133687709846356747050908933264248204069518474073522645236001292622721834427324418068032822402283815183442518980589289197392489116848855280896435114886618091522222753291022957072940112835576396997606470105850304068951607843403303691471205150422224540122417543948100933224902714674512210309165803605893074020924340889597325584949051901189566476909444414082808675183387204739963584538443570561329524615484972922839849197567839459901681717473106605087190253362500830721786843362602913677645887847814674888454312399230617004500755317396570158223915211640592538712168366410707888003942397954879850863215124875232923743169607376958092177420797452293429173619008612656073411205615042935683705548586017893041650694163562692532781950931306532140107499163179656379840057984310358701675089053892052767958529225089473004182359235878843886797312089341330947027284488555127726459218554694565032178488473536131221709882089791187412141484637727222120510297842462723865044502715458164817047750037502374029730290204410315699678888361841798459924743845552987418324255059838170763422707679104745038448453382371340489833049551170054012717183105580732881923643892376991594384158665253208912414783619483506288958010219648627287392688433886376346538088729422222421724826648719124660031151305022984400661371867832864685535739097891604638329074548886171948474085258096727500161948269236613343973426225008336636994586184885378142511263148994842101882731318664492027625962930946092537341442942879972715451013732260536131384217098862423980642355897260253696018520614336973495246461448820553954799867512271424082320628889007086128564325586476277754056158672648725422970738956191977916742681479672673438732899570188145781293359883630966757764741185066510101883614123173767132126253844610074793033064750164229233159814689761141267997476513105398515968024709821819959630841892118292216377846800564188703040778252399020809763797999547624890971766762319967149714500447074312792921825835193921363177245983913395254602475538710834857851158575927444206589966233237737392467218157844817013316299717233983243152419870371392817545970379301022118754192370693607932906473676998993114827206258797813695125087711832808794326688799071595914683009898265661173022230457041053896732833461530616483315690467008188844454017911647946358626411347360067030570799534901564990782581354634767865130375227497018075124411284823170271424122073330661245644486841245874235260184426692398346211499688276827218062421200360334287549380921625572813501115777473023386040581819029228998184471749817768094028573442553565096668644629209155834932484046165534464263587629255689472974634301940632030263029695022058369189096239868263984067278182931699197085652809749279410217192473432462491412755012318038641013618953810032424236795960247036268307490439147556468946047908952488485219210369599591220011910940500876459000256754958284464835110384727381933607145180291171060906220787406532869828213288784340606757888166575010944626078533689280173134291847583423454251057754632284829356712173887933299532494618224438744665627326494875865539617430008524441914281022386757367959731376979074674042363171028256702692050252432785528548198947931513882385995155052689363352800749506037863806692662034484433921155800168550700647923028052546699343644866647938865813204998484107804327379982479712622076217315893505075850020623251078583398967052153265079041482139995007230769815114428106242075643788033057981442325435613835020459287580108353148669133590084555435356084752689414080676337695020424288468233504096842597319169469564069830473256657453166627804564927741403192621370615947336385849716366386732455530251181691792752655312354117157824671276712769981734575079701990678941195018981871126695028793679744577668487563926736814637081147889949815130382096625536153156470771768675685139827245236431350264069831430013471465678211787876856344562871942255265560831176229570223064678465945682974288564378532761085927983220369401757574188510840153900179865145757729930932676447442097412403336646837756300166665437321969032038464362261292358876816706304770722315206652716014886754880357827330529871587250069104065943262708661842902183674099264708688040969559664219702494354404441127732893011988679741841451324805399452236610830227898373088145462682117685985507963786038061710282965388896760248554233568462077101094816888244573414818695721365857834804328562415981240588247830482347376403024961001454925403738799288695219101135658081706179654731923584497122324073393599583529457498277429579264785907334864110137655522219513654310863701954472162996415764572041956015090970584772550693202643462945370865361180642317855846415359274159307340998714883448152956883370561706943847024247725506658528367411950576236176235382429480524262460577744141042690717058073419384099756312005990457246236927107598049910763345063732547456376119988856155091810219284930663569738748327261533070236970450597751677636108051321954856124221396191104345553392437164723702225380890308158180254124893771640351767187405409263021788560404574956771139632169350289713182771772993644415163191933412611080802769634083638852873608469636457401049955457419515108243680913868945798195674677176962272548889855492334096788428515709594510186304617007134980213714480547794928406594798018676204457361014523662835194626709021909078302923254498702251277876392627948082388409630467078805182937282692903028900674833178823472966529170490429162789342989802896504582071385742094706100890351307428856481711669114176520337316444561641572190532636779201812607666743797137911483353678932953270828181540949798496385356135565662446747532978838270445422574338191465239625456886469713701386669197078716706903174537907022598176363257406747168160152637062257822694249669324286136321660415392897999327288168064088592609717439784603822340926102415938831920705904557392206625396604084811424162512187942564681099876372598318281770037573390642976639186049653181625162241799727842514644136227116291855666867471688919649258804592876538499974927963936027250931831621440058939018085274302690436444485966860219794881344304898672322022282320451207535457837605567607606140883857823936444471636898610618379043190934993439085825421999016518814246927931454601408485668301986022734536549466632731665364222752417209016451899980822781044431868367531544708393776770009038397077369304141132217958999674654381570496585732567527091524193063491124390092492672078979140639994934114742187873468857727761004391809648056369505493587610790454651763683917263180442099623862927891759879637413546510293397133249036102276965399212933784374499515429287607558110712571057720652536268073084457819553133418480029560355625896437095324976429403826098877610816943097236588051479143663272435106555678345364003240292034657566715902169266574140890870380639493610194026341755808395040563545316442975923942632601002010604086868672212295625829055630214489799226379669804881064875454646610511013784166055348506087696277891961646155595585197559269100466261820422884574580764903631154211111386505588936258307819543047377517745431960551398157956699091924091754414094065099292120354368053059231241769203801841703851972327544913474448449751599082535238089307556492191394135154461801407308969334122546021469822581505314097214530026931668202920272290903148215040586118607823219489509257894383962756549904304552437189588750457022204643581907975852478494240261033815768744537479453684912195046656411614476390670873868476981852299587670664465852705442661209805439309382774472265862287909930670341406476263582500668988098076764001770680817826991807567952173878642966546046543502035659704468356559436944778514606504825439918926573435553054223170136783129647771693427179050357727287555605383019529997586073253827928032359567324225938340820176931561388400411041037486257014635094362619968076994618555895628123148914158361905263458485705255524150585210152375966704674383453186449483640066470234786081319618137539893987379285264728895875143268258657038206532041799440164797594413688035916786489721889322256584484759702610812520148636964780709170490935653642106766121091163271669898934223783826077849108143674925923759930998492266416967846935948410994396338425612408663360136228701717867506624027422337756666623950560318003556063586167754518452123059069618076661446583034753073896266835101096544957748560334816831176269747020324564748356340445999837643595244042430293656994481749927861693310397018542143256497105969814709029460272959694681621787402878152693568889109728274917174585548686389444504003923020855811445917132012303749369662136084506971116173446900972653349940905845159388692147978524894909882332981918139208799596511862507106309742808833485136436094821314414255558678672591833276065658111307909906922392680932355694802918259981254985759080144801189718615666566661659687353434502776860768629568220625933866330272729466661298928916079640645439899778787176181105018805954256546723189991883513829859296024078991428146237597956493462873669177155511386454620368706645549099349449362033608908098751012222488845107968911575053583453124656549045491187414157230366839897616537048111753464384294329512741831567433765606330877118723066530437439366556588541186719160658055872427707131730407931992946567665250782042434147004990997603269370911193362155225698927897635695756713163431792948526593860859521122740276671082038930363565122943492716091243618322503845780943292319424509768483118279972164454568186619701824608990361127046320600964941549097320121732033926998990582983506572303662944744659271107327984264703553345010214167127856737864154746229712244445280989471119061124362759081302829332136943263269687018519216026787983410320546245323684326975155892055216532040073465320437566467151525279487630734445259122866198692215326672825264871962878280904390910761192642914795649980747976700552922724412175391222924481528751930691390224921812093333099333198256941141452053435900686821107135885398237988173586927545928579240390685554272760178201584883559962381778976847855551610795192573649964144121195640521551446501564346524751977879620208601566723306163320456699127247676324316052639262754495382435218163494453310643182060696887443578297623700939751059019553722335997910943751006970772758843784044466416093158535171917153440303284878585289122170437946934828595773005444397559780435840053077891824284393784952948539500734328510027557493705386241691714454796611773462519485382520774492035426890591707772554615154592861220556588911124576164638356228013429817866558951565494641692775408306857013677051077484933462794743393538925835908126757070152441710694779255741560070689927092127294850414583793137405478283492270537141356763345824787597514026724244799789687407748141353328854938691674624679356465800892425834150940686181363462934393608920570509446279315530361615694710037278604483058425118467407240657096535737468526502655199813730633040503138308719126239833277188345155020140536428332846408900492331184000929235469085420862224086747184152082208282203965988071571215647402440330582307744844821661199248659045379721559382475944867896034155038661597771417535036584111701953184505753887279701014733360844806271775304248895421007164756923245574181166176323284653677507295198469350560000191353574186786725501385617924283429149998959405032365284638375960354735213008415864965583886718256185687220565987926439611029129265700451356218521510034520659368434963625129893951723449104016086012644409462468819936153336661664384921258142643373855166411128388747528712930929155704741062036892047658723372021706901667298592082486787096057335339136647102285840969242195066138400868994200630134784932953880363560174971686382848345191262714562230970870048449884931798380639385294651090000835173001587340138809132897479778004977827444277293613424456884555252119997915008161707690743939955514161763662731933298271755970883074525856302706776157073548985567584793797637668069456688249424285923149020354450644720435369150181936960440631778420624891790747363535151073419102808066931936294326461825558853174099888643872997483659998803821946811160825912316938930861153141851788626447845230506363468093046823951157721260556142307589232747987138144135706935638749178797864753212239748598316038918277445930623127284937769476860525650960036920181371341245203286874403352628126848276379223701633371468031996916345800986025835385279812336298101724523554265411096888848814596859663487208595111205875231341774796320084152183350613980964869493097986951057060504207870674710791861025857065255390734433854486288818491688236454869441696277285097928643468408333342841184524341012823187530621521682615693096845937817460655201681192664029601669462516271110591607490669428757946622899301383739416060922315128190388470617444539384244902348591818597614535441076859984320018555357472194453807141863834264523558851573788404506335512156107568404819630345203583295462214372420475029882502301501394789977926873723212670301686769275881327962464486535693050892961661689072268847847337552641358897852047458766887614908414928073588146126265264000632941511701247040166220855635942922477114353669751539100393590762139637091278617468869694431052488022332764260706781332536493043797992932476035859938721781748485889018052953299665134382658812430179246524442646624812326622073696186477554425895403420361330310687604040958666677638874119545463707027172529910296581732044477559022519397942174004724046407120464533831204609169802421474216066791447957539890912412000092973074153379994288214835815486806074747389246964728784914533058068941402278263276092207490882325620769862597483483021837119616379031891881289744332470654165073406060285453149995412560993253233900957197690334542592844048149387336314623786784920889687315993426580632210734254076494422199637839389605881313893534451555302139763307167162898414434922042688424153396325249205238555437079805051858989782159551746020978737095277248408485767636361685796341756721938628585443903329124425863921168597921785749253696834789823521447743364994996852129806880297268015437520525361243102583341166988143824976455107677043360249024686993529287906719420755232439674448271017556847562773444717146745682646098877460269832752255653461889669380425626134547924904929012765674045202030833048265194715558098427312078639604492642461572846346887775308396855846667840432645071068653487580725291058214893201287414374883840342798421069498418543343626920892160035912393887208209013232301436593240802589994282313648369512374946011801471828469240576996126783926408855069155715621908764462614644475846508280443432846182669696038046989350465404914476588927111665985273179387310535708218143393950992311290275899728518644615560954331755593224551918603283686032137362346928970291395032850335899023851939539988123679875410342542348722209662357181361946841242634823454958268695631344591693894653454336933293277999805338830714289475778954270123208835653511834925628813261321745586728761695312436086388166623076905365455168620225103169826003337015912161978664475186978015353522450307698544095506504257798078170605042837813619480927499533394450821163977208524575526964183484784457337970995574507800316491099473937450832402636632011622047377244853674091054449119963698343821405830993289762820604554903456821744412792841554831276405527468585635848900959955703381375772488401849629578098850256698605368757630559109265421288496380895117497446012273504446534912647865314194523658801421301816739652520531708778345665641693962531249687061980030713137074440418439815534202138669185027050921810029466154738787667389397454384154450638951310206317240638830884115589925739979254915409409850060839183956875134649646959810463458334948868169255802079349435596290700914952489644259615553388552048383573806762383556148222660424082717749969906303161098533546887547130598085755964315006634773831542076711255950463793239120866002818139090005276475818041170653687679510391272663893828701301013972751086045820770096871555669669429274609142624854623960142364847357248489347844550975058732724528075614594051803145651357338222302508960087790564427807033053265195200000493391213606187219520439094347439514614513727342883833357917277238025642000445145490166557698510914352690866155955831606843642582446937512795133005345084045791435051007908902346620820390400936319075256937211504850416269244703723052466884049682994960278391759728971925561315869079541633987925760433329683086473456723806331885415494224081386376618111738995192789949430842822192769291175134782249662295503444088844884173228877345988195826608727443511433282195251953696483104504717434463640229441232648819020739254974992566968799287006337325857201582537939421235300194199752562148037019464045649975868527126501460425828040772383649634481376146886010244648648542362898475769470970926503251881855202456062650096335076131586412177232534134962102841731010940854939630563197206026543263873173528018435101945721716468159304104764578690196186358222067111813836123662019290579626912991625964680541196057450820301478683663443612618383330299706501777326519988519546592525182195835382658582506960827128958585291554235854415818271543859658238345251547765141194703065107737067105768906522415757264627971164805990295154525596898450134866736774543128081984100787014196753399063587029855763039961712122851713831280409926471702776168806137264080489164150215769422569326782062541506473772141290057204552406484399459012357913779965864073547676249942519763096825215711739034396574433795783266962579508910534067407878390919895531917363132553045440786743908811194851615467444969583928828371871136534174155581623585673518457399045944802702843233120029005594176082744298732245090134430121522233918910444524416135074531678940190676409471660235296360634545871235262136706711216740230867158737933820805970930024405015385477200041624730925700561441119429150555004897429001619417585327331855849838917131945001241426563966011335203586016983032867085644982994686942244878827461734115113923234113251946766748320803360069387296617210890695117218630699082080803144680193552588697840216828003162885896720561214029062206325693481448670695289905377485265219108465426164334866661050574503344713983169282426565161466489029393859535750813958523804919466466546851949582873148501504530160091052979199226704201623972581914534575389540189427355495430525049991985402668619588746567691050212216396112561080368040043819783508533417370333381950435003287853372272884473365376269507670765946105676279676004551023743215218146515559120015892730197549735681012801676043496628673779134872786247603716874048772851816593810782570085228536483980205113302607810767671957586020422416487578949832809554956150985799301255597829248407392591085371050982711672880591772146495818861126357789898662442333104710946604801789682092199496583279091438354181008106622172737106463561163011386712440697060903574815418688124072959678680591640600966695940384817249566825357427473517655743383836275807355500868401967558104787479468429555602831713399120142611816527098157106938861156608971224594215867509052526037833942353214925463708874539445065898957945683367112462335936224692609972122553730101850014212310597872140996893869506405463092600113317499934587986388381480988177146955318117163024139617321757024946185188667128630475759735780610997811562925649772007224460023931694024068500284649891759115973387018559475735228520071534313456758711776211877796426155435978414353525581369869712328807344329051532836649401602720860823307913631247044526947027696886023901954762816557191307594818424181176411547465896000174559745353716656519449777811500830335060514232556326712894139732524730776224798389787220692748681285982444050630305092966893050928050395146283172796058138634385849440203450613751917278888397992939068007257534352287643063999089855128179581272522602573703113102194477243468795339169794315707673689621620788429807148044156645012181896001623008790188699322033952866949049107154964464294102705080519862961065411043310056029998871514174972056639977619502846293129724505674222430249668655954404918725681890694752258458135660267372821243881950893766962684477695377665183408020194868334905029643922259537726516982542697198344200615982927147953354200782580385093537032264912905334844487281774430852699989371226750881656246709333334523930608687492691252021613407579999158978204394900735327865389521557429972913299802874096974179777728404153133812952267047485455377446966930778554761902254056896570078530919107690979366072074180634333987162156065509480862964289230801010644961390792113584422482886669490510620709679396853289866197115920595759371230103145293756345555998783082038808944206135408991235140880000643548718837802436772629359814624890328477429541205624722311866621853237110057767992629300753812938071665181870033827047906721818895695140044632750512269379452770247440061547585756653591870984973785048206684512628989577825497264346315989410863640414727052224261284685410191552120436102789818225020079615328125108992242558700593657170473225517484761433605699945015449683716167057004544177609507016464783236085807331001206595213067232721243814016325800318125726067794464037300913254161391660984075975058833084743397713893220451821258163787946898102761143446633546832951109808644774517320134582836469298748290374280783849828206213066084044853684042472822607173539914944437916885393760132942544046668201531272891075708056980833517594081063291122565134740251075094633976876203211268233014964807959077948859657801241282896341673333584094088267550313925341678488109981433365280783209692403826066612287345885474766880455793987861743586583898733586477106415474204502811917722099056493654176204196890193628052762397590213739071253434744835487899883049323153124044188038292377006498047645266903201279528360140993820344676897935942250077979953093066008622684190613117399596775829350182001673421296614823718313387256673136820237261637725198614904574595638321356981268543424458775587508675927089634577115965640764737885644935104105851623968496583737696024784689039631539177384760379439218852555330088558636574340769759094573834879122526375759663062141471152773243905084810726878601685272119685115414325592512298355898214624933553618718869123897103800835603729761881729096513327797361687618121536064517131282395145996406728041142725385320180914876859446312639588909210985449806092630249927674388758833646058197495708177924245942927254165376088519175689946048820707088074439063811918311627503876426541549797103298160949907523314501178590828134322782051397242381519336601358094359019784226075848858814645456904146422759728514289163724528664537638247754918572847258463440450078388827627341950142091186160377568363487372692081490229739425208896111012592641995715528279159597599684088306594891143995063734819952679030503301814019178666927047977101330511519291575597997420138543559332169569475730219582491041630260800100662141843845672358896537633171951456094018719323374650165773049937183453502991181356315864019147106137255680092490725566082752495400584560236921253841354264866485040324288121692130506835475711557792498656381024559657229555910134067585922493609045809367509326565926902320306848265255984160513416153039855149893781766738088640702538417748882115592588294253097583012040309189760248861586720524735384954444067195774049703644161891882098043003785415601080258065676457178802535398360523028656294298253944648866723272769958693318097554512890820876733384322335104768355455271888311362386802967478182915377957010501466199100323987010291734419249018253061705929283383663909997981324116884417671366671965455876485617135611265675556624277657016193094411998464259751544689998965230990301461828460491297265911853545888381824392517423618200814965295512967286260725104236658617471864235027623920707782764485632813726309770272079010691645548499942848942389613425369379936848195531401738351376164628810495993247131527647481171225641563527059396838353425028871816432452730791070282393427420355460581601568547893072574554706493645099692810882616051118302343268070483133231071079569366693130703370998508400137711294598853205383410027730377654489589422866215467583794043157284405169354716411494597407869162497925191185238298410202517215448391857018079035652174773762669568187029058776082086280790525245466814556889351189978840436433731039908524142828280668946692993951504110014643752898459283867398248577546416493305894323327395216204678800584546513486177139191988014011158270996660989135422034369787526697294580355384183671107310883746653321381593028866415081328875623457237695623727194898808705620370415190890091373178977579914708398943085768052218974980161123834434939554793494619379900781605519495949259004703028739518863955916054929129220212740746994503720385271679644127426789442923048402186150830326753344020898242790623105501636863040264484943574638084040250939919672986228099816180200127549989415318517157905745589644221501100617323474890134135924197676459128174677455652538533735711630249967150547347317293140664132268352444834724569871719381643665714245489637280343834978903267882723337442598458877326613159668756492313828381384067136868681890242146633068805454794236173885348141948114987435359144304366351166340198847027243719146285655894526454310818645426266334252628453555001848114422939791887911166011426341964433244102248708083472776158385932554260310491883257407403114920945983520564837923442248194936141696305031674349621368412296732542429859902292935982494977419251532735127124878485957000522447355785362906116427911994050176712992425119493352862477691761338298610508335162367132369238397124116023742337752409583278664192894788281269053462063530025519857771277458893716849968128609656402806141572343911324097476489675523028346964576654055752290601842336838894335711007310207737590232423958508481671130322762361453754748894118944539912151819670977204147015366179298964622739280271453563147239301127556457857836622370234161907106786638317958232086355512025509680865355615264660836135513930709737057022381049381414397229256844701412234330850766243445968169620502394404010934088560779502505797367350499473283504849430063837932368783368243100354458881129568713078777105782121641245255219559559628560825929494434117806996523234309966154872393871847435862093817685723598770412059324940101947960877677185795835400622365567002332367364667842364667571558409604512936796357990020051969567002771117279533071121932064857105775124749686693083467408552580796059347529813279559304114902763575857594310599596706229582994061059129069454841894866926237014314500305744270533089126232848637968212731828640574325331609438255326100413497206017566160835002806659087410479115425000366725956609742873329455976412601033562757317153127119271112143609882335997364440670130291255718780003052831407769156484949565927817066934040360790861353966962713786966784337304544524867355499861815558241991482732623560344381016700428547787016134463397182939193477490649874643122098161931699127103340886959039916283699452029966170066977440378656171438745344590542700456813385262536209605359547926185623641614178101131133284971607259028529913784755334425499164272207196168346810369337197187852304081966727470373879507599992314956449882815802649132356594928885416578421422413522149856334241267530336588553684341515901366102607052582989272880726148052180346759293394002476771674241557737394760184814958655693928925389322254138005992750084496546081109011906596924974338849247047594348680579896587650984652523217720038744025406993327628332799898744362717252137546192236818276706187368138392902388452996574750246853686597271990852613962547948440061964877030518865281911839150375531919878568083823717639477941860706160240671367200148296431994059409024557513868108020457312130288191660048160975037199355211365679968194606759629827127065403103569652325662195958928125398218755255731295202930870684368763229473268114035535142772425853157923009098201137213430704396069177694200473691071615008396253275987379620679239492998316984606389055298921317094125405647621411005707276862640237609019606650177341732445380278395054229395898184009682392718429248866047967554115738987370181665438688143619303514459393836956364280262586363666646444789741197412674076227387620188300623231627599587635643949161037083591828111346451270444341556272887229525116340860371550232366297669217358007588122929081570832573495433851506426568123123788402657214615442047952281670911728545966312843584693849399576587003542463132470654778461577703986196542957865680838050242331317551532096848382101458039300949752802980499263105636553175372769034447560086854723426755227249460395701519110622039757481307734230994263334024153709571775620289017851576329465896168256097994248230095801108824460613204108891389046778070946824722400438979105134823017233885854783205294531505923873565460384909356421718350419811973969324937797321349202588986161064919806575004198982726127162290426462202529368164964513303017858823739166508795553294571843343552657280741244368932742252963193489590921218173473502009312171189472817499606690398867843342900627841324848842847485493316324722582810153176472610576065953738928055601833292364433269094571149960971404911353324938043844694319057739482534911060132110814929059853758940485298292335647557041225418829836433001729906179579928518659378238191669239300556919901879577853734593415163331582881595324114583773068581825822781495544578257233051582398439412145173406023392679568279202659010098100379379353049258386192266294589856976149127776458566186137528381101420656228056287441947137414119966017303072203853292482249121238527702779508187358490725286319187477612389195565819650792912766574581088701794693154371414062766260459784209728142908146641934679994121371819298592609059568243396154094353377940009925062445255574291459570797846121021891580235780968623345906950760876439717366642311839733718140766057660743473960402565652976146167231500586253263925189139965682404084007487118854863403358606872426497760771826753675409307665923927692914536562211913556782095414863249497557516750398747033253341878873611750425810547624201143343612374079079115862911668296359276762020428632365706028575171349019556405294986108395918817354130354553913721530422092858354968174879705254619927542476867368357790891376605916551857251201754872931723632295616852945091099414979308994588893074885105168842688049747716847676809654377035903431218679029461235711012609058835198869194464531449413825984118830184597552002589066247407544788452706059457275585798571996184543206173972312793687140985246210705885198352377477694610935490672301759333506115552805494042414192702194382647466797003560371836541280742818069448654339420852189313278000066592125888383273990697064395386636031505582568892785395450044550056683644205042637009820643991828652393026007126227457671148260659794324356160905485057117211223483135093371340403605510209814059848626847487168365005562010646721264947719487758656845291394981517038445170205504245576524084005458132362084144912996939362303079916601914174007481519613433176598486861787431868110672536897957428057822398572320219916298539414942739066078881595951103045219686128127726243686716476979059982145367699051499393073466333256780883264583502548767506781724964063958468090299857763713032923301294944324834421755834814836414033447294259188973067765996978508567512453965756955047498315854863079929597520548595080309499662090733753325804457604166064594552548846634854588669010364624032859793843615308890838949609921850323585833674819877394245739102183221368952478826692718625377768084508553574073886321082019477455759299976330946036604047612439614007450040990196998308407456600786866988185484912483156214837474493233544880950244254451489279796134595668717125231373778975470169964558041103015626135166052713494967554994363381909290538754589678050304918700306852957911880772301417117958327906634171031331483954159200235048390831721901195735657199401618881775152211154060917161142641537888630429891177937535987438620136604673383578028630591987538903918301595500772689817053136949518996908420865695728621507360317331798116247451747500844614260576519231756602632953373548641979913501208797686627175850576056749858121627413569432338125473165385057639794399706524875454090502107038168388319353946870392451219597653714388360180121098873098940077831757909954750429372709497228952701913365387535129243470716553256750567583381072228720149236427852638153326121745204557141341133150514930824708839933153352701264870195905759289263416818906392927649843037926319504801273369542876853788215862577245204593136396350483077695354798817654186845307267797708042947419875717317121994533478375073981999929861975885761060927726684204208503574166409143421927478006012459628049498388566763745509547599779126386591218762008749946644003092971351065039137610606079560809971557248920386591487835580344195487879174974387641729988876945345009366033315443582083047008923189640052822037862367542272980823293020924710551531135217659144139882743619831406227937699400929684736974141032174097959428109726866654826924445697305679025980075136433894304534170486234352369355603025906665805502364129560167987048825206048346802818297056667191130872530535213358489869788124234695884932940730537706794217987142878807061996146159579312221060907685151523851394629312996152993772884931920752674898921758604032074842585749439598868493645634964819871972938644657695374190899269243107917305733802056070412290977246940095670398335864886083700220219673082654089298490996714891124210374430876374386120611854533042923105001747055059523059307484972821522073420310821251449699234988609525660805677559553914336976855239730429810170833464502936704504072836553941108655716604010708048433261882913655805122663096034741667820144640087579597697945253399748078747519147223122360436618717497894336043553834610032946653049435209062244385288826155770367708971631132583599454066354023614753061586835122604425351832822611471815146418283692850434224773924704244158473868374818117991710787458286787011955051757770668544660572128521898106793697975596614427135706283876932854887577196921689713103150545933560572948796226350781460824777895640049104056351333058933704652412436988493462289610460028032047775874258546486658920309863163857201341754580607919600568116848080644539382373934190172497704837849418961386887226204360668713088889517512162763561524626242883743086829803113404380598111140492180419228261751762408308429372759374479628347869149421340170544612356457554657627232269306745126154625350182067952372703352216394235987564833623454047887806651374123174873877797389084256638851823418247494793002612947346879932377055500276413598984148206458834760956563476308310568323098987300095289567068296721945209955755103423227892913186553305986937193331555702156445459582162869826028054232701777798256006550016963489559995214932345336524799142817184154107923989101742157024029622260767617192251375434322451738161079424251018743598755928203498030116846378345166796457730836011907821802502464447273359362363001651989402862123951256975229875295449722586043038004647191650852234320447362977600195313052383033618505976664256790605657078548082947451631822306752797146438170141292496101690446571151096821448344371222557939028060214580453700387575558138034576693081114881887703660198551849976642986693417368119778692359555476045887573578937721882767611724978919401766262918181435382331788521427907398273412235205727972302053369096316349625703029120467092729035500204381295740332167587531344771594363257665522522639933995898025414483549720294374773136527880697310061103792256525007391776745150382482926145841072380430189790177844860265800012090165679201650642093711910061143637632205811937568005663679175141024011135810879629824258001486957315948233186717250478081068831332454559586464254168463255837275138640406993726427017014427649624759616270819640326033066724976177103843813152892784860936026347770592088682584830293133943500070010434020084530497812317294481904516778479115343261874453478621941354674986729036263297111422884352377069110638291389069887543556385857115338109047849336200234298583156292935299371957850788355944305778132271090324543703971584121350264539498417471294849388621980460295443409074458928115741074997857272953581596949956944238745359947972656441029406913253440894008728667714670068183039229239173449559802929690831109733390325164181694975754260217784682006918269979575929297202059555679992201430108060437072861844574492199159460701956081688123111743890065058537028198871971874135780522881319358387332298791344607846573799789847956747029761211027594297334181389782131657493370626744939011372843364198396278937808533273861565716315306749361574178739160675585570571345924628640457610530103584896115792295766503586321159476483355966580597858567808975358992481041709255549864160645064899404929171765919032159882490722882340765801766609908461737460524284095336588864805432046731266837971750527287662981377913039087499900860944710526675600975136890950120653669197143545379290393627239201816019609992540909381053115920498456792431790161486046035846850954023331129524749610374604544400002354426667118240389161854514142463979988333770977823972113219193193360658565111714675858986521603535180532419393161937552479257276986233685626489721823933476066682798592313186873675340240179595200505064917024970140834627646426676904881058667127420807243044136460399823084999727648740433246688366079242020478345063943228446549794915891314499673116032611117547984474401849244975301094130243092999063778428895741460941002078469759232191806182911552744948365648417782445682772864693391523775566795986766904041399333184803861202637385819459115195370637759664860557766789587963736023772917708392782208836302764135245332658376281401841156384339521778534896555029904072224735415920673714650319456833855835469478278035353411981156482986044137446769593862347893704760072112193862639683593375456729986009099416181253344994863317257812484477418403365310312482938388091450456122971321636290448388495257194916781797812141005896431726227577380661929554189677214513778809373898430225466430229344115088896068860423593530798092823742810353345980513453658316158542868427982624602481103573357826582743494035695588685733216394204692314661898490307970091039887554307000045122072372516671099320560077241086404567571635968359439440071513930619477072612454485486244310296317136374698622682509397933301218560293121446772208272038766327406711944158746864778379967156771884384549335274505894529540063288389012769230148826159859287212140387578925018311581709983146017639758561391499651612817225252729384837770954025659242249087338784884524959579887803186906107726283447580042524633517410681042295070576234734176986676815055889860423430198428157714796555895369504022357231197115206853966262630590449577478273349046555382007652186908024975050059202575737895134674930963433196568817903128881457321465483866215265490419306676077241220144771295510453083228160184803523794367052756893292470664237143614121942887334147933731930435958468297678915024381682467172168782636440251562122006017657652107592896735688916574413578082051799171721803149561693507447334045786197413183685424997701372168286331187327275493688773490338621497378172406333621165046349138591901725057186298440685086974819613739638061601312075517394176103101856712772744596057149421807930517744599426307426772437723012481904326471821952082477734075011564197410266027234738591429916214321864743740623524742685795405312425941336381255618095072847359284477738452428325014514616680810857462203422387611013359863515156767611986327252355631195403497633917141164131025470771377408349492836242000745135614653396564645446301188221836096440228989449844897555874959295993403715818204861302680651893774861897968190917579952228565685798602379940127562229316793556407351003733093366728435166874392689623830444444097927092735931107600746832514486010650056350684814736866702427271288998147530249518197466073163728584341873645018918343174748583783044439064496657752035445188466294556965372304992733528057204734215889933976735005686590575567325731516991301815825061710369221925763442564010209916874994954098050111502947513161761034147686978557546174926584134776963904073619517072040803646653710531651648733494000442854932505915900781516215695613404298041677217221546953936268502705759045733564133301782945141851647575606810221121127955284072456242768811280226831303533091776251413149897428311688720117867823654370751313557968725071748607400755266974684899997479464380251722440238616816235361365632113823893827023695024711761380326922557882966802419276939411042369093583171946644391968962848851244938125833488604263402210089859829958943134856874086686577356351730696360082221343163069034569154545358412951718218765215607664384625881622852905809020142929990576637605435676267584106726344201125462101605129045949408093708530815723293057332742554193886392687621605269703280099786473737944347030930298658978288268228182473254451514228535111778220136384334707863255399300548567220994697881807027096588142691370164429975405055399221553967382820762879413844319454753487047320997809388857663194581566950744156112852527398158609003376089452141077066148271125983541880034768208993080041208937900208997467852512862938905539120523016919760792211040770299199572676752061462107937987390534634103958521067392821698068125696383265858421580168789258424202025467834098554772725607059119762283538920607922298877608727000349098004188864502542800881587978437468486343644214360414714960889952811921036068577950103843239280968254918332033506794635686960250212507405544368218381373231244211263153411873649905740530685532952566661651688169538029270346289458277277986079676217743696292234088391895446093892607453606558085713733775622614896013438263914851858835536976464902180558714206445779108755048805855305102429879747130056386167718562053250689748705442190677336747927834188278641883166133620633064634340529541013671451086912543348678939206045181593505767673286730538569621341472323589515160140798978523926824206610349858588419337657914791714888680604330582613767659773365082470559922720546234407997466564599264109047911590245167024017486308136933037003594373210204547885499292259246198395077139576159958277018031216681967936926357535438575113324694657410411441513924790911930055571563285722169042250083327395001036648211555356057866684437603879361207622772603312295348108561892943831585679437417556581596286198699685618591344588724345029316432185527598433535397500972780220443359910780678772203549254145698441290573187634335133512211935645604480235028904168970257076115394913961563287779436901057464559727576958212224921416113215845421198115494889019570260169491924544639279001310289683669249513321453064137756936502128038449802687886026233655472826007308855128754851812900947183898591433314861489930332679585258251583283145497185874595480265057072387307433567430306336742189925012303165196822569542594127283701765146763725143793043925038779186838341231215373842806475016164820732584529108674311152328739005587074110584967269329028264671644658778104176391905383835982430155573721631907827236861738439696635655288553637649289219618586423256844188772812872959916017805935845772246558828712057393386956000032393801891672848595661690804189956228894607678137130390013228214541857669822449771641050506132407492048646573399811683635913515895348540211691303320466400194010561753127891144245148004156984733692004113326822881748145847921045470654136225598688242390022806875406443433639538108015469431119326974087659110274709195531339858107633088285912920829359131264924070623146173767077652101227477857937876258596077736109582302324403543522600469125629545011442126571690913645858453047922317234853991304305860894188663685928387042348875052612388509992187801081857884059176038654548274759257119315127579958787218085525101140726129064620923280810349726420922076456437498311344252436281772735118812347203889935776189207751513750888197514838463053302651777741812516410060016383589487904236124953827572255182134453930492531249169006727478680047094965729776748659539715409418380816592236046175820326329018348115231433379615291153299161903301054381174872449381704126581696908367180170044392271242751881220486359630927581575176136574411756545430581028925968941533410685900335790696882754679601754588502775279134320621998281623223547661632377457674816725406225580967252527217082743280284973570881974257865252660727689813479608494336190587648359082669697267310042474601363175782858055074213551947682463514536169983685628412012332542559896780849898451181773337037190804034657038770828061956900695591501464101053184897849394406069577755516770145811650285421231367408678573124782227223659880042092940887971352167697116001816256075019233835482554648827719062284955428373203755752029088625125689723546166922407039099868095658602388212327087622707779559690792156176934409624782033705910157748044008076889394138562072397123767654946960344810092985299154528171923487411557910966819994793364899262537850165399401786558440618488169690843544106552567801040522551520728923578072691941615246395576321666191655926563020709010006452123970697786114483552129770127443163245572876259642368868680502685929056003127785538380598279695792304471922021008580915139539758616992973104436406692320315399133157137687823464435024672876741377966708484778554467558072767584349076922082233698590883399107783692988790756593559513004442187571485010384615887220231646180652624882493132627628238370249869133724890565459504904838744694063741820835461409812910046403478616316884363591495633469851432179044344169256281261623247020384404383601528370777042091799269468038474914267394857237721238171527204279969287789191171321310789249280467494530764371145705344264203671474849960875907177760555175387149324777224596105891476501915073193474192417771060909891827602267925478084277497227035592271340747277320705447178076667521680910851454513386530880849403622231117563504970363690336356828699848482812758356986228991113809493114695921211529457222526543191780253469450336340275575465124899300048808005080102556900773197066718936595167260476862426132216639581778892281151680360625139611926058957631338632763371008245499056052940160540387623874856488704190810710164802635341675348053478696820484481024582174843918691144329692180576235213013596716560392570431597597794034427411752373656867032998347831206937330376180382006903174698705445835979305484363624607909551945286563834061757970840742035901888809238973733461133789987122807811856079332489897342930220233955469985591613055481937931790418974309623685848475161902643870514941302901659761359849710511302739831135045326686237057541882072169295514886723669955970837401738370898356848802653038002630998614028041829509417750230723956362772421995190534262679304932395115724876146295789681757544951378289981032122540172322285381921096562425348506633673317561475672542324724556243747108211754120722478072472904112594522812422449067562152049981210590510007036867922262718571321309783855076299605608942631068079162938884253846257508505964418475876306613216007661025962314058590228477152623688703165863452448831589255155092783275797747748530188921251774942279150863902513036131540198383332353309372923375087578364773223079063693503188063844669300496735432591367146926444058072744965822093915370892404243675625434098304126838842048372196135762539429458818331079764912768538870624721891333952371525011241236582274563874498569110432809884891043031607464582647549405361378478507704467318475610224558917573694846007853427982544415148086625946850224026743229578354156506462284480444085170891334679429173263928825095325120737259639170878394866830414141429682969483422196625115733619452167097558669328212127550034004757879049895750886999801760658570521331965257840849026765468137275121236104859202280789381595718528545621010871864231430907317324575930256938539971222065732017081898899219490112154107569534527109780046103392034874651082947089974851820674196945945497549793648597328394766060585706489711539969817885243061751117584101787974188077931481974099923998955703214626850833352453382201688303356664567963108968052405087592464398501764677433604179079360442504795104974675219763857083797576878440504854998191292716266827843277235452972767702896086207819700249633584094653594398938835890032267865829711131567829062629298516261400902970511986059987076785557329735951452995098569237972407466095076806968452562248776758988151260777341474091581225207815682821451327024932434219056965452365153010311007542751768174481683773526447501134227140124010596405394835963470283111687594734330526240335375043196026087641025587243754811474693640552383268405287854104946757630657908311673831519959789242921851403754612337083440200835856340505730501805329772256803256666922222412442455972575827482017580904429551909323906404720723726295784977422437482153757728570859631042090450952708029228077813247145835023100192739715809221318897172705473252808757298397579815803012778201968562706367253711233985488539181947072199331568624119788889996645395831190103842059161977286895245069929070345851072433672729234099248596714076079447622557685723837602634256662966228256380493395953660753109368059192976884778974696361525833655522857473615420791525553589783072631994612216429136775860090830228203513543854427259685191593693831541551102582108200858359688482838978886306767415580884996278395351099756641015547205618784565130267684570965915196083220574990410414288376143410067802544194060100605317535432271361188481107720769502816318005388783703990958245220336070443567564574862916822850811325025326513163275600340989432743704680123857655995142827981048405220903297653561527995846551289754512934208314934066117906979285725206652975234771921212768458098793649804760354782530537737306083077166168529585741986766381750987274431939742479661879128642007536046335905968880244464867775837057906178841720314045370333467058315817412704745470859907441550191737110396183640114218997509320684533430728292357704509369407881511659197837753244782198550438429824830716673020571669209353931815798102813763531922192668613234800781295730632743099920358216313827628482179288540331552757385374834434400730736045898808829702945251275119116281859601813268137674469492296626222881720811672095284554662271201294932599157473427874102071552342089431993412813013483514173331838204718600276850276276106924443633641150959717406428326675461862785641811084411814067372656402945948893573695726629755105601149669269349204814250001797780242159853974021698958088594506905300701961384123265694078025367256436659178391543837571696971166976833094493821321006209022299123551563228398628273400381815119633379788214428586411883267061392444678943609647759371509695349708796759470473769451386102205598961370935797896907160133284267155524766044355887520355407633358847332013598448848077475411506165353094218091713293353677747149165343013063589133976068465858771357180259859189817366817830293350025628769618672088373421521079665398571776338439475225292701671288914750585455548687865975800310796804765493427861232831665353667547134525662787429114526759755385420729796470872028793230458565719092242367009015739732166973646039909800433425432990439639011303141855279165984242319007284117703681248119787214333836947778514290219192488444484795507413300158460769518514381289455474663813607498342296146365452729672410073956870013575917341058474787301069669570917614337144576572034565627927129576465383061031371055644716320906439072230004661522387522597919621181661935460857194141044962280009995402047733547721421255444641348808515339301764995680859635381292631254302212941273013673565220466435108226878484844669649112233295670663752189068654704347206537703503927334125667935586263616863780075530517845529200536746127259905278067368985419250676469326882869015318617054443801092378159992934496024753384546528527061093774360198701473715038952692463364712242900278224601833410259455225624330177286834317826801028478828784260246789621334535816661443526549338611582846132391290945034671602361031263894200724117186901712478479400551097182496840480358871972223839755280318293062358859893060536649318107554307440692058869537993153942686479581762959683342784244608258857565403155014508071008286475746740392993465397945052490739156607713531271010270557890268988714526381701343811298152293622107214828084932342626024035812530436939915595989238446796651579892130636659715733271388930966177811158156360132180152237935397075201299530611962216858406347730602937118556323908740521007943596443727656381074409935782552125468713963209386697414517591892402426231194782507614299984645005099676932307637443230956501311760331179911047634574863236140031910935448016583654916221042140418261796482930689288409387945105642979924071532262955168960563124689731888623451051482821223196887532985506841532378292317215480014803471289078254627556441723658604116477258190942887389412243539229188493018146993340572252987604857116599177998640454623965695378547147392522003237485247193588264197327684333339803170430692431145850869419850711053336803184691503301797372150660255402353124149535443679769384831549823150242459069329965529337015243683835237826624812072700064954731053425247250412805709054678796655165506963412847730967247078525145738923116568614012772997745307369687782176686515775796616272550128263525176944333439503581327372606626290080185529818366982262826573077088004714727698241482596926218275808831409480416509732585753867903402808314757735194546665066237302580079358435300085310107884280280286886962029475013681491178086355469571732382630976961514023054084026858799527677374856683282655722332275294373795021149909322304174087922776776269682210659690122777757495895018129451650490188939797517219910258634649273327367821648220462472680250925853947724348072850592306296056579258225318682186191028843428999414667642635998364331890258536528635444042601572641265576905844482118982124639987009173869300456292756764667009955175498670144575816731644160626563918847886355243974595073169017956362824570952952235765140253208306318857478047595350825205829490848393250764914472429586939411050865197244604290979449324726316032080225418297766269591877616369492797728683986751569382090819694792569617722716683040864184000996328918987391528125543871949699231742373800708588964183734665276705643927657491188531701821668123684205998385990808448351618541241902421412777337974225439774103682490668536399351179745190419851803713763280287630906286556235129209963677013409430560630606720205575033021435493241123293636478696780634336201468848125115798624953319232196789158134353131663120781053273342124244984834699419997339080071978296146745706026504211998979322154027557636423865168917098343050124529061415981116411346528043239097700507621499449189527377779292417357629754629950256101721283493284332373382166814922322281616080717826571638317816397595164545725273196844752469597557469961204708142945121806436490457687064082941883646646379178688746217936526001709032325996225611652440088623963646558080743874192388027983932283922921388000878372299232900256382458792595085502495240058101964934627374078886778757699940515762951158569284431289453577590762833895817660561998031896504663291586711329699255302118047624533494962847528458095074083691761494090716225839134195401937219744997200887745810413839437849355393539616285944320275394531733817548363820123007849283668541296279559542961080009256616410078346857961228853591829414381842475916979085318943053577037769023508819886553447343699886738133181292345753414609065950588334889286629087215220523512769911770109604380613066280391731342386953733449860768062046645234430869369178308645279732396756282007966347892239819169349589456435647462546349210144208128424949956805218576125941588322961575690917345780441510898301868222328484862213150265104992438561921556934393714292465152382131516329189183640882338821411570775288459808783027165861321734564658929049872382529536651751765413802783131772301766202951740770161156854155529660777515228836822401946436772710663015895770533562991925008030096343855920521352369344214075687174017513686515171229052008668751864519381542581241100346935034566208611143240412614811675703437360489413212141062876366252600757399533118648485747218829457819123784594792592260165373146072366790728784640165053616451512128270319954333497509336568212684301729142836569728029031866521975715707184205673068516623166971254923952401611886864551189992220176523859917537727873441121195869411470981989895821870078553512322856654557807585625189642337122208999711179177167859448656680490731219383520433897828137609293961127857174927403325814241721758658618697907716728287315699599972233841948641111965978465766143677310918515283838303014708569369359764750379967795001374328957578497572864588612353186580051591251354512108534801113254243304459519073516154403919447773067862881573578875626912615575543347304802405869517323611068670536385044975283485664422314243083791737452444601781151652803053303658784294198252401816743215043041735132126920816072258081174298159789680376996916424630825038655157183785710684803260564177808276438710524623781981103661592391301329733946313480689461369116982863713236554771975358566956415316075957804225677502569558904621112261223625929688073425217561164649779055283255002250197335392569406264916150368992944239027908721311794253542614624582233741583216084774957556811274253661925767984368391857939727877154332159992848226967683726835053934763753676151628005732962422550653571859686635901000288562146864859593395334718835356422788656039286653189047737217335171683193106240065024904701398004747193388921964976569152484764556767281077114825535285807782631288980193250734451557898228831825454701115900044114812833731313813499914666132382078212354712368996232345542483258503852449095342216161947211170567439654342520874790217750884783444523794895729536659848126498757943658572724570627325696727803907277772447157480161820260677463324993548056629394081769284045469288660898787874233898925090116039008065356371570221321762199601748292776673762089770388989906856514176748006840913488307601377212284448348752607514949536835590129401819559447144880526839520399213276819872847018553850549189462824472994965990317822198435622371325679353065950829271055553422879164496397811407084615667234974773370884750601802119354769699104420820187664729190956892783390415683592829831416762040263283270073267242346337359538482220275607669125392145551333696802117961170692703313775005237232295452261324687818621188106110279748557467739037235903706110590440320672448908449256358630232684903372911773791679812445274418607536602381160789598365197452541852319901202277482614466855309668280483665200715722577734013816206583694695525292079423583813361567382930270199773887412769628472237499521433948557271102363780534563013810551460441302336269715081784385480556049753067505133479047823255163332892428285504415320075485709040995093367970078511794527396572730485053872851860809282523612100851141240486882766737299511371507548451964862658620157685904793450222345187046122467327655346404913715901527769340703688930912752492336198264434351672883119711876109294037169538785673761605234108064220191120324030267136036301617036884532520618302577592228297706686165985365769160629085859735386842543891847052173650855638199224484044340736840881218702498847134316622339054755477670752702293928874635239937090327855318323610569327306429627620728422194811478207107656068559197717815038760347675625716476289217398932017886302253251188857780955269035446081939968779307768308366975240208346759246367417630999260539413985083464367378370271657389143937549804507103975947244988970805861782533791292346962579253285220377033337677969991640754616855545278539866081376248243901854130826675899241202271948568428636303269090306671701079271539290912457216237892952753388274904894273404932706438100970218937636842514191877085431206283100759932551840497788081329285068064701247990992670364948273883435353090804588905498089612368851545882815643795891946388829223566650749718351963770299324888974305206173829326736502535670450395740256448062679496217184490901300452419465079503711052929564331299213911958336977472144571954616915994048887056901606041323806688274380378138598519345174439893381887525353648141190658824229353385033947754975466626786188620019031952061534210742549178933950177888567241566192796392384969060927628648925866878250412337365551478211738265130807493769252607420417870415106161332168525440022865795976474209716257884362418992772304196444153733004585607635794695900041903256731047592092163808616113662722218990186605569363748950216991694880888746537224899617320340745750380819546430936109244227746679031265578103911791562920072255830458986252609569399331094717722619843910016469675580933070275580740794089518312505083635981296293194955326438879376672043360441203303497000696175517163959898896998768828072414752881735113508129446784150887340989607885605638180265718025843604796282123077188818068360352143807372654107044637940526611845565511671037533264964236338641840851082203404075070702729050814779350238287448070529209914964670603998118041019724078091994582278019705275923575224093435596658553779386486192655200346895344272614373331250321625813223256845218082137996942771520927731619800871498602869341823341767845054483472216853947001718874670373633970187530567492905417745115584326336487642013582423372544734127877101608364963656593441407548643640961704411370879757353994477580897521525637339397962065205309769502430110374816675957090948401491121728239349575827354601138251320906725459700103744935195521774912283252009414124439627065259637899880746970165382944834971185759527371962778134959888731571956282995115059409483920839517878417510626127210496934078968384879273274990037822532288779970224505677717745454680208187347971601868529544372064819756592965869411095479041998190444347255816197423418373960877118671895616194192513610630250129073985898506953811855217881390976237835886031785965053959724827618440300707831075661286095522358653406142021219407144648634044450449121500426284825899198187330372986302363893478036279764634526316170502680865992134704627733591622097052107730145884486744337479857728984215165823768542680218380863146670585834982310030031676241049211490415531982222151198227966286832242309502676042890064866362316291157163063590021846491890591424121342373166854647515396602758040271313419616456083038095392467386503641423130542799441099383483690735291514655898986311310446340539028545999877939026088680506687404941624929795692747271887590642490757140046674842967481479271181507317387344546223698947577729001477027639226011128218833399533724178167201851651877781691005487348851235995102689602293141118876245842114180607126541386407696371238933635078860860492805094287925530518359214921141489293680117914286530127525534597032477773480241218120201193931030990963093004626943924391991773498907446459674428421423740520908578860282450497052314009770663875384304765288880294976302477529877701894516659822600503449390803957547924118105445814395914175793587140350693452416325376824717803102662057117085876852146476803668109228471534348958996913624235915311998531015259205891981466470058867130001978234166076364781376492110940071210058676917061708734422335116716286069935043318804125852631952661270524110526048726052299294071967088089675800536656218957606301629854243845835856505004834560592845296310702042066493161511959391524030821551585174900273046489200582095934214209769808185581741498834180812909832972426274834610021645453331537524531307429545908684530502665735238643387543641617970768743776191813924913030368980207500289273391549447340515954821703238362442596154752945751082614715994507063103920861273085690476148523481960494254264345960319475880334413772131085798481420336071533173670925636148426988476273505928897990502296289496038504992227951428191617521227374245555345604310700565786085890491010594067856663077101300548442290778890219056372941903829775606374020094773281854427395127606579647580982666248392154442501979963798452779969390716374121298724552591850809812673726817532253742934856424932944547532759866570402435669769575401947809963522504419571188924114302643933395230818947033576611819967997697093779357111817706164819495787436614015052787615793578062301423974064063317596688484583011115802724208323154389573003601856842631634226890917280285675456719995376358458117278672980856561931505878388654723726337602345756814248065960260210836766367436720402823964416195847225810472063608959527964044787157498810395443848686074234618517689853532178250482364873213724341455899300550618633492964562764145910075657378908965232519886624013242053965350191333875348493585756066062318952177262193996355144948737942008478817725657038844604006170035318734799068594289601282887683362660217242289605593295462080824823223963776630235649612117297649030333382892235559128584669433970381274912113557975378803651526590662115731986456455368298966239309828966504987448873343078741482631015949964401186490230989030841949111524491651785079616132506642715209560001529452167520977886439602760533418860797862816733721282341896703902569978206699787536926929224035970136613035095708645126690872977491467215735011102417110355302766262670771980686326332581753738425624875311778413551469459523857458044064240643995579310134235334967394220901623987082182144514226259889930436887435770732150732675304260608742368638561096216794724078756489634333750043368157977149946242297369470248990556239014280717824282368562454114861795739201339102243920336016602050332123076646410364477465922956187227277773404343652111717643356724655717470962301370092609340913536483684597595373904486207183775700285444372908388898274316286779825847704392568110615557179752205331849110326448869391047008656376304570499155475220894984881417797490491015779960766378302328882853710478552115799315795114468796633234281291202525664094612028881290918151574156470855155070448302031342562984509966944275912427781547891334850960394477534424777614802962018830602490662070390990656443492446084326664418864100827926985344373007302750349811792422056587938721183334784621915651383223118290546031616575519390229061855874536201202644120115600572912983866924508711933351596477144914622753359208353782983652616930504296550426807873348594297618028275315232062141573323409752921175304622679369779741311552335536789260687029412006914380602623624537274673371357615793513341678732541095191261419824840894075123877030279357675347419466232174077362847673850889899906867804403358125144261562130974838775216136553379581892585160797119307119353825853801907264140384706776842815414233919107080067980726178066391862674395766309944790402363031727859558651883874534806169151006143881361327656417416086956418669037904505167930005947856748713687739757811750764332294593470190273537154492547333016758630062281322172853204080146155497006807230415758685068376506441831529585484374879254998639482842760777067262714422303323635018700633611359795648656511868182069605819620799391869902319941706110481311176452211153723850730898004865154662019255155226958112849772576941310102679901298861401248630577970851759045182547874555643669001722846263072809353170728741248531608084403274983834010673106518985923991676004043533800648642852572656946776205532427271487607498566221430161870896416285286219221730665725867263922822877438807742639625937971617386590831739581615067736275128907472593852905961824886082449871396268352736592729227284036718373072101974602308779701894480538032873649086955164050572754831266456880844575859872876703792624125292695948715933582003899757136229035250057778620938881681167351895344662580742101019504458832549007378949546850077728837567775040263338771316148756167011801654398696459609765549864348888753387591300923581139122898931403480793234459682387923498424162503150045041964684856002818708695847369592138644303470250406484039546974254614794140447120416313464886969891600808055987296624017713712080809186760807234164869917114761880602120541236138621596661068782263187129295694476041504010146235028359401567553419283656104752985840202968330022794615243495317845684980083567696774677988399513410973376476253822990460980673221239069045312747350541949358023188225537970237593687279216790992992065602178141180664413039299453300341804903737723508102395607289677460423469527813160324222944975841193768828883427106503755254159576313455577079387666102949412984480342016374806292663722607454697121515139449800697677144510516823186972404288024442260043778778407709894038530330112444943005969211148204967572239161800086342452903293173302856510385414885536438890651339379160574157947632365294977610941852357895622655361540264163541435683044239472819397102923125034776542027170361389243286236817577712577657415908518919209633177300629688381975990685565746440643712393690405855877998017429457652139291679461835961914916101863972556200773452401945364964694702103802327497724342212110540619079368870916113120701636265878868839601757617189130795600038516380377240967180130450837665069660032196412788191850705977777794972259487115708716787933918564465452283394092037255456692613138868404381269428291959629872924931630549612563067377624803319174274934664471854230590007529181284571998106872089274620310600903118914663619016178639061595339749694261926247390582915065186422068107393320622959443763738147283602974698662903850774554046548624916401313434784967407459083536581920586288478289061033391052953140554291851264854026610926824138777538804363142935923748425110937714520153296978049267638292258853109001029341497577148766393327137917395330748952466651708094308309045338607506048296805888437287411284528678280965343264287558574990115189091439384755923403132109023376195047529835826512629451541284723794942584010984552819120044338458434849203092863367075355846954268299757581327426768738037729916313487349389149988246274092503412952092524080674777163921451523044542372543572968998191377751390860701578574242299091382853046737820237138775211017114024760225212071716289684581088463967472302983501950960529404470081451433902028540386871318624734097821636563245754287298875173170684121497745227261916485504334903513561806786963570649256993715071744517024634389541606104777938573433243878627544182517291933332508928692997614951719215271745737928686334841855917468161854081828455415667411961679958931100142761000629872568157406051472416954586122718875032566136383312001496760146819390866220965571897589813108330691197027599100708507859130912248048908270145817557351574999852577841638264913812287383749633231345334235847943559806198246410620631639232331874769598048174713000348775385070521804085415542399842400223809319020220267028743466889160046565055099572306853986630630545244903920530311848294386985575388959908206787313946097585465372453094201546665334272231498628654158740700482238396394133925080778774735809309814795988475279809870500274063594029086603140630546581218827360172000248131664521221715571273542371276377537537483856511226054411730508976735981578774687700623326358630955521068337806645041982262202854116146857887384848559200981712523537085740283365445434373232540619111948289649233720275961507944298460947854601239825493106100513166776412184183689258272018175255285538936704236779222212310994218999927491695172923206391154141402619898671837609365563975215264682090575893581211692300077115942744499414676491875899934030464299710929258100203873921623124753102365228295480934630369385952769007307334033856167053316503256841610895715144192003300201110630605760232085614731066470518605649053515582979200922341754905749148490672090034384995480665121412870054986047535728466927317618222305895520905946097366324978029902178684663616874214515059896736302936671737304123075108782801435568827227897566336512746375782608497608288825039097965164436759313873291867053527281696943405284513325802192678300937166133292971416454079834582954107767494694792603164517200628040180169924301917546714011305244066033118637448234173647106473154730486535625550651755723740999959672397539623343263496732541482870862302252799689832274911421209509451352731742681691039274745921366895087004203788845026482620659510340506322711131983337890690141811872587048210667482647700003016905441686814754461000913102020198587903807761197979539807418010980752742974974159161171415823780664066857888845062353375495339546153341707139886786730117455446941137555140463274928085581266436201284783126790351472092922632789959828000748418483630563419861727879434287918717931025194443508594208839007545394911855687370664376426088821179581730843204485365304242744855577840487522075080698639274669909382009436864668768001067740611740657881699210533111901630920215043093464840047689730571982660453617622628267483048388295044336859936513275923969281713708800336243394089554084313188888798950048691243478724648085101832638293747064192885179191978785505122928850247120738916088414194837710666774097938353868113524321210395517022828015577239360794245492903005602774676132580676090093709972860826084004030788292488143768248730333892120415774232595499086094823303026681595175689178605991641942333350637663948222947186388874687671622125714569933842178557460516551408869783339834758211145417321741347296643921152943234780343987970286564089731740826704529508413785742788403855388334901222218681932966179982320504673094060583545593561281964749391390135753046462669129161234208278071917311571561534355303087067593067615279921162893084041144116559103402397161408425809284061250250226430005558796095420137381747976322421617688405561405969945777572166432468514340600680755371395042567024704098373752272685392099399370732963223369735587979640683946378652775318421912518066742562509526773154229949702495220267484170699178360299553164545118528284628672055432345977482169005072732343012673615757095248559545134795988666406590659731226323055543470092889089353820673992545043979431970773413557911366907841274732042923311954246155059401472995909624127414101093835950263486915345331609060765207163574245857508923008233045494338980111797491857553755170972397108860862773604849656584697385615107715039286760581176589701253405976679812476980403334730095063370277855454776803363890245171800682367200439888306348831610956777395032945769904477972531556248403552757872875992887364546255283202187571192505856698465261541146985024301871904348823936861210010634393799952888758768917608755037705368552290221577460588167540895087828386055114032825528395007253404163758280595468021689262919757411777358946860215686883160031409315290044135045047058212527824351326677793220514166471045496385971157929208919632485722310137526233982288847445568359569596357431949476011016958172151691499525858785576728805050624164963087783805316651226607403823612762927146556148998137977198436920663454369204695507124227754932800495293087070203921537270960711424314005596166171726372576229857624021961145542934769829771626933830537403956403889598476631632720553853004014741271341569353291422063504412630969440371818603090269912122208425259537837841457040160779391015879180258744064159504798406727369081574817773085639933945469135494676810918092981631551269688275938332566255769791644424925360635089578551663607049558930171846464545560013821058320877329250052477264315647477779690025659727049286489943734795228809799154678599035632060781445161519528619854780314888349074365470624198470526265456282866682032733392113478638111036229722071918116232586217369096326123042579017308383689582945066795651260412788595837722959824200384283639253079337951213298293491531713678499716098654256396928892528635730924846199125954326977412713634388792956200049915165900953193103741132963290817155522718762634729938402562523882116939787308103664132516767737786633007648206658866900609179346780843478574122209217067940508354774499283554100856098713216274320576351066751508683768496372523244479974964222420573198800691363371624169777228587598785365452532285466042465542609996822200714467260699215166424328456867153293974488538591624117619356056959275585744290757692749929500715293602358495005487954610075812936931300130023704004610579257888853022385668181933006735331611587044410685560569776957868652999662697953346325021885678819915885354602553388744499800162481761740833208989256438487000524250265210598430018866319148398627294099219088989337505231557011960762846332063652652380974506824998761707368650206292329266870098973930211505351920859572613028479018562056453182735164067455699640411142485353286913192944165931342359312582871651888217644121066566278281074838221824883073602630073718021377365474323648752960259865342721049469341797150321643736822403740362582464314394638898044060015332933855451745098177585950432291490486463376304933618728568330086234679186799839280680892960314174732894247629969847579324129256773089289616861135527967793230153510751353259268628883929309735938209926224395215805042170207744918268485358325132624764400516175241137471383532378247100317706586718297747683637615944609246414825828181899337022873726717855530255793881713025686430994868451789846665981440306379734434274519700394142160329295593162535365888873558138663532878071373629886813406421174038747650111673473210412196362919702964138474827171007407764259386676896256248850880440746584601528590177737928272808606971313166025559120518453788558877607126367866084222070335487335117481005143331929302129215939548202511288763923397374930322913361973370475542446297765741536517785631291155392843895061153325712608158855793565294469951249483032421217589217092446799936348636411210940942427317867050269757343754027464126801174470193376702159455795929633556981279722011064098049423856647140911697542234882606954899396568688576084330482160414927308223876262103282434465997082774046695025863676460314655229452017992083971430675519096893090102740221653884331886136906071038828563004211665648002651003803256106845513323506697554813794060590585009629489599757547788312425705708313695947156680788746578230037227685777953836753309441823651031934865352204187151623984089756042469377005534052261550181151700438347080024031202312481765765980947006423725013837077416778516699314972328899960732385506724376018877006260826966847942464806525145398971969128914611968586868469511251088102438807082584185319797510253031499581221713849660834993850550548986637446107215334603898862807713732846892452815181529354683130529346297286144096503095609494940050137516023610837952034456222982388724458655759242221141951108655609526644076018835531489652721186399538800224918620343746782990006808953786699510960990015747862853835495856099722271209981069505266275444793064966397470538574464198977539847398688029714011097384530419051980485350173106467019520846941883665654832878089902166150700819260483785300168944201637308596423097025185183883449666945594117530252356899179625777995385491383178941624445809704368697350608718515755447433689582695959219337282807255324125632916020208512239713403584086960614542258535565501790527715397591008571523640678625391646837549501715434242345909148390181466998726260867429712570382673597948145066953565843518548036637096328567120183420296572685406214283305247048515850691750466773254687019931108012439944020744058364604999628259454242373427496645394085367879541335555849181106025942854434073113966124191728379879391542719173799511244706715666428254670586575416827578330245129645789917249762188902345268330563372196756912569229249779735803592813079097248398205235276721543496299635120492904543089152479445886644989459631404131085286705738352921679571754785450866079268681785256962499250653496631675543481330361379323631125888463432705301488927574405552841438079489530385309525414883601035344681159607997168054514862182581534068340930848267138018386671061012211773878168278156665434154741841970117110806466787874465053927655207347095916285459109759957344633816295008933666521499724177179668172262016747577966619961547707835687097708133252587255263134456365190596953529709693746053959421617386322524320585013593287362135520584140097862137981943868673033266097619290863069739925201563835219252247117469049195492880801158566367487888455421341573409934158982703428200907293506909313822088473289294746092153846881941071031815562712632875101183842789109758833930051212643485009096253091019123219718386179052534944102972398978009097778963148880522202189176674646785308535226353497780785763820436050909699675595117450090505281478295040552450508910485840751998746228533213430522559587459350995901719685527416151593866786987578253977734565869942543675396146525512218551691244494519930787127211918592954472421583399006581367398691099824335543796086007114952893288663415516667254164084921461511951887481790228653853523153388046866302895438187486956302267923996381564425836141338080772078176821752351866202535327350164236762623559808799263792543468270342036951591264556923718129885755743103165957901394040647017380435397054142299238873779683777470668813771126749389483261968021656653568622534057111834384332296678633372568308768376140905115602022121815331346253431069708582995786221740474047773743154342415334994599412395037852225937821930775322180643081336140711173988088233023109860332752934723668262388554009906998027451499604177848958997180017842696751310665645750075168448378389390645984563352989316005859157697650449015037588185083913660750810241179352421034245581927321510547735452922625330538689565122074964946254316676753543889105503233359746502084767545514201035990490626957548231182825568807860636652196683827968401735790810429460833516489087311418252619380368181393777338764771541954376162793837099939825900089192554183561459445816768955969840128784570018494967180651314187878893381512860698423594368531205611915192282621304871684277408245612310754369553196405914778735821631404519764529267801959785025014374721399086842717061276887016045834585696918861448689964558397742539722899430506670327907612004489259491180465787304511340538814342191468753374589810448146386581673308450165533317305752708710319350078244781398550816613743760244945126938882949556119746634476756178225873094874062147135584858062800152622350972966662993822228571285680820268915701239436257028792810395100762130356183059619314907283037991403974630614271188776592072888266122960479865093241858703469868560229009391071255375810513227723708631417059123411971487298520493192384808470939289931358803771748208899368641680749295585920073370301654819015716590403865068149869808493917148628967277561580700299695677598288963566093574574301640418035657645207230092501982617871801148550749115809257572248147343546273505615405495377869902214753380514505890186627661373993939877531605894288508193183880215601404066729591230056088751185735482033204861348248783286531418494853178762838010793145501775875313547009108434222753290558967550266275489790592717443630555135660601329557853324747775788812657614740941017624417736795505743650165784920920993407217810594125407253144231632141393192498443685219180103486323231750471719860729877818110924876004607131093284837873755728835975108346282929905965904370070385540694637857949831298662731469906960914536875251752612636496388868331501811992308559134704329408754558009331105469618948447041319842243141285715267170988356638168921163708149710381310304992786759387298563654118841542349907505569424944035800446752135059399336427430789675997670224536420374364426054376457721132087023667086120289987346753059577931672608573871874532207564804899908692972036610707273448037395263897996314189927154246668985940509514249577356345035679645976960301829127445973683099822759586871392307668804623530493164681038781840079771281642989923525280300249356692604206120062857804027048745505154108122785165381883804805978158673862179197445241381365985188607308373250853647313807680465311100790809723364164816700254436089143954858064535427261042974250609082866055263938040458725462606339465696626695772945794902203931555599339555167799403604919847708910029243299592497786821953766582036515075797525086901456052773600465958941284224092662275981973425664454250799379201463132755960244911062827039142961672183647805963276766849458223672922712502700983237703023920181912508356045921016089982053623262851403389263015411982763707283023886444374949123967693798464020566143293529529529426739159503661059655089748762671840129987309395544625019866132429727332179585408195751121584633317335295153653769175514471031536861733268000725128374869982021402558248040251053942139043790350109186248724796206271525192379200288467971809708158659748143654240292082578969037179922289694262149392726753226225990445929368627405098427169188975752103787044821154446230884103881022741928992056036671374096506428315281594186889299248619247350154422646717953509467446701653942730279221677798063416596727511108311979040725145068993397157156315237481572544693615601140437114887028933629033325737778281188354433307023624109431352844705120293459647446733260023147744669772910846496329542640309033298296248949952755290317755403607979949844332990092943736207444373814920798521882516403944345554715286497419719161577534066329922196874622977899957107328991721948162176618796152243671377039404847484368058397409872249706387753830282290345083677985923316229651942712168146568579749467607359109160619727154377750985556467608462476630073472564431865074636931257559099038036836933450369505219967733559011080917784994197719335741410973079665748554280958452831713895247066263949448800272558007961644960326971710605474168757273136866504653553851029741773175584181707614803753701862931450959555845831896879199605293572320476709238444019333597842046793812806431252465522008740660266031336818792102459580029136592235729344966334011655322199589431569426014098421327183684389473517312647092815168576040482114838201848614008674095298386093199679139597401290248332778550811079382305080015593693844977666632241549970114256014216792171884074247004883871403582016072961591046271936460459587287120497029128625187610138653424976415866834188012966132682724599632196094139452541473708896727582879092360875389896049487176716404388019757184772286905237517641696425107244149428430239636620684321104452590860142876943136340778185372333977777923880555116799553043753488692971568798167690761684933586818084477303238836163590066311441892367661644565200278672309447587263731521962847591251110214935941211796197519354718000661576098295649068691080684520864100478677966515749485480351616890268431423909349983978780496832558482119341919202515751519860682505842011594294506683549789449512713366613151607234496113372778784497797002854017445477525449366926972024436731069616537579682163563560386474566939527388498053235204845751486601782444870742291401430129688504649387084080709465363976406709851438630426539982654124825546580453259585563041005115688941390907473091076836005990410807663805526675939848976369830405225970977380977632477910326925030567374169975338608468008666895119037981814700281609614947783454484542852568704654439785354333472328577167107502249707904000824915766918683638267343554967588868933432422507517285102536276424509476046018239609904917871542318505150774906669024514965833710460544913208192028267810349197704292578950025736841441588614205231937456888194328739203824944756522454121538000466026887787943034101124697618053827740388656196102953036159412870643142167926698406020750752332195896476633014401548134072377392504498061946557555933377827949091314187240767932133191495684797228601005934021746821340861434975239199495175166896048106721899641249572628112379446654745159981440428805560964578800080263399674471508411532510822693427147777344517425519392766033380916080950927668700129787435624241142555813143266580370526203532404218709835159680564953393887230440499469354195361078454597658225124526120628410474080556025050170028340948705685025999121744242298072059712841769066958410524827666924967557356053690679846573561625584488116183536343261177591104305975138649897617382988306486308814459995432604762131787713965432260972498291545092119505579038384958946134177761363989833654368860415614241560577882251097698267080928323023473911429915404830535183617919672748813878854081772302212993819671143056055172999518587463093913272831890640860719743390671919683664031497693456208979043527859397073207705640203121906420299695793080416185194416266151896089768046548170866044268703305339772255233314243199854573787507519572339380474860965457397994216436518003273862768959091637759712860874164475860877661743604034314677354661263042046668557370883884508089287001535189185066978038615642115085251602958772645048170552624434588736022331370451344167184682052611360683254354726850131149715008959294605425434042458680651145246128489114466896744283887534787311345705798109911079205507171539074980215874476434182186023380241854259604682563921302409272208122762339381309553172578765640294729438862713826654474217414034141028004896250705224212775856368779940816764009106830384383949663561314218641224180074715553401071017208796312760174378732270417672462318552866408940436379854020830794757780063325046730847416174440708865721789004926207857456011666641468435875400967703964300060603361777060770114241845873801195551469486004772670150329323235465739444695584545268917652873627618387070999324001136630753736370734384682424640493955211319379897061812038743051345072925234597451632810552211594284778967142728940848099608184370207776145543507136131847236331131469143417757266465684963759323341108866952339359423826025640597473651312019124276332958515811906900560966638647567489875447109896435231866062857801185514284896669791863323954689665983158786385000640698792093028394569584146824027688477617500008032396360431278766520545374877248151485158934996606764771603020089525186103102343478093033668284389645337093278949475503422432491803576473127105856005443613957725070381044509988685676205435845718379291651018572758290926703444432239409890895647164818426311934734203980467385867636755572411015079958802832184832037058824283711961624475420829859604381983007227381231890794545467010507466475571675124232126696832792151328354480560182143119758003980556294753695351747484520795644735849377183633717146390501433367040256663025918237926347044120722650529247106039670525424708201675772386683351858020103237275719262975037210941378017872526244147384336502947239276569956096662283897069421769220805587056717509956609126057929931510930851410513858158751557787027925151097225311603395014487656408896176114350966968720606716163873122329021298543270986718908051270480344180822086633259625453255250707942308724485333790402003860443875362720632935517663873295824545203920448008829201374925204959634812113771931055413972647734669516215347712813198957078726774573559958040025720899241777350754294263841175503432505956593575527680444074202736744254394751042458399635628652608762669807278259055616936312273234657447123428261609913143665335780537404885440799657156670858692921402451385762511812720775983990745694946800530027689227004545023668181108784494790347434442165183794611525090289683384729509276527397965826223011109556310202173880233953294047138019643394657955036280248948613712662859865223152548941480996109307393673752668808965748045469072912334227907018971291393093968181475874597982140756768037715530703635452061512121484022090928209697918653103252690294807381429096808956325181142606314919561497568449373689753376639584995061228293075646627993369152438249088822531718453940353571214523123600382402838491035533033996433770412791502473991326756272984506519005761414051401823929966049520409257381694848546736949357825488669054111024998434026885057916160056025541979155894124845445682986041512145184202865242386904726848820592374110882952363872899718964838130587968197101635911413501341287276616306228333744378169786923471340539064549631108075041311130249735155646896223808222877717065942061408864092938176828170208988190525108819333721073272609542921969375830494623635287256765557429648460915592619293120729841390186278159828628078757103786879706964058159718478860007758384117458257445136745322527860076778193061536620455904746079277059109887732667954153133027792585495764978361338242203736688223916033777926933814515654770053055192425941768509883022692750144887468167475124947099184123486514589986906479646261538889056277956929209576557167253709308556820391067816104487816066936774201959115764880027362183290104484554724019830659559092298289999993056600694653071642131678564569876863136529050548531231475573899817666189665647099674459398001144947600933640459564336236597484117985881374227744011548714619431831152735119469984160609068440107924919321149665856307251424408667234665012448839778292154563821531868201689912631491907390333269447869367417453775187950090451984938130847831800404992766554004515414183169773905314831102111921488526563041293042864614386383687769471626870391422953356485536108962299182514370147809933841072327375758229070550417462452027036380169405252023620291613897958896017057190374094983338077738707261781765342659811287992607407679494454317509194210165069994386576854904098332093601487706821802697945203994918647720318762683795190860724656019440898017662176831540231276917158183348498492781666215450784173828991075355978423408854817923153887462944899234987751564014955404559027289425078007152868435806788777716078196662385131981202658194889904432050037506365512421783005528622487347114582488762801959500107704237749789226188240330814534088283196780396722152198317014539206296745555115013211198688398702789992153070319309576992195103310681542303864828334282313660469922143237039299691513216483652586184851226292427199601785205612809679551709692234245549066998360285568643522946553140956253312025268859252609015254970710776926993967170933151587490058131574606968866425411607234249500754254481133963821615542037824001508835464515598644465649352565372193793198173247162048360380880365192549997852928511501655465299152270078969925524160435784502340795149819151092831450558176722850844100730701348263615810761172669553466330875162323901148011257084001548417016687724747249914556669183454627762669247888734283339347439886937976460596916540140870796054163099792661096500745341910853770833377120035565571072190288968837242550578648232270214677772501091127952482570020910026055425855554876748499932724920117603478630317452500176930318663379269089835848171391678941003657947895263557717230373478080072851762990125506276093006095826018540625708750848496210152350635145212523487617693783912284561321245558476458977976695868821864849369343133204580271899122861251828820272386136504386257768850858428213039676884348331699193667745528604285484416768678704821781395869466628092392448267755822539559893862692608985040000155320694198502554469546425166183296155104905257065897032530328272711060666435658208296803646438479130261230224028100883910589941337045292163464834817589529806081829450844980198937377192251800767039074765858492614716302284562237077688482988909460561440030368085462849335618735795371791023334633865660444253932756735165466071313718908545974384596598196024674319088222933112909002360648326244546381831582539662087840537483301293749851765968051195108074997637236667523817809654827386716436608416548445585050402674796707102991879595476135857621398418322090852070574363113995084698804546095795763688595078052864015547692166639523472144618056978641623687540563335507442019357482235508894615074874753609806311651453801430002666933002191098996948954277485278192861813063926562673621343562404181590860092213975946817093756626991938499197232177239235151881549210141021356410392063765858629552225144894721350909530509707110142456026649067574780762620776005154475339865047882773545075315544066980279858400005490014169613475842407066356413372504860955521516514617561085232724609125378791339477703084612560678254601246938810614268559986222940578128025933076760976986772744735022091203921684753322895141413345702099611597325731351890748151164686160051478239946109687673895377706653760563893645404387772396196416850602963366271501795902160692716481482733891726113560252294664224407508357939201099810797748126157573652989504339596398310528409043407633489959899587363824726663777948722411642353474466498768094429819752749603316504294906542501473129576116056377200989307057719717376590202207720692017607143288017261601909671560793076433926430542689455892893790676539710963306949876875246498244421011161467217584906891040797254582482813038374121586636381895012260135188189454421191792575762404318350082893269492784966312298613305364246439546559168149716315949596842789233796825320960747365798775311611431607534753193967816438900182812893601513934581711961100834889164650847783765675138851136619989163113197534035157375430879623623843517755940608046816499645075781331208722720845569819369479909323905853580048084269022037489137173550496619361821315897286934712171458765833179203782543214449724940243279121799674705074295891318713227007175707292831593414980245290863688348958005827530410814708013126781679324157712340764983057800205851781638935292137417472246761290656313329490568991855126714645193981300611040803608325076870082692291906463497767575044339096767326194188899499519778058438133030586992021956660413958438140669926461656219337325916755540636584091412764350591365688988522750712528536975087229772643530527668759185892612023819442532719005299488154672052201842879484392194363089811033490312639445677080525323413740623300959137195217686035828740418856674473069053293602847786797611829593034027234951637527536285851048106494272805929569986116460081920736314743123894832333330586089712267539297949215369289956134623265888887378755237882176271482035980302766336597989689612723714699695063700407197180712781673769494283778895895201850801251731995051547566543879773914927504675563196270355660076139616362894132600467682368528282576832675263614148855004422577774691035911651295925500671224269987508153169583610539090735267827726572941895760127420796499685141626427626526435447729537142224126501880621443346411444891384923304705584999259947144856426409565719166449606514827047203926712921023190042300690822980265517732721208196206053965227752052934250577823936169347099991279917865723271798200082801024363563286938320267721733485718514294489965528385745420829126524034995468192716849144752110272092547960479178213179112466260347376077847711900475952945956825431599515297403047603256230105383027257203581410221099591286649297909562496864323460707352612212435699998075342235592382484105747335091785783775579091745060569102902517611327131863894113112514804510457533534328165884730643862488499846938544255945677920294820281597570429723872806686199307361369963142898899860478223304038647093394044429629103661778553481946229715555202600726622422097968505943017257227363937831651223096270390075821872883783055508651730405693611280647006264412062875544200287302658224670531593485730363311586913771760956269492432289279316077338439075159567023744332919885514601551776226559651015395810407340154509708790486137334753584444141113882563269100107874503869491864571403705490273869923853635114032401760789166559097154420161074557886213569618258524004604226780396126073922762944724130053087413201301815650056652284698480134445879168971821102031572732018981361040303983597763900634090922713457757778916194797680786145193405491896613510815303706649876304533112829857429546846087364956160655997234088275820770456165949778892399564035775627645569544641790033311630804028976865122054951512191789919123775815418242736732771448812948306544122293269786324229011751257640557765358827580844182710428790411582327448858204662721246189644557662491953663400526699656239089833216523992934156338021816911484466524387384702410438985195563310960230094574208388023079006662300430220115358752700490177517495836197338947631207546679177202065124490945671425331314434335131354615957138761007330693218276535970028953654790079096044106872938248430226553209337783913411234418318642592856361974470336469321258818804523457269813063053939568862871992873683086988592582867680712981095369878804455927808164233924703418955214142739491420876912682912267829127942297557341754341548949943060562997772666110555214477811261959777374005769244742851364164493414571430128537961688404319559962477779369835873648118125145544909730319518595924816033771750317023041298006201054159941273673360462753104346691337673147814266915313950009611350386595749979018720150584118381790470302568097409963669669580006230217243506028149654774109918307510283615278352578266623562326000919081220519520006698538966756988942935291723338319169776231025416335080249449696558858439054618088494995580975820878717625221536412928507694785004400540271163454759907968915150812611723322810007397715323472189445506865804702583707180454794352807902987737137590479860327498322948985042625967325812869612220085890739238555389528535975479748152220600211430739070746367193717362322671900059557434595771225460021670098955151776514444135403814778615894673717521084724713526728152056584370378106328063761735475474855989947072679639738149307182165554012231488935037093355631406996671038368454683849397398256681727660005456825499367714954156375945857889034735086874328135071749843210390163183801560209839353666686417456368606281023006118890357954453800642830044891203608705210993766592302984033759355562325701163402862605325272425463652714567179109702587395020258746370804454973641160714500736569053207474925447278566523643521612936462843782031735307029623264046778878293819262647775954106881699192704213258211292925329084368763974075013613497886686510080070188703285268080730950323396532220341809746061811747014982093751297254245743628968932902526577503825409035494786375540224531277503186395392750953617955878287383490273736733077936087831506165153254211226285913905746003354940382923315987268539847277300138473696669363639664514597201450869869786469200415188866091541212445520480724449446061851215082659195708613987796081595050722674469252077752422826080968659618862774947939242092840990536129383696244894425664161218872165493424613356136666637813193524745962914805836910214448058143722680396891275894133863291841133517009628997325136698411399436445784439183831305627531328419649589466804926150722941014855414627038934791410155063561374044568149132899103752748994415143215780714417656395583242267119580246888216196320517726473435080719373792715030309834950607171191036666910033793269563397020478397887273877429836920026477600332469529880596290276888556456910358365065222313841928227299698485136400218264010388381642118200948498279145555605250700683076083103290738471338607487544540972732108223137783318649074660854796947007878595467780252014319746366342610594383244960279346340450755031734095490883543327939044676131259584078407590863763976322747966486043909557196910936826895280270129127051227076746326201010649806851013433054479831812859073557133593815858179012550826916285674741111780268658122786808547420280461906242059638599811350229123858110204200102788467817567209233805555409884769594645478924620969484893702372517221541050571622339839609629604971166199877262451943318365781539557444416771740530739606386770336182626469978862070319393976683156080084426162533133744737905590833739573766762050386604484292912980584652820396855183171493567664203662917495757417386901914650897933237812651230864839670326772015428923451625227439426148281287255841198518799884254491703514507153764304660860818752040536168117015078089762374889931781414599067534046867170192862194556433576480590640953178090735497415346359035090659026051424837750170765341974713845692900670653688447031747391285222294415573033773294605437101620219582088576427734095560883495550454252345658085988140058127226967537227963757356690071472575167359344445441227738130441092836241892018978746023422250849912967164407671090623418798270837473570947327458303745419700548115725215624523811508310113648993469170620032722956549537738496856378010468632880161843738663872416733508011847684612323939399450771507800026078919524624517303729499107769568430693512656510199990711306533736242393646805920256762133327912916636158261078228292368737274290635094719381258089464101940783234604375378980929808781148070356031380991268472454927997208254678661439188079421776689288289201166131434386504910776168919277007033535592492692922034101301828033727500687627756319829176608926203350534885780355772396254315979333981200957869220452156314262637527301501664898999472144185407442899531245393792381268678049195915381518409956070578795926745366451694281995645471052354709023886466997495768478196253396275755475556147039878611684659353094688437384079853285969778982022745546428843977707340342834676343962066961931756867143733903586430800713046608744543340138613147631397739593028067265777983947133664797743867992123368605531658010568295672571528115195829178197513225623179153777525606737535478649032196616273039875335343746049409608802011942627420745598401298838606100138291968101499557204719165219782008030294088416712363095551446341337152733613974536178664087716097899001154930172234335588919752236054865885279940320042805646315781234396430858110676537542942917587074139645236030522730611878804029579109141249619532164742369194915973885019843201261909191641101453294752907602256120585436929630851647163682225788206462789339529442794649353905996872191977990088122821340432627796680026126304843820478722562068710637903466311103367408460595378991637633956693655563302045039167807844014526465606794151283578384978241595632882572351763703167277494036246967654793279984967131284647556210074931346613385358266335859079420565806747971371135990960284858612256008610170101689987663636174997371391270513002588228391439217775233443561837963955014506775899034692326251460359723080648138504715363543429327845941170679529298368743384383695542196397754214113136441389834146680307512431963635095696262625573179131888800659690627038652879250122389286703334310978562404944459680311994732090603337499511099810517600846165584182545103768487079008631689482438302550246637699465528968220167180488209725314286076952022880925326888079739502184887516493369933662072380094338161493381271314440678091778869079291808672363174513014049326822398558371211198908029763034058536266770146072728198602282218966443387736407593370679086014315236706326951933981828738070999016239729636123268384234223205052649021957179338998755288034794085106452117932923148800269869342148449206161928743666271952854019242135526976434460904443573250033515123198800491009674317359632870123739488076257884482360745760286850556134920006821209075551987348927419789696740652240630079561502985937972686527212000171194186847625261526196633921569414164550916284633683403887030755442471812341766356613793756143181816102558731119588525648402076429605512706182191924017877644129872556725902418927839980451332136605005757941117718382444996311482938650824130976481264396071985785030164102292167547781060196158203206183635614706163184307560204404124044278643872699745784795021691199162070582420647337048028228169715143186904655502512750659636567572740370045114821659509709141321528875243676141083445167972144459892687035986849445258733976239425149144047237382369784874307509901946087581146173951760849941259281604389705005726832171043143531458007856674840817640878391322920967426501216832783325140565924792108056312750810543815726434584040584930195573710030756289829196127672646512111007436780185577408640402150403591987495247952192392199660549618896149998949396294720730438122622737090358380518429514817040100144411258002211697823873123562819256468191853095733018555309989077568692246583637417404086333997558240422831356654044841619637305855397437102536378927497024265264949210668871527841432215216980553715868217837852081943633625329587650651663847876196407013835899117676559714564649636204534605095424697192216961722691339026624716311900709958019325356412492131412761221831538883247449131375375973116076871863177472284531816867697046106029989384062021892309310757513517051484425768913572583061669002415799007881807061388846051702169217903509327936790398865085245031151434634787194771184296405954326460947497576086817589389281268367847439173198754572280975246996966217363275724243710917490050123236721171857820470707009408993095577950848204526738081524867173907589823695811413793966931783538954838070825739303349197075108612412202201447429509039367355097912057327948292762576974713214698504004669284355955816991922227498379451083113588417707513520675388358158775066295396222987849052565170511778994997812374584583732052449733518551030767119654576373466756566679448294633206541984198852543317975031725870393455113127577124985640479695907015627894017186581261033870146966688261850273145140947865651432404346609341854962857930327984939545524789535407907018759631762959253526827570559045838660783190699337857514378686793224079457276702604568200421848953600276823439668607763790352563597294012139641635228641180112771764470972752639501757697663463336969814850200881490764852567223864478915981216351333673421931657061118955751472148878334278217397209663975929511550875521166187936339195586129867425009479204304485662658803353763266254208715221752385374274813136431668171757659496338824392167547354984745177069978480007226993890153856110115315949247156867711779718996333565340683713874663847174692386833854366805699675105277038696327796848944937175268439433620160563838091602907086013117833876734498268114710483046655276441683665523778790459804667100657513518994815605431599412454117876102324729372427795577107574319956416791968652008313250651886297855460671967628942129682877030317784502454918976195685055125689034479897746779684993412364780155376739686426822774301385972414336896868630196524574131994963792653293479370004554730213958129924037314743791399471515561859763495528143314096750326573942833982189624368966495959363009418995476198968812894555629050843551653288456961042835282999141124081445286251013760746556616863815182504724680342928490590163084914862009459130134575150382850501551965051631954586600522003990272611411280985956826549718178568582440121831309957756393199252443870081460550612847990894713811899701574840391895422013089821528669257991757195569740335704438773628254352899406405905607806981947705768233362574339497394950122860311706921691870085429260974913626676026497584234157397291335215940577211673713510489131455666164935425180113128524626265210673645602014435925510861868651925669399690388006910981703536537453629062735974333968660531433503825686011431637579905301059004645908798109578219472743228374132347706960389147494928915652546807754554435346548086366593615708705663061556724367763836920990121909869012740198995820476459161849511896145905793336864400186002363394839769071788810208693799538235362342331724152496226653697015605266515584408971068521177175392413285380696613292679751832770040763268956157392012209319813276865199379868481242328099572281446384640949762793324036101954554218859165673210113972353553685755770992481193527953076515018746755111965873129216790176787091336242709261902158371506897796739808969710788373029024820041542844699417145963926004885845136621634832026600487127071699779156648300220492045100595705905229077245864281339322653687527574914164364738238233280006210032846699747256628017158661146429053567140738428327509212166515441332703190515385777623890466622408005046221282387666158911720426783793442210479134611929277466336659668158905231512834589117135697093228394146649500622672071271272022964520160969385726028662311796324240522482609591232959817419068340617447543260388619723358044405065815850222359130497182004299776329493223841829761678932949672720539234259350222646920212228836236741662089015579739079214902242067877615969185863144683684679660108468584104826045473949956983018539471676960054415007646217518446659694075618430417424573077494619069613081415004769945946300378328557949237284604623921696000103999647430807308363090535566114005661176844115724767079201505563472419744687387091329631449030929776900508616029059491057659095068518174907509986562760976117742562634945273359532179776277251550500943372858485604798056339627365719956123553510770209407052176873808235618245293678161828627175457234767173493361393790434429462318956025612616618537610556759496713560300252262940366004569090661401864674588319792402171071897300500266173072899039461076984329672883932172993957332133836247005651360519477122089611255022821474026436062201903348418176868519020493492448529359131179161138094250227857566303910850806281332911420836332211227412073785670905596212824956654668834435884068767797347228244701578666726276427865518478208935687308555595730741757681205936700043293348843710541757185151508522694820147875724991024096222331650219146853764170563404297673854767934781455393635651010463422064601163199185216477949744344443151871762270289057270414904702450955997449374733873929943630611305651648784562998745538537427215408150381085516775050339161569928381693635895758185316418333074490422586185450421833399400345504227460693733594202459565017067339072952143076762911071959145369816513902514342400062303182446602398114184696302892303587300059662524269688010901481465380712198073894070743908466390422078590140487415169676488048735325844912170224533882588348867739487284248943694508553214238289660390981543866950993192690279690757982857412966369866337735026591174024989458989142026519701619586720773655116735848280177197360000658779389521514856549544278682346293644848521348441435544626938930751563277663539650518781488727090806613495301249957150669174775376089515821340052400102034527843348633662934298804588801116646499778992908412412494279063303185421911299137879617208561298758256589928189763191398774707848863269961709233145944504473539028435264788595166810591965478872680839141817923457518771522232175892597699014010404042241308787412318228351337924965682125837174852406362998088520170459352080687956194398237408284394320690384620350763094589401693488224949632899265610533985126910716480099114883947042704173091712090640296462989555730013910318035865875812445900935901915320435653305626834525174983179559533216737359647965887414855917016900857840094432830877589165455181952074950009212020617850306132860349562462262989960858294007787070317091707619898922574814104390135321803866265369583363630596896214548583511885841047297849492254715714474276299035240904687918140207743906785075422695326817828363598553223824051392574510264460284573060350970831212628310271311617038465686907677635266415681343091918184897457597361892693820925203803269824339642304759562697704854747177240054119556883082655772450041875665687398508727814679039199279010139442570215659481354347322236237008109380714059296619534265272487451087813747517534548127995337630714235433685499592524757658209667388469145414524926978109151708657858506970108697143499146217820843632549024438227980654708450372009557219417725715097102353327586363450622777836621058411463197077950398504435578965996544151090490489610389269537637594993754430808477926497848736036073965556762474400534463547912252035568776796678069297879236388364324283871000097118115523952788429189889537725103648786627308595925671484319064486332106690907096208823485644779342378356199831805501612231849630820728374354830081190481758267352020866209417589715859484222891878269951647387544730763662856048740597957770331572077571521327352333607713376483809071552163936073473568353628602701326364340803879810913550269423602636965272447719302613265269215731852597016892732410660263302327028804094526363859658916175394782566538379237976829183764957859630298958697294963753723995564547441311764239551635752587782357146837035995207040563666964716391341976098628327377430530746783680905759526716753182684238180692002377626047007254071556145922825748854895346372496388761530723783402162898015164182217358095473398734013108291127481862929990759399080119028565358485400644814886326910811101934974116219156572536958009530702389317835334972497101278877026435439871653848889702463242952767570877724657850227852893932167254710430491390416139288837106131984545785561962059520882588844806265279772958770459943852535283826806767129260871751647066610281981259294000156944088474634196472525850227629168764391249659244449816079939698028929420167459514582533006532369611998257641238006235099073768261424050447800285978976148977589922248436289614795518433790697597326873199506496987590081652477966528372961243086405540259287303770362215336635890925143738676963449730546124806403807661073963866591123134605670137200548021696102061646113512052812246751698776900950054314971032704695679755992861601064621447570606243468158540815067078501940838410063076878579805009639801577269570587119803667079828608414053830610966795040345753226989269675613886632483265886790249855600315353417870766219271172638590803025357014755600980041836237483725476459469626059016652754772883808972010047622700572902651237230442653068619177968518606526006382525931948589314400667068810741551826956250616141276279868810180646836534470792912226742550735521183035754405810841408538012112025798088946324707579721648829839342851643585939117867412946316390267251283796201250808208307198358129033882920148146729382253330211897255486124281122394397613968512249082795751616824928024589090234882661414698008481178679613368942411258562112768288418626826151375878159520164430504746543223182086177499736037956562895868943649550618003812081989558232201974796240397239777072745526160422101031232345280013126014028665560457391941067920317320246576847535911863000423855614938119650517679109807256721047175315963187367509890886450129705385294219186944668690129635706522245281054090583171649222703806295267688984510190971137344655765649560318374094777182031982935730726487472217914264336019710335872772951031325823793538268219020204976215422699328451317173878741500769652653981802767764157313358061313280766606656802369935796286627051923906357389074853039137601974299179338818426731152234531104857617795983841946825464166634754665996104745551827683711698664389330157942179680209129839087460787702474224157446369636713285958499797862809534251554592536818769145162780130344848651269477803725238914723725909197474208899453282611746180343124635052006411872823467117096281538460552195481626689581579776452332128779048600250937562129493550430464179694899590967502362440151343286476464348255236354212961965413019656881094713075420451937104211241079411585937821275383247983546516988567102079238911131352461063706046679343756884790907517545132959065322732982984446812908277342205785923928990967532734282955616066364571432570523951048272633228896308081432248353759983555799216552687640789943923598228724915199161995761125794340931333394293148544147548133802473671000634898621920702857499910994723770286273405817317617075654947088563442092921258689251321347618515200213531831441764379538850726347040883616035373647418962256466414678146325769252079270531127686894978680966190983493113123460291360840108728033330818807884081089555813844087835243154566852717552977715881925714570232197022292144577322505505556844528426636690592413170786007069449636837840411999425626313985058652454926449906629338529009017909073103550259568819956866321399660918256378028903437869337942009652640175466126955905471042275196428485686417210372498375189364052061462229758260718154563692218931819453666632951894944304835833003664199321450584119963544784787579089761796291464155832300225628723923791013906007392587513475444220567404785039117261088342928789325395588427055837625952356813536005802493599834603985435327757116108951051186455601440530621563461436505804343036971224807425946917393392322025856955863018948478447064758153337830380840688642906284348739924693304323898714950859848828099355188666730540026390271913690713984223848247526022023866090446892440418204450138515284141189340166261406314898954612009308515702866730179114578626868925609032219656212777264154444781423560083474758321853106702802649462028798914145930305732464535197802862536123116522201027027068785991793396250298151173451401677734025617262957400383308315977496293006358689836006911117127613364790100264220111254451861068160984169211646156111251654817795097466378455213861026816774308881074691140693567518527207198470643459921309016928435068039289840859355946017032313217629933936682395797820077429788071647648825036540660048620042850697767368678643876348370244056467008765650282232445566885329668643814831356904022204632724331665409232605191007212566302678064770913008890055785627498958584922922488348829602936693797803812297900466915639151398903288772534399240331266302078566674633251266570729431905304291199912226553713787797694491651137700186376141983751037740374858213802977444669467229261994244037494243786460098468926562918728232135077811354884549082257825152948186314961890406921183226330990012248015475220207886836539728095855945745773483275462105879935213656122681402395677039124978808361795898875442896140495258136623350541037397067109795518341735526397673134345781128766877994245393287873797887832621748254633201516078169995770116896428689558555551103686488571157994791017911802371728215990312128795791002983264397900486569884911505724633106685702180988591549219076751538285678151616180866714486789907135654571813089868583451891301423367273919157186871170451695999517349100215818362597892315560378198325253632055319297224653527543763947921824307618130554023755340927357806836374723346405563163277607144290768478623684210704787414261624138468220008495559003108543069929864215129029187963384902789493738341869479197087093561225429928767934854180838863195947195410555909208166545178176261430865971124131345642283550556760892303915454372528658159011119087268596539763039705298497244416628757299328570318310961250526900029874670690043735801364363188143587055211733418396646938743789152307620146345468472504094886620085227682053209654283165460717788805492578116712382412957997547333999823339317397470555778933445173229200142660144612065333106185303871096457185621768410799084330823449235392511253972770626814590840478227844552241844536084144770967941329962082054187190865327441597423420109491708544407701954792909950488536672751237462434140841313518816176563639466738238471072689328937313561420603906134528844313087564526545203743005053858407752430804719047607945370995558180282232286033829412785948703798274943138331154032437484835196044670423707014675536494669518276634032473803525838602593244532144608049487674753094925062238270185750432213265411482575716517648369779332230349040985709601288088953618735094804517534733758965122651272842726145462618649812073115045628135127812263720823454798427839785457082591564974099898049754569070925654983562172308155860360461616622671296657786828619796801404173237416715084547074162222694219672254843678499672722305369672457563820281096508631860106869023540552609074907042284744795398394553436319773510256046971329611885891506298738894914784483219560700917018250861159251847232629752407238118042909729640027922516701946775985458343437592935344959619666074988011171204929158604443253144339547437586172796557044213586895991015277049929198484661353618203246588611061820600533189538513592242558746782152362201475540681813410914802426767869253338916093562325736501807495398377890410686774529977087114619226324244444840370471115181690108031133646626650250893826352391308131469586114307668378448065645318169067110400727832750882278504731023040235698783889467596592989014978807138043559787915991070376446423783818438360507560720654282111128012631921982301682762082728799029845029742384416779244232792706182003905837581820177447679731650507436296788408733404657698249994522111043586965072684592837423781696103190542654241103252252496989526118062863621584166632487175638075563617051097659338240537719140571178374891339099568489822555845355080539021701420804881764302801153992955454242663325585048980500061915154861365419944851428072131686695992536878174180790545326182681676105734939946249358745842583559938251490334105272970781946768412594080379808519568011619314487630954499345117821031772700016686262329327066116315917316416913930660883031038707574670732635785159317038924837235657761185536544585717058631815496877697327629583842432641559677390022107936745955003772525806724969907324089090330903607809015916039164008237828347355342081416152890718155164711810739233475735421090317590546378768921858111775569287358940576359937161104633539403961803708016350731015504816995300984078628107480166853323509850581902741726502092516552063403218039446631055893188222150792095648256496025806652068631549606935970524441154785566892465453483562180412815748651091499694336894456481813096311584491931432797374269480852743340776105866014522656260475659812895674966554717565506907638735582713827019881257680597475248062307400147781788897621813840568868905171919063206910407044673264171735260447046966409901180946473363910674304118814070749145295867512170932291278806098141906420691651963459094865804346341386376318153498604569863655557796440606521657237705863041940120310794976078684931764655533057489558313601109901881830626179802875252388421702387677386883192538641859725571374398794060274680281859454845688997053636285064030913396317173669476230181024008400525166592280654204461104958152612306693182705832048051675881100638698346429016014724296161265692658152100348033766490302654652710457777545752386858394837314447734879195721550891175113114347086009838475415763990821309797532651511319147119699828755888301716855300509070054272906158789591624885787108107547569232819825293387814536580851256702984054309669214891947040612282451495631696772947230005712882515400439844440183411239111476073370858416990569669801272745382135985607714027680370680073128336167916462982658361585301125329524002781188002260020163492679618698414069905724565749648590148510694013885646376199124809691009541322841053924127882676902854521917240942591269497143450279274327636589787283030216780367718023773420661177510738423111192017259490408700111867378222609893949247494410908341318402562269470497437849519483505315633408550662456241329192159962985276260387046643895569485794089851352432230715983094835866969034723034187016657078461873313260614909870704041995030065609679770753702583865191555770533653490568709840968318103198199847044853688233656857820615732974306424444973910919595469426848016033958375635313220995273299544851009307822203379595416653401652995697034322335188752171611395121428178352270018933691381546226727554608830659135027953333801862032265387438827338160246454047402446776100165955078090575167021703504061168985987748912571405814984980928798737137383916798003268073333725188808478675120705567017239040052703574684397318094182517930635714527977650481250251711606519050503036163356678795763130039047942566413701815009312094695754347410340530962798482128668481961514347518301598074352437944022880822198278616430570794366989557294171240528586384414817123224681062313113522005150743135110075801164416522491830845168039769576655239267100294067223516951433127618979263456973841470510628747151013527008766233966814673307319204315488142269473632766776588417247071959535630884612682967803274994759592287628217885189377575807598530133058783131076866046898947384616154401708781772869700531912405022088541050977249754081008366295408457902642818402962552793810869923680674806516693235550489994607463548784365019110619007562746608928202925229435322072713328700010628248237573014490400140026672337544638675161155024423344973430570793796940949733482125472071943163556942231727841043017648489575028014399665520002415415545318231896332847861461283876829682684760162989586497283260797711413879989927777579482582926238318536939389832895731378349367579535569156830655250476243381069293639353488197133716710747842980220725980940938285497879634452464120748824203414505423131737171539522262047684688430427624265860714196517330891606124196711367936037506716966779741193059153441459555459218618503077935063990271905932887975244000645481057949612518092164281812057026416553328565689426742211349648254347948284291862620350929495634422182450923997203766581281367667538305211586513576314196196137007509252552538347524991910096943898247634670147263003662810660318278307072914372310669271301474295176505549589899195489329821384760460242962799308494814073150740184881589762961631147159584008404359134101868181656823339481900486847264282387897833184307465943566328127806061267169375127770725177983081334040797022863499744791084221836134240973727630893486550192233288591092534393364834481624535599629320380425920730558793079259551716471601332022813722622538917525290899150262322595227224156213681790698359696947330906486360108107218706153634260459732052625299680003752403187092325877598261400725597688153351177131884935924875091603939498356813252201310474539015197259582705792406742034826357124545746829649397826675829225099636336577678677978444357589308728737463227489566847944179505031106874979255435095709944232892053878391691707385790212861631239138614785109131991791562205478624843140732929088612276090301357507693197763817936547196216360989244112147829022328331538946094454985396759494962380928686784961676184894804491733038645946045309502206661620994793976378111187146457091026263422896688264698129221713820201379041281681818165019519560862988755571557253486945755058573180139222007235936550842937629042148038228136995639892229119569180889084760126648064877439054116980143060395282811237299693559020549006019106663051224565962652592933779418249632174833850681781030237464177764997376406890289425002680167625952505800381656021116194264593841369306931287167870376671177050238396331673231840514812721758525284184128119976956789129298246812006836602559428140424592665042431643878568072731344084178987576017358743690007387684141502261808773413606845283899163863748027901272914848312556032769261495039782817454480064526262370925375403788825308227941245848906796550019599281610435817571259741891546789034498604065612483756445281929538975007414510096178198205610099153516982363494389743956219442411704303449827283474835434550337617614082541045698609038839737465709595902089094037738790734484539734322906333134963940852947642793147401877010527117876146052921220378099020683459223619736462259555874853506026233227735814647737758708382061871415064252898995464842085134790315378438950555244454518453668014286720377173918507154242072643314577584817789297882218484140030390548931003446018506186502744909638014414701726560449986868535512580745793589019669031754558683571191033398169169424891465948163727493236339883278614167876884082817508737335171446211210219670159072866214116968339213377224845926882265611881457798211358135305935484428584488777839727292143555214336712398660199974282189712902133079977021743336492468702369868080030983673579456956259566257254560695941281072070682043436033587263643812696759568197666390743148454287806735084336099224920122185930632140086099270661749520293643871271541928628118387143593503571958856522519740003901380447235382128468716467178852997007453752628463255660079695652984579952124921838065400378894096569539120256707692303450284678107501123882350345844620852509104343041714125148279397967754120226187038526375846588847681946986659042512652430885092854580962995145363613204447490391340487086737945657616651831091347748155411613963700763571779928884831840016827810837128631632058895771979002680125300134395316732993735442297428517571395240305603276825602888444104205313980654601491464899655016268460506767195914291063738787459398057346383070874218038368293406108154501628034350858164191454610073879710723511975404828166522399864858249381648541262006517955246911314589725772195523119322612986119904422944361611735638705992616844953624559372470047837458045924220796359746661500958730932039685141354104822680528070976500997894889968872752543274923015554409016332352474954206065412663090709124058600133676376375416472885693153878660714492359827614271726878962509466179954095061888013911085847208493664049385830387273641226092372885504586336741434548757218472318668197294033285589906708293761516283934176185398061314987762947080915073547810843709212479344818492399207576332806876002232725098276067430414587710895255036908323547282682702568998565653977575873415609991895917184948074253361418519179466552394936891935731189324992759679889945661655799136752934148197850195477992758761796247480850547578041679523472273819471528167188855500703404804989520238798634644328416709186515499227846228815240138678596512266269086454402498554511452027980352357395413492317582553490359237991096833601177281078976871219903568833218545106196951202111613156967248336197229709553729221290504071210282687545249310509979245893247937289688859629437291597169537870866309177722573972706225515629866187565456496860636449899535340361465222466901029952820375862506165990991792226583833683643107152119131875353847286342900331189180203121646917676271820157057214302509468464277561105679496552838256307491627690689973568054929352780837753594072134147685939896773839420582428414537928246835330987993710883311598255310906470325661826967118356718964193084127238009634374083025883762624874824718530449123918195385282166063163635259836252623553188542846637686803027955296067066982464136820261625790878792642542568954498617351645374044811768654931791977044586043918560318987470531804993381232664488058815178408634277646925554178827811480119258018814819981826977671408824608972362487560988999491554332699383858676017268169845855492376354177265444864465625597971009041987525214032916086563543095686626418897162796100413559367606590207647590980171487693025740853203297142435468949400189825289011332285130165960606423002419800196825968152221652817784746874674099447729629353887603648334079192573284890954223863036678067515403057633301137231582829275137192879576779694470416753806605022320889479324689668443045892981792655568717587402125829933835689251339897102852362595276746668381770694320005350742292153002756718329684609159258863880358195195522841937369853175585650821030770518729522077699108718642819937406312296735840114714984903269125526866886063028791833587558405456154155980521453876913354187194038864408720677341145336765702505373849769714136380447574458485533195726767502077924496935346876182603464718058106560459734426841232891867174305186677735954978971219426182715108243225795160533169486809101625427292751593608879746298055587350776875380474406857702468060721266758286382978425952045175463844140202227922319282650303919278684841134369679390923552560601997554769091449445431755336861843107830972952949269013181115210962247087876075486075313341519531280435742358927435141020437322253509515967867292839070844407198247695304077385539892652728622219128066683882204003772373284047420675884960869686860975442456027211563207766767970658652466542692121633064505143140219956326661388698531028219336660222211433087826848809484251148754165042525522515768242115265764960179000386595652509578992884013777707715899396665313319106669253052187501075003380700702723874715239508099312590259810625775560765052216297007160370602791364512165166838675498176923427586795859370813892245063219822543583489933290161229005929029902614214154828272200746912609637102285692451139940107718056065520327941837795401031098804614480946848086188929822895127126819686676675857711657290728460399768187179676800149708223321840902970369621219462368410396721311639450198651354400800361645525759624306069133714099421464913556610320726170174624777108585627806788938569975016387454697945047937564628073616545415644584552920557745648052089950277620547737737253054658827478707276417670060189060541568391789339001890698179003310216584412642347782670300458327945975251560119584803998443201993560878366465239869211227794049999250283159860988732703459167169620948928879439707776649687747800717407081854557924792899752272213349747653505127153006501397314318251702876476880441725823223639082172358234862661559295841700177694542175434527107296132948932764182020892993287020924157919036979660086223198859473136132439148733941139264844802275068214176872978699449891507357727041208206896555107688239962664100374383405953533670708739804188197726234073097021208027796239740444345756759029976284991053991917596462839493227626683042597038805334066725948175646062939251589075824009387738215348012055430625953722453716007524139910684915246531691450394040367934277106251692752451544489120933384445064781141681240758445576986393308212100376930335055437261385752516892753243668452441015538296833324302419195859416272337393860197635347574079201482810163923859344596859864739966646881811880914599883924030806336328431449038986019093095162647585354325651080590676201456286270047445088674123441052793708808298574329980275896817566904435735788160779341418963979017595500033855732786823199550185108330606609417697538658745140251128672154252536441274012046480601209873703539498666645142643056888615437981156555500756428769173702126602389994188785246324848376124942695286299241928293219358083109472887402261423626461942976140782411647110019415826359050014499711506898427537942622455897920322761627205824027568829722891308584739942071943391325379515352752828180701909908901029434722711303623797929432741593787175006455596020380096902603504843359039998260483974757306477880704086985215251816286772308698632731026502888754081955671903766178827333723353300794802352479466689441075075126033317763388208102883155179682710741923440466003291732294542821939545675881282281251918883574210414027698560977349132721584769657331373602596335821318027000653723328680316846738331442779373437063801977129408928784507657703694192193534031236245662028238983314275598601654202474811709430249059601828481147407606187358318599864261888613613441407561263485512846328883431963760751682629474352855240408122902577566856523319398461792093471253534287591613133006525736253153652793720189955652469726460716655433025847045822441877210573434820481661992794974748132790553931663281623298637972358017391018311801103888722967790796857419006917451214681831762534865346905334122856331795491082183856696007211416035151765603271536773886697432777182809303091771493793199330105414671800316342970269949765976104236160847154600012275572604830779677912924391315618059753650576713518776854358971876207801545127762096075498927896020296012153794344125439730769135807723845147396124962426751900614949371981579436196973965971641317501741114443766807971448259971103447117874087852843383320252254956382255088818351496192291980679184195864278696055485370311142133214321165777477195472516055838559659197775034411255211184825979991118207763530024358767659642840036754885092299935388264959038691993592860803830312160549674712456054043057132741205898434976873499247598883729728688537941177999203701267452623852830304763719727466706854797361544227244281733509126955773862643626914590565674015683710893719998586488602623142305412290202385186390269343174714203879566337795371497388777855956470299343638927267467424733063892311110769767691400389321724207358582668410670243369047041616756696242557972421997776969201609677325576914588568859217728813550022968662230485951502956495637903816148715507862638982601933212441443359092945198217401013689541918422763021361368454844232332655867111645481490532461523091246859239705615075523581896121711481197197419132559390161130517533265839169858638919658954799841868936181973144620653855000595252055998192771303723084142687237326701161533176579456779035760559850565255731298373476249501832435505735279662035947712809719405263959617912871847636238145268296503340104958714142980636909158516374958269580854764360944898186194254103210837439609046947710116788540951169121965154095505762864366857821974639469035687677689414349867627257972543600531744261784725109922209700338834970246274869552880346676709315261266922008588846088100002907027378447976053966629886552918847242041833881898226142001375745416898726028967318905819554522444711906924169613238989136632257985190976237229908697127115889268364163319808464841184776575182314638813033738927359701079059839575105561778347078984797681300191770536548993427902160661536963833834878845774702014502207147312822758019121351569956667967177798014583789186930345789014543662652150512201587982844444099222644804100343285246952154971425471421587327799440111939727242823280096098527461237998691950863847290723669804612631138188551381698993634937448954205883815832182239639787903590103451987553321814091853853406053725039985005170099210445732677957241971544041839112755219412561353197324995178397614389948661457131564064053620680934529753748262972218363119673093247899735294400220664959224131644811097198215701918777975232359993116216641740645397481860183651999302917811693128332233596510705486650112295727882306663993873982685273013393856611872887441157929366662542547785686315686245355895634778106207140609185193292876082938811144708853018590939027410443808856365720715540585178807456670890415707066289226437151186594077643650813392652349302725462174124836254906701805509570919074262047366135857837900842813652343375068846083357917024021991403582546831685686564679709360340452505489561355404301955252215967831174615340339414420326175303535610608325121154866266290062683275979181771586242853986027190800978189835692556006628023862122451670503919506808991361900826937832530296469494307830493376558616854063581193648526812615554672300801695712034430322783767951030176528950691579646585232822105121582596615992161002379157708933297583856031357189298817427870456509408896697592445075261575848885006547680817950229991774604356890735621925798992119723879606636089659797431351277644004201698790075633805316545839667094434806127412083114428105341466677363374727939374056186651754367871809064792457336806692111372013030336867687726137768338379088051954173998591533635330167734169998427435552694129585184989234586195280639188098219569625386359596567590181857218722466129411564056452245133864021997575126514213747000102850566541843994318757441996030510805676147331455046682914801810528769561732649316068573927654528469933637073531217771591905336086677169479912848038404482061981598031939675600566992710619927413455996712051942828968469152238496047278982653766615448582691095356044066829534069384756353597073029997396600016811710202806230162140601395470780532032719793457056534988975837129325770915332193550475530517464654353997107055899815097258168050061995424501487774409983924204101627081184772177341480557272170819538458678843941627225164974215747323509656408096597297537187858854789469425982548437591798955875535718558930695927168674624010490632788563771345848903300150126840457522264544533538280977924662925363828893641655143208993152285637428060023206556088549177197931256033241976598351725031848737420370442882050133245659807463243171481612170513053558319568293786757989095408233039604903837811095191417341471676300210846673066213640466932864403230633062265525427623265655340496763296793344601188765063156388928195114210342516387812661907115671027386081266891470094097764129390213409207732977655857198929965869368712924618979609830532743276970745072010603542845716107710313093492103582026611361790668301926393947085364240811580080108371896282760797721331290328904336576628790487233278035183243751363102944515034741580432540838903679504750282696499313649816792725548159375863207713146332503603529949788481716337913760365933372331056035210840369158997929355135576613195381366934640868744730973988144330466022315944678458052295531601379396374816223278913547237030278855871873513902980038926864502659630540745573104723471251067185525582031524084182239429910750663504722278986934807542669645294314273491140017569800772769079320583441428319210775612983027806441701078143894298105449096469065324107932986523448938185877150138691994558027554922694813304387292839283236314578711087277832091374344541060124422183314834785356816512140169180805466880318704645632583853933487533281087376714459171114715676280285338616098752314139598506948984891194468516074763620014826936520436635662589829645667404707102766144762275802009830484884838218360507616078884793399544565700400087156637510746019614825558134241423189552970886193235488813502952353970852415494475903107070481914859018032113866501772621104946336124195315725752916778080472276075748885030516750775662470963137491686790089084555333660567414434826201715016052547150400369465419360292090022182236697109152959853776413974433179948525123979560448026350393977205960553185489829303724069270905303536484109168184218635524870365735425753187390640989510274970202451451929806097360130985321044867931780980773025725516614674703277415231993935694600809954305039816128103758165614710506300564113678044695646586618497431261863808456911258870503827524242676970089535200593062356488200442169554383219513717479666190699932017473754973682672376754315802327367139577628048064347991482281347505651392057685859198417323957185611845266347260599039105459778276868000434554427457418657714334993638959093141862167882230873932838052565727629454183744947326548899237079532785544830992119264057303646582741566933199099353319004523113076615585879106851128842046056809725752182788661483575675010184525004321774090179857947275899608641681211417556409942228604821978821685314423867425982198864197599877432676821458330695719343104222471386202325785015184527919271865927558259552700292078032408060004299203682177417731516377930453429935059442057868744077498940570711425385928030681349769773401152244279249333470023740439998804272640589961949661350880254545118997327578892546232513385263566898820488850427349719277035371340868820931929344320300292808244703632076471646945648650201525240421755625249099219024859633041976039750085344154866498092168948371930095623719607328501797609496338859971230594256200018562601282300608358838312786184157269161455096691845333981370041544746101527612731120434518378587574486609564063167961834930130413090779580830308760220590222335397581985812569313577560795044503954102518612041181308180986224293968842605885335224495508939881202938647065494954375604424712951996215695223156332463891817768280977773115852951307931833938035720671109250218180242649692305097075563661820286059758581467613469653270471584918481873439292159782372160636524894819912830577404118391958494164275240596017443984333106678007629014146881175692884599045663161240168264370376949991570426046492618610935457013512598682995499081718296807748018292301686544347193398115626735685115489852499928649218886486211921664420816499129131447345943206172583585970683590845482928774345587873591084129477395615223249133074944900068266318422404743517299518894965566854984051440943112196004294525619902819264286772333214956031402258628054101875350391744127167971433726480739129555301896069937351149308697948858644063593428418614872875077677243660031003054617378678610608097496311648613941860448311758536912306224725258290457917190129767496096835320854333426167236043742995521957292355100205610731718482342694012131144740584975407782532059778347642952439441769135201175889834088877556039304275017246888804440578169398832774180505415170785225020422002104936897525773871219324726026616276743773490832579611630951068415541723821055048555849686991075846670219503162833134197171459057330407640042585198096647252420400673543785599592956452404053184166932943765033078377757846048029845947024168075683346448495264334564251897421931398743212368708850696211891067494873303567253894480937659171648487507007769210220879273884284584172665811913036554949187675975657505440857029329553050144427590535279396929739715867980641694216182385095510931114018970401828105802413351458642308888659236562373839154262889223176706275035862600474506524901664406172674024412163868982281392135175568998081622444134063794628663227605539081834843214970075921903640322181691165336023512546248518726990854595149564051706134513632019770763516953247879918041694995788107930465998034798496364405971047212142001932071665580848130952034931748367656155042323500775603849407681951178136457911521111018001355691460536029615489100361864834464566640241797963508907855368313700612094034461968735377564238233871699962885717853713827683663720478071350741909060308671536666300558731238824023452179691497885737791861259572324092500550984281181608952008835147629256574194745865617726602882796679709389678850344536493125806540299892239221473243963071804368028414084047412545189867563273091376306053252577645165864241451474205966914884701188448193143675429831549212131356593574946457783455049682530941024473104966229867890143271460452427910419553057716528049933967238966957170344626225686540272365770339613011149034474439426678970380781114866967451101102822852068684806706455719678651357283654676536562407626211160376575843029243238377503818052902350574947918493180038371602380926644515475447885738019765088500921239698244063887288118494752858762657530567682775025202599876701832489719862258444787561756390296555110696300015833477530565426556768177755567119446125579642052849392909200419520694053935316609549103911213571399597662370221643437788053742463286739027069700640073834614392355569019322605082236628641263903099115743144112843580701153449524593055267751634592679231169969489619718615330587944039946464124085376735076248709944274099032228227266832910922335467284650874291818607219217920514988688071009004410656320109850613472070994499983436690691842519607962211687747037604560013659583124334696804231276076860414131560525979681756410268572037468381920966445859198394584556706502242694005785082129262908955578771195401165739363986160993121319362616375571091920548714694588005241885272557121028328048749129476830195459625473073077557143577211994893572686730875904729064376759048974820346462607760595609512324738974203572494452669007040474378959123806213713999692343699347698138596475171129834535711091904495207989024105164619498699974731632802487142744586830708980797256063946707865872862548628152769397483654704520581349080968847109867184012958529358287053996130110210917177263128498765302987406032179011356442696188088887057881036029899350812998221413493468601848595451213009401140379404007073551396801709423871171948480734888286492100665291801871051764077436817237667404941019280724196764978464817998645562984880039921189652184486050259283391261937745852300077485630707024118810911263708720453371996685544773338882291862992116570902631786317393465557326689616797881239669822223450274199935432621677720869467676508034358599237900016154303549478756875265716114332321486214926032958255850412673290389168571833946405308100481893312803046036873821848220767913714461741334783488390609062275791311709334200613192554242648368739470609917944753603284469308068925683976757509906018428727690832098184917170714818208564365108350084447431964587132502932936179509004766696727759950727067212987912959568758770359608532642509830742694051636703279736254362862087014413401055973804333518544349750962375183446790306325632521705920551386213212465695047548836947200561136748395078280513169151329014252887138155309575329509094519984703324625488198708247318212771154114465284634595686868688419388764243175587601176530224212565488727864903331046162382910313907642951470557043943938381048586819883578767506823261738224941696208380852041042380900843087458143655047434843116929476193634212195279174784282006522325277437583133166478943608292577525207968798674499435854320278593515977325886471235207676550427843446985376853208132426802378492343046588073602599416569292463266971132668433394945921060760220572694088975777724314323768166234883937297040612891382802647282303823695226904879868993757892664458414517210581918883583187129041206570765893865612094886253962505443437025807946691391094265861039782572001457361116754589036143677253446515068413988641927010950690989776613327810456414527179655720552186252624725361805366309674810499267972630097363898615053886233809644182566615969576743548249622076633525301067153374618443997478167489874096282923293132103136675502649561988871224085973113553306538302536943135928558120202197843874124132160789986688786551905554248653546383412503358463904436646052623901188611867241381555059038341460877970174920153022366313894328789395071532701966127641256202244745032097502092618434323217880107247321425907570640483391913003965596039633525986182031444715640065265393846632541721681091359447371193468338151411354987029467614933407780913350386392737085081298245886602971941424958506026102768797951694558919175584701366171732622149652059454153712537603735710098645620856016047505314076998261655179839621513414832116379209834449064090527197185190465543517258155977566047392416073868342809350156915646904347843681635957675727107349689026964788141760951005112127335581948037067953391375893222908140718355193203947636221757484437191888549615057552207650603891384660569549374234387337835589993952162703274961515911981266810085290480716559825021537067440631412512881950692149721908302132423211664394750483783217331556932371504973848990585371737575230590965199563575160566233438123648248754562229549685138259511403061713863515038612966862012274864339353640449334873934551787127844789525364982974534140123275493416208890625667197102749144544219200553270553492501993801677032352450287339171671827209984004800273668306654926512270383197123933597559238961342070257700607182247159553047884756510466942432365507085092233748772742143277607577318339677075516896049790209848141708899606448280596892979172782878496564601193014367893957181575582082745344771986556845848452099198158553101088108309118775357214420885839144557287641997433913152712661635727699454832600146620160234361114893849048022923279060336411070734274270342074849792898013012637376398219787577895341873996342211659357885322630520033899187527659567068989536725539874768655483069891892574550847309712508603651183884568448673572632107816212660070635975665827027101251477224305948149185719451142523062517532931659034229939363280449731820547945643733191405996275361131218590626936805377899310833966478005800286367717044334265379464325057297620536285711559718402394486524749544366683652539679088318019346187247857828777448524378299617935663277161237544024013523674764953455742408638115541136320547121966543978018660166557647634172509661932516383302130269597063190164801592707125533359413291798738067565671390044889959440403570472100939443548035955093375434028100146141414448520534571748683582915138112201224108862390581692792594286438124810104048993574105607140928957882299035305998209044244263171092264601203680466009275327020020877725837623789690797433640522190613085955823122889530373279788459471562352953721341301871053243797014967385907933823546935787320162591162055115630948516356487368810233065931399681412314644551551460348075609047370333141375459282534057662290405792153180204034408796662935371272132615245102398494985058971267738517022917702506397214464272868981141886453994680866708444136514141397574657668888071110128567515491889116525430674336308118521524985585949556909480609115516381208935126988592407867514471309583713197654339612669947035228521297049031626857241457768942993140920631104227902661939270607086250984603873059167973878148526914280132388064710460242629474683054237866308946518794599369605848389840883805637837252182689919551704087038760290903975004433047268894503709427384899770290754407301851070416041658412883146887237712721684624070375729581426094297293186541977762464806562044780841562021623221752079500963885546268927419301835591629771667801612101233302689651395236762114518432066138792797254949288057553659605710994220799451744129989446798826367019485375720605482637252111984689898883812508300766548702937055232885253495189162413432248936468381763939827991951388025633665210783889836921757603338217304217184439757009473290945274828763227426823083842408504324742622545999761393901566147765706850721152955679093145307518869041008093871543901378911590894928021855462932716178096266345418577755124006979179617612675278670664148712160652075017302121428011091700473089635622698731131275980608221492211198369186380293034467644617151976225806940703677080152773739958673339750915181963648503991461486953706219042770385188334259835603740143482924628368652649506790726764854239270047865770188480698161591445971596546720903168822930483646199542549595316131419631820589582217396516692206291294224529079082361893605734215513777524649155446469763619816067696282335582561015169708675070439003486526624696612756618288685197548981753212310475927054576046425449588470831046846813761698447448710580498730929595127893275127845468866221401375420207590274681922660111228797121237612853588377452384730491148223401001055628969626719650894772276930929722884212329391207299862641937833013338795583603329458225941212527074911147043029306843687087678336944731961910049113057001089886439545888980646372126301506832851317574096427030259933827835116031337363501463157799629558367425723106679244451222300679608140788538461491439678669957195551863325140791507957803803793838074674481392600186744583364629587936257839312996073502696043162254719287694521250811157295862934908968696765196983142496669016709141871175721326371540433766641431749917850211274453650297962416761900250969409378803020904609919516572154455986392772029402111635246545414007952367524939894138068528082001724357003685872405488148233131128616918877354264377527178139187718409370255046577528611412168070402213807743038324972264033264098196005474089694597687424677873443570845438194526336069867004421695513532570582372604031692213588387660700785686302731472135792222812145920656897966331994959147478484362109079463223240497933965898941502230902355064034266085669265629260604073709292906009039696414964084209414709809603811289293633890092575219348952050841093368565175955415049813989116545031680332455059814366960140549012731203303052495175501681810816193904254912372018627317441242196002804867642213805936903979823010392579164840299878941979537385489979884229708975728167309681416861984632061196434143384125021831014790795541063019582479499002182687196200385573675668191758276152339450963745881074013358023088221711178125735625157863225290713461273409190949378253911197119749137220684717843600318619395919941497133751648781100155329691134173394046386857234219782495256846734567702040224641916260614849395303715487056967279769026322467701086989837963767695164842651156901965744585295229391225629950104596737391499797522545317498342788140984811344215911472725191704152592310141711925720799376951155347053633510047739326035403343663303904862260695958169126384812129420683013335919838128597594576924811056097145530181611883564742785805903804595929767984066457646364143492027688332015699766915085147815245772080772163137926717111213786394973395347258638989345037562958245784549212129929947861669556431263700296022709544489857739889605061849560723039543281562904096125765546652741406308316805896743145038809872995548413466766844652532677529347614448091992073520088690229224265137059739935802143018741226450286071957340923029168321988521950634113375723313672179041532249142627697722228116488114233066484519641358912778039118511667843552559727676116924413824998043478794991350403753436970458309057438862223177742744715657151697523259586539733109907277237590488636056106097733483509045093874942918034456798417875579080151671146837484091761408588658531267023211513781142231816861350673832358479625674799611315572106384952468501586213646757518575730856102341178166552646539434640072643507534182694569185554080856486364590524562520484680076533751577467523622085618210932985024901592862419223010467924108443382225667298144139138085587135299286180615953796420870286022109644484460309384163209155451125021402933347337526760822768307325785267245030010148131741524938287094484733105094954057509459548323962000898330292457366497007564969175652352073501903055390223601789425425922235176641163471453649438727696912361565799637681979398805444983375054365434697718177305778935012569730472516986335324619855851787450693306819072316087446045738676002206721812733100882672983926795475338698242189743554410526662073409424797440573940583101343244857562339620092590386801157946724640930455374472167135961473466356205332009292862715493015752814665079954200425115179216869306679451756014599179688948728408252943358039402807947583039945384330511296583719416697129328835943132133974758744378637058316944461667164985305201961713404449522041701229572923350482804499067368623399619892262036875712278851720190958777796872474020714636380748177756081296480016826593342716368128929688141226021264315451676520916569940559682142798194662761515265500703677663750801735856226969176890079654971229793736188952189006963979150647896487845464535898349669696110753223644373615146441909271748063552567274187287648805578607755673365333184711512915051344295114547403499901875683378024317081491918424768906887992089935867013168648243892863033077229439369778367642534117547190803939907436040419042492330397167341506394793874602008139000759785161098348272820804953336193157360137486239794088047337934477546860418669701640881751443263324163425816396999706206243270281504702008782655382699756817346391088084071361487240958693853034156361327766783860505191317869874129707582968352459498752610465315380690499682519796392928459452468062828081735249302755606740623299579995309369251855842360590494095906147229044460667084061207311166946219380781891611410054957063413708438698068457930125100525650949937101599317492615276416096409030127631324752160842560227969801734479693979592389276350222359036714987381046916733947637831596879977641611657786931382736175251564814140598731887618768668167428227850100570048678730575722227195755428189665149306712809132092918151197215198837513623956179111630671919542304789491594119502586148202452540397981937653527799428095152638980176376456660894581262708609884985459484663644043543396888495536527702308403511610560583794189754015359645174919396898036385950628655267131694832500033695348692194662599541642654126212453433093025437814507593889026393280341913348688037058925771103383600915141959564478188200911883815286664315428122346646887549966582771458833027515435962643432178927392255376811165210945743203080207778825549761328621789740593238699944254127361206531814129395290169999763251352320108204366827600873335587966253521342692299415219722903550482736419636101125756558735429706785012605830933433035942860132541761900010956336802507956902094715902452159237112066903045728376854026305755902330734008621917065652301695329479287676639160540441784685678673952532978442821729440679934178337567618209438873605505094721917912865322592765720900124597257542298614893823307566372455090168401138966979750435593651669570700457621037719284257025264846073729412109931825895280340173807736147311179824842409981797909579285111269344731808061083087408975120770238381999542574970696516823138936453673384661568318139888794510037851012981429916369170201723411337934908379688477966185825665124772716945659456929252340885159818222744171134208559435413062583365596507660555208717996566453957933001775522344599995105823021118367438877780745490825928826555422150970519661425639375510996915725072886231412194400866963925795660597883406183068889380270096085141195836820922201667577272001874093533832518110334398729323028746239655257601515059162063839662484391921023131058015147205978286718399277901953649852301285593115554484822011171256722471706811747472814357955375243990063723203058632515349290002900352505208912441722286736629769976704731310459978634909151654210791018188726925256468569773264822337123167159823323581518756521445393757045160154844190944786580556706766761447770985332357147219439079811207413753368184409482124049434355765317759417073534848804330492961820770631886514629739315019703151919459977807808010156876030889962954096176454158202165515651999026525624841846352498279469511762349676708471976672557514603637882294816077993370333745312108245929151085259225369691209574123749489641559508866335492703388032372348891828590822040346913468889393275500653505834172221291462886274704609906834411419158332867428954895277630092643605714417894698609207126993368290654215704275073940186779572759258807013285069110695077512856707788371581810805937322163160697061795448635522247922082302022908293548495565142833883847577748387753109839823361200245669580905856124512755427093547601728851101341672964699151815278408248631517874412471972363868614991049094948021308749635830594469395776963165928076232655827770811252715762502857334717972615917495247040787160380127903789866878090194619728627248575413766069911765763061601670839894721145583635004841543081513004907770094601672003105197251820833377973325717768392398362229304629997596346903097183104869261924887697503081204491632691671565030870560569617304002252754522739272782814609537613166929266996294589841020545622536397538779005850733413026279041521818180769247835268110335803447109495566224032057985366167552860343677737823080888848938431753070470847811885457146636133403688249883544433353907216421661336414750963788497122885635024364659665967648409147862195067534081128232657602353650644379134073494436057613802748909168764775488838774941446714929924824849768327368835394742113217260171108608467964503272884555274364767435273304454431832396679384595913789258016375562391031192983756551535549440244413245022800499681300720422875303962053743738184547895704285343708197732284858323927809614856789843224086407604634746985768062096655276450478416501100373082880264256379682697802246093968955765608732369560998021942258925686817035258004080809123424478397915955906463658295357383149285131497760544925681110627351846411725972796279504547384718821512277003098880403487723911569036468007071268839820209391634849937210200815190595944147574753443504292522349438442701658109564423424723490415650022460554769093298241414675894431346394391890024031536961112558602059132110838729072954518093375565408480395965310151703775038103779449310554989019403194704247886108649402832632921685865889829977297008486913464511353952123964642990215575326609645111665243259634799416782452866569370197949308006830470956635539626239730382658118604114277740199726969152517647482076614700033554398047756980237425245398778030662843162017074787632043009145485734359017292947487312628678213622431256651464774399171235788729466998156868715906674832595591662165379063339912321087238930267226042365251573052964173528545122004809114132158327285090882182196990853927731754684765526570529849687835340164935323920228170551539383638534293787926757584735618770893221044860019792491119496267750650699420914328961589643724872392576181810381702294639921172543685894975576084994495364174440539215596433127023177551338037484151414017945407204270801328682087891474003611840605353510791625200232143194827454883476933650591970448468516582531326779104718637608457165714960607384343385536525069408154754226493404785774977636236632604568588030121871163656793334448397011810473995439798741717571121658225947720216820190462701894656962271783229864602786261916915959106549767217333786095066520102973078013617993068037383634154747750810042218977426689452678655848765590336845578000319052173452959839377701588542118874974208960064760939373697263613872923895686460522244045933236430667776327019126784183334088177834200905194026654440969369113122376154743734831412146790921832013228465718259923537174387730683637488253079270448482551380184707068009616241078796690308472943792106427326164992503969521499536274071589131067077824449784815090785445187041386795216899049926261223855733577683576430171687151616295531882352890857540079664556962296312565430622966327779577322664164128975415555206321559791459044596959643590545673138410653366466338449666881859113499725426170897827927838595199426695882525709653404227348619938488746576476114798754137537624522176045526046925858082210727771030684625099301777015475899326166720565810799626031709425870613451912593023698049161215436563071762120560858020582327378244088578977240168500295638137519533594656059297321210864095717135527534562906094069517393272213918732682330932171270491289528386275206634188465410205731824767843154537564376300018414428001554057506468218362904642424490961264449249005455307688091259650212398473550386750613972595238931209813967576160172345135057988151407064774074997862933642601922850896579804475218043870137876277817816110520234026176200477220570254175180002354188477838956438476102609280156288484238480718881472574364684642558833572228659355221719604500075457689412371497223852587982018964626535661140085160137677042179407618917433948147080321857409854882683064996988281394478470431947510159783029807866240418793995014838986219217931888225231077380555898268137008344234029826700506533761379246681066555787055623906071396770180965606306078393204444825634900977940408252336281863570167744425596190462282142731333314260252854822132330113122892721546047759801031836476696389790762526251175352511367220720678209841867252265158668732343915102151369651730743596834734074573124354710301959754757584236245877381672735407980862655014402068083958478048986210916495074227893751999686435616105616945719107085801803760305212423716867169296182541667532076089406357111009984230296951479695503192224670976450481758157582728023222688009689704299872693389237535832795331151276220184435107340993857955699610075014599816382036509239184142566636438303858873944637507360810117733755836649409374847207096535279166853039230037128263348144988573819412628904800808127794028101663546866356863022663778034253448134187077737085674330809249675712811402114988567695558149803104060476540110488049023469489413439427226681528245979724001887865736404589274367210758574310268718960070884180026021532382521073571042193983100939054657132320727885795355007634587032647301462879871536377655789759707194236523540914845528877264798940210187615930792542446381011431759875248910694654258035224090272565658281853566807816980241283586490507321191670509530599244043672225549517795267663965017468488192993218136192651934938587258405977735233149959470370040646880847764700769871838001293016527977973292722512322074283406016658016174259213307826479407928904909760737779579624120964045877612514894297056175794457251583972669696717606189892987550355440620215619945954705779664919456127654454792816370500894954985705752439114960171661946430617772339194423609765399679774660811283480368410703245594500821948943715314567918875656266740316326470342799224961652184402832408635033583249613850396034051921008122450018259141152839022305447495619608967053255945951822171408250823336756146771943726981211518609583812468863824632101610323922798812628450492225694303988224107020160230745544062537024779947090323427774905521259823537552351430616787577137664202380785193519348866114129315214179566987032776205536651754089275572055503676222766679768784171975485255801422687629639341997153495714233259281187746675297444235643193244198368468777036814538038631818381537235453359590523787689346313822319557920597869620571739499813184023337155429274523260169083577749459139550259929746530200055993026434454767375739603818075486498196067851076211152097913990563289416209730998040361558669410659707746644795693430072543393131764025808515891521441729365282468188561673040439787773982192133101927317333483446911828209075005024232954167731831283173051024521174797192344154573041460883801202109767005144530068925123143800666023148634869955357046771716751178710200899137096180702116066378720509030637185382941995458407206926885197532031822290063500675875668390238398968120049186864583674722329146505775828974695091000183126826694598061478217182378913902564669286598879280692937186674477339601280195469534429107760511130202374262390218866403993025427905930169485197489789316935735808224045231255782788697782238109249657325157224600353543639794441678201088738691948170609363119105664451710915033879396951868967456479376038728143911538256991435173454872979281330632465601836883840089375067944214247664188812249459732025615776514614482000573972395982176672815860987503616994727450790617203408995967383210616779679496319461599111392205570033908734344476168037023286973619625058675096757598188071474819925511149176234532559357186615186530175264297549872383728846973833293628018264163351115811483873861756449892889966833257676558328271694010082832240138209007846019749020475865425513182599264962084818542704730116372464889684027600678152280913022658915681930683411940055273242618994579818988584396779670612999132632595857996147687105657617161908825648273630367268466072854110837972538657768391068840788184756335552395008909875788171221674747544281660389238240375526140831332116235215990343648398383206509574635105498040807328276591482379905237249859210221002882820887007324966951252387029982005260356344412272238680221142315273130709190062475452718174880921766237482057396929094538547209679371422668216391784602939718252261603695810248383194073876373305491019425665718140768071083535141851425339668355985989933160519927080055956176403178810131037423723424823291263083749700700332691727800255985476924758714072171007668257184005977283912977984820452023332841062193544381654345370244356927468675448848913758262876261716197914030787494605491983740233473380400543453719781827732671005797391509978644418971412789471904533499480115072682460996269533309115597853860655300230526513766710002462359288548648676084686021473537085788633583412954912835405729774219053718542317601338794497719042411562314974106737124094196359828205873582399026180240948776924036637338141361604766200905173187204788178961892763242398053001347849949331909900055321216195748510729621158102811087449029183120499290487457427171755617511767085843490697399363392253045721333708649038767694270951493727831795581490376708885480327589855175572442654753491690174351952736783700075875323535764528788318034728857384829586526208630330813443794212693423097123966746954617557194052125090545913163890275313542184352890106917221566828420681096821685269892250243869087201315806146500965889273841033996095495401939471232682593350194041349141109560391278517457217287581357914812761703063367878184590910807530280271227093512740111686955948684755613951260109540230562192934148569410046134215659156627933214708277570744300511673500098165000977424386103640679646080287419661734936233314378785445396851794199572269188925340418102167557972078001675193491181178746205231472953156613922084592049270901142712512669021285267483708904041865168530650325969385048253464572733247788832743947680260839872011411303998876158496171257283064836163434530298250907233249033801489459432179551562393794413241622341653615946437075113685677986025336131067083248456103858096728863677737911489864529048658056123309816137845767738496309247487796565003131817077262622139282842769579011384259939600194649799708721647281586153831845643670152231201109612991373736939619715774483926958436571735471352166583458680539751138293775556921700346553191124914531027158871095528696977846682715512305407380721142412381588091833074540399096722402122562250809099965373659955189713475895838805613366154914614172581780472443359092625690102349972437370425510635829547650246185467798375721935888981419083395329047739806523001653575657829433882158048857901153221153558292207436315659111820607873116006372868855488833741392011537868361647227813855988263646056770149102756470558032003276269311053761739560257805407868915992250382602819233166517689661866070513925729808043110869568699712294800131940603812306310440088892079714004024471875096674998945018652957563550929969637858381613932223212240793308827879590079120646764378638596319655209808707382537400497468353476620455160871151808996300011304517006178481668578802906452503847803247377624542208041502718152442284965305813093550473711092848732946650144516710051644749688909758134029217226442022230704431300451963029417363089402104962026856231240234151085393671091997585710915143777688866987354372385757864235505145286601359932015132700365109880073075579420547510048222487568874378170054600598818139268539603426370602604406396679022391408541334281207910837205879239178979647785092667576983737080216497594702650485573602781841135283589551808638086456752763768578118767639950035084905665480783700947960121658091732457251534587324626332761089833643915828266891382084778002099215014940138208156983484683262263686562429761689903342701846109315822453274111045246558067667843356807269768510921176700382195995506899042239984026263824922236315963503360580407346658125965198803653078555458659405636889770744399893877176326496379669231828063010902412317808235621632820461763645273093683137451022140378983432662876507337272340315266474587274167456471749688557770455245879934448115444849749596240943217157452741241720684791298314726969316685622922236916724175913065762704061258469246578819213472284479202888375048470031949935870134444490670967578009890136360196586532274660530316077577171981418918935610115832959133692492563561702350403976275824491123744634273485203375946317653663715559246892386553198750985802119049186358188504264424973565258540957846218029127300421017355658731452964567209913803211171457273647952681245390030246686658184945712326697215850512913026912635153852971538592120524787113623035930061142799290579189636901843827708562103161610686059182799597836132704596026159098154734788852061302989849130751139157590478910454312644062785307549501556322994229763352185103220311138168561202661019110727204997909106294693907388405429258126747163797922023062997285483765460358487455036113773251834443607495816984117545282704986940396119704948821548532355517399949514335034177755592398030384325704744075020959241243357793653038645372291169629759618806389128377809910036094092218846835938432877713212455136038107324700189620482573678066471881108148831379741183348716015390912759217523709945968652414100879653522803068126122690965458219527976976926369295926134044711863808264094460271176896039595766482011229158714835973942322876901819641084093650644564394157155294525931272426002240171321550332615796725790458412840128675492649294386774552918735811262948343373780560807363038381606037483576023139687303948604859416636071006251178278639672282684238326189988712730395575798364003943985673791923031168491699335643873865389443145390164038301659418857905748786721305901934866734506179734763200909219390091845906688922937867883786841947200381862863645144636717297165458952062062837007516149627841658333526753716257411681717889110893312167881762724954258700901019418519292350585091527014350722322528224086509618686148183018952232668421397272952095375524160752489642206867900848852917588358683106019699624489858339612996692663395179017547913756615901126554056113580812992019248256955055832864441379163665207478850346225409097099224441961759005729901417513868488040304807979469736058100622454421518000694479412725386233031148451448709492123272409869586612980001084315428651059037574110674056714567704058737233821597109784936093798684789032402695386444640246829073543516141349874020743011423161907939294106915433906820944970190682372440850862666361147062943863496127876526488401333878338549855079850444807502721868646255980421406386216224487841743325015724316805665327693332351557018397905248326291056171119630521135723931289526085551716412473212220651498812210076906316941189279595389693687919231600055754133054195598369553155497521234692514039190407507212518068409803892700539852436461319147523328085421426307114787769147403892858898018097595157585764530642041158179571442661933981237979584586600882211436546024009108362829664477211135902947908249212225891856877349777354283606639423745417844618852337796418766456447590566928192066961002004100849919623874634371161481276502373552580335971231982658641068576388523165822988435066041871541678486979062550745870737331594210015808955436255884343492711426500115605166828610996473228932373532110817952605714724367518658756138430235850421520991482163601893650988120242453735244645580855208334667536484100075203269349097863630731941102368061453120877324991937089663306870133293159971208732678648654939273522211125591874257892389416883109643895003818501061854345325738067615747036594075429732879226643496296900831117920598431673278507353181295390637829445796684749325684458229255987782518344445458104776780186944616393552954532430467425946744958372292930117437715451062106946344874981320265929582581346530315916069877349650533402496298794694987235722437675263185507958904699827982201456562553616201650606916671686544908038616365404016987319203663647445868133220602081823463285618307049258419634235323201887886565959189515105642085276217081733599512507289512603428471832822552010084436321725498856840054763489208647287688419049070239939220359167352348328269789805661972443319425761599189737418993614029581807359594097006285184240425563112112163218235841279514976700878640435197736038679159184057124403514011976076895090942432391842408434224037957443694701639862606159222992194619763921491129982577621359573271684847401220049333855872790669060826869363553387897535001156804394717222423687500737480042762318321631170463631189761027853723474709920980966330325538206864288603819665978372761555839369986873931121904895046547294580887659894666843462253409822189057586662426047386595895239699529812962855681400083979006196157230520012176658485198026025400450903348309973436806427349129131870496741898234208589168095711592250637443473970014441399388121144206398531428374700131351480210759099271456856799358066136963354594569441820965147390069779397406361460349136493383514394474449295605054224087562699732366452089795918852609796423593460650953019664493466360854831722126320307461682567117167918053894848143857670080215661161498590789464913089077160750622742764804446554134690903444302330166521267625345576839483130634074433216146399854794990517684445916840933009261188221802087106352401600700776843330491883577936323847796315318945210691569161740212855661418724644951098751334682934500592918386876919820304460660745558079996218803142160209526591967023527125096195334415522628114910331107795074140480943551116743240687829134950133260279209648199090828572017462119453632426280402098607966130013389069277107275866444621424748157750395585617854500152566857206116825095588237106758806221707655815400900733325141702865544960034503664700992617166240316396707079401611731010716252859017759297190787799422147079697640071236378559636775684563597448978125316322592526403499384589709449931267105603641577947616247808396169461104139167835832735249078320146891614865975554792427314931872041206002004490044170899835970923052967026441469759560226426618021956904331178501172162603249007143750997709084054632551076069336374481168554612803654800114327134616680569723255824256430497356262260574925263950750655476501714043998073000463996395301290088794845712656720956838830074266408558874774235018749652829303457989578493854551332122360002007953788241257420281556689909668473824664513397989210536885151691513309474760287309598530995187207042410747372967800242210172842249927181412702576004822604702525804891688746216064939832632459647913852568806100955825778855404007309472339557228879617853812008567151973969258848300880760946965935377292020499732257633179048259260556059579233445663890122907142838147629853649929041342165088187219189798377068211304662516295892771149478556023783885074331981051011180672432056992176196627165457389376529330126290045016405533403423169987017468557132056762648297760207616564654822779224423177865903417594403089725143389026295480548631843196728907564817186846022582437364954849469750199883219602644044615508769727981669945060173476128993845297271819439842512818630832829788689158594182134962935604702848099724789323224944393280188604247633652186770993368622051350069586144737384409169282844982483102304673313764639092898827081982293315431232823314647817804832149284866675910210648825473375726935137008790819941749773203000513873699583633883166043969075245870770913262956770477279603418943476905789031591280115378668993338757518057331616447387470368106892596614419308097891817504288043418539774467098258869743149408969602147023642320838103674219551483385895440920808037120891540895817796171913083488711243365338306887899310451125622331864228236287282447713330855187360520439988187779400592503792641047833734089120898504679851762221927022673794313871064946186813900305757588538336567411117524456781107912507554383688768651685012085761007287131472062037678634446261930942168011279912169085892678641095909652870861277068765965759291773256108001516081772732832122183178649743338270242841806885017363610390560600234305900568157122421735133907378535253041758717481073348253781905586689480277426181831668406001916062620055171796857932441460981019165536050759744709325047228991146151287254667781289132764114567144648783771102287761431194802360357625376002471623371596165115589274407971984167553324880234038815593454442889536651468177768236236603029026373106977246359048619066585222392695107302186855510042338332391175652234709689161373637069034970828368885979357077361817420338364052579061495402304054213415293422950989662246170184953778630194197515636288481982283466502215640034233359887543867822850122420632172479662967562854055725984079340552340331831188375531218264331117495238252714244723829772869840541631939809538054825478685896103494125391088886875205556968180324344916899194556847889723402157359850986465967703560002954178353807962370800522598856683481977730932850706974073065756919215979549182979926199495601187387926372371692021044582508852358374330574674576088489196466198478180601963660118248040063707187174841944071799631228233641191259266072920352003807011362634160249206155323131474939763366886674497238213739154054285544567841671776508787167009287300827769861051613584757022758514754322500729957548978783343617577286181115506344276307617675056785152654461457887104418052996598568836017873157545912590897257211513770123978782671207294714378243339965968737394378915630598605796522520042050983037799613125687122237416985497298806890177034304183673828574389652495309774838739528712304198842933282884760336222083883337693474622135126098368067552340896089020141273878164123270974887344805986491296961983679602618954082497895022173358343562687861917056385408463714688449146022287418226898595028507849696190226365991973984444022516435916871203239474152952656656283152835757689003927944319143164139679420540808865878908919159075004753931030996519206579611506482439118388681033991982357457256450708889800437911797722924902819022985274389846652455559454193537733024005320023281033326398435495115574218782093393807916365020477255740156392317578578776540590882016824635631996400011411250353480236919203647053419644123651659080297522694763200674199513635543223185208582234337363962200173235797451034253255732307359440753814981764304171559264922421973880124570221411810671444470578538231592013645996691181181183137971499663225181395282608272934615112172000782836961286819857353882413593402071505596046106944120515771277219763542442556609576917667806620143213745817585421412746414430322596728015723612108059285030455949359474300006297493449001754202158420099056260259652612582322951531701632455188525866218582342759858524300027306563948572290879686667832646111447718707888201459030445829481158798225034689645095569062231309447365120091367843850363314379774124314491149938801848449596095266846902917796643962549506025518282788122595432538851271279998687728066445065203143459751009968475019332731301866525902730810826265371079257704666500287478683957019290158122160387023193018369424712064987549954821705955216455763765862870889882320442554873646188900347885869725788663952387165374830933896930163278095677968353045954684946238877165901904620961642943062320826435312866648289843126987896420685061738160842523624515889819633170650808359705958789697062688621827810058697866189279544635587043952822203954587368536440140414819595450893927659059680154731286115551629527760483157520814760530951540743302795947169099640003424108782268584828022710458547862690193674409008534223023395848723523110918352554397674206902761503988831290668632136926926944739679727721316401548162702480989478801421212915735819910770887072715075971897695624397693069067624791350563860988346580443303376564054043194650811737410179257022762561498683084665761411913105143921514015501066167213838996542937774045072481925543880903498427344568958683061691412625840311831123479515821937170527883386605896577968748817331512807899151127421653693998384243608509877492829934212614071362149992729753965087496464227931925549684662666649844098059795461344607806844793147038450908760588153691646441156235000153893116979355518948050863420424519252901509013679138673932249881699046112222603048563884345192471439631401630250015070844595252666485615622559669323323551151641401429735928014010717767721363644407648765956084221767798336378133533854217107326917817805128298003425399311491685183573553204325271765252872537066159941976961567861795368064509519521314710386339190151404849531191841987176141230607076017707868880370261602561609663081460067789298183855394858370539665343609282349948249706647665137449829636747760851960115185542698687695672006951424505512530566100017982429054837293717319018084886397946508202682168962147305647966458308508081099881772407429062052615207744190237678302821095974131442233730516795737139092909664111357655707909577558928961524449480998400063092414978525147785262227207222057407040026783050248992344134707794355174254120908558013777590448398127410500363646738465477782775735917657455847959567874316116375100864823032781355781151220102742169989947789977376164075171339224272665379471207073093724794350679855905980796341310914608478053443921908759528972715573535482528478507631239416876667606920223851673556461333158079713784549467705269399512036005068256843252733770011542834328053806493455233399693179938191080536861769418551775160609789607433176109585989704693504448607396884291537386524651509234123499630368992556876087645944537915702239183388016686525668538394044959430645644005676837565842511935997711631233303537387161216296779383358317197398146229425028754857116218015950360813122094906228103647798825589641999520453661361922400866018513404082974640749999182596398454411276411977831610667872685892634236287162959009951016700366005054933512162648452458942431929614602221190314875234368152141232199001039292948105557288509848375984717761574104660058788583119174136415638875294868939175107718658210668414045716119384400041868657486938722952608224147337944036506130153401263836736308354171430725567067212820599541638471636848708927928629619036411655516511274034392649864385603697302657105507335381208952169704959211664735590558901388815417844265956345214725554447449892822007585805238824397254784809075354906862994113196055790930648433008465737734698765252428387137194477709943254740110283337837709820793355496496458710430013273286643700371950854613920671801751641622579178212121687656689389033316692394399414933575773083941364983579387381019484566483837877577049497131634807009417238951035904865789211376028075931086447643839183555851444500463196542185111059389783938255096984464184576209593481312361670331199817162377206341920649776041270297086779580745005781267975964509245566945090724504650073210985790347512110799797816327017052636030504907021492081678546286289300292050675405659981010685017023235501176952466391594451449202799634234598968766720107643281160953151891189749091420473364941724002257325230755061438183311921020012276649993781396236788589284699020994449319717721287567173816329511320776812926878770779150722496999516240579590376422161832684080602653009716562476041528965385696819978625539682659378126725469494450382291832959231101630299220468169284553807602396257320650682366024336114003362608770223912012350973162074168237949138328709025879468234947731039264311684328234432973803797812781809049676657843442621691159459198970246948678277213449169727957062628331900347498727294856539462324673325656756682679563367074437052621524737335237694280141218422879213873182614126447732324142856090137777813686858724647504483352208379472179680811953603819152170704255383725165992957551684876420647659052936158023796474987159436381291143836475595322237914295616020665549727787787315064142703511353593538805231972059284787065225670674540704895805845400737400978225240804249819510651162415443448430788194327566892275823029330693921976567914022094671480906430604811369592278821867677085923493101562041975005902791886896229942908468292863167472136729988873150781444086967159263699632909901878171462649403152591664226017659982927299396804763683601849134829951873852519463279631708127432560138502047268366450030805097126958788669242510521172930084023680702488347696435362958257661488460196212869255862582298516344148388742593552602000193791751393194479254865109497265415349850119710301856783815633604312515974838366391930093986981737807745920251508252410371845500680934410948740013967670648438583474918780241477772691798066507160555619377788754992805380794421603351728915145314172352018893964382383846130578279345807811804880422572564332027737759421249355371808659055723251626856835302282632711985310164274392837238491491728073715561495685360689707282770549836957843103637759471393070829226947739085516658225513713767242400397294118534911162117744117701007366579324357661136648388589243991292812499941074807287923539247471045285698986397144196645131662218310467592443394728442578389248299243960562268713718976665665418842571411989216234807876326384906255603932321615904981377513711624496679773145142973858797287635993271699645553175058685344567689842924589139617058618464130485381451741865328002686822224166853883181796970617202054803359437312736819020863430709123845857824431000814489229814478092804277457527020628152513818995696071620443018097485852271214691312449144493082858880863655161689854866872848974936167808391485610792212485780485657661003477045934065983845122659403270624204747326835462882739773502093851451491228326488214166934776898550041404824532991670673784533498185655692966035940283701872322225305020881466572927134698629206971853441797400339672890836512087474931991845744944131214322858174889823354561025743147654126092490435737636704838433248838475711805338907468769165311888529735596646246428655977272726976416776513193175995114870731499658633006306235327699590994709982281451095093821199610398402120029249587297022007503845781745323280454909012996127321227446368738006200049783666462921450990693740654711894488894572373576343682135024565773875949805502333600398644329965400227540251590302856255430471608134030848274998790865613064797448235513455064140827299633017370511993146413530929066960062300445080832936171305487013715933473072918286282337187695290438448571921666717565907005715121038521993994899489764742583264945260250959312964264426917333695525347920287347707494966637139025788381228024195650353184511218838229177935609075250008038534770428471055574848131217277765490919487707393643272800752866886544624970671733507953557489247139375771814643932052261994728851759288598646488326389957340952111747877254575512461812340226280062761185918373806977448006630040395713636289186872475811441221566285548027824982987488833425732248472382241424443076658329545512987285232156844534820870257352426347598370514898125863209618090639275152513139337519314161413249432548395015124684632585855094018116942472914794682205179956709989731742099351238960919134329349190137810417138554066203854030713535534360874373433255558367866632409035238900106514357720395837924583528080567871712060579565971674255275913014499068699690695856652418344321970848322753192263166523446666710605107269338272481474924538333368111561200919551385480926657547888534614815293913787640397449015685513502944185409137317519216439059466889368149402306487226086025553770415802153142789749013785361451937984925064416231119018666392854959176697637789128580479840413096175111324106555348548139697049268051054494339938291326011351231727751306907609054762148615126091770882959446225233631008235744323737496751128947154700469502969346351528461700756981164555493729864078108215249340554315217663598459172147681899638126100367676297126001884929382236985178344594125097031325792288475687473261021377778325076382698232606117161164149924048139139198050964142311661988831476261419043723877034650054448490488686386546224321462146390295366201680120776207320533765450816503411033519686751880628642398997977226590132153530356991383428292885985527617549685429924574598765773897074434103164002843737521839283292509466004673094739995448026376439690569357160425695990864548229065552897731242177035756066309626965456705210070690559353289410503784199290754003327222449719658467507222326156198547629204731706210858167173484764035971459595962268517588448755410331374452643203931958285327947933024553984608529420130992549118719688664779171339585147957584304005425428599974507938657725021233760815737384073145157585937893728426127069083677374750508065037478882178280603401365972322952626725798367845766006730097586258969639122986664291815876749524533486294795488074723851589302576596186312395943730401945240435144891168655599690006597608956778059202860857834253622859040892140055950140283674601378434192423157670538060522416740472427131787655610237436710671868725564961519737043373722957945876940646327477748652350152292050486859020346942671258109038266585120986777517935037797183559074647752103061243295505254578843067554348654252619898945651561594542354655667883538719423649224829484993854770016514099996763024582536602869089991877823482462905352641833586604350516003277548496968707743691482152093669874307908508581578569649839192790666400600645940721490487240393501153964244358728353447298922175661006654069763326594325442640957443954566739436028082264456585706095463733949261783320700793888713892147195997789924483281832635262510005052958030534025319847977275598684485813847373774144874635358056076284689743788655215336791738620169797654341312691565232363328290478854961476383930233940586943419009779685052363878596484418819136660833616755462217933644156486183802595003703944191095579240760341170024483658279489049366427296845233711882259831102724045458643781831506109944663308115000891769547420145796947966962280450199720304444853203294647995101501935673254373190338304322177941907104189522784100660250000118818609779948962471077569722888456243341215228315534652098713791257547173402545195601583854804549548882979369110072173298724340345411156165305344484006348101008930268576086858158755925003653208871572488802058081327441156794186937073237137297365835892632082026179775753734303599711007790480511052759504786007213535744052190374804505510431914078305848536265327669544146773346756196423245968046734182938969853759807894240794116127483574552518119456678004950182973878909641987631973654854846405605436077537281579315553196967988278555427213985767540356275143889947235825766816293759693283637773059716185896844738479006876270692225097219725148894834002623233508919841082583773683639648528962570268423065110691153460532912343043289422187921682580091101762707558245577996751196957730073618815002378546196263204442859255279895031008143520778973254992532877980632203564697143204263706697784390831124840354767528838673730605757913118801492830936660475090638403213869345975141956299116060634633978728373825359406394122829066389739787107903939088017101593204017249812431956094654141161505494785726147860975048597474634096778667988902952679879261601078809333143821329266643689482396322666820851077142032121149296712629977059061461608169335534385058062834638092277356590560106292638153508386580186645466119347201375210328475996920465149179596805678778489136008916968002026788126506156564296994537138250596776780936745396871066464115363728316211881914688652734740912906609097708442655430686642634740389221438596826606963448079208877389721122219241940391756700019527963684165339507975208289629953050743074415556073572464977363161222712521964728230178449841023759184745849991923792191469737953431874854687145401338365923446693372986167343962227886622860921368999568703284596228892334218809991038189663533735920527650405758001985720302271308672040386196292423794501647742431708066315194335363859619446185300497406906242738850049439939998352878609369115000524687877139309918758473190739697790611923254198147618748972267965613494099366622383626458376954798521039597654051674233843860227595224704168036221713543409086099476562374051204223103475714601742410156911114271228758974184922946987486222253149713052609972850009103513004352105979780744281024877482152357993793623384128320701827681580240388911039451426988430687579259293085712368363172048801852744245266076503025415058962491066302200336413342593421068721731657031016502889113015071750578851501166218693764269136562567167257587042486616079184747249996416808278026381351827124680751432245154549498691432751517955317004734819455533174573282816570075982370149191743690846308559030700262575481447320121764367266993233340831066909706217956111556766367098447574905219388398324213924303920989052972900013417016496747096976266892197695874402829696383197047340403352103798601972082383517829891444608923449042568520684684908739295323268345930513645670187586994156789069102182494614241576693060211527700591488245642969103129107212395318874529469762354251602298444552769103394626999808164155021627197879005015140994765364319392696997609148034024366569690174170081147685713817360342879585635336534704668771385850233065855281794374509886136412776743002513267367441170155112963809577511317474240761395812053325337748022215715986662044070969226777174168099958290285490168159718180925401628303753470554271443816304721482991180577338807990181214768078509121196178397673039885669281199797624211432246937221811720397323356194713606327200826563303711547003022810985691621637753982327903660928459169577890185692439221360601399888805686704712282839429061563059615078210991313920717767652411820003949039691272956441567046677240080363682309481264072398188906056476974142120839945352133753260779425165118682483088574350324877451851052604774441300601245883966454864887199256009869774875220377703457134824591152116391139647504147552181387395129287769488762552515431128675415849660469840423580859579552687720896553750558936836624440068182355257692969397475226554450824613674973840537991860364994691332252475342928127050553630080509674390803372643322076738169247121370231314576200388592857618027793907716432075931910953004657926815632098511151458388832324790244553199910343770066173920928015389469600936410689873090929694591967168906308306958036859641844060422038382080009234647434487846632862930018925474690746013858042213038835745777614148016838900327053193655480294874865335063123586190956940824756587545346873945594991547760577607481840505342264393028823944018738526456340619767010191089840163081168095031591729736069207121512337929450246626328879322862701394710618405910850573407191294234044848253383063748267829646975170830812077681841720441291226996272840355280922303302365815471437646684764310455438155328508715086182827536180757705417421430879055695988225173791244422253791869432620739329884284040933393544251567968968969476034275734037054500667583603571810604964236175539585015480221833923306551504241612798944529983501930424269075170088501498387216829430469156143240729444657058753928200930086744471152983991279930309838196028825366580636857519169160176324771241300441367801401458025842114360573001821561073156014824453064870921318462676314192964436357250461279033904659516986407190950708710431815366855627227168068313934476986227313989521537565261540951910936449645394126206049251096526744232694756530205413252386003297925043221062738352382864746319349554796863384204996757286213281331133523635039794732554173926516531700432616669190689904945253171266842123621320164885626585709523056271222083607173478503755609028809175032442221810745688620816942432705372870519622630855056164837726658245283114612435547744393792766114653187561501601383328790655581468074985285011817452425499014553277282369694417994003953129646726886326906777857633206357305034943986655617066876403437137148738658944955281266110597644318682226264947092238718218353009743212639159136929778960286034706245815305976994281768894102234153522380230753219193149909681822280483330113112117537430288071509660351545582121910292145728654845283451839852272983731951234665015102272108768296973629109291742998813293551377287428907109606756684214420541903983696486928049012262000152248031892408766062014884785017398470974089110259924718262767069520082285586448569710202409011705099102318894354060850439115009300463010562929516011286254158110001889778919040573329828868700603697489409069950273620999940750288789827876021389395572439110643873800032366161500660429320688584372585807609520967284544271907512605060311483053662785475038622762717028773779204173879338010731537810373877462967191938146045484518258494498446921696187240859614878269162175826098662325691485238717460263330019781647301459978276516399423637542314927229109906666038404692538933693425286078697327621493391661047482668258606937030446175754474824066429611145836856990980813790235633776537758264199170341069256676730421894305448674037198666713871304918942287445225685851735843737777520310275502839762639899683840557525530716921553001115259130523398872483020712365773668110748219275243820592271535133067322761315717700116149634806849772110756352206071990694303453597213459821543563104273832776679983551036319572234428210292110586319466170144072069801595224003944235644292433684671086240768784179055823249664501836351796780808841727917325078845115366163621752442315321117968012998395480505942347752879076637373358580391182495312443296978077203325656207995098285856863616239010444289172564410710224399687127697747275999635234954668890799073669376732367773500127459789537620044133443894612136759743521284393086050590377074269646984313035668420685754180557532665164641574621441311425453624874255537563604390890071390953324422483274939692382875811766244674065252050546735507856382196965323069286771097893287821888906388680965772105739379717998146689872222963972883127161604031582448785242903305943954697712605606572684979594806210070088817899884138827202940876864333635497067482768167450173344999974992392957619028254045942352968448631196898692085199713279523083710476259339727285419703828545284689520812827525194423728766986031110582654840182160315512723563830226710432829533052905592380101401709849917297952225818801079762617240498647150533835237723853692561894539571672470334091132713775563100532408779929813626568766651460283387128011731146561365267418464135680155311594816224223312404964895517940853334267597908242339317756975335276073407807220210065033017771804022232244209468556063464402818388283472206707368497635190535127298730725865227065876139398252349046805038868078305904660233712713427726823399907040677019726035818231212628735577898146441244421608903207031120582167655969815557947880604063901248353192407836342586892436387499685843866898511581712378461695769639893116814305830077263791990250588668199970329622643367110360131670048562084553465327187280078854041104990243881013299620410688757679110596968330395393374847834928571064735444713592271571721308168285827971966423289592674930868529919760452313969852266665447083355193091832913737483559878563781821601116830170916161465199471273102115132315394503151245579320132929215590438912368333241589577182510863710780828481918782394130490940763993703374817838340581218997011301939082939490273504078556487118809059939691782326678114690964721679984461582291747338513420050720440344952046793507273287353571544883825240167488244770024778723857076712565246790920980511965562626058203670663303320329011755349215862497684740900878814250241190488549555863819226776184336551603506925953050378458725286694733215429333241275877413141911344699841476354882160053811955200425838132398931246521655392744728474008301414322243893295624169168277434107443236533896591605854732361096982901914378918794968239913127578052885158598884422231806047740639497004958088495355027235838736051207915969717530357113315636146350952838334239583978804628116351305896729358891742599136298770734662892020122624033830338111655382758401393634311882597609120232515149098262349565695676483741629706774417245035414683787432370142258176274440882912130274173708083654139241699979984379231656334643024672203930591176576623493163199427388422651915821376460731211215654320834560404852840418706262116141215070803000157843262357548682885393259317777378960083587379271790575809778154347296844387502897114109374822305619402929615887472684850134203650749532423400945851303185788955541054362024023884340059371985598511804338777993461095562793929042775111711385405928988637928174799765188278422825130262317694114007557913119026806123616548719913769717955580492718495755066555811381100503035640428051854239380944519782267936887125123167514099807219315939978649140134250476178348664548365536421201891025936486772622907067152184785917132587623206316861834192370103600538040378273199213725440686128853229553400887733409098925053095513329862676278628418162406468458668989217913024706513817973532571230241958970289423232838523495709897500513529527460735333415125902333176893721576869423283319046733092643191520041946743999766746135689949852397573885102547342628958368331341330773940672123203303774467942219978460573385244152059855570957176991550496899307008379394693086028228183916941668956263171026717653001304479791093538357960841775554368858402963779437744304969843011590430518035616375373551291397753088887443809052294351117837493191950131102775969137174193611036973227946591022803453389630748627745948304765447270582713568929736837062983550717356420691541873513705473137770663742112618592250382789521457673027161475195360473829991726575932692263531406308149185399652211553682497147206096520291063886794452652359145504073703309469538531546995916425097440715854290032796251468641920948411020934026537643917280000910499027384206365158501536551191060371752219116823972950280679922326620291606422255323685620615646139606742579169561484011523744014447155699856982707093282834525685030403399963374269406740710293448839465119000019569681223077247866006844197477496096437038457527851832358397319770776063635988980862743700665176992466001620081443000003938013983112915848250183070518008852787616563468086511422373143281024079647924936997052449254817444105487869316548178567288230981855783843833562080595834488949601707329155337941580888972499673433470971561050801650799760753997352937730734982416356999117094841506070660775396128249822385348774980396160380767986557848695705529844697730051524137683739762328168477393498448023124758701750418431059626341425423627267426738691102142379406269826542126510010324273203537062741943738710581040218089272832436894903434467481510686219687424387895209186278611060059672360190306079141836188059118201784252382375726969031189948912797102837114004021473946727168131420750948422556078394316923958658059860418293280359904393213744584417507789354659463523439338725209869494529233248146692476592326131987821417635449551117234767091627059185269609148224625085040131459907983707838091459039064265476153123990531034344695855108180795094170240359774545602396462114509473496143056012457294040699692886206441446423488584975414734384698410724206200945858096638504925100504725923826254960488613833165668024327786372109668783051954852611636488632008302221650756071010601089951835009239220609951089737397176979713350510746590046953963493220737283746136926169641338659786935951910179771193447328832290333204058669365742894216931131265659185976443583961104708448438597038923919769544518396290443082431184977472359164109098015829805192088655970378540241447391511447951403592608923564296739967483105766747064546554092428240704408285234539500995482517275243542398688182018681573960813921957582996291203170928868046140564632310134647952597290103112871467448545240169496809839222975719430393831216094804392836127399326844187232403793751885744377175463847851993509063435175717030488256860353471260979466718251482491086596196512653270342929943077972124884791729160653555119149896583100031500189346120532596558668010457056669147753957139664788329848954473900178399606200264726479011133793419065438869502035398366010817773646535215017792823835107866375431878292655948941510415664467868373968694922093527445996684037703969747258052624548032510017309415160896490500171388891289623215596199911924382627259799538435794698575744329294147461168505119489884049265671143278672358745639785686760142577840986416738703696296669538221198863327063725620657837372686825401489489524513347670000295074603015328212112750263163979004819296901270982731857200445847055625363544120346493126516904591192032488801821780793787093490989614022344608593557109159782476995780088973048726836548767928716633635865318089341816684568381654237696492800358971575750383424862004700729079560683929718615180258361609079701835015164801136249940864411168723368790567203494684771651301698105974983826892593558139573683166750419571085642239202288752059840505750744637691114609321492059296816810228356294202625857512129316810047742180952597905842910566817212956030445009348677400793556431366500148592155495356047528817335719400616662144196207559555941545683766561031341861423131803851281017772595861176956018129024248659513902299611815635684355467333373884147180112139415180027324693640413046241459220992597001613357314307302502573238153496736396890088322947936158666272376822708905138858868021238706105157800454752090309593079706291326891679486368133336362531837299558287319657401592225821239819823836791852760426206540583441918566999170887507563493842437976551915003659915710784925574516557500920138674480621048337063908634161348248398377409289394522936255563838920354323776840925216792884938937893234275682690990487978370854319665223499382307495135070008902152306810538315755035984776938871016346194378164040808142921377139721997445629198556974445753491471896682082100014997266832613674425668750639292896784554953066395548745088537118152596597343185796597713385049252455884661298832713606933353960540227934683163184456212314147955026740864695264250563157161580088337353933680651909914638582203066021581823200392294907634000723210055644183585958046840331071520257015478730931148843188788894484668965281393069848381216210054573437755843864727119471727453992788318450089570563588796720455908144180186583488572207047482568496854806291336905696875928505786680854116211514759416828840986522518171947251592335298086692247755229511594518996851712210669654977248645039483576623644485645007462409855502339402124108636471595609167552593926531868848176358669966586372925165615564531351088379730309183924966686659300132911677651882579825761837971618439032566658550739293631846803921485958491119464041726448204092172391708929274021490829088238904780451527152523253016866512469197214847370433851234682130331589757245847716398117280263989592211907888823098898940162649481523499005314725997660849851316913484246762089083421923059866191307164019891743962798882831447196962216151261579707217426879702681056318442872691082716980919869044827113581135164437634474696789850578769565879259031388257442316563584920429868669358714572087036680359056127175321304556207504808848242079768096916913868910134564008532246968714864726401264220102540023418072927196031142434140190819870770038777610360971701954110860774058264875925125957346826212520588302561059074722609379954897590344108752682673173275576127796533322100926309649919872725213650440725932046193805868534197659129567913903497414946917992321548538817565094434982608861600193558264503563768563559478943249315281938565648496166495461803880357594712970737060785400145168660892722092886225067535093273079017719364874430121251695813775553218086358223649259855257448655488456505275973965997034276881923443198439994251988035249248620219595907080442797434888942461687520623817370085080301362173223368628314485683989782686200325369505580872299904320039056612212194331423219940999966579887491961900318548205685134118338515967932317576932021793025020986794217061058080179409851330958909310644770153523520571557262634813874175740860504316116845389259187356681981693697820700707723811023770238466775725848714556760163637128310956900758733716439790197083204538766095423410590786568494353508976592427269528891718946277028094441701532492325480572268278790361450500231628255406948441057206597941133018250522428206283765590341110495858417368076880915341293215805634683740541997462906159792691180049353856100284708350627938092416134728987838057640040126191315009253894155686116638796817723746218967122112774316915703265775975065248600671961905153270093346808909422675554648781987724480845473842067122645907818934713106593500890440515449661856294798277691143081943223878357080403084764713580708934556880340241750972342278865377460522960884247363772944624303203910435389982518835137741878180169597296656155343082714303150848736381456356999364128564456538296797867557397744383232744225315986112837681273552387037975752685732213582904785869726661479367831839799698911761075476325965685441661781836064723581698200627710156045400819604055063303661539403537979527658060418005501854339720988328168004308203679987981556091229746835606930845838067160454464227830670822461179710464407614669551348135173327567417914137497315975387971552326459672715250770677998765458507050226278561314884142413798072167682739425354768948617395113221742655200582477761115113781150024083052394448618116673450763560908706592861965661004742829777625544649351019517604853733860232287920996974868654679958898917152751000419222744962528282346678927652190147151339761653816163558930677294151073160211432623258308892630437088529282979544638006385932865906177315727826754232256159344200641932116608205390511401030139380348635866873940541752221583625887655647853464867861290858580662422483255743646545815913656294319726505206709587250260705215327440291295258096142311586160168204898443568529328810847085337105695337957772448715950987594329787315062526748367510156626040652664534785512829055180609287074501682487846310614571388067509674654586432539243582716051800512627811173451610708106141083340670081436034911712191627737846680834164212672015777922465197497000934374403461838349435246578062967041647946248805087011133477054967165797798311790465463484455110834784713608092803614078096432751576801451603632935573854287720221918005084758917806556491279415440028463411423069015971990689224352632381440799181186836146630471113388755216101688286576240168942671153307661083234685654587304160982512849073050058670795799091799751219710897250547057532425253736845898003607974209100055267371121426592269089194227564646821151763152991344038807868230787703489802808223341690305931577297765045134339085220568666483398818199135075121520932960218041354651016194130365296576533490372774328671031638211597827075200340538863552029193939219857559500647692622522640869605444737856367811178651248891171591970989453517623695416255486506869737262492047654246384899110555024139016588591961713032862657497139746505935322516678033665807247894923674712517437245538465539278987883350458488273049286924223227898210524104536015152766300353044285540615052242826972465350706936833993487352139942973452490452611229662085994107432474369789680293181431276139011671377788253718859756011424560604224903877651434026267943225600806617008128009291125509646438085449773746087613040015255815059842074860400254384737983678062026911560458446738604863976436428628420353204830570641446257617337806789740200702858803622747791314872476659654380702255777393159908621589076447875535776322145943997810091139538284335951689637884908330291811550442171393512428785176930330746863134390858156378898935260712077182120773065173727166434061881873587739474155001149011404485095851540052928896071793577368219167589678410043874725646345804372444692428348636338213707273436609609807260914095098267029783697750423255179369016041521304540027200078119082786001850855273898710241158259593056089228679743890559687909694662537861792090713441041759445526630366636801751803372369171138760595480413884367396590721344538076321982645896354260862629667024066185444067657235546327140568889928075875792639490327232821548321292712350520119563581720292378003989627002894541303175847184839263897558058472450237122996595974989433784031765061786076337305605827268323618951714450886703032024820664488306157981450670127461029146946806366652973153217685659061057469352981580137919972727485889893124074522336844522567564521937661632318027615903101281967809417287936481772397337037495986474269098897392289676973775741922726815635381346990820004707157708189112379846840480443615073321141191943064396276359732615082944924933233711871352425627123976571993389462668230321991980911218103364327527931023230214465955002381417227227488622411928516743653393673439172270364430575320488248423093058884605989243387475201048567018186712504213776715874051392718607840233515056185383115676718498744335562376345200676945683929618627881006612048676138212805438897106745203047991090978011545669465801267160528798201021079420441045398815085096820967435568521877179760016981061176274495160125670295928889811736550018114486349296543155429055298474053227434675361047993996273816400217174776668634557281867725690525566133521088001682462226246357487567966223438540362785074203518010718779889622893614837491758416617398689339775136060921720175549605641124754529133022534282102926110582791018851575973906821980575518349356302929635733246792627849446965284410763031658999833485468991355616234634983725058270418131964935414868221452432079843525107015336815843885426465676366129479348444902623073265638768269943022951160109511243963989762934462751086948906488891485172348683359649123372884162767338519357190879534088391033873004843082365999222467503440552314956392961955813006497195732960225941912969233626589549590577233495005190726701021185770051741157124862644750124742047420237476255220321989823699546380032869486230498004074626163648775535344955155169616450086638873069803024261122629878765970421669832765337847164176219371997327754343619561286280775428528004103149499713481179446882504711739584866965534551483008303156473603756777216438262519383964271431958235788403874293957530655388144523617681788364996525363609311806217925896332137945341897594493335927227316590904136651190188034629446304576844745753075946781738723618041908951447979681570862017698628802143662278243568270091079769031938527286429704841442525935868983587666935913765555214872662361588327709034705377767316531846670848522843361695940756762684672693910097963527300712417829704055144313826401336984336771273343296603129105539535303395891721348068187991593157395610323541621976995941018099451049506179341454675337289001108698917838705984132802429022575589984471901543319599741491413351052759623573143599209155034182295107555110469287600128200262085586049781623866568973692784224678218656291020123036660710298083441064152735301258049602308597245901323096540891299819754885195799748563735507313711478318786148386435352099310873930429827590164524796552633874845243125768192441518901130277121965624577594603302448822475631693589765417258093534678276355910798685248274909120711715470902833646571406536072051870281580443192901209970536287272745474834102551326587195307604332535958747492229492207381450671067909231319587703351519013765062722922239816354057545283418387302855380186140321494375369503428657450583696572591656196304404116098282587434122754429895468635346683897237717452461230937589780243659816823093945276949682768093558175256447354435222231906473456330443880155046476016274850585854100492196667183983333317780008044685539018056524331096563053910235932279541339083991558281008658968628655061688193924717192519941775402452112889573386697344176780075345152359030788981908025036520763212990057416295090982961160080137815850710412112985209033043674018190567538494786375990457083037401000776542672339770523255279734143222595328594252394397921142488856663303303191584537504129221118081389564479418314016576899700336233773666929953375878926963364063100602030760636285157781509574629708480900123460315890528961184860353992735748122651214599340173010840845322034640476251327921981083364477855445887913684334463352235148694607874263242847164588045095031733263206821257299963248210338619100813443006375268834954590055790301732465879272577961582318652736464305916834107348917306703134037810826676469370864428920230608719364562735897706943465361995259969362487060864924640629634361087145393980314846875294589665091285231876862950524674719197857526736300100392809224470086485415057089476035824461218892132926167654934489376465257999881996788108044721875372947381478963449329289936939364611568131747346495330952660458138013402565684924247734733983585700704302178560683805047649841175956000998638534522701494251305573725879164662119519797940017859705594931699083428967585958193965812062574519839810106242570362751618118283869456615591038523028527779601835450249856369714976499019587951138247634470822760970574056554155390044583608698070645113646064221788886255250294278507161779489314282453309982519786550923502965560485840228643830518686835266963187719201119531559802271420527323384368959586467870798416104036987345543792070663917132044308450963170074678644569934745544418055774220971863234206874690058576242436383073530485942321518934681801681655073283452167940440949411635048211502177347456890567472492475587861659798064722523967077891101124467685917219544780884306992225535919201298844669146917047556307879140807392187889968033029693204618411342743246707299701100675311027109999336568288254789216892568303121543060962966198099492084063351816483862843648658596612528686505798661241700985056381545875970901931579566430264011840510578927527167042830992299780323910235831716985142401569860001461838275966032483800271375969710647183339665940738159999846573455034462170689756538929988009755515211853983814417502698804925955272386368513976100938929443577179433894217746307301645437314570130361685434757418709627660322472957162161229931143518629990786372438365226983626226988515018025989692176494956699724362371270748609043934939263641123137680347789353123608502930695755167437780252712619431147484893212302584179594582123473687821107596601494879528508110459757154335553961320386580069743697388569145814925451706006077648121796712697810454434315753035299343829963179024352572068634163257971460474960999119635197139106290043373879941736932099942795447798186967224663220998519245186962780795724265974347793246845419441821712929016349424083527486123134209130808290272742666590976481965887903695293011827034350621261000443697636655491106342618365629948061957745230363827470456338699098332032845522021883207715965646645627211160951240499417359053986503276673560231012048139232115382702958793552882639579216580112340414798084431433032568486344864994807360201621269288535918960708944665101976774722817189537842474493199219098690302727021469564543962075734266200464060607589050440241072878812075952268548098692744509649352380223759818384842783468763782174857438984335461876751684158608370980976357316224209633436174528816626631354277441602992300475530417853307919106327421886101304195378108508978021928986732535360523606049476907827236446088319242768812306248380628652515542658836045658057697888486277859314970633876078490524885918805371922902983745663925944396509161025224387621535276137678330049393178778260599772451680614417173028726009393355405826242550803277406495896149854209181732626543708885678500308515877482404317208614920503951179689655379486579296223422438158297953262043531930606176193465039849053463605648872431300297480706791468387096639488022154228307600271384081388346150764318082313041878843146522586400655370820116207123343460646196995066447700473853879811540004694631141702881295552376075438883175903597614640373916472641315638952608796408021721101096265893724414890508623315487921582132152132496037642876634659404834539428407923559094686035982293467455050589054093317021578715488883113256793811526183975404487846412974959432690104653859587622015040868288004345117499976510520802454593331362426675473836909018209140844836309670135895099937871868237680563923296919160645078373401041994245133776375397465039479313012731701318229753032560016240293116420545029451845166798082352019317158976310234578352021476588073196322877911350676073095200979347425794106794349001911819640753712649677742941392330861672103306471261565948388741873246303583654247509430324207909001066904962717537232584964603308846963741262764421769943223293032513317008454196630533338945767294829976799371718299525178408341992772737001811980671608663713526959222438658125067015396779889801353063780437298091950703168003780484875346061864625821964663244662986397660979247874555955661058055331746014837288852005125779538809517494771739959719165826505914420955733825657363510673164838604668118705366404703068246244870767927826005329182940302958878248037516004239764182893643313473299928818430869480104905101144024726955077178981461507563501954436698985767592390156862647786944394270458606531690531218350217131297983479012788171377530455515417441120128409645103168805160475749684259294808934047241651081572076081779059887068098921309828222599982794944838531632693390110192243073636195271219451010834069970794835097058902660147792846940285445369763448980550236010929823784982518526719053641199194686602769524183094951652418766451387845190387056055951846984279877010890984950289213464832341723571369970472189946203822093430341261151638476706708764169820267425091008315257324218904070591126831538249426803055678598292389359226240935910618690443084231998588697311619420522706388177867644784832411401207272420445406825782477190287326276076013237956231101707930289613122807006416284918365391146841092736890675747693643762697151584339619156928577283989577748645276468552025072444413268868602025544853284212016077513722090340512767544110165268352366865087278341268157497273903173023125556542337489374409002671123888919453693822412546163266126943661982725516658121230016080536060701023978442444662893843113363932750667094822748195412782765839514119578299577658591424711284366495951088049125021632487818681473591451735228955323708455272457255760922420038344838143208043307414067302649304742918643255217220196480068838419122867930796269744558585103014105599094135120410851768383740725345146104459412885900200358543301487042133784247720622854697625255437568294630895445378010974726022947602575015901572914060370578863938930649550485695281391674613872818113246012531782418076230344329372173240619546008259632437345965238988066125296476902055628863627805267544830602567876598423707453850168134697680606097105437347069028921329408254639376633156679932328989153156976278870925218712689458586953967798312764096091158382935205467912980450543858696631772424140641819625752893102824200663843337794059840687013559056411843733169793701244098258955984668063544266313807273610872001008285947332291992654007049010843989564971666672153731325287289300131981444070946458379231751854380303135676507793882083038402512458030376313135786752666711624758476487819895357085481779778431478832945003228695098009415258550876745412816726264764869492906803420876022204150445478672882908394598089607654644300053349536142830923035808901722984270793886644081130506424969614299885398376527019518637528857353236455646584673336473952869156482554405618611800680972026102533153843821315269187065743069349997398061285588949611676242441703993456414955885436143170204640761873706640542695306517967354762970178784306445753173539361404536906951602129677963230947721307097773676469199039271145897251128801442219182149123335668938329761900170718662852243172865100757090068420305879211072551648608842901396153130076909777740951672095624458868092885315943564481160596755556324494703887885334150112941074766196615929923312221692118877943926665349005646044185015602734596826467828724474133837231644505391781285089375260364394438339879431123865249238854754303128868489691706350447003576162256708235599917464775210973418670691882388855448861618125373286379962546013115631841615291019045810905227146225410845726989539578334715597886038612441437037562070148904620630715580584195444544965396120225919531789944346445309166571908058012983628636063083030350210415785537343586665254394144816158250747251649261385443443932245284500759119521977167928571571029391700845934057507017611214467198011211781411006159421435592914248463002610926492725440937000890566617404085100560738795605818979580900878265806186916193388645159962479879120269400701397583727468991269871555392774000838424287464959938849968824667865272983078189467808692037845916532413456477328173860920261775700184594524101180011571148918613916524909941534800660853058351137026911573593909629591976886850929358483521765656179871120251267706117619438466463634270076373195869109232697519839909178169890959734118623445898303420639105702012640946030228318314699586000413915271466499398145044332512332150077369909659470735134795582854869865019520912526606680858493207451986729682650741528579370941090756908894787106565329967365841345315486590733202077464690864800790747577068689329428954208157490750482046848278083189752340407106062376400567910082869558532847691425920878343116665737998240757564638813981954492760703908923440707765890602393576498651979667585161109820373256715039313702240763274705570449330541642505300866115175804511956580627089730412010189219909488348317959870347647675747522413980418386474918207630436688966083289720952809062794490557408108722695335332116734820348901091842606105490325813591687304691562959341408534603527400857547372500688461088021462534450540863159290343541501355769721937085141150959061367251569310697725655298853431883323603871314494473366456646009058126772732293767178894074877425184339980145924953804850837839105447137205642150408782625159475170291651787459557705542138655884663842694719100691104587073592431536000462332138735527188601903191752439931557212928047962325188469390903772673369281797710014207037518092514800552480192915637285270068502962961499835384870303926252190652571640896919323101698439974751058733982320004352220532213813467903987987633054984085674453028241148314197094944556896589569276566363560234942802856327122379276033490838798145396596055604524841624618695322951475690659416339658374633092286039545984648837101540067611598853671478929929013928500420623228845157395952883267483647786057118461248547538191798241006436420999744211290246586083528912022536645427879180706809526669538223197819354879692780291873738084536875541880106072250814206255772288351052107320354597557411352437973744965283629767768169059295731659392726427287217420830603696287411779873731348282282147318363036665832228214046144860155801227673789362727157390237871504797136707417986377543917569046491032185729416778221103424948624035848616360022894573213154548745428106743977446929185731981786830972847816584604338697458309531689861189023622128683882934045078606226415642045113260337611293975062233244016970454766590129785970775331002765502727825148175695699233864458259204388472508670322888017723091959597093444638675202510478625893036481735627269531786303709035642411496880444720544177947858684506538258905165775753951003073403516500614215271993251870213138113597938258997691966013986053221755559696005883452152267998829980578600747948407601169666309109672967230791672253669824005671502342807007140453133218892065390220725833833863272632879090637019491910599840461234698597393663286722104737225550289194077157848329778260590727791249297541168021590015827945299312697058726702518125047055422143649175120754907619150435629594241431575854691066256676734620467520225370250956114183153534636537946096633345157404972322163356116725961444306845532006134492139153531901338349621698285235511977045362065100621785569194918542739651528002245011814886085057037571762533475454147147441548938588640250025243129615824767611148034498302580053860205347532035203448897140410441082484362534092886657711530798834094543170769826448122649251782277262754385156199002661057676800844282040676637578471777424802646971834051674859802323174337866743549437534769813873291106129777751767099542498248681958412423382535330769490530586612891913465144315647190255473287603068725977484657510722522057892964768624335073843474032437050965103761047752818111160274389617668987549543107142840896115103276886129854253482081948620416941512617698394633860426802887785891692981850132634757086796490007458428730403830478856775695323720339284235551544476408441745632550176147569698060286327757595284894548644817144895651510314588607995670762348155109708896996655508309545277617555068088001311594621288203971722863075370189964791056492712605291095998147767950422079061016657828814997873922704839316410972741529800025286773292108418539777595300369666663708785415727500375689820762145542785681468718921414874609054276147953726584810435561693888966752517122780298635387286298127882781208484349963062047506238644840368496633517082235160739779204078229835493810323307102449143555138158283843650647917278525635376423373339134827653810242658119419193152054278354689230666234128382762325261415609496508828508959360257215529140205187696450630768097523161988136617630479791792843511781850091682721411653371359809066242399560769579880214559876553932137465359873523127647838508332801465057899575430939828054790430949789216979311277831425283615268076414289519332056090361442085824235620923744937178817291380664190559333434462822533939323005680386654607350595549516656461048702370372104783289645391496268114829347631748969223074083622333592404296861264444259373550554090002608132517911032793490025476118966336946992529713761372224957102957877813651479391507913251544504098680474529987783631052987828057876043746270605481208396411022274366014644171470894262752811809890387267356137022712660359620128499719550905002346712877878823675626432475200724355742539905536418203554596215293206491717754969185134501984338350707658087590286656333609826822550842552552536586092710523977020480358915069671593766204840018489809817948445360015771508972568348164007350758903084595042045972386539470827936728166373827719358245452026764025921394885816704596703291318659515751845137451601960800918042974309407000008591539601215442568776060380273587713980521169754766172081640982794784248435818123371129810579516022571205531545449196658889746898755214033432087027086771430424963275460111586611036584574318130867638944952093760046906902846474859903858321205220066068974608875396539644502944519555255356362613260512952879226910919026410276469866902447033135882052209115429822031849772682244623795343225507077736863655008541634579312109849788165914692036992371634880096994525325631730638886382629386456797046416959580971260741018319153082610315951807216677243024718826461963034331785421258761217250676533582222999125812495634833811706586457186011320816757594266157108639446018839611075163307776212965902660400368318686784862625404353062469967960316522429921941886864097771811839101624290263278425118670206483101064535565592307809040708404810949646519189294331558602024403586629596401608078978594713555246964954070318238271875253753399350356890404810656564630232875544735005898929304585918196431697952040415984135643766808284941573946779128738774421680203930738253708680500004340308099228865918415315230494998901972954823842242471855076713447115253316117703137719587020737202681539243516638322797084389959469589681644045845876878446492715789378100384845303501239336192846667173460977230319639250783022019268161376863410483750735689002809644193296340851663266406944673571951999790428330992382875145141059475864940312596999047240866871685457635016234397415031341877505387969427229268459883536610963617550350638078716664708977366867058574022877888022594647227991570909657377637888374754925275109731428129734006454780366686011644451795293920142309823902493171514671426956316558612451205661245369324006500178717243312380625733187502239714985995727120936793732355356370788678034321286630176150278391361134851781169836587014114306572479564890493728244897383097702266498633444326990243289659556859988022320652113428663672634829718642436130135827385740821108629639374719061093531798120521292289803113241501359808549227458023146070071089113839373188089908675486856982256835487766044128130115947784778238726839088055765768995056539506865786329591018078112124697018331334226432889164511982650113837999873421592367095098640893594377084128957949521073590110382777453717190239561139375618676304048179672057097993925508457458145092967461500827081882708246175586505004294910307321813214720497400493421742619612949136277815455752178035197195479874548737685310741339660532053946040655285230793200740093156690611000345927102375848100353000746762123760992474372106336880278919147743033076344920194298917548685471406404812700765831102379409682344347800217897197530063940961006039208484086997728404200249187710287247039014135405008526054559521612030622250309223624459126957159490557444662784882932592052084794425416658653587572103205247282252403112688694205621689070019892642666559823095244053303588458706411922392552315384083185853060569930794113500574856975031231190999867856795051025531807967530667355029045228381468281076247728478310197806821876678203759458020238841386837264067719207759589081437654807595644901086679047049166591512437585737458100837656126633612517459518857889375245859721746406222754194192461614429890703565077340630479517819639089882970487094026599558667990438371028074222180880023228124819114489527757412438362240730895196401510668313697586403815183186430620670592493439020341894872481818297210361853678793185932572118675371911938290606385768243020331861023443599975004324000982678380941488651035037331695419116609739369899179733652631001251416523213584055809704833653580901034323926632618184945722668454323372958048200965425288586760349380322048252371910164010189094268357706428669989190976479152871680958215670486975566922577690530424378443318531878199964540511326826020902896660405512561296618160119474214785203407293922531652192881580966431688683926906892450625902148442514074967133121774479108158716614799754467246196711961503807208184607413588229477966710187219722923233238463283999762740872253364010781505724622411528119961151547927173591643796661166482887240365451763416989806567222616020853444336670871581268406758289788781746873161593823222812349710339461173893635785888026003462718555968940986496652170170835929664885144891327280288301750353848365936059422855343598696278222914015629062469336535048856114908654565598806564395164424288254090476986050991602204939002642941604570333548930399485321447440160327338159332058916301921984090617941023150085988568552626140445869011237843092624770003214370106462751379405072339174293134640367704687994924435935027512735633673747204976688779011933993611166314391171261886845832021868666204531175945448933647127974848305714325689460889815622469838602660169929860356685468170499884164631055970613910592616045384754092011882421362402863686240742119749962043436153202406588519042176544207954772258295570637982151704441452052409758891650513691745960803180430384286973572584727017303587860091758694995768323356352606989408303725270849877880761844963795115136926589314553530182812232364145604408631648507887192622217961790643244942176451300605320683682055311471337957029712865893192586797173357134826377872486976807822849486308590542996490325614240726866739340630363275220764126761535356558113057138021383707477799045584679875379897758812912691716170415298928284789401464227808461252762629286133718488872537472335895678968919443905849362814718779351938299005751224763613081541809636282400899140376565002686702074326847267446316662729480623837983655244529319966455445478068713774072273515191277700548630753878573451044135299033677024730254304797757288137664437306244479791251722608573976337763895957389403460451526753124039881219961600870649587586875951950657207027351785703658536920510206006487873002825690162566836503661737037940269744846247377370024874996801077955705435290092072586759955701233166042511000900216911772384408443485736699364171871924376874939348963287304026504007827626521694941934086004415674534662818583008202139210310785039316073721607725945211661777138469043523760606659036723485835657666840805302647577213194614866028817414943068615529913177721193491994678150646345465678148443991929316997101393731286330449229998099477600069644237550088536285599888687350195823777563917440409399733334341770808160936908212483681140400048297128646154789672473950444815525372342430094027159595510439347438182808162588019150719914741343584150347998857326493712559176099442221349308324481334481379088785371864197184958478194198773811479538730359018927621735126983318287931439000679913194053330728845168980618253027034827562689381592213865464198093392489865971246696798429528497490176531803783564968580615942649856279742873800715775882052696281971524495012356567164476519282643827368558650370237675571130898136105638482521344823431241519793347434940741041886911311132552560052352581821455443114020177751502578844980533116526096502231320448327387251395027214032129184535525927126271531547420481164472441446822553945664662182632926594386129038788601609837465822160213678611939393955304255009256366314587520388393360210609221018374388621734253266897508493957846051394623982358513045974675378913545243506430231716078275850887471109492420428037151894934594632960464831529743112017124858476376979326506883469608021830496718951857221533022195442230447411430923956885604017895485284576422763606633315921597586618217594788445098895923607727494376121910503928343747313120600762857345194884983078796444465110599893252586529734046895695709200921543364990038399598117027841363580542138279738650948586945402599639406331878944794071997465285450548597093913863044719185968263122742672488657467463431695973797055565552531819707624094422910113260546710740750236427348762627385779428681251823564459686902393364424879448742668410482410766809288525606248418875091090425591049828533161384624912474782893230728178699095781196956933359466898141873442492231638352831631804622333725919738267549754925564163704462288895990078481007762199612836294286379764371222297287467768111801819765547374291610603921336822413753367115303782931502287501548378292066972509562425364839708770539072712307633834648573420350264628002574910717534841200881718699593628109242370393625955978426151280620457704905029432006294101642997234337484043387907346832495683338518028468827182104077813809794807654627879043601880633301260434344782239005097434847329453938567338171402551101061959056645631873075803859305057273155039518594323638736801857541052237045260994570215412547424078439492437962365741429617498275227042735445576271875116121423550457753036976442399195608869805543938764195815417636121337447787680606357437855510437796869901533096921063596560725614897709715937429535083334710650812061098719597806332926282661465638464554042880330174995837654720599854606259251661796466713688181491621653758866858536830488772443283757288227140788219361247897804733574989504355609632235636267305160819146803793585846822008606483439292499982814414871086582703339100823507084956246387667117686744858124147001647595427988548450079668842876522764289060794957282393352360162897711465588896984132047581036681512432215053892677060819667698591994852403057574222138143762763905533442107090949875605721710433271340817347320628322383867585151765039897416238593732162060047050900460696799907923193910182728358264799686529330111671928100276878400154815664284185813801966444136539226560809998698842907701140470627127644436320282135662184174430505887212190792334891429698456030528212883632816541593557251012955037941182027825339592569782225676349207384588366338872438259873772718671956605699564284701122763861154075858403643106985620590990602063423383599384423895969553499713641717178466628799468524054156938180272081918668651444835154712599715850698315647474357876224333719155857754513058108293653980516175910375567848020270873399297387625520027274643861071916668840822627078963103471292254761783461046384464296983440700481255853682375218076947332823365090606689637077176312544732649982544310574091271466404776178449491857102453687043288943261058336098799193415085568080182181717476698115832406186901691952843779103068662160300333067793395062546925679717293593624088124901292155139396289956877595517221067924630508870415488805931593846822743532248344954149971553411367794797933285571720449040141296745591163232324738946882210492224553242392842960450422233060142690555079121129935884406908406787107502630163030456498469139708612681884312011050848513410342270013668253736659024712644282759851201785939417426880739214053925566321159291348703497312931566565858702447122373106424352483295995185412581548085061585506719146310997558454081132603517716383092993568335179069692333557077912543310966708021246616880899692723674855702293621297209885467823068194572744434006108880247634140322115429390155257240797944803434218716154118775586486896654739921654455493151083564883599795465432353651870904468426747819324941991876888977667078281608807783560063833809964395716193962866381683745871735797814390023130621149096152859219961294120298344968858404857316234644332942001935618381020213818294792832979926860882725558483249226842945123880479292873313217318901014352398752586465797022898943030289999685752139588436829400877876086940271759012719609446957073093119422411290604121237072671818804401348016713191241890121285128746183107170517018103630188908972198322064052219621690094362516922901910422727656881092264529669753976544676721766366919932969197970940974545052702980418092384345670439209724882016007215990637821205393852769726400854204415754117330875978552396552736416004857985410251659410270820000158364971533457047275647782659457235657343122707363369526300179099599595058078843719526254167871292116021211473045973078075532744265319269664108144939278011885322028580686250733667923229650883414901757501267666820353314450153803213526503476023995555664535307334841477222307072047492101200754655574643595935523290330609840203410728858335461857499435288529507285740247777329322351190663162090885791913946881593004513678264731132501421297151528447962772030880387302397168001148045069297599683620346876659877103293232778974978625345741731998021479109515094445218657587039626766502415840517095481444226659361662326010495025888620956638394124348050976304412158335765110643721533872486027620470721541151992746765588828140743963888435031460992523152266692603498706493915923242001318672945251503257148836378804201000985072279045042759153009905090010193454029600344866248584221922078407551138203413071396742232183609027223751547728326297837795253894128564748166048976343301264744078089808877248547657728887454714823900262635927001968878615670075793921528443848196196601587581281362577020172668542103773862139454432807079775866720560282057443337810164907858190509433856804088931250208911121631987342864800404535448343812180242491642858556052532259611302729074772958104654225052967975147107337461113201228827433620259821404455030314157462615334958504322095294052845473550268271420377957259791285210783426436935474188158555974833249731703620088045078801935916431731064769291569262604543233958950620999780824392891408782922206744565349575430033941154052087337828047900264397249278983447342306916238316600505217595077242197322033363916527516174341638894979666829256686166549929352427925289111401617268989054400752567932577503383055081202808555585544494155109645258485785913563572721745523311675716862078040930653741196957937039169729445159803333588848843992116193890355963480431096087129440049458557017895945646647048871037311738954105479596532661956532281479113377250711067732699983228474902547257214559685926330519195612885400160168853156045439903192078223178716561541984217602381923612099739683611197435741031345082784045689153102570445659972485346942938978702305596090506874991178724657598824396426182692388661117439895139271992156205662506976476137100204332002971961531768890145335591620143413243751992922489588493683966321018735256217270973708916783209816589043614588205748199203800855408424711107107575844971158258049267075536000401298377435403555101816065467678038007914223490533944973037252492664072738776049367811478607216666032670158829550439863039858313443560039328273628191907612510427853733943502573362125709318225509590330047381709590857203512244373133395989198499895858722645708032611422486194227816245480133583021585640275185930942901549038162204573900735124997606071676583296182132784712457115444107300071067210706816137299216961670481826109850014125156655278646999759342300358098904779619928938449626972450581965975545007574427307395713633430571985982440732727275517887548012596255135326674885714540761323217212749236021296342437253518931089634624451114092010148827995686269972665030113590404158153481900000430121432220122418521504404925727751160736945709486591977394494195002167170522747931903206482753629066169413191495183616879963157243319719179230993377730771919582785230183687453225737443030310810203610933564375657967889809263373089654572113531831623734550554314920517563773715159899159793364570523580499018344795731663913914567195257406246673174882070079908507056458964302676090217254224113916732628450640457421065783344964288133252800698749876685059295472001874952567950605535197666410360854125251369430231702600210525522694447983766307712178397293358774393511288595870431036802368811153180125043518950270916384729253955694281414204964334815049878757528909165410301066216421502655474659973949337182325315116423295921644242830879236224812582242561479493706739534888913149408595103857720820458023088535666434824527848143631355436846066103186599518820330396749758140829755673250008614103024893614641965714691518124111880152256838158359240669278250984676917956627846237268871397769015397497590772675822805615992065548720615213320628781783480470283897454368752142130577271424319269715878439112213634316536128527291670418007908552760910895210141233220955373595129357463170545286777117665553449238323108851934317533045673405290705361740856400635173668108748574524570309403836067072569257543368447791604435359424849948577443501392734742032561332255601260296020304628826623880995567360648244585230003939026805854928439811118677875018005006584894438458366070350679342897371370379837409183774463282939537019903411922959761587841582533614041469385553763071351997747448552201299393623850640188385696702318200426205657973100258712760093733294858676865924955719735780927530747517655983459994129381966052127826477354894480298133276990292987811751665240594950544713709451613349888868403617867859871469472440485701089671896942753510690167171452123530855544855098454178585387227126600932313807323946860456527635372822900300028274306607488739034665226201890797663326417628292194429354498173636933823723201712136015268042464004957339843220807228752813256119364397282807029743396231799814673606462478756037228910606155608109728885252302926125609338501341492994984022929841428569199438479390748454571739782454561815071324003718809378906755787999318281775828417921146202837199088850068960253920212276906137995609090751116151440979608923721875328792913824603308037894569166031446693387044115858643035116797517550283042474221714243529805663287172998267750432941967069658767808475515886264115385513501115558931135651005474048375223437534443974408312473081003605886576691459219182179968974165643875899237827040976451383225107906510425701645828840701086486748009603529055812946985416322426746201793873737829256010756422047962159329172241985940605046620999275958157367194419491657997031449223875735370123569923239874783404990905125293457252405982430083228215023529421094914660901314457261651937150206539736398104177246158482763310122100842503086337089366802388355204249449112482236129907845464457310339034321434214678363501049601903196664929797613463985030429168379018358411503835405284299493481036009865453818636651849965559097726024168673758856611687383651012361233976598488564776503634647988603363482098568082056562156526197693569451623613655351885432590567503368661340282915755293326184910695749489672357489085158537755244736745259915645972481376587883715057769792906343193894741261339463671544010556645212681523241439614673208221309042386334109676210021791135507861880104471161522493936322189188944470404413039768839368493893431113048947812876587958808104315707752840556074158941581826224255698752692884108429616262629622429830075147838676458470331207415358021771679453016453195584415194504114517026794114172648245625463645404594143911296066200344305027797265671814460747691663517254670221971477237395995137843647124895849659008695068406787455745281282489390536105121919833322147511400223491289986377821619912467059600317345691551486331278866890318915652599699839234157076823973866553084640695522266401310702635456229991696926900369645515829911234903517348932248057271162834182327471756094557768561777992738374432152804055426217122494480402619803524252246431348346467470218945191920378294624372488373981816771133908663379846244338803973708851751285911044789861984814599188889568422088216156572601814689090175023010495343452937487327447749633169285015638650369466006683799924873021015760815927403497177813839120878115227775301055914529376144798816301724180797655483751784896227313539810911981461566937640447220070826164769133723007354514507506489786799788302264951111131378837304348708805552939454237263263222037632019931417496987388442320136601063704177303479783432027327499837183674289279044641322523399397200265705093810543972635449966261313227059482065468882675203354992140776185537003065282134370768740039928236536992226542990727686780419480407016636854533877006849962995792270680436408609824567367209637877147120029898730848364880262006390223266042610549577912552418911360819300078865572708639244673577693667654690966765546821136490703737682489639607413144744712359531692932547460753237680490387298599080145075496840708466333683581572846566676900746748410732332401170486785906028478106425424799060512940354089460558725196960196518558886853454257698526295240893570721716473477501537409580930934152691814174886412261765793303395589972330476227087862332922149034355759280209895727236987785958125874536607981928285056836585172316247160253756608660465811864569709079844197903761272262577698078525705890969947336586283071594014597436699819902585814361524500507949060047604320076134687507310516646852316640195687109727469765148433334802378755234522087552190654839926027957139922528863926494361360559597882701211532878918657743118072509480838408363766054138002132081131835460544392058667441188461572260999971871746270839822016000768554591579482392436048332157827308124273283899455765695936616445161223879526260011386392440820948448619560515635227557319825324495018319947042008503723087369582888776781624683037993085851257288773164015143894822560552361309857752431378280438163750670350494638884908442419667143550406085886331751590498999056275928704856133247862648212378675231837732611380574626141742677344638721474548916572710378827221632147730454124791153907953608214451697958268180555641299059629469857956441726728930033963747446410192412007236774802849091630056133454703786660638577878204611805147161534941408860259135473517965222733418222983222975518225025550250782025999569604663037747530506383859124873703673130813925821033564434074804916686370331582754017990010927754509801848638268609481860258656138231330945885190361458504648765694325615404607487277383215672364535500911133359910253115831389017367568279361291757821613511731461253066703514907372919231020519837133141969555776284603121216707537922765366159967847193710817835696619247718998028246833003819394672888702353100744241595605748189949719287306122830130547123035205875427169554460187549200305638396517832136952001807902091216863379434909315118332586120217235912317485217247188078060049298937270873981341119529402043157156956744959105713660217342662543344053085545693447155845250813611904230793115728426209712800427090830617306039268431197795210784724899806106434650889556637839465216624138135478278158136389271670282024443673143346095900205056734052343034278540007538707809683509533937400514741472358797986050463748338889996556956197735873508217393968742990981774329729575642119810563780512498649671048548815127245196172990000515190973327477547884376041477261244993989531800932528724647364619204143486167127063255212732301697596231486473612018116404210460665855158418283410027352343570911491562382956446704156971334148391944188225236833290498284982480983345031809368415029082526078692380623713917716294415214577062962689090894678467120477227405203241271537472524291305337156225432789073856522742367910624500144676849453802670288175193184070192617990643970868943989571547107375845045540308883484029788289980726512019406815712006413083340872992964680213109478590196820312692322560340271866520719760993927619133436724004109453562972511934243042421441878816906746129608696886631165415200902154589982085264636882037520929487597938452874508320859816104014175965961107033904981288932866784459469678447861424188717887156024836105953162183187043538850561082615171644496221640599083425259768610471072938864044183832233705813102779966766178718505001344161629349558962083997747989979493183566561207108592575841725852880520944584013086260822048893937293706257522148649885636744523341323941203354414046585159711879182943234494991575863446752281633679110113041660292858240597438866995914817058870430940688912118592292045145392346258352139163551531526959119391607549849446682853689327671678121039510175004035738420751973944279390976360394370991799251475219942929583537450421911500695133435156379542524383163793780489389948266645635792562281631225322365451052823868596842816397075067379789703680479729657813951715966594441480994864336368993817652848604884880104554346383860386885351350590484458159433728533013209567483913873265445500150414526633509809266930716048367012439266526996594547487269435914828730015337984788892051636461225538471103837466363482276419551833240517737279876163735307098073774659153365341793646653672393681755748020643236652267157405737894037082581870034963815925319795993615652501790820770373736435694420065534601457601116281384882570756708119537920489643398704984531314818719751524733527789436657029290563521349586451577786073381942055907883595442322342735061307332890986574105060481737180761742602452507108450872728391679665348420697796158199155704864872271098914727992329015274197624030386904427440696856099111251996388323672745928445722126108344050383209414703809052502063605080874467242730728564585379636688532659871896941780004282725009282224136085445220183577364294118115249201429917622682694703172921524297200698842686948389133795148950259571379942851806791027917424989713458974763653945059463987676312283649065001589643053990415844256575977375614077834174206078367988053834601213031502660431802321464746988486875940404976106899571004168218042647806930288427332671482421479300156068828028329318721645168000818256346110752057300549199225062830601661983916235460302402880973980456627702724094561306237199841208708481500933249094446578211307992445671649101765262807750338400049400077120538322340924148074380120341175937961512797994611443387018135556760125598712933150774106571171440604770102370040573003945456091058500264889253168766312378576557513652246078711524804862857025564037829454428146009294267699371536669697584170229295425036104112170043173998123037836715468050683475210577084995348599125214104660026335036547890428617820352954153989169217399905311048370734324649588683158092332887588794874187715490361843127714013848301389531953982074279869248916736927568791471258293979280197486412991872321143600001059291655703075905139432902739278406475434554867875763324470366034198620312341011022711756873056030914469970982618854678800504823308093910500314213219944316376820778706035005809754860297129122695661641206095309971838452561028673080139612320295353913810691538402391376031846910701218756694290786241688972484285815574558244367240764492767971628944728825317750993304858404860697316979857090900576090063744471147382253475333285026014890483252678802425368257303503162069716911178143811187582674915499157725557477840138729672640845660053668312082629789564851637579339734196961379298216916175076461535242160333560770479462684400298388416062079629806970046397516910643901115489197572938842343685389988939836176582259271908554201607630256810194847608147254481634162757884074909311957472129689434793823643831647643693561651600290316537447959570669295619564854302938378739591574179111154415745130825608421698198177851095837709696892172304742110884067781875748076082451653955460866984430029389151297158821632681633880004003843717901882451756892618059909523015729156880098241405239903735054111650281832789683229823577323796652376028535711506529383653828940837156675090761313632646841734439834076498010618042752905995270065108819567588825796022209372482423145731238536420522737537758431035663834907189409463972191189950020796558947845194019664114485381368351104264982604091524609010833714652735454818737773950088226291698552867998800336742071289698858519179985660124698731575035120923497486028987234793253561163480770328943300871617948079763985764795674671863235275140735051638542077512780991608405812902964940141176026443036114022408755446670760473371394478585955810480782629887826293485488250721897982472086081113506386230206906747562376429574829441197804782024492234080342072355592199530124471636027646813959840534548056523113046222194668496403269841097721377118750361117117888223139519044759504231565531305693575790042813481616191251831589887144375648517248741606007399151929196414695000234545392189560563802430756468253908626087769634182480327272508699919835419525515519617311824369200371217353941448436398034410533424446326687720983647299365304278963199040469820088990868386232515526073792727105430300729200090638874577230126474716744947612551747726310047011600080510432471824681141525457822350263397934445438917092067648864549301505705442563563732605085603809391442496446115344106404233349473469556964089727926520949366892451770688397609146464092537388911088778684081406968469911303550276140891467008873937202032546706701288103752004528244929905426121742653262717427419749728515168537210934832331971368925548658682278590590647412146086009258340000998458797165049611909190355082735143602891940758872538534775034071493512945912181996675015122964761789762737497844096858181544753523660718463785384696086914765397754834488204875274153789288858485430432247841606633461060048054213181633626283342498290476039063231234274986496577099198285633293746454420247510890139244296027878198134025845067901297073976067940450991101319957125134333856643934613618793551113811006780314373158804972421052367143556538083645027956227368783978188533241234495612836847124135661319784974565291247879258856144240853166989256822790860768695601049015283679736887358968339108662621955446323295852310710644634240365669055162919431379235661882812107900606369959986098640020289146174935991012388102201683346462533435788564133118969168447910993690749002182601932191995139019297556085681523257651312924753932080022896406579134767384064992965679279319780887734222706764314245597581949650190499499326985060367857375369006574051177802830264857903674045480729799456037412640041141963188107050391822449167698966177583584603493619851190482699460971709451274021803866116050289193012188297952779746199593082092930083253965244139942335893122542611570240497895242008759857489311550162650094829185855970418193376568889789947864722518087406543788706365964259348807729933275809392999118417392992845134326629847351987045812469212971529957524335936921890079662831116498070720992186239081210029647971565903584830287842566418249350634552048765405041121819758763914238640599223884029041545586724097763338967998910082652276558661906189355200427337215056241647146808704792139121084848339520387035196651474241835098929612560479682803755468400969442033021070274376521381575066108139791703030182281293756684649429962099620049270326138358237662866050094917611775134539908855487065612819279983924315295171911818691256306985644189288542060298651834556875178253650120125472707563271048271087772112499082939627097095115370963388615115279151960031240383078807409627495108580824385086437468232609763241117354205708332505571490509663422530373578835000885403822325817656310215541828697558875030216449814924804513672677686202291521651163858153739735815254089060285052025551592586328047368306869754605183025681016902493967051465392912727398797502963292218892752939258025145376934958261292978613298879669008701702405353619354038896977970372020908241055971499115510754513278729099450906437603227585317102935513129051204161494284808013986474331801054667154987928218504746493051265442806538696724578268916881679811247500017763404180639639210410636343198131782004936779428770478294821609233840007965265678704455761843890288901863324275163864854696085615277166859193164410714148202120176681438218997036473683902037449349466127839617771743261245103100028639616968205151821455841072829869067502224838523410444150760374446962577939133973552456959362342903910871579001457413486306784488344911187532720738005037798870900882268838487594477004035320762329151341350449535553941146931037799102124378752113315098293413915386312421255716091382461602795704325001627805508324980987346935925237134162082908568882199276060876488692781104825351054536722251450520753305614282093721860383745182604725314421293237612854454145753095042949170673187934217735690412850327735012128911137904921126777561092833113049351546299963896021685218909530103519753435977498272473401182841329036854798530571309644948451473790845347171356122206348556917944349514907552904452950731718883938766725713858076306517369929809720992722355075170039002949074597086029476500725434797190195637086503716150830868808014355156417843693186193535498183327829678451358477271373712370595676856571290478857383913393087927080864160865574809231387882655615827130857792771325356345962741553269426978285558386049115046981919075516316629519519102603330602144858527607477942555153169675497482006417360047807928372320037913816224279246041490791009422021638507821583127114116645510324701201267249761169217173243748331942681689125970457922113247784726938582298673520084942133015575337423766905345609127232657527281833149084231496771905835983877402384803090715773363999996579370341432538966289289342814600249147469311566457989177193662318810315099726407369667944286448073937598580669367827251939056701226666811082901267758294649578060741235258871112611740401273630061196513195644398780469059930679590114850505209090166753588744677291660178910808714086277184605296902587263624798780648837002120819546713000410170204147193595771051944038956061695356300452408833530181380084315567124007126992185915962181277446519258262234236508859613117687538283940529225127657111903332230478342986854342557909994427483344722928433806686512265335005587621014912961175570924715281535805083588339333223425931577186420517826986712599891522442876056032855556690809837082483073414059830553334731744858392728546023415695255842404392938514832330831451841471102226482042256240384235345067117595871165996338950567554236113767097368973062271696597190888118012486106220744545157015121642986111649505581515140657536585957648011273984070660902200357095736505300214277685717427278443340219239302266038251269518663002522825225023049608571880784398522741346067353277163804035264969942196137677844872036554561219342468573610897923338672242885250268486219700954169097870314802018347381144238825187960004557130154225011300117605636208899017136867789834376146074546722361073610925750113592848315984087204375407448375139329475339027346575366490540416031804605998031999231803368137373762541287309408303030971309469104364343201399751347828469224439933330977083732480735652988912021033210147253050373757667332975534748159237910813678835082721821545303916440108285024673276019939973133911006932160437266776457711057732678556887685513601167884435015355420052352401963409045947579745444854066281293955627180431542866898201976937669887920457175096182246753417108328609677574821627963041693164150808134587444674218797268336701072402723024275713976442294127238228813081281588604450620260621601399733827628815093771365044063469146749941236694987811787903086647814548880203100182323357085510842266171708787675104811865337423122242741524898010939550636525713508918889916909409143572746490941510850974253077643789484254202710057948618740894252524322847622840362719656933217656971339774729294898099903909740740404330009587494262319313860352727981672383816879680008580232594965950119817472050430767304504007524022641699758629332277502438982048882408118535104249786259045138439049293073938586886064835307016788533365364987060310838157264413424409179427470581583764013103604178156398029349699625573770344246482472189820376288032424195091970538961861699980597857988429794497786063221798779279616752755581015410975377732393254680083421288418246982082337461639052828302325542106827902176855171104752471640575472801245905879483384835763998320348059204833433001429069462929453600563276149385338640133313514358315969800613750194738294079621285875054927753590993103467238560266551570163170616330183704293004108208441818598707210813252243867308755723464493610037087753984036243164969608300674882821612794945069289279686589972090777331565726132876274670831126841617532494239391911657546579389155962231699457958338164485440162943989617935289504421454247500217749674669273603610034645074646282274994019151997506044162545703314513775142448944379841492935887635595100042488431715632258543351183296976546180410315814256133240753804310211208593003209317719142083934377558252680845234408219374452114526355361510693631135441241735632348821884966089080546943767566705845480789202618083835201285148278679058411956877178226610884905404183561566741958604153371828342825209707531901514693207253415112746011678533257876632911529285495044574737078219518488538148970665153625391635943979230103356899318880765522749368587295868621686591578193451473504545555916123510513439585363619600082274599779074275584806548876920635691712729692947641015781578151018999141807889860275460096905595657549335984143144291282309399098041050610370637576958348415706815675221565296118756175548041223363256632319408088331767361591103334501907731512247325099094373918962227833010651719522979794199586811060319921123808368516276112798762011212580375977608009908188885796381907691157092131100070798541360296475973722255048629660596265092479783679033068591717604703467137312149352053944472172040029325511239801438293274695880875191132447619312296411806303920968251199225444684298239965993374810516518326345656432340320950889914409876190564237960768689187363980178920982820406915101244617525387130233343382298828557091883660668902207978388288567356777643833129467354947930857006338725179904033730778520398777998226744527730149023612935931149078028950900103288029086187685219954342457019737794666339812831505729373520947968841492645889250039503740276166006416533661775481680450601324463833109445556326415984615839300577539273682151777324292509686798192419847383751679067968331851487062282086805602932733479541788432124461489541401582644144703225875104278305556641696045816559077871448911541216058887505157677732562243423733992082224005415464028552052050319140980364385664358755628925486941822330645874605235748079209691198852639592674467569047050884680076566383826775715312322272217129348732218109441273922719543415546221503236293154888669522933396211158805149302662004922967393037012410424447284568627208741443275806499574081955549523614644103448892882481599234344524209608359930963091604169734687151944773052818195597916745078909363749300922428221468313370578501552680345344438001459536217174317670592130362013953166748060874941584670583227738510026227484092506005509184248532322366009041625793835732878264682558157232933537375731268281902902981718287499031717862393426347377724832222129596586464195796087048932060521453448568382408626392307224317723053050807078784211617893417963234913202770761231526668609863430747296770623454600857498162421568400977349979854280085187564014240622143187436906797615986673480418719193835023540300873273677574940424155681958199930450527553834568573988495605276634912373463035304422059752242582427856037724187345819319521424889270802979150769577525226439991277532648552231098948354660446004263409725169019324208967672822714580990280564210245006854866137779670393465775269609765565438890053715856952035994237387808762210091022749579683292985389936287327610265405045699035687636938336933962921090525865780100354451329505325910776983044525097513904901322869396600154954248883561939114438029945852573455648515737951020166128878767969048573798316022355453648470068555160402574229963996230580240704776628552204180210335994107595996513849001093161154031204920076478361312266300575913775249111236222219695255199603246645920935697645400528418390994332467922918478305255103458254720442813127227955958357846837064360154479044973634844387038059102505544664083569577016401878740854533721965241115309445221176131157066829475313723187221444701404313071163907099861926163526572953989641312830986098772281799079782072800005763275339554330065072935244467270684787779385912097919134201930899616343631677679540622422850117769152699912154467505904572006337448778256021633012933407864854648504411898758748928600799133427592061637989300927537065624263533445800638969015699988430203101958017219762063806047177025352086474777259440259792544540481600742378673264866703392938229280243618894393041165890510977467095672709993124840327046088595904796573691096359545041596545674906671270958202125228225234494919751971182202271582660794490456143389529200047057513883808581524222245826269485161957854966743981322740986065266722105100318861469375607205259359025089098603311740142498163197427731165067733470787411216239685893855913973981561023480739206948776590198397800414175112268679811326837117469497912996892383619390220310353359963553988136832994844444006648188168543160606441385073555043804301545490329908042469605759197843491463399649560947358037840069113634221894675041331190634600550325519505238903136957208871793144541076333292850582939477716124956852157450721350576156623693828922827058623459729926665306429673874216078107167809785493391965848134170292639874244888632038151936369519714921351004017673212382570056713271356261061200493605867376031957004346386054516316209775557018740811020002209425225647763584813983468639083362794944020624491166320774965019691598665532531765538549019767340859637288941182765345953113655407545753420501425563633098888357425893786816488168794512273607468503835570312873782369671455616788120223693218699385439449568370086733160627681317247507785967739904802457827173183196837322990142020917796377141617781256752206122374121195582538890205765130133164155271695498208439169901261514251695023620066772393207814903220060384269521542111025292584152301220743724888297188271308744872852300784371975730498583177698587881285284053968658379526380343873985468943950662968047304620175584341132598331419715872727443020372721761030922587585538478174254768081710813923523281802475435959895309993778542981203128103138916925079353682960439584107814666978792403680469747633189001060594605434867025129714218326149620796900055900394081057615397454737191031825352084065716455441801251082892287434372477226879449629179388461023665896117563018286093268936445034782998548479748611434477274136716286726427885841003129680086699589516075010633315628530373248020720512229040808408087882508160903720115283256960995297462126633856023934116606109214371641286148580425764632538331650533575135296007274658739146207200591689255018948393158489710605773201791178022103979657060560988680726851995303282228570147962813404679791133290126908488402495018100203930625504215044885888922231072150739911474041061682040942211310237767161752511766492642758782941127626756079529693536017963828241553659119938186657155659666339516132637680527203482486230413803930582402283422836000794636572651889548512289238995778291355632390672542098193790105405973411078963137380460093820482277837109795764638329284113209112180708700976445986528199003022880460613521611519744795634721165713148802445203238698805287938026756200568487142575943009142199380379654169899472057231864046375784440845405508580246924746288092021284470716438917526677526273907250418411499037559026315330327255377576641604337595954579879371923338450628339089138900542651498385765331167504727156733383635456411016344516251970967917692155982372732947430674707074728328714766292778617027047728288326312258322209483953915647267977476089382370044573325074272398886272735442740431831741507577484538066488268877935627941970775336333172560103142991616159194363894673101153337784623424868924620998088970467471990428249118598927768449628629904027773241253447211847034267641666148049281349945642927137312170852264109165116513753044686671724661614715610439460533237933595001156420663351044998923317672481211050488568684298401350075434697421554382847247398254422258617619710768812496367073904428180328248673221680811580339034925666145863353328879354241864771600152236115719759584087971477917017167118690895417418008485126077066486098563836492507944281588482942694260392968928828082632709218777423194587114342835718720141052655691345099754496216221015842900108208250637284360836060092129398940238370183617564328505921068642309603588511246714414843313029769838795415636499449190798188450717648289863333584972158036110250949512382068102437311447487242050368241568692665401171365147675543704168370405381284618009440198553576735947297923422751951136680294929211296236859401473293923456355803528864318582155849646650205702179546006347096556296639450933850531487788178457341292824695909167066681590969635417350131688396799342556559566658084896190785607291495503640324703619066607978783161958530225025084071648382360662771116771527331151111355855065674205412707039330927502396346915733067814226155145003060640852129699553682579480995559907442360006049253944523711001933196938228072682665947977414958104401825623844208591058492137858179934234545281997022163522158215828659695717559794916892190489224740505487396605413562970927471698466671907075299276704754188989592020918629257582430330076995254834794404299034770781819310734681258786414068639073322356069430398313946160391349430144960945479706513058644709409226213910099869800920619815871845072890163189133583902970553142009687945453000643166239674511177800833649527490840129809668295834448951362981342727760109595797737253187056607996380777859766269259458167227379696008630376998932756554209006745548645990184717073174493053937756090347883105565210027837395786435910620694879778193234052813277416613249074122436828437817578967490170366153382381315418390723778074970433405587460428529010157070621029991249499397193503315099828071527805432727871125929625712756454983396760263035096592383087138756689305321259886030297269539222590233271346163744298778436620809393731808951750318224524242314065650505310123327101585792987629200381298393097126829788508876871502963028447225526055959683472186217846461275426895814507687060140100857444840605269014742893885785156814076370935952186893699367537795666611477563414600923564274567182972893633849412161860911021354030949883737722893615997235382823972790164026926651667747863615089384242922084274132136021104901971341249274800130993982936279378470026433169623778242858468491866715535170464670675587815191063467259551322299816958108481536489615729255273557292843692795524986885105843106529345834430392085665807293257865582820707908181207351127916235924491711022818874530856393747843789022514380905865905577314880036497677437018922649803734624141748411607946866870339649468215089572965170944130812632122187166834076409799676956852638647647008333103181522484244494413701806229152143097247058242176445152648363918476751174781916769434962628822458746365308874742760820611676834091847938557793656471135678859735732025914752552719487167432137090693529498046607988385738491599105442385962031046008170817248336953146355901120804155427778497161092017440777276136614779260752436329775189271986335335419307333344470514930032948189490091920243320740596216360196575846145741699357950155003492807319639845092146068548009071546469878736496196498607580255050851271023475475473390876882724445299342063077112621109927001991161412244120830246291049538299997507839635871017988323315906566954392935008262213135477735440631477611925801747475587460621983689635043030191907062865952323424302157208244921233724063007803761956696270832383634750753062569098447633218681144947633037230953244401756775726666477862479802266469626584814320899992281571680702568823231261682284397921149004674053840173422611699898020706959694442110225392359253137458365605964879798899451734319939823253480646946251491196554341401150268962000942689957633199701511880183991994154154855187874887924243596144376900943417005686190769916589822815426569870304042195016613331615801023529915289382141683175366252579104894470383533045069981459277283880923516584562564971207223184631198133589261321727044455031571235384314467314507512334458589066382857970861312272910132421656911935097646750024596721299544589911527169351061426811228440312510067982253934887060350505437101019125488929515651187803181964191705050101323651064164920895250016712908531083511698859326536862013949230123416845228347219304974660082883397167023460388722113394555272590810103975411783791753443631387657457278114787420235843458800669314417866416543196778548516995550524371234745921853580962331240256843920613021711598149837417820616324919079304083867834472403088790779360090061032446042635481631207483257346567384538740333769892347117232295729548018852323098588794138488815000414775315223132237651170709167310728065490119632857150421666292384857721099215659075892705421515079938577597484989685241743618732553174013589316637511695605681679790270410198476658973994672338624909388156868365054949590352199464923197627620641221783049974369820417006694969982353520697393103200565071325364171623414298848440201600756146120911313145574163239766798950599841114300504437323032540284910239404542038777854523282630877297352761161711354489692099808023785228092075096917267614974008256434199929646805299029666379518510267155064542503915782169634161944231329539633275967931149227121057440640911522156162344819027978177488310778305867789460780625651985938037608499189081365288464538033827338922209207540146969823221192405942652459501672836168821319642239285669572745726920899684926671220500604702775622798876714463621084718768378936322765967717114746791073209897554817022637427553241647524765449149418271203514079353153948341632202050169829466961230621877824843660505560683645892007900237735320127853106787813230663966592125142026306752027710452249511747496316881610498936585573661254304211211719580573710604223611433583628178827346484359412424014788449573301918361404127386642596039087327745145829661604080270504567701355581391150065844525918864121871248782382636229683277694141473987076716437827734205975200759144213144865233556170792394249226503806764099296153939699585022618514975170253587382644995932802227514391923172892363381320801569937484127228541250142354605505047872916009064880680557401410917956998853959658132588802912598725988721446960262962534466685101102304353382554796818053708558856068689337761548218343368751141205315137809205361788583039290653955510680813536345858269563049776778856766475474354117449999812283723206844389331077500877728908863538108378156767810900145442904252538719198224266325266406098306363956683130298997886994685149249368429386039135664079856033795206595429810697604441931434922669261621238663317360315777387638517063982073760150426528879939703147488313051644226327855653204989328600894800457242072841835565006558225144420380958908652150991290060762081193075993962537964121638712617048190993580134868268062104924765055877460373580128658048883964263252515340228088052034968979099050970382885201954027537813010626350304035473644452901031992202536814317444636102519205789584034950142382187845779687525722683787445348318338311666742174331506060376587539269374232918546234839343602998525739730285765271220547778200896574837446847397243527760723181368154112018618704039218961134056803589757200673929778496645665189027139242337354683115979994931548106271025135640898985692386017760813370366650407598365856139342346161493692048955339500931083292421952149955250963091104148807366811001459506272200757654150340762673780581648018908675885923005382823133072566646193208646458400811543053040009217960381738720292471667349517074201766467263039897120647037902673658922583272552427504300503307593671329607574959519618511799949768286863172042703519266245672244256351629707474935281298266085845943722226284910537536990278718087032893098010224146847707447992746662028875641605425404953659480495648771893628807116032768365484480581680011090508703102923169301659141643459817644905312475239911258663901560885966115806739566198734845680509621233858077404769873527835948795607706799290148020880315456767941758963954359997850136171329265117540818317323955979968737051231332952620876346486591259474809016656809075239444756940904473483206532319398606729557737274075347305498531870373114744761240805218112413994671751191489263583969366510354685113671645428888218695788183917626446553458180370019982211665660011652718130670967673128195550071355036345785876784330577285240205338616899423550594690429887592671375435705242568535663170182380504242728013199860213926298158616706444821775194149326577468141135478476659964595753592363359484659963775720038117477165360464354563146855645585823754121064399451376343355806326820630386480310930732130129381864576594897229352099860785827607657204096805467738434170456661686211583342007401263296112173399928275556455697081436704202313930478385921091796373260880221576373524858272438416039729334165603921509773337271845529505202541621076767915643151363169298406756937254499543969167937332168649976627102931331574848805881230755629404267810738631846106688818817147121736901691589062871763522461129931463813101387805399428150324722426783057939251693820119336676072735985803686477357394793939741998392188852090515634822307565096385563663103660263300093638729321399172908716111716869195269006285648772297664646920836955412384846951301416533955221765509158804895790019178072583643779899727679693081580601554443752009737969244616047371509797624551481681450186742625567255798641685832093985439590872810699911740106296139386269738708477555692231038907141712966488581548376428814158046170503017812933125721869517911953706992038664397641345920506189882966396571041633290524001957157362896782995720802065021267886070467090616944413816271560386406442551619867643753973328476958847806999853999863452630459108671387357814745241019931466970025348983422411941017966599991400520281219537664257156236192646136008337678298673739099931056451980125189388423772835757035946064708500759476923172206125299531329226285866671380740151392150187959259970262987584851649284202445459768800793778103399318855009690662618760335957071093512404178074743646787048722575736779215638625680078897193046916613622766183669733897423165403537899683233344656880939504084305683602911829450431437609287201388323348369284106338540160504159952448057484948762091295617926050516976810064129322632563811461888152127333137849800915701074604326725886938554670799815888697449567332198444659613249899845381188168134045243633601239672268768353300087594916051642505973127094652126316847590334229802617373575531167900674640877678726933355582521312840009743157238531915777603123353311989083946915904376122426848345685391237572937006588306270590103347464181513870703598374294201004842569863197193550363521946246653026628808712186319445644858222515331201221730803375129727184348413071859725931488957417223761856479870395128976822419187115135017848866423644162795176521555385168823735403758410383221366264656760094899428562930744967033368679304684891374538342807897683166961343705318147551912381805284701219786884041334101162019567422586004944606656550233258105170645809077774389875480627996290947381009537816216536609886508213336091844837995448890262682584225330890931436104434804696588294239283075959970367812212834678789860758123103125689938377137224271832493866829613255483582565413020604067867674790708613704888835941331378128821037303954664012977899103601903521179854065061530395890357894114109076725260187723085525142475696616145466828038182629664222244467187198360729318635478681902181861201166070277665534156796763114958964885258187136280095064351006487958465883172988769706335673324849861518689554228875223996446629096226151505383916148930872308838275195912849185476988773132786411758309035446007230793462939111447188761194618684672920086370076075742568088061624666145530396751350516847719009598189264090770790995421635183402624959347748166928310405292448044738844260778940711707627825087587322804378227296018757939274523795381711922218386568173081552856442507763256850883117621371240693989789373011377104844952190843742355095084174199143603415613574552888143122107853989836344732132529802538652942379010426241058213405365963103098736339824842510191700766800688075014056968386970863366096059878044847009068668900549128951350451091163136197371211083036072143339128098773831428786027767060793091641003679121548530000625084082726267186369007876003600294236104957724030808271245549993200548238501155277532550549578471816760923910123018799237910859543785480379313074032655537853358153116627215362857752306017716571036185027643746515739809420567856728147657123134273644319008294687757129642177117120220633551978710221090283970852355080366927736453044655786459239913097129122905190102510853718118771073996515986327201726924190667758252574681456864524749328224090670118921311386276853969788340977052066866581400193139686426453257173948604241849548766084946173287968869169715530992504946626720172811763490383604224896382748036801488256438518459320519887127874701269974280073304428114014348721355634741631198406249086775620946105043074326078098601381975293764626371034219338032635525688389822734664100145024607687434974407467424236428091777961200017635291976899297000952567005838224718104079340697884393863682163317474561962242601378159676515290874159669675131033917339229482076183506515988821218734957754614021426232712080686959598970700579873697199218007214395640643518577488274832544742634538534968423621649633163898615896230644353217810948717622151782318674547461542470116826275850321776306056502126008640543960294320010013434908151384486193067715812027701736277654807333690291513707512496911921747436343725479450857212105564668971170110774726781279069784187806374553913216196541353474926817383981228939923285631854460620695041597090594116752284043435090507196439559760796585560036536209766320663455258737417958706036706265523313564288812147532510034971877661187644066835002975972559431335502915257303162330301140177674721916505414356448627959981186053164950933725895473333132957943062405082379918914513165899779322788429374896486716178573704598324960762551132486464641064566873718875236777107744108194256957535257129388136061992695615265416800795522465942701831383018355604506346807566529660710824590816811657232844929912425951540532988946796949171080289537704643824779190836168857713817890777870876936957557521011831545559583482808857175022178903810841016680990854037736597442450109858462561414465446858952742772550017347443513347432927045890805071263836430713379857243000880163352309184403483770177758063007600507705754273080084378222115697338923488817842557262834018648191633162531171433265556581008743111556244478985282106514781310677382505776425321883184469330115409820221098281716086719805859649656977077119636612913456500927620187401872271166855569985011901520099471701958853552894274872829788369933584813003858161201543719282558978467072391436235820095612445245487112026341063520445502537420203613762938381561499155742146290051274825942144709191913772144158872749777717129267979292158829393269046060947802759667145263311796168441726643523781045765500033190865749925707320685331591834388959955966366080272808481524744461225264076616070317706346180444190345702069075502680292694575455597395141662108528131484030382828296717305615490204300063818196748057817668405095286002207654590724813652418813133740458307862951159285927875213075553178134026807435854812129337154588349240631413245857431451068328200513888646712743358402977701224984669143089285284405959243220574442265234906816910081616116948927765818146395415186503126280572240312097905829756783434204650551811591946553132814194007877227820014249083381049183430074722438974336488873331900590754044643223929833986890572501788026605984527637602558338533211284933468177238514110437603866898120167349540465360287009954335589735275276166767801451582454931548339603305517183231956361930658776824292996740542575465517168800871241803361331828865674126800284399955555087368417617173661489572306258308298001069377767577157500977338869899141942676839307594558580365693790201177984956254474626525357543085216704849969331059385295314885612250678393471259798161508622387019011166876812551719468911085515680936877629609548292129659660815520047407569590738679668000495818256185248598704767667892638203518437708680739498923035172472642354670140713235046604673634567141330949379436839210508094202895592645352526276689164768912466256320554144387954304552449887697771179411440055016897079342248612265244564059151403688050958420330164579354223412601586311990998926042913629580815797018379725178495324643555031277443269562514881702382240274579475644525691412273344264007319127629922503405177706306104655033086311371780332106719546844333878886919367190588518909696847861888780492686137593725929564620286702110701370184490502429029398296500442521114372937261938341689751686178579039364741620999950779966271576882956449949860446599038723241186361695999430131944852159139387440294118982338281060077483775299922375359413837920572296748482820394782959292048700628180069748370169606322911298855564684327233495080766570629796254923885956673914989685289656550231539710021509653706900011616336193134874715766628859995487050504499963543730391906353519799667423738099505445701024598787103002838817871425404017881134058067924024186289982016382243764914464360603897912354806271428575254057931115422725829962621952569231039904607998465977521457976702134031194824214669357526698766734580608278062938172481934420803277666903233712237476721292907817727673580927679869645751007078541203876092924364987838891948370769311385712745440328557423765624638968397305694349184511629355996158791279063810017960057067487653612618894830727544849225537382570478953467726281251387323320930455398638565681942448247545967967124666281743221369542083406301250247244377575356143008417187215916878978390308886848720004631011522984176602314550983768106031382358212880491799424044458532897364522279549099466801221990113267242516420787110205429533127085783052018970857280449652811472786284369212122830641533919244347412741976376045528599533708633655304982584520214487131898552764002699826681070771544107195690898412643902962669417821997924195767483496770682782102048619312788886348024243612816915780411021475464445474938466520068413222293431982253494713415203949664951607679832942809894983927302335241904834579802604664244866282949624581402811569208361256628189861846042898858644032041508824045996124882311965337869075910671366238618747467536105201035698711322373891431105685243812249118981921342252469070312981394392971183934216015501488508866555346594661433501416637834682168290168266775956857942836260355254056039138875508362556323399459675741300904724698542424639665564172834920087581838643769264671664605481032765353164023334958712613395615670884227896791148556859690212312214181589323024021773417461270656300124326819246528945566302804392620306591729063640474981396947350949467018641716211089209164723661256183936184228513742375982509103316682863960646158020915899428840241425059254905705706598563927292087244113867422683546156973060896141342857625861491495728045332366436257446995936875766080536817620069768575572079091303594971903144935615969763364387295320771682037078888205492126485086385516644867805357261638700095147932260296451697164032906601932582968579405516412391134624726927969470390021612661044770596531173680890552725112672911279080028975263520139907672774016391555182646952795673024119219049695636530066999558524270947557573419007453854868227451157699402153955163164871905483930232929625304470281464607985813856649883215757304437630263090629715785764455028637594433718781330782445193005504916637444811597551904232449254512454647192294625635528170918187831882468782274879512517597484426656412013288907241243747859371289109315742407024659376595503739283429870478108769137713897319756176003315890991708170186879711847005902674609064029544711189595906216013731022418052610850869673255520528682810612784419014637910449985507772770861394638542268279999704593363347820214002254825366212570578532170979125342897907067730128885930159689592547314443473790036841353910047425029691939040357844175844216555872150095302133908377441367475179895010127616305101573707403328892292146016947732334818161856125794385901276383206473977322305490197713415286409107377382654827517660712173802051354020035569848026375238336316806333230380337567686913264942159474305897363889592532062313861576446554133956301219498208666070240983492423705815578209254535032428854073798467241084617740633144229827536559486482078795343790190616780148142218413853605610871098676240023877949567337683457808000728274737578936227214176866601452673736402327092878081057442422481669898416807058529615309427890735102049680881973690821482809391624936339853313569415037204071103243286555579140367787895691728400956827948226604548695798799845272005900265488142633284759069086287435457629830247574636763154076870041449664909494355733471708037053804907054521219924120368674977853599364197767580059457399715586906526181976837329762271171212119058256910919119373045861076962946819377438233144388194029770145841070606829784177838754536062193597218731935020003306266051112521130060327273731216238769421872813503450288938479406381431279056661567030367861386209875047942921529509391534951611590112945281136129769131153803696008646099944574744666257903872539651162033754956991279817810507163125950486089131194219741760947560922134694565229642669715998884321946578590508813122093235985140598699090552541033611143297778964008222342401454732474977133561592845863908855976384488529147483869458867805918812697495835420690130277215129151368903453504045035511044254893369863668081833079713084134092246171213258870865651393225408764051097533970651843531635692148041503274498783237710803231596145148204453512433033835582817439390304671192884967006779942317435214340642958378926289906870567711182505437129977859083104804251826577486929181607476460270790108915095640446370339821317183913301368841229586607469109815787551709366384923930684473877430493587391624193626945739042311715277834111345557030664254096303326251105513529694167898724688654222777662953868231678235017612933817457052666192858258910304651654002195363286894835046228946794716258610429533685477262168711261595590181384403346237991021539224095799137958592176617484326683244937786895253691639367566842944232456764958301202571834363496335518642616944990767609956666430544612936085746298763485698342413264684928045161340922365741376520874839153295849348599146798672578806225283845392218581077124014833814541618986517278621751812367171557228507211776893778205755914660433258343200684044561009562129729666198829666647021479196367975547714713018496479282303258881915095657217415714909994914961111898668272654230885228395642856024089910882994108669434939981193311134734423272110866305601505988480922417587617237831568758206829494949299689981164757092636289985135934400500215133854407869754923756836131760639459307845322581054739670624128598263375677699485627332930858497824275109350232211204397727194675908817199704499637378449115226896455013149434255762740296157831979999723811275131177211437604750353136157254868724448662118013252145516239283944583371818917950400933947656497033742622070052056035994207084247662570965473294118781535356880313993565862750940032143827788884785868083939846233684886008959212074225896796051549793237375002652128059750508294674913069137948466800037182885833159436168243239221417877752880582502812193020290060461044002416337401091043336648624393008347369719495689738401352114589448963707429622258259292841344137980064582357713170911341434431536910263807832568380587972211814896984168545331546688717740995390926483149803219526599240178994756752769781084684481133097675830836754819600731527146838923746620043686427003028487325449319253431706615779591711807924629697215026495312247752296368886209337690233851929414271686915788561684449483963764781573068364216719454713074546277133590427765497140661031567956644656729268640607525888046950546059549304046865704102151847980850693391283892297371204844572094671685281618199541192890147244389837150862913613713279670783136931790717694158695079568623518557665855087871087619690229470998701152597834784846760306506891247198746260267631942689204218411888014510342251145580891684819577009687336956492542833908440840919973655127996514430446013901302087457847388794086161463298846055326036909419503037630504750803952656174946176038844968455033724723956706279977901836909597737071549498485758482652485678018543613511201109282065696035300978317673187313649195417195614315231077068507959086903828270012267476716526961262187719281708249196581454843338731448977500418579203556650401675606529370536483369830839031821984818269741869715706669463743593940211428900292411089508899054302513641408727339588143795891453740836670915996576963784972866900404919664191599588086760676352029062701961970287210652924184053737487214774491331402027831167386479892923903767378698661653504415191137977687185598907010179441176754589427178549606319424127772442145304416504932455884846279962283976688034706502991355068346114064079662260415583768796426995809503178567476887021479501948929985439899749858141546917677109388015708774852803208952661812064637392896492170184899810854820435569388263196032673648425277175365334045514270431727302722047254519704234766651326345999843878646067237738972686784101786511555714702595374036252932933918746917239408264241295046845982015931040524701110801056035296964235023828077597226511220456628757395704709446873525356743647344511880541339042961713798191433358252551733433296282409481551548320644159173056995782595126026143155164011266820420413586969566965247041169649191828757510745749265649919972341564820240625266607105911694379906580682126740005820295819181813947765143701177082486609679228697323558702687995180745434803612809892635669390102786168296698517264400332299305451223320187634360237125553144296780617846780411691987741842603473548014673219073619567062650542860281241677652095280314046588361559981787989836656660802127424368264425860840407332290686997828820414243360608947228127406631655924736353929114762468040976424675743590409030636963451529044004972190226730018957671348072780002701547779661067603865187837475730565964076136827193076800377404267812021945441544997613427176725100432332536453866417945593573806140501777626277340192092554067463392154303106168598233153563567889441844822219170718173273694894250766399294041814717289148605272188392942103438083032918958910536929845377226671138475812587837605708035496911244968298090638290107372207342806271131307536479338709746643311313196590139180772818969336544029646394577734244794820311655835890075320806054541810554942900770371160895377077706982416308918696313776902425685567148157235374775586082049416319072546521792109646132461823968929503110253536387089653576722223758537409162431469947582004626793283239503911628148993664170258511865578741831090088401844886995035804524583484167726770460260173312998824591365194497409376883769742800231596820085080285600274761094143551057116972447080670098204737542052034358552640763315532918047950299522801266757095432546542679671817487845176560532897170714229425905661917965676558326557500517035768735584407491249513094945965686122628079052008996515176900411328181102374140511944204733301286537759048719010280032213955675766999049193389647382612382880677245058683405957181434512637800948219715834350293104230403934515266202743000672089812534986072545277628056021341408102716181518531676528352647070985786248204759012624225844522003349790409050173052599295104628447322817480796518441928322535410114819928812250406290362699602766632518142829803255880500978039407636797174516635094508143691026806954534837099214644015254342238773224913870133041854871773464836362410246255113581792371401265845005473390890140575523572127565353181182878337657027109739465926323948685550788997532025134596563348035114281293831100126194020886214317635645399251335312367629479234116301758951434680862251772633888474530038526314323787872760801928686572724885385620626791626083192929119600392854409820656914615642894428748715846224232121538585951851538953613386392768490091709958520916530887615475623634885613271897316655226148099465864545214241006762248188338927305160137728167757881223186062665628089249085292815240641515532435482842325221724389971303142206077130974101160481512279698250551683191817066153245591178158046276643605569953665522261194672112993912127328987207944222381823998198273502444011165560538767567163643764357672188440720679911075555653657856586906746821718952669814880221810216333711563698918674218481093316272483199594578039784629602312399472972745601246556187338920103347682821270202420235951528379893122950562570288054061806249423975307763339300088475067865275397291041096664723579958241584137896412098690675901771609374732659890968216349513268443049515381157296659111779579274053383895226305901699314530592010120738179138703787810607909080268377244238212410274346103693754788804607874659957395184045860226224892386285785687527167646287955939858851730768570570300709119203247179496869687651936440003160059127548697887375710438574013891079777902812678370768451876041193433163155893428638896550285192379879230003851343613844083699790412777282052217020672900768225183726273260187070077409249412722655192949584415739902910466171993223446303866806912747843373199973075689991400259351241281654423949103919607907036834774500314687936527015483297458821549836725296388765748299827834839084058012798585634388618003101628796716542270388938722949745766387137240393015964248405717978104531602451705462025268008702197349376524808792641463223437914887289856891757014811493314087612508871777332589555008666177433210324964245667304127292817715381612618884393900078967932079703355265546120327051589426075657051256289478295648193344012430544637653559921783164551124112663493210079538754634528710157385830457335827591164160206882794117724031891386065395501156425119680811257274087768422011975622216801827419113719820420575611793620036975259041647237354456881270732847154182808573121253052574251786897856013188032523100928907778590081262421602730228674207995274059502017787988049090764350175626008762358240289162985335972640578770276345896414343049142794858079651779221786929994271459281761619026789968116997460994074598747237255676713452889111204637893874243636969747661896187839725411432390397442362509228425461145729105071863364002865926612958373355584396300540979779406345707057079360009361717760279568114161789725191883122520683714780408709925631176812824233604819619737563974822459565051475382221060827532646485206634800623246955670926921389160017338704404920374959657099656987443675003073892107886403042296017349963385254316209716067398389660488316941814801902824149905925100968099494635147306574585718341772714162393583250847166142675697093921031108000508456696509315161038050625608358356311383728874222406892895993032271215565004599107839553658486240786050601041634771684068597162102521696883042192310496715095992221353682062783464406965366734474141974598978124982327806641707964035108015449552066437494030219421200125708054588008325551997587248564282017985605201746958416882658026248750734165454475545812993750543535910054864449920712241992504048689151937653632315325807960134193760646089828292415313515073424462179439696992591128330024558131896867380723700089960308683715938720895253438833890743590817225208841873201819999535486113439968762935496447609093272794473651419273993881095620345511314049085740775634088672124124397101524499567955445998045001175452845571938731163009416007517834652906375050289682595031026917260790644857906853547438142229764857240775295379787200332765906771867840851184506594093144404765803674966495045160277002844611500936093888197163102031968964076635568591963237219646760607707386476304995884892274783654568235615721819863012623837250422253724909105734594775275959256759601516787774759122028416601845733250924999812298722152700741333183260658300854257391895219293403549475930201699554705160077184108317159990253560998334503015743310514618215245586617483404839224511719384171208685811565260562612601594470234863507617609175500422842087598489851322484360252539651089384287157755424013111841317601928018310903365050106989872944143896530284636815330175077028657452257625361594932075161043825598868258557396824266020028380210269592022242271285582839461345424842338963821011221046027646333163452064635717233593472188556400760594762120005072176257825740171469460392788813153106884031280130208981961215237239685405651763824780924493688069829445553834685042835022814372512439074564919338341275693938557227466813244928950161261448968412352352926109493758929261008161622129787697768907990485782483610619749329016964415356648476171464043434516647598228734602111417635144253420350049848915230340702006310831370060047880786394845399709551832763868841413477455505225235970554033008318327270431785591977985436010139240472582220914216256329138674042488410114297576571723947958655344125886091406356822154542084964632059653760535241301626433875433077713067073819384942102401904633685417742869267011916363313453300374362063581949999115724340713279610646358984975683117729690273385710905706383733834456113460804136970383839949142219573847481861167586472168820561931535645483624594408967293267112988707285301649417770162113308239503353103260479176662606417903987355625207436876818924925115754261554138668369101442009858494948471984388721697830267710831913761754453533692570801641585047675902065921128171752108973702389147374689576104745491626249425147300372327037736462270935439480170111763248371723632663046705513433044363981867852322150541504792870601366521986577367865188616806771356220543728695613691410646187412402980079407460924581108597663994923407703035521163513946143367907845669674401238337334632500394050112807442229405718891410299827817112016345444156205027364349913737296812807051502549421800343095936444832743893089642346172321920554640983653270972342281619469554808760951143077654342972382784322502957575166342900896316368234782826951695779093603145492389552161853524857792811791551655145283648336106472009796354632794460798026548904503833298848307086736132790233584494873347350145087700593829851754779603200188412498749366116068663836592583857513801325807553051975110013876496679098342551999146251769078911461903517502355368411947271199887786025642747716059367637646257514528879770442701975270130059573197183632001423547466869181846852777645939081693841634016544457233536842950472963269071105758887943006336879943820471549352340155055001183673087681028003428212047817389628256627308988254527478007778900394592884584038916069224722593788761662966346131413191381064402428207595790995430792623386345217152007528990745918010102210595769179649852350846690556679096840056349268955702916042614571898429719554299402189834723509748672799618936699928959345130230339063800059981446410316924208491209710918557483916528555344598943319412156106622582291710092002761712009766384470349204122404893660749325834020003257227686443369645037191453459536118646536492974957372681694148948092776374254546183203170023431444558932145803954341698884558223809803004854100553228999672841410199360872929755178464479243334654318847300138401923700366887632882171534867074185539993808682770188459213223736290894148661608154578612071825135906694470359595873012222105576299635393353043600138570014728323726692608999490848506009945686942942192996241313177894994137387548217436286832356266767469989510600979625849097452610713320871330859649566893121618702936503143001916840311156031430100916241986785447282042324763565161243975521141590213258902880151589054081777842106027691032528097211258162737477216847540809488345349478009764709598572872143620345873255414440714476630655893385411667258041891063647507390527109321724667368132984441405044416144726115439824301058842887243564553506051343607315901463869633300691552903494490611720912890412591600028096812364031951948990754404886708414079418128678331792316856368541931663791447428555345879220957139938485423503712879070809516903428652937134287354087053162291856119901346965436921008923687161651342603426234032269390177473128891056584603277355559896543043436692022693921743197163774799139981615994839991648129654072272539538896717600438219115784770193171837860282718681633994843830208518914819813460845612615507090179705704492591299243734991262758509607544865943805516605896638629569807921501794602678604519986788375740571132372102984245065444241970984942066831694038752014213973337621367274990224221116583885562015866573925090377862661191296184953086612713568764374721420783642833587481268040477081007691671764374714449558210105552994504344673367532447296285872509258147775086364067153400312914824275621156715572215888382107712682135413162241495776699662259372795193808532433181647195558741463791969114591574120024913824658564400920980836655992575685916465600081367289694463146414797530995962971296738146091514973313251987663823655343616387995348445456509478367263496990058305630756431199072935468679075540173280093347912355419762793321331242313097585093366412682540152599468711429121653617680650208025296677288382289819786248416749004195058008729188387230762942466522155805739346091143093348163054156333927420136256480262659616914012387403535378663343318325755093135024555450658406672940218580252813360696716340733446584828748748703684581916971806857176931415728243267553360467193354273549096002079114444550026013667970283527793405498229082538436554510646244401277781383567791106866382752118201779678796969861983170160035220978905963216812990855592543410286436400826842474853369229808467024839409892283741551989494657508571532687998091861723248165131712727602612695253232529357341078232285409467125139840757873466861269004229216455261848258660251585955153110982837854110180608119963954097319381552149400426380456270899787422717043637928508541451885756889481322708461637679186239990459835594069343807213418267084439980293588564648177917540575150507057676144595410567915332441427524612288785649422452528905692324041292834415222896797560996836144796294080307043487904348874618555113373899143516803718190292794606962099402933362550260978515702681555051488442135710466297337050412016102202765602653610665807246247362623416529933686008488963289878621751938827249610310358423180823819678891460748395298587974274251858729898824127064713250063093124469344628599983157856384366558030480928192748364088843766456176999536827371177358384728553411481159319984673257451951742602546967035078929308299833538071263670885173421574063565790541946758798533991339242474074189418556387105875465242126501574341394051433543656754495779165468383363206029788300861671448388599965336735185999461113886371741398429153607173031531856842771255611725944791293212417610489436760903725775626227218377049076512334177622256030539525135133810192885975272987093550391774680894507703784903264663277582048427020627965556357051988776351795375120465872563213929040946086132434981987559076563651777151353681138263652970199647551984105485431284090356118482921107930946511723027540374077886761102594779964008664860274506469588207545177789671998346594697436048855132224133805497656301977162769818355414255253285007283272555397304908440494665608271797740198947538534585530769562153434038354693843498301323409387408419414243031158457890205643377949423223426015539198757177599158281047852482739705492391116869287635367554282320986059997683186099322344123238765274075833922571359281156713168930051579898067393448892324097206184725263780129184570762678755520515875624977967297735055450660300787483232988958523551185592342348059775922460057755898732572040701928055793685509118629949434709609384169909875014381119653872067811015040537166025584217195693089843547337983984442028342019188266205435994870249510368873108863311077395040843485198092624741485329019597306267610873283236977823567223769651939208517791903168738042050782039227245827724797091392811214973026248466914595263837727159634509249572828720235880163504788481587379266930968056678464280693549831163197608723950627820311492404089486030759685091281771656156920055825706732368348457963986124334344747251764407782644251300772687016011396520140637169744147895708732043291137337773530039571895996465257168569144900036160125901255866390824819524143795927295941303794600914205897906016940865724801180180264166351524261738279265442151298561224947447118447285522338553981099671390785302285686297709955774146382818816187079679053997362566968967779285855250545061838764117359213855000654135371798224690325202389129422225763236045987301141873772733613393392684202412567170382777794635625160201394807646934351688372123085553284747917284090982907068401987926243855714109266376154936135148767740577484530937397895322783724846194908084341001680529546438768652516028468540016402658807119075186935188942057323997349841031143947635525077104678086030917727764115158452117335513220463917962550030127036347045449918017401295219079197502413726407547261022926600418596121565909757306210957477026091523352461935884809217016792701752672307894299397015714759906166699539555561920794598788596799580546580398565357197834746590121027539914206124323461118220419653475492374487432333151096001983361466288729113043311624617547658775501248851702538001774769256336541463645825208874743962654256673197279998037558231330798614218081663547484040695321214856855755039974993420182675069367819891434020837555711257375642710051983346345809013757698016739708483643061698893957710929983962409091304233897958627584367849317999838389547847495851887952049779801365286118499750938640522288101666675723287629197753758853526365464460833919363634128861756617506438100390676239187601560759018396367085022101682670346235559586078653826511841462530758249752198240620270195022402348646380469573581500030758263544716718000514811232404492947606608839787976332981237018294348563317967189666427830832398554668025209822544172951523422420802089420813584152263821280493773593715073038777705060620370915330859595912808084392203732353589557066606257709068152576780400474224541829452360298978067153665246711305840304772083368004937136105219751336065048707995813201868523566552657473469477640685733806858364021192791113356827166823393020149255618852484971067806067925490218177588544610203486569926438203207018255206248398394822990142485778785863358562460804516126090710262502119258332642508334824521980111723337947956820810483563734853222318487220371620831642658170176136050862631833156332762129711389185958774505208369532089575496172753014139318705213576920852124260982477938433703483020427484095702949310670406242772405775525379675131948296635324910129507054794018979677884028233549066306535225481357749534503437536895688134090676837010210111935583028616915003288768077164359960340146181854108778721229515360702490154448910563454738616138083794625127329495288734007919753947259084789287525866996023672763356573575274147281954062306171888243364666698713480083531983626527135462773148044885955164893867446880767996859115754402052150567357527741225584722474000436690108099777910383585286932073622739477166328788264516772512643114262011204973431049240225457840372754171276072146150357269224389344360301106660027231744416552947810664498992578540598106664971713323171921702388181351848113730390136963343411218908389436026196002249823105576395408784903327979720549224150219011286984616407041638034865350846991379599649738747860068159373904641161716122440619135096510470740532783583689106945600396851070331092866403045623156868447855679786801754278371077521866047917461167911698938556759932766573440630730967349054146241448396938886710526509413075941170081962034339933376320622567527365482101330248578492163153714226515765758489728384716908809551620211245284512351545260946283431694994388417735601758824020527090777504698304985690409330396619129879908867123184731340844085770966358494597366843154191127917085507416830314429182133129404240378629267338173082168688311166662982443937030760816780292753682894555396707057179331183427904089672737889375810547575601185699157786379950587220223786812672310413667011808308840527162210799094889843444635932151426746637890146068007233984656654671615698001954525947412529169565287627934518048908649767457549773170347855356830567537908970532005591887400396990452344345896867130014506148255990672586862683706967782565772195152705230000320897238231046551550654143086884881208617616502841605849857096220791704551275758239628592014009107157882694101004983529136548888782509583149164656522366679417718028224569237539417620823192568393683602610220962680831250132402239324887196437086365396892706935453436996253187519165087545300054210874818477501608929181587415554297576046779123397918451578560231453777360761215541108371645706479135419261969096364032342219532690259733656255558174205104587828438913671770667474567125071443597585532208625841575064012367864631805494212720320536173617188577231383535421031027820583475296019986745445084095926367861239067171148528929845543176105588449237315267058755814786387181659450868716253944509619784231356732218584347758199650787976696714361652948793556656529033870056932562035204652881939702373294771560023581834725230784812783455610669815620848555550175539944962438017342376496910800488765916615253707302456632685014737644136377733271080708094715067569050791523952577343478190114614071472082885067321933378050455070254593392366889326193885366079262127620502350686763335132477103165603027303585415330433310901253857366735934716370799468843567547853160021113977986146317007087936965480303097187819514383271059599296166769450765459791474592415624450435261548138315212166821197932971475869586845851614726757984821654784889326728285228051499041348443103194778053526128023857799381304349335934054484564369013611990070676998205770056931442555417766144340344895520954443024660797412529875120478322009219097770251211739382691324373603817519100752912233449656397171382434938254490020469567156353804645759154375144057989227106435746583828726248331645318864042469430582439308854049690096110621196780316780356252910144689413021624637289463416004523265163288318529694666801077516274688534901539948258122606823744823417101887272686335886807276134093152703605991412379443615583223811681181600741792725610480612923142127749561224790551551601932046251620993528641335010217544102757700088622374823758114229961325331441572537234462473327672307406988054676853140345024032912059620940550021201598219899974880000920645820582394936469674234524842464357307529887887500546576673702868683673812774200940358893414457408691550808433422961644909732436625184368992261226390633648574787635172185100827326020440057598880277754744386656067912927527484869011828326907130067679942901046228404110931719991907826251970539255933428254487832559626722181253028243656038698147475439716997883574549678307237808398087089504146807441475693929393882184473669550577990842011141788620940550683422893786562792767364630415371191248203919318746277161620245283121295571885922812578206288517892293662124744828213071536205886252514835554306735931079699906586282512555147870658181671968415271267779236321108817629005998068029993913352560287399853202797034780181392395605016905975963222771962344285465533118570320345374158465375450146499715020153520312807381928620629101038066636666268324721269046142157482202322960037831460466063925081552777640448522090036559749718228242316810211145300562939782548920978736500334884343876320684493318599656628773867999357355709686563376104407166578520998748223912224536932410412836521380669759960903095983246869698541488970238173230020487320016085335285403572946055456123274107212896492000613766517693652002772390559386096204942670545391377271811415573028257619053869938453637937538882305410683608434617235518884214299913076391895606712567921586847327347282620826768935883172407484055921855627058671321857877307421085959133764772131885206701217200780741744217764213056253870277229855824038728890312572082227461399869041049880385625405976287997657376288555838129972909029959416375148962482293459453587546190554637111374152299784666149212546251860703104572570852513363339782085396106663730319353021827093673724794738053169387985400835820753505396828349641525958394068254789189497921444874836864035720240924478967629318289110425398976959323538018949842501849684138836953082502668432318716573637201847544187510837657043200551686429382616433122773117303147987253046376614703715128347035524867829659817064657395137253446754317163184549461962355383236970714979110414132238831701058864978542891478994686437162771658847968117464621753337392909152574404211366828966128846393358333262338996547270107501504227939896193987676916119672679616313751043721380375694536871299218553531981543377041331811012830290417017444881251141846204959559563599394141395689882221696557393266460833996095180152382791930665992644775713625762475633894548861328476861472762392733063696586924010533496427713165497977128141193599745471899984218211514946071835271170764284472973406279392676824963066997303609167614009829692545636906513353964821785760698237306437187608916768791091690831700931625281252943401445536094577814450527313032170802926919111561473837549724899847658355269376520955449881837716650072548710072347701504483948342831985639159301456600308525642760405752496136526961520127519125113770375302397110101422037823692110190906164833693536647310843836227533744913457762876313338855131847145612615658535499567812918199299104383715006306822335887108961252114847807803204702420851813157843173800879976342535951055523921163011235549038296732634254916001451824748079469518035523215267930072241463393081328749044514296147617266598105778381257760656367595170659336892784647044660191860807905748746888522588641542796192261289633235209042097391994936026593129522894793968018953860044427761785898624388389074005783056073008387748837779068413966622197151276004100879253039436731778480345279953225292914548776090622771501095728756165342841764462143646962968928178761654003891359270660451266744602022022699336442648186965265150754601784572552856812004945334346451374064409929240660926185178678930379378948588590413631113126618167085348401898434165271727994464920662935951603673956761216738344466030768137079323428003707100016893026384083372875596949324670816032963452989682016373607486487060594056839719151745953224462461469648196804237110798569925676219398810508355126182778716230287074698067286624546382137845104481920643465417794673614649650996665050587075635759260553978596593383539400315198756298544005543248481011944965025114723173035176501335061636499280982063062047799523478018129683759434197389785903554389685356037649724862225144536073360262740613337161542106781838477904955455313035263325204626920792110992630183124268373223263350200986422726655298492347719401534140557252252440425219748103123703936377033081257614394530376510134066627628468646287670599135896214721409133753993993532907562552958929312571640615709931133846582846126887965666064592648774826470467104697525502893306712475723736768331098181225031488537915421385978557290184036088977177180667961628033450143676062453569423134733218246885341987905067603318594093824365249892024339930470442346620301986969733055093725057282752121155226179501482073928724066029440180412512814996189837533433336230347481830433659598372550341064750829761002413629719668800720974732966841373324677395375957171551696391899457390817463073037488394502691346539960316451314765457764807568961213352694805099491872206181313971409541027730151613636679123474916881696599501711572732668755158678285010653274529435732503736321086834618324251011686572739942286494988489104212772874534202205235796651488541559744895026792058762549928449689212342108082725899340892210189186191315218047093420157840557997803867787026213224363131991803328466898477966805035718117404596024733285319472877094682324204590839695822972301332883235941133264074647225934816151789716701080716627735102580482169816179382316819183316462279321714471955351371207688702209772506129110846930397780110967568071148075842796599313720480791651611427419732764394071701674341094989847592025986510004880395667048996274144536579626457339260792299634266021689375689471453323919350498172275825096448656001434502475043483757392397310789361161527828176448493560069182721860985234478944629898641996066622209126904273530365792080869210526110973620320668361674003816019930344405763679124664180684756371857303718974810449137728745549687437977497455884374181560510664962547610827070435508752803383402415113417527105208940654121484801983357202849878338694134583347139639356012930249676010293409987357777168280716067984548644853413403303542102212226183464566979080396636299849947114410990570996951517801732419898035313312191717407662297244378773395722049883857250765256894768163535460743986528310169948877249405069313424125628984377140480707425962662005919583522130795017799977215234911304204829636001192259284546259500136380843729555657519931696270375423675134114619355253984168415355579371020262175362370608904198259149973782029339253190374576002747081696465631730516877488124299637023957399465147299351583885378085320331760150595474644499256982853041739171978669105218528408833141341861903567458657083419762442634944720669493062800551071939760174167933172268073860604992050072461025575318490404260880846793008528397509273376961157338419795316753340799511879795008231948254364201978208944314787299127582035275734939486746995973656642866511815391845728552170126940318652899389419588972139043079036606538790268951853976514752060745605625398828365461114132114328847852751944086937928640403358654324439492545250863014893396568498264791227804323368319226547900705195017526541208321152112233078083556811053979863956508267311322122768459234316298785155132666673880339325979086867428099064169972440715594149097597263015070129776979182907882276994912535401353355794999382788865345129892318675165573978508174585737142317107617988543736025105068627617646723277696414349660191642569382636411437306268241854145594004882524490232564174885793230840525865684272155251452932349345906466658414296362502287032635507316798915802055365862074339229705726854399892189087426011925875065082233943282181397363916538262761110451281103998645167491122556820653603453933898747541903729847946618015141082681840447812097979575606801147662127104677355256834103414258799333618702081494973327421014399895268748001136970321345806398857380740907008764203371371598274549258738539399932066750017147370338397284647334644400707869939436163569473252362511758286563648349098144929974587438811162864158941353027834027367794125099787495472407752826331393654035942358236485713341074933895069943429268297230254016461830746568513207653368017360334285077746254565706316790974015882421680118766288879093235859437821390630189189639437251251381537917349194832444044027486107973497862746900729927200690470403147523386723719232997424685522574694857690383215613806175498126753655916204258953954710396675997058979129379153641276168286294386990598470084020243192089794699941799847826396890129262586027685792433853049888893039201029130850366311594890281810161243571482632519738995132998685035533133550262140262083353780425379660668679530136554325592895120027722102240365941393658799327914345660332210667247073315212954228809866699303884932229360846276092372367257322878828202775494117212942885888133736847935205389909991710069507260065213059609263319564773832304287026020816109945624404341417610259798793689329823999538675899798168986799304475993309339114751421131663753734452428306674233174031378568718361358113311716949788239329973576641375002139988456858175183940975910937450126087143406323307541503023418370239890017080237059618526447617685491270363257627526512513024431920245091444219113843921145303501834739053721313395831295876190649286051104294130227245468936989891916844589792452009531193653620706413242060601205482726275003110860111679259334799364997706507343336576182107090525224984424565595542235715489460419352339974860666288650300043968965119469421947881996971126034609649425745243231213164604172929283788865618167477621039656480615719996309606808545067830050173572894791867622488501567733457393653277284302737298181770093701992023176721335917479210275600250738950955312419639229355863646465418421696776111619899142523578744966767239525561580573791464669104142170928376443015595532347180248718036756612302179894388017201904995811458875120507109017633162606356173008534827336785196963499056636365082706799208651976705641035762708747185841070379087419639036553798052730715081328619865738318813867857697962180963978418694638123294995750868079140038502529777408728789836682688397986333538935129329754598772220216634760847574079195027519083258850527729547910782756463702806190490410619348520511930050509787046252799047163714767529251772774785449416427970551928981615718226207617004879693767774719519896974149298444141030595055617615313762140959475805465482446910394026516572081891663586410797009432796206856106680645689481703596158022146202266950910679499137570379480734872381749468045903199329914686208128612047515864434507645017805261970071715918382505578700231494659257817958490403843384192920823516755281987269997676213951788667450019386828996475394454804952648016044311277751628907667026294243829138550341439359633302558486668354246800115343521366503101213289562514996234494784183988659005821924767423257960365833640001203882776553422771925733624722277141376600707240636270013117872535153437413492515283112577148320465997073946856314149670164404148864688120322860535779543570972554616529823715604578586968874628020152535560203145971342235420715982894503797411354201845594365147686932480506422711518439687179152867709753518105061113682983924870787345035327967816133465920501331788499255760337227478618111446071686166804730448262997708693335245096892004628889988196088257935689298800422311442502445187569311810557070413396965827639716211924553899453195094428710829273802933612953463569258215516964738834139094655692304821726705660525102531124977831246333494372580932796472217374637999801145291795620686286693199708252995864783221132216164090154215817225971876159543470647854477610949822090370289397648934203037048888734861272961063198241431121281229669568281952774464267374134840389754598077108802493402858299073723963843418965023365995322293157176207653596727827487381009008462839961240318651958341903272717164083168356947195758363993163581632069817404328854564949687860682561403826392689649792802160396748806289049665322227277524751224368802598914940609420226981719879380300309303699650511982787441648954051831161019527624215921679392551813637189147718267720379478995150596542009717575785159955682991317807374510272057809492547853135388724496414187272750315735921987254410591764957764752903625151954549152165618125268392179418217601666603863930157866090016852434991076501494299186264507336280793344936731807623030328025090995101230715813085631119893513359421603676377432561919665987176319692991126987200024716139768763475824317471031742289912630635890547242836371929645912298168246607980756708178733556558776726819881075594927312618026177469975274982296301473815012580242428501831621914344597590663414568410473864357841421994644577493865273563649691596154975428303283641681528247714444692345827239754483363022344120770793391698345600016379302810707477621453914975429233643300576026014752780036557449692573723177339506777617987340727475483744685816450227674755715177690846225192944095591768568858040703228840980980418326568965100034895065607998189629274325306022004788875646526822204721369988832692102330263361421771949216262464953485201754580566493009879431227217681340614237027220154312888739946713173506642534065715439300856078988939596760975263043150244977468402189510496730851985033608039328317240491409860618587489023723407899508285400384661647664646585196378831639234456925737886374935589222355573798364889371195308520309110746842993321403454363411085550939556614895378604084401388671841881886189039895426101414920482898692242864098018990876439475231402697428707588279897129767065469605396122537717754464549034906949971047346746349858040225788743031370441997452207008118620560405558737326320486346170577577267231323627252035376119972124171647576526123927812625446185057297101817521326377792153120929985008519783576978199919869902726002717241298240321420751066698475078132388008297120997809296254418611024152070837139190807997043729548028649436291830930281023748484193281433151818929722976771533987994126888589294728453772104812320631246907030003433532733491315712301249190805005661364919333228964042306783092693257529470415457377818866484373481803469354420235582041209059162576732923657637614509720852499968077913779722802481764070273254477045705564068830240185150585945401905094071634027278417146156160889803671793479110163208502825448326883269008877649021672665829557843900467017633873128535707216908339956886807763326751690313312148159554371635282496456783177329655818338376373616077979289191160231495105659594333515498847814523223185335528188596738053825010830103631275677855248326171005542182436977618898214785294055591833206599015978788246622863812248667288673399785342325351823549975464157339115226193372356490568394614866095538413477008449691847852321372200037526926336109687440710680512900426386851534825456933042817630193306700347552382770354932601574425223905215083107088334064298198876854394358872059925436472130661476187543878035871179422990879586983153812268716496165044684647238788716109233787248810683274760243894933711606691176515668343547915851066552984174228137214457000501054877062568300321672895710657727398389295562755636197460198722225653946249442912728356931880301997045810690618020613810292304676154410652993671897858760677185803144442625162660728032097632220285567137231691137927249840773934070652565975765159112109832979708728842334117114595318999798837070915994368606482272779390794282764860996347077203213209064686241768027010293614277925782180042336065238054212979943566113518716447277631638811521216815234129074323802270094804219376622308103786501442317073952074849876907937693642614086431721762129845264522135309673464264631778526533140817560814882159326357198876167103486961809593066032162098065256782549285377356798672450908002629374704284482642582932028527647134238196149999981056344774848730180348270807200230837664137313696535132209697624459165873832767487547136866659769437963107552281248309743380924589519682463696880808513910440513343080839426202035936167808203607852194260352045599536659579570584865378887490172874170684863634788243003165078580797842986787512643525872109685339084118874612186203857073047152210114525484295401777436195941279878570999286897334265310286721146964560434376526481414640979388940807167544604836146984049812551930532923311365930052962920255427816768373510034995129652646866254739189758278762951695066936175253315500958288394501911368150650816707286433713596572821548158913519749067841664702782386605318072756651022496724265937416974592605971441651885074486317345364088046254232822767382589928930387094335594076061923336975904105391348351637601926873993977279836342354714774552851623677824205190508931670821296990279647934660566859264040721536836273074918328473966229047249262360163286003175536781567106844135884443123138806655538312025036786535877191480660282206328597328486120476499672268531212368016164283922768434240209669209416310561898320239812373310966682840151634975212784044925959382623644798214736286297444281294563683377718522678736803681240191980318885893522686339287395746147453262139265485503629834505512433190597391247767646979927241792390503435069988321733605801424813647562772313538321033220137502611093764867700821867641208631040287025963525206911734027666224432074691490831698803352290699894905193548565824744569812859911281065628077097593217198936296514184084076474100328147130831420555835765079363184993975320745474358803127090100474808007704631688384301881571188467570092937324657981040965709998933882337566605312326998840754827304866082399163366688427926654145157625910199958583328824312767941631264909940397209499636532571859370270495140181314200935517494388873769366785984834163849645643113016985341282165068478192042841663054528206009430778625380434477374673432152740072873810362579865796743352922194860125959791423969081911353545210977335569120544442288112321785889368165025290483808642849638848176777414852715715627442173186325944107989216662183034943636881573422362034728092934402236331721088549885259656525880943878119418492376518946955348533786023822126478672829311636071471968295656397902947588179032859288901261834349567776214541533718654701670000033943535951817340146516300841953849159231367056038498552707386468981172510259139991153563843270153366660033232992368892842501214435760610067640921068510097792093012124506665604313354614800772525413035358405182320403433479389551431048712021666208321892153325439886551562369493255900558236425878898748565565079595945910508106738583888781652933136626565774359320761703051292660167637819281005396323643114594379698380799488269498346150127264818765895061969983958294167282689082325307389501478546453343339066265850368182716860259829827198600341160489970715652907983553885918478150694795998560073320002672298428996528705009563626486871240223452935406070980935204197189281695374055302829759171263798017987941734112343352425580134844764698783339429130821932901486397847576703060233008395415309454824070499724093772563200771261474753049981015285674691067588895691572483038838269087879636619560404047653480351116140080082419326139322408761997403041743865944195924483295170665047785479892681779727638691362517627073702699096120273346059081628779845665135171627711744575614067343150786481329648210938618048688508007051999362094906366697139526189098226518738707619497918145075651392641678650176952313351507098262684596822055633409774376411657054720737222060718945231237210905222242393243590946706008072510033621802383568705103994839219595453839677458910861144668119164991590357582449943790254167876076359040907516400286105308304741242105075325481604319804279433883225265990093327683209493971313430659608656609547411692058899490767702820074662583310042603455796756287214251101010377356543728736864218775172985393740760718867727270562556542694276325168387105388455635654311230073118287081037930111970526538433074474016598154223665136467701465616834468989935282985107709479614370422976982845946248652980802484659970701759573050622266786566190374879240739229092736354283990390370363478112513241349375532271966167524656921505776009964184465471418553300411201535507084710633119920866039296432827014761498758990649136747892482990980035275049023099918322767238790450294789870783804173768040245222866360751854305334072239493675212638034092881081208845354471045961677302132541722379534271666956068985037342366231036707251099611214539308824891439579883144770330533957393842047103509108962942906533174158471387960498025033057010503425631451786969774108147335792805180854271896395274456032423977629134410454697972644834026167415710209139059970773480399826856503345638949912099499035732069156173912596306300524351772955341555826900856892670406506649674963745776032851999549008484222009953915227473008110700413067901624117284104162637511021304357709154802726383949701420651107385201116707752936065789863567960178033210855723820656832031529119002667402639048435781457919100026332859299451618654224766148165880676966038168430401170188458899016662531827384687724135403019255541663232337639181443027404317420633933935632959239545610725352585947645899703825210151839300700606122576111857787000003935648361005048123146962227383581056395286918067715381096886742432933724772502731628167979800204806210742474558337586406140868655811473235476811194484393126511808686861713079671827137812761533328986386413613656936198386883796170465679786356788015109966139701598413077690726264530596325351331619647871876068733819977765718684557655246735304326365645278334775638026829741644941610110587138846607735907188722489930874128420684609678495756355881959060558196210319638705020309130784735397719224643016283891044486194295733544065391387204550191371711435372468296321283806280617396452008128735560423648162400622566415618903924800903858435251740608553595834754798010004463727971599727714663179699951934437517678353964854688592247739291894855632662674553593310480449939189032190571016548093907990369216709931251637317469768685433121155445709375617274580004294017792736592392224952260232487804379388060927508488145402934205619520241256226529415134934525952260456962637412985891160152977267029125568949215752182584718514756774860366962135388706609852921128961994027669524146135971516731161022728449839438878838233762258449278336113078827170013384868497410289333088766103705454122648124302840549925419297165743997662557593196846318507952326552527645270976080480663061600893909830129123121366082183438159911890080117977990087826193692008958824644917663625321403766256181543210730439929139895173912472885920085012282350945311607025189467626108557384237468388268857217427802750008512273609994393207821489759515434457789077665539924066825069767991853183934363703309811689581957635408924183799560339458961248011414980502932099150947316360539961785744264004888131361562940871292047613056357811589854340055865104085054911730017924222598392916909746156777732188598537161169715055068517559375616252650210908722733638342082404448753050928546286654772557804480897389780892953161996864988314543335172451947405070718757073527601711737243643673603310730722541317370681340102694202551668684400034168837685574310648666646492938420793207612367395659568449176437740319485655567583661587962983741566255151010171936989902073648150066483756870524737385698057820887452408722023467211727715971767807883157675620422633944175764982530382805045719784394363632767805366273374319004951535630071126275906199123922870523067339729764037487193146788196710187550449707513041491156350025559744019870007947438805555696628196881396427090311017600908371976851210106504933558101108690592973323863920738844914122160558151804036052361744505045775973246838436010629005054013713160324732188454214394969907515587578315223715022819015593109576954900179310699302874645396691444782720484839839662403006856218615278191485207096741365893434466525946102116849377263104388019129543678468283969792462630765433770309834832576728358189873116273027009205595735087156768048370751797173432379233689770135767840485900537669612206183718348206277606880847650645841762644346437323253326244964763896753690742981901818423356609896621820544015865201507118974280289395298054227671962536255137076426986834311985817592594574519325646161427036753862840737665439006765091164888566509349765247784585769756525401409531683935720997850608179765476687153672926482658005687752596085144990722721931265820988078086457901758565600154296754361084678957779827297209200018780894508875704378433634892249398955252297053955021864556417363278168743170773722294366168430459032031064149432902221137061405960113002361535504180302208036004139522380934165084662084793784162355478208246294089836448235941147598484117412693271601446622011775662526060957131710417925067338102570307946082023014465228630585392302069377782725458158001821352502908291444985519850344279653209918703247649955092562683312379259916324285989892223953587203809082767927954238054791194056532068496798230253889613495100079611736269451327800154856756872397364189775102601369661260668733591709991572079985219250239310408657909604227361815146690576771672248076193081891022541511536877052437394941568213542956385541071309339420614118106289430887789868337608016114691255827612505989720378423021323070336482558148867313794866639554675551591504270796619713230590545224816258447909156082515480024690220397158523087604300370948820177343013001541569829331325477827249700950400369364823853092295694760621336171883321038494361357501590939140926702712270273696573761129303543575756311563949639733999284957866216743414206207498583578111999619192157512230817071924959226251866807304088931853679984018399882558458439147243259273427182917133198161039150911793266471614401023035986131968779270747935664007736577887523169657569841488390214472139324501114027510955213255212494473193202774173457295801639678412149098457689253203515976664000778189962646558504758514302008217549157615110210903430425838219089000239422674279574791134183324424765858451067891504945218840837185632972918494735436195942720653676456678742438299447995161600408765540559676579938492897199955947093902087848576182102107533667627426646860233961765671779593360789135864511072038894103687286895102475837401678219267666895617525972891045717610117005295093067212663242968418409423637211317933826253247365495516514696318497938957704105666550639028217886289580277963224928239990887788793817330168251902084443342740582367696685058821490895426884054814156669074101524573305699977201526265115992675587538845957589811694380322358802314407668236543293561401444472451073113617877668826170865026857788788734205902748366273382130373855987049679933478291817739541605535998647914672451723992490342447352749453868635859907679294926554530516753970229558080243230635461204033703853134887518094079427307995638807968858452723185841706805748944887154720473473924423974309856689901975072608671425986725845459965445323998089080354477868676938724151125004356698893072090614174039539150412235350098952353184567471953075168738849065645227579121713028623170404565912137232348381519657534692623517061560447969681363711758992829636157079447549469044828877350405768237614008946711601605119478667492897060936579781824997874653514479209642059453783122746050206000363048399737003226961651267213473606697317733517680639676515725360839014516402004013155895306626586168530137031672112701480410684969923460685966459088234879722195248985467447743613078051348521653036118042722516189904707095492456212547457653279765026220646766550502320193045229639147643808564614911628171971873902528098691908208049641463057174602958512865169556305841851530351536700324229503128173459442902709690025748389758315799651616691624288842680149266435994386845784749804206843629031371287144416831290671681701251526823834065184449281587029161347344268147357313545609603798576094628505407659194130673364137688132147079586210507894452901682183748012484904625980155113826163826504790952471793034857259378646233652903744267148839910186236573686745911735310132089614642219519986630789518769358736755856836664787167909500996450912032186116991780484236151320401596093838423120864593314839796728897722673422078702297747057993829459324009349727588696402328268713521167599771676669245805705285781357428886888026836562956306048318402853993651052436380798396321059055254120339921580378460554410869903141968179227606766178928278478799047331888940935290790829345339382824464045554822148756934737238950027073528274072014048439090202855373763925981748315529919825821667699795423646750326190949653465017337687056847515493085950876344109543362492954054852022769900557524753133418755026954589994956489562848515539212775260066330238383980150304574786073806158478996873097420153811849639590962503833652092839487134722677001387350215946474176404461299042989475135466329196733814984569385019800141874881658790679258491998061848226785747601877240607778582542271839170667603974722359302053389867390187127403996662919902774784123545383485410987863347798554654655985110434303742669111674276900476891507969448394593479325076420031030664449774263784501215701978876849107397820552767162380886894011424251378040547285475716207988953254083625143870123597397937618898455533546374647496705489142068714658871331561739104489601620018082918045371040483609316879450385441998948903294591619155891437120815817476001967156935467910124521779844221506514421584716200518850706331400383180413073611799636982995095959592695646280951446316701750270261030353727292910250110082628623712908730187261951107038609336825339540654060696511188373048196523228479949418692707466184022638281341505945255292480285360712191207290309921438836812306277822784006434962582578570561102096833568298912091800808492106554738013871448987070705119024103539329186449160379333312825301124794755816180982183844456433846698072706138462583191117845544801781556159676047589010592021332503759957109557779534785169663478326227269832134468276128266536782837560038233369338508537516622637338783939598234007266711323754718843644914924881896894230420634726478043143178500791205429112319961275414496354578620114294669679042592151283171371660366003020943053716176566465552666472846545871823183568644683826506748151683267683789013600204628884027641532754140334954410892345863235177266587238613584805901627368701978802998784176376747050490691608743326803685394957271236650897813479405636195134675306373552898887161419102847213191329502287335130882368403797365442440470845869389667959888226543395435950698388590873545793865190540471782810529073926590796476423490186839796471903033460711954506384916679293123323528365775285288359582724801939536951683203719048301530692857231462988085969438213631692032747583576450418051062839749059793258631371815041822836126353441527973316302686415221229683856236906550199779282222034265687461897568937483066027078833710320829209899304710811188172791941298325509514918036211998165725782870031908519729373872917348403868542386823352385983678896243406449653079002195539353489280260812694577496402570893207457582992802181930973001445520360446183745178845034090635849183591682917418503505358866807023301613702929535144602257763425349649216710290972326299183703294833738265135247717057608026577154872416779610659581347321426986289449593581064852181791753026740947378813574023591740203223854632894006395606509448921268570404638313144315420630478059817724602418672969811540464557209465094174235818512308546433532322158688811530628380990772031874882499177027841304067903627244711691455510476464089961676975588762221734987951023687876659464972124967705623383911711509692166003168750537593661336557250836565749362861987559195776661303941174762020162532043874715442562034105317360776349844466396680064793963770974292910647240132692367312708484958204387641648276866460263685337835116580069419262715104265392641729047448912203237793871999181429756494615973279370133626014359804406330218634663363455200249680829104606269409767441839005156045555312246461825584614421669140661236352980575296535427710675490320243565076512687566620336895163167673632609846308779341585087846630948631345876683551614434033880592531841982316015202506412916468488297194033036481194180558750787630982601064182760061563370900048885883611944321126164825861462778767583630257400182032490933105431294563826236060390311014642950416403327215079201930322568855452304383588235752341130105158370245852182786673771988994593486783575764057397399871397177189800152893965708326710772142824179490733782668127480375888223093996343602991600638610276282050417936707741208033059213911540775613091508013124685321752151384546417293798288057835277656019858036765263472205981184665458386973254150787774137868956452457248746232650816579239313290088955307913572072020168211400857974742197030473751977920941776642924965029267264647392565559774189157159167834114889284005522015249593388803012563873776044749504956335032493208255287029080157508007567349759215796204139131782493355975966857485452767762377297135607389605587461387123994842399480839789316216116868897871509643716580000133330370889922370458458943348919021574839536554523646384828207281623468131211143573880082170410725119840681757223662492669423693878398160319765089706883298816717261325723759057185486048777927182186012361236212736473592060309638607930016014796125019337900268528185433614502534038351474946564910207060024538512044352077120352984630871391094083183001128552660723625042401395303408086173537155702995661376991355432491411592107047594481524364899298990821046229765404130303729104466521650595101240968171499116259955209085888521835235837028580570295070965196033027562038956791423064448117201011778914207284724050287119868211729772770962469410056244568948005775991881205699734391607614558106689851414328577276233277948396231250668187299258397481697621645243998792906171938582174192195012290493828814726048521042068476129587815007859999433076654598608158959280465771543080092580107381189625027387001916055970532244989522692079191881476173430855662728867624150097068473264683879236702476665380927931928951563941314028398485926095386352223339227636149645169188369609012062754867364317034499126685944770807362176575892557995056940520998073749885274920659550774939617010461371679935546855513141255924203153635995491630525979820328890241489510085288918793427444478728319734211422296964634343443755057633431756349275621407575591672619420270595586646696110104853218808649715397843429920722358770174651937898075303947463185355840563638158226728336424661635016973586596195401611042038164234215854027372102299837771989990335235657066661033946433945227866627277037871671643862371675133426907134709599980160472027226559612166294636187020414790065595554651761271097405934489199230104335565488928917048352524013957302515938821151399121455744012074958728784591906806626325675894747713216404230684073044706419093875243493667020880692450384980234045627929151811629483860161328780500073629677674681718884203056032118178288832142839616088127070016610262765353679667459065965397236487530960122793099427952161102846517947992468208337031640272834780167967109111938607735015027209451540386530519921185459657792382813769095915486306994913910554752399333416716703057865751100777994959870921316307911375623581568608582573091512600495469647640637309943223376012038969471080855614816536178258859772144165332646114008628652906371018382809996335182084670064266566192913511491391776382352444868005069457805294637817451787880010599186690803037748416711298140688489467382004267874165455336504085528069511593323807304376272102631394034664750651521401826504060861911529769010448531316123894361132825709533588404207347471666006645301873078021324844611258254336875591860463945945653502155938721501445020364013638532759437129435864597325076439641865547504111543215212786571364694024190654135577648952346870100321922940266339665019605031721570381922146151123178309863597319573411405668585467593517100281759281388945082918700088399996739776753529429516394555242801429281762037132048450127987262625981153077666635505257219124684222936913494654469454955110158664682795487114701751099940969814223796148151796603967651868373826712831125996451736088174105175523313348876215725778826101203048368414454223271493830960653241239204753150922876635013695667858781106635725990367125996088126198489793333653836617718415039897956466165502384810926160023048813525938480109172015006721672095765229107686709935901588785608163509452052590660946656654910819058441094191437611539208968352800480454322536579342746740960234793624690969696399464344738590907346131864592519584457861323219904926927862717327360994785467536647458763075670537428745844068702776149173707845213788856577003812586539524697667904663806683011052475882335211842352166149178765894703354321469912287588255624743531400480033137122193429983933542901072986257964060301236012774592438194113229075821157235569250615315247606530140958788014425862733830028312426054964306844913080010354541106360448335919044657719149275920617908599843910146087272647179267070386983505301550617060444091947122710587087682591313368283208757108392453567399009977451351364351526146953523256116404078089115559715480966565146507010824638781843617380624438966016265538152178786937573773494303552458637023290578990732383055113290264275416651929385322632557011321965637986629830651775474078610821313256516833466263874989642398746253014635404778721058725930986608450704648347353844975475359820224403761819068800591098739648898793504899313197312726446237162757523305517336163630332163307541823239412882817266847912288725583978061781128196476770141619292769840003510768651555607499346585719332266972424908951582263498869748319001781805817402102880951922082372754796573089874435910928072010682682561849585357331315421448194917937759364911054322011113511584352493634753835814887146177512979502986276379387665034520588271727635431559274234629580021425627780532324234146572012027105327029223974707811688566293383033538261869053366571931189375852793963835959695094297405688517134233459411382996646122700667337623732911403400340237574911840646047165892527361533228777159806481089326743500618442108727627751869870444753095184671942614671558773018532751435369563106244444825560797242535159330372358703689871150701966460343557337005133801666797043653412136352754615493411882852045948602067222651167018733269630019676038799908625502425601159134417824526938365788572859736669113203562931599284035724304828172335915938719750445988579550982697824383777563018817327048680859133629642540118256793653891715284627626715517368591310976101104009386293912204578943208709202254497331414354157330864483751707948955877658896994925801896422214872334509348989511017577889780680461855539321992789684843017360950078808228328880658250580100245474606753721822224639833004508683967936585200638754751969112199904074833294154353958499476968253683607788712873004117743422841094281001427097861387230421270227275741887076620227582713055903316708393535502126503151357709407894091165479025760548320257132571666206719893465031153168896513917225603000502140408468228596099883588007493542776310198428549726598073761910442518032039629566845851089094079541163709102675416969274354392866801313714981113157211212901253554343774886964702191945313910567592468970482350680987839879211934380983965197848804194162772014295071010802801999866159026416709401956822646107074860412608970780752878124389581069211032312193233504725205640014646560297991225143029738982938662889473865954902198884840012316110612416536748159288810363604132445749156600211363436545510584735963400282048611029231015878897437418168615816833210178014458709565091480996655794511644137423112656633989816964657042443122624293036755352886577802477853880886451834613681294771618511941007573381122297041584715165615107908198866032200350478059543370007200646891811627858922893849880052875459567525116945170377764758301129890264005147180065686143581802250397037305419924526899313285229485493783954861839604429000215901403390763398192183180985509440890535195455816012038305333484109295753344317040862321079547827994857757706135403845041250501474739811271349970607507490892189576296956414113441725275682494484714103155833110323351879368760395121193339676013493284389337197169548493293429564847655646878781482429028585863106758416725138946699109549870716360198669710923186701382877108877717142913781241623245677263982023121231446249234846404800701415148107975066411610791192242970842311386071398082105657256576418019643219275251360650413897309909448399644120763098276269610617059952382954685798762328511263239740387979532905136260928702565155778881881014329478188648090737018430531313279171496160634586542237583747798863677872628239032562047081501127780171851951753785606325273738980200140955908141533158301291570285017494998049843398165669750487426622407913359742969527806258238790407328295706667335427070009255455089099638876903187121984142196135834167030999526227117434075872927601456768940718625713873021865053900874055063850096718060034130600356763290021803001067370861538273777681220038357828057332172240726276272981669287400324980703388730010377651619087771179185846449287559495357490135227074219143701510433675783951957961689801180526009667401214978772596434973248829419218389404106202398802755643206524362931594274295025949949307982857787494289013686632524630964396462313475377635944976057612831451601353639309577770533938236955894927922159496554875377044859168299954433558052203303044022222367924024645649523742329313675172962216926805523740830444107021621581241191764309633544509209534880932669635827953481233695499872537434236865725968699098859211792936059744610260628120887975314454862257851606489648455624537058130731711675275550851603318539717205375236047663309118026405485083293392261799742616901779060481644750862232090651295409710908932869449670895900325187282655457890966277638496356375552235323481194491972014211523610520121624005496214543239926089644823414727041500346268522674223804505438888311992905196903665735432531787153630009976953993324690863886448824874916048501351038327825534950373076710454685163096068346271786634364438492104795882645916885942792059929623007577833819714564447157203915561523174501941492605590138243601903212285167742182768778764861537393814956792244978655322730941440870237561502304321183535979991992201104895046951830407827458238590472372515797518861403650992997221058209169459558938996753949268402965528503162562624674094566828468792298002398567714065335499604734984438836628584881521660240634019450009888332859245183468475933980081737859681989669012475220640540001623670940118248749625077408561367936709679922782260714802040649794900535240129012616798310023203167940568840492371801675248973617237793417858289431148014646176247627387364986442235708092468890813031323576135358147105329014329307326012130999968350092425610679159171530065950915462495990752916131503719095242942428868198587595946705335209004495810212707361840531310146756956419056592311488760263199590416299924593607820632406594106980423568304171710958014480412011789836922371642006249620821659232380405377694715413934371450828722778254568393975191294281286868073657225680809029783128341230566651630382143551268795668708936606592135589876324593651617384332334482727601676370067597549689342469534613357260283742976476940957810237088525681261830288681474705931961431122565348955805474728168671187470580165847934320464533326112133254912593275797070957769267852485558750091128612993570618716100670690903872946146972480430232371666143259424527939601640825059271248584368416026810216042436018127794942593861227856991800042162413397290867658934168171382392589216994234066055815587440744360557374040880559215902207830904761803160515700739006755928449652196533737131332728437471538981277826788098557883565530620668686228728672649476235751041575126982249498429649796914743295158642936661680119695173521171316377710404439995145801273523089392133705389145374247100955200307337276304640278562254880605859116681575414101432682224546544794203666732592576868367656724821167291620999366169541778306368308642621010685800009427444118912938526522313719111938346904091470289327602320751372938093544336128409804129513242316211444250982344191019713679213448071338376208311589068968980312629676933478016237276608725550713383769370700550178166922375285961494837231922185904460945856840645579665888106842823830784216556477088820401726109006863954312847539514840621794795323088473192320419239720954068155470267754446313970467436811590630349605347555668067877041251688740664989084196835058659753844258244386569059023607349138907114416024882702455253372215918628219487019462525962855505160457441536137030354230834377799326268898898824131291915325843189012366353865371029567115541721230646834484862660260416507501021908342572338278626204462981964704742041174376404945108377246614154433650874425865181683267129125233590878763446565700495579510073836032126333378252941781262180254787722055998900773277834816034149451129444601038429398454354949257353751880703842025696451998305891030146525172894320520521431353614567925280007297795880688792684722590505217678835694586450573274421902402486502993534264756741153721387086981182032679429063946154791072046786434778080109227978141750409686653430412180460313034176711238518968891528224413187360490409607939994863877922937422757422404121367053589660209104020858431461066628688808720307123456287608526681971188315115664841140308092505538303770596684587927628685316334626607122140749305751632954557480182205573369489031270397050307353732826359325676771235766592682573717941455972158841268973336657082214249192586442363257427813393546162005954107939377594676272345517400397610828021098605170677771335577606652780584674678594128201662336835903775090628411430284006794540805714063641096821133788273995104994322038290951054171239798678114700644132882786534556845693302324128869123995454318626505266814053799006327712184370812042088526747787239653186232393155787405577224780213047660984237697927974166923754921830867701948006688513990540943710794122306804904834753988152920138428081752192542013630109869830851866577015433192153285405096835861269917709725831994878102416783195630319854388896162214813272652683541068067901148518336117741666149631657284111813976601371422708231693515631643127527963330655789522841312252927433395699405275354999813243272311704727569484078962653054301816399708098678771062678035318874750004498672227554569708098033489905866086583880511669802837701265927910168553753598069769016303382945755958441779504086308687970054045790845526999889747255759792345950701105022551681817906971771862266326520386689671352837177107221163963716543206216527303368446950469689196820036700778456358944197088983710165477691068237038412392208245241503987594243302832029033529975994779989013403807700983630745592157670388165163755090591590861994775563432809912694465487957333370985469553762111129821797584090720804610381958969343860124875414152820751113561884804007030202811664660184204932444873951288337162145343815264011902602542539064207691777474700505696510965286391025514276901311179211637496710872141298667047848496782250768607866084264549215344015760247874343260635234548708174536466713850406729533332983045874347013735069455567612043901856257263113452689544086680615898546839541568580686717500758159929799680931143457990537478318618331030473599245109533227990481506792851634711527090292907074175430207713559440269069098731155840353328050951904040756399235430158372780076606749981176030585864062493557589277910212545179388168422641540388318353856732357724878830233318601524064747673897777106530053611869990485802491013121909569703956608152133986028041644455244586083940359922603222914970200140733644312993822321333622711581376787690824865736335631694350907764555198876661188606167377593893576640263367069980254211710080988913116991876450335974672390241271600071551022402127737442293850163594049464718917458627122073728219832752389918459505893838725968983796115376110496398783392419504100597028228517862069002466556467294106169680864536169017824340054309630306087461829282311302942683693686658484219373378387307816223041097534066861372252762133216106469669004212678370487887769891361323839127602621085154713095757479070462160807460400287874106135159756835966088916439454372837715785868166319769889792653427774230373057572036517023086710448151750931353703504270197373650651480853656588079312290547135145561103192326203718947595951997000707181625803361582310483733285385305183974623791591543921836814691942958902296964884125711812155540227023489524514423409316660035884259375763626359015176130955150809798316307688706023792631194729103414611167390591049932270749378084845741179774045930081243529411780774506952386731316190190715044107915018956539375149002176300399786813590120360601748207606006366783556372285280194398198175425175551817856769286830416078233896222384501572808060767167229301105122868922914011396130300476418575088888938815758668665648993746143592800789015230842680824134625553506535360222708804834312361465625463673842151386510640419262966628963059218755038914950339049442671767768154416458747991735020978704324723568326895903798682873326515134027455313360692558698161498316131471536780963902574193530459244151360682703436716035311290862079321934562329217531920803304696826068917323245941802118242637228103230597999967923086871115699227989650202749560819545821467898967622573556340344395728379215208666746423885817025746676905239003934969758952896691754964377207019435213721343135147810283538996699807433003487206208932258422271445061736767436405523557745432627096149028064830837593934614750581526765998973520355832205547796115917918845821378650061811417598882040529626461500482244092132036677571993232369931096959622978114548965252510094099197295351745880709762417690990873540186347153729492354307952471163370599519641019014867718020772124506069788426895678540974177845451639979500158464420786841034869971841978357922771671982871125464305970257635900957276422573490426716058683527673334509964320952209095004571934170366527552360491693708539190170210519597692659344205202860845847255992571441642142619537840026908718714974208138777183363762354078399840483780906447313183228766638518556170413270126658765537804908805178781686444365508589585938291955573646304592405297898865234140803936280712736812972109775057807840362701981794531121975331035010956283904858559351028145064499105525451259560280038180616330446863978539218617020610533396985208433003816570573486206873960698939017502242279226504386232812786096654142870339574957355639171526994733651971953805250192764313285254491456393014407826896215996826244084529625024166252740551966557399952500919115365904260779476314758551793089983605113585095433248438995700981783894934687015608637933362569278156686574138224695225290542911208078606524687834701890416516483058528121425044151389588285602483259017870535282796416820775797634207487508947618672343035861240771834321834623671490347878237182273965542393928397102678018670613843660578446567440085439084280165150219329810407343511545455524892359905300552001365138504990857599387010665793853219275741037503803577708014127726888073835283645714693982066728342820706492826224010194338618818306995306545569268770746142785822482537346203745521118399124862583253447158803863205857200739498593877902793468447000965333953895267765707326401863949177680967855945189111924828575889735860466984807333629561204884554400108790185749619424675585455813946497828172004061946934441434020895021556990443652157205917300819642155340832958931527011706920243866474053973886890930230034951565969486031100586890569701041560384065074168046691511139293552349218765344854876220872156385903796979551802606196327411638496496261090672519794633485841567254358515765184827373924553901285491351501398157019194709566436893639765937646377076394055143099988273636203512337803956457234254699519693463848425416308628334815283223695829674673539778564447732998697644245516960602055736745065890627169110835708813477823332936479595899244284408706666516026076181578998696926784122933302844140024275761176514024399397010007085974485913592781895670094059010699594087265476475334254728688065798699283874217158042315709703917965024069407381987674106271956454695317951649127114757670945717265026214436641802496239513106533218650476815262705930271431829389876140557384894611773179810697968821585089530943410245279141919840785195405702110877947570741979909648745472718628106980807981220251318188108885369981683099329532951644285800025409154350935691949806598857382805542722212313520600898130364988282589302015624064752922741093306717849758119438796931707607228029409537349614609551213433039806772873597455146785797796471905391877843803608691161657765122107100033477092498735835621489815652418152160267822452523044530892607499940498729569517976919087139461292281251242808630955552411097377699494299140635303652084480771358761605123737398430470182275108603016459159199944868241298707329964911573638483222503890896169322101399080248047050743353883126880671321563362137071471964168864118471132101895863521181715314251980223750354417657281626403843697081726240374823607220620911857683978767699472878423827257179442215511252057221376741837335892466235936083437689172457261963692892259442987412975986716525362279071834501182700048506727241720211841676011976199227640720399323604133796336809471656847162981209824922490687005208118592836164490391525033983326005245623243808208424557548846975897099777079443446009144369784168084587630574389323435095197396431495382841091924854970159216099710318158518558764419297768485423843921028288766803923235089115813765621642334358405320025982789879032740283811518723976457902517592741644468335564766774345615494780549866484959717521588175006444051217169630227716893592641747499972409755856066448283700912816933297613094203660938993402922271285004675508791799635216362364620862332637323528103939357159575297833302675316460553659461819475048891824203652038617022915659976580714937395910457223804558788018003202706529668425418885423005328334274081852354575182214400216464316082973308941274938712621719114360357958878589716314101034236764183390083362718089728318503325573853921004058555157750311895490675716436087666017275813486537823393985031079284116895798307028110130094506203349526205106802369001290655781398407074799004377675669954502485019736851708417155930392941462492204483840334761292209145756726868600892008849720563843729911879237546907437921977280011578121651084947851208569649911914189848146678637649690515491718570482918416372284829740540090803595248380552890352333610033984144190708222313618684792466257339937558184117782617831403811972530298808972452805745548210069938556854732836475909762642834456984595294457377979996758003960920478252940900950978341582051632964802956874160468761519417920890546380704798970129557846332494244679690654155877657351400254345220068487962264239354090761106836413706314772933279732737894338518489530502680851505250508962959855830833366623979373763881485057251675337668017363152267872030526295174783924438561478768053403796179642163798237490855854576927834692459948788273345557362235880326826017184599703223897791787833417991912768670858309369255863940977083833860540989151053440857146424746980795941872315871271382115607773016333775198612517881595018724937256761290459178102886134193743286376078076507582403277689413172898149316214895798394965819183918957688556109044048885312416027558820246537046184658801430791523056736751251700294488695115073976453321822654596517655349156720625909447746845824547882579664856505456458454019024958610871848034190263950272048996696451829280005420803711651348439505752826236463413480657599504723138289389541984107654740657577154357933048361385758267882365351002115677426690128477196029531937039045329725600345203116927251562251760786731334412721485761774593976206089494770968246265602171344865043791498986552770198329328766870613325955808938995810388040385133015435410371428380558318599493414343110519122664447731158570120572986242435924854176068119371501914898671863353768993211292146312297318523383727235863053446186470257825550699382308965224144322847497032783560225144776171617720978995105218526726827880658876459581612005859112037138519788968549720950143366343789809958292812677843260824328532358991786346381076699594384170136063458114103736635887323228819889979690849587970735858804187156979871823590117745497459535072653398995803297784111845868852066518683833799031955849483630607599381445328026435097972067840676819453413490430572054579252241294245624854543603833780583254184303197571893031354711368306764253420272677573684965415609117700583558418265628166843710269339230390247621007365095961481515412101489880411143663107692666760464429838853961670197862193579337358432888746231400253938574655150503854016475845292375396487679106443848283249256501427549280533050243483521689906568034247476042231799375904757247671845829560086569130502427905640773789827863315022807350965740663134925014651550349885199498494143684267435613009468180476718712655092982253319612596202201605992531301590314339092515089028624356804418882603082424126077275928305971788377949924771057172916667177070080990390726073307713926329515899152163478384584175460587088120543825809922065734096417025053859746945688098320246300891621352578176373102270075507933870720642343404422498010677100936210785540334927837375944523652027979174815714232264270384731718010982052115476531654699947681370397065377198446789903160807519826955592099548371040682190035553175502551650051497995756256558551697586628684044225166899236780633763998936580987669994920206755059307086143889035642855316585249019177879244458490322724865046190105277491254914950880838873861851790514162293619416596998909035848291235274477298852110934127621095208404040962698279863747904814869867574747183191348029747553216419204548509630010862500800080281788299943024724566565263344407213391625781261744911059683724008028104210266332995333586047023651155486606800546501454772212427813130796049468866020428588968030630980381569587058337309367349000267490951439868141973305991183283086205423255478715519475436849624268100889747140075789266143375463198110718567352968416917720851168712361606809158738081167828512155416999258046370539183434444107356679726545217817172600925010221128445858748340389113298963949067826544621939823778598853465073662441365877828870358822074139819429086782642930556762543181949169921150809205120054349310299165307408084236081469374076068533205272163453602609593997912789035500403850176711830649526363097206085904171644472015729256661224491214573880086445455146674798447048242350229081912831166596952346559897449261662853386520134179466402009043366986645587242753784158860219560767769617787596415315784513118229581578172966565657014046479007106824395533855213316500899093339145637991018837201745838641210909254983551648182355520695175175215114399099578253051434088794865091026025408336992269875228448840719256257805553194352967245320411967025154131500841135259661725934435003465451994654554337871426320727433400973438294610624009237556667417363233504392987991892448938260871297249787990215844427979700790941928927443716733158113121161896618776000968111763620553189474012955605745573749392313499839039764859315182414815277586503280432858619326286035270894555620847525536336507822956555189959591042074676523407496125838185043643209531736450095217893521623547454973627658946471346676718606268445831282933620974047805625987442651988984758803900119035149172624017150976093558457861901285119804823804513227501939175784743149935437923294953997533090783465674842524149951734706563066800372629321966300753863517196385429352360936085159985319529803736329813580151864387061797290207879981336706194433356360341797003998473237923014340544002675924977196449295294618407034242646368676565123770979554547567102120192568350453898834830011459259241438367121291067979493895889688382930776345995781521080443262632405392689408460314688453125607649151430177870413926303070828227644571286535800303569451417510532098557723076483531941297508137772918687099728103574057055156980310108602823427789753732032728006541836797522118887629183285793864454443617214340800056333292460041448955114676209320724989800593517098690417692610127695944535296852598756974428565882179871519443498465608882985029461851086170596907149479984978569049359601729965283636955155014263963484208929112535404506809516717047090116139083189273082127518977283290272123466947744410058537706119863634316746584586891931963424371303084022944090682169929732257284834894409059242286438450812934108818595289005993360538213590626703807938334453483718233000064682216248504296765727204904470008515566149991150762669303356982310955157465895463076847574793679943653844779721952164178929376585588518067101739607605416437082768843833735224769550893187313391168561040172268126521454271801510487341655456162351965512037226882034331870125652250821250514268349834162161002722490861229821640520690867149247979705993115197199989640412122534661697872998185511004933590022823961571634137590141887459867371385149432523230508463102848567778785906517341393189430722959281564347221191167178300726342310262861571143086939931472023581903628389532034126246986935294685258401089905064605045801396314274512956972124390020158928325806333064789681134473409958521815391165325877788321252471480590282672620299049672770761543821705292750778507442416414796617219979029620204307068810364590676446863706483287438071863781373614090032753879868328355690672602427740697909609569496013800690502209821270803893365208584504405267819026057540980397553546924380183950277227163429912672308099959352911934795921974666269841848784707601515102365841502717174109803510617225134911480373853634064909428255524647164094180513745294878969980391875871958140423612795883243831773264538945976607307466527209097088713703021960770021289389606375426652072786409216435850967598283168431788183809235980279309387069550360123239985993141773896148381574992945948837116928558998840208110387256493273579006763080482104575037019625515240892733611384313690759346416685676520521523237092403773641108403493319233008733926323412693289613224607832770184153450743616174910195146447771458487636311503077404046053745396787457453074730977344802445514504690525841792748143209638822731651578102089821345752577257460017428844773797701958284520643420101340575696165297796452174249821127725796990020494219134080012914793200007207943145515055202528902410912344896247452928141990947349682686375654461000114075001460896378947471050464071538759385093041976513744442371803990903294734244057926055054066870583099601874930650249514192073100663213537736223645243087340054532805088538891262018130343003642096794243620761406789796707395928731848535270758372693561532861395412458677162872911066830176961588679632272473204658764110088392088494737395998277534718586289935459843607305348113483318586623831648806168272431258147498847794075924914757720681649401670304614268778604952684281304682198318172056703410491232702083349033344396602224922566082280887689908202398568518352701740064772419729925396204307787032651210994920871461499636403177483358709170655563395258292387141973983932724167878522942097521898810302364824895641022322405127545928629934594586175593054754768710698151017874210998770423520410818524707979786207484006697602686547097765209451702973913009080550596911079835117335632325349680792754485115292641555312550719576723521634993001373219434484723643902754353032415584844294969532458697579955154461328720705415748117210272656209933894662798096788483103465677259427128198681270816342629907775505038445737822418809135258021532327656538544489337731002175433714686873618283004146123206781637652860992997699766710923068109405291744617763860496075259999348239249450393074680796214597560791589572084877565480163062783683241351695222990195377436808536032040845452401731012269447227882858359182349800432662345395555177214811229211387735879398236467041301548288073504944422849887365359543814581478088900924346497443492067080468291807114119920181163140045953079473397653352585413299394826847013423791041880268305845250640207004667842811252463561731829475759785894446602995507582306502068419155194556980750434607683123544089726019749133251715894343671277462923688623074414933683003383333059388619402564636576117021694862089868413255583252136867299725419495217454861074114263226295555769576008821146272225251073286495050471467562526541341956016567243899765296231278499193503623574341012653368266938780734032475831612498587926502301695920485659159900657018509500574208365494922964342747616920057843893205476929960786295777196129211766354545808009470468132391640873465757065085618884988221916072173723335257725318748258433254419084229268900342257730468968869445313946117906879872447367356735450931763353674233083828231507528205156333155335459399688301541033339255506453688956641456731818522981558919490109273811959907667215409740456219774204298685213672189263659413029729602969624835670945381928606650030786070759355579706982932520825328524586801875348583900286093300297847880152224513152604626144544510871564421167186816485765192215843912964067537489178264931671638016565606386566820177244250790009454402546463555434461743131354595156684823146564746915999827780362660495378531824294488232628835291764722430832944414017467624064154309122885045242597263002910467030512159355478176479992788679526822355968265567937566405922472170915439674504573054604208465104115802786845884494255226516576463201539685864115050123468206824545102049464882771826298496239004132113051908090339939177019394359763717344996370491317917242852207550799367653446232678730923914734509987901118004459551426633248284473590175761105130456919873749265460649703783804805179745955895724110365236371459127105386136027239837046076343576743694771204494164193903838845359888499024961832079962999503768108384533324878752672082367936102737159386677662699481903875618950992647001150831647229676838090981709042494853144579147175744022519049928231011893853727476092339658338219352150407819176963005049102498931299863830993999706636645412497512367525001927936631127016231785201497941127520075016909027783612236299577104738901357222096217029112657210978997836638409513607145193253613449838932064538469415494408773753675901735980900157945855818745744645104441849083710171579605625652086765633184257250884918234467678572081896008703197434698752433587511937176330459039062279058181248574120044787380493673476032367472191076283304337989971755151423986238007495283212068308722486061883821311829282387414532584654843170594442628345259082619022924676176055514077495772281810695400674972543295477656094589544449934941386345613548634097478650309125357933630000509008128080277023685276038458061340765635063236130985287479030830501089469391092276580891579443666214853088437833742029481486640948816596015795746131170423316217207106559128246373877860600240158530802057595094723957090175714226249004468795137071829774786602102046527232798261932994551028668412566389197513731661098443702666749538730066400789232034427373928427080839472514101525167405289713153602810943271054057995135481989590823546231920865482359140544401162422291778296013621570273188500978138669261428000031148096650918862470815730184071864489601551060176236456517029004113856229799821801595403274339631156618199091186850071131849090793987996907177744141469903290115772469246855878409896803980707967231130195188886741893940897277525874795494211069731535662595004146326674835694550838264624712634385319867699992013413281125258725838741180067649503768700138749148366915750701591523730666065117840402948257839055870014724344989615805454851425093233311677604816076106029785560912476731133343620993008971133936030138440268633850977525185318242131595044093863842267216250101332203606152820134497286195994048757852993723464616325115112202478652643016308725208067481817042724020212743408505016278280639000069237944278583834378786621390624751912196950025791786336711986144568432869206554353322646737155824595123127834648642536828738468969328776536139791285356218182715998666048418975609243153428736301617817743480081879108247445937912855778958786797432750783688652730603667440078246150764675467782834179096796728497731344387480064909414339778004333018054180698840445946988241198761719667751090784545607707558699618628639710708755098576351254617765515757682826867652134448278573447956119207393625868307955436857498476737030871070819937890623117329333736450338167182534663603118869596840716854610200618302368443245527605510133063139682504121898914500155157011628397542347012653461634221804355674610421600518461534843411900414005825469396225892903872126311948499192589845994906305066465421393082543321820022002401885755426609467167447026504265111134843384444244165443800218929457729655552857009219530136864005429932066571351965650795697510764107956913939230140934731900680736833679960058542597338588128069948037986978611661402740450274670698727147629097301116648696366722151000153828425429895458297559892798909283783578323149408546487156692856435438789083958147657785049185077794158611218881302263284443285275303762500407903515021486586089147992030476162612562773741949802606665944576499103960167308315473092279244037041514843351128475532811819094978865034203274759453056147853424241410854493125251994483587608300280462532522911304019022252738672943850114913713438716401806589002230093167059195315506850030284532058558694039408901328481702509702924455613429891793696273792025707427124205097714491662632177209914162651744599498989727189005609286368624754306021655941692009396781132675415319022463931654283744890345385599656713628048900650602097663238224659145227293310574969471163489773096083147122110719439880428448292728478866419467475952425585376955797406860900557391523611679988827597034748683874403726974079670874684782067341457245336919330076290636907055310293949521045619865124301754487651582162245344123190853670775718895350203941889080480315628165949524710770413710070743681204296596474578500484067049245675139443507060839869831878314386469175928207997561553155418842880214255222984686880010939197941464113622062956239884142654524934123375410282557154579316423585179472617051036669595296285154465004777576468867109631270139084429411080355635053274884221490201131926724048267590335221308515287763703080712837542125633442970573570729839562779849658865435525694777695648697628013993869963653104814095696626386289002769615418325091161481727372929275630295148029646865421728025011699321761763019791631779298860642501711800384909272198562023375203644740311484659667856223876201733073750834745357555781322943072036242856446137607028820635145895563794387397390954879142894289735975683624624361874183981335897146730557901895861648740368194379465063128293039483557483176290735956428461650920171959402921874220373576845083557680287769105517672710575342501490903072851254031642476729953074799314362463664048874408444875058924048021854726804727863598598975940759842492967877671772409311408042299815370938177393670264562994842450427289721701779114509042779344790319625931202247863008837956242758262642989036816682503398683264351147239107635199038255099035454049627919650642745625563093521060165153725450749973582994974113570395112478457509498357386607981536286751292195625997789266027766432767457756601108670482336745244032952925309135324848482626326389437969385040976896172347422616048816533397757659793874613494637430538771099271061667562515296825645283710560067282554741860679136979423279165397332704095485326476601647534784927221821717694656465384543959880815550051589914208756872534435944514074330852594665807290598366458772129636010329180742371437437788586775259571557251884958729670147521309743570662083027959369970175726348350474348733660094546783434833875748414801083455017298599150586812200441595379105380387514925850586216361386879232048897973946680667966811521250547512455019026696874681842585911133363175290221734652794603738716825179512909013101843687246874463942345602403095284331925678973553104690600815242325049382581769779966157621088431224837432497832010921460810003739390638419118766643901188722466677838476245931952538474503685209128133005517382579465880270374939686019694180311688294051371105129756741973231652690725819009321653847379551812840675451063695587999628494495335094075765582729951884315638636824730886690724293803345614518148006572010034656928260466959867600127296096830375833172650807572069260894834859056389677710634469449483338343158907423581750678485311571184214556376940393136353714264237910823030910560638830054984622028065112356551489533320217732016806899183561391170475001079349662812109930627953969924337456603530710515552372630216602474120390682482747614479109361464340285866084833059682274332742823725534055254664877885318471406950038563701186893716774981368548712960974711823341951632061687926747889977835429813199747619831287328471915734853896999532329866389767227268612727398821063347826204099983104123162885462503678797421771216277912564802502871917577627512788566997745773301078699985590270825453813138349405176315391240728492826588687994060682406646442871024927219310541098701850765855422982430468287238782242502753873585524335240563633339846920658742634524673805310176930728905714520226894679644586016086179276413586775701648625961816244266601064978027871497671536357393550651148857053365614731783153638474520581468653140996091753846893764180535453268067243502028155560032054699593847871188362915566149567016209978265995313992503738715640400501067359763617823685909372463082425714128572445990165561362817627844404609579235160344238483942491720498197708642048254606864579630419992614137935065497982763140803309194353025667371141507448349056525503975900955138096828389182678250317438945991531229004631210707744055390028728114031338380699012408520718121164383290801141115599411489147062411692114222087458218009951835730983334632570484948517887246181829802611653852401166118497432346169660741906385967405954323835050933265239983789118217942607913645258129344040011321231583381087410511269457319447287708678195988589692654815933056207170234132967662581668383601738143706811439327622533285025184379345216532594081918653159100977474745611498652307687964540914266144886722246726264879823499066872784541280509132086938000013442281104713908469431481308545334830513357865700485821411206444259222111081553241024406499720919241213438144954797851945905801319673003573228385337590474553776488696789131594860477179797544485537502974747991964187189014684296223214456975289976408701908292373904449673524900837596127952267553309287106237650635399982053601387043882388587593087986038329811423854407373784236718264902907022768054400962959531769039180626952610098194336358272171700655076703413016925350311864408562214469596081534149355375669485277287272584855143324884710462393597298055729485717037257741467479293995257187475224250517233974951745608370027327934085867529593474751336128741125242910562100405413285345580826602844259373047025358505153518546254985755839064927620126885786976658215371034749552772074836587432961064050218932638035399038799465604073840272324353072372325060701243546652366485967223483253019133164940704214214861493086989907453996452420800208670150907383809761029990585114431180224732942227468635319487643881543837094872303506176965010302689923402410151203194985101091216706559601253805429447211880065732046984383259560700508309864218189949086748815977174980247467044086996378426890291737563634810518389929956932750411407786446835075614567641137737350663330116717483528130215923802110587844672465733405552320639751770770521529868652809514002230778127132699886161791904289828077555515280364794439592612927764473899267577306075467784539255464007773528436535548152541995620846906336099105484183424015556528560726222486663456435531459265437043655754453434486829932927654853374343569839034421707198797953483285650149831717157019736397505237265142602162116295741731327841597002737399843351577644576765554790170400686585083797381310424549029058433104048328916751737876628603803855847385792811612019932416337903766531951088742130078185737797501435406153318999512697121604322505045829759436019415272644611523968805179840953997133415886139060668603928552290410793725836435011561245116717464160912675083007315983640960098505469076707954937074953350551883264258702421265810762481459690698330740486168131379988361432527818896407093006905344839346084270031656856717961918007316376735749861695960227682309317602872544459204516615097019370892185334770271729720926693535521396443559621836187406921599797892247548033232423224309164985347783263704773202275952265964870031956801316066818996636353158897538336031868472549426491298977736598165170388869525318659742759871089475765556390405484784553005191514743173121940953731728467373428532736624748244062546186043778285251013879517828402752804058015218485252144304036155176950975564049395107507825733100089577010878000604502051578170536424907352802507541118683077533786765757149926954733610395402098580525416341458542034636271377707148628284669891676014525326713808494039885738980251060099421526533135813666254996733692976309167950674875226824877964303328050600021843498779857540561601473964941379819836094149830115333844883224301699307281151437792149788507511479107946580193545273002151649213228343700175282908428818099184539093791301816601593528181043676107008051800137485129581170737339025821607911151013884180555352546077229539798535927433991504203359280213699014965877942983217644863039473374499715627363913886877305382456139811346386763774436244412588741993437888921073239696151191649217997303622228918387376745085987404345553363869127784924282774558584453834257928222349552878095010421209741345234990956745572141983717726047789119590972045584984946599727644761363752964886392300591577178491538142511119693123429638274023417642878063829420078863646706927784141377693411202602055914381178098861559476381331645891858493671417647075754597086749884704174038826916794742083924926878804393575682512585376952236208611565060690825752583635212050280356746739996142730781353220360436490498700225064960133222913330346383906702938730636409660691929816636751781073674641935280616705223273398027979184056339630016776117721453995408791838271791185801913824853020647525551304587477149096691970778634300054590258299385931289394221825727322820641234921345274631775898731870502104299383358611126496090065489659717923327368946925603140492891645424519277353912099489388922578627368997369602828412290427936168473044520459081242748993111301006469534566107832338769388956493865297179060954789298737289771374506267300805501509143520897800494736444803276024351318193967551192820311172481695064726985368727811413710226875259692104906036518327403831374038463964079110797119027307617333337484844597180646872816014034807826745619930838826394062015962254298390566123137926288228862586291252572747807639668749713214805459402948488194041014725401502567707228982979686620764007663507305071213811163804948799447885639084017964426364012095184632635311286691553222949653680416024547076844964472079196992794376122725810142311736017868914135407492400748387328941445129828818200684788344895822102176703062066245048819692510722702728084806291300928492969401773866206305802658905267685325943993903549951540784736392129605403506144132655650418750735165459120853811778487892019629584018357005605638906523422510889676394770827214560775207183816580186470597814901690204145244742046634236092454056685372640645750984313944700396944784950969755488582416755738585544681078725199524905425288229914868472764864858052812149285752333923715877308613213542741159144707268920503390237770308084921413565544705402881536759370290062142839826446846760256712114849967650609626448609979556119275773628009264767263515355776390005064371736838529894685286084782100388768539115400042076036764816697472788985483361825202601631932528859140761882734742375203055588175279605464296404243548140949063266464824321256561570634836793556533321670040201818781596412103842363549756875763898785036352797467107568640573015685592269770930578087473447020604608456510480900029334041828714792076395337166496735633327422337349258796468415330062010207951528913173898513064581626037864970550329268854529434697901833764488156417982697884710124865129016732069647415427107996812604662780610470954341556145965216166051854850082765595964885944604753359471138417810400156091518313415119337379234902729670667086159259594278368739492214397953501779134817018108737046309261295966706672244060669656821810204552222311822919753917804488302562084947546595348934531461418450688963010760099149977571889279975183364955232906191292320830021456799747443748223488689825524215202082832908950455928269241080257185817155627426572828749272014328283383387495262123298081563825126401672297116163650369033573774224138035148043829195134229006337797033897020768321555157178807655483577636510710135405215729408401991863711672425880696585304810289005127384308656067272729703722702089107305952768954846426386734045854863500699807176487451914453770422718941441855750213003380515251328167391873332522916683161033350561187762557119196983221824526669984893033533517368819820034672658854855402733382865275658296568547571214275124213455878440481926715628917080182824493065964131212147307478348021146273005898492779895065537168437495521483498862441920604546607580779918019730946295393670172930231810703258579792575385521485285925355401534125052891717972263822488787916405340243869641085134263027193471914997698256615064723032697318459551485564324027200084227843198416715331649504183810703526231194556776037858500783202367393944945765814216808824595664904940180578896911465470279660327659953331684374674134388567217604904059126744446122638811685528019012530331267617539982020038053629507682141317560187722658567312032790878228892356959310992659124244999106484965879990593107990532834448059388103953023033381876171313099444911380532421278080299632583485753533225953703802064268535037661215569621029043415190574949698142480257482903496607139709510779844683273604207476983827857587963025560597348632955263086195373860695530662070449423645880884469314901548445819662580727561279308096615793519518553375275652241519993577491337502347813268729414325085995248980563537517155256059674236682635787366704450991334508065988620204373563484753149191708460564982960454754499293130942499326937708421619742091414791381987503767195476289740354640677594401984549862687270151711137198074923244487567151927107355661498994742891423202201867067772536232415885988010630986326105867124067667140220945443343695979735796845089833992851274077086012700789811066054263052554225882608010658294411307796719261781210854689378947032244985195889704161349938426386683778160200344709852101928942909394743249938688038895998590767575850649361627486809527914585730615342772755394555578817659963227991036524070522114454037016322399995056498919752205897756071085471991293155277796551769871568453596675054187644788110556664358921463202556589986502182495339197270973321151284737274454431718045172829745194725117410950945381457980761960067309358950933440654840232429430112133087447686298975785412347391061841321017801575722509401972653791377338238771023496702266848332044285046005492178142445119721698013427356783138267792129885295058717009277650629237251325953730313356350157317312067369981099429131765237648744221711858650322453308372445473282887721407804169058130733027822429430518702667177988949114074117552281026971782679296912145829898167894669391379916362175389480299810767795860842816881129869263763666783747883415502501372172981117745662917298514784149173669239178973482319705872341876970554713628064080290446271302985053772952985568793026289884100355744016586970410705842511046326985621448843882467295665484390543784940249970038638724393533779587053124352176353647897026948745606584699497109691103532956008877500788315225628597172769773362962055171706632754283043572974528693032381728765096999625446952956284169436626529410271474102224551286276473996679981121915471582829131262617627755556327863049768972226057618764949106324813387513490256409502980586446849269809826985005160676817036036639761512614101070825392195713474128708368381055821360921229734924521351632478068226931142286971606276024835424732317696010503814344667026232613784452328129922857995128900125564322955231015317131030278614972912563327258480646875094956466423222320255669833088919902004693125426630976398438806051510509120092744511778669296008840495098387259702748619561809367903530904321565748416487876422915386292807911212565753287680381195078742384589066804623581654901058449999516530938918243493214692933013376038440573728512718867771203610680486578715572918145302731307635448997708925073612311220575720326198584415728462352161965079067178416048936020875004720348695279732187615999689905207959807309808283631591449960291994682318125207950314521050321948295614074240560478203634096917459633618223551891138812998494226426132973513006496816001089796005671390180116885080864779749572111544116485693324604582986907571370582318088524050143630666058236269097976580401648660402102801674924555012628376649979232183727983181176125819904549614265444245989713213972247857150171893681766979730313341507284181576812900573975633522862582141042435488472423152554100221097553980682093966968246280605221449704271680327549579975682161774181666822214034918603310068108044086021356667455014619106843811517088324086135785699081441750201437818000696474248216223776451051514852894261035829018049994787145306073561591983217793273276095253655046056891995945486201146098286628540347371133208684592556836280594467016985655705758919214301151114494821532146343678518195025283235520252407081160948627667762619218404421265003797747573060066245952773317262793471912291230076732824023790142173995505809504915028774283619108115463804347127618656092054702623653249086532452698427756900911085159637559411250745017839911941401696492151417477492106763117331321654847632879137688958728531361060559859256543581127106223118149169852401335513356681462266527566856344993034899682837388685486696064504760564450780211805916034332775394538131945845954650232979050724664003559310096510382138715615494618515958693262486957727157973766622252981004775813620455234291383936917413718819799117623429846636093235898113842043429504405800474093908062495171357259308008736489487849536397033872322412732890985903164933904235381219281623611556794932695601622282735921041188012406943022367510351989055099879971187037305398284090215247107337867442138585191481801846782530407063165648451916910798245867282108202930349569725065264996006825234300137028718424783841811103352633714947588482786568145929916635989614858896868733273027953335471709760977800253588300668665792375794352045196146969984980549220908984804094980906787119744653913659824561170695380071281918129117003042357527837064695256239115756950593226013591635705199511082777056426821059569610344353593778460244121124395399467224155725422298774395138258352901822934665591422242149896389258371729973274832916943648611699481419383931043965767565798858439139194023096692939521673625193473924737257721007989847180731027760729574019077811537676065432335656031709919477827874639283112386922349022121076488789311600824332416919106146604075227705830391323464687392782406069607062480166702474790904464297044001213959520876513866178565221924178337537009090316572576185815070038990238568254670577315678952613142103839600449557973237938080671669087831202054204093287022124391466633533928949934755546704792959335675345171325514933880958452281227398991398693099698554759961036538484168736012162741534450543540283152784128438388314757358135717974717941350788664842369259832460706197167081406908559416281585476292561116713792330500141626425272690148439946913811976797487758776845658910784352020533972349727875370299627018321270941237920259975928098403205982595902595629289550512570574413225556989301115780128308396230954337559086770548154382849141995010722901287286313367621869136649880070454183627786148586553773998505679743000010750107680888591624217269032240503781840561637080264080209014564129998289288557308199243557298209173851739612167223236644480640938909287344879469429363798402841066687875392006002212292175886917889015837367870508365021881907050152422232395839029946885811440143005882930139114962541885780963087237393484111889414257772431792817228068154155538799478542964039006576457860184338043353139060495194802338446597720232216598483907575865149304451195191142965543012651307513909299425829295035245939474412287667554221304938616927996180367617171848250991417462067221410185379970938161754178868398264059957205229792081323855334590333684782423373330111565786775265365675476957287782512094681566919597589277020176951871590776110517254010857679556773790883987512444459370805058037754753860434858905975821849416761837310307614599616949640006196210369339920805107865362750768680775889345530414997267622537120091502601671521453372820327221514583610828674287689725038348860796130541358664165122214632083186918444300261855345771330810318356601309223856427593784353333348624044914224904026767756860121149132054145078551272523324238380899854644846034165297491877768711615539136461521713314545670902683055157626631471636105426416950356014330919937315561773982917399050594235297687024489126545691601184241859139191113312913720883409075405573954805487573356673813158725655044027495467294541758440877466403905871153378080694023886980786276408655572471182643370609548107614896368655074878990080266574810382935412079462920540064568123721602084681760952062436107996840050579348895571446625350406473626688501933888521265235362467552247514429681482867029478638802122008105162219262408707976033866068260596992217504829446872091103865701372019031652554854157413486096406432264875549947726296301628106654749623657575862094131141031050813862594468963374567981767282383146492382692162719305108469320834741744144223856621459390797408151681555507584788998524058751713668247481298177440520543665650467407108554490658328714865812369786837683841519566341579222778407981597265996890875359027488286936900295217314901973728201597983125698449376543033008062871846279590964899948289336246583357984906781633365371173378682390999462682678947276388649599552120884981534202265279269134477016994696937304036972175687731164047808153440019627580541957536666755188630245051174164364141198179236494744652383516285721436567742580366157258575525666804472271321892435665950646634231031243673766794190997782142062606781850956806455716550681634038740992164049804392194501987136246483635111244157914474053185479514200060030574606512220903037806688435728281177024412409123466513731425918473095775410695854540788081370362096813263756587599206269199598145949931666119182370051756947892415548976048880412891733262047321438402061558556018374751765374872521884591044166288843437915926628663891328017797537919057506992521711748564579219682972943154924539030171416353094802026395262910791223779034448652875035684444098974515205821657419975610701262690897488262011479872439789874319585990627025193782323949595488665314699501989559828376503107116955355882772059476915495724552281383159205345642359991708625788509028494268926480198488072855862550485662884578088713338228140156750318600390306510020115550885334411105267372524397450757734607809456835013834405114736999947936261948743051435142490965304049336632117718327602333668861916865873140589745438177138142510833500517438189060590026742492204857581389348479583405294745196014894830755295225144849414207209473721668235277925943103864188127096020879513545057378831753419757028192198911114200606427439656430937019686337228819154023859586060514675463712013719015265056865910308860402431548666254323725892654839331264159481027938005754036786024820595568842922010821474871296629768351247335412737695814320893295085354155133573647233460650914565652047973187514884174556451514313080632557409694409170762323193791168255708732152705900188380444130441002234365656114780209010223177989055897477143545998950901067124102857180728040595781722900329884272315621029644248198274617074471093367088224276817165646884725300011511739308639738840706990818361240069182742492218093983170427753984724307481798751032907560268144832560782617166865836966214280396269550109151163506030531633450734928496213068383896115954149976840416363582000180374097596610345696169997127310764772031723407422445860484172845954834274370405977473095490524616731821466421762657599498065208965996032704647021520365892173166505129991380108260251772829606235326645895074623559935180593508126960491241626680381264334916048944252387603693821900994195949015223016656146933445012309278973643108571933308800634927972836525783433463772243727869344891399294052048279322745838383978273168084627348316267368764943018114700395448745599932453252217690936147436610242936831921579041300879622864563631158667820705972137975462106615818742293679898494244178057132861588898431606072196694482937314414002561083436272555872049213521660838703136618612026070162798033518711971371266326879969285042986555840422998545042849416439726585216476556637190109125981325048910903778478235005239351974357467504287589839136672957608644362456358638437106392194690973259122237015222502336206216639606098639455269132894381214565299360999218562487676183296047574718215134360176774152338686427588629414957912552634413392222922442270914435168546867463860443152193828980050219763443095952713144532189149451844571446984718122533331895374544523132277638600809263571643937927176594199347788698627541940477778896889158904835567821159868852712260174337073250573395265873002259304412096988298001990819965717757737729486103908094334618258388857572183225841387652339866433760590599045145977309504563505592232918102191306596012196360388413548402199223183602220970706937137656933783151650821518469372488620431739208078044117487230954163878296375847426960648854718253681182320103112491974457813807760229395582705066878631574575376357631998516682722027744681996844371400892292159839835677376134162489034278408232116321224276424115709672250330569348679603272046109607260845680975234348140958701537391995241448533888519525364113164364542528003906573246293388178124522449426177746232916463607262396671101747704185728513349843434700917693243528459759751197567383546637417183526369598117848880357417448808976032321347596858907158285892024491239703109267667685041054977850581976972352620855050775531282233560415334171963155931974413684788440478813806115494137023043476215285895601593999412508438898187608858569106272048526753174790689348847459814538480800025536824203566420098954964212324106225306007672571856924199027393710714523535141110809645915724366313610393379434664358142917032979845823533992373743333528777691682322777195814715073345377703703628267031030728897155084217347294485649577691813904218932922222088911500254384139522551572917546889045849817370290705238419517985058023022787740428783309819633892724035162664610461524879374519503421918727645190442002624826355167005207049426998119639575299833485810708957697248952948916050448497604110979825794878132080209583894934425901036429170023942805422820043275716556240583895747795559034162541812964055986676916634563262831092558389648402747005477100469125062704162196683819587841201008211027364929295673037687762649113560247157676093157832452364309016206093083469452758054493977275075339291083544825295711572218115672324506220482575741678738358063307127509188221583395725456113721945054896151649672865156861502844635240309337219381578071925282920824943289706526175390382991879689517632846483767666807081109970164707504557350175546895880291788634273275462620802987460232417179649025461888721481904176368548314827430511148608558319714515352260749556211118754280538698112495738064208634696121452696880586750571806666514202672599910442320674202029345186007775552302629847835973969711881543965793577380901819285688026202972132861053341399841142993951993115868835574965915053179620714423551736706855038780669999604458411162743857308011017948991547383785695346918598677331797970331832505059698385372584724939964142925741939754563538295388849943293044373654602754306777394298459203402677209467865517933181518270635609459340767146892849486962680947990339738487436212373170059281779826313127317686627685514436539205047859979944586108459887319210433240838620712306557260248101645606019071073039779951249699421436435614446466066952639070229557836195028965723706335558106426670949107033609595877997201851193780788673140552056449097358687647902387816647710255033217364792736825529230823670036232673259763564445913195383907205253078422921042865637079716501451486335548849494690935150633753400024990608270138592767445921712339943733241184309787780064371804550005204875139505341296329621100844740008487191103228401480666416311777912748337038300927162363986838577808352828747373277163334490786590501360538555849143767574643038028679826095253105379544402692433171116869367751033224660723186052206926099595749191049180584782442637176869644981464090512471382971369129902308882727242247654039697006416546202059769395214993950484975379715294619854821089414260594644202878347878430096622762885069637674927516507977311771967611302233487596711900828595304095822876546652986735152961992435997570880312589714702194344836686225120725839661901085571632460018345480731031737592393886001484080686626353748173151485365587457553750065827910584496685824163836503009247268888409499513257004175741449610120103227501952848846514899883034282083414569254958689291680199806439535082554578561520454992765468659690475668809541351635627530356425313617513585559485906776664978719858249324389175469127791809491928485232488762462090025656474798380902732497730622932559109356876076542129428207123988673473505750500633641358964506463361532766561930984580957636366245464304772000578817932822878481792761443260438476400307095452688828889379751143541686566101471687815944085725014852819394891492680301395122105795291197551363275140265179536101943141506377686692089185618351839079198367138465213031375593341486534596093705445370034767807745417541434361061035914495159318264296975077682868251733648943035530765502108105069484988854839428040116327297522077887560435689007896525604086002654319178666103335051254455527905165726380465737458236154215707114316855082903836894660254849820270654024653875219516854029631088926328462815097712994752330303890698288554611641736130823850067543190711877315027332090076552591007321995543383514497989762943959202562789369187276199581364687844964717211488932959384142762557571539031583119243112351023542306221262235095498011017961295351462566884068391951949063575874580585945015156234189662982822859022152754296267071726148166077654486065053083685386456266714658835824029294028999155464076600809120012459935217705234304051029131789645324858007697772909484252340997939944495889630666088958003847191495188906085845741494466158877230206559931078095243495833020352311802058019126548281003299036497802268290700238088899834198822787703005709680013794321988470327537591388463655035826722007200366758147314445918187523503470328041223469506229214328629432121232107754895852035773799126220220460447726314187076826393645352784273427528815242226358938468839366106049182747846387981042059829540169628258256046110789173424798250999748371384846210221429941667215454083751701092559750862822910952242413315895698775156591911450097488513204905218936875125049941130016160594474011754287731142633109303035216622427134594100562036664312972090513775137855282433497791997833759790843001939479507545652677026247420045536628890490113329892791928969062119035165826859126263306066396318943359768627250337668789521061954859405933651212548177796562683532186076229472624238668620785759869689589916543880532211612035454158543243531573087086644342831089146771069306823758428255321367973481538707976382625390747166128162142067310389828060844780131624883640950766778678589818228874484885212218440347159412228420158046021299666534450247973403106985290504325002223140639734940857462929704214240426971192332255011974121109030915038484060433725275308239782146187964399064772051155974533251863913555459886774101048031522973345275533685815804596351823991603973227191875634058517330205037290516437528634206840589892634998025557960084502089808316951131146828698631496024387391528383836537937585928713620219818451979552062018181194820543689689019976806690628322009991676301834076535150211544947789105921775961637396163708899052495301477352604478930771999461940407385962865453635696347075865667395616122213274814878692746460132240557017965100943494374837133300807257366243963849524880410928116758685036438430269037244421077159304475655123227145177206635252506133137402254758806433131160047963827003918173037228028950971419412345545789952808942613278529652676860284313643617744483346992198303573744402521369918925984856422775448945755535916862253569520355799237980058038027459820031352509795781947530898670948567201771340916229631803696823370096834497601788425837347774824884537776133960833950721766169333259451484664892293238971887826302658864161203764492792821247790542749857200309027327988323959190869966087170328418276376604346764850338630672855631957736668644777971587139546558241375097217230551758508389981661798686412058439508968546718238838169508867209896034561988489010987150747951021272361156310540712385857641823542720105022942349692257561300589006992501177288525419847893948244264463298530300864984318705718634968724997608880294184373343446746595602652010393454235856340186303448127230187233424767271715181684638499147492507224336830737560262894966683906094857146302046083068226761483897350589408859674339656994880708079730318368506173983153960482574357029599712416483454011648242767644424189420621223981866960785798942043147863467958514715017662317006965533235959477164756972524056146049775002424009667643438083143753746159341042978430174976380128146247738391448650230143050818345248459361045365661896962046138367813241489636236056140004197364516602280496356703034739341746051094585104750635361654977274774745394281177226064097658171744806254232706423909093671947638071088956406955750410866814233208175978678754252767967364631263944046523401921870687834077262798988568624693728124443430942136053766351082902983227492878390023335553870693315708708231612771135175780764223048247597805002378787128085312079156797005235413205969786039989589191673071164018381255441412177626189835720768016534651903346677664591901343562333145951888892168944399663554750998845624559232749237229483572137688399120379844611945676763140247768814407594773236484051060028320722373398000238709984288098491594842986011066381190169217101930925015134657167632279888064497661418788412583195209290557127970404344684687149900263980196477692442268700238826731133562614827277510245076866868856795726689525543354750501913969693353232016798438019073249147577231146149765451992679278283813905224196585156361943704246339920672524668827384270206319559414906945395597830098937963487388328663618202491499329570106341317733810433733134869330534343659198277453859110743006636695006768633542034938047694382256288500361600820204434748086791797551335888524491978388292589563034734542245886765193340255587627577286077007320870478701029416624512784367700608959641265128944134196495065741211802923187060716370307698702122553931744625427954093431149651632422166202631739528415139602046928632004096220563860032425382385500418743153725893427312499604836428135181051106787561384419497630926763570473955315678150769116640713054960326673881892891737976776292963225903727599813775203617466623906515691287076733203831682486231328990122164601366662350152643459733417823492737854187816472234851752916388464142977270036024269199746366613230850109406815820203584688865187791376299412193764865348367553820595940728518754664304845915597598271992478066690651423428355333737587431101257816366024129818209960365722120321825711455347336438422655917484010191154751073036184329704907298096924005432944582835352518152275371717511348825267942884023141609789419581183247818896067442133663997370495603705075992633106974111330061323406713011937900754959106603195867814853904155033577549153164587837129199201797586916733979330849294142624809499811965984561443501559571776708048497162966659679482614578118615202154510588079677479450646043030027957646071921141922095835731978667810698415319208092855369429888754598180623801164454645936378388846298652197978672248217171322539115815822180486002639832138201233197842005738081881902863880587380834461387884677042324016078238067242289765558476410995410953643994205109984623981597075273442825853083888328777828223387699785838033966757749466724101182549658824355050440754781910598200374278039576785124429628480162856575257484157254208461903346096760800355943160069646116092775565825502671047949832324848700601671945178407029436150984474908601506602415383990794817757722531455882101809205219894795531235279042757575478860999440487059578707744833530487990143602197134998278520973378959752991448821599330552747867600825368126521655923419093000650422332574315346610578776207477118906197216852234654070659967741191338167866091309082939800152219852785161513410935619642809850059095572263871885844953142392216931700018071819292628656592510385304366803774517006989286152534211994127427549123705665798919490711882147655736533207158600403782289819477735204746886296892605220630785889918220119406710587130851001858585729183490556062417397434726965608957514738390009351391384472798485053893214475196425158125875403697638943887645623083334931749993865543256796563384647587855538272934559703752800378969188967849847923749768584342639030439646713176798762315398506574729510010197235344407222046713251402970209287749025451765139112515468764091299915406510816757851281342187292471696784173173429016253206400310700811229068677309685348512829564101553601737234254925109434534918060549607602769216672811638619692976684684933452060748785245862837936475420529003999259260533411058123007881530962198813902130426151147234595001498414722900166418349746755726715671893010413210910888891972606814810598874635110665971443300919205223834386732860553824053937040697741507127836739275196568966920849972016744174005466192339966100338408571919260286124030634741798111821589653754725221396978354920349627539837073331429270653208764059783371735811141906330262396345580564178143730278232441379364124923113928883328622602678785529390623033568177582775000982135597181191348500675765291306645480114087983410377769631414193581742159044250675741717570914834248911225577236054568380292894583671646404905887343213694519716951164217702805456232529516056835533517844619491882719288783848094289204540588341778565966661008025053953833302298619484004446151324407799895295216563902424608406185585462582400455176648600550053226424548698671009987298323344846445608976218525528608263631989678201792373594118177838168041487222800876995093684662643696249821192001193447616749469857514737445434640620249896141697211668838227690319053197152849166446085050809979497559583202601226299323651801883271023244815694878030235184528712824535725543103419891291102255246778729217278578785245278469923858324460538854819576744206395368155655224510686200125253528928313831608914524733189860214298661607706657145161082143145047131560420483083295240984612077286609981548654988657968625011238462923802726514904472320618585307876558579987726598689835025712696310009301671459702464221295053464247223833890377893646159905129880731021581870599167634462328862494406225989287819409131787391286463161554137388241877299660331533325003558271433113813053459486447225484110045623668040992864104656582552900774908801363248878497208302426467239353750754583374153768219896505817642483706349865550978684792709545309418184498465691036419042591501367362148002264608277510885903383549965610490719897076193489712203169096146350725225118598311296501126291082451189668085681820651590848044994994568150405945423932865326483781456767390103455779494292733810742039948841658141732286687812713288087990103773057844416506863269465952030559680436887218715902280538315864269854902804889817862650307075704484052849074493547746126744725321204544667853874129824895931580649198159224241310466235977871151484139244427649280959250129608726290701607725040061290511588271198961871265708909372580544849550215417955440224808643537791425520766532417271798540149098587689555077763493765245239242634878940973352887198859214322564327211524198026632247906067572387841930002163919582820958249690889040378260244930400850766068582528264639285548682874214589242353291080154787043638898533654452598993528664063896955415102160311760188598173148006552574482463347957053959561065283806756159275694541272766723583763448724075614672228120015141646482830147032460958496060612752473578525131520951660743236438725547177196406620827732362195106100969186567749011378678723576926973310139549983608314674924722262892374811278407057362177192112948689902297400403817962515749976957269118931104596315514941520968126464176490219883275917902523368406134695215163030529182147307306849979770293158024002332055228286344941913043221982265847177798095809515475614514738516571664121515185820327884447397308417034887101379139158398619447206887075698353867621394116240035639537511885522291453509747154555111427459588308917057076304315874481182265813895026758112086503334785494697196543681599800208502950813656550637105810867879802173227004991870762681546389789506439276286411896692177896762859248071580971109268918278948013394410005156088690592269766797162260082623144548264244542849506910731607435944830727038804281979785916436480100526394295214138560375993559129293959201701694983955508243111276481749269605816629370109096313925057657226098218072199729496476341250599160504295832478084883872772766960393013286200915005188060890210652258472022353996881307601597847694958710584604193251607678587607674992017344513661464222630558211181436827393419864888783564351270207638477749917968992552189974448352010613039264504778786084356230271985395969134746681942591945946713686466771057807754110557432324985452723594090527540741983935101632074829138529777915600380008366676525182212095367832417503083442800056642975073368795300406095568207161393330131973358081134158223944314446348858854812896887414550899045772409776641475215678192119420578628980227525275756147216496042707493659915361781224004371711541151046378786895046363900892403819511075329232663977297927641779445904539957025229489920146071600751552309402967152984156941554111954794876215715580752674899359824874246822649969690010099804588787995390552655696888747466572909327489502759571772240859245409805758120256846841346378612555644454265725413117145348272118952990765195886957490426496786417462977474778887726198463262255712468649223744313333115496383829313749126593161993617883260070474852309456337386853629112977570107166594786411210742502544530419028818902984777716672409087667332772285748390854547471832421903403303917159058609280674319442567302757867945493929856237790443108498417381124244189141042329306509146816957094843387214781621189223706441055618891358238182203532546568955006695681025047308863468890194671114264477940586308730546640885648830971706525486488026095336194272753368899610389013517427049646457189770242168179054551455931199198458219624681906382881524784605240253430694020380371443353188242533461917389872721974127082365125654384588567646711302778049581975749476587382113566701898840432730996210624459249403567620474334708228593182826922756824908505985217679594256258871195151995790609868416951877281164281299186456259157254973061386081987871579876913887433820074459280163950392253523313132867106122517381172727645211147835771956022183510066134712999004756142854805897883357371884155148308265491710766600610215258445528922640175579656214946534155744192066202144340769148265744947149977464759135821985884518975115270149133726217106203515256366323310622480835940680425487481906029645777678149717375959324863581957563581335384513121550839291475215799786695173454838754354412617806313817225591660222188106936453979610685934186723186328163613036501017896348533847801353759216572318558388325796703922016229984592315923805949453476701249122699939063966777780316519592103419460683759104858678477069715583992616860628339145711711580019616984029113613989592875624443236082355601037880623074380822918043487984713615626263794865694361900191619119808539835831679771206880185086494729260652444174406619634511928820734877207827766583884446935721263761438732217669110984671012804312801072274569608721120026160626990891605574435802058419206406331607618514241469835789894708574558646571775584685913403588840395120630132512445831192094359564846562711154719093351084608113317101302036346514096579538483532145787523827329542984664186539204005496061373741465895920691108978799400056757633493425459694030294368608224888119412758505297903623758553950640533035301260971292112605354622497655796115621466014684604475421824655511884934978061542013013577014976578527719096296780232712967130117638648104434316683148276214455380532924733207994926000531657169267042493468340453915650399810760237774987950406127019658031104679358161037016248685473293702338591801089135802148830672469554580218006979147768284961231983008499330105377782616919525563075632928716529300674049333099764315842098621712624537934243874215675367675810508561284525763449456198627620872628484862681326963697151549235725120294593933343104938086464768412074398527407979841823843288230080355576219844662443218528353226109315067208916006974797178310599592874281777522677242193417394520348564691518644818786063744668578720073452055212895670572802814831185394547762666874172074713660306659686419144943066960645867961865538243851460484488540362009132029201717019795714583004844445233369347374781687062014405317194384192394044556869013737595965975347369199442698056147659420110431807983734692928619049459283837803265206034449496246973601670667380875504690785487006533689749903555203626289302924783650890755453315449920571446587182268417250990561928108368973501904658763992733429602736514905149530716247372123017940638212728190330027893675541710454818033816607438793007694641107092351543119753261651038561527387769896083720227117301556963131619728122219985065794335443173704894154468775978505705027457949049550283526284449050516294311057904652183750134330896511919971765633583534337758519067297909529885246452350696145877166942690463342591181568944377064890415721136213396838422069106853614837173133734981574970579164951206232951252479232084185545152622276902963166260040182389828256353092214095263174643253225365403572893528481327788543557235712845046723551656388086896048177328645951762400358842962626067259823870633125467587570568681157794802955706795045889397715829498020017843556871308162117026798485110251402667964640272193041649003484018338438725760874373816471432307666232070309704867121074684029966151368771771356613455446841506103442763581173644530068076469471471686840220121182164240561549616484374415965417904176074825880995315235374884824655404814491648794516733552120125455902164162040327879104601046174306809928921486073991060462050084815586209777380514760216952741654830460969355642313823523281333748796880452012876585804087421059651130626511780896472423229656289740555038523097984608218614321680952983649168526745266305501418239946021137272700154618674745478921238809566999905036274410741902500348621940460965141778009905128796996827562886684543554051226359730013860047552146683574127554554409689336564838956300564803267620605375856815875614961365957052804928780456697195187236740969700905098057821163371959084819396555621164413873833526831898464956017157920305896661305087976120490752293846001446616178716469754436768452216553722044578932747369943625061554616840489444359009212999802839099057045052150065787318254577048156455094380862499554921374621714991562356132565269309138487078940735825299091175627617232656737237944855014849987267437695770615385261208832144672993379847832218885380425209927235988564342974741412719497222886890465612663679929642207427803621718026757026167298216241778937796146684718867716516037681867074236753692646314935225007377952607345653919665139103185166917649736920161687146636198671375164459019625330520674578608025152678665759106096825574330383041255050048728422543680980878973993104523226926592432382777787220930498729698681315740382722594511341510760271570156870248970434329600455250438626165250899683194132163520000627490790307538777702544388659214277426506707297847959291420127275784968982310454835775792125044205278612841861184845088807270178688082305597609744912675273076870076831936937891987175552755096310678933301100171089545615839860304868004557774460727171530568971549986751769127987011008603695563196118300809908262235032551008175781433856577379625317020677827789595609374098978143244804731838541038510909132120967921078746472237494797335279228599824142867411703888451623911418551766695066738810550286497416311552379271633385033707141800170421902544105154131392740623486527730691850108387440238328140803702726352112941044384288721882863201167063927146851025320122244500455512769470714855779311070905195729247559222393854092870068439820631897766764201370780314478659139323377497248582893140532433710968423130721080398642825924218743319113192629906978833337911275203090369610977220051686156450854193871690925531818042998738594643134628613072350209383197096429683253329450662015339735443776038241037968327600340433000511315700182441610404190500133939998333811587617694816210690233016000591859884822380261796848354162945698785925960285326047426482797126535330337500069351458292849674509933827054837421070652453198289546024249066782865444042508687240214554758274077677054887265704328406107528518518411012553393452438639619454308294295114638416021787697289722665846589506333764053072414180261657574769321771961541688677761168570357924836822483219733645063148014098498903516848411437329587408846888891556118211799912981871967719113624867887457605065442526472523590692141369385763819547241991384479634471865431869765431867005509943177035289831592954153609536568007592538464840065484344856817773770925239447699825750846181208337689223328503569836124736192301305473942495596871419027067041078497510040985672758866192447796838080896417416315535316961301068311708408613905649008121922248144752950701064557064589902618613772817352648937399412829076043921027186355971956184617632246548449670486845817988236719064360785477687248024684351542893311025016472759607635557323588159298363227377903483468502533453772510122303128625731946134129131497744791940709902479337778743867531795965574124717855971525302253760391755649862661358639794533662593416751698702497489778734893742969705281459563652539823646434562672965709251507083135772922307765940746891525859708913209277722191417779475214536588653844375642751279280110695688507970181014656500556453887215791848040829397255841325815624063152017586019896664354115591340214414174802508587727231477058879638406086954529413803536515592694417539852981964538000708265976984403317307023444302889404893315178620253268064303440287267879981171586045836830631227051951461759742423891415386083357323434125191284455266736756717489350051226026849807377915751218963612924119046241230229695914647312888465623319241494015809099839913835388576766757010566750813972763730025283574889431169284941864044016509708035520468051587301747751845414334343780872372096925188451858169099510696021428282758836448478501236827058017255924740797033847571462834085567668686107467022574172261283872801347233477615197460772555783681920712756277957810567506086788394346161873136828077963354543253582550240424945780754337687197037778701101911032482184014876383118905221035045208563590042512514835299233090954271771734432299266146380704847470005721304992122627499714162621621793660286130697552330782416001126087956892867486128529160979414369972604965899992752669071956599105601671766486117376776299434870449367159201010724924404650759051876516589115117976032659309560645506810152379272132894823808610582237021437874984240598716717717558787727193249479136524595101742770248596451711106546083039900497534971085596760146292617999302845382620136039001480260901353373027049957623187777507435309630506593180608035124018188471608548760642908157453506988949326047113785295623931666848482662478884035042599267540105387784603750950062003996974044339873748260275434583599935398091352685952869532465333297173844992107853998063845208766109440389404019851946557412604174561436205092557386673327926356947124147119077570972860679095322056821484812538875486292824420436297342296343512334050382263858736312513780591951792047005512006509726729420989448127310934963739930041358049640602736444584822242935233515322367936658440816995130123871649200982073890884394981624895605988786603609630185536854291846387696622793340347818144524685658667836001561738147119992241214268148693874784617247016765398402869784073346921977671223736253806666233083478515145170687622019226907212691115033940238795035161791450330853923589936013777060342337062984856692180672709777335539118099054358405294648931188964418338836090494878716500967732629262110430725508597755468771382702423573158765901809650656872416123736943803778049227261786893833930990702146939094003900445725513118832390640720189624257722678569467904715279573287179412347846361414550582273339129272557585469764363550601133863814266210029739678919070791225668523332590267734786012130740152392130418735706976059985916986327585418169147881784585389240231170261483687561922217461585157408824189850711258111615133941815830355918408859581109529228050869059747036506657952804456611524419335846990086036424964968853834520566615953381227663771205362524242144638499287731218024469247329391573092311009063875815582745386328986551688243963691333470243667962524124481966307255469300137335793783093796791274397034713333158035972201631076319533149808643384705565852193656861004007005115488496580730009737330080569224983761364851698926982340528613744484837963011846701190080148865724953015535620943157775087592899295167081938252218349971395921883393884022362219565209717513937423781941819784461454749509238147672599622334356169403117981454702836130617417215453032994233916379649869694780921390525948104346569704434309031386726114616062825332475060013958952852816386365118976021235404766806602570120858939236657845891837965949802267553962891499726939206638042692182862280016067655777288502971329610118907311831174294597987250577983353784492913194668646590055164541196783124282919375409533149132085032414221524329779866047422700331376051822506452133487693037703924751475488316542178420306384127455362799726162882793039439595503548632017705460528822715032719307918839811804325301775934420820492933522977773425323533611022453761756988151363822106577246091851282169515165750418366251242940476082523747278090521488126159697378046290850437534324012710858607747954552546763084768676151640896364888035390009845179740171964588328873202457713503089267297776199314568907512212869870802973541433612065328423810411887325038897443520741645191250824211996316859849633292844038147024015557431358412037599661363605766396121580302321369457139408690853265199048879059622723211818684410551936331163338204191446250921403256893214813311708943452865907247353805776843869834185250405303475964158968621418056668609841018879508065554681307542492439362922022470138196565823284504164613625324701719757244677553695227723723675134594805303073312848507205649838912509230587575845518686349013182476792447401222295121522387751410726038229337062605157774267408060617990710311510556873166024335843928975821415746384446740859495791860662320774917208379437790629162469703217959954243670053502804129870878567842058435008834071118422898341499480553540417211277559753338174124851835134189663835849565740505032062992006071209973909705078619081817550805189265883887388168378959901934397441492862481455456212295697910955870342546276021075741122900617135061506116474346190454068251781846264434964147132997799061021950008377331557905182834141793704444258150209176144071725912524435770619206508529617245672943035211069243307328449387995343938957223949765810101261181470176148141454297414540030380422608672459527827919348813538523246898014061446013162159741807267557543113254460555840920776308744023504177211415802650650874394632861863504979500518623969815121628303711822314385516064445582637965247784501097289018756413717242641864737778097900426434493163815847800234504841152946123743816770297898551250703945741501636186240394816529934580557694528766253738846539024349395225186158930841273122538179216711137549527110269636061158575313954507648783754698413791737087269246377912383282107549607410052067444749207878347893244550478074606213001465507175779661400376826145189307026166917492935526984075581721686177575574327695424338676966014186441307425132523725200571289788258684118734462215720646880294665192236782351202413951057105412892653874018599913462026561618985196935593830537500192907486571627866842804513941649609284430309734481997776518682917886237780871453861377255488852762432517674197777729927053152654379948601691151082797609680553314657095870087028335137012442682265226876610037845427862200210153992788263505986546002646179856111294666849125960589757878542160545853899259523376638427723711469360825561894064677135047710580824188277192154217907024072686673875060713389717026826871278868464112879857236349933636053644013561727224355756992335916349538957160193268697635292200299489704223924463525637163226927272800061661352577782303738514123735605765703607999557409299878975788320704514419653721676540031928163661693736599495144107073855910345547748254291937062772233346011762231793609888484948362227240869961919928405775518820779651565455520778803191267461508136613605340246371460299358680866268976335293417849066410081055857221639534067406967324871389378292515102608406187693389619388353616837916000703672397410154282358781689173435670919295546825993471611607726716829363894284918519147496318856676859346949473423642248608229272456453966384994043958873450848687505014014334429805200132693557876113010033243077942731129703447069540833035840441779154755489292420794030493164138463525547259172535348150345616267959166160805303785713543692286237897591252066907191174083052356730390382562192921696260490178602812909887024538634481050219782084370370379276294240664507351432827468053640663317765615106367929530217483503613651889252572264103406474454956413313616074769943754221463109107459759362525027154209055111748353060651522613706149573207049406611378258216850908506571023335207400170854871518376382199956916697566733449063647326157996266889111304976435655597449566349009377035168429788410246496489433361300950835980145926097612697519100433735859140355826133180028825845322990715760896249835261405782989237625488187426467128551792934139880052345445436260565406928560574651872862913828914361959660813788461791857422445375495905102416451492570573839199995289655649041391348148038072533879249385663875790893520733090133478524613389524850717727013972616215538858212008515250266592475734432399662286472038209201250309711857181878357773589351438270975332453365203112404641354634560908933252199570662162886179963783848161354092509040070726995050523124853762157984677926949501790481020397720624917891792215025944775582524250505258906818543097528449933089646055049449403727130188374597934111162504692930238818939744882767389028805213321582568651464482082117823501781311975685622085422950267266481828818532603378903547900897799383334386934662221368153906155828621813621882799878947110569834959245671469019622691523767316775963098532214009665201352416524201781793659556067129456791650656601424115113121966891521450148941907762928851291530188659148463274685209121537890265676658765435003025875934683208575016898924513285772334103886256800567102986970391520033024260295292883636800795436890419549234984633242115995324896540517871767436619406883315850928676328034428076551952502856921087566438629103197191913151573667964186799443981937309120853361217959506962010345110683000482113240328944848916949932411077601780964429081762534696931370913431918682436898865336765730645552050737203774998221765742868710198013337505991377065284156030256608574305862777888445566530589146940361203215323598151706707955745813415140368087470376267085137692941932423822523593254482281573779555713234277650658862833370954415264776363246010573089842335528748910705705458973694415599754875282777595997724579650880671780410106936031575818078378781126949293188289421586362946042597017016131505192611862863654296109490692996400399634854942428359233527278544472763719518654152396360480491291264897895678364561491665562454508041055721049817948332361664334580599067774906954188605909842371867790803629029441557263035853353860944790256492297806554762562103858951917386368918814916405277933118232899860965873454764999150803532385300481631169885719515111882095914665892058493757900580046837198157370865077902420726424588103667502842926423128085658299744733711150471414622112160356289903310439055157259517892651461791035809301021792560475169067611092091786737383468521946230951672316434179977677999085148260325608838443283575710711725157791081553309893574568514132158819140924852479748927612437558058249377165444982547021795294821703478773555637156004273226031163662834962794073786222010311241604810884544101330357581310068363207214665308495111038243569288875185756173799739127827313739527702615092033827099576573414897796930401396399955246263840423076056047819088503942006114496521306854440253126033802408141510763229894134568306530129075748858903236052231315776562799914485418703322143225525470862176279355913514665833174687947437985094035360847245599863637590371969184463204085617950659219186121596315305919747015654337632382876263799678950832255842714695968908181252014260675334825496448941586018306090334398928388531648958512015229578408309920271536157036169164492085737235129748987410080976598153958684654548588191722757901421094152224660426756797322773779766786170601482007237865520926314196252819716711580141687781327582929188094610035624704272069881794112552278847581484959361045550759676923468133358539720603330096292701963937717612602431077509753169651807347008224836024166876735773741368372056998309739226492035142067130814598984782488251949012181659160853483319577487146101427137448976481246588006306949571501204975242178786417281906745656076689095157489852194909526357702959540632724690066440491486152144899374583353271108269735521344125425126938934795604498291461501406940138977793037380986623944665695696413268685812578957960874313164493774801496751991875726776549875190495573116996647773769336776277281474911764174832797050469968602123188133236055626465479684489654532158711794207344020589446131731597884625914544379282231828761111319695317992389395321642583709976293951071233450698744861996635752993099123509777181533254884318426868118075580689640454236999069129530474893657854830747323146850913467286282827568808743465527080229118659392293063609412906163877403624513286952869050570468246669139592242084113809485217666397200062907739355029505386452082971006098694842588127229174424531029909796250587617904744777820170749010763323734658566798797154161177545307344253059078989453739817414477940031363727032230519903983942440316263417076096078556410547499317387728529813791522654948594241077770043851414233399581984241160318982087236202910666405818096222756014396077295092796686755454852243394694172160293954010722901530733500766658935697831085325592073054528042092058384166386313642730865405523149659886826635612895209555791430577173880983694350031302743077079546381124808839921352498443724597244991831329794514215594519653094066327819433729523009558925232198628770342488024252511718656201366652100719993862704850817164058070130076340470205136261709131490740618295643352496039214951532449409985749160927593774939255502239445815469046543147672015953789304352701467478327809797910916423393018971458300432240970398728451848698855784352708144903035887042574603416279999752924167051474657598810723526550985425198267434343863733198668548176245896876291118924376545143313520008528626885850312323373237285626839091010328329348053415916552243728222432760292285895308210427666396902895884919636684062461622109104352578715859205254245787388451132112726477102171960986548501045510499088068465438875675991487365078937230090315670533608981548775171939628077649878675437187493988054976562979919873510917721939555691213205429572178812781929919057449592551191743327714901946309393126398598985912980426362424004661023603497320429546354781556272920944715232960674245486048950933786652779316982102292165447906920567352888334557306052479192468731636341687406514703569448424787049642334909218375922467954309288692903256124060792513994854192544866929724741984160831648812664355878336024576119610441369741449987319378309580753435912815685482910657407195989945540318090287030891847996401158864603377438260571904332302842819397881050310190648228952337025060969903926021126812754391509879073864404938390027126433985339833757002868557560982154238388816052769298168402382967112928168984177014916467709532590874011131417559545701479585721198240686378312887919342374710717123429094264065612103717615633976150818041546486867357860369974580692458764159626772387885956777072453141641317468490078482779554274864596978669618424793789856961182553558692344843023577087433264601708015685217208963061002696181115113654437069612467435775154293430054807907518447363106763560775075217137538724346343800468984033614746694356902810623946609596095828420427508798403674846177669035202117776878939162891548763516890624310578146422907136147799344889189137289188770278551803798046812789375155464556503585927695332062399228831615609790938135149554827597641193123001802731284811817534052634313167432048234981695055849112328280397437254180044209167794861833038671938061139286468988962615986029375040512492604723057164206564935977339358724101919696345274649471266048682681767730682861668953985143615653343557537980489714558620405481334622727879616946414096284650510998740472386341914202846068147016783517278529543548938851148375356858541263067221428928143633683370824326907104754130060986862483984842912688413571275481484133331953031695509954488312955012495798482462903845136771967792157418403531307575811399679818017653051929213420551458487430273371915653791609099216768314947134187849517886921694630843638606393971447718514450907835423936433743571017585989313182433035661171857185294292403935210665107817673711103538179071559739365141589428733512044803509274863311735992001136662262941999393157632144786352041720555084781470490910866748371297508218625770046488059783580654802548871363601688722336940956200663273878358491097012777844074164960702355007289519506825021913414009897121757211630917384576887104775824320222308371985954307866039657914920730727174375625955880590895012888427565673528308810683394460960726128037349851358423757666114234697547037591153753258002639977254214965693651767298982908350747494196061671509111100086583237878271946436208392952938188227682795232737589045361558668357541015160942009074986630819260797169669466056502437757627890752145458321987711458978693596227041408494244891441653382901463679210128297421688688125910238154654618249718936790675101349768035100566984476320228867468906525206558903363779472384302090697151254507964128362163854272210791257347114593144974207225136115448763535287270948197401889954814566328113144851750876745539608279477457403961713723430831047164915316779059678959466047675111496400742484050620336274847500095817011117674337635510797581345409298026491868056422355396269233157746050163837321872692688162071163052593497120492582077670290912864888784292685580831641663614303694490379973077215165135410141990224567483498287450703401174967466891280089401838194197450341319409971192036825167170705519655206024607081270735705061355773930513692150571303181123019888817657655552388776896902401368499435949318558619055660444875766670619404181287515717314697033452035657769737669072438626559069292532534406224630676069509177325863262859933977930607140710670240339480334834425624240779787965064189378227268820196956724907928693694820184114836306192138949919553549406908771369054661731043667334312239284947703753037869032692804057879963300405533780524164523532890769930042770731881759018195369429440085355793687288138165429214854397296410166460057756914530626726322255817473981394694400919482363744919654602236337277527862313371530225037260291023539697954435630046614011956836025079344853891776652256019440212346678730433644612400980345292517318305385483737913620841031435743797618003254525779541490906633705627608353772484668356359510988151746728500951456678326469698993309371485593903951020962203542277657656350994111167554117842648325687746191791264534724323886734763376182929389097370263364919279457629941416416563051197774245320486529618311701399058010243052603878898715318411336225213627000761091659334271900735564692544135949613169709715578264322160553484084023202720161035526674798559564569132372904719585374517513092593548357789508897452819416329610275884634056969845299457979081955314676937335756399690277679003276471305200967668900568860022117031142416523977623485320865637815515668509665554148610590334900441005752687854590873820021248548517198091086463374025919831575740825670881211436489975177945009138923510102450174651033780503078625159006368065173473297466985533073056336290709351866387962006438576132137147879244624377301037471999636266404623180500337025089668331869164057455266834057310971116451534297896774639413671046495628891092247508624805095689095375502755354334648636777496675522474674789504639889435958054492567438851926410039669032258404907833550902527411848400046548327631820071825469697330746183919183663668265782502001811551039510111379280829738234630058866111135167769363246905470480393394473487027599778717631482597638463012325993855615574845984415861229691111826336170165113686557952109908888099011539049201809034531149757063256360439963981132407679495845922082652034937564617543518001859423079539384617896395660984056638791616769949644635187551214090515447474084566209123715315324386447521039748198758430569553954136381352033931114080647711255257434573575730263124661744420939528662889549195503880360795717776725415029625795842994912109858329942150623027023573699879462714625524359748837020670455869907409112040048657833025843144970646469841531828886378340946023253806532683910876470109812080844591152114768952711061772682964975330001061230846698215435751151368861139085711078340031628247136018212308913455742059962113146452673006595422747116711786335477782341692511472898821962063094675285682098154266581375905094860467926207580256853548350410944504604825265678535081569370958790996922873242851672446194716424985057820874734992628330198360741834260462267357880106937141051181163563501068857338335137410444644346762146967085618894339684312737862886116130048026450741745664102411439135424646554602863964655784293534957656024403658209867412054780578077283806591504451709539078788346432373368614367600908535287133672305521474269518773977221974173774836364856341745737756382148639934514975218062200238401950982894690899051127272209868745490318982389410704237618194934769740865324674444956356032207215296315949674718642131234340068296648277932190737978706483559717808692159467401580991117268889072029511238527120619867616961518032334295462420709172259858575368517979344799799637455617956609958439666761081538140058558155581834793712197613275732430217804552260340912085325798417421534827936688975883470336369697077948793928560791531642758793910589147313735510517532788004835377220687358716046306984991798199235190783455092524895491386542473785769041968553275655335557974676876412784444630552899555779299260363739088810628244272795957608299892675355074416316168475996533420991607221423089085648876680583811276617848840855575930404459920007009985108221649111481040904946224258838704563126317117908221147227623579308767911749171156107366680654702353080774391954121341188210033927529284264995830531959460344261213779444446460522661234777774173802351925807105541304658975692798002074623039628472528449128440905704148346599695723849645917938272184402850832702773248473360941497872630314626077990157485368637546537037805718459253131119207514021523622928784007240709748162204947738541085785299876631307251603510743162538001066856657840100289216132955351580125893545735398410691006275526638507917349037079154996757797140962406680168981943837872919016129790822811714240468275559345118628476915227383974762086416942815392458283940206708840704075709437776805145804206445186448957992056664301641931704954050852697703841703242740093517280044442024769355170095764340915840549950426616102165846502279694447118674740538477121845493380166519274260412802765821976146909984147047614114255466079695679246522607806760251388712333002341982035788439970035698523556330685091585884556875348792195547967636225927859784287262547837165109216375054702401245822809745955506757459664552045440880891010914271370733154538820258807790684386687220204965512933968687654502733458895729357556821975047841368620312884322290885474521591050355466883262471605293110933967301455322124769432924106456720928988190603300769013753566001779668907440709282400312523190644033335183220821477795408273058903169840568689093260533881544745986323522364828981616730134532529860730942983369478197379217856901803693652642445272007889507221377170097051269534263700377104083031614733241003182947577252401902479586434871267823410310214204222816873313103782835377825847147034852818755472249730492928591705423752366353393189597541017418765895657952380197024778369970830367028080232297693049180115040634044105589336729133124292344808815165229145148923049586099858063697566721149228754261724232581551736740500862912575218611489264233924093217618763936423852646757242187011802052475708747397629069349937398294732973030182422457728291058539774386378725291413023800834401818900996290406700366007980398061911334676596181345577978960751603986143453619984675678920978323791729539336934146581625209234376788323888374957736899060675901609262932498164689835374360322739173839613343536203694654896125547623601588122261727941707636468217320293862156199686740946360568324508570852186555974211636046232045192240764312068166995919503255313414560454772664520382707470325939843154803384793805962133098913864666495328961469111891429369377564010343766584958213023169665771386863479421472303245896461816213184922598068401634103620627299307518790123569371268389448880807953137927080361812137558641837689917137815044961132066190354193696137343573427111755673950589966346550778526650346592101828542454415123149653208604730295166696749417438961939585493290070633310043958102294259488783015634246694080432166250946246905318749751114107727884865314169960560801983239514923176658654529231263579133674092595712054940356586448554665507813191750605699407077980310396380574810987529145600664642352086718571507928718408686611218480405305691564012867013480888898817433230807548559153802740457474606174848646652474120512229217436494690728174637592069784961275137502520065517348726045333301859271714901772549284130933771783199255230095339511074646195907216716115839968265419883321643169758520350806980558333970418078102851181533571394550843589007466979407260290114322774245802824495509084805672630008519405368055101389862102967989948643536748003568138338176886053085047931228994157145877636810764413722013854432491035815206068800768907872866153708313159660300338208533736523939752879315952115759739054814105188030388042585322610926499795365532623150910858692823907862930324475410795895430939747554079012163991329481084869720553510361058632926258953348810982319519283988557613237287954215766849544243539543733333904337613818133647658491028868226710732535190542225415114531174500837485071685747626598030094187095920052810458393044864207287222241828769145943866672716939578312353889738824623392662372789955678338808243327023126115852852057544452824029178227502913964268891697076469621318962196090015165860565326531393166977061898067787137540131289635555879377389407247872633746357671753955661236789955701591888539079853393223274405978500295349085670175706537743130078512573211049549584333355329062775022623258631752811105329677763340584529442863075932565717926221868527756441851909791396322596411017754455340312930320018640418267289997654028200908078704640829761576051306784982830157364232663940693391687642861440457053750045044483706722665187094123211599368556040822774949853199912929317573875251827461259094844571027567718645913076758468036703241660714195635213723006316928482008925293648636762279343942230514131263202975647796601380105411956925216501530970417005747585631927389624966876366523322848474617249941715199504610578386072751642395282920539083924460530051343881064944959663404701322291770589842480601179794061169953813722566881616791118896618936955150541744429246983254666908312414176112390694472464112553134527348494653312447830829680549358151201139623162575910960321416389611166798243009134148875702421731680085697510444985922414349429975081002768489698990351794851140935764686113576732310128778362723877251179256013053983900542812795341198932109292697291465033306398529358998516928086302037061866055932868416039229054366316084287264992026732368338310268735284684175174877052807214435419242103046508447079096770710443529886886614400336411093104237410757656818091019523516874368325076398787878671523963407133543746270260795594976668634980294059395011330182530680876412052192722412028872932905543268562152671396917184843513866543559559738896928844461007814464014840373726906797409688881486882097072950402211039336254295631098964192003470241104086650209322649149847772057259129128515583512866409011145868872802659880872120055977604346161468671595190292874635874946223210105861557246837487889073309412860780420982972015284877383132206289397554585639878776443177223254043776100245646187059946234985758797273754615364383742495191557191053282845759112351665524298141534471772431782057579894213998829931132888030890938888052982581849874191279736754122136591863241438133755303536623795893821064518210758019189213174532424593903845872386305444356269492901176038941413542645421073460656026508171849105833715427835016593282760412077264579372081870297257611101529442264494858274863983215270091174777132302388783811415152951245586349817254920186498048682849607459620266562597335774341242598661379209425465195285217747045240357027512737421843159926781884970926006633960214818646074136416284947058901414648476672701486460677312932802521051610502876074074705943960250241556457637616618856201353817714818529051665025755018902901223779582789952680133564129184194578702718292148550424015716792689287723627493522120857940327088727949514647954271791959427022139762267797338472593306031909102134737942102595313896520124552986241205121876955920725999127790175374934763082986955106728834680804575722813591990466179903873271433280140622756279155241176216930361421047228194526386103401420381706578084823116285535452648959639290197467980743744375989229292811751706509620238322526534977776472049964530275394096153178134217443125594485354434080003899507614897205099225549864291100156415717421487477852152621266040539484602190839587689307006126436223955026783650092953222810666227930077252397332530230669637431992447483227520434089938579953089791232146057598182529416600075961831754538711730834148347664896852200927314552199185618315641976092772728801459398060300258500171787898329661555694626928187289415273102414066043233000397336629213610713833839285171391133251354016443228113866833553529782167024814368983260658757400564493523214857347780072752553192501117040381712993605202343546130587386365206154922096910271874843366210623372248260456729456277248540135345338829335185816452638047145717939803821045558291696598074789377109569444419502189292045685259020737674434060383663488486830298385676089160540190894131205647465557134658546661122864994773974857510480192320246474203269402575266767226238844671979673811131899463969931427670159979159785466612661101753069492504680650181086474473332018316749668102580232249792602534922777990960302991610501843332408313683686206184341655161380342346486021224959235619761849054139991113271652238575524277152044783029735524611149034830407803112708184635359344809931674007865559130215883204225017895231638013355442916552428122561784078889454575537805728714217192946186713399220381898575926715362371334977491407974749309397607274605091636338466243953073352341405425053346363349055922912759299087639546963945052340080357320703314320663267825158380898885380519404089968491889312967989744711525855052805852283816644199255499174006771653369866190910392718978447288067615666875285268600221092703902414621768651495999444967697194929756731421886755591302182009784390959321690194050168381358163732335155943817004711891387330439823147427397760243750531510685759080022173797107624323846101084010917507915144553907376761253515370384432903749831393421214652352518782234390086260123357527739174430629258175794188619893217828362436041229755111617572240644678001827974730375932350382476138180746871088606515928634593599949859724848263998077596267295752068731377252195325490085916721680743428442962826284341687261595025853068170818945613250905911999000916523262874564997304519884776372950875126878470580055017963840040589833172705245723039394773076048938289202047729412259638927392205888839309999471939516796694948682631445878593696443392671813656328812149597860459782465082493814814804289552000826839389856336371088639907821721739416804557635369049049282008269671726581108614944465592024039001778602424068619848157945673623043354039606283340178804939122311743526620331289938462982761074626665542162962204041925493692677095402829697052379845577787700095589473125979831048472007324609474580579700031289092002486316592861845951048288162095809603273550300666766433148351106785314198476706459257354600192714134897038435844909996489330044366450358034372912984736293610036865896025076903421366694651004887538559394492343653838303432940789414225540411746015613745126563420252641488508391791273312383904504350978363693225799864817159544618568982290641910878302393920858001740195740170266840586728933935737948282520522080705877390578986617836319494026819981376469949866819891149280461339115087540695256899612839384151915194680824193976707414188144022625920282652326526187427547027966778999518764507078205826067525205397640800909501839583182229590586347275454671429478411008900525253867178857634342730996818383516198257506330116857615994369510397778086570030083979157816966070013758652705992259184383827010654454052300516091235800698473207651584322176402265762085080529438104360229186781537808577958097522314751470558817351971722089644372260703529140192498114803541927007204548929672313488846145573205738783094134173812029821682725280809285942435937227929961248515182053335612385637792809011968513803497603344680273452402097721365333447668447376679779455134927989563685045809408010910130948806462846630691608420630909564406032125854088125623006656169233738661381243082093821626271674383687657594159072065631816001718515733579028875713988349672426887676647018029935437711003777836867526687569686892718472467553310974895273488170848728417038048308931392608849560703422279561463831744869380460319272749500226137194354955753373581186061126929953738482414942816238196148454089041581420764169278950446794242673975437646895896451901702200901791606184011410147970960555443571639025701359475110392438854887519060655170476498325145529437052134555310497155312960845145486666181882542153850158418631059110591558700077485107687682364231121571021555516685575010332222167087497467342791080336812629889252470827634399122808931571296362655375999601188154947558901191281916394211035830558465525659946516936117338905989659768804635933519872359935284114731820011136679239264834693863749958570457855264910863382698231068338724643370575702808135051942201227655123865080572823036108201372359688438569062196390992834151794554413001149088729369824162738872497764606868112720383407676290179990582471417593909623709285562902953061587645945010435818735862381629309815894506064760680346111218549380552608997493078516343577856221629015040106839371440471374750699256237556525921550601691206033583367326099759265456707639804836396569216041942395512645997882499553598642126521694812057594594161533603502712979525044430551046234150471933789273843189810683191575859520719704237762009728734259279361873416030919006302728033939388328653575085690822811505016706142161345299299778540236536831885982555657334538673332497420088189765643399811859663435197944489242573286239095646325378735264713580645570082099144287476476641250024808057245136360114654885883734819346390219120094869884560752698779618392753459835404708814402026540266622198771135856117211247804492557635788363744475390969389688673636866001305661835407682429418557302785346838316726087133103771071839976408283987682184255048283653802860081156196581743288670479465366954599548305419151249378221691609044036160150764563834880944337752386961110138453416358752715337507008695196200075106588412119004429508254231073787607120355016039206201532381138071952873653797469662189711101241645157655746088401306129679227374642913770073883190594370427956971189932484757149538045394412013212006892431429570187303009573914329615493079250807773736472380757597241803268075047843082464974129889769145707045907126170075660079112035352600796460022072850273047992760373635093057582061048112004092216610196933079039768512729408072235958287164883711734874702531055735952825173941861757045917516909248184126784149102095278656041712416074735464459729002310923644985952081588425237955784475146328808054035245227313971402015642163005158873239071742854212905459826288234510429810348551017716178936122934875771733252431527505307560045033649454615319573437663340122125820013443227610394510857745285607900152969923588160731325461275876795071367543635261364547474151240978577132833140949633109497340905939233080657760827844405077179366235557270069843408834064901169655351237983375935655164795988367053659572719371481418908855732378715213617004249881044867280825693776343466356732261412685294872446436156875654817233007544410586921730827750784596241231410020201614956043253599030630891165093163271337009881407739651588714700499003699495752506275031816480254076424378828165508972619018663948019840069069297275679803222434015577637040139910045742671897901880775725347519180002910838408724836917573689617035217559769729340866521172872799579381968024282166048964573732465273370560160238591402763862658732896793513240765093013987367518556525931792618900518671808607409094203631951991929053311005734457574323288495489405435971317859486675805678544904243326097348675289034954417482224717615233618866026362063330947354809790574894138176874587011234351923107220331894237153487301261511023107578284100230152710097722880957372474257288667817332091293054118146113111247246599030610544801945653738596078129743162342689242103376123025988268935438681807416438361284070989231341647408338880778847138922761777319270335177767463100106682598755201356785387113823985856582535669791131858831136676747919441428305333161906713240912565160615242537681048650835185098373613622053993417049110040859238445669760421834491841264134150596535619857856093617492195525110546658108204658653329725658046227209741970097319390257988738078275935799301322389614762689417149155451700738663908139495330127289628551699303535217468348779783479374573065657214222961048229224065288276025486159311007168602527050272408190822702546429189780772463742308234468864805018006490201500583791999038105666713505340286847012664951347158433416142878765387784121485322435180165464323289811355767522233546235002238119268655335410309270821937099233949586449854718546707895699519369533508035883886597733678706727986604727282239007394940823047184946781916110575039458963324258591122136309328125863152494188878783464042512543309275984925225344745465862076504278353534411403071633653121370663406279809401076493207504001022179981138372693289613506014456516875163210287146524807002680756270401540524460097151162186343935842496935748042351444161430849197359823878703444822363089976697636722878659225481640862858587293259848212359024224361820590039743218521561412258744224621534617185125754333934111359254216009533107573692846975209888077139224656191505727449546126366747527510295067040773776239940244447021467786248274913334253435002835521790805025233072297355773656252426453875537596947077636651219513375611308051614599538044221933572616609177914378965590669838508838626271905643185099644801726857635950971333244898851284749305034150364843605669662805728477555895619432576241488194186224415928550532073626763320434055827191498064563794194843283828588178596281087656698959205128928105604172930522150904974784223022678211479544394904879371173473111517202854385631437773200761053549479682172115353480278924276792656475482028139532149452953074806320317667659431333155634705823089951302611200171367627911564417930840960335888699232724939039679322583920241051347395464023829392459738740370621598176340107561592401591907883120985032975267435679521528811238560316203270320200407508985765057856302155008459934178083431747504534272152289229157638850300196173774312036738871153367586832943638267753225624421101270268348993533504190770763238652305687247566010171619650454775595611344208864978795969937616633646447967548196893785649117210715829691953757343314389744342092542057583134511131617785699438897640309569140113271993206263453681741683281955593287307045907625320441632453150271844790699280739150220208511128705289195209528927082324519174974131889578161774118137038742604948981291214751775709404493145148874084203942267467495910279144793016432332831075015792834687262818167145041828817550350173874769572282000450418882369703094997138388708862775491646453211761389839646448386016376248385594331008897273760368897057385931258912457255031663191181247117478213170234038683538365155338796206703637481351471045195182513794357447120546986497832820129569581318184009951093589498669275915205322703627204680166379638207052847379988809727417078653029506449884846957043604032944963419380443397814664295813664455883051305126203030708621980486139700814157166449496423344727446128189049648714391019866127789622831005623291797640175305485963934702690961546273535972691883402318768781089507860047606414842436053599772673267004041433735518925097477864025548356906891052998326817536496095213909655580806860373444990140102412470181665481283874293842112543330466694898840599220802169470445841960204537440172450120587540418901761561761012218259161587412889086748542284543109463762150496293743582878748789055854071561073929753824820856010043965569716542363800114588531862219303886919974759686957613659228559428406403614969416360820306815707358908850927648755673288572928438103324162516094100237892086801636028232815257099389153377505573263414868399300368654229993699489659498208082919852185892034796345894295953265144436597009059083423221086146737101770857786297316332277525320169431369170147697404903769624436771776683561741117556358164344247064320344558923480853641972551348876565191330765475307419456393173723614319724413530642097170375549633381710192068616174680368671584562077881162464923793441778194357501418953133105812713175288110379062304557114141893437975712415268086752965252580436473447298238595096591871871994820006391664802401442766802493436916034835445392919892283843661493329079698371664468155460632856440148389506683705370120852830419001766380953708325594889747529895245125236213271513832875752548055232148581184562890833853870613312272148432378802227090894121831520165873018804035650499008017502863382914694754568670988893957423712827179532610724655632030598026885993420676491205695682873224190977969213979982938950541158619010245566398989526599371933493016225091692064434839677206906607668077208485842809917215079771211730705336574350355187673620290333303537410493009272659435022079517365349918395973587490640410351688580648467910072248018000380553719575185146452233202214965980852322467301392456883093122700616069453695595859582722141153029819261236425246983244196844300530820264444313310811025789994015055878442302547991681177502825531311151688735337417526230259955419870273135219698588076961225793555065097593783552299714334672310963120670181697011896585197349563706340628528367758710852361587831993449864148064984219255829182653957303667258594931346219811296787772666006031501696013144072621164949502585066355927719303409852359687212866482678818145707742306937859673837397673699191030904081695068898789033042583842853839813046166784369590774448844720127372944991532078243494724709584688464882285530316404267542908657746896576695291330224130247495035296348388035367685788048463036491807386815844440275227805958900721310854371621801831791740134506811714532225886069517223894166497971957646240772456318327277495595042927277296740551700849847966061642235096102323493843010576769692635914904579280917090461090070121983526060739460795530166846751011036213483747768116392882434113081654659561544750915293106599837615984730841302861574483802650807696114711316892695042821021867736768964307978430234564716016524862128784118258408426049311566683970975326532394269011996715247237707320625097025368795516055383335333417144244037229607622091661665294610467678351204068052544131070399583463004473473060705596355817902123281349940491667840652798586054404872402096015061473012566139738048000957373327945113265681826153239539064392781049121991516329336068877696885012844688482251876758911840274570511833591984205889118779123962410919819160371606236625559748961248400084819363532799693306379571406590733078538876999883578974200762563303346664211344015838135784690426572223898185678596696681095904165577681683658668159199221717746437537901032565689924315499411213905465333812289716189771431362183694016957025135129677427079591313693993489197181610339854564292762977024499659570535596526996156556393208255962519978277796538642836876182772102455189220066619731011291995738322818288497244703534949990851537064142639289004240811805238310003700108027173530503148925719966945669144259387836444123850368126953262699597325750817145373488921325272475663088010584887652456103349242171035257083679718796856687558631319747638948843418058592918550805214019855955602327277399685314253667852077979445087540103917678851217699901178642831478765077344660838804009152270292606851449702087948164602669644259224237823219830213822152619112818705783039962743292078077649201497118630583758018532358826587400713187187815461283024276207928747814329510268095715452883922163447318388401764142567089402039080384850280093626225231806739269226424630624386472032314588043498914119396130795198343671373672169524580691162250019829043253440443608302585892835877923956060388884864817676932086392156084884084680033250796310338760114872267072096885302283341774164584152033507331465999398739947778689380901855427682417437983756544646205994292975387533711322867635578421764010597591124868033400585031807059435238576391540388783708344336451467855847137916548747726230485972553655704420655465566958479437160994950739774488689821070110452177043606516256752665708366570589254002824485051116397218287427882682990491611278189585373543092318831670054030913310172941684926277294495474044258550729658083434621541417608010429316105454475993914233757669449440291072279669114003556972362656162988001100350439374423894777564868815455392786415134159635678974925008939768936559444429770418295000182469390849941439519456747591122498025975600323022362185758619548427559049778742951314898527706175086531775382491984944764641426114207651831172088244253224715238828992849984460109382566717319719923858701741143653248280456179057584164378378009397004405756433968249175022389485130315214998789463114691934142213753260042185211420449350116948435579722076768685475353378946192222923836488509618836515699841057488213063724086007330048006397488376761324696857367732241881300340390636194212857744094547958501294097756542202923917353441909065382893539159900443136949882729253120194251692651046723627724594573847257991490449691301131244878503796335022160463481171132871949572398179797123079479857330132214153744817733023712650351929255794988480748302286076604440322792001868843489731544790659877878318888544102522577945009780526405252972331890182551554057626197007136700831212423364656254510257895025432383970613601890199212817667562792735745469057023339347393944094217964172957992491190688231626746599329399303998386137460658014741201581017148894926302233093239366698287659308584553063844387810778978087203117884095508076737847642473061098466522910061004431850115935600508969787891647907099770783118145736006633887149651883113032885040160219904413834929422299802491314865481831956183767483825363509902353215457127597289397024138583205279193674892915731884789488405812037018291870013253199863754793886252960382017141284081614201799765065476713401767638710276211540907127160550153831087467154911405650396253162136858396327256741219959813826524195012184156773893208210525464906605707753777639825474012134086418312926198041951120176840599939576855162896951341256324522532204289510566584535517231166746393966136679531549028579825111852776007390619647454173648428182462508168760628180092692731524783529233364092944264389711438759265140470135482637275376583160759401072582767140305952802228335184631725579876348871684676131211713235396921658156795581213086054369451206535074524425256577081430877281106190772777774486734160798349196114876788950226584966344462631172848368549630033802327783006701097599015572047248137592115319547503363769986103274665912429142138335762874326057529954259665039046603742129241511096855977794260667892027970582965014732928864454146720556603364087939571175244501087969571425552055485267411344007845623353154707183176450037668772832874354399809080503705973092120126684197426660129923298376280186445223994860213058966941888197540337704790001776605516670372655040588989267324336002535960534892738838557132471732825054266155558080417632504440785821158836966545656512550736700173224421220815079982769174237005983573573957809755830117333936712602227151395970220027627899954553725100242736477343811361952718167176304442119474751478980384170888373220199028793002353544899299586718560232528669588143350718777093250037628790111920513790739619647103354125861931680377950516781027355836256709829689277672421618672797549601705590149136525922899247815874089410002516141641400978480737490109256599491425798169444237327244037113209972249988508461237022522738262433416866482761522880400607416881417362366688635914714780685991209421900785243985923177198779738280786109425800730987448395478800080042002207246727894103681595129462467884254420551400582566771169510895883549061525156975437522767191271534508246848777617409619355795009569621362468697387707421056877779056810329756067079192771900333689461441419442756660426431170637596572552461857550363060728213716992536515732836465922471623843455729209569548413295178968567240666004013215680043422872609364692076769638440024192925237788899771819821889116310307259569701277699564061104906608482416286575793471592800012561832608205540913457664238493611465360826023853086612702768269461390446330633883000079206260829918100698489657134523964267844427890995885143229290462171207588434536356162270563535823252229871100935229294742397886516458106722477117132550961350148075589463384037371081641351006111849222416647236030500079840526005688009498649629760711005705354640722351021087252462980635331868525367083428666791921849715009780446692811658764928636050367853453071403603378950428937525497956850092364412048309575097593327837492061436673727037196959612578760501572325044999707743566374685778685372035610574755490361133492006987379280228130329516375725347789516376420593539374852157099505753922411440440765626680876944029956621154984954978998800513049109986652189963600425824845044768295280482515690012143453724525605622325883069253280335721114836452409845766995980181681314595301990974194286962989477498796782314817367197341333323393926536241905122795056908422075378016235739196646732754805822432928341254307106420904752219827950338959333230650413121720113740215640683887463887494483380975469372139428003710613572877989532438449515064304393664979788630543167884209730731964736813711995377607244242464281799423658574400833616924162954414749982891165962361781119004708761470747253162725879036813470014561369076160236508512071675567605827320456329694100868227222050926683834424037626857196774977501032192108682382669572058095046768703807994059559077101520654601117446986428954513769777957180807618126839643146082036587860047656022061888211921319239757436103310317680264715645231850803343685745738299028463129890530436006390680660105469986056231441882957792654915026235931866892299255238009337961677363299290456727740207508308861778832984352326597931810390768253383598917581830711276074025592019601641152138901191648776311854997954304452510772422460676960597075374988244428132194522820694852586204541370679832794972261663645649739236813954890476922183910519092334979590586504956695684073461349932464504666488978244470767249050731338971936221114106840909640963093314558264106930777883294095649977600306346118632128931530118754841857933341965631065605602889063093366221386451777009724211260615098840190128508800349715484415201902572596230563293920592522630963817564170548145123785961654859040841019541234165507316527240439692195304992064185123013596451003773851325890322479416273209806964876642709737327153527942669267342215728201869192710961649149690818783501668636019411660367110753930949206451660398673035347730971379658476376725624631483120051711500313997261653454231934268595761481578041276634929217749719915032474649745554447747935825047978938374893570394035874962589064515041092304281222463635525557191439411734745098204251503589501355990271664875479933848492062804778532045559429612938098655686737292342294020188443606566533216371635382546153800092671878093804327519952060719380862904663483668870270994358339223695003813088334714343353299275420750424173595562395499654940486172052269618377946562705147953952807852727161798282174166897761049708403202184776473081389048647048016659305139005528601078609347926537787628076958641115176110437720546496297586725025357784119435139807164206256911885780868169564015846932431521693691841290389211794210916707073226818066853156353984959961606368156039531348044725361049060493607680131112197801770159669657757053641050002050789027689978329876410562470671566152663172395322731382861203958519572873187084468194968437396095547584143475552377709614310288421537992725189375020074384719105909194061609847525496408121333737501005046244201738547783947634216683705332283900363777245081140729498123245553231395151063325443064569035374717428268793320823122035602586126627705931373475211968477458909984842697038162242304348387505343022505486671325245597657664410012013334933962774757400379181635896588371560930895972916065813194653933047283248185654307508077061212734742009647942510293641084287703706039781742362061639757188960543911405523754368204736292349676892989721721554089089458899441249297502100815260124224727303673832171437222217050843270738610833140025192189945335739294615150930045642058517144401708312682002614368839286567458011162369235069424113675808427336221903079057110900803032461582244750444178858330732908976458280989641383450898067792456813370309946639809759415739480588457024194050505670811858887996947184456257502595098144530297562894211193325311984319952105404818334896860553243426816967409756893595618839272265652827776272681455353383895184351236148644514790228020762450374839672313475406106132556702684551155792713999426456790869771863841418521724824516637978772578329570708916521041210586576903187531914532911859536061899607681685092141713859533007825546072544460507702771840021197542418067412963507385788455031820235402325167963769159964641622529702921585715673962218532302079963478296330854609901897018873761482217592109503693316977053570202438096677678089567052787433949350219594476697807969403328296815655391881886149550325168280379869485189157619994778218679904508252268399757914634152525449823294914223167275850512629468229498278882401142092796329214018053303034077686345920969407333848641597896906763978553129493112311658967714321557960839005342042213677190032657821590807558713544168156081904339565341106557672555250938780193972047245321618501247007745273887111659802896501776722473056562211120521250528027444921109344125226743675934505850833763735959917409197403931355763577959113393161448948851094911396165576987694204788732696564559305527089146410276482041741546706257964245516687486120443093679420761027093788075301597032123250556287848179393565068004801753578131127496967466974342591968625853629373080072601015148907557102362329790570978246025409641758495474425083135149724576655646127119365844677881335616446952321454027455045961375047475735283954775171438256657286201971405899396004119994253854988292245676636091893353287853335115268930269131594401708508319096886871842290317137996765498492970280133775623344452675426042472711589577117535698629951713588305433672971464574196902386960128370362760498609041885248702188266810081450645278237543945306166064704486031357457238729223205137906364200773728263953037975916414322099178765397081255160413342838392576528748206201875744803822761354182701918316319828240364361686474064961081337911621058612692752379992698653445655211606892320676938939372722039091679868371202619149441449100968545785596165121317402025874099759415142684114599851446758058829246334737021644822551713967374313426082416338378898552746473484656745652650805743600037759731996845366611949429030811362591214912258057383802045146044721003929338293045379807352338786234799044309164950498036212097671826676886280887094646945452552438257166626778951118952571044925758893672238081699326908251082954983443909662526636744309625134110658516348138705231705767246130619647750793207666657574917831669373497328308035818821775790946931016150581395420678470642681681335553191848434074287921372820758154167560483850195848292263952577322711797930676574619041069220303744034340918343718747890246794627761783636687919520347063662840945969685644361695839805689623346620357038471846422226849426867894657463931448302978179612433333155125071249782121646833947153534234488728448755503068833724169772955624058794879991226562452926937359967994079446933942792102285253393845745983975119253959262941515054429749274212227636072330923910792388452511806288656913119228758342029859376430114250132751553383891602302474001029057617070048014077324591233768845210777925881540276107988613019873499909136405095393344616508224271383409394390855815609538652512015800285481172261543484336948928531886387333990150177713765985960875408585338053782105569045213114562039285222168365879267367539696619879836515021198557256516104104650460479786584709680702868343138875265934279788074148085411945503588396978062801681560643106211477085598761939668820421027925137683529452722475534524911759429657701815309647557720415745089204952357162738361798649650290426264391861202280001168537364411517802608050840405091858561418713319866010077429575203496415515604157475098175964110375114563846041436141234919233152644214774179560720250210430725275450240429248969329598714909052552453357280023544318712821350304349805838016503655568959161062823666485265640608460992389441171775544312438784301730053587596199088336974126557999026362663342152668856221684775278493903512556471692005701402657645151081215349662739147561396512782940957878865765816190492534563569786118032631354135174162040229904022403604221476647428302808926592378984275798433394190119616602283507175613146258492713422983998376901943445740645872598488083193489557561217271330745586287274620920763382093542262930067856676507136655651570720744360914349898398642144091241600379321490831160068783933417386905523554640637926677613590959997117633440643633903104864144741102299831436265658519656168887148399518090683766049082988830608057013225531681301123683391602712969860917934706166339146515611930018081256145220294271389877838832938276887673195955881839594105591599160697178591604693666565188919615466603640826042188512980592627126017833888363305564434841886650096421826509352296267233528673705311838959784990411374489692955975661480184810537913486971997898085499782250204650183184326118793426741729906238317437180393885321949634892377175868976272868173291699489051139811304637491191330820963944561121840888698979993570107512794021497848974323193574280253835065846363619754079682427770908699917440276647714422143401863376657505866962515265398630581781041481940679585450600241649890855180738945887046486142578088513789658436329025276476092133864123965198232022383687178725802549329900464937354868517761074217649428959543747802782316179626414806898554911415990087028087091822151686336252945636110880642615102260484729716735757871610963045797919836633724071071229199761084298349559560109255919804847150141103737260080944359486355711148289764382595977610159330172032971632238548708080337443897770156955492971681887281220219847601897666352911182242058858889466077805543836031458255273464722405986952473273341191233466340477407161162370098616833366617602621904754092644965973463579677110033405666812635303639195483037625524133768027846216723179455482528320178437645900928981732924904387196272559705037826973970696187769545243302922771262419497024950003991643824155544114694991937555256906793284247192073323299998823049072321590589065337947669282824704650302427120245626466587844382411490999332684942432293661232241957733407041470657424744812206794268429168825819912496628945991753170165581718872022146070045771584461707405360132938319116876242310859985173326362440680807511323984243058240761204087249755095905039581704199285464478838090573163011089095570716209298591007716396342134779466215612413496966551851105684095494112213082105155110132027857322585717208467420360681083026514776965893982551960318755900606274231109615228718429012223673075114542557198841053658829013371768284386651400161842558067046445559598987122138388571740068206424014131613395946748408256211854326131839314888648934001982258679789403605166045087643490573278201877333392524646235982153261246759128750276716813130490219834769593285879738552796317883838524844430747775973811670052636030391832393320420442064720544989766234830740982761796904606267456746001939730096652442280097874082305021123934517380912234248266947981305856923331518902018754918506113268115973167458481319556585018143919891784851045438055458229395619542113662248578307360967923068824674922795052988212243889917300014859699341302408039178602207192450681825971254825973632518714164302812457683401735319180944484073503154229140678198314157431195889263473458012337045516029233957058844387389805088751927300366639155369954711874952359204573812936060368362871211025698909941435696462012140946164457784885074099672633942829736249763873358377261804102261761570447303124730306078172003101796015450748284314418112865981521545647351242358595820918648217294490483229485978592939298295022494687871146652110023700368734219655918985334578716634261694949788462743766393666475829450596363842712739926092714883784286062150514913931932671208455793525886131503691109702539399661894533901168012870318043984689411774279616874091822265235293392778665072855852665754911932010072511797632153645159192238419641646871976784136772622113157005688219401469249284168615251546708865153450830976265225587868665760276915897064257491317052788479159640838549987600299803318998869173985937105045626619339332784396287294655014703894720870135718888343120816998894006751534003291589441453318443920275905316336862515592915498191512988291702811639671795749913657620835521967682342021247071543751118234942265864809798204842165128018951721198632494689684659223127344960374701540729528173556120609563469702412954530905367293190455250724162811260261800970894476301051383886589688344602297252127289132570919048488767802061939232496431589189243874885490852068742839844162677037146879239477076498964830281215371778452922442995185928110203821775545070548698335203420577392063670587939001153122051604782727829915634125166053712642400977857933138485691130387356661216231681499541931736128672369911091936179081109647896197338539820270049633583486494052403928064619013196956805530940590891517905981682058765278918232601686775682065516320388761910352848765817132550913813541897922176441644798951933379334595549687498003903478641908593419524069633877604232431920272558803900525333449999221423566075775038088352507080411622164473868762572386195173767955652125954836510587504584017742973002211819203663470493744495236468590033803496264126016262575252399639320625162231524379214888846617182953706912686896884553076010335161545592254132991986247535336198214182549078452300409524106500556150350415978583104970649513233918521411030393746364897049758985916627067185190568288089022217401739152515139650901927227990025537537074295136986726332575103955888219336402986141383743219392375964409433643669679611883917830035379963569612790810295739743575514238384328541774679398702489286817049537179276493842774621967305192899487979436087816412980131400776660124318932323520940530452242097690537806864691419696680923156864937086408780198598208884270732587863364281423581646204454498753520659865113558874395978050654750608297880899530923087417895822220371453247214976186203374378905246748498263416327208600036444971945295593030676101703233754201932344759009227319605772759497708246573910716943440266987262783901676408822827781237686417589392194219096523826470628082168293709803194047518881600990792184675825351536826351982491920618087843998055617387885794860977160844834469613868251316143144644118083471549192110070499120462128545220014813922607619181936224222243565902527738908219414186518542786771156573543647734794215458456417618017282919092716940632985188306529853052603303266316390627092153483342183037319606541779413039213096346204651871657789018720788907103755484246512882284723227944507167953493863073389499917965718365651516250669970913997951189748781140255792667773733400657291454004178268009919693955538341167080373608366778025864285646595210338359442488923413256383928218365997825858042311612580929433440179600516681119570026404132566842624382274459228189368339155333200526555767047826072628409995521028915353470854943276956019699732545139367329391546414427694000571031115083095853856704135485201505258049712536972437617256202867888900099168636250963100351306602289710948393513521360834501746017338231728531033653161700006291889914730985633732807185446213794122325310992596449497580262181811804830334636124303065166095635527688154241379949011690219535958538425527470264072316511656933878150565343523033265017484771834521912266925821467455244168129714834521796001555616663428269868816848475063570674790295676996714825613873014916117247837695653219873042466035033301390819810635184975306803464490684231628460457971709311229880520583505845042839535912582515257710449439146721172318847204384548459820483118380313086981616241705167600215257007000453036091469040324522781908704497299909382548823071691482150778358484122294466701149884559487148785495448501645013179732623472954565611946372762087702107094451224324583860830310835283950676906370190406865700030173017059550455167334342920777318247114536926960060834083824617463159468896217619616508418349582144171203567482600291869566031124458153582548730152795585707130803468413241694220219938402246087622205916838170807762722350739912519514176601400776855314207464147801825606074587380057508350868055800110777350900082806848065730665793242175601824066426673809690834547936736274325645437073438228381619761439203937835374730178728353607311684874962669770341688176216243181145082503933328820999531173182574708365129226847501677665008135504143717506350323569337970049732406730544495737123244107730855771622250845516598646682041393172047490304129669034435395136218117217658490947012009971337476299286685459530395998394085970512246747790570252713846603006416545493325882081583215419722414701533793163874394862698497796020910669371663904368924229816497309989288473246829308978424197479578676323094763973729341119145819717054679636335801531775973888820116915150199511692362637930962523516972262569260203352015956258935474682530779349271514078165520497119543170003365881334531420397501474720292606321643994585623206403505856209054663062755075452968852004455782029990899783535981684043278893894258802259528258560537396880146864302630007321735897309038174569434058626585026755633279307006442131259672202627242801907255699875636163350962475540503249349868406140627852124887512564681887081896579206458557103406644773653595262547678465073645354396365834833541888525363422819052858635353999737016109958282785122082740047990014027453879167151628325246340614674767798811692770488664914544147704725816897487817649953121686618677411628400058488029130017499505717736879233257674033429369283538640010913540336761799410276168836361954028039438860732723482566405682913954216008764892555748241128833609694777932436888454676042524875409848878138329861792316196301332925761303979056354133670324259588183576859611420608597121772322014239301919464632389015503781084910486452827052608162037521499511604480772256859525320111181894306712172431118530040043147604949390992476445290748375311093145239195662155532118405705069089898413885843117290949312430169518263620194744745227912418186187354625376770619249348534198693888733082395724417900098785013893818207969601997790657735072242762633034979555353984969183577786951036930604525740505477674251295997980040659806164417685221439187801779583799784959402548846908043051068847595091544192599859582976589679756874019404131440694796182092470094336553888504861714304226732831360796311943383224956886564714701914537283618283407799448400789523953228051169975294785756619114330543429085795617918373387194857091977053026940820085677839912614734213314239687824068675879883653766912272612595942527699393675058965140274862142724433212776107682827892257765526233944797780228231705052026248091581740478871947487725801142187275115563491856715583402569021564793670030011426007257029912633965414106910811996995405797264124094808527667234778767825975209698398213491720648371551156185609277574987958010373300466052749415534787096877571587016220504337992422925247880178947446139106097919423294556016984407563678651711058437812872611683157585981083712584828793703824713239660121546994914757754850282476102017193480409086136807976586321968255423610855369302028814085565903047590698742576285533907665143237994080485345096229769283158949373852561020344376381273007917099970184906535986790456605747918434569464680636348175797129030470480410648974614076367623214449839149316716974454171684637324801830242817954230654696883816190453807332369539200439493950622508170792047232966449719288379848070578599191127824763147672008536560937429053016173111634355525229005577067571160916496069245000781012159056203656344995450467317809967756540035672728989391103432865234557768025020348680543107195107402446520551618143838167857542905104587013894598063741678916712469742029811978158155006674009778609753473841967986952405862544917547321832417439815637825952274003075473761929526890624950736933464933888938438212391877563230601439514365943297877567517256677230165803476845302340269190112298111161784620388567964976228024567210663705999792534931220504977888691894055077779502956744086676841626524572421245374670808330092229652951909359316128595093934310852680223173760558013492374903798770384247198439589791083941929029837623385168897869711277775403779149539385084316400264897970131931962878266646601060526271664174027032856809167595937191505034491854099686947424728102419023397403483967120064048711669890522651857205800431862850707042807988229758967243465519624145100198774184463555913464152744354742714179713052486994241207872461368101583811455015714718965654834456478930940266709144961347639439586442317597569892957871625683030119247883225077373389356475172403957457507269525227329342133025231804024897400012318180664550059802308708342390979664164429051164031878460288200509009684672713334321101038693006712291375142474916468796507783826525902079257921365117378575187414930579708661348871938467402499329251447098987867550430232081768753182186538247342732086346519734679199442843512516129852643318687736900348867522504530852084849636715317154108185266028595414269110746602017381284528155900684131262190956208638902303465156543364027366486498731072095353425881924635061043039381233384710663282318683300074018093910265937290290337182768547863200593126861998319936226395069895179464571190087815218093756474586844828592331718283188432132808825937363028541372230175725222969062587715392037111929391476516638823854138022221723594012916970195879478156196778286132097675644582239437489132792887470727394682060600129965286969020772770360634903935772953291496592556745806199553883125960746133033589012724195015802453084075127015385926289102776488464796338161168757672626674891359951722819656137900872128140519040036928599806690136744566645820667898604009319517159069213169547924933634169829919180150551501063518326349206232450582906173364268356369240441239661461817903574852560178229993632317830893157720762939527859140293344819691361465956766463299478482536403299339844767264969824201324716319631773731416573359313740734502501819693407935799094455945691494569255508196110848516249560615598867276753866133499734420489184783047787121387737335244234318586523213402167932001714944257768566881336774026695522275690444551916422978820024432117013444638917694306078119359970626167629069029254535236024812412492095093891498045069027240259911083114815731914199567981025602546910285635664308626961352029159374335277778776359442878375218219183971478339342348705055916802357285446899418396626660910114076235447539572679303486534903460002853607941521347815885894808862120699866456709455707157468968287729577155994822743344498995463504024699835492748275687029286659750842381761110950081863917060301065301672912118520628176845633453350482851986137309779823769863803844642444889066302744561637791834664636319827070277416756865060005039413212212726291189334003109325050821641514067851796993315104753980489977051844625074830595110989721030301045437462120592569159500683161974741021067686037757468604389664180828717861375120787520420908938517509765229712068641235191210639313975703298871845076414328077895099775128025329440416041991723901982272637114981518279778416686595290847822049082856190047372782329557076520082801629827906062382485263270722168913474836859509929868053663950183082148872789601050982413678864149431111454135882439729265231317414829222819664399749502528303657595511302577207571938186850294155078023363945824281617060616101269546825228029785894455347071410009368660751720304462490617096686383442386562249851289140895981224275632066533296647392909045349603553063077666325527524206301115708402013978912226201764006282094948516747546616389708527763893496822285392737405617076390812124171720636477896566545041756038374527286984625479693980059065038555421935494753261068033082181431217452427221003822593123951736211501406601163945823901806055919794774297266115467911848210582397468309020276292927734857806374227292964393209988710093451093226656504272369916108119461260792876447180314084628364435749529292493606190959006237938095860561741091699118783937511756980413448015498756392197163118192513323636680390114002672797456931631457976229445824365681875015315763406994663742779564448650987989572571195861463002846785080456813096766590694271511187697530042492163972945477509743712362075810812145960565311166477768236727862763132759812910163139814140841376808789532716671258462992544265368290781940668487981055960723957379488931177383550427528383364575566964843293361576977929413984341501167586500537420294388816283201334001115641717111425364282220610446091495338094601563106187224002010116639271243464032934281311369044797686716900669355632629528191534793423245759045869343344595691378897448887061262775176946126186796584472889816754703322593122335261767346041383894079073643357159156472586360470934034280332399786565586670556623335628576396913512765415417348915124888923151798846064598914349281463800295940142683619034969343305660647028772168899847701655898267220485971630538081269573058900374176003927573970754826069948302813558288174814922354058566737122755904307084419946430448288955785410624450992190834353487423497764032867762081500417941133113307358119156987869072995454046224147957653967269586640008648084951272447443718559017614243598302895355249835163829326195039292483917610283580659922188998654511426356501833763003724994473929470005579442380731870855764930836243020774766795296336380555517593471172700895142619171476135129009382061238308264442009355240531741358062547989132877604358607004354155382388817303465263852441533951123245464210281663973712053048372979761669129940095682424829968198862086705917937633992267754715894779484867421921405034242875319110546355637548224215854428688968132085204476508808522713499645791210637891517541988550822892955613366677447634398818302004996367119436780101359848317316642135713681454747842668648662914394117745290636853996110650606072139687145870848450708535992016289288265027327650765716345302394436936708705564302624836271411925826122239357845656814353339909521142918228039049432681718081770837685929365909920478872739733821488154996017999230532666978324688473828598854415621530622060514141489403457140557021145330610444603108733113769039457737369590660806717534556983489831116602526671363856859516393630827387656946218099416286293416577231130463541810323067276058081679893216358320553291952053375809468526050421921128918590335697547569098686580134303985406308051184414186488617364851546461120897871334426858460189832420509296371857712515620596760507338754782205514149869509916761144442745614113685503438292348581023238246406209245653393554206200296212542416122889393939511908620976691296521232546823424429888667489823996855571780611226968543090010798323861169466614304716750209072462581934254746772576398725513110060219453271038917863708612904654488883866251408644671802978232420580691353675629855740729521336676628166678354376784799449058477974106351709068164848489585739205887843747586288602455587234967124849520320767886584687336064026068769235388629573558052034809925774220396100376831798972589971513941255755498410575334841827464417738482675719498128720272454518751737995497984162852529581394628203227791865958813145967881421088122913040853194799128496480697518061599579115136631202478526715620284437325657842651437748938792525734779634505392275116526650209770853214563883471246183737141615739177412332098712520387976880202778394979740672373748542373038528041111355193120573463939710289927654618413431785813867864486813572992554676969660696536202540884492897204182068177816230443582960124416459570830548976138323388643360698506032804300377139005348216922275613242068879207144395832493032392715236847584454643703552393484257885714417911489445927489701192051565313774348425510998711791887662384898855185925647219307060052822532468609635680460785769714169525316125370656353106609060901225808049068002220428639464001340733425711949499807527823389137397483062423579401449710653244445074237243475244001078730557062303766191658881514298378635775253762879666677825832474438082214332772120927772707908360240177857137844215973383345300715940532195106804435860416787544676230296384728635423096688712141207785007232269177393188725064234437271117427427115952834288018717844158052330659079940780706063030115656069291930558117494229502729477001544760787785996454420991028853117111530177349601212174575040660780963806550660516323474863591630911971245743139536270625580694143041990054429172030406807604692791205747863040005204805532798071746730292352517512146935732719883868275784018188905151926692678811366587586175930529158446566015822781649921260179929655660888217471882018516235720185158316839193355072599028694063402118710707250685543018752976662092354627854551317882107410398912031606193333605628347743546143963519518274857374320605850635702728958876690129148855565521031629660119712074218215044905898234752410739622180476574019420783429782073504926983837643584788253422278650186301189365812244877396565717556332002712234344397626888749505463984660087123943214782018575652053439581320142279321644954870391684924278059963722316345812868204860660401906638779644325845352860754229564400460038664947665894065262249349568843358593159865389455055930481395750421090393491443558028051331924876761543175093383677252426956276065346548664905174235241853783399999717863291918694292562800157687708434109413947029761884879810983993532427361603605631622336130710843272342564291123557449716580905968019315815772760099519989106170463399156026928618938008720030542199872439531373136736345111312420577428038518381362680409198285732360512051962170746550455976967588658033172861909867514777855001481753834194744208780316290061038409724927666235413912163604017778965842181598416710566471414977687384466542259794050181480676646384591690877199229762561783403485009358544536473536643002357172508345530584605903446773608582044768252229355577503729258484228991554914639476784290210008544424184076880319647336620833933371505117492805564226411317286323144362933599391472273060809867259180603044118740616827287023869861401540373634273560490581707362158496773050791096704598808044033239260581827941700775528311868052247578607089495548520820500099272417290209017169825829005613602110308389631249543480485693373148496768173854562612566692289782527795212496318599543972800689131125929189764355266901494335709398676727311052139675721555365590011341289006712271825137059344939727592668666023833595786819712205700312179771839581016004353146330211920668790194843532992272744179677355708067861199734431257422494766672531610322971368002583729192433857110637987507226711971239337542504051312723883263201981830717420068664454315516926644665780831035039289428401918058085847927894093295689029552627167480983929873584658909705322840655744390614391034337276929944419131384139411416885469733297804845586886826515067753681881811972609059896774890848112449388735023274248016458607738630187700480725606924073825657239673660327928602933944266908575097836704452740460683370431479739141959568949610199874764269283591981497648560400313394189470096904216828554500015607233447318507662721165474335077928648684349015991769649036052104607792211787050266353019677963994293177844087505366101777944358209529539397411908163888664884340619419759115927432332894136005368625406221226036078045393558169242170552035180845816224572553507981895419979112695286860316886013082123883302997732695543542736295935194401769059538489296414596196460487929015114809710281985685237567426158166523894281374895771001365633259887818574207066823437679048090880612805008399343278467508933546983033468327704846214949297134384493876422046995652288827127619848609084938841610245100734424813888478369228111201262411793317302779565348201379960631471596097780063686285207697718031673061581392749962964416395066741005253202692158691574099373698698673996367397418844976764548394389396036535595847895857399785592052271252836412324033110509450086279626753729429927292700211082223587893207192662958929183295738005920583458820913839396358904650781157055462025192075653786235677245943190000890477059706751672591690646735082363893794924793181752013837554086943412246998412130301982696901751854652323339843228274842942150569241715483639855681466919332136537405596806423607850570176628489640733207117966700652550461441821976622212894933935902258826971302490968526041995436674289014568161012406093785071706839141554697940615856236283238370020872092413787235364421875370325168622867676524599220885278635627088139447632688114463713444614809384413255149541237254847960048751830044615814311454987271880279366933991901872298182004833300419478846848621513137846259392961464586032419274632970429334338693764109177139691170413936546575176463262240934303845982773569079265541223603689308206396954565323963079338493063415565107783348512560566590117642928174948420293250167192520988691630901989856023537094933640456125168108095455260794742614624497315503725041983011080620295463118987164289165531647102364023272867298587271189547372893949986892106149004039907768782282967783326018549562086245225207428734940085002458991228953320819224611190997989320821167001018038499991080318311103322486415826252751421922032881863440573102629642186424307753128400912315139965168379018379605171230995340141422806932554941467968184531647960461321614148275230866463103060934148844828949962447086920676193082123906376961810719019267754917450211206500740651409538162597010291800787153670239669746628238729904522224058182385020819758268724057775117020683775831760808246783143445089653709849348966694246313824209635208600942498869975773171373975882284091493178946311361592388840643448566007273451052697370212409016524979163811469492515273868239602816132214169265352205107715126849522413558522787920024284512402468036265828727182351182771217872855634195639250139074076593052702474559717274097225356257163549233290828089028074646595991050795427850336012016594258473148710270255838719932123265035753297231702561942298895735360699785322361012396743641325629630380782203718204990005985761916880005121462685026498624095802520889471857444080833072348359292332540222112835145094520965843354148103511876586390597001797630124784265875877930895487074347629742041157655283998970121932247643457935890495741319895365575811092592594037843361585174945708305701838861431295572325267445201595317122912982373300778865735988097128722684553710061233450796621275923912622216434252517993119962617866593924662071473441990319404555300855590648151159363152008849653871515721644896505786330910084216585519516224128745260475388807029990377129619173328977234986625140966091769470640240528357977816674891291128025574262258369245512041404261938269999939013608397924964286618320142586705444893287095483171134463025868347656214603408280298099489770467364506998104187370204859994973969534949947306388498784502333535309142889684536460765500113671336023500350184460142085534697850611370569146490235813157974478716995381973398063693959664743819468665085293331302649219772641802282817377647904743066092463174899382288430419561011022954319028190512557762501134660968625071005229930197623856052597709000196711915800503453412527671598757137122957493489213627892505207084297253725414667219424584195125691421172870142034202003192740492242458222113046617291394849851679482600662593557835072049411152216784901892957533341526980384787310007355295457533123843572093628146426634032869828340309012513815970583743637543190441723245644111292615008945300046056494806565343697250241614162742978818029607390590550220754238478752422993112592439030367666017040327791825494026477072921303950231777383926364620870825038092485010607533503391465178312855582861614056503202264683464301480038924902013843161875979367303846661532238507167296451781662053147943687230155868378799079045269024065457253772969508988067473920953704370928689232535582055937657558307586830218452320532230931590141316757598000810009399235488439374469144136914465733587631919196149253873784436196046427449931198203301043660288440107444386241998926510700621373506322955476738857149145141575876097138080192584332967660319046238672113478103751259097888779314264912583450065243466840514418241099788386262127932402762275563889924194425144510907945656427697431710609401149154935075358098275140803444283940975431929050001829474985611163164930913954505948221545390167275127367576103494390004781071010766233209132735784657387184174203655986166670242556300555890877829240900313768019617938002073859602246458360083931811865552742984299053742839904731889674906371966521331775119031434007487574472153484430544583657838379308511980672711426224622779718984096171143636643013328747929389104026948467481271780359988667505904291159328685487928280400292985402368855178394916898228463568767003362081040052043962330639519796803823305614327914638519357401896724335111749954543181940366536533990585725794776815479226354252770191869734825640812550480504331674511784045523772147659150893031450710641276641943195853386968539542452100440534438477029721067842621471044156326236668857612224833549464906696908248145999415199593098204091200085159793599852428151442851028247422971614021915168420167564756600417983235841456666975736307521373053482437635700345269534878061852658879616792505070660327884824427114600965630882669107728463734287245671383541256189650637019165155228146359320227438206576983429716681899148679528966623342409572195739955429865768712036920001435217890822361991162965311375170604014743506312869713754244353984236981499414218928123540694043842152655179355671502458611395566522905878851205588375922536221908315979781568984591745510421012833313892792697834301054399186553227686615040367131295698779430788184800387485115736461836788733638587354518421289480515482204481004338406019390300461076486541147546504782051513900962817148031312396284146883147207020634612461910293281089814454137634628602812964714584412954859047587676992863267537538919334953717787381603123088621019142244661559131422621417827163468493824565552785466828765367585521872426197224963944907205556131988028295261289802128208530784520389520289783938382433857119949273834976349307062289483182071639762083589438739168196054197274771944199654227055108301024188368610017551985171945281099460064521595709288685482030165917780693332326229901862642433621695921949794397899657525359500102330829655098569751554086836694552121479279796838590934812477795862206482420508455001579285991633836646898542883905164413320510637033099044664541323285212378821399593607189611183498800309454816546019350226320798806046159800596258731598713373292595894336485108993943318606833949060801569347211149733750195615486832125219832047180785771922311489310475343933840220640090845088430817362922649298643993856182818127304908510235119469502974457446438110205486593270713967641875468049103389147143488990190101003778375107090797922592834456648837814188261529853450303053041683557698039644073545165260567522248732180908629114691135403665364278765218749996983541923971881006698095424963418077326953788064581259449805458261389217338576773525040021271620392420424615675600741462279474093337403990273076467950255465433637709215756380280410776648648137342838067044049642728504097567008983597530757335511234760483044610562305553870255300170215762050656028783171119267051716039609346419883523088152547371261118973932797204794729608149305819187984574870564699218521469370293181805780123892673572819858859593955098149095542742862959167269973232305050400523521547419711928104060951995252300018957406147025587266000053858987973654052329129505880676845333946223457781378982156925480144482585905296396594639825152585276550981387038672586449172572210361283939648588664161377612399224929693331266945758975605574191324676618883951360707490021101056775701066476309770517482104356666713185808934162385379919435120349517788962744170849198411719473731366628142620813147255925005533405196108791915240545318058215145393184788040826873584134518977931308862526629806129662703484777478108909190274238041401578083245924366075622072407437235077909744583817315491795977555808479134372543714232834100671260613515815444142497377579311931489427667812415407610184497519597444175366503665019048122269191088768422692547817317489100525109678987761122578129132262320328738821810991172175724927032191153884051778425400552855555566550006186230481116312852654987669857214324330504947034897863463912546284723017012028846110732955551406081888291240234408312350934241748910560386771270530277636020009163076839463900259771922899615391288560486442407807929776486209743192523584396031636066119843921791326467946211378634973477795478221807342877664909133863459298366861072433143042761511010287522667543344467723974632525396339122947578585488910103720982003333124218086169317640294711862195694639319320783974906889874087434178145200054016601319125213128814771161548851514661370978598299193712179760484305984259660105093266208616520115100249826696804304020522333324323780814557272787551119120568726954641639213159311755496856334932885791626819695234789398309373916285814945679708453023664428309342967313334216426112216717210704688019204390704420185911643863420799713145089212825391265317256645228702979789399598125752420725996520811694519269245914902304281462226707119506415724499756772440476224719113551886367947529875261695032195367406542639965203252285862375871146792290513323543929369863204392319015804605366004371956215966385632435590534099826595505283117979095862947490321977894110082910663217588294298068416497064719976569033947120255301976876684927785835543211557033512246072747018724995187606791326687732554327488348256640696373034062710294249286859738239576293641894786387517836195399804351367930342661094289101232355760282056404471060962512335673839666626337472210878795995176337430578778851489695895325151484423891027926338378711101786569730109719423483110786399555566472325912559845214264251109083834860615432580950983340947285086074753524900020271133758535640217228615787178030090805096248401980707955955591464283671654040961960020319339673473236539628284630525867730946061674286030665623687956571289717460228217090180085360916404204280969492811029250618649528633748002083543036077605111757101144501194294492928592563322951878794451083433736307107175499723580400903491057601066373086559653141273657981304489153251669438092209150515907816279667320204448520454450312105759672984649160442749855307698538433287946727575866898652828041185191881807655094428042726224358994925523251140406592725138790989117353802686878680147708762238082486118052779179521465925340155025403869963234785909221507099616425977346706407479753959430686579974464579327679729008738998022614798925905031697254318078107464783319440559780178209636481039622415682542243871104704452708329653512545297156435513761364918449461383178053270983695465895560970585053661324567693364606283613009225095179311970138922461518206875021611513397015315945775008011806133911257718238892995533392561560703538887569624707523227770972380740450195053411717042190451457738811299158187860646742950238732877911516749038541645652475379539638539249507542858073682725756102602366100374197178357063361518496083509121412448139377900665637797450352774797495889009005658057577731272090515901599736378170159822759207950029899876592240912433333829443599939403449633040665250203034384473454184358020249826728314012040535694885273018452654008356375836186183663230473191208908404706436019762093226629823598384252300863711940089812941278051662592330802936963477794839722492661285762185114916379939222043322210150837592853126857886049741463371873072154913711238829071900662100418596966837592472195514715718434701432096300054677487916129979535123474920019781931574456443872270930721884104869741073363319015068997663193510680863190425832289926445131370603664471529963237740893074242700160574621748569219639429668486044014276610114213608452994808161216709739626104098051503198513235825758070404472247712315354928802326311743184354671700362948695469736391564956518558767873921086712419619841549708191702505749335912144450015852660501193551663835075216680858481175977185824725640741662885602033160636523526760377914848971771268806622709031373813999076351725281466543064301105982198266979769746777469296654556065045844037164309478037535518544016671945689292255643666013781086360927800041407119832081628947647637783134442068139601731391559738293852534578085849314429860936595334820826584440135700373234237490506674692333394859782197359586603586766718469298782493501047576592012089110608482055687736384002070133886693905817718681006593837202208233991727560092230148087607643297259341337205500718012137127816503051724454955140433463377290473503742552264811794627072509617278030039169545879138180545624310117422280698297128464509720005572288361590680000208648379412034164850884862127377390431497716310362329120002990647502094095050494252524013782065092025491346787322486706364273747796608597408713641854365852346993374876715351324761656200202220834081609549630953175729432861268628451448738118508716040017436890833418592547771857323609767998135527603508969989853841653542605186050981194079542220472005419084456794818614329619053194438689340062682091048536993414217693775778599133975784004803549503844340571947978899878558520890202331428793795979468856104135459098410844583558402346544623822082740277384663728778213785195853261687428208466387493882387875155561328878743347364203065007019424630482595789301639897555777305510165853243522912958013352773228253147853176683256237634210968690854613907667316494807799207100200837645248629377208681822662004282242039580094110049128188315788320190771392835779446023608530307750364703752275652437441714375670332559431595037687006761563939381885288228354178672859278583602530144447835810085515950245590074445832671444699109458631682557473766634327645289215294469780521603927050709204044870797555960494538520134699751959240007436483895538246892213279454868536501298574266945876347618455064443207170304848573193777066589208763601858543027279254925624184937613262005388600764895915730926802247369245414116020041078912406176803714618794147306935580860254029817796103321806285972025629303555699041550327885884865891714949000759191482500621327022792630278994972168951112079101228808160558328372728482941358320852840342186348676012504020017777840196528818293696548570967811930486563665138641827427078828215745343491791158815520764133391689917440927580422984309308762596629095840981175045799682984259392624336210343626932256784915101703682021002521550049586758740136428446292586183788687871415733884628659817641189560750625476548221079668738128374122650101711508802109606137955830857770536362467326863735968506315998838010671471286034248468851327452924710915683197922704728542133428648229050190754186143572311338653052613391917491686065344323117188018385675588049759716525114040132928193173938305207351608101883946720331725496629105891976688776591997110222769062357333870757454069056348273006599619819736218917400078921509251857165685020123095125291998829924591437403729914325977817358030290807731640286452620013451962384266179707373721372441190033234024925004198538408486290231709502814317286654620855738844496123836547182019045947569654120139000251668148526002626437840564908626467100663922234902559908595830187670295475581841793821723866927318332167448818597698459222655862378115858567411415618045681343301918992820784260491350858931076976573100650316125206496241728679125252974114662686815429822273295434713863923537840815772394844776692309719602374427076061934536765165739869611967664867250802092665016179984656829589526415943581662380864219981164392082005006867983841181234522596999027076299282541096607717394853228910006575782547015042007736726121424822727687026908846172844777873496357624341308120330015196184915531961027637207568758144921338774821942040550543626477598368993398955109495677407669310432957747494961749704476381985719887610901875962656434353750142993431316580442835489952303540261393976044367182127945850319827389139655983336828821635853611988859816808684272727130369642435878712812689807200972334794377024106975622129347955569887212025423077757209544102795846042184324777530787408015959726128294625084396516388014558171605838529635886741842368357421445262082306715351950312639679268664096372689960914651268999868900021362468682805379714133039515532258364036942726872079277323686460975221216026556748492531534985510588086063029684732869658996672152158327922602853141888066318141481849225524246567664670128099085216882501797748641497854612824907510386531654586768055119726677799792844581941152195528936244533656303086951879845967821276675310558089755881397161747156479579224021779352261108491967845304744359868077605155658600899629976637423372157134185846840649577891604562537086706523124318295856441209329830798638348805725283269444947018768869835071801598822245278765918946484067605257074922236511618626248319458609369466748654119635119697279349295429367725466376417646122441509630500333398430188967908660771386475257711297063471131443501004690050438717498582230118483048064714528638767391722676142200160564776739450847644467697786815713417966380056852945422596193288005148210069600869299411273623103426969326674489865849049492435263227488758530718072091227302423786826076879423971314754846741671394572246177090943188534351770597170957785065936863367339056952297356869339015898443703373260594553104561765635577005767291086409969998689512354336582964975710482730101062487212592537478720716870648999243132379895023176112057237348431428787377809660842141422541818374468853636647702674746990296707160345872819189130027528528989803074591375727574672391241064988339959444919005401732277688887085821159670572096547146442091790845991507943071369162036617253458629645794988141399751673473837961890182339796595114689567275947750306358667631648671426879618534798965132460894165382602183429070152525452554933203664167598188764672121158534263485791695479568563290319378776654840723796437478113037280636027951727505468076997197781559633761682035722722304659275255572986842737416482903561726125021225078792197691287383103617244862691429568383975811205217490380197897094027164373496699611335349990782969436067237000254743001240604860900569583085836690053030154073229999524572844311947437721709549245721638322933657593161471682121274273678183154366831220119662047562891315863562473619260920345078336174523717811065326838643347107869445589234416523604613559564306179519305749377210538536597551653392678989927804900777205165453964004976590124899734105373704990152759036894979979800419402329629927405646489597191403769698443656221384400023603486932908692810386503863651170117688403749273327418851364997490537338574517266418519719406445929386629539708779771499060712836428477360946174147624539436294266977350909522708966034547734264994282273330829212552940130606084115689589412575492660836450093031143859912097310480880582217931997782733071256949650251732334179227863281251265158286061439947347172642622441349511460334858913533221027816935909719813078982170048139605885657868395863224952236151529396405317706056609938671886137312694410515198389703017102591573164058456207010265604089188054049128957098272522857846083643246481767893510470050809300984765001374095767366347186281563068364892962102169831307568644936550632627051043910889517720616949952487731686762238284679758349734771407645109159754175947973855456012967738424028615499287487266229484313773517505655135088852828609566143129333845776763512227211958265884199990602321726240181973428224927843268392646654593445672548251680410003221993999090317798556265033594917340697600868533701609803379290505600716110805241254028272287512005186544571780725320600832827248035412791377907573332350779604318526865489314262119832410942388982500811888654691382745582221736425995726266329244564686125712281476277537719952986600581971598488682920421613920178878888782727378761778695825162197530127380902481890083249160215490918734255807061202516486222905982937358532620855809997310735688713239845878960276235928801358307436439032396880975752948247851052287583599304911772797629448864268770056740348128471593310513765805720464303894036865725916061197535242170440590932967296388680498247387510629910589515165848276962967282610604715723552314630651336352810214786611301775774802458155340714938899326472569841059248877628215928627640463387593595196451560752787847604328023741146823654723717467560528132952192812410604905558675501407441029107510242224629927841468977409158024395836724156221155910851474050345777933496463955061364808917150719393969612054974822242568703187802032438944448798348523642900988239018093025772683771746776874688101900872207090967632019938189049508760553184992402746441734067579509063592616647202075208395568807262256150988878553069675430825215610242704050856759490303766511083675140421147432001160484033462213267421539565227264415649851555037537538489941403335055221993029732982299368659748290638028330420553414812348287953025608960587174348332929405086937838583553540933314589248908291357307408039382082793560519504722938005801427569999644734119924233274225114314788084417899819888981964807730556814288978657968901442121992508401384089568183179013341050650537790042113646494164176830347491334465584631722055688883565424119741529904577274756898951378347145444786999889655119885157128447175273696244503861234367941795244426420476202891467692752117392010220806796818468954797082391007928004870428881570036230069934411872865932482090133973551316654852369331809623727177699858969151170752612424022822807832454616932027923950820355640998538314647651590454617587704736148504523330630052915290325209413206981099913433419228013001711106065725407045351841102950384517447240036102159627623177762157536966697580629875448938455371605603314410957782722062021755102790616261641202377362518029736007848724963676600411465281835887773764391755199768862904281458211464893330157731482669574159732538288988221799728738426216621256004001812908149912364873916226279933854772421445379259898337378629482828696665512376038617702929686109368575221775339597704657402286504022308189061422105300996788802202018551435143310337593672504957020575552660796886066830907569321690510611725130577720625776928512059320867698055030837436392645929714918928482745611037542320486401533995715857005747972482307503996095562529399091945181460817043232493960029199290003423179948632877000136550452787211566725352562021296095886221942305527697230956348531084615427049195502799565382669379378440484628143612674024032744053736381839950914771550891087613874595934072691268392244981231960137301070952647971027950368708514135065267457870940278599065150264310884199993825385528554567562174085261645813560437385724946306820774387132506179299479809674972082844329835642582126922738421935027865561750398871388523729505853007742168754301268419307108066774746285048022837819967716356101356184727320005084774510068786153760708928186710497220575360625868526279939488502475501193268474853096332241041292706908612047984461657046872206536649553114092339303165934920375751463313930549761315253218982630363992172003995843578869711202268034631155023809592125271045079441552067950082045383693934913604227342987059202368546195985984707837715334321712742965036597349985508461545161769660334199388066196292449854524223208500583803989546068864000933313489301463945318765393414634436254234123419118972905007810405402726525384303647887039309389303304097245538972195770105116888147141220285331051807090477208714208853859627509307147584115072619305703795913982842741025968258380707294680154154504511875552022718158249380181579650556864384452203380792891958383278972116652113920259808793995758825295035236386935281106846775110376728590334184111252324028138449304392321980192757357786683337491373933708823426556973501829300953578923473297692410721136076752977081545662728367203510836481862721920024169841492691799881914799202313347103780303371940203619158895201102210451477091172534540858073249307953372093502477746194954897201229864973657807329787620808129011315219405277554287621091200408908207250871599550881137375270122009748816463380637872578836643723998363158730710129585434455357866951145938641457930941522061382905925505883454703948390230935259196614244478909095729529999401465776285600146134733797883806143990424549360698570225955277896078744998613550976972537030027633601694498591437793304532474042731653372601264328660125090110256623708970596546490145694935978046128395899637660412089121154730727737764537179985087730605663842777901625293910710836167985311861533156248173669070352935243757885709428047239095390250995144305942980615696230323064246952511554363832787793470502997956804660827923814451578242976002071846497128084021838232040938383593176979750902228822109004708068669976204111630678139048350956232674337935427641575889626950146373581190000834468621944661532213314802188229892340206162984005330582685469536755802146598971647365533919992306829140396537090147897175867077677146791725960051641019152579158859788680244640117858830382763522537096427028323876021994249895279299165902605497547507320875086573733847678140261440151238651490064005433660529178884367151879944672172628358655459320570063925204446982700232954681440133398305952842181138768338964370098804064953338145805876470123526761426731612142714625907602024155414993603720300082152163050867880557418017085744750557300105838700100616716495103134677467224579181233380587124691986558605469752414288934493600892588111079431786036014614305376967699248695849951798578143038295344469061693644449320266425513439414119851790138288348673360364089796351342198810352753197406425883490637117227444923846988546824126363295159367959441561267789335820279874079312386532574428430564085102565785480012174659880859445893377034788524231387184180204484887126228416911308624705013932537962921128287350669663092343547065172655084051534539322568963133444659867614700889933726661679496595975101596209711098165389817370652409541079145190599641693135651122976838037678489723478216988359203113343974346988485304816051894569040060502996752772111463441102045588406012290994797927236491231383443039101515880204600323322512255476505288050438252040649150561484950106559180250676779157756919445220657301655377901403257865064528982895362392161110218337058828097794864769965892166821957452583549386163306539914023600247177608332614951995391637575990138287483730091792141896682738828623011462841304399681388259865311459760706611078689525220542417744102340288752097604688877552380171527207030928564599177780132150202561312032707097976577610296589363727102529501467536479022966370897420675333364043580026689806607992382585791464444946389337858508721420383009222108970395047754069274604869615746121975672074331058863539057044570881586154942742868520750048467293880844310097272600459718172030167207184144026752764748474358578102507811858153698210804657644882908192253468679145769096423884611283270300097557304143947620539973032064063096685443132691774154736006130147231351020457105876787252351233639085981182328589453394374784916467346110723520873917315018015200703360767480761790679613411447501505823121343344334943250612556864240051915801954233827209318933694536198433503777585059525806026161239901293651395177505127395623075828755744967240822073042688512265120409020484416244337682492029739876679926403784028723009300911958234315258186363369192894650644074851909364514303902991861695671564068931752827015576871235072357703347037855823899234005038699374778534407158024345533437650234027294944448531839754618909892978947616751423437230519590222497937275104505947195081485911536511799529413012311311150931074882874018510827088965169524697665178738287730388716271189541835747804987167547822344908859164114755293470627809638485861122688008111049966942294422358454881599316192955235932638668614491596025660218721914079924273688508348563189748161627348736228828314197116242713486994518134358450358237937737035135931626983128447662914120100172255255115909838128025804019216770926602136635311635458889590784249144717702308998624543990291642212268651139595544890536000755186964238977475968677961097890203844098550052801324537663409263917325940982465732653909137589136760761797010301184437321526982677067200454463493902831045414184610310059767368589002752398196288448809687109277890257579497708955851945335647630258486978257647466883890910860030307516156469648539969064970888391426043962300624823724549602996406672957244389605144522186845202861944098945081946217049117574368144228825911429993997132010196783800573258382756641996387500608740433403821579673518436055867037333611969398567274499867288899987374126706254992697096200647723869204676281744693032761998116032560454517042450026632220188374067370926346935626905929906948659256623849545170670475292503892956668181649428771652378652500376762354364627640548136632839901750227368633541748474375947067711588881286009716802533230980865167849515324779102334750956868698189404580641497763460893140723563367522739244635637873916946132641057415871253300548813950864514713670434373052465079959844806724207966613223689577504130952321811881286753888619708787336854354070057701250233178866177435168549061684903037620273978523351304327998221523764305459688515983856087519527032725331862870683083520904458582204777124295130878214266631293393884412567760375504414761662853258976497694844749731987598698463308247780851957589582369222830840835657376675421812472935115943154417842629283534402756026507190958042277674142531848529424950283279084570558536381875899957421115999741134074894257090175186472965639620327454841063794434123464207387391355803699921056763304108282145217804640821482780664335213909676419899663726687687895135004235608692434382757038508784042334264223190061550045068519555995853232672184926886434010577107742213118242362953606251992971915623948493532814407565752411916301711028779281306134445507436156889821753596032123044575003650503627226137247716344529238559824318883753149763561845802150866366085034005539827658911956733737214855769163282543477273595887106786571001938885475452725407038922686142778988754885134389874905758502073760898569608718655361961176972294559606963924639511590608868070017072971597472217588681751087784023015615468346737311281408320757908573914748160293044078955952246510391181706944245890896684035557067331147662262059656755894612291712787075266665839078294267946117597162123892382556567086316781380812458421637450551283334762762994607877795164420654609633153454691385919790849277897226466533389035940663300648432272617913077195217773142772761666423393783434138941557666585960429626413456849000862804411635843624115875215646091860798866061193543908008028326831471796818868775872588251155240594061134028623982479511015103175945902673879442536172011976645934477451427950230905058999715309356078778145539379886166303553080993168927915988002930786513819321712896702929712287385808006168352599667048222110391773229168308462417442348122788192951374851998198070326176126518425899541046720676836183899945353205450106179556394299670301121628089499245205501883886426591545341689876818788083318319182757048523045809648641357302840425876707865368047470933775836570615438256098410023961677986834560629300219328701060502975740495649343105031424089374457179369880370604457646377478147730150274073042162686659147903896756591319323384897878697590321719109520098929013237238347384100407401497928816323682144297160104799880458251368094571339188887504952873481818267040778135006146642051167145507384778774603360332445161392484028028941556572222042927472956250912574414500060407550779165753662290839867725787085065640702416215979797436198421486061808701643622460106016222001897283884949657580977541984456677052835305440448350819628780921888650815184076057476920701933192046241647449187614051882740470886367437324132104221913590424601402630831799528418225616687212988500607759638240818564370694247302955749241528702227027762423959330053818817325775421523953519311106078292955283952990249439360978666608340762638996488135719416634354430954754964219597803884838297368416741146241947684064124867273896328966033197166190949954418205650473150438431696607947272551203662835493635423711991799675144349639773546144145658826825848766738235026613396044136655426736971980935693228742521658144174659499248360549074148684131755969851127371980391757753931220237362908908731281694728487000331662050208959536578628668840165122355792069672716965173250917139210961925771469469264117839079989087254505772698676055360297440850410584236644547114638588806415319316261387745162675118941167844632475953556689235187047979819277315850201775142076598449024562849230104620566230657712030403120217938593777053518509875043493395295449177428955573816597834662362790672847624732282398958559188157388119305503776404398728176181829580708463323831429164638863240786006654467187996177216510546713466160656978972403640355233143850537768960103786590005198055769915583939948755477146452620108884578388560781521250901247913683345252385814743561978156517820250058999218498852241654836369114691436584535797725530358829984265017899017769840028859129324748805689765125966441232822775549344545447982868275715188011085472630440344727081689436189981623663982096402284156020771251497705433182950738651776849866241612015293033841402841894917194917580402177361496286634102301103454610334391014587409985607161677253701913978090562062558460752560796696545352086317484620591544189135953459822453327841831127840563057400272809672133111420605495674664755949618586131175159283084068354358683107150581628562744889670510285707099792280679936740490883418303533164543163152906315022877735849209426112330220030979799921917260909811348249481762996137237547963379327003266634404421808372116680065724931449946442699245853070475783221750756400121041656519982899403356882161375462468341778316109656927168812401518810532342402738791101729545784456095244669456294101570298378522314644794228961186244499864051119976615019777948738137204031044170567277959246242571151818860277412270112987845619723647484021433238038161281853301933726322146445724528939836144128091273237543076986180165998316490255869039247317444402772162423629689371025877199730587227393739718944851044629861832622042847292996814640615667701166406990435032229524768982461254201939481555814536837278987648805052340746661879997923734538968937641553902233743562945548436974041391229471341411610105566458369757956474898215186800408570675326976649177768014987610329510301913326544305830802729002053174942889162535106686725636021465679709492851536367751533041752383276797335671632342102213867600920899768867925015425310400729213665085167892368563430320298058657044506892681321981438669672397873890750387278259170037824152334473172918557044961135268943446041473912972451647559563382433492531638866973767093487290577656808765022135342256608996608368710676534770078579072615970503654441118484767364719778213312939876841129613005548131853179933248191462137716171714594212965684221039991753459056332367393573558553597003602521906519850405421669053074353848470823877446806825421395637145872486021240552352650534434267176008155648703051887270967277792362486640758086788067401195366337312721481981600887613967700727767962263017576627527660651164793661645122143971569862631664143559577885006170801301908896564291151895397639132626418837257183007661095068656488810120564213214653882053462573423743587173956250712500728080431862322348273832100707164800159285268380249559991824515745500031554822686094568602658630346197827721774489900266545068505060618179424843745397975392739260501342084842923750418676842852341688791741604123633959258348870028854291657340038257475634895053685253462566067913934048571795125621470672887289336324373118422070780068189760109973613166667221131194825991105631848306008219920323105190282836448165325616798247783307375179315024830978451662649866860637897197765178369055389325350449102519434075816026939240565557858420501339908364640373444219260911604726552696949461732384489141231894866175508319735226975766661175574626200644101695241131738743377689067944966284965470064485593401931097285346524882767207722761953449854663657620318764194026895430845298409054086814512518323223228288263715575074938161997802402841034290671832310641325783344495894036668605444571624105937630378008824875102079183021909271554149072707521046185497148524600786814554828325425279592379320850693329719767675187027355304957277762354591192900847254106408105032069715964824691074998288699925757532261810861896643606446479570827525303772106550817719516332482872293332901731756401454825467056723866924034984464526753368644157465163066692662874412133362213930046202118007141916696538035230467858850147127048816953241580489773426305427445638719091296506299325327941859591354597131558990818894432074088087068157929149155187122475463401257948859900110176738195196822693040873476369140007777412842094144860247911335811375132754778240239624243045848229736049791193409087928771127935096176810817099648482399660281191848955764964452383049494216523671191202098610208004534228265396729625715219783391782110729455258567795466394890084377945826926814778741002989128986958284202487383224521754084759559746486846814952413685631854519772159143308400005740384658613231876912107858182273475053735631182642866761513409969511360494597486984608445296279455460091521432615199674077100332430977949101410053124865118152774597120748970230019729260620828460290498879958315925879776501835126207502731721166632754602695351155901474427116027909266596326021794545931885176878405754332500350652863175754012523882827363312636589260066754581033225308265996823624222622966209687988296838512109889220107032989291390798781174629068752274187670397485383267613414975202848759404080588711583945019245391038308762949923571609593364929585214366285891069459225239650104549228793642383611724779880448930586835842665622182643775125935388339602539245596732925839235737943342283267685484559611225167835357827691386734888214832292279044901370112702701563366144047435069846643399827665731453855316182619827470880600185514681427760970456014525555704836288254545416084933430976212570458101693795221362723936562926043938180912567656075185010204118313649125457881922446985987195019700477931675564185061392904530825305537916537444144907284006505121952195337067626920441328473308669327163605570058560106650910801536420036272918673542229920061284702432155541220258288734980453339108480213519708079840043626371811884020330524710118553384200792471769447871099694106276069423929661943873650541898120812580153079466520389386580421437389186931572901625052365162482897479499488902231380095894341626310939405985355115248892874688924975662080694914558843117290666447373826617559908818179280458529693010543425277808745514563754946392232722383823668469278247541502470126847136074728333391712003031054854141713018350375312580711474204397831286788868673170558370104349615162688485129484598360822579976617356795986767052499766069007108725275392016955008154503484311788739228737463691254011652209224002917647547578729100803429053867652765382675216990414297600414460120972534331967927679213309295311241554331921504945482904343630447964329702144022669045627740109178393639242394503320269582416965798032633528316492166734437215765017645485230623954233596341798882431229259707489607695709693958771487437651691441959289250547126191674564793026468682833731717338603381563168804192109435215145800364577636119293255243046076832393576661478087900790058080979100525439214585309295771141582330127838513966710020030618065026306417280794772723636146977207225765640219768811207738440349086368322287511272264220975319681290805544607596844049635067235330433013801276698519742853515786304459603189380200931253816729717619952414796526490012822298199837560847495655916633060635250767814080046470847503184794785737636392131097437579766653296931520309523958596293097887681678350427641153219589439516108256205776657336692653265256271064400081367809609609769754465728575961461087881160399404303265535445411261853110912642837157462754015267243004271004758779619645901203308649468327893744775186099959338490098365351642180953166578920871847044920900779324357699529707096735412236144549033956009500922080176728189018959863549582890562983643196027765545685055048357309036890696596149405397697557561444098486525356577285244655422325525911152449229854929064545058680865231447055340452924301277677520380891519985131119461949109259180664741951512245485729286103941134623089531678135573476233658531479896568356542722860646984127690222548416872617970580654404384530183361161462484096979360319107106300296077797224998485939956963445425487389614019229799128484866950440898404643640438935642663825363764863396299796864647649623915959433948291770054021519143261215614977837921786708870148950015937626576255027527507277340682253161714945209187295564737828995757455659686532335850960762270426534571288119462675658134637358003098095126631631108425710159724623894926492044484402601173654787567921611704889421028286492424935243729925398351625005925524015151437517521469188722807398167866889650629176035169312904969526590966160342878136192027519208122488497931576569086425581724499788566412579924648799180276559137098998392342742518577835636188888375550973406158496294547229883633649087033656379302262195014020067223633866795653382397101097481377448437555464881650688383951694750882842105313257592950307016488115556682435374237600942073034708500141853431524168501438099356863069392256395920922719063654543401475854552890913554517433075774246470507306747392536532321007200529699975208389730219223490737209824659762859388514799665624228135445506810368675330347956327537989378057548210860749730512784473198354211100832599909062853464282244101589858347836822275466509570926304246026082827767849298494476868783724357167561201287084625411314174637724663514371202262673994569155710987926041308280528824361643866198229802002736625765788729032525738360903284456463767147364877832078757043652970641195594356350578705633100768335068623982231971139433970264439287198544677561835933630773816557793219053907061092396800786775684885704463222201954004363001470079649571536735681203325764033411750894073908729254331559938328819406102651824169420857007424844206880398070756823259902367905630186653344896247061033775175649431288710758118268954714993230572946660985801853258945031408438982400514147812217012297930302649863990209749335048667479390497922790668368514170014119706411717963747234918139972819839108989370013867262759977192764617999513895937546333906031960099771858576571107232344912641674904810161937043667880941413159896676535969614929777648092453394737342204313502657964014161100379171794150250006616698217173583766461938779784540594493284533831744288646537679601378604303482449445659307390854945512531485560307888942282423332536348889411911256175543758886645055012323426225765958509762005646965945540743596850403182772909156023742097019034399500818841395326442108039883460378344863499097133981275201064451295727630396339003644941955363271932140956300885602718171365841992667507433996897402855385515418127056425942763345185191444694629103002544703456097435167076132126940133442486115310586806460182232822819810226768314228283906163505820946014183821339405443774443838295316675690096509984181691174421122209649261775559948845665264378375696806947212454650755771792649010573113321835331748766695754038355784493500578028219083064843723067824544327099844779142307149733287556687736417570022947658880041882490484655282238798577992432031379739047171400278704451062938758351758920422677490612624458418722607211450106277254874936491231471883432702749121343401703755987613941386617235462228086988219862538296162720254793999380940670402883829696274483626130525579998135837427099083823437201109523703395459452541543797108517888749039139372242674663101402950437953982680780064677304365415477504202347754979679965694394940979149716967971387797751298756048652168936399831794746516828479585933806267123175264536641996567015795731049589082101728980366951518943542309947216453133295334014770335123649819478453556860973543496140618650556029986219262471240960419453731547194876691867374810303082593285070223467723296135520730761605285607883852408198502306424826091679818334508440135662622099320927728467808127925033428141544395865932187819574806467867215847105758990956657909092386209537553671845264176916207029086574473884907441145678678405487158479259555959935730525079174876964084370121487634262521408126466775498581987144278528838997865936024037149259232305600618616879848262702016450292835272370951442833907482739609859753102170710025473432311605127416305998103369435925349874592110595240810418475387930412383820868785071096997878820130514612406537938621546814377210799848890936180767772998771172555113852626319862677192516185595813675087344649479074343445034821277285399754081056256518433471835093843229928577726170108131066262190251928018509296016486928916189418833844817466355906280349698576937557872428405050175787205041710806888782724205953876287248516763654331802224288589351310644740869679968868440930468620910401996072014443035958097006791001034921530871435011893730568333590712627533922327172446908616585252631690436998756076590995175308844916168209004380287062779605787347639916412134309755879759503217831922223224492023031360001165422824149388067296102072353403575658397349740190706677446815953069183798488086162524881927146447961814144198511818685873334564388602095061001453668736172313417585956006884533063785857202810259550456967115925690195163916678762463925053266865590793458069137789418725736776593927573848117513591066082056649706807374062076769084007151510012692806898146508857396238285375178826024939888315214910045247774579966311270916965910553724764817307751567100937833394568213191714086510119594244342085756653058236122982342042125522910407127140510766273846177033550076268793929704259526074845887938624670347587763049091563519408271084824487852330126094467295960449368175684211772176056596643167190001068025996967311887416745070047257462352648944633149752235902484601656716242799703908644691493089514483699112020549813340416195965446323418463148690475848301100646406020005385034220703108740463824593348165197082252463562100814409459369093539683754540941923504183209436920774696965578969530326251222955474975185282969542342785503824345468278424850230792977672839947246971859239723242462287310258727356455653921711735549053786434561912803695151279530438475608572192667303846293684905401350070829109885097618963574179310820928281515047844653000385327368737372876251833626083023707413540811621642351342571732308164854221799427833409778673966401872085630133754002074482495519776098275164869453181443254416968043448482805282121672120869933010997874954410885776752960802195501736198553555805745788252124589508298482770344237150601075093865116433308274667765889586468517211092088370459183549844521532834983260158714751429293746913009471453548176859736040913684126057027944378276417996155392855076442970859787457157419673639728025534539413757073708515868668952747247046950649235885637189680014727676819626476725121337332486820270805844815813656824735415182521231004102248089195290866164801968510353478753993555454557417382560726890593761254729323051955329708317783977671801604764562177766604964762439091387730982661339399023955966326207631273224350367612119974700166047254362671558121512396793310742648251977291740262404116525213125641071524327540598538128586146654910883267797654124277249419731578825071781056665521102010851427005283659620360213332836707783949900644206897779215211999075926120153693311666963134238090615455470291245139302498016269302117239775220385953717608210320222842403307138291355800306792582835781244953671697647299424969961053675124773852750558145083414230723393975264557143704161826681494992367290282218368483065752928715258290541609571828621054498265754199579283503566131970417601028953318830242175626901308453740868092877130108789486624068902341550425544262044339056053112034403923352665521201506620443466133021204817188239064750746479558464840758046196460448117745241433999615838052990399799551465243866685913847081821313989670887050951823214223685590967866970773975815708023957535293458999526766091735875480000665796303345208154775308774074406234365295898948759001161525770954255112680307303520601891092612885739532459865774618777408491806644664335239271302033222447607081814023952076242865595351557013989560709109752095823401794840900445404252880912512601472594394144026333811167003480751940132140765306930395809089918105973205254587992421810525007089121061078757660889279389219490166184827116746525814534550593793308970713921873677599576436799661739022785148340960577222256032675836295449254476814416980632297379054738422388639211261257579146365191604148266588069604860451682676067226263185382494777021215804299884868557422233739247277751907846431450257083806771106047996646581289659146394227508690086619381345521310034668077584369830096629481158958981971540709838541322931604350645441131708151885570918631402473170946692388890991139867066685268286537566332223568989608127414746851196245441099798834525491296419835558647070261593624109739389085911497886846238160243019627443875731695024067757876765624405668980661394971606647533280063951787590660068009087030270588599700936530538364888418108307875087558182939725519183783991256493939683152928773415614297581906234414333597998382276388831733101371282350484051819115625667435979606801605832089007768132762400453245565220076342160227669008384780976221761898215345395582831433892964019910367671871090220945946469596906531786325548549372581872121874690703631550009320578134753062178266161544322016475067554950350671670372253170014876405425227851932968792484706975292954523985825237002005194661566950121065048826382942286901749064263711571356461912326337582318461403155640624817578514447191846599947250152723447227013895501408281730481968698782739198779993983171726564249537290435990971241464569545884694940652148475266582031794023529732303278956730715336792829985785930723880669606625114652203865462707435981722355937607752693128850316788552636562744650091225010733189888851376669027516358719891118922565872509245725066943191430315534454917922044603080526893866359105036463907320615671433716747496984820984679575672985798793839327396831281705459433011332757077132499831934947897229033993074686311526085586027290456342345968922761277059064949904543296788757739981754317578236767857487987231633775477006054462445945189068500519341632195082502275766530796553655368403950447572927086622490723573038693562758896972854362277145189600556179177569512419585729076193049204471347977039335448245757927209072701584141064443276007635732339796736722681816086672867996691622512789124459186413401528756964391423643074513531399585315107700582212258707980730015122829819659072725843979133569138720413560044874809655044472784042851249280652533331233681890459028384432792863243960181315989715596202806857229206518294826474186778364011399914763318049141950076607182248172690688438005212296531399428812650546833204225535605940570026615290254308174481356850528954193858450167702223135530869065027425427514428080179176061295756051078020640429932544963312235860107800124305825343357558015837501327164762630202076425756463725100931082162675882043749892085549403573565359342115645392204081163929324628054960291480123532225801983466379292232228902684205028977873199967696027787130063393960743820394753191113857313542825515619811801101923295674926805181557512511046918402319284337708558538179199933447571738090501342802109967365054211615944626203454699569642291694094751066892382256548110286655960447618424576867606171656103217537627122951364766922942180438890152978319223895848800821132896503197579584540369752818317607020464842072672186076274420216102609755488652555375834511318452453044185981659945266141936373124266773056898549885160619504433712106691830662016469419443586507476813789933083100199337181297678353818700184877280005828013422303284773340010189106085286036614639616844854655958582602288525613202777808056162798234624801418077407761633405920038584356024205988320019378825605727359268134931121888160070643835823533905362540667085374398300429997545499948343409982728826578232463242634272503652751077206805451901779995576227757032841539278843103330159699953333665618895085087833497750359111919369683010809545098948960009204048362123160206852348509024317720473626734340423862828338660091098576771366688287591975007870981525029303517053564286263274296854843110824792349049353905291503869487562491615196594108430247584622569689031547045480073727391972445659432669665114457422485088289283001533454641145356260475525288381200079828537493233979550632566579545800717288944393055369558396297427276747648144183701693556850306466511759332047323128968832467186656372652191133476852017857084310012916570109749398470540913238446727834301707153190875837653863399037370182379087604825593029177049413710698900843681997175110852213161669979344776389547607365670857638749701855541835060026631826343800882356614345184217683604242032023352051076674125222178169262177993590526453628382985284369677035058559181263824726801798595838943657269159717962753977099481036732625594099001704032653919575050222351793738880314572641905910542579475340421235073152463720645199920178419647862150506189294342451770682114890267061933923770014057378829132155885035956847060420146324902686213512546364971357772274175915702780649392982736087635568647464162704819490590521221999225557364559158941663988666259873881024536203927630985044165172513215976584198746512336997973125699801723432269802668638847756645973082412672598818204189312239347849510854249948279519196482880886177906191404718364483119691136128230384043100238857885923484750168103255021911741266160791458287869677518594611869628658995419217528000540268506424064000859904756477673408204040596623464981642457427801419832676377622359237940101958459898229982339890860584105758138649887034236982146188213306078614709044656766397933101488921439474323459435561543801525073898029978957268736060090725574303467177937655460010792309409879867897392156139955133007404655783227746374697209947535614481080463033484906714086771443256583829447992816072047874812849290388947250239048087064066134276171137595071252083581604011536370658876650795330001703444905935857404915129431320876699916314053052354568335434393697161121074966932211257339055144743202199094550842930357861997350143515080874764159456042847471860474556850945229637315116823008260780226578794839082336717704935912804984715210999583373067189227841753380219161910119414655885737687763762045541787659551718335425110127633249512504659495846739034717139986308372464320109805172959476745464323827965188894958073019787317689257283001330484013614536815718492936626529514426013426730703944164581508881423501081489000952071517202034374659817745541334997484367001188841668941421702944633726033626316405868853142832409010445775430486250212308531139467626307026077995847810920526968724614579889295084922357222455143641580627021489760841587846672005153606083724967940524344935487126434118999962354568934100486133415177748738554638934573637250447869495047692304945502709730959237548687470889789778527732660423673280473673439258199257352888712922301127007171902065484891614022940178929033878421845782151959517577687972762966609170402591357108494291671827040617491503672309224109851638042085474724858680618757290348078514391847217719515108314197485906300122835617433547725080840245036719504968058941249260200820638085041602013851323782255615565194302079425768341780135757062904147855828640135294289080135218279327543885841988827458852741167848499032669536495977580019715704471824842422267321442129733590231852937302279405008785704384713121929952922419424375070273702842643177263577306748461831251671949554668014485072373266596610623641453339575266002055875300125427067579733043926917778649732326801222470730635966819092771851257670400815560221743416872834700395470779835223528873825098113558326734151362398547856792945982526679510667307179558831760566148933285118467521341781996444790671756428875653777008686928174759839884689068355775618536209593042600425626773321323266851162083578482958089691768644076059196889959990875818724026239210716137598253451641362891266462928468962861596863358694989044237287883171972660603062276914947838675592994141328285884346492568333070909644912666421189493803460536160312682810907755926979811559533347152846289591967798715473255489958422619889606889064201664094333046752812113296082383301909420723185153918193724065745245557548706591889777734917592442133935420147016760911681977823812801264441020678726863194333754215991116326207635015833670038602111672470706334940424169682992928081311797368851650229126700661735849102923312676886255027405510470729097613222563037058387299765214118762050144648484612400922401958645523635817654355695301869161119232906909237751476612663375971746137575495493062349284464074755158635653306898407708901509169829026145877037697339357584351775897469907644585190556279793219075295556018725432147515119864511326348873769909183692464772660458414208403662769974627920704605967766248355079342003379798921618530771748990997386235507564133133627235743326486247277839989637927694102277069999958600536356092799695520329867526064255470701117104314371250241976676798636856452965735622930353159006540972841172529631775640406800105387872472137725527505108886533876007992257137578172392467125375463470275508322182271947729799988049650195564644569218255734585508459872481865975826185017015724954400947535617907919060068987026930412413958939931845891927071778251539138147629684297058277404155645643206441295375786288365356180381456298723463291014272381181613608472133111790759672107424379790769557846564958658891583376979275820614497329964125850742759721668044458028992776127161420408308902524739054551329671701500410244652221188491904034218154852760723450307575748103696772862406210172313004303257360864407995759821802675303590695250974692359927348573775872547952509376449703503806956673632927523024647509558692911905302156179587915564151144569704939258305348151139008182427445602097622074418769695388883595648471144127313632107678167358717672137845076926409133631627580772631379695681169067367202516517089549520180869124357952621818048526142708941797173131521533319859793784784917089843865913066348454035968675116788797786614332668440244472662559010857434856282767702571835219665353045678316692812436311496613957651546995688526181355909557539906822600280964786312667603269787097120792071469604147699116788897403581051381903865074199205721939491327397117328553079414103103388161421919462406824397150458400300734570307647690863126270389375942352592915107452730300313591188395295547965918985584950347172749135724200148127725128682502531876767900132279376623513806366717674468043015657853171547967524268673009545535587269247736644635983317094666301862623657550721514277518962125571602562222641270268614168489699809705301431351629964465124962315176317265720650335524071084625448344771455824302634824197175797981267940193649008473791684635760846130108918632736342718647279081984215818414479323254325634906480677719869626910003209437712748863719649299985427555271049033875591119118967683568587178087376143007968605810270086792910441871553573220895794040693363889310915086390029214173885023481133948239476134578333820165571690756587308214255535634249443369141320128850301402449801655236889790744887668685195714123446120417558718993164833567669215790932285388545620066039121639896189280114773646281957082278086902151260221590078383225879895170179284744636280837477936298202101396058959933235231211451784231168887068809625772197871671621754597638479420343058776671551490694246863865023705507031793754664918069632296908687738596835552537969596462036596216486766810871118736975978446756056020343383882008579200927194624105537641758428970558379874871768696036399665854301650564452826888361124080005956059732065220661973091946304262651100862875957048455994023549483050863221681663122881448154864625515000519184921720239910277693522830922842824443627704213111568780900865109815074739089400003513558791021347950801319894220965682012694437624090804998824313668696875963647293117382268727171524547682293537889316767566526794234070645674898016347820984142877971409007452646454161482085519176643337907698069322825206319771290960682218452397777350467663407617483291954208540177451234799390016927437210184840293679469610870235923435077206773885781410265257683783645118696383656647370094747811669210879714343471167286242009651069515241170393531834333267085802215290949915343678756919483364862456348298211698563637946776722682256026434010330538718417397052146937477677790588497393450518285979862499630179672361876468547238561344665773524264753240828821108543840924204312838797682702116841132284898737223020988034237709868280986223184110545258286191045117319927464144971501664069820140277541411993688260655321812514258090442488463919048588464024086673155490434083447458919168477732923709439897849573165487540037175712224637589715133516723749236276897120658354908568037313761534838907292864622700229248938275057370471113762503618481798262158643920104940001170828509378550862514286584454738223156533796884377617285390216560871493287353158826560197567713812293141748106735958187392728193348031235606817692025375253619719413311989436179565926104445416578290396485605180084253579672080079383485745296564287480135740059063470873725095705004549030294791842526884519900677094689124771787332888179538687021101896015419372861516531279205370691183241589276020794580264131505542141461896277823589259115151831797090259726653179796252799861408533509685255626152835853190814743511291800258446951988917803452892401040582539774226717326817515298298478549867983490016668625859819530409282449170232630652267161323778297089383849600188695681360547894178322793274097503999314577755828061990337981443693240119756623109936679308799275440894438254269919789050738198639231713278879881022723644111832407828882408463599253790574911089980873974845031928017780631040111124093910645784152033595248673818114833607432751679719585499159059378753603763520403685640761765579848898049057393219174104165412899011716988088095340952455679168253021085246196757029628979661197032109906448091150161031126708727514024982446914197070876755360335667372981231870951633116334253463136034511793418992492209107527038313111374327340115827308485275518412682975485700848149353953006138148879974189968829089624213911508282685226785309964223507862938817862482928862498626978122337659407408406526234363473058949187819243582030799202776494384311824821755324448615229643600227299273930409561226892121813584048541411316779669629413090374007770885084185114471786956943750376085402743385042845443033456438159654136058896750490303605677872624255310444328688205418122347189116084616062504195986411882681998080475308858413045702216068198310576396316092399447241850914901407305081496332898641244510137122858597628982936524802580256204213728796777514798609835541268374642147581552921434121710312901976947921292371367336028945587060901121573034921255510895305269018311803818850774109245239317141459081698415228604601282841242354700725432531985385890808656594408746143655076233974542863392283987280941467570970686123049147356305108806544207121368698327605718676302767615424069415641334772208453020126178092717508635774641051078303936437735138740689360500941933765197199466733500032425909653661837223370791851304666305631156334879800471553352272383108569804257512087440545998882942477322589250470543806145214186382471851146533274351233651594094485165469751289733943090791981547306105230866343960702891436466755280800858360936387888133982256048453459899241804626869620861437195938284069572466181989142636770972918905490296892559268470978814058197718529564748326345281162503085304176002508975488452864360141540460388783153788525746056380384558165016476364850316334789611342533985718130998771331539449557035615740528664244310358051409910043234410608939203460447588932789411795118991830558859385545363423550348043729614152025843082714408504850354738394876471936987217680535484792925311965637499037284100207961685950869935063986302923076209639194750392185145092937841401207710603529429183747194129352571763309802235302425293607765588587789866816307739822880535855868439684192613397550581445614787387284537800333023670549127879720304526756853714821237929755332335764325597481718262471945996526250286661727082416086745984808405720126404956470024174938358733477893789293170426138787123195101944483530706715326666907986841296783945256277904055094441159517404345106336921618788365482937935196340549106594242858657827551078118340007405361349540043995296807483840945451926812565641433924237654447725472209874233465783897459172871727938918969038896886237059456312238683825922943996486062012635543655065535265457842994372483448242499579545288356391264716564489829045871857549422698820047184630029072870700541924544348919200047532137550587145043628954069251605262559920031634227165867014016161743045604894302339866675641110764056831424696187057224971647343355250316077092746895515050774158894985755396329092969261264063115959674726483087543534420555112724013130896439567647816172376132352499878724479045740313952484446310241541887204582147547090886704971672709202305625869569606440660243116808020228836113293111002803799186068821344075069091852786693560721748465115922435628307830253575203154342529818594871182074648139390273952578055523894730364969365525016552132369800148767752143403815604894408659661753246897374412872539396818176480059700148697572514558643152585777809344675503422927425686075946001970325789541960085785548965423334474749715952867597506361994343769009529514975914383168825268202785193482767452618124932308184759697467237009342042341381767203207310281444863827356058690614822839439112511598690426080265256714870875505588180620941209659788357296583832806211133396759238119039376985511955082406201880984869582467800419524583656898505540419280636772683682843473818403753753843011042723201611016638047522617196232512408012233481402935889705635112405624466406509124151846501407049595930218088178149699884074745771069246028701351259014612806757878802757397395167464030967483218552184493547539709546695292468814579322478294305080945581778499234242928607681214510192936199854273004270183407216335265392423808937822691310871425819199287072336403292545060779416740825984664058029402895655527887973500087882215018952186010756847743867780769218077972612067771423353326436482743722202884753706229509470532613121125423037938693757068739336476612875202173012178170813386128919964250644003005069573596068455251452392414839638533728516412757066629403783679527310178395528590818075061642097183277771618902561431831185252096577248494868162080082297231262016849823993496472451084244477425335278735797179087826316151386647849250661072775342774992668830635356845835066199380680630110475484278144395100268649180714779401837052988590410835890019201675327734516575535818576314874226853555574307779160884646883812524386310462183015045724754909948432931632239696299863948864591346941637101035262707348830217998315555447030571377017234580407366912165730157814644977109850184296331889216601311365917666234379571397005680981228957288016779113995763314073786483917725903430722406067266898125194004506250918009394487494546900009295545427767153452395455337002325938709814886620963098702319990745916911634393779322406479097141866021514458590298775455025974382142578165479941209194582181099195703714370874229851013794525518193665773584944499094517347747563646032618462699653924598298537536584091924947850618932558929096035449045694188589724959161175487815633930042384939104342451623967927025926624789121743489982423215506819347699056519398600962396716920195009161578288219046511948982445764623503901470827245288521433257831354779888530503937621541358494800641208347265714594688943316063786679431848240850138002424308040988751657175271184860620640432448398014233293963148099374386949221850693536581688161469115557314968907019960666237278092514314075496849842850291354537438098170299209702439936227123457622773306704999343565835602162144085352002609773285019629132623492126600010683056749927576914457361228259634759839959066627264471464722831679112164096083403721316755375617616695093986634189472973976720036306323722497851402293997052108086487711510626648799242424810773719056384045003561641192098952650993328909693133945049817758719037894368839970618730226202777702587966041933564876829014983045712228871857532633230107829333431115407098006240883235543493679039929960779925132813306564069221637329289985202994195492292522721263084424839263572739749452721175220713889864233100577112523196208377121995483758145995807091041693418204850231402792004628386998247692274907107619889968587031731962555848970876261256345408573047927926456052661348833267930865997149676653445426289970714013557971322087949339590405822254872501620789611508184589789700690080977524653010746703086508766152997061798736048664225354060321153325366318134375446492825257701999961642210322286741316632797349307928866518356845951320681176110107950505411577880375710436993301016368534894238427793536904413710420866222228701713546243947263749451974502579899467403071018386836080021470923189742561294421578430145476906547202844032398848466080774066853291868663825791473051370754251526228416310395340291081786792661086234918451796327467774402642461203183400061850285459502224363246033857595084896790811337988464041714759324440527570308964056034369161405032306500201116671069119618923318376016811984661176302140893284204212043277956585570937134630133710692561128544730204248678300114017033302157799203853333626944794384313114809561485253287211742627074140826199654455051305127218517052938751726927473647085172548845183612626568832664872881712128860226505664093722228345153580205957493225367301559030909733952266005462448988551305039234771564325120795905371325955408527774650233142955328147602855034053841733805708041256975257410560461958731184575989269354747068286068383058611157778886090227977413352519152648312797709480369879231671277449839750347823566217656907718416062402161107471657369966366144462751067761697428532759216827989585635456990697273594188477041106761489574541613963908312475026559857243705087389781327599422261061549706247286700045598067368983334952565384108713525437440768004750387594279015970893700207379605015725378154094082050825320685437497214550534623229895808706852561163631888354124022132612360123792047621510783014867644509751126456554077513122679416762563228514492864710704068912483372651711212932586646588436536568213656369048991741339779008555563978181870792556167111268048017056147845885293999491062679541921574240703767626759305449894912702600578541745634953908421025964229696386271299013660713744819133796649051689363197385860236516197758416852859405827857854573601265325589278666734744473091968910816542217868808947054459852665143465328644477011060410821144810248518626783173953754878265256215113165791156316497311259741860804741010166605570722350535128055478985454408220002398055739131443012131727159339383519807664032458480915502619620174609424026466139955443446825320673164051497068422142014795268244432227702491764996620476729878197600805667896808719268280100112272254908800840492213750302284609547571908318884993945893571282932628306820154989823846137343151111856463336491486077325948517316698786503310078558039224420668267547948730790731096718517889600781421628491561708902766193840646531201964294908663262211131712282153174473154118538735128476094628927382191654849386737159908345824541969943402475480991956889685939995390737826961237469596887913298240627813994501919967396678431115699546053472722242053432906194547183024249881143287592501740160487160787033541715400888872285767387071707820261392245388790979363078844734289616883049418392971710457409045500610906330346558108145019425053042495305735109080645910305958844787091034729173720959416024232418191919521552227903348932995622639906183571812110124342513247880283665585860792382559504957471353646861015569280560299679052541208240661847997854631956296598453952792585301620387269827451642569005868187029405554306627593121989177876829422918234677153075557365001405544168205213913524320322220259596096328060736380749879693480304438891323202409792019794122153021269237749763294854330108885962999288674741442906147706135477460147279761270970826690980625521910037917262419539458960709786064928033645472894063561966764381085300855427043345883237906219638715785356284505594858465740430487424371974648545374209617866533508790734469649856959161072215844637746355025174601855895014607891405398894179838013434016078863987263467775097099989412942135703161037145616774120875804895923076515981298965910356460593282240013333037566515293985938034119556101911704046750013753104475968547062285269750602857935649644115928733462666882025731211629986147508438825389415607701269744388954332915788142973552809335782178850833769834661193667077728078302375377974314591313603731905154054067549551551369907389637200606341137227080088390347328072940275188039298572350228773414671358892000272865795739990156433514930586472453335592379144978092461502077989953952052604748877413190629460327951793364323292788667397456410955763992544047337665305447955705727525162234613215199500022479332621397756558448153264393580802960079945092768359766268355099435730422246963311757098204763889676333722856711487589176430058879092068100456349147217152128029453850386600963987313679876687324339863500508946766150499986239343483971167631329647867396667038102851766203335928079047205671996498249839917166931839899805423510033204485292029753749867856793670202243226645499620918214645423968747980335293257804587875084768088198482968860919314029877634801534339530261925230813758907006848748982307391015985298265626892136540561447499351807181166020039184764187376014072644093599550719164185756999003938064859864121641671924143543336612021511958346716032085080392478376669812826873752266178698367643559250209794378376262514169260140127998630376681543841504324157300382762995617446600770452894887301324986541862152788775013616108359279173824650741587646721049459880956656970149655379028758034308955363646296072318771485887670542168798824203950328126028464254293954191370259641845473510858742697085978208115796589819617391315369285276490406708503577933689862865885180845850884415309499850645407520281062751290646085414928947958530288218303058756867425439241643721254151000712842847101129540756554933257087007327589811314780451327442908987598364977736297049005648599489497427232954696814337579849876223326347535543198691394749058963314761901314619983089824156574491904050055281560458800438911790697947686089931229990152935071604717222002270739812032142222286873820219854183849008483044717150081660992398397172600968903875735193803162876334297881664769729502122971651467039886773340644175588360126639513269425089701674997080116624286093887430763715689438453104539651343060982570000495813537464762042233721976955534951561452777589313599299442415429780930069798730376966859005498323523378339163353952152134898110093798815654146469886782088209070498308449870673867449117979000324970609100555799563874246695922688024297335212433609254414111321827552991913578620455616001864070664820911421776242718774904784634449387710138381408740915564842674674092902490745876678228916237828820968465670862029326765268637186367670316544317770850531502975449066674236895989643009936733624706429240410332426994550904548448809797337686319842415296419194941225482322513052363870629887631638957092213767831245533641507503194522308332257200910093804785072495421358751437312636864274655622382850632160028849488149478786253355600176460025016763018145257159985726832954062294774686248843024165140680109339759334640552752662348385005713899120111170704699589169591125158373249739608482237637459677632158156736735340434388762216597781144710036426679555028074780092213024065062514862687301938925342870738690588834912283232253225020459493711404470868610431082431672776884528125287439960560584219583752892369287084674320995683226647278307821645568009345328200545488011093659101664643910143125826766611978009402733878359796283932632120013126745450579454518458904983745567783535235554443442142637873299001760553618523167881537326475057977686283866039397355541834193354492204073541801464150029981003203369375354160909821030265202930126206117379972728798484457225585486604104550464566801515339780246547061316594043395006596520354640624398319641684077536902194393381178474967087225729830177904538281534178029432475756547890068214262468530317390868978421401403836767005774996644060183952436336276756899025400311608409747775569548229020225649608107831253056878044966239694094082647842639715792767895131001641147590616852300978742426801338045235942904134243596115170047550164002227075615358549156718302691600902223407072994184591655314953006919981420149949197271698178396239881106894957964505078247798470286640921734277370258283093124093281895282129537798354055054314921049214148397633916332958542346874324794862540204935061894687465884032363950282074092830694273175672863670406426404626298415672976383448059681655427518670675968062160359355897179817614732962491048352137487193468357045702436453075643040347388758784661271119567243613922453614187771205382252641126536344735546204884639466592826636590341275101200006675345861423685008771836550117528408973709259841990206396614125590580607592743142345453065963421703252564588447901992007075733726670260557117986904907405891446809459880993863398593682314752644480316780208014763487552453164200907221425315846390708112707405408505469877141567989762419066246432268774922091510492746732499041099593022393198691260078746633948089328602716331286609395234900319696225264814988516787199490808879583026858664708231510687772448357240202601760623911062106528488877165094216635336015093166717478095344081930547318648522104114754512241658874099583070678367218832537840098974423439337127150185902067661425634672420312792259856261600645022130755030560689631808038281409292436142262605335208958680176597891233779410911262541067690345613333886849959720410035669642850041899840978709889564150354050103964398435851155909902352230775066318332528412339104804904037729849163775419371658275611132095460345374414798058329269052902554765465372141968789093711092803428070351887640404907332521063178268772286614594915999937807764631664974312880123354771466960944356632591787019354755584802027104933658707712027086112324513747094401627853792902286843273027220247444850268731208521166112349777581873222715993415781448900372534979889038777065194499439230760885017115370829750504188546681167181559148251658379047317689626536255291426371402582981693787714131043451547542717110057618275133839419052758692977736201931500859906370978869639892325138075585456029932528671510218293636723295427334150827813267998259100720815441225574389484097174257346016168222132878083863190272528120606917386517668831023778262365011230916750362076951308469055050252241345972149833052219543569333527595401591477301118599775609337406009694279306165358294127759957545683843662447097885586079298948019940860172332307524758839521263835354002116829436698619001950687983750577470599148218590855389654589404997686925128810307016202987128063481776893703761367324663456561044071948060692699682730432247013456546692941675164508667128820514552133485973757521711663878883084773538350860863712066935081107080853022657313616810747348044657449733135673168558960751384022208980228181548630048127837400852786417555442348248509991440611339974006561923906136341629197750082876439556578841307575527922394194081030365182436388840407088079029031281540421785435161183724894713867732499311774110719737541755381002556812392381502968433189258316374447887046780178160134505864563832534017239504407828024086684190850150636635865536778508313802067633416286932280313152753507344933530470668295395406084348411070822941274162975133339069029059920801153841562296979143535471463917337741465946592052013861410475341908945424789110884482481204293585869870568189959293231903943657330444712790112188771539733729757631392271881748789146173296352899473346733494754374264903958461075890691206182352357986530713919107325113478031230272572821871889770872183260981879568814036089087000713555020431002667428328408942926752401106818193893430379877200490570112729814633853474598773839013802719226719392108628855464019818825307369640127834114883665208079703990932432677584334708567323732841067982309147230017692873859091454056515004883336905339949671095141408957636864097162402714859953476132945547731783896709310063570298013289994551844994615129538018867711684489308381571949033510313807195988921793745776669554790228513360577061567509176817102995801299845105686308616322893013661689469412656771796596766913197316465916796702673250849381472330610807728880125757334783399158499709299294433049063049280054052777847697269888962883543141882506641949336071144047183814179498213640955303533897073909779215981590289820372493556609597963448260034234009068352624655262529786720281116033155646799002943063500058093186125863686479631446728439152594799390258994479317712096709616980177016236397059728135043587081831057389002856568124327984822630622672955864170297964961159867936446361483327781770135922989402813332427504584796810110979340511721215620546259385080156295404994348938836790517799850270892906481190657328285551827537992953479171756699884259497513749243607384685581718947214198441614607801267123877277407093176845785459486039708848413559926521448952015358737288392341555267607629519813642352023075613794714331818143887918692093296582603256981960623939175024129054694878650874601817628159121371643264957658145087861522729958162243420215843216398725870070278752970564387075601616283354666833788252433779300254758149615105275365567448988622967415042345388073846052159406525967621903030509577023709129084665389081722239986164134496099643445313015127113675364001542889550648365231974631256232972029899879957102491338035728604633948926162066585049015145443263997872731668998876755075956866472978927067346448010814034734355406719472671397288264829622105442212815649126181143157740555724176589942059659462208479700242355675807251429128132666102852533213408788576393243831827550975513919054488715063105258954877638622240539720339891041001539344382791013855182606301080386329276255924671057255010575264046420886653149539216749421183863116982298596337449096478511776240678508492106318725814348219755410978023503476753707168618797327296632520573188975725873345736287170777584214138557207079644528177420069608646176480134151697234011662247578247067907135433943892094545870747009351960044576171175633492963280106677694383026992887721306731194685652193220315303510584236711918656055158816670026460281783411285614690463758833159786754883501508051362648803772361407534542600830342617890094946564577376358563935420732028564321694697559323073337418541722733384137427622992817970695500542942385194377278336930616575936160215634364581016378606383613600610115167569594580517147189496011605274270883468883617889232818663544689186127009209290658351738557657168949992245332188146646476707993994713545147511700212531309698823050685241017485704986224278123305038978130394561108832516383141601996997029989217718442014892782139190364941527263782699096243726417847857036292327377909184840776864651790095114217516831766595943370694265798060444300925666863162131163653979225525517333226444404479445679627453050049423190882203623050291482314479201819610655316377556485701318072207484887351217815325454489271338963355499870366060867411403827551859240471441283308436488437818580191721398177476891991386881832167553832577026621669700362055904459231980508571921149787244184950727296961383760251325107199409109786804445741600957787596115618145091207953789940199400444097844426372251264042106176708969732958632929216546109801393075011244643156886979666712557294136993805950095781821094138825650510269959952220680452305702219268024306136065187233524731056862446719425025142406142631040847478854338406949167615971268803846942760275187262366727561724781293476000757641463283411354851902434705671284333143990334499907730476404590708337565825728090966503964814327547942733135379183381784511346081480549447858825392911834865564979601346928055797343457453739313025701055300843402818413639882990773677591291704163280495680012485783095468463082914905705853622485261007081920276763134834003567852240496681759495329752737366910074145215352296918443459130891770806812377809893548068478744709130865459854430832781810173856821718007764604274681307552553082625519408704483360495910832811847803188346600147604592711675592353476421292223326756898227947001590976369116826842468294687129612037518695821985908221296872894403219079853144088805461946424885731011320632660439491680286606924642306387523197404013800878133071985000681381509795151492106134573693270854025357046187141107474855154188020954785115886008431718261582993496938570979458006248423163821484645156984701720429908719330103297508988355154918711268999641320631075378316578407540536248141687377273796997166871810193385793546274661847478718092042118000937034000956218704268312569453896344025500579235781196054447058690750227402396837206576137165679503652450737791469029696438894641236177591634733435655723418334993251353447945440362140337550502868434245954698940644296431471588608600702117605682157819530596008817596655237134780382770953394812007320618694589467288410776975434480057487247344726649048219328413997756715666321540175492354893934865898220575153482975645614051299642515160028472539605034562280955859250268878257814338380132079643082622942669079034902427074381793315153517644985321863215431566409942674482027073558228858449085986276873959330030477250243671584713726904142149853533696868007592207550630437445278379466758725055702836030379811867946372638474811869903349279941896613236847632827613771321094478290224014718405505871290148668921500014440966491667044710034933161210831800258595655369044332067379511987039828006641093043838587480534379162144102203749493260276151909901718628099341822705194367572043933522599077674511659468457101011904620097091893022279115231394138947271922945167319903836592208632474246355912173949941031241246985937103416007634776160801522791317829075488180558769459872446295313919992631514281096469942532798993786914558314946608466680323711525541154465823503976184085627846648982726978172550108202751443426904402408774514243074675861311686813716730785177720365529857087649339480994191511465213169571724686040174821303271445304689631733500074500008634369915590699699265908089753500821938913822057471756429444496468570873067278250464135635773839548607128623754788518017684708771767073131380084527217543729484948928319735339950059002632064603789442492782220314616474738793777553134169781150118822535270572968151822836261566921321070548471022835839859141069188784668129681069766368846237524279423287518591798391675706876716305046837346835943040646063361337610868003744025291477687285408462023378919032052085875998588302533076142809567509575496030473417392025061664333368181979831792827803418994757723925070754935970193905026194388288173367350979697673685516436392399432159875553243992978578869230241485828689186142290571950259990885148396565458670101378399943835822558958705983846831987566916001214073065031389427870510292545443724459434233146555593244426498408348987232315768615922233886915070969002772577364056494849043823221066569616781635289793555878158737064790756347702939154865719348807468723124611651488291401767534519867839178218790567847253305347986843732258592402358040061030004542404502535070787547330811559066915945994460047831807891007600862359088939303970538554774076959769840776572158425515413742873836111358211473153283575735942508238781443910317192064598401395131449178539895840021844089360961846466320447121427883512278017009659464500880543842135687310882815722541954626902094898610371349771008178566181329468828863090412425050454182732926883494259911660800119765834928724054317745477448044695872083008844918386265357869177490562693936277783355198774746632417263929496809637495924133980042720588754122997774548646823355900806540105904173095830314697826829530990037646581698754523307661146613286331728715133220622110478761272808553300729591962040348796378204144789271340589620231461280526102025014271457686267241257260351206840540685881326121568824844886091930771967907342322605920037659301892768430579793095248458852411157694428124512939715550437058209815446642666422327185179926495383431031411298283672593472141445101600733994289838017889786696217969086942899458504453182033891141460260233330116904297178956788338775434461273456316147335140503685294634282989586254920205296303560040108129811030613885187964202493173226635461412045216464179287440139652689216616594208565090279924181175055329091326445905493833947350983249612784576494557890171906992667137862369780047784279447830960410019277565734823454425298374251851244216482497584824881517956951218235727226441632197812424029510934915434866921169219102693312683654097073934475373089932994496946523881464390526401243422404118440501806794027926421647653414333162196410308903135334883246278078555451006276676821877704530998865875705750063796838722992103277130523937573903862161284006141672139696176170143736364878859642131008980180813126151779812520268799611174556653361346145920949330702756179908508245164327327480666682304275311828316407608149429115564062504078844551831939011751210807766621141269688090792415535920438154908124601974347241671401824075457517588229399902272065143712793565853076067057707598777863420920020147373505141296804857939584780035549787047336978788827347666338712770684991439239506500257547959238996054342503135717792055760374058173989742966397722696649133637084480460552591619412191490196353456847162860697590667258868264934471497846480978107664028547680829823223612402092065716997499843370830111727935414074333114249026090646296133840734058660840856692918860472489957801570196355703314512461695183228943912826697336919565038146827925106832119077264417913024835603934023815532054638102589016553665632508291699662160825471584462794295453450283676114153389458139493417602656399092895437076199669972807867469104125490783352418910112436279411196973601111511174116970405211180401267156272940439130694236638413401171737606911037075097740469541150980377260847357121699226796455638085344640112226797662924205126839862937288470573019237751671418101478214738199953330460763420535548580264188001118994625977703112118332030543767243883928261614598588246677490919518967414515698615298096296518822152792674475865619161201253872023189940333790156782568229387814924854174593429516212053911907563000003951270734734616993934171420261581955654611360080174698890493648231231923068119763828982886509391591415772001940012892561922118691048730575906825369732416515268381140462501146954494504233793665152488192722056131089400422079547245700113328387593611776305902980933431026515019365211744283347155063557401930319058400553967521654156524020230608680382281946040893939281607482553135274928828161748285730530704309961295397105455247526028399276434901698601445052981036514601586427034144314356881323320831312782442159314591874089164952753883884672838214816245698348462404600514866053889708897055058821241154794958185824471683539381902255504489100809994096788674527653701469431840414617842303851380824036500443627363922388896032772760850512749652033408045004733291956141489553366497082619842907829851068498931327812173416391536971995775903553502108067369279157392743395450955091518449972150542417371466855618753611427716428450849236922176050150809843253191784823560253865059053890046425123676802564252037703597719255690640370263831421785090994357707183880420397601644368156554555268864477046413669497668951523564074708797742838385835785202911660962802247707397733110607992553495679939320011569310272907936834003487127897361994717442752660239381554544295490395455453721660853830943929378101431638822621062085579942091155537345210056839961263194836074553548312017856008592126334915093743278149773194882427245649510081606025281290094911791308762635132813919842322889482227289068282044964922355853330585621412384022934094938009268534795941690697938838913783830760723603402586991380147938640967232268277664927320723976756626047320448446840608234140841703792656306913772664063223530181294127920624316749625368595587378535975586944953300795570190243017921908487065226270945518986426882904744759256659016067629383713715400728379920103403910559689487334568607230381678250550759238183650504636595224924103254727130350262682790823394220944634539358622701980725519604276332700172767250826337135898375981483024172899513580294488077316156941254481323328277909106187392873144313168697055474501291344932338017337250161205881496273342584033776424866820117661496779303891037182883994289346399318532990270026465040255419187328304473023012373194140201848507691981208703428049925452075825064008256092603004674160590362859093483472495227747775857205047113323046818562094263410178364411407178234987848695945286532908280858309682810231267771223813110218841180834404601543335773902188905562619515138149063425050075197199590944862410341394386244121146412144997723532673251175863353124306590541598946256515696520545832415858014055682061413244070131230946746284167239591756941450982290061370770792474742658206461228331522632270825530081175169327652016087081249069340046814063954608765484515340537452019697107532333689227629572575806273699633791885364763662764712094822983918708741091642505152963595821120451312138142746498102167071777022016513410369096873709917835309352245385681181884178600135524295332460767735210055865406356923264646363825653653516217572657080646171359624438633049332822068872632855748090900651354877848132201527712334857654414655244873628834979104921783287348625957148735261596234049793473201587054089410890184759107089130432220994637303710117930811267244446938978519309984884973608721816257867065027051259134322806983808036595474333479593754082418634253960320895540761690075873683949911087551570581468771904739985224716281239639297813946066823284576889627412342132359814820930260522024113146152935196957039276843034645583161947380053317462866562207036520234833054762391116701264683542008855585057408843474177424871670170173558090107476607362082099938495991909161937555495272246149114950621031610383375283351117824480675387078629237655533144390296287971588277308024810722372024424872042632782318632895319199046907265260087976740331795029532949664374832238019765485247892105103310375746207834618835861787773401122255137720350241017733272916227528417422295755514853832509903346425306485104015026098290732560447253505200032844858521365442994740609313045660710827391192851461646271536607272999326688495402037400751197855382873499841164578242415174605202323958778987147687701794152467739053155149518721708945159238538178745683832384979947120857068878745607618905284189781001499521523053909100984410002775013283166801185689326628697291793812894513509876929611942375335133379101559893769798655435568007551996533155614088906880287288979960079258791955547926162325189565141317673048958323934079178428966363363615238533969970946194441928234460098578458583487695974754774610936856421250639912629730195598393735593582633973020390196455363987170662050463723728311156268691519805994067956234707456459952260308781886269142313931322767207686953938628657435700326257301244651886752647579562349807117673378396892632877629364066726104867374606087365019904231353659762377615324652534777390148138049685299275700829653619658720113314820889989334924945546435722540760009791002991374226862787828711385082768740092671465916743127534834490678010847930461478692527048492631767453198782979883363033663292863843898244924861060392108501925383265440098946978188248403408203507388838145485838253118810067716612526537555208703338278254041213327089427022305679948454753336857063196120877717545526469325006979766264351548578146631698227635819101084189193667131714439364626296201866781309964938224190931937277930383005843065006525563454714272863273660291982698935615432304488193958144481394622446898637302541452051790793448316636504899572249654239500022799509741888511573603202728354902909032181644383612103409969889053590394919647521038887345965469844365941441989666097888027488475374765412460223092347749381809926574439297251975408725931880657523846637447744103297509806685924946460587137350146428683184810074475171897247738804057528347891851244782651055383187696942502408201421068348517250877083709020102989413911640146362246557938623520231746061956318118607665434776734216185272364950497148862336560066002883690005417190600409244172219152171983501892829540849470590687551558485077114661522624302787344125755528699352214192166088988183451211370464913522216654583808205530111873832135837558291370068307386281386380131524482495643086202520792128404409319308050426826462873970308524174609142046704737427917611524502161339748244253203127616411183219558034216782251441465193299030002057662441502628488764090053681854927766804701657018865931449890223976273104016783876613802089194354933869573548802338431073686915247813100442125757036408279925062636915721632571190278671133043206626048449368733211668451061004493289867321100236085293789009300703236570164684086607990317005311785483588544815728283530107784364648394866010435345955141941273964343061427414193956852134323826548904987376008686470447283713931702139336498378006637067168821510432795614507397845425927062073489166956409125764073382711191097441668784447281001057628236909069976189383369400098540754172470033405822027979497194340768703092770025001276138483664398702630155549334804839314033429195155379704503290622260528621704573076520259654118589356694212268162630948824665248835612211330382361076151432220069910602599493097814781348340020686537111276460706407127434102282758692406857972127099304317449671971163692073382463787286855013741913307633433816468683192410143850188565752760853338449059198063799981374021276836493810891871178548500397644806209833511976217381405957796317048203682796441724493473806675149402485703577090758035951373487102616825328660154930348964359034563833716278696284353647051617819455538646518942814073358248645659957534334045401976328929890823789468436020020635484499546215603141429501856072973656324213340216313062092674711814363624036744420311263332188204644936237575671645963676174644850671693726439011071824959823777404510465718105050681677902013617870772585954645125121988270477074063711334927706761697549548935613546866280095714445243669894469766061580526503462921812278260583165744186512355651035497363742690105913064734685891818919902209382627626076434779080858029645824341210367457370855953361432002737767964811900649589474186652160107224935405492359980605974511682337821379467953101085906917038168765557571832088107301438476961363068921580169126792839302258892913709046771876327054732969795452864668896351334812677746565940125300096676173214634586479131567243457063278495825740834296421052857169036748357572019803060354116206986005521255212528215465495515013499970232392412552722898986797911975159220153794682424787490730303207208120772941788025314026976724511278731685536534764557867124796977688267803095961713694979119740159491605344318581208010348758498439673210632700547737808676358004992428810062688822209849011836973700540336771968632239375239594282023722839484762472594146375304181723296396027241785978941719184022560155793682352821020741860799772143875716118711833370790410046911029009835511216283400751120529358127018170179684799007412834690545297366462903775597503995688548273053467220012323599341072318513978921876253018352641246902074621330365581508891662409362912214891115158126569819403458871407760858695921420118113137637560519514207499119152194186958147116670611497510548603975157248530701675651662319066874865199903547995007924943887480103163000387179407615297996783067413951824586216870570220373750233988968182217227352147767146774051832865358414882489122480976658651612290843391737259007418003729990802111083731888824959645762708901028117447727133345435763695793434259867391587825387194510851912619516309034461655396419042453686583286506634130539998224232757969194977483824613734925663657009813117885324248246076321122441301762752882210900870652355538971688345686295757499559152978391869478721978135816791461148186991744524917421697011642989826026462623774918754815645750562344208424625246683405004918004753419718444507159078318390697959179496167066634456160297726467208824894617183361658156477352412265342693242303129733611436731392923124827887588951517110863529937041593772279862071900257802728029417540447595919973934389786183451815046682046229335033510780122394019827156800726317798849240522489920094333674787405101429623333899869433614018339988533546690774001778717048150919924871024185023134481699368882606110231872932753425369406275297961100427137858813878274682529030768751875837928834974830966799416657594216276920258933181770203928906879057406964482060182209496199502031423177066407582100255175504741101764222463470256814899803121869121386038815567722363005814402514537205050093249813836879805901639226362536319343729508472293084262499020012686395163138410551957390509468361637593200487337401388514917117162783568975287367185238651333432070554220128075786352592524052866448103264710699021406182316312067814417907653883710355009613558651103082606062786833451143748806242548091036398049854032277557730829991042740613697838554051172999904631923273027174002965230038661261702137319236232261629075315484869938774932693684425411633017985868228842724711319516566775516713350529096850332816871822666650100971363524791669939535276806207032274126474360673995228295446608378203370445419732039257355299491479182282912153950633463477028186857029626074061544959379337668176853674864575380435452755737066439181882542333192089313840602191728382537725022966888605798234987337189126222845735082731796541753968549425328379914968795046843899030879935239345084415102506553604173640234332887553045800458261512159543838725418416193004288062839061865534060985777661358812692353789619143606689320349981283515803180254521308141161574017649731484513687193505167792800034627020214116347061106279224965882946451827327961450110769105052783253769679435381788347106375036148605525599646840570605866509453946741481067053764429773341790606143660827132962191608070322588469875923542819478424692992672116015564315417189256697228270865680793043364903059876388173850340423154915956280367694468359495220307044243334742436053071883695591873866626839382701876587900975318408448272624207541536850276534155541810758508717632326023896102936961990455611208523793751034463705199841659689354108513334825464279557199116403685092563934127517293251128494507273689733235816414363379417167245198084596380200580363013296791492976220982570467439523834850776345622906820641616146679162291567495745997997135322198502622415358729047802779266108604829234566250206991361771760773366926168694679719726587826053629932668447838700106893681231407451076789964362992807964835110521827992353359837405491304002828332404822114479449709279941018512809759008204372339562847932135595098759082140047434074174729034615347655792309697753166350679717841742531130002691504823493764051714739976805294393202708525436986506716034654220875929571307966877156617345254413253099933665424867561709838420603873996659329335467318218778577509922566755136069271051694218915520068553738213583012526907050299302738287816783480430340377539471103183720512578805857127415994612125382614503747268455357009990972525716019818045754171341994845882842748158889322898795362018764208659943871232667035139574851362281150372924477389450625564024706109038232625500422817557273385083798601585621146028042268226701892780050338202081821482065187424060497867145473679263869768789049626828193121484066128515246637429664373887921606667262966661476276473614315476455163431991797182591083103433716365171324321832220400774775112158621193904115326112161969203446767819658048097527279940796312843642878823392628184209081633750615781473769734777911123725490134705065557712775925825374308285777952432424732143398346366392860678386500132188273013495156825369978946913318198431484730376522526456927318442784513094117536394456956784827026515938491421031672674737847059755766190345787547122976195548726561533049875707310923116086614396826301783714582669713639733093311663766401176834518295675777070946445753055029828405262362506825844100252569202393431746558041476662727770374253924724354096864047547706013035028864564983485936554660431813616694280750127172276564565319751642516191948005136114524360780001167574865798640139787587407692243806488192823349412859826985757031849720209966839204627962574280229399854698739674293427543801108349165493069134847009566546392397938134626595516465080258777057719132519866221944324596737208665673452836084683766436432473421543824356702018312886848990254829599918741436736111555678784186289265359726336020552265937781041018432643989154158053483619715540700379744149999735021618462582343144949307787013855912466948004796232204088567532707788381484770019014318109499178234742928630753091503461909461893651009006300804768260490572968388663850133874085055101666382223761260010788078790789684109504175768895312556909512398916665807162587537098969933809340460929189523316822829110035429445609459123516579691170196536922682859625363230058810566708898703146009387584589690695964195085388267393709361639020540722963684754612208482464138042144573506988570207361534655298109151180706324515406937197760168037958811790322184412950366150435233642375769374538349003555051312837871440521683276555951634631598603047699923885558181027827950417229771540648009133266106941129077578124254848874189351905809666800653960841118492020813748775198575152137149470774674708366342908998156245171153330100848023535043611674447608549293874009212869650095560884843619301621279372350265569475513029339287226358128760633894274606857860860798192645496191725874946770568337365368657039649028548718383754254971894852271321584853753733054439864328565124907325372809872588249764172770849934993390487729706025891936802707103483687383302784292141988254524142239975528708339627410101038744574778553067999637749583063508469010063267869594061509621118741819823084665316407978091437025520251983814066419939030361304971788879531433205540843085064879731564720122439633156297135915808598326378985075977325217829484760239173803280603320060601271595850068551428929189070035802428506479437579983437092065743344324139675679850890811020020592474463682694501367228917423435150306140172329961873397989176197178952381563079806091841889314948759123422487017525494893341029231698871426703418689194618463935992656485903259845778044174061966152936780482741084400951515890553279999399805882558640945538716495519372597216510226288104894986891881814998141014322397715940875673277242857393642868943034081180885531308577560291534938840307238340831594319140453026567383534275080779032347550096282663858310567369934437196014380164604067081521506798598004308575761051522855512942042734391438198773781964423610022940577119215487563825971109484972383515804499224734783210524822353540143540196938446728127986185855354321707573883697640340230997354124028311211829106593009310061708804911727398132636519522377363622152566161612289949971781708720010958050063567946116111641827528442305873754026548549733864414301314551889235186000189401830505601672682132481720560709442592869320897443317021001899923217879368394210424192604667583947604849165542325088016689967247327771793813410149071438270866273644747960224359455472949078936458823498838430690213329481113110425833366426889760529358614152169773436232771401273287648765949023399928931138417849257737456935833046325158589723356456897015856549444135255765899582536888652029049793788884675079004551983869869879860009246812769158407081854115411040582250427637349876687814067871187112266355480147625227602989811738220942683368822668284490139244494810798419759868575013126343276066589614983061202623566233142977699588086932682629142697656602594587866013540757876541393258108749011957698023203018419933683919123400309539663545731838799379352114635733083774200777318650696584753352884168788833145095494076391856038442864492391132434298240690517567770865327335317001831174973976744738894142638015306515089307071975953767592732383837546617008803414542715033998092608947238585744921762792499722861623814704360596486055457504525734900863085141918239024899397366178302242582288248995826571309567995517068363107091105486858957217859992525198461639432691665625925838590858125519653703577967718251383859734403079983264911882730394849006072758354120579812799739998704546816467936053825954509402346711229302846079870313018486981655181386363397534565850880388790989152220190434841922774644696327510605187760363330422404225778706915920598454692456676660307301471045064437562406341007552172286402056684291809928506821934048279062273775765643469985589371968209838212701109735392872231166815239087459717681312869707136946821989849253374932601554729522732404498725424878235527514512650404880629450909007845633847340187419368392963401347944631570908230224023896847847824723027641621553814045819873771112285860246469022268329845684573191560081554344763343369325261012162214869823219970935297061807036855459473155921597847965257446066450198357213667302745979731381941139862205092431276837887034685123804898940511562830637274848275051032829730807138708857680766397202271872572063266453907157425747516710575410244278550626518615831141851350677644391859516866302516341400329878434591479997784005409954761318807459756734267208910807720095062218574760516600242697093848324472034243731501717281441231271054264399072460483160607544115931329983680056934729581111632623412510887948564097488649690240238598660038939522528771574190801951798534637708069013377633827392075280417199066089647201815339500942200224785025708636756348306387527111513113013457311445021462901158280817775478255742492159842000832812731884759337323108294017663078449587461857908376936467998866044715875343547533609334917807732590755065768302642647387314004808410849161169112251806791820481203261399940039358731038466123971457930753544938230266643867600121729514354255342820318732148893585062338955810281985804537908399787919372408198937619738406048199714307448732229249549027241677280056967661798208951103738339858027332850924918889556050520149229265647103207818690033419703430508867708717948207064008422534050930154642420382159942988895280409744594423003482151849953939253355489842881512121728459253995773323083031656566259057357487042330667194751975251332264189817758600655510033913310027741267389597420397807757662597419352597820205782759069107764266841044562144075424749944417469873381839011541803846145258434199795998725762487722202305689828371613295230161128353991745992039540175864672918700829646103301870642040622625862599959480485233983934398168456158784749678569657553610501818259349257462311292041043066969014650944071494683964102882881502011986516528907622684590347747120985937616030974341999748819238362674447910272222759054836117908635705945531197947825231849925670368819753191057469028454745777012119284039477481006286614942064629611854498881081365361986708110913233893381622083495055276100307691039810787358425878957830241220245887709650265132500128159264275252412145138895582467003478418182002150000118899585811960791352368026193179420855009680498514271524284195555761964550489166567549985949532403703332712528419595278311870230093026169469709712278812178057309992734205279396263650155717094358473258775463122676033678361565623863807462121136066636735517846393745555366331077868993886330088339595322800225591554675633693152389239372614285722995292469029976389247764821481390127874723321510679721104796561994423753668865772315987037052916235600997067067149609848328907116495358181778970230342023975381782967153221830486416448362235753724400862317404712412742033273101195012576847372531456227141892793107363980592454171810283433979518442151732168994848155082488800354364839617192425380767982538773355054377207509769784869018536430480222069180126475061633876560076202815462283483128372306305621926834852089785070539484402895088761498176231038305108179022418179457658922563286499614341590713092163273416389515961395354695566604780601432141314181307762396142178251381274369928696885518139165180443223278294443525504105125883418796950455765325257904878093275403619240430434180921923490492901962687775805223951170797940083102748038848687345140209570620483212345249311199988459806924365906210834658813444079039965475090426462473876253575409741432839897758226557937282938594587309643189584545498754076870569085271967162115075485214888543937924031247166202580290226704424403537415273474431848160843839429588776824961816744883694936205540110568363744983197950697523254333431425631460553514122915042685513861722956924586222607962975622337976312876401064469895130034649547315620499483524835143724489693605304719352742202808487190758076912782072474862612751760242930699989656455757598606238004889783862761609219268202846268017490699344961290544756693031865004803657510509221317076990321641234778520002178630406483835662065182817213286476162181539502986027147499535849259980573406910274612884608048478433991249630819572677020948682722441614865678214850855143820713824476426785551394918801401498728387072096140222699104315048652269142691688918923969061750030674386109470772181474164523158623045685681713286364563482864808659231177948566698041182858152069002723679204327128015912685381257924635916571454771242227915884267574345740597349868713471891158837341104687223061064763306976447769993028347637207597260730591012200402869187787857288502196860532086772567190600325447883965255760584675880272393231075691319202905075730057341610949268845041570241782283805476265832154562644726288580089259117576185380347421657741349636442458523903983028650648172546288594748607509403218572642317583623231575573087727280148411187527513674678179114386187441360225792192009957609679304705494749229825593884914712789983834412227249242150183896293265980371996550594750214998550854984085328456251835401007783002073192956109500268349844581537090393398568756427018278130818621073996859446463060622861996041652251113191914787116644435894278652508804714947815665640291105730749545848420857348558898992229960058650265470828806086783892944533572832289930001433591812744841985338785602164089498819339676749304902366061853398654626142416934834501364991137952339413945013892292196948894441453438049031507428881508558504841911485253190532627655523807022601071991054609878655473133175744738053187560811843579001662202382834171688757922232455851152463038728368686453389542788021312164788688278244877511371351887478503831815984774823448976988861424151807833063233028919668957315664155398764446224025134117485416471883232343007203564299000531906544537192968472862287852522487259769025223029950301147005275148148167559377303401792023767594412729096211535877368467620287319455625911013526369505764960880644297280083354377718332108799995711449776925983320972762382566680104705982271825105528631008382137487216909814766833110376251356608350588612627755152479693563943480527029515842089968198987057991459485376702545399267748130980253867492042949903008149424344276573506833432855440529210981306663857870439380133089529879084752400513426685270973902331722022776431244296264962737738132620263177232911446832440457781426708985959713343276834853737555734492835160598147595152968681933128594383407253273488236655653516571848235889817968584490739378008559179144700769232687709792682292112316215210888608450517581023018728021089081784724437121936150335603236323076913778168879369961027335270908281148156748787530634359613070979104474382756754206302076762992220807803088081405016982990999013324633446524012813797695463687034875171820634382174251150155273855887063894195067605550921822316512454176761087565388933966939928502998173249158255685388780306495781513662504537637152389918492384054334746666010251932440911807958910523312769092969581234896295317598025011951741006290476795114283702032298455132836762034898355311874815214641199964657590805666522339694621991247417938815005830381205992522442839233470895555976257507846533910959483452674480320512496834724464844574498233009671171938049517731076577716512879987917130964909930323017420967761368730863990096163949539384967428313220788627662391287503359353428533398393611011068395738277164586752541484233835494465293246270345017425676984301644280828532794453504765074960289744248675628263277899586648009982542745806433190941387034876382301822366667065539493622109311163381047166040208180709999881442518607422563919569240883951236503061196936544785423657701164319950328349164327667566540529391134909792782557291905207571014203488890267989907589370150546570300498952029872289537900469812992797368848048523318898169436606023487673053164684054042878881555802736444416900341737987546568652385425731527940866457352375100533176606082166403123206291648620906670337904297445123947685459703693141594485212763602602519067458871632552422862410322762599832054382859084005687931066501465539384956627713407189696834251035783712440113324418503779196970478038041305351588917917789496585957466575244651970889529478929665906419685683134186924234493744738677161086382550915666864489345763798600391763568640569849419518129546946206624854528018137446492805108048502815653910487468411083478002639046535118999172177981655027142640744851997281459047453881710064653317860792146720637728208951503608341639048781107891143095700412120084322650028226471443189832311158861575957490500172764549761780155607787647693387471235311308337294288535875435393449504669883573280314891136780808749481761308337390007034135599851817043233459461489456908663084395652041435752533963744608338950467452960734206969357188242331639190753970277567737969854950666318238463177937366164764615278993062005276769595219824607337165123722198493378448266184639638206185688618001258404388345243253467837630384244498035748873823076021722403627485060418205453999871678712130516616358184464494624966565060916588060772865578137478086802826780689198465152951739727375425892711335680031262152702470744616825022161363549343786687701115864961181667364999269520131427331085190791142606630843460680020621823748978904184919676116433282970428016258174744610444960329030532698844161021973318037344091398843838953807159397570554665745835553508286463605717118141050826743899051530444039419521072688328995076872499216599088683804776774895268862882511945424715715567722937131340042008122510781808667987454129621490732182741507295266502606528881344210454907157592994515413239081427698707131733084992716290818974924581300870962156534823596513790939953787808282446076720934964324758195098647268908357048888481095335006629575673465723804508959553637695603642006588969022287843508965564591510618415513246126057121621485116685571076730916135639545638359345774846206048901077082310848900266046887159674343498770142752365342003644788201065088519808543954887102380064977253523936136417516219270722723346234188419698441372833949900753859388085923896652834249362951283302275660720369518255972108609790487868496192674696088545363584938470731756494762390934142958048229150141155857057533141434420520729643231205921527846573483923656217635019920876614353851808657654130421526786493782530815952850187754882371572001534380932354402313090526812215818892396008241443752295412214620549418028888726843277907729788842952624716563151028644066544213527571344337607383231272322871011229972801888935898902436044645212560663492840984852272108181713211633140583815380263266905574453073221746692161866000676514877029099183704944281090875936189070448330266156479568579615441181143276543133815403636783740978348123790797794507000713091718444517666494156750796973662657095002767725677050888676828183135941932406648975140510873270749025094775452022419392251055916523583526920286489970265706440473008385880025349076686156358605417916964731383859739710094782008739530782035497598589451277276970631795881684191515219666354799105762840169566360098184500510060434918462915336925889486038982741587308782288855601197251053201061864935711228701506512560140814824472229518578151354267467176011719918174793994448527867453724702620553884507721983000719229835738485785941130057348712753991409917425756201912183129652662818886923901428395825947293775820203452014235981808637888514309770718083320676010592111703410705614815069746677216123211076486704515944461167793078955949677903927631753271117610172844457400295664754082483191913081003968473845669957153374883758078239112028170125412981603285945735340750916812600736264706075716909289874768769355549916830784843628258006669429186733880539858827177067448956343522615645040955371421435551367894329629909285119060176927119715658171116560353539594111460494542084800531335220622984971599658020493317457240207899712894393018882687687263866910359116300702639076948254490444910569593317789113413145260470856033924655594110861434536965148059282775965669590561394137654748969470577885579671797670441247722041104037566954539360889610442391596527469722767647250053055455077658620504616457715657785166233466224604027754966194470602643617133798684797963490056726169957657742352436880029831112834880098058120485881976171133953372914810962986383715633723352834369498211660124012061975952337768558756781088483293501945508447868983167384910054996607372921386199524493474572748601188703737542239006852617858577301085689184680435112704242976445249459597814646729658282618260324884108175220278192957347520903995398393801828055332568966279403393280746925712191605463099713361603338678938442137889983554871384818629128340805121945039781595790578138098076157946322149751884126898433946797880427631563334059459944963768831563758698032235165489482418170355786242664623152166366654544941007028864182271394310623642365509818628980153000832511862777909928962393024164597707162517895707461761248494363040469644577490661098257440356474637584231540820043584675919308780226622932797770406843259499961540898006633633462094109076381810203591167771246881990075457888611776549836707062566148809366698585259930037259231123871496069990295169563772928917524776934395171465658228652563131097192814969615134654024285751336538282907711246079361437049975354495531729790749680984234095388584386525457795218004290269375916901962322257433477094247551266252854964959220825728717294854852771363127235137966777883825191244850118127791739010454283087611834032978882334467073300226260536041349840078292642700750268405139714848571678562375529729392560691552298429174174726767079406559696085085638581481109198378372262179821741663307488344045506611664837035861295421340970172850849619920085890703411690123606742147205672237188441629367839402619706441657462129896933001523403949136726683539599958744355444390186320140068723692070661512055790958945916554018462463260432540939373342490420948088087118567426814141777294334159517517617861687731299704556537889765565742877128123754253998882337789184478066993049552670013426884286554564741739673839932627659766833049993408871661071593713133516302163851552912733710294638808340460803428945960418310669970110565115218446203613926616787916792006083488105671149374671253462329248916075536381956376564547479815396712391160334937536540169098819285720747369742896763762324787777162725099077146975943520144133030935458643975993833072827339501030754872457341056287185626398273086296340531580919452769559897887981505486977524908347654784877086861781424931393003609500047011903323332436651838397596609596578705530136435513229580154616967158897718112382075649563098395951806695691838031645921416471689441477097832899351434130899595469891337459390972451844557993061905274787688865320398797301062680744046856431288000218870909888910811791947035665647162844707115048253359658597439303452024678390035085729133519782854675201401152975825504483770880253316604083758050515643074158045279258353053360475170414386434585412554200405185502411379899300665626093173511244186801350882632688913125332115042180431985969582327948677138675121390361470980386813154393059858684498445051862456204573906347959111323954211850412710831591018636612224616441591525040263610353694537456000037663818896025957718028237682293625159329062142206059476666315541528793629137023377208353839235799339704854314785768490298757462565575234430655047622205282629256067051252768183666541939161360474810700435361657443510092726425857614994699574849810340912173605396919061678751878642124600141529423163321972327472847926930214048205277654608638593357766831912019919998442324792389603089110553103984590585092458730250318522123938386280447010501715830139983450420403717228731808053969464765778563156701608064745536998877478531720840010196331109839036670735038779594057894891357127485727192009165715001842031974684309555628796795766487299084519663003466150919640384491869032766910456396965130086223507887047392466247580542623466118001659765500669069387559107519122387818786752259817417868098151593601065236192183834963216922319912463993238651137176757732383025044029438602241460003203624764380110063193478206431091196735185599026580164476786999228542678764689903203073297202513405793489239162606909763368499725421409563574605440926720466796555380431341498929199813379458406120567795946059693748952290264085948332682439099296059511223296719682130386758919546033058042627951703645698554710508518339524905991617212466905985603945827243109946951379356918726691559830892834338344077970927991687292737141380878704392256657394158695644814514712659910643734535412904523570498271911093573195017172620629081042146774078908807885677603422074368633664804314806843802990677063093491912417556545276549625340189575906114693256396411356953909208701976598285751147401705317754206064452347476860000568481581359634860105837213620913689325549491115192451642947548261791324324826470275551880355300611913589391594514292589943744439740753751180058636783136263778725351464439917318391293696611266768036717693624687166803394290595766240417670533328568843017999044137774725876086547277383075783265474656892283395537316709664081033782833491164757897253030867525665127942912703853905525955883164132230918117310081201414861072433423734772830655092817618973107868044363136343948608565705490512973098829352339644122359406357022393628602182765724246416159579163783462734175950981341862258840601757913222020675117077156095944540929103729904316479611379151912360458204153198251393727950830368073423248296775622058883934380088844066661766692546743362932946690626811147498900126841650339641544931715477822825603993313415039649261045112051122443044605242367134508899817160753053358406617974952891023837844248456208119854020621240681279478849323632099489782687603031499677188052779584520568647180232435887225943360059284603598917418209917793244736658047739347454481232382969020844446613606979148367747531585675441610639852822352086400919746864713091132724829328782813484089057845239300684311922396602876621610375836104538218813594046829205488311077887976439836755495149158605484751977844611368961237796151772819710919594030993793264317953886296679759640811222480611660167253403888460479196672884578766287499725861201584735739755292425087222157959968170815941327377497931875581859919055204437326795474884465839577057815597099086927277148912356871485347198906490824732603976589444237299703690674185585582917727112918119778165749554557063114432023231001326740663737796217292970362867709082726088374004334434590100084164296252814569429455977391589946767406194323069663537760453173178816834508667516229382928226028845879969373563018425131812780683202760513802682694775178047035863575544682748685900218607462561575060797191121606993825443507364414824335175620197100622823099697688984157711366265517769023055240120493669353085353062224039399108614375116486678174163237678071365005977693831718381780351444080899278117494601415391870294781074150824482752520855035730650149639676104815365891990950987310479381228315439163752280826008272374310284169976988684099216499190779747312846949285608722553939568305724618531908759986936050210027581076253051973433929786859497536921062481335565333389273268331978545780010466511989455565627555367510900176556203155528506195890103362694141678217835316748858532081720225190162330528424329987902313755630316521473571998873423063910019260878407793240075863047129461275021390935685803764224541107858055356587908617807259448754393823501415711611690180153174729892643685485537037035588568729740910669103477290206678652931953286448918847744908676822316391921488014350457293941890047990310840083336837491301341035165731838195482644378869729550240134285070168109003599362433782861722231000608862587760825662569644022472098794892691619156300296061836844479923683898994452453688919414968276679044871334534475591314072953562438108102449065512593957377266206176944847803917534954449111775444486047458125561273754730425207352413103226728111448385380290030188021994261311180392007448884456255797397408287197911163301112948277779378766118295930041543682704781296066500638122690281627389869784129496213888240789555670774318750440022584185114927366211064048452124566494053752067700170528435444178920905530310543665003519352026052631728704333485655294516838299613088079983048734279303415744555247565076343099789883381352943890490374952039195566039098802949909253985868373155971522616280896577272803727170256134913386859170021641025731150214356517396074819205614831577320823498581850858930626611286556785314340225109340135487240000794903022434760227976784878486998897610147189896869084195759825563726941205853895878028465723059583086569395821872921477216354608822378580248520582220265020450777612973714760172797046113405757035812955351994253903851945440675037384469299752029511765973030833665668225496035730814273559105292205059576269100871827000264326815796381561763336721317072471957771046164460834972463427093004528635138736448876402724076157313485708750059498949863922005111478387290683530706158357705222588595935154689241206642538769494639169423787452214004201883490133563617938836043093479216824894826158660066674604277519550044897099097980824370386697135216968561607947419905161163831572765259872135257395397765363808883934049533427888371629616053773600246873437889516331696273805398201728449618652038097561273568278763835434900687245722314205974167984990015504653628759116081555973937568187543009298500063104745204422864995324914042443138980362539251278578062616805241263986131326320502092885707030999873688766731208261579819910749321122819000353394197683733079130955705058600059504201159451261330957822671784428331573937498616674601542559901554068942363463164788555677252776330671260187117865374127188983027008889158141160592761154164538718837835714839488005417152450645976579152492827369543195221649316195902761693840198987976998002008273817729449206094322404667431753046380385656017911697724453792606323633566967613648751127298548896963775510687264013808246995095123904084826408070516281610916135787093251464961465239314292790215116839577602637020134816782076246940696021278139064995303497883693158896576627497870342005416934794748708709956218938947395111426791553521865683069840850525402307167017155903951178259792325758323908998617187172619241692708722290156341540551284332202935646239669481810326030449303404467515002263355228906581588104802734304833652508045488451618042371316700636897096547695062286349268008401675513222104395769464747689057308478303476386495850104724382421603636448562607398448846638675785497168347279524158493006986097128336036154126651013100380444449357324584334569971320941569319087861984837713113928359233274710647606695331257406792909997895853215800826007875511283219627986137206608537910324468715011727408748690356252570591445686067009654591967159683950434605974149985482268261883615277311935325097890713307133596173579254581159432597685783569364248709394047639942422508060609024555574285512828317029824398231539590540177735873153074799277687209459915827943533309468241097563458558041830787397189237001205238124764315825373628519620489807457387482860968694524056322747746383564492430343836456580809347025981372648594305718824201108827581957792060004979821201086337838756299907683482357912094571695745927308845050288907063690409990443549218781228177685792593531792661893752501554047397581445170996602265027633085221253776027162628451362712299243389010865680179462160047157310013809341883387656942075499458159756251264181306475023853929488066480986555135962300807970989454800946260447168938597984072767396165207816537622246123594630698242632160832200357752246692976902269514343855370371557568607810274464341838269372583972246534177831237358351866714963800408715406760839653292744398763295430196041371133759078237877230299980882073521777500747583512065053540291557768623305157644162765817804644607426174355440323097396358405427875550418574577801589852857320490742245718770836218527556782236817174429957259511598254793243479177586472403801191387755344472909550871319145670586714191257859414748505868427751835079694769294178085772720865879135522686011935550446817270393218724580023536306372260078358310243373645257949881517318830963871615938322643237859573018863621555874829668742566115820528161940171421807249474952483789514336095073010353898060492841923345922886659467222950860296404712827666721196577867326044170985807961827697611231484143657419873464113547369856008983456397517455413441056905918197595348962420497573585345395067863059413742725617794859799068534068465201952069438030663014624492267144808968262939025638962975662052887210982892722825620441363307389582121653499080832166126659239030782766932148037863246588970987825653139245252635824514546971541064273497730863499490131955682587213635749123366569272671124625313116782274831742657849101260781241567127641222091299226655883380129409904576550095709063708622471332230135890939904697141417266731168659139311326037680615842346637865453962163150802622030145851447340188127577205643713303093491616612168308755721217278158061048377086229824253280835830535612873890812328971771126747911151403425513037418847087562357391974664174257150935279151734726197190353555858035974600906366312093918707335677527741002463140484919823064422206709098025020082101876817474488907900600240428976390519621763374585511242818709723850674786938516462350502859644034363666423342524092549853108770162668037489528167831916872543367713568514943963473094248861744325888613767332995062007319700246224836722642318870858725863228769152980414516571289347685456113452303302294786692187426413110389915664856871298129620732200678556489578101164579059364004845102784374636457659020254174433370663832079177548448177065935162113621073829045754219128588355523204248979707842723657913550321591110969446074059358153063551412442977223513157524976322728544416170401633221429392856165116322122610483999248092277119601429140738622754095517858016731508641898522234400673552429159561393189510233757866969344075746937116290556203583767880170943238514019214903862675788554241383907128266561456821360048840632436137130414397079560824799557720700248391264471238079534324463936142643550049931711838778728502335754408494392520793906271376243214564788096171299067753901735938748139174667836101824594707516005146506324681587961909023343961798460784744418908368069861606968831376490623054464395284229163149140991435118340539748505132645950933610332290682590521691246816761527019141561856607442737500273214036340865267035934301114222066912161490666733553070694618975710619672358066752278122073940826963835793817411143323297094509061804321466644557786661857047778423552516358928696360935911057613874206928566216448193698515756247022278009690117827194230513225928718649043139970536991288596470788399736292388300536027914886875683394552927733718848569785811795569102203359379357138987769753580304545864469323830146987418775484195884205265718917822391430881390431267949062812810565202063344051800194277698471854357499939163378494724361677452938350563248718053242709954954310038334906018028798816940406826977591525081152759185551337755605039691417706069694580543002899850089083424382957900745006601323627782163112839185889549587257641028408702658333647356558048501823038435182205101852533251010083139200180961840604154315604129691103447110132994507736070818303432679104688350991080673461506324463416148546944876322655310180513274413318293209440044226871103627581687053969740244169330195169395906494293667678093773898119969895687072200440829146248339092337174614491222446283664564458565690772871659584190594330392301994209808997508873372593147654880219964019360633748066672981543193222217715305175809306773560295402925738677097562860401192400496141314664692499318882706783444415764143074144124893642068583194852646368673367720814773992515286117115817436732089158047028006123114953869042613796705211401594628589436004111890633547497097101000290642037363912971185204196100175653754003252038084564661544375116983691816176733029498452618087300357403936512334454671155649242786362754825499410385726565142003647616529734791830400510715480073511103000600282360941824121094144784885018032694493126717238821483815139224161078059717592098612582114889929448267988649108966005023890689774560712240883339715747194190885889081718100003826227327494682545348364315977033493108903529373430979942618367234646230694633317737279302413285201381042764338837704954345606500215405444832385250510186300145152662560496137721032318794798092238140341891470710934871191068297419592342416919424893538298898159013488814890339001386986020927772559705808430794110014418591687679724495282410541616299020106109999715256994327007004274997414950863576903682277333506246401115077283203999720957044448993894912883984507083326423305350887263065539782554483232432315384634259443255805639039154439775536959060552136071102607027080212126725278976887683973919813944239422275745688537412378222407635671955471451934231812468824828474727103378856131168744517924656404770087525698339252525488398655743110154470658593613238408420761642258303207591682348150458802314566708776444747932036026886031141431939538766346730017861382846753537046005623845169805140067925803473150844829528066637582111442572228387994506646727502953892923992985093184972350635365757351085259457598946179689552039115928517310433174609849667739898785302050422087632597941340357961562990887362317527275142377784483350343029392006150633735167070799868865594266608986821245237871836257371853382807135495725255100617750801300186142829319060217205220449117247069669368215314800172994472162177462090368943741015326866232743941614251727008233834367694003941621736574403337745791132925835562551137711312155883932492853192902662384181296901849366384154560530387965087225995641351935895648858995410828164786067334892692721056711079344490355227756605237883684135280846804542344172729750520660033104788059103025724253752178721367552646889233747209071250796376481497311581241157585458445712979145661189832667050911440495088854524884298341206624076735592584206930227542380640655469761809347400577184255656792237132781915486747897949363898019569030534179389253392677230325341574645573483056096488375914185006885024268721843397972381093296995901660123770740168433197820193804234891229670349691280387108020323400501762526347119769844490883585096138836156771171018152509926823158715309097757265788738360519204062744463828428934198931642593624741951942568894093489529289708445061102934352968767636628825896172108129700493275955201859111376355713240341880091394162024011928093307491827368170030453987813135786554919905867469296492276001691820196851529714702022764762714616098037315670735890386241100690798285639986583118596345933803577664201985751617357546850913163554683623431758809798166653362903701131169441570819037948886702102864837054930475951688786998653179308708071093789309042636269908999810141277377241525746932774137773527115454947361297447318211456476991386025223792514279076055476295180654936923767745870385394480858151645294653183396372903794468811549055257447962684606519086283120544051362458553840694689891262910816834556730480100912410780616403670878278159669149771611631639243926393921519900810004829718473239410610844239907583554129374028749434309437583721102186860721410825652254573900118318456893037598285759543428974784552368653034814667894999928803670911277438013614257846529195978211411011578440706090391662105188768170277529027308312724982694892561908257646838118454301419178422271539839617041869976743556751194024075055432906943551212123217766937487481154232332129735270621461990397810337150292440729951458116574440156121476815826313313070802978937489151644471333795168144964846071418876287086247024446043506555450517678423620636312251236327147842388525570236036637491205793318762229166615824962744124653773454868013586741013940809697117594169839280632216675007861143098490507661498513078352180169385679384801305979337905278925148895051219956141036921992394338873696473330877618224411936647402640300772159253106842695408087016790736810369436552961982776287710491219213817087295543496057870659028118397899243398497143439632139884860094739213771645035895639767452720462669788725853573508997835828434146277151491924230240235118547108741677215173525274287173244574183009892293409518138843392974488070690524104695186364027691343879631050777811166655938451908242759306860474608619592906076131866837446797414331884761760282377076925266804447888703448971802809034013566618418363718380371711236694871386787314203368123953843438525601844041035699054621537533292786476731422661643267709124179047633085706232915540232414276424600887653111158186291969607217604180557506205922735576822091097899174155808267838910084579721101922922739049116152562992169656158919545509100293205195145547139758716767497609257137158219865397553608365398543800998413916330068776797471317516332907380406288106513039540580608513919460901480801720567043743249018967450852087434533318833645853400176514512895145719016443789265630363733827975461738817996754588733349285253393346131452281409061264311852969650886969925660169702428125241055947306524713307092431525555674616928909930642580136746724879154901577415983285378144658145992297931241752726202757111149437246381188428328751571010989167028281003728322827986823647691618392917103541118752637565158061230058547439324376719258862417954754516854069715822267249264411209723261566720531293850339194216641769373900285984100544144691716557127397745145064699542806410886379474760001482703030030149528103321031334197137476587440913465255961809418164600626773945941438893537218270070175473222996591640237498142376939078806281253173075496981036202552490822923828565499094007580028179063563318382316616956456344960501005721821934228575837795550022393497799028643991554509190589020046221912345068753114357228532506334315459404815360001618009370172192905052907576431884658061806652995334070848895490200713813814460712942329944859482021775339099748578860717134364458086328321128169393837413068671059010176853737382295230070364222186229013047957531427773721477413293647510737006868684420266013178920949543083632726762309873556623854204395786949788600378581187458064508631104030108500252196700390609074225879588775667876118290202395555510480748026156684856028745227431861204640134218289383384645389607876911686580515746320270198771254316168539114075240809239390181094416744009614961525108151787720773072363954906991568488273579987537575907293861171491479357200528674013018707964255002409968525923827680321730226454241141816439502764604984830749514973855785182917777586908314952047478182670414149131304100046085739439003356433455242977954923342584749746566225480343088393076627207924538609221324597018223564103493275272485855151225700280209027226683054990767341245655613611973305477529937087393710282970983023076055997374063654968031419034855465305539867447383106857491492426457849191482860218971052156413808567258128488041801744768254434642870229141861886983470534458848110776299420233470265428324534313704859754491449749312537974775280783857080982518763003240758240719670564274207574460586671994141079481791782396278320481843727316656021454576660864037268038437405728124456672146163922895838931936128295670221846296306333048023938400818817544858347558786638583185083272672085998775121829864217791715122391982674653806919143018386754942042183267375332419622370817417825623063291748801000174680613249076385582613415136288658846966315954121285653377685830590237081969117305618570557352510174398693413245315223199676839308908856913905380290366587044641558313665095012033934887498332959121440666267928656575094462376095407331474023908223432577252220697314279494654654593011860808866824056888779897859181079443956120169094842774880467111168826169648189564774735205213646182694118189209520935840533795070507305394513198933950035406926562728919348089217370001701269215849806513763791988166158876799007396946773315953386935987393642052701211356798638453631504329790083719671196725098968272022228921899891114725051993860336404236611331257939376361300557156856534816859861941984938019871929708440396374709572797209275426589340405880748896445230980196419320429157675805937258707111333167229959303053076078326168830547052673643070567411563650253496374165985898278223005414431825438343098241835031553031646672290148666654115666310190609625582502255931213172515062519062030881262127064380269340826590063911865248521700351509007437509622126511106117120553459917797638411061482937027496366789631089898870319098238767152803350927535263087813875483720611504907011318734809482122479967868319427364190432467975822318312788394382086919153130899664288605429601741647049014286049289438900484061608622200182865058410674253432600968847369999071305418899848905958228773461923464574694067944179233583196726366988061265996048043182647989022650362196358750418222964449864901852353826773208719199092782117853345965821284433713730897568862379022818468209245151956182185171957692228878243966917404633443786512768847796543651843069596648044233919079998794839325125177127300666132654687886627345829747719532351450652954128080070359067323826133167306411812788017370481163838203386387282049307390160109132547599678105316922700102875430688953167196234113818652456542952099295513010800653896740487152929583967340649625540865113934551618331070663619243984858468753879570713513824186857516890367290632837024741562282560551501417852167282668296860804750289561787619588570208391353849749828617009968036722051136187879354120754221052362207035248254823423171937861564530711475306044227583920341704653083389649997597984711188462886090566967788821120433916052945940723404082869863647342899209635055280319319422460830565930644436533940758088331216899886721351216068133980504667733202859182899743450958270549357429876922767454741896524714018895339928147125975331408333655702229215203862315081026474477402871761446039527196617205781134599366553909992260867792526482812519074875280753827327472154967208416702949883304688730995897148885687450422168972357742001438139611262812892551893787769977505193404860552840960000525221453571284813987551397337937395987654250948998363762846318781577383262192090446774470739681860791385261742007067597302854770199774274007504360384576079039001045079673975223838927344724163607632481262899439471893999637021092994450845699474153662945443453800074186149046803528685162084638881327804361656620243360617597772748534645859300121800485621993267575147464982591164625418571500429213977887346586231515290433179848677625054707071529155132417366946183834315432464479889498922316802403301929549887385551841884926999092049350043334290993923352527460584270994658504330930049819114244234872055313862999283777509818078130538015494494870920905845228772004732140105975354394476076849221971481501683036888093594292132506543959567798296381626319208982613308458843565290383690125416583248885803846608300394586718927710249414782762053967948933940767208913624206940438337250161887915294342887462403288384243824679016577365108998093597277027742525197288135537523832151074808717238597608299195891295077656113636120204526348894114334252055904978871327124466384036813876116707809425896763876690418754691530594322908841248858363335636759769531264975852098920227789666431920210011772432191199839092909162357442797740591727517482807367922098273105843670350794747850700677799560720341714016802170461561495805383179889217928496403817000854436999217879059604525054947044906746791917228292937848144454582229273287117397691314652133347091801133136854832150372165021431629291161690486032778230123214008575744684430863399881745108063500340983224577890336605810755262676933345528675889868759467714061120606772382270474119474376040661339725765007526406616418488933403995012125068324580281879979593000711382116364060005631368258913994922908085600545781192093468021312374787265673667321698919580740925676591506425627811646843024411541304930434244987509820937819686066358138246706372275841692736326687303790131537094129957372090669513809244879799905499057286716180978036343444167997099528663548592348596112656925349687866543725405374961524173347838741071683543775643215851912073287641616074939300116572825489758025666273572907669112254716394327623149955550067319194804098853698252514180681794316492912179342912158731459158834488120554988476247927941622954858796888206020165600577759019056824446311781327814846579344127277487204051830455868185123276184261158544578865187496468770312815665053248664597287329712398659406935230807199194118536405077736872503355649421946665740700113023779975154020829332170703036612717632625050814102929410181101835788817657971026264382657240474145391261638894180601840421180580460750030715924741638264612871719508800051648539549877593667660053226120026872415170520122026917013784761915267641474117058600130303913701978522485929945946769584382973896337372473733451528709943796105904699542051810956232288649789700262666123493995643059553254312827376889703635691949612000941986177610400119407467833872046313850309562483363340547496088196343735104546124448573223568811846522847163168874932525208622140001514931694303685304358557324487924525889951193161801402947405011410542796922304308709595324491424068892511275600686251014457950029415200419858877034378683799467319382804176314640135175872036118030980488820573856897300608058705998721778173584257248135710575651563058182229366133350142440328590736014789507247908842832683122337178585653557776536211864797518692871398349227577292773493965682449693992911892014738007165313345650209048819394838962417587476303188182623024038571298091931279307568626428323272668058525345148316008248645319791245284866696125006871989110544837227240733301806236249363535687454242662073758838909629308039011843445056073008217616592285927193445879559603897299686173172495064332803200118710917349052712425423356630356559941437102321583076279139069505848523863026555865478755590599578057100738485464021939587311228930433705023625040898556303522661168050229756229705691668080095700507735172903595145583551782212849717973397837755795160823632602227015220791216670568648295591815558772201425416270631899113321372385703659606629865985198350042794992297330570659296261063251602630571777093500167856200220192137192467188427503228257440803728843656189458146831344043241545972577159119824884556811211969903942206821896410837327413554616330727175970826804892226638470145289116551186089964429435722657069180037597097658092097309765544388470361741268284879464106027624841593660456679109282754618620551458818823879103817717428266728317759445238768220768639390675875877716398332790261658478522647795786132970907356210711215970445923742414929655787380947875763960420480792490816972788076081578030676598223116187627010693691140425993195174618548703308994410664760764818489712177961000586276376581584552198564733641242655867489046619144142018046879398392611304608425559176716083014603908058038851887121435342243635030854434475246976989510653431338288576136306418239511743949792663023970811565024326365138937398556451544320082588072290965843754175311333951757745245824686499842774862715755901428816153938473759541166391255886900863598291019872654917318286085878937080157253573159969425088888892343352036866485214894529692141968668987159173902309958409946389759872397184310735075921791500299542724071785442331979279538494676568959405080894179398806545722010207099298251398742218950477321056342063665529769210894726064822506309744247092245414961003778749804904619288438571061360851485903685916451863579752499150469148624455997159181660998078082903833154832502680235778379848734814055822723161990687763762064776723452567548588603677069096339074471623153487097656479737093321305439335302243973686674805585489728724890512082311194407817554741383238016333887505231730691768803014244984858959313577929960470511830034786590936972341286564364001324679446416736170166718444739733651642217260596616176562031575770443398399652299506937995363131870368263175974202892754816858719023877442866984206735064518097211453638099753708914847482670425338118290728394768713494240712662170017156080328033786249710203952676759760959980151753198442202019701424233828541909112792485964390906978893492187486558528475072524491950404213762465197694299931955847502300558902368440438106742685782360902306301692565037673652401369542519984338610304217330560919113525150214218108506253470989879562163218845331465775916286115149024087714753935914154787257601771162480269184060464217279402521300694095417102649430278281148001806367895637872189820266756783903637458666091842534970093097197436573481695413939113700615356176057298451748231125219290842064965537955307998037369536590561984082165701623907482967273483891016626090175078382860010171381477443792066200373796838916733910661958401667873697256635050180845843286039646383579611717778307577744240410247326790607060073382487356322748068020367754213674657374199631026878584519456115894809955348379699057033814548030754379630836131793897078527508292714767791746612687695339535184011644015771095674599822344488374139209626058070314087870987036654943487779641873044055319109528455134694725398903705848789138453611470772280132921887259187310529207265293331341461803865878767848551945331918864183195347094108040249922354883600314079309814597319184110639436411405190685508331837275466063707155180907492870228656758593070956965162942049353962077392198492175875223298335957350189119633341851255144447791814496523668900445623172097038187829818782442701767880657087656204909502709472625747249866733827784266656254324704276341726118845348131246687930371238975457895288239577284907544521807043586279122595611933796293305137864930602178889844196288130887048261402215700241862440847108429089209537612466385573344047094168123893767836303982563099359416046033471411553595788035916032587136749627136350193451991391918492195918027560852657859857524831217734275030289380437612728083040340571563320075043658345094748695243230587136146113458328459251729359084751314940498120750591847436115752257693760122836731378546546802035607871548186815199197468269124635431883556286776903740710759448502612503232232070596671790234913073546824121164738775277137428039968723742223751450647935458537927136178404580368777687556103495037325773078036103474505493130857947524452207861923717004315890928319640936503128959352012930487191641558511956003437053328295511911080235888678803489935559255162735601817822229265225161628078298205340606668424942218964274787585117516548700405260450956602813293803281255368070205041658576157499990477133968682888323809809848593771681128458689748853306590605168142771665945939016466174935407128686791406567541239207816844425675664375428418480422278506949434482755616925695469884617696860496937047475078093574186986130542574726794996403265328428695616610449854800920373872417508995871300303510880255061369296647642770834588793322992756166225341667412615314665918050437079190705235426182854835220658691916529951510112623867796197014961664077296699710172001982078255476683425673597835699593823607356458675185836581936097824801452566208451331028784013561641131073127834994834412165602171737787759589424532346839592055152768925625538199009079745291048029117578140760401820681598101015603815999085248490367610045400395863048796384217112407063033637501382743149623064503264299900524594163769075650955107997453118281407582372698924576094072228177201639709308297397884293404704522014164794699920367421703513802813654507535799686090016706219791927133081727292299461984224481511455442614358804454783627422464892293294456336026801675032587462057413539854872280989292911933862086656089357537388401079154402202030376981706279129257680585913657166801218587061644762838962960042440105042596601008170891739754837062309146938371117797085913213414033849886467080155973028060533029549486677938596617666432327631927085483435910116087625494893928152845310776999970902695117190169236409524196859903837605762983040093621938681095411859024668417659980432492164392663650937239189016852912071190974363831066493332775422401705556080470286964044842873835555898512597410734556748475023505165261548862346257596316042058247192029478302034574224847286658159871202306916355285204426482684219842575138416763492539918579349138280103258707003315819201142742735873232416056082869974951003559420707686911549123474291477684230248947952443677276613450971723171996876537130105088562607679533512216154130227269876541265722084697955548506927416103617698265397916126449227696488773594340876107005052573104605666791682638303844813970408590393239176783787687689488005259104837011271880605542773667321516647248857191085751122408448632085090112393562314385073081747861215783282360009455950145315129776357459248410778643940562607883503681668862638146763011783954343954653503954185969963382293342650600936899815843463759300270014853877100095612219926573139509557845124660670950983793501176428527130453334086761487790637513901148251725068325529521246342662044577889017270556945070635667563923704035404262445226734002049124168744883027679339635167885049669264818627946934546367556347323455839070415608462802600261655096807355107403720709066536964628165941883279393434978900173091481271984285380706202820595276530721434238967580787866022596615778368787012924991756608883373513534397875255818856199923027336335773943584479985446877365119595394035065626968906074748913737036456251344317124609905290896504223975819177561043367886270144903765456705756499656543354572058071689273989432735720449723855385099769010886127958031238474916451436627833811268834112692432626489099426901229250231602268451091404081596985624894737173058185562171323071505395116010568434153865163416690277548186813414112999447612623135038227617566151969820030669613348724238971032423670649319230522988107454379217803989658094976300007279295356821244605017980201320827170509315066488707426802879677554437765427854732331186215300770895802041654184871310303926804889746139176342762238219495889724637726293282736112543885949803902488006849245607323783641445136117777864986620412747664222473999724082477123492458766475285645192745559860231281934703841011518207308050962160554045586166826948719157129275401725651415223566393800397438916064127833499210269507793006891473450013915724927906464249340221749621013796449371609396089108204255797818884103807630057028143722467616383927340185197607073248361870580884458284225835638490236898479856348668742592101735637557716768099216422130964172340285550687393357093176901543558001025370435902500243930134842826573991644897424305459683120454052476589119864604123297086463753558445195365287888727231595306912129149096795227555324591910236127085966472146519535916338688211735302765056878770424850768726922380597899418950168784837286834909541651341183996278256548416222690122177315919808116233096807842656899676048130731462076592160672763904999694537015330822935692093629572374320027386888859918403285624166949553053031286119713509241541871502379197967904236655136710754976044192082391976776391831907608768905575830309052162963058332579540854030001357225655900727526980872527268854869250264602554933766084879427488150016512567174017661959521291631320810243435703395012483046743081204597991162681507180521899647961942960120634082744000859734383473047558976849453288689804697626405920926494574120384670830422515910349629908147127350626359100568101931556043008741312073285865119055254020272548838574084401918231711451326091795933840981501016961591476356510535188425352930197887901617482019248886753200577490967789399572356671837433406716786062397803440736405512128313103146231286869908428425588030107336199891668639959422537910420476887198565300325030546269236569379886374616019879262239555404132831996090290969172691894866559392795448998128875192459478017005041521132452609450636387557575966113833404188405208891777581102850327400828792905881668001584956596343762974597475791293806259296592407387418050824459448150602420311054551831139767900580202460402593962172724908311630842835916005979976317863287556304941471111763570756689583889434592303251818237902912742725602217026196513474497072190796926391037765363521775815055252250259603132809593260519692828719210374798447219378185545519433651813032371687537003803040772214844530647857167494580329199137903208673569078269590283553711921821735469625543661334068195873795447354432482618840892192816983059782546249621841104895494156816905908883773928418903549340338383761690342875694040982985145636914615981000035627555157003803992645338614605421651662601969171967326510228419659270445045503640218930826559625876362582974179981267293578535362987491604495962508195366798660565757884151433697150655927832715159799122743942355635692458820595303930190292871297924726544041088635001147428261806306411335601609437241289389731002540322832148035760596165521951336711136688466370850385401671637628539521021753130670821787671795002825213179621708775798508315581981904379808023790310613221447190791870591668685094050154251912938854154042805101040887624010414645159896640382205226406766344926158513075228853640460624058188308490772382223770133414905177572883833901974926351574536583476473462414007048260555431314234913736949836321851193448933915726063162327399003323313198635270513090816740190252505685527604622058475373096952886991179389346701843933000704603122316546923053755495587622507056206027693138625742973922505118713590415828505208266378111411754319591641040296715168918934488450913460873022268154704907158287973415162050940794889011811483459918095126250781550193548035108801716058779849597477922579364286864913708664283243779087264908685413615413720969311155000488322680471863871064718147796624806679586104087236485265547391259248055227206418762151690007212417350509154877637434721005569573399632101642550707585266160810630608472514726028818544902421740411216551265802151406193392836856310883561271659337481429163416753471612606645769153166580054479996914538340350154791916804959465976975868865577082615908722968997798446557998206007618074073461440674698706639182999260749164336473813302557508715052434588759522498975288164442877768702965637091828882209690000249426398392016685302577991472601182549348933605984431811944195529599821775081430730579024103181312264780853894870869057874521388081197319399465367019851239659141615268087215853060854790184290200715509012378862497658423995796729095102539947717251561790259366694982054180553257437106270939978210280295773170308322580775170137775390035863633591064042995295996309587750253598799704176557440848067923884445378031632052145256235250677814606271002665290808055448058113591946449998278634192927418289899845647651757442645850663428654724932393624095218441827839103747107429565236726167297294327487827718270273568183569425973886063121608260054479943609209771826350606995513049250995925285550850710990161419810834476425386849350182727595124674379231012671491058021814559806062769338278159953148090152804657222879484281304847374823545668376235163823880285537324630202775407046810367531198199052858394223095286389046195526399456965649075203938303860319087807083542552783397702663307780443012924342666350843575605695932640049413899880731190853711190028634346845857905941009399091098638333354232274257363508035853884222077384032635517891132446253971158151263501040302710970970528126242521584956020427155425951398992392151183764360140010489678489412792711818430664874193490498205978502642823042165467639486590810780172386950034488068708076747618758162177230068411047786578628252344495263679237887610497937024418939758529199509660584093936669173131513863404561790747435758585290115251587909619127512669529041410351694045945792969914182644426765719636361522660191425837860901397096932073073283065772569562143856208020182060897818228892301306216217413052499424316573352571828650658083434935014513382072023439965941391581881899993122694186613263728434759545098089950824469301918365437798873667729885524770116354432597415095978432405313523852210761498816563243942299631359231119779585351616042864688393531436962821525852097445948090018356818470492271409151122956917542449151523238553313981985680829820543178300341280300101797506405230647781584031871796480703781308438118652464840471369603311489323744369413136143738087599050858515680222592224771476693197341399557471803852733357102670679947550563682125105774736509708039789966068060622184585858919367179403885996277883120485398679340948251569639520163001679058609554651373564424375917691178190229169074728080922604350694071913391959889238965609322680730205055259283203063533544506803838698054234948302230156783005077875878517900924389307898865081603225038454043646558535414745168215908239476130271662157774398439562265377356796128984309656519163010032626518560644678938745327875943891543972253498147919655432545745084175133746326284477505593527231203102382822803222575940702827281527068156272569082025409026529980013229601383143523300652946424800154227032936329430942510589956271840336428530120874830966171660897446140029369276529433603858617339652277123907383542765957009182671312254382656588618931834168907262466977651563636119511796338581800865806303239935710102350589251159390207576689119764423669759575766750704427572665484507410649066654120691207612796430565401451282699807006952661971341005526550546181951094302806038980479133510805987054028778235343777612016186926689903819180805656688181484026090842767590891962403872413803653798092492932995405304062149827417584676649311452089986437955050749515028529335283193157198693465751711128729129216575031773488998704020474623777337568841880842662299593692600726457366868073256270545820528301957314263741102340657748468069677635968771257337880859708543131650952038042404453810636975858388208663324565803163684202809405768608080629841816285133463385513925851077715226981035826394833738636748886697492622737655962034412220659760067889387098816108215700321091155774475098239886605285341647682605374347626994390440323439141638909487630815241358241305740477438406148937550446011396652244814915799261177810922407439963731536558482888862624658471471871406694900626281544759733671076511366658219208076009346469265733824526728521412144735368860156293621526456515186887147370233209269782593717623400096220246761825816416893773665041975099166498462317163637440994387211402240777963911937540344519601035239691017452138192725686626576322000853322085877687475449773023200513134568085843968740045728591135156274508210743664976770830442978022433682985564972246632549098703404742118932687286133638975018081283554638294883533255197833797359834873024691312014054427315639264185393273260719072654492548099366611918639329085240213903233639134222656846147907773171074321310134101982775101839080446032659696767168107465560237789459132872029198710918640433473026797772925919534391648191291496430595522807276733048715541745811984568898242773248563621596580795754495295970194675953046097369350279379363938421343531217135278382331768966293776937009374591545681553269150491241521320216978716326776825632403799237257053728069196123985031006447374716683098804352136975481555976118570204885027818143474628819588678298809170954153970246706595893729071420318443399561113797747874412402364992772241978918144010982104586324475802694509937874535178584555890564591278453574727376676098828062672444613270940284486039022368055379912977668860503065739660317611180511755459277115667473384317417549036699223525533779056541956959048922069752877093917745502355172583221906809362161761291481960224836478966405139809108259454632638258888556087900819834619362877900744211005679155751901073498093900459419161775956832104547398939308646051895891599353398804097173372516029518051757574463488188347262960707986259648453109038824835754856645708865137721340964393994378119159997566454501428839862716566186694053146682506565199051216035018745610800605816451963818251494665490444307833567165427773840590070717328782070575705297690031042121520357205782973206785968834638520452882377925009145413293844347045697551615310456662851764679150321013925909654199627881476463121808306971036056987294861635127826561597855176852380462888622696110329106890370432559708741068687733816805225176261403464873878780769913091740953446565511245862446858893720970062404390293779248268854895666991768539120389053738091601072461685842722935007492792935112170317761735293510802270315774643883367034698309489418676654135722620968222432841687720040536661957822875648355709200705078461741057072843442348270032827207958445284751408260986921540812333848939851436473902775769050374965330152330561753562100667243083797888449980478237662152497539712816581426160295569036288150329460009676967874580556342809811964685324553180791053021169518019172823642219107543014549901649572880250115917289144831788656443426014991240380238017267858938796631045890132215030077139975857077290048186755852147318950427473151537762410894604360906262376807025491738709807773725854259210884936067457291472618570822875326333532847109076528092658557019832082134887898936137607742930768345904331983645019185450303966260793741978166339429032575657845389700631956895616969843663939456049154240153447070005872148835602311698547201014183352173969093283563948996801982135143499758254576089792389176030377307022367828143907687845592654947043566914149031786436060168043821819328552185525603765914687575526516971744684947403156181840414461390408735409610048174589618572302055384527160108934922717412526519288403127838549837347367128626922058743059449017674243411453736197566227461813745158025539698694282614200906726487923523710760576665110249160111652911377632878080510570211276467232237111086725571660209011950312988976015924917746841244425820004339409535817086094127979773933154186562263919007873241644714529883640976645235817616719314045705575720899505824652043192136518898731890036055259296553467116993191059672737558378527107562069800092919011527994849479284858506599731878585231352272308275018091314911745731921436185809913150348315733930070618557923998346854675395349805834610158191469678810448482536582428084603432978431053811684567304530440144247928859696529446110338328389810065386539047657428170954985218866222353121917436765310978868020241185824670845117128703949844728593198199185067189817743291316179528921165102725856374395895366637453847825364187436714605493503385935105011084126383269624823249772462559011334203749606921497452067341393005458792301427762419332574960310501397164126415309014432849025339633498004317556336058299268919808299407860983088493156452306756179451665306188271172031197777633747094770621640288755748484129230218823724251756970391095023750686356976115171614862550392352464627316096908700548531600080094428749311621603073741746299625201700371644620983388053903094089659102528924926409958359503903893749417544652534967508601207124943499270173125708036028830205759565629927712484674277155021078631925673886442173696313918213422158511473519260725864250763883593840195779412584230639637971709963014336021230714096422941782565732112152210514227880357052735781490359001818000796701906829299159826107651809385383181003280974275101615820615197733921907288496838666450105602239393273469614671775837620209816095828543211707449504060096336873206433411707883460081576386880169188927342132404246344612715595740029715530103843983361601466834191501755703018169169237278919540940196284356096273999006910891291527212884375004185535832944366092249630262524111465592482230235620289815994348669616386468767431771105118592456143308135675479709031460579334145796029228410598771145694489700615230137454166273602356514961076803827543950479827385175529614110392781138693588354916618445995822607695931649216989562601092179148240764832552723572867769695385740035032808405398236117866691325040431756749242994893022486577570279660750685016480520741014410964614176413624602257857642164696080293565702249571664696954724927034420549711813075977070232360384077573374917644946555027298912881960329803565803283287451804010456469019418962238663335891743638131462535404212666739594271636295092166212485910157837840083458883357280642851564693015148268305434866559946654195167248907433608303494695479479325440301099122318609599047393590567437016094650665166217707206712153513767494131706432969427400125143502648256169688554833296446441362719946746914576836246956016226592820898334598673730403001675356236872864489486538743051161458192649288924385236921758484872011330284459909113724933794561500971477402182359971169734679845286125616584371653000170527432426589157753556815359958426285809104911760662388623822870047862739743599975325010277644051396140576583362860747654837326213148247637556424423180609116186758541650573830216560774660563615925856138177456096157394860782910600948101983390295648444166079425309772432453451504082870065180357434513635756879587517676827755933619852860870377336845632150895382023886378021220331890637081191404485874623286961183100662859725265954447277898911777239970963538216400471845332677068387279990577725453592999361918158545455306615270057782870588190591294943043591734520096126931038699030959785910126511113692461367145303371510823688769168526471228949234523451057824539982952441883818896570314935438837793855520326202678692191209032115385114352767588534419253933512896835737989494263696774053528253729455116607028320361022684128566059195228203553274441719802186889453715649709789971106542076984832098606508389478222005436603489244959562308729559303800523173352214081888219500992297518143735796964470437541209388819184452500101411034123445272686913991669710241329653186674511652398907224112394697746378362807989550676706787488053472260247141036807133569837579264195375367523783989301465671610287961885391984257629736427950390065884161916875762516236491758373897021840987242258988710339383315928739986919274101323209913345765019064044474156566917939996711871786436465421852597976993667794100083868321625399249963867916371023976356695121774018774541042870118422279797910110929998809991001227067090081671372441370730221799722063659083838392551493273782684034693481016981784367539743316644740570487230353935715268171099921575187506702506059101722464909250988220403649172348692946020193946028598551701947870111774898443333692746698378741661345509329463162312556986361355380789477508779200123305807780430722395951095055028882543417924063195002822350231539042615831861689193383237215862367322310919423854795984918992073876277633631660618976065436836098372566048759039722817228841011162793202845185850197206725271694797093107878683744176347626043731171711511034000401093662528995139897873453584028484642715884814598538731425068802805757405699383343093936959832560892322819490877301037220721661354063233485467519955100494468927843939007679450133327472798918264098651730816060863515109211778026496988218011839591237757902361265735236293413773536212229560134604967988824667182835583169160223286928996165557445797797530571803943655552072508701569932561482107925357602236344833057160738275474639277695298418167041044875301331461105960609631767425641134067549567666560864569543011502485488775245274623944883274721756974594960380053991421104209868111839866101048802868693371483715373082789312921238796818960812713222448778658068937180175606748728464506171180793179973177391351144953735165733185266623866633488184571266426704062625368037268028238833457843983668093348259530838949541643208613378334070543354303013777490939236879407571293211243640246674768813851855955970010036451677335999573449969634455965946023015601774657547187344560587431907592971255263525817190208131671145758370599775991707879791500210159757099988257089531324156011646443705114446047128242420867590759719228803743869786476305266135049737787538019253108961155376816941539162720845436703806013653893742462955444632911901024504220546774710822193173248708635687720500855487393866971718965374967950546280045202412320217650390383282558176934735820649063881418789550561231699465016151696903261232241924533741883565764349757916493117970330431509989027685119938821587059971017100720006999855111189417597765390626695032562126891579742427699255833288844770241026296841738633680659124565858143475370716341563531135887868752548486902106372202210475661456474275790451304063754669569551952874119960923829517849574036064890873797409726155691006642694851296068848255493684553831838937843649498443280650103054260150743615050331783963458013555934144162615072997214745319932826342648692352653212932826739629393284002087379524643866307597550677713833609516171953183828140286639706627522752735370106448287359586879103376600665736071236349812788792590993304103651696944402193784727349790417892960163297877900444861152202432524408482115197425501623196452098200214817344601086349733754679869938657935469260704164735994117545068670037977050073711749210513821425934601266650055114439481821363286750054619736279595228955651313897671167952102359872292944939014871772619527223996135082777299180296871987222927223501101668669929161550833958424856101826026042817671966560867254127975942861371344293440579447256384205199378327385821729277685958717918366867152373821081256752827294759501588404617015001721700893259517015107761751177399472680675355923652414008599182233975545090207458293386968189933354593655085418384078695550358050937508371440943168780935298227700769231753317376769440523828667478845611017622036621190978372517146943509080309388139132184603493095731959603498367447999004277870309360859817648218096048792750255654901759560898377935260325374803072296499427079440870542878470282278770554423441223078665253665951785955024697767436731776900559562942724990719609700157561402303877002021529701069281795622853357849159025136775943641074179523122215050755261779178914080719574487287832987213987109320554267395355135741569803100364865053246422116313083371853773364485061295017781855161369241049126516302495708326932836965001010899458211548919333750428695843977493854294330810180736189905924758540574808844118272640531412296959797108119931004350630423911362180047249321504332085319372763709229017934515050585855799026058249634847263245054784949338686380753117284478090860097095820370480041385397889997782488638869963887383533875134809295629610525022661277619116574909288403401458562394324234398482390561239599617574326789017687708452082069418884379425405765005925077555470143594725191328512358340228954912194228430470233019348627902631880350726111869892831473189642823439293438963699413377274867099726853954076428056274777302021524737496099619377428157371995186850380427196616455702895103136422434111780193017521578670419875870733378535253869506607556463197999955593322723068980117183080400029792333094821013784757697785843302017586572292278621360188013363601819010363954159431104967913827792195104283601968424099967911432721549153550853809625635868444171886249221094127464522012358193008739871434274954686772265852974776433958963442271680465704275796367074826410629066932295334771860291060147512498130541501890756685346858457228925741381000487449856445577325087545950536085260288415406375609799064483173637056136924534924531627579994389677431898445716305686837343304158158442532096678759651364470119420506358574867167706076145091929345917249504588534175184753617069550960138120955393684571670711090143515927025412728384571642780798277015124751749707124754361229578123117108322773001240805637610439147881605642990023765928841719951797104348630841086797167906111551265097940397393390243041659339619856649071849653079623812940819735360400633378110625455056261470218581087135124204488998960394705244883101684275454732409186327281464492236541947666194766571160906132221049120359111401065926080672035001102497611156297177571769834270235276683934823501869327377043637926969502363249447391847900640709108821864449739372152743303858481487472949969294049702374630479959123697677883478624825332126157638174599894110900592680162926523497291721296617061612326740939142537682197146684000278439156465103218648173466943603750616310803974163159240994126073180164964629290890579538776693429357647199543417356754775784760955976358303926329110146537524521636373235316039339899530643094583003721465824614952444780348027566534189638675673246083534758339853408466055163237578884569326242682387575106321429960991478460438790280480303061507849104994858564732646838623650378177095787194629201149743434573272284364368623881917895363352029977177496863615683433396540271173464849230499673535840499681970361653134077926249099624952022894247863110778049205726857500716227479453364740787298202149876693610993931476608377249601386703755078240485350432669058507633488533072658153455134808206280407244850798078134229310288007826052357246386371765972632002314531467621359120761622322920065834448669813715518114890079737528281729091614728208842466487467403383174351146588922214032598013817620760177969532562416292288530308821542527240089604385755742280994341430366639701302204803423359113871358941328215774157995278328393597446054403484231401245491432540680436691788046216534587379750008148822296472265167490925754107333072350906340235384959800958947415412070234455667639132281635365972385967522733700599063809416360361579636348259010524384089704720696934618213252024404242296263914509534873296396435343096968021439011351454844602191547607144170411422302117697952063287124438327903386029812035713759538822909613427629117307635842199320868906300100399587135765182503368944289028513222285344178562392163833335973732957238398872258245765439583997191538197356333113957160656638268198985766817821714761804169357922680589853760767526516585796803721108824183182105210568157237521323938415685576471582034667044732835217582523146700239680774985006759428481267233721525207279211312284768148692104580454294888604583014943977052153713142027520592884568160031913073899210128685789698695756704248137638157366052971267232237974076667193930214327349311453452520580889211090415838794248395246678383036127955612564768841303052936077555332324038539944731742233022270486265400370295068965797455080210593420171975853065881210180087727793372274802831875466678784093788605027840446993369964536553459729998550705017213277097770486283819780785693568077639439276870351568340448945896400187201765606849632881164954794327666164131508506457473613873354364591544766219271376493919465320705640213050877153500877355159365428405481179189611342770015586330525067419681015733409116603762065805408697998064416153855863951840750207740441992048119828523510282685737178181570659016173077950961572658275621856179257390309195363051624251521521858745074479018916773827382433089755202342339749921858466153939898815089773236867341335426433544455792095231029076698532841936507030691547017914863968441224118122860860942644386359325964465683266293615414128968044935172847391019154291041787635669729980436292462559185649893297598520953351975540607887294852587667187416426577369078586084205371053946845562583549147279360723261249378683469411485107871191643943471881923440355457803031059692623754969001471531089924862039290655245612359943835855432256853592699745872385616887794847689030531730068136481403020914927237507709152723581000022662230266554131276551184178523764661189092042287203304481294910688662807466171619527525645192933128356102101381215035175089457369999417953653569232014234712063103942990834698898146754010817462918919212662717315212980129944563605402484971699923129384618388247707292882159468505998620076131663432556556199749937423112048105204445398291013264003873777020403807808598052189357536248479179440418508208624899195456036470895401093941142065221358945844194847134194742283666959491706206467248488494246614759864973995955172059626757643541270988139902299348851362433027735444197635072759385427051789856142987355305527049125200189740371104275373129043649862043871907936057268217510787115123111725362457004873366358077857076990328308532076042638200275862121668364706372171380384579284969202367400359869310856653932309654790304526334255249488795971724502128630939617024097984013236562929025224203490775356327382502695184843973719576335985541415783340547274933917829627786338347501339465367441531145816941742175447755105087304203710208220653678106026043488376726556578630646699395277399745971903197628955537771020017154232383629653240041220680942010076360229078299827208164311807897782367098319680972357530471308069801592702530119491953247876184172666926817640293523031492056964601983567322464180105791569769738199993524025757029879943147310255364321151546981038938409231884882419248202976404717932270697896693059500541569185457077994408688531920968364702628990251491025708101545498982591766601738686247292061237124376596203505343697904667829185904735897805116469873411143757368300736048855065731664352112487792938506387197561913725118427615519332733055134994154458392226865424274371260218466845046852894568011222157287461001704699494387222886754047985282731435117180385752729971389883483714470102571595296375555999066835088793313889629809625608092070206645981263300664432922809245371913935865274636515793402434949041012427691159906943576135332581961685632154981601820235569156323893572770203842417178232833808026852856027006632236568558199290788484296095475172367466616810767355254684931081819329064791359834364433353739552874072357561241902548474918942023399424046476823066445574438919538109726755402981845844150674380031747400933818592917395650380856538164517350428009030372571853529249429803373228242469782583716754943236701109021897635871985661739759585778064553597509722507627367804947213910232116677724702164396318181240686317326281473554452213983761324008894193609927986050617524574720125592471361913518512703009653242273901841589532630530977278156549688272829032765000392130684527337876697555866800280843516686241551625502581452024367337349744987642975226333853050488583131920698845741456385236653052900056372195495849516503113839620708805831307417448650515206381036809415419591528632908174046982565206043783510089510546851836712624293430692982761290843589675133665153025038215022074139206852926734790145922653883674785300240174576018431426098701447258285795113495870241536100613494524803675448343138156876080101965436309605786777875616966704193898446079258194413925402922791377245826434439448308999598957563090898415999226571000287686465676566304382136971845471812518485281395129764643329369318865988694729570497461620458015183356599661609027070029282339544328702398850426842256253107138366434856314610780674110104753275260605887256224699265933406522007184833639204616921790683984431841883097113152763668790266094596829489340964851726446779786135497592893951699326366371795177784816554345598488076938685516217190776956588119416215752571099056377945392894078162995982446180913992794312397186447853369278916975627867919626993158019744569814870929998535902011500082177549525653788841091268033991506230211276685916773979930596802877637381433235532623473644074673180117961819312244590429945538789842505941704457916079367726815181159293158712884433552982957481923448756551696642393535793983454808207906369151216502844902662024910652717686995594947259695325972039213228696233503881649899817903635058250349522615159983937595040877127752299938540250726582798868105462000860751531493509549633196214111739010391891801181651620747757453677012071103136765461832619009046647518234564583937594161235566749685203652469217412948660437992969913752746090869203293156408367213683189547003394018274024047366064090801829118607150313364208096980736357383525331677628358258471411142277107021387783853439824842584023798282340063394345255191528598860421765520337347637810472958039249241759964097089246827472164535446533423503404493077837839927336557386039219287070049178560213154531220102567582762654141221494331364266135667619975063840292411596514305220653978188908910907398025306868497351185165209436115343128459639365070367780058328955113299101340981505719309928867443417835530580757294197639878931290076348193286703986800217966006162821420984426571690575584823553729430430553480225051741781863696222488265011356951393926759285670212771058900048313474298534034417279790968571117353148782614714896284027672448215348258119771184241628489254571990164956513870000757233284612655494942102084191659409836398727623239353987604273150503383315965027186234174271491045608486427677912381339080291250490955454600331871725080941480961664542992308582517694673357174969733990002749121039180305980103135603988194920165149194641188293873474403082894085532074371733193762850064347972027604984031363833892993811464979314951226575830997719614807100544012383334808314784138897509333873868204856539678338403826213981092878665416147667493525553733895314382418690642461905094282464061270250800703467319289857824345871776272308510804464044269726807652450038970646496756782452273193788948411807093141136930035611872887020977198859067315395725384379868091474799704446228056354456396703158043657486726900802676995519688378389918532915442129138873004391231053360260317067963223987010481292668703247348145587868249951099744708523244769643418905659747799743125367681170665893019705633225071169368460758478284305841485465162365031106582140432655871970405094540175828741127922485218829485800422283733785889662666728317839044745224443494934626394417966907693379361586238118056837674750555309336319180948689623510119788231536095555774771957406935140203711480266911661638100155305796167465509445130826043167256422509945789945415815614720075317666442265086104323466816442214345588726616215784701411510567079190760653219189996570259584603626079956628564348120782061981153404467193988649408494283828608294884759822456036706401501459245191126929134176879742344905722335682962698492680579431559538739429100365169244095660971693038734276028309226709522033677848005845099283952691563073143509706603283080795289616184224081664289444377219400823280023601060742552152545253809588384036535951049159090160505608606430796608695471580108353353667784798255292785677363008519498210794555149317252842347024402883481896005866809538668319665984806839942044061545579415104675978692853417310439456417137024156098828488724793283598487443154935182060432925394866436451083557314273775250071826187428590791965546176509077943485380138760398510503601919091388626650413286265996798441036215959573967079561764499452891210301366671221478984538966654947369775488365617362746167842511269819870599320276343140791474174061410581632476990430973000390653870693286251159434197717130185950053268793804696654668317179400746422715562005481264777672078726461237776052278536418570721744129123309403213818842999392218074464901268895746601864890225653453449761139830499164481800104532455254209483965145057175029389113459644973847162728907332448865661151420117812359038660800709811843852029713514860192485321881720060030476144362089542496992075841501171823606442349406199724845001332023654948708781369796708460880515250483350633305095783046585141900829186115252225521519039198399942573056883582956905509554080897984827211535770981030433522170134164628064224346226136116778142073443797972740062703613050335466524823920656500481573100598786229180545643862729930346233708445961874252650269095723583379031043019475471339519281856252798588612687356619538765528520505015722709351163480056817792302842857892575306324899639489432676560240132893615582255909534072589058116662782130118789405704802646781318407238557328660585274778903366193907871634734994382951403607796409523767745962333105437908885554935347063196015561377392251129794955598184815227509026708338601821131406669800837074649017923959111875142264954674903149430695753773912367454807682415264871049638761730017434769200101467965677103355870865481524349924018905305740943305502717597712496444786533270620171023359256997018375982171056519934686066039751012677685036900097342056728150844946036141317660373558880747256703911166315744657213154500002597152137897564058731880491556482169251733203468270412762456974436744381577681712866506424972412193753398942691506082039988462530423669377422218404122599645560977551168373207365848220623771318020690649087079611105150053089930646528546400484715707310153799702439339139020324897130285180982609179966088002014809282888715400983409096169480657834235202533466980566976537419040039688421979828067463086007523471861718968825375855514602213546008865510356542648368323263337945701124665262792461824961408214748732577784354017882145107395966858071838486059941500880517266954546810581606922514548834935781651645896186132436700814301051859118825406788783537781899797160126490093856993456989236247919255617646025560395181096423069434641792177293066173682762840214064335160276385806881493036297623624513055855591783980470379431444420491854869762245426514584119356307873883807835253500338924873033130392803757908736934043571534616950966636428444668146320027034236635490890029105057522585807234702639140174980767442441224662505310182363761418703951452636773971200157150022754036722654455242382875125130846722771145548533798202567664026897718791395111730339340720489643832283211649100766983252148835437714718803469782640625638306425885417222159790911695173716245966932043043968664895579601616498410294043376137732201235006380448915372701531103241034130972999628618893651076047265446125693275965334998182210093754630723791885591755701743704179818099536367338013775894353996194403201117923162817488689122628729892600360094930407165811530859830423827794306851002354072685045997589427688574112992711951533707057262210128011090669924451862317642561746146406131867398053643857341859809415960053880301048062984009915200517819635024776032553624336650676651478855259452923568406181947123207158192629203375291277382178697003665643544019619058229440568335637566349291979565868520112976554923864324388522496813584989765501639542521734860718023502151131321173646998676628321140763767959125159787067199022723298963407955838540547915266125089503351038145575944697006401212597672167201840992023603583176838659249927212183639300943322616105638768749998497097172222762242388960603647893795480529349492615225052379982497539292659092079327949758793632938012986628521698482038053818063606923973558398899255468940397028774932868092850664606253113074606297447863926443473681042082704119820772620791257545595269499619111010142884334346335882234797766019883881305525316273045610030267565105445333866624237825289851623071788772498240170265100379871305443164968160152023688822585122095921515239922260248162560786379809158551108765967069293162730593642094990334414914371871548624538910527426171601693823992587888831689639110327299080356984500932508280661727681755476766501723783198435925156412765823216002481465780974515372723574939500603403504943566347815963773009454122657289398507263684507085443338551980184411699219506085754734731137494794300045689386589166233175123357475594626025205036525512872103450744709763024630455696731465952896974219784940225142165308080701372749837625841081206967931459268510650593508579448006049688680178314546525264305339296429010993113331905236156005537192594039117104668099820187044550189402203676430618725100275468558065618776321052474802864846241590994360707789565818855016029733179275606899660578958464363903602664084018027239551376806820495539991008421498834896701616902265728571864302832731783309503424495249975791840928833425254734482353840103475346799383211529434540965171461396343702011455230941224765062925148627927404928062684685631099460947260465914358762003479153079131874224099441959715947858662845001329252712248989260972583401784502848547501758760866472441733058639595752006925011048067433062422658068342637598336761169237232083305600496165673943122144749224361295124766693184935534036225431025164004072721840413427784001817546534698772410518759878640430418479359407125112658662374196314677691675470039718433547384697970666337118045905561641994006143774159953965143043313043468022119835297511009166971092161592317202845932487774643971764827563929143583653974370109782923536970158226103333819287476373669550921608783145277183790077565172991975763923246453735286462274882942747759238434847728669599507040015455099783663515855574721915142729185559117475064124639468677871590776162007178488216717566088784134552925594111963231921073017828286303777169862693193493677862449867448145771703262186962735747981178427839883346155593743988679526476130333583028323731983883204574917296109878314944139189980955555759327560280688693659985060038089586394160753096556851388643208498504481954172528554359708785484309284816140326502455969479471115164927273502243630539870754523431426008777996555225980133656110558817768940118377401522317130540448410223176869989784885591429989047277407146206221537410040401115729344027680032495659956647747000037489129135996224642949334264072050971463750284739683149104272524494822440550868882274730635935207239634658295661945100860603087969033461642353823690596778548482622424849445479855403015055070684219841807033271796962922354819686572099020861022722186474959213557397554956300945769582144076801564971380049964053470895378838032113059247583260932079682148686246040487402771704193674724438559395776508519043682128245917878089324475562855699242404985376597410718776605778665124533763598325891579265922292455418086797695447812704185885046544173004402573751947959959038231299597088776687406869966014291506243934776020345077838422098572524023662552406971444430045957132187875966065813393329571230222085433285792546667163614811836618045260438473192731010523218904227428052010957035230489290895609876657099546698632123464728254789630579703102313662038634695393161014578299447957152156562402442784417792695521951780180112528233352194748080995409883514685165250087143491127806983612362894998471047066435401844860842822730543775863415663880168676670441032800603276105321293334308730281273053404484089013909739212268119476129391893585344505959055256451200270597063197510485347512727591595447847641183279642405102903624482037756633674090573267957669485484738198375197880304221058286040514499645927372423311782144398230609878686031824493972877915369860685707949187263000443132762269820570492580077385235960225853695204830010532956681904350492071181781592448136381327206505501122218312282112927273309117663985474506058492085068198928156026258011118843795067670103456363189096966066926223000380365756371213102301345222268793507931632174434267718402679820435141550289337470532168890554801514178540547453874596707126648160449614159750703237415784337134373441223453693044724198502078737924450317608161476424181220095580476654390028127077284716497501244665615336477666273933170449926349304184042787163450033698032762005049477496161864145945016081610780951678415951169288118001923000163734111422536591811335260026580455641314906133706992433844636038072316987320554375431674372395821806295124553214449563507687768634141067421109788827845186555715839500774219237906781708376545103753929143559288982352983570880742984935563481580167973482039176296009307975831101030559998331076493438236377713978194389884771018029977982521246961939622869960716310373748112044246203680704254680454524016031256451996707999063993650298831622203116808265506450576298083638796017463780817823996160645579325008614628687335420885405694936742507963601401034251187219035326644077457364289479287891056160990754642229617973276960949080414711572671184657517555912473386103605714095542759127336104286829462626517602622309721199715269215060011432597595243478756105427853596231725570281948494047339078430831528377558939700008084012971304035035203119391041083823863955490097561738648223736350303125686756768563124998325494940809555671266639563537117299512755664693407186068668478175028270788463555556505425583000784945650048277408278753475092573115961035794613281500484260755722368248859204753573951051691482688589659517980786020166896807283934991758354927281804710937779565913308938774817151573051667452694480750201886436620962088000600302188191945709989020461744128099027897853917715100907697001166617056250768716511714810667494826076067414506261677937317584596858999397937168469564771894899207333961226529010925665829630406077857844100151276993124658924676680123479897519975565650710846304395830981497094144565138709222444483611229088157182486470002921615094111587293705933068570142220567525320236402461249039598876115210946933441113545746642643510499617596600643705315206934474340780015583809437501253792627252084043858677943942269008103331999095884880971773448948775584791449210456212233184188209253596608874378775361818709660096696033240488876210507095651228354553318046237434369405985351589453731435139218921410270509058702419255870907217863958021069034144520190008718312654115079039058190616723369561391727311326110146054767959252990315108962606792239533805452674907496020091643355072483711223047284429943309620340467839537346790492264634228697674156770506477538808834163435740257430181057695353540352751731691678394817246273800778756889030972764161370652521638386585361554080438658957983870455367476668887341819822968834319502989387842131161120132928489173250436561435244846895243649759408325333320170658605712959716813898450241675468144474242603964289203944994295711738491902526883568776586520752594224221391439628069799372369127235668881097615365199745637677958001745880580757758818645708295431391170389800239895123183675993347566837987334304816072738828835477699824014687348803991754224939864181387532536943435777571056570557401273576611570965734820637630139471662221669549043254270023014359638019844428572210702103163273923897328988276700603646945154973450969260699734547983411186827359101040549715821678868498162100575393871727446934618000165269578219305620062103780872301232691161049919638984710506873428937794355128573761336425618618413039383208423246017416321757845192962355728484265122167788698676478486970659725786305772790386750851353915716545738035364591404436986360587397310904974047006675847056257064126721342228579759699422159564497828099909516874512594617642308310208144357344827961643364188171425632579230263980176583371935059874326340083009039564729001585313614655780354248247781649902807394258048611869748961514189314641963044496126061231434661789024422729994990209674216194884729518369262256401833342986873104099002222854347483376096722545116076194179497352720841501652726684504358516772548018259241512785595069343057739551760220346370355698217909160391738351970765702223574565733854142199597309772595029009990610016288590583494993916224379891385379975365482417000363352364746352615038750007253805123801053829934750338931029338830915145584267947009506162281232142595073465678141268397787410964955364616260953725483441355249753165030280032576339529238732846232967243719231253115074962561734086341671467669068010716604030361565374364344147714255974860448273452039627208627881960427334261888412546276774389014507538400151733617126605877764674572783414389220716947649717076181196998271696172783203150533632190539196188977280865183522350880825045753493653870184933519571395503203646331181681987089495551286360369128019334140724712768852411371663879374165935393866392473527868876605157240817457081489700806843498491013720957631405051611282058759569890296139075776033358761732576094942488593495408079089177103448193520149638363178172559078755926263468105473224294920928065082377452456445270382338506188955239330072306162689913696306104870359119581486333611158828808005650330772589062781494457366200055583639495143925622186100081743708544417424677178124970206979843464287543000297698511057034468805859235016571664300848791810511620376422972937437560588449282820556766703650770783053436520450351607186288745556638414405137524969769534252758587613596896411814116277872080787472167265357871988456968833990269390411813599491521140171715402618950134168457678171784524823972083260975192016291698260445183807910060597824436486213257329135053231802647418853701295391607778628837377424910827580793448092728123428111541853440710100641637649781244802059178347641888489609047489936424478817483307628437542422329351212821044416627841015057700466949263491406314012182380700218636430049589262897726700209904098490881403562938847322715601348134868565949437225456890154359703790576711974927576793559731484142263169237918711395898956058127670145819972169545783341359624780995451476664066849068003423819730340878219820131066925897571604258754362737628176831452416672751550990700144251308514628817872230470200086963459923476347090788202252116502250291055401197704970430429904154230266365970311821416491664665839740848078544217250494403564451400727776958993876111755202832052783424930552276217670054681747760893289546254457411112949873683072160933506529618936148507834513383772822651897823024228671298119596907112375081940907018503315691114990083215011003861314720867162991391697744746913026652832460499716086890547828287643113302353721314010952242631500041599904808712219121779810141523682064166234182173021001720042084445906413004064787816363490977085858386812056760993439583697205392367124716143259005627924312247799735632244309223345573410371882551141740944563597446957305668551695613439659752537293188975428049824575796078274886451167692341018450468009571481754860255159785198394000004335631393296345481336386807392474481979480275975074233225934131606025015911919948760135974128421833744422176961192307464065312441532454036860095853672987534074745805174594387582175584700744311954287863060785445528336024475614086843103698268583302584129187597981852939126241655364736255562896388403221974100069002287681037136963685524945688980628061847498950005017401769629319945835506654733797171713005829801490044052576709361241192217922276856905645380032998699385168114443913241163330183852289320348676667841696165274792327727209492498740148238230216678077071842632617653205903216214192037634877117348299983391695509834473874778096379088724586977057873403018394668260440670763860803948890231066081787116421116011305970296616919909615347604391528731228906309810617383470115840226774772976227801912574432572443193476670824107967888430852053970499960088874083703519179009615900953502427420347635084397343492696386374834634198854132726206571162531479996119624955892985538328309712407146516644529217527361692370423375640639540163117568339302288647458035535042349331787413992508465002812754383070553236735251345228696921378941582142073138325462311283163153411245923496196337842403472530851923150369357872634273378543069992352321269029776112387174923877396133148605262444216327850470980091502530284237698421668790399744130387005980298361244935724994930511428790870368432325714829792090550137784829503811081309272598312789122174409279921130927329132046994577473621573716591704665975714220525939943476691972177338081257603409033561172597170919901710076762659530720298674866996998480752278020544367429536945863625878622200153142628091113743025567483139566856604515323246582802103521529143860272554607612667611177357940392285319566653966191938424643021914459765191300460398991718942783573752733034955902456796829194990829166911743803077432426197307764120844646719801060096371406354357656823997554198883723798759536409203063877731282986468458880868917853953501881730194307686298785614016908449342257351731524684842661803411567777452784332445551106397912785901806577300624680549205685645189516701660300515718038703508591165677186908371347775994525063755738230902549628815467641070469280986497043968188193195859793195296872561597144910280115574039483851860013265217572955153276200424959251041757697560832000947713793426555943733205105325158848301185486968634615337648033660033307057718941340866807356268156231172145740415541503314663260863175989750861254007745957585044712607676834889718801069825978982283322711878813523471375912870634574170212285573051186654474263869098999292405495586426702242984174108703968760358193847005354531568781040555781707307474220591558655370918790226304555905250910275589359730375662618297783330024563756090009235181000347414469853805400118910727942463902105169447314535081770788845448538844995580785433688844164708536986266273036100514327085358252606859848676303383905376274548961856388889644226073760296956363681296185617173267761911700360009559534053297251267088234726085427657862689282344988858321575929975513905467261254352021669190009286972984934726229637716953951592699108239007529853191947541771312894241393602246840575298095684299096599106301314815263025250097168608476939619310786824857483968109505563053163918633134125169009008756924736899625538404538339138393564673406376648349348684745375572290050937287464952141128483315181957547528241761470563478659936175926118641075920469895124081940410697092485915052196784068218146463283282895816580361520440735891878904594173020477623255518895358365037720194688769971235191761638815489245446660959770634771804987602247399264153847131107501237752145708113246550623363075067856146573284394051332618900732004409734051774233362098593076687459655423232794190501010347978431348816058179382324959597312551698859694197222466917029875017473695391497504906924485992529041465984825285108640315484572145832314725233514994081598525307823904780755656963974945809630034209600479745861549368092744401217954602301431008314020459429036920892340022305376227096838046909718522770758745230550763847675834692949757464930476498240248252968245993662140354600438858576691472068550035974363265891880674880482604631086997342081964699258159961182048465760698419895875182608833804352701597487934654607974548107815973087000130778160328960840725797071067931272557185413407132128280047563077992265578594153015254563666478205711503059384123051034512440908087153371550635053209481477910203257757388986875304065840327686080906970756094152554244945010679216329817885313170307496785535788211663359263289710986553488917873529470368736590976785614090318155436109656785345673960529275451795644274695985581149329739801703718743251192845980002605616132972161955987514017142036179830659417970238371559002623160232708449527628009964893668343817834434170188953566054999742145055316372165218011254679901960379222800091385634674370078842944625294692363693211982187331598555017786320838861491446083958508944329621883314372081485236729883496416517698354765142099778389872881205358984388546174702880903930315019978767589893580675967208746965098920602755971595319956510535537366237834294833862109689223835287279736732090215275376554083665109412529327544380068396742907416583458407559095581980399092912548756333395999726911409055040256750877352526101029114416276136267106698001993377696329737040142031720939209942345721254400477372357910467527735240078255847692654422348607614104684138535818149125444949013923756425434845932002692095796664932561758357950795036529212252127212074112347078749318181067069658640392775091850754716812733039671144697927586166106937052910706346010220083361019272445222969933578940833033900789401453943919778504737563094211027801711679776471435311774546658251630611931680720601224523979192032631701117023031503127949281899968056110992740085587832246095260035777193488475517108895549002644352052010259968564065058122025027490434103038047883114160278907999303011677664776667367159791622654601121074921745637006577180477483318430066442636524833950749063380002915173237413263538308751033061800184403712645790759945132759745674693339604986650323641700920940070112814217887869572526254575580570165259722713006082180859025394039787403519113936323271841400548493280655731775573810700973798775267758029976536314353572465702775933115122713248926876737337660565242357950684009554035473410464146887647816813918361580368733252043731247767205796636749138071161494769651266410925134019015931805435056788010542442899801514055419027314238917491331275713798270506572051255450947103199146243410013619872524995864840049766700094151123331449884102533156803536647010580804402063244912514567742860079175491017939970537880671204137436163170408290700984060387263972773244139696802904275928237400751695569837768303579439359409763801174168677637632518146954790601185621207301035491302420482662342715578934072668165225354439499012844033691025107594637887868938010142365540525968143755504114418385347557208191540704121693465676160168478832829348448497039053249878862621768640256594385706338525354268772230332800542529246356327601137308921654109258356731631869997809332525414753728476062056977220206270403057394651585516960179578658737117735459140914173709256256501366024595066975046227551888858435024372877140454992445507667380997584238839201547772753675245230223641916883238162760087044459846188958996726212812296811163918215900396216737428676009405222719739715700218227057574696251203713249667963474303861578416019571850460654287726885368798904558647734783680187167756687729774127630143492224623554540032748091946754365004311535746656572448919083612696469579187457303321753072947541387079089544335804110356678251338693403774216703205423567926189562503704691201443552351697688326518806060645248029128420265347647978800341411243483252529583066224224645396062020616444592850551511581868554623143434410109324417330717725589385417337757546545480206676067530665463401293796517390605662361893874867271760790822924150995282770235946038069772527004369492551735846175827381117194837259532800720254188814232339638449317210426684321952200778470816210405953377957473770433296628653304735483385215801039593063138943170478872323124945762675739391049884545280042386751483646777838663151187591923823176764760986606778867028450542980511291678362342540505641235836875831491034068860954655926673868154141277107203391941854847488093065265025324744337506548519551164004561012553735191632065079377149490316040971954498609597043980322648283754399798198395297987607715732754838634551167183517001552291660801844568236672204636110178281766581746064639216625082332771065570227066175342626018843662294976107812723850944964662681807018970061076327715648125438641792306152363741266800074668781585513933431694437506277946192224306261967202818255983644477832787395927648069433692229668424661253276450946534237050598274316059775898280325401510874440936441330081713224095310852353686633202114089078111856527192723447414800694429174691712803208729967304416403769111059002794984461386566307676842531095464955417263024702874412331841891185553054187465220450367867047835948872785864740421040817899669281931501427713460890558910562832633281291621931966555077223073155242858998406034365111433722812298192449595225566713217219540964729159259471112267441904574408684000297334050476757478826038427114487207013530331716739619050218528316421957054488878705894289392356405769378375172974933175821880031548690236376070385319746024522027320077956575335215405912251751975298199327573863334865079554879247123907995777199259007687105261673341047622510434799577071882289338052167479890394791019445400118183680785849109578703775356012855554686366695955244002371712784650097965930439535457498637522031308521481377993039604785517491503554574728885450588002322794407565820032069371345300262124665401004346615614948651591731625433457635518300487613387210304494295943268141819005196696897548885044791854378689530092962684696153658257940346486237404018147294787398176918698186052527520907130262275677531544343609673222545459626230352914513557482747379519302052411157544080908980371857418320939895710646289951506008290828856842695252693829721202225752767365147636228681278961313303059225203392443294310807897645344873209793148804097092328099062211986083623191805021381036009272790727713315552968591365055942906776057361130193223136652700176844528987130221097573839005017705368960069806210796588512548789955741604217076988321100798939677155243823185861084174744613011155879553970273467011288959578124145047991759195346066442701141435960267624080482625564107171157640354059170691928695809308469582606707323588647986633667042241572549555685339293275042184339461672144050703782096090768821314662980338357199194234027607128402269612259581414332271454720305355536509137866960078513425577861365174022311174866828890396605160729208896728256663045885231229277826278159404621624500319214171426195851951634112538323458621077993140790911180527324109608820741606671885568577168563941473423362521073536640251014507325653005320394285095891800545865059957242933360567517855070031569233201253671298713839332513919485060920129664535522493422373363416996171499660174092210617540489574361573934189594929736466241287319491112215291255556710693591267076012019242352724450674846093610213089953981688475342435242094679784558971548677714604342450278722368728060813409586257384026678052011806863861652368655597112089317046749254753235051867246040044414985372235073290636611459513181675919203036971642843096554636948577638601270785673485313616738809742210085984793844254263753462500306822250635161697935792171852777795506952240870937481339808797249219334950997374192408542585651249320226805907568661193673313516785072406357369164624343298693098026846895556776094587419722142978633491255400376587163140675131662879991915012926488287254712541830158226338362908106669606240253844286247462742273667048143894713254479504328554429298529522780324843959350999139165823842881070804797193031277636035913629561474288685223680266310200039990852055138234958202595699287616859583978798520816032128812386582374733135908670850663799089632589213865419154098119889832688582923395206896273779151804884435119902360990722249141057828336191360799472369530883011376090898190034512853470662705487188797651610407037423846550171276940185322321665897272199374103988165342986444590536668001674602720343735770854513248432307101895411629355135140101803575482948159256018900584735714131958062510136882777008103782119146172974378039634334881742126193735690231345279235266940441265292703311018807203862128576557744431320180034511121680596282277793493584737774871747458092304829735688463995134341001253220604327746132089889551981646467215451468345134825064996475933940713596635487338168691940211492712728840593183301032277305579992967297110864189045929878752180468693187476575249968116000389685104598380827102643934768145685959399711483556662434108913560572863719496678136576616473950269234067081394145588650096674705231963648530051897298696463421662978243940505190063719523913890814457234249373322347477136360823996930627379834917200803947567937224559719164505297074352827776402114233146889202036449218921946858342590474226238450675093733167929313053147098316131028342347234526319654060866351801609039808524131388760385679926531235031796049459745820245581093275213363738326335738059914715921833351903986288223611477624873848215410082335960622042534255678880381903979447637452005043543511721849784200050607089762458592721209361944619681703743578900594746456701166002327770800500659987782608235927169322972036332770190735137893373844767239454693606175001122910321339047760579367252662331271707003300351486576528155860687866930392720891691532508397626937312603836790560785316633597136683155164607157690433537948695228947139690999719245924832342062287189024344210954173521295455750284264714988718507030473949253785784040182234060905296859275822385539072316117906249806903870910306994150073028721544047828942692244733521694321665942343515310230032771790759139065295841225646699641669204236364161552600325405549934388578759430969989534974502713282505777740942647858030559984163968793763267777497536005653561681643172127399745361220210092232137103226701727585507013119304962079680594084553270815910322175380958326750573305124961692564910274834238820026351832934370928167713027562930968121927890540921375489753538934376049613136474823851467724459597037888169626852659533221204713461436706437253284114302738776266320548317667526270523476232104087308546286811802725442233230265512066049787565948920289392820921443154938971315272094522632550627991697265857586143032441425647079059803080667371422273734266404168808884334699088050611498709088818827453628202581805192962022773277577867973755894201771197529884657827215835923264562061153352545214346916066483831605571177494182001505672617771226053872905168184837596209627462837257503693328541741093731838842012076900883736929325562070170250971360822171266034856690546859307007771706246359123485793085286450656485900481020207995192588317930942855012328091526216580546610907145540649778372957056151694337887514724902883372638667628603262944265719714535340358043715496762493406353964731880107256089533829003006332813341365522662511522046676829150201462638621255282576650023443681676736339564061634989903250996159813447310873480860868290267834328922305196166702890841677940576211522100672740489351193489975216723089760642875934590277210337221462956533488469636041150388832473006287336745643983816565419382104882515088442870461646745740331458699908936237822960635377360086346820475990355858347693497637849298218808907996270603825581521251869887827106392947245486820691153309068006838743758287209200438141545964149539907216749877109946951767165759022355424332793231717160937075621399077660744117740233161926317157970234195344257989795403191936378666468141173658168397981565498830698070034596894686123565646414496027020172826304068153731463069481069497172500519977839138252450677110460482625522469068606436729412655570964101030481172397993052286271645304126672988075083877456254231372897457267066693373433935716401882670978761525730745411983178529386701619083325805617614128507190204810266688282178089380060963832608280651611765030931621557423607449104582336014769742617344351510009722510514634786454106421615817759291788643802574348131310244052155438639052720921767037735810992881576253887505321143491542027395088140114152242728486680654239429881743380043152745987149566256061925159197006546352099564496003313810147151430614885388184516029279811503952563517310677583619843410729196952252432140884957262886925955223619152311349221610015985674280375024925574633295176597037632571110148458189496458967760099937703185346170793529631968880200684489763247501987385028488247564570156988409362276961854562332069142162380533407003682408344137944536102865552137103008001933159438304360233966318761210340222065870779014251020718091844729346369890288805627492420867897841316983958372514875677238410629889720976215713161458677529859501874398496816044592089613360994114504790175721954903999733379596320077251432855367543468808398196296877996718620804136444188988050529969130943362314696810986793787032873376515060508407820221983614012413008234279243249459305600697388225636567538801621771564997870292949925049296770943973382500369112999531690364043854559465149784270003106134968959476633442863941651316375347268244863383312949619799017694440145155958857340733080081729822727122711858467703609692745673567485288580892671475616917038577572405173296173412463274819812477285152035976620216110486144797078192369151930996983894955346149915050715243567667913158970065337106425691742012072170573478671630912799244815723674509740112722223505153260501390406404078132851335646879871815126947062328356877108099712124093303991764044921449993177646258692545061651656746808213268263129022688719151732063767316865632534392935412523389430966553524890737938426659585929740178125489642388080658623811416466983511168536979307561383572223601554037917283432725055045802187175662315210989875218278839835052245891034247927855141125769862105950550925853636816932642949402869322348939777326898537370178668533947070473213067314066011613623132952010065745055902302455847461989290464121261960302948395957937696454212994308037171978831989338065086909617737190186643952030703222877570241132448090957778774405955999456941909281003769500079081610189742007913090349978588025944625620121708476167039121448902320055777494099611987952273056670177403058854722526726204528129706175870695953048998877106568558742678915098667053048729840700398470640416904242044987478607443100876452538708737569142147683620019856844678863687338909850676552640413249152631811570485905956499262465229566864512173843676476651129919438176974780786724211183666151998323398544788013685340759911444263864388123188104791770707441113575749533898709186086432088614015953571516245751781693932207227284569201477234170905771849270484347783567055952073101965451830231208827451898097669676400941098653026403640419528835382421052146948764815399092359512507999365515204050267958569076977009614662420188759010854188107078339365801242491399050198494800712061098269086232822825775365311811253496537447605539693502042053636751223341012613997773711951030165155272451187339808940324475427793902618191171804159323129461152894566047015546563275943143212818458583291349516746953402992264346643747739371266692953110027911110493070002192402028977768146742664869506184695587295424519462804581921148133602514397905229761924796346310749656353280188604335272765859445100719335609107071268708326996893611244431784117163518859684701139168653746520680342620235194161873185424609536825338702500910101597448443485091238451467945816020140059981727283278303006909686376847078587402428837138944478183970675977553366239116238779542041256020077759017568071308135658521832710445772781922172731351408224695125991671098231815690261039969695734346036384204291327293135547430640130700386839491570488033938807791971285895198253540703773954913822507512855372273521723517027986196825398541398029867519656342454025733067992177163766518138631660853849900022187758576680204141767036833474246895655902143711590400587790945050696382511318455830403464975121111742645014865404338630242999815875740132301554410209741114859656175179455530732046470519166737260467806359296115277204198976986372839745102680480588043735746863420925524008126993933518651783335194685552917611841624271498798529604211610990175413174607245437056577345634880473953977717443747463991484482566166075909232819221142550478564553580514430545109692606651206936772000806467506968006179147688223395548889287782322244104663906258705295182488695454981931424363233317784108413333049348505518922308340780924038035868630179845322401899560636518489468251385295104922589780487553248560121408595574100031125147587625331811623064888241177248462801872409359635579833411186730183381427826732363474630745147629577694452183324700176658668059743795609499178796522416962076180503675546289016876800343776002903965051562103193233532522589219138152461756993702290194766756378416110766992598830851284326788898678542985909212040111847223622184393531123495881370322241261586005889515735147848950336833007755333649023707464749036311396139919384184361076388545912538131533297123264636903547026051530296951857250306646788203121841595379191936987086717795667919767808504001849318079907191200787626215956364846504587020837189331951229486056646484774672815840139356122774718659242140785733737250338337784310553850010186554457636749397908876400253225187833023925903990182876259885594986748238672113066817740972952228854297217579983236540129422682614034608959709474251217583131410608257634808448222809156470418968960152264798435395540588289571947605468954060795441928515938543160830578950893092925159415822697236019294032904266116822296582274191880365613522833469058823363375084479210531815755612621468682442689328628864527875349780039659238581917935906885177574995636223998929579484804551089553819752687348553746754459414439188423459089949467051574153025180484568730814754757182581452454686416456720025520966795304100240919232332043912791085678284769604793599094969435999153438398926570157552020007700787558843589093027284431579788686775454867069029652016771181449508030545199029780249821136891233862259686900192934985807522420161397379539773923553112201636540334372345922639327166159882231979475703916479334347605665768234283307325965917511840855889700111965538370245186641202284875933407064313833789658866418592304516182990864012200159191317007042502461344491778749808541043834926155781653348368549535599678995326295352788499187113848157581479286818809971818239117147153253861869172760442895638516883381445350407296592842294506681771026963961169677470808923532194314676194280872133810074112639878009636433332460567313634335734612535725767699327779494458188403132911654848230991906023075716722718972302338190068276833309124533510861260770848019580214388990658124761739416295121782796581175381847246998589105585002649364020739211017836518149173521815357551111140696012703807671622671402704832397682519171576917399227859732271022032958513727394894758145517040197847190963182878684304337531280616666947696768898875760208497754648185352058768429048263795338656857958653944176835604024279711812470562044094338210631102699860817249811623622001683126734644511390483216925756593966160807434627873088448336806736011274161387129435782571706421797220679797817887877465983502480198470112169422247825814738981354358200836082854230656414967359721581257460744988567552761246772366198579660474722249966924410022150307317548356030326881291570346123418859668383251180824430751385819182378168971981609656892464967659113263807371541657536442457600777514028703715014934601059193765500674084765795657493492731851026546139042463347106956719632621264461807359010725316203993488322224489421585083414839282117545791985210058790270907791472084189569641554962716192126538641426237347229386814134006126833062512783640640804479344524229090801170460065212573437643948907470054164011761066187296154399442710420527592489144730239664876040821363382857951427926782932777195460546403231876784518476643153345348843207317110743902859143047646936840857997733916748759570181291405970265759652903827785890958547535454829022596685455196643745584841578650295416363964858429510910118457154801440525100428199515591822467861442427221903350560196117140421922097725921993027323409365964597317300703349182915646677377382338538703097658412012631521036669642408308219836347016632851940510916602514646385431018409018124976544328622228043293703605928479989964626037396182855595205833692989186192075524103019423289251561801894538308414821797714451896444639314517029411379773348881910046166268618854890202308535499015389939924749987074663962126885027965652590499895404198079751150397365464607703067486810540440719820513125880360717765707081119872035467188245769995548818736423284245013647642039201002154181039772387228027434556755973425031710466506387317272152348345090857527473230759138003717071710135278987271226235283912386827345912528918597179217266335458739706586971024816712318497997045466653516496135353908624987926479990962795713388602451674567995220814527931639617323462105847186269166376253607111396150256438070222271569891244587384519563006679105503392316720875629190329152423258661278493283258527994493155707898484967990021588009688671599446236800242734960579614231160866445752800091566055366269094184893077581911177890350515947266846942709002878241106002126490685479584845079342430285189146604814431505519069031719381011983980729089306816689782605026242345785686746603327083620461500325502351080615582947676073119867419059652383469665069649409194110947519105753397221426198397239231234930408881219084330099146507858286146082748838131388091173391508564885582096719994660337915584904224893487432395343036173882515204764455660090580476823811070793916670815440465831385798387403992055707289971799005828062528884131213720670556189867414658674935136667658436462527509461215242638335808670726725509204107632354598014854834388332787609899494293317087367929046185789958176415737239170506766710452152818059627528964395210845414961173467200012598009722776373807476318492034928944374554984932192837980976151963602064699652077175342771310614886090864389497220391180107331958561028963883095873818597878050439826535215949592080588482258619307546784226467641111213341168675719534756700650875581186457120741305812909909932731940129917975447552477422749824234787092133657718705370615388071607143832585281728466656027208930105234352728247759062617103095557534964297190987718213694362084937490553715046271648186294046185733469216856041270653905591599559364767022428026997838971962171502712190224604594684010978400302576021156339806642681482586155707399021170309277949068534264161986833673628789855054224693260084315846688200087597211791724532342333430963296825062325854257374504946468808115749882120124767218454281276687853356378574816383658999436261986242250082656148497724619581831735633686311130642042666172722569625800018278223769713900934309328793775030363027978990886611119121494013027556708423720145408242577953969799788940913896918435896511988075500434947402776448353558694277082449188407698308169140498693203340464610027072150109913791270885782328965923658219190529206647762407503113182049624737978219575095520147919953931832200032990363715690965050068049132172403888184472024077774489549640003654217087345771718430210378059386159431439551205881851327035315575540166661492198397379192691301306372116734603630038235174672353578053988627830392636774849655328946151973964904223426012576139714146496355128566257307455013002312619491498073597180203947111922648694617587608168631795669450324178784574483077206337786682496723112572187521465128877501242831142611051575519531791517338313019540236192841498493489162589600644403037328053894700800603838993028743995783348299764312749695010157656899002036902665495991308441740883152005480398598457559015056544768648890946063489563821050830695069833993089819211998591725130185868302253837487531832991778493605048131084352091722692925272731681833554249953581110330640582659234914515066199929873590498325648143092357571900611061826868703688509865407649450090035740123947337475454756252862486528036588213969784215134723839768534556558779573391813021375104332664624567716297981648228411977395377403564030133967848439037975367762639148979190904681692765622442725007871968308442015053641338766918816090621612522743074976939682326473164081569757133126764691975034756250195825660014863554463796402138646534927988717119008473781234932910891489751201753301923757546194918871217383347749836370748923093340935998368401405904789568453511435427469476318996504701230205578072136892891331036163165757951481709771274670551295951967789990389432687496421355149774993077390541078858074392294400950803046071311749724738654205750261443553182323758406200351880413751613263620297795295551831757565527122926172859694062191426872588552680540123497126288580329598802617314763013488914733885366448786938693566089940257726524603094381986618002182029925921017319772122723649682116650383060723343884282382262334387502611372689380961307514140754448817416937997490902503896390425045938270442544668237146770232004650163852108096466935068958815402043568531564436191753109031441333032279035272720089027099201698407567083894212457159387437063297942915806298134564741796103342699585046362056217237082674211012658576286352092808946308369357080038909987829320720522419101277884707658938082111375557216238890802102052735289445732182276492605836373440692242660888028842740773769276314034202035041038073473466151594731261530518118115973698174849159276823427216848152026564399109344261929610473077919607325740610038265261551831648219566642654189343821711873688175054346903229762328772154683560224710680423772547874717871927276233119621307156003074076223950886767744475282156584194102475465293820868429245259306793505536992680617061187432765330188361260394554537167818215008824908688567750949099617914595054597281553712467487952467074616782937576867451040367216815618812419332781455444626700003850321716833012391310278483430054660478829501652181803326379871285699287709443785559650225932350126866417497898586052808581428553340594583238211314006843979527794534216258777989001983508345276739377497071920774394150811497106462835279278966006948210238894373345522232091761245218589521914730355044610739727042941602529578822160711492108983165159043823471758636084309185754423206693402193824384780791534051697496790582877743999307331976932199229037804601819532323882518934207304017886114585317349594778361538352247946007237431604187338355835411108158850158693956327673523671642375927038838139815664475310227856384584751184182537622907644319850826534763018174426347650462419440121804968127046102866179562801599021122926707777306156125890199359393674988459062454968592738189167376695526420090493321399014138475253251782953514103727851967359327034177860967669540129359213546715589871005930367816596114253910984265381942626417656950369287521331426404881819775899639150364075640417560764142645882784165423898732767539461187457268843825047231356049082842705445550247449692854005214232624014166809687595298013660500143165037477064093792348840755930984765192608937364583683275004396516150494263686483418606396511552061097895548863760054411789742938021159353486230856092270179013928789604074665461192594184697588937478554226960384213973092672407075569852482876789868133510346926602415929889606081004694787340501132612078543717200679500670483299845681605924789659850220057989451484545935145865396401359314058051736273641674504762125887031272776215786302438143693750988895513355945941703025124470604584528113585002399621914338990940693419280686877865051376038871385236304313791276389663754090163274929042744776735978051513345555629789718917118343194831336727823605493528350830104989825217837313564562261620751534892423662170069272226181310774088701015770729624007679356742993437078197228120720613375795637197021883343010656492950557019924447862556061562229060131111830243216028589890359238620029043770348923332372201401838479911224008372710113199606691296662366087415140429068345247766368646979252172052075051019485936566470933315391967685532713031989458072506830996819175572771578467029571609635502391327299432769030157876872483884553798670419433888605533389253246281747995631719425462007675307220742079873387360456740095295145902097542181835320706592625042132910604673395939701198697139984003732297607041636459314693974494269203632172233235998322876530692399560093879410730906700081999038313247192976494466306643841615877468573257047003327401932658466817504235488086773632780902001852034402678594499038023074551280691552971059054568645750251271210027539978716304881348044664827147197950848260378264662029957888905964057647188626800890040449270320477888257996272607754317208858809894148980464047721765125576289460618723798100029349103072760211190829988405974434707192671869557830529841590553822106344063003054110750755212469267602518232180834782231809124912796700144575279322411156332934970117205911490460048692919517279657922641643413445422564060769813719867142045450306036436645065442074763643742238416280578899918118175716570353619914257831836515859454953679523024117506493985434145220650914224001856803285312186682197899108372606333098115753625228486555905683265502432847801759572663368144265624824559451644054846506552827365305408987607362441572813411610147976826068940589709760478802668515109776916414483192036387020440495212386203135321495104580303173344090195041009553054033783153719987581353721886908103665416064540296519208382324938179456842653037938714547971413752338025915859893368628157582932898043387784360586665835939925060341357077985292264744356498340290313830791257030912573187257939053809710859743409655005405461070096527858093563316262367320657389442011233648990480110159180965656409370388706742939117283414337637452827872633603443991780364758961895835800823895654023510239058069352168813289471583462427552177483534749289585669314939137046670844165036794918649363848133804938781793325070198716402018115766850154948403315187323969880727359113120367534835587926671799179443761684750862995149569879366718241386758130654457161982924373354617742346805236448236814292330536684239058337990395537844474421858633145793959527949785317684378974340866034279915715219119922221070420837948941257399742972093855935538534379573856915204983167170801154904363361535829935951497421178879694856709658622884586499982387744505409942691320840833597429020144011222776272620949624398100454939206160752241869147614264336814492588214848006512733299373383360012740571067278259732678521425545478929246440499365079032193380855893937702825464874345987579768004888046106675205207548063825681384095319106382078449725280727410697576248706957542525580937472720690768069514995459406036196019103362496055461390467322230424327563071544191612610672372514136378079553785575815566064042693515565558214139464306326312237421158154860548428753678595624301929554753458033011744078842173451385967949096012459818396219819740344713636035070903620628774259953663127277116409365260757503903484476773292441555581396592442084196746939229334479862121538482422219702299267651628729203462945635428963723036393864321760983676279791600602640210834338868491333521812475488112117313195049003462719008930048471706125589176337612792108977918101334479998859678885982967727450534871579647598550763019326053692781431360505797841506506108315092847963738468394903418336220857135741699333323039559129440267623266042986043300680938821926012686419741647236235705490593461917751703947445110464418753010382872596738421476587562555339855026239821548002179613490115658958650821432571288715400082532228235553555010702757987898305072501853157619776165743912953347231355232030171210446105365432037946006854152295399317054622424875063297747933239819715493584982935803322474504217896591632150710251228975674824167287439636107507215786427157261298701321559887946130715134606064102638067412019799666640853115275435128340876533921917786759128202049366672089242834795565118515564624358021049881733126828350481912869245061041035673145144304877080988869591865741586071213064542943882645959289308839031764170203677325353313495728944593832222389564084171296195098309494654741343914177307441708737972996314806113878878611106477145246341624408663398929917299892151388760842290140428384849305192461401315132766594560278370757433414771896380388778447336170889561759233267940715027338618814491325096645531943004550829366770392368080556502189343541193987211045169114250323214731396441503048710392240426598657748676168071595621925808846307032589368345424230497917795439533667214190444243142967513721668636058120667847062077767137095081851257668188824018960667731252364072864255548551125086249013849111140747698038672498962314583888382073837702294222262833800239058577469776599242909888563997292842498792908675082645421223540019847864376809086435898950579799094139311905750089382979765636892701559128312720061947105379177409439534487393527345553005980922356299627844948040002806220999771877449565542232710455603370969559230679386645317281011983176785557994912880623174420435867745720429056504187487631805290898475255529034872562692069874378417561539199962199471367607132602617005467737880032777288194863962770233035542316351539500798358852863708809728517139223426339354894688809881581985052541660694879256265921052815199165075868815711384324398757276727967701498159258543994965316650709318172402053599349242209108837045854537514247876506923182906691541821969336618175417550668873826917786250685731911521236703939027890553147986872454486722264165438408315010927777164408182351445363970958551715389812327710969464767366277238331715148434569633049606591433685358527228798375136589103253944308087334057483550767250701765045540532025602261249320317953531234085930281741566525487544435291421264592704637865843085969223699181047740286216897261719643467579536584900872645393844530106027267786175534610069596940479637665057603511448302205232272815593336041461174256010308341053548969227253828305926995481693788899569069618079197155525200100436275514280819462773941560531576064928412819024094963872334943986265666255864553077441721330178260214358283447679901691063193122205960528919611535982316855986577144065827022840693150562908107984272707851420835219097273163458834509449741582928312643949984279253192857956932179872060421995439945183127025019591097176469750822715270570505354185283393244714437029135953038583600583912725311548093195073168351747645760811941743982356912295056859497851292613575340642397590917913218380107942375647075142817726351441115490327116418110581956651679733805244999358523823343089379334790489697689216126397102502967077480313308849021841641598661775547084416545548170663043290888701432165552289552052974363453566448796203719498798955758405229681844947109751697535275794115707324692384062878171754650342605326278369811090253633731831000422588985533480207204661987316150603157595186100557210580868372514828970699936214299637204507189929593753863351742053917615772063912570317032497696408777788825664414905401979043757141785745370206458670489322162528163264190772113420292075698508852539829338717988576617104155310373945211729185772797022464133643935853818840569038879909264424979637394717583462998954491929163358375142942960597804376326538643023140063357030989613350300536719653943001712677023631497364583394849014193558873990553140053517836951156293880331792823854713176757811970542707645552810776811255225539125785836594637971702145219605968747374503778813075419481743549889099939775056515244745095201856063161392429953846574460845402708789876500048258746519155835563515849854875486996798986798116530241851412538659663300053841269360354819795647137779435841806968443773996712624745478340982612346614759833159323266126864635862848086140603122270343522732035311759502876656645233424679406295679125040303703096956794032326035299834553899151375844946423045692351299834802268051449891234083095067097850206831441407874956215991850700930995660554602465869260636770647888941000300637901207386589056136821803120997924513370526501006965840823121889135802412578945302382861838707921171507162750484560416481018091905761033421534966595648442856999559908844200648111873503719014999701011032443662823477661044913385413776346653476008729184836767063524212820379793718819205245323493226710191757368666363290609189711751902340149294717513604850279205951019550316604308583665054745184439448003597609536752727567769193537335910463707568811432004435293488433852356235242130269078359741348548697935042406872663331098992658051853367256012111557479471403055512564968894889005377052156349156093156731417981359572953668606887425672836308329736259320975209330063071855616930985224272150814418268901463833770883549729930737259247714182946929176597989335732201482042247455937390040321369422943027775516869219839333142086167893638879507807227147590077132555256750386163815580943440412641844728081484813310052649901172415993769662687066873567854297233286366606351036206796591635674991612237936413529375016888983825072041396908982247853886794970531141981440440452431383291427970718518001762076360655589339276476052954126387426344590399392177648790752971585229512390517006472105949006701613380397902670393416323889758603705208941024219316632347492990526899834109765594285501701327761794417796688038555144984928653075371725750755249119757675822005645202258128458901380984090230634506117520374706667430310447092032193877991818398427647908037349827669717879799851573865142525244443140570386258792247087241656861793764530674435811600807084397853493396027915638430697824350702107125197840531815367809115771774663891459009989206581213588012681637350921747858282772498663457358930117652629118736589721363797807316350401277707703530791288251738129456862431984853004985272564225093880318426805567967360329286213789451211896433896738820005294380722227923253691040811026805226698333085999999371069148722007121360157630320253166092409321088059713664140417711140573598868932154278926927356681538331132285353907989844696680512117745240224897301437764508411204141884234402023278812629270435694791237704307178929590240521780289115988349840849470626853460656031231081134079226645872658050662049254247464268733558381042380789697052361106551287936725864111225429992797316087060267729104937156930402396830048445605936619242201700914040693944337930663802516195912032300639629327407018813188373200785852575729092786148949274407320611320381321898867128099871627256144119455181431361123342622037727515974312676896247361344015937923127112222951022411803602874311222569745545965881865267210518622931266826573949533892524404756266163160470937792435318373172914712332183055278870024317414791380003459852451234352747777401489170109072291608813084525267603181717248367517470889638918562692183084804023939383298124032996970541495078726407368370820101854961373797056167860790491106318329914534714843011487891554970899220419674522282629643412365014442644535215350277291199499984133818132750318329567437452769574112494921198214681949586045654740108991846055591283069555797298831642566849954259455207949427976101130582390146650457157560601843709109202845114615217097594168526854763704095976240696122011941587235128530580300284759747673288324410252274251651305601790709157602177303305650448304833147717120640805296324304032040049818094170218897401811980115738435586039204620992737326435170540960725893994115567291851153192937055542921686998801734106649277676350699313395622517530986952142251898969700892880104416539479623116789927704023486815565476676666068295192563201812892559129623206437567393663737563583711687799647066139429523150285890149331184439892585158411890828926469566869198477647263549546056270893448430171919572064651936598241877016693888960899197031728358787585317471857291596745917396381663033468882304807591321449648770269082012960786694782953660091674892022508607113404498879137968957349674276550873755244112046635148488977085409947304013304556496252636917490222776873976283596602670239918407471161448433403529660365886096588280779790585616011823234289652588627968700050124327711385822770403590250298250560948186086513164559791928936948358630921069718742962069916308622597304252752179230645397658981132581122583984079472413909100630564949953964366941002833841057492255801535250867920562834426397488768735500047053898269740601300445313729871559063235418971665260673406814559787658614818681237765235781644649830397425202539502005646131594903956369369669620943279525062538861390486591943064057722811008314233660435105056647927382011235738909335160942993942174809939006584661373421803531189082785287472845287331945831321748732067615975640333081336198124477010628258130665517320339810249831844833690791150825960713927918371783973226517549805341477624479145660765299030575010059871100882826530491786645546622669440086467084364944206818288278030967394129597286621505807965898823529979246432612716391024601503793911160983453962250465438988790057560187854803595068306895955946583622114592048655792811622449494428363782555726326376417000540436494047485492049424814521705799788123691049002156595753252683591853851822397851939224792106822590948682683153306498324140225506830041229117057417158269922276085424827568644227035321271100800364151021864451976264242452671926525049001767470824205262434819785926200286197301938127618798815241118533474728894557306330101445323942187875137137707449870198426088680048335761322819222921302988659435280571806107282482976271421814555174829233532971184204560126307801491345670320184656980043644407473520732619406545929424972127201479710329803403459632012096399880609779717290873530237092681436618968739595845215351367542788631902067238885345701340965482787054056052138888454663692830077511962019247748097722214777644294394709369921127679961827111064520908132069670797589885546530316467592452253553813347958640201841601812398004472546210591505450102982499137741065430162881166374838429283408107868348429410781580081209119074885914976432745383558295604031506911607304609824746113834991999929606449032208428445395037946491683593602509236886238842154460946119139890273053263114016644799675373515386740810855647773622410464728472135747981681329454528574213099675771302732771207986691382216915614721919705355186824705909533234907610778150589832811651917506243675939890236579580892077797101140886080411880793577809765780585518897407845381987967176924184060308853372067375605720120595152609038016783750950105926073660728644428743950191008297773820471412089285281185127572474924847570968266914270365405517407132547374811328263097791106221383866851094584128020085885360684915680089412507478298275448966358257808481896072371379263080626181248351390040351347836488586508913527203451129025759142821771272061232354272497862444469053361360959859399966088029698638332259007345933217566277928357883694084303097161844771225113933261806032449928883723330879369940639745478412699183876147990686196340657998564999101616951332008346806413524666627184677244471275517226926272946555725438516967192938444361934853583517521964745442539164283607861739502750797672617456269492021776232657544455390184589240171446014706099608801632279732801970618756189647770504750631732113089282610222596965355076584689985608825731687392854566786578557637080301604900711317030298644470209599898938402808721034797569957850385230782040984598073411803155194401483685288859674957300988619613634609456066324443020719807185073758914606896916435471953377317817619480406836720945589548546263115465672296487776837174602736920584283891215573467811199122067407018962922880871305731955367635464144915755675416580899599288191364251039445992623118556852535956816450853211496173876600124635541217418140560188787494298336479859576871352988411813464194036028420266147586683707961134893027016870036110071267341436338890737202804925161517665178823228297983921956501643781276514849139364484551410081372858188207368709721292106169037570634776297441066991532064686539947362951847504551834064303748558142464871743590554948181085505957945047254520778689681891480910454240309285852315584398803164039726310203674372651411301434068158481792624654120517595675509020350485595410621486876913306086001973742771975056310470403292654267488897228691223191730620915698650718290123989133968949612783735014056433022347251046393455560607512895161018273289583895468092778941890507042405191015234813066333155098102684170909415536229662564422828392279546966928556436036843441307829828152238782078421293682516398895922464377360052619180145072333677313114825768743089021450230850659998831922659727599444925630171635971972951008622062805479888777687157757330015668999836359850266302780525423845690959772452185519138259631664720858886999789584914064835334968096836035458265819887171089133041412102743288699375782784237833689439816720222263012497922829482895285620956686387302102681217595343370296621125391905832325843807808648855437906734084481880477035997334302170860473546851956276525885288152208216520303203189320804706466706844733311359460375413828326699658477791807873567369142722972694314479274615412054302591339058485208071587165268253048018291232850251792329150738295702115346847210893967783154632870237188323214592424368754781464656645213458974788924685157840029765030180212208163897843083976575766281306684564085195009926806151841322700195732402898042675439542645836264864928475148363947765661733587132859355567450985635888755641543858777098678509950863534542146945641162901734996612988837709866777808953597175617863553326419475702387647785512991000297201523316101922952170753359104508649930290069676744539874905370736249321343039911520332621028625321245350628113527986899230416903997697954566900317221523517890606187008828269742891541012146001423608438389704510290584260067538444165336289545867309738945349256338374407730393242649289228495130461678649084328530481813576308022788359031116457924892701439466608830789344950940608992672554964112827738474298925861037046893677348642455218801537138828791943430417061826556669256174604401492692635118423936782599908225613617744340036183312372921042312933463006976047293321000957832566132860283184425548227958119214184709843270983834855193757876206308203026187198280212661653824049974799062660738444182481427418015305817820405698733110134149292441418335949370000267588490404790671216667450683547481756381977532304433715193106337877527049025055886088816335671897384113299273094671298969166767811832811451335496778507611865048202171248225791442703579786613575671878980870830060092441395957180070719041562687268050505042672570088534145029409476200751395705176438278243687493862001815317111091517442454359933074844414996353255470760923275214726900310924935501938625921503003300084570184733704158993141356350027827296247347141355470271877491319824561919762826376924180550004604396577747438217185503500831757484289681708164073221989435286308766206924627151715167308950186348064679571907606842449569105657289417330615463760494858807554672384193858268846724525408805267011554255014233730762455279270820589031567218148555960326686311599327134201149729812447442405489344651514700209008640585434897381315816343815351250522532918094227581013807265740285158208542190342402477945263257872986715741624926187520327911418188196134575648702128741862540361615697422731859872841688831777960569806217805385119950949611627490959073315539970568171719289749977756218205756600248532796538780307466118600208968770568770894287560969966153642951919658029824092612377989718397330079565255795061363335280707234476611066892034152662291521438783783889179892841716801124020371470074241735348632410618799001791982851873323514621617929812710713260121439281689527207737144172321319172268098552035222619835925621655052163701447397283052172903751123022893988993570334055248705875132127271091927125658448152890751395239397057503087149668400209502745456783402671957624792069790671110413825984455908128998026189791530381396302964605317623929915302169594801237204623448715280391140420006684206889390554521385278639750705769314639510276974202899316996162631886058360043749828372328514615764054958195007093469840432589057727953767894862054972303096042331211837341946741770322053475565698319472683099042266969415584871214061791403837996552663388945059379252936379275503628827025073502757202547413728014416397316268153399591664771372737577172467918158916173048086146360373577838204945413775210423594160697559828953536388499368399813236486867000233006454078103674414412058404726688126254981072116507063484536037960505698398980182972015926574797095794424652235720979854655242232074530566585394064367819659397366993649695857239627694031421343659506869519772800929577930983838853994307995044676188747155989320778550273593199229441375991021573099376853433435875836987450552372352887475981348167895284312100856315173623885789298933835495804715759318221134379172709426534605692948443272388554784642317956935155356858128784061327629093969247905806655122004926851506036610902570141685731477763674519107875437815850112711134823466479526230235757447191058853888487562638478725845185537133869309048734467844379035212423083884446492828604667117534070647786169808663687146658770374222964114419010039572998682323940399914761142502811665297624347896538086080673424316827096995773380363530876617254382328840683137415218776518403671044881505359889935147075331690394118348769170905498431342671250374129086740650286990536524337508823886194449305641051296787670290276713853141976768853350970201170493342499244828484504262549578451334239604154784992839138509728520912627980544520513298391108306160169186222205929484577006585290663171760534180113346814796228576042780154262297241669348287681328686961953200387133167544383395203811754483900354458916510620299896656460813900877544623901982572718232809046000663828462978620233657312897432315972571934854354563589199329379025275702448347387513888990153811791812367621325938039079615829865714898364378551400790734147089775442673937292373952115009322558762358284150789778531373355436014047620190897123309752970024373644838899250138418120854748758467295537597874128867301183675580160061595919276390756577386803603846611114594837391888271591111416788930649576484233273509644623026439963310046254277908231652192010044177140784006827097053395855309573650942031158770545866346059273290471332375779286013663647000830937321337602033800964579706231533134003311449177300445829134139224659709547891411547000475173692339662507112816677401773740371938217692061010397388506456450891208015571772174999082159804819303439533960457750037766866683802649759681697621489223126280017402752853823205381183084102257233907703361024911513897999825130000383830088841844877579675283526868895801767926557181209591045042572083485000763738242536167997960878426222359981355724898475448040229647302186749858960931318372638182760215184705328914692624234367597096565250209234719374776039459949954711910795853412991317292028032406141376211589508495876372309226327548988492853492121863360511778896598119589854527511576248320484874504121302888838670624735750239897254121414679735832842759094436481378581815094722382229838532370699451426222478641844094651998141435937226961946133487887784526888538963014799969677117959056847559340016143023978180616975333130407825252974021602383061774230740802505091902352582233659651545244929906448458659383509060019615891131914797623506544615717578227075037632521536807199269329488767425156474029830972316373067257364595422816153573153079598711642509095919018823657511558033273580962179337523428070021542965273465500975984994000908878252552321531049107010825663669073457956435043386146778974958669154376814238544532115191524157532082586527960251602105706956534744662314593645833428894625529949815759268243484166490287798052242996076103018309107619700869935776175900640541245924744496952545818815973175840783788761152629551750146939455568986725264351545035188345352163503185621285651690774891194058741550602610661886174678042023120990924810051178683750464712093042284136268487736129349148713864405112387849699781566889032130615846097608067967783648445571164196894468876912990906947484224575097732003508598356258711362320495065210869014062957305662946552113260716468110756640199467768323644650487789373959865744012997072555184324520364990570122190286159618735145556212040454089454819420799766624551622073634476191488592494176448825867353723717199814013004583967389017728662472453756182378707100550199834051058461036549598305836144184598055578336552191415996841900914659045554365402885630325084911681298458721336792711621587020571029130226756120864097757746659999130224222840705195883786451968546523648986567577776079351825995433770583625285356023463030840640238383387445014730646838619415394520586755564484078203619136826858274073142030199018247669591768412781704499382879222077923188290616066097421890645439695645999004479330904839493360343842380247203488018756128682843740235871197793664594886361852620771997157344298739336570088865119029065232644427651908981352060463671178508301832461310366087802371444930215328507560450645484853948742430580527886540522183751877496942227321318427379332199964743797941304935018120864276144760072587584333776876784059030715560301322584251247910065470283553928684618025838893879701539233272473415698943798553444005971490481259640218169711120401335270588887256520349889498983115015987648656754519536145201661071974249436871116440491057159204695809708245241765705429804627217142421227417745450877794776857464669513198179713093490674969088870306126867250439460606225461460670251284175627714603932250830981352908381364497547332109003217137345129722487712957369202067295264177694927201649922074768929977813316117598107057829834277435334220987374026338701990150595957666966605723010253261264789996085532294403743864970397299858454712230185714949047774553705613310948691648004557537654456696236404480730142015691199554407930013529342541718191290608293734960913031893611844234171762822084427713528296631876434421348300286181340958648146252114658877358415169563517485819901710468745385132879798239588600727944588327589098676197375204059685175418253937547376038886787230897611092043127357240618068396724074675393492676076321895146319642281691257201997898176202186055431672641123691758651381310201198426294225284747001521598797425703685167852020755688656542123476754549343859519509477066703509381487907884005306776788205671913625530425532135761489311229356261223261144806481826219085707813567153260100735802772797964463348648981999228022475494355954646431993742625458799120262886187645091766346204128145851069343900398295288390897248422460902592283086590172582871335645483830469920698363708757407887058906555809134508643848149163848537226391918907692946650585660840652472304171959595091604337720970378333046852093966658358816316319172773991260615238911152463280954686848965756187999425885115851123380697899058742846370270111950613042429904471425473642253913217504321992401353590811571565826540316007511242826129079890841935399603775693206706178770356220068424090922538067556693952037704722717431018394565390548954836365638320718115166296454621558029473448793893011416227558719414950992086513299976485821279774549669627255337089931157894483573421694860259457815178033043964647737692222306825462667478308161610631987439189184347377109661948593668844267722417466156647079243687662877247136247607112277058365001490758565033924032574457552096695023217582699618488722679832614476508868990277926617437781949025479808346109581380405999529525436843209020558386392243489339264494993895173884838665633921015621306954383489517070335281140477713710074488955729228665720366123460593375109247444877737330916480790794377875765847408452098414664705773039346020938779777415238404141421228673375281127254574295024425832594442058245339352253998374305561848887295565605072620829282285368058100649562740505758486110787738703854825095555693246397411706150527837120682703711192869757940246019807728484682014627764372013052257080614388392306650320062250979161847912537072991872700561647902882747245959981491526007827230142597760704561443527957918760122392819165789657866470039000456558639303802983263436787927515182961043929249614528075995269709817584968794751301721254220871484268661148231875269606323194942603761731295120816903348857061422006509277096577694019561850583973891249209646361579884869327371026674265409695048393876993447925417740890013306919273334815452245864765007788399090995957554148213617574955761036540365927752628418054394970425387627369946166701384925541108469674064903033037807608344370170724241200762413128085829122924867703229315043356943904746904253851415990703057562453647617908264614232476811017721522294293163491714424441289615146459680381084135064489058761516841640032162693701333590078332636245219406567399861246676207340991482509444635482381845139886192374570306383595333475385574284429475960730235435404151153778012977608063957043128021164761368691164787617873897709931958411311206225821367420989691576429164743732280014404308295735248566021116377670120415601637476214028299609418274232916984585097980435132837824847623854133602780278037927038337277206851479754709633077900687942427610743201591065538715617957513967829476812172978656507074939430428404278471135240439248808261583227372622696068666746594551550914895694442142908099107434427181182765035263279960918072739684254056195070052805973551021201472711223701499507500778070278367720082264968125754598487214546429623338015208169719065960244786825839794214902731439807808278865601823556684323505806490391291427528482269062009394409422827121950220752628143257890870678887577148061387342996480610903261419061626086959182660159394718345826276862229377238254576670886435783152529731264040742470785148498871731729823889334931046944040267094489022653326380001054219193699213715912736709804680157541628501428143605797902221179826880950734931619766981734806976831121373513168414880496923061563782948691506633623310650735687179695769096254550315828211520700331686169830276833349977789704342375197320302378883848913910265327594705813310542861292368271357762465140950301976969562138731917181455054666001263523321403214821009729125274160321327003615338181728155984859343088177187712180038764585336440589553751879315478147933433334024231067759955067495373292531976261641315808246980246771635891721837299695310357925539737003890513158481497437226550858309284517184428564346512143779077871398826102687708506270911715719286290987908801747495362031716578929793791148193703046304361962134939609976661799873471891838956518044928671625694977960165455619167823392202427074693050810119689504226177283079078135015776529416484639746613421439341038790937784327379768482079903129720319460309865612509770585426595001784394317974024686720442033947688412515947193667753397674294304340676032180084977295428556013001712968632252289384142870925890359039679205924865398851772606063009282368083803172430615329373945017622240263655052127614617820717673447921869131458284494473544626522827796494579355098898944353035497696579907554206180147910200070232951035490591184238651937803844251997071551050002699870655459057503637495894878095178306432778823352849575707312663171036706942893687374907952023425416745900439130704297234833691125619520083751728299446865419985680884856268887139769543197907303730665375113102340521173126303007316940607188563194187464901301857056991890854375097580160419726336733406000975942491412896954875473764557825747648544410505952444827999512672251062867932294436782289906525049553742212117657540456732362650514872355850813613161263493753556900115473033851676508890999042578968073304624766744367640162106221365366175509151449933880467267829346289312990434832040645491986077659015048192270593634163667662015967974224550957177118453867763926757471025907367599168708664184950014276071320243654163139220540589989721363196534169416701648632579297358562642120691833569779929166057945656203439453930141340997148861881503304322892327511325268791740570534718531755851036791463425267025083897739799240751635539506934829851497808340281013011849921599826590663582229185139760781024828860033399398179725967343846275640442987877978206241000846964409378843132254700179640966102139925899249808619176946962481078207133922183201493840439729866679320078185159900003972446634195274407825848510517405311081875702528289182616508731809212286062247301418012859383491414356488738669270131913823334528385618670710457735239081768194503775995088687367468546159838241573172601417098131261537231103903623894954993669019161134887303921632547553884387322644622387908913385807555341455619113455484693268106338410531829636580111745645959759519209608946808302998435414843677075976912485490129075395425900743172208750982751149129516151708593144311058427178562542656523026416789043464870447488222468095477247446704544125967198842126726245515209106470276488513708268104193559715363097737240296683905057184935080548850529434796517257673137491890239698438844011031897217790138435800451101598960035731465766236019048702469453169608077339035643530500677740555038085980418159822501203379984027152373644789802442394822486902520770148293583171248284309369550178286874125222485553100782754883928712726849487413339500020928094399276295550457840398920410941836465990245946488088754629223376276234163683049645927313381131682688114701855341299263698116872933202551817250697166995035410946928539111158098713326041730533592307592640258016093519761297087918868113453381552598702302154049595030664952884182084738504237686127650488579302942725432022493215138146588835579590489259045399401913354415205689820519961997207659792784261935019039537069258248773588374480472961829751487396999430963807058468118919859761817382921502458784624471200786559899612595598840742841471814285591202562508238311838813448821506193132149056558002451975493218666665955948631818795505677461767884135082710552713836107094475569138227469553527773922517829755038977834390572176187303942173826256919331715323071897784888326425338504969794095909065110447615873211962226246384942347240630234359940383064787907206665277036067932235751803308104078598082423512853698380914440822936166012058244905655389445909444634915975756213359111188203065479077714657835528803069756674847442283149449201097746986476642072953979054834704866046161572757647847073643001322002139783446476412810630724830391388708513195776253307396231126150283057209583222608976257161511144248776101338453967614196528027237673362173475822656813449706888030039540849535048297360402261984492140704654296872216052196123105410706559189496323873344044700988826912141251735012788742938894949167106633397910389500970877139677033306489340930129648484653196229563840287919801691032253072167580689700887039930568948634930053442638155599534723581979492883804664701975904375849856735265580426526635394000648436234625112442876824735544860674819372849355754823499462469317502567800711733102410063509914979084752034542905211002696139033518349353072109629245145006369991039111258928297250582686760261749310185295485355824819552984113633383023207292922194595155257305367316549035687767355375898105584529897083060717452880994433977701882622137330159953604480147815646475164009105108525448502075204007725173624113583749736149391584086344438527687042636612360432823892591455837542419221836615567337040260859355305578042159755701089588119766604194836068572721918055538017729746036724757403198179820176487737249582354106949060230214789697181759012187460160297884177646745643543669136991278865819565617249064348737562442542017903440497456676891687063580005513571282159960213395985147316487206362014343506918230827828860126765857045665007261673761871862451331937485717533515793037472827228220574103118596178772325616776776976844852768519319171428011650181421082869860477184644499446648164590666096460179430711661679294212139467991664001640703138092640026798522853196007812983331441704845303268505070954287809876737971026197306406450563543198083545550676960861749445450153056554077599692375538918805464868119745162927253299849691828668441789488157766557408310701968415531890274625654878107041451146232942004840357237117954693836914602592473541496810391390746173268765132464507089734076909646167425221955078264341587430374693877603506105522807003740564404678312053229277400413843361309839123378122978385103672369935745428484911289986337148348946661136756111028866378085217134566279876226958181745616759420610565540859627239394907368292513219276054671379296564587906357260226966115455679065255229079439517349528165445998080028412842036358739927793319600390269723905269762852296903030770986470130721577761088601900619107597678411783099950652116610231021085033987829139429924265205108508593442079168243817673484231165404796163724310957826258946850781533493743605157999545693173574601499799068178785433448004209502593634069937743121600745858193182252947986468866647521116801810560447864516555857872153747766906860859429247567104804640759507377204865636776786029864030544966087259684230654427874364356750043094272613860656078652041254740847222770671726919897458896645467898654632526302381365133569603214775769001118023605323493562216350912778612324513293172908358152959032327754529509328543702512903033139216808616269173721843937047118563355078448181574214888431795028805161603436935094262876716320490381876107071645820201983973311407515137634251684125877391260820734171868634450991182757365633604636514410960970386439955926114082988227377832235712882756470761137675412884961706756608818768371206328903560965621893042640648841451744075220269353391171101533408113227235574894979540875628700325398375967080497003232784894644605121816808380285180288445383995290159917765167565590438385989528004351732390823829860387308940219853598680523558262054857395098730001066445524057925274732979912286996359856461565736646033940589222392572395657493417030582320954685748085646490591039516648054261745044337965520033935816877305818029465779127463503452356657887520154046912923689887298922567063451774145972415859223213796921966529243823904273296904535954241077845407634813147408211018222250844960506481802562571652086459285464399251597640487794009488124864859301140137730602842769683409917640050167239602627825713706545934267276801035328862313634121032444472698096853736756848856811436845863816293937984894301226069440651952812505666783414110685418472764017882104484728523468539578301484880035282896118469282373175748228327200042314512458782598317875943581587971292799051386900368500432208920216806826434936217875418641433772112477053380171603427840031684650346378301847063042836400552670702081708014604062558715909209488388697030461536842114089571459872882813649021777827080567801860088081832794417277340862341579057938023876120631661521747829646201189120037046757621501522812965286581882888409164019253004810109080068988392232967970122190491675487232407460654359370014579192202626267140447194934731668752354644327168039096032659882005429445154670894591690682250254158352361926981813497175511052314751439143338188766849601711656841056142072182357916007424019290594807280523789936761692613608691291314938200152625093774518524205162048593104555784581707557032470578036495046717690343452645218934517333649426439624916557396761829521140940296111022656599387555009108229632816858301614870525870163649236496753570252160379233842271249729134765170016197789946055057359661622228509403196336971017190690723270893464243484627514943322855928067756414704418695410731778417752081368995397137204822962097876053061312801140939743497006606386986927335049491778246600327047250333526841429798674215325157285788490865276488756981045966806645761099300772056136335558241316890069066160342152041387265360602275754689140806124423805584650985358454531935288565530776314395807989919430682517520602815436129577150524747152958735636773692053731138987481323570464555851243836413151177456539971426363257639826565507454957206230999777876989270623004867885821120145859361752503350584885049004707004193971871263146515616342511568282022886281381728057143233060686194852449787938505822573341061472426234150991891652486070276894537345747136863451270753971503733837520527114176206200740585795510166610294151150367865360701969046266390961869644890330860875745337177871299048180393078863577830264810017031031530445528818208919899931741468641433514911908107297662038228112785302557382852377117179014050268660534128996632072010255604383267760549233201779305452854883444942970633623276910714389357446449076200899905621727919715576252806073880790054745071284499743534015857751604344668387974664301550548896002248062374898059252252007517240571935504559787569149916631068961769012152287552453748879417270514998962518581125906657013327564929978067592833066778094573563125012366644340660373517639640152768886372054595666407849570832560110394275819545151792520022864732052391063936220440446769292260264012478686851249830880669050735313521656080040623356375837677704657984372067136135071278664044739456257629555753001239910498311490998446301166843501868989127539125490209901889626840502685389286378282632494151530988850561987626790609960591743308654063176534216271401459001406164957882409965025139084484222315145868693419813069274988413082793332131273053753914056602031800069576970766782439524469149886838899319897122441482909119451809149707761604050551809392963555254881518238681365534516140177675480513143441040679497814735149237952283366494054546645110344661825672396986576009480898871398453854496641822446719102780267466586012636519545453300488340747102378552193694827935690580631001491663781665804295211037780410865827512470842265592824905511806487147087706045462591873460663181395106470089219021126896468510826503753811242731488901961070822726530887900503727550403889211198589346560289203766991860118174992253247260004820091433472335689686161402998946974476448228830583237700614053559080991529391619299217242938471796458145634024193661346569097882160159891588648556640519655258867377792686734074197476169475213538020032206561572356839074773101100953772569124149424497442501099053569148633280289644100764925959565064229183657072679657851488443311631097787455729304655455729681900619405914760484245546078364333501835949717354101756896577641974385971748296411330236528683453810252853428721558387314465802652323031361114679851136496164245544440909201636668020586134859016754599684214438235676416894814991235121724743463797414611702521107282796598080288079551557266766342447253571847331926088283219582383142779592011112628261810383152079112424937743601377966995040529081285681394532555369664434665267015492117956167854764419183066261925902398661945483613965569092727879854559486259770475241334569090502829887599470578702644316246834327724320943735238262435345677248222475249053832007688172155363353910706490426929270124533174848185132218695178712374520451026718685971463861590716123347036603425384718827583268766755693850970911976411551644971157731543796487284900899830659634769552059867054430872890971392085345606860263288393820319464833650721260767292057140580310868800535932514671364714236243827839628787336190351215188252012167715151549056554612580578755173671102580120572488035963815907273971913910080141867198049684014216588864017796191628296748727891331219958032942273249060187466323244048507963900513075107313256252683772275634285697819538262102991040972251496265628239774639355538178320134892577069869857187504964872125435149869749521885012614317893991826573288345783262923367280756505124383892167398811977563348877677437457758733510940938612873282868187611518533516762265170092071055545739127923496629665827629731061420763399514560534296376164362564035335782721108035815635433368239200312020674181835798061055230835696876096697768686442054997252426830042127658518717451417991403217176879624178836534197520981272146605725585329082685466498350286339707153625994452215052494159456689085134323998108949142453618470599804240034424386435496959575394962355910118605139457429547555348236934555952977077024350588889769850256750166945285831507244897650909032225148774293002041533963558682206018098249263655612378945257782949982460287810962004335556471693103489400304375795133299480447187618765006251735305505687551097502100013748364576287952674853669845452611509648307337256870343788919020406282144678007009063777285082811509494502407859629244633653715228294663633811694670301001756854664876771106037516715239810970994548299021035801845832196997599183408620218181781348728528302751932892998212662373777533083084828304499447032697223664440773789957337411984038628068267787958412976124257131171707856071048951300994308694191693508417921561121155022715861268752595414399880765535652469137782735557563426872248201522963682872298924301475505917909307839351771012482038221825474323949527815424492405558366165260626124831409643061887305111186833984703476027242880526816138137020794754201509661832628688023246814863595974078248469175127112350596417752257083206132151090059714866033715258491771266117713638724912499855768335301601908872319095002411168402145852613142826764648437583922870114779990632010870791093417927034871650379996728947487840166134011425621355865849022024516899696245872671019444506463507813850115054982692564764907660334418086198009086750667038738815871769776084357778860612155822176852695354113870525192681479775907231635294579636044671165252078172952215275643105960248023436895268214681038984275388141916028657929185412385307049245050585942837442781518178610289938652999551168579532913567135487092442403172037851534773209648842391627297319304237503835451230997186835669176461863163785621191194006522052857907330897116734705002293441128967286579836888022366793658280202068860443954131609441024408047489677327669294525456017048038893777949238300420042659524428771694189270340932613979835351236672950369063823426213351951903586069338756294566519324414880818948842742871951765053255020374249038607388240274433900572371747986490651854036174554685620036250233140138807850879322137100788294991841331770171356327591371773194163452224312771759079998961373122761319357771352665717242742465883436840034700867699944712297226498765735703786209572326678319543292278999361987084688079738440476407489050500407174773007948786572375827433019395194370707782176207330108532492114881187328479193044625331761617498169854358340028437605171965216144353145558503936709139883648235055149225654731143185936584283462821580747703462413144037290100317346353182500369910332895857422124731142080433493433170276836043886725049606407064603012584337066660967344161683399746269182517432406943664699884480155924460896563455407321393752834878336087481090173335444633172863510491142536993941416250194858736151732405531519269561307983107403080321766978408876937775587095894670531419423387513088178826216461600142906297287916982798703612568537988450941556604989524520421098327465420983826272962396675233725331598963711588311984637576457180467428886827283098561015635756209164672918378937007956907034427573736794647866303779437035172753413957444945580980115924679969360111140284378084154535918748194220202530939883111741010762291994400165033469466195869009250252617464713841379434635288147771681279847465983178214911819461761511359452945106385264229618223941390819546532948076088949298236579859791096830641771654240464407049573825150943323500777605924743429043550980246276212015806781975269020482988634464778491409786879992029255473607007490769913182969787582119809663587206580337737657184105264072537131092704034867495078713550367231222904511554423610999471170985495457757013251235445976321493508282529307598883820164434110944516075645705070076167761670743966256124091262261506143731935687814280853018486078412246306933017506949884531119655512036857140206908494133013346429805181421064227503146350388609526321928628285635338246165460232272033665021670998339653343702287660935562926993650750583353259753917091196347711287249156486161741521038947962120761250037381039442179696197604231295641893249233231302687325972279867060921719436383204367650077483186352767908940155693437013748479376089552440891129715615268725259756656676754253883502619107387625534234254120822867111462325005805550754721331725098322976620716212480542085149602260713489238603265489277167418525092241845405895077117898079627297088469855619026207411407422203211788011260328103460680206545520430331449916678893381574810802368448645434301671836216442711882847127553846536407145071386485677811690902103462884907518936431564132481577950646852381631289953304760789918966719695479204254805115664509218421121527185319234138731670262678839837223252254919012479794764403247586982718662104799267722838126299692788099196919580968582792349142842931333057470160516045489380054885737352930363088652753730350533971545814454742243441308629424222885238137025890847557880923891541327448345438002609078741782294734303316503936641039165428763078069560769047764625859103743267936407836709256497528886284192317290333100190413312533442314863332231118809928415393985965062058089978529878772632052703036337884550794522210355791950119778704598945737271832586045522224830342188657312275501802499311029711421991597349504390068552061166707217066990295655471396521879662275562074029806956555996884314421432983598599921581999311833511922121159660978274717658012052006423056849458082486206832618535982432580205852269071675880109196456320829205247880631387824752675937754158112273766199758813426182307000591641274088676107848113971697248282402534066886277215615358858488856356767818341743638632483528343586034664282360329310577525855277538970852535420086783406205221719408899592338259577848811159876290776962411481113248929666632732128341296068245771233146453748960071512726118860504663592527182228107473870170347115914073137590808844069241692159969321364786450614130346607976318112191594259252340111670203158781375067878865301272018627212020909085228239574595283367053805062769962197176132868938066626364350341456284357766605270326381430979803225719759890256856898403575723020952836535669629511000736958926276920778028710597417949379817196505167285895265457092121801221030832412106332709978697578553642466225739104899207707929128379398102549503747281758528480118377919121418044019002538115246570825458602350942013763821485260565270610346136614392046724409753135425032497113293062333826711491315032805180248102255742219765643312767252580623998064403113604288234819915317576765957027521031662717806151698709381621989697460630913534807918502794640110491013241435551593678612380405757658041564910524339520621181171087090707372042953803257719964050375439020079884328194821511398667778851092460859975643255261174901247203958489480000124655511463469124339640720686082848960699288630782760857632285200278324879045957582110183501006873063934650942495791990155902202102561248933020413947897938640210391253261894068563278796167661035063648301948285395059528312279425607121277394647385826545331810233374133212240229395268620277604711971738180280500089510263016490352099500003621088287565414364324529505789471894588040154118872250956477580403532824729058371447041516472590290670950036937460248086475168622342299672682217261693709447860808816745645375779240745611028774077503000685530674486599460562031707504480532836283665485898111616812308457138658391324009898630630460300230978055509122933614527235921615098130165027827893571914367316374404139866460896511609803478026037610445520446312699831184098919123246544903411922619452266937402909011960000392498343203482942579738089924188213095039713203880308526297624580151312546165202712702240199318543412680278127292735649918865927384357569551791480129976284865006216165439080966982186569935514222058033265271221284202543471699344714193083307152377524260684265979533888258008418609531699874767736409283826786189007304109231213705259284797716321781161351083813910803509886734694259248077240374662964725335769448203259134827423936560074779052744084156856441958277727986198293175081145918185568919084797478725901198520378419040179245631932467909892800032350702149883561812609453017464279159889233528454991072087077055284769161756472029483470134293104780795708717055969358005772659467798705699065437563959893314060676772842734652521190340340473505058385520789255754219846556053549760590957685183449811296399017251961907390500872934769733622331042212938396208688122397949214208321021376791738594048321995055489558912930222262361341995045518806863992085468979952802212473851689093528864445559393951060528590703433297106167905713433104475270817801337154520427202126426266019418810767315318029760451849170661047841099672868545860621220787559106282031874116399365895784464618489087002934119164281365817747804937552244995602860156910400359222749432048190180113139534266434421657391482981783964375217503335258707485050873963596704896523253963980396978584986974379111463915977228725722650763898536411338021780881212345357298195125791005272565440012116719519847978421756550769506804124702476715687330194890935812192267632953205607600560527731128023678078378129687183540454368404239645348948325721122178694405266844787943327142605061073116938653254604966746057606986645026398585699870807018084245542944358135021434155642499914855575473444294847495039545028377839438700491247063839837377779039070381921178903007285579587519867893515340062854007384380552172935388794750323684378571505231352758149675244782822437263941237869931808782879848165919013039086224376938216084034971050342275469528393915150955325525479217704008976992883398326457408620789405745243421151611413602771067598934149253392492373661207724835087399457563007139928210103144497226945274117604427837385607572083119451992983001987703181442209565260697861631765910942382566227259530576777700506810799098068757248060325108457305901781406897580719080517376878586114055756748484765134802030360600174511021935490962810285866146379187260003298847143798143169635147025112438714905962368279165763034594443328688866416741139575887949483983237225076947248140743460967302410567367573016912442014836112247968572403539878984522950224723272645279568343734982375941179857398043610048347521471441294313925488039226300019811405478990762212349577810113336054115764655525770636246280899062637502384033923943026000544005991988394598707018412505534927925901010630007982551864247105363526144096629297786035301593732401220032784858757078019911002364615563953988313484817025643044375310951017848798427265499472750843126501236607308588037768526023184947517918175840885798157094978170890851050831759912695410936778879873106198309044719889432752515897654800185440342455640792998913727270510051916677089640143232561377166327916249055615305807364405053747233217782544447850485620654892821633745159783920656361187176709040562306383600541354926179045320694933784549481628900274681410266774440397209766324564411636291510161008454104269997165083156022165047756989246687667078712031311690255325307788254714116496320300561355549274114367546319351512033295900243402878470861554818301072033484394098399617558251470305164206925654704803527130646860989392338387665543077985762078608282564019161940808698890308216054106048146084713467512167913788031931954118018295798668367809114494648545071346821484753151035885335544965909811634758941450235574997808514238647574779537720260333568523963867735561912300729892898471250103360025187274114852340766171058881223897146147308098400552407529351225019297519246405387480189415358346252653957530097330507455845452297664954391428560106581888043670962970406632243520547479495358487276749037049437785601266437359563289009052103307002400941864333217932800204002218766677394982899982227049859038930618663181679369847913406570110325838904193685433733452256601788511006280631769365844094748972894787504845231357255753238560809715955902103218655429452353891559807345447256951581907399307865988561845921401929086789060471659243807384590870249648834945864321074748392068887206327090248040879288586645780342820257393429060030762105359231554185099298734724209142213632626311327297237473275828454607154200367011158500398739005943392443418893483245814877116157233797598731991379348472143511813351512352932511964704793527399640805489320147920995423389358639750195047334115780157641461425026021138602923084844378621155157813748258542079675845022207042122605513225326032563233777053081997569559323937412833048088294404452100234469019246745010289908864185611313310965970822245707413486602377831827133109742741158373648134423035935434952276992398930786346189139093919765588423151847726168906924747213641189157834960571225072236999909782140562349345931797797773624430854741938765423849335642528491537517149405315789865079854840623711682061825821168208737425399578344493789800831150500169891631324620710286328996847678598206285032775858042903386238892762630047404749760541709296310342118417435813115818874712350733581866804321803400093105190115761161021701552042245428899739938517782344709952003179497944068608136174052666986241120387533734726936121513218557508491165172911432391881731111894699664610650779977607332786150656882572455886280597121650963896056985958090079152934498016090213212480244693524699876136653482349502197582557100151131895620230514525279526070851595055349051769844154660174572009645576160252962421570079831164752939979070745590618520107301826182648634587005946348856962771656474150389132690103775824983287683252862613306686842612358490108940899456863221693536049777406673228137151794321561161106999040328182930122385685619819518856968837067444562505936409855445835974411674404701476746271989569657859926233767318863798646288789531741527896570595147742033157241446075317422240557984281535072475089307144012897306071193779768189360698804248952514861062042947584715478636362700318425450911524954679680987587908056136717993780676583137471974970317040902363024209464798861805917153354997033414553794436618697180847476084391744496819851458351470005522074592970204420562508707320559153757608577205023300292684168217150669681098309273741010115628183193804402015093550596563164782038712462928491340938911712111804748576674004329934569703018939788882635767400111859961853067371735123782175566089843684524500436911240765486935719364869618975967512619157749328002946212185459518081485204647701690499109864775886220122053959746021476153826349056505480310946288022646693666647101603086632147965504069093587541537936987231103805274540323841001539204618378082301472715213305558572119681801387036330801906955098805455689502363845040927991275017631067584419140769302666154789057442009417339997881802438232700119785346780382082023895680415916955108432825206676089490365198424400190109849549696903607127715207621996041194290371220822382751462653167049145042108428771728145961703848482829175342801947847928912451403280133924661655025781666862802461219534739019039891630489871365305448160435019554376280005063081417093672230184420841811634928419896495715811794545247406558789334237582713340674983871634040236627067534041145094715228511240105319797038756590919807020756502292912989270979229190698303479167409916847466878739013833740465794725528662819200221283847333754532812480937277714031303327476910310886618718479613212088310991230680907359933073859891420533397994492763532630376897411398992316450957914961274679343325105603702717969520219452390325431470743341150336716038238022175435680426878944160581126013995919603277771310650145979885514832506986545544643365694428179321630025286251934240758768363894209934294355803963563189591714697214487805386217194034154508939942919116306308036997914436442749882433682540061689621080080809498446695806223444273147901074238099679369175772887499567339378813579713908036757595273894414976344549173944957075294817904844845810739524065994790179608443005146945205058360009163448066331183608135069115331880491483826536338787663866548592347867370720976240530455135807914074564678654349896647172283683543113219250993972998031815180477881512594797459903142895796009038952516899274233481502566287530199821343811863616746738849810984107628741747084867242337237037477270857791026451085001718413047956541580182746166666695966005287220736383067947353864398863213454228822514996201119637452562841825730560925502244131149492479677955785419298538222061769877438376072185197208048521967976530563802457069468318765712835763151396989388934923492195319708410379052989624887379448246305745650781383804091908581298579028572475347966148392666789142245713165837311192224911293818539301619830943303113462918969828531426816223766606740688716389501215652540585587141552368986181081516189173250729702920703117468010593316448331173487434462255015392247380476460952988095881035391285880659769962549150549619724876469853312166860131246532317218373933123430402428464607742178350646097823186578002181265925520613869848403285074820742967275311370561212973723921186034160111846257474573915226469705305278371602577866180679914809108448855851533062280123249561444418672107891000555086071245324569731476142373375088061196500393155104066590286493842004304413867493273645735506323609812109690247140377182347410112708616209579407751335784955082762670809434619106600848209752344431593536385990402168673091372589839663342586929389851656149416994937968336484845971460192206592620709838294730680082488874745492258114755932065702842748859889618501082461379846889625167966424136352067841193903064781888644145849831474966705006581205649052016722468002774846367375022056224973365653929965078387014087983772331661765972292512063372149852852740387124206067277831686408943953760257759947795429014012940278130852359328210804239624704682109838898545172341342984693258261008989087678330748521309512157025664293418561639455925250982646546950888584376239097037207493958593824740163546213360316495886504943517479483113304848735459359984420025309454705563029621208995928921749832601540608701020214562315280111956822540699051601743836184299151942919075207641013941579878538176361565448793603709695911327257176973234436447571978325624254038646780167527870710505751311140070194539901321959224869175984165727522643776834339060240680918654081895663836115701311093924774366436537985318135593940770734223340161176319887813644700128003887222229778191639355719875849715300390860728693625950004187481982772159465883106568097362125046243632008271407308523794000793643287453802608280626257265064292611836576714167609787683838391331717750728054259679938662282963407753198303283203127283031346562579761695922277809764808459600345553098368883942010390165613340558363218379175199950548219800231529283113389083967065295048047054316395094002282977435245656669766579530626607742346284802189788105482462587812083764874046133418321954652509076041789260921213176329712897230256899449495414964247642393789706119785026624516561339927868793908573760736869401453159932480540506786595598316722338861403029177181668331095997928272322501409426738871073193945891945895669953992187694637547778973675973851454583843900632913267877152341947672345693859098986962562171898463843487544821321034189962428542592537513057585130782434891693582842504983358043182943941417124280204311474781626353693563983933141421797943769411148933426703125886684027513854072874396572277876804509247236864273116474644659053343940284534149736247340447794244423696815468037193746197772975217500252423848834034269516413629157023730292196208677942804340020436197366195924907511956167291568345027586391430262854262297029198007365145957694086163601407951341728026327204433120515386169123925517507891562563613983376242116635319422182056732343294650341745543926573547500308919542982552791903210619008640295067230330743041095708826111546393619567456924207900168908343886220098135818618861045054681992758172873865106451252696445023927919181465038966010525360922659943745680324412353746581292584939133070184700000527739537728384698703563211393380751378663874704394980276723486024146164138727405642759555701476404849357597184884795656703944252227607125505929609233007256725956640137586979422090104875161693799013733804688009434243918234429819983962948603807959130156559155871005202031879054569468557935838817765491184204679876519192616052970958816760337200346326047527358670616714065698399379383971491192120601713441790974179851542160364419801153287145696049687719855531601551295025075082878997459199239590152336418388590774276615345686080493783759783695274468939895888250661888839360325937426294878965651054172701027333090589464277387712437813902604474232482562010544215526545335173292022252714710454196423023494631701017257776016263174803967109079894915231335528548491279590295726650231153480731222015329748540288967779417065238881312499158374229592819041461783243188487778220171551539084127123669141387926134321699215521991017154483015251451801486108887416085337894110949079414854846385594801805566210283976058467849035816884671043832797302855608208037594395366847169033698575547230733968825324803019397409723761225919512107062188152779186684303077547100355020336221083928098354004034322586745340923471453809249823677656933149017770090989036793721280225823508509242549715576296586954458831099624819194072436237756060196281939513172752723729684497255311407532492351468992584494719788642791929538377586247054852994626419449856268638809454792859992812172472467940066318308310318675306014692106878287081409453112080863717029075101453159295767589476806319261741056487211887620306072768551246360971180761747360194472568673467739174958432658174974990823427358359459312341003074491694509749373717155688962221668549490578943845920733458783780733707671968816541867324999766521805037802977612836070793147227585581480643093073264207067448763600956564156128339949185912054280967377472359949986653252295833462072133359565173280568244177402509713256040729555148267615174296834658641020814246676159942365788979983119340376517957497681823210308190926711589406779322685969072413636117601173159717061948247047449083908774441012336171348510903746025446541559013764996574820987704418734795548161960631127397502027149581001347354648096651854202958766208308923623868154657350972402235993682970413433586548418795094780592027938221521211225348091839494746467123042787505046114358605905699223316375140381815422662078115887829206784693760842116073566230472091796052653606121612525396001182655413332513254267000865331709113540834454007249860846811953562140946191206005667358021903010417727491937029022950879056684327466078534411080894650343399826837461558970278471978612702916039164588771563374356315461450802636877377340509982439862534858637407173435084670578022621086407841868734862336247768674716684859352367413117204892300344274601789448913865555933021874689060194319119596179279980386672680201556633913174837754819709578376260716728830445514032413344696886610877613708979918189396408930595438395527216146313911379244030193772640226945838494941763162429628186383674948123734538086039916650087512527817851931743292521343754979383544740643533457794650544940039033713965913639945532923869033123012466414911345678286511086599928510939267053623588410647999172467404193942834484854879760332445320282756322622778948822643756646723786077821438451027954809163364269350123733083005045054819553012272829759114938459501950600294899419638828829129943532019875090813158437642817066608149618476688216064141694231155813179991274415847568182998892662988228766338850097191537906519836142315227483136799078548859771054362418785976107559305981579009604139673091373376190121131814020027049100980692144655357675354615943052599589002846054962369002622068624222795544053815248971848025067490158969935833713544173771678676458235663646168681251690245518866560687912309814453837213925459465295963079014040296061536865375849501915409523174302762934349718530458702708617076707728651499884028757987774541236193183150159346437152663374137287156547247252574198870028451632153680757963047596203542953782015147322226363597208980121222320808702158787815827679593861557678892585700805892074113978619727183761496371866600209187029545642606605945481688282740796917309157036747910455611809748656557128382796721221165366632730043602276290376466659187048028480564658473552535545953102056385128394413374950546608585996973594195058757811195186276837662925230065601474461468968313493775919422653230662079240974509413470669847504906112918477682005483339760421491272010820619884201020533129111460177629268287403779651671587301390586712544679190310380085653577031840544765529585733942464951788211554984956131435442130800208630400041525047577767360422552342364242794184875115590863208324566330097164719588208746641127677294669973910591030248694581912120246521189559864963224981153078384762695306309264160030465616233239974378151000327313225625620709624324898910461862769343196180266604919828400805122258148725337940895827949607910633790278221916646149975510810457999538619864039395195012291775368036785747763444046809397726828446652086850273273606940031297549453351886260916142161441532297839871954374297188017732738648467081467486493164961574969681483312229926650407687650307001509337005115931875117948503317693493834429187179300918103125185728777657523395207265386190912546685574976840683363450603510920478642733746445673997933991860560229954391027555728513491578123382750604670031550287159205976248626851681524369240618338414630837150739544959942270008489592481416510219800180150897528113946227423611287311078105562552088539472605300626757625437538456568632242245660673416786985387085920349211948552484082258267581726200292154521391779126591342258396932080501606761410324241777907749716910207961055334758646903661273922875166624233491417613109294067074946992036872086885583599137684111319218493254716694974103273403886379877041684481336530215005338360249636334264495412404392481676478835460473427117260144260390536924415181562207093554539828658314421194060228840199308462831155599339231551635085909710643496505425315602746406907447836630494713056827005264582778586594731899589717483252030761628809596687630865409316409844414151712372909884382480259635390067493102569436041271149504362135206735422488364343549745979390431861899899647493290889959297116853348535819201367142270620470025296917907018656930684343287378516127980600943070613794941708044075546937561584680311492610423627961437539923691840672004349803852477100136980696471678771792146016513240871466202226947438598126783028945655513973416216047447012948812130190095754484999384091020512601519390674867079547435682193512823461703281401497102617078171524162457362067063069805680873111669822812331341319072101765356001467654425132784908464421696011331071485013812622619685081376022567820610638977241240046208561541318295355823318355458766292385262692625750113332411821412490125108235936531641522235367704878064042106100631750552162560009718616316161013448325692886282766112594880055213290045784219732258661531026000362099321511221502504291728494708959996884562885936576032477194582908475007696266246660046659452623880964652194267783202306362097289641815842563505947336512079226717486070878991513321987515310305885868400672114662672532256829055188967742543383201889821187931527794981866588517481226715513143014151687885143178135807280347328626562857101583704978708305235634299452201271718457323352688832631358445174130717180867719735559511117296491624210035353557296307362891058917156140124298088223328709712543584991193267125245480645544461621988433187663859631911475949590814625471286946750678886295616682066327404711800082037249652077805881837706547478859008371406554268727724832881786797178676795302919530718488455847743336866234382271079903511203358442756043982667884175782518259354689461159242710890244390060952237100640464674580583454129823301936591523738966914850988918703104042833589496654798047199320422579502457091564065299728897572807435462773832909739919628084339498954500815879130285713421897735474041382294560905592251730285033698866929523849468650735052912610790710378896116531438243137508947618162930887423662789749690329634898548472850660672674753556991263562967838446173094573528893127070710391102301568307101148540824504265832150076607858744402711404094311123545636922182748543889963148437915688746153606252210096961887249874416412696359662474281799744327641077402293883736226480161044031343252873780017020947406807503805934013471727899501902209021397102021943787428957481720490787047143517043399951222544112115668326324043613099809290605786981914341510504205771706925835851039246574573417275405046925875957364130477747981306972592660039445097186581937685642835132103732441401206625076567427069760905977033105564457407513070670574511748434534114574439615502492674313017480298082174307365474993981071171690156536005868792534794887425917368157571918317465100572411370745164204285283271379803525111805588800701032810710847508622587027223234509454836980193020533026027254109241807003281484972991367577755516080658165751550155081263378284198297143860142695178262589895160407972746526758612734678602081023345242696644249231214140563052839244880716332181897854711105981859443619835998663875160087213183798628330151602148831668475102604740717500549146848724741768340267854411608568385042863586158227794953305884415456202606919447760199049127329832172176926617535011640705381839790502848748882071874872251511914535957513955417150873296603549477358424323580729444748219899446775298935411436923858869241372223921146127290649862543273218762864337589150817948076744652873149458174832500839581493906338109863081767293364249435558850955648695540257252944013269158866617308257395322471468478525638710755509278512687231040673263778906291646995702578637608760535783467054255069225311297574064273401024612871776031291798183772020382870141140221034317259184601859953593487004744607085280002579156346747825454109995428104130190562433765525179382082431854779275189196397690611983923027081385044335349705380778103361222973227305954452029229190013490732069539555448941767687389325579810044525025429257549239998716284748646496349784194201713524354724063713854642683046601634075677836659900186834244310127147145698381848176306070336615642843871389381077338606958995511484769029799523974005052350639027412904200772568003062519174401757764362428521829709704875425410573696340321454795538990898666385302702421112867352790250814546273977848433245408128097995709117281544190126257041269050480133743213299247893773094955447628796135492593578851226571672514885669547263868508193877332575142210280824453239656318708928762865522631018121357645867499860724624891125931321246841018794523418246471907258930209068409802443103220686392298427592893357267739372032616580404739905690566386152090803722212750846478028514335392752749634036297334797134247020037658617437640031056782689930377165925882618450482500551327003519594084216538732235492118592173574641447139649750761247831043328668502920834510060541615162051109897637887120105219510517598079618627275815659782044778643043582571954061066663145448944678275726133690193101207573343436567092509977135083184395196567684198091552118095978663656243793937570011185032029581899753674590560096205413642571752733853794953302398857090265428511964827724285183173833355252877253247359947580898797283233157221915987710897352471705057065640166298216445879571988249207686956058923269239241668086687795015694664554605789123811092555126883265610925600888437076491153707525173297030440331184720181216927660178014336044912717158536756793250738746500161502970911733675333906880408072724202768486644697887572952229694035710172248877922391973890833597479605413815257247148909323606094859215011506480301886934769918603735313952874206743464291912651357487841373828805623532224315641286916428763166234471523561651851943812471246672270294467543419242011125538598862007456964316027356233263809523079501530773552996708522468372050725648526098051748672103833398256646343039283476012842715952658884276277526345574920328441348795823762250613487157004967999020934538097678799482965985933804830582087182467902492633967276289405215605484662857454226374123008289654467040519714797488584063904795729844068487881788796702822439135836277869988193490141087738419911937810388191003461390826201140466643652591433869811728409798998864093534428324270396826794999647402599006643650751982871451064565449986896790211402819910724070865582379243707240075409040064236415547937285846358731074465779547502495153761147587312226459819147456799489265553050454399931327868836199714861588695954398559246589641604599084549718516465340805476488693362531469740223985220467790746074850573865142001676081112163350744578221151734847706706079970033001573254649607133337232013350598510458960002623901334944026881483477448116671658364259829959997318073288063966996337220576978383156257567876151621568906458193177624311134776362145131829580917155966198025187525031438722856608514787919716254874613038668344969573819812108967182392016174531742728421060111703696966851221416870105488922987008087834365426977829403438234083632339505413495768024176905782714224108121054356338034297722512120499491845633911033285886866547238838343792537392137958037537944491687873355873500250103966730915686543787593865671099510281258993148744820149243063032658805992482556868372151379497372569643444352435303603822011020665277478651463222059439536712376272516716603790245783718802227305525313195383364266709340710328490056032427266912310335626440546423303478366104229335765500921116244791492776500840140255039301868029366522486449607152789362340657061438712083463375313654618345092340410807092639377381777842923300819498736175073098184994183938561565242102630981877499587769767516752701053160438433151960943880011189878516171328203169382865551531187971491247186883160255160534835434439985618813875777683923513031540192988620944475690430773421978465450020767346782411212854624487011914528768415600729829747533725906103621252833986444110631119847369354368071380196150407471957452346984454415484536697368825210841893194629042131563602057441490395114050867378233886594777484701615824674065299370240344147007864259802467196364177070579553312973170475982798839528533808304282111529185938715371155390169090158996626340321199690999450313634392460649468137561800716721760064216794846657787686481219226785657647149427234395147923941249223732418418543150856108790799703183570124034577225542396550314197046919553780186219268346950993660492496598180447631476703130546841237185168305811134981873471390844137310354043688173310861725812722664530522279178275828322251901016208683550332365221501856209751040967981740676439231448042873913279689935108844704056103590725081806411606866586439485184915352549773690260890786114838869114688817603275670865848498047347036327582475960779555790738893088184299273252531986037043166323323600150577779771273749597484176686714404379996701510786944490162373847899396303439975996949978071886003578443240745627272867551969887547356059741238732387017444614889644149997407651325185812410168420055730962325977612226019546950156323864592887237566350838684700747375428506417063611203324873318547692406185192288347775540285935732638684469811176338192887699925867956012091150202170538924555440950421703657566188854632001600595574483189089838048419852624527877760575859665838660528696937423996055685774706924194239986196291342362817525965373728746449999759288540638381102227821655047393433713252256920643801765158481731225781012627643716087113226283024307321566201326911682810480193907191481391039891121139738748740914896193484479319783204824099550564842830967388450041702180818804576136346590567639297747695608062564665171073115540665114909540896804841116144941229099317203040349636961301468830228187400446803313265730584535946887017742832510968148745797614769148587912323172438374747755693125175341361276184189925190794018911693627343910045370351318828876067432072961251706870384393558093512616421356607407078820861103428324645164730588002559612190869694316800475798205256042436875247890448644121513561734826998378590867546486997186513942980960701157946292669504238045234431206406018795355312776162698209224971526969418714401071263264871091874375806417504636531117538475813505760590124300127372786896918961595332699753881617699171073331110463533267611840392651115968618685508695942890214100297812339099181403900735662423859169052817736958577495583271152079633961013120075995027616663962110216066587478577554701453898641323040632317578188801575807954171227996556305475036915877361808371765931204765535531431559524121382206241371022165924489127178652235229641594793704113803798869287741191036676536694826211729945954167488864726232379095316280106199622555163395155387406146095784647280076223807069338631624435342712653265250903016085171395966441435800190985961836115970397075740117967305025813000543304669321916456732031483414235378611558340312320998557254687676337202459602710503575864462586386342436586825963372739274173002721459390476979764228449822614586166220675868975018354397058703735563826796897080207831575604454829666619970125897906879640939929099663888968585348254292904975273879326674006202325480787836501620415400989387114462030122748332922785866869941645486453836588374465018591353542047278324649464844685128528626129247022133020269631770344432678160072560196032884671061039131184628865974131072904826962852675719465234502162185214485973888816352292364376999556393662213540759024517992846121757305318008273063744079447087864681633485910102783185563458195665616855813086783478339665482513578014994849813878477686724143922598126817026498828537168246932763752617196909201033169597453128426762236400793967300904626789348783462490397882598827800460119670866031318023066997080582470939638296743987242325982677037772123911417904517382184971855060891532414312587904712267106804361228936508213536477454548571105852985116740655325134432700873175846757635906772176244424684945120055428832115720653956123886462962806878431646268843443918357467291716330828425266771365859966534234821512592219012259286564225949422981421819533081730767092709646766777970108817167151793526333780908145906426004272709518185137109368714958028228492940562936746326701869333241782765074432835624410808387896379127744622762527044608714539159549072675190951350748875303479577666673788774977674988996387910970401180857481582062892835125581623861343982046494277873102052486635438498170530484865658151415788039419632910102002387433995398567190265370695604540122321393600856126832907703978467738883683164217859985303271029253615387161651722195063265626679690466545877294540615809715327205489097339382552134100448319854574700076356597860470714325742658523759376980045104346065231380477582614914060192337224316699444908818707452459517768744666521282177444850222883788398046259949773722009069464632591637781936289160640677716099244226558459956564885446402874031347429767830150890549114565885550314552770687108790509880644709143262922246402474824395257428538765950341990484496437363514791434108582438752132413068921359466247657765958187459497807396325720910890353021524547232365329877529822796376125102959652855968712664298347584643559868154019475983184036224539856532354809918912722177612829303122708862227279586558338901004674431371823738104141254073111338549668119210264450386905067390844346589641410725095266374673622819450656172310803314548455947760485642284360046580634126224541670435361178313462348218832249327691131611591261090539343609689557459449175956982670668079533690947590744084418977942716654180771984078944906324590081996932731885054841791411088454331178253819222897773252180206214337798148607896046971987516720508679254835637243219952336576585527656507853295805483149388424966887964808445020124290014041445907385657032375590874866779459451740415804412736836270764660691977390246374327332574595626697220498536510511087810850530619347935828216444638035032711731981439460730476316207619850715434211090021606447649223353113441118969066269332557015518003188998641787745521718845113107045121118577856706301510474965557270079951658488888736271243885748990481590257254518505261330840823347910163806124024125385216143987319047667515691873656625995862314679114915398047604351970270102649999252532761154365374371053129102919894935795574569461518481599095614943688015467913715981381592366948271779465154892169408285073778094931647333337684143268478648913172274309763924355138965526865700813698191813885082376395141553565664351097999533720331127361801748687526748652740375308539680675601360347462253162395655452649527339210937960149630441018843450412662978885624959413841330840007016219282562191642586834184273819450323028698990811020588120834816329573729697560167909066725892232756763955398806397129952437649884312833719700992655702559210692371491632501575141098963953987460511508655739485484887371991733143165554968770643784024802799612316653920340787947132769539744434965966675781059451966193918495452192741208448261090554184006998538961372664854639293786151459168822367859839725109977207561107583429953564652796323915241439775346431905679201933544096291662719380472957343366125303275183417496147564912991282888278208675352434567959295811535039871107336864241826621133129959632033418580733802065439696290804087161092357858146141735147837610736376001629742878899041555269725856613692389236263282925214383529975969722875732450531218000101668174241043455568920768117657799188971512705102861520954855933942145969231857510117116198381743182497425834058482198140128908321366143811652362393843308272476130714015939211629315074662255142462508425523538066940880822571511615030780199003679603651309767085034445238287993628579712403627362601694096060690136999390970043138541698403771785606876576794063267418175200843101858994677381175235599516587982240476739668549825204696136092200426738895310645505156878681253809428333686664269416933246375420682479235650152855083542381727191245698092956933083374284775521028874232686252640080423911953173963914495886645765633648740907207495601753878846813703183368351761111043386567670932600669036264953449129428582293923477116328259638437443338045365092696211462030118270197991647859142197370371794967975952341032219064228265055421302982869500571823665107325507949624984317519647315059937843132164522617213534383562131759155175311658123497265856727972359361391894022779670504320802480410711354641729587405435615882631071167569295076303825473337406004148843949227729013445398880927039971345875463705982580101518683771714134580559356859358635820289810533746397053177652726288375272716564695920540941607631640229883630629771601280788395906314604359153270655284266490043469651147468409957911895354260926695751840463131950697460927283932645738332929652312134958487655404014032066494963122909192609245279927476986403545640655606263948287228701867391130680803713640855456744993574980684814584828327070025077602958703593316698631970624103345380800642441454810373872091670402961698719054425834690881648686334964926503380700954882522202546365052429693516871035307067087873739962107500685638427530705480079741243652497351879390124445767287277228284755509619277099564109677701406355909697675647469623659398600756348029073403814734609559894582154243279015190143701026538149417313312059248023508807700741723037769106945131490885161397645466244886190093704331765640207928206204315591149555654595995356401717328491627628204904142273881096148489798521787896435034577961051953096058190161242391546985523007924957520023922586238838572756830499039358227379820222155906469130871895499137431564667794054801071695952090957150848009555795090248822917804560249729127234477159339258048868701614757125444206347343321822357764179811072119390516659934708500459707266988263492007412080650331194086438837883635287509056564702493982449250157091410933395745475860725272457972562965682499604074926009322190185688482884727893882653314154222035035183056652642416690341103210631520115101571462911189836794060741780766182525393112387778107176592146794136729749860068310054476688350078232500430420039865583469180010554412964092161917596702278342879608609362653461221723740828601507631441575056204264647461624386815568411021278223372768116819369049289967179029616771591558875347054324658825579564375832088690066088294627630715329150270817156872626038123597555187476810256247093444829504544484954769375518862066246289852895019251583030261170561674003767349090149690236204157380990344945965099281134520963681144585105368714762685321391343952544597445129753805236202895829069123099243956007623709066348789154362542778767200223215210868668040527895587170075903461820655426561766222421912044540723620866034510511817184543890247491927629128055273248147044622727475519247378244203241354510682250140744713593598364021322532600333188892936625306589969362822733764981127331987124678344247696743015827220278579742738754640034183021942836802389179112453166419126183448792610617387609840341682988779694432830765995593187231819934545091092121955999156542779710268513527872821703425289380684138183152802663441616425229891141338471305353963473544503515083930367799397113211917682943231961916266770192809438086162826200325284023465587918077875361449031216234114534527838395004224405426536732732609723364277798450918703648609758676828556972339654016514854778010989314202536170423477317170708285326339326684207281331466312590949348028900611821623616031433478759327753400249631382545358139287601387039451170691236052712049505665412542906049859770056902148982003209107237813423932871325789753057532999765596978832635519993122667257426354897711367417147370263094380271274423316101784850923342175286155137518917682812931933010655074483898551857664244423661308969110487602345576145099828715650186672924501281246779476654159669479668507275064914253882413862691031109884203478583667440949944673581475418873945229663626316162940275277602838916982342057458758647064525105935441944871859474237050024134151088016300559520924410584336940374090016268028867932016258561884770116819708389863984597613298691835794589474582869250371693582880061655837494418903519003389179636459234411630386516385334679057823811017596956682441458981848434098214959035683657935983990777796144184373366742536613699828658276748671125729397703277184891495908407994236610740465258484740477424568734780852393687324253173929766683402033618115432202291142867162221624269225953940904927785120990655858038798440404649828559402091972652300089503918834999567627135252312620560894133869410038387494705039906377911101362317082469046110643278798145065302860718776826216613225838403696955978326566559396165760226827377211962756406885999666491678366191192359061667764873072424008575210564850480390136913258283702498705919674863609313875973687526210657751592618460893842871449603478222651768441812290758684867686029025120364792894971333499868014330980328648830576198054778770279572030904226712608826478845915895853338196255836032051391213122922681209246402851842392830244289798990548078179391857073837163603606997178009329711123086590425428643647651470713188058993079777264715064858917503930261775531152833007143223292811374533583137235683347529680384153101801842680121165984338210518643851358852507977760504162036038258932382990417766728414543311611717542592603099257932660538064239924568355892079533047723688867515936860530265318676877375098022226991812938614454787349486808001024141902499293635199901511852737757752699607450978807095358728676751771228554193938575976968111636421750188324204400978556246851385325120818963180980436763054020929038283888034713331439693483229004198300173194378471569606399319830877117379933647646508687049600696560153445811851710486091147758360533418944604049723717781410784844755566861567162316925912418962387355595002019625115323231784741654881362280067311837018137387936412098338066124373713764025656849110702855248181442078850003274894193218206441322682237157417025873813575760810714213770762148245253105410231667890988143268076648050550134149128802716396939588494023994943448722030125678462679814538915888043704715380379614338726898436496467572774016617263772502727818028710298327228075332498302405777536652642967937410061840672692954714260200128451046587425506581674889832178841890633376115014260245680979162184559565356463773697134559509685424160474425239173315511013171773767938962681568678579204255997761301019175094880039826461530350619167849507638728216575467319567062965453657214746280923974884070724852281456602272548254022149841335052842189552020999905764614603436860318948188816415624356802789850050481155071951790983646116330200299477570862008077612033227088688027217610216828178638934269566088867742614828611344426133083481845828056633773564559715305094030788456696077885299626146798606298068332116116791523281896033284480925605915853727670177020926217307786534870246022135039554774034888887558944315600428840323284137113968511349545105053556520482065946414254729393716010579655055515704511043032458458053949082641349568777784238430430833068144004188353506345217211653262155810472627737696961392089779707728518818199389057605943232245957814100612981964364672785736861234957185861424919581342005113939520710463534397670135401172068490513130538704181373111184737657194847198432101753214878514571037650107702280088991908513102547792965815185472406582699094642200629226080333225453429109731868302936738748138403248996968312309222395737122065800400522623821594225891557728303052757802274771623599961866972684563529871652764333274104459294798708873506184989192018012456939743547473269353786336996760993162062193258847342082196062991554699687225837048620540514005416457814375510815783181281593647735632379984451523514090352522685611272515326443366988043597972407044566512257139587991052025245969528018439483928754579004896454354096096070523627165462179731290359880058684526283214012847375538336792112124665534797025418438364641320691445121419774696947259259963259775275022685926854277799284095668877476655633672337327828040745878544636061831331993826135802411103149050014047810444981678558440436402746149739415488144401289216413346133890869157878864943202262708918039697525872181236163250155977428184337496156883268555660273454415406752353917716485438341389340627537032301382112891106336170472202693601655879837536455013456900403608693140629675660234491084466820810183729078390884522299077073444053631609852999799505992905934172434906149374285230187921189121112072153147373284865198753745573811173910969935387527504498136681834882792932759604359358906709320491449391865764552432727984197068731867379034492890413178157347858879946682730754363418632660398562456835229124225002526584627957422655566736848697592867321437989466868615558163317477525010371563099614385305552024382676828614730938655513922378969047061885611943410255831940885701430028311785358660981254471159902428197220577982565755469505213332927705901964058287789226761297977102096155787180941198001909950723534394843227560001557953490107849317535053508440080281996787625408755646450899792438282741480259962029523833273638498346489239090259072155260559903733590452676770017480172525500481415333287267966596696190765973156373476619357542492666828237027407154424144637702768259057534702638228459769108313227063419440576361870102829592241965693533886559281143911641851729115077303545161061687808637410643983306492028953457774865323607881056070569778853447656972228560889631860297609256251900699144355501255585785619661707411219749453586176693458799281139609576810266133311574719213367832857218094070768924413933419649356965241779642670574880925826190125526022719676935119716745650878943415725457254671075908869373750702931550267792018303695226991549409546226574504484045474405705923102902146364424271411337274706869594784609387997229419208744635515921145825502271287477890436181003829519571695105124599164114254116439843568101024105132867758714014023431514784777965432109542253915986856864871745934640901747444400734508958999192809150313353205539692965535182767577041289267740502658138698591725091870419697150185445192931543744077802776061480946340887427685510618062562835026018474649834887194848763898690815626691018972288563271664672906750106552469411661104207326439298677242181956298119944163327195996598538538663904790513276140946700874050719224273045191152563671216181129965820904067076862413163498335361965997363475486804350292045124558341244018454568533567589789202807702065555360168670047268426754530909494498104200690362521218975853103342652980368482637741959854224919401516310085460053738671872468904482967601464857607874492533472337222114558112222220516659552044863222661839506058211285820531806868415454385107856519603561030893251464221252579386113781692759336899579321642464981318854174289423034348745315019002082888818126004274132974652664605935172652860744855810052990514759612956090716353977045109837039710991599718522665241343160658176085739117768288244636878407534277222322628102107411388627852361913690167366067326485583543536322180879904355995254481992019573291330437334479848343019864709315571561109230457166143261223208064586478547416418531790950562747722863412554618141619015791166115096177502139972963155563891514775074136009457538485222499392819071294921424926012380899303898300886609673284788563200314369688827691908783178586206217745021250491101032624323305754822035848063243675168720385391744078867551537468462721458650133441838848184522926701415905639519427668775204777068557813659926255750449329092425784825844074816467210572727673936033389703500055757809127873340901367667286443488610162437196291310156689380189569559176096524975102899829246889435784348616366280834862508862716457948222100458597421357917862223221037229058327266949412224269616398733072260186085862506818642886097906140602757346018644852483009509373241757619008024586320642754859728020139580931236394133403262617388677624601715807840718221051860809264161892129398610282496710982086397647189489819618638014781027099528278930974684509332287862246011732578307010065366019877423215790510160800519899965249247290782041862403840891833719220617188713650517154663041579014537845626677666435670481274845152635413155209822717217518438111872200334674695405933195138383028049679103674297611862915863898480488853536193876539692261585836795769677530366576688738853503643121654846528420305104311488522919783184142523529280914518162763615230600263717895513098001606977447188623072902548885493484384588196662711885296816660781775250002985760764949042419897475424516430552286641616223968510260969959730506952244821819057162046324257950952134311252695545710180201742295002601218823619342447723935451053823738124925969011269274135862332804702030329399277188802891075525600932098399114196898247027329500469292346707547960277597771977109981749101773511656128117469496077281018506919153374017912904655779536316932782702534494654172953566671858636288554113531713002109854969441356546141989929208413877896435891027296466104821751880610598124900593022806212584204733476279153734884826680134363119583201510485483514739589203376829893922461071773218686470762431607023588517371088299503779569535186925989937004976913740976186680093396078438606039968874812243504104438461785354941081732411618416613163767050111808242185539961982615418247990442875293833865931336502718772099763317303366543283138316530049057012655928910580830446888707568872347137690485312758246540407684804549964518690644355518020423156225306424207466316837873702442666885188576874518565311578857074153809128810598746832061516323838859073994761773301733680160188065036778556246449347629638983187717080831173148539232454352599427019296270995857466734505496291763865450882193655940252773940319136562299651431067756982548291331695745784818597225593792011767816725835267659285772677011394447904035955939649649759547374981264933843854604617355512826144743053766719074637059213801841625467366736931507244258396227834734120197346781342463882008393277550318911722066735328018055486030750637949050901509520002802215262628436263862690967222507751459999287106337443427678370407877615050097567839144041864917255886467587349239214623657280713696153669286272785123653779030272323876252591974284770283818992716452520414957271580090724572213300874071759771679175541336577733769540608239626045316134210123868097057843965680241752862031641003631120044152488335562858950158295317896212772811409770691345033562080637424036026802295558545035493747387080947362405097475295549423185605859518782238531125174591656856466799316231551742728579742076424651856144386011743754307047183204601759443317854391294697047628957458464333910300356879671275524067068595268346351603491236424216594516832695322325188322051126127599239843074338116748905801974972002789209365881765759996393595831586459819297904073117727945400070134285680280049167298458900255740801978533761291495526654097057574285850433127365449551762556265973915961934033185690692869095440401830237691138610380366824466848335318786800350853634132866570571116940445056356693212097605416499891576594143961436842143537815704057123732143796844544766184612912173565396046783630440284193187740751454674062736457005242023263947282919837662018710753289312843063071958444627675264583800108753425069292092279500863885956190416410015740493810133758817774805282682365342071912327328672793521463980333340944490422009066135663901045861921654901334980097179968826239010223667133471334431316829443806960727494823720063100124483653712299186748286536310055983970760068198164511354633550289538409814113746646785053672498159004599043587952809435971807386023173001448428670983284141863145433138606672428327299079326185739705338367888952529160685949400875856027825966331115095735715737160075094524539140678829701255310407444565306580006201510544667238858746382117611420768250579154622265855006165072790889698682856057301852350338312542632383389382716002498832471021380856410518469909360639732608055360602638505877406474922604248163613870747192409807512082947479467948896697112484371042687585632956276857583874132584089170824240054596950770523673688816421858470177860465496669434261056640611961694132500699190839159128783651580238816756936598735427847919237601609606892430658450627931268382790911418084149457240178849375800210926961011978279823707410007094775033952539438012225372589095025095581723993916717776934035089216632382607756863238528918569961950636139999434896623346793519161501001523474952840869290414781523967883033311690511276278501066963478520724064493816345253340339251275388479376376157285521802266797489610718865816819792659197821281929110815784605034826855958575060542606704876285193510074390283912445923325928423834291697495644427912946969178408408025495977513035084578792918697199393830140765117881407583403995705236098259673627729123643330806658094315589371792606775373430915187625803598521162889552104765482361821831156773950043415594665565248475420699359653819168900583588232158253307552028495224849143910556651574058048581277874343180849558410988092311273028039408033873633841855074195598248188080279747889204032101431780448785238678463538133301629374690504505149843202775163142121108595896086446845152728628896332266022368167980109184995475064109120236362414663013406950179355908835237088264850162602146321623718809491429329174262036261907453827189944481348461505417784460114250726052187254758295472826702880322173529440530192723156200348378267469472551301077346263313212560889338346477114886905041540555422335826009688007167144604530714871756555958659046921847862996489423324233891385426669020006723621694630387791152801882530286004892242227424241958215292868096292681308280978354263017560662015540496230658092729528773273393346766992452840135063102902776650700426374003185049082223428154102420433232544867597447087009867035645454249124415849027579391448165133892975784104899747201768349621473480387995457376516791261729273221988245672094336378519980945574276556948100536299345234095228952373854302777774614676915442885966298106105193676988897836260803985955403874825546974104621703127703192176804304962985027135978604433445694027109205559699859547182107832579944052098882755549288731409888168755608078046180708892229934755361292779226180333974739245219795740642665179754237256113193749644508078773857154487836840276103304965989087459244134712329995477814276004632625713543452257329557390636357526322698554660812084138653062229934874351138725971602948564598932452866711258613819173704162852532963486131129902045363421730282933180392995728220495577678110240479679484504879090452103312354281450839172325666916297138516013250365184020643738244270339823773300973688252840425319955311755892312680481655805600681093956406427924637123115559612621858833921039031125383918606157412152927848318703860419895101374817629526502507875170023727272388161864304104010529081137778253185409659499572401189857181916796096449273943900749982360317354611820112408913650298242028805185298126952724273081542657889199123698301678634770505161771011506562569712946699855274351369865604692719861980853233654125682996406826361118057538443046827832594154493848880428967108945232654074165603748790892227919081541738898387054446649245499993307689515002126226853952153631055733503945148527523436519739395412100509037872960272640985730597730382146082279182651713886628894972499655947940198854901141111852480641597151192502984347677087531822400592961807359184271768710927654485782677441395795492525530986677908254023865485510922639215968832536366518072304498103426071359654887258879354490545947100284057346658521898602597616975514945981536900593240700764359896493123680929025840806569351405331899956897716597897677861854987190115098316934936490272823507862267014037855989435727866104021935032892543010737097419638690605309044516799926697326327964618184315941067335186684625794245748727379983051977942245426674731322588846359147656227453679153286926971698486103916855889659312936513761740054448366368609522200331744650942364048904770252069778108887557956355785260141374107627001548018635250938363530141889591907902920629735433916052577640978701604984791273809666533286963307364422710062139187750114091530219500699397893382901690358879411837827863901740924138421346067025858209652176811264302056926656803207407269224125192537936279457955750037148631800691594930051556902439873716335575464888810518304337500942383858523608933919945234807681664086935744266340584101418311942499662678941008855152815081739624104900480933546348116290459119141376332215760878684200413986455936739497189020064231703300197357774902599285520290053778924405613816080249277904439795746184647916540242927101238324936985220512148040128166131195254032476024352472246282541167132759632728109300124518472651807909319966001500010663548832755555520563446991507739223510152975788452720382357468204765991439769154313565885378236700715605284484734797254966157711299465206381612085889076782085482909534571295075061076641788444068968211746218753877264802516203902079192662219259139657668870542551971593401609971353746602427333330266153094641735200466517988517532534875368070448442211014253938272754384090888013435191078366047224227116885574529548761528411837631462099309061996642301483840103545346017460507938833430465217830904648928587228449662012680559226009945085974835232018937826652846836626182705779131567557213807145679991150918376393084066953443555777961405937803630608386714902000963324872183775774978446126170048800065048822604183130949946011675814280033796751156227677330971545120292464644365331774046682667360398590533057812669219735821731907436405195478005046666994358160621018486342336081587465264734139711326591823524507096520522508317276902037435444333208686892426928680457027677080319887670074448161913083492348618513996929776484883147250596244403798869492010218170057947246901339041188567234185366718378108838049377165938277802454843724888715957762607652513268253228398669166001561221390036339363681483699576842432706652751730859284603214666532190760429246520356330632222351827068837979549571661202872095759615092799597651066938248390403527451620818178770143404442645452372837545302283009079684494578424007074699017576569553717176921158061399169209558366434365681082002726918547365675675763118131235183058608657601167421705931334948210905670129527181269858880151471835021624941575985775959646285742269924496698971334824517977293401550258753647485637272205233777914721408151536173132702111567355205331325330289548004144126143453862548225616678137152733272998979759665674475187474846714935143790573873263974010441967874876405776039976869220764201867608214199540335317654544204490054063087640714687420092738694325103446799367532087848968101700309469160921799838020422311194438970069286349454607234832239241772083426399095873766145805065825805544275044139883644898481917786109546916165074113844748714709372405319634290811863650229165330838291995483745214757755535805342991277859699702431211707489436539363110706247587493003729708285945890270977519305481933202518299687938725925860064794034047903826359311774086532711841450774051603556988893380846959429069908631750879098019237024387427697293573846193926767508535707676632082331259187963142975613761314220498959976586500788157143273953683013806318805365191491778432848143205588433195272088012055955804039021725205953434831096409156549536599318862296775028966837277254362376786787275477308743756862957594751501330395135271022419966498706519648749315464693336953690684815094602750673635461879260255672951247770567757338041729254863372288721647918483165208658241970002611636360107609268776835518892504336370720017837805464134727204491289303574159017345493606252802382167967463026025504401752186099789607386968714627051672562694519755318089493937459346804205864425482199789542778528197220142544030477644382843870508550305770931751822856679309263981798761694763945700862833564546602472306690631886475489701804062727759525311869953458323503637506584193406059961690998979628010846300921404955874453586572154089885583155209402031057932137780014990429618992890801233134557816684211171304466203109289796865893258721960447425875795720907473199794514988315417984532827676299620694488432177700856786536701959830925162765868328497935502184758283736531452902971181136327775725856559483295693663327249734434294752469009843885472017389166954599922877273235340967440674219738188939094085901688083587446775009652279798038122228936928304225308511338440649426624173488850658595278436418516760708002490604649607759231758059640153075481344955335762677399594861108535174058142835670405059889842302390438884557195348043177750979370648589180552175939406206331067068984834971504413277874965669154148399095414939054343886147289013536952246548769897395723934751602362308224825822571516688122770156362248105183059398312818568234601529411918634071866164495017750818526059170330625796870307621979266353049852040181492524245442618448422778656331984688573498747537228924653574013240968631512276242805113303498039145586752340116854632623634445742608655729709683834458063480804318614693095466109658136435776740644872534758729165891085787194281200928920561706558319199212365039148170458458615325317981207654994000067712680982886858219003955475545102413329169893151700789687977758117584664626230182920140713826800203660678161215353838244291922257802778188501765440205092304936596027715767686572577695399531551102912281935012635671449730294800009234663141321622767050699316080321874197453592641698017107452670351210517975900523275410202528029304556807610496275506431777016615884064532679696059027940658653146626058468487936200183648089412149505938509950252461997770595966678995824810084698696337407231070076946100478894043732004546347184751283989109286405629618971834778764074718208944925506001440740698029914427296267948656805558132858673794263859217164644146725164536075220404034444223691738891302348475869464569226952279330722143941648824988390768371340022867240422682851790125900454854853495610872202653015407656393211497813397167088112535538196979432619332762051006556360307044155584487974882114188803584383751408604912172195338445672748750799302242680297498734977352322585226070281909825276022665038350666105499295903811419490480940644840016795747777417032209373685358280030028740347594687356101701091641523691291998840169176821670740283431808989940637732611234472283254858455137948834815023307755388752506170817933163974422729077552806707841431249926891208205166527276764423892530881416324214061841427675074685235142270437253754606952092521659009487381391861098875700508723354750653643204186008007042111992959155790804152836783662809415601889133892274295552716431437779106495799106450767470408184786399183840641074310579510472074373357626636443073488320866223592109607079941441525656354885328465382397325721087058043065897666324903773530993976101433109134543194341853769915888725799182907495310108583551341210975936058740157395700692020502273702247205932800662994792721231776346750907873994959089216561586525093993224423055259931471793652754737028586818167991467160080283054372323896516363101870776321443440505332992897224541627288339546343802526971102865527252439401806133183800589219329702031427554442334223779317189637403610644952639878153296625327578527255546213927933234922004280319306068625556974909406902913758522242554350110316367483190695190752184757535410668966009309870130124618745738555415723914402305367682675807611545086437071100997901347447332956183045048413048857214468035896037561252480938718648726348137420546611798658373957192310077832759908362112968169830872590363280757289689903188152387881097998113384989554234208849704752819199307798085416265041332859765942029462958024023041112266338628729928584558284575263261459893375644861342966277532699035280149275972401068700917917067460437732412867542334196386059884064635689302084605952173625182657076912228911186024033503413625135211750253414120725393835449865758042983834185434338726797495056406060302109537087828444936430340630253850833303308114372053571143370806491236823723859686597684888037968532387061864530379274203867977761155156951732847521080195229576660473497319971845815295552257200678007895116006734054953342081785991990177025494048384718666412805885819829872977171163459392220285273544151114738602435014999363572609200505019149497486372917071883745596208211463769084359868487330116464259671145727602591116228831928992611943133550476994346314707009066356434138783136928689992282371036129776889038608589820485823087930932627179841688737526834144684530788598378743886871415563636796038260387039968959826559069486211157000352836842414939551424136808577267520311380777678440982201300215109387280176448642633662139717667854218477389937632545316576762029359504927907800214767347754093209617423903571137198522305740402801835030035300494332685994631640263302273554181660856696057317220382042336416931150665472498916101795103508315949414103591358371914053132381268532899552665317747435833782576465226957694966560852467048692159185047036335869248273272074270134362531492108639636145686222577086334257059174850501605048272518382712179586883752832714212608644881786926458793541978503606291384049414934505829691419269977170610721543443630404299598605850871585239442839045413651149633006060881951467619314459489006568354397170017310071006246202229451453953317665156707442341286735765274870148782530998370911377814224048757326322223422430619324151164063398890406131857430773207007213093667498460335390813551713528389892652770341946483859657342189294772553532219435213420397809992728826848401298140717706827684802449149550969199818145996479563078075960254180738317699023466494780445811615306417362937190795332137984683864895187528906446097905348220261823459943724444520308099975540022889239763708278146271653788371530160908631499154157421327349095140181483274977947737732948577214577845754770343987460021481290594889963134202454213610140065824699430899667672430386280704981771193661204111277475104347018493937325636808971711798353835791562495997996372286228464301030399487541094059143818113568994360510409278476262576132742640635179443495915472352019578123106964447475601062480006188992487276201330670222980970251477852171546573517213527343320585454534675919527164457654722844256226534556808926176637952577326034628183122225511039380952050598110228271435428761603699385629378747761828773872768939387292058546229023068404339926897751025039482056352889045047636763753513012877695958814918197119085986422298927330944403782985636875713724598904590444200480456133839063483560594411943770040405072734216824812420019835825089497346449789301956172018518686755801071473506201865334894092203259927164234163262227295305345247617861175642912541157033650940898237776742454638151218862652118439840303828885542269773182010125632067030058991022224259974456480351062542837207883610713035595631970402866608737062804894057191110571220252659074736033713977052661525457447863282150740640437083316318190186465038176336645003279305916198115998361983680064778206510215127027074587483859877512000035856297729952931754275767015650090105103934071968061331471273023423582530504822155940192230120904057056179253059426913940324785066192434712531437909674840460178057596775425328995518144063782356510727137531852092153327637529275185040746811738478946251889738821707088234804587112635152272164454847650944162605161286860549083429439138663811076775867664095737821182894767913223008393296546229319381479072918154320161851573281298666829105915686502622098627325130517976906724924863497142937474590895447752842717476440561369312029776212465882360248148768034128944715555175591154049928340575419306207302019469454668470028775093901743160685751852802589986206659508493386736798415040064658856047569196216275133972643370317888339809703901028313704853170197684540002635671959017101719486251066073343291977858535763639009290762907684665124507964928167163409145269909378045855574677239754718175216800324584080052666850410020254406604339373597304439358790571957589004969628408198761637776577152346266511986302427872565049964323447850043317345193475512181493685743552103599531800961641044674296295179808275684201717413054533417674346644734029246434548392493140551362655472904151194616842406463142390791723398643788862903832885061185854010756650737036553460567536753184726647741920964863006265019379840479964046339220012862083173270256029117676771770854580400822774556933241338398159025756223314216742428857696914864083186301061667988460022692100046635540106246897215363005464964418264924359070459065933649201994275570065619939323089070786248868382631619963412874551567183938204073173067885657610761329805569531156515983900621030424617205048217495974603502049034031374816832844102611512396632313221483887637345191961081399308307793641935949168432118559939589255815389896795042253563025317612661302346577916488126757989070562013607798871078587477192994455026917875585038009505918138349635940895536604675821517675815054187030702239829689530548809774708365946400056524846135815995268593433500642814249918593910121676923691024454088497540264548375511160512573711324090500102617164716149314677995683439970444472895913128100729139131309832144625574484390267275054754711389651575744470703909792388158031495157694924061158920432014502275758294667049159164526861241529956178510779177919473886932869041270351466865017062261398013591926086313640957598211352658513234132561792790483781717385931916780495470143919745329572752988011951651032200126879138473638972665773253583239914367298481880038019053383494309629450719755439498892006403700141743481466987033502082580140295174746776632012682830313080805706064365281003289143111271498017491745844568921378276024786265176734376189099600293811828119880603475203161012665053994883621790179989278365340561518102454721294772508415210349966814613329229636918057445305180699601074390203982611927585462984310086180154889261712943859445896409897822079384183678734283665925266909144254415856805497562221205424455584879921833745686604974733394857634131517511237005598701837617661835816430593457364451747083191120009847268154661499895654105750705081819755481183844284526431765176667066712819062655260151036423572658703649293536691450613746466335027896698329524229794411339816570069152833047156057896362443543538454312924359748709860740844738634469857151239754614081308337550616936615403653163093751764925516096873323043300312300345207770013422898857597908848108697779965361782017400230069267030785030335843363814125010281603986660841346196857979782899877640228451664669727528768877300107876015401972917807828175724276114465023522977736238072227337312758462730706985403264118441046102277599506122443261827413965720852584478093025322492710013330478177857952449485952506878312341804384348963868839658496651759767687931127498179274210934694214831270617436241076392802793015643713366774723641119573965922947727782799303198167263208720280732493512142193856724000486158812212293570434909733707913159393030345214669681503515347962706475250508564141092075975526859222865588840492266422431546835508207545906082866395941151918821477937755979378410274198178038963348136184383566019296046825141043755595410633677860494881599973420730271443191100956617643345438126357952346273861444063043407957207838449231976857768919008502591506599609361005931258204047759801559534008896306521363241585446546898180739766036769230958577328885947992618856270270902922631044020274711246717199113229693628137198259716418045110189386528251971971758014401266066103823780536312057200502661218373671220941658112796361243939426308108965728004254557433166553166882235680602052067908134468660147244814853542348003587220575417531239609407367840990788450252805236047345829369839428236034492992297648132751104186588868606872334830616837854046420092988610113773538498603818243868071722676263167240584583567776425923417108022006833831568932723733465335754306977289324130566747248309731223421347558048200190525275572787067064642768742807282612059944904794044387542359653665255403529995863617907498170893870417090241455454563438528532343791311198273544271224878539790225457699910299602489326633645063765613192289008632335308367980206573435807909250633005214445215962194828925133601817170506770993709264528570001573880035368246664978980286274780251305212299787759572669760844672902148922590838019647823337050649082392585923605886133257231237442286736260121006802398498259963000370742944422283129425942532736036980620327378795672517908707088719920871857359644650957420725786717355783252204265021583197084194403748026531388469612821934734905753534513008427723225955452830028106819669064871558438149714843759508904496465234140335409107323285496045571606275116073017770347382968144912292346358923387860485737976624764827210757492145365129732399200681971866706715676519757024189615163685131132480207384846735536218002837610753648867060912939930402106272247686215566955989828284108211515024672223367578104804960813422108330627672626014058365222691224033537505862003615588932707560098971145836569646884618752412464924783916077652183543619077873865790376577060168458338708674496947943727015270273513000775803091854281092499765716038840825464302536977600419413804872860086009409724210888852751158349094014666246893321747364762118857114979344800818855439982147614769835648283528783973330434932844237928645740221381566363533739500504876006391629505877987242913661117225316703572945570071074973544934476123452435640963527561951054097265193172854475375304912133120458752465069566974531447067046554391324392208079782727296209451052503606335611217163693829084454183101749225224261190509880470157683030713901400617214528481467704330809730932469175163638286307303734013778673675635859279785617818953527596818271401426584491495219657358729468411274541815369322942473880679741175642818638832038864877894458108726406766449083614915897255630588906269476183250080488887059353930922619743551625150159391729743718034718955480785555369969468778159232784316606190712165606647666154674033991798947264029180375633503882015883438392143814149690851004880073385281058986186679176215900231121406088320948038875900663697115154261883404476541820575366367568227660826691665899757862351127959949103130209349086548021886101463952005424916533897858473928245507678068082572062538776141958544242526182966445241227672626636090405234352595288060762977722736957880594768137299351595581827893579683725740276451036868092744091613127223256756843113012746652037192031250927693060437140298412618420753808479104405356079855127176670564452127790975669866652536836967734191850130571127056611703549344897424274309379474705321391671328420272099790901030695290475108245415950466139083836321986123068982265407408847639412565963539082155180520763195473477745195082714485284170585440201807490584784476378267832055011731374743794715176700538225272711651949958954186062820218972653997028086733932748831242006937682452960059369168901155962319978614874995252556879897341888357466442849171155615574642760916652932833774909099729340815537447586071220942798900420962444077219076621206669293785750331108083446334240544604994673518263302803544040652628243208007485705618485654461192705060770464583498542886782452534369557179209659748718483457449191361859867013871562348051086588532833457680518562481170962229751503154746872789023927207434265789386945401857937621050243317766274225862148597377378409836136884779089994314313358023825045951156439591687303671495396902992850348437243504174845324211422026518925946904757784099251963252142936955214236793629788117088258209149866975153827939472424850329426285610227256580794022194145752686234207732448649223578881431921669106076801830763719815161113873569962820946454643223378903477183632084944069358310454020719165607146896990155126438018042984186136128481604860049491087134788233404196067088706090875646534916940265557971722364071778222322022132437833680560824536818348842922740604753773962113132332309807220550107841466296534661408093995529415536938905678692547303583039384122893900079177945759184907419638735184117969840707642296600435334898826885047044624187272507934269786446318623518965040809240231515533885469700112087733641381204446030405747884327457991299090229684169300799239680868626618199855595843979809231481411281326091779969230773242175137352943606335841630871856192653907580802580229767535946968330344681485366783980465217148485382847723383897354122742633184376859610220858926729943509547313579688043723241259058271138882653032917505472016011021313865951651132991152956740042186575182830246165046924310660270164861228707336431403745657384314899834288510001872219058042391459658414462724236870141302281730391632914566546804283223264250603625191538815203990259595916425094769259324643313747681154710399830366428337229841597453166471448681048533607048218809261905811896178999537363306955448652127715108627922013437967340797271742815883142084120243232160746148138591396579440538711312794547695275977288743836265878168230214506619806916326549186144960239295551623933668721557736733270323798883337932810309414267832789160079499882428624171522750757399926244919272059456704587236342766628499375815700952716775347944952298239104737048132059854047893529637813144047975386228752778921457035371772529559006293227862557689771991370651851369488092991363358506417441115816370413073666468681757466643151140597457802774160571174809890154288401551221196866459837734251488273648578129943272774938275825022763671703142635701758872316929558256259555663886113722362865346821328709742500315913861950581725223714019230149096757674933430000035925576414021597407073444245492113543284555298725480580464340328922200759947509032312882241064268259652223405368255977667662759480262831148289063123146629532322928744169240002712671194233035261259172072295073931979052848146779306664455614631623113596113647299544550157454714799763997610412152914885824257403676273538815619284262654798207425005598745921017185573040991569797233105320246207012346450229304425426083906370483336176109926599569632418568907548135135562049220871769076460662817847741730695111677650263734650660015692848963992735909550358631671566183412343129059052868501006089259284978556950892638307877195180450891331469261466347211095460198251211343361137451315388437976786480862214543027315975658355169766327146358584207574974891208013623924020663891932886389797510314886406707530722365141078188702666239844206537389695488559513987447957425685342698987639619150683342776635420131155687491992284240797647025218041709426026996284282025349740986541630849454410476817567089796705131452926721926748715396970602394938246938507192479736093328515609796994692423910824255546798566501793080519898050183406397815769290282341166862372309037541303643746218072636947094113758762095632287094136424955530937228718864518942508868888776927152460403868918200875091114727664646616237527292477278233149082808252637701147477490540643871289626350746667634513575939039235458277545068199935722604905909975939681781363603835592466620703985160965122709097409621429069069768313318527709320088405751282446920456942321676454829662791837881664111304292856417810602675164486901605279588241440994061619655328675268112672473583524021311955239091654724495613332724876174933579134515985362361568860251734082079783262910936842968942508426131551225839480337808573440378872681987039867458412263925417718744494551211592964942258091866972095009220747744983990474903924163963656896707107902928007416206524023334601311354862427351820589759002777628089202720150866498784280573576284403923846761623642954900376377608491019717767139867228171227810278099605213449401560000723606620011418293427136464331705255843691336755781051096764668976686006134700689140412744614259782920064992325812848760513671970122765634862052430476640573786356331779446429755841504222761762842081405248946417806943342470323585920322510811058482049530073326020794338879854220769926758581763486453720979337247195398604653051335763307779780184761140142696254474792951561615982337679318213820247448690550897393975306808857678767931898967430200423815205962729897581731015448585615031891864488309278108599508586092386469044409130853161335126443188036451983120903132881072354240364790918575228896887873155917394395732138976533032852239213340505575900795143126842969509404614991847680896352365961902598247240587806493493086427450422224132414842794116340344208485213469084541545167668378413031732965111458824321149830795139040651978854543470831303588271841217500271435375725269697606698581916493451210501707405816112774845722968679466054103841324666682510791589151768576726370792980664066211322847559905433730538127629665790141588362271846867866588222483561366894690191226731883416747552354861131651151501862179787383446611383543276760324780190959921061285841255794194424695006681381062563450204093744949772685670126411487204984976345603703498171145388567634948485311796850858623331500789738178357315649710722162197756484097129295574900574703354576162256335040527523025341146770703028272142696918084146484520323831912980773256421062475071303136552554727420672077012475599649654246843664404859176906389137904622759754511055623814268124420800038638525728055802546646899105524477381819996596022226350005114863795728304464161765469779692797588252312464811415718474417280168814832821480212272490566862085127625009686217786336422644280457667711230204844553009007063694613479269347036547216995917120560449870158268677628292297809090137856087193496448760335644009477159915613466040815970362200900618091433139836448106642380637705180985548078085115829576170778978332356489435081367002572395394711438447450149754791092147490456224328415522267449372167290703186822152674589753710029741116236586537830527180254819531264476299469850501033775553440624268700299026824462798107808361893021596832617160769448914504489472758155390000200301979223611615926838351276916696780919929619838426011060195164946793177960170910084835468185416358346341961409092964053020226200773367064433908304730316601942533157501541087402834384634869386329282791630724869650735981007679204406610034341906842521137756861364928489746899116645258482798707646150732292293009647156344896816400311263358492808637443728589159556559275101722707337826111726382757336860180286523666254419215232031860070575202615699394260643473290090034994505662437591024557437181916077600094214393067800464430860878679314986229729403489684022122567918967904292446504806768675206199667858376913390265262892369037963300559575632095846120823292747561699293718596641962376359065666589526311207601682001466103971082041542865073883088262831173891738101332667584346140797502983044870813535215301567245902772507758495947092825133193261526310085140206005962946726079709378494520158427721071041377171853781476322541228353173956965215753736116423839760891081916938305550713041623273214203088903639313989384483406265109957938056944547688179868896884106307701535066663311239775531015142937733815733783219946109930622597557469766331629587320621805028989029015639968508838172753060627134850880102904152953120273134824376481118245890538556456322685821365999469479478186726221027303178636999151726324845965806312384720447663920054563998668324216256535274317976469958549160480367003937337838391119404916901461749102403482936651488055904056396978782026623855904802254783821648572210520498825261174816103428516615869286400881571902767602707803665706699035321702500953870358329691735927328055826453303215984942495354904824480209145356570307763124423105558401911954857134258786048846462903627579865756819461256446843265320791413646815189080226455806983670413632857539636612050970972051631237676179378599234179415552789805521367553344944840663498152550783181100844743053074990812781591804777628195686726478123866731833828377322679036544114182802351518868883526424436815573692823444076077386911936524077491879471547491745543546856818375775086833387222149494662688481146212994978684956123539770311840760821317086618071778629620372233000640650280943307983312158612969672846546099950522179732463134585547966855053854981756324301220418667082657428685196428314088370406756894024225858974031360043144739952636562775484824445033993676552424107568951968955456910717423050245539800192783485462438654977822087372470933109409323050907194012729040481293544837171154357643673893165502950050797035997355986197774769149092443759819476968100179571807512484237907907409353276048399041498803449316947957996717605857685817349241058531521514769756342530624415084460162628001682008025013886316250273403996963723383584202919426355827572885732397412492043256600159891957566416260576620503705981662927688214874940116536546014843213480954413027764350500316203151948347803952431206790746129424087824343758643519330575820094355688515998714976937998176827625843243970841789424144712073434351799659405103169089550274122152767053685365104650635354035745315045456080063821314833796573613530471262668566319946142568676368177635160430151255995366614187117191590445613453761431068939409004714628731280904393204333084073065577635003898848089761565138359845194657432459276947540620497639980894707381328132439193280581570183617435239648157842826534415396074108909460870888503665626853270552162798503613836819763028472659674162810471383051335660770430497076591600508306328371530303528344806954770529589981975892347583842153647355150227631262814761639907829269961456776864936103958467330465541560151995927540971731974152224240635403591637540321918688332592292053922848220150189378275059788671997933811284269777522801525144540556364440946837516690357486879585926079080433443782409667936013457934344883140038439395545963481055162186154506267547892060506563508186130463756076860419633445522360858455339896018962922545229074361033351970423219671178037320987161811509877775603888180483443329567771194504991726667847264942905737154961339553627277998584057054446261991967452804765306889170807454180450825553804425793148063902859041646167438531881130617010290271692996664348530767790381509043701474559499636221173697633888343530876664194688408910608787745626201358147549492427774889755020729669728305990997385163858042337473686548977237752717782981716741910947522881761522783953862130675296689944774555116967014395647683729043873927508581991278609921163852661578731513261735964222278816467541426158002482101494901858946092588393237216786100703437305849548016067953594335937556614574934253161183212445347470654111440320669537574483882379534364865169889455939968888665193869033947603997442774032213783444174704572510641671850774666867466649346007734391393292633028567609349873946126410605833718527826579508652138112911762413105506749157725518977494338179477025412479069773764813987935300586881045913562698324919882323551412811181381448384417139038266074309430863074096819274468424346431880171960714030059115115042398724753608368966962847960642750944960336323469676891918079007204166399521551298043866250555729521231718909354873486769141144092173564733657186503697986817920091955810873314298326775914172238749552451645511511414958900417866775461248191669535144217880275244311349117056330141030822088704802421659413702958310125824280556823957034983718833812315992983413708123817434040460474610401427899091482476439658985137927835372558821311457368532513610884856648871012071446556471931368308462372900418890624431700995064742391036585189015196599877062622608444145287686562359702045878205133190715425448001208759953962473728940612213866109532210381693557959484307148929486674570297849842856943616832911249617890078688828951003879234231552078613837979530237464403842275541314521567169039498503979404217125871103365694681178471578246672597714112829700000263395493182724193445216266506827052755892097721145953935230638422644015526188315859475776595348307793009021970100108575738699965988411719283511250405857664817299843502613449770590555291837275094135974181757097774694728548401915432214770816014170135165728133004854007012215807703179868930722369209812179142294028379983736349106494894182855996570802514870597317375570144889592423699195073022191598428588232669157082019832562097807584817464284009834076580003659670789967471634648713881724526728259947269375702922167134335535431550857107602816133366919600104438336908607901615403576655624509000682331870695850683102076134822720054858421998671901475808022854450308695356842206685448291190435866724934805018807733589633348115196305236620184308990361914211407008605750189041575928781367059529837238734574892809886615396705842679549200738226374155729092017028006434392585316759134023345484723474098944818172085030330778987342456817089217745411340047000548458011522248837969460151234534321777807772899105827675486070223197622872308616639360865892518565767108121103017467007303472386741332508468069882517411889302721925188241974024984815014559464701074751724838534597839391045685115608641055642693654277015925269252233773131747753133160136807326493584314084638223923876470540877253589279159047056232921647171719610741186506780500222727628587770842712119192689911795655341104598873331160757506611259866889961418283996629493449359804568196455989282439483854563501638267225450474066537897788906227720230224657387903283413775002216262954335140703527344377042556327614740277571429945568997003128632304980199246241094235446007690256011336763306872770390352142870272670113191887949198889571828936140947306153661855917207013134380365031403746185459042281836313415343963340324242449545274848442829705318687753083609173188809263819873279223168075796866248872943441478311531260455987809456618045200123687880341763348119309714211536023597771330896797550513317524402081231577341817568346890652795555657999851772096532951693714572827846234179538081433295779497026760695406056581811261538824498117602924613270930139388575992516596039549301046373939402953499382997485367579475519846206023905440128068494807250681178611016601926621049751415656463604220654910900805039095609890399247169027187675421637424892289965735657936418959727858189275897200126431234312946373740734247739543470968592319236152762411997755961762351503898122155019625236400397732674201973812280808853664776651967404996599900455490433804540402402016107998362277152393593802301036985031653476362591905279972198365957616605488691986224065457724869184440532304914802431516989528464284650124416389766055259416048015052788745024212260309800165406758368847753898209762829646708815362179633828471976779609866039070085224703227180958509184452527608222408550954238872114892038022577199170544778567644045107785426258698934532614516049054338328540139148717398459811347951723067033171829606082384462535307206237122808936970620725683643414058060853605717517811890246673767204617316245266540835670390177816397843148201320690566684938965266174911094388731759127518505078078194692922817153900847591716779772466946948963933530622787709913062718427133199874750843181409034674910251990970090157700425773076105526935875791885667051851201259232958561779873671867493690544034222262975287880516711819393361722783821149818566881673044207129477460222906539831326549472902795286503037089444395319859306001325046466908166250465813072744843649353700510473159947021261922323814655871849245263892061031512084211618225408010474347221940538028209869124168684867908476069773408713439585095590057334976505817458359434724055880516595742753333699480363201035371707024233211547425456559803007708531711976480153088205144397702857559268230969409884926459055539965232661354850975934553835152944222936876574343237910012363794874058658029516203699631923357341383338898603851137206972185572419348635251776160017388612278324714350629909890330952632308041769074146588679625242750505012094412916695183003568854969873735375533275615241269828395365809382295638674376032135220942605537467082160608224777720431048414027690479229425597696559728269816586838969898550815609903327160368801475314552810713865449690647605018898816675592917648136367319709406371738587543726515145789772556744360695469538831687969187884314274847223757318905775204705381446526183908530960454219427071843879054645496362347200051137591258623115733010169315075395550923225052232185351059630819311703129571245222231011302308492742191605993521848033629899375479877488067003342665951633469813591568954673884039863552199497730706015575790591532283884954686993940016739803390686737263599923082747730874793629724619450522753771632183658924309842438123028895776071613724617711623282218925151713710492485505782760979310018599690626520061971471303239750265559879948039643395753478001144932509128275452385515665611717810630567254843546301079460434356304631726820314535173880294295364071366951910184071740885669482707894851969578920699585680939945182050968534670310032121100513947698146914788924846536672126669843374198598856074588570519225788738870181967449619758777723194574604927664471122397102732893945485506013126660666168709567768999481121288080894562571813217211196545558507023122348635546320150134893641720570371123188373275338952954919559623196249220442625155719963590167152350433239098145222079759917746751961669724133953984898784455443804754968951620236324552163680392795977656765398706601052034155409555422231550370303698732207860822266343984418921147391026756604806641792597063690651162281335081715229978862324636482103949315189996319804238072198861576003635666821625023361695286529419975009614595699949530248827457842463834225498097447487405501560286090367521023878390938157457841748488382202368710096468419282763357192096133076654807599306940362327230510083806067796698626562671338488453893270929237005357495804338235869880860564997261872229741990591455645383198716156015528769544640321062887803213067602588946628551071188753919071537740679873541072877681927864327433044527008503760679692578613932834448831512123734437814539893699148814116985284077238382268104535704785185628208332768290717646851331869026986301660451273167080145208668822922358127345419633609429962144904479145450918514042334145939586817126123639893756525262164700906599810184845556237180460520207488014586209046136707894956977102252841177709278570068332183766521671149187815794740394183944144033907417526634976103867939566034203794614435513750628752850268713921613318772377198883526736418408526204511576301655756732779082093272294009193336264750618364923281311899263121538493789886909770975555628793158344898821146841861680470669663242767810120616841058499728122262723347088360170114597624455721876362243319129566128849794272952457764011209723722847747246388252462509026352642992735859716815144397343483181017256230186204943796284474458298249948203844387654228367307357537443698869419223850173944656868913866115399910530303482473428137350714035368553160399353377756837235278938291418407399837600478655279669030273303573516503777687301183761376254786451044588895915676667086379108303608467759967642796458989541853412732886527275020514682198249853156571420676213605652334156073680193562315201968089519402864694761471271763295011495351749915173048362665679550651811805035036151241537030395778877768871010556892529681248536124992290447774144826481351511819560355745734580540621751193192234151505805968806553516469924950826237352072699523568927195268816310005842413541312968026366418551989553350624258812818275399388055329144361889673696678508334437714721708607098546804319787653746151456369567300535115676547049552779892697955777611850815948028584737821536527059617839750608825381092119935179233024570160311540917934353001815603489705666924807389133782616244201881968152876552097292508786285432469557315604579018693236203634464307824199791133717604275950121933567234214203001856177653616865554179985704227294255622852711289736766730002615784798460152666082770005019203413783408095359208691504914220823864241810488825373679295878160980962448398670948512655816613332450902787493084535805239647138591644528784343304259437924130226084756766870068820443428713298679283269146554471328937477423215385493698887840330423236630391494725011930668739613029412734562203085373112084405910635097052456348908945632168259815271751096408376258475370244461829418551228494909745620463300352916678563125913689123966055790528778753317382038754674113091204949769769026749469878632470497630838084734588669550021905283330994859032188411992170066761359483047694247424494117256614393313247373051308302627920770231760923517530568665661569096488341500954433473570061697029562932862854424570033514000558614533869809721981154228234296434113737546154339488633562632326610112017818691285966167110902440804907834154492065386556137712586369507214711554846162659986609274355059034411148057169819406089201950708692694876729583706347334188078744030046778428210353970358986891017251319166632332713173027989589497054338824610874846319082214139176481653529643458236600811139617348411639899307422231048965506708523926962077219830723623991902847343371924034315356956655626500651857483859328383086118466512378067649353593432066251760308966427928794340227347661434418218878148892284263747378163843122976747788468510086566794202943299834696580348756992096338547343667841514008647895906288101540389106923782364262190909653100846000981914600099122332252284961466665498625027276336840188161763812682629563772024504031163112095877895862356639196898816805203906041918093747563449719722383709590951184280743851171051447342391785489374739078233783091022665760439015975661272097665171046196020285071211762606536296480111154137717844507405320308591368738508981116441611029523291571070949840644786643905866862549660589128185634638372770458287130426062864127217061286877414437493771023428766960245014355465350088399988221569457483638362568174466853886542480824327532633409788856691812482704215187603517971542595910585546009642120194706947327902530088917676977083501767445582024605951340687365469660105693068596606722829747395916711358125763810923547939622670262582446674683964288927363047736962856273537260519716888964864258623197686616115678062744010660410909574388847716620711328821148498009170990309438490090785242969731653420180963345629780543254398202518593712806622853489366724013416586451237061593737692669633120866819649772776736460078211987035264625647837523313991987307694466459196720549488240153208299047506141799754397148992343311637512056380295764084360070543794678940774555908779246842488519524577737550403901224530505268061600336604115909113809023896732394360922684216059340421201612483507510518629780978294402333996559138243790880837478648261752823802887406423397669574853931738620508203060198908467553043010813701485608083983178608155407297591441873151434688648058664280204125895712142118401572780117485559271618959691325510117952689273264362509473496550835227836172140585500403459878340463431085305969012240036677104260253896810893051369292206881410168632069458740207042083917960302930963682760971156691581962094593105607350819110584250928085336545706283377409642052908308359964140831192973532234220191574019280705183517474761558112289801938122801675402193616057374059636593141559359033185987664277979869047693037842331875571567535182895466087824491430530324309805790450196582151589757101545548052515760108594982928018680869517792805433749856765106173623382454361838553680682082123443212191913232544887348518958681948687699128067949396583049904812125667482819746928529352641292179037641792849851824696962152424228602742371446389605313712108980880920900305503859619480634627337161898893349946341026714062894868290819797249188789221365289247810796839132918478589439340432286202831667623882910327939285267430253016987126461316812638827323854042296218471409818934001339381384674635150631872379365870916490850840680118455172310121502729310179149745365211457877944428042713812119852426800524373364996741677395776848492114473561257062029417813617926791912933052472040725386831574309951957321438348539979287328442446980121119704373063057292578655539839084982454440789769242454203887651500730806822001758899632371921981122797512293509843921106209793963235214540364877463561665440561322413678789077945777828061655805607046292404085229504006446314827060397338027518719136108280484314792402829967534359371927352875052223116628154900284083754283387698057722418575472590240086461949403770158684421920621074411151503021717177577408974986421231118494242834534778813536379010302250181366893229093724927916670456990727825321708554827646677231950206677943958054374971267026422386397904414136104298323326940735916944616859100320372681989858814257220180192714198659806786194989118485878215228929671575497670134969886888719418098752848859022455365502328928290791842578417482502139641416262652420676429483732877188476503281058541678674646107510539546242539737920471925060755736828336694772500122520337671655433459324886862905400942529525015416313154628994936236439277950743248446197251036466574306685623875727409520842713696174061440501403162223542620573937721650480837936917574751367049662808664560410480284665361721439469338172976448541219296764609932640089212897194220643980940192931579724709639234021547086466961603256234330174498183178009096586734096285128914809387494420468640602112457922981283596130636815759268067884989966937205207305502527642711061312355702584922292215412064807505853080731409053317278890242612099473751434107922606160909640407117319952825710243973143040439815104133579526041587212593012900349641926606982868104261330940078031493938092404135015294691091128437010509592489075400538868491146384817095707953772886959281579330104812334606915971543162211806899714568871628908228209845849514329780926680612591019685233446307536491990133121429090859815662691004054318711517834834524268579573840669886926076020539709398013025642780262465862037361720697192551797124265496110381919352987153604907431041777102630126942938576077750584817219760646721602044777078208588935201477144687244062594816260271132521639811125580666943406122949602930826634541403498187405131847281620205640090288057268892105476055726171054560592212212621268802254393688909160355802885871566601149615413932448470217459393551223545267955980129563159292805643290686844477466495622621204237602622628506678186822230912607172575922432986190501149477413677736675423612510570303819826405947372774196860269543385481694006536554465415577922614916588198614644131017203874527133022677939431398380721237986226726879206459869777052844961877117319641009879059953418112695982453850900238115317633666753682442797014525535018929987695410037728403749646017673630357397752940948032104857920405905400357821339201917486265416792674553051901154481065601923506003465170159885075779859586664585690392668315717163208822981842076362183969617930072801734674743088585294158887265274732124897362190284811232415978453256759388393123591615270853727840959582320257258601086168382168350066142783196085425941450301481509247954727243231601844507911479895024062083992203514981936484062763932028747372275506166292034383375567684623957085623423019653778099284144792868413414771498212096161350467542605880645069484319460210946203546934556101474288704811306848072640064628831178504697835054584863930333903977027730150528456122129286583211351191657991979474518084046448446032940249540179207119820901515591874105165842643223669418731827689047786954949043505593760430607863314823576541394160862351558067540965786621475768338433830988233653894922123597275566045450461624218123579713009245420865289183683364259140027628513628456142950565876971840970924892345705054279805589433540020140688204359524845685524435911416604910840318990279813718394336979000461215565087465421325157290630777672521264818966721193731584716152625144052208328469488729330807529638133018193530434609884535238650614641485761838280870291513521964371516216377683750946843703293729610721305214183216353123398277374031791170227421950364259094490199179744128751743398351483195442844083404451915097219163476567127089937096627956951650109705026755959222721755824172668459006416448895084557008373131314285227998031920018190253547916991931334998046657091492613743377330797086138468937722912923019670039914668519028190968703201028006193240012877612243876435002198593340274282475599494215950315657595502301561134974351447437131267109590490448683665001402842963733327961834922202240559588546054744370546315644418991627315441873078141920604794264475063407021739232786616210249649426175458444785193204896639590774569552005995640898416107365317148038921617117301618035029776137323344315405328057435986449352749103563112612732256628756316616338962867570393000436756544125275311574167204591583135455467889631546395504186928482609861689724857862126068508453907645551588860673448545804602993844376465723246434941360573807301427301691715243216439672819063842700132277375743176357676958232641140612712038876008026315205664838216752623202497785854018157151911403569420294708308119034093076702052737565726160921749880508959141109247334857805018381736548214379434847486089765702596298110474635921920849485982620437429928162525768565826274498441022076310945054833780441924307506512821460444262039731478042759288091991552425883647131874720122521522042184478021942938832646940615684613944069953083800762612976034575491675709899642073197597800002654891842624240360262604734917455871159390849213767880816718390043795523783906282385262443144941040290633526224193130159521275985684996951854381880486306899014088738299231672842162837225073510201463372961439312700454616912696692281804759166535434587640124349822863011551350430723646293233242486541719357724910152389051555794332051098470042085061924090207464508624618513527652403942837072280365741634988542071922888684872477122274787354061186508753667819100433672109137640060561344255743620517370187663814048748189623932007612848808213566556924133094285430780851124833613898365253178381961664760143720269865789211749296055905506395320737646379453786555476755123220780608213260339340995137455051223521806659221358567412918735026334046867740867263438667476170252107078649299661080937410910539285215653396187715669170328718199610894544905151564521643980707203468195534829005408055770329600018768385832592018902958286200619254208683045815937709988244567543224286857333566127769774074365786071067732411245275202123827438781607978391905530786911615709720555618377478287731041541716742141138238674129976787377091702214473056912357707072942952939748222335775094081870004103164929298911493363779857188857535914535668920630776708903763771948387276268518853114035475484904891514562104123720539195240488375681594292534107552764395542766051966119979916206619736589714767564450351695329669034072916515675889217083303377656958381728549955868767897292313707815751785656522014308736821930501650255275870164547616914262303508802996983934322342140850475136220877736801247756609420693315741399880109689242649983051311654548613814382659310109286463478570665699240215507023140694169710633185906221450857224984491524492280790014249580987277256318885284392854504381577257831312292242936972282618018333809321206963458416154814146115835715813119863640256824878964313037709603640427916368078163536863283545352566469228611655521719299899458046426624099908198449990355016664247857015617674813083850515796207256293081457393733706443150884171872999050312994444134375852476917860792170775121841250468668861696451313082811074348301260595813774819042212382826433229460496334583102648631288416293890499253210727389067172013691514230490784097238493463106671632788598330848782413378613289940242395364682369629400779068082494974362252700548080892422375393065467726229944680987084311794651804529096122403322613492211624915252194799165789813921334127661825030646900103258740017624606513451553439474121820186654834231354870397777851147916244098573412249084811509395745744062373722284909421523132028007309800373749321027529157883770430889177246828898745714060963659452972775659372209657572039419632189233512097295571572022437363452585821669824246233183400412282425918960515056983008673268423808777529878261016205007489764728102849287848741930601638003518161384615741156862100698472289359419914459273631995602915897046611083139701958742043614919065798455194357327491101434615132666655985432881463030927650615110725518477926836961593751507450261987457432254848824051277363100791338824778427162636681071040925272314643480968039736485401574427170048392150765193564121276300118292289628854908911612466329312121526036037758674475938897882215993137709904081947578683580077181582476900905482803795015131915906026450319658713232352635220401324112179228782287628423225483114822222549840844912424170698019682903947813795906183064654039075655711229253728187201803822379566993411932280152667536790588325872262224569996300095994297319581159477664020425608920947702546596436480467060509494233079915941149162315569980276612389046667482119820150120281789790496580082862100172595430295624852630353549545056287122437651697543569349310948287365660539603246343188045663151074042084517886135351835403846069468092450849143702246022815373853744854550800244596225340332701763713358381154866281752242276013250891035526543573466078510354120713314273807955675224529449686785968619387416928439779699474231252555112990914649705295672612507481843718067062789085039699614024397818575941246819966151855308390696506451820512661576706720836631566671847832274804772121842339639269034712081175557287748030430034875468063908405286993458836809662755294908396188398008678169044361042153362500228406289546105668603002687937286263930839011389518500330742197190562064235246073650038103622124585839898687956303491240806555382518400682966255826420930495905799770373355225717128317285346688743022721968692114587076343293973740961911760027192603567993407413477354167449364786142030881884149815035313935094444038308877927629538506292815652081080036984661016560950872842288156428199226256297664200428245609355103710009150961094429447314995833705151363696648930451865173977794399025496665052055486730194438069804900856181348823374986771732712946819680800311090025616117832145683606842762852986575207188648297023682426230379145500037498261818718768211876302565103228690516446163898730701205220746819862925417030373416296344307529847930985991012596954831658185422441112961855255933272709054638135580366501733598192829894623795859373137433284773694059285120703603147262446662533556977844558528879168455569165854082875785483698147236439674709868753753236195570695061915651547658670108398269123097181450511975381168436209166592315320291554845145959785609693655841061859131627882139951434822529862896295191474736345278994812626530097570168758695003545880456253036858451238371274309632278131405658423906666577831174825743353534611150680379231792344629022888530881872504414097696392981161114423492861055449789495071393560932062587557680119693377119797050435718527528218694285374272249133529967693042405986293187018905161971636379648768655783400420881978625811283377380835425286978517016019863981346787348829539080264784084064592002421670632043229252003808102044647857575840711139463810321614422323678228040088245518549224355779234385551406369771867472181717341130574665510072236473968899510818113567773921582617188240248891835612186659377877718678137977921863377699884797620484602756110304102934659705877801310503786102234231868293890813386907948917762850836287720936914981899209693252532017551674285789606581857932259848971624633669573957942485711661847437133284036878027838262613053069109278407428285723063858998381684560038200113953118514303516480600628760025015086623961708800604425747019485334984043583878261980407158885917617024122513743109202787593215919342409556770437598811073519009331244689212644926184633688363352589833350037784172807774109194924680188105722137062933082179555745092205387105815205439950310863645411479292093296456194591779609174606119965460774219592054689433877357654776542893251317766338581912982497440362436544128401794900841367504111587274184416896867494397651443417550423410450612981437795549545386498283432692556327519600992276781475239852171945190966852556345203113201147879055806757286771671656341597924056416228169307118645669075617634113058059254789819934123024721917267757218924243928769129624777932446238377700774827872634593035528826158894521788908129716316585765703766100519968435954446858450771594496946408279762820607719789869075891524685659189963789028514501908735321147495981287459410854329443921475268593558184992743150305644187708699767247686068908087072717695039169819327840818570700821920358576795162571558570966767253725022863385523027410541685210561340604553444943090175843435586677866366973205663445558200909149120889058209933912178282482844286044311214589074492244807505610518362486842376670379909768992936452710574122371871205658578409177476080435289948543787368209551554579427615046579244033303212665185013295961135296814049416120094737361941542562329990530999229521900605660940679150965014326420574720482387493604130742930615466988008267944833291231892278086316088389411325496682029673361387055116023671250672044793596080213112120561310853263590970943109662240887538373244613659534092384264506939461115804676123109021165702485773964108447467645752277869766327153193970882688907009351792982462348909185240875686694683629463881465270487513467744641752867147744709198508416257819268120474140119727662307606262236947406231008659622872998877315219095821224190971139376145043478811834469892972534021054368919825939139291789525288064469193151025190096730107294819748873462569630883338154616878600158585516496565298414968322377853962022143866826505630806612295822235356978482826874970923022821414392594087114705843303538173585433086299948507746048149531939106958226881372367170596755758355076855676662961785945258931643072349350479315167441097186073027952049724752281179082485296184259092076877690272441831695894104650671532974306986779305852393507833476394316678786120138749563890005669734381188170687415770027402904509201502539902042522727672667931065666139837236587640186365288011060061222518887345768579393021771358719770735597065652438556921390447335145159906831371731783232854602280285279302196278526912890289135890969428716387982893635560661006431037422584568902072365154328192324353414320249789298878927498680321308734347474864220627323824331710787096838244264237716493963473864209507883547673797605156939996678230891060408547322230314596146476185014661758659783741619786701966299170151554251323044455907394451650884750547874103099441892087309676510601876357109224788149340048508960708683400432727237268437674327133740310734426803731836502572499992946928359893955521307280661224651489338906420154780214357357391870982869460765418566485084153361988139012892276777053144503980187395079033931485551749812035696986017652478998106498703144992366901387531171596988824814219611049490372177981685028235560997763404851847118740706883334829615434623841710203064133400255917278399236579012381358659719911100440105175154049392713239757141311423143806882517114696426782957264621867187521608560646244040325035194866109272591096324607992816782323307523287187116962256994836572585122339887770211183865661382911220439160096465671256580097406795139630915459470384042144895611528360256550122963623399534593102261797845250189404229797037398457222127632250842086976643409559959719078597601357837115771796575622403432278200346531507637379851583009606799995234295221825778031099186442582390105727560032134814836208757634894310920051662630128415708265265798591109143720878018906098451426387017066515714080855166102178915185011640935608146346046625826570240263866699702548847230024811056803324844340803654304084884594058173011546327947327654198947052643048552160346241266999681920745717944205257571673512678607651856019252919381578173124823640622629379180236220096162399816484308423916403802767614346068347129807658795569611672185430919056933559563017076489772168865139282215742641965684210274362388629799685407069243769665334590080813441109608788644802289892032488707529292187063390326170254727276891957447147562447007203079450288453261174414081908465011649233346210742784194587672765552488084994786267339521699466370435109565331556363333269625511463481787487753996246562329396970017909628754980168381156794341867670649310581404650588109600496287814885031586271955127667950012664239908933789992168947401348267936033519349453016923022523191075120675810259274583037297807215433629661313945552752629469286035873460982045019872140228647148590748054731794135137529933659600362685942509684768510665019833125114403342856722375533982700666690103031505262641107562683823029694217623968236001591851614794301328689513224254173891304945347918698566111022639133662108918961072294092227189126286191798312853209378695776066970594855548676354261856457628901659473999164397101286375869713784941634047294960488102117278636127065085537712082845477643601071078356940470958204285871937479923469688115074685916919959832368138553778794775597117046676742455015272412111104894144752534736668905530603117060944870973653741825368018419026804487388893125779360500107746189984031761154835698030915940542887885921849505757755350237533075466717877344699331555137163720919720421280631255991010601148196386719786024439522480785977000741136151615358067721161929980664164942456687961884957864264318008710468932383151697727222754133969641618554257257472739581548574936130418845520268172060470686481669447385020874751054407837441737929364541046762881714905440225920911400492474698649951193094744858752099922532545153010257680514495665634355244364197264376325202251773436427234602765064336337416391414649920446758315308774789043153375900935232657168337220283025697463223508873562355100728014688064743370285416249465610447939755452801070230440891589195346262888256428697775519405952323161128747979990687595435428872694225165949242377012076623360398263894113613601486478341880207109203054109511683767876444077937510885489949446262897665111554479354001212821780773308146773035296780069476007871628304778618860859178370720454709498495999053389769213138802862734427758115863213084305981420023095874925465852866587057876327650055015783278633591575761899812197660627909720799969871925629011954405963458818548759025225272655294723884308044178006185912906501438397515658549834344056697316409603406504176396142586411290035556735246784007406488645583840693429436768629821920443042109494612159306520288492374574886359102594690550240673757994280718693276296580430894821682262309662453716777153944640319570648461108950357266005218081164229455165824264350359886796303852453995831065815591634129612683414387625995258726682782503876459784627176707269775772105249845249140387460307711585416264901796381569899912199015223298896392055742778510438006508774190486043518443862030484057717786181125912451670583642825568652448941680229182453308251611870841775696275366167602777157357467577556637998541101700490534295789817662035396968370858799034919794029407808366648823450900376004482240927098759164568159667950411109104647055425949033590745075665021237310034952716740654904881626050384831822472028033815534818141632596816415144172815249926697868180861710541503321755947168590987014106166072725872628579511035562524500831813837939747368811921594547137787095755866661528039731063446569228129867719598191192721715239645276582290082989258953394503171002206699109020587331532020301547781029328925893266932553116839549648748541107251773575635252005851191377962781671383570686284169783472367848277402062925792856687498035331234396541634975950199137542124282855090103324986255532073995721041023167518829175996241639745472479166385140372767197772441891515566707569593238105541781098228146137685476028576343642057476686816952202464357842573282946486657915335308220113094329590071354066276867836673841856131352837372837675735508259565035924695317455794811348010817316673517109822444239685295318688166509153913824569909678893022386509024627452195837736834147221540701907168730982188014770969105650063766309896774764288786082656760387153013960911917632553582600422138815763559368500946140635393769697763533240166066057541834374134387853028471884115311201560402495799604469929227723006455945982205003253386655854746225768342962557357239698248260899610398307828220111438043848305657395181199037525550436359445866348093523310267588447249649648398303409043933800480881561855569537776202130692819032582767410692388845483083868388069863039847086576735592001832577079047374863640228995512756202833994626513009555979620637434438698671046353510169529942031335406023999194898834735477899511458657807894836569736820644001241451701665196076019571934327654503460931313979792052149939549410467843448704556009896086993275183401452881063107197767047144064767512620046651438987679753048191718528182359012516540517202597681855085309738360407485856499457585447453060489228352840873616447160478018361607949995379559348724721052454083141898203566720490190963011503178486270141352787345203575623487732967998262759375909910755725211758927603938772775853515013233489470439648704754182962030922688419564132268002537030952389105914159397195198913952500618348555803487818760549888159963986327735881573100821431730591244437477696542311859243777913103085316539993298938239512755219883432106797589020990599789502515697276934383620327757667385284299614954217810825986221903953411134132479855486281092462614879285792683988210346248425443873801582636329983932236381697987824734358021227781886018978447605267549603823555821053668042953056889574748419359818213398198870247120424828796347448860323118269672117739618322996661558362177359407966413227736200424126752139910393225462667077479335908174930868732548186492362020853185570779331700861192339192466044773405945567868493473441256533610878706191866441781214900547245233862613829387909398299532718666037681574327712329747312076296252854210721664376911740272618150970722670857397467581051359072956265868082562767047726869756344238734950140223489133837225327291843672238428305767470921144394271114288720726618847506271300672288432452806442983417624660528588131286283246158796931219531245592524567038362646330575112896866613643009890772232720627493593778731239818095553652537079176051334002288094712542014522132828721375917037844247418932081234447982393733706435635341260398274086543115679714873126787948265858148293960667536106474975494768470580533380852577058878314831217807674477311649222261381943500246992098634990494985371404063347748822634134994067641352404227733192334732479255010707249593989785793556832460745685777390075664649662038355280037284023628311731970047911565619327625552397906600767742576302801661467192038377482013211452906188136017130318378564761587270824841948383667133176405204307571110122815977429510440220751096606981733474482941583545298350050276528383237571297434569712392886012020532428826002034195685679610614020102994391491320085495999164767468958232903306139949709454107397541972058116219170231215220657068512855520695657901082968811017281133713907560904788178947208440995216437530340803272366528595757662875368763797606468534620559966262278059098277500087455832461249327906032635785623759189805817034835839185905055648472787770535792168252992202768307839797888864398983792081752904865091995185076591525475306643009157395313071348381654690053838065084580287706419293110804915983312069903115486809940187486428430710085870130210775163536967741372627332579238622473584169226513641115916177492234335346541594646715846658302686226073890117475470042367216077157050419303655000367842737230959660348979322423469536409322340655931645048412863835440975336918443251257592870988253736615815908924046638592749891875945955317184668136671864378340888550280937389897909753114497422301732977735178280281098182202321069375088818629668678472218242135451960169649059253592882394653362020964161206493753557417898661391663127063499509682302281130068101922476184084962818204718397724614289457032909479165288345350551768734787673529697211476836620506402463892779913135891884036436292507659175201448290492775174238692795490478597110886620372795091448985502336452557301757654117398755611525824850955704474919131104840105900591967344561003020837420818235724807688299681366729638312881053781312014248522613856517983000549215372763373580145397604325475485381843297796257860626455733290214201620923969269728889725671635136090486953595852611341695240228996248493200471117835512804235580746511447082669499003530983783696395123391759641944974178342672166149720512680522238378642042166227588559229915950373583210974526680032848090504835159053902411955909156912492926384795819739095336763029391340765464509201183655399586494109310038751123962939732504739295989963461647093534897101814083558704173375992112635448567176504726469290033498421656577795667835985801926689368635232023413734426117076688718357071030011882314516044669581823166705414169943711708867413016982179368691423654765220389349305865578581900697833124765902121428178837604145972046740190679720921579813667674157501868894714921419440502735319839202196231542925757886437340486593698653434256665376399768039396076055036620028507654999834584539873718965144658325914646669232802312106400007610660735119354897398762668018981753551042688118497899435507270194815364262307616891866384647521701650514243461564842741698306389218798858867971417792222645389185884675677437125498335788052799224888439942895730533231278151506534296467272870203603530812780693385059051991765238490097926713587827406022233339425470927714577954947724736582422314667067356483660292299217534593355164962569568476339793745324689580229190964908729291747087853025253859188855723475694154459824524222320749834049138875476070087031832222192201143762858031789151702488973127495369610011385550773182360663076846748450822332504920987254303354285943329754261223147928487021961074754936197789515975989517776628138524770879369751093540018470862836055541588826719706250336333732681406543507285513442901599173087246520535018206699003751110527260076617647387298858376757936636246420348949759645113149747467443995509324182927052809282193114468119314210142607330768133848101212167150888842431827409811969498308576312957761494842858004279984945918648938639780006226475011390697658123474727041684667940736492003439808633078402533020552540337725463937736204365649733148921543530157740436136971435327249860543953060529151903546884658799497720866484054093711709089682553658306100107424230302685445858519951321958279719687191176419631031626108382841406498756495913334114822162732897639273433817810122567143614083780477850990650882465294527061950150512480793691469090247535781477165189714047236230177678233904732558039401742953684460212930520518267244136670260383516609514802619909646250089484165575516577584122483685853792159300523130370992931585355497442559479646622790757841277877330028073165793133574760122864289431828657878813220835100017890278382689705209917732388070368685589347041186433354118819845384234726953184949419292885466391013877314759092400082749908618004805744721108325750090413791695537458488818733232870446801374186224539923898616447349870283239780612706692389807959681436495847133433268908393746187010892968850510067720721186080799740666581657811159808425895556873851653085042151757891522902735746011330739381890421892273834837358172860703227580538553624661868153764312840098476280961386470482678451748221501282641910570263504256787420277051183977794903895587752074214236439993277979660803300271992561941799282024053789118143952875004919339274948331071424774774340356122028678739223096150006443668050177479658728735202090187611195422588928319425007236113439332323652711513688658675554880618995563562892083329352402209729895156616457466168073312249670322343613738671186183691987954574580477936629428113561363311811059438763768514239097162239593890401355119972408855847448201546778789374832476393137052618079482598463079215031903512989225336003424948988636234252139579329711829374541365710162420645414483736562196471205497575886629683898753452511008914919806481232328835030893724818164423512252829227923153900185516967722283742913146930135005408559141619369322150805244873309328613112348186674958880728514386333609885769641368067176426670391977545201782680607008524689765199054876893128029907001015167393373553213833160405895418024002873500845068818536619475174437343605964104773914823351819517749943760869669333896281743922471679374893855649672125069446803986057186374504124872419194455309998120874151407823593891951455421262976339377186103561040455605253704835528798084836517986181452580491347996208328171735778943104256102427935486068639416855331834103772140868072090130587417262802172417909577780880161567496223051469462425970589348878478374189370433254810550112190508545809172648703808356260133695537965147015516543578740585794648535591374829340596285604846118786894088511638390620074098823798789877963773710778710383374334478680890182149392251515811444478149874210139024358197736022964418568398449940385645451834044831441794830566344808019326490586776721285964336748906885886537552209565665661649756797519338046649803533745240520224067756300805361158176105298738322162489928869160720277651424368271635220598043354305068679644229316242232449275555724732356082369892612017686343857174784313662610388765471481342823572937721412240432296669140706382500871531772148679608881692351099800808819557640660247933717480212973402563293028696286596296729953221444608116403651992563942104266026448838745337252338371305488251178811846055190506129535940781611133405927492297680831661022479019026856683281494141037943074291237542897504862038015902256422864172862906166150564777034610288427097156111235967158244111022428510998332878490911374821988734341409966357322747969371639167600899144983973735897588019914852447587701821735064867288098821481991030600608424542034187097353128312224057015330104807848975577643654298270259769932789136291949390580674494012109946432422009044335828491977755745217944529872330693873935195586784874990804476286669003955524151435858075765830272295745277093080380339078423768640226507224272232478349963136204152249866483813321916076089425457902686330343915231022232239984856270635076883792698555691076060871359971053789529110127838565071631176961754102850806246871624512547529242839925482306925181727412079257215179806201732560733138962905021804771882877405783533815964926562738549577883250329979032001405928219868106738488873381085047721095274970887765931733742874360833100883979788786577208930132599783393604536098476009787304415398584738967790136591677473806003988060445315260699437426453377778957873531285905920645007652822997324401594535330650632123044421806650033410521266642951907206687448965009860796486126737374065333004650153961783285587324009483826620130706755640445119390984907912148807794097150935359155662592959888095249458965080337062289922267728500741761143119261368613545104066765245234108350896332810979661641553298431922938640206475018647448663325655736576563127963132899295606730235581227379696084922782502538229158764688935870720321236157425603868460396105334472892604228858132431835413037057589842500950441981570260707202129820487614265767237720882959988156511687406454317298413726664435507607422841741911227604989304134415333447936875820259566009999326410489973074072631384875797626567119045784357270012542112068951085498358847222464110583311375312835440346793415255513678996369532791707377858375374274643827884855231494370609099176982972481560998874549844008469257180152322396882971969491995386823478660704492179539357286879422791242960848521596272401775968891474109813939859099811188243483179501377115526265519672568790142649657510805622951632059933608813463666725451385728628302240003548109702300416772298171672040539394920043859200597857758994107841306000975248269026066733309549018905427589706736903008821814479462772655068823490656891197736822978121989550822233083438549344503525576468094448941552647405257989673072004833039866171284700775562607097749329688345661069023031043917457556938367811727028230027307194607101641986977902097070863120488021248545775409574714235349530705449348027238805350777220288530029491970610857458375858508862096621747736881377588803109811845665094725029473642513309238678328736731809113711045752776965371949346516122648016604615552138475312673488934800965665037621046281191054094565771553033906512684534277273014252076886356628749209603903901430814989889586260014085754098780724190829566007482259649472297040118121354573629849486400197482736939400285542478890623022058975153930314531809439535541162261562824581073745633869523658078695689901688736220085256921568051590371153616830436306526399797100519693356556911479113150908773008841516276624617418438812561601372469057094505302687133729351883349612176612327016290728989720090570774169449026291558333748720038378146592441611003675834507889028854815349365724758870918655180456892236616073171152815453424047383167713545610697848897210322409170660940885685138764254842274246535665114417133746948981434729451210716089957840612092151647770450827184873133507941091519149641341713313168181114822567993009582484730356711387381513480010682346820403949322456925928160579371383254616003760268350242138406323571160436592418429976802973978476610132711440072016064938973483307813041182567603130856393298520675261603917746778170320472500692545501230469151402734891427851752979592569216464690867219972232995707610260020670510818557879710775712907852352629249645757505305185250901305637537861590868594350904156533060258136055764420917574796729346651199816579327955991543382079958327936973417860141380110698277716050579073337648977835998110426367213207796967359029599579764373364286336760657748737480442158317531577376142604096048887149017381193077673804601537463845740613260642562812514621437801438192228360634468946272836785265260656354115277144356187630337671296361059616205333438233967881364396303897227626267184158562891655578599661146444654299661152561619396907245874907062684543819577162952073740356647213141190845040448900905231442085511697235467445107866831986718138031245184101432934344889635506319851120484943105842352326828187662398341178472592756914725999517846815052890842422016387834656805650249969702384044718906081542734449945852001320381386013857950471514819804751251772476340439347655441403885071436664834458398399553640322790661906316552173101580042151696963317818852219162565453810810111958895499605356423338887728392140709316616831213674803724999918725748926205090423782778685980639451634323482425016880432879588080620633226716812578143683870675744681463916145606134954448366629864287555430722813446236374951761413194702997342480951885926257081023866385581987653645700913799564365663786695912319359771696433037695977785367009671793256277961724927709067986122787158009948438520985776155264567590879959765519053444708436143354205954910078814791094723280321377209755338355318082725076078205034133840174804236997274595391896993174021503753875842440303428708495774765618231915869739894881174461890396006265079699820474477732070115411801697830740380053458491087722353577020141939767095520783043992029801892291406598376731185174626451747641825227318609321417807428936371902161741122815415465979324835318500328405529564380477124908967108241044492181193838364701029442140807411111933862835386255737410897181490267620411655437660728961810309804002699072331882064359765924981426865428605072904043223456255902239814557277670859384661103527249201740110962725094198549929606398127697713245848704334947051512243560931148126131668768810806567469813686466280279034399499975006695458828664778511507556387018149038974959493603996397974574156028308779109909509686713807435134339450638954449498908454835378012579508014274733958756446615850196829827742040970014148234282547154797362783952580774474959176373196822689353007487787711499472771614019910727687183210207773179276206373342559314736505153337126912024748683857689865100962802738648284375136453403870306627937189668070156266313171753614175040387231092249899749971272099532533368643200253848151420154082779065958621163977079369946371446694702130191069807846310817766111775449350998379870209119868741760976502361567812069701776992383614503538710232544597177354736768990972307926635720540238469268038658108955770570787021674766756117453025361533365643607930306396534752430500800037227319448364247479232531648939684515329608307673329050758310214598416391886888571150987249640222047581046956082623961182316030518243460746889918545553166712313569453261278507638670078874779253457924090129224580656318121442691389024579447432481246862993695387348820367609414462996099252528227439002826825885989031842653793389164858003444401233741331912446812379209682822632270109522151425133560018362239108933205198158785425265554717922024649537897429114092840683234056891553049010235387268617300383442122686572022588121322362100582540459145573007688037490673562403794865415577593957618021053470345916068415996743518185209317772608816093431724138951176410532405570366942228806710310043527583184028042718719874163641775437620217419781247181157171476200458748858465180641661695162335388668682724341844825468422678745838643549112602477975495312730305967585804783764047936566788868389283560306672622210077591929685589736274414203337972919947179009972476762574921809363384586623008318096420364529528503017849103756559232177503167261003402880327812836883626107452981767386766479405347417433049152514098375551882151316332817603654849161090483579606508589670504572378840949080730273894509125399452104055167291812391656065426263379435693259230513868279444055041761615514249672551214101547893203828066602696546289650271874130804687529238571594550460388935259284306625169390681822987848679232355774672609358545594187337463764365278189127871348663695602127207126786092260741936033901057906167797418484812310658589902690789319831651248861618225901355569733426513583114244816072769146177980793530257197380060474831924765760887027479484783802687275404221462824259782696842331283841893225437125581095191254625166697574131466016432200811184815479481251418005226392636896840855976566752476524111592290395667740597320540204239329885218579068208788805703496802909122398389482027728650962471587889734235232736496794846349382037657372179498733597897726276589446695405774332315554438415454662626391754581017501685834698954611293487908068199588872377244141014785806758923247685052550104608582969081449055081933988244307124773160712121728890422486545917856200247431739382786755314658653073349541953748734636407468416726902509107329433349751260391067503641388605187699351304759240403257004142582744634260435876491787122621262222805532623735647893605150154198037033663014192649969489598490121120527923944136322732512863575634911440604026161954192824061240506884632117841707798339537307011960309688118608905689934606324731890264678276211132272790209496631166395247051295189755359630012651697645725818677348144239894671875178853474761138114816696473209297104762390283340659142372052667596520311046834773289300733837194406515398215774563492659848933309634918855484956739938810503680155547203207113848867300381262385053328781657090571088551587856302706022499559736901376398986758835268874415864573765830467217300892063483973432690922222682537467607969855435464321381064832452984914098695588691738902346619553644103390093883250041637557286976772545304462447206328009111479600482471047540473102945057888457195663915417853107005156101681490724857828206363510406335830183628206649739729549894354757168069203633937516587174426489588699335328285112706219067571464652521627670528676501241044067250873284359584304366760975775681130380496524859343687100123760049011954314097861031775513321136355967458674265394264396813393280813254580027065164689447189448142957929511895675565018487643512126683021857854920094318143915105037147904869777809628723112884688045437643784837443644336915498682640091035160991646856570691339903780451884313963327890721263409329563944726640925300739448027140996142156086350666097416823978480643897838634495759734546460218774171761008789548714962269424183964597989047805379440028448625220694219133133938922076383904096465277865426824121227247811104664721722163932194833632490002059483592303603925832018310474428942712587178915507941560196058496106775260878221779980742100855561074162385538429386561818028268051145601309335183525215979143578577451945153595744363659659571551822187527735543889701148478235346400083631116685420320045503052196142989347025189902948649784414716931203899566471020385029674739416320693735625376449092056485100391773204786168001010563894402772759331376015282154513992684769506882933722269257556274937760802733292025402268754994179331714072478185325700531315499273888687439049335581214241015820754819569721874588940032737244160367697836387826601376340451017783443725963645215728693928209135036671469972007109174168699876856337416177625389240602949753259941788917574856924728084830141345988365117189324074319728402896713556898466073984058212829993401076442425549892115862320507389418144022459762956084105832834926786562582543738619975914499244964605961584759627243428033921988175466814187002864430114746371119625192227525547141598089470651260469648118852410491607455724482128353639023361526772792459580218255992343205476797807754707533989964798826448165688139461562480857843004323155050406757697899897350463957279652596270455906649608680088552148483723554110647771046054354702017045152362447398056687110491529422253532510180979723780066550472424436871377460854818132524336775949773631383067011141852197513477347430729041685314673228167107910193947837129519585689486997019614877500274494127599176188729972622393627276947847969724546452759718020227579748978360267033546412851433135858270821521109501541044268518881758898912248189473816632972712725497682913965974337873848545919712820474500076964204211273041254366163845048952535259698477493843801640089199721002414251178519339027478594211269950668327153637230108585069454006119188231901245625043693126227570063742277245341646517185313578582633972936254692644760092243497021648016981238321832079535248494974854540138323588516392787114982031527789493819931713147254614503795199375125522798786158437156870559618579627389718598247933879879440198667604162742737742565142280783916398992690453827886576231557833855050407251251299355609873016910584917064905960214279653968896131024823979294237449981504867880268387198157312803395712642127678847080698569956061871403762978207359094690414975660497576430464269246586838500411128249584075634021615312869360838407699570460509605065202677529009900061109778684036703584413207118443462908579332703835127761191817625550633014576643775777451961141065810754334601848670768128888788366845478298953725434527270195776346900838526945341319462837171453038023813829167580188692710839393724780291447237901232608984920575327089675470663959667279009875180415965364195755742637789357209514208857170538586645655520190657811508496295848463207835970828415329867450161999998389573864994180931775029456738745037310265444586238083124136566451404276140688429685041844194685973678033761647319084260100877783917524398102536378531474756622455499346564909429262265225485988449465012274005757716283592957241571442337643319519174716260940661006680578448170947148927590182226342397990795644598373040348253323362783251402228928094806416620937892524734979242712393620204267126688153959244516290909318680115868475098008840540095243320694749094446174043367276651120034648450684573308128205876451053915512162650969708087275643516473540194742891192788118068044104545326175812113453089067289154354517196553396296258641780625595604932711520968782700319151053951558630874982948424964341229016961332444297027251113133512207035801425436756618220636447091847169318152566697665476100872134345817476068267138294847074587584707009952609156416811080555360398574153739105513268276153426347529212858064204174619662509312538090674245897958127896667650362761647113743623692950952169150464885223885438927151820020153979571734975260193099486907264198843373900889154635860882720897375937779047556143461193220438402989320648192460814299086034208335883859719436499467563711424986298353223091498520874998818683831427752988362866197228065067015774315073169767524796902437916130927145348531212236328677938522455367315182255706829465969265830186878853453551993594526228332897767397320837430565274823543047087298183837060822829355819955035692265115356599431763765026749244547526376138084579641026612051485140004153006740047649627801320842363574861806696371959837598577200851392555699703687163026630173691075978630857649059731595653064064200578768144510101165650440665121850106978503861516496949178044116945479036467053212354198452568091943846965872350234734396368927066395325121588684603316083379606206882280367520198787967237026297759223076527160829071720407414798206247112154483210857419600908778765633859677578324233680711727011546571663780435947131566349154502931088985610527336698491983185774583171566050171613579906333247022828443204966436007766611943549444954201163737994646472961242025445819558101699926040505147808189719524429291368820495150242594407187130297154609488531478581719587548631756813655836452893195040314517718965711191803412959547786246798254028558557047627437676675841941447675131682959952914495856114833618118916291102717066219586895791105609009554809060241906743091015646596403290504046937848341765103130956329899209094620096728900757199571590094362183048386331528732289407870152757821385549768035931851341567005452538722292304491401874248343767241681492925048163407249910239632286434097240266921107519221987382587345795107884206885049828928897131158410295462236718408863498884731122604947688157841713657606697384145522373893116665434295104768489279134380281256135025737008127631599099959261498392215871237489324273838569564945330032209930687653748158939189559262034849484540379237983748105216410373500099911141328363801397146462063100262044606240243841480331269137253827061079145499095602569451464472581795618477993618802988553320533800447683364694609891586321088491522208111638796577363503012865040691357671127161959399412024125482227781320635338498469123253091936792499993133634166306295365391268981282908144660345776964333160173865637155000472321063958482500844553541914833487998357592754913228345737837969215916513594808992282422999409825039477502983809062318717794097462184926872804689378981975267811840448318846302369413133682837170171261205154448101714936867628823518934317960777893226838705923446539301185579810946626357334379243557347456251132074430513654716939702911832093975957504611767530485915650265605153619805029353180181087967043412516779118839596762945174446626225053232078394405018576209246721620451847504205252052748648335291719913322733391132635507245306327442959498945232569218981300148335817144712718574470891129913939562725930203993554648532330151878054100446267339743586995684349013555735850232480898364194631042695517618261434830311249250286992001374506536787016874944366973111221583634445128298744541851595384785642612213428420155859892517347190816238740610229304770664459342340439355407153546406987155520459668519023031166992285394760222380728752230092175817704192699183659094750005717163592709398214816409640032932225831739463793800039862041929476874733289285521689060344079822465997775766142911115017331172653363332248877305578862749280395732723932177157839531984254006385291886157414069511098019275617281021773022544514368692231660739598143839248801262120899621294500932321464476051918051304010686037484959724219588059890760964071263837489394151225556753070012824295537003528469859757275515291712764209757695601744748577652200660682938186090207518230306282968904714157613598972709046866354162672842663343482065478845323827144127740300765153441339413065039116639908308033205937196928157482540032280879393168760245598500734328115680671055556080306024129733758250539166966474240353817223161860548079804060723174452228311832817616310088486926659445310713331424351391210953441326904613506845232447376258362429277807094715371339018202203678174974294786427588162475354679049991507799616864124861704332995287377225213779002799767179816199302813230174142177880137830091842594084624847956093826254122220852491842793543903255296022230511028721292875532139576155360884675600904476658748687387110205585157196105838426305447216793322889423491276428857617522732747918073742985875969373361815297172656144482845273175730217390899863601319730490234441367728544031155264667104766369154917062917324766502196298870187952621115095993612708531708636080821808843527988285148736739292278127127088447301565599687939328602030874341750981795853361227396438710998584896360191005435316107937689728597851971188018294839085843809248764536925919908063245085246815341075136871825952639313954094453093129958079115360038572347261511948040347496728982888230096056334140729040968942606928191809003213483511466963879332488917632983544121580952222848742835768092386970410873303754881945325335927947876615830041392167739582849090372379521467268089564677661289539436493410053180691123204981553209180729945268311217146230857186987708890124278546262820646059585806373462191563936908869425889097626604389739019370481186585633680406840949741768567709219466912911957478258103736020989547931205029421711888079095093259809730714220671137776268214988062510697041859888984279904586160062501477649663469266146571063637796542584433716606732203775483263319240020414401166452457964213978810853584243773342744209646145367133827198063203107396147830186748761815691659511514645217159742073573147343710072118110190682738199402240345673098333933711670933277308671175839277846578090247043131030248881994639660823643403509776442141526665636844178872733792415164074028103000854950420917234668760279474390840764380672659462933098187817396428785241027965604247569280594250468400394303207992665604114563594651112754312252628304407404360918174145131691001758043854885195848531929283536395091847097111210644342446795502925392491697633824970889366325279452228373403760304082235097659845309325824002198988896433862495981970252959084989778274345220190504148686431768902101660154072497176274484950306722851305307537450128554578356688078856874596254685819331283802017470919729564049517804101476040500209878592622430760228967038740671578589141530952243036148048320529499405143922833794934449362918199729109622560573556251378706044460124352634450911088643030707421439390511958063934445577711229763468091839274482322946072194789495265600825597459683229914540567426330900202858699406300584364965793091127717141103920564923254511279558913745955472820145830002358784217974891880818565175536521784571416305587534390873800319748631799839121069924066492675570532145185425527620106431972608313908728717276261851146313526865781171509607008444946807422305147739077974526872024119066814577676586861061162299130962055944002966994092778097524792807104744759689722650035284262598883933343270231372432963105631488604928400390409699891046479934159411420548250273322858387103232238604089226660255093624246140349604760025352667592262780290604340232987746473653447954901037386513567897885468999099642433358637258173313993448579038320092860179606370944815742139382421233836528989429842900772415365041349199270212653553234434254765089229060967077501973881697119163871740585913149215413983041993734560761819106791906912145638430900618090224822757416706743937951347283441340298377561778811313207112535892412403142452908798487165747214392275245225028396224756900194826891884902648181674851364365708065870821748207978172038294086270020173634881641986819946360495892795154634572540051750399877187452270463107905799562713843008173178788341862749262924623205423009854043437767944760816222440587120304104909061025115635630116439491921200706793678152303030193052109231500909655922885230159457385295324169282553434755868849229717401428821852648410854602471577422071059054137490676729114886591754655124544315817923383374435607615587829085429879361421621524035083136505876589066326026975423125677992637786084624553084539306330383305730073882222759220870512950892380662747829205197086242608992591326727745619937211576280185217856020935237334032216708561643832827344229954829748570028193168221078291585505568919003622708114472028077115588469119574234476010969858710916074878620598970607612733055663787446248114938584839891669012610599251570953802475217232643012592897082425845657225781366644240337968395802954398357847900918794020939251770750414646348008344972751640636209988344204239250183267639945673663078705656364307673325247640405579626726908926945844468929797761257624150151714913268891776710993098893546709956742770431699390531546884014105840783951264185811381666234558778434389337184774692078384668797955816276325105267682559389140050236066451870092646464220061192840306999798102705047811488142570873987365814551409636782236826319903089080524078323086448548738324309679622798373792097359033327675318083399398653317671315535684809553875797285958255887886975599744783240260488366663521838093925329923886472718561533190816389148592942634783518616393135498597146417226004387851406998972501680274811938067679501778008577512296624482019541289609099809921144495623324640865608395414934795578347341230996190150116365724166582766394217213982361381263306516629787535387383315193628671449476551837247322696721574383918613887323596556766172432065856634859568940778417604201138212696050392663410485157778995254402189951528417468167291334999851445710688379443305140149601202038502616634928807767351840232311290178448230829909972371249534589433680652949301146020885773304685552076739551689328320519174979297614383399880025208089210896561215897212899002512082864780951887983027129510840271797224402561182038027340849973217657758371738680569919868121706214386366200020666225369140994961485608480626544245064031661671974907308336246406469759932519130304350843012054633864312729485632753694776599146739745961022258968526675757558042778235974136864584183921887232955501116059876588587712347562880473547314674997513973236397031638242546950759252394660070151391512315166090010368564778915011054129299273542918228010763901233147361319575621664592164262429433183319904967582366173302565884637055738832648768279959438636176165143052613371209693733930081676892480805285436688476247788755219579149143712767095025557062466314959084074943487997186462535474053556097976960502630158419445973063111867214830834502930732386347418501333034945319495333584357575413305323606459374978079011573510451135010177227607528017950516817306299316151739339847962398706538451244141568911203933555991617727280097034556725607850069980245196000951037766256698804193509469072433847640396346781612818360719728078490938507334752103848008512790514385370559161677258623803458415449975074686182849142561817896634531374481999977033495268186094216377564845753676004627069467960235623086177701621461367877806777131231759321035520347677405118006134934525701677170768790175619710945453150362550598054233908753934224945540908583330857940771425136235341512494009132282230182905114890295936819834774286088172093141415853560374264148011313112868165309693948304837308583829409492840824956969196019510013584137540195937232735209865052841617143314779750175839876209225433531242299474346187196134741980038069660922322720951909873066924413297921592483439044761289725253907882158049472030670464076162914924158133964479802126832065417699493262970984379844194762516984787414593242354267403887126746297797490556481363896124503145374880548872237946818332646727159906156352410107317341542834652242357142961336678497244369393231361270454371399681621422677429033012273869852908629231026761080356825586509263089846325786358540731212312305936061222634961612293720556597097780401356052227718943090415775837672029634467606666799883871813160447293282504290644663219583891313602757108879124923165864825619429523770085054606904719930506277134505624037544034585582042846219676765740687584112717947390114572103516990884333647606721258988829395618477448901663812495692178908931218709730108734655266949865417662717132037740082494360928032355522173134779488118717985783452733356096081613088100221328488918848653434968112691617397943428708542095215860321852953671624229800218145673255238898959421477303437130802717644992079797713151168506988253232436990003497869948839127266628948180539128310689479831296335800239761237773525677075063630315021514069230579862723148462302991905153861602666641011669103566548819333850494059383388812834980342952856954647724869917618634279287823793096924371092751688077084991598330529873002175141744923738164426066393791637685295465887809747363967425942153519222131629725785184183074261115990471076795044708143710228544141344825097898333058353927032236716287363888647148952698104928004008450082218861430977383657212636984431432975117768046625487238624198071002868345103284821982228858510098763103504522622321065510155613916939799861576115196455670910880147394751795696337657668514694087571397118065383218569578790729557721162844194740385234568153324131601790031261618344545217037475020717538387272569574873755220657613612456776174930903791634915103712845575429336252634351683304828065468331025040717287681279136892658632926177857049545291394473113313227843957283843868313493566532304944094134810857113935900049604526828893605775444599291479469369705175775913958671967408845549103113358934992225966470867337761172545127660008685869208725044399274746925935225418585959998310234889659501976361311360718075420832223101396734042757203454618511050689722225063194110977617622989066823167509185371067358931751494840190674097308559257607666320727584172094179455730765904844007007132399544744921771504514251910803067177192145457226672999290182697130076617744597987219819053938816887782660802335372854827517614677629128461004124097758049935718304771281445263211791370842383118986256585930500254925794893540299877372979603654953610165150872629565637136657442392117748311496715410634226353668091851964453580169006909024612585649023213285263281857496031957756136529436886090685141595642115059804463738537904118727260834911787050137927073391977519349543852532890907077772967461431791653921125034002113957552665689495818540295243851234746057389381590578964942248988970231655612495608592031026046738718859952239938550231043459327719901286978113943677281563849570653569208454342357760364744792537242009327812200788139917855646535547803187980648643616396540917735839827384998021018873404884790523974760187737842380557723604147013488016283530297389187607973909152845540974342896026691186318130056657592015475035352436826406896854083115171743142617250198961441494725436391507671639774270007616068491335214187504050751395398226518781377631121581842422358791580063227050531768052231755495077918081620832246942378671864207724025093101508868641072244873840395556802639580960738019889425858380823513285401989083491765617670132360812303709141593846440523625208029105784942167553773801123722238966473036033514051177430313536281391010326504922278555842900877693941088016310533855680537764642472803031584736808993158673446567737255622937019278254882941778508076621057213655087829200565566251696042690488198849181154778982283991110695400880148171227677921396188030274662162141519515571444299463084249186276354482100138209658184663470027163289451152472998189915103581483381196951895868622663704216783221149453839401659990535525972601356923962565699787549187551500088892960253872779070112482254570134893156673953467736563059859765643368048406847986626993612385495347656091541071697283253582542934096783222048838655906808135510968815232107362896204587043513666408910792445572408215495092086487253726985097310494993533704167536523392797909589071087507619413543729723379137223674245945904203380181211079603360941404006587548296647665437454781009917907763841266707054012980187888803409334567388581775983063795570889613981333579291158287247611266897058788914740273253293928688789720846433351126841682919088457371879346692827197144875373932888566993531391343452044374778503234932455360379881414855498968686525604060128561340718143164903292969551570708026733855477453499355490525576871031591048883122234565763910045738708345934655368046639440129987440500835996402267545295488783428601494474518672825550462370359168242722794774543303838011803829078157117355726118104141383370753202162841414526416940717393942707950403693749782144622345774517509360257420437903544322725484095733749410657701988313740695970648183026063736410962224596600501726639323420693430024011716042249433639200648358732484781624185513005417117128356143896146841121000878398465720485365391076490705871134651506223400794708593246908676200733127700293601290649370034129284317625902843669470549619687555451608194693491290577500065799432115070355674868972444622360808844711123619658292331296247737150678063601166296509967968787360351545077719950658984266111253231005184203577202150772176147636863474130204705404551163415652104825793578968855249943689517300219366397124426739455904169760640467586959921111078071020064430350719612825739044411968428612905519339927118474580067168335258890762450362699810882525595978292122009725511951738600429769802945252737629115661344142818715019115298430862425214182430886799193389629670778853429416244671909638560215300968215296977321651825899876648358517069122285966172079121950407851760669117474349297974779853746929977444068026214758144314464792635247145360482764262328441920068905817764887302398111964079864595846630285055767636233581575336307074391231951177223047781203564314751982931013097698822289562348456859229270545511626435940174124904820101880750263282362622298392290998892209111496288538072193082475905752680921013014195417756616568802536141128226548608002552348064345350482450232521073715437016859964617592230333657674608445200205688991688472066432887405821569616379955289977583638491180705094234871019797293877810822629313855251853245067792917920051804191123802348063345705546935419498487659498652069802064144246452416629802596446444563870584027078764104988628461106433124394904273133077496542186371429312544620550083905256788071895745730696319998770421716505882502918621335182646732077518066260942628175441333103675360988959690321730467764613303208543333658717755385854360003547870960355360376427281732789267346788706682494041246552089146401028465154392553928214464015947646703118111576286838321275014119088479278661644213294757327857184639902230903143552653227484945072712838065108478489466034286837106848605574880880492139204040023271011751410411195397467192975330675643835196352808302620435610590391948456541161020148935365271679976606062155036502572106617672098217295227036558846809349715655289006105657024071683572574869052857588039767034115980882055708310685762683884449122067001368372834154445501499564971678241635073442288272358929763330529921293313932709357288858189292624965301031157325540481134834281955238857648910621503385829972124486817806949808329638573481122911514813553663182701735217889794718030839742317081857417351062518234325195149465318017666717641437084130749497518937752442348883746681527929901183135114656063331354082048924640586575454664071721303413298507271518139762087752711734849906370011189335877457571847497347091320520873201721496798063851733719448166887335200209799078912836002203034823010877810180051625879168028289373432366852474901711941451156784592652498972239493243967858102177135294139098500234603076756234702683476834289561834956377107390434663568554202032301621952441877563404709557151131061187772084492697704378879570939797692104120727480600017222176697659835277238320320686162796845738068996442680804872693976042707180257225664836101954373352526753055871703867735047717707753495925282277372985409240275683752780821609119907890570133705155946187334199184817285950888203397439724933710064875927539853974619933528414963494383858012281275929991642890695628917976773348893875928564335084310429947797085985726854699367971417408548099605236530463893342390805734598858409669589238867370992296245838656016422798922863150726410520795649662514197909030408425257346459376583161705895738130969628332039852773028067815565486803573501989617292358654801694110416343387333926807866136183034959230213517169250103156698140856166360703298216074995212952285854481362487821848348092921037932879117715671072434249808032071795363720301444089633379123332056287564288677666304943425997298104018781387018886476126072306103093083487367802087483851193831692578784704567023814669955634919961365505707061994390935989030154956739079801154532853365153129829574205962138618282372899967867136973430809137772171623239579102400829585078604926629101203823403677017877353279076773825164156829979923793220972399348057034257161378373119671308502620315436896921289618769326630074584552117814107285208265199914503631722476408254670684856024859494244219669542100923454162149400515529874410995931228936674530264767145471282723588696109646464014676754957449543195170275893643168797446118657923085657345600091168844712300356180262275486935509296898863163817101641987305117912272914736536682097572930696875083516075711814510593685719317175010141740815581645478081198335540356550487093558227679368430624535733179367079852131314957267039757491741080862541977736413375418271416249616490744270599872435654855476539125695489889344566979116262511880482202773950193579801808900744151444684835188611991268158435082501875775273562447792756433939075846352326910713662364250506385053172850756465687667562870898527040769996657804522809745922332342850198149073059521764281334654103134028739651445811605683471180186766930488727737610314755483204937739815263467287486726661214673807499409080799103138295199452472029703485013696400829030160054974857446881353920107448903684934261676514406555467059390134769119599284355306498713188564245947393184768069769931142483082945573684265365483406609748654726457977602232103471904804039134218130713085972651497727834919438032164061199738876091312410355962952394683289369145550385964070807061883231497971474457094382381527699269465239763287530685028247095787353574224445165176130283498477279021931932219108378537196325013438421766516888478917475091132098589813473012548044020173534419096835680349011045770622531404836540884698153383210839936161809567041771835679237183777747355872678012461555829443284337228802475495089282822620808873982783110549134068118225885360421776931130990699408731794689963188689366080196031935060276676806411880130849856746267354541504406237256014549687890224962527715868520195817582802746376511700922167185981665406375439322552288155556695738468163258116232062633101753710483231951911708012725096888441563136025272073382469065793622448046422323668561310079689975682023904696208067448984539964569499271808283535804397448380826686242617028728588025918178768061430957707883746755746352700592976785881380504689987295407657388677087583098606869891159506103188577492618744865071141476628938478680293494069608370260043060693054028404550566301458269815420479348506813341944690609140438124305948247489041860045552365181941001285703132926948717720974040077551928028546502946377114459205257065442448810023027255298334083850246437382385006102662791223450914112172716301578021932577340556840372469486520690178361135857275968577034770956897466181603095649863726447664576608881717948941112483022338480767848373809666954948925250550911650326943553411442346304217926906826674463209295236683329306488120482403585309981381472715345436013488018431657215253545673837749559762630909484778218361397597802405186008069357329243122088179146605903627238918567301056894305956921628026319830749503786872607115916075064263019402473975883754327650975928906647810371196547514248363203567073198716842409579104970632448888421641425806767142535036792356311587308726667234979996747044416641973128988612155694964190276064392060736896870844843250632401351679505282988439852081808938047568969279094682286471056018801544642830351981935898726285839614122405012651674465090833442025769001788071626583245161475165435156647839162690078562941184027130650387858729546841133115102426515655579992320652577366975068551734695298629183729407060545372911470954881741996591009062866296903365031687265954054689349683102189220840928766935865339455092263319782729930051630717228727511813312880674000356872720524663425936689591813490668778463401129408924817399059090889558552483995504517045900808566821921652230447450686952493548446003255122839550065975266372120899510077780452381501190497550664523414528770609538027503091801223723924633329529691023461923418782303728134594739718586355885365035364722724562826524732127161142242819138457128768853274622771271347441822757453379043069479216137609565773310662107985105315519290169960280192223625974995528448179610083282355298541709089262367924647894691659218877488306618873434623045243782004661918463842940126488566401025214054447213217839881900296725199655868853163289272903745426576948745522811048944126308710292110360821873291444465991328313025020760353797414749926667283036609352728110911661019846077525929806254282119672104635049709860211807719164343891460390249690242551743396991200917285746904549211075348614817725247542418135758398361622380146650765462199387222397599808927079211417637140108712076724273068490999998875359741761670182416598731331338945564191871237303863527238590621045291169080152805540325260339139837685437213448505385883088348913262408143514331402488616726297579001275902030675729374922379255317156247261564344662087513233239285145556925336249078863942300036920076410972977715557261764458827171309491180661251816340811926980553254858739779035242374249428446718232507560628850473385751280399245384830212263349072716670504352563538365513045146039011747017124206023415357374394502790478155799498888201175605390395572816637564688472423493057806357175940233742976878199712548723191889036187626338667057073220803508783101258742756022918777561166430157210061835723426268693662163689400281285287667022608750691463226113583449817456147070410110921554467706269051849292819590412437509467476637505796070940802358972185128151829098640823974286399666986812505765737601258228545168561967451994290833650418378749650315548722937018239540094671174122351650663902489031563580349710543302825173762348418348054907348282390951413902881098751299774129629542343717321621878537691847657838561275753576014512911494850824486728126577600996637648903550014577547202381118474624364680940230232792115635205445132110848634814965771976277583518888725022316176095256412479482379245812541165137059121293361357193297161746524151238263009376204677144387390962897853973502126620794028862769044934082192197113447104927539890477596121945600522314819824752947227817825512335019742428039266738077738941528020446979562242734558185401817594743681448512227172948676468357858088864282001556446242730590616541545871382510352341285008700852181052987889451680591967014452298359567183179397106380607256192493932490075769363005506553820886584228856901681365640180152690683416184672346891007137113750132499106473361002931907946749338579539964287512623973869194588056148097893771362448932274176931207100575627630822658675490763467535458083889055021881813635865469701141152593801579973665630772031552260944609090813108424291347288929567844233940560590661550634438198149590590747174943273093404692380670679771941828691797430962455944555925277027169727939246489095786012200387457641094849949112143257103403054824961444121240517823056384765631656722154067920611073298746143264364291694377983011686309657945264756587948139287765499402468151690650650001986072188611012266809990385202079821335965964387738822085711207569512716263694541676348288710111477813342461294434789679214743060611925376881696692701759891103632206322813814303024180508485650196397301812877246314099065245445267941626054487539947858239275690113514479687978657510949884606296453863155089581105443223451473932422759377607688932876516349238860178846972745704442198464262400923107720754218599776344324966369957076079744397098144915885003950865734576839595382233886137997418289512430652780165010090830206194451565255095081558990779217103170990207743897950635266322442188929097282642714176680725434531355326238475140185235593125022002471148563079512193186949033659193688052092831802868774442253561440763283044419061480255531721951265844347871030070679309116306460506192097272925745515762979523112792591924843882721587303648592489705803329142640622659953844465069731282486754308717484602725196418887070827199898517371097068233742206912215626721563572296458416987591245672349522108318483639886810489166594933923008705350852790408101325217561592208754864781435084744192899806573986626851740193483012257371993217687342287174675118630173606580582426034643697761239998145595417608479086465727608574468610062214207818704345446084453562009916269847986612542179723046363086840698511518564359028059116002149373382419126600640217176707611579746515658864359441449962316140368235738407135715561953131203555275054084308786670503424584336532556645989807896622483272257998116311199597788788390807896584842160114413011871684675059373714417898723742995141788895415616565233996167313639995788093477147537518558401566589507206462949927642814142236901442363387374585851383270022438497074615734426030344797142471501930047923190934992097752729356853088475270563642403070242344848994106147530935778891574592471114895488029973689020697968951276617989589679864835883830176134526411713828842242913408429446166522612490409601998327235363123483080721406954403286109276777871856564243116487255952068073335909900451452843983956077292852145816895386412013216514936004243497139321040074284188172128986136298230277927660228696972685373814551320965016525648655495004608096404487715130535778483565115557889138573132084021304142324851774583457947954878344316025310057657050622135186708937457877812511749429887513212351246055129811751619472584382969969206641993063004558570349829129778775889331967673448175660744329141188915963147927925613896525858045701919305915355949806919790950120468793367623322760955826004715654998494551748912050029584114376228337672966146723306707949407803409597617885632588586513601448479376898460830823347482918849056392576220350081488647926285252905489081137407887358153682435963782121834640870218456601313440211217327974246812378605140017288756901781126806524908883700593454770420178878235043448801317842958929248398311586332944690299387893420913424315309806613985764646106036392383047994074914558899865099067480430139508697442914574402154542976424078298721390713647046722590414408250693531520977964340713114562129290052090430764158961274387132542002583315420856792243072411832114105811619397801830823994778004101962413908242696319198475555330287813238440557525461994025182216888677079757481440987762201558162428871909965625408527732670101384366284549156798432129420552447209820003250647703628525830753376424869737813497824329872991516197449736578691161611699456944431508384067078673177910926420807182711002084813600388546221310983711520680225457593837948151504884700442133164842567410640633174958602626630170913939524421588936854553392637505182131853541953690590360202616437694915261532204345545809979165482972740464773023150046192734773130810665091330538924652141359370469902748872779132049515679319437911486359499527033105993496099924750388928905432410730500197318391196327246910116443210449350392889311514062194784571653739189850357950486551168781867634232915287424791254777086947655507357739294803930358342542481254724965835230459698819746897992468224216208753982118924659400351996090805636946859864576023424774474764879216201789855779332357598339709243095229065350063685883892414906066045068441539740485895299764473732845931504075652294038134478288680124316419813733138032432721682816936318737158461775679079567126861050178631331715006821287002228834707995837683119083488418724740995196079225344786229381122399556371461205243517960482367903413829331455298453517251202138980906364779388545584634542813404623509830045136252213466447066420812904819827778327720012563469176294187635505304837459865522025586970575457351483903492696830974056953960148945407905514813713268323199390044468299988034082056728639759968582500439845778377827694650726875324462525188409938501255830153611311527234256363172070509161117800647471702852044190418363122346860740238330360895936801637757817325204204259443853612267937745263181829699030959728504868148736036906705392497952859138946161909475758506074200296824826564175496670556779085321883400328159297071613287955939844314556112959586495570761676072603375190104823547070673611454540449360495278115703391971216760599578881397260414591007930579831965511153405494161919652491555223843631847305926464225114625205401746362081665864765534267519544198718820491485229041864830515718688209708365679016829522095776776817126196346339489300093933658135878385946956322079919150026269166684510816996093912581694112796742355946329756813568612550451644826049997264084637871876879952818172553582862702444505614384206755580788143224410993690596251499877846922392148349771968604693779384214075696256393493589498082691400079007537392794565428237616984934679530844355280424552288096177459461634457161030949773243932092607326126865008725450664547732138941624320613025256832295369585549622180074479451458563460335461666133878088984348894762520752523991618098714756288423720297035113386632326752042077445657792628328618466422848164143932527311034580872229588664794124174203012153639037841589952173745910181312876361784376854850470835722472238695639869585646171972862058811436026788927731348900623542399596802173642202573922641166998730759780201406395748696509288567940971458669897299411866298658959434619388105206359432352541006179122025316257226042988626412933624487704189677606995652905651230300357443950597713314654996427489293419899279094685970710713035992717414426232445126789195199582088460293735521069346994369599411208007039541920444058295565929467533630004017784499971477442299245582768062933405048340155733836736670374995183723824367547319708458394949963741373962036454259682065866050362108023494396442136865297437106332478800880007116798083480363217115443189579097635312116214184351141462217912740123504486860447702085934175907221658302743508763313048126742765370625071625244814415363328033820312964895920004441991438142231105531959117061487300930656554038730178443818833945399138395774002616080601798947662469563644397280991149873838071947466852326536839911882107316638002745609883114783984921035142003537003548792507696141582362081220546423559281013132105544757611075200998381957162395160366051426938898233282877163605703523542668225690753907151200175314165376738765920292570603173074571516118801517448033837751679689003867643929745418289889577698746055483144219493583863625740479996232070941874955261841381409621655845890334013889987020548637094343418031097349304171331996993881664306496290010858451225078343154766538233260336674532342712715757387228792362745875089756329054389825432167484322492846353545496039106382685302882820024253570121543926467828200936859638427631134025200712138738401688061263969303267262976867471864349632027973995761688955774469642286150893721556466026836661470311232869155249561085700212301542476344240444858963094467122128597410969885631238317978459909597024464248146332016958387216264021434072259821920083284227468547331259340919700247329335244369092225771847439608112415269900555671778395187450207393706867734531989317679277461254800293081873042084119382650367037414419354795532417058501145591998090676067252738384786800514956017843394901523709691162860657417924861691141868758336015261676970716143735707491276094110476250367371488922028772923487233360686322485895828236667068920151113568510642437470551409711692761475751540629539060516704754773600265982471591724617519120349071087194416553717619653911478966491185779244017034007067164957262015745691477930495104873266656392506161309426128168698657863163833918646953452828415338655141668141040239650184650267924261935293084823198970842691371367459162877160915572504362746710045106626381078634848815062391370763006073910071050015656806628124770092143366811092380765996828203380057622291342966329160602463261972329426984179351342592080422679972976414853080568729087493097646856800167642815704243733036278436939432220340575579021930693017758187501786242584740280541655835737239634818928846773161992057393864313243262016361972380537040716370718687084435179281271619525640093982979294187138698196921667506227208569426305879805295404607946012152759238162648825143347246415093095273491323346463867152728183307926498993290036421832474525215530862617625590615026692056659429688712688713031581458634476494869353228113681289505878194657800469325829121346589009462439103648056627306295032307601534775610310324516362927167803075049008342139460954913980009965528808460800806036463679095943735801505254700120126584118305374917859300792210619748859938806915678206954789107443805730511971215933786810911600810100533038332073599007036066895457250098682237439820062925096276508968267282802111517085379738006730107233959247271448668240505763374725762181695885024232007002459134665877261297842684068721041345344357406665502852280042987346622739320321582420759303639848697482914097520646134742110788996239997218169295769299831318514783249948808509257956795184299138984086364351232742112587251752654829953590195338215360880629140403808389600400321615908494899073649342345153180646228278266244559217085044724126209319486491405852569224239858574898753196304444239179861724866506324311557670637492912284393229304313417736489066686634210807534271478110846354723450057000020882625782783904968826233329211690248330894647098452094495698379915413768058899724533741819481185684173633553043519261948601020025527010809934247190965011383675765989007987532540135325411356510411961151953774601325568646384026893800015295474894530406258946871814556314417438775603080424152621810084751862123136821482726605105464813957087979636445860047081994400718834660920901433740450572234421865345031955694884292608971437757756151591630002500084455462671391721401256513118881487254707693768565664977825757123973057443330076025815196719880407135407321198561461220377388687972928981821062147623081599186142079278801551540166961673151157815453740110099078547486789831607433222687812896249089787361949528794429673281859149612825163034451871360085933515214048061556776788931685727182124164626887661823025101708380704924309769386996986211238742715304677178824874383075305501173474011751764176340156825177472626257010447833259591956261085761742640208213837790886841259139876078454301170581354480884796558548185971164950296767247725817867069518436137332961557421236723802742040771087668513261259637982763552653413132200699508191902055862721312930342723668420264504513170762204932711402126998452961541027032399487961345983909243392466358920295125309606258636341721197836534510976535245651493124625764925446991533199189187714829492997966349412311901981357262375049481471922938719600257188276770460700067464099300008596801300224241505183770424185193857590704898560062146474399329708873869479170391830077318325208577969048298519240449939161523275597550356368502797496514321488824642837112444204124399425465591312819675073262840644745776922810650317926765128023166007950091733816031443294933080062968687617239760786034282767177952475728816900933783675646609241097339698616067304071553541706984308071772084107713975153247705023157824779658943964948377156594746896224648963234449521143413862735198200233399593351481249691025992510884855398898220963339044075534115770048528121768209884599506797473409906073280880908963679187653104788528371283213377128488351873018846402216716989482086264398675730008775170637320419585134266307133843510168385511777104355866030638409773620134352395964473318105670742712715467490884313682547511691160010818919857367997825442134443517306621338407926178100367814886199725011501551765871575361580973453396412049307012440485221411149179340228872291908117510309156508192618629092629110149084025053046403631438718405594843087567588441733608597473660983092226764939066953372446542928532384100000425420623741923431458351818206190434911686559846974294304201043736926559857009636087781633071698064389859740384561738944336597276631963309133364176187143497254574468650247303247295045557970455098686600406868896022320560364544184345344468918904080478571753204909529145151873068072608453645247533913005473493762501807452147066326802114423665895637327047401515219289138792790086196089742319661406363283686309291448417827374112587246800083804651072480763421296534655444591096455279975048816588056123157770711183446799654501863831119901197432328469823195746580442652095266477735407176092164979874955156585017342907416482678458571417199074078820358013905401435748943142636349886704400156994236168825888352765163689312995699049743664934162868281785631755791172493092975691111297418553812307015772229525325105664331763737673586129526575362741625878180303400528673074308628214267452534839353542368645178908444368026696356547895936085129887648412126407816195396739121582881919330931922632971012204927920268785648049768519362922688163108705905728504204946803301355636943553173197618236612826056536876696663956508471035200818674785280186602546929465076973911430111885623166714006133710505933865684147672483077210779353948266152123782213827183016597687435443823050788260489548563520651321766993123508162877882853891186828294869036811351689579556834728845665715938431817020107919604117427811379205851400690135827040837102859931086004286426466679401448569211680348225768299435399288266177583750079166936064809325680788311767227753124946804573922551239949716277157154207132119478624582126099497718720843372620471064270954785230148472815911387164098557163528220932300138324267103345355219172169900513353607964313275889069207551733055122741210506292629868674220451201994650147094286297349106539990377410420163316467535250342837642316344605387797800193779829291512415425391148475841674347765117160652865262398988569810482656880246545907465130829727144740663635395684432266153339356176598418159212835573460861668764809398850688008862757467408102262295849610512600190177311240577684448803944373563730148803024501765888499648243723492347929295210009250876162813681616402743864493024994496140094115831998537541445212031559880327069547985240297894227550811407940510746414340538207702452116922901856358298949090772821675370477823402866032590383343268620290116589537315429086816961072895469085599043646146905225748019733213791684613764532680655045260641016649750397421331656969206453571426650846928491087940999930795062936038175123029975828846078837204200151718759081333896748886239769656801368405981887618802377438312586819528360545516582399678298667802038270433794912576041662514745595946190459937499169408488559996621885412014084639586305796382861068742271936588105093625160011581293571284599910437618986118649823658289946209314523949636335238437791401471971659177891103196698552703830295817545061233498718399695986482895960958217076358250803591908304316293239220031502696761863305094788736400098996507990846652518251877549691412713923193075040702717691865753725633055939716153602492430842292820661845246038060693167811063258850474971512710652806611961469957159517707865317662362981464258668222544298815626031866148141319751951421809007096962922079298290388027962083563191958578315255694405385895093419042773094022525854479726725098733132238163498787528898018341849371002319354161094656189802704707678975602399479243871789082050374707519356919929554477611554380230665850247029514570733886549938029094814152360901122540086950757844498270943041090615422654119041855480475565951573126073401337322812890863738117654671952761238755234451650774367853309622915646821591033740270715782046782126713906566646196725161865123662340144744845658646247365007698217232935178013344564685824966897509815210997547901698610739218477398500373718990677524104882225494727194735390347737990506047899358329009215227529272701134654473394160757673649633225215408558317291059409540808827721544002804211399951948861121071432306851843217597222465619213976177429106364549609644620658043712866818373726717741655535067416493997719414451849046648718526842874837173802695093424707142733590766978699654946957983933469555582716848236236228206163713987052525390448326645024592363671119044239826594599430785148491102457047115540373130159965462440534860097182995103821538242898618340736876692001178081058476531211226187308350036012407748641854107205396424234178115794597241204058272969438962789365030353971663557836468273967782526630612386424154752286269824238662895116333431822734459076667693624053333359129689234564893188823965093546148369725173308897032650676462072560298565844489786095590823898099599734630767275644898676595351907377164660693437398897629883728676323843034825585593850213425838938624398510716254101120944467143295599558847106789023355439496995502657664862471665490679357401739686985564248943398561918034900078406387784250831943691387205391306872434456552014072089149756328230982639424249396070877847201810103080190277070472891756928102168960358989237089237430435628523511205220672562311894466244152561837084020852062541803427048797578155005622630476692065664400844402970926462496919320679284048669722731320244037323294499882113856079305864386695097075216635590175089925104102695099273260719482822990738625430284227643919202368239491540466985818031163764422111440450296766671019317917547371005043871646117398690002116538998281001455822739660593804742721019828474234176085162890526805881514854406128443528644244201135407829574818384674391973464182917576131142862802922631436427041638109654673742466969177561056693380008180627090128587479430323127479710350348827087331439192694108301818943298640127194531252751828119799870777465592872822208958635707608726065470272178171240465826471471809518690541211454919384550619685414076117787801933970953470651315749831256529340525465959199976792522847456232692265792457348305829739137673095754263381575923207655225832964548482240233667997757299362202862849357967437748085403188674523348146004255883862998430132657206001847862404025741797900917180214083805528717130403998849231093453292152153950124653332787070220983081445592734895154321628348522387483165120084825768674750071580915373670885767946295324812302052841708923404468235245204810212664517520137994112379555570676052634084522482757795309211778512921619725083438944980516954532033380234566523282842577172340711556688522179276169595573344718002801212636031889425518198343251079726337295406055729123897455942493225686348085738940704154791671376938339066128612372250303285647883586093724160119496767241831254261998210074880314680963888701773000398380187688848312763977643303174381739759511344729297199157149026152778299522328891248801413285586241868800491147035102410169106591593870353033178559340427141071879838378008565312681801027504909069490281272432225921390142261672260237587099524816188321301768107024957692590781274340442456468121830838154424275061236287118489815299583869494424136221565656539846043647757085700958734604076870627115467322508281936995866893692604947486688166029233039476946137295828244388733584417733554449839383786890058757626240716295096817442269364862079356330829278758297971388916149106708463598743460562335074612899020343458923673812371870526302450016374440070510559720271281587683694408774778608311497897522416547199617928224706243718776337799223631105626289643737942029824531594365818956453787070877479243806653289997787768009126905545395051483732196115617034140766264245017014584964530336081020168047083963903882355770523413110593239786237675164041567343990747763082881735428984598921997346366696997731100013881415123220804898742091933247015149658827113383056020252585326969638511277427540758067428403833287512400579930697929682388201301628465007842919437408931194696266973021107625679160676668016967667539153300634030416639202371526735989017629811989421281791103472027331237674454132208242165976741690785217994064319442849644899735578021672279723231733538065912730291095070024283983820248150762923401620509447071647414949829902979187358425244592994623336230323399272452197759935484302008044955116510177291169249327617158954998883719394220066267324476582329105465557114943486808655082813010808844429623502215739876632910995544569317395541641113270794209523544594288338404512579018547098899460994797171944329109744028672229427884695959338312822853543201174482363620351568899948244266020396003554159734299420204500605692713514873100060319126542161165476185397878483091302343376027128741176029226146762708716402828846408635500652992708212571588825458054926245369963208383045906707719672710467136053196548561779254363123268125855816921438654421590729184416367091871016098315077594051633715520032133993904663586027176599516098384212862544053533403861801059826154933042873014652398485899551065011312174820997812101796483806319672123866963183785616025898543991496496844622749344933091915527404376813102903624999670610730389738946360007790467135483944235076186256161246451036128055248231527011771098874809397540277145066069249436147843471637134325135238049942849828051304303077854489634962393127838852310538454778160710357939984114880494191623493127088001464462710203730048003479218089165256253586305984113990087663558760523371185446427859573482609349843846174895106502744541234832580843526892484373080868788287788484036878848363541762469437217546813569480009134143153718340544653918527372073070346344851581096549586574628042918241330129627596144922629403570283550030105501112396513043048703801005699489260406217716026965684047645997669205344407119743955270666992900491157332676433199991412420489999857018536544850073877400699895885526262451924144687636144911326016310388379937095338846210940994706964862944802073767782768437222609690526679704029110072884648041549361241034027823469511666555009019511072295745982607755873736476390551338877267358622535901481072604074440638575875759816568137745063540042789910826392495719174877204046722804396830699057844143957761864825379762329126258863819901344342810065503589746643949104445254871354696827730950888268913811810684980811584972268544536107993787754282122892540395512480164172420470685485029728926028411708170237663087311395828619712568439014682745527354872267021339600299411195249358522174996673990116622395693252138811097803566479421261242066603201432817823116851828220497911446561034228487238873649811457381561476009204309658624178102879804009243422174064294712120558619204372165009645358168058798446848359348844173838483700587560814595013492009678706973136481485955199224898082175662612707548251695625064874458568552826265455758186731551743586191985719933348957870521896146662290400017695893855668218644506203076499412812834224609059672090653738442351712052346828729891151456951990758483077880903319249435658365583474300415160575707606610524964641903211988763434255981296298073726418857724510257285250344047069711310703129729974498215136801682088223423712572174223676523900396461555632815680799649776867610378917752454868436800423838603851597875367356103557838469841609338069716044864473839956753645065624602592889596655941488052346512940420947829922748908508375407148682104633983281200416295812575386485888246179310069872210759755064898712561011274259305259196981579827016305424942343775929762436707627685458245296471686680346997296539706970841788345103774153956298188149709878873474500322071784785420070142561824745348082150925687609813228513553175764237415375736052748799236464894220428911243185275788902370122799623509549899800834500918057072210136791734407938355241878229414310234075325130325368776201004573477123976557182108750763184759017509546097948232064818147629664690320390334859371234143371645805719728203516458803605560713300569214246636070170754217936340118449887838090304562917418600315654966350759891069381377330536997705569646132079080186756260710277588931286070523197657384108224896722172051249493453920235064638067286711413178261911556255908621648552618301733117068878318278198536218043541545296267523439960079867727200099630346899290939362970984888020216859827338430061037923251309193033952356693433876113759418958475382888389750341809879221511657978836877023254552083043614090185011142736694344182003209247668836444152021707761559674652606795950015157164664470619386235496139264805008742762855169016951724403523286165125691473943723214025576969388628852498915742212779655693451450653718014271263311831801818332382450592221318242740545202779747609186492200972015400262905458735879581245822919397213928405330724939290966668427640827107687923155059854861588933386253241265148850768192687225626824977277395137189767940184253131095696751313534363271581738929255497433174738170849346061278975578365828170659556182900404191546579171992334100110989816196814436273568387024883309802967656864676938353638158532506823230319990712345414614878253892571521234716753121023790253966279002637472412710021967799449865308602547703486565433665096537071963806669950571757623108633500012686597495021334192632112809670911055856567971773600309265174806170127411792955731316523610726600874122313120677483219937914145097219120816937245269282903880785865214019417763489296919745637688256647931053158924674029790966563665913554427143227795473758349975892200252935484139689034848021215071948090473314854051025292320899928978711015667883607676713505583469612114974610035267246510259364885238031350610170143835608311153205872352405442583524810474037170680322751343681064499193990280670982946124494230685544027899263449140442231539283960364920659139661907742893441887276465986614917005449089766898823260632444916305660113416254169161115673403550297990987619230611883755781235596706625833723333163197355258277703742550622338507615449120210111832918791297607286437449121690673344451585802639324444927256997740354941536778085706801776905916105692075797989728954555579539955872935163218425558735941755289081396505667765159530248099765279196075095032548753343449656026231860515721388178249728166440178093519811267322192552796812094950490753570737730141072705229685417077333393801719068604030838836678153886226800516449356719026393097144541708644935789171712111513546546321821809816925443305790814568289507349043170451283254198561799287469655013708053535158622930265003859382186963373515539422614175440240517219527242063163595727336133927226962331544626729989822135620710948764119527757878878443362158428394061609089104503975925106795806666132054701138143834207390945957174436974091989305663782182932623896567194512536134264990195282330620111099327381746547083775874716701465028995626397347925979317664280966258153032235444684896951774616717289160515721770448305492203818045249327870022309334736945524378540836958167397708111801839227340880990294573917829797727327749647344876504310899621840344904178777119490413811057315270324168641607083780459443866596786794195069887764012355815168568887106895964214707810730735423097224306274003998384818951379153453387100126513752461978535618229802860044689373269907203380587879862054641893625670918493143396586797669341813766895049718019709882651091531404048723804235583265929801021110853821169843830719624585062517810951493113644158928678718961287467389164998273919090923042945094338233755379202195322351644744871520612816796866239140647376123584408071555595603381863816318838482756913947472679927792730975585797042594835761452928741521234486274432851086443945821138159392687343040765145956058719543041163489340073762185719728491933241311610670262246930796889970878652333428307111567185928826025633151054714980507929880293965793692188213931300708217597777507319825294253836252039420246222955734407186811196898906997005217299951794010362888633217803143509057477757260676347328523081582981210474296375856998087634051656427495779432392439444114643310293229724359624955752681655297848757874591010806713582869211649531986704587716535089835094543203114946231459901380627893701595451008934512605506276381597374815305451597709266625069034231208582726141045053244540167750871051114390791851741722737403426368904173457815690263506248827538333199149962707992967059803684300216636145913182676878420040511911957000075270306537310334729928219577424362039720078506581731522718406901591876631031693226874283055973984083514825007627549646002750518641909265769141433049088935305454709514997642650796884193832930029852835974203366438371219626369649732374174087465587129544103332301783318425536651199297291311291519392386774688962243792371762017046307456558680957142655280591322748565002871352692491213526999450626964226033804904822414272232275312528556505530174348483505745081887535265721961191322788270773338043491876632652901519309524840141627023084801765374247742427242833187033477296406069328057428011434932105925307061745661779497887425554263319617461492501242124465534901796925241963895579487043800346358730994734194344549840417859802846144737071168016234803071586506156433381316170878787257198027907476969047270869354013932242747997415169332943398263523354187092667854433583338940222448273968011391849930717993508858203274066492214639925925392979912881239874973259056572898599953456762611215343147320984764429598411258237686698964993261775115115799635720422663470708451573260455502548227811867422751886579227219411032240983807707050734191857610055682167062092838808039673739127110063621816709718315453506291746451036091228199799150223472509820031504105317881631785559481283292595600920802959954835317760051312818763869839704630687805405722341908858887412039929763683301551246512981821102202692287685953133135312278399320092722541178971520033571996408233584817795989257178911700722041529348149657265944689592556997575490462746790520878510682472322276502984668719464136676374543966384227952210901848230147439034533580115868271535462899351260991049947396311672906882744665107105398638951935622752073638699596818190420162377569244532352433749090802135447040734388524460902781483620251292400533087899421023429411668193829961585661609122913978434697260043347117994867560733091855924746614851413858456247697878177727302468447801240884477343411972802100684782534935901235361509665390255488556377857070168222930104394499111285541442165111834906343507554441309081279030040772944174101621962329985701090233066180104070138470055244491064788599703180119188844636126487292990288507310327619599918545617961250837467855290927887972748585093409226825437213215442083139467599257484041076991919224774695486509979979343464268257170154409438308807052679730553981308481757695445736510132376789178928802918577140840030623262268138007933394614991106368495636044355357806026698654754295987148933612812674098042851206649168211599466675720436177013828654931326567135556763782421566908000540483279410269770923121639489480453421613164764444518830689252784097104457541246398157849375908536843200157621614012221256465937180161872946718504398501149095866265123143412338641902308927808514445472132792351693087254619940800461472727083163160348172240282273438945247593167268184717414555281184893520088844890508741401601862219280546351244019619044560798171140044480673071198076674517388693336426505680028213402861024914112702037015677699934619449763108530754622879511665451763822661760563177585741846173112917449872159458113557593553459376820094921310611190217490667888092074782391864495866054640926992543537458498499188451203737003805953837671545935234232690457638575632034473622308961174055047895708290221471224206932354127455480911138964431274206611829956245243386174447599029207660268448133123476121163394200819102160862871648627052900295285279859084866517903409537151019246369795431512317284358936538419859395200573388336821701092578094561895214574738753195746539425099017325371432701571688837744273968473247022491041004649386637227310758753736499982182508269561685517500129807977253998453143148605204320283762823789149503918689943631474077282509464828881176379706184060656736269385335378652791123330667287868350878100749703633286682604019326600018459557973887076770180421457729658795379585496205738000330168472055730068046322554152240469058181854191268297680299217599226809848246023423686309835451195104318890144620097922453362561912747001074998353174671407065537172803017399934261188834413363252386565482846502825242562978753520908599118814824026138795665256907651811784900227628895233411398869931645747504168346465437824547682837761011356558571983362344073833854701626627505752663197867678104189798109115271078200519477530148797232308146660816846298002301395639651317761594914470231157123005522350622471816013488314760286347095274155197899673738824235621907964828411467220756964888007319586190135770742004817959925254324558315196678929047576677871225996023816319025948007572827528853966679697837705147900076022483352053954237580096514678988880401415795739287688659946552351235713329666210706038660138266028714843151613219580602031698464126067310583125695465616354388386865158128765470295073034786510231228330761796494869653342220601214700090372222680942542500075300944759366542772538914880533091297223367357399797679590760272118896561373346800132271490791675147855415610775043168670653982625955042357040711926326296571374755387968494903382582912201492661075917344562754995099589982174071739145855196774229849055128339822988875450459692606877482115692582742020213854928991260802415282582358233565510139306731573114193961466423248542378257575762534150705850862068887288710515718227710357348355754289526533276233559554750101212156843143996989417418208594658725388553572752000241909826798934355344842996153088725109295850116921792867595408222110416090386995247014018598694050477147301011680582218567901801432193648663412100885428431999972562486569337039949438396152544937065171753420449497938527934139555102632058332003528293081476905650919497816363590819270132841362190056743180508170353123152017561029640961112711006068482695611740479961506883830451829700854838909328419956772524639629127635176041012926379578370875139669610225304783754048277655341713385763821318599469568433057708396920074760444582655248852864563503873330013175581347275448103909146882203735694376586361796545437949337023243401315967097426664810656765654801664992997832964784185873362235298998136677659075843653937850359779259744309540178482053031206675009345304219098188210828113832079199959158820240637896602181507449811318463883331774630408823592371554681306574269922497961190933682456840201471836967896112776518182171141719577263743165483707623487712247735144021525764968715650841730218917673342942373670008590236334441246643119974955389813948443082416664861416091936368377759105424353303342208340826578547949020112753442744277945278011210065271628507850741524437017679081837006239910027140772532739856652326912273380382793185240750202408415391283048820202042567301674666000845206875106562855197911921626883058148816551527765058627439827742285206986963019761910406560797710431827808317153623394861225096768032107050709456754518056996663859469671346556697964556553818675770666577408024224033196620677455219952180823793673022550554989045028734047019080338250607300817432214344597344615430501138176405673693587538857507947055792634118814845056837210122849725348146408982681775350905989891953659423105023256791769021447622350966101931903399686929459861190074055005501868267667299556695981330532072550757287357675561509734768057792871606226786068901426898753292286285862895393834115567004546165487888930583596006642582194140733454055305662391954438616977476791872380936657184367407393939905811272444153448563041267851974684720888702328522905700123172518133927043278684411133890339734855549205415439670251071725812744717762054694858397400561882407425600538535399137572025519939524414700146655890861101268204817106746861872648400478900334556730772067592820500898175026072690575823038484779171111118462012053262739662232992688052357999260870330489088366714041064230826231666042763023433797732622141932347339938150949921358438973636028737249252957196748908392514878422417654769613414938437982440074053014406231951762385146393467441376332593752072612765365269113610162373750005207479688183510978235259096707369476752274751615412051854876558747117819570103429880500927387662513873452342402733154828318497499083291128123237932765150095278177607095023999340913907792329512765337619619339385891977228074818562472836393776036236599801921182917902678707959114382135191541412218789923640998226771592110013130721851628358975306030934504079549116383187722402733336068669251156531389897658660230278001064505160331967360013512663608680528933206562328964634431227742168972095794594369115695390858854225234451460069894624159590199299404475848058719934894061941475363235955986428472165833570679089944492341915801750488082434058141752004329303705297377472087249229573160022294274537638357875100780561002708940184731114823864360486913085105028740086528493252611563893465947946841600640771305811183249111989165872311730886232054095814805290641915406766985172398392209892398983449329034870931295213768161043632036527576668074250600468723576711715338827281735546023333564266414865307467284369226681360777562227906485626118932233348384852464619422725506322321575283473574543745730024325971408202780950837589292737601308454594201487221867713861486227894008851636451526250638699964012685948029731472625225068427346907575931953413524628381203038599179288001725031228883300770328631340290639742662900818510944896147928193746348402629322687906827426910429212478530934094501350629027346840756506786923457677536556027876831101932685668668728055060093693058569134827922105118857108925145282345966059179992872698579850653778832611527782176571854615170505252473021121514245530362425979519943275273510980123636658986745648692908321346364132431114197543006083568634294109955121162146346997694253110913229423619342215763771199897290416668022585598332706277125754448631144357536431389423241521895166927728068698143958629824963005698060722490234221053130101743947649956966563805536275709488560139741028700850504768970020646419698788171719142450912374993890242962830226457894003684731856757020866264553425987239315931783352604189100598490622828548045218334818177046952962417741762509484714114495336636146282551405117122833005740422577323504823909510131199114210163606247804083109916990388979224359894945113892215559930081415480024003457496962377408387013739153246975904306459796739700452581135634324027550253704107811558304148664476952877629781885311301849242296828248382820636201054583791095267891641908705495829821744942064341418337750154303770069748544938862679044157203820141470300907503401860162303397477288151677855229980639784423857205680409468160153467004583534861869172734844400540595148086938098710707865913743566183599922365145242602765325740329784318448352037091380111965069184967263399648732391466983793844613558991720999968048245335562149692778246322485276659830641591856285020631630520257434465977298851843891986385461527097008912315907190233663978434865799530888420194420635893053660807370307137439591169892373522504365154800960254391958585761625532988191685673408444253984282131900060839297882709085359351902302850039609473618534809079356142405472015721833391828880352431245883309496904385960497500787357151742157729088881661120677875028389911601531631740588315017643079308387789957054158716001878058017739454211292278777646211601591653131630069362859990970391300682243868976320502733042885182390196530687297616125495553039966784077600184392995918293197385624824746467943120155213349357496994280827534230311148698520527427155916490955355680873799501514919819941589483589280397550638439456986534294574546455314805843172770956072412774617190803550551570260641821535473254833272236947796401519663479866124603050835507306517746552434584562413184731424548394730583589875436977013316195809414294269230963319408416814594649626553971544067618247946287992326724928141568544992549968256423391848179815925013214816078284743779558581454805407657364713633676817144894443188156416819724914448057305544952527914218139679050181291221427415376360861855891277156248239737693684814890700238883534033479826267287623611924789593518145844199149392215472970915072766336938319644675142414292894921515984800472606674381096530764418706653775851976990398064705596284308109998825571433081408676886069320952604050411062851791237510221604903968711511528885519215477894091499159727803684645972750692094946798188216456685142553922254948533585093612519648441884989247033879997900502618364645427586698075441574760139774965942920963969408363399412016876805622415929230818336193663247628287712607255877687124682214303649884142310568259406034069670987410797202831495618818419226471925919813226670822696190164174319496441336339018781306208947290054287031722113604786911896078179916910688471583587318851916274376373947088541476497639677420590539329719449174730932980995555192871027432392211022356361591419801674404143981989598775281716622180794260864391248571878690370126183639643373421566022227392986433324656804741262849242959621576359668353463852763561161203809921269533501224256142845341186627191253710298076828636380898532879565929676324611142546879252060495868727511525854397996574642883209716244513751610397184451817329592712311290168374089825981102200168533126129210961863322742333967227751249205589887077603308834915388329590668989467382758716204789405747821813685726331881305043528511801433452267156984765729717660213230739383190787100391403501162528645132198572132708862752061619711854808005691572953091061132723392839702050225022337289287762439982225668788596135144183588904642386230347303542696197859727497454189128473567215407940162122300776766607631130741392481014131590712017628009822583823239177413504166092126280098016207006266226283145991847982117798907739046039171883775833860816609245242205611345578711828249862973189486634178486999900045655549900341797617843372138111374116474424394065552686398604565119225958208372603153421549960202924925384845684955658551433748146184776151605695885056481467090424932777896533105986725338530584303373152909595288598692976916849497868784828931041022826061483767066817270273458222552586309859735607257723543013881202471676224859280569843861745826462251104040062070813890954955551170659225472684088133789082516806679240318910769815318328984187351896941687484810550732574075194450403324403638261934850566325446335008542337956767611159569588117007321421412280562355299538990428107358979862072844191747686907283715981417224976876878038252815165830396115290227239254093355788231295590242055932823824277465079100302280389955875565528272244418756689209669730595550914260521090242445201474647848853673641357476386207490381718910014594178469396856565094013359696494222649266816107947292231008913180144067462203421612245676686892982192224136652569015489312446879844402382956902658999046282864305036424765161168680937229126610984538952589397942884356875625291822871904822489931260604812654334105025996539950053159501896621984355868968942109027582666301288670553581790042534604002830316304391190981763068487469944181541688071940794229303746024212399028596256510000479148877888533998124446753043199178898565749225355161216218837526843254942354265509994277330487065041571662481979146569583878690757782914174119121366536201469865129838954968691531044847844490497961774947506244949165631150919915597807958413914786684325981002334986536669225353647484009227144464966583819837403362512933802913047425347776896129972097948100380081001656609513053993908593667534334381954182531533470389960686328251155193133962803159044721184373271401849713396760100052267733483669000458818539450880592208182024238959169732080606437372144096710163865266859541752876811690340678250572667452561532911950846902547795884371000899636738378972729648486320555685018101577698833674176909956592826925216889932756959583376974571867681275099548940494192870688845185611435829463567227098457248853055766184326266110878370273350226921412505918627512576489137902103925990673254318191719317015631098410042132040806336067291031095176412670054807942497706503615559199561974630513660606459061902223234262057211365415942444936651902717662342647835105546950527548015750643640080850928369249838765510867156915171536074624471491887233268562276009190767878764109380421654229147811034587399743738451777819459164422926428686925721924481109399854904212749878563668741884690631109655765448665323819564157962689380563253110749950674677460087621750410486464709247915014137413870970302313666910402590005273505790737757552678300763411496016053574112441103400186020711219624069270269711932718742588091415985237928016209030711662084143057000460366445921906491498189822360702813183220928892196706555291978766330944645275142638189610088226238746684438441680523847028563878734751731067067228999774240720736957792900950458137189807302842573146083289858535446988648760572677155835849639072341301386785765229895087475895866702174914482975016621206059149911470980774476543335658700679259287265297349634753648167949286628578784154606662871383995410312208425555816248637239623484133860231289369109031506308453227980794297881822927853761363149816895251290784449699524321729059249778577246637439881912517257604666117583151296181776908857339199947065064877776080790481445190912741703624755648961663803258978962885178581205390588025724678344727572019824026513408906159754581193232599090538732097483003972392385579872455363768882193423475727763452527024052745823608461806779110592927008708453599609412429160188014862779103010455537581544889173509849064075879282616091429443006211061565782832014888701482881582653552454001378388435929853244370696317824969861254233018016238095376457396056041501085411697768536022248584620479606856065934998982532123851186232027650359520629797971936759431355986190286934524113700796757230282894957557817334066449838427650914719014414701797889485351357738737808673359833742040210947557637524783955374890045339095764155511753836770215550355319315181864330125293296807729676835910089482216439637495580935038221871745700333350593251740133889853289836473783179970962408833222499185027908801898836910100615984697924389282527694173418956784574912589584656948667623739766579248462216667813854458629418577625105574072588764469178003764808019239179358045551087781408164794034248942466426906804113035022986801835256654669712588604593656344791096643550642483817671041642512302610092237119295838725975677984385259581481034292323181965583740519745678456036098648896488107249040928533375360909394823793080577750835034869225552436646640318470961121903823030119553430012828216039454860242829256050143496137364200980852683046161137274031170961522287108294903992182695621868438762466903910127574847838088087264620183363499018290647812093416234553989934674090909043378685028047683222549126009536440040957311110106315409116436015387468500420066138290759774294211288692746104878603187898285403851835528974763428478925941425527304930764451906971026594574346083762920749336754116356790871049605309622000351296542437050523426349263382508949349815199564236597624139867970941003497719206540570867700790439376925885586064894010604768490215845535681005808131857000112936354771177444488525913118201863848857679468884828665856334337160863352289499036352619392930963108064306648149783981219940476434434816714510779227917544336968810756950666618220061949865784739090218634249113703679574726148161780175225060881530818596424184017992344005483844616034044492941882969361582459921458480469762106250325517820145592182949112303474927501073262868190098436443356665463272657993441190634000663510767710370802020377810182760843547528710132473120395366130077692769471609646399683716048021520260860943895072553621087245168413664336034113256858405248882723981523153911721520817915295843135264879538180356516966298672138223597135341696731293006687771423798012702785765454285338144371114104637118755083308918438860446448408277223501970058501705198582005908335891064653010370648769079860495697081673890524306830551377755484927908673677775344594938608293148779569263860979929892269396753960545926498959196748350024057958415440405492884131451928146563887176531951404978963785959494446379802792032276496081652015290182959827139286795373365809705502855888367574904466442194897161809095197854917613994886874054411901602291421609365932466294190782976433688391274812621487147352808404961554087297804572674406530198544505359825502721742759016184247860001032089038830983714502148548028258218656558703034672212674571188577964899593975896197754262319716757259788180741121053495889221916153463731664720507994693382734974158425259273269562623605533254832852097004081147405400720448313412667579712866349705634572943076306449175023096952711560296048616306539156720736966468639105443103821041175575874233793907245689468509972390409366246685209749779448396868537123574727036043752616918564591697231617690120076340592908010734616832135079835732136321141818696860682175295743023293994585102338458179984871051431374141054456529730711772887800803881982211347828466234175356720018681621755905221215069556478164135665695054832800590620642381293914766092168924949789300705956281246142155275009825380951768212235270107352750829910618932059768551192182377980642755892220403118579838708849835816790408721872100946199061703587094341345905098952976826542102869323882726311335043612568789154773998176048975156975520618020776526060196110163871609163198098453523762781451805218481260276031719560613462777019380006926420287487158218567593374175523854704023457631039298228728556042340379856957312711482797228996845541053118625004412909595116306803454230246428076023403297631804224310109075729694776937791353633125689960864674406869187048284546666557381005368887969498078235035830830618136067410668804987880971359936460916478663454136423845456261821246565431871094699130370667320297823163255854885571217274636428308919920461701420496623229501524282055275863683650952957396306591845810319469891290524078958145528541317184514884125974396372328528323648664694103126177112649900015123951007416944956819801217366964322083677726552585384344631404559406598828240735076807067554091335875621046836301216504064690706889345598435576394944652571926183385077235048518874794833354458550125349710396273436885586425859764972977127677728869583545355756427958805985551823207024004364851714224288580681859723564354285661379906377133593810572243191464828680841318152527419842481222990944115115975924018020118361646138381102013706224734268788409818229878363741698159990000455914471065172517231460082771449187867694312318063084698238833865249234200174403706908783877579888878206234237563689660504432260539855916563950089325356022407622543265653730975781434442732017667857897886367663162249095429624870877126194528608875706700149160734320766016248465547131936453073075647036796986175671856009349142292425324368930125468454630045084923882740627494952018944921907435493929908049968899334923479427298762346150996702531809507621531402134785358492835893530443128143734246323995467484076204494787115243592385828177708968696078749081896356857016404840361832575069696680724786348657903826078698910680791859347958096341283607430223601697559659925020414730285849118468398359772444866845201929568324711483246736515739846552293581033685173710236081157654146444809092797283279303645205117945029551730497427615898525710100878779635346225081037819299826654451275527989651170800241886967651304378280089187910267633389206173539501798540855976809288363100663478518600653815810668809873819030955303594824957789676732640956523547150892965836351441194469680802283648084855316217582039343172186012392481057829289480373029605286915320304147594357700939544213807601788186175534359706042298155002372695996545009132100240109524480153714587664656717277817710391372309715879033115162987038048362741037706361619984328670954672955534274638787750670174973513556200648594175996051306646270043847919358478422850548366605652526722884361773587975134113309601618829128926328197366347415573368151200425903840870732408437720148040666455480666253777956446367691137335235169772958817472513113949698446573077288139767730159178091177468614405876314665895913278189893428542962091709465747212240945238014256830273537814081188922491689036069827666437870013457628101234375341119656589317795546944779054787514123431902932499980436821932253544022968672881514884889081296266083572049039785631533220302064124874105592444939136143948181789560460595433535432639504024010013475638352769430288190228953486781466978189137359416797137343712542053648324784590301389659645211126610136232416678499516101944951480940035755656622050646430321904949912196132471350863113141135582480025734209993724867612497765658832129458281450495200703424440898063933181806312574378711938198919913104087015645403790374695292215906142621964775017278844672192606590610290873825946358738353084039010196657586099755226957768573662641185226408552069848286711487667274936826127130769796902175006931206681069928569321119462903667992407407230972385999879614324329897001583703482942327467599374577912288940626142917494803443915121566616825047384799091040710041024984868198364095066821466092199092464647002437282328465575669177138609915369202456966350858470036312445272373512324156103024185427424786361965431495741550360513651657873786089969115444173127173828211281041645035402106206276553657531643733464480249982653475727015331570984225458585366478447842460541713325777484644110522823435664815087773931604267268796727409201882059195234568742091458062973260141715921117596264884386712069901115719020790694678683881924713079467660131651267193759231383043737347161401693917084973470974571340853747610745828448825838334065355968311753623866510687055725656894359211037215356555932518531424094439868459316887350344648114221111920642311454642343428992839488401108565721844238854101712829009939228943584238940379986128145670264569034192234597001051712150126398872127149834358325487505611209314029419427545642527195921336431168089693121294823070187583822269625267732861874768773787086546249540524996501627883404176121962827069043299277011952151054003138433891144508839680003835086072839177946832856510856806127105407813105132010703251847583700890261371018930845893256403547790891897696048934954782012343199508331029996609109471178830956966824148732212610397070053028663423231858741833511806401410197570622656083124719230516131727145673224934583550798785391935398348404627134812634848078300048627962590808970223543936974851162104973580260479334814719079811406803794778147794685844015656436785728875732567398417601557296592576798821144930682436752648137663192637155835889221232794851054438382844136609501125109271614359629856945230184541826765153488584867425087846336832264058886376209878151523089852647284172178660434566884232506789355041596304778094374233224717452816267339209942472247888989247072151886408656916703729300495628455406902571410326037577211236157893083938194098099504617037852939191232686791231157296401446206714878988297757458500569033851986228850862643131329303380672073442742240801855169447547800061470663616514609969086315680453185744951091695707175537397369152453432556233677910242664729935088554336579387599846670893570755277806075317760125524580318328815204788010330769815702214766133272438621893217567960247817951739433031093774813217869466337696022360089908992492407269115019391321516969317441035908410009694692834617305805682799886294901321357896121171614199624448676611736374128777563438170232329344802172650422806698995497251576349517078158493909055709853206121801113101491640551243996048377575011226869501661481549987665244876855735059162049434577921107506641833102136775680324111746369629208975400605994437024361034809920160057380969734074829012190778254872543006472787503169954908327374742023961385644759267028924874397177748097830203267825654093161942121706378226884662396968883396671591602159458000841977206869728535520965857636493261637849253035489963127514430382908594376891604863181979292807487876477688614423284102140889207629146295558568493602669545929449392054773314410697907565972462765357641253170349595925099254438263415857729278076512273346452279182297293904015479775811773705819818126693023490880537067669000802045586518475426449824337441353418988791038048805230797948313085172192718065666616223016108331001802011402188674950826962325011541098545384066329360906284780909097969819647535646840718541320378409742662158077329135685810613606745056642545309742760030408855165320873096122309133846132616259712215940903522401951176110325886651376292323756493402361353033521378031735196377967300009195513283540721337799839904338974057963613110390629860465175003912826587640070239689693742708962659301231878379178580297383815772718979178776157623044880008356639441069167565628441437873274449355564839305716657667862212726497673869627770560629692556618177456778423888745965133951158919535842782924332326883639228009467662351573888735039090885247320268587696967431756384120054150013818118796845529097838989114368526055173005940146698402555263963113557722404903323899385318793678033611186102340934147778410098853389096408801831307400847471584483180857726397254239876134740651793530650959466483851968154391305258112708970813196401161003613544739591645925728024633068516183734786393646151960179045429460789510296878983794902327729912354330320171314904393087460992129811370806167413765745482832498295719608762730347940485224062405697754196818086504156594514124699794412604978021201416128669010555969222325504538082936227032093146792418295322560546641486867905131365517107282826992243957753614113445773461881984983867830785207726442903935954686765971144703931611556588056065301357356604670774050536501455811557121823835849620431751038281947837046687150505959026633709696067404930196070282848033927121959900509219645799796352930571850326212657890155552792277522389840172857686722235458635894570226794367828341570199614904936388525012914944362289052810830950843834591566051593631636381020527270428300114807939139745907902082439773104053405111680052071173678737897533382463751740506269170696117787493961372612501829776480411349159383750818093780967664829497352846636555500802366371337551973293812358232415306435671918229587253692223763289735112479468839677613909544126479052992735701416293029915718184926266865026876334267493033570914554330148466231895469036565545813919091147547941418223991108388262413298835558687788168706432347713207499916584760688157723955385784757077873622859194599782349241613135022934437425936547824238172560558965866213763544927649731762914481339965565011925696369657058850964356461713240649530112992761843213062138111402546501588051647902944587938244474557014577064645874973112851641744764427842423912403866142595459511515550119131535965215629778591120042412225593697282725521968510685152767142259406208552985146633714127137462762417245676991605901880606172382132361178216198114712621298167696695455068864514512879532846653527948843145768390461734938548938405206471345058422470942165947237215898645904117952157304928143499025373825941260241921260142907670846520408488691202347452458822156773781451149877380067413606770912191243104427186581874901790220314330929619633460654212474494000178437892621093100582212118011374802810292863420390253985588916725572997420477894889187525968579568222932867481327805740485946749770588342447009776267050307289480854926979021249120464786406021699042782389780185474340983089358905141790574953094081457429024823775727810664466376181953011140783194191161812826115335346162532633235378590059172697259426592012150254000703700427530508276409978965126391525933434279668890147085646262191600442151411497299462421621427059493699072804452789707715171460339255961786232312163616112767951957416080104402104928889322679435156855849555819502752234626883398007408701888307745176328525940599169655906327432436420318253230463403866932713069312077760017332161670300154771885847126960354563123953007948834408721406073744396449021455576581749107534093732547179445186619282212144070344432916047877708950409553032068724205820025416352780292163347557285705179604557771186340661264004548848725386821003635893807583812309508456690814031422332487783864479161889589659379373980511895651541011360249127048422425652372429526304905450453561529955031764500003961806855468633126840626388407405847465299167242691173421228255587133663210594881299016693661472487714700591468153309476077436043832640065156833878275075712137674516427401407217921536084381834367280587641070284405668681443241980224816103200116087166815934894782390089269495238174802126405899204899156084118229647283696573419434554364668929344507828544450611851666496513561626053242097429209432147366295543409513071236569539207392714972267392534857545352682587359427828216437517687794374972493536919320964724243415848652642493375947787591653312475879050140750346073195160925923227861342951529372973243152628926786821196865508479248230597977095319520807713956418982096031722272649321615065478969398196248914841316157657214785894570115064617927908007645388749035412051104503029883127303823500441943855653457322572156556215339260391437053692284730638436346505894554956100597732520352487340339440559966107417690623559811023068794477080411589778742671159638725345371440130468265973662360876907802123836268422686319015143775585273149738470041647269866691926573485538167741812609193269422615539008538630252385094405030858505862259842415384102530166153034920428435027499366486547113968351708714408532821869882812649010792291404877079105893300710125945879096943982273447784629635942316145874410994009194505911232369528070969306007785228730302091150714286535625557229151898636405682387858734371825099014668746474809260587863793385381835372405239964312108154691993069185566485700704615191719317815872304590653787689590658410276831064461087242863662358918232342615653364892994627281393517620966347344737227656360661167059523885102258881595576570387880118341239262657555747037844150406684333228112513855699195716515562323579913020031749528716302208504787704903485469030389723878263050320754427488079334956460090373468353366958046536243531155925752470518101308943046428340973449104701246240653118310017404616678764724015103545047908986215096216311129980038086903567552129212209370991374553016189863921239254369938236776072221899091983504216918381322446360284612936838100909810301443769708709134003467733892158141650287717036002554566105573958641190292711401135828325182644703878789272885199615700361367032212031743030710549601718545668065300356936976546290158399585686032975740384745116583566726665789798485405230708627253572686261732987334045263356284643995342565298283255992999200198452721257024821963022403647237163162787012279635109764791141429213485184878609709008472606792855878528525243105107419518790114790219149796128055986033202271087861223650249132783661517823947541029507480592075085231615176078035929293268946941871719344501931106693277344645972183900314729479044815841004432701163884825140326985302697188140386441390872183808009471577291250055741665953904885506581372469642261910843640631619651644511520531535220867613016567714194241057137536178331757323093388204602517943826285794986014021060486886571881762864066899972989199974332827831839855239130528197794095833379782904632864953507185125187056970858159069660753065428423088874464741942046091096813318453936929666181925326435687748960654357868778469252624212713285349237500118662838654245889728417718588008976961686343213513742300602297820648711495913508720421341951597782829266971900747547981620747499824113872018922237266008969774489581718513985243950090298486032693521496070059542858116024467650218189334738421465124469015735443300103904189812857735273827777605367922157935329314250395591491639465937989022333009991837982716041712690913169979007755466510565063717266684539127280061675257324645434778273311563899747733155721784595875105210438819897340823621563655760443707824737494488699360707354783189600403319442562504668836030426882960085775555882774878982202757359372380097101721710373891623454766430446297198046062179755335447660324168906829342509205601892407601733912635647728394259273909742948603095527064260345551013465937415200793492076163424481743733372368779093546544073396494201809229003842092526028669678678333671581369555281005595235382053830361780977963685272687935681523626833850911263403466060955307909810913744047655017000744745879141994616521571063132278100256540450824679052275769472084632790135812309151206069351543801552267764127897807202340023180791161070069749608133457325020006067302153239106671066461451411966630855690977496480826086055965962381839686868345452816762445527695382272363795449965080387444435168187084453107780150901265312392622905806450917654982159783972997477185108056299717571596547368993844844491744701283178728542867262869404686646847238274444543549873117462217147767437221674674032497857088692100171873091006339888785532362026964192003457404922484589992028284187314146225857665562781348385080089203824341055770456527330254394111480061351744530334178769077256940064612925838055130303364276746518637063557328074600611193875611833333394606109566539192675745355097642669631083786396112561023356797142820056398578397311125666670324348421393038660658567355608626000629624971116608373426169967684204682805978456377041354432766006656852263192576724187984533702312057114336920568418585291155041982765181734808678138013524409492313955592863978712676077784268506815146592282014144666717544652589116345269166754638976735195038919149540084318159450836949394326021196125070238942329008401266182773663384563439282005566885130852389061966088465908148638773437635363584853844055816455711590169273451658826050236775141337386740101573375649457964532998793797226956095788142699497816679774244853366804530044227557106985885213135527194696164198318234644230153408607040390419982003526204793265872886490347190368398576123895621682217087365650425729850691637457258568040698867801912515810718922302254930845076846765273674207714685869855319686560124775450126305211303416487074997822324381336947562434282528179393963209236305974745989448591376748800337274804662586611151801757490300441658747092096704660824552257708795099912308367120652488173944678776107462287901753300642873310103741429119730012114117596896647342190288854729405871068058348850917707742145210539292672178563973109924098856576067784935681773893934556938508629256859713260155439312786848379226965695639805760800389694855884012722569094317999610132967703809443389721737224332528613717589303654446614508433979956880228557347409930281274645942351954257526062671990679188795120921075198298896629281272175136168421081244613543250842498644421257656520258898676160261151774086139856260265460263830352895960793053739481384020267924737213641537290007991840539684574563124237133405178546248725662252909082297675587230027313717867279165189652858725876265215516316663278830460221927090888813667490139412834348843251666461807783791349493342144661309224473590884942937524945953725670794322688684463686367924718179177906635044833224831638105732066200394843866845949762737339313473821416426376230032335786737347283567259541507428627642385469828192356630074541741817422501765567674600880551847192334333007303506547453424868748843404442684967876831887293840762520761318655996113117526961612137772497404663637550484947699924333406524213479224142937142574795103621405973456870973854422894543685645292851218966592086048438238598195136709966492371825692907256919122731830451424689219057752457736384673893219904009675409057217284178203244021072724578592966806602095709180741871821827617574908354127337270084910704709763816354505985066697087328763796235696213387656815786931617146294827352758244152418593794515533198310906604773146952834310264917311421963454818393612332808725985919358001671617326979684468602184285481000808870586341052554167641273181489438539925997568281790657327815521614027948368518090120817811505645868080191689234555012061385961491835285001345601242371100264873696558335286045704875028839283068348414432426657690681322965406631995719237595058775136367063391151733369397671466941827506728710794021318993068775530368861567743294937857279229072835015555491706907913980992189668753879626243807613862363239402495947165163632005407924553288278488034153489158370859616734791242027769473522745881588801797209885190799455693036104262778673041778483129200023073921567371379541986006918807365558670969419143102005027374663708972172469082354370561429296746562292622105060730149430955073988846651212623237296128345000122385202652559135537881262186772701536765318485548796629165023308570459178346995070682855148550563123075181319773889866195118496446528084835709316129213914812674952873034317407069272036138494580866375298774841119709054866859869373691227788733539029562498217182931926929156816205636717993577073132309793710214704608940912656224634785594685743850061547064166324300850708330313795359767447626955459202655553216073162334250214237087782368787782005525072069107390779560765407808881165306750484205110899574491600231895013897085913753679144232264531578636952379779045781973787606719998017936194828005279251012292737368428525789461219154340252935923968131945752718892920811293980318422229240809353613191884211864601286874631844391108756573861174022989067974308119655781569813876806030430196365417606924989917909797198307544301076925942336333437183188346069866578352317782125376173903955276104544462068679038847526983898418866679620027148185888239196446787770482941344305332446802299431859691719387296913366029363782263674600072064749281306513216888278989736914869229417148628991664202790349315408700557555111189785057705725163346833592464970959889835691451427985240436089536059608173975331574334870170170289883383778775060702691770912282450969041052801946802766120754990297919296052261842942165397644248963963141515421900959017186656508839221630701627892328088156729949221620494187439246276702580724286241338677563939050182508796613063700352278564462766872890730892642348311808959086067206227815934259751854007874915092269896810872756363924820220285428914118572106948338066073738218757554000331300841628665426441882131398607606924504409914462614194538839969046093736458033913381633452288138343827560420985716798961711253367864577447828486541039069384115134672540069140206992335132937422605450386746163971391738788703834459979610253537169391991280740584039950868281440812978072729600744666865830245472016506362598358392400888533440949798307615895024669134134082396926462454352456701453332603660319513511336133009197652587621665126123875465767664156511194918252352383004715005528645414772039652348540323337350672221398183902414858757153928793119752534274309115339293992197683329402180635109930305263201135274049098708965324949469712798620131771075467193023083606495391635936350501820246575361927772196240752425540401292375049505184031941497044886006720249766667540152911798509496945781118094697058616026152974427949396583330298950526674906308463411115492344688834839274765519792941353472261989952410218582600941339785327162726608388049664890094959190906018164197876824394857799315902683757183794585948974784602747458201743352182415622059119479323164083211313868255061248266449167848325621444439597794289127326039746447798784506033340572310344845608384601007364198016298351517117393000209520584044014850132133449064823656686830543366557030742057684854396346387499271774062260622381355025555944081742982903204683053739188262530972456338719375782023535985432948445658554398016054109359980483631207928256388577818515684208581934872221368296272319524286444992693557134948588810166649485942941409260391195312998298424019197729468411566007852592506000615226357079245143654488542677916257075797815034506964513146806448358250035889393174897010521248669415217366908599168084045985142843079265405132171896766244684608245454742460324628978322048346426301087503930861118494509827579333474542345491818239380656354222202903231838767188972492657831303599882293304932918180607884744751067838569727913069187206669498754176079440774612442425490233023027745167445798182047235403789353160637719223949390830177840577256821383233906920664300160102504080585762772823238937924614001336837842548648534138039800515756340074451372431755787385082221582687820208397575073438370877651431885801647163989897227433983834624914185377364937864666675354051840582507355035270725647583610854146689744877311922099267890985397645455817383163555201154765714726587950362572202239776889274799061188804155150706130556623950008039663942243067359617217898248899744686427395093141275784936054178247226265974555070260870189231283512213345833912552865912776734309559147551256756780098705319377945575172529747482610769667044355472082038673548503483786892171425094788569961828676063111174915152127141537659560387999637138037967022330188771268933293812616884072414847527629430972677882911035361436553244661040631075083136221205143668176459505786554023103698517301756536470096163731955707679717412102846455087982679473803037878969471826400888838444883187100752789001512686505378214946990019604940715527738931015575835923096370487992138020728621909068938669705554712317343755068483467735882810895105079616101797042846310759641555587556184011118392001764542162501856561230548466488465038026561986640799966427116939745951957838965687026534475154008732318320562413144702932465896770023161458050881321481377618229364553543062886453829288516621129816498828318186279902169337115786313729766955444325382872726439650023296158101317757931307303709604847821583920634809622188843944575798562338819636642108398539675470318759885984692246812806068723047668761270246671581642266939145224570104159362213292742341230914107272342121757729722287021568712801890766238194038867015501509978213492790722492991770774616630462187063375471184097724322713412089841191827657797650554053078706566428679599270663726724878747334774756607408261261528890236712515304360618382990979747836543350213737978225896454292765454923393858545656957628466739384071010248117326004668706592386952313390586963146238595247505635850870652751539668906583822482863920022014005269988266410089575333522805653246023226126295782343178182526797963768188827015969449113702632114892787899246027484481900555778999872094928920311120057678507430141660909350060704992200521401190474307637578205538810209442860089088382888351530353521620001425793462996177778680759655850430346725381395021907584824231110643453738557580842025613025024401882048388653040188604861912667686997561481676547796729649885766339297131232887149055418159574932637079126383786972997855250924452068346293623416805896075430606641501362222469538943603369548042412016559367257566877556615424652693400174320990654240125070134462295860436824049403095348202178057505429642369385269080176433473125006679453095111679039795957055736752306974607442594485638617233926051708318459830635048682406486385323121883148461474599304712556252269020888241754980750910156659451565277055107685680682451159817668915899346177298103707843752743935368128698443067703262151406844267026453694992114564337342451317430040776569277177557129639686208903234661831430905372619789906814064035881227104485219788339325322338402148094747105576985087027129175516006827734969240418124842307014998945575379159612821544298178069896738842814437956049742432346810882165129270025045899156453854547033374975036147781121347823382476179835162137745896541895134620745295480626975933302121500777943731100627148168163530206325578052117349410049311669432266037365647507786525311346744192361804684464285585240256483307429610468261949221775768323697353361133062396237286441345501254208546512213024095294320783956826548986601484202576799411094941614274217058547672283999373737808337226365069805837631521151538226376794938570171365131752579048478741553379903219493916814376526341350579856384181784941096496584798654752671958311661496204890515772375893171997216747190965658169324639116422169600792822997536252269178321280266959943105634555667663477211214475576931201493706846154153058049790802269188232341996691688501138785758845557321788286497152746822082890773782152391580789474189423470031256091223518732712944564306739994521644535740513778086713595491713574274118264841565451786361918062845669312445094098720939983864782964478672505816069643150274251659212706135419847115069174639092544852714714210650997000388602405243051938609129153408362094360802070135827096910317420602058057599469717857278919028545330858900129353915830511980010373627087390550112130470241137391296889397781460995249259741324974682931416651996518410042848943499368276063306174405862318371342440871720630702261281573234550141049186836058283964402910070730650022782969922340878024887897627621623479563333708431267690161630813099168908835717544062929168597012416406808901970129381215647047839711945126813526648738532671202514347593245346430636516842075529370509704908243163911636342913956553651692351209858652326126366625236702011077501300751333374606241386593320432365487219962740123497625169317614878480558395968307525080863466812385383171575144221368284225195574139555419463076346807487483324793173576451388849533420488567951765993492758372660115465616113874814779932561308706594492453681223145754709280168206782766485314560724122542226883588738035876053357581969745917881921091269478047117200765128949649681924307100721821175001914972669470390966529842208082151746736000457605596576834277099737088985209501064527445703048819316196073144509793094337554612847682178636246112688819809894744277250931005474040843024254688729167454994593122602135899791231818913111262967509359015012827512025836040994503734348091424344228896211206375495817326039732764800525378392467218616017061148598911319176962531568791716062184901239027970578960680274028334165797885172078396628206810363172411889718122409879477543382500012252250377556218094436541277626237037477431863086891523372083645429021696657708865391029640668387657939473155055083969225929699785265428593658761933638867639293353440771089659380809018576052340957349225231071590031816385234745660812359812509455112102874741231497650434771616339200571170254918565393912579931305884971822336952216316028797932541621841387009420731908432367975683421016335224374336016678218588943668779905682793952775644314550047526739907853621478550803959580604034958996837958412633884525885731252330969532876801326120526716217645009295690746834564122607219270882834872222768060409723991665704857267152886529016335120287292545807294742965047665350394552871254234028745485884417962487514870542294747102393080933830777389058773354929191126958516299469599210533606694707176601863365894320269260413914788837623658741010733619205382723724311988115309434049450590048726685584450643588940426283712835411246804439859702008809955650221613648152495628619998892174865365262047246525694663848619131830340516297213095136715908623719064678090278410764887356520730934274162680087705314932439317106925405778413112965162738682410205515629824983560803114147864615765678193101037773522086443455503110759105988241352531816417533768115178064502705472752535587511995966703382113115206356981497366971047483355721204601996927842530119130747341447160172180295410714261207450167856039142910862703418702623362737314285431262208581146721401426078614877385680130691301195846411509794468207676339898979150000964732692927417919898161525846512394470039230164942998360094734619391619011256294481946300109366710829927110622813620542432780055518247492378874010370228801004095426959479961686512886749392031265247022270348767154346997974768249143803794527190307498437079221640390698226589019138262165804107790045504102941464888048514348824955297362702538546871124084226880093419493768615994206639066670346139428379254985118978585789879995910462527946746044716660693622655480088858122261308779310467531954911459908289071530546535801183313046752935837625089007131991719684705024902886768584322786639406812474798005357898249667169025502988520701276330823975002613784954899064477736396404009631884691338596152443716461841558723421241045499583034607053280343343379133268143956506048532431883620568333997181426557305460615899706256815718345206549889578448359540325102084403897564812072142026116440312821059658122745543117422478450741258805866696720533017400322930833924546483274627978740000203004698530533002027121694225646849251178851378236009146678687288109769969960454264627551405501260247429375867452649466456555666378832473109936713880600032358604259604232198126419376980505957865830383200047576640787358132212403460232226005190495268516234769505334606867001618067169782621527333673900093177840414409185432854754586195548932386375061560174710852474817888067963204489992437836832351713691792640483945922469896319409706386547560611894613234611476359148227733519469715136027310932566223589666764035244137102637999717344162846486049794844828926609626024977503154130238401423154650536274567665142793545675174886587254527794854155989548153424074843229495259689291023196000034217616836586097297727570550245319267229362743363814578346168186371701734084469282783340910687858669414531620917377259938812598812166340550453688680008948680998782792112570341933886463150846502313485259515117014710459517113415320000462636415470162640082460178423258469755388892499569610009301708722152589560593244231520320165067336701302176842930455791438365154599460990247115234490513049499742904482983187613160085963730256283359304744188050389632618849613320985527221698574492313000822107079784304819701496084686727825142282346944285892072683944814123627212380319221004170222667364400536414315201730085781139428648133915080922036722205459926928624580001704357618925935227318658308992633757530315361128168784267095946941112361406173718604052795545092127443672780407783115290906244797428240103490006192007162533663113879707053164223997669075145632620601936924890601028170074075339570284792057818936795406739642729260610190398704363441500856637720735978931700694994284821564312490876963778919731172518844455720651590449400570162062614289620870822693008912192465893046692837091944242081210636104348756557802270533433939016277706276131866758206570726458893673019667784675068783205823941739288882512072416918079187760988137100811101263971263515456232676597952588945009508594197634436670708540627984243660898157659143712645959387201750228073746515806450748979422060142447177972230345436841783291603880115161599438739761835356350243204157746932668295461093121454331519063065811766686064170987636109506106972289639761322377227011847551495232261836862393393789127130224409143536661057008672768675084025599959992137306101418833183949661849360822093679344932305516939652387777335101521533734783604500552438616100013900125854962803973834337679154982447544363623749296329638295038768428720467647629889535448210637200884778119914474019998720293792799492663707015229531277983489012879525092174920085178875254718581282317540171380129176200839166547252589852345060389195277982096951562622598579438921431129099875641848681887965262554157013105263109087655890945829357494836522703896976301625109255571183931608623949480468337184717038465521428512851017885458202271777130076049887196854177676876847074710903428527426193984875862781627808304295800613906443196484031896958103967138516656380030497989951484769850006107238864049624015432959710736618503357675446392180326622802214302189050087788071146256738469879334718374044665379852506485207922297075974190880246880652153935994327588087640358675252224417187219704310720894123150445464239505329143538282708018231501849575959142918333416956367716326262237265146646761053377223149223331607615685502426248181841190546568135996423108660428319819687446922638121659689925130449601429399379641890039305874610138332983495177131024276408129893228753604224689058952850549661501062142045501916936517690523521323852817907544815736892279628029813006557981117475968415443601745127636191790656807611670668289839565268575065662318580844787171067729199038319148260569050251392877165286912134969091150334112866072883578507688027418608196609609313100948242549342023863098823710782081828725893968259000842198098293819879454322706545744096829176401684938129394513085336550777058372753688810244635555978582574677533099967471589719368282298476160920747098044706190578346291015765975862146508307385475593831460608748930567538251406635159632391451913777873553906832767974486030514656746550958526693114498985606630957823878204055163392002390024389553181010898732049855755597708351294832847780195721690798967553624362822414854356241526478395073115654800896790917737100360700641499787665552733856144526924306976641885108142860805129048355847983506695577239550013850788940772096501400826185078606781354967448578883060335265190134241846374931730072777804945132869917346679777214738875055535036279528556676107182388848089596184329543441961104601965994087135163745739376834370324884459116088803930190035345439618729783525508423251968920415471417971762349475786325023388139067454234206378076300849284113959235086873881603798241623750870810838853575481671992694354283250318244571924948967389726004846091826510081926060245685463105115359222015133872173301420397398012128635699886782960631825258898293888385000062318948112644661687860321308309735420095440658438218225735512069697833131319581503572434946335710899699901845065048687105861857229749254986582214824905812038473785428711785297716852893345845010279365164939006140818623601573347209917486378431421636387879828177255353093354198693887636815809894319643820605834122601134441003791417353172805208214463666065813013703317837643433445110872265313364494111315706237058278684875489017510281397268236267267539869925199690593451128607412186819064160731915203956686220011264349694449567331570090284130310954055576706380664984171607476722034640063839961923322079685936888200226148230555852033543146965812661183137754275633418573571023775390346845922182789198881053735311852229632003399782643378449270437883210843462425906832075265216947451260791333779762545074994671566582027245654160741451395221416408550465312233325118928670004687670146774821012626950954538537660212186007637881235656420476498495309548245138151578350601246184721458081871020555149727424289215820945302904803563405861587730892302250414290498204164743301895185543287478828571164660079200371985071024109051211101239117795025376910289787754761841562113313026283285981262932513734343720485371261867165187843865620492225820305330473661574662021384229679838341917062942858752904549075090483856538433731021491634581001924157736417348643651029483648262253541364934237894424695741014624628142659308061410493899465471027920346595330056341199220345859556251889784167563367532370715523719032417099734302647606519409562391733579246184229272289276779815734903187909813693123880738509235333878673261295830620885017180431601733937014300692139659908577772593854419924023034825541682846527722748886777012559151665592583075671934840016005457761326588483503320800826326389870933582558659818234777397479962293366857872342333310083509499619108017368245162123542607123238403864898488222998642224772939933526793035119878898533830538056134888683808313058074959301153309616274309506008246520782951898132832928249356318737130995716906489811467357148139452511752178569803506346038753717902004252897139516563575941834036075324189137070083110706746593135424553725961170392123335539704086534085104380109390885789851828560403594556075390449676818319873426100030127546577470167303386991694754165265564611666488602360507105176183846417392790185225942106373650030571104380086451266412467529284498174834836140401996683739463550328257181499522380091594223608177537583014064713154655028272965051198500649904041407634873815687649345689309380436714813944409115382214614258342259696138430559861536800226698019612487172925331963374557059287883666878113755229311025852327105376060703501258419356993979305331511209943492307056033899974588054423796896034413505486238944562735229635189474291699807757672076192064595687828246877571853307505439908634290453838478192304456598581788651127878898135623627930864482126122050413766498501796666839932410034296201687610241240083584001938824828965644183101149277374987149070278931765753354128483860249843201311462378121641285953002867234661213891861557386482451274561002574720737439222079040847701056250113698465225445637901534212157774582366579226674617816173468407255094350802684510614065189725224160599555513790995161670896805345150628016310258284783700270519640003921786326958321228400064502692508820224698097385094737697770987477760519750747754849097296623604382767567757433413545702938232613105648110818872563278611479596098732591979494852607296382234795550283438678971370442249530321208236844451609151890035453780345984677836509343681347099299964031643476386255659691802783245205875638672109014197467880520417282693239117411866333029997197588210788605253379810640338373431072996002974079463429059822631357606383927208338789745096080321555756206963939384460175767944995455607167433626695753160824645332229795027208954761977953374326989284081047147820515354236470611896172630212614186967241475913938544025959026316009639137287376464494640728731600624265716352664510606497025329598619474283786010668838620447098511710241540496980935939356122099060952696876360648447050523609451051259118546719143481410286069210163250358718063743476135978842085260681981852878120563545872599606981031464389561280214794517712333291173698348326189880467838316090338717346066734188213803563864311886454720607743613540934633950716908783602633034280133022804577895192031809293957636203818023082087052209320125711863282988004134167387382028866330977387800532361099649253245540332733369170459474057558024845368234825656203343083088799841253032170552938107589581998097462339811277350242901102893062034369964587231721354523043359841954560450810500897673725121788936078923327791339803430186015035498035485968310824673012556668354432387094450706538492352774458551313627920431314341072758734954727645192604549519512425114603693402418551514537716915582210188416187309718547663768929206466921205025213078305089888619052645245139240429621995448509307295106575754162767808120070735491879477170079432274797399874535093751298179765708457764867604743818376038792857328096198096049343304229367349102989996937257343196159652205048873284643537130339968614636251985487010391007207830424182974076614218465967415380333819467509251046303116628692300866576349194957632894312451372810748837404292817609811792521894272275206730252632002411484383081957927287055354788943924398679786936149121252702112393984918482073116576946460173114014547411641019930828527244198867213447113524968390517987496387175686514960018609959983496535400790480527692145504662592191879185189412279269763871416072634313058781540995797042996240780870338959545758076355722270292541859001546538849299447106461873667098607987427897279002316792160087221141465498488180156437657714781012187635172726943746917014581391558061820298684487002901974072296818550744771311082604588550434406018028076968884414227386331789641591567081352067751796927361305828587929451139632708131551768564696391287415835715883254005515641688656668631364438836612484150116229033487309986690333619409165395316414931273624833852120694680985955260838192520705233268420426258379122174750020366193755284815674795465206682531615902855040983507014766818676231808005320346856505296875599624217747466615477414729842229117082978601529527159100745508779132464792778617531575822002258351914470109384814869309569506611889203364417896892989210332544495113732892679624907548729909950985937920234586619434969363868477770208484559168199149409005211860199754468440898627024700079884219147165669474498084816935458304771853787536606690273370572874005281087820871828663816411035088213958381653876391845123442590037658812430706649313622085026581935774510890457537777993919744694191207739307241043487725594533673273336971409613280215983225149777585620109677924611550677228918687430849925211647160941313249433482371266706818214953835233220483126482650173282452149144351336498507332651830774000593276766713681789415090031330153363479697075097161146364248970301244889161058452074292226389600190010915456572481647861174206617919649528718189129171337358940475546815209261401460851783616907555422977320920630698825122029002877047228931185102841841939301856934208624702564541360024153505806456001272109573733768375735285765119641257316991384593480546270534537574417193577567448837426176636204691211373016744310371296659132598122082689099708569514381718947579464251236966322544138372587252409659318974513529887585186417881167144586082321261969631988239867999192845177750305441145465226082640991912589664809907816658964820474056134790687340239681861929704829225548178108206937413751015967050941403387529045764860167038935075512177587432073711356993050447451380467154145919386834122021576059638002076663687690419211021980748538983843894486658909165201163243086254968062830340508727799637781962276342036727736563026272660624874527034526130244552409262686766240529605744846038076843165121411854399235968429315847675845883175530944260886559137009932407490560990356893615055766114108084002276307920381113465857489527124261219091674273522275101879432735195839533386923701152809593142862678987537641281884003650803292045496301464477765169275232445264160549116760643199593275001465519512882096923919392941111290023669464343959900913765004155340971073910321866220024305935603755889757962603001570461518147137572799747832657084917318373154315080934483740448972185250002057970030170297072298740015798425910215199367328051624079777817013204569567921411174170383762856924568988576771775050729135552961454026599925609950929686938737930045795064140703118118289908062858776506983982622548512180816833081714344468216293389722593060018733503711138973420434078506956396919106417698033239509157953774386499456678229514336976498934895342510291845892784560063701411504675086112876297654862643758551246011516854985920157102716486008359712919871818673287883698202381628145233239005686395338530834697781849034401204270623588647050588977436894710830984814149421584599390603785813329992594544568763954895329374682207046300889258694309036079681406626538636407348506402010419496301645665042322401141696147376202943776478219106580830223616259668108159796835921103706373047143358218020017005058578427380807835874441891034945875634856804350898265525767269697862670748121353973620423658897430610605467521838829274659513306282576312923276630041031984338034332276416968685588152027407729082079521623463891836884198907594915440760041982961138115073816620359992600213155458646884593935467238589360456105036899725372481275693807865048025989006329596384991172085879061545340695060921736162477254091515036786452040276715613193588412606979157938358209572942903514689482620697005674332086489586925757786956766280144672103056649732864899378211069277508925032931356329065644961703864109164053611557436643474457644978109356797128962681449470633815389057105691427246387025884728097755462012005931972338083701037305230439684840156288307679405024976040657310419424095176943814049905709027311297078607016080095511201020021480924759593604940933855398392465882814891715231691348458729468083109487234812879375598175406174736266175847079798711890944061419492048943964900271970405019257497877014818367548019450102482835635388304431611584622253671722882397674197616646835900871018553419760321915495162566955906487258356730248684764427729654919749790378484941925137439895675899935071786590083452405065782351580046790172393423752350476458786430055015673193905774946898040356904529987075117453049358902523720826453267426714515082548281358143250351491321926597383847163731196636705846526450911623739683430985463013247646642468140881137415152775358587631318719438525791900117737741575144787723456499241259759495307637612614857473468422479381726021926219142896411615693859250832541620747204584796838536255126646200041588786612874248065308249595320979024761094508191774032045748963115150717670466090619521897387989561832885681469177059728823214913643457339065158448142029758442270567781432408773810730767470198682673914468843794204063555531659630777710310257114040053631178429838792550824881704789527088318962913378310066002673469275226782258864895869703654180550657232130340488659860766660304131992964086374550787207163429991687280438037012701421583896465848744587574309299883400928055095792356936208053594179231656897707576308093474379217382319512418942840381080030779816258283288344121263451145748457226003313393415468838578896210486201965488134056300939316835505816944134636000857803940838684063858702031277273394869092785943637208170887431178183967066329207112772941789096859255342425537624055423386226976560496714889841562544900046300213307813667892168063969925605154987891942381908978924822420537084101621112479829810656192760484028795221749100106111373084627386774942380942833646036019085864394349583934364915185556126691802330354116160048019673699914913580702319190010633399718231927021005445765721480307868686037991310617446601517404697764154011159618366368792528116824941228412767839576471615171098235444903428876327205470185483574644898576522848232915585528365086434703727663044976727673407056267808187474288593208246082222538008327483504315710693511701420536137325854337831136378396300167707540974235859884387494665996590244662964708984451786907744712899872728936339115129147300318406803112498309271217117281149116714863543410313103432339678717104125094682463928031848784749351759204056688954326520673119556265742752152995770030932694958794919306524795532502780640804999541771621983401414968601025620190531096820168046199320373454833455893219878312105407954759447991966647220806365640445524679294915435951929039280305416707281276265974755941531438686050157586675054244065998907275952477488387880521798288931814554362665638551586865579481745152303979631589676748362129651042042033043434531418028552358154312443964677639061062964201692739600144401687738726508588827804259284414383365268332162554771105026088978770753629770961055488718948578626011717806489847556703131640814073002617411165259483594234593225404154801095718900005618512253617609667542927390805143231380932441968692214981424766337404876495118611635145684173396302879557474736494511788501492327216584288261037022239178418647680843170022995439879340687716528378171932626264931585824451290888366336087916610267152137647393698785430516699103495950468965676123253654811763922146997415874529837240749477896444517204425424493968392565531113199121951988033698324602268469155708041177713883043312404128912869729732604110789105619065991684762783783160838356929074707805393856004296787788481466869294220677828136998179580445863545142325706710580557537084048661504290177336448113293277739529587486332330654360161659339401692455001001897658529232065758566218923748728682159044366441530044522173352169129189295583203010278180421925250405118499203334275108774148523225188410861223923088015126022858176146125448335420149914683323607107690419333351056912072985514095577959374345723563950127079770960690850801852250193073954318472835863463457870954037255531919592195156868719205210757298086411671244307929858167669538476969253426970612562505176819664731712391771707789752798389240462888768657984689896972004478633460552457046052406155507797576266983420558442090721081861570922901390119875254094426624131976671557453192227386386702418277067489462249702455115085004844788455493671463699506434776906600509160176345352834908320577661480016118422700637852393027419205955851839838747057470153603816673040564982283443792873307414392572556122266238614509780041090941274010114473014721639767028829364128973653390283187739727682068025943776174580233902702243762710890305393125108253508912128428496390625119965465788623721970204231222485447643368045382895232777558915112012936424296891639041151058268946256846991461542098151057033367431077020966507812204765814952193903545852525687654863824431353653109314320852100317765385202308036833772206546185228687527048429924035647251182958636493009104116697721354301894102477012394970166954803568068815380548202035437277540222750725472687914840523836306813870532042698510393480506848383088852231832382435593614342793640167230695853222604779624911689591935833973937568757498108746047549065104989256791135447324990936581944600565941379382465759299763670647650850720735778868155486544320944220599716205797543234497983377336022219853948270668778232827654455552544795990111488213085058205216121194897462639475266332372590617687599556149155237711774187495891934317662429594086611374710036214254988944288259670273376643639566529617205894679355552067138638163093180599557698525428820824857451187597177042455295214821391468759928553224235174382127184887525925574217785769272344681337124337177002586764686725382552737535142695047217907594616102700907908496757554144366466582760771966024770649385449879866268832271270153632299023004821839981614621846917639183390317418974385724593788338377728502084539758628147911545604856457587037298020684868639064414011876878471964475904848881377839882209268770309651340529300473251772310276742726263371954283543802815912001607110485033196577458119052689592009344299130697166108012628641312885379094941743858021061686570379657325161926550704139508065656118361312903298231448171238565801773574418247034659723331340896878069766884169320948553775594519373735045850612319372719740296018831606637687546890631044344179807289608710797115361281843118043137240619279715428514881556844452638075974921140246450281882208848807248065286493198104938126462070662158740645445009028429094309644926897062217066101349628039166476106045638755410751057911631017253827571769614696712452705851060038512662630425981439720236953895085671442967808785162173480432504976408084269286113759413982182136810895983145842613858234625151041801941564644090312762775669519568314562803902871599256389034537587668384541609412871919882381800913805649893312465766001620018352977295927139900598503603038838657337096303624464847332283681701510354487848307742863669358465639384385027249400652315904589844754582359866074271382368804007739221027255244746090816945605249570315364643607774112272303095450764249457888066769521029557457636017767455129191231243626228354426307303763956347580507163980274188772426534021414708758275687218394964887705281409813823672611327916929960301810733292021683528972262392615215835712623122035458967039585833175597362595238166048169135779675863618691895572429207907122786067800682548585912950466668012009284551750076877539070066245999182858354390800852646728074902154780941601637767433940596835088978593019106753677265197028844826555233074409798319092552400270198524057873405301253329892927102268370794614221583361884236830615354284050024655967802736159960374546233515455314501799020622299483694962987436504472237637434940611488567489446878359220204625906661509020160878479918485519487067711771831971133365387208049963368187568531112251403312396566735794220873985716052214547664699194827083372816331587928181614816318430081571922934683323631067290742030161567893700885909645959216063455969799847513163511271065236688004354990350904159523759209772413375837093188858262884880124556531599491005579454871865346969344785241277350015681789387123165067860939919189595321516985542589933415411147668296186537820889643986074363877631500666582371799351584994128744602629510313754867213615550038090686736956525502281063514342664374468847903190886789014853384943541473911539158642886998618786997526134947123744037935247683396722504904161131084446321593807100096724369679911918594858112336184541618281602391264314389647151593618417570718075752755652408370701920285228149469364395622347222886740966504342294545324957326425070886549323451617124735926773642997636092338018681722893007061868335012839575726819490729697111863590512074162742234643856624263577225581579918086551374366902182263845962452573071536033928065244278373009208663610989111635262425751746374636228445642457266196955626698756923586071535838290160253447203279131252220343635626212896811751719459768094305449241618416289778952993275435611487353176378614414560787968740523207572675935997548082973682829697213140951226253456959895841026287999067280451769334589000906475488955920645608461322106387680644871117322824506785563638068262594431321198494893429467899947066717532857944677412558827881331633185488090816577492088138442833039593235694645296714273832241662807111397124221063148294544203644755982254257309828486837263992521462048901194085980645616108141652364295864511477863940288230631121057805805340508471552152665929772488670217144035242842848847757233101788182134653399924563743659432446768573486119457911236016715439013690993184585979042120805195540676396925875258287967055053762429554943333998501058595296392157852701184866964582307515401990360562090884332102855191550371863620349818527498408455747361679417304087260987184476161713012046309111970689855523623939044923517794781782237446808511922314826088912201149656116538968123410032210018866332550825449199064638651209874351865382178627575360070615395371126568271286342789953603520296238286637418700865668165522833153789040716741220971091768082309767568910152440807380375054636144929588694062356481712935809722806501002153016166748429778878146439380714739527981433167275761106493558676570394223559176209178638855667426147633411427526821076419737939777948632376210016169051643233965551306191749440763360802617295619685033650654996326853134166675847166518555264415882470033193799598787408341290999859282084368164814570229335872370063291781593216954733143553756796847557916668800418596996898435857036247226703272505843405271086349163482957050665229144978943867605967168736948379641295171730558116778031860899214543676330073507535282268987510739720575582377877810541343992629696491365469976002879265225246774987080582670995027894523481388879422983459166047291604231178209172633396845169112726851068817894052332245583011812487600829848794080339488646809743342784397276459269884550707181393000322967145923740376628952026957865187951218241962325699787603357512098064634811994965805075134398071007719931592836947358763940822150792493112839451684239622943359029688401947214694638304075822882554113271893693527873903530005395041161441209406769353109893960801742485857040775410074610659253943615947153175880677865214604502917247067653234090928248294113124496717128273833154741255810081619526677589174246257824794044426365946851177567013669571063908749938486794297239957848081732701092833490544029732986657816553943854421122294741992304020053922088083810226947246555319717279673455188772232717707289944218484192819966497872460404963613831521603572085694977566834823301633025242662032769840183925013214446897079840502208260807827376741491829291983922207249494676681125889988666251954830626703305995341989210597108246011509784586839886543112623576626848823980392775773222478468398179562083045479095202106511011281046509204039496486990139102782765539710021962551133923217785340852159592143314013784692335542648640567204320624622974398850251826141508951768598869264783532428597924617280534045480309982144058898386562022969648482232241669131800983436131582133129102236483143903097401320826760516430800085965286658524356265701883168662247545810749125311280387732103026474379295013137011897914971586500857258995965834484339111082472038429420904381007146211424677867763495017985792191994953654753676404755628791550004732032294977091269595978299343016400398151667580108750880364560257481024592845878327857177419804624587877100558159916777260182831406548415544007024036067999133780774123980368061957437215547006228078881900188907525529538243009660136257657423532853544038118074585116477751740793035648695921614916053428062260411460416785923137456905096385957040592316590254725785245336295245595392536577179491397249672582399199349781386906051676186465498277412976678360275566430869438012644968047078429533533554432302189646592845810268216525172691350203019371219174797681274209778427058808699522393090217328829078201013066847123223582525059441129239195015026043435623857151301186684654520663400530737494190318084911521008303460629177132293607029195444845535646275009202858637832196070334033050997360291044954665283239159648648916528127023653259610132628911528934170052427982992330065039937263366278019443409864497702389797798510856151180687641272228696354198278090664242009849077074000915206129849630455504363655291462499628653901752691327233522283042557956224684193850228929660028125281500457254813080164861913871889913873983289715731397994716853512409275036904214471698170711840628485376685185913975508350672618986845761244813368160110940091227534239769784885610322102091125913021867598851224348010251034564828820332814440859461539223173023199653519617624768553940543026194639750144316825071275237539781215775943137751247635624444555451492395618946578833439005408169657551177343933043520567885592407435754137548316867122100582139512328420697938702687029979733275350480902033540274971702714093355971967481986036074854020300699454286858005971748016583559826127796120900001583001022105773947601055313632164927135493840365386161321757787898405920343934251300621080861517806030120002120225407404946261524299590976196734603731579789682761110556811155370577505886227626302857603539428588084450200793148933654028139496951188720170966216608539808849264325380033276554600647543439134960221468864432564115827232373090895371827469129162773450294251060317886118813912396129960141388514474349984795672755103815179609656561077415653607559275949845976376566049427812552223534987233272956172505280915681724753002714211004812007492170345652845148302680119371249013323573607827034640446710533189688176741481208960271128363473315979281691247526699030224648496674168564336732790290817039461898482751594196091537311924422518016004965394788139135431248707994675678654816898768128104733765819672069635211739637896875673014644698247566105750628834411730377961088554834213343679946044617890506409782401595911249267545867785062875267213490910219101628478044147846314199468857329331100195862135092332377553319019338926431294465339089416606112325648053046506301928372975378080125271745344046593263257492893275101750980882208228937889207272409334571695844452632257854760275359453408608826221506824090012530000413357151718949039726387400519138597687198334255871711871873091333926752973493078992783809088141927839917491451007447597770174191184194763863735751960170232351271751342956661358335826277681435019504454749953852276782189802882364773636985584665638572344184396033124435554035039058605145846863895515064536514338378016612502410159113426687482263798542215452639409498636411528804229616228290635917581968929936983128337367797576317401237512798526815382591370225884193460423372428967250200344033101291299911282456823362623861165625585952623612011651038184068076429877346949114970710115189658702236309776382453417760255115781042427002866879721435791571756077362751647350356063246004628987431340267037445495884210026083546493594638361397690967928023032160041957177039231278722255509793204594636353545889602684704380285691504269432067487674533854026323590397018080081944125565422097789268266423520237395420377731059257984211550616824844284682640354197794246644799722238965727344579966884415232473717838903927901416227948870809341227196952857141663906871049265506391488934795456900728650306731684912931167957613311549001539666186335161373855369082822921872644768377863507689856332322101368690816353969430250630258081253862066360158545016403508660988453558222921171339914554791845662974150573564192805216939478334373282516265745903642643047819124829295140107764061737607355498460046862178080730401688769204984565157059449620890133169445450605398721772947617305840816720651503823344406086971782920268082806124765362544704361954227414524434432523369978214273782060286933562175536983470718155992979774575162842789602903095027148595042346945707724634077599609455918714956540568329396730364773048513233263387168447339030485133150651532074082883363775671655464599180005014629236409488638438303607879646710139589331318248787305110960470435725774414445057028771476436971438599407395470278926854504955790929118378301925135361736941904329761043958131756044239036850927513319502204860939969065292825925972819313497691348455632572017345729758553823440909342455125229921299541318081461586603422114995486396960773273870582180880468144016943482791214519687263703206555020948954382631868618943915457708158848271102929685775116461751841647185592391817913713895176628746867941182617234844599659910316986817392869893680054648972018557740654168100808047013407392161647103824970481031973458472585011070168544889348757041028018032785688056070586312256004473496856145238709326367081921667274676939807674214041990400341647764147876418294830642758571905495093050527106929260927953847219603096723062065398094347350989946758186997684881615351932932228718974217165122522368360816122075063390016259642775911848814584051399744506533431555501683054029716986584627903706376430028567943616946287686588791900489062213385711423049965471694839596757362117511213027075214799444735206119418690422498089385200110073570240150111472815730276370518825421592705572891117059078174933365655862227478540245522983388410745927001328283376171249933905960632796871363350325422364353397621855987694073481122083785496490036504792362888658960701087184243893678054180199729933981723196221529677940425711297060649545784364850050055858082784971489701076715183160716340982815540247886615116538593286776870352429851769943202339055287906754692383048101248895783259288810113474097912310242082046926631620709135942311801562139952403448353268207919657134657345423600133669098913601136349823766745906515306422999848127146451511265585502212379203173537746080975558176476922589653575173971818856128243206941259233874997046764797898179505451013867763019247461485691638485619085930975168830813463928238988918456852385528360364907167008057018761135951399180995115587893824667713129147800158183485440289471604585394220405313015665140881785031398051308388183945750645967538557043630759692274159175112994533571476722775470324884105057124540894248380535283408544790298833829729602138340151960114929938826094991152704771920020507659952376367819293068327458501988208677404539801851964190066621971953344820758735417565609523419370964394327224413194345960811374258759030231460040011548793440468430137286622441267502352992362232765585940216344560699661489475874640347358646109498325821346137400950911351581695775147446319755926753421248381145449445743634730758811646780925541907389612986318970990489207992199301281919998339094193914901481231624066353357240466842659113464336361817438080907368781302606205686370128134494626737144902324867347977807937577286652186285326623170511845795803725997812751008878959078477187640554037950604372557505215083593246336107144118003688424912286130186006653727364425038621812184353189318896896303462736594810051655519117075127160411904638484405554248952785780862501624555002571806178555423234564289679224630903877856167197656624266794959881460984239190598847708682299704346363892894723023517896090225709075686104154391635137511303061925205459140810784081288899225363613066032623692222182236117831305899079854199628248884295821787626131041501758674621908058719805847941500058744369036900938745792378757314454628372236710710212593705070480340813669807033851851555349876744599926786443337519518146409694295594884618194389241795754336631667900101751113519417451514702651389217072334458778020531769876323255821608758863838684172375100690233702446593447840330769095991809375801513692596180568091571771781945119560283197391839076391079579933588232252706597839896836262301449713638961922814709557769937925735952222595521457456215170481837010673281912700428433365851397829110672191844588456002708645982218870805536978551914048558133031737311934645964895959457336340011247168315700647273968542663326381059586704811923847521225811326877214228621629875864621660391529679463189583285235869782507119547969011313431811604574816922613987586884652536858052355170490707786619290626542278953505770423217702742094387082812093121554062584535885123112232740778269379977659408126521177455702060240062314572660902240512190208127196270907394319268034741130530641136743073157494371985714525493674324374299766562380266896557834182365700816956178175589688940313306609748336879990988323245149901558785340014485396591431145566338459139119249720511363897405515106919298053287611511569659788255851347036701084825337600591599336652325072340384327348914876415174600847719977018616202565666445082335599050138629467008636054721348260207475016047356175897429930216629562231502013423145131151805181756422790456889100969983022483318425547363047519857756785165232959846593695818438334229092048055973467571314147882949916385859669415411782266145739647605183094747418887731444861009758436078189672241481244595772609883731764662914210081209533050729413602516282821125723293361089052513080490416111432327785229746993393018812324787091601131401380047063097564225205546855563265499625652900596475427854484074908343051807896004580194485299010617151410194279340217067814952206544056500540542925434774609519814850080417950106524433044511900625192178077687033106389089625858217075337731298256210802197890029790605794395763687045907352779892600852828931766799745932528168129661376994420690010816596149232974238998659859902696982215410744059771800596637952633577570259818774928830760101662729619016636748724426362073283175047344017266980142960176858213066129471084337677560582351401984769099685582946565697808297278903122890979976613148977709985521550864196819879674343490951931482868816412067634951256084123310724795710750463826289924993110078772245095175816213870099579905690781171639300879001006757519836742235574770494548327587730204961810369514298556676907166101268793496012715925310549626899475555864359829421278710135821001450548389598837835242361755845755617738319530425632283319606670279780107521189209908151757017762716139537720204659697780000777012419401769415872175093998475118773844253266022361525682958978232500394909839707446145591644774247845639245363923152734688012900678986995816814586187315872281370434480136334874574484096884385992019029872258791395681068230607288435397395610465651348637077274620626260862823062009370055969656338763403334601644273314757300435752372452567563836603692113663124253946152261061186227431448621366826485611870688757974595842050897609334303083482558607585393097972074566259261408707194644881062955385441299116094064100472537339519271879466069992689976535542101466763115690007390687735391123761125998811011732585602591670944785636223205052698231885316075507620779435862400095858982202465083730082866343680782428569203861018102312515845958153788564225594353245401798775502110161982392237989603992955036433767792765335431901867014807996060145450414407692027789245917487808522705383253336548280841545165032647431332715325164259832048629388718013678371187701057207356671473407709306820360466972829592015005303241003066551173991770563472856958739717558122607726835634163810252426856862344174988694309656946814018277299742282168213947825374493286612342132633169670006269002329003454544938985714096672740322945605247469691062903188267538427807204658250109538937799865553507554436398780206415701034413535688029145380297501960582503636625317908632823196202840036655292196739775641710646604636878605243252373718414625823766192592865921949648234179574040732114336054095032560059417972590431291171942489507383471722950172541951532146014213872709739743227557039051374530316256058710029132520965071729031178246824949328313079935889494363490663423729520533141690348660914056259318874723444794167571617195593151499491213035099814326004215105923641360448867486085982442151466548747578674473903991842144780227739998990280699887726023652004924175334548264497653667760485177536424519541990369548442309818423837631315409103629362076230602902200282286312522604533450115342543318817650679615091380858309086963161163210403260045010784330639312773819597683341904597375863025337853912408508143132534947976140454956595157930597769307492221138864544509676403953932725607248329452687409487948096642912205568366104826994755170203659558840632702891054362336767290873615393922779336372056145053680381886485990831822542880650969419362695353944268676578652802932817140858339741922374591560665315433368152688262954976829745677077229629866364368561539205517114958692329709760748076764218060483392581179205366153992934322098192251262431447890758680279993680177613528885033778709511919829117820227463757074953030400678563080950333539975708200867429549782855230976478847345998040920801684489553884808192615366093914509889358711227426652803047207721115448715823451704205088810742092512751381793313234938373989925864726290390089302416599301072696734708620001654001229180829440814045077587977091068456524774012466236115976635064280524507436088138746559974652409595508921464554013017146219195416501491056591999651483831905273343629431048618643903393482689607708055557285139452753514658582869339292487615158048379738153971491459048958783063089390482021142457253716228775143999234254876805576213351771036311454352541561093220761869512042516974783007926171398364564514591764722129036991786051615289823863140500914610945801960396012948149963251227581303839244130419329873805553233191784271004810517808997275079673739633741606074260594698391222864238109819501342447463309020037974378533767672739169028382413662483861871120458241972031537384066567206112952921723257053732623165868446557160868361138579903975721154429747336982238336609496331479487373870610311387959516702441153452451528187823000431098838055638196392613716639757317121248231299726156028424871488514775422219053109263993170178954541636533050352170621411200354994063930648283558819734449561911038089129773032085538044103231125449745795306923183974175012207721050580559622701441031140161032456316183527247475418093452504799769839690665325889341031289221795695382538041506957089349416326678669506317068190306612248157130637676219942343613699254677670516159133586766999685863668786657729668193180877939199584534769837468320096443269568236235078814261544965087125592962908818902043807580131063303262248209316734861223360495306192489925897685660052766853850661331786156148630022454922138775486059587623539164863034797690322654690687845091634542937438559705422791018154286134729985525587212078845918860840574813704310946685134525121733981971292920658914069342818923262616907907242460230533186018392605234783655839145518607057070030050172720239417983814211223442991404562968371981528852839877169617956247598006211983730274861693439638742422942413658275657056335571303958722132166993773500592579678131772502946596655121523125257993100524742198200270227108073188687538727191783039133460537667577374560190017792246111828020541229444331658816241830302061028161216287548068553225552211040746879692592855845968270319043665007442648636234386210968126905076489006950095864209263443869969593345176257248317631363116054144279323449286722671763670835559458623210096308593171568981187320761499482740216325827578664963470592501607822151877297597325201228566919730509784926261839561206291661840424589627111234063325231276082949637511225538554615937454997367710795961118422185867383451342387065078661197422408074648706530317178944794136261831390724250983797632052272612788809607083675605436127169531975240794862467334766665530618625710046031153416088155402704589265265950764566755884436621507528085244012679429696925750123968834006720215555055545434431712870994817042434578765476652759700263889992434240561753221651452436057694997418360980499800847818536876082269334042953132097499425068791453010833458102609687719214348848449542320203034611264109482340787678271619231093235782046635219032477985216224629684231612670054953400741989859387417338018063618225828586758609945753722265591160317578353243372614850471360709410446211406411277295686705467897571568445724376077027643782453762359673348760256042408960950312842648640722640061228488946505061015032479206354747912838719396312961438508742381599195347133256708921296860746820111963050376189440776241032905645459587623762695219852713586267243905966367798562364006769323045301955627253099547027127361415511280222364468626475343836585499476616310943218777137155367350594105435162194372712102105369062877570328088699097707395953742254385630298599357392782308915010459383919719890376164531026718411345408394806962650289204496206225040456094637850574469965047587592393520754423089832237575330377626703121559348885724863051112572996063387331691739033220833557621187655476877177434588745178625989992297870397233740598389373921567893431718265364722104703680887206128063221727554989855461055778545801473686463614993683115053058794448664947290598010464928887443612952856221148213445867493060739253959711655040792543497175396301785975532308721894262820335230098088543884282951354495837243321230335837306681228111412156430811322351695755357508149982675194642531539042135739828487616518322097641342987966515622175811982414474508848954400791641844986064213130375449216879659630223995801532126316799488607347577527082361149896242536496078565964010076892420409988575076873093241716121982156227819538222100870346010147843989292566090969597971037686261421744973087252356842659515177799185492525700161169922176651045078764827265083741023870719346687317395433981896415328823121134093777948612476028139788484074864730068788354741243279056252104485614036801631567206955704246724810149169878776931806944794791348373169722520779547949831425390469968783084713990639596224965422495211421859415487040168416142167100385582674436611432753472701569611183495383592388460848866239157277826647405324637038382523627425834967076481406684180211313627260752064172204977874652631822039320128600310011580386237245457036649411476163248394066115777196341934112598014911000601502611098304449447641089054710188598835558798777897883995798437908423957968952284213629441253296565432241582872476346513321265598217292785697703388856662843927214408813366150105168343488314040273006636302974846711827642530669901547062915393643614304521464913540997015542272225927542799009593964256101250199700993690348487111594132291797215001928792359221842633587305194696129237421041901012001777450461650659262971199850435341484450288873791092483794684324135217271446319176841327697979937786090493399980542752664510018724779826392254203834688940008178751039119241023214933702992894670309928506293802135150916185519255594959252112321115894357774180902504344338006190685493863259158292006649163025886606848168751994772957839829752934969625123775832806906565745575839112070603960311098477925872857614187060287132314739719794968886479673864346764148911820694274210177538749604774929368822693797317987247484240473669810726870759748085743495324041739001345338746591480239357391810974080759926792924408795499664683256375819706162170945001344026372563039728734161908765789627454798068128755695062800415535587443027402395936357048084616726823450852869492691504219732957433444201435951543371841029091406223681636772889033411022139133102932660657032777615984662824004579153205676052832642562431260382888939996859344730336222042069312851799709392511637276087897211590287914081145024467771445471130231708429038230775932193106006785036741921660669927486026474311453943393520716410461417579167987357413773806449787460840407157853346927973793471344955533209660266378580434582318639272316066597971654452324414074376760212365460468722660828040324587044772648158909277912258437244356888047219891903748331043046458801193087458995422382155082518130473498571995668982279384777716318884667523029411302715418861715982674770682837766747974771284651977004033658827192279593675689492897713453226125290074154520604710968923542831843404947629500918155413294570624176703705879414975652592459669655331420446245547587199287723925556482537270304513368223390600762296061177867459569667428537750430341936313236210692198766694434233559643177914775216139863609159022164431620938671396485678488261506122849274103916119756826900355814264626581173750701755791628038595692168966253104954213051899918175846467307918413096984391233817892722418192530928515104019263113362283985652383472921051001334035456774037629049742354752948091252798325861949073453961025587588294645153690083032239209613578190694299580509479445382457481007962366841048714849960088704900607541469544427724344001317521390700254991027053471764720648085139585654562815758860230845488951624406922926914416071100171497136864266034252812425657958796005793567148506105493244477754122832191587414780847163762893109685847146682489418804975921418783876683567590216295727311073614140957590436548218366455622543316682180714263817085192524431627090816040929917072558862774765269272640098915210016816311928707878278926575669443294075628948957891492966920984433896427063069654511176531007098422802942755129914978946676396991079360092115344472054032019263848012704733880127983924075105422493454962751426115998901210350569183974897602889124061342182430397047804905920484786547705989360168895041185558194964819964475112000826191231453338533163810356034400760032920346521830736196529618267964760409473730648143830516017491773023724969224137539524374386751577282501743713674522439797482594249149604987762780503699245503732417157986619793929759713612808835750712200272816585183216310229629247002766697797782533279092702722853282022907416075288014704186303059563031349127417222888388463065157661923358082016461121253556713391806309970979015625869981779316698562795068902588631579455052298649453652354434507149159112196463343954710343117656922390853584088756219688091892794596878858777461638464354013236019708575942563538971020227054763301449095264318996350247417667200648781269433861121925867481566786268061080027632447382419424061722797809033564196598336518461600165756097091445801453726211733889132752455466992766134530510908963131766549335162173304651306171324249725657821544277955662430935063603767988499818186639234022114137623305393242014214140905124865558529185179237320830156662435982246494289091458885106459483818261517046095771671167968619268761791244875556691413889635681296935552267992243517324902667361593538639804297149050898192065940185503068055587324984134550201274414830929304711285474860740198961300621795111948626403864213600564976002954417559683243640092892332320299331281540331813985677802405927413790597229111671365851671214559636284718480612313975149934542268695117112421889226558756709788353090903281569171090073200036488464181983444890682840737849333052137022589089604527803599373421226599774291358515281443728467686652840100220266985148168752259953026103753397407793644855547308733796268637031221106204473696267283088899597822844318867740410784277803490299326569253541834651148719660375613417656084530541693776961347694019594671371381431549838251201833399131968998784902096328638666935453672027662661570003080751210138089765842449544841814066756720184042316560170825777609085665167313531733375707124170609317130862452757045368996216388373326151492887943326840539778173213328575135072175727064429998716195791675489108307714599654186924161805482596971615443159844002687126384278588194536368661269943896903018554325705049606295624872788303437505869728467597421250918703156845206165447747926404466704082079897804599869861901815167929933643491369684716430378268987735319638173132129682091771390321768217946705614412084893804821747348959139071086927671216834220285150576302911695582289792623187063818705686884288289721281419727682767131804530328267943365489299326055547801443871706773499737332887901398906438337634813221932382473297964079572312319022564158494553150685263013241277749054497995666524069763698220663741113104361070634684239863272680082347132376430987958775270613736286856456326034736150284115495500405750155210395561690245917769877885757627132138962546574247394713971234358065491356348426373845729104816041395128479981047631963445946307418105285491745355955876054409496848716579764746658875260872872227975181243009486041908025020055533256332222415661767816697060457627556422242051297155244955121303556797928444549286752332526904941913852612376609595532503366871201248726898490052415338259855003756961301870442928070761961005225755579586866274513066438990117854217907406430637930694587327411989641045528852421180794417889068166910189536612698208691560734815629156949014714193113269619500158988611275643405499139664694213014026603671410560025499425942468798284616298669557413804405527033127051630683518902184372539106566524140404629338339008937996024082040017017601300577701984601768119913120000446397726780394906722800802931789769747834267016810770971676056014959779778681263603427860199839541713413357549242620119780042054092456181332547094945919884073265840762353780848037567830440558042700567378199645700870210279648892422744501691795769108954440213186544624587826316806453156231896058661468210239241982309115725919359987973895192413558793815939902780966944121748155250958047231021512899529595753627489536513060637638239111693782139041324130684530510905797973205562342104432852068232877458716224843424178191771276604818487424943017426587110968204473071638570971551724703816189360793866864827451979620332962522007773782139240658623249702028244731786433801166825660071927883263399273942647593321004862837034659178565439811570529797044904555255764290390229050734250144179459042265272561890466429320359401554809161731013167373258930124274552325588224684351060518307042700706244278459388331643093265688083143601633629390334968433778843655076216967171506153264599682766665349673082569994607088718753669889843716227295097362598840994158251446869576044942380789294183982521796132943860583966870273398590397983184717084686988204382953184147590652558538143751344454915851095550913660934175933058293125459534309714254736405830648495698868439832234735652750550377918750709105379628867929770328493319049440891378458774938836709403320889544839589712592304460955198547799283326829066022574605657382396727522372144522116519449925296307141297930316094749561104675689006415593795732482193987148121023238519377408606939924095835407923498868485195277766859879013989119045009353026528924490073090887935314282791125446029142613267782865356399590805980128965487985962009464976995720865043227204412035009450508349500086948816195335023942628909044191222813169709227969133791147030702432775758113933622407171488051600822367273135580150996801905642418246568840650385939337347369561950341551384404783530650036466508364057670838770897848750098279804208208175721762786975459029859670827327981692597367989034116364628234943286448504788023155760045140890186150762001200375572441256185137675912156178788660609325207296325649154886365448131480345023059258508182029875665512010375375317009678369428681264319381728125545222501313612720648574470561992758801406597638958360822616869059874953318862042435502420864765752112663988840320010653223740705422436284921710701102962751011221463973088346088150309681114614347066457666408877695747631000017835839161244255439183625924489559423503566037114354282808896583647157687565841947340072809132028614787635915751401896872475501868059566600674235923562760542666343430145013587975153482635482971516125111950029590291525570366501801834616322592406832752680663674511830808697148458956576229905605732380253172514391167647793548478538836655047995757745995418368274294331778554366895580219145086136336366406281478564951207578103308433856735796234108589789168941447899038087003733349436775263191134142340717361751931809446755840953815687168077451085688161409818604571243001528200952803793659734060153328673353032738100066459583952403743764820802192759777868095438970333541216979586984070245269760511768558579465827295401063562835297706523763913875646894163400214719271479380375871468186827200615399382453571607210680467721775939204199118197792389320006737144006334989425713134717631124970150199440867809983637783247853698314824785929200605918596413762064767199048077675456268013926119255930789892720139785799931384868255020348225086973146308267720520178589754301805724895301919942363671408803836195912002437614637648802085957055916728795984383678359032314845515892970363156361817937487807117916076454892290979657696101308653149342071260345693228915057241389905357157166224230143151354032829507909156807571576496766583095566666952249522037717318202658420768128145563801870768791139982578036108709608682517964761775289600728046258964018014055264368653432295789419579030880164694259259010870719302120533927485879615210438609223331612912123862928796816016369380060130270761981561139497356159050233430026581722410983944570322471806280654481886991520672070908594521465652064390055342541827964360941529585355430673262190098737487423288350809245736376567459278975483554154548624826895889858105465249468238408805073994070246778291892048911346743664098148373272063398270223989511310033703258461850286752497355724299810287110131243751492772448248623015135621222155783681221752799050921572602868323707701231376843739266797436736601887447334196384405475904721715319915788313589090572032361278571692915305914745441854347844120946200966690550917066460342247877768604609869636226754890255978663086256085452001404355857097956725804991104238140240727111208965415064354510827492790479204415950811608954912064050040866124124940885987291352111421920484666551540614593132080498842023729601973395337902946664973290036513783167745410747418221835659304210963041193638523431538373886519526875019379350805568127558917555628284810857330701433932084100598320210788901822965570450874106171493092167986749294396317585226577330908026098609183189905456016293750134713367721152475018729088374430830125350075725472286164049621041914789184590840663649696928989568358147399635059048715846093995556081191769586764335258307444541609542422646347354441051342262772693420893760032257631765905720881726888757719115643363995855964388613056570618542502305766094416953795506143475124547504985952766667713599828829908952058964323337727819217421478149851812048161095075173035771076787700385521478682724415383641134041505778418073313632416337540845657046041300478301849812174861780049588922799434368759233180201191785949892567003900044996701555846749858838855186686387356461128281733814375844552568576507357324406185881755840005990679837896716976053887304430351352103988970977443762308146800835588690633171638403408828666723750617011134000621356797216408089731573537919474476466612122762394091660242535464219675326403828678686149002566571393347154979838857627134156498805733729656625359474169399636663114632018347173862058320061378598183337245330551306185521831365928244388154875685755288243544150830966872992100108277423639084161121038901957752453191944522513465726379618990390486982878558677682554503772069361561604694745045801697470087593024167054987558980865372683885971699558818358853306588707809891933881413680634818627607318546801228101485754483600871834069285797573860462345420108976187409135276498430501661985623736157585645377243810795719945478903636780155245785242909799180661903947218709180118344140109327627096117124955638604980867820108924753733018615361481618762486381332931569326768158710542271320285158776930306151489352833504269759467486312189669006961412610879945502779579984626910911848539347601547632466984981427869000167982670623784189856086264753526772208338172194772237969149538481856277156492237816186315883148086722504793272795368046969389974233996400798192327604361911084437279753055892792698898500356874440223245095801614648363101856191967011210300204751662309518736125207605006838101300947366881167298710246587131959364589595618393994002749318299782035982395069498083010998947646216645481934713860859855940748198533690841605055736124164663655636461757458277150931882793211532585662136526439833137723597241163767835078507851518401127953145023824225357304781744552195279707876330463904926843570138205239245471376030072862503273832082152408449913476957615016824094987054178731000976589607741275541705078049200473598388593518718135793086860246315599204848523552285915803750826978558309201636042520315664099865394411916593047335122121655044035380930401746425192034388334271851407610958923047242199157308047894590423734454244170477680572867885159515144761059631239246059097145479867676592563553840314593580343246518057224277293070532683677299805932869410721989875600985666532884030347366075620912714508091033745169390031233844051620282084724780862177924832421373302612334355181010408619126668465148582740840331188254097353998871459640169802119594945896146290901327624867694712141679097504194998357500661045393511693382329591756208508795987555120911174467986352771727671580798018013069065938738727333890848376298450991596004258215859674248890494443962776245648074147617656133201937760067094185453297624834811553772409538144931971734926415758444352387566775554191574821402674241230826823147113267028693782631744039652998458135272929072734115787675143688206744736740037286835862309370091937082267716293233734722429914525260948942985530884287172985969512823508432627024022347061507048718766225180279326097944582677372018654828046944505213873107965552680485471024337373209742687330595121549438624040717504859737190798271054284319179080016983652550195284646671415128527979552519488775573197273803250781975654514085686118812182187898987193582828918802350657214146666527856848806486257226570168701885481039841657812973409359819243504355412408981199978876306043643407519914788571742795580872495983910732002751962025581277698728287625896432097148225177880292270361779410350828232975673706372195798256010421461368882698187096533896088439974972739808386356575877656906919780204377879152126657375756186636011538499408755434987101590984442136137899602825998269371979541350769942708285985088899149438823217060486979621620809328415516984240646259192805050083187152500267539652982526434240718832557128078595029982094173637061087561756078806687795966818880106291160703436021743758556434195077968594053704614280474787396691552892793278863452338987330310349331297778045460334646237559170388512833422073805122385087186394536734576538853627206782656796605143765888777108360121095789373555318564335080567976847884706044542949149607662920626029372455587846303241677743945330172779309904396050950348103980881513662142921120037215853630055191799510940029663604425713395514608612268357297831586187576905764360700579170412046902010649894311448754887324986484138111022562788119594876650660761161228624624053773885616575183331871565824283872110804384694242229118959359854225791963384629276856852219615580577529420927481851742972885174476908707260733073610848904790833463611287508998796619608549956700109068409648193777143569487424948549915957754466242940178782703688929578695733312386170183399440910351993083052029362721559837923766711335852770803336053037679204237902942672273898713380105922951471862622551511564981272112975273559697120003011239158470349189205127145067927097748299611686112782582925812114173238432632653681198130246918083724137662448271005161247059273152498800851216963640554392052917676547066792319045665888027330481799966326425265138110977362020904102405174691551515003411828060508630380016818538295693755633858855692778049415212490277146748650183978019601921306098672399291475679199083274658106985307512901096527147923629433657902715535217629115386668748632959847880334512866198934410215031153385052896607575982879383161097439140159143736571885136556404497717474913868330800546554829943305871214093239116126787684825212468503343084088883830822634684144638743469450601291299605627790828552041476549450469244529728320447094837744256583546768601975139341775876447009528583587054218814244141507153798184711418624090809617668290739084028751616818936303299008623380302559057245669509767947597696016949148453210458765653355673456693933859484281819201536392807960699884272700564142232240083819650687188258456832090858078311045101314185093817995119250158242919498052122590456793430527306126853887716702443641394149090421051822152308696885718399345960725476850800843560028038479909496191671205463967354506427905826462785473483291586408720600179284574640763739109360813508757970081706870681920353337431893188982905837564445100224586067657943343507544309928536687633008041002356181431071487327308284684519956082282933207734764623143860877862328920672759874213473709810152356823228665617403546241479321978231311450189171346938290591236219846564712827393966411858045312803613532158296277713367152390611969844743924103522124363622289838703682302651996249752429706429790799003631908991946038121132601276220907677023374313532573751087404294705697371532193007182131501729317914836373709534555471095007076835037134281624295322496314416576545773004970958770328946678878266210541941425541973811474610451976577249342190358021892522315343577193955329855742031937066181865767311258921177293536156654587340790110235871140732807533889724255360176603927829216326865410311449613880595662035034904367955623187401978815572671295069418303672615484274357203460328141145795321591349000946047706423705793694464743515137462729759566633497961651986234271985735438854479879378079266821131864700220191775063562959706729976684711620549039892198495191488694306156999226374755667490408092770007351478631635316830912115548836599902536625568582619029108886655839523590613556242476622462861235980040937721760520948226382377314096436508791178595671659338896396059700794416420722112568054910343711470733504944457789872021621450290579772890369967238105209138244974232108395928124078604940384925745334703410839262623813822162747658854746512615211086757544812459348719924181675239511976358692481106018799621750010794454525525020414376868588628929757566196254740118199971923765823596425656714187794379133496949283271873896823735131088009419749259391986463452798262799546724052790744639631083675453288869676373897203575448095918172820965878045115628626144585394423980911529276050826666709409695879277360808491280680742094092340603818169890330136694148940756303225105926359428226487607211843477074225025013525661142444966081335710644363883745995073511917176026774960542753591655958765080901026308692605398412570606256180226972733251438224440390640847855793173364050534380955559649017849254725571825971016987182748449374144884752186711867808149920147746903943312189568030119290600936801199113290034722666622462780930210924106755472610028806839968530813336621719453576517764018218012801442191558154335897655925200225232974378117406145226303743877288867442798525923400471464558643498724813554313172097945199311224105417710363860523075751488702286814699291922016383259186769595886670241687334531402592461515094438009166814145823650501740472200877326839706754638362653767058067209686241992394793305357646226805786833209569787667429712109440035124340011467930157836512198839830108814247121207898815350141029530285842824804683246886728594845492820981842140542341004581287566154809374047967760362779574787214938545218191175571330415199613274845629039488321049648417135746306078858609469252743238969532832245619029133019509043081390678751621055002601798732800059338106741357746690492311185429659075035054154077915516054246073284580663758280440315810132197955935259640154494178997809394757194662681787947010636145436786948378914031680728407254904273355622058353435159372376515868324252342609812592175691609959074567066862422045210994696989140224497871125221049699362012646094413035924767517658944632192025755179628625266034576362850265618353711592248210992843377411596968013882840275302908607071659819522364881406039429981149055524047344016565472440965096103401070545246805784037381758107725843214818769611499575829832348832734936845031488682024251864132560013049851008430354496367241436189889779320258203704886744400232588906066610108311233547778787111482627870132086844157461739659839782829704772006509690803369613765200650388948473284994006199481916882524479437216844775953685063788505780189585573062382464054076258360936712910813025664907439929644924454812541141775183821666563695063886509629419181116107438405567009464313869809442463431623355283131418757494202626410097980163619786861869680655031467142471306906807610096669990589464998298190712631987802625133580727401297719024940127307028606500244504999599889072978164430611816322926438027050201092777186800338204119940105748212375210559424954629337544893806065565468127948244269019710654306878038685500857334189547227143290145454403649006938539137188042986729774764264468079023896220918999665654366100281987707582988534203210350978509706548178973876769728467228480782219762983455130442535960479304129634804380542155197225456658463650441999714077803405657629388396380699139998507546620163940077274743848581434508262299426676695594780896182448780180801587904660617411250157311773534703863283541734338553602601389311516322111291119479912471925851376566027441876892715116578077779119182910776011809583526567941320480310401985989890677746276673985654984906180751375132759108382129723422623103058583794738783464677636948804916100711472441948461284029296467386395948176837094339878971436833415824714849051744964936973538636511577374086234215913698661277361636799942284133758386792215919647623634813982261956951513448809324466801677145798519625170369420508429275541415609886416168139240113651224095012448536015695329161148987889702952463948080479799355192873731174081816302084539212557429479628668527561115768448197563259390197883077390032083291889000716068674218754414151594235073214645795967925491123671593688851993263829414944910815172787314914892783738157624232700276173828046314752804221783412403556177572684407212059875162058346697339551854570829473714876692086964428632767696600524463583846981785602327177120266609267227377090244138176709805176016180136169603168249786453291077969070464800654114451148689246843402864615037426418967100639890275683373811250395800268322032249152553976785587728569010464429954455685744248530147735380532636770698926751967879485931820305127428259423081602701485621859787184676162057453993699842898328908917694524940183907953070017681252841620537291369913944774958016589027116056071036981368840079717943906351090374875928904191729573506021877515273687666630702499268367953108085708945634251102954624856832470599944872935250889862586661727515457982780625340872238595916147165436804738625355757835942425949959665602912455962356937938593335239724811033391489448865933111658760488996501318875822435050849397809182551219385639128651394925149281968660575425678321881831207075192465333707784348434544484354630652640471723259247986601298562460650884570511681819503031394334817453330079998532518978041024346580716549552068195899422796296616677926270686387983739592198911899661525948511658729346319153804434333251182426854927960345972369562387189620569736894977569174280051785994491053445265107994207723290017170891597005523615614030935431968070971349949259518054951942309291709863198120208481051187462293510286778305285941600819907916324979953143090154207462265769725413551733025407722997456266465109525477016081881968754518210716599602229098709879580588026915610563664246632135559277502508579149086732527811477690517111896887958853321336067429905664262779668311868101407373957269901312549141973015665576130955527544309889375652991209873042657639475761015089458924315492339780230226377333096923941486104965179816618511639883662750268500125952432508686576192879010640892609967853385829192654559001354014030262379600484682603516784261728949124679607995725540852737347049373561219737210633709081715454543353640285199374770817423997987262074330779514527071260473992176717976703387179252073506361121235637264505416665533293585420400031810120316686461915063892671267389304288627754552779185474941478503087489663095776231070091778535159276933546578312353210946706272116333049039754425142387641047137354265008958378479984059225731762447140181868299492949345433114001577421388275696189968885257668917617906330498213567929775236853951662740430281729426868036054187917547720396508669921725928517155888312342106204925929668202148025247795516283584481477233146991310546361471437462773087520561343841384757162625625537156645206519745630357730874008071467148205163938901019208904913502013261377714346523570201559014195724368591092843560461911179773977519470576722040446800712730495370585195419334656099653395003289501514983892700498210858194121395025696582966042532810563693141231366175238239510489056508170047301884321616963411717072230417083084201079121217980860745863039895560008930591501246341474698686507206941631087100184019065898214971291558104671260715210408004964301433096125092722032608360103459226483533624046693823045374535945310342417232319257951861349007324041384007339135829128420350315932959732155677742096362021270646526239802614212663568445517936499485642658286677491236865037288302618608820674723548686602228166680103524271169931520662698436630555449827303908566278291475235627524399281633227957928861757115050758217160807242720624366071584828148716066758892198133442965525980618432614475184126617371936080761607924792832831754927032548854661203038938936922134242765805484598263545325389870342623619973393553788756152570903500580717958261454618518340282592351786863194969083801908830759332926003469474039143489458734705810881666086086581826715282034469609416599855862941153401244523162647528718639876251218266623455905394373043538756037965127477767095791496350028842225341577392679062803165537458630353441109530008202946721222169701699569359844280231327293719757244623690543542322123470129999157217305379524581494707706530233090289973915157812496419301159845396359706197708134415791216235541861363947467391166946377956589602447690731596710445135006008580141616888930887080501578060399163737933777055364738613661609890963386446249210847414841165525467965331450849387031980369224246659631837131982597946771918300182190636666994419541069905488336800647968127781295897480652873507508309028404924564658529681132359457280566595327579308827169076351161513207119363636692796620079183184000425948141329137806122221054916308999436731096450356742206317671367710286132690252995124665368141498255459316069782307315068781337296465397708841823210245690891075961589454154640607850301514911050852524948212448893401025296619714777798299197190215564219249552143372120747307130696506715762108130445137197370585194645214808409774714939199067215234254901554877279237453243285088986431251014031509273982658103487988321904125123912555202163789147658762696878038508714829016868756844619083082587581434993161519493179900914877431505558175107653840494686246959067380344946792561838960340523842942157262539226891892442656415101573999529593474414545896294212334915577265359417071890789354567694849818086983563434256083241867931012262458996716092971138498940391452274280940399145191229738890721185483953151521523806294679745888769702243733945802840991672054976685793345275929028202344262981962924175583842183630962375459609074619577376181009608280730028618647501980915575649296863358030787005825970717836535464970903207872791861553101487320798580321911658087646100123957229177494404760491409203062028060719135544825927911773986862069719835069380604128516221269067028670425934996848561400917625510041534399028016750519035374524837662889024076936247099653001112435878542690024549029830184777745828944352549480805464491343751849299462981003213690840977415777478362828816797383735410642364371286984050580338785895788888844884772206451038598470503819222813687648063554619154764907161045737382035559869288804808867885612601924997692992189128166939462663324959451698851782685664360767934852378214944021345831429356023625986557653711195764821975173002127967366110409980614296279256244322915919361768925168408523304525029886913113603440871944919822613165826648441662581087900634481695556862878227444743769521573290972431733155608284796994202259828747904406718032371380929387711168249382362094686061706240452274035684476444331603278952532728942195541025872642307794218855071296247447189259870726901716358334462590031455428570087719881838735654228101504907784146356748059111416311101010899097755233039788776617852895743726033730622249949910983909055764103971281070015068270139513486469540889761444237901678496757335748744251966220584638837678350323589342164184314883085472597757146334582816793642256993399700954456581406542585509018622199016555062324236628049849758110876180388748729666313402523414277531896560423343090326493973649502171385460961926982259497374747079335257246371015877719121883253117064934751402861411004338108883710436879847374986207212260926914661110768939814615608539538264388016991828500773881735811979103611078602926400334325190584997771226525729616663907296348598319387099096681793550600260961875029064711733658240053484679800717800928969184943800014319216419939021124060936247917130275264296258035838003535995316325257100654153472651339362105535996673177150298099903828839257556199050466737311985465864168335862901241723235348152394438002290728042107626583339270083873599082622349524113979645102008757345749040906142374678623052573054397600623520444899590665787332987406688318121332298566516139019878699145805420103519411050260584555107352037122629235505989401213274459220026062896168706279931595612486959979196213791876254199022950266005560298811882108741585436694574215772717720839512846490572222984385439937636816150783616899426111073911331541554811605893163561418948649261046131641045472343824722376224890159212852901899193283257018558317676533679489187224599204791117599015057104109383746785642219372236190400357706112236260746546183948853723996806918146574211349966779732714092159412269432010358852835545089266436325950329532234271553588767649872682657245636119715220934177329428882830598684008091005563344557273522098327216382158303423438334525811004930789556222468562116930816706717499378644640283758712226260225682283622068069834744040214511847426138829130954188716533416631945745835995138856937495514253755615060661999943977203885242976946896200889486404389613361174706470078841956926145375926934954860858881096933472640701447014057246297527937494300148890790590155662177160177139690461710603527988451632040939036610953296190640916237704399233450780783807419333672893108069059075582885120321298127927861109199968539568841530583808915303512615017020812523620465336733105463720080703392396742878039741914733216727361250379181231371082840463376936326355269143279703128624576091375519734430228718060797383967766112031281954992615282355243774276252275814023435023723607148763221976517025475655336757107713837772107551363899656879578746658008573402519438441021603258977593798657730848547921651299962664662011306047195697806328333132170931504957183498608262664331846810474354391067736370552880877653875912854266614396199115486158145373589597824797598705759365448670752597357201735303655661074204594310863482310833358311635399276829904001841174118431466462483202481301866607833365579794649565709867725536805518317514940931550131082813330643576765184767356453129446349286742539581574411536311298315151728644212623614783601604351704204542341791989232694489951164429639288131051381511232524199416353579773940672201609215734531407546323033044530527515742723289001825547546225500324486667310451734286670177932188173893572894442706168787831007084851878038696815857693309203253845159036843395342243301138300386381770800373830174143967599881148631267344332104171424425434049092432319466651536984923840584989775535901707014246149119386192237539368439281158044037762799732942569857254034474222149041132406490165995607831325100141666184804463869991680426505401398628365614192583760045299735507936618322004469193974327735549621269767745621051606055693121923797907276560258010237049331519101981039883545000594351730445739193676317905086073751788552926309335674482061466650827379634392415905821909975107623522471349030106276440371187079214881773709652733592314271655699923593071563140197721593575403583254876202707060264906434656025818432361188239451565057849977027743365761168016069075002839702234245350066501173388963837507958513626630181033925816389657601488526583741845507652015252741793396964762699349209266967039674074181959949726097059088453041393775330228909872017573233381126164042345372391502924776256177585803442357985161911773761341584546537109105780451038311586663458693985314744627212135263697572600248554862235495836472768469261140159607621966409737202504714453804526526482352224758382642303157872134193046100216235361928819818167233309575914011648143287426821238456494298645747879242893439546076424838384627070202218034966622899285781718785240273367451630517619855082955289796588234260302281145032605938388491730521782386841609937778341586263603257380365865404716284952744561893975358734570861643074915132423286724957934234413814665200055792970277189896632260384514037245706014905851504477140162001677615165545476442199932679050597225472970682483309932330862904346042285272431267842125690508919676105139719452657608807845390128181950614233410951893863764395957200321918688981514537034502479790206457215422539000513205421479987503097664411001195230891106130599885141762781810855146227844900211397175653081653555758165726227098391817456125256185072179148216245983237168664260551906737247404521508917433840138270884977483191072233183923211098417286422828221466812221283614945620610874255612533951895113435426981515000332494613182983981366121579722817817685698111424047109180262357549979848291731172152546561439666712969257497100256169428205675067939332473721255588756319412377911283037174970099157147904414068792742747168402831514121504740308510754301200304893623062846921505147269185711732306558920433833546719750071916709131426792545174529316944017628642854681976353692545847889729842894339658527916805913710010250903739887675076327363505601072651889177218845561298508903960763745187387083060146831435033703781964746121449919146156648851234946000297340448867216161652598145457859753411541283842505915177858670254471333067416063487970920741043489258415032181169665432349329483635318766583809145539835764664917081329992740714239404440078543489024342992834762001784629515538864559114942106554638410590123031238277682996363971003997050248217356217300474355172149758722916989436269425346656716247195239490133887064115821031995976814312663904587430621940667111947728155391726741586402248046080727528753406068360898570034685694412744979757166045802474721677400342264113818565928082451166672022207103862761282352849898131737136093049037467269604375112614568361340009727598216903798784470545952539061110294566987504534333929942586453453970569836347226616474628490249010636885012909469641860470869291051953091876622176556692036635775344690448741456872343649975610891251477856195862103052540742607474447714421866911397109909821512240214705790438941671850642092298990271288115830967881363604751056644291515262956912954321988369808230232465854567456687728980777557346670732289640384328257048749413437698395627738355801710751019891265962516458143469263760399480070078515575249071169300291321987230661293123890946404215041768020307126264391629350616998274121798904431258159994860643272654409375959281256152253178227540700086056803512984041100133254742762160431027261788448534825695046725131802562864992681009116130975913659407849778662996984897559593556132215040586704978485071598758210199508096201867293868006058216506595000699710965799454347538996944076010598977343027378011475751840688806335397864272735117239887972656035060556475530891228807394594641673815055572721708779399331598325820832865702438441438188206021930640960235276958796366794862283930157989588758322124144986764820361268856665300066683825357780292971558951913997925491160505987789572518459692402033583703589443919053253169320556380748951804920027345332568298867001660911440144237640787684058733393003487309274989305337633562460980112422108626758446607380482421548577690458091264528059701277671502332365145241528160889911677585385720730605644054719782264906315758450712534713185304897676863467091748156791391318895336215315932850050022926866666287137781604607700805718772940751772628953401189150847088230714399884788368563596865377361957723568310406784338977193181102887970576981392118786048469952620489985152633711240690783076248393952224375588624254688942367568080580096994179596106563062395787593199781035058969070203530314978766675112957782518866295129589017069241898989825662268208248869986096771399787440277253749433632843968082194037051751814003553823950313322740351802294464737022794394863330331418298702304759902820414490001146610006723481179237747212953184362382716386639330180239201598787743539550278665957021310194751712109956654334066163976232791217602177239525955140441792658324731638810358357942972257904239330529974280968459343265589085132102103067385416489210484043468345015514610100597803085632294680231957240107709626478743018805820466853627761760880889061564491599845646535406123044103575221499534497121630310179325121311863846292016931093172404174607338214713322032665127232411810604060809716557830060838061556454008001535680917030888562826539908349110861559784954401121424724836115364742260076133867953205198555961037114878842224660128838335636407652192473942220413879362943444156786141755775368680805587430405963263315235715223101708983683524468716454947707721779528800638435343689240574196045081169004220600161861580461660879777467373648021367291482993267398939907743223290465861933363698883611261910803430115960461021313294274514475871870489827052779264924783914792514449446960650625163648305456758089056275227263336365508462267313269342099341730346662539181023727283264222058313422684231893479070682528259656385281718870630939900106575332385113427899229704732404247204210684911439119770873123224008968253804833857688043893421164676003732272850612418134707887750914027815238801568993510164312952865060271670191442482741065254983910396257617819587651613558939267156737530128070267554374709861696691386337805182154751863756900401551237382164348702882287355570731844853815575873000503816758484090602510982599284100912800301612810538016771050005780113273577306712599547977178662993971652300074678749291672460377472061744921778919265257281349906546162628020836155334728175537346607434060770872872965280463574465048179642756436451661364285418130079315804401643517260663915672660574767793746107556421095719498411363717735640483590799459662893080401850802454880635388278375587139628039276935782916610161067195828229610023078433956681045962133788180867850275183121596189046166541432193705415396285930089845884804128696087342992231219071837294556117247001064076115716720398524287575779964431657821288611046814561395543843885760670597353187470074566003490648352988793884029986015769105682904532764582054513560056002476245752966449686797925935498651601334020966981633853529865513551074778788964123715787042454309330738351516773575722210006876586153063278353683830812873862479973098196548187521151861750047894246828362473356400512799936819221563564481655700995159169353082008857377490863959026887922884968706795406905631156542160716433230367734105046258599502546844019626725594871249890685821898130925792182491070794317625624936510872663617782531803070500189135177164207599822021448163168347193924114524638864195097933197635448706966836380952752828468723476428276863006639954117233224516423311605091772255285967785711145718776228380077098353608805772302870457122271013178590439743543195241295651529949166497364354962349918143131289056716946972137503267690986796197641139966421883969373980631586321675642976634711745066604768159140957186180795499014712924811662037263553197723745783019087215088533420909555492543419465624336024805824289041075546808426152948035908535463601262484499907824388255232223543220983470960365310084621391423735064665457872640017685544256487420762837949082214410479217016982327423040550399128495386636701114274361078557070048797291806696514917106166269939625359373278137485175000880646639730432344596501342329764248048760618307196374300579240497078874683200990694498304841239028986034806737271887104005484791695934196402734557301251671887528517102255609732466693483953922812998861960474122851352786316457851224839674289255997008701865951866730392916640558161149822073281273442235629064384176208063351874323297241774415384635893030459614300370833748534736373034938069652526766722298290198023385554468916037353721871742679085519367564991668091572364416411656153890434698078274699122460008457276620288468797793061223777697412505311258163299981355298850342616858293016990868736829185460795047747210623246512666869916182982161515132506569923445970105648011919787380891023380368756730902899029553635103213040097158221666934276961313138296254718536487513333491627398770999408779425475940483528801729365231452997662054000607737018963970563390252595592877884140697705898629199749386906895446466355610158766751333303990385127088706765618019330008204328816543289924149914780513518695258673186675459207497016827425667192580542525613633147636179838125695639854903489418958665547982462225889121794996050190378917543506782954216294426372286929536992600788636813827402888029548922106801692165158361815117940997004614611076832577572955336305927582470929773420313657319518749260815813175490350236310811351628496316059099078458655762132590904564519420393432112031570157468583062949193898912061885022364655007738894576717828229938958968077584713517906385651080353468524538876554923331284174210829302531873075129209072947563624536406276712992040504378467495451394499396257562847059276012934455595276198037645999810448417585836388590845456193209020384972170940146616539085185670666146325472221823920141712495471281324773972765103884836957992330399443367346263232922725504054052748879175163895318075060625898507104715276431097346944435746420052106300209196410801095614484927091156611811587550662539987180057651406321869578914240253507518837722034313071669063051777562347411628270175667913233092008160862989816808847716567009290241240202300754174744112343765870892253676599979761515637771414960506934579080762905961042713044053563719421887270859498874633654295922385878118892405047558722709208346506378240514786261662562983900788416937572311720960141663186468877490777332219084731373632205862429503285465103395947328289389705066681630726345495926788319364534090514201848099276232600096397426771772064662280071513847915966476890209643271151530432013089188789630654488762152613920716360118525560261437089987200302596595851825601152033929597646282653695161898653758783039970209001604361409730164842915772941454125796513371411166582267817052392043670788258071380715822438991288426116961068711357920163370442701835502701602703550037277868528330711174739060248426996270120247539077840641059584347027134544852469995330061719118876830621812710469341928183370862245190255196077626207865849689038955787133036187016578243344715768402809719581053170203453864098716987407752355995159023871109637869180843244045474912117635137188601354245671035173658447077900684594147934591767250322319096785676678926345220687764746529835989520052474018063932865616531200748934099292085789097006005990318258794432035497342085427678135332433346291297667505994499630623098534872442394390411261978646621466924385954350693191215614204891383725859379323138924157815498978085053234808620828484216410986696861402661253181328918725786864226576920999709095465150977894575321245099811383883663815241976642571510745335821681766458687415175699808124426458154654924216828659698616485577396083355173048278033397839232604777501899869803137590787112577113254310950597962094645499693248690012919055417385288260534353668656058251261631962386030607112158669758227552706355015084464951118243850875599338995595042126155257926416382900705622074387553951901881957247219736339902206195067888438494985981635373457019004294126387209941046764841365771534112197676611636851213230656921345544555127810167679912390053779431827513881918551933092629679027096470062711173509295735543925324888092157036625176672329775769494747969792026720588280457437557207687488168799076584481991846478274583523164229814522469373022850245160615246899697681006009132189118264524337359317870547662692682807955150249598600866861310774234571330818260418288927297924975634824978089574291755920519106114776146395376032143282590561772341046640845787077985085777163916805419868233846311564277997343830498125566140359471899268073253858552814546697841715680802045837343739693802704339939767185744013163840913366823691605741320824461354204190727027947814054365716552783143315846359578279626642299892411842589953467805162349064062799454416712106216867464792086122669651906876963272093829881043611518946194116509567559901041077124868770080035554198207508313359026146963113982067342245008366486535195179551040756819230566344007422378341422620021744647974564645426097321280855050079982547488891775993340687666715702059042071528402196895633317006824998391129948271292089269832795536466035797841315101981487872810546215576947704894071435637622057487786176016997326386808172963982682405006078622993303104662069451110985951329347522335153669269872711202598215313737627938230372268056485064142601582800806958891563685105331607745841432389823902970559295400732639373694582825627038759735101725678004718992479078029407365577605537025375167662199961910834825873120488320746813184551392850282708036178354373028232212773368867157283342349706439921354806420697732982770127610197846108513861410862618685574070119709484006165932944822737560576178045686866795911674504822959433704028187839040110446987595227945887859578566835228585194332529255904232493052521456690284672954954142396746487717125961813488785681130188727979522288947184768388554883614442702931522390682977810738542317686352819867189252670365874798591359378232543471351648283878799562469897787737056306531527198976498208056271849721987894598539326533179902437403763237058737908124873939270975509404766180081950435646609296668677386051352397144519395539836314044121347272628743160100593375239003554597241296954242823915343044481375424586137868841566998250087100798966499749092678700453390612514060617934196056687851103150359407701950683107258397645379631173103543466612985767401340932865141635124611375574691659971145078896344489553421711454491413740726562317451034006627384583806154514143321556675617445602651809131794694063846187820615358009566583628561268179888163332206497785040327729060490459968637620471611423340298304416264876148182412846617292244197882258414268397748358104984773338951092844678111844661051338734672539865357352247740728444389953026788418767871305439421282126662001308303003113827048387002498731222872694455405817167720124240704132962899244585955070841717792771478960943528922210387507539982158085061572760710192168930841575530275176713079462206353865961426832252729075548984471773841585853261061693400504954432023281932405460175173736308218194881644968635469360742193150474903837515318896937457738025957506199618803954940806361531397703896864305094363405092453105940463891695484302653211771463045774084267730690259906411291303582153758847444737299142139067487486829612112622762081126956309686999533658951573470795540966706409284720360617046053594127246738470531942373769659799708044062274652502396649252302021475762638031840273706439607866614691836826411611341754817455159304890856610171564758732851923859074523075024258836782378688855153216093036273703323782194415205699565564473082544298143544687108071946252606646279261116922653027559264903727580345387957728394382460292796404804376406602515708455026658819129917326483985817105829342324559516916716629371913486627250631521147673292389628588466015517589852960295322693218675131881163732432730072852507828609313593455903558198476729862864764142518064845182363030484443188990541723882856621650802373745592467071826294356280645196563512841205621531415816818072835089006797208080147780887655987852181204096161966926403023902290507120831982161311594110097673485181679880414356610867160978718767515312288469482246348391195587692169825625372941222629446482873332911131618274911790367003610593698800933363977468218159337624639803976296054295790642706251868670302547812548018344518302812970844037533910993345845898447514223516631689074230799311314425409909654938779423995398378631097705198512081520804847738659490281775967128299559193415778042698617372570869882371017253434948390813337719519547928641591205660053962355476224404761430081305175125603006608425984935441691969235897054086527154053229673844712960004982606256010980873375943849529616538968844397984562443714086830143171339082779294070557168800755983076737826267443094671002799151040172756070728490815675354296619182399707886796899073709507429756473411726068571401195347389253760859846048447006333213975572357533305941953069014134400589462923958279190835116470421010957137554575935273404073679093667513138994748644935586706888098542234886341891643712083794807335415591669236747364859700141616407713752072201898739769298119181539594208027359672325293371270018050319798756136705504748234651077740522713035372727289667289011532933707561426346750298832207987936039432850309292468592099327249735351858083566694085472701075056520779228109585722860618755273617702120711513253774320204728055570789991239351861270865595352223054409694512400465922365460273630797368957869383751652520786490025371709570630575467779148468866417011678037862786567616780513603321461505312476212163935733199935409923737427650672859060992665958902935019112676148281211621564469427932584701782858396771884829980818520046638637478489921012957064457179010344519945860408795794574205869601333477951100697096422429862981223849876078926964701515378580121902947417678865027938338823233586888371191290753200360370829708336157455141877866308875588686509945961040657406482189136175859281156141471075272035478632773404595092390337855400856274734972155605204230007978130364894137709145441135027798929063991045843940593515461519919238436599496477577367245092270998993072050963274491649929508966211816158207912905623346948157301665551997391102746019756891829493658634416935589830675078549778682983815752406172897600475330882460575976152632275529795141503494725273284769125006773243578348146875965284906915418928146711263410565883936453110419252796826959313974199879726711689173005339290293434578067858041597287246501783711628178019187041883289556712262072944862573673232340575246608471784703632744822026673848314396629643502656359388114390298642910081277145342526837806559224034795477782760348808494411477144120808060961016890464417570728066696325927133256012477793453710158405494841591990398069500700011825635888426794680962251670167208958159301388297343238243388260497994441077707291262634336823703140655953866324457257203810698449312362303252114229344581957747195128512740913665202423466154835341867665855025625789744403228951484334312614902966009083474135944908700122819575167467580334310568410705184053025566830963088383063129533931572051621682505898911129321232645856126531576229863290580920663007736476582819397924057676512012297588018913870802906679832119653687958273875402713370308198805707900637956734198552260847646858129552252697921377869261857449913851911051432737682492881410523791112237757622619250533231050072982990559542814964944512693338678397031169435439988399840230943745318943500126329702214113132211248200705184788207939168663970212072537903633310490106279932384837147583156727584134409905351313163533774841513070736344741236363246724774449385037712522199519244955219410701151263445554659456576151892743560806435364969450049333564471772725714238615297074804620079048804442206642092358023071077151145849401141785876225128607193768000741039211155337246945433578460898886605274607576396401503207615335537243150728786765737579535949759798961052085780742021448371081511383121570167130294393003816707258909288520817323942380887643610115433291510757095140404494180499227958874248342829142793210487165346457852328718293649276084886745283317311068078263207540864355707584824985514528251575965051319178271082256857839647415917898430220585307677809715432205664172573461276435726898052541994074172898266428101983159813493490784349845596689454344888952737883030878238071727115179881104804738499709800301899772782530655746043791695454494619841228371669277343806810137077787631114497232656263122945416252025575882927402746899824903919265447418749689124552846167925858382196166836854922818041328093207596596714107313376723733958486072173130175248415022010532955423561890836492098479225435128973062161713997469905847940063008764305289510946357678027153359243666992187261943596354658445698604228600060022563900376725150867346670135780502970300439061574839403284395492880575130594995990992589519148087149261350533617007638532891471525569273045415187523669609787707317187224271365331839459871279394685586223190279071123767055581867418871828876921271090037317873866871482521527102871256540073932886382676605487879853802067265383801742279177269796269837285886155904844357817432025401003446814012371871630331459548556671640545143301121564061843890368177476613868917937205092345928890596612651836290539245933264716225986702228673903953458359744244191513339771765015429741057631925726189165763023292658113662569085120050740340208129993738192655519505642120500906249721382379512530651263429458616117152597003824163820072623749762322898063457162113318537823800345975622596696421986696637870020299096446829237610653018485801076725199430003326422490541968187370148884394014883373160006807493993713300744767523220391497402662333602285274797405935137615259799731213547099996343771747388588426121101511152405604773152522960161794716915536135428732438488615023215922402567410311603651004517039548822986447102574895140007553983569434787346575958990049778406003670678224417275731790371296756387585423687056956096625891992839777831020772615848789351198765190111467370018127109969628550912448599969493211591363296764608413278932466472204798325079187235091174969787963844463762970637975994887893005138490628885799008862143315702709884813772314003206323727985004618281920501549578322560740353930837993314374482848293488528689898075099178472128601079088894294027300614613780125432397737410655067441276998792153883388512129741274739290324805554071906784797062044849431444419026736796175459686712472832060200557812435475623835078255542514154989249548655496432365104092310630120464016516536947364311425286602182142265172012809771047185545117761288237554850072411241754971061748850448104363522665228666649285680766722383615665681079238772552836851049922637250568520786905352387351999446013532149435883863624807843638017965037143002579664612010937768287396660083913341539084573400476631247677023487386713942466831611739800578204324126847280108062452915083857070644917148119589984934577099042379622003389610659909498327559628487323381081405946994016960757361795241486592459686131513145997118809357582215306994708509866701177633455117198360024673820631611428650775452851566623085763543083616711650550300688910412407268262089980726589744516089534018391616447872238255590403759735734771711851082468404276777865192412398578063031322684043876847766877833699294854130114212427455100931751493078873932793711669362319179887980620694538426163410133114378270830922672941864023632399896379390815551432693015017754898771072450069068565397464210935795523509908841515606235364959264426681502393316403558976399947686964947517901079463406370438585124969650123361450481334371388751242627228372449716666708856861109537814796438670825323188517444389384542604709145326131910147100829098378292059901983916473127675932295099208742187331720374343387862065446628061417128120290896878948919878943959901894698984562110881452210763580295031074138735384299160255638581464409375411816321092243046736374715834905827910123924869834001791167119917430235734775194198605228570884260098577996468797972998552673840757024445028012028296283970178734377403363062987547103853009673498801424513293423041395150850522969925046896652784364122760035082623907703484520622273646428309339027224595274004778090934468803882544030690045687834957837751330179792691333562602323287802393067623762007754343302012455273992701195741447511671187615640277848130700166778189241537203748227193730871130701240457792919865790916356212066761617327486654592894450009556450160716346136608667938431459519878624231955363435638532514062147791971378825857552369488787534589773336488235616711545041417466256251280459917547595250542099910263718221020670954469068028772483787602777616127153433753612908852513249653396165501079333154451500049440796561560320633937882365614718557909812385234177779680082042027901429696890158571055976096257465041833927359318799793506660095203455754644603889890076945624363659067659528029990596962672432143942388840175409669816568470042613281494442478567242014543467128605135595351084700385866775874913799552067944100279335352918011539941630755290995334938866313580903262125477528020471770712816483533223395096545487762234886236669152138896089583527709086511605431399947513284294628804186366683646777088880884050492881102077203323182009832455211042380454941567573752169552386267942820358214946754306736127916251784699891810052576022412590514830065492788878245643387567574286573029962774935403644757737214007215881251843554836484002109821496899906877883055506175823718670931807391810672933260001376195917400543729089358762502208117668790068822692347944116238952230091170423915069214238379602357978755115919713018778001138214241896241584552277664234541043602373333032753122603419003500694926042113263237209105074827485289140239059041870382998985125938562513304923757954510328256488822989454465179422204900565535406112440410713692605154412562166835993282381264511173691679277290986421501738159641921503251091527140277445258563574525731381162568476160605532799950231157842406014197699982016786778773391581325030401726923352538887112792312886488377628447636017962198931309824389931798056064436450555260856508466790255357359047284729900611472286152807127160306691465747881516151728876341594194553177398635541103838691297908414694418674703975298776400116999272351464746036312946214052464538771946052027565143820951863223404373856791366495195098527532599563060910896977255760191339619373916964768462204856908512307091262228750650062393897754532633042272875934423349756424184565133028324084074899755893652392551423774348192802330949965014338141437316076093673023396245966916375433053010802369168285847469301779605420542570973748026377044221801158272602148006469010434242653044263248865940538385431521841976857061382795112892530676136218617346507905368194989899722391891301894436513838769948009131964790016219685682313004669032638544085859112028700335598004714144100229441412339540415477390237474919675307601195541063449031102482596204964370505324945411418763976005905686591936375911281826024186848703789253944077460432755276854326412473990048790551945099903521361214942676261929849631358681722419934729804645146661086096282324704806570405108250634840873455521330509033547171925249130823666660569615469565027062340010327021288695271074421823134076404566625295826631879047983879674936984957557974679880014523997664358448806631784136131721584767403353862928145277279265249047893445083229364238990480635203534447841522288351662227499787811086838002924150095709573934770858759347189941624244244709024186124839965488150476129913649368899320846725554849069893198180839751246862193213165303457545256530949060495783278874211828958300143965226144230450474043944259532242645215477909614043001779433371783178044308515950758963008015153915366093510282622471134855549506027262633334203370123358631157971507400504591659496070854270620375906744097590290829294388420403317448154791072400819081039835273325805400265754851075893348195029264589104979351543950029068137246406472503435127783000384728414986729380542269002493674262780726675997262416182748086229353412862271075736975779285044133351995140336853149853150368191002267052166408915506041061827643058133325309156143653457669672609567045192645086937877422944425306802851096597014472430903675246230512821858421480425068750501115280361081947606948590087675371183742012868368015924802343717782896301716369225553176504517852040319033311281907500378874862303386119761626890100953688068409313937061742880398610564860798682240038390142408545201362597094934024082926136630600179748154344803691527231003916483284446725025246818859900979016450849670794441677858762755988121439448971525607016576754374895427994713989231422570259300370924040179371653363802291274533346610048112198371192518521602213197030778729343038869107345408140319953710093201952187857562407921731637446948215286265700291901198338729335989443032642041026255130977872959324575078977169366455645730099181269755145671844164352667898737055939553160952427392209398252689782778950755476376778666244474699760273401676318517778294776098389121566842688227104462553717347403605742834674485401776018450138580789893514251415814778531251713712702946144114611172329085790822746878984475006472451675918482470932536724446744863630298489937635057146993956283369385923258311048631436821253454202384880114306177917087139595776132719395519787471091402149714486999856111690856149244113832706458587567135014702274415175328692202871858090027694129210488482637296495572857503213563652264827748437651160958978723833118095561686264523491620116653430438224103006541726424689733937644103825571993340121591587062550311875975871266850565108655883562774152891064568771891446496028585153779369024469743577465802113286299665063419873575310004248805048386495178266946177462396566915290851524960425350140123037060190018222896518226431294632581737130111531046669515631890030667464066276744451652525218905313717921924041731361952809894989820064247053344874909307304396322845793576041043067080732775012213497269903539036320184477665736434861052153141054231462375168883277700700327525756284750227148625128505217994982183405997750654244631359607654171450966336848366237483834137509705990814866925502436482857447678843163580264524849413815898611354088069701028050566923935509769815556816801954235185096926269090252574127752949191589269402896665692235636502613762995307239683561857636379012146591861033692820188989057584177987168992902831593434879478784932538545000996813151286208543235985683938042680872807253230883625230171763378069510255827944409002409183774062680679456109343832016279695372685730638813850886800434968056952929934726405511288513122128007547427092594335867157456221892516826686524043170884101845857207693962226980773191684783152568108316157440598318447555450218876700759048716525589833321705259822631243304240413521570804921403607238856464641179669362564641108376756378960495205989744531212796365253315477635458439430427204333380008055289391504640656949076393029951797806645777985780392964165747944843267425024390436323274049795219284703846887930530687530171070873271368228751964783772708147709226888378315712256599151690611003685748783227507025634984018900423586735299848538354539367142771863802557828976539938311314123224250853268892773123016362761599405044310894975925416340637988825126187225619635791237851228860946370298374444248893492537205916204914155862495906969222151981907435408964889864197997969080713520150101080216469226944075093527587453400308152308993799125007688402638313221761116166424004221373800106908216997118250863996534362814319675407198080491818652683911045713993039289566985149914200012980217434779162899250270008838849070427960850350577052456319283639364189898671623119453302076124512813145923588353843631373638669731612109374814042522431294357972918314503371071182205264070047639818802059272668706082167594356293868206021244343424702831355581088589254756129249358287213434408401088724068898508529780853963196828854354969386844013906657793298634227774511979491122578729785277830259107394581385476561367356752815342058008496553525255573656013992363751389791886877621181029766814610185316887328359239704339594024484212806179637445714382085234876373231841989912271440633933762319329059462249826348883931095343306992592507917914116778292779342321167363302723803250900620023900403252922896844281071003770354928966252406910505040095670945644534351966300737410352452572202985832585704711349185313719365098850256395088547930463528842799358851401507565957768796521116505443792411523055065207583859250676119078762784333334385018714965046396929459566862399638120837803415085042472366301683462473281789311070628967372551827429239724512038392067324374375572509584519255871155111574904901523582590234102045272990058115247801154123117759787660871732637190649339188862082850459878567837054699972705554079056524005966085304917123007354228957899743578291769358658016790802753903836697917304818610340308138197780475707282176980515204888517609735902304551467693202449692522534370711815553311856286578848978507808201676876442993890223316833243783389677556188760368751671182321391584662265231157052310806219331627082617771568251355120700195932131389514665524441884782169387696468009606686727687092254542983164721110039544783060724475839843031903914176807522018962939250254170828254086401104612979427281128546070996765376164656529316692615149333407210025588753875387773376994523030504477581779187223122025346212793717809250872104509700265190440514968692565983331321074369241687777268106731342624735291123602315550963952799478086107031109563001547365320412334791716192722343875785432668319828907680934856849561270578986869686024338076214914768852494012838308309633864396933778626568479007795304316191474868079855655597932032351862333611516535369964216875918930621687012310665946016772199340665559145944344493356836679962652692530617144071887530695096398799397387004603410447746585738176387305576362913587597056485190423434529197506982033924919734719535167493622627722057481166543938351960440769258437400464964312639778672026847772942407733174262755162709932033876877830449688577063717482585157596966057073119542699776201214448727905831102794401616214719576762435091633039649424146373863691908667892545899527501449756847015072153274070716059820037061151708641743401899971789532670457474348561105725286321599200681859481727532682848690877081223246731156889244964631218619390814211285258821217972671134313327541530914270231825184600595791209296661259516402040570978519221407996784682956160960391148366236741623899217897374006727936779524231505182840342654203322737454810550901539872516027036714840283687822087137076157740082774029808652531722875446006887607609743820214356664700611776668642937262730722196253616677716089732569714249811403125217704767728816818575140691812517094177809333979788310069370515084722573862611161319455170189030030440367431913797721657521420354492501887577104583871032333626113717482041156527669069879472525671723077565984150773346093700720343315438982024958459066976727895036682119337864572988009408990688972623280282048485656513169941623410957904258622746771158441873028475998217453209936854732460023517610819414969028592448155515214547384061721064317972522400051580052378544262265545731378198448529466518947871990258140753308451250962668466169669491325158465739564288228751095670042092351952051074916461327275719330339531197764147138705291204351986788107944258717539274728105706163784669414857358924103583506997416435283023121690552487699026117979692886453412254621356659711240336592226499845334841404447305579782182582148983398456021682952860051343069647032250160537283333189374631983327920733938966971747035215202763699071772641318916863608454391048528394886992474352098075333414110413530706850817951573247842353769326432836105019970814384332301949053899157642679694842950170794858420163191036554481497448052554890168329341774857468672095759369247137295992672522331601591330785538043722438236131899015720828211536783628103670412766722409220380720497771911965177985592939247008027150825693694400875074967247483020610658145592449288986782137825039802259092392494500507405631656202343406887325886024326037246744344685475426466591332771724244963678429279694249671298269365043455492397497612832013882046908314801621157817391001105846926116042328893894249105060068777710525101387270446229656584046879260016539554606533450276218607616204740563867131664309089127056762390388118807557445086600425866109926439230288437595876931935645874198279386792730363066690766488564537357854417528587055240598507768771368594346974786487515699437313027174576808729196018732044918246901489428474297327341653573927879293869348860013343365360290803254442867603798439717472801593823912360862193196605683093172620797240159711416477192244423159571981147610669012621960775635634972817810780124556360765870391836844573453555412724433855764051782166908354245435809234976971519089590892126676728087834642929113596158921807192786957639688929596316326489049691759626476901482919052472061306969501993513280001854323772936249903604002825359560548917313727335102715072380545023247003009607792167470128447295385975485612272602976059139823241155226441615916964127594564228806908392511139205526968806541852788647033274356043689401808738674539316837323649229764827281036909344034898543536088308878966966484052037170611708540683644962779157276281364819239880922764479571647614130280053647597741998992471111649320878990765634327648792015398060536554294096601670453541546171444277001333334211619661917352677785554888234738684331622308258494315227796901584066986651722513032141133899033469564789050687397197149195191099064648146526343175643174704920179069678054066343049144222277008751669177556353851960348005939114761790065894697680685112998758474203794520514232795802329935233743221712038049094065572839347702818881620274799169305160234773524548848318417470570952550411669957975967328877648053390184054967120540071375165712875518190612016827213833879707431061175938931070830832502967068444653607400907334044420293878431069080717160682201753258312099942852197641798893759530956039704061006139011387188240507456734419798279009547037535505079889379133308074622305991725964965179515330336606876132862398076504546303946292910338425153307214159208267627541424144678988489571641581061049511185134098589082249312591971377543949515273781074368311883713715781764514540609006971637162110388851831395963577808478355637730339913707265326601520569315608552243681038506377040428182135096974261350888195903170915094411016246427454453193233683190460592672838024373621696493783209529539105079854712661937576669699543847181411477604424997090163366639870281234469781624417632658856669931407249900002187799379079061880223871615810116779390819515377774068952259930709500117552172604735025671293642933238710759692233372789670812264598736265307847393765635704317095396618845393688571279598252798048900224434967432791528789274365866485843806298643952054280061118249806710716016502082822850261533519481946007991415693723885665469253373463093497172982249332382029336097582753106617213327730931462881824279800696303510364019861638242894930468529374298258225101513514816444160925576852200934075181692630876597049593258618473174713773341485570306649762058161548161231074530038175310022405381881406870782967421244969106794707502591168070354934721670318932334805500606400931722644443883826279809218357692561421277765312223240464175887608972484097297810760644997641006287022316998009319325863255611131250322831824725590517563804030410197146053898942446100534759684854170752120372844060478646567938884378858260939282808617654779515775756274513903332241722744188308446736987308393534416216318751896098235560029076940204697699010933346470676432607820437346333906478664972363835452713626434921828351341912278519632178043775973230351195514883524370169461377406844433479322488283979193862780756098172225368918640224485852177836912001691051045095614505011083702708974060170013739205089363797153130002811763161470392131046484738207140476241492367347186768266601693810691158444166160305734884566976232878922334404913722176179553816524656475978771982063095660862640348306440629011658027867948959740232151526578696520017779782344715327062497235323427394614740023523037873804558475919647192025729838600432651829872854570283597883074572144503277114246250522927798804485054173079032634249087276606798857118921423745044854087741685477004635884767759806401159518936807701853358572985483751033925567860184074459481762838714857037837964558867779221784528843322155025838994844128288576839477449353564633518828259194178632742145663007886654449630699096375761850295356045293754281242094234135953257948621497827169860059065632394551632188530287686420579889717709007204958323914565839994463092351823809573676715982059751113687218108297331674404532617428735368190022113156336694904039503592553242127643959467940018674434997419677923643401931279156568481477837129969271337966386702754461141466856800598485591055575448397270887916302182108354352691885827245090199633033077815670114700092442258469871210842581209023152973954393970351395257002983100222317364734196767789211838126009447666359337673103653018046957441437090803704565745307660962065958263579211879483398303944546372815432966998874926782241014672224379314644715261225376838362691625825414736231060424182219334775075958769237005093468294101581146281487552090260815311046639254608974680381929775300912534172206167374923824131260797542913083860766293284323138377111356380665181499298134305330115604051595115043935507034918001877083752300569550325006714258474893572499734206377940778280122015930409262255815562688681416550560670958953581152323671107484831348066571920661207151606961534753624357162573160353322266822698513550589921417308493149812058907161927902901748440863278008321318559524973578210889245526596325124034701179578411936035774089848695565287473573154554940825208726816219852524994564618792661980940162257321715852062438516716692202231944533131809439212840005035219873506585888869924133266336407961232076638674687784087857483759227200892221649973693791023923561691098050238632758321260587925022552196557717594456982179350653701831463522006825396206596671150123267189497557304314787542901063151022685768139996707826201712578110256156204217071469208605741139373314363794194624809062064893361155608636961206773842129348307410301529888168121649400740662620255211668316974530874138660156454191401832332134164096646878200552723328006525720115340673623412926593094084650890226616709109453830530383267280175853023189414802116783228822640200658520534488122558934367313856471175022602117794376836661508576923276922393423390429760086868246606708836867457387703238602386002486822813588333726497826081815881845756832053814579930206312174196737235087283093459618943245928215596346624775441596834227901951131148477890339872600388914756815632737980838278988886831815838932294878758619996570124247726155454716560932092581572413803395572564265827518775170273772623214985805678028175711006113149750188444593727219387234282369747507742744841715735814257591642727501830497338560982332853811986672254993783238112411763790724419857805097560971178350005598403790614109074988820931896238374484827384907106408677946368703735771724008209057020447157123835090498201233185381333399261099123204044757564827749857430478225201900379894321864046373085920236882723735494124773512399354778785204038753150870655153591407433977790517768994265690782436651158458434229690494774777660335795633835137855378487645101082245757557666110554208027193648947408055501264809284818991066236733634280536973451666966527170129185766169332646734377570474170029709655138262677165447547327281455468974530540940252311739653059968306730713965781502228026014638196197988008822871376420980211351258383852702842891611491851002574605612865316183306492573535032633651493828899149533214135524818154440695789390853541538810877062999784392444895351195129573360970308681388748908089432359371106339653402370303844101060987618752671993907418317594992180914856946999446779500769831545013192241207858221648925541606677606703225420784296769107551067575422061143371084228994840562261048993995753829659979356438008211061818566758239291446211371569105389459676148576982502230121614409666152889321077726263864517840407967363060504665231687885834634194088860202421255360659967154489139217626609131928208350573209772014202039968793002773439406194137126743386767484943176445778586016640289095134172205220621285115805724762160099982669623785922711053398624809961942724812692487379449923669064332811184313877904590119033639989299942556901691959255581563550368238666475550266459192159849028432244423777707698202748208289386826705619041746817343416206568613526069203801705523991545917464476961825512650936529797421891780471094415455029538239914858441557569353340007192735014776385237628255465899296309742846970802110725618907414494573212899605694248706245750228916331694993328814324892303892552281914994486610923713406832284131578168725269621519260345633493550993872243696205432004469292092125464161629327898407892154306527838670316948470419293153785202023436206539245979508740287834392284948315025426900839342376279005784641671089745141137922610055910186442972357783709822050628025000570163380196062226933657997911480390234392301291962285380474386121017304561049479779257685243856764900005043043667202851162878309030418343913620948410780597992417506066768583071972320548160340610059957890776692189122827921295671337764993948795058669945431297533153042399915347168096479035806546091302804544865576585085553379672135712753693066551700000104473330850997530349594733631223490976604165975531318062900388024280528795437193304636971268793869240150848192393018518581292593016631065709247079783417498992527017965234666584180733862222583663815691775003360806159520031563516339668807385550622817252728488544997560132435120722166724802640811770001075441241844097003867013610532468276344724505578600745571158138130470029947175925843748359020226307203423663101956485495639161725684620308253335079722061702775529570858336084977734658373788529499182502517595034466474891846533353359182630466156528215746423973931035775787270372498978555667037619254770102754158541517081185330330118583173310960088857115347567919397792795956602587923199350157655829255250808987522540016102392270126339357043862552818699074755753926736780101499488688397407534229428876513082063480746845421910759468030736782405137697105408969681368892524009567611760643438716757772055889862247851474295944706642269780473679465717160327309093368249422429521453895900581525141889708358563375136620047107215653418762603371643599802504093337136120555395637013558871135674668752036864971309280468238572216603027830082198898220438414283846480095378105939195680356148654997213894733593318192121433247062230379620695483011994179371327266839822397528136127795743357591545515645536602845551788030017493832561089939700474487472987906730362398499628030463433302553597090111801141538283492031889825149609052817610115088166524128058444898567358301812737827066954926329157359628391422098372089272380790239359521855341626375266288164983671924459639065782662231479607353464970898293729475282495653242942712306323553539075200425099322019451051323595357364680721350452753220662932833218958243713847473171060607789791789956791447737323488518453873260052243554498510114011981090878906195444984815900270893753327480310527831910520245709170182171988930204277777887091009413821361227792521735881247292233070795455403370345743328529943273879182215865380883677709553875943467275681582066871828213838215960680662644327290307131277995963575080200577257121288215119498958241897163641093759225267772978892865623489199993392988819575040350610691801401468447030164865236413865897452382247574746384460073050030157142804744514500493496629569824171734267902271930357896652244506964898746456387115884544430842197136639498659890798325282423900075758932848594097122576244111851535388083527080185492267639260222858259984526771127121780843134115215445626056103610918623543325700851888732523796607210469143083368652477386986811516650186248514791570038429586206813806467212719865389891143149118558795302199632547745828489242951287946853380651911465374264751072611453609624606786644045001623017002293981006627082466870647989077150743948645452449800874023946364599778041896257983269395889766194199167594290609949523112683188451623654603879523278027665809414872054263873903404433229353785855167437382561542608510549110189862528415642246045784742793774862293606063884775470014289329930439789796335091323139305186504977914489455134959004436420023770263988754407174205257330008154374116927059677269254610600990265991728791671301188902853366561920295701465836725303019059867320004077278967104841000797063627841784967733558967894117565756908143245368060566669883652086484063042433695219174394396480200262287378459788219211856600049336183625430325355539700079224066756923395694234442230836528743557287141324403692629211656258519454198318307828571508917068704662321004490013832887932060175822581588284248323162333531123927093992787066667522592408139068917844209556705351443487554650065038323891195499321627602039181751011085389121961887836160668200731617020588199054473634418525757295757270627085189859835569607753354754250998100810864184197452795072086748808314720846236775941361264189048251516578821302279344119950375428494338659364290873091235988529627833345558263204248673322878388216710338358345213698443478970412888210211239896614729362678880412977480098336270762741567631460701149961081043051879307195205467571340487628233800615155012929903160934595914318195782770434418047433907838122326813512523051442014138540938928157482257113563846749366719975663570695049767284145074605964991181117994942780950319308001434980152672273359350151384820974873659627142586087675644689966030570054896615794517070829039786808290756194935349209992390981087270407755298711970020884074544311250357034419962677374355461864127893313607390712505957240060681940735335733929098977350482804639541715030123805617510948178461021218290830675175057879399895776953797316920319352800043679977839943338337975569396526432047955312923173738578807269094868893871740706059124467272381834936487225015478615629381749092411064627711956876889911178348001664882450292325674952968912849592324774622764753987934853685701811706500416532965217516353478261025121334772409145347394488073946483010377202327519516414715881970232905228048978944645556495229382374345257956310342783408135548633069386114743407129203395693405243212541320515281520984967758060427300219262778043117389738217519593542033148682379076003063060972112751927357399425461204738186336951429892930136481350455678163263124451209988704086986919085718569839452722268624322727469396600279230488576404285890329623995845180710956019665374992400854940982851207731248549371786742946738443297685058722332489009388461401021464985349077011488110320702376186306272608728158038135695487709291212408211639093290271540737220097694378825612320428029443948100983205190802479347360448440329916813285620218252038808873235040195035557028523564269177458235038175280591997593083689990468855482108670660381993447269232540882252047224137350177163338543277636150289499796460517214534575766508195230874305054620976752562016969852356192067197223809018987177195720669325243609238673165427829339697088525350863574337578809057298740217713830362887083634195799146136185445611277935111755197393621120484650905472066207984298445255638255192002981198164566085493871473473741701583413105668434146707487619386601923066522313929995420030396886313955416590303416037173327799348709078316232549872088399768885730545534247906046481870351403610633950369436232938768891561479064527986850206891510949083345660032318242321270735059313250381915896898878442179439010076553568161331312377565556899066150600078480780172204909518682705359136459956131423803153480485953920613488552661400240503337183157836141503904133611115261302638274101949421378383238592250779976264601839853713005153789580982130818139908873554982570408094256747367891914523298372472919700088565733554631911726294536889904501196596433490355146755777677547340784374003933472063144850808164406926123448226544042300684012764316224487416858044118273071351253488575091236267870114373551130015006522609738581589730441899136225997282278851549839546835482612176670975813352720258134231824679552123823750490695852693122397936988616846881579152796256830019144318574740730439013104751923632682954629547064258730030549840538917373232269688305302101689575904039750125174691054832246424889217502404039408033630296169346381871205149469931584865146101999425328419282790542120898059666242003571130217510494005560606293531263265172993552003592530001485066600180638716395773909180555296687718663808253388375432369374995183110906606606567261997474667808031429935277556976831107795388878138477575020509396652427252087505716719615879795273343323125752416883618767506718604488601334405494767052669668458820346068781331340202420193803619316329650872099538750811808099728110230774853660849321941647643121995248144979574299317631713175501134644088301466351042445913384881842172142039587731540525481770594392126955216837615860069340481056493043049850617311093616931434279618080946594409502736985570464480430036831595654211653980805546600560567761128243659962142487109371845852603050178033542864943820958788189249658010403511535907414067975002115793850612573606823500601566979666026307935334515400418108796896374234487359444036130313875742174022570781312747022751948211031683288521530257665316360282079437805296951363428979099675590259504539022388531547437148566820848357718848814275541208647587253797021115011900726014612909325958059628966084158875937275379359812785030970079711966142579898074268222272179793395204153729107847074310989818624755490179340535003497533978757663713712594495965539556821051374700020077344204403682659795335700101396369902871243662906406901552252963145049400122038941603657788445963150317322479919177438008488467190788453190884040560558573820397774508884315128938479906291943584765309265341739817517748048870612030064058253866280710992329410207552479665379686605799171246265847592472517727441075702955136104219996130985380272868272989047340326713991089335931349104253497799641422714204682514806206519071908718111077338297396269843448251393965343176924250698390833829770968780666145449085924526522560398532980594489167663126290382438441510077749077043709999791951136165122255022121560394903238620515939278549967007713503812655847218510233318177020426938673280665889264719868151568197369191063931097811177002343178053084809347215364659158579537656316208590122768983479352808567956203552482164477878280934108140585637601736641828100621364815910213110021592875768403820697218410383218370363360008005075727392180731998726093895507586284596245568446078952441305889339976747658491317319678166157397379741425737549857545074606790326349154115287114728787220228466692807701489339132807071750725493910413384116143859644709300781997945350044984593665195515274571510418197988210404265791839171695975610930306504574935217149679425417937958593605858922937181284822374268244196024676802497593124475849580204917289873086684538537552397268941558048747578884855937046550841242246981682481338494951468526211684626952866767824893869316681318089793795004600353895276078224781997634021352501551014912968786954724960098699460925911464413529339421742976936919918350920813705893156979968733068799384478554529187455295318002832430816830354239656126439150510212734661373792357219627826735558481854377982668930149316193765675914758979020979230720698126266384595429307402907560805520758603116272599097675128611091180591689572764531097504086816771057683232445521052438721470647018455878111743174798230861003547254602809494154211715759191308169568073756076048263693335168200501052606674042357460971082545817309103721553004449469789909814760949838739399926581401417737936299271210048093081939621318563089865273861035632441501853159719072080403594964905388534067817864667717503512717043162985600045290813907158370095919457578671447050517688771345394441840764137890231904860735438556263651071865494969276978529073885569982947336361647336617099988112655377751252107702237369674759225618097600244723741501414277781412496082246491444869250502609654539141348076626551422904788492816890177995054444337946950690964114585028077165977779039313468454561785877576740836749893272583032284577893891742746218525001766626951894416298090694472634138752192826067573767870275832814134480676000542673116383769828616081322769210264659572721296125223917140708946934849113081656819341738307664455000161877154342235755854970483395490337397422374326709216398271726967660055970722681439813481152302014461640146707294926046982573968792365745514696783345414069689791001559291884626523714558212363974596865771856315703495390787340489378276668882438671293017587370721451753445557400666492902180387120623772503481284816015016832130356092126611498120621609001460246841123233578519673392645018788540682895643147200848889598437234442500479321657948690641757818973102701160547298464243383932976406546122874131796637621386389902116400855810006839807828049901378678576279089875357422993611691232081552173591370676869729006142687117760751899019682644051124168830434113200351193824735987419532735744526990295661749828798065728005471976589050494843833598530410108947063241435558687087498356574468259408528748828084254456546389225800973201464272383962481120418424781350420436985171671451347228033480865852776991981363696836689974550598105615645047563254217941397795450419420854928529862594215377179845598704531267370703712287176647899700367905777025096374487882708511613426197078772452040362298307911590705559676172808598203730893557266758724377364607644311200821775530320304911095929875645569043139357274105005132589640881080779850675328207461578555319096149552425665158182403086426751552196323687605954254041329886899510289432115131786202220189181616146383098347614335031145597257842985139216688473217148507041004908876671043315937083494405635869900447258585515017630335227666800210824919632157564179398827883553246291160421703920042495782066582202175900907313466302592547574937060276831922085717387691178145703536135766797846364341887214778097273803929576872187879654206306168079530395646750351999526074073389675638804418884100662057407406264304611283117467084242624447162125619765938540190159314824477187547143686038687558227500336519886709637530933178779396201640665995194462527404966035652298555137889980878613958374975834584750195267591017296064106926165876443617906715085905534397612014173989645873352582035127821381214138490328677612541781836957683457661552058973901274530542717256653134250648304631657781086614487384778897236247406176833796760148979485056381781566385769882714091342237224949353253339577598532798361394394547180626931747436446327630453892321595003690943552023421072090331274116567345110841340723139711936847715149379935804304272648137903331237759244499596240502600462073992768932782045191830476180778651678278299855420979264652272118500125577459029673199418620205051216697432911030162001797628511084164430889279038784819822465335561923730677326936855975855049216037036206297703152055699321557076713189018539012387790493589626023661823408738786210975213779760107923328987769095926053234755011220278744668932781467349102130850556483832317027383342872884070198264342694203697850067948506205909480564619331030610223430820550229103193514224986794578256963523449107514925327800005694250187047715780178139519741996971366238558262060284368576631902302086259549279137423062940638118360835715233401690785045185631131901805139831043051898937760067150737958510262965632909623619688412090084539498823489178586724989293909891832432043349196735036480867862546526221227820266922485368878351199668616610196882573000188799377475285645953242490118228889195220641977807255928055334830285810347492054409455204139510699115083864341870870937966957817565154885412178808962465367665182512215638091294549985392644679064218045439438191401926457632555160014836573907712546625967773999526085107159957557197788403853304205233462410065778473047807742876770800257586894096553646714741095291548616816497674275536220522398661909461120293716280063105479549563102548708434618897405184682947611476055853946350004842357578219761313526164060779782194198584681192448588477856285191054864216757555459138446475352774419971869406844753854551112301938369464684231182834287687641964451865256865199523949259422037601863516182590369334055201935100670161744369420094309985033788524774511828592983276825452103939862754677227205609405264044881503704065932409166007028454576253044030665230021889988127231926322874081533221116279729669802509691602369486628353244063129587966352979825440853271732327872538433635614255475456143833443187907773696092731289687942414291798911552660205745885793289197259841123480002745440722304512146176274761582914420750515267153744871759846807236588346726581435686620049750013562588102113486151312945735779415672712836173253092961797852379679925833399411623615222473795247870094250535687316318583857027657865088369872047322767927582597060148234398957787447489494771713726034783401533178525209474177535708879413726760901508554573627405660179363062185025679262674411189881315529571394585480819497954518874287111040198820952265502193207354990467933025400691092670603440102756418118516695861021525060973762477335870831868590661809141162744479368306286840328488743834526582566049680775655415337133506062908582782402758110270352748107412451509193710701230365177011533096779936523078321836500736550883740119874069052879348125091690401246699595344156611410285464089303909187549809747359854321953358675116802557319844853593918829128107407917205176895843451996231404331186502645850619788450826479850535959540556467678605376092204160717682480635360247616290983768801412620413672391536729025272088115850953029844197001677382711704841727308428926952462034223513566515011870686760376716177971795314697281054081522760284706049964366814745900777257417902901121622599242722663189413213139621115246193156518493894574501425850651492648024142015535055261699505742391161649366277084715448700728746924713313964799509774718089963333826303848831131736140347070528230928689808919736331998451272051496528456212383154976673428553741694103125833608097808310296094985185885606113160326994370361971081038113479906220138994910370867935988473769048354160050590251854948173953351045878188508370275656471662391116413472218517054397636298541013527361129130290693909520546981659685224348028223628084052151914597894000017639673897705590486868588970856660361142077535522049487456297424318535606906394447657796731665017161696701272201236765867910577607432990179538386139485482608768290513125307313089486977406604172396783125652091476676232212526647104279192733933833853689898845551776848334840670146224481106048755516097154419568765492185978994500658748000920618680009883337126808591005856239357654440649195629544360746472815872640021313561485742336532463217963817560098427923244073155617874897119460991676966292808157758683682325524365215901614905640582421170802567980684697607591378404763200326878782747584423126399678821590399943052479980927787490211999481974873799043731403278131737847714064289429107685663310752836571040886799862100576624723966953413655932544578761888945219186933863017340400410097903293387906948403418621878566726781864819707194008677275584867375942154744589422506819335783757489122905986237288570134720368686809502502296765004449009060699310485872456215485049569417265753882479976791372184569075638762516682781627036121408621166802336473342293679708755337283222507055090764371606926742614951321824734102770220912476198201735021749411620767208034294332161387596715091889290975524336195466407785769308961867778572061010913575258904065757654749705104706688204671622324814753737229965263672383675939114933477464121888684441521015237649611692122347423566082358758339925577817856626840506385294708565807403524460118626830069452582652932457207508306611318168516563203873315649591875814695334812198054593898089781498687852943248553833771034709747500814068935542022983861762881601779440152961938016974273316872860955292338354079808344936985180420205829483657395372240219586371666678209082478534453334477458719777111238031123639918426679543361527589349360837295738027121447567977360775867235632215922738765704667290878283805736562461925875322790139827730572854064805280481744756618108678237100061372780645126565807256264145822378165113778450812728527464111111449547477920091081551610584564844396114959331602660904626275336663429949313009492784725797528392277345135702935773612301241691433125619575315424951774814534639916127100285675634465273336263980791711866646829369704953290335014059500786721503230084719149522266727417196384837620324383770431365185581727605483701948610209146464817602232347959915167315362922874371154022556853725509277687293982485824349364385605796619020124632427895872389238224329295991360971798281487943871456786708520907909652800192469103148428579927642192838981566156031519361540503464614293663504287168478340504764640119678850199809934064697320627775649251295195350581730454310645428294917017070986880726703960707317146769344261614710166060234567711098865220046684968332856750884299036955752826423801496825846015953867149881170729418876043592947500320628229875284611142180049450315826845137849477015402011195850920987018147703905218203392453839757001515175848646331795748102142918425561449487888569229379873579741219644056211878358680032618862192614784645741302182933343857325669149476519476234016103127170357127900108846027179787847491040193658714717406735945272331092970009089339417993413082194431553574897643590445860769189911037496507217871715217492498653156602974154126264620485440601666695229852277032997065364527256087985086025156252498578005838663403166179348215593438460215752096550623640382768317706148379513914188015271116739375936026962234844492596393684295026148036466216701468898817270269772701499206781660750267512061360096027637922446309385567121048669093565135682338006326681023580096402622367468031562246434175950178611349386768986975592280926821371383104793065883175790753126282285067292022077872702401080864941783931504239045249223486626406897708410910741872233082272508783640472090111091463853761311023430173129697353715022833300708529784068659123308458404214452843691966527860528475584736262208125525059137905368962028276944727586332626166789702068135255271742387942433960216231880735440398266218215150641449173228946342582655160668461918692741722765417620794762985972188499600420955342566409661829439081521889317930012954043217722404680105448057302117837415644933867770568671504913335262326646230495434234416749775240074172815855850417072979470029371236836588383456728852965125085443074927595856039712310069136540526547762035797667132899161714773169714972471158539988610908897787235727069147151132309822920138871018721097173758734716185504283010253058927036569565677426720555835916444612946506057660112200801638481425365270317376826642116031739828306896815231893517552174619476046691741445751528800736027405939786366769347730968658641413966786124067969952957739118930921358799904777172617035510987515915774775788830222045971917570522338419203885305435714214428321215483128020379408880024333881561500961961864304094090227581638814621521339129247082997125379596615034126483546058477742285401400559459912465543268420484389031163470018932871466239593461408978992762521801489457120039724005492892064795328243629792518810409426856031768461079725143969697464713011920906125090761113778410484246187368009737821463256540042734793173135999618097575805932283887969010323114992921532291317506557572955183673791731358847180364209348417467223121007198694382601844089293136491149466048100456084978099579623357757679801664054716846965404632308136815381450115348636010971345962457324664919445993559101969838557081854983766274679310462562437036284103602176035990414998922681943573644666801661386472913040213308864100594506099279216247187751140694622794396964955993935285352649449113541675397096638619581034166473947759935536065909948264468807729535855793389372078394596366489354773849681271747155247056038620940081097265467181147224931280582243517017491823191706444859718797388299775025429858718130634726947699987652161470579789747262246104099575988177876269845714892592824480142535185066934326233721523962843918820749779387847141503547294413523758282875055781190753115956777818403398507206710936029896360571113955268592281921356531522521449606977081790834691169144428380753063950052284071375743520807347362479006744008276304320910633066794871059880849561959487742857123281233276644273830364461393477524322501956329917803187513578251751630138125257132365528146378502910131841794041338780570370685749971011873555464819657285715747070749999700408938046506604851286065533901715562680672365536851832722922695828915990222079513665266548870916314991217481674560038960301114976649195550432888426813982962458568447774049726759577417067890160886772763400179203094585013871061918238968750196999059581580231844752650467830365071162042218971322549975230486557151956890855394217705189384178517485215816072841519180851353973309437795783405880642287565899476684068727046150035619581266870649072310805442175549167979469169534113915920222190298493625146513002087970330905257679233908755450421819628187219629030500003914193817760764801842148547066428875506014964593557674614961365927434962971401569422801392553789293606736634138707310968712591058951395616319731667247780735022389586922799310093346020471753612356171263493936070771334154721293823036399514278818534140576724091518192523037118404657422954901993701810227691572027384515369595485722613516369789053261540641801405473372225075492108273979608779552718828789748557689257192097169860125725888352250408871131209510587352903686680874054105100135127869263442909318975713692822847293960809351965627272703362174027710430524081710079129591857518206231921482484901115782120337218644886080252852807707363708139342374922227466843346211319205154015375025667575369566228726996608185671748378166788029891591264489697181537285271155340356368840448600784053768360309726101171490296434009422399447355033350323124472778116404050216981298392090955167674518892138582788184219253404873538554108479483926416538046810470563412892332913314107507983344609101015656368179156946674422502768559766585010266751725868396402026144317593699290275523470201393866423037216790158731620619051538658043058298290073552256268280812287806527202834803904490319154676105618027411554411016824477421666207445600062988017986889605595151770196105210800503395774273300202211273465181471699137828238290139567684664283026861581590588457017513018454634918920915167595299876810173251255954332683460291934395140309056145220664962299419094206324991158992233021270481531700102879409213116063732261757374772735957429376082529790087711345602199195750943959217307333550602587150215736742236693994297537351794172806719714946271201476921079623833732936028616646947548297250334796159485573171406294195448187148082255554039747616169342423087119443734356117023708337488333673157319084349420053472528764854703826193158394757809541699403416284011812078998616359446107169458626315886381425139807156246643667899940993379474090948714327803473321608568019309500843710913691171594221194708254261120141779957333099052518541617975636410317085038159668212814879399301631862509815857218974297552594083020477121250953306924913377402151021068502632348244491904969946918054363117517148383363471449689246731279578918545134233351869781208395693569666523373163089282441913476375171877394354488982476388345420931146866665233818971133931317900038119885790726050480255508536096510215760015790963133207432308093661384104540800800719770555940244607264497289094287644446875565835893365488830801010880016727164272870639480026506723546457755716801487417066590419801690095074221087009720539603716958173010556242154112658610756917767020720361525913509439979528040462147347606921485450731934650096865454823817784441565564749916369052473521005494099554002920004787800111006657650949773496811329097436343560708848470317122939282992125036014824057251413777897399293754808369141791325416180475065673281283801441549527050015221557421573926336692321646762903944263952058505365712231518088678264522227379309869412403525125368747295555589407498165996053822645047522265093969158703148212287109931592096416477602825462500630247118121325768820302035074087844664562158702166524830450272243114407786952324494571556812767922267776590394350775379555900388118409251255906229298186133709847318136675000658420159554201299059332105199770947785414253893021569180088216193802746958956536723112843731695275521282367812458243543037621576744207006109052670878660321889180365844764337902560314545600514566447411877513565177781255344378219362657485667117795426893270277523228710114468744254051302432221370206071682951587085388891845878935353439254442293248651977870633660967355570356766657521512847306388766876843552563636424355775461932147127062648281270859859592015554539083143160463438649952387782998770200189927591252838604302508909664383139389666167176672090159529864876005050903189806127887094236133320903832604059035461631583076586724894592679032833439987184339794782599640708826926594077773698992260580227500351552003332569299681872494528537556293414045318532466063158403253656970691471529000959925466677054559247111089936615749398420049784356935491696906445810881037891224344982982669283440805334080433116206598155439575754273753269092568391510315095256803908792847225610220217803904807433780230353639862167957403092876501062858752598723135493187189549000585813871412022889019977652492473816083967871341054960278501432270207393698202659898801997516813408801732299594037968679286215241245841514939780281856103173275632964824562569830363437903385758268896621474928045773770408625900449955795384444495625885026640421537983155366946740229984891111852157242634777515054489451797213815296867132622044292304941454644743579592634362206254401820281125334942918759676396224410033749002671611781066287706406800250223014538303760032932353215535389162896823862956754937143642937083492708638889314887292563094419770572561128958771182855405467965567192456449512415857099493080080650175678314817172020801474468275674732846643417130758024579235892558847149271664992016840458429378268903590646711145310739450229066039362465627243633212632374021933599089915314995520002853942639820734620982246050643099252051866235177545930653533587752613826563877406545024916065910186640225304076253388440734412120536345588410072639087492411005176617874910944625323278361723275139579414966907727258063175783319124763900285152043185078746700835269165994194808167745401896699016218032822519694459101258401618529055487071366427483042766477976792339155960604248001193492892135721398594191457228879715495068884355817747379407962829975684348776985227934258956578302134159798917887545454345626100015610708455211268412314097951106673223162155795506409953664959003729271495137180859127613720300654574876700069948969213303050283925794078934694075468182639614588740974319366823878077683004101712739238791447324130685860389503880922141030687620584771101475347861139061680582453229621013110995999480340078224361987441869708298819683832455903170821373986574534262504567643335464239548808356451501404250963268416836130713642362109826251152486076047534096700200496584087565090930406222603451188978608061615023659932138431909546130452138095908301876056704315784820720528640069690244866224362983756281606790674520272101340037867729102347598029920731719467298219674287033926450792288507801549518469548374433268404241154059030538225877979392770669502444246495274493951049824500213708958467598518112439647206465994291633559718550233318336643211468261560037610747297221394850654255425044620771394656504281438120500228588093284916857419443940944374341151970365671193349128714766783458430378451374152011867479691385150634662204632694709878695418286741197471325157245876776532774299810765366468259532093804068493754418819149040167073766930851228723085425907270275408203202704806352161667945099161226193535348157492909341081076095694695766118308565506776558189341441532074553073744800559204476450087936829109201268590063967174059079008302936782051146362215584696456990698893986112437981408406177253842239895553950712236986343897587049742200898095791380259365420257416085896465126301167039012238625718930497050256961025981268782031318054376006433488760212151009849336959608470777549022528562756421476078934644029387739650257817703804868222269957971586531486396320287568817023168752881395866838927354995873162683981580222794489790767488694733967849520194622397691244182309324687616613715619039030028625195018010336610145489283946165705626592146126468711763523278857365642976419051419306368336131427774315012589311220181181232322346974511909336200768277827802211923702300982821483392581312200218061633408171407978031712635355484892969332451566439343536473998577090686489368028143246743675142483477457174388636399665964792572490151786508744428921775948277352629797809923231356071893889363118815566549120003158288738827127603046341916587387702833040013833905968946117940174944286725547198737736809032461965661431854241465600207533461144199793520304072952132857346810456310438656508135554753928235341746386184270560302527701842109793800319121462910950858771827355039680178549518689984454840255393207693964994890620530269539581281831318464632104057597610849946564715780904590546094225080942524137276964707458727986348812158002663966206271720779892550941998878477593211164045870806851285766578383052806217466781093165409651739423162684411606374247507781843932455223745552902168935232941010592593986492930197701624315638197535514406705019152368821969628133032102316923984955654052793659436965836122186650936495478049116413589523488208037192311857174333814688881585965072223161014744312017418667091072082926717610616603878477833009982258485080951260631674130449950796477543994023295270424857209554887656799929556031660262695371008864134770254125129453628174084163965595371534536959376170756081429971444808203694830926178020571592474902807211327887197571422456262552922083546660461833510417350804754985383465390121037902625416346807587403908363125448322019801890890382238029688389309447024037259324659675441329235038863536653716564038201809617059118482902601008781384408736265102929403445031876337136472740346598689087900559642483410552658398491687838639415544204742801437781249279755650734681746745251707265761331586168075618965233979522861001505276277373232544310515255171554645330107575775357404158180301120495643397228772902401796003561521148789977890827123872096103466276180210195416750635610210213707123489205294064082702050010332932981546766388242973474787190395591876083459161744054866460570743185405174301531440571588058716076313062066955890257818583112006378062066135296976688248863165316344859251183473652177882192533762303715642960615045947188426182794011379438988977157453767935265647666668065581431754990660809730080744602633846142401001470450006048667493340343443379324444285655675437352662661220766871760733023505062603648995254382481482879921212598427016983267196374990640311917388284752236705205836577288397230115692031763310891662851621430988482211709864870849143007227475746407985278667374680549751061989193410039348197980923536003555134576997666891745458629231255272708821585896403613420546494829861190143735833919442852967291804398088641860022677119295450628375312178013918418030457494832014608929591963755098384655161399752905209629867091681015990908250410948087015718410146022843922154154168462422148280700369924283798754675699866033856342659660657900951976745458670179139615415370145421325272632375150571107641074319721118670685440707584983105397732279173060095941758013408684191558026344198814322125843424677205823347693658761487411187996321847462533741819753123088601873473745805769794821861064857140123932308416522457268235534786052315691846914758744261792707253519303290647051039731989010514543085338720413609155657074414122645214816881030395149090516313759405669660036765241176877975329594576069638571807697179662539024536588376494253735405132986165721439632492374115756023739361836297970479174541524531337633863189949914430448317996934667635176232921349125753046477326566523080542285209771392590422803199937863119852238040237272080296738018381139757328596290707336608403456181680033178491058794422771572014697857296867532639117233192919408363817655476319142025832046751825672833268404844262293890808216581067858925879444092584381465311996521757113442010486091308766559282410621390417546021792838201539469252976460944291862146914719147383892282290686860151307220802424421739617809302222759661139486122350245276744574099129455656692238886109319821699828590846321918189099426769516917400109335420584447992108094784196351411224587973833936353161791363487931504895696824605272558503865637816772009298355623577101440032351198982045558616540083440234707956387515622224754096637036162513727366346693756232265422216382934095254250592874885034838645070578736186759050739012787064378513789482779360057388062284411506411254725156085818016959451566993500260449989810802286580573817296723604963469065327884746079205528581892881184455157587649533472393067445413333636354646106846836219616077621944998443692440770773266358090626207124349265016293938614687101726737744263676682104039266018148212950464887695906720429470964769553671262714090179730908674080424511370010907571639015622570247669049294260062012405765840559600561192267186308560766067265108704890421472489811435968915654537952838543488693535351637397569354556898436826661698061214567638356563363669550809918837684472732014255724757890998794311246839660825904309342600055937030808004671546922526307931434967481186706870255778481615551202586766779990335160108106232172537346717284326640171155196555727808423915447410034636103347976094888454295174734444818656664839804061918286288621893996624808547809569045350799014191483565925779808969261680613137367738601884456338079036207450175250008229163697056633325560225683156188573987245839781797892201972003246546773373549958448391262681906590125582284422262298373620978435781913824870654356230144995212545253317368544178640417153504249552481131977204602990550625545786938941810519937486647894031447246913102590458411684978068567443509640700592414799088474708681652095502218822192212293379370358058451244978913109928542921168058526961590517348604175517865314598702576992860482301374788058974857767027692391982826598528042674435032330920110698466784466170652225760945869031871529625085440382673210243083768356213677793316683136766676194940682298289159742846892225417472925677615477478211210821847143003612126924784195733098234515392337742966833789514515131685433378384139632514829675193996151115909495565687263012961019635205251311337575509834277171163643275274347140533435513228419918996164269081395227154002921253594708053226425509988970655035698220493840490117123825973211727797333536525391685701426054034248195693636450702238473733518243216812510493456246852119342718383626855439949697351397096604377014070649148740812544922306946138936067804690945805088666181154904638344275907937695893320614652100856035118224078076561745821113091978098440964875527944874842029168234545962558675927627494105119318120624014300021294508551770488403892620419576440238328080183594553848842952231575460655578144140749231263106619070418414195807755709600023089464502431303839274952968617662521062770658320507569553688753958603536510724218557085417052944694776979105947904210995725461590646863854322648618378642999482939078269077914285696936586894034670740838817037083316658919898947413736514980117652969099710409744514578316331255493402659338507032788816564842974546403637852829154376577937247071164733862081147408345018198025027522075172454895769565397163021257882769943939671963605413654566030968753520381305986534060713506683956182811763295256192106848044416495778120470490673476529826850550164950526338807185378859566032608661066276667569575876962422166791675390609677560900066362966167940748600918302574372299333732699109880709861999177991604325837630059446022773195584674606123380306928670969691565932799581459509438967004853371202427719019059821490726410199743415699745417699683976165864228292621189915759089440041015874127150975314551663619891186001047355689128646497476765761813415637083120178899578467213410065768198116969082955823853408834282075635987740824333485130911041912566357373385489924443334020768773936843003137930394156641398135856659596023262885355937535964826019914148690871890112086688471309784250391887667678622922887783316958067490490130860620168043531854872788144529794285598262017862620070859703233192236915079210985403460462535471365599221876505459127738160975123834499927324075919551129228660955076071309943998877647067276936264985408992516388856864459285543203857532229222307075466361156099454410153942536191622373984199157625637935683576047421451575111195432238149482624796336732971819411905703253084041617704784217004125575094999121013552859368295888197986405453821639993260780471013681316637850525289435422750013135290706107898033093791316423139376783909891690601251297983463055498280509060165739746083677815804823416403874853047774419644333151278182087321541511906711598043288694089285317562004065257607597202870985080607061194255087931659544326348725748270351961729634415084992572592867266701933614667462383305903178175682226706815150471643823048195500995115970218295881390231418711258875628046394390801984144513170270878241461712753041446765838188887940767955909727366571846696368946550957531582064482476227479332901831281265817442191707182900011329793479535090165393338611758754123589734889538085436591470841313325186934258441078099723597139937106835815549361212988977512270148948956950820702035170856242875297571913579992712505541611837009204240825212226780986405202628133522368172492547866757568645545166203175893534968396831287164328426207865502245952457412726443588004486478106516378778685361204552557729190988206065575898217128703696743308956397701592230558868329435131899245550469716097428844015888060362172973942537776053822681666027671469907563855338350211104097686443074378725628492092170488896617252671484137373353693021958314750612877307923880702898979103756580000117604435208992794201295697107216123628059501771767288524093381848679904477278806151408040501158222067179383802423453180673035056077377253783752325537982833513153088292596037317485871264864865634535588032772704593955431752067064191831796430719573833436183029417963006641209598212966553624124216501732215612087113675298817586662616090970347151965147695436294294475840536077786464584317594003905325148270575381821101395756666045256952910209043513394020977324097225618799460396462987915473231709911240741642356574730265056787242801653026194885434342962750443202019790959410094491171088626701538120580044139095564801673574021390453350547450564711105029993303433089801785291012918759946802143343020205976249398479663724483295595255836687432103583640160115685736845254203939888039251797254686880112375348797564751547118559231491487818138362912090662263609355591866009701998353052316192708149705470058652487758698103435288911160788928882543487999526891577753240555823802148603401003338520270754996301668869343073484562844109743643247261851376375347897863206970554209341967809804633810155360868283938250589582271674617081795764784411881386784952780329434489154530318941141536219321430009474993254003249431426976015398282233368751777332300787556791276886448817091053716617634269447090408637116219080977904766872051952596897338724318048382761294284174482326302530438212107544183557422727912933890122258634372421750526985253266959793853899672037660809900790453002123664981055377907395596831763091462499326746976362709213441408851294343769521656851471868547090485850865407783862327166628965213291883655958930674807707176388525004200374824905896873106986844233715053735125443747723687710432597568679457724739306213046495233491944786270722897220539838123305184337232287606874690105485529564660451890221274250850843133276651325526413796145237268347170343174881638539499077103373729267470891141851775322223796831225645178233263308810936862778965995596406848862095710291357955040835142565898974703548840713165865963401542791968726797445665948696568939739405006331563508400769728473236887074624898619177822944706491280055408526776450839921581583095515979829112240950091352078085468213532930644411534141404746374245307063529194729760044065559696333014509593604260822460911653930836509784290037521789574431147632631219171119204193481412321484454172665144059830870485141813873403344953827159121938912568027611096051753925112983393367781194093303396942756904168270582552005153426719350288828387379448128816782015848743573490395914147262760771636724762530538056401791804269477105566385878842974345482390845046348039049228007337694120134060790321462910315212159561670032866364551066968412995491038895812345567588402095761950363054197690025734316866800695806196952262067135165254163028489481240822755325703986970623238431065561743076833257134579925289799073640012639180283280501686780309776288379169022038970216241544343709778696887107237343435157319552954395880941812344567006559716342095075210025644768227537644464538787942942244090674575997635998474442456526431544485245389036587150613179741389965526900293380337291035999186837867868783453327159822114787876253354052787810319197552187280664311007389743574909208513158133911403209462598060149275003986855594787074734658277291509996380709657754410098286851024770419047611024075775421530298901581369173693889569470873898452151476875292928836442488470085202437567254446446759653094036837610869669196640787099906417176861908901233980911307757683548475659040099883960654592056082392721408406969463861614181495797628398852322529413785481217971887561656935716850742663921229515506460059525262996367971605818165398156385351180431958155570281740251827346632504459157575118233368672423961042606619493837269873217932654517106113146335591036016650726551193366429762202433813271328008006544371129811147911321496041037115427501884244765441011164702537492060720531069472297274271594886899971676469665524348171856054659115993334726755594634396599299877740851096482512150788208037325622115141512605506559750743381688235531746360840915168927173767226335548772284040441021961178400825844425564533460134592523662047789137682002770947225319246956948111419775168339675588285216994516417435240640029111631221024622928657710022535002480089608117895841663024149487067817753065049912955230955616442295046628098025443719148135326288089692830751629356880422963775742124821989710052784022036040189254280367637868790230310662085928459083411333754271298992520823392775975945467828431270610983543267729862809353278339741099056696478142008465415893981005087893018457709940208425705752555575552704200000376552570895212360601116440354786898217111993552332768274111675541499172078316023076259632193838778263895230014407891209289325901468124005767036315163108725169170193499534568042407021335202165037921570397789094982678439893054988819730386905489299941662919214519837743589826540857114720837856313417019925470946922704843380759051893825055156507133083285643109038490701446828233358621550118072086070641891604445761932015482809300897012299034210181682484042730872041905415318279018134555897851170613460074401412614032458320048818332355045557500791011440912998170983810221369542179222707727059756586962871360211077670331655383750548003204753074611758943460512609520608674952926960221144688420671936916823903203330948793537470146534473389417795034294364645010967138839050877194969811375896147646192638295346717658324414109931076262099869518659840772217840642984886662348067502430124409617878731319496075489089021462324231638498945205532511851942657028331542051624281329834170443689907435982219452409208354107697046348841373381656219508836316380511687815097835314114050792740336106554258668677973448840025301943107193417826774002043388398293365677256193594853979052712148842057989749941181296973197898818476001657460997966259841269105579592449525852996843549367732926649937964543970028792573536990294426851512537651830778181213666373367747112888589235747548711535827500616477497659701462879402630904325115029592251483825536426524005346374035917112316804688957002407357930852016543556064840226569054605873751070597284874801649327498975998114804893864138078974704321704281340192306374849008885182839662676172740045708454899178567060104723888313941409205896491646759370486717647840612489677925343376537272743409490541292220613125488142998582636078570717863189606867730773916650021743986847921532652031619659608947163674063928064350882679647959764462185860649854723991817288263290707474011612448852148738169464359587741339560391756159145730064586133615446499283009075315345655118996431978271825369124612169051066333942760764629306554951338697456645862980667757423049996883122159755272241270438815398409079933851339598985294003409174249251622750607746638823517938521564129757158774975938744799894931271439423286657309450620807634710033753874656543672517869698017033710069433839624832294405241503670501033615197341968461589220031387316392607190452472757713350971636583158710744295761002020343607439901122082218325146206565572960029237232948950999646901185688671311312875293229947690140345498876125728223855789851211578013691087935092646652087603787093101910210271537177240184749420588660642467011597728788457578829664395939968986947864440020536129944166382095747253039494851920553382459704843928791315230294385675741151569496767732928331224802077373225397383990955442323298902431278827818480567118483627052705858577413249801799656315782909900373194476108476391567279823012645419289219108976788859956373879594662573772858863710087020100835802187682316344277807507477654249564793627224720530230039151821412241277331059154794864853701741337062522240625257270590697883562414428849277475196847463800782745778601866268229211654781497164084089100841235402618946553327308140561264918861875508363127548092712757540371877273930908497855375542598846360068967640954746501357494337556767673896980752862280023206034642668078839454154940349997850207906434880759221350356006464183438874939473678094689381026003501374147951843245613879277145339251410427529260990814798051387171567591405695132957607006783341927470495780198092415968479911048818066696339313906684848828587710463472604094708035580954999832791513296407090993889425012711826331235664170585312978875096081509193771687179846744860480065818246353932647721625601601050697221322597104045700044217675060723393835979197759077153515693421875227401318257932749279306273439730045511894370480805788445184842930172441356539809984224238343480326765848413860320667591691328867508995962076728205905380416329962782696993786408521123528511094572362894062941428467006502080902122765372208106434002901204434431188044187826599675464867089614702739218132243100834811563900476745544348216735930971526971090711262760348306361996083730256914350100298482231711509367110035045149720130760130593933147938311557965301592160127009234928022485034819816930575800866989132193845662608985003504617568619745202819356659311017916362257153509508593616262863173218847609777132411517492288201604712958985811183010644807776468634520865048345233182680929937858118085041893575961607361001457446154442494296605492484713295605961573386671503796474801977189968017181724126281935895284113316245024705946282028303624891752616364956907571572010977897742647580761948408362236220350843811531361609047177694219029261359915453092241571050813066019677741428982477158176377362944538990455269714763008083884723384603910796632403363783902232478206043419108873023500863393214954069678556212837625997890729619811226771552618751297382371191746587904861608421896559332736418982259991098239209702232152013478692108399088783400910500292727943859405689662503713006125339628702085391739479226729937821257137729758404404528516814087821064320848794774046419396248825110871659437041519969109013567720041643588677572905440694510494159860130943666434550882925181771412992633385058562643477427910916818538302918119704809921779631932571253603591475248262684437121845584651366092996277389968844315327768775710296652435728580920617106448845462514811914222507245361616099230934353079990264073414244241300832635074874120344940311617310146964088826576057848635433490204855579800105129970435295390224999401622092604665877961182781118796817883412472823282075059398813864297704112270792274432141360121422269728114326621480325149357372548682762806083636303443729524268933616895267930777316918737514862407504758399910661903029163515006660630362361341656200959681167742984236130927395242543221033331091052222023249914321121947260037971274962428013289225626404912842782323018747864906344088120291596208781730841158763460701105300780606715340561292277784555580312342003197845942670383683332204086360472177817915818775760745906689803164656983414726202349930827974976293153393407982657152897212924552581258275606534850636653597397305846453262233855775036602906391873604369910205707002069149561120289829930441270269720375658448297358035077390619207780099220424675617395070565957669165267215641074764861056390806750991198289125812660336794119569752120480520987250165923713543013799304243599222597418574000902574225202005623822919678587876249336715869322837368279147885142494796340782350988737031823765705082809670406502914792056564150687178022262626809701466068347518301452763209794369120042967980582753570641172273291314935284835449825257084314016014533107354937033095409440385767543855037031889030804343475096335732821293548801472549473639223309076705881260472186315380053279656327359733338160858151985560673006722228390846301959865403736255184733056923883665115459146384351048736980547253198711770114410081736937996707918115941146110655248309265656771930081814680527726419512209418516343427828611218844596587432952277623816413256691246396909167608312780599287821055231715725682030140126267990534544814880127725502068956357126433773539858890170800249320574788062949440204823685921273760624189642633791644208241196874707334436390471149330840547502828607190387142672975561096001534473788229659509036511016115360349420636001128878181779781547926743402915075976430647038411290044942135462299585460413732305429045982133979696548180309004195589927275680803815652110250293812420715050480885585234899908238421765927748857243314289255926078913453005220649043548576077649528660057959497635288229441206775599742401353641633517143661949259540211862249693525247625870682224169037107209460075724231231830710404077246134681823474907881274536706049118447593438733185671632527491367707929316754531130733685578357822729079872830377138831546742481588486061000540327495143502838982345092660381279753405511952429372541491035146352183602681319839007529087245212124369927837810459556313775168991526068115981863289312624457237123678684703189243834651747470777579812501951826763459712401759042254014727880611238653402094196501678491348705422113317275225901603732958124813442189390247053911558381389351424817582043155887707369596566547179451605200311241826467371737171852069478864035178112978430389799376916313994252474321672940573915996471790851813489374588689711985206764824765699087265349350545792785236593369341527551102259778892593052951609021823538164409074524376135214528919180253831678866032898561822569633542873944358487676204415604082254915463281429654617854927205457566288151609078782576701133712481989087570352198119792321937791993519112350862489622473573944377043177795653849562533429550699978283356496648024994032241579362776321613363655183173578623482799841699350319592990226695052929085697412409547832771924345720284285307946615579900568108157755148808366844763650777307668741619716701796131790188189355876366743944474478275951427916437553484212692812675035031139872972259984668905552196530750008347060272579327118813856044499250985417216007934454448280251703812998487485554897962946684495591310173099729425174694775417857104139471946781441649506730093192727167618353471788874167299748765219783978286162844997021461446747981360008767470129339972441886050265725792199943710699652739020184188559550582955508955333098520882771094948688673679926888313181260376727727674456643525868058463132408899151834817349241844564995692519425853957270829521155108964490280814433288902709197812587838734517698880752720747336505471975478811442703220287135427883910921251826747607765305958090154044548505046645424283499929788594777737353555356237711235801054528759628073978567855888880827044005978967175283594050940910234897337369482199433225379884134802244390451694597647636216060777755543656331503105902247212309934932419704309327379013108432225763240759805810486357070446612814559801968950533841555715282353608596464750426588234337858379365340987556030571525484420362019394762627113173032892533311656197674655448968012034317658226744011841211445073458418781578650363090953884307844294807351007682283848665863672955909140131124075479853628722970852158700975910920666481029777953663178457567040832755811365158339089946176605822266589693661966194447829800691566189238687419270777284921129993638086531733205837464182265556001552815189623140269102570008714604546216919776815032091085429811198493669019675232083071738376875220893630417267622859357870879317511391198794075824407409627784071157925690827098486337341339910054174441048046932375192239936299767296862069940790331313254962298105220758927718498723580309498928310105294493534830326878746042000568964850763407608691469974941162081107677004414057985794154101224006169138497369276589038838520680659233248710748913650184646182064883086909953036541418316564828240517037041602039289767449493564232958487508984880583373541011951686339236906253350528978671299639063933101721837640575698260549011526054816616717582643685489685886755164207942799895318498533254193692097882358322378093367566914510463552263716528685562207043961437235026883911361056267532118225828352923070838401840175093573621144426293189730994053026705837783518907939830795444589683903519715361009071259862545408917597721508742170190092919652109206997131847284505396006376075011400334699785708770438269420944748463837681591834027104466806880890507370318048044430608666335514520273057658299295614252769647662190527559645789409345768382566810438822087939587398491085113727852065845491884977465769132087060503854541802595344433359999528415535509816386343394153853717387456335159631958530225596332740366549453280933009866958521996103011610313365311743556555859435372232640508513627836878223444239794996129299493372249275921868804367624156548848103321180276824306280664928566716633010858189336874167543097602817120147639106306060619426788981605112988311277872762464618982519611079252843402210038142191807299373715761255126953924967583607451426687896606771603501083182796832991747875843757488159963400665645229848181690528862530122619391070094949585833662530681147126838483473268840747286510096255674605182837338423518098438622667742970558670854533576927384807907084248125909284492871374982619579763324028298293575499949375281589145966299400629248132049701586135275160812436751299309415714775668001195540845867312768445566114072055005189505267026193913162035318026796702125049513351430668217726826845661445188553798521273381440794089512126640467928179892465259729645913788223861628522969499770026759262556668123468726749445674028648998359502558287984021713652918753457866160702631683485447404210568209455607703891134729787535267159831249695512161929482541492223536286337858611852935890029761370292279488444974907667493699044626431367888212107236558596938758270713260298397660093873584826858098427809669711124721213292319637649687038693945524647233824482351199340226996266170434791524557028545600436558142833213903731652652924224309146137095968375814480287779841333800804659219959563405323244740136240689088013108916386391606410372552607879613026069501951352586588352946328964186286415495860547446998402586564957728994352343525878768691310055510982068556750808495096215457551784026880320626859255595226120178561786885409506664929325269092505068478043990746390503035796128809127371992281797040729401697425700731898476258090720603102592889208704549334606746722759737102063533410217921696016836553549815680967948310157714443039544759000599506583455806011504284484367069827097054186670876126297224842952093832481831135721841517504085216688289566079749718358477124246450701798437658896599808938570168855234518986776390518121546461106498031399817054072133795350142763336684269304468367748146341603347944362441727773513061479482166268915050991363042183432143221515117954938966375792958663824976163831987863663968460644932969134989449710044800767954430718487379864253105075676873290977633729697747502510978462673065348934002263357183444905963570658602449506809436100507117145363225530072893368075627276008996857363740237109590085191726127521366722785450492900688331528111741419813135943414507748669297992514944108463462635431728452443394247664722649932320506261350515166477173458787252350939122336784667743647656737141366275790613668031962973452525545724325296653524353965858339030016977539839186270418774119076940420219429418228404761590519373317077833329692612712238330201334522837697862455813480643335987093591237062965373685036837857751758891908788874341456654904233009887264583891925913440477616968678977095979696954331841489719442224522960687388818028347828785368006368589528517416066292301527899257568510692718995534137742170990728116868344306142046548448789279904954803206057508250657258380403074462469939371199568950232743253406601372097989213331088803921572206355018943974357719196492024542084314261804394493607208324932545786971506059013954228197817618756726312269548444503955709150520992008508289346183661467157569994966725826600078077907688974699777820955834420701073500210818790031096665742392060385879494368187069413432229199711305989909409050945958323333560309926486842792825375748587366252316515160056089093402773034453017310597724341583717728913029109973336220766020598401251151366819441349401829773535706764059325316335809921424648739772716145237686191158193439245477897750921764697256983567515463871360205442954144584520965789807283276583461032836694515724052264305057491411007534128058159572429724285490177699131160611030504023842377934794470778655342125857482178889128386513600009334393646346462669261244110408341807547344511129408056634845153207681965020205270628798062883849049754227441386642405333639356094433414263654612354879043474826365540648399052626299811671720615562012699049414144597271528777461138477742702919121783047421240590507593693415809538206494710700611133335328373447925411392372453800051043925724771565880554192958415111100375501281917444829759233614240214582297408470333353680296045331494121085603273759899185725163075573921636518009687298248079182081470183631391756295531772050507621732538471624221224331821069032859415250629227085410249680017330888980370465017026766853515812153983247434026294238173621052046547558286741752967748881356332845335980263803383834074554946767198844785458384259878088055043109277803590274471510351304490609964482781056458830151756836123827123447512643168450693394855203631039548237260360237461156756255472258463645381996878098415230101590247445617603902143336994187013562498930797447970627784205810950913382803113811065660618274505746108450307319988812041490797304261967155107943511062837879981467316695241324514477169065231739118891485132107490406583600566627168556997885335232770352474434531784032518497112493810854484844180517204342575385889068995311549377541533119207350958146297951598912388455764985970117586340166368349776574740095793464773231505337367887421946392163019521582859084886942018969437878223015964152496030051039982918918270935137517109234268689036850375429479352753087959682781200504398465452110979914127060805698742869103489123121885133210888803008973195386886980013854808725722924412448853422779406650881517667656460159115828522094203357644939556648093651068633891683766783414983880146984199513249743507228661073559911473013108438078693151959853660710406413956438628972224693716213523091600863942473215692639999952273815663240536268761180152793703251580536298397961885521532870091134267246014866654125457474685677400190385594688815090095802855096738443273078323353926409239123294504652824763322990311521708617380069823920462536126199726818628860842135778793034250012467612934256435421995997831597002247370068364003677804384477610005207055312218113214344633758927109378518964558695889770237116360646734569540856467192706496451929851682792003490053551175765524581102638998368789138818172558351028395888435416178248997618554738666560450624298504431013216546513929905118790421228545400000877940823248084520598974904584915703351004292190971080480574563143999513959996465302630461084959827263523597828169498912750233288213966532799456868285700083900045061483699504849607442067290646717952149770269697337076793575144288133842356313539929128268526112106924941667219321997252927861564261598113334793726862936303515090051887552747114810115708770720919754621720265681992480214948010783756325558893410803184532077946837048416394445483804313817185387017358335755302921480491773130866568456037421021852023615951098775364427994127187161367044228572181665817081669971501856924950185482529245300520870524254567956913011807980880396447172948465895283349052184331935335081472710222043577368461374044025170410029343531251061734955733389497766169402494004917652210311494529738817951084153367906335592154047358848083930567675367916876827647440488183213018523994631255447394104430155224774087605822939324163025763346290360323745699872984118666693234783801791563765607798768478523053345960280338877364299146184148551595348320783259685391173509305288038536808034563502517359430329172696794045204000038146576826953022779158135018239925312660877519871659692578405650196794108224977962185761802964452592837343717225843589744252430228205992553516475422930153636114967995549247566978156939464481112022934621084676910274093368182466218467627615525081604283304176203584736692027282336623925790663446894072822416922735844036867832459998997481136493210579578439197339006438559571329629736301591659515890390734015267823335496402593056175115728747360722944868314139469156836988742950000298933278407412897815944331790032557093809756374825315194612961380650154429025006889445678098091805833535725901272838731294765375131619430408503827048164080882926229582703587578585945807567530664595681436481533134705616502075226365087652187825304656628272548689977257177690380238120806925489809778240109175166070864647641819961137062874279470074192967986517715575784331997980335531977060852830016710768098331995822342519766168237775645611737124253780030816738397253952012460406695020561359040681627428241256411261719470037724715206753455715242795487347252282666936203519084734117332042480628742329534577662103310232469411514504869802267886697551358033900036691213802987048130008155592986629953291787237450626346426572979770516014972095703311128515287625785370777369638324617321794078178627386822509899430433617831148846337437087065095915972764299081199104784366890571327013757453209319344391094604974937990781006502881225168559108572715982138220517132177036988689414265018526985618332253834052582324534829184735026629298586315935672734734287239900602560868260960963989829385002123061418032924865943628187560968019213388795341295651644343656378978491656630782779702494473691598181760446550135723027571596664810659083445558799465004687537544431298292401044030572666489454504778841705759053422268713328584847932765356823349450252275345883216285706724942603382762621720551633647253108367760488049029627006388723065818407659593533094305872883509235836951554927490158049023844071885164510170702732039563563812692215871039488898609101188216434162513910815336158808547135824114210943258240563970373356985358310012134864051490711455198237680543782535720239410157280527701832989516672992632532829483232330504081289863424346977643122684550356857351926812263766468218820115291553541414394990982266324481952265654274112770489294029218141091074789714555468154705837582272755681653288266152927450774309473264973736728829746357250592304434593758731951871662176869669294677406875212824713436832523225710699904618201880468299013940950031088781195690146305960074921023421111105498034483808403724938316067248092726581202597880367088205471454449261249990033606934751465809519047481494542095367540279554816348621917959138640150922841396081639291391065913709636921467649541394689173980122282004124798881133435631733540658424569574885197729552199001912197006159789016211368798061700919787335805243834196297856936206654817836002499232782319583568167874049829307975160047504187058845255344540910242118108049210762206294033200865074156582010705465342855159725103945459904309055375892937240420605454501385126240262050560210803101128974273838141316310040905142326605086863977630753858168431096505469102788289908377010227730165063887886956248600110181747983108606724806678805951719106810676810220286893590113756528059171671142865546809728052538529275308525033538320683768940039486827171859154288833473140054973849217802011468050113889124664551274796616096697298507288915794813667284092210082410333154072109560489702370282733766315522457943976141756972132650547203059545648152160950016531640864976098405823396528126101607776934153614564926088434724343497210988773739887458890097485139686626217885120510892659444957960918895387636406402118498853216077239811126704622620155027475046689434625020113547757893856972424928829630294454345400507747067872263416209934785845362651406421366595428258241545959566069671348451329992179872476518053124194778125106243331356504013128156093865250646285559442697073056593981181003995674440536848353630691257018167087301776561809981929252433219441530645059130249136408573712347033482660521695243823773481852307508673907920774142757435692031348803452239448898137232241463526468367950637787387915147996353639646147404607343458395384898376268066889419401563912471187848632033809273904976175797639754434853648760638856388079686739619794994308245484642513173810912130942854208240544753823896535037534326127485823717375149695012625911215504160681614895778255528089763217070412687458201184213132633673543555653481904931924320123913719405874969978296502848258021876033282777400225585043384096084531351227629709145649332221437006422315884451547540209390802546933538309826681266121528687069773586771520512322103169923862834134194203235158338219758052852615148433260798751854819009817281891585078000083412781783329624089252651015641403176361607337508721936771947118145293285678016117445265865566147262855954980260510743814598045572094381758029744828779615306762447758354749073733793798808549764329888973962574411268552758109654141255108114620840751986830695246284299185823578933979290610752481793510860609873009553762474228731792428892717118785665262721839791051883930455853635517366077687335438441210845608784062514196976054815389313939450722938197911559517846620069670713483892148650224922231618852239643217608513210811972614223781293980887591566989097732289276806272022897610577570302747554904667086100043138125918419830282982256907335976204927065219023937515004864891586893654508549195314295254906562059170084946762245787406140244316410964964412922190158541607524222450190105249330739117403152493363404227796726066314743918610108880358567539174883829340058394174635689263682965681121069649266964468701653057975068556335767648751997273402536729346296562390266461282427919393623614277993849808472108765083852366778786576512843240611120544043552886188324405690094744522389005514779314014948920040353357817980596967946424982055002453502693480791319143334749608135056733616258103877678834072014443248887920583907053796886022355731516671696300772246193392200990165428821877904927234347715540248507836167339924615679168528335713199056281071672406207978792010701881713921003413920251479542142102682254744061681027592669943450286665067349694565052738217203284983408043784637200919203034889247480815668593479401094353197720496405400065242003188386378266721532888655543545288970975085033643862374651649692436720553367833737951650422602524982443802266267262662768806558877783812302098068437276596101467586811442698359851272553589672648563895532021926177834852256068167558362489928932500592503106402462733101728950214154837672468474011380733042183829431401923872772550811284906208359972701051108479590483259958272897723494725390884656505113763318077241606062519876404564781448068356805530949845554093742744720923111787575711117906200859413212422864847083607725528524287451600632753422199886850045528079187965432259148130386764778972133809627197318798756234240956229269996513752223418809616714778872643998246672556298412750317209574896258892008907337122399208999467756750587969655290317885544420992611227891879069794279213753650083148035443185479936035360725366136089283552823284739594553907583507840793802670019638497045577069337380924102917865133325093262337219480350337543334217221280746055283781863098566097698021156279495167972156948857407622590221600241303677425441763238468161705413615732107559349054930705482774380451835401856966902457075710216421694857437638612125043893182634929526356092628302237437279551320954468553474515902342173776053998446084652600836316950638733393953937800372958229255273212349120910884800346064955995188721281515954142346176713955485489788308123529329798144360015828142618840595981799830261118166918811105199155456562871321599823454244632080779376217439233949189460698353056722606865656607478566915922468406139989243306083108957485034032967598764314781329449613640312839982048836307193859846301113019512358689542007020508739386327702303511893182562237809810896690604272755472385913814412619090470053347040088770875818486817763918779426429434588257675052950240225769499470358969541293222704369088810488648402216249759196324654543358287021996785817619103983207877051572295943919926196014165848923463233493819881230581819503787290613359275321853254627097449691248937196462974744460703475475257637532977336120622947454584665294730585965347168182406939695819827408827189520869370847439462612983906101188621634455510051512132488882505697803683966852136160761087807697016880067600539014610740583584820095906715355141563643036757708736502585491815684876912352176000303710872182859784316959432919127862368908170590513940696396666056242794617524199636551314011862737711053476945599078939272280184183880663738979343645849642444219202967675865476833283676478396600572942691977626038700254964268816680634181644446123290509487266993458779985095233549015182812063748817868061102778477951170410124230824350237673173403043098825675456286001170413161773290407690059065588841591245979620813809315748470571281815237785945007901406523903047242232312863725423206313393397672476677047895247368451985081545608883476825381911383315020433558198565512372723740288898883578779583702073614789111398580480707868792263936838469208113730606462101761384441238081290018096031754715288900621680763241764602577518686782068136347647171449528576985453469160693864182672751145092554188745246171528225493878408044886622468253186366905485449934900944197893923673402669941051110149744950755520285892201239800580673548104802475945875995899099656330295663433735813806466289100071950848971887129618510046565016018368902601658195719990788097611786409741872475135032570578130858962622942111555198813852788412931501116696867481481330669304638594497226675025600691417889682559855981940410389196504768271392580554307736498168713775221594070201299673999002852469180672667483540092973432229501341997904185981419860833690821138105750200441368224133477015786788940503649133417881974996068907271497846401544612844877116018629036903438388026877221545847905525306298351050328425052371523175901131804331319712267367223127636492090196817707928851895509389017582411645109014393723565426152637463271815209683718506883332485509369628613607544565915993708847169357888045808258563571394495883842073524985550212339059532563282333257959841536082437592606713627901773259923873914861274645376912504019208796701121561964652636667572626641621144525900394814444712623143182197767352627213597256483829482189405027776700971857706517937559205466446751827537713806916266749095565891096689271287101241162162240630070194769008320826661838388235644227868099029743685789243972329356342409587399064566585295948202147542059780080478526218795314636490301413356245276403774604585684233218587489636550893843109417989209171845316693072943317752977581672820334198314194059186061456477707991592809327695776743578850215085931090237422143655495781417007829510897093244738731324937647245981393686480698984759142152388109163725517647447375157734578580056734790266894781901590625092344175965353021281540417113859325774439853940229740981046081893209189537665350478180972183646728212128772052893072735011481027550077611324388658083693455361717742607617590694050552378050418748789658294720240445020066815865468657147934340601418266826773781163033992299379606008589324676308924579284021132542757428789883644301091877591564372692833875288253506479554641241908949547987902820105628912750612000799424076407913687310985727530809400044648906182243946081078536141593854415936399153530800124390525471142461445949298254002726796283294739225875983682615233066354204375051080036657209949720266785029788410136093861033346316043034557569670998421243810213083229061112783105661327449115549157872643648342480202656552766514682416769105180786304014808720213151400531472028520382246208907090360813447880837991733884213089608339705660279660095260056747227238367795496777289902962666553352898636270997775247305222530730191784096489446300504710422915077296753394997772859177547383480290098964207804056853500313851360729608441647360479892689251281957157790054418150382287230929061476321111095013079996215621346631742714600532677121070238904798541438943664707160773687260713836156544927281822512388840460855214059452128933620858248065175394051952745833461923975221980658023245257364160645270488752653608511083456260941872188930901387745237030944662447709762107087222278519918832418210231515082784157639810304954299001272912203805676708803462142053645490538132312982448086030945671030766265665855659067629109139185947255505930915488882809381006423359055570651689709309493232754048540906148837354566620601734838654757846623357181061859467281060518103166843236601911249226392812489136176827948811924516462874523209285262073381520324105489538496507242746424166658578073328397131836986683241548361004598546626495192630452561009162652714214807084973848495163570442620228683607892437861457475236270775296122445367489072522741572335942185673099046061714621558579783956765162326964794957318312859320852958823793817484973738911061317270407417446781578448402523051271586957526737878776121061062880454517753331729968003689676382211774576262832033146539862030706258838927229576514987399066823103553116516502395809969751966830947784024261964462271497720679933579888484743951240242252906542307637254035307523245286182131030782000095047045912763611963924521135057737049262970060452756616461840903889836218195649796226305647131814618382700733788693188021777900402661206140871080861022999089343806919978630518043177308852522200529964380865284785628682832572800520906814021775227319058367470789628091152237391027149049203006424516543996769577611022308939019442558755111713562964860131052671166135243778367571319229510578628427371042133544166777830275281939549856954483622683552493462119141125700053993771969397907563909488731215260472304075007665175588490002240364037249889716659927765444265977816239934646179092701223374966098106835623448629345205911087554067813380581703543555134266829626641895285863079531268012489666214142520117540827194135463389898373902152324513692520101707158165831737207890326710781374088796464878040777988379363458061444382018473151750520889126084962586864963657532186884938883437272867600878860386601807870238173883617714541560551720385200529422440388740600638293440977577900697745465431463136117186132342263506942404709715854830415626968395101397425748342043203839305978406363610566112406568568857602540197431038318238960123931122659986443766596105417341828903906744727541379333992283294584203443312487327459258843398950676521370688238280920853960582324885185627483938329926608719474730625429105848385683877553581475673749862186261216809411321241874684552891637322985679460666970491516309434109505023687331626558812234682393332314393529122912873926754744937285312847260795471025109586532600987870383557278786124808639204314176640422832872066794788161428967067780509475278914343999340310790857340749073281631287677425478223113122050180080251322619174245411010351859085843676432825787588345237784561773195622066909966211770031837166541781930738106153551988257861663724377501645889547035537537634265317553515069776791044829014511641111055647069794168722419822168473875977927119601810405407790654362401354395801441553826992483477617372293873759189178461415826898016218295051736794362820316137277751697653103256020939850697615783421675610958310437763134650726189837549175830660638665983030216747686165559423396566178021540350511611802184754613979478857862507767950101499175774793500875553600544025619740740966093182544202205587691681441771566839086950116374065922957928351988194972927212177139119816537340709195541142736547525408535725015953072654331212819969147145079973786675852638919149186583044546500425903150561992134405988754399540004429031474796274544222950753474469936263224157873093326780624954595327955502374940416276015950098941852697599944663150604631642899503058783898098459030382134464632783050069597254096112318580429501650191964636125515797588134913260288023420207816118773095781488946707262090539116993044134617393109347564349476563160909350617714378937691254163295192059432728145460358425981917054253491097647206993030914426020503245410445230783043549563519530478947202712770910145415962357078942963709097260816566843099057332297611471985046190621855004964093107402620867929127922024319760856308199716677116111763672388252841843777047942572893319239105586870581002975490800759652013807561869976007733455474457292793410758775598880927618655881646988860298398333424240898118947387091230399498026341918862471732413691309397769617528297119155632101122048739134057599551277734287513852072645022142576831044394559088828335718780921093803113248500692269257730484610871980786808255782218052983256649722037931000723109299706291883875257411122441070085522280015308720580347549470061302334781599914593036412557404216510065540314143527688119432630734834685908987266055727993808291883726924833019782946449573509646368519579435709916529667696265184437978124689505612393286387011717925597181534755830455419733455090716065397021832122626581627273192829389648566653472125451094773361585151605238102104900619855364348770275405872594081988916181797487208606339522736583596551842067789279667700356484569745449236553699722857174525334643657560738892658197063496006616734897555016810452760036173375377376126406688502538249797077620443494463901097408301668876325243834134661810421578176637425742202660162030062203856424333667832630584563226959628166161932442120057787359658113195686123317984134200626692015134559613735463456948274798623857366544965063408949611119077437461185104611144876481786881105636378203338058436967219487716585561234731011142125538304131812716272589959838153486410015264227268456153077406676219912983756303633372197464040042572898660703903384328509234772454505703384781539253571003671373484191186916464254615048617214552592356719292433435909354881372815666975208693807412414510638908733624604546382579196062192661996151458966023232517816006416032338424203951756018805171506666542606395659076861393155131468982709114892998325023955013201890158148201659030255634117019855039098116518710177512393146320498148591972050926951012658871946609263223881180215602248393034364088846124439708400324573779569458429592819032101566492002035541985738906310833788002064849948054381382405230265700821436320921145683553802382574055504318110186898190422011927417110422678662760186736142413394371222828345147312311119833162415155845402492240639300369745102366042038734904218504737647521708225653549508904268648530800853332021653414433134781534901412053987250080123474808300981502751286970034928343356829039911627715026720917296856872714460557918282465262195290157191459428090955873695887825894359133961428924920113319936010918975068771019664411700016045565867348574149706533725471099685263023205677597204589908068652385518186094346445141284139422417536008732335821498631318387281477973810719139022376668647458931322309486056135434171141551816734517118077353460490025088514233666009803140018286045590505725457243655171640593075945913776126590711677108974541427491437790804283317286595793329904429681059432332722785200096287283286131405605703920707848661210497887109302641310863042781743069545909728705580982855680202063198910590639211921615739512174687320780465571907375877623170074960109553564489718801257339761245194934943704553699601794941972117003765849305077820503436749337503590335825228552681514361087133580578893626421473685792204839082520059920711541325406572226205870745935215384664885409845155168480584730716251917157342589058509170557948871271272012073640211177245637750793007011211431238871371929824216523548792368606848481012869349855918230670150811641343777891069024669073879718286156802949179620424014113203157572003546392231131745054524025185934230145854347727913530498157270676894742434553599025701361632817466876413437787676397504364726341957690837439861630053730037899778326000304437986353667583419943673291619469138683670037697932984487545656130041039077084409299775145593237416318653555826939409360949885403014495561796998848227964554912988152709989087233595625779019717197398587454738798916718324410653811791485781279868186922143840246167263418793670343934982579969768118747604846327494721683235691272090286869510721812564150630784310453127338519067889678001034885906337161575223656532866090636399950819151668784948319736285113285255209603171452115572410074388994675294789969829657894029420855991585976149914386131115311179322719903490978727259647507867056645772375427166753337445025787570684842531410110728580302112501381545650615807082954959139249252293172441218622908177267086902562975169601704201960942846562791100579386368565737634440489013748662883281339653147350665288965776007539254519440339121991433735847959792186569679420269308776880917039020052186878705432225493834556059131020983591751748259318838821443830872395717566383899519922547422243509821944670387678679575159509409596411151834280910257573600706485210466664412920844010047810660872729537255854126434419322171721966927533531283496520437062595958685557287710856735761968195127999018409394414824898232189623711971081658934240773438853417377966460615442959615602068573951286232028807578132936081120277910609664400904486678740672515279423836041515739136077664770960157527257910724859816070279177807506874112850334344932265689485403675990114173389065764034072671519318906266733844854203781279006455124117066582589471157374248715821612979351603418806920597856396894623814569420522272353195015934475180003439452618263364436283865820621972860396203955057650763367019582901853622797941383047806471596606381382329062896182903233604671837710973895382175344512473437997546474231910742150974815261526749427651008405592887371578942733740759401663969633472042615866688227669476944244209581508123527482636809618114551145320920720606688255501606119841840101406150054019432872194544435615106992958413605787187153476422122710267926663184624886159945901158070520473960271370110724975227151245733513205506880511574973031599858404787818419832140674312996624274572911095867519743777205012872887951254882251229433867769822017999904255537683978912073692771776904034816517289005645758224524408110462478823718180566291428428158426547556701952572073178515857899959657614014222900941034403269293282113728555331662438103733352545605953469026164582165172153553201871490492830227176452804038924490844676338268820857621523489100041816305548962660557496877697071743165891151984027922690707812257279061707143834670960194290446625540317682456946575361741438343211073930767064212058575572558985320323836714250320924257784123920972785865587628420972476828188991383980394351258046906351109056895229092216509845798700988105527204401323398892482518985545615689335927622951713113214212904862634818470870456797320511485392296333884007064167140040996478267089344231907421874740044242392667550372671855342884024230152169344650190094650576255867659308786816033690907217249836253645877113945743952068450647079828835992714890257211649922291618694715694982735476486252955582515050251831091919978566221299665181309244215232648525692288984760595895956395920911471919111763091096067751032948877806700319741278807804678091938126089018694734326327190547328262250308415379372444166093183856761573556868849736959882817991837114846789910504540092903038666611168327803471038807175923278442537718738989277618217779178000575234473571505423964985880145362530821010420314521638040186458509142460474362487796728553387309340847469109733940854747341462403740350175198499281052694056124392397825161519172743782861655663261193109738389244551581241336329852637778646417665959168538414422829323563894444497562939685606397260367476641348266498688613590434891188022854781011857891045113239762878765936221560138686524334720935162370695414889506903997015773243949630171350639688321095912592929054897536589851686783663377304041066605048379165322908564920061953880350912378612243224652783620464806767436261957238824724104947215549566776113525119987276464748470448183663706832156134798465848074384772724119848953924794156888409761884997704979397240293612918452036050812513729980921583069551157404003434173120070361583460442373506570575311886584278170830375844474364855478725891040707402188717486457532370479956070881881812119491461437116841501924034416899729498012310852406423140090987166094063641338494346016377408149501208292687559724817315544568004824557815454180994128289724948462811712229309305730838585565415962746651383931654350146094756886141471464589410564065525181975700544624376317759256748407990639000368616894433431497523016816369938809091817632175150037090385299820557069418030120120288224424539057452230633466050295337068396021111809384897510842763066105575715089779264609526211044357943100537896648990875952220670287787612287553559625724989059680530035034623795469604213447578918039885731424250703199138243737049758940558691536420235678267142756807486768282835750668804696038858899088742930704019302163328488463278060820336762547212811239037503348180055387437098817721823835932750039916348444787633617798623894010309226442116303405635835164910091010001991049624845039770508078015078102321331701549574328983588698448734903579713737020326984298426171808710878934425898837211095784566575499806423999917322889363432943374737391466066746372496029059843785363472599479659981758967428400785935957340342567978818378032300368718283822344673426918933590667650873938505101665626922721364317837222662999828007029491120537373185219156769245456611729347807024595668832683623670989952945457050172102995391231703351856218330504261350469761113436226223104478126992482435299452570140330168285959473183975672512219155499114562632751495834285741422598258182357780526516603733715595319225967605656844128698199840527914286357873745770827508374170321811187966275746638115151264144701765393164415881825287339726254568366488834910662587757149704235111266018673928388165233912719342649986579716257330123379191108582028097509763413775652658139561676266297298793471245091345493482299110766979216671109655326149350555717989893255044518418192975215100282808042834937245020768276667644090660060389768437202624817464778860129945752667332667872586983671717395265578403633043620486280028967401280462541718129112466935355249150628344621262385689559749845676157641811124187587754694235122257189079582546286502003651276375608857022551326547144099783154467334075573889073079291064371274099666639920433130689452745029400564419199026521978454098564107575784906760893576868485170827800261675589998933547253679253956936599409329535789827155462624965079820030371759367192536549244054943749740544684471939729083563475053566695281434793674597354447475161253346801429755969783795200681334435240258110258153217576001887756700761876303523126652082592865005048152991722701545473131457602822548573420711273073279248128421362007469905092407328905764201521335361561503032758007600637790364409862872105655922503651306926352447806538379824302689560341942989793130388631826347043635956042452522270894024128914456542311229398360843141707057174726202040725792329031584255163419739828243908853181389320796960171045391362688915524468134813871938457738570693353563697568848869749568629874158916603158171755482916027018461904708514430795935787008357957735026925743141238606134899440506815937556449951157535088461550405086007813129345877915579777293170469694142552240233920090262644754913619005639025754311113333788025704623561621062966474536214037030000538625282538157767614908148342126883972380670888397379461227252727060774285289641312167418818057894438572444796482721508262216354176966734565414171547676384510458133610444273515187050464138796944673558265168848006665107226446806869569785039195753088458831395039245217200616320321824275216690714245683829626448063716563415598799495800404399850473036559923989783342861847605873115743518940474624061184083357991249038419313405835242756651983470322594625336282565555921372883589484266296811084410601526720422538949423481052170686297223542625287017967012142913128024406052044174105173529024817823680274315982647404782834221225389536823553488395969407191108310599258567807226807803448473807926719105723818599598139720145595642913322293726870477557023099015147566825786798882558998828051669439260786299016512166602878041818003429671567163810571207147345525380944523808510611401224406608490026306807342329052981464508934937095827607626142976867027953873439794891999814117008356743573821097299592866371901041540830413611247450088465507116504521663987488003203103879437111547763556158115992096738159954609302977321197675778648420844201661694534649972463161338711401172308899814776711162885752121293080166777265813622430656052672341617970877265717261521084755080631762366080288527401151656089446458722569709266611340723124511272632034612709008697370228916323247363056421074646418730093839957798888346654962173058029820867477705070850852124763602725474389402277452106361061503081869611132046877536249096293278345288799478021312479765017285293857796667846450583403136107516710386025325560626289461285664800099386391698154860348267948079644230928614251536850884261212946448792590856411724419270716300146451822257525039297767698505217513423467358748873449304000428368533902946968956849406598762057720757960441100467098535809708326347890927856203212798525055571315557568516433377788335092429760015009273137988350226857947522106940148761814251115848631579442384384021767867717855657702893491088336538169614796976954592854491462691600957315561584001232165962149895040661647275698153845449824149479742125782820139458749139123790881255170978507618924819660416498383778704479512819210239371571259959884764144305754975784316048498267053381222698441739371498488529046827414014665381582892201365814770491219068509264133539079619624035235845839549897585033158885330963531186165951541453990341531304940057895797756316189942394373328984845870340528128297206583282372267510159164559504467760463499755173720507289997822551458337069417704205090069072260381613778518319990190386685788087970657242830266263920245226316261675125157251225651424672449018710163410061930919482472606610023343086240337961368034319200342294138745639061648534088347839120581100555240697223519704885954572747191230134297155746660338732510897957094547763755871287403987344136121224318974360173433115666178910546662624677782106414423610436608286324642191338173952546359044637165498615560261945271330332865707260185744618703320056724989797174046043748726069845750410366619584748896240590349230533284230399350099320153958720359000511867222805240130112099039093415117218748854395712031903953746239455091141650280773907680409183318358569319110725376425796750606718896743442596273476038420786421343844491348241241641142587745722440855463254562996283695651394916727724567478922962712090015810769969856086066030022870074223526093836017732433115671664663925898398372846848902470669015775896277191968086930647985828117629491865117916830509629929835742850930772674864396219711088042823566315388577132042658700832956924097003775048988336386881849199841984560413133451622272815664793182499800592066941879009065973745823448520550302559091291929357569942239706592658759099844286788410488045199117548120717222092165748157783327073260639822354829616095455180722354813894013426122613392593145644293806637882395089846619897529446657134816588636301450207195899265449755629900082935676995151429301866289736416816262103986865054390225724480342949617393052971953747001591537761018705768880917308549956399661756391487131612087306540778214328622322090785601688759531109478799802579805016829357717471270683250972755164827625375124595364011908349006775274112003182397962316665747684273618525683779742670606702863795557480510626586911843476317563367827779894051855704258878639452780040538374594922406942923661917790311649798082929682086453978149326232218614183355630151200335551679776995844601301980230499851882028797471263266640626105207813049799231098029980251516415672897910940795832998590825382814807343199595806697651748317822915024207903658037606803033660653631905484234967871033914825501299869332963156366198723501428668496243111750359089713011045307690183444677475933193131475814195719576021272777051162909059496518799028889458932854828782949324995109866392096160397080281479212487373997770354300048107511280277720287471515593105574536606061919482631153362837367728212773678858351838878422654922902984209398325060360533260575654678790370005241248293840348263729485002701670657872561230731502433501087727372989569932641310864172441955328756278826453872720979218009640919088667532200067617457908433655273213128313886311716251805132108860473399010658429647438224270407609272834440315482215588814875275982005538824572768221767363438125789181339708091551604248797850588198709896434765162936620588466217688228363297423734843436120581455973109155109848144059889646562379036498462174631689048972569236276405433295753815674642905613274398005807642616619680432083741145947741770745305019342411261885332453139017766016312095279449290381641932447269012368776824026510100192136385519433941394464355478238474695333301270687916775930953567959987579216474712145759635116777500458778256650081606353404438104597758005131887743073531015049178461464842633456738309429128427064433503461232778662359943220642177387488374785189073431205185075459099183943955016797663805970405374168670968589052227462049185296953381032643685318016637765061784257502778870936460067675666068176235827627323536598284284242405844809293054765676028723606924990823096929748753105023346986716711628688206155481436023926261632596888298803968056848174397574386624422875931060225757439621000604311837455842107691712092713397868389059226069794162759025366701077636946273603857996566255631727001345385399004054661821983687211660403875791731185070466989455129164634286961888780296912863839638038292837248293161842400896318497568542540464078056838927714132923423651015092511559744917302293612701942542462015558783008890538125639183715862451957908961450743565777552411409855455715582343277953063091118943360963099624531396444863967253991513877165117501524864354354888291874487964633211473017586693917677379414399049009780613175037658437099069353341169720372613304851708728350521359078265699101797413071547052521639349906448519777432523094218473504735192754649749374147504340039797508314894597893022549747495709066134827714068337480476182484447907530189134831030932794563176961250089695088063001093188341305329853528359087550873338052254072427609936906334560908151453515925398923833763626261097401931298689241173682848023746323366989738637259220177434115081605369808177639066822256208630791068110532094413174993227230402691612999528334909047481964293867638283019241418477996351202077804804147969115645177473620383832055752997076272296718316907243965480633260864629008167658930693673305686039772444810040087160537488706372023045413580084282782535397249000619776851959797375407124681911622392002287905584520257871923537403014944724628190752539636595977398663412153729839308727757685091708950646506887959300238708613525020528046486706872471949771845451939227147922393851972677007664295830573660784955221871247979384069442769898809007938825711316682653892202624354915685308134416022860417409463870956561008416015595583221688918767550670544310242121133248779434972011937094630995041560787513184052288549803232231649443310775349836200182326713203538739275882458488230380533798122535194414389553022734592966840398110884428155679497770731650864087061464128033976340481715826251907956239680392959302711606460720908441582235990492380050300401101306310834288683297341200516314122001947171610003388282556277724859384952699133319234013358702430778475558802200343259868088289798199091090908724458066449226474313826647488513033257044698066742138010530444732986935067941983247639043560482609678822880867400172268486222470549856285364419833520729285302037588269370231338041709709176947573657825864461506828912763532554140166140220152798045049257476050282504443501704855057332490014800400266968636927866145517831385781058969381672867368304929733468121002994135908808511104460391578534894675615007498890608096807574817849321548936915618660587528725033354363545893982188214063052526503533571166239914144385143409901581481980861138761699628104053863754114443745686949460457602226936665871193790869485889531907288536510260673188918586106330195362332198315266086058522654503167313694768071379066062809331872414216256421341288568314256731473372676681370292862507644792759004986485845896606431812764517429546314903774472447852609730382447236860154677098400479296365246781644047665220909787496731051966570796377361127509491037520361490371110624976881026543135241816674281917594788088292260007367627227424180862195183285794244679933523402682469536268502810180174781376230896526205389682836891041173804905409973267108794887531817338770285109614028330852899899631917227327570268032303116484918253301005841718975112183635733350571527898704125239034449290999659381734936489099426666729608563735301486493701414038275525599326936443467896256244476445836844051755362371598487619746577283662372964487376839111044259623109358800375380763701302005882472041988617256430785677676230213206067005160008954128733766385371539002398926263783508631733975880248678950820311578749869251022288570633499759713316630232444735026896283614567074946116658067248912062288380335184923482882382296493351026728769994320960650537529514106951621722170915818159550239901143189350278374944571300013790215944418882704085148438149031243776749794459736299176499744402049997149257743770367428666651817651972053928957067676470727781198550188336803600035965953985615811042297321384443356414152030578854601688653829998636993723389545521556675446355981407879465172906998820533567621815619966990086424862148569436648186643418840624369141555322717803984047591031347721503792887930686622120408594660984588631162928933542767672458957224055527856485714649931531891418630884060649489234426180767918094012709035768251311918678092288736554130277299591912728917588852956752932433362040179032456705170296617370679046356957041552329152616495569250819356182941071078505718591665762233944917617533154412545636727509642111774811406964287048000640105927027932871270420117755880506017167315930440826726271735925251528098205239998897215551138458662379326370573914961736653176637658114926932003062557318724489231301212807260521856531689985945202870277821056911908559827027311381230511062487578692939186394580573602785144403598163193133090566674847547726300033261710215737746640033456532735255084097980238872627947280488685297975695467905658652052331573022226475122064728617726924765817492382755985266811508201204249205131736816822731867878076404508619282473428399971652941550431192943954562883539202292679097074977653423749886380594134347404105520460509558073119918532542234666362876248150589251795525928478241842497532556703953761358331062747433023011339056657306349421879913403746350202447523110964714314956300934593184204413039602265962264489199235679938599199353836485962840133593264996619823184318301810397480661590690057306799374372141432723974756561286559230414308876851468681504044146513463891241425005573563947184969123109211863946816365803063480373797217244756740073538272644569657316404727440700888080327843682550588627845700641890068118226536070446920314745782572047911660971942537536304626023686780567902950677613496677184071240115179997999300225783516834991845410945280348150884000403877989532629271969446803301537302049653439402036325411166137064214807861572522673957806814146884419441210759626207501728018059605906073728370214057204043792299923757330192964773307504235349379954526112397054776073586870882667748078776882100188548401200906992959481072568064996526461215548194523774160858283223133533358851043076867267561871345376422633884588094736827241655056120834076860055420258057815199573667983951109934312041953087696260940253053922419519958850497398117152505059146580279205556559503691018288894792901801998003876909639039484688303070697061588646021702195637059135339754198507703514422287236384874090454875794022987475870513592120447199126641858122011265116750258505183123283958249658974393799750853831857055323684770748740337567072938031678834112340933566976733151527604857903962448101973615440668598867175420082648058638776722076580449334876015039515919573207866405488659728458199105740283063914368956046119181306128092833392992428853162694742918777151758626484882007568091358171156896645459121176852370530885483928902586134823257226421712395317688729197990285573873038703975835396581617978742794181234500040770625044649961676103172840372828795039070835880011256639676095458905151450897648341121355923256954480940370590694439716140190701533371675766802994723533640694009629388930279479824717616763072097960680206425887925217685185874939753894709576096295191986364091708488888757308772744649258147074348253656387380536173722384160854406433702700576058839118662754060615241923769926713247174128083369810846519900388977678130434783984996866528773302525588497420598548326694752651096931515459488668680532641567946988827994549676720753999839483939067671813794661038199615542679181727824168289495062095095122483941554741606056518900955415966216268571645545875746179926550368162734080929400277455824311051815675523767905679112203723847155259164386470785952950564722956755873647403013915701467408615078348197273917218442169753626303790568164503431995682836138993938616257163907173151230598509792551910191052420261007384762577020223856894344299286756686850450632924613737526684554934135992854302655419353347644987096183400066746442903323161585555907799936165292721657389164277403285319818474728167110150223227986661927293910120557461328799357008880289289572518105341952743337663067605842022522029962696211080020059590173927719985985722680485418001793270436382385365417818906631797827531036615423936697416666351644995151282523878586856194941069077388479955886304171716511097628416218664304452787939000895076624061901287391563711539061181904274184891517718160381325142581480669610571385347959413964215939640534710907895370944283230167429436673967464506712286594881729429134004688131729985579637919784908709492963523544750385771193525480489061480097006922641388968707668049860455403590155119730590538665044779341378867685882055375081987965606860979312457089244709462594741496475084150809286443216594864072800373170075905929348420643610807144834318840336077495898521235608899362748799831612705369626063559466494818901954661249066783618675458591723976099230644203125438827445001076873132725457309934918097177615350599683394843136204111808191056152878739196559744299000644381512906166310619891757652729567677734467411819595056986364112073503253274351829513493111761712101735689604692564591241141282726101594877046580310265790769656809110701758317953940929512043940623887057922135647107803516112766949914380573890744878571523975770348331021236760705300213995011533032130854864852847211450908217604324395543325525605520078089488239399963174536206198375672531616969240661159917953366390600013721973240964206167914081441132419359412033814398250982934429516280839237206945440522249005607887179960616614781786313882306770035934342268990622600933646344061222813243522721056633758466417524998558721716479688904934434514314580879666793038512043352533871111557379187572611348662996013603312540836906773294277432955682718404833936792241819748723428374806623337901478716691179314096858433736412570879029446089682112218591637609268163505728620438512843088821558440185483828052198242544513384717941846752597225658625667076681117518449447064875799329563534030686232540396768178819823761559966094263630920068310653608674606704141044218533061310074210857497554323459979301615171494791502829215783941389957171476343879043688923969001401779938734676917347241044436850391967858363949630562706302776414935572321813120361898837680762683063390822315428688839784480544316916582809382803333445659364948336856228795515744095657133562577166603775891772041555148777583762214794548660841035280801906088477216458373213186549311851497560337019456280026618997576796740924738300061362484301095694402392606157083933722804436901024519775257255211849333890829404339626222350585752054639204434236231755576625662784209457151168557376857980506007999392995422070968951894008535681749739161383786430227056934890087057187218213480441530993429204272773374564515818507569437239306633005948102036923937391532195448826813511854484824915793589795730161808038771912900754189601386292913234866102102968085174774997247248122784835873150324145558816327186390146736347471280082881640057069536780404383855456551909679463956733638144558698867723811609333516367882434954701867080093488597752113535198546160642384305761268519675888185363644242220774191810330938324491288395594037392141492600101360424357674178524556901322201779813660425534180157666139867321517736971539308846308749909988988319741975194899374783405387381218676683965123812364450606243467957837735961168547989053428223589799678716466962794063444957376174983090414005091704410137673010063040683575196526975021284565598663618973682056999443471856377050230333032392790224462884223982050172737853253949202733036745506163189743758731637873436101276681711052081798948784595255736899337309581853120229949491478986059508954163199191363628453796758286038693281312148489232529036911601573720726443218104485534627574887496459101683061008728055702515562287881386900128559059584183601977865947769800843046359069965976664437624753666627009107228135204206469222528165121546664853252141835204773055394296131368256934024759533810934746192768070324340797049725866980707298061649624522134145407356935789250866519918760595328633531348087404917651763829738493048560073484152136569380385506941679700621159783176265455767656425485439556204368569759805028796121460467621022674806682133883505167562041742928991739212503110205889585709605497181250538539555860646184438114338237254446068616670722033983545453162911566933863436749830776585936427174788979685967625361445850665515420344287933584638610746473386421418679902651590246846222057558517296579584383001757446361719249026164095152880538525608004084297837134307005464324340579720974778988674629596660591126966246754191812398608590893349894918187059629389796546969736897749758453402032213771450349669609046854189372747364564650154532024382340995053160150764477546350358320548699162480098351673350652522395029847465540884622415587997187671853658497257453391968519943752625738823953464271956603673779097022788636360769882317643192762830062629125974241118075737784140871431851402890750316060298332091787481431592215147735856332523984909886187257057772789219111426697384392517943619002229943139396600159324799908091875101338764213878211893978423936620810166036481246543729317117262376159490484657767576807988913913615375372638663964387796433853309963559867223150990418575450095649965690814425565031432612341241488516407840518046458772219448705521320889814295293066000639609756389783177303631555132828264814011018340650070381177662387006936770432063017572574412837838213681419271156754688923727129939158072334766072866226911506966246034354310929014584534998220787596308713732444151862020258147789399308844564041743929511328576160128103942304056572147875500508317247373786222372001249376716430865305473001913562100663822603842598704813394177592487907669045072281825705682933597605257900465510651558996839945175540226867657114574276361715688557770802169655235882023485375587613303609385579547055277244513284800736953052428630578185812017539565357670488870733016044862662093233163829299408893284625233234118103629820367277944484006937033118719498927670718728177085928515097671744029430638474681375408723296144480212046238334578119957780864392583134450251361372532082644989549977963303419732853738969803594267143269143528951483336753022780104337931014819289014415821627766611402833161041741758886452425945187618342204810250038851032707372301555878899838173201970495197645140456729894976533300202301068017906208794790308911708323931441817213256640186116478085278962520261946844318529820168793402776359623789024185910544282039660843896376630732012933487647249297624587526014337444825918521488431580183970422505493085744876662065686759226802175355667204685495047919072530700137477712509439468895296525516135693402668928809238023810229020001007252205149791966273501233363944785403230506161731065922312693907898469419555040082050005382937625917584537896082121856069559831760613091149991352902602126167676963220537613463808682686032286989967170855144008550746903983672805297992862064247451074561762273976917394140899729828879477118966557467734408634424992784629134632159549977529106415429410811663638288084749558722303084618434990200369912296650888552807244268365742545361269596292176880905422928168303149872484307924050041365369127046182880354638953999219572273248217600403423075076527687583258856556004720269871758926697550426220851135984312796995903141431983777344483750474813047827441972005139360414545977609719286644526256786548288042847169629220576719356107153425334529362601838983974678815180266502878234095615511042128794846743999627086835986433775315320952771251476353100692964797266501359770090792983751477824018118883602961319036082207013147968417510161425255988964729210727249678487481198382711122106529943459245159606035619173254775432673216539160812300104527868276774580096043070204013958642430498323819989025618136943703111647611825113051668976146191094632319166238521467233207618015682684547546643798532721104723777295013154388312397249955005902148252356097531965585588260338526495129971199830340284053066335818678638360913628233005362086634419283563660193687875218791925297650422641092987295674117301520744009665562757108845654630400721067687430902443665686081754134588756471668722695441515511465455626551216352161599768256412134835387487743271943216190166217906578793048356978790172843163396505303861931821475583141302034645153476887901577680025530438735591432339122796310976612086473041162716965126825787351924383980060049677159003580192358888233608921004816671824922545529326231081372202082525727515844417397934435051490558880019150348809131422646172012048968222183742568897611762032938410819202630750404825669120786967379609993123420707993568169753075830547198077738416922479145312909320751400237120407243459485694834433818303331694035992927357562760082892461225353615730871959269752054461276893593751972927972735375071411972217825794187452815411176138860378606473142521261219062070663472625380497321529601784653027052493968190029750801230677735656131137691624980025873205233475186007497959720079310874660284842675033166411083072436373277262252774887593142036960206648719999550761798545193818161525257210571981025387040271703049750874683152766191697704205222340383428551840438140082128694069978206440045890722250694645489977331772710109981295568455527898589054942655251749241085731214538477064501585686506782707246873804897825092242478720931148884146613522719721445222840395868670787791455080770138940884603262339120148413514275868558206116045334481499359227065610663103853051578240176697049746041179528766727299708204524575038397326433045684203946817819664502317621850808241613015048557374930965796695590224431286554192452934494512708414262475334984061290688749235367470730040581670878495498378478321626721011684941053210300120450585238082001001670332912726222406355528187457345505968998354933916064056517780450947681602020933987899787535362985110059349072906435521032118538836264198899797507935439396364188104907251639067503513504323705180276727588734984467618173420841541653146168845250057897996801794905527126641974452314228977058341099529303927746323774698889189104345118254253417156527969490619421391722902719578181614017840710929590283500599416726780884296523496689563471736182812878606013553043158455606137689787816480825692193924167362133027526894297343599816162993505227107877042645140927273665045132552487833016655539400016482259972831989451219781843543170678107917180405101823519817392338058569011576683499049815738772574358374658601360458581318195800093440639639470263915391326114701614206554534104502511019040670648297592557774923040762504372546249396179609183668795201336052318002331792194067602438724397257699702950106992760278307719857510479489375048069015445525137687882326041555210330222404912291664832880371721667659665448832606454856961326975190722688587856030217126533127508574049761632765618749093114478113701747521426545626671670787077247514342895402127187195491445017602308452504580489931476767908205487781154843228877259781802041918967483789564658329082710422317756063056682479596327091585445641720641952004606671842474696762718669441842365069305433254782537210217955190839512470629155963456632790679657939052282460109102349483052898798850355006959642030976254473238508483285165368295786648038662178517885083040205629120488706317407308981917265627799582541898650211433124797080527771243921233656032052145787681424818661042337578999595302607515135210645218252027184315388683178740337743734912934210608466756254473039504542824375791909420734397957391394031303044565858845424512065027897350165381678351011154716972848891018253854142763233868332270731766960665878677201461793336413402147926608669135824789569652636702804408576343703956057408228671134425228806266380119524416454336335687797455352927488791513646889295150033403157775081167360729372228918775520996343541808396106910574487059033321302755863073073240048579652217494185549752014836770179806453348338788544265399343545792859749842700542203035840162923736263101936929372606579310375613846660075976939050940515543800462659977988732377682916774964848718417637783902198026085412116368256789118524711845997192656423642698210633496718181396444791891391353371741088904381684568470005692898016471020081419899914454408252817031207970081576491398134192094879621843577317822012878407852947788706079748613573535317348344687001799766459268259657963158246477231051244612448455563694748219094275056262822502128218198466940099648724829946714902842524842447688520211890408191163217942609732372249009499071525740826136091406153623172629241546038639279699660123049030816876184296009538476383600401982102247922264733084692720661442212367305034326459972682953692552083257583282471535730824670440455566653788887602096169571038827737405289808145441227700384256535236967351676800385221611315202782863678622806805278174207130197032628525180856483430584189842431192771123559467615611106591704260561231356686238042695762118623945654277369537627750824996131355451052040336861067419312937723197315884155391879033092777673842509235802165471474103230872235652479257558570260763239841980494104772306511930696713448566179470196846632720699700354572461849652216828447471167964038111538302349900157322228447472449613794512901681516295442254548079287137950639136505513606986946741129678225960124366969800317629510997490579818418062130805586291131006864003794090544054142206774775339894526790394705348825224308451115199684081428679752535405480422805969357132757754931350511111211560615983814462400754922116816408899429211791647965326384723798104236934396528302651694641669731740690070728472564936405307992442618516727879430672560877330469023809276486235136328862797566255402146944296204676543257469310673931715223871244598641193968226986170146536525594112570203169222961186055043624724824344556067689756884351556766190941013260432086713663666583844589566618089326552566439322648229228328651162293438031180742015580689597020097760342879207731921403813553618692627420242620533325728310916889721183488720541207593887908874946797306602798122811682261243783195525823832316278814869185999225314985053503058863521751112013563069823838294027501565940985667926818702636471228902236957097179137981396167508074273564965588863212465783960655752258819181752256928889367467471816561131246938167814046631442907804385533522333618937973480454767602136095912693873941885627571059372385730558220357862202489813341332818222718701228584064231671897875976055800063879601352520996130449904317819744860054696296038359451325998985763489489840290532395778441298753506601679323211524009148162386198340180767974699589905649342801801033924253253831166121532197357743481198295824992959907476330897383256183360429611282955499773765660036836248645361456810629763422134124703767868350192762591807302229863459191866289585950852434860302491733301050656762034332459238293073714347184931065327742855882623698315673255741540166828381998575831799752154026768118587465143450831989950651830082427055295451254609978179580310642823642540814179975972150489817052181388343973012627096818950203949626340187761026569884575275518672351073846994052108300580158753265665517486102896911810415420644988755537367442166487220413419612790379103135342731508028530499869852028671784746029921687745594016582091483015799042469181504159342622588710082342451139311372809971992662842064897196926437101163284855250630856199673679268373750085458670330157235628507427733440495577268843411973627536278970042786270384732730955603435672318029132195878844037965352472689476185980568827430158561880642382791780912736778454436704053040935611050152154597091171514943556377089292262078492567109917143524319480848869647720783507850272537487326176890948551582838467230106628297204834437017270019306713099202483852409260161490562959040548854796273811047409645874472243744710580495579050433934432587031857428857977699330554238577187667862341690305883508659694814688706758753958684811506176969408488807416068753520219400459893396872817232280911373533529680864802968212311210767598725820894717053202492881627819516039872538846704474562251233106626980353306596097805674947175871716222765731145741808729277718082723960084533006088447314073883967643988443067665328424990674264421418859386703401184738193601820378431568375246974307259164443639481901623276911583193923261468443900322146494969518512791497468418651405933782228144564532267250974233542243934348191462464812794498763057716533836564508358463597210431905206600878732647180084355587394769468251619763467108614553702802730754945197306477114170181243940940784694977731310580329002303918949395481567267430712365548229593972886426367016664809155382200314509437838458060241512307746954317625373634772795158876123138227654083889571650920973312048213123069635221863812111378924622553076318952111600734201047382449181232740633936510603131958502079572558652556754695707760850143888846104175532987694363399613074531182319054684302482987824391253680391547866684218278559311260282103955830979505787479211851503289690777626718474627655352232067335075757342091938972557579093313781866053508298467109218507386422389166679938249957170632948745587594709069331812946120106533436679953337191515114415077350338239138945406186834029224786982966217854809196263050390218254655359824028205732766810074519700321944649063396633305260295021896169240190801893074424581434694076059052139063022576230990312067111660515607603840789130482539670152095428074259137005040035209055444581807365059405549392295035604935498161188131434563104498963017450132065111022566493377798118542144100648964828172155594568670044669334268261825651865103080132187521150508594127856543754345208198949353985568776524961165393754550592758679084630375174606288501898649914416431023134574619785601594855966033960461070344026021931034339085248169464615885969142223650792915375144271043408063685546292673555419719920092922688684497380139785268691301368071290855569272674793146333506093723267891122710273082381649875243842391535265556462319140588527390684901316135866124054099112547562589093599299941359298564864508369136067322877344089812314005876176835539670919580795811655253952428738959157416223341922496881755983735560848914531764328071821056753122560496933585189126800118817399819472308758998715180362402783255877486330398681511155261935691454436649518460766407254750344549755961509834602001899621803175259520039767912210361888163676563937638160261162828511404530956487064483204077726102447770373728802555919228873430766163179679616960693810551491325061050124537341253581373250888324373591614491110694203696405605362289602700177095639405670492164977810202366398498728466073097543750156675897550345533449784071645941059132215310653832958417046509554067631405067823445144947938516713811873862574504656352791562365831505866068935999746159620722568682912049297883976128446769593382944021659121758187372319775360646767726266631855315652363927867682796686374412252140674241641527056214285834853609132547384642474318091049235317500771440126609873118615832294528595620429873486775334079102516370890913518365251484235231110768272606244304403922908777805927448227691835702704787276286343640186933102901403898045149861256657640445950886916994462416800570230390087894195629751895787683268684284736999767348788987860448827288979108622685609222602559744182627571775564479970509767977672925063078956247273579619865789359095198927626200112679819035675526259659990393554705232638791371827473437083773452937604439626251431717314678708895617055851962605189323190761808083097435473344244113415592276166779916745437053069395112822695440434207451193193768429967314486127647849217370932599396559555301876380888159726037028721883786680766480341312829879543597761403236973914324328117258310506037326066383086919433264158599980373411556551203508660922742890120213745716398922361836777221319464219444752258721372482409161584980419452091067668500608970449462439865141262590310299100094994303236349741985151530073118913132057339404987028367043459460894495296385887081823096332685440656545533555896730872212295883368879475913177348354969443592594823019402523305243969452700178851632151625194877475250496863428211921587406231636347846771361402699987118907319291896796873520545145278928428473677016383282472444366561518691527279733027681598762758990540213489156968299035429599622915440411720850576000776505021379543617977785105527881419344059600950050601625833159386323887154487835164870632297740273844859126563207281858198716417097514910845616622729304090821491663257368885008201661932036414299076923984897297688024340703501511129054823506078865893053255911508617720145907158012648128752716692528585167414195146438041609449479408298064504308122740956510446964495780873899415552661889141366794945681888474669443356389307605359985687197358823282981771673637218789125355524874221393591975981912442812497132786166965790690965523173908920774725248463035006523894825872975247159195808179554380449454977996881994281712479018493507244547329742526369952482535506459348719972343510406128165831610081591999372922820535674971030185683944573686335532331959328969856204647471868045906668021413939055342396083001774966197688846123612542536199864517395908610263716881316397118743360410061932780899157530264003702351653517321133459419156885204820922167462114983014172164173220754871200639518163290728887306700205203653999782065770083068541322274581653649980656748163642349483380139982003137397628968648533653798678772300297829616738924184619010824623976706548813401193071814578683085244592293213066626651860362467655091471020683547381957940292200632138858649789010278623995121726201662076399120340113579268432491970462952805400452767006516691782962983274034179802050487056793582392994465784670054830233324246401797239497689937927684662566816689435298056974508770233982255246845365864611012430002959065404716702219057069980488876127376026905859615376034177187727607196096976375507328964222586009743936796111903113020906447399924043686669134424635439498936488682880803077405764431506397043032756093971372780373049199636817885463303859742397266988825764129802326672754242263095149530865971697847226444139010161773928837223819283708335636917239641375303865273084778463318382292267855336218232798564010879849247142536959996726705422275056531682354100299395496772343536819517113988461618780378670767045657234694015120191330449375072867657536323958019488134542788675917329296228613401973807519228528357034802057888915039953295947309878939376577178975030409461573986194910510591408513648429329804033835686755945249570377406333514374239586365671232914166210917328294199834952010896274319330500006970678499698818296959695899183231700635612093227539297660646327536679152312924424964179673263241884762174549325432793289227284517911980814181265901915805889775629173037874497877551602640818491021033939972474480616730867259743824116188009788472021330339785474754389278514514665858796029318029788207002158892226543233862790902990396088506522527320224252352359912161674647286698814998615837810778319733470228134832263839058124737103435103536683376170237318518319101656683613462505770627897671226707617392678524093675388162265007232411223928533935625356422010848675989693899352744167699268468035720147456582444905531421468906986583706111114950669959487595606251366173226668111799901846873284987514019136100986397937443676963896595926537814910230872028536713991355077819262300839376360929221765474405661081913129921418801338598423433782715908236144695842340217789534452419650251560073246343093710309019389978309971534009778184599761746352821873728827245550868189413067735157687321658732423500656719395518414174470146422541598742457670252898483024090741535720832306636545555876401731310152210297425350245153774465166877689598502961790747619571067312953599146335886403882767832954514372768817316457090931301234108456217260532652940508868933139467379628715060082673126758406448860355802149795866919674221096370374279388993128899059554144867162253260841262500150951666830572258545871415114534515100213808086103944347650293814518083074870682655322683116092020722731018696599425830782699847474645032587316343714696079913580300895974119563685938955593211130753877473607356457095096850318825533525887252061865957275881759100293850372181625808114200086494635568279754696470949394199566811300983238033395352439937830452256723966868995437077376645876089399619851804847022594558961992507885045387844305364161747069270045401850754591716763529822313182729089872474577638752608260477479287240976504439267449839317953123460544485699819129065431225622136331565928121255080790471290694075242390629554381512645877146225817589804781802200207013802571447007876478976410349947407415394928458386052656192869375390349770962873637937417889454794846367852416624353417764508744443362972893556577898394777681818567300189275578518785209173982918626222349460027960865844206652890069771851907899342394810266008550873803766268957035278715979423503453850671898518887177284754060206642994186432720680642830781154507012707736075362826888003623403503446765862827390498689889318872910785291800135744346327535742636257368874505980136127865047647126011867940127439887234267576866590319336514553194652544193036537680147657019676005642326174378692069625198992173764672884632866122256906997949290166153881771150218752627386527835522183491701656107845827510515104879881310321427083031897139775500527624701861357259169686130164510038908909910975638159844028609949423815982404328923379837917310999318171460999834314822793687883805183186640590989069281962173992672961694525441879093042494213337366349379165704525328296145801133135095182878665171871759206379062169798848444066140604910903714749162918519616893149107039068689624777785956018696184174607535639299165053283546731731075222804983137359183085078180976914513786490434756266891911098705449317870126833670503423992429946818736776643400094392649014660482679361406902176658365713047770079942091633670679006251704448615334122198503401446413890415789120026104290582882022551202667498721189520120814420333733136405826891395453436616977661981864994361376909025318620564907333527740503011298577387799370556155469499880070764994951815398894168855328127475893714014458745626914266834397991022665226013556518662930625407130346208567499918298375800426975105068548295575800579155012090143259243645073189542798211845900586911755040313904529361521313003276342100633871731041779745599254433537457165084567808895454004980697392382630437301339799907019540819617836998811009829772387105967160874274553399222599591823686067318812016634418678022917638109467184225290894918923064638956212786767345594645070530666336989296947789914465301194950104749918592407006927969581635909388193658721130106110087783732624345341505825850572145995264020881972637280801105964440592667078854821713530751441373655306926143578915859377988098882689018816089408006366384463152107314384369402364322346547376705031640805366827660071506028697021825574159351724889941217023850077143022043958981252225243858695182588158602649138825846333050323892930946448267958407188801360284669052311845973852216216895856794283912267239531227239660572721457438102350267359353080062479485494341791674404789727747056847471257186657634828414777589312214192192365221475190408834586663839947103578794416602106801647551811892704671394750436594529396279575013033033053096055338640445102347760457796462978489425105559202993241533062937384329516427881633843812850091612015099068727811092517608463857506168759181463981209676123110567035665073828658227336109129233993354967070023924754447907281758247861030497307097487397718203680587253579021539659051194905191114927906735576815660514522926794089469011394659575793684604704129671511450625008095068399230976509731181552190395858192773180390837969363645135623686437054906288175211527381456441716321014350472488963334854677667228336171552301247302818882506341254600971602658241281546780655478065883998711957104514627286662951970988539778914770193286186930037005185886347669013475062478320558202455263567933584053386511230460720912810827762592769633324914164954544571208849244058529440895343306966910570136585868023922863934486112658640270887744546395772642108335228021762741600233697604851843925264863756353498081869115180041360812462228208540122840796108405713404049648065039624745803343351769986536243160830537843647964662903698408183857706857853507496336658654540478653802844829362839267208730717963525064018223745901746619383237838752648997741817298858277703812375429699808314881386794854025825776953239183420357621890250403601422871436798943245856747136706346271580635806676865907026369707810767617967079039649436317131596838185405706950607981431371063121101341895444452801900338600118370557871610501066853307935703852038190479234286911962881367285227715098905776425411164896475731412095535046241974597987393049253249837826823463125866033386188927862979779657098298825064772885294955230780788999197916407037156169463298811999367352812539254676751248079872860440128305636337835474072566154689564366342216515766435103658766519866418713424119010944793827120166488475389875619196875553426864110204261446761646295790108856798999751011948420184796868742725874732070041859273062961912455735090820429887813811712251695225998681898028172077152126338424472080768198827769573570056936825943257540296059165748363620384545756548298038546676026652390228958958529758588414492296099122467708639992358061598233857158966821539777752857306918614391170426243949491526596391859773955130406077585602566397645530886797446417321776274863114683863256770253805933726766820596490474897690570408422995512815729517572075256169199539653795790083308487873913839702308725519448174362399030954538481061105270817933967583720559757662756998236328907766510803553394156879040765023885472457184485654890213834608952191210096818266000807145011682773826037955737558386524233285479641714703695885364454371019262913960964172525477058748923172631521405084394025578106391441691093913853303441972734880955545051533745501040233034747178646475701066536227587374989897326428535326152663290980392876996020944559575310597767608181193163349008099506453478205479321500131211007387383675587770363887618553057089058733817780003987712078594059912274289746039475476214669548893111072787811838496959249242618884606590980390023278501432934342064713676838293679320283716165321415431545372026577473936324828582684527818750001772853975833008489808240665247061728118889864262128178830670630450928244758156301024522304577243843884376148746783693879728951564334874027422409247828683120543957412000990598369273881355896473775481009496692351515818530613091239626318018541681276220690837685080230856378431978934485760456513943076417663494957330796803635319258407155189999002563438117249763283122786776802384972513180258912562312739269780299947047858961491814772821186806109567841011020793920241788161839345028957546219297282031725057153769553464297529964662796324155625204439166025532985898912033442218844529438206174409964210175945626367871780413166094034378550951115418368327575632827444481366508911774901928080030299674795467162924215416585141569909691091973647187953892463956744902884813419915962220011355445531506098723435023195847458253295506333383687745508931602611595742286326838710226352780766619043771901736306999005102826027948064315801751715969798496288043475564789825768805853754893365913033642183253150574648048498249560876116949826000470214625162193707729210790454659055912639606226011552385547192502558015459350786935478079114085004260922524599816652896496320817095789420777394843979463978572508414725395389999010377489124531970855851303145613190683526195451872558559588497323683548430999413995079519881846409711440820497799819225302835017749480497040717342536936760183598136827693019729315672569012225100552850471041658275005498944403379328437533980471932824299862857874235583907313737559833365194702833483440498764239830533987215916884292684507007542496578303608742291411529660821599379594416450915997389316965868587856503153183654213349824439297524486091661790988527762307712987464283132578802503288274532559008430144595700001749798532843256342701648182328522817854887016356273274857922028399998476343838708860197991631031165879600612484631303095984245834613697073189958822695028562218224299379831688737500012542762233206733236957857251706117305730724605351131615948151170236624371470693865310588883804114826513194286822674968764993463418466496272877434097424224917706969300619131469379391966415746126890864290936156899189820286438198595431114787634810524327494236240743807366399240796065104315317359430442497022874167820974915846390828158193520178368921678466380583812809966360995215306123601862355641397142268969665360322425043222851224289155057868867545486931642032671253808271518200527290124812765955706638222584456448589173185589470534314150958476415857784022674155096801646304261995204560526020734421309102214000893803887108936902313551648396465947619445989168813150054484361741833051073315106696681155829876638558784880071437495654521803001215917662953106346912935805229353073122412189391302800312355441614111352006479405127464659627363919197057830524027591001793150013406657120129528000141085692793335436606564453972992792978289233444253953388015116019435921797824634646512648670397224938814084497270739451090282113091739530221800869002955704900935410583572779028661459008576458911437352838022817352899818620673444404255132275828254749735904814471248563006373905576332080601062734776849577961635985669298019287929036631908110383192676421651593104739064978301291896231723184583709892751117747579977867161501620644473538683919941693577279437496665194899618726143933894135851590612159452910393591512176267119059264148281814110480321566742439739405160964396945035995991681711875450166954198445554340298427737010010020147184872740743690672002113955252911111591534140781094629290973778979724811224685753428921483682129843500795994429835740468990457087600866419175230333319258557642955659330409306388672193510775244276695086979850971285174031029036006106893059479422723783951398763141248108064224813801837934673590552736598491346865927407977458775376777388191067540438705413607591599263084423163781146269442772205702605579385519964221538535869815063096122120649280518537717217284777318197569618902217999360823914059948941149542486318940785800013363535874753729083561001517944598324608567689569011735403987255545118897696010192467554875586751831833753763490384977086727977631207018059016921039415825450637368891615127394541752697796675568087387136857005591898417699538572975625054934592137973461521897386443430962128276719679315129421223554733921472455617442291036845784493835900531675027720796917788395431255972582894451892814936597502480636627210690134456651244216719293556576331825099910951862094793380069458780467385326472711876586760181652108010961118284029052089770108129977680974349912905397056522538696826531691224792299876359996883646001099263968614889006495326177992256384107545218441267787093047364436701828397859704829780219215002466963497481984768686487235037511671189246079868367021786044224458104283542249511075168176076544208453865899312821946454515478179519505636777740068503768649469898928892628468563844480831148425286257928884719005332195299577307062755897337787281333891531851616069007953850816172994079441202243757140100405757797521709001316776795669239506721151196859142859635593870945578992883738757673765183293167220007100449043736297088287104493538224316792276676064232466922800163693271926319917971240056971153462791704077892415304990213257992199397434978112692234023419653971608192142697127869459191883796999864588633457638864312632995401015300108294535407106172325144937558011228972898066928935285393744400359230545954555589567513902842175135484482193338919858299030484364235443788373226458588748892279459770308861548550688196127776086885960509675629075613862843394432410236012414332299932821520704867987205777681674795788574661059808838019357866041964896305351144861906225562508626959167625416144279960306417922932090959932094307041308681183284324358875024445958631483950935313944276810491563401864439182805714222929213674205899005247363000338481329985296461415876255034792622986570558106801428985296756445334111217784206629924096831548702835828857187755016391493184273115544866722672837618264956166143321491680322713205622463741919915582465455151993949419182836372434438920715774618625667735340032929397139329238803649764822145003846331200265080467717296131680086479124152306411508396686282598984419067986302498425501633206708031313353653491679087878637148032456319574220982826772261163841853834889573605907334697658229509653993355498519786023748200020222678396749022053627953712082215558334321122307813669601946874449283923525134349585561672644048266662668335643106517311505782714676899189026545648583633956895298685259014352475519087333503654246568008601243465307042782479762112519814030234967574719480772594541685735085473771326667360220196845953474825082502084858767782688322981286461478794097551212803380695073242170340166053816674953325789079109905559377197631779027456109274413959026592960194094541534289932377707407646847875574749119262504562839178355262316243055581734475681714164377777856098269023512782417149543125216570154307905037596057073370596959157088354910506485469909332435633970467769542063876262943085835437357740574628109682491632776881241814861833298671202465819203670483692700484520796685793545150432790616527543650284074080945129985764250282562187458433462472473963898370605257254913266318826029940225017102631385165896083232386193170273199439931133796314034175011083644255735042882112275717024195908979280729443246259207120198829114463776642415710473330317750604339878310695611764738082069658262411020985004930637201480614642070734533859898143789078800233775356327251478721934458422786779973580402870466480781266269998291954494997153484876366792507295350539054064622649409495397861324829195964122151500577166060656820050607636229088403267388586223878914246880341544496494054355369032122424815496189527606415962765258239082159908815124742351415614509786150728358076171714510948007476831852369391359710986486203361239557696766912700812523624175545559687490101122316197973278274758163987281524925121799257960808249824499941173742646705489937656249479635298842292883192909950655809118448086614655392529821900975450852551981817951651648653498286946159476087704381526485110468176806456326694760373869407932148550677108354911958010563579731193870090422105791254493635026412931154746665211155559287180833696491218646941768846993747641584862563859604520036777083531481578323157490358740940815217151732489495985943003676158470536804905131556222471112153830901336322322033032201290106080274276056696026003891027469141238173895504072554452241655719848969283595098799886477380825506104707470253405486202026920524062527112725488803221224760725710233807964293695221320861477748456694279435381367443021186071460108052702534690317342906019716948585788512063332172986832800575543943610583842346913801064340307259872744180611889952620934037261403376926881112515535514197169787598670106873457842749068484152889960117530645508668806156557733682198958941997128899481991041328051492420768217608299823084447662000696873506651770016931275129725364259990175849239941734626532281703021866952300651991781772095303988981369706573672289926305795999545058600488707593002404113431967520754187686372499941055067631687392580952617381962069632706666712642319368970673623375690403793869145512260801656975475059927017120108218536578343341495049779724788892092637178420790943775740094538659707246165070093361748080181988727308522102766113060111002319253326615804569545656261963059254310342190506237852206100950950907415085522978320270968486715316786496015549086386663072397354677909822197935228360727289521587693156585009542549486102546269033442361387818496669899640767127501975012331576139781193123760856483274471945529419276685431686433147464327305029685562684049928622562996906728807602405435182218090566971743808509383081848968882612254103090890367209578318759117459960391838730792924681089063533950685169036939291345336697542034292955836141915827787976074191024904204009789757405734290039905958408253035924761907806794324656302519191904067861850831764452007882956376511113218822199372015194531655182856578028507638775888876164535932617366874214230624629733271286583215402952548731263800679134707957381653661360107348317467414506494106869986119566886980881816792477730728537569595550339488163094102232060947288378666701885404264592063084197251560496377196692658427907188759500163439464005478376894784584658709982936545024589157621794048400038785955057576709025287715739406244884397061162079045259066081596262014539864717032278679115910839469231030142815690016733523802049970543303623069976241012386840224400447852493556959863402192714816090433318998288296972940563599316424700637799798597462925116336158878194684684576442727224728828006375231775823433309981004940077326578223767681596752222129154088597884264399731732845874604952838539834338336204121594723122854311159073825948219422594234647112121063496541839875951042917951552969442326803033514373075911173268979881213526736508810199769403986741631679022551397109329502566770742287864040129640107491870745758452083593548352984659617753676306092595142054325226271764330715377230027926089386458287322204801843123333167197927251692952219736852704474778652427529275180441009208627564965986600257892927961302267124779566357697593196210721971609787707788846290299222918013248967201229187840293007458928379603155185244399612064607090668831356270609152706012333828323630838189364906626896146034144103245705975643691531172211206557069751382818288699231981403829265288396485665294399883049800930654900742194690005446234406801873043213065734490907258225849060093808862539185887258418463201961091218354446180017539937330263384209061969808604452488402198788681268780750888239959259206207948336652987490601842532496363160345317780075772099284194362653038264812365701762037745577055032008138004086947952718213678605935209529038654085482563614124618521543719488267666106047023657101366888852176043656031476937532620649911007856337790436026851149315874448456361687712230626506538063156417732509322267262348544681368579146929314675929344240818762144547138904421713173341532622950955539147155397824802792324728497398628564688308360086643769405649366533296130772275229525893611622624149117829046619012832345581690445192574987205005556805259621299753863360454902646547286790001506651614534681861093439403899136307867140283399571244193958279406098643133848781154865524616388630846688816576933457329938244383872179337614621859562384904501360282546855098332286453106047089871829817829727422534153263403221401426341546379482604986085018400419053021839857038688512430310231434081933810847625800466080341166537056209113022793067954095482512178235271364321902932511546088142912912036767557457621161043432313548735611172503694476926657163406645902445484208726892349411697391115523216781163344832920180015611135517864854873809789561387447656558344229044264491389072488415119671185212289835976334149479766043875407685298239713232306266602138843625563137923515275042212828363415269981777175152045248387490758600019521602869080251636752560458235201819526545897539766770830646896991516125659181139478770987982014522467529035902250845857642253927343980873268512331458419949079541852495144603327461054059531872112099088325871798563611322068425923009784010334144213762660037894952674035945516366107045915428892245755648642579262768261548990444674115143319230219443143989960227898256793447706847090714488850890758442874085232843897128314732827960208347662063049711728886849849698751034817989765755808414771036578771065130452012106095061078891042098247951356720598139451180464265540826967721567923302224709434253859762133690150446804406844327869201947184756961698236855864551990210668672464328103137060620137062480373154977721764608493955653073457084306992256941530163744055212348312434217970133327901452943768297833405951402898125168953265138795786085113048889977711082215947705793737128847770305270958674485565097925669547618105520532863091018184770544749850678585649796253935992789533563955485206652990714857174906343025393892677215592745156922564056239462211665564123880392859047243206757147247079038371803839672709338612003514212739674453919689838844210617354497676722933631764600712205334348320871964774442855897350418656301561741707485462183527070853399348954948302832842380443733566665791713331008472418268264663155708887252494575289237332481252818119079502841191512969824477626209300523164739115806637220308937278930019480568334882345747404289661581432658878067692894437878466973642307784904946496041014501565439029325868306026424309031881694535356083677143118292373900150255309364711286479783242372008088409975484341373668363431843948604902408066073942341397713701927818893000202450731214109035061677066728739944206107079002742628879757625713722200430760352745078892864031889522748807058738227649920105299743591046235088484800648911250158229010322538041191434891361890055444537596912376556827431211899169044806147890723341007610806965569406040367390688877128154038068853084597956753374631156683417595781166173168012138340027252777775480595576093934384031059544525670657620721912142949148711909627707663998629772020441072891140152172428228312011770251803053632563501013798153875627798299496518275205028325744841763810432214393227643869887825117622804253781243041306979296402845161506880904538117196339132361896440261222473320290409470073320265224491001269665592324914781514119008188399438385717159500895318025589471395816699277233787842887232520799108204162375515104726897497904190443046749658721173070677951150381124950669476053659292909168657582654979450044577136509144214897291478612767707984050027969665490675236252773017843026836919898419296055031258910861279510092731588708896255901154059789708070811143609337338432050967774146044333338953701719066826351285707311103488372549522199047279082183299863239788323489525599616177173689849379434376318088895257590280161174287094904951578355823205459795418248680928117182101246109341195519389994326027331268759614328937328259136169006583477959242477074520456921510173474957026307372193659400610234565487756478938613259603888696205200855239977429767419152086034061551292944697858807355116885385630162336319986890072134085254890862201801746063677582156522295132798232006254798168229562796717397042825604478695038365892368471160673080529793150151994919331335936029928210829972021189676863705729925295134782232886968948018628103310140876697946967001382864451914931529452764646703474274793766438368624807396408512795265341275070020938230097655449441370668131704295400167679996213881856149195450159098813281147644672645751884027753421779915981627945868478113605519439511953811495751344259974943776938270333463907385413340682257135518956928566913664857524981690014861594928805708788670508415345805304532443493177339786128473624959260701837976668995447445214306738906423067624174962297250649941445665961558766917193321049368824079259095281125459200484637376129741537165536720144344070239543217691067106179377030905562314409809074414637019755010894290612664069007337972401784514325161445779138006485822034660659022203920505197030121149624289966422347590547891569324055220647664864669209932916426288923027601043134094869506117701214806254592739484746342304206542462042435614521349685051296349657625443419635670785264292622381231504472638944827428547515721942884723329613880602714032034745849362127472704318064270554965331259137903405803870379185802937958288759783251213954654276960081918597509438235132671032901543899707070513296586259003351572852014853156899586638682900945694172374694813438845016559425885070670280349365751152859454679569608782675667417811871884444110988579138659896238538541731804079035326876729202555424446414088615647837403590253393645810235638940852019866412106629162968643429351783667890853631915070195174410843120688274500696418263092351816763972858539122650353458225157587497724026050466360473634636316341947126182213924141002659795573001939820254007736206079378972953194684807981978969147580525472546213174793468990796159675933696119394552643369863597352310898906175136959757036825752550900492550542026620539013766817195910573049708443073541900813422516447754520646889863381908780490943849817385495429656067524688343202064577333009682042295455845353017578976512401466424128164251809579999523675314834565052864910078883459313398127603366341854090119030625981678608800505122912406131029175036387946130909283055608800335392450932948526503592564099856162575733424027048956454238254240032160631954012906110730778025061126945842943996189626805390197693258008680302277568624833030356442724039761995651481467854154015271082070978778834809284797161871892755661090331586228674177723013277494201501379083170875103613192869660444182229061162996119545847195343183638235739648417942408318645814164768515603637393763406755296196308758615033344695694188222549769056523649283467377014098216418889019259932785089027916822891453628853365037952548221877370930858047455414015995909616787911932520650897956070286775853264234277587832773136029747485185913042301005341619880814116877111029850895598106890993526003990106587207604208801100491580539519010372008308032936279351340412033667916220444564464405822775482632055736367822426744813680525338206133642229547769459985956996508644794054337510331939705136463468585798181628375141222517654723481025332503412001592710808344750014359312301836909194131041357055095154486282131736423384793841209812615819166026773468002165210865218876629766094881004370794039436698636562788437781883031055091266794560965053777746760626980505305135902603761504172614255453474566679429154683042545867591328641903347792295156936516444340945796291204172144264933984165624700950754665847770278417059778525314087272519071113069996459132981918113501535628739739238384889423504701481711823657884413142844984887699260683036201504770273516393340670228695081791883044265106241221391759310012159525285088624981019860590161364852803470206709439459467030634948361413037448163894052776974081095041344694367185507660708321532176460111846084534321580668898528057754085625038460554122596157560965204319087375155159702594682784242584686997113818032854486697212536801329291339689581784785524974943494375844941755573218137982946247199234425494618557184231329155031725266108857164314026787233937507582585119964318107405431299507690670119419047500939165657922176157280686546891573549161004129942631817023433054990695567227490565742480813515545758077846136148417160468549052753403496434622844631044633850295679803691675675311857625601954497033053043281424129601306480338727823456669331985259786421809668373285543184923362982740614575336066383614409084421672403397001802309164017781117543327921155300295247470293674248410617502949510565436366325553940896184541428134520549791335536921727536959083069073123160816109996289286248755915181748967047445015509224231774414878220441813857279724316906570142731767035708900224813115924306087121239058629277425769615448912934208886128913077293141520735094290552953914439860469491190362668527299138683720636677082428303590619292908393833689815900593749122679238540589729720869814169768451717223112478757546063828947034959311088854994415442695983935569154734852272277941001039701330373480410324798621006540669469698065182301144243486313859026342542767732138535681603936259619891848918831362916883555344850694011709129431354266348932336570459908051212533294661994098391406867986821937806649572619004173663548705578917763231619874442466992102820109585730987548939567410009842277617905691181884193498863528256800200423790094899956553569671356082226551552830293204999293850610744371916380730553802722105413982023032764341294793398346448242196973348448996581948156489050242566717536701036198122283364244167671036603749158231201987533435591294546559007451290134948938290836898748587871790287145255408896654436236855637094393146618752306652792795041608394270117631331096238041558995585762345142739112209888297408266565774985453365841777167577805621109453602006025472323664836447717758864578507360231133069782046434648418161243473643237934107296521998499284747718352591139940532295188990737456732179440942725199399149491128184350705596145703437410925054447958361682381778235814881731046887241656217108621613354854835412785381253986394817944642495411876468726399279669815802655310475299548915338406338289852677547470694920624003702742896217862461322762408633674868855695440355533804617099091873363285202073693537094858009306381423511833990954625216678744420171698926830717168418998035260737002118912827192057160191836265010178499227085503529849316733856811948717269960858150550211002689386110589794895978446169514032527215089746049979576333932800053913771084397046311449284079632221792520118856781343605704181434996737277135690618095173861177278353262547409201219367592713655994518543009091951243558542823665765353845370392787199700175826109875039066879219650626733333083250810432945432523594756699179180834899381985410647614499377267677830917252363787703613652933333559886528065482902589241881044099185934521838474181690383837367369871991281277887437145890049106606742955624668759803168064149560418430044630527202853945604177803407712917851989990863802222018796916483838552047173187743562502823882382846027401092049601152990189169102518824072474967961082216767820749364302061766194816787347955788695081276462590639417016756722981408639810684496416908663723862519987625682904542351229412662975217166155311171807127994528805974552916611971663393126974279379633866975515488195567447300852793175597930248628809296859273631945111904412309413165062003771775527792934951997192974113387965829362859965748069677997020375072308814403929800599520390521192960533509327219348405217240109171486134676940060425088227136011749578730328734207372737168806280107628469633067836353546156043927762453198438075951974832854582291568367571446047706904542587886277658093092574597893174488657784982945032052404225701048301870782168378746957647728492673421737640289784134584141982371840689247636040475981871713728495530045600582956324569525787121145244633182457740010313154889357395164558510541697890889142752713317814237156509025575562174666185238465154613282398192395487001486544951761016853900151540732837826355636683198167835553383218759295707742928907397939169005150984717266819291002047316192308103448040636070553014102182723947861482458611903302167482769605218525251993117003205290249345216654053023771040030269571094702163323058515081442897029429879613134242584327983679051945043726396831593750089429872412789882023923994017413435913893939648941832634896933894407499044959172278899887184278730419133933662765936636514209549951813755950095833591387143543447714443581064325181859212599201886405407361698681235829952758035015318887614763027311441197684618786911860998076035931346262258516771972722820670939894937440288448722068440894334981558381905623488412323915546536163735714593639485578029168698286277193145576151727940525906080416886158718597480174783235425246462525529718515430141943256202850928470293318698163363568926440564614237134479431683567294544247727107768938605406117018712136548620778426702026229315311406505555259070952682886114218491294260108040972995759913684688133603899886719424319220976138844605475862142001893691103003080380707208219598100297729291318086948714360870654934073390894964828491316373276597789001819478248461526890854534416536058679100965735462886959433048118925857650069429723741921316835516672338259779033295845939783221840023474392403418673825405690599883310552770660332206882629136790767759515796820596400241856632075201959616897277327655391288361490117928871816570808566379382056025390231941750361974480567513408676521163799312707652698131372662854894660102910257139372727412878537307759150505240769182908500134414012757304438932226274199248748577277269854806010491230567658271391723568991303947789295434473664934294631481363374610074956229526542510449230714968813371564122750940961351696527036425276988093491745890163058036003563658146235217459285725739577573162777394834115218702779254403179918681363997061703168358969556076051263836289838085540675850742452320739396586573171511392791297560945752830679077147400845166033757441749493112234601754502984218531892802440409539143662180232495033301075993956345820967305187099281807467694507916152450698184107267987869717316535534309060156289397962569624900090968612688118042661888727759668945114992305702169344154967778485346061182210614198672203395267099913536708734532242477050095800172277837145188892183608688593956132484262022001632036323420165821916149273018141107443210559688049774665171420043737195638490989137300946675818154870629953334471447069141134361665855817679063157271945544194967723363369628148577041137773077621192627813287999208557964848626629785314418430242046472476861292138264485005404549702477692712417303118008842994443687269128778851551524243692902888846780188279242981868755376517643197391457985967157228470791634319290482941324900232868032688808108337010399641867197405917394537916931769595721441380265414177503627410576963441011842723645637832475759645862164709801980450862032904845891625066148290201548695448860759616749707712332662097212591588195189888319726004409883869054791906076606565161321707169078285921200029522437215588055946058501977578796681339891561140567865652697688901321516747299692656447117174395648400600508720744605393465580732933549238857463761008836322158720120828667611639545593951522321992789822397587848499087511185230358615388753976652735876089728156630635301163233441063562009224295252218218749167298793033731382900011782884152504334502143831337328056231340810879332484257300199498406086982089906101842023114103718238701229528525439166834449338456430901320555357497049607177001708624715399233206776759743564448765516946420391508659589711751944656979601098435138754196581177111390053747450690201257108406915126360017182514553727308088484157134290589032621149833252340767302962285793261787307900446279628244585170899082735956893542748858988312698411562661194399302679154671732394744920128289513020929326790269029590867109789167299436635211318887471756825543794275930868995301153871242508728079206884077301680831954150720726643088916159605811545966907166619982313420071190490449359824038154145377257099296691426111229765020540201398437927652228332131736485698875524628328817868103168893998561659327288701376012310598163765016642543391921446356711792241260779685810848383159878340318190584534735877274580040437409241669197547714519541163158053075700677824148139281716006542593030774815376852972566989008853649268396447185405482141888715579814289836009159358942493155919371419900933173512991646957556073161715033610544556454329715892618563713319057825004894212972536811021574392748208282068885343163231643239982606281352698466151239496991725196011337535323528965104843350624069830351431235664498706125090635710908693926055894760317731078481022996586608504173668682654490438512722995849649458521614708592814928195234393637070531122053305079851072259920014316299538885953158489255207118771597718166254269740708186803131906785416533195582648038727489602409210966690308207542099082620621098674661673214909524271759795875184904409788483889461428420284310481967014118149035727380111183759258141640974703476442246284865458298913450429489221801480684722058750940093109869279419066952958327405748925424305126753451763804272053937655384989517477655546382940717450072071214485738559414927972570423708364715400151689423914796100222957666540784463496836827731338199440322218232686658640495297456974801984857333019351625700593855860324390039298928354675920261482401944436018545107477120012506098311842617556044892764000527466586064534968145815255849736742686587548566717834614086913005622568270266843086024991783347502584058420039987427169878370535883053563988563620143389364446841060257681335453902934095258688377775763524335815710471139969667705042550072932291579773890876688623160679804678669205556718365351683771308508878127238887161600798121432915266147566341488847196770262821122547413365582717736031790702719293659407884220555613151109577394866353390938683092944683866208585027642882825065189259952856087386817062716445954175109100253089251906421421619908682917081566002464618732654113065201441163668506774384243701341634156816482849825957040706778700734258252628591434049468517432388333272699728134318783334771769161514667738461481712264367065780390137600567199979095007159829821005172608830357198509196167636870004993991107779207028338249353354902594482744476189220348824520563319911552662253637567167936991971251406434155985656649629054244571826653171098683465516473833176558253022416263580185613449010126388130210396809592939036246142005187996129782993683903438472951179011745990491784786567895180461726824293320184710362448412781018747025544053399107541515120770060835991326775304084481217003921259688035124993367360734997084075500264756671598606655582074362856126700577076239615104917213511356338704952708416956820273963769254255946228484543395314049351298257957895949372365709100689081998515628697348967639917967626577668418442797950842924078382115332218079962637373764051893768739039539298301678731399674139104822903576025359087921260070379994113924542077927101896015401051170415277037799554129579758315845229353243713559868829452466073544173908340578895811682462716275540795216809408831698976817488977762752067137046887576256215742186832070432440990047625320005816754958639359274734520081106656741083969435914206160847776254997459565733461562325548142699503676356896799680202801655994482247918080297182980216270781433362659661616907679902192072538985999381593403462480299428577753182363272909650373415815669189018126540695326407256202438183878770745055382032127722594416059380560834532680222325639040241620652840365452513810187052118512771935772834906314831456200351884858374129099440305598908162889660466558315739875716470075447958014019156676602036612641446551781361478827317168689300364948697084436189727678060328802640640599105327288672480809743162213775286369313270516767041105894951753448718599744219769598461495808373042176573502611774283904939502149167729469127090211875027874541731591439598753039939237097723446286337851555138883663605409048865681826313676745170675441897430319609753792836278331406140751622767020801891167410312215889639041787540408410005160345721138553624792387169118703703244948141357768382934668855343595746640586964260486915790042364094564626896838522574114849211009741549495863783355485220371121220019408798738419299289207356068703375293654961073468985385714836449991764898957907912969462582667585041621183335092649486564272571338019692331812346421597600361564299635816759128262112361519151135277363643737993780946059385301446606674370084700306664228591560043274283834220006674504326091509182292357013401008588283264909336960564231824891495213373032462098432170293164015555082083257269939736459282792208001922299612633295656754803912094394927729441883391839994686581492177873295751181063863067687696925038905402744269831190592948409504540082651642085776586386598406883614629883061104829543524380607041168921404747857605923740737873498316576922270454051232322119685036039351911032119767053316736526741307169689792420519459598477108111397475881059703555433315501484868385020871441442698920811265098312933508196224426671797537585523050838356030460945962751150123378822637502439486792888844351363558808266910155382737659318559082126759456428030810006440219496682813519403188790382069856051278621206516268681158630604347228728672501733540557062242605809593183680566701108674946191774757464674210473839769485370049977469606263307507040403656166277413957843046450632413646157250221869696251999957815374579608083331713445657536872828402437719536067192867444688493554168677456614640355924340392628320829042655544595086145852489005125609740161300080964993843755165323065044804859096104522894272292726288483021091078789271243263230182671480897878174920806066781498851887677087974432023215267774057450356622256997934979511265836682237839072748088747544998813555855704288999681949180783303510248874493312175674350513574623271485380375578986506239589350966807000479992831590768578225160652397997405395190732074384590081696154905924520046387576687866876970380770464081745053879217794184808102482804793452102471611351562790197784040745534918008389936982713163872526881806456144464891343513265711658139081339063629372198476057851717549387514872436554517384586824218623611097387393566625328271105620123863819347233380715645373213413899368914479992249078483840160453054253939821615573102170217740825094867089055111453927971659138783686654834428888339869334180698589400077445303470745137715302606080581509677399446445101219609020153611827348534349050787968864638887701485150304222460236568955363617874623544219614211918982549541528952083551373695246006928421795257409480345284391034361518702903840329923073125769876096981958272454743002137182499862973512792695830748132247687141136512923318027267139946304203341933769807699926702282856655351262347685642702790927619764276133128701932605821981717278572299405832589446400705448867236916084625165740475156766917370830484061197160834752315999229652332276415879611756152196934453522094695732077505162526622548657222792748668682378962443416225166126468188873856351412573278257750668190286373317587185589856574546252252629901936459870765335802992323348590574910726553136892601854530799340729948690826186694084772720330497819500900048348939946114835278163955603223121671458993485859023610985328803925196632453428450362543999742384474837221440209340622634988789180596983696641069551273216067288031241152042070607784751682768232500544743426704419557285478828176477877269288351482630096882429347591138332199323934287180344769134595498955908935923543838529357113262806308992193607072183458368288515834609626839421925223509217335102945337415608050325952684817614151364247331384166067658398024880538540687741096451734899657108495975293545500608401245016624959415406994041730718546935316319370767225955755233445590175781441094753526906049176613625417106504998590001575852793077464648072474269218979944130733014163493186576497951149580731891616129983287883060094198565860678182959716090153413835067058570323808821335891972771864692356572909705753461790705010729950375053007603646876696784957572450022975411732593216410508282754512152136953462713085359987547731618099586943137150773125718459752157625376877414016408720825857405892409220097323652453379528970487322632152915116079321813530876909242330203028264709239137960590203576311594474341557559601783396538710537382103528911217772780132748496932140959247008697693292801197670676910335722362467427782126669024950845469899185875002826592303684332239682518177248841179713521364349838355872677994266753015147466012308946277995046645723578166937026821977154777171480922044312808143182283088446713915605705843378796400440334513925309219158226275010462418446513733285025284693616007345916145928257992602157468333861285286000910292229956368517111090568508047078746742889878444171417587628399063386875797832979892811705720440303995389227625163909062323958049276159963508221257460780148067039575333081922727437018321648756075571072346598847963459509570711472713432698257649482826447252147483145138398653517146285355175191408532778263127934331596653587682404515088451020238054366000371232197393309984368668117645835883599221119625406196675515593895539834001114116874800239400206079404692110440756700978759475371177748780306910291674707375820946947113273376571359123384308735422921018214494711011870138799136622596239602280910375651027649179268736971821919273073014127452387593189832171318070051158057346274125345788993530721913355652562751143264857404419043562780432692290288629423493273348790665969637141861740244674786325674650827223576938660120718654246962231137150035059391825531564519658846875180166239430819443582740488827032044071668259960014475055825059241898989378900350546243009865689342280446407174631346038452799144908550521768046898997450750421866069826058605083571829998943582832229047368397852286571988049577108751369477770989724075397334036773154371727826294828545690649302274856912928443098722821895008613869782690471109372813114691710789681745454394401047714856313075124355892898167788759436532941309491725802849704310380204771301054171532114671536236291950834480853250137705539012898505064159399738740854685040428233024645734209972974370751346158313209529937898358395402654037849842801568529698020016109926888513786384122238366907689767221522009409503956839365592440291278251624635735559863197553151935012221315817029217090931120705590093573001052917978964216768465126094907452525512735462344432623035156360687994485188527594217787881295045172798160733364527938593453408027826511063403623526031041250388466426488963037678490388508342132236461431180585083709810297294204731485983936885733137960825366550477454287768169838472357153094917415752676367579166572057743344154117260680120313279441446008289430968675957131109102236657257105697532312752623692983658021168357146998289848125435803399690858809161411264511629468630373816578601956134783295557025550648992352342872230879498101708765611505487598134102372440816377132961241441188948705347319642760181796532052084747071072085729742723174024673454321241196048932423670918714520661176933660983397495399409203865216189499160114287659324411874520790152220165621157745125773677514580961753860082132196426507467511657460497698007830932496415405894124702577464677957317678986650376912933854671513074570857193352599177511676422595943339557985937458828189424360344639338422831067186577681480048974566018649918039836181284314067409800879565027129647198889293666857527350560266678885972880690091007378966178387860580603854659043267258478222761050250470417061606278532200880798311816355135849206350750141904083415299216862262618352993886671349207360937376015932002939332479014867116399040095104631807218981127018453644759787136046281265226562080567868329859576287589716945471720680912650035778222971757130982211274862747438966879705380330678367299045061865271722724555675021366523630881151819102862395524852422412085704738112998129244320712253235934323053035968540568197980152278665094009503333128983454488170982476497146816321472179448946504491876263367048205911984662255181570015436167214455496671699772830884673782574152570942532118797547043786398387517115584053292563752181524712820530870512261309028382843582796175767565567113782926781129585878679525792180669275629183412736875556007546293878798924152100670542333884550838680755134038939377027499214857344765844846601206081944079749935773697642354548990449322514346830684460654469022190113594966924087698139236088345046489241946329271626677798650076757100708956511878227624874561021115458146928873896913222670051977578305156605318611524848068362068866447270395556433500819740964272625504072921383810333252699294327432326676124848430916816904243130042038914558200017715992599359111405341348186742949796561015816193944124974774066560235033634533380935204158637901563447376169623435092354920929545205977212255431537923241472175455297754670317459183843001538985039716493537073278829488027121455334087224777289651854021755171727410093537522315562256160218306653701185757825481293355387634116265733834039704355183144280937495358324772099741179848707556617025795173327932461119685314124180488837773956397640358070490065907664844868705959925894321233726811985889279456709341751023683811584193037636125068106817227485413795119192128735507528220102027874069284660295450491808938189412501413393622742331176686895522149741478117433549241574707514072176042252536272530794341277416370545877193501416797581914127850917365012917844031397605288726400551269505085607747323644930040468285468877489440316866460316873808479361781742246528863817120576504728170344975620056150113675592575007266364590268550421992125973367748864324719969876459391226335914149494843008299416061276661488095125896347238333753220307431806555352765772828548482577761498906070059851095827516377402841450397246312665915034402085062222941036342107548152693449118683045110480810037382946666138560842325484004018785267044938882386012273578245663669942149593661095900537201005333340891621085547854876837115353495281841372361057022665928897237857205689444595303500210307793371555777679008114354442481847910214177047647527354375928600147346365878880121785160774675720016628654053531533634063513474058426601204155286922593460366104299470754775938035827441923323064216176956057503243749016573563210105300006999361608029523949908710964152369538277443856753245892032177821933412583360078774745593561502750341411681033480456548642717337373256897364423784261463046041462462705008905859433740772558518846517019965764978028650379666804612382599643712119781382330876766730909601977069910072249424131527476939778657217038889795126811788741278689618416512532499963931703764214361367188302615381559894939221694630917016079164745634819683712543328338845683966037751740729868342572244853731811948953695408799166860548289543904085195119543371319410546184258912190273884304447837517397420820942023540330842468770655971607978912629337277594059290219904812034098166666026974612681337647150964405653817889914632800415078373085552311821239364971689087195914790173628211272379468886619192638512511667852027936827442453703878780652788367347367172542850142822418575838011566265649519633832640029622481439621048923289702675609338478068040822653200294150830768315104063807252723719491229485765349381136686949745313562273247857806722028056927640247906197805488477873980357337915290410261794038042803902896239049401765269418768503943621495334090230429840675102925151502356804133815113361305970798085538358747251173883260429691650719624199132694509419817211917980584408233576891190810808777712553723461635244768774839865038514967218475603974366612414716355697708013048418128250121709848795674025279872284906361854448884492156095400344247602570540775561559788803023977598302289529487494885499267582060255798149112184336321594585266745087635450299927136381035753725954742632565963594736220790893150680409905032562690849211056407164136401973556585388247365278287852804980039638287731504908434767762427622013787173077107844203409541075913869026355600206355492277612184160344959192804019918311073604460519974544958008376432713337232420760071298830492203229504478810138645507448549363176497296699597306907582724106104168089740694382673890731542975220148813047953662076126885128830836735493516090113981005722566884718428209622165388248064405984350388051445104009162379782803978276026153384233039582969083507061611744612376575661393429767251970528705788895307971189524655723327016208318311781527559573847424509820043180565893475631366319905222872752135070906974667307674302261765398854134331324675460156815537636048664787380670390682185116381235341096129230622015237604107943707517632669566879462772774625058028900487262002429282393479749544427431762781014178193737365014359176260954439183032208310191383921122430726423789400619229718087296699746490434555470184455641288891114151042806020536934840218735166010789099685345679121929261512488764000890828715170001245553516378646758696961892725320363219437435540935303806229837710937514517811860598761175453002004139847943145523872695115284380101539581085842949843205157834288604023813292579971938616303388006705736845257448125383530298692954903773006240476513989523058110631173737042021838925437290788507841148058793126361227853582728360129632185651667924514713435644231661532027822475399526222818245512602014188351273166202092229267360812716381139363604097371725755555485569046951560794317260209617218087010268017242097670890103867074496162198865457842537785279946509292860475537527518417736990146445679597554456403285980270209087135158283182102289000651304418925746661413185059880542413549209226917822200580840356609738676238829851131964843431470440931607618191287039806512121668484252540153298789596501007427399508069157106676845337870611299326819580764359412979094222981235290394220274427555615188815361024723241890416702707895613662225334681973296643385381407823493464174952455921565839888483804249603757063481635389467190243792633629914229827077269264513390774234936425203423089813360240185587160770543696112312231539537778525190174109402578768024654431954077191640809000073331536424732818230793028106538102375598618929548396498132482426299637106515290447834948372762796050038913572093828601488116355337624235323990317759759172180728088225036104872550763109282116270906380148469924954964809847502332861387523829337537654140150348028224502124923780175705544748329737738209509307344682421035172035125278481227362043787326337041362161080128145678764707144650998153385436413026264801675225358664232679231355072477984598456487484501678412759901421870585956773665565524260902879291099907034724900640647153329720172269689639670327000974065715223355813199940552943833915005015220604275446256066382310777424207396090838875109421009178104068803179661154877135478605001420215366365701937750857675989169722541222229475778810473364518154798072260696041665839835655224286731562180742528793212216041236223396981147378931765454994474747709130663226744602252282414265822916603404260038511953590522479073563848266518577840108876787913397979317806685111620838303877427847913983412116667059366105976301630126496449871946647911148909738959121045591560706195586622889831795337502904605518347040683917462399936505205797121858619152560803729097335505974415155982441318812011491953888137363531496124945848253105371124625813766118064645697228250753111623081383719805322677897630805080574771619907667675564190773387983503818606182955064639089936434768623170084489256297560214007949004806924003136467830850591721102167466668701489833447420792772996825383170976248027618542229066974863645870829176590254763008695909239476293464801080836743246647271033223195351816183969411368883518216341488062568004985090222887639918424624027276686788107650923679837934271797807737505960715437240962704620801885286515157907576219852380838560265245769125760859452880940129508825260277740730159273344996527308843027042709037923455914354582148687006357448367031424308402144856641558630680348698232013094454639730914458724517454033908256837073915442378956058377019088132439171300216450697798169145603640741295133740889165594282943501323243658348916835336790597400187647692855397210090458365246871126970237083741944804570668927450339307820964473347677119736282095655502420356132585749440106238956145388846191655549969376466125212853329687678108337446400694781793818508889370048410799460873080219970511290930678903689436783170343511011671651858778049239393166871473769167801726120877087219451925781824470563324619943123331263193905056159764875831964458674247853897140259866502117741856904646569133270689094936321834036657795437685582372361291594733329696272337489721164117176874405908144477515351184504692474871226323711399153812607334700175653800838573912138734942372880218957033913911098355924661020536781464967302847796770045752480201480234634132043686455415926120592114514077784450664737672732562728855330081289569857509828794093282248408814947433413143968734675988880646870089754098915421952512364528087044628336232134854970032883437453817269333088187177364741486145983159370542988323410486200975112993070044626962762128741909791234734341589047188112349867846066329632521602784135287661153021266105474600425127393038510633999082980121559404773841806280131039203216618941182069452564415775683073403735397846732535213843376701580938091056912534181238515054701254477936234991947776179294302434430952519308735321016238508477666511157228501043268274356783041484978735104705913918694483124520541859628252519193440538376110998077758626771070790292393339213585832553072047185322276494363316168541456863112502455495167161543314813261920053351419731990219938439493204234665538546713413910678692028659565633358730168206784668133639155557197513179008850853768573862630785400100734860931724041685929203876959274818561982286342546215617877502078762315761818472613861993907931715088706329432149859452230147686127106248286783119993242306836324405079426268354440756432104738838915663724978891521674342756022815929221100889477523023371497818565155982420494948376497283731754526208635048962771415331256525489557115110090151010811057399208544198117023370307100027497248663044515249740891715835002176824593292706650696650172481002325416102330853923184446262115587035564716089336625759080824509643125388130921276131843842201455932862378635223254442803332585962321100166032556467174069776686021305447932522173943909296340998252409189236960314266590945998040546377372984599670324977248123280160325948777303573654959272328187975928995243497609948432916854240403232916249814113043724253402133902107625957220383460633857955789226730620907119168166819717065784621166140386050268914970146045958523070057088082265953888025039689827830606420991587235635583049984750903043677758447601115861862280818093283826363917077366056551626842440791083526088156575424838194578916713693513648994262359272686156995944394754364039810579251705219340798777836609740749935666259625029286489246316922071005911960533755798631554256673340617161526354353375742423571256745929894348252572263375822346522832081828065737780713776358040185551759683835333593473466858332200903760509634223358898969684296493016474981723887383775404604995040250345228682418201044215087535608688256974712110138697990589692551208256771144174587008545648954467101742272523839536525019220153917476695013599169054293801876175355795280508174188383899021667446640451485025020962806899860475875717788835872832374834742611667059775868060623873399252261535035452228396533049481778929243733999516706532403382209182933020477201549529754823310175461154685735585225362617731694253832847052143385765488131998929646559006851901823804797161309586435834043762425835177359298662508737046271911233476553367709959874044035249099818964315424278551402049193112406754475922462994968410806155328949296926194512124608959425372807548936840874626148220091333558572985502712747068315675216010876315715860047343050355654146731902906331520317842855742092734309842602690571950441389935476996653576325389947619409371892956432990196893903646243110010641223072399760603788189128218503376201251190922720447513689669392187175144680653583495858453450094063787410628104471013324045166784190757218719940671248704227510029324403087024007417146542396442208583467116554845452928010687015534755110883222671258958829529035287014562708883670113407363321290599951490948298072295377850543143254968580172725155004673956839201030948266110077298942688066185111059574854837736023752417755090231243649209756840591030627474293467521830556194558786406496928292035106290798275046983609265991232610858615626093912326960897730473653573405872014108765752627784538864362863886510031137042606907688555770681790537520451618454312297954972107005216034804630660617739779659814821174298749679628887363645311536272896477305881194523683380304715695504428205284289172238566294771270970088582399642501688343285191008060014912534321679436250513590210070877860774151911268988132241761940215694406145903701039730132142410404167626350785182638359375316423421888343355517257050300304124490566075807386354253594625880684509992673863663043777071592543575272217302435597232912857072815151407102739030427772554591057788957184474023574225859697717888983383442630729644865407861416373171845908486621394344171282566750725718271768911587256977919646777270345018926880067026061690126134020403497138443034160939897772058966767132737449708880877803061370762171216418309605380411816856483660902042076692049344252739793855071627141009669116301515586445911435599063294530029127265150149095686278146129313193040980419546707808533955171363975566478947962402150708743596022833432600712297091182756191852502189348039966250985362157592305164887258550694011275881363637974347230809184087017689353254415455427384544054309723772823218356873085373395507879715610445212160000359621962389741969042946975427659131456456016604302802492422441938197212692063724003673710031962885511224375523504327997252759362705601286807908549514256238533245009673102990065136958743023875309230412581388282958147312248822547173128354351882302839003622521826411381931745336631398770666572136758813581142396250469246323750014918854024066060598777344751825116071798738919567236755208630968986703780142890519528949764793993905879227053616478728319282603411583543487274205227427034061759096184126339271839103723744796518096875962338428373016506731756493211787320025502209856271380700277192131442730047112002438384759105416715366843581289446165984204295836809434000123477629357781484255970934758668885594870659919711771799131552562609926629130535267176747916661051536266203705769041618950719497306995339824923258723691218797364350917182873366361118274860583265879362206909357589279059952106286355042955006399577753401562617409973171868167513233918297802307746712570788217816932166404808896883548372463673149695667120576963290154458119697518529878728496463745378579209020119871682811403471092708981671787448332501337439583888167743003105872354683270624634154758158678915807773830517050538181727607528836384495001325299878264955890711297558738603685036528823274136071427558296296198896507462897198978686755240012389661239252842450196971557619285269074862825222300773697982527658513511191064850764930645866128590751404267077015736286975070243592619425156510231361147429133873247211983160351788430604656409839925107382226987104673076698758702253099380911420844469150600864261074356852140590097327142251357220832658348691433480354236399916584334102120288095899855313310213857054451614113482207530103220339852432763171085982811044668980767287877584491049632917346998979106870322228416853822905960006542458635521946200966761719188108024069181044446206168471464277353374649810040650714637653863068987817212682486558525062388638738762324048751085944761419859972589989550126734309631394982352365824601475435044108528023859140988502375359398116049877247460102157006092693972249993842666812617612635299732434791885270291053506597647032486897212120526998233546163837043553610216700424457943192556562327235664706088083659943568944652445989674272834099429972313397576107162045044717528740369830166744394803261053297415494030279365695703670904129309113813254056885694639137383128812690463020368548304329048584813736063192726136582476303012014583740523281205910343117246054915745525420709469759477760024998235364947599372377968713060325625693966814111069711696687777982349233118234579292495369568887427599742372453751836303616839119684336278222438115709473853748432630648647195910615481661448373856834088241072399308959939072824390461912100032428160170255677943827467781868662038736973277220472435353803502844546792157606298955873041140167815941313151764239261744530796827650334419472917240445750062001994934462937198253189502687412957505408512382186381261593197477096800053563300354124946375455730375176245811909931765284814041429263748771573424370538568673664922415720983985277353164212940218601974742193038964517209324758733902589310458121997782397118737431034343873912238624759748930769096714548480754176781490212107046371912299695531645805089652899750113153232333853120034302820464052212715400227091868208184152662910057634953050056669142488220184226233087031904863504800067843134985530681224150472281682796230024673808996437706199770462598609329978536266777317413531201906085040087033007860920307926561775520898057010471016104815490586459045382045439427476343536621439088307302996428833425429727969925157659380981908005766347826342784115159431175038719714966951211951762505095986152453869005925517923489530543672784267722367003493852257956430997980525961667825235408449702633828151370019110715951064457157547711723144617180585536276404913057560868021116118148194579650891083631385950440394381031688638434401288538667402571099236543031357574135348071905602338333121055722117976108244682041086016062858003682527707417300335846846928006810082704236426657424497967788463499995613885424275671655139175689510920295702377688439745197437718907430548693143089877681792946038438101413360265504759157037017854810286045492252205704542408749967195056961438462819375411384279870769175446133727148547598840099541261453447412456220675499365037578858653692935003700298279964855565001507621660420732619363785038743426212762819264602824783505177662351621827553093959070609946350224566578512695189738580840972941740323891936363434082962729363215382150199485263514518687003302991083858383055256153722508492734171541116978302035565206493708632767538106539143661672879324212768723079975027799420704795311921318000686228237038805622630295960625989249573620101231536587033836003843883932851889034368939560190402834141238391700481570928005154606886986910609969169230483107275522722347234203235274340788513413869121501195018231216386576762162621035743240097994842770422629523511432704913365189141017037521946017938388647239641799807803702321501563504357305707674861501012512920825893957129780346921527692073004352243374839902242503811261832318735154719521839167192622443980206692570211160927263392195689568368451450350074665562302000839627809096212022067977034753181563463244067059856406000674731792440900766445776429996374590518348673571965936455744368040579918132034978950477231501268620559205998275957789660838011318426957065748014016843668580365525791952768463640373755269459937180024229577298261477846035246747818278906615985714339280300974783861481456619592856038477921448535334428484032483932086593733849806495448932378998054710555121172634539788603250896708499445817297745179713387529465530249379399355060953369438898240295062645447580275214067566464413092243394762377833110087371746486280006540923398983385380500167706259207179744310695496963220627804809136011846606976539159872595794782748081912982311697777854839270241904708736630249565916713983218658709622176575198415258077320119233449577622779939637162477760274583648765065642048919439183557002830827852588362081491326070840279154349377033778782920138945244643728290653047305122657607249096709507402345649084250200216112602360469466630325678176242959989485138528009441175577902100420518395630367353503141328994627388273807197374583375778923904081611806118092395627199294049456518824607540159962144366508261588268249322352371017962751182181478708496795590658089043982367281427137978194096223456961927632337705599687642831089893989574158808471477851706475866433644167778383960230618516049605691048013586366219908319789042625183259143858605755890446467045355259089320902495141251260500357913207473578176045601940729155309237170686412118056910985703288272064963910562915491969249604283131448926554408893972568753007855090418056195403259653282664717060113321225170803028774283663765145355999569206768419382695554110418055501915795238762984808490514164993018766522943886963301015889104127118442759185191788251267493750140379562541699011229581718500619073962942684695545371465470914181445492451409366359392439163206969510669509494294397945559710843335434477547488344759363230227599866207838828267532438719749934159218154726949487297204801961697577606475367894989437460457755007281049015449001396689197730927583577904361169226132053968643948664754927971198137885646229020121277277669534003728026289925335695170231365068843593016827075633724978885848407715752015583410156956959309779411354481333424677591654786857650262726250558804203361384776786680713528469924815947918275010771867367477106821469546735744562202522140207107654694139665004920671793111515104399715061839757413796178546270322368537300890909456345385608320052718815258498962842746801338051148920432229703569227472010916596830802921375949314900365488256706425440999382239067784296525764576665772351227143607728057983077161220423598878751908206919199364744629555049380334191170853476556965116774707914439047859305715791504595430465532808665939196554609374893173672550985067417380207693935676955863524323006934860001295107034579688089356361168096700980389864724776015924218631051796363375460026265652017999277490728495319865359616209256694350300643458130910951076180028915149978355343197062820723516099365900591718907686775889481279656803277510198534040723537610942389555011991947612586105185020630829566698762015631918295560255483313109820894014066113971445359270047290732655234634717457267073596678430754265834262470170575349513109331636983887504121709688434565181631814372558684654339356624713808890828231686820368999429091301113233254458900725782736637431903842234893556014927931027447569504256968809542885311224284484499135424219886563766416147902451375221639473450892259711804689629647475176922509658159550392533307241141763234591625239839134148081903869046180390395781409665007535235402499487315288029039026559423843121130786453576148247515510319045261964912844904480787532918850123599872218355326348134928647303215616687714291168003724001699947358205512871374167074757599086179916612670938154696589100705309215862077702045731709737719969860498872074835780100387621775556196221353413893784339060922507393260526836077951161143516282669020753540087361728698060094139887566019893832098190444383450482358306082538857204824959113601911435635330720529468097329605887443181158989921821243598064288347132755297201590998095527227341682606085994559738326065365827186045996971498060084620549566823437456369994494233754352047837963164750757967238270241609583897901415294484627036771815530853219224106848691974102399090437868893869371969597083327606662897220678012569817792742596784349590471113723169756381771551969411997737427668886467749359686192426976507822154733559364333951153677075820115648225651077091575535200075167733410220884556041318660759146453816110819322981331761398238702280837696943903377629717784425040081145973400704928344315520368039527862097615606077242125478894671929743145218073339103619252654742010614127460276161962604207606078229436650337393700064204457327096121678640693290704232706813719219064904125660719955820999779485162020466678070209098314034295605816428677930451081509667804294121412047741355237155692785639091266571724997003638565383986737820732475147064512421487692748809295875474199785122505187794165192915128692230487869546601602013603166343825605613927656365056406415844161504780153062603790160857081617238672456138460267582744474302342927604417761471880402508091302902833921974366251909967992761961687860692047856279385903576461341066481114512383204090518922361908236352644873949821224927871435277984625193232430063144246960159965711045993419348853862826372333488644662271155134636430115808227507214301380340810514682180036453051172062859098351894550873250314088537873573731193528977204969365449623638523192652933478622125589353497428079220440267550971517506922351598227462293703154704558870350313360005194603473400283498462425075600354613550196762432083229122980166908600740494030466027234574473187741212179379616844872105943481105390904189671596489787392567748763274197653743679494263132560051341998311331927436391423790623750725891244169288690540156623096371657354106047577625599885703365065230104653628195439693113860137822769028641444609665338342604624303332501700555641889619636275420749899602278587709657631580686860786748476422490257008752283932524967177055983961259628195525788386896190230939295208986403807268496557844788050511199465318104157443478625237779365601340188398468542169951025993998910123151741895324110423238320308220041288476289914695027736590507326703547733494177851057981740289091647316837277077102383259875405552479562066444444398448943787868062705207321262751235976481377095183299482257137078852848895620396221567152321593717735516501155405936158324180558696556952217318244680780739576540844230305565731101225864649720138689804608007987715872877110031318225118460459191527250402876066600865108433204136497815802645820603634887358389441431361055338987140935463652367711410887334347271344878883493030618699307178922019600849516499354700453882527167092273930807869329411496671279559129032004257831269934994177838020342434073764513112629767452680746949254037371962560424679866472851367970200967034194679979873560928130331628558668204421724909746374341989768956045044828693115950132282219070227969641782669563180661405920403839209346861930381649660268829589692217994246068189902586240488154092251466105561252441309159584181754028598611230705670106321695091710481012517028857331314014330684903866914203783285026414402024123941644094959883140379411131390866041697102046036168682575440161783075277268504562918530540014791095596098348193892469966276755928789240229073521964971096715136484870068861759236079171389468514767949654833005683367158384267938567829423878603811747506820952597559655923613360921620450304245165762776795200232669871410552049550487395291332642408516501700288746908872891873775468529507089861342713910495603811207627677526762149163755670986500998630582545083915085928710359695523348499914975883980463839329810656682789463049718044136550957267995617485992233525897325213218372619547372392028179267196903097428914747544808612182386350867627000187826546213304920818999416965751934465826031468749870591124074408491004409487010951432995629989069381502556241605838592365454818188376708302265538159879017397159340128835707302387443510920399099813474017194398651998132399587373118734557132786198422467562333171551024061182660605733632809999166988803296011678791199451617268944735409762975770931946948458433185621230778808818030474256643348610149111715424226427366918268151936984746920108251137728859578959768594798410012186917522568494152186037347980968804372965592726575167433745265819235697471613242555551297280705834348356813916852893564907661430921229108739637245498939826770866058931646132503563182533590385022554625163984359180893086244237541644165738874601411567571640344245578170062903718709967542477500587559626608314150411702035206842621495196933407793412340287900460030542037685172885286883687266645873913281915995318252223843556670106568892797948179995013453660512652524620242842440854835108159692193620480279137509279098102314389762466844345751544571731145320923249978959303623812109686321599115171029642432101201155156901237716930826416217352999876489761333382982432358949192755790259219813603722352841462459914094960190029845034121455406877654730746205967316804779041782301244228405388505203833033797981024887899760770532201046756247360619697428340514424377041618513847993313516170694423727351260992400437740876955647034226577227420873593685622505749741636086786791388311319934154623497104599506660463347890480037373001533648345762304311737756439001635797494419432083971829404887345918893308184297218134429845732628401583872292567849044444549997565158754268373640051899514707532172136657038164868903758367857574256703340042678285276853048452853224605210374001293240185909700737437718562756334744011093281114656540354840970713932616142138305509552733014766216922498047526662800168719768491889976804084491231740070361779002481866189484576008535839974786110280852141451124882384549147559876967558688827424832287428493197289658557610297089270898109838005811558173574935008576058199132663500541005397176897130980673969737748809844792022391685180315741215726197281544373571274319590985318870412305874316060343534474286050868563385507296265110010282314177827968984802100596028244201580935098077106742247653681660365876720173230980810139207343777445802384466737954205603226280364337581994859817782145320978248316379198825513883171476681638634492941694830075914367224444465818194713198108849613075641878884630637701638241597046651410220682667727121133713688779110162818291557677898339884979148351496253062268443007281918777554707946721554525408735065760963350617396674475172457545374987832903720579519180441572647300522220865444098237361260625700201299045471551728344396242139105617571406065408186534837986778441487168590122231920868341518364523788054392150483891981626549002103093938700996244327769214811038656115699210349004084232474429728453259710142978202694965375725127831245488062937750377387699269479613683980951343008847016443966054895300836656302041192049293483542063794620690147089631039540806398386929843216859215992848573102542656198888933710400981666254711244229913380643397131917175549943605043255632729233701784961207162282920035336814279551296412521412175320952909695680756384582121023052247691048020886635313505775913264178164707162937864179081940036331454659635425505386588447791177178130761154148645090599679824146178900323325508246796621828134785288771678602892058547196803889380864468600814101856298742157197169910388432202011845557922132062150587817402474497842382782076657662548119930045862263566128761153104192205959942572384833058039415139354292784075249644506427234781696284533981257326221082812133606170437644487574294813583579894755324400617733452718891921874990888274324842636692225697853851070865573924920154428685373215215196878812619844143222443083298386125352195328848629827021842881179800464962956591839291650651366281274693151330492191506288333394198651524563640250846170779964158080646232753965933087084899152341009916911339166945189420163410641041073803459784605141010393754287290674255877005887491963477905123081447203127900790636237783053949255745525636846227954709034015573189385936377781292624184836002499748246824528610444153609989773659525481202000695900597497170644842399045286254060383212516932768174022649927340830438856477584923582984945856393303453893483349643538043462361343539642959218238857751420571199397395519738669347100374890720336527296022651980845225920763934495284931201032390171598792603817613448439123069061666962289616008752414308983309724646779628195194496895437748988195083002890919398581782382204307211680424946491961094738876105569440568065521613975234834301902034387529888113878440862683258916297897078507476390175330217932601317317730587722840390897956902167576016669698029320060841403457895249701281153282430606753113376342023172781874799667276854376127397804361537936960442552645713191613915435458689374011492971271557335219493033690877880789360155610582659883443012948994001376220651886504195638352036732194718080144966841631386540136511707754120724498107395661214654779170607938122084383462035048492275922615995664583540754880808688667427135369226571746108194217338667136528652649253688922211318970544488771481854821149975645897424662268598531748659676589365266898178305838827054282139792252160623766420743780345746271812002048680457844262614810254763871781717533284385038543560099877660475934030628514081724681212360107772942654203557074627362648757488139232591809041682274197811377511527306619709197386809436268555812952960863167892347836631921372059465446523619960889104407061777640838521523497692965399278670562905814386342758499009124832811894994594462903822455665922832258331806291577890142701187153445298758761491832776309856388657886725965973216456109287375312283204116078783530572622043193414284482279053422615360403186085715172340907265632750119366386748815110975040394887116772451585391839636472938303401706561699844855946638264981623190116786177277393545458552934119848137598350310807171082133482458278773617032772579091852169829635996321215692763856342541105311114733286901033962546634638462920973888335521527970487533605478426593049235433320020560456615079755537755673926250681828042637338873442637462527455970240926569932750887282099581297512761536547089318581466024325848712298559040482428525735593452123625835320382166992950024927655998151058885925754402272604741988537923618004956643098617473284922506064685528519535407676628703575328366149142229304091073639650610707829223887924060375264506830828494842642189641894916319470371087593019265250348852536438547184934816607385044840420767154368243265300089633462220396007899760608712326462869809474022463272253551842320308525612338111457420827019695454374826717145884577149889825959015763706125326051964550367814854390380673797809516551867795667926375574607220141677011556464425159013262804216801358171435370726492568431151720561996303248306040160142512133091700947706111688689662273460961376265405084011739378647619491538390897419045973389272154902845995712875104358794712691783725616678742305589336988355987888605724312176398452291863493385945658521327449513466052757557094148409813456740856255163149549400037044211752995679880590569486974058169661182274563598566130259986528970857658418816512048656589518610988363744205697608142468808407511246852711309580565824192690310891717292909393176243321014632315106897328521357643567009185163511493789762216507143819234290310138620564962319524832001812509685839814198553510535413503569866981427263518841126991034490917230160123462950473897610289759714569829862248181896141671208678486581397205980265788527386201454908916966089483226571484192872620504708037383496363620200134570947297763937169177766339532875993502081289238243676251463289803839290099544699275105655688963865524849135895136119859590447605938241864134183687439965719566432536505995176014392961736840491086776787961610656283379910816279508123596189494776265986678503408017610178599382132910026890601264923686223595498202293136121346210566488054439704149714340236125168789679817481547859514446341547525216601861200623335165749536708338233867718849931255607404272764077795332187867943026321423941445498179261932696544797803474116645234875152752111304133694149324074940616219214186741396673452923537419993313887589362990660779631012487250864052715200415231774095394578550277439225010216399184109693360067243531880839291850458166858831665668475626922597793608942966189453177905417048844722290108151105339411832986090132490506233408518597788935886902758835601328523171910481073045185070777115252471691094819470639277256548238008053697704547476227594253657746932258046988272846748026391428873272005484802324065993512267609389604003996554159153955335129125422106300649022293473206669039341056350730985468728529470773016657098210465716810830479741317201570634008683171917165127739344984531370338290069798048668920137334378914758955673028925237602492059444251040849048612297499893290645963427672457954144591941714814729879087627983543157351885384690509317018791656864718716463956528604468705864455657853488857170647124453991131038280096298763444464768220491275507336159338759232642199008167603662326354981465996182213154988044366093585836332620738019574085067315314497332605446640219342184947976088117192145785265074986685490630310170397117356235126644556325466986620272349719370259733102488857747365851454061620671190150936361674771544411809160899552072168571856355208795669949496480407695967136615848301369819285831152021946938371468454995874125038890841959820838475924633290637841890857934060323034869723966345733060077136167100282792745281300484190641000102751919565420598966765781033802296918641139095749689590065481984267902327063175592161179011025721290223599440251598618111857067782664012235586207288882761027575387329745483976964920179556186100906264697414250401431763297889183635832996414244131225907238533025602996583281080315770184684213928410708694334834591042354881750947007589020132210023865914406514225153248214420618502988343076234864968710384358017352481203886778795987164068642520595327766570958331481662366248709369837666273758848582184151547846495300594478696150408913591886962993146908341626009280978610946490970301753021164612353313630479407959432625599309311058099772300196833935279337783662080814268160123878478469537325940753793042703220142017658808136647791213747423589618093176298964516042387532363626391680439253959290157379824468140291114249562119150853524118678222507938053045949226145846533063818143289055870252042001030735302838387260627877803475290106898731756630929149720813843840772468648656294176846079948426422069705753048540795474582376223011960872705201955907490377404080907905490551425007034694120013073976884359408995009298850520712049227712006882452944732396615671955085568290333763779266056418752495127001537072560468198127411183250695982455484895913423593547401584198090873441733163179305683921218281053193877276079095031301408896869769946005680103826834180546680798192914655523437974477654659360334901851499113968290502986882648163531721733860738980782895502337301418436252570459173317802997060068842367800052847030954712459315768001403481667023374830163419732028335977852572927126834184872796261886014737959187044895404790512409362729923950462504910051153755461960246381714491605320848134639930668706105039160176178468371223848205173064255524394013632151144533024272502797971094544223493835024377519677253386827543076913319796514979770086219297300316217395382640627163592991366685071469171685026843143438378843810760523933129215159561587339514989898056509920385217776936282117527395811020013912541283705276890969789343297587532456803879654600653882948357880754925771129754577786712560672884685689230619996752841626747031137590750858214549934084452173250278077626756336809927280632024979378734403797408026537768883092895226651033511484463954893029647344171146583945282262109392543903483379977785258367301805350844113981549037496447326462266083019092289050249041064617251889449293277349951482549080454585906975841140438143758808259141987609406155349017258313615639571248326322975226929310426304675839064167177978826313455824026469238404389454883364442295105574584176017447083243469328615562731617756362547320837036409159456257836343490361228350581921974029472987101789811379275727540234307756754272243033726465418493268559033826273319641297840294714593930713537483783634224961539889672049367655896519991649427134671395606561168320187410642278500054895047267915479459598385333806448798292807992090584571667312111949339771361627649910731525915549300077417407980129900889294064225545446294886663207707910566885799892088550689851876398209353136676135998471449538472439312900083586128888370613149536864153581088621310811156185038716018522905001570117575213844232380421828393036180034127657170618863061038466969126463946200081744694484457569992143089711996885688500138734650734962856486886076850667953605312362780963523662308228228499261837081577910949789961136079696222943749768480646055253816182456103952517933387405679481144849056541015179122536830354733423090558549873020003075254595560015103481990772795536055551335514226290441397640468714845688928103578203996303020872892728170702170583420570921208958088978108751524422015426843270931362613387667447579029852440206190161323597341963098424346994521390177546835638466099893578745035927292697960326194144111058014688673687966553807142575423263143104795599922267499206353984179528285382956131880476833901441349887834139121079656400348900131767246494582655104521354422692974453110044184315453583033169979809393848991428118426601644580486917768266709542372427661217553258468158278824218996081837165253162152045924647886684834155339969856762570801531926580859862580048524138587119604598757982386370931852949085234676211105849020070827210243913286432296853762230015303775970381264157054727117588135802782775173906158391928495883215349632514094225483838895845110716325714017433237516868388635329435879210130372773781016271581096510758796094708432158176442540542240646071116111641605981294991139909690568108641097150963097843771625168506214959849217760870549612094213918903346823358863129471620000094046891262913387286757674933728532875976085479076603347931095587756747377949755254277731773436333227780916621144756566213831116378529143666211861576813667254124869254164546613886448229028395637412083345797670476178566294628362987592179903828364587528824154621628855652177451069881239747615871373475848560581330029891680167873265130482064434189589762764988886294145192197960086234108593360909832925949221332278282902622320988798538158028426189651056600813976354062221744234813419892445887930811870671310136256131898141428698639626704395810520450824761497053709829929683558081893228225768335399006973379131538360977540065200259023482196197067672456785502953803166059368346029447936781288557503990428756178902527919941948004568551602587712215179797045898855106072072469608701119107067507597454658159395066972271696029782809062470561766670352917551779756048386434626705564544773356098744753071134538084468092038362708063283206690186075286749068011897871931578494272926625054805250017059702025663133009346088777406329216173671144325387616852350236672979687275112560724147087525927637847297366956943593094164791549719321540210853308717546812526443810418872679663887099491986980669273081185006691859831500353544817894113315862229105587302451721778946409415557230842463786329946500923729582942531310585050278638189804245019035470007214235815062727659920776075744594761962422538161844833819325812517817049247452308727981005374993031168359759341155160733182530953069916854273552929609334400841631740055209813627837111321707447293210442117557143162318499051460261822068337152758939950387567073854769158112401552677762243202217948902661980400742139660385748735135093204879666796033950811087574756682777386820589884457067744998147050680780616000526432057439226993871281252909756920368589464839680273949409412391812693103467241611254634079557128627075685353505412266390398595267005696980100538094990407864083003642606488654527820954756200550527676031483288961022024881644835852895867115785363240362001257707091505146543916495197953675924329947569534259023729115244246496974584731415415371220411610155928929315095077255981446357873837030322922272871099549077675131110952086197309835234667568223346955372566163195169287223069030486104106401937350105172820057754809156760228059669541200254498107898997542847700473901696135352735988219464758787867496166317719596958596521921825253433418279278438645942242578181621993241162681531614392856617036755361203875571084436762022346589344045865485754352177210247352126568886421619741902587057506828779067213450284166179096077137920044167283562105000097479017682304986554119798216971034238012755583341907354144786522974726151768755940559636264308996734757111858464830759232353344858457385523324685868764379379575698457749836460152319712405930141459594561468188925207290251904774411073768410472149527485389396351431269596966742940330772015996541132738472678414876028171369961007375221908129555588431568326725042455315885199751776293625763441431602486176127065845955637301673142364760342252015716050938464299523346878036656168521385102617881218867851257240383842288056017695110332142746359286332288098643517275083510392447851790796630792222430223809121468754924258121211705413527284205424457547802847949119664299509531510552471191816974265561080528340458601289530930841332266064928497595805582020020930564739201207370452158761434576311839813789721052269439365842993509636745162177300005910409215632271214791510156292576413858129700497247717822625807346521658925329968169979492097922839933485945893618825777341393872896697547501382317363857985638630647800743830670828069106732393859543304699549817593822379510328621782101877802513268754803097982292601084018113812854934832153977490846166940718345444837545903299160055985189854034932709578734793767825020556554427242249939110199561129844589157710328631115321866288212609180703929580506675874322339028811987436249527229835200136605933668533437551512665189847870883577192401324514340772575149747669381511187433961640199382734878387891196387368284153534253057073063519874200869429033300747567937319688387914304045929472263160424600386621405417398114769264934568577354865435719610375095762561319253844382346287190776204574461390316029904778233242616399614115274822231809143504689051002494168810530167124886178134848741012108375803518884259301568584818004185080819762048676860818281053252203416931526632735009025657854044182366903517754779068944553775320336685800565764937976049164517064255974513218289664130536694313085125140757593097408595009859767715221821713938001949237876394204663694736225308096615895987888193579880886290255810501242546158919665703949513040275900647895339132274319515044772153936328434868190497504517745211097979153842121595850961605732569867519728763961245415980419130683878214643396312351575404272873394156384576015966643699813377723519834698383113447123580160890172224421516751612561212650857173343035489528353483050097921817927304593623556983922362705189118884896262518142676506793590210750257014483712254150405351247840274247423742972322204289800257604227372737167358754569010970793546728790588946875446424313115685955164646687151620330438872955500983359163514358018150920685247528906005702065633682726941252994732760285339387834130889232751652752289589131719384920908078031221918738582928966550596553202002216622105692895546653900292828190021455510934501691643663756356660761067099177870801473829535815743391432349616459264754930489490092413082639806578121100344484374861857197592660863117968259514189456834776391454113549631081422278906669923386031090456605378485862640513094363641275023257020026668218335453524251114690281216702035081764867698043300837815006592078080697487129780412178154771318301611127683223054864709693300974337692515541889250378776801384585157555981011220277725727926865431875102483400210491610343331913492739284912908893759007819071241595541421254815560567238580105946212821030968608203348679580515921334316691140079547055406158614433400343580035341988062440106977410356055537379831981635871653679987748124229049551999358119497285665416503870069601280849890939372995501692835659996763037484601936116871417245535744219008601839468653684921238506533338109117426816285859223606873656909440915012579236819123886787187835157248118696964205767235621710391950565533385721030092104511897151199786589650732980560379784746385895486046323767053087155777038487966183754181713998179080591216135620783022942695244604903215721723649389627925768197238290430816477103846029526171044435605393601096505738979828014731682880961332207071368464585358305108228356094937751988877086733997800074128532656431506810870238787536402938646932062213780833993089563978931024638995166056348770748826622320402663376403220228719585103842396226528103190225033466576353131609694602208563529759750745096945534631971802686851481038208138212483187785630260206725861674543391336245541558960215682210180391691688398635647021693837531603269811699996180135436828546098966321026797356848729866694272346303251523444693407050928698925249414777742201189564878999108193649101506275912497902771298927719733095100196379045424531345443846370185442200902497947112428547632335758773604762509337226467236865194065805187880847167985053895779529974678339910398582621529981130153241460565168730011098436595299592989829719344396556786959233671699147907010705523527073319570754239731463873968957580891809238855150927412889893326421218162726236921596206297863087817078466347584432879358844383711574163375349060703502862440857056164387944036979093642909605804603104585161876978772242482027589364976384812688733816020388617230897901611838098532161902425634390384177217537711432054251421797223216861283052336326242491823187130402587060656243863573310523555262901983760599117124911769991553482557837125280671993602487819271994474196134642450756818141477958765580720279725898812685605221068760243566324301503164525335244777849149104860687245803496688283623896323287969667212760978240142623462012983693713505997606794891750669224403966464264650472420829155883104991119750776190619799682411825169319026143757361033801291529884871735542773980898126076651561660988183306629066003984828010162518194228300550673257068569962692746990537414238302648413380662210339793107197919268808686041886930173018872259270867146665923060793524972420950821557345946236587544174892241730631788745224197609344142962624708819940740940584692595124454601163542162520743342401826586070313051841160016665242588618336023806041590582480662537845483761492789694582134464712871803137971768819428850338609018549600340770718935822632038585472127369578308102792938804758809860248245840886062341586898549204607985962895513910684233143453388953241305058490416409238933273750318942232184581398545717020927650286119259504905515550625953134098771482006906744394580946985194477566549311040266266766994814325720281210770343051678182492751754762043947429932723899778347478612172112538470252573989448089062663643155925794262628419458549003521840101878436456858743113327163825548585343144789218141382032874453911829026389625920068497304429250249534687349508589709958490101907928007636726971262985095935720601326715965786855413181155719417979220662409457733229135884622793583933359071866002295784910834053634565236573153408353279275792413094058781005927009930384347646403620427257652156899707656855007213671754317811967934996470913006944993068292990556298742633664019919734633201985907963803331823813541743144892433112301729686528061789667482835337607495761392196398764430808767285350855846940159995766569811854014582525707859530945050710032875572603778044151561318539219456851016239504180171719722013370116575214720169841572519930541720606393492155417953448064535520649440935194034837481348827715721078555877277484676034414494776183128539875627971253758357215369568658157226893812689150482243707344394510026083517430122612595762717152703654611947759014031573923175416523014919963998380506033720109359338578685438099500781366802209148270182943435075017066572281455175182120743345404126495032840446870174237841071935730104235425993901967338389307174381658613705145146261611340077484035693828397098621993189236785088628450748542929047797192240234136178080613389657597511580262450815323419939944864632111898712432005107293748714738161521897843389899702041189348150870460182131333818399231039651978326116525260965857066462000465997159205373737359166043193566080120165384674515932130146402680866728895488844138971165884907035703037554876612980503794472207697027529876116521375090200685240015199800973510296004787320776516641334499341534147138549926329566631746619857418344256567813475325961408925836695973872281257205546485925078386102714069048450410488256788660165453547557320891403196667340386567012715353394179824429006181580322355400141596797768773508650196191219259960608819187437373254910012114146698582198511264100147066958448722624263648319387575247682584375171378563236992626153938134241754593432301663051296444819936165652853388932631054611796371294349844555903252959152411495478350596559958086673920418477336146296112676030487850732420068658825215894222511777152411233358261709579371523352510487758757144091403772270825749710151250780692991736615108252299154935664205432168332172650445248345708940333354994802008889187195281001451812860091926654876535624872885997108940708843895910944822196691599625201194246362334763298201367718687736268675821887113683021543558290161801537499882626021703701780339517885968445286185544706383148617322620350156149124822133230648015109004455382057291341410119390065912182684397999624869084787559232125548764547333961191702576665682476925276532096832117734490340772099759445529831148939892658435916561019345310687365729626120072307056595929311695881811094166539551992343210484003311217692408706316698006162010102397279285429424702311266362037421728481733552315793811823332194367668047590505192620865098155975791110620503886505153893865143720470467225798924438253910577069562224609515903069022673639083170801682553515580801743392202007421195931701870084480363221023511587026512945072926603979037417510978740620748217967851489673451330142446642854951687223911393065503316395476094672233258902276504946578684339857370402974107766666080005509902772960785221296003917636129692506191493474596567192371233564993677985639055185989940835962075052581181896195783889453157181078013514878402616418098611414005345739144839917511346536455905478146887645197560276646888109378787238048199731943056146816886695840419022606994444139696404827665401863454180255870658451166684999225140204655999380495209911483872825950681988122646999983059335900087647255258914747601135618925313709087890355359370719066906329530018685681795080958988643865739751504404668978789834237562152020674012513412076025439829213538517155881615683231732309505648755559315476691019817862656701840653012540476159930263427571431835927882632966577415408613488213887344262348884468911899598208049012860707503316737966085174264097979063053040479481215428128918029054430796650752240165817610904038957111783846181030213985526255214997475308288635457220790487909200923917861793370825130389933600287609124155791025173810666847613858088950331086751638777449942770454796145657580582120914154578253060523737775836109528192047769681900034651595051515714476299948187557106504290327424015230017078787988197490528431827106493285979110795972818384662676295502604497220917297215337642833973031510063047717520332859220122603685722830902052077778091183677385339244502003232558806640766387457966315845822307233850435682990627305979496187429010876283935437980860843955888019534203926398972031826658509873310253762888273636461135804746647297035957374655221558219986313304368988740196154685323056510468401958338459893366672455984104901771988903575708645735107707536889833652650795966463931958574720082782063351145881056032023105787642397238486634975461425656562803991264564913667461994672387646338851106645689349924969439154959364493836248271727980947312959929342248411963802715025819430178714260337116512248169283983369714287158706239024646695296957917069872124043821626879250900551978165559078020566755168460170461671411067140475211412488789295766333688939835329980220538172038167700084441930079477782501845422954034835720562262151349408466605512212929060705969065251926126482076051355236183934427809902936915961215668844011279426387992921539975040735785268578519166740092699517676117805115097348568861455687712776294169279366697902619520858424779537689688731978585248429063613167192006569104474276315585767535292052237914806414774660231299816002768709795452601061793556231088915675873985033323715741932704471687305217265150325971404997526759846679301780254163529254457707013393066421282117825127334808792339534441876550987023854749081860452715455372321830068917617322898737165318183428712674290288787069605137001670457706662672204960845326792676174048576776991376392209755304392666945084900187117705564169283633696841207644647976109104956461074851172936808102252580461504089637484837141304837508124898090917707030062289133148254920899065507030637982850973401081733226702101749093718178117009460696005664467645335224970907403199601193299777431558747575084076043286038347667890748707063149240563771817696188716421706168016358188838259463480602644302992595131161154297253990519638431541707533072563015691602729367344742825913640750290351785381661058331753635747777411475724686459049392739862528851836669287110342862642075295690172883001883590904915846902761037623819192460664659141597255539726255607160890795492561747626467093688335639489841598252601838976315870748487203000323964572237735453600382221063267196629319378809777812224633575146771590152590062871579002056786403761080301298580409726288170167469563518304773277036648317468828478576525377902075663699577912760084336467343791573306723980784512982357626031809661559187578299582161516001227506410078025559117581279076210555606768211429411647700153052128602692460538473041996016114339096610948681747768631781243484786724580403006362345147631451658183110543661904318992597116160292118321506661717957789616732826910064550990901696397231285059040627020838385794051945856620648090257921739296653235978401381617137785194549350503767385982926045308310083795449435229578608094952891611390250825052027352248359473016267278922904921220828379954828478794195452127157454110233102437419719491504966258431818744838403085068629465512682657163332617116064511939412342176070585779442532622059740216899521075939237395339313125933479726079967476921948701282247285570955949775659124049197435955038964046416721181921038167662279173120195202203043716952195948701742594886111349061052484306481602479983797886892947382470372307173577072929933273626872489764121987234906323376186378304810008489908034627221838521081847114376119857164480878852258720029537500675903163778308033656089082671458395519323745418857160167279380257284659504310829311795505827579358359779088094473342850953040293288355604276670067119248305157553476150333867088609644249720538136155811674550993331990201113661766815277215329276265253164653290217983268429130352559421736708260461484447299790818056351003719455914837639991382126350744897431123875584427736548458818679385148543470207389505302427581442709842255209573291924871687137292615332572905125578682854927860430755299866403337428154284596160237885794571826059973013286837102337436860222845135001675535695746489674504767083451826551878054092879220669050196358966484215098392652561397538653483203077293943325048218810619561890263336381194129313598637715416691713503524614715828905190136080647824761073283050360515745403821962891981093614172212307002938103483969295946702704579529525288631613052186769457483875008659683091898995612511772646081198429888416124991305086447078699958935806278022996914482308061181990538402906364742962653179866772875108899872750571759944305419591357205459210890847673876826794986171213369640432611421688920400037142264975592804430775368725705418112414374944571929080827087404740020163797303236171357879196005461803868814044836209304206789879922953886736568258721421326783625974563856058109175806031883415949954391721671511885729899255980223757111819447705637100512169897411310202041153693214630761888327409652378968073968139193478181256426362159751987856753147592074863870967734800316830808790485983415429571285062956768464680552558589306108329333039715339009375902980323504790699189605749371093494578935363296610611656059009758930027040582111251442202139858523713198990614610139758782391733619402463501001381159181400314908134092984419445670281920057650337329296869851087016694027280861930115750645579326590240332287737063021922585333458867395458462994995362361113234920004902501071583530302201631358014413615906212838290733146521685320044591693371809351094565365591851589912999593299182220325096086105933537117220391607933092946393962150000624335704886258330404696274465220929066297411778510670855795620147146286166672594324005825024155148331735139883254310362865220673563928840805832155174409838604496371530365098620331305743652846771896900072679351845564492732491886061784032490620387062628811378588816373604088539514768529503539355533616254410790362132890815761231215120529903198857764367446070614994868086145511285696088441801016942147806479460135919436148337262988609090060928974611957734167133847084399291074620531932931741546456669437237755354158181342148564266606491097235222350136652601198827029690604082445934883693475576861688351296046408965135973387263538722448316808173163087122361345625538022169790880731742083657970532861101501431368596160692063316135378362652392563768292295423092259230828183447974088957053609334084893823899508470698572423834890313306429648762696703160034423263006886334657190842417765836372104279275802731944504138845354788308612351814424462338811477511756541849073517279855423699356953661568845780770165647121893791144531359393687304377425892237274566071172797279462422127274630143617355459325852857522167661892176359508529142846694249169926734157878040606147915162109910329602615420256279130430770142626989395601248871694193278059814756114420491965816601177953329329106401118260599290388595123843986090668776525384907993180254526258916559536458732775016197734953485377001288014088974614473404907145612953607548971843634386933365724606318252235730399374123619891720933826664192993391114944747535710231789327078368456406245767404081867206706576255950429314723790965025156156433781729596019870171204511997055278787318215279129285895423923621443035760177338429197394306620921471932488617471756599104601372960321071033663652264032820252889139108215912353909726888869884293066995036556435694122983224781114448508465261246602427193194354861236004215544902536623805986929629932913937108045492460463577513424529867637799616162572666577247759622773798315657818687243058066467122778998503866484433626444840402359055912580707117976044803379052197651417444053872978992740577825244672195681713688599039682344225514508061520236198764207898353317954981418407028776270405716347212892391514063619616350253953415817965265421852563807905712507367736025677291051678627984270512518545278182258727628672019509334268686312606524578968704684031012064590673046409066457907153757372228579066247877625874958370238276502539611905827190179303054193495411748156161282894403601511489657331535664539081020170927823434039931827002286920315749888972334331475340091213599865638618638776694596788509026433077427089581301204367683006465760070331075490600324608306484270896564835759276316918355054382256955877181748740687722054768109673122179853563200313828192533717689373226294680206778429259921750615591459902031117483578818797541559073629999890139229520432421218058506411274645065692498040848523048566992280628096255285879994793889008718164373532159873679267444667478323657061593184463108732126475814401095381416226985547671092810829697317305359544537325867262368166880334381784070977259261507530939826760200047294572251754080998898718793202564216059420570892043507893248291865239493329992369002848802267272449454516486643940218376327501837754980995909677392526507667294243076745156812641479046882833172088449083225691808732685666324412195649378470238031221857031376223102028885354549935429371462711107208542277783217572550439855903573186263595493141995059906799125763050609435714030898594076135894119232453438043108506474747711672592531242425427480153010906509673050002473925405710877801697663698276074350582283862841119657527675809528305848135930670865026674861481730616010644094803426734607835830493956877898251204589631167965527721207804052923966119046588657835635394433748808121709819608755635851610563674624004654341776786523073000986932391346522622340121390594310200670320056506560468796153719300732255890312606150968248974983551754523304126069085453350549616665501034637412991064453621107963489033280519978834128782043853379338381221657626770665712320508586912281160018827564581715901560089578248304034448874360270903767841524232535126946645465050745809914261536220549056369384744511691473605981892275298510978790649617913360100221088286535344548926440747044442748543654881406290339739188447396760153186244127736885584962828259879439635545648526148814869863488051675448733675235990515443415462454327411168570823919888750762879159811135962528176774317304402599014290153023328720844789215838094311805024902960003589049476890861660886706264650534668548532211951013530558053437858326535354702128435280591997900391499895993719357902454544410635288088480667063129961329520135911416310554701294842087802885880645361521713892415524493827988241527589383586831799716389189536933877975230654945446273543445849241223453504181443531039315850618641245826321495742439656324690217497356559898541290375213379113895940367780789636763224518184704743430908589858732778314296940782055722987075596774952693131496346571385218825988947377146262757101744611251009284338448099655633608190751959954769530702775359686208995496226182155485377229090411054634565008713629449209448887964080122767164103072369423150486426716217320708101772734502072359527271038597131122159803500345929137005655784737840848725447085002694056503091585461054801301214101180347844878259861773943697424326183355076920742407090947484893451032103279067741037925319905938358457624143893548779456498584181482569098457142053976500423717965287559509904916258527757818610757251456589063747725670077885843811380345176583622530633034107559165671264566275919403746621949122941759373753242466430073445395596047807771749338980133673259240186957309321530083644468047995768893041287152414300394619366107783204940142760040031458957888018919988836209751955698257918807954791112019707244297073453948866120236825877693109019304526942116971059728191321775181008654051274460995701094095358580341817666440216088784082411482552748588504053305831229420665304086048763688122987981357508395962616895565405449120205829172964200227292808100620971914737706038138369600933631769537639878598920027537101010936669538178684500468250236910180696824023310547557265373567851814501848337629097117202324773465292549567202326252049890208958923042742442899249681878610292235833678350369551093733443146399820020704401791974482407761365549442394304762785705803521419328345571558505611667800939038601652778551897180212025781280396909497436953892306236137627353241039061774891058824938987060053754205122897482011811029390470024960253090386748350518626804500357130688986491050968950765592839894869561204069469818811915683765921661504881005183691422738657751405684920346200946358469361854704340275909207110012869903115098223764257926621362645480904679977860403325489938621832043194586870581881780807085622407717196068108131884873844240952626834183170836592758985361026221785121141852204140489734989410056644085101813000368135061828672579872527509787568796499444119176688877172508324979667695410722422308308511770219943695522567649827570040600748389733587533342911179139770110504707684321391048688970907888541007484371986086043359693326253680882939459977857068104316142154309375931266450471408006048984948894603156701434228682508944919339812226657090928329606261709995603099337687510802510345091476650922782020518404950526978972572231842583819922054019131571828161168514534065479972784935436250825221579964121674980115614106186965780776206489288675065884586470333197815879838579686521628648437449191943607974412664818073209297792408238619023271470789862955958082695166245985878886507774215518206209940753157251238147975620365403441584396579391163565784996661755032955325627943924937125803068760538242024285027333662013229059966027983529051122038287692435601842009536260917304847081893086807230233504658596030460674987787584918246583454277381744834003994089625263683921786849066386429758967372187769754536165690891101934456679347720521753837744416994675986820038615362585488834068474203967384847750696020959476398618109061559760056966856743229143446944798224786681534817092580806727559720041585788722072645955263623841138701847305863758726253584204628523418715998539903519708777348772600355164722606254601607452487833817841980019195587951737760532695574524393494396938511517651437626310473396727309359819420159678742910080606149004324800952876419982165429074579267220631795068144487302092474151188743926453287563495872575890605579729935875342514801791550212829706979897850172016496245049026344466506372786709155424072277480370136503342270252650840971926755035296762657770822725915099236889957838480492358968490008859021204933751765954952787986237085757347313957774453489691768170090543695200958573496058639882771152204515117486022276186305328576120337900840930306865078992274736371126567395628416900408959617696913182159520598817423208692778683897901073798599051909310268792807440318757547554261569789568488624683495857183830918942676943252857354017700299523183369819731127494665263726825528006070111281562152548580458222412287759070271418025715082841848058927590317074382779618390089681551550128242453478992098392191342734172620947538657617916079206812874441692975996181894616899937569897999371859265120748768918067270074148305069907919151392633195862188258020767677373608476686583709117994547952791754254989967614096727925094374439154234905412891432663326549956823833949688059861367866128444367320454247849648397230808819227857247101625433389332209165317478740333620407597259534703877999992479738693778839369486529440806920783179201876575749871112514423022295800627122374978306490430939492533327508535105752335014908039494127961150301681421287799751161450025505333072161846838130724042915821445864428400915352223671483855810943286489889782366887937992619294073178982844851061284769194238025825548614206851036963769917240984930960087011333717795609144296053637270763861461461085041630854080413701172208651781677186786295267029014697203090944841758350806104586630669361677043612589282966430412952798179955672706143821940669146355157244169231060154325417042914075184806351713598697563121776214122155287488389519311794324610047251676073645447378490200164939413884404653811622084516292059656517641209344651537303765674709569848357856080980584001721157135838473648048591172559063876754370597570345338951704320888642264353079547716849208918428654020458556606653753222129047101170626192979585223640263643713045711886120566515669663544589811867629897754200052867319422365140603234548349170280430168235021971394470060641962085397670230613548394922699545257211563126322653736432889600085329551084783687887875517432414154913496645169624963159403772674921186704844843965311317009180109058928546433363521914934342543254901386621031743341461029260155825943451681567627280122957822212524554179779665173609399566150747169643361470737727849363358013740343425732178590018195601620880726431029864075678760366318076450758836783857985327944520946709478207319076984501563884912805379309016929869846358597508613566874172074899889195642649439562493231141663762446322263022988530313290524947406423455117424603945616533802001066694445570327056268729959496550489862713188722290146959719238344808934683025687413441912872426177080372799909046389877728835772485306365935610258711147617659676864772931008422959111544595349515007375997150663586392955699078199790250755915794297200900115042966049994406074687835759955633317277460086333060938986413963556091839220956870387158658787273172360945335214394931058454411625418121898376965708078743183347958670836177374718131542633774966993671285407920192747828575862046642707386582636049966499893987765035836461911721310013700232674084572171166200237945352414689551951052002557124826477239850376839366826972190245321386156890726947642740584564715684814564672886005495388627293529576700340519862038776162962878764181705268519535947887913485160464530428610032178324318933037303091076197489090776143304703677666130100112897875693618494577988497908475484385600560841460614156658359997868894944894383122395923822343744533852580376669948233765306420250260394959894583951425197105065768748121728471282261876559446317571666130795375511253749566721405213134908239404304668207334698585921886862860301985389376200495766943877364552151380843372209753600711352661901487597221891203975851300133547589674655156589501450419467494890909228273274843481621047258235019260540223532535082076650409964343069786118294340745333000907738652515350671807996445829452436513104259380344399648825854380656899812041050612874049979454656735851451878176293594105587143318784832692265283233412768535511403711383810068573212145632125375703568883904492974113263784525952013429746178422763160837881968374787071452288145573289750722072700023306182577863270130915808617153705266453401612139285402311888805229903887364110368636752003508439265752846109198551517804626260512811676884225486970384864381360545163673629571408629861122830228990676063651703619345908241361238430487297266740904515715409824448612586465284048481657340237566884756493600073862738459451445622243960362137774971852381796652448504556753895441694791010910074436039355480295844696025393828633137048204769841043406864073495656939294420393419568972410394956322713994595038632142684080192773698268223049137877871979474892650608365368758617209231649772981415416022023721371103199273269309897900707328150387458847123764491854812127875125499805252618734476995527445796498687389002386684664282941722973439311585965106180974655644011195794623803745963312823383358283990709901460217345397191673614651409375468244442183157115537360948023789832663092013792858010745235489533146255152468833092911308609078827037797278234066386238683876997745926667590170857830362808192166943735506952544621839888546657587170835126718363610902296496525513099203134997473270524106915977135072380341359835861360356873136846792990683670834848238514669903221886413310742812512431870035849749550229411713442987456475264657604932405038231453645190674390972686523422635095421166651224716032315159952383950234634150985005164911153845637722794469420904839192937654489157081985948184470045264513097146101472589903911638495173218771745020495517601875080414587887424761806684472479835311797768491715966332285908812346181553719742260905346156825711937375695655546250688493439019166433039713803850241195370299865405838647968420255863439140527956221340602502751869561351414862693260963417643308784894490563920181456448462923998159026330233957865811297516210284646513542455596134188120201531175164703898093153463051327289076621897659834032706892181779932639410028574614966090676440400426489185794334534508368144798240293014308869615374346132392767737098058921424339054335293348512931262117096216968619827038346760700814554630972068911757727992680902777098233696466990654466730021325457875847486995933918804406135953048669651858613007671189452067632275805483062109724672839166298374425771851030621480795637870524349445391199303619996274200778592949535503558697991991629643996592046072034565010825111258539786357510295832935879419000772860609866772930738546103200398558193807800361833843964461713436395016667659320714624256105960439032965911638903304252765434713239540493696520047370805381206430084465467156711081281244403826807637938111160384832483611473003339578824735532094975384793325447333641835683104017887937222039504847681863052593085409760550472843373315474870226229777023102720973763471829487497139320220504372485608798750907642942203512062765759290078995909038870099577642682648351958256571582687356431483025381006878446438105370772266875820328597814026922671418429831502368167560021808686391656569435526840156520147576708087618221720449618805541476918636715500674166807685949913940709502389842912827572924887712091231453442929881400385980081504064785369899466724869884727226805367265009895909307464401346094237775310460837359315345507033431440957201106839259227186496641819045349775842618257207840679319668588669592847938306516460058684984399905069864901292582121006322654864066175043120886801820709409608476199543726494628750188799493993339458156667574379032989764509144108145339357556169249261151207099553691270357448156257353666581072244516774980475808337919916964129588950756887692206837525015906877619769068497040779309272048230932646685760776858406273358775407464245668669981640126504912132506380349716502576889768495062279870470225556913715262337100486647802788219175791914818513184598985633807823556327740444399362083100409033499141295004521300055445075103352189148316909081323305759958129154618526820516532748994243301350632049531386427378577563729169316617037660740162790766625693108755881656324891038064492801426107762351611540678893105814173554800136370646617869265458458819843787139642987739732484841509263933946230334207623856593322357765915226220750039218495084290894434390400510821101584874050683215190223430703823972946502690074697198596648212874263939218927162772107721440235351174274748117526923565627689502381138486186656115748651365491156280948972599663503627747402259356808229684093978247051113855194304503586227549609451059470448946413097934028155274678099014773851967236719597206242133095636613873812483529157036211626426788223956382871059047554747359324202680001266950899079352173503759058354215715655386148152163278488721049321040209658135104504427011534072964134899668437810852796333619265673304488242399073997249311123729570115157366563044669774673616185812979200353189557243472717424229373274533390741497629609166423546011907268238076128939914650446276146625223707243573345193742663758899771439653153740112138016427985822887051866808639538825203735788979339838182175006390685167149821909216012698522727372234290190003223346714873861035380091998727166905593512480186016740192895805945424510550826676678780144100825310544176968805393000780851966719457387258226513088974538268753559584120574352990130602096143480381735936221892614041443578036862408433866164995414143727438996739364863279465847283386927360743240333727449639736215776282325525566952792371422507975943822420819882506182551181504930898390578175484819092811437906639041872942338811891255931131075789925588153365572418493292669340662055674730727553833725643919223149522361874857542774630960075457362201363852149103390235269977017731072589456572521446744987607728813125569637499151017859748184990864364856067210944378253188595088657337320113278421469011170730274455258821888009725166350940252241114411802348257066798677485382070890144506557458394129743266590176452898937875893305313927075495943769353084832450512577489357441204357442638192135280311945180999308953107992276396226680761712174941354379033347870969441979489049057555256587348810296749529509763984988060027466456345468301181270910831405768987403541204440147865639600182611062816083485988826240384067006574933357986519583731179488667918917967520738331291500344162563429272116284674022195421020763484918988010406052106711843915182850469965513574058541884362481049704598137530576386126215744762140193558572622295873157003080610999600638873639115504494314982302956659044961122988431321115418507124462104404604649717573574367037634621306505664220132014488506147930635201973583066351568047922538478002637653071365744831695693292085382263062743925585442360483515444922551746201267370196944452936164430016682294389825316381250100533666745260289622051921020422049903493167376966569519352619583880592049928358049128371459764107676919254330836083639358387691851212465602473610940793537747448990495462510280027049490712820652743563574766131772403831758559558823970842206697612239485204621723429811177764579669749586174669544241322283680580943149674356182409792990416401676365124777450240052301926539330924144542707315544098098097990292170796710298253482016429329987263500026774266814594723189103962725280919099232226433273380620086646052368839123259731476825640795087540686903219163809744871542346245174140528698239418689168328231404929986675573229477355076383496891931992025105821682529713315642515061833380465699799554781610829817966309427795275124922449284954404583145195935565857200800772156261919486287882342355767424592687223573947961831009123420537666491615318507941991604125914636616295178325961226588985643349200066057966808498471226680849794002053274480731615788423922148589323651505027078377643119756164740873316167723479286084766707361282954511145703513325343771867077652230572917523275085949121935414736840862460634384471895613848648617004462868871027415061896418192422840659478162269066180942582830304292775173034736408683590563979335081498843091733548674701163365784232376817799317784272951291385765691373686796831247700784257604844325089157242006139309199911495105052159598860765459475567954715057168272449893832213916619164116036133943702372933548459825493108403006342761866603588418473950665918628321101854555057842644302263617655715820743538861041448742178278335431905767830508774399946533867739810895805228815358120841694087742739203153633550064737613366168984704563504545488722097342183110992996706623679996832805939755109712839470834277060666997571508666129502127135279877556164896840584566668999295759103873345077358119758979777274053750526885876696628278861641836970444045165646767182957105752947508210609687985427909022984931434500797797372102953254729227543242461321887418626758774582783696991142276800691930703170827773253931477332067710707912758218430156620785031361534536443907948592762249149327495969364856874860800730192007894157773837574336044427594742797255183073649616196367792895841981599512330974063729517391947466607136389761697037255109531490468388592681604509032481095500431343982760390548479133854676086934723603678914315816171287937077615947380376099499197477350552251934651318307421425008266107826338014692036369242087657129161109627650224457170563418523177225193176570918429310508931189273174691296811724507215967930557655514781458951608771764289097649724924953792930710146116548753188455493659133394740422432167887354932387678753207023978272826805730727229851575516662489794537634874617727788540306005119384667645671901414751308190511712643965752621113532725255617132524751537594476567991249707920031538499142962447501543175242923810308678755312234727355394334823376907325835898732319787875358122386329984135667093309021605258807166485364898189482524402522586199282153086367794890475189546294982456002760571964680805618747502097225893049848244804044660287130487728157788898828251772539228152210225008789432107533470719495999111760199418685894651859428343768905873591384352747762163674966753737696446135202957252969367705832690034841711816846690671774412942709262506834862529735638167909478452789631368755220036664072923928098963136535691688671887176663389147849391569513802388544153924402649691030881536894250254485849925150765121273974539958560536411208828679493722041522659844222282543833899200386645702704652722944427167618613282211627646237441996523618581130358458339291639506837052187795989940939247686822384137482790268934889857199962746055364996873975895699207894069851462809177540585880739873868252741050465077334244719402400248949500071550884219561224824286458936207644030006652769986885240007928514423862382132850778172178726508009186676339114823653865502492817682826579675131531654992644496392885676530723241745300088126892386307368250430166872397364816874163371848782467073792894681285373860295149023687726819498014947057227332679797333187925870772667093645579397189239764273832618868438612385447060566799675396778819006497393680527898480917963870880419425490106756674543060136782286385408004527946594848491195512627010976169392099347185661999702648616438360660269469932568701437786361755976546258180321719470110422413921590821936634714794790232027511624198246822473737437894563114901912679280706503702966789509426456722778131762879747922300506802043635317158047805683376897060690407768801858930974335036590511858462513075554787792797173586526976440024390991887658028265666751071475189316244520182547701456357589014809820355778513782110181746473243529544847968105655453884379886421271781470849859303907823903546381228921305406137128385917648941734430020193379680555970270526076216242371421516620391897873248837251593913170029423179794075702333885300074770045646434881596955570720718559772140385842960624953825493009525736313108101485054110156487465945941968434768283022942194250448245325617116864111566800668401498206273255138261554476778109806944869693245714521159329798321763393454979169742339098723755169037937745795232120311810712293036110525101367038152955779690197717806810253495713073842197111180360456692008768160429750117316119254660512156607490616701153299949194980243915812275888548950103460721663274621768510578418007889033902704365183669199599956807739801096658948139615834757662355917483292270748257596046579637792560652014460326686560264682210336050675479270183059687897279854802289898578333429884769146433672087989030275778787055637496036157277331093828317243547713670004651094393857742581707253390231903522388305864665676321675992297756718778564673440385649149229762349672645868775609384950707365210778146400951212192152626608349157003153106483142756564177266388446654363797551857679813728167139736017400991401223052036659907128193473443251573246108915166032251834734488407215919268998868978616558354022968795120910891559076867422925986900746002110746286637678240633479223486782302393604817945045662632310017608132820230522372547477745914867465582002544978622959695411783420534621682933132464416899358276343764944718401739630718645841613608293243425856837455150446453323949401948561014524964832350244924428705849355308824078619144570128650779228668208280584775673560974131936964319449462505775861018967422184029383975598152706974351696886138667793401712888504002047521897060267816809626347157563903279455385112775869136268350546655165466894857461966541203272911821180903691902753115803186635932456328673214763116316680328270603996683457033701846990683513835457917426594440153717535595199487932143339941294253829914311368140441107818037170868348271458097992054892259946564691791188381761513277014430048299544268596799100890846345019412409106936493869386747575705300476433422094804456727618044454539518516601529124203251524382232687983277593719970207815357807620084969270708476018372172254854211293333628805222651564883347562472949182869969737956537265311755772171176587359508740379145591210349916552191251819947186498374774310817011505306111302955294414685008314835857124928364026409315887710264302630070340741494668014542324421462332288894417451811195914792132924689372563570613263785919044652920122778242130922682351410879547478491865241027474425817536395111335289341113056396071054223246924072726790316675272414451681706734367968937497331309707286203818986450041951655500788305282760244055442533116946329088606952457276757512969332103886976300884081512725309076284675334432414959972110194153378249144292155126472538666500491164114586646147215491901089294587841283116036843708381354947728113964523794561697908762333361289438983108504037208303205559581688291204141975358400759937377288955572586658693493307687666881416761969123964279675568257984933948150298733639378615313065992344717290438575459591714775803759020751338150756189942327035949933704944809024042483350512364375037729774402255294591684268731351530335684901177298969007429553946125096691512997133760236760828753041363142539514988709045555619998204533620539393814534456254577604394192467030525381049262051241699726150878000499519031271931164798796180157590536799084689436308484240830931182722953399814240726268145048399956326279219545372493114892718087737105746186812711110559856081016544040358111845604283927105592816313013368750478114705977626466068811912346111689168539889957321239336238858363514175626282126540001635492475347961607553097450465351438987518496718870281199599872332850417014116708713667289259814895822382074948443529012142771091021879881264917278728660650751072880637011404472085256469412044772215579065391366933464565374947715114209850581407629508941603235614335906394134598483801191665537530021430021163638030642022579583188042898667817479459812344675518742761558978369213017700274239829181936941404508473877625629487331532635966434480751963338875458773148875061610152593346074965329280167255577513378698109270672276627744016876972459180498500884090259557126024900055278463883072318291283709417944997805121104976744074235878369416081592025545010482770248840672477174620894241541258373871412005008666752430467775165600357031595101313846027375915718433818424262010259893807686220304099480854107894924908189632714038822355119033669144364789426466352670516131151143726736960146718720502922552696851141308056780933351492581864912496344675436780594076178478242136509641030410194349456148170714819278035165133675890418898895527187511187611854924875876605393074271768078371646992756793330011857077395450718564833647514293834057986386004306802356960723535443031251198364248214615950865348017253502390815057755713457746935963484744161713017619402433320604223860589359865975079856487939870362152682127135469385175345585577775395001901236209992542754976001328347687965285914835693904611619114912653431891059059609807067370727638991661141158274723321870964836793378080581133967629736879814129873460172384487122410703123288341173116400849534799668898547693812717172782838695211621119719057448268058362989119631300658494827650780177720623815978763194726779246630956075844287149945322669915512664089706119178964469754599571289196753734658306480111639615703669283308200763408400613254383536610719982352744790915453373692387002003645479378536193788474400978099150605589435684795112491607554683291492213868480124107597574392093935105335543442641975964813547150285193911156766059805854536654914039433469058246126203298764193997332893568192695984753778096152850668775867979869248140378044239928270533091268821998280594021683055113006437944554445710862091442861828964779569527556911530978971012426295122961245426787161024455646964744806683183334245035963468970506575062173411486398139658754389778384389517871916753904246551283862624331904141616416429950842391541076139800250343394001340784930178407320976459176336519316729899598834920739160556972516757039332861598665786359252342422007774130452743666304492544004242924609487529124175912739164741766805108870994261108727350352391290603278528796039968004696360988836148452917219665462751426746828240498430458325555188035182502217295012868674499540422197276328605246917165774810950624002665838621677358774124116490825602415862672828711195278110583298131041546663702517688776320522894314993539116999777943943065330828319254774894224304116587619793304608945106254306343318106979036832283575396017759592820689990264289272083774165189777233884448480771299387055088081127003829353153586583416804751267917298791045365136753048880777840972531845524563503176017900728120619065472597179372022388134022738600080711023453108199864603966701078786686136666401312274105860467903147398197222275756158299771332500452675129650812401463459744160209593610747318532044934138589924270252448026639779465756697918370421627293206985428040024330589342497827328499194585328364966133283725450436465711817280701197713945718620877923716118962056136762924689004679524479178597481424432369087986215609415827293585341629688287621858710773872132447233496113597693090678328853245602982577918145302121575471820310125446556703616394257976873149971420248597993130656277753235888462585660058750291080721856242051389141767263248259413015959913001192485971756993642309472937149068212535841554573949476780952952248610806173939049033677277106886835486508761817026542272534524902760742943286119375815020388903637898496785784083762691823944232793037194973535468155731234041604696172842070782831071091651103053264293997111902710400661105771185601872932511369449099957832135145056061809436435764756554100421339776482427584940468393830995463515597550981203855644346047357621771484880900717990549829181892696493387463197475035862218726006760997761671596161440012523606164145079480916208054177626288711113063973508509895187792084864563153107991140299214757952395883968910470923931696475508234548316917306280401902337375548986384868762521366856980711914884010133437624706945230740005216367538637123187344453159690609928475894970739412900903983483100238942151216674088712130817313489140267826180752694316293868562448871635826495154823285066675048405512388826369266278144445062333718319296555303700592181180169232175088168651584895139048916921144448308732649442623111842611744679666664616421996938131915512780115637919388519385328473259093660486966608339306115026333198700066012430237525748647476026121428371295575348500704270373199112170665004053730147063213340120409467127383329071658847129195819118550298700565182118867156288686476266210074404528220016765299757631416177792524600596552207197606582561572814034914319549402961318663419522450672715914737871427528090613000510038067726205747100921395350288735771257225014253009276053746181523414233101458995346648914463013114124868859054371516870093541074362042755843090289580507164908593191329788369318772710752754593136640347180607741873506607022100042582517369836888145281839396323789432011208923145748078440589045631132008438410680407609708288238051622465694288778149521960605659925897989991669577484314913701479352047112444658750848012684340727613552969905219800188748648089410659468717559054965807830575530662608231679794436634066040228279585776904360490104575267650375182883953524272971025656821596326525595901363209422790050432925684773110171466432675130484993103962735291731627849039019265910075410099455123657208290112504172950967403011196635912399168957501741058730068338964282116061657143996822444381397068400083741452986596396252473869089943705495735771437401462331178999598721244680870316440684232075308689905329519236046511791125697787311658543014776938331315562438746635171425179012125140843519023142946937101957588475980761320875879860301449914095247010620754882355281161201104649701417422573726221412243369363516364889891210760696885180283596259557977965495811023897494983263200186979176182720920354578635599706570807546205682091622848923690139731266185792945159392051842924417820793861663191702683682609351188535637349601866587860804767237696114645326227319732409396172796193940927337316897064644995836916162281833543345952643898245175300919390012869612811485362517169159670983950206181126408940720643093343069077839578570543049775890228337110341547918194645457410851875099977481197807972711205646841240499221251907648869110009594216415689116067218469361456696741374934995305961007288162513019340444257874870250718947889945668531985257792673812738369788539889538133465780022153647316421287962763117161899839967044632874987384063603461476840583355476813853978660786781958469298737669823476357223852186743099985559604129394849146552805127907046400141470662691992933307933105105297689798749246060618002216584126239389530418565176350731377381735726774830031586584545592629652317840736760489105324030173732109352368280701898219045822609963418058814999034103565275990563634387275959403328098866039950562596192361468925929247749038601975900849960569038237883881869434652412420897097719986272522195072240346164151905990667528834717411335637874719915797563495699341752728073844176257401326171860439522075602331582938661883614212471575797602564760194781509384664695736161597900591829701979327056857434951950878541743729427096756487784351399431037471152483204457168466236823783856502941815081683616837442289326975537531131112546577002010492320429242203284011501151939558411112546176101951103616951974403601028901089260975301727153650084071913333058377462474605972760263870054010303517838033942912198064394111612507312301953864840042709401538174868188555122162509524976229179781203940780104734848976490050384616381441569898598127294023090995633525272090437144030768936260147327589071739377882470296356311015907622969109376469055848972396521150632307205248827609537837996300329447573602644275411840623976752265260892452036122598217520250552732220533311755119993223526115838834928546629225963681177153702908656670170371526426641646210149089092162262451489918108657033419778424112158511521415194194343070891273117473630185211708627174463882225701787786692885681291543846107037532501076643630622892103962658723160286262381269287713797826325772365312166052423409199757923869043187737461317274922527086689222243539144310098516456873480666207148828940459678981848414825250373317495017014926675924448058870331709349915400131727854610508206788344484686424836814259732343075924128953043478007194255275021345000457580010249341211998861893695444565672557271809116839653252184364464560735046410190317322881942484956232680792885060186726884937705378972618822597035216776878134313166934243480561009124055389475217022037704712307722366454939416610127009579285390337059436445850211258971385247710707652501354595868435944719167459592852288141172318803314932723898548844639286864051096945980296540770352874351673505235794242078079485590604806538947476243611334773334332728651742641661892603078417113161111867032186234043001887669057048760576007727806411664291067354202380041426301374610734349164192387028346981967925407328478388324479710145224489923086561667308707437930233678189363097374362168725260866194677470852747602940915801418044327658285802992862858611840976473602964443976129286347956221314849700437735339842873779041350206575324062016691246795738809278852467435530942257303261013830449903991641125647548125757077892777737677882909412331852653293276102846307485403734677642820532395100421526104838573705786666813405429861969393230832151795528212703763690137129408421186119164108643568978491446114334074065816442142920265358110772448184384285898493444964662456312627291607467788165633807088101046330354754918020899781921146129591085152490592206866596888625116912855850028927625734791093660740431061430014740928269048260657820899124725552008403889369713874357509156039159703691127031898305379165511165618971096976126431679553322250953619245552837729379712278668191605505179025383937307370279741353121166530348097820787935898897818991036521101662274127760860442072205251044418960313577891878418655118498836750822365998073468237712774043974129076870964872609385004742645541695628230625550424924914573037475265076599371041118879876546522076765540919550164954287179168872271560617273263849836986401570636871668369657138026636192269544923039102384148378598933886592377065199903376269618602570163930112307884208512290456168482300014315152329215204082886125062126133040607582952538787738430640027702509466094201288022492057454577375190529156440492635268861255552355006766427779180607596291466186151614014961996525741922423799352310862817757974841767389885194671874064821728354031241959584400412346559756526651410286543052240356121154291392734258603466793814325481800281024201181814101130341780790498561932980276134599691021441785966456967420780314642776765811045641802734383392741061868864672358867722804728445095777829505716037998429078152505451229111672318296741356703218667664488267319237705739366241838120273213472165729445005972243376351929683870023752985864597777532790333698007763530721796480275320147534665837065080229881857753876115199786118742486005893682900998219282959707884219528069160373892623884526043675124861317355972005391224320820139612033534938998117906615953345017402827732609874084297043729185954920163959248158415607493477841984076770326917264945743050668457332595802325968149704798986417096441753904981678659837908131694114902416718398762529231674968472794102607834046590686323681184173101257757813319436532053931935499692992994519186300660961512258130337496938927856583422602174195974864716632787720268107112566754926934007930337407992662465443129882227821077790627746508373029847670586129588470998869753422600519025809241103860787123256243659361037225220461807114818177170448386477939766880420998099260162362547156456409376120882660733334027692742019608818646584013486981588867709200714267500210386962788209884907514673284296708747499213278515979161471566663930218923741636203941295004082410952715228382072266757972812553096674253128593587305124701496161978621565983075624946453378962361248411978526757233208312478878487742297822770952505478186033252035313248906465218389041137910989337907780732368515844796808139796268695243452035149636138085143865759750602059409035998465798578278281650082616702642325864771632421825190903926892188971583963816871904104591591963372785529358258002046339878779494763823321118714630028004066546273296280534998755781026451031974225824651606484000829452653114271273186503597239467850485596842027621790856498725929264216750813623409931875428126305306227256037317860445678644802190463667995860577579346138743266166930164336417879533531321903426012995836386284926391157930042287343158982727735776116094230183150375114748727987034691945149363589411486329389714033347064696446591761988317918099643559924894892263659468418921968111981947240783349758803778868539623059548796631532745622171704284195449258463726388532990041856245715349143780631280799227141403012881725087432732480804762773379990842847471869367559243940490619079214815772198676560699098101130763660304561576770013081006038275376449242577668262792235732663524128516133708593678926609765250471730037343869448989813063507279947223794069418092157471922925579994276205216577253066011712037037652862067023773334204744595148556275151187491475156254461159580509376035686489345994248483698601305690476470377570433569620325109737077679978072612577824629574064037581681569586964042725171250112824894861465729147812562652701176673280337014535256865307887078999502878291324727782274779252634460923885767427981343943290495048621069161775333123484129018323711375411343307271965456352663756564528638778020807472920349849996672864807883889442544974713382397210083918768902561167662265849769140660785941903465918476078806742673314475197437860962892895910325385647705887712165169449266521586760874335289979269381512692902288354585378608679981894931195528879315761696921266034887086933933310293683673814334628925016774182399487873508364189295962458755915318130446008083199283670483340983694334795093194908740584547445962599422006198315764600307078363245332240267376389259039019237073270076192183228117331530692284993473739402492585992529704472625373863873156389844645952707781926326672942297219381588322838042704646440969267324221753982538962989230362190416532498128637636414202800968629282938364056001825932239789286361920563845256398805849265466648100257219621027067582339956204153527299650882005947932933418967317642575300492889867752965665744979942017170742620398522938571909890270248487018248890497553579349238229505300816510509172624321558269197685714960088612487215610740202534055606356881806086144003641048769472784916661661453154010592758803476538363136775617598368532232061405022727637201913824260238435635947449264143498520845519332340110822419093380801222391635123118624188907157016783820888789556872706096599761190289385495681607960843862288833803567535731755342863196383345810587845391876903969752731828950269234837680460486624822668978125356308634257353260028380101391012699224702043096889243132522850595393942227777751345820067188043133998069215724309348091287111805301314781287300539825143012116238455363220794500123726210378015858641078457976965127555212922146105385568487517629274530800148278083090038626465500168358348125027553667494730528601675570770469749262610896585022834613609835469484279788701946739018590114107193644762211715583398660233206612566359154632212913215191796777714776351901086789961014722520881712095800876551478542252750821732729378294523567479482735813225673026459282763238738266714228738272508473575389985754840526975480010940579865563079048066975966141849566798497884116750678987651921681494767787397751890068720147490314032121850984798418105047508170570297232514444062125843697727089711724687486968791195394378111911044284657998577578738322903775215396755409001440411912787145730867671408102414829324230898832044786233155948874985434014248135075446412458351176708144943439728577015995622552172826507179383695316230523072898418955452077391710520021564151265881847378418779038821089937621982516755259249826126625444181723087339376576963254395163843411244899536637559910037104372633012330990344386950393611235461922390688827804030756396871874108196014936980352528577909701102300352848384450463269598520974018909166211128726902904855823114097636274643324699229988186332550165707622954095989654195747454343566790021792404853767965769212694116493695943588193823974961657236110342740243123618876346672832391360167836606191109668371269641975005647122940584168809285719968848981590032556971224709367348758282848728211472343260433264048947273332089596009505501917861474500418048535807186648033725086790682657219598383449483803201840736649647405250166553371303960231228810192606264211531440496736385365670511669338605592358380644358074816635535941702284834082697357866243997550410520191025389535736965591469860890046395835843707367765455022059368048213567624136505278117381112973473317138184960072460182234072604877596966387943985596400058981758001719105508160773554123438529399399225311876418837139793677002506157067722624679241549459678313322795683364028395660817686668971031761141217288033261692355046943134881252303658326848563855255430592757993031288807096712283946927547971362079555371516062969148230289276275558629145383012298617883092741886211124304419706555718818222497867173807008316259480644189495188768306077315223229926729358676495548582463772619991926368023004414742979520236428680565416849834321702520188188693545465490386077481432918578863112306202008318299072819198132068466513497520961190992405542298066712836096501576477440573585173177125957631943609394744210251865490324848359378301556379841713473905383248337798803316013868249832335125419771509505856935938072071664668678178235048267058412435849348139664193129062065597005745197575911213006317244976587424547348450332430877576199244504155431971185858235470415439100584235761497219103929156933141862165082617731416612378834562662000845769326231921394410948305259279999765519261527412149904235296239608832569363148352523141757876262771941902378801749668385148443026696470515209212556842896893809105412220197420780673922703400562264840517871767509207940136863609970109776018682161295349945975978448669370006707063084186505242659010647760223578924705455688321525520791419682174884250995785800091929375600948382126255683082267156725083039174578319120196235635339742551569362909019652255729474768446413138569457240077487958529959527526621959464889608159777235551561034328269754420377361811200352020097226011735315198311404441986385607598110736337937377859505682546551705400959461890786802912842704330296945518320563462433946055083411817833735476096313530075281127533300304471357664423767102694331156360249634096947321181167253017746472169726456173213686806146668544689405342672805244680852375508175388519637911377606303667685288489400336666632260221771580774511485616501623198660504902899978829984536574429160087398800485351412751831209836249437741203852549029637559086557625249450729335773168865263873380981870042501045815962465178767208370748471503959000622386475075037334684408980023379121013676696264529782760702239577124474940626696378642544831526595003401057253524262907454970258604967579835801611760345735873763351372211067433866807994998155833608663147977366197037767050007677058536909760962377827208104360992568124193892570331451291720229357425580597763077144501806789285934066551362117005821363419142842672525256353443600665818870726646025728745150542908289939009008492311151612180387392107555463229452169218141677254237601259885395550429615546690464135497689735374186094930731966525675616502413811936150385724939049737107184147574521388368918409130003287847423849211790355998674197206629019853124950724082931358649714294696871136183528280710142723616483201062840519201445885191442703103614881873835352762151235195057070981990973539738507610218827121365610844278159478294726801877973137780020241857876570183970853140865884185658547410782579214021087166443264236223608071617943389791474379838356277738663574560342873015060140673285951333864373162766601201413248205412957258866657453378051849809983437585611390108971512556754533589120786783566782256252511446025209902965296777294656461238501931025700917094690640737223064401072625764638099198216188377612702739766623180908323927390110379140276071270985107658624134041236094311596735927662809564496046593628813689606587935076616115324955945489317347782275550052789193859730969702424326997184669897454072399332355673553185632444429680068408301411234826845388405596957430191781841472813434409160231297113819419598497680394461593785272746895219444396963215907853679882861825689314668685145096451403690990431611585961447173194790734361265320869621687892689339868532287904610191392890868927079168093328179249745972377567244785671615428567165239468350764063688247702531229992357051019332537481241869798093908915287850157663459206854248728665415734801447679862389165997934462979872632995467833977299496920581910123618228129146954973417772834806712208221327756755329208281896580367049444154783872803134888679039570018374903144773462401948949212792277696063180687655828323729490460071877628707676556098096458827599338493612041722878411036330985479690776328847210494171936519211980935794493879699865323499764471775614425912204677481913262414936612557553650137978625548909681809763874669520913712667404769039686636635255525295226979142990696495209557291827576792161403354637251108941575616202651906595074648369276643789872488991126223381822065580148842075673270902988168837653852974318523559707848342920509399508116605004594321842747422493245736348724648208931552265102352606352784138217197857372451904220859065486347843402826353016058973939121599967409235210152874727829678532128993201807320180935365685545684685301400582093562634225163670626291635448233705801775182773933178248966910281030332123549756790656541965866258082924277976681335206236831014641085773332904546799553463272607226815139325546114949626187186613909095789039008184414923995598472919452690552735327018898432323415671457594330342001323573878411469244370887242569965251013327060951534737722326120433647228161373616266722206991698048078508858234169207979697687849824113422664520979771103696613132658500176514923808668074252374569476472980136239345892952878037311320191000734231287831237547782420447145690739087926848690802151757655455815387233612191013416846111603041582528275631642242318795927265617224549166688044297872955472818398601060665222285991522118015023173607394861115411794763500624193365844178348356987938680328146431734672085349595970559934457758111554935430107069328633365760267229097135165235016443337453764368235241014259302476309024945973047252389735907588715042299564453994061918415511767288148784770476433699061832187934222403142018826819010752666454187269993031992862198117616956150872435443629808914377011473374599670756770209800044347596639337669443414551004035892560122799890725848343520753943317672675366028023094757831464105472610983596137026495755650642255003844125297631645377986183906530590850541192010454598202138933869190720084985181761535748639984343833530189491881795434949156023219173338073970090240307832772973881086864624524306479389561692550235679952952334636970530192301497667584625214908519617220588462318694957614646796303696981690098172946153344428119547232499351101865115570213441997538405158542441338272836452570878481586026417157260682163334534610303750494401946988464478191637235147791734087963646539916015758751190904357259015604248794100570902280042727128291084809682199917962755794658037590382533504142408666398209014508815306647094081395524077424226490413955436796329383590746922070610341256750482589809074497009625828747583319982386450685582464098518624526596595002671109172962987360746406513333213910195995683515908795314728336184602386175730601453300706609392502216039973907471807214599299345676787676091671064491638812661500850227168615578789622227722340142580596758063493928246390812306660286785401703674175385230951490558422117820950768685481186911046739299910515195688817016847155594445941223006176481629732132623180102651839970534632311395920845165229541812198870003319588477430044378800779923628495309605953699688866149377999631364167897687027593552289193258274009343984193008628636790737218388816882269137679180115971383980255808321972041410291697927483654784529175023927776865367444357048898790257405799258084331335776101325660264702226247242986617190856943710238340690205691213690023789665118144886610577229936843250992826508437337178247469794118481378106849546448817821307565613408965662996900430878949338537292968359507826359365324503536701978118011928827961480664756022230987815250207448476407402359554304413356467934933609409826058303511830378170915854305346141478088152764036181657398936620898032039129838086018838824758943127059361629697086681709860393401249978023628809227426817310293759093425467361245377911402864822577432597053540267023786640920403753541848752428150654962236787759992587769661092221809382940088534660640467450240573948923236317299178131137190408858030967321455008770108609739919450363637048173884867373522888085950875307691408613730919125729503435025694980760433789615787811207372266536328095059854103385678295006750772898738076250136003666871984258096998732500170171585674984027807252169061414183846962028168729572601805225340809276002826232692360911644596183596826909411909546656260899114667816023012519641315527790730497975260238629590268024377869685766922526848974697429172158087049128260765787234671927825573547647735550624718736234014502449521043415653225857856789127188235857721106233593186725167431806858149124836223592125095999652424380175400368565172389807628613659920981055458777136352046524472272688021305415571156506167333308628334624909875357572863621883938530307203585966998430113122881634794498805408076019871441258176453770191330365298604548656384529229326309683193726203745788114595933399138774642553988632592741531752367610298749186592587060617521703044299507029014499591507569259541550154226961378514296721754164592516820991229222713631971862097902424989889324509990665199325220454352032663071471328056227260774121667898838343448851171359173213082207677689272617820991689223922008944940269467680726317688008184087282460070756591050709564957183215244070446157175865725792776729194941986925886113678000083002451166662200176844562068522646396330778233087093207406701540165259104939060456585796479954256185333323248054988474199566671409056335360816044600190077915127319369171844825881276045217981864574430486717687779922356212515958543681523856765048736306790792091629578596277768148083681128308981843028961192420936910984954631517685956701214592809442972027229902645377868323471841424922439162060085877509221209317827325494902288453927402306453169383949896284450522017321789033238855793795447691442252075304436888256402948123642306987255839600488828519614767951826933556145822742651702472913276990122245408100541324258121269844451996760476599778362608234764162206768398075819357263056604125834450376950439331864002777093914990038242543890670249082238346541227710571937467439487073277638853814281159346523414510486750146868237448141329664420827939626403783866717367351136151072422376613564870884273836613620204226207143367479827545443335223720225183140811548989822131906749958545374493163068291299460512149217599597238842863526344347140239522615968608027396436522162736418767583989585206643612345370691779062889056640494979499179464515903733311217131451736258272782392025121008665692904870039572426800179821783924661026876854516038100090070771211113994349707147569053646916438408800237155530727632566766703551900559523622873947144562266649826289285012484640190911596537653492896473094961689142293315445498070208834950413225331963539740369686884759588085395813656895509401200026324256089811328022343924314519592067144621041747818369254383849235594987246178568577881346121790002176481327695002622506717060300655848843899111621374210902370520736384483553332732682395054231348058469924183554255861988288273505909565666845650965120239247603123267894926301686260636647151542797113997478739152214671422488728299900911290876602032161576069495255796274204622308243147107966643730885314467380459850772615364397896852067264842767985579192386467933320989667753014634246227945695760940583419533371678284683677606802844896452459417583772642187193597482367782650166615375119514753480531729558074256130914042961865418088642269541466500574598300244072419335128225180719702159814535359368108902242321777337198830439107489334315754434580877260022865150330246317788988694690641244711570883622111752818123167334218809069384573969375345433028605241943415021903619294428449330996237546154981344794233571430600918217930590633255063623898263271100380603082530921854799962489253934317294988764169257818024224979454522307788361381743130642966979388873307314573259557572338392334332097553935033625102997844796102159699095296636194537623512605459565464476046686035133197491933740173147005100623184773113778825769994587927938735620021908637605622079873576826668097126175157193816034003348972609833696569887806296653757392876629056766639667630472172657696816497856978330848293404491780626107633613397097591806274985046928454030222187152646250740077288876034881578732673463526902134333322741998942942509672907793727016884784523266294817292243047266179269243639734861562336812512543308109564672695289751800850722047991052863743977327216517154093853752553669270247016107152444220326661244049284631499461957110335665410833890745094960314637110987526264993455727209312616289657227531072543142124602299456831404558562849217812429269744153924211601296732689125899224116979435578944166864094115313747036887105978952232838765786656108132555244960941844360214237295385949279832918047455460955711271058409686658578663634348001257324847727982993235986479303183139978080147661426856375377239564233222472665950096770042964083333891328471380251972065479191433175237663435633149790744516154116170968709500689479516995698096624716789267707147469820752106709024730169062196892797254276836586432122273520423545025758032420271990280137297781099283621353290399386072171370902957763706643707505237677053276938819093189305389250685632580410920285888022023154807415868134149121626328122052892630532750224223219900000146276230270553899109257794643717494041050516166586608663635347159065590221750103441638605718627748195744848719102146900312713934292844089147168173503413457215865737883345997825876217337481454430356014751835518626933890067847789172722057212873614584317593554863614208599353614306740501472662389932325071828204649644782249409760319269860507632459917094161874447492975845147899051407969959161572133119581049780020672879283246825051254918485123063701441085272594809264103167453242751394711839323261512608378631079067940716013710113077021651508647589233438829950144750552121057017077317032516484847960723839169674119489077495946998009409070854583315483506540337223529317070850486294508491314318871208871093198249317061479656225107001290546261953015426754447781983189177960799930267259463721663743550362965967935800419017149571100273474180400741954656962897456392639406693077123013348802741859664231904256586330603819314846637789747985919350464704641391360962777658851277315885566995017366783400989935946959010147438525131186496151560657454932661437112318811168691727502751097547318566363062202796438881029550317415940461513981789788164633891839549276807839377157833321862008608879314946126703271844638794147169949109987443841640835976964442298667094232197924272977220185510403969717484041842288843811216732160687615261240634274248982809658767439286692082126521263344351152868487651624452072991690275443336192212264036155760701480874519468986940314860162827989005359293138748248634050978219358386206961842151018828316854872191697794110152729318004398486775761200102953464535861614318053290700498538693857757589266616351667360229101112307226977630891873627827360759988658188581429289409888521733106535328865487661844572770248487720731328886647488117843000640801110869343760882979045702952280899416227446387350028854084737932175114571681629449170949332021889514946789054670802370888080530918467299194532411002205842612427257715010508658652767175633332536237807831524567332000902651182583198569406287834172618078456363039280691293907262220977978975533679443241261668547827435361409000721581406263440994193067492552432191898649824429037321041171784015775162399522093566850202311958104779088909337397675394268375296240193281897865704042643456483758826080892736901827324509132702959532737293280866185495658941134895098031067180416913323001791259225868773872132047060398053553145192496637621648484426120577045807230602977637626151225915361990852839690179372951608918703363567920174678361616836299804583779704677551569527945639420388514916127772751208588882105032536931699277134183049154692206141832779303812862467974614336318777546330036019484298831483686505007675128860342223672388511594386331640330220296509233655418064147309675527412588395222141243687877838031728608106254858593707505744047577137981190567305618610806442720567466235091029275516950971789403909653915242068116802694326632492360446269783234278501959777374499065623786303348496334659852670685917782745306214952958979178843257052275351589688757619808577938646355116307532295754046538891653178065084201301944987094859896569319057383454181736285221902227262418392762058617198594463484541387439735961625992369814121260264739562872559080358969259877527957220248832585691823146695473650520133147951629410717550191099975130943723824448298303300070959462586663012867678272702897203092485180137287860694407326041511408651671309505898590593077866976219017226852098090713352468759876719043442691256620599850327347523904075663804499619222939442618368101717474144616881479682814834016372224373892680077348664383073812792073070843522117525710752232938047708750502622725548601301214693598455596882518040091757006697978702754195572970140784672444984950156594041322519159349250305876885045378755307869422490636307695719669936520301113315146414437932647985083343773825604796495219870000840623069671567120224748631874013470087346804974715591357404375918716546310852316618627004751799691268512444148839058268630198378077614531894898107331391984779272453971077810511054402742394771861594943391076818074132459136831842392208225316162178169076668098153496101707122083139633279152148162258871140742673372763437162547895524356023344726037300963032627081122987262560845388492102780457604678239861830435227622311642629392475563832438378225872482726737031373485976995923225281614858505452134973446221936176563792579664007164756618283458319769368728143656447188797987725153841312567529455884633084254211676401471836196704732635635133580569415720271382442047071677899650979607062890418032546992210386562523993341444781775613420036699659736818360858826598730513093163729654059058890628540062300016697790499369979258007658238928454798400946502047632351958953317130874179691088092471350807505874794784399011311319736847724905820904491750165153655738259217788993783034176512271204618841258057112059967987126156552077100505544854629831169789942305774221147494743293686953399859149723466785308593087044497361060055028979439727971955999962318184176768098432014788690128545131145104156846812670428769033816864493279104337475120545134231898096728222260879268448827638200722473597171998498250962782255239891672643630145572893971395627167142734086157371141529465416629049941597053120904507783282455158962841928961921063484902786113424963221554088118033823909250214743344173779045768104327356535034104077244617211702110939611124140282875673667328599107020901273214119296613268665379063746261937803840280469887572631900313940260175029701925456327442475655746590867225390136285829383757931853584669497297976677644927920672240308897380622878150694102210008937012057369796187238955049673831400794832023843312524504550857873319565094447471956743954428565181333470813070750599698646470352944347670647292718041784643244543710877492230516618809934069437291014340509524185302952638586951749533036851978248877048246106329926074040742220512783308848617595435954966195451372521151554246857311214948790125236163660650473234170742409385620594521689201500887278867826094879896502702699591377711905388104323959311542705292321186036034913847547226173500959338431538554988407848445890325588862114503175598340999709874742510528572465541869889293205110247125134851489083771948082497063347243383060744571031351387728326218824373951372526892088437855847585440279778213722606393099242152004432561826615597945222403084729615407337998518053654649167167467417595797412914071338331507754465306421858225378800691320518632433515553066841311732957508384031376704863373188082122515692924497779521476246182781019116809414798416550705599552229667387055029387444065898441249711431666936892582903412519222127301584002956737780744151004608910067698314168496191323295474399775954040602415928979431999073778920160495924946353248626292113242347350883051253251406068325363433653744515510408229207897720921177964261135293079360728066746718760403545507054637791911713900131287772523641522465212061578978428782504512255241864649825137435608247832508925792798084866785449534225917465739464861449952927598877256061082142519902458740731918704382458526871853640214060021674965387652538703088555313667852267646756303579351485861360869442426012526457187972141690815520687133121326109298933863278442463902079299354313582707541118845329591221437460260545507807110408141523968227639178476236401238204435597210720105838042038524839894974301411057551029022876290563014317872629648697861663075962027500629720412821638856115700005234190520120042770836875948702263983287092583304553707632723364110908738676043098034140645516165678728878480340064565628066481361478536169273376730931945341126179153343255456530149343601547407375451143072326454342182612523144819185180043380242288099263419711612504638190479923402531890468003095256787492006254287941034937872904467652999016167355060264821108504931528676076076329549829491969595404745458061313129815405531390809999126628582124866173261757224319137914370361412012377101461581804361764685339724113200904225838655611138981843082150828665477481868815617818472987021245820524488842329837874851211197506490109286133091010167025988428836028595875545857119393162524659202306897087522897489488202631689822075891781571154703826919191420280877913487620508737263551549137552219875808498455815524241302493251894385756630241984839506781612206796885858953756920552371878632238948851640749384608694918137193310138558449720425351914704520932271236419144414169362938734292555886695870265559849412828235902434971270695905976024168884063021699745264730849264334451584595611158680629261763217424074214019775974215491436654757314681343651259568465202327073166018783553177798057556351060889389438783137171027780017508794847108384754613645710419745972383172179789202294423887656713816818313546859188414586977462716728227947781600918457983311003568404254833507925727826833388622253900371841659800099083393568022763612595913145634088496239146052687518731182809641104293154262562497329273124792555407075100428705796567553302564148329279386925599504401603726607857603803776786534690992097098728538617574338010444306225720705805920310429742665445880392739299404153047674816722549060142357578608350918907477795737079206345241945568283625578734376268259897701873516811463976551037719827799610691845009765919783301605622994674852102619060232016846710000886179786791287951263025501258105915840139015329296868830958093422846502330352725502203939857753768619518211309055545729245315990959011370411390173897944239225773492926647171834739218747570046978875287828102254557988263485158359744402678686760993554515532917824236491209981017299621818258724391865993532228158338536289915486002393622773135086183070802447301630313897829072779713998317376238046155265782075478510332750001340867282705341095097983135324789593160600117358629506920801322610234739458811211850268259573248132230966645510296005822662987944040365206171648161961496988276598955541577590018141711355514706359247612978300431524184687524171370338584520705518222440046563032964913991232010979060244819980920512041219772201842622927715349642953075567008211904314162450974805551594801710803572671999057681995676197261872792524831207206331547625165957829380096835988494460183185930329958028504833426950287315668353053912816847982778786152865445953374565044447629341889324208005679974449265769128850931953035219982673064390901578504949711045537227601815496496847357043904386433296527259735750903603927724195466983481452208110161061808993206046400365240239054989109520628106364158533578174853476952926023118657874162352325069821257324997105779370114721554956040015896068633326744722285608745166628646372437235740994264760469974051462134934974178136012656464783595573720564788941243697402672711063113591459664700004046489570574621691753761469411713267243835997648504480531674815783233719773745241259754997775088334736958808633877935392832336409795944294911866145863517389374249467681216140385138947179678843519468513165271939756369859183145731233231774040923142539440410431641442128236775669945982429970323336060425658890514686293419117753355995724297247217770315539290040906230884172321838625960641824539008318516938694215512831260367206945892361700530468495365379978171177680026556047515015853452611603309328546890786411564989767586331415382909016134282789529126026289972583552182962313307964107798864133817738843338680730822087575398730488965099224821314904069364646227682342557685115759685774020613953155562196202789544635315294559534993756267028962135479228739550682046532246990423051855167554472004902139390591458425464307983404633684394727061315879147339092313651364423134030722717470068062733443144443846131183854356465492178815109097767570891863337174127643892222608290695837634161649456293724508111065110220658111215838351292564733113821591637417565029630972733523630030653270070306566209818840196736800084027813589401709923307157514806195707490108477958950211898117853181874896035890735368208404522100787732600293251664626967278380217374563959560449303234309497953100313648226195430038579422569659255264760566219369031915450763795834949217085258930827281305200018205563017446689580088165433868275285639069598863776059215863250451630354432698849433088544573132639153482463623455927383865025499566352581477635339083999333447007837354095712274492398966188031790404556879093399247111134343528911927126157912154459097958813171217905248297976794445110068805520075494424693096457645285391885943663317300288005449124144770656172364817186276347810923056884254286026511091071392008853534924771514511179220864917985517873225897491452170947865171791605538764835739421405596995081219569786066171414413526236153271380985055662526452489612606307156492742439778715545738780661112210038843793378520473118285623245208379409570792674379372490309950106910906644875494500976609604655040308472542134726434762093699053504193099695671215421297011155344837416836044241623522827163667849277314057483048094907770953543524747923079456505341865847505747484059867830943479583810443514056974140686977267024633538695030706753836704855536255845653576376047865630232938688186456450023435874525668057751475447142384288288072397979356491276370544152493105015841830382537759379164081179755476802709485758538860589510091244310044521802093426135612740251017386435395522843673316484216281634480336442177107596440978401054589905217267698804257648808234131066025771617233167425450729681211102486417680038390233135337634606486723455153975570064273995428223819731562272467791782088881857874846333149618215196131390661593292099833559506129139442880902810920486216172312681024308434616019256340582264760844999512030774138140450672562218276853012588889975010249823392488145492509561406228938791592150945360318420942495435212561380558032192822043833120399451137845694743651787756518719873822920887976539913116721950797779465213489412932539268833518465732206341620678087620770106895312034227847675922017072878499231518155248124586314765968288891849552645632551200453742300103494987510768567548025814013424021682273522456093148455543357413296605580827813663458736593427725578645485069199087277088397003371233839124597403300867409859544711041634647855580808549862862475797077204892686880027894494732425401569952498641549009294856552903233489319147501026991756081756747888118079486013681857418925538578009246502073405676755651500264598014775983808915583992942478949235956360571844000272295650992835200661208626561305362617558019992398977200423079567803542170005627953992178501944857619799572096558561534254614764184493183641269983587125338446436239693193332083780230920645702931822737286532533659781715987211540028961381626499720968854156247391614747063027111019333253086020244557990525951922787967335276761037543263874833614701321013244372355753830910350654798041044011646538895480782983532722187438788008162039969982104461023791726963237576442374612367381811121794655280945193586158320158470491019363682416326368220714660434168442572139689259269513249391422312641830984119843020878210974864975780986909171193181058979120029803252072038039401603847712812319053535451481886940132508515717877651261712382590125168172840826412383035779561604452403832323599197667098108371434005778793785732600980764781179481935388532925683809215643794370835400274483240472307771334889237999707337434431037281360308425874628332798943217228548506117574611754088044614397925447303263268484444208566870269794462854035672205171223805167197002164084881680504708573335929758417372731521375134301567753335978117633595194256852013740410794034783407439892404746566884706616044872568853416541206140197219431812853055296931333106106025266545119814573783445470431539125660362170166063857381548923190287954842354886819775787754201134571108875168461865376701922576466179659094458887392204418506686900974645694668409231594548888479375748532533563249009243265918357472542240527810726819435590529638799182552725914432773702950504818229824958134580005750991224802765786447543765238797842510842399923981684078982764160591568754060173456883249668809075225575453246372099324891058838807042169420949016600535278749696211018644913374552641613107844932956452547623315659752219244737603496559854919782891208635905127879811604110383085766789782645769466512929758587275101795872122617163396891766621746477410225255764794535718338015426111637293568370065771553377969701373362682444521094285551460276186826208793339202458079130534527272906274396244179892969996968247116226517108025017103527164418604161660403039741440433705129146474701550802737080698499136917469751596100985798724453661751827632440213019749840782045199486989955906061178759632887516735014880415076142785040005368761102010858120096329579584782041636863065862904109664054528216656302205644729461749965938353562118242517692298908107628649790092548287770874262136038280908777514505031202932089870960106252594508936677854680084162779439748642736075018488835410728972746010610828323880852069629450065056862967248322972529248250141751281876080412995933762451941834732081274386911205794519535955854756880599890250190718995778430704236510934699060643615485425263272667047220729317984546184614676418818557565266674385698889089736572022774826998987166763700746452570189073594519670125095883455435031076409097876701141334434036290168769061479060707981342773775237628187386686312555354795869650993084898293884952955250740419838761863339282736219742590243078765676095359960107395969785192934940209076290432712847051167996966479145251828032136745674616121226369961932070649120029987213041743885693635659307674213710992016662042365295062816648597339285832771005851958955216548117057379224958695282962390051402812025027967353358631975974790739952370793095248795956403700077425393764630053884786289289697260639161331263017822293524711894673727842928852687083081121211618413675923583887465247602664313363258556386930316680618506654291848689005449047681098915494413340933317991384308807763662247168709413432824107465820547092605000890174412792170332726972844675040877211071575850482220116061586493496067900078525860454153026252763291533517100941534317610143510077467939793037202682959760690106460811274602018581197941741732578258649851344832270323133049325518656140049357919581703267293853457420064907474647366145987351847917117363476908409516774108289170507368341292218861685835009678066028108712225468621035610865244607480322154214425393201447750945654146998547510245443277209947307072029856158365457550138282277657891948312018443447218690271670909938286501254769979049930481397430941969244791070776164405175001222800610313134999961751376732464974550497910223168510828181517282103544723965198252829350380361809846237374268759372064339461471585960771739859841211022616633917409952846263414002970591289559957077775806904783624477573931048047711553254222898727908748143120475072242331505141800703488873915220397176722453905124566539463442845719495207110427591085347869241149356524336458720206609367034170571310339967850649942698688555292086889948639817582876907263352196286371831760674015365632056781023892072738739418056771602954818316506283627101362631197560878095824024546836029666177030676356200888116818145565150370528183162447862917023931493331069066895258743020483912146364894926606530453336889534752809338688857130606011369088882629205140337175615947705364100506396691141875217535088416972703357310106217322278732933018360964375743255937276787146106461569947893841765665281337431844295911201448358773291998534847039686154575206614484357115227703551860022543829180411999005955271239087551732380513408940872032581233551529327198861782250668114601713591423107797841982390495524244344971405946387220231866371590286353808852222197309473699524780128754822688710334428791945865491855134471530008713730220169994097950339503541286733730931874254711595006909262627546303658782647053112686024620683352394658489472253501069641022818498695488371849207645076111690435013947959757705530939550040676867859402807362583693261993661542149483649247855810877781870720938332062430803724187456870395820957037326788947279799231486121756941345084942683982810993195992757404289256402295783193161757963032365298458724236150996760175626476185541947858977510784622459669679583252551133260265517528735556513953959103870778991066428499420071409716586037161650643829445532717286424352492740287355782590878086011920653508481274125450038393025570916040119681446819041482721040986588853036004866030020098773321424603806660715006245537296408822877452691078844346798628927568536374536387726809024294762726675339162840480188512233925067302468683802447956026652409330694381495685477513580184100049092572195647211297202509939306765579504486776611687400070294690558545687908115732779205541191712021615075739549224885988484161666319591394116068286749325141156810619200904385070902218465255714777975305289603016703143715233682915253087284286856771781862450073816356603607381953460115442638343313760887809452206398417768218670495955639142494254184613968132437651781199005708812671269397329927251113702255844332349174625790051029428843008589984776350674771424742476315587673633148814033363890859609934868189478401836212063678944899943116193380576820515885117061601097276638546055507949715657255934874124679506672714314203108337176859941317944953787609729646272397271451830014261809167146053658449737329119444126734974730192211145917477077314234960680338984404504247254799828601937265976599313251148361889809444509197126573320628880448131137644266334196147391939624472093043512845367785327248780634405034516380502357495346500431742581646075230930788976156327996358126680940242934995194639184979592663873729390911674591144093581540350129530808901772651174547583803118234400507421980541328380632209333173066051298958361254253333145359441601588346469087415927090530116424339744460874365690890505014638184716529966984015701201020925886874237363518951245541219791529791513472426808677347784337461215861418333420711224178244511184999161855372657430743001278166239505425399034819604195188221272206238530399775501226104639379137464258054795090759531356224743653271094051181685003072862016516205891180305880382096878678258727467781775956122996386984575388074447335508233402292195620035783943032574454041568537697897316848143901385820773813442864598421360819817862459765118302550045306697253438653811694535704859242005137173528003774639448673512001888734455561375294327223812652147866726821243798307974731950818235648173031022470701764443245995680143637757692944867047902785464870516030934569954753807402332529130679538887126076696014265475535164655059336666794843399374835984602792514876601153556831038642059292844748776554552667411044762517280919297702170551677151812975732299554275787645441878045829521907648093238840059710570106783887883067518944004643029364223221692651708038052375518686827907880741824326178264372421616643626746217863676420557623302631973874187348800587995157963088079341800758224102255941854658441492504294421656673014641124059734135412332051709349201153681215884692819671852211399048757328874594802037149245457581955827477194375186554553299185628630138324514889817751761303397830286794444498616557188511298426865784117032865070861566357733308322055911297293909558834277422351965577137856476515560921136226030297704890385947840062480496979136168953559461141737686012065076680619673969894699370375495879913877500371005672702739725684261698077818640138999657476512208824885959598345383391830645790839893243985734639790515661456214670643668046838448451949162503782664958485762218445763425056463369698911341137308200343180529629897904343479796175079564429815893955721451597914879683251326585371105176831709184071698275124686927507061501567538059877734189953957182890394981131083421591823067414746865557027032839467111127699467194057787624920519199905885035329697018712941675379350109423223466121799648437783220100157856655686951627768067165026771037574244844694504873159625290007847455945870062733457378670320483351321969637022422476031794324322396748283726969018764952981782561833651541827074554042319968028438931344560701817267270340323908382840155051832415335240522495651307691536553997739723099043598815559633164317800926091061061304828155635688024037019267971922526750695644555073594220962297954702135620507342445235304340831023151384487473220268904695739402946684574994433256821072774076512731826704519002442425461696426438350355332972015700853787513868101024465994227347751762551898885241792596146435190531409307991538628925915750759577281467260073964586264043789032751447256607213784994401062468300940878955747753402871595028639811760411473398018196505157902896273678263793256027907766953675585819597836845769468720363580794556337415198147049048785974261509196145515054638044665206496975247669336291993883700760529896197408500272356158307817395576604585620326935047413166501218500388892052477246584102082699621711513821829449570389257619526919112496733807134798827166898232297956980427171407575276324302891181963764001806121287095593869828726254750826731255390573824083610832690091847149336022923341077045132916247708642502060712748240026629706366934053898214513821584460760012032648480234128920858773310016563134349031626196306803292194601882139656623055668968700528932669527518655944306844398595596004264400841526876762890437061501814309546635024540922141817684266954182919902929444710709191921370747706080318306817619057278520074387940411521709961815312142064571318551830893968648206852878715360187551128869008003066499463428824099916861302726785866454204912406175507614850913609254960416556304200511924273233933395470634571584276610889019046777780067420841685312157601656877928852919830757822681732954875654856837178927854903856195690876943739574011666361406282643724755610018329764163120647173893470964963502837115166579984476496105869371909376920256081087360911028434982955522080276615125210732810217941710096978135176998021665251769793953322760943931674684567676105365270735985983187926939525373138108746935292499421869025160227188506368456821545935764180634157382018377089145719344681652180077123267436295289516012015585245432297091818907035434760517354461065220484564010354700963847307113073010426376180313399874950136147287152835019667364279848654108004875456619970204356199758089345933392494824956884887944287740726101853573546930402289392453621070386023652911197190506484042673335207996090539199597247943220550889661013050439958350008989416705823943309043492627232267978031220661502675244793090556940707619310749209676182553693104944095801421318765615734357488524110299917676355725667602027150630148688901486531833151703552658799849757565155769570538811348190637152774202537033460061069729998774649172916026332297674850990176989398061354276491731159339627052688711106839128266269501874607719168669146511135742335355849191794628446454949970302951609125189301117808426005627762548471683264052090147930235400849165463498080252135847857853839463073301381410432012389858240339308601147413919974178115536513358080701463418701223459898122639292348232196368691707150931698169846094456580168010889416363249982844553899490162837506858521059470904114649940980021899974285728188718217120219930586761201240304150694052096643179697838661283582677647591197920382861474682574420941491757029741302119532330159355476357380245267858979531280312286771984563582995982704936444580497132048734798766101749786709582866315486841077011271563340864483103637931042822277896934147512224416015097480939375207804956870748428866433316234370809875025831757252747021766511581727533092849753483111088788289386838962816280145748187895644834620762844060102200112080101667080829484829535926095541485799545877262117727182019821109537082057600564733650925376998888558334623976588181360833417704510781336040837207521432857642697695561345239625600272834424605353071143899508179965548180226055962427631617337283129117415501469681817101009565005141307173749721128914612924140600293543595748070205912747752486235901097602437171008939364361874278072811262801534381337188424775657690656213012442168569177130156376393622750519412148518412509611173346551515628382275967228622593350016692417944472089087814464880963849462897120116559479258089133552343483233952130849928517493694182789965381077277253984237408205129529038829543369535677408371097265940266510308169402325551944365343708718778135527928533463455731395020132533095294044114752051668547333204082402782882846303768631041090062659511761942716493455383147673486986686896579313865033728169587381515394415782337075419790921916115019006801180300686632491693284758606777274570614083878190479019565237900383942415149149799263152816082778334892824430806594258318016996216779998619520860952490644206740173513082400094772513618391290177552140010442853786980713375305464013025766293217016398754210356968704757694810087962077712856016922656454767146426226240400542165997148411027895033955737093391735812938094737950878690792098319294935979254976559235177104634948908020872540546044585112436225839973556627596086216373645569136261975848768694145620252568967257680383069892363439120582314993152798163433096036275671298981906647725885567761405939113949295286757994914558598369818764735659229372630472769181706169841839257498429015707870375867708600206611216544971877573595395527455781150896313573284672937516014007904283476429771471481652623813586563140841306428574291676249465873949403922818394282781935898732062237238361263133788941175850522830020799244643793604754024084591786759849372060866694237298369627758755477307615201299718729310547301237982543440026705678492565994286471043434240024694310866792772692322682875311084049768432994426187440439838689296410464677679774156367258545968681290220034137132186842861755952493275457200473457867393160578704926430163110630235201614306410617038487860404934080657357249132259616827984180496594212585099964807030152792594751137678718214315902421327078858839220223386040791489981616946424297665762396184155405105505754433085365553283939790589551956019203951981907140817212281041032287667350110497684334137453769735163640806273121340602067909928116014548036256201872744657259467262503658871099078993464719553286624641161279677880808881329163117801592318355169843034112824171159542791348163458031669296831446307590809277163518047997849601868234307607104203050946134059236711702966287591203916838899346288827591405090730352503194641613330032840332212690559542183436423556617303015806187689975295092645153689984185369841408838322465692547927249435660790359624330946040274464776830625578195119597000853597991653099482820000042966564860310957063500386015487396737363478947418870372912713206171150452614573398741324029218767744385141840797417957918635932633882205118309110037614632910603822166289778121005670495276130123731853421400818554696173385041745727634544315410233658702890862258772765116674630265121955586255786938902042064378690004891903387477561047175356614638369575985702869724284778232635008478259915787829100208643783650352520797103282562712526076937291097869220992937173783631693143776993485925347787185793902984526886674225135968330778680685475856423714741995252168501890243876145872280722556222614732369594192961476042030121223121167158632774284706831694113722777630548851357100199713834592216118427875756615033110915646569981546314396096996929551311101940383316289836424747255489174769952729763414332470218370641580447417034878919326763366797619744786871364029623143554323097999158644919940426168346345310337437217786744871123539659938749247894338499741155363193062378409902600853540090027656830316819529644934452040280527329915886698584904174854868051824574713722037676593031693152549098538362648250903672577244010436056457204265871346003061550774551719378838666772013234361493093520097925321893729544568699089133630172050384249764474654544999805477000764397655660884220050523575325119951024026835362971938337648124564627172715448086260493146093412003753927583557147985632734904696640868442956335181986396813333766962107867507464389144507771547306518392565167050055647242243227662425487817095909674653678964659316017840128673322133017963822746429033507053162265640971444198049197152192509729760149075589606859023318224474890098026141759641317529284158442399038142112634678332619425311398921205485310589301697214818529423444874695247145226532736532704076517681598530400894590674650925950610666937628711571267097126331256158647944571747997272843618792127272621962808308674013428071989369923525289459635305021773170378077827616546245914300801555067730756789178439838415741867756894058883575981305043331754991632266234207143117649910030538019627306216654144274605338616873389741156796201296613080745329155807422748930531716542965320543514308132884582811711486809388204561755467798307238376316003441714890816736003469542706531011945025493409360596580609006771998320327044439010350201381100380198791240907597646839595916576556425333588741916425844700059880747728799165924079120779066208765586270586436617623609541688573729909719724296843986118728308729337705367958028860454144238798188720433441396588784508563593435586127351892764430185497481902117985118004347591351110021060801647637077304186672087655121427805937308573421807126018318318293502481248744695204449188263300765170853748022741179196411589293548985940879716300710252414455587400447809784047782730256279294360626412199116376981091750061524033150604383056728079474557161552655925773218000471130913707577434853069425415911575974492940896931153174666958315166429523043104971952955865076789206074170137286223918698499988757865925783194171940142185264295422441339094348938778136098304952110710039658194162955549773164426827747650481837899916080736878256604431085839518970250258337752092157425366642303752823507732158377348304193078431394680646458104449922548158861282799429099197654102548136704908033328410158625210808182840514734977817313412054518306518304978914058962574118211922564079191009655893151462238915636459769092420030177949582982630251647130135610260924618526194780849441892299059009807341913372249625837409672301250565807722138263462785496134429758562616256993946360440819129084703911996453927546720316813525525317764223251915813536071518656031289270574839579218092336092599994415624962341958358319533895091652455824403718007496932297288001263614071110004251367808681652210926821623046181702644952116001367533575930179538805767991275043465015746219063125637972734851480739425911887052420125805869701417619952368785201617174333179879625189852956537634050159756407264708483092223088264223360392840907935602472927007207487738015425940510002861061957751475943822784592908845238255630597918871675867067071054760889619682242814679289704214402111451175425666516084885925316941479342770511181661146033368650167972958936269079649819872679529975904171525488202875263771939652964310188202047236558125907441479781402550093336579195614472533571115416452848890716349634409885695645664273415142266971273338305490390361130751945207541650548599467469170813399291364734931756135475668333929424746742765054149612866036150139045174919844089097867996059666583879436882650398220258737960485753297375008745088055706401801074889311602666032234308029742420499169457093448483014440883009313149282542525350447323788009542560220442006852875635623833640951116104010247117901868839120310952307629650978969078718175776817618582640032563277792977414956559814712021408864837459605151492388242615286323179641554970176717034671264727730774757228248027237514769797417339669263742151490333235348105325007778827843969041992759974538877783709232152969937216184442659128941621243152591681056734683249331935968006165714445615326207574024877033333444509466599551972513548401878222251879374520010080611117136025921818787125079301331449555692634541244614230365331429345968182136684366152645747542116009686269764757109558509051611900160104077815311653057306381526124885909357144684178476831905034503615992288576843754201658043332148811922945130209664940655425507369068208989086734523258417329563831842287918713067976330867350089066348885081563027292070078432708027452291598553318418245459155239617606504609184525615849852017088347868423490401436525600190944254832217105185322859224683217015944304526348875640923780881297909349180509654587049633338666757789260631730358972302559562213100099581007852167250060918111725309512163423600522709038598933728911349232194538003492973674116247843825061217346023022596683678230492118199683337293122480738643654992154462650266770295095198993606653165748924644922948761610621585206121593373543944166840720777237707339111034804617597077873681739847912836336262042320312662911199322816308997505173488783992576540889812267245810515029773369414468977284655827981337308971501326289827331346460222161704031858219587125597332219054564013612684003431123850164923847441030325198210838987887848744866592747296259482625834072634551694420936877572518080049722201570501459549140472950498580937384277000272408590390580949594041047262588179950274884573550344613532478419806338721813740978323443234096479825491041139854230726766053519501851340693236782246306933484551179630892143348658765753575274880450745556793418445092524559234434268994080717561433785660145012005990659811359136348664203583169503422473541512529762823712434401615167359153430947062948695500566894581263219861286859659229261431645565691504454452501676638316911571296910725206294123984712365050225312380685282468690060844958603108484673219072336699761548157257275049107726854450409467569707529281850175568214062303752668026999725775656307565308532750995974305156673532617132523321898775100315088347309395532608744783894203603092742032677770807490075894023977561283388685681093504699225910395823663273267273347729257044540526832927971133768020763750739537304626472434066573163661294112597017360275019829232045462913228356272575406993363137905302178757096352247271837991027585915221233836394027251621777682861006921546619069376523688473896602988508346787114677285854952350905536701678853878709196090543262142361139325316715731661293739268853081117650522322520192825210666034840925312613089075621174416973205686244786735036317685638545292450682279949298684015105665773054333932943472318055210865453379610501824964922467881903841620715321160867828382292764838318016281985119759735731714774929767687616517976068923526811906065390106919763332049042302612928974564672580545353072452011397567781778036297952164231358838806213452740176127548190483622915501642465684126593673628956947477886122267520396444254432550153162630933859699582573564364993988214861462369712405618935623988464481413061950997193157116798283259525175914030373086968367641725020854658772383540528894684083927356399681303091996099797291144073849861255020623772868268453902014954154957844392847640018438036583181816743545517942543342006955337930484229477673067690540522479855115059626602782823317246692141582826524239702079399716282653063158555011827736487623503584049370864306772826455820249015151986554880762546564619687430936069345208813170110787052212924255155632734746152872625811889379121256185324366578014949003666464159501758063482154956872726536485876435986740575829516898672336718923904411975295316143528839310116194555253082172229142557103538626741342597006864351497734605039790834997522312980530541733527876277020818451055751153669876678600760093769304933891848593006455622139965512379736985527871469700229042591986825755640131857070478216352400692548412509502795163335813928458050469797511805524278820691413521848118234753890862046907181667297549749989690954207152166347907582329898262834977570498611568437125998367704070164737947725128708294864974569326933726781900942990503264163772073504910843406583704282779328695731424692689763527288005547277778976587611797558052241823464399529142910801526424421719376833621291613311133731917204394676082055802211287762793614898358501326876980653963836313203832513654733525117035693803615069908078465432028513784743347276914034430640142625517825184577071797518396552210295170563154564224076993641877589783385475874258234262787644550033373267457653814240156839364506921021943196917086414860240471776902557105233730055360223513721939627738642646857307484694574638639991214091708781636294025609954168573739949214981105022812090666627475107290186328869304780711195859060012308831879607323346681652492607014098814354435655522681763010487553936547565804148201138458059511860439577179807636890477966162144585742010721807039067373766276008826506487032721299160817770356691772469706134217089826177753325303651108926751599615004261111951823344381465607231531651808096291255345745180492311011933602443877971007913050242537572941561111370306292381014655623102968501141887791693539017603347635571710502461677894380849625614180640157189989839493622114817622387481408623232806644621295651018329163084950611721673221219540157759006395534953473981107335272525844801368462670198318233013232968906279974566374693517845602449940028704513754345514691842846225393322991596872896650612705011076541134918561083773536035803306276429077205628772379678112583812597696574976359410440521105034287795119922661583206116316821739213856192523764499161414068432133805349345380071009167543326412267315581745858549808285964556504160551750154174526854917784851607273057594022888605370775149625411051628092156283919028422249585322396322610907543095376663679957998127768008538553990304667779564309436400759337374511053955130149947682521055280078517366496649309254515303259577593850282129565706483197695182557906019605920414551265336280075066838985802527836119022995472711598042693071528009316460855869710728180656353750414804313046216444393050123968664719516277686332203389005458480914195913702787398920511744061377091317749666469473609882019731066839488418634552247498007152303417877133487291862453063373248086674332268312152430788998276567955771473982342374593027943992360128361098221756445174493599176569896418965908586633669625265284251836099442393055465706831714940236816554645685450001654698420978097778757646500052477632971220694719142763003468739567095130908034311388265662782893063328837255533212518215435043168629152764877222160507477511539612389904179882816029146458817204977791257798027905675534752512907785653819094714777538607563007515018070758621451810486113883220475268085503781793258565133550088127940510252070946581779659534925722783260014230914326251657659206694752871084115122223622286680052954898864108254049662479632821553514269709450970456894108838964710260498332205927770003013572504183254425742378178075928234359705205182747693464715516066809247750108096292713472437514287680943772866682947867695421765368069792846657280931169064051409610064517532488739074154895144850243258600440381940593005167460839690130273390328898265054797905212449266560113836995115544200411197858109876654463481961514477171784252709841812866243885808833920930212780023664481216916978188216066080191878730940053304909577175383928730974356403606802826347824976168602818479646248861746211483652165053100657616485492344674397530582462877172710980305597953647111267360145058140061510483362136239873687770889473904783850140023826603013830828196267765915706235316128940084081618996071214559530136300955175976609191443222154978426477923985596968425940664606396204658178736791070714967501867793048108110729960903352924410336470488941852882927332652827025587341311920898197804099419266113142817280196152795810702935769655343454014384706388035692409130732707084235476160471474511115479730468457743062786035101395698445174209276119837956957014211127326789766803852170770447110120514890135962687431873023441852447547341433078837946216926254036981277418595193970511209898078843923829268028493210114561427211581696064957751671536529870166389413771004932762898054996233653259513810461087685595346551651084496600814334679823287802605971128881262205458605817994218026142016791886705691689790208163767369717593185283193617616438982403415191736336526612407196115821510313810222987661505102041619240097447168407456043885866225544533008757546590927937983375985174807110979677002647389573043410958660010378601255742553468236047627937654755661206972368733826785854795824621853483886783071848168246865827353318309336392457866318449086854190799708625347694594510276215314897223266031770253555756787790741023768464441161578132961230145853940248283525032352449863054675512508440657112513936052031526578383415423558017602828478379721827691495899166101810667492897282715600247977865453735893241308612412440298690630161745769486142944895324479468420938325791924972456798372484626482939091613126094975429693042576165347894718458305260047944462730673069881879787923501505842833153285890289799409147323565255205084743303278167942822298996623399102007814884085427391493206248661302002187688301417849091169845025165239760965209389562390202790683551975370355224191015303401448337760214144801120919906376700884685135741781326214276462572370424614105002765392438393673752024607294976435375677802448243914506610370036879111032838776119640070084933145585852459219108423475857266822274027830669241883624639532493268992277282447817277017515163026021996657741234640378566188732880320174350062415585152517205445575328525779854011609971243208981531587109757336233113683391693305261237282283231620237244010829931180117753769411590683009089956279763107106905911458106880675752352953551196072229847946926060712731876016478075691624591611097827188839984603697546898006801085652594781571780878009706238650860168542066018347308399194425559144280816534983685402017402615280112999938523015597954924580003603062530807194467498082848660342410053504158411536688362708510955858347831310957821928841279500898183629297337652750526198418790290923636671664992837234247220532242146204105910348608076409964740475750359564339646123436002123660296768518660202766632126644397878089422281703805946486810383089413971390454326531327998672951630464348857481850562285027178859267579232117892063173735428071082647598514613154230394286237413530373197242895229185711484963891599644989195515828314941319328739203570978004805807658405757446833056554866875367138005720510622449440261474092830470969622867322960185296053478959408440674506684001234926532969092691643817957286493094143866542374901623629480226975973359439460748641478207647938676102426482760636604021598033334135870676040950150515892881044181183398362046364028341471981169491213377882309241024405282429791816883473847609759902252923388303863495299730701604940659970472100673817781562174054920046515000735761076316470211611747514015241550275481139584053424672524740372651399767929723706679120820656423662915851916404547744282285530837980346009200490437721170798916776367944809984298237475923427937067119856477845803595068372645769108284609402133721012136282437780222021913588278259407985252091065808469095114749772148500669973887843123961715041703333100941630368752521622897110356359498559551408105132072146283471209549205030388241355970817020074416893233701679085628949898978121348862782350975618820215486986842454770855454852616557400749547195311119064726673857555611454279133312248702390742269784933954907526796415245003838543324662666111470462724679820173015170224496224513307982282283678458868758316101618156059644073355076245766605411083589657758429828870455139820816621495294228639862703006046472305768132214354514726319506190857116191372601138793314221163294098439497334462977803800419174100873153331385836995837168183106357152987850530154446117222097894311352765420698360057027960987550401521668547208383773592892048348030196727825560912384314722315942372294172052647019516537114242970587537944759446069353443019247867300814430887634608278246830732075985989516435857079139248458434529643807821415308759364679850925270105132132135119430422345355782631938910254681062849938909035810417116849182902850803460283025071968754173951431323975341501492613410088242727364105712051985085410525407206804368703573724014244916051117920084273576767141213078985944551839347198414954329130052209514455623425193454263221334340135707940734659070281340420015917483384668263736851056016234650463570634005174987504850507223870046569743548643534058730784435234964934981643814509238057617233568217115203859501040569305635584090783844453508746292672672375463105013628417356504309250061825057760515101340875585022581669272590179819385201004969465670946763376426786265000258837755671720498158160025955295657817707146089051561482947701625763497399512624276267014488182914618662049614892228253615996471355080587082384214547591645765668747699429778384510022238619205376257912771883101008596267122144594565475370735474679055723662336976040218180959512956973005936434903575414177888163540746329474443045026631472587580509612928373957339519591462885406079759419430511031189365819510170800844198267091772488565930310308671487502898860328242544367242524503360790991736417683306925794506587227177876541829560128707084033033553168952805034205295575809179074225577417360119799716030209444991841330037784028835607204745575026616263352215353499146989129577485345435489809872051712335550320822537123446748909384984957530750000439032971786946211555312352497713067487588426635505777362148268383160285561650986685392234386174613064145057865545675378463533848532969513918943166073982089708340600366892421863725046826589159261883970400952848174414886269204223182059635063794575514579248034176196373788696772094575336500356999724546556138850020407081042524850629308485559871581386374957890133489162604346344219948047690960121866910857454583357376758787067239349072733589310371945139156040517752874267069311467703537521298846794509464510982122323286422467475026557824176880804303886837329128985579008688774201056268014603322451871153498245503819678913007272717250117707704021291554556490073363734194346896734837893110024163992644475951920917709099509451755348074863973695391279620456850004066281872760377160039792407477344658749721284812905328958358985840788363613565911361504555682880917051263661525196435616043248077172183924508099058660663153463844510353346249562197659185761788474803415915897458078130013821689082349910220861417367714589779621652844579728250045607233766487595153792886517364786746272586597272423143029087451189470520732434431326190506230806783283653660231950545406116776983529802079191797588081530006375058471586258810956944235103483212261975285107052987248940596961399104192005157526709160607844694902591361171902175639575257305134024799534114857261109166160284519272040298994199500564446519805386357379773414267905290595425882568990718297387013624962649354689520947845743969676735554517066034436401288856441636107178262371918589866839519943156033624627453064967580207193829820288976883291998577686165109322938769222488775181997860481344858414952298018671849936717706944387324309584362803835385390078840417694659633823444791001148085277567980903229877052932215216235360926219478839289236420791460237506273524239782272836278621350956006696546763558481792251639905413728482928528628658799403393971185672480142138094108169733342705365303014208409767189151146199193468105141224008628460227062620331055553460588708987470961265311941634184885522030786254811523153721992386307373931752515664220959448002051212231237491361184241832107609908003368416037574065241918565410373048252521214172621141712092056133114554036953302461103290523412720618581974626062818882749338551946975095577428608243566576095019622169358495919996352357525627269015989891586926590784622373636903369464048866428547087089491177616538092388846964802106183731930680561300088880494413526038298424508640387441916865980802079999796083597370061403279344651772855877748261789063827284564584760335772709513296991628068670776435157370780795790666023596022167262811363726031474365724195279472177322326959988872445701632685518090858230888171702287827627120647356375645063678027065269956476130191595476138252491019919735851929769942354426443248788451832660661689138086703946788229104584999488303283429871815694685657555417334531759351041952214557744640356389987907824802486980460925220947715284280134511976999236844370242428180925433696653776784662729653444183980821035481093686850864952061383195472776302826781371130405693562274150129130015922837183998109542637001006085776647135385655144425924073161424524336415647569133766990819044120001580865200209649160130466045346497223718248608479191572494751138573570464090389358289062992605590414595014013449358578507500666915899074106595255119581122007687406518891445307646368935674357106154239855644219511745662364181099507959157673218840707982157750992398892422719293405163940519334023526610207078366252962101181924334527549305535176759228075771150308109794793460330142862399529481827928645216484840134612903092644517519889003166051414628511169627582266586130074113530062619592168897884046376144104595851453430298811928447409202009932342450549241116924545484911189739622481984578700174302519259264028792741254987603300562053011211757080410706356970230140772928377445731449766336696851552639697479442775605716687715719665140804750920364359831451556970544562574340983585916013776039061987461170896606418813540895285280866998396814263952145568272429502902237114543924144603707562162511894230462733194952773704950440648499569054259659813288570739345840254383803512764853753852243935531723930240771559086479451629957110098200682947640635437300736730329902362261200622103001111751035251689201900808318046568834871229450006956332308072486289042418589177040816468881835964416259582091061690831022320916529454360787542159000763171951980487594345286748249435768242873860753991949938831711739805597680064931272500304570962628143480528045106494266644483222517052981309560202003033247460442869456598365115038889077782245698319051041785329831258055568914979005944222194287929979829139904075404488234044638375275495561779370388826937953823476480804024980291940745709974678448424520707100459377799332716308616056445354003212717767211581851939688477595108840793391795545497143313091518529540933772705626183668637106985555549554379420079158966351844640537317960952416666037872785030946919607699109549185915629619040388730494089195989722524245130506485837567492277866983089022280505773971899754841746064414074652667627272033737280729726758872617639901425689006712370305118886124518396044847094516479643003704763933692830675967457596563222404820399655039873217611745237423511790045147852406941485344613080998417588016449681219522499783258518533820456266363313418450322420589062941475024578913838829641320535563766895023178812760292304840671982735545308670115238755580909688432225811343367862295399223960977894271620092756080273682996998101594382787763143630480799564759870114176597280395203910151047953951148696840477975811701822024452805221854777311921861066856914594655877655348503033156042942621360700327334777205446851847825458982584739633402806708736156687459593844169097347975248271466165736610041480273900935230827923376206614466761986860289277732023361558339549418384592135080749029456691354382921205828451812799698065408706673177049951759936953527794625139930919613402484524112947895849337047179012711609886284324185374900734495555767207967164981719440930293189445747559041836509148885760492316920277214102885800064618476511699035905544012199441539703590336241090559641355571124680985644406924591015480128621802845193368390996767646659597733628528371782801064827236350732004011371127162923994156358005222490688282077980842754215785202902232353701631636347796407736709777667996787750575168302411333870773447462644000759448879588824342235102087005291869965520247709020425347079294447652494810904682579217349116767273604130843317988284738323440298605592679006982083100100239545706918885513129859596784372195913370073631220810366014937756510304943992466936375368198938366530773502419682643350034693860202800614700272312988739027685630257768058163328080959356184898881054776164550784565027511478005602386779069057711069499979409428407458112076608391957071004638821504980432805010105490048988193086206016079221752826443493516624466783821599439251490700731862916278031306598772147194485762625828861604088670890448448202753017317601528759576362930781266499644252905632511466926221761500739913055387999793695485062888006938941366486531671056355028168397243830511603119215301371300390025581260936514868010766578429321915807491298766922932232412053402789763688741195852538550620170518384487514645755581218203847348421824740480776773055425675801591755312152859007402156800349423015616851432546837110344693001491264197935002737935910548497756662451350907505768567895722362785961275833970705687417086164161511542241127489150803764444045915524392068164475450609646267397964182478384680091172913779348632442195234690285359374634020528767372361397858381261007261400380536404478535160400410368123092446243656371133480241183713849119147567332745065858910283259810266428336027335485265286405873432581703139684313660881285863310006466965822160876380886221176541645584304037993149050638752895096976275467425933919739939547451088288476568514284158918579467030241392201369573834729986337753803592644551692038360120303430497073796151790859092719027765791041912841357129843744703616431613347347904221115288788085833103912460480938328274651571713140930906088646823549859043915487535632676089931211826452566824383006594489703906391705791166066329763400408113195379560452126280402566640735148764433366223823211291368028237189117613510997175711519224863968931375151898264020279644692012904501950313260521863343763647544169570468787851167952814068007421789389231752386270862194524803246538351504510050647903979252439131891477370032724114458819221240730780836414764420182292074239098546303935359727801138577931191236507671695842743800411395507591446751605236918512099229093634228738904322557443904189318835278285251355115888065193328726824792055186916512280019730264852163921257245769748117045368871337312906550898017670643651433560237946572564595392901825779840797506511809434128130322037388829112123895311194334880480647743486398353703971386450188994615961620732638677129168231877270639029225689970438889518702957134205876282039131263592319119231923227981466373548510237608440899235134780938837020543411107806346170332653727143115238963245807692564906223735123890297203417325611850568993469468272570665676227969487154731210826703358016805378890893499174691373982542411927911459934108700586890431028045856202773782980714159967907011101848900740292882898068999900850965428026680360046996401767292343106853832472084579738540430935724948236681482780624063528425461697654017245238759812347919859933619245367454685703799199753544085585747128824073510917865199347675288329063670111783251047206135356307976057735061931215448382628543354448485358914821496026736905646072752675920065624692566843812017630240229679014425226243942423128942199114199729377556345076606696107817297580264464658587871314921208240760792096368357231692598444193641349042689634600221176848076377146551286820767845350111110383397858919662093565527148925188750631234642611833117894384691618885536328935971230435465597394231574151938800474189654196114614859680661913743141242079481884012903477954518682330485236064615045796450634661670664438871018500600759088649729862173581653094290758113490136568803940017928825367735256960634057405325328069159978589014108195698009593681847592439329139937980448015024481746057701260299944153925182161308844315778497951913685749318221015842920052948790106028222150598985555982557012087372418281026037659022332214336831894329587893668598951347515386496860811427306653469597377833642706100388768427909580525350357665570661695009759872695781069097476203614485517417863902023742039485490976842421541598729555675899423595004044257753536915642624038334431953775054616272391540587900295742490272216451089802146961789381366111945020275670626181177973129999862919849853952780207854993942386423684891129091603652282959665454656015674623919177136787970526924700732851680144633002817590524968299951721194164300358048933594118002076753580160353785729204113771244590205922983264639042868336110320760430264346303725045361789107144290145395258737004943467780520153101378785315990156838851673229386107049220142432753145728494911603688498472299022522423678302820412843325229165808643803786865319505819015033600441240298800244288401607508659444404472226320407051903470042684028877730679667039585717403233033410331803060507048559677606413344017687780505551810454728809824922741584380136944347240468533506278130723193038837416970350599353224281037026790342353344590098739623491843105962194277751344294726697166382789338452677520164832249207247762825391836369348959779469496368445091823695997300938772426646393909985029164973197639600255769387199994656670483500091998475162920108558007853590503035430681878220304225185409837707460926994402353389370401252094571208173761983777412358498595869540082275268225067465583563732609132100610428731121798487523513874035663729627661178779523858673744420536308870584071108602669566519137364496482685520768689966629269102278547623324484529732535356088217793237778727043025919860699460710912407812192517333054866686366269974167144491287232505956792230180349034791055226743692654148400348318680767425710849641767540135028323206820062490281126934063246613252751200020102442962464620944624808645689692876892892706383167609960133258446280189855771038617687926089734359400105880272995083676379206237777935244771088222311638858560438738592230115296147235133876410991700195108654902105120520911619509151017785560651413004674455950595973158186934766344102972448528044016247991581974290522621261207035646001446573917843224271222083002601674570149154295736706476821540710400722804495710218046049836481622278661905339399452019845454804272676158763375226284449641803001769097418682830791041825275917851841165083167200093239837224478023021714238051104905078228310916337049371804879077471474111097034633112790482342888145719203424872979893225046269491793013243575584874547435739032421874363778515684922723631914790965674104597782466789403577698337225899788166882430798237404676786826724439989038362158450832982786627730580318388025348489481829146272796366446991811843683991947548593551490081459020702645057725305981562941704967496430476031291612119714023005662246430400765966219189128468684571129072716190536898485333944639319590699546981279849198119603442828479695979273860375783662716086965829778599803376128041787788405783140344523390082068874130470140166096153437279872168388939361668047288139280068506150994431942439334502960328472477531811373761200359450162425900616544460307203050216625951069462690386495364708087512205477938015244504688928750147643851205381861391596961849717571086131817534200878005593352024283761153832215611900287683212664477465078110299530361692115475997015381157593321244320218192154855180932484905520397729884700299485615387238966051754831358831409371882356976719490806180231269794624803058055776156938166874380919663792131982083171820194668282842585930522173410485107285856738444008346808618307960161349605762670619972466436809768051009204384912255387927263367528244878301099729627199712738509318067028874887730590109930733716767476451102148471905891179900050586340964557892812531549518333208524728380276071299967855844937709426996768907152168133954086166117283460151819195812070392247178280944202674273892966299526942452995935330657148824002337625500509275247486105042446532511668089274287417256258499664290833229448097230284169807788631708289271570218040816997342297231633345574464864998785719973892443243476470466140728689169917548361980379926178195780586133125502580798785708266553462866107664315458519050025321239912233307940907462947345139298444338850954250657190892601462210706194803018556535479713463810294844075653654724199288724470570437678240863136429349524598175757394654365758184743934724138177378211930624690456656546572878868110055618781250899293460137889997579761923756538302233426253017053866903797950197131072211217677327655636519404451662879664113999786702770954881347895049989336756527100197495732738365004171991989458977503861622895210986043653439207274409480416911758600610764191385491005143941201625879401619217069675031379320293705991145380244744414688406936318497808550305188881264244083014439744507086953426830777313732456199053235216583811979904677713560720041229676761086804391540971189183532305776591042523156531794943746314498787689385425934739394322047028554534645406549281005112456993243883199460332370009717192817132324081816492945094002514352729195005484728418380083393881536651180683749333832894761410742264855082165285032499604186587539525214960196095369095692342153054362855427185362291940039220776536550493828410117019583311265719497801932998500282867642147304039345962532192273123898087069688862739923018238371551505304340365043577625785596272104986914061442280823742834407844993255571742498619595359334765676936971377795403444945146861408227017808857908859662036005569273897161344607337174405655780023561285902270311132437241343398461932230030664697883936456461648735905124322645373495100054509642491003633469597945526813265809898732284685512850301664468778443875184949424626723022709298261436730357101908148440563588496854125731848185032424702280685531959677769547278806903456211102003689788325304425632495792618589150587228436265685784595177177118307693583261315135091515311042415568143518642240086741950390463751327700613479659081792775793887565750344202848965629424265436957188760600371687277976307541764146504710835402599879149248162840840210232929379444025258510231851644485527059039870454426272357259524763358415597811923176024221522450334524606754601793384384353263207495648063903435738771397093917102562219891452330701133746904944401258400658301079869145211733579838845215302298159125048082015959137559884599495496902762845977691260081098641217277029021511704146310213679187991117678649974908496359598218275791280750791278889104049758897586687069369519249184336655345914737268182268967387843416170111287741653907455576159487645691815962911756835402869898123520889623481011453470682304590638923676386433764723046960346027120278984217724792088048177459472804768763729566172465143882707371520904366932489692123054723152873732767331105784954484511076440428270959612113427685082393545742549711437700161327087195353490662356568251364401457129190186696276282189765832368108920619373359803665206694931645497073476830077685181857630239371569250519289568875060750668694854685387613734768077710391133148647096284037029983847431259204844101835568756824027730599380375526702090613213099042483550057453017359031752361297074379445329095855379887904562632423035633576499856863284478129252019372448929433165166797768209526134718146021280613303836141543888835093170569697081906994775471114292342082151235062635556752135524937272770263238023973953659332682464453371662645401608286288707194244726990924697172225748867184822557997595921175463845018096500850822863772920511129221147008043553795223799997198273694346527892585681229936954149901877981425517675755986612484833995782677482699762055576595828824548844262100113461610329505621242452248951712887984524937735860228444040973354389205167479632613235947871704408002153364118595459408103982686455220019006616324427814061156851217855214623057786565806860464521841606436855079804446249971418847984296998478980878551426311768138016378281690997980186968646112133009488768438141630499326773080345593158591905042279570247307426992354193378142828363539953489749450183378368444260714712541069689755561941075856367856322935791176215903229726884136310209657932999475220208962876409961209981355920068074878078375373492282317599200588827346367127385136622300000957821572220263899473902924030528089369922406348723311865420924284304047227667871776892753917529407225358166439068838307066407297368216602733125053499062417765881096721214510814758971943547168895068465658044353239110148772640517097368196537555181159879003799287697730228538201782568742547897376013213981348768432939694678396741342914397727128381014467089322815980912326682870805007840483959099692121747009432094030197770102884548074573480992807746325511961155358874874391431435188309545035499493320336763569671442031721674370502260067619372646802225175661849559319065384011317219864125554840946709167593067628027645954779686994208878681668763731083762354587122868137641469609101299719751820991598279436545385614872145310714061776064147428651489374607519239774506357334382951014354899007939300154038086925193077583259582410428090092405638501127177948377989542193944618827139883197120561920364762039897802416409717268795593439484220351764519198111152912627962145380815900003259534573190726883793318347100059572801741218883581811945645397666142886362765785495995877543120070156350050985431986899429273829168372733392506916170422734866690814225886740551076814484301267403422859452979892838353061634265705246958806459615710003399161251152030720870208574049139550466633352815803910249076817591637396675872807253951201767459005208445417120927878564465411382769270136231659287122520477436011798166218455644631206631958776242375159952255754562030421143396247270496596389797351650896534254552363162375744667486977092382604751982431821114827859547434998731464382610748817971933553357013676297762678627125794359670655271956658986032504623846500525206883458188788052783446409156226778473601257798248913875522250560189483871216153027811621657630494987599804945534713309519272261302904249237380961116151996102805194734997534729875619422352622061724653344641738715705379002833552256516532261418379558946306772233349046989631734371227047854544337234338596386996199058836502975543701928752009979408719963934492885245443576879677892464238244924483508662509248536796223359993366472602419735512681864441180089881670324876990208405169422488036085401572182024454900612162214898149732238401319923355865708207741400373752987189990558381382910224120425906756186178234677257527279747821604798240378551529164617075518319150185691850560794964981887185805795429881453394066452818405072196543756810636105394566675542777335348404433582946918898364899420926628929519612696941628211415414132916926275309214856518621591351709602605816295918766207162636278026508533764120585378223192507977013710271669809758839758155909344926219299114790589653363934023567701553826985121466408032104156766463540030426202252630805574510070558742561654677845046792902370226105517377186139882434662729250289263590815799612928957845534243021036102255670940750865498600958743587229883851935097852420744813377183308505896745669736324944766941169402139610006928192641364352239019834250262865580558731185806213305482626274537969586274675355097581083218326672358065120602038640047197522068490170488515229276784339656635908559262156977350285215580993033008098472168653109841114438231744561522535859394517283972334880609188962592426287175121237282397288844973357848264637382222418714773710860098093710672055595246277955429693823105626595775772571122006525266210956962189292145280255374945537347975355014619754021962931157597103951299880799089872408312974253433847358065440547391633948129859187255941946633268733125286670794466139106186268418351992357303105451577740855994210557690822911238607393176763915700087778282816434205855579375875203393641106889684023722368755652688195834902594992894948648277240788866594140578294663214132810924710863684700113599410060177888747250596944849617252712020888662850716127272474644125413239742899298391457258675263895493918491427419502307214431619541531034084540676385009862325513395892936569383775981714205616925691673375969648859549475875121105923877196164006243716051486287828029715431387741970129363229418962254526966283182817097089272864187205653598942017174810361225165978031617274874640875875549492325965988604956065717502252388218190261959062824510164269355107456908003923826897934197106218673870677945664369258700011077072793464258781992004073829481982188295683607615678012895969451980301454227884824378160386895484218918969133295777474770436482031603714437026295487564281648237950795862502056291427104882884394629045349600980566252136252003346221185830064803356715961572593537828073770398470579284456943782984445695001449869131720600917105809720567574568549750112908964681987052304146652919066510993031247920399238293973936836437588406846668911194638472483378602038301213556728305571869125721164397253965505966801118006707807304703112347394010513187028690688960406452523126426631885644232836300924892078172959757647683009680158998349614019086731737380414014469881059670386309524767981235717754768785996327501959420975911075896032255076562168940906607810126194161479610110936531608306646210690573989332930952346183590568844352365764664920630714025359826397140706258760909785218908965745539501790604044253767744912225212448976487146920400849905148892826694923520123575448539452752143895926666990721583784697891602061256513758911998761232859363033898548550340687510076250228766380089581573192228575044152354079048635350960407290729757339520298700132328301794740804985928617764734946326298809774015396708793568624140474214502927254280694411583803477268262345091179962053623412904676792371026844373374095189455973022562287536260537459958427085250902281264901866418648078160045233817665506244140061597741985994758242891353045028813879688850569029278523399727996292029831782325191085255671358394604226620202825810770624872802464538155924174334316725705727899959250244726505068477661140228583701912494242562423454048883786825440198563562984698020741478145538303096647610281136232093010735925706514125718981885830466057924634066116884219955098337217370474683412036439464796439721429386374307441595732120540992913697213214604293855724310418285129567363555493831058569522228554540687066978349431498364528586994469380275802380977100066283615833970506081352581337496321454578044947362472020917081268826485142667673152393064297076721999855793838099805127365680081969577184574081337856323357170900770994829462128282198415684445133944765056009441851445019616539114936869484447022975915362709600191157287147390461720100843981372840221517055099505014578263270665104563500848016522891985447624088299791878909862219917911973831702157754601882970576600932049390365053082050129055260428624842997310429270964470728018496505654435252715979828280960346084649895624459558167134216141967810515789132543762255666025413274299850042167122596884135524331177853038904394282657232666725780097680184614331652422932320123269193638879551766535519731445196319003625300958495120756774431381076552762969672063929812232394454029724364198038717830480942894121498548309945242189270277569859345126598584378470078106271635718717586197620742457792323521293465895988056959335063881701951104439376625894921884991766944600669837050146793397657039362219870931323253023615779612738551681734654129582453288878669457194019115383844088684292158939012578821400157281327524966866539243534900169212840329968128753126017689126131070621577092545428821202565137498640488049401687343586817264205531486309800606766141015133880217124453514615920310173229833741541097659840492094412911797251697516185459795366223473668936747480213033579571703195550062615610385769234654409209683248847454073363565044503620856091282877151211346573199453836205512373587296587499422242577794981337901551021600173817420563085241136480421457509138482141141210577223361488168443842200298218698974347813574475628300097473995231169560778436953688885802608983855441406021746476819315609257449652236828628201730925844941576873492427583328482082704365707529836680834986742229403226330868719340622853417066150220920899355387147618470948785642195159277820941890467883180366915579009717875986980240708660989455284963650724209797664362020842523182873387119209754097998800409883942218622936800586283328246360319693175794575954543667909211526797253696714956838643661510717816818699082151346032124955101358439101547953816070032650513220177798803995223473977570535236846926996864374424391320747089248553394278808346517243697416456298536963158783859433149684219247802172186287013147115696827413746104545336443746182275330382004546949848408949079368958120220713971309687150730435711929473787179705727642549731363568783243163172325539309641015862083160344709450952842038752211983004281656327280447496401157651872702913867852164385438469867825531363166182712313086350764157808522396187394739319003961841533790742136697858548606582620137845855155727270113852487109538003364483581002137255356961433356440021013137622061249898069729712070717601918250901846311610008772203289698586648975074482052207258151626475275485246660041482193488454492852039107038557561651379763381733821906228924672385149673852863658940160006016766606183052988983808666164767379101069450157556985087810245261948258299588685424792694476072275281465595660398626004540512447153354619872863224341965776328861146791962273593174699906367442579403086563692457316573331719499883564451318640628697108551517422382102596568957992204699799494971869144362833985020547858078008206614587371555733342058026572888818174445984994543270069645936393288016453565237423180017125178464207548826439978044239372162262149839790027942182097791131918301398767420298920122572562869410790467211336678503421489000357459557709551191827695692463043348021809268591529670764647848129683448895985251624847290392828285426148007048311271149193403597791620177669321306441599764296448195009081959027787846307978070839068311076769614824702116268870596103460614434027464288439059954684129582088919340944495155182041828763157464949579214519374301586285455854551406814874492082134855903355287756701012593059563382498704935693238981036460126818460500206477671310559014505128218181461167858658147037639079020982914204232542099999857766970177449986627586412895135372658894450105201905039281944179814480672886235292588479674161685396355368750620517868870518340526001855934615845713904637673437069217142802438356533830253150068642990229957683541374343378258894680544374968578506064263114164819096243025822364395386381421047784381760889514176492568258834665747000295712986356240152787011384457101608430810691978836433329810905820945646288642920402467241553770425815883516801481869949000516856526262910726621358321647145900689185964127921771584549664833628866038269490935003259778262483642029206722673014678283429841203205278133918483426544092774678869345487528080048279481282858538076896522137099680034355549536861963678025689729964542436721176773638270753464582845580990654329160822108422480270891706074261853392802041411860869832498182268877566049035619509310768534779916858581763568994537347220003294249303389603165103553531298669336625163592292079861943372593086201965418390325973514084230094511091341134306177228387846313377614869753604134219154323787722422423847689014407569593068973732344828495018254692686212543355349058283494438164269049407542919707895320315888439793089577252544121333639615532767412095870981129440283920101512336248736674056898608526445302188076871744152832928080862558076837373578040702467616554695964620528055775809795436270506203834735591997766273612390553379220984757990683778802222762874102207172479130468158406865481700113950476919000257760357443243432254465115982553908889410766545002897665741045437969860924010768127431881408257324917661495246052797977204184859681958731193211312533947506141764357320105198734022551147486584494068359115589973356246117061397840091739256911753822743161516166067492383254215922654338911220534075648709470212696637766235382836729240418293192457371724338569524916823221008673824456615966575470250135803346286636849275056768297843771422054697411738041264581498537441641234200515163274018048018933925720120039966769596722293816402387648758764249868187865518308204251395283747951854762471786354452394166226379618734689432451857779308463223262926117159374257882146767069516766761713237992120279180270915863743768309895086813210901154448129706167404674443182713694641843879710364756303469977856018001985156054006631593784638212198186876793221272128975972413187225817906521325944672425545449282050846551623652933188308554017792044353068416899201898964052187712937915243017506277454571624367491767048681554261822772349775331054599486056854066408694270546944260690172813233802427000805711852194594882175980244422396651104895989281981927755769641051751772689311116669493141917093842793192030286310722827219511981353499309424308441297578411205861922235189497928813082374993443840835866695093818621145931011695511629641426369636429769561243824354685401985300478661844877757362574663018834379199763802733212738438702560813447088945201335553866229543243406914277288615851472493321009770500590853990560420796596657014392657966856706023872105577028492715750490922199358749783177191172586734766204853536538870299202328255634464320255952310383929530390452059128927114071267896133019703545623390367799754230315592440838505394617359403485899050299396997908995090452634219132411102597394067170422710402869379674573073773003274088973513791893043341817270935889807257041382754682936581517263686479908803397729816959458279422538700555846685414331952114943354502391003223724368614060017048723211155442748034727495038580829811709410244881841274775494683259793489721526606924599770400634108835313918219948862223745696675779332517446087733442614090367141802740283065851661281568940307671613476930986166763605897846547787799214004205501117385228294896586738906906842107743764625204696519671144106720411570981877151559092501013004037814936931261094191463414477345800206245122545497872650888695165960689093872746950007570545787022788160238473685298395415105058547163640286700816821929784410977111531667004714112145151244238242342023924027374872561565079058281094774248280738071475400645801938805298078623786209040681824205986128616613435036561505484218946948857042607100702881364598539299549819749556820771949953045177212614740284007560249823459626195583235304614947626498688294557988747409261901569020000570366545280679139910296504527933554345852698152281561883356975293364332372274633959390587227394399029463751426037094744080610333529972944938590611509909611536838254985455177169563147309803807967785033361745401145234993649051815198290289625439109634794084469370132560217380758130233972939991897341439400217095970514571041052554785954406995747602159824855722659795604069621314257453045084334401143759543379136902232103134770656666506821216622784296026924536457372111107540956898721625285618731612604071374909920697425807130411514968609045816876129432237459157258781209886948762146759081432824133193957019678583775038598763169770241883542444369002561750697314053588664149855141288291694714357613577883216825193050975148614008905448262958664541575880011161317105816805140024065360476532350270207930620556011514811502944780022604695472522147651693567187284744267882509118166137709462909400306896119520696128666948111118593078698278290759326298462132406531341859858187699412548951774393419453067799771645973909080963781225083016095378107138822197633617125732330828526226448068019297609974065011398340349646827136885363387228844998494513282322582866051229110731907844100423804378026128826503331931996212012634944316815880408038551909593106000301328439115286462841423555374484981726132006946040720283473728709039869043482053580848414410400611811737667807893922456642727591864248710820737202460688592715379461256964695860781142645561075489206930393827975582886400999905526533599116276543914887212178728247621268691652266767013023258640877553617162874468169771453511292169780948126256567785473632096394070335994002760568777714921091634795714045819661216813473840815416971898495654868684158410767798939417268914959606839248889946590002536832580875209492280975185073304159948811594985704275186831307877907116456162833488933676820212691244169194990152603510236945763479346918145460665590042949763504187666896706933341948884023515974781388497056167046104420226530111915719827821562007366859099428152806997677627262938616572376371551094001300525348143014166558803165292576824356971893164646304589128645273538911756374220838191240256578214344830013390913592208537597666628676883771507704364250475959823026843290650930448546933246300239105092489836820257728115507676760906092758637554012297690629813474296711124290527807139027697119433371674520398019217261898563505734785211037490936600559361712514327812041928741313570897116046006601351085500352970163138661630786637475687656290465433514690760048559883632673384611364163139869801521692109783569100457734150078198825848126945402515881292516789155209233008630263569251033465569266671918348102734333494624838222635961869092116274878177049839466771921837929054362775906336750538393077905333181873395528640071984854346783337231700494170042760753705933743911250352030420074781178864006966781484728612260152749147503059105903787699628824369048250537368999744834976966022433616555082305465148839076252675792075313962240166903336095419882108252677323848226894852632654286702223786134702246978132516790536360210305408552593517094442412296312294174943922558531579176127292046891742215154042507493586673436500166504183317482176996033088623177630584293637648326686368818488778890544768750622748399022338230843047552034609484301508277530493758363340188420114758968409727045796277961157061692894542346451288918228077093818188406174812933880322442709720488640642400914003468384614032440130033407777804902291424895780016817608840160765418774227498147690990012960515578049377019140884217906690481843070633398087036449409133912947521732509697853199646813003411971692036943258606687958817680135233501548157025985097445222736411574348304584114790403406425991863418170104548655127223252880869079618001539918963494627223996824659308854855531101299854007450945043461037589863178357239923135079650172888293761138419643329897550013532333192256672750657128723353829017641843589282275736624808980657653229781790481743658827259624804292105706152125569867712334466960968786844382237519142623476120691557553561479959041987556160186714642323132384309745465302018018890045447485660266879643694216680193700540108245813660446078526177667918569647776032650774716640142221978196265322041049757654194046851740015756539341974683018975711595164693005097937521308348412320625845466732466356094032742494243459840433508004030770031776435019629757484890981389007962419397850381789719721563170554058554952997529360709452739803771907910170154712980435668434795899763788453234385940098442982497209897421453713048426804614663550395029258925342055833482151727161945130144154004280601403209936734516568157870687137740476662575069046592282303515230062637584355095387505787813258719504547506014450439146701690046181668489279007418066838072695949154022451317804308145567326645453059886880321386009659756659659736554630215907452371824405022207792422645287062899242910304386002233511073905947087435952945843939636871339437831992591571599059791531413941244364765853270031068684447409490515064334031532612567571169043473048576085734645218881761771618246221852671024991127723252090854196716725094340515541701690158029942341067335075083703994007371630954814955478367173286333047362648906713556892979817050755581045813335246364837809044525337072614035611662979818226867572391476256821834202988977117647288740194554623543377460710274253204219456130521825075192076372773834911672304698349527362723593854321222316783368618859493881755351050582550523845819864351166580827654363592616973547346344803070327543620994383082243573386690567144224656381426541377289783054454173651670068244551149574680682208006466227242679351021616241589278177345325688995588480949352898476615363491636908602012314737010543595409756485934436372769754228000174129857428695069528630357714584079939171244477108924842722429552477204066555057333296099372438057191906268192035661625593389942661652957575035656604638932610372447732661934638856906520257444833153669491754789294822567307453326622381016090550422519340549590014893763778089615204176403550733033831862039488564441631831740703440986146853117259770589863302743622499757394541043917920889325909100554392956809646156908025337451048779529035399324550875701441476874679485861336240897973010055397802752926784986317538080470286884185254165969299284077814082189648512953003485826626128798570752945495837436668460141629379239020203764736695565423988440621310499510616522407535679344950895831844106792496110341095305806824493209372037330789968527135191243849377099497666401445306144619071780608254818478295847811411522942394075534040811294719019601799025093659178661542249018036830159257071127957347897876762738701618231572072189366234222438222556527436782144354182786822636200489948733637732454065837623981617710436294794586624362462664077961771019383395596486871871345681968522115813098545505924156970301315193369718706593723667777614501067558696601037064889085763518650554579081574058175703981822117790644388621603572259784579158381954090908781740888058367900950165913975626359366708438395063001281308346302891437867244568581197075684260655749583080770713858989719667290383892271266670661304201564533896647054495826419689677069296496292709358875215128516454956477969821850711728131403838831331541193436497882058692099435328059011817268613549279113138199266973533117412780694917589841264185505035854610716732682968105344455200962045284856943052682419139727412027913386790999361432684426948550610687213197122168902690689245428406553217433429062094178138629809595563758267090307947044278152923571461470740961816684159907697760837910729111139396491352447719497638970649059518517000849927872449879693226553169245385623342911709992879911460081503747280796073624438130849996383003230811210296194446461942968495030024008055842625177646441741345251740353667385475225476008613788996506482576085315970381845965336736316748066449853274570249015592979661446507852069585952680140240676926128052114124535865865898144116001058740020205532938608815388045320376147360677398717873889409670409494503238272865869309061266991723753841828536989687152916328808670259470459156976533922692857944074961622176294686503661763165979706120616877213103424716508118842550009874033601856030389256124847511992224659046693560200380730169498352558943266852352860430112415226487793804613903708975799364311067455549454714414741635324899207815352623960443618969630923339429836588681670497915313536925278409186716662313593088110266431264972420687715654719927218076557463442793482535583749887110852917649229272054257861938236234817168874863078084099063452584688079478085657568787499343822190631464045374243219413646331971515590458044039572807257009040271300870470176018541453823883422225567779671042490781475893934490510215244414545999253239112696918802288626675029473400715283569728578671291251680953713543670753274177529572035014076709572729497602025450762118137988453228265817984678815023583986608426311986757817100208556563412587255197336375650070702358188314821252551345328565562382365718503620939507972079518498248438419242058544269723814170779448294958626292219219028986995479950556524340522950866914438508791419901500203369796387234140810767022544200668963175840937741592132522437372909078248997668806431232087588392983719221569775503402784841839415328513418969737296514313857089755383252703687974450612949666607521609747952031725027542943165465733150941110468153280899572656283455745738346345305632331259419077828231916800067862313081056460886260693042814933001501723126249290872725487888549573214068409045978592145016760427905534936138924924035905063630234569376318668780398579423690991898011554930417374045999241809173387546146587327075699859150689162648419093922299912523586854299420641077098634804953108477313253280598771294073999915409390560476271957411319564344153543732641232311458375855794257924032420522212366945271146432815883645373427660994153492293264756498960537717282613932532380681260089082847881589944150243304245328720368914610799174561018094633203712305310569975713007792649373580007393047058653800259404636222546421513030455551030779229820931122100712055991715813591953850622455085706230513620710491151105684893504459373592126735542090190416509790826079548167622556972155924402331895477083684378669960828681294626322125778254191752645678523651279204430274283282146282249413263275693727495071580215362637995329785725336474827195582950846638138023317622526892546726790786287743944075260783071565146067544722394835982708295721690272451207923247733568998702575188434805772669595412296541660940040661414752995966922770570262190602878011305028399320114807079081956157194580404757634930124301513952163589705159977933039879219955129802138550292709200531811491875226153430643068062075732550492777777720179949198767318699384143022360671154421610634120332715436564546346797951361581926327629746502164776539876874903730994893908354638840581361504248887666615872643410938874828642000251140717339044004915829552315824806075773273953805733764712127152422040886871664492826842942178212325207516819787801257404810808966829369549838467125631661562340149763808263070529069309398503208348893594252497125806005343063803644363983230931479761350173646401992254963850461518030817515983076668606193543174945586187911538790663725172444679527791221191058175228825609436489361426903992101379055592472825188985213567880392541460388952908440054115177765977926314607976865952002353811518349243117169533854110928641968233925656098709570166952060557887793388457190344995164937346620511043262945198192138214925116195656667927712301253428467460141120379366062014139010212697897704317972043311909926379509313555219857153223169785178863961616801938233246632916975004922596259412083899486366898911672741229786884478062550240718012066126368019902671955061282049549152824598288440049041941987798446240331204119121180238941683609732069990848906243640999823855148184452820551452681577693853562139502750646601455827992699296283665048677058340202939563778396475033994138487014922172039382829675448848556787139371783665581504975781451270687043648664789538303888177276930370753939897656802807156686263657328192160227557975796410969083055137750617870004136080135213851096364380688738408547142122203792193575849495899649091257549582373713237031922869547227150493007124581688569213449281030731090114383107628631579254174682864396470794010711769828910778655073698642319321125364475910121307891445353411219126820201941975627845824593717253674568951671812287305175529869749560239276826315222845876678084940265246859195145180402936411648713926459932913345262727795404360888377426180944365152609271271577612005903597014008455146884972864817308441195754744562723206121211169497418861087076263408760154916853449941223536876897625785479266386667437770664773801069131397689166794840995382221800691821205483998692712709649736916289955453990936169361518580577442018408893359386726614715278978378831843260328430603386974643381053691250453699464717885904976229316762170568936855692328192147689764838481317991850833312380774120550898791209892232149422439084310148478631669576218168171944770649131459802125963619743552972113456486023020078280291567996947078676755151972209649599215566719573578163575800066214789134313352940064495211907003811041551242483160051652273710358819445837581169780212871339530616750765968842193164674472162960565859952274850278774849981411985005926256563186230271709233215222731474012450612914379708284693239990727320783322219677621107475059446259601100397031632966980746566117898864121584985049199422254034691041706882398151893020006687095342329274452959099865045553516741023700689316414577483536816538070510584844716200955011462429131157737837585147985175104273662566053858492792256976690472153918351590317280521217698953111508190157993430120740160239408909437963599207225472628982549659575000811187864162262743659016769442797276371944605219072366271588871382609212833023479458365808385326012229698094508437498576365259014357095809945286044992337760713239835959149371072068299409715569932001220714906419893951889964469887259122153724672408775115529514252071605769325494252167437143103142578062025562744464696107450004558728422598760123834986869105323894506652104112265844230984637288871509537998487521412935459101849369975067682654207913755267480701201181135595504948971216450121912959907381340681104802703069717821421222602165155467610251323193344523326504939755530229744352427017635156433233762821193335297117992924148418311429937764461597245900331674467689240720134677976938238271056479642972279299290122262743622566585349922400465291293277567425938895992148436350359214337418471662500480693807994414419475316821902226239565080510767750053728649386296254319493573903033514429740644061275467931272300351197074665536192714563560650181735205384891851697529266185672491364126691392861681450857604261210597056420429090482579777330671885371763323215212516716484614173255001731615519782776010547925212606678969134283618841231643631966626468820791315821004665215955695122625979495321899596973116368608255235112188149086861930589468792143597221915981010335488119057654513906327436514828411028203976394426246187479746504000680345003385235623387382741059198957171144398499670353448685127030280465011078039418857566065110864922426911135942137369451146655809786570056951888451957908447985308665333088787371475941352705669577539265578022598857675215317688303992337701807741448930138325411123744564391438922214381822481542723557598889442683930799270348314541737113595836512039893626691868948664636988569301178087711934819117268335472124503167270728117066491480003864128497141595508111182331322791342161790736610976589234880135470891610709291454089471341578394576901063669071514562236077329651815238579949733677568922752296894189259346790624415517573937157130284311133211136319953673374529705253261244577532585934170706437110605705002328473909238800140332840876222440258249216498988203224499055619023279638237994471483489077727717266783876060781717953077762071766009845080223669616583065257641059702586954819053567309635159625494859668477702047638054928483308631080859750622310170408193058995866780285907761108444732371882735227014305726012371458736423554223199786211661548671189419795008066891869710172806309833203742911110554327375203479123684022947781465496106192003577066531498763219313168579866877975475167277906060013473724644177930665698857254541012073040530621924202653429537987774818556560281052629760416702680910446875318350040074300993682449268565163122481631109064122375620380015122488966537568135739002452663421774627384069530791667037696186253423324248245467664468420485069334092999605871241147451265670173424386343680045994663307585072686003669162924323172419955785788095235804800467250758271743699098676455552507342519617935798369120102008114918414792438249797018074039000959336822231519386561410024076522128438638767315099753341588251337508037975832785500688734963842032414576479406718010193702799070362781368293118508465873754530722809461673704416942339411638429082732363694989818127545033697884967103049636223314773978339895994843324868404016863059885852516474996649307833253721669310044302019860556862371796326750812299747211164697760301764647976550703766233566938916251112537449232721076289447549934295678243580821176320326394973060174582293629624831151457482793918986431964576233731056556699706293321234426819327087950808528463796630937777475269512910146710116588236760217621270418059502169751545134788420720811762405501649060448097274676156291886481587591072712236846212210387197232847735005290190758555784720645568406761298403183204919813190079571619337132434669920061988704018349967698563771650989812830830493919218784476603789425023468884632451972900639211741894528784003330393793628875314539301516359224393612027811360423342632323029950715593020245596223784317114072684106099838147770020707735773421141809276975483285145169995785512753523357657718711246506740180728547463599783307829160588085909878549698249578403287767998474963433318111407532132863684843327443574315961279618805480786039186753652290129057161378161618947224066428347832108324665724091850977272420518391349262829687402280883425617817092969642946715066567425220359142083634531162209298900040852833457283253034813340293012723464063781882784583137077743436309317002915025218772858807694858802343819740704387768890846480374125348673546478144363508136391770049607102825421461695892699019855362204634053840562956044782131157416213208480873918437693090139314601257549101070317005452060176206852238207320115369731973706827471613149579016206622888398244609660394234307300783096849554653340887355841467113221154218075461525200823686485156439265403953370797740153456543801344628500934167813494683875858517267866264305180858617226997134565261547178388321826891031981781415851529484001992386024979685669429103002126226375089273057294572274842024769581857358270776520188985059549793185520166699196683737205372541212405728727759952745986578018368959833902819787843593525880526469013500758082982409248663193902564594060381804738524190227665979077319807023784111270963920834670275115370033118856786871053012971716060151899993272678593068563551579594683329416777819772309270465224808902576193961868361714034777743869312947292077518279081271618514989778497904487601707408468864344526273565522058708968641524719839529714221061461229535484362695150335423254958173259163130442312055722317345220241270694801058907253678831535882193526861965256283732599551568977566582577723488823452754205115828781036776249513875048558036142255531129709541999536801795212418138484751214786052197100676197130222391983678805952599927623113516253665937709949701801893252825038029565440565522765111157030698874454072067750066657053159293146590784738442718357597149441214439074415530224231835439204734757827544600216831645338780519077761912066152288050651949437940299649816345268297711517010026089942386780687428277773270992571600953578184333639679045135117164127314714397815387672004059057316866547121504345366562837219110139931982185331905808351661274701994079101195107199411987672835818129684083518013011593035257763633936939066300107008186670518299264477939974847599133074164381978620096131921120821715039517068896184896454426116944600539288534315726296908111053607376530789550006313454043393112324223679462630496988768053298076487609709113755514831557204713534707514977109852579310761518327001562961345140990387284586419535932579026202082218625709985615877895132826240670448223577684410581146285596231737063168383407399547528987633337629437388179703259591079177025696467960756842808096442359665293582536887534847413707408070175599390818348029138820582278253855964185255224278629089696793719472539207397105263291042264917936311422300431153085175340660840538841049258627000744695218688697817683595974454257551969268176255011286534623246900390740524262360637530138415330668764016118385877438501989917578583106279164888130060721836216473239703398821284996418267588982925187699204594947611519372762177066744841273199477546388648685313238759045822348152830036926529467115617441044332227159154188148038762259041535781696438686704770532922146907579305564122278822388072763810777231153465156265845653207892212541378299883395497760478720761801132622595339040558980585394705816215194688273469372762024430151236540592691432364243959274768911395614505664207436697936428632262989557729632587183808091736027344157590595516450373786460833999750791907439384616751842806401657757529411601668085296805456961172890991833344931868384117958669082937964743267054917169680878366103051817335269599018989013468361084389907411893321063000064767513726316127759992574293900964161344048773491434838988911728692039577936535543433944917371845991787803881929427767617766707605001197794766933554353990109146031781871444925779020432868141986685983018952929458945325263909454894343524338916731104275055112522969548715172805723903472868547293317978177693629534800254298708811076715620658136668275107932506537575669747660339119543987411880823475703673824313139578399864731998561660819341494087873909423627652405517525972322682074499706241389086658058606104528955925512141708164761455031527691821424293002953069465837881937439735637893090406727109432963923923466177231957672328908247463814189205408882879148672682696605241491296624812528501984293866284198169955603269260631581452625707959214715356051225325971410595828684803495076608765108144373664653245176512153420494544646926135790440143302000214869317232559720772164724992449176959767375393752604937853270794027488052669749595262687741294389182333777445577571187077032527194821896385540266596277597519667525551655020670867806894538696200691793008142006668655307087268134519185585331812370765590615175897927953786611113898652313175337139180680138051571216766683866467421851342781928325607092130830979703508803302131954197686158292168011522643693790947847500290346004309342888641106830452130862135064454428134542134597398401508171742226859010181626122558759877444872251799803218356530287874589442292785140701367021990334113245390167692531598124995879013601574483171517031354187750065352968550463144706020183905710492231589335869899205289123990425620437400300596514249605672382418284501173722919759495132527286889500917009642412195027669881606685673556125066180045441948690103613421557338404036463066489538869814346156358229547244500344561287583410446990541060989051420759322071651542065028263524048649004091877702335854114494831490846822904505429121290407585185010416575858997377758791395687490314257176927935919893492023194378627846584425253660526060404948746626217169153485763625304101631996386524456809298360056623188660687694258790746708358912857228190598141767208369149503496366550870444171607345998675111647299823848071648827202804747097206238822477050994305895377335790215120007302775575655607494851150008560766615218364081219943000756214103360638235944374948715460672125931685559999631808348581154612587802812060270961624243753355384660211683732448272260635496681291882663786736157152710135422127570938068869834858056647763190336797784444071624920929907522446312022416772113767969453900382368764930312572268601676593639678086490039241130239759570050249608885439455526960988968357907332732667277446002858569403514480267379724050164501630132831105386474345227399295396260618088064840171945931002369883928117259426347337151354730219601582172951855833733267728348660314495268705071164934752217600069587538747711236212739889845475642789791882248919622508523906173296562149671908601073876059064978388422957266989813546414846841166925629648554666773536614843111836694731552132055972113553488812083432969561378141885247560133898685303565437059234336679030401655257650243040178848571767457959671374286650107193980126814371920966557267820082678984464486116659688867703412730554998723271187033742706503373876749268851843302706057227033844809423047510315632748926650577460730445143977080080543412619738438456612065871353946065712268804696449201118023387621346363271930571337316213718536388433561483482415074978402442740188736201276042291585895422257441883499006734594257352183898299685640241549193155941652472630866735356182993998685056575775733716980455452187380104047860759882692067145704728249103709364491382996896959910097133203935051433501167944606976999375756328118412886614773570192370539714668004468351074391373009960295135788484115309051511346031688873284692033963774986580695621914435102468480456771478140681377794770849306668203316755014498980878592860351899270049927623195453313445183949086194426027514589090077577661241216090355675566818235716589792647583657353469843384270930023625970803878252231269913707918827379363971313235743889619578600523710656541549727188144477955512156059659927898940272159147747885352433663510703111445849202718206573518779593003180648925923946783847890454693536381243305220036604859146055488714219513213580861181407473215728750372296825297533500991321901983551617282412030597624247990499148186970622967319911039338995455340382291419349184334203835746958055445722906164081199303731195475076707464534478477152140524225709282719187884182478527659105512332288456773565619337610137749289997360383827122626277305370811876318491879147890986464075171891237626473011118844749771202339715732910407692075117385769470423209836188576925725699916402257013958698196741585194229369079594404334093348684075904115310341983533832247214752281898003328552583503626713960847894699496797216518905209739519897366435991518851817985799411133192819545354634455666887141139295830553864942405784880198671537967916017836630419975096933274354473081487920641847997000361276271703950420147801606863471674727843009535513740430709116673049476080486080258933312633377054868148027072577255147491874261256373956240183048275278481076565736661747997376856921840293903769169906774864512230492445868344961845836967697031699430231583382350082508088171771848500838636601491303129345091229364560048901311243742251441129117981746662352262753828255970339990417049513803273162926074306499897697896988091461441366096016363530532709807013466651010929379416701793532534309761695287579195417407159528826850325279859930287370405630327442634044328887350458819930891074144021510262355694780125331812170549667618573979981498236356045144386432904646975699363986792420191870690273614726593375914441395253636648929083577320371455215768048904465629141794944996680128139541947326997981421038724880862903509779017386113974881403873329959985828905042183265233924596058553241348595798824650437509563265536803496963382348300465160047899881288161811663411197755265400107128004758303495335447241718365690997999137059196300371835847831473555034135583259591809279470219512988739242954138551591143988665756875793014799078657942683434790067369599616583923645529187392065388634510498405460847020632370542250387157235294203332481913299954953107274834261854521673206123812960926458059155857221755431964624227067513941706890661883400018508979400808074724354669534507667993190215284133284229268667006289658025097317370336211268157994360606488072918753230004255309322031752042636440461114313709642501502211873383771572331314182926421006083265410607793573576818408513805731428234464165619187373154164089569900896991134468226485221210659523834168174693901216852573472864756482754685261497059083991723590802952441624002942646618994673187086686698402942428636815465355631538591684876080026657326971186458750149385800238511059451383925907943549684520485008150592138739782528103087032096042766751309166056789229844414650670703088693582407482989680043009105116886253938819880449764308772194366017193226264523599394929292517962577595654494385435680195726677154939656114382487372700491282947347953123018536048015944890256881809534426342308013257024380272971610034856730974858009817397861971823465573578002842060808145531337358858995763181463266398657857473370425226054886928062776271899500452250373590431810940986846354617949947970719033402349355672422360024556041664026406581449665162022182551337624573871726980110181129158140798165752111121456770595053661242368442742139818879117496462744846963181312711299782229750067913520767563276100440895358900662797260431653449089416423946412366562840949315214693342011217556219842777986638337267128550650838614247512995105791716287561302512384122193198823779755561309594919300987633040340396869649867296166669380738463591996147378496035128434122620773578134706295920028287972175499026990954907120350396639329170897888310620326382350025672586067139210112392857384208875337627687505958811447318728669852827877923632221401769017096310110432326426272624494605095610349282274746233484196728675287819263968351207486666604810771504591220275903171069529289849348447239008578427806574384706564971913639005075983353725525273896305533365755128410257394047580700171567593433456870414243087654446410679126846271022429184249324120957425863570635264096324817870228032955427630007403781164215505111493547541181124252666125310898235194427160110861771967200102145658001553231615232656305698604551560959274797077713103458805505375371823566254884517924595054472061218206657777309076100486984302798692196492288008182721574223343717050692610653040179393421166684726802206242998806265494891561447146377070499073683962591701311628917767733385331097732483570529041315015219424770861336910293770652016391883998448365379798169764812538799228352296144509551958019375761065999832751395185993300288933830109753442905591799400875451921574955373772436982752341346412233941107990187033827154848933339793823668308516290327859001808925066325724677132639092486933703403687826717251758866823154266896341834616218653468766943671683742457362894955973908334165684964637044496786617130276466747113859754907418087695407201674444823375294860198669299103342480754765088446207185144692947678901803479030306220165793849483480957130911694722103109991270871378846002676845893825681046486939454501935784944762492891387230178144412541517895663264614530237107047558035307786332457524087977907490147525812811167070569859798417269059325419389561210482330316827618376829557825502223615598092296860828097500155644181631261290758025208736553334082545272223247699769232602047243873381634735332443065917865787560012902762163432719038699504735874370034625124203284561031425656594275166163166594561736662702125705063554027302548378142747068653776872237557118619444821874868955081295549446517056139825768317965643414368811384127652459523929219889033298659617680721688270977671390049172897826411124597633875819704545513107115153758994415136375830418060716538178916080365332710811653787114647403441736480923638341780770441940327682046769196418281767020755921943672437056800619797571060171617994594426826610172071785430564229560125274566509955609673105531642081781844237125433478180058489030691454296870135365029157313954886835742675696553458615147441280813159594014199831139023210185579831355281343113825777098137463699676719790752602708093835606701496182403538809279361135171338664032752942856309562576065384751730051134585023956587039990731737477042510422299213099793466688736807225948887609496835555587772339345676461860330984989183307457624997455776139720497864777931900427229451913886513634938237800800397497290030031545884314459870857253516951766916953962757495226885997822061440378370690494148033666356851718038796106639164532075368740925225982882900717421290012287610317731446773767783319556391448237413098989118411993736958991452401481225336007708354617506230393298063419784731915578726699086510259517046494447343793116309601437022033248102616345205285152088578132086168438317226750169394045346576704011103293388712537998110811174328174884707535276075775671354616268525033139024536869144239302503164943709222252804830714331086549529376520339166213252207699998551083656949051853130515584237250412484466960436393983488243640827930866623674061676924011458102601413533491990077578129409306336605225843059819738904308643535717624356388710780662096058586386213738121993831497785513851131200052240720138209182665523171289765504789400728071683051008741659687510639607508412083123479877670069011129375402483333018644842221761869678919153373873074881395626661902745435544612317432961259438245530765905086645663422146391022954096344973180504678055585102152920708844444634082634152577310190960921681009518085239421908757380909206641306003877454187704872426489951292109568935572934634608123740068606411674966897775645572824829202762984769813109131292066568141837359884000089826716127970342694096832529492246394720237359460463261541964511411526635569796226500997985242861734862505139560852803699334192476099481352771894842912927923700520372539311543422659433940894888751851278121132002821801610410909873884793637991660176749266106098849184059627148233123849058229586744188580944040982373730440048133177001875819408492809277950377264540973829172402245212238724573237997733434801769614438495016898873070414948476546184941935366952738160736618010982573200285921564928529267104989097541063628936477288845780286356899003530357455120799760663839350458545898272763201579763099105950985417989285448277826644327813884961863286205440804159238762838076730220114152411652357076016176971760810487403576800949857088773198223851006779686233333807667857418946872232283870831975200263948021576509327897515728175064579058768534626763669029294467447094547872600007614986352400873875384280317426072196553460974381166371621188819383611007664635746536881318748960600479339817385331953298879396266885829321514654532501887055636212254252425807649349232909397360877521536675663101797387096225251950544670835440441926844265620854115805579636747842480842244738338915546236243570311905239033748255446618092694769031698357872737810525318647878445614672173095986318816893169171648553419574245438955112156672424444277428043941545720514962211901283723455824061998839004858726597177686866898524472290704771805482782563347588289791699385331224845651874332800199063405471028822536599826860442229496322007019361863503344867691688573714136080928174734270269588168052150905045266307745145058567611121486241697980724338286676172835190919014703454107661003586664038499340223681786358325396048473282355432820127862720227797997043206496674008814406215617912705107070555054084190040585766529263287563956208457295974139625667082473713620616396544427449770533093460254925344448697928378570980592912165371894880729016698474424950175217758004546318517129062094678184693712410194543107666869598249059761606779416004117187067211263173197871067784808431538173263211692986139179896488527073833367730150742757658056337486018355539344690556338966236053480858803317152072323167342711852326306428677742595882127377821233650994188848801659873007857632649454423662464046950211229139004547460488601516842199869536315516954920120319801020847325738851854402231170605369221502340395683497138673244402852581243446117247340735793802649045461696797031301859029807131781073062239859099315352860129035306109323882097287158895827546893463843227157052363213695483347556793985801952809329412912875794062250789258075032205923032567309352439787455905051152610212071933421469680606069968434644541963363723014261060847146717104377068721704216758678630233912418940180211356438311970421245046355268429177352784772765419705472948086756193138144856837108502493841062129966268162569479942887694841773564456294671377603547916461382401222783504518568249856487256301104374302182503414269268480359320951939085570956029222243654088687469348175349374374359384313689586760134667565065779920970831388504756588537757347053171720170501670685928602531308449944065201029544718701577926310519823728967964209029709587521020580338075146016068083470667538713727725537414170653154775298709302994851018331400575529134523032239947572547668397907725852163007154781494269550386099573571548606463144808455425243776399382245717580769248083437699602660395784544813772413000132673079661162994911423864868812033482853261879294927313036267430423091291364321329945013620270683429506915256594564657100089851797765838236380615724973326398310438919740956782004141406446944506738185292814631945907233350370268098735848532896099784031751206675035804189253759427782980915854777834106019826344014554589231440519378734417462416492603836176155948947752465556715214368599356069857994633014931290545371570732170808012453417527374935895151214552355090392569677410315796977422572452552987410598298949934181233606460018617969822702076675695127025344885045176663133446687517031889962858736496438589082062710795917282991545639682554027064338274347251838415609122437009598365278594880705006374684815935132038063889358580406072799296399284463667727596169054952107597011359566995372158134802226864867037418274424482733500336486412562789055707762283967285361021843184941664475468319175397834240077537367363882309818863010258918614384037832223086368289473359573716496081410247279829046846140819415603271968642016448952716708291305924380228878200307262171270126848232001143990794390024067080050675620379239776807627548518894680177347879422639184386999648314628491040289562977816225188745380348216578978590852642087678810198727803613987012708845051533781396873163505155846668765975878844821770420332909390172108422690058560429670692890066891418045986749981325497373148490137120470096688584436249610541085426243503258271788109578659262522137706502916754864968893145636661188483982043168392250745856759411929972149100422767865127381070531590847748857871293412756131714064634649574440892426384605641652745872631451508592014638533670380210331896293870744988008511465092142623663011677749045809771089815466440182695843184934894086554890445383486910128804182334541628156943230681285502542347519544675631250757045691290488714154253451750683680746854589101658020696731355164096281991905942548213806632943419083039077350953351835445302895150083400859475110285153736311989041123383541582989863715392444133422460625678871729321178663433283513760680397480004779933650583251341693937914470007818692065657547329093969279612134028173312633941212209355154933613868486946363707440245519901556298539373922485878322944242109859587505139442182385232923354724683436502141720601287364879628178139461557725081116415589387979182712764559905613669347740204009224738815062941530492248321041436396603621429976032560133660445194968680820582205674828276452771816610606985626574141890339053858999061083240331408489161486918982653239582108118432401014966948105101794703881448520115079587586039709911567584153039700651823724459766445875150197951876023144844867728037289213825238085334403028664354530741109444337259649104663695756764821209411938823617881119768652327630551470250097929302922819127630106904722066273351313441916269686423139146183089314688205485526446053624431695369208101111993170653276587579716628408976362552944827254950313352167136930467695179392753325802804839406917142616870400414631559519855446419645581384233720795802165923182641415933442214777164087230061043131804754185015606651645113428912871212104963309783809843130299863148623433132759692331986442613032309578136947968224969827898188783863336678498824825696653397125191981095739389625153032733618188836698598244899594925310705002191410060515859751766393775084303346673375492240027057701734658888772611409121210307232406062868173893288475959166303854116092132643922581787198231554641788775716259353086812047262662578032455326923870535677194774310078039432760820269096413961214040943712444130274460720963733941125112725829317187195044942155471731118178395440480901668759259041399379342787377511979818820648837507677299620000932580024226336644171288535251303770206982675515270997138280260809471039873087733761737536219063212721411844905538424604689454608858096134098712582378611701706790473050932909001451305167422135225889424263431026346233559280702898351821020140440295340908080300628927834002879963147218224610017073455725814838318863769847565563294662749426426929199377680761839065197715597672659054860468660799700053487543754674796506564055393589842138596178816951559100002140859188407175778536845410669479381082060332262432350032401931821577156308278518427503532395401007939345296622501278340087565983717705997705260271680107482480724127480627840339025279000101192078574141634466120674865545334008945036024216970472374780204376998959363362720888627016181102299730932021897724046520213248031951015643420390914979534765139997318979415455672320615778407620594413866070615975410599356392559633988463382171642293341625311904774550400376833172523427197143058006492624258914122219850401597934714692474028166319461943236905526314987587591640708599539923376611767658735289880307147193431597655108650370670336233962669544575523237310653815236875330853359288819605608626029833192851534763198422573224981476023932395832550359489205273398954288969479158079297522542266605494821355995094436143733289814961264037686594904005297403482143674851521186795737422746246111301006635578959141869057007590680018470394770720446748608180347084504930143563110519536200763000701094170468441475666693525684444772294026625814709834728290451603359231469815427522381716757374451477521457633100860675151390522029895265658701882153896798625447902835716860373933897659696809121590293336191548440750083349448912488996112258872188575775606893691032511654712754794311265045609407910066955613955165504277945879444548878935047521563958097957691210194445607301049289079739924060954756818071112764064581421486824776479713697381572418738720582654974740974973944777321021655982105119437022677887246913336719066324878518619527259829443953638999692395680250883945512182962446055842413811730619893590108510049282715270365192294186848704715248278584139283185514953269288522897527932355362368385343694998671968922303167476666845883931394810340975361419554540925006939293881249745349145802584073850558047508199418312030576483523302207860819294625618950261645779288205697290211734052189757229354483089724710200137517853637349152087428569835671306499405193335297481041424611003882649965011159628397293770907374441715719315825190956173340691187654153227511967061637362110172487739856126832462068798651091425727846259367801556425353551594092360219522625170115053860808310862589507153994069355592199601835416294271117582211849681173011027838393742514436167162499121790456707733555962815186677760275665335689793364813663893152187546398945492290815278874004663694104801209564226853759833923237306332729967844486565251831703732009435446671764363266101940073608671326515136309096156500723467101510060408816952702719711001352268271256973862631477081849222699363489788919766069746543503018219988474968381173807740985270868386227186194247388527417224244099424368654515301268321831101066755567651898239155386263700528766521404624010887013180807453609481438134242844344821288605390442519837945186749568119017547305277801609006881578590518043509191201028461906765717845599895881233882169871122984183807206370335469280666652064683791964592735189405566965827612465836612345964232756302185199676392263430432525060649607868540504623032292591489121213165374055331372111222621989840833952151399885103211781935961057796890682069371404183035536642819836356446305049615750631249652817705875449528260065407221226375304900249022122103465249084569500273047805468269298266698488231262905549451874729621470714501206470980389296515962395687156728282629719957591177764585359626435551614631333666038716048984090853464168461663838034450301158077102292423182905660634034349849130495015829277047088674000551569886256707891461863297761698277693742677885768420094464064838502088183255853082654835353847443752153038186109587843668471581678225523070030206479933136411133922346029246470796264372921095333857337572643902153501527591009211929918210547300817574988448411387989902203967827273287049272049567471956679436084104096972563721680131375432404214227470819538782609258015044946913565622947430740267299071933301583513100258977105263120403154433942732738565419105543871228177650494235771393017217155945534225064332262680987688448977946385133327048188726941493846138819266272996793723279857370506622934827920381363155169822082931496623653817574499054980418505074944927513634350470176720546275259320745653036906569116635727843866319513295948611821594958448735004240125127181834958945502973044949393606917379405744406641162095943022581427336262122918223484543775420734918204931167568748703801346586132486648023128739113104633083730003856653894824519200927638139762280296671912620377245927438641434015362235163015258383532632561069443262169960042707094907601241096331422644909681066953707391045115541799786374200207155008856476082170547205067840407328709719644989408788788992312587075314405962189069506941464970229766355222839384372170590500962563503173115923468221866265675343411168666902026063812785249809079004133147885200317742383709743702677269307235786110189681747986046066466859119898639000995026026898889503279649200679833638286956684155994193106145969722933400613447096714857784729214317647964848905152798631632659583302414328042754269167691552209241912871075088881751310731860037088270710636195453221215524625361804306941907217186604391544016383710370462741658696621261384703322419684198875436637961731955688144311498422392302905726052609418630348841296782460706148138690622134656022948514297243662894025035281155689162198136576285102245079061123019513733813170296814368874668055567448372257166784012720098551883179545158327125121803259361420933914421968256733933950320065370067667171536106071768195945269316498906892321473378118482044047420742359480955994465899504800135183947332985502602584991839520732851222701020020382054337763645158875638034162169061666904097477871119391674821848215423305431358976178615664004924000822606962734431486962820090785265437290684868655214954947666572948792796957755656275096759703396449170644175069360458562925342990991286034464919830547900781883643890811593217281479354624951100124485478828736692236095667493590591954176944518510780849219430259202172772761674859816159531584514819841090440682280699061069898577523422492499758996620127899930800272140604955138624021525277274932214917485567572234032018868235897112814721244920167146855305524851141299321626476253261706316101811522843080098917011501380628000805926489847107852539935920105132078231184387116714442774106476841419758819667963640629256108057245786202997064880813595468973970457738694467344509400822737105038479661623864743488044979071370879912547965545353766589666284026649198919386736429867356279891052145102323325204631779329166757301413827347676098785643027325765998120911462738042099934053517086325197512428566843448623076000286099284489197133290720067148381855619885003988770253253484038821339818239196892249004616633021603869807252029817330083884836580833090227593983660201010763504764961256360343600938322781354830823708377654235011110514766425963104433261633033073840781393876136500141014247640491904304454241987815263054955898224402145431800325917922836759769184254123445794872303587629728082761002028654449832587569627214310924906533597821247230480224801853059768214908346109249884604398943372806736150500678282632668557310746158016059358441672290441029466018450677172707476777067808910137013019575947290510891013437371286140359456063288355219949264928133390202812782553448052740158960506987186280061038955408355346468650571130152736080638266270474539238004079480704168637683938193703986948618663020438119769742224599400867196054862760119334100918257751232187606430205374848828710881968937556946496429952202248349931580771459727464276187597894040130007873350094240607467563369632273373655619574959804900694362708987357753236459596055968499201640991258576545210069407271410234275469702602532037081953057152378773748290550990152530058059379263410150952811130633165828701339068095460303291043732949077605016982815340615108314708128114117065108104284734114902286639201870191915432688846162935129552167581948050355755333411006605668693198901885409867935744750275165838038666085279918172998063610657306337908927503085106243607662369134325214524197483672123163877797451114623020053004819569537350324457076832313856423321438727128556463433688288038933024964685676739345992114182825630298612862888510461618238941846411735112518333434515662679450458261645029613820630160331783362653397251463168425471856383228185411784819877309782489058489193816074264089773953915187282670786362712989580752051023798818354682224360808604780215490644744083256964097278924683947281947234844441813667121372973000224592420960170729509531500887433666959288025947451471242531425690648912992674674501072811191087901978414166760836286542300188340403116123362019195598355215285465845388707112559410075819136068553218940350510130108235104077974829479203560825329740215938487476028918390906297696165012168532535364976889274268118905944825369140259153346445294272170394622069019110116465128861416436232913587926495591523410164324628876567041655484963338643432014745521201279844130398243215153809255216045206022862847162073715523582926729127248216307793513651921173785254150071079887230473073995343034851298984586388753145379494424292507671586707169389977204567637440740038016074486812657971339558324397763482417869643024846892583864460923013196360894143797344588878356187890471533071074838695181213731652222009375161967992717563773599486453108311417556438121997296112250977530869892201180176160052683969466529217575237840709785432293172935531270845447846852020338649542790607925260843879876834799616062175897110352380570419294559852544648461567081200670278540936829662833901183562514387372924008623925575380991553710836048250115770982411276767675835101564499380553125992731796563866742745282822278243425125058211586815527234721292421932590362947622853441051246143440221656873957963919992311800567104331898264973657717477358956906058682593645822612732303326187250155918739409058180996375765739647104370000829587521069248432804711610095042255084249214377960595233158708964810692986625168748431335929168201074960369895673290087584228464010507880915114655616891991651832905895745849542459566817863786813662778783998225094709067493627599384675543464452031280218828413038979786124168580531336138153522128932037499456274896583527055239588132639761738505582778247413215504183017604862340982210243056005397596641443981582848099349833586279396421108158881599124989425868820477613893451844661835315652872480710884044868812013935040893543614543977253330284391033590051066845983799898303110531487590885099464722922100581714431489714340275826120232042873070335876594497705888459013230646371469173157707364399947776092612130545795736192101377173481318468547027782887046460563017159337725056745175392454892219071666391944530911297488608504159141108021684716441751059893977679522415545233211145299257059353189854933548332898961447340042554757132933388331265867661500318490162042750468474857421589996700016459285956445866584981504206362875528825109808133144226284982370403409139711014850085000544543326438753888998161259877172761719719004005980457574380670733637553393011929470944101752577128114104860905387091908031101893460134894654693491368062003021019956864754399961859200181294386560926924479958414587265488382763824820385024424973401615396121187835743842079220572289517129418295198443200848698937628849757651409311416477786318953393063108576703782334958769426323467733125193378772615001609205723412709134691479588631079960057747188395531967502352768102173643203685705144097197180756845093292519069317288084077106041016101563806203507191158090599181171784919113523140459107330387479494519716162378518340333606010847400164017537632250191535617173307450970964586490954435475515262703795312601803233792146271001155432486355832077653692465352164660691767318243269831954468626383933861347489680548939220969562486774866134765629479554856860814995480111477177910180305239731625508911370197324244787824648259702807818502353905704720267388129138923742177255630584763634728671097114373878082423390222950796785154571926684564116800845189704475982812643826733185057153011733343071359614392990296752726053566073294178718517585711442753721500473987983025881335558765003710424282695241120049684006507244290496789850601664081115542279467085450673896049691781788426219140794182958676702301746678425146341779144038755012773351712315453724658988090864123615098158533172472177441465734912866574518080158522690259039177977296286583385508844435184199421039018076515533450952484937244125064180910830839198073997242787839649212017361898982171704903364519353509011360064792522878819848964152782591584151931683294954904328021169477062307268473874533766557943336200659756029854785686690236212683447155650973138675454367684268436465761633843157129497052190061476256503753257703340605428943337080355731308644066990886378418825895559850904398210942710151280189965373607321460051720205710955001647127169368490355001109510499027890385192299016341426816167792607153946458891426647776670588929919020296823242982579911841212346527762603204747614767257577472724193231221355753343945791920257711481023896926612997987301726133659064425544152382774345970206247561774633960111801734958353155736960885992962315836311315007356777096121917723072308014956684258670404663660648545965166712197075540025033549971989603573981704717440285881857146766505211187483419006147864206894986601955251669684869463106332479107919854312130247847320713584060638667543712403742122800383866831020822548054022499418667626406027059087641153894776320838087235687288024801631981069949017266539432542657011653191081011559859002502951419913991560091765455830075557446528059381241592742307609835602143485105692839229832153777639660555578818465324001193720852947004399898454780032433461459535165281666226491368139183312098186069777266215354696289797690520099027658113085812226344436616655835123037451800385689475501129480943397454437544179623503516536807252810464946668732150106356043937129780421656977422359521000279968702250154317448095981938889710462073545348225335897316925139610334750916534561755726074384292723861280625278899315527189714918989239001296197126383508229841399397751737833067946228065966251602518905430152312212292814285852453499443885258774967531437018950044892755021207998675542748186894165064159981264786281160599440793834055632924000933535191352912352244533128947087362875845608831996012220342613524787100319834274309640544836142841679730087891641467141607878668536668610082785293965036455957934424970761691418797097195784672451072408106444173434759372876487811926507965628509727088195098218589102911132036574977787643319499597607633366090606804312409615666367112587820484540454244073185538835339539257945689657624962750905733487816372488345474011389716284422875841917556367359178735309406072962319066369717827330164692110243237717951465927646119078439945146459604151512998003004720682249596163224909800798522983123948775829226541441469842237427701647430001337128926884300481469182324338259164295745120020432644687977548516129452393831248220823215132337012149520739769289158667425661649482420408688112303503800264273506652836717858699107630484165580850818134340348443742872535505934591054669796976628864261160555445444722130862560471478343911764756637815276763195169686540217469731608490077362751161649152009068021013420353454722097521255553834709035624823640261139742416174454807524859264502539413750660458163947697986109433300850718361957537526921674766526041136028332213237481086747452066853483166658134025913873084581972380034428087513710109163176262023465239300452477140813941302219981453219621530631099507233821013472531526551673906014176771381242856680606925966719831828064340897812505811558358997014233928806161389476611078554924820158761911501556479633369524926743551598421860952617942342928851114059259079506621916774623600929253431040299271712390091816669451542923863188353683231073378110153350424291110685421288705454260267912612675551075162978472318503807293478863293273126959927645131548016140441837871034531915864025477402612887243375317491016691409859733940633869617449805351315744234222409170411858063313058734173068721995320335870422036184140936959017837845637071075814106586264749583846768554151532612301692530136665547339467771256416274428055212586034282095323882829578806368105516243278110735168911286812094636161410825801399174130050004286632394174697487049272402530331688179937530323747333060953482367594266766901001333629554241128470531257673199534690121353159757578688077387763597717751556246940036511325118477913468470225840519392613850471414393644801281528452116959103983048169182812822159980775494316192227194062087845546085059699349140570435982455434267879710535634157243205990620286963796704649436255459250287033288173608965594070169917016397071040639491772138186595473172674463332024263392693461835132667859877337149213176034938617771250637965858087509898212795898611555534614926427429045965206843956762033287428218080852949942047069291603010576837928053619218250437769006663375944002673068441143291064459576522870956064638621378302655199832145194090301378757897358349397316886510521075935770179592097295621117418604068862953755646608850065956466170250305164420603724800297087524362295598209296720850654324257753959370677526751489094590420797155933347616462780644251735576040429493832048580077975889414433518417310487439461335391930671363727002735081291229593071173472126105985488694745932835381646954036182869156214106029003891061799975663484303499427258004165862985507960169249832822340320187224863151492626286148070059253738734434746985769071331218725160117253614557869706680956243200669269275761739984019033102127438725575120412461216449938699789149314776455285148142222118244211713630950404831826823611212850382639987651106810792124967572011051497503144954203398415044183095993428108850981786463147799724550955110423610382037286699928692325652191989085233468242724212787754706924911610508056932333257184665607129457409899590400834772350629669102263210366570809981986507976938176636606639358446868205803132015790528206570980699497224731502411261821974341113529493596966224128594403514695144251153547256637865108659403039873811345490956354266567705665334121121970008575128355053343837037764443294781632232826037309146637768584518889902750546362612787301316693480626171011348668782758424572082439116790932707992901548338121017850935921738620489164020484462684762946560432563481969154817454956101327881845618985490668997292968080842560874424754711320753805183433063736810208514472192845998620248894870829988226019017464652391509395289665928348827799531293397346430107974433840590242692865724657671960000645176097258453623285849137186299575299939055282661189630572373546768257878465427046644476153873111304675021748554899949338308021678199350314817907597616420253008607161130166776134418164189917634593911950864461978932147876331881400819295920002650680922730782433400905988178876841304073678307800598831707223538338200955497938868743871923019761786822937697443054376015747483556087539485723838281393908962706228491787628415980072277398606235847714177699631929826274321608102358021422312645052486413489923961208125161599333110728674622669149332637606093955322077218574339384353528283766481178322310287169533791426683623026608957488764883800452210578381478915212885864701237217425751587315347632502208153883407974622417416082597048540142730053558298818030048968264106955592676077890434960750961535175479859828789380507354118892529105055294853569177242141755523507800527082317332239741619671316179544559897512077799885786025183051622031786627002071382252519081720054003307841060229773075399862171476060743665985843170229809837085597759669751534179687795750621809080856688085790751580789261244894276113595889596618503135979306132151107496650698903532122662339951983897684614432028947573768519251259431813674804605290438412111805574402323502309721668383317600316471389021313179394633587884563219536709564824621608768024449470058002478375970423739277730062639395783636870919761548029128502999822557947311623790504905189690238762442676079086709534865473696968545878242827680565780893454473638681049892619586085650413168311438241337958456076252089949352898989557815289371143064876962096492710460777016588417081765071380499945628783044088361132530987629416311373252343393809452931081028808883971815445029284940057824655075978013848463661256057245263167975231570219065334553077941137028377903058929071167903109353637379877764464592598674422062472504404271349640516496865814747076661482212895459445256165853653936362957691760447658237911098537264810844225971389946859137091594324103707008242751742364166660863246621995616224920268822369821572805025094166715169519080329534617093271257210423167642070235739962331855480075246120546842232233790995624800768039210698275869980596037316760500146597926890746231699338986467896251142306557071697016440835138492518872950688814032174761206698871510513934941635065193766211051871709643060120560600495597488935419020495612262697662981328548204616379554427013199283785829959584252241244716224049235127468761368236455271470233419801421868148138256481058905319473944265375909742884589870897826318775620913053264963878428753998719235776959588607670994641238162802950683593518813360299080720149382339331979676270396378372005406970113546404729008863640842912505984488949376519552212052192670992013894573080329338114463948440499559642301933912956387234093221352643740796144566029306446940889852050560397122776479961750318722579390993808879458722844312259305838069484463037957507980919385302693925689063910295021439114774022754800331570002013757906424931649275125110854267332025032046744418963794738512487429336637071757571998222660362062517873920839671874691436513427177607120820047989224525843967362221651960962337881950404360577919208387696982175598699717849283421669221380106586224093193196226343719615155013625560651064888929854683486956002761574853526580868849598553608298275159574529696202388780373266347046311872094896527158718341814528587725329116644312005425358681841176939831697117607802955185829188662021182112205047577570653241894265942375640603160444002410127150777014769609925231220247242824174190220348406251367402375924595923081380031042794639402070925361401318890590893373050357657120994227988672624746304443749284122309222807774935153167319038591406359611921655396391674798251102896863256098880497058905830961442658310198220284921901916837461037604295469072635342864252385898846806771558224722703959009989615632479932689584272837731325698249769868076503179864354512458768838308712929522479773221528528579094858572933984089747914601356717275782981778632506600759466906740611399984015486118977484390170625547840101630144340651904496769980497772833339174994784696264452002928150733711773457763551925039910188531654343195897747180032608852797879239039695387415787697227794986256476183752775440118151683546312098764978743689446782705936506505053659716751346931894561488446738213862796782181780019648963497899062122612369681853088779638841400005974453733925085092736667017302838026219450722192791335708054281956463064113086780635588150017536840370823147953248825268453451542632166243827865265630194909253944907139630931243570126759542605604611634005142314053779402234504762084063550966102731540700974671409033316994520262845755613400949537952542856004230535596572519837218190062609653094799882378442560293540873250131217378756578966322576385967092142641132213664797381922018709885223971807716421322833852652434223394385548206650258600871037856864883064151382006156416949331683913993819164922764042399427059708007232520124868573363416483163160470158268410588214234957954327683195888037712015874998861984951006396371277793735593170692258232118457860392497226497452907171095718667839690460854422127770417358882098968417254764375582011816887557548083640231921333065702893554919491022716791366201395233160589984256078753666965630096370238773408518006822431035511000124361151805635440433007146745537441244812381667479930292182419668434994585702582976259128721276632668591195368083846999669550421870148600639996189233610570906293155348789541914164070474519808877526434538498328670878537326659271668548909302640060313322776049089772595513772788799018067428985552161982921310576297355689141803453143751611777946044102432919254722816390744309745373649116171576197609617986659548863513599115129523759076394266841297348657905263763754734880187724796624788119100259429252776781029232687040039418400945562256435365383062986253622823354927902283066305433313335205724084394548740736749351187380388156436260632610987695037968956981481823873648189995883559578604411565849309774994195271500285675367189345138039765397494014597694863189279340211598473122700767133978670361269058311146682323121156775721421157030828602068655611075852601763421690062753511643927485677038342858792478831169733256412607885297320087346325036805492966118490108769701199974049752189005697629800743523555456790971915541060208416537398173931727263477204199309164539854921815329013130015804000838630001758127689588467596894804643251148059811494346718213888188067890295329238620873129663558723710129360858812777286580265955348074762417034690256681209301386561856719879980056480460868639217027003390624607702159399997934182376733374860974114652079612695661957292222522516243381410996042004319912078573918184587927798842665652272800277164485212520885674934752955612980455170973547577413187689027110752471533101638227683597540122348327259419145239993050260478323933797807781455365759175437185693981103276223249932027313827463098261932407982037620296497303456933049358283276912501521663651204760235653380421718335292106084634515092426026761671840236892441070552583695903466287612283173840333689273955901066108903152929605539528305759747359616931451497299336805002021552579429558877511978136552582886565048123075203031672701609063772067788144357989148065804452418963057265626506309471134274425977227149284042599512639422910860949653419050340706431260222194611568248707874139543159576437293706368957408150046532448618209848893111268645334709383718365645589466988287921605364051378331920677476594165587401878561616859808557757165513607645626197490985757774463260131455450353264457441679911721582778000175288367043093884264411981029824649255496372699137137328458250082697342375890725720415216575605059162601154606413471831044571480228274333428560133857604284364193593321915505768671397140117884706193417662623397301867098965625277962749855544749706431421923215323618808204634991906050249448691898996839221805910614222827218258589112325707478354501749574812117433273952959278485871628997867320369752273247185989317956344330422301020041847218025733490527982099989349302368263796328224692466463984459708680688830657901269533342690469582888448052526743074033879367916179722104093392310180503018326566267705265176717967960252416335113826316557260020190056047435286200136316271726914212211276320093981034284729594162078544134887940492938800462208415348754011980251748188643823112039106296446708649161346990377881908825180222437521172507007328833660346042088782714630711040440660205540887642194997006452344512073080711676414067606123606613883105442231479640770944790338443233348682725787664955069071285270655754462803483649411601028749716192900939488098244216887021664583450499653797312596977115976605077743361084195806012483878058060624286150026724809771523185598611964692164428979470138113490278131314520939678424932024149241552654002035041500826493898517542777715971192688535444440909756020442514806672117248071489751053742629482667289096676542218139293795596189222451444182145803508566388333657091149821533701220906793815777185729288442272176791993741011632131046113829007581518598990917649796980918787382222204276758095183828780690112442969054892467383389483001501086681415131970997835904771502959856500153880562605871649066853805016613442026952184301711278818660074261209652342812344336825901937439790293742807924213164077275970453867486551179505958124739333449675841973369399382519602933301889508344576975725988058212309299914102450453638494626313552719834335414506142152539730381951707978657071314936766625807704680801541132854041600517991929320795418032141074879960107178673223361468159509595981303082856082108789839929031276574056561640968680210464364231734432380806577327717314122995049720085799081850964158029568055373145799216472757344762967134788425731427435813727125589143555453901592556127314019080368256035206552269760810276292738380861158999479289047951255021319969125304132878914197620955065285063557447069853915863363049925555741021140890026938984729824183656030819605059389850699632861236378180929415370200705180786861987192909718210172491003387549201327495103102378383881428689212181714865220518202784641587485760255767837019856746247147243503603315537880832571862656388566725927964782422169574822468057623156309404054011994300371723059633877577759023593916080026449890505275552175823384023319750076962852934694792038661236533268721108162949685292724188805798036189159881017506466668709167980683225313729034205725297192763584429657858128916740072244354743176918168996406565996854491018960838048944008550986801185640898176433289279242876759626971591253150410057924248260137803296234901188280461989708228046836133264784607256928619966474773877691875378663896488457890043491500137278230446245990997594177448067888142387446837232482680991088211086982105059974366447056372584679723195378520228888744090233029073948715871068129981074524295208939153915731685901639320351654593052050192268852399019635916790099880435916581465788796788211114250373594819027495010447205419274097187476312702094896426599555740620406971072233481804240577448710473903072682530669866075764656936724396800025729282883616603783385967423227327122227333217039737201128658979436865692255353603666376991938875122514932939929382242425998805945745434430412733506335584776253102922439893235345950809502345012975326688596093379577201620817972674390061966207374038174953835999668608365200124969367383984579975924005538516239119235426915794226556487813245101642620441962146450870498283911763123363443288079211624469582111217638943904407883823559080270542176234729286906163049082791130208851097541008026347102238937832315551223253532473316934518668036280104010552298507297017517232932922429639544494054329734665117297736001841033981038290117128981052043334600931167163526972732300842664031683540583444654998217566584551524620572975087189928138429320658041529510250219670928563428517307154918151026365432639334109622973016572050352955955049650173786472288312558003827467801396216960170051430197532316038144578241167231952158572761555064843162449001968415423526238106901768056738799100272228722341731413498923318802821556335424637472071459755656844674416054141237531912661819419578945637483874217375307635034976870201663485355466723923075276550211341375201059720827767146350421948312734595317864247627446411674302670959041675689263031385390846909021580617470706336902268822887439570697706578948411267334163101937345826821385693428109700716437038046934840555149667610600257275418598816531274652675801377539732227448009667700072021972979383726159574958974371767333350901565679942977436072748663317068655260234724225093780939270769080471312256566405529381442961497396800915946763392235221266371298531116054871340994683524063460596212618947564898009874644067886055450225136529134749936815300830051589433882049612936276751886767078242698251126945912263131850922693102150997388590799801420421444205892872242847304398672322043477362511721277842063621400661986382193067157137646403820181824584079741581479171699058451762567372069021808225400900683315249683191527015753866252582011051956754695310849424213909898707248364759801715875440731455859215706874304626650683433373723428291190585932219393385515545850360197041968194207032432621894121301174717512788985080811309164056086732329550353610302700866218600505357931806416152563561564636138962040989649169322158514231302468686013588100595461496358064783189726508759389165851592531351367089768495982860875224723160137574838453274920132687218508937040118999967305444702745940367752932376058630520514769464860186571309653671924778959259985772183141750312774151752732916268020641789753280564603952819789980138696868852185374902067109563125563645360424027552904984323806808302540224537829605014438069601486870306738229664684597628502173344736970414106695129060849292052662888892003482981336792719182611061218498882168241842199006665040435284802518778026755306399812361540490988903514733790318031150835033101546260584643075244204936788483683302990976452619713295287457558254590029680076485290921838463317708023834841803963781117680692178383034790121731506153769770364933302619952216539595698738797418186431237701439683284119496339338345550066801876181520264524766029211765341994399865137044628975295344235115831979532409201049066592258151952229214975201848245662261811865731924601986179909212845860786195987636747163411762390939677665800655603860496417438831891294992269059018333281265697140208699236684212883020670421042651180254580567881752852289902358294486248581123999174394645671834137490009388312928261381519938510402978945792699572894869205551599390134081329965852475694897349495674965640223358184385123419393734604493457884850628738147160101413676030215143364304122361347093476240933600622340151170518402722883446089521592148895642560117684059735574953400101373248095965900118866639564383730711714822457385687523283198628215273179947687234918927099432124530657585049141521453880852685849506374522949596374650513889543895568003488578436327723772411009692673448134007531203564113882636924743861982945628988595930235900350818222637243655270880792412021325766641086839865054309695074678093168127907158820705323067791669769728718468592265268675867927604081394868446312006726684578750714948264040013824912186953141017755954747400363509414522686797886263072403670224662357364527236949253919023834260424740740842471740996316538336486341011368676994603529938245889962194997085488059906359572150569024032006804126623027503453599415320879000025046508188631313644731424780483213441045678649810918910925732867444149418496114189103100860985077207049652860509719573324337147941131497039155964266235828877765361107019874951361810466029029791083644895807912141719181075665934560748263504145527267242227597166447402826481306163896233345332467592943609753086061461359821063033131192089709421740177585023086814227045812273000708059653205028752729645138167230938684423142189345602873219768677817703002618521122835013045604180098606410881946143570590275660525649222501288022059298318479479390629045650283020390146940888802503325360810832347440216097222525371859670221387965421438180885493515206458979050172845767382806645501151807367916359533757055989234833120290842062975999851476756929122183181223816658547405284949543811122854176556724853384042242266639255429194252415580225565058802655492136319381638965318028084692938559858034377543125354984225285317463385109748829114481071115528701180217774984475974849249412686891258146724648524437525939024206575966125073726776473131565047829517777749863644565504309679249664346508478963683592738342895548326156294441269634361450757164322875938330370598247936690632525052149824138738744756321074752070286016852605573401914885380795718552078403783085878082345997666912267839817096247331935553803981007458794211187597669695829091157430428363590291158597907582487089501454813750891138965716533710178638104758005510588711563969001129107895445274356921021812716592170309554019970568324703061704645475296350451823867312284800668276502748015783725066659175500114390304951940010849707509523074983556619629571464034097571689338692401766172925121453681263793990342928118666146767338707215343625540664723419497576509882562153989717827903292966870903980421879537034233060081644483941351908491345548539517589664941005247927322831166427145319119560246557081763062002345624276873158515727265095730962172269949759789646889797740572300499296545893728169965380187901629912252405682534269229942874561252137005444383392005709990563224973861856794183304889199453349929302614678724204924251305710943549759882287803513584524037368724181224242362727632706052267667295426980380750178984977629198156881106631728699804087241676037953443355456736714519626900826231214961908054007948981263971665135191999490110842874409297909532576759394643720515393627890269065346058425014170489172861082501231809329451578758434808594200635248976021823993099582223928033683264602269712706041981812199647427849952987004128683509700201543701138553284549599535978498833136859017142929172931387654054628963361415436896745213059925019629815075734579122480743480323396549352870550448829205526658299893226546074945543457547313633937773474516290377557286757238250387438112243896846908997104810860108427486364723337767062771821814599039533646661802283525419140638652593660883525310990676868511953777034162179780946716453346287310276262474111081895346879782495796118080119419376367344110150979460421873216952819026165247782478563874672356162099922946529001222254354752534883349931226900281097475095610169462202508262939669760475671753273164078585938026659185125000484205733929392144819434945525905648221025069515431815912955944539428111831100203138779751773370398676224522590346313395089285085741645544908551220756283776219406231440616347806885636386095270905961692106679058192250895129758905991158732165664925605323119793380504810374810588515288011039380173805596040792629009071495941984195336469297133774560089534766233793493546603453423786296609575283585594940658358746466298562236349728994396236399635932003186632222961464957114598108319166401052746668739439449287454867316968616245888552871612287275051771209216704617507362965213576619100398286748808866716777977027165225664073997083116520858760917981949727056163580684601394322457607322044967924703167801464675670170329458363226542211430679789284777477241508303631286932378016865522900450426518425463957570198569755909999580301438102341126183325347529079355247669498816991862201960032500986922934057942755770758702527755926793508891296030219853199182320064966245037038320236065995447778393430515699612190134006136245619904419319670871291531970857657896416904358836294347795479883686765896879199474407131879482159293062943757295839639580808881816573501309689991689629940147146412718020146745264689506665286745830848105630759523241734197361328845686737229457798665339622175261383830348808763287420246492351719828656914887770542160401663232361449244082362541150653287707686459843428426093075801796354846783149704813789278911225530939787963028641139033805898095101671026151216466598790831245224877714662256295399195676959600376806905022106584229040587239859772256642444141953333228647995507132614507035959443834998428771563868261020204060203871867428091836895149875262346433261524676340777872149501537268686138634460455905010878169706004892064580250210191716453360368795753612743146767590754688279742278866667178925547894678566321374581215343701974567631170610116141459753465808250982246610078028405901061107385327186733190210435658734889759342952154574959569523730010974141732723503896224438492068038347648429382904598992375285897495436732253762592162545442722166052979331695911339332854057622959906894193586144079008979334930074836878709552324364295796104356285002033762436509599960630724130535134038070419864767488489605062579364742687347586877205836381090463442801184237558584792695717237227957016238124780808893711913257859773416142187474969642676529194877673838592686459601478579992198652044386659674992376352929171956397951532915146767112369658621988810056896040640340215504359911433554274497726031550760768617465879524823282224143451662870055374321723816417732997475405289095276436326330502167764758906133487288425671832431264907153089493310503962245748034059825613352571333776541637122347252945830637313006070720056423407404105174671174491176809960072348513248241069244409417982727440118454639266547807949315920084020030370533076547010143578124526980248665158159882848181810552192576448744607453996676386669746730523955566190915078891421257125738206013275153330961445493562282280652447271678506564823964110957822390961123061454335647147984847622493209323702836537623765659330919930343387581149804389380119767644382497780661579542107769395836749074672438104636698062717903094389379780924061331948231004119016468842585192814689152140407467615753789240148172858258298423185059351121749340900527433612636390871894916743088220456043204753056817199411327362926764897741416083080982951346776053690738551520750486044092964888445329818018633877708159697434217911755822436433406612029209590873083319591208406792764232579935281073289415641483801543774345190281483670747344395054329009244360286110194105765727031823085542483646938503800890366688947456079248269723440597957939611264905176124644427161216747556327007416685121671567416532289551304078885358918076749138958141159080679702298681692110260486416273096524640463608925945991524355605054201269276015664859282605870521417468466475544342423433397461353271700066644437730894786878983654246587959864758803768080534420986817539980917477615099585310512957960895344694060248613513548251144269617181174430807998599921207277248246799953659644881741769724569248346808297385036614586055931553001765886606344345852913704130714647802427445297368276885185639087689597199735031366469695391446346957871395844958851866130041632742318453088993077208668923712818823976899800321918210183283555800163473984147377323541450841473387760168958326295131159804442483408852761496358748512666900990952335018795996520946405512827698503791584106422502191690159326961459723146588566054818706799712539861250879240184971599839813210337727510753892999214261967068045788186267636044921384420985859493667834165464677570583141958973847732660413398332457574585178783742095498949410905433456146554376267603358041676386909857686304632276722633878252974742105568773552393408504622957442908384970225763247792795347994871520816893454725746487659150875754663100682006294064579438527564235010578283260980031586054255520095415300816876226625114669447168606544720878351498540544697116301115967989836663079825921156588243326170793067985552438182460282976694316980920938135244878332842107288865784530613252661409019063035417427826289309025360184675912499281950060742360025948105900835432314528144756568938373237198953348257631017864467124333880364004466832613853499283224458396221412799710759967390437665952235270896289991879550438259619135591282719552069255393426169282640294813081251507199022398514727041657208572794476876741854828789418401458958230463831784021721729365546687375828938892416830278538910404243025415447349523340048933594571704424201251786698794054867252971372656746201792148389696160425021418855580740840349539828210875793388154009054438218762158302217935958245035885134424513615588586660714578677040332784890513219535145221175140027799784590942025254342210529886284141209361210766478241571566162501973229639446972160412076560357915817313111739983053567676230906598130708133831925967877622860620903916855580643300052333968412822819030401001186863064158522745886004492652110356421057907219033660434689121120134569336654655462618803610574359655394279814783584341848323223232344343239628457277992671401668363134220566607426104875372164603581357080659687737778750636453408316742353099066719503008100332822726715002349231502467856686066773509538110625469388963591726091212511293597272168470655156791342047324462616232315860070949766007448555021748442862131568789614846544956263051913018266166519183016027448536645436765026399528891754768337495960584761668568195333140698604736357654307076908766545650491692568176593345627887039541650300876332010329743341996092240648246932954220649724013052726977140922292839383476069051720360202965578312398791574999691557688730734071235397407005250380296354756126524636899617146277922663880866213601660595369457021305507322829501251001697578104004437752204089744795815667272397438477852050095334147606440433730099460109830057908643661506686014105819113093438097585903198104217291814871636778983099260629255518418281095591300720606477926370954225099735888173129642233345569798418350253053557989570913795169387547584699110846492389900691826589327101695975559422907986155561044039175134191671616750655323035579645449230685277112535330867332549435746922041721148882690034160489014840402808546943912844172647984365651266646598709865434768327860855777814050735627714260282734350958046148441667347334725025873092984707396471428837303836600083715823031465563944510327940952746622242960272745401781284595753964919648625787752473649795764943772490590677539678319656619564635554202925878251456925148276766582768135711548182547068641951200341110456489868798511281703729560974884001053715512229925369615851242728992937006866152305963190133607992319943762679050680293627409474835788989530071644126236747290697050230057363871901175159779299085848712101089220603370327161731978686310160304859558123081765610334205239480491276667516345542210723360032551291385007764486446102867812244104157215612588488442848129039261502418689272905794501758805400650500519535229634666939205386876881936151517211088954081116389781854734909816441547688008289310541336566697552766158061718390758834171915676636853832814210349210619852701773084381390906321772329381969168442821936009973050474184916857894158599058867306273145998713455518677705850857451753433978089850927567100173347662125748487181362357150462193321390926271205285308011169096643908953422309683611492110144213559335960507267010442898622277219439143727470665189421624313870036388403581319048451590990484105365606285907386291925602636143605036107613425047355412474147047632466079250733506486849262453976148751364764918223347172091902851007717406566564575788380102578039117812120261549617173954608775727958295678504926557445472497414810276176834106791981201351858545628115957502272371983349354574685637905986347902858095797323273496773220864747706158810221203115509341371153036754069334746572036541464838450099026309554523216076110689435042604371531457925895909157967404918681582663928995475271562236169829182979731033117782675085403837382619370774640533377741339877054291085292835270412005670149547208596048278444516241187585272330245284924635724604590935019818356915888111712750560883309056890744888250039284013783688275023965279319410524255497694338721969887292233620345213408261762101176118904113244546525990106342977725648569330070147697193166515326341912676368151081543711002782488521626005087337578824578097158252716564332432672900996536731972420253770740744621863625221714285181739656621398704337574741845411107512101197845676159804345777540081601929472424217742329172144875108780423396741499353046581296021433467203925828149666836469572310794176215677023187649780430806467321821594040400368626585682731978528612641446807982285787363959903174951932024297739420793310046857480574322150899816913035200784479443312410516623141261646707337242850103246893698255885389298581236666609876008251712709671713480311800379472316561616226708826040444651910760860692060453555508783928483137335704684486642963299219368409779566420365890495423892731320851885442271451637972765577573370877319693743579908207965510615825508100166306295051490828082871841744720556020489671158567080086204765002316700369886315318816700176059989497202093585270642261647811151076348770908694409803581563497510478242477460766478602933481855068894992007549509694070201154483983797136912795455637810318280593992632119687364752814207165339367375570796403399704095172612851874813514974174504169793684011758485396747209974052014398832692619093305316963537428787508321071737360911413357301541416169047126511652376044047499640043980433036393296758880088287747105755022739330591756087295196003767629664781221029255095624443797325720741515758125687861478202712056016422527016651169417737225765833089667901936705640955250771972845057227556890897104445413230947251985376929285013463373530256140831338610077122512168628000509596501416757554658412922475237822879987816184993196747802431075324631355778932399658913283054785907761482290973825899455097892779352219898128670920732046235706884822526422675119872487379919020422986892339165721936432886060528964277267160422584743189016135781614901331745811107979214490928239521929042699562940185094288848522642821476996933133060672943616478084832125232688291616006227231562515716784952217982410007470947324792542639044380042697251300327887909577466870675109537053788984186188302197373167824604659437120583422783230201958622593665178334045348645020964530226390017815832222718589006645764008264477389653179783097367123185261294915242147467786307083154050300785967263699368632159016895582826834679402230882606433845720124400033102293859250315200255672731401404157718507881334683995353099870320561865557579010700815397555059293270038518602113775524817952242263502161926573783696364583888969659458604939473259931821734072721213256098845257172988925282603313341194006647216308552313377639236185851595714347559823622657938663503111686637366139865561898502939188695478643127110782132527564980640548149404540521129300436283727825300786411182069632194818625954048568127236710102596174781257309234085140771134767870776180497859941548348324145305937599088830109159070421698983977686236257280356088075865656120618444415725869129273450225681823232780914408461006310853316091050342483421277791800171441461078691813451094796314700503566494328162831334287591040753226021299057458315591511197830549934030102214133286687466635903036556574784204707000206777452994399162566724131293681563517325099448635698856434025073850591535098318731535484659542181058804939173237006459638312006557389668041641992241771764184737501926568094432971369845709909632122319513345908177271218630113060625408975368447099644793114027264786503887158792985835147266427190171314489276288784081369577518228211393171327562619949956935014495668032790460928958554553834038159782210371494571866085209612315154499513494149419713801740258436877552539033444250835440687585436993640852020848508775703758266746321988131934997087210727178480606363633281152922208058636360949005214340395971864447247096286574351215806054206994727711122951395939178098459295751221640247288510379261555029763524657229986399245292291760441741789829898516280308474585440266710030038007625065694309398024463052025930572999353601516655733984026722253418559081967502653272466813741682166003624670491711318363224170698960213879311777958958648668036736609215702029145300071332164557288071495447862519610158224863036502836255573539775274040486188577933092798064404604780810445469217354972768345261821061394137659941838745926083651306238885742068104168196212928081193073326741501945804063352509104134860338973823989964106814898039603200178269693356659485791655931232030126812562534752574986978360600504080796190696736538614427350871923941706387738587323333287305396862361775685437263310971844101193210329747422227026896037274183784889934223125689806684557525577856303885595795609624009690316229340275591333085792667724008503354779295078346048744242705468896390007613246526929268391081441731449897285639561492461979272131716340791361659753406839874196236585767168519218588337240633917843363813541476754006810728493261333511308488213392630806759218880776634469561976389981781478303825912306023406230084641713884101121385366207729955712073521813810979745376362328258204761970290263586543547933593226500958219297641737942435397871842275804355759351757572182600138625065905314983906250672094292189235326483793152452083990446425140871014697181929153296222685701128310845129726860712229841070184976999684656983068967947711491679724035471506795899430616060069086715904241184784884334183815276572680522259547937809381658882883095151772865650608340945853074782426536098763272998568090604455577596929590234396919542476225341973039696748290530036054593957923108331467340873195491857718060516302257114800428565015229066891908119791339119152292761087487039343680433553653808361714671485096370097867149298106243287457727792456722846445189140832302606737425010585244783757136891163265899003120264232666927277491377623093078864131550353620880633276278418154222401773323772797482869899990033511579542561177778515027067273503504190639157027511634215540994521221908772323207252244830280858146446394326868991888978293327877126912810403036902670841691955911699073415424681641722028267639414906544327855541518377005928445275334947870791824860722271832552737605191331641807008399995504148181765093287747747717506973201389256408864224870066841747374889315372667261052826665306403582594594848786316295141892255196929891994563948607951268266881403388012841815355619283386856561887070794406613154030505123997778643642432135124657113321369283536141502007984765727314799213951067764977970903537306056491980848214052419095904754470855060410039878510743005803636524010032712466006014618818086174771176863175034208595768835605365529420990927445636604756726506408202996024345754967432863062476820447192647413040832324934755661437872135395821101803325071835560069854742249728508674656942980858166667591503027730205360154468530602630287200793872976553390473534649161794188083591964446872582436660407401006727310818719500497392611478791556952893059640549324903043462235844562167058779839663521533347113978615065165774077721861669577566121709158907744446498285588381618574315307019606484027900214132095046746962737611562315386369620239920685809883188610666545050684869806709553104450414387317786911510246101964266538473784961134495127949397105702427361378954951452532453038355783089658005005976289162809749421102149119001052164972947920203548242053606491193325767861652783081552380964906638756887697191413729413624355152286852485368218571875310919069523179533407405991252088594988024819964524982337955193804842260439270998965510498997826397567688411190926580053625394809632050553846931123631532355871903328687194386386841874500517640683433437842219148503486740322818830580756781302556776409558149102380892181981830554489566659251030399960549375058500313877019331038492137993497632398312916814662724340383749264215414852838057761629662175974581339017120987802238153957218986154290364118366266525322039741288968085680193642897047543741424670483234207520700302368874064635145009836793385160772934098931679654283200781374240625154026616417421560500622527387413013044351922624941876854429020126452045486883415487756002024882917358411416482535582512534183624394914721497999533871022414270756103994882331466137640610253882507421424464467433360946215480078426124965256266139211373928574433278631298800625313788546589983206460782636233256415664473994616396480059648049427481493644521860028019844094971505805321939976597366345162291805979579804338568191435632746492802741977718383197997402294657675080578602813856035339597961471504792560252418817052659300227819919723285689616192308349507860342860491357106933434662267640212509890304838976505659492152992927362249221730043672136276845053982542563949500893735362373218815896542388656644151886836241721530256373272615454159937394056870515699767668052761187456950741913443998247332374322135879479674413779818727443957880940697766604239419313993863969269721079497886384260366774398747911022663805787892059597841695674890962823898449510244972481674227432788026988485397397129249938743038757622803051789517192245035996036989701152569685933458400459967714635319775112171207292130691030299620821842062090708367673998661010611848860533858268757935250874495357112723888317791297071821374560057912718960216164597825038354499052421233364728549545888774263737694698965775792520440667592434052427367050401399122375135493078733865846051318860470079935529252285369167261387918827902939012917033963695292010713734269524467452049801540754456646301836703096553977838728084661494902142257732115848342037644238733476346639560207109629339906893636522407046864285012892565968445548825886248910375850914366110206591359062259163613968736346965113271357413968624036180692995504506124129867910868092161793308507488907166312766988835031877273243533039276310430544039976013222400362147514484227998139407181548786009515293975416322138714418557256870682786950359216242352280401721369533635175124375610829023414044153868165000883359717362923314113157299194773265228683555092545907533645219847227884185887099824139577974166973364128745374112523963579752984523857263991969751361687919880289029055528898612147609035956742340826868926532796889874977488457959945010947467858241080164857195565201080598473867759312658339638211433818491925718135107251139176926824578269578074517037980903806552799657291546630104489229590576124410465835590713997430429455373716841895023925801023342462538321996490196531323097456511592660611712923789888151241985823980672960988502927832314263955942296120947133679996821076637070927122164594237281762860662120341405798534854800688114498412020257136950696831563626608837870271986548304306680013102763164329879896424103321555569079671796206097338798612556779879886050764197887395649569572837788797660529236322889094409148746396765289542539914205367927768515509678527576095506762364097979162366651169883697894076635107433543821286222152005833155342069829082930475667132745264264928677092560486732525878299760452902319687981003952344091309745314324467769465879794399900080567772443965498756178258563239326436627875065518309371715201999543868528169044222540733159224898079498049896240525975803547867959682311229237616893479000651799137769214067370532021947456010132978399804360791687405267957912639152294448630225545335589167387629974816259591096702694635504887344933865895034273418170953826959393821671879153353137402245503291783202392199513227530612003385359052186854984879922850798718944686383097875385421732131117414609078091018764107267474395126212025427292155467886339580948070824798819251447440857364535456399532883376612453545372919847555987246156165303274814796129829342762764490227033435866391716099113356183280003360143439592937894662504714817550858021137198928052531531902074474065795975856363292492015823463986395234533770212417792997657854217824319079575241913850734653567940675633200090993686542732251144428223847113133501762487352527725777729682879611000107991947660280561005332213670318513674532915639006476641537161829417441601118011592858773829800043548387012530315495082083572568832184135916090304599152174395239091963136895409621521229443645144319556254126467540655868149856319223551868403356401352877662121520870698296978314545344003624487230018750705159809515038078335940009399949614953451385496665574646880959007241117183903873959239047685865305666089221878742763917851979529429146036007374695669958825159670097158176784950371651972446761201675741653674841783892230031172989401031737094651735409261036686841138211196943554806853450541502759384768411274313266729009416302759940560573930270118778710898594147013443775164203832721710260142115033613825203223483871915563297156775160003621705783365279232768745129921063698810954854068341944564520797754517864352639437084256075744976472861566919552593078055593376788444603430351607337349896070757133555138654733916632930480507655068715503975128591277233463121835690088939528243412135778926212030811407459864595764024122712535700150260136348590780455026535620910849747295458750798236413128147213090739187994295245815464393809723890498201328894634292930038726230904874804015444353655665931072899805760880367343472420693134699846628319440030947033833242319281744265311671118354827427968108043892044807872366611335880851498614638379394387148247144607432732496548062650999172029786418984667451814906016348432542801485729683815219561204818349043093918460538404494834706465003897458390936195083078794739743854841915951884607497881767845114908207007962573028881473078100565893057034973533806535049614147403989184057077420849463932636720242432453428122701357088851885176135425204332708310989240307078986781536410259598712918161273084116455276584362342460824423808052992821704498405257869166683205151535317124784199553103301478091915789299055084406423408658083290821243267943582262332688297733669867434374035336744111704818147649750616438917337994679876912015796394708331709996230780975027206987027755682221361590620235808841972955229377399731485553626837309387704293677913032302895251344442801196358544747353727986717029891109639374269617189649068787291746668690315338344733280133904083139961742975922526663207800344366318336072238784360793860394627896005824887408009684831461687431105257762008353852162762523316613414118657278261293276961275113784038558804207023308920396494125511178634439697460347495125769584192164588952681288505667130358934624082212273334948692636550551448243043701503513972778759565968700689152496702282793211924871759061267646026239402952487228381795751893151241601203652088285903732651197514983060420991978965962122787477159793816485758647115145937804560960112563482505121362473302257956415451591785358017045294155913676394100749647666692595853563752805452820136354214214866653143187494024915453299131587115315898454259417386228899825912883655940965205675396944667262888185121505340051628203544365024262881477130718087036314925437192135116290759479012406198388680739801506318484747547460116930666227582529839519539485849321965111074198175935043325625607221568668733630930770914503164947012582775850806033867272083619174165532107103214830315611361775960915690932229770596258412664995773969377007385819020625738881045926921361321190629801872645716768411357390199417395931902621108882487936247200328852055790382866678889381535445554638990457724320126685690022729588310363237162384950634202567919652456993842277021306472526945382133526339620737275728495727903126001210427422097761810955152362821500277030064752288895083020619577118408283227442967422119571534097819568800964331861910973583646183677311183258769563465121019382436512854661083616044488739172802106316497836831498328807428990355349280680752801860148141453463429230341253824062882240443357613741160899255159627024055646963648043337052345340483617460467200263195844151238502602647551815332797697920451258074472485304798929393971289748999998878526619511200099274789844801488149990063193035663215150651980427525250705409476845723280150686758623142797896276449976282717542384795273668930419160350073894054369234703524576240525437650163032489380097379857533731945978486586184988262832057128175810579750742881999877347383645275884943873764155950845921409021006266025346268177224233960286865203493294523470926368379672463362308705028847054036796728218522039500114370626654782809028343831795845510366470966829970375337231563142930955039769218956742146082232338114403658627355852591489565469587163336277656154458047867009598709940990247510795589179248706278514821384646444006892364300110038148734489171710709931786359383293053280767671117761012814308783221222212689646264233511012764936001157954103880349490906016899863537413674032837818601257825602496597485856176487988170294771388545795730711458671273204590517888898887143873046736231238486540898939592885900548042875535605816327837269744034287516788318435493235692159571016249648644423230406645160891911633777491891584418882920848586471870963387095238376894434888897291546416170921878617985207294836597383067121554472463852937641844627418861092883052485871802011541022056792969181650040710374899530394059886788735652339601589528602595356250747185689792973067628751277187114602583702535137744179741393802091988145390880160913966506087635304855323711310633906289104324967783616970182534355475611661970700250633543440317428236879861749634822757703344743068578052784789790222310661988876631098067301440478518885281593672994598621667008513564146986316818173612463147706825591306757318468224385999024729531029915804398808434495088983315235265013590435617166981515779938700882448063939387670027143018062456254784217740392276910384132901802562298005602564444929174896760296430612301188380242242070091321473522782242667427270611462921007253917780089965244759945625770987463584732379884672370919879695410499254355359990163466147368370504428674542692387867253062717185242734566514877194433519281986507466466076779618321047397985456380716371609169088875560248985963384903191862089223487051409344796591011624855290528767376676005236995523949355614038341534715157189488960586041914347018844687528621077226921188702963452723764331504263993353613194771259796329869214124393945765902995800826473021983956757514445147277639260475760879053120172841102329248594516954450714822404543260664783133337614444984680426136608754575876032894305691836911872954505742942071592542172503394280260435022409894470014542923322694219835106087498244827560688630758194446050865153567642757854563237051092402817045462879720289809337040021600170172866930528056515445721471878315262204825369149223773557915182201256501948204443409152944616376865115898508940642272588550617478850652046084057486926175363422047757258538664358372173425931493931704353936789404462067123530543391117468427595581247260355595622875307238760250584250350994202814779321467575206884224971861620035523251645376643726141453800688945676447660398877534991804398381706502047191124368024407521229519943597023625869457396694739352033688185358494677762452141640973664544836494926591404723027332884914743661976179086709690990174049418091970210758794891341257614212858546092460378464425887626252218172737528383021832527225773684849331741270092098235030653415932371726754694766250034352835658728557563400503905894349648025885684124218728933539166971405140373562359414805921012070169252795005216440228925336744347454178182912739744868773467258727690570710582563369379285642301203423237866319601987210105183669578732429640580162294711591523720763580547834843722145116950631550089853937927829029370009007763028307854404472953657754376154258413596586710754061719748209571294384752548165615846278517593387128730860296460678586775531076500136527625474257171988644504450577860409387318525954104011406931500048219435011073849242647329065439174809236611360197674949034789720048670241165129958473998598185058241328356789722964936803011233811577365787856317916560694747163193536430325761926271916287324370936108960012945929844988126638167928423440453735389594575770195816506470758966879097201074810243614077282454477376873349333946647158365135109385585425328703356253853277319700155648242603281991119680424456791757057396546455012107809586068152599974483467668702085226079275070370462209453807710770086291015695510288607461291392079387803653739341706027086611031160576681626346761024568403529749205999038853277830234532308397398465013335123463041986572865689399327455071227348777343873678704639539002105960395022982963525403854914776520403582567777556656723385082279353024031733908207493527044406852749802657366540020046858725948605831018731124703356832376663933380390410968130592676523711710835955271111097571665247117769647810196972155406011058553783249795710655407354070650335683629480545452166843426106050709937866687601358498722259174448512070142064647905854559559518660411581759112769251296533061788038329470342448567253390248315619548069424814007843648500971151566010567131079679779051621965479393713766011718680503844935483156169808155451556505167245923341660334809914035853467586217708781225623792787609081393451765309025495946792038442135526212164928058093807767540872373166877922660179665821673494734880702946708759512357024567172120879038678952151581972536516151152802548986920832646862525322306729750173867302701835318722269001520572251705874830245648753362278856762370843395799197272413735907744925642233852170056102995409460642072381569190031688018391522347016519839925246179646057515691307316115957765835836822507394206502011617744162726014811373893477074565051099787776135326972534245628655676669959206213428377277551413179843575782306055221559708522694293506970635042451931217369519566259405448654986086922081549887794948760982559710066997961177092982821212171482343143857998520829316950765877855821259111215541158916398856799061119599463339778048948345647779279913150853040811722463366568051891753655865166502358278792642431814288770037144357048712265816511577162772820918050019407926208378700634508446022981041129371752396043122247612394508122581185195098122833899928663249198563728885703120655633397797043541154631600005833967350625478374584868255075835772426645728060287968457425994859677434620976750521381998810635700413354933931300928334178960243413123928869410492770752602759778716782988153844185298082797727939703301911485977781143753275576998381943288973217873116150578185520005679188741189994561042629799083398858301737565402343349488416667490213082652501773596078870577306896123990149310820000004976949213374537350146820394910969884338816904048319968044624712398338783791267318624085766908396074859754566918034380603326363504478888539237487415982302788007975294941473545161826629646854678213050299211675864042596946785617924715424850528448788306553332839971229531974988925703202065807739209371455143023297601747119037681329004157356808833197211780421161136475528532972753584384153713630887250568075576653382395010706108618527401387299283974239839329749265724164125274579556752456268027142284129376203142513674800532740334871303430867013080295226745896020405861745467938780440405818496616836680379242936319280163044579609633588065217496981724388042516843222151779751853730548174652168651361544115246175695099571646268912298533257751698572886300012761553987389687133914462566290578166422641957904825126550108038530495074547799504065053464993984699258213498527545671831092564665581262935142240583029064170923845039049814925432596384499497729312393670705486184101371832029317031236548907468077502562494865292731188711165518911225502128108281916487668301115414336919239707851406932957288413477715461454907865028756244558205837036138496008138576673485832857881256555874806205366401636330196518338086912159800525159463753988476543811606252063352958417521752648048796684068075226651698563886634437681689769419322729890147655303197859323692927898841307497948261952307997625813742626718395978241194451869546326307815954216596083011673664844625450114591137616644319673402350807637093836881292977401399168457127424787049280374428158804310005080279417233426819024500078017231694489329943028309030257132918267573927309139218857043306691297349151555403709540551280974624952662913038449841590069240818352422707580609065528428115396130822470169466124829391505817746585881403999888504670316967472171251074323040924211070903372964966329869291697717131261102573275275262557084109001661295148284256607009435087716883443348252150850519529055726741847775145959872765411065602440832286961579270090884561516742755369107670846478994791657131868178620020319555175025728176320310937188681991386203006894242746713416392133234187183115459980546085913909997157017511296010420421249499699014649291847973770920096320639581288794678751591028530934169834036837017180599003106415018047574223678102298928848372591095457528606667702545868931698953003617666674414929322427521132190041551291910307197057732672613306517757838615123070936283995233103837467538180796497305507387600825713613957693052150305783871589114181774652802173318005433590964328414425020449057451564068917055816945270053355844896085007884227518627144882580071761865601393011663652238556203290274545725917401048927094793718205358922130804472684082334234018856530759441088534279221110897044008763264077249673834084483422322924608395885879424773471980734415116183868106444933402648161846900264657901182591684717872972080965732517921627648124084213408653580664714999036476209897431460290604285626029188721953635712784673974259434916610477936924135968829977816642337898229421027187674096054444075966010209074599184314611134705568187632448828039628343274267219040985842781949123947507332756864369081819614669548957207037936023796704829289917733759589809994809625472697640949304368641583103049711524883074973974062201872461298268802767358190145311716164796938921237623395315718331722474356800425619768885057288744735653427654007218079285732432275701726852552142338956306164041681050849291016552902258649166488145186333241134116875537946783481133982863650207779749694786037988191378616497087145268369651970898364413805063253949911248485761371298113711731437515764322918258427352357373100349297123203462108537189563524052494750670396448874404914806756818017459416372859578110281433665826296192732805066202018334769605632631679554651215114495092633848149582354784793688374604516996028441153939543498046173391280157222489652968111618598366209481810638973829218598864641584875294903571726875871671446333827040102682899214223266209226523599443931167064476560135521608364019633355362339615782633221802928418838299582110411414151081296420132650184941001336685724476872458452897812680698349797841703147410362910170874800827199624677288020526434829919796550603356983969470697059576915943252851478553483828570753118149668962797722151162444784313900896372539068178968379300087581086861301607870452350612622448241537075164624805637924351781350072889708663862900545012294600727086206921496302496600424032822499350872047825089494044561461981158437513287305750515560209849995749555263474449743054903003078300625866245530748281221420665736830668535731980011405415384897474862969062241516189336972212755566381010603778287374454163108094682161760983007039739835510180941959224972292707763941013238347138205384407050910437262012870103772847818218330478209590313634453305560784196003278333891217229161994459041390494882883303478692327431357670256561884314820129836144389724077592359171251770914729744020132108373332277426321424396529644736264849581131709643936183865110743675033587067061163979121865502481923041295891243730503195468680883196589995115565653004328285866150494365750098952859065780169379699750490214986644153719493978530255132522351611682353360009440260524527410938863100411246179380653384645980775421002464257061761922633601645491547337919781669338668092531340925593260069037749295828560645338378623414663785646628814200060005607893685812330129072179546439898718110033449256436573451553557061906835163792359050106768320111352643225818462739961298312732590480139510492011537942089401509559543280389174614246288718034506599283579704533765126185495259329789424874547019621849771748479493578826142760682847244284308194983368416930082541844634376489017183050555578771322936405050605580578705819112891238233421654758431635927752000695977447226679909714998335775758302244627873113432311849097433383425621565832107070471576486466850203537989021969515979609575348159151753467559157111404205585237140330734242232460920317877476193268997105650422304002495377513083365361705115277046558279521070872152977474515220176068771572091650581341890888595635050072521989436065896480750663575944334760434309130355872219698480095425503038909468086264833081299482077378365508624873001766061274885246874553505459733383642759416518763734460817300017502873781740907489095272309776859910461738754510425862268541105577495148390940348152049571404402802476934329926055528189876739344733218096442447695767719044623106365768357998524003647970027060845025828136828510174239751073058025633809287970039819005058738940070243704201539592038340584756443412728704993145088753475851369764482533468069148316194362218440164161985409977348529990370443350493891554228609138553869508165765758368716053331467498394786385467170804429964514065953207070218000385829826630340409792300707759111044049820802762358215888316490853575722564936650842061977866289590115766328296620450692715589384796529354916125518443901764485939439006678628352236386722187340110107146417228942945101350498532686937755070512526964701128423149933389423894777009450049087382922382047142214809951122266970969420086279978693601087876358331237747603887640033756280355346360769924035081965686746629995830639481269689491399537208357189110815688840199503400378336043974033920889192332930454014694707076568667929784623380346083786388386339809693053331784112119902448136010880951949884506006824585336670462149494792171235169268720792827147084932995442582070987840285391140558058908188369439327915460173013098183046834487300383219133801439050551372226269064251195654191373606587498667635185814367191324665287764089136240504289534463252222700088464881049971565244296713661797072019128216520757086651947503393571451247177514955071355995387804601950262714872370336692516809246493334276870453564314064622752459323769428491991421218982713036503627606093078820035760666018160135182146134924187509876564573782949265469577104052077047019311945592078968117702397641175158484545744833422003578591082770455310428133902245387742589670144586860529312672908626462685897256896339050010138389969786222295131532089733391568833385431417712329422484282151960216552167721729189874012316275042425878223446594481183648989459227407690618821208005905746148105457196265647598665317484764298134027435599666907817122141008501917237469568988850966285090018405334839696333457088244957669206927561838156252982658519818029947963927716286192046246573790850916147920305008296253681067953186743747456811285643684843091747310281304303315046382445613268778267699961953266915990779088736228362354585790713245019220503973196668485940629334472281387759090093686565913818195478649402600630784096632806348308832222817533886748748794639838862722816128286134305755771557819296157002703348749506989087253618527117013315172162094712219035443403876474995087944104691267918901279201292020273841229158885874840583700466482734593535821418932403483247166234989235407593225218662750868423255070889995878834025042635093652074196798627062689563404190819911615912121185147650068030180870127871541108413280210867949184923996330188917768933287447552629054499027428350241325845630515622702610992711839878948325808336225704566309979655923196081118552108753512822128472642892311010719954952651297231937231570291590355700817123011367827715546691653823179042086090752829912018826503098313597445525835108100618238635083120979822881430404928017051399248458003014029910612175240989408559092272559286958916758996375998171073919589461537637447633141650100080077851082640083204730185605880280489593872708979100159755064263196458189255350220791505953530561607759322175776394055616670499079769503440775641312110193852956946158116754894015316619129376465314922585418004919966184332462341995364281753198737974238903685411196711894589492901480781055670390852870524323836763487424787373945309832177797745276736808067539148690758677065531169366471469947416736559166235553650556665873198467318115293383119971353317365266211009099477313026779651544348688470827245341781070065087138370979723618250160097515012285572725227421915786669472543805610940764423942937341812835845040277581219371714931307348130689998213031194644240437048211887025264468733171755706948597229893783375007911465731542160850026799788297712108998817483057977725618613048470441667016620675576894084169377643300914848971893522761110633251895358367358893232635834308766714464844326377632624122279633427039341871225929653029086740967095177191233888163522700650055362534033021355573736052370919881341970876033584199064175818250036580710784855706633544713775434304669652330732398728272531100593696273714504495284477223585185361291133879988214053940910953165459536767347115579983973960248229857646052043517635127839943974152148167356087155042638503264985506873534670897661419308822266386030006468603306484564218772261485838538664849797968560718518799493755843647277468109785770844567545294640761317169136074816239823047022986425335874225550486792274968113214432261689413756885987672362959891563171318540457631237497259009099786282286777432045258981451435786290596881103369280362433085391861721253748208724871594982095443703647365133084981115369781009499910177456667379758160290615214555972568177993546326026966577563144170344728505885836577387557770286407489324526783335042758153385914772957434375427972358686071830777167154122996293750320342829365346602920009545674011572500579224133844212775929966278899793271038825424784735477495036582580782857550565530005299574720250823076651398621733509542126988548535373289056095737198855310204827287581679567836206798875730817278192879355585063609161713595549108878247360827656510708243084357885256920545370163885112702146090641635178103174654740666128890718513035924524532612466067761871272537024126542809876119661673169589071992885248517530223489605880103394253065713401588430967193321942613638459830543969412229442247804593413126343083100601489851978427223913632744499103979019410796658202308415727702591308559996243163454551097476259415621576724873918009745283552287904196626558381840435069235011548474815265745645845436806812504600724663687267384289292656167249642364974759908315071136342556576012122707313067586104243705444605402999344005527620308754963894377744952765695959142540440246814511311866633203184122553135527393078923102078228238538853042591373684466499811226258192797672387841300507765791081878603261526287920515653144708519345714669954910366505858168101722559603005733105311199841966433865613418927143964374943404647935042258113770970059523472772098639385641801347190923801980328922831427451006461754198695516007909062672986906843098362089600853563783154621885075761247614475467190561179362855096109424453011172282457435930652156317187592729289138960367152984071568985560699627261012942290484170134648560742311684605894182995831102887066881505026685595063424827548874433801568196603367546653671696179538317244843413906486935749329180231436809894196183234687774526868013180494977500044777420137581593738221367810764726114108446696739090050073148589785605021374671623331345866301330886687342013019933437203827679518808227493214390261537020804403214598579660573770110314659463017557730190644300520032070300876303468549332987879681438939230259044254833552429404272571005197906698402436450741742683804693106495237903242899821069775511614257170790941224677253690901004403983678776403870198691119036906109716707364595230907597043917286940513293980573720702533711206856015723596654131715228360195114589145956472923725340279075981595511983262765085266927665537872413947811292197738493106842650668395667006479455579105951588947747875715485279888189670321570405360353419997094811123541963833474612896009995960092387141631380643722382816892111065951713222835262976936044923903428512481952352778815934303148368718373796815906750602364429876416513031336066816574824945621850409613260906833258272762359926155477386407203196877084506578755109619208487278114896372313384366889556137599712930620900461009252453738483096050870947610227636663243057760263182450044685108893591231553525518935282082748137784888801514278119336899048972975194253506754547887500389332852968548784890717256679619262037032769935711155921174644322055268782029023075022906183190177417732657708111425267777712534767177504003963243630352714543576582493574559297722868193965803793277387411261100730904784229223060786507280495689625201186362933708572617379570588607920456889568087740980901953291212460132160445880093457824012801078577405649183471706814134398428656435429894603104294615996620791624090149878352448898364004785537296370416372152095802146084900171799877675212365071149909691633432848967227240966297185101800673092345107783967434139295071765503175704639908354981782272050210344118900259896989406571801284098792672485073930253819351340624072395079538383771218592995823443752742237924944659481001754632151146716173623349109821048770914601783752794526659577888111971486723998378100369358499191550229256206912724099866490188145599861484966485472309964802431839592105903145191748570855080602287218462905754954495732276648777021608928085668789365160773042771754745288642557926350378443426529492165882859431396694094423421609340816563378798551977190688271299611691498342010306088787397380035993718689450729530169066488114418500121481343228893256739786058014128532883793571326254470173197157851328921878819919421560303949447177000274738171903610557246396431198923067762397450911419657853626676277451680299504564578739539967885290945185870428564600896159930873076148976578285420901574911766126539174635707302937810726080984060634941180218918307090941700428013518737808031464198751923990626895044939134101761315923261790246829078217174083199792007205508680222054697279173693044702010147616634852159965651117853244448225652771618450901689620917812991731719187048471573717477999884671439971780582546098806446561759680108510772426513902107360204596196703238619199214522840241426502976267761700525613949612098670153477825387305946813128495000582125091316585968795832056528348127951850542131047320290871421181512338891734894764970432865329207374382972655381691536820340402168780370866199217417325826176902395969457135549944120020310712928386663973777744369193572219013246658124669281699024851009143519074746440486948352264303821326626256787695905733142306920671131864867127337406767097397456127725328011433764779345131227252890786983716001045502404247042397312313268682879542024209574318226792916917458547515146598599307631704379366262748782031195714977953757385718965392911917482404133511054961605434448821641301041389191077624586628592819772671118837455202533435234603206190209127344613380176923623478712757929533794581537752585415260914714926613487654757329296098326632879627123592464084156408521197250168635980278624363422216991114914009898830551037633179593007796219692432424157233992407179008608435207977612509683300213421478822874570960413787091241483552607868089771624456685353496762269033646095046238578150199475403540773608225898116229808002720177391287277150978843200481975875342206064587809397719418927391307291092912964588446846058756882258961668116206541548803067037575856044616133359966706257056105754674816254025381832253777772276675404275239698239223889405236040418810102547361914545414539051216172675051275661040040985242003130343315292315026314171161913103671145692566228550785041992305850759296437202381807340308322009758510863195322650197749430676076321977122522585198511357258389072933567824803861722670138820790844608518220289812849072102761733167261613056338672889881120663171967310834250275892940496421894271460423609030664765270755118233116288670974779557701601915454298360072002644446550312347497858617974893858525148437101400673687693668330801643452633314319231520903259366646529965808234296883715048021807038947533331082174514539067260255467041940204879166287034907819911348055771365120203542119858351246657051670970646286451215122199229776507466514401535307353660533564058109836180906313770788978692190489086950358818724026881686658371991657501037996682247446094267936858893505302133748167812715214210244528369134816224738858263407101074588932494274402372260879568479658830679315332505061406051714238998235171864575841230659854267771184328943343457373558855742590860595462560188400018338737996784714782818235686448991132492705713576780771916868502494150130771844375224749868762970584892396729390358980991443947829834132897626745558287730765066065149593098870903284337212131546642262595615192230689181136773454498831033121045710565041005951543250594592163683707462025207566786608787505639088719036754761885718080508383835690734998643004465618457728151401945691877904303985921127782485608120689896531283734224964560728476667102321433639230568204444644040247674196104063078576173896810289160341660817967083927046172487895951754146124833807289626385910021167257838381151200473747260635183951725250753263636434921042574917579153310171079583657476539985700166690281705320452816764130096796358725055406834943972476498001587866940182182279876522718856027067673129175491225496120846237259978386829519993055087863318626673443376329840504731165310443020106533464983088450210524797882167646240307865918445692016098922198723452461702962920985623120686670683846372203923652446520072601882061494467401062937740931436938073162047959277042881801331440097288467826937112572114487562976115222091409719944304777561425913528771692460006059648105264667183138457410813603968708787005020595467024822411980944213433343123686603551367871625435146500491402546710900510648599904835177135626943224690463606311061710219727287131518124550090512387938489584416999738181284696276821877813670558560232441399572162656331202941138727743930279773545981541377316130330272051093449704564851528411444031341499321958867319799792003115777308787936449866360539164626578699529984250663851436885961342253257634526923087427382811364190484147343437638908897170726446511081474579256930751579644322350047121475701291333949965457320864570114856977303904017956517288727829769878699779763345356890435461013717403849863028535562021475759259184108678335904420820558622424535983183146117806835597816492347217704748599480943921452258845701452808537574084138543242101305795365345918797986312722251907850563780432970377564507159768342660550401315306691613427385505484368762560868414893278243531541474988708614265240456965770141772811087178025353580082869311383473203913061082831101066664500201203603016495360797432770999405266749411246465616322427873211123632281985403606254717760884609686616452748561460537627782999524665389028334125055632401704352407767095991120212519455981094307686419537654252248668062893334295373477779571732579977083311034248820951950731663710111919269048706865408661609840640788536101720697304998728985128903747200615540222272403755725001812459063376359518846541819841695884960783911912671870071014827613882494858002741953892339410263920640727147699160695270774606980025652200392469333877443525758367168661287550171586825801968790920713694617723715414174983249918333521468717864635417785656079927335097848962557439764528333163511256016651413616941560680344073986641782274819149512107811512070152230620674507627690287848911708779819924795363732783009530697742562858725787595818320095294792046528297017419537917847290070958462821636854247230045249199664633752325676356535984914826080580941924875557816309918049501526263224629764273420684410285232935776939658007740441841740356326194104765372219570446931260816594651321426993177827542254961515319255056866228502001452957106335377945220238901850668737703274955971391295718445422406426123668757840860884825394902976051976006517211999412956636556038178172337154878177083824222407265977516210561023004877344442292281728152794710828252681231753414264983788460001203711961539310906150466472070656590115686108406275902662910445848948562807920189844853230237925461253332221674547809688101703878873557837668966035608637197611676041514443222301551603755183073026645701819899913010562880219330182324555842688182731417970462136720985813015430515229054300875797905741616155640771281662063218847601688725803296569167820338396410503501438430007930380910049222346677197537678421943035659673097556327213515051435641714543343874624237847218735624313803024510012169498462135815754462567468122027288691877304448447657438922058295803963070130416552246068869068075079183094815164069287140192313427016747093078501374270329509544148966869111954541253839872863937427196210646054590239189424202628346281150670424900767626470291517653541952108085662041676489477375483933353281127995052673034614991036648553078022635065372130354408494950577907288661021131781054409025745012819873346525517456121984830741154991090644985673529722599196025284536358427947351251835894591794367114181749481630935919828113480838258238878771777352985045776108639223979702812003749639032635961656054607560507275462683166637732099961317911002051428996816602119524112306750916831099939243887758800683784305325260716570222090136193292491761720334560293121647961665185685699408141324705274031475416772493537754726796998304975081385729231500504284381097781168957690148082307450936783322940128519518143126881021567802251100443206393229953450483281479513068056396835521956157560581985567101150098666529394573830752681685935305956411401408295698892290043597303869168151650641114229559035587472966817096356694664237795790260774349870134711675830350968255556544654521374811290369591050598190196307898680532859032591547831237195085511066607595236082690142360988000214306692650844774123553740391061953163059254622690761983402919100192845816714471165767880547967565003586710830255691453202813916848997422801499822945193766753050982710769624526867550465253367687279326119642164098627586157803785068545581838155250189918517710962365652620386654583266347720371855128537198375645139369947543618151564893454913041623614709134537407862382095410533383940892459630886661283071456427601224169341226206976869940869297973545120792344287478586140094964759875668615402499076894060370526367976026055465812550976618269810706588408731797858300757038142960377313535821784163475096441445947480206509844446098927752071316457094054580041267545290689331159288829029268110803078253497542346732278745196018714696551081475629630365130951917144813843835275071554023982766909241282433884908716349999989046954373491274273428151808280785985574535878228906270560937385473299284971683514508506481592469055088062258966914642936619800839421949637445572209955866805899030203068326890577035877707976542588041996641677343078322881773979652310118054982014937265223031306360035344483196368266333515413577215259732464211120175261308703147383530559385032957038216438558000605870899238562941454622428527116374402717951300199842354976648208825979549631646624516231527807382828090095675715349499240931284337027779877124653358231816154404980415752427758376110536797807658232288419678356592032939761022999276090396106187030103110037329756410710859710870576190931620356379135696656099703968767425125374939311961615793374524546514635069901233520877165919436390865827414094215954011613037891180732632641153281449735968250994333558974506006086064447484912807549552540618797250602567164977387780643978241628691692612735125465471033648676454705319738187398893484193084146264689476148067576126481027747944161624894830507432142423340288494478874788276792986555035519360435709095949956291477295765136153798188271799483721840049627087203248599389303852315038184300313316055987967144283391045073284511976754824484832642889498592241316318947020511305865126003682441482924267167328721662033006886995149176193142533114211664808244199512920801299354136398461898532270828584815516530395179290089610274823508287655766246515225741038504330486572231881620803373085096126662779619777913700671711425128816786710109174587897550438665795990043305663693749983317710589104381545979829030260972925062718067651631359255736630569574386229341570216658766668685494755473961961870709666319229237198940076261265660778503916922323024079910141496077352604414374543285096575698714254611453128003391661519994725680464217543774627725657747103988318645842423059765979403650903567945499800888572827861981998954289800320673123332147870514005959734515498814209213120722258977368644244365470700875309392969738266259306064682905369740185492723466939725897979106635005335770147306531764003915600586682883012212532893506982705659241915058301416632778005886288928428459909583886602395091885028047224623952156125508982954042620399422873458902629177665009445834900933051605503088446515209792234410915310503025496169845731008818504464374542269537860634654723953539539414682326858600637664860836303112478292600371917537885375479322362534029062348541537614677896989849014799659821238652151706196052686393801953680983672069995171186379948396180096084475636329170614362035888164259231159936373541464610559302949588790006845582936168015833656884326087586648689775217013931232579242014430102806933719362267592447547496561415773627372140563297282303628468695825653360760487277515636188721862408921508363931998089447930549534824740038630698686228507760504734898225503315287667039202898634439773065265781500128309576065627350925687208176574451180699343792896860600701362157400549847983017395251641357773410428015340918786974412039021406658817827937821883279442690459363605593600353496370538909325182776903451982875456743426399944510499526460838254015368202003164871180161528662920006997959757081044204219118525929796437239154029713273082239126943672210521644848404215742641251520757487340585920489839090827629943309222276432933562423613955079769831875730165365441798195139997095155813544071704589030476054257390008726596724444752123892498542672312391898025368170278845879506577849415576902906629078935423939448654614812605897515511929472429584887243784933096126751810090201101223288201390843755194218800859817516660076042720288756033848982225451418190694141159608630725140136039491379759769045943308612164284156001658071228052404664058010989292322060863346507575519824273504799333787931300916323418329978164062101054055479140021004206212775590441951696971694753923936229204940433192784501996129029812112980861368320818162913416411680122239482349084700786368814979200736270470891863227437673826907176447657035231770675555914294157951467624627515697464074266056400978625398642982996974145363836942054017694721157872473305547534943090009175630726544678216324756815560343479633058655575716014578421858384246196136496933299620052706868757790008592172856830604157682765459016100663231384100722159035260427042886338516859246307834265623763911269768900900631441811498980632588167971745091312296936849199241012954770175156603092622319153129181585052146973050486515271182289959424464164084141034548132286647801787601499884084447826987661457572446977396751014540294992050525109294089224412391197538886829524369106381075006116900881496144480486406703309256269724602793388570315965227117113584395479034356477548441948735768703792325654993894126893229778746110932006747304362817219639908730268319189283589692469233843535373540819959329700882280299787546446430628223988922760441282988464440519165702560119478835852418105581937275826998321534621123879321233853899347162044283927492379747245853486482601577729912423955701343486952799084348946798632963258944331293123309099363460959205498464840925536584680164519800640376683415554751220588009433215189111462439802491890702188833792723579290809636735026348603638138841484186774494770355201002454673917199395563190221306093237623530542090818218834396286641849552412386768679708723449001528218195089781996940116256316788159468003597525580378339157641158531931452784770339511153382758330306614173126204864934514592029135419825489508144268539541086691493075586461608050859172269076821284799463326047427029308095293341595784415098059385719627047886764186019880391787620389066845595859199665953075403119168555966538736218433451552267896591219944670336260304855504545097769245325295885990576147139653995287615627455178859226825372684438193261346389213138052927062487800787391647543381519465972873033075231075581966824153490546133736618853676347080628989243047407234584816054019238547094057466569790301375965597846356117014705394099056937807652122616453617319935702912760539120539091014319291531433403318704529803799932571175848785233395430062453035488548800939481705873263651547523779152402799381064468427499542957482549854512648818002569545151224230543958379031305437615515659389094027592879163972771444884338237130895482869453131605970761790775300952429997018418689049658776881713527652002969438701280728846641551882207439989911364641070915706071624179803515893204063082352435394297801901915736013952143164090854323887461727473872860089977535747612939797865408382734695561660500687615582696414506127060453660704444037426685648117540687629834780205952530255577028675997912382958157897148674072722611408153740492215984384824129351796308912266546348709299497185374318322969976695133722031779945584912273115971839642884015538067489180281823530849543072058459906380284036195143238599305766713360354260786132497702181461349024178426977739054938695770696156723557139267227716452885557051081064916726845835457368494907203440493410003431208172452334422546692198390878733734871168882204967228730661336979838922826329099010818508577874348711857936518001741172478421328109835081518846280404343855786370441526381196628907994378942215203995111526865098527555806470446853525715034473296342611435791154813756088299152381891481666795216504518041919800789460947564722698000087118327250077996326301527287514598544673761595848191996432554479125834441488458850260929726454378819843575545723122604808295360009887339104370239261982798875080144820794662599107726957438925857284564430566933888611877251076758321400060052191554616031577314648112948204716834876901994861331458459589980267239009555113299091903687101970093630366736192951188927730318638962862496312445290717683416733653509111921329922473651004980117758191714666632586725734882962798568840599539522440922328084952160115713818818526230663063137703081982152603916182408282802201720233270964383942938467228978621372926244933282259148262790475564776217808207217172747617307716846335216915302480624773349554496512854463372399215573696274588015829842790073593532829520376610783978316563139422798093786115887458738959570056399177339252502037786044736257696770013658807483940638627231402971246375110371160090708760600613012246711115268443294553255836773888118399157510589094785756922108950681887652621504817052181149122688290322597313740732791646406282196221059673817194165298452781906471378236094362676559111818443370353969516596901500416332053859752213777467810860970590398676987042896407057426093739834460419347329085929256809880051283386706635161404993529457437749211804631908472178550773730264327812012515332136020640509674797313915652551534882588639986025104524637522190520830974170990521974846196538333114419848770621075710497263689581211797197584163997217502011161102724773355645107733088119860965152062078091395442263328127601978943659165091641535316695134140166304449124128222181437849969889366648120254025438041828127477783835576813235918204502719587323702650174312622778669921151974693637421472539722380310796789614554879189000204492572538971756885749215856507560752934255994721314164441421483330361045553262507554749072015148353687911957805699129787081746122736273860315195924801033429097387037077990098993266600927871136578324889064476782140220654634022567496337998829741038851098638210156503769508184774530172066734538283270744183424966456291599402921393513773626845947697557799124803014761112407787763635525742625422008872732669795004158058397643904315930200745117474794797868922523265237806694634036750836142704497305445742467534097358033935323625714419213445354028783924978061533835263481716107051681036887448087385223745594299618112660288292855525493088183377304992773853968205971933005217248650288232323715198364714226261399780279935729110377306617707283809766097233713740842536706857755342326748607918630851140476445378090503807548387922066808208209921615522320710927898396935890508694366329621267828236009904922359230482317240453504915489286565042689818729518014124923219439446706100268241897111864475525338142214795644350709932808606629655502645986442037982374629317856706334615352317001878266647526600110449518701193133197434782193599120685644259393166680833634651349909946788963388096195034521693847352358674023672474173363322508861608126329908457811409227680662381690841404536976686593923828940868108789083665368755371463900327058945048744248633889187099073376511287029424669930546733421868932456356066271628900424326972034029558560180358730214508908574054194025610161432137299343389266382111320596275900421089787674917459903031931919276132900211637814461499124704045594907243209138578250905718652508275510534312677742159830874951677580166404807024094027986518569345056544156774798339107868811719003145960509776263821904075978533325915775782116667907100235635319054023000473625595176292330095899054906091593531938886585203010898515196348835909062079925985804618886492366882059215958454143589078025858816533126995555521494873050138571996030615536188005944469863979943827565149263376382118995817894353081987227012938659048165126331948966409278374195605361759391538710662307610006848755719199462259776211574613383922898764912380606112017803427726188623503423349861627841246878577012987331711765473989884884710232979065929162261763457755609598599905785573951629192348750090890617804011436607800914457424598982126398979847446514979394629284586602666770373018232300668590706112995029659614769177300223466786531405613486888245091282319885532768673188666950346209318415808695662977970439411040653161776590727117055178397809146505780690396767781937563511372562960184498563330759713223843598741054232120425314119594314540866352360144015542587050822604540280118531699176716890342302119033297639054620484596092965395067822352515554969957223302796978767732946049177482595091865804113785652310626140745757821513151861702667322437307746045961393742583771534567506177342108012824819194924749765644404665470602626331336526553817053227394599821504053225287291401680860582563419270796773705780443758732548816382786583823918249247835383164549683043112504093085160493995446106264953551248871927750947519700086958343363775639237833148815327421229264392005476401974377472848920177031087505947737386310521145742853852139804291457753868548171329968292663985010458481198092014877142779423688208975956613711750449135238206175591163051763386491429486768600457157564214311870705304880896492312668586673864645339372603099010188840463528031681389045940789771762861157019593785885069000950688280603284339337244048548192148881947998288263010490470266071004825204792451266897730398647831430594352911723167642450841796782100258537939846563108751647853991402996029508496461297109656296545319009768388690287240143413116601607419918426592003846437903472390505638436420690181409927851077775467561174854939103815280014787378248876081679505680272050741784612784948752181682153437833441015626599484386033406574451524695916679177174789298137925934105835263668185765036148807574629122376099446228502728954958802007232251424027477833677123751475275788171349394062158597193857264970954292839206799105324626816679059531973881637554459184809543033307509889941838187925217919261848677568141635039252995889230747293242812193418601840287142630288211827893327487392245164378137402786489263557432115086045328526754727867751798910684717512111984329660522113035651342693024354009315602682906962651152425246489281894334805427449999141072412329593305427272744841753089997106391708605224487496283108555567943838650103000730461917698129029441452457567183463120627416940603330192501087607253753736641196231395623139546907723765434559091281519633724319142348030335043345596018979098415646679296578918254386197036456029756300761694060961748279901733550371383186034167442619412825267361311894297975907034987784489174487375693625746192798227660557950668988688540957225947527732744624504941707833414913223086232472103403940937967768429809658992901621910502578084158644344975093517415351679901118873312904613007262505110395179652124314536838938691559390323170521053810992961351113392390251517410882936085391458759738735353883945609071830670677243046046282812658441028580183976590202748305350810623345205515347831364036512792842143416493544022400619722783048890293191602967489582240795576057681169803594367511761428042627618921176634373512464338216650130260689872661299841014799739379677885256930102145683630297599283641535591567693887828388227729422538413134031195418988676532527247502247523444707565394119783442029488067952783738333006832403741489230611222580006531650562984485220437377782882263809175142573471057588044001655900998624237372090506125371516684648439676030301987675061214779112031706207886996644281802746170288955598975243927777018181247938167098994977328546339166134768948310915998103758973770881565790355090997559474016296965438930171605528076503628552139003429875220981997444548852875142304715224964686920879474412160918609039609203867654484102369929688136994655806495775128581857958161480731190189491427630690368820364311856877828926692992579425685086783769736931310775747306955475037165107166551519535308261307922290530080445274456600591634436539760368618051499662422123915831728963229232537246840322627195820820784789428829192080511337067309835204432438434013874838159110880405807794289465453439536298540622872494962408259666070563634127979390504905180848151676600447915937526808026369707167533629066580184039668438978248500650847316243861727098630265877140468962553245982566868776422969465474041115995092328583311632318953004689967966476006725443169829541224093830585613217839925163212614826334708188998883156810727603972737622954135217987794019308486114676329321308780680474921668330574574099356249588829466549723229057783575592600550147663847364410955634221859766438372758807431259428865643749706787147366759874498165323426595441598276149172507289746696469329057326681574907326752447561688199970016872406130954215776848391765758984226868933065616917071410278667980050672513699303448755525762206590963361562418004810265105468060106329456434414893442524165152752734033368312324091573598743728261315774042860546486282431259916939404547236685614542696063966700707234024037840383506259560756563042880207498939447352125172121933576364154550457094778070031596048397620997935296920457495880542567547044321090055215812011585330773191558183418371285134548449405193643083154788946125666811222917098563005249425644725466510979946883171625480195814294183157242896210122730127718914496621046338447568403788347234742325388823980441069748088128558328968199561460800915127039604746436538878787602753230984594910990944744114903235172596603875452409897894951622766622693726564537302525543662793237450620130674607748523575655551230186489880562744146367270266817212354465718458089686670858213716648255472381350899348232118403353814625123470155219800390131067842914619645421687568316775499141576687546969515617518026617937841560161038182717787445461327025622720991058267564814204875895527996531611434501077104450870085553073699996582046210582338879756415895256102672032059673381943576045741116828788477023497038360400080293538672335068022892106939092654525852862862359405224521378482292003090564649700419444341942211623639026869874319311529510575509575731296011697691669586243734212322002231293217123967141863726722702811125353001470955819840498782015594935888425965887449299464493420894146459049836363577944192901268634042611674706606030432227844540395353046275140630241000096475440247173381711628591874015165246677006481720497376941158467216636420971146694667676985899877267417519790562221280293750198690343576546306433975989000148230323622959692807653874642331451657034369533575003290336628595619626540693492016745865678987107048101450019912679322043449713243898105530222475831628001596630919295619724394644287441309207954151860669277133396472436608845689073292274067537877587402181549692363423397226137753956000452438899198414154380617621887626279966920490203186998428573725186315264988319542102056062230362782245279290617241529966132886737748029062123362264933024284443881017934935669475699170692302762193283794803714912330426617416259609558618755804423171180049726482895310543980207474427933923681335150126544911824422087938190938522867589647670175848093316746289462923677569899564933063305560345766254918706246073407015090621919087194098497843559816886212225614922764595496352125808808773884979562619729039437531957288291872974932185462023118560845531876614898941715538798760094557817877436631812091108735117718133599436172392037744980719244383737841883300394808611777064602050453443521370023820287868080802517931093376488494916345531645007429331040243827357604505534252135314326529736393908066578594810237053645595264191808644433436692313447964438771700963288825301936650739369747155575035353497451150911678464390399746064672255173277593304754216497194224920316395647466541329320612650277476513873278887711057693049563322371009272082456316841145408787419077098719923626073268883079994166066945757012305506130634499635748058891506714753755738885036605706582226862709089565336410008357540635299167772006743928963071735588061672383104033858989002246935633050811392395031734252735270030152902224173624155955164953220190546347886315201380936673502285372484092487145563257509149003774087569670281927009373726427489636710930288401802746390383026327438979086889284894738547276430877283640165628939715771860831196691518562197104194086649414680915993758960838232373741661598676841446322067947310077175394160029531172873373317681851960571785729532762778524541800198230891803573961359615005264254797835811233244655675170746774389812285091802580373229497717594578097265503034418526942794686620025033578289911219004335519216229511497763386219558783960378594155176473089445660858089095721967430172516426715028168342582939032419480111369888877821326712917004834744181033666550763613491864557684228284928435990548789350202144392297457438862053350510074102211869274069932091964355439059995945500024405332408527645784682582324224824353481823675075193163060882040795091522814172427767713519065653047204413886961555361234819987656644318646102086166294066048290674401510352128424024035226989062616758756532921835270848979963348510102271027999325515932071525934019586307804435797005579128361849781199261897428854361050362473859251271427243927335563039097209105752177785298129739518497360430877868603016971064950854483166581113426403148840622852803357096506141581848302641809162818735052906537326049540487753586652155921683739600774569810741021098549639576291226384902489915772222275967558739993667038712996090629618859648527186223638477364720092610052376558561009623213043555967361306641517366881116021709611565446329022634822869309120137024182893506902031098316815694905681597263370452784502082213515853196771684089027392160569313796992669388777703525364855333295906361522727917081428944139997049510572176824268315341897432194959576403338160777175707438690708788348162328501017294695466340833731780297210823446575968534282141446211640825019107381220016761558235983153326570787573779051482777511910156898648653016513259169355174730635927051061653705086524784449219893079287696563531430901767634462312226795800881285166103960488412566600883358298537968556996686606027520666323028913085237225462073329530387115086415459794377820130822372290332910101806033180959362214977973397387190357417518910186476730155356138412519743712578637042044410661188709669579049836481207720979952649650374152819334460047876618457667014502791845713071871297058009369927654907923056126159450298812027945488555735062267943212319337375801637237765106256971311385278313939078596914505342793980678640743482105157878479967363900532367435487084251087016483208278451623692100213461636492298982888835536755157582464885769616739802200261935712211060878016311015847702337234110217828066456964587781353619156726845989113267969123086872344192217041385627367414373905587339280080404016440302516296253766750083804620746561667946929116433428634436955402189323256690071952856249128387927942518831780800208184961646396315998309725937577276147746937215328583719012299910797690842716325838807544201322824504899869935169133526604563764057943827982060459190666817772182126952630634017758619752964424565728125963813728932530304269482976292333574663585217001488081431098757926721249246346968068565639914173525268474942433824355638014381831717542289802848360750080320204598936480186167485508041956203469965838046279826593711413657557727828230257803513968569315418995740359571820949047888437658072626287382740712264214180602865010672646234872478906262977165616069137003830137606970946306207792534391807606362958331168137987417874836140543704551938817766090713253805074664894673929512834187215017857068233661936066222008697029485492716680282059606938360311115962745294608349254140086694178948965108514247848599994594281473621278352491850674550398660497585361467908797573136947795729158161991929675281109178792532923410401547459714583426348618226305427864657217570868956433091034289851269929976880040883850381263469222777118771867206220515712834948051887565118120298145866295589061807078568020450319523953320551392705370052140806979254314485602774046678789167767995626250133457503572115464482494615602643503574054891270469073597604814521202313183196886430279571990628981560232791220466717231423425859643833283977940990119978107899004413868346526963476092805967602877508002132015269566585850791049101860755786087104479029953338823430354071412964820931119083225779758696924053922908110935645529522929109792765418382803773595360317889506183073876345301139698015562856394549575205932891005715281923261505609644249787726926113349723440234875695808661558579048401078181806420015140226352985706743638101491544245706483374804031916774745342575553376187803032055223693100039289568048018480927989742778369812716558851197507980037403209308541521509638781904871097297982720919369119057030901917443160350147278250952587358675552192977343095406677779869918842393829735404720039266202658680008326090402967258772537196455333350856939986153245395314553173200041059047259252187273212466189319870664935747531481878531000956526852650740567193377625035958498949690792549669654582248310841404746228191881847232209100699276222064870481919855442049206699678042561336703744733143784508000307410614358946783237724267275506735589310807457675338434378838172014599669880856976169920791577755628897693601233840408513268237541663297553747588173780257328381074225857127568154449146929341314406395974072550923136527206118120779192208605936734442231048134529487393815599413875592995559986071481458812804607010915049031420278366793292794296074094762731914168514648052164898671578205646717884307879805120922968830589470805506458747843219471465316624886027139167107326310400099184332814187569382095784814531726944907034041464603143170028207049195165172118627795680653349895000551283640128815812727447618364228257049349836379019714230771024405243135791255168912144719532271164675558212494978723451199390524344102596991643476950559264184765762281447424639139624723503736853124018936397458240638863586366176532471230264862778870967090801801924795321074208818812521256791753692290465042688459721705445537372469635083837689400829049013696462851285348687478973969723733828936670845953209608026936839890979472011776950941726337224382727908329773790671715506151973473277548479813775485900491029381939204656264268995377745401100460608205430068313430348451486326095872374532967432779174350932207085806597043948328895148600121988263300677716073270644693103575699340197528105897256665288754988828509825888542147239726832952462028850407571181736499292074783619079512632008049674012816735549358290178534879812946193533267895732448674009475326996328181412419922316803190734770391559183865014294707103264856595009302829265591741326228770740336956067645934655387554245672542516130778413440874730288227184388766779825666653658551826071849824529041347151961968226692222273250027604305709083174556805868426113527532449896775775687584011216589342213449629464305667885425479273694441559556177959321072198817071655864612219487923929920187243328491509767573861001012826538138585685921086558611721573456872936895613987853908012273251433269133028342500740194677133057240547492528824791531383348664282397722304312900015596106043518702463013756581894503105475403262194515067576136609405539667511816990238045896513468294283917221699161462473813838914923743859756497606473035620519584350912501195690471429700224035364027608381051664026902386868819187985924100909208673674714155035443422375602240371962368681248290892066782073955701997976389377425790349272254892745660295907383379558241862461585491678145577500126209042753347680456341492079774730175056819481066103503588304684900352032476830821185536937395790559736659041265959935366154564326043519695055907994242920485197060193742178972412117498836245297501531473670611640288503022370928412638678025569321530193100778199074624490521798954925815180577445952234668611194538139385367462745148222165571885719801538459350982503620249854220713771924497458995914660638781072423380522241180595548165132657640424139732023049926536487127687750235191226411593466413718269173622983221081921937348614153928267912857687261536529043933571286085259588336394213277832139478330110126031671568733857066741513033763429158586772501387213680897152466584673266172915635501957879427957573683810822752080378092899014472384308650471530342929504969477813636119585536483524275026307507307337498395439035910161644281645967713394377885792891966170698405641347971070981055994546022438201793128709122232053414571074446519627498429870385982265208946725192211917589168722742559746771778770945976535254065975396905802659201095901940196257797075132211287159477516262555720170651574717168780116694592464707270638770340938522881761028866225117463379279679757938237833507043337460715944473521338280475433273391821755561354367453949904967956401138111337888383831636890172546909995349347969355976616523898131134205212593048222398756306986505492356472916672017438090234914330547535851444704245125610068634352822913107343768339663027977212903962969919661548778302250569819811219689571405331644806422503717885842683963873258739504756207678074670809241586201437788196735491089187777041870852265771214747067891708555001536430548324267398747638328850588612406540125097035909873407305410500136689902543174157483106185456187190069194269563515477249793036873612200908787244728045709218318817143537389184515784491256011591245497586859284209551730517860746262314640699957503891069226510576955246752351726294770643942522325661639117968843760059022887506110903968396361836063359206765238471527376098201447100237685554753032415816396059237449249483787166743449704952553405856308312492547552619497176976564314664896737950246538109186869082846429576055558787403024340587063944857379038608530433800348014638227425613638330796205676914909179451419924547990868485989496851715963576239835492697982992568311987858098897291760780657809233671774684176842150373913503538782243057590861973555568521970481922659903184307683577088135385062246792214791652737898305927995991076131887926242063201476868129810144710713095807876127361559512061211555770435074822961175314973606544848321772908693842775665291023564098725751359659978795838656137795534381286508706927295257334997976796085550499065730404473516326115046234806255152557090967457091542527118489443844946728512164556904078573207968499682242954864275724869058167821056629978675074432260521576244478612722498543849690504358597516134616271168224449533905958820639642137059697805620172361286772425454757281965131392705189893288213410239653131923408755440861149416321620248554923687297229331312629461880109027458624869060181278251406516043138407495364134893442947777444875408556562569234255914843873871046134563066980665666890271298295668401309484664773250990809920885995417768533615439473265935166438468731338676677187873642968280735059701925299407985188273840289017297765404251699333078538359904371206565959597532430127077153982322877411488907016482630317704342416194353442636294709367150711015115462415291125541968792873303211812552303103621944622380608384687920021204057497196328411401116256942108384074313016811112460767246797457644613852059045923762534787115616510069136459635876584676179723655109487817452434898764491270617986414272536430829745278190721851103871451994149966729154225725146179998539274011756857983001152816133850563173334624287139006052419801766745091770858456859427259388922921136588983721854872218995540172851459458019530231225398606189541927193676213604906424181638598348775435222149040507512725947936565629820561487419935247337459606988641458269532719812057039192680520252593793683211171289597530125330973286899658545861473293024642869857872064979776030761525462946668848884568236533805146525312598691462954999978762765571771991186368600083825428959087672500752795925908222398599674153253225954180865867655941983410858846343296499951229910216203555280205451760559983382428230022647495241452283890552860591393490672824831551396710702513617108406942753611214633084432048873905543713427864054106603596955060620368731432485661842705847858096746817635508067407702705537980716160223061587940103125317043516512060622023791402119420373234784261958455346674767397979507148622553913372612209254105241605849790522443350707945915949419806537524984025986584116448068326993954942391872011366425931500033523096858952831713943909440658677424095576642880907373965051009792072714118343980756282786128835983290633892623815858945602234575919187360634265208249401613953900275425803039942052131967561942654899698294866210613648623248755889314280838908163311334085642076617604040933509300462668639079839801923516553985771754878312128745084594294362455505559671813238220737310116220900303869492777100991564782753421300504094860711783754191063374615823487796484462623505013777678352750043056183879890364449396679155734236523141368107598650107323160739785455899970700291652586166300586629724825278506828798911858861523929587984152385438380174401687504259873934743564481211891340721455371790789388992655377857194660272956876386115405395749905899372444095740308662749356043820764392442667646286068877197711303204516119810108710966838347904302398268527644491046921017192932251973513975944478648145259647799078233439796032301807188589115520890423668741754063333509476153654566012290672691237264560778611850792059993967883636900394681253362252282699307873944698173683451365080958090358915869256435838121389804358003054046985457035125887478931579089425980547614869824741352059697347456238546018455245955350244676155026931745263578011635959180964551748026937453351435119034046748035862466462611199143797761107689465921000034410575534535674145917094806815281741201976968434262175512519027697910352914039930655097327799418098879703037357102230633167857095050326488882998402587968932440674485930074342716937569830198150100885344130503517871804013416820659406612175844753566917343300134334702461664289377792879837659529171834982380702788982545471281531892415247889114407006137545059213242153966079655662082213953170977331921754213884877195579066635602719813099340366161029832580474159949658798929520453557553532150167676894668345903441579681694367991026188436570691981908278021107417582809762604271315267752970420505668842206444717076760465526832399410270729654347682919585666206409389837488503829129186874624804635641280171791510982936489509279026386505988298523415251870365864797508936270084663818863396156376240620805038246338167639111076193261414476360330822880205000047230826532738117548684921127016582318925592568856626369153053120309641213682619258975029886871968563917276495553595860732579743551716162325342460855352662141955954106385414446626205875460090715208664937528995714230147849700385413936134563192721839679589497216480560536144661563300564780553112420014900247126634951085990865878330802598875873392975905369958945079006569932832298003899278235752215566464768744802932702935233461263663111115634138089570273274993856616962486526242942830854457546151976005487136269774161256140002346603999495773974641828883997615234736825831046532933434643448140029427215888645162467342268267980604743425399975134943290973232593024885167971554586490324105448494875954034129465078409896004526001522763851679468225181574652893810891464924858278127842469368780424326472296972224167948154588668822785735971384054011066149084866458613515589119754435531300601402607586242636020647669654312656314496260220705101921678730919690778863830460041523828476264729335325625634508724445936920130700521388521701432109898724061087277484866549628656675329933371582035163828027962320214405139378527599589029784854654416797914969154405705514286861769850534589279970766808601302347949377804548744305306956747363558560934321484179631867251103486217952119905250378940419358590234619435991709059168474651890477974729395451963613773357501889813743232527555638036367265502820576930145209711372470586034295779305853352561853910460999006677440954167732733315718642494554940576216816044023204954923175192909577286856272930232498967325521344568308958460936078227926648607611684485914573828585485465107141751563052461711017048482503604706675964248403999495206980529699674343768288405434632843918231623086540099967348859175150404823506200164866566396372298498664747727667773593209803163909781610620578274193955280926219486893837605972232827662711279147231957889543981634172146163811079874447992317407153782392762698073755898839973693639351867065415128007680655395600999965036441151031910345088395124334224898159168111629437618479986421226142936802160873333232858122293359216794176563630047104262456044959343271809119418771133583772423001302707108797192384886139545976587878841326695387974996044590143236104372813335717025197734356129294841630171630479195019764181702870597689775341432435309247255035994107799091133846831256283150213332783875862313294986881020011012317488279157037196865156473505050201144267359060567015951337538585412348531925249151477074693177655579067244174877534329277854389628673701053246658349870006808571609744721172932824316917726291153159714121508291114699164681606845653217694031000790206049348510767452321011222496985881685959488446938518769578290595689153740680063479476709731435770449688346108778718864550939499360785250726699528238267656949296382602531591072831923265285072773528230099344914235190659796814738817256484004065172167332881565774650577364594093541297072285879028314694900072770544008568280407937043535986303734217422235776474748072670982780987904873714499803462690836930312216924350308739529546480381311381343762018721277789249010507909208373703934091463193838693368646368969082380047690196227941655058475407942271327235901056731855876049805043270505060356192931629419233068218746708964909611415422600702111920726965168361540341258122331847377488545656211088357318471544444213942837539211602894534280812485939348814093798505646514047550337770988928236309531379557488140085057495963396184434954461074611621773884591144444297928864046807946820268737787691006026772692469025137486566535991522843995194572653355770623873963245239912192537870011241900661760005094359805188374756495679572174396475301581190019444406949063230273986695374308545264461124012102579407299304323208711531014937720601911993079006891011918542048468552787531519845720240430824608461174848133533395498342830247598977960507230285308274148299400323428663500082710424129226182471340542227168470907472269344457971755396713161669621246597929568245000761316145721842478692720528857660028002844593638632152562481594282067465014772438959081447969972452388023919139180338007563462941008502485928461337912729295901191598781070854971576043576953457289791026876136725485185637250106114486274606966213580870208238004327821658282517938685702431826261042260733543859177058150389144470355815776489801934288382271420419478648337917920034856874124523947562272111729788149850087808099378286504728036506541540991350067823127937825261595131286470029775635605771269400179843165697910458198671798404905756172914066213092961616587000792754884099720441724528136387334755507246403778465809265403159649897345249944636767928503812767815055321890915881490910462558830375677641698603482927469172410979967861626589749564189040383475460644911908739230742582080090895941561845856943165600835435238624266125089223038408829767031010029178189178667179651504525782829863794216622067601266787335879928560784201527546180035851765048163545343027230492576075802661272414590075539217417195057964161779886441834023372146693605933597118996410734020473091813280954095038217007351337781087921299868063140429480529485687699896829576966012561806620491174542476351452733125428932619500941470987564304311689709046849502302600432321974963690664554960315196691835567625284461544966093972312074154179829434511284363503593488529772136264605447122657041658199350429676926896784535542293375594121999395408664637250902822860732256048122736401844503788681922897914914848385864937458339518041798847889551364904040838511581978772617896418521292688493381191187109701745249021091209320316226701701668990666676936483366237973439068739460148641392198277843033160990574421873314789685013505673559762676992831330918842990700292036140524387358893213677757819537094372597637823579934445391256782877235121550545838351386040023475073395566336404184525198049261488465873571504035806885023986251037007707840657463461541966145339036567486910701466200474735080484148993816759865157530736248617866492363933272206047386016853804007332165101888868586592017958077668732808368098632619641311128039664133081263135301209975880338788096768627215294478817059769380503334747402567776571401575790511634162240852719595163868117464035089588874080725281517238357110781777925927767301520235084782020878017978855730849764671781963957993863525163709595512442685517002755141443077796797816537163364408991104339976775313364310143973224132079469551347293226934031956686094222879712503890677306795796578163325414695522393172270741052113177655602640509990962925944757668091407283278477662662295744584974526699753570863048543326885376969482122813978039588350140157608328988670194800197647126712546525311956342594520228618914003749395650040776448848276262832968162032489072516829455622245827523570118506562675947533382563396535407756999862994636776223985307973684599547935868907495687945326578631816869641225407490829193574800378641923590216898285483638414942510893771323574897780231187288191979271829735398058947218114906001198111677546162543765423707965302741277236589974455643741705014006015233054525511364122081340099527360683709934915934723104089533106865245013612570977744284742504202067438618673640878812003606348302687676151032508221541919961868647136015209207974956162630652488506506951465926687350308314146126828921854179663119302887647224308512783121120286859409863294725533769767694157368848348683223597486922127495690136049721300626026443819820749507738663099494637465320772315114800926447526975595827335782777576591709560372206696318138651366441365296718382213840263588634901241101013429164769372105699589362656632357123675273100121780745362597684820671411189035539215331894139636229158341411971037157463135756534256688112123069344131797368838572735061686428011364391294767069840320554322008956220368075996824835839079646954278476466247977893244602971812886113053345934274695667961102127315635533528469679155445705355902393380402793394328671556272828015352923139054686285262412644010676269254038607010144051605901913805278823241854972113762626643330729264097893467771936364629776314214691663121523790426202481531708701916767219062533765059917391694301814527495778958517400752830424393305639400565398152199226462931453089857352891255783705368524435247573990918409803252414393498968305620536400206597104227845395266133845103187487915568453678067023103190374806398331137441328512767251569327186917934065735439427064476705142415992832961027242791764576532919814752406497219727909796278503175935286523153684930700111359080211714113966870108068399868411755025614272357215886847404950693134399174225238052731155583721563782069109021974734788726807809843887174523145030359206337302673397408783526133809215666910398716521776428546744044025195930305204140173731829243856756321649661678821937899066490562274511608921539775896431596738303472486370956955961608173137670769563625500975875316320243456913833881502943296623730740153713126476524499508379398164845190451142379418432883468778607490426010997068282228120626784460602530251182172929416196582803724426708242389115030724024509753530514081317908202610055949711045437590374641558776816662037997276759549737320675320175409983378847501674862064222688624340183254390086803967929296474533580884365695581035205570388163415614073283643547546975647902179151466557554525252083133525778397084442968132483791053609221236722444554239372379063414983632977078751689769171915770785855415605216305875980630209623935204086679665111995587930120598899830831823440804708027244031336039511236829805504575414228072712344186573274674852989773996383193979449532188510906814239106701748994640052465909059662231693029124143891034560316697440071213237415013268241434473999503511085597401924619729342298566174957651785721504314804083907260021552042103598037426072959911528304369409847429363520530172240915784553559191233159515246644290811700228788236025347172476209835695047995581306886625470984614900604624096205920826080327335185392615072793340311568644541854083718389503740049177401376953796547175522840762648211155256275092990677644671360978803659384312134595038193571701761884773726228806705522436878845912395890324212290083806643415973362373749870633041542294841458163163603266597248287333389141346654963037483795110497911406134947641521903864820650072072924819069571620776520416612226872104702515262464520397458125354648988274373182518401079432397936878473781187335893495978023347844120970914169454042509091995090373835689812864386541595323025941100218973810387671517108863246776197368144315764162043716528737092626363956912442967579846396106615031007366356284736158860157261223924029976042264948317263107895347845926943099768401706285486697670787921375079885573727530316549073544292418733305225247400813816418667041358775501776024353311642655481338736048162038840805302884884626220084889842006046305480898586503295580118470112361014581511684126581728899802067499165846504096873650635013877165401384981832350180494300025140399971119509103787553112220330343121390843638036244637635036512833148825584975612644925764463586900712378318943357655944386754999331042158134984755600737080434032655327370321506356424104225019779149816059412575964395814674254634138767590553904494076075846862106735186912252251502338097247647922932002760502587255513498702023760835676144443791917988452739948495453266163006377882781360204536931931283452426750338664180259631736068709570896015844982506803246380748807715391883379119766227181514299286578618666629305478035791920813156299527665100473612405077277375244340815911243006151947385128028778320690187257811578758440408170945061127518557781607460775035952381243057991579475885534339082362832986559395512289557576593649019795439789359253382451375572639765391476709185503486166008432824826870833078788144387989255680223142886162939658432107802610011488837062350949620340844967647249392392167034077440089166791810408773172375183296291554366745971462628613711845721036612878524654927420104479088145205120225444282856360635137029547413215786362423946978399862213166264436012391660033245404573595498129746011822542866694658224871984149955820637334305538025637502830342986290463301137864120013808872604696137093961015145983111986324388666003451752419660535803609736719967431669280856361309950978915138710749024827320414824188399770857472152649507657961348534203634668139969778607103219945987509838309490583584176134633316053376776587465602674983240378238173547411524625020168594426198584588143024840525574603951430777590696810879982391064846475303943754289357464470627572462687870104933344315412332327517119100773594252105366709955248027309224833954460775657594073499402555111584571461902022759070507386201948800187069483677326676568786541333035795319294597380082003340107006410166906647961950179360984579868320660339741935556172787545875018112287456491597432699684971517319331566970661512639982189051850840662904965029174652482937436742627117717974880176781822560824451900556596195925026666714275803960861658647259710428040537022101780550869592022843529412723345551443749290487414556293101524466204297297220154172626198522681633334846176203076001794217177949398119097931424066077654553250249256474005078688781155813934099015879217434397013186784669579686376441254402268309714288308325217686008059703539655935694807111807708799729608441741038092170164402180022537188104135708154364313098208757805794528797908429874129806013126090545338788538163734727868062643706177310350319341423312541328801714152846530307146551368122866960357754029746533632764529784622398604527188834874980631668929396626134780898158386399322242845681225802230495724418246006108907976216821770292986848776477677292089800583984044036779831660352478965542239243885585146360208432743206601166204901018306262090134318939647173402961197397244546147151677794518532048557925020227683685266394636498819489742044481812816508751820340095388698186877017995313293679900882326142856581627238005243931727281845532751413333749234248293167810119448679500021695734680015647692279705727596653375513485506107120779945662836203036683259126957764895184544099164229011335992381171119408911573569166180143562488687570866104552907599440220758487060814703358136300686411323614159867891580328856888097795533056768695820299921894944527628643040432130450380023320093799851123491390927050079479315652985799632911040821808260868683056922228860393934793147283365782202301672012877074031178069874036321539331402285369318155681153927486649093109297843236697188278610469590734089420711052644651116486265910692329712221665128867158564494605588902221952649555385044004295701869489617115390581798752925813202620043789301100958982574534470344577072828809121883151564563805518762006730023716898853603826668818432223897453693776301641265803763526631073695976538855440279059623935472968619453000614623811762051485764557424420627476454377077838571254154188893375308611985869507287141489657345720123858235605029233347832590199123266564129709135119368384679762710234841106275360325521669694891148291250410580866265540414130634654159943659753711898164551911006138166868675876812086807639017488559671834967860154229656983416886705973471632296629668592609411798362809703179470711587638896738076782555057512969744768896017450521395411376849034358472006078337370414638463337382936765359506307778324556801569710812699547010086011531610805044668369583988800661157719228795323341048116983728861973662476851915835648865429241040596357626566759451071365369314464531355828456731012679910772283453068510197914365142530592247080460563646928426574238270834183049052845872136563069025351678177611192404684218490948463831985868599836188661415323806069379780723629316609317420488568243606238777925413123536164967618898327028553872050932847702665763721102349626539758321685633170145865058351603429146491270215970924649973851310944269701739440180958888165825921629236634330400562010494105574269580849391174122678069817410101017971410461376405165848688602427536864504472061907013299089088927849882764388535868576458287110073152910858841150466599110026381526756366671417016206636637538641863090551522459080296701122212300124290051115350365457319482052497925146176397835951577895584026305087095912718036017787769567967098335864762835850232085792340283479822000628568147082395537677926177128319311344040531762443187293894116660117685903441068383756037456509725369298610388865394259164350032258572001587432688353331958332486543385784408455390214541727169086295513467954261482877270457197416132320787512884892077176037646665120129872536386823070788295348097926121618905828677527283978315834849847517086311052608216451134594839126389686261884818982526441198362978166428832717172014942803668599448541646306685532228731694503834876312729411765440428016447778977884187991908467244096925190521913585454909675586995398099608671926378265502846748165506917595080996493771744395058060358866357335274613052016818999408755762037501649055118621554710376972514752063622187994303448916362015943631482646108304033601139586311257390046930537726987101782103375032633343340225934376877111371506824803123974534963866650092127285364932044533289694484006662290745538904704280523499143482722923957010043582198373805689095168133035438622274004245746360246061564741411287718437370951775090357606007564360832032055794873102700284958421373425552311856929060520510955248743050060679110086699990632588699778375636793230133631361708090941058614562793730934177424082586871109839020268370070163229395417326582466806138608420322508091158994281512779798170631920565213618076425551497154016278302329691604688384504637381108380244622673654308822074425392407659165041485774664908466771989474202579661103025252583976760214352675449884749854512171585723359229229619329768854142346611276347887144349842675345897496819871438493995599292236597502579174418940529519825471655398265600608685454361563429786537400160911273800855273018370556935972882905780603404240355243701062693970207491355087121272203650060977004609862212185034927457405827244448259406087569686921637667513680090617164140045451803565279760367920895319018587686421787711123880779143599428259853825817594875215727439692165858426117422875283134560290020877243730884656236688792948507007781371309975569627680891984047740160699726192667942414629429365426663080652021656470447350296748429622302415323713189127480700158012926815429769103678356845305753796412485335903862590051612565212252535385119704902202730741209512030142330904372698108797999982642699615799039752067915091142275557574347347984254844806460155142645607558818088016794153406736915296662387482341088940789648046066468358334025740774146159565746772680482420591104442104756780988512758805261098946583749687270538916073614890894619098995556044411662460806508964683292558346168128325430020456280995247353117322043999191835175369641083797406782991686311961428136060047957083943612281315540596755030236542051638128985096837664179789440372815696090813316533326200959855935360450068161655864623438497514173471886042669844076691910193552302246487848689286968872556178571538915343248883087550271110102798160294617548599682361804926622743686734513836782015372381152305423000695966435137676192163366107575753748384422444813969085412518915855088496733491483381340373676054995262295492916498318712006523354894806237585401010955451305454026595566914246253968301964440514327143878505942950548689407586766959879088145907508432554367295202510461624985194154706637696637363308386711566586864331508971119124793512765903429748814443647262089630420094598873780890032804346095961845669868977718249863762113996060719161895450476238708562826345461362013284750464840219952446994807473539827566918597788254643463511690182092503348717918198608331013728587690834536153154717391134793603052586700429646048576668809690272439240696342465066797905778924510474214234871896432753129103133619008783121012030717329346002771457880363291187517665866438300793471242354105962519622847893369014493125980051093031014857215266185337074174306799725029108100035365208110782601172490865316568395444456639128866943587088524418540376803481538100001413221462444601468621328813374602747517902925180782504359442251735176172750837614727968847137263220915041102074398022742978460260025734685398095371772873667573666170679978690327358537838202253398527846300968291462207916706345059639371203531331321541481083261414778823021332822463517340894671820231876619941341759596066493576581034870247067301415222610089765757500998315736255723610370289791837814321121525388488305243544443836453101273247594263429946063211664988785769525018649696524293551749346303872727090255366914786771217898176988056311812529165032414075097010399134572856328246902633165939361302995546333850755663247100079783671987143422758519389476551688988029168472185941458707853019883796002869215257733657995648224880219062854052464148524119436201732475718094426364023621140950170425578196294600407291164465120200168214639433156869495537745788245299113286213467719515719529894052433476476364864737019522012396074291874189883805759620230162576163852723631931851771954342069325579614984423445819414828563997692776810873044634820287025699495097323559607549311920803557488840597254792785629661560519460786679705561970655193025617213545702904367606592864687145230504810565334960690347409917092733364328777175980046792865016366618363930283782946170269812270842215839518267051684092460775408187837661845090504246053653041649795974582738085525553485464418677815042339552209417715713517997479870797629871274161366367160561147031925770010754804055811758121015737665743566421805368129556232047896663358534913195306177753689843797801308645792286193876625149191768845342761621676536617743300977335112274443760456767026239683912786496686101247380599099986947891648855216398878723395828405780638794104048804609693644815795498352745725444745065165808687313093100563056982836902711990809634449145272239196457189613349830023732044550826508100516747196722734190801951034614390758359190555961941269247824716059088364248220378809935369760520213146844448295803248623095819962380806670254063811316514833231953227042030138191417364764351786074188094857123254419679495344909943138319238990854102305529635551059844592126635661844540231696393542762265721084538575905882946997742318866163969396655360838042230360515781608425227372165443449585365134401757155789496970624075625453371268654392000600643400680258205956161928027077044999927655379884526124604482787380785911741102141628566993342363949862899697502555037433664446575025164330771044814829022692573593762103776579215006098933364502449149758429700672691203818184676960649187595265204682187716965535936797306682753298858168848853309418754353932195480778091414027179425784949915675649930174355951893577366907488650946884529473801405521140883155711097583833395840170721081551741155700274087482197486661273611437351707723868186246324512333289630485001664521720787295953227269139827919505528412378956435539273604232854876748675352113859237903030186412061413707901748343423732600887188029606394982376072235165013542067309601741753894371123614488239342363599219577134026450867402438500571431261273265483992037915695906498876319213216887550980862549359311072421671768766104743607421342722691759686280807511206153922574045756202655779637036336739548398459293890215593633907428673100053399317539005445030952626618681758428139482390111857846378626038482025067133827049042735958921525896179147777240740184390562905143896517675490461656301600280756396567410115239798186873794568502456581790364945173061593406511943503749981526763347594930958024984973845909980439021321440686300309694495603431125552182321754393207504329289244618747843556692392375415987855410638026189380384381428282037355918299018462515798736237134611886517272355131706030161922734548445784661640531061039833749224312969997318405634974388301890614294741321721620259052968886999126318364038555501820753152455455754234528577011208961436228707136609596508954507512140336352249446503052275328275467318799623446236470881217906392419769867308159922619623674332222221026594018392882566167692477418998664509135907364357701995248339002600630893543171876336514704332637009020291766651250979875364253738803153826457637217797099519048169375493743924568247569442663933289783216276085116991813795667426381461494116133739686068623026071715686082097505528961609743528379083224736559405122136384265802273494437784799546521033603737994334994184435455280437352407658905367014067571817345222244131289282505929196180970477287011820579146930476116268093270645400634791830432969375952246749552790326570505280805080998568439408963022526583655273629143833967345427027976087450983459051258849456932921993630819001328960717560099831196644944616673760498096810997113730708177460941422017919949924137632935404537238764000826807710568721616532002459941834504770027854840696722668199889210286332700725643982036382306572499463940568350865426265831035682245261025435135907431230094407800230884839149515935489817516399752290193581852179932003766550934347259737263686038423640157306777569344423035211470709803414109821261242648879254704086654894375029277817704641194565142213620431474458684445385186223061534808016427128076647075772665446310596835402283467796583295610440668755829179768674211498490681093654111337107211587166728217604174411236576021633535416700902324386924192736213088588707684045838564417969062941809198505715728104037415235852398830943286538761216493147012957675296029949753161486936322253171377382286895390962206101711606058000814244470223019472212687000909552524194046044595670633795584157056190803655635565156013224295179941076828600931136637049283388150609916160696288250533726177744624577312628558787072423641711914999285459317482631984426834795034388285062423831045356933673718433220754493158486921891035891167506412052948314222756661144395554947625643178956668604243040503650304444954217554324833575669795105318726797256273621959425455470255835219277364545672603229726270884126759527164665768973941395824973457829477071820332730352319827523151094862240288781517454321825869079320581501043557401092672543963904334903728832282621196641583159912042249507806966648653587651650413750659108898544935572300690729518898586140314332985748524697759736779581795428401573521269056177342445083528010402302283586642093470851133661790683329167172648331221829201963516068557606894905792600455291337297066040646866317132398733839648880611246826462117646322348957804402294487115523634749139253641290981115394265705459270922168135604765069718642419939007088128744544904039078785602711309467359903027169130631676324823023438083088302290654352917332167051016026331142630954142451908785370009329242976076743546725928327413162185513918155032826654807804586315448215824182154947520521791932924495027280445439542757958736538059251517939525938117117668299523268444556567465652098041027035647464339992668699773497392765425974455621567010519172744308979521675080020418754764009396761794976489477181853242148387331524375243118859598064429537374895597090544635077195813048312569189355394857961559488963666324450592158898425366160478033517645559098150393486565065531687376389364848188425715142602555939249445787516374555636551899608284025754086976669130591621931017303734575951485566319774065910304677953019204249626667337152522418937406716997532413653647380442856196345583343532952384770819465403863980456376024979360036026267235768041800529216415347688548977359363604258429892854548118835841205992219641247071934003559696133673416470359352862196482080661709514095526046097163721006765343202725674064660456252608629415244930896776289964753961268434448333081648100362069260767432184515953072406355738713932622667724055288852067549663012062446614700138814499463947295752798685558226144470501438752949949953862414099320644174087862793927181324325334408595969570496749906813860186668834359919533473263118858786484269801336596308595259983375973357992642052854871906379255121035020581577047403410235075988519559785625434838745942169220425115248838076327053491637105405775520425425455470198411084777360668554485707189721340127406696191815784485656408504961764536387908273192832684366485523481983368174423581628076772527331046140950963391974010760444001419727018796460706990821973181030182041583796740336533454520159823289219393114353810944375502186984998185355463070448640063361818572031582263634482506299129876876198694144566405670316709069930001241643180487700751091536461300106547996476098451941986728591662913591595507034859412490237232854014403579827781817169395680669441601286653326286278116214555975573237576884152030166585982490298647473048082546124541780195896107742119534813854723012172370834460908405628376121259921803284173314232957660240595852721596112797365154038319553985874745551364591293401689197077083944105650307018709014854529222602515343735302008722588737442132887689559745616033664742000431873155677537548571154546588213502551884095990016637122559362782827652339731543669265870152051645873371910186334764061458885196051467978060478133192254530383437656515300627123375017618966173913894215794338380333000413736660631717948665810167079547037980737034039245035347597914080602485464100821097292794681869118328935647642249101706797324098096650830228540625704839763526200473538092035128957415846454350957880760579583247129061274932217733140881246975722443416308264423953426581942720882107332932198533490629894219156278866199071783725214463436499963375350869816052519949156486340712565224835142030548222797757462532667843470347511648753189668772439180001296087884713829376801137785143486393448138175074977419473936797846400248801555104427958690722086387589011251494114017234582592767656686604184270975679530307652157448446928687440353332481566300378987357151477856370168482464586115472338790599840033908495572923041276440843204887247246140063107475110797239697158716588357290259865492186076141329958125712144047803110808549666229615621323369730212303076815413481745354714019269566861974200852944482831315145590573688660716556188898536823594586731416102773479832053830002629952377189405818605201240277885883745897007063830849664243599619585873685244700284637444493807265956504167407777786960088927521287572880258353213735668897032441920012945700061525738214228658539815447324268205722984996108904698831007802415256869927635450197751138639282949572303801558874178926836052154273029753725844837540114550475375232480522478553453506407028219109861395608643915090204506033261871638500837234674521472431203014228877430075811765082159211455430925420770976425535045144194968070226260293124468913797452105450709762597802025133140931799233977676415098377429136494136168567957307793921350927979930348254451066426208890122005636648954678952056688994002707666920441557917996536658570494320605926445553516636377415489173322940906906565884377274469366287267062242348331123873056385848853291639512102255936505318434888225674240150750643715617834694302767565380761363643245630234633853605217713838112642858509484952108800712629461074723790375641877033854444537971523879316813487394229727959905074094577515670142275340784554318145253294907082937350169600455011056973931502385897243226540112327116569768792751595640984560181305926252775609025339305589423243649362620213150116376283205116385639255003238751698813386632134347534216748130539933309509595209108306872756310869280344228308799808474831385299495967880380844911537850464153466476232419962992769020259350423617529096993623541496264428990309448996185295135352377253507608246385750867320629138970756744971761899070020386712676784259724434448802161945525615622630891185392605544575508958731484956613269081103640903746468863145545801762439165955778589214480893913389131099390687522991276686325684497018581914929238333487370034653890154431115951054714317289918121201885269015148497098661130597954517718886778935810601665828701085402947312387658367278520098709098380120357028942295478913794437118865756749460637140676258659867883467415081365841021053144427514682685956708156871787398779824066693992502175517350247405335477948702651062738456981836858570966283773341483415342310403147326792893537943537902201580637917245224365124242704298246063896961008334425137954918040094226160096123798034531471201336064750619056954298232313205598161267981363854731480818179175705601511159397046713300160173646852311337020687583461678881759816228161266613793047286358685082256646551823360458852879929682167819715444230371716685664531402248695695970675918980816752398738421671643948566997287736631415863865736108060804338534569633914840844884293120665053986944446021484200083283938830960829316864433811588522091990153410950391119482583075238934782069538850634657897262928039918589443884392394659351585625634338351210196321404583073203685048865654956993547417219104403552573931868516302782001331779741728789082229973858012782899142732851022365067357015185640615100762386617752506435324089846886251925353999673839020623831613501340368222659512957983663731590361823079012397358340432281083116531102050775068652624751133572353743374812556753601826886864980465164942115751560110212213323290879815654413480471271979807209453238095944900808340692770110453903110037969770612314807034495413135188217450296826450417995197028043751244345465999945690729068972308310771267075920056921387579436159142397724018306088097138668216282584952679611771071188643043865601122083488239002691684947505749853521167813794572828171049378641430108859121066268653029013921259632946221306511550851814050137521437609713778063959549126527756259756776379063507150393856232289714469859242934550939621251346452209009133471475254893509804209031293220344390956449229032293731910683450698490235964183105453968494907399386151736943087266585473499752347849931757599964154083855135694625173845782596529603741725368373022311501891507950206682407679172347173650303910321162423782537476978110315437842381237878324365683551346055068576897441300089432088961908449811516758849138786317776608649292842501986238750256936635964888204106206590179020862182298313613424069188516837275494000578869039995105978407553441022449249531951173885633032411672712252851154892842970405910650678070074657033894324134852450793068792270807272678849745985836838372666865321869314867959318216553034445697001981482350603203100196976550992529932075467939712141685562006431790408048565720315921540865686776341654979763539927191218385928141344726558717242383407115064865086389230078111709453292535702415194053563370467183904453274360313339680791719514897837592280338725984765655873422094642574321712947411763738073219944067787782646874945318985433221293665244138100205877551805624432422571676518944208899099442264701241909368681286910056690386039405558403652330172673454735361555913475976512899314315150507037514209451117432034485498212633957747119659762575254685650046865490653658555219885383187201015352924607480434881165724943750635282785724730818833492787396525736966745847275667155633892345075903567664004739255140135915582409516663781247217792419804562969127000341903473962427661336508841018984466086033081028298551795778866885160535430568425978571992669542983750129754709380556836047452064416008021707229871090910540441422732089149453718335266796275247568004269833344101213321810777087887834986580061696050665241215207910312514727605213166982940404090692466288624447527065321554897693321877724167316932127251897327555756126941784459240519085244080245975822157639836185532626252572787351765684647509307868408207376208791300820488219435570023610669303248699622492481819616712440649946987159099182252422174040331904159166546019356656678091281578361487730947893197349910104365497066600582268551425906398970628252216025495689015246225516215818864493781726794631523460413216440407300040002629802815093147039621368619166928614196412331178911227333586775371839369453900364962473765583028954319127726298172298726862502060376450629260861287621753053365801714632866276270233294969835280160323105329601185733913604318121857591046747196708022938528908118065906699650658280276479044957717380807177107845848573110428080562278151905991630088334633039484054593502433752686944303857202942645427773520626535856373946676373169913169828023127840451033557403868647362667119094545277247837533940479089794701933378881843560128797534431418031572848349472718884005985142196024842748021280261741635923304615010313275987860939080070450741768968188180857258417052199740934123199811282403499879407684793054570672766513158658207309018674938507641733503016370215876132588999336469787135759602735339839334717992199971649162773849540193345281756148352879217402087972513054324863684801945079160782122340185703689439549615182455631292459104036624996560862878186850977995752431304948794872625516978827403309359884810097011895117672820928640373786576028267479089824096071184063365945436408018144804617470295441952400796533488493400635299980352713042948540811069534883833699804039198660276270284921057575088134980033172414971897725315604518999654676049201321697196692388211954610647438880626665229315680599714407754888545782684106387959684221246969575147765515101034463322262453894869089915145512197864519350807473638257982999541367609923226719669271530292883313827279193844715664993288241091109993795601787701466150979160773425023741964238244402556628535845511957804945720320209225823004752014716111386690421838224418173039281278696102659488274358076093406773879774574975108249048357807601521358942650591365317354544809384976831526233812294531222002595643650225732976096713387885206796795446934925126526460009108457782901959213981145211830677236237108122444432572687129448958079148828870262888151091712733950904748350731365492019376797208755390730409771665220598990431489247482128435155778701202211009175982159086205011414901055061631328738326905780148874270805285360824606591060342019874918614519496933321517641395210078826170664066520440360843058515122446881138234033081470325139309671659269042765644970703851181771818979474984561842290767130634571217514892124475083179174979307304587606861652080078090370431715774933410395229666472099444050674221428551651356839286689753594310505662060099391488797664705264411031538185780185379699005347146486196350981745665756966671282928551558974115730000596415520758966913894703311341867217827438360538336992992263655853940290053180919772843062805580876612922954806801917486660511456706075119825482182026269080983440657539051111891219238200899607674126792548894147233568657646347194214226738207207223865102491505685362194915446221669085020761475163184207686070172267149891518651271847355579569825377653480140839048023709661226496831268361509124930106098092904651191181520356027826815345290036228704642706184592503994538508219248992811775028958104761218690757985913625872193963261286992169064563012150379654927401439611818970615937716306800890998401595588258841312067958617325822719187893728624157264420857063243563088178596994897589553372734779864555031782262672202822821589986065105696856880451874496917186391001629389656911980046195795783909143536506508281893407243510651467096692243843426988936275384648870509845229725236923146000028493556872003004572503308965745137660500997759772761487156915423180201983111916651378179315408275344172472272976020295495406326349093845788963131494695947281248676809490503991387173597444728311371729653802014069976942105656276311285896133010825380108288455943280082351774314713588584101235316146525439702832200393516025459530704005261792792494390427764935515937671563603383779184769088642994927846723819730334854450807139746590650534987854102135885228105430173374677168736123128003061872103764432958606326443744772812598766666264153220026046601553735509206903200650256841438350788848923982542707079961226638851926652085029605921995942293396706424113065645299968107965812553756603852511437831671177373333705850009292869598427960252138953254004751251360761138820974000359168087963149636646099951096973910755897216847155281269334801142904847798864114075803463514027446245126928507201320533517013166094613707056338141240002594483621084540022761209671547389349220643543943390975264094612313722126398407116229113343932666083809117166929065893161239753892099932402279836794819974021177380316366865743251700073741553650995527692113259089519721846290771885009722894603277432651599389129431547557400083589778703035404315358738167295780610598924008909479264800821579620280717458471481450400929976431227727787221607383082795584743924461524704342428609473238647872423814641735448831546879494063584249275236332764678070458921664072849807409581620729755256349073835661335716204473632692981772391220462259402557199320033518909655500876083250590596423828373723139085276142109946480089495827383554195060490045798736908493924059113111007031153514939451843271215380913105612428848344603227036078944013335380715873523337836291621701580933500572266202414687423002188248043096655573752096850491703856760053531221047812209969686442476335254017628563400623624871872988998268694119243993465724398000877032284817714388995369864352639794411431856622171818218831634781244223373597061253800123930224507700618947321728157020953730985025019309125913471341433694205704770714356112142660783532227092555541527048844204302119511515692839116057579741869900757557976567502985731952832748319743727101389861579516231461977307041677307998501634095410541268810209675149869881852101202010252670069300818485195495253758487488577962825902773114811448651748128308332835954377503776143583796712576681816623404883418364317530519136995835553320943346933759942492951370450355103192209024464285454173873202134086608873062971339390216548887377785629543982090366507137680203519468197795769832148775249891084538447506922974304030341607966668082154107138590382288158427839928678067400729460849775301475801989146402684675958254587423136127708527233807844175870260852818635631829682196370903594123170950256907768737394731503653468809753004103304676461104990514847992482056288153800209906093620319369850419065649898300321119721119560910818696052063302897846206995542477600106269468874374519603880372538712813502894575213214912708904273171247357728199866287469103942324808702169858987946936984466946180214099383596099300944745673747821755765809650735198834873217724007385626284553205771005316706313164849430750278569561235995475711703168032608380611434691830458806256370436609077692919958918066119115945998017976105120266407379557218528436478202755639763872792352138721720415505351974832557687968747020182474239071913642008722431314191960007620298079497181386140062174919269350012215059584885383618510453844691095616243279695164431756025587083047667165688931965697823031389760777620717272044451865294297773568950725178032947610608668999550827332272477078614999057607226676335925327068019572495294412845543637165112681714275009864926486352408054928606230615966028156877899033052675208736000912861426578267633206814383678219154088807770983753411685456960514229527165327433946038288052772355511029074513484164889075667337317793818593083444770353675006561637416948000644665424641554803458093066930776029554629503568516223770228717081903985618778285924912698719326208480597458059631323377991421578880655436668583523769672321137748017642284698163104626658810096919955530924618511676851523026085789904998899252611086867291181664286446734685554657425560715998862496077894938694266496642231989092679561595814244302782523101847212073508474214948045988341748370803674943650594994081483480945427495403471832214955198272449956803443616729113393411857022616849139708725639996577499738412561036448768128886819568507913275627128116162630996878623834868251381806396323234249396575505490336387996706317469890953174463416657903763278109545190497029236932043306045176105143460119246159125310053367139991769776814587550787218673795114980312251212919834475181786547184788727856749933310367296558013260018644983921168408543090968732486050923028578615114678580779922232791365832688127695500407509672623692518599536237925173345707193204741358338615703097259331810074862515134909121156228644253759143759750155944563646370671124575643594547739744494046033528897401154650641126508124978404126692217662070147990338662209100091275249553662135009425895933298153311490514579273037080336229664347518890597133953650740109388122908121223986346658117933554019846211830771648299096343405949596439062779984781339418319674630575341661933459843964275601615334064541729939662651127481689423525619851391230218047399994896816990716966084373766245606333250466766693186607801456744358815143995093714105817217238336029101427543744321214184828084447235835741847672863424074849545689282648030106529163831917272245769743387866932042088019093026051663170743331004794863279101738144695774277813228390745323544296315238143947046618561715239777037769777595314443106872537375885532113823832679521219271099921024093344213780845531175019942181637936771622662209278378572634687414369094075985410169014448569081081018523488591782720053949475865150125399576987509236730554007721234568983826741862057083749905665593149688633432208531709166615997075481328052802440862030543220183862695613438527625028034782685564159116523958504463966428993228497102996365836613505785265984063687695803942995725174292594506686240206245364471064930987663362749946097779572951817298673987850925189471311901954056798616253177765668346330374143918523336214542433838176979235545214078142410383056878394617983319877281279356951022055113354331924716294830776351368790295818311200737706912568664525284941340020700270786850386430707868414870352601837091091680704664297087066551670485486341813245680776109081992959094998826070175793528372472893999283384993888756616652707161926728933120013137453255435910113128690083475992243304269807063034528962771064074032349869647658255689520198192445862640139290894016944207660292804012064453696562488136255141261008624817344315695124562776322016326455949109090203153336168069175487178734915010158703035263410342014894061199728228160467694611806510649664995222330681617193186503879510929762460567805227701278698684370965834884179998855102446709952236874808927301045266521162933484261278527648000544324021298739169367454155577880396707752783514296554050816775283651260157826490253073652714702004237772477183122128459140402594654878684852733855671881181724351250632017744612950559814605813671259414952558432662527659694839203367385360004545338348311099955088960326865627231639000038193032723770378371064039153106124501251881901039162065603377852074325981108083792556873970309106611988719428283765819859911247668540851684764832138998883522589906883876400561137451892706609035110666852417886395791473916322283844162475164055292386844227924860866964582032600362112822390915200406589119991130336293609771677997595816393464490058491141885566140881459551088508467384130987658311712795308345640634359302860822939959037095702004753476239566979253408593481482167779050650794378934244244200232042289613950863770291080899463355726183912311257226601898975868996887310013640589929020772273830668094987129616639233579629522407543060613831955894518262985835283572885122258910598473433987215567758871809359406709775125979611095495056817332803893787387236047945641030397783472190251325201697201097111774332108509845423381388990474422665321944487006597605049290379363514525815339238426446166089792308182353771565414101894167638018490215797276623484635833020076565568078353317126423224939332210017446440118751992918125533878236850702327253408727486127909522247430695097252358298564879817781423781849744329116824857353053549567818741138441881463751540267557857767191174976994975532857989411610871279360664111469188333150369677906370833097721915563189398246748238399626422105927265806030074831840622123051001060988551838065849289529530889001055738615120005842773281244633367661521466499171697703082422449572902905431251715219712655739840492439477004950091641704740498286543586404712217386220466023035774900286684429524912801729123907802423898307423770967526039890537894826828900277823092422469586089684310060990353969502236852503517550226539075575960654425578277581287956976612298989214942738110171273406372131951104819569980235890439183609495550582314364911112577570681201278723972867834112646237697454121841576590405414483165065051977406913680918489724539496194091894380122601021541125424618738121643936769630711121874947159061261529904362933010667253727809878402692026189960507307807993510046814605382897792318217618785488312388659916167922529045512294841275506030813038206178847532133510655156932452322266314387255484593219480152980673924142699198132905923337107196460018492958444768264134976045406249820619635768955615077492571910329756609452721889466761192817579947276500517651432500190362129539232717412001185978119971327853765151502225288445947748557586531894757571587662484589411539544986082161755426012531126768965886504753073956257807876357872592609839079596609103555491398883496701857479423428302997016594892734971479933729736306281483720274297193730119215766368972619598022508934519669191902462389475231526243851175992161842503912694640441576444304675160058123713483292081319509301712012775086328758720058736569114686483162384729294461062510986929527994093585608903077366111701268919862784788737761557767267783039257231444889297217284579226419667291229216671143262589075477368049303268544920550573602125633570771967847457939164804044414268658950176730939444131051730042537247999256527508942603349475532236178505524721184650146745524086650604943024929206594013916322198528204057013988906695023256845553434927009032783648126611035696718391602006328224912224270250248953126645359585820690606287183641380217639932255214240567231667893319572251870266095819334847708764609427131801488746127972233467927487176886671230625634312412969009782927649901810999819306309067626518800739603614986182627422782087596670176874552036056719398682655727779296477780296663988677031182212713782176576054812898759668859032325836174790332705828634864573564806883116243659989237733260508447427876194776979584847154246150394728810421059341869777232473532720826442143617825538922591956597294447399677173206593959015956835442000795715774028359227546418414025596856659995944268625288415413285981846853856695662687542785718960702199410723278837824495242850891885232828233591684763679193686873658396467672326544323069089247707228128943481864556747447402351352200160743644502251039844502139684110068759684862746095294510357070157501079279518248439992387699334033934991524170257329096655753859889218010964042384200199976861655638301359875134210867844570800862403878443290413527689710050232363371461292144784748044919743257214931543642757974091464977126755087074838243730441347061788519642744626136721442399122355280701285071739133904989319285160550255117326729260407634016953730742500219002480455566749156594241680682169879367348198334483005461298966554489854843044564953452781197080183129882068744849321294929753329624876951262357204014356701664349851547591851042716075302663588978295347831715139535820806661758661166771105826689482157470518107750482892199350748376261585328797659009038332999091576876325178024839489587482555408688922114156820553956278508699249858597044563654275611039238599989995775545871637100518939875173614097207589525347544343101132119783945711543784825658803266861646944406996307503532952606728888087120647597351108365737211324215146330681563494896336692432699464951296560061474368663349857710761226949807584029941069725832044889440308700841565108356384343860709303399180848778504645580179597872035552830491667081856018694060216402588384927804245051394451844219479880575079655083910415067018119232859773008339051364577736747798793162142130863362876344118148860379835417399486038361707070147096106725855208372836278061261517380138476072966462575861022496980929722400501004760424768208594912540623902983998030536678873941313992303441461614326362479599877473916320180420565963963863365404054739809100733221075831163906605966981035321348337685842038016408595317774125249872220221058257062128470589024479678067101115936366332315610913892793087170783765371911125227286220804741073330695462561512207370644172967524320234496433056830670774539256748310716887496927750741277645422500437523159046268673242701371084787947881310275749353756294144636695634812791401497157440356257578818163096890755997494006659268126368713526430521597352385833014344527775350537344973677605106158617513645939126255886009073255823089596098746311333010966943895846642916916488554534279236915475718675379463822642411050693271681983328661436575376137607185917192052074237494634809332588312798099979793589794394132419741218043211313215923690019985027319613847340082091564042235434798777097711293811310603160531601462499027772520204371592175119771933552071559270711921905640186359959829435673317546752498650241988608280242708974421480404493158104879849729419082990666664944737292083741337276211163636554150639561754148411240595160426518816086707000588555753232859951812694753594795966785410564033791520404907095034961837131484624238047773984721899322715116434752175421508300932097942152804114836302489763440478573308865829108736022888638993019486717008465717311499389672409132821962717439279250471409361882758553555759627842279792425680701604799064289813927056085031292097944604857399585775979390013638405773870653309588650376045733089004142610218884021023284393912979375736207038320263653305381664934998265918872396764446443215621588715894724761393333485501340415754123456101687311043259283092846068155647715475349501206303489525161654137139154626888829891674335869034425808398961242725330698478690570661275364055812019785127221945078551601321160897084363370754666227345242418072210143364872113384827974979237054788560101809965328005664448489933863267486050213636603176065994728328897881934605092946649478763452897160959640277815058727623475356784762867650476193443678083421798961043119548558254461180762117024182468314051051250673595270438358195184182866344401084516935247544835301506276148124013296452962671108143535590696128415237392738318527906641706222152712980005625851451919338108457150822494834983136178043999611644972863924440581255477001339766061097644856146096781307390801124344783019015833666139531231396785628742085251473022711567912506429358769712482642235226520247971205188359522987612543972036483346892889742045404428187251467058198508136438401282866358569350574511629127134492198572081968073970056205894016005680657640061564886286702615254302192356261179056413890459906138085190057771054489070916003308408635009713363603934976355932719852655049172282867945773942440317397408277792509727397045090316394846625172504408324363260802430184975172097004809615349105374008568746458513843969214458972699668490423202141184900511355624434354362801152419817953752818186118789770328292125217348899349190116751881672177196234167382545848106535426965320346032546046442322109114756674259571472571132380727088253525178213802889831981687183182314586083199886583882241625690263310150650348058281603525781471756773038721307610568917087782656491990687772737897112759892701586087799594259491723196390850195909278189553060192747534616180728403141305300769896677488911457587580919350066676190913544315275559827110991233597307785071872289325708079216704416871168403898235021856306856089291709419402683167902532446968060370945085415941889671027977275351514879941110831876094040516514728371851368492097983142401189433771766699157557062068981907846639072967173266829488465554784678231082212899567714918909908288861848717931562267702689067007917477636076168635766621872686451334319561970749279918531277485434327834000084785747648522834919431153333340920838405327761256073205123886178155326371638520190905352482583833285153651824944623095780948544766816652957291246292382969378513589160002830462348427713473264761596315012793252092678635963952370434600614039839418695577086942930362848991369952747934828757320860044184833328679416171890299032516337356703762415120034385297183687357988595931629634522543055361602633012469894982331034771873286688709068052868370498942832229216452922077397644624994880130890102562584211685774487667514134872999252978229325544526134122671477912024804093389342204411377753990509876996911562016744729713350074373246660139600845242092234799179395622607423561004206380656815852236382613182617379212603626843899121102205070345296588347910930189429031476422055617310425519411199906361262781554085264411862879373342284906741224484680606442980084412810798991377059719619108644423892260720823729683242810532936034993507491025059239624727194161855319054534895726024233230034935877701701592053143179854448233609678418682093216337873649988551394583611872759851870044460957926531104900014142185392945713272340690992043471123690715126717967651240753271753389781507646366037113337594273936867041252070738466514047208188686667278490020625936013858076993975846786581775315413154621940929211641354670266752188638714123804676243224259184814464668603459145817043772893705320140738877181224808004143679687564786029700374465543958698686737264673224174280081361346334636467120199989428775941897568745109768829382000158370052594057811959883472471799102599654901195511176215702529555169100009084904171313470665694115687592941761446796169676576780705314022944611501751193284182533932325117378804363575271418536166314662232012524571390073401501893471946331162416706090704402205912374851584477862347921366800921382760657741094530057747822855003363806910210041556767156826991432186401765284171341205184687365092804209198765849162029332300823932008948037302014476465629042990266869263535570888218413732519446534652127692941319572039866312047029007845961254375527560652349196391512487229287451898943813920361654362414860297797243779689118449983784754829355329449814602400489755382010471147051434925226383362340038673412479821403375510239703602815681327395607621460957321807468869904988918944550912155229253591317263500003628842100448489882318087224640181416288804351163952920737130655579635496192368470363688916713207351645796586468874397913051039469917108581851974758461781527051801237582281234874355659944211474216881702495842966297790373147408035226736920987189730133162581335417754716625070845227092130813230519523168866939677571870134444620613543788215833987888924461525426419152655406665077347331785710265492967456575820255800938397475846707279762601829290703413906022934292513038291099919269888946883527569359504560687550647582650866542137778461717012663675909599524643361806262654981275640150013617280354988826362948728854539732570324362720978127659757174355512679931099704171758164001235800791826249912682823149923779896817872801307761486942516996725196826789626542498971007504701037892903992138618396906027120170428747416964200631598870757121882768597402100650658245438899421618564331412286369702232743069690824813179730873616098582474948093002702945392083277745947808564814889862600071124631979478524351083913169242839466519706497393640464090546235174699083268230630009033951697186457307303736431734045917219736869000222202798172825164502756974359097199091602748862197360868082480096555026392038115647492066817435768860159178200842178880044458563981765389873454913169757431305169468588153880671096573270632265732409999537214069791214122988575280351980125987411490418249184110558068481780903946694512321786809756890280919782723891419560356826638921557685427460205441827999510225992587573095417581478072306126710746340299845984450322596232174274867388216897236715203030055296804090647186703953882910405007281356098369186310124631707653189735196339821954551835287097764716477016294762045578828090360147785323514521656961144983077384629953224022021743301615656109922930300345871532605215656394062360175749017883582711417192013582238261512523764525043213926316741894976089836404321803778577476501786278046974497855269523665719398501238862417111758493758274261154459099281094479037074597848074499038344699073333346596378808575893094629119539976098959935859213298157683591460457157814463396857731921717727330532547660781224480595329806458596822914272296270441830900230199382102013129151929668838847864776853435688470795752363095985690323811524291291817785505073927819141356220174568729260078179474514931301927160609011420817133492611149684538399659937028918832985829396062228619054031163369095013164336842297224777894272520877007798651213153539797976515282557848562115066665981761894154750689156055623907935516555173569270279721572301054532657743346987370204114462459926584775512743167187030431968999926367955856273463685018806962566374376018126715066364058527586267580416176640679944050948171681045058875912774130808584128556974227934927274652906543705154158181708860988471719478004258886502140788997338862339540812674573115898369819882280031263428007915443470928900237660098065550720876905671390301246911529831978642215993027323114166461175280941370374439135821659833777030247954911283754430998542281065624635136004833343606038594238605744210580451184417631548030355159159343485736377984869685009105508974519097132119334046521274342150177249763346350088023511288986245902667934669927547891947853673594410228411496347938166336106410019132225981473961687502548388395462720083066442515102243132319248449201045183040930759278848395974435366043510581063997296819284470581219434839445425080683903969957282949164017219082132325731118727740054758909121186986123960259010169150786020712864249934348646088475944149840421184584047745651320596573561379966269663692351514170390126918134286483722407007766371219698643702321268586191266515037231121387777767952099856781374323761208169852051858593515340241218607942030722733818011275339246859552887736854528952961418185329008993955627169614713863527554591133993220402246025287365089078361986472435756829436141982162319819643022024544256002705098044390874645256708275744674655341981121635157814216862409581514742486245199141978379503564954681583094313218563523864442464268129078811394418455337700396440774764945077030262517103818867714169806810214729364414210757050893404641981324037121291088934710779651121898662469916876142881851640181231906916768583004602749248918107568006805360746896231710566380947522635703175112439500888014927947907532288434569438832079613706365395999281337094978401793182822232523337548274039771773112716436529559870313221815250114073580305622140802247704017759278234491248798305423185465345345276688468507917016164310389456116239876361758277882145536917511621092723176985083335343555311119224409081457908728025911339114691604092236312920893496036808229290817076112563454108355199085904560508999743041527264124926648117258754412862168374607031012469188839348487534804919778280788083897409193866057059910304807614854578779978474105768829917971675222725899341170972847582004614164048191328740703921026788818411350791773468290096869004174155399851639444290451961386611306397747773075949702337327833783944628182589550659441229198137369243478162323149897217496153306482494693143864477079050816853321895011255837267198371683530126442002818075353140439562554613688472536095990285297829088210579953026603269860552499576132130229855472853415752458012657453229394088259982840579903341539187495008518050898688650551852437966765658116169546436805572034021844140722643798175334551988237158640011420880884619844218182336832512701305539051840779276717691155311998084451099884936808185095894034987741641677252035789908119880403542732036712491228690125358587145489002010604341918593018062172117083363043109633863864918929762146867283139928217948096746188419686073184221350424177897992017881525704593417341313929649110233789150323393712258235772936733929928980180201018575765465507057861446376459266767289152683155276757525238642397942037255208473409200570680240288580782224779570379450727295087480132394693638016842457593261111922961847700464889162103624354747627237726429549446942974177969297595279012790193410812973089385094915864936493887798335621871491200115037383034689628147695187713253764112363624657313914949312121928425556808225483788512721117671959400240877062347178629625841701816974422580120478674026497874383109474402153293239111319940277182818133479862090928352148219898930065370657679679784457169056202068510721341464491581702165272432624260221229961691155348791247316628726198585756302502898066159263340712853367383132255173262894899544452772721139599621255293335734106067622162253632786573493254186004942877545795810186583377903874446586081368126497034170646531762610523853087372941628471834677544205756784017133995612691827071321354558133762508925469863707708008655728182489526181191970255240187098422664435342171920581474404954683621486470646474566441048551965082610347766923204561475576497948829343631479446794427500955243009843289358966475159032527913219171181791616905527836929325073077703396067362728826726746832765633782746318785627923104985262652684861782036297410728767100224957274444725048087865369553052142964115747547712119684886641959453395019821705724157158625236466376118703269112720745071514434535722034925991460602015860501032652979679337372475075851626651352793382538631909927535891428481779264670551920800667123248518662602686691681413941317059514235275821833531563161091878070713878461332427176617875390055454382008579224242748415836130890329436757203486262512409478566819092265680755395843880522174668423528049930845364882952355031294348910071846796827887710513786901016561957432242191080380031201436055008553705549221529737871783000173628227677795512702506049971154838091016962134702594028184118299746949594702265234237536572046856700802872802444514201990588877388670630254110409869490552468441500219433796803855637263338315896850352604069343556596997372767269291175721119379706271256208247783250859563280280514788975948657923833038823837367608470615947099139592719872497026037283649771478611759011241510918853409482047105637962092481542174406108908410602757405109939522569444415999014162318514974348642397706346135769617510279096016801396258096631978982066338898777521628163384578236605004496626697392669786331792191957394498848662426867374135942921035311999676789323741309361994939256466944071664982792717162913196625718842943389235889207024575743402733297229865253602572188973265999080110369298287528758608369936697183778428953698565621901462795838745808214307134416446241714001394071210837712949475128109928254828943476990120454201817072465760524022391653248905132768307388295818765653463629581053936514380745645120745740526188282355876708657297640919751658670650669091714293636454915998411845829161711160592754247583497509818726994578854060791105397813827903491458422246776598505517467214932325959849872890651374976280873986202718184197299955976321524349761757371776200955985422321412398193915064644951368631427941114969115814927768786537133768446730305545426588100308155766969166277963606186528148405849992238514660429567843944102562907213656262324314896926364801756920309652849744965400598445309882096680184090229631445074958213752904124111570719963417904564309513762942724780788944284549456162722912303843991688211889573178963831709550010699389681412904364099393502329413345664677636685897446688467152173773397383712556911109170863640932079613359144569699958382956352335861610314424673690338504731408712667171218331540371153194141289473633189525217934405369492620084759517502840939005645093064180711544708489209156373080124772298514115909934543697508305535974366507244715529861110958925794251829443157115646279848458420479125349172129347883784697367539764515413345189413220639601361981675615076466413383922043755127520995612882448450301156792748533002178525187937609525978766800415688730302368604777370148484368367434929635496875527771462610021524713867576877340705259055759226361998926748277177778642639037512852985086928117773775693467848304267517030973585264290722464834777746571764252808632080363718276195825969732754898691502893178910705374559724123326181850239337582500412266653746619377054061431259779117291361679321883009929922564650247473286257338243831587865979283537586816350053364504847160080040947790355010253040866801189874691043810017494174138789067976117922843489232938049935086482955004908145008000073407504311318892232208885780596343752915880039805883080964070200479072801454938574428818092876880223130656841735066776637425583754901304278107508016224689508528816484329278537468164599879832276630484854285030866768376125181680712615650183039819911946815195034737062287613551426324167690147130181926218170647066141237066753887196343333157457048561080782364161255278313821939047865046788236201098088661238513384403320425707757558122236313743582105276066886129524175522124788410058801396184996321152705822395077744088705835700720283566608265859340897988842160884727411587742120823303266607526557433582436658332445011048174754996096000500392622079726856997135849089802908799924817474807332751846056126560543473181358102832008773655914054635204212395363905784385304786743433281854909396458034438986130846280944045965339427915360575264223527964186046621317136464434397479844224102941949032131990007604824208049228926210036696496062613438674230037008419225463490397698725768703843300570995422308843179368636864635686064494671196614919699560629284308741183989748343602662434835618545434475316919218445355213620257735182913297820967029517095629884735828372723389684485227790904398942450108655136668033523477457244868899219618177601181180160902903238567636166678018909097077497535640036471103854807549711540097461657650598364987918459246544890742084684951437974146829897652508194492147588378974219231772345940696206424034235867082595703616835203256368576526842373784604735788041130387047874900180878558713819326489985125838390780967862159503535639300043632686302592545838744369702266220876751606965061565277150339778437330773866280626075544228322476226048973042644662288769524952057202208642410907841634805803214475337056222760707167327191865652253016161744050813537735890823027523236506229040842612606062989483237545904168974863869489519220017603054808159979057257025271034452372841527562677686604453630551111336635697832609893241528819500764348742965315572190482212603362867160715112406368098349892442291244567146649606576041575366661074335942813009751821048662530061709334427829610690145228441390257455534380461213245646481178680255934293116843263785262450592188726454917669263358325259090947379356888502358850566318617946802911169717303593798072000723492268732209689666316577538159911117841757135154366494463876270771644581023635925268275478543798273309052555960628469308959225621636386405090049652744240231371117426941831960573821362184824117351065882677978931885173054880276471809948216735208743692863172360490302394817067303932377677131671637996720149045137172143978435979593369300034852114750834948808983689997863663703399173404821270648522925028927481854123528107281990278344079200595675339802705359002142532583028303435630162424301319605360653077990738226055466165833626993535836005388363984692262539193651593574234187271849193226422930329790098150476017962367916455669318003283775215605198121398394465436414767200699353352538349679810109812367800036619084078234189951617561514804058688883680200882408647482475515153685634248804297292053078341909943025773783256999152545848443524166197190416210985321049957693130010140370129307302377245557822987443235784961898361357453291465760167481155277675869973602692448258594080203818867936528406235165368135469564790363961232578071188869633109715369582388731985939056895963307262795172692960609574116245291715958251362912888739162733050350323728735786546200421238611676665405043077183080977104436165953454102299307136455149299749475926172209638592897702387784788514856989228412624196611558361968327018086883626479488440146040974916816180169739192971229099470862614684225112789838375587503486570511623465943385690002154665582580361085162429062692001762748981626343909592770246146764614675937492821149760108079782013359790911743751804238240901080605248112104494316944902096937660552016395841957840383381803644518106667766477148695261729736902693679738029912489735135930707286325995164836537402307121677117475466103689317225892380354124915590204643516388732253165518581853382373968750881776321995545154240928701345058281292014468408737592210947997672642073394252972932538775142482326502604337911652806540826843851907667172526427890570027830116911328857097255865165622102502816290849433321631002410825943110171890683524094943880545245092938326012793591613564694822920631509746512195987136630224630572020695326968827727554464429995554430204003983086875832317327812956665164644272150733844863322222772778142147564118406389456945448646499132972025173729308717425377918693200432282690012752654256877059619028995454314977643512388699919881126619970694510402693450155024654889626331743385569281323397843489577166515881826522606715345607636477068469442388719256236189991110598545704453070830727374343334243535499445618356585417846268625839002174658279558790195126210258251083461610015609768997490738043375730409717529299003983936279809505027248803255493151335005056339350906624225895288375811282512073155923997377155494216539037304426853361779045261790104202077570413668900977973313883015213076378946945154454145719088353860580027687662164970749092287770613225045729643897632558431970554561718275918580203065924135879644736646022466132167906579276954538320317446809084415112476526005438861680455581386167979421732134413672819830153962675165005900642160372279886134883829027036878571580792871782594564765769080537689638120392328868575104654750001724897340133584492072421488546429431067885946681045186098234512058573744860912375016612713323587053154201445261280396723022421429439441993193751828972294158266877407441556769981313472813944047369088174575852788978112971097616096561398913500797796068059345308645120854728408668591381139424213596650643018144883381647912919880571491298182508817215967310166036485887553240529204370298075599833344348455355323762526211290956393607171866932011440437259228378884932062635564444923679004770449372813627493009377267010631782805067146864668499110649722541450653202181984215094167859528132467214579139958346418486914227915872395332197700280983935319042765475008558620292646766790856174650473206342336497390875825220669615029850228047876781143172648148688454913544365195663308609639461871877158093662134609874266646361041710653522515162038961368524360572595579856930375867564672530020344832492237951884998461251949780887848847323495147934331461001199090650354790797393311968348075052804528973333299403111848375239907460930435497416788481550727153418634655739011739162619010269037549366529367485514885182432102813827991759360292010886647245120981626081882299463671660350913306788267442277096459128908379394578560722099366348131595348390316451090070435437429599488981275258102074822141399215258008534912577101532948377610928873592097833164375025885471903299585888544370303825993278499924961723424250324602066141660519711492622530911378680794600829762524378551647577298787787162155904545487904518245477550544770940492471255997459835322849786852360298464588382326763883558053472278764434332920041203381970311429636065422968027780549240975067590641024717240870515659838174256045203241497247069888420738983228379674943515818662978839337313616925753952422351561095692043294966252668964635119619206623928806139764949015181693129059365501630413831828304099841777799155556727358712135966708324515233669591413789022656341840881374701051984152413654374574228026857605477957048712466500405875244565470288374958862983807563981928904676379045235317074903777584267102303413537032547943808764982905130636543134882669841430914404872466859316953960544348374276268406916948533474849777471389269588647969408334169507506973384833864933998665342727018290505877997875101519717705375373558378406382750486208582669193561939950210225704489488239615615544956523695198392116697427017211413232480992368695148205212500863826324701868239468945215331115613985434127568410825342004633899097867468869298876239659088622693713104067418316079791876545227142246922325197526950676946538381946514895251707112839206069462786868550139651344506088441756400026754668414421929517880352637111769499750870086813970108901218121225054904929965829937547751012670162311619312864495044691914731888641741587297829304235140573802330981121726786271314449390555739722793599510452460386786526032414434827098709798732487331637303147003380819325201409720701084124065009475541001977330834261003448542979438147547199674562891772507317559879386059627429497477035734585510256466587655123944293340610162737282170472499730118102364822045436028892035579665196470516941987934988190089765424566357835638257766967975339769875931630924171381929662692318469822035866643004801164220229868270069785366416941050953007983837506635491586641816200558864885358637643352433812317778724343759615639625598827165679674658260190215226412740109879461624234884512796714925104063134958303706323496626698812151887475732231738074532690477532055100728406113564254658001664134650607806482582280611227161465064071667324083275975113610969205716301382203516944192707153144874728084496171666067692143453412943181924858337635571827169656719934546296131395436714083947585176862486793641943941047951667965664832639306852145082891580766183312902274761030886546854349283007542087308789053882584281159792950234054855713342545346469431324458180112197243036325358395866705162444050284369820477579505411232521812839005978239653784306081347743185654829212212779267257393357875546864467776854275663480982183175256800376585120849300775771966329857038032185135257036273011074262544032475574574675052254673018854198674932441536242197514078581937314771404802562287456371509234370929856978579434429985745931094097540656542759691159420535526251576512345546643474919828735295595922230686754410538944976157757906299544844856478093393503438110565302951549236576030369179194587777144190278767254693240135119044278787965650712596197477442353217518232811248506267376043532516338295484656741562951177749202242895640276890539536899343220878085912210350738828263977033776171908630795606568822839528284100603036713166861639065383352198677094226615799360487466852820610467279158373343671074549975817912549117680454851438752795874288388283813192611474794362106470374284721347143512450164140941191591700468239191816397851441164079059192237132087677887522730652451932225974011530869476032125735501833123518677710469357231627306883035768839200497437923636087622378275113750413564011270500871930027808175807910940840714369750251788098815926920706420569455129861097240567927187085401998544008099395411666595767677435254715080617462134232297195721711792706332295726979800587485077260223785713873964322704309069220448625307131641632531482344292239735456652094914733201815003377717190617134057422806127270346504983486668309868764735282219682581322784945138626503669255752141815460039271353592172712761368300940130041208721171635773526012429841024109852870730966484872508070589005929836505119016816626292912278052562511571300523933333735918291019152313666414183642554713655766370331507819792038344190234751103778574529905797537048438845245885823599869606762518482946236492300840948150411266634092085618321381493405499767448546508417432369090382778642956310929463926617504695088122890026564993006550475674439372332833443413904409276486473651078009446507823484433010143654141018440045133443283088517175268124658159783262137063104358815739334860301974967128280415792403983706540952922137039330082406330537889553814243791809364609678222129163570941086345127955730538495100404828147010831579016897193600670907859047742102298071025796797696311425352406142816260926423990421942590777755724451833928629535418130284462915704253246049691321105236077745917073987896548722605065642854537825224205859845978698818357894050902843917664912519304507217479950609781515869315073332155128629455308044669553501446404117175746171067237081830228577516823553507832331522896893115135286865567268454406622765875392463034734647035600637007638052840935855385107768640032632605683277102559828698005154638055189876752051090183474468158838276596140673368913678838407629339412562666190669672689555564421034149616360013607523151184413725053616560056247951930835404646379297187574834157168603359700873658746414281648082192005848207142888754066241412389692330620541783650663258377083247246110793982178377389267581734652001039251816508394940371737620215771723929594386529620453542733496669545975148131603509423613770916567812547827061673650035919288475163613511348590176551871602667525313254035866525776570064551237221561380248353379255979516102835132382118483995187962183332542734948610085251932586835629240449129562035056602589217501658238154328210371713821296780684490632404507730161440467641999166093585346870487382778342772051238047105818172871024873681204624160183534557716216224363962813425051733413144479042952645451103631770279406218885185800745644213643661809743355100345972752777938044124263655793470076550106300157828215992576035845545772643348733333047280542168125073297380233563546995650215928787016417982876206302983911927996912621478458433718268253392534180803283417966235563327554356059703045537311317917545023784950676687975497823423613152338820521502347745182021469915382528313482402672661842491840332157542162827725051864632019190697989896336841430710484809179513911209571166513141588744995158155354612432031259917721608981060539609063480978482490890919726062410370068000468695481188242192808975492754982462051283653287234268745604277455910595092686605628898070879195031028862345875544475590584847978193163303280819863161865532268555246772368201396472904009231501092803023173904931442559785269762984847715072627850149552608999720559730438404409793127919373714779757569756992684669230228617703649352447134556239620151594534445261945399571119875689177446172211716394023761611454581698512224427783636328941159506626830391610526623333192241078415102747739139739285420612799749084130984745119488740512837723081839723185943084661912559266551877763610215098844410182482080741192069942929787145548714415869454210585145979172377885878731760352979629750268364884700037688413943456778775115018532009102585693602170832446003566092770032754585541804619062958780076760605060336556204365772108812509574980860970797384625035083526232277679593860741259098880733786349960119144317849350862624990908370220675447919678086221937251205840408754311980262640542784729568954934042039692267149443868063684679951786268228092201331777710309800029604212133387926524291525155811171725586285756003308908535921127931008256642997974134349915404814610285184346088421591932492309604025531010011050406198947458527988628692412325244790923851767940215448430683562125040029982637618275175684973262930352676874353190953583755052326242697336259295900108758111278742288155182178177310604331083809179742330908037707230446772209315629421114189252894226973492387895594880716348697642470375718253847088166473138840047276334432859876194496885225456789977792373745310711119757489317591976949082062975708912320181991983068446784529554656794820190426314848685524189943349859579090855171701401397930866530322741728789329602057789740582682819581579563571446918715884562938345518514750918389098001187599216427437404835743427004821755736875229592791163394306399400950146425144661978369811207858469127339967253108837536460142798566393933335352782573223761570960265511122310210826214741096026741700805397345862367392626372269824473894776281357955757636219212808633274736627255093738796741410378308882424398882911033985345686074407525658212018109900523041071232937015610280911502170010503946025729681850583495490317978609729792786432228302559159679234630369200666491655681770125782240874910741514442447958771338093945950303516160570019484034264263480659983440634777405935306646268389468149595450891626669403389652950806724491446664431886028902777068896458036147674957827866324795115025379078921033021022074788864607194703247914511237679513543714904573468717183349835658342199961062575019381520417858851288347659125760954156842813622484981923597401719120751946793425529972063599353089760497731706930859943133207387612642219987672893153311333814306029295723048904291353255818318840118747003305056689165730723500035472958104650766358840768354321393919514045615059184327148306017622139664641082141089586985351782437314704152810825859501230890395493818417399094489197028727840495643071155322401191405549291772181947957456509575580287669370722620581340190558331985801346579225159935900838058023459126516017871407663944168710004940015981939098759261984339216087358385637763451730579644466434102546472062654359472597917733807623671392692337160102130328361991945929877216093149489750294718045042673546564656259703344761675408398955760007656662854601894929514989184584212057785335910267541653004185209129952085500003765610499034840819016695604707421252558977281572489852845005216608612994012082904499677313691980719876833782908594832223373741428863348127826035651663554714241100728574708801813823755790670699595782566979866449334594766894651917386271487536585977845776428475915900257800686944690475068752448282831645485555451193070040940921337069158247113441661515009557991627870027583789844620751011608329346201304247021194111072002392837033027884528067194968206446925888838618872395797145461737097841816545836765657209186589298571551604532870975265803012624591228229228343052615764335679872467456240655063326644380907634998198058922765404676652709732519198193565426397651658012440164802318810826947140502462263832867766950005586617110304222043225712178362108124280420964924214255260922087858212615520393315968840347634945321901905225487588897488438401758364231953628272616067356337923063186095896668355789694948975122534756445861662530550866553886970747979469017679367893093478204711252072586093353366417888098213470121806805574740489006639271924129293598778648125761391813608396867022736663563356770927788842336519027352654347366011622148277073665302635004824420807913377438546717348351665972969088407984484236219907374405718891080219380980297811179887942672138273645867075536659404327156915252994170591440664954211907383005066516862437888695748960403494519635467555616446820404010975813330997505666532588748206769623065163272141133571699102561337074406674969817209335222258700583488984695705426916008261446188824629432347737192557788445394809857917322546276913486641824788276159184376313061761220684916447714679490539455781678875903530694181346822844108900303400428402121222263731868622580619974241182623308585541274855853870958076793645205577326687008233420972191569171845018069403129648754338071519698983965466232974885597719401797444062329200935934011131363390654911005767550288924837199409097462285778120488581956271327741969391346566899002911690553986745274786000352558745522713590618826243776787799709369605684024385437773986369135604561653074650366317824007002687899820868558970931601181466696806804519667001973382801224484898328860644177657717398404579114801894990259247791163955401319383264585005584164490383195925518060048081504009815151221629727791879147464600435005652218241008008814047169266389266225335780895345093055021629599368389114795182809336429642165626414452729510027408805853218045232089279783322846081462025551954426310041030280562483192289483181493527481353734881450228835986612624062238861550906450151246481288376410095362718062812594126685546654442497311089123027439093754121705873334077956377829480279401968705252030128609256878295893116543092296060956676044777577967277979180968737819736920099642975624834099644367398238148736005125018144538647107821781486920145473490707832351331801009573884134377954563213261799423157814174257419702012271668433265191128241108431295386253178946043863071563829107174898172946581503478738886622450298333738383908045745864979359869653130501392090211854049153361318396854836090525948971079230609954447540136540765288471035828348263048571367328585598550048863702789824350798604272417110841189951380139055246153299516197749660495567684614621298228344003659632571689582168240624246468111326558279466689939044402144314101533940105554055124514190959143898026318154297233249907901866097188145318998704768938699732626605402639211484676919710737087790726675629218407042693752861941578587112200559348932443959450013655397348190290476306866294310333673304617545895066547885396095944614912830961856720195902042340567370616483770955535615219246954797905752015841581057409706964716397109672572360131001564429575411142568163918170296097008150182969254570098322917636493889770347642109003646675194506874293088816744475239619461913201801866209424317124901310207669190298555284922333650883494039364907746739541025813200103273968705934852263311694800357559782394441875878151371794435216928123935630500514718633518846140022599994517629089758940767694664816794206374290878649346895234390904802044304765654639514028585438194715750038350678456380855062676486658029439973157553792157868164028509760815917561891075821923508094158286663955003137896213684721612289967222294960504396752780705143363724863968662071174208005821413613877462755478795615726668036107100599798821755676461321709489518222460600425929156712461115210304236796929928945728819061959203582055919308624840409080910977302176232634157151049639788927130515345548802537678723263446400549772719803551007722000317751886795484768007596074745835278872423061891052019978584925430193200581757317992693715650880135252236429129203065814789852612707251809112024626622813299365395309392948784741335217073762153336198370904412299571757620445763999287310519645009900013078527021749011680973458524431443161661226995791319866202601090625988846972144168137185124468597606599044565760663381294950171246587107729069886068629447271727584481757137813418253483312818978734524604320094485018657771750716373543797048426231025080398765537514032746400126930857657466457059463024102127596011566231335660599193040723174296145343810713454026967876313059510377285917890940290516950336039754962661514000985225666060102916539495196134848023242615285024032583922768951272103137217733433581777467002287365818913123287933557041091826658308569026841554176507281966022474359553890303847217512762380278489244275628542936681514407234279124977289047170328032137137170700520574808419857044894796644085514209734448209370197083306857657660837983410254282216185569997138033037873411428928170986386069477106138743566875852152396334978499996743799463879402926912602000690911378315379308389245621567192564148117140369032346311697534576882914220616951514815072574550203510503242349202871000932652291945276372616381077806439839886403003619241463142607580643413640360453984266697172525773732216649497000339264398672601957692466773635051503571333226878772473232988249543470283444885588373485666382095383401060859464089772008992660854489947126894914036478280887502028655134314533534595343781134973808323878225648031880898116014263511776860643422190352523163712130305675586896749558154596983279043824213442860212760185581582933024865867226309454561333307723294792564612571100191197170161580367083363558565022060848345570835032832305975194429775645953811338195839060420760019134640656737500763923505625996365637170358277112786453112273907262105309979943146545402882772791982308794027182221999721426479017009686330549577839921174057609700106950643236976417239557965299649443698023237634790964899511248201054961323304863133548774111326066936766545275215642349348343612066138797568796904258699294308476372336385527709301316890591427112418840513498420239434249068409432269172312923265996951991211272162288243032234692672542030047447961240034687481664089614000298202362081866468660879039932227286555278615964143288670277030048924685051039803500090864493532425792254663447909083331139085631966506643629680332372079050165734593955675290887591996992234856668798472681497198518194842973228468966865934619435045991709847456848396177121626538045369584941524289527109590475095544640458603420718390450074167785316225028543379271620437604535561868655208867546366202726773999679363660293051099071116539011230144760576410606857721103731145638188153483557772588416455957595732107518930214308032142358073521443744748653239598776945172403913088719170278928908176383555928421381831008066282709771070583370548009128229495466661943305477273772329399855586081719233450796615550549500472325936442696102801491281479834555170328422955274944462435243322479233767347375759920514771098408527512606280700250511568459662427199137023142012051828913839715814214992801903921608080409727389443382008003269634255991660785602158852592217623526751749660858502013530131381351443706749608656751602630127173696138932635445735635927636361470090471940059371064952013706006779465766978705750764876694134510532763240504281702117484993037412378928905302126645751209421082318332693497659366605297038766635407300487748207826665600592463170767128774864374817656557750178671438016696361803726710953332701556427043538062220702371086304725753036030220223206834517355700996126625989079993495686377185770895469685267882978197734095407263266080155387095586923407311585657860185181587967001689103672472279251728789558613306367489839125278409088484292130206101773280993902312686903003828934949349798225277622021827756790434844217409309928041498076626325340033187507671234591563522557865163278798174818618815877837416873899598236703498043683064823971200686619763927944630153922427641073098781999898599916181022390384065654409407596665251453366006960941716926482811893982243166359614072896016047342549114712357886408704038022104007560178332970265846591244756043076483426933211953529561659961762369500786693766008910971322052628329035576221417298315463351413321709208287417543484347508279282614227046155230237534416836870534541219150124780639542911600150609651034287992263002641276051023760029685495069416246345111472486720975861521056693210828786337415326729919779586886327585680287884237396110407553361418410014248217154701644881269078581934969566448298672716538727990273764766812426229330689877507064585523317777975638959390393110362362453598952389358991813371467186996505424332026272236321069419009561195047610128153627219445842934762754987636216380910633774226199630074680221767012683666360459824192540589144021967423367751539261303007113604761971636955639027415013151089480628629819994528817723846530794053570188661669431718492217316409413336703920003119964809777136322655891098227893742269035874725356824482671811234493843429694858296430404966315691978738055885356260195701064813897900388394473759917672247105502734028236977911697471957749391301355237971653299671236092966320940089048429232909293452522823069373739957422867034729657349527060705106384965370882984276770180868126509740034205507001130478346581044195066283506598801722564848453451084712657000453068416292073035473959779418221568313265276673212651510166672744984465550078647095664401959202714287041551474812277609812268303461179140722148180022795066939947267139268034597412428001432598460224754030251597734442015213417684435366401569702017357317395470095292217063963736293973019023924582697240709563023111624106538525152232924080874099142569818034109475079212518294751923297726668024829633975562668844904247515536063402681998008056683470289062865426283879034126638331508483097238255904966373819702299940698544098964147590077630501474781579463281311372935166447018693870187880398179671452560694300537337113726493229603592373421145685554424323843889035017977464184308175915249730520891698946879178990295761188631107475065707144185777934145573671476261784032015180776677563017563963402677847329426672046608207860297528342282469370672782899745902940451630238141221168398627334205724042922651700636858399343023218701929789741913519861725972558994964084645208811906898044924599751219244712247196448948686166974390630429751873377370466051602408482982827760346096284327084483919796214228458123636458480154584110862174923528142239160999020708478267520471460464704353761405745216340629367567169818670397782810998336186478104671693338164280942322700974313808655005166699576996159205653177583711296928733986714197567979821126927476924116176365156824858529873972061212006811672638167868208294102606393465204997411402115970442591201292251831655839908833952595903082893587901706600928030408566767641256874389984106041069939810426430178468222129512814276790303031611384590168533095823263277478438668654541836632721760162580940138353067489214420308196909365732955178166161818447754380487174793792541458744006887050365201758552022705518046570386785182180832971962147049525853409421761523915176481467522843860236682448281463813412581094833070921272013541847286399192527403547142777868467367211435140066608524057939319216446034441086845801227009022329664269136213830808350817059749483807365756091738068291137528095237124024963846979262194590614531440826398104562604179807932164799627343813160057005941778709479100029280738892764314160879652398382512176842465156846529592282847781952213202215979417675037236794135181521458391451850482056378162124334593631288503710091774839981082714419828419989493826670393675725896857069404581942832223326088847388721268335931949583624351527321191234114107392147710050675937897428671770828343260084307883062031984186524168761802980724294305322215786257238385887148375094957236894352341750060032815234638760441076589978753585784055304474961118769486352384322752584661588274374436719517446465743451400105347711424183361630376735702679300007562234535626435884607682835739658422330153175290828342053485716474703898935916897274483009760639512310645259884490299094619243156585777245715448697550654143007651297032608854585149466076779928071872293374102700664465811499540726003736557253561990136280345437743025024593663596277966444301292578487531484059781278050693003509362976848158267282621317040371100243806239300271288669551480400731763861122066138923146064012920573657147969078636369375081110286196993435595071417126469236403850430765393505091243969992000483620827721034755045881677367717183504810191211046335577320640500526947310779406145144325427805682842057610835213218150433341231478751575484337570324519007666733702994268712973526032936265060212316734937732839611110937288520803398177016450378710836512892012595044807731319757107789584652692452387854857791242247501260026696650062059698439699618464721922442151161171934721662837909521527915486677281345248732769383851000005890882333179251777291397732800640037571195923866741417860318787287715661280247971410607125229727957345814805405923596696960253386795465300001799207424856341027476733941499338262754518263037662399682412100679146654443747480446004320382952556321298423117329071912811806211867819479830967216586230488618913936129215267641418097395806012883981615582639596896137769205943002039025658929434590835478187440253146969365370573384419787827202167580827630038524793417963515417506991357200232188467310602445471003400522533365512645885714211165481953384088946757010254557331460147220635738261982388112247686599305441017388592434190779690927731809904332617017907070036677071574907889827680325293305554140208279114349896373806988197894763341095805727056684761445294927274895403067819399797450913961761621308482412251536488532103447457296168766436273280491571169835291355581384400724330428194044895974565964144488248890677435203721320096470331076519800344470230075272449505481656480311349498586778629017647866148721992863826018355829949138157575241825522634896608749161339452583956553669419988095125764267151475668183608735792711287205476726568327896971575624533855718217889586689021425698339813130885664756817020505000604522918622918288867050798867689079780640114571349855856621368650887537825959771237956534459857127924826428452177102066009822971107426708408259745241315235353143832156684150359838874149418479831636193578609451937937160610692544682260262581530494998006250666828233221113683877590365293347737642541085779115516443456677400036185628638740563353799190435166467483971726014402934981753787892668011123212804258302374969853904531731243681926720051405428604715516273118482882363795292251173507480399786477083912043555598299259476534004707927425934154710651877279806661805615879334339203556378722259859427281551007779588179982239622752568819663592981934885081634916392146953067525990668224921901524094107519606814141502495263447263238113391444101011740082658451846419893120850467486013554913058548984656944605334237645519734526490924513537178752227913457615711089067528725860347181325807006403900696075454574040411309829927097804843253059419020292555525700466277801311539537184975851380489976061370010988381785348561380515266050774059296129317536162185659515302358955474116384169035253057886967368916264626386593124562041591848007026642986056182790034866489276809802104276875949444523952989599413563632322105350778110685665018210076695008359882861350709767402057279586074813583102005242694185481885905302899703404495775466919146798110756115957391488871887483908761570392056496847007265140397744624143830374073458062169213949448901174379592242692009350939997365403183065344080989276222768761069500909356479899714105409492704571277014875599023024759250206963172704726841211053102419377101768723655660729477629305613233141033402482919772415235473311340912405255201522555760200925834814253314457391548448076856882416779254326396964475533589990175889206655140476490269544752104699048272406654145996517043386719163753881547680219621258674533177429948315334119084859625588805520895933050665659077417852293823580555186807996229574980751276480541962893290681940219517652805810025941819936050282607529580710066011970472866481188958869184922012711282605552106225867155433470838824710717262929997364486955738355783488227082769896212770959309909552363696222671598093059918331606904523040657227850345377709122931838826576202025795195188570774617326296052562331684285630322333378864527901441230723052575304093626674914106225867552771874331338447118708985641306588339019911834031595836662419619438373525583339570329135274367665079827742931165473670903312520027223755208549569866951367192089598065251102476096757184015204219404168081640852951360341579910781402171653475436874192251760906357789412505523925221268894774975700736028625242605844212358460384655592266859265054129056439382824396713588443995408664758182428184828907752878653980517116738138673207734013745963379686194172229851618160940146185908712583857768282706741162225199294511929441486665209465341980573968054698796195776570477193630732317268574116458335371207149522855356255086312247305804430996085805817629559770059687854854787774887532468796119497220469625272260913713717470850459247517907950101147187720524309204278970861517782626018944680913249446089438516808062335044666378048893784696971429345362214927923276235856568207205097748922246875549715882672426940298058789911371153602780952858934342252957257836454454250242163510144802600272923115795400107980219933328809051839401186129204281084452257597437151451588173412672241120475496269731409262562691139158952254597372357858760472368002110721695843573703251720919640334720653855450261067850504618463514987537240233127455942490575040606951250390549533311883100550785200093514818142333338596170005262825860837673688711318571903667008972701470331713555114320698385341557422162139718347733566374846533061072701348808807557017973334109705006564844896540532796646563445758260690028295332727953596141771101689267505155859960654476137868863669933639053379238853986613814210211741289397829269965056941475297890135125547585438638751335955062288389441363041163499661083619876785481888297745520111822562567161804893580350261670870672845994748413030929103809397544204126205659488747238842685868006724030503426248156003870837362631882428985301253774201397820142733000373384633901182589702346099638891009031645112865281816920265821244104942814965481621833740809206215598820977261087256254673700070769699872332650673081251021574299738821656212483780534382451132438107932077741685680985311131825397964163870874097968218828886025711187185580946706789286859566166061703499837139284621424576317808255325526911363370766067106983162848363731483320973993018882000329892910449415185126921896432791585472913339813293763687228103883153264910367863354963858300622408444186410275991839836669188336714957604429777207879808973617669936856320138239958628151138016354445288609824275743507211020906612200456846282497310820059686794049825366938436656615314476691453095140415736190941258663609279562618882593185271459821229851215276746400967126012386021918442545763480246381120994562507305833295587260053627809809813665621126095197453801057884784845314674156359621669419570770248120480731408144447607607576333940807140065532006992794003291868065575914646978363905711213509953018959162152406512136350510614696378464105532112419063558053809653807883059066691404803712501485469581017548237548749022269387665186062703266338740549931751338220167044400066007080247666217145556885919781734480053657767550739326250854910076202444624081050617629311480241306082727200887224436734731193412611129817734012888382070300131773198635708321569359750659802966830974129942291630371924825063354470737253070336580747018574390465865869763262009183970451176486479875747823334647374174459584256861938283168239707951170007373831066596763334466707766634341844072457798003871026257063029997773725933404634474488790897693966179239383313697441042264837716025260102245657971213221564504026530332589685179784178545995264727672690966620703351780854296745039708818359722242404117799753258325014492559979374571801909080538446776502732668972755230312723905065690687394517669348257752907661572813757047916736916963706273663195914258194534053006608796688452501127908673313980162579277053414548935588904290200914477766783170731252895261924899346137637673372157881918146593360694293301444812797471092286670338044799515156720710383585360626535148962912641137404859007141081383550777818094870390644747925058522654447013543019431130577120643961495928667687455254147292771679093903250151638568897998090473993159481061233465349123290579103259375343659651949717284885377287807048426079919635263853458400608595317128421232312863198510294801893709881072546761620737137007144424841761997230416834348543598691759408513716387093834028639548442334026962120116436568648000389622895393096475714834796190310219807011600129554631760183522597961746046306818628199402846714353289637748021208973983770542872838996578247766129861344823949170333471025681921782089976702134652445773296172880471197950044079425291858735845370139429273482900131279548504270963344853262148792816191082637120603121281698266319149985052828554759124181581835914780476265565164061259064076619616565880172904911875718258681888851786680653350928855435475528414221942102783025266431257438382240773646750326724327170434681969836531603894912135837238969333142486152506418270408220202039509911052356212015352233979445347204142721690069803626557978109937704253446322878745968859634058275223163571196975248146372839009101560296520946407790510130106410346856246890396708238265851126687140537974247916932595869172248546670888109631345365851484397515431485042702815582188303607894541627574677575989092212274010804346314982317060625283560890339618784080409003168436822391950403262035545205311288978011115651997944397825931276716148518903428516270601428499212540698105938244449346925022416926106439262556929809237431837539544882783612556276444393369705081052207702686263213138922610752283934021867123788075466959244756899821879846769519563709435418421631151692665298425913913723302094869768611433319044188515774664097067126953577330788856692905636033144760885592648453540636182190121044631852665106212235520370531482523670206492128089468045566118192343507524118831983003457751642516737173279251847999217558808637653190125503238036698781212719372056357604013543157051258298108044008948105542343837887744022315564571075405173731432396838705152789503468657367451934608072329779126199507167201491939207373270492728014617560614504099420350278769905210562912609117597497964637151432407422636879973319282363073356516651103293231324220819800400810716729233648894888921149380394075537670030952306820265641937562449537832976865501659033868082324343008926395104110965602722148726209631062216753258597014522322954172917000248538869317031147311712816338104737548545566021020298081174537441528413727692998875444363759970662413825768168318339917915556765455688266998410856595011681499201578911022494664181987437332454755125344570839985969263670363800623333640766752828053459542154444570816490523243510193337246959915806184493999604345683405689593133363830139298540111562004277122010850851759663635824879333634132257213901138316019597681166162621977561011655349383308461219758296632765746687886463504150940847178348817258183592746009442175005183990758513766619651195049649532553949645494705719429887197441763583045939474534864285261942628102807430745668128282276017117426771711263343456629500109394140574580955013993779604927692041584258692421247779385695975120360710047233782535953351966472921552240279457027888499853191840372727564914920174429928588309110754407678060621250091977688023430737139623616459189645995621030849188956209614906059134452404779207012397166263499857337127362801863132346463643133459288711014847504943359642133767634902356166695666968530333007270695899102235230961027058056585157594393650054399303421652202626559631474061784340785740646690350413470565814034406905726617995986524010479244005318593129995360865798175706241988421487172751323453682583028256147390910865646634334304891886956131000206319298026312504970604017711114624769679484021189622863069107826392239261328193183264834480612897842806412005267539638471965458337631839600510297186502101565351203716036661049362510669041076012936921795834054925626519609089741759876985708240320654345574439569540151756038704092386687967876272205075412991600956687679494382967497560526346743776947203659470884338768539133516397309497074132865338905600920654624257240259533241387711145996034597897588389664471597767232508885295936615984966295285244722890437673686832819154881218546454165985567147884914518899251432610965336556469530437918408668450102534105675656091432209107124430917388280718609159766886295408578309081319264085979429219440094315405289774143462528077450614853064969085323046750993715742009143474741039433904564057405389187904529382427859036323139642176161035420671299204910716419032888263936775875435808591499687758416378838757338620955855028307292806239131639032629957275581852030175204244882599865739513993734281720094680295905227949577315128744685996511374454525187004362548096903404672080050829346802343049493509685494329882028388074264984264356022309238680224062063324474242264453571654167120960968485643018062228162350730330134400845011245310090361481060731258777273316151489610525516510653635347332904426245523759801713342392832801698858251517213449053850422463021390288670410377731500368943686256479454906461323626912629078490280076054261795580396779407620807832148431710537289942428255722246626755871804292396356363046274684207735704013093034389745615472614949561804163465035091558717756380045255878802728821327377627504506012541006142915282320300364615478696326849439579387518874199821498944668726731097765571726999947082959688313335916463563060746501367978847978077779854992756562706027129965313882779260713385939716166427583222206696803659037066230906129937664706641278208668369065096200947141971757600956751458582579295083870252156958979074708173768356039769832493000880390622659616841384274612878788323727856388024229230107450815946053563675209349860096619300413557527697012266897560222150621154864829107211921117708935598911076307324633610827152162874036821879607289417136943813380154461443353605474879269838850061924295131808081439234929682467151760876578863225024457236953010671824761590257107444697983886323433687361290208325256798055261007507443803882407637126255950951794929644270627093318160969992510183957571019235346402365340878979768159882415869540407727234412093619244348751687726236178435561250067996336025449341837014451603594905621802931106621159085225936284222645182727018881637976276318538316582338651736950977160283262740053675069500234801807544948809106250960361962878863799529219153562470246953555054808503960731910495625616625359468432914840699458591742751469104403464637279013423648495330097556616391078022294052872341577000937922995529190092834665378123823695256553133424929823021773042223406410798389471864752803694747928034412035725069527701374537445774183006346332747467833996946349248397881028070106518697660561283707415280019385115564374476303433704433000269513747513737412826701793418034572559581715103425041821281125557684774480685062452951818949990610060042134638461344211369701842534260996723407388854711309769527798619801791506743641406804372333827244332340222969176675996349297795991436220486188234272664413850674614486571871185250608932554341852103377225306784247069108621489278744362969107710610098090243845224341904172706186826935502704958158489223863284978107083753066103444901377165808632612058853766975744725037641283311029640676465782918994479807575331487725337408468262210544763479834223971361202262566743036252173701682998384204505260902601184052447452079097862232933057083247744789056541359192820387380732109068863545115865957664470326523937738569379835300200635909116703863724144670214896661119508221193328757613935837619607988159413535059942131637104050874449190825644067319328337727848251881859471332898903911463750169918896268515205576975538506040582687994630831568688885024176614236334782435899499588759649587888556091609247699388696381968599207347788047698710386799189982297138177234482970567293372618388345295791224447800767088138504935920250949082836475568360609257053211485319218870304754346686122120700202557142755455815858579312044518966697533102526526062788260257581964932262317837254250899469165492180315818652159893828445313623161104125967132977624240437428968603256234677658249002223416000101949216768057509218402535463978762626164783801664159235670303843462444639010701322414648258297355331581697670714489600419736747632989734607401000964017051444448053215488288434238207461209263019844304804624859332013653726563248444789173127334037025226978575908886224466947738507874427928416006085428075695608584135175550766384454635545947754573309089956521281902466447970279890129453982847344180338014014413097675003341575065944187971034947772666500523465517549301475514271480384445494639946803890447151845298275254955136180118416692086904275830386929248655974532186968034353419484050697144479964296047658344528620267716179678549980457427646651561305445072993739522219526304832786507615835956937815025572804653140110258512297832398662146889790143973123513655879536715593208019327893106528991724852746541601878760770725216442400755536707463964721654799926635057943421064973779600363842211015018364367847756674941544568299250201680881528108248020160646628326686531754901076382929094037441565806888621295276545104950237206834458661316383810376821629637260795538747237771054130802382891060506512924177460430364786297024332478465032105370790656247526271030329353599517705832309957063613203166378651078373022530032059635910623261738686327130600131198963211285675965424380898796800268986627152015772458345418912687801165059444229466191375755907824469112232748595183427681609963476587746485454717983180060053178986994576102684359355715222668974378335428046760550747020533389461390579055217140015508173999926552663940745803635415236895303952832028944197418368879514075959679654778364961796035882888960273126197503030494886750892754402574645534867586275073039449432831700922048421314795137606791017955193640347930513854197827241914411381691542842985501384141911652626054152346138636155224655047341146436131990402882390578824985423296225175392435259951514763472218058368695387926133197089846536437319460166454301304311731781842090109885079604004360694015708135874106923750281713762245976485627253354521659672373972042741521211618548977746407903091589852200439865358092551615315763047309217052972058526741250326905268837531410758941913689697733243179112292422029677625333277419536469725851963236193992086027384597850446624857129571680274235513156262536486520295919057241338675028089759118763992564979698286404604461542828824428051466513489247899354597790121563934590570228022655569047602858561569394523928816219048390656537942791930883518451262859660734754632034948307321867839155597476978495672491925713458068531259128829519796818307374552663160033339369171419203348215297395120746811408030912445853281146426116703325521183677060934993464939313443283689991924948457298007997746740337748826658898029296254757186947585808563692467281863365845013622992798932211624259469777481141414059739245545232045304837431242192130212140277051457807262490902311324545657006106293473799866673197290488509058349485445419416556290704397590634404239924399147597327804964138188395935528576672014492875930174585781990622929915003983730773865575754813948680225993302530860341387527607542618442076073555301825429868174667356492434423698722750020068857304803302683672265258638796483117092528124712890076242221569487589063227777747479021325855381956678761588711918236555887498723124323125286189077160013533659166357820677822951103247516300682313910832462736407065066306820595429525247941514630533252514366539738493825792971313714733239313235567365633157859498786147247529873552770386324767549613075499278191708439607217519897578768211811842842733897321399578823213107169756738099480497781562080672250453491901610563805431257127446851156224338693660600448852531397845207610239833759523169651850673255262700754846755107120971074089688681970235623856055667612964076412229143665583142311467632840413612406783907808014753139984292751178038489109560025511706619233835735318211750728256038739648168657795769314669265631753631403902138229934961279907867695815259365096721981818277137050602891683633643258108266572198415552714152465817933457543202269220807868102081902421765032976283851313327676418054041261705454213011039078953847937738327835449276855901769423126144930851553678948550757387098854722487412620961959181256163716596511418211684358344933150655489703007745228437323870436997244626309065850709932654134591809839105221101665861252730528639092956364484046167769115318907142059910600903493846890396202976091636046590817342017426747936031532086682804541588769411801197868896123870202124361879768942480533991772648695468506293127420217390038352893217250429521596066669616908491932202839144496579822346345016349401263965561960511374629848295921601005287999393493414883176595032358802852287702231996628820432997781985783584565404855209988165428198543340642956261111516524987841475936591700447988647914998846827201467670312306140665341123980829440883271591749344180816582677189460078167391348147087852619622639513101246203312029131306830072328866822199079251424757423268422606258732681743555695230705685822905379296591006540694815611952113608664177274562525046579973290931579859691668863412695074051454504444585679235119178100791096699769977713415432499126564164665076933425088228127145040991124100839522437487463596165385984923087684200040011758491792236777723564672895278538075121010191720262607158549889453832087839149843113571160172128862159399057928776873993774248076381976236560378932137785652513913591957601334769520240621801854834538874073624264708231921464534759293184215327173148623381926743669829294884381936645731898313787848318358186182001272392612547639203015002322704155811381554611167978198189901849120083581382631281968582515301405686957480125507547494964078936149066545722879899203734616942787455596535969475516203605125787312946598947230561654732285572188159532633476328066681673353849355292733644635849803075077142026643718838506616830228858250189394094327304091083077327380423817499089224769315548665132951308104731348600368251839787628027720898319643208408902933842608365030856055541196688244488002283525152035509507298296757619728639970903151005991425638415521506998529410499328229181951816195618541982675821516946080564898296236795550329913652265014468087089334532966741093378228534194044149762230593600133361977906134362607193232606595767335160933422335581220330194714588314023172395402088455734188715358371473605459764503746564293099955535557496966918577251033236333254338813950283635350621397317744975063238620770567204344331510604116644937023225414365584356438927083871010052213477962703335212285088311779902079770430761471792017657809782745849321018672186621510205182724831940413390930808622429100404861888088706652888869669094723257407604636808027855307698558540529380705160357886852279355626425150865604971666592331777156963542687383616203073341658447328514359018138156160636346324626778630291798537473552579617615776434842954017749149665374973956227989687456944811296097719295761905346230010606651053879715646379879243503894115116686971894006857610350751689706164639929534916399883340485951371398245798457067599316689531731552698099653400404309088850163870542612014641076024220197740830101740147407624023955793029832023556060024146212875113439242047003254417361138864291080674196886944476867901801598494975185735319628606989895631270782698592841311142119323583913124458781451210958057657906967879688009922152402774711783724585267058996360762459428610534558731962862400796982922502237113137392666073046159432032637461115557639019103484944364268489133898946826418801542630153532274844643413093580871759441672938892082979807630930030112728410720756528167209103258187731345465217926405980646368702615667390336192871840024446490709703487030846020494020209143085317771154233822547916916025834008425780969806244084743995815156762213409321596681846116641466220678191669884518132098427139387886361643224989718382624610721709133977979142097303262764663624345876872115143324754091046826890383731586260854192027402895586249328657997810083570689494475083471005824790823755435453538335965519309915630550738175402748191030109005800560011814463922507347188748710117475756635427134881335079449773092014837566181747215919556117626395142252916893109841074460555715583406176776787617683151825627942394220015024153723231403404663378763689006437291958284917204038175726417770085897603858961189044206713418986676361584294980267938348372258266828792022155681736229643976028796540725567536658441278923980041827527869653270121693410162043910450891252109546905312665352246054621433534825151312826751875292199028482114861908061246992465358510651438137799111728146798299689933610802577102129438952889932194591919599638050745035730327880905565405042476737667407086260903119104446675454526031341286979023647228693863079229842737172861395123567518194054418762491265926043727019716885471983869698225736475591556536996037781377745573175001450456419492544761878510336382419857682042044079197757121005633991046241567311660219938445807685098049199454931275177655299117910866793586199820963119958599776599471934608325505866140045136737560589733778457500130874381315291908792559685316752710249809433483694297699989190250629422397029213998812924202531915810756488202762194302935195655342151453386397704231765774759039337478815696508559674425459745138812978917658477745387864625677143325532474467299097185171614357811558209960561796192458391845237666636696136217544608019069346076058893549506183006048829321062736959014180955416193348855704747517941924803127734705176877304178625074923620562402050071436218213849382271568220480467643959915075573336927493147228198996973078919682559342740912736179605143943607744544704416287404847983879427415185493937149763063368300900208967781185146923287445728841817470001104564685015657705946188656465639621806997226391535217405045200195315378104897931805474013314893314368522111758565040883914463664274387033588418413677217643480129387984241765821199056837563789166580215160755099495801833432493443021654737385360410676581234425242662626872020151870321480858902224521968424603669825627089877865724421962025515210994269537597172197438106805760514823994626508734495093288508945684587445027809736101072055639157270634505928020337438797809383300109838747227850707010795522893721439457368621330395301215442032434057545174294913290001565739887750396824255326926282006470773054216750750395656756874164034566196224504647359445767074490172927912827042770851862008592380142689023228583278081197762257470012290377078395662357140733299585117122211011081564687563171751600618858982371547628226269440558637228789467485588392401888955824619196034920593201629030928660756335063712676445155312770138844572712907639530961023495358660622207106451333610266192438701386541435483851669554370740799858604638009332934101840689523957529144187638964511128321563024631010127445822080697585794367393006219041591059841940747539497569094379031409882747533161856810708627012065307655011627739420154869385201187203176077971432879130427033592700944129828660603389669396759137240711745745505771035094275579153754926232156095745132532745562340453807340155562383433276336586623068620181898966525984442159965549970874785013104252978360940195207851508771594006853941585205874412938687026674025277188760037530327529154063537711167744495318504781268644779096649126929208292796120686762073873150313850564891602250455531308700378383548823299398732276914759991469681731695940331702951710166540847979026447700594867648280237253899777274777428909608932981740146156362569633179561188363102053374467911322334059497375669421506445054676730273092123000886106220584333304742660875061612656719453179144700396759721411903189453990291327617165003002144822579857708298966553685922907906380151328838046566085694852889043103541528974425239679465409247672431503175175361345991001208668696984228356087959182040036788524534744337777022291712488411648553428686922400234095727243513731666882052780111644530460156310541549413687620674179113137080750097380978875305249143199816698739303228066548816059707146320264099450334959080764687454278205652299431313132940801373916797209555971835289141836184574190042932838201464580543018267803194458212669708633791335229737703881938954857631612139199783427657234466846297738843628743255484408325640850036052645653054127395348301867212474587902099812216501931564168569526582652544012392822417836456489751659112401600434797603642446219235147212139555321524072390944674370560467878290805936195127661875029645362580173995435633992356786898147297397105201976854687904500041743451354927555817888457067211226383195163606953874829098421627950830184738563110189036356210978079867499817675793944448514597348731159487341565952107217405946068790544252571267566734733243063292288489840596357462807952821919459732423979634231063766456840228528217250098899042989001103154884982260629373201498430255964637516249283469127220779101945217366075432797105761900162778553256660867764718000872679186633009595771394782872476272320528041467678422567880481052649772288761700267741520365589294436204609243130677964129160894233693571039272185930969482142242385449930700596357112987774794501150355939172333105754696712137959556296881490295868067058256059049414930676735305410828027549868395764362363941016682363310998327343035826132270079974492728207830880157917425297508709733832565910994371972934418728831028468074615020268950149326685136440311501900044883803110869930215018435284377168915567622779329855577014112502301755513343944871569385384658750224750718204195850357737683879089552236622197919715891954836331036648153391567911799699201730179732697336695188327044029413086310468597643508629701819352481845495730645287187215269125548828309350943773563069700715588175683560181027786644272748710239262690033812538474448887823008024865707491818556388874161832562074150142138562030628841396577984673366822022380993825795086978409340198046632422152473628355578731750498259836852737660710982733869405409281489721751157751192860007965467673023705498153945066966232577989007879894470752080496828221457658412722976599739878161079133807953894830769633064245977876161139027179200027865752022383922166488109400518566630784475082398155904004703702741657800681574824565823969402381342314519528405188406346728607823238734466801414975344122753546663704869216790550379905915239456321633101095172592444467994219870150920815519174715856347696425368963734371570180446430308104310297180088790651268246295149039417904594068285310435961531058687184888161695237426922415639427608754024245467652870060530134823172114176228874176613403386376101208091857982583566487933486829784858842006973672385666333911501993919181201694764266697802385624215392918164674410946289375569322747362735828839570994549603124081689716598286046875471195899854486347552994431218299035295413174436857671194874033585199928597553229239199976617623859660086873273275148368517185277118443413700967278682773835104705824603732542005894986350777607307507103649709613868462672707365394721014777946270289416642937690725772091560868407722409213801423921363806174054034140923977965654257778819397974017197180572343951613642560583893373490384310238211663865191067810515951733599007355330099943174566756837109940995801669553158113035048246102427806750718802239994638795897172762229665628567042612224689415388154217503244479575056716217704131567639478690308572622183141740274204315890170936294519527963756195840004859078493522733636524067877086511339554741534110119819306508843521468240504090012882157117715471647380847592382626686421027286851452340390734555252003425178617392581812229855948884433605810676048516697160801533684133733322797014484148392702239067891540493459575568919500851848388480015901772650615560651337362641447284439979664907462460926605541549401933982264110927936457397438350472089049839322115065480602283690257887242850292283288461586805903210955279415621424391082982574893607951768968847792902095441864105908844299611396968091124646798183691137740161390927420992392645736795356197560406222401853299688824451657469921259194064815877744802629534433392559366816206369790193728662099683530175377698519378654668158559557689019574048558399179968120256933012939256736255017405585855097296376274664294421759847823545972076613457206774287973169382301035711430437212712577416762958003715227042192239115546060193155191315090933589934366339932849792247870049961363726796932959195087262948767563992509457673362925517632424595840934445817988307856461801856660408912731198132722364028139374517992174741734936285339792909781964246307364400804145409789031148351750107857001647555602775855942687010244899111624268746139845601320180034544044146603496713834609336514953833849227006257681696813013087251095688733459901723422115632080384733746602530279899127087875626002957575369928051871898813877722270120341064636356201475057899425221339162681164453227372697908812382453391691758672015084412807984478093350526782906658983708744462786356517073893111551159821602682951304297352312723959386713787427784864021598351721461038874166223700663425692038622616469803047708212573183007426939580217872353363154394407723589694225148535063791610581992922127834260597982089740798567877397771734628711271998621220688974533040043575890420680721861587283536014566234957809914421291072185571932535908041021958260079711322973647422656374028607172773108539942262908765330846669491328595876383670800364344920640156605400756284211798412283889586368853252554829360880169497093474927987535683027672635137541529574606895230669430648065803404357018357411405763587177780021782675354653586399605576776751832044163880260076819998450597518541440269227790181310063099881334503868605678010753339923842613144367795718793235691801349571836077294847752635459885955861527281817252708172475529797003835617089465612160937642739723086820226614982241550248636509919530194686501198988817776721074715162349774538306569744055624662898614979424312611448125443368279215912933877250006748425008440102097526134868383339722916853510505683198412849986786549865330293622708753677029180981556822047363819544757984606649708714057730602577291973648062332940338841568440774717301348858529924880633435665422852336919482392677580882169483223118023219756872497796502069358533453571716046098938828037047010942262087332591015128720887660681554033172623142427565292588799307260850180629592964148089285547450285457769539492651348425171097730333240982418297842041293622236859099533901627256564883570561634888245914250966063927213317580248229463693721806776803438320786847943157108497245517145410309175320190432992641862709382419196079921989035907524596716841048348015171918926508754209519469482159303020090975354319242308685323638041372290927932075123450184400066523474499873780264384326550626035050451543801854073168855420342772548510229802129720310472385338197784505429565527498821065413272166504273024530555017011275592548004924403465569771375250298422881701454712609621100239426918013870094816836473390333728907726858740259221895484750498771786155652320384853881449956033924269415612539379373323667473558695198808976885387416497481315200607890227312568922955754976729358968154052094632018932547225048029562642350871387705623189831223854152961861806265330399222789746322745659899084130129629456483612517307606280890591813748300773501787841459214856112358878138998844234798345903018089074119557109336590713586107361687045975719199824640648604421524482549740255566779327830855871759145032383705082918240512743174785388589649067511207032026667855265597456050354100755291366149206408526342060425831899897807209304800533930797209730411669227323219333109920461763967140630108680134568961621830306879930301762273968287418371039861559172541742552409845699976685408357476029176109513824051168448620994848769696768978396052051380284686884169971518399426112604700693524763070398019374477781718409688720022107554374630168869497746796124637717152489478692821429935176047925777478676540646510678538373158410125896244202111545194173623617527312296761642848248724660122304937781216134121188748796014919872074411702872932526363993321949509021393239238445102442015699108471679907548059841312113146824130757162613797689714470911666501308577713700393241388092797843664311702616205796083135272466843718200522040690031685614975400787429368172271785360569501195480623233002194866767204276478412126577939369481786305640420087469596145409502875453916086642864463226562058349551924869035586224714250932251705892094164501702166894485512190723079244943217093577244743951427651339272144919919480610439838864502620431025291887339464554643485353769580539321846189877726685269119005015464531420749149163723782675607517480400362356006079423111920888515194653917629744591521013596769670783308720585983522258065270405806631080340815961317543391028844318377885623697593722206282631747294325724161568714262041715785269163997084844167228283420218750977777865502142432611945577644893301828094074540190818425586685146777884487932659741226414464751554319089661242519728739490513032745258078216030362096138359453025606849904636328105577988547455767012754429510739392000682998992202428169637540288194313644339452359606394420095890964721074470448850097027702880374929329500186168420725532771074583522138727045781814354557513696596193143173511397994022539701817847463921616013789188161584968014033119576009723789860276394705452473237839634640380241377701511271454727286034420773208914957151631988755876492423794587650713130205417769411904966374984064734044578487070567702430286864720017781551673444181820958217166581546052183424669884633304067505081808483447871756803369928220026320475024061403100916167840002986954185857813974845345757170230653041559225780573480143768010361509524501231171049900903205268335633649276680241885778330505925658298622642681836822455645400919242261740704052644269444684006664840402271691659026421903051110843270965685623675525758945240253940544389007182757483941238908286079764350676357671631077918608952340230236972846894170351186338513638361020573418314158337833939534262863389534730697360041987924536717296995538230935454476752404771592994780608534540681884206826790060119747956066711828012191501151556118313966349625962869535820135453316296316526322528129208249272481333905989589826803731266154362518366300356319393160849436847375381260757498514550550663480324725659946838761590615010757413238292912976095374047072256081987368678403909869519011370043946077159195398120555570858300677307769761121665349847903111891107781624069632124096019894031202163497078629419744024750271568572415381556631347039378881850470934754035883782853099323111323434056902530036942815543131955678858727122757931598725312666672722613345540618076102002327955376652940080429257634602247248606930812794388833960316239846377106397942430848676072805760272006811694898952126235733612328425682042793434239620377402375312177416805784007997187033117166471897749753085831034948852913244726958078510573143133616925810147700697366184494071607149593404419833243536272243468630268992929451634717267885231970452384015725541362474580960663036867911833646835675600440670677413547145294149210124712646075128127932724554453283864558444585577686937212416060243168469936137192657672010613154051098079109547404305315048247619719474665970671633768486266684560486342641053293666607631976630257468553206461052893966637853082805937481756877619402314255067667567126041960175564996899668318520278889641312599460996751942584275914115763584882100101220964477628249045219380861396928833597860847210274184286803604698203182328950930365176973961309609824471465158474981443043538434922840816208545141864350442841181325199100743319337244837375977039039182841836863406210207235895453941134086597037242299813831758164838439311953697150417108996225144051416889584885027237562290416489608944745674154237845950759813436098968182292815043338331804304372934227442978505792709260074653855218154512638860349945445367843960857211020584297679827299161659868011412296920196134138593520963940179213734517298930372186241042446994727366080912882667736463672925615290088757403634380154826646243358593207416613652082538944317679786239181050792262694114896295932404182005842301737331233188398060330071684024631068722880256034908747924928348356298593421426011499499528820265300844226858833189311487058854220544700649718894285360320085301826665399611266841979269402335324773465611846420521487738565005238551509834174035502075908093165429343055921461435228508521119661119653011044274432948812141532126170663397083994467583636400074386603450047493097074402970745500494123251117048448762978569658792200470264807558909054056327673283012087879048404295063777775086355343057139225270952973393330402584441465912057258692505680799946695690456797779667812349713025430959652342438996134683022612862415233335075984579499462891862250373551557728193370091411775514790598460866252979503572434276974958710855033091622616312168556830415757655113725923190274231469158760835693716871421081897852946783018944770094782658134352990641122494943833928721520476272846777616271981457987682900722397178427611728390879188295488262799273738457741573013134117386463157162526477522515785083154399389300610108200208603849173433048014393947661856757617430118717484513290564236175060617746618627451033890150296526760379435001679114109288865523817709253700492793357749420367965333152539521024380544108551636635463957178997834322838125819321115082408606432808784835033446831223443906934172158120137561093453222883259084950468219456049871803924219288875321068649711560799142050841202929061692142804674610133857940779159961726715474900899076336822107673986934428639465801513330872735045658542706915269173826777422179457197809987748667852690764671455209285876417640873460498986530982472460366061663120622219912189023788128965996117435050140537449609305114382818656382663980001528653861908457649938802736811190200572910723510259716310958205816639967602231708129382440455549769821064231919099625692684114361424374200189893116271670739231583327250893117818702935010183492154622929156391880287626416295680974059759821878050182657867021613313616064857176880779439576248988189591824327249059024545341230964523890232734431075684625485078165837289462040944691011927602354988964322077375301580095567643243372098028902544392501236768402753371380225464941575374638776386571123195579941663730318602207759860364088793187442921884295467924853068152144348705077369612247269388528206114824415442386453121106259572545764791402683336477954652788296108636589967204709645642760586956052713640783035081897581849110572764643342211918910465447431295814739735730898226212822197094692743247319267830136785989226739068108269856684119308999375386974808587982780371589246721870097552765399325055734368107146123409757339921371566406654373048576763434160981594276731462191979206194365890860353582441243705099978740444281350998057043970205698315351162201557532426639601088484860555292691942744232795423903951979715717579572034732744491752718387763704131953681127332974596395133032758933160282800797509653502600099965020479387919405021794330031749451290923541197814097861162865056920582134814727107097070844325416285148465358086230748027164514201788509952540641215459446998771545270826844800737842848692927809274226107304255420912741105306125208554604555867265387179455279462704687225660525052437814492733754843896565596594933491730184942461910396058074243030074589780525052062812185740843024839205596380275418922983820661600406748864982181708035284935931685811820143681099292133948365982054690326624849944758986756118573689436767393289055409328820712927847456805105155890387580500709398814283194820827509561121838430850973318265525629205550954299181468591756228995777126842559782190383106675678132193531199833290626247801513728404055477434639338128986935191325845773343809022262091144622495060071499116341628638113639261810749234949248398807456945269518213867582891837235703097786993105004055803700482501148638305132304635369004003928475409671177118184074520048214810415817959665198601419623599754083085909002495413976489054153784392249797501331820358186958552189003911440256752857684295036067802253527890567518635934357054216822068944034971419910577898485371987408635511913075208302517968097544824566916125804912115268987478993106983546250089468696701797552475487034124116506377580478724846847770873547733471996817199695907741344335664117166840077753455869224887640787316913729695852906376576522410052382948120716750498931281382919500594173810713433045226113011589075763741466179238682835406076904175948575839341021620042122370759703998855126191779862304848005556209870460660379354048501163366389755826630887834146448726504421082237076429429525417432137060738351810596938329479969292230017083647996415789684355548836959279748139875443720634928421645514306972495039832062090630039785454666248115289749396242611947099029487478595009100195856113135963123380634180217146267311440004699276608323392201824742508660856800688654821845136920614594627680479767016054439770853753764577501645200672680623416542821798110448606712416077254259906338282881816494614680906856647306421817848933915450764056884859507258792465440983793831755938050642107845752312051297980240136943350899114765321138071724883587080063154029459742971486482610272921163172963619189837514069895883244898302285696583096274440186350710665120073698850000632280435457049549317515250444465356940018739981743045299343279576578657144328332168803558300218186166399067007841302073612526100406332956134638067423526790683402633960607817137463910263944306367907105222240182965703883268746343205898682020905172464131919862255712136407535356764438447281616730694632837989390824654378616277127526912929558854970002846537213148583671119233378878813448900258702748758333685295627864843714139217533514594468366939497122553311033370940012215964263612067752281017704566203857945082039888239338044373506221388322040058154868447570716377907085006372307961978579421608912720179715680063011111064157796147417426465869159574229924824164263703687866722913793783824959763204174384997743736151240517412198519823684951998112445930800878894158115296018258400230225599685569876623445775431769390641645139679247820137567402023545131267585240121355017436110470291814487170550242780346132234316970768985333061594036262478512924102028545526625343896268973964340226207306788572168837392019988332541377303810543742596233951073194739522993516001249903094880317965015795933680803833729465712354429905104775008483987466883290516374013203118940667948421727230911761379320455054748574630763610419758000411358839661748461914663805938567423697321717375598408407962380755440814280464421015165331207524518503761880336061291495093520351661030954541135608386607228061591772037281722123320800423316542269806800026804230268339174508655555727983163638793955983550842726241675687243240321840320993035299811023962521419701775783019059810696353223893147690581918000658722597756042348819499005842798741672416348720727402040224509506804081976636597908060744291825402250340765197675333027813698496252331957893274754129852780722372199895550552447532000189907238242870800842210252503022498420269447623247246440390990772226522129054989491471560554338896760260160257552172264648616646749843135303427012670141898597552873940335367916104353741501659913970142621859255777860879628544142844078373956996697006085071682959729570769503455243953813164708601643336992067283935441611865245818341989962491360059446714376397736354576254379276535667643934957464885342941871541226320448727398219596055997269679296361555513467598154652624159757382065534993678689008299250686771932663237299237974132105216948392011542283681262638752383428420506386492562693603707921635867913924562956957458089790713903064908755073652301436591250468436774729589367389395190909008338234058064501876385172397246493096125648758158535764626011715125152874013489994292003878854829571152483807431776941489862904278028699769560414021045307879605521520364779376253949193977173673530506042820269730576104724484899674195389747419382343424246575221704337963683051720897626821817102500367796977683357537157497061963385264559934819678965558877230941067099938354850431307547395985708691543999656152142015934346603032797368585953851953348593895140862572441861331597490686877391033634214510757184916673725956819544365813466750506563359624995119434009013884195204352317372244549886134853919868709394852760848001281197755010114047241880973955192485455509159554517188389853172596732456815850371800467784348828508208229599810368497487634226139193093003192704871160408686638126833706351869386149352909618021910227478249628526766564320267609870502502485473706165332958127211412950814708540287653709058693958642212421651773581427665042165642985422462339512848575025952215076854666455764230097191631065489573964602707708536659513328328990236371695397147919796370981153844778416990534082672374386446239925175808026563115504905096807413686954750832004166937794176074050334431621758229679118593726191578453040341770245640511137749322926891823472143537896983167706418568258110051397436190549683566975932431093872880118460898076421087144238906378618947461188851714693070803713642792315822178954758493944558172240205473392987619879168903755432431647076669561071365079942787369132252108570012841588352080445282478199876585662185146958677017841191411542402128106793284120242019120394815735682248019011910107695695774490276897946323634261191970835260239296768628927515137837556611426407437763921413031644517952122531150415437361326574038729761349718877079809957805455230878333781820137717798636274358340417525840658220233911486569310274685412890141884460273831230645991091533257791790289791677592624873219061570370183751410783615764417144645687236639485276239772775152218962728866193437087378364235867325072720938865861536325259062966115426533164884663851646847488379981424113967746223176981806366993199981279734279206917610810435790840147401432168438613019661601896305484518776562907889288285441406114467558642350611571175436819885572343388649809719672048686254379629072766188043806973381108006390208851089909995416886505065378899300496505447498459160345068287599448240571044218567047369862068710783935866478960271961660844316122967180243246398158402416274017828878990930996959989886452517716751695645474953379034712359788128051217594488552373286946492410447728192440350927880217651419100109981732013710554437752079566758639209381044439540429184167840098014173792853822530320351461339906727435841694625067355940977237650609769690967440205748219462770746442024920888793523249287578550485636193598147960698284456452842666446495823675476309193119278023837519252002565801945523610453227513632033859168910296535551134554382067808651380689055610075780916994073092147085284940248369205247516050621134649892584953928965026053954456337560425059520497146438782836256703046182109400545310532532475329663854724031843804980530665168372635479566833975439057966887230434773965302713176525525616231004519661914556508731909532549641868101224742625667733698004587862554909681963641844489774979030275954018411048963336592737409363413417092918062329136877094849614877794866913251217037650756224604087896083231645885052050106876331901410971523583782935236094298709524835827253194803565790933331145625705637918139753627213503611863426295815459466287761703245876279561122233195639022458729124061942089950420288788157648419594247084601450713621558837938741963289709719984356330715912961599702092038937021586136681045360989134263219818207269995454928123820252334764604192720607555233117204412244622582695351593058207892926380407615904973166268599805598876374586923240438229222970328765864352510352435791152824379613989009209447926635674441178956661253368142839316995910182082422141508589302875102384066597981974983983711536790376166281665233280594868263133401584463307565635521273138383447858131382680926556543960524467162441280803817790452219863099752046044005660558282475794476474046420309667993220420830639833438455926897206722511261960909614188403252491361928114825247585442293590193692094867317224613931408303962968357857558744657492493975339927640105517338191887323522503342030392311083010574713754963316821496556608880214482513379123133836472500579428343570358160245509239107430444655352284995310624465645648027168719941376997246011172558304684032864718024408384874364640649192651088462637538260420458493060109531404085302604569734822818941825220856004928781310706247512470945816177838305755569617695442002507096350743494327112411445767828439778386435737938609393795170133322409993175372013648933648690335847244552855353155608136962777900446152935748904087945671696879257108187825751005369981880728803302121600873304811760051098783639003986714358948940967392874435520932070666705381421404782776220772910966699050816606789241607729396011994615833072209837643591900769893825058837055760000695961038692527154477294452251205618148351120324177505464703340847625661091936872876024827679985652057953391970895455700066730812728530885443782720626959790330534848567967613729249660872213293481592495172473207660219012987205347661325887444490567980107856351238119199374762834997683609558310552651009157390786146549265944791776358058162808059482064725495467311289008285649385772731082689283573037633329021538235505572417635780172851259910225975787871116649722251891696375213186395842879117523269203485935480037214989592148516797498767983116585885910305671922921118842220326902688765070560245720942162250003748552572795037714740309184756824631499817009868798170246602184937919428252742953898584810484339584503959804684676258176098133313612685465099466729497081628408970643930341116325433550717309539624407538927766952904963493108446610323151177998236467803658285803140058958271252725603993357952404939120318289336911092887979346731050376047079637164260094418576035167530134445487631223709434977795693545299522119578438319804443449816933206583755414858651485735618368442044897087903810726158192853891406916019296510074798159633452950782248551277257170243668673361199819012038563199196218870962597507389856828351634283871796836364145140735829343344880741822044750719657679703509422575975126209510493635350830078942229134742048571967386075875428768398436528829311312317917278003209082037185134847067622264796079439527831735805640607292194104097212514907852162239770323988896338902072599609149206952025643671145596254824938171429987976478419871615485697793384620033288874801245668381554449268253737307409127574493657566725770052096169243174651270432749684568422067275450133146826128211664049500675067157637438509630716665061260301826536815189095340519282006306478056826714937010419611275756075216991114767189312462967051964685182726684394219820645537193341312352114552263921918371351262812550994050752686339516208243252324402779810810567602245936377241411226910214243362680766074915782713579637086887546007752052867883028527530232928060363922519005156967630089063922858502434450288501604689132747171810947179169338951153847688569404554388580198505400043929841912215434373412825574143372110595872085513116202390211588257859932900836212823429246903332185104683358410726814344217941679861010364438821521178476892325769359884526793082255517331692681684669746890173904731529630765713622915600327373432396080498274803544610048171666891041131507911541799619996018681634861636336765455282765033744587226657101506047812884645369319060395320509561587987175459537020345641865331577065770863066802267016471711812567635665917066128076859689828917548345737527619554818050578184169234939587189597143456102732840343717273307711835189466344982585476494187425840842949875074541985904129422075435546056471589067817681563670994581159857215667983168958609267445098948385249461122641438335686935075733233289318277924435504971001654164617297111990939291258816135090864905376522730048720023822430355667588230646562902703483758330034215177138720232746709472151899902339621021113558294246033913079004852195926772609623169381516516414532503704192148927920346639126415374083433508897322483909426873000582972887658085288737086088346315441776534977379502239275571833684860872031285469651073302540990911522386379709786158969762006790018699676192959207744913936032978840148303528043729994513172858462090858657084130432718717324675385207733833223050498633264431079843135879123429622035662649931526340773071871607852321766902054163267153368414023201334585304280455049430437092576582360543093074175023785880289385193443847172618335236921848474101668286219804270795180071611429955800011656852984788497132046830881552586706192329442068570769746072572464669883341532502085475519367393988530048033888058861524761966114916721473652092192177741709941782699044320261078609596415049047755626585310830509019956032383721120497418741399633499318247440825598019571183704368828955309875818669180634931536223705848308052807406944054545511438829710314788747433400487051964337722702114517192783125361396278858902661962286972416702828650791694483347332221652018281718908714978918970719352565111346383877367799782384689771047361893990463540346862408443250539881062651433840976565841391218149438357337333465987301064698733941587597024077373861663235931821264065368152551640404988222099698063081465769844037803910053773532679380751005289562131081715710800277830512840177078452540181056938969776097604810582270381980780769843024671976004692108873241523961001020683027369253600240270010094332352557093146254655599867604262418410086200808259264733258391318819488830230325521364813149682046284916727465308002851878166272092941981113099651306710842515019635431964407490587074502661614456510437231480910121953935659503076910965658941456756283731679983242152942571415428873744720631495244013928662640939815187786693489356508997929212628218079288875200910974821092327392847717138094292667815779292503875186183150477624895911428823760989472999435292215250002239907947610835838093851285015128138814399108631881792440155888538085179814728669492293126206508954424802248308734637174877805917627791209963606856841638456041139816973687621225992648277300600792046849184439840789818914616104069391079748415156684153676459894180561739427952093000589200478392102215350364028838555577361871897251307688662736240906001543767814417422471416660833996941540787738618613081937390570310281894924357059024620684809449696850134474330184577193766429853685728461331760642271700028453251222387571021147435810543582246368925237670928602222190030686591926251098554309532033738258340546653093350556453168233075455140835414907719381898569841126993895217246356541014383733261762662853512965993954464424036679043182423572148207569975110183054262413730266183713744412171359073623839929897252456876081503551090114461239653330199808716200764942214968895781553037538758043320812508502203541663944116992508648675881974263661616552473426819288255693336227019367416207842508155717737527323704378760675550937081307616835943092209889351467834764841573348013264424178658640909398513560260653910595981702161773385199256854672313174308899463644551764934417617317514531220127909762682514059391777055731287796851949630374568196860949688654156993613165176076064958258486934034469690755047616104577681450535306878159393785836014252323043903383056603839888596472402638715915272332335437250583413890180099663699697707831599958518468310799736318505261062862160129047899202885445945349487084489852177317421361342296417155693178157237260669416303760162322653687742267665844315797139203586441515626340088234913290477733315127350232334462272594102484106999761265511242180659182318579200399625011260364754721723485205750540448510094994520209867823096082057540189348793352198374480719010249774048908720956401534175060647589863924929818890633261328184365511353897524836357749192212451899684775583275092552053606493294278946562634877250938900290728668162396254228473428441533985591575822279514453416831927926731791635316167987985696873512601093541995521253035950219351248896960583552399798940816550550614738111006146748498345322527734241810551991292864318657759680401192968560921554730782095953375011168986132237509519651440701471185298699584922379615859193560809629323540805275133375536483766397617814536263644782779036631126033687988466978558792284518090360537447846669915868122703346637726917775121233109865177910768574988344347452805730801787090407797524784997012286507173428643470437395764960809403358213823097892137553076935138126906568257111876943021221081141634650396933705712316734289251572099181768423671628324375028651082004910053026538990384470821110695091977178172240004382224611589967687014838342673512054509172573777894216447966072315571564094989085983320506377769731502415714264817571110581918864807715262302437618267834111558401988628524273460043827375080464893678040389341970491658318340137277566235687722274578391701664522271441175430924730173219351610861501387349443425130040899790880837037592128464635453790118626000017126522173506005442556943808314925166826951766492064133059117091317658205193877629861576181037705476091523663158838749661149790408479056320250112627329932990644754693465792047328321852266221919670582467578520152558296306786556708102135988382402967745658307283827732456169035057532397377120951826055469279912701944831757524490298510502113414074182474457877465961261344601673814855877713398739677374636867727486640420994181152108251040123741192950753948851388011462869534894565230871101498044123954216480813338260373509688734735953215745332400353162956677269456241574492351813666652230240036500241619150295271939373078940964419599458182398913689914612951943249475952661756828160725241631980980772165196349306445479196889592245211167845740840178065812052948050783026667960695326760212562933882664115651255576775369789591823677091923412167683827844972010254443974845315164590464503261547646869718073222331620944921299464834589485764658631880459122284425511251790077119331885183632922389758532321880371975036478320239383958456020450953063956078449010582849934228406993504224231845297372126666049925958224719932662120650931575803553224335259148679883460273875524058993555218878167200949184268359763029169152640464838032356502323390904263818435297963113666920658973837140499691019960276827245120657715386974541726551032669461894387625908647378719822903432038084405920930771285372069864167257415707300939148763751352970433311669146119363131608062815668313972928264745443415787826918269544213497307848904299320476894343296111057256791320779451461669806084911569504201682518144737159985582434847853772854149329765565829153295831688055436929252171807689973913365134473420321467034815389758405090045056821954034967834161687851729422054644121934772475722905438176067242987566889498344114625342155722010953327737181551257289693354116581752257229544136361291409072962990064776092521447477516288248403328305452352608215187474520601919879012188755648703443536718792104098037928159536594328741137315444234334944943327461637937698476404413982927724473648622223039653782896535229011890857565434087883874714548694236956467574391820259366607492466437533924174502890621712278486510713114896685058742672342513739353322652598131900860528595682307786871931302855660774077475930278422606537430133576088954965301731387451788597846910952120099240182600706923136544572153667451547303067586433852446426343192040774091746080873275049200170833413025281029489724856911689915388475595307247938867345661112490254560476447840328736343646514954098772110405985851058571580819157904480827629512187819787405775924232846402777698058638888009322020299295756589762363356256045765690968248535074145066857799375788611783958453074112825803428779383882330158719728237012316483293077631935717633564194528345195627298202294666998047187396143852927529809664148525933545856029904041442309453291803559998568868848141841346123504391488160438204546127867332606747190723270015550037127255498402996462911646983853785314710980675576470666851076006663153747151086314136471484776566348811199306380452337014835319269868022632407579771523381590180419451266857353114306994309856371079317612823068130775815430465067575727818925248218951164741592946086486595962848582329093814878603948066615088447028203540848553666141136167746082805273673689219798597148804688479448060676668885045647642107603143973535844696947058497121305989671624520004480520560986030230418771573771156388056506434243885526032510998722864461003290357968411956049840708088932817292485129274901775503025064840624338648652986150341643193303423411906381434335267172797095210855033767733443888820454855700481901275914238230151422131229783928572470938929443571389909684807105937657960185684538959624944519770811030891382262370542841696137724066948290631101829624999032097378170802900992201129345234148476350738333181030132035778444466555190046707449809045087676881946809882643413867246916364330722398467584345712323414430996465892117846911331226128039892784886032601787847698070953841902628436219719438153022879406078801382881996351160250304075367790474554783291117199108272493251371674062334760640426511486095372900736653308249472158455278374252208904851355424235727362627205489930598672256716078462146778663183055734546065251965081353639209410770143013935707066455839207770616829192526326054005239758157021618193083175148397663397133267284664625461869508392426269645659622314651065519421047192268274578127524167260652062880067511327994029859867755194240221453562008158047963120528803634207306539413459496284677765471804062976645856539132274318413426934866136615721474110980436090699158540273673016718399756084817369772905429764539564321857163453197982285791968851437684472680982571989492174443761346404361146001588136847954132094759293769855919628399787649933611988913043844426891808163061733780414806604352164119216357149226066878626448376515702319614250422508986119613988206975573006641076042559200678341367931364311957466652278801259818750152974533206614630943530201729398178243180938493342132182213166173497165686379608050642668347922816959832277895238598156948634818499452633654228312409612951001378223566422121773888133906442963465490600267551232655920778895714802065473284778569244514598358263409703021706640423176356851107726427975642954739148531813973374756163716007713386181184938837943148832723118273628856298207644540222152245101418946876185905984474869623138994124460313857872995675667412175927406756729690626197899306182742149522992109780750203258612886343251149535674431381077507055728848925352729129036852125230823899810120659640403064679898027397476192226965605842514485340256040628667144771828260616543484651321144820754761797938818679201491224532916712085104892864279441278028784990762262085109198151877347208590400079379051451670624262876923360653373886818490063887196575632872871236943793663851217659133055272724716759887205948563263866409430820645869508066498569262163084133058514866265314858482757451441903779383857070839739071828371756291959953336250438514348359890570937932058608838114461191388189738767231044842587165238074854534896393923699469663276414142967632060319920594493422168509380171290473787472343760626690942502141720986957929506744728157106880254749929204334737006738827085530663644503247938290328906732538438228852661905854244270087359965773973564885169628324361383622992940808176424994340234661841085937832804925644413316763377692694712835736831223661285751677626206328092974252432480892688239976380401885659519413959265004692611977338555675201872224179885428013660451741700330563837899378890674445912960315028877116938357388172154351989862265386457897355470024574427466891331380143026231264048896062562753738627630186543236333041193910501498827424077384218872202104252472041457874794675122021048983220318147997354160460604251675404165833084277861630673672477757997432370307751820935123663439749568446313989264201554634149841079110334669759163349583595547950557684544577520318154932279482465292213744885692928783570349261047061398690149392553335767548895144747266771502077650872173735270301136058873952006642093364022114692051377506187955992787697768792688254423597977794444281753115500134931842913652587764333008296180558131706702219294143532717805969814137765448591397860494528385294836033023490680757415272879567937715746939690346836043706702379193016024506267400928733776554859823676871179667548355395727247039619195725912281932290984241025646979670300150084834869427955686929566427065882975446022157756443656841212463148604695920429437921336049271590066664719790567866950719303354878041493773253320436260465269591399975228383323343740420147733100337321531000130123038849173208557870009112299754317728819750723631483187466006824139361431721851489110364014219193636192251952100032813762670904733843816148005547025721482185756788060817815968537491534633674218637076817120459452809410133680985679848554875984104783892499569580015678504458825677736063266604520876247774133813193242630698907205717404407308631138670650711989980538958043669372200000814654389249472422374438139516578019196279395604017892028600035010999118897499164097832895971298550419288572667991613721521400886067344607937217662546030529922246101150312534299385522924830211375725584757724259058042935384195078173685232636992961672794049402910131693597618250253354085695379771141637644192095081705639981508162690594421142111628598475063127818848686844669427940364636042542557393458164110577504997826691783265577697783346460987565882382653235367005333855731998236350443678469763636684241468740229046006183609027545477266743485671362579902666323719724896068664797747955010675778883254589355501625458171166584594368328013623925467592605433493299645831722307245149356480634074740483832824302027679111413341537632122648106339239200560561607573411527347381235753210504317043987119022409405567481110533358498384929864210770912394600757488275651752647510119606411097201980898794649485758929814216266629267649380439385371733595097645514684833634924780770416166316841002578675144990945117985961297449687050995029899636376311258700334010957259591556738977685587812686416112580064746107804763772752685981599436762647566533712393510655910897396194154353082009642383745565854653742687482539616512351527608320866909407853649109353068533446068805465490388057453878344247370530523539870958813190119730693002737064488668786426229147586496325581574603669523807861153141453457041039649075499612304518654269697223067055642524802212994334807480143384953093321319211351177826308623352243684452027855790679191308875413859151148311280570423239413156419088645534276678195360180180333378078034142285945846375029803664283567786321440878963771451287211796989974666782812645564510096866476472714347555079938330585661810849415375261330531246513391319471942873643241045987880752375582321569676830730263236676279014961311324345734367751882808034255473903520548652766022413378391786008040194260125379570722850018902261218425217526221456073981884692286996081266960607281669578356325072605253165814007089601942861349437279118786519855931841399689677082784399949979982426100435851845179330632240572271102416304299627738495155737087246711473187603123078674753466023887341024682947620017478465906368049386485148219013062932857297643241588223794224305200951198472673639036577245379898320732093730774887167757380030474905253153296739679912134330544875724491494013079877239801985365962806437038392515781695643425119760180920012003515244775328171893943595791414010591164385774610070111652719537881613172220513819084581040518663480513052513700609607438849753497203724168572389672848049752106658891796497836511224536340678005352387011268409933774783246510544043619926892370235385407146214897211655265067914710357272500462377845866845064226848404487878553995532770566085049740531627916332127619552738060336374419518108086426275599543355000719066891684625192112685145661803208661296137337464647102674757595866192774062315056143748511355883421133207270683483303002093989554990675625562155961651201684272089065331255143112543630150405444619008306295633923430285278257049247712832801908592596641875152367603628158367479358139168418962429537497961531319279473751581699102811754090091014527456634500884012530361217178445697098428824964231982582228187288693030307796723744567602327203114862638243776245505759652005793255052335136730418438380546574228183112285227529425681348154179208999507560719173686428240262280768128755753178133645240868250208820710980159688733968216466655776359242221062394196728273570428796479437939140692379364416631018459443180509057466918372856179934278533906626350675084388559468381630299638838411225290072724976085307131548813290906525821531034288018408086184774192343424466610403305518299537265357482771125392131055220506080067914823971965740536934510524941943071709668019431019605293272219889350540480732726608588038761084407334093155988718987881093149021462214315232852732814296955031759197265214448555172292692291276748603289384289799518232442243849426855487067945052380593942681060790952966619859363261498139400841633752232163244568170455949546949592734076227754517621294196052381758441429932254431183790863017087470628609504530206774444470330801111997716627803508779870912443952241111156233741521510071325702188240731367060892213806951032396978777178592271096360377983011051923620705037046822819435090833785329865250952457904789452490457737767962210511631799319793782159539721647202320137787488048140635128693265563569330375271535501313608840564911396128762942979415149339306990422474487781565755974800480531935581644177713907910401295181377078123837448736544101332566525420299567867306319165466876298648016234418923602380935573577123446552709429159139979711661461134034284485792552606198962376229892021539262647592377370271536157471164840664597390493089374955582861075036313683828837005982161449011730600616652982518139546907512505055353353033225159226768839186871844182671820624722861563940817108542554866109884807171237791965810004804581058209925728631889194984062006155949379932466067137205378661843621117288773435072891739128941936620336315668439590549776707542133522494224260822610156573228203331704287335285358704469547518246307470405110551522083108364522102440421808080468141251197988024973998167967618313101256947795643165226632985270347002341111385153284503697584203596280097842971450571505129204153675699015314996281645201591320739326697273197892852267050575966669657471771721353890193362623892726270945507672223322949991624081367514137097626698452142470316024795823437154864491620829582159118782671843159668452590828858825763655919046318160783438757560178335737512641588287495693256963296085579923622347615351496598236094154228333239655999401196452598147645843114622590049056648982510986128681163320246308243576750972457565495278608411672279024964738502350267845112017331004274400599584752921323599124593492134939030164348496803028139470574608206038736023457966649780624304481675754478162636429209355257596689742249417801735435550361099813768425974964443914897826562642761684343422047469896241278961835106398532127830886468755172868885648214527170873020816058663084293327012445219219772660830700516154828419596664946037455853961903579312472550174058072163236326848431817920125977978049340729233928023847024025515785609185573084064626615063898596019710713293097602141049972429199854672339383436822169044604071509853550744283364352932639981077414814286072262723477261785516409527763966766991653636043171481337217267199831834773157709771605543608520256971767165311434755702984357898840578718272533644361569398351930999513601690427195138955974439993153143077832911313562783243964801083461806084076463214166436070108812694729401054661791344306142906399373825538388093886984149744554365304085616751486005579219170697125119063741347219634706441977064406258518766924623161473161316798114186918279266815453259858358428498104547433916972764577994764978065513483385162148476884867566974294429219290110217659114011436830584094570714670589470374510486117480805151297453761371567312963979054973153660943216584991584842409318623599396802560116980083034109322577737899844570185807175776166707481010279645318723566334117678661657786692119957361319074787411648720179670048262628707412484300450536235382036294954314012293755011621209513621785153242386151147441831051358635991046398258922531523945022302294890204905371300530311435809985659657911598823896146080805256474909988744332157731864390365208885044794899606711345054334185824589716955860021670344668503841045734735578813348233550018409149653511563555552926919320376308678345602752399607773635382744174568407692953587261444261036478096378905177796967044797753173849287879890791719233384131537196341774196456278896858401960360126708179166118395417333822419843300776411229703478715001548943164635730822902914969811878695350675169847043759434909569461353414487454858431263569151793953862109454181849910263767413824547189743691260165055204177123668195643882912057800343187572642656256567660690486752456555975102044784440400322251028474225139853072395266750597741664729082774095898290268576955920339352439326767208458439685088856334040484926910272293217128011648593283182131617007819267117115486963069767946716972647770352471520421529922658628164130065453473884602794619029558597374976132619024169029555298250850455970909520355994075717394338018915684133918020453990437085079405525488114818688513828949051071432648011933748408136071822407888231600440803905520916196743127401071868194394904282568782042927762241834443072687957547682616411617737644606517684772012947828307079377185209330410684469065929849259451447460314375635665449996049277329294501885277951755177734713778796376376480066017270456154953094955272660960324602385344366863337716430434794576628590854605343218315009397550482500854313911684106607389263902674114912725139104954574880909201835848568757901108215442312814036761035940364123412907352089981530384455938282271177502238531167562363615806531203834922218419985029674965702598813150317364603164300784728795100175887503006751426110327299323010696055152939516486446694312351691518684862981970682690425162790378283221656977721650672389845783050648721941898689981401775397079782457015844169380100628483320092317380601589836627809575343459160076780378828993829423859027410284722733690520916821333515047867752387802837885572094822894098683351109460196470513716999907172186448614543251096258177083733066297964688608690656925063925367586707377221207997511860655098172506203388845322749839415014532819396927288047980189259139122303585868477263665874232252334826090658789878096617429242014624696374285997019637108244453746268857815837458430111416707485074796178557374377422395422687187996159309618529486062261789466868436754805505644333306883495257803147863985618854016074030167379010005385381694161579693889931895434199868148242120153453567266246986582031125335752029588072769615234985565580294805546687773077324711513179934671187327889066239569528532513640424533987237120754814184534689331038969626880369931265820435704180294574551475386499548637726867371409500623729651800234785828014074726837560884193929228176186775169088563854055111462144366422314757654669263548333953431394018115329295617474713846912748650637260237880586170507045476888138395148933894015957658981740054721927915783548917636481867470984839516073047509396741932942038070790387971175346279486385816651114129817873951322127552206850463485856962908891669778558299356831665676641557105008756537565821344443232438707006773414690955677208752579689705058524253838977761583915967837691467726632276422298804674040384042021774596380885043525048865675348089065527165842286793413630590358623314724749903402682349486210057860425963670153247096633648265174306548321561504441714544986021139941648032941791222607801543011987185198643645213208715851482289872673419868850080128344190656540207347724798218965756750423399277571239020942246394893922145337666221531660913430460519185489484933155313166445901406023649039672702862450991091443231032295073548268689465873851960728480742715291436825067215987222712333459691409685674588642945670859199422138326461080371297697060781907656461414257431998457112579449516069269996628519981712130133130405623862464714594879364173211886748693627640631256009753510673587527230839876115628245152083910827123138180258216071659621198098879253731064108455555726273671071375087274405100518224800930230905564881870732275688082258158555021927908898452746002512566989507083658074149051656912627787420107417975496308394596517963930568684899192320373582806719071807329350857321063379975559862696034758120145953440916992244659235743222465371638818310814696196824456302446643483791967941572231941705074039840658296364873532302925385864235350722657712679081293090077914952982336908958319432197791441358447127147550960279002453692527129874613700475844072131374996371574974460740327457822655261634262294123740782831255502418041949367910171968742406016084722847655168332262191769206403268046420792077161323712821155696314192269215019305357619544198747731000929507184583316271208100239651288106295864857139478873657181067165304172234672805178853806745633327426391145655444904500352053017586097960812091341726111277516446405533936675800371220170668315739903066154862659612432991614238175205424856350075953980747905193891651473920041079408858932576017620639500600064384149736754841547968770842352035853470986280947579266098226134312121506226096472486760373417616488077429323919677026218828057725015539868995008912492008634073733530352927396788353368386664585349828514767007934139151584692489075300139040658819983525197357143793595440295092746714917530020104717417815035880314530326775137231007178887597846224729827358219426916447350572685912124788005023664455581078151931008749594896150595168896964967948436587392960387893372985463253558962261830837528347981201052612712392321747425655372099047434780107980967630340697463749933730291032303735228793725954665565142463599077429145055140762372893804447439925961152133976243363099996961547218019243524056282918067302732302580897179312456331574223131668562091319027521006218004024637688064672442353277440972390215873635893168967253747483683763589420356448956285471411511399630900438689374622587121812303164540813291231702748321555327750546433205166696808576861517949057446324227980665314932008330074071471775704926477578450506429646296703152210238602274021407308499406388907515797679765222263885923116626006513622117414165925696188517283458942523333104738237870235291965728001993621739323532903094600838765132624409415150011620174828856565380369391630992370133598101455764217611615606178884926534195148609936137059235657018816923430652274498230448710989908335919854981817446532558035760649889888928248585325299977231565024277673367049513197566261260744661046003922462576703065810622817482110702846484151348195659789451898375171378539947724316876433996140661697776851288488855008796254411394169144328484793062852359980395159645186306375028266913846115665120439721706960638816113364184369131151905703413362764141494209447182252419746446386512418173059353432605604506247268921104703627990300718020458401785548945189584490994201693207262832046954339227813658426007714134455868596563341272557625906496050892697771287685874941672226086552202198236648317092381573768830818440037037548937163537382686119728731890248002987012152902647664861795804517532086753149731363274308524310024544952422138545186141586685841843158487392514646031215807062815768416571478026569847391995221938010227873852776194035654795937865716656343276319436425666566870408676781461810771856622296737617858737612639102988391919145538285326489997311383730766367288665772052353232058999761737301006845191512467179606775421173200733806355755684526428610528450511570912069915174054460825378847500221643207864022467310718044509581837143793483356389465208547730926508619830321290448077287770449031500625380923500626253520180585064604135706299276661164899427499724253412071844686102248761420515364520077980536135660380334699366257675821065339424125357843561402721559152369938561634899696942480381242166578974704273225869530980666412558243164654199499803709036710031598620159871656677656154298287905394112365048536055473702769327306609943263738128340588732815999247400216162539475152977578296019140851290895427175393234343501820357741223138072903997414075238971500899318832473883257584711596353387260786136270708892866303289617608504344732110340713804327335851007436086465390702298232123087077058408576884680431394074118317445632342635287576336586622947979904293906871045290892791235874488789015260055458379393761460853789388157886242060772847763635712240984017381216549567680251532983453505944643679873383537957286316634037361686685683084544416019649995078776520328141651965687772529363253347063357005095841212957986559002486476890461571674339039936061144291474279190227253719668679181547183829272653278034151537930401438315574556346239731231561474912289107101231333489352087807471653406763897726039063870537631295006358621107772416649484876513752282131709871082129323953363691431103926785838699560859913890278353580463197159417583399084294974575782763356815982183597799218974667763330535537889131572800652116443893805535150912630653876847180939104937867602171212669668821732916656611563540686159940979505086491594508740297150125631750797886668537851774000278733730149657129208387378690211155938006667870834205725842129322259586219422003128976830210110781377648748526329447756640216283543414374199897802880169845475541276473858580577478788219443674388528563991806109871905760719965477002453561453817247378642560373656151643124861920224399384894348822555908452727893895186492305363787215473383869023825361721121822452068663147731883010646229937318872040786109724277461211838856327168696046708896886114326504312600437466168882445303006403838384281509863118008900049460887761712506569945550667066922243766199166669479741434990184127161764382782961479181515419147323238703018426267233228154873142318117363850101684163187820594464008740975056901334133212722104991007108149085966107158826328511395113758253519757310619201058105817467938560998051746660707263936921052854344677606951008323301741155869327903723778433181564045559070672987921060727645622580081379511613704896186529768800879022342051864992984949407190720097175047817449662130973168291809604043537359425628221304412222168150256010413495162688830436825680935303855019069875858181491716794217010846456768128293182227425526091484037164244685600080359313776613037152050660817202314207439481419051645990936584385314037340059418270267540343173484093056366345826332493982106841641258729585572948540921999995407653138075174905343676282685196478239392764059234240860841156796516292592105851322993854636947078498699774949215511641813019192983209815349665813098994408628540714281972226848179779570910147926091230051681463452614124186437932255008221054960566498741428784111881038530421834785802821400048510236278438638219678913341086661190531523830440793881281995692305313199356716324608915305572432501813867266189277464919584195074411633796914109381644475045491596840551134850104614430949575904405316203950883061738778889690473174014547962397411318757907286750415982056806631085187825512560891938178321130818334809815880379488166054970433697252904101969103987147375258384688662537040257138354923322419558806087694113449234714906955527815839231513662533421654886707136520997493060035593395107043124830917876435118855709376863482810706494458465201224656477304489134454949784052668923568225225378466193504154146082499093687295733535953189000559889134367480334404872012053204126523343486880004379702185729157086545356412666692250304332713774083980970617781533368652117290050173504404719168341952832240615437803418865557695642403899892889808545069588791835987313530941092444348318231374141426925619769997366800440810955405383835971501932641055585712291576779684280020623582397884484543394053745783917500121127946597729423480785836997065506840873367827065409868061855354182758927782838756130153571598857088281546634174817881567529412005253499682460541399129957936594065947992658517667580915739531011163670672693564336098054481581313197577864008285948955896164267656352096242036409770335275158108682988476180771646693921634614445113941656929574488454536129330452951478081188740321239791615955782775750200311382814480690619198385311625078595564082111669571940049978217349013986374711629602412400548789632765795652350445653196948158455450823397433674587251437761452482920540224076115093718591323817613226485409632382266997109248336837849215372750425583263859555905814383065749209175541885061352178637017684676699630168440030867773612334787221152998286027429376707565088812145027134141902054824460812051177310104553555227754567330039542989671211240030170839320067158812863159542001898409347840942153738934400538165887551796449433505677259503483606909399653970927344892472907008791700231218753893382135237118641171236760445734137668844996573959966601912276471918190219286642141997002993504580151113821057461147662653080242428086005347847334246645419943343804745026477731600211470815952882685247255961731546901062184778344398249368940739971984644424335517751380799846671500553911795245554906711619768380823639219818140261056570816041793334531630251809135228804620345993421542706241230970056828092676118006432243018198744039958426714544997495810852041801684693439794214309800097283738287255505336143491203014420563503165212927240998517887646396354180428082755791718068240944242558328572366377617467508091165195170028693887916396679465814173434176782656254739362239160837683500956425918030516387126049663421069309828347369350534805759616677644169713770777583789355979394409459575003396725160263021515653829191737563754041090066198377041501674970208384017070474869018449978841373962760212015697682231281685275766524384538873396628242192472563558409083850395411983546117481313114808056943184400793057977370561397089152356329603202543719960290103529521481810589681487477280802897086806693376019341975521596285862621823815548711248060407224740485354340975184611518924900791676331694662748703322992270285777093391862354074600611046326416482462981759012153837172666367813295891858415428168240711585009651613352332187130074241262846220099005965756620388682114509758505114444658652940882385244515543852978105171938942613138259778480551898580209918879653047552004937479270349088725219574125885214678168881574401073048931105435270321963974694167757561355693360430971109477988379508536574429777833952792202192026515726691708814550012618214037436441437110994993859043786651365545661265359913816351679467029877034793151815359211851375331102234994840257210030535080193420454891103635274389164452737153977423431483602178826797127439669340674903553792544344995531094498302161760023959274135929797081106467263594420557165809020060929378417652465772550699008701618055396827841205039306668077817909018730281379637153705444560744011081921781309381462963378859224410684671826772655275370789738178583736696289588145133431079850271797362851542094526751799041309179786777008050899016320392157927823863379670450109270457681558990765186888435136004022123881824412208868060812741252329482750324303950001792895484479520531412708329795922661653448877243431364693082325397275335387472412369321654586752545789625366208446442457817062878283883368032332930074222484932399513129992581093759321909466761131050730311731811628923434212086564551258258667420587228767896725173050893201529054840191145014869667016789997744048026814040351646633964168695184991566031676314538954017686603477788120921368616983169220535706112227768238331785182004204578646782284056409691603754691148255586465024043633687955389626825892550635521009297270511640580516248156164191710275976691084048024753204522942241754291313999121924625708013876071026262729504550693925768195533178454708100473908455979530634246868239495777428787675501361053924021956778071751295534313377304012834794798890479561619890082705981800527545852633957798200764692687520041582259426365173954488925640630774729338123352136488165674466678705360543863057591751572791272216839514893930847101248420310479084371924485936780163024188432205499316300189164257489123684820381687808249556387789316221980161381125486884375343297228400547928905937792419746614518536002910389276214357572963577293117550540028588672659813019187694583697083668226022045376477925492249680884286572613272084225298938055337340717105956968058128608434336427577154907425535749035248001963847067161628498468630848518091282420596869262056725181917051637517870598130651547197442832063288526183693399687667354537549873449181141372939156002943825224212711318328272842158507717746693704881714518160401736145145948731330554012808044940470469367140306943738588290498227318489790804125850392578287911663840766161265057516134579534241889517118869720293226233645849380633851511269445317539265585982237264435117031895651852336152891488422911905134531848040305311747829059708061159324189303824401812362151070909127951729752706959812855418226333472074529558508676043887917406264402092955230311025653455381508250562129102300773572191613614237516515821419003926244965070956800195621011164632038822921918169761942166102844718227701423338087338357055877875406445576425459499465264964699880984363651327562324819163730629406120459231642355994473374606029449182230597761258699232071643003875731565265816713551871534813411176029186822388766210289574028104968602686095922247484894815343828288144881994862523066764044694983024974766237001881009614495355655357475765247486931883692695918457826592229853103678067969112089448918859545141461013355995615099935437887408922618505700107299594730319271517318331120847794584043303357034041591507648214208833668853338124679804138705164826559589700374268965733774330259214809698907503361993078928576899269152575921066564844449837170728696023063102762297451172781550154877298058598043370511858903269640307709311061615043513535557045704660854315093944056427564923569271280528330882104757648306774969556473730811271275455642638933992562491040268425185942918721759158014196709157222805442582245546808538288578155892650074014628398869631550194050563477541683184013032825072890868211772994803482204659687584214244344326080992088012063148972414472567065762820025083628248585247634457570074797921683965537190665235157716696586715688346205986288311684187700841691613151393918780121688844695843851607672821455683842932091923473615145333000601127465331202879777378587156524745166732385461670998057325378129020418552709660775082341105397950234806325492704544321068278550348093574886403017717522359982749312034520511454954247729594120410128254853741925517593237266002065311699302225030287150964079996491206056220975770425318705561837095178119805158711358383284099205595660757796149812772419721344215386335863803919947896144512639300944405412770520143347451127123870296136050467004438541710031121428238478907667796955237380693827925377990523002781534482598642851146335474786443824855790053098659300468849128571905838841462019244326730718575166017144799679336639750716309378070473172175151748535017977286458440662692596853622218323136745566074025320862527321444949076925175741328588801706863977642806636932192887958142015656920440210571835140167988378095357016450997409672811302730235120049812391372320175967102115463993650072594515417983023157550144800334970665695173188448924451120653531387889197663663394954881309800360413711934262885210015866081070602712707463747038241702953984412246023259705154530771474242296510516177353842862774768813008588285097411676670843275365702608394033379722218783368767750902665827562917557851810009869020598887061265132593441049977930906720523019831516982605034148233929337716749784048747233448309671516300879747421317173837667464008271653742660128557587118316967818870628358184280229305273030301570932247447866334344821143785340235911289273439361920621179157165759355795619687421768896610297545375165255610653775481158005871177429132818751584006905871257983343963700646903177588628577826001754651128197123979002786406252474959435314631113216562770468642512436116152670170850390321816694691741810882005698957092682005576257895349326013918187341442824481134554122712972207157968234456050961178284556211828298462101745815224860602814020232920680670556342624956929837797354726711674460092365991850488993102130530490218980980433365621678041708826207435712800661358791682000299302140763953275437225058337279803796869861454029420923953081502234849020786420818000585208599272927847194577197955367345766509714852433451656674379436418218750350265478278626182125181987979885985817120360978003040405534944917317824089196627923134539269179533362799117523522206291786305475472178748796591733566287716326158594190904301657162307478305577425576369637881869540569734846930923641893240989551374744325726950484417205324036125465312461063458643833873894068965208180715748286116918283740244274303560723431438830136622895161130708642079677895536427723251933627480310294154268434359482815042839418040803719524205114088201736788860470920217351412082577961508027458077843301000451473377893690469594440023213492224854876817239292017843824093850623714719887230134844914608964170149543494674416842076264627946989709069250255800232505978420947304685634332630332998681656309147306113787529813625929066789213884157203865601698947866915177850574168673161328902048738366319248019050706048611374960678512282959728628480059026802789827594615580693593517265533413449130990248461110799661260847484667382469372388655609470504309026521925790132391237808220638183160910475848864191453481001534113665468290721991864066318503946467584951076647752713204891979578350351378701952017281211927000905769493780523603054934655892752921770840640480567024013033554400697125841393906808243639804673086467261364221020440078797928890146459900445242423952819360683098973636752204464733268249838153384249760154231178514805499021854541415937183212706414584691411062098053497404866146893546244618274998394009075232526389319668383744797491865235637488861417029291387516621395890816518341022608784660010610603534132111978700672573511848762273846765332436432564078073398005480662800005535352655929562437513415655725669601531979603676253538674855674188305312817825098726606448262865773377079420313847725513358333980084679830835941869283085715208676186842418282595674710984366618149017238085128178647247768194340165443481847363627551079984367652414487203185230197665714015650055252236393151290541558924239949240200590505987522160716170781043316489054222266602795607710173328891647236527348841011821270630982461241455572610087754563629656579385108235491191527207022293128024818617922758690085038439285592944401201713885753005824411038681999743325881621630062803388792680799297021819567904181623882173022522905236384320885954626241207977260689601648416629737923263591650012851152028545731888102315701820889105513333379922294986683751349898809929083994599917698957777540043075317696650106345021427639058667594784875458583155795165566728306620857138997690329428756425734095652355475956656796450315317358603320205279346068740327431327210828909900862247800040318869189412246566421555941193091720917072279484911864536341505249782086222898750265806821493645896301602551978173868236364378017327308540201231976997684488687547368795351664935747969463501142444807737503488582510223734844768975206872613088724677739804325771349004052908783667842303521885573392209779860601421857921675276595670070555263197510078092906106522700975244238772229243432744361371871758998854747985700977777254571224401993947439525799814807740460911275619088105173497159658013157038730084741547130912865055634650625294469634633836300404844158235638794348266465072920135449290449685284870895339214652622225718217285874407372839474396636464819597042935348871257499791841488257591419030695046777002395888393509386778500468893537154427871172411312762532945487128773696749953762201648465798185477873387214019373802184570454123058682632215111573191193011698069145257193067983967817356311563486979263704918929806299889028915174438116636718590969737728677778561759974595195976322196901282794910135498159405972228404359440374290516594472343718118194935385919516293464341375009202791474990560281038672460624029185472356313277280259848051929496624746694989277581707966772978382579405937636983288686536164786465546739071772510889138373084707181426193390304497377694725540660018175214614519375647233898651924570486192413982543131728273879944913976297153229124128739555053504197575217067571225228049233453541986857569686530503577929497880958662025723337517466629546506160003788055971580491421137116044920274749081006544412054571687975075092425237409641316985099926066290658447463629115948074692834951985458259485697302341010627338788044866193910895036886008137415274138442611662220386906250572854999693335627346005763068301731332580546200186664989226261427084718252131069450791106266125111755710262788516830896908103155008142537112766480195891570701074542594249180871238253375942644712832771558517199807926448891125424942016273954143773129857465019991270683778570638448233479193387827972723215052186493299957980695243302968887430960344836529065523729319432337909376124624045699427005805791139870295147586702001526344430514199685521665750672827226619028580323586232086076892123761870392922721386904006680659173094064820838801091812506559451101239494000804539926876202310763405977486465440791804806916605753390625958472190962735363179358032639229267935200261641735959879705857217908964107707663344067147030683619440955909120031000958925854103564458393011840270677661190997840420984333572351090128239525877350643659428109550980627304146208291881759665455460812433262934960081292067955453493164423891149574388524352282498495304222505825825913285632668408578267329514583603993727881328561086923816137483069839493545386225334324373531221038455411422336468125856867286895398646893527785649506468308014088936667729996522127971750439695625739410330729008302565942927881263808987090588832490786038450837008538669965537147242736644636591377946112021643696537615653225141585650509467537820370205020452912924294598353150737659072725421146481000026192865850757105026641494294786132450533506212567306470973162468254358103189441109959011037862412811567428270222715522034300681482893316408815145677979896117116814494282891497523002274006960464565917288660167371087624608464451783139384311962278096394946898736622826672886422825407678416744746234526534161915091231859326529584544879439718674711148511484434024385765973256877562322629045270300351909107373758050751966859390751315231750286224236342972434318267131219594201245661138617652630539046935751644829994714159805606077744473238078495053362139575917430145744885503275608242729394291998004877202986289983026466372777310039579495462357787206336791263867791441202543516323630689234054493519642252584155201655023079793600886069790890578803373540367667236819232618144665331916313228765115049905733077278976999081996755420386573216628404630506709972999240473568851101450361007585882479763461300286148579793090311677964755914579190049480436452511284327726286418378364269115829606885596145965748018694561032858444275734938176110271366642642013398580940569093946561942914770854624345414950701832822958092408418000334042332412836406031343194217595614374374482122963320039235278829239775681852818612728381973360746196642593327948148705129067187635989612091914001277452167342845471927576087849813189971614333711401560834916828335315688577957082136142859626608011729885746592187351082395023944121360528104173612636784331844380479708824164985000220982759017376760376267978044045253899396247530504285570096298009375683347386099423096407563705525504946048782680460009861337944253233676763078079864107732066661945190709380890755293888787283982214797331937851704149192080803255741735191770298779350915131450481802127270341569426639923337247808418192663521364914089933352576451234460615219125592099209612132059745087042150986079542234842470799343033083965278337580557215303207161206301068251187317312773866612749580299715605810644961736479183958271163635746880312768610276253645191241965728641621828087729640115136187210257123517908341086625757624793436964821427943898561750718015298564543529907042089291156779784149859731308817139088936643373754946077642513087801874999834528445205524455684567766125558161749756312396825821164935222772864323150782988206641766752683601798221014765431519062712158821958405637203566221155363587374351691835957037103849502195336536534412508479590822609257829394311046239565017989776406566302978894683322354302493341851962830544784991855321183819261796696027158256084638588315663842248303307199524031015520259619074098148393931570328268086317071923566500076185092377405855713627125949867093946749534113997524900603133673389639597672700649346899075762344182630520065104488979326010032330488641891820899366591703068941596655023013684830798081544971280640138986272875741873380356193128756949966362980403515036136680873021683255249654543638171579937465391400676188311263513381196009170472105357851865172503415441308093035403142070391018867139117133369976769987612657782456551333660939445648221875784569311429005477411596574640049425174919202696769850569929077385165301107298796070635057899136142317848090165759878333720651409822996372100707077380748850056798936138954002703445912193247644539484615683864842427768193399637256719604340033671291532749206185464046841301369957357681266352235222090279265603976424828066121259721562520876965540053196132739035790433693351333163689446387581604755942675554431599758244748249936468880234483931290846170725125412325665022348124791726318068339893104845690477408502386210263393362447627877948272052425784649546898684513670210300770285814015773859111862347732740421670022252010262046850786750724771457911671089104869932903756374818465594231007433339376382527821703872736308470452999827036529940125564598260096788278595904055723118772033782843786291231713714836421058185972383064233048610142223438897587628111969483219989451250428894008662265457219868359867170676510338903244849949063067269163067059310400099608720444897221774332804995684321924130383684429599254426592907477155381211863847860354928853216461741940451512304041534405729033633093244736764218774099883235396037169979291259655255016385661149229137090380061037390734731548265408575605523813599789034769280953969780767868242165848039709126598807547600033988164855652956644537086364459733762110774048301498747786565839017024214786449321578752395949057405222264251325081593727585977326809080887888147034037237151309693168647884905297018962996416906666578680132671863402608376362304197206084553718156449525384515447967301058250254698972523896146364920174365116762382691606464172990127342150831387774705396895182853081906894230668969013208732027157895880509453389169267346914634405657096507376879835699643528770545217530912857466057379462811459207405470080944115263890219141974546185773089621145099518454926541452809063325582005117019593407575100465592463748012088022514538187849965517646008582574284757060221286173176075873241357439176850868281658531580843470441273164185448277213725840762860767421269983157463192810496024418745585851591052329337232062424709768586732696158786747709862961023510289817970338112939050889870473084628975813390037758287932633730942126673925635961453395609955763851565162924556332546080464926694196818118016296396419484933402084742884388735533688058759660565590107150157144150007076071706854048630032431308491658277595523226432610559752221363613829294103970479928758654406714663707430548651718865756285839298640976581150961043896958600866893677917533495092278353150949113376159929425775303207079127171232140223017311233795614589122619643805122379244878854991105892247896712706781717982703269073714379674682635478135906491887170516128665379847266726868654634832686956898484770880914827760794863464343655675491257814328537916769371192476315315431402582361905759422666053660014062044186446514529619510424530407117710234830131464746474190909835705893698944452079382992155859476643388406928659973790451340397137397430950845381121213749695035822441986666021900300627945017438466112870651594097303948939640791671208160878472830521704207710642162385545425265148641465108180302454384141681745746437639273318135072515818860371509113770574771723666441335490488876318945997236807944558123917067603104131241254188731590815727464805799476829464525088595447267574231358067620706724839202118645827807101007366750049263903731493855114510764488767716796392899219524171306054590563415911962628149113987558203203979407579337248566619260814226086846943073595541700390888374640368954380170260474986902528271410435017058048616713810863340907474816063057431385568698116267976399819120269297059403201369684561704607656047244470228501497747917617860459843053524748815730963594002308232303311500954650677087287328335339091270951143652099475075737998320078151678373484971248946500021276544136337935669458108526924726365351361556411578982633739055694651931570312893378068783267789174389530583185055031982213080613386231161247979935228405483237318117486067798756155958362307403529751428200511266100025433855501336431656790213664793637829909872015621316883733683566191423117854871149306732518173738352384421434471015521411993889844481096193525126334679667952160271055182547781461324881589193480768736318374746344666329389553753063447082264025079118939619158427871075868444984763303735720409539917384599819885018336808566279297704033045924031705642286114139075480222242053563312413149052149022028566877870586408147793025833742199923198546749367746294323616970030850686412770390243640626519882338602038491013165007682464751858417313040362582204699110210934962459611258645333988674815452969182107047032327515626811730362898391367264817718145899782802864258133241194272121175531466909934773426359347566354189245340772792604083695601507685873397431654121256981230339126736078887101064432502882456891885936129866549132902834883685034653091799853314859880199556366535826585708524202478091004763129413395848740713710865193796331572002971965780636077778050284237402622883469169475131704988148563398163008190172480103846599534272739256242028076563174202792724983763898781163999487205116931782116688949552800800597463149959137895497182625969370129763318251143211356060364627432302947138123101126227418237216803312599791875835212876116992825002845181573077056684208410770434599764380578721589495394199309014063433062767908129957932125981607928141864730590154617951649572864942754213313747714211164982431024582055545293319245052817367513262676687114481880511689931613529072574103942778361135665987840484747654804504188400228150739424552862127903230181957783364203396235507274957091128178457611003129862988422590077834531244047829761182020232360216935095600496533984685579690825365298329849786192385955608352666659553307287713210047803886664105874836819882499523490560124905243572909662787699567095585985434171666320523385127266366796705666443834880895521741626923729721486966602872064482915634301520784055545630198443606160628547300976892063537426052820235575211262458993142753322030920624849537926392953619124219094716918180761221019331573667430839172468342750911656625916973103612324943419579189802570004209391011287135022892873881652586138404192902812807511972571831129463539461023004555563503602346126141691295027166693875425295794711264125861728122538313653324542901221877451203946950351730637140322532651598647893719229700061374683474271388517137226477629654146204415059649414823264972593797692615953329527084635331601576895177795435760813162994956584445189323049867063981032349115006548509995132168301703687593041524323220614962721122618546620903018201242207044516784327527791886666012184216446450563948346350499379801467794351672477177512931970504754394076896463211104590298796971788222893149460685663158578361170011538099579171834258886052374965649521078087257651146431513840092409198135419454631032605878984661943246428148904542495756068249767808542961214864362858092383834993086024574258045897436138918053522832620296012100381379883756970818590980107013262311074849766125626722356088615162550086756962765002477909873134835053092504463290647856434023624501896106399415497471326258610754677650859567419916037903702621094636974915172837609886541441789546656517390683907908273868848244255565281187214626340188358525902687607204182550856699374288026610804475678636757519414665293095318534858657814863498430241335893439668312060293417065967428116475211181436827972444751612706824499703611877153556387119828138742089118964510694640539880203469203520460688703220585451439724300902718829228003652082063337358046831440608132326649539185989594378661166910956623019919227140050778889176269510394397647231423569027290319895780078003871967338947705369128456361239241011883276079812906426914718053456797539158892112310320206504428751644918349597643683233656928914293890935430768621804838443290697205713158772413866960481745865510246294134162817716699722021005602955636353946565376402063690263004327547525104928719147528046473354747032270927415111173326425967077982587017088801139453924895117001281731308623644071360135750177915333196809349219119325639879632760338614114638403522834311881356130034583675893156492599464376251708672369212290024299585466835552812319935391551782119346904388336402493143587078366853850683573634724732717081441305332756403725631042683179353236117733235574652962338288109287235961194510150712933501025569483716287710437464319149587269649705754353519969571890044178859096143636841504868163482393000744345883114131384419123703807863403519433253202737041238938282196905920588421902002677729450449858277486750394131379148254193451112360162516235060225009922879409448349708908420252912122096943719045975724737547579367749372376195565888066200606761390818998134669312332764643811932912898402036533779626765086194301023003962124195329117866045293362327147820874651544358865436215066890364717548260900133540079172279513118526943687140900738770836278226869010977083509371050292588264379587635119048956585252748725211440358368109802076330923734916730512788167655578881757791759962342359971781460036816185950722454359399848217827585402447709235381114309829993346705256755729517660214780660371341115283092807999154362286419223366152107451232342989778499156578920061495582950687261799750769283691591234084149088027885227868189106232776987889362241579818373087263801451501313918778154103569208215250905255085222195920392156798634183830756953420833525516854292847230846521189628978808253434216083511138634754246288932005735937946900920184720340614634231291464510857285322415833276080523818996203922525599498528787400649822611330622902786042735162497108917109734261657750423014457774545758340315960923258155805345699670817597067509291690146016890397301720109235763760602178392380730754794851394049058470823172962240809649376266997616815205826930822503561780359420687198932378201970231110513835502480851594517641987837077868864615667850033419697376418544508256593920300874450334668921673900775865266882111631916809432644901966788729702687431405283528183489866420961005207708937464674575461497326374987670957253085004874274732205851443266318519670037296967637812526310280278503093865728297662681924549352328647381961980481786265241852057142353564645783770780726752327196427989282865307046139425350346470721300740042907485454068673623091880551276233994398214487129423038404237402445345883007240823475370983306737447209685206479754814009917485392871089911249427922663595608729865316162491250532533890211324521750003579317966800762977541512666461453670277325655759290137551914585969679823562224834617398459683305419320877032574297029905361395422258839583180632503807781584401873148849186884138558893167689083014399127300098991652946428623225739313226647688753851281467469836435460577848645538417097877738222230370137971281382606434121819093144574131124538781338482043839053742844448102676375396554282673794626393077729970164266360991989385334558253766471488212899380930534535315609061460438957418649712160829024312230382322977432286116518467779821370654258579404654674072099212719584481160671325763055490546169688686791770105203343135064561053725448281844368386329927033082820994001717147557276900336010425053723794985193700838261861845413507062134869745744719079893067060810873294142862156578915864244510479484122328650880833357395503161822141931436844290018839411617153749356005053807686863813858409948493661740906116211547549855164768430537405114622969246193809766227250908556189141635308765185199199704569893949097068231595299127508742612112793201272370673254336483705245820920467179603227830667237805596473988158887788100498100037029594136084562643206406124085939895736670022414902790187222746554213788867064931885540294339758305710763040697640871790815067105526420672376253683232597538444462602521499654913397226565249014931752973836539903905772790894908685918672441701254633469388463328498029241330732544778401532751360685043047766055822275173999462068765221837921886474447336650910510394800654863232859477079286840347607253912790860332009106899047428599019727341553051538875542750307746382100607865693561435823929404973007578189866943817436870542635584629017690417527517866766992624289418771929698617477978049346620596866203312361908920727036466156887194497453019395268257946064111144617646647260734425976490365115104482899744824901262714017208240366904708752893257844752238447645768700086660320318395976255825085486697820568723409217228625924986851115297620240808588296364374888860476885168778031877587336654756260098158464116763774865313490251580688856550252943610139096535430430905037881565329884187131704396214923123702676284823907175143879826274868107852912301749180460995674288951900484834272409114926205421363526079128392478803451652478895229246098335840468072515052622871118352573121858699726387492479584914586075683325307292809172889550471283449724257922972956821142295910297069165480950179077440090478766496948157681798876435538281720504665439770788519228250327166666179766345276121085862095898790446186324677864603681662413509466017333039643962595500153975161450461377612790478028968937776585281526165792212881237489927224804161339553078366652244072265750658728296696762114146661615938374949611660505938806970638177667208927167082322460866824725201480195620219331123315154263759723424747957864668486577448666027302650525600830309572119074961858644000976921048065937152562279998371330381308279527635817907656543481162194839248620517248343482632466920232930408482862202261647462089597741103539578011068479654526233930031658519284628114119217546167398964487595410533436221247570041913700912565692647129848941584837813400487442798556943454400197857394984331837941984724854090327942884233138596746755859528794089301947926075458675753190594673422937802362771425612549032733084599236437380977690943335452546547558596299047948241848887599604097380428524505201191510574346464928306352037643484387996257343249270306021424183596188862278794406545323583954258800616466357032614771176750644068897968607704179278777219428945988009121089197186094266764601689791510004181089656287471073872114804896806118947266382848326433998647045279171205762182158958149850138198992369815960241388368683315160169539617998370147385903192097645121434066400894362636937127057874386043717207416650313060606513512676943148716097411247901676905422497361783633247762639078244332834325293802093221671612750093354948457563421223675294426526718366421353280180467707090585061197514541046068999190375297156707295595538603273430448019906344963521745906213415162296974644060260141564592341952972233528825719281905484009641132347346495496089488315336263816087721034562791501059500433184955077985362030109765226786437949311699796285493091286400114871698193489456344061514002711433869800289852312510204005317585757002787734956068874017869382495751832042548329982514798337871969945675722842335546933385342708579961096114891625047772775417624191665437551605262376576676700188361520929968053132180607523544312246638504643268266383190329946319128290672078315844545929336959369025620091958031792841325084848763638140789406354070668592590152245500577001889799671473816234753169236184656675429621505718304264494491531645639118494763820314918265841736522918751383155208737557484415203148633292831767315986828091534259927178631351853750697125645523578270779172202338222174299306184034405867510760820324686124787403512166620064470973756464812622968270878360336444973564037885597732240854927850309921799609411000042946358315091695514659311584222758214660654076974715697415772966618340525247268622891807189902398677024429768825993576369512004477504252569822280239932415909593629045543261793146994889977852691170750493019595224779547093483146918420719869474763468333104844996216573604385098387368276335236979462378123894878741279690883358121101314034985914571677640743792553810596101728126593889731994804794497194460577259919652094511648606560845925507642899043319082524037779436672612708868067446920583577616298371224165371230572424990997053208247350917455011909800289380035937848886365892759697587274673155816037298206202022614336015633658967340421551310276666749532189070826174760338670826823274526553096450819649131726781097464932646130346229565491976836195136288423958824527895665342231423138609149458995800135134370396916066870661307261309420301387473760339121138557111577521302391164922831516821764273946925547275275226406934851459881276414675163824846313011279192787032251950893079927766660499177583596184260099748192892041308642224212929352868640407524586360924621057745336816561637376703514837970890149077081426945392706595935689062156971930644886368356042074454394171366272490489025465891536354696319468840412641185548315582026891211247270596416056215990290221310566747049549896992736907112837519329040595547207778812386014570477333767467979832248295653387508576486892621168227652418679478577084723731127553387970382353015951226308786194849710360573467560080623743997484271782011016763557885182120926900463357480768274093298206052791014857207863095691640059727733784811135152063889105824941243949202198568476766054834060291958820188084008767097660162935332196110908682529494528797075017438450586924510421934544257586412603999386533045788721641711840347737475429891831631296056909505344285870680850692735587891058269644402771795247855220594206471678106314130249267963125872434633819264483540003748427901924855207185119985275601717212118733077076669934900777286096370964696320982369577377513710036713448884527671709812699443010821945759861623363524332668426944731938617775921640508176393843930538155892548717233688750846232307620455542838850708299946538316329557341681652730350244904676841322130628217596711983406003810418669405395849265019447868848427649964096857062555585544801156446300486647359548780314085440043217512689442638916275306147194161464781707159876428897669565004106292251839810874166167213329449420141836229086981993369660808132542654334318139510085659385933326527638153958192297242146092921524396356643589222961154376660725978623509634796045314928589844619049864037024386251958207858510147658073763659571484166837648068832711092826140504960502370168962200519395731642183289186181145205108319046948761723587572696775971650901323569571405569588221524012504900321343305835512390261226580491093858389851238869745300338538411019395769053816279572463994399276653013892264404192186363920972517100578765513268442420581531669083271236499708722853513647805192280088881359535709100129288639010238272161032065498613546736613206523911682921247470759771279912520006708241662654360502972317806352142318208172362105721599764352200726974292006767585679490893989326015826442459176283764379922793229680622141153751458648767081588620138727040423122610966504915086132572541434851547346380079050258614074796555101061005250544099733224742124042844918059419346035219467397625831040270189093742390321969627065929413039745786609160280667455758609532139315522722986991244795286837545010643050050385389258205995588721381808175130152331382438770957158117105198818882673325185166441346457465023335977550939622013876634411808455339742864498654861753578724760590406658550983232055115598602723333459106330532199055741173298419663942925013347005502966894210968294057914842182178517251640899273913777430999713137114870416164620428884150880997296949657009011908851819808135694327985126703417840449604999805771163446522504629965454592403481611520143518608041847217961970437058132278644563261237741515020513693962269512981266002707798617703370647070383699997544773798771604534231983591900908619892722903815746132382990977986031303564927320484411052521373770613334981276553245770513323824751299831394290458931319882715269751872551484436805156884573969677998854228611203052972498566235136182988303127501710763886021091495100323415753639280817216907405509491812964396122356564804018320513369749779280005846509089732425675430353843323108849227578731874029555296230639080459910201313974701114870685704064112410060716312691608170107778294615930615114108493440549844374557280838628919054068986692920895824455472740227453120228188634670838587465736763649472884277705834908164498276003953868726008148491681463948886713677172836696081529427469555656814057181863345887845472945422894815302223106397273684088683181089692461211448750508099468191380762417600463633138781767037164723320292997562385557892270896116936964797964070630768310335803955657198530393611158763868300716430545945605142633902374123210694294019949965250157112490123268031544310360948712198714174848982330630848008477307359414115081196355958276699362041431396009470641100457449687030701645638100821741694239285107849106492283252738482110008005971465605069240909945104305227149630613352048608537999962751174107124499392149609178473816751108317744300865934165996577340595791790620194524643829682448769365539389827550123447122016983156221660676931186077900124485358468226182064542932421658335411901760142733134539661612032938620039309283543508999850896032654688772167324251823065957083817428607914671975550177320731851159345328862328026174022536773257277540507348475474777062340532071180371271281994250977002452495878176071989106844285583791571123172121578392545702421230263024353237387496689232749257718556924475317442757441027245909639625242414834579223950050027362740134789766170599928153753562477216933378715559887398481058322400397716032375640282125863385317952685015294781775091764507884462126388645084381623720419100881076513734839805860997020523606268980901548688769419441871840572403823107601305712929448473862571246418838703892645955389517386163060817259878894190799408548978163873362208390992565733155270625821771972656771809259123873504118001353153306315912602508121625628800009182262419174455435419967131619377774564820914578872095860052324088115912135059692134823746766333288705000343743244202098326457423235562829318185801097717000359420179192724746989448017436998728291701983730704539353797047291838831097496004459957611355930748518398869702685914116926534978790163022097621090533538409408715429074403712914196603145850431714887605370688453111651092755791957080751299131715275581228809849813491204530911689212428722674024406240497874410196393524823021425279726671224396099758538667377543400493518209495317771885554673893811259719894438167014962110022407781881002609577282540462061989613999852902274887319497985010220823838358465839287799290285395856416721788964680686433546831677654963509038052662031781593105690340684568251901258892022365932782834006990352089298050949934948692018982659761467118474169512029409025992656645268548655076373478500605318638821930110541592566830021484297871892405122798895984646229888086359494008771743904705789909246000183317893727738496109947399727305307075842649698265617173610626633545074767278253395657961457921728358257460646600264476164643900522203970118281356471234477756326942978023398928377369663814548038355668323748423482695991220163708407631893477366946321668096934637342625337044963169392342849523434842088191916077586844769065574102282947551881055458827110718805255485023558432206754115732540305084624199471707563197216765820602797050884601611212227346187850267818235285414738548356637416952499507058091130439193429125512735945042749088281079643570433791636848282546572069014497765493429179512874985402729175746709295417706027927573203414826956153180355495450160759680310169635942810181676800421140602383517662089302154321433650239269713116244761929059924130933689019565650796251141910446014876883449777744871582431735506968138864239694526307814504978676923883581647131290567708317260739183776920305057351992931027193381524342145829526845463777858539835469743727801815792958677996842894800533691125164334957842734300650696490395632361798305653216561831702495992194406329621265896403645306062982078315508210489218793730869054120781505433055548665541385499683273480413170832924489089395307961773305618430931593149149108987211584448678203584969510186214669388231118872814573681087872752219692566489032726299811490607825352934547526343332613024098338726250562975552459839058693450752184668749740295401416837334423577285324894542256538362910360789111429177149540205529006819433334224026600667689415376255385560059211890415259002525863706922355735192192159890963390576273221771169827704864788136827959646687354428278280676977809137192202190046204008772506248251424422947950629836647145395074120917033765055490659380899165956678450870929391372907463705490772196278745723758572596803708249850729457809692472988940228431741600552810898172481880275445260900615768707284108243489994049958166586259360050015283604077154448800394322115127636108268512851234898959552147113404789945800582422764037787873761073950111192966933769996299872464162061971442149202109342873939982319942698027339915647520703369937231943591014673134566883754337672603315826707145837551534029291733604676949114399296359218144725296466413397100143453049508131373669153616233597201851189236366742275108364452711142850165111208385800598970304088426722111256317653231596866560438711674943665701048113675266521812211063212523489104145126116670994660916420776094222426864249085438993841013251778257839376156939654262442311168094348043629842974537669558258703853027549485446938230522113548019728915981294591341219154613494489303789333409715855793211362323264570149846034754035620745518195748644619126096337964180996726328933342792080979508236378286343591076624232768748146962084151191241086613410441582371050474930853796807154182490781137100533448756726575966422369275367275961465350700919338868402129438667878283391393445320050830637792089583341405929093510058759071879038296284573562109154837468835024824151603811556552690066095949597248346625145484438548155100813901527046486342970298613507870466152885062723612184730407272983520953937013899462720332741600690803444153072005514215518338833026926964007772194778603450193760251501470448159170817678265784611030911150664057739758830075388917791980984822693302059649622312068820568066446418182708973719066555126021990694935371172543839261274322740778650192417460860797353351373891427611533912056402639834012025662977699710724009092506971088007046065521319611947945392396242954801059741505624111656982655783741628947094653906370822655264593525611701119843444102850279805351375350944148632999642470467307614130060722041939973827288416662636787786435595997160938258247152676282581258830267722524768818473531737211300913730687703282613465473940871968955721031703520664090991414170187293736725438363460591215316894426499146803481480288190155940328366742388415730616701972562979375808631188141992956698507786260364672793929690448520207119062878645290573684360490996918101354189882571813941393708462807056354030412908112325715668870063913358249209813354416648948463411897565918601177395931806544700231876320309326113838863953162690289361513994237983644168120833990655326242456813739302736448936823761748934645849226464193311598260081501301523747250157275355874762387997664307231342077361373868276362293558050637930473502665050837349387862844774397609700058198651517270081348142302400575888548786855171836653476024541965108722206174075505462504974321449309201605073304734705864358858198708667364948806769251260046061427537832104656765347225306350008776474228002508770781174175626880980067055424558266404247609869453481434683951943941722820414042854287508735504621903629204502793459669466387414413122111195708607331291480231021318091276798372971533442717721074760199895572421981211840505082850552216070812751848740740850622319495503405992362201059688692817366740406568081433875172074769688970629355848292147749118170210743316208253085637526255418870054368809241713448078357436539759183102654332197770615541687234941431382223000200346319147569395979010243231798291000143340935338137187958792525262892704525963026695552323550138794799821684768735690945655951219213862302368602781247205531855823507653264483052322322901208003212928966707800128480610548457816227634163566141560366483242395330980554320370647290948657040297114037011726949329015428985905129088797817549214297711202764532900017597306181686764386846181282457746171707127420051401805432809036887994314796350955140318514206647001346273816205859793491428405949218991859240615230406102555930925890929045963243484137111255957541867573908187578245365042457168723562462093714712333480036105807419084872461999288040504894962006744910558553674305409825553516302739567593019418342648084219753901818949219867949243506886240392375470244475703280515357185044055874477831864913774938174042718002712004850703227988780413494064271851501944343549943462225560163395988649792871042004328716538639074591458212959109552048841795390647741452207096664860254865081729127973931937396193607749643427578131778988166169251783428272527808753534719385303496790040652560568212276722126883795555792765281767625764121343863990460005381135233381062659927019798966495816977457232527013263647160660751410275196533713295774585202514590688852224405584555027861759706445516565202401724412448278770089543727165431969899450540986955866095913843127351926269246984231515336822308347655908223805471977786187900028839914803201331794992069531858958711514852162470046601740611013113827971753084185138385813759830335477611512395540283356254765329765476212531157753985147655444568424464872389529383512658208922100948022175626169221470858124191362453640188277480621248417407030857407756476412293504007236061097148941449994571891268823742485805462624142466832611009940313903921212068304261222157663128982332268800257063302459615306230193482781601880266445591578199504709782938606161216582033907614681666728249858179040375734473066405027403082404108264252818372541064955778654967563048139924637192233509088428260484800234718248151081099777706724418150262566289749406801855494161105216835508777280801628826341552022018003720053478888832347816777934721999645178921817127900664409750230277471881972278881483792039842823164534151758147919863216307396536107038361391729461344552760800750646998138391241098416920358994697729314539508163376837252016980828992115290456957055745073645490625660497536684180881408630545079363668969076603463352380575736973706809924147605240293106755145745071025890316398697397527625875695563610263142412776526616409039083212190967320912679910469684198783444533667479536974353383608664020746609662398321412356096006887966616872812297346717236725055837209013189242896135287452012647982422894252572334668377353240239137170973488577423248909221289381513726348669917436944318770009482407934645252700696708124572939805459593892341774968666405423164708935996843168760177566763225758789021212453244191993951777436789930756878885514548415176436234156247718431831772483828471469986276060070678123478179323371538457990391209225610931717819225773984609685328321008669741128096872481447976574997622776133167039625920825033797705655630142675544516638532873597895381578882400546346388686610332131479613649963965847355176550027372656850806431312277952743087918266258888398352801217254349224397360867474160621478960799089693041820008982531138383817530368908956725591813430827088046325226084280742287584428752744858853367346434418847666003365510864621789177361363566692786260430150285699565970737762002153689112772428349430835749939119490380680053372883018685547000811514635461352951667401762395339118728772604541494197029087026380744053092513014204778662226180178755055587404106045953169371886443219719988957453843440167081066955422408486496048903076971252232986285149279263742218339508464335390526511171444064747661002808107121181422468158643496585601337845724004816875307812693005138310637023680771739809389275432187645125040291117146930435109926594399055749549712587485805807404471923686449378112573746931603018757773365301167666029953789607744995549914484066349035674610811804327666527369323654940716113158060778903188310976701375885548073395624612334593561264926897368119911747434229349087528818468950178252247938511987509529022943619243264024648369828289804811691146560862878659818583224656275674059614360009349650560613215127002277911219834337777330608418080995316765242888677017290646424559761212051368876771127568286727318127400639378298675458162885413512066169943433339255435000192860252735724529862610093689721713104827828249771907253538591305272460033893652842173373561756857913105751346497826216063481267870282992283584641914370123379959981762079232254815364629370096366544673417989628816630890180841674626328656613487702186493786607922295570252119387969966686687830504979401290336309161182085645816120638825885493720527683808207289069866306733365599919626643905366670309614213766591180398653153886432711311587640994057405802420746481790405097203797479629386905810454015977195410570856008026430465968661027247334225748604319523843691425182497804914074489863039258790611185579246073702375652690497715058790120228810886213337212314047772476662083149404222329946660524573688071557939550309614255498471660944394085580931070076205130107273267535657233593137106891534330256090567177279919302946350121536703583510125776551364554931298303038381904085718402538888120232419005119160912235342774946450274648832998333139147801832729063292933465395565779771992807224467129011743666214424624905135824487786481272285714922423395080695782332381980904810710886846590941072286529206264261174708493081646158154281810443769461459675516045551822718760592029878831144446673218631025814126569149696482790387040636348077884368656211782868169874782832733758737666779307830661056496473518730105078993489718346771573298929691507170939255247415344836144114638546665174945705741675928549096123290095150713154550086231300302403743345636564324292609206769109830255688455292404782795377977275521748223398981941583649242523660696191944314664329860111332036429368296799876996859378749818842357284021722402019586878748456927980841764150127106081869583072552419038943179063836867615988572691084242156305733280351442018657113910230917632407888322046937918326044559633638645601355413297183965187865332571250699484704952919147163688241188982009397350521203725903056965295256705589477433390950455712723131988670610844117651538587407802478505520571569525494476978628096063170542624159552837778721944337609250821374647758339043206362961495637670923174763380795309696540614312916386647961850355099776308398414713602827879570451205348451005974022684871419289194190191318036524354307007572140618822636438276144317102646906334238220895690293580913800358204168993170737438837217116108830970289730414220721041626514397511253086968576668966708489383810329479896583328364699519526063987209314891470911613253393470202172205047549420185672095555818328688924596861521268329190948334453431024664967352605590712221155586533407423247928861520933027142702109430563542521546930417888716377141806862057361762400309089018476181437525444311394881052409393776327888366089821158317567113228074525830469271804561028038609243966323797935347486490559248285486610355622534628829014065302835993098182000633701016210634365680281050030381235987773385558013144423449691826696871311860375926507048762368853674336398948288840495200983857068029421354986583467152864334243120212466582357868025116235832324201219147283851645723045997062302272584424507802560645516299309929569883362259242746233581351568654389904965184601644007414648085036035939459425778572337333602800849696723546682440358105787161929822376310467482264478418261428722319107776501297193506854975592420897487923740171409717335294475571307449575754699710021987446857799487325953185970378308587769344408710978053988139126782557836732319092546202015085004561179054542386071965695426304806537690459270119489377246477665853159877446003088981033252871593302461527151274493449493393346943697217274061012596058479140435091700873147202204686534890456090732152023503319358477768979917036526659716993426088709503840426671843375883581751160191304588151853185570454828363683362848161853529303143728836937185698789976072765975409064115940783509761892629483999538943171347014124414097234794985322520358879172404664388467185216405638585927139596946851060041008817024518486796872491667929371895357076804108359380571047236132273883073749332936827793187676485735201572999224928326535492188791809898573833828481549601616805643768862721367891088538408092630395126132137289021032400406589512037605667437457995170923033528036568365048755988221405449673814206329559654096101334930949021475587014797190204723477471471531088573884241017858351076876759997549571027168313183860931072457301419369988491713029308904979734983245470659492451522837493213167084988258822899578159243932560177999371374209137740688541420515428511377345446932803019060292291014174319707214414202502162689181817488553973992202669495853676081977846057783158312429155799984070208137298778825670429159936570541151871445777412953279789143532794957932591758937091079882501980002882657267747177369470413769726111189628340140867362608635278288743429232726720221932663794488353787224003194979113808326627860262324926954488160194135211689280749905872651667263163717167459632133499765008322284372199261980328173830338286712966709567278661042894555654371754679837746313631076458352181889693839780605058380956201250515674206868630901027098391134539259514726801197880776908024401381107879894645254202639132919449254427183866826121294313428190807811513913474940290105333942680065217384024165787023261085301162137527542324575905939242216218103878892534133305640900257249154805132528056307786289106456308566076385359614353581601323573476928034544766301332588371282793980522302598852300979547924002171764692146069860390355480415008470057102848892391864516578537597404690385123365495967698198611558051427773884842285089089341329521008001856312186511673796338655636817539373538747034229068778714565828469729888555816601137271525671717997326839531126236913842401427897751397096111812722524010338622357020004241658838112792114512708916476125083906774571139354038686330353558347828215140653102176673214553088009332144912579302655722319909619802207757386480712777906348612436151656313514045907227279895847760288669711661862684494129250002065258386321090192625120787214068832412825671940630269734349080038390030908671328633538438110677394683647682806285035186492103083470653008317868450723444253573502417749642024766131422621180399674284379163152989765047154831218920292516847316591594566056963575141033436757485395254452394844239355139925192814240454730632912645261222055940864973038765258973401940021792032324142132095497944142156308906852342971746900442501763648035771971435653509906838613026746134124310786913285912859658155777228798862430135239875753358469531295624752442843856955676464082699055388868741131080007312212038907696680987710072868692241888800921163363578008079399210145114785891581716210665275293526013547476197137189024552851122077835582181493564743433196339022095639081183772098521749462387884339679925957075613585982957705461512627889033966651731212740115342106939566095683247089046742001030936939079788099377190767429126545210776481028564301987726571872256068326318445149099182215776457976889243085140628604518866004747766620355365288214697613336576216772734738283565844842225146697440199611591774484421388852805091154214114515317546601388151614034875394203357410049520992368819223911863936480529627792767543564679650855927617355602790447265388709511482361542811770332656975247700104292316598410074561255184768921000902329586932379018641283776770561940703800395653595081702838029922364799246684773164942904199810458272796650279934951277585536050158033683322657207282442865023348507525912884969885307534545320540351068514657017613015723330511577899430692955891160470896884257534402141792559428075951467099780464706000820525914141521590028857792422964946683389893399241929616987032530532838880468543223883894942791516726119875695784578290144957853021153453880220673816978750181294018040439444233048131434915123367214632387964156464544132701358213502640669232747867846544076432451768236444891202754566721135079371577082561817250651215355878278004231490651264687447432880449667635302160889987111144299627165695667905918742842153357850891274382812370455099883994569427243163823927524278480099439370657292000217091898897194156493663045620211232100654582753417265814866681433874734598093684934864933163380907844707180521807042088556250953102003244765299473665617035602238872640674495038236919393618377108129330618266244686357646779237049442938729106762166190103412134237117408988345225805928824932318853996049611028254118018737613924591745884325682687704826365204364538107115958983795776281600848497005536372657439632202270010293058006510226941417144539332453624567585834877236470033157694945980476972494650474848909886357060911046034742202113328309416662486253786098311671073095426849282119079203560851184437498101383691339325138099711084765726913407070484195531248860308817424414708514505041643819266377561819850765650473914676406153108871692935171146823265974271176976115624289086376983931133250070545643079302451149951316108655115276564337549635701505959373851266686845180616322965135526855853448679470829688553969426994396174924176284085284838213343593142469683969291761982720915622212700853819197693822119299599901324526028602596097801175117725228532376722265140576435932241602391632896655279345012142328275153564652418026629618745459401772597738725110758694965288923122611087473087226758971968945288537212120259912138586205029254661908038724416916446312333596950863443791654075336215525291519151962021421348757686550396292698929275265763605187884786773659950654812844287403864411634234812533537754026822838373726369667503663042152411299313498985194591233120089147418021972600676730369717725522162108585397522978042465448291887324075142373083484682746546762954336480421361237126010794681685757654902631769425722114164396037986040094612789931304121188451481932712780837138666287885563376887589032805163826510785496840085899976780241049096011777678715385299816676304059541422377143045470508272263769524553316368769803183921421655138346664480465221475027871347159179141035005756247247389125127048813068886470312363047272956723575013578449289047407736977808292056636676895827098779494457256181040024042154216526026260621313396832370344872652373608830056141152165327696048552031274587780038267855431078201553535386821096368946455954350828344575649347818379405994275036994969787553210984964980945073393923221201729894839794749936792024044008357919327874599868618951713634358033365335498663724220022931567139290616318453129487372931533264306685012736748061444843815346978780990221989733220044964764338900635645785536197279056188262044871145350604399758559804711226922467325119228760742227351153708572432218639864310475391267588541882300626800835838899207904242969064204887156625524771564073517632804267456062052592457644883074955955255810744974102902356402514229700968272882924191236538159447673544189849134976024545509969127488221809893232180988477382921286832503633143076465637813817653586738509881860124722495182148443270776443979919147702620313550775289986515670680711298430861830557099086313221930695995779506109137562003168556675562362378845083174866858426163106468340085158437868739538360293922849731279846303090192247531310741773003744227651213868339553134406460929156874425033322015618862070064194081456148453337910095202166268707445345546226324416841526545219402679884394211265258390792999520673386227520567811920684700039856614087532174301773268108694892372159217115517362447821822253730288561725760389265337623097511380366246752377050102684426611995104384021192937184286611018452140258476889304611214311663866890003867550996375656576647053066398827772931166249007048983642310323769322268533624591428205904558532674160466268607243503657347471725445558163253323345466499288357956090741332075918756941383881243532779464512658536905213189142908900970974307728334992287958447002998555397604807563024221426464154884574833398068855997226809147383000950078239268092712221309355700310467330524754392798184367883981371708646959625849089375524427243305627687973347481496741867818067265993156250792037326182852053326680707421738417244987101203350965530522639592494954659569230734674585624975108087341636677453975576158011861719683787425899347218948454730723748502509572220484480788621365627667499596491315687165340428090987073246249489699628932155580497060396994699206924477229410219927332542888416925868464756881738978766808067416431576456365137568625962152670269981584056213980742853249450918233755251952224423565569560766947639495917049816285991831074171663071169189019197261056720769713254018827772999907473976014852493255532717180258515203848476152020423568294072932377037304922783709896202254617546487366173507223719431827544714187464252175113769780255256319378803143574234439062077948924694573615349011201057564616105163950728887942956452578695591880977644870415390973738858427043912239299001419377518578872227421722262058018149431712877298732243001429473278286044161432100327481140788656205401943863559079820550132146121702559735837596718761868311747420225089990856003475466503494381204339400191830161683846538165367785807952142046301650137969205350403067990402324717721404205882029100127989389609438748759903900774014993525567315647837834176299046348918399842277012497511048510773584917089493193304063146359518903551315274377698258062945779306123064499056996230215186450766996132650637878989258462692644259949729055257962330645256418635857732185997637296849789650788159983871490318716439818081713010190517941147758029223438333726333479627306256399969800262347154267749136122804272061010413634746878171907065332534888180513240668267047716557951609955150078009640541079730482212893003650904739896629259009514899495739146744590989094996724308100716776323540924708998066190196876472481198132466858974888852593961458042856382911970083807191658290845002293798620416331429859758004856433526606889806687092562288553690149297324995891233119623480618817224361722625143225879915983781322339017408679051694371359364224794844425745860304898749754664885699476171295370535380483629879519719629799647887064113087673897284348102891253851584766566115104552165324358934652980578786525809993030408324627295947718197811625227891613360617006040301487788053927159658235404759665231472073155505874788990181147987640038881177645168028162202936403326170064467272031746105174938978220559685416548081475285280855079225585192841526343383922265692169461510959342022943163859105012377602422125636208312935973872610899424963215427731040308423460365181396656752289325422445679176705692414406041103744577701869634072684680246500189165677134782998944214836855396353074191190410966427640964306772942943862092880190059300552973442996071589538217937172344077929284747257167290829766144493605414781769887159262885037150185249134005903177075061505815093879158564456943722926452474251874210747253816008033879439558912635872675096031370211869959694762723585854173420720957361399624611215109811869727172182009088000674701637973038234351525281904295742646384710704499672898538265991395795973749360450625044479837464799227886201343359556419647030568458547339085472228041592646018639262133792772362083446731701370268543250735236753419240140290405547570568478273695302480839214340143267733172902964400000247930084082580114477620729039504634493752564274805407559901109912292336820172844955873758675795441773390781148856023270323149359614765224213480296452273152729705406963416674055661415030453245994202884667279815780746164576136852652174356982940262472726110892500884360886866895110192783898435148193393955372505029145745782374641059303065157460726342791021081317391718926383306940542509188547956284880284197201321809915531859006354684377188554098270900531216836406052745332725122219659073909573062342832987365009198159832851700846088159988424403320023552240157208286868902360831944576170092617300316946937682512030789628346018165193790349693652968954815257828985114139626185585640538845787978984663525153154278186674826897550303320743966685091644581843983581446276907821634464834681419736143719968098934170210917696221490700343464886908325163275983423996418227951424623237526407365582200494236109830207870734146925345342598174855331019535819500647443333960931387630117451075117514990742699677510084355440026543572629699664403606136244882128492678477091139105268300240206400045640517654762569422821376969754660587282128427517166037250290975812553177816655979179043204415408803403634448244799225198845503690239425364569957202503572585088799609971858535323197579840017396128011830220786398279689486833844775505797108215775050678509653727643683029804050900028613641834381038683154580353462645438876422400606548307754515603736406306673605309136558703268129310557545709658017211682507597037070050080478765078887107832568141554859035151522022957675562914191994263073664119090966383383353882350471596941284313902173707048246646822143263360668304999321505704433375541382619163408159671474519009060613177213287426612474522142715118897803489461254717792625252922696522070839324165175800821475279121306156562560185960215886443624935966721852333580011856054349901342790911291924750241923801148926524603957421196789853441917431729375251331843843265018113303931251617531923577765864919022843633996374735030387505790729362951343235058057501934208928053950232873182074095268520607325928014143261959142139806494108960107772286956476464347847551944731352649961106059428356635431362123329533920982302902919084989033484961344078136365997466806612871622017887121537585130570368457641086951757066285844124469574552971561331878147126700474675156555707903058466661731876226727372754945986449774695075273590981444119167490978512637261695335953737901994111539816047058221945909741532665579890343471321073954021295505782252921273648991533683159428168630366795218156604911762169178287906805781442141899586012901334827563551048191743028721667557996889255760689513563155067090082963997835198804101448988380822890435763160133841036823658089562060316831564343074494417115199720487698091034207971577038009376532308991787635910387945294230790067533257665296396957281290611617929031183991896810036513580356491199842018916196529397734847737521700271222134839754614665235374447846318756983232626971546238922238276390146192342867356388477417676114862802631896477002920359742804315140693193073400502392768919826873187809329365828421627575709398759322001995222941919151689594018945339622337179726570539380131636127491426936190692591140858956032426191798266777155838396593131046643556748894394390252963059238947875773272818506418523338225964156202139316846693006638301474529042662636836307553178765655700583725249738192946138979100085523327993400613425624438513142726282543209125633655745754429325346261700356118382399303446329848154979072171493754042812229809519044019453673605297704768962112588522140619962937341495179277836754874669015389134712854024726603664507111356996477137253395016191857391572745961299558578932863330711306512710562130229104339706527503804024840182135189434314889662253196487205933091233664470671856093175066873468931364220578064840225290591172487432083369964720605915447186722437852171906481774773031976061948173262347194456350645420798165359198940273622205195504089154023590485509169906133689969079669449288486371037736637683125792276408829731351912242338671262353879092268230347875807340664745165817384679734374000962358129208953603424517969624876716276094709621807345265346419500540953970600735414857701552989507579100742324469167497381898233683728477110328425901272425621827126619223036274437407239273682192333577923585726249458133808277021660483326711569105907951767920537349317504853756081272627844375314806630749868739078103777653665289569772734895120687429794827613159135708781406797273024702497268751727270858745236024588439035753242389275913357423324538378745759613495580146246845909470044922333741656761260064932004181182734798575486100478667256514177856198744936881511463852341144313672271620278458397605216901925726859329816797794519326241272736083166548271608315887039832238754160508126434370545981786035808996622979516801520674481948138265578597503694658024027088532262762744344917411200741175803160738755359276877923596085442001822352495315279442776628546124812501198652111847589833571874399898212946846029812621302823785686172751056812085048613046865981536073306108434621174173601815659392859975824751352687917017237231951897972912809158753190291489731653243503191832443658543609459906879974621614562515603688878788910797106885150420357749209180108575416447313221007260175685044615928263959293314443454055703977489710068426631329572508279284902465686076477369330440044564316954225289660020431950877157012351170593629090519255287966589154762452745068581993070373682523680479392402593967710226194353598279272437318497645540830735544635406279888501044945661849190413308572032299333124107915297690829474439852857438260974291028475966101398841306190568250997392872550170264658692266076583442028105660055191350501131328191994347492992602967797555725715576505903428300246674730947867682407020332677907223392476586670886455296582148657185871008448571468322145493276109593085418215292837653769491348562667334036003077835372056308379117577605753751424738564336212505511188409324841388217311488316339186235642876861650059741593370816833822283657050913093252916727519177578079815213771016913135653585868315015328444855430025441969401082372879979932786349244469342294965702140413250376230838351904527827333798515220807515519890939010247044477115757048890203328269717949171751073234414981645836118324736103681247324044083310127003783540386340779903914694177111983219195938236775202467267753037574621258777489288924726066603872408128300185992854777475387783961111655448417570452657567417222425528991202928136147544078244699783587324220157436435239129407525708254765316881507797200115538245417937669215367469810011584121829492896161337468387940388018638903784403754354000247765031091512932496695808029450848438568898722723223249669248953634076181287703959081938801977937991884192503864550221338012953899693549275138932425899156443472464162849365561229721074570006580200352406303416165190743296277152449333636463385563519784120762130905971340253659224227958132155427112547914810389539049781804253028244048331247163610653219763163669558646319201908345197675457428836326764285346610419828763194383252415630486097076489806037487094064292259567310343996461471371872301862613943078141002773261564142599259343569175636698188404132825298571471778895450879422719790176601386279846399602953572624703621915110269005542941957380524748708717599504851657161894978480184097050908928203705988549284958931550201698737535370876349818339301622041138755763749390845051255569708615365183080343277482593352198339870987499200965513614455926984346128970564678065505300723747871603726370878763992842724732705921136799081270126584466570273477032421623771602921718354541542739368456862651833808220425130326798190804982621461728689842014814088241090250597206474846128752811625277227671065434448023773403148726646717686509160191990272087158674927790699749410115314217849640799105795608485299230006540572932398253465304192620160223237254710140002764825538407824864520117531593896111259345816656121956748511057900130120447325639620634264816615530006024001886704269366710778962432585093314045209343901596080767509337742332269364817414489581003892403828633860600899746301366564060840939436516719616180819085556504034767362210356638908960566781839452602283562719584972530664020020355884781439525876292185732071585737341666580605352703137729470785199729309906835963976348848731217403341267770529153550930687203339526820286765270998444883592651882085320576008563842129657564923820866409317843880177936544365419503147006294134973125795752540588704616157300322036724161718989782609840782394649987465333243065391853405532203017584795639385446530393695934519470805831562528725590017044610908340767793998456490205549895716626297301424197298142885070110776233668730153746200976237883217063095467173129956372312336088311268457087934168931078129664010179249173253255886666389127661249844792247043293967733814445391437660483212863735029993304385351943605809938390199214190734307519740214008888105896223121768044779262204906590836410520013467630250343772491311621769501846217824694224166053674079883330855118230370310291994933859745463082995631901395352222508366443084991177534702840349424007944810294536896341801582980727532302065352981296322047461437753989764399115089341399982906876727753448731781593067431974815664306427517011071524407009803852454377888078063614840648823084144593190229564987720265194261284514262838560711515057960330867830915445903054861037659680642540248961883289843378722975298143219635936705048222149954624582466249861188983540080342973933060897709295933780526561553043097086119296754992654795229982445766110097350071028279362816246350219246287906995509941065235859215362419189359232151614508230735654845081517030108019127538185724759903410840192172118973940282646046492261344733298133128166318448676189807602157159524802087225044022873049361681795083805544754273711539626362312944383374570595861803817139834548951992788049087137311750123036199133671858575505678236133619083838635037657674228455148314358200128974298185834666167833124124998452248778148836268440082111431491165695929381825562184599245329055797699332198149728069258674367281890374958847777756855975519916421677567935513189315777376172908063684587004438201616612957954713069553046741707827080046667494666700042185757933017756071508218467994182698449080482478352337855500420117467510178555945919522411398509932783310922321365800706349809242841001507209168115129275807846728446353659182391714843965615505098375181268421023053701235454264199730567273602810749558355049699532885969786458040046178467540077229968995017084472315680948502227143769303613592116316747568282836445364275830556603094108391456090105411979541497494153292210256265568741202270351951168450142241533261759732942528738802292727190761358915573800825721366443603800840890254932616091746632056184910064046239566341914455921711166352166716405728136324733614259880971105637716824956347927228830632335217236488869758509850203958988085877146603715604147712979419449267450622878635188513944130554958514998633801704950169588226890273162864270816495240441546158613841568547125194469285958957347906838280519321946177397360919799673959798991996390666908563803689971219789977598395504405307352214443057203569190590993427227111746463983780332941495940765838580549008411606395484549949119180113469643357307828272567583187458958182260165691252309306902895430419677556357473761889758144412893840778522084207569974427642986997151181392387245090602229365507288357566482550057422661303206855008619572012410026715639448124638789936173643989320148925033051930800965889519769025496974424636487321751212038544639227178471126327642523608920863987642455389199219535784706190033236880626740588386425422673246024262286744784582062872070191459505115568939967499040759112352357153379879101657058039919985635851294285400160725441360110275099730598045255397118429181645685071036988486927395467574060344030482603915848309673372018112318260881584237493857422923736172268439574081222397590695389742383543810372594773573548628776695580872810313694695942332401956101839585038182970870796616245128463513851032129031694718752189982541881751377084715148046856740326247738056485536674665527708209020546839839026597166054294936185079654575194790326945133143264564923769904552692355341514537551424010335281503388557153633592602838983212272751423884291069513272533002582456903034900874468675462919662875869447526895852293700141872529484553883255369064464584807282552075708107449173777434992106382204742663906247433476782837058220845930827452976026073519664876238210616315188458832601835851336303305643008184174461902737781119281711861997230219988172213790614965074689392930103610884859255612945280440808682660035031861500723822593876949056207767520330294021665890848442207738379156195616188048988418945250344882283743573192450348905786158583237541537914410657816809456438143048641628667888660386938821521357458856968377939887333295452902456662900847505113878960132992930294572828250525733999977640420553335979926460680114023054262353704841791145738162854671672755035590360080882565304350328107293755970232762532696548118886385516425095544249147633095592736994628433639970883218274873660449488884466118375072676037160518443616633913184890250617469094870677194003373699394771331414616894873973350405353515815560497235897830938408765801604361155989261899850192973178851861447337850238488349448482973227273561480203823825755341496078649462297304539527472109607348004031312714999542116680149195301252770197062525599788163212722145291865800294568835319039178240545521848567782841984173249087340243178342732964520460581346541636600256637390384815374819365206374628846896095253165626662989681974956917515501333218536320183930196043544983847422145324077632936668079256017303704869049695240684804137295304938334993071260130263337460830524970493347908518504357953467059980359557686062612508523031519879963091846689195369115944721491123598302408649878018895563781218044739941570894396959583860075316533206709123277312349894991737654551692281122923527020839772643966002633387269192618273905325185875711202014048166382541001828258110858362466007766292894708673730519531773421395320665842986605978400786562545912838756389376814158790331938959914893714780918246859206108921040792540660591389044611242995793419746327916461398035629855661228946256766438465812251735819663278848609042391629601940745042801835528999488368328088741925012429714821243454563124770002544713935925302517737726984494761363393450752252568197246743667754077725133232763809104809479566648628947597112880649798633069595392847153577893763267640565902927050278863298706077118154767869455885780683580810430532906078601145068657748929571639982831447255810593739818972373654294173205704221764226195219684569099725928834858074853347313493540493675863061747502757018640325932453979560913463702772287243781789812211954108655607356673344601146904262156649511173752256547950804895903866309642829678081129537431533860102820460267492950722625458568256930052203118617917582952102075408276258851828978040973375728701614402784268454528043241246481264204945232750261479934256714765602473870752106297225499343259777494131734063466278293735189504058249016347553569712784188405716286765892341349550473720940612737626186215407064437791800640363076361052825748137117358993172440256086645286934578511264824090491258330586436936078094095139005127318192771253231771616658565417882417259983773199683463657584189177050353592659767512944249540839321590896166550603356232106382056115366575316820881765488353533883787922412654076878072146497032042183375379554674889645925704319597769633938196756635083719721382162364417269969956656465819555697155734020067040649464103884652896354260108605064528199815807933918120581181920220436846047879407515637054279443445566869838794177991284727330377527601691756810934719126598948922830940987768857188718750632407641364541379019197020783743224496861825543801712936090695145436188812604608817860730292380391603686865562926447783587598691590096285905329497789879294375012657149629795223182738028002784771127389693130639421716212977823376927997851174767243444787024499033181728780379281502367191068699556897292149800430480184581223747453183561601939421376933661946181523357182334000906266964870882859551409176614304290594250242944593687025042478583036406525404909874083828553048640881705790170241359098352874926929548197640485363919751469646869317772633947981298176915797719057658736412234820681824035892643692187858978276919470602386090851792467894424127355757120742897755964485598514959282722412229574772354709847264838217021889747087643595246801885994579039034327304767069729736782325720876633037836903786819089606963611362032057122532061036030103242387411368200440576970117719888188636490873687082257417958563396785407905647518904196512157924154119051191108507791642888582222483606364292010624813878337944784943777732668744099239760661967596583142064261467652703695578347775164499324538295388430281102172965774479773168416791640458775838560795760456753539803323936529630487019447711483544108842001818146177507720994723800306404624350488770295268828546955046987258668686843665870732125980907205902219023359517242472264464120260345983395068310710250903762422883238503649070726718009299992728900925897578672819092278376243252859955442084273948957896197120484030981136142223970003345706157516780905142831008447300572401326904424338698595900505352701725852493600384309969934943131098754456154310385698701939555296947288767849078145978790929413985327041386816955889616780814460712716901959335883250171368548774294029214048824148977618122778855064170838370413589290595009431864749377089330786532536650859570586519773755153458591752576390922874298228620288745592185189126683022940432515087845927990701185858608164780008875269357281707816332315947148530008941738715436285781199740857240412563674794026304192159372602777966686765488988347016992606125024426860848531676139382067477919351214122440748797718442103666511277250051320041658590224116430529439306734488729493754546810049571699093849763364190638154793927132821656429105574951076490832401688452828875819754527056234376539109713776800503385293912000708968978926068807693724922341369847024319474986705626746246800969459777095905130916083147924278364647168987570552896071965150686518627738641237969943318639623893519877723709113697582345055424770950722620314250647489044485732917090573098151683668150605518408803108448009229594996458361935215674392890054074159078202899653895953321915071418247956858221800186760044437716805238874500224886150676989587321615100854089565183352160331273438340581753221467258446590692985472764205899164206166354460840438835589421467622894912189014768681149156491122095489195535470548970045050702824515308185221331624076475959279085305967057220080122509133769413096289520118576028662417729221253121429149429034935946974814456906580048951271245811907855247302244007387691559414222040264163527964339717212335658276363413669453789495619230013366095079092976553785242456857449004367574176570290077382606265068712025764946003767183540537840870289636654313675075181669465968167603872559467883728780896537663349251907959999423113448646466134079751809945765787179707069710075810430832848530100178779527637338466041885604908910328245444626892155091421639629537649825746404964795463927830901152101756554293775233761442278186767259317324850994745532448000968222104695979819508688607912709715789281021557737533624633476604988456128002600313226249178285032220421452048409145608944698562705371706551361724428656435461294446518004976468988112593425517999280903906091191310559566918224863837271811010403894730788625803443830914463108381187537757051930192040568249638942137139460311055873543761478165366176345801721435891241889529785100076338694755995204481286283863053618368324580227211408223398596681177966196848715259035080754509448413390278840330910807069520218400324611822560999355569948224459337133266012046988794729215268390961110444101608886279133154123827152070384734467039082065896365729895781714922981661618831982834684810480598081907365028604883889302461488031083368297840280628986767466207308590545720603671943247101438270435890155318362054589681113044795475766245151626164091073861010203317760883928643047248982220731303952052838283815934772826455561357590625053698321809410226591904878899245447467954295930505900743113412934023981743391640787140518915636266887782767546591749887344012978215927878988350802628885776279458873073816498804744452137888033283078321331555591356328647213277768644697204250763800147945034606419776815308424446855378821335847430868174710755907593742851585306283093147026496323329837330146962283245205656101536011612032991071292636789820574333417035696987882023407137544587299642380776613611011307024408946324904753265278738160401865267817905137562510208638008933903877605585982729241396703225805006814987404169261558355404913963297335184001712047462589347244096705002367044257744897118409683307886971601041049779391822847394858023394025329800423680334305648560228874688227483853044041613576532594218097396051815432986301225282396783219476913724137610122795517416847328339728337914909535627805537154470916409225127905053931690981315569557759543165226107073711973943290768326617783395415005654140831355490999482542627189874870500081838276312554538995276873416149810191437654723997700831062342313453440431799880720416422840163192842718690412486269112041020666642746216817039013306486951524061103717734006952814575209027703048741015912741349111085360758005835850190161786914833774885673127545422720968012765929055575301276228656222022948166045054386683294893223315965469494546126818533025849456765596796627194719018141288527607816549809104127046555782289809595249785043739287151408568529386625064980891144543693114323426507418752038046495140226218065587753910865314646219938440206370942162041439467217173713821950757741533002416125500629412990777465760375590050651475129611116127840452417813452913756676955269900595426989094987450836308255428220647371774611741077334126800519031491072064284687518331221551894712915320400093191645423704994777862607705613402574694381112668943443084969363142994854759660331163868775592710826559487983419239918676634697837673027795128995757059869681592423153394390738435084330041317611384303214715073782795417788129886617399605631444459383104602818206974757918423862999538701121234340915825554922769254386163883886677402667800025749474732372208353136197029399106178153739520559573404891686275545077107037585523225517469714966577281465100429724604235492173161917065879958134165091649424667803179233257502653936899105771278022896788155557131617482867254016641324377871754682144733884202259248709096013985413276697332201909688330266650607369632306203392472368983736131586066088909473407529335884461232565723972883757295680071222815859545711209413335704516716881755934490953728058057803059720000564394464513608200073612806971104338016752742613836073168478896816179589876849472363318261490328885877382331613999605233039120002467596643356299892445582877169824729864661888572321778484014108267564888333843800424925560835586405097755743207946908664964790203500002027595094101210530327037179263812014013424929653217682367089169258056947303124648030546606788957130923214718586193788566818875155585879578384758329047372222714422753570519592724570629424382812414934243256220306474735763280256284380302223987995662546692220454294653502626385866371690590420769394314657027610601853915120580651425712377003900751595056006192638360772919847379419495386210453296923647242775080360640105581530849843903554327329121722843396753216350295423405306398992130815481606809290413041287079175299080317089211061803777546081240356400613218082946953663619863020159998715190548213453348185565506194177676660481755818881291048913931238596457495203610297912506173588706024792928021243176785026920499123213242817040176850263528872928310121435346105219374336812836399936432476756248320953729719784955952625331095224393367563281207922109502350459692591699453471408529440844651446275865684706532086008344287189956289391772116150468685206720122730518213874931856664793967298005329701051668121287429160641853172062302432626792708274898486049112315900194236621119066912614647676274122452803402744083484002766056681403837463644937986072069992973407458326247801063658364816606504771143561766364278183972957411354220562777524727186433149507687253813646623791428708504981644761476572919460703280409815378904974888428448189539001057620651187994625255770123636410085740301624252799421839128388481443721276235210823361129858806928328038181543998262172828890111047212181791872341009613918157194300524118223135296141379929600422922095826301353383641971433745611758867173139709100883266814935704380552413899564170881628417111072250848169236425691829000901810237089614009506954507050697956426495818026070634083419988904109271481655902377392381614894073191635734934639547306727105873199250902574065824338728746960478525969140519911153056925220847628384253078891689013930803741045387365998352807706469402882634476230493782618211310956316768087829920316079381580544311076021134339908602680356496272536541208720427517950484932501783149887347310529075190897309735805970236191537222268790473155228393040644224282396975598824828371604697071172730369219981033572296954081547195041955241813139718917902567610041258658606016993844194335553951005542320689468886341874699733155301353766980774141779583245890213268179764386004755057026383137614615646457456216195607319662662426699990348982912470009718029379506839196533321311876485838521591543273805660921465445896285649603508729291984701752861167457671736286935401759581298929684533556478865591807778940993094167303602918471970039750460265441120868929828650565714952286642138381615062544156442927969655111027406742857332862680898606570986206150793335414209342559893403531351124129140121525582637699087373544932030462051594022798919294258766132582366098961745836675254968654972785601450906410358152276248372803314513110415158200686839820087751143464244576679335522158918912816489920652484535484181520602474890352278150325729942194156008305248303798018521696996180803159525733092336930118192587578456449735121260820274600503020949166395715253371393891799355488477318638516017647194050603262978128815646476820230468346850497477158154621418079204489026211012561054028901610364687632701728944002877837107122557545617300087856295189540515788389685599171358673468102212306507978746641221164677963495465086310295362363275131550155820718789259749237747469868610085776548242385422018879685692821276647802617855399562817498150294442534813639913860897653216787894957189573201080302433437303535274031713359132861772238299790506695908070800251913902623919948935280858895575238950477137557030292520385822624955438144289257443693825196193273266155196665322117353417663744372263693925541520484251475986219345197883785030189606191773118236318254515506641184443014171601626596697066929823796824543682176458485704109940759314888680654665623298347223580218381901101525604798582635927831562927555757692366364052115866056439396312961140381733224801226333060579966711995170375498954183979207200532956571301669761725863749274143086193150024370362440728484844479142043682116242501072390464357580389062544522913242018720869334794812169909475803157656340932775375466912459295951398488388141950030249856469888638683615186325791733713687479834481118498515562840145819246246059052078690670704656578291809948802730488127602309238256936799437693891024627202482291242294032671910229394958057698979365835761192786566234715402331895907961070034923305105637244677810997005471564067593882360210740696959649836324150756639678732069079113154383192058926584221311290154562969404915795314483356531479695179714544964827930519319402707095574298931779624622011893416162202572852533275163161864487950412129733804081100860115981651003829626159229236006079995652779945411820346534417366457788382503987127735974987986892634986529688933627551518117121535359347477349842793798896386456801450939704804611420375664795312414537690272867796769080337829907929645235141225839166052375290880474578874634522736955821438655826819446413203943534621901573086319685788657920218897807885912160967448093090375178596957438998588026553182980895172103050065414347029014422482033351019203629992664905797293945720494219008900074838526007617234648877431517064527827634314873227030418413867042108814912214922367309701436132593662864461527393046874064354936585128527366195751791818222319923732137728494131308315841522189239405015473464738774694439376722242569240199693687515589394991267640940395349335359745615954600155485637405230728849022549901066051848747461393955421995937853041846813349763842335250447929039312712317562968889134772252695154970095203186748194185464923540917618121857477890626178299893728231935873209979872591805728706763540092401315709453201781257735199097839574163340649327144219748540893719518828871123866718819760945976118145233772252331397716913051741571292829944551806686301292168878444186162039812569274781139454638915093216351497388874844980958112030391963315143985903661255598224285035363010871897828032832602561795508837235325752158343176081488911837241477546474767141303004267116290351209542415589668486028476935429666074053888886042934834487500522536081584825870248925739034370315209865628705977350318140482636114256305147253975658423164245964042721589826743770234788455593984606941258741640167646039188123760814155969284148629292870566985444329208519499504172799804319460892936469118576826633681825292047458404890220465171083607727874676713744312976784622296700542366597124107508914041239405565242121797618954300776727867917587112997451377534574769766190138612351599213657610080272178526037364721081523987437330280994542057584340231493099308232654565052797108544372021645512052951581335038904718272178489729353361046129245733634502623392241112901062448596654089548421035065081375219070324745137660542553051555237856717306663661054690405116579109880091860282198988792960700127176213329181503716524525444833135685326930391120970940902290566153206322527168480051818576340815789551647981776039053962592501821098694009892486445545038375028848870008920216963379153301768373422287066778439384801382875261180594582844467824510197174348797167663618173730828848770759383587332150599208290770472488859625621765708658588046853060752192960468909854342834576183611329832551134656353327996604065277343221308199692822355093932138904953297489624455954370445226901719986951411716684932775865033180956476168284982063176669394670428630859303596951150820355981730698633744260697955852184901305862546890613222220636210148986220131289525079624379403914931545740652036902511828398067375378166298555040709266873916535947581762399031765003950736238245793735597798633033483669240822408101410486694051153851400650606624040088519821707003865238265742825611630605054123559810094692369688978601664065047905903601480873175632868729243007887714078791853130402272811400930337375269826193587188706247712985465602937885738800440611571086237732448955223189845326537096989403402698414422844277107982699153435716152893981707139900988089140583380109107289966603952863805331520383416227950800172377738371680816114094803019343208358895960735532139077441962998512847330798394657273397492649542880099758966781372939954379710529053548132805634764039170889774406192602220560628062403213132847486325759121378080901406318587885551774721304365370143530353809623063168891722506248666055590371291473542901994024298641831295787358873224796875432550398311917109694016269678892435249818202850689679761472593030052624686322039950626130177266054155663860465388617443351592648717765307131209784088223836594467880934225523444850231349885213018135510365117949618647648726829746845556936045330546611395059699581620266499540324602853228123555181502350626682954956756953239254291274769158152797542310587056494710382824906300018447445524203060058011742876899257487917432477705941104073751128529196699321194161358819974359765897720439798992260058803339921980514763386105632286505717224997164989727812115112619953449791864640812295738833414823532100275901035114504127415322258493277994507172046970402918933223869691252105347974694741760621255940083661554150243080491364836420930734732189266174238551818516015558026397633108406304667184430341400717164124494724132705910496016411005645361256593249228883261069169993826336676007959743787913754696510700384201507327865705031327492593203195346291208368658578392825423120991962318713696356583069856602703862237399173995995250590763067105567002379543632247198845341034209171928258504427378507762112947580655031434814682988205647375495111445743647890897690825052814697360195757655413908876352494411275484676968874915164758450165082371829164412298861909871263162770374302196185448771447491833709028107794209368022552752551895484831551834217059997710421312317153639302910234179928093697631207773635422048215744122602105304308887024019610065472539017115651793415575848594906278727528410159742915132322101845543995350068269861940801867703870208558996010544597538956444603299687079114881282561629108253593138492433259063987955253064164948321721323815475329002364033315026395283410923100699127729570179414825911937508872603404319082180549712337851714727498405075452896864752483883529506605688119988803012196569141666119081355793415033108521845704737420110585449811082057075462766188661823766355054881713223022899261607852842896051819798904154955000339204124772163087115019488990377994037133298879440555317465297484043117701129003139023210748741840320272178941458956865746250472450178233603868084196299624429923667985584325822037421292153578631515543199902476050725576131491961625332009945493439328835991299872596854936726822942259738766619200722970310211352623356868815480008538595886189422910726521858447664916286120083932657016701078741049873979320766532858294106936748088867683964478334832486878972234054520633034691623794732630157554380240241865878897002051622386391922925496911276173538508775181368077611362237710510947746774533650264753240460798784808756158230834863989093709623897325334640785789729315642200882430573779617017455764793738783443035983982166876816445456017208795800086091424684457112067150439774984640956893024382400449624655261992204633341360346740389919059607537768933295284075836757070994970596112293094023734684796784890556837271881375651163384867390865386778665375654191743634114807250389896457134698362363697263172246880992485417289825716334604682730737073640259117422046750966529447235894254830630673545525901626197141897501620217316906094065958909060789694082235731786837036618112818317158100796735824104893373599859558016500968087196016543598719102057139298615623133335877050496652345019648587300848807995185904404428271843242454015540246301178981481458880800424016069722286744346907932434371861699840015298140842606115571464356468337825070677861687337764422702524564973689339386963512195083119470627998919594517280367513399428141162018965856690846747647121146248181241066874864818700487138447617544134855892884002268522381766766330089980382837671079989559663734113781468274052959840797488185454040419153693690107905353325457236553622904774310261705756901888035395387579429224987387857332849510340335019845304045828500279727401023717699957499489956341939837394484015764985638544792844957427622591864275546949008957830681523926278891789636207202964253694982505904031792458362811959514310706384105335690166836676151950832458058868568221830154059138145755650221466265447989865971842753402433175802214322788266266279997953152894881351824350782669924159648442193681313629608669331444746834910098626692865337287207865855490104216839005830293718532580061486435139817678611466407658113762713939812529956810232420547221704486200990903297791757059984918619243221994313348295398952224243673847268102550485826059317105854821273155569891370939136259090743081882574358362463426862547175594826369393995610227263256841851593531568570240051493783335747416128462030343164881830804975867615146154860967041060025691201002839911620677294982433924659500542780332678658985936592498659748740375835988164903255721200263592249701408227591952157147874641836859323947548844507937080153645570859356365874185435819114266944221519956616200742356235252338422732148419902789961976186040335091802546022986064544125465435154978297224327789581242809119453145916120981948358567196536415159892870336797383233213549930456905342360266882038168952018920544196341548044277118762390620055859992812950764146304468677575763516177333370316076215885777297140595002450343112611024972316718593923827137221436723076521356683805173778429931428743780129414490258086055206278094252809296173002031526825903188735126430392988587755265239820234586852553496174686519439600041368172750946780089772441061599742672802192569182728835574979112359353525375976782162223756745246472955814585678954321197974447383499476476286679838162827732944448305243345488745608026168126425039549956387067243532556936844858373915466973071150493270531013785929679400418320246777941973646039724904290005608636164442441547426603748332155141139795594964866229605550110266394952356294218953451164807767808926708856158288652684724534963602224876612561621638147603981665874850923131955192788988198953289191018984417027482350392448026854240884907274302147492872165442164511126953595436834037716575641925162098970896749919669685123081110206406400760961132893582838491325704527014092324660256366503080818133806622880870406208051970820975146287955973126837719230793974258816801333939561652941657309040296655695862477215067714538778718954935592944638750949502218977517453100063449531024545302046698972853179955626059962628068028151828700721653714543988904686907883344583623238275093641172446252412834783098712375790442526266145001726901380356617202201071406341416406181995624100213367905669557416903095182503829087978503908425966490747736474073148098331397706223305247594125284595407061220006334297666727250414051152137387388027178022708568111706479398056233488745106904525960717326688650394361489754679626251822986847745023098793009288542692113831724120362566742535347165127349655140194543267407215733099089927007110006348806298035281663007045744202271987548850782995800377714662444942236434558001572482894578581047017915453604116640840726531549496909472902305111465083631904759626509695737976519108950107131995135316497903777327698905861978747022778450297725654796440319016251881700776589369330843971418039019897465869964720831890878218506880010880687285598977413771238051970228302764822400067785337363644922794176346543475093773101476312889457723624861914504395608365050303410862350434143703413987566296018215814418551888392777912532546383197780292638223350019025239019244369695325784653993206482468606645542657238167481749277134474534475307637090253938537321303495018574468865868619178633140352567707699365382953660026952880724835225839717785155363074650380536696824107293449912756268935379815227965517333034067287926481214282401611535273428414635199871957023844018289853226596991296520597448272436738101461145692665043606206081183512538420662009017018805892648923008568290127993100628852549803801906645085534493267394603319457182956620189127204057106327019824659658787514659685587168531068313129573357130420970130828909604906071938583258468016674899596268011569374236739868213325067746059041489895209319847268256775484225802753419491131363599770226858831500690602941899234127204065038334267592864513035834976434615079728590832895686881044228692493155551835641733275836055327559750853185411050692099614587205271534052260174480835767213080782763703521777529647425356274930541422670299690927987063697255442933593000045480860987240933989383943034915702148932890666707410860327815238261980391223024719899104709063947914618665151526377960026403622684707423039637572750852691336584788459166272360342611390207323411333851992107729171449826268980676023177420231391181246309144005402610123209755958517149822421100941473112685196177777094244262213964554637569815577519758766393750792745222518361401961029369369836197260115115046098149842643826104154342535271049450237227765808446712870843423367600872724452285534678904558343697874396681139193963718075285632323145241859731498558968725530033831460077922317518960714596429911761460102197548539199521705394727664469266651017206446786229258821195558411093644528587561447013751011118528115427729781577103986238926339611184712625963244152741799169764690832940875936617531907092568281041643506700914415310292596083752763180612606128476599402576166597253619574988342979152996985542624588200265844921703743606267441171562854213767951919500455324234058652827207145678685157922640633649214092213712487967834217300212444211790694115294142145418780320734024392639513884274569514146976288021449862468899974301026926034544588399579912855492006511850875211122199318160010328746319610041267456920908878528412610231756436643713959751273570511158830394058896805843065327775720805338942709578134277993319898543568591741495449621997675173905191251413221397217425603711614232683227377461218401598687619665607324484305907195313899011270987750274189996428332755826534571931048412948106516553179745430510864103462649441783633674416265596773985397690259846965510137606538552016773022320674596385518439494676167746232610849012641471981454689995510999377146334895569991588392706886253884828587129853363831337377912433385983274985479164821719226755726107704798481746771068532955994529133477877897383251741140546144331071392373523571180770447959556222784240381594203067868351399577227158757853116706851494875578426976897664326895728050048701869546975706544599766980659168301772057310563885139927990443525568524750452566068216850896576147926336630638022006082400602147981632635165007750489589944436964229130937880506897281173848203117104197190270038522423420600004270534930372714222002588190862951945954129947236534435914587019657563979945842025924856137239432818628423061743153092716574130634251851786525456480868713230820808980462902123733528067370689233678529364484427803662265855985617973143795986494675286456408759232247374718758957785146636972130064278625281549294690323500257808055393845158537683170598382117218144836380272038706568758903831542559073170491198920719978900643196379301874490014239103555284868660336024543248874575369005795335833013047420151959231958473292367693931170546005890422146709211641540304352352742967364452324957055857706838812103206549501645954114039840145255472333885866470591657741188698908991434456856326740280960156416258063389381915981760830497437991155131068394387619262227377860749676931842556815965980050188930195450111042528780106970062871208861854249672026812942936805654172061114734593699198243337124780675551481444735983143733291516990394657073233484299736314000307406854759858852561069056411322911782026489989054827424620582163797331038739090551498722343897335852239890345142665856086223459139323469132977438323464513208066033058484344616733704584493692890738529151236125237522900098372610236115100645461718043150215964536259255663974655667297247833760840681811515736101507238719135695144872860847003443625954437252557379376955718347385935602861496273972417347660317968163533151272711608511133319428595542190966663683275676579274155699766877030667370179958353292763704819149113552539454787774545275950196046351225527667054455953716668661660160990359173648000122009283634242571070566451228362269177982280257598890516494258398477879171557224409004542348558215225557083626423198106094862097700924270295970726963577931340414355905169798036434352467095928369994582570772910313009484694601281648193548592736270806638300491795268404681538240382821160630716799982701118139017213892029337414043615642857360556628935274597653876733262882960043374394659494207667829263735803433789330888408573655734141959033573184208952637077593555958381584705753647973857509494066790101595602526516526091018266770375531380980652382967658141497147348275465745526871920807431454053334880489395007043970776745251827461012093242176059845517974117656771115217430310411678221085333618422900283070442456729723964966668303250923841907910342079952614837553457252137541426414079463930320045959126055546357174568342810010981261128268689144770174666994908417235321110055486951655037063074339159537515996867174559517089984782400152154273287412233885507299469178769975609836887545783644814809705652076758159714502183872418319685126072679166178910719009316235384532882174855252035088140775231595264526989302525974352925305767929349017355947048659276567203867647867379759562993967919730509022133309224931347126524674768987146770467887005519459850078488919219009012059682170099094075725174324951128084661625084764097798657298345374776129960025847630674859559885986305211178254562146898817871409872283154108620432232222058007936520398528904045270390191726254788062854877782380676109965229099728318536424658216291980055802617099400055412705163603396726989579483248906773765361573961911048442146900385605065206210333762427101044830246122140707488389802752959309665437362479684075270430999996057276559661162590094724815538458288534682737779046834799030776493475657565244432076576907910401949611299033728057333848255482873299798537814421649773770331995681997086484380818733414005348290526582194059554690738731536953835529623544702864180368166249556573689726916143884829677172835126888762789195319677918930914371732045272810265356485701391781720543001012148043755690970744854239105214339131965418890221492855313568820508459984030271329421682760699113022819668534812177832459971014085287278557443016649358384660042127397264734368496165889355530682591402385431012845465692343149833142666493032821544844298915111707403327249247344533867122202202948844834849290674148151845129231178524576758115539901845607526509315553516783766399725527734334287603347504395851480519771302795276788190314484163350780981000152776010143537816357560225841570533152012536468860696821568373411399776797556689739009637294161820922758835620929766330335562469859920904748001092193401116753772237177175810463109226143023489635578754310872970889940906201673174778110367047416973508634685689498858002047218386267854163997048403351867082917954192661613593122897089259351592423469817047041109509746420243283330742797314213087550883100646489416734186056496131402793106369740443033228755179066103541723601833200871742498117829469934142671594383496596327746898485265400172055287672009609564926139836365083595607701196630122733231401334364791809481843238654903482589162097759607144721014539871105586580760013941042753447340696062500361241274759579739704694223507715943405613957394229712644509622373425970107141832606579012561071177102419600492263821168635966382222848208712917508857851346543930125181187173250524916199342919513248635878376653176833591071555678068113015543885298794464472731610916335228796193487862363964688718360915981404205428903078779603512388774446782172978992505352489409252108902261628269210276231478482520379783270931751276420562723476430534521681113085341935834594769778999033751336183339519936452826395915552713488699464719614543469996363590880298643280916064134393005845651421457394741153783818401594046995780337603639975973205809810177652314155704765865092950092504349952017847662389126151019453764586034036741375434293225343373421447927369166776892196790981557638081990822566138220105892484680643153315196328367970820168956106663012122613431575052476919743188030623130119300702566020924860543515781841670538482867162854975807334467342418063376215706969047799598103324240536674103783521213568744786953799700393305152374897116732495402446625289969683112668812918569936549286319663854711864931301358509635723355472693858295153949387107153990140686867804177455262446371952184622425174726176894064175599373306088318795205923894921929740757936363658955192618917133209482537706290306006279253603784494782076843593085943161962812847825430366434692330773169712639154643168125794502322463216257606770250050554338635398975916430118467669471745113463937774948105580259826877729759616463110728047436378782944325233616996096801668257619884593509650647631320368960723453375199798314229510871241798546309413920299601972874504112626123476670225451828050108295354949756682195081613906442034114064259875065236556605159311309211458518407687668033443894099525853479676725636802311741038185997363902250096911744779979579530136712140435167997268599178240743784241443459996502522310774376390720131915176679828108321084203445398436961693055665046126122861391926414071468891364991418576760348001887267323049284228816394001941683135499667187637594247925427041490072117136934126558293566462104082796998403091072532300809315005212396985678430914439443365096786340204296264183656802735068607494197718000214399857801827884831904667861484743972434435606813782889921200472642805641159700118488354347445478870296191316066619897900220646227163683712449668197189463261746637884361114070065877426644447720059084629977786319219073542355235559548893673509157935056281808049405622624493307866228172172208133305254361389304542918080113222288332683162372778635320564105036875293773112536249729897410942193054877148798010803483313687195267382549682765849078046741684775790717759768622187543272429912193784916273814467107263582188631260993110613282046735722853008097469257126459454285242867594210096645510387173404092037260265812624986538900960876480037186083227512718480569952699718563384030375604428411425654897579258457655172761595861252443451850610691833197099604177649028818968930758186989377128768414511035572687734429025917482228068980000336585204379712645715064786430474836380405565458071397641121535966316033511520741539709120265646894704724530833264211456660843718203588778130611054873421044728844966427453997448144319205633516632798429114274264473037380995800111695863608899682768498920238377668585024586523238669209715178652263581296184733388281771276780914644742722749582984518455903809471199896235846580567401787743031657497955261431357488191435748607145009700853729472379814968059589378035217435395295385832196575692915224492551802478444475782247626263873431947480154665753588410274951281748625758200820718806869989144758899581693061295800795141206691904536052780752834777587336608226996430517149364552997522247650011824651981195193274850947609109432780099529507707110902671412863550843223593265636594842591715647688791670013230880092659507767750583250394766976569723284656010380061319794936763748454909766239726133553235060448817147792099543125765998789347271138077654495150468783084548679136273853832194363599307929194811708853120927368156956922584648566826127359901154610932346850220770203262184488821346662480522860488260680392932536130004826493786686302920730187647829397599746330738252478605800138062639827483627436840442961756249479788641968103071492269718289104351360031602816431509308249655992697169904638721668524258218934103501605981798522080190539446642374963071943683999454599214450335141197242896069541677614064728198507065497438408070130886366737968177099742006159317174743168988729873516323320176831546927536614845145378765173592884815788604970258183042071436669868515066773337337270554045400371916407248306463416336554907465760496746674226332070452712331232488468759421059080167974516475083315354550203674739417885661964429206081112975008301317122041950237542518881184545761023457673135761797730594143218076374917794017270215451819693169628249731408194453292800030237031123032965515174712202181514942706017562619177493895961931144606496341848720545768071278819082334689902201089910852992287239502119344906875397997088239555312324265849475101453807091064195172696396659479922870185953661605449057323059437333825098642891179859685684732882074961152802243139408253090571894827799946853673381750121861396252088877594277952998836054325077303101144475226510810468412393908795778560086968932468047199033478550440078242710214070515835666148923281303697118048005174045580471747220959435411089582413394821653609004374227754610012823691551798202897382716833083693721348003195730325310710668539565754493509623237099275936441024577781164250862234838182540398445917946899839829163372971903248977887158688039708777961358953321105470175579844880688984364208994032343937383119793272822936438790142239314756009790322924470181674954554603964328856195192161136025790428149155518745727525921625276837485973935109714641681766997720163410958760736630669221261932754782148712079903250054518974887780720741268445337812547612905040423019042991093605579837823693149763711901873193224649463297727473746308504891871248844640401112353101921011222128190933171279143113862498593048582584085984550775033189373811665251141858892106172917168554274099543830360785238975578313350302929113363652381003912343048216767527138011646450030354898342753634938028117329369062011323209623529228177633419848999803442679095517856902669971921208740522142015072428824397576721780730901232979701034405879858524734879371322500404708138654503263994717401710185912964846423090252397333154352081532590392848880205146730411007021573731576833934798180040137017880738633704180652521528194902738636510127594835491289226053541166047798853715205066318546242315894422766448952217958802751343266857963032540757291401534363333859515279104535468078011298168470111439264920624467577545875878499600120651005920245666958525507702175663693723681186116925044078268431149680283349984363061149122588490587697242406785265419243346056109194392303724870099673453727125841026325572133515620381797679635544284071483344512746807678771670779889594323882925523359733533080935275380843118182913407290727246071834834410697144113973022778070581832876902090184908047823418742322896812817708587410487656925639260251191299927632640284317604332557893198710230330746712023871952709178148567240486525760402497239284830306438286870094576827211026399277108923693386105466651333814727201328346831269078464432038485217520180896984975510588883945960503697314352359765950911954216868141015186283800341730558251357245328827224203004867898233442626756586058419766076320171246851390049088321704649319160173769391630685507502292840915804201222299317927641090446021154535504248640403987304618064125538034684261455977579475517374028762458941005084510885908220822707976531450418822779924648858344925375051313116456527166880353752269872379682453889267704440682293455012972754132681154803809669556091321873352917387037901008537942433789247068546471474105857156718990816749126734276090623546977758258442551862534065647206155344032837462476955245076969842387007222778895396687986889395150218368720468707308715558420249046320517684691814620923020397849785528458443920895447223817849026558144219341086408165504818817021958253185065114183757900390408962617045392786993519948332161192416306480606252692199442987897143992214426435675762849004060068878070980699815413665660150951204033129653393689067687187946547248129506744127221052126448782480067612218089474502814182486358565929725063912162991983555276751577294697067160422773827022504742339663902944452679769557678283946583612962346333088817361131558837224713183305920781860637954599306129054921841392698317672056304934111511387141972038358779128341503367976656815817327533133722159764614342060478638855752590435310372818631113994605828989351319269047543269196652462265071569915532025500412971502788603902611521353116665852582075871584268443147206880946617362131900406810661396662217195716631927457381722439116836933500167920565061663710668948840489310334146740997086516152815616544251593193322374064185173434427452512808882901056687643623201123192781247149499522878109987637282769616819377889814660474137508500294108569657751718435370604693727873421122462942968573640968403734550903927199231474781381273089267417900742011806729951606173484063203868787118257434971936621051702894092729286508015038701327536178438248485032215860467450419054802853274747963231012805805933968260506537043291152476045098707887660574802466666508535029330809559266530016359892363915376437288110582279267426518061166980785828103829800696144664738869448289048818730095907151186446950768954504947212025535837477476018201532836475729035870125098842312077286678336023654963407755980492217684630652882261860513760388179044105063818059246628852729255320855027402850200924284902495672137842194323618422920335609475555878144268359012792113423499238623400552741374930006668219586055542865283474300678787339051706233250849679496307410336158323515945684206159761260427056375391112358447769627452541451745279861720521663123778171649252225064734305808115307775325482311237389188296127273736554702815036697370665417727113043830415861245435224136812171776699928516993485804063618307118715917916005490617547369367521642231974317193117965042170556202051057587998640213545671835206497342099355080594077781694109664157218545332503493536322413108290928769635127450663629189663434040799627765312482256086999475431726708280974436332850542655563539866113499438143364022081317870949194439098278379524996298117937718454585573763346694702548416188729995255177701899385806371653528213538729562559589629196935152270087113889983329456363519338236433592564130947426206125323779205592378229057123368890741548649539614555505037853113006715579799918807502651641155830450310454192453197528506822176430591371038561587136611115692744401119181582663657029934390605273397286371464400164225243443663171462658075109336521811582600734661140764816955273946792967846396886200954420001668339690139474202492772319253831225132473117548742206212070038208669138835500796704321222665780029571082292024747431461267099341373291187413109022348159906352984909495218680750849177737095745670543405804412161120586130601984409355277491129158451516391908216759881040549793612596071139160621110807634778414955936198812826501400364340070899996932043387442343811617633717820370064156894149568093306402614254304212852582947065700713776835700093444777820300897541346926473373817257667428339079883775877948016667702560664632191193587422898337601559517503265344878129611153528510833329480726875922946514230710933369170588453157940341693763286350968388513093529209241926851170141003902601151857605374204396766190586925281596948609174420583297630635214482541076116798667026907462996813296838427387977265679085628513556068685908342922284638121788821941351737097438083826077044125184802179670409119783657898180322518713653292525538606946838172644534834873999550414495618615523442104684465988201823280049225136216989926479592366021092323984050845871275373769908735755468947132186341288357926466711346295833484888768565596101452713489225555276616426974343191878308319870820747255391705809743203415194642800318617080228905642035663656141271599254287889214421128044752704804629327155001922926078532354198793431598362326876807610023018740657499959534903912669114371805619804664551581563181621386095352027147247522035833865137280979728357908463307484402147369724791711184978497903172756713299780537655853428646662499507306629062230993259240106135713179709586794525543527878538256513278187658734071462115334875904319237604344665240589588732840704746568372616065075434470861639408871719044152322026234015983419480723585424424005168131850814570264494016304950701256433085078071849191132486890553857160331878149608925443229610771374658952215662545603118112979252099404341316356396378906847110943090213682026659264615413363142775236937671294890549038047622362020385080605798095513262864879960270575306937151059288015523042280175771487305688801155497108650985949177544057332202409065950066398296003989292140223955544851671087699409387297892356605318954885762467353359738017149448654066974631516581803865447326489978211469264033419154769284960946944866626789789497301297326462402603673144614842963545750717225299801797023213349314599534511036940452324925516705008695663944556402015883147539044661783653510427602951612870798469768346609493932640967531507196907878778765580657051526745595175198678307705066718389093679151245542427789970515413228432150867964469669718934048109886986014679554802140587911456916017616654435292062531395200188438867078063289958927989440032887575582081333221924797050665125886374058164393904989211731175553989153967155563927652598393984897592408701498956855453116592821854593098175814021938089853805888609487394375401862613459061064594577139562347655614406682220596696565558265881859031657644527262743833779893839190053336421685288764653536717648482641151926947613483215606201773483294087629340131034638871572186400261045544982416072763976401362485139994400593168826424818252846492326653960579516212961659752675176216628666992804439338031570594549881625903969256367969823757408283540299137772603877022267756800932802133443330437544042790746318106545727215444571713177359524535141815036715587424045612665123611518863588648082050729360795896275001761670953859212130932673553132221998748922783031271641847579519115015947281930054051394019463890849350695240041859589133818815123015062495418272305655177968497113923770826096516103304791578499568199681486251806170616178007561269983275823412411670220274276742810970137371900239445533094598437623760721044440749644725130000732059975260342723945345303509492060806533315632194277164194740298834416043304306509838650724252768222676789583855887895933039193877913573456237029839270733903594250988899340124076843784069200940877507024235148271091646615807695591406945292451215553812807906816717473173695635164792059556923126407314168611639538102090730739517228792548695636868128082996131296434971824172285716689762869174101142470920592962236332020364117477571100602280526353150926813535537808629419106775670194578174843397140018517419639682109444186423706741762942327796459171714061483545693924391411785294686052757557290660100777518774898569255420824410302672077311030643066398961458484038883889653742263162517797692746872900405275335739291782183476748270688623430134133303643748596249943435832016424389728778087199782134025221765152642449262632802496268054777864288609764689490494410370822833821195253717128896084566071974021118726710296409842679122195919476809573346665774619640318102849195796802011535333840338230951639526196634899622421458531884431677235280913415308101489949375425642663659677647576552761567177677703362007939360932488244244096428876510640745960982116888968681761518785105316781253287686134855058696189984908307831739466000584464793979724953314029672695770379491640017155787162339182675276363688667586458506429670493790197133264852661545108172705491962274449721664415777216757824169029752739762986564301309600926802930737894604294072654900920227748218962020769616652007244824440249061216135052194094309975625045049450089442539942492191525319787592199395036566846077464906393855251518873713827579226218749855105251802245899022998862231124560226878607738247331776525987736544295730957226440126888376091836389750351859179687188824561110110684364829209551308827265325687079829001394056125997920302733070925535379478530505161245821411599974491479607199381026137918108526651953650259379907191575948772258925125705462457980448815511291578091767282607518194052254140265075693999642425524474689983998578933131681150527992686376951616487817648900289281957695243192188381975613841697944943090241179980667711332096164365931416791742225624276411644525955984057195065229356811101781869616832907590511854874993602154539315020792491016495307141554741157686512730212545850047920269223739022944702425326888084933819263739113708775426566107938658607693003310855718380439584700319717174137705798419355521268695283169467479030620023034009901388849736636245627178985834426834551549369861646784074797699391357905168307715594730179053252115987239666098623091741609353620109012027476161173845989807113373753014269642904690959366941591011139061780548188825469086708105158000491217156829185727021535249170890493157101914326656373933672303789380083411485876494717833430595314484404681800093096933775845662892361849664888329617934532835577896503431384130724340767976681536013134292252349677620687917595883400761738975262621063191054224445191327093917936068666211172708122369171786738072363706091046252754539499631869024664051104021705626687483700199242769654919286856945747873902349663540620947180838290977380684477730907482414711292240926913560532851859967656953408208984052005673914478566890920876328899337311286274221283873884123372931201518912466749346376867230301070078921560681752278745308554922278342117360017715560132397011166695132715301795619423903547750737777428937021240967513808562531670250875954327111724417238082106013891326244595472138445247873254354010063113565965921432639348947796023173757188406516176563574783243860520953612909703467729235664173247189458754328671003328390451952706285883796514230386664319434332505014172062436847439476486535441444674281461585104853048884743843434555412584391183350578405398647170517884459468083699591179386517613550495556040106894611141173022489455282179066699179208380066817458079084749067561103080102297737133507820992042952779102697963601151756443043552759753065884627583508349385835379605509182222194468907016912732156098559649654658349062691734672989976490792292423108083377683235391728900194519851956995152693154692713655581949390786522495016259414865764168138392244673927949663681586918516795510528960184075821186790266688445957030484419093174683056359681908899995627564134304059632264393678381112351336697449249508649991642089252785160499475385971756018874459733685335262712910336406869341555078323694023720371687405134328977544459903959458500021895622086435669144444641018466440134127837818345941233118251716679685032005101956917896131892005990459212511449748180793223631962702680234296073722297685741681917484161294228092347915547136191887331908426486732616122482797110182790416886535520778910419711600013999430339901748474583852414720401994069746916947814865976917239212072587526774432828369352793867959219190967884442520463469167697300623916910995192488926338049527538120481147806001340203927844336532571040967149021302986206967593984672502826108980671428039658430428098203722141812392797558480744555315959381353127188120637299514454930489101097746998370551230328719468769979742980811518099075871169780870483226471626421580594589368120816732760788081003750192416056974942735955315241956598083857844153130770147780877977185762059071236120399640747659346405311212568573085089027458980752298029865902483216627815849438635792648162745051508633278854851656057435328788401607441043104547070700992865244129425284398136354680326699612087949182425709422483922375811000360135414457017120696122868206495577331577591819577483014488345570311310502834476689167156371850799913097890898120979011821803281382983068351268682685293029568725873763449785631574896290064930895842133579160228328247421885181720954552617289881489205094361432188500903026164157192635862125433918729095485299350134156988461820435813340964626036149163684184484153957554766474128758045223010656660503705766664961735446938772872437914510356800815468542080921569882867238810761519215863040566883752374572341140692649934224948914937958410020866742834743417840366904961192610962652952429107970093436610177220819947466658671511284480396463390432561295361900792233122590859148712059641698592530666269952158733467314488026249901306089634163835136012729586128432329446818577071208072766293401304864531490947074073403373504363528808435593721187316192769770462038375080910970130237411582813573934961987534116254774627005824792150255393616685467772275710432759175407241887980005107181258026544649468335952926239012944175869494370952572556802596203200422212593112970626360616739303369953798250761478109541350475062927808292783704736817793054195805156684170979817430492298615208692926111103066487739596633278469285732335411492800682652940432871885738675571948381719731183567689657627976546543537022842256517426505631094096003706398520418273337078747198274804354747642336698495896838181922881995227452092246079391707967373037259682544219292368577093327216610381212614280285697481459919754510864620701026160793940627081242991057387400368808846153020452499851036206320452645514037094624033137167652284339557862822762553283959793887780825419630957250102687937322109774609171807254043866904412229068489710420246908005183882104858281446648142240328997223329144356617905820901457353927691380169387612995630190928148424108089412110747978344401459178013556663369694507392933370850763391369576527556031256043724484400636962217969328219071590204028402946169084596698503047043787950323351097676779693595246315434508855769677151173503870921463310564996998025668495600589014678833665238247194871058114234406575349221326822756884729528497978869417478523082461140400029277704695903682180685648429580323150546527354890388549954117663928089310453020598356706148635623576314320721032852663721685009537598823209237121123497259993717651072647307166374104422819325023069415829350360315394777230881781650081716471912848567157312985326402954395522580136810461720936213609245283950112578810098369666330155238367009039774404759406907248013188043786683198474098275586725268737963673014047755133975180114420321407429923854411680288607253807297588860218306841205072579518861504784433258708342762449850598437623927895643922403184072636674052050283917546054722707831458374307239632800298645466930027289023792051010940576987314948406388759845622339808079288093900836757173427880192109674019807546175188205675631328959212913775014531462724573646764373329476586997787557745681593778144979169371132494619634219819982781623866967995854618153343318131623483419193849791947343488481194886064507044540498663741054781138931204434216333657645168077030905466296468428212442199894188645058824959706931023835529576291593770456738862050912320408138460037661211030862768551117134873187709578853513518772394472803954108376986239737001584106870653700795812217613828892754016263431752230381651860629569815970176288977559848735176222216997991212521496420594589988489956709803167771782673520334705294339085333160854748212702671389724969475476858769514732115610124921679830601416128541214554938449370267212886415947319953298620395924430822576867640497400528771898894060972057940828582545503566142476602544286086902765010242215064484582598056986449791016001316310729817516693905967015857756320105610023747854579771397961084155753412632661870418832344160172198163325805031297031718076325267157968426114683658135642638809026229492168383161664247518329723868862975109155886895518774343195637497889787406892191892965690568798516447429055102711724485901800670505718815714709826117524697269940105207874892663622685116069991578427514411417453221298571124507429156857314646061016043827199804525601186263570589107899874548307706524892219163707890043575468060690464764002253235278049427572646694889524820717563712939120550516801140413943626881934414202984557107517313078124435383665354079117219957742753954235729551276114956472849209391754642501887206173730052723774325060628576196177681718338104490829509436994333929489838046275750392670336596850478645647840160199422630777813895821556937833948782747052300339255187948434183865481551876727665646744042134814843831936953814454239689689013729186704461032476865348259233260309617596517909801626300519257912727426717762181287380569000639419392944400863547117660281737318602159866366134846973112428013868316623889480150618598507046284116673740459980899215753678848329771870184672498346780664981995701853288764961171815718225223187748355173424923701899224795641023965468865372767250946186539048062030995030918378107158848243379721011780178254423621577118067619633606579326324984657543027688628896008773177654774004767729301803600126303765032242673442021228096395290980450956758461502238779463916376905576670467059907071750488058620581481078730901858203994717950474139950651588150898758457658370633022334806457680061638047376035876543055043250570500548295711427710931312701117871942350107341681480011880835994096055319185491622002066337934467327923027283650548859473603829377237396086573325864405819696402860049450237135044594004407006336309193693127540223733847813346068766779483977873663155945428229596079862747903188107431618248289043415260003539877428109099017847794122713802041455390752905874162132868885394477618388568431185851639722455924202010257194204941979305102717440744037494098552962589829904224300153195531094043359635990696220729346623824146564874601900689099213730079021612748091940632811142950468565385862433310687435299344421277734592292023239473783162165288004689544979184892555317926170907828313730775042662178290996053769404579114635669690044295778009721204494927433792117404188086554253596200930466562430627484699672782052683580174442925487823310972587435398487583952864510128273146318621505254510972286149742727478759761297480332031174036257690211367992758915138555061695561913488165523002227285805300097681873145425041635321822305235498433088055879805976827991399856999817711923270105544920844422662912015135542953225126379681956257701357639949174454765095032650943728047891752082056148920341075717888831561357343417125481408602176083968937184232149710943438904057358163887097405012164984404874828830379152269505076132779107341425863172051950827267225303134587195013353766991666353153099321240888866604726017066559383292774627545576595075132725575730609299049360855452233396374884230899256788788337917571602798906703314456299299704969032414680662376502723582219060015815535427790762971163225540812485342619663183620662402017786910153002622655098756849493650986566578511905633499410509887582916997987704720543611640349283586463254257851528061982782811740946824611252811505467271279383823372524453986403019212121704900587869156385954989570535734308922342356690546677018018162156930314268353453606109614661199179101575366969014111399736091091863559364138718191528435165354198401997032654973280769380784759821997806241936513834940509523305277531361560627572928456597850104399629884479036693041593603172421109631367455986591325232311341495134683086409678891182448268788737992241237818586547401313496140996697178144620931917148467065238518742961406459611358313663516853740561535865246555922184269593883910259806154035941475422526027747739024502299032903425236340202015002724547460127301590938419564619740218824841245729851464781339228914268657049215100656712217649208113941967402110549790687042878044015729168687439431563634269396312493755450630580236234467091654109949164186985644421624526735907635939946147351090189802479526601692311187674605414569323374227948756438346962008937503136367671553413742454605175033446395824073299368582710443779824025048239721386776909243399998993981058123403099568982378634426260582119450772737320720474873265875613363097873518996250996666021977422613653908887578286661297447592107363311053188942148818488196698576365190942256038395445692949686293307818929706036255581180006328908581640877394971369936393289703516749186473024670109578157258791909354100425460871546253870727035151228920322836074789715340554103917665675390909240593194900448829891038202415334265021871514512714647810082718937227284063822176668031758517056718622133662323532552972895508826299614909351398342602606321068423985718320321004418698060871455575878734154740068625322529773017556571147727723015557825532456371260622542593307744890961927140552892740136173027265972047749568609276144482379231577045770575513375581456152195803640390886156618477234549911743726135867827065705483512522781427269008640863025146251340430681006950038005467935890138629062935967002950850924283553362227985669036056931710153274078001902745812033477277869729588301331288926007284726893839749812653034055196309849439701791170743065425091215629115596803531546956424432526288904465053067717096320114138329849510839191171084666018736528627524345106290393160080991944806007917937596482427095104505883081588618135158748937390536532188252168618065708169236376464018978003194177721333374830578721951091685484594049366622667026387680921077244692104932765050606211574856776994549139451870930308820184007181251180137165832654078672762223901838858379250182413058052979163384715730029460270261904078199582917478876450986668349404548687754349057037476502515484917931881834374441487139305754703914428796692165482708550590079256427222504535294106671581850867790123970005474778683820683513508777666045749775736509783537133519705383731839775572373753640313801787935743749900510518667496902417272992336501429944054764174463201432560923381943024203910693095863883093784952627164013480882107131624824371830723871372450967924375032316302156333682168414045488923396227984716670308285073102812726560814841954628773230436505275731371555400640222537131768392403562346667938654678414408864751852802705685729604761021814964198910981977703737453222453382271097210919609927504781599691252578590267810476042854442166704599649204709855598886268692705283402134103921600019006760899360129205919639377164093787816142117338898848557362762108198480282269937788754950848542120635361486082895551250978643720936384825427811415136864218783916583531144362845642717626323116206716430359456219376772725527743442105530740019120471490564663582530509166029058891946788319488299881690842750035241162657500031241827922785392592251392557218560863044679004202561498293513178114903971827848396315128612783980458921956751637423042396958655804031076443965718947224901823587439702243740903277141155223909579027905013397158222154845779301290508407485055714994182434596893588908652756527686683228501590534032506384174463231169519623242914411149050078626886664677942182403531059131743973725608105076883627709644384047517646287036777674745583071006011258042221537864913553865106707455364175819529733158817410343821810048688642554782853541958886382691108939541937972495349384288402268800731089620902141215787014766411118688194726927570753330836523237303466490275856528139920628954652348174569244258697454392514999409841566203643841728380285463911714450560121061670913237687272269392070339494070479260961000095383690727068813498820730645239339999952618302638135288686192476560203619474737967881287630544009486095508296294278304531902732502885142336796051345526160362096242904994758513961444476618529872779010707091612080489555299659964019633544875065272883845030046357706526739673463569818262824264671984557631671879630868218139462337086235719589190005209769837388395232632519675910817818293892867008547326167563981108689669395522265541155813713596738364998813520576230937749092286817508443960615588312924092124630454306088494866527353830448026463790776782375691781755209799102048363171291197931290740697498080219165880168433934397288444675344402894321774232991823809252685422730704040981941039925545549473544215004048990617696494695566014892451363138279977813282431690486369810982405093564039426512072573024295691338916454830249059838685064956359345409435576506638566817830353783778672724815009715798163697489743630438919911704207097585587943584251375482811824911261918018751834048370571475972485803857539726336282602986213853269605147450581046526846270803263953631190468211171685115276820210263202652712078877721896791584580606187450716065039249983159345704442594966705189312017589220323960440172558223074372117112584265369650978595228463337062072311604048470313160108145776862501029858153884605615118895168204669498071766918781686982115891642935075534557206551688902102208568299788582617820022450805098872008859813203574742884504788382090949700564039529052686392913831102344480591473303195224679703638088834270512768382070867279234934952090967053208346080400992248793286581155377834764467608485450400349107890899254575445416218512649824528257624626244216754791015545227755436374846152432056972758168484274440364988027553978409744946357079134319473218489291757446549196683048014608200736908369419734077274735795124407726861585904215369136778394646256800925097823563873961404219562844409330104772511361512194867327477241190915540814731122856231065742932864148180070934123630770997947245730173201193480804111293218096449453790764321217950253578474400384217579864913509404823586062635007791114771855459380489206233434861239111171811577975908903454180698080855131390345010659863267796731411771763052440790319921547119472449678308021103623631788550270660155806707215459003370633932100663599972470016413219799594291214880125542058125084297811256812459286947780563026696125927712002010329855093037201350937178625658579358943475304605552572310234412867768623379703030891815322395975534800933226072115199567514383800106794877438714166378475833127711841000355089499344482900441473089374527377017288716812777568502401060213971973979243980158455589181158002375569412600036566026666261337502585450303187314605206572526900811893994356274468277161443409817429870171229531465462360674208606225116836029722926638954518997647230657715810556145150760737749561996561403747542510557932191377892555217238725623612992287248255640495321812831982554876071011409041418142063968783899953288002413802746051220784082602077024326374611602326844701844103501178357785256791236035239149502508284072181348773479590345172387795198977183573289278724263330189647655322156905395032151266880944841730241789531779355296474177869689923591839976799603982687856548642151569075589059588091907032985762983467831019085854605538917310667799857190999825487098914889140770534467568627856634356127334680883423470861850547997438092331172809260884865482578687947905157734218661226162703212205604022945880523595564838062968069367183883248816475727591553396107808888234496292733897116436761061799016953466700836193018775434773885035364480697440812251808495520922651026069465779822261813885218401264274661461403890928071605320242239440149376326351072389608932682778434890580044850052799456961562392740122742099300400332945539144369649207316057406630524433989090688212503434565804204601450325169934576578450317261662993433945001111831932439331206006037024625175752478338168592446471888262212485034979468815483943164315551398323522632034180534014539925661386914886763407706036923527913307028967603950432551452125905450037876080765395046738987059522187958053572531319350214728835663427778427380021236841565208582025660317615484693148594956503636497103320658485000270461192734133479824992552115992953309034477347039784886828872717706759901234906743489332800292255296303807554659981981273339243396824014305459041926665474184326525939312192762031357827315109172760062055533099187051982750073927191051124548830710666159328686439846537913129210669903723143237714181930680515633941296461255586493058502997951449691951000268931307159132271562977884290872589050135809092340568689019968578673452475931271131056231558165104036480739065685917610874015040463045308272557333353404788662460872379564786376355836675148313889462319861219349196697044137259036981948809550892626928397373500691233212416730889688619640264644254824965758079551081176495657716565071600304993080496804550421097113837124338158156234030746056954594279067985262252281580158446202005305544358665519474871293643283705596324045708951475049997937657985147352340550158673887024271968890327761184695698074553024356119932363913770569453728834003830697282148293610605703180955413512472842803205742879583511252256835232320486011614539648861610449220782722570967494720393540457687526033215419796985797417962910432765236880272119424727149033617542229050047394349063257143512839560580375779998214084276960637432274827108588211697733680849987253737164149925959536172384207646799973068273197323114000023281475839382147406580827983298735226389689642958526385053192763146001604694531689436535661505144804612098417788367952650484370110393958683712161540335791740727133925770474340797209731626406623039484621524637078887768991717570904385794142213105209168677369794355182198378466737540167858473118659610795544920193222971319590744056692571329182305674596082308955932028271965708760233170110476084524872010226817007567506003607879282559859104970434066486782439252673550038118749925114299047369961090822841432789779385201127293337446360526601651656425763537561329139264293636450773903850089372576576963010698994274047694678625505572912176277366024093432310422107982467728780112299145490696378193252634185463420272419196580490295325532513156836709991658668841254294647107175490447699485021023387191483095739498551167723520783847405430785484618681577295478763918606617398273029220965999739828666326632893014847790014176648913326631906889966195843255731176779688631666840966919197106289257508139514934635853029724260902394694980971895332342691324113431057767243972491640615393680859292420879228563487404534917373306768105692115144482903164920010561672226886559043086500374877524566437577837248181508575716371003993942533531629289985202844029870271092495730998443350727341358588061445104687363549037780392434656186648952949698290747476295859065693913670173905119640003479988073465525188023833019589136857713972878794655984256489204708916812569037049799496784597233071086609023463974975235501886489270063185543718894173042464351963364233254169192172345627852757846097394205302336390891806241722959684180253510367703394471738118016228622674929071216772353183055044465218734028805765495105329522794409450822910370632308162153453760526473645811348439870682779630168924388900180064145556486652516525304537819080904440904047089696675996477007929859955789267077353474298568853699522405098468207430973848118167964318571028183990847609035919754913555733372872139272319431713893233253707495028704921569801463114853089899801504692270513060159231138047980027721561658820613135181859467503637581038641001601261819497488437664104356465564949707579617979241013555594037004506109375251211584358242659160674861270889050405880678601416952526421343064686020268978272276805047393107715791284057340497105070332871597526261923286072173578394780998654384618827557066728707279581907203300160172325591067375019941002971224609692933761578431919410578992518597169016884853026930517696021932446124762788904855605640276625308048331816757485846785701272349422618512231782198799844027416092156988861194410353991378578346834389145202109093843126323117907985976670114249845462407850518637477690584086926113016442377000943865685484018610095664154452113860913893783281700568513624329478414836789703863479648294482491547993366355056183757673196951263786569740748247288493183842880320293437251446644450158304773141756917894176529056859338376256847300601220198645285786798617277772733936184282657814881940937327236940462954697863868847525617556794009926207681683622956073690030596490648256937631749639828510729841786256327173719337892512574484016146655838301781417936086633471532559857167320115956579883301076534799554804321794566406025162070072289523026161067970698610563381178138333194588015237649363499230702976448847050054991825366010144263660765262103791997908376977606966148329797954893878460356170560567537490437216656307081895506355398996302029120871021273243675338752090329329140594691690747473071650474924609674466361337002527803120235625275465115056867348231437668904238451204810387229634325363682226589825382954695339622155598723936727721732725677527830219445941743354525847383310324403709801513010279956653911502774417815741696323370268833216808382884265074394593847166301135718428366968743724306220745607898933128979816339002487560911694377423803393450648595204854460312675744798026792622929207536723342238372946706077350041244702063357807996446406570888422652913209475276611406379530947787288272738163686812624806416349325314833629482618610942619182480087066146590912425439135620999647494776199929444945106928419334882139917465654069455839222248458919262466911866930714061616068792524190707314753678018052116465538661235962809091672403054193729243407312578310534844858536132014948009250794061653244182736279789716988664332462698341906918731617801067242003068813374849950995819245332848821545144913566416858045601291375942985913185232294250218688394162798974148604315380138556267634172836681114564677616665391052463825392739832171031063365192341210875804233964423936603326146220482681431323125385180426909389134238575861692248821139398613375934962336723817377574178283558651691466202647029773343749911661615354028874286333138352798812105818652603863888744623971591195378321916637797990661652720836752498559522563808088964728857268471505269852207845239671769498666938865827983822355161126726501872557665521960128460785010691218456605915242165689843950035946550258495335303167757519837209653676187895405181002318527294698430608686298962797835434886018856191332921315563863703861200701925207341880978862676023061134549744301493514787469506516054876608848011435836043594397928558670823264866856430599566268197576712897526343743117446321336518454935282335347021771014694188782343352713312206518844460481401815803278157939391901586391475657007092148198589659218319396540564815698136371856924066949463938023350840484338769983401460883204651352661924579534212296478701256250328803399201233505951540815225602871574710658069733980367195871030539017258920268294081697768449514507146853392322259578458124311401560442833835633884879692686224142492678355856544691677260061236002025135010491986704755432688871661355671300358839748154144591800526990712513413825111096060643969223030096589769441944860606141100954475481531512107357953300544467089058621466506033336030832858553471537857692209765764954588290871934298844157713661343147030232075858994549451364350038747264300624190374017183454972660135371494325256896768273606368736672011924896227289445915551854155539188001230427777354982386522594772880174051658441577858915150964187381267587086796183001577091773069632269669848364567299433320975828918109888416475425601978305646590087112362614966794768465133575814048094329551595257938134931289528571304606350765128557855182532844628658929840844342795560415544426865031480601331402852534635453273811632013406763131661510485482386047490728391883542163238263675542713490621612455915344444946309865098808499725084044089846190507406816500811881978115595352664154574884322149869228767398909926278836931546559733785962606844803691157940858983663600725945819217023375200406915756438773956370630523219655614966517893112781469964223847914709436553388449855574003868094591658630350968362370307392121711311717991242428996471456014959057370187299960477981709382791326958445631131777789984260879498648905478448592255024153401162678055697406726800275285540915077987584315048543868029486943151726993134335355458020236636468232884958889871466455282681628851052929565747834994688670063901708841842284174764621557197590955017682145696544827136733233111352192369668430184676322911178524624539322705244277200772569606562739227876414898429240469421730871960154869624936394645431376732313236016137412825786155036409772503058885523966969606326239195645182822431247755952811368099731948587706848657758838003970966773585547689521814783464387216170677548744977105006025895014807520831285017270578631147690441166031817001525977117741298497912970633233040694660648969509255959668486389271167636866244957915157828403177309430221497512066637233000303810252221344598538239314164287990498560391891973260836456353849172322372378317905251177041552805341344254905224712029943107674382584238390045657016845340466591347101211235116050199013918598308731135383071155700731337451816620548380681248945160499864217474308710754706869919961900852282554332285609671104783159003419999654766024549316027470341049104992193598271752173080464323892844122626734478745878750807774703112970096503273692365634812246491267772912805527283279735746655969896945807891221556856362972782340524232362657410291703683916527611811453524272374653273670338938962500276866730694923977619727752934149767249325406955256302177082569781358492481283629003930407365980741482824735565181351354500677297374163306213408229817269243994928089982648778859918687631293422384909446627636023464376492164517209111902474104281432079968552764055851500261194663257968852969466550649386831889253326706220459522566267368809717617173262157697832564632494083312562068101385957396064401772074261267192398456273523296791290276682669763666847820025455176733613155918067026615926842637184934599803851307306996759862189635166105747965968665678727463119845935953920618929594168112485866456412323928030827246154580215848362460794629440469624290835535958030402825812064946073774300211418053889862011009040123585214242411770459402157162381725608594831734569174121389292980432859137385560815439751873297890383003240817247552036060132243779322393353157991006643820648806721499752415810543715238126643581863174520473878596642349959936023072386043574422312477690341609058954503979320275042263966282005711927833950200502298475781249035496483560326158149238083366053952383838916204625906439436689023194715659961777794375110787728561247914526563864119219313024857831070806605228438322047856539912065916281145778596550258396064641214580357377649045420152682910504519831055591074156087992586578273321715897104569380301354397498690397102958305587677932350876982055678940171681707473095752765760469126403449923804021930320864062564379017798840202153249082410405142796778944492020211046728915384154949384237874171241085405124255952368170356968667034704223784427918669582564051228788492429517568333566615125257048093173620237273986349579485753549699876919900226696021254297096476766375463877193401253754926526614016810308982228226991423259812435941293806892465939736938057622335009136675403947026792555023698854388902661645801687589137527480348911007006248479938437877473621049931001699805431951323990617822620494002744905768991563242682912253344370683582371689074628393399225394200719685388643377939854884264206318574991031255207569429232417715084460673279384250469218311051499339474228360018156598535445142840937696835485669421522506715452113920268987792618157951742827274113923905789350108435696483054865479255252045221691363453493135882495754946835521468147395793390742463439645784775924365138917404272440800447837532233160205442643869611441035980931531817131598313715106890429993978273645543018800166906406180974591434351163375633380801016567092521139029021976685946173727160248703575372713123598402733767877906829631862505563826469997510633370991720667106186650951471063210755640947265234270500689595064000005401573818298830042188595035502985949475988140087102270362008614799913928391076617041088066639554661535114475821957463802124493115165909547188561971366476278080873302966620680032413336899898784819562459615922135335147821451307179962360066530636968712437484132660535399668978039519971402389010826334109186519856502689778575423211443678306112784196638427256336145045338246677622939704415157149640222005087033133344708837266910903565447322596364267389938596960876043227521844272236290791629927643680348630169224570993962235541238455939586401413632187824829827894828758571067782662734461310833997203166781534338414079550321938110487631924834102910850692499187686837954473279534433086702581588649609629745369494428357218130948181675646276368580662422164221034684776465561393882371989116562441077284559087234712733791978424502437399984318702402824993948568675298263023705688210697134149662462386155054786550935662652418721663651432429253609314816251358852795961144979138799901668906840436339360333550753587092628217554911156555025574829261850373996298931537774036042162438201650997971696404059548932842136002082961744205837118236870933683520427974315430516598509349222436316036927736468469382933312184510428376685534545095950026526353213455079905472417365049853429908581389882161407746181692839891198535848310635722028899357545588242609780474591692251104792965294190312340682850716326645075983060192625075409486459820107844544658637412432112697714916688086891856795219477171347352199017466320380684423606313424474948524792687496706767770925569363014654254516431329469702678803990241695804176616092707478244177601145036354310291305733968683860896279704467227860008932373989159211816014440992856586379570653932771704634514220639137014442460297209108724216154498793301152817473893319721182455097451823917013141361926005235323000902360728592359691391417100776689524127272840835598506732020020539745627580664834074409303027543275838640675323950918066757280588547460041459923094930686023997924955035446186261534658693740168564252595912497518323754655294363920621358636647214648103567867696570111145871467100619596270014771403600237322905050840616285773710906539393903988852622770624584143008135532414604061355320470063513606022130432424744273404842701537820580648844447806383849297929439594563237591468690755526024776537663885744355449412074277785370739874644669671343147582150581997948627585462135933758626187409791809642053508000917782221458984392528771778514711614709325000653757835356041643941627341445692038985934841692133994785207505555689209031117911522454829077728181306691192201364626954534598014099007458401577499080677603509323847645627798720114450948632620201906877422156557337380030369510918467887962227722976116297169024396314281930061926447742572457935170605967848540856056619912520921938878323970954762097213171060538230710743315787906980382304604711349722546678244815043450510395769289710533283582498088941035666379310998109429980635455978251748357777854609203142788866828677399062734956277626019856605051213229956072119777520443659386955297615299078344351736080352548312232734186747275208864179733109644657880375080535275342033125495353116447988072489535793654230125163123304527603907117376507966324921971177884384029669701996012236829956324030813542389660831617621258144633235105167038138763174565853606246612565494943797952988654994282843283225111391372476210806690218052237604826161908788378984651040783041057751572785467434287325993018305172324371668703393782123478604626914708664652862037879914149006528644341324512882309171737901391974649749059168160616046823052952676083253922658138853515193728134919672472566059987571145208251537357308103856046243855958052616781392854632397078707838464314610903370434672866625515016717401657639399220242776027609636204822957405555902417664499341860659634372472868059498890368079688095765856585934435986079500688283479994028173800483519230840635209328969393502797702376202389538793475891268401530798529263689750922503785826203299931770967307869287511110225798323988493778667818541037606381467084556574914017639243282977713398583010515466130673843844085832881890086136279411960716797907504470462454744375884360245737765732256083952584231256780221257523730371620084701613079473255514238234208281400983045568220027688106448908437318405644802513256144509800938295493749246487275514088411325186953570911597093495439973436929437126497439374487405757267291222040654041284748108498090813224155275297664757028301607033432953835533209520857784381579225121692783377598314367328030382132399324402337040756639648111048246393476559027262142087474811655663634737565716550656163441464663388191186545336678983531428255163589710729508425424108488520379853532894125043504679970597706329627269820207375504728852968846661241241015146144903839588923275677121050202357478142014428744095500901900102326931951177336633456973559247097213628858716780301000292218836747785329305866414031906958897901180041984717788036207420324374210533613444767434857902751120061979665517125040183330783074351836084796985004368384692020392076572135094655420384068802009597094929552115427071934019421878256958858530536396637441493042567012371835334895513948416344407969491210722086858603596477376358388403291132933136694315056058180432171969796355350062917375453841418774367151007813269677898341671707305665383941702631210488826922006973371858657402783486892911878709773394316011469683367771869959614606012229204479936694633530239076345850827219264423340139413741539465884901290951287734117549766535771303634989013436086200089013798455038878563565294054886027526378673291323041619158606241339658182573136720743609096767613970314822177836608413826550832086289830832973152713182557227778529154872817256941418126193093354294385539905630464300127404893839630543010993803477242296059783643211444638824208095584133285517724585702771681591640518233818110427220652506717321992424181542699309250271580146015826071874749407859166151219748283731344735774365076168731068501566298036359485851494468706150016205542229212531616312865989563375472757292417573302569169370930371418686329728190824826246235808619627541243099119271586876328632098022532970225648002291747818563204701586917543048371834652303533936861039813484610841697961655493946764029407902848104915516924674179368674417219174763552027710516606886306170202793874440776596266991444480861229128518519051298773418749973238350381786618118684371037257530844368997328890295298009132029044571820808704793158490587558958831220494790606370709812917150026381700777191741934448749653062679240365669833867592243540126109684855643106763177948326815304282914291460185741271520191697583276466706403240224125135341465903339961921321508919326733710628625077863421288533374884150018622258414265284547145206784445870987310388945572374180772169003706734696191185476240395634889103894537426965896067303921891017522903497778337286279386260314257162451871973487506461898936616551247941238332606240141070078483308510216885935271751885833092050009433517861983631360940746883143547103673715676907213354014565269428614516874797181057967193561333264396662289111885058652744435288795163878586437021968331664279924210857878249887749689646922753383711557618985630074036047642431477058570228787697542294260487042953341038766545226102656766859214434051367424547270755001573538755224407442663352604878096928635187957672296170708601466740362197820335717983942493610622166134578351371773368705837050128973139601138264328318176613388723918761936343006330102171902753950649269220991575985300498023483534452819829189898861510989344442127288924012285132798405296755952337623169545255781550788453242620730453642392858208914901757948097534560067339447333583004010552878851125818367430928364067571898564269649207407633692360418116348816034497893530430131256813989021193894590430852837860727501038524002259458041028228144297989629793791748399998955595140566664180517107822155524940099130353682112555087043531792210015244132560809785779162478952552613888656978800489705718510766075460803322315498457407433928620596558423867592137466255808128605769621205566276188754296473300933247812426385574735081364243825888699081994680010599959670992345037666456654663765312483542068115181016644722439011288873933019671528512591607062460526253047852008522942683592972948412227627316675224042244686052514461253874716150075578204850969488688399603576679449716504873518131892144098106137213257918050526128732098871245566760945007074902124117444888303847248772249973536474172700698834733944484889629621162533797391118974985434785011099498503320163491118601733315378368360906417437672276596598051439260568566075774618005339931849598970270877187297771567442530350691357347192785565307486997776779458961261729338816440728385320495115983329568622123535481684213521257511541798032216665892490319423935215941858132160472069515459321958072780808462854972980540671148539693713332438082298552728905928889463041921066531152896189482988766345642191304044134405976011582440872588178685241296893478035532944845986431905799877156621445230468165389975188617933269199818532994383731259261744726117989492955839628932122914316220019334656717496084774830680342134251446539762964793433029149854694723033065639780790879951061011718174701362779640736154694847741926011583365294387819678218239874402479691209978802033041266451698687091205099098424309151615961639919959957790291594202662754682483351048481196881872321567577237008018586044482761548022532167356949557003267986885743345286909199224753506095915057406721374793467863893980946222892355293992101570895777549054811585008846477277279043157604953647844595779545089973501469005616723682608417644131987053552090814701094590890757421352360165459364242775615562387541291444705656043250773369981430650881484924723764102479583271136421526810377838426069676222505951234235837606442008487844477268931033527019364959591524534441169531980743556671499327931839848049137750616477721802948172234889041991947253039473056406017282933590232157846884879332428929886507339626842542314569345769567018115767444741144353587482909693263029238430028669139059950611832472364816848728793676776111120735415702232234191273334487643822583143552753625345377595836594839836321976852916269153361109751941502474305496404606387527108381849283284369102885752989992736440305159436355397004859171985214850671314589286009146487243202809762328550986228151838800052341252441443173595770485963947691671088604053461908270819109502815215950155922452011989393926589006226228003203886837329603694685436977223160195755883665627303623750046594020827467867763785034850611795701692484944328942792229230920785764620728671604654944872417519175778047038892042288138252703079003078870014412306280726213044443579230815768985938964054740937684498786902085825885233456483198025980917528399304624859268203729099465246699574636400166631503235949334771361498473093120525868520143651945219504198031176814409024799198461685636413416880656519918277849002934971494304311066713346891287003483488207482793360306158660730579399767428018445106714954682480022978025557698747785430768557642786453721431057009676717620117655811039934984566374867021191487444245282617014224373832124974752519154147166360953966771922357930567066989101802075831809728418918217179802254395748296062471531670416691193837785178506647721578161455589304560841510833685744051456996088419912059898159603243678841419189956550985546739223441496621789462658313400260859609384080124870044200575913893050269855388081597844953857763704678308660426910050004338655407868584701219746626384315298535166869553053472369253136052684117843744096919591844190650482893566832370288526405170957157591707347122360552150745991693307599130837888354675198121188392209552486605918933174853900147902614133427564716765029297974800002794484255578282885556489907226720572601170026864748950339399491612273474071862518483679462217354217364674294399367883919363823127191385414260322217493147862273160003827713766069469159722191896620907525635907473475073577308711266065053145560586068405924818304619279546687187352875283556094585430446210079205568760523396182302370132817819092322302484792538617412505890090235974326168905644810318873170181235429557074736566047120714515705622228461290076390446687793392360737765621249690947880436861749590653163076943455188807700996840989827598692991257993192275135957536698816887558100187215548914949890973252604111056249761060517646933368537357469571929156665456505729278082029806749690902218330099517115190233053298828039753245524946828105540041840194308324918749767153294737914763319655854733857886635109982413947492329664156200890340498014981698446706387449866650766333702703561893732016008769681606620230735894929776979991747179390709432972419226559233897067488223486928713260185754911124458713888283188739681692053298382571629569290706000728706550159704165073752073593010866615309833975633353209672805317570340571561544329376685963194831809272124045086126877253551761694299889877325381614134681839006156065037560726731006138420816444585290019368195870550911531408734789556525281625458441314159184121726837098563130317523300533147400470695713591720929272818808872343886060638376225127433674764201171286658892679632120441481697951919425587543157443362337202719064589007491574975826717196033457835523920306370887454754080263110263772500254493026766330921254727134333952017984696264406477885257302363641744549338976410172601691751071921983155042509354039498064752214324402104460822624740436502074333484628485038900031046052397167198976667511942870799388150885848721653112521495877636068802006094372967026384525348422819685376854758780863734971279155377350416686661789443884437369371955862936728887229219949437903447342411309423269046235296786637392882740572517859048506801319332170223394596116678218308019621190034700732683660466119709141809001824617177410001519981828386696376005723161072763306367383970055327622933966536719602892484803245686494585807784916717310453155876123951775024113826234964827150643499731906935002056813948978124315220089384480920003006214923635859090005128575824292235142283341236025490528437270749400405628487496803491813978838317975853060988959014258819587981374820272171198343283123321827735385698379028921562547484112046785348130057647905155454239583528331994962027117704740929463824480712148005398128960884752117019108900691460176072514940210856780536221897251701578126422134095899245202727629303939440440555796675914121049220655756570423108437339749472278682758351205589654089376520371092121746823659505583809156495178794681831754274671475636152047178637796217705447709135382362350798474184654657815814526929373664341597106662952679039492877817047296610990719209849167515193462956106346121027845541759265807521998918423132691735072126875835197050740773345322985087375265152876736331059251346428813918571302081887351805373543129683306882252995990603077861188603868903353111281273973599642397708197226226492492922345137315478359292585912973313999101583288043210827486261237016772558224229436301186468318693483821140138962236108178104708227645354919282764518296932914271453090720898560447648581192407042228782878115014634110521032758783852729320109188201134604818107739978957594895223842803945092788976549960055021220192185503535432098285379145147820962297605650915238651661906575007131644593307299594706691851851765092600553052663557466816150164638197772991471573077939031712315071614881573550664384319122216916317156476057284795065748864651368631124125677503286533479877532258296500432897175550687925127444275078699157591161488942051054915191586057157994316955510693253639410972224346160413675190799837650501036443779882486194150199126401486351477773004297304092893637483646172002657320778310558369881864167398661791160826427211380084209802692690746844406332822377418638763218780701819731927873533214842387904372202370209892319540275390555284102559699906925268758644096100309246289028195438771097300333314696648625334258316352258124929035193965471133049637340230491229492726979558108083827384470247804121364057382639468458064662680289911607444760296929357035406128259996938529984905520272498334009688318914753262187361138997695960836481231842625963894026842975015987697196236617648060362817927262547435826444220846365931579422718850905485528527127479463721724155835086212865350491371800066290082705838016533280810705628804573537968122036938833462958282088100356926035995078578284738243791448573692852426903917245468921528748901425158209225282880495853982345162310745414690407594502669657313908994815883942566694861843911425595305084749662100347484464105578355382807117230145156485896615294845221196864711529847018825938304933522461494309361912742682594776261685801672817306957541282665777217259556743265313263451680067743473410095715544998214253022336493107066251549971712759767613332523127218287102656162277857225080417264532282461969621199881422999404258968714433672364922189098062791968808035076469015714840648536076899537032441285439713187102163096084215730406481074424556358311958105387978455266119451739637501377604256500043333181272756801522725582682299592350377344389543624180351088021323439954460264522259579591636202075224462033504924230079752703028735488770167141407003532718958322056072053692026308916959319528784501190557117866093703947252379233904769815463099808356930119125979515748760025517771437016400203663910101683317390867025513225138208646773831490862509675606161194689855231757294402215692304221844089299581744326578815691759138922877682130164076786569470107118469072596468052406288780218516140029562922546870682081387379712081371831167677461409871465934841050459579307503800439069886743591312229162821822080511818555734616021289128755541132395866803278398911564847364585285767553118120020998947116141357337096031825301189205925209705911703321531527391868477172461148924263266381862356174329908527563445163915209637991257671052785283827515958758941605504975761734401200856998345999900971469042951963028439807235589175339473364117498460359438653879042186338029353885187738052013671689083916055225647783403585710974335714552687273742270577102610577958870306039661987671696042787335455367687667283473964947775455610653657483194665441744996233238725805611777772702879035953491328497718403011304177232379645028142116269609423768466991898361767929067212957216831404337074933921670643791739260072845262003097964876190430297704401089125439916868649742604573309733941306673156139661281588156669154744685011198537789623259215173888355519174287609857908686263045338789156481525736804897989849098327332513052366764170115941668923297336442070133693936857014545722783070474725050422953394437370132544459807667306909666556155772783238611220589685824987837734263180701345808779058671200964457265010487661548913122266227811313792667941121085206645598761839362181413374576444929919455580055429217580228100271210517138012236005416880933617838887546076686403986858325657542229102344138374781997182959172581902748683211635215133665869068692886009341451662611905635135759409812910266667313656365016386468043017833610387523537525842180180962141337458543397199070756388832611710805496902138112112446869028642712362362998942481867408107567599460313536149212085278842958646633092890109382811887120417048725371896121906792734852789995974687397389127480497634724366993811517634871578584642083113072887110677422409296879680401301422066951810560559275163529996271963008782664366836001575418983788326050971408522566719335824936092954646712450311103461450134599047688298307358270523917026695588904627133074152532385011207949747788630070800222238654267250964700004915906409154101640293577769829434801449621508035501528886679511763488717669200770323756160830748840803499588573695892864216767168582027564600347715161359419035560471899297980947523084931998318292076983428389106157627544569918326428613485089595831962734021607939616122725986511219995672663354541848636745050250152200084043026855110953466993450886368038221685964611374443085085884666866215139628052463821509134020706585547131525616223324275128846410347482758232023472882690667834553753784866363779741723539743277904085848929180265009326361849495454512490388374187976719151016516687123384118730133188599934493903465688526525446305753633164955015839914380188838729511516056447393964121732852265056890398587088482866703722717973331049521068802843014071580775019100622466724273422793592125087705474988552031329141397295182561374078523484682083636390180997580803853705848791954752801388410105162109031460977747865470299497562218935112519176370451352359349122580305350197532183590586648584590733865007826554684129466945407298599816939559418705562459170878968807631724138316765192350953567281355214267128954859086369295920389669019139394726155969975417386065109852924191233001199435931423373179967690333568300113109187036020629702123076031106779863414046178555738285672985477064454746221429652058926045409245564317627347373270990962729121222452740838433421265140340514179320957501343398350231026290050660303313311726647239384050964698437040434737465828683473702933901129830505266098968303459874304496450275297449985839739372005771956568124484233154365243373124635574502745775811663951118959452952575108457099801461095641491179973011639713425817468052396112121830729468031553729800516227767349445976068454421132243624640562169259438812044383573405615157031500929502569215043760201376335438691768432004384700989547724902278004556310083809715983334109893610727096314283525707522747940692132590452067366673814070787206923571195893798306721855452418484443989340528084973728644080784624160428012259540557299918546391332598149018402466965063827022663926020681481935612763776769508444080827187647616716073430773938987251970011628643299751932350167209906631703702878443007132004864161115277625770503974316583130130977122605027760124480710829334919538789642531570324569066644577888798714737613858009229325406134606714646783910364521084895221181642643398654655876514171437835886086345315255367174790712697870251467716973761948491407977467650442904299994219151044123219431768380893806675723104774786559207332957284270223626625918683925960979453644797284478024679031412963740396379178003299673053056608589744974695084607659666241516926749434754955668457213218478830104942441117124621108504341478308193398029360412284272646035093863254701661353164514190803968616500066896770346203389799356330678294026307180730426287415737241236353206981133167477200553655307113378642508281721817663114829553041722579716647805438742244623619356372734631078597555403858362733878321139339211817343375819646192169419739073943963393849704148955806057421760978176579709988947632761241105572960075345296990156413224838432955437094030959944610736600494827300651991701352070874143026617844854204229643425755553979234930699756864861116179064410291802712457897622029820053538120519884478494071358502079605068995194885186337568438357344114300954861077776420057946940280720018670496463282789877760633164633684213508950234169303616439235653742126105951410466764700812436353547285137611613775657194578022758129050340481794944581002034998749811533646578450413831618491737256318985821696839440357553023133703841150689695841933328572890828491957279211713411466013001254568305877038706178109655799287902783184932274341167602920372576151864794037031839835893871106244239374847349833598051849778308507185737075896137321443075820437772650333726953881143583431430889545031239460367299405724790062326883940107424098328451735987215875370381792170348965070900104990356215064711912730063543493878877189812293181661580834591135744518241029575486539400907667215874810994765002663760355153010257654554665053359764962507117492171540557601230510165051315673016210584876629644570976645944295281925052879782622936468798170645451972427898006976369401880407891127369909784607462543987414829100874161754895305535795752080757349437884083175601615985568491531392816806968386473015384548572647923415538435255730519720289198578878616732585559407617997056830580052908787230089454301545337652822008173752760654408837807597324453514158788571446168939824187715033158599125105152842834557557581766175132813715664029724965537281201004542407084753297998887121989617125625387080394493966007006863974884427407130615528087432182240382464973365491763050746949093102705313125613612303069037907380397615814340897442471773329363572514226737093967146696075633431079701244845393614855564722544251968608366072157387916718999607109686861607267848111029414759992811394015285338749077692680469567394752810609737028427639688549406843517693612907317618386484504860172586354224580712067052136463877496028516362345716171340173578625222256367328829048441689510435080003722115243070592960444750476929961932604267806376512135861229218234085344135075275698068404001282570219178507103338172615067412786348933224546007699979835716944588587170312404388368621593218555833793713803798633758728045092007393595933377754395588388862520944485294763141300172438109668156728940592454990502139560693959911295898276264640360526423487448779070319940821539357902331867880474899836814069604515890347794711649948700167431890658246675712683007085065310949675356474087228445563952385760599709252321888103785732438945607145659106070946653379612621139112257074003503536995421703425861340748102957123251891238487416722362763116639163219549079736976536347589172948356578780490916650900161555085727929858814530912857436560531375041123541314340169970207872016098771877356706423461675165961824019910471931337707548042776298567607895527550855547681522325628412492973530194776252742580036412057419090997804574095712290836645036566968958490161382433080503347669767081608000029249784969111731821326323295376126157375790057524872319020264192364169108934451965612660289390510391804613764921404472807434143515680860966861309670216509149751138807345071679854347982637807195600080733844686727851171471484150550861302368553965093493351254711053333063926947896960910263220796597199124134235736099712762940142935168340290159377838176321323574947624248271833593995204936138362814763945113538870702359733186475153380719852350181838862306524737425865269830266993986720968866531925134199042330842744808187230538461513741383219504290184686664447349489179366071723381895909074889207546153078880403596209579877040450554694588331476156502652414838785438938151458194379358947048465285764279717126862374932422772331771195243132579275319105229515995824880394864738188379617589755474665999358239996394865165340779351242870042894586184282013899675453339501307397758572465836522284660012197618971378755819222089403222572668199091719632636951605251890411588301775452827510827453526649821630871441964623941932197816225773264166315461770077448725482468990890707625189715778555593129491896808071256620670301775005465391317224079181197188042664280477398655945833426675902701738601499146138728320306387179902428797496175093472695033177496523780051038116238745647824582852792319686385044436929806938321837493532420338231157011528831362000896389047889768459242888615633847165212714924296367063182298110611216568479788403052488058696465718207058751423815015801438331420250757170685957458388946684500311569817929367208665698946754326931927267870472134119983991275090369396916108954053013955199870899240565198121479832328770482587979416853190813491758117963598270480275152236430241436579657242103667807845850167256084080244152228765282494965289692305187213280373195756939155788072911895190291331063117075355155437551100343908421285523906474418927969996336825527212290659975144899839451063522444259029382088897751479204667718118204868016335508249907449368715729311308898730587968202355861542267138947860932100788142062494862986302597731035537350880049091411875272526397040198941866605344494833297832689211821629666475099173792615496699686191327535412814540725726245816983722643490914433392940942950073316793014330039810765091131231668261049935329007005293981831619879317312039221665062205308177887654547836859869193615455984341602967255391647338410037061075596710678446461130865330771877802425990570900769937858575685461269204082523296258666340769946065914688455839163320316185013312628183847529806204850118297023100417882140958016147649825545198062808127825799229264621896898375880523719705326112182398778433999520469289921468658454282666388789499635111333501591136787949568411092078370136574284463972246809729327954917780774543492552852350849019314897632222115901416179907983793625421833144302733926811517305920560595835884760035804225936647796142312632337395263449971780045965469865799662540478381667895347090415817855329590886959930248545975637329940365772877072328422754610649503439309882973162466443231686606094318899301704791325109598056888995641660495316444044951403246453407476194645434797548312723128892256804152306690506244803615210754047854636995051144677444838193988642908256597405449640380657129369927735938842702037970741168199551499103247710926706259377857026795415360070227591728247015582757341679106412585529152538931957847455807360858476503625188118164461577791542287458498898526938317996698589557137890516067035116708664252851226845787445756471213307157822563655577141660316996765618424253993489729134657934493055485832143288449979924591607515074330911286325278332721001916666081409888963441985407065629384044034777778358698561914397998287460394217692868436078232910665423985006599691477134544509657007723775013114266641776786991440380583992941693096062814161646394293663376051638125291413210273547107009293584944047606691216956789512309007765363003762428433359684252134407588078285914762317678089193435288341954601108744225561580822157894846108737860534569112890094771671425614651833674037021497391708506395054740282310673201878887241046767426108302109858021712285074195432115513923868237573553652989419015119693752971229125952678749545873674237621432051351759168153309245942917497011726966797529609823607729480027553168505191317588160598024638095948604587981167186244202734908461578204505087016500129109430877468284257060412357174765999778942657975014851324934501464003521654548165781861709448565374821783815111813274567694926294844255377217440886860092824123404235082943170263947499601618678379786745234439172163498185935395407092700669770578374251703455451942691117205865427929017428975458638051946100621764932205837924812686775100325656652026929659648641396384738766467890255371774740361390899692590345297505236874039975150598830211338258406535056039358346916633569835727403740553143769221405622991714623901669952695466044579679017349982239375653921068387556643448926963232985376343634228681838715803649700411453434431290165072178335866750809336045238595798285730752050119708803266074102610249319638032531324706866091338167460227266483289941905861008615073539662932190987228656461818381714052155382014699273023398084229633067204807110380050464161753201678908580621608057768724691630178979817356980948218272753774157938765456312254906597139684746061326455225503972203525885659685896461353943205320808483545913771793629440949039718524079362951416554514441926383000156319811971110962383140829775655299342914948042324710779108782266477522831539491641542947805375885430751296572390126907545700350582527196059976272866308595248107451705604762093853944431811487171703793365067745219370446228282925814312246229617274200188337024719387283600680765821814228115845251490516219199520362176032080058264347510418976024671123362575611062943941326901874856290425666856765517880595618864031183971724967016093241250741833248035812367509952779020317717902142257378834562989160170590856933722532355276806462971570526117703924824697397396314933828981290753662757473636857002267974702474700185371109834490622904843980109515841745392727640624815981175326080079722795046617912427588245405120922586113660909191529300058735825773186483582153783458891976739979527892468162460839699729685529228630768748834550014624712144155850546565448048529678129305595686162895270199843086012936450947235341853915249619071878005736822675210331076115256856315591246469466125444519336090996636767802514374214766868443034518900995302886458303173742960971497540262880848178279598147890853096126675663817489141170568813811526078701688055076922341446834206098458207310442581687678601825297709753987107626054608050095292187546195865466638829283427926108661189446578018046581587750317520412085743907644021044096430999182378470435326940632367329422108444020857161440678831842635122996137704387933544012226157951125961504525788781005245721870827268702629355589757793764506068728198439672308822642198988995931668861547656627872572269010597199354551301880857907321213765456627713557980223479284765014246458180946398568058088046781654081840715989309697283414437519489349446239118893965778148311887033189298040968026842184844034953516843783872345244373347659010692619307341851232678050507857183451209658385493667541393016713705757659359282407524613475565016428392729458166608691016291774949060021837764329559403026169623461489144390730840485761315285218930547495942677810994966616237017468914197408270763094502896689966464616274863595962444020945162705919484726261834877206080533645284565970516329394017988770435013103379080948304622521391372250722190577237210995259701473320426280431042653324808398318715286395914428189991686766642887195334650393832111958189173569208809844355991525065252032993495977746136286280309095415370187660877438280064580076610216447772602071788414653329494022306994547557429736426624048115707865334481197981309552157319266175965464115857431924520592120814984172378142117518666924049062486459303703934391492044206284492353339871294713544924978720035926332768029217130678696808792510851250930356728772027413654284384939900626322445107358054130088973295549323102398923045025378005304898358497944598718635050385622270962494979250555315329808123082910314003116621699407415859228772462280336108377363225826357327243669640645334226520432361082857914804249960111120469533877768726419310689942447710353724293498900743515403181682404358818560167627654825140286510404614880463220898802816975794650244465816321839936671957652986780665368670475158687607908694726624298229918454556183599261284827215133521505557692709949808037492744858759004098800156770593737466734071747469604034363705126778676644006258157402656134006362663299699006506269422558948706625464599065792949120406455872564668348258622599586041827713885966774829066522989858497634917992239710878284265974279254785316337913528294039422527301904918385007000313195432815945784229144840203195723740079376347532777969890539174589221863144639066000903953581315063270454091123410479847517153310505627187207371434158254713604786309792762639066406376378564518344582753870058685460651573033430328480992448311791693917395025346313611845859491371491226702864370953808789632744273651841443359256019584077087252092021803931876244827889740072141805317169318644261917556697500150704384913756555074950265152240595527704149271235247021103536541339212251987226977098697239612139256152578498629611432780289015179050905628591778199528721273003700574187034778038621181205347245366634100941784060888594911487190415531398519875352880292082315214472326119506035786330200095763345719375916855033857936355916865330247342741642230407003561324184847604306728933599149936154905364387874875029027107720473319738562367724944074642742394145224848338595345576855196217156720525490557792292811676869508496863663201785780757010317695201773289838503492742153059721328482527972678730960199933105475047908361310375614666906308938391966394646171208155900605512983391551688532552925987788415621611346007357417453557070260665261753525758581218814219590296474489476469042783815643149169352676360515892960613233305417898045768487690641080520424133053172470644447429246463345113817162639803892960975077342264282716709009518793677979746947891339189635620235129628218021896158646088380796747172973004478165128527565725659030120855459326427481609946836495330617827367887981889832846355137427628242936415129949971111863078726044029811275465144870925654439862420933050911445544989077491396587488686036498597814626605068893058060200428661265165170447255195350567197213378850401135808294747429040789948835446198317863569505323271142335431016610544743621428227469780587412059755746712622365137510570256253105502306957740028407441712927060552246431440911816836265088452736500627512538300650616002048761780295546392614166837465909575956531564300902271346784585894011910077548034698042972282786098080999758224856588004136403581970285997112726105835111414242079651861397791310115955374367908353091544872966984688082489031154918389825066807677834350914930320145954401267582377594407373201235314594286164358054980788331288720640183526198808291198717959021974555942045459387783082871830585772213764400145525889593789038408051579236443209689898105664875505368470652472420867608688461248678779867099515883035548810819988451772599525347755383683854102446871357309893177319244625277324724951321663449261146153345412380181875327607160311936813762136993452153771480463847127139852095976609662836705455870576697908340869918492223482343929968313635247020312546643065348316884904144760457383659642679659796733136789723807046593017314177697063740912805798895793767064926072010982240193107239163097761917846669138560154050078649902974494105095642460612438824410700191755956177624282885078443023062540006483956636971200869933614571755384204435014886143737016051338875202803853769724936447687039065011741383688400338704093554796725031449694826897821471747084821379702465833856839482319065211981672594435186470504947171288107600252982908801039251656880878815973849045620992186545950225689460623207349440012815842632125366194227775998791705934263789558076532124904168250867602865005380220439878961959748158177863020556974867683874030250061271054109533650804864929867192670086046530424018749097189616838074781656369580118190400396288864295980129810471375180117314505575804317881159167256486476099910095094689464585254555382719002805940258973339603393630286779445023694043403611493803102900813543180504248263187633449151005552046771064105203005970181884610921085481925912821964153177883141557832715238539049800459169316145134076465885868180497517920898322827887506615235772097554021859465199982069765267968046828939343928531071451186746150857253141997739517246269908534425880040016365698349884068494790826506831949494050332870666455698531581442393236421940113404172186463662366302118137551862295413040863413970741205042008654647062195784017706540154676779801888699143865496481721985881258774507534058319055067430899478922449744052641447848107461685859464075110679048408885365637831584815542631499356142045208327116065217939503454530737244574961689167409807460405543335951815224464578388336225653367796860811317657131858744145469879227207767135466488585628292188903990650328115962142915915357406387674408537762600711882505167386944594098666081221808835199683456195970695266574242207255571870527616294659424871564085299359558881221364663043598533592924497840493524238022942213224083372190032192774553180666242813758008568864145087484596319641521104565596143045602948244499110285700291948784570019019631539163697361040474376964565841863129276998399119574501394253174913946238609162486970996690461245932783167125292649186217358294727713291146795747737387996410593528923795246051930409944552253405667941324402617579273631844911993853435985842302287709790710388695780915517839884793858807010007996985706050162845726653444201957065694711333992542059344473706341508129437347898048725783582975827182752431849562791760869382342854746629065785420686226922187975593486035602973227486825080945573697121961216252601935823724778400848606008402610614240965400393788534533854685252667904688073937665985316782817580085679566823871116131522330708928457801547030508726928200157758257723548885308865178061756359176149705011580825660292254538449396218709369928403986833412131155171914374373900922684569846831368283953572182995154009329711554310691629389490900918729813645645300735635509644392178481132641002741953524911096982962753760265955947690307356339046205832343608233108272529617924034769559036657771704622839188008084099628401081797148735691960288922479178081669431433747177265793371338121620431193243244128375960184860632444069847483262267277198349743794856319856994932023745806207711608021793380778118385215059887701752428111884265741043592993623584649354422769874260265469020389388420181537495186366718477241990783484964176650072027653388010942238485927828379067481096768592627469475894576534559878583181377906732348396192491813077374132106627480896256224546063706897868612515684296465861247247123595911798895369969401587749390512162221846570717492821857385321532778017469977926505358514011325713450579087455209924568240750374005726608336909226506595870686971405257316493003250040213207331722063592665367457967644603811965178535879597118336170151426152061268437615605110325577702349194475661130949975023863357779479807417228509891159253124150440783008263902813790332182681919062634868482651429332844492960285846037806439341327037905757362767533073339829538173949109353709443381939102547726192417340430244102908374189057863600194499184953610667701100506246287746216509716951864837042165321293687109157367920597023396813206194676053764886148662798288790695036446906842273143915541680842547104552441351907135006575169397676521364720037910128919837850937019154113453380043639792278491458029212234492123670034628748026596868957224945312666556016402959352429080134428015999669066632527968509596097729974396512221512776522049196217591824004008860539711459606154394438083131045064615250727348736568870854669263446507075068881528146908992486630237670544337571726094403603257755061083677398973086386183949751870448819394429273561771850344010744763764356256572742591236158988114732877672981327108151724867402697856099829666998570932548356373250783402661954848640230411264998112542885649415931977800447494136468979841214889724484533087688756595338180886606389739327573837412006329254704904987436910611531223477116686914112536741267469377502672049395697129780750557499601888872956150825061240505420624426409165950968138981862088494262591147449568155564951652070610926226044624419705213727564980810053539131647159097105458064754989830068779127964878094415189589321398777762468146844192493938701243423850944031175528077599570540873269063149979920647831753383191189935873311165563825137008756288069795397922027692650280951183238155031217583486374969044412027231212462347189702209144946803049695810292413428680929298405267977353984123050925139077768242770428480471894450299066504287286373131561111215701976686216207066295345213625758578066583699192053126177862463662480237603646289175955329925815695766460463837447730755991091409744728276266267257641703922218680952474773813303115270828871148206273514426223177400553196647120213916825094657489118864022499166225900991760883545749241703372726819503868384329958477428959333199729367297864359680087484686231567362255884265751492380013864751404971925391981968023005111520024902699964911585688154684761646730804390454045314129035574937715145647530348490808452106016857794415222922688531061971917896885877111988818715928491644618190216637453266201977212174331147429944210299613773382039069806510976409861269181309559144008429589213635552344391953827913919695543973745164339620323847060686827390226304840789900402947083248928977704570171371357056377337728505871156108078196401869921558127948774395000027369520617018692918188504836222353674960336162970196489137056907567801246525135695739046958795205079026013431611426260871432108733267940649269465059633234075624504118408110649137059022349930530851173874835904460555085688156339457135208955879694805115572373169109758993345186215619227618749549671288714994619150957568309685919082310160213651034917072878898636548922828409072211496267133356781636320137166834775576173039173130032866689746818689993306874878240504625271719658634406154777185178721743648013881109958523416679983242525771505501934684288930746530720383728490917320807353528311384949117250662521702567646080251754873243999673708226242433876478569568065645020379165713366759499346816084040860266112623280099037101043069312799177933683114356121189214514185669848053200950816172693842397873945189338416773546586604777534123298996013151518046629037674176351848740637650621457483976191977646905905770840061626149729764062118587840210458262500844805524308995783887373670906775492861691908869500446456036576002316838370397484610562640538396155316063980184704501242685307999623253978377607040661241348870663750982866499704929437220442242454549031585754506775944726596262640758571348690534135286715401770461907785321734796426716342369804689529451008759280074974180414931554721904828060992945826663902123091856492232556013031790636907023450293505369791342481115909525700061219422609537072189761992653991751419171459860061090947897534325054332855341447956731194739047486462786070308548184100710410429858984670086018079940079128581313796726370262226859773092870940125322916211860477267799687273087932522293108295474027834118029099427641953256721803002750646518970640493406804350380129389148183098773897649324474224271228315080709431061209234824720893494331661200246536594760477884123922376990944056592420991094828895700003481633997077842207870478071551804009901305167696216392711567161166224483617465418002585134544068544265663882664462527224878299219458953057218336832630502863850782881914249309697281838384879653121564906028809904621216206708797962619908342610561632335499046445540496148474646156168380468758081004761457880434803184701223971077182739325005208584012913800207639509008699112698069638529073462642626345687110770703495603130963968686152698000888544988520437595441906641024731380593071244025608108209605508292523812282440575743813082656209729187899992310624266546764947588446612570047399647827477799685377490777553363606694377623184047773243561090237326643061139730541070302961228490793388006420391213060452804153001825084082273030234899310051041009322477453991872180289223937260895813667895129935351799976366242924482753337613027197867343411673792602773107615470089396721074113101517577827316220590295402084029754080034077090736500665857437311286797258890376097589380491715808874923395411905092099516753601080990028837213986683741631045171704307030836501824819126044157097121592452173667167844710946361377545181042359426137559932953394123135089405092985548831583451594450020732365764099648694646983202357254501729786325428001733567116329562938233416042559349676912430838370690264415554676779373312112488275050664915479668814164087115519098059678391417437635709121859500733064192283225117891625933357986723867101789360979331349244454884860718622827013203415810163553306843648212789521216562513282157590225010935923643601241089664788603509347876810975292608593181695037550003445177375326247954103875395911779729776102562422519546072484009462907577609085407326076780172520355989925543001642525536197172743431558949049634868988962983532163620252598219236354092717963928529281686258317896253607011163770943259297660288225669693303755725712771490051749964313832527171790350563888471762641024706469113396242894649593561304231325157451288865122884063435823013949019828195009815481683898053435307171198333598802967978211970577092934505834157891860390849025226584425703835468543737314705232108375151579144160394314225863548518084092321140703371369127517976928414859804053326435042949004890004429185393528610794274624441005785765761173079256191813299899223899491651417068324077455949770047968671389218290388832325193644496734006670470503655027165845148910932184399768373237817009082104759626861472967530342353784181889106546998338005166294088121524798785683492069600745646692803323114545116284853843161043001805193329975417904188795162348756522273045420318723657171081861925156808366981429734343227178159754913990162219879349955290505324631952270167430415416725311225687695629827046262967625208831890625386284737005019584485200983259892009457332016194940700479449381422255036288030644618018915983858206213252921491737842958221442333452132321274905353756857991922887240868752891338622415619688280973345952959147761132818490247042259178915429091349768618540915595735903480714543366294003501539302653258040826254633806891966974830016869121488024404950615762158697119574313886303740222120387270362100041898909912933995159390850206806513285790729677495667776145518545660058447020383336437341285385538875927870910717685835391342432828909943664636221320661145914726686726983608044522633846448261566516254936645537835134849316301766519423607315474020240088940539369613304304367737775634457295678901350318026252786530696060492510711818924807723724932963500690666614097770538988633418778720032360980949040922275121021487834559369207224077652491810720631303653326429913717637740895137674026472777079045318566173285510373942555819518778885431554369516116641215479542488663284434685325568176521298326151774933053291299545394196062370014858747286061676439435837511324195745937419371611552515760740498306149237083249685104102661412442021606882532163603294617002739122737832637309336004809555176276291010664842666421389540414520389174244547586499896414134794445451468045160801540815208427965864639723742640195097316082943933184745234095631641383407226335936422966664136733836396222390294159664315619770819083325492160802470084977337605721019856074387324955109075811195122096622826949692937129991298112489836140853283106293277691850193944964982048424451726174068415434576530222391829739619175992839802293129846510395451482595465552661590909521503273701384460174747302637581646444136484224950506804203408868615965150989731297798977432222996878310469550333306005082947549469818931204876189102362054997481123852612306776777936488854262777718026441502873712897743961017185814793564103230580639760411116531804592291701866608762097719249220918269659708031457292333328090698850328973370645308978193861125421327533817483173628721635470794738618078247458407610208357887629777054710154050774885674836134397832847430035457371697522214111754074502413135247188866367146758708888556304484438018250813754947653320207489580106428401826090920202959144908647726796755897279174298137311146368878137907511886796927515817892354080556298454572061307417576990062766476544388274959210667623334910674662815705640864761590205119551021812561547482390080101656391957097507874074603998986524110074819420125467380077841923884801042260378261207355162062079224968667503799750501627485978935423356922858105007244157704363129673035158198500005231735477453927205140341115866242193945963720242761831845935543608794862550633523111941809032564335387665106024779657249428299853355528947496360587450107262926917192493310502067218680225370682503427278928847413960259517548798584870162622590406083178759240234353945301079471083920659352681032950626729961117966096104408948122140792374777128822844425807643645750319808895797452935172466315973974673251594206054233042419852570469819856426755637872932684657529936133431586951847129238973406153258755333501846424103529945938330641411300963872744503626987578779045313948386825001819947257399250750494074743334175195479298448754839941122857042248699851373289240421367081277178679061544076025274168859306507997725989415695306299821097204067697954989267507156475393693699081769470889364389113961767824790737512269441553206134030121953096746196274974510017087027636009875609202498569567064980356095621491472433623885127708222985076236044567320938255712065116290843338818673503784612105554774872907519602507828246331337007908846823980749381540754990574343477480472905110793546443687229599201490707018491197470061750899878714583559461319492649435584222033469977628946202884767747919512904614290893164549002523089522472680157987112254556535884576012102895958807699807772114622556605840137430413319818613438719512485403877011434396648018839519338185490835339168038282631699129192896794593688437694387130138995085939647188741758846205004269226393717398206395331004967385605463193740070754861082689631349922064101179550914749853206037586524227284824893717794717262422259349546469386525144446431514819355306546373781136688972315365438823968542507394070093959412727999117905992654039408770551744087667968078858843329581831667618799902382050241509714954605670801011532275901769987615134099012923348107170415501767657419604392999681429389693774680538534911868279327941001043499573368450879125151548083033501818493770431723396434429030100596592106982797545784731011902455812628077171767613809770013107169234739662637578467215286945658655100693894275649899763316751058952054293884405661326155689152488251354740213277336369263512965031294830370495408254295649175846013075674406807634355418996209088198820645703200507390218700771324577230226597391671381796276900937980475798755480738136222503928206733622130561065226716418942916048272032593949109442905494096751410694412097958305201551201000244965879808894110764982571722185355507221074509744810408522710688088682412192659542726047703398149916062702559575294636356856086306328011331885499490554801589007917576815244013976649975517106705583326937297430029871950336327218320221583833807113631425534418743992453337242516954411951274214304399441097968446598699359790423527783957452720615834432910080180206114269838145733603629004537131419340076747841839566144297907102356974577558815733967330696158496683729511999071559867940396412697552257613422687717359612632771887176980635133727841144479932665568618719159281959758582566943994102809735574726875366330790398708287525362381463238631326370916984514122549023315856326503573079713428391812123624232903196138009184917495477096782712768210690260927622881128468735339095734207381815859946340276331106057885993597354888964621684785705346988059207961882573313544295007771115849814078923025227312266756783671899947871010468073361287293782362623641597979377850696239927054901735997088343751135744881046260845309049327451382698731902156010990204268203280619134597484539900587434790588618349871356821337774812262477011373888150683450743449984118700790400548257253367851643330643695731461896777940563042225151203943720741082429541368307129564612852138126006707950731057576487771527539500080256401026979711675438892949392546649573649270152595799304265329374710273602424082089410233395094452575147768971155038166069585551338702909574936729197261906031248206075847083590755121531540321226741251063327458555307044401916795101889238095429806769803168011662131822706311343192155764497618613439956722565544533877139465650192642707210796418932658278970873681730388574636665979940902107341672671923598396113495637400766049638032928385910267863099597841895204358864139429763948798268600943645722164297171333363621905603495161238011326755407016290698966565692582520474270449655226850061549355793052776937528398437914955753786899023986273483981823322277134103579353917314420125528674564504309159299868858244437213390858863062680634074987600347872454975210656374927681251764246269026469422831100941171621058797322265298111889083173978152449033091397745733641096477726198776936330662703227841424739159068312561812692284141474462716951320995176010982051642559951780250929378391639523214403587377186782544369948978035853561634118825183309698669937231068014531708598423595867924094928498680609132390734826753057670693406827747272349169449145129091588490165940546084275196992035819182988973533090384498265795646066116341912445415748985995082169783828463579854586625967746035494031120247449727393578064008848207694177800971743914791483015733185675022449729479012468910897960311899695513300399414685226149751818308786228513882148981602177793300853299421635865248418691723415525569018712161463586449176273654851178204291528131269200335749200240691826535553529631561217520388619596438602176700577109751485905235892482202623620028042114323734442374744129701797813281135972422055676278780371006743858999493409472486836276188297252572084867595009762339079352305369172646452589273079731866572953323516432134800646646429878701456770776005839644049261746026218954046510768870757498289593324115814393697081680591664359176249043072025874461240817727576191097949018354091419631056565385519022001820940454617419348198753603251121657200651917195899851942478987665527771888313754008016068197375315451430532935844018717493642717513077160558076205545586387223256055234709665559178293318280773943147525837584688743559095928611289507653287435605543550973101626528892781471857847424657175661240899828018606654924947113301879210365454256656829951354315256070907759842463008792365157323686562424394453840876541588260568928660436452348688422810670135232945950226423858014722261524792402691225199537858589714736437141765407751515675795200287945887957511418967445568976213945059046318826497524665651873001601402734537890679772528352882284825160465200414017349723350670977602472382888827402021583693395669647392701522912556186216760751498067497525676122483617122108245948209693577469615862315909463947382543069929381457023696445193989920458702243968265305719567013420121184762993795596280258310011394655714436422636552140760830664437539079830446973660050519825486995025808429243889094128803798280875890642032025075922254943718668933918288769183188538451027338042222079437415602412423694572703076842306330594808350280302183140551866045081123874912982093475006585712136653238766093536477511572103691717624807565377530042548995531129785180222998646798497770442786691481756712857773316654422972156848447834133425384408642479438474293339649186856405360045295042812505810504673941698156083969567265361021048374719373204928011703110730842118712599926014443052231007188352047844599619862462987820079480886410762469667553194538692862252501927245901092573047203558287496975589232290190657069877013562099151892295715581345956188314916615539920258054620580428481134631223003738357659007196593208109141591017150410411614536862717180045833021900047613685333171061877097081476703262844157845419975147642299951206704951808485687972769316887795932851053038726205461013511506315060105504297768735074322543555493396942893997025008399210458157335887738062299395469657342094975917418311153263838269428864044801264807133345594684144242688396197899588719869207352845772726596845631294463205115474743464748460299724925337910508585411573900509441024766075955036637965945273447455595618825357425290973939746012831734236959927326281866238810597883568171961331774007348616489438252005090631284541982159232820141118650256967124592878520534231941033581062508311510639184684622909873120543612967109467643035614469911688588359973146405513446936201608500581401335564146466726782471484786851170435667198135172058885951079092574330965777225198106446201026861896104070183659511254678103324897909082477750179654138499415570163320804486241377347535148003495798967687299435324919747045059060356714721933100284740459745637092580140945530340979321059826590210052918979625900366345312795924967367454115613047120411700578625206349382812258124363873852334968779044692376035243113753257366999150993213202293146513270179281234869087546353897206610814059068091609153501198826428636548208902639698457577767671714597280107831873537118371443699308287728179856507925103111648002569934615345836611347363179022872394174874955372595832403035072479709809004200128979018318623560792669171467269459736254561772158809685289044317794345642548324286948599523906394372686333608433550209109574638535487222066899398123179314121589535711620860294557671187064112451393038676781522431942604777769162094482718345574056191680420527437583603667040403055361837228158278430590405695913116846610270228800276459683911482241279544419383065466221904163520610722961787868816076699665437122391939797923782083713255421547414123259297191204114181050488258949762551553245257384007489012702862801546665201196052535247301531954501571737306088889509809261256052352416045850522284488741435797593112332097787779464043963606559991380233861217556145935330214709449727592649515625316198851303768013262586909835539763057297636212560225474425493008362959674568072846830454803634226135891185855841639621798176119806372108844730042334363334963511317817327841639203476672955407229724042984584688314797753351107847749217707011697112485362161413654514095925031731323520731563634863460917898637536681748517806282646819065212266812079192696763185738297146040172158733416476992391719382785269394228237994759189550414679221527817616115528813803489719356551163399623317795931046712211807531044350897349562996715030437085449771268715057855039545319027817332564876948701096093539101236057710780334430711095968128871592423954490219921404775418196125176262066314805993447067944151332997960079041729323508807714984107458346818282832996993199263461318012990678441706748362576591171309563079784846754886075748438545683044830763340037280554162575551748992479362721907474973908960106505379863992196149310375844699169500276100414512324389148426309385653169341861670580059540154547184185660079683947068836214341932675358699630739512834806461662445894365495457900446508121819728784751025037858018022227067451452241439836413605930086414161717199990878775426149196891125095679098676039787139214369905622138531565619619397095959504374297916570236275228869662474629261754348039315917748306735677376523554575223168374404028678621216200014715118681486209082410663584092640605720282701864809425905119639462577487093017016236622742499932201995161369009692368153805443629978389705133980603087400425302374603441728753756316797017483424446038194374601225902310714797362663932398526570150454426840641475238931162189266549583512635229962855341379012907098044146518631000872528548184045441442629225236795539335958241649835509176277661343775391894325310070427895408065353900961504043138557017635665715383726947040134920732724606757213171726874414755588341640200037104763074852480062985011370177341424004831545757512416716349056270353538475736206324716270694130201059854516039836259719375566536076629283815588315695483199910810188526520557716461626902030356903146878152927053821325462878665482202892671022931714519125141895315834262868658847059475867227414861038516515619931894948178609703923765851919585262923796943770289661248329969734002158811656284777131710895008172679167877168569721183624758753756819813630866489770730791866956715925488023127507005066346607006831971912221311801397884939836798156755379402814902224266401960032202526979451459552073415304190802888503043385338986879426230442163585593869801633405888644942695413427416202106227495094351435339974942967369142474033778047669827829237279231923818644750126360975735865155244094382806833730108973565923972505609025706791565997591543061777971403658756728765427100435637262896828648816482630255763774174902304659440604611591349124002587558376640976539435106738862361990416528812258920057842559019741548309035621336326664486527366699714424632724795413545259763451553974677577184954585040344821506069115954913503007790570196065396029805198717504156161611602296161730228499409723669921344699866780222068765481384701350242533006663380317595626060508822743062633953713142999999589151972339287435878039036210484578537763440120144914208734021909287127401695514682356865727781666602863510557139567631139106874088185680503485943467232270902755411215158821520567211263059743138681546420932465800925038828120698730761185243987140245353951797197245618293363509928908812826141188150945290767509131462928413968943890174250208621983944965983661183837736084648910905378723755692962578232127785135414293852964003366006544465313084229287055313270509059113559266381715207053430436635573340628830452407368975829702120120369231245204799047009826560821277421804309856359617970816226622922706074891628199752806356605597461245652917829362063395854853630661447022484794942316788338204238883705190401062524710643333348925416281190704167717062589992887280629564238297292856035447477375614412046345566040504432287788661201301948960653987680127673269392006083933943472458400731396088309398129719137061291992389681826642255988452329955930239258942887875288641696317207397722077916559110207861383006131632638966997166681096576378643146724149113888329629391849559313135657212182335755069502794985622716876002172062969545683398514223201329887873957379464591583684596570517392621920579865254352011612828617190039601016581056651784094555710825028219003499639735265600947777117783373844852225887152867441751886382099529465547441104193046658874988854828651695157057120297429482490923999764402770388559945839301545345422869198678188395168009122458675460238964291212839841423429594484547027669504509226967249933103579476630766791216113376138354596327506307232150288122575039357329026980629309453275936765106655176556291637246453656872369447189859301584585492920221572461754885762030254086232882354074223442231270949044981076392826128762078313421701377115866583098663802403803276779980188111387852999991404024334359460560738606610298557386138255798088084130990544910384336186792793778639260528099444435342686646366837844910100550640672861237260719668395588086269117050510538935643459029602058974953339637828161153460573608543611676825660231420130820679556768082069529999003972255268384301634200696472443775000181444518963305937230015034857907286351749234145186099886125144153439666731206732522274731471665783654645507712757576031533679391740100419847861172098561600478001681307218503237334310714954837910539709947412804040789495233332829612265077270116533408064947737608757462419112072013083457954392311028534641188804354331727999053994873818622434696968870374372023201472239313018042254095397275000177656604288770722228842166134031158463691587475013266093343035553032586530698680156551333980065202948569183223170314113417644280136111232312683602117294353329383209953509343683803238285630143697128218474129419735379421864557302855977647514553010454755991910015860754658165731967319234768937832976781419025531086650359449649164653577336915375752724926938740721429081646826515880667815197059958665615010602278155740553832201189681505527807880562889729617344006606755016734010620459569415256872962182782348725972349472244333237473519357353464494939106132608687007297818914604042195604070350902602631923081078121658896885344007354352480995181450303123783625708089447700749323505875996411432787914872480361750700305812778724946555678200748910470420977438064758628089292642304754763391150044641430111262933911084401409005752727047752283210454305228716506546708039861932250216216327530414684606276447983454198162865427024413538058103750533325784476418079579848743707548563175552545524881711604673921376383111842027007405981955477873561839555492757728639520422575672636708113301844242515029294223043243477822228849925396930729553937897634226973940557771421129469457120864376561334075979408120912194555440754660232618668503580677883623760437922749325166590557242521128798078599657717983464817010235520885164837353373625198479100776093290841223234957594249993061346424525190245267210604424711769727572143663875175708100460927958203680887983484742075218148755265313706437757127844202547288322181208845249126116121478763011586404538175202999401234095438395022046884850129194006890560905056565289055514886538973675473124066439849418486351544057787401918586219573846436264710228483118917370375452875052884004806496442366187510458146348392890285515411888396780280471573070635979766908389238530674813862470215483923242647225195038246426469079542690315352129899588980704496038795746997164869563031038441888234714754527212065445824532632335165027301794616939566614967968437132644408068776194317881199326886402153851546840201193653401127263510594782536596006526013197102020342327818333888593254729460621106247828736761489241282651287050813935348723258715129335295305823692971350336806664116024617587537361148935729067370396952300215173906055148835380174279047157395896982309540516930590490825141880857115463650194184686792756419332892577077217826242879533945059797920478494327303335189702504813688163463631875733895178736884177419369977536327428625276322392637236307609544284596789878517137480463791402893198074304631812979759478632964489817130271193121248223286351128921966131524798001599952208417330367739989790876335794212831214125264777768930161829335091221913301742687862490284081472412847862458369755993980795214866146883943226934989972840388450556751248135780274736977433303460407466603173976695522502919389936550829422492226666823903600718434671821238448113005967643877711063109455611458820524199071168391809124201622880404750245346552456485866822873033097339834701650167914402490760227003655193589243171684738111740302435295480204276211856399795404731593417204075972284807899901845608716132869807553200231850583714244913206837925003666991007672291240118976482801081018553946691508502651414656365661157729242173092124336727373019125731857045212481693350844044446736018524907192875277502120068805455339738149750199678009212148578062664997730375583139236296344460454787474466698754619266629734202081551413307728357842249936804976700205743665940696492241031731753201224054681644080775455457547376728919280515549015272028121549433776560239572550855397201580382845878676148019594793753560588360578092595527752160386746336383522682496214569986610144235350940564845810043803896943079500077386801280234247818963698204644939600779661037183498643723639315552473552502274686818095282670156135853671742235799230576869815317686409134698890892602951719319902545775974534639668788082767546866795842222940672583648321353811272591705955781413536636880905183845695621629452940376606050057338348758186954709715642463127492925839882031111611143761183525979999485947233960485645368259473147755348050268952911131768598842254259677180352863213050421019805430059465902018613392156435280252041721450645902932724171531099887764605199594096769151900220563316953107288320850349167423587210380229757310311300946236790552560094454538854973282822619882384933063270697831934050648905293039646684510119777707694698946544669563273697065224993972805944253370959173922976292057547782695850749462709899556286021765514129629550422874040011697408750917639859276684975954460921661884002116966801476111863879574567403378696641548686964753944015902643719603213124745107820016290301122084865979092895786944446590187569729989149419822144155672514369011204230937709753007111673250108513693747877540180124308034580684858077737728030001026030473912142496901393182580108913117507304233820555611035394829111751459546563236177707261008203927928807285453986714236288202352151990968120696728241206345180473875928511793339150055826004947294484721845058300549229440337706607095170773475511621005858722306316989595607756776984614709916388473612914305528451957075771402567538182691498694428044733153806380505334981037100444245631751514095937274908076605500628521441060815759628474378917850145164996561921992139651275443213085094271785024690559966890850793965091850102461518513279343720223707097357000608944576989178305945148249142936454367996168342964453367961340766878761858469571690548209107445286541902459253179080787793200151696926862937848012507258025005143572830239470735857377524683936879584991134188758601249138162652465055219717253328690192139785694705888720287146999863993482387799902728290338337990695162548829704409045078977174867998450937417889319112780930425927350996503567570305488685604080663483535333293667766667083826391329438209078157209623516975321940638941516617592342221098257144257754695265013204660806962501088250312789835026151625871875572246644467541413697667242269378614293754906986779661083732928353246764662591446380685752086011865597791486089421185138798728001224105527654668401078410901513475223731110762918678288376158900142281771776369195251919442673613023539401770107691602155612651566052421522573957413357280359511369816359021406086463563081396450737559620874960120543014258874891421859822235575297249088679696599921324219420705904261728819182587475551441575612513710703765109927663234698027890278087995201401157703144683411327633781288146102638264740817834229787610981896568169082450746436863172490337312171119845590471018763242712961816360051827570408578935482131298110342292940599087240832817479116101739884802732363412529341816662200296624232519284576446190185563574645963036097960580881280663659678991522345778200419920951195397853125942330587220968631677323789334948490072457376422525217164063669317058286503782931623919681980356927492490072767593662506591559280109217619164151884049348381803019894563382669649425809879679036403864298477687726407528991495294375571469478174805196239597666127301291193082640147244510681499970481806083055399421830029943718926504642565530673598051073816119813008997459339138387164493702807966923961198956585182469279283316271909291981640518156285313084417859005283837765053167711114360665302858373653783741996570538443826132361251447988624971583422635688655660683193995052320799656301901570578790337343409242604940873030470585623465840870004359096104597011268494903371899155156272919346265744816244530153573949369112716573097819784016955406956555414274669839344902174978321027773689527579301382149017143718150925343715690461848211851717169261747609906094452947080415871889923397841623987509053214136057526556744375481978314044472063893443360095621080611988631154744944363344477307422061216436502808138487604732876667431171597959104479248139414692858134915409030346166197106641211762391973350718812561290966088837057310500098453537889830634407774071773370045299888089972530324584126007912316713500928584853366990601561171428237969884085558894930703665995533129669742609609544077421565881625605658280856768151497534162286529041643008910387911608878034886812624954007688578275754369121640291911432487549149625744351060506866329596575599837298728305312298973109135868284443223519691112252192628752758922248103382141271612091650134658084286615043278818407297915927181017068304694474716929753694624868551616416457717396070437279187109572478581877196368720492851765463105651756934207083381721124041807603041812582072102210395814041515548251139257969822162994150937499559718253445729426069657301264448671524855754428677702815395217251371589091866488880980339600924320601145894057039403842662156348149816204039417140037733758180630733267330308266362071899705086921493295871191165827615553396959436208893737752827063641532496276370817718204780209084921088541703458213748108983332797522400411088540791687330542224730737030830830925946679124984400437431919692284010638595515739811454056806972333755239084355718847105936000812538551627499024318572590776256341185017312065213242196974349265059023054092962203007535279778899962229793893578025461567163930350048101438983064887520370318876851286330568645541696053003079828985710987094574410593279135359452946416471174513266658821654120690690570741577667706307964440742965829201904731532885893025210831162771674151138826051834927332648696721404386332669556794110712914196555928989789271226059617253628030665164192337865303217933616737171335533078309258751460452651191325811547480638821579407307175856830242717157747580876361503434456490008394606715864181862063523984185236020887070266731653966543349688594995725671109661134023024199469188911093911309814323874875971686119417711642885507854250049516962258970434483612268047990655772342519026349055469092871177557930785480756490947515031334364472920186552137425092369559513130564178556743040280931063622245570326260587440223951433909811837980382001300933203700669265845872475112466043851280383881176543662854394530195840754641541468668108042566298309713572034361786859315660420977668830939044834615683138457222518418434313995418196955156028658118580661644822667460573363364637689334543520452440253241946495081010268277950778481385103173918293806226949425854223011782951328068363614596004376410413014779985163159612657301687682118561773910152591238894607591454420350347953932366079362375581845116899531046381439838295384579608796984767825607191225821598231181403589571705142202525733346628776106811043865541146923124882813215396903325697722129193326720518209504985117222419549476946165494217141477846187896829337626381391755724330257108041758991408834665178464939503704079467856733334711253101625251563823124460604156272058069384481054341975908222907139256101901512258127430379732078334676409799912607659503623990001526283623320746982751544071975300759333220513780237664301011203722579706227223362041474819570602833806074158068455873770355878602443801730262761632740183215252247273203439158481637038756390713263142163834120028885679547500752171951091224235398558316104164552059748043953605682162768197697657054431934893017939166390166850750708358390963208078283285909679685820692154083326648437755073337944962532738458171622250470874133218057197875784380630680472780368850060252627553338441781812706659993282947610235773673757351674573888251632616138549004961294467934736744450094927080018589019401039232568799085075907180465407755807560404444159545983740751185949166083534912568140318900787920290181091550450934347240762913807540087119184767238837956190285339015730912482994111330947138829694986376776992510538073224645520306496930531992464191438929479173515397432114984765318038577270307662780112859641938476795607720706104684461101809931417792073258826408776440628380092377588494374595731637224772553352121564363426462998841783240842032935585337231115796291601557782331361982608887493780176969662943514266184313834386237360597408614908683948479676261397804036648527336868684110878630355938372014139562508624204688539280302255722682541510084503503830679366339228234755188425434613159983807802837547772732306049229409358049146953645508524228244575847251021845239467542917766040806126705769821646632803635176558107078166528775123547954674972953851742595994769902473800427869863201743805789793551104126643050790970991107507908493498914919531767139386437174104860845869663970033039843925446281333246232870312734762955799753829925439558616279315979496330025274352627659810623019842015799992429674974178525453609914157373097312033212900041309975880188102440071521756351662158518843315693813908205111844232257721434854817630699875701202713555659387786385132275018435809816827375030047183694262385496400337013485234870665729145911508608209997184504158725108623716016999785448324823931353532120918630743017559754176018847589016832571204152357052059513715609304878226162572311803802370315611257050827653057577526462627383629193398609193794749595259323725600250657557771625836837031166576482162398036132357409343745609686880385968932118458378089491728125115875246318249768476503852160766100213127089851029681563769400768768735923604551782311171638025124863234866565021812015014736331578521605917069249830909650790129957926250149055643089785969634211556383025531782052707594611779251312525249876499407689242734208124289302936515616046296494002433380436371567432157900559264843735915736935555914339080990518642405978153141105505438927407477564991420449827655635664998969517049830025018715606570913363246405867629387864024133211510993993416420495692040173278442187021622992171825291433071003991308914008658875900989985838408270278998389285714074981295893029597126622129483822849333032097367461108854563665283209397958468127298322390804790092403417910593410685984834496343804331311702106563951912564427753074787218313664289431396926996682571575216626995564823159319646018155308054764286304222645988685851539521305567340285387680109500513006162722226354320508930098181333409153539040466535520428593720335946746796797807461033615404770237572272378220093067398712896662277444021962128454756213501934131469933088665702687042143598293146672928564389942642250199223499163779709565847364294581518493934908193910631200878868706330836374221731967253609554102100148825681321851996520868816328082863774853020203486448775637491416337947720512305211397591382870992341793568755630012112585331901915944772910253290412759132436026733047739766509459581621900675570502588094367529820416899260607037375231677234557115096682887176776677353706158638530394370187421236311866975603396313253933419487110744026840389188381545228006446597391348678744880363433245186616165437484461573241895073246668067635647440916370601104854078854603664452732598282130430539974287518465931382423983584152894141940070364642722572440825996843337683795653810831541696180249040986434672996135560811134225995673799698521877475182495434926256400333570788028878770889195208088969312840310082674758461801998446052763418907399854917395339963854771584418850735376705269996408177710482593325948682629131511630117977248395123168304703426951643058583408390864103050460661783865898083295626121195076169785016640815096160970156781236972287608666955932030033601717773222286380111686615043413549795301085358713340268461180966478741694117042153996829491139445290471643301971504946803797246514230452971044377541139185773019146433540588162393862995586179386896491809721325663451708489446137838730324030411463077366280946441315726620567962954599933917897803299653954296716440864676083897184741292396039582367805568265051757777431356684871837301599107797618601716144964857913929870822828241142491300662656392693218314064197634516386445076143622026784025562514568538809325309274234757766197883830235595066354558245864952052509927039785667488574861782593104673132821423609532659132683697145278553416191393211126789635852237868288873270054768988293352946543464644600101364698548449611788933547130717962175224667348730778486776071904690828002114625058731818409581233309660089511140279438111190015824846646716070288455037704505026487419676620171125942404764777403662146037729581695297689037793250900745126675662994432257812536931787625243327505409007859301326243255137199537437310741079905943111074589784276869279895131115237423524534589549788615802122678564711561403796446558530851974569263012155331571864600895284392108375417060114077891969915732153089056786497597660541334217899133305209477927074334363152195734512785465883812851018030626173775887481963230404632976976971062072933876582822084271205216642459819049941344091661890799228286236594129902087069566589082528062504223469056934430648390565963671117200479061867044068330540552780526271609176079969937156750576246753516885553133672090345010212900128879569863337839744225952529941091366087764825577423713329664781995674667840213343772855788141751449876565149445435514879136223085875582017283184991806560308865105492302818340102132350789729981100658718585255473665159245905081955376371268716455882165490620385414920310140136685140056214453483651870284642183593630109615641296084966491077367255208225980129945264903347126130602665995159850138717496549561903921357482765910599979170987617529804591292312244156016306175186452877158719553249400757491983198995604371054413490342876423805735125943122036541027412952239544612584582455601268032175665674285663332979054615015725895278198457420486980492347588087505233216940233125059314627435957796587154617947355322518834004442719819035423852781037605189238375682582295799105273651047490746696255780166693450669976474741167275781635519948646885868584939548808276103966449215420893289660181294558086643601994706154087245111754361702778727505395624157226938270129454512193124215877530236575802439550268322537336545607652675764484421089903411702605155577106238879796182742999622267859164860349496018014573039083928763109060793401771108328926629085382981394548372756744507029301584715576970865938271859860380539505333779421391306646412449029539358038988941873467446155616641548450232095763769397375032223747057217010944945148883235884480883273749566996306273775508736970681949202722812114246181853033857078363109281753028925367352686771995920130682797717367055787884153146780854402148353184405564367074829371279200751493202698325431190644096325429567500629220930130465874530623331960541988612325095793404712215713435380683295733080056553753132377850337979189524625435623049939716329527330550723637726674810535810733095043898946397731909554625185418595867607916620792644098364847744556032547072399805264437661246633600558406255030779122022682246696199134284666168651261913380813074045004416605037720693041065265589455666722506203414917253875643653694661279902588747130126390732762247666824082803511377510274904362433072387849573734887080372688583569038306876746745555971196404596656035955068938023523233927296409567473939323222240475282088980710107624908181577531474413819476684373904516817818042388580972592399982605805746847608128705100201619168924169329560284105223676637233614246621569573324261302097665041667969953364009987551284325196816991229796946688171316351994019308961263141657241587936271640604730295710687596547776703865149538641631191005731261545869350621145157374457827393312672125232331601629948890856319145659139222171743095795490690037872063177720839602400234729087414710179089243311043321207482548193886111825719125797654576613917392067698387683969777267704490473068514252419157053917608565923212696253156998830214172888193335004006805559211422978678495350601603530427314591362408753554257499558642716508027418832724953769060190549239983007199330910670886919666481926576530287035262621221741587248634874922967194394049444916095335867609263013422754458320244068109534711879550792043863929782708612232763834110007902163093765301401425231942673813200208861956741467515050201095467128166142660890042554342777100836129750367660470716450661732979986329421014729172864046178177586184812480442438121037732267575434397950394633587273683041682404579788471563232266046597153781817776281484193306008716993265465270600602519579696575996938414040266256017488734251185821028629588881812389739745357992000183573784440579974112368628140765431703884344744322643109412552755364590211281521397165358883490749152517193955593334869275523042724362387726915580666009022722561107381361948557731763901141923437225334004824455601673938404603756200806286246055300043304182769356053962406827591486332507234449010280231555837961559695906145953283900171423830755083687358267744148283770001701293623544886811809474093160802008287901933816822164657021789812339223051423235803789902027497191077491836068273756041574919971496655924774448940490871675662685042764728889737187058669862408633328478050467532612039002018766973787422353632031443580268750120453467476585519228858457399397601102412446249150637736936957476449895499521897320717074605195019172728275189824036858359299677805618881752165732367246721325280632715634423540331095175591216761756807625624813688471675616132754779143162933749853662689436671690954166523485505194971738748614016015176754294355786222716876045727332628047329278809729185605857945199144591562501735357603412345147631609867856672925952289026025004052254270170861701149930403177350704548750642430135050629121472783988100952404653817870761603505349397404372135706881291524235847820947606512977798581665443711940073940223673349229939173462763686411414130153255782726859416606107377790701269334163235920509425462869977846382646143585936654025458445830108048040829567419049403181715900203804580266315854043976624799058254895981143786547546750985525968675614182678740313000351177191480914494893462578235292873858131761861524264429356767202609709964867005047499836572171561028487396124458514809239801946110302606032225300908515668120616283219110931288184048847617468395486558016704121556876709809521173158254535902774373805052234811342470832823784723467598118661629734677439218168779544019603151463145986065709441184243484002769464570892140921799312697628654994691428636406499517713009764865137588709145917887133680028443826645716161242653611172697244222604797247899112442761239750578861235935832613217551903188448422660849701170988412951772325114383528396768822841004700190019049821249199842870356311604725299163650199902214858527481728435060212045257955463150451100510031938486278232507629398123153983966280757636579490650099554058484510487802663799139337081068207063124103632776788113639885102372866265542304083184267404632283173916018052649459805191868591641086739531654973377833875814597131003286736643772226141988544035766977026963943576961701257087097447033602160300215095034620129600914508864669407864158061192388110164507335567220027521703576833739872869516117522794650373610834315063882420477774491317606870106535775113735727849366914621792858335806477805440654151050755608833145416626494908938792682813935618175971709230817659402823639326947083420227728215020577212859613181265855772112919813959173958647873275941746206852622646990623053610581040747338983962333493466844257034365864481103334724656086465189563101332480318282716917040489720126088119618880587909921469114887139257830600290584778441509615144432368696108992853205367784761580602028401840944978788292390271658059874671870984975481426454491068003849096847580914056988640484208173295154569340834287951925991279285877625248448544503337885100122103681660836644015281326070739059665616263542687713355770188293562950862320698392651591461403566460359015210370150223694371603756938667101115360376642636570498811496248505551275990804577395597886672304388064340378341539233276933424404176897606729939514782519607536733716495312564475581339747630245854904155057210443130964477127341721794620622600637880066489533282162783557499217740066383390446101874952334438184951119910715592805688891111144601160417316266217076618905563695492718060691863802253835936647187074789251141756295439376557301668104826124372125498642068761857351568007223076076334451949939684620923600726374677321288790933550571536362333764065454993944554690147641078828541462128882536681963016056489919486741248598041330963822642082218871618169668219620994709144741584612470263029681477236937205279192237904002514344362700084318980209254544044898563254380244858669619477473222240418866547265383471830401090893970807162026785838559876569296589027797201416318268058614404418988144966390788772919510444882116213006964305138532992330234427362599710334800608114382189328511735534499745592664702841794730692671914178095805701897560944627565326828693016397928674438548647297294105284564861525622400070062360105239772551353902715856006382702983039464624150748432573167945024654724282621812567382293554655215238646215372951532159563610108411070185266894195425235899645510740221322688462272064697895376894858437795863974730976100568773419070875780316456009976327040078840887126737128482130388076074496241512028090605274003868360805849471244430969092555399483843811563113995164232415255677809534176951640892938589196198984105486847655716209292548989772038007899660882263332664716207331982150942109062717040688334937600095975541578687595928448850519175010943181004533146351414334553964525041178258314110928621454737825352174419084156389528508802175067745772413418524765246758195587409440872209694930433912111278046462042196673779109009238709823364808090744603481750799434149706196300954607307889803802331412852618803416169828906238026518951041586906954507525150484223151707329589587597349005144932978265716278145030835343856352735528609318136535333494573348667798156779974427121691829429519216748049953597895556280621946570867841156334474514354162400490438085436786190601282136810424094129726111564500414103504022900354986931484539520919499135337507213551555346793692493515187995116151415893580347042108159031955593363708493150407198096094648710779645850325507119874583653000610146223114320308399328269529033991072995042019184416957282730174078016876979667254887251855562058288241292616935656494761974483523305556760250938018311596290364486695809169324881295445442037941300080172049120676997018201191394136708584647576984377122240977119472481847653537418633572586126545951917682530869902636382478307358119653134634716095882790402544857978336457632447943185294889920681743518200071250029498905986885112393892381534330274450329520870805792002539766207421922954484168223139381375248719246230255514152846925547377806128143866001800574033648100178990248047787524984809294280453743179750473039569958449817669549303723916774692757014236724143365018338002912751186502025634872882036954422827283530880039324335043199141768086493589163265589447461509473382180188680312795859161452866375290866224407085656045139941127954820444283782922450582911524639777807154826969766243614459942273391283297548563995177403470660916059366989494347658879777583593843876331981566912956360496381592597893839324131861347637311146566151248236764190389169724626232568555770943776783145631232593074538936623440469484285358993846636387358035520004025852292368396738829925718455071313313093287662731208179636221771589303604694268913548092079598174654352241529682847641322060543246489566746633134219100108243213083726047665358131363326683180414741127319066861860102449412193064082639857842351520504345396381448771538277280755224169328343608293867919861292557359636104985456613110965534163038016288761985626691208142459547114551125073090997311734580077013837113856878999554538557637264412851239203272523932357254545655536103804203552042798217332525166595046152828449882212348601836819584568629650430010459641444844588649855701615856616301479430857513253160530675557497251914461635256803095501033299218235248708117944960747979237102012924929473029655384580901076810436159882281094236950642363221203472185240209582803346178256939158974568859659148298977092666436825834545511919882953848378860449763666961836257050100915002976383967420765496656124210901888471075506470844854526957886345971623449807769805289735908011712534743838444019054402606521023848776263182034409271987493683988395373171058045553692729640960569390461848224844228760252510045640467514849379712989329918211063307668727715695571965423748119279349005225926376216091764731296008312449885966610247568134901977189398590873247138727343702848287412603189840663604757572693741111635907301083636579930632015001276721175288230719062077034349450031654891778898119207826752140647850531526074417031728692020511863119218084985868457637034211988075783198466722383682444295429054972454261738204774872641516581861006759284689293100783960787984484365552235432364095109211912406592609893366203308581899442739772663286777136230174675376589605531335531260608707776140324549239905907057852934863103433695638571235383224514503695279732910626211182297042481874121300745336089554600150216414916595217235595446042930171947752128000248371513665552579758518592306432189994201353490012469088880054015670908774860659071798883827745562075109766804815072376986471250055536203505618783733205176507234817533595506542783236997525731290684987481016281560837863235248074426574937178355670790394276614495078282196106646857485973527412920430572432439413483723067252805363935034272809523155013207481319901478955786957455239411491169619001585942641935427193925195895208003848482799104110155068973139229939499903392151985332536016330599267392438906062206659136009227279368543583845687620712043621862020637056820274382093987283709294947895827029637677535682349750777786757387539271555371126598252384083710926574808052670839886770554692629994872376120094878223631768176084244440498446815400599485711300462814442119873687572439998133673714380309617384703565081221648684541137429919439651710716088638255241060738524887725731829976122854205851195398549102805993068406356613637065645780653061571628177700067609264601356127188666021183377029097723910894247050578099382226755488355169674715994687804196401016274228420924466720832516024342479411714780162299425833481517342472956274905206868437380141660676881711026909060595667876853943613759279434420933201978865928314633795844118677806882774410014374105089399365896676441492896449673114015707731609722735755922963842113795679865370171676256716833875898508243001062023962901253438914265121825730216142036473653551479558469829544136171677105009814517680221824564314860408286132224871668352856647175441010232303388959791527421315343056431936141396132185341892341808126035120367295667108882834789194985412784435040856962842331823244886129937776971282901172763910909965767910205617383702006604457330924970115045589819192946870002419653322104795841965629423137572975240239639711828736481499788488103129887692885075376852978319839099751580856359229506624651783295808997567241902677090499633669218582218134998365545221959835273497425935407144138390208175885774150239247357786353636078126412262620996846600544116685732395895701588079718997545108284069002341951456516764781650937358370052177413378635705105018351590713697921430952744068511943792393229641273848672997313881809777779677317911607306660195040170769984064715347775647215665090284736906762732134013901751125583020960446493672666399377157810806961797263176085929550313962882465722059821497342418809387518270428057121219969693562100502308405347023596407401866330817975079270627576331457953162633083892643111514293433418855383902958645346043147951382360885772572482894269838992767324106477872028958880048346122373040802591624676302925115231075859941626995363338500336399948940023480656274662894677240893966099987937229324894454953311508387743001060606490123138566206260519979538573340996963141119710630359865991482692370046613928857703052085421395194974444073474517056908257786702886455376071474054474477219951173181715293315313374875652827155017241557245669653119356041194674296203447578082686696827188790036198207137934340898619253246163045410343534555963525482886104399068623869779724982678772236664213070577867623236087471639150242423802729512283251256592360000499530009753845714807948393603165643947338221540665346253603510467792703200625002270739707472531775771805880919402408071960275533511996191839116994985257713675542766065053174678746046863955373070970771599217059930996522979711764900952296202968252073563736026521232940379626305666187820526079535346586040672031574241320400806392023029946584786842512098160823133705229803222622066341883610170976177390433087666302399409196023995991482249904794475609422190703866066637799386629941104720046542812935923922407901953252691038380873443632911517161772150118949509148935110155536632191392897442014993784509350661197037133454156811938918358409949426129003058238092023672472588234532521842278351841488318913873982357711438918813800153735266612574498389910834097554794625064155704570784353206187372483863877302491853219283309643422094099085469472964279889610073400437888379758915538573251612125353153347393290610897733497620961564158560905546477104380610475402756265276525434110054991846695107567344242395982608226384210827661424651064222219717275624246041054846397571905283671611721034883038998678338392991387974845321692164008940095047131123425811055209295347819816689886995480346788602191020942764397964192247609963559499945287899609355233595138955922884210703379953918295329046383120362244192825158042804920922331318382270109864083801373506421009268592519803226237114096748531667923332404585723371822560411081120752934757953641676807911016013200411646067847338521843623716370073151539122805858254842979313797293957854419099269037616267763309402349465095560038987875089816320581879594992677448766173175315465552306442338548207421291580339942850433756193973925021011631428771769857287097603782901423772753650162167259411626896644024320397293383873069587806372345306015757232570713560137530916353909597679270997950668251699905942662538111320038488647814844132580797309445160711005655164932622982188880257849633884297584328491233004246483330974101429328952124160384251517376197921599653634231937135155209202409583987863884813212328799275602434449544956302131805021041853369237188712829872959212979450635491348095184114893920387211030696360587049527213756533176431461471721798483720235823218513275001247811596375664281183967159034387765164470984725306415185262990720293820913752153724980792406412492933337424012550184140186548131240993745137955354741840772664629106141117134360062079361459223983543825388622513093505922309234641797552249741440360692434297246438004995568901006823108816192122404586654571739580659633202894669119798005966100847730436195092013212347916783830586905637119089967969605257495063224477971892412473777187585440856384420152993839554760311281255811050970384598519626618598858952227746920643431933912670098390208396858945143010733504005640702142777713733466524263968036374804030285648991175310925303281766402887104951097556333795731433586935857096696247326489714114294937797555199213920482203353515906836955680339568542521037006366834806534367901740157032143309044060463454901468490193569460165825729084157039164861873276362433394391571735329696572693169358297508356258240740681315026463200630004167757323113497279596893284703981499494300727382253755257335630454737550666537003824302525784154923181723747511861798088205229780894743507211005367439678214035898124613154895393776058214739123938971421532767749664056739408654058196750150702988319861182340710206182507233084109919010742223673439709098318801476717782200664462877366810602322952575915349615434255898166570936921794965951315231107165694459478196342644505766934663486050636016979421823680691502421335767118137174485807997071012441593512830531342341551647488923058941085247480878767113218716447050354307370425907688594066966151126590815727692442652747106317760150313574666774347723835355291243272793310268062584033332653950089314517606697747309134217154669089903353928666484603687641042305984371647675878950521669071296851131739573462058601342654822262744954404965242008151923627673915139736354108764766999934145279896060520157257029853102007394952751689041716981863839284532593943976167124229809894922068184691533837226090105146720817599793223333666369230679715720031140221115014460682026995451782060574596505941975345055117606092168575965426626013752853144724793909185109818495249192844890837533226076695119459451988719464256431396954901124547272897815324408984195170543937597940046322697785826864117480565109015411022592121414957997333327709848629802331413113568821262755577435198586103945490150414804078852079588222198934286356465754577262302846567284600896295323602163972487751443563377600220308194210313623020204494972522844547563046762877030728623327852589029939858511590836045003679051256844286231345893701499896224313771587411430836441964818516754569144344690534589697049048206187170449503007510658473288464467683890700613795518259628504943558881205408230317547539244360657749462080677365916066065658691260450071947770527678685023506506864173650619212668598186355248566807277411634419703953034176354297245519855668170770107918597930311914203513396306060750564718543197893676198464374840851699851442711524460668761044250763510076193521517539723864330751993451902583524342744310990369897521645455102506280369865076725149608370440355795989188887338025836493507348165293668825575692050445118020747486231212621302124096639477873805347220768236373060173185933940557025674451542457517987978514342090205087448352826270913900220579381611435134343030884620841440891349317670547880225969692148084830280180920640256261025828258800802580492439238177768280155457227291037014475057317546612337746817978123546239414393091448184473450045058339550733854788170006211047730462298075066960102681302887396665343596280530088042160952651883311266111725237484158857435734347599237619064773683442962636680329345111690937761620644055826092890270664889014619761710134322129614470759116811669932507138315921836876128065857547385826405262311637133341724274112285699996423666445310238576487834962644660427914387717873235615414387415620635483180272300731413355238467723946402286534053081812369357284888937702886083499790288387320587300160311552635511501124061072719488442908748232807537546260143621722221393801435141316258026050234940570687688249516409201663934603481794336323608375510975077166686312244185951406901996526911759342804589878756539216872694414144713789412988456069529566154077276429297663658902610603536791258344382816570051944063277531529900115287133862928532214685249145799368541371942029546105562236254375491518204514539371527536823172472660748226925876209601707657179628890762632783633283508575012574597392164211747217592380738399218249394450917052108652619359111453288493530864584855981296765017221323333937747981580356185665738297316500942965033447529462312262226617893236575742975263153188380253467440919762870821082312338439522875959453854410163442727872288314725198770129798334781036220598410186586438736784038592851659537565388464455449502800329733253825107763110455937930031367647836124102984110525793023638977290817957319484009390814227637927908071500658977507460404128484013725216503205757036120931981311735434116299802494663910067012349211840677087348248749462614929080971703628734084249935606953838059805583019953047585913903418616678113908286708424015745675054633472633593847390473985266842273990742056757932664001310221076018984540569680932907758970083557760836385164445105831494843461687208444234401671006001943861397508285528905458022373273477591546221756510918989682938517460632398394210411763490216056333680793414344108608250206610711820305575174698772448824703307782140656991641743741539911559847902850456444326804479006133791334475195441711043467313284080692979610821129167928456821261042030275440131134942591297769491989081805692958265646340416802887620052328664369672852273701293027388946089314973817620926524052121135250792982310412867858304249031108757017309283444908176089217034387093795031118006375540355809691393623113914141206169050066565247616358310972272522769675219006504551354996713431609431201161859598209810357278259946554687706559108229929290990451580474522321921152074671951541840079316543303987913544150759787871445295295010554481057052870183132729941862385853450312180592818584159158345258203874997189483079403918314418265109455608020781605614226210096153229473471201036915679007781870839933064031222720450069612062075352464695998485694211968566537706266834557505943703854269491359658273657205568332127341765813084080424803529155054996323757424727072057411170012192477786764561908904879718685332871233236736357378544769682104893594773367245626094074992533102298904555063600586857555919594475172163181360231235488862692890437063506112395611063187149259552924803153900063845863559538178667408247923807269756773894594030211558936186633295096158824453724782707775271172787999249764960877756207954818257354719971504121476245619291418155625130876813425069842980170349099773272931950452561572903190493896088600665504819452342942947820910686316104064551051018982950312165291450105484946999062762697690402352047037571841602232740872214084864517784026758478697758232664518691879101043887921961148080879279281640574631298105675982671363797651578513452895724232770105137559530705192053018685137703219915779652829882661755506254644825917734287673306455833625096541959172610892421562484805293778004225482698530535797063568551143500982467447179166982419019807124128703160379695233543875103152499018315369314056980734787489365453958993644104942842977548740462411855620949535221351134889126341036826264759208279305674938916723888871285593230565977047875785918276204173270770585742192313830256049437658862487885868621120701782430608251940158782238845321434033646938537635079091783180365201670545946518559889453010509682323741430945523720005546173421373658495677655974409663467112329770220501625150399092225221345006965799328525025394526123435331776798424867062439390207758112231432935730375100114533680994794897363778779683914772569012721567930175098777069072399854953571259932629059638604406069886432036993972407046420500955799929393247370941906109757668249639489615893290814726992502065111907288620692567987865918520700843709959094417770437090608750860399690875371742379305466111548803210080356914326869821261041652747144941127193663217734815786536225825843483625020020548042747451472294834391351551261686432016101753760694127206728388180572059333615224561050409595082130128898996142875319977127294439626648431502101294174856002543408579261226421044816058727439569611615610004571573413154309660303981397678418725185583128585609503942144261719558408258676574355290340732180206441167445645189734342630835011213011929516744897546883939904520545189881108972204459667435775563974867008490401687360775154509296097792361976777432554108907332776963451455183676539456176736575484507923222666434537905320356570628093241608895674977723608994047854972852079027728924045934155970406503212966621749798467459990191787021919348122223352429986580327646631124812306247091391276277860460745430383380598781268397833335820146412655408451450513667806863006597753375071009281709394151228558319438584135772943488273861188340267652511222276422060361746816834466842701724101418072683266445317201030471554380318648245584498002995896581827431049514473814091876066992769493435128036663131015156182098781107215953038852748002333471427573799533186842846899860861194611051152029743651335673929685472446920856818312879492275975869543349279003701454310638529831790789191966729544281000831428380068049376938578002857744927642630558264449016630936841432001163347960395059579901709116378066467609709800024832776953348467907788379774551222041810238174321983383168757346992939123173096707977090449281036361525614903391117124199019439283136846881764671276207580105209259339391607208656867735267961652983612792542037532635783883318638619712207713593563043788747636876062991365585393276492136954644671114604682409269795969800219316369300143047930532374092287101551452955693338986256615526963723261796107233169187859958807799199152920130705758600162070436498419701211371766584439597741075712536106659760886338144933415291843328060423174853868497513524860578710398169930058868716126436027505706142079812210346163707991319169138374609498965263555964172841096837034074071151947152084694705481630735297089157929277519299807077436585805826083447281181620917253757038075417169705563650739187652355441458845034128551344888749333663029593221581343895560393954749910796830196025288087640222687267763090383046187809116275636135836427570727482539367800883672263892483967934711125191798904146337645178533176349565950069001382088792593026429917292056668108492680908349727718058778875315984216494627756973379996454561790488371652043252208831122561506059888148449839197674435026727357327935685369128344548680774338634277124963842086160001714150434040212763034522407357894750991504797169090236492267891062758793194839381060520110426412358706396982801643468001741029956863831145632568486066582281843729726859784347579848755563305458164451641657580304942263193240030648254319217566279396720291613809933881380284322202358300067333252127436321724532532771596869346277200716594417617129039892821393273920587032247332746061199973073565461255606042534561039841289923034763080928674138560956292232637412731488145439498482853835954573936385010040056138355298702268370996050987905056367367359191662990529818505782080023662084663520972375768004355401953883845686163116331159587281472655323327654473643745098929731779330537434964937599352459923875585695238860082493294599235682178130854944642368731814541051613082727172601488982462717619934548744971761155821335090307783321436539134594743091275824601432648017814974383142465193268266865285428979458966913826020033494010079691701239379237631516996026525423595713519593091928138552044385624076804433089636565372419429263041664814492733498289640841712111321515732857443245440568021300653030404391403936484369171915626771363807583200848185108565508169972361982036655676493286457442683839362948906590363994657583695734991096593743663036697511741615247164574946856171636787797724474503656537549054451570551892674257342084078043540498238918713194944475766653963961584385999133593874175470037789070227088182415108002086705133392093506284282804918600352370239025743603130608792155433187383775541771696415916493016866099949349229222280140096792872680918542133137507223928349388121168265310611277587316482955867232779219928910845156874261219110431628114446353001170865855776861028242056096096631193774202944756432659077934823779206761169739757304505161076258564935495683331623329219687992676641804665794873026557393718214035182993896983506904375298227518292291622610011170631918456935628143753780038153685685519406233589197081319403174480109750143333510876303750384627140055692945694414090933570226207159655058651669358706378422005218557706242168331227764364217617241561949334757696865973371186288946105572802641173588164352173318785608575870257993010728239007650758673306998982649277653972323505957694749612240162821891166409880658936079791245291301813321513049522173323842083898583791465162767716616169504098465651325484327973283648942993093760165784657437826423111029414865466630892066200948310309943934737885203025640447645836657633298098189462025631196495807850949028250929140030878673675548615467846330416042421212830893847378499101381695989397767634480482498449287918710694656490914794491849467842491375109121834157751835204464071486730483216161201131032328325864103861536286534982528505266306864300038535595877443693062528904829472162707020982424842991396240330548490785487086126871539913940584937935895550925422151993022233171033736502779947729625483575654354223818781416859296918285684502180936368538762720020845548908762980503680587656467919342553731892933498085762456824142360674695052790425976420576114516665202923037234629360527310475830796309682466236701494515699357425672119473447991671801362479298588426011989109214037449514184021435253906963220276751408270936223893607373412657678509300188505881487956013968028484599819749074352736077997272608540799372741588455156463556599402475346447519657408427932871243167760292601565492833049413685400787242040496908521782983616009842283617606183609752120281425832539067843911055249288910260710044742088091414111041870357616863891583521722597570079643273548293273691969963728152276748184896702122261396059794424412408261705314239836655397921918012794161652159012283849534952838525932250866172266742747288187637749785244761629782118278533171891938672503446452405645068409605378440180886998956395044305679493492226331548870355670789058709311959392797887667955698763417042778210926410277683974760372251010635733031688048045501971053228265743199736573512759446455457905077721681566179051216246941410760543483467061564621944583441705638673596026283637355621507816527004203127420187687453323382184868875211647605479670711249974006596536239352935217110307362260746316592787330080836553047039738233613138339636534060854452764768484840436218313159501430857776527186403496356802000630903892747815801087325913644365661718804818186892313699851864128086271819114632066161922439590896360075708691403870336390804838144477839807111409522166652703087792242702405728248569921900238371650380601925447595285971894711718050402405308811249661226359865445233765616135505746637268295596254684495919512916055655762609149697486952831187183092732485198932065014386871199796681759806040020581021571942616397565637407194093034696128028665316116682851353299868514109142489559041856253820855007462713532876749001266643452768014781374180545540612200893562145298447502773073886607806874770180792505847341514480212588931682312247727285238780511724559357266145373588233123584202665273739888946530030721296815832714148760825255552196879767247276981753278699599356721678328050824119086947005891242159007276006928276452441891580606370351240858836674124401047123434043358340135300452375607669649589894838012534980785147987096446216331091631843754569357472067269586170815297388616055022020682801705117371349967496108551209318667248012761750518652889808089416629285355591512484730127348814417193489540063549992870486044317430238712515181290745067659206110329439566231114925560599259375330552318872695372287694297310367774619683943821088584730605608210585488201299520609627398697195521978063073071835138611504867774949981788096321201764856970866808360069772369904150040616527258814685863516414472866244859739956746565227413540435259650101206139561805000983697994412576106634778454402702979941186195282702879977699364245859361489085890236845255124891714451111070930889273356769186104049211825050435382442523674351915786382114356952056212715551895701032700098979260195685131165986967148293193482459981085677915483317721941393850668229269081245647092122314740175690858768576918053269087234681312189639435299818222311837550354569967263663926068976579967161340091709850783397511539394629101301677929970181271889039244474817160573688731311941948240165961053075868841957656200376974270999633644959514387144271915445895369079992868366264157013190509220389236318531277951894632683288947443106998197326934704900516555579790233961807965721250052926250603829959536339711634849704146765752766851726433733340576303678768004782444428022456513330923553976709426121537345405924607324105814303628935843699602762628247977294011997624942082861885639414102310043652368104973111303382429973576002148474811803924116072932582855044840120622141100227342654161994403058469482694175593949117547518593187178827584752152988589153949903356828486792640489924512772333682131728737004355201827996757927200149820866361960579220810823689562874022817853788196660082064175818770572015090579103554082194714906615361022507198672271952431128497254218027656238278216747424505987839529780158264928342926647359667096242592638613517534362479414690355086725906726307285351521213138722429160222952256918897724444645634466980803009117180527792181754339966950354513867026486669525501386548613092117942623419327412121122726606502124270370211323771496886525794481670223987860322399151117246004009920631636372895967652616218026806470328938348945370215013095805978805304380968504046218984990906451851960423703784745641790757306642500007383550578769531659181265096304578431872284849803123826388736185085051442992899035155034680018895984844951671446223959886519873991604458473028340689777459640245001251739614247824263629152339191705752371755153524384875856190191414846792337243930706861251357805388479450007265602431630353366157956427061319914061670852054209629222093697718649976401869184576875309276966818102759292492730274230664341089469306717786662745187798269667657173622730695971556005058551431085196291606699109036908053576635370554943386737017506735680191051852016567578832123306094170766983017297839307267810172245467932742789579722539615136512257528780359458295919036421382032050641213527696815546061437257044963925619481568161735575827700185647950816692737535591997200968490141299767763365479719736787515038480086740635977199922686231913760790245492161966046328667989273059267499550963706371763873215825837322576431464560297907951560365360351597137463348768658184200357147386713002040334719951556705869388565109079324568716686051678031303353862664588206883050611265252968878571283101314416265069975657731494084453888344856098942757916567935121208448891646491834811482711265526536582889449720467082846773038452652807574300965459213050542873895976594286886279304455732688309047806494948839188158625280064549928147482669844472127268616036533017495668149943606982437371804410478950519051457592180498109247961766747050828967116979141714781481612873426525368336948542404891044369349564612028878474439129620463859611951149145417453981682050593919473090642053362329980625200147918334927216939158179009309003413342140612527070201125242437479832122193927974933992669671784986329466895346815510246704688663502830767576411504426024001285263547992638877788741168008944403201609880206222171266236165909589640490689475105229586084888677845238115146296203894281050241730602921209219576057466660167193623236753936713335692788848687275708681141853328235203895258558977959290465361879728376507236681714042391659643042608976769394394515263169085908633165384543521357126531149874534307591093578772496077706283454935630897314756492767955819347257944523820938478265560379321950464693278401863012873614368501527423993308866142275698349915630284008065785926487711941723548565335565361268430318034917204426438951850404588261072670347326058752709448557287452548010291090375350877842147201988257688322067437610917297887113607624545729361428977245168161113711244193686359178933501101184512012742968584762232991722583100791328990630028860242136064737348194146200597408302189468297360612838048113885142858222106449185793224115491571965027703650227371519712763894094769691109011558934044722263754033857728605701124293959149010650448338293404384852599584939995202887100387791659632215747279378093296834410518776931105709610415254932475702022285648247621994532000026528896840907886281945427000563072354799690481777689698442061426492109231926080333423621064763125283857785322497734428257662587788703050351996755105509884852957833774125451016945460695442390752026622027946802497778371471944538569208959510661746194032893678548922342258564358526486859464241315568735082655401988816122712727515309579137330455173994322363483858826814693163230961702102766764664926501876314767025204430206890298786374391045784567791098019820067782623683738567096011592693939627878345657783500933677173406751581483517289648270431381528119155346248352552332807603595679783459615595354987864605594042621456821918383184194872574053797611992720089302907577423213224790034785764433448246092986993829976628307761623479461524806608198752751603501165177778208553146305289032022625876679187155346955697679246277603669172945724152514013648760526734432133757635693659387240395112730130327785321075061621567122366639782644510146965969250141479847821800408569972078355051373889802492328942378625281220046080117321315938213289629275307693437140506447307505059865784872646512049868932693216219630837607863005732214409889353609782917556196562242726981428337487469378450325053043605599034411299955854355343701380620480065493352138212416335201865040768336185335702372780428771074473099633480927528593730695567759532819433151953907642839451862092987165932438402088293883798111462499010420093529666337774270754061132350894569477846035073197108028275791667672548816642631184649082428816342941314411102650970941435696624073326047585557537865318840166392409185649876703695563142374958914929720764033734959749411635210013819480199900715342264936913797225751107918949740032816870062878358510913320681407564649473263228617489041042961511145374028276333584541956861670744677482681233844487106183591592978486339442338486040387235111170059181322942942098360509886798673901656574803614744090599400570380437947044623685065683054651597584326514310770548030682589379655884986456577097503270421217732561434766337688434256516859346339915354922116830534255341339687994016811617126986255003713407273703166901435557369145667246020749345127893389239478306419272674770882638430834407116427430102226494056179355655016661739990134483121269402769836500516452256394329275851106771645467419773461339667163238854343948091176827584857750551601324109988535482032911432650455471581208913609700848838321699152370669718154784962026665377155291738203720879734623349722922051454583430162475806392260240855887287107415262546725173958246977772815775805895410794770514198974928254253477784350847043595889289204009037503071663453101011442943523923984409402906703106380997291041288509105040367846546113961298211237749254701832318459131249610764488836172317817780157175765529287886686813567040194772032277238685257110835536648229836121471441539249744865433183604284518190396161782751622331559146727252572750911852412550410975513587566229002027314123201561075496851922211818562621458415501306570724591922598077663093140112132007866102642522142898059680203188961448905542194824405833381215242886195847784487886736534335349639087973050695024637299943859181708318771370187248139579917470270362328221572689354057827921967663313107971636695332210254702554146746825021795940337826241149406539415893053330944240094238047881984090081736075071452841823178989136863709474847655728076069061900726735775991038299998711486407857674470827972907591486815319866808806463032183640854985243672736939091557333621511146157560156562902181137163327565758688530527134600984031264716046165308589297384497532211606237087698710445319542911483989164901039010631070666994376377092737588734786847351885012199898699122031582533367385013674773624704513198764389039895075631799389627869394864717282870911544698560332618211821450487462300969914074804456506640602190750471331792813624444640281593791760953102674905462141975717342311407823017016476440784177021728260335371275265943295054864653772839494810996643444963825043057153189967297160018855633601619376431273149375097211013138300816682470898331567051519222141023190136651006545606982857688644914603108090323882605932527049348532229227564517797600650467683598924689568469555516775810243624629318545489509260864303236032183946980132573187571647690161714470428083554261685525032582974735755337512755881823949813932051058941591585118489725060213123171667038657193270199994571661953210073225451948129399068651269823467655008417666477531707540705834057856160291670249911390970241106947336962714551193505456770409664037776862973331226027045548056100630566441967083279867707969326170410156675421182648865455223861746338940120290702873161167740072550287030922532795822309141359709430737774412133778365216753742081284437372499027457165662522415621442691517442556542876812440743331887832558934595052344481592803755760184614091564592306276183625386053209494894768686616943871365483644069175505799691595891982641725963823075596448903955882528151600906871118219627869862529109450522779788515408631737985345120521046983019878605499330517021985285475562834153877935353162161938913141150455053734028547430192017599360373908254832257287528357249759707638277446646833597682021332212365487571581586129697458145421762132768622210480356321404473628820518083371617112906922962407629673622618700901482749152240437567717546094571498841016389925934123957167247329363361578840031213803082044503570280155912853055620539073534153895814364191656000350469811811592285038906163719026383170888176836882435073287143744134270921811625384332693475939888799193116977714756851559512997586990545659632072766602079840342444610096878048789430206353451323793639400551389349120554041870633971545975138657781004240991898952370938490698156130059649094172181714985260522299878147885794347768257991636186504567332554838535036512934155994677600593428665056212710130741900284947218738319959687864529476636608239739028473177521448111874125448741299147967287509510344581781699285025467243247079733021453927545567890159030622724151192714434415336592633741263549790606887043262773956436517701345461694772675938858770233528679951225575780522951392968349331812258507677837708962977615928714004080999064446190952074504989901030554197992880970815716436391851565897348149151625779980600177481447981601424170589993881406041655067090032549057988561358934374661951911908836141755641523713292071092702104461285961807566597085563703420586448266985316399374458492442463118266833157540294744650825974450386113536584785964179010828865401719548310217253378310996488103000884279530021709760250260285752157580188448601761626061671931725285882076060783601161417894995901835856411022437177045235091339284096539162517223132179737879555753668544272437334322626530952392369200345895782452929674045315459992718714693990364337035727639116430753333652299996722783892146034143115799861002939455446032946568915362617802510549709937016370060391041511494784390424843635343622459613849165617150518855650327316618617509394409161188970989357418381007848402381043779437089211320506251875451948178104719783086720676269449505604571259653130703166925524477161832885012287344231911270180219246437714611381015032661139265029744405154717563255949543817098089526633095411277666480573244435090248537659382323083365725059806693664593524326515257761047881043775494159902468804298397979475722064319263989809903479105660661972859986944509800358875993252588893382943478693115852376861828239358945155550486007004210169575821932276439425942561007871966743324520472753429762475011996320287902785672329403355182194858331966848145626563859759326556416401593216566418532660690885964138282088051499072942224104362139988296998345509902680683139612684408476779084868802721171958765372994180031820886645232484539113190285985786797778154065451697886431098839208645864814076656546167131494828166324339660953172566191461527702558885918382761262648095495588799496035106267312017972218012953932559346439614867742855092711904334669481923581740793643157740855144623574422038950102281506094405150520401607365112145230740675634926439966171972784953027005050335140324662350637355833245049725616271854082772244512202411331467988861856630248852766409633084153109296883064130632312505632817480544945378492586591921825135892233260674290321328029689591079499300622642587356993666867978157620995846028657036110241032250996168661271267836931940364084840016137167844215851736088473365305561976693095405808290170875834719589122209947566078930091913612865963838608964638594375733581534066831056401796784386913878907562479854551367642357495222854460447235946176388759092359377292556138200091201595615420305080898250600065713533820547567556138324551890962530913358806946606462916813653965385071805593958151275317192116829933952599153194172616583416766683876050541020367806280444182143949844937832355197253600736904998325742334843583651850945846227726375237243197202693916924781222285829777369120492679229035525927326028048058856982145641907129160758789647593907763845745493677540349830274866568689598158445431757865431318429674203673387670279076588618171349464999679128111962007588057745707672262613410976910383974387783864298011012298019066308777531331184663934819622568344025757958106026991136449940758781882316280149605796030083543027016472425259508971801062255689597935924738812982688982128301611394450498238886169337380439262934377185305962569603271897964685300947586926855296409055854928386705546972836038455126866602897138747978533997446250889010511452809275016334310276373273972846076875686691341003230216995787754799379830741397622787217361494146604257249722134305277659420040421212170552703974779361005943302743198429850362112813831609269507136720506640888429525736866624979313583143339155112755386767320636139155152695380016078119425166092647182748999908373808228612831046675147295223266059878568842157290478827846671933060964837436339153210168426398671459628039211865225478782635932595514209422263143764314051937703920211391820290798536716036104860799016340754225062410440757160866035349587145346431248095729828287866614265105936792673118318075296175244047972317413402236719044045012519595896359419190481652691882508302896238015150242358769416176303022152496774219808848422199656649370198363180308936633549747128842224789000881297852036821714772196078457514681280267936256847528389549905814214292233727185685959504449129009317578945022907534000335337601275911416261091344367588934775869707040898509383526583704459032025361164342319750705856454317370262783291174737631455308925420171227344417512903225734639354518151898277534517897032379799368351105188508919316912100245148894243108309529930334790251436593975866363000077362688154149180014617063232212550206773677154605060357024596118569361713280035261177008856949023347745731905695270028668284375117459401511145026771933245010961651452215433136575871033587988450712356819624736777711857326587593805593334554180167568840340031662143361530436635584626107000509181407192891790731864063084200583498191153915717776909226168348378847526608497766964354925822309905468012656250277436175654448463745861259584902466775788512345162037921772116975874138501804418539439098747376931268342639184421602252717068161150234408440783361728505496643385133279595978777185923964934845089015741586289778591385345461083590124300186952558038151723746911181763439229802372001034899075565191151856892804081662102303245996704927524477378701104974927823551377975789915155608353759104892807809145532597122137866069382437756526288039183203694763424050331552450457799804021983254205353757261320085473679076043308324663616850464833475489130064125617023279792333192821071038475089538472754644098414957975995048580469707450634145201804021487571023000453074504340546995787954755581719656031486464773165376714597576891811847833357037602464559519285679273038194811127236044428581938556625130530216532891980630222074247694576395186832550841548221732165982692024566076962498498122566992670671728471315440953717324164156532396095393603935512363091030463112681561653086659368568011766456261410132598758556800597194713127192533731943586723245703773500533170396735084961105314152814955404057030808766709461233020105738058588374447166655791886586020432532843430167298173579639671420257486913738663581328593538259452460884102686569799894416607704960447421282492374339428247108836120794598302379655783971648791878120041809099673434196357254006930764058888039123354363401248920632510894135202279613193174113816934207235026553534504676582975115756387345701988096660389913071181291139582324994669297143981539083460206426180045888489941193327832007050846655073742839787321402286805671102006547789305952955909422097764114302871096351599785808723074546814815130751334471413698001052387266130989759783612356302267888479163566149083598970915694000577384331097324125742882694012647646213728650068314161728854496712174644898421999432968405762224359446521349035768244736878515070697399651693111351092465820038748069002633456115236258218570193520813306909667162796942134132445510774397252104891433014663854841995288142783395480690034050387988942665930589401637280278822225339744041579652373345260857037204282552685080282001333238079738606549677111401658684988239734810421268686045347788748641440347185563675656330027224639718356212635176263663793668257495468729786761690241402165510173625733868840223100830988346407082384898339812681565035894931584234048598631722626617936850381215348971159430356835777218543983760997335995928759943930279436920805178300812176034311097657001169659491266682910846266339947765495533867263031144076036670195490972069699644741104560189474793575350042782689239876659342896543551957621961896568884386223306289941149997385484859834241512447567209758816612966140207503528690729602143236314206619135069293138924942947696991675799919624990096699907699580035603395604885055077336390585950018035109302081204086123460939605567254170255390265313183201997500610279153286431150048033826388227306562853458907390285632494934502074387266184844298426581727067980603391696119938555104582289189276698373080510254583748763108932119263158496155545446606127291501375229939464040316978688646137957122357878082327157089147997212972670508351916740276449894021155284439298929254150417479356544222698788671596995122200828407923471045184503728562966767101754470689639633832085989054978218675509678550595233853086442687688622209745732840455203377257400979872560911498224652432905931150007508641253273412404018417448298447876236107520815626856269829388601268135053893659821145103253320277616718116151307095449676325489438227934385033329007600752851593036425592794158051558360035332041249155985889268617093181477319565056864023062353349135429565260803276027794938356754033766409311270340645782327025294497477217219446919901976788387613351781281463410369817663575362802661652076392487921821830104414797138905447251290106014315105595841330218557303928586957928799481829992116777261582662872562296173128822935773397695237376182468940001986813960473551357366512441287781613219328456551184912852590601532444615745487069066030266398253195899299914661159926806187196539453521513993907066151099877403359082924573629938861154251853818171031696590196924477266900541442862883115017623844497239334148458672369793523293099958934718310201379842491162624356479691542255122558008676103744227194855819123090571797932555645610065737102493777894380123656002803942489915053045122798072807106097629622795712450392545275874670539720227081866587684617428891328683293224182968011508726449680008243166172460454525116762498244140636221258661803170354212413500911970418093548523732497971201464184886096619009809171480904330183488948190537255796450163498162602077640735597196659983427860695839139821241556858149179540316944918711531091664198811516372515268552901228959928323546395501813766335614315067212691399325655007541350064158563171338329975710444385260632665614200410294281033145174515190336931040685518205440374516925737404191481999189617575427679891570813519891961834354854308312407461913968404679221228411953152515593638338436170651154492594550194816682057761470191816573626172899748209055397300282032244401689018196792242986197648361670975332762611181794348840525189899954955232831370913207293772248029412055957846694318217051206827872000489461013785912081785633157696239691207573880618829472185460565363672068191967592585267681902170632593948139871510368603024405505779494575673926637484456675081105419143995671310039043501789580241799679677767039394584366383712481855778411692509386812905141594769206257251771426542361731009196618267319413279577733074960743730866138491261283483656840538195969000884040452152059061246943110554039779152864064076387629399539643064328036286294013739595898606169002919523789209616718027685556851650417009324451895385383065413185922607659239202828800824954353169686359897725791135034419736151822978722938964867629440585691714359187401201124496912559208021122897023122641024811143765687864012142381769170011106330046042185638679778798158828023277425519401632621422950564939598644662716081504134154774793616571631876895946203498961973044620451316084572861024419719289382818756317764350963563796820309676103441829318610730726337611548019151364732182553890612234770914783996822935181027911726882950361632215318102472274656686277153686443448917757604568758375414623458921537629925653418066714245169405420748270242114780772211429546395896670258275488303583608240828901578195628937353133950871984416082891678022542731565236530081503710299198845010144249889321651191781756746078796776382191756494192093507307204416442259502599299369437789693564878485674395829722016171354607502829702474152610330839938343393531738486526959331467442519870772645597690188127849382251325643096962929788203299239568715054692609596697193366374267833622421718153611330927764073946311978451537646780498677594785938960343775648616994297589614403918085213676857032514435299995945108880563578311745932790896542056707633339165287184325608100796888966759493035534072159456982688500028358306302546103990502175032544384423677189496300895323725561220524180049991897330014535191790467526589133175258957556259062779447374326133449913387227107899087223822674708780656440563722328337807131693099533695078467073694058079264415634786972015866628645157890291731677620459201368860469521767126643384955449099181866905701726844596410900122343030827960250858560100116298842818261466305975382137605252608069702942797617696301661939435661996402666480787443169633676575192478368722520069320134071661459249662001407523687197729465278980846370299831518534358125878355800619898133891976187354060862491207377236523354101142145785616021374641222651362520592829705237701285667034343923178486040375600803122798069565378837666360449830530006297747983630609612127779456180890967328238149548333998604705130461875374787185085318426403700781882338558576994859176871970743551981831208847572677620523322501683654526130996356816450532085072651194078695330616136684493761012029363722206118885449425996666583980270484771780681870475300679020415424073894101532242993990486169465267986478675531566295891331197406736837700039964207082439304730651298453698415935785197881698456309652233254109842339889713301907833926393883476777816739773487265114689834354626375701416197756590639028701086599570069495327375945120473933554002258307494373402428403390784858500946440435013568014172513915137935871399834722024483120590848002928295095773275632030814158752191382063425737846147291307590479670951580211148800953695499922837475101739174401752732357848425478812408570966810992897641894514399989644627346389362637466372285467588438442867312524755947244410695458251627302867659261243828216271523795571104758680312982569519837490790551324737247894705595881250780592239514252112104493829844560900600393155336551973923710733628841974033623423399005274248159457279109412106518068200259038526533020994241420841163664549016596982819679786992503371028466446603151955564669845971683314442091612556920657900325889111329492588578461714969451629380321105467310642180876586246437950852078807935973559777142047855414644555772692515283302562726094742461638649595516607636043928172975691745853492036379573078534626681831318611128956426840469013465411914861276800399857823541952848488146745310527658717808449571210332315714474067797921817528316556087625562946778037680942178315694902538517038564818914692869257989696350523490615050195963912905452675956723329258258994949715524846454484437082147764702748844666939169963121498077208858260232617062906411582284428484444224163372333016095472097072306543955783145020101196788467364008805293181955448284919152862948794717301874850060964383288021926577778848773549744499090264323441132452863484424369595230891308679634616314478141354671861838514617925464309702257521855291351949466997204123018712573717049402664769940477528440613967359169662888573447569151163598666667740467695680129561107631246610349634163016265010100378522007078477874283617671351420075349186222568931968139582370243342022628799444763898654885591662388432607387734422639912220024302254348395750205147501179413946851042932953933220273248278837762234502196965600437204086575494274602373058260662922584532398433172892183649292949514143335217716964739567716014488494318881395197655105464383495488292463861347327167746021783786531766349723399780669749587393052748664425427059364171703480422708107883915914493601366230176552457598417965843211298576238711012201158379140787638731020499635343278869404530282665304267892942035393223346413586492666795459399547923977434942135277371711175963691921700757348894901295966629442772116077459843967994335729536901177604907672214891510616838795323459789609560705914628536779129855504897021871452843928434377445145766122639979647592666852145821231832512962195624872404832996527495351459955758656683295623922602163464367229574091045972382078841472550671685102914487792640538068344533886604486666354203354820147230973267274529506890635764869323586945261530290911741712350826758136742031344412274589155838914559654466283528880660231023552083875623684461721591366384722616345381562907645595708905499945381563941945321262175785586802738786443463171341965242670056248354544389650791941210079488574804052387511120708761702241872697957752396330723229020423691655073033353291851028488812192362816235653609802680786245042562799491497184288201700786894891525486859228234870501330151905311860399081246550115426780122020335561743402340524720475973694173797826477380613729906774868822862413394145189339028711419336749627924353983387424467526510947627213512682475935871866216369870316934603567732399240340913948159352363235414258153591055121730222116654299333643747663051519135739354748938466157753592685508530301807029290106908501328796744304106861705123084215118078175576679979461478180335290838697135273432780243152563670689166361277005040585698818706271787302643081310613381080118702455802076805352860967558206243362205799352425003590740055716729490385609113951232481456666482311883264954505721121268703260920880929405909799373476274669356462899486014870029993515313999765996916583116019215193666249622936224521908269146316321649433368441343313306053567048197313347126368164126395946197150331779001305591689011050390354889918991615143544497311721667961303663992550249229272485724204489873110591037060699069328950418003988190058463173525624754341464476000572226305797972939828178602535052988987931131778497705240893663389462671440970612933997707250439391653426330715078953715146393365781510697102487421140548556489573863095804178633645430521852169149340231147574869105585785052228899391756677529292498992349184732421804664333921240473339741383748863371096217880042961946447824172595877429873562376141094849391068878387327245163987975249257444480045594251070543024604114328041310150940419780689149531322935362209854738623129335569289853450960949896158259872218890178870676177651872365092393542860685472657605160342943633350671496192422589578184913303454540057978387224298810482470547053153036004186711856221423848744823399062037011438742388520580199487810287411024665177599248316175709912558741516824413720002597048755429166497509467434971198379622363994672222591127852207039015160431293641809558994034457964327529945678692568749331590592133740438005143788358424355281033090333874499329455497296966349698668169109887423207383702008953461456888049665564363474155355602289902940620169071986951926817916122255769299412994858957510789396381346697278118039962562202169939988093739343582481572509086262144749608774513721216292684518238389151557279446711508940918110321029736035487112838641260366999471046718955033337872156329255295118618575951749687828310107522860413160008613998568156844919995594162438791549048955967230314635691274006911735062354909358299412703171076899055983277093699622659831568555124965248369804147380873003173720531775533398776914752277064855714096723430718282552376221894205352200811876421804742739138192178505891627527152929353319501832283799793467951365800065410468611474616398346050980134789443913490198248196182741238252702588033454577287058838201477751296160757201793820735715450737829967574188173281609431683247496498195572847375115740244661478130817238871349493743826017339337414595068556821049007496713924356336520194514324841482535830532824676331674589782688379135145519593696705593693184146269260955822622508164721651080269128266544249179011179785821742645734932048277024537841546279842489965311362791400787297779010669483640454832377913902091296735859246973167157348943874072509410625048778922635355862156648510354910657801804657424069065588163356591373492730148781270079757964920684960362655976161286497115045141558723181467418889485182457358285441627451941811024588815588551620275393243792662564464399411216841478544008163313788791960883883969294039952281414582443891225202997127841935987900612158012500829334958519545859439809488848217332106814325634404230800531425783239691352752068499974491064611286705711339463824379671710603370998552853236458608355913541218282832946035627060150925370848387985712396606261793915556055986227244117178120497808649945951946414220866859940407300783987222157180240795858867836330749258841011005079761255503534341685065664223356601149915196525833310150672741789878991407292090653298216863743076126340467711999567169220728586460547894605054174910676274136555380615790075203954569711172706889857271955790677351917402771001395032428053960546942807377350141336395185298819456502627051485752695016120802500076394996717430531487235396709619807725399501631874543849350554038241885233315438613688906530339384638603361512041016727202361117524328152002228367975279189599102885330139061796424883646868195813362214302398659380846681607607874477412663743906255913921646683409178751201650041876562589430112477315702484347606485805344596457284925111509970528087028480818590411908159505427192953891633536949340890706088166527765572463181604921538627650284974753037711828448681747741962012733736618415128661965772208795723174734625210769073842422249327476793934898928003217034571742705469377584035105826286906229669235969830064632837177179016923565650159905385406965565096319469302696701561204630729558216486599133556541491186980486881258093039039488365777526525674430002755519678356841157393482480071673665054174375579062372665709681532598774751476807005409246748309342241032394733141825749130136902852004012176008929729764473180608601558468658720853761420748637263302824002936923311727712079018814260321635195367809782358380724318311562242837418626110954653755870986090905239819481569830543242509756121839948117631890395163856901872872395861288933280986846632555510168454451112973465759654560486047037939951977721805997961898435042901766476292272038167517430894125741448631410619857940356659541189845197007227181293985657763666206849023111029023455200185241166616446260689050596473768010297153732330136867480347630220028516475143442966552523255146979246620189077952571257744017208791754924842748701788228876878167604744165824227348146647618771722221420931861105327503453644961422468292997604317406221921003249323506409641919730828552456278650691863150005907273459191997745100082915554744662203044104926741973113552903037668423902592999087553506093673517941793285966254974742158985599710382625583885252825322709172442911075247325116860796899147775159408329879034469893264969947815103887034550006060706278520182223207896175404337486946508989507788582290293025873391800911953073899099118420599519129524216172061294384160029662653485334039880710030511707054187256092598135019550573045000310459753077567417789360497448652955308163738795999240273465884038782382636634330348831284693162838375716637617321141640226353214833697981629048385124882547918659083789235383575535343393111206207906994399189345981850388792013311993594548795588136545104047715074845601175997262271377826310803297974922444582638294371150446426839060277614129481349263684320520307281031930578751746461983942601761965253194558142643181421050885730600005912237263549523319948997961363376615751394292986612468638900356072794274938201975296614201826363304681181551148328964780482259979238676088811587928469816154001993951430836471711203882788844241834302070286027697994523479865991703302572069154057939670462592837113829022983198273656339334190177088456615249178212455190623022767890719993543980240064107228126825512404006505407996222006356862400642304435872417940037438936899158526477224491043957086210533908571696771820194688497833236692922406629093719151959799380536322374896360047949803654208417017854558783090766973977217642485566179620276151917130692606691664208036519142556883081911242719328560840108004829118468083897547518868640699563288633375162499559751362674265582024024335060389526571806223993191919522353774475400790499318212090316054821105489010527556884866492809683805323239544042795520085102055041489881732834156020759305167455794403321535880616125050835975811449640571770540455072015995598118158130844458072986639152906309832010436602045924876942635114196119347387943755749321247433004277133168749293375537828152865002087715579584728171499036723844263171194403881530185048397713240555149655989821326519919579324055288049182771117919178008049816353807552128613001499836203446694947554416818889788635516763792069858586097469491023238288054115930942253611446341269577750596247132697742753860602817715120244728850966328790890567454957989021275186825003321862620348353298862743320013470430746770975669676552732413752190557558804808676298636354074653674243699506051272679966194513171946481762534633616712628091815593092806155691387561331498753729121985509176046756779536271895596125468008713178177160655581863303336125657935742723332294888974331453862883920098473529016591085639408073692566297950853926246426121175694705236323692870124955447358923897918625646469161819696519666674527614218760012274405383899800734842667054117255453226831812106490483123131240394081918681629672486432463020913130367849446339532236092018682757916323214272435382581852136236353255638888330895180164572265688213309032126714269008066526756742247696726942289827995462825836226295453285293197008142375476607058160762134578281631383871278070393360572334362860974948120947609487681450741192678406886101321341464830215345335127220631060614856331207808283173162350426668816479916146582457195689463926719873826074999852153538017517474103009003266737460932151697224790555318185122988478406040694256827789867290755505115930680071328768641376053533931609281507315778775155770625289081287540207945940826495110194484772588124532596444297637340026129551700014087675913248893964305731951266242464949060485054206014581529042995581282271735077761484047319844131212244645620598207962431407528608382469685047999688550844378979849130403958597430646920657363421693076622218587697952133043005996738051692103175687077157233434644193746148872038085719183353949148877814879517742182291910791094840705927730715489614650151651466109575832423472693557461148318580486253898424792643571829951808469691432557617740593589427894116526521250355477427569570063448444749971452289782982520498040587874482588688655639735277909335214429320766603401789430316564838102975030728487420974334054372020907845934641605229653616773712697649392410079186483254223263602774071239227685168857290117646508320687522209573037418170631284635293606815344654928926613598586171346693895781783349218350057277697070466804467974114634443981090985985608517770682250720260468388556992674510798611251744878253251462116090770657240429279548379695820007165864822120751908759090165087120362290495420918273115106946989947602230066776713633721157600136923793482177835545978828472393455227019955151106040967851011390309288902549654915712258489357510017099856507127609682613942316335583936688521871233378442817456355445300680565597067994638260964517002652789763667128536926869440713363021245751533070453881883338604876276181953171441250218105478267614249770934311710276190788434891273683263278181714487175474293255192646583625839870829804854574740041723591387789825212013287430887019122446974487127163515264459532242279942916248395701431745523202658368240529166152925993144577407174040184848796563017443988794206406395135370805556143242355920988624285493736592255591117913410269927928922761937874613248091358994977845967448172992877611406305502150200185310310029838373223506222073462688750620687402362313713450712378813664310050449964728839934198696763013140448393821995852398554112548641442679091930338692612096162022779688575513766453896857287540824224980273286865474217092155572710570650958336158134558691460984991235644521474318200806973689182726824938619416307428554431032876659346488431693605647625197143272787349752405349665015503256379282472909061881202616246457261320927472215181162966671906834681153733101274447998373404689807486393481647765100530273736635262924486794417749460680674649230001312717391803627449007572851029125608081038226615243188586890621572675877568661812567268689623674098574872823291410835077664039424925311285121623578112628654074347652414275826497069116479820294304526045645451105176852242855408557155973655453729836827165898298646928187769873949381520851359006743944152708099141050139276904157549283174963539255063375899824431844657800898886755261340711606363613431743676768746732845263794254672853942508327524355621341983468785591098310515548970936159935850020155458176457854364430168154197622056726198406355158246280996131533747885586118904804311443594495471272205470117409924644195647876627932189048352064634963721382638497864959645054408328190934342898029003163894398272629544228173350654956747798550897561283399084631235839671165255016391514548329954249938059575418180263248745347335552926044457106409466714079014136355620973045794958062420264526888799599283816821856431269599055724617870101892550949621323821850457219342982769472471993288378871010200370889023775465127891383550541247005496637418333453030258933349726751487109097296086263908451669930203151090186954897074654282284445234740946415968984334387926769394575730450217082228212680267272643892544938511582954518351422424439777937507988867612781838259139038531868584314919277034601284940594124600493672392210262486699058113755177485638854951777826017941538541495004485067947113115472822297212442531006697682555441966566975423103117984402554332363218203028770540026751683007269980773392486042529772697179229692468207102561344923390501841330671274154475319297279248060727726137663092303641517322843078381686573840780140281162564243027648989063634592484048110707525985936636356144028693077166608551804663104762047739541325061875526262028321666834638294251527794060506184485197938470918128793526945954393468890185696701248643634949457407280664126939361441306567219337015244374213040465004933948459391260989030512125108939625595723685356488756737644070851929877602192117324292016533028634138349111230163862466579995931220459883634277870926463965491363720452455353572304686723387791897202463672557449712881493241327032889243888917496550841981395638570736717103290464820382492241700054910897373886235846434142326362301502361417859819750471218120187320455933502282554269051426342926435501352625865578667689288444752622240323721242559317823233279629767150629684966855190796733900837245250581858510533516369845639939509791227198083018968520080712362560259399640399230544181248292709605417633363835215182815923586706804485634183474935366527910129911352067303671881494674359237250313475886640750576962478617148743103489936982853096423460324795390402031442067192194200162364469827391136166058515869688091292213867048338489904278647930566414340080047459325187663556674180121723759116463022960186120012864690518939882840774293543149621127426169452617734039018025311305919494651546540396062774283299781228407868951703084470958194671032218540994911578338706044638530367566903896179165759994303177824554624129337964937084600507421110338202956641151962337199550386006895632359032138659328759328112385461204975520139360755896655797366652901397919758107732147081442932001205999723243786369528718803626141566262694622197512077136830759746104464180050434663370019813800780502611215342678923064924564163795412034346882592045751918578710922715831877479898367735810239727478292832248873580869038937666554423948691546714476438820869786134321036741255169967661095495044427189592022839584835475663142937964535981983443418347085773397452945627625194832691057494442153388058422221870259539687330560922750373245077886033807662279074946927931095167876051262637898751877849989951445940674414385673328394582615902305899816937894198559311136977987480658034964458913266184737828519939451688905445338788393492838256621284315878610279674199038540577753486282357010735831213337012390250096058056946090012961923718269013646958334852112415531431194442272743551638064743560948097421139619748584356478803014949973856631244692673354952291805105577300243954745965943665898276675245862547172589085914621995344655539946408476586592026642977268564065051910990670299399254836839201091897954653244352530616111863678658621984523883313976811663058858049376435019138783507349417435396249911035933221014909496481712721422086792172036009349913185856979421175818323971749619829277496886628018749985409303470038614393367904660443478541103819381556416461833317159971963904762211391641434477500301320087757654976955405374853248154453402543744382575557091669980813756909796971824826365294459603267745163970003001369703191982895874246250100022734226359722494528479825436698534719441862839006493471716419910325265097778185228960344931196283943376676075290257732534122265264048607072817751012730977626048404040947725991542975474023639009939565428291647228425793973152912084308786657752985966634420552298497881706397223848916734526383789121862964128641224759582904146582938947159254442465611048785086223637614112602995739049311121105219428258409638422241549094003607869681911840849152083521429720890587285541657356585435156172696529339552562249484795735768093466749070751293426035340540272872141953902723263365702159517718786509730804791182274996566385571194114588696379399391994384247426440067165932485328058169165816662045846042113147698553921721996212836298722137732349823617608686625106360345114455240893852775633719669730122412908952311316849892448067712506740143205336181800694137437237808024643226332990050050715495376736322233549593305867744935972404961580207917092501811459558665574296781601488932336111115809093560110455686529178798135396385795032612295424221405575485139239276370211095210840854579014524145342504930690292831498092370751620711424881932491537126120972049381168457883934258962910440664455141868416120469959816636521899220113058700368351598397021365190407927572514530858725894188668541564117050395437174512295947620031905526046600041664358478821727638266637185420754006708184316287400453786971071420180752676744367320370877739545662379829278046642348347996304922994744909381905094991887010013595405046459593949135754931645980830060029633644778059564548134715865429188585028203306445020162374674940599430432932633523543844285108735629776087625899147019387359431854711692628029744411079772198806383142137034803766016166980039459447037266020189039856419459374685978203634494347603565611730100006128533734347126933312847687035064471828468787057410575798991682275458817750042426607180540646877317132043696193821545576823722297449853543629230053363994684127327817082871488450607228080561470905915794056422569312468853285579638148431112799745671623658865324076131016149614372703837648885297238307746620071789465200353774117692429845719160363921172986229255061771548331646326441739425909327078935234879987422901143366688380990929432441525335733436153608148463047279449566914372922890546278933104975393190784467839939354184843192705322032971668960369531330403126323950525064849331040927361234961113351137337057430344475316833576349029945087617086504740345416826109184901089495333366653552177265362409331960662921502515764022156355903786237442434844008531000052921936295658334069558141531847524673727818150681040502997533554964787693976618860482388668323053035972053664406705373812780082705173309801571018912291078351540767629936761883527214958584151424178169219890800512579640792023226653852965802820438054658869828268984926982828288926397791632415401168541115934709865134551240987161470027191046466587753671762377080718748664968161345114316769167106704439333438697571418114699828468682620743331916689278682992267460962298950678022293388484983932404831797330865476035182610248834627684211293357793354214414041968306710631331212390292821333712018211344844755305359496239531073835852555457571400606125346815338498931248950334426467800815791178914551267547951690349351787846832999005738828118413051608510890898913834122049400447450684603974175600350146952571956367163629405481775739950906376323779277244336328992050818823922114291285127047033146179368102348633200316899234176489868067695972188438747622961565601403100481761875181663688763022347363280191017678806180722192006187406218539421128170287896803193173280313997379515704625048712988209930689125980957072328959906485339352296337677025307896465488764993516386905854887777595517496349499061521531401077436527250124932160020175746969767480502017252681235922078926192820116661073001289476146851221799538582130424654018780772647230351292234516265165433418654535466151887659614324704751923836826384555304445943634152174035917342551029777534389980237470653140781202881388685611438331307132407246987591720558698821521815540713058796986386917232470808344640645160799365001561572401576941464427651834105047558145061903911291939515570388126616084576539119285246802929993754023079794903443348783255135534404825734375530799276169560823488730351320625335593639267252519439855746133370134881028024907443142202336756979424969340466333826896860491507505355491831226086943412036789807717831174590129306230915839634644332856221145650309834011613306501264663792071626429816307971436534999997667909584875594157177467211206875872683335374490386770259958335570897031865639185222309242360931954034007058130833942234260755893950311799784491092965146117363330216786762630506599768746332244463465775822113794576815099086505932730224521010495963042807083092659266827395347106425189283293296028806247274201251962590929798752500770030251187976379453681906632637420232920037494489192494103657025713100695902863857847268533053620321595039407202335209588616960387593853812973552456957008617382516040919228202143926247323282263719119624491196281985337772409287444817553621803986770901946388229567287651447383222154271072543111958362538052068251266186447268207837321612428133165234955468248411278302461887916237906822658315036658609923669511749119493866332110425184778477582883542479858904887063647006155425896740271417080584887615045807188047764396286533525195813415421162801171511619291569219866118175458111861466279339146766625004390462255016088143233879855449152648327647422226916156127370807309221009028383036460181513557631926350088664711923006561910875922038505317234718395677868203820745585135337252845924065507333222384507021441491731837145511786729184338260733649176712281804904715206710086522747747399306320941969274942886440327184117378369085973762776030066013928977233059861309478317223466575416475767142525243997693358698561830502972118705561747777806450261575780698324751882823420997663768780981096257280961791461196210618699427125764564566968338196995252835592650822004373080960596104370253859051611307958345946534009906171022879060412703054479125529526503123472433272660508002754691711744584432684123808800091271135980586503531110675126771245621305518493243714016468345996671356470459616268895063430867895276234117303201312635013480814674200685684104745886419449141421590579238910967012973957606401790485488768989017445674261353497996124706790780322848062707286645815600842720584283099296659390948889934362339828761675565390498514021058214200610435315498439605779346804929615738336494153236289585215513981711713841669869025218976280835970158053908689219156757819606607908578189089306380652482843455633595726055932219260129070913852494066961179529657948245127842083548235322027261141512964386038547853172173427599728903146144271274422393601054713994831614242814616111876512462931826401597589386001872459715642968986009140425435276707662103842150314635455224785473139613186378397883224806399816637866672258770465794999935674867251070963290332530462594760454191224426325540009174762484039544361511068055511747341137438381635711078889809428087815478594103567588746216137538774096986495554064693724112154560954951447689028121011097843621457280602232768475874229778555236443000687969693374362814615116238921015404374971161192816765732119304096352148283796947876786916611517952448786665000665824796019402289250920355851847814947074687793579136572126807442726431419298118733903845843965686050199559302447815471672503774708624557121261266018992264895937563723257977578878785010180121196934127215877461001811127075019712963818917352179257788916709142617071221059552699905577778630256144924689926864890684363239173493063727428318632119804241459775443820655197482590565877349321943667078442951976076333526748242487068663873505332260059786463470306995597441799280878652542773519866539711545645706116322414474605758108265075185849638067494506824770469657092690775072599730320139304140413854903597332999738016103326836956371437259221851649229018996732016851132215644017984826113765679711814992803995218617580791741304493673687959586565700991882089851547285034439446066217284040183313098622701538426916547197051963576830818821434082493596649946071916536181300862200826602820415509086251791842674650575335734831477161259626160618131264219879376777225346295748558690716090060159066791064390898724696385748612614204046785337246785655366142379611206038364802904805854888822141827171449625976785479341063819854216064738696096987095966089304113652670922832697803221671485628764214134967883073782533038276942939275140751466380140119094961403236794563344505043742800307318269340336498303369731103460702290738317725304590971650301679460358845379272142357462520718652410031111819017054163893540543882864534396486229832323034520769087159807752120921497990270624649596945679685832741241297386450387528650789599770066013364803256537808707172269373938915544210585261162345194479064333358250319630123895365357609131140207569087930334484025259335997915218571430416624492506047651667724166341109343846099999064675118848742675358954469402114697726723747770059249589093903705715974345107953623088003989150732237461925960894949142559682040593619956261054868521049557523330009314650616771797541539051942327116299504081425574398720002092081443844964912229796795673152629821568561325252250619541025887163252293490188389719468224610275493385831787968889862500189812431292173167077339605657590645945978878497243451189939455421651731371488213573422087011710153041128879739265586418033311594186340197867762249344865959495111859984480378871139163739395276901935283451922544527194058523189856412924541337462301924061844856955722504523328794988009266252804412665769986848336141784777783213413721519257163123991852762119111748794791086669472387892302673048684236134736527013741165933719637191657848428933705254089161701817989010355411379193983529531860112594261924324620898813216181796028894562959500378122875114644833667766784608322394508500075236329363978515032949294920432678832239841615792948540040154245591967040313165569578076400146036239975865012779661559953222556212235719532574605438371081394807631269401875387751486246001155869466406899911481887823199734495495192950397430972344181196289037581922812262998929892722418686014318357109929280298377282466981232614473596671744041101615182456705778740653633840669597925126253012796812605420721604716038482253442616835731324149032986722024260367941114797885490447509239430928412340295009777613939027862314007512003603901552262182715446742255513940895130772761125798443963003257270790491925341606444287027266821880273111634017884301611942742034097290633967900382920247405613732280321488163376283500145753515325920393710540874344377821845292279065245157729432512454404289762534587956431760857085464274175559004956002050359925291756360956885374913834037057166787021047980933493769509176233716579421017627881223236952736657984183323381102688260343279765857700775012515742528099223880626924010265315019129191919107151365931646518955082866247410485695493387525055261588825141129433295681636545284510015255969777425720036446481703610992995760581657583277561517003192616334947607226099556434981719810455172898517833777729204974479006947475912983442682139316461905413270716530383257479085581959809466497661273336721716141218425493927619398583247378764472033008373366221276805865400294521712027248293051089629948915650283867847790078997761724547075100501101924327957046892419788237486404415154512763618661837567584020795272965553853118415863949688024771396744526693583605060664099641326847128477350163764469883263899909210087985627354219542900445328617562235082652402962721260755350530347363178594311847477550261047053570168382776205871715638950187873996113108230788050580205515147626389937981156081380201722913278727729548345191695176851254284228205314184068190068098697317640487369362799727995591724250513205826055858676669209239219192948467604658184389879122074384624616017354678288136675452941669229094440803646201053522289263180210147750259152771319336954663168001116122859848899744120409087663818968952361446771446425163642747660976407182850155015506333516281944347150753499686799637047505113216475835913863075579965312183964867314961327495693307365743190385124673724454970730748077618696718165798093831914066572990777755975468912485127211269796522672614549562558189830971876534949090317596353672026038102480073485141136030525768133078658480242783084737300072231276686525106889514285326426013166694515560772471523815508646180436753475907251062950761328885434571348800543059759912643971700763921369837560032651927081828979122116669743922303735582573492904568012963210841105062523317605978139524965190914833262428358912349928244187407644299886246357027199354336314058448821931890101736747167144898002963222112219768133845723428213891381044198268989983758270499512966027515786233950024832401718661381254814552395395153292393331206737752988545023371897352801168218432118414037635364349912400915622949838936771534832075139201739655070163183374778688964409929607050073207216914731675392581507084070848452532500665995505312588298830739987388472377761244822083321080099713991380955687148118891441745016096151604302223200134294838073175873553392743194594875087470211528038901522524824147932557381467912634982005650361567030666476173730041736999688072074191942368304387169141620760277813804736131434754779080061171617374221435510094351078240906207388890134317850251705548430677178385204946006033104582776323714363767461379544828408755622468674008235382928083553667169100878334118195883668602849070167305294433455422107700898847643699388725584963159755334610769910548710743968717812829604040954519374779462061128373310643543539086128258137658614644031974508595139612524477914046510662757970385306517862314304131570334572020398461339682751469403419448383743486120103746419933698435792811503354753323443543971052631991288770702274483908919237092432812654367120308414079679736995512131515170064975784150621079160913588768519586208443952399365218846337234610095484610716834569753753615681046886180011749548084107290410449462526641309350106347091697541056995572875284383607854123632222254926239394416571161779381600193424145169020034566595105451468502027805932885546584962391738257877151390138584118301877679995471682578078885895489003900211532592978983674549598033539460573285296895457143767185248712781398180885359332797496597507111282419208946782460778926406341914663545511318211838987176482120082284113399225670130783992053751233281344853875696994676731043518465681949003299617115322563048487977904119821539788674540246315258510537717215103387069187224166754066754208349183115933027582985503259314361299049365095884464990990389642711402171576626606794824242694930115168592188425781689505950785927679458191590093991234268170645052789473585292784557600103206165239973784853126214134791599734133373117934777128117847882452434122796620170700554541587898977348412083266219220391478880292995774133300249993937948219109205202248677098263073556783022187833940041658923309504085149029847026897152740786329678613416689620406346318938203119657488077757317674015485098110294464791799258399127422769116745232081413331837327040120827555713600375992633988448041021722878285246557950873286836380203450168814136549177348997609197637950989545345948478148317325776443643598909924664267562305045870218307733571866419952564923191024734112857630915784980386804968917723823468203158335503993005491152710241898914307752761311046761974362218825500281042333159327094738121378550306607329951713884890753954850287769255950799483848118689365816015985976105299260332870946281423602553564253686820330195792165430419335771265425277485391237262785772332921651424305188687561490412264930921234791142708144508469751712059319993180973430467799981509816837085235746768684548151707111795336832764796476415439995868340331161084995904019556097127345856261765686145692635797861629623610758469175805905017482709041346010072479252716340500649134513525350179161958567855902663746981068254687886488034580696582514781738501965319677375762845846301402424132612377150934790402528629987232341890145546188748069399174409994812808253482245580749859285781368601996842799110499673980420246979988234878766334307520252203149017100164048747804909545973038026524031271448795144314906941801347846045035023379697547827014854591978293898415550260809636481788713384807401996297729675208625447502618707295464807162805043220037172652836882094570739185002385684560357677060905218685003954772307519127551152460619339482327991061213999700607714667038250971526953296974259060110144432371408240584075418880557790743781497127182285172032680297594429094313801072518160168925464007823599923660391614162976508826702060913249843685194719942495736634646246281301479502068387974581468885231666297923940092660195298742718503693984110459253247887100744898233394019359737155663291224856215460132242621876396097155362350871655996811333550408179810990888212293709685457306357954829199905550762871238088809088542589020687003605112177689336905189757025887845233602557065651759630393224775331901728760452880340311743250346500553629958761157531276346216164292970682172148784973754105166067919686796659316325653116565528902439023719423628193039501593458845443548439126924573297687695501944590496573040779890426806142359861729444693109695471735881742658732764579780646696064180276487293200990300729583271677947219716411027226325280208392852804455519461752610239617879523499426429221947379516260222315770562672952473452614231477282444643350185164439634830954938821461783504131257018819080660921385448722972487275898145569702199220952708953713394920846752776266513285807105381288796357985463829713873605600270681335959883631687636466177916555386348648362804161164829086588951949882354759935535670554107449267662359165571465682170770568314946628980271692303254447450763132592736800952838224973987485848879521952438015730312576688494355705493140391955385606741775285862056189489476970734575537935874479579842616271766660355028827799937262265865483130770966432157753673707391534934951645079233173160487530245708249048438509672716318334100158496105100354871712238447263982661924449811664954515621603678547633354193601750073987155379391861362476176884234090364123621496670133988599447360337112274903866831475338285519224390137349593449535834197239735242125925574016076229110815484366253082511548746256698046949555287835418247225618465134791385687255975381329291706710137181908385919560528236885083522785049156898707790823096918632408475196384627066650552520492613316541790823992496935023613467043462666035455487565593460160266509101765448860355189574772256627711371018792559582084386779034656016773749570022166847542434149354721950633456005022863682870740529599124767216904084467078773322912616341504022321603857121101264969203712307150825211732118223063789603165584541404291739921558872917016505276469789355780685901903934971917246600604076585277264142216460551614870964271000463225881474817290864935098928746629766457323034699895235113489647978838593119105580834759290187145323819593998585556590125848789077633889272689940968093578144492328621416560331687852727545306471451490681235288850300880704370447169444267217455673469697727856719652553545512767133684263939820482916476927946467521741900413317548140501184532827638409566397993480451343345682593311042884408587884504973689972257947981347758953089134268820070841881229947709492084782663453285305087824211768963369285528170173872390984109498222856278831541092603411555036295325071064468648011077530609267926125950852722544527373758794390899346444455067735191317911422564735939956656294351855628966359788505070189164004399213328031979278749042696985798052996131272632442016089829521304008804317941269053819661458577245136225117801497500354828983338552473945471137219948552935488660448015092504091609522538247218883896787947411983583295283543829556136855496932103262891926643360371853068248861645946397948140948211991718986199622655967451608144245451009244852872707075873149283708742858796497846424141118607200181811308194924593149870490955470411391913143699003965882944688328595176699397184300690272438188611688781746860677660409461077529827069666246725825834879847964178623174016801384522010279972648945636985338251215782130507684036044497967358768569564342551587314856934308740020952112358977135035011314907556733035771146943890169022932046264640124822062090388019381542785577770209940227476052077186767840631462258718806720450755549896008971572632737462198737086644258184299690734695150173138394993610389276291879296896900795826040893430536736699543262690518805846469837049310085956166839195253116443118831210954150921733144123601204355094158587863423017001296355363190607757352160986947550055180377401488313554191444655539172075798253552482612007401279344803873508965476912762173140660112678914816548193592934410958409555561851466906930114793971018998954307047223008271298616774343395206467497459232810867296839550351552814758094360245350845794476422299470102857477094636995432828477744897705127182812636334462877631560600498951620360552672602322030825322217645877361887744649311268245500781862314047349233632214646804996176189239279269860409441015325127482013530116442914596523793288913416068655294668753943378065880787492963398577194013540997096310790995219749974512865852429112129833292037687776331576719398597282928855856501160117828721019478640504655952066926751475198383568493134767709334660203123663793920588039256571069472549185492763176352729888146622010918022550880821021937901017100901761860815727277628434213952589197317320486612309129076106693423798925237229652821998534487934812641215785704140507784593818447352329090435117092311056902468676198264779908980824757506296956096035158879082411771308357830267294917187898303983381478248799527957216454535528488392249717682983776002942691535466764887616748256506581252883208008523431780010152822156959926905396478717386327788969145789428510740179741145705373287347945990063759213031212663242754441282235394743149573416120446184835507995585761174240976115649689143608322049425385037831208556145851582269180555571751705084552053145931345702358478470740031508735193508776539457912548576937239267509440386465681488280113190814767279266008110406519933324629030435090035702364473347640227589911302561428151026814672123369310581202571783921382071505147205526520717899870978011998629755045742398323482728152417872059342897205113780520764487825734181460079729035171703465595670774808673863309932173534281373206640019346612919858192145061195483507773115852808363568836302521307777247937749342788026310461936626895705510138875798031641102638435286494471619876452003845664375140606285801461542398379790242861510715368117933486202695723011993282778983272611269476329520041243222819682339196369550324413074146594355665592751724057279978453981798510164901701481134787869338027223612201760830430091642933067466711063294795858692461674351294390003675053817121071978116013716715346363144278098216285672241667991831858620122252301640209742915081605234897767899760063197053349217489063570132160634957293375041521980170650571323567514665620733176391907318909855775914209248583367802470129087556281280732268011671296555095275782287689355881050114558463394395230174778629767527451038757241525773319340850653643334382592374189205974681834954884165697828841662153935305363721667850795245158767612584167685867624331910064253060522246001710797647152508449567934909638372006940116406649269477909066558875074153922538161271810625977528541882557161228800448733798872458038691484085000165228067120074156856006582979488886230972394538747332381940319149806160556643566750634373123481358808870072182633394014759264667185899665366925863182151343958408564052990072734369138349003818211953536732134334652910305277811376517858878387152656430384439632290812698065424944336441995004849816502563331295825856899899619184816676953207054851416880134720190332458735600570423335009908550606185355765709003339959910222117927839111708467297277542953297084007467669558868532310232855374537120577019484107797616068229912099492229029579523920687100539557779588316342194142944092832199730289806590038606989472585312195904093270195910532354416510098547417086324552566588386463108056902779482455118576230327627835124715806789133893484494530774747655618076188199237263030790040862120955531344427576877001973150157973559686812494455808527566985772143657370549303606765719811130484036313673584215917759623952522416426499614491362870820280590712761698941855778347027776704824753456091718729274962869782744410860635687206689326902480564668766296451598265114836036133686033698314641706345403421247350822844962989257310205181542036396870325540557432550949185791102690713734774457919187045206939177293607236926849888360767467433222832696950266422018700483311656321844158856912013367720980894467484553646165064642338905072137277122870660901383013860911026099399903300596155737084750710501063823060329631070699539332110235983025929035950784447936022071515000576810671713033573598629874496555686450608878592294469603019449990836396655958798425860080111822004716692846790083380281341285093076909533976905488563569686627744520944679073638458453563886086203123884903653190940863732290564765750851848294624669192876604905864377093431745152100302785431117329903074302043593716855521832147416865017672639148777877685665452280675475952212642383957785463216736687896970426537919418015180524478613802678460316070600009160488024873217704235970316408356341771089738820848982298122370565181926776058203413192969347961050879373270066316882784382234413535086783687054568555879871689861569353615564455202694869169243246719648834421364276909364878014778319137995538964273177260894839188418962195710701492242892208743860385712530807300123085063002775286005665471578382705922493965428706726456142987872188976743596261653093845137225210615161499202264010632056069861892978374261035263975010394662677623662891839830363073289643923344479860627830037987239426174105041644046806367070756032016685605145106608701158740359296159941782457171101305239659556353392296116386861109445966189440136444342965940987097978026447638329549751191848131290440588394872126624771444589625112290316239844311060208542412365375446368461760614905190082309697526629743009900974678988264256592802757157957366815083250460230174141742172801965546320241978031544513982470669449286243666512575047220514793828552735155733524158995155357201475926000858675406859769435307837049252714370031062795834271452581750671567355473952716563216406049552937198945632599465882986410471894889687946186818823368747510308109576105652115719674047790300228680159146787265686584895409771659256950446242012225127996192805620373787021993465535963471405114389042438762975290171492164564436398551707062755676733150237038554547259338767719708879330748829569704298212583829875528352894178729809142052561825189390076013479566815252427823606951954088376359586680459099117662636943144422404676758027635598345381058544487194294393750204735622421535503681325405607547009484554883783857396270817620731974908207364258162266964302190670000943572333690209003573866841896916046376382142946319037538362244593059505515543744608012982127421264499781624410752994229633304604196308087368170775280801965995716206513747385869451513270868310847304043620613729886929488971195029692668942094689346149675579751861370448072146472031057509438018559254670954833342119232164892130823828085308715113564636137761523920697519694705543289473300293940684744451390640747294235749528956925570909289876384005454364034401761750887673235396087092056744428447924260178201929568606013275924634283210460361175579488204255686800104101331141042839184318292490423438422661214456358435092696543679539476753168287811469600277789295802639818629873147939786064073228133078133747723875507887586150904465992733982837531370598867775764035419410062997026815907615912931095267921633300004089209682249861958047690111992575845073025714432009366743377287218213223820520279739968120152245880055628707851530788528004626807228594031690186303354459082065468611863064777879574275927469807233684817093832713977050272681954486652000993598655794946637627322531772018518390653846407245781235198494530054907086002634432560858420851156394357154637303966369075437621131566478258132936027183375018122327475657773977112664953850479514572039105750607007751805965871690755695991776688028213461338181615196550030944151801515802225867987975689801768146454409214893439909879866045976838296933476873627053580705796914091408165233703695816042369522865072569177342690945998889082367367448826015318844518566240001247469413592250072839475745521361433111042853221709311167414998413918737818081561120205154581238014986545985101992867097051264681110838039587111073343874472495536541595946838067820975881024059099252140764656582556106363388454884989630623693112243949604759804840565262039098845674969109418658610937508554114633635808335358649360214316987054666008570971724521081220383063122016720363124755152897887818038712152997156591147442455632260892311441628885237463661208096957697189989792378184944914691320589857036260799837027899555231890818113445323924973940046329350756345191345962998622315637461010800824386197761221024130986568252738517508360390881464188422955663378999373242315841281975474768328401110148885755336895638405405146255624837785698306836766689374854594249066660419934061145516608575242632067654567000867106827606643662717934185539377145753550037171287558229571403168161560299544321598088236925419059791844298360119760156724700530986701558513394429979477290097812078310247851533495924199735368925830286314105673433440954458648523174257005647521132811508809164100420492634491751782451397049917238700319848487132740934823413191781119546868362638078652108695366494638530763687542733683970861479613828660821846212062932019215649631394022159681085434855784654030848511444719873039981286872770609781438543134225695202301888791079979958737427587847402104766291572034648461780812133890915315977119699395573695931103434174966135488280104569163017217637871881671250300605284856475013883552774289351495399539003647338575138819010226250352224246831163249477050822178511531353301050420734039433682450035483288105653717914690573100369781752354248384172433767460088552984165412742551979934608775683844738966458151601932745007502481806783936628074736617921148042065335697965342028540867878191474829990883897427073190808842105770718759562353445850415667767455843985744693173887608879671283730129617880987662121687112892587880619392635720305263323324512824585188813916651334485573921684317151292863532316343129273953478808040622788300596684890546220664321689816530432335212053470750439146691938548214288388198308936134399461541529320732895531426435514721411049144945454503553057477440795716506139320013090054900228634268674676930850476754935012500013182114793606823401602501642334841763484279391983980651058540854151445533936388020010693420378001339459984908791369371457198881484196062287903668341454332949828307056699581229717776325971416063524392712896424234527758746635819600720817781010385813666076865754061723777657955510210362804751005755073878059795710133708435575670340659142513969533067310044423089859157818054311114029342190126054028385725954824487816406573787346104057017507378499734590921109714773625867869587119313236347623002641592857238077726947795819131858846938637220809193880214526167995576941159128392795903405791797835254485681158821549921814334111583847345997641671139808454162441578353621178670046108905572462800337459800875206456370445180529683477269031094286227354369566300827240982364556716131360184430980887602636094945785664791602743445682868026301795136494858856321489340196450660688473366152905972664845810827610535610584809549920042588973332808371301316496906921986649997213781160882488752959908446447330526367809137062105744272118363682636433820324978845147684618537368473844214395553909321978538528343410702666075105608462488751701005336780549296204010932556082325383481894117841087195357974159958691397267739470851146276484219090266027837792492423946303143678003452571064239838266915733210949687549610564115366552023724109969578152113566185108520278612472908185858290821086300139010395792282702203696937278123764290421438848382234561788080507532794119231511699699473685515497422920277875045110436271084194335072322980579538876670795596207617292401176800707727937460824622662770359746500446425995853590424828605611265048923400153163776335438266343435323068013460795498672390654668481847611151273240784214343827230688842017712879451521981397440259332040234856508060776010960002025228394355063726924272494759873516691122099613324474110092453097242495495298323310039554003376140585101405639874386848681646889934201337589634309709534957753290968361520682531389409892743648152919045875975701371052720655218130528389569403047861675318646619084034783853263967771174345008203232540282509358023789097170162036814984655681731674862027439694440381868438223011622802164308534970246521903465705952747780362621607035696544867239367516937815719852221127438793446320499007910415678665171150240330341562080074974122862928311563671164189014962171387383803455882376207685041086875837811186297478171007731154275490909043606840865270989207918861889096966273998410984638132475506497599293620077493263225119488888467222947468960435655301815210046245715881756885197668769245743445462772322577272181376290326343761820779073242996925021987597442722389259929340487278755858650992611354391187446454693702789379949666953228798238577969208151679416138248739089608420722758787390293122000546713783786885389595596633041231848687296793387468214486690069974881152174787075673423201591452808958489585865124895365980290546939162009191342000900826111403420627799413881706837630256082222267075150785528362149648754588262932942324518297118956905173122047684440468858275152819443779292837489270302856071852648567152944758312271534848094888837786456312996539625697136997602960397355696065420009396722787717325643944094271912309657316286597583439923437602072857680184285378230746204384663273473472721217033229395468682245335694683170019068729350715570603193873509989636082939044024370119858084500148090379585733325242126620114284775024784869889947827519481802497795539832387386577379622726910772006000391262918574974924905938147813215805207574082434981891662956829205557589260536668404324678456295529179243247314510198954740332693334921275711106545465464317857152784659645788025793006702034314741356435537865695781690051154103166971508855784624782497101918902083577960548521740586247618650767383154974665643933669203800270843194256300068501321264063150456376582484935041638788477436887664067454608733203793683812347999180092286456399904038399010194806314761858360232620397728066185547909655247279267054563556358048361720582145255557658941664412312860128502065497581264347793585052416897671407367393547951063750454221670521020326571916321717562389283162300375112930547094317832850479072151336821041519193580901696309174469641290356297030901044771689758317148008144815260186904975706674583580507461627959406276429752932847815557099027897854511650578943418673230217093071492254038609545344580374279615546082295163533195080429899656571887328644544993965814957376432886316314193973577699783446124536357390311204676276081356741757295628527010690234192462413491288467027778888221706426066665155010901483831900431397010082335444845538313935591465935190725793653641254176177474878850666300405073032373065935669491555371211785868300039983597995808589957616379191387215462246668458977686812655959945882649877526895639699665941119486961562604440942681223605847033193560417881970237542659024555480930434749771372124338659535512339418319644347139259502918675044458146658220693359605011603312912377589787482835905625342823140598369566437723249068934884272904475058969984242086250615339521757234842297523801478117757157419569848190822275942193662126647171898944187708605131692989617327244947156065246137200038299398870486203539683778401660174421071222205552970355516254514030299334724755996354709521885601270301491089196107781732029845402841689030192628893581938060876178781520231939822101702666142733056110389169917999137198628718729556892267750447153968544896899715614321714957386332696891670165239410776107120568919664312362404430002171900190624265557791980087605083088486202778671907057261552318480762369776449375616191549012297982487016118437130272104398664204306046109799303603192689752708222675425803972178472435184002906627153256643656717859074037823891024983878912692151206348675174145400888906009168198026490518604697106743523193685537064360576580298704327927339862458149005954336742443984147010421555381781822792056563142964556553115389539099842620587773345517662846449786552635158998680078911816371534962409208428770135615102414052546210479799941616483771478949875788733437182851752494943404438957988297509292718544717883814145872529227111096847730233322940741242474811985787716672864898171063321207854343973956773718678612553695595735759208248308165867335871644349914824317681620944703588795687354570446628018746570584852083802420445091776246202466570818822177828398159575395845938980678537473660395440250134234496976966740529537264547744545490209287074102033513971920643628630759465108602679765007858322304063700785641303217802395997631890512396771273695414190171166085912084540296595107465460532107593532629829320410326450742090956786177522183819875164961554808262360285393873366622236345339669732635389498422389668116424195225333161816336087153760688852836216804013437360440086057270176051166870727610424106605501002309468516048092688052075252894010945265347146248830207169677340765464633096625682432974791632279862461817569798197656870197873441975061162838987194107215177127787506829186726498248029953656281179412499856683766334987500240906748433085143249387995068321124037140145058244983269460324338356252265758979158559607319016886420834002073638599934295175031484725885042011229256098120551964275100843104669093299374567879988711070795610454910741031578241134918557785962044153228907336435198295384727488247199475865561460008594071786034115024437887123457499895605949798193792567160079755038909654807015980431412474053553917813746609363043163046207787052699708436528529218681214658079505956491766673764626540048084664368927759369259766414930221601591969258159645165139964091509972701975883562394663334400910787340829172174313098586493355159391286108136404500675794237118154391412599971252177059803923970824031142221776988222680547280882361451106295314348498345644116040703322074704997596012548613863376173423014855077336928632756924614906595859526386095358582347544218760860284962304498680311851327348601167550333242947292393645709435826456020424440551319710576143032089546468062069251943625247429777258268362388042548122884520949502126787551052585473308633045143013875873705534980727272050627296982506956941508270728867028543498761704527738941298372958435123517826505103200484869013428001694627862974802822502834697072156538269906296024331485194901091372060607838207620845815997768815007751378780088935418269980103229868158662387685088354861623008996279897063369412975440726448770015473526090146095702146479066283423735144435431197866458194111629392701969791690807076456474988875193674682505866122867727985762318623904244228924104697257007677132904205012846135300045268182528161699281137143040911272365284218869639491447626688514800295025154943290887317021027075271969369239655232156061779045817778090260137561282109823943489115934337360006146420381609723012520425542133074186751549560760564739971331516275673390555280266292235448706714940311961621967803135633993281859786383212058235569581053209187935333338578761007996680956359035150720828725349318419793727164118106101174603595211929684520542066027436992837849995284922146029740982657954112343504655243042160649774263692845906099206362845374709983399393071391541857477978692169003579928519136950602678572763614130766963906936882778413957393055763207757908136231611140551618925870621580619718489065992186980753710550000402102234539606422723316630104243071335849608442966389782255800617493572560034442478675145484272559624895202698914782523475591826033739250269232579423817479973238444945394374512093473739227781470285240741249474487356745143980998819252036289527558713198866010684170712872468014288789435227775262659149183998735795505820223947517126157501173103774884363412673635735786962741142746399541597077036777692488939222284713248398119444242674976229755499461287068552230211717804614977454501275361870246691319669500908936364325424046868199488542552572216179552212319765896217302620145628624096862395528981343028723935627234230476840573002701261348615799373611244503310064148217353108917495161476851395230452221284205943079177710533830815257332220436066934247864670965210342360119932726845235193357076835538544219113706894940050657483842514660180027858439934498117693285294263010604853568631589217468145923904760509448135037329289780700308960283480632852780938311338548254080112095023489480360366219342196881818630017461817822846293306237523599258876929951217680173770427019455342905319022007125023148213975630545580916962904934336155981421018169395893430940283499014651151325850312093141407715452858514625976923361968683578938665097854107516623827345159422193866366665843136396074829961755724138407577893472546834132880143906102275639923582006282409160223243362688490650699802008005596858478682089619465772644173817077999751182689240859796822080740838753764680974705436292434770152754101951575632653324412442743970576565032631089609761740128671962436962677245227344803484232558805005969139022943614760223018464530297983193637264631373746624274820469128656267282030272975526831657231296155268156244028295616116400899930338899767988088922978313253340967674033435474711493686384782434229159387016404804906389402696119983488882398944737104683357536567265412756703894359491510174469210717298082934737577188752789592679974520066587487434854938868913869660649808761924797441574850045888250713277361267527878811619390004664793664078337017115367687030940617561196372848832236626042969180464442032093314540689104576589748031180216298633819943960236462895020755546939966427927078721709580538960523119379287086303505271705116430630978754387065227914087029232807185060977278548823580658589371290714374485032356165673115604334784645345234008721698760069552559456045641951209470930400661189334207994376858587690025514398562380699814828069977379149837330543948088966391109120220545435958810432499335101052008017462490708771593199921477938831523202938305149691648287749071252007982302256204896729339420670134910252031905332058485951495739257608211464158305264171141467774860613150150561202109520396756854136214317630167348230673432618414302741517072829480596854735759157247837861596757362923887898480707230688423215172410886943921252521586951881068866750952992790414014267533712255204139815904484031125979510328307020464055070906339348309318016284827293121554423509235403815839582747545145335264685137868944836816113772764734357384960251829175576712762932687916156584677149808728543531784500843868212526655097135854083972783721614576479469800558272313979040995219035079632488125177279978404871492885490356728575993842890885254040978763301989284857534728136325479576110143900809684595488568001916830588609640513642736472849725121386008162646385737421525607834178061999054930622405041240202958218598016173396119762114815276610112476008936953974404953576067373487632912486455865574557786773865200351952168128343787109105366066905489859191857181258476899786496594723322064661503566539989619945395622824662734497879986044277344995005959960948825868804502066780419417246241761508789569537985102254898628870969280356501077705107186305751929166795443192672223847118392449109943260879992001469708663028856466146236876635139750429491197488295901746133773583904928618937395311402432045953849767815435238444571554414495206935167115331300799043456105813246504553072128401018189927615618550229014754051324064038554756389964607847731328314717901460690706177183974106794309027349197771263534167456999626853598287279892766228431299390814369672608085346481976207067586765773305364037229366470726756973542813185605613744692833780793064859558315496835803365147807930104362887578774956355433952264712037988044351037669483633663095738638430554625811788599249565405985377301012479054017413980206920434987808874474421529686960249992186883731982365500821893063214591201630407963144332623007441561202615897852075862596075570691715109015931428222227635155707697794913474728174510307231145032392896865310446351234535057415983667377168058357921457804570860581347985868267506024665326414285869288883290981784189729736995885425763119781196401701730118456269145209070381885914272929473459812462727338171455403799379880612546321590134363925584553981684133461578349193763619666150058128042599169660852649569224789940225646253598672889527458980703328139387601560457287515318436224402094162857584685236255461061006346802433009166928563154493384476327529736118365054929049286892560990069565839573899850901100178036332506075717961756572767499923700538459801048999266018241551913161978990410584994820630566034260997279650780572813519633099219887296922419197275607052113984268368194637461968088988182624557562833948074651443716785906869619369248012903069052833539979352212222596969574273078339029368122442328938137355045421655954201538630059930713187986816650692050818169051422897180600022592589452430470284283858284117148247730273812617205321155897624865514961398641564842766774808597925664767460051068836419834549588698392774263126682146948718316564767042049044871529253519071764099088802803911819643569195828891927031685231872972076120030690598284308837273103109875678318395100853087573119634251469539270471180477849121801534491011988638118585520653584076145166521214039068904442082473458949101398792860428172866841346468645451253711859924002407317568478605555230045358472565644722215942301981730847644639545745341210734907419000924630438815652323893924840365269323635879204313853597225880196375095084861009042626960885337474838288407521683134325547753329940405351201486140270915415351314739037053403351755133996932507828595695373662106160749392370846147454691622014577716326158019703046527949037007341502307266903211886114645566811242163265895764069243621161003976182186544860230930342884344951296112515027341616820329629614087632309111772741440955488013812663782303946378678537059908760091500094634958198021453216381994583705465587385770932128949878197301386937188233084831831069134377187825119540744042832051380013387787573117944336466295689675124470080810055278573734573164757943917445660879185023988546313047109469367984697741121812865965230775603038364622871301377261770835577742460140549116311393818046615646499306992409920654793949916591761423428375650258783414285881345015738030790313898340090062789252169300542829288665708353405632179084099230399666126383115614291550904115280238608182838541210688533623749090765519895363890219343375981655858868267020991735912471792513297014277315709038271692270379698815119484433683351919596358961218899220356070428246569163562756792215359103020795108346086055072394337251438906752316108969101791453894580935174706738113123700961022246048587314337749017000467606471191956032019865861889597354570081855562176949294979275602062190259645259465453778189374875032261008381734605246868172771809006890740908289664962098625039008254578138461970242176793016188661193545007923127972206540294270061949967803500256030288967454031736271039341863093207066058229463568423354634723264429063564580155681831956755435546138992761541531948074091483726613115613892518568704342473889995859418587823825484101372252086769654716642208496505069700431546127365110327969840994004458318099364084780963776769798928689383400658853700844288024570060255507162187397618530524691856248739398469292783238860272546030416287889888378073888716759101792347815232667523398559195985553011065860687722067033334339689147048532596661969196541065261551728152271419901518232924666277785455057757925026508703457605899791944293339630508448683590895553722426771216666355074336836221299289690012582974631805460344637578933445889451663589301473275169422571699620013216878855902337134495336122479766456786638850827550324638427857899789326222720186067877520492925263224352996683087279601498659180934327498611034048513143112189094991749064593787679361613064157925350713007060725341445858151284376048460479949469694839990269846314426561258098332788368023122587230404483745000906059085534393387091097096047844917159541614717126649054126602774823615822123066652351197766074059940895626067618501672539258333404073914234724251637018708991251060988282862284584754161965144563844175293757422898387037700275975944152551447609076001325319258788874899208395435119582258387747113766730822196646875898269405009214163542750506359447855931718712358070813876348933991411855730605047423736486586951877745799350883390042788187297598505714360116646075258284127017454337550489720974918754221917036601227258698462773420479398997983038876960036651366199114899236735924113187083367028389881054891004036536689897175105196460094906064150598324032057669250395336377448491310940020057199788543221614207748206482631420344456930110142743571515375578194462163859492507828540578406126779922533382064876177131514806155830723377876569360463401318226766625931828801654286166614153804377205890024605633142693563679421509706415975974476310744485854397118450259902675571998634387640763718604425460632328385652890868522865557016625137901047603591997291454788929711211053770164499684564658560543774547264845811151353337427383346513768935053084817263700845906385170746173388291765806439636798112416065482641607876411011232273893655812912737056605573292278143792195745133724286656203780130957023060109589358139508005021028962381493128923056090553400789891242003773301670219038407304424198649710624773500910528506670046948098994853409892516354641160386139051484472613295066057636262299788865248045442046014800559892461416039254920191242175139367615487316982744831150457391179713941918079355724733047702573459765514818704246853720157949054130109078751564061083635297011717719776963087062054626679030181026389499535786842991153313105050275331244923842029306275049819917272122448282583163049733678538399993302416262067055283232611373240873955168759916527398625254369064805855732829456205399484701405646075825774336432826532114053164196512809320943569419782668234793175090364030810538528533790943574663312975471053811415032027746085772168235819994719331466298496446133439204283562257776060054981673036503821023792540367841911389982291474643472411345229323770942653428186977908669537863088648477903255382426492990313703474343060833920845994498653671320546541157739694629829047043542981765986837786350207321576975057019398834700623519677859871526513790252635576127232667829307584695684343169791475145162188644018166712179953669310845666570733930899968931971208134970743655617280847044743884798296029287616406916301837886964225284346697149984611797847312750109831738824705862848516683588907662009108232187357299006933260561226288654107631205354731264792905294755344156417438272272936077119341172634799182478510609369103581467563072669904598398630051701002333458115763300348940603586419394267511777981643660644113976747720110225398464467154962803375236006889829542673612638424182377433320763614735258462271223084791814382845557495209602856804307533146587875504969299429448890889246015568991315329680952966378435658958654727674933150563095964244714135546474836442155895206944806270426378177015412106058183755372875707374304882652138744565216728174928606238576904381518837096104960462273135572918297541343327680533921784125786410866923395417977041595748308948919696913096210382131856207905456226133374128751282166699377546293727736463341305206669609155674466335630896997433207548777292592861481660522510199024773369026333762123377494737529589724726675841046550179946198799226145263414061612733120732710003760113456918271178426319164841162684074982485052704974874753277145937496221389350800538939194108577780917887891324604845136149059593175703073063445595244812504791455877897827328533829074471768561676523944843195364712900085539677188237008630008328001513037999561125936777916902673495877705563893028390190546343174100010695265377381643500144960259613035573070905850576909829422379967180802590276928091790516291083223002104742415689571797621520081589470230145364703417112830648021132546393954668897978244506249177884940898404605498509011799953601441825635148626781969350796376091366066373053196142496373416912253365355631692199128077741646736415128491171000936913603622086709680487815660158709997184398931511966099852128830975823708338649519708900887664056412755459970255208727326292887594611749413406279867419208636111838891330478609077100280927932189351492867493299055584502147936933464950978056355729857717493504360182621666850283806858284361784024292019995143203559775422912095670439768222216320254136614206658434514380871643347435252662468909148855652828246378907212835046836471749271473231051609372892661558085996518243153894598028483074087246105154109612853897454819556092644415480181460461417922225127872948847814313004084442288734448404382785008497235492233168458803996635282635992226151165119807240475807483885894286627311770749786054434243041606797559300956142925069797328932129987708155387106445341531908990442506605935504996599866601622906524889906386369481444079943964127703602796671576314097218529606795321517846105821958910388335166639155494170988095808925147327030315606843477986434304056377739528632839382915505702444384038277310909293812389434319420434222846339770385248552688386593817132477643488337809832292806616729170416689207741638093896927205833790030044220707281233382135455314734281935952459550017760786321239579038586385191160112332468271784812853805261305811468222434690966177253735295021982096738139791215868480386488829989347741687949894882086640887773018434601877082875111867218880741594096911162653200331560613310277533719804374641479347305792702561002401129986080000651661432331898949612594212522859847198939500817217942661265562246941519431170502936242710391567994213112280507025019507991406988083905705148045961300740600999611295735202188090366370369015021814965151742737935060711496431310679622166400329588572447674356775405124425060179787323284073015602190635488040085798596598376136594273494722252219780776983131862087037986734350551111700187800043734725207115855696573387790693623796051415812297743470715770083762355622802384510540566075850619994346560197925270858902961529100645694632717909376847230772074459825975089637943348868284426568157656818414649555999650407809991917747637076031284922394323947467723429752447396149325134880601472858038266057609479122799603595958255239212288061512834796662540268349919234349965184752291423832324099911931576047708483221335973986679090513638502187535979428385087351727843469830616000829908047166410357258188051134738919269794936892480552934027826233201594541287071218182668135267361279121193331076734164150801670723455155690036473901290104327364530451367179104916355872488612607154350717893744681261989417676353558233668645319469254106929712260027990182110168325382596743352216602657511778621599497346819093144070860661335772742504679593553698661583538510516661764049863215234365063527946004699184642649035938379023683021447516742840309566501634069801105234106432235428964761879828888954622842940739331072256814308830714302144402024791328758873766129207475969234259477534005158583997716275725509011321116766961346524017145189357941289634218920683749083123947776567664786372054684243606528778089093097927311955748885254671556695364397191242200297400871449253532689450650958330012094780407219598619651505696776012087720302005860298904857026211411734919830667718943978245935983865937971919849340369270025875222872691447891624641902737383410272959104428862059535738461400431743389326912769661090959458492457327527939468876080297312291292197729083445822780446908701447687834932686324606634818017326145393346856847234578185779586069488029290580321903136519849379799383387959609567843024698261085437337000271427433108724851720446765284770834343105140058587069456699797710478260092499648431794842815568439655878792616049659156762818268159074960293032674140847598417291868152477053273793437711206606993342984685284803127041164950400851698548960399305958420217519558801699311860001254074450131821334092562469015315053760776109052793073902346521495576744855952008999260403822002512940073200123405972649808466561022369076389282184704443207876079617569112541369592930745250602439273651425291350352331798042723419961242277706058221461094921729798949497261321302295341888497014360465186615096213730900493945523415305515026078362209211114806265801869270437532515615476427572446012547720843863245210636280738221314003310506762060975319661811397566888498890108326487756542490753757345927873316411618978067287564449825330481577701974308070426732679461917945297916070389242490366691187833161222962148746853319099694327773693686457241052883010489070490502705905259334418925526037822726316224986052812142266543291777366326335004727769591932093869236371786252222901343462914978403169327061778970081352283214956877999206805702475823086960032465502856604821019698396775672285616188056873017852950151621134158989143687531050782126749117025390895358530812068321287954703904799481076666054767859796615057858921172761328302110104231941074603328756637998570499781414104578699898916821487149361144240279832135463874860648696477163194687329337001862555487902949113171331252044913324774614053161047415911584156782323540581954419983209948225816729457620515178689410634612061584352953307733881901183876213590078862114615351974866865952728635908138905951164038261575400047440022004649242519100739788958310708220321819966145846192442182890344920871009386828327145168729875919032712295933972917025066918741072081286665013036374445123535067452056106246294122923433768468820696254761979901622219809427946081462901763627088397336116871661471290893190996421641301342430548813541851807937235774543556260352358051223068962140268840013212329179594018193215178655056636642828850040858781405872605061494346144017947160509393734765413110796455332604951745470545246741517364060901840418191731292328223724932598517950611205492706164214198597308309243045696557698552866134884610398813428958742371179695200248199208645438466033866357480848613546796070972923011062515091804867098640599556254212388633226285463182849868894919779710801722673955863337410080259423342885758749578592405523942252604180770937030995796364148758375254742440728215640964027212425355189717999221691773554617468484906510264883177843640136001464081656049492120263697218470035549470152321877408301402536419276440171908086907720399069631050878000145253072270414639138058426345324086885476591290731963042812419255203162001325021417021908846589087235586189502287421409375289521488966719407632754445892075551216763235021720873189504917053890435439955222244945182294097816658674365373580345093485972229888379478072985649438520228719881899449023983176759097716723804319898530416860873020349643987430182812477186594714815415959948251112218759533981099938813514904269689009815798559064262734950381430771264566958421366255653256598992480662574397042717070057905501967194305267611282393527320546558281657546976186029069729314934110965644912664346315510994130783725751671587871418403119632355981918372623858489230178452664518451701464016280522781071179751229366176720540961167601752056870494937687390668040704227180921692053426279467877910319474281807853317599101521920937231790184330639388019368687781058015878836641710827487646680911255124305586248299473414302559685119346165617286116930146013412138718310085394589450660513533297140210095421783756471524676300661661640238333454660036393701403433484555025429600146689752190871688793448742427567100913988640645093335868734578625290377391452734494942981974813913632273852430142946603868493937883115499255850110566580721152001755873831210662115825012854528943335238117960709286713893536581867287718836918588428158786855991399924960664550239857901123367481892768893508345403979472590308567111027044840405341926071603456031770301950927972798708111506457796000317824054944212733153125899344979995329100081625321990993630273931757917720079639310142101378413616357182941951710259437153585277694242613999105201979933173938765161305760964362032378424516003351461143369734461378595411662555728545583278208195705069996132440926236648731760312462906197541340346694552155252435856031630854718437809422207695622177474385938137208843099514664299513781272720671519818523785258542036649192822772255398339258851903306068566021944268888184231339552637918410454487094745092980976761691156129905789891344537568529398528573650550569079805787216994445049195190991452300988911995085361270394176699159732335188241251925964846462632476032028477054104316975281175684080814135714882251673569110142924082648386849409264761460979819475929993268339438710317036522915132176702834760255327541489685058550185512822775114373520869234571442202960743038865883758682947525298028008398078670356827878773011449292606220095179517398702875385117042341704436379971973849905094653839455725297312795516947251603759339391925942205430312143729749394739063105840707182199374422435990813166776481089540649657103939644705660064281359141530647738135099386516403393813817666848461169326551596320752477286723502468731760749390826817409755478080155141841411291527038382159308560899937337281012431838756495787926480997681578270652221295229704375350458551307035222458121303927677733796870900511668659048837908404082227582223016874362319582995493304789217699849788588716913918984360635442533272681336952184572710759863577138376817058922149006165967800697058494057712265805954382544768938377384180965734816910979006268970031979073498715963961466848839982341057024876928059640511676035913723702637949974879510230839718345359405251017913891088479184894873946146712251851823345955702229689510369112214262865392108055246982189461427003213645709216221242478602714621599986878457555045298704775765990905051474943236403793953877558366712293768507379361815989090757772298720257577110276070760949170422055932409670307192870088439139907705225868758017733409116716121583546285050138349541080522242247379015518164273079511359924331080470595727460166377933454239040757673419081890115540771659569768926978627515688240316620969321441885350219420870700699272736155575644445101691570666473229119192045534215677557659321303595188551613002978040325253710453692918882060544663859924267276560279059019461825529423288997899215846755241354053513281693901389334361676869872984904546108644736226338253870675253483307958450352533802131307907202062842158765955384921632263046646644435322092551619558808482858335504876560971525002998589357454391391189546816656942878782359747274176393388581066296053199969286715376466835563372205251143241320864695677077037499737382171087716751364950401534383694171549538727878112541357839434223429065767811359424640198368418151091804997379434244834426291777137868205756394241701620499777650513456910800635454979233832887296987208705859177156696225450003331610277387284133337717280231589552127918246000891922583527945897852873236280979731692138405718626656790535852680409248526225258619714069009823139940637266419152346005440509508584111333508253141603065917991801181079870739193459214145640970100110621718309894303705307538288244855823610055493871263158041579744429750340669524723013098192573616948997447623472862970832466337943160226993891423021316386482093675514044369760515628215794147754633756334500417580205455925120452600060005087816665477198662526374486248413696048392319655902057405339620772162368276463192089005767929952777129082649230555859795454112620135873326731722849540092547839615557029657389142631390704345597551906979727505510678804328080661029461744014474247098636648103639002201933718839400884500388788998901305531115221733880547752125159803749569423354960876075411427696756849998115935689728636607396507460053166174686040997054210294258575047477054696382135127266850858572972737975197919569574512758783969130290244515831537674743859425097522688231849857128800984752836673183989311482474981983209710737423811783973283652047548951669764757682784305109817310168773274096703385654497413665624107479504576966980854867061052545932145764932817883846017422026187784181946420511959514852652484720802518445997349659134251053131566934569974075518274503604662302900676550894050559647796725717545333241900288438616233514644932227886853289271674973799224765515062368329128426598462537572804173742467852157863597923312981553152951284979519314801614288202777469577895383180807082427549186964983583400879646298046176425891122461332296315811061605152680470193012817926423219325637781292903596619471313909861282681240290240833236158022487684610243017350062445808732993763633769203730808281876094185614279036775346661985368470292176628706194674156617361800927677707398088249961198386333695314560510294847003381031528488237778029452662278670229484665679837339720747131525561943872930101438997081782468244605104263533919885959006135389987712389636791054404925535394517104662932301540067766132102974047835267131370264946150594914163674461884079732083414066348305749690166047468219598569454343027633220756073397565188435361940963170228051228960774911943541086631523011254206037651218758917650743642568739150927176656437165666052626462831305607764819530280589410079061732143241923165304898484650931719543294842118459353868418721502704930036843503097759062955404396614453394886883198895127408170707315282472744632635162263339436096378497428351189068153182520066149358596176428609307508270104622286058932755556050750562091430988351484200202000728072046946621768019710704731359660692117365395442793967952464535123246746683641379970842779061323440217866668200592713351862711523026930022721317323137071043172736482338270194236305382313220030164258589193500890067285731179804266321462194249006137770269697541612486752638990762562576538337044494927940891884091161758294984542520036626540196783862801877851071610774660423482162285094821838520327776594279186201193099133140522279144848392529135117949723086346209930189021597417831707083672147912296946129500894499063597990295407322238734640486238366603963861005940868925284185641676270191403216769960454474660736806762242912419377359391297213594835300409921063331782697224325987754653931557006156391913254553612869224393415570223266825888079914452215246961961450277209627178928813044203984579768477643699651170616438317876966945554631496172383957671733768044539388317177507219096123317191450322780442174595808708644752406642234668319337533903171971366294468674314919226245489541775405396032092492816601610937561642908689834009872939496181944824154669144045425589121329930012223813520303523662191699795923967949240515221541472237975742920314059711769121790578428418861025906143902275414639655807408996875695618848355350808692836301319690440411288394471791511105838361675587107560230121239053025831986296593901979891433371361788945843583792176168487453618812117378966259069517387199705228353795968616493663922172903913816403243104861789744667843609015589755582974563012582467358372465131932885985852231363334659731894372446689634903029390155541187332759640809776535382952883601262109058503564576360735250204143688644613251519721946009519364076579730922907301754323578998555650553338319907954954155012000600258679364587200908865893313590372607610108510287859580411608200705390349500107090046781300742370938600491728528984654110093520324962092457840714000800687679344744416138129087110866891527664967994213382443651952507491267360916758146322142939656200511232685836145596151863562952571375276212477874277793383212390999870660995914770658695838663351366081447554835198199013483248163801471927460001172236060137570658199946827362318463500702312793050124393249591542534135189532921888171529969890735397393304587594630148325066835430967627263199712537488672734751384337580170775268927854392652646874868533642024887366151264981643771852601701155993156318678442496392487709808595604794108644052971702776449832725355776853161610862502138012903957442563376455394255366655065355624519031424663451008208529513361171434361985837340362232098911776069833343265961603795982624140826010542192404750540584260667389354641252451080529904868402972083623936210499602792691720559439798858432387322601748117618569259662198969755624476910978029383488699721265032573196923595713778960717343130252742895639168882489686230586432562524962178989049670062016530251091655352987388219872682936696145200042342107089450510980143068547616346705943569599039503989839626393621606097346394974462435715771870509200343475082351107091209907611748252025445193754405034743413662347571464690584587027711654582194764793156202410031602459444026945789152274525299610896127047675921337343781104568325748957338038098289897320155456520887166266087217616298869727048540135194873817169748210877336385345901255565261068300337636683019300916578372322409139840632221361516742699910518569956226219943148442870277671936392717948010109113109665460344268115577809148132535622540805860358373680501965697908948155976806521124196555461675493690891130135297713514073950009330886907593324992502818776835560679522028960405467255951519584939598326918763280490294938053544933171561579242220928961738667280949649625570799038895637700532913335437351763712591407462562462021681221880768694780015634090911346946056761652131388359493210336389016384184718269267423081626855001767007674040256921481350329950030554665597065800859376919560343811257562892282888875462384500537953632232236439104127626592070953107518023205541693392331754628879160147279413657563717498279279074713034116794501030738319750863451214482510146117728504576083135481170282830640604745937735269332402680927073352021377428108852925295867002037152091733444292826810123400439323684387511316247020339393511191167806893107649906419413778193177134042980837692697844477598321318058473163066689176836427133636332780470181800672976474754886765616215573581434654889031662899367252017784870831267616058637472797062477857206894785294528965238794213759981844054476542554621506431803224398501953555294984502606050152253834519711667652393638439498313733516612056685316694600549210233898557973071629662622692804196995559185945176872340532746917808259867028555379616445935863735934902971082706269221583589236694915381643318684558339209757972214880508697903252980258652199914033940588287704982263196758039670344115595958875108406149262499940962476418428640584844820478844288083157935314870250707457272510957515641732431324193811102865994539249190803950146192303165038937447364443605654240839750998412309039956386103223076293462196290752735914781708431684966094023298637627278365950645760247105513719714442830683118781105143458064209391681420839734968971615104347104442904276665040483081805194252124833537231273659554198031675163039582823191343792699539195034028809622354797048694767398656358848904917783652373815591604978193486850045676518542390867181210132802113541883086002324539604230545249577495558585026677804273922262616056289860096821431707763623041660967885943405172803858611220214414739694570989245086651972707188680212911197326540071011957624034358948827877032026390019654510380647871394193957056680188978322652426877189396305414474568723635687903269906688454365407959805363464669644870059470687777406712584540664446846170092164794837869176879851848423692254949966201595685270454615017318298675975877468576784342418584643678029094807523465869816821086428184701131504433288704121833812551451998355846327629257921963504639180761122281662895488018170099511415489817909750644520040150409819931417718678711768086825631929597235484453652922435534037268620569654459718824475008024427404212891865398842095475674190072561722881991740791414215110234102611765542421852390450849402603675779953557916566300705532362019346051481053269165256663759171445069694354573130462119730339093537978272851191186727270428446494704067296427691624294508165973266995692694320597171257481988513285087935571559352441206889409023157768335524931928098532442484048832310654060106305026200448388644106849901238022637566639324828748476938135338480710636780531358886691642659834473052911089928504049571739507415646781563827584912360981598136856365348987352985566908300489554415825133944095615095058676904311500691513608761374493087184101776376584343740731017661307045010157812728485535613623937713034809836718716389344409277186877327972448903038399371459500393961241427687504111807171310049474084725629101525848555483966829774689776215784238127542354588366842148533192452807746909271916139881417133624956879985122453917107352283748647322907774132107828917871341391440176213560133648091461707888185353741918167949037141139591844893094346125094739204295288632964400092476714149279400520082935705798546433685706713882874803553104918560698955383088772477337535788127603967162471336469935940385214111190573509520993007749632073533595204800719054409921248319937778958754378750059626638527715552464684977050023399619435112857563608834442572032334952051677828213540594742834033197077450538387755161790516272510451983535697146601978719979882827029902544734777023909764046509477136531263769080206462215956646015304806423180053767674818317888882459276774955842989935961763723860009703285269436743500865751296298972756253486145231390307504161787704194062655894462105638924335294408740068898778621753250088974589681483861824225808819280883202345528170148436762123495850625387553099856075112838356557356449061722362225899625429778364865074673821293966439016789423637697300079243266411206073640110598966651351880501513677285916967570842730801483202721091532913133897945914108575986556726711506123153813848896591620908281255528481483757128598507399557440036938694812650370657567417567003936222298801117961521116335624438269032154840495096221914573034884911391270678284960547979078594082908320274418312120355023338804767640670286272122168840164327189565882355599615062470408615862562714833352283160839240405862138113076695929903676715938555395042082980536695072084379346240540379819243001031868269362131445054452792637387619176736876187718306425351402408558453471637656796550097946842942425974745958799335255203430563426378927228623027193632186848869753088959567629946491749664698635526897446119102595943992989673386979052044553697901410739567307979934169544548599472438034327188221187277455697961355661342853706166918312594132596655273109490622279447677611765453594935907183420694667496546903564747567156673516325096202379454130715820989369819561370117968031094167953661598215080808002094511192770239338690320920910844753800168779299071363359506342314050620464550342805462013493827909697988289316896678041984084670136866421186027941149201456923093570058088375939478107351480093836113835208305590303480634154083763847079285545747856573155988222996957429342617285612189540087461427834125095156876019656669048958748608241731223187708975563782839598288749515110141177965996178870998081039249442680729983299492111267674998218123806029228188080819573001047397986795112302603887304888990553290327010533133258416390281650731492505476460032636248580854977388268646529177281152316310914196598180209648804009347687936735039503869142194119365505604972207250531312851515654321838635393404256613734275592687780899846081655750985442324187174343679059223005295630391151098689764183741760675637854510948301268369551455467445713658576054349359738871968695550439409366654633848759582340272349569212887557768793777368960325609567535653035075075738538334601047546623113258678648978097691582338579155986122913461898754484380302217256835012631101948655761675228867070909817656739276092938464175997041113325689846540349414801729282956429321206426781636222831781968590559737867007091250885835923124823984000246765457095729121304168209487070995170890103808332025911290067775409389748973771231373648578285577163256678535551703999998699493621721699206888512493235919716623910511557394780034794393939669045431876363618676242916785624015186888076893464631278905110219018510492801199133339090214174123406923029079740219857484689823665282734633165268629270863482166664643841080885363662933549569345442127672564075471713784896854044337828524978950333234938938840698261915478419713485634838313062828070257653253161270786405223152687779157956383096931222570418419457025769990752821209470155218463731240821128317512925567857709372680908035268811680362386975570661618459150628070161630422324537900417429229137311561417919867434877753901706868432697810550698077519829875995349124632948952981172401603908194158345534544252454588918293800753907520640329302441115179344517665148494633769591454622098650963887624018711073257359630118964276563689825393734741970752181850796781045354570277997325224707576713192696691891948268806719793410069600763884801388391453788839464618693807712237411726519243069260806124429579309901330512007204931853298321818008362309433665349286842375955483085658900830647422118862494201852748720614537446059811736392028541344627598080306977314245744839233319855492894495633163750895200984984937732216342505174964607991334453910786933987608394426452115519674618770874633201451243645054473574772159237182595627245310241480218829879285454101716182809925519473949246822421233997191329889511509924125732721485341890786123543656421556056441688194910668963414669384381822280840041474473151542419704703134218279953294234469347099643247194581431635455349542660345614546902580904644066918119879185126883123472469513504579092429685005338301003567492017100326438744568663521820351483392467780647184446314140169412288956179729797190582536785802434981615259512295978457537862288223565168002882372568288489205827728329997385350497180877746783748396477666504626653169669024944621193824045360018497167818516158480204679099619635373128417177662030127601391798987452795679959654852309516276710186925998558497101419219241205855120975634920325738368644257394485859334211450147245728185851031397066750073499202503251687144715316870053751358366668101748529669823375577029218208181031321817529834213733750775509282970853218450756978949474000596968023664427650605180725461785143338265093182521103061955479462368294742040691078173007026405329734747706184602495685129060880323403021074241654028120936482004904929930851436762518246930159417782296046907727180457034655766750219681574773621395786336972159241860343689874110764323374367971732542359141987523843383792248887171829585171570311190588833029462188813179605551758120701669289108448592482314243135954836863916665878442819325696582632599596642396595203092310390127220694556166550400028833326970346518483604772815175490228117424546598544488024252331919858347661447923363414290538118088860002762547082689897059983388587715220198948649173492608723306844288718010511209996418280553924159018037650079073353248704053386798471811177345770302503884058303352488548962252513543355279111602127331487183837754261331778354505155192734935013033979511319381933759270729927261956243184049566324050614368114117804836013678376525516920244743435657380865007302193068243652943199787000045038119809290178880264301417346480525287805298185380449651488173861532942547802920308595951822522117260367748846402361068523598674116232886606553404016007083163225356858182690854509786288229339052859067997062081716853633875011137968768484348985850860447411206885370318665530866314109314664912041711264221826881364503313908792197500991076995896713197765043261247327842081571428021538924395002443419481394020068913179807370464946206356511791996760806351734446757752503573530245063935473437962333144705302563874443676946614793505568735040289732611570605345392624543713927449305129214421166134610233649115691178288424524279134271959077336435956013997833348292524886756928573324439584839036546430587966378146245548724162388046528638136175397254413232343836248442389217218206910479129149723548519372152301872810112924900290665531927111670345298298013897973130041645049027018876635900521444849958473704005564621044938127139335508547420384699220743329119692435276209245130628757414043889956176092922428345215925697776407232638392881370966791146531764968717151939634559797365335858831030831161822079780310183797625786467221831306209479324502853324878893549030744578563123954406263232412124418611455285746839563478086004545398595034589629450174510400051215019924552511295710237490659262449357940559958584614380574204188901641925648280939616000225966628022301672774164900152042478799238601880790284956166063414482163027808230503703526575399522219066756993800593543826429791595005254914610067782048668781395716424494451874157861838393102899445387416915438250626907817779379217081403492368669404193181755575392459224433244844385426615913850647807886435823004332562969735997023626908990368729883027315369361771524204214368244747942943847488892127662432379481424437078283513608287263419219954445173291398027772252516955113932192763385528433654586613279709141059273024355667822892044253105060512484389288244577717575815264407270415547127257884484068046334116276801324550656183391567734833846331493064742698005923932285651641713694959382345148094293353870875616658831945666505144325767235699658444473146784696237053490572787942694145447769137885555568573349070832513083827143908926943418131422538864703657981847739549574068365551440213366625383479226254295176408294756631478427050559676529991894003969135434335064496692950713496608808149104433243512181709113618796111880604787005473625029476416360499716763000034668687989519100954817085450764733689908000045353698723808014894683372133009034797849095808770029786197077143448047375208501436419747406313969339491653174889169742291617898123603591956184676278827726847649729056829243206540468510103603698646393147432164461909218268177242679914333709446880857457897186902330387230569994201672583506433857784313363980185374084397014085199102363947705850493371461739780857566530397186317109528147149134165567324036376202988827989753849351959381208407967285848063079654317702295655871891877063405402276454357609999595908624308921572220398171918694963757497717036190761409267686917532289009728295752667017946947432246397958876081590648784235074677551393681724690406862629763024037650976650216514991601645006533744968346572318424803567954129638054478234754248092681674371741730346956245432650752266293466053007982516437354543009816527626417719629778567058733239500945679021449247834519005245439027453958654999750527418408392887262430587635170573318694309315590342353529470220073183622101989281960597951944167203136479610581132116171750951785763570069084271668656461465260176879526571846775589904724949341696406132351538316111678041035686116529068060324127885760716417877390713043347331366618118137278055217549226882528612298453691203227490702246318417496174776278250180844521562574190584362857098520540577870022413130369566400272253234797670573019057750107105692668076399406544061056722073562010646407013323676387778329841666388629009213989154411527808195790754071415334634072819533333428442485780447909522693663710501171072169577109472931854808590782174242034950424908593539304891790508581056321646475267399818495809102458279994455952913445607731716464397085943608395404297914690420783010533997412007468933044065195419467010687421582957409447206100521491748082377753145341021327107298598867264944142956853676533716847157343233929387255398861509902006524424951190285616415341889310678654961672646270790290674488414505536034882211370520520809318452299346383533335960238402957850330341794273066870312384142199780542463853659063619395211677336354405637476273621841898593826219963206906930277540549894290178202175030100175799710698476884462839432498457160259903510021408801081568071145075562867771399718894283859080672761806493611213011019577290756741430807104508900566610672878130920644205398508218051390537263778747413237279550448565006306756690164422432264568032736791535984887219544644855311854452137501873617871047142330273536965797592871390906059863891985294079965054244726444412789664097454158459603556225981247038189096593558552937733421577200105473737190331268736463343180684952971523199511951209036902653264354337057510189671212377021268566363070901068628879905057621521633206388905233890845568369338866707783810679666429360727030757240444560070166657421382835755251889643773290425885721056592300321007386144514167200859734411392719021626543115621073599458396912457831942472513884708343118815452214218974907440258048786348354003924295343677852475224346577095621982605107555059847221370697980492450289678446384008528974110164089074976182717877370977108052332317579437252198756436139125068636414443523352763010909373788842259978834437207540530904506876491716848867252789615999145148722176976844544813446205382755432917699744711208771395284582457692305188200326413176846122389588679993967243708999727829288097465725987703298505965565993248212547996681022469256419681101239168831805884667971536810982856136981217468725222130878281171525062276677449739258201176987277085405977344371282590652413613325957420759925672703720441448289157026601122917812078955867208331508224284352784659234505353325618053219701738032071390927088332089884625206153574741251765207268018752884656956888334768405586143145349793533599155618700972715536886181890930482499209131408265640731202673714067321115431168709545631644603567703329289905364828984379652230486767610313567087991416242894563548859195048336109194119321462066079836427844085510722783098450051849565660512506899870502829853223577619518116827105986530703980627657760668597684927284699354408631733918989899062962269264903067926838661526621404542021807013988390269458845428347695433568089637931165244177879295457170399217442766382932997770284581698039241890540292705460123259530452515928684122357584750694735200811288071309379438872352149219403171584333995031422433216494279697087808671058196051760264907321755896179765217957830085220431279334943553799187305122254822049218737312547501153588602226235624266881848012996218463169623297959083589659407012007379340023728984301060311721495330971428866459335586445656807536021539164449114833067695828435556902223818460288417088123528992888933092360416469494076159363021386347163883220832154506550518909773878457842977938788821741679627336443002860024426950538943405755989976537605244803172591077437904644077508153290082764027833940797532416985143129846531556689206641076912866245195740219416183366491366135506479295205623684131093623920371356277261683291491728533171756256772831521236502334454558109204946578765837889256500199842016651214847866107627910394560088057609817814344018683089091365749707240975589372067036415161184968633824361734438542011474002905718681309610301318056744326712102428385939049994906536557469136826780207909958716907427267298703311386953843679227202220078537476211675333129434278942679813370275695066558851484505363385697866751004029917614028604809950457742707930307199759715556624350743759290695790154134827898309624472431075649236366457579716732784069025521708968089156001780098460880119559739025279533199800711992850561334175739800489892083422762812965666635482350340921466006221291230253567974818680098383338591025279940878140194488334307112177419362165869237902978557166112865532968749759740746453944341693810789057746054319588934581988559355597624893408598287495063748462861620354161697133060429202303431688447949892556398970295170538427715653329481196316080651747166197943769815577253605565466229937339441551756241369811246714194732644314942916744537603045155369128627259943783513888796595400027176984990264694856911136887544762284544939258236209234548220819845265600126012596749956310906569762771718356385457367459269446357749358235876847963823774381323334557758867933089904497070504017503508184340547266580225553541238786783242743214466705117744073760398726426448464937862585620189787284013101877553020550803043772102140819210799499507829024469934415399362387137310851349301465938105147352887170030720727332971059586490011984580415386992735325806847936451460887735628246548252571562014547545960462812776540753323861358402811110938822584796582241047515589385545656497980929404671739028661708516656236943969223855806294120134344887021926064173746620592307241128316183229662774030737634174817336130556424743570795698566420494098552292350577657783424612228586697595757695535986792475891714923114250550218250719783946515564518260364829871187249816495883558864718868039516331822496373409295336851641053223238505427923573448603656411541467947481999952489917614439671892859966067576375645612957902735044717308304706002961765138398748848963014176934964891999280664824486991134475991593512924469020777725351898154197074238159678821833645261959393881765313516252893447714951330751853594124242768532952415670397658199417064557919489482011130207039805831141331474658748364677920279574366778430483271495005876867673951726216395207567718365710071900407761500761127643024192522915042954190746772125253239187297027851236403539393985624098759430854482898669475028607208465904838879436643310693818955822429611642475352402563048897635539350504935204806895337508524840404067113117339521844755784707276175822229896276625974015409503998457154376130102886492388051586880440602284008043915125600267598831317005146443244194462189123419347301797641323748016170773479061502428966402873009206307030824218764897586414424079125353505134175899318550012217143525637418398375408736821442704010487259145832047694698011944003933811510084818180056712425265547808904035313820638643786806867717165749403119473185951305577096496326754553484672583402797107030594104534197390568285968560285456098948842997816995690724361335590181427081368932029131454079242774608473705670749639224304392565949414052676860100748748356625700405109874146341932941189663138181788251744504596590317841331862499080256037554916480255422021421837793204548153156027580703479550220871935007052572269743692209364906231006009175861757994063441546401899947333860825907981444005547540403694986952127357582106389488032483850773997633119825931758172866908101708850381293422483211360230640151593749751631219946393231626090124750481458487580378223359585332708108123565243579017632898206191559613306054797912985625288904755374029250139507534492143527671936354470073561367085111697931297925068464881078568560595769552382583586302161365014557323998173223749754840388956860494496747509194071507220079559832889260105746699487508037118600368359975531086320898997840771041304468041435540353470938767055541403952897227311930129862153272295517232166397251386062092447735154015682478318937595775750995517195544261883066454053923944304239331492312087634203759598709305140656177953931683694186517228565115051712137712341020712636950647756757276786801810309141514150146926954132332448018352206906962684651710078219333894836009971037210255929331534935362255614630174447573580979097993470294227308736820618074289884675846367135524646234381862569425306619039629493335554554075706897502463261122816965315822914329724316982887709689400672982107319395478759059194967646339665757189319038662651515959674987918404242382386658712707358527651335643706592841491950048142102269866201253586324231642115268071131422332276030823621046262457259786735958070386561529631753125222610608360682649255317312154831050137076669519195135500833625695435809962416675885785509569256360555257952778997543790977026006771276456528619850778066741892421090089105229056756279615062827372802072239753464369181558682998903220754890872197258342581177689694295252259278983713717977441301431208818067359005152107885417869911556013078213617379093529095155905583904733528966034975287973580278804482135578454353906987278742091379376614020611920568794818280850550472981600024443686262094378732643632416682883687927059024475154841764649845119651123389139952822583510087749171315383107338271751584227440899982146305056427414542709218419090405772688869003155799350445908703716270051889980869166760049692962766624176357024272019642150791412077305832619044369238194778374931659984053560453708402349420295279655189416729562259004362860550065003880357203953662794021119275257304473497623116945838614216425763496201620002846919991087731717339942307153692395333745401571817279630406729972185792541984645927430272568140832294952744955107916057737519318231945244286568504436906687008689065723809228153728729653076930617116460888393705844405823691626380210075158299724653754113381013390845928874350666001373349149957657372730717671042923586723916343741445474220598628099448235171933765324244705167770538540214554642297927675887888715725727653782029188550628912339544933071441011982973268787165875347463802741470420132509973507320498552316264059974820325398588531706660493815361597994680003768845375799328532805784111570247851061985005339697458091663349509355442630987461267622126397770217711967787195758178935275884659087477934524726320724250954430540402948777354477147534075554956888558907103605413165557358361756754068396962689395793111731626079032458527480609929157790184510184438797755766182538273837463140313567697520005394827251194140415348227860418242303769359053337655173109497518932360877357781360264326530379613400615865656790421185004451353121277852701028585801254610643746468659508017366641194676304074553579514305003182313719667313395215791201641286598508693541567638413259514999312429160077916854460339346251679371756137101110557158272882449387334990343462231651010912479240363972012893799963014979282354394069039664364740811829898195593136893464043528922610268349114040157982839272916295707573376805874181274516088457289884697780775054087058194940409378679876058826028199319320660611283649809980297669515575973002305247469558202856028868253372085856017133181295965692059040986623910497316084262622793284768341622492267183590512343458499865393288232252994131498853504592444939660600798968717324461006144649756775047125223502645298036444544435378330662708101531431600812563167903101767928733055551412379794909563956978397375198785032946719304829907272867136352401981316228239407362537106668328248158587134701213595382348893133359902743585444312557275757525356485290256852050066995415953470349429197441505902244172224307530487190636055346906345981792101012949183642116088019958834370939803233549983546163697932350077320759462466998608713868817312383747689400125931112853061848301952123137304042304985030459129159392920900064053018959422712118323145176816014015706068828496288989393435863486196141856444609852585847190192080086131499599118204327834117733791464745012487080477241522664070782643360408767690902769875593075609542736999095337444175910326044369063060122124205672884587498348617070237284965559178450078324129766820041186076336519024981482811721135001607319912388713349012332808772345689100999335236152001339660992996739455181835263049058103031859111466429623054034231205421911089525924566298811457479853311332576453683165283585328579528173876341073540391371024925202972048628633770577723613569696354211049151239826131249038449843735717481376828991653796719497838908294649317947219926299117776511000893416795641282457381184282543820135337148788305514717701842717697554251222305903066988839261726504240126720308228496006663909111942920483346972084781123036839269397197641692980015197790188380182569269216193746590898478220011994112535184150454403642084722846754851874864120340075567884678390609075381388425895068198767667473660311831560946065213190879985968177116016228467190389016258632927222791404655585441089549545505131783133187482065321146933868467925089301258365958878354321661895673182351697545291852093014805757945538712056448677920605861578380322923313335880030371016413778634890235686477402184647194622342074023324005442100328075326689837080569057343457225351093432347258827932094982360048679044238973672398454859657569775276509524476126684511114549544798457277190935846986154283998666326966633314292454388049319103779619195456151809449774498793411445307898326375706980351202212983323722548098737817860680786856279624982260606202185375403944323653873147074199188243362038440613470890671307997792667695252625991819343305904603232090813546621355299373714477903519390121786016495998104144934839445426655182875097749921437628142680158423985153827422427682889614875398543477953116009355813408289398809348194752234296715323163597115325265551878295350416778465364667043380256650335160521580814667050195283824289847755699897586578363192964712696023281920526390965458925207974681946507576921797472064894527125546291274485982229541405097818813152517529289036177698763941669445972567376780520156174240081308568476707317626812217819832541378031901986611913059628884392137809995801218049560309029658645449627171126965903802829518581867507271772913199263842536730745632442132736926806569244450327305617618345376015197201900461659327061674516921361958048607989571800711704580719108427376918822399745268927406240109335706208013002774937530251220696086852934780402683532471889976128580500451464748791807980243510421010778498235599229925067939394330586246696096501160367189603870343408093516878411726026448401621830830135976344882275794628684101674661095272351208780517343888953025840058284592658306629125237581599323809141497475822974826381206013756342967763520539398491654186477966741570375850018006938960888229000081235507885479353680055544744320373138099534452627012596925628076927967489356384691866374901138449586505192336652235166086312062481852872081035259436448197470614485482357355766067558502399201551687152536803705438747285181473455193228300795866520384221574625287072615469044771943229528916370611634145639089590656661147040484656169512040415490040402374365806559116663232005385607717847697100268490162503146883967268657228890380016904172167503452022621500194357392739316005632138206558406164105000979668705316594382287048046740342851724912818437983649631950043730685016219747171192727558616041253485683170860119560074779208608139031082927090603330211821825556075842731121450624214935353196887103914887915565422423603065042559348991319019501907543513230810429347705833185146793927446458023117143919732485624980991915409141446617423668772006849079864588775072871084314336803342006127703688260688069949016639968429251953902955030427603169145216780411793133314410350743088482746718016218963691795406258727882103559315574487466250403945750037224214421538587792281001585307166553588615453409535310681606083048895923898765310195723421071415394624794456620338084150880435821141668164118593887907208042586596538303297589473732489841253542331582037379560714323546358905896939980863705628370288343137741329809705819770842555477317212086116277200265333701540026625060748360582403768746735688311039382896953053385682851054144438875013080125246366026461727811815969265371100417175653724962892071848366989274715157767103238885446255371219381438228680322601612474200478476033416743081851928325776950731466336025516911202255158374784762303120031893330996869072198859843316906233606888771590395385662403455927276644086249769585480818789104227699030338299969305550580857977721479166928600684571525129671665017977203564340906318582543546521651711372634999717402882828854501282025629062358767661684260735689042397402238767107070720934159143866718202642278419024693409053653427239258746233276617129730448526538840359842836608321828900514048538112285785646445940629012788552863392175286574328586452852930405695400678891573111360719190404632387933342954390811372051191246752285863398252119671165552010619152310808706301936835386371050203420989812131642608318218980874731065843432307999584530015099676569726619621941149992422332793649426341011733353445968338427610594088212977798125747178141158254499188137096126620498423882254771366354719920255836447461157536360858960859359235498607883860662323789425353782885785760897969205602971561142882991868052269558336812922296164983600489055851388208964195111860919052437032383284408357184435109679216201768232938524701605696479558031447134353526064654231845681460356136767630666532222061114181538492356349475639655967129756840458396548081404370087252626166287881698376208098837721900525695626834039430694670295898332730963509645916534878926464398529585949542171058261255019056561542787602276268342974147622029803112036002409331966035758607008891201354398317706925996913294131721828261193397742498348311081118241778350358319997402969497131284580217463020956657165458917952839803579142199783666727357089895324280804502395586797812225844932732986674717087577000837185015396718221030566181384709946165206389443163487522851160072511641421600703369845968829686376347215220224267363453440129816809120264907591278378761753725651091393370798632652854992088239366866320101132236389355408270737066149237733378521310795952199421008818573676395329468462712435923999265470865943584925998580787909478912432337460773458069285301094438106877946299877093543784848510342595935199214168746108187575743652398699724402259404172598974562777224987241729870455538817417059285563582097175237712816404856595485701244293391446793154677218729446758648418538868209648105592024220444266027476024115436823067973327388946933835007102330850167164236225020412322373341171651086906673483136676445809264387293253493812034225741427519594005680945282073909075778943800828848534337195093612847403821280320951883342453078277998878350842519860473949689020349475724475643565653005548331947852537216842754487354849611643191432010344189190965199332802886760739650700541549214607757424778886693898425147258851435290525997985559640021340942485646620486458797265019603698506094936645462205493825426986455129090834072411070188582844140397812241517902181483130397675800504682010149845102912668071722254199833101199184294185322051131224046117575777185722197865734504397892424041110693383034463996100053544970742124531166737269134147779860400371283717098269200800310663159186786623733596784166880397355353913910117547830568779183033948148717439319767720025807388475947518503676406601631194143884849565622062151240326589837328306702722975939466662296129215077000380508981727007066693846085410920061420411359211362580567220306834044189231911422711632824290617928062569457566646360725796033018207505687019888029739157063871089797106263359380073662993893962349670962998566454839496472769120954041212818866237709343682538198287549753119948828071951210609316600450706469824495012720982248657385054956554605913011621019426890509709790540894690985452847075994264842630465022886789793633046683141029051280217661135879867427709643637516077140670944727499720282413213387226688261149044871601582244398314243171923793229890818806058397467761893179258836180251626880889288577981982588240462951839858794221618785631691531870504684941667578604297924518269418047477954652328812856371598631984920372143042162216620097760814942770850340588362051654341316950071431531210728368047057684054642162787876510498410391446088910337379656145289883191233503975554015691230941284479867209647388527968229789452246970410656095989270841213727016634299904041471314055802450938047666912021235393460334678295555841933333915948587654931850458777401980301748266097734371590492057032191133507477694419600372300318871590709244247048358299845106196505863016207465206323426133178534910446359941820169817041697565023077522858698902306298184851248337438247691944333972383075619564036933197836528106252400659304891882350029982688324656502996152478923039692190694080679990949973236388454491848898811895838904875298644439478942496151001209227730543727830163753924275070804346302460963919965652931954294571891516392568928555164103745748870112063206170199066130720581592806802898418966806352942708383802429477795640811146631734995949658565805998255605642997699436713229553161095069655674756729101850605677983076646686231293462219756867347441787743406413372657546421818927723172166070951471765868038407737811070310564260135219220338130370253074930075205428588825914698310374209860139948283395180593827309196717447716013851084781398883248352257312659160303413766729664195207294442654987589262168182658702996308193177784336338852524175126055607044419515669414216996335749758998312109749459266443631976925610768142315678976836521677623890305862434080502122843969596460779053902335909152313177554433896566351390288911254603682057845487428746805000278948650585387089697765468251250192282937968684042127616300019701452779341410170078304907893902713248949208210189120907898431942078648463409962250896710483245440773183504686907103352722567990549568005753646317614347953465958199438766984569263267581953286851733542171656126014199019328559133758438996601234090111178400136467018915023091489723406512193961524360813730206612572424684372371760750583878434868514276098830957173330720704715365767036922313517892192931834411171216626475512930112281007061802319951513918787047906047248854382396539891852819802240129356423982381787719147648207297147231309176530134102946590946809391459569671101041726565210141571699930822778905344952325155077549135580203530058490265923097358407162209181564256260076790408253187934416570294100891555637680494612101921314041903294528726583294503556138296614805933246944687367851771008553578826882150892698070952151918849643641303753585337393380201935805565546213118012429792970357592373437382892901335327745633110323880842331404206975586878264886526717356376528346188420239951036388317564318085235884329146509657179201805580348490278285739197699019655104777191408106993646557876637983503920642477078616465132313416117126596951415618703835376471690325880027200358710736630231513999153801000855816738332325915545662796356484552312917772860112868597041109619567130370182546339242625648017250666165972549097513947915920978532746952464713698744156996740605581984656660872200304846954806122514276460815904299974973377545995961475373932899098614067921104429392366701403825303537878311640800507357689017368935803965244977558267037762473832561734274164929748943051283162688426659433248383471977024336715073036073818148151099636684618421172061314211256672735292511155317366197295098749049830593915558963723290025057722924285318890222134531149991603738658130934665384129041669397003788940189284313585159387465081507680526726507127034415334564220724177512111473100983295031931555842516107808309206715447459066500481115046013918278218222950000607771174323903696016664960199693354147268669950907704268071596114426706235970692267493188893707733345753846022872302517952974572062685948711503349695917945341534203674150649373429250554045731509946165709956794379009662604675154429213152250488153591476624068136414492127833919887808436742468263992077798395593053290720145028084835086359436989361767226868667863086129251575834546444100843892682307259084155699823282985991812354903091061052410535567340358139232643449996992184898379385470390932440871736125581596294044998037858133193761520619823315705822856685453152398767228776905017766357591280588443507659541252461530711726168794370214862269906837595567328244242135151662134477023373772023801741844923337891144737109606839613660226714220199994851002316486003352695574314953786383647700253876455207248169117237307268684204433275751107828106825264175406714774672510271976175847309793216826679015814382286468997097670031502475893858370740943100027543776947929364505185476427259441048460494137626495757605928743964635207083989740575175944190969173514482367582464444165755129823542665748236493714201660208011632769563570827190142052437783179119880457163434207462875063745004977906295373632566394638541802881348028029069127989340222285509569172259008967249296956295743225414433171284682304484009858474480843304896407530688640939801491470916379956939671848699661804092944470393959354159606730597435856387330594536240397751220226737011416661053043103418951409552022383440024578795421113929595487053626129880969396020673277822084183489934716944749603264837165708941875177770476335722544704693915288072356851866134547626565640366011274204580465960767731654559877773913020918765296449045804696340024710395448650046138878854338532672955971235851912044008351860910996601681211946484278196683911793918068764072391022524843140911557881503382089291659008209262736108592748080553504846705882763299500189322308982041443800719479425237118943343972367847637174102318871650030190708867051863976509139083120563621781191851200740848089139441176123212681021787676077944802167479619776211996631111985994311657281024705729892162087243583189292707645048506665393240887367234707252318097131345231551031419269246253183945299186795246375290786655043880598199137749770145355088507354303885149476706700931724963772159650028207075197037902194485612009904804041222436397913264403750080483731674713856116345153568911208966379790536813161900548695146243961140754575711847395079472571383170746529680113896252954598995936485907167651657768541755089262909761723265500760651512453992108166024681442949278464027492806677364465804662769596081610578526245031013745936281249638819166897936739448754920232890504561448687110334384260592533840070770785746269990497236534762346926742786615818234145943663821339380401254620691957679693461965700789845473722417376725031817077053328400009541473844386862469813851555232421977413934718663440443751088616129341164725228128527155227415301043592499037374385162497425021237915420425028407073329073973030759926883547873072525196263650912553010110822036741205790611951945415368776453647923576683389284107593907420361360507278194756844053457086803855208224584429702546261150199331555387838635356480333722743829273449458781894087446640443161675268613687613702355608139685344277996227934305592146820460509383438535366661990577843082420900505465475269162370237408310287892833527079463632708374813867172763219674247757042656722160018024831170655592782122784136142217398100275574556350758834805822211632316345694389905207621723710545676523541375949915935720495718093690739740654072395601453410711997063720231159668447876713903841187468352400163299958184083373642626032145366064205848370476283847148897515082586669181477307598949750709666795584526548871390275520260945306092419409367141964952321031274606653691389998543569273748219046040658984755007001782595542107362849071238464112316993986844058567983570720447494204794521800348479441520468502974546790401476712239252815761339041164041196047214205135109439490847136855997826348447988247895013768354050116692819337958625784359037338389275725530081042782795059378789116918349946729374341359094718379275666808344487340720232605207276476370275847150813961430679721412491866667023848964414640937921504763581410185965543666880957184637524025396593315308936360795385959133219487648042895484511699918812767224925509587523821610146664764208226601532218095533742730472450089685483922611546637115430371974290164396034231545436051883405085568154605360918076621374002788411126955914874875082142014216625990736092257821101764385063705528349205200398515653280731240581416549708295559243574007198342486490156102102635936150676259757511121976678172773216177816646778027729910435182205925957229480980277483857002871878948273845038909666011690642234884919677591831156985394685984542538450070339396075644245171887030006470238232978020954788282345412136203841741869412981846869956736400705086854326211386565377555219002370469728020647421240228467732457107596115144631936902506192374877536108732962989528173136924218338998688686778802319506948168693263005550012126006192686675527026661439001654052769559259508126739617044919727907705673642074588123276797300457424176170389299628060163496194195354753457677754263218863951439362402472922825807421795973621601620843026664061887616499075582917413921678216642513164520076180665423893638682368848439308642379849184669115976169543861806427585603866164371312788727630155856080029448497394532880071190166063665097704656503975739124878961140666439819939597164076365812682033884849883306455612971524759461334342035512041398494619738560964408441270548508151414908479586134107259896841711775949804155458796846325705686975387277852998060251848212670774735426819874824437969904047468894696625554246051020508131193289544733573404860652396584929061903567080296652659415341869392884878020539111513830230831945528934857339510380769177675962562105773210732841475089224255645694667984902250837716249988481945036856583254371369956333131458286733546439859638097588740502374302657768631545729389293308108900036083994805164538758862537242882684012111345266620429593095134401493709661123508860151625562630232659960600514344383973475966114190350064337957488181317580047014326329962475792958799259687998470206426031522878981993846022801118979210565287705008805222246684722008528144585743174164531394333089636769182300136809775584107655832050494534434088438580957427431601547102212541296287615684376159862990525281091103748319881602326918142767715674270718705034307329290521177634937788278862272046374919416457660876282811793748451650163598867377265574365505780500240898318921326806440766520015157521393159973081181250111141689030379383028111910195638402045150415210799963827338404345503108987466705910050055868713283008243772913665344328675381948536429591349684427034423057819666011475825446936661677108264276496426254053225820068431896913744130776696530671193308345337407860037356894062127682456570179381505701923569402275961027612925050842040952356957346586578734626686080090920909358923854155125439452595353334075165486433040464528687199114329175923139654051495453754356961737607375699034675654982909876147032982495931379016460952346418144825437626320698837227928102048798611492965880416464810940123619237429183638354690823823848146394925721577658364860290742405175817502592562848346307167072240153824437343544212013413662066672556511514346710493202687658128610674970511791627349898222568981612954827489562223586903607621943473976114460403324805804508941022516657427894452031609200172113111130707230495886350666239058630196633322516724191836793534963861051710344627040937891080861709674310909432115713372265828073388483345741232665994722713540406750219395215022430697139065094987061046988980520581851258022977356367856055705341684910080719789046832522012952741395884521741239115521128904964985789566612884698102410550809275074909491603272698720658566136867799358959208838812435844039809780737078394112456691716444584280912030954386906717667661268315348730980332739912733899216111771529653613169512959951515335055956146154337294151293649910283398313428023575248166272322052057888364686032566844442966978841078777269747883228907675229785522217933836922323820154046330560329155086612672332325251338205541012011701347547645370292577549090280204666370134410012995126209217279184562080445759106646864611753677580486852589829606102967071860220313260362261493353598187079455029521564509683057225584839382316677482831420289211305493593371480516921007370142980309870336710601114172842261959351406863470055907526621117399916298751494815054521008442750585963973672305789694721181249778140220184015597380163447398885416862270339261589857579674419051080138464710246452262974705087030428514042025975232167914722042797269299674595056000504718080380026964783057609386016566309298141253000475110872852506316379744456463526279017819931859661143855311708340014418135074755914971568237891982347455441363999126924343929443662933852357727640161667589446395799811923627124494439084288753552819858390747577321317210127442102089796925073637927337547122976768967257461965225820374611788836729455875122566164327052648761161905541689841386947846430263705823112241944760774024965449154024870749288204104581742190244509983535677167366643462165207623195530863663353378327292522624229693744498919743504392976356447742384655960390435910770838898831053288389226915640586775976608572210309135312612763552024432499798021951535381544491889381909888909014571285705925240537355420841036229596490421175109519365676073659475644434545773217850392623547380394087572717976171179547837096784420964700464731376023244684093979406015668132141800726941725124623663727039057095073639506562219276089899796560714266509016366526718673599179800151654638549841697773687926477227146032901782930401431053054478139674519189160566419867554335274840750002621044797984367692071813659696944210880389948458106062246936110521400901833374809893507433086900728330085880525169180525150057023968519263537560420668037630596987260855762890656243824229170253836622128695451668285064361400125308394891206873876624763691423430769641418767193118687063713713224590737253848172801247817318507044778307999316897014356070025001956345078781135055858436342077715941678921350952893006576618848230543597282578528460960350970048175877311760183707205479225083606154805203341804348147862176794388644813091827540360061370603588979642916430075383381522508991226769636540711057570298540325233626476204626721792356698765687442378884925376757547740230455621142174446746774610699127631774514211574087808858208513762840780767613427141338038023686110868903373436493593214708523410074572531891205065512970217482559227842238391136110829827964334373212811738447150920565880865577640572650238966858671574144413842357679212975974009079418155250439353452543659865401429980651652195697839549221200914067253220864043370972635514266239390751456784760564136579052399960056596410645203655816715206409284228733439248620779500818847161260802256839409015093398950568444961208742806736808238540036526924239118377308868606860652552936150499993849904740968870743385934568619833601329360740145125120313594689326562619790082189028040965189788611456212964771843343799957874433492207811611318086706178778367309550793683619525216734683407027128614930176574589087247517787088302503473600693006639476457920401634817047225739844009225941531721199078174355150615352708600670527975073767976723222596467453505181726756634077972107830138773116681800069012517281490613665829875608504113343695202413276157197217256606463011032238352741392671947131282644761998403239466706720800837806036680351538578760996304275081462709970939553544830458014495416614227744230715728838763317598237955626414429428136965871818995026578505444955312633151425034037629228865082537478809821096617719683753281788688178582124186633226391062873087741663538208018091489890581159285314295165397041125635593238646604751549734947800086230293972806351951353124975014618129112542382637369818005772367791806369618031992324137166643470893678874954087759735475223141889229814517323920312667347036891146793794479359735757378004571894770939725684684677103995125331183666271622796601475215141448570576771479566559377265993789510747184398992549035683740224372042351302780846065047376702117125487662689545337856702695849522382714791533047032121749014661670575277167120415234340326615278742439498580790013005782950198564909795858934068843099219124921683026263955461461085919182184098703513085676475735045120231069020013147388172444699471420106684639781767212977151083874379932152073677142134448926565185066025168856940737635143560002279775998063067328106392729392734735771213511483228871154034563775638669998919192647401113177083968338401236575417991418126519554183846598096546697590380585702513613297798809447374240880831037615037242845780140902881514099930117866935965861604639066824795851857216903964098774637669657794425700840430900042918698268269309138084365302364385119078152612933046852719071746626825063289878772068645433736993203782548303094878345245740146330894820470811096774844366975584732424782541864265246910721299223148052247297289185251746902730845321760840743649253717410864657797420270079675293058996482005038765002627959722225684425638399105780920205274331685640277352630398598057375446151299784868572120218610463309646300153726782481215493650160423677230356409982372183849995528716082179075837881582935905508274654987368207806324374318624432187490743912930870351404266048734803430196108484730397404974705386478164282384730157569812186027375566841092320412960813629176169959845917069026651348841042985546843361045256410140214018331523570762194695985858096150062811952156061688553253617786673598679889346154169951006813322694190591880445145501900892476067315754831436937267704407588275650555939531385272753560722313106818172558871115574623793628140810204236874112392043343824228849049253228227878711833094280976670265102315007876093011244221770675654002682455268072517268513169613276168561137095365334525643416841071991143832095687209089703580169092783903069840386012707928365953125144420198276371577117388569313928769171064880732611971834640170092646122710494252718028780582318897459169928057510180730686676952652200040708566449172785598166599958956173518153500619267059657555026950382350696026787416285641094227663346747790367748094770468220947289098673734644900898258571823431078537770593139739613275696355030094546500597353866055987533879435380760539706864666904383042141751762907343862504547528601896450166960787915052719225541432210732339231150402007243231371344458857898208466644853508795229676507688411985734159377819411738310369844249999856234091502367556275324318158197693322803824555874623079204413006795066454084734362678622792496427554820253427105308799536656523492233319360461811704451101115174621049826014313718589681614026960008310720296706200755920123226777552682021396948620006581411458906879327684318159490977331119926389526286165847583702109838451693471634212203384224069311352023084018075983202538915455648955017775111650830133847345643224629971066080612986676752011980311111527948937245982019060215121312305504350735986451465997819278783036577396705241296160591674516218849395428144004670256145018096801943101162374619790730308961431411827828468461508593286062161648386563104663818818864227417938930499616094648658460172925330347345118765792163336202573082589051810319424119055595401633846830955392904691561699128272060269331561397860174667924140989026675226591676290616316293337914108424548072510239798095645571863211357937128947863734245602827794275538448185018715478846228371098370799687703911070640616449791059173988556624119848984663016927618289815925888550221218561221076802503855721115907475482930071988967718160317638261797258108878661003055975726267350957584608364875866496271501587383811723168073792638116634743394684337538382466006017723130494803256772114014023262778395054957562766716445835120852364421203085356310999887173464940437522687963213032085119248198077979228918472880634883341454818069139810523140608840284058682081627236430093181417211500951819307193643851547981525175015079379690278764761782666732866669655549845174148110260879563912489374288935562636157107102030778884448588821872639058335712713612550583276510752241817652204583228573795784998946337574737058131372692056299015098316951521620946915581943947506460727373413464032646497958588594213598623971324873894265331672174879197955611647238638136260616164911907991309842893909186027299155137684604747386459412663923460086846509111185388399972091920214647579443759917444745310587335081851601744773966661402179374993847068143454977603001604437816264874070802901068161151607270902692612190335156413563079255448065522727662871561412893420900811495203235061074028089609443243922694498228743781445405311954334611249620750557759554560952613384148453402064759266312869237016597412869524238516799589972423424679094594525857901676018622836212737407016208042810124430887020435341965906030598440500998473604765863491616839961777886829099238153988878084810843230556868483406154821780878163703121220668538471375247669150947982397076286856206495023878405573088829515512476980417300925856696189972404491336369158477764185462662951597624204795586212708850215347801120327976756571893043585806693175448544300354864697112568519373652532044853727659640462020201270618294831056783289109370088929230431076207930292020164602395113869235591195014928346377720319221371597110474432982373096659645742201933847719348449100900266917350338314578355251772318101809096900147204048582027402123884106596080740139312950354623126457943229651768645660333969988808705814616045465974995918715727304214702425332496368429920309505500510491421567200763107582729245170045101780967698115291628823719164757332843328734185867429732862419327592843996094571473449364536710989853228275645643613596593368975549509368746591163206850434372557619541051018138556277515762396504544718195422908793853670296960387846950833753295573059555697117343663415477634383154721211972412982888255814856386099770297888249838845063998705717579661534002039397380830998223550829015111932203138412400711314593792434498134298317876885948639610405626377289211693032915062170520098919254437714425632777879500840634918935645416174864915114175157657467108818033600442148416343355001327375879282552573665754574778123406423261662752731886868496045388639152374362466896659720030132094169419514628649088622698395862306884025178402644515666709657251574601906224096222810703774577831071022825947078690121768636855103840896107711876187175495885808805213017540751851942190684505213962573711703011127499886536729005475838057464573270488153267562350567024283691151516212586251514537508788279497408805021111629686743062036925117224405271707664602485324716137917546687226013917799114809205711381390973582016516519662677528277565901389314247174955650605083516266799154973196006501739080851268330720569738620955632288181417128464677755450120487303319097131803554932000338016037114661815370370914725772269905833073665019513940555248410239810953935672965296095488738358328518852730243654258434519546240140323304477432243369282932821673083058584804984069154529570033108734020337754544961394995718693718704209969590950068673623720793355701494476620640265189152659552950247472927839003342969750865450479254700111631277242849767756678961261243874724805328200414044665915582533090467452833156604802883756000382346086658316683202797654233894973231676285228200910012890704971368617728942877081345801803925693335126238012013617944390022657563085189510471799687323422157967148588199033809486134302124547675054246662442723073215827099692174546372707479107028402611158877334376836714894065512623077023211748807545546778241346590418783623838372198453581694693772311454834772998854709071959429268840078636072921403550770934198157768821203547062845957270054596825358189957004338027794228715767803118242676118465090517015664561865218410491886010790822656390487859600261185552190374606605046461892428793449747772484728311546978265498838792641890216068224652518891016888533053123011998009963271435009523208796273439024862461533651301787432772015054440804513723321612213380714014107796046764928926336431392509053130040957186209542848520632806557682021520148113912380277804153399931318958350168572179397371264940778418280257770023806174048417564922806547607480836949434418362584696422636282560244187130106849516588016775264004879781614342105104711697906932443265902632567537199891523050031007402238526652608537219761593376543345245083189110255671288222046224692708145818032449021978859595545748445185002105004197912827388500084718690281120204815364289531739501999427886142326069030607039845065044634449861467749120829357922394019053503651472291177538622119129830884102134535638864276135015318813712553445439285750606586247998730751013582008029896168777848267064119674026125820127497717278444877573149352186372045087002521079535638050989070658583794326468501821451059860772063000762246852429193182082272159923039882718508045350641573923486617645528306271582654691905544441631289789365145002478093367408782526176528925175413747106271244671600608246959956654213739615571089843968522054131118093385259575562246124045104613262335775275305305450251821120646591399442953523976725116543454539561227991013895703187413097577353879163429233863987453926503781723111103355988130276870380780158334843433166496216876364623938066195368946634485899856245900604195961478002712594641194380734055948798722572450842936417977865122529665257304488866600140234083335808199432111772338752485029328770049763698319015044458739041302725405950955635394510234228726585619830904103032111453958153790564711458963953504534770962533731236624360985986456260421686505858835432965406381396372862347726921697481276402122774532347753561770070046295715297743907003511040408235274701877060557271150855276057300740509646942003311531976412561449560333928808791867642170327228335196550343872045445011988327081602323261581601586527292976424328421792191033003740548630380275083014761788356855865577155479523699191211137565877369164101848418252226729548851151380096113959403239882793800914962090375282942983554396191415331776978298021337239225638532026739987287830969873756612477447042845221058088260714481385224788712938284326446398183047099890242482736638949057951862362936620267861528811451067602537463528073341189313027879308692121521689954190475951438383474263313548737575231984667509191227747206209704196058571226346569119663084416019312090921292837087859311788106322968151279847155987149032814777344607462160852854008117994372470440559989204032545911231610249272109643448473236010441224921597857811467019881107059046110785200838937292929366201858538181422569151745862686688760802840698384559212642871109743004122189562314428723148583549620868492353470101231067198165638061701635374829352500665866384705662154969254841210574917708503296700462108590137145647159857678732244936854181953519438488164719540280099748293009248592249473277788804016629648563054692809119164275799960748549949895738667614468711108557360067629465865556422416711440742368738917425652659957926376801187164476366500322545089188344852025721383235945502400213471333001636936406827215140610281951782673706159160644686552045881337131465312497369650318090377948628443397804519530151857384897029902398292381180312220058519631808224663869525403100342425962558886270043680639053569356790589212709781924202329241555154105862950033723094251296828847722570822713739988652436741457038517942937670895287881812039640588574301241404904373331547641285764141340222174143665973040559604498818980129431636604976192135121412601796542828430657423680065331751568165116626150609942406438232509768252920243237368749808824990826796106629055134672970786143509522697723742214184567375962412900933246393606910501083326684959938465268041952344940533016633365734470045751482682839100056955675131263906775142165248273073589453004764512727119220110821189960994143941326965449276940685825881693763254960886533920203289632221914977618357003021212345219112690299532582713733439465852180445251403340729391171397233604025339771177210293789025886233662792371574328663620535198084072716946156430380221626335966963765044600106440360004455326778206168806435763261145504495504542713022769305711245340837938538402397183586363388938997059307524811627301115191607441104993500196755688536874859577797512607733899086301063576730618948250970653915383462632412052928310414157129010452369145625354382897242324946599445623079289889148934815844951624855218656910873800213935795864977293861311371143967536215061968158765085188774683000397912624524705131594607185766485542970819218713818846691121461224100995366094191371151128829060975496782440346678804848907060118969290353468547059083474930656452837504010697846826083567747652417911134908618286840403686510489739798955880441728150003416017139820466940334613999561139521657307374358750417150161137591598753331772851661417977381108983941668854135266498489153427088780147454100332456026286175966078917317475226924136228118189067607267049091648159641419920621121719188046009983930711113536073563125186481519854033085889626173527671465690016932751442765876479235005981887733593082821732885502735729011172923715562925327170246750824731252165345656535395068659831957048993978725193926456919676780759479031457305873018193258520999502878912099312563512495976339097452936312907086301742970451683409507100263007514779081397814031138569978831153490234618185181903601504086530545928490139758064772571051402307411974508098635114633546391535937243905016406540685631324361946941249169939877398881293839682035461535726985811141940020425805527202721662848828819111176176248987702584305327800681575064423135619346924479595384342980755497137998755463470198609616240388138882142292743279176084586705600157763493658597566028662556388877073361757792436033519718340412624868139857881980424107553663124341435530941855623499978075446391328222096055032708134504095828342569923124920240216895752616088139120717588594293482360257926533227265570995171508654283365084406235809241187704771665075727282847073322005923039868802972908563479235997698944305696521663512687198294441734935251109654327399850801611978838067273974177745127173110779676598465179541306323510919703426804633355464056800291658157990526243425959107477327129976911212887472708235238216514378509142503172790353474073315674132752107009166314748085661384776507802335592138215026457119917828395297338817579709126115184131825821530266908063587069271824960511369293433348465663166016012778264388993170719767463927046216738662316748856983188691475923972480951788490361585229822180653645664754004712664265203160220399651090137770056915010737370315930582926247906645158713474889046869251160164406507013471954117907255169077310382495913198565853937070534595201111135050428778756029504974659724170857270525850958160770322057300252256810731435346593440582555551740401165008553253489780900816797858325211712168379165290776948483363062462106552250953564112373278104556718798245709696415406707982385307536293431486182363080898228642481745530834309210513069804109454639757070740836099801108991311579096863730933935120842056228059452782720610390766600058123301951725140365650878686814864059847079711556001427072564381544260209153488409102823295671754341048153463151871812775562060076826496212469536554239556589503198930847340232717251288585932147112397822852754017629462826673575681149185730746041982816888231796792522959360840564084103191837878577110436881925780704603559511445606399050707070314530066878902587454123469779025019762220110010279019282719560295197632655670476644678285411706837850914673312891031142762076584402295900586846570380259084051811034768339470827066110116695938044165790089987516562267220143456116149308495398662527463185966239715010078128783068278186725232535609243677243616462181749384985459246676980085422734396212710367240906257167678079660838400013206547555429846607476449372148831738005973645546928241884924079907040126747087363659126424704069335583890783995874343420794519437955966751549573205064213097833326492420206462776991625351014438996729575385217914521038198548092690638672015795210418513705141211625963801351326316419192207361106882592380123364034456892185826832057163682097738359021043098794051961785972407166605706850967612391205802041851300771506011162408091045127510276745190636768649721190094673375648014760917196914818682873446256653668893940222615075592605000994824066052901872997055084871135506569101235305701411097206889233760662310023160092157381314621287561654312154801173836435348864657095139163058624889600110845717222614948849533529235017947759667584131811446276276067542442052505723523770067451855758400150301259494198223887128178688584177085617235952724857034322289524581966344404904597638723077049260205215145179201751579822537529706861889155626766993787867282427404494103525288911015684292361829416964060427199757092634969564233181834148006151150872948232911704077556899021122895585411177672381896014686722693930555686379653620554503972370920160070342223473336387497800695934699206456345512886875695339339149886708683055215418323488285337556003554278852247038749715274775618880197276085940962176093877986905811735906857110692571152815374397409671487747499250747093347395011113114859704130864520807349160796680542714410340382260721457034783283305905265095582767231761401743011595382910995334114507982047984426628649753962766478158667946109582501687942546743636232600178900944343248236379455563197102257947052331176333651651297774886527394050486871297026831916707607302442216676871831811659782622822523328449889717839216806537163569232472773516618010057668848488489247012190217027947448885024896826137789731436633340006094979268070981497422923837035189861703909189239983014803903950187667527400985953603409106921952923655408558019251771080081691513148916963845104827424157742201420970830157002402147947367438704704934785574031506905214427519135697546225401498607939945298664203782312434104572217591378060925111267133164275243867007174611874435887444426120722101501228180047954580168917586569924169472081665298844826048047130425691323461148974748452641229318291062270378273096499688160346567067887693655415909177786495676768190220192754551713150422312019580868443523900759890125933439164756643913086569136840238370339569025541370706805637964077314668057611192520941791629684590951822558393282296529958952954709227031838792586621327992809605834793909256607716780285748123154100775938162559248323958683484144398135778298696418120213546783823128810805461455457378510372592871497836628817008211977152157077004355084767595308650264354162107777139892374317057723637688025712982664742004999366559648957557378481806610982707613149035984852972361677648038134600970884601310803943782517241471712415387445772542777963219210593863240021519580585253736222857882344636800739649769354404638204723210251610426069159677525081056369084916065884396570963549561943970899639732865446682402114782070714129868631717258883641026010896149348134898945174282053909856618112830391653129526628223570729710867507995765584392438412323665213219917766440098481736881436046118659387177031646998946784120524397528409843941067588387381162957322599941067769156223401010946760084354429517412184481475712685174608312017291876563541031201348791564839432253163915802597822157254366048188115414637867756326833453733043839533528529855681563378904930045112026218825185794410302716138076679301586913329214895175560833189440211483348695410539589133713040243551077308574825594617176200446084621659330363179266250081469488924315773719169074897484419683317403073874298009502756119194868402931520762963953345610424548501252386225189394891904048154848496804254640964415469924177973227166101688993871401830943114701947791597602028550014409149704549187609529332853521984092023794200687769597696051179644313428041877289628043804968340969152379199390860528596109108487984876241428347684231111858543019926449757677818862035781062613647149364155693011218180150974033806701233482411252040307182298262647708678734226333372470479299492551512434305297186387959931623011936973035793472434533927301304691334421833738586621597424170091705870950140986675201724193996058693474770928658323821542644745865947879823221078311324300313655519476051991775570470361724469056991505170720378285937947188466973316900767998271849553868525346925838834295678159556857871713204023120227936738644021536782949797103379734100091511674575405919158851298496076392133546380403906394842483576426379418719426619717277915516741790812832852228514303617973653925010339121184824410804327972711589835745126864886461422868766214654266693680835439944819049797338768907927893106912693687745559600903264190101278380871358816953073570828691387369483986753371809319411465906410108686591841010326334528498824011508395555928517884533960382164866028531159162887019852842637611993287180672248141323386975698717721167408130703385490146978865312863874259685168268727956325303731358616988634786176657548169953323888598330060938967955747875332159082100348502791555922309799299532158246133921881586997785044560994501349106137546295170232960117736931359159792811892120711478714167345473261128668574251464769533553187615359787557485863625412561717587298796995484466331822142645556923281492254199977892885473058502924794934288980863998813965199338687652726943440762041294713311467305531750569449562193219913180553492479690008392398109291837611274706779339990294037826505811602037070038172392491575143589816600111466365069421977398001667154524104809844448350364844726851349806173888171573946816125910116789173969883537549473792206472460440505433012158928515900782200005945981607432986187489815097403280229641730926517403921916152741354954289605037508336651977054513440886739553124498436418826788740557628293464357775185583250420913974752869690446469499747585983757384858381768140539719204286967407207070010354109046628470096670160375928954825022865622769285197840534757134443963704444330649968854340892522628562128420352749348020188309326485966519233465916801874537710681040705181961504889206328167718225067296567710573597547489410044139459263340680159539924391266675684875703933881307743474913371925875890865516659083015615144315326132743605268336506190980350672793013114757710620479608997935430626099878771023709035825755471275414633724784139118997856412284105606269078373044886159063153906787222687750347093309533484129722380608299122439959967860083373985788100341638951183383071754905518658099106031719056113634884066204069130174668507225606533253694031328821367670256354764536969257673110916003597100801203066826733975681722834083151068508392943014747813941135973733663936686822197109082719747596765533448097462286460340010586210561973011955350979862686001404444293409418279782964102665810824797756979811412850013499544474552214189320738680138961313106271564924826629052957488312828461727005393487316581979578384955357096000024724131633337371129063612563453341818047479495635943770477366488241224284601178352665351904328960565485941150284768397625739755380275181771868211478519293723952860001083810639705960628884378878200847734804739029968685018878967232358232008337088153846257307546136227530036837701619750799421494101886363672250888713821508362645176241619610261431589785468288961446771288274940559519438325783285331015117489809873296788563804028223810738306660383084964942694140076052281150624574085436695214556428427709058485776291310625392548359837078653635284404028966143477727052336756022089434477469134711514530038176093297052936660939544605121411067466624880681402845938104412438556724656040329841463590771036926791522128950704057184900030473724350198741909238136762134729743445261253158163752771463655484455917650878038412000256723818698883386402041353051510370011792776219713859674709050694705895301870763258551912102870272468727197077946960105646221495479881370363557289559874288341560330479177452245847465702746881645767063085243009261191363559236658264817469339980158364429643195794298699373809327876825870425062620228597734883008726062174083769844747396435100670630095004748029405076135219750828023159426465382435282516619694558953631205799978974655308928828290348259833688118230053027619904227907869276068567323795195777287574667127932882504518200570941632175865708207300194426726232795081636578617815793723714274550315015119239852815158213369109350084624810846039925596101054390269866218809086889051240009416670761018736284854194483812436731212147941790258044289365849764200788536657096647242018529776707847063884473209875851541322036364025215889361961585424122752949247305881068210182306429405901837115745331624668288151429929377707156753268549218105017251203226311137170259944316270437626669471566495854190418293172249712633934905187369962328942988903097353341506537922065994654249672408516260270424688735486746003873332833460248587457396007649955265166381323271016255528458349278589983510388054835630962667907107394217773726674016624646007612284592407193455331298669910428251130423333024715340831272923543250795835154253876991978754689107546641022269718814327826347145309058566215724576114760078844864420686845077883245685368128520900504618011861475248537653831024758351452879045269208686495802535720681227835407120390183071784176748901107298044949714108667771999936493428969727179616468970714948521993395938706324494594096169401696813674229188555111703663250365197361010400738698992395096315777498679687769207781041658133806816713435746585700191511064993359883023911792187418889881892948637632778820868662929942937678834699795208499402892601335638257701336775500374196643855619088383989930948605537063950531511829467717309077305146906221860848541258509074598898187514940302800913320162223934718255570685594207254754005949264538196375990029258270181263837614096875939722845973537702346389830724939375752011941076829259141901510830995377366759643309594718130291083886792430666290862923345693451735890642480164970182458184819843400908539894201864842811038752943623057512780717240018142985612511620061948175018181580121852831155669581382076427147167017923436199353349762036140296471217360015539107822696423212721380284773450406027262068525200246911823591073990637213544071766534781630041525997251178776028110902199539832203838572275108053754950361279911747926747264628826505815409397603865638340590804466786878083290357766003122959935685029224240783136061174906725434181298341022953564986635400352389486442689995498803868746717608594843682016224035930737048004032559258057727696418789754066668448737009474500717561720784939376486975439223607950338918100351102841149485679484547175042702439869163754218192917198323982448011470718794274542213841421940201750890409600589955662492243486308674889805136833564948450335950126377966189002141872530331981396436264321414347032216813669061655364028913498610871081844837455420395954768047664175588044994277840951215282712628626468455443889293998444266815295604660908800292914316001837414672015160638719797236165207088211291653928641997183467029144577372642948881111524357180068937211937165679234431331160879146108626571566260543016771618017263055362150617301768815113992043432357758122930794544610344135343485068137405260681234359337683533314924864887477899643263325285419156213178194879208036804315347720047804445584955306470858532597093286879917879554937386620439799625592082189263430327546246000237776870887828540772757654196835191086357998190944595581033737366198735496453567936002753925714664046710406975902331364761958887081571714164129952666666168477831556474909632864561899133552906188276798325952947394857927287192099591538468938087058819089434190180912949961194713394336693777239641602688595265660989405979014762421555927129035291885324882471313153134545099684050702621629865757947426656815547785349960933148673748931354706094446873781842488164742854853387601206876812363889019943234455722839206522775235303031145947524581654154609104154881897934055942038752873668849136253784401095318201306765373361444336321068304011842615951408160498000743557090504439600290257000819178390855238076631207672006607872558137638382287952944781022885147194293829007158231234307517914522802974977188996878850767333131441675142147445883679008514953469579583498992877599984100427782834873869148868678027041762589423461823560083812045188635938755575273266546445321634189968042250895360189966340539149237860345640282713982254185120748056789163466093872597430428966941199431811271827303134487274786541630082690375204072533966301556735541315373992321543936825535189865938098480805977126216019908519708104123869990936646326474745536525383957952408692840982028536285276365264046436519474542735797028123190677921058491091049964151178343549924469698241180183870410564150478133204164394057816190206316654592712365037025598881977990298324551292773601598083357197019991218703883784123100190249001683352591920808024163249927364482493201200367010962405489623845005552941193427933616055064079395022173768328119627773074199382803299158827007673979642393411331803856145743686312263804707580036179843198719472454815605039512354841209380598075570120928777704293078231338141028231648930249883044866743230406808393554683841932771189612787117449116320407952734260529105536780696849704130046736735105446951516589592430812600189785604267475419766091960754260096253498394733684048095073806994368718582930597996172774915346268436845520381096429059851434013976623706002378860459098208508183847742790900952090858106250886456484547428626993933050974922795884229071771378269356187286811935526823023066265376940161642429911133302092683231235141720261113021869965664267731035254627661867109642369055269019227110883764594972420517932358629509005416279281456553982411919587632099561258798938060207343610020110088702630051546993724564665070814150689616412433149406744196255527972404546464185603337025461239998066775790415365052852045224170673019341379994164158940769172064611117669028114845304093326062646040950929344160222406273338696588378559124769767741949788416911534981455092358554101305388932933619157565987191521937868520599359080915610438700097845154046327154941562036090501084441776582569273003107194524964097140177168434743096602875492285426470626016114029404632694633860650364859883818399881654831952250012539615310804340221304240646439500339453099178625326417947980486753551485399450213028751925541457449242441357397186583124806248054447431751172586039743478072949493833560584865725034700001206280362991098904588901476332748863123572264114209467912774130459075006460032050940224769109437978092987171641586195089062265744821361477589931650378130339112497337643500217201813258629732115012199756855901942101316596793406423545993350317585080555999532171440690387134330490249636091533047328810358884138418015787744333619437596524752508860983896817632999130570789798419053409051328530505860992197874406539329274489556985501259623595624920956739421189280287971391442520577647726458914259302925282294651668290586585587944318775241320734867123399127499747235697618857392188324437031802104626969538494200918010643168389501312570216735613239178505957034107791492573200296460461812511282376568330867226895312636967383778456258013647811124432638134129021009723097832358749721742890007035876796501189999421701025110734781354911277854661457751012008012091264163316600471485864504603120447809611527710719119332046679627043397417635109631187452797884668627963415706659159106331654311349683246075511228817798617167649911595087683758596392231614040719875528358688638695585620686278525444848131750675984324203627506128356999440599499790173229272860677303310303187450987862260295652331758950796306957774394302177387765882222851213414497369473254381602978469570923898990818445373618726398662731382846393155631656015773750697795233584356037161726158778157503862025388170642807757359495555425164358887788473152788401012662650599339462944328556543363846344995955728507201483953535939680095607285218281908873079896915793022512509067077219173635221475152666258013113030435484992797144265537822888800343753462170148940813211498877250601764465347976158822105594952360592980787916604711314815615380897868942557850888212612163347714371832991427773164122355817507499769550350893654513901766624537649578733999800574799499194045418955495620459854246632470531257342523151858840988843735778022597345969422869742429142778104619677781563926423434674343703176818151401784960303480260233598357810347223120562123480125443981496713965551950015417188799544779988135438468276180834008656530780494049872310764620365614397110167042428663719191877933041333103599430855883340613857535170995862420462286488798273153324849322682250895727898868321327135930722076749062006752270372840130696153763630245349285218523352975659991334780549642015442734132559610084611464525885363550055590874840596434382773518130169587158280101595285438072088451672802937941864282488647285392544305153612636796394973872726257034301877411221791430061862353557738421022984107878097698868200998014198337850811722282769347885036522903326011651629522171733234084793275704238500974767625906526939149949228847845239469919345716549465480894822964616954422259614651513827200503313507478851657320310214524164546491895249521987657995497909817756229469071218378055288859346251073202406482603905983426035680922782983664095493515803599574803568308364133698907109129851548235342256125791674037013507142280750902049602178928379766807668398028942270208608825675868045233353168902218478848363300206968558295910721432801864193695147030597732852913337260942380498455906562553978725069873015663837459622048335967684086273260844705351906051946633824130665989378819464813972202407276937211130135141139474388571214029124696192919689278816992697635046535639470171103974861171218081722252279360062017194171328333955094771816810099776068759215099277508493899094825255031636216766140628408985522413171537815055177514244903574667416881067719517982675730275145608011887566486463510924420511352247194124278082399503312925732652433201791383420630737085228736390271733683866408401878524412140185985802090406147973096729977088414902888297853709406200590641100239090605742455459996165114120767189083660675137017797015097113840270281212215633060102166744448590238668679510553345182101786286548100977908118778002397513342809360282852021007675820527299134132141443665679285544643305425428058247305821306505288966516742527666761858294616097638415175869159819625976584476409311483260985307010134496986290297021378137960461334265569484624245488390115937542157727569708099905435111802041465174843846426681019660824441003199045526194629917160060297905913773336485982226441450939448225003116030273940368966479613223506462966845592007451336497804117989912671843160025438813963638039304755334985212728065024448724525524704565484681373236746981780926828172413503368507469655166994703317690753480054225258824540810107963135046153607464337263877268809181871179339424247753309630483269077791105052474908473575697100343867403637979214572054133840480526527148957265058569464657268217229709541513928600604506334462042787654229124507954613442526644877731458109704679937167238315303314168234124354628903830447298588228563427804390810732399882085281015530037045104716628544449191261783919960133983406336789198254883876758779755541751982733767529268787917654637711465412823086040215171075087153974880432795620608958652014859983431893131329188622217610960209376058025641363082779831911092569582005797271955633361338622665641807210242212659053505574605685271344203442926311054472547070276213371345141799838125004106016954133434339148333348488288224913397104995042147091807277830982741468796895482553364797498097461923659514400555017964791525155975343082615156495469745394107886417632465140072649757400029329364860551278077282086224134107120915697474427561401595879254605135181980787913847415238692484899819511220478090646165274461411129102157294598916752346988456468502676912495762833532289666376198775696915211427734449993583255437359515881188811596834748774639971374394540150727587930910583992222631094822890118494762323648206500602641398827166698533196945338339060348513782189173912595969916788247831919636346648520902098386883294705808515705418807324747730001707294309439186575662836315624278963472197287275924589104328009941339818913177221512097668135237392702770828954459507495870379808778763323382214953814268658339661922643008820537023795030304053469982849590960895237680612579477109948432075839824961377607112947998910296508498285480137609040304696770232227914351803345264191102965567429667522028939524965221156171281046602111931638379150419011536690828079377265761088397282896128096609365138544918498134056624939497229469261569451926038541214694588858142686107069317973961915974399857491088723770578663004479402048836798123810975303270542638791419162559485738638599492469463641796864572194943957102809146026779578580328403229947385975339799436188969288243899840621224099367907520948919224097836158301998156821324813050127644957801100790014593402975392838794574229242602444139113262910916974884574640240023350407577952492905723526635060299047396766193269564092765360522607805760066374340542948939891255166840608094400120662694265670090346050307243409990684501439020238630170232355504486545148551486224290987184802065611052582771021629952011118925665846896293156859769341603823346541155218211639435627455023737497675318720852464179455508739162200457111138869390768660546071642093670188043797822705063434718782620960810052091547086296842843899296297657776303793127914459041285570410301452366394968388313738940849924262988394343798469057249477288939300987878559592908417304905558507821392429676348780533115313567822609312043209991759809816343103193107407725969270423494024562627401332556862244775933374504057259806007873523023293725147942392056420506740058031369164840989294182815796799173630791302181469597999645180085482370707031952907018766690356443059822928223939054163839554710967065134031099246175154689869442145479280849757430803787705252337596423516074579832801218824669952056308063250708615639869595682825349749232160325321776860295996744196753039084663620832644790672387880361183846524718308934477507578934917721081758957357945780911532772216856808791957520732202212769948500504146000140919307040803099223969527510365918547166081797796306815472320710706950060951009938483519011216226617655027076576627340998244663010894121167816558687585559629861061536049032054135120836378837692538718636993592520034118210144913544624290630777047311365881825968005892433189792674569369849639856694581827017687312624807437020330093687308212124184591709991202744392970487541391652391593729383470991918291427462478594012989362849443089409995416995704812109146807934681330237973197843794895105029687531249110367271770552172777260250450779368466695182412991921709370788566106439977979049317720159494217806151949370595961790354838811155850331635994379490195227784991331094259777616885934190830064569029867902402374909399961481269764838497657913352519927244270597799034304253673948149535197956549632428321831558292490960822376305004109519780290689081384755316815872739845901827706609616575688718539075652056271345310742389417059111616674487049685620377218143391316190563323588942745321943925992504233288838848779931481318254180977875524778222903610476203111515337652844209955381398379595764168283378614404778737257248351731840755259430049164100554379468436766999528510694315060880548236933913323452285802214121860162964656706833569871639941610841511050348936717658039154674185072767169173833113197335332459597808357938105888000585384986368815817661091639199420848337352289959360067351459448583272645316091701320489111041882633142084987046848474492816084318882522056142021724162276165290743884667827144985233987747735428554422533463352244356050197814982922367466316473301289187410843035738155745755366979144387341203302365651678177543139134219904070105659956182431284404203779572855071489826800554899721340816355494717648755284325227618770696933698582586930102169879840712748252451846001742876775449067900692475259666807933857526837402566971629021825377206917110256785096557446858968501142611226601288597074149636272502697271674368924519148521289655479253103484209759700950490997704566006400461287583446002936657464104462170236429867442163761124470031003039177233921519355952670442410592950173104152105045478883178461325411892031268834254441281333268446876583263364958661584628476839871203320005851531236262132697649242078463573958122713124745519292458003896924636020439430600084300863934150122715622835319507704632161135091798379624674239612601051865072879497668550433719906045365483242426323951190111400411030960895823058784388618614926834607144615691346986198522584827562395870904995353472632611281825440867803943304001433562563239415202895001854718692288453742779266979150213026112564160189976459821947305033331755025006479032927728629485927618353578427207887072931550971763444998714226028995036876981045091386612749498664841222836585268703703046945480868049267447774543077257936284971074407124471838929875590600335010993466562901583466552364710101156134950761172214817202772538983977679937736086835402381900371796178456316422337639227632659825570311421351001736663429531977517476135090183172964608965047414267033892821755059810682368317888783716518312722737498746718677952682452889379267186940509367529528966421980995575715349704475127091160313232948631975137036344569899334290955083135883823286511843417722066265405523379854829396013262760164713542954587978339831396524434386750007905990449234896608183984602868751404830978692032149334186094884538553298474266842818891979523145666627879672172727217542246386038954648093813866879471804236794267259817383240444699484402455431315086266069740088003306272504598290056167173886386753071059126068219408106711578143638910269841993002922551059266901847139808000234976123438622949941275403393456470864736976228513095245005089393802843798053468379106586321782810930593674880687044643397303190543423831087151458586931390530243553467657134659311624690783452296388116575692725930585559286616715159168389102524664792586688602047193750439155907054613375997290191425698787185001522885747889719233947461663860208443814546518559077303929552935965187494503620625125557991728980016962514161196983143621248056148725327794964927204210492651200969589997237717650766971670281637902098337121715020890636511636634387920125731498880690274244290618848020893325586384226772132956755213042412458512802501208266169013452311480244077039395277420879789605507815061463675486258651544976180411287156809024704613826002290060905553611090812254006074601964700170174002683713395946087838127250116436018247469724693055862491342055425892982890021489359029540779731635138343091475939917453740547027495476763196161477546839230218890027261186754530843877323109546415066088463602635012673442018975100253384942003049103726753375304740494062678371109057701402990202542231804266940064272527231806007669120693806783921956611455116902268648543069103863646924711281531532412719471437789266221711051040443181868030439484140151305140906399582093525947797085192242535584139120892889043975773185051990418690866528203916605424924279989927746919708351860931980414076928987534284633837819684215875328226926471595661620630067139154873905907312863452290274897198606279823691067296301566061505316472426510180488409980234903506242517129836651218741726681904097948567914479789916863155937439996702817171820552508217835648245703857531501838344397686703055110938517840740426751318762556647932133725971336045293243872492526230735549312587904062986761984778428663246649672504952394156551826758715226007933018296308632153261639308924079270382654407806041744899991920737726812677089151326876962849289964600558564123260265609794067251320388594064589813711173925983563545698902848401675458998816621086961245035784918337369570794432413268939053966135273287755253316266118065692636519753957332083160100664695291100374408603466810931584171753961290173684617970929656085631227077936811175538909690429497905466427648863366920602991674315061611687464481419039503928763572276521752730453116097130606736007980586799949922208793560429102471651338906821063723062330303923148811502798195593045293507992423453113221925819157971703534119457365426184580371767061477341381863489200893215360320251586976895798123420779091845921627109807583955415329528942177263600727686095614019008523724093738853078549420999406209257008608987844834391116265109735544422411749124999124478550139213586565283826169387266485722214643901069420762116251759846165322718917032043392886766999344430459382321271634274154386809503893207053348617035526041800659964346486936763330829364930192392793194056374230680487119101587265818538296509586303762387731965179255133705685567320429315064773943580137777411868026609865999569840565775638272866423050414081120060282226643693633473905376834384239679204065945567084293532334836330382285850491693226849976361499816526492589821260381913285680852415253075109973906191465020765091337655404774742421332491478332100929621701002858255425855165929361660272979575988278748164347640094055055516600210520833398848206565415250743135797099662888098518458709903032943118867029984831579341190573295063944846680286416348467337727360681548201869756092434219005249448436546606385463915862017188620607440690925647522059183911345174959870301401711758483548624403828108828178248445214021559880537137196827737622325356385058963372265412349742938212931642866935128528722809184969628180380688955673296180766289118788218681760278288273864296607852571758040223996529372939523981655368305519688225649511708690296454382980987760749582896137460244927748028510541240899952264222187494884198978881239594777120945091632802471732682293835803076524252097808079095144229832197411611257691960631220356966676489517571218315952379159176759314095958102084262246923161535190344046068253863360446528294568268676866677707623225870983520673980635763357261323236175530250925402254063655447437304722304864971187412610519818595147989536809360335987531918085971714114618520815728097022319088430044678329206095119686663245214328237388046207880240024918422092704634210234318495952442508385040594644180870722802568462591431969447855808119008861928221148359190535717458332699939938637113992765213736142458480651028595188101020347813836348461650869865247882955216273295251448073573100280885058830244383007522771694036817741856043789946637395458255286357000420597195087087801288175890570536929478687664648788556768498335861996995742079660902406622104204379108229626205373679623814525993877541650777548281604783477560638474588882465241857412908435723221098099209504235251436902418388382814457198551012387282634183602219793059505052561708375041268021901255612661673676403630726553879366875745552614471119752824437803053506298623550282717340205094352634526910422164057222322454192967374803426942466915421654775190944601166974215757153452358718986141017737705341201392772090084710850028573400678720048847245839821654500882848940660966715522084955988453033131643832486203075562538976182701037995694573746101691215823362040016936493101579994755497332997747815227139137642136201663845122547434368812604670442767988720709763866609440116013558594707157893521918865996798028514391407263672127010320982613971268094442810530041951843684533443125028544822195693105353073782585162950780410370528899192175083721086029552837218035454223646872123015398826868083308376628876798436842873457571055958714659843927498004382780878340318043790280163677503921669589549697676129435217056460264955951877912356712714507505917886562695597550164400537820654666532364533620909856591813171787407064166506984753797905654904246912976666673251727558719978118391020686667915787447592659501491263308548557915530177437358314554709903630736582902371946408917743110546351532057820203621440861301117759824845084102376674501601546143691477121315444560635828914187955628870865384542862357297474456505868253769161792843005834457627246782098798610324408201237984703963553400810972295904894555712049486043747863938338221860615650934430109242341270353426456431844172893260184430756351839088816202405219090162201271119126261344190249590607145403658159326507963121799732825796269459450816956297375225673260624367176170852254496982117478414935378677428666203574639115530618640680049786689365996361224291498859200926871588819747574797825953106518483603200337697360321419033811450079237173894158804562874275872624728909946523724644849144378868116233674773977816146356551961603776075425949677046856492648665810335613951484764053845790654304388135990985442846868746156094834263746750111374830821374458440363370875621160095981275218057144320854955374819626616771225968473954303738434634924492671722965452540736873426034754055440746368494165699801786999425551159283019928236892557661922199123202803902650982220767323533516518430211623606600518485370715664082627872032089371611949642877439772790889656639369977840687657906729041540505369601516434508763342941367425765065092915838855035295244023326213526650869060507177046530341582482338396863538376285298731908488086301578782763302965868137031503616209196843138120260556934373655452660421808259591971854005586686677432710375462223301539541779424864333046583353697493140119472051774056520713650779015419651272651171942938287450421386128227996733771758000066484607074748570508531597244133259555243344777757784864706688095235869153019992439953646246868806843632686526465961104350353085670531407020459235957708035170830459620108494201406734696111573584713415912264725846004446393437394051220817982395024675429783124140088273380942793236058073194175003683433562745689169912831946892197597081444793500447971564561282667739062320560146834699133180563176486068082563909964019245118585662535416379171712598853329369342185586456841757203452743830670596380073479283196570295494790278991345546517194053052715901559086494074699017212369239012232407326279958099698931426450636676959198359314365681623610403766140404290460225584375950589231460848568381468821614866677528610700614795589529691204269867153280006580238497533095188247934667671257921408488539017136465010908850241863017110880429729691935162820529973727867198141288603006078268918589774223231032767788331442974368301595626868681799929148334833661425986614303050140445679300817633264849165925103033441724234430669333630465288845789041342722356650276262225629513409673055751701601834277356204106576402643488821309107594965032980329169857815664900786346978540444336930796755709158460832520502617933826242011725762015688328180881743038772191947595315463760184845289326884754167727419156045686068549668413200655963269679648564277129949668568201590436731885734908475604342199439841855492995900057936064490011518549398008040910396048662482497937750346824328025339998736086375517185345870378419479646445460827901567374702233461073141694811787689617390943112872296664190594280318914623509121722587536850597580316626319080341586218529916405556455638508409799892059455143796486939093338316895927606302311069683961065792626496850205583325780961697824901046653691571658898467442305033366545562847748216915907977111010161595198910349829927793436091068158814229303570223936519880668121982767670178881357618505955810445418646342360170473837174005128329691495555961347714108190141012054778242922740401519670058068715286215113952011089411936937660592802709135974214071269349162928170045444403008232491118159219010015537418468206986198649755885255788990520780984204310653318377796675412307254634043420356968831706526352765009297620712190404449610720375542782699488966704807597997569279220393343684436486706927290133108609720352960656828956171165702267570430437332579207884358277369124711803562208283853145187659896529338241570526856387450975818297842414548656921782416300444332840050682714334554346417190960592143942828579251967928599008374513081030116825185109294508754325195161634273546114701475271604903990743266994178703192377447699245349888114351621088556764835090520763316481031234485746172769823605754530172353819446058304105637611254831051597300191251751817637434231443884403730517024851555272076523109164049827749990835992369046900064423566480471135411327575782807980033343217477655800533145040580060533272211562841163462254421133973691646464481613257032152818491907267342361844194329241255065864994808219169118088631878299781467713264913864509483275632286380862436051459591783868592831477056203705620948510765401273926821820880620314903674788393534811072829032848336932730444063304907085361169993079108188965005570813699996169326814330764647307096655713706276462815989444732479001167608009766653951515641878466728341180615377411845805540520815607633416658860604316821869602200265022212239076650274053648278227823725448744321211541357513408255551130513346113368967298779873312840879976859013363960271853941247823277282550470478746974871569241392625902018873068852295726435722355047518232334757541733246429421981301277389334044481660792459779516191485464578014173282102158029344414322237072829678621344555842998692880784295839033944340478795358997324306693243306420771237915504548557674880968594059695146087726897562767088132911128543682266122974922730461554019268976451120796375737877485382664770697084994832635125326717579503481588809753836074284841011581270511714977616265397560065816876302034643212489588948812225728886336408994580259586990767991638105124689371280374899019342408641626265274946863629184371035135055918145965664636126519011276950554076812485825089243804889052607110327558041417131433953069448232637969802490779378517918225227371499405924088210645754689633966087081794106055140077658520191522118380183391215650757243850429490221082488425164707402344816128171736785357637327843284641423078225304099158985715774555710029625651217293520215068364146933377818971079892316394554490909006444611659909493064699615386926663460948362188562558958019139030417858340964262484262194684497418728518122328118394950115520027654121302200603608195002678549080536632560451928320440637725491795575075656915825925919963598466157542541509736755766934955567729152296238762413025068866709832013000021151938728206532567448697373673835395453395393728932081241382486760561669343846821740706280875999335755976370390122589850804959678854591305042038852288784396524351317226540288201503433044613110260900292438368709848812502751955842627483345602330326318443782341884795892049356672529526962972143386743393420531437691448610516267210569641655541661621311697450826094865742066345299282819523295509514622990063385718274742058412963693022721315809532739518664414516646888340661054847212889628316608546930300998839953672495116706001696563155448923686083237126947754293261367854572508139216733524666365396868173091129199512732170553047945614429642061710782316902446536626407899578320314592504833551246240637524841600086444741767809037584826508528554107669065231905079628256481993566939878712285021973600903295390335494534810692550016469850754557268419525690472254699050503086235724396137525106341288374462167673293553178882417458102998758403353569362317616061371835485984622594781527388357267447146069643438971662699098323108887200981016301829084944555377100051733447714658391751380340734190444729520096866418518179905055936591919046986971926726109430009384896883544741123974563264247548256548068362830034477681552480966924091852877909014548469026863777724153908294835392899765505443737298180646088466413406914923077323882951171711763332615182465665040895634316794326881572770418134023746631357123615852479303555284838750917464680437606024322138753070300683193749758464370979415320252901834293794843708145599421998393533825094927959161833244764093202032638093433078249293885375222085404039525096733644811999112615602117109008062833954078389675454486786926718293252300331736582359235765249369911273186218228162560619329708101342450687242507236262936374732860619823941612133876076169029740798865119021648034766488394022924557639710496014206629293466728357085316367624953115780104000943927813776201809157306290109735644436065123893389896169902971592957637033736534046750029244736810071940267788573511824199623710512714134317044282498004521757533154797331949655218723329357740294295219679022168676456065942533357370174205106886109724538957644958521337207736526213355451058469320616986296629304444026846197458440682857705044109509844125663911697358874592774421055982764850913093545424472809673368877276948450525428841483970146460989556023409697808678964286759920867615727825521258837419695456620149947572612925852154928940020133911344934052424813959563272361936436570439221331548956716893954090474619068177738461747561926203188184206616158221582941811432731590379536355259366778973556431987928401637478094620014437021633863554541684784596511310197575470924136820390364899131810322198929342950075674007078054411346375563712542400093890287358469148870696769703344047793220570427408463119979630872695084449333785695685800585829174884614979449613435875392440725036166307504601971937209520536203547670232618167709621540863646295429554067425770153969214792444600244722990457719445979033505618374976449111321350893798540360252022709673940197069394610864940043599547914127387376205222719875662060807732981147037295311786317949166802278717736593120156968668227612072220203149669143598971497519018337594733801031078755538096059097835115711863629844907118414482248821080411312745121171323078217269152003316030011355481888461795035932735409331315957740542605577294322958687640046981398369238509905216901619247432426492025028510034119325592789074885842555591183117639442695884607135693536979335434125009963353306423412152978785175080240254271103049968751676757898335101493542891776952293163483277386251079485961423657025019175395697054765619678502114942939005695112455076517998038918430641105764725717809044795257327796181516138266240208245637230089971575988083614068120348587588663432018748291897516443172516509034233071268526712833491464656285900277167031824189474564033333510504261545113978254296145005066230377226978386249710358192400330635650237359696818747673228925969514611811256398526203679195731800657876661458584690392942099309811368103316995495703534823342813223787529225733356017597281295047439081275232626275221450876429016241224655039551973143562360614351287622705893351362404302121165354232155635198022534494920881318891812737050459098984665187216563745782063755334658574486010705933994371883928405241661413240020749997596402556535263376795563085786643472461165589347013255686080378471422246632511113318641210926811508762561379844425292641116363892315970575699023962094711759041928322737367515011979609680988971180961831640631469889255080518007870819342426810681202456902284048675805939382700062718298018384928204777427721338019205463864603178553068227752914695426254057920338143649804682912332174697266389979300463030175944324885909880222330814836474623811116008356428822004127223011706345803244012534312448619509666974500462655947910919361736633147030977798527061860059822245753474390746848522987998646727647284648022706110644129110782745410519371690805231493933497500743338581761431401204842853609843048661896226637127655702245786839025048258927267557076609900333123436221099430505250184615431929204702628009851389072815688459716431865446012826277769644645640243477428397944173173361495687605371973314846774169144647047042985748975057361731314647165929147040733999500802542645029679705642614237503541930588802924522434647712911910033208251270805984596043335547213440954794721396711386617779606862163782371650965731144281571014975491014661341107366620214968994210957602024166219605727621281327738092867943697300923359902871555219337937384395090978711238172137491705862268081321188281494726713794283169515351453955426593601418600370974435306205233804116866836913414507906448450268703329869126838784411193669153297691340119057712852725381095460507143831958191217799412472578600777432441763868946841879815706056466105136126899069097779625363438562302843732182547313416292425197650492837943029242249542310213176664237280962390548662027189045629677769298252067115418276245795265553280744571478420242505980106798800902927558677558057146329501969142055984087460493917475479397334640822506395009237874473107953111301338755549726076149126211554284481378948713322489818724615688642953551187341217827047030005933245365152169443889685881004268498012354758036459473766735768706816584874197420505682935683115787641516952570592997913175478620077842811108404546735868879308718746623343698502056114269192829280084657182997909770909834327615163352341130441046207723032393528150471060674006173675698779916425754039200769588028667755056045282102798856027051215309277339846818015214766810919463143947641754623110308932400823283314189063128760568320486958323135977709672960723776791253306343255096809620557082573179522270037522996610714556207904439600908462229414116952983351019988600711598546268859133425322460493160741136927095442404178441543992647654205928437856047913912515257477037514600237297839644523192056786649087349566597402946324814578583058116970113973080236359070189259356823856128087761965604111501560573398453421079629181971009136182589170721479771970438521650255309592624372592741784691881918663270527020981814469524158478602358656086121375856128266514292889961337057664008529294220311429624953822202841314664208419853285344288822152918069286609823611743576771292752345927161346403805621546037165702516587258487219569163631165686959422293797915679614657348517263662076831937178623086212824508246476456410280656052778593487223900261444494160117845657454600668876860042697898621207456458410239844798032560099990698139285934235911439872521769665733595817528071970134294992324067834783845063487437459068850570230436937210465123676464998451682296672403974506189415018212109342446545805214770889836096948599704290692192003466806125043713850092311530725114625939083345846096573024859908579237573629363595881972295579540212655094159008046637891140926791391656623051641813915057622638842364190316590919520933188448841407665386354388617975976997432641550762397276079182287066673155575310905726371960808841414088189900576773170431651375345115391000453605877431305600898993486203061007893286997715892796273382582885817459067234050927371837749327767770649743353324022187283383511716963006713844885958625849200438446558172954647518891637221598059815660498704006597168288009545342655055032166822103394976061484302246859610237555790476861548970153864742269216647796660634890857571250995038439156514018728172131539670219085004485576966933404735222986338426223174142829151491925569995496900853372543574388027679743386270107765517861786965116456581323560874009901530485405156767441733410233951495111481743332718991559095336674951576714943719436449769072803364788813205602929126452327092648356198827557940434198281560831726921283933205812015040811193882387198104042332706748717012287601278492377085183309838847556180441587538061295649949644863428800370353429066532344394389192501408868634993093065770243310720873592188493934280690077351899451316715101340584602011822168863263172453445003053114309771526586245596215978794731886506350459070857425542772214828204251510065725147911029496793018896495563954882779813029512329271011342399216589444509865370687644641394044276187384906801443529920877304201148088699455603097527855591270050182014995704681645154715305721507575335167671854627862380511254059192775021276915891817531730837803135209502238516350804963493887893720417503649355827349070951442487199632954126365236406452334155418974740267349736886347973205495887346981736450124844503361685019980485089392303996084040449326739074587456393369053476382099704129035911909393919842517291945385831985893131329688227581232686745693446138526145900655159059461937929823630375731958403714841381617320553912987547886398081074830552191600094445530190794874201213754279836717071377449232966835243161826014230376513107625353761645167220999561970449695421502954861009652406333749635131603789995910527279780949040376101207780634702376243304249042881780595300491612529488204904254873301142279980217937390566347042112151048435625484566110270530407743950462218248373806870590159915067709657520601030182612285541768832651123146412148638877864831012131169577148378606711341207449179822813843846212414359021368318229607756433455861784307598561519778101671740629780096196562753232885951905050597656275853195529124045850428596820097010757519143880742755628949063791572302877332166499950226008789795103349291324562349720317751027365831070995149320793117081459477087657412912289776697100488258019421869893391327838392005236485872997185186745592625522743133948936683882222276138950908898281921661244042815871331050370879094350194274738783641916180130019082425202549885216652902797441360991646460016512390211658848323676172290969898037966715949356926239291814053573528542470375511063031388128957719349530155788294683673621003481096300248002245565895348075997228117949442880937533572241570373752628721112030963976320773449186889885551386780459665625707883625810690088047669527333875121920260070226889753170478637665393023581044708063540511622926297399427615894922081374884222270697733277669055644400267392219073278853179878278545014845001174754311444279655654125574236398507844723781444503758639943981470108985245676713329975650473593417854720426754022580757736530020738124957124562947709264437577018979780594733077703528909467381533532396830853034529786328369416484951356901755409121496849445029310723393271037850882296487645287765925502675582951170805597003968525799109544517785872748522253621349732328907341899877775791623319718648867946411988968644990314663415515109618050288457389503807241329190721540930724819955232017370144928597881505894164552108845988731379635129619691416369677939515080853276207160256826156728477429404928451620157907170391036559003457123139239622366666581845361826375626250368546349109861296019473020011282940437055088662510148366933518018938825266763231928382406296969254831112128544044155609916843532611334345643837837695987641194302527738841023177872816849893326558498236841867150455345617637215595304679600313755210540746921685199074568189129264726424912133104540246552941638079507347674868711147339293598235029673935433811283529934093893830386807811672031831357840476529348862412562203253419384371328056730058119765250862505156219935799686352285248033896610093028416747994454717559058774447239332521382872549631501460054575270143959048323528265240771552742716298783864969869680087666170572608376489754786091248199113812301387999467619949948941778576278180065990234554065319816356504466297305779177475911066270013266010388288460438411482712990281687932514577922014984514631330210582000999453878800980895141612228949725650102178882800230156137107327652402658203977264895211827865142182542615531861076718199726714492871233682618224388999369615201150851244069843849288683754684742709812026193758470303618687544379673369269297207019834432314314199958661247341623522261032713726536841919783357296346671185550459149587847859288477614582487950708814577421407613944784358041290926525161502245395274950824688147420415768510600430900006949180356216020808160266145754287119163037150717583707948533077445814029503147341630614689020801999281258084466179636453927601226168164350556120017728066521027479221955197431524346762964033727815948943883527495767348935024808604090989089421105541646894342365439658897028023749969024999661033440684746305763577719315926630982940931873674514945457167470973540302483527703331096333062670264469121607402428724444981904795342082466900897425841502661330695080325136670722799114077945242340816988196639066339752416756545243362321443155207653895674354095289784355847690277641319578099305409617642933955966045717908695770742175677614626973027175431291682649301977667260091968793094813477768418772638398557294900769774300017628755912571770108942942410746743164546378133292284115102229478200373070294326622801070156511539671257654518211545171389852201536536704718688018791851407579665572443119366829891849934352769800095001023305339871664348993901962515148344128922910261808386617225548873409410708735017730348426578114696408945948317544710833139281531131739760242834095520700047467359790031770677524309679997241109610713376052247491600768333847474274762399321226343573074504521364587043502250048676805712256691205953132409372153224210005601782244454404645568332677704942917624314366160706540973039878700369367022920509737296474474952369874469971956770764038875802404772788148865922219306781816369817726998028959112653127191372896844684660829519139280468674202473983865380868425938241843378687885884273599353080633563910496998276862075322474259846565822739846148457122795551716157143106226954120702623148332206318696676907934429319127473310728636588170130681023227174249327735046290767597124988977838502716511334676108428375559096995817416881149127516862058165805883107862115033799464409774812892738818923926650462409647523030869033580969738658170271099569559285447990892326782325744015505938757416403016321395672223438527867233874545073165452389841407975847078521689403683127946432900634082354956149606270381761815770280434182454456504890220213781909304486605482322422173986990519960675173293650287655470133533045108651850478146776188163346754219556570751599534813717194275437795293998659847289855084834168026414172441169957539442290071455929161047876275237007014347483940833386508047326630086934655156382846980634808283690003423752503467429580408634895324429051158591810547163759975552700874581203641804027295936231805700359932213666109562801722308434989547599434347485078215939051039729557069167934932703174287228235547869181650508493908717856392089813962510785153220992240567586094392783401511277216558384033784839085720066865083361006846264537852687720420158828039255172731772909734124543728583479252366005071084798870207786553885949932699364146516572818201201389638743237111355598146681222023676946247292475526529653596585659953964822071431898428508512299400079145651329938020299824882792257848743820950019224691675333237321568633243645909505540154425838710849206787454763529062003820617346340255542210865702760638656916653698251920149914273437609835295739806684550324290692984821129668542534002132585366987824155114747508791694474828414245669931509166781481034665608805665966005347296094773380080716943087740583636546014351784520428120676749560986975237071003992477178466925120788805728147915183374952063717723084749153494432120297844180462987036958229413941846845814308657468010637748176588023530541203366969554474282651926620688893727636675720858822096130826810159341912835809641081005950932284838865569276846410019026635605600635072150066867560518204861660360799123550331427403297678572639809417908908573096310838518249443011936154432728588951825512610245155617893118308522700654431100546791054972132100568538287104359528402708902364381578121119448997942502117128571664968520196253387511341384134561828413373428755251156387394361685005294888564078555994429862267033817520886071539580550640016613444683787102682034627647935546847893214717572626534664906064955325998757458404997433817835045735934906457320023220628603650316361745077279314724692814760616849837270939167058273271950527603740373219891946109201790394539907801668645955003139967553178609795830608893450650538599985567744564243319303623603790271540842133980948197306758126206647516896778001709915741285055537233211830591464814735425068344739775754810634648757382228062423387071699707277350190096885665384491174815593319213982812405728425877711379410198171434412075971245907739846669344645322861408324453055072272927972752867215504994219040398580951005552309604306094059234613225931624326135196574074414055118829788595906618750240985683883786342237996802243211968472670879174165439582436655092266761248663076100620631471066166540902730195939757087204441930111836881238260478193131244779837093739291475576648168426603719450279599915503244805592227388152172399282664368585293305870892773589456109297411290600458959122770383076449156256318703911756637148254040635249990516427091726393847850334857811226282925162231827972382443897011797774462977362680547013796946164304348429621124966253941404996666602460800487458314610653787940018381176731499875516921158737430400280349647866126649593356910302705626627087227506639568318463115246946726118578684179391449215114620654465990083944435246108401577063630532834945082737015415789892175205623565981442964686052125236414021968235040279911836675427003004022686032069636307408514666278252301631391182674789032422252608274921583693762594390890032330186364881520929945115633194446800994975284968265866561905736898428581926272097046212496601826627921760020465838174273063088880143291114001546797576971405420722687923099170897780236978529061210877885852544961051033458390548330866178453961961353720440654202674087608843939138449035088732316662929484072153663768021403347681661592793875738891527271479301421005666965918831892096851859928985481769314520383609209392039515715422448685377395799764290265414780661907724844876179651033083966972835821704704277018136434338684053158529283885050919559328085182937885582712622428766985658158281784798093421811710441480259646132024369188217298370285240499584998477385127452694541987564401954156710576596346513183821831046869514199191205733056739150767227454160063503545357610456030986929266545998504874906037195485311643846202507310483763682767937982859777818240298544752654207108664046918044770872439782280208520316347631214010223028448769175796044118580873856998338699063332886185362718908965708432042245387147099488184282173831509816835028796694922155900585816292480556483977759015881911833201604345802498703705635285277678073264224016848983521169176293984793389065287551816875390671807581752689726689258196745897935643536101559095928330721591585529538100015940425371127573653630660707971346994881148488861785820121876343913004575525718959755210756683628911269081501030203804527743695854892798112601996563471296235341027043891556724550088680476481227284535982714018785905957454069610876847151233426792537272608318298092489074677308811181184048239360533133023581890671410979054202999593119101149882407416092809486938806445899773107753086310935436524045952131837872552725779244508115616084143647433755816213602031029777006839689441065806056947675041956272627784723207116094155043795775107327390243290617463329993835420053692984596917910937382188238533311568817296457901318314733593032755902584855902736486433136078285628153003774668102728953419945341902707330825355885817084886329825762013620786754203371427958162184331885049762195293562457288106555002115960252455054922766042594902052257976833257727324634356552599845695241508923516757671989110371779342719122191435071165904039125131948408800681093330488778994211405147696383475156094828083329262445293008289379712146745458607714771400225258960970723779424348786029446276335787897405148624261687130451216744994851419593618642435471295858477354186586439185479745814991903238071860654616924588569710671147851168299750260592206948439793844492759579190619622875029963200082656721790566792115670599349682198675121961706820752307561501726460276217202073584442763202291721920879680366141371806291392468068812675772044255285361640017332928744626006105539144061892179876830099532555946372799155218415358760510135981453413504289693648626893597393035130622847966624416428764938829708401246918374338175305955104057487955956010625017557246608867708310301242928196819657051066204212989390085111022048185100690451513006978989263321374225747472934104323324357850094582890457879172763548278996108104373668114193534461453584731756441762747751227997707774394092433846810999840791203245736758333362910917452354972375399871996193909520319650248449414472039717743565530215111528956405002121937263568028869032459034304815392948248870104569855815023747488963251489901629401109502228952563098574847168271153320650453367284101728021216551300742948916107259990075905970114234470449244196640721947527371919672346557925984008136042954218702094990203430599260397163328348466921145120480436688105818595689825550552959231071420893845596371632362885348913870278775784979879495575469040952018333733828280348612212767013944699378291895326979930361617944558836579742996752172605526431423216637082576286769236735686034265149525100129633029129147909912812896584901660764546816438807763883298574562958414658657475037853132531743683051542749928012369719401309024227893624963764756071319363158253216216013689876803079026143328417539620580019413575449010652945884800457160787836563459493053698987080707159282974680046713295649304619382698822062269243110614608903129997220889754501300566653226216710531613795619031774635634134120584982648807040949003749204360709159799807142963058044654392477898394974285208687340595833601903437892450495251643535389482518586996828501817418927437454379025831625315538211692437267885275359018719170510320818286967690966784304743643863541702013910334524575985463674670598715433280777404454857192546805472994662694986357518327454028634913736094539072279912018517238867039820747164894023682167389048268967060742204981515478445994461743120890434583157148599091429289372250542865162972752896997845657468436468852393891878435810255863816130448451935820997523419397915725775838544439665178853679523493046389224751580467893853051687510768402922649222256686124371226565882005654714049245728217522915203090792991092394835478655130595158407732128920925674969818397643809598805425185696012547986674019286370881346312737449162260619312542124402309213918434632973009453839378251982780321187164132135388034713554753932768164702213875986282528860365844469636566212865961864979122126611589641010326972550733044032993984592706705304883219459804731618353226323030405756421804332125034643416709076394267666748941233705296344610961223173965166114882623392610623366818356334612989509062492371111696061314340691468621265867310607442555954854152292794604516901695755663512345367266697832292332929379070802164794218819421286501475084943580380177851197144215413741650890588281552305582690461115514454615987312474073970388166293421003533614943421989107809832074747367619947217367079085279188325148476682827152347481930607890433973980164821368264005822962830636977490412417348721716673552498930893141353328776118400688040586957614787403901533255746013192162853179547223374109821730389256913354047666131243641767378676839432427209433065970125895062102901150866988459000116514654195894460106585601539913552432260548379988892762736046605145126475787617593387454430379729691993331878623207970072591522955371454132615727630126658811378447202645806059998494075444994609700778087699045523192527417680448824794554079329529836111728267823440482017977602226083646315057051950359915395959642572063683312032802451762598061149981294446861868826166902985288981180171571054068939757500501150142477414711617007445733228910648331918964212287338237041838505928692450774003718343884160378934286731019185172146145788054176262609600970517993616915163842448657598587337876512804253664183219294867778739974849259203669970404834340185016225197594297562777079123014399097808101370532524909751859823839078122173685546949506337718375249225554614114518591011244361833642097005729420786138296532365734100872862923293857921092417675065493090542998333530177992846741416954410955000193833357143937293114204687287646334648292018334404733414098707566622440483713167735074498733133367327207712188821014421632427417742313466501609967892407496712866434782395154610886620296644207671157649995859778333981571816089871426488997395365001557766339618565880805576967142665048431989607301884871334681685614070785733111293444995755084784953805262169628443417934386131816915202175439887802908904598595806851520697714486320538666023088170112915604131250630696434043704676850656209386744869993433546772188162172009957699480634315956532730430208885396557801518085788960867559783519345026318644278012079664617775386536812217208381545851788335327239218397245170297381255654497834177661054373953867933030099277649147569492219384734719970917528072704434760543620441445810171062820936638253737916558956252846122812958972939931200080134387586937343008878018653118617931488191712420633533415558705004240139124633669209031258608324295562670607641185459088277433188681395597433158138128232332664735476631406994709928472116113023264649280084979740465124798383915693935368126469608782280533195711523514287580786198726432101547002378272442304253492344804457419511628025644464748883639370142227816039232923991133849497962997048176014638969596223065825744895207847515648804507832481568510885191688581928350678087499510847898428090079863535069522031372776339450466307888106908778574921032614324349875444944248393105380785512313221009260056135658507738229178062122731080590798531907646780700653230565721246413018440500665579433416513323167731441305581008809778364108008136013412594743297179485583933466107797053027131273475340610923471034703841042731060072876302174056810962782496746975707475221854172370489991978459636102544292177380463390467802352227331657484010556477090153457327471057065446269323821005400055819466757262133722716328724629387224929191806674984275710906835657361091278060834826080243627891454343679595477237623713953070015590075933148079366123828287692574690091348924544038438125390675604722545558842062008751996651500796351203334017602735623147875311025750417657099193140320519808867280356687554759398336549004967997137679015925083854422253139336041445199893314149292169204343252371954369952675218045977495636311907659531837828897400727952270707773400408991689115558844226675462904158738577290449900227100736215432203991832363030829678118975862882912215682490842466658178798911386149212010538656799319026849794894317316292338448031790726843197024950640791758925422436427502942765882373593846750117458438452711341173482407907192165492242575142229018187589801054318168783036131129641355512459049592116402684034739957526658886899604195240351974902160062490606924839110721748948629906221204902602538968331043786483502284290896044813887119129328085855350845009102860814510849009902056725455728122441612351075894075779578658744863630752139036205908554352509600088720198171200967122246865210123536510442435288006546925808014770681355578570517456107713931329244031481056559924015380500487952224911175654326794952206425203031096538091448898044027257248420928044038395506233902213227476341770505016099432215845547225520010931775854672963455650195067813143918805108057594889681149405295931281373489223175955150108189796368009831665216325032545372904633534816790391288802564387095466773073076031966635752941383141603649326040553833227224002343078664920869047888374171234397974042487472814488065214138145445331351554774313733936466302892367043487116455057957031954707219707450943435858919222164233138873068493807032173421216848224632785546667038342047709088366873862236161410474866131653511274356563593714805111010743997735943316820896639222332595737553539156946087409096664736568787700582315302422480745670756254216009451663180662562976179253257814832947806605970125804859801597452433006209736266444225193485591245821264030607342859519098544290463900738379524820387591420333993135048827236114807924644834228213209750722224849397021989502933509963407161214506443429779891077392894938956892490258172169000373392359716735516486163007013535187425949620967662414688967588664703997989571654202663790473709793077567219295764598846810144254866118054210481193756392896838186598136658732373053002691699332585753491769354039393483338247877403012125618164507507359314318797137383605453875698710521898738620360429523559572377589483955875855460650363974482647178071460399955415972919537194558658749159316402496042938188722349459566754672321550252862305957685194314943188816455947312019624510715042906222396485455833620542638052723974739659737613163782968017565029141822217853764824539067507226228791532591671679541318126910126944293507044345419080740591352516067919671688381012700948274627150458754834165279037691024846650490432009721070025655918464895094850045008365022254929323781230352042427471656027511673637542569905919162423468879932135893892269474901715451202114069584629318727787653239203501683437174077661933175031543254449881044956181693616428732934013530637066293474335117739556311142508876830350098591457524955714453203064238389072011063587245678795530556842392011575586715416332865973038586125727120560188281149892217697015086277730808227554427093092513980099535957828911631508915735574290187021332462595294149440783144813891905419842059878440649383040346461183854920044362358720269003871328383100942853308699264163677608281822760564194427800852279792854842551760525690782398687793118274903732542873685309228790482448761541802874357183236703970040036456629760851415952683713390696284890804965835597374050083027996199110135354201749671614492560091409149821937114724609993610749635575078000295470247757155237200196089985956851584541165934956491393190064992473662799541739288093714385932337380754452943777495025873000990887306739933375966107684435676094114745210224635824407577830838770647247654559833846272319350910082663836762862916980510763298417167137020229870048211572688976234934268654058801627181168567943250115474217226516626697902987351588339949753265853257133067733648888273281707843950392597116009938550554998762262086302592833954243918107258058224953682312273243262335094887296348127796780170239023107822219527932015277347742684167044416261665314941492574542914387021164843140979431467328555618614490627733762513162401847456183476425935872502513395250917902861623245747768485701085629961041242162721081881171824517249286343894547952681509106480729024170946375844320355262725735020752697308407076037773777360145257615788909507508779906331631551741882487918155068873904562285861155835966487578312826631764390298677707493356717524119876206077814301878687202872213008266053624994436287224186552486499572685205252081057923278817073651561172288021502340596957530854218450063506710461766691261913508373633622606875719637708295157290151309114511827373091922445977963158549125000560391087700634745083510533940789920431720846255437584734453507894815404221491246348861906985550635916517907204751946846519276052635041427180564053685237624584607701605299927507982894101117128766078284582492466376383492735128763604123671906930709299137479665826880853404820920626577711465624009421639706785474202510389818406731573645518626447656295607917421906964423749010680575975898078928779074681239514135774008056254310553206430307948049809975464018083218292058369823705766676183430359050264366548566023188327719085048906322089733316598462226827211904315958170790550563661094438372680357597556030210004429122172360146222143927631124891817352404003418795315602321358649379069090697650319020619277285811687459482507089515806892076462857681464447614450200204924938719292003611401630195406773132400132444354223720581771112029749816220693023032526088880051523121378063396390925843998139697537121405949971986647760303631618279632307223820475334625369113878183951316098073933186770783813615275651977782947438732698374737850188248042723051193420509342339882914544425799837752580702106321527997070076321465914521342235727073920986209345724541260017493580489942423655059331102130570778573006157343764167319894992982397450974731500190324429045064096613688562794647208177079431545921191271912451148491160659789590188262792711325805679523384030548871882853591590686171661238616220170263943850533493233408308066228104861154146717976574312521184897775000835826918552520241350827913096819158345273379329659705320276642200748001743269928897865746460042472536158681966280087808077080604351725744990474777821303016240101041311373414981126936879270549632750814107954055394693822588661712079508799666997661605383702622836765234182610084360428548060250245824424965699791508156308676130165825907494744085740196299138142004754377543756256121761593056227072280186682607710465539698834168577535413076909568548706165776919541251703147192974327612359733765854273381169520550746889493323350962260938818469502288071917865252031538191493286783452739606828667444671359767844100467174870043167437297060501054877533441311584892976259475909461919578196436741977559212945576050767409101404416527677998521978715901004526884098804487627376879803583425681399137733252264528893428365869430158630692534598828431692654215574717417961927855961660623076481396028842101439368403351150335020116992977137529729064199209449285567339985515726951688091335388595899830807081357947930485819685157661393353483357187530728442675168092636976377257415912480381102901494728152050424047709112128002327331360198388063427834403858258488840599448779194161810323864452840300125559488094318133069391369251868565922481532191395663206401166052493255885483114754817648274115518570348476950473300142354068000601273411579100385283371244636164536584706524973623946466929838489441356409838602415068569131394425088144125642852861358276546246450149604895373287500683974105198652521088987778664350439033124008355920201531900378334144452588931483988681564066893448879226029980865246054671080183444347626375835390641524128134448062236255483513996307572336968204428116046086816323093060985782338097909925082512013241955520901576961606779850644418797954789125750393890480780537200006499794122608044340354401846176067268833480765851980218385381224233895351461125099762162947630751581223183506525178271510324003585310640559395568926001335297090185747761408726960523490181473275542427506351051850995381608009445187026233582189672803289467589383800960234081473742928990242400165136215133344835082357569023285025259206648433943177475055521311673247702782097650728996913243699168379254364000741981010098646574637125832380643142896084633637350401276108757970165093256019859242889863913081360589723189099434320060394195229597418701664312273468124417170750760394679526390652860502802372628410294209765362648721614689333756058957649093020796252095349243999115145718556709300378790770668526051403726042546538631009388264190315711405117189600270090645651879222833098821704906219683037551333110961148986295091208491046499607674430551502042239894863779403934636262257563519239675939053179379633300302196430356498311877974604406203869414991167991127474243701456519180050151418883493866782844824759029984156809735820449813038361532472161932045478069296911146390020144090813474552265492386541785558123955329321331457580705342996828951171377168519977607725096090374113885206309501678488029091290104027825347766100063320933067666457481521713505063452418793372478389925711770219302879742822520819750524001260096211113099376275488800080137833396359956832315806643304517522866845264335293114363142809164829823777929646612838243951286473190557030454770054405041092247270134075533149815352981799146547925008630669716482196163650077053905217616357768049407142349986661577992214118022279747904345432872363823683232660836766558847477861396213735634216349705741085185228929391755071182638474925892278046674494534484029099161667704211193621177450425401438603370069924221655836011025907937950994590608983537998385561427407815808163008904174734199236175375000621609935649331074879307729135908325469206440626654634756289747522867064628011830488180415123126798555118434688910071590404598719442208242864418766704492640547267494498372600485444488316382182386692525669623970677062262642740639139152463146484521270864245772762131442574328289350325561761959469032849818415371791367524223947543774337886922899110621648551336378706566469151027646753813033966411605303592277482143896692849202459803945173129494649927440671001296423392966177051562081361697333744322064480041543050458418489937599655235417047714656434305680306541632023193636489461999409228387275302512624559393180683891471216097985150004731529071298935405225209459282412669425554757599706466153797533320275425870598565399793204425587244250199075702102196805525117121779116511110445084727179172258810185798029204153172972942188228296818205692677244302822892521501117891123083481674672105466007537366390289506956848114644187202634884561542747225041663702917325677483821889256767195569012188925035365732500744537536764409626274440332994992157116945148477444836460836333013146346297190323886283710870488431368334592856570434763412344213098117045763217946088639535719653359351108195360874387747354436310557336092540162479380939035078295653767124487408608979533878030212087711550921325177667260249946648538655591021659702795025668258001082650589444054798941363349928997712423024791315262266911913418228513763384241236498964454549747391462166842837558473309774436856511624771698041045265361581681816006840522802513646580730133157579196172940682641445809757745216818041935828919635596674931152478369571235809376387136766146289728383846773749914619194764219043046597590287382022013380330396910403982265610417691969874202303263890907977273932127808178569431644691155719193645564096901892740720231331488942416402008902974362504725203738071531933990062640569463176798537032681584063443739621150209947672761865824812171534243502474935282529708407084737663500990231564179550838971402232301068598914320075983882586435655982256445635947837703982304006872609552477605989647013955091282458331124453080564273345812692462828800211322388585136794277435388187713887493604611356950515967329488640885632482753946083840047347242303679363559852618828704064985986550438420263665558010410428899769765004889533136958654751611741324735472861009599323305258851506141104399649314914992818266504922883206095665747118593227355543766256064884511614873805589213714889048810830819470539438040134894769471506766202534215217753692276879549611100244878635932620691115178129049240707628840682949058165436141935694812184221420353247060483152864005492657872220102042071175011517672891949920701209955010071874794635913515436131644325722413536362492784271396130589599833353264069449564427986659643804463735115117741904860846514271829113165813727666702993135222478330851849736109996868899409263067320750837948995645939576855788629347352485877019753455583970894898361430784443280281502572828299948886650951746194936763866579602012874379112015966850957545111042790371080036712571503606495410750109749192231593967347045342272244150073601960465312245141265030228200800059666557382450045021898978750941040373310004482117985671364871196633432758657931435825314478172724305496085526148625610909773893425797305506924142373299816331732549796971550966485451575521272535747315661539007615737884182800960632805533931840441684711470430693331327054978681490199675780772301216813758772711329827919557421895564679081692525916174659539271897289643568394930710764673437504370917611061783280682456803827915261424863779181845512178568145649617627088629171594090344985861964202637101988369737426677021480063548431648954256412247725788618191540689863977505799870477276861634156656026347237482320982231567818191759782335344530901259307536150346274331969310113873353503910992534851530072956850144102701461724638969319695547627197395745605714070463063043298108072213016056970213066706033871341671552566071787418190450597120001997441528818872737844211500364329118018761207828358227129559619791591061370621782754638915694270730588423558160048870832306342481931208497268730342112311967275706330012153066239331190501445894700593149581048550194587285600486047565832912150623034493995447257249633561526046828395617408820776759742908775941701350058613112057075751941038806175801353244167052427332481998767513767889983524673087600760566126605827205342111450544874326242649049146213802953361394913300167751032951007351560803541570041165887321967389795672825254724894737006211303994906271165357098281405861765621151703991822932156262855478907200613363356856938073155406042768006616835653084931183643035086087935229421821322101592636512760115629930356534010996488309281210281335527710261634121033708990255205551753165251142746082676873284299493665910385061838603927118423152274681587186082718421338849926545789091545943487899157892234308870549538356487932837069616578301065393463733939617430121037372810202512470263884061312652405918191315656345808053801388032263985089300316001347988559244636298556827525512338560903143795158591510813280571398932281826674590373185862435921927663819356219199530905500313896846888794011501111765262032101283623975520988355404518089685537109400591250417899798934244968954159660964279274664806463824796001757843162733680654755754491758642452051132235665799224387664142522646260808470494829727052255147925500343801875397334651114067698756661147169948276145546356912324429625201255068874842143350720189534766708725552062776709860959625626757293405069981662864925867210495651062297092715520916523871241962084889614660968163835334510466388795146472173170058573954800596582783605090155527362652257103981522981633273223282329987480153106903093773427678447259342720016348344834698255811018180492613643544319735590803419209499953730875898226817899437952322319889402451684974222136719995619166169244647662874566846815308809221359565609943812813126259407836712607026972622248163978879764988952801367452005040289876784880216637577812186466407681082581999801629002574933237216003919921823322392603532090367221294962528745079298850883137166884020733246878153681255095069034553633806149056160763309095329781471080840622151442122448165609987519215401053657725753550535594892310905898292996496958530460973926698885915551284387939042495066700936876543279099262968587556438997178984742101938744118712243878993685417210947776856929386636203733203777674014034600932067825839529505908116603283468983070316902428878972835888528941677862095911354550264781456690794106952006309684197311274925007785602051227280904519233859618462017721734288424188874023422593804129473231685016708387310447405003592355160659891321074877411902109292202655181977279461416939989229845236229119121807718793496285101043908769224076019142542557744930196322247389286951259029918304949574270225591513426688599327497831766680551897183957341248495633964502227834260814720711267625223335511587050059885783460602550803825129832340778724260966439459491372844073776864399741225949710747291528630060624407349049316128050445499987805789026780341678630242323538250810353331473614015131119717049897625762804479747253455699322700743294748547048970465218408689102724251706933170499389015227483050187179253540154528377128630925573013531763827840481582023266301431713166770630726845369809325999717809619913716964235835194200056594521186796182875661792080811493770945401899836959618529503296904773444965175741504561435958648769586701018432595010774607453856222251205397613493872323642012961667167979060947393564280324079764920389853265953834255832855615576160932505425486245452104031918862831447373232516734479439294656557082558450389114016392258308156673728732794990584090913708217541646734722558698507942450474437260881793070232149290002252602558616313142824367664820368398023035157570451789695791618779247953028101864459065690662506221980773358701190239856520085404326611624268235793081622700760452523673402156967391247835367660312437681610305650471552795093660932351028125445336062550333838167111281728275789044486425781155502389272677938876055840718723021004103237948231243591645108625291106239663194584801925005067177724573459019476837711218428853837444779144407459592148001123444214973735559694036460986789249172706864783692489618146879650039314494874545171704694563278563046020144835882690198180409533447325176727001062241457687749717393256378352661991553114301739123503331299620616896671429838048991225774448641719133775057680888209352578844608767710671206164067850455739275229619951783240839767129824107156231329559940285107792678585049609695694316482340672552602880351546050756158083951336546084874045770397711887164312122282461710556242492416925998579159645229703456968844990197037314343501850990087616487772400578791474992549652695688053253044657752930524915906407963600646564848372291028099969817996621299881729883252529594343047168085221269488644655461825444601465032115199732825623396078635479189696241727549563016767374658929151169954253549386680774048273900615534207390342836574147416712574167430982715713065482376946497699387368582496132534214424459399910055500129196981712008748177033317507086745008164179157984853130403590430856151685562441563158503119657475664776269402306299185471843405011007298085379686614903997207471426243364919476530622279622039480852607732168295730315425338797111791232918866836584411919381389135320252978919873417269206846667807006525767038204154085975210055306544979767968983824171991566555502619199226321057539959012154747248398835037465950474811245015077147235738936649839898160361437199956763396424433427383072427983694907084280049653127281704768761964074074532616950252536029684746451300195835839241210001305805403419554816332596005549068775773824610547594452439033573047596649916566937099925614189707476276547648386555878703825553949277299284811517010598408037117934177408135098432056541068121931620324098565669078987918003080614575889806647022250225524414201279578441943586365321770539479045880657262173131310629020516733871166018755012111173557006314408853076029511281736501539936910614595390841814224370337880853892835236710438331877324524277929155213197920473694299117803475886658609928831387428120271284679862602957242881761401937574101391968596641361451093523699318117324315599049481028275088618338122193097104668309116919146036030057570660694002302461587563747469919377331168228711629372183060273366695870490766012237787354781741245281687972325752515511994911054622946149805502762701531518111563378775054811340859192657868827450866217844652356017764339728789990563359014685352778928600420898320354838112904957251224037997678109711662680056188510339946338616826916887789879410818972845458123867266035938288042472677350077609439356345989847044602006316508713650305289225011707001828637468075284984562517265657094389072017891673400800879732809930087406186135920590970723181661854316943234338005804861557543857270661213490181406557078579623012405690319177810448170034424701337165389598688613743384828065970097172182842056288740626613194531037996757925129290818723373267484482854998902465641741362279559226988091805635705424715476250923613803330852295250609591252646341279907555499341582892888979234606720368881278948699378478467320615617010724825352139411284828926743619706541394839547159652326963505436455481474251813107161886479315721427776820219242487571557929914539503954469747313143379107232268217557046510109908540239544396636890121740846321733485178600156282272997370809399756902889997686222660031660276776357407357044941033703029853963342938590152514096685032238253148743271994786937172619646768874755484022812884672786529078382157067511297576385363796118149581981966371923029257085485740032827694803425074787063602025503101123570972244713739333365594692485105629935334548578563525478603109010318964790313934670501820918654526757853130464039055908878688852125801808054482814050436340175881450682290254828631043161647034476479759981560188807482355043445713975077728276722281397842161816412155948091440254265482017027833069234800561055167549786914558771628425883595566013335000278063217745259826611711434477171328346655375918058697500383397992194644822404394389812893803224598578495736385215632438624548168324251368619340837071402930550076801933621253302531231606775625126031750329651447266814784996641047944724520054637655432314638957953246668653091249245650458275761988010856653891923353867902286600713608157108588580599711285537796085565800552971856645128527264895949463557325292215391287720057436700273360493416915904424933487766101102189068391810651127247223284876113363335256983925196215153453590925631397980297168327273476339622983594716892844300825590677048016476805204232636529835491734060511330584994069067455302190968086644011526306012676600433944789099199017846895789066908078833640943764014657013440438664864534369580149930799941953879864009487926933946613198866162606720586252176072135809526550187105479006960410001798855260828114481827785650155549443918874277377202863805676942484887235736962236797193871067091575665695269796453854577749870011572861534953346526101857350724997459713453425948206963716232851330771748042725758926705667802520810377577816288667399348506936729858372487866240808414203075890438591702291696410727831246873554479657985424178634581014904768281155079623287747443732178444871943455008864793696725347349839237430938333430347357080272551907369380563233158707945240057392182073555514684069853244494845539571721337654367923012004436250616065569465692096147547997264389103806456430919664971846579753475323861637781441520697971554280014089268158057437005615068979411103159855553325898650104045979822093782226170177253095821874290923140276695857173906518088372606330894824705566381391353611129797522066480057467664777172134057144804237516935031063526105806196210263917590478182704598971101426976299536755933368493072141943521387082852693698075084705460695084333402787291552595594887241505479176521256704245844865302335646351808999181636694420500353175329518891337424893604092940499337586786440466877938150656171977788663475308075662393454455509026621998046713650950968034990346606990723810236631918491257411582690768708979551547661447471289608571126867046320452090586602401898659416166380114557803883971943048661561294634363386027330937724145604692936218849344023896733724934159575043103591204086668974457348107134070758748633092202819074862060285444160564121753991749952965465292520809092501022178682674631558835662128844091120163883627697645435342967805208919488979046062656751590013970597838681882275323520944272407825637228385223431181210926586538625532710430076003743961246771341908036975781334330275441487989826764534740030406804075690960529148184260416286640169707109820662850858395809264171419509669231196988778283583177509426291898220940395750139564587954074745540194594950251983809745543168627009929378835235777502675513075380188995750774704171086263874630616069469937793750582475690349189002429436741370400448931140190969761774233165447878076927535884692344338129856483427829492375551616169186117084794106503132385014176840594065286391498170965121994870774029548025782496970852769807622426496138509919398831277302320246687919252395490377370917393913009153125505695025551335210641232157248287185183300885027893498316725633058100863497085086763774027605601100372062993378785240906461416834795765161501554397425322097226201757720657867204198061085483875458083675891380223303460678507173717995763797265522962869278323099502658534452160216929878185740235143061325519466812416290030963019121830898779539699005013721361982200534075521589850714955928264701325263190516838666163643620848629761870214935971573289891660555431149543759889344909873342462455461398763552771831841036508465673223334389295075779803701990376225106482941169359654869584315590517877091172396246738443482446313059913774831516739498846679235788480019232525055338843290142534324502583969205879658109378930177286361768153957024690936143498694166916497451780304049529087515874584343761030879924791211777950321997235586431029253304030186267430186581384450389632173941925318296505671560355597310649399055497350531062880185684781985157977215576207980844891296447276064053511014072923803361174436577382394159303057854095909976133141814188963480830131958665596737027419455619816730134897378812215775416708280095674714634119366233514591241831516005171290333830905427014290885083759649963312784188962123975264498330870698263833702248926144480870774570817719939975805418813619177976096211509952863371557846907545812519332553555879373490325621546032559612966571784272795685585404003474105352686671938094343796079202088257875746714661395048511848911588819236249215615085038326309120074254775465555942129565311869848425747949962444356588039025600348132784954654250020860289265137719386769070634644040804972007104533485671646333983768273809889224988764115457267096265855672181570351143591450687862872327809897777697441657590845155488159659897354972026177630636969831872205011843543265588591594140530762103830961454605541838876182619253755147601884405708810567559213522423560679197081083576706108203369397288185877030776216126769126071988711588954207135854406862152777815787856481366601529977734705067491331769600478842665083198302653174353066032537808465755832559232365805508431051554802249871581960738135202868417757678921843820713940652958490559577908868954357738361377190034425101134159185012594398902882915542540580378705914938007712888261526566285065859706280695503761473871978662245585666475113163063038050572019532516385187000123043046993897300894033378187747017050494204510792428869492794223302705112741112595753153860006190083922844480413259530778282912458934387928115019033059412876565807479963119472706559419757838375336406353104525919872251528270575320013039468749838606867633683074208557139878748211949410778417494638661408155441009757068587387583806304361674281860151760372418255449092928759519070262998618452078505973077731242379325829762218665876140976210591416168456920067520122297112649522039904256944713566579685389271163864449560573810753760446474769154569018546136443948625688501020995779746459184438935949514258896667099068001247978226934534040770749637172741964680006620498213909213475978222471094048350128265594751703192208706984425239359882671946995445697031998280341238824043297290529084713891226572987722196872667434717807079323690706012699763979604570135145478970219413103685189537254690921010539982223113030410851553245111289154652137812241958649709246740050696843801784452757847539247150910698821220735282362010997104246631358002848517117842697458017674452069168622517666223018055574691447645079657745736375771953079922453457692153721289526966824328818455066153322992637574851471443330797224659772590865200788153479301788915210791711987330496760821689678298141861937903693397481556782391955402832496896448853536879489188157781233735528845301562327319676682090662977247321425933841498867133894317114073132226813415929508623651906030706810321548237088101220436862008492994752827779591686963529703983775294344818633007577797660892107792044574912963785069596461581808629211720987656689919073819271804014474447047947609076497867496682938934969050598103892299000615855746957231260310978037869801814410636746288467056779927756885656634055485184445350433287135734642273772777926643937924125888462135077183250300435952751903422315423284088524515821137290991802055916537128255767279669092029317461140263661401174251465904342141388212661029541097462632316399661159743598088141380683105982602345115053552131463830074181233608204677106490911990898092156982944491106856161428003058095200884313020457463959862731739251741070254022283368939820598848905609489691132558256358874926775884883613232083124765868756029947528146258532314136690369656558359955715921559435381098791520912210629161864479357382854470417391028242226463461076274393287663357731141954349768661707059434009390448800650347740399609677202054493934346893336366260426208824107550772758566518844624792410626730514508300430350965720756969211497955824914679067992319437599994525791855400452238020817678996475918231623066041470080295093819782639124443109424377706317301927606965957593244875250726648390309151526511940470527138051953751428195208823472743111392357940336565234645340983841065210984769154163725552337466638716415808532982294044942281070828498407478173968431643986109955328937971571327237918809665548597769493891700108897500792485412183064344463735065449745111416810977932078593379467224044104018651971715654313713268224722244283225776354905115694447213191210030746662992536163569110684807050551087547404371780090249204886686797470044983714778711831951939576308876447043529506511754264287183990182470670890998666350882095014951687594865785175939239149292932809762140185027845702917263968049437065444465870167003779739485570595168276146187850358765241134427056271803603246685273417923358929621444088481697444183157870701509704942894140830610319480004027769189306601864826280827198274574577239105915650106595559791055366414109856932733496942981823605399043232059280113828737756690132023857919982443575733943607745971010768400087776250587551618538461960570831763576217296571523334152958122825012763932236452224788197707314623851218721983102045700296329374777641887774256487089822098059184927452906027894289458837862611385900962141309333420622159251158992150282800815932323848124092176726776560827343888734348222261750337916259478925581652940627095081387818174287313010643353737001607965835170656709133507948748117141203133851940563703850995447960858531283434831635684086383685496873897767551325955791929006751991221293542908696425414501937440427108863095212129542478366968982688465125850235693676004200886644834785088701542332457200832810015209319738256363481375064498500136052124978641237263755697346568864670678654842198264561104766750568907856750499791840081632735711978764823742682416497495391029502712755029261504467157773031414076250004215994494615869007889489140807518223023477781410122038151418186039794875910170539114738486213730543501649256052514390039694155318963895197648742423812910195942128044236950545976814107567671444349053562625828618057543846058117337259963942743111382529951032939492917634970053215150958840984126133587584138803902395074959022820353224335042915377389685291349491933497647507106190726448681174774742149127425697900513450439914243659383584987917227664174880805031957929534946597978651568910173898454094259011581688770588322957511265046608407401187753683609111569854234551255682923955450809640755626302335599377627529219952479586384738887772782427359143376407500033916030970671680461659187509243258652837763211798014595410857035827511099767982004790419768359332611912173399316225380459777976733853809470306639705062806487631717572820631038193863974104340493438764353031262205972428813293404102302995807732221840168331875191013673364614286537533096259465910326578473282290878967502098935654033396902357956202131353601966356022210480346236089316421984932664217453832445941582299363711202173060940422083457765995777259617750501372738991090032572800426692303010984960355365000328698154831783109465178544359760577278988449772883374740177405159795446101059157659737715862494442043307245591812879245671586149533096207917201262088029311708640543205830183671513291736598226471294490546988839439373421914061261580205976690559801880795226673573751718481285823097089629638631040138174125701299721501831448922574626156721207578592978189866706705879226268103787600317853453744050450841537014829799165353818386640382818441464331638182408267479989370820734959404489600951437536133417493017408160474857059438787506641494492473775139310000171530466950559665053448586726834304416994880700813251462318936752476630007957840293959207742195298946383469873815812794112899650678059413962301909326440892599625606430026326227779519089434577034262999686858095747441729183328458938869945719902680437377798522186850025249906395559126823235631398636441772279712152430070105195212326899590170333668350480545724855446469834563040828435810085027840357977589255322519526831601107966098854460277536437094855674287737798417195578877963817014249752876674827266585503640412996857345472291908153637101359636499407378465686173646374164072659815190110590143470419127407075361095809504240904928298912659931856064911697730272632600033256163933644166632837438233704512760064482083080097704995963394873740776861304668740706224936583866353746172530865757293589102135250465117793801605073421857419107948711931392458532062325126321046411419984933252417327544159528754081197494883440864201608997547270632321419427404043575563222558778662128071428649662181968916547485886558606105211631513913185079873873742006547424824119237129690352118410723177718690184385865814595454446602894033023682531380758174703067509860231348516291004485465207820772630487279176799133962972382786788819241506464369024440714050091071691438093347712055736070365699695019313505572923425549722724883672106520647070562965439261680329105249002526562076881732351981524429374941667910328476980307439276604225717411509489117517705164425085429472136722616176812069191113359789535818048546255825310684924830988307599664564383557637247432472739841796026768122098960982087523838396896488635337826853322867134074997587377263689730613268334278013566390585638926091461771314621444590625310710508485368538627281082801307144833426614030611946807696633086583892319196830938910986458405774168107552881379306431173638086699343293025292197287297223203265005754167735410296566112568133949021419563692203245025222668294111556679715879364389602390435376473018405057733591268561147978216593881663212980915447356747214661537636237774440164084319984190001259838290549434391532097698978175397178683853557492638852251204099695434376748352565428811827261724236705122712546110380316686112286860816433735343698870641295421600478722356648315125884619949448887983082439097311505864960053056918461615784173814710505239116571837467103210211817637478989779607265543444527779567630356883217512317966253711155006448548572601734549472680011539314769725066836343206908101196582452719015077969408332345019410703324147721144336821249636559169505132653153150683331613032628162082592017836750393577785505536785447891898374343689393362886452196261425048016972007818049421796588399121232464549657751901155669369858332870841698147926000153168673444001699458074653870216406407230800574124722466881271084899638280123367751478559772817378442534414043707304193906988386720850735371069992363761878582557363543625121016072081947567950173014318051885832316863718780453606732527488090162826874427438713560184454881598265968576935383583036398456618137614859231206649972480645719985428754174559823434482552085020493096365458172828184172639509164763992348476907897165200054674708632097043030190921936344525813528893587612506150336399248919621532260972947620328988471226999462189447681518024388821594465662548880263766764857775375888323898802100209935471359965647538765106538347639697615870251026583271598093321439945143957698043006322094796096064444977898150080359147789955095862435747582959621931352839630872321343881355055633382901110154581266627602655960451632566574829673922014161517066475872452141169594117787848133914004640772754049478660198145494586549906641343590637177608476224510783685662445983853665066012394040367634776077174359036944110012304523805564289995259683978208640049690311408365624104174321023188334196161427990535994816118131151370043878942712745244139598063645446487529535401513982153888617746405807641236618429130279268697806361801768791552666445694614348363058488574395185367540908560545439525110244098077357658996706916848921461908901088309632284693305380826907333541080163420472039952809022638025968868987413594117155841169281519668010327223965025177432439996826978946980815246769384724254480036023638639436658777433874007607129249916078711505007714177218241280832474281336766723901661998094345641738356877549551672808038966439082906609041671544026406189369467503894534538855882356560523172489130753045250983948243459918040573888662514151752289290435741263312671990154010950453486112960330523156191422388314664338985849846549387257555338673693431489580588425763260271889201740475330432213137682666789210794411748890256407039036001086597482486767006464639858354006278377501609030038918280159799135153514203727672980691640406900292797063957138345433973265861363679421460125619936250051268493162769845043714413481827316290317703572849333078808818957072579629014372822755777883653920383342957293624676549694624721727363512763856122243207375707609139967894927861708748374908048596085168229334403677365535022604024258560377122925508198477085738966115566601243104479296137930055768272567107946290736044780364687100960725775571437211010093052202730547560157457475817354505913887102556292957544554824721778953547740083176815573226180401144490499456181727948449409365942031405375082128000260212563574628700532185229776912551224414334098344618527026041544887595275979530571805100335110211423049472464729740075317362281225831271454729745604125552933261379781461400768451322081354736834100309479070871158626550429349599117041863663416561519564666426025497946747712522366085860742565229144453252556073307765315156989629296788798128077364024219114272870572707293936403869334595942861911125130382157091809741825449472655415852213851752035210392270714139354320903279996952961064764217851026369413830237169636126069680936698484446683936242641249088865475880579970297072389113538663656234560731022594760536253293269669150461278396292930288199386005181709299056666039914449832185307620518495482630326257065992827903543015040516919148935119428497411656918618064386133300728140372480878013093110627323869849037881906347354630912061778655899535352598842059256708853843732250632563108520891771618553314050725519339512911395231219528143280926547666097984022811586428164365379160060034567556923645924166229041022549705412403369755191092117564344894242551159938170368943452991956070052174521862467575447988753819692804165832929819920204872021075879832085491533382888857071874263751302249951340436923167228928497439888272708811346188777361199616862554517368428284041093503266997735273781467387490905198100574924386234380167733288511121507505434426630103670762511534889210935383413926386159702148393414258065435554001537991869972866824507762814373830770827816402259446223294671464970314514102240423112419311957675972134056367066013209675982185847914952319353169569030418930142828367350154967736702155266905393782646937252644932060795965492737747994214825502589173848741025513352236668456413906210399873878082395660004912819736746219088303935524276891912122704907988574431331208612152288472932749879777204232078793879556630213684186071535360776326222129407930367597787322446941649203452045630784557309158526219081868531111452701815263036327553953938868950184130258932867934503288813567691818924462575462427355960998555106291698105073017632184965858636261788884771985358975102751874567974912380007976307755198156502994227184044447508844594458165792207963410146322100580037474981929732608520282671128040187117604329791258584901929949101244959111334310021469406264422089640991854128581531334811508896085024518266980998367695413765169775554798885559448354864119469138517303989455348601419069746645173840659015151217279609577792828198074282676387304003470046120569072185258789950697524673531536134490932715096870240588703938607120312506600644471180924600883626332937244783664428126799669932792349343942215964743481309602299750876942851101024912716892525012486126994931061606830285160595119045484034517372710533961863397915281857612111795192017254061582103761825720888915115021751065216016876133917733004414354111661932839856012538032464667122349448171782967922888668501972043008751023060827709337449574473798180365202584807206153997210332750136095645030482810953753635247845425529552379493441939153607791031427321660241711779763116045268667245797325192345693562176344793047945856741920638441142868816119691299865589509202085183240348150495576114930964130868311744323893399078618879480670630079242652080484056406758923124343274797780745288632647038281024339189300839668284019278513635181412678365609161088834463735728679063312452457913701749885456026632873911477538278072711620144792550337891096860974888297449623614601096353792682341299129910807953259297610122796597258884478434735597585932033048449397500454143690432462148211836436990853706867434290690251117527625716526088101899838352789912908405167549133541134012176508591841409069875994411683960361182554160323884861085151041692434866550471305199825146048013209786162110225026839387694221366252182562996741792972162830416451392128103051647296329603595122165566162794245570733932091523465374909317656292834153205609775077792810584717082530224435242094087445618280566250520154696683475900228468813847858614655523285381646001635439443748542017938476673649796458092341657493062712941117138538432386498102739034233048929506886724130097916738964122725676028689783873954492100863892121397332542923231352767668954605714064001933460861062088573946682687516291246190787943504685612654211626486801795686075016862772077022768700128891428853925958245226492557940750799174413058901462952907799016649447726959026199118185786559736070880283029276864656303292792848772131531900179644812787346286097371732771733844968872146070667578285764297864058711449183156147368263824785833537162673763882449865879814314473872061625383146331940980230203069239103622221040312708587929864971830080189713874473324877718886957296780410482453418688967017355213167583090922225827698949708552364433102041645730640269622301656687941820436988646649483413003293385129586099940885482871518710348338526016240899480302214887746448291470040414077211173675459772470576908454137266354597215313538047693366099052263967305441773598252223287899202645484517687551625501808795942558898107036157956773655651519232288442173956831004375478388032243104205040339066935788071721127874386798446259447281141639368328147257269769394400641732060290416921555788584478560433742404543561833523786280792289564276873685349377458332893120718131094237223725621123891014746668870310949059676248429715491712549084103905074546816670946882806822914402964832421466612593992226306650598337446273482100036247792578672104033843445060716967710047628243590050192280090543863808916921205525257243164946174804738905147449517834525348168729129205390543676631707831316924931823477572318109991312016358999365820678782459894329998102211420639968939057324535615167755934157394958295935208966676358506281460325857773950867210928850911135682072751668336478380268891502294319503756006685572246897216127976883885757017247744758237642925904471784014865179660492365795039591108010236619948262688731131817727740978730881156023029614922344415749687962887925987688812428763523580274091215361649047816126536989035574003815533662526981612686745279141813861345335250765181556124403936788009055090927159361278503175087636578463231000060741533233317405068922264921186647645069878787920421510033498281967701012720339825066405194704148823904801531882762956777213211692564586464393975924596463056307408428955363579391556428904943944310462780623342581236469718053068495394859111707120698867995750773024130836932572634176344199513167477543488868224166136601829902784244352672833847375666838711411721413301875857487017765561305292198731735620164867572755413291126064223371589597810090889512016817630411477847092910441757718808262135169392268455571272679022689049456495788764882055090199116857971389636829463699569534345675313901101720549510583496399945765521920734235739761307158058976140419861486281318745874333095639175279642987856318892777812895320870620060890023562067270500190879861295874248965924254139256990684773344348679459702613137690600557523787896795176597191503003259935544177664013884888618808970652195816777533777166097973753550198944866534436950359788838755805825214017770161736345435662903923220092529751141549183569388341324370039301871971867328853271168618614888071708350207695210118611558424172116035037727887624260200861381964515667974020890004617640739681141910432383332235158704841324894306846999997632953495005881360802238752999851668393018384754665120660329903319879130945915666587109857245655147297323324997853931047382525325034730270531065912356711334742404641041743520088552578705064918126714143789595840481625067410279640812460325962789068061476517979307237574465380233794594575488095984157164564684959914782760848728193258405241262087331345628622770942669632721843857641395944377370181696029485342244798837574463716935978492184689649203473540024072587231595580475002736848769959617120721746347184732746419954809982129693048373451196683635158267272690687817636124198538363557135640972826404021964143739518345943267913944400835397384931326507285110056944023719770968236930890966002528515986828932773761048573905355494169714950372123268095893668160407275410958892686260431990765216997756768992454985252875772677721527273552514794283836310588338223960237154525991020831744230533722863087686333799171273466698719997579849400471822715421435022387692139892757051494989441106670549795104970395236951023523244366240903748650023695865790453791814527620036253559705131546423289660710564288703634948979153045257248954959020236716617242103707958029025193490986654511871587585408570721358855352614983895178153567472519455804425442232628520289207533027658933204480346964645457440336189795516426020961190047886624569479796479103940404476052093135319538464451801554117453223267466584493340904207774299701380289659255148595309660060172527602568938716787184222603506816520210974164785490596954632063108673213945770392673838346335106679699768100278147461003210709771589920777842496427343956561132430581031175539336140608258637459582555158775905288843570973824597620098122363733712102752787712265378639265331507654747787443439353686352589984141927685972769718459907788208498191077210629733323821492222643398268604856867756274619261468415814931949141261630330309856918411275981420314488822899525103879280994634992344006172222688146023718990657486383718177159401829849214330499353996772193235242508788986435429751659020890359890859487663998227291654916454336565560035506284605315448393727501221811401041479077161990415249748298315768477820181069772595171253437976521278862861076869418184047608453787975116377014817905685433504040758620559355092762608794763703327555623659819822802919157088505091197641240070425999029402042419455630881747731728344984423295773327540113986834249498159153594775751232539390467391362745875202656414524725725590999087942137642944913042846349157812752852026953429389899494340967438292847948133288783807993044472619667115943527045887641345095698232088974825476996960720324632854228038429121465189506586993801131880566297660383850736633090939011325011820655928309206259439658144468860559752058865241366648187320742280881564518996774826384672396427413813453643890306966287912451046867162437288807687818315133967835619644492510674560298028222358676286436134426922229453599652284303294405929808984586660657039573634430287575818757228966180910052507496390503565515155712774758450759960722316897457247562340310896374558106749412609428824605129025384605301364272666718401067523821737547241723725407245548311338903281108515015599798659159860672351139024613786052423430879118576250853647530541611843201156513926439721709817095952338904398780080503524383889821512954602380516472193012258557663796768940928885728815300719613162419265709221714891768156398249329687593101850903060669919542058502336005762196685357158849579464907858180812387933351485401091952392263160811909748595559418298364202082646737568624531009420428517616918126729852387222426061705888910617062823892699185582714262932346270686857864361074744688081284251436072282038116268711307695177961221451214234256515139449753522273345984233780899320135940877939800773804940754660949317353984199799921322845103920414660724168566840965163075755168142910405400122035382980326355167386825277006455119009447437670174027990481768621180630050949664820561513536565406544387294726396738886790384606103077337325522147428798972726003645497153378386133526349889519351554473468575695911203067288597726486151854875987322999739308004849192746792178702149200959549205368564963656899441659847529382014281753477746718610316659362056699927393455711110892572391818338804988855917804345648834828489063712710239616805842469698960555521529379450852900389019858630140269940510530102900203651840337345229509610239178960528603102358469733702186864244909393958655847989035382124859556640844116611213317441323394481681565243284844925017451629399669413684881587566724754450551689288619302052706778518862110894888700427528353132611687707229196726464235903755767657893423994293879528740103694677010613312109371846970216121549531344542728552220935524048781946558423965044908251427356793200355879760585850495169984367817712976535422217781463612554946536523134559195112704907087474101958899605953943459088108558235523973019234340559262733465788884876469577387349581040288599474753794724408634221587420212355428971944050875735455303908699794106657727991840882346387660159557095005467750423386940167521479449946462988610665694301764768140966972722519623738636951254280494067589962183253857200442904282972301067527086854602310524396192864268847300328147654402032268301536579382969072687286353317101887904085329587753228609110161294400492663054887208705754720272114421071324326047700154826181425953930502028936721300050202178396818949622438815724064786964701266274448784860769846793425532051370996794782396319408401162738035475677427118660110794176778954465708081788556388330545954831713064299623395912151402431422774293887507784769017172023901581204580010626879621425522887560426776002881711571395139906837447428247025701538691732651015273851616342865759844451485470599538844655421782406039413625373250416029782454422160079862135478814676066161479936310663137752865831771330807308428797220675151803418753779102235014617819283446184404699418245726760677949000653549670999443431608821094429269740316853084811412484816006625582793768872458469734978400650395054192737649184014214364020772173976480560159329101353664133567361531856593928145302833844529126791310244322204210239992253204937895295542568001268049614772155916287607228553588047849566380877694629392056994932557158486513094571438013548630761793760171146617472040220977117084189955233801164236064471395059433744445868646625008432371770277374928678589022130555831123126207704279654934153551962655779502847190480216108446715927984807907051911440198352081082787320985666858877428053156284327261580943362336053150676610765872001653283005441919824322975174044377964921816130025501774749427244983488434018772836851078770381932555527018035098084844091221663939926434522255322080761950453492977446199178173650416286670983321401872728284674741474952957915159228463730599370539628889471239459665840135714117053515379379878007074741956344671429775378336832959200524707790720219063099373664594457071290291964742617075107548760473250199795287784741102962634937231012427508174703586841192401865002095139871037607359511106017989483837941780852168858605141182853586231504664347190421230402275553943788488352756633311396169927009999261509842867154467495347336278486199681941623106588294907720113740787347809437784903018843591099055894998657676130659502141291662791795972268919461575628901820064424215602527105681548724750859942549980233969554257854841003771935450749393269760159782639400715747140899334306276869807458766382855457806366889177581556614767187769828378147515618256455243900515090138666855441965308471502459506546409235831974644837224515300721909200294479121283477806242050411355747655084255185341044029042164333193841563349424312575241962327200740000562210752456772778926689006618256945406670029919568437939324524009101087939456438499864422775713924531772785324309674664884721978304182489095097648941560042689520553972079165932543923255354855889286633824421713787857085303439874991965529809520598979549069165019128225981823906624819888589655286855097980620706680282219678873635933401763316107691950248047504257474929068733583551122896194309506588595476633970507559775920869644361919256955452116292776219228413678626120664285408404035903744571207636211316093817738907751029098917878883925418351034165820454390670323361566231748244319800736706596293480339370628583550098076858353046470077790327790942496611170213687263773585299416911146760061707220384396686125135259278405519748892237699525837621255946323607592195792547507124848983138708895086529602506420553169665909582948364697025789821712271506424250790842203978295180844710620567646514426673282956781586804761794663236198523826864998287868202460612342098991821576970432292830257022326453819825584194271869936237950640492108633619308309397027532073805098090129904996242401619347505104805347058544194305410963936390965958393794294514943911552074507280043201555177157704258584929626572185554427833999675106647038327232893513272421096862479066753462430272964234490870375978372423664179703304683184447344389246354031135228761757623828442779760334042689306727428398377354680177826496752087569726506691969281235597978576514253049608694502114506556702747471820361474175328018523866569948976477311588243954834744058434021195027604622554060304855869313138450187339577981922321707352269924671466407542532458035532384116561785635800682538141711117878835696890192688418901439192367738845850196481836649947602660715702975536406237206126049445391277610598558800005300626779675437752761129330217222558289745925348704282370037844725341547656916637602262270248176035314415236073351428632776534748824983400288358111484826921121966436136078794499041047202385797548976349357819001651424856560301651888254540403289548957985277103783454964107794978317876103032507279494251136717064336632993738461853037136156619518423952724625382728818814554495669087870258320931105746248699907037432859876728486135516351540083974696367463137308857140359857430031857200986557944570336742704340883955418631515482038377102899028820427955763734325059626093847144321162784075293859540232506225775987478156540082267495058188314247577357350307116995821831247113048109490042000189627328259260061629317823704395968143379953137438149181628342560970312928525138907744085277707068544102946181063623948902429133052804054854536963221373137942827016724109367577770709651978338218813515913013461766744889338045331102766433656604319585800454056892559120470468100495526969947628021626096429011693198989034432981385168524750417721636105579452387734590391740167968233000900079608413901423946445888130780737036435500626692436068065343487627215415700694983515039880622814188147997377885223156641733342141765362278548705340116337543061915726372886690455029102154926769520835390762433378453648482043943345546974616635276337630957435810539552171634964627109157598234231604061445144479722213318167687495482888102907417772446468693444883003801905686757511015454128378076795940861128695508294445992661444700170598619666211635491946933057077495386749125462448597369202565068572476585390956541644764337808697613238704170406039222932944671349926822362946950793550446039897620946246032679557515213117107140715716601399380871711736024892580204119833520203781263515306104607799189848933969582248549117538866473944674452925038028309821981332143174730445721331522852154244072948171653690737448765103604913149642945647680882825277697991866337639519425304412728437937268630869928801685791318498381561435439236886530109346498938807165355527544287032346279318236093248429424305203579024813423866930551446471178970560495944369432249241388625038639509181587741864031055819096705714888940799667801190556305459854014664152545786964928128038975269851638022134235866775011310671955030026176526003961914950685699853372434401889962997032998992307870994216522739724714350385766647329132617121513262225175363547195440662194441383819496788669108447775939751248184538289199538838169675064587244714360236153430892974442928472419869209531133790341384291568914784849726896420326340225538877547275766784107522115292641211971697938273706512016358405371261213545352944169122198879490287613815573184480586636415491593408125942670619371823728077476198084403181867385641682161464930324113380473570909011594822761708583542351686257442486474021013331813045646383338643593959138964637358472204928864771762366466586092640477494009897019332857960737148106521107351511224391871026655498898891639698761454668832161522187814523567411660659491159851257577986482060936301390733358230323977548087853184946277609944628665665768664165216068448015059105145685260356571325010066787150932674664470000173484404621581212052688223192187053123735648857014463824727093076005638144308596600792178787290558887547449716828313303184499517433207166462066523473244070602912453529089100708552651007454595646901939018651498000883348503962886951742035214445198186947227518401930672459656181283305404087223735373064932511700616701327615995195017459970406088396783336588518057366472931215621159670796597257064635865182309273966405579862854940987507753835227731620572108644620248885492313021627821561223545453623993704229751480058828648040924008566488156866200641184971491780496061099170570715237967774095736920117582183573680950492269398086442750988851179289279229137500445282203714614265330766272492569664518081349616754766796719501044096149913844692666061797063570257509182210800277622906457414062081093237891659878604294731230288753671846520929172395203503814553427254786205886470799832699040120762308304087829944458072891412298702071980852618400090074129160354657260044469230714798561493585141087401881355253707291484367192362069988378720992334778941211499653154186678045423308442411547352076548164372027052529034009453287877646071429060901267123870151494595296766397504355679991588885291592965773682638087627156699141944466025056597242133679074164403899073787914350066342582758874705068042053955199312309851002803147199636511747671750183200492613759967509998508907561402808295688852406445994409087157669152131675975909487138612697548991106941884904631737303412978286848175807518955839419829560308490319755463713578422083321778379719056372079071550255899073073592029571901937368721816243448238372799677080378870696148168274676880593057856827326811690993142042743803584739836104464754677652102871965472710955466898551929029098888278492512371153758649622045188055100932004405210548830162540778534754713997194764211180632140051730260712398738497170371845048026360613021764097799566191127765851037887104222271623830542160185755254548172921741168859051241649498317236733130177884618959569667704806411679793798884102820733894038575555663308317337071407990275008480795748107449072916948488812517049763931283194115214630189270593517934088523859819480667969790591673441858114112760904500476547116456440565328257432935334343215858034729193379076339825774092799477921002331091687161206267314786430697762363725667825060487332649912277801867495030106499077022843891918916518438630377891992925054702252661192776760703472139929478003384992171539466545475371436366893978897478996019454324541629517600699650507106026128584577811664786172454651020235946523679952587358854105929947422512634489099858079778357516708831429435679833768231825078129058192267318245973154608049722407505763877346450324276008388170960105692449055723637500253530402114627044955671087270691769879025771968509891183471609693694541151877970663925728633037668538422938293587567435995800569228040245013874686055713439150542338958052421762003372299883194951224058998700259044113403253896825234825308646379643423413716687481029086601196771273077804468951222298899510015224378473174641972274416306733621362103055895506212652235026245402309318825760317951511569431454331614025442105789573715934853091262900526058396646619798210541558611887512114497138571425621513607983919438097384476026643482153168284333156607602043026073036067861753205246045568628818846160392472414033113235890324275150347739298367899365348767772684808072477459132103862056691769209147651040898562858656793465158736933299047123707016654077950243406940599078397920603238234272288936766441620886148427523341244606900817897307862028308656035971486333854888839462673066808140587663411865782499739741058694160013086306151633331430268960450214064010516814715124925141548742583980484696405965466411778385526317832997561920831385546135763847266171733295167512950689503820767243888145258646228658221113482104173344380437475370294278887548745263921602234670353469089554960145160662915797297318078659525699767109706845475454503706891559623503421549105643610618483337641628202101033557230608488838121715978091590697515263097721363345650769675695222971448093946049154465056327417537412747861071981100352119730720407328776061937510499400949367930371408903938639465429329516899649920220184078889923272276894304681088719802001986885775759463821128006556819456693916811036254910980529373494424798354405496862862324240244573087975929004000709908839128609074471403807983080210816486835145947915715861511121575253280727556085391125555892538884183037788913102913186119991763010884046205996297027301605424759386367206570811308491764048914872829273379625963469062689564381216591908106045650512421054444540675433290241373264374706114719816598599833176657729938841485855470354222281970334885488037887625936188668502302279090384206139685839580974081522980420916351749312338478468726685197593003536591840334835570803867638247072294254091024567952478199746728571342346041043175348877877422025093289023286443043954961329219949790782314132637202940840720284006890301583327456533878233199634300527112993929626866204216253114512260628329968924287853807014054355413258843799594363769144739903293494978157720816160413771352384259793176379449454761653435598442355126136140336960648996106986610734130275256735696938868338514154092802505284406331176446082269885109971880259387894208120481983517458311158612064483313498318210967254359708739123983824658629163976896791217967091757355008475610764475961064798742822671211306768881114070047698946796106169625847620791346242363714891264827452050755996412034072691372451867859351110065043193296539712109122642102624881815237324383824499692014073311950913476021743647194673042776511719167732960062890361284670990548277842910745942769883301019082771904107397021522051995573309531702993407991316542941596058386416916718788736847966171861874603277679402982180410100341133446527749031071474388149964887513369715785569575665120166879811319436965291864798965616568374179976610287046764443153598469660432743614010581291932242248935187383788674133965025231726279128280980945422987025999514863654926047872351232011719182533192735141896478785930959150812100849987915488031668498985998244687479138041144948764562223957551565007374843963848787580015528646633675777393681098144809272979149015652854831118051689787820174727849452092135016369493931134163146539536717032264922256983420121265636232150593678601201280774095279212251727855365457665841595853830006014760425807091211676764343604221500256324974721583490915473355374082988790932299846655903278498927994986633742589319547453086298546661169053412234845731424168643456434310248344638352189312388398874182303585499636215757287121629945540790277265548214053509667370955713089341065126644909220262098426097094667454195823758132012053755377018160190222378227301213487971167644204117315759563047993550759944717874719212714773425139617513800711385586432148043486041772100623845451908003664701664934648568159023869376185387795121021243814969744537292567208332097952628474210583064120445285913195656056752626636729170398891339632415173262930451051912525406894550950414543997461250053746751171456955617104965375531800442178892742521659137589443380334931136146156269380624589178513121319968508691813434914637339464789613848584475801798329555953747986345247402967299169351808054960963693560241515743587511658060681942105387687511853735441702104582655709396542117428425906069720121418616317019417150164585219627480521251717747754299035878532933404496338881588965701681731651453820538938275344744830441857466693271514002667277238075277082812130112003030606625300590349682713971294316010061172969855010219812109066213146017928015357471672472721945915741410481910966438266465639420438027685780604914576774432463151816586830065974983361550284685260124030036032132359084592412256180717266429369088140433118768895459014386117643893384630153597652304966662673865447639544413804289157057550743964725517359202871660790787322469582700856937685637440662766205711793589584671853461332751796263442662475674310102389711268285036423789976562999213823755639204191316961246034884007913221619636435686790259338112302029530147018013303068623114838204059802151170223232983015135631525933603303847206674207697278929903225643369593838101919234285440693591079973070861787494531745017359297210826642722390766513682459963269452559631441181179735026507800601388987093746101078690596057164516198249505887149578323592132759205631823877844008044255002475578921227430158415430594925117525168503794124857215678405929456559352021652894857562190397836506855611089482738684192347594012153651520422456139005975702215635669442864786868726387052197598980962474254033016580567267017422488122871734848138136792880915633897748685303847782773924219819658406575804717884261953288500239585186833710269641350457740066768149415144940652796287505897252508246597514619448558362623588556163613826296672104700466152396793169428016596547570166132549637910019142314813073322610710079327664200825435488250024870473457500290178881845827786234771117386373319379186076808469223838950142065317807369674060338414882311686046488355058434271273393785793695414795826299374498789019469802074022878579732750134461992434585518576258691687896495036077929700246408989100342889415839054009195370143337863151573394615292163953226091866792531450912451256234400118908620752612213792623229474757589233274847614664234934959895265078197655822664697578127569963991128558532615823524319037655780001543804510027895295905438221116700174775805199345496085944681639045993103423022697121952588913027389980742359214649921591095871657932806343706998223253018378699914774139330339742472539955849736385888050302892568662422740144690095327231574214365491863260964231359510697920826124290946136534444662324076325989396980622610434519997203490358241362112744012961004380131707527050023122843866566858642633215677529452728743527289431679719756051490680206394361222196858058075373074501169432712970615772116073238281434175563348673762601999993738086445506146096483462100739260759644197273987863261044474810321958845456093466935409095489515118706007186871134597691696977256861824569886363778572789389927285584989602541047300176012971150113382374487833037693033355302701237148655429050365112589331912753866772444004986256112534574364874032642338804098510245041730004630232198322801430050743030904221229148675784821480639865333603922681559857669891073274492240695499863594574462863379920017309670536965120664425773873893229655112955614301133446120096159373564952318382903946757471169629661087737207740826636840381512885355308295804199472787059231422382390574509777640150269746663274435743440869283693878342357277612619656989038474421074253650434431912433813102578329314067543864348598329890586000505315129573404216874115720957705861917008028002319949929955970351089988158250603295024929749847007334243611223755169009943335540433605223886349411236975814672480715134684289914738618722958440289167241863801617845363603850937192466390607206316408439283284648687547251614023237962032446942636088743743077632898625691520536817004211309762880148623094819206889809072100906036049019119796997869100024620298514775192519220010469990692941355968712527752046952535238194889204854425051745460151227627973460563731467662124891937699872459349419842275682321962980089277979341636687149694789220398196744013282909101691652500565607251179859212554936111860761012614740888108816376083311871893546746388010591330089539407223245487094516039258978080930226020885233120192954081794478177996034288334702870937708148731629869026760212526359630718465358610930210251488368496497554737724120302708325219498573111981961005882439430623710119557547976559031196541799045794945617165695353784993956307402503792166905737012379776015880989647056201094547478138126872604483635913129276072484849947229934748272267933526446580603284146915408005508926875262716101596701623916696777555892265275192079867867609871041600098304006016506377472803465308109891655180123362667975876090157520557533975513409381288605811744740313574181608282109973375362055327523605409423704913336414939827273457275908839352761270361553482870109328285814664221010295820376427601236511488793041031325351063366188735020323716781388896942159501062776216839524220964190126893897839172249173082597365536616918642200208395679744899938917985896246145644134719745345311549729628897346053944602442117421295627998253234631111917344869567965479591121033652654462249225642360049963713612683109115865840090456325385217069570742890444210083118405563925186168639405873415573366125571381652602329587969422781307775203660507430673709168669005134781520773696866436464628604775209980478136576968480388837363673191372886099383523568009953728670820164395585584204921684879870413643180451546960648263876822307377655589912970189328833562130054816602838862590722784815578781228501309049086826652365577682533590902772630858684866524185215263381634362188244449455785353683639716017075181437887947566877197441909011027157060555547450778014000164652732993839884693948629359840877607952340690707052895792697201554262787345045588250183414514631020246796798708712818890281220546331206773942229706790540965932985838759801155467565997991972922573730854880583779008269786279258791984662363859557459861408298349960913673785967182891347121200861302422759563516755038309223117084239530821652344577744934449671584402942440937052148370046948670512908416190452390375232646418899906436771096627296366767759325709199019251395710725650821933141625172707959603521869514649334086684796310812025478705160136618938344232872228757229425290304528515565108249744698693394027190764537496846506567882756224531004791837422932078069704750627503918386942880562540813643515284177358310531947922618367155353704115684582930299876953899239739384896003010343862229843754013932845669420454592728019998116433929274768551746863539155812503960256892685219987470772169818736988234943505240738811647857141380148284583683604909356447748000651328603726514749807982984080379673507991568525946475917379162813693353803743820895369466757039842974563290559186847238011619359444758040085650394403356699045706487363854805142675071158067607985219095412796398965866731554266580662263532084375898082537703027296149536783253403100200061131531802069354185661300991901131792180422814382852332237576091917690729101391379366970553520632526244185188600119308640924147235140492261999451268170128950316930967572806205733681183772734058313326872473992387024720928217086573971200824157938636328024845411794482122826551371821448008242302744016201070902978361621378531461084855493308846430846745968122541832389035326755914049373784987990868936215438518256378043737821656385669826125796069199749435998517296710727740651458093290730867376160008278491614400764647189388893040200048625449901302010941468392382566210689976369212294056129666778907403435750212688447101425553949442879022952892665943431534761714824340752312543384512724954502427521980042079423449228024848964416790612184506032829933117123052031420516867047087889162343020315969534054848659169937708218136136009237681713145044172811487909100660985984484942231790198021041524756330385963378099460492011024459915121810879097241895709177682793828217434407813964133770367001382403252301215819827782346025286837518099793775076713991046128487210868053602841832797844298652268285164701608243763369491315506176963474801138423491873420143794904724964963585512942447321101352267142837787950578550414906805176856270452299915903033346062574111898805254548463019812002641723966607135469439612088470535799642889602024861812244596250697368135342190785869198514032851553294698413857813146304975607621466649900425570885211981327142393330250012250449398559615839063229901461914309086921606873477228236322683905156266051448551897916878371889853609384446217982538002464683988818603363097958196228520418460596275983155671991038417510817291087058761215340176723281777231221392752603497922469348896961673712743569593150066531492419650807607435397133361442646076700505835325489520234310391901994172455145496242627930665853139352662040207201446848361982562712158827421984218307475939303700636599236200337137194665361781865494914159766145081582211579362951397641309852468374524025428412403913800958069125110393572660975364801835117241375757184169093475134753066523964119833801206961581297760323053966200304514746662517342508516842963704468733820529340235622410287239263601650018026619269569134881886013869926962197978675401813795892514520492749529286312615526613571643530214771017466661516000114099644461021225347927658855201211047556528232865919029887292251279089343978614365259337877470601595787304098656637381060681587995160653633585325897841981279560313293580274996247461963433960398320677623052722928516628772762861657559291146828705958391801802928397120645558311622915324284910580628186033990032031592718105725717177554798262966563897499452608887348887570685574114872058751107672410020261816962370812025356986538266373004046463649031152665475092907467471183293046605375594753033142943641860996912483857116962948014305654201597250702205020408410254201432331812364887710813580018763879555219136881718049150519688178093735670841740540120623181917331394693623127571530246528979666082759448120976588660937188279178659280668611836893005711606295732801369913413930250737204066899333707691820141092751793270101167978283875263277068728395861543535317078373828714080352973943931814348938340068389240771334202065481605593312173839323333486198644524039983546999243718550914786470418981303284233413014953685781565171984127836892862158533769299470969455817741331149428912196448415732179576320498278721010538526829507030235283670062964754025275959764492548469262643225131652554073893838937717163080031714475104323885600628039603730168997991069942031271436562863038871549919408356329090166232543898367633290091459045804004688659177166299439804994079498340325954468517752816796336229475017370600949100328843830614868112543639838305098065228061301206291052476949807143880769159869321973006423486764530164742649093084720136263415348788485472586251643767940054772962471814085767880196191256914779034072464169571324133304542980327292205625958380073068631939460041692605576018457819088013483954605941873345865449213105934113840428109443328145938975664183991198461701839888034276002304019389127421486248853251597788789977843242721303320168302836333305608663324790540596546946635972221480730486762895366656845516721237956965680885938147208212448341315929722233066939642618954754773627770404109333979046817428417606977179312967705587770867777551383796152988929242227715239847106687918857659314721591949136534708267769661864563503588616610768275611283904473339537579458541521865377617040459432114838502372111066702886752471039017737429684165873537215331643982294445501591831746452399983781557988348734456382737272886465673221927900070751032581920721729398989605031240438943967759871937584570827353457444016667802509309389288496292054837802461367235111363584130272602530073903233263454469685707283462588036802972134347193290880475874236805612696293925559958826756861614155235595154635080347098288839480410903053873671122038730305242122414028807157103451815785936847342849074674193755793093952602988014410971630749454050196914987543580529820133883554617260604541769660078577764718818879244987530472600704776995925460943528028870093674683518289933315218628049618560940085033579832467153996762106799652105460476347557888216667585879317291506924189801068975139772995098246567044272964546406502941911386648609143655117574179073283153228849512993440377311344290553484047281449849401330726941821236734542715722979900273726350534625904062733379313341477389824923101174627935852870666851182923724292581310771557073227286513926083619009907373194789722528176059856721545847665302348731826894378238721254184043412064938508201574527683284724023256593323360163489294663120352156737137365133050793729823193331971528302971335032720940294916815106946156111242241849670830100474675686320395321364320975860937133000137625480827150900519564569207639358897452898934441551371368464477313540143694531789688704653347160483358937776892568312699346915837473493385520304265758128525912691191035103472111198823310155044579295450405069852898162333529684021099149209504368293259480349906386446747854677742038691820235778384248784462164482917571239802982442182756306145626727592492630961183469646902754364777285008865370181382433811985236492814652212250438692266035361641594598041412232979542877512506946152894722550261843488292147521749406267627083624291865614341384328350808920376247100050144258770094113469914878095681269675384318214439502639397909817752084892766676575905841851787964450253848831942552785984847977050353043616909188059767017381578172012989022068057448292047096240140247233288826042707021283800506002228627002699250614105462630559400673502998820301172095889279630114301762057698197342103805354245390739786162573311580518032742458330584118451255805522898898557223589846839144107472256301443696191308478326483585060652601740649904535097656281191175921820156848561393675487833700848593376879106345247524664589519534138990526559528086314421292911780145245841772464030709756977119133860539096654790225571700823108190828353309958314100052000981447875942381665576941042535599807996464565534842500176977980740036909238297493017876933143956037492252257256615123484696146972689904984765942054259902641439102058357068513957543629164084241427478320642501606744113051281308815080826045469361603585577258185028234595122268581294332621610741973755258692310562146366925325757514817094831142239266823087052925192244248305112502453362837497504739830686445178629758151454891027352056092721707996400463954650295553009095290705855515123532162526356249540012403596957243462487243166901881052014038018084169788731906700128386260536643513599548131822748917399168948211668321656525988580153100201047578457541546036774778643990166947127330739122739760813999429587836004456742333071882142387559364830577111099440020373560909479870927903564467383752789699959425604263361731640987009857121482799949488031125922525138163806484254535370247038248491712969872286545394274489825332127399011621154975202981447112136658809561724047623638473191699318784805896409095602183715097091750157640689363898892359591583131571157415549801257583066696026026318809028385255278380622984546289258724605202080092574551868097272324886637713949185830598263737527675463412073869991941782769761692866367661777532449381778453069113894372179100865246235836706284757113786410433041558405033107690236530564079441209505525013156327917960630001932610594931265660693312059790530865927965180495907860135132869034683653785701569381334112123068034295968387467870081077634274294122789492142810001795461035409673768708706683978861995499226758879535762398455876572620612559039227456156369862878313464150021688782577253585820277662610935286278689549900418997157410511757685327305137156623964926429822871365296664091633154983301924310787112073950907415133253501558779995297143670852896192870608112242591414221513831734149395965257974957829822801012419679424980887037950989874228501649644730292879545239556944131156867907300281277669176496862416694645361778889807376780014755441780582604237484811896525969783020647689953202699964318849077829458976352649090633345040429169222435016825013990267648309306828693161445818528959348571871957356814295518752186866780075049309989321834769419292566893029507382968235463206219891077987230508184537591261466259287508606844156819888860964261655479125790150826895506887478348280038867772090567235478459920563296908869962163460638688733059649931931366957423909297583548169050844038834289653874313149829355466856150894214311454897646735397492892924258432496914367226036021738818641723996240130297675857379962596825234646860267082905245407832846205495142637418125062243780305748573009202983248088596310569962362166496971286279746084585611858941742076841187357074349544915896565575025779427425679174405593471520624374009556793601142582697083672272265249860351864814503980784025820297176195563697417101701261326849746536730999921980762044888793944736405874861756906618015026219865408135105648290177085848680676235932113792965594132535960267349937272085040716559847972393206717661521973935414695652003314112966622628908103408473477852708749975000438394027701126574403777621612009029974121662343741396473493791569536205395582822767954041206298064101409219961970933948257211153286829461703878062329142259063792801282540185857484205830652893234915968642408119229069809317673217392450398154390283189061712599170345486172132186929908952458313704519768353459338834649173815270598669279134253128665263035275462233414855995891794904095804798320427506672279694635664987445434107484375517831122704875673137925857199106454640320330875899017541827077074954088723482604014997679361787659588755729757485518845937497689539022636378678973086982966237214236683753952503281297898074031341112963640560616462033831185509106161001944997846149748500007037473440088877336268243493389629256561878734587506684940721995235885441812662931359816359542060450587002504772331696990592896409645297813270300503949822056549121534884478053636093117462665110444734652807753225745101569306036739386816507366222028963014635028630233487058876302778586770373077090950736687445640506886152172324492728221837646286011832512959773847218428219941291417254219991406595216585130200629637849770390836584481219124162651750431135852843094983225045560567541377747371610359199879146749558445160644013482344046592965310306017564207803607710236446074875389457772873156903304757727887592849446367399409870290871218977542147532349101856076729530701275134578100034016029493006816379099782679177497315922643263282637409489011512074467650581390427899063122686891275783185207374792519269028977785036929949894747513830336347887265288010160736143596623081362618221008506678003036992789799213344682139034237132115445920095866712126935518864765371691837910126082834996592204855998411132640593375817856848366946869953602894351739856739628008163100811529503312144761152810548347098758873687056641009280728419224091266312624092667900694878642467289138728378061504254317088287198461722704975019844438638666023898888837242521131654848585002415025348927380986768284956074512019406830406306603272645624060313252372743695389265564002568993927812369741667769454553903760080881988631156803637106630541785734987678855228856026475095698757366858249335262930418464036441420807045284517191176359185677346189248719033310193681367646835789629349604759725429905639483075974529567428969662870324242767952758949164327191159012688297451305024030508213001268784431816209099158322897350516669996087735417319105391029968226311964689619441021012481888163024036506559770882989054779046331088545885738755025430128805191854409459432128561081500486474968254387904525576404563712291384458163633501967165371680349817829777934040299899801507965568150298152592933574168663883324919530961769918681492534172499142293559593439413651120890267561353774581846461586173041493611324227494975326603122416366885342927678111528946814806672439460648531682054826112693229131728900387362461299106942108210957171376349282259714160675318760916708342873758612779427997373982599567487458189399305037264109892979830692976922453001551199358558162483814450197584549615232710954005904400080962167779956307931511428868308635988577732376931233911439497212958940905764598343230653322279110659026631049080880253295617473574664376853963374910003975432696164495439288395216995865353468893429344218370378042715524912079595835695351347085755230272987066196114233953020594695224256659944412738728962422613204967273473044597899839331348467779365438073873156527044444144879149829526944716382059092949629740821908698506782444274642094805360082430705432948034092485658000203700740943291436116310985981750354642348562398583876426305796838561675650667842531602382806510195219881684520388167228302578836151189119618171554145083759614901203395535819606374946924074031754980493991623743620983575190998322846988275260391009364410664726474249371135802957269788678352743868348743623790039096557611027786588905982516382594377693895828032869565452217125372742457795745381206218963221564766456406386681898672307443702596123436459025696243279130891487797200386399802885041836425090556520218870343271399618140934748582825670128800179904863667232518461597818384548463554687067506725378441013201992380491552895780617681027685967606214331513329223718093446882150481796170874447982872551391177500269315030541365615902942473379090732198670755565669952728978825040972936525904190823168422182967580930400373469228125892922007598461019273710219627079069175337056487432269291848471335837629798134982058352973390183253156768419308154029796659686949650592443212513660620815415198989672869141535920571613831156427134791403360572838038383032818967015196939737185686881896664260977326668135762145634697333750842934959780499615864629139373620648212216339931917567745215710641088426117617810619093494316939608638357269348792481726882730291376997978820179308662549623768964817365618676149137257836814200529103555305325269223360603165956807789525259942828868240129901334478598331013109142751930077797314322513126253597914021837029714652810657715835290791707819518028095307219991408518870452013972617790522099215624003603340401194695421201421424462414508457415253552597469220583112805414716068757179709962813442965237903645338773641195970481730477608628853760154551716869760179026853811764636818518675909314616035194278515794328744668463070793140812805617687036273916585549963116413227225681294227574824117855211528944854645447726922127065047943011292657292135670482429152026981529850803937322119989342913703242520801520729862863321869677849274416269102764309243317088588811894908404317548448777984097843256629306621375863338432905994716702602829684590116060297015148147775606852289135289685800419178950759628216697133335447629125335107570401518013631731422363878174496363530681041046887679799145200089860907804169683221893563864124360786384338120539276819624225376642992535404188832471158899758827209667555894483141076537516423811261916948077764426730496595950885391492544684213431826929519840601342951828636330792983646284682604457179573632935839686948690988021028491898114686995933463579184090939639797241158529744611033416025840875912655555191708381678531169196353091957608225668754772143690187838754529668701930094181784885058243399621137671692165076393150434285536671599003658258444667682084532587443223910211687727548381234473204831778507757853867016816141354537951838025259001272481433679498266328171437666853780658391400770945981606794225005575812274740294741769855099033890026186220203819427143495881596049308156061639858905663939338836492335425861914845684537057514656518061903265712751482031497772911958800550347732894535490971661454717647266658108410057129662487088370364721506066642754249287032128884852639981697874420610640573481167001377420946125557674592702889214155824943705063924908374310851557732073500515211008047930037225051482436573300264587188656059455976959472982848667574864707561413610159948303641445190710832082950682603485747451184931313218155495191146993746672304625498069074963451861745925925055239793410774637149166022558463612716751551661110767804370307576454471931234835192041557240616055587764533106925539864607460113979077495384624496238975515673931088776713516233985824908686418727860376116041330118296813675517114328378027751967667762554362447595821479522433334543168966146673411974275402037471814212431813577860560456329918457756011654082204550179599252040613186179739804306381361566442477302079864279697150495463376361981325061360603382394291787488837288546019699984449615054039772425535470046419088366664084812059603995220247981197735475152353862452887531533732467419607832425535165307213824132417696642326916068402719769898859269547200673107181683645392447941847829719410978138336047973764073687401151566725064750884952024511028163879457926411490806349236434598338369448016725078563904745966740862934749313724594703656590576982587719473495674128595888843299224322522684557755779065341114784860780162771580092700155298726823121753489105953792366601526600352339944847111791996381398970001568268770902881130469004641577288984600746803808502376237893713162319508607455697350614818965345039680358509582556867161586629115637909048512879137110783967471184553258669240657713274180019549227058644955927442612534023640909859756025829265316078271675332102240001541668907811676327247204593362985474964650395187547145669706762994191700672208334219922109720082114191543952315079049738593823222658948180167121812368890072303662531426875760911447692102582024930535063079759843234616386983636910621349809537251827389655108375643132339308316306023815601224721461803358925210567825905664157216759366370376939122897984768353854632151817084203601571044286611537676013235194907210735140872078985991314000564800415028364615910625679763765923835252819828933955400553253843323671854323815206172551114244475040314456149080147093208965290880268810721924911908584536024545912873976294960137815027006696742320776917079430496429689129591464303138889548107033538691875161158299067820075263139693330166463923713180750410970024708868101204542524349763830531653057655455614658207818587248830600942510047458698605371254446640060698836081427875845939327344887284752012079752756451382670943556583038672267746391858680859463208042964862151810509854026736671496185337806433272077357749943250374872341480773802387776131932163075067918809515771481183687985541403382337283845813077497808635436398485834410521589320721652430811958696022261460159314768956504079103069800005358543101877549294020705797170899678589410684773521717947915491646044993105661622946583889187632595568239942169049207970018959053375247345733291533495842861568353736739062425943093982405654290138943626995746711460240547723499819903516188421506405016912492371591239200819682578791692618052065546199366341365966081258034468538830480640197274184819028870393301231482191052846383668488297303087441837556693939922488970041873337310140965439276947845606676860974610591921765403214482724736625821843431102482382225262370616456771872630366895496297314582942436958638680246499919892064158877852341305001838877751733227816210952892774140765021682580531808614157884208075245645543194219329715539798303854293075680095279897958275563020201809554844441548678826374767830142681394845980062413696410893779007133575589022048860068372132749914404809363842832937443912687934049236634315689824513103959036446557321395257784763716057601282513791218426503756163869769821152823209320570452821377632055871263615141136540477022937828993644291094515863398849290556586210880967901686542354404007391016255119349231334091083268262830646889992212299566101293454756287638463979656433424180594859142070113064691241064794359559962952807434775185060498488252040954140328350311595360054206054237346648828653746464732763993714849785770439371103094879289915585937073185893408226097099211414178691961376378733407035392692693880121180608382106213831231182943924525561110816535527691640158609855852055189115955529940920981636332564357795409710609438785907563509670926516252296963921491295480471368585808578657969645617835634786280680447288928065950546077555037027506059471447766313256019387493425660216294109237841238506741878300755625316016379967774585280825818252218849811474877184543835285059641075388960472402777672727163415624862417706364557989140176742243274725220582625089331037979638847654239009471660712628555823452344702064279124893412857743623650136903594996484896746478225259134851855206501285596526501886232828068301233823223627925774579994162397227287175507705304191783069946593955464194122104131038487381649103694362237010431988169758230735869537722345189850993960307718215645192839244376878756877619313587861744559574045763366613945926249444946192844289582398029945705991896533418411198742079996428948431658606428464925216530873560928397454047351599846207052304281036043974899519187353270445286323501012089814314458554701381021503223611620502931398993417839457921366352241164297454885156346088798261080931720138445622879097430065095754529809440211535717804556605565008679260828356159593157690172512020641215395380528195846418730984939245797269672870444256122813450977728037416967318801894547684369630774307217381603254485362225617837154978961663094134530499619485462902801242358800256526600158462367804384475225543055051539986218044746964976787720086474883092905033082393768138013925384769698954495978415156512660079316648020054522605035822080530015673151052512103886612993717104852028029867335103944906394022371632661068626872560859529700277317740779664519190659778589925300280886933680639409683109602736775680491684940710993471422042248304468766063920040988235578434077656477488910681963435322076538132003593968430018337881768286457439147159945134774251925695125546849771162544091749744060266510343070650115491023142972685112511612168403322043585908825450883345232613073571050845571815692772102988361646655712270499407867800229878963948774650087859036398966236705727163046272362854904190875110763513766495124428405583814954584180626710772339324090370913001839894981038838928064106061517272870443823820920680462744918813251748328525700728088370259452059746814064293631200005906134805063875907507404737552963696918360063802702359617579358660028089246347877445409961562030733535210122068898044218697364771606297030034626618918990276245802762404747819609407027994621653609041102004699345225364316335791728322383360403219207356750876196740382381264616964089783839095464306377791471428334257709436967914739814480147044374890896901106057313869130640223064150504576439357911053687900610137250877385312706439012957310587214438355011618880576475348475334448653237190924070746549907901885503986343843974004079780121005763400155279255742175228721948069038556207463015414743005061808376938054121316417204272616497278160705880469775930372450646128098104918087496418404212203724450471414792019572667670098930705155128526347549956095922002881946178825783691763376148390148807341353997731390065512045131500611366053618094488885436359283090719004084839639560065338591043587809881680226263162326637125841270055996470636857759369562910778373482050511393983786500212506383574507323767802473632441331842706694082817879997421263165814250551639105733780668922309526664176782881878569639023386978560561191159410843292719185554046445906759960443950275551522388261367895990266646060037468972993544242383990479975840356372176315133424950382144575067938024183161448429882681604745469192026166654433626985686241459356070006391688712513035084080203767087815692283331358816133139438831117350965371138329540520459820188677791607359663713970590257400135755503595147778465868117875510839548725987490902848936508822393053564282036229095733421529049026488909640128548755377534748217972726703636561683251227164558636559108507219593882791129212551326473957367620021880994118658745787065801132855655159521299904947977961903637225000589435824770695749680015465417279735676791877625401388954121393106090462910864477446032653501887201250179209257046211155490120403561121833095894851436596325490352736894600497844762326823629231015737633742305339907932600420199793549624681072622289827528180436674524622283897000669642754715291384778658159303151949054347616112808868707025526742320889405893234542248636278550250586102610222883331609306406406843884083431547229734031088664181956101789392462560187808629458972967166929549323756287430439242090658680776198841885925996134365364301726441651230366721272855475141594052504601317969063836881595097100024553934856643380548604159003222937751450322562980528948726742406023938287347374819380450550547461198287811708606319773790865724245669271806348092053913780723542461476222514073309011601368302258738960830413229057470801160218684223895184559992181175639962800321217195692652014494123679821934975184786859729688261311481774369674741490796598653076134994620311829903168138834353242297137324281325295757678497526265768194332776483341820181440265335504702727448021492475425363275871172391222668170075116275419825174201365023898145771160897642907155466638266699838107337303241788926020710929381600318053370735917236586147088700812121478466815630526033872667586530222672444923524177092101102487843247334773406107344831386479885815396975197752936459908820398436020181755708399925024922328486411613151436193177358460434433907249831675460012578672189756462122397048990762029244528889408194856380934879441553551119853032058788695358632145414754120945339270186257418914341000726948830917057389502035523875082268594702590327109613144750487556705628073337202214992215586224228008395387259296320902731673134033803442786292482597038301292057654056938555023242666119415564614468732985934027663871637721726365286805177570192276022532391556497863546285284699215727591253272154114921039465850705794043165759893513821386106730167916287070516937280398724805341904560296041666478239600965054090286858402934757873905086155879037273553227196812614982271760950306628902705383586358892307584499952754924352173114026046718809993609145912508465480610596764507921570493227154125653918071100055881715467155642760589567798891595024093676159225000069068710407366509144849829581791675624298223452163051464822054351059902283407754145432291515705073625445938688280418158104617484789513407470276859812357848631558181564529202677806032088454902628759964529335029690665675713770803120463275021242458518444048331878148234786455773869942768083883867344159649449145705852447394941160956668957955779042653030022601643468438384799985340455482862880095041231313348943280522496496552173604342689966034378410241905888867592179967089365303372435494056580856701878528956864074094354782921230462903592413739704574811932955142697326121519691907806242580228501804971753416388291562575720966872795461296870863933053015450664330314728481078906992942974649704550466538061699377592570252092477613142392509987642994483785384974891502810194757043242838321345634496624086591616482285934758846770604780301605012692880672617549155163198691650524805874967003459795520186346845198667130557599057799953334969470995142286335513782425956733367177039011957510886253507814387384575524525849212531957699511189708132025986448034460159072224071145454618195018576011854350717755795855596112678735912487139133607890441047599565855807507330354540488336106089251245614455091216759078544747993562718406836939586466576216777554526992104539161243279204967341184781998238471146612295758150410201777904532480116971525510727826145025436824818282093102347850211246015225340522437671082378608887659560899648500329900268948197963090818127231189055823071684798832063785239181196842810625111164520596826631731633847325777062768420472656917264998585524851306840858041006967126080693621826000500979700059404025679285893753020113829753459903493243187248430709228449150330504261455642648822234002348620613850085659449226272839999945168137969022823669968235963173591257513953515662739349784134258414166281389463688669235723965374988597964460004335455586373872731887336857518733995898875297314031416881675895417916563493448762208948610446247367915479092189900733546906021047866880575509171961682377955815569773463398227175139938192042464323800722680529711816205391534320204973152717969608074040374962443376877742348643845294853955047382013735823369849313555987163933647150614182931739773394648943494079061196694321436532359405007734059803409298584739250670345370340405613460321942110397855510011241138758244511299770459623663224021372058633136872501304422200601293340396108759238833000702748685977145687736821966015503683082614625705299456184239123201622052876581740066207821867014642027940462008504063437286267125393680466578008286732637450633252120276608383639377278612078517118703120173159262746044380331976885760032398534561589593800605169650084925402057642893812359387233984721678656961559183912429249710343640568419216280049398969317071065544627692789594903063911048811423314106125211545716732939594141442842927759877692262813744218934298718478356246509960665811479240721686836139115875391684294918273900322643944215272258744026921777110273537406904803022886629650218835442107333987995537119131104844200505865636988345351750229536392995825551381557709837319884794539676239348941910646793795804415055023422632795545171398885234444068685159796936849815010583261118998647749830820211879962624885075905863711336669287726962407205738640762830225855037448227076496097196803520825819708408968850219408474480723161208608433748012603502768039556818456275158371596545101107511181086573527271188617808432752974346790703211604200378749817196846531666255957634932629424301425314638377416363707094699677279957201951840229734961058749074600756288503910926292117931143131660615062763741782144249354258516446769110382976142531985626110400854516354527858503545243639586157725601370303435687874091765564334941127148980398145352901861529489969041755861840258207960907302842448531159545970662170334109726464916664337493329142981573442150276518845694919964275047251845781213006078757734771778755911701056913583471267174612242193818533239429302449743833426386243880441821817274272816027892580501925827713711649155609916379948287132710609867856864295616370645297308435535369120654614596631378300392570616536139055747543873776372152810053945223851606038043953002884979837634924721157743882397470606598142331386141446474980792726167159544528939304135887090587321549952592885452013615315657950982091455164906942068795458630014021817534986282391741043962200995889306630737184628175755854316578032400507740217944906640518061612060320807890832370646445246191695897099480688852005907876279610954302702169087717943462083561966710766835884684491283284325167598659526568011785453452315348823670673426483490409876354226876593734641644539148503838836830345124743457479935493697316909026764919169104912006281515863796646007338001367201043422587963753640673117241039652505925297992377257145978109109051574731910125711783778977365603589564119137510260819779216120215433358139166728777957675622386748966764713882980460709495978495537107882951589473707547180784297836248083428767912596309863980213037178811529082859425581205687800163160865034507805434221469813072483720125486260208907749740600852621124974149897825589172707974287877689537132117712037562617323909880090381495321073547290535503202039835688368317690739171326910377906339058140229521746900841380186802644274769143203495754555268052379455675137595379478553031963551412503549851541536921201615838874730463519217193166150345916968892331756609077172600480747078064109919153872850626146092736345794489364788920502507513731276617921586218569275763873797860054809703242186050839634927581375998174885877937953350199990722544749342765006678363746885758124286220764358244848197142679560720906524692808358651340233582014675123988960911500399740441645292064694085994232893484361907216596124594862769940623024393764720612134854799771862470652432440843377133158000212446045291056694228916696290405493833524144338340445202157687800491390490428911353138996422575208786994987374012125880529367480495534096406812861329890401087043041922994667501172852856635643847299124312270832667851419832817289330405889175163763040292067111870564288027416168846182430740533562380026368757858292623197507206673204610224638981640440814422684116531339936165888564145684924615997634072312201586802913127144903433340047976223430202590056521744569931142121153847243724149417386602819133227198500936834038319601577261900411350934895665969919043634398127365904542897042505747388403858275409883157849293801200030941675762018406817508954793845895076400216328845212301289706421023114456433874518321157036544563265973247748496025500096377765437126666286431803341092598868081913436374305651374902607659606149340261724956269827074051360778161858379135887908113857810860720563935084240284469274046347478156163378758118923360980401172993329064960455888135860821867345433692993736427445280848474051768320684243787088694603670174917390148126861511431128558081139262807193662739256058372151202880962002948548314188895645720643840894357761857056396148393653331577083043012882506626629134238182921215151389319387787728139014092903531734724624475913921694584444648934464797557354990262217631954307898411922143212368888760235327044590332196669595671526461917776603154370647454778521415694884018450803224869015900825579835207444794627119997685678571582201555556941618357982171899693495074221660028089533223374678763228174783394342200333150234050024579768847139494461809745216450983971195924035873989628605623198706312764983871882487151756578648902499370333633936289356183386304602998300829301790006845916688349228661358449933441212866173036295856244212596735582297275651973164418526830547750250460410704700903459501117028171172813977681918172370963250246626810459623496155705003342878968717543653283147765024125833258741889485535059886525832810137871624942428828171474580965187271449305921357051245411017408794513521533639824435785890804688443681495209210290979576259309082748414330685215107175085936908167234965581117130256910383781444483906073601500427441833904518807283205326226838063275502717036574256628993014074763519589242595629712257792446825985348619614320036425752567260771798372690508903323452943366566926646780858123567672913215234331163315350235154696312005543476296338237852709163212506420007581188095027696113890782236455871913124837875178829291907133433306473015935235537243763070497138992459956849023158625619049859796039085743067552117867564977710631678028139707873750914538744030941113073108062288353527489505652192705555582639078366730651246276362363610082442550957428032076763600501760123580330064407573700044358924054712315235321073763165323862316362416827223580317070713510654378600823306526875755114816965520660693532487537087281410014592690274561751976910148733250522747711103296031643783262932138391202375962563863736242123446356301373865971714999041873344769535705428668602323044375785167386972460646860396910080355430619409664175170419821148110392226033299864148732026124550737389286292524135345185806859220828937922787119223648551333073795121548474062327227798436050942019705028452383293895582973808088041140414790660416464910753392066263234842926192560186713348706156107898438150721456992382573986597819920253920274449698989830399225762267816469469446057004991592504402277594395035917061941760507710073030546444145304905868918746858927930026377830904620084304414004407070948042791169050369379106245088875468993534244593378438888809274082882170638810406661523148157459118185177807216067248991980842373041885455058933264412453788741369697023532218183865395142251106570633762963749201932602973718422851782800526085687459888166871743723423498745266295951962414383502652896320925526030496934640762807054236004780955630393883535092479218094562609179066126829617093974716633107220041464954239715714833446726669799093757573959754281164698041114739868058852039647207186317082998915825971505455419586910064692638194727727232707742531650766457347497229527820440849130690437078470737398028839656350947026325827435614631204098500160178253193661540762410968743620232435660645118385377474625933764241922326002571736896748663087769912097650650954308448438404163161129630526448776110806626136480322771639882693155253341027674844203404771005508504185034023216609873881889516249812012494273145947457844733244371110889374695873708141606826467101406846287016070671698322301140322715151976780645168416773149222621205288162916422548568914486295142745516363093705938339186510548591530322350929415186374970244443578872809504654724008592969538685452813678888630850685164083283748005024576549339843108639619025514004923753140284815233685597119366705689352389311927558882500135926308252507669916942158710040963076867662095458232749170468665050752114440869890268073418322336853167994330899618442967313011830526679735383184049753602617549288107395047967455085654684792390462347507584158455254721841029615763907209522401157798915366341887009130006543498613433433683382994278714598980851635732734551715043866054393163161732519756862885199289547739822256604659545365972871036928951058593678482618740688176771157591072534291631611560797684127447307213070228464379527954795283361836035683942725614532069591169841043179532340297200932586997523505893752222981626155523799391103868192931230172282713285644033764579812649793625120357099042214676256580477785975190000265830146301263552135109255186963558006917411564382909798706477851813764418137290405752003725878544983760081356237754928066439967474193652431781689036794564964133055721946605005674804006097732660815797100830452038965655731750161143787150029144181134985446215652916099574181759986713830595199127590061361115215606431008166289488132793077096319870691103031001092262651550017274921098128110549764757990071224573667774012756954363718546109454516867289244467285620943632956808218205068698536786348871685076734617676051953176467204805650554507361377262723248183186536869775577161760793120341793780934749073387972863689671242588729254238879824008901341132335622243620679832325133487444018442774081153829463614117154161459019070420883345664437567435190592402424813930926876606162274780096030925313598781833174557019492016474759870321009872847683498511377940526000854003009431372367925030400006030079307940246827955587734486071559812252847158605130073301563677448043406901600206747269849429113332615811956011961517769080999216131040144052389385797896980294522736169079376263102256312124729401747598330216988024185172344824495310147681992071866259147130400889715927588035411532429868688319065483511669974518136796936954512996119138384522759200339437149641960312971187994108253442671582225797756904710750822133078782098368858166618672640589421085258658597819737090073874783849686046603336246636082129525628096534290202957273640426886444046799771404690665951400591592840626384322834625911279445527207506883285192786497755957533855191958393861218527789529075438531371434407179568598512666612886418175808924033056975922961476857258793484577155587551576580826953768484283416220897696950262943908410673808889893890656332269964010804012474568010243442208150481871024366672459487648978611479619201651393361948313112785992089152119743268590047278773201237919271894443983819407500558543706145740856686215259585361690374523343334110282950310823899435391102841689011704972290567224254158933441109861688449355185551806354183962206061666002867420172314168837469441632006689211926251677666561020769582794645906019362081352945457332621776262594086490375717780547480624374392584763580169809995578551068605419579233584552322734674658205207440617116789983062517188235691398178818210338828473772428062833851701827217015624377905388073785795624962449744539005668861909034814888278809959500414656498956882632664304250499071203394470909310825054809182455980695597381405359045599529210980226733239069203309001740661809669550106315311247086158273916747052976377045271825448672425881962754500319317989937541585370069576817245977597723097159891378610095121069723959588195701032619743271297067509794362043051897223398839196714288719168498196323125937353171104922085768513748259120312391914570057595731823310434547271873525718347636994669355680069112828564733554265016131766221151747063754409414375022909463568177322905538138839795819402311021141340397132677072253940006855257848400397340412251133247875928708755087765195538015320785833576872279391884452427106993876776001103311083082489962140025379199171459139184908076646108030600571786245607937852069786123621422990580076437121829723727812795281902380988134479398917349383097074765760581411315746837085826730792789826862588731253503770551278113799710886134928461887984590900011579357432061427012429931172402156096199438171369952709506858286009576748114814017908309223887909174115425237004918939509683250094686741685381713216585664228007320389881876094885879530703978488465203828990517277887971303865826976195417138466195108339239088226620873516560539669820858722220643141271491140346191055758503136923319026123096066975312305375807219993099778931612905292804027235520215687615347077661137825663276456357589641239667278719050318280447462935493558878485973496445653343880145529776115091398877258930890039269085459588240147902780934263120601863307871108975769059841272941130482532029052239872990890685401177553391991009627879797854871477365973734880933491822240120475134346121974593005580160101098321950063129941969288287763796942972008272002028984807778290891940698576686806593566081024555337707977654896181200040839845351349597696348116172435366653136249118526474655223450473784060992804714315893622128889070371331088317649134697785634951110541987096329713379615196498381092426253693831686995904792207774810138974169187655252762033897998457355732591622766111492703630334006267014112073505611289832615000007650592392049355962900710315826223316957827342680035648621178650431046615679168428811720389313808076814696741438459791988361600109097240626418742004766610177198572305070414039538528897545000386406315409180630578356254195597703598682018159379521632855422550918618806989742806784520675107333935231881058750985629915738931111614234209502946356206680856374050970407601161282138089991176098863281401029644131226249383478896698988780090256804471499404250473559883482257690162667577926451224535008209279758157253395251693201041339860978075936632224920015072916926794307980228909262822356470556999892074347167306370926174933771233847110748072795451564615847430227333730639203723362378076741665142343024148013300804660467073584274866391875646995461898226448192191802774929597251527495981884616695809852364142931039809095872371561701633228564639516877714087399023161100126561856086941801426164177838294246323692650220431609613127641603245326958225772661610399678903955411987809823209464784989827641860903333978840691476501673715884750716418293021482878181454641944380955316896764320317239076494741068479122085996127658765821068556892684892226915933635418189965550069437741479762407147783042652434148315102830160766086603110978736491794727515117658050385729566698123508143301916368211171442450357352424982444580069486986219092668510359980238053491837093648325593436270165585232964665589774122965958507360158530667725030421220390218376791487866254567203279938802858096776564581395547856563339470167081052324067851546940816065401336819705516832117170827372843352197568193064871121270348912271552666465136555799851017935545387775027054456752370384820943014305310641430903142681762056496396084628169373415760908988088286895465499733410287233186003108555194377270061286861194700909675243542283579095045157542927841583301755677809181716758223565884660716422843771400931367529642384923898231176694272934520706755457352120427293593347283332633455396061123230045180290652716157598754762598043199368142408360555088861305863264745930780363429821813970926232997082088571576856261604668028111568862375585172629981961028099807778283050953418192429809218136047622415095644839616543824572991953864071419582298709447846967625371690927161180838013918508889250354673679529711043861430494376509292776667537145274541819683422207607263098283483273763297110501964615509314422934897053575218072545500030817183131140679786293515934423488270669525185000455851131503962533063611834474778545068841534331404900004874726406601476436046235112195774051464545444799498341261533602559270292452342371792203111395799308238928366345490094260647027233262289112093118613002993014546831419979231099079011228339531255549084351861117452288095572142384945601468684096129501245996894303907864723767479322412445185777020714954898909079768820470240405680081457069338396932420208259009490488472071277124442291781281220146095743747384682353713733032966465523972092691694086774227134918625142324250444264314114144914730114870501986022353015782535732128717461494132718049597422758647338388481365375238110773102248368243237007893075601890587857678808043573861717356291676736944238134313669034343549798477199624264910072726499210647425897900111708656268005654763619272156633414222296345589093501820106881946540765903151141586292729229350882256129229523182788248204196503135717840295620383699076081339058739366609110449874316292910841316918703228504589466356464277911302134272966389661201482165212335994483729795869644972470246351465479779720778827334395232003144103524113379384303796374929194474333873152522408409316216041298551068908180680007056497089126341296642939391332057270047132234652911285732875378385989200178425849377800927739403012386620423335032555193490813984031785015059115671499132253308810816677620845938130228782623712236349896990765285986322135261921879263829045158280375379503845188608689215753173454982787697870878441382336046105047841986452133963074764652899724736508532409338676865677963745406413106824333413600843887853987198500795499158096799686759546078964015150455717304997660765561725387333038190351088941356656353331246229970670352151690063036955005679530460681060836182435012925700459807037645298575464278375928482871537141560814500778881547708048971052237589582896431267362386961114346277108157198986496455651108572697146557340057500458105676492747975345714949067484036137968851714782583453997722341087073855198887231910106464452197387657784084632879591271222091517304662985162725693268212658001840712421237399349486596220138061398196173651414092397115415809632684963996761197133556872226256641671456977989578198703269107230352681850374783402725161765018213047346201397834366487233517705138478170470359193167550306775513440157255268166103993820267401867177754292616781557768358205767365334421436037373809946260322744144669380194273365330306774809682132958581565422643050335224826077291184260571707592639800984998151737567543103293745602510666063058329479627717193515353591539961958683575120686662680711357992814019853162128117866153053003411357481482830938404233407780391281802776914633394494658100568524634805554560401080097858069193676701859809380054833405129292660080260768037104069267444229814814075227735774453104107825441988400868831971993866237962091153430341215945959827084097533715857216049517602558441401371200347272343547583054698402370681162223820892883469859118982208389288427059744723549708439445607608596897517721280536947088199943678729943128565572703854122893055188391379401529581527728768670384155076478555896771287090557501758277305311809102923877570771425808965074284397498980182391997660546056299977489733646333676337468415326267121536719439500159991096352841513400291525835362604081731347554542386000307010913129335699873054757006770766620692367410499183758680703865263563112770719155098883241482142813206516187199812657702955572685045006961044130501351842738953592376429097820755625258263388971507827386356411576745947467103146720917482972335763510374376924427457674042821520233839862001044276620508476098185914716714107755229198153737420771181033439411233749922167038659259247203258984020897606862990476073842485927216517113445616804983737989532163779837365992754716542972913904612849657311666264270402951017468230202326192207621670974570276808871578018974688904457211782845129768168296369614826395612915203305769064928742286036726278601153516272506702312120091281917086587033463174816091114053163093524159464153196614681769741471846582933561412457259463365667189246019632139727694836441010675404208997741787972787386062842038562252320234749186738842875078871891754972316975145623563126699048355752319149659212501281426301733916602543877714792136291826285289129324336884377883174972302409145177834056523708480046716972723519188591105251765546066973624665573110055089160926176281954715162497862632746063665967893757764901004046909840056353461389203164799560712271189611483928459836538192839757228056866081266029938341977894517953450539727236892705767452834216867972621215185253458673166142585173951582030233001174773583442391250999474030650584550581492527369941875064277502277944385834572795075255106622753952418861586276412724191189561629254258176918323023944214443690722803458771882410341747182168304273219763858089956211991441315855312935900500631011858102084983689918862142380698521714076804294462843361644701913766656570590633972840317961600474954861696427434385183691975766571687394183253415890899749619574172015634049874652211055413255939243724547806341546555987963118930474595398738060693679085341054365429272637822605241373355104832036717824606675999679329135203359078235700568107092326383106808605566319041024479307986461571983358396770081589601395586758259830453645115318946687105889527168032889393678587433423732929424968362440678162276224842075477449584360867951479458844598863790648667471590087611254476936985349905098838181933139009104582157259088921799264695621775355290659568955909179503230405226001536176527371718010872105084127265368232441767779827017537258047662121231973685619293940061188787875914073277542279521382074773767946297430654709923983995263707255791699081287876140781613735905186716242486298611384263772561189151586772303165325939421805669657738851954220430006123574072483663894067139035625315286417143960303945628431233242671918098051101574715827132474585501613983299908252117527285242725353280140868150698762568880433176540557816577862135196157953442779703745338379148252751089348626404393069430068347435073086143172703718599384729367333132069283360111205953505747168939783468191845482031101803717584091260865968054301736653761060217564276192215723023892266400776096215400583182440386641093150372727479009708749018010528352828859917197334427128038995431026311654101266495567475217295455549998463475501643294318463524192983220530898161148869179789622811897114455295437730795897668740996936585037105823613323723695980708671709742613942957309702700378017911023191302099603883539178228003380024922539308452400155745276543454686118971521971390613325856381000657127967050754778561435522975312673474200482378937684749076859595157446041738950004343658182325790961144084347394107832494916855503586639335255813307388164148617425905181998499832416921962591822965127600884720217366643553882995452770799270143008025903444324751495895097298369442022558638297050111348896020350771028093345023268175040055451146783914403524273256942936546173496932669227133473354787863939100195625046570654915201529905560367441471371059336301120226094346456378523242063049625431507495517755933172140547433579828787799069274722687635171525809978307217661712055328748598738216408779748552382022484576060354887785429426296292073632643664200144596814098809482476166254907902972318446966919831184944958749489029571884904259601551306362554865481859712155898984982232923516121984335207847401461901558940116329034528966902049966796988658747531235384804996096393847430080944270249057908705751122762567849703032063200088082993277979806420106294850982118030361660278020031106967968370999191229081784207169394138720453537152791027535279443591340164452010256673872552158656803597077799742011429266891269690632991475813970033892067700491987769857853742271104149843592915165298559099727298954922728852720482063328876120211224978994103153108824471288074004468531040332536734376761902627473969510995398840665626261337508070303260816498677624109447463670657630513346770974554830950233567186270607106031143876657974327348153817282225693996093407409067644434262316712274840054219895597804995341981396204888897607951324367337724511568927177146735339668757318698588522750928282160529306765631068447429107500356623672182797034459225827295249023378114616764673622729618981524954698262220426781507304020541206180500585056633550478343640812035353027971263571789478784641860737442174698412361582295722415994951428239619467598884362475910523488814286070143694126862487771701361717227232299127475839635596810431008406660702480543283845167884205495670808406449262738760530248643516688682783559261947436209957054843226861335862143563705243295857122841044769367305159867652238437918375990431940538936236485235193377825061534528955926135840978056923651104141221699959109450867658557950521940044180250966847197828143205654045201343299189053345195607852384261907400300050077072194907259721108772554277665899737418531577739139450853942812227026824263340615542601093745815639042006999155727929144619575916010173577988160562686960948671173567753622352799068343321083309427383428940805624554211893987625623897764438378522324673512252527690832083138014432958579044890954916838192476204181079686167932602846383126707143822116370436282589001376083121688200879051870115654856215289369056935174495880696630741430326799450936053484710756352617348752386655079107759666046209408061715047186247760621301134195418183588418600535926069125593179919877387666920507692315454938079321724426795028858321887252538230591444625201545510457041206625698619512559885743235260727852990253665528997418386432156592808690368802409522545456686398248935753279577883374000894085383045358851865680035514368879708733555911720618491273448752531785280955973316971451852040701221872294429804799865162611216152717523867222057072974864778851740339011734461735708170616305251885145167938771949974619341997483044372262192265069728588008880391371822251146866099069002491696498726260261898240338826923379481944233399807715263485926119197978482244098757287242008363494382273963198384824108419704280068240635318048102681262026950013630884471910638029141853235064511638811178903409404534426867298389280235037778540692622421449298231650277506524028599461528317653024935274642102590196143075724160578244276756671737726010819960792361110989259212673262965947970411433795170978238546102340357811075458205640898012043212177290988288577098371913978096729548665872788635208653415941553338882452424845995400135084548240916214211306223818391966388135847639540340904913833675333322398588562807285858849286370554445899502235068136564102403203400124512208405893978608350669236033894635933102046901396666025096861817791193553706835025256646670700666774499514923257408707357545116520193385907393614224959566832480942563842315162433197557624977025430521927594115438683898352271053586598091535608406891285684515661775240778506976777046036413965140505635354237260732020158315763841313256441604442139752198722410892632069417424796961693399134941735467303800208285556020817770862374729058942565263930314314454182617718200619760507336582431517757817076763729618033892748304171657538788452615788231602976411359506238612166760846069262477298402849273608843874314309496834850534450082845370735946228809173232357811983835686966243726435168832179793570110330486834375705450227310841235193019323367283737946932011669176141983708631979637946664128982630328086539873317784889538292830270718935082580915095269321819561061033522241992277409681782655970459980189589591465330302482840101470640883308243209388245104241983673047694100206468682687403675924029491937303996941138752225864046728953652517087632602768352747466478165604203015835526795840952362919641588758817338302393492722993621463933959352453067802542281831209770137844911051904093872362298361705165109704326422734920209334833083339419032734965284369681074885993374792560753698386898356403186507877866774049274621532249455564506630917239809005969403642291260061379714695135029186686534016019620907962135226769075123601034151910830632218680271174350261850298172743762626034711630446158130686413055894423628432774223012707503579161215525484993529590525787450066193767135796457089798206767546721074115768038957069881898038042644198946324790871976906924395668528519293319624171345826985621582157909380231926513780443728731159148851186882952119770960438381035536024970853056973934728733590415545503506075948476771900475416694905502311121316702319992936041436438772049809769476096001883272310191394722281322280174423165500747277741987160594882485446725195820385186056553776240791089709485416957968227511814693991860216492430417700987175334761890375852691975476333052925989775433112539416511499489260540891678967381927614808980693539933731476356529821708509105279271779029210607600534155687236888271035321253259521777681659684854428446174943406467605569266744105113808194328327580865106956773817364089337835693397384511889193439165511988916790893604368959082863018788495896467988027272354874608307562563726207407603352541213045288353857607815405602642614109380887467609090640570916618856679051321750979342761694740493281836052078593464930656639945524907078882947463769330857070185529619475679785290261511378193556846625477877937835545658943592392830896268517580055945779157422947112739634817453132729237531260122970805169097825455721941885102606476182576176269653611442170231060265866016907659743415596390297884564414383531959135952505715677516947994571056676057870295231117425328240437211152328949944150986076674505182214154169869517457994654826689468246900443451346532908893575106300077110342701217896834728846605706658841385594847609781423240974778848637574032768369522747571652292843979025138976221612223320992680928014396610185674864494384453106455821213451871996750044392614008719478255429916505656871126813317454173853059802417550267127073290393945594706451779582909270780049750159821625827173233659235254884209521128275187421925840666046545353295334934588841425339753634378218919678151331765102374160533300796288953973693328146338689122204853538102360110792302351061913035840273892798950844936489964252067015229033912346763484289557806127299639631387998759705049227372922476721216058265913461128778575176875995562896882665941042176549840505608483857595525549749268383814959518078899050118570855595845637409845789528569251450841658329737291760414984184217376647617501387815381799404293336116069671886713589009524297908713695827937666921714188484694342377599468170515893541955363492211678390123132742988948576485333528079436225666885622464157021189676293748874675979733519371093569601445004081360791790104543943595509666636513559723198246500747010195591730029814555291282977454096170930219988435628380343107821421223957076245867194314958784191049738888196136547686538266580462023035375254009198981192147160900561528603781677924172080029235556262947782509980281399949029870399744075326855979185307457478307923588957831230700919180155522290584806370390288674102954226945222700111573933275315629398198115038332424655748443366551034897510651505764265021052692468188557294687049169018400625550396272656289387611906871979450387021995152363436734528138434976688140465305382889806530336085657103690803224220895202478872163852006438548397397075590326078053188481027097254172085496583698874780108406944019324852523582086669233191675720804957465384986027177318176943719311268144466728947190846892880139360233812559357331811410344712217259137459110615983765039197295772818888525918605156116561054324867352284275217122195627648620759768560252729955634870150684955778549882098563149233566210278996324081027732201115233358204723712425021846110697402568056367729164007635702802708922568574903908448492556149009645301704566186226967474271496607632301750150090856964011955822191447987401264438581330884245306914228653406960004328544022672459492644140126321468585312323437345373928170033356521565364738381575943131965209498703157552757050118679770159540397705138095096947647598998675983437520351027022060595980307692743576451946313855838305551597007196729370150351146422654437035849226003084124593704785457618741250280813415666624331966124554773855155641819650544743539333900336092467322266285715836975958148630238963485362982043945516793675152456891432203513774652018949812556532611437476106787720566773180019226407780562855768748416656990531586986179731735864769193088130031610440823779163389222141260798672413734059992327112520321956655623402739093358427112305250401967240389593605274825673865202964234288960042212579645003890034911111401331326704484511388758455465066882220189694339670501455685413587894127966701419614674897921732889756893497188324501581890564462977965148637663655701703312723523812587930869341751193035248216390725646017874900735418440303790551272495719948278052715584974480318733899972281273430607198585022574649417962268879435057577674617108145840770794757276952323728064569450408365544043353295862124094013616892812765906557506987038281817588688438690289974443398203182682559973293092694690647088273182276170021723121326867399465188397415303594309597839320024261744488794701062774060839231533936190781697452747687191426865028325138134519998016703029777450372090383862410701630306827296232104182695246599013891194726239442306876736161626223706230212472932398615200045623487638091398281494178189450017142492850748411539516630116552440608879164342246039013991391298092338259173683971667235703236588188008793534982423084238487123557984457066502560128710870642062334624843808287003293590407094631391082868587762896208078661555514978735000518023587198797234611356410051201918965860704543648415952263164782449056809789626607399190586651323277845934812508817190227165600684657927201286278938278045598330139872275664536566921619199058321998979533135695508945526880695971391549514493217060126624420719023711319119432589234852294283035585890656856368172058284238013930584842569804085499639698140647832427168364265046855017075962479980840013933884163181285084569762287000579215635845328208716884483358334196466399031512959246576752336865490838129949349955518376738478618379438845798177320317039207872973764490288463994934440819207550477938094097331709184048448418639063906896350688081059884773446227382398938395897527075453195425637273360829713782531377001820800206779092592311536303924305429007864823215378255745260551074596303092366208337334850979504519800235870721268819768141381834580870912409432834987516583965677371742471774152316381390939504242182677234086268798880320577359545448151297882305301553367769562036922642915586012090678229197270036230761781494543988664147066213635643795943013519653335036303316617961878563315268532224703770089760932707828941655116788475411189314221979890317517472385199840411702916563215276113546692708570145286945176153961361699390768577105365266361633088644986096193739044423660723065738305038475941512855217688686383810418022341541360337677198280939368338429218909667721435878122867806890244569659466422000737761468180526400849690964506610998436777489869536413822682442825357616813347566664294765315626850396716550337601999970722668787970092718660848180800950712493474338615463398940712905508781335840171826476927343908987985189524239734307397166549668765155242460623654424657729786946428315455539296670919801328906793914631894112957699283351747813769641747692027536212853864995753439558473335304910087655380319538521030222567755095113606588957971107331068611706719356605121941935864359326206393993688786482905028319530776099108553913147466264610475395511646213429023243758751475859014410279433124266447612648592749851114587383201136524005279929664479360240257483030767540402891780092776040994973728648387758879974468025932214440400142298028653595473927510040034593886802935570580981831569447419775914385234238883623078876878119626370182422952213344770246356928088496761057405693116361584692219324224688870225197397960953676317817138086878990601497929435581240413693681609836161373450458639936181638799923550055835916758917417073623803911141472992368520168966911324408017304008156995505502445167395806293911732637331013588580664092461014133629155721467046162451605693821466631201401804716590442705816510240707818917020898932099980906510190026858966132520139673407114981527768898664421120876492662096903573749404363084368571237075133085842509686972739972258716275493544810621450590945537339655129574946855062797840245766910554725125724523865950780847979646105858940359945746058678107781687114163177517478477734062224108200387456329782338714957533756962714678182779321905806244934787721931521203951793841663614723908203861294562483824565837638516730187114592422944049831483458906177407020132175608325346703260147746885022437147203798883934939084140550489182043620018644095679164890802032291902390591239007991005870877981104370783899300868763145591045321769031727660692778777663997276041345292306409314180357934080110220571075079595343297405299381953347355952045905605293008183189066682357296559351312010524141992926403916468819189342459512656080844971033411388555428907565345858867860689038256260147091651565397390285076717952828483112676071848302252873993040034624565518078615418327323874646436255852922285507668445641878493885174487139033074100875303384381945976170478146534211463693358125820783405111357126630524227315539024649123332931971131953625698660690178413911516045113010616493527022537838676126112356276183712421329678864086988105547876236265313490071815128453463609744075488175315617814621732256357243775372552755832679412770672645543114149651226484172693384968582270721255891521973203831934167362435815492159522777075758751422318821286043041244930117236565281740596030996405402148877710126230426789143493736536664568711667537828452375401707989155150823844517247044753081738795182006047004404080661170183068792569387605957219020096910255051781288677188307240783849671771146572608944557693532390125426539015777415762130043842149787258451774156199360257874843546597442754251916862941281344086177137169007738410735105982258543410532074156746592808817697854495848529749649627542960901602887090330704992316149589236116072946531355826933820787145407296098829976016483206728327100095752156265729866972508611830418610880394021064424877269579188832127146580523027913538555474904975067633437207185416031445970260892320901982832020845230139268267324028457151855094049883877992925386949671617805417922627215544470492615772057745000394690001127862724920570963180517466240533737826013895422529872637560427532601895107211237182776561472416775481754492524192240295347788743608170090375717904282887477467757885252115273462807228638252742892136652742418205966320210490237976185910239869492023913060174035103607557852772565426516812104086053496205707282682991443990044603349990497850197034452161305966241090077350008168851997703486551886324494733441537223187514009921843377009680301802188267072915628122417190485936753411305232586369656038942649408064428261519645434709587733156884357907190918443339651725027920347868707465155421207969916246088438862339180283208071024758167765648986972255246372680262805653398822943828342252275840972907869402788093487754651332798477345270858222068295336381218609452044898026344684554424671942605880218360286322302816394424513690048155970320527235774401751752953324045675419663299436812130994074463752653317973594709676985618579392110547032163276981638557308992948083573927666449276055862925343179981793319919093371113731976381173049243052074854658877628947562046502556866150338692336553550863101916052778457430185486768976211277545405030683881048450236613351662399627198621558219855162900883663126323425085078247801109748183584720570761628127787779919344553397210889245499388728885092928270880172364038854907932767531496341436432255210426409449878849632205033706216033180329750918965669584440247307886639977655652463616861258282920418685305954057182846777657683317468791116808476367909435489429582748424615380842699854775381436734655385086020227367466718710183776823255906684665846862313857572285781417161825398142507831457300908579062484489909425980436934418464231734152541318671339024848099598095747736568963021950110522359871945290830964775923214466394517619796436332721519876960626104553589721027553396943336767810063083072354922145834178122158269363538973127762143435332409693510403809452631436988114848487543364465961686791632058498099926056787694634651675415856098823831608435594640800930807758881377173120910286257882952670225905594397369028132812202217329799894713725661508080752396070649228395567962038039495798768055182315780325606155252602103354392716944229045942274053784335927316990310319431411801341352817527587306954269074562255692105251928259836650545242829880032016789757586243521413412431294366650973801033814751454367915389914604581061403210516220027541237094459179409821887304589606749044814257580256249447186780597132928612774937370643830892765115073176048974436202928631412218149516802113280464954617213996096446235803156285556864300491509838989270096262117346471131921129268555496415808737774518043580001484805917182910199642560370427162897632658177897648107429718876922253753853719146315419921059134166455104262148172054578399203933022974996231650896360535313250209038172491942164962994959285946582139016526097505078918277977524674816783284168679905608909440591945477649270484571139644872648794678648037668157127927341291556996553097340792411679094956492042217528551318957691800231969151584876402841211177927596556686773549528354989573926571320783814324942953759561170987167012075719983399695869145201726094012394158403731633513961683674929896076875965716819740508113708223492867125754825817789183915436900573616747879129629889154385792496603039884339317690899734582226728284779314764816410704361884546176675083035074706983828350276673918290189513559170807013296335274503436689227936558265190172137927889675000521822892558255623932381641362035112339635072288580208447152787354662562530345541671847049399571765905925723189650578988215746310428377970833535664843762080113604108401587650129584406221740810714031584248792597350536725924540560630341328078780227432487280820232590366018407922048689335001166696329860488842544198120668339415704364948209843223723042966721764852518459379636363035502032766952597064497023314619339155073506894735450034229792057840252278199761769484410354234713897345950219797659489915496455595097669049892538983024503952191708649143296268139957750412085576348534747868927333782271251380675849587633796232774344650994611646222992616138548785434853972121317387332008515942129738944948829822429808011116672081441648889181928311917080045403157449860923730499082812211298470056234787798185916838144638620915828850603779714839528359746049402629796382751324267833198917278115401694467138140859612432908907223538708024059312989537271877187745116664281894774800281295241144476802628957812588165510211833656491871813437114490841990142771917178158628555643323980942796138441744498265101058411653057035989146146990580014999314954901737252190338435746390263628104218373061483019660464555594962265716960586247933679722935864766502508100104458411310651238952225670660125146148023673635169730875257699143317160337606717733335945390766694949026250143736991837140179991282109371008121199467238648187337066637560774713992268900433231569689478111811146629524481965640663378252346171442183842033967677361161354343030968324866085119275487885604145438988995502551088998391287766205846216498477792726312892325043915390830115938202767729524898381791088012955241721235466080550012475238716143656479476571480381786754437901174349556974111354313487552302177983808525788460368852484167074191893245906920971167360620211444832159800121743317851046410651924005181850099680856755654851835869942310011546131823944135126176583847838831368398042156214141611551518911520953540449054880641469834610670687481133191260480855432451039035794703571892424231611934669971514309965371732661818013250989468854223056703122844810679629345806509697014920433816552722015730970813481735998365736207883944206918409137264143265411501804139834249533673033881821882874094908184516812288725834900237262435324414413805885918822130630014035293377262817610731863627336578436190043281286863539778112195375638823638651807196625359540033091324832739830886173121495022406343361036715018868088143942752384699181503565033670834793965970790303938019867917871218905478878423416296385078277465693445889006796352965905921242003820697534774315281137954724514737370279226561991875835257532619974985945633243673763076338145220361911927014727961551670699239929716898260890829953048824931731585627730696620715572277591340194487856195962565582831918211199396478655663116312531030446823426897041908665810613247274701955008470442412079296047141949984440790298936300703588202733803401369022918058037747095543430171773811353714976722680101412598919543764068843707057708578665501006678633011630085914462534731043232304207332030031176503333950601177524071574388175060687454457163268197625803701678586749182268865655699712676949120105508260474875509229969945027472823460701830560813696343869475950565360431775986566878425487353109557893499690608216369491198538666422250454350430728393892852859005603977709425704680686835428234353626249510824795277400998673365524107036352558103230751206273355650370220851911485686930310540777006052130885746841975134402880101071717884592617813749680486450797713012482509779223800808333596004143231033764187170444309381467759339090822403959750091362914843657418819265966176642445391126524085941643508840275110916744320575398285819937895387780826342740268538156452027590511967163333738968186578456234274251606531902974108376275830008781678708512535367789259910664422705263389031355441087208485576924533685392605816434782289340714652624396565749180137245457614275058268695558944049674408007180446652671415562677999861190932107549596827787412570110398215939478348015361764613227006596270232198306265300182351355656755986339995766289941162548999878206669251484497066372181881292714511931703249434197043260258557650664058149133938811237945680639584561941680325305640779866268189566392995968619376692155191325699662593174553554992520923739952427621433830696635108486035664423481088117901305441060949545948935849101372585266511050792054298928749624094216308372767353548461341641039873274086099799799480653962980100285922507867381006666994270407923660164407956926182637371410472773762710644855390638117874895037019665113920272541348355178636309503400822613445685340765747382323561148416348376927188977248489446078876720047264430799351320408299736766784498810839789828441729063072251909756051159120817092114905191364163424615601921124069514987863779837122051128134014499351844209432286618086317109512933550506481401888916767727605250025499561014437198017389754540443204846668212548606169378923540827413442717032590424113849382895807206505510205464310975642243374288189846396337425585413570300845884352932052054758318828696995972297005600045519120923193157668059179786158622180486498107316804221907836047163732361761200024201283847170486612519829379174453071391815004007099246327053830921622739480083164028874980149108822261973835630115287392946166983644913252980933001530125880622303620997384013067236028387663911824474406795106076258692824193438865107067744080186474302669202547955138269791606300072868548616668738079196148289092972667963124530254609475837601879579962524382558763991715532544212836699893445879534782723947461273002123361988064381628501894619543158942138163127410994220016292735127138086134684710505451303557470614846997726685714857252348150513387828556971149319898606046327158132349833751790952126084130345028778203453208416566575814528317996704371192448441956172773195823239539738496235740417582531348242402947068727606450679470978874202947872141493069070355171147651299450084598216569394915090487345935616349128313908933264124241186952733080801608718343070790015219206319889250605012847958995226871852947823791426678952875618504704012922394698104443024366840441614070921492483420950295607591867966376327472876551472101603544214675214834246374629902659821505563049954447536917791464540019255756282782899142870040785523748931178332932121241928103039834885020316850983916368047185197324742032953173210798930330225545302930668662112955417226417876293361096238745111801171184052349476849610751471184863170840340175164797134329465000344924561629958118011808811828380393351831949802061530081899615614101030920299660070522236273496054875301161454826950879282726281035442036689612803007604028034016948313978714386427903807827550586267220701754336824290396167629366459256266743770899651789251206014245442111338287269711258221931010092109092268433675589569514827357606734317608384143064562496800693502185808232093265866965839199371128259736566464523277736601479130916665739558366029974204906448320971634973989163270340555273490893023722328447955306906773964447365184612658050390451023574954384543749414821147849067748715053993634076760754693762542299876017887386517069758058284181163177477738029446414873179877486991144523155989947123194447593527659279733007241948986008266968143923591558004567436874018990978371336866499548100716031471956942133852219376679331888744041082714008368559763469636970423263091580051620365868204340610242800342174784510196155264116822480524448152479701669699611126977006108236178777375207391009200363120811418801089101716621502783907390580577840480463208230574213627606873559051642367251266891248705366721841578138931615462128823507678462557918112424926673323453829360140567177701999023979083174795807516717773081780764956560571387092765270467654485660824290641367193851704463167675100189904638980479774866722078298635430969245046508400852342767901645585758700282737649528678486114491922398006342475352810347110653393669333290227845963733624351560229009658402340842722467030971759625955705036109941113346947585771264007977375897185418952611188653080675806015276583362944795028308863861201466324292864543288600086590729498173252635452332624908539487995747268190931618397406448962444356210950074837012018130600203554467151272648395031475195204374692488957754416326775351921100328852673156380805720416732092109868487794886596771179792888161665691003963753949604175855112772911744205525915717000069201874460069418947033470570114209864463599767468421221912620178312430964858525664169289966299610217819410495019952981165571647038481886244329220897074865973337256904733223317389916816007945786974808377288938265715136160385857347084168835804681454052730992768875270063240475316442470434245085113869764943686000228260092163221482017173403474752041033873604935123396991038739755279155574205158882564679484090992621510544984583781599363501139684963396500778318490097786453357161429575903967290088379787316268774026679588969805331749570264058547056663215582281031842204519246415217027483584341501356775525705175788600377104083302640128730802149789542987913119774133588373913086494228693225344463985043233619234480119201435159148861482728007981451993051216873726558699955979460488669524070016373757581138642783176614318315035331951885863214199653723496580982063408350516022833792027690022393408888419555833891518157277338504393777346706304525955952657660340919787493154041959983412021630226751057025416762059004217428429928861522458181626431957804403746840552215576422182781342738637233764667071948285206862147988790968945352074033617211755809502599363609296299702915608106518346678282019287476552822723209959781822978567783479190552532261425771429938670505543354654621426947618428391520729114121271483162194178120817928631014660475603376071447727275179331478678253788923639631977857787654473321604870076988543888686121483769742121262894652124268008793034685784796871329549046992620737469736818472529350287375401190880098432951437000403422627161153144450448009822181216570850348033790999005097117661559448581521141313565639990879113655116322205051957688445101128654408162333152137073511377120359103076889125523389298192373196915671827516597572640665061139112040028711105328522888790159590336565587653166486761860873157642717134679133279279416426599078427029734598641710043572603390840811087636359734248626230028139913300692543173130672539624948283044315561281502048009580852334609694225137500754102588486419851957715795311054848496781348802099551761771377628554011646316375600139211779782553308484841665177786676848317910524974395683104086510195425308156001770659314371383692656882384047361059970836449587770702210819081598711966211703449137075744748946452867350641098809683317538466408946234918464400525272625471240697066034519585018105495144780216290081465462563668090915351548617216248306644728664422334376836169983871489825751523454717071403684991730662853149898831882511933322501810149782182202789990446670244743808818803185973215941680225915896538507977323294727969367890857751617489858696579692679013190900442232320179082694266308080039051351399034677575435612339109221156262333813790108903860830505980657620094198492693546721933027163439911314736759703879834682623232972469313980773491220646369898698067391364701000896942605120593242092086493841834931752668003397923955097899810807692670172780572472995443921986452633629059751725699327436957508616322511208082024466283586317806790094064192970083163144938574643822128044930202189828427451792394824312755045216085633292161014632057286422579563556123894172892916350847398829973270765731993585799240502559958787462976689933866680800860659437528774203000753916982562446478321419355534058566580594842937905882484540384418362031719981663621876618049813944120488245045088077609085843832316260441411673301910335848251319574515435608136741778005508122320035431793265694761499162921484505705927769259512371682908465693638520527087634822090334923720686795516524391303818819495433623168123953271789122166574581300520825659816338402145260262967658165231832911306942601603080552736944020155205959280612967465286780460091297297938850338609780840109218285873529972507090082874533026773367725373282950132425346097606863122777118297887317158603707607467488256503496900713201237704225163012540897698133097402513054102891861629857041184792978348358090080336569808387746241214291928501869643510938774063549089761788407789229954769923188738874633258270501838176581205875885734664137722152026580383168052748083106287225289493378610616327158247103919199014556006078015742981583312175713677901881102769800267755954592616433685090709315493640082865014472231328376079343766595205236539225034120430945252446086650798498535026586234902250711401390407462453263353719031473064468800900355983086044148567101512574642245381900872974422048430424321053617597489029667748620926443827075369259234214639041309992653289670111732243350008121756826733579931321380798818758614301030562811262396475873136777083974176094638208334031549018468473316860998561945761844728691531701625350054045990867923738286502335140461038989246698507371638276690095357538901155157066379871480134184007163219721237400933020964134559952423693166042245008571415892971111497304760389625019070773724447859521667177295404084821373456397945921350961445166305797727403932566024561691387261104971151669015363041271771347623341346983221614005213283021406023134168027740486034707889458831376780831987503651001425329566273529125626820414515317430548799539469938170721558932953047099090527994377755946670614777026532667091852679148236453952142641331815686390770977767939294455952872514993884991909708551379313821207359630769417478217777618207128513480139605691168005433926248394114129909979676792903592807387654395196986696064186853208503291454108239084107094636953607855694397428073748192843901918373861260256943277011237601224254383320064103769078223447843075029340448901356363462775275462159452887574347791435619874446932446144502606035565790085079293062732115092614280734745495237126484248286731084380312575819188318825011717939341368374711340742991203284342011601609744364477166364342574002245192117626186785993898004362998117429294914116038898504139929621846108276161192816106798103606015415319519412891989751994154587505172029080609111104528567509068762779121408051878948840934332639526795272474167756359900980465979436854874386986794065196987466845289611473501539018818616172842814651022641268678345849565989231131889919397403373047165655387879572123240066861128823828846839878275651312204573142373082191024596017338316245813668697960224197407109597236602321773008393910147405964143765652462417050593797385839901887121789538923124821384000427836841080680595737822952624025570613928000657068449262494274283166481818080339654539216924481822007032487651585111828699874562117754821591910773540055506244644038869594958299945918302728110304889101696676522834715265416854875728226413329671444118646829944179868945781419864831039833991233132765118654470420440404365334828166490236117655195597881668440646027746232413245761974298256082577138707741205963570962317401390378484340462927895703587758617376511894221472975198535805784115614402105863493115295392664582187385116606818074158136693785607136071470907592411974308219814372291298323945401027464636564193959776861674030069813252924423083020138630163885562100660485203975352012078635641071277732995538749416653377783190959672111013448006779881211069858703264364412760160435596802961035510744423774072784429896738703748048823062306207864472008904564123845155239997324465375827832481888185794192283547932687972831120573063367587806244585864498365944541443744863366176392577960115384536579174141194156332759219080500509810748148693638652643151589817434645827312025262461079157793313450172795040330866518439668971442370846934517939549788509312831900305959758258774776442166443452080075679681721341753263848743291570465105133267812395195652138419556357152748071192655134129079083431515171803240765618436217494345257594225103684687816468874348834315392863116440719148820657586904576279240231996076057232244015640138346736670666548546526168240015640733048198232020154235574808363096067343866642868838002085355962560541759624855629969022187586777490799736456209869293198939749239079869919551175837803347120234985575201484463046833261101060133103644817843744158208468400144754358311120954669401680791847060365346315586883018000477698662949142495171008041008452081954336555837164651905543772296961957314196399602263060383576908550180743867601043785447088874730185520204626080350649320970171562251383788656341756281092163533542426648623025573577229360779092546414261888990795545201135911600868246942334949675339651624035021797637855730717944326274434559037495747920057519102915468592694650388881406710230262137769433287861870289001569534589164391160578860714325414811534796549890797550768563929154587430457457642916551289075336060748406272401807209902007983640400970131103851595180568773309536514730530591510437911559490668752625814423543619240761146784271487115939730106113440127014811285171462389364141638202107995184945136514859875194542894799933560652386023911343637935563912807097131768432626999270601161116466340973620327386347152423178049211903492994962887032362490736942226018964133174453660509525936156363123641010778406694686162587353054776884344874627753162244400594397098521158771094597149467091164129934120399458140123562067799657033114359684434870918193613428452823336953693032371197427915703614950450949614433583218446317847605719960420206999014810091792614461045363742112019403132416554632563802885005854519032625345397024359636314162842301809514787663565196596218034494110438336836027482860110539794265503883637451068446625891674701021677932105592403243237831487783406476865356889351946794374365465426592720919902161144789003664958238774138705494880676274445381929134004992695283247840298362502989809337647339058775109574993608666938883914177792310813360694307783516012218886884073076589558563374833918624603118337555033798343473595502018122105638007820108822237427649393572222366737580734929689396384074773621831885775121651211168459231290598947451545847081538916000630059125254328259343195112991823560698104757425407159100543297463348390443422939025889805048588801627776843639285795204945976822523069482495409139709281466043925775123817665429652726879264105260291203762835576789510608061460510184643860159803573150162592084209008471364114354227987861913568667731323534674480563849636147927183169875142980000131865073314086246662099521241121658692408278044798617476445004742056029513784323560952160775984069122975135460384222900652159419730461998871360379723013859542508896954702040895642273395807916768953125232951195399787698715697021780552856548163371293483307868903994797901247185090821454600168749944425926216838003644275954204601457669004977658687930718597146467326166421604983409488560097315074517228173650879574389807566622409170394966113788593823036619090836389540885406535655103036038442173969986645271936150688503969288397551939436585759938223093495669012205045966576501365844187886965981632582853895384605931576680337780337463580019591332692095007415259683867077444461876379514180292143731857062701309782174686877617218827972707809031082672721733556402907953351165506663513610635246024012692055245311631225911559257672342520322558772335888683296695162489162722118403914429745331113133656798868097235365390142327823201475936314515473494202151818160096616830397487086726218698941359010846882783322553457959538066519768943556414170832514510727485178137688361664036068130071135589491869579541158192066448471348882473133254943625974046378839623802290005128896285128294801131666448462064230344116329005198677059865893882145204744328638681935086415634114432925499844451318463301416001923068266156359680602590283184155296105933927743189722919350150719642641513617410074970248055664006284289691189117395571331706063123746719876891744596745819529410524070093214970368185099923161058270471343016495502129399359444790824357049316657353789591784324294767388800610678933077097637308984931530342100246548289041455773546314720538036200531310808186676340153326595900068847300340349843972745271441421025066823698100524480671274883062744948576983130094614028078041536398322185628678166185624153217413735572748173533059435272752227889534077851064192169041935045272548126085724981880967629363517207302918571860373149609315551691299178066527353143181437827242989166745136819684768700846940907238704543416077341019066661334876375892788569430719124505724408412190799036005482042165173012445728201045562089898873030910025552379858803028788172814527343634037554125518544927064442342665175072457985411299914265872859254726837425269609288521936503884070116871380071899224220567444702004237190258086790421153319498617785035677701514555967937073792130855118005450848704574258891540972831093944881066802203023477632472592410940847024332843235396790622481405086878736104922013405433111246756946650846884795986569086876264753352604146529990584637887888971803078017953752519583118624531128115802790913700469944398222241309832428460706245809743701227606965327056758492396785807703422930552274041566626973733164950599522453285224712835327976112703546911016620666978829509758678915444582629771576134685110000333331158356535447241047535855251414858820898718680758218105652213291303413327349736665245750525072688822639836454542256040607768990878945784901858689751788858845028949737450018858211804838878031677688146678037930040402979740361884610081343180554976587820829661236285239654315426175450118060148342329822492914860360509772302998637545814749368736257276115819619094807104675939566132971852238476010511996641191074300809627385368986169865111352548933996958693488133913443908308290690583546985586700943346767891142125681776155159798430541777868175553027565880712379384258131861686954502142082800726600383075246616891069224372176893845007246537515433208791446976575912524793694395612006360374522892134165908717910844123638902180173340578599268999911202395987283576644455087588225258979599448308154255002854902615678898770640629682616197973642486654745105923602888945223145349304493088675486029413482431620941948103926102547402441408010067165041252863805923373853027797674177818074621959346848288453860123841133443130177185012413668625603253807076540138511823230204925229162689752664839821846804718588781030969756904651038442302880055842438560489352040522155467578895393093416481466440734782618740607934492012187803025949601781305961475942997979333491239778462445441352432213512460258978827379706244380773446592642600308911954289288154044154956890676220898520166226577520241155068478183570890787395491315763914876082812728824478133333668662649111207747190753579005071094466735632356423529404357904617898525511454669015124593266798192796907979116285458890706357776383273592464600129833924196700812325552844638499935693999637212322770750169676453301177575127602238647675490633023225474339941035995657980121780155150550728816147719319607700786695560750373916168049928342478279048030731842048266009814296568939552344806224685288402062800570929887136059166258758013609399295144459660554604896517238397927146502078220389716639053607900228177565036752730767320510845690588354957039093435769109156490061551759502783564202114218066199238324901031664932951594604978223885500127969499795684001118463499011209678246282283652602569998317902372910042697315920236580847012400106779354554139449956432744956279166846702707929647685707721073694846558427107183118341111067429538935050808208466871373962115680193626187926058782542583005716426601972115674884903477477831735197655966282498083170444068987299580833206698945563686973752831320723196148972302568502951650042790092702149229985873173756299558439617220803656146369948056001828440077694885348890687637919574551613147136656151839534424699766089709604905363161946793719612160186751039740729778854118141109129749907019309319301851546253829074920111512864567969593002753294149124116135386811891067718057597308589363700427727352911250717916104517480122976913358994812857733140752292427335058367632759500014033792115232702854498325151604698660302791785030148191479874506417901218774077374464461435232458931607161785419438479242179529721803016122884409090457146098416053411070472093700387147533418112054632767787166379431318087324116557867564297635250606680496249444139863740252262390807827508510980097679229004517019625548288181454007821785199615691161747547048719810019579416465396068823564335096109561592418328951104884465561968514171659196811933264608207649265428079915482775784157112139753919016904783537833327729091128813677677681894552536503797669557983864445857275580465490357035200051340407601711861523041996922344626599237841085849520555223896998800979173794021325049542222442770770480794903073241182821553689832396489437911119718285041082590515105253722347729975549710574719602045204401750841437965554891649916429255676876063694682285895500152866985708615924607014627563706709869352771252342496515873012042447899796332736319718441891413254839113097930887352027031705241205804805001489286366638546616689402254148033401859406828972217129650908209971122088583702164559279128332365272014930828322832525413550406958624343827853956516667520729905996628259325332280613901283691638814182935515509719529757825822473433176503298485076727320685990238066049769374451342575905379037715484037128258921013801755512089806822088303657099204955587620516266926039601767102792608746632819838498692814131939628710653491842129848821019124014318582994573649511538811848792928121803987629117819768926220456144473295704404522954521443698060509663835386795684234310616794050146813049491061417252260542934420196832427155618711631112670537280746002663900597427264679070161542107255035163316621661070595866688883528332960525411651496502562234616297202528229422498367614209356972783166330859044723640612151027088677566695884975283593007637662349116739191284982380565054440443600987202264982700865169805927967134302382794249266365731032331626784316899217186191034559014798898034761970364078990843580215143872154774553757832788296164754160469385011987278507816563037733187593089290248815659590733937519429698347401458453845954770613798457673802321799984361655602244779145037216173739178625878724082472044790526570440867038554640173225867163313241401436990605132352696979640335975871334824943871471423488221835354709569481928795722585252375192051145989516049334045566141871664697041255033306186608460429761796347618664689804193151818335636339150275798780000377526074188732888968328947560137234387359846568657704090378670372999768446562440082865160758239743052485478298971588722010490646675067010301434805514174515170944278991476343330477225813575752667383841208465952435432968985789125392146065526293328095322542550218022322615694309264608112209567146995832704679082580631367177922180369301010691628571615414955020295791458435349233750848277374518758218706925814293488101609244792884243351314437439674514353411267887327429726961293931028120610596538624103205744751956947454224901841521822349443069504817883560305256830207258130823690720561661685745576706965676417882804166315216594179404073306155979160973480536462699603412570907424056664763684399944490473112961364186451102620065942856590453178376666552049105156202116598780680255557372497833375127338317103503477466690728112506216459956952630866318841350880276908853753149217054527402758485299699006883361945866635948161984082330240548962534809418232390658999932020623528181058299426608889154102929692948403769691997494795837961187508620198750790380204756404763620032144215448993910104901372088892870682584454280131110979300960559824778846142584514678945953188265619079590311354989022810283651698701490559022696931464146849643465123012684325957350398970211862585571921136941756825149799317180700025527551564391038850548224121038327044291372771290970143605285110765221421654895539133585500861201609648085244418327861540101893751318591990913090647762887453209275965600511369105489826902385262731581508214848271773136326101930873298900967401249357771251032840207036477342688345774046285170233593484354843446877283464398637651705869999476095839606602658570718057158443847682824748849192534228625252253948085287983640223704979249945592043422268293854326268956545498535179874536468270039211569325049965803216981510778609856588143765860726153705165300140082638210598440695691564956201360671925687591477561179805411615256363119750479470651385745747286405676059556027296643119339813716800797797248668920713937361202251429728590075788015881416471412315958971148544574263894043704930783563508299311214675082408382690909484618216018341131975465703361040648168641972549913106369823369905785623431658804647877392296425274646470758186755951811472847568147611764564972538086615967937107246142515852862920368380301165926629939541769598007470775820055588051606696176855357708548052924396740485810244907049938499509515802140040370709510424544986422405681000843958383638162105187429868561133192412508071885387854312932049086384455694622742610896578363624374183148496369373733644973834439843030494161584360710744061052760102540647535238490237726102856159162977370398341529806356984058444494356698460052737539999279550053282975791887579562791922869963458008098236224650853390705289781110037645955609822394309480173136080281378340302803396544621696247805658697533011384392905988702778759160152668255521578294819203061429270433805968780426093003920281834309853883545168839646045641602483386815365439025376889755331706934248254106381223652573143691394316395318392263249041109936285494987885767322864038843561148412693259037567085946199191365098381318176698763837693490782586749449701364781241553704596429667991070516834992410336566768565186564806337596184699412516775001700239660725206883352400519413567598558418897366635711118610891995810929104600249805333663950625844414225857845078596068029325425505677567808744872771267333477060528005770482821335894846716252290358015801727380955061486362602936185070995826855900627459636533679170794233694934745981900326873200294946926547866589022050753631501976085480831923623434370481141033854822392728872845305272718905030349082922023087756682604741136059303362120419361041543753208431933421100763314652847105781189147340420198515913519820840285246724996853949575313840217756327652164177878606067723340726851515681929696022127283971451916037011202337562732842587398138333956619087401504204038318244844292258752967432268387247808839981932383879424962202751661987228831046580022251607517247659587848799063838402189494907216930720641992870789897286036298198492427051987581333566504258250528771241223435554064811751317458364978123045348860244098635038361445216289651813681812247017273932511525328364387829360912800124654935287557938027586832310747930464347834984900281041416385200058364552477053597351099734377875824919460993175565917935827304558464024085237541005500849016647062924568032817500181523278522203081768209264474356815045062281989168675436112971825700681872510864998809735476320178905298372415740431137192463774605445666748487769036870379613655507481621077660950461478873701575115262778283560123638774610358810114149519185304499122986060516371131336686835902901449759731461616452008888969949805067254053999161981316257262547912920321359749586105711175901151543147616558550122914993063272740599083416177492223223888603835326615202612206081475112311275359683509484427232671855660597395159778597633978200535782438921490924916746639774862194695499543187244293518972968131609361580236884813823848848093252214876861227630049999563325948486093188731768032029613055814937774345432439069689689893559616654409672150460597962221668914036841565610619171013363770347276555298699238230817645300173046699272591299751381673499366415008015517955609983812902885153289349534409016532657065761561659293941668890586989457993217264170303384183999674488384408315558965126954688986270460676454622085444605685315264164425822888816437692872174525722040409374634275810856690160732014416628582386621745168053331663530605694479764768849986329558767076108210554259297652759270242733616875112783407505721757825407442430122916830304581096230249665522296847523143048730731431051647432589381778053597089218568592870986984258491742007146486169420629206838558073560105862231179556671101629208130189016948473872954841099480493000696043076128294215757673982262357322047705616378256675020047153294673683666632764347060199669607343830851987613536478877986698238079218461627985998731120248605358488111562094405231213529562547457706016446354655362714894371497556547988598239323000375449288142889576443904560809581435630966690788322762759002953806036248461048187042271752596427395505203067241113615408866312979509708723350014087836992175811692301101917164728227049883640240580285233669635475256018918749667455031717487598727809372672985793682104470532951026837891330878477682145071595816890018076136774030019241502396277867144578518138755164329701008170859207997923967088513451384991065278736172814424354488277332905601805796588432098648079704217355133536496128701882108884899290384451460793109921114197253694883658925297713017430104735576238948098092234111906820465609700719122091066944964635076282150050221194734194583448451193800294351634817938820801934268304030749550322929445767473156637180334277967275305071576421145144271296230672402172427762760907001600871044743356809619446790999144125818211519271223941772528454969897509591810589515596344867517354690149648475725883485746673878930630402008488252874301899197288375157790204362965293891417172541608919031091704371834856313966259172019435425161103006148295903985552213428146809498485711101986044428215665099158958265823470234583642545880243186381164113151761146029651323875041122733393012410142142533745972680826239817912051150595089039635094040709857825362755703463573102826967001411853522917172250212940833744319028758502157603677599321519979285107794251128253323553618820198276016008128282282171453363555405382494246341009587629753785836376241213130056476421317073539346780774024842331680588470903422199451520567314076397350868584773159897881627711560659965927495079079293967591938609941011949462866231553111809230523047098931217639257909329728930339400020327285221030495852084385637043791966402102737191474005956376184395111414994443246583393226236388888687328603669633768091534249524126205443556894365750374427466338052825006615395487950706031261639263084648610454419108746130261779669353601983557618885445582783188721942077259929947999325389351083107684575508178965480256109789184101581035035540321868233690721263535591697157870159649499060250422552151750314552551394813462711483675096971506509279214767256552433905796730127367872866566084283950399354933921253184064911492557232078187762706337330045619241665657672685418621510331014901329937437411668959695677626402185732226470764980535075654754296794243724480542746194832845734498219035761643778194562430302560155025007027817445218771124086135099968543270691967971049822296355258959736713592399071190541274493981856168452765078979620362670515349443731951940541913579180850615718364740386937781314793646285578846741074950388098756845108318209881900629858716163659984119813589679373500105394745402653392515787348540639795266422839964922308621990677259301552294333062090554358052776085101955130067389136481372028268915786923950621263455997152354921782079560534061554663014295936461417101906522730191803064105914229932066881793316642658434092885462950205707859912316697049548914775373443351332907676995138383653675375819108717713528608329810571349061491398594447617762108891672798216715286361087371798433966104490488651456065502394844141377622271651431738508871301974757257805811030508793570502294837117344610533971776286112307688331066969649779849565436237385529385665622104074176860767756140853310920695254344388370406227642503587513751554417448020491038598743621418200295650146849672397259407613999373691603992825625271946034946552816139316890256007327184185676139040070564292604575716743228368007968461634438304373892188392742518161402016013794307982842478791304342681918938162937388874244277498887359533147012466627301384358826869576867176638250627469706937987690353965748744424395930449299304680561503157217582830653007830023234600665946049278587524810900660825244595744421070664930612601286216877269439317537935861488317915649031698976556355532467397750255758120622482366337407449631607047332305986255890677328285219610139354785462623310198388063993436977939584176556771081610010864502073016762738387850083742813102165801134722156303532093689466845340326579772501891638966969804859204777981391660689554788317421022221976409481457680483488715034769811657993456357403949171588875259717431057380647000244509545627383782819794842631960683411885872888900238370557580408298161395586414050214217426355235543928831857347252312307915482412972225018158219757945291018982745238491811758331750750114707714439664484547543851645838775805250372192832378270445190879134233379341796624980715516969900461319150872369509133824982305993722760875325625549233529894369387224969688048937315770039815685152173220047091996908884994153407061363483762656721025421472390109653144328006315706740999277104781067112611432153946854261344321258934505780085905782876278323972572926256250573241554657824449563184476417306147291727655979791970859270450516957767996922920219446433339170227478881679178750418433309037580295336003040185459963039889606986952393885627486333548694173592544051232660889704553419548325041392810450746594052172414853321742063972367763352750297957815676740520037284103431001137133709291055383908789846754774123922969237097203131196369154671053302929384226475308201533229997023457670904587980680638055959356859117150494624619612942593535939655529830394090541195506442192238879752246311195969387831214021481550152721039269893551051696856063549339399911510907782653370941346289024071910628766690721263718168785423182458862444805412416861892412271744558627575385343564922850810333761278018559635077504156943391046675054832807865420965095175084743721516442176141839632935404977938415912249072838141317642919983852078615785844763132608167087368721450359163909010064446640185960851653783237105114774350861059930306531355724574304314654014867871861500979171380823285870417639453029448096494295224296871599395452840206159575189105843533896947585786015450501874319890733359195302610363009415638365146031250627566484927436629525954903639498891656177885667611972425431384691688459771534453922059328885985248390813371426886874680228914140585936053855283869116868599232470745244163239511776284209241179850752136786228898529362599653255456424324539294983952168950761146776113520873174573123874761407215274364147401489158893903792352356408556154626732139124378519234713949367094663393431729486532092313700058704304444640175688638954274928491919057457142670126179230260847569264066796790575110926588119252374517999824958480558860363540140406069430327218346307963882636307723135410150652905545038856781161964231502016355110247940424843826536868026211859006883717404811148721001678308913439063341486367075631919859013996777748059134198534084413624788856534176322253669222731403233322099270212136688850807927091602122841677177994108851983174963490118279714862390541898354164419888916807006161524178482571358502012162860898633585990680277475110364132161190958143527915416630507557716681058564441636991302535914296886620735402566302244094408800976427448012211643391035144774457690155241526051519351683025660489344088164641689350820983645008495765304756038274013218848286679716981777216225800892970735727285002059039636540741131048898935261295514610047404900430515538841663626341615390177270913135541093001676463840166250236996145129723098590778825038980448513507441601236140980147465004167611356741004803423192523381655563870493351905219015340596245041363750543122570302221188264712923440146035244451669525458978824899909794138981093348395391714518298776295311616241216619503907751121212857601094364796674625210131212339346728437134299854759634536714064250701043638399719873764078597992219734277582408259027227407442064503918791722587663654262190204753286251112915697787590181087116051664804698821036481690225370132779349397708089081427728643224358185378176337180314677501350161898526256602268417398529919238472811432366634039357421539709658595133017468179141525504917486319189516392601983428916846954933017954467097847307834211596368555225341106179975634080177121229584590265287653345246859844573119234576965532457011354777889388458602969081819816662142312661910077557323174530456945669676103488412397640364252329248108064852302219514949946861287334096027949071229654241902174056268111232770010746335493147036027480403175554113322217673015942162887172463328559891274694923310918026934812975719047314183152355836952278414349098365298076261306103702081630117419501384150396390425810007831410160114210688812152382498262983494351958313185773128442090053988976572549876939368383423515545358451767703388175684155400361912318210836167137828570706642207970457894665963979287044671588685873968357500714292891422325647303819101680640336003503110299729830860027678072994166246857399920524501963707008232350997735735164560334289998305647432009282729285790623170288978356707825797777380743345334420695629400868383654353443659836208355185787396061347524392855785671217819684890315634713826620790182660173712704493668358407033215309330649781871304404837277282828922398803277489244533749482481334564379144588986235348777194647709449278188150702908067499240692115688942734599798672645778303201971267608485642231053402525277875181389428539221152098168353346494327510356464642760755858120241933879860774320933557152146435189981865696973146712120268382718942098070199818280892795160527509513642780353475653786732445256461122731443013229228361769463105962721000267755610528135335040773642338598325369593313442253652991768876213258138364597989222593565396341385226496477404008288087707904454222266755343740428610287486808119851585772342735315451236526025466532849941946935357954358959997450627119325012390837982164446276636547944170522579219912224019898334430824357798262836664531720897416582410267732073974588156555822737471233110724063723495070388108089732156444084630663323833826195736095681889441102676338824904448153711292667761553573225588176085719153510247917283395020682159915123746773623876867317832372736572295319039720470319370449231702565955628540176785495026152866502871633515532873215990935117605462910924609734257735103417577720336063408883633116052179907136397727039319886762931404157653707946090761822509035713033774433093502443880733596343875536987460592697157417350107430209504823840236426190280644411046007759511188719519703985484309384126309516344614664715396464548801167566583119190795572902535123325168281068697093915914863867414894024941128290275324035978600659210859596076548940550410602065771639167759618491771204735500493401559412800991270461124068305707298251018901882900397001821442315593157376439236186736840975321857887580428065645459346050669384899774040848155742880900041951187798648393717728071421398405694997587590986346419769983507211990885984435098486387553541816086456653825726813462070423080469404593653006132513378165392906886239112972580575602510250298404853576217607658844282838390611993629513294582451832215396737328348729552525930885952140216348411664727564073848712354302569636363023227170842897825258745025017296730663327482143925664114812751349563108794310602606070995354309028396766535465054598431630828386178107040782197684651296841786078524018894156150856129485983815247382117176382187797599772044104638332885439144695592763467606624262824314615642629807110405461303994455873260951288968989058970305997619642671439289579177841196772401733133154467137375800914446020662020026881087368757539719873721135035838175158534191559435934395425493077736529625176563130287857673468010591244911069764822925167852357940124318702342098801100335448844338132172989657945670445600487504873073823820276910405265755472241361577376677147985077854925906010264974917096059222946711915745399317263339725892157633702925962937869763197707726132115332236833943601693843509782492084622535020968982285047288982371528996956259377098582114965661079051313693017967615080138751391816488299358100102933577570907934978671456180454597134320833848831822375406879181803976098722305092796931535794796885696080491465427168438415316717857523506075200540578118538364829470938497026204634492051479646746011328819520739280147747607550227051257340469421063285994359033463774408598263710814472322349084764318201808436295782026955750366033583038849895035685109456859222513111102183865034863044100561306023309517944599508283725959158906711467106258250207129512313341568106489290098338598267850947847165451110044381261565353453293032755973703903726469891845412457626943782541448039118970103479351873802226843215402229921999474579761488920135905726220234178521505820604775989330706897030419140380418066980812554136176477429700588354489541194147373620265768362647727149591185922267460000432464389214062165391149813612653659190452216817994134042466117056330072881514025012682026990909726066637792199070868737827369016735438254668421486648462793640059190101264434485719437237957270772148140567155463511440850475080505071755429406096404408222227872617164936510229109939346119334819910857801378031129860652876619173466845109360859045054191892838052257868482649417821428023993441976548957864104823582784690906189800320129545624788367739924701829174729798835748389907516845719572167202058967256052003556690724720882621478066174335673402595836980614120778099091740948193209563471001576891842693683931521528934538490508708469021358549658642622275776630329521039674413597218990303011292152510733216511179978334541222356971318832579169884763652976937648673036912513264377366702200732341007254969748750831096675296232331500354832596179880454036535851358187812822845936107846159577454526762170334189560682887749897064269267503211760525880753486182083453710559204550545234896118312221791083127474379838679449514018315872183484375315076467837053064262237039153256474482586759088368019462188128037035415918113502277643622878401385944607357845178982198117615904471498841581027583633560499240050179780840239027938748997786651522362381057817556953011863362793559599493804607594677344985320576502196580304244871675167755354876772324338352343960139570498712163356446653485181413227622181975053079389158142932763493257009677967675111392889319682837807712032111584139933769562030580015077843770678860824571042530311829488540056134048567158403822815865116060489929356007268547062475203721021841328281181667662176121582958661109216888567542390753541531150477796158026997500027645199623955150830196411967281789699178518363371941042629365029683562820020996975505410426979704726092922816785560147708755608501033114719854660013422024309098162487807928962813524833668989677079697878467843579410376644656313733617328352882642239154714894870832879759576466767622098426079370302365375376487545426744960725569628887478188708265921548612021583654628778098263142582268917098001357073912110903899055222716317559779180710497132412402614348525867548455713889162358644542042400894392363075196772294707910058833875571282878316023570777066798356648053855324405955153722047825331464985816153731057625921759888047384356789630062511408755918293616401967441313926697325290216896081729639580231446886733069363131081415138006512090944661104866519923739030687078059975973820154518252535650933771457134361829355414483141133722051831583891263498612918720994621432730616233811950014263191128135671481555203993579530684591527951429664681282556215761712660666868580995279600831477413136339054300393034653018760138943974713968757337287092106640293162480634311706265960461886632220511016087273869324212098598152020166958737895132059992815883819158798882355652204025132484089621932275307088781401526818793236305947516144938482536270138780277262876126522861682494312905106778306832525077665217571885250075008145601510054692583871641630949701766197615670315867394554129092788880564455385933903473820412375820058980661717317635901799894128133202670130891425248939300602948396696991460748087623804889523816770159505678033612447839138304724426674784783970141699278031014984437908471957634236809666091849411855425836023589900588861182731883687766073187803134018019682842713981303595787181553657663966244383337323981599821087317672737241461502427366755023273917375097467908809998785744125716083207131529019177082059958756258555383974943034742890931226933039663330908665170366159292872935282362265536183684379801846957076375289110999978443926565108688163359760139006262954756741510505485054729183273004449135730289971485924202227398646623645573564628260251110046501474086843024541853553183415755398396252496076654046766885442250053945487754285345979253225977650781159571270591482638799975215873548165347764855518608503667057918479015647454218114945198437596548159363377884266355072206228913894472953699580424912337336520316803681198627802813657755958249783665718345319093767514986999292577452277513045987677615057740029794036900401854441553684330866928594149835709730693229415260004499178596501828175954695032965721214512009477399287737100846927088292084850206538757237183925303528930514635267667630155950795004647928353157623134513606251827335011548671921398638773204650327945230409725050624432514416808856962913795113600250810347562889669976654801266473773121863861410916733813028505946859814635369096436930220974690508258905739035505857486423365054147034891572835671773372816014797633044841363141747383501269466285876385500882620102989007940248666257174533065299356808580059548942816749760460284516378070826848900557295018673163172885804393863225912332784768092341505874683760304176776038327575438380674237452866220925206680293718730664966642953378056735943085553853524637557079772240645862881688172800603338478440444173852597061832117095903857186428771459729820156413313882789944251018487301263192467508307420183898995749363567941270640116435089759856330026161499979037185102931572424353280693631934403590011782965526223208748828543906221406519481791804692203341021975633331164382981428295910670412585918982737320886531155626205378831107268417924354551512615416913552165711303758906747659985660204072443379469631310692793420177014554687717068297849423925076718461632996143613063157397650537785464235956496191598478619563687269877269067717726936734390175012043772239754159542783228096970790385953298479343250969677355429647585003557997005269356052774182728466041408862466357353954145460747987072212892922927952912854566105952362116492539191933736603790623462105320247077246731679839818746241857978895303136610516261632710085062512488918556781507736006573425855839626917632361769275031882458981253996539145204437553139042968524644837921370174378606909568249441292814405498487001083336806289986060018036961559453927722443639174815874880070688962149984224977937969263227870311676572497900770889610297711093677158897444680705574811927885315863412641381989463579008424628475217718638177668101232576123382981565421931969818491354942917377974896947778610622173395079030788169778154558631353269855810757555605664330285529699455749499864996732809903539398926674230359312201389872245964959062441549334735875008444887923757934778616129511171685869065837934507915766462583244854255439593128690245571406989485014527126487250370924634788662992214764992051300528393069362878315510471905742396970542730670528933020031198783768436463691881544916065874960299343941705012471273119231972328586340905253437358011931554837862071517240005753686915120822348372497180253447647656471666885565306495386187998385978699556177887780501129430754830422596072573268365459290855803003960918324559920160113831927871341530595492137340867957338724369370204465952689420269158646496905435031714837684350992010019964736555651208488642545063788927644097187769733070630000979397035793852784443393613957500140086266543368762113671727161724651489690395007887941166987366098801471954725174527561477238060437870380884576489514356976611043670828424786477687696645446636241425641707563311534198204359642318198595862381964927743437708482622858780753941578527788947602915366276440080271838970608289663228538491508271113952688232970161719506741109020114952363631065908301920723670703290293557617478222507190649116676123149280423375687429271219076044416598592531554268826655843902682165850995692817271591783868040233343939177262212306058456452197687563705453599481070382240051122835769198090304128121142430884326919176771892542473504372297816683149761558035949096288862163196707871786855523612209622337711396719109712698144137209288610403869006255842203294849450217466949973828273595952982954363290660694593717352660952136267961188373516950909865367888866959360015104523609592533921873512396801988113723276918454112332776654770744531809628054492829499378954511799276817274770460267937775487981207008109371167156665675506322988701224266244739395443716441369247261479751317553179348776039998562357007968247943798550063580421601373016510152926934099875581333193998246933312989769912560147177892985054210418269227730011984585514287696615661061823344859915842846519456583508006774165831196981678819619089863042026236173100180378319078264989614018922221602491020716686239246187632280088422088858503427543502874982024089444547186533013604477518953600772669990759398763953561372881031389272749079300975134045033897269284781015038744844296716648129440545756036507754828232562950254641644223811690137885308731918457368224996300866664911887258231880692886191720226335635934696402962788520682758559730789990255998146264832917374217164655161057420877057720573096451512813287130981514423808159359299748260748811802677840117852302586199503659250277346701185295562038752121897010919400455911514364341242886700968787817691583211240469919036498867202040874626502207850626381797141170381116230939423777766698846189277111135329842934063401210539132845459013749208176900635972081921717900516839712163700513338277869169562126903534340370007054844006280430991388621455919380890444238774232570602326166877689338981156818039495122470610215796026146744286463585440337235329725864870114287539314614733835417944581431505112996041614550172939941029225325681053348292736876779748057301136198780388907932948862593126831225580306723225719261288651920892636705562906377014908461105148805725446748901600139750714881510318717675230013396246037015341854972398905301952638455292207907707919838871308128926561726290782703609378869809445315370721508810112471117914245427274986767189373152438007946191498251229322413978909758357004325621679266389188404502994299213263309655166074727964409043458758000423768723083725235070008747177734532836661836567646496312930165871843118813879444506483139942278656910384478305816909259757408803961723212517074560256476237580676686694115112811010617889444439977124433074953603433410068447343771181654203564691847888825168445811014056808344916056824223930516353984993120312148490957611248815263810487687622864885434261099968200466066167104841642614291348722250323042594679168923418100547220303197956697030820108437588687934645539566981485792594594291893024982536280589318297725023339336215448023177480706346828761090743131303764509670931941552297196040884847964715772456580433924468705483620142293990483256129361622445629191749814413795015248324037302776047609745635557789034105383081209393474554551139096102017511188008315143067605808485139745261343391690934743433873261926565699401572902568475923080855574352208215776723886598251783976530463443528460970334323698303866389995663436382626379096449129128888860316378708609834989529061103549369846245409515021337175677051413432361881241227779290770581477123091652742586011095346986839068824473475051254463995476267223902580440977098045694586138220232083601079906620531211155094506404980030591604620030936993711430450792151938531163261233691924736135169505106234475096380888322095754990202924742252086008381714829742802902267631566551137688707917876374755456176227628242683896228956323978014137342419307627170049084273492901394470524433760621853331811233896304559356978254764830206930859703322758301017594342251443538296787507527629928948388803291769391058558299417809552897721786655009953666471518574656684068762709357641284508916178043792770463727859776649340575319677489356292735554196211781893904824244545641584952372495635274901233501064448046072358577153865344266082382264361524353956260005456585455607516453985040885060912908680832639024326549563380457351606746787806245069786272374588895339496075260738273615878641531959128146517933300862328197243233812208817712841024917934445814913393293975976589559469755455809930555769107727550770523950058885073926058739606793764723322455717894876101432820215002439176055802574730539579242039101819061568555169096872903076950031096848672657912745474903487117837806578712224960240528839560407140535664786994674863583805780785605747913072141011539207907355476355994125952264514521392541145875140238748303354567569476397644878469191350955800425172297314966319154870000568806515761262043070819203727030959027578290483784534873791377885891531851605341505411177316540824901912360445239337255726068946253957815366487817168120143949947105157704387617598640418241959161341605595060104073978614566467812633404724539578104619073222814467143494706550181050700389895941048583684887059619569104216978289534244091149904581464688747131905062654432158298647166701579399273616979262336736415495870428317385693486246083717459447611707902176924826395240817809163552797340082020812646128244977113518644765937842281254249400631057243574218916857251752944906505402812633518557068631096373303515603579585131902332862166008193568552779956525421422544270421415698801001191375031308150656350506433430438699051976427519389673894191291044369287944209378212338366314855974607535859510969795121523039068224496889229839736733152344098705545963486132272352113489461277523866415891713313497286972455370001673840116406561356063049052282017761575405722527262239973130495447272017861555024909238456897905524858701873835415234894473924824990191122211855563081693478271921143352747159769043061520764382561009809224781098427295101099695822982815548722949131208344249186557145773964479269177072491105315179023309500791741281658574814032857016313196955959378136069076034259862401857478594409077303159555348457053334081543195879341423324606768794093871648012527513766660175703921981633619650132045513183353051547018123149241895839000002644318620024674884482238387192308519639886210431311032638302430958518417597854592883702195592398108028173081984820582742854895116752284133829043995414353626470370141496557429002492140909832096275413610413960618003626891494481381751034349200338989633885243657005608872905182155555633957333902196021723766376318460212748865985743346721066759690072963672698518056705883010819995812746947722680735565034147576983970172910135544672841084555696258534444150577101971450978747580585832200247489378764721781502231361629702230812052268015172612842815504483259491727893156334121084695292477842285366218055329367081438029512291154288566722608967002479490794832012621288732339440038811161453885585318169390853082271736107039598221351736579930164319342856140607086395932680820630325584458407979350901879935949903197640575145628110139666365293758176280329948138899948360523657668362592012739355971220579377926052178852613446846223954720840933856135063284597505555279456927846792324047772370787223479814388806317863744188776934233228901179500840399181312685120224741204576785836329594185775820651884842253631594677737078804444257655092274713074368328966962468454767385143249453922998273795621764643133664139882447867630526883696127476003875196178628188820384913018472838608654517081756894592245330495676810845371852313424734839281486416947083445642014404558903549215075702327441333675675242040052697420443080485263240147790254024842810532405392952180590257120268054262445879569419308852382159395072614668871972845345261840202408234411579796047780650621933596265768754732312890128277530252937545470956934116425527722755837997793998104441991655706048092510983711947554930701719694310192726937300513856235644081072253009971824738967993544636965372725971945219822916804668357403191267958791210747703813426452837174484780070471235097880011929978472899866519392567790355843440750976948053263467289680885216897103902332794948058013720685622644742470453245815442642856008648059515615172764951279991087740211001383242321881555879032478194241316934103174617228530664515573140952168661549556718908298290749538099447367517963645824039469610527283647774710954544740523897521913144474471792298678018186399187430404760231610124109236291576603897939544802601510134133814141804214022808282109898019307408448121789894049424415948202543241271644470408649528203727172105231018185767809334834197071576455126817722112813500289312053994281842417944806680163448725400893341912663009661489384198227743698399507011123937888730127595643928262195113864766490553834877544187369748906116468104287089176838073663872480491350141635271556457574284591719206349261119139726828837017892965195906397010928088173112224004255081191968879395063987488580969004456451601817492079000994253839645936128320879981821792921361756159392599153856655687351883513978050334858783638728482168472090405348823837769617977756224452411430827412682360984271939471248565902189944218508603722490976880902964464838940845098113684679984989910870328490707552957102708665048042470959101966148932877292339508728051630058727589754256448740701837930842936988588373906666277779780393976791693238194048383602425982796990703880736272191638246559702443026800811228229713275760621808631736325244180935976640011928265029833037804600505103632480050502404333304276897738977874922822305022697394536413903651389752867402380045883021527374607321613405981120504617657127289000206243623702707870300047509696460053599458131219193615778350227227529744705304232422238652098147622652841119596731587223787092418785878779380050371576318720310496918991526296052697115684811114296131135211392043503319555912063052900183689580939509412518339658142617696218144998972353388654560207109385239405872508114870630802055136016308532801560818657678042133682828916663769226854661530351645466678819541448194806856813452701791101861875013672830238618606824068294970174092134527167486311477259803411993713034786389711160562939007118682027622352317470539530510056759086758376027653195232897239621010885003431017004698709164329431096757067798705405237134853545956531504273529360548824290016769212078715638129007908289368463106307243036458124817098406006463419163102732440588764819013751189004704383044558713577191520221370551252808030437696737698056696244837567606928144960715570898691341894431942355688398483351296126455260014315151810816038211383097161932939282561593270816034970976062673367939689624999349814348207022811508382432587776467672719492229184416090850951565098794764967164541111964224102486487698187762999314050689051644376114719910446908603992328776042622468090573193671606833329730533504151221221703637186166851127709624081602650201031480813648195152360341233556729676767545382743888187111446500416817258170269478355443895718196244955631322365673773500758485623802360811542012094558353519507745160079703945307959979374640684054230282533938865034575459304026573554001484292978234768596617521361829294642980328508385999800573815605453730980414856815178454339396623924047969847954836901370154678413880810874583582903147739096003828639151553129144688648403293783403084675837444527138555988904735814366024499845707224589354929052032290661061951640028312933423719240296572882714376123112916171994169585834778898254487677114615635650588196174423674662966967205461824900011060030260511413096835338988622214354761628920626802046243107884096198940589306018558029937985427408440078673473220631421064164110282675930163873400234682648418291398565395567547729913981394288682940735418270109826731799403713000174625742151616266028305104743287608742712461892217236502019961640129512118312925438221999011011027316104683127272725079499408546876200015198389979060810419659148265168739471198974011166534713508050740995882618010852845995432756360134656990294809065976837196030464795462082204041379059946006665735625416086830954024019727757273290709102143462233489751376025168261073718454063199848261390601396935484900012324977256750711358932157912124139891539184228783880075487413881389108937841278351859700859665394282844417233295758514094533977945274494697242093762868946984588828858992297981900118070617589170094977023644606975208832213855519966609826878171457966483633619635054699849858036247578412751182956760650017920911636886519092996236288565065790211142473115771348800578027676902338421055738807957316062977499209916112541318529077604755427811896020067484681014930151084186564301503502720216711344269271565096228919195768502863274884058639762889807285387394108001891228457237885244458624276508033828301010710270711967587362611839909446403901556481391791951607178686408459437526609338060073585660157027235255452596188781080453023655664255729933668988854057583521319959296010031132232972626107326790095212165133979868652087883225464642254801531352385006470023586115367835588123217363450634869069495578177500858025375311462922220161741749404846926141309184050641006644987735699097615979964729287705804214680833440307742044161546052941431020096003427448884077932559516240632426001349464422995500648710487948216421610255670383699424545242091767321301497773807432650460928454310021786084873857270549490147141832025668825145692467355023052074755538650966545816688154055822729147297011905070256087075364929879035456723265613107696216201076915181509427775734854029830962946570714734704190932553592986621244879366837563119921506540109108446912693892514272870693224975388971644456761225445943629509600923489890021209378724909155297535007165263327480439724254495480438647129827429598231992362689112690237345023281739019891270831595626344253373877780018990428111279078640661114845136444999382486010921515749753732975141117694546725335046323647573453585640664250708587317169537032759261096101025438097532667975559170986314962810804003329289411423387120108355940340531799903326637615628760383182217981516000773301463950512789392659713570972339545935368678102177481672939193147551111724331374585420159498144379820093906560206899825487392610632836459218299181140790431592820990379467911447269358997638624865051075484948033586397390731545617280055729425825717139297355847895947756464426203713755385062277294797994911448887446667915983254262579275637548483072224347277303599632257128422285118895884630859972975887900639770923565914070253536074010985066572073464496474482290681164788689903247943870605122981247492913115014095899963828824718855364131636328994704443934193179244755020432725103202383490469651820786168857277448666172806385967451202886552823892385950724580291199090480059092659107224468296994916952252061574093813707213427221908469321059897741449444084574022233125890264199421841267001010631880559912445108216549138327365158972381014258336121735789470391548073408822278508512199850975280863452334120814127958657146059786157222554338181697291439366216578507540513352301028698988394268699799284631219085720724271782987965667136469396927799015841498662524569704962399308291141551773139069540678980724193094063606748782257496119603603552432933204169544344531873157308853887509159946224934979991100358223955483101857081568396773258340112994220012121423907936116339365171621955833984974534469336164657262951640619742979749700634005877886260978076012620863727593625048031128933698422153677557323281628179528914407920628144436089561045407521975286238781301319893947236189870616400019037727623567246912805593306453826099326935761386338362200536778897139620829398052310756849032718261680633266329286445409883183744632512355086011872197192578016758946209310085355011930598348054233757164259025452187960065477946056321069297690109446442462406330997040303301352579264826041619077021701064821695394978525671044090644531127634854007651125622131728253107941312255592937238946299617252825217408440214451436652452285701918871454613054331684551646189487411616161950944806163559399214196994068175854294918378408711753202204698277870363597243528459682802820294712354025001231834096895441223973483329981314522658625573126915577256739618184264330557409268660649356740508619074203139008478278307634333199299169102088900214813826251767074969080175458616493841933452250150526846121760481485322456186611835111750567794122638163771920887668457315847618763122576169296068179030119872375810789665865078489401778129398775295912181448758012544728612695635192652574379727642240656161954525703396300485398044183184294185201861196478652892482686919850799441109273704347898239912999450892060213780780255676815617255854838796376165871450120157176686755618246696892802609287808718444566500817671195640394388206133642053237395188572684062290191267901672719328419897754132132364342309293250497254329455885302977401672358331591490119034087900171725237689199991444782938919791718523381812272214919442233289406284019978932345965244773494569672207118044309059433129667297926173123889032835102446195914635302842508747509178623780264925919943996294793792731983800503424688043500185003746690671697156807851474881012648734473767087912655729976374248179660595838118510498373950830080619770511741145828764483044104713941189755358560327974253986341465577376755037526646655434901105104466324944510381534257825101679279845821218456772278397967108224752184988656860074005782553577085823821112886500488915039686687402937437647216611759947826155253611805561516310623000396672785685589388276721485512245460846811539187103328389875381339508808448331976715500845420517289684020810543692237719311173732972528543386634749336739962745687199357774408247573128515000929547672826083779066024415647080322413520673795628146256292300557445665849939188710078250274457625385382980795142648784900810328073964749829093014098839653007479898781431885300109699954532804928619244605165814901940199934633264448321248327248455316422585424033767400913904018776244663834157412175647983982318016635884043218067003468915187988678203379476837525601009287716566633869740639505021228328702890621158067827109399884570997295094835986578077524820592313993814893357666481870395761180679531565236410204334978429900950237723019997722629288294015633376869292964044970157038550207621796894953346364378812595921166476451017195263421654058509219711078608187137954682608823365213287189837445844438311663192558214334213944572605853259840626202700027469668394922013647736233450152100527886537190882463074688336151735276018859236591881621507036813695324371410738234968493570960770029861208290656901254241905621285194542226785712027735002858002357360494444874157499051817057817827717037447929023838073049015284351248029892174928159887376569477109303671583584621796628776016263534531160525786016490319801303520322023275295004692499937948871236339156515352138860944350011192690295363891730079728498668128274138809305374715394513529369623323950377481046114455807571027154639030741387624518931596561232683838877438122257710617333665911112851220905368028603216359647606510481335432465604883544805527263220824958277152985462930127622377016093305408094248036127092171746587239276100448830883728734363977599697097879204897389422696768174427518638932035099047072059813629693622749634959132205787106540507504466798984812555685867205572168432866468653253037071651170692311188377746038827256467798723739560123730966801126190712631043574986558304358770263732940349258017200778309482850201977478725987271581155142519058611296765169520153519861267108378992662816708153150250487809366302908019781694587758592600037082288378288045494472962837406991202496120394582922845383107225803193637901618628524103834903260791121286745801319480406348211663503886627018180084867456784394836650239485424380461514654258831678121488538891103452255228954452214470032535582308727890562226294962267145120299737349703939935745957070858682448738142809799521628442329556577115166769392604619175204850061200191432280952334519707819581463823013957370884428504074703673022454399683796754861099359807033449900850066059270993409488803860884146937957895792862562426723638322385762893523600394778638204738904366842993111632542684638143338786652558281855720305082400817767476996280157542001910467105851389681858838631229990654996613814988703498826523782268534718318025002551402498741595381516417036389320218446655421611452888814536880899861292648926808274999805156560850686463375255792483226509679366274978348413755312625891634512557049142021102964450274535672931149807414857301424930974972988593715436285686101347294897860049771788451471934673126914507103559248826286351854091700013867261714599830645922039560382926389269119716623234649391401703097193646917959012093055803231927434405474093597828309554073257366193370313051286557237561943998284817965287917986865210963491161307244431281822091620462129530611579647650590458623403860528954419135979178898694709949534531793452905066094681563666658351105728707603007176205085118147447769504398661949496859594629053783626268324052773770242086896035249532359764485549654856726645175077965719127910624782687147462881873893521342327198482836073899923682780695025938802866384302584127195376938790519072149476642182501959953485103654800230837136364650328801786100796235360508809433040093650133066255289967687597761722615156958969032721344862457902475945438218907740316153973028988488767379791680884608572870663890690125356891603968624228607385739975133202291236025624112325790489615765565235188112983681191781718378012883267326883415471832080497640146778004366105554895497028457159179751184817467985641480398843612276862403394122125115293626389601349001299629888798744486127766764158484515122759668560263343145077030332068683096327473597220585040854968300410849661416657844026977992782137490725783475150256695034362776738211857345519299815220311109241804027894020328343085615990389222992206166559048962701292719561464952464850014476140745398928710018547493309531260068447277968450933180793328379476502170289520509396249500904448105644503373676760337054401271196832212985651348845918826215374066433129080555126412583955460201697056134279361619347036460000120762236383071659158154537283316511040716198985968835057428589075682344631576853523099478983104985902263526404138081546128328668325641935222648450424831347021280821949377801273375284199342593657416179555891923504904590781248292705397928968939242007593371541025651409273303587708135142468026824626500554205406455425786402987924716446956697291420750052307233342653716307668131268925637053816560065223354842267778818963758457489827530538113386692838488152797086350161954700123511769166726279628831678263906303311461008489357331868973804777974287536890028302813981934182852277382154278245097103330751056548051829715886841964091144476726486162607816112838193449981959938881175806757895833086786188145742162453394517838624867389947014112298372387890562686926855987463783951568682812994812288219740016935829797822405502003545974375161698764057070455073215987078660975681494702916366488829835229281290208364586901540075541768455952750310358621251013370092920090251717433951253710040242640257067460544277981228737126526141330204312079873530476244719131721788941129681831632896938834516021716927395630801695306176208536491507517050959964418558429962001400105638525543990532375728733999709260696690229226505689589388518158796388304009550732991449559952666280002169752756768018939088843180412456608249445984816186240563074618282587306441348659337080506042156293083802629856325856388578039906739597031559495444985841784074199607158703856780093101738809976938088413106351156836745446033811647067368878056693967151177387760240239132925787936585570969109731654263223976096437393538716745452841744556351447787355500669141382693369432254541567316486295380603394700123407357843834011473681752533709526581650912308101014560441108248179770765754211918544758810753237057870250486817656460801605791252907350048234969972091980582804869813100978685718569146761140591112793266197900781840110902568698704266925143798414849487421786641498056167524501858680751497749112585995933904053213299325902162737953053431743035586909291570052252705425207052727744216451017156790297972456498872870897826172994968558450585808874663058824192073434392151388191568877166502067677686323331142838743274341527072064564672807019288942668400637480133612395126030689114919607831427589686089654410892818816421874899196018990172734826671015332294253624150115222549031601827207894272106516745692626867162629250075245140054346506295877907232757779748219170465822459254207826970249822642315295522393408265267235165179155920609080731772905424581421413532212481832937517149078892059084923786936020018642918578745540968952255197209970978238741329377544520690591909262472753605258369898159224308694693127226346958552092574158302212730992488746620562572839341891980990002082686721202802731011102562552553398247516969456487803751512983622518062170538839123386343046676927027041607574102147265218097414539984528005051425242227278760759223127327669890701200669502177873767448965207564425059022723003994219014320720348714581128998993327913211316489100103320189503743586779751711501826128927897943568387040445092398608812517210056036956189769683651694361020603054270773084043715360746362686949211572462954378392713215851605127131613176868624395854103836556752755125495016388219881108264770584704231654380280179437445223311643788479469407219920817094880185991179659637458354548584131948843913034786792973573399127476633859676498308588130449543583332555222068361314460964854478987919003364999917080092367830058201050873746630525146767673750808608020497145768003966035798353260314106387097845111356522081997236940621942637914378977701739873778925602529164166530982713448752469246559088618165081028381856258657777526185381806189798295949849159575198246565038823206118019598625384101923472103026982476070316602059563718031391490011578402990118604783310200143714415102436955928745975805774933995575379733149685156094364581385771256333029828560192097354953219181770485033793116251292787697856128080723469911486286065770825720347915934335083442335087134666801352221100997222480738713263976783613152221123543524501155130963472434889511846172532953281293594081648798598506256548102678710119877849925121842219502044127916853826044028792877524957205870012220471283323438714965632268102971049468906243873909514652689096640366674877407688332440535013345421041840891712954421632470820548963983371422320959714964139740257997971418003052448815389185967883913107987321622286345547909732110368583752967728418029052020578491605027139170874161659790974311554539016114217081392520864759779216363988069339582811037638767515058909719817048286666165839455881434479556268987137528533501451029660823153540497064870043112379124330778253878387016136837570411997981208845329563784483416439224791872978144265114353969792637975605917025341126045293392845121044669299715571054622041644464624055246719035501920996787296072104806128104042503641943251160061462518065069392571280582166844302915001867661323543436143192334310998603048925376168530139543728923321552874903411776034221432243586632867744065792934311844246513660616864132284466659054716686962440392987799321319000302443799662410008899205820150540351983328321988041790388939044480947839825006571012176264144170717586380887346876357612502001576107908747590867906910933457955217718960986547671889190932344712507807378685622534189966945432236688096331520919268445382144371896610376117454813787613400319240844496605070564852750923025596868074928184144519566490139683693479103079965204950638885024243661175972135778005795415795982213083889004317773647844508723883992880901231641031891321527926223618946909134329001959426314148340178894760944074123105051292750006087624137529237302997985269472899839245352784749663359609189845574651090817732003425331662333580752324698260020300631141007067333885079130032987901549915113391034890253996360938255502713280255192940351955260727784963416506716219165551474089458995126954809753584447626530152776612752383304282639051741418860458461611113371909955947622417801236744869094904161346285046226021641746632507843425566628064745647064211079644444362585557299545758883832929546930531239840778586372635353934457084362050532451089739831367769546706016941521867053681634606177576335190772583662337437593163098235989051490819045933627984333720787535847788225652065286333183728596034564977700611270876590900494690268676213696291092422814295556663629689632668507740544378075146251916193037012782429132150976956382962674915187330014172026936449170113764023414069135048269750069378274388624301561993900213195932618760510245896425069118292444606139351842239941067937675163585694063105009244098527709821916687912236494547743033686221931366183523291824586355721457065711599431741622361074081262605682569983924978602695689690576593231089512641793528740141187021349324196565669304774636314990931093671448161702721102485992717650607284391884675021808888597787737131616680992580053552237171514268016866841734137924398982322622508001519116290209780787066356893937716413260436878801140119804908275856401092696830950429735724418970037038589715455988502659908340604821626150364586148896912260938848385285344275330400366406275696151044073283197408271793040922365590994839377692757585876414594496236915150363295235013360066395230053551351140339632855790128209629833775110040317886310783694781378918327157619256212298223217653191634655043195724951658582379985540074091785543211481662230128239241231493370861998419610865009107740615025528806882670164701036365190031714038693906694139738953925224140125594638673086679169860075567901073611888469326247797451029905957679169824308019211718989402069099181016810179511570722775528222494504110179855571913770214918256771056571224061665740403788004239992141259289058281263331905450006355095043979379202276291353296435092414155565110181870880448719315309380194231430686392574515396666073062822358271880861833035200918559481255560996133286578826209345613305090695380665847805228943195830516322961567097099927418411412169294589895429555506038213592472156419770633042230468632302961296714188321154735884219515633561567130339585852322754840604551339791981750224374022724118186785619417425732864140466289826216850167128184629428712138934629801789343412301857682119752531221933418484999174745926075326747765540495685507642878685996457611137950288379318230482026417845421184859006671159650972136784226112379255441057444224341657525572033037792326784373463076464421233847334258625390434540944812438441298215407214665217597745415859775274590672211173383123853248045943040681196978429425654481905697498304339171889575333355797735631820792505710601432603154306495686984679366928441292451721408339593734060022092648935504433478739329730247506682465071842315329767082026073430623626434074405272103535587667872853761325039772526096726804900432169998845816353973636713870850258359578431759472156362173365514606432379982345597520028944995691449523564813615737011322687042081201274104333902854017777108467495274637389210176792230036182894420939749654473416835755598166959755884441056782563638706501176731114110105220296668849683390836444029883394598980231048363710830499805539650172000497791598738363401660750756436927815072179968706945092548439857868736377851896308668704756213067102314002209029928661955828320850848383131358469989495845620122691315601342588858669229989707393718119514839387147772998858527171571417035873428064544217551663859464453783118918798638760755646866945320359829549859340415440585686878409131986113388191628993777370424163642268360232650502497080330106888692591914758001157473629769792697649121209288849780063537123283564595542289473523834075924052772857395172152940107694727118116126055186153198534548423716187915934587891140002539907508240731519103495759450934924657650987352355725677971942128277232950342317627738946709330131848989041002240774700529472428154593913471934464320000870308136960868946497109659502757622358358792421522567718219881019921519151003924385733897864132189496696432103792226193188531560156879221716097420789741665579369781310200783913561389478268840864356240880730164534340794384654473269489856691240993947188264425596112719800421936769861449590278506517467399805061835815975830457483559840027157674618533162210407404538927532761428037818293411138573654115661964998957948177181585892462953044426554141144581468113097864506226077855964112281268937954498460852749475347820109999291032728708114734046451399075495574018131762119485339896714370699890722945784374475128387184074518079548932235665718803081220688155134047548811551881556467367765759556774548005125199760524650216823589630143005914644277337596188147825095889210656739772181338000552619082741782306803289260671114200973220850048495957027011702972608078782803774508275670650612703486326960410749192779014209405873677462750567346242978877531360062305230757022631606954747001430990511495445752233391814250299453019427830711041754841480707374377035937006073918999120592719763291024702013716236872895300581770380046895586622771763636268296456689609903813011248763163773967969892239163691878742476728903599920555930287153622505428747875048387399872488595386759517872681006551432012270427558453280657656970830968979230168685522937756021354559264536903307267471514408112935555675606299785177871897375760387590975388997304309855777878694947016503232185718207928758549674359658891160062204432865325543477992277307169508675575265749476822276273526628365488886805133272304479992785474094135424117241258676370142260757679565418536309565144865729314354533551667314722975763253977626127878121630080099110782578907697355968759384260446006453218194578638777363357840259013443195718809113047492237881835401794418276685492067057680932134911789707920569244983220343958490999460135201393062195568163258903887836170606499543784530976670698854551589044272720100864213106462028663743316095230155576917464036504729585236147081299949914830434637304267660233267833768695446147668075263473402578048279056613900175158262338860757815964797086284236241337777987177217544443894072388067159555921889456352736993427575727664907663699928941671780147659809235940169670819168814102576179258582981705926240015669447936454827819245088527304283793904968804273388872059390433610117088375846737661425968508293207028760832585913182645269849448070924629625072156517636445008642424697017322780884755378871480863102690320739708306436865043246000082612138697241313302770886236502582176005579067813343637223981393984135486698314420226115516616890316094149035630058277474695228641419978893987765086920001364031826359313603515460718277144709111740984450214647053116755027409241287659679382282026540723094329817327465006556970234530279566634949057953339115601382213167420722130160626588424859048370916350887946915577883786636475933053632057335594484758817630138158980456044545727879453690144912167207839505019207371002863000235413566211366537304778338073959026425745422850655917596276537970308095535555258930852501980361788283909345809390264265558891490310289774242978385222815606110772675010304301666116761117305597774508427587542735927762019483084672776880050930059946330802087558274163558527650625025606217972988988729675183147973933021016906620948592138305959740022883007182405536741173131585191071743376299228141537291584565278027224349372059326893935795666264133518837371063892238320062628201561272753345088623539982838670234077147618619738010955210758034448976393462997619729718319722220921729936871968994768808312005106970085411548354939612243927880148648325395622088485180528937435362160662613896255779559906217231997868616372916310838256184106175446222413026533275640780899653041587249322611972536906940143687107268558065370173553724360642364755088158531061930820372691422388474565068640890029355214684622748823610092042801122515134902187200605690632950038872561459895427526378735907399866351396638453383490789023336912147565368294347963714964276622112228969382685531352398873500681406409800144635879398591943146012983661537314516531789948499003136444176826205719639075129693271002786375400802130908090022628375752327329369807904882860229216326449239399420709610072094132681789570390256101755366799925038684507380522417254612104589679736405740402585279435021544639046869221537797500557390804269645742371002490399827633148665328111730874320215313770793556302746055008500694108920821964731298103881029990075034394991183455620007394626969861049876240454577896306404738860494923294739111031768447817554445097395909779897284817053657250796784273328048673170760741712541232647507799056643138149044849146598471163420744647074202420008058518946344483976849239598998291126099624186938194780415855623538148523283935169629681773668955083587467504667305922776959906690722614650077357842617091917159402716147729895612913429292675354068117996624217242065302481895282456600764982867965032668852511872229026014436875136851301588743950421004503912499058054650918590011927337738378996940756702430748160301195588641571501976513223470093303605882988365334081876434803737526327373644731709733858982143831544970089757121016436694500229729898002823750318603593232097914648273969856928249865094743040815269592895822804151038762917239200480855815553238737242379230064837927941698472941583733088219095314993600034482183761307240508076155426177647106540825341694952171371628750885244151572833413911072339845342155185487151214020782463360038196167084143829923881249944105038953577478589904101463830821470293869023360341729904492933721746111300673694837264095872743866231490981254418522424574970451227448425769811758007724231069896403856592377071348485885213826761534053055702639734246488076565520152018976129970317220851006905475224416383342110165031716074148745174148762280023056164426222675146355842935518498020584754356496398811149201599294960546460603048880727490161726435067081469048263639879049930939447020846923830490713027706803590029954837310867279175172039791602517300775318460859351908829068690649735772430028800545073370553347349600488348922375254109486943233222017620103329248395923049787935382993388954109433671376874646703994263540086661957096320746538534431186506259651272461327799331433430441056535234598051965872844183320540022469535362998716955995942501023742166912220297772732930033008086507422577197898626444100029682805640751845295232932177809776167788662923567031828592340397196973607619862274319161013561830752254015262522683590326690711536098705157667255492024668931686355829800036187910491262376451200765943405014334556955118491507252584193217434571999940115766869572904713665323677074954423357012098608403846361369852410997224499897328037276066671596388039403939031588493712979754408050893369307268220423324792008826292011585188364832542359195220920713026386258266671527922146224100083786620349256009282528328050306693211556676198059706840826791481517762628711617338939567854464658156453154155365532468220392233937446253930485336200562532224127125090863852295877983783634678926509575184307889512382664142727168200940085714080878704208997018358628705776328747639497207587232897009779364153599349321308833230183219799550737181259866254127884369997325655232059370470580730361937283739500350081469854160508837907119796760398522395025033839481801709855039527786398475369217828730710624286051859678214328665896552751961405914331252157991967024563165872134905548484589186867646164237702129583135504698035318211737489842283534103615476826784475739684098544049891733125600067455826046259307089191204081762243063009454081410476084823613868586438070988664731195502925733277772293152280649416522532827896257534247902824912370487376360198953919008204596575297817643351153669284079507750933666405761309000401034530681637785742051825495361932376199622258490139255321255687693525169396510814084123009680034199886478506671424771853663585063691841854349082975978857973660724145757523818692930189666623624471030610611796170663370273449463184760762646852051318505479294580304790754633761527937890237768574583447615237439423892467534132497192890836879628452775945912929371035332329136925897033805733173833816001400663970473049295848527164938852775218597034638042237411196681929751174773067461108011513471443201131675686956919774102184422344093112495009792703069438326452518192114338979409721455034408132659157966316587549697490336340438020281558684613727155885423062610021004358456200539344827624854046168339625010337730091515491370421757119249643466010966365713795248217924928556898203378332348467557686890480246173822431359919171288422876678966076429884371143623494445531720837415319304548444126329127264912031065766184197481984049064744709031030782710637141017247137540059681738544529099858119165064632281416844823537422915995339083959954437801773747814325160288621687228313827592284494095444259585137013822282170740902852489343681061688917224213862384022267739403326547536786071924473391381407964975967331206171198492531193319380243784497757727677582790902226542220172353071012199031022801930503512911597955669982783984517356904149782922682855696237357567488100820210177266524208293631783791453264358767612264715713816223948026504542173012966162616483652958348808491018612435180780732224453899024412111986918524826167344719492777932434579827100218110202367482235302978119943852461174693917624502904044411575411600371158013405161009244736142887422422084719694304431128034422286977194263464727608897324368517051840437720041505720995015690141222540167316402043579360627201892889829753067933659363164917899635233962700690864420905242570840424013493062797004062319353032756451368489820622826371507551617087722761221500300637768755173063861604744617894118468136464286603338219420999970094095112240899685860388076738931254878715131084403775987143954749001979518249097371105316902104326971779992686048840168043213553619027279976919208059827832779208560772879537737894481314754163998449183501124900533355288273584332168369714985161720462746798306344951999416294848945667144354885558543309985978141898601972869119367833868483615396208914266285706919028883803053668593472922222550558399325002667235501873740721479475966938205251877602160346121669768704438441532514054167651781095100977317985255974220347760842253608850251284333176631249232826004571870344283879144406739057758395082740520588083897702039653696263428760909301227482104426527208175643298543644202705963175734508703887935348302532620070588128702324302326146139204711236754794725066265904914757330729554761082047438891830005531910155143462669864111001227319930895374647755875585473000369555873210592215059316825338689330238720830261438999313467333172555399331570984507519474463264499646734033793230177338767142704929567513220243975356753149181517083729489686594638865705782827528321271461240612173492241525255988212419154474652647338328501381463375548287673377179957879491563943611021749102491153585175807458820207368176905052149274821038257206636605550211514286484403510585523766494412636792530818334510003716156471576830877055163021020288743302277478984325481527756642195443040496341909873994669180747050160094328859319547299722693644129143169067556020099344355502211947777307956479912541971114541999336509929417782323130866614295542265472436077288409287831591222469916681957120016528201780846447168583899870257327424725595147804883323251543091852023642056179144163177626551474150147440162369179566701702910838458470637295422215630043206239695260657365717974291227086702024048411697340941276981410208843653073145917614878632058564617191250285591707630548494486955457705436009801196031363894311693251032334668491721516799264133463213070761270124543757046813915790468658875101857434526117934991648925003625446712573858626090341601365594818564043152535390861919592414116595330789590986590839562995417841064106062144327442138836705312344395313275909323838062240860686856890766258620529705679513917819732370856532416627353393791829674328615653684715726167446939424561086101588541121782533113720065019990996079887742257575542052755651162407548874641109162227933843359085210423735538007918114349648860978210181057661940976943122613530044180466414658647778676901500496451287716398712534061799400524937676786343887871343727309592187085472305069179345828587403492777895466996077651251261172171169027051877180312977746610144140687465454356231937847673472010902132902559053972186210433986504827180648021786281538895400505558077545238236329307289757739666131129517532480098070604079820736655384714401590314173552548210906351976821676454620300699088093038232996488772176393656748681963697704383148513413512338151178579494956292401429630175899631862755984292014201569897951711638358584135380126754429847636698725994296430619655707191396012713614275181692104293511011687832755774435566056370703049225769667464040240372618523269898765676814873262822613347219289360826981600624991311504855283994239414421307780491092931606284378490438704993583164642638506011376513072894792869333878312992568061947847298757584076706037606210824693962438355680856057214912686668354503877101940879398591797900398505889674428160977995750660383217321622188440636518059517187720468437947404551363088993431083374083465005388240077394163551281433327030756705604105834911480766454104006118417207308879972326373298861620536583950922931241293871780420021035932688031306172027552200466569160779307953911523994209444658319492808486131580498120601544857904119478744253565326672346804133847038135389221878177887941402896725566511220698164096137595089418119421422244840980828976561086046735393777620092261968828994362160728109675112705743299828928436545706061977040564236807090851269391514972140112757468614749621206181751666676643486263958241282277783793660427924230427112440161712086166883103167054367941866529379542781092096431805070618127112285482662932656484468788249177557755462189308649993064200109062227433183894103961715939722711209699012425371633570099786449771473854030711759699383215108072047256960929204415977728958953178002969122923420682491357020042464146145933296512985821581190778119954390245032860428077636900305196368463078710600199073569086544512671467530848422797487008808750614799051930651205407608569540300320046568359158901464630699056117917321860293149489531908418774407420889241871757984784381019795235490785108829432109350626940791916515768472309101114502436795731321324240788006275278516570389619131531781038489165103315509389117155366672719012226694909226226587847006818894694787572436781930067387722148646634721491944221136031842330128690448397804769041491669325807749923996419453040863823817117931497378245852469055477203458363096129615288530992018945248053107260555186666384294697455609567762636894076958532336914744616828202561379398352638121700427995965526002649528135209160568539574229245037924482251019826195089111604050121075890422088268522329604109503920559421353550173773083013904598347080580355115268356509558581921375165249762853684228579212573768423737196655365279525180628961793407566847460176884137944654453766527422437521341487888671015914773543776807670788294795205600058367478489373679758163298726383098973545332778971242661221317845505230790880104586841082498424253655788804251140134745009450251815949808144989093053278413292044783557604063118483799777724526849082556271282868785905180717373624269894690473253391549849028145094107608942767779282602004839832242535422666029225775088888863511537421435029605335884589523576115858436563714661068256987778667048704421717401817223285769166710185809465805472355590663008939481754144884837890335163882862876054817786261119664027506563740965868358358505405054602606607076837085002983337321184482809840412642310805057427337889351369471458081798715305779899445471176495301544565094374332025249253387718204445009973118487651501996311164157176820000141815141916022036525737555638528843092565631736943465606236546045240109291596785152551962122745306155148978591243219591321174775134616888644847096046181353139841591013135419787533547421763078237997136411418109359750622531393629149585964711612714999572851675753373341337903645090524291427178747278543233167998429813419430251442648918172713408279197170590734335753646953650466186195297814890335931978968937136640263077209548072018543051745972091703553044884947461650588772953791049057083552811698941559107572857686796072573034115107881336404565253435239784486715668539851976037478959570548049090852492736882691762997479845443953190948216143520639917844052768080454349992345203764627697490846028539953269963496956909262430734151816591146310175591590947053157373415068254821771384367140258443365504001602286654793631806717626139301252595777681995582573613548321485227475558626760795331658619369502115379370486974545668127927254489412717857204904299292557421773798467944048359573446449973280352645876745189527640360107355716133260010683486465008081440571414077278198085486656348970872593423373982700727404555096947286975456443877612209265154959442688724539348492230691094971543779355541664518342938746852036839555928452983717878419531163342369464343585084134846473222853236028958511923776515656090430057600367060242205260283776632459313160934807300229605990381119581546104414460365945715365926570159970983177386635664981526312844013038274209098083242156687769109498798757794922890748056027151795781505202557246019443100948849712721767755414644055538065641788403793691243846257714677164860654368291990890320388822326043270830478767367415025488495303125935487796877595445033483053864273420203925267763542369914988667748402669244982863292566319362549531358460756973067007930658140155794248329730832504788592156790698488753683121097786388791046448785906024313637899143448215845840792591129113280988780753941999226186717312668872727571233054263159377673186476620514260261422026156010189797213428022179992603940627682348641791052057984337038628103385114937911120627767439219308872506648427054918468169004663472652669130047518490176663379935196255454850663502721976500659394985177848342197337576497279427383827656998865551955709985926494489437684867822351001068891439549363036525399304948781431411028419158317391509395002431008880985322690257231036456483875454734320086310603434683476195276382761681280663140157468851905685922362665501637297081879379152285914961641924615455301739289099920218839859057995271007989652163702257146636089747303572069770655744755363636082290196318090586468724306212153789829967007478137623274282068362646160413189057702865409489292099284753668486636642538873927556002139272369876649563663863632254377115662008357642677485519851785587056776829190775691214215595902110308949476879244267839352962882545260210082897352876603980736398329419752860623180743174213820109955333551019652543070029231858417720052980410535981470510651558539691404491674532818408264220256520002853438660199261822961384632098034342117255746649590518696879670934749588501430271359026833019021681034305183205456944750341818631795952080693455077983846371023242881014027286220562445639239371567594170421173166503175440307754989603356494838426651579776752055059763918801101582436236275198098878220478974291978048665608881877701585590175321377646206389108447597331881790868818354287662408883481545475176415211300662391008101582384245832827947894622270988212983353281966620054363235639125745523926072878923673499983614392302831166040075495148652610270841309400019241539908295086324328783321842283123083571601892909678774188153177761161796566776367221637770170396503690817929941744393379898405320830855743964332635524116692295234269643280541120599865184789140097599127433428040473495615448762753279823490308286359579623948773479712274742472716977322958032937923774255492640082672737240598996772415712335315534214625245218472531754321360322975633600414759037301149401968968257833312738150145569559233011493598557544228270377747971844908521911554716305053858368701328645268940861547454943022658089305585252904284954934077216086492082215641467028717362260700454693023201316649704245353094114037441177561966774944780526639433082725662170981582076462650081251636231228157196518429604274175359953271062240601670734034480266067371768815599949588893674780246207045321096642781732552626730449364769342204310854854191140149991818104624177113713298362707510462148769927102603523188013046718828239718939829098125749397980492708044493022478928625810160161332950035901948542653093090850870942429601424193798826874779974381359701680292476863563962840017684424497584558972720634980783543735339789722638611671605694790515530651835014848050321375959411936802937280757029302146170029687414941320335869107709586082644186486985474905471061262217070387582264558094411394358356425314680272332534164778119489771793408479506624880729364752917692748520490674162732183040388983284434525262505198679406397939862158233790278693030670236429720245670268259826537909229917929276629664261874238811200151053699467215942581137599130645683003483097286675994380422852841220479825621015331528898782266672562963006560401362244976082929940729126427421552722389940516284079278481888368676184447823466643099079301010571364500249601799349131885881148628359187147833936862741541725148969449808770135625058938966465128734827570053861209032341241280097977288273177394209965364598876473653394309283455015012430397402260683678446832561150299255603652600290375176817766716891269254080854482900833207849474246965579972032874553184592026889476159021402848936491351911139420486118734151056380703431715807063314054975394935150676324916104817979742982778631023853533304429893804366275497927395900084804639996757951635505246067474015366726416481957342949612210007422398355807797590898715429707774398594247386809074358876470952527295686760283879781968878121299470395520495344104944045792127564442544804950062274624729412632230061679088655360015496036890794656911035851641658011998746659113470195681271002531169275274830828016015930330161357784889288662481418610678890798778336842536405997012798775471668033062623299398966735238971966095051103484925387620484332393580042387302163109296719381182086669391995044589654098655549282269999891329602704052128608303812460564288091015361901233318080965683142202167833499087283884594591709774039054011731215310367726869491678528348745286747688747000402954721930331685246223304252469427045641325391933846667158085821801921035000550546295169472425962713983965680632436063049121395209997351164758519655558245185984496688958567496955505202422853006507530614986223119852841057864406742162219183984294119682851083979553229704890635334388828671301183955158453682200591596267409760942122110260632762030842186067303125699010530061866253566270996653304887660642457250982737608696048198414014908237419150948091427726804103233695933998051637080442515595901839464654459228867279792917786086654590621637101365696961299824535755561699665364609315711224686081001174979887337622881431756024270145108037545434577047762981527870400338034351019519276196432415868551381872669756052771022626684311880976469443055365474324098274147995806657787598614507135929417075939545852225041259733250427583977794615864617155971535663461262213126868179824091765017933814544469122380878948189327776285984683251864155221565049543184127298198157754508739481444579568698600143851189968991247344255545498336038284154707581169121276945853198782695628455793403793061517421142950807959240258443136560822044849519623432322445648550419634254661910615309945548537174799971198289262001840279977545835586044531321612729549761766565029449764088620032466050588710682215370802626956135981257549959640048267706252244348141041525755723766090997251606744032472204953214229582185626304055712960294145755994696812522007276388707639922867062155219707882327694175713050827897101052989954388715659027956372856988793850125365928211315878007471367823364655581524500804298995212348629965202759116908655124463178266781171643742971375423785731956131434246539474281685544126142010697385807069256791133672056847740013193383691517157642578157768985828351376579420545273696160381240973405443004134856536453048555606772946490009392079448431516176383981109065137136711031030847796157147711339128791986467936981063036412541374722586583845649160358582275155371897115250728783809780739426942562363563614988920404501843370089009045358160454567730066544280467898827893770957953913110257906956539770738997152188437671960594193508767930666074320920912250692185751533860957707305684495176506657234567722588184444134744351377773463183252941754299384526913612656438805331661437141582002006840623370721789725340642896139483547576416182057995876613413961017257330235028168441161119544702656164917546815308366585842151290524172463829188343973848891085493135558353469409202289487415785606551673012294356602865302002069849423554026360507175524901948606907899041367502818538934535415131621302171396637136705255638914840856717446464496988471302896400968655943046766756562958278220097020026521805466870127488751471432591432931370845944471863441111220778193839622608149785945982616064948802825317761895457506231520698748405434299148574587919457561947547894012654309110075242866873575841131379332343303887070547533353952279312921167892227916333685449010397769431952026675404271072063050344389137548572456200105391723364179850364459258779064604117279335827948697844284752048638531603842654286995576343541544595914702782339157414620893619735072966800793160502512801878632427247794011077750401536940137581980350233228443656891856933668479109110045411568262114135337767794618365908027403802178450216979061413618830937676795839650425030953163515900902873343001613777764806890021816871762056120299818871522019619449627922726879576956317309357385964807383195272722213346570260045939081018778307208945212978614296563718553312919605594613254150884542197992523235096991089728508928017695453203191803787519354449126514742296315178315266619564006355031952912280879647340070901602747807581387489372324215751977467845045584890751925276028527734135158315610254106711020422232435099875862681957294840665612684152746387211777196650623764475019576708765112107469666520344268464424130835701880345032719088000997378655158218322254237761794564191381039601886186248725788493359328350568239856320775344867721456628839521240789751918622094790052070196347307482933281061830837010251975660130769525705771528552234152269062730288065835937466334455157541853116395569718363100980588836639469871362045119090217651705973816227043782867891335193990366333693326194945198584691797352588047038422589880834635195677071363227619353295601368858328989835273976202182580763566791685670575925743025205186497507365072543046096551435068555066252936126114735124303133058197844947163570462464570966296142627978399165356441590792649950871330191742910401155835967054953592632400859054468705776838236874950082680130768175214813332464705815203119916145550191528766062406594126011221372141010274284361965599606818170118737718068597813971584971447989389615064187637750989604915147075062832930596277149052492572105798958911399612913000630255130596575633605254030273351070270859552851663569051195388192666225791951585061794365156220111530845993946157538480491408455052578380129863753187311701000116110908020679110531253539102292621090848301275817342120645900757236641859967107486551127661264438465232469113289276066066563942730876486864505761330736530717945785189338891226652449771699781154044891105792521362275893294147760989235307649726597049452641020268342938156959897785331821894245955709543067843178411316052676264555659756268426039863262295244631002211625063927099709016312095474125964876097924089764953419413959273692238905937275772023164623530045023354271697596147602656162703019508795561578194095855027606360382347787184042186432777801927205728377316338381539131244638350171261054511936433720648386070650580268809145982322188732691892235495956311753108343475710882734599251200595442383406173553837005949952552027483772329734398796207481858864485097287218330446221921043891182716553187553908502987599519886466559721412584344228052861962076751097675480397195583851348667101777591113387071593015018221597434690359527432515439009685704911203474706018136491808167508094468775342506457705325070753814411470280296932256148170098538514895180733880272582441841731277422524923853269713788428790716610642023558045828418968161930633837251351155283955509774564206265101565270420684358385911357157452899992871165530070839705832667229699050620580613633144838938807789400002949236098852413748083156450955863516819105014774525826781697310664074674159673015918042491434134680390086027702003287539486608828485467071336798254496722977288427283129957439842786626912337218683449688457164178835253419887634369584126262786989273590279578620336810954857996054057949448501348567458877698288710203626750271142748883996221340278225265441750863779424210601491016735768182041713550150863890651919783891233556836306767906835355033788468191233901651859119797996565385301670389314907033569896772907241507477937853848316099748430102885495246252207332177677173552921723130169889552180507205631615853150405251998843681424370955533174020099476772356602934589902660970750754125426873628769227977012527573870618342411565237794284488606283619629974880218210146216775690179281208204512245658879757535290379844308265929895138438586391170362325068033569530004344268961206959036788769047825351880341770954841861276645887909272102823240188594035885914411601581254808801050084413512335101402661267851801099871874081486186444024204745018546126676409378693578160042886511225408494607867877335937888356604450238024921818312676376104035873755670049045882439522044941748441421656569028036235948986251057672761674714815348760620490402816035763110570401106513244067167481749448675620622676660978818244636554107563740121313642896342164805337202430200714195314503972879832731234323685229613500118908729253028420803273026373256255273848952930348393243769346354630324805059613255235588759320367259196070434156487426780809498602536070586857270582609265951707810940567068390425833973337917016232600916068612963234754362374813388570080085244381144336213753784054580820586195264815103447253858942074765676150550668699779006322972205424451714129266663253992311364826467024434692947110210673714894071952288020619546770171620377548256098380310924264183323762862638370869849695970910315707225148479338186168833134602605910894831754017890574393765384145059979487913471387510912601773598241841396889248041856332738457740367235142257490851930182799660272997693619316890757947391008597976289746537736167546625040625012842043039235658154874313300627841447839359003470982067106409363428517065423903208958657512852433433482809671154421023027380054973688943984161282202992456206165075911765783614931774891118346517979709681128666957882532717160461397609081536869562157965936608559990221969767261780592389481473498003772032285447425143762303535614279589099376951134053367135654320850007629284532671447734007677513065206597742415243696277362598939557400177326312163778498213642585779561850474075117414632603957742881798617834933834131967298590200006852038610170461701274659897589724651601779513400833236698398331217890677619552414705650276653796177046838443748238386083651212738319688913676935899832509571290393651197396258981206330384341017431772249181767408603120934940105176382236879340796316852581749105845842229264219091504194541463041925092798516234542303643736110645122627859237434573620762032985291915794478501229006924400722645772114796185124137902500146635350787654571388151383736026949015499418632194677453030525511115660735259517491876289527754797465625970383789375629211178264008255888860005422021356340719036753646437358500527451714042081780156588571473968281961084846446184043305378585080292483419815546810973958297964317177436709110055634640010539066207435212130219238097727363822977637253673492131210639658470662206860972849008412057814098487871571775742397093751261485105178191192691451642639164997646121724315404297774640595581594231956827344102495528462461354056767738562707729121701875666587626284501275078780933578357223483881308869573409591671129266351621106344804152195107660884625160642386956943271436542610897053177855473687447485306628490878228390586398550351676292074935645501793649139475612277750171421920112902328350143833488833547945125932974635612742639279194617679331347968419192700543780193433341309809493928480551698579712758508069372508803952616894581057874864005432865531927773098699372793573393565090787206933234928882322146580117115270757156006084058582002491837925529083827293958456602379625410146400748598694164756579121663185723008513366356713262450386578507682874408143162420965008261858467594939099953603690210429480720318387962698695300894117769567761171439109997720185824675102444528577521976992085144138066840794084867013803839858194100757283121048182572940760108347875835804452827801033156584727167916238296779856621623663276458931110144160683798950830623128114362429703160615250444557351089377951250966601065449079890326148931309048737142796179375254942009537285519555602317196118563380382324727936215147261577676756281107032669584521843861653171418697895390481279635486060894928200701321485919710434034985757205826263351769330872318029630820467851554931119219636037937902117031661472357205883602624060623688089466961848469580771070087429554682828818283900453876815179219429900287847496537588183399951066892385132378231827241972212413510031926736454629094551238032009991085380729119986190911500508366598403300279782557062453997308955767434095444534216415916964742698292214120203144540936742798461645928976368988757287659964792164752259036924769525066857952127384390820424153785123767984915380425946220746709193699744105431146679377838366271414188436364793560514821746078378540826343320924688445318726533146881049268474262706401568552873181835256062259027697567497749911394145730906495335588562113899041759476967370471008289050160431328935970490569203330393609870108835439221275479025135575734576827247135380308071943751084630300107864880575754002965739274255373676966077569725481150716347749199522271206717864746366500125092740721663729611043665591895656989159427647825053418790269430747928796984740889207004550898004934172170318050131706185436592553131813195142238842863287756917854232311026634320553719351932355653282046440794831018055533200586358846045167993520230291628386512140623395119185100209680119680509687295969910887033440529863951864177774073331553341622109846465802319795422360813836661652390772578788142130610206462183912103862932139510561103394232790471163049904022045311646438466406256744543170716185619183681178686790282161510385101902783102677325493095402586990815612954663381731672915890059165572751216131973232040713674833896264608730355297287038797700606988524203510467960749753747253631703994133888121550800210703717251661810181407216863844456088983333799760114680321325456750392847777205919777129027669714842667079470945106107919688132661778915413580172727661337817888777091290080858861716312508607299080056929562995789128282140049615268509289644656537250251480807156339571013029151541465340147765470308176134681937018513519779061659558252938711819726398234876616891579527011580691369860126306352653494114501611899952372760514247906391120045181416587776396534940207746677004739619471432727040826542349855121233366992334046773742851956522142312723910322553875479934591477893143955602786229309111616038994366209652484173482259968970688821298621463180448627875051534280827597791576213406188349979724599651008743245575292068028200898652433604483274627712038125987291089418629481129166092270963531891570812560701408153884641868845968582484179576789963555294580775859525781697772926227138136158461856444339934439812230009321550353169850407529151269339412917407834547716048701661033536524222909881100780215250567051075423506050497627158685375569805341816627733976240074783436539505247116180463800810624159575210808377692129016208283382510422728245594694132900723707778504817129652800398699858540950520177685894541524749625852916414750488368434707334496813243527436355020277339422618377689866327466755964230192670704977124162212789836079670298432094163652528480303453360749540253485949921932579227598941106196114353308890221164824888329175907246940878011257827050244477282022199175535639556273493026696250132092143572834190335530853766128846802721661987305244238036247252233643791607010363048923112823014704302926617811992293654076340401345274964906934485825713537790339570850671154290942115623282085864504455411173495509848968922172219174609590550229992406277891338367655331403619637099039686926086613228295752495234425822189832478886331400543810976405846331073646284242349495113117375738291954982094719175420238537189659768037186622620630463782503910678274122179868866811797768317882632700140701830345817989952620666982659935132790954316596455480588334396899003384258009038161679230763989062709816266890342318653703729916345990598129169633602252504691416473701934911034795270701421687620551042960769723608407960030264952068229125807180622159877558394749350084504283084701873536345413049864009549146218290089701067205262260965141776163947189975064002402895323879244739677097914018411546165112814469901517351340829156047742801489737239323147472238567170710195971993938530102174560676193283224895086978002010207096223665476354332466787348661457475263520182479764813354753389170134924692906925349696784984705995903159365626984428215034835700920974190673574408158559215463747388379769195013989974714538597444281604531177340722372758376844958978404126881496185636483352348648098239131125115230378161411817703705053327418938254586918598452167699359340189579765262533163379262011455482964416252783917420989347109964356945056071083894211640392914814474406720197090691720542311959724490044051714386751004478114044411993464976894286302840835959106005196080562904953275304019361387038916779890204664737748793159433325790927586295855831711259064911413187821129307313893925410862859234011877618873669895832433845687894582502237474788893992603690997149702362552633948790518715603145175085022053803531192658556740247536986548649500945220972544732290960980097379185207295084619929997441102169766388593407704710672668404970214852842706493061140413733290561764773997006577608900909158674394901896824342353616456079132355845775927695628431654397442653617579511586571246319793495302779033920587482296308863646212368102930458097603101457247315689743587187398555926308446446978245683790484311424355361746159541498680089582167133048989018164896388807375360643897971858778544699295148775384309961288256914294725565930178153580483634482961277030777013293917027346335075778190912531240291749823429719461782155627756949489829092251969316610480952429181429902850662923344300381475581952927381130284607018828234674699637422799950926483961402799379572075591235047730573186307302180236207435665726564452272247910615385695470161181560901491393675649488118843430625420372550558868653330675832822387874286476005794554797469879192492169894989138339705456582079523515270435843988945458746976444968848423715812252851900140895380311470298673508161532760939518374043083348064604283176971721305617681959046963821799626696200784292408562761615134792123506463937953608981359116326804889941967859103624944862783030285363944615339169016652334014280749515708022658889406469902212296714882405781836631112495367321779311434338394152549749844650798635805163069535992432329486835700053719379813564970571812857484456699399751916825111831236039536180260817750250299124755283773989505452542995208102080888183108059666032274318519419591080652378185321351397397220298022467852462727213707095261143896584890686242679086875712233545308227100094598923595839542123487461076148061250342385184979058781112102658105024803169428256145866305276591618847630075862533958139205413556774528374020256558643605879194872088894449645369085696219483368809432826788069281503566049122855264067841930247393094696917484886241864227304430892644925338448038209712696400866017517118258481853665952336446313556345071234884659270828937919778188640892103240062662854334003072801001023482617173566257608608533544716397634081069197090082065592974267571642016857937756345295088009946274931002005602250003602257244299469106100697981470219448983863638271370906528290053247688665558002167783875846280356836229378389349877974732178079944690648252721913641605947776125941801737130062643863960846618829510809544191936764135486694788748861077459307078280142232371735236173703385968797015260969188163080865723797878802982035420934835352706269371932452455202522534736605271795053932851491191196628606388132899483027331579632956636726327311620564180189622640096481695515909449212324446938927416995044213595717872079801671074221074628518132692282429421831633933011564400395289495955773823688558836977411577517358219092809008522440042569689403287974463922745910906426598639940179141871724566010099039072788361712857855215689958011094807468195311649364004854278862580886662870829197679161254143587397596053054370851624888655137184818922643830474590741910553819090689857716425297527660641042771068831025469734629009273851624915849672490100123324569451242163800410374021032974935150965437530882850257213477061600454149692814657266182507065942793949394227081294392570307521481931559935815220015320519848475019194412130768534470915240336925893223288805449728155424422717566530619713738529024377276564737206986310633748441885393943479823044876371926362737729309841905997628063829864387988364496927260705695551539518839235377361992051366114014157044995410351684475492089408402548469842700927262679857597593262258126394134047351780009621279053767801109324456589194380962858795590399661589690719696528934737316107010995501603281378833423433016987948619645012646324899825103884163845087442073919319848216947442993294939874866819958262209892412648495014736844098624565063576604683698660835321288358707664925150416060476415281679100122391832772114642754262222269504277349350994074892248289030646640457686434090098207069264324892959499092238352285144085472401902851424191165006765730228049583814183255627546791647997804653720498629422508930189295498799421800026896105962089401023705428348572509256094733450419224399012176966066385233989371443562669582242462316110057350268134314826336846855269831715657183622115502230375942724073172025488569278779021881295209094698415648147162182651844930986824536241181027719200710661222779793346453589439789878694324312256401804101375170533721778134448916195009302020560858976548116088346332273463780871165514801773731708587454708564196431721627469839909875418446940446294613675363137012636944231784539169244015014131914441875104753766960061428282532118601039354591618925690851604867559076579027465638305280981121885189680900335377367898827209836452075171347523570280812457903095298018705587140157117536843371337499860498218901462751644757591041443545977977825750036013980446366680608490685791858211019274512618293603627608835349937852119879025609886952315106457256771095683532840658997166507669331516997786582355799186129373077121106369261295987427796407589316824783484171040108614018963014653659655754708857818933803415757371744223594250874573194310389517960225515459334998658882325533721406256357388084171725316207026420115792243550873939265618322720359379281994150188314281342603744107330408509156800549610338783293107590971785607969198762816343138922804785582218700487674140035485196048189698003595602155266170536626219223254238355476483266305740328731512119419421487352840373660973755452005740254965466865668083450799364717091881864822920159282907466179490861018874199763031093161272895221110309268742119378970362294630683366047138421749600413299971743721271413905484807493690781944756817679449282166834444268722004106500676889069500191842074651075894887531385432649372027462899016380593285852138910835405009600887432850833323964455453411220770234875745490790563861685275419209931604363286224034452162719994537297901230725882669020556061935594999797376094049893259768617065912551524655927903276762996821687173624455044303724303370817738553148458313674398674893242524869413969159989992195298172719909993065798568173625449666148789674018702272742966195256483026353289516558846451917799181500767065335948276807331050380014609751730583032561637460739732508073453594061747026939466496681332634327718544477410473086443719389884174581260608650363004866023530241973849351152984218676244506741908068380503803491360993443667738529662787436239846568792275228405238443031588889434228982426545499718566605814741026240770420232550641208162890727373172271244323817109344163241837627621480585866371211457502911401563826224924042628119784324321574156020717877110107399168074111718733002524209527098755243611010130962694751423315176539422010667194108779761450557822315382233397402854250909374907840000038544942229618005767057582739659553795784073537600028766219349285479981529199376510431006790013579253242262326517588859512846607503628015011555006474912885494204404848672863182771012145119718131344078214107803202130299924916697546539212299735490749497058932804967876740471480440419805932636319064953913636484020372922708090918965480731689671825846631331837475734881831282892507783055789057887912230781934887860416599813161598093866116386145960684141082691397803322523381235890338103514436602068495761699173709229383212513483202438854834738782184300402809112716977532957234595939204686033338533940110659344914130286869176538257215139898964495019312331429100855649699412715495129992872945943204802610683546465928078446384692755975833142554175759487423158248101026301627228449988228617609579607977983626931055116834570043177456879695740111522529157852250469948381508774784758420994340446119455293946513511167280921647399534537686033618249625968339310405098910219445084854981272779509302187627230195788560401805218796223242525902088461401567374293770201817437655889303534378820328946452647990193656378740381162069961809902150691564629334566164718744090482346562661225818026513829447931418047627941437229539911955105720020544532016664557027967929835410258710853080095757273707079014196949278782332081245326493541707487385258213623440759836144365624894947613183853546122251332975881128394233325776503122494108164364083312827511901726224662185300880644970092245034078654339441672315266305731502591261519562698894314033673434003638598402461271586556644498549880621699431349603648168692952647873709610909138279877209765975914852562465460499301273669452293058014571433580108466769723248974786325466757668357915223512003055829396495644158365126781850515960615059356135028412228297841173029994131859130326075428437093010134725641110773692434711481233805250979028244507218391448608276406817237481717331915194160581341276913406569804645920806295095212039377877156885781090226730788884966975993955631148071055156557307809739401582100840258873505659115428039922019526345233120352736344823083824200662035352548468706343696916657740057726591495496195580866978611676332303010855127451971040749085552422622782038754857466829356937784028631853935831208675603057227175272583011816949353438788848424988444495843267649786816042133973805776605757828994016169544746173172415658774879285847727573387107469916188713112367972421825943702967827086270182949908973882392010833970899774725156844093031679213373635500175683314881296091061568539043235350917320213394054015468834391152822951973718877512286189844441195654212559574524031835738574323175244033060363748049172207956703449872974026741864026468055369865384943306724399161842476306445829806533242657007633351515539376993866349115696689615989806801999223624816283885136657058635015883987360349497847137654894669349446968702589097953331184665882403489343174680963462934403389530930791932425422142229916852743830649519817626033883792882994494496960434059407766068643707129842285582055026597615656180451629443816918135627129052283114596277200780961745710623563938510143980348870744373973058759854203158226439955815250057995550766603872231665269856588253627212829220138118484728557718037815270564381035966082467832336116054064638446292190455555975009690992684145118554089847490802839738040240307668527170015031158014790983982614233322654761004675255290397280691352748756432049285285743970834507628548978263580347856584471142309071772330995672639180923614302665111728467633462755872900146058381964572205090510408014288604674440712775779272210917859918396921768644104302446522714656491459704987588719459944595403072548852149093526209301233599846712835314669594334401429818646055900589117935166834363042822527493995014661679905904574262999251090864798064585261037404826032344028721239935871652275672900202046591360903078741692364940865811261548502861973271569276776261945414205267954370270437726216212750126052109083840582172672860405211117881190536989004313548764160558204473608876203860365435738348348967699652384738368152343244439200762991512505667134474391546050722837595897178588079711192672530368465107822724235628430928911157087891341850960706368757106695443318843520834905283506123507136961102841282976427937422458344936088441725276483074744542220645997157146794393429552520026434846522504809795772719126902170553942996545800713952167977275357292202792128786423605114028681953682076712924329964880006822789328139627169566667221231201369265111184351573785421165855301627572487358754699212655176545899516075698067274345054055659204432224781076893989102255482458402351070649461516289525598168635098681922904031221120635556120240322199972348932853232553861636312300555260891802395310084562410119984186236209020448096004321215902457448114500903445204024714823743418155803218101954588642396315363217298322944847605508268738666184092131186434721037374059596191257233648675834792414645599989668890601790073319336504316775494178144902042023328693543413820245134586400929283026930727044017238071838596042505872049489303331827371323473972743908056109193991531506551514150721307481194523054952888246479423345876080826112767758612938708770442508618318761047570380512375635854346164562283347953099381504923356617517749041845269351243523418746493191844513732754319793522042758753798228878791494598377371859878118406746278797527553753732314222321596109047791666792154269830737502863682895959319015831631069709239137240027186836567144166028376398253088866940753562046804866897245762409875794694278387994485225603810660554881508208367765023913131112899979728794051362618517468874231501140839670277513554528031860890113647727755000912789735378482004283691351355477578669122815519599208430848571791234710890072075154945860173386242564387510231279699425874509801862173944261316362499981428850496927270613050838839356269008875546244640442106263398771835519245234411758513453881780284039290214166845840964491954828123842472449254974481752025390582602456230839015514523105002254160755594852074512624470888953927579913950065019933056632054765228026059773062708231078423684284287084679080095865585068623145958826267286532585525441692814986286332709870135732220764990020649000966633071134477887863653800460113525469254736012781420023528019929417363128854905394484393202624460846806150427084889427441048781835215198671875018168831296035011474130011962013575805318987783023840092792000530001979946529987281981701485350671454185507043354281456610669514340348505387232509900810830295135750923401484671597420534416707267881235975279465619145388015728232681264387503368901495888361498308036629892912539882615663492555308412553541527470125468106291450642807476390691030336784490405298686056785898445621730336572326701393867501956085745061068391014629960772201462179175845062346263411460070081802418824689828431033816567736362789445749536961525033110938285620470174779677696714794403056348128004980545482209021168957882111216260923229694935483678191361553755583847207710331789306974155666246197645003669123291073806522727238185928519765489783003536826747443464256326089479194415477478046976553279030296980579434972092460265956107216345709586659927056167779709076002357426161922477214859975171540462528547157193002823215726153826878848176386424868228351525511667980708981962824061898859734825727471507295306110688452820372452789713316309092395638915686527262272418655763815132262396418225530316534914007949961875083509256805841631328566306552453722069770395729060014515645769005272392444504675377127713986159133650930526601844976556750979622782742287228705304812681362671002171250316173244212014046496277497518087582932316936912948399078814270932757083074747742754647962424463366441499337715408291495512003728520674419061769187112090806955710669011229225400670661964360567985925823764107067345428025545488988053856664009596021976399201560759328976235987290871119208176531086860569267176550448248314001658299555195704157875386365539680919810033115333794882473152840800672262790332691234148515869641811996511002266363262565794550027839076102318280909037054874890435058122014456053154347164661867242725928718354194009081201068145251854492589303367032752678184564102425742800093161762048877918555120335643173016636497238566524760221340117822169637350121296654899282565047676260525525649374930157684998798553517485846774253069425767126861493326955965015854458366273985353612741594334779903295713585051361211263917133720462100713106775713843065409462060097710422264384080928516132296227235947697364245409900206173220435992221081367831294368628804349006953253917830719543370525113587159830043623161766881979707417991640604595170284235895856032761461674638158053387045345122992925300021140367019701219141061805219189638959181582323836417662151318545791686481904814446376472640348360967029221075058460985144976022936467381786058983437487148580598224680484937541677937050470038118585890668893716964066841761792130928244658869593757000751869141817211164544779217504547277791639705118309146565738660897300961410980148691415404774280967349345243070892564351996351593392068966188574283161638603252969491580506997048194458483728724479922107808029532150454019179371988510464705405256140431376929725191601655532423928678287699056502237564612567229105055358699515978055425798514453031882173326844512885858177474489758598159104270919738424775755312575438632044524297951860381706535136425332345979217652218891417954101456114587670058189544626398825699031398079380590854087974405023219124100224380143031372776574417395149350590688262077485663544580833366760981863662779623848442267008215053265523311634536815133816902999921682685691166695356039978161492603137155694060339965405643336233420512298851358652148742459203069509390944201365344041642629673582060371346199152302416104729785202079329241515296820093781265116173398799116396757764102629620558829201241643550183368757362713421128815615517441431856255153922142366064111379614513812589903253962928273586989637370852369421159185147710085336812211077040324950612744122973923403013231634593883692331869967468592231548809727677423265991887681547152358047848252330835438776876624203490656827245015683214524261727982965657391355372732642507757781381793878737651767141951294066250354550316956861670052622182316332335271501530337650117307910612773859698904448078329115580427807654728279788163435615987717484498245133214357848563407579278273909997021108737614103480619218111416484195335436018374254614078379302822409265139013791437244455832422046707178265225575062566436150371266885111665065092873730586495311890211925825179623881290659875053750208599917504032613887041464431168667309581311886056637077668514480858294700389584993200329965674490820402826850065833760879768956039684915330304530812516332158484556360922517661494641782758302639770600236584657635262158536258650928935783852354466762222151949559270631101859292464779160999528235559688373248854518249218713551563008404102751208765335987327384203199142252156849243201015756859265628956700108762749012678708486404221978335669897152230567271120743027785010429851266611594845641311574620004217381906232354713785717354075223004223855267350337734763872916500344622662573870276650755430344725222920153662675398752458930060836087855399067719113744529434806092486747061788118300398303983807509468371803068207836857652846396105293837651145826389308367632589103589053824172211715654447326049869841376397773101982623019869704629898062607610035550319545784530313945219382183083198081756971938139532688171271520002326682132448629393043798367363507142909984580025696341937432373430307303687353042489957976773095167958398060353506225857168622043044881265768852382284052624394844216190872351593112520342978975276919141598981282023386216795895642738284320455278129753171216786801974309680520993669210702906549791944957665205298045902675522440524135734600844521537023242109952167835757898585723265251803830542271684764936219859653041807687746501310037199792872870798935879983856154032250188807388548365403890414434555316622437616211694747608448216325214185138328681369209796948531962918091773195260771259294345599181213325335789070500729365944794710843762887839573157089699689565463902696999518453063577034756708842423048949924027180769355871856060166087939974105772139424472716220504529407141877071994564794491977331162573066956204031238210853068161226918388862222033998939143584444415012466955857268900359151961726994749495741408431331958855584414957926979016701726253383800303513910770451132790883973937669715771784762846568051231986949199577183164182867049881258141391982340775065380288772573235133590927532775952145127865029163575553413119099011051257707833859969043514672321191856743263113777289663380203493609584681724156019996228981440159802758451642214947776168947159539580572933174668404856432229435702646208467596848163297945792297324880329974169324879334004928829980792919105920455412852611031080827446010153125803278048100254998775978156282704142581469120540702894790400027260075624019302543811598919168972046853798646861744741881050848401067661053556318711456023755885396757691196399861148954212127751146722877781394691896774793338479631489167297052953453787399849943536846369389792142979552630533620856637736422965141383949653189565689853020776548365556680275727855776913380112540823394179517990488248546250472087386402395293263709504403940692579484293161728984647869400516721730127553557611527947699350318167786266952992532059597836409100795614037095619293670605800253883925600163848628298308406543772071279210857777628109328217333341640021579081064083673516121363954874301741437839116844375241701127507428331022776974247214307998135712860637704222152585688863825657937803907934723638255246465407296918700652824070162690524707208600487052730758829280601757368934093704526469348891201807900342260340285600509988924591126168568802258823797502743528614347483635330426022521358076653814112966842414209314735244724582438111098303007357200236378201712683879568988507340726134732623160273639821980207524316978415838988259761218565057292887686846559070160346782467930065156352455781807646585257782879798075104153593076668321507666291599186836532869721472872765841956605616102885713741084521127131121714060644763009060250778914063160068899739006030724309945003058636381011663882279183826340187488645550976304147504737302620918603454501263563437915387483634139518107054361340264018799223907211389239271829902013667611092034909552482552372086654233301741773480941672237929741943290065185521618041140120522561413766929202985888948612097161235743056993532286059370650966402958053843002438458889274484300569956358666026391239623055824366029398083212540200354760591815432331013593400048516255839568412005830175824631898489710695341803125347822292473476205018809814061980620708333561100901041297673879541898012835664378515666855464711435510573749929351733789502867629073560504222491842146679290928378382462550044892991475527299296647869409451251527542974481884535758016439073106630581651367812342694264305987600709147452645838230007603779891726222222435267766085919595738368816459416685160238482186116300128036342038066747282449988290762374994353308715442503448146605769662699427376991679265282614723737554103920860479257025742627379612121056505562228787863934294267385269646244445629244315406338942810566097740312556868086181121895518359674622259293839994695805770914309701216889809782499526966608346446587233252716581048618984797190122557790642456966542699110038342193884793326892960965124050439777377246398666573939077222908320879167177079280209740706606499395152230384173143216265563511633815558293028138672426440124351378366234026472805350706368153602706464237993503100672265361883799612284741525366373566089070361221512283083607658171272395904517673765602511218736970717995115764176344576674398805374200657291793049550995139542846048052176545619978007978512945993671797308399291293458213841842544403683499214591737842866173800360406322356139222546774828931268637290139070265374779163366618053308312846375772836250615203681461958343763529090720832074908619376109810848035447087600108799330710721836437289212940128761273553461849246718796229182060418707571375377690742483628689267619529305263685665490367682246353077191295661863763408946815865009861114209760735067581052342245839061792010905232254786866356868963066862046184592522792955018448033836931351824639944546775800589844590317729533378284514795236764695001510736079079569335959441313254306899815069926663103333415838057919537448266545839388759111255313476557325203266635525729228363826304857854383926606923377112609848998867541532708897555935646327363834897384156289891335289526713203220013725469598933042548412011308943610780390922741771278936399146426898956864328555969919258131380652338874890080554280638034431642550138951235814563897466299503007359779385502821014274366797219334132279971910875764208486458842903094643253876131221931245743140610623193243591251976306702491064368730395787320331083196481939632122762233319718579284553213977663769623956020086035109809930243081624347773453248320256139377936391286918268014054317284371752679892643638870489772422320480616420970406696178706627636109684468580186175680776747884431650823984116973211690464616318516838263350064506442791383949799841105299430690563465843956463044995321921695442067197793813353067214676883826487092606222883862821549825938833675169979995227247710764466255983727227940305700291367964108696893307730034435751187724254738479078550718233217717816881618480850138368890897245300032670225214047476826912853949561826651977700232623207765469768362729238012180149442962620075795385529303986689585324147442076033609043332961380031961611847974274039240481382673534374670022021997914998979065484116977846395538991513349098169247802428343462244720792197946554366741150700423868635892935522874201224670308028448940990643261961435212961496144422216334406300895193670293656484093882272666950967994162734869296156201384364510131064500017077829691039441817346377757590449736054321490996251859249981631430597017202051920260330968949675294456202351745154763237749311253220903378366823282174280726503781786423847188756959471287531051055376446513835278341866510034406758373082046460483312777538303402488740407289045380829774567246802132534506479997172059718939805708384518902802705653062587912396962524174130401151353545535844210133525971091683779556885765115348717310977511845311726260855143683792456164309788575612152779878100431421881571676205621726192415604157019681210863445147307004048989604045595343860199069954778339270184404376411769436238330650846310574307827545257678585317417875239138879564648484834856943409838519247096567226232437050625082898027575137272797394619845807782510090338546676677977247647172207744672474330314645163118124546983216140726720601377406877848153801337945395004778005662832671454168648946016084935716589587565288523545184929599706210077327981411079378239548279244663676176736453777209209610836291940275670685953830814598449175835741303480750889600135965327445188661211154414726413292478479950595121992509994088025469757104471245390585125013266778288689373366896207762530920708542391887326531891492454468712325632651620692723758090343025094744774524753218192367204740721412068489127088628134690271322945597522737065869658900732019303804404593006028149110085170980113963419364475218316413873876743389955095103438469979055222315736324627809326529440506324275795210791671514067263318240921816332614885096348510319997738812605809150046197610704582761308172208984906101673695482935706795464284368242132973697890563261373276896546918151961377624473986640671627730741704344984919996769599499534074599367637266468410825542412567919299609132240693764471307539219855333182472789422205377896912412310814786494760704433115452915336814261358982484436213941335877261965588005544727713555986252058887986827668303008347882929830705063788930441499537040285172786681750210806557186334191960252012880682689277457368586950125566531605015226581350657242110059651184658027440234575795998671623677213496231991863724446501970707728725345317673640888324362258479504613176307383581713029365318570157177756842996664280497763281125755382084298520402552036253797622011840328663273338931716282904210118922408091095255410804738564461961271186052413985433038871275849244004157474685600398928607358293457669036184173437337518134252901256196641298975976687395038618165103517384024128709233903370586088058421541711876615413446799051664980411633993837751036600944269004965421090185476410298589041054642640120399975472857829185556309105463519151409582848527534798003450460626769501768936311119682732144209635085302893872508853485941912425183976655316934437451889725637433369291837357535343464876490820002637612846680927385268397784604476626869209555241200386815674781637002430721205455040650044510599703813252737844006976817862154299555018135417948858601350600017549407833133661823359300056046603670503175570737374277266144596028298062420915443390424540217351240946858127648753803956613624044827546803411640113909363764651482364488963017840418648909262806006961968956057154903785616124812972025984857160914211006984886981572531326817634977089547885522089911829052958608261943171121447573188848286384229309892857315884810202975483140177696687265878577374723344385131187653434431026566775219812438125125427125667794090785510602522181288047591259046710818776896676106076004942012188853180629501501877309092767756193700630740358350467173585074722193298809121439438728828445363947008862731633373657228492019199369400733132714306493482235458655864878179077684527944815281908815537451228864300419701185944676618569771340302465343115915955631138429253718719485477058052945813916380752479971917056011985490193656643081370902920412837555642663268654190180400442439699798115481163777268759960549965446299366244731563379876476195391414079573892553902617451949355866452903819643847727463872457373919825363370910106554631226412152665161763096122550501090431382973968648841349758427573432831709551463005831945184260356521919071747177189259784004902488897656602350063379511764787511305549618096110269132753532050637466187878624865503343581164715516184957263710574345253648179998306379583646450057611637654713045118501777095249395552633379487910505810229111085562321081588157601722031973583220843819614996597364945288258671776927753855204753102639430800262348061513028080820900082062208396344928519126157317352849504469195630177021907347897602894390809941295401413957651198770507956414240883837962002788863385634551589031527825797711493065753047566446229867114883170241744331545640187568720946278668963893365366204486838394046731634021977092992697270250411886426782192675568629742696137090617168233369643099248061893053983985209680728227328179585314942594176019018620232042621161237620429797977593819065900798754117436413816949172105427872527853760306461194119526691577968306591036606282275287087668166225870638563117676533712141946835204144091127008923893629327373913319885352866002778972521810214804322239713182122562229854130322208514725377331598976651633844323289453824410636245223647351525003209223179512279280747163857022956847309091631916207815462070106827769962800860319657364319680395773747055793721979062743668019072349016932046719913666703727496020736682053414610597078603659284904439480415304833980948460630282908848361341662641363873064103741204177819124457903465203104719136795087847060811859082539629553113748609230575008132174548108148889943736463314248303946249513843792920802049414955838979075649124987831855724002638496516860034677347530506837182911118644657216078643631636843940766391950662550778095794138409952230982517548003566877828096930846187614809083795947448054559093342438841732100005484595469271550536833956009476002450099741265586692395378521154601353684267814732519570403080314462666041872208349636089591495552796743922592479838972410919374085271028550689671619301776830843174865644973866612987506909514780036403320987509013529135026677003628956457713319196566978588345860737218141557102069723981856876389558096451223249772696249756336503537173964950031883757114289994876636414970198136300212775321338865728760799179911262181731315269203709051357155835249769433472188545685998468088401927776764535897954603481597326004100949928012416824595241123672589276392021473733487024162796605570655084717444436950677839874442953522154554089915666201767780892168234356965443215466567829358969150595494786294678146695681352290915048270329496421893569875429526722561005763113147003175752414982101331471841899992118742260448243611112648789056970565073128062905358354918481681906791513766770841636862488151026289131005992885259309028592846644856791603562065199516039093897299246261778897846188488294978438221608461467914816756425656707450845458928610419886825219862482600261646635038925416856626945547070938773790001414022668728213783933683768259957444893678168067959088345266587514443670201054280987682164230928088914616443502650412623734978712531471378425459585130751474034374443193465207618153691905862735195050063535834262264545990475940628239928205748980423915677914403702506044596297244628613613795524294806197479837374064096305211852854588844058794629631846520705751726292296222040153210319927152317385927581921648804751600910388553438657738040327346631222748422727381346574083088117270037568493908554101865301323795530188156913238042806992682180155844335117153158237055036874529274351009681114982148422607317947369818676490180331400550220842026633251668134046290429506467829148969303162254368676845699843006634807099341060616513538864600714479484131522592025978567354693822712473585640919872089121933633493810603707727955427377045118254646928442409131376277390588101855213058188243956902727290937998483774556532140790251285729666354200103981914737680815074432393042848429168190562608061103058401227853677331478983027229423230212151882521423743205241177766684549828209148116262189252354873838974727460895804560856163178751451927009769258864304747341789284772397911944421332949932157204180280641820551724195434308786248498726292221526766758423700107755839432782270753243162919596790817092477647448438171348801948290972173359703938466132277042933793986900820475857869405908729925571739571550884875899331664110005668077579073799045994845073879254111314004249136843662222799747158321663019714045698574700446487572775856449812850613066632373813817757278283538426796542109981028405321050509775420958827420785445115110619804849499528821367303391859473760336683345395531555615997280533046120493918258283233472558656780119129079367685798047298610287019381901376065520557247204465435069199977478136683513490539182719574164025580709830549919265330144818321005518332326782453799913356181757505952322939929614348440486508063857164126022405455335848818437548228778214213945235236609649679826315733260358912574349866140005748113298163995714571632340854100146163930611227636357579707707460646962251498854963561785585281450332153371670704623521824702695015700023678384285441923914128558489708137710856273136629940443301519992719344656615936168655282252795325016529980750976833306295546043015082212497452721320602987371667935415780781101593699422290461726762962055769223176396512147782285215182985767221715268174642140232841671929255096964519216435453350498889021155329494934543451525775030222199389129026065828307533951033267110065527148539666737520867306404530575333226269759706256536733328843028717886719096909200978571025108665439843474697426606686917592763175421811010218097247411831987433949785521875344119349921228365809557343446173695335172205956963295305670208099548313310756585754873241655567848318566111829991433035087971319988406202064817313286609551455478819334512702079088925879162537686433988347689401465887404432163349041776023853556997920183773583343703805291382725618789108913468578024130997440552647411219814476574261162816351139139768027367238981606324233875266007049156502021166576093042866358493559702037534111655187815672489637837284999113224465699037842042092258371873757887472075438265484011378166038376006946495772556939717440752963749949500014963886455221816583331642322161642527696968223258973983395426295477611114598777124847455119168104508637910300636175212934173693977840635526631504678575990679645953636145972416205347254020339200838283893110332706769038359804698690028212394834453196464593860993246260561911319960452545962394893302534435917786687488793659154002579715661222703591575928277695959286774689283522198977543040442887461547617444589353356956493348292151208870484058556912604898134964783559605815587751790513855340892005521765729764101594152446871929041910190266252591445276822643019585158472211224557127084980114232202008439564931076932941656111480793626321064130907553855143137572529423935801543791082418948776740904652269590624188411972330522114650459121404036785165628776247366478707840540637226828027969658496284777702304895442838033060076684066589995575172334330050756854040618295810478472122274347148348981898627260392544600827182345661236479003327360512482722537157780874814336024668658277637948543932534915337322920045421220292621218359008915414662845781759439502372287892425095922044863039605091028173997944118228232654730527490718698540578714262464631470441970812799872218586995931984296093512553440759744007743046657230738183921190226307543120924736760099876601873848801355405252789491729746449314245498223483709585442028621442779314855647053465748290795422058761622206812326710640308191888226849221017203567815499657670255173242999216054036530362738434999753949363844236488308892757309886969375279182286354147060214085969103140866504303672222337901003926737162491365040245000538715327627046887851795456538160557284134760124138589053021892869135145833261135231785945931030855792040445993127574970221862669740832818655105517379465071565168140340953961779401126537519500286322139299069225436627624441296843629154497691703871103373327054292815575075089039181908259281986722291863084312653976230165445043152799943188290519609135811653456884490658397925685353572298773520202144003014667722282522442087442718201216905771171656223971418498723000449779836963420474587476802701101295711762063097018396032949304817313490356399458844538009288114006700389886094211694022934292415802667139486600041512907747096299261237892183827620600866771248095042048303828774789422477723671464950282833012918969003436989487210882953810984903027997622603768897319585971554505218378731973472017348942093677638680408580479075494259091035754823660945920318370005595629132518689597701216258227354927454980177091018254716928362488381445795909793939896867088965918074607932596969717236336462271515384458670077024197269160729942557240744168583974550802086697370874295562075131026888755363844086926493995729181922408364391701092006922904332236237622179277172257030806828860846371515681234218447509803039798319791274657846459586357600998201051187835598703210385781113853064948407710541234000769506041286634464563106326252844517892946155250859560829065575540622061933094339698501230965715890378636533707134118703479196804214903452250230225361900196620758643712786168889825322529393049820624029367481203108066929245173990256901907977637231060093645885255055604324041373115311953237428344796725967299228204501193745227042327291135062058795732067901713324693966056199318202775253450891561028984801948543097848344385129030327855415538840903409886514092463904900535018230250094741264142391377317216542874078742795888392555128760363448877825367185759941198248533894022532655705314918629233062293841110899999163384332556788368001181931972319739498960244688162746927372017312837165872642832974748188381140189135543639680042779142665578230446607157060553811099893166447663775200947818193442642051061902450329088078840638283983147147074955435422609637085218814579969810356618565743022782885972168643349671806894880953057392278442884734993897743928471286640932711025319279277804700137831749682746762082182999448614053502015538478426130894640983950037708764769130750242747253570901378759312999056476472198385665831275895717442507008109571066389980624850724201745382304384261457372037439831175225256522867504076804158102162967366440960779991552560211151629026071483776988375564607482461791821093133472553661501864598414136976612055245188323777131984606075648317621949801167128546404290606915463741871761912386208725305854607330706451469788656035843065271358361723813424313000675132171646397800780574329508776889907629845007271541958025090916907581473837082436861400860409993649946779638685441098506201074043244908664742439884897123889912391287438211393880600105194342386245159106183416725315450911162927960936788975526712287345283539690532385249470164296989982091068925048157026342111995249315729203629945325996012356695029293604043299123209141045740373747267583864872108001891355636019658217992880883214725039226768022212236277442028144320285130027246357692135680905013834417847881993893980451674778513070086364699955328570752963984329355041930261855989060192264413895681686647593500192502337069879239730162279988708704226364445646487797007307951032094891677799459253422403813869132751278277892536808296382862462237001882999795623596262187754395183204690184929477553576932268565796816768384846953185602349486120919893824699036570223647230656209221320588996217659708234652682398712487005818470746743378978540685314339194853630412201679174262675346626623458305760480806022347884175456037493212160836006913474693142955944688371566813119008864375769254241581436326505342971315743464036453999922986933621956938983031515122164518349024751082894964420968947906533474150243813899690892892274591328983927934170225420670396802396134993068257223671810999291893948459950427315149629656425991430913392626344626691105318334408184030043031071999544608898628824951133056073499372312148791352721899285831234623874642674365121490977704429687558045193113870736970511895239679266316739856992335329740422482688157341299661246099038067336470732484140566402863226913783223403812045455809875648889646048475788332089559621534145564476131845050762853083759130146295829436277938080584880573443489674519514406198690044257546131319092144962378439881730198836579231940265743378382875746056596878703738574652309337722091025311834891755671744277096187377538933949268568193492645927198790285352804493038387196581113552137032984158848101181414810227448263792747027929367745968898460950169542377086742018094364444027009236864181024923971402831078703131940696451888839192529959768701547247291151645259603667826985187480427602839450903681583787893281923786519567271331039348875395892024495870540205281308237626022599263825941597822613279636080340318214820763375988032225946810491128353499019403670788415775263716954140982743909027609640886532968187870870009251697531946827620120741849140088034356313685206721689661018447117395658251994912697296538280337670110563775999620898181850064620897829405822050050725694767921924464868605300944982079107985312457389594983396048768201654822826037977268862617781347614813071355567885960812093176147199713053580480840774969496687870984460484963216186061092378462069886554084946727574378604058578270688707443799164111246304349182634076443778886053858901590470114024025313479694904933092236060977463775789306160545719955910131416972257586137238918137526416048895747357299730787785730502413774919508408980662223922475629666876578642096196890633957205638576353984534818012769695755835425172164031912031976499941790133121735549056904983716143762175285951199531293644858846963340697364017878019442997945932907087435845749869100213872621365363578944959186173662702896713936983619630969629413287596043849340570200483977162032095624735517506883297697161347412109920883912170164021035635735676798403185681744579854029398472673947000301461374068898023638084239805586213918839751135010693990163497392743527781991774222867206313648189428073832296593040746835663177122704600024831897669519941557237835724803989562357361523821470646168839527221649634431609387205856829095063344592536611969342438187109706816650480029155481777126197109395889116341540889055931367082244708629786353297593851814093578458871228164324627645166114630130055823172208145510885992199990006641391115617789339132367725314859587385152966806489977194094196469654323679934839881100293315799196674700873728229674035789786865728840627726916927941422152184593592767406750418354097287730701120076017234637602477702560967145595425978825585121892316479461869885780884674777017744767317481860185422724091247880498557093856966967117849995900518222349122324685039180379887914473805552558159055034331379962548058589423474006729568016521946188403719021239458301042553494536447901728507943811044521829266576842842950393350998335211306692317386652520477338030184745530530928279726720554034179599629490877436344652213751418170515843897144780497216362312643657341330593334757085041755828061455900422084399004926474667371750390746016159715983859928909147208645586949353372563231494594333554099836860941311193361756116590982213968378790469610328093518732043555363617869749710850391886388319885841139990558440832301595409847181520011263756462269528815434066272661212369089027171663452973254987000366077644117893980217203676235849006145400882721314730566156544014944260684107641029309313808204611246259609197586678506077624071522047205669479028221421526809221307615952814951760951713976025779043980286100596414482484276257426746974676222203961449587077424433167429505340150114270992001444980879141330593110933538513062860559385353497221625380529574285361897139024616597626004032907853455505797546602036211685244307032960849098536253583521878108971121821458816033691197289054609520756042389733452612412352567691346626553743904841584242037539168398040039551236202214372969607873541189052202708401717274043098063896628039776179318605122170790596342120321377060143842170194715955805120465545313354826877438574920301321579857995200723980790862494770623124055437318574401739952199946362754219169245231617892487727864002533148170251599095522949845571352432512090416918942346735561710946135374529843700318324530733461618087909374962127657151648027328688149001779003843719621402249663437575783903691428115264627934548521246859121250340410230416325773203956943259651047728325125036077821716589299126792979469644739649828724644177446080593294725605323206763279116118862430904935102916361647816516617076802589844488012745140137335857479649227231291098981506266171479611408373641353977338935038930652722438076366239643857427787854108263671494026296157312640714060838165581260547553339420784190399129863011166094612617899259465228784439457618703055491304007231799989364588007011233382974582973665906622043398972481453726542904445981574531294984117729361871742379833858650045391166447840252369603737973647639007469294204734982649237411590756742928213741827004628483026668673055651008649847509385614331708764326668206648357909532698379925896863741324759861849190826435625718711889120925004659596826856790163971515157533601552646422324039810212392521570463787866896716954086620556347122433447995028946066757484878744275988725408239724905966814098246436730039594834034470214640675987637058135729192308799804955944560489674242667596324039886409814663277662532263082055249254975106944799175543409338834950441297214157956786066633414681481915858216353303408792678255432378396016048049197838363961968718545354638054556018021213768613542289033345553132638541333476946087683214391449811663026359202088936528137926781996618800236840756833985021422024625734705622644381129229587514141390057763368615041870875363522285328446731956761021709088677206309677617903678407796322821236476591537646815990520248832822245256333028259171717523803452221583153494832143424349521199752591582455451491225787587962312679604154288924865192107071589217398838108187454928736995130466855839100366932349529906394533424483747339437292569999871037313794507914627807769175893106241844278235202949964264570813248569166097354755052553332824050747293893842972727027992864365461704092559913649317262840259793414549796601776027409764750315974707914604060954193102335802830990576288332048059698792459270641322536662678003998645774769255411270727090330912507882520660497055339814803112412689388588624392639842657274242516678425888548869713762065943368528727430783123131638843708575397041987178039971992779578622206002502284837563954902902789182727167149292295207386264960520683548254654707417653945142648283339731251570133011797026327836618058230047045267119619440340854609655684041631757187440416974595144458048425508839160018560058004740091981468911122205774520355773490716451101022882170358529409351776603033978685179117235245657441831552623471143537436025663330439196305486910545367774757990213425644927570754180880425917132296588144355071867398282751582024556385485089868638646050469979898704532310061056707749487328760277985554819317340603542674025711846926372867233705566629757199468904979637147189145585984221674259196731642863200083185425067817745288703166157438645391306045263588174969857937863870497373677387966959447332166969078606904982358801635658684007770741195982133254343375371205229565580739597899868510052783319077177519591531811503909964457182800340107085990166978224498359034206777771674271814738528866557607818055578425327380968065709278228663721311941748637783024812124891657041848397599196108493716631326495321223957027265638458202393569265001669486436245976549642512643714038430529818081820137461558309525858170754498588554854491861800616881804744659738176614984017907859176687745039506888605735348996804320386877671394267033917019857006561914022554236147474795637632081086362890584663675425517332816023252767036929356523738047847410186311169573844002676827729911186578241150725145063071776223416525029000637678363789697817247128118505243701381364341213325133932840942242891587259813148201661329732471091712048236152805647869664158054498432191696923233158041683425518883073754803050875263401208788305381725662386102029424694915838052706684441575714175576636646213213842197256860793391482410071453084054888092572386351038564518672836599364384151976546765375183748147266972805539254953518505185334754953401574267503124856426532642757951167081469094632944103367653277771286307645287477882009675265314579421907368098719951344104240907220825721746302127239477933719614190749965721948196981480912782015450842486849019717815826269100888170908104241079345932037388267752370545731198132056372485842164235879475578163459994006623260871011707152523695729494210309166789832775083376622794047467107651961035593159215129292941907773517957049151338841649899690757949378766979417618231687903714230346572280929956431410825776642945332210368806605374959454692259292975382819440360420916317122352283737367261595814897796284527223407145072206219306411500796193195992077156794197182113107690630369702821248663083003154949800688085926729834418647957019693738622474496691314729302037140045678714085589744088027282237582217160170963293854836552219267390620975073149424898539448737029197581835624671568171831393280791618127286846950657508534686946125040454883048445082883694147160400044268978945999328252156587719028822471354694901464315674135638717676263469850678036432004724965639834079321797984482712676903809395491646741391303170536801438028908293608271471558469055945393261483081427313706577638525980944208278374131946751622239496317171609475776744695597232140066370157886346372049271011712469305080530622384688032460274969970820898710325653020125841893357206925270516015044768357905522540145601787300672147418417313155858072251991337996553996455470877717197405281393965566734478723351327914792321477257485656647799090092619438088594468789393070540710875405672160363815755800354766091691433559187584453965175018135272389944971351185845907422013256684016625515615581595822659979481104436917880358246253832493998583452576328214834436313753515859523476340670849104041458399605196436095829360980410980660598947911234744859110614044617819750083790070064865690333158628728063448857431643469960073846058695944713301037341852324126130191465177101597287612516643460975871655432608664682676103237308963212889105560358468488566718640069081042396735871826761847284657874090654548469670039156320518437284972147900792937136268157444388787593043512671862915203537760880308846836818780738433242109380391340043753152692332912405184360024104886287181597008786003877909049551034159962608306829936551231535335478549853627359480277697625363246014470368103331586928226508147958269740352078773894719513381741465827612659748021905645764887758871759278468795575498277879356056984668324212001625411248152288962732226072201576797210611053794532241664367292767430579992800759515827399387509740919605798943791062963725212950612596149650034514516040108829234221164467791416362995713805655476232803596198193836134720929323997274527047885126563757866750399759028518746124509785168056432840392078356266159803936235351582279201838136752406608596100739759154796787155494911114944160795827771227394608017208169618743415624612171084491066896178200173558977971861287745653355208899992565277969240436967957275420867054779953641162906776754040187811405197452506850194717475376600756623694192859453506944814464507353584613601788226214929480115891038405064742054099517180063915503602128307895376148473260231984867409903018393290342824826851827681597848771539415631315452347707090561662455493904339255769998732152601806071341175501364464139774323122118537781017579865966766146425304253169561290104972214342151702002560630530968904944285688931532969221549715116008421705343325128218933193480529763830399306400263512774202806773926431179866881774273622704570295018596691168562715617108292736776646184599722710593577113266975677212866802709953430324052664739031404771967174200058679208321050510167270655831659076526356907562317633568898951200630768675219953819306364174518270919991939957890072402838017941809920212292482258707649633430053010724325483426394154334319170207587150756070535799171743165613717234848469176835252428906715710551845458262479093022772803262404253499105349180467797701312697464652083485419165864712297359006601249328417330524006720047419088510460879840963965056116757121673109708648383123752357624697460837394026260899542272505925407001476271275018310842613033349116491235617411610252724568451870830643949793681888809684783250459027110003320675433540503455812355657401144223820427708282445077002902784985400500249863194769252090690471587445376890139420459309322701307074958318450336152627143214779661249416700119359379335331882020547908836115222993981875857925610363073788530731589318808745661833245013875349073773411895435470678416871103205751489126656062646930786607170032154204836025874771225958176297520458782887015433410066398119493348246720126970920256949989331891425514368311899573017341461043053686034098833306305530968458825880170347211635584265016601149885567152165630296167830941351976230283816052366647815379058564094354773884547076624143035574328112176543219580408487633219796878950982898325554685044640760379717168771544837768292243392026377293910502912457927433594004288053883740602587990353715069158645291295927752799302237161801201062582132537196799238662318579168343154614927495939606402762815010471805145651182044192772883528621602912862003371000796753455839053499920760772085184289354035835523519933879392793754947968838793992389366788892094534373033045938170764403847790859959472506658144928027667314026891955937884333547931473959285846304663807685207371814540357370266623972528801451614795136337408331691086526987355647260295942174156940439549795713278951405661369139882151069515482023563612766461565587842044059079699365461987148776108572436480982592463700126014238866410334462617424142508932063273420954331077965916291097512786024283444677523522595607584727185462130817069872857119929327322519415139489608615366045560236120686420652442412209268617935716225060073976231550642886424472503329734351843421073749264450476834434325135256718307393450011430030502445419040770141500465324546064303085345616642376728946547172133874392921518099277148859226302398404385717248217339855620588420543664039743031895737733499556889473174004787894714376519457673144402971037712338518890546288824809077017820337204499321088460001695668091871942719255393346140704875384372651289761802489783541723589291854642900130327040721384763955948409711278325894162600602180454470425764306813540064257272007935708103084508718080070682426439652771115120234310262482122169932695492977881906711691512825430802058592688263379333317882049885709255237541850888607423911770577178472659727173558102744365085505732568148675904639834303507738376061503788532123295554152736366566970713743903696451514960009740806479025702856205295157432819958610610716819393640820168633608820927868483422258170721057372632045732475307791649519220422140227139540669413502424102840239946033391090340820726701699725362776642733585506982646844139788560199568797901962089820967868929990922165910113176336690906971493988346024897243924048151507964403322861338890177509397347275941696345389434014913961209722634138668426442377109332088217124533023132624867761498102175105423351352728378888708880152755921939541964961937836210670150206709491153989605714708037195074938629051084448253647506140296926475801849000560116133879311342098881120053378880854806249403664366034989801264158291679757206057675890332977398444978670953234351614251614407597698004128056725371045731544463524131196134559555866150774539750425020904769431591344356180423162017220577057044154954514919294147967621134089297845656853956465806532404343598150645329048819925977629999947166997681350512230249098348415301438178139235422012672610958924645364204407063647063650495696977782283084428107130886172692066945587893424130654847711649096690722210048546110526684834324213292956381583455816944170990087089034827264885271543138155734281492544303082130606327736420024834611233890141391804499977684675790406152354883503100977265532459548736052338064642530448212519441692687278485410456859311932269133574410138278717772649005463372625907222128287649769420085625015347714805021401221030920102498189574994983834985787715360688995630840241232050421663928937057541864106609186784214124088186557650630907596453639177731987542387924191130685743600144964741908145042165218314487916158749294145986693532548577968910252057937044331597010266124649097133371617264678112753274532734157488224188753706286195972254307573579452629197033418968519770199691035291416566523861530702672218683577403560709232112069114173552249385782129986393619300150622035874484200303047237090031444823469818783984962959187648784397098846533933982450345800885314520234625845165703199332636420241942722527252356259306527978544086007709823007517826701085117249123854328301658698867168712378735871126015211702159209397503701491781564878893430658405335798097048326076367207321691563770821072760649382480890506041520564853072957340410002932159592545746486072382169952569842665551635770919617449179603757577632548643082618315014064058773332307188253819794184283118145240564199901508106177935158337382601593281281052945336550405460393242346782932724745400025246749606012861789486482970912945724784045594692377516974978670549188286732780227453859626669920802578725339527198380743154426436688210796279136996770447141116288337563043937649151967894835400395528711047590314789320277274546563163299594158534943541661249978407675378496993645011253191749141844054398472281901086051077272055030330672016786470377645113065193303509958489279410092907700369395318249626756440950669815560992185866425536882333946791648055621772227108811595556128617890242624823130524160904660397856861048220066499822316593351412748935185371068196092498165119949791684283814191212757280174816388028821149879793050226858352267882417479596514367859119467801900556771231122372847918583124489934941084774846060773591735804915491324269707219642433355720581346086413798188289624168726253177806038152494138744305575955407228747656313757353707100355905982092929217500321363237107306154990359969336602765790678580558561717637856609201816955528251424240955192063598167664112710002070015988304107680213486056545930984856111828094010645148810371115819455397116727284880814993737364296740497407804909975254524454497900736035712334335928722730257667405230782079422034190792501074221699135554009980070916851010247834096582198870199037437224903324910555356382618544846820034633350091165420843312316516810877864287796099214117568065613058102917784495155772466547376243128422182708521431728897534193394598200299930512665120032805711616485750493539021405871487555184863154152574195700473736324416035472060522488408190684108262468348951585434545866410237508620527159554904696496127668510350365268045862249638129929169074394081999962643821906110098870380523391704427349435957926716175794242666819135193311452528343647330724022647756906923562657106573575095488807960846815622476632668509148511974771167588843141747575681826543934899878466123166473947217910088458455630952205138005516499099048485560643459774296943486929668865969074558068745495106576155499238251109834154626226172013781756167981924227117752768722466894069447629557775851547386488707212557501988282524523274388974807797255314023482349297263147340144719511301267327756597664260588755792170933464073959374929378040394499842195355544293553642418646181631432194078110736207022351513851056948055839481216840507239219557668029523210644983250255922355454940238391119532694611748115168141216674279768095176551082649991543358917739175063811247657883252735521212195172705642870401322332393930512159670644865174277889330768756532509773163268978836678991844145626409638091562263096724022009644381371331077823491852578263247946760917963187345282559170927773567179185451145852472446880954704923715047986823131163008888625622661139901597510985833860517325909159175862551695108593569703408435276478775662370116030818059131413670666397709823558592063102426641332068168560605665029096951887681554415515921386978298579880158911910824556508937730413475632873852004594596786826004933815928339634051418128099925724073163783524454369143002966330306196651447226944960951313840569983855081941261035857336345501979046841760411909419910351190169134958041766895341360069631658457671470739109546872711761889047467508368190974779749168531361958695191490959142011939712309929356291069269798161427852394283186901698183463905482573782065717902166473636094130654302269384594981589242498258931865726320972843000004381512581719155027758074281086354947347364729763945996947000562523831229911146877890706741601535457226038670623735191550362055045611343947787980135797986113662469019048522149206492173379719826957592552618349243552497130800461714494171819285164106367725739574847612066217325780946916135202412146251278791401769953615482172399613189325750010019778279837277660126648063646034426909090426274555072033239219392551083242093501407322687987277670183426785473162965195228015601350296919064114248490479251832286992503590456668376035225320084351166393870544551499507963576696753844852379572707159656701753352358400520224297043690223520186069180810528185597597407775407313284570713940488136825494322003798820821992791026556634254887469393870337116709066974035054048999795456269274220211472436265474151273957093170480825576578469601147352209157619781031056523355816186941110062586294760693587651567970499410894182076058406188644500263426656494620842678485790017887768964068424142870562895430067117556181046243328781624255279892530076987696700035782606044706280419748847000303303076586533124576813499770051096969232978932999712821931837737404926025157943358996684420420951931369984525262353713745048563702042615811799964718344673385267387233012927423308713462106888886121138563754211440174260274905196826392502611475322194056459072051180605661904589083261017291819141078673563721362654242130642433916631388446914548622569258208194505826845484014156141330223533625212152658998363816690270930957246328052008937215335873689197156705315683026288594116439108627212613361431021141099712496942696925158943320668281923257398921367576713568442510182505270083358811899062783141877320522231971531558011496482728174672422240333596720813273271980083313969880897446748509827379967629911647812820026120690779758427563468300326240097247896404932896169440582384829496878922845744934751932746824905688564252550715113094165188892215162385527193213508282884652140352192824109147165256794991825189092061578352869800370601968525083060652254696446262803880377850233844972507066124718247945555935129551016577749324892764934656259529689487402907535021140210146604208869861964373935473305174425132726316925485118835550628509804996974585468025474277532045052487375986130878937961974688174984345281863224316331726916519494557218648848609355630825202895308459661677928046966801514309187789030086284788230745022967931649421023707045929606770202530811377883033188779736585698640652263861650448352732268774476173811203725583717431532709521366079653037265788778166955379522729570754861426016832782988750884470027587697608874391886469744089530636429439707729968986601964588699440256007107407100631112915803553694506865117611998716669304742405252494515138256628188876459048184904832000799787816044465445869710613323103958168028426807902016790706945116159764979132962146118095559649535934147845129903386969851667626983011513795148058859959554024299904847123062765111487787702185229643817442643962497337777220614699218053511977023069234564896908945305965865392652645660904231806775928180798006193697722715997945465721902057051846041809197725818586527613909057957732923921905001954767004409547388745074009741205025927755222847385121424151434595456126258122029002507530123800278723635532416228585457857106913382189512803127944632844924555569638725656519653443158125696354088185691032541898524246693438541265557171063658853823244046752104322596678977859906474623438424197623766709035018535814068654139172745859657050525355360638817422115471116530897618026447674517390700330967864297316130119237186209932620460307035067532784523944257956111285596249433023903030745654559612331897071826812256848984863471946065788051505063916962364903834842028945769954802564216325715597896697904277292905762782474125745792681026226075433835782153356023217038919009504704574907450585625301427215461240394337007817402502047624363611089261377514266284454860404581796678142056798096026782215152097085024611251774695969939119373026786177357823280900904103596582189665064409964154567220636263142794913373822952239622818462149276959190779688619687022377921150379953350725531756505280989636705077874151840538182474106401083609417627643963178604634957441449237711613211887904571530785404358125130912448058339095118442778978559229494465960959967958690341677331998115197894110690775175901594252992941733561751365668846903237776911134147239468762231496155080068810417911978626034742174544757053358029871646114651265024135729362572091466946039788593603494447964960407056666034184989569858429986327893114590241045224810550492986839322927040206436355180043254097841871608246311724248765064351405208078252418520934841277440149381026742720919664156958302139639965366572500827923705990815183655159591553826129239548383783396055161678553295244122893399764354810018532691715335656409904434598645040531480110106691615927967623993573316134381301562931949848252338044210805666318755462817420178250925476795508435077407513556893423451228035162680898185077074097869541725078108630370146844795422658213333835164297365176686608411579396687149060749773669390363209519303359377842969544761847810329380293220021152683983807221007724950599944523719486629518542473709543036743058787117667993231046740230289728341770250652790486654844959746227753037363296336511823997039466400459109601072240966136477525141529069923922168114173067314791662160624386286200191836727652796269321207483292320996715232643072958838808292016548617111675263814782676528122760524823022306958487763409053434145631252255227293702193055727047230154730149506615298534521759870065091602119265544173562193168762339490023876021000326694523892669567034828948581313391971814981595668701489975184094923114264332172064013484470871368300467796426204701248160785474069544695166550676772903256779209795842650490693997169956955771791740968146896016178438830757092741957699191165702116451607049448753574832614820764003134644828102194121922518599915140045824392639428600207914364089593791669215495663977543104004333339822939863853566880159617970421662410004116220963410774416394296307005149587981793652268272538152432283385494398144731648609948642275672718661603811056016368722798706785593889408696090259060426149298336286654744977081790725332101548269661565475204386337394353080235113117014720451361021391123930142711685424140004008171291035464618615217915350925399904133947572355053078826567923552376165645001852209447600135900138663577462718272975270369300303269882788891018292873726475303311682563227706742220815670084297355488566506527704556013248414049757149806718001569125239667884827513565020103378276936062899877570169286643698914878807520506404803984914251804406474245602846775478021003119637940976441042350452247642804294232039604529376056284367672286475920932995566556352208652672986555968038176781317018005923202822115005532434433182960780233318818839737549122198107398546135345667306918935182360887787019940554745338635310415240031663875605125501354777370515470381835667738303202253258143211031749769293123377365064368076848974215156176286334863849989790815349856080505685459210073763238971010861619929579503738456409454905153472515411886673946013376018221230880032429190890575861511490488893300784818412555143032026603127177914293544125600063022493753388985564878983148224016143597949031161142539732413854949577680402626589909870991456890517490601235618222063860382556310011999789017172708478899992404511261830372470276105137116212994946415959374853956036060763914819074219156098389656546070630818001791420579491577663270087708909946974501775816341119327052027389855693816619540773280411959796454899360604663908807161013804559580566034740644069689241165647289517876130469559605620529853750106869244548662101984516267860812469514014990034203173643397102411299779027737710628980430640781316628356482178569225915874000681023144644826088072782696650934803318821032802786983166237370644765141534888309978788173288875768998914600216027347595694095794306312103145786510253988995861757430813982461793377202661390246855790454706390602812190444744137033957842741232425253144595985256525213252917267868105837706784127733450054235438991939173121032653709406514624352417681196296191887900409914323771903356209696813810383834446657683997099907771212668075004244877137703080845459829619464303984277816103084431716011291980597291897801339510334064132269126292246520078620780878693658788906910502136383610189844205225949063917819235625007975740211196158905831267131137203097274085666284219553563755063503435233856541811442842745945013350397825943815621176029445665323492193354131512004734797556616138344298977114809788835632423387217291741078406170830101068112168981861236093559855676712380650488918438475911775867926064523856142985353650000269241148064065823753447033840422742787664565225433941560536308727133126418887705531012722222538070131781076434877723135635348210871485840040321168360977628423515287400844458076211784070210676905156998769294127510961350334326938293798915014503844162901535814790584966861465590587146936208131221497642545063427316105399585733015460004244866906486953604897698090176714220877069340143531432478017790237747305692699602403047020994499139500351921310036200764586472918598102695468164558069120633161877834834957883470259976283437969243233072130875950090016084642758593120777156138215004408634828796591404076591273709022719999413492877852755591268519948225234691533330032940431606487339869785018642480211602875108984163934181187345904891073621521338911280700280260261618316562282659203155033580792629417763863837063107531472669617513666463737155559554675999665994355120711705640575736719071189577091154296652440255074226699877623339504718882055381018526436746858102793755836548175914810868912001964574487471083380291546265686545958729982412554306777446956241974552696496840240560018758311311547682336544776777588381574088428597133749105214816614628063049587463118279741912817057535528215427692630203150937066470155093775031485580709261018565333467421513517108570899442939442192857089565712509023266244594539715066333460654360504873155628764821868549398702658307353878545511365615542432777343769809581631556349957421508974516263878885821540987479306359117367865963103001340264407507931118957122794534759890772617585364444021894735297372815162675519633210196561576171872395646588538136176759370719356597805608040318939832836802255984228171984964600638049373599637779736053422035006598349226726136387139466671982075492328557098580369072901397821572832284654340184474493409647169994664496565803811691615570049364889186947328081940868345533777918415669848288798663275851998291889602874566511963379018438986905836641622160577191335318903532733325637258300076724472168662185602911674269564394020996622011037668621463654854958444922104690894935772880208844390214704090725146010074298932648014518405291644110387688390026574325049840059281313038114339389702338671753326028477733355874140906565318569201611970543511779904376141269138723275883047213378112496644567821121055952584309845504234334791569407148380772098944612500132102412689182631984147487143010641033041501739419701764468426101792523503546822047817184959181139929552588675345462400980330772302397382851762116779852297773212937409161845932136302596685630953203899584096298176096212750539327909531798531781337377755466068445958195163360473927842156688677807161158719619219542800943811565083464756374536835647473272438886715778754003525672562827538972266787559453355059648302322759921340999658464779993515539590834626228864488620778347680893243106942764646537494968568422897234252301442586559034224364133175235144023684720398048104491995913394052632288791797812768457642663999519030285458317086685142278599417498625982078030058146576346857770951983551737560446384993381695800142814964301429881688456010327139467397679246623049465851248806457003830745364680867213540437008055457357362863063226045994536299694320692895759659289828131757615958672466045720367338514378830414593132196514879846529416006994818861999603194822268502948814839325761562070303836543259912064092003383397279453965021326741205851369778892344709160679010808535224789921700090970522483838072286302824406188355601488910367791139221431627743232838559425513267616587365402091586619006052817039805094235919696368878988477514918238947698153336928709477944939030898877104589004969353006004901598920847010169545802501965844690565255253540769871201395158789280217151618453900385060571281091500888071211212326816220096526094191627028170541431313661196121249022263684858110071223848908132410987507156780727063169709274862895083764009546267617554800328810560164784554939622119243395245167510853309878048255366439467728422123099101650271870619006592254012990524370214660748628592779355020875749221145924715051996467810192443986612541996000109646717935427017917311670399186092683473246982911784435309200930418646481792055314943806689837374079719070542179865135620871370825416302074799603581790312398988822584857917172955225603286086935978479807947052398792939414800803413781544658270066606811022747176430957366416407184201096729506227840645153124008760888955729635692033468728787220960963381865390013701074334693712144115335153043189389237540225753206498420835083774245902704734703941365439563103179010806576672320139121186081723489398830948694752512514844692594435938950836014943044881596861266653363129790857938299467372046548672823701542648470385370756326725048637060801863603918875024937605053648060941602231908663279542503758380077532278214442157790888327385988484751068549382213566883076575418386465872636914871315704265348646468750980110952225525902692964034285159256661196796601295353913553004784472768848601531868805366604764784466702384603837578729435654268739208226960843301162373979350454719010568239195200500149174128553360509847136242276244774934249946614743108959470720100328123669901933843790995561018690013489464033524866120417780176604453163373327962855368566745431514568481222431015871956899187224112557624650520332844602099998994825478374444775626469766994255865262694027571930387672012629603669457813110706584368591611947089802341615077161160069668303941925684284256541799052778617822651411323065121327817398319746645604283416623312504339451559604290525035691293774394908776901406105048804084663790222027189692681133780384771034131231346419279730456595725436399771538212921125997091215881796427113401753564455852381272919620578145732605526815739221988318833206879315081392471066068387181208974823944920418147752701661864510071110632886504582224819127555850345705230423301190927012781247380587343135541286994519765980714379713542302132844389922556271110930642820159470246047354128947329222795781504747326500142305255801134006400396805567712770682466904671639097280937369926082942029400672738747306589373711704890045884257283852979473990693288206890116478653696176418308892712700778885808070206036653141020713477273259871136208445053527682971176761613702809129061223122483080866334026712833318408390648479523908594387613947513557084915194193821874757881586031940922252496036458111120553802027399322219512154727218624397387885856096575460421389870554334409867828995530922685697369859663579496388528159612683123979698013387244741541470275752045124916224036528196058235653041310714279248001371521677708999334745401869194484849504400705087743543481039365915150017700362626453781826350076667695725901050322811645264934663423270551807147619200792206102808614589381443677794661241909617986868373129188782207233426738498521324703426532796000581079675513747745710019301074760886673773543147353257159066263568182622927211462699886825241242168999160450629837511195404964083750338927073875418803997823072637342636608204194215204741563062361685571089314286257456733263380589985041959727122307462688978139773385079930153474519202573180625095919216180682530770063701217221641223680387373808773044615700628646462462161832093197015625446705107412353953326810584078432831569759365741905899498629122734117136850887495313286826941185427663445666185459597775700286317800076651571161384805495338937386356973689060671432338008774362012126656446436489423299155922096487522772004784001038937904242048834921607562480058410080556797799174054704214384973193571972385425061795617708725493872588681672033618507832382531030196064876574961178661800561642274428134141716208473424416118530176671662806947047529585502217983625043400283450148016983008875234910531512650318018931615215879365592734731132070366934176098677877255824493072074241992494259741664389931102903082277251367797540931049897013382532459592525047899314520654570169784592261930581501537979172675248311334055735639524380345604792539952708564774159793059317164099541893397580892946831716155630530685923139768885986436980070658590371141400423661934372039107951669621745189815071777990609327476414490726787770853513826628833684020101063510428300477396694872969132166836536664877931805682175129476460648814249336784137600821706229675852466110739687192805566588259905552475976891826306412854829915570870286922450593355139470546931503902802593792035146222265254794735896692958682450993177877588727674496124582644319465808340905620759355007861190175860400429957543565035729929021028203826050476527339333644522195002688096701511892023847970491248116023654313295038071687962946924255741517790988982581517998448445498694847314114383547836572064957981732422729322256696012570007320954497483638717925956420341933879113223807664582013620110956293742733021077376142709317500462016326735167424676206929968300653722767752652436079219152815043611166160300626100177102631008584063192548073970284492773286487293399142179210602471210633823897402218016774677321774667934144475564949918051088338809140914667400029387513768838893325657626387397569570319493619796771327692795018722433525939270800995422564038358696334148186472381939534787228663274476240535194315715583344438066672614636567066047810194250821386146937640298260022229856385400921402702068645215303939664307380594941065082326397229689324621768086815359710465756154929640442247427616944049775086761177662425105346937968327273107490688031229761398491468205659027574195810923955818555436358052673835808053923303827722336145244554147122185724346997746347737499387034742618827366217993916972586735351972436800576379490695330175647358026158216993504516697211780424905151252617188198341455000882826348925173870905614589974757559434248537718041377621665972628551859760522037965032765940233619707838383044267692890699678645605766686170335238931305855807053568950241960950119370862078369526000518650680767237735565598640621712893307476636811610317301566227398159348225080167648114737570988104371379211163077561876688776914126652508745158116639455422319961712211414384317724491182332460966590942847449895345585055725331844675675604548307738440222890517022223636661819180498826525713466483780030062224938682993632845365178602797665188815214910928721256850023821033815742909375118898583021950205486846270102171863370751835049489388343621968576972962374490611157680839632768575870321086151904088962713273049175632289374458293404876503338785993554881030122471139151233217374816546426116933779440571875789318849027223586999515292376563718536309757349900373889602749420544700037169958392768526277999684603913817515146340788923013132989545772153914943557124844842460805096511552176958332651333406226555691869620668029137135753629541456030287145829145575929585635345171295573116717340116210761354584974633089708158355632653857836813639742866250287503863911604928324688591379377931791526203953053350608378028301749483776157428030674219585517847524728619170987555556727324376981075613550153319213546829343119282946692512351277939776360196569627362349420751540023291762388609609828960229429428919274123026084876368212347517373978615611524383023424438249775605182386527558912456342845221967884646978999200009267534014759424937180548737374072333403177903156959283070538239131268771124223024503491225548181789334187634843321063868295304649699047916511796807421081521186272354926057768517146281727348526297998835590506030599827730133011257930833471073657468659767275109192840572673574750598072606561295238153732209524051194616307818644060603309037497335583757732238266420162877929217784566023713525807163808142186067177775263485452977229649983513017091853923131865883494996569539407935873302640383646879935282176870014948135232840350504037679731706007434490407898646809499740669620484481901636171151490288077962944998277874206249530489554747635986300959894517176738863618294964474768727231679747232228407602725445536871446985515290577442959757208836351141118357327993716453803493748121612904600534192424397366605495024391991443391597610257997673339488157719577860213137571075822252148854280473747583332024615909505265515061532442349538602491435246825460733478008478208672778198227108598929647833316331062700998079098111047999771074117864227677885951437320797544527421234120231710736401436985966333533295023213900814289828242658060160838777551530886308773487059984206086592768004663982293031648673591260807053658560781432931618547198033635276694260592786427840272600933957754810590706586880244067141982004174461339816906428114209269063602660895050739489348085156968089936590787125330755191199492721432781280229890809735040540196840825537557294909388237641899969101929041195928174840496711563219329020528853402771889689030784495882809034424154197718674133652594956059575687540737373111945039256474142261641753224836247593960757747131893915062102692882669344013752627962512229460617075301527369806923956498441197417873246017933924530924432454290879544255264391048598401516750567775043622375652824854592141295288722622907811764680744219135224197004023947421316652295488585385162609613935136539342982868588790163171755179330584366933925257860612177705936434810523015634813723533177387192093632435474446263256053444239613506822344868938994750494535560584070472023107177365758637737861260773533815857533583686571799739064994514480425255548985279028745701939736801796422973238550272215346881409616527518557751639152178169362998345894534651607151110741769414911153916660582699187867455206077019125030628624942001513013163023846012298602685740157983914180369748662659653122130868254925001082329635376271122123970370001326884657515661849887333414912043221885896162378418859312926754665748564879925032143982347573858214497538434868506707197587391340730928186759324694895414802860456296869432724501085370565209111955165159270520301559220368892040265139352422172189024591111817720012961862435024508364522610424523655449927155476629127980581437995041832435841859164273475312726290809890450680012166168363111645107440865253106170949302407301300440338100317776942303862794193856319986579605336167529101378263122064850124378372944826946126326780149633343884499344116993114213297706001598448609178533202286583503118251016793351654662630448961255818736552618791565666368784829505759048815480159800139295382334487551413567104381322380326859664157304860904807918318117281008527371973665513896108480000390606786099899387713826871986010251538693070633396564497197205120864760758956560261543863885481981428614347615848256684301171705020840365850313479194442165677604975380016324368336602862785227289696684558525328924153691123149867490765455605078784901988451418443257306077961366132337881930655179821759460438415630640200509092983696011069740778376665552680713879564254206498214470365795992862153130473914947180942469989140192608612594688790079871792979520239251202729845624166707521706654243403479353087365949208001462145207916040015016372398255377485189817870600212896563386260004299377523758463787517757823820897720703304416366109904245924489974201162349004862236583580505037644336500664000171549159007641407924143100489343745292413442227065762635223339784540926078509661286017635824981612511507009193229147140455414820283747651781836020354047521762661903231012807119218147499843963963142330697429333809103538961078398425409513125805733635901293109284581452868474127061016083083244496359263377890727562667885608378019667902843373793047637164282269234460160347378131529885203624908904109718818066114521843297457838752092761875964227581546086501428719449817581838476285865853730516251665075868165206515478094749060947216605581909971225815890064892443859114576055786080498403208232334660091028701933633182617028553269325829564375644899072854196708102754410329838861214797169181443997972364559087755029906136200587870255078684932849396822967593573184425222793213683069898397900901757771424462629499956765797543683898592041908469718261231573419881142353405172505667847572736649300102849453676410266508578648916315951760715966765156197601842640712447869384727351048071706368828745031669258717754912007093442210975008249232810504512424261999355231121622043065419654706649437773504829890632379074714137787490067023804938135600427984082493719577108230014678217992186677574734506129938446186885318168078032080510185220506281921856458435187466372952482185594733352673941670645911293011873376138449733333861594140487615146015201792611293180535619772890911189750689775651185798582162017477323438043094379297371661085132378063124374274441042832297988944449546811114443660281475144415401517736634674668596175096905555740229647263520579367003854157405868128446562222282575556593207894586184824620692069661084316262167345958586137074386473674441269572895265149603878427939171424677775685483130071424837297025157157030329348376151271709588330485350232247146755843311471583630627597902487389095703128181556987833470596545253768237342778872905381340798817274393955822835754788194144710976937297274341932172759215563997862174997791047081400093895821247818795430936007573074933060772544978222373701823612532213719150005650442286453926137650009428791715257139274529026710524859373289816232449282258642852359200122960558653453493566704665017301527869783117940022015976904653421120277368663917585246822002945058854112083417074100624714584856661955741627826002768867787334798937147460799164085260474448659967914524663453312987805956769243584240445549206198606176117353879500318899164903033135296588742993082022955646182161811332487589097707861276719612545132276357164215901977101845099590796240818028042744609096971561044034368645293625015607643869206887141406162657506808331019056447856755577679522584806753528847054704457945096946536533521487806009040363019730602590556704097462296712373177452363913469581726998769261259824018156647319123330214262564120925150542422147092176144128583323342092864358912007408254738207640483942882025306049246368153544334883860154119524176405960712034812002297812071394871945857955651766696613099957160510635767864295969608697099469925823826176595591454254574336062220509204522995340965054025730505774687326286013370047829342001105185478804727553332500308587680296822585045440708984938984373964923771077831058254787791811012615668576020004967351535892803415204935889393957439775356445624923060528955764369564018274382786494903161046532974472541244628235184221525233830686985523931543922962260983990085678657722440650322689906900823010243813130069434683997069039013814225193009393760971667207686429409191710592405624506632246453781401838039435621590157971970466850231589072688588503932243035158942936296216165770708982139035442723965041981731050025463550961552432457649904756951958965980339166672937553744683602050370962976001119745764133532081361401588833883774545413825976740044000451139673212840728847133212219814835080707186090769885924565056245633125183560490656529412763368225335980893508661748123217073169200137094387465742764811009837411396065151290144309323553299028174405411713268824537094354139828116763106073066247879656118645381149587139548812758406774906726885105796720336098790816623129371542699976498912434967483313486038399171056796226322547615318645344015540559817817494720938670764750100044293496199560661882255224506428563928524027739256243788366198947508272789415128003766881999920513067438483405395228174030988098972195510143589989226546307431863691521061768164572653301075161897147096738266739439593515208024509507537041858072230853226592285875395450016146835406778551452692713484658510104503473623761423968386681011167281338664552858243366137038130539386950369682483772576458667039538167491421778464863473035437102743305816604591804293727818482616923943267014158542102866915005207983345491854263547110084119835474082542972154308754287423959714989586468911175045486641041344496527983281825411861119030790730494842155831940987296738883003502248985240967131946499753075567327762725504251428918952932245908589319241481958417124215213866650227290199980324746001124805848244937312812391600169731471000890731220196768453817198197187424593624284973021893016834707851585641013693727363792506829017563589871765992238211918949739941206574826097712947861162285812964486190492632435873713381013087225464428625750055133018557333534201722206289152646117799470504380104277197650279331206099591384509325997495135543586269805145132878775104461408537149724759721690808776221716583523280772493916751995481998980953867447940104778606422796260076894991373372649113610348745790269995989202783214742878648534099063101164311980835891216369257675312240233855199899625097951506551624468523870454380238195730511820348519570008882001577554200946462968852750848319402922618752049188927193897140506694209624591915699182951040362242793827266720026889562545130470870510955611892709768181703317436882089676064156239235044327659123019107603030920658041052852362028865618622693045659824836869556054973656113162163702744854795533153883541257805938591417148050905388520969688096176079451242656032530929721440081463596833239416587755093835728256718722647267614707007381387882800253612060029107007615860821344690755712906485282703817042735359054210410912787808328893633074887664324553153545131732261635555834446050529169215556492732877478534341801924522203323649388963934952665115479899107550028491963304838040173961239138689317692493620121005785110674374369658384793395931303579924384172016464113954583102056740263130601656149496041605828270308416037414025839142847059344210311195034594137558503981210044546413756416428202145822633561610243651542747040995694523655539285504180639114196141847853465662222569934557714058997081544018705790087628414540737683672907166045313523762724454750882983491612755709955246939003428117492793254886488532770516161331617952787632523006669896327925505840136662597488084071744685925900570813204027459116155288464891761215660017356960834816688668924774745183567173062218848416088013233017948598948182184893247038324948417372594480546538516326757361805365419125647052066411796426953665944139522817043982486464639617076961452335606747960187050402858642349622073618858193186149129164887296578331719710483646051582519011267563576738474803410940546486693704889772774988995497803373753959696931124608474469061430998187966021642239854468627600407956606626666790231545177516583607498306597457559750318881516055624548068945710115770809969533268843942759831670952269224425885238225053044716649846913026649792796253798889322267297541613598748479599157672296527672162961198451347591590739602730239372735364971170204570946255256852975806402520239190580459111423523047376488843182492023990454344280477436622272960010294244343516011818923109734678600230024878919475927843255679133935938385109183146069515892142890462045122236374671792770766158439446319306550599358247210815442863165860650906846263155162547302558934551379094346300400926214115654491381327649292376611326681959195652136366428479817155469056183876735870493024079407303256389101465445036919237451975577229682821359624671020224164516217225453603417036743427148666727753277809437603525485931295591631489022602915829854480390617553298636067728081965550685564085297706509897139995718570808943938471131608734228949962070202227133569433787651016869132645477197840242413204686041465624303499336008492305567607546041571349851716298921852806550822554556115136010535911487529269208249967299518382382210052414797965604868702469327350195256812344921422394839926072710586266334172439149347951275525773471189852028674703329942221254587337551474220008792439000391085199178411029952398720239184006829254115591095348430217168855276507152831543123427521691121210063403981167717432563742188655318259883575366296892412230382911978331998746942727206336816864853426296983870162127026928559225221025622362607096537813167073149217829864815516446900745329201412411779367446586337692904828039916267872246321696908258179209851889225691033877921334501643428204559339644668368665572550827123139553944999264248429663498591922810772706714453967652977319175557518527509586844259963409809402547308061824208152498871835328710849570575850800770503117371813675766134720179756586344928347076061636740865123475023281140859842108730723242928055618614333322921462160374210148853717650718826735476249967575369645400647161629721633161013133098662896580392450238989683185160934042438765216921740998971266945838630436191614936325779376801621150847705531392906993234676872875048711916053848113051550257880517656693605613842179803644113744824743699723473039216034753754314446927005160054124963749617595374200262273863083679114920849776909560840831947680676496088942400636900859313983492328323589926869988540022850311717965849331890621975655181419792290585528951081365535368403805488247764451908904626311661603881922437451507300841119294488718875083509561464791614278973118840822598465951885161780599099345308509031984660702670340093904600027305990798810437152108953773674856866386638612378602713249010524105028644591848740126000876695396998123878042736507213416665613765217084974858222462273542096237983951115558431565125550939877276558105972822456110189026171390349041514586071493896810739418946174045984221939076242764359021998903214655516130860063692279878659460269473463507949046379318370936721121009779062644517489149465114572544381612520960113099095347151318520464595180247361557189068931437817905284579090830682998420306879298927200438295427991799675785725993399953194613806488483069638003276564916796428437157219657961813092250732040083423574393545170343813957532469391961020059293580434678981011074451825467630145955147423538516556255421295752687493981164513293330133181306472625268291950664255023416425802446802316702401279086948505043537371807956529875826668190623363600144685498174947873324478613371603652709605285680116272417663653854181213320805886857344708217542079516500297793696822345598094134987549667065347046529171131773989232789348028937365115962390053349624686700631788778189177110648923971557869663424091617299545232824547132892074260853270144677657939319687436101885297507613032470709837291533711401109890131006784965471009006372936041111141420175814825667782428270488343018337089659978756379556278661369393591751400846121985787308711450422741133522814747821574455222158281179749423439939715960290704370141139918837746983928639575062991211361130979138019526399460751841321411452408415085133474769119760791246255797503639969688484240198736892371725527347256164072061851973080787059455893893856558723848887000069054261775763441902998389591230219046966566572049570625586588439484982472969395569000756925798010902421657923819073569909562271824532167801834934964309653212212617471568684224321451422832253222162472147093912295311974206012148757216324958938757515119450917227842282221909819198155497912664338450253269525895406593763447594125858453759567433123815691443813096801794878454365329796085766354687608694959590290706206497641840335482062108243377849621812256545251838916294513376188776075019808651283980921943032153582684305665219681462625873699668464172043699017395411200846747044256496581375959948611085774917787724806336264981245065876161535445511235699735185469603034756905596591966997933412853099817510302866978682371486212744318590709322308955518235568008746717422176409517126835373080379018660212552219998178998339984799255527864880934341171803894385438435352696743013362613000375425865796645194940302211431186207152512525463401052731877264685789875335649956435602820556231959752474869131421543565557940922514080617655424530092181866063971073503336164828285931746140793209293775834152073504211430327365609744108714395473601103136341045086230366009637262954092857343254494192101989770617654522431588627829808656308822109933844659292530065977483507352623002353849971099726866002951392315362329193781751709836759449216032083063229947430792463841445578558323580785914369094023046980022308682125051596215396573499639238440377908738546730652935575978287800075217349646423732146709355785880600573155691300371671439825655030992563961190469514801962803731310725362204112434886247943063501881857414185451690045698628344260071628893859669948226808602575530415258261279543978000149467480538593642890308560997582885145541364141978325103499341503816043684900644875668221987813409621957681488615276555867783591715953607074758316029311821688596837623725345252286638041603292162158228566763330596346769160569844298808778363241177699393813236305025810967406000815395131100105079463401826441645538058431850398590771688370027248360053646682985032074077705954335596512039174632844630579871689243062056414522065643828476703423944850758269423577830957718779155236534778292024544758502218583801591347126996785598266557218099935815251792700234938474079454324398531264523158773055285311629506798008001264775183916920836827010181106373931399348032751344943776917506085489090855223050677855773146849446049852528608334125190611944548918562215841677787274883807065812014871142679546886179994255700862879317572329788021191463202734633679247278713621532079660234410933201758785311046213240473523379981505362055667490407652426903050744828147341843578386556235288151223377461411130856242966151155872289827350845580951128812993299857742884380064572986532319667409038556670904187592248224464934751425766942425678957948285202327718376270053419815429623331785330025666795272318770051675010648353036924936152643991279400470025513218965686317698399095481984887756072098248072396762973851589921770445490094749619348402679292752000859092111145706849243497591493288060696957810925134324846228853667106462784965567210208535078001060507417857660082399244346000467781724861281447172905017340321557426899646630079848667416068838131834889390786414621349366211033169603781341001425498067883473135396418378627468937058866606132124362103476863343902454356297148150300862268604964841687663897709927020479419282878159297250946797397130150719378901068080168697640122567669012047713034384828686059175287655263114560683064315061977857599539060175558262207806313947814079975714038286311541693520996322127734476192546437536095445783602102700613282241643889696332607788499026909633192229888045677732727163105790722795771735391771354747076907581717009690073891266489226971084556905986678169230178168838823434867455094187310149695951145395048186062026043109573440962055764004478717551319830678694943766140212481511416682484398672208466309204374496076457246123746113757152043925926644150031869649509639094878359699425505759447541206003595526176764278084102688702032570969062393453498660831254158574649743822450476416984767864111140940160873496916016796286971233766184787328536344327000444856089606264529746782636165843460226565037080627404610925519317068434962840067781766755917973813333747308646824738605860131690929103699494209522169584471696714099554223442021861877335313042854295007360231722512298715503538940404604408155465000170370307253679308373821130956542817174520799962952036286661065956825540424177422300075063561226715928104468410143673016456824528982972386347195479556378361355145449762311790713012208050000779553203986583263505913301971593320881646703614112310657478576711897829841292559218331957713920527721595082672797790437930173765880126538571560891953414624590055226292132908870926755005217569581626010287462372648416677749729352688119979198897567966874424501531233376447090516179582060336953139764164432860814985986467543938364664563551762060962902902524939951619874526851372473344745671026091031569770365814476652772285540080090385721435726619684468835644277667767298680303018296347385973421334974392806893361209973059719064917588019514831688033406079254211141479253568496187719653259892389074016474094025073291475492150789407983115055852938189534468349723388853500138340730597154991129869327825995298340558334928461029144026416479052081877169752307704159645876354306293490648295865176052917452968067726146937412006231047013387719251823411918263879339527211681571019460679691572677822626236828085007736182003243718370323290939268653481368952409222576162508620770269339436301165437928185152651907394644718443945133265124430516825339831987283323037648591603852494233379653239522993496836266092029889927655603608632675920544901001694403015298056800545507697015790224087547096404160237217333477545191959555913109148519156425254351369850657840123496640147954512860961091640870005516331688833784786931067718195073692994809925518571722940636904495329957674958208180788206202847571556934147984727248104285153913100842294528462651500137490807917839268544196933203259083612017925144321350234096995747616538678448457905267409078912288751397809269635411034036160193356960621555585537321017646704422921838602189477649357798817173496346382156092904687730971448303463386909237025733658265482828799788307795588095972737508095123518226279402673955719510863856634542146065126624292406712590902870170981587218298912522357136594548060205328585288306501897733330284550521205049540133488078947674647011821320267691639090161925589046023083957435084666719685083461396069793654213270649313744757246762922460303589354771822113590567612912444680561778703800055187525865964070812459769331108241235570259697871022889352397098954650974634109060424589544061459571332151159513654856807859864154365840772599176799359209206860001156601066233054136131803879455785394748304115745064915686067802255214416336335233710634429619079405363366070545547225464052370877729167820827328793242343822271733588791690501753792869712514586238234259659749522637971269311056803856585698304702624084481839348247168102200887616259383031479900295649282552013310180541817974956267706521548979920882409322319297483448749115959138118314837296989568541430268727948779816961858748004554113439153538686081754322927206452815918733169845308294802873836980567514643785775373945087760125846444344619124821787631392077997747630619805412176603291079510385413891437359070135258054993139432240851180163367531538572394718605063119406031518641646285680159959366089311765215131120267879329933822064649151235806954195320034877448454668445919777248222183661291041463870646430681803101307531473282624753591723578407229395752056090604035084224186485652649434097571912916775291551932368821166645412348706725232392181546081607250428467100449792300161968747692651509091494590125684367422683162954379808706497672827938830335519306495944594893798361654433659244301966171046778945286693509936734808824420724657371914527818942272497613172499963093406289222560953667765328472193518326812654393728074583111994865616020274689350776822490258066216382890670848260190932855578137649575709464646355854196644936946287426819561915536242941103106091159629377273520469269253262116915560121871299068143413372611035021187121087751284549129877646285449029902365601530884978826939531676992677880505483422228222807690403350938981544789476363487400544130253157649885048610484877357249724998120007796883926036135420435343511693511773044889252071289248314938003293927462677443190625632084317416018927505191351088583136005032115904961995397517172423200163556657623079249471462743647674639577387929020488943301316899831015299564360569249996068325161503019201437653327792949299109060207619582664795887134663726338830778030735712245049853415841240072407567345676006728682300385840077409304408247272431542269829785119220115446732270515926761991163570792344375978938883105363128890986050274605875793880869348983143284563857205186623907879858714434729234703424724885199936886018611327609824257335628265703947335975722959471640317736832456166136244807679600727404553740344554743652544321668179129242040507868989902588439498034682573001209116458818144402178963086538750368298380895203141078168195600322401090621647802245569978418211177104753004922050790708113985384173726519588473725598944346227382049837825843321476580322869851370773523764709226957104319968607896279060695408359170548714881739997616035251542902127207423127930685125634377660559281782191324533285456315023323259243474811133492018206396291538895406997396887368337361115197805680472362764848683311148129823300845091657624424666182369712683576650661589757057651319251567791985541941651784098225989229219827482082548950506247046656372615777433621475339807853047327482947097337954170137034591031793736554705391172377990513761718385910335772412742823507577000276070660159562188881615630414543793346812390201649468535375388372697110762569550401657908516657966186636639879554478586815413740760215786397556176386678943302395085883622841880665610050761421565849096800841907599862674144517269228325358904362956149865002701360760551215286937440457645909769951502126855947845659691549321574227869224321482937240263756314184893182868888963511512280274275542625433175728927756025950432556220216628122332360277465700651041004448595599828071075137911803431452596672005681718336388417746021674377525396894626173519141842282469962982790961739091302754553384920483410654476661669425417654983133728419588799391399286688771451440678695868878861276264304830167283745912393817022935201110783230026810418710206955616024693791353144226537675891378703815210393082612809498244907060331599104267496737050216048950058997705347119857733563905181178370536889616734187800911555652724883354840351091986124555263061633486983330294643482965247048606284167857904877113361635467476640448646204338839329339419037205839158240012325602168187717014612672593375093590098345258267504127516788484321538784335503934887496839178909493684138290414671368747623203204719601874641270658669840926200525982753993710771448478708248841115361795060707385963125315338412449870044183885461332585354648244564946355466477075954659141667190679718919478880709224814883623238364205381310465080938412800268017125451760564302625035810030020818132597263380763714468139770778534789089543872398805674872808006958781131458513059423721209780886235766912922027680861748422638737493343704759574165167587656073842435156404980564465538236299475624860493782364877155182177051042258288579530256118048447958252073046720375569742476009831633053826033779318960253088446154025598579044882976888432168065673497134183704200164729237303059714376699430421954977074583751803282372460495868310800975099994141858983742878435865214026376030666123992704323688440965943216326298115253575261169100184460070708974252572867722105148217628138247085204612501241634191405794292559340913305371322892898578653957954145756904051196880190341927126925667840596376440364903184790316999394093809650266832770061733196771492982310065483256537745486747552791191840588089965251330576726534234493639487729819954895660118134020746423530944053450684164482976560783046761059743604907779618218240855523180942429003379245334865248646003384982923087188247527902499094845332396188554533569169027383865703521399320428224401603377289837936797668908110756937141893165514797851959336629621338375115469158501242449228311608120966113729129685975073897035651425392021570858940143105010614741535951615684168327964471617346751723686054289889067285046727904546013744116382092758085402322101140236532957467259673063240995820472792918574121817862399796822595740609270751768330022447945186697266831813356729760607207804085537277172565731872413634269358866652776299496026486502160835702570597986118514610041673752128045921091796051295154684817089770212294638994524658458905080254398742015149782275088448499706026539296869779430301563619470929274659133436465954394392039775713096945039750555875077067159119332836025661945238783335363308973609009139978361804660415605194860538972845499495324798324531241000249809515299035868422963123237611498196374957340668560658609119680820457241333294303697333723459781359162560384389336573441336432318957046331234419874551623541718560866035120068857307333076537542156582293387693633287740969563311844636683660652864219108422612888444089204159975962616983338267056507716269053545726223835190958408738007272830677942867998992488564619623780154541919070978759156255571991608275437319494110501042784195713720219246368233502401146252725132425367249500478316966522335569303963335951996889635968277829928921216408152034663078001422905722028809681631666825732413228549292323556040040510499919058834522499694297555534883671514370913018647430679018026596921151530007881979194842170321135185536159623701738512024122696892645853750074424826458840251929292555830281506051109597566692814402816228757221595963433063533521714509512817010970204016346890471933006624024753468848492532473095517698301778326320157529955177004182732392789130840788681473652691157888787786406354049580590200331334649850563813288372769302157158595010279724334511376535177770397700024157362509889466773291177620534238635990027064177956365399997442869594247834973812093530332225919400156037567099790280999394317078475340421516546679765882423635910742843282151678902335794513339834926797498536610617732878368950084870537802355256721526660515590702314994700004110341143215533673799544170724409451223947669146701943233889317389315613091088879153921434213380479288263628179576264904041151628544135665549456632986790552374032711347780503406143834657347522051580577706245257222750138896533396611159620904812393228123310510192690257173002033292861794132884967037161299879773624638964704958229458142790433372668073632561859861599493657919258541783092422657618356167832940457292924581445599158125288423274430011958890854586890152175132724083580822411919306552277272203320922657113115659565832213926919746585921833737351855911269719269028474591597663558355872067668280252782833082852676916288029000940330958268122196844627352988052850376491659634362100958596273006956602646805994908811619651828036532858657883541514965570814050133153231521404599338739845338329266617146561805650831865631026635869864974553612634880310441338711495812015726875460111900339024901453376310143072084367782854905495229260472640615035394400552862143859357945417769175151540710342473706445549788661379080886536366053191261537159986910798283949200260512171896097086615768051585039352383786276356344117591465825217544456456216567038925455027756739988794713637370735885017170457253385299854416064920984752502422721070721975266556839683530143917587481801038153473809150282644507270769481371333914163580282289788665506121529792947299602700642836320597079006547695865107432094243586033997019245634458378750430325276868295155547795230481621462246574420436317942644396796743769178988521095570260435677155685674939229429039099761821030223386644438323811670427094889920828292606113540611915865953589251219385666185489334476956149453867584801906314793593886907961524379849232960477969515406163687420119549419150400222748445121421230092222801026042226650684453224156300107935915299051195780599801612760785905277520906779552513785118333893548106224746040120282076220385859779261957484742540130164001748629933251957097964458369377156070433244952566138707524711122097197059741350404201538050648007005053651095244218017505084677835384116548967120168960740563676354962514124994857226153501750255845321647508682116441707806285341179199405605260978882050253159930804547525565883190845915819931546741436177794112824999456629953218007959281293339415043531993782963542245640436195435293798311644607641376825500802926553765832769723716951869160571845665104760608501219637063340874254270613917543819258664069344493901485712623803687834923229827769012853634298674185057443435425253761622646280491395261084596353971790308900957434035838105477853358991539377953549873685051903099499794074277124390261702610576594929656215753357381134571328488586054844986452518807804491100154274578252346295327521137979271084390298833233078471203756900677501796052796224276145762621729146836983362966361629099075493243685356636064311390980589175756639265827902147837801055653864730812241499836767798450786211034605367644269004277184289547302873722753911546107137550503423572207428754124577633913065471561576383837201972037160930531395435495297206628984241537330240298416296238305119220747097970740379069733027556069911848523035516312638345606869329905537821555468999641111843335842364205878338066139034507774938038588637610243609505861495695642074065833069650726140228953190272769883925923572018986908780126228186937710225265242339461393102978140567584393409354450023677819620521271894250461840201332746578059491993201423622451263990979207542714427996449886647108275184502129591815882138443361124148278672485748931838199007367802245760698694784552722673489559356526100432277852198638619167031774495457230390220737793558714781834527370380305165764717392787749170067664814214871057836058156006264558148523456051578112898773981497084445298954246159549956122783991273088599316667787890185309936437902538078720078570223034602727044980059001741081395797977590144133186603670830475140656949466719196204829221317025346320077146748705118906750268401670253349336471118400628307021350027448252929421514639720744533069659446280930238762054585263458058253267171093881875814756895672013460228272991972442904269204520527989468883254920970732999805276892435293286556556805435655626182640456998937762475876885517608476463811854629261246979315882023573770293287594525621927132251977206371834405920809057845182899937687089869046376426158433075924572900957061146651471006566495136903488978815090057820974680442686542801662700772392764751933926423271999735858411190904983158937226603580580541007943788041391479420307286697616551176539958826314622951037698482399430067240407997517598380342049132596563538116752756857596165971833658756761136082118301546011404677895596276513576340057550048138195569466412672913687752218849232786278774408810645694492377822061441607256378569264883271606659847593368035980595711194924275315095354273536215466988191590283169430785699566414483890727353850284118737174846157580055889578797650269988457960259533830268522218014879099941663945359785006767728272743855824621834951235269643051191907039859091194842985695121935871815100435254682519028007163321150255701510296021467807576886024452653901819699492430124088551664292743725827661967604625086981623058488259862194786646406045960687054744899813724321883609895161343370428170560155822831233648031339964400896597434884779915137666540022328698538994244606543536820169485290819352475823715045903743661211378894861963010214038615129866900071311319555476306126086745850394013567840063702604190255682649117097193153783799595045603634016727450734251962339673842651109958401113257750431202522792178117952594715402009188287532871960559828023733039514556197931120733395775370383827879602439082022574753085474442354418013788654546009627085684960067224259163231689352201213906272508122415628776569828993543020655893500770536555874123444506198873355118435775962809842904829200588323108281824605737464192291488060433412287184713994899246725299908362956050559539575463787623268192360917644683799994720314153845525416010061184055940682246829238742517682010277392394675027133437300478544472791384038813522483313314402684560717990471779428285087202579971992553357908973766788671077938184503942959916654809754464239639026570184053590843902152548955961285629011927110189624831185300256269509277272296557971368563254754114724050930296140705193729271481117133088164224730221450224774679936956311520244351867731859136937247699400722622793722155770811670507598855800463358223445021652896994357519393451737443191102046671365364489710677007041206856805226718292197936331767566394772509692098604859846857713469040790095303063671301891953334525333623645825158264803346550326700903438263022283858628961285255555642151178646020952898152446817210096945229326958269943119640330200027478630930081847558467474873918283771327314616848908068409384640063915522650391646575297133106248360973429169757417050331742168801825676891171693519500760554795980857133837481380197364966911208612812140377711262453421215898734261673480765080735072837616558052445774048279184790638058063130117898259566500319273493832869940089750229185436740283574925161204570654721348478088530389727228140727513910807006167759010957649481586330558680943868715081797488612030278530719771723594013510020445654293330656053703895539064936970586735636560146075705146840900928739254907542237259074373786784135237835320166673301874864632681558674120572326382308552921625800359917670115666373856128496451230982659217987367543455627836202346571727352494076535924643472318762125653997413965286979319251828432474305056335314057899114935610827942053879675904495642668368843207439061085078221784191578331121232297402750638751633269836150307676268721572430343982482767442497203746513136212527760619603106985643013606049735272237219884021389295665259699674944757086871911843214156676897383565364959903862056221503019755324340363629639981225495170690617647959493970253384657136655333271495166757686823045207358144567636763411311366595756483423535325244185735099231658736140605899773690817869181791884603642099226138201752804534811139029757156891537769439943231420305198561629536914044404246326916237363118116835068284980102458318577713712447049388218829696354689305862816437092180460757402685896025707385532287783318675205838155853235672402019821107452918846527388730019660028698489490372021621192050557797622924031292548912968585201449938983771010168932372804924695746122366119022567187193255803019522343341944201179023153921417065107477876129016030833277131899051932401005499918848316057251501867690282677450669592060212519289270638461958573058438437281297311530022927126697086262666379528680118203672786242936841423641662029545952049666707205452400767736310371657166434584442766738415716205652764161832726596922616681889319984237246595387369422117278214152144596981228841286766038708799397677858939734497630598333655468553437433152761490434941345452077578162664194921395514611241428007226439457550464302295839641593488723889837720911344615850588298053912251151208729782920364937885429055081949436486208969393257057813347360386275104136365366897450806222850350642611041447758439833129022445985954826765563792749026842909679419421150134402170297918889887881297297393606379413617512809346732308135873021645860992980848772377610874903030694474227249521634663352004449788510998914368154630909084399446224972214428419535296169157468754012268174166850821561089036319666569590072593306754853442004143067498231327326993557587571696815773876825875917774252507018724656403791525670765366765653345422709724316142379876967012992887254569977102322871264102396674663277855138916602452156353805459153370427462240818778983144720728950506942222750463440906755950437906690673025916390823499754714501148734064683726722162336036613415524105393191355586483194314931277042378294381954876058387860834617553440922867100227110707221600111646881007871954770197461803909904460068835958591278224606254564601349093962126745428378858172658311855071211424867126160194067482262001176496551027062215363455317120520683819811445597406651239493991123893041639894173503525426040649926092653815866898507074181827674422469712583455101660352741924159318965152993903205752874413166663817784221558212593785735116567845333397107074845636324169147565371685251074169395423892800721515983102788404126859415625416880803481948844855581954187885934609525913227437596957186987278153769303487502062627956623645582160758769032864485728809618707060531421745009144896437769492745624746196824060869356795319977199555405544449465787259916210328445947872119157707085013776502821421469505109522616762629956741228842378207981247678257651304690881155224473960582888446086724413367344570394424706673554128608104247259307639611510886374994448431972357400498537681217648737385869453208649266330059063622608962872132057112020170543739885295485964917913039408701162412663985614335377954732891050064771484375839242466910913772608620426929136183803217549726649019202868440118599357777007727795656969569268277111360894547045552715190950649921809657190028298864342581433968395061535151019290398142261570524386991843172132717054187211511334495926735099276507171823579279821785052134779112618554815935747356602357810763232336784074668652318655928629358659866265881710469971050281205409429272488079161541077897956127045560800354819620428244920760049278813397501451666802256362567363411872706683225881603227477013049123007017668881468884799386898479252044005791727679787300154628822659395264865218942013189008076170409930423380563872842341001644828376718737954343499404041512619467887061457483523788473597149360409944844591001184296297936710474347201774266620360708186435037283936173955151832283032613004265911666267973370442229854367029317851814728106032993911822720787194403198074711200633024040358964897040753294450423353832781175477879049953371295210039509202344367546160628860441949513770392018149946477049136445270955353659718804729776200793656656202077814713083958390308884683292394863175340995191664267629543178517646305073814303743143799962022833096792372425365106432464016329003744852579020995528895311633497907035959468462498455664165895346871058671610891661744395833330998355127349705499516788421126162962956399477644961100316238216653907201884831028189848241795772504506175954466820234243921876355247829110808236850093208232965471530655517126279017404226938579343396658590283895856336488547379175357890391524147062746923050079073006642743657381941049273142091571982657583455285042791547553138955040081484666969740734594926776610757764490422838343923358746344140250453043683180556719241209387190210843776415235548688027237696233749309635416883279367132357918514445820001342735449793692108307362601680551159011745319803358045930754194298930248286495915239640109975342549841663061258032571724794140856322915667845386171781983695248011673254345650991250855132550635342589997038546248899627974199000639334940595567416465241523271840473233437767617289235867684324445792952990576523345696171981787935632620811232364031726788244738928853374755766852289219004761077045607002709966932697810079081891237298984917956638208282845630068729387848664928179319233997205382817661945892597541335826183359437361097992268939804815402138562899579349919185567876800175659024306376853092358500516575196321476327027795111221428123246051883140270062053084669515742317063995119349393057591149703206146727352086602807698963040333613463830138552431583780529435980179303032225238209602181443338510873780650932563737383387933869341912636688027468094964256308985304249074229997616832202612915845643348837467782157827440258413298053689620802424361916057294925979481054538152691986834052949852347099353344562473804288090806932473743944445354909062357470092926390346627403294971855209321580395936132034910416270150506831728735528679592009346664471022777965502738925877130057178806947696151096212169675821840322636700101012729765675845064370244721566305479249015158362008946462198562731716549721926307876351755647269765004722550991841812601372926876861999730461376718325303990389065473524827347562482058018432350769790565725126334352587596633242320645638501492882672094912998995464447527805675229208782182716252098112987566932847120301552515880632453973876817593147357247438420516677115543901997784702927938906005352920158213993847470250152668983045553993151290908209629123392158125984833915810146044012834087536217947720911457756699415676254528642791319595397833798120303085440032777547746129907592642626188140016615384591932395633322938151067485249782382283641790319368292589917432312414703917028575891173096048579050355186241536131353907915049581467395715396821291630980382832490944096535755116133006981747794064968671677722153383800332353868194362630346816788016985556133334354367438106366114669830038936238165789733738008292909577724411424437496298551022328633380570963567017062509738416341748366383423743066310251266544598950556421925969690240422618398367603440054058327803872324729358397113874356025871756469761602212163388000582325517171907535976275438935855205701746467575361142264202421809349856709299255711287673832899560093145817902060928481646017215496237334049103182752056056541956266430198584353433717046819279519752239919077367405394900863313240377763887082779926254794276457842220429898170536100966525602948809429208335166964060510541014052756356075612937996307608929698685490034609349815480683379984996809618578770078585645112931766971024977010340603964974498394211844886659463062157315248039631718448337399332348031955657028604202268550499544658909560610329048147761213951745637791249598601393216845985518640056213328827896752466265080504356559025417260210196120584384733720848615258782070866578601296841041399756837314190308067277054814323087761336274485854935981397145187441245017839931024648259406740433226384112247304769318159464361542379999421546387401602550388934472773914744661923760294473672662310446116319687208868072171309957061843188461678926655011830018669307987877627911245334104153102377572727047221674327295288755254900171988847777868936365130672097225024612484804827278015188114477213892890644568236819039310596677513177541065268888132964228580863394906734455088924953951485497038836497344166804300757629814155205527978919053562601629784947998879556779965445690578386478874662415215919739623112249823040429669018110506042438182066801514241861008577423158527419777708742257869240249001672807708966155043344629925796728202638526141731074733755132384709481811621297317621055895629289307335454838320679376080619049252342103659628212687391303116148383588021347502528112706989834338779148668568909616461644065585058177814271906292308450230189980654404043483170078230102694735872116903951108623975971349932319469400626897057145846366133535559069275843855395998613901320448828798624692166104795247826798710005666777960249193441160288409641431502813647812773393138422823084120349619984216488504383337478139792845192802050839475103991447978609448444746659143940614458724058528119547510052813407096703709499138815576382578125818890926368986361599172995475042096386781817469082359505708568629538333840174152074809070089860349922073159687477726479217245767653673547844744997438295965168655151355717786403850390486658607470704003411406225885691051425879421083899589892064972798641358754775764146673576339072638998872070204306698997796093388818495210517560734636945082319094688197779022775238106859813687997844179010206308264203073125480373436800880036122470578355577884700068153302771259404494838233460722240715378564034356531564877573546012671475690324609618960109038601506873604892875379424233931991380150861461895460633279934931932964244853256906932685448874522814377311263391524201848740461359074497174879405435087066254565709684383418186421485190176318824101645338872472175039222562860726878229304118160026159673561835568155583959901921696728315381608317165854844100198385804728484897066593806511411270889740586810260380612227308332218090021956800996785888121623394388204259669935727594103861950454721225361388488690599138218859218695795306071809488836428473636040809913229753949782752996863250923391543861644610271723336801863107730708622682070087829782158477754774456199063567449639211189623885148820782956116566936807763394578299033198569876935731500384428399218781327841724591329372748709784247292731297075561666873351790711257472904003384657792759000507686416083439693370752599466298946243358811178200706809957685943024939254893101744903360955022890659710729255661978671687788877000356795956750949977127001611773486561049928079747318964195704148754104029738833716077066869637675129576134112252967671993782802778115216217777103394236993217786598282083719989740840052612105916203121754722705050495825878109027509820500001842255501390761413234333732216154544463544637177704999727274518670453916633880545864798821745411676951671204649407774164375577322421530447957765023763630546264560994026894810378718960133885232403082556820510702372781701873002286038026092756347778447363431992920386162024144829107947961940080572201546651753028603261953875118434951086358122251700982880847978079947673671695305568144191173477699903110229306568189578017766198623125903977620120792334989035417632551967367499933615077228782281571707905260287843040513565780130264149952669243595143992425075336337860026495838521990427302973590590480636312137837084184211779292246648843344135059156439620858394565057240631906013498280691452265278074651020930786136637744767773116714277233531255789998987409227099888324118239357326668021680859327056259640512869294271783869677684402061794460901626885781108161335360631139156010065907221337610191859219231631108742301302034756200730796772449028536450270693829279072549453253972721185280146210839285419843097023095109474582009912992564437045094404696156175385323752215038234458295522448465578891863979032214511674128575994998187448365530143232487086502791876004449232993151545633017188509054821582491701306733916994664236723667922158189606212007184341057370658015746240365860593209434682105098480926527822703579897043125970848521190548544715602760651924128063399806938388089322908063278700742412277833494797043882766008847220840992987467497972685412785342439609313928105382871234507856744763322050096461909493991627352973719062336729136815497540451463238003722448621789897179222810220118509789778246237679007901496685697663565432791626645509552589579684508205270109382920951162546239257523706475127938870459426156493673027367896332558931427354933900054682641209202609355416794083912239854050300017960579560225323757007599675462710363787622743205986462032225783466257815774679707528383825885135920397780126488278623934691736058362805054488754128410286813773856785975140829249039918014568554405301151666794235478499069108932997333374439392085355632691726190882511563933762803594770951339052790626704639714348093078380701091404795542047650372435122010112970290853754085312031793231175053352940337646078206375265291443604921162083684686904318708208396665606703007692192149064506281976993063929363544529812463006731731860682886757328639816461491231141144515516643478877069960914164780409535462853796283612976301552168246399338055825653332253030495349159695161353735378777476967688757636579763780838585431675127122297914088681304401029997985645531396354960704242785566814102928925878814709478388322943385638010202434697226928211334482108009945703965485920169481129417249361374717026430213718251745908224267403308646912468528400867044479985620505856333305471219384849340458366211354517260244658107544458936126770037990074286399850987352043588197720338913629132040990857866012013593778532222796776685531613357909451235331053137803800553687673526727772533007948940045093064817037509623818553080624265169524739948376126693389211416153363233587561894846726484179437129423182674003968924812552195317108467401495601503681365004604469631663976943285248391202430353397601316504108665083204355257002539676529115412325193132837596004576770471274237848398329663596443438449169216188569148688779344010905769142970629077022678061335865057545156400113941022194016669935352165110531056881842687489729453804245909879215828568809205926959392386103389817501525953778312826041605149274588578898869558995630226947258607610807957018325765023227244185255191229978086563678413645486817940184559299789296213059727470155037814258029658317896765310354719225103229600560189907080499697592939870159797758494413890797413343971987592874418505541742328032542646848922594314491914541573557817530820373419432106175335699634640784888168748837622897180960310826150888761757384688484504818563705377924982878255376870173992083821880289096276193410015203630279679606140732375623605013975636385543529019798474032336976154505480308861318433988305045362951019928468159559381344599324838586219131727827454446396829791954596945688357230208383822218635623156432519728133808285565005516274309118678038022832329135384510226346371892792458836970795485158184033188149259802664143242295379725138076920306119877604868292762423563733679024032354435430544952818299031742835165032660808850509260129510606434247646843504644743787875723492853857407185400425549844948521849748023408882943120906599686170239783630592150713324333592616209397292741940716658144249597394852854904703458208404069653748142516103140585062504046906318401711542200197340631197832431744046576575639123889177772705837977791143020394814862998518033264709230887033186768756654570510096369501690561128308061359866871291128888719515629617838876932592112573753672231162311010069400818038948031242663521005786752200510391077754377055546145255429352015859564781206839325423591619575601071799563404395907614090159972125389544991021474107679055443462082916918471427702161544662207056654506617037744351899005010266426473215970974934656104178698600384514935732650378164042114854322189229045692122268537006626034734891131412847473718577840138549469495962215298504839321649421159418934695032820241113193803932981560645241254895721843757157750760118497688059826304460973798691831526423420759435276303236966045342808927508284800498041701864858059232104367010007545432342787839175425575312880519602958400451814607267018897846196584730044107281129034267067656066715952752336164661466210927795708502018171541391692178959240761544079766539798469544849923134872065353084352904140276405640412981754650958446273729880391469779494582400147109522088243237597548679969298845833963919118724248858513668416573546456461013556208398005799313654069472581466592057042677711752345670793932718678090285200162150553589779857789293164672104073643157264726504741977004370848517753730591249034197204572437300217213203218245060396895673157469766853453695172056053482965043252240864177837212549736319980830458522214811675220934539396675261889584075047425445572013700886538424023634086150377619900343756644364319632014287602976769222695089936644165351416618349053683903854966745070396736197350705166393310571965991747332400599770827490597338226132195443871677258979643069448111307870595775107837138216212446027129676369889836712325535556275019453005793514089109776486317251667128147197998018191161071176600763765770895572182018397757246058636370197788533557173491425228075422820917413803433315765514172351527797697837041997855072658434813911926184873028286600604257704928629987913809879370839390831309274795302517295832728208082813159708293329603952457169788177992801061675727617239735928437398220341797264186509447962590347142492620577408391119576861408643652115788834127987541747810243522957838988782555161135996617854577661056379723737820661546446586471510142264878982878222531914390720365330584194518339511420433267214149743422784305839135438703865760324649585428444756763629235017447234023596979447487156336727848707714666222566296518326014473187804838048628051624025113232065749765749198857566930255728131924550028353611224664806777392514098564540770233161600644433670897719337288498689483539958432120788285002082355866817837152801765809742322095984300408850767512653426907520632913949305438134932372405927386219873765650337592841030717152880781520403948145152365605643297896139226078775114450930623563318359520088126244162105521963942381754099091090149923061963703689902518415055643604507759004961149445065195727841497555737636479138641047660389160339271740106803445462423426532494313972031060223587942519399613375933121739875342325889936629620228871609493900439321661033689041292461238843357313213871985094766796090550687725413731084478911443182796307541926448824609361444887547760711775396260078187388037722586782155017427073593739362339631157677155768290965294661879999213936262918227082289783556924125107943376345879041308155486966478920947427161416251394385850218890095835149429401685458822935793320483763416497617564717807178723964826851102737099649864966400751900156773467029996785882872785767472742203117529636344868764094543894993830582067692805451401753879271719707464921090414687481805786462290992010326109392507475043151565387613846390799532510876086805228447548462447420706937594184091641299994756369479608410223442959381971795281643173129068666654106525602371321655066008613995687331221313770950703628574731166375458026043182929079726191055522458135475673381522029475598403882501203169646816847515093521048765857083883528477331090151057855869182380993187835264317134084751596629640137603654814739651191368409229029010238351778604335504628213009908586048696795827291112173140902436593910694873588248987602555493037175052894309681524191664198072705999894721554082428405930713377117262460477452440481043152113160191800515999651272514992466558862988775171506173250056730215457927727874100063596243484056438911547197926930050346750185946240213584559251621769812680300167903387139378479659484932887617880412618922897321847647614599864375716280898432463792711318013588781295976565393190091157496689561595791825289155856674363940800724011657058643117510778457412895709925572672045629472106319747173406451874811450512503987768758237579831382144844069865491709565080862273090349291798799715279723197779081340719963392364767285621383669560164017758467948591822710310774197766512596801580582759108958250244720891057667404036155166553919694495642558425575339287326682236764260149015880797942530903196776502557154145600070565208266725839113986448933458343179023327516633592368817773594859122347172693039846055658102488054946679222916292691248916640282135114052329975770998705187621352983496190856583960529502095721472127341799013015467515596485219657998833509959546293356758088826809274448141723861824453780886961919166846550344776827346039168219952317614948562116724013714263386242976555866954704740350160153320757121107777720946502336224028590573844341077095678506169839639932469509231079154311734373447108637094372115379419107723764076882556951176360179524427053426260946013783474945631013448487975742956000315537924785767140873594153079854357309861169240433506791144099053222271243198085654233868469033357370488139107755513189547819093611495713914640506266948099300180208788389420948687214419865241516743356329132655874393362549330011853736348556539944187424074854155448073953227811315431667305998309571653283545115412916375447845538703850437243187425388683646895623498333104829790553153944539135003470487536341520577350403682056585302148862118970530977074869380956039626021085989293237627361792381177754096273734297568114691027480387065978107291558398277005082192202386986907014708895477734374445986426855590328742908007291214347652788895855316878677679634713197017833711225704432143392972770949298762284594286629294647805661173534379291909265363225502431070637705381008907523751571062931327116866768968048060758076961296171405676820976185567243408117554823950763647510111855768001598608991791690148067129609572623919388723566948555048998355124539999427369268552678938074677472476169799404506100638021742791193769240226962322200200023567253497949988255720547433857082059728870249354215699771455540183129004950907338906171627749509961633647611094683530608625299352844473021877951420518356318849463071492862296256828223167296901329186386921208269513057207234174194661816513510971161836299093270134828759034317144871032241841799780927080893236831970352925929120148506784835632819066451928792973336313534987090345464233198459865193275465101516520260693670129474989973520660411230496688195812024594854691274999710173148003359934075633831749660916111144597262007959378059468554102977535869164012861334620791239895663449229930114087493179780128645546123944522831447368885055170410747410167223880916823217098011259006347278050102508062772292718519441719965092433120784790773184594861948372089475198818423748820188579683836464672501287828839472557253199585239325151039927425464362809181347892263286219291151911640040508977762018175408782200775346651648288641738344638121130522497830212211769557368191858986862096717496097259789045917293002611793974750367125811688406801816822055218783462131583985915595524549030712507062095662993927735399306826135950075851231111984861386891408662702075035921574011274079669713323297134959264673663379657637145154776669116742574103140576240008299805667258551057354877685656115281836653922038716445855547423909257441194548775188836165279158590738774266894800033988284037739054840080605205145080481770460742801240504854386120434266529168630740403045328228338022712085763850060463530357955174839673295693381977823961619760919999937120063539441940994832301302986365026918868272471094694641570082391914061260325599888371292103063710643800945985976681933099216466664970276735052672762112701127167828188449288664566666535433930794348844853386602501062689439418025316824208474519934715969598971561902525200702748930038017931533123904514884126808359180603921658346328660458364946104980217717964162806143971758580678926809295582910918135949182720881076447868493241881049055751639752257034268097089234509099209883328661004719472543158088594886725241598634347419332480075237120239927487647536619291811273146762747564678646342127438596756578083837672611141103620242280932329820927272723046380955392776812307506497596730324426496942653274600212513528792535988425087384890024700451330224897071281137003054744756126027826181580268632428625987103592662080267903305445774656236072929079481143612962752617016290555741528438668842689863952701685571138529212168748995487199875042275077176520780600011570026588506455336111471239487532162776236553784814056960189460652528123767169083163487788078997923206418609997553380011065640180989077054524474811518561904393187880389945500868537119531479978359267970697991137021301531047080259711068691789315734012831143370520194069593927955041205509876226519801370508638212665979539865186607616351951845752124873002556154246967325270904641582832831562878480713071525205981139926778851487596158583930678279652946031990904858683943359685991365172228517428247290484800667959401356300941723812384900272782603954749257204461564485154023735359870818172073202997022483442398949005638980394095863215986153021845302045342646411620888182681353787313607702280880652035765949114908895167178072790553889379377887150545420830687141319990538747702851253335709003266983743940209634676231043771059776505443118784682635016124601927127234890434414861759178714393186377275283353580685787636350779237821420816475410002882796610566402217267421520430403750318353857023843647589125656204593695778040040017713153064732343224321319610619877394453878332293823803111360138040303579062586166006844161709045929570701731953138249602049092549081581179472790248917996150679148319793794289926038983193509824092232877800671932282811773791082311201320234047433725844082203918073257413207542808481153155937044207019956715512128393918148379595541148154072356222152483792420543100264868316935597502889670319215019823098565354652938932723697534497179077685882836954330877248135184394794025661097901849342712756357209548972844306977395823196548663732386020437990519459938949819339243910719870566417623912354371203301517284429672804955511860048032953318544906810591261465953950784410161121198766718677974911952857312098596152952774321645214671822246959224743222367599091814706798650050368750582798393734195808843154439319944238282035828046060087662432788930215390322226770085916370901432560758980890913258938412459525283380252988053574875097052784591147339743860718274676142913191642176982500343500853507476580033122821453944742321128953611828895142172607677700541730791334638699464458406026227740081561378984851177289368015336158593676895923847824223811333708728128391343304337657602883427890571998297792526972366990088766709831156918254857945992147829813511395883601855820321222558278774432844993094462851468678610822532955381786325514150700745282273454748654080313396663759601366462999402016727457562480746025599680868780102417566739997423971374954094856035500362260282352693647550405587837311078560218146627546446729621864047536225940899198206869779465025660234123150733854287018901070659886706305769120378738027952596927178910526316586316668721876299610992450912433655798078026575590837436256566483958510055033872507598241284424987012521472662625840440412873689022071367036846089985738553416054428146868352751179672327036480036035653225523220692723101959636419611789960508138722903798814475189833430109791482060363866096060632751600357749593935620333160513572636639922834762281793997757771271880047322532004259297562187252486551200186405220949309483534020260969213338331355407932674859340211261593738111279963571710687139989077273417992568469734844259291859329013750499083898722807370063130777058421766098519972945857545855678689530620115654378333456580526291755582229188551693521375011669091009082967043612424664509845123533862567466951325901281993980799168665363959789925901648486423747064226409166301367180473370011686774043651259898625102424171874648675356634248454963119260862577275935438208448916266230362200940624474287306030979809677411482838112249322790139307883678593263139398301289908058292415996982663210657091517472983358576850943177859184447063343482090721960977237543419803387633688461136492212638039711533571274837510018578767983323941808013267045526214336049610133653369740634516662639428882967215218641499270010451802895608188838885239353255182956794382107087044928007585762000461005710080360291531199202401393241479131422231213380694256415678689318610734716788683785253842704711427082609174489127903220146179100501062052998271523443447593920955034434423498494507826631602264101328034271282637912646549602092987747927754197789345650270350325854341375678496728786643137490648894428798503573162985808699431746415928950161810557730847950067925791908724331070849689467929044998087351510450308041329217514296314396668973978990486782973777073907239032454748536375665940404212977586203605080907166616382123384001495246017696518658548221230896059328797248128876520987857714877271064358643626022654460931817343192846052132766696428539687493107382368304877306592715523138506016485641228492336895920995692530442807942250454758193143634102349625619819739148316076366469923699253104057397681023395208892831496519069400620801477818097273716331378841664476911838090945725131636006132341523950809929690600289152337743319594048695959204369898829627963459405991838673505211551520917736524301450313800447345637179475541251667928248779405470933105549384701675050896633763776465284513400731954685119856656266305209849836221159802921736730578253601367088602706405946237479811177387912428052081474217683673601797138283603841427909685950159594450154917558012995190403061767876706940902425022751709593003747454460319420298312458456236627118379417465662767367376380459198530052693160183177951549290301705649463384707614879973854870578885793282272432979741055298871237220175933426506437611564517498770750294529281837071852959162878863056142451892112163454611995921133054468953405336958964629154208955935399854253699647607002987797638059493989942042895529204209393903682865439435504961094229277208286879762254826889841501142289351328945052266508380324505820110589252974291356357444909880091962568751148794159997763234949180573931204463158300124487194086882677516441271845689348456953414475151439998293493773124622583567745400019489454144367661477557644908602583045139777666292760065848294703225687962433019065349244422882680844035320226314460669714200027024597533488026398504396612855660229832534798497629086356768507836199514952143931810254737325772967027667747660778455452373680567604443941509949486389600793774517880680803048368572041213789712845456116683159716523352643711970602949864104191336440886103750868599591865781899957772856654265338066304448154300126341696669132742553978600486591224120979439020869560417947970039393829019037116126538570830303439942607027262363994781945644403940849694396039068767991600736344558636937366351227418804472608386475797245562739967899083183537966245857013757736212676258106650053767137002686649976690094859009444366541256821714642768109242537666521152930074597291327418366170670132641071290446767873787100220798968529414405056447739282229230086936288446293755530594913644609435775888353472887951634590343236038162758921937874596637300749680499585804468442155862762907717025264238560324958183477016635847727877080522549096805133916043861963004228285253885753386100395695817351456431154607359066547626563256509123567286595812799237690094368723432078072077077443111353480604069353756708140043741276589095312836633786110520727231862639421041757716975372537609634487852495666365994471822483360781020870766352914017640233032105714771928842513105571801840875326101855857552512907949670104736798060825623663898121606958422186795043400542918372737615500493752920405228425193433661811966165483487797838109557091291402008264771173205929344841465950542502326993601971104727172357870663586751088791311618200761295715101734514772888681524709085714526588293690256983982645741080322139333504519468129919730294204318566069589551979912885839272724335000528815657886995856457317771881036663661831609033404492474476514380681762862866579086922216523444371001529449719560860716655981545175530761774157237851583213912130536588248268640223097313345040160379952133535491387747728423571688781613298543712713801680491028233993633877186979674065102237635940923043576590076725241426626036834655993586579371419573752804833286421718388625056119733236866074217792854979263360450893019038025010411081577055601866245986258078419552249924046721983066909825570467832865934759411195224789426524404221190072408946003214889423230638109429873517278404463759634497552061535022848580887794667052275600918677769962241884007140696403923620107317140858559646771840949416000438718570486967723255433812099720443016269592501846403983725998056222250971009319232057839449406418072646018649789954335415733237361200825340105518541050611482469274346265776041238879340403167397499711425881106700606909903689135671038300683483422795395235718980957399255453859091052586174580620729805810669779505442925730498041526483338291262963829207141113042972310411987439610262198530528402151515424105715503729990419830025585181399681689917923630195733029062041124194978295286649645640204180234365787823784637539271409869477754425139963010040947259869267496154785114002014961161789424708352044211240527361240935598789698699055824027271168333722014860768532669295988948625361011798165651375727914056037214589586615880377525763229624366196820442814055438747569918172093051066785887365137561790586327987986682024395143438039432136360551296577769048718101815149075315743562863210042866541999004746473283831374129736047733363971608607633231087483304883164182457124268307710124079019345467077026504737198183904221960804827590853207631537084847014934404938657160041074969117206130987228166495981176875206800419952786431039700051860925131607331727380193384909160321412099322494387521991304719068693850910075777267196806764944392651496765772579270539016869481214246768760288783941068214900316979007883207143007546373491465754890618672690994575526672228987374553704459736906012621647483849207408430343925408111464534714545350487521551918350871294190638697577307137870759092451769305596200638398110931511618154114310053745078447500956896949111036941571554544909918802802721851503334253947934811931856838035419843640933699178469575817721008020075553662893441467941432901768459842479258089349725660102199068205514403354428521503188224961611355785982820724719591860239269673683636727348597607394595578976062149603397807718340619365736393861185310010794543190341211681475966166992841078923624835456170980210649518360150580071101212949520255894657663987252611207574280795795123849777342208842374290637295192828180200292413674819636106182956880262934485698747430849760545257016704223329808596653797701321724017677457186642196738188129548711068565794021743996966009593603753739534654513601821185720148315333504811712028057091053865713540057982798860384809393432943210631388192456254263084860672025447645449559412194624618396004521504537578574129003063330236749610872281536868924356535830277778954427991535347474714102307315426877567840449091122636587144880757836995182101431178037314594244546198549321389749731959321733612902104686966388184994420730346360481252519330170311764149138531651625326340937007684531085642038241601179577385447777561518497501372118783286517380303390767568690224195238511768363568814886151205925754222491300277535701616606021631041355439985520464820496802688115903793685368878986554957135521803391454668258474641508030691043576726672171947687189825427593620937438795807119574266136644031683488555857234331173851201219381204467590854084407879401803662468473114590132332871369053971292678547157802790159003088108363817345381758996933242153424297474822535222477983936661794528117500453693555395521613582230682794860204311088606346444652867551736858433816641374051840152599750457602646247918855237526889982354987239886416324857892898435871322215752057542091788224496196047814478486122576378224247933367645306697197548444768447225522545124097720795418571197797510712197001376190208695899189495158218416954779719554341404809875006343671775577938473010372350693035531585870720927702927822876364744313832197485287394369233906923667934940609645531444152035489698433334541146669158038784196694863468879718138914561066739223540136634842918921605980683112570226118507788125941857050572101497529815350630684368306787119221032833920628230008056362711177971241289918697299865530622347509232007829155640355286136328960533136916919710260045368407371695441403186661418050092141401423087494553909960179222479727272518070229359819008556272432624996514730603835441803198675260373491510028230256534407801227319646721539717706750096411377004742738105866981078377098180870500177318698652106151636480664941581408520916524620477767646816154245798359335822442952744716478018419782099995182470997816887621340857410526371625330195781221629635633216470120381349762739779778133283097161945808286575039426080514209510793558208958743126770556866368928056329494211900886318075217111182976332327163782960252344915958350285567978031708717744039103989312778206703704400656072824823872320001366972862182691345148153617256670285869419084021127509455579666135944920570944569916836267039251535543374582984927033723573150482335428375467789732363796681665689719546962867549559429486417471245248116731611263705771503067576367699731900217797957095999912057683117898779059642858975242316240449974615868603311704918440366365072843941698137350818851422719230068781708287426082465284111087062865248353876538410601111570192093314921303167488848467498772912657587631769153411066170553365353261488251927590646501009468853715287494291999206533222976427951387008267726721471102469756073957647122387179796819886448416274092397016630153732587613515472229090442658460895111377849623797364149122102036909487609821830190222839963889469578737218597732268510795250386553354226284471651416403702727569521504583117142854332298160671462248607334731137801578186427389507027100947003078995298670982482803282561076808632988316975088908704765958149471340664559971974315709810091095905859424294419364474675406550068949303319813135712976804452205338600881061242296982494340736268948652985976325256906943625432200135570793478712030515335367783175770259593636427991760337675280169330513484013251986504994589520289261203090018672198283869852661091364651348780440169992516261857502388412929403537538310095829292830652629963872378995090551427814638126122162422540056850916728569066171075124286252095692874201286146895849125587376075496188366923562582440080580205049148133654759276216643740816471911354201279246914993154879101988935058549723145814446121158664204239795345729863820968875601070928240433729670434282532085190051269441440099568353153645107434278036628291038158113560438382673546872074640266039340897791784577674161567446419409883157239666110877246212734577873078807338620420526042310258489998538586938455668935549146118221661690080873397717304671065879024098427931163106060106427839162124146345814354382785122869436743893451330627667630866027683964345924951585569318622511999189271086234175751863581119867794488327992748699557278252434228883978921387854674731419983010470469621148793055755123910158475535890840772649797710734484316214167304257587061991172924372340981824337362242657426683232984099060820002767905284345263227601635937686433070452000145780633401396770066873229977096018984028263769201850982925017758285970761084026601871570398759012806351056518208591130171577594782133340337302172007650046737917540555646377527029886869422696719707000434013611908634649318156498150617742307991491235375138762203481360153048701569486734674259935032581177838879868676102771858032077628783839074240591146879020890623069454797617734719482028543275804726590084286138971971018164499795608604875194417520596817874087854838015404798519218321669311511896807900992141988961255895147214403066392377689955714548502156450764708973363287199389719633753218536182031331701426281219378723416625147792296219729873178233223432169861085023706332944065111799806571223187619204194726360296111716554409975117559259131032007796510613426046866829297574245333610783723510685305728213190248294004629498110092244245367616057223715672330276904425178825562880054188535767572886591613310841882435044924503370108938682829951814476560408957170199045184669673650925861899443938277525406495158225282637220557114279979257199487824574169275987962394407667845734460427658642291425648836240867310226350473487279581681919928009885432855409563154632808625462013305372933481436814320010365777123014127717400428844621551550946023820581938126789314233957522638954501030563387980845679503784090138260582509059317320265047243309856663424788361306079682211150577935799147995086712680017867677745759446418294229455534794074855106718450349910405053128899541033772614871700957227685490458758203077648611535124423843082656298411253996083282302414815852930858904829052812984695441223053518427833194985670694627137624777847470177994903422006392114734753343604682599395595286445487264994397101697703610290435067632872874757250045522873958281330768938458902253784551105922399343336220357046838381918582900203511711268090686907842742258407466129906284971925440992337643517365133100677370526549906548654425321453455421036175794610908899454897846314936952278551354116506673018585861757247677723337629607360024744456904267328391733935894681123634626280736193059634097537146195257566192019720649150104290739996146501798908054662429654201970674480905050902390431166068413777442922572751411519047190271489937405728247740466674680721351852962337070877465669156905863731905270080251485134853675176226332485570400145800643987946653018168734965492972377204461087963747092472976133308068952250240566061887590857522683689600422279808430383519187082352558814643859821205731425518355307940155876325262057911464920050653255287730448889461249009328268636440272558537762702007539228053591996515876147468436841096297878020484492983401031549192493640436281794831321987000677917526139692231534578233097017277329311375861514365002284237013160908774806156351638621902855949058205298698586495178063638416942974754465383064442035740988798832630468927257141144023133506377491411766891250622276061414437970069159715159618173655888477425272150384533460759557833274300644528566732666965865754998725985934054053836626920422261196618618867990350593769112610993910417668937545577978735532306963765449617618199376847207830591814449473829171421663765849203134013015835476027791978285548490370319065249135341953724193011823414493004662537175309419263348605017437913885403077068309562689426336453352728248605120296415539483969887059051177290595178743725172368784311706848728449342372450480423468465484218108258552959085327964776298922721138827585232105472481385414901489255395002264023073875022215171427746181040480564731260367241974722595560756611530362069806446013805505985958491385604393503898521405228746988008634152057893064189644090629532370329321449095447127211825410392359800089517145545223636026321346880899417939723502009649200038379049298975964539881712271988352540833519551042961844006443114917265080014179856004762149042033188605883539909577936938497101302160894215651700483823592596088123425809102050244107215800640230466975943327984246704861924528147845427090952174866937669619376890670272250901819721613987431693477763671803461326788440707307393052057979854021629083714589044999074408565967960490328315561750171020973380702245057075050747327486881635385217805073659831018663308949633052298350078769282523764662620457025424059055164711238719028147044258594421789183762161789917764710125331325776136337942032440196695844698605620005849758944549143516846963605238604879826116025604951483271651045625811441803722144566160734697028039624202805860266482904989488171501380583428432773223379366587979339464429163993142178466371515147158503034635760967148837660292926512835510354622168759752965358569459448483763621637510467816874751483059811562795050907975690431385174181388973848251092340075031057914654817391898547939065944325097543185967414932597299801704954853821854997272182501729282704504497222029756246719435027610414019573745616292770548513201424581252271282230202068770206340450996318903114333675198393648445930792404903581150714519419792410012045853180028419713881879667772655646811901246812296392415486734679386793264384870423640539669726911373446820852899666322183111290013832429639573872897875155046764457132309454699296445163485603067325974749308378223167957496130400606547032661755382842048492232369376345581945697888784397127968105869021266134020526733801970804786569182597629156365079074738461959795185040869275339415752894972841713923922493660805858908240407457907266413790660669440082084997151443858270540891714706851083185536231822962548090474849794408186202003175517758475475647919761575841713102400145696406580187313812859875516560247404935560416738301634645294633404290621459199062368590449426141719891164237652940562363737041252929775049618514866488806060273472499143324686684431298753403689186716590388823098202843508553055224952533786007613168944112105061232357426418239846475846109925460758870181906292111356162538139076011179343440085791609218913814984812369518140649322122788287784719563581176694010909195226256090071515997552665077309142463543827662487022797587820651853239223281273992470919629279008119005151342383539122882171861741372903708198649227123920754030192885539109966511270679095457611543920009680462705314295961757831759648881698126616910074684195479506398950760612442340005933292837049012014732750843662953603114583940057851661071436325936253871337181448441512360374352206434555780144247851647859016906891823137374188386537840026363141144676237695717605975457901064047077687235505223702607605676050510699732206869111706695348976252746324428112075994398741478876088503484707556327690214751138086123121801196560737395536552744511770727522088301643214349618286858096652553532992536167573950229799909602936587851735303736219196158456661359224035572867528887002877453541860933808960226673797080078411968222045963017972384418433681055925598455038784223164135390820088752831979298870171605998819668429361090543112092711148500613340680313576960028813379510816280837572706736037841826519843394060814022778445314025136660814719421654411710751564471852583708004978091845866280927271765857146047181164058408879006203672159424407648918480619281256591909063907976460809417510211480741921026618644581485945385876100959280076582913061797255089102087509005017568407316320896300319956205903336821113653107383463322575628996998986487560751810557452096031910703338563389585430686535241289320429287030780003237115500035694734988122429317307789850512501693249303108832685798071142715657589905897162116824957685578082090598689932749797626137820497278041372465123344527661639823350978280437845695991555845308125246438070178260357523769373442197449817901434914531124557883464316270504967750954700792577288155661861329730111234512234610010110665023618708651901136608061417852540868805170445809339647388829689251152444481613046790095662411976169590713272307952676776813153146012249210471867876185076967131253103572724754819438479160102826168417649838621905912899258939385425186325641144090251640218189228231989594536116729773779140570689241147763327203023820243040378690924646399101713037043542527522920920852195685413475719582884273412211011640271623400513609896533129330827987910842078035253430532321034797813335482440640599938592492054686730823324434342393062121507879583552150559376187596344362987703757493059331875520658064270420218690338411826251871988407302008223035083488037908838954335755486654582845921147930797079849451914577213913431147336766418020111529427532682125257052071170732881864499858306774433483458767892665221340511283457315462082776706082602894378871627614298044518640956001316612874326054592292540985288667190753928063134029718603247105033828374577928341037588223838254318007656136306984840851520775673762898953159135923836780516416423586069971730428336937265978347145981394905106621716620003341062021396332297324974951155986643923133415847205502486587669801627974584477199819868657066711777594877188732874680960070189457894394092228853548792883035977335400816832966127152133858517707252761623540128301435019807974911321117478939861552604774875595964427638929345291492619386094450910945229635316564514231507936172801027842107586645752742621977510435384566319120934301850855466546264111787887945509630574573651725911893918624068965371587389338696904287191586600657666441887836533008350112384689935468426798997037762954480126262897987418926437729385872167477782511885450094982353953822500995843498045758605495020126914977935145908583708429778516299937619734312536870147326460476299346649531620858643017195043662904957509542405969457338230158192721725448693319709559552370487357324252918330374546491551798700342727684857832914741344823614901906646128074634343735899335988775661429017454744072623645120654969389025767439868534853004401187125098517497519193881770801967832027603512509178063540408905140903271890775395422467625612912488717021163508018551461248694811489448983678310235736198241204182230064172001312396451974825687442733127730123296410083377049913561808480949301084023035483318278603363155563374390712003793399949952462755830499441850868941680066807402478401635121055303196739693893077256387161166178608662757656544672312336086478440297855205098269560172004783654082912809822957951130566373520670971992097316715391459288522070155844465747774675333430879973669583079882157411962555327035459101457333821296124099354930257744265947120122676204989535104382191782323228931116792396701629121986239545161297792009464010733653675138917443509816255478632368772626024479568430221806222415106000780064613280782417359166217577753402187256117613253974430683970561235698708686258222271345612667429943770903616696105817678414509560613071609458596070635799522838715020931345832520586040712254029343729248459500151728423750164591935543679891851495617696781218623788149685710718116977850181662765869054133789562842217392306443655368580565386301580699816549260322137143365416880115558181079456388402956928025954640138490939815205908671329815706302083100174116482936060643471823590847611078944774775643968828561813032316247045408648343841043733466695320908435231727625989327434027661012863984932676061196271730172580835679586206942806030941115137361139310609093253609777798831069274052840991680672852033830502589457425407838851027994071614487842002693991721465687505183935338833224722832207378161693061226494202794919654738689125743905340386197283928877745177488261986049328132368294566584614504009074006978636402335048236942370138792404163297551124337604362429712015091021048093221136564470417744889922014537798673859508434640412362086546130438917819666664451839788824128049008088770172406226610584014067025636188931948167633564963188924993273523004549349764405916267395783331764100891343756139424557433411257906473442387578953539771912645945583409299629391872642624127359871124367874244793832873058395769946809280367700966474923665178344557073751432046935565490130978189928899107873933445499635089872284196816286630604372977884293510727051883413920426693580249822020344339019554178676973303860762057401989416997771047853230812676823496602633737201916078686127635658161072217720367310403698114154122898618988413117084506454416228887492599001990762635902981836862393248691141671442074834729889213926099293764643818987533581806799993280603684503135498408047585838430067812214735161084939586317202256455062809618076186879452639388773596880538785781051259221329128574764300144508528864283896711723920284948917582866071603637212605997084809023084154007523836820007788773225899331367435755032911399062166158140620447553465484858429461876413451020145008174490558033960571844530134987323857737300221981999723343617190977710131787701953363575677159451086577267406047139489254308873061501614887874841237436998845211082715048053324381993591623424695526243270937978006596268514665189405502923124454679322937078678046639697158229860175823375865788272490689792977695231910962539507390896244542963541382123969694484794494562145118783700394083414074981263877475968489995535184733337926536845853493457765378573939094197247064120799803732862759241337570587770776475056946837833388545705973312825321085599671770584161858575166071541224254414199543297649265977110471989651724790049640869568042940932447112753188857506526542092455839780055714232664571319666368003222247022706024845917945377505851429538460509633889385362639681742659231819409305781037277708781430576206235906862000832993599073809990728112864696195871693723505163545635939962825520136433357308367201020558913115609625886730801877906821149406566562324075380595595667644557693395245154831483699421005570867830597038196692792851817985591120096001520259443191808071536851455027392872892128782953494212438632136994339168253380495492824117790834906301208066451337168530977854580340956624738041230130989757805662303885984797159605394071132109447776092295635837205776915394702314176869994646955914508566033172471846671671375594882229379150596008250529782833482135546102377116337755765788674849451392853381397643608336925150088754334264580941759413997508949167076537056342667983803518974516393270246169829607101525070715965725318238171192763204911143007004304586146110380517340962979076513380705386884141707216828331731265686067968110811078162611668771316355383958875654778002509204583985610104020462727796983352419902245568902880028206132742265855747343792052432874418847030314338255375161187451925072351403584999207876328390576406479239957737665275290265948324553204543656317176566191981586256914438730217402913748002002903637317543778607031945138121219367272770897079253267064157992494539176921094860966301664851942332279983984147678518856510269525744141987176865269909989276968406680645679971314596913693367170452119752533793241273164652991909178634675769122054227276240999921854816402582502999252216625586966039276083871846471430317763416368955585523337029162400096898737648069032034103385177849977385751494523799632516612151260496030126358484532569177664493748106817030559821314201416521534374929620023116903874798021224415916364498877014664057151628350930359790612940329378082581223248894878681157107481052046879388157030876043473077547527644438547128768990059505111154447955879139481981070704021115968245939320282589456812690798981635470527350617595078808565991005036797776832717364194234559282427202139470960141249887574853732804582512768913823467579455323281509050474410699774295116305465077650663075011455040319468356706667556970922474787118344588127494107878241172577601374453018394003516703956795468964040490083612791743090642748802792338612439187356554035856750059244426112916095580691246471466287413799179131644886389138008377018695923356380362607194933074789857247229557175087833518556519366154760049752244962080807709186639626581007690008551495165513758143189576638305470229727610710734243625200231630540424474528919741383527961314190753882054809088397504854644344030305219250211187611357708735943321565032166735312887342615467987174076903035474210615795952179410537922844146039765217582353399749057237184100823182490840734550834028950220638924035999579945572668213961578764448214773139061857731306611174070823396862984413383549648575158249770512728436654666082041389453538853049378403395160843998937609444780173706022446209991527907802507057559815221953704650742674919794056157290603831529275035162388036305269399750596676550469331982166699109251705602314189558519351567815290349665263239270630628455156736676059848594136409580661393195990678080813528577462110704310666682685382769838299499974661905168407538249969859689241667498876421803497143517686651365773756477309608299478403943309581801529315021472944906612775057688196807961571400302669842684934134936766245521047980559934935496943445798992738862811437633841750826011502487764819496856821481468693650503616243455145570591941435703738435589216385135828903272580332638687983888234699562147525948856621985419935884261896663412722813838218371989924191262166734268275638003902082695240101670501071858692803831392826499817698029374148398056961558672035523340976029352033794299994397683834054224473437797066314827870988980378627373332174491309572352458261748651325107829035685582188228113551160047839106844229617969081327377272999919851843969418061701076719609846576123254745281029831852817148714100502136307044339361530051604829978409626896857130802094914286895548029356804959582098789807665542179844774309414012543668674764770597130052938952812058091592415187214669734034284112348478720212844852649647082353346252177645181296499418027147304767542218600006864297104810531509415901751872153818404486943702574466822886173455884793520076586927963693942925185749942098417053971566997437511501196598720689657172069200789685898475016182705659746803054042264836849323439656330900890170112292894623117481375039797278092086001204058841564825197312341986460757753275160563010821756089506816110378305201180949789928367154618267080438375393372546089216829202364944645618342838461361615392090656990608938136130722739357818316069796949953784428434560888664092755696799220286985523656769365465250988956583696308236525046159712619069511364185558961968444602488430991666474585891072111528238691236121552538173755968742317775019880564385216631915644887692990460571087508531181135581814781322882012264753718778765574923165189885537849406977102683029105134844268288030990870606739642000802604356039045416267715760391199808338660932168485536764600742794147966484936309420304251578068735432083918089478871799536843884843943750467706662105996018928702155709522508228337812646043892744036486557503009215629887233678719793922099521654162138242520563890073978567729824113812267526977909921582137862989973291477625008743114023810670980511355177486399605398331313211613543001800092185656280099774273873552633173229577958167347327065675586646411685755888303571878079336213455257921745576751717493192662387389273029410218465341893065867860630476795903037619947774916055657652816484028563052756522407862747234739208847768702016084862590504162164588531300744728136742493394967275465798064007930644852832948641758225454709172741950085225058983875149065418396592214483727820461355844280762863763022803335074844287970699687124005429784720574048099798067839504216806622290677612334082406925647465054552834964301749486882087657918042370718576446556818350447006401587515941493866803707946630328758401758348502151132775372712319464654094741167486241360808525855557881608406293608016318198787088829830029142469127938660655674098391685780231265295938300054064484683752801054479324391267072918800850336878414483994738502525233489224978216782778250874701154962948388621849121114106348975313635459865701798595719171789924615227919369541598595328811153669772379569119987601725370927450728309201797884512282376772084852828253222828867065590829996278571576818589904131407108308789334794149970387870150603110703525636298800170051473953086275230195045398845843635670089704557672623398278835295273651545091920662640178401562863273013066606097947920218695607572755986708410033524808002065350547641841588269170409498269640068779798292783770824857623006059564534206296850979319410236597440514621004160826037289004340826700711660380819576257912513523756344164449450607316087983950895999035739774124301489873373871448110737103755747808643658133894482795211974624780447066212802626752362378358281522406382448850255066656166887951980309900321658934235023872048492339689631023942132918385235882899851294818919748359597825854594019690742207307546408256679476292102629387149785013830920139365505254372465835350428645896635907810175565644256107618258349361788986426834942226917907689074073049633155015451493137437449443700677968053338029842190890559246924089909965243084879808016685888770657937706434241126460415506965503969034215906339175236325637371233810288811877125861765740715548788894836976603449626678694997691399188879740106194322471050627241854181015340402484646039422985598727217849240817716908200248746044055644636840238886949927654871576453118078348676642602694032689307283225519743828824590954887063746150679696781336641010829479834499747177003743164391554909916575559982624477239658144708428151590065865171284889413192124486725213833411397221733935840931970254617886517011401714337310736484379821825438556771054995285496717106079338918413801169594851122238609450643728917896013558583980886995041155761011800055716163852505735856911984020951170421058101207745725861903279798656908028874092304655474231598915576498514810519246293805335772027712902606894349889238941115506491998889107851362685043489587243547709000700554442410109238505679036350241996535588090463899101820256886578717748522254154419901203526481532291601002303049776491997294894277069201246011649174032518109924185204487488819377621707732908558836642648603909263581742706136175845064496245017760689740275336803751586036559967747801588649296839381499439950512591544119798009342343301865974851390046541848497828188525938356376047775294928831319469600813751288506630677335216348178854641410544886310640465194716263535284961687581491459111625792357897741393830629111706612707869878406225062118822760883169312209893438774662106960754561337740901889014343483915882123750649470198888253920137339262629225138430997825174358800765948065814103835878930395564731133927968042951482765510631461049242703644989973918697564425695468894930212270850054565388092640152288445524213528098401209941349566612539256120104358651813683702483185194477293557988870341965558971117374072330872089176017927552905828244628266417427464319533984676395008675988881082128858691896787808249278715916481306918632341611786063308407636699570748733807280887948212623948800537813405002449371563686154273773876617931295530689475994504422424487452298650881731566722262784602014838393071741735130287754502518405181841987464747472567564313010808195652600165852302371018086866550591703609239980245268011353539054367770051193531015867768984203386157416155876165290912543999286425997844024433308095686959948396200859254749396798699380063037741550391759289708388729773001416879077880717802762248199790887616752731371376992441626184451809458366084857360805784790919198749513766965175695640506536000468183772156089130735349080787564391283979166117353054558039653975096934285004316698958439681897130746233943635571752070759112161539441020873278329543405487068646109475642141387840988963022812620184370198510623225615608299330776150873231081767196165181640745399002028673305115873429992971582753178402569420711686183857399795352924850652301879307296040206024792265422715941888914186836234264592171059856062231593947007983237322981953521081778598027882575170837887238900322651675717246034581695463233982376477403094344977777282147165340771705933060095291558147974307188720511629587453888389535262614464315398538683818372652960255334473034281863673580770267149569585186392490031005817673020925884356961886789608099254225073888511012164615860156818569868109246406969241534635678426555381239072331638903564650682088335266422384305740067959623552288698894132694591792561469772271265392769986608318422855828923759454554780923620062537336020460753185116223209897483635456758956441366022781865758241110871562749345476646257985432856589889182019668002841990400098942034365190151065073061165702989542946873483254153240117864568264648506491337549191799077802081695190755848966629219791219859153988239558598301989809491226606352891155218417833768022126386473131721551856875076664064207368301361535040050280675320551027530286164365589598659753794587089079259572550944773295461676153410316694684169280254811186779732111514491785512821662643124592832405390110263532514591530740385536167963507102622155310608832514493269497137142077235182280490981160772265852193072238755775035565193422663984401258513329425265177004106019948546573118905255085071847076909731627743118623460826288272264880021164445331805883595962627128084561291547763513398608558622013684488165674898442056904221251937339928590396275130063500030464753755303856210386794969317611283203353625212999860477967166409941809202146948222631279946023254692989381766258508977644119447726459509458992238904779677877747593824569000240060819090182102665066078484414006301325358038861659282640720451015182910654445517261750731186296306892394769584586435441176758681071845883693101459692974273998035954550941681290039942036102226962739999143168696776368668196904445232781239417774618036421034831225209883384922450614028255362947010507456503285922479364905050972277764250880285468278423845332988599439391166403256430917764333023434940826598811911922999744893179979647515457468809617221984321677698087170568170351885357342710411827343331375207137009903228483229792434227776489654256613492615717998413635982140074710569112191931249579974401654669299013924260937249561788818876823853185543608855844693659809205446481842556695297186600533917166805946896252582761445255685331646057117612256135621256816100962953325964421181896847286411051505977680404680098384413427849512438655777113374708244064687912936527094614673184985694594649120402707200184675767858770796868336019892627497204833426963231894108215292473880800613767042587514862982220892466493459810144773777605294006476175842901514560208468343159811787587847212580614167713122094289089337028599433118407695032781790754865447656997726598442520733735180778019206504903933646448668560787902733796351248256343615145453813313226550748397067784403209347270214833717307256980327796699490300101972446272085233548039215137158400847796397704080542065490486718446306799452616407378239043416151948107460477943184764933709180028513322590836558825875871532244146322701594834813359066044677251338828384444689051128461387428914068326159190975646171373219623419239174864616547680099512035979542801436127724410792391205579433707962558806058385222730352347272926821654208811033197209144123901647343675234187296226022458293642823147308944961757173769688050418773600810717866915281520142673854145783752723542868470757405848813019881176115493774226987363103543594978917444771645095317351144700754699612673274820628235912472337978400646751233895105701225628916368667889927019379048283807852842994063475007291059099365232421259242965334113189916233205720438739310816503172649013670241412532331784723055515824127135625646084406493781848584219568852458444413734578267549232137609198526908085188175139580430513959081966119999704841925237563014922075791457904108833485468279302106949620581817010899662979066308712436328385774098348869409553019754021209037451776698256290824779773322253943586182441963345735494914910051043981953473506730452546845778414301424181451353806044925090611126791419019041207886339054660471386674106372915356378452389693727932455791474680677210167305011904750499611274963705898424443539714667876862243030304406877734110977676918032245375736401622061613630925070710886000175646096443387789492999117074227235307689912241977530807519030439657460147992011368489853531793033475815565622236712270850818430614632799392292729473137214358677190164492280283446741298166392278948374816096028108437011563904133565111297403255734996692093130668221403648051880723308992740497927882240111725370074565472916418436703464930360272331481953141086981268118963551652464875744289817708024884305982179451968877380408489557382726462271816590655020826557400516743208094821688829044677706046921395375619797901226048975251474204684760333375799802375262532276796464573611507593566535971892613352935766768072166131137185391895421110727420547499258640500284161568013274290786847948725615715783458866184943522267909417029422741475708390867472824041476164403843752112738906330114312397881280073888615640185146092002613008701227063172438267286443357315884966328569329885496328424195729578466494982171294506186426697591938090611849369794966712403864315506980356047347607856380392500662282246850444891916921826698300454417723773608933477422092612846071723617068067923379553531642975909384440308310821096521422928442858354736183500214638424044287082099758372008668137585158471283822279750299466392842114391698401211376293604720287743139092904935260536174784068952460268789695755086927348922186898693911994951639363535356800570016134662179677882078560992826194816779984735744175896019157989967445543399453650757963551699538098621695996046906032330605464227769723252122757637984145647689310185891937838026202677013587797152656037980288808782031760779546637343352788355301416438940057542545716699387054071953092646259046622937761872007819801100570888170393824858732662466233520253014427633953401838037970534167901863515824916616702213582718944718910997083818764131766467754399564176409877503047700858800309250942479165196591564265929345617200799021984034165646556561362664895535923437604317925777116526454938325673867996302968967473169706232918138275209146298512104803705441485474724196772617371060869333762506001085873702350527798434410423447240267631092832136878786458171657144259169225564689061636680921984897608678857184187578269848374888676237315865593799082466069804967170959029282113658883227037358536435603812374233583649453120742098365298991269356149879380042770410920084034192821602948978565751448453685436083641543431761171883360357889285432205647259461289833740520770353905046131752848983669767264552055994830567265971339789174114326776555519459995786592627517708973222745543298643471211286966505980461066246668496720531819539821453154100975426682889357965224331408318558819602360564536568861051078561138590671751534968454427506962604274650968608715003382945778973197719936029436856008263800485098997201736647028061198124046210975396653774661116427573851214315565417066547474796494715209040572273199619644856502946959556942276771247017117698562614838665398308061856612550916519264517764742772149563938804603483103738911216535032774194198903209019037266935132813986588410443209230150745578618492749216059248574748526241561202186476565923028747815359873218058427472513223930290586897191529011495198633115319009388268692732798276372723518432555676147575447758186800332028940634106143399714424986438774288021020581694143541656892489365888841057008973959582988054627525426432513618634041942967594552389347847446026870923760188792674770073817948735526166279259146384894989680741522249299063345770853172998286647068415867102230123437215118393540621753577270382311510767365161973552659910829384448500200549267331727039678312991404021092846114189626511266458735703352144452195452841608304234850909532087815265888253846272327412723152868323273142567090320532981088894779550336852132159449019742837368549556833337626665760991805748477398433289224504725697075267185197280899245589138458061216097307658361769379086225699667443725357449994175949863724642929335077121553866850023429408960413465754557918014030739386526894958105361410138574669548318286151584062708457955254639785386111068386298187452603573946326270054393897808829418075992200981079533891351447608206176885737437511666215265834883944218399632206055812790913494239952190490307626788944905014825769094996161537061422059576695730687572666339726366766833010509210237551642115887855869141462587195138373243647407261594130481931508521060707717479311277938237109631331126259531792795095885857070237508781500308174431675891664541841576965365812037293765068736516757099614343586006586484012105774402797402611530611427112486926920575476196671141300534180911711085043659723492007703686227007724299809542503724919539062638323400483322777534989060328136128728879379378722534739352658746904665504180138752980255550436838193970251784793493709932569307775084478753721184463406999675092578818617521783503129504201972290569749811945887764770889204533504376247785427889072140093420041862230597451903079812146758256691033874801418955218704669721946184538716716619377067629121199499794549690740122072900071868953161140334558349030194227047148062674543554032634213051774536255145609456136235284669726942367658257658000496942930838910679606869138423595943936794906129382047938534310945493750639575624305564271311088040711409840740967764698078791994353941441785634931267667722233197929627632444776938301711834454144211165399727819112108842968193302085516882899681277337868705643531201667653286902555172805093832690133385822049440687731628842369288698771487093892218917476692418268688255084155395646882272169358564160543748640594399854504159542093046011325397059667671383309636261086597887133788995069320238262101468888822861101515875683539670005512095761807413816761030586602698642614220428484989883642138452293712842404243834644222000356652484221945684468111058816840968441677190962985508340513059410271162969171848521718938902936829904164654520301269575582541431687123044057005905153866403065529930845341844461745837833364216300696933242975206427127844122674961601737568915950942597775979374050665365929880844558997498447244705257538089247459859527034507002836982097327500404083192057440304044124567833824887796876864174260213381680364719471838376183435381951676257914071750352284821523478251219996369918473727809710782752677632923968939095974389285947231022346042751548811311088636591753212229440026906335303698817557183099972884087892978885121949335123320615537999785698628262259672776209358983359061993607066197486687808057001785195245658315479076817953002308298831492885767751228416998216215560705957859689547217299991270013842380322515067861259108836402308735097771836987088224327745728837329745830135546192454160221859071609870739010004253177971112857916078828010072353198674182645945525085319380729833838973501415049049564984910641468762027381292639061045922955969398403188119025695807312233066746597736606507093204903055610180298678807594862167739278125776634039411164997024883946312411813250915954543487384660786820910348993038814166436204850763126694770966604132688250035065677866690935339136341470350098252630745531782349886424907723861929379316355179750631221279608162690887511887536631332710051758478497116142617227832827443928821545028462495116537771596499731098722790396991831856735756178350053906863738082271761719269562441036480487364418332734973160137636207035719951030346128762250024951639009647114674942551174244367936676600304939142205177189991502394573982626466822763122486996883171578102526590972622415342807671955771377843339998433448976108524638031928466117529345881756185888437001927270889492873677798221756069950871607468739911239378740219506305260277221255620264371789583822503882966768439967852411036855813175687602962436804455235853748133706583768768313910770466250620004833105399749270879181123996663326518931809504697257953112178047957992664230977677280201185251797636946704032762787346496949139396877434544446375890875885324207253173062546690221228392361293915064164692905175671663430581979097161680560384765599736818332696056255397818085377458435679883903698275684711055406886068307692891295072451030762264282463181987355854463272078099557196397442357866075341292050385482989563029072833936534122712430681885548877649288368907871183194514945593626697002212149942993358673295993481536625170254847556416905552065957997246859670013808525680634870867371532940963598465605859585979316008610142576342418005610873812852431154522201467397439318363475399316093916798140987293451626162763634270162912365509730124374010940432509347379561375911448668514704264567897966802842059829793673667824468452833644396897314524280145951662815688256641424816076192824634870893057006097769822534946919000734854256213483753750969420702610567945532316028106299007606385992685736451443419561939133146823005208283328920657288752694570832218031015774014515234987420187212370502587304589024955501077939231343893955298661631320772145947209147044268355594403954920442606328525364785699725043691036800775207609454587824479554355704338692601113362590296423181156079527892845501027343305498446527775909767645020467255609680271488325734113053106510625923484750213721474505276229913373087019475034851892697489906338224154927057371197080049909069764534498829750155837945501712712922772356675945391245775058210908935344586350281137878070615677392994333914367283079767785011495280277840505942693519340847156978975708223257950027234416350467354470690951138763140495915220989000036117398195110509250301195056568060935006795753517688017904652002519653281188988285721439917406306005878927021470314508254901711820447840264160515905469079623357599359599973695408194855006337054420125650719422482571196722741560621190897427794920291426302692560380704553321469893671251359503098668566798566351487245310642833831921122559622563949252083825432295059628611060213295914075241079575263583366266979358349551589899783032828080430639673442603667613465708019498506260633258907125770390472646057501218581713584636886349367288041163817357610036366142070020735785534919342299548589889868579947504076205240163445375534080045336989327709392150794967465483027343433413749793098052335446091071325664942448837614775201952195143192669914135663526653721074317756676537880569108904200453794314150559908186813117788467293418804891749353325284230763003445463947825166591395777583574901090214133045962524432930625174244026308938946105064065937685978846192312257388059646596028996022191299719177004989475126266587412007499341786432644356365849897274819403020589902384064636952561726839912362619513107698197433218019354052699599414539524195158754911184312124612312718840988229112027792181682984107749549427782715572145295573045971639972972516458040266732065319630103826986842352525924747709838446235042459391890710953235319028298691907314200826513726230248682036609781009018297572202565866905759655973153083827215077483250494124099595375494081673551317632316871042075553113234362697296194115122362786182850079681738007245817038359363870543137756886951293508852370080070978100198937263522407767394587465500542077283556666752941195707198415607991771930729695882017672261300982830539676014704292845304961615840454184255772638253776889265074534428996228458308582717672389343543357716252449540923742503761676283484858377497843660784735020869011556650316229289724718919357233556304693973374080830861689596780912266025724125916533779399803404520229445837540913764224603825943686183294892594224978623718344238694643963037615861262703507177831214955153614626673254292022733449620893865391012529124399667703824750810248819123250272562293671137340657257244323080655899669849659746695231328386592433235515885498643357343538430235769767865639560833498173179464075811026758044676120135031433656847573768385643377014464910226846486660544499283154747492171943812119253722510331316521982872986832270761543787742738142685335721877681453227469032276826541536119299110945701604765018230413191610375096119798194116872375715203679698482506777349657513908991453700938234876322495645894804865911782949431617766576353344615449223528943756174901907048083845885783288560359171210952773548076451341171769927450550789185616651247244393970836764072387176406007480293897872297865487997346209100175671830888378952980525992059163059557192681832570559143332083021433374045369675720965868405878524887833891989862419620372610868035884993932648733246546059864324478887249208066370176927892246310789123562745718414073641818586526906009949188293266386876894774677794478788572552878141702565709013067223646204055724463261629248035571523689121650794860105266111513939939419209111071675224383444401036066610811003213742433075793293807294615371180617193502505551025974739173709539850991094485656780055405622463052945196130785649198733610959911411363752438832830792488551922629614690059140060489115179655824228878959775528380886249251642784327549144286202951029159326584599335579049684974274275939531813455906779332561638033805543354554431926497223808026938715517606348716354142500678236305822823132302800459521308037632443695648319831289224651506458922785784073457042214268016556219143841275685526574051841795589830218258235230514654350743482780338420211464376713349211856487599345578992383345717827077347317959483980661463679252244726602211690284743712641402247563422090921480317101278911406785715708852695704141537436880786322654626213888804167696949388469066874142340101845983284477248928525677191496085000426332088861174870118287601253908700613859323869728926187883514090223833654768585831078244499362648439331301917994414972218872174327526642778549040920400023265162337355079214710083182696958877030301457974715871769686394510995986783887371136654326795271485381015304143692281995606023034778778170022370926546694170001085085419585509602197949844079806686983724314321160225942747124613845326118076543003632502355888064981532557358615621700890835809194895671058139755106657887463289524395717683153634309145747630150093823010557979950877844222261478995895033874985896675238014689477446335467673072273584452400547764168964324444611479603351866003718060944101230900078872716563762195911401876532975342861167729724955579793777082340881687344445056776608758261471150363105099891541069381463271555586085212280092513759823697001287526705423030755859650874446093367923168786582366052433814160096737316415530399243868316611384448822632804033870535043140228746241221148291549088171963357096232825394549462622992047195021785087688560167373750934529874970644668038999752083606867676861423102880492359208446745785915385272920778099976221238325869836327666964801712402937424252237700927993438195376233465855927054523631670349084811584433305280028516309473673424455202151227960904905595775117982636791835771199794963725516239797139046727469674689915428029015178518962805456823570114066432637088893882352093302501046180195614915528964133536238773401092308312785316170239514086136426375554370834850060009678054516701890639189816086327524767838633686674946833952344005555078948638936666331003516835865833604765822365238478952917987592326422265043728809962735895670018598690343835738414832103296698210996893293350646790577550854348353478628737324061704915622434558961053728957170924768450500245687037185762174432293112875076028391060970991989163492555825692442758523465638339440448009016742834188345739301090757025615536350768834326628294016045528614618019172709999535812016192473118119861024667236852366380835158393463906365644062988272197183733100011048425204323644742868360339988537207104169055762266643039433526928224353752121925844130809444736889559633638602286788744215616048773254444249447501694009816835025112945506896936996404056981829085452870388548441135284931514971759859654498139641401972783921913006004200455051018692319796146416962302026863263422401089405387512492678701700586331088371988270425358227742073068233770638340756540068641973121179782556125179562580203764838703043738686639147915157991835189082494536650433845070485024169425855946912196325901163222738644021857580933948314901414470808275774644761662680481736077689631132614096699438261443512368911037834044230606460495220143937412117796570821046724096345540579519565946290107193138318174100522332607448153741878133021573336124320920542386728476003995347861045392098479299842259123071980586098079023135418566118001513718689379193435290407384284320471196325322705756599322198936500574953406735319045613746460072944266024101254330702805671723732167444750087138207485073075225339875593614976009009282660637531008685168559862712099783922162950295563061069355083616098855217150344813440106015062311585636556446746273542295661979163030876223169769649242447163306348451452929407904620062030862816654714319037373027957731368421480611617622386414323714000893578329595617338943491387373526349984163556656993785859893715536256012400082551920865883839441913919061573450001877208107826031204330726496197457347518789177715291298150038557063544711654177111694373536919148490908038669625916150078115524251868060774099989544273366880080811005451272900262588869539904539373741942207606444969401189294944025087966972892651986175728251594440728114724900244482018035646651334710016636125980892472131244705985645054161693816709684213104439868543338568072542142400670393643748859718206425559150473562315258518195401747831219651959785614206258599257231482778903406077741237080548578915464432325909706599275722736510523716704194366483251779024893432034542369070856405527442255984767244643009174962714691350108570071558838160486485436128584526909198673329711931183956565762525540789163232474292774863584282884124622891605069082230432702373174222365625376152779038344872834287885903201048050222118042528353261781992655679037988216302637309455863152549295372045116390343192237696182138050349829768026520336169600548888845669787257825305067227808651184204521154737512299726663748476615565297678574265944898567793033014209583474875076962975255581104399733314916680902089564166472415040112534249204681621861428481205103155132610816205625832051956579031006685210321075853341813741543586608073895861812340543739851275401948416500604337578359216329339916452011209664142578175039771197657165574448674021506294764689759738332090969335527909084369456944630169892437225076223686369989110407121987475160897887908516752433516016913142602159372286127629112417597501548541779930156912430328800347580741253812957375076964068474292528877201808124767870196634442130433263718978123673586223284076970669519102423363165915241038674317245467913957812307530535416224812564074742997610037556821197771532593863233079209693535011987342755594030974490998860823756283591120351409924268752476115128646146986448397245486646587949847820209266911791238996687061912292788648268030464703999480148516350916743045303509059709401820818713094543825283787366987108833551583089580771313157956808832359578983606668189207869099581133459823197882419045267444236691568385960665184400412476385521446508199733848979470763570555609031279603402279391096725942147267598857808651143741354427931776202363017701304537679470062861118659352538554817593180682662131607764068793541720890285035005153336898030977185076305545265627219674812841473240285780980402579284843053489134373497257430474409664628367827936054467012190267022782731583541413778046222523153304914568718371908138405722352913049465356133920781607282268774082033510526966874635881604564118683577408810156556098521435699022921994963080770142935889302634892836957947398722554189106924397298711622244872906203821500632782266376839979545338543295472403414693121516360261456257683653244506287995631345027489601660748024260789562117742455264639046443964632460032107429182800414498615025890675766685582888060665470474853194049208066168667604502264209553272808840288230340673062227994028668415085762163099684644167490739524435811366676334983475915032857001830507535606216417705295230643004383180466337385809008297448394705262818593974689631110299836055965695029771341991094283460822764961730718827604879674532933237333776772291268168622740599923608434018319921894945612201097405355899817445820316250831586596052274421718137457431024355891916844417455411659930825006320669059864729547342391504872859858892233078190024321594545085183476379493774354630350050281104691305989021495783059680543776333544761321334291439598441256882217468079806054806204023019647648590928720899435230559667211288921906923993701364063620284777393583373629526754121542808500702513258649306656691131125014089832494544508036842808962837390786980315766794237833802229838166327332021542302798045238729255916152025804605308452557233739463749740060490972412353970562646388590880239611316570163330583063904444844517952054723635329346506795266809667299419816271551129425547518451744074989745937417804320667919211650546758929213856915933432506506368393516652488003254270506840222440239748409895038119018961323458859649166222183810800401231312812305521391021886896111611601058797978314495383912742898995995339947769919418348361376057241350315085257854426591548888027801720106605689389501427977531724804905897786470643604835040881928298742382581546869821528894352690545287789497167708653822127339410312380157135232599215574464341165811870480924189540562097209138379617912565558606147768944987422217035976867856019631348978157649692205770308922177588642905260862204537235170634101320262924478879241297259318414517744579202370046004432827696303163742529989708876091758741488012358928810801052544822049835578943937760588159293844823503013499160607584866174096951065170446331577490665602496289193061291282718233575061581898359110926496763302943167199329017577856211516084527760125243788682161571922663390730321326203918747308205896393921707605395680611850517992022044016783520192101301553700169412863482063490725192359966880305521930774621441637619317724717334800489934012282816967040134000333397736870521332647117724162374368371640799873828911081274754751396686940664783237881869706740589496882354639632093042726492436769084474552910828719015538634977563467385876843035398670766832413326692131686935382788199716725119293771903251053228261743468181148857826958694336742053695240808404815445754446829482045835508217214003442262062561286651796821022096839731970563883415479566259759083919333563242214678345558791610087695233279811231214714126024049858466111425467538159811989726193218919399666709100018003826160506559800336101702327339479886267984228944115063487464967760675785192395065391124715206001483814721722847445099208926187585843887905644100380015523022766286490831865052477305725538093067039541045623513639699761059790912466357407352372229976699951569586782743961023462084841149937428877761355678494104888230779897625334390663163331997638160238374892704962049276231713869619956892273898638704024315556182012180474740399164302693832435098144846821196635567460110621474220638252805522217531770133600585030302216931923242484724338171344994925471609100313687112240000083420306385972148853672332708991608835551239899361057925679845741406812640017426072645460174325330157532525442862656179139404242177250288608460131461108378527724544914996092276043939968090217766515272074660655442596278335265895053921766649916559517553318364297229209518831250624981478520898247384936340986955810003347575258314680304256550348250647334184773161277910246996095607398966060029962495275831464884225500855823430614846777838780781515327088662702000971936441418350863312809380745259017096533239269676638601833154830556837888686297250703688126769311300009833496224587534144482270624805863620603353511827553601023627214111978409876287819369889097788565220550366795281075163794316256136260707833567166074147158796555225378658936398419351023426801485914927068747694429044572841748295254143876374993841352255570520521086991486222828509382685023328489775475475403349658949090910896665207728938630389822714412326732655747522166443096908370720167759799054804110888229806085458874799625686235081884246508915830255299203845836903313356244225332591798975150149041246145306342102289507776364755178203056929372603947853871520338327436550371111036919494163332708201966852329563347010530751770198455479464473934828730803637233309103088700994682367558478043750523197962044156884532039758541796649631402169571921145238472168686221929694083215764849304659843449840350125988511294203190368721980161038402826313724393598770158120284092765048539467738326671297623425822074408297176366284481558259347408010712346821165594385386740030728763643105674491037302143127628800703113728951727265546213044080459464003606553677787320417861145605471936076602404764390337656528823870201159297092109788550475818354316127372113550933523953098200171392955712464546108386984677067602314327034063247048570972886325129349327746720614172479938230924027424554326595927684977064712561561806503244939388502473516670908861336943829877237702679308468445811470759101284672137410410236286879986036137048757361258073692402279475074383047873094687192151858540685804421975634411336125027793291975776332323514046564170399945239638885440452259965169786918808977193568388034496466950694528376765592446920494137485308693730409064948435395171056125023537830711455691542897857220591412842742095438732707298708266092273826155824676729061521379451065907017403059489090470168493012310093230249214361719234482667249432778433751382989008150318480179617077613869288619860396344797763730283701481126388344010235473938239176545633570019866491889713837432023171169446889213162370401191764843171903137907323382851269378957217227533106344824030953706073450792718724792403819062094919990815155475135741761990999061324432662692509860318079858710814424988900883447140051183699699358309561254352113782831503705756712546231646529100202284069056753812538847877545749947919331078549892979636725114483086938770181413281372408053229811553140729902720539836420503701772103699658104865206101865696367158497470055261065190026019740000943403979364929341721514212723055624344841166283141489915268760790927484738651858281475513477488812706645688924468497123994232269577140623645406857738485526521386336074823694532749586974036654908888365296297139786101151045745608989739759982692827167721823306039091143745341965571724797125856691950918823545294365877211559439773022957342989243642002602803559136217154928834417568976859139345161753947528333084084602013494693626606473720944682364233117333393202640294218503385444781865883036646540031683782539129806465421445732946750949889588236034662696612680696597589602613912178214367879218677978099672433724995493160597880430416451734144850062782628831015165537707092078018098717897127734425579187787138145752544441502143764701480266726977280831683171869056995760057724354233366376455918969561430261567156749724354955732128281632200626276291989653062277266116144276836470483244323889504505125063202001610963309288460875108603082283659568309685342267932600371554357568834272535318033351421575016315803472298667125588244662142454600178077768744224442671308224020817715755911710470109197372540307414051295942111788829706347588282261117590820318298330622001994065073453737020185056123023443862965784163600318064190638671156842728230510242029527539157969242632074734212378498031572116393643314292397418566152897839040496811918662212979946847314827202906288294190257138675411105447880355009764939881317406198786664913027259876090928817573239509734631056255024972959851575120740167239512452323818977479110535936458847367983344336236277063659650442311469572894747417956503090847739868174231470214115336312273245250160989356414260168754215415249099025663253140373034919838020027477058362070236474375828244872769442514178443598689655304301561039539475560806509746752601552717097600751567892745128426401580132588816714412780089764819463543826022843501280056997911575697643811269787653979269191936206175494036073920478711064968342070231259487396127621484147110309919832658374754126381740866864940051665754276551649513218224321441804400832184678518218670709825675116396550277314091130820700939949768562626068964037908421786526631222206616598099816092694159515065856083281802831956967571725593188401617570080739972821590501455886660281718715402461138277493478957956632252246682055484843034360525179713631441822089107670690878047470484833990039346751368015378375050482401827474622837697772715300406399598578476650999761179528383712204901506590197600568891487385257379094707196786315120915267505481877730870081887678909017998780917649578039899104383915906263435189507942419663642260237237438209819142043009020031101074147294923314590232721791142978903926914525721697549129724199325498135856896911867329953514081213199233278198638584340639809229735765159528724959815052145844250662945016593056031021122386528594600281204426300515785076603147534646564937663178798442650115893138897110712525004779975829956479426804950412154478071567690045692825885603848735686113561679144937501738803362084817892336751087290733558200794226275941046635627174147805018650775628817022162214591744112839214594073870624893492928515253534488985670717831410063287727280359346625669649663531285456753276922416116049461577992749886172890857277819128628764994920773491605125100200349662254207644306506916707383169299871348704214233707738875367785542456927298010161130746762658932850551186582380553378643991161931613611325240564434160192566269135627081377492298053193483397538689748097353096563428331630097497189044999825498419091147036870442159918020820898827434038905624947330761557172405457557291991561863709472606673399120307497228894082190235980597590131610925245773233328767907088155029929333939510809790772492166786399290665833605495393436610381833284918919740164759201619120043518142259722803452891850330979164527161508349177218243976146803741976408898015584561006819457006435250346593410297694493434393928293256949588131304445105345303561696066668734111598221043391151829231141259852612868522247604489013311630598715864525973910512774661314398173682152159230053917322662812276861597182253902679985284787091073941998797549407018997566548419745887616380801356456703682075129133737169085056661048147375368448579916303845118359939562328924191711474410362152620436113285392690375420184923296391328991795774975066353777208518097261875454334190550020747701834322344617778784450705270834182457571576208540987366479256408780190112597015808688923433209905727231162936777869143355132113023034510074663963537254574510182625676399684048738905099545553919076674451250927170677149776229171178629559257733848592983024249989123196101810080344280541966255510709838368298901133063406181156408594011453674256563987763582106158888620671412821271079555873429501675702495112864079007833719734238009671512222776385274615018659849159648791139674124052694977548028333786742452056583432839932845022207775294789461974751847169255929684964826783909173283613542166323745734540837571724781417444599167200799496890660538582994135893111661476240815592605215842123657608788172567576424903539845146969808613171882010988414197968701083970287525929674043302277228914599830136826125173243463627299699695633222632547297336190912570840187165021901684579473421288220772046933592485762838250616868772404210481689665934526870098133940500570210746762197804980268734363275505390151580756731429831144179791364479790187238956454239962285678247066942749186195641635935045291201450909481948952873175670589736745755619193665157553467870548521077307699500188518716952040100469477297939975374748685992180472307487370824206758204329108019165108741689303187914969453727753650690057879023133944814436430402506146715088327446238308163020724525389961198423488546727317225129602270374283225510415046595139967868305771739078347306362381645311831363904861972733633205969812299209952702654555441170308084012353296440486504813699091907199296479944092092318405263840638598942308841493899347184551530925671577906970909072166842450889176063595625308419479954408184028225156035168299507472819113132041542535928078599217428436560248220009042299493056835191182184985275883753007647850291261734629475003781756416676532760139178286772039005663664664056443143069721318485311761174986290758547306847442858959210527083413094932235752098958537426627102616296983018838121266140925658504750351386157203466886225536669749702312379681957287498532513738510973936046361102033072040164918479966516984462458412951712378523310512211755248944375105127452055444531015393416021780079256580141726707246122620504907705192690872413945369167842331809211214372187647421056621131471484041125103715334026710378934405427327591748094035000505147256604455952039052833683917793870267131492740876542421383899653472493224905165741113229952021480406105575852081783612753961636226633088079775605610055046262978960732933092378627552983966648543223707638522791405578658055722397434962766004919978443947587423252363018175733285870196381585213827155576122476242068242196916423676354178987907163434194156079108534490492861525555523418652366098847437824477001924014233062457502099062937806254897162547580033079997679752863104383270696859115966869850868976323671448670276048034783422166392598529613291677727967326104209822729320959958240038685600746771989431775285928859047895261797544492005484028497279410325878205994805214314890378112061326392821351575481641317605464738682715268575315979223068337026182085858092866877936776448569004802248650522323264562705221503453140893941801887179776201464695462925226448475652867433550721191313109018389747140603351877938986476722330887398620140408587207049027855053968201459072807044344614393450716463900355355636356402893920340673314352646542819508118259912198571092197518712246796795605309262738150835930131705044495430822666221395347205804292084948974496092550226202689213661944060547410422059540916760096986096174686722410893626874188291449282070411346019552430840494880990860344119659952978749332352204178453520546871003735627798522621964379378942866106857345490677699047576785784729519466984445869074885519710471363127067490539143315052490779350094983540866813667708994129331809683840926645017337071993279391348681473873815431215705463648569584020893435155453931341728204721402031080247340657422944154962789532753790145524681486894659886394365699401447085906757068215791680777171599464108374974345610910207600223257550426553513653524680144653129571957021799996319198948503008580618896794714276680100742358553122109564765964148381438797980717130263221325921497980321126115763386476842308675408681732977596369869612675102304427355175129716543015294818540247548464275483735083114487933820882542813815534231699819308668761509306545208280201548437761557083664614626373462099551636017101675629584949778889038263900664251355915279697410070366378198975137869060761773007257483812666475021024908904380774258267949923862116213069387665060632391597768718433345051041343908050075484501812705019760804560021108760051045757333187147925402069929483017846001004479768802111944475880034726471230782835649164172985580947919120541667185109784910684974490543694015672764441101544533711854344557394454881816599775350608537202157790524171614013040578321227035200076793332200850492555640742473714152785209655727659475013426117412982060049573539290016840739912829559494800210965819593365721762908679779807777584920460397236122429226038998170385824202861886840991921632580273089356034845446533315357540907610568934189937138868288959528411320647839125668358076652836373999877905939380575365871197358075305424725430275441065250035260283270685592197032576092800129543132114036904831745943007817670430047180188131882456937195644933157181120880557464312376574236849702213148008413711620024703381939341994052428340343064572958969634887882599830271267524470046647303438199890781482652511910565140905526579787228469682354329197270087134679452661954501630493202527011298687251420918654183409562171550656308210478431527054906062974399858126767053226817965057333081446356551917134237509736819598709864107332892915514763772465287112310449710001064174921212205810900320602514896065687513097015562765830932746176350260467192460877055675209737004848549092347741178432381452366850374998133498363043876017776973120319825876309113146648781192725852168387631642618552834953443749017419302167629953281598200371239635590929958150584353027691621210318770941207920301874300467577467951208146115878199742869659601324031576143471578275617328023237219984306349716850989598648126130607822541844748988166307819018774125905763819892279539511977582393638411911636048186905328730762605803492160336517706419848920468960427212230112742254260496506302467950173490289931320103161984700413457234374838016359925082180059007528635011794322199223348791901261579732856018901687543893469397489219148502149074942274888831034666159885434771047678808494041607209224280802606743481325697353480156346384425293415663158956189472490404273281160726925044439782947009061262635625150140190217894189610448234794835564239208860413857538028240687520466692477565225744029015878200744472379781477233074956442892511515575279687247059317301811306265004109674335497112233327632238450251749577231535556192762031160787481238395629192062533444536090115867270556709705034123456851352492597556918882720960661251678936153731231787099231492754793188053003914758918339904140286713160771873194163718015314603209469541858158532532831271172855313072033290390223302703118645507299647460877801950058975149751142201367552390795536373669055835656830041790112297272278904959072383177063158817812403055148643925746524515349364046808197465474135824779553714199271783322245936053701026510149165989858845629285085607465157729355335780734163926972308819635981627022895082922259395722572743574006585422927850226834218607730734260582318132373068354308733383322508644102737964647585472935020181853821439718203018369219183684469259342910725103838238204402860047370417085285713117315556222646869035379027455957924321639167908757594701066101776468009065737922268681382845305241452304798381347211135942289120167736202858629828577301789106393393940770461427325005831871014697040050940310245899381697771442292772452431811702549548569035575114018833226731082823737261805822855628125823977362668794725193983109819048825852430109354943611549246526514615588797355115790598949231431549583866095336597682670307548589716360928975415515730940537275459358724178908433321454556699167586227414187608330152187995857390921685524675612169934813372514309086252830176386361338547755505367428204903408615938824051879281495064309129773951092493515847665730592867648871958594608157641555596758211802079108823335651440252023407989116379276966727489773048718442385763034689105420979816692811876537832381995479979701415594980013908621370255805017976836554288908586021759513555412330935091336466211519227755247857487135451265901219257043196213839699168839634298893131674175812855550596346120718929697794948179074934768319039708429575379577301946950667892824292146099609303788986415023682582560936185440429354552455437584144492253187868470126741826836562933159833200821942003727003624766841003927397748843565972321695494909999711909615700365739975247398898199337476432151251778145134765324572165958273588832239397609124644381117745809915940449576306152204207716348918043239648858202357965539708780051384298570232585774450902800554402462936597608481000108252291322116045887605268963400959480911378186167738068434945353796149284794303642837625465814647224531904592580576000941617586566793085035931084446298427620002703737488652181590173174865574580183521069049871585621497077594632866616846710655702383116865233873913254069020898394260464520406254855546049188678642889598021075339025514751491719335985817142045332625685203870932833816492760874563141117470581030531163320944364228087912078291486213994438717539336348384319115460297137210569167461489392891947159164878278397693055384246144076590126223715699943600285191548186319965908991949632594686569287337849672784036924949584106703266193869501043570675702019182655218024046320175401316286937103149133116616737556476898256089949821018229540944068143004525884748536131386628567882781180021026054514090990072098973534128608780637854844249542142023516688850201635710105857622873046812095732541371857664311906867744060784066513663544288964238761030835055724448154350329471959760139373288351955669205115531456650979276018650656749343433351513891621636552807720298342719772206450574812862617466190758115210923007353673062849941458458668901112342742568499007818479333324910861253716681921295509440346113704952901797610566606615625728136259143922678476006697126225983977665640162258741393086921234782897076311462046799537988101386848957405837100196966252317197842122073873078800403660338136984365569170359806252434531306106199962415985901379607278889491393887097600627213565035211906752127770842605194506130991410512025825783802884665951512847962109865706015354326541461544973060365922907198286282495189157095371749896068569115811583107691882141177020163494324227457150144977577375176702101849728153297397802484582964119744302231599581347551262478929916514171404336794398546180055238558927448649716036890990180698928143254836850966780335994581728046290019681766100827365686731021741293447874320579448376631998875710727779635442520575768606443066848052038960059418352763498148452624483448187059578474816040417401820487995323121278155287252576020750688224167564890092935673259846924952971552584594620219391281162118737399057352711433343571295181405854453342243142868271801687923894632389598706356178717452340617268035204273848621114867909205689628408010314774266747479132824353014028582561447237870731900166182583532132222081497719877984113476500363378466452129707679104311207400779398386370005325826439688841639353256752097873270422941625660342671643411469145777571307262591966396345495362956534274813547108501253694299747063636097763496715123050179106681732942420982777327331313307953963663179619321400584772708041693135565948681309122558929539125851522586658169366903989003670040056168760239579389071509260426972256484891391558638976307947437609651772769153918494308297412799555163700277026891344825073112497802287785264266162988465676768002691414424707888194546030216601892623183830908523930594080477287679193394053709393610287187540492167570574836478922082142468932061244742497486383923850429744004404989986210996694490876801565488755283368736369460849827979927287949593322632789244298343755643325045485507496663060304432977411078331532603395271895707668779715335818178786506273943225275852126397814304811037354573508148630342911685341923713143478170546653404380096748427279792026723156170159024384650884816043049555772379352606299960004496930806173205909118592482119892525587661060415208642007698488324577808453446104239472984998436290659952952828265503254946335905426157949193277402143831155963747682958935420209557436721327955400712853573040067904061452478428486116451740867833638205341471142507552816085587593793469660019908786464479235152050125681254881703458340213161486478222451033955325149631160774152096679387205180202350035164196767610763798236870119015504504373230885013395997811630459412340342309312200966299442957675864478715142407117930229457324670746877478005756911318462819969566692617287690705126866525593052889796704826813074366321085117621037599264808683740117756183375394933799057965360048828810057379058997663828030785410490512045344991669634538607370642209199370788717392567702465660971314765639359179185313458035319911310623631730344406893637122895573601757651863769865454628333471538349179842602942248956727740852925651334580405194396482949070612421098244629853327733709592833984335543722083424721818188249816624377672673383890307218324157458404043483986508052955321286698316851417130545710009843174779955004468459655243868507079170803472847299175366024517292736847066492876951291235980633355893981008553694059500803509427148640024721936978599424495272503622433853478811486835277984484790364363261788479949625764180609482228554808070978450645652970597665636222320746286579679806118252424238961089746505499502587073548404037556211272193079608641835042991160465692523186150305592221189671311126476430657539496504351004836041358737730821571492808901860843693190161411933642844690671674656297258683453524548696904920150553955968971099359725659380747293497463598303011885844078946057981143741726912775537097417052453091172458207718306794439714332884314396519317583972926324752484306000218400491629250536862354304428422399636794871338181983711378208840430274485443940369149771797496014639548653510711400198244873612550664618752798288121232308119353315238127165452304524911467997787066246089337195973625759891642122458404192223677429466786156076537123363695599598740214504643575022229973006564950655241293190621581268337841048239536889901001746660338789370390434097192572598087489259202729956367920817695606333371861636949300101709736009612294569313035978765885135236958229681932866406942617653309271645378904737044520436907543382328301584942215635763216708036486122459874683387991640534166744185492352056742821730410091221121827407807321903279363382702533445984363847014329347371617181268188746634529435224171855208789647764952205474961982006491546975811755614436699646912357005771062303624448668069934427463148414406918032075549927545942266688998658047763594231122177555438383192178168597917049070210732570285670685945132010638601494878580696304336893417715100921950986492017536073058441860493697430835273883953540302152309846121892385627640389409937862559394604119529787844406761653306689504896489962240972478759551775258230184948748799459535822120588300529239642559644910864068450880121697045283022681914813606722474568260260015098095371194834012929799796520858145942037513749498623498008657631807023146537379852822805133986196879227146046461508384597016037932926505612255735106673918499235297166708641205118851878558404928258362567586503371925997228808587265211533353579672452463710292400837003047855622701076351102481418699086905328561603994813992001823329827305181473478234986825551456144398612059680830310522980847184525959562919840961194544241554811675920998263570624733538895905782666124546414224279853010539509868947437187983930400710727619218745615162169400238070669305173183676436043762595333263753896059344163033290031745698501013907192046816933137232008597181779529129903673685346896058678690564043972138836061880648087116354784307082271380487634491827943060248954231539918633609615540118752591413328687248234560488592106200400177094245953044179795373977273015571948404388184510446526696595953129910456134866445955621306932344689869395077612498229381981542426194819547886617850162515162432893066615610595094737963967348583843273768652995496381396370605648647197398380807850018141337532461141387165582416828655646295430406109533881963807135772398614485584598154631154466011578906048733354636054684786745515493730128367022388735211526748048637098108347250092107221924134980981950963320474677738946515735037535612866434853945489194203670472391496792015412417429665555295810454961538312224387982919802999088582634079831032220789152999324915315733428879300453624269140971242005931221808752798521872040812345004099448332258145542263232342914297730222910202912465319805051661800801435824528181696903985998352410813985320412439226705213901467472739752735375967507586092597482478637806271840076839420356340383068304047939973835570390524377114741884435274389205378098825549393109813028734811029364480333606248606764821431641409612247169593396973948318748215980231232575223106154645786241660160397100258920601812399552635449723115034192259166759882895203050086028169663421691728409274238604837828232101705273849142277407545518436713919663041467593610429336728750123055985624010582821368595034688795770076999822764523527177820092292804832951791749807616660672505961010743801818682358277354809938819810752808683317167490263834683772671235084052503132514885768585124785799410122097422153721132250658860768887806021065811519654287591054002412854587120979673522163736258264480242650847689435404777363286993980734629645594844184090605441851514642840772517542449840494084448703732327598310704778432133096437714782792299636348735827315668095208500565590500002687986909731335649167057360683448247841267001940827132835901437991592093588346237141905666898519705594271651238588233329652803246722933331272835616464831199405504785815525390289566436866912451115425897001185279868835286469695598862153885254752924455613932352378535096808690739173893676611175399068810042634431814687732331028550230954882759831161731863696614133265226397813353908332958964717836011290256111413752587563225393431829920169271928395787909754460474737181725551288629940255378263022457951162787784001349959176655403353840142261890218831787410669858822136176656497158617362599861511784899819090932593906066304143295512462201173037911015639854335819442760268366035957663903306435094285647611052035263362106782451311127592655511717405083477177604022167034827599996686483175876301552596986891102422075413687551030866504864498592384509242926878394929112070955814742838754157777824412912113930293727740224470147330976276415598921236238712377311740928289961783986088634299246979063615901086410703281518954093604448854137570014902795255142355149549856181614282067974057529764473073884319477875558838823914419807344326491426763615781065732854340073495646208822572870790252722216945342892313541595622244030394197922156375138255425321115145591057946756936408134221109409621986659336340038897020318457587793187683487644039110974575225335789594167245121143313998874055802107922858973053216983820029022570988305380163120943706135793078138667089107391004295298057951480666533894205011642071005334690127646589181075018644928567693748222179229046528877775068761229885221145665126702140379075606926477862965822461359678832182735905894872629250698016553855165747738044871975120260620503725382482771342629332773105395920581721300928661586149597858716673187009656371803612153920211051007611474504956198102478142981660741244804040380218159052607379866265323362987755801125491864116058345248378048147971295286990395028357780948821477179970440437553741575787250442038077342691165580405397479254888019409530802216721548328339757820476840677017020455714328384163368640784439989649581370331734524511938476092443615332171600389262055154603040424185162007649950177500760025836149142131672518881583291115420556928293055936708771157312154682546595112687079591064612492145468322765132151228757048648618711436728903140770054049299863032601689938030284403350335946563512815838147819390617595910726212761902498631768815304252107629363504928339049328721821238631293047818364750694608626724823333321308914280596033317205629814717533127061624352362983620946964882874926929180410805615859614484930373233192549037053296705300044320318145130589637102774991883597336079395526611812753894891610726437565991586868196285712593780768437003046185550294944943845723303184666013765444897320232862437813686676249846606950131756255134657153835954067072207667617896747271300556641279368523093829793930752477855985746649054124376383887309360319482654791734898362947226625279245374923076003556906077209131047149586336365725809073785748806855088450602636138954127030813492673521613413000224860826818594868780336222827917960330030678176011862268735717807838572354429367200809044678115457957109417842535355470279384862436853884697910543236614660312791918122479540719411487186943302196213219038567823094030215212993068119598964934752006055915616888626251559583585720416615719372314506566862381241288883036784144874210864005946016307124291335672158916278146256913442587549423802195609108058335259805797756977708797124487540062664055095973610918271125374042760272397348336744168385616007853977649998736300360216545893722748064525574561045539732872025536797798541656829012656695177522979129866360594085150606197770314555824539030271119722324235605020516742155556121195564039961751302543857948661990033609368456447433166010996992820080065376738210670632393558254996916462514842622127948246420157141170356440509362064084648150061436271511825856258084595940329774993763292545499716942632300800423863897903610381647066583020885569233146943233015002459127078416402457830748904452684560648335706964446156361345864094420136130057155211682643855118339709218463786940752394308321275433066887012235340375463632008790327368122508721924106502570024380084168705043383194113896129472125123268154288168795877119179964961017308832986754855264216713005306990385365913018141577513186862924030962391192462672636953946745616244345707268219352982311624988715963021706205379116348272955377484993170764373940679888315233727811904546704705778146289329840593723441096863973664705379189102695369638861993047597599644168423265047030064644711080081842938214054342459364493335011065819433310623653776813217730085081351407338309852246326032022684278037464383238034624305393588554592005329308325216278579388275092201277558578968123108227306526675054833444613207977719276430248643912202786047124096746525960436827274271008139392447548781681414719593068970288528093158271577516986050876910043453453198117773379837495347032898813887865062550828638373967872376768012406675423556428009021356856517236867835326960654886761029670489103905549410170426172778070218258553886087806243909048683677118827367391465335736379194831243818258777384596535972338316447552065970856009318117666031994988715333420696331831395395769494956394641529660509958263305103912358911932714713109540855109189468232358673605541075526184489726570984896822361759999579904806636402910273068980057842729122804586666035939990289096519683729143042480869777872920234822984224113874148674671034873574471038059900554901904455302010689858081935223593033050220824860529235840351689371215811676733025048430011142278584974376227770614716765077604124672704995306839621529593833361219058174568638083331495955681572206432731589768500377996920168183285893905121827022620016403786810473345653129055453113170298197918569291577700538628805409530508600715067211558951378841261262707467671366428662412495342998123787477066281524356661458800033121573702142983990761046785180615342718111449563562830540277512576632028286380972886866514078985385638390056828846867174459381432374542167438714236390348399159460257452832537188986945235897439683401417023101182763849425592916962671355711219400763002384565651591969993965421782534559783486515407048017413854036349669740643125791749639358040675226276893440375907076836145065116040142624901944496788619299758633581614236661276456161055203732295947367271066544245158731270827476008359180782728257098292466822412338665321554045488935846630695921516664389053108376409199084435230999100306602455126471651970581776193523973558784866350924106913611137640031218358227742615132797456178616735956562271505511375423256931807829868026074085044640586557284333907422078940413509763332174273278551581205268350336897451665455262275150770372932790745683333334485582056657946964992985835118940222426985526550925673953478738460241285727017440354193847733018603468362734698690086922601191307185331468268033968767152766645757670072729367860676008321697283622303122028930118301332020411182817643565481601066997607844113767122242459920639990987293763064838783565133568490864217716778221473920589329313690086788058296864359282686736178788830457209877156059994864779142707027147179471555055932193944850600161627229963697984275973315021078134418247561462771469797070683457997826118752597918702179380715221477164213223353569352268301636500470551243044810481014680952669747868409760608908675909244419500053060438626871674787178122025605455105585743517570403468861023526935697220665691532959648200679769147240680327875517937994561557387245647289535901412496326168478630700449962232151037806399835268781791584631797536603749366961214943967764540720251974438766193457722312490870934640018462874973003508046738682420948863486409829688487908532096040209579896045996618076496200667551151272660493787710119438380391905142213080647732411579131363923403050522966661986445018653392025476256604520169765926926985334978984381204642202332473247164531785737758982081479793847834740483035598432664013638790345988980162765795228469003061091787805264076848200325334789365907172303439203956439159568688960808496007730594387065881161008510609676772749298946354244074358825126043992722142354791776764465665382924921791148556182429724029221812228358361454278366746220304415034005119291539462087490981900933453487073237755579991545930086817826578391195672313988749264301697744023496017835064621739967275937810539674919787339909521313574088496666760318526022956907086565193795767733150667558495448429298454589196770255739229922037480828710625224115105690015531720852629741235381886175169401864400988250046148156347413776625207460783173577526453266769126041043663772337406349360473120034306648048486124867209084945189442360775787277695077125644503176922697767293965892072493715476341628806667994465446981998435942757007595544208956496517129159633818976022353849265361188729222852162264985390100325994081078168662606816212832780095142800191403890671049860096911209261239450366470155599493535501669769291953876698613770897034340453416560196759742192918071246558554039181534511638829343701130526516645416158077948940031155870878274013874280428318322523183712090542432872656793347958473589532796713392143737769805166997971562340260642638992438854764131757045259915905784551838223762758440764641316918478011438431305683535973157460333582594820414055071438939046793114728290198761940181306333335892656066471257955137642391421445414964477487015923637903140579369114963081553506348086879257792407936405413310363285028128906881162604127700128716141959942642330838697742486729395356912304983009233690915030115870815298777077305725139388091031241694433293602521240011129554981137785208952500662450683819713274208830145926068082127101901944242740947280743472022958152924421451145077833638100250021165181039564210676956592459860527833144332680609137491317048565857574920368147845562569988679011213900709108807298454230228995136493623638007508042540299829716835358445181587696257390095242991726811005154540265372814539896995976066139369528434900131967165724067495944840828666362807433052668065883517486179132023039843489997485200844457472680233850702029019658756811776266771964773044350844486705585739050475291098430693459541141713012385923644991520009569372695273183251126980077031679764658173167378761596712902630811759110349363272554704417005571493269366666091241678341872727432005348799797032565136853796875021815301936098682316242986934436011324536635218134525983466128231579557162510763350254350856487526443331106517478209949835923000202605224081145145127959757731966227681996666302084263879933973809809342352915088369864490705227042295180386531604195640092961748039723990720092362427697832949274413864936197885423789928869222385856847461044468005817003635270224361439633581263071566681817665231923411888201189219516416913776498913943735253930278328188432816500841914510463043610536401774948901841135186461685158008849039470463865339325987553191168911265558999538390021138565413206297544913465467203648039738325419857562468817828681733303567690897045046001663305227659841936947278516870564043079114504088271296029730868919426285730509241041568239635460796039376912599683585553379036052682655992966805625803261544674490877542316524104171494609331798383459093353089712438868516948879402309406486713648628117487757096112485269387575435632535027039998749660231255625791285357184421269389352254618626229028334403114504177248196864460720628161926848825437417232348396029062819494742375378449129045203174382728086613121232433067965620340509989847313894221485288041991192488082263036727376193743102724535413603134761056201395643180545025047231334369194538360267608846119780627259556997908897598076319306268861802674262859409642753992210203198024156866867736419836393996702104343446912703730963089099165847579460446334858867280504888916904028950162987766582594823094675863928823295207528198348364128202541850905744508012727591576922537485834369327757369832721739803723092396626220410819183577081395475508200350137084883882139719761846388116010260889780877329745315206138017773263818540478162533012421649362987542153943464809047796052286578674975254927649924946789807466720856518865101853017430759142344973275346330006240140195329214611013540653531552411799605780965622625234003569613011899852324089360670881396687643633170596587704680318907856287174903493470763257823095445916756623289684158851552725884589295783661511970274643157954738654982262064735141810535947525161787511683896273673337635127995148778497451548401386874207792033402340967499134065371744984643200660904525705528506120742645951984484304600832653215723765590418317003228879637675408939767152932463713530558120681993026995134506835883253918572388669613485890182327588814488595279641223121981607553859869135778636954737072218121075153150269747162632768587171299383389715347333678306739287917611135310239242592514850151026400181074730629788816779620614292913703513059431569738867779713188642447668996111401105974484446231146251092091554335245370895329975500928962604391102547084439049107571027554420361485135381233240312944222023028429961223742345262867072174505879986117544450527795069708787423120913031878837411452751924546493209847881189357526485206474867717323804211349723315338268336708022098006394562638897983133400643664935356980855799805890417883074307775944766919324310232298921653438034659558067390468333595280464616972474275352396980329535086191340549328341002867376377759947895906716435871946495856265020732441635359831001086552325068387036948048978453857867818992053106461929871407338194545896937959067730268322075780775081850767237631239796412238825025144992496079234410141867708282247592484796470735925048466802401392692632524707205632156884223358568401368839067931906922501275066368937961995431648805277569086076693456913270628292260620033696712795577201643990693321431047115172664264100980399906898945967387583199307073983760086114093105115973908568813089497173743834801006070604414044819998953302936703639086691940732212011201475615205185359960687466205605276027869450325311547862649471017444686244486313328684866273229908865653970045713318471082792553914292826349679114772294836207984539807493697335001233444485265425389950477621253663070256351250404187723757821948729758968171316015418139602802081472212783106300306422372799149933523008582425084598853503453181218415838441875849573379075606877383380889415096523044315041094233205247843192347360201227601344410168605907390789019462940746602979778097891162726115471527716186351560197051597068196234474212905597838640428461796043253996629894252379001421667798770164108102657938560333223701146567648660465982448460996633603945450725632733788905259616670436514841764583464715390308457005798284991623543189049911301700144603758435649172234524645406690029372819709630677310703917519579557946975138205268461816259588038195338567046961988990940809896741642908509535786586543352794452969521206613870310085148980148290052438380773908331843486032429541000612910590332473115658909727428927331446662178155164056072639205365057084185537412684663003774571365445588940342263475700068130909338823839250480095539729023986987527434342487650915916262737359601982615372926238214019152824418976082243524492900922288117750124390269912032120569292671876076387297010461423262655888308294776593725454673985135954852385992326677355714017753803855541057338750370642392180763381996199927822377086481167251781138553244631749567731868839061780694225824818332771234095899508071865499623301444959515939698804034936704481800853649541130406115905786451392983643846305594957684371818822800338946951681000233033486285124024044384966056611065364323677775815918981557709705750057982739127709076134135487791104148960914043072910010074832020082208999117385128435378076179414938818432319509346921349377699779448170713206519192537887343611641958755205983980391641480956095529343020253855312616574745388079447944890149481079986377982468915141926830058195913788148966390676479816719804651104024287227599473102208413526894269190876228037102167644580499901847060265704181525005553650778093197177436815325810418164550045250971314178980171092117980856219873736146557513704767296441151138031268453651741974561400759892376087702991456909024146727238045730715552097904102840837799331433122828608051332447497261091387533978247526536603179441678283040271803040824429193665172296171743516923778658565451221583888815830397193621695875024399036534538065836524862317065562501043509287304346589169177941415383881908180311000913479699995506085780626645828762317054992957347210912365740052529206386192666739535151016474536643938786574240345396558325903952207597033810419040603720549657431531742935732243837952065465776659113301378231098357210401593136766421733049726443503245766041058434819302433472457157581950301403515846318523655309895417664892891762436868915649462118901338957071873792673555140293670264549681368719117076848404009002779983478157491251932160773337226025347343191413430331616553870477392403237644025516929355652584838649705451368885293522229245596562139467095708372135961250032397078809144468951355604263810713883791841394724983988636621999357416976797442556740719262048612641741253673581253608154106291118382619052837838505622573902326957256390817401095567900058685945869366467646832665557633767962140668826641993024450914346252366248816452326213470647308507766298392794096142224937116006967441199509994520135381050029042459150132380855261643344711731190234299182982606597384098417549389223102230491220389849644706609619819229762590426709160644230662387999763912975113070736413356201039732468966836959087805747205366178790068901999415289857956699787517595570217453492354443213896061065473059821154163347767578261906350532790582079510295030875034964691288925332188820016331972897545077958055244908025122084863734153397046521965484404527167257920833315480449917071036076126855903496091821899525668879518044228373999749976226519690207589378618573771894464922810186907159964865426316019554100663584683219979502307749992134157916253887213684022509490737625004348692654266753286182365069441992300494260233673639637836118834756071650512598762002358506318486411895527365676423741237070820975283735443300772955430968589043121994764979439194205562699920303648218708112347449365316032614208441420798195471221079773387106487800310641092720846396400743076224618303074850016149899963065508678812286696255432945703118794276210362525151336453686370744605934825219583274102997323572140328853019897471832546372265007462207834875523202908546890581893247382857518837273467577226995795327620779913098687657136998103097524997988572090484624596341330899112981765077306404716185217867407484568503589082984010644388383048251863282226493919251700202795853989834989328171769888817997045549968449923605831815124429546551652908953050804612879992010455611965835518859889488458435651063700460329240407175684723625637207960057158430802364569211463282463723325219182124062424980759282992859981722542718301091584967757595345759627144845332911188938762821041153987313934840364557559709985826472926773568642472182885893200991012785553237890342495456360392049259730420188539001198108425193414143516798958415965420934232364063914202219878841146140210728857380067912231804139908179127533592112441261484189935829278079767377210093538525847407975746992865183562052078846542323696322651582700895538924241265880719573878790624161568612224714761403578227834248738835771073318236962409865215255084197051470968671973961794613349830997062715696273009508994671270065722112880457355109142631206640346968160745993098056852523063267145160015999948397690350510168371386467863919104528654576749551182658542290156629999812497154012982262329689742195612820755529136421401935546995421906883698745263262248166571995725124841071408624355478617889293592992487571676249742078263807044114338931801937859575729185628296061234465606327369052853786108540094033076003965263892410866327196480381242881756876435651600027640952671027763937681776731857459572939231748355940126399961253711559735488048293451791563880968941969046421827212282818137763224749949025296651659733796479684611989674937824969096640078749773082900241683161620609230445031383543983455865212074676430683677662467266228793217606335806765779193985939818892706371150436945201893638351856788887422899566824837740449683031594671906443553784125372026267062279450955599567488851314205006859541862470001147525898693253587311144954556185387498072554569474760188721573002506299056614010579914383215987517968893055455664706956714017115137112982577473802615340351349842372370399842443131049095050288184216567283361734885815923391208162957569418867167123953952449693220014071163304408691767786223989338339609500999686167657724074180202983237960880604684640580975130990187803948866313395623599425488969977610235828753265955698153862291038678322651127967268660943155343767747364495748117780767638510959324906548075939405908242010744645562469132455668743335500582630850964067638697858353109351597976279803708743789887316725183908302727382648799615603524778370774527287870188791150873428826499716076467419448117970878919222162742939093870266509756093690836106545105845943902526561288407294227553261679890019608208987290216025466748337621017626537123690962605554469591557974334004751389494098971646403886108035146529953922731472524627053879740226730038392838292731750290240785854295494741829106293678696534431085221285574301812945150862988485442796369080382205704189847019225325565586073107448296763027190113583567424701453390564488267260295591605965181286973709487536723782933915386805184686050155784536782142551682946966833740452967532976935884037925436860302452846313649387068254759017185963501473203215032572472083588971332325896188376484797963716870966486628836592377745069795440528178638161792080051975039812902547074409302421901991511904044108777651215965045746938063845042474773959539830322208226273495254942819044601387991816345473993411455724289139690158654321436273594053599588734749802600204563822621400734634711864057334753833666780911237697382062540297437662712312337407274216293182687854360810086416283068156401535326673475982259269829703182819273445739906274585985396980991821135255263436558952379892682890201849466844640184457478838204003139174948399139390258426491995150255977680646662035168351971520248144692414079906694841240654805892959422625417915649653730756145989159648282119771939610576440237895859846581011736996272700503762017392119503113228032212962818968135014866804011052235358222024678069325433612823411897185500953509649706848178271544389027825934635349549009366544433164430682321002669881006585521677473986895134984575452303739726822360175189023352709816170285132180229754286567733290605255924780594752119557892931034147018044187602824366466817193690936229617118603235139818365526062426158259466518814817416283136921969280506534361749027043618361241924916830036374883798819591605304249772682310355053106204247820205638804744612069555300779798454028190607845472018267093053475846750390120727822368979230796130632481195050831515684663299049148059439719457748208693887675433771510644406556798878594832383713879679659498604660053278115009821992159737726493251621587183200936643046407377641658793054277536193392107308565779178160009688702749553852831255971267871800090478708616626676928308376375008753387055721624267315060363708052969747779648894934211189663308487091132246898280621159977465750405415615732867341035709319753508906745285599638306101768674447125808427482584526105630515545680482933219034942474411547221642699299075022405021427535081862993959568154128574668509220045709924196884251105454292260157148195942240921119766471525644847802791639380474500712255656280796516686986163046661563027896923045291412471689996653421614402094831689177270543471096889061524715970749323252800595426159464807154077619028404184637769722186158742044383175420010693041741918797522914036221669231914460260250746984570481440673277942190432100608084997243909476165857511536822128100063206598992449333003609787009848757599257554438573756010731532955186019653675516837135904062443481910221151792790744751381286503407486092024333662947213328688960089600969549306094668074988756979868884168581121557577592303116320001298037018060214296380712684740921486372987589807599849904097797690327921636284170146935554004195312313669123143948177026791723109678085122463910743626536501544520342798912068799847834066409073656627045296432313430803410001220264286814001113702291034127152209645427107170618927736763873678179046455447277373032040735287780200846965195179418263714040768868570796085652514896808194583657689665031467157727989538593206712960942981206079280316994919642578353496703614575087816211071596882790513162056946086030641643271089057142299831452235158388961711164988137378819357884451006859262083407612293445657856474450400341816986491971659926816401326801798456779864270001023366984643748959688126246660521921548730577461441420703120229993712550606518471168856342261607970242396602871969143247257942065157705640360691351445997546465081913511847494228567045583566368060433574374876830384631191146950957192721656778888796368725718666924458535403583097424542395772700025114243573708923346030521242655029571034328423314481975250065484641409926892811191376628187551916418616914699984139184867507533806271486856665981560443564986762239546326349796068005736701438551881297019362063161661667139438526051881354661402523568890278612002592186396668295366792344107448166932838361615030467708722570612223771685788033725603305217453445096197227097399947139898438476377104126555786166942556122893575099706499490553334778848482406545622032757614693013823526546186944621375656597168270691841456752683010630628978382742367392535261340354138147877268310237161083412437053427935086459152121790744045962155857990492496841121121081120604476929103340947990204758671543835522857540226478944500424035617292794677132219614505870757177544160647906343467092756652958853710424128146943837453765438050895869658058331827480628067213367714637251419699999349934919299347890796845079090858552020031598863552174293183548324865006213482994754761333094121119921843858768476296440332660378951669693577622001245589289834902709758365785550817995101474067452835957028254764779703580499721739431199751345975361143965332651026208767223034462385804700046173952059838152392064565639296488838847719892696407518884363227110062283453755535206624519165545583313623665394170626004475710027225999360898714032405187819507899686870446386869481987909877922692304281192605049830976599874832448172883930673407175106849213362772086653424098673270948191950098229922268079832791376033891585349340451580074718836413967273623748688899182706498112400073765866649669311000549830913583241237411954532741516466720289375700690338287206615912442722223430780640204110158404564554999103530128401404695535716910454209604967266690520280812494294032199372162155536425481029739511399104840756820697845283480247391445630308203858759217703923258869643580159548591644347352818227166060525175713612487610500382063751332057441923790677512506199900707105332975623673823599632120389426930684641928744856500832117515893067328718143950849847834243443608957087628805066559257822886613785783334487444022284788119881581345696978290170578771358150053140633210662854708682377948326305541816536835032745789520425094928078570766767882651862460540428370174259138257063224788203470249015065574815933957599690687625680264054516296558356924191478733557396102914749347260441021512740833851084257210242191187403122285040035461164818578393354335497210582807219733895312913670095552342844648594566258027059026642659028405251928504114457573011072220002582137758040804863639319956653577495682247786540242977631503287526696267302898131990415236778200253777893651829061314667466293070170961647894652005482812545610610564880307723587568025779754024286044185109357978113870820723661113276083513326160550833240349402846560925701711877025275151655830057840639109760929044989168681551230765709237155037868159272971909301096408083181342843028773973942022896187956565065917939046847917846765420168281888300567224524396252571230769614239280350048041221569503648013300989353148401301427680948503612675948903814481678032598444016963327446378642287879889833495803815142415601297518834394424531339183798796207421640573116898502480084320881950077021274450834503150211143930218862972706201899400606304874778673554616237040525135306392628241218838125105357214314847554499314251867600637806941481514539043229966149271217133885892348504455673066578266118030734375176151251087553618182667889439921787492079867734162261483832828042923528668306072426979029355919997646038792598613518145499152180986390710222966715147579227733839821497578745507194248060386591694731436972913737736894742260343451289754825927041367807042445692549828930333641852529520076597349054071484531280518325324634980023012335882968607767240813795703273675332493390968180380542847151999126849802885620652000853748186241295603943784288893084168241154515157181109186857276333228917246076700237829959965987870723111230855596842757914817096126090526737603393018572403806266962282874677944391556340926794841032834148525949451678329350409904779331596843053824067576603799865218932010158232580105252747402873029671985190872111594078361915721167977183962468567453127168526620000651769948730710438751139045045892645869516295487404087056118764948448521619664363524752868735328445771208633102819064134642121574301599486675209010144200047711791215331816036631150357356981395696271002322067258996686399040973486321718636431384989327739186418388773506029550791852741261325604950196070514948285745376194868620180714202404458763936432084143944042831242195645078399056536541458824961889807998351654314258123533678992264446371560248228302816051662007092771419153771891083703569869062338646167836902603737766872806877567970598347148165649356886604398227119248208392555271058337900489939108669342512441144810100363665955121947041181900380303094091310741821079995271554910083613566623591033520781592255662370526256228073279809902230527632164552387427997752262904458451910987917850858735772089543171250056817223577880889925288566979848252658414702911984011988684296766331576173729249739775464811775644370388990405985671307276330450706034696084836591513488725075830074831459134490496442480479399820371155034377462560470916608497505912617650353711928707998203806265301755980313439469162482192685260632865129450381791473025712058945455412256638872597031453880591369804482942159065155852852028809354165350898036640178411240119709164603530917628586753299314065894452408920756641924957156276648689794587646988629821508071364694272164623808088828203246786417312486233132918541579253584218978872366721365677637525641299113071207192099012924752125903370382423676893665333067208713678840876537132935867357417751221141633133507539801676962946550694565105208823778406064630710316591453880358031139076031528928977520277162292538143597623737257513216845295449512207353485297292717663167968086878596333806034155874679910225465895993390285382582783547179945543065520813856470746600534724294845821527021221530679778155070684230347456759650137149639421912600552685248591332482927819923944951166650654102632094120633184420464863756473821741212128232071433711428721912006173946180065602169515358651761042530655847769483893426375208891717876418387507169277589692906709636112839355672115585408188395979242769223236231669706744082145572586111247807628465306392456715765417177990815331929457424021999902117187616924207144789699017110721637924784804261326629135104943790700387733127359348287135287581287772836953501293971617373772060206452254250281461514605073757957116704942757457521886590055726261451642146115505494047745840735821167155793918690682271707670672149820133316051374627771155176619519207897074292346408100417718716166084971539727846674011093018070765423478773106236233287225055551248273564606652134456403106240742178144415903685923333090638521048689582298520288205799323925252108834331698100572157759256647473244062302326519432835025555744002400739273673639374209101398330880637131225303397157448934832424276886041626908238982339168383606770964156923986558430690856333322542839201721429740958872009472746238679676668085676994296322169014037650153252671918038387283036665549878959337040729697872071281994159589630462417361534482265273544991013330620524749214362259596666639606269801554631849649108785167500031838207374779134926586295116787685543753242864218546370367208964765802915283564747009379779086602582312260451897487928320881508121263522703116782455454105682890254604600183687465651775571329381375339791482264445603517524343054405098451127287893811463641066352843406441408046720897944359151143189942191357683068048979863728235307166827043466126423289445784649871510692019301744694284567028081580055897704315080008835281264076392929887123657134739990055783151151137153785649760300222036422415236337871978046609677135629113531504577412838547855134935743177116737688312444688123274798163309343412623385726632841813674569088641367167107669489557054646074456174149156157833488872142950620434665617471390549678111399698407550177044729556689166878322873248950185804989203592422642274240495474373496482157382469905837405007357481465068402021995252531573726591579472838110472564031731780126556660119828667357607151483759617110919576922794248175047609866640623998987560408478513908438980887741766106372493311132627273307667978057199446760094631175828756810954658998507384727710754040388885810982050000019501611482274755170099737797334776203211687835524641735516081318295987523824114059535866987728426888428967047674389501825248422434864429122020089188047509520409638150200879917934415978920046959022854260932454629554849073939700092489340681561172552748056822891331890340731793785782454650823490407364225187053760669947025456682271035955249116190772413999499193224046003656345803666329449343496045113922422983222108099211652571471157827262133715679288583152772790815955826556850098618040753347349806642768268221040290188759361461105623218456694881498068233269672458779706624618565872017952157269257838615262161398708999728975479732473628598431410318800700424453339943363981508777791435695957437005426684456798432781207401034151655483212291416905298203346621071081624527954233978265299735658538463709573976968544015189187563996860316116882831232192174481622701147391270189395103349317836760076825293789994842102221645546143319553582908389155363961248178372666031044458363785134926504805870073007725075897369579162488682598221528257114752686557822202498368737474556763360059981730703711413418880457775871969166543827641225205076394811722106495166230859789797873388285133074352878358116454501902302243560200671626409176156512593775166065466309482222855677023907079099046038567686383193316610241194762473347506430851737591949265328418150425384379540624092790589359164254988851608288126901695788811374406098489515628001832150343720373473081395219009072383729384900180313749822235553670995416064520613924531465595566030327354931616002665937403812323438645507447819283971656163998030526245933834330616563342708710459160928838982970503433013898798573338239103203844350966019436950061192365710579414667654428730118256834180054416835931568124970845291265459289614472269031129726765023090220602017123218073508457721134368913392182294911411296290531896833593871399675028112790650837455724660725673081576972934786425414787829175920628992284643564233471778584244043915507799843799754793762789180464845850641896205561150951274275926968975571016039802014294217528797626903771529501949070301840164193937820951778818541876968894717701219455210693947294320650687867044261866457038971397025384727225064872449791924704664331879556302292482159824522384650661586503270612537211632919398383245526517023666862443833360707610473891585690424774638529659155571969300415621377240692319058038539247404435643356516700177512591502533781347697514218951298456861373318963545726793715487664099939310022299044453217280043094586503490156786277925879592060177184644432898915801561601301915359751349944250834326948516239734239940047173538765982432794122832648387551947564876838418211188467309382699169111170744206809789057937908707891805770710211858144883825696434871081778507675514747692266624860505738758310849451925070233295240930905498039707109299323325019294804065960048162830574535417094657879219921134428937131456999113663988931346722946870212987732662295265314568759395265354862800861091840326597872634609473014306393369731511375509368961309030497818940902134462424465038983369169693857329211755938830194682768719951965946314020182235529368935804387179115443590266631877271422537672923657719298511900750473850115509598488714834018922248080330646428353049474358272250851775371268718346179559156453818178401500716809084086872069946869185387762711940524734393061477480694891142416930945325406383084795215000382732495770647842001238016723291657627168239065222037762585099475500895842832768588671357587433423879317406402194009804847573321972843235010988943121913315318067347021651051422714766780145852600311961322248471119398134267772934733702455633894634535904094291535145592026979567485660570376065217362592700676268699589505150434973650635191811520464027621181735502567337692840952887389881880796771336378444300856608987474899186969143692674192688036396682867730136556233586805880866363658018254188382471038164957524852613720939087096375707711051122626179933292476510498581498470425800657421710519744398229925774429247203008674025024683871601342632632831727136739548527731444690563525544999463578418726546617580047468950647029729524001898760461981369731018190467225907382028616980341857929844765517803898098789443572380247992936024322864727303578421424853815993179652410664362443470279077883147831875949979997953206893114902388247131454327663482608751663552390845689461962458740300957443387148193515203640881011683538460695313878055108830783656954875522921197942185393106015198950962130260525783699995709381037649757625690492768880085549050528706089934007748349673615175635510634837354616770964107020470491125722452951347311806833937256023232949784731832005418385938704886983236206172013438116529440717808857093282462875297237718335743906208705350034976041831549995067276164479921207432916828769684161931064596491907987860926922040434071865657858662113971134045958592548870045686887185593363454441035633274332423158559540097823375123503944671731196736323288810153114634658012638535996850960404047407535635897205027423755017239391849821665751479275111706026934829443471342901102740986235724093482165186707619460313560405548541216657075600180347375855458907217136648799264220043338677102699956207243080798997074123327872263527756349980106067395256927798829109245972375394416199678687295397338689414482403680608459179659364182521721954545563547110578332083389214305659717986220976455268120210388319380518545083800422104280807304985893155221277114204052459038800114689612997508472622063721773089840962427761526887176231220209973891544831139061507345302252464169560208696261820539485284299283187666373689225322724241336598770619532172221534300030654863487803643433371628884801051835375221256660542849678417137282398201188641158113011835232475143994012991104947449361488526216147076492020612551369227853073020756155489241351938586179698432759311901588423036904379675742988867757122544360565922170946566466004788711060998585765011207560817969264306794957931925888488815090509894944181515393056202222470511114695490112034441834242109871884771014898989814378044042092602262065292007634155917179524719578109075965175832870881975375989793625451277115463131553481987694329461891242574222027140466576487542008897381063037119371530848909034477458306699320794615334730833835021375337282712911504644786079647196716204495866044310525295758592914631433126084533638353540970328849624288578532384244612365128088084208479276365980227705260688820071954417368797259479565107162444019092034531177564709080858947649677136265582796801376160829266500515443698488035971431384139619460496425430908961994138484033812557656158405881805066722645462577934455346353564813892470493475799354320731014490432491955186234362198703125534876214349903094148275150552805503762335454064133168343165062290645175319790978619320572138539183282184994411681455588671697928858412503932443458522213119681671001716194561727354469185385173199359424321592047186102011939925787294303606163768363682265440467531723597266190170644914202048205851835630321625192943285749397064528492240834352431479818579863026244154716615645679415296267852107059669770148148026565042359502317048539510299775895523720386091717248320746297627454395344112356056319476577967897056717730430940017602388012905478210820234140839159486737995611748888935204248628890488936808593012574608171916567052336631855806580872850029783485460219001772537654850015257421969858354325950890809679083139698669634866592400883273673426435363062035469632044666943479051477875432900812782319592459654833513093466906631604216192167587843100365363599816385276425735982791904728797634543829533748846654848926973568886832499874498163443708125790857081016212338240697244745530180752473219422778683082812825442914284440526767399057080409971461859469650558942435532042949972987945830323283292720628158435683565005352965093013242102776237047288214197023684063466929451556770772838762459622214398966604831603446198989644834649084473571767329360725485565000156968700305862373838787706826185138393335030393431724419806013527974949159830092672885187837626712458671768273266943126429948158493096689411255982391816946667516685870861990239274707304451292881086918063670067365830987479010575292990719721885984719538712142263145990038290362152707377873810509880680356391118883582044965333175466220624567249513748140223091564092851248473612900061516287977182553813792000333651366190123441176276157958854632586326077654159738728321445895665864339954292739396357604965426130256128698943067231684013092325129386700599237404316048950614334792180405379353854592092392119143628836927903847653635488376356678893989677573191798325946046059358460889460241180146381578155013721518072808376828570510129173522605633771160149858751482549742839974340296361752971535983607392233493505245652995472373814084896057625328146314702345782002523837775162225147813540024993941360956247677007979109425189196643687190046262888954624156499013093353433658207296078372377958356645839294018490575452228549712651294140679348024231216657640573883905391206087141659791844249420068240238804575164528386710751638867485400211789215210196653478553877083304061720764332748321159013777110180323109404203340061094300425589438353178228156267097915533068624309232518221575729434062274999522703073122090188798081772286414635103202878144592370276152207514702903190576799997304689711964558163679958040439575415255211350864501296815758234728867950408873369693592822082843098503016140608726252980053807718895166521662271997170668767251409683691858777816481908182214188279283924275399461806142712892518120732072190550052961905594636331139839562573994661693150368435176006442919117714237024339958541438389185925431447687678934049035502645465829572944990288084855952159797666432563818314786215242450091298299577479008329212728981241779724321254712077306191755655058219184861949159019325977865851450987234511675147786840967937960541158100184956001861545382161654074557533024676332881970295496409722274766794103000373289081384723507013935513928002446498582743714287345494069825625035029349315875800590107765538215771030077528171239499373421866089861486776308751852611123257173462745289034939757749963671457781315616919278877539650850429621772503335854513265286113460556801849287219037223503000346975912256757771252633015345845387894243055324028105599633451003893270798140239501510565883099196743205733945552971532156324527631030755177138804608737956383349954904035374312020343607955678622583629164417976482991176978802329647313616481059828329355623677313828772008451511435042162126881926472058888630216256660555166233624397355954671967744377454202056366979459832857049843784550879605437024649033424274424338949481724647236709381582808101771985463565812785205592257644161631303007511873804900009827901589283327493673916039981109662156528679883852567621025214761816590778419808664934503433640159940577262425753241447683620026318352662741026766360087467729954428085278279138243243166737539215716862131567308356625528609558944794388944640691037578090778414159030207683948237535815740533127014296884539647017437298132354667152093593427065989805493387372734660450059520225081792021484003377721322111254362553446779388916630831849515168349239815761642343248101278029978829493275391835664723625262520747434337913025732588571465389941697690241417106526627333663472966905126025265989526170745266449047308188624983160082872427686858395827014888521183455767841819854448400446638564797120188198352233177514795061675021729315971980880526917596774523137688304510831817372017250952713863318582792735421593213008662458284366417060975763334566551016773662844466313825711354835186725015528086843158369567038323105999658695282629619425216786368029333173272106256676298454384135482248166193246373503829031070797397745170206248261163459366050903764888710114048702589578554747133238754244037095958918186473471548463041194287549330341222330890034021741309377254089793395071564081325914783277406415344408104095615925258738254722599062261440237377302681116923440879960055314430192309394123192158570295720100946773575887275885826442824484906094361637594216991696975332687397778746948183325997279357245723802492265018527901565917676007468541980694012204673396909287483587254375225209531784502686111602680551262403217044913589255628574369230404583571062050344078623960882038660890054852318424553943521983064489842209326038041083528948072524232468163678818482937482798669338028126703646039301495338638737850331827792142298056326892967336608832004207061485673547673009045237558568299711985116202743860122759689259451540260885246025236897356137802652649766777086815557130110223010531240980194113217162917280178107563359474352248370538905477983798985762801830393730864160396628165739881018065846258150266197190282361717274007236363353620698678609919931610651604107778084757717331678288474313840387539815799200518891475621138068138790484467246254394845424810380837677494360462705019214292404632727097618068572123522660576792253540762805610611266895327973242496087053216475857771034519909307661668483458419576182632755098171136693528210326159959935671621557446061452286200211509391267643546771343531123224852320533272466417777926248107158847055795381943887378286544968989199170200218295073746700036334875675228947974441657424376883954448727499342436101739922029686094366989329426157573094821581164443149403541265303320903853926777901661797859243265788653795492371135253694025976480533361820892999178459182468235073264613320115561790092871742926950834826918117438824663333583258684909799021024333752453348756539373187226669201629868243249303712074077846893596417737582731512691087998154773691160488424940838170615830131480297698228898810621239497226928214822746365703182257409251985499033110452222905126178755085720667122010024059588802555539572042695286547807358118286735197940773547386770998246531850523680797516419139890457737784520595929235230822264479316796330813873088534320033025029735842246677816379350690766316881835311382539911400074239202008770455922281659312256819390572236507539941870613369756147579683239878047458693302927798079687745381818846212772058102597303702766120017005050038652360378837015421954124693905156200833311802110198475139295868453921235201626192602046897287796256552240766961380030722394279108826254788261068039684156746688370672562134844352740595317164110840398246753092462815685196195541122326627878202212083627265448229458607378612968240313974362066356989807321192164595473073165099827993126681888384061815429728542699429327854178140551436199786033394819509486468489789639671418971075027972762591357502895699459885732642832246658425494698901847731843175670291072090453908453162899924904735186075752868633730705000590567025742482809006999921483356083189956359784978249279883182897147207734474408850026142012419879019065567478902294410805430274648443429999047532444746422861931286415367462312188136970101383624747781622059706127189047366986418333596409622477641263291005524381081209099074458022020574469274065134899801497570410244944831322245872925818656269093786391893417637250114066394153749571390929664485871048367647559619306740902507066224140291028223610453840406797620945468581876871847333342312273404306643247870617837219897157120481232246892322484086337172953077586430485816683355106103923143432423205839682468452280622279379144838424822957057579772517348428323617483772371205081170638080669631215557324492913480635750044835532676549030735336436956412497350884530800805205553923050515527156040308259167288547232251128700890961066907561186577931630900017659724092870020282088842343131989739516634388325513214423619377205994520987630790382876775670417278986350597332587929387198389224600868629414243054957292724742161629642992376730479639453680331235838766329894126969357134724890963670333360144063095125385441140318546723749541792545650539173925448208443570795275604891733652390280911982927303642620119868132506100962731299489899463595959341752400425347375133607288747267240464198300666960891890298898329976558138160845204321310069109383720988043390449141158231244642887744530813790188728171280986983948361689607945097507291424134625717060160426470977542123919379724374072419473017850098890506297490283342744067963817082492086451034915474949532884911624626452490527300236954185753269669872478847015763731046410486614400530559725037563573563638773911553181042970509778742993223364626100384482264056633435992366270421609069377063006658927561658023792450258115955782222033929620490898894430492478059728583003728809993217000964272303661469336166215732684217625798948872068348001026157733723900482021687666231009626898897690352747697819943079136308873421027104252301224249026937087832006148916793421287205088130315237054713709336904741874476612859764041631639756762161266375182079660914622962135724247261090763844064811841235998320857327239034764793530135142226150682957247849031535965748298406869882215776431562527907933607992339944079113803803336315855346031699707635272395473408197345826024935714243008134972267090346665385553675072651367490357993591390519963600061077618400752921741768976518306212422183698266783534811123284853435168315888517816336880489431093372063172543983087608747471174516709652294293012521766385459111203626534723648056721966060463671763652454475915682625803708325758783526037436269275258047472746034815778891725269689674776000739260724450847682614819710919997182327537175192383062756102691413549011943277859078729910757128526448101995295971877509579635246373829044710433968789436885752437030327218469255672741799975979405009366345841149400063995377669282863743507120383850851771081051655142512200245268773839428882830342198682178987856874987174653456378589363288987269926189042778348710968769653653731704150972910674275618612698752872273498015304109750771653049229642866173793019482507694057620313153238223968399931975521843895147710544181009998000121583838616141536651813453748649545637181196683698905835579582330657110369506637405802848619959266602576220492384804863801865162538566870628240498664735265788261416087488668147550695959882018176236823369735963025721452241445282028640837972195983772933398468155915058331847190956647263358208958184863635533844204371893767381042457547889609457725470060292885174602730733473140468223861668785389046286738668509967386441434903337617007910394428279563785251508012774169429486836404369131361704840038090411144243240638743859635932066963386880851449123139234179673369747279252619324817314304777185418184664150735816374696069325846548441078596845766466548133028411152435418724355392038573999770293397682552554176186277160906421722134831941380411207661597098084377085066987980503263301377430731592627966314717129757970562030368744025364563203577621061030736805809634686897071908487880823254127673310108601050694853675499272220905293413140309178593499208184228369907790525702838158000829494348937654201561962992558947834574825088698471709195957529346066737615085489551966698766042639386217484319533647273399999755631512389900386125101968075795763648886654602430344511889393685453839317544395959519127280429435666681949200983242275851532791979251303144804891268562896618938132464294224571042272970495605769483739150930269697166773782865355535492583456297178329226104398884855113758359671604219092112431429227435577445501550204506859134433834071775181882475516599008735429069700089555623943281362425267334105352902995311195069630564409825984428478216453170554339378715586553568136591916671021879382660128864401981495476168716420782633748373703338795020147995981340312227882437479470981740942379824172061141451650636116703002012881496548677598204569034785222226603962855017000103693959754769185527168419760533077021527371604538348886899205540614177792048388341499219273755635915547265252998718599881970786934687865053796276674528524494696391189699874669932030573750722101737167586886119511767019456531006655649736218288896171161663354541658330638031955890147817584616509008742540980364607512122620979912222588207581437075693379025438005192945970550757784405362550267564080957615649145774379709295418509783017492949768879555244502039197196232755601030281986820019284450948571824848270846884978774777596659495074540651324022563079505038106897207719795783493578856628623053911739488550593337651501660970434706271233397931393533293611286789366618915575605610818369040396705450108838006745970164876401555682687242990776570905071591735828269700984861556490584093843739589410428669924593922414259051981116317015363161535940463837275300462233547610294150279186174122393082322916046708722486805838039117468066269645365658718840412810498790576400042657633202448158579643915030055339114611576569540465243746595344697848882919876540876976401081079520961247251263325476174332512580121056003100630662758262251643541001859282969624835100476201913486013320626774871429323602902920158536108631458370474797911215060359511906172500631288669968907385551936458308405592471459237622594218831851906183875143965349812380838227539237042833775209569292942257128213757259658508121328936964687093175316633263885504832597558186922303638263216216185277740411961753647975700648971673847600817346279556853053324928209384718993467574631098721196878456303749589503211208879733720737605941920314393707033854171293893889745741721495685026769975299490962576224064051649054802684377123016984690719252462705048462756900918798819079355198690791619684367116461026275256498308785647213130137284228206038162421010090992501635716904756837700473923448029670746019323765494416019231427085542188377172641542987651577561024238064719384077010422112219699843436006148991373651838988695213894887122083396308419033494259817729030309630203869182128307059818466160008160544773854458722370647831594444650573434142354136016776697559470088458738491819188445133968805979337503345598466168827240435086518900152075709403650465698984691716127805756917985472680518370217741640414148747825575928677201485517165115129317994827232368427380095875603641930292175531101152518762933286549169759461452450000568225098464911784118262486657880807875287618872771257058950382067840509520536444306656783126345162877575872357270744728347360483417454169046122810002326224167831495356711373220378004998901091409084754904334925081265817991128197461524285530196605365693977716783333446277380255069340958390607207172679417471955042664170381889872382327046329152020115101287139381872194406133617391719797745547955708220801876834375677103743536094742365614747275635140904298939038366936784864619628478709185824559992056424950376231498943134660803132405155224148176482831777126103777023731098901102886772032915972045699483198977765281078004347389317452504277161672867048588386639366202488574761297957774341937950606340000920389275885249173553635786630226666496068874406798154292579209928044619481157584385585024449793155503664409173332686628233003626687027448518746094803164209903367638931554742292680381147122224540888901026291966035060846688710573528642536271321912841350585208720131952840608542710131670569081992460101919946951489898640153817548407630028176856131033527624961701872358423560506033940730143451250891379125795275144308564580983193006014034866882896327347594383376964569658066603673566601534509828135410855889386460302495164510507781188008902952030059690917396428178680706493789139589114707246292584533379860791936048528265227293949024816559679994036719554714550327670761780916565159201213730859092088057761457583128583984459481162776008687059646859151203748691259537218274015485868817587628859836737615267010176079387276988281154107894749315885890454414488384815325592884890645280167555151764031683899207414726114096645199800047871801665603722050484747644156295614414278201972109950720865852985883941361635526966358380156823856861725978885802686982041090753412457753736521711341070101895278083883366719694431113653558046064673452182988054848152328604228504054212926170461016101145173706382495646592468502562523268896580583876865610055461255522273751925146879689365071611363448824673452337864287893995761765578730887610767326496752099514047587963390199928943329556649999929726134004345997761482247735294542183814722737995369293161439194756183927084122774661721338058903956480138851194369466356283001171990852048828461256615395861374515447723767518018245172331141124603032660144206266470104810111483630060530143349104884548079990412847273187449178332153863449886781524656835922043820729491668580122156794870779414763567697306583485395042234962519182079946609694273164728220278246312369731023203323561503017973485454375540705517494501267820960774982381170418224250908298659333698917064271972473758146861435946678541536584983157319406336987954315302900688860339626492807488738529461013821459211751275363840174985139665511010965613920086818046545061893620500722945715745761940998004787860278950275122150139521096292921822176592300977617561540277461576683342109539214131127875366458055859621559865970868372630881140294597692395205759272492787612514318131768534322542650802076696553853850388338275337239109491170650799629786483076280580767872499629939179672977082295473502198921977108693827081246331899629557343006738902714254574043239519215083512845316519666761909389098948227147741026848554160550737717746041165562220308756165895629467277535768797488541019467645477528256005025392477729983442137283256682271084952301546528561290551637497314424618885198574874419931534049137739038774039536340149443213700867083236465841937342087156885567792046773456372929422531862804497414366737566385378979355790422466731038595322968128976091853420198341033864184558777275929824018334699829725463774834097243270831109913848400301842188364872108524336638436362446993020002737262390380776403316727604728798345420809818714281205880723211592820072477597085162807633855609789386585548475798493396264922989760451026723112555033264696709853850885014407974034787705487185933898574611688429482163773038770472845755864185315117408778410772509955665712098968834817269268851312651970924731425732489422938327655110532328352032721660743802955517005916092518554732282929558129671410944406999913224907155237325939723046590238517910478958659266857024721237781026476878501277182408827784974464560043106259934495456410725479544514548077942151028491698201782770345619943196635131186221269738534919758049000993264792649909150783573588349184550340621840412750895131054534916926912493667295440138738935453671796354678280525801196083220230828716955604733275533252710093438322120691961875016287829459965645526341759283726966433760098792486711082461359774601770445828674820475798352393933253658078718924438435038620165029947682433359316666192265899209944726779654918155514991805349109679705415963547465645197995007890585428475779868778971338997167153680661883938129828366395683617143342473772766200819301323863388907612974612650771020430730774161514402719119529783353369594692233235414147855519340859292796929692560924666788426919789184155658383833448534047798081350265145537506443424030229792080490806940748091983918683450879234707486210929199561009893645040839626337854326680537272093277943486636626365212215075694186347104784798542658559054364444979318391350582485329572066349643786547949572438581318768774262420469783258028612013128170290275254205253604365536324013122453487967544845157424652361513511304831418241126343717792573095385324734276928639407827820614754012752458284182559148072866098815803176985518573091644821075993437755500241671960319269695893212826303510146893890678282501199572506877837702246620224678302221575774557033653038572484169064749225395362863908151555971720383691681000923558439659180519155584282579293587678738152648478331527003059549695217573824687487727862246239062538232616065828834152887309456833225438650020136401814793447036570985527374481635445390492756832701795546119672043957669363666942033457865727817447731025489841455883381606547771437297870203308029972465948030554221751161672402540070592502421637352882265736016041357722772297409880839567973869378887849680903228518058047933638462725770225731250172663044810964120873845186055682578273712211478703561436337178056976565367738120077620063237805558378043829011014506021548626392516915327666395404905394385397430236592953806293157899802878386567627689741764551560402023524669685654727968055790791412337366176866179379288890827038409132280432001760610866657078836761833845448063583216500334678297189747435418868099785970226320935794872288053229602089157008497511607927438724850407413616112034340716628946265611196340447459921861038504439920080955296453860073928467738412822097418316391898152149818410101817544536877140908591713185240396520616091319965793645820134387207873918492674734064223069694954338680052929411211846107987316128739187561092287111554847599233725880783695056091841152166203753300269726378952189322164598310067734919453624113821259456801824100925339676846781965107685796814202113787782031088504163897552766615879152528311363500706333877339472226218823871781348074371606302835468598317673256731687116471888995217434088309610190533008970804395596431497968195254364020116246044116322426698370809950466669012173859747517935615594720040699621252685520752581566272964318590818120121701897633437720885701826348743169098350777940454870965196874525610433534722643822700374339239541017074475277781786974360655188021628336159371222412378557403756974833090019058306820461590632082052981372039068644078604714986812676843515946839903398666935788684089367136511463384730565954682229828065958362994661040677892064496054333636557090983622141003499639522509295851882550050502405628660041274709061318096452458456691682433359149748421662054161569323093104548188759677608273797192938689939738904865989873428645206030769781225377729572974774063388899041105321853809181752003338281245284549110544895789807622936418481554605670901301153188813658518985487096534107144635732131222200774286774798782056808266609732125880589283559816793214057970762189329945174999398348888159540100833098021017396863627403233002728183277348240815953941442386426727161296823835636428593869760263622690172142538309447124036168839436783134433409068980834812654305601770375605373795027306426368341155056445964219207603936760550836702919706745794576994349790196400525608459813134369622325339752195063290120428432147950009354111315387654247948411110076171733883216748475501713876447346019893438833515302972113870724776574744300549707465777156888819860978079002446458764057153555211026401156075635806909904064160298028721781546460973301855273316323579701513586204903617500028345486813663007443290014463677287700550908992194364123553687879141984097270769466891165338634747549302044453903548734480965823207503144880368386827556026992222884433311837027993352075274806538569912067978779117341108651063847727341270498098754179679309478044494845402048476146612640644480940499362593047579383223423076989206248647377373772030456408685740891345886158470000331294461624336657921501290091561000735531345203713078222903228441426663849333670728380049807721673647527987510077629553261659066694632886590608459199251949976313396450262036808719618893174397071254430920025281731986246104945864209347594557988122989288105817388058606773964499129173480315914357854331662540398308728073008049931272357075926490161907071454234503556657451358897140740632992085209241594637632450682820920258346170295349316950893721845475294746062519094754251715593549651783962521690361095908179112701037814364584002699224865207059604084081193142722349084823898636207083194393904233719835995451310999395933609089638716348763444871975023455711990774535957018815280082049441914400597990043334046569611384818306884589572090832576298644578448015631343718156118889006529963056726392588346453432941630496515280450618511532994774965422991600282277124746579693682018927629368715711275386392433397935704074292035121286823390160444673390832769384678997263679816428011268342550991380876235225044007110524596628515574107351792297156930262757468902427810332870896103891385559408543634161868920244193012687600679248677705127979266087695746205695203325732883570874071755090238639911750644686167093343984420527032893661453767612952357200526542965297031631890907018372483587023452312782445747254491132504782349125632469875331896027721170568241662071780427307954295407558743031812887248821492349128801348577876369226555100641957830273361410449273496843836135506542779829562941102951307205392741416147785576794060596965545055673617820431442441175750410861518092785233309294080934475269027673907915385425072034481479796935824970872789357201361294073630553483313520353738398081565233580682019926294798724432074335511627931381269706540785998733534670550876386686687478836037052837458780990723548705230277872648713144029240233273476625166297397096982534254957847016912476163883447337374856539533278562478367327827032122645941343561877631148416769598999794289885951599859342994006178225107671531222453604428192916650334696283401450784720634150718469688986358878948674725674437694916670216960560204963481328972841706870348825462761631652844001374887890398193567633580806187994332289069775335898700336609493123063787573124905512024364689889431176753872127750516370013815271288790519676318973151811208353698838378504810921551047309123340136341806553684910632889997006184402879313217188661868627744209029336948057415957760802239711452474019782973381468474923573438127132781802474294073147750486309781704806973208212676000420092020626396595520622741938520729242674139472525277559711249493293365223275043414759028085398328141992037514163656462574865145341453245479183945760773443453133003245219215703693782323210837091933071445713154710550377325453067759033382712902968959815992607553630831582713627876679433151959458136343473299439634291429615163238677427331866398397228379362942266069796031940079695296582379334014163887608150325909053088892746366223685460517890248964756309728667230407707544213405114763578120335404859669985730973729709308923594460810579244977225062188033755448066912463943588170903808346003944205284191323876083039058759444383621721195933755704646106087506997529024794760520843656943721806559428966554445709934339001067986594679353508374890411538744743034900598035766174013420273936902800673191059496525330307353152418249343552997401587642042423933763622614634204377707540441684897195659572720351303922259940081661135252335089765356025597462270953489062462635011441431169196526086580412618441482816176482636970946742314901417623443971706390093808760589017575269996666473907178834630703483724739093256144609007041067307086842637718163303331409176539361948432173387599894513487872702842825863599814091779915086999622259506042763272859329092008313711286550537857232435596768067209071145263044121389118058618661521733503606450166329174886279410325208881168437891515924548037814703614061599557326115258249443777337220228656679926627209480813376226466861047214789952589149577230266125131222924114181673998303742108082202129710535466600729002904755078870492773438705703333517215997958365165926111976741151828197116907893804328529432369592325258991878562846422547675961494080736469821616583958525886555599577800223189650683521806996836266145829244728446477709320720084832726984165997103048355123385438919109429811190737773080149168032958098763497016809553821631550826696317753645843315607908305673738207983549135687358184796338544094341047114730926904070437688455972156151035738188646337607876163194867780343058756280133600641098707199395055952373764141364918836305724203807675979115542059615457388342881074007799834108863348118576631746609972003241079532097687833527763560181354205689165197497098286297943772077294723395755010100322024304161876881747999192563127292101577205851374077857271104709643191425766478421237213582708247705060971676076963220024500188377599254890576810043592834405904809241484476850110347940276524003622636474094250129355226152527910523653433342356426934719983777138972038125229956145368369039004655961949111363757930693800153532253807145469017356996120009748028622941151385723302312131943548396117372837993764276754149211724630379320097495149782530478817326876977195738406792466268720660151975677783325642296176084970045948393780627726403865945414376687620476599907237522930867708778141730117319201018848852391738933865319915053206706025827960146262181415699276881492523804273540869157258354222861794335269613611837548746298878115180931895175656928271779961481866482542368798737449443642574633424556633506907878854888167839432873356055278780412134017336159864708455611237122269505171813465883377242890389475670407253861852229980240993428167201549668585836951806891404797648617673779307043296248363758546008369807133219252400113626399925769142710716949191741280711712322953529995333132002701499059842560937371179368039294301469697200970451225643759155712190147391140450039197764531311904554397152886021947873562945431138717381035112653705723107448967474508923649319655662056002579270837029456911746559238508934138841108929364943596107780519926867537318075613019000849991434666794110647522511560425432117584349694480153629165035039363296049134510327670942581620915458637723527322803297460326919166954291166493496467146953149009788222331581028300081001772984527778779811229192544716913360516846785638082745556226881417269046003771098646711984140565903876797225334305081995820535745410100949469507505320751975131141306989128406755889425550066732036583477950097766331412997923326510913850395031463186994360754774141186795347388094621757316408209054547023548677744365074643609111617358333173796436674289372683335153061018869594255122971745781175861658928563198982350568719729863244571788155375382089354464725924546739804287242504714046512186598229400661863718145923518049874513931270703996502099884880909803475068124978172862991352324596934781357213104079020595245873526515645250049156166969895235868249547785627157670964968749692761282688613912545982497695260099699404708352020684624450462309821626719112323469509469256247751590655350447173858038673179853733242751325027640882701786427452650387363032573911243786881408342794089197195786730885646171068570912685512033348651952946266214781914532208598447627655427131359307641258686214748118617880334391744064610403993272419817638817681806944955245224183491416910334409785141699433341768438812028743801684744268682452074946315235089631388300667804559817341209504881786675406963942795486154495371441208407650695636474797561245028920733126789788718031694673234196021964992603889231709040372820773646779048350773159154066985079014553670086073062087696228046434800830998595060900513083240744129792892778868021926994944752628483937418687148284739575699216318980240448601507459321893307917347588088651504984930300622826229690403011885405000146302667318070329860855878261968583515978090209430057281987901065609636397390115612686629327549421277484789194276930346599034231934939352882170819412803058546199458415532855045922140508746512542783302162203401196207268759094945276639320294709121413032922036682660131673917011346845038264322725755177530813994107801365749109213645692533922379263158901187898752687659857965449650247386604085516676137721250515584489105349683426668526090913068600254295696111364889877086079499297041351426551507349427151780315361339568586383010872324762459561190754078963402987633891670535905536685260204446582353947018658605541251027910682898557095993326636925348485667723454107060055848466208446647917337101385532818801387945869095160344608659324845698182217189838449612151694131463864797315037204981797044503127366227013260933169956778729123012952856944235077942031142965988748909506246933201425777595481676907164779067135884882460693051591210425174403933644126020383737174449599717476252624241484997801200126543952087348202693182707332692518394549494691272513340330622770516866866574433234895438668498957471582103063338897018246674246880791878203045032940758660496199764892768897317405754822235124809934922532475303836731432581238053349902654115846674132002402624075130941421603458930122866873264787259945833677167168910032224680585164810033250774859079180655011650142710741377740109617027631321551702187111714273408240420098489894927322233812943293140313140240770809224447512424763800744704004856776124934294983609665687817420292388819104198287185510161554121769428382686768408538827025886364334539742738359938395685554695629642018899943493301905234816088491232827079083491455652365882199168157507908892732593830250885930631804941045975389806375219738061049650434729444463956126831102559414322483457944405524914701571456339670904522949640713313788435085408160025531420040740265187636758469306064625624789163309861073526742447301274363578614503471108573935148397014231548586584309854972870319276725436914194752415609756196118254848630630213364896750454290400532127056398155745717697239950579763259913828276385895486133939092100616947282907549677810837324162647219683811440566005105537072316198365428584856911205177269593947087564401709847737969223400230044381656049905095292334028775098884465359754435092724383401274560743205933869912316384014537034932962514534893335838824897945433008038426564099153026164366541800387811023844798686339547164615748623397100504887418434677425167656436063537635087211761399733244267712140962011829402577192348217983619997751193532929263574717976507849653101784974279161826879535140156893040631272714659893581780338273688230339129229344399138611092805022332935075671018819304284323587934045702379600749084511906003376894756378025186180920168390426921734273473726141880157749208510535524191083680009331634623953730446852790534699783953347165113994520196427893192144353427340197925734956447929496105636197052443149577951107159886406682042239125548278678905777173166193789003639208891959354310206199291644890476900105853677502855183521600939220517446256277224631060633913682761251818743340970655066263096604034557854847101061699460894010697115276913950677065430587918515176107142992575852563929649257153218547340931008346175154697836658027785911042771110467710076530583355406096561403593853843312213289605677768410087417502705081971998244131241588721633049438300530210552508907002492481572725493317247551632532206277910197741545103422474653759766728510084009496955413678489685144053405240595146478867391719237807714236850938368686033163231656196170273610508844176369798830327087297115670970697114685182035312876846529621824471073374681852996267664011201943440839991271436768438642098171758871277782158537970085159330132534447473756588814384410367671839067019604054026152492322017680023087412884654888418909063637235819081377510238247007940736420264612672892801629757110471588171027941918545575470883480074002657358510417399758875311410396718993893829888148739675541026772561076652303841639468650698753188510435710514794270775449735723450533139019642719034399623218737257701540498362832372192086306274006781897399782644644393149374022185558498700089073616148133246033839471036797701013314927404380593625632712641538087990592623548972675524093106901318720831711108286198414069040568578286027859116371422846696614392207431378666950501487034613661059269310375918972363298338447101966714064123510467230379731997173939775409976965285577099337633215274749600823724689301650284400215977001656548842340387753219763271157105828460151518719979124411664267710883530411000224812744293265347387850631227431988983114018885700904263283144545396788604024499253633222387836103887140815361466581810412744566619162545841495717441081045715654089429272403207881062251572177215771680655234441395000458175657780515162572576542642250252009100858012779123447728685083463847239504276953099613864317260780520586100580019137991391327976971717145785728847259725440268800437248045451396183751375904083887632153853141069867630079896104520348546255774444418450741763924706808616365594394574845767249122737351036400923233585453067754527052068179902267751578256084473149839593868374391904257303382989834522878141208624167913100585697662513210729662302056908130597556091820138039762332617371708482835804466055839055356789717833553208218552008539365205158341769507318818055787916836235796301634803019013292372509702255458486508471160022213705239714511892499440233628418797753033207806329615793989056676084100252940480323643218049158312134578192574017958708245045275693431764904365184386312816065562460814194829409811389582826837313435542781867935910482183157894228502292309523127525201822759580764261176441684217177619907844621312293735827326236071134865074882238588979530031253627334848901836679600386370982874794154456181118319689681298747904922047129305484057016773107142357024710045073897468687510332458209406240564969699110787892656189963385973496880471869107734626531215077332702735026130249144604442660170795324240835118295273172741037464972331482310209808997070087598982811439685716762885196199465021385184529742116761088451174947611916439480092383393669757307097343514331569255908940875475206453782211994662472234599316038741493504304943465865763968785059279842092201109800301381323518815422365327736166766097500128011110363746875193037915209408281585070799002860440902384291025000918187670970943948093480439583681781396716530008959453179201710567501361207921070622379345902294703556515283912382358645638137816497234372735387330871730556213856015494593926353720547976781885592516028351809892613092318834056707051611121512281780522922978447157350125781658024368521665489997427067687152160139260472137821838173035557502385928536530329023267726557638111167491778218736562889526947699768693543381060903233061970683323651479579718459684308549514464505842955130926296061366726257352111436041439240685889926065000958844765185876661635677481287933575139042441473076703034868189326110301555987875521521664154073438405006908907369652846836051726506140350073577751245339197683434408886693673397401956157464387600040199661664836401989363420803904688581547689457625584637715234841773289161819247566255109016746445455524662329523900635643965447290944108630742798496021373584791717159940600904052790244181559011138732849931583807614486970395095461463412130236097598467207220159993518124291864185960135937151832658156250047144247367311495316340105663911003785849607696392583326953386742962898498373572832696113406045119496825504703824614894365957584194636801013534794267044018153955152957038509046952487226618320034005865048452334578247406453255150412961347340416846521688903826273323522604010407173969974224131625891068291419046719651907188314079874056491780060022331959201740157742388051309585794124318371703766523480769619343157840215081325937164126135241468967038565510147032474044035111246420325317065466853558914409157791426137467289398058329111097093505990246716376346943102722081041185631114852060584913833235032755534033128438942337882268572728566761531012629293393312213861055824557975725832186937209983096517355953731195811876341249766786774334165452648667719994221038227291614754149925462651285566873414333527524487329428154982826631779465227360893167931104401212218877443139000381791685577816430171895038550362609265401094865243995565110213143039160347158574267755771795697643054543623011179321940904424949829803804305857574218315851544934733883130450114948458143140492993130342757759369806410173372063986161565074591837897860723102253357328283779829955595766272243031765863347354981881677231764887328551449771028713875535579958016469539361758405408225489602276624633412139722406638927594963954286892600825153694885909886751627861025088746902711553405169679955272859842950018471195040152616972769713140669977654521055533692561701844595502435767532942947721801832604921608932730466421025423499687725654609929662064378168458161982288884878689030560287658639764839107444796203308402634608555545369650170195136231212445258757331434865602761137902973590203936171788443827044606945983524429094665582403717854753734019316608899321263746867450229194165031848997254180841737771817408416898034397302274706668329321309734487546554755376325065536412738227530934428619488162525110521256977735798455185998537009990832988914196877701626913011561377629645516496177762941181395694443661773662054956003240546041434600282057245183887897654508020087808700947973889828706930214879362034848617672725201597157066514705797333904959417916597416267746443816399859122832979076077596665779611894268493213672992367753118629830195714529428970980013571446529975384342818447366530197440977225560405354588586103184081513332278667689133436017098303178707622389937726262706307353056373644118969402283121700058281707624317747295229424495732074284131947224769653757432510082787090642883966373154780463648723372487190297527588929676257728869475773847281982519813092106335223399685922327425006211096113555594492353650068686282184420913146386531542079936600658703588217045932596897327216116345590326809143507100068087555543367233917816012186925633541229144385274289881658361722067781513299741420930547966048776504212572779961323784663388655274496016031673991090158340140986932023631446298171950868829031250898085350356783543988165685503201246795526115801656508818107427607486838498991976711656642439691587578769087074241017479067974879808697395498220028502228813748813453786917694076379425642212184959019929616427903666411527819488947539419598248783130867100434806674651438050576498433985179353542130479335664177380184414931228910578160525038187843702352683279910188391655072081169719981735934538040703518436381406510689307849513392988825126705798589900307103404857018641541103218014178203798317646486175426386657950710961824900559828476198685297277772307229523244357362688515861391232705134895522694750869800630929775870554690694958293874090196872808842909539504425002352629662357502466996087512728102831694567576361166955659404671082069105568091084501860438624886435077489226049260338292918741570166619131343331721584842181965638686898653681465169576990326917907064072608023338779598846650220091132106189369649944500022997970417551828817845330002827737261313970312709890495676782812235006362541913987847215947729664722854863079928394221468108390690730642237854235446798841331935035478391257687709083613844922462386180434633747386461374930891458042750156668773118228252444791052827247265954720915239498237081063770521889545231806747384031826575069050046028696969904841553205809459889801325189329875673720221190735908784963877705259163794177126523925757232258715097114467183850390228035780253752625798539415372841012958964863843906423635672612835455375614232020409524201824810332856629488863279004899689316125547750488001310818858182034419579087094473740304980989902131903750357927208518223429237749015844214747514814009001528926520334530380118254251723137563585888829637868074856070878661666151732598823894810336800803429590822363515817045066854020519205623820847705267345313351496433092669952875118219715954019254856619035170503773955052598538468850489881350659307131800947080331260916810887389647704679357104671579231134048754693325814099045570679769864299115208682416270874434399436633980502600629456472999677107308078276169370037672485522416638592664819409655847011599546807164163407692587934173335959168183693722952205324640403249837334147695279965020656848460266095999843976341058744611053784573370490460255768029171549244170135364327575041706117826885261440581353767662705545188893161303419841841424992753774308222065344865276802372608725187134440681444953222401615011861820458221727618342654942170740929541080719219587030429441174884089122129975699466565325890491559885498832445237355040627788525819746768462915004267913296608213727532098990725589352484914281246881262876326644869573162711062889177611795322354250024999015837644268617806283804815025600571367253235055062549364829191065417351610204320946346546155119153103900321736509046281867515239553174378731782141681441080010341897003267351937530490847427335291304750379159995378435026526878891018025013684108262625171086346600098610880468046991763032970617967302436465439251778980626357770208860867382989562758553845090460417421346363852005759273638286884799649915312010487079711122417563998240982339195567783085416537363252328232688938331800357772497674497320182188454009068991628912087437371052725982046314884019693083787025608727437171586692392602705192790461387875992801846699154100849415077593587384676915158884985582960687398278246341939692630179215988771139646376566342056359644508296486832422269967594991539001939698561098889760503728686349509916618088834438981444949111038383182938854366870073713869784822118771824791978978970465136548774461400936259454048837305640874069281377653118478548557517664839322618023553087913418247525514791307498333764520240850348011085082272506704468385154697758971525910815148428717439084422426028544252851841268746657691674659267161650967193909800993309783847348243103073251937564881110467898817892224508269433603087009511237418604353121930486025327464358153879431343032664609459167660181303270672391774142180370470095976013426140229932436273695670150754060218440557001247497279042260937721479284578522560538993557113685159272915553583030321678270884833200833631801652199465166377068356135009892763186010902084148169288541306977577868868772189310946793793189643310945888535556528570847413892490113024996984767262173207150234194594868071713668037358539646224342923306997752388719465667915844767628377112977902888347324510808167181523556146360537915491246953392368049826264842839744210612206938614945956111048833236563266724868125082137649810256071866184798636828566155008775274910233898494733772434573089924026835742561833544544967785389057520275199969875682284082113420517251107852189315885461245408904156560224021963499215118701573432195999122240457219041881517522308795163724771232555277666382792322851222345045258019537217172105673813829702882493361028337813639327676821023206958970823389234090177698612647643675792679749060902876427101538990871084734386783342514251967107333250030535890613417915374752739078509544709234021135673338353820794243678198450396976922818208641777016516306451330786470321177447447362466336897651644969646086692785497776005912950026644361439614151690177797483878626225162803578706932311675500435010146884224430499588627731252661034185136573990718426360486853509616391215967324687757503050125008467643139705466255161347640600752356109258068291880887201709124091551507696965091672022743729598462337907089956904529910079346323419648580571310405521881034305940612682430495625609315076739161695086124071503123293124673839310737127040305697888440284393930165699485445160230377583734509872647891824343525210702162673500778571470447350347599308511031626296691061757549942667711360640658599229721000935211345194386550659000115249158088603763290548924393013593629682775117770222844943236708406929423993160040418970513384453135512354375899061777855899450831717911909187270322053327041096823149804134762473708172715719885968044213392889640421757683038680348838737417031750341743962334969040875190951484282419035824973829087081780178499005400831921394957641446820190524370915321673707968860114897720029223025253132180226328813353485236095307021474201175080044598689207598656244992487332632898590021102320189650705034576233502746564368735362568579964908169862435113413582028421438882590211630630393653171794357969719893724535834818020786448001400716238409102092720987268533825710424685407480007329017048371722065911164136384877629051350219981478495777911427436832344045126989889411391829893260910698113371321400466387315827660396675647863290284387088745083875857512953785300837598526087186830407858186118242536198377733171026284517639655839372352455535721767481212684732622837500101823604096619969697544599972744069260042993748561930143363966889835973616130662589847033300342058197638314639006949203642837913846626813690305376636072887013125949908545855283467392704955998155556012668758404924259089655935220983242504380839354111743703251063812124768387013896104272684616101981044800812156356922741579330257838219056185144022027677491554510216700274710023453559768139904885794503445101462209630609241203625215905763021389759698812682172402014897203101755745387809982741109888433661935995534513949359447334726389798085298400994840174800520438236290890377246684601299972830562517882925595180258247816775833112187996063076784429126178491825612315696477325929693347767495631457461130848322839005564476849410505826164555793693351961671833687600781801533003593621380142872209781309952934519239888343048507608102536064717835404373036251065648466282582658323547903407624370969120547823016499032463240491755701015405686133468961978417524730517330490047208618889222989119224682010866909359122117896683437521628956816220109472727612169345383015673792946905027530448848453410113216517552648393113468578978919753524568107527981987875881735533936911247783972582604697191928430887088138355906444757397764267488800637134874465222228958015531941664091938604948341599135530270743589703464157140888181757917961794801189253717194914258031843560833015730662591808608738758794236853135113354387286474491839327471510346326304484132555487677477269589866200247409308122457175179082429493999599273610276694012893917052894396602709366673681084431340779537854826402946219718974118839154385757693009656574503203447065686456274492954422295056678458079568093014931082521702490569325823997111666440477280583395276780763470229240936326576137658701219037289533988677286150768191627112419225458209654012492050180407260208733915947427850205931534934941704217852968262728035432330617838019067587287705036570752146460655203081836805633687396753782266764140034524120308789444461089275063134207666331920539203540180018123269588990464782490119538588199195906702301840394230164204394825461931343092723737528830358153079095497095428261270597381586062100185755524263611925103597632503249252238164030039915995108927683157029212198922161837690402764981885102507562076701985398756410518203689076425160426174467604023291791369072384521561444840315850865579200075983757360851779126383535145401185537119323951345286590029860210942819423386279241509617959148536128322605966922094954713958420159620622755845289339666146560900388234868099688058747110903666373151411421192160605489324307187848503516226902395837192945144667004513399490015700434944799305382869575848676158258123726995041598984138491367242816958202907323865421307732939154495425173644941278870971141142725954087231683222040340854909057182021878370673775326552596291171587306484863355573979662731668765685308020096826244632216786854162105574747626318322643861786385240895956258388418405710902305671130702860146914092352662989994068128036798441452712692352175755877790573133682414178786927809323375758713571155340291301977892176151528950320550035084604954297663477937027540853984449993599524258849591958000336822497316742714929733885829167600813975804765339758570717689075741225586996364002004415999715677435733273476227157714199230535304215967121066586875617921929805698187477239187420769169321646605205982647330605143485042594617037329357855241933229039968286616693738635573110034344736158598460401695148007830781133772521663428321999844624770280494734212528013861455836342605728531395985167438148223588918119355081069678529856432413796209271480824122864006353945056609586930791262198844325087599330337188039040889090320655585687212472500989324095944951312369469489408428558036669534473005965786553732086771301706464221133449910605179278505249394263713692392364607484706061924256472850435702280606985819027281242862573912294031830566934818571669068985473983440592368693128951954444080343847747993979240064388379752660871618542667268348352405908805990353273589859787462246037286744986820661509948156664818705943087207645084448751520930403271561238183361254790539612639358500954488293694788242863154234793917229528211561817089291806970602641298782881984544845290457550872956510795141020143670357539009344713083009506480182260002157879921381607871724016162666374201268277182090026136700541960712863526588249460509769850045396182869323721980519973277810387901262547793516443153057173083716550388948360037424403727603066716616348608875414816060158055574973113585296845458987720996828376812301950773682483210146441745156458442302508908432384647874623265978214482712636682127851011355176831576829509489238895120726941694968656111905923925721108301901630185993514497594256408821316021105825689502593984223401201210917272559814675659728416592125380315413713994721962714442459151155192162361772175608837780228138067420087324863692468713945193100787464847539879748112723728983304498892198583823264372463626614457018511994760744189874504294993914852122153254588221345130308539904189465872262554265761674443673773151626082214509413742473986458407021371584621833268954320385500456812048505194451782041326991708008186287860607712290665390781982444632856034705562822364249757969849912876844496359816050184887679496674714196893444352968055381619874389647016579428318915029390347601119894707122387668102305094402503180997551544462628437309137725859854915255783885130623365975053307289274549152746973371788883271416386800421064191897180284376502324675449579380124791790386982180231256313929657341417299271950320106076425002377571238656372295590170380935485924516710378302256315494699329166712267768907751722274478596039347914251512030370426064878299984946837729626755136478084260592338382039044278365755042761653354046461945813423484323264980148203730597219706264529344081826777594611803061054081852147492934340345117086791714467483593947988359888261962825663159346684072474256097542275394237333889670340252046454428764466160028525732977512804943744695178210934443485285966280778601033663944735527380272673209457939928043183291123433424753035229396411902168973479806064530662197312213697566133991718298434229261596929226735562282515219422576900943834279962301697705603178696397484976803218736487723234377099175774545323543742994929700452820138213444754560305414664134215946811380163196929326472376986407793228639177676466838471726568767933898087469859098172350359404052335015166137275235478554921749964185986213598704978082630828983337392659479495926703381078792600384571453739792702209139437042090570388902897048667501822696893208246433978310734334869800370063850302597707665711394740468345009793483890545316313981560436966289662106673175234433478242124121776226958157391751332975215133715131260969790207335938917534735962829005446227401225805702555789959230437689446721802223463324152489587577429128617328681696315038668800809385011319825599847152829640747983020354577346638212127188613817967259140228891857250800230699804118102121328080344310465661843185794347280663645801903467068987504801975348622147397438047535365736876569350734743604037930759276626251292450930330327994944386360752613628474822151857083357565809943705443223719453965202176735053348383854655647101560811780334697369801979098097194492555528583305612834181754179871360096630575676664708730503158634738042976783242256577782322777214634448996162849507820665562952855011123502609540591975994402278572819434999025523628631070118314897036120789607255471874756393383331213399876037746043764942846899550475148186250914809392509289382106114617806151543553604989644429325762601742791932070836915381624914604492857904201466648947733358862682989306720937614283734187951374375000507282024174442857251798723677243888152271730670854792719226461610031668379818620057535057189887118274860675846310141053019658598836117627593680870412128713432971981376803446652335395206080449949130753809355940420469796126180844830542826872650347492227236223850737247424972714126345254315824169026908584851113212207663952250063982640931684674211672973847860031300618236762034630799198048911143569575547293008328962906867131293667004216734008073219684076177307345835172480935845414626029978584982397320211657111963508286430146198822114906727360857918724478588328799481595449117909850735854183406834781314251167272198613181398179734052182741395464934639232893890243521390543923845255318906032732486034883051281947909197818510353917508454314736658719784559032062889646910011698421972993270653586630472236660111513069485422307430813186130710316280342879048799690763557230984235398892096818860830676800605974823177756290397275132765785947862126107036571789437046773368013585959837779252868773591084753543672476133814119621354929414825007034041154220464705101339822139409887729434378225652942666930784785410044551276220263695782521130147692225008366565342080016678005370543399166117190232487381523228815634076137332277542492452043658341633742930678688830438817096730735142195283782978489403783614034601991076514686661581240095186558789688562840159862213520813701949354619624737024522712238559968922254919118836788089629465768287372510623033021748627133919196445836141266233565413682483559897609388047300453989810315049084035077807347468478623847722940713115660653160350144475361590679361208032835006973118665496827715463986902102025797863229704883876300228265835226405299099310610091464399363423147712784989401021088556871245023592896706937387054066221128668110801117960568123561623641023383803370412303531185473272162791571305122399518398723811734963006758031461159967812748319321036646203569946755686878700711516605147377114174510498506189680300176219375130677503659085650109726333025490809787281874876498152036417285545649215242964544610442545641627444605189943428636367532846100663824852582102809262802585467853909662431861278907458578135138988913173231345810583244335991112395331978519518567438106166383555538526964955092713766852808291624675067461130236741382681721487946656749209548530068076093348912591531730990376849047779822171072896876270103597897230844554192795651712460585413534432174290702286456636043635067440446687424210747493645599577880010218440605683785751146699619309338712223861281318647828883554605550699052541648156393212529062990187591866109799512397893360575542018438082284253772341433561101452647426717645065827455934676425605277400603618277665514908496911110396052386068241240368282611556439539990045162103518232961142831489793671156365233839247639229351368737031281111293925506629837338483948810990711175107942881348035864705645310688581714295948460679574244742585186398409287095297747275413342735001849831219741718016510994189082754320351724774861595160268607218059553816192574809000502117565610075196699967503701625618638625507961827649684550655453764657015589905281602715037030269710698229255068892390855934545277826998904809016509000624594278848644039089146472943703523837893891904190306233513535004520563301932429556542523072423134525567233645287193058603918400456681722648052465143635532932983019119332692216076018378616962351661927904927949156789636367868760960206959038898279818287029432573185959302434200846404630018092411648643530678737263380316443689923046273421503067282334450590461040266535206432258895212061324393343507922891767004936841625831013662013011884876684394364865512811170073802787249990439665597400220449904672781474366420308406495978625101324608403019835180392662932663371311408702759377287622338891023631753764437060697916975604177420832019433047123236487611019415835020661933017330217122079651887947621133524844432339302424205586277617754028641856008664480576123232747458091430646950330643079494615256306530832222334568111818005478789307494760056069859958349856371859945156848900851821097100122453952341773122665075875713205721291113666530119143610912305274865421709430202196846013187169990303024580652868196237701868119984042106135719363607396693926441540321516958914526854822989885190029791397068068138650587059516699158652215303261560828260660588623181102636509460974151981320690379740124707702112137620049579187587210010456399775327818252371969164417404602357287082759499740464092971487622625090627007085328201560341722571990912391572999882846963658247614373470381057007438024485307257464971926645808737156027221590912099892029688435858321796878379796101354851236339385973094553388557779982886253201515319360927324692839046273884688281560614084329620899942571062506472467571894481229175107052300410589488906157683357615374636304263843375027196600529133631965099033952766836021742183432932656070679164569023425638619969067830064205107872222307206945813581088615787493153121939907884081214940607899997148254082260981395886362545944900048133798221393289588747544574464382727536436564593047385348855702711376118276925198388107331939286662592852805702793291527125853662281582986294784174423555349124811364215168251856155479286175679438375816107543551127828579566641361953412204618539675138810544326853173792049877851926074574972168244194749209372134266652405991449356022501010928890584881712695090966029543708401439515714875788574293296019491480913557639453624899034939908138546368462980917440732460850783230839292819538758072662186884888074834145860919760130913510790708694160564754747080298138853604860870579915168137786698231302276052933308705433441964234847078782748141270302926147231854461267537453703480566672617653064763605472108245604851066003986411298530478816100925031218441026126423668628412258163247939481790078421255222762626030251456572408685634940233587907479385553973146729358820130637177859810299619920799272391125555663697950285207649879669852589979202136942688815914599392983044652639528524771339109801674738050829385368424699799732381077982888118743409441651239410888240103899218173866380543679079889899720135396220868493816804822699853411488623334338375811274373813087272347920286127225341427923747300567869450719709853120101410658658615335763014803418411133752100196866237580388669549683763651294047110850496120781782488812005942803798842367208480249015603085014750047071660736832140418561902710901813156147744952966203010232125072386036933756486149599980968362500747394401376674562120261781301163977850632440096568054177671714277630219981684813352530233425402196203467731366464583910937773867945730438759892013594213867944514685147869387847431641573230088130557346503820484179257926828844333783234194606649043382795240052630144092150505528258009816911135576338928296349206776131396384491517668219554597311721372092968499115230950378345375933762032564479422028713117402172341217245668794322329287716102049750129669501182556965038319611304506134666837993791063133591344675370594252855153735591008851379606147035165495384200999176970911026360883519590934724040988568008120593526569186705783134485966150415947148234259787685485674899619702697956453459882893003982101283418111805401640399841449509669066294444149746013815638261437548648731664551110985562577863072784617964839985492090966966466144334829467866594783507765791154172868210387772843132955731849656034660976907967082658414437987606999335375148803483832554819486129452612004720844753442694259936082596042179077124854346018811814203213178728681292947341882887552840264930370548490682565741405800176173960974346318551690489658097774578721729677820360465991779009101912059036379627598209805129070090267238021063973059631351879613922996167681408792606514051935980242526905773448250993819819172299245430551404789007250540380264435741956873932946711617046201005608165163806985067554388512390034736009704709771862600549118979157599338395439858215397996388814554366451312416520795385627095930851350375751020069716352327421443307914712842815431740291191413763405462565820361517208903915344291203380308976444693756007904280182291894534368024274499429605768348063758133553378456874121147920066090727866743005393494017441434033064587146119113416249683255225690060992639943977699488548465682843250019925627547930242110666923804489040671841361866440970815215810663705417110291358218089987376292683774057551501664232967162889993094097774129018737504007470415627026644931292411582867981710200907918594349697371140893367429301373133910914229373324421212680692037071298563584372479310587746705345110094799758621460891321849043170682145723874830727959908412213212298748476341207322742952135690717017274385662626767849153458712753066458641267336554323923565883749310991700957497855454950129105176778007359228153725217514474072407270892999645832466410132774321588864222616183000364840052986093596661505661822083044703855890286778368720050809278840643656330708413879206220402420850296892367816105218589333380867862867307801494238309662927398160822809147058619152158066301187245453452739865536550563302013053427250974333806762901380506085538400279667768548221048269746804600819263469905921121213242163599021214871406010472298023166109600566600955569684153685107928553513486966539056991807535121403460893107510854196997296359666540823646341011010313701674485918440773646184642377285712818769871654165776854580004214961922502913039215745825284898000446097176361589652401728724628846342190719508178769028149697217661262766120668336306360747614051612225520766586354119288911287092061557734290574407733822159859506181971077224635605770923877333751915711953195810347709447261807596567343436144765290894963647690708824999697888614024025661941289319778440304489890334509602811873258651496805863575142556272617042473220902517081259439143094968322309395321540658093271244970453066458528157781361762593662092722726969822701213666692743062245990667204183693036531088540494427135521951314891918370246244053370763341178763495193928459790396221121323140524306147391414126975145609984254006139575596430520492313738675835563197745473735953071550755668456653231179718165500660273862629056114242876145278872652197050496578114188969400827771323063287318226952729841786372006749107039809090904584384441233441110897949975054347322212143551575659927766379635743477301068726433982215765585992175806156108467348296844898606713369241249891650038492216271854489953022192678098620716543944851813570449218018422941507445639470782330172174191968529747545623106092767997828772674661084772692441004599316197700257870598302806592426857710517661675774784211226868523200541498892988056208168312689203815759950568992395273669008611839206621033611437333667199750214922382073047724588313034458903134980980800797268670723649636172529224885578818427428959142990551380534401841162733645540694203223168393111897668357539661018091818387403196085144588503894922449436529969853157659348105159237970985175578137716141387606110325624401816606466002128237588791968899221864208279364553300309736069128234682108566237578940544644992131298154958654955491007542870205078944434473704167517363994370785152858282989975871537589021163301204274197572514130205316292025287560560217821728153487592400852319736725434569821985377397094791127678600081998122718158575964127527666561245488435711043401386749109607555100760101629242934566591993517461087404111921825812462570253514845915303974112817824275356444438262764602253589859212214291007740168126384153024167652741732028827922088744374157369763857596583243174490104775975511035607286609731815811267494333730926949199460639136131090733964558555032345666223430328683192235588646916175453304304935977573038577432382714712875959759193199737176004058259669747935061743462871753375064528381305575529317206650496942160843771519242815732842009539561549808131863522967193283191724157614227709341956184464859108120237302595216195416559243492415504646517617112575260767775471041224681281766224205937292068954342897888531109403552321515603304504082597510738668777851019639813096478524360374157725980235831808111986292096623696109344775429502620578503483881172105050894846671860195759379188762374012484379664964655381967019727986513260754518652986299059134678164157574294775880264842235297898311949712344439471490193377241117851703710099106280140103112623344287948847853073194287630390345127186499842749279995204461865527633772270411481909997090316042064130652541249501190485931337761274879675835734232703838079590097571861231329497806048333520015992021531897786775773347642671170178925221162889165666584156069319574939333138227382952841672453164787972157302968297414740727356694782407541993520328046057789003317826900657478981490163475694888856162531009945161206074886613905105815302565647667570563926942548070049157640975484698323086786948812977236363057110385227779236667428264564866170009244261090341110790826232978046506716106903897093951548188229547610327426214233042271967320039542501339670108386426376385766856273353728804545919056968252027680964246492586181403842145983547311190615949919999262381609369778594859744241846242859089523605896322226588019817989200460885290906501899505685635845263744754139626599947178548033005792670064077186443009752055628971948611921995946440608645850712156265118443736955090814451642127342535255097936930876703882917119368884555804745725931441946672447331239098532693551136502493487442597524846027017361178707599987835932941113091830737383706598412482496518914691163299652185177540237489890435482454645762993769374390591802683160936782612543766651569380190624446739476082826392664828087494434349684116001436873128966927854065075358340240158770993657441191482832444772502864253844291055365947564273173375113648909089021193824493419122714400346758479148277858857112394861574470093021570482535217062010555374021113686001473418643705646330286573702921402844683352777139151373692717891222241600902443217424558027716735480763485785724579045599328380208249458061223111546455046498774911712909686831912011825691567961349023859455709876135361320978189850970731903454911813692965859630110261362967132153691149367116066776854764728621364867985103938422218621122160679177583334153501070719753290252799770851853956927714404070094213249992391669897698514983208394712208453696699817720714783673977249495463826836824808521221156213579762892379555235451914389872046980476995333826914890864010722801349641638938301105673048687910301409060115248228004984417792807609143552435949589001580665832456466254596694738986564032864000972300023925924186265110236199511246848419321795937318358443854013390496847021498473580584665386251366188923049258168334152968466460143206851900163453639552574074170569229875554367482598672058590425379371124282944170059244415022909539298807378002196791363914067376894653052830824661983241873918040299185500444564689147570209439113765674056265621752835558122046951669371653145323244229998532155196834957996471621771663711986882060021471204161368797617109866608183103183489503143353312074324047899605762842928781897485914148037452769835635141079231718131477906274590809992623362323645802480301743563614307659907367751966561561528925556981788615264602604327471602600897541841689017193466286850405720357165084444122214848657633950417628882608374851728359919071694417694113356931551955867256235913423156430545831705042196195098414740921876270634940392611538382108706789280492415123714107609419039798670363120094621890691353883010713479509405057666173659117384551449584808507649063000291586285083404930759847351577842891097579293162398017005372480359570469336086606800859706965141090275106055291944849572487784798545836381147472372465674717013547096864547112796702893193637651037631957053914253155885525111676558687203099569982084164683697067390069577874018191632441442631157422025519833435422942567779536172141616889353068127312111834334131118536592614198108695588012065765854223889954045456666343244139036368536156503325653198070052540928344290743402918775477753895856279616236115173635295025920444431825614024956478271816169904933445454924971620646420481723509597372064479842001027330576250577234409609663566344156629402579148202251614415610419784966696005372221962531688408822093707451965066039430494312788679056011325803224860671195410678522127646360210596334905332052534006332749929912165458826859199434200707843276246822204724040099965731115665429451136100039960606292399353987714434986088249138649080030625049233327024026929780301176686147706872858284191871214215118353404595459369359478432824502897670232157416339971987103302911114010696726787550742200812159262110896475719899309416667315292036383078293058991564155708158309360774673936530740619422957329421194119258938241094257787010792015647077504317266305827363594297114472971984583051332570160817989841803009682218499360371993419704524259095197709575436202104083529235600120789826873349779469490897760204826940233563569438000613827811258805919471532102860521620168549876017048837203787861138799968501417913973635382338150843038292191990437028291822690992103858230841219412752578111210745775014673002796020405212372044179065823765651323933583827438391529216972034284573768922812554453433909777087495445118478107013042182009292577621318674000469873093204154277644407091099772959980382745812311787398129008507074181639566079360543901357217392484844229566999902496865114068288813031492432809785463770769129084709796004998512481695592543741128195312214738298194202808749332163930792196669989478414685347722830765289848105335443082572142173668720161547565814343822558062058026859145601252673949194210155901984568199782764627496248083819317040718172902630450830002293275892288480332379720939125250075789949915286356379032776724419972055832060884998146961251381816448299370732982248234808076226278510224471343834627690124947672646091678719571792064533193402039166508348656636955641843549112245524156728658807821413707133940366876197891313036354972374889372387396823199093685403296565637289660648493866492311561678337407507987320791160074983972195295716483840477054839201622535854204387237826420545075269713650388492435069278306580314498186110912341700150618832126401660010398867418417376157462266339032186764281374168516906295071860152639096288005864943863387751487808453461699878500239399562000472109518317987309123898266574093223159371278673053556625868392217582092549165739870261858528296860133899202003795951008476472683525772053217777260715448526100885640742356163234233430401627591950260964171190205013896930459279321297328657134816061818536182661986323411691160488550260260578452214546741353183041639443738706456909339290328960576877500097884936830509667927147868450950598976116635414292682946398359927730623030422938857032164985155153308699195277216938176562089992903418044983041983329466598954948215258426935394316413909247603056824872588591395178531675457818487051853952795540501780901608878283102970441374003658777064150356229904602469733741659677005692729932252882213587732199677215348414069038794132464087946337210603116541223028353516503009595941966166489534892790572263963796695672859066711849158614126312185081279451543566162333370994707352311245709483890936078601635913176461360597986658737390267201453396950938079209262852608566709374352376145262745562246216162352402392694371315791652370768697647912823901775358034454945307768827309593091196450996585176892179515973334705722381403443324221257456037914738434270328808711058524412246782184686677603039119422316773453369123194089930783931934079975054883364222346257060979277718373099570467516694635994493124252367066196843684493681729260255772405878129883268201926021841070458299448014138927046497041935902246133558906487594704598960359010900273133070080170292976975945590196772132970770318070738095194019868571219999092134890930391121664827037337855934986310156864688066345356830820051341861803880874992356953902988851105018871645532056468612060139406660182690612136211293057732850110361804536282795371623758232910394026758604804692128613952199820085851296355784190033890164019387173035503472281692737785133816178011475455367891428942248269246908371722059140914918897890889841973679393350086127452073682302701449090340320281840703979202388710401752894717380070353850409588852210666457133208174391413121180863993447461722683966258285229779435055290308855694352854304147227260370452611132477260963967335748700819795294566603932300154913118365716048498251111145433094682716914114132933284518410989942490101175053297515504463938492452953777283795755069737559448457672994987642117150013143456376581801945701026450028050526733325660791321146582976227740215211227424645317995099209872060536592046074090847941641989338180841896541894127869599841984396278011097025882614755535533760914385694469239647995591863061640021416631137153243363382274923136933751899601522605301920255665316624388876410992785352052719711602019634098566035359948758127765149271838262390402046540240629087983919766807024029259390884384024512172853098742249478282318949555462650445672518910060412285106481627761467634975955807255259193435532963929531778698923763326373148951239922132853863762870220334370030056202727565103923424513820329820488536220362759906475514550355104745032557132435120852715464385397870732435110323000500796273450744366033803191434203289221431366760376510130363827656160036027071933089981203449391490197619192038744165997294450488746823250924243594773748074855742168266015579634192425140460964806246631991519093639185017075590519434536067056318009768355364213083034488226103008477176299855648206665102118112036199965931861017712218824416033059447108136805325092926941036647092696528223990897864888508217629630945726555978406449265425131716939061944437309421495952269057731289097794592618178093913632425077431987853042843650554965967363617978779368617015865860380301931121783278827149986142677847489053181287657025872789427532728655848089748195292470594303060661667099118740571639368571741163291007611203895603923418218024219101045982914273074411568496250002346520478846812852819689775329362559531322200388240988010798070379689243350697424965950381452631363857969886043885305527416156980868785911632767146903791117364805571280953924322746930910582033678148765386034147441428348440802338196212738770085049541048576094951391381559838068906042110150876202676185688749166354238405626379171532387315853082767410866788641646197899718946411872302709043576340474220546927582938499425357602091269919236727180076987179425787210086683515625936673484728820881958035710008836311102544240849233463044872128651164120241648779839545729535322785130992505242786611362032140953633819110153172445276962667375776558679907115441432968228096379262817110130040947425275732582438487740790650393172259090470127636360373562884752174374903192306342053465378502820300712853672013434304745923819655843607172604160597844649230713908147034451265552728288543469325358446722176214045228293447597349421084240520211310062771809673968397500788714296662746822498781717166118707165503840783893143718331016955379584905961555605439493126848112709120915178629460860347077692708973356955340376881593090053360666973207525579288876321132276436957168120359689177914533320204431178045505813305479030836765627600045764435986770824382295048071321096917103620478593035706090011530865554922045563721596805404065802122404515045087621031877022763657028048215538543725677647669327834007056693063329576983840627589088852167693782446195202133852355793879830921433457778876484674157511262186850409017562044232795847532346677196976164502179317015821772378651193229464543877747849442048286765789113145788961770904194404225749535243946157990594998360412932446563812728461243578250003565474682145151601461289277024892225829594758764607730752518016701279389164330480024061227566298519458618669328097517045546421721146338577693949981984064631640429064540576305901551978344792123226027924331107807687969297644018577496339986220356638716916317008939307433013412159045200770617946330211048703415817786053757852466934259532013659412325426338802438885009469130186471521800986731608543119804024654357068113403858977260528105985951552781691159911431099561959306713875580693809344049114568451537173170862408606671092490678106765799625248835083140257456368459094646811265826194323798149337065285053286764780037633398934130810597683107310410866957219579647099387732358604760270633590458629898963884489287198633328753434279482815449146031913459951854641968671227264584983608396860966370794392286861582139969453286016189788871329814353175495197830710686764742090272111733806414338454172563067691393488508395306676547570563778807262996221126169208433219417802587055703551406875131141250072071399822936105869104973177595789112818654159972966853464523521296071157118584327616872852283771311259845573909065164731997692152920423552743800203691768601899206447644198525524431056503097905766716277511047635188083493531321672229363296438350562005829731996582724735665901715844377529559667232114931003540660809754362608750787330091807097679115498773400346168178079683628054902165087077432971616976654920322172223181103008477214830421498827758479996495202243763245532873007974239679427926622476498077568769612283188461885338170356369397109517503240831103435064242256506188585395608962316231601238335843230229216564876757224314505177034330840340009935960059537413043720009973762200718255827470680654644450971753980243192081242210402145924092009839855260258111494422084597477903781916942782153363655854642421565328147853671259235234309591131851877250867367889157009229081369084518664337783670663297194852140691448025415157967805100111576073147160712702694150045616534043996887926018036833856525032253386185611764952038548545256190062259469378217237160892626051765399876368709826382596877791141929543809661285455460296426702877171506550417595045755302760512624852226318164044728346373067999566734879673454743936928362767921894205584600183445181035372511323543326559435606095127813168359211040534152979299087965461331880531583080529810472751898575267498108369276492544409193104017506264380490276609006319443535480369206581675464469999447746437217406444329927898575010641796424171898914082356266885569291675731977553214233081471846247018431569149968488799029615684202983608225666520883961343251036389036836724232878799058629631205148874145372532920067736699435301903243325209559241664424703971763564459452180756958833226217730333165564390401514648101747742386661260415852514947857115306129271975748757076105530230025520306268583932936075019020648205478995086172046434249945197129251355205099376417008922646557493202116098489474023366455481154716745140560790996698391466979887003085502837330032965029589671633377512687463515201517268688054649485616055317863297716821324210584990549249278771859153938846234338418836064485574289242377225055196331211500101452749027250587041710903407036752175819145098875373423016363485236194728443799233839011059177657144289347915714966303806018518857986791697680341207325582250597537617173967113480892606635991877685368843895663339967235362184815855116495285740573314434350870722521232834646324941180972466996009425805973800192328716490949468554089789863875922780100881461465700180540611928678801998988152893593416180663832137316882427435185439017781015390621438400426458594781900311046105555880989981848506699023268690310981141789087787508535513114649260186390488433452955176872349089775997913666823417115390355496589423660769934355255439902508467524180778265019165094292599324510575722724046944610026693224671353146984072511924134536385831726906978532284879495680231938458264394769997290428957796524051802539030806110390261147077732467883184749300500579430392882329038122141797668920036406554979441695414606364897109871079195845869988715895035222583399639629430684156613952064769377329595601076721956093506539960206446685738457553988933738823844992759463657823643367558439402269403621113251130059320976089229318268425668806063428553744254703420705514109840008594689942892131973512613080654461148592357653708999935898279500791872346417358642611139526068706016232004626103976422455376741585684056122797688877577940504901154451174341984926652084213621082018337534836211382724929469411498578789478577913725111740943765101782173788795791966643070038440767871724856314048760342834667235821639054669825217275627265971733928758122861256304938431725356168568682220627379013859504850208124701120400974737425151222204289090975829785289650566372402415937721900316951917968245569925460804411111972213515871345061226014614740121605954555935734901452806719317021210077514143595116096557743525453792048887025749335207151145370462782943139142599515222118464631421669295806288676914675149278464642073372376445514159321793003167270692333814094009712447606489389388370141419452192638305965016665440916527252294093785490134713120815630924064728340553496316401567282732135507648213835406909546373737609343978274345938911970228736136449063999504857746044264121335278068967600686120757394616015639748868899551211808483901446969563537593663080445407217723247073327666070654746618856029585357983769420052069917107706715828924720880383125351291574599873355980887508669603775976523808169009887114010282596324800320117534516308961946676917102773818490516865674135791320107893042540781961808947759998890980176341186076301426521500802873870947545758184037993430210463057725381669365927988641173830765586064498695326209493613751399463592896186967373003337211299731911111219226592610679103037225034454765932350586641784338642457828481747401362663644708426524580079920428435410894322613166236286463853961386109238677778498878753330117119683710518328479403439286578536428039323604483893263483794036101481136996662178669974588657288165759958553390397944848237714182129150267308322188446006175410834336937596965543031609791515942997346377899088002633352379477497102556481610848501645503445624372958413863482915483013619505734357612128548711511624797869880138076163539399279058415901089757975117656476141964591291242907173357335401296026264538440457109969414660920059695681425170028998072027737122261948256618532293519839218589703681513357240215154522813526542316482066211411200908822598157012386337366199013001209107827350465673787286619093821296136940957645495827793317179722688837741627320746065537614633497040473902645502648018289997222216414429861736859133626747864266244102299817651011761009142299992142443093953960026669574446633636092803818668040220792119963047107129165511172134820409959793075123708581658980467461848372418332324781391888809822137963949014492980703799764336107700007362558143338349591684090094290351376575573209653144032852555177340351171572630692624021910056113987317118167105960702640672165483834010754266329329750470608226868265993570024145909911348004979027651104179220002297669365970522393970758239799663326792086888466256838673312224905419319415151989543124550915761722457912174786845259240962320044134192434255993248382827381445026489196868602891956684927577725647644041873148456488017524468503341122382973251120941808826673487913095402767721390219285851618449849620818088890883899093933617387175021135373719566729825543312566394828017652907190954154337268053786268492025918476857933245003871378751213650577673032000132524766132837814305176400160715357034620314238692677688237663650884775255039826803927302323692316068732283054076470856513028393215404747869072098889049446216716323628818620376894006631916954075315101656941755104853823526704653016048767427008320987832282910131736071530324633263723596145919952433786729250758484982007983369123620996524312594839159607662363632591353138975247279861907156461454820192531690270104029713390860124821923549663202664835221614277034288743753705509440753207408822932638747185060739198085961374909733857068413498114311805690097366166813124283118017907907902911660027714260240970989181728309525371904460789158019194202834420925381680336491667117117697699096144863177464431411306966087151609128370915855861377706845033644614036268926885118899408682010058913592999160713048871483262285171137680350592709143512022547482617581236579806643184405260221954466301010870069724283618020463999301584216752438794050671491653712746425881123477328789942050560611379535342571531777083985592391825417474370719135718148595785778830343721688706238224136866014331472693363711243375929792889185702610481362946592967779366725943920914316387453897119787482259853639647021109214068436741047120908995884394416398569079091537548273890718613717951943325526660668252181102959330225951165727021814178487940644146979852915454617733240229526308789220809142996738942683886463375639715569866672380391884905707768733714520068358171786503053253938392003367736800336308717230366235216982757824536917477591184204162274320787078830709092147539319365645886513826765223655658629343190228648107244621527914278816151413207075594423789620733101612689491928167572363004174432791273603915022638399898998998621953734705798561584689606276782283158504853466344717794392064499490965098446958083890159534983112372204421013623492963522013606566454917146241684365933216997032798230916008361201848194209337235077571994162285864569582426930438617685767595233780674078407094562322573286367769670999227206716501224677059430188544026735574431720072589777072389274706332397149055461496297177987326760475177348291028317674248514627876706996594500659248416143527017644083400587190844353414984005968754351321952966882182240080444162543063439947687531156831757943829586905740286581199796191932828499012330972172694022586323359096146353991198605649290260355455131524136214314714296527124570976745221053879836578776119011753918320722467550305904202058131373238926881933260309359456319480090009475950424658377468771974201812889059734568103096031989197944244698403575704902957207476320988964944997685983551204001115559570727188500307612694235991700348787060954974918045735543085545164486287841121154132747077326167764191395074992373545393116395843905010427992676448475235149901324680403756150415486600878370986561187018785655574283991453395397773881631166212164472986933880941390463570811023088824916636794531825364300005351764509031896330311085437213353644782433319033443959117314168637266391997119347534068443206707916124906267478953712260827858297249597822169771686132984796938240612103593572547829872678882671904556323077740987135317611445199502249234843225359613057522423719372250947554257996992106313515315402247206983244744034020296996825293787955590889017315319116457026005089483595008798265998669112522775637646208427483696785041869600238531605336350303788733391856023559018086188620996196152402915449912411713689213922495704724996156775140368917579849885746734743479686672738372480504206686263055288417143056463778466419392245776714001792882969006628382258544527605555065765068821751578474532447103658815947804810813814224903546389174971198913231365012519043696052666416982662310443623610828591057151571831276176966156544010016289688498358857572014289712147216886343662693099083466251339693453846381769197909134976275207881791939123223702689415702862608526987325782502760977961933294942114160630590662676250006025969488892603755704006978509750492255917335510095883563794925290326548662010942828762837100823789166069032695827507417077333933228052079493943660898107364102335809572518686946370625381322729369308739730920921309236731145709201189895454359463180555056210092221858100536016294386578919381250782390016325075173748216482390437636810462932221675478652269411079795559395709706774561243860053569821401536464923456111305102673323508719337596340366966072781479537304480265550582109274658983470091165304882163574478132610781253917571977403796055227973144861343290493614391419128817349467859616935099821722925349905319323775873248321289868813846117050512034014597485925787464190426273936121793446864650589105034006700130211804325749284271986972604755155105496597360751039868351988231790701445124578525721175069434972234655442728747769406459936388640728742572278407237209802239888947975389627691388438052590624019977579204096032559653138485148644532501625554996427450446422451010364416605582440596046499754681473649708259838844887630816115121381869575632268828716667462254969132530547721291048627426201940153420530064403217407783468176273747452938769201413393844041682136466236752619922890261677934530068263503500987216580030325215847058131391368706865347074358264589396467956025565737073757799755144752957816834809053263431867256059954635731362369561191228496963137750150996720449887235734664417814047154346928455615441157498897577133269392416919206266896784219261983075827015170306129329471547135943686635556114229533004723408662712889624477167754378314105308443649431961992723398400806956104844668249947131438818369450735907871587255024250205280890195784038295100784688253715287728743253256273429831680388099761048379451449772674321163010096650258751157619856469647819582350048525339843541554759936934783336368330041943792114289024915853278639503760165278725377103173786481310689246552780713015467611871865431337421671064525347804680028848915577311732073817168204559715610584857676401515393243972888788224627581368699877815467843936095186188159443685827861699349871286335096168201571470351350153411771635154147465362031528587010423783736007677060388346303054024669433089232419324710707955487979829944331800058364844344744603614742244518527259005555999455788517010338588685197332553803832184559376688512328230813587956107343439952450211314722507900239826477073793422144928667249578937268683863795587102168326644325878892460712273027149543555949194845521182862628319838275699928875747590343244259442834611917566661346406605613637431559914894283323665867159944506633139758466524073697760698119207828903716085045708009900115301792587048232254130643958398188272334005096808765939705649037407120119182118730674214245919281628981622046122032069276529470450105942931838282027115066583890517633897714296988559584853562140963260439572841705964576296222803457608994634615698875962760794587017468500071122772770219433451878465187133891318969883518229022204170905077492008866610333076927081324663234289217479304325368094192903501739063046381120702132666522286754108265215269377513740437078907530096821652341557197650518415956988297095966800769515120022145428380378290938406368630353887120436242997625334198116253423814640707915696555132879138385024409703533946470536949660687978115655245502089107389472786185705257419101314892083537034777495432079285480460488359182559484938612056623639160107215008864531645513019032362820631576948651091397989023898543612852879255479416500981840107236128408163280275691594890543822054816902172837237763284657930782297956975217846033280093839203771146232854225598965802583093061894363928062476413055248652849527072643396448896323536213011653355613849750901645206022751508706658244692952449593882192570169094574725534321511644027340036502341186567425661311455469230097629039994093586068145766631015366305028419439273293472525456755555268297207719411186571445517515161826067894114771308734107873756014239315492182072510395414269685997516901251632967390114437469995384669271693175258188891679456435819086096519418292619808748806670552713941923239286008288993710078588258567973417777691258810354240157241286049860841109897387533114463162530020042683723496641898082005288241771393704739731286294682805397869369845015574414202498313680756992219224580920955672136339108227970840749566860200109975483124537524209114969908239791437184218498140992868488677748911023592958504632319664925516681921937350566161125825072671196812299805439954021561518663719317637164949211139391619154783689666982838634139275730419753252573637432702564631547514407282638675229637974509649046569515137210166759202634693522476934759994468117166183942832011820441990282069295217499953843413247336665561070617905524815629028985142926267067282779378449282728534695029801114617403972173563748610855126298749911877478010059737167922596589239731193203930645534165174809193976275143906233956713571239996499002257946318388259861341091922664114404737121477639134666082845174495519524105374475547822209285358064332064230712926601970588215843312029593718044955306631950754119099965438750974765569945360347590475109095529264804898378350518033207109751777951258649940465870442504223811502975635694905701099265094990511905278080086298556760422729274857865849884427415522676395470560130382126381229712816464580965575909570362466793306534434482410803164138136269630970177815086764590714571591833804553415255071326432446191480541540342042541306280073152617111196788266089976744863948203634979341617301518946527340566871628125240264220249966062798886339612249510490740293930156215485529324392742204683580353260224268343704061541526637433448650920379091601689503866297670184148003612066760125319697089468660466282833480484889264998849874870479163292348094012564473092693466709057884324345638039603698734987765890492433495805701348338513693824649919498757377274855110396408760060020450785031082298404818963120188225769592340776640835466908571082071274239588254490121490687046029511656006914819318054860497362595187992341693227163254690624824393709331105295759620664278637741839592336799380133346010057574976774954552851422392874960880112189601554619053806515966873034283443452525764211634963471099318243570568242288142307999681496777866805007426860281978107718568152207314983931818395137509444689867840098527097074793326361753378051225769565166952236979467345236020863134124930229640172949584003539904763373627890811141212712825037374518178681859304180615885464700228381347442394797221560962181684461456551281277772779241056319718023187860122435091070305973746005360606903473432240878277169210491251362275093237421111833090319006926618839877958726832849029489138499306592730752154871330948510497118775939671711929155595512687426982355035715199984443385438503114148440829146995373290807305186958184342013825426628448099528800274046177947155335292404162074766770719070611331594889747570439434777521748803706732399008883071381540933151414569166199081770482466358568520306548387984380877286094332161122982757009842685690127789117268635007063804493888975082625453193764233015638088812003263672243232632870848617455594326707143179256233697199878160631350552308197971647500575864587499169370305049861027477092958418341412641826346207854101990761192435185045563755605166961151668577499746251105773329158205626976972260566128724453008495324740352817123102866548410816576763961423062507227620402772004735278438173586440335747701022396444153521434502061378057956960564731978018921006405186945213742636007012688514350964378521220774403070751206990938930358768488625932489163511978297275560012125453099780416009766334434334539426656328379162526419092430896963316435558255270778531210929559106616488012136589832467109919687618097794972653746310901592382267058653231960398867231120069877954760604240294875734416174926443972091306513297026658821543970370586409264760388635552912867282090617398783457243929719842453229842876954092160552895976285069049967694705619715050705847185946415636228967656518800154821505238460102486934147307874028939163891565828436816179756600530023144164329704149566411580935255294480406548494104693395032253834534970248792853073688340943439038862895431958327773971090489848509410681399066503709033957263296928011218574285652154950715401382367917845115394098655113357069306130728961422583455307379067251574016865955497290977414130574040891088364338293938599775818273045425510063507526375145535607434899516969266109365475200653864289932754518766834653891717162681566124725843721267644873696554995106401221888408460975265405683169822685201293424836346909079058195891511834810931669899358667710988189304194733756487033064045190126173464650137697671749272947615604449619689989854607759142016105037158018793949567833506847263138057153856976872662792560436097429981002242499811402381186175042001710483803709372191340195067308270582884533279952537899366849405525362633092593802425847711264372277502140550264577879087366352129747136957890829025254104657519468777654357553315563931888965154861521194957636911914430034573130824086613431205775658165037751621440333985887536925337229400127772415645158113427947309767924117077506456062818568973848435388545871516831325026072591645065639042429337217476116897685788540527239639735808721325012276438482203256052319885903461500981079955803316105838056384012527764752115788241608692811631172490328992179892830202407114849460653068128904589109215153876406467670751638292150846982667562800414345747070831352798058900928756343192888779713896078402180073728042007788069448716810561184224184927498466204411346371292877539601105027561415466700047142158915011631093019782091780330822605945210428727722446136608279278486451642623147644825936735618451274214465832750589926970691655081971979237504041355216714350964876874115405932582023252828849759860314913694918785840815320815117575319651408910676791625450551209407471310602252051902443272561463002313684223783611946659230817685525918757650059001746555869448085065036680016549523721614163022594184342094445555868895952941242348535297984665458500496510895583863813134922355291592198496642422054749439678712930682111313342813489792952058779041586207593055485770810048368056716657107217442024658247919486545921536236736991038203693276005546952313404344680106650439846099939396263565597028394844157897249220175951182964948654854895236468166582627210598752179889613951038487481911360328066281704338477725101575240624465545491238386875679642159050343154395574823907744927437839470836899443076543059704994529754852215472520797713161630174542849082750850311455392218582906028151839884236461279460322464369257404874298146695837209360085595335173390271406447143653313047901348574311982440984324864200464409189807434783807464548820666933006511272444072641651096843914958608234050678691247208862974017300124420095782645533539096753636183402106870074312883956104995612722965487638138740148440581042108797306774532844395261512180582290516943128604031334841758466150385398845581344045349125344494557252945681605844331874955121693740346845999980748051917455747969542743619301041672000037815879849208948337043120995282790421181563282416857467244213769117723350946320912652413070834712416277856750398957484071228185755816695645551447365479089427248866956207344646466440529925672925889251533256151098139294948146266251733505584483825940146833406622474434361074206897667464368397598354031863645887791894808921334876238426444180452367328933077340286232742939860883057134484832234847817924555917790261936468996522044949358853006722336572006029611966501345124554635458801883447642461282588058766830093404090670365924031491904635649990135677001188028915542531527764652350808081538882753226496668142752645456626397043808024051221163301364480316213620718446623266723967003900521818855503954006262176613528550838467645004774467780159291058057325676796776535508033646425586765553312855745255672079809414421173784831897235079562664857425419353790176975052690628421082283710248992082669169171166145735402135579074680827241242555532946250961678183055582301731026593168141844978479842810747683431291226527701404070750398956281441239925508903470650720469311258032138792546080599448180999873383737824182208311574600700594889259109862152988043834226098289916132231397360414315102124435184320504159180909643398923913580529773563625993932110947862405361219755717389592733627050141332740851598804087399775677557769490211014913211617615811248288425972641226565862460276804232878511749372550522786690449532454378241373545849487982823616580965948995841834660673116919662812266172208720965454508601301712410427506215522244958351822429067421782285567203454774325887856274268772676333712380429506788874384004228975655713898823888533351917986085544149575478205843357821196542307837914838087572578418874382408791929949947982214161894745330081234999087333652356970927908705237332953096224695368753595345682896375959387275423788610965386184304086701398428274403278513672487940442576373926398808321757698004659990410876892411252790357265116463150500637969131830515045210580519117753392353003092138700746702048656238580248356741746111283229297222183776417048063249343824035788072738588655784160554543684412419299071090321905838527501434064159958721092568582619878228800689824139198275086435513358174770455567809791706067039439820496225592335872206067332512523065590514165811979489946568365484624599297648580038848483228213886732995454388649020995443948824902211759733574078105075108247831965753242154855767175423986282055764730996550129752552130699525338402065826468502696081895415395188240456334806042955512472690754388776179337452946221156356117941045828570989247074404531421735579097262993910928920366992181446025739242622828341133888861159168787598414326225629694701583063197748819867961154758748551542683724242002967501897244305531179416552713692838482676094243167665168586796092083104290425435266744052812203891647688640195069808827102342539409944709329542499711847026424758677717963394632417767850815608124996015135046920310162349000216934287364501281780772012966609119718117997548455215918283510237465376923571276077715175558426619034550407474601035190465135512852445057445529690431517803094457267316524978803529518126726888770867976612340575522725415113064871276098183351586485607241765826714080981705477301024105219531491688841838352329884682891682736753355888431270474568927582979716758117489734515176950993974346153746777315261769375027732915419082774189108888475996743197497814286613417351310088322461048697325966295741706593870875280992785392314872834354325354345579669169824648408204053150702293385245402654176940719394988047963263725822131434361489193870022686354247789870657869059766279656825928250495253059628758287622133059216407927760345600155392140619560249370141246878939941940378212305138181513210858208908839717695195925263441226890160481097216810753298536576907262487683636754479518660067943185710931854176982188880840790341822530368376998644382743737972918387510805693083401503226450630187755329132288355248356315761907026764389062269307484911991664579839626683324857418190713837216709793605878117178339020565200278301220382732578945042611593732218296945774935280863554156876571900676167588646486861504415303037375415372480323002246903842848782723919941523777627480317160607738292004196071932147290166862597310521345463573445995511128283586634366018658393982556204762353755544132817369759362201457645023559103957183167308002141961895659746126389273346369999956912043810689139150518160797378825126638704115672656292564990372470979999156615284263961515394705443769725484721151806920168969702359532199095308121938139446737262124680304774027790920160835614655210560375019376225525162345874926177629200640546065439787191256621273129858885010581167432530287565105203948348326964818066085491649021348430319754289430249462235986798751162729132728062099659915890034120933313924008193460947438926130575949124845078457334745745098447836598387343314886525020607167812790200926189512753194406304004360925967670114139105121626557877749613241699841927506835025942263503005453086681201660848855723199576231316758742093057894956611062654279194766079493408369333740162091371554100332858350049590434383615892015336922522060086162311365020655151432590678504289586603504709823317996326893396625750817798315460032288190787582084407337746563724452870790214613059981620625386071941057139940225469660746175023832220930607880883486448132076390644484023765008573309086219192644955124189426488848885910310501857873534358250851808819823210140546857036366496575106581958301971800998820506714924867066756973207686317986237711569368625196074235293512399195591708048211419500535264056942250478795608178393726169231269391405139617816300063890821052099976577764463141277775820378529092917168557636149314969747854168986045970530102594163426508832911468579677033134446536278379555039866714255137304300852189488058429330541938539818489537353133537997067573748507663911203186869750421736972094324683870867298177248253517833822262406383953294890138456120702554788458275289078147207659474936765041583764899475588540315301128217192837996263936886180906212161104264566272390212988202894331380642897524001813531458003119693306484149485710403431475877955075112978238870467131307335121693539207100976208864977924952435781753882241712803011946910516220527704253441629943415517645532680249223123387672521941856967769592913174969406596711033659394037931700514693701897938166590919198810417272720305389156527516597395605811686703058029840117975968520666587346963886017382591520178234599149116671956952179938630522677179903838058199139989579775804638554459543632212924552932568641248177270126697551876718246705596516982732716234556131052684321650045723328621681134525401900566019826570268042467434056230160178823997114119282941070808545314100092832667668684872959897310161380342485187717045150355868376561579814438350122468754516853201128254373137538334737547876977623012266194280646775571213364911397090127466049269998360135282652222801774714021030334427541497398404428377788010009744197616018035162840589463537366661467253320956371714342184053811095940529775806495335019807886551313514301898515381151697301925239461802936275485582485896187553702783646508119904336036009868988325807793763848944445129582397770944815237411488843566988426507796915192963528281556370252726258226421898068907398940710442609963725722305771299894330047557454292845080455185370475120543030736300732109313294743330648839049193870954359407159671412202750206675265619608299736818012588825482339340908444501857872940941028294043873295526003569171215098357294345085008698183078024023165656029652835057213451127063220030089926806140016489878686384864475056529505693907919842719224159571765097000733046966135751850442783034812825141689546858572486135967715090927940689530942861214195339711694038343647701112934106775893129191959913116062308305531901813233787046837999047353343476857533121276103912111343530427105077973856068611663099900734700847892213495777462946654301460257775851736020286605940854779078290746611892681437847914050827367154367201677787733929632517948237064592069415564351058075920108068206171772385056934527771933679972330867431438167880596603022037357360139453359367161586357213819592927359350408439773666802782394973329652060882631630615949793627314279806250011861562185121476055204074257143173739386019156624326543462093960008293320909637410629798940896471435001033477245860700795754926881353690254948994689022880686370021512226702294708187496592488500364792428751034267466807586398642863076704008953651385541089140260895024091722317576253034577606393748094827309527074683676551206185265109936077320005673607910266450643990207559496938439156756506641885300585152798163490458817790026414071922151906940076905061123265399583380654896437863442381036030750129007719374564208674640053110579849714862200581326190269072858285840628347526751053429227110144056326517559682379622126230556517585687752440636435813051378649916232430204684156394163743876344212033368542990580906645060912693331322789986742200302432861017076472216891337655028778617498215772611185458487698437844138882613151262736385575703390718100104055573183351143862313778832529373685595981690907184940729619320692589565301362314675325778940536021235845192478319019699774394260607084995954267505217027618935986582780277128786868178317788114243427632978570388009940039315080306722539541222268185333557669771816594320447119898492770900643291021020809316221144231063622072723420923927238152526850240388442244897039697599210491604938266096367892610912625748601258976941207524015055884808946576218834831294827186671351876371944350236167061246280476456680354863447982462841132859055760341276848402561220213766809427913880974069721320589592532587196436011323865244813835134448039404732550915909268740138392011850806154112146741385585102018987589101921471485635065426301668426900733999045085355993616631756614107426246103817581214141112472056462457608972568530533865448215886805920942234915626614405286413394574788483447906784228086101184213291263162854817562280517869599072276697771196199479044147644653978235009034783105456890663328769545064760780735796042621902723753071621097761587564346976277694956235023623945392767992530452767359089405084764246065456571379878359062023711583787288134330737099242120585176989121580602112153632688001735130476381553793014912891171318689245913802942241487414606480782025834831560340939799482226249061347842044628087049476394907265811717155671873833127027976537665325456657188350604952586040794500919791201320608850502288483786346536749287041112746117204704301806050176310511607516228031311024642991472534524694668868978529732083112891775886670610821161287061288898948778829991093921402733023469616993961454893199838945519316620544987644898959620195408643544282723913488125935955483710768020496952230981607692710820192343758492076696099444088697961609135484697711048517148875023038339696552692233118646442091739703547803155092827849339354391323201936839959312940895014350988527113505616066567627101910558586739381831519303226120999651626208210732473638001386410259377668473840478694917809014365572365335133977353891204732351299503916774883952133567461362173997558050488766804941299137586433275469955326069390450954517619890661475092887542189965030508370897977104306358213002137444297469890796331497506386347717242434472163792463685174385447120973651085181846511874631709816845375351606743779002912720789075156048378363534340324833831091968112536466802292968154986043459743043727735208580957329499388601184915861488335555922033350352283821414957184852630776644832786264726395534441056211186090357127325106795609176490926080515387960998558630114865342781002618626864095978875748711173601101687976009187800723129288669488601864288326007227554745348373839221954451520699690332217744861878656602164647496129955419291336755778171218473614726512416404811474322756223115251829248265605651937321094604268856680707556513457239983514491214203262051440000300286743140771645253365056264517732976059607783701291840459829798828847189038784369383637588281045158067849681923710155260053809989687279208047182439692517047003837391543670377766707154359416585440814915443962447262631936739916251472074744726479917887854114635550621677307737682660997807336640338333198646623191566102380617466204312101087164364034091702652100311135775954518569630628085423858169676339807906781075219355241497804509754027428330911626584605126612076925502397234751832349113523782856451572519225737976539103239611638159461572114672029157239443404735623732276433745142917684629252455202233629669392672648720998028627223179283795582192068049016530312675725413758883918731350359539614472797513450031333729870649926510003314548713409325014453547504132333853358502149043040503191943664542774413199230829939798240403763508199606080974973522147060073007665257951293435866452101218546239312996234666746949643045688681133527742415279724315785508099423143749772346202979255880030783251165936852118463492567864152066771598243489057527864796514130575118347429914931042420677672811979291437664953198329478529421075785128435609274568459912036599372024108395091613829339856185262598790533090931207215842221653855557777096837873911883640653757947607878195920491474975527718862271114017631669386131136600482614968046605874540586821546277660774368594502592628922318108880836973532415703091127643643670902748421689277645564354342659012078378969968601625338413851143436926918401034011304243127036362138615860402597443847852059333384345718192347321965325461732932636896930293199702932176868817248730601973359177686277014705929153529551556149177753914524210412170448594782005204203628922674328743888020089963281700386909049766576784506005490372733469984351734453618443804348075129404526214104315848936415318232417736477651798285949154375933645023954509409323819644538829536279013948699866452787831893809719746995250074130234039756622838707898918046230308277623917561555416689255830458119625319776022869856840534700178676840874980232635093940570557154034483600203453705601651303124088738949694035224512061581486126372998315964281048014653508343372685198041408419548030569896053884321102556504262051649464379884191621651426110918493615435278166826790815437082518901922853010037330198908883875446295340332258976598880211950645733301245800814670494949881086249499244254400263915786027829658079760008264387600174840860305117255412094869026502421223840780734881203530049393760107454397647262075294868093004635691270146610753815544499580552840398832207956779826148537239197915014177459562087195143552529488081973659038135572354316719057595584899770664499075423280923388825646330284545657745538567202969494944982928967474538901230652579351623341284714066683950834981711616011135180254482618025843351556560951730127245026758514956460320104964850861583802762917924599295182735432825731787934389411160178594978578374833710336203580084530556409770498396692568107812637163014937315603208634899761274562204361539110636378102687568003569626029702010095764984706303043076954825784471587123886293513027994886085364182966319721663950315983855240213690298048117320968571504018301778196645070768589137193944165529185154640337055242898171507023616251966266638749403768442892848089925973769050983681937253576674038887663711792578621042071172757325015692027862032015420069926064851241020966882946700783358310694422589407336188965776790583820697417674697549882798598908713955985956190784250356472843904154998606031395722777501230046778435494171729690281298447698057790988781444795343880287567526655548061741830788005011122875560187925523301088771671907288679104987903512377598824113745485363155960231656682107986750975616908216154530523610240081207752711456815106015077591114093976843249386245159374603874692398850158703437473364249123962679191784326091895579134580120983104875057721268124939490924625323949637306257180291763152905647489663905868340007555762564310237609837728522317843500472146108593069637296981191218840702030604309173886940547673860218576185903246291233610554885443341526921649017817285359333114389689681186928317031525931915883543059795738233051916075551148971770452112669188138911569831593659329044636409002627921133851130784318927349048394986632882391520259740421672304349186082889819832443426838622947750343634992614473288557180913713884760256769833209703407915921589315371407220447169270253700882464235378711915261155523444045824076830170280824116568420807228111519700224222102097400833887676780150503874228975281558340898501505285416677857188508630713176377540453070133981294745134738206108309348915710947893618096554518317634574853111498932982352287401317650794954277647412265322582070750473746483762134360975365719925047198153557311370307805159121672273355800311472651099312584124035922853568467217441535536663869344037549408849212574466803596344201317068480163094818872594325348304358038059334564892176109617803323623044318671214599027478007262331824562818442684508156076283931896888441900404941331650089649480206874799976039397847900812774184297500069795082367208245519199241291757945113665484826950027420913953544531395816630632936169935322473431477247794986263887054648774626651393990683381793623620360945077078673109923273649076005438871722627848615420624871541675776537445984918861164438348148398691941399754732493551497448311465586613031473684124863077634365395450352722834694332227677587512983990783296111898644276768905251721163073458023619785201497001631595902108532310193329818359933127790315338212395047158051141767770512580439699848922003804035800247937013299103684334519201775481845866906448303808759864907908437986391428615798558857546262715786842745430925610941056483006803973932789426173647390329016144392400449086360543835651345904073641518434951534852504660015536321764305618210418392465773768880012272647108394676894711739814733222317445961216525193069449673881165437021609939618610451464351839254862968439501521961554332132508861863974804842620636238167528531266194001648481029453065860895377949187398064546202567853139520628707738321273357628332557865089246304381040663670365158908134441163321138512889023440584456174576273234186045339559343853358709571966006679476268244258418923377729278171673872026092850893302801971939685498394340538549389526182071088021533316368658575505233011680061028533262528268523118572693551957702847375750016866797047535876027465543277681790195043960732700125166288281358417076961203500910849934489461618774572739786183522794381370610172417180931690892647717164807204587203608018803265242400453527030638215776568954055488430751168416100971766692232715821161533357834255966106461917331755754282612161390519696929922527869161373737440233433786692207949130915205574434485791861762000467819162881069349586705401817172117228022624267664168051579814353817700888778495617804594745547106446307159225851217981926743938638653597966607632315247552609071952791666855315032230084600184223213925322842692536851259381430127308980919274893684089688700460384713009537452203922531967361342773452047746589814549756897769535046172616584768511392785104554809371612415914945883012361390473739068173223395215795426432732200670120643241946958640215592232979065278629222409521540910781393345759111444785753335968884343334389009781486528655641714588539181078969083016902303246464459834051374659613810787930731637510500831715448568904500475303996405145840368713303409231457927630013905964653518582200442119246578069217969365097073406627546113872366531033187727452559644665564243967073306239387676110976466347679829335205050518247923135240352428586077568867053535813422404040647948026622500891452829003249213139580031242223394724726562655975678043976027660675076773517105937354416951942639757231548437193355408968004187622414298645839471807938530872083324093105078509310314526298206275558387759469863073371583992397490227515111078566797380020223843778910610625274644737446766459399162268565088782886767403768276123373468519585325705077141418312183876447898743908709225588697960221744796151433057883735875101648187104490507593196581264174252400920621353127682710669039616179078718310418862871590548984627186094375287272929166989901742385658112448185926345926027169772160920652335050017893670838757072864370960607425151329969696661511531819504676648916306399405668463638363939511037044113797780295912162355020812869236832425362827209557617974287012654369456833064360140745603329519017071472559135823270361593017928882716048836187997329692201089087873696278420146237661471747599396115502921921373872120898258795623746889692979836700942623463877590193082581308163731727120088448303927291863199404549752771203778330894990627159606942628228080734583033460192538833560174837838127100333883286332991136527082793324682068945845334587844294609318850480711914386319905324363208293427968991321668443124639734893589838852600651555713966280719119983304350953721587951952965649609034753255680890437288503410389084972469183347425606473122361597553602014589921153088797650176192087061702483828404931801514399613962275350372380091238429455001130820444688449905278631834545360535008641183408923944306457482991140466911457668172020023190235076620520437310007855522635758454048533023513883506036497988427752716676281706304028783252032129263117868987185421275467150983224266106506689202559198046928778980819766202027346330990842548276604326294851422149758783409877397211011941355331730314612841269501387720593134718963752805699919305045893932910839533756558725245311264736246154595003839496926661204229380461977720752315589745733724953465161999326273017420952437983439904998997006377645454702266157029481780012080651153799693330579093273185623152205207480208950593499387929257715313136711851086263866592761061580224736065260411095529241102051028455549918498718608017764433810625071992718047932798124349181244076252569696905302114679411352368386669222749004092936898724470141544636075591994888988950566273409608965428973701970362588939942736890273855730431940116288158812550133618367931620822698363470797284474905518375995529122647706422285007546178411975596573491733013466170532525276351289366159981667876796326668794036076019892028122297227979124595113550818914676857491427783922354715332254492223555197850147969311062560207607951761902844937995492210988978477918653734981127226919448096172244124389660157168601349453709085764463308994576651566772102437916660713166010776564196244572082264648456485496672538752702438112633266139658310660365260851270696697169407804062197635673610065682391733335536370432661456412361576824139605149594129300513147174403301484911518796698895510764024496632124613272246649000419534259777141218050737457485689888183338511429937898739512540509367110376133142306761057899299938417752199783497070926214376176771944842185698973401972258258051095108122299676496269593528095791699585666738414912599757496117782462614575926290798797669394782052237977323679878466207428504388683645864325991771022818666444723914124019861106100412036364399550868346812759726324815155202203744253164842430412061121308527663598366437220674118929007888998271294930366511901777534432402058566220500799841740901119558852845263227839241675484870181166451893077080963191391724929634278918245067088881432541487475536105903287237995733271616780185238491999519362229350307579550619536584981971901670599967238612254006411730587110010428980895224008694087655505949260920748481823627081933987378103786864751741861657585451445466388744387037330861730868201001772816991200157945765662847374602160777738231854322761691309378725094935167522745645225726428867159992603753205442050242023025872700856555693613341193741862197130650481960355288355226732802090130154387987839956766721616985650519096028981171450076324546792519109543280875378412149167002691668587750308688172342952524805084313690092727558048859995153105793731220647597393373141017476366614580529016344088806598980028404502568151100409898025299391089531673160763047251524072162321224244374842483125463371385645581736346963634856231902494635611344340829697813191040404543606654035586275642204250145022715684851886498745502612856325407833603816727513874650838342886542984367421519805384993260840753770845557774191602370550145315304224410210153847638743606988174672518652478944362823390645005419580996736427052543198280929605712128679328694162065039647371241662079053456179269087020025375631698023472062245793172122109931559968919123972578367402807969122022441865894234759991338113692254073023797261625557419195599096092438138459445176521133921292127656648356507357827525182743409539325231969811657118963596888019331391840401307106846129114067137747929106064755617136725736738931143734564329424472183049825416343079091535722313077801774316414837001956416099057926240968728265799770906048343424326797524307704960790559866899538723488241054326511413432767050541561128059543705283879480620548314751292828816748938505458183568923947400524692494265891580488024151684895774799048945702803740295064519114336081195256829306841978244971319029582518665237061867187012284026658179335530992938269453067408274237680684056435475237814400879171698010719351816777838383421174435867359286699985113507718377929095490100325545025340704552737372821943489732184920524756143735863853737777126780849933038925298980298224299813232740788773601689522602575425657974462597800858733160454453123428897102344710050979136556007054833924980251867643947694869896005776885267747651764970655227989803352035170536075964474113989164014532480814181958558677677198109453855844346910836453581990586958996728837883890626434024199939754127960996673706627459352207209469588184743804103297962856851063048419991827919384022546203507074854677956789379294605102294616391721978395351485997016330271374810167630451247938281353166121714705717991870072001284967863195714963945901156779937610977146414673039849933429070097961806423065431004403658888892777239775916558956994480567630834432128057389420611509235632200185635393032557870255822238474005074162224415871584433284018296834465374242840619480357903501369245028309206530575117694795449553653417952032245610325963976400664605635576202489303810411061891088850518726824457238076680031274795328915202993769679905955372375917818459446030163227948994139604117585491067209504218521045755282977089217340863124482350813939241030896030203569607781992637974598134242598622185877663485600207441718303581563487912973636289182849196511869526281449453986978256043699620753264789948799407549271250240962542427923264820654961834527412752009997043164422395397897176760316780289222049490412779200098020123367280348056285981773381025081037325666599455808008463153991744914886724515970002915954170852357752481799249196831257235408631250875768177755150998983453425593095341682697005883148144526871695955483708831991485050959236275877939246189878023125557651410877279717890033864505101244780276747773455742589291815452950934840601880998838867485647047547351085560286939239775072378300592869295457992051245766701630961509321922947407917471539496548549523998147520475403897947942836196082202969225014275610765631872302758793795577893926155898044076407842469229239206448776945500395931472133974894590189840354129242919979762067289423400850294727816386949545272353477372030206194120017056466950894372451553870548035323900916980787927266966546600874376953724236321340526752130279658045038700641464648078382816744020127577262813370247950569958375423223136488126218957731395607774918787683145712909414519754760220401251831317472008578412412659001742517335612928285808593736891201612295402659347784381307637494016036323026009016510524482434744053056465546887368136729290973914471089966132529373018683202134780992820583485246720648467166514345990469809444236729033901383379600503023910297169242373979360045991826719291013944816802437161782675708825272867806168360630825239557168358592969088371561469250314313260480965870833465823798749021179002664487761902802389202374327532702529134852214802429905242386824474194750818889337807898212767662484779298568553456523810770227756371147093746554783475935237801076253461472489176925100090014991183213137787032397261275542657325100300949859115435058405877071004525631513597854112086787510620037548642395244052373251974435995422485072836818574173000055881506444829187734828360408146813692670685460090269869006239005984277010994482821964183660467470459080919724224878911772848480201683529980416218973635816660703890371316037031798449869718890474212099770085254641389023968602386157184215655875587920425197186183332405783350780795375062162542093627874488463932901166978769595525509867280996006952966596529802256894355207687223451004700063204114459108868432239251411964521588309975798980704225130600809612444934055193921210526840458388418066607096195219644161316871253220570950495966650180966412849913440127772508748483052440130349540313069303215802245798221249232034699276048072696466098056080513841719455201362206027090328365711420276150608082736782388058542650062594732940890829625832874399867888098615954303024504271261905331682937427711786441906580807718942592517988029871200972405222977886006025487711028513785415614497571304606213751164207269725674701490531646204409350740211756104392293942823242837116398531543462609682071160786012936749807042972108024536065194763707446060307530498983058004406282609396011227849901743714883549085487906180306448339294759210042278373496472110872208671555948445351637512924459076454529912265691348326779766134848730683626719149717434317778906222146904093410471024388061026316617825552051973412183118999772463339369114298395911764436598219688936609147920031285360529102991325440902044685706136543566037368474935252895294384532126777420307901225816833414728801959630037533555055251149328398625487325426488173446255775975204436390633414297199276166492825962590358535069532608739908302157389462705697956630179740854406365205480663246241341770735359607949922313970658719934220621097861130875370004445086166824979610877169954115127504239075172848545985883022179923338794463161067659060378861302917333743642740761060984226547170270955798504772796180213377444760293161184361199761364450528704368196677670197596247070980030537479193423536697404199760111485145607373475630643484021178547342281307055825291506044540776814956069057665571360259946774834668285578915489513065941543719046399564909319080286211581845791787537232078809056728862213462440682908586179264450895807664877513661909071372616092145090588299439536520422851715975998386411715346123200418204229612906827758274537894556083785608154934028798206243318960560826971886271647041524082236159258078745463798694675802389367547127244647074185181610776495038530137045925006136168307665144681832949889262016218095249873941348603213721575282138478386911547659919825737386841948378809190098424766912658452706009470531846232100203722157335057621054404328694745989800029327783532349331841819406503513433776528030573925569495700048107159618686696681603890376202576095305034001101566296334941505291512517938353827880613477440412984361374115735077254763287026496019466826269859158542693541962506774805030084720048769403303143312222421729523366115214053679704806200492984367222860633464205305832745437458793653149905741806654132717783240522560990767552355984585193512866357454260684390072758390601458434656525704215539842003828658027333932080107922122401112365815236985776448077499565805603105007899986330132650472069194231118202405628750246168394872330249276510645481382899893006722623663693997566236637907626215224862748309571295439923073491649586734383110239457266938012209599270397992232067507694418233711617024311137863524696779423304103654399122063876803854526834227555312185666614969722320019404387730568967541669425909333473738763528556014581710763529540748428378514625165943302771495406340688601852213843867717360743831441348383315296503814091049890384217596529662065167998974922029578172883368389083976641960695063159275198059034556672007551257335369840606559924176545662310947779192570772987852961946371720051886693068799397553470512950332223239820624644648042894441076440275859282287339355796669691676088247137505393269126876031420115454386682990073157638592917360786209866690540324690212773596040640252557665679534840840867880320976878098067716702625589185950094333768743702501105346532880433240521553829393546015300611580178521460543007439386398440452484227786219993217221988630717190411150947219132240284113501781371380024685837027449447087569624026524767469444816439034024781075049727963467462764966062255848798546707182282420599065214149950507137594559221720538082030418094188335408824686727622824391580933693304897528092546916979564641624333648946219882767615376612984730033723034098375371148769112237116759985341336880819349421446390847099377964263249657022280688510576666684861456018664816682432908311658786299739039803163898629457532558343249539906930314256715289485578168694210586791414989352581806901221108975799712448705572025279071195907003713481932076165238177120314539566923933495703407745424052507151173333977002314026980859726140128130497687936797728150392397020964440306621889766052616027726835007793455215678256477524168246015393259485363833513602280530741288841484417438068944691748346056864107951626523862870931949672437218912306157788420541465873031866061956726906707601247648607905142335037704138762988849991183662486989171087407439678153831781793698932738469486349294691806090374013593051904322830565535930302394623488678828289540087227812420814352752737910470709025325443582459086794944975248693494208524720994532668510052825041861170430342384871377131026403196487659517998145387549317366506506093024646889660633874741022796356023589635919097836149480331490221657508430200410338515515232368195377973832392838718027890074677447110461746093132583387567959497819603858186225623362033367677334307290465053358062930613573137487455015844257356460842790612468033501335689114266561121467871003272478577178503337045886575212696450332850532807609415043301795591625048398341379646369141208383714341879818174020737468213517160870793821253391016982938145880624612999348144100242861560109197216803327977667939773186309101548961268951485441169529937454963371849450657480038049093616508988370377069039953198308887300836400052552049140186039854014214005028983525280761213091456337179248790246735041530697543806190327125222129083136281737278393496837561346605337922981781987405809345764785742347620464979921368624852102134748299279150398799616590110715750335365604017317340755770985524617346045268292310927323071872711362158333107920523597965923457601136051759960162869925444716117745771700456317558109567142278763039655993695949693143166059278350290600557483518042809511741373955421975259167119288072836874008329791846987496507469935211200058702903031603237362464936936583206726560767733966979687521564542349836638721104784966180500798656131070707193871754651292460643337846770678349406150683704666449856606865509382411382691907827827802742378984516555859771550187329594571412468864201862403894759788073918618341604945701411062475523178627956059441672414164315181439603127814250141850925802810984700886092224411261358170251414990357894274101445747976338171802030698882231939538468186073408582456402024990281381431804650170140696932790772852470563608552051274890050514285169034878535498938527946077764810132274924407935347072433143841568521613604615503401448055789990604438799241596417801282081447525502391722506359658094184638043546135610803616992107502896657780668585573267556861889423132725527434356241443961220520569491823395582473761372781696333856997041065392791945327133046966757080137626773065372302731072164724274517245762726583184423657531059176347546374553019175702225632056765810259747560546037218958012189563592620156647684416039788789108970803458865872948415031241340690530031594887745215301843493271612296047865915420402178402286208799611626300247596344422160821721387863776324429507040218816450650593792875357799799629310359404046657824450648461690250478668306544886269839095150892437865270273343827020783691223849226379024291992350620988649098491040256411463832305010815474208066051618127903176319163051167960150979714482545129090043591637768836058952903800311687947634043704310067713433344929219075409193355622922545836873294044751530631655049738587794528886259277584904909245449803537621963529504394173230644530000068998469920163396582105716841823288289975965260229121589882074119293724250613480418951872874593046134019021896551655911984804955891076322218088563770354434597525695167601406718117652994378365353722189406530655188307512479841048935580192678344882947640934986403055044555082267901697445477285466397769026357799922873347097981113995648409548149808454838158566176071736671685536996839504020972781919852538592440185492126972567938443853362519548680614477308857936615422813825134495021010762573456177876172157346342304965670287841146745807309347401736040471805045825424683579173676141608226603527739953663806812447360529911601775251506429466376889465929935803518040924880841899141540804740783425654327404852391401715911257401085075238946141327624724198843852461568073536461320907015109155416914081925213199242266964096217719773300142470075854626932918229434528755740036658857483624344631936575361040039739067468444851195322680719139530890957075613291192470966581387260846195492969865563856913034040823131065810786390831788823328960861349290214233874085209620206168854170680993897563211231678070711849408818870689162373174028422466016430306483752843481859522896851357859374611678082241300593891360271554215606219360054166705938376562901846881818772605317537576314496214476165140269547986490645625660893814592740940724583925365572032949345816318733681282150636909994592710214904983158806743225465489240996129849005033288676056591085400819260819789190637571322649991363739308263268831964350152354605095026053510810827536043514753882270298510569484124155726063793798437108336125675912437535195310039986206518630842806529367233125650446878362681295811361592996006101807861493265412949106814602522627925539013354597264020749267040286163056477810668658655225313005866915961906820006667633688031251286965626323580056768186842317454019150029128750552516543966120510039081197485660457399683948437202404523078460310990645335595187087396201176334839195335649825236346504530676061647145684605562354882750250927101535869730003270413922108348782838418244857823631716328905007233363686266856217026649144067418143301236820374406223884903976358166076619619803436499847635534491537624978529180116458322603044661380068908059467076127299793540028933972459993993523962876855195513243016047736213351397915221096519344673814126925487217287470598478632901793298281282445743727251820030738925548630587771287780052189120732238985616774646858857956573039262114083015867145739976978954024369354797492768877353062148750397054322940582100583382577012220417422778305989435274530531489182806570832165252409415567250620220223199963298032376925727281558903801263756216304849925707087051025286512844757882481194665036810809387074950916654662574640360960130993696697368257628789134306097201013799124970007143566234255393206345645442336290227611176301505047590999321894216717796857779242185569083639421813893910736940479341675876321613205297447020676439751556652880741661545749920944883140578077594755166671127516517969401847431317945366869226978097056835333383885962517095125350755280024620635306800599116067309186791857957552009801953081299339140748524004675590657093360910571815337283715095663043602608797537645770106340205891940032940125058009979174976964836620471193127368531952077055576747914130690175256436067965508722066063831150579759622807683352091582977644653045504393132861043265601361024281326953257320102305809207806040945866376822790816749305599877252462663670610218964571977184689968062571984686711178676403896810486821765580446014247650693840328244287056131213840582867181922665225327909874014033789053368713824597805048665584634594968115307681642497011350189356813477543516848231231082632680189344934711398453936822114403069690204584485425323815813949429141616943240875699191809084609812703321232001500338662167244949302438232498783012693114952099467162649049658520805031216291846022375862998827905644740333636283044759290570748121623748116650107366319039210849829990407939211400553638229200337905746415094340976988354782019452802515571223553441478482739356513843499935642814626562810838066473836020020697774373102207091039862293657397236571895798720542278979536912008176966333366450416701650261076301486431099568518453180739997620042135234931918015716231987940171591798465835032808003533548974541714129965793551359697132274468488598582861368389137475045704926813164701499194116074755220167755495116573044023298514721765618081917948279022689438848701074194367621543156588059458493755321846562355001907301393460315334681768624071735671532199740220165038790897148663617442196483704020346114969677339577186648585819008250028004365549059668460551346312556806828169999048109314518922799038123922372224557311807884016750661898915662313859549584828820350161978695401489773594438880237225511346204740942435823604682180476839919101479822387934294408061039387039270819624716021107684971633730840016601388248652423945022959726456831849530535652132490443731352602957783891390408526707803066845236725797046854615199844302228991772750229034970035795437316401142709586265260555440018414510775188113674900547250331761891572086951997655338636207869078158660321466178239301687734143611515395133792617343960715121476675290709451619638854668134632660705649078902774479361202067392998259750067506329550789674199283638541302471946310086311810253798447466997584615794943498777399808960458119665401340878110592950061586194898905350656302268949037012799188659018621273379190637026387245862731495912632583538615945243902481722225216303800471451887258007533479964694921486649204330961449728317043914408785025046193030947477162546767169514890276229254040416693025818438177610333871434645116206765363934575409721031700019594327572487073136533751646047798963082520312952019114203089026471745135511652430667641498929856666202579606728818432526341252945395568142653150072474865867439252663506870373736080125382679598637407402932175697912811285182979310897984382631303603069298142700856776214544008759838364554610724417853055722718155931810497917411863956022571447937209472067521782690421206940616061419504425262147721449679833492309295411706213102040786182322647178747340951100760325245664333906812262105079152860246048116619721117152245310853155795702718444463115411512704688419058418838596763984208559621146808460102752981111607305011182744646483677836038662535349766845629335338172322052238943373020383323917802429793283065981448095441588155194135754205172658570790634975243260468121866978054648286093677074510683318476684004066837154770965238044778638982038173241572190931800455274715009722150432179722820108892714258861003354074222747973593012695028337984960178742393812209171132266440878259423682300435435768725704135629902237533529267906577873509446470728191073804427440332470158575978915738794997838650385021318590764093416202602683636956050256842035358234373923696628104637479383388094945180149515562971607020277371991968870169543795744396654087517265723309248968464504328299282499938399455220500157404278236518770889637773419540683172497248237890889737226927439892482441623375360780675362616785857933185667704282092712791355449964281118508222560388493910004485153622359746873767988301627303019969878138080963615634115848768907422634339933837222047773628890381283438688014424399190164085396761154456727800579289668187671076656465720047281197969455578862218685389829694048931959980722775244846692053681137982940307392802029458399260603656193969351671056313620009528249586578869716486349932361915275389508690206868002025619443508064521036680018728394450555004943264261132664976113984468373719265091208666380889495951752815573425374228202404237297790411159731991557696275138166341984972910554960157010291095881819083936426251673093312597057001851143799863267727663970868367179080799168231345071321202317479524659959409233150650193366688463989021379508011336419361841806291494488862835973127555282491113266828085641849829437274508304603966290825023535608519800088212778306609372275927515540783827107665449174659741466403854205725854505347980103689221670878436969727859522086307405787813083236527743403070488118047013697274640243842698931736794754153680939310417562454837614327443216776045186939935265281559607340840136472894972572834309737170382382184926024626138308592098425524569670946242903056001769451621175105339538405710075164161285377741241611595301307920454717895589924429293693353499694281104686957749266616204264967261898190663701534758305393165544982143894159116916289517104957945821790570278704388969837673215781257478061252369462403390177203387116101607139527437135754822884244332766305397281448473132388873725477613123504000149008100315195168198157646671632489422440415753417073278099756362629463479740874213679100912265926937057292512719337155669767573560684034018763994424751340920453479954196441490430922254039343553257701812489352187524161760646910138440147326174388032493453464957908520756312922102563594998673340990566229909431781357267703315193978479864176480362516971018700817390102979122875990188828305764071241783696393162945798903388428558186312204464928214421586938106072676789446331853140197790103046362745646980636649247707889059091641678098857727486918586614728415128723669891305534581450838927134134730882312760227206415919322629350726796908415365339219237044640998233971119079604666639133546238067667694830693067111028708948354340448173937302767429493014492366558902708240289751418451979387086551226901407082869787456160572255247412005122080261526685049340937459518322504172245685974782513592854189128542207515137829199111305352990382868408358285503714142539649629808156597222290479133362908435860369795999338616776874549013461508085840610627427048323175167533244733809665671642443581772752596339303106609981716399149718018672330137033468832483700460138712301454995540607819570196247847689082297134809532977288789690734477612404633618637006322536296508029825077557695346170360395826243701637795382674596286501548687553671665454396247541639570143756958951503384335328623608828353938456134307187955812072960673701978523865410073539544044734707158304869941254099280294568462801963855409044825352263667249276825505098442569311366763827788840157699150337523659176746684385040678202421990084878319078625705340408126290884975841582760991104339758954067527635275616457309818180140538290973448970113143500466692358260625408410633532903351579413470436888059665368820688656779183022154390995740522101288146339817756606622806678079303681759579838501310951055983937963661776190694365263186913394030332482022905324556269176451026638882469529366389463583147220852033458328630259216001728722014946902399013104077652268352944333123856436095760822970124062119871932965090321975368389277044688445337658615157643473497638609571010513782567170141805907544789873819079145791542694652331490386955175883486027085671423209168680415741299197903882019571062926066210784002524263251737744095665419702087641581833841578953766371063684962331594467852300829323934086893465695142316148865822518800173123339926597088030281594108219667614695558479005208480117572424420998112672385892210676042651046785598361894710561797821164693254650383428379834706967864468953200059640020253130211657712450782253275997930961229037930090173686821357009643598675477205550287785034009853608704326726241736162406317399052511707648925356571003944634322083868244532941577270587056868970532364742527132697415767287080972822153823264138868664372872263189746765618821536475249400352421177083601260123852394820160641021651427145232636697159924017483431208645244383301018191521128738794509736350381868469590612739029556383669686088374895789354800997028002113615752707201844863099889320665389470699193007651776923614146941802170314576809771314905188542501683098259207188220735000417670162854849962529997071841322674396640991585303856193781114278838687516690058561456037114931873881528218173241987494922850927066905374109660719075114590373638277146656893297040461903488383131277592183286870417793738069182566742564924450758792770267774644899865976581332791640933901726099183611544847441155042365250042720940948101929914698854919468527394336976825007151905245279881705375913355686557581939358622163178613355246255434078203740421137110621797254163356183798223781691877235488817584650997949736454210114644789606192661042013168949137540482832373596364268450212792281873993128593306628157271717267199557985965623010081600197457909651198972677493281217382028775578551596567620703722285544629642274168891621974903914427362290731957728059525069225141257473277685403128673242616952239879091666108868545152640274584723599062619401624829999493545075656980650644027607815298255489506170977533078102851590140555689296539378693645478333171859792507398816723329499103044396904101192662458276008199854840423927966112505439458932934089941639709904154287704916722317800603751505752235160123394918821548631067701617430963679401464947948923188089570427281917243507862926785967806507300524709422803236582698353699820537286641359134957595474988659052541386236357864228928765642925891926350301541881537417657484305509831167104772018506989149936967757280865015592339285688919972976911583507643860370437336509831762293674428504943027020525107619034335340737632685061134902831259409944176090294458279506298364530698831033531981690877337804990538940188224764901871764295887951660205988934494032000337503826750198140273804628000542306378569726135403362251427301173570148624987881133803020085703437424011085589323764209532875967391933324131519986351904569429216595751829774960200457535106061015399347172702780140830431174572369620767627499226464512681179499694499574138755612545849891513133543277986232513904778005081267242230553851452546896590017072104983478498104878979897543845338106676499694505593890448640531445265420927996137119297662400250738291402768799859344330515516908512489925570315881155980057215125911834907480714851624214748336893313575489312879037670396588576065857272751049038278919174121037377317642466706036298621131539301195049028035485102488445082782551879675379489377860598183767909589035964174492634490198335543097794424311233209835160076137176307823805531507528070196862607071356613801325654038742193134614263516467778509734248679216189968367288550996217297181313225414957891211822710282740293513792680274024065881526898221978511556610129204870042239680592926875942659318245230100700997308861456919243565414651771615186884928039272668643220710497967190014233655293440200479691978411349939952792219012078461578137560629556722624592625696209193277698455186060388977137826444305768033365253264151918205454195714790357563764562104539377015103285101854694460022330272238221486937125372363700829250697047834815112710797685524150074641826171531467755937440131286001619586260354314876128564697709312829505289332537617366844642723447501689685083654366321042762986692819935559530439979053266656536771360490499873887757844842921121704263834164900387465058090800080538475649774198924537788443077477798384427940223261575353542688737564157593632307622260398834158570133091812851097018097567931501646570366279732318158488717610014766170738321155162453162495732357568504111884954286043887552793915647906372718745043103649529737370520052860973530727603775596224214561665680793971970831337299358944330154615112953377636502973920063641576293219466015237740307805462910566549143504987636402461191313379955795587310374423526614040025883448616999828307508940061016269529371098804817911496016151142036233405218278950603876789297080161937876901066599199496000523061025846950936132221863192613479356942144393433215192509041424482451611596106195113659315129893121390983423915162904422644476694944060358516467523876838158078450389444227708103708375061602456865124870544043273174117610860455337913220476037463704716628634958781191774835296304031279378308515154300776267691168042851888572324042650257239613859319004482944552809097681787651911571916847340658581172447769027577026175147252159422494023631348167313363285071102316900685206524521694547233802717614958668147593044584146885631555495897218512295872543637028901783148266153400935006865802617753788158453049102577230146168248022917605821774371815515926989721109405427365317998100847692305350379089691853172943903731105190103280057028191671004429279513690583133970673610850604804338146660402285181596132696169554783457913701449808878837088148582534204429409540242954397724574769044961683530270619465274856468126947275274062227851587530745475407509872555126545389497285708124346133101873268418831298910439972968282888827384581050730188541460488549911632757410333754894044561589995965499103865410009843342493441685212389931108603434300542843182793697525473622190155388836021629025079800579832008826739375733904990997270299128011556259774627798003293531659943100061399687088025945745288018348852552342744641747606962694761775689141109642318112751335048413483829800833282312369563860112530628202959358173261121689688961446269382920663412520494455881142686969790557094209070936752066149890541262974518079798828869531411937066325284393167584303600449609971397026271460674156410108309470217004595533561763131986900713134026648959812569465158744216838611883712827966644041149299812383781893381835007135213962128148810931501184381497894020746292825003281966208336345213452510149893481297458287014164157423629542892298223239965204933697127244111622791649969759587010223427519137141083105543210361705131612156495253967080687940323021748560546900636793775857441499023535019336628452527699738623104471113367558427446464489468251668231942789980898831382941175786175064012283631045994929056030831659123397699218945902212663458867197940720890398090577109351131696077360082980865787349104139948325102535620311742662064717548887780264724781089690930690528533483112847486693464922397872547658886237593954312121914624024860466048744385983720890859835804750268544758420604269534957155020166018025324032827138347933040860203795903033804526261208569919540150206922487550709728609927291351133749284777291458277019191813663138967875539185860830616937120895463061186707618765346724731182829842155941414263875308288407922805392126697892238918332146140533372111336810071394278213701810170639848131363129496807742186342925074850838500038809393793955324990618213173186572640532240330863607151109282583292597706743144667172184880583660097867898408404837506373284891499365275683184597460179271379848800030746337749652683968167146264546741912330511511504279332937361767540555868824546608099807965814695285211381150000520711953108000013033884528180536019856402985433370186598811852087892805251787375080776146780402539627561369404144897892094048138019793867308879656669938900741624898222255514718711639986386371030826303913292140596382778825787138807830474947171263209689336235683503873795429914111293609830509567187178456345720753826823437419764451748016367971591784002350400964910710858299319983724411916953806331863483346679159090448318839288604698003943239945639990120546366080807323215938972202568261652282889974296454130012104662031943424318514960608595103690599034680177245634276523510521640849115341297443204579777963645857082234187591863552137548454677133681608258707564110082802939805451494166275907516139019889908150825447439973363955029926971703151245687001594601585424472664900787847418859339862568469697284570736634159485497474772661488287526163145907227555116021909276942896941947596785063604851027681420780458687426629811228180421070066786471948945903385287468304996808286424079822005452768729805161442295658607426555886268183832694438596316084726682328774134711394338369324664711137062216499800652012641402879981918001051811106321620522297389303123826305983388048097333076605131615618680649236911760861037113505241828141370650709611792432051692558434179629321402684773191034696962843208994568172567132452744385658991160901683621782276430728611279904014612307940679708244684357940678549962138417290988363271444854978372987238117740262638176540067134263448948859400075212563793810992339405756135410540053959774974828036352722268158807519976435761983262600746703063471150030526794016890785969212062969221253090225811957425510366087409196883120664482458278973362777830529865536456615664114289816776237075601346036853406037492697271784700544731470443922639373451206907367921899325787888502093237047043528466706342756009652730561785034878641232138115665498801909726246904411246912403256160536832273910800556816954506674621486229008433317367794963750492957998212973062089042731841014417107019674767878677338075144367674687676668148750665295171756065506383159947309137916642727929635190294065754024990205620338076020277035784290332791446664444008404410255075375968495996651403672000964631303543764622794998884234830707568822388365558551257802418379691985345544274692670457668852768869403541390679274898892067204061289816947039463658531570434690452520271782615584517685933260978150370472635245935274531776862235434086920327145562683107686839811304342071378587285235106310459996961184424534542466970501652803881374813099629401469609250724031843638856778245162417962690204339920495010494223811006195956232224630091464319211293620055353132835556117392375025267250238975584710365806769577303111728605887181848466128899551477058023247832201015553685561588756367754248976002029987036194821032169831605459817008986222649239477897082433732590581663129945035970699382688904033714320915105434033034396447786373465364743016602749364079459222441285936328984499905982145696654321024469882481205622244867680477475221996750982581618187493017848392821377228269266891050642964413671558264799446487278037771126927783347625682285638823416853388400951778814684867622189396758137101873968913916908905850151307403324866787056897954818423982313362443844556002609563721286677575262556547013102536900190751704667028658263319171598561101933956195374666311727858059789949289232568074587657324759623444480994372444943769025915718064260112452786996441051433493024900513748882454812052943914156886901115551866401327400522453679039228257721396605248714265006321691761124477510603965596246231218386263781808926859787188202754114419628753605002988907254956236827970466296908961840543972961937653555569144638435776214339619766912390456982374949338657621535209459678092388517156905475667664244587691257790432871500108941015758007260127972168484118708590014217266646218150972729269818969407412325904729166000075345781388765902057791067722618202534935393321611045045320618245583023494644537120543748690238284194201002018936365788069558848068187743762011480618151315400634070569614471472067554833005516421252423793971264730089914772888030906787274445967645283554902866120962644200644706640201441218188638732891527614636220433592535834547171595894044413576784025728780601827206389876883637049115655369510251149838400321996769634131251173184148572562108277471287500538986916313499005877046053547461367403315369438705847908828558078036800296966472647209320806920860489689302252440185930473563068453049073617030665203403224783363112001889297897486474798294333643144604257842598870826377279580924162071831039736516001273911110748400148058344562621604735190749843118768028147014066131986549289392523988773156163656277910705722225478561273542285437529908635723623869241334679601197941039635992048261217215431328505334595491717806706167698514283817764352708493725097987556711483502061541890724245010393207027436706447277764082493696506263312108861782369877701445755159810589429859339243705714077553002342419929938686275657705684466437977883434432449660072525712122699089111833320133427112698293442901316799361535458131515536017755794229191377961431376124555879210077167022984418779274549016046864765966935673051884617152260400822545198360732920742171085344758631561319516535119556318192715651431667664922342856711757730016073410331407403935179212740213186859964975445779269407318157038580610972634847581023997584038942302242260506809368881146374784062264287085369109671042441574674022512173981438850673513249573702189193793266694524055463550960407977989032016406920553244673727384469711376884230519494910035301550451101266098720948813415970194835655871418957377778354494732424766883357289504986518064061147938365161057804246618013375768447469391812801143456572376545989338380102650295196639698352859427718331472665936394997380409232786143065050657965651000134272493454664607680239164629725939072210586782204066005054681311450479538559787351202918276808873913691072554161084904153335526000354214564755284921176195903822733274539617114176682719675849814062260725362428030718617124373182477118325797323788622282100867461191911925457933918361029032160535993102703350016171886647481321829114928195809955041290841667999917999717104352385334886507394699345613801923815316004745302427727808422482226985697414426337830543230717755784996259137113126454652166796610165997743515105682910266044353759313759361931902023116040927703093683679869402822247435246660028659707673458559613953530851566767404531741872753925582496817993004926429319513858660076756212570452197538002556674802432312587557413953770300633262557561566688509777185940568300479320736114842823124933739541388093387750535047585661270406681112378583365048466876295777229457076433510141235804880051062785789866926871136624089689771936276756875949265648113715387842795398541340987954305276848734801205137115577562514166081010555618181293690842181343763218977967767764972094376630946348158711570765743037080223697799734652618564591489617573590616283525396293368365079025974859644112967303518794587010597511670526615427278710046445492991116865546395959171013954663586392923407131059173443355384378752675059084807758381592000726144129769170639125338879338843840731725089352855343316473730366313170153885159560920695578061910631796431776177601085041304013772000220971668465397524946293396383040906060405101831331680829404391276869129237442951831393448765768841322863077140213822169020148459341436202150214669710112959154010901153287740937729377534336034424307170870838190131000721106873132136727838360899212183716416713036763518670717582124223230547409748137280821417248559434807742342244516882395660206391289153996314237076473496212979751855237753690090768495824549379148493169042828144663091747683747175659803078939740609343205715705717435800986259358703905961097430944128845159462652585014951615972076895107529169147456304473813067957014869144435640099045674431935001964261015492610900373461852753623164497095490532249314410668656815852442467988092956974729895898891353897460472395628701612995680272354604382451114005291929402467764958594363761934737682134947181875685783309305079138959516711523422132241454961493983061779522943102573060127500761020546603553524157580060877865799570284232034962634355754235650746870414049895729565095991172462786913530241558529451301086873725058832624723910408060606057427683382696202522890157234582358754112671681801784590758070884927863980572363324121761263268729963658747030067067924643258284806533027644328227388142684056892867476152882662670906699137205304871337200626614383115237234982280909623987406554037386045966451272380762619081738775095355120601248099235971423129563012442795721612158572919685856784131675907970652984774803368917856471835840809414738018449721522438590651084220262078872940922031889966371884869800525626657047783457695620949058991650895583408566463215012190479450377648586757614565322613239697537284193037384606289321789531535207775611557356606570215802226395133695732697909221494949978038685357078242628710834888230495630443255259190310568190100393149415573122051146777806598821578225893378866988940556029945319434878697605630816822343398546907098025822066183106895611115293352801401415962582634117196717890051647345879603305276369881760342023235116710160937104339355052329752232513050946168599388519378761638901432077152400341835263938600647160950059312114975082412199507017365298216701156003850938917634166622998725761451600187753175470405178574070035784027290156112136373440849371399295610847650355173044442335157048023187101339844858182633966494005112139154657019978980572060256174818665077754201984027962670430528828538354123856780074702359099863635815422990249535120507033394418600105971887131390444801620852632697073100627476438204340183464406204277875052472728857940732362133312746807261363260481985240299572881652720293077548809691087189801858316139899265494242849585049853455368372139399177500965679554117243901851152550845740149000981556135209996442360915575410188345552027095653423002444477211730620892437391858784828959944348337290906215147189251873579896922367507312773649017741105284744581679376010636256220882021734877494494983739616007281338307465677326650564300617451916658967288476521039107570539714315458607028934162449735883267684768755080504913145887315544543897766198891068659479800397276675002566043106995290234329618829303988377471727634032430865756342868719980173685607498644698803611352931800521862893678364597111743599724766671367522762326969996661494840334477565394841250922681951669191310766906190150757303797832323864875310645665366348347967853105605923469171303252554078197607845722577679901280896757550137809487141238533921129361497581940325214758091958246251807193520707205330930685545963929143586200840870568619155869874416377757979843728489410614767654080191115755828355042122114805829949021348142940523228489370442945259004855109367272790353977235684754585182497942279219767935664097652283015748068718885849064637755896457005728174608319882501115421331690638503724434315735608842935963506663257194008482029317583473842401454350599221106873991855879447766259654043933962797345784720372339753560048591583872319087727305729369481957268997877679421953300638005557134721305724842472186457711398942024122754318736888245335565954102199708407790961944827776623568232868202955665485639497325577020618138587177403041510597779184099816512815426817572119234328522632809567988028528039536228139012318593789861770681415925318801246361056215392296757285494777774757886747798261106756661297409132458037153215379943036073144991737967021818406250245962638884679387977880292798911537829737984545398747102619769574887077196498916959595184783522430229765470315985742304578758790784635980258725792512255507080195554433329623693128031916886361427679208836624283085094489834522990347368209869523434873299738730298729968407950848859459504345070650119165557724330641548680728153040608682430672541607266102859162094491210956083367926337516558230665115791237536777728406332393945151758244611148449943143328393056830502998169120012050103962252539400328491410545622290180345926210471691225391537842586633288982088511539254621895608881906519955009039550897973096671496931056532850918745059864340091663017104378465863509709692154027305502812091480024339306047665972581862009070408664914328384020399684415771713864254843785815664213868189238395016731558017753926338806732351833109816459766235600185336526953130446312921771039985127211161443332239914175372189054671879459708129138890609878752905652918903318222206005853268670551374635032990312177721339633858038927093371741395004341964782397096390916828969205351803566734140718926339234591441791288480207538069740187612019718390747912617271864209304426546631405123349205882780246209014226742466207782119892740893878218398206247578612958624104081462970952070377394441206116772168818018953395443264969858323409867187529997529660547441086965670490422784420229702835873737673914998601790679989527901751347728723246259069292368214748710424177837007948218711674118006481244323107809728713026689258039602003344211596058213897792610793631617748972876495960573296298551657079152874783181822541269430743860124627069650069315888187629469957414778520978375660331190155963607268589382457365864170842036236627475699407499549076422009355091897052435386675054214405811186264086067503593852531228071083165809416360884875292970128361067018872036617399151147380893067504803189307869349267405192159397029166775369190546047952340424500916107457406330409791568055181008403797943268693234905818593050884842630925094118992302418768298052643191508174152623404933722417701847657361836304683860520076493969271732074732279937001900708245386063443385670336671540046662200026787736369516825225090878734188297912356776980655017499668906212447596063429054717826973200861144050958969109383931483007286622001715881195164575896773612948909522490969332475715052192694038886032486144647008932224387583750238671295355051077106273253134015565664176378381475117739955660556244121753712142295567192965228118486403704921540156010258000303113822291606656020088029575228708786616412368683225933203059662426180246041146390740314529563081614974381601698003569007861032944587352876878240981360600742762417304925842308721969525161654902531625827597676538653497309648400055639244331092754715781778918805941927651904559371693436801961045339836916741092242499140738066929311495415270566090262682263691205868637633281086599510924977750336178694971107993044721433297815813419366748226877909203455907932747452260058209215045669155679287726578556404127040355822836875762836896507868706818910387341866623019545933212099806934322893207192652496572234309833214401477235524721636129751361726318038466375282964381878685350673136501723065872170701427491089357281617676088968696942012411516446513048132224398034203949106702621672646199893650595379093352260882129966954460217879014332678762850795856501451015130115401269010520224933351479375078774944297450792802304240717789646075086574418328586608410004737840836383947357568865586853101497945770940257661949930168482786211511892812138193463336636162694420234561776210044591083504555867976554965967302617763927637495651255922812478104121737988091631372125604926378377448386478174121431139609121470901588026863376479174651707911489850183112803295896082362512553644920939629579882926944548650776282648287569480878365457504828782447674742451281961541123889586051347774244172351056924843405296817048889547694962463303415572510707145366054591742071315301455299658145984283579067890631337867861626624717395429393782272381864524975287575669860651122467766177358755360362361058622835562410546387428504718701482626979001608221505450772227151910267406891678240161720902915150252770214745017388346504614033415548079666005682749899296344466556888953106121522410213651642559823889889583829487073062104888882551230471448744457273168455221369619575717274649702747166806071707481637498978692256163117722406086263932178666230103487695258454270927696654675202168198659163072840077361433223733079297961022014727062146516708156047225999335677637228433513647401058985323440609855449374951795611051069595733830937222310176881710593313558959216904967148515033700015616550119134259615183842462022415581314071545539517645850605814049065116390086988482111648072604623430353594385926559948407512581646444511469251454895196496733085799256976331135814499604776749261655754089345574447020157704832480670753575633848182703731072361305744370779580746969689117451155583878717283697293721736821360522598013328668750192983084511951993413331709141058439140812935481005176088876349180454147791874933502622801025744037756945590834747327628939103575834641700546575850666415431205374325197754332933900194394331602016665229481742425690737288298991286807127582074317611590869203039137890550465241305921186283919055546423177884222551396536751164167128705913809941891423858991426638916734241928712746970984240454620100440554964691600957026134544530741442510674700922685084578093116038555028358222123507354563758755351489641241166391567371031785545002540235149972678124732216767494357261113873387824004272559016901708608432022453042966394837650394408873145652811721055282421442074906081292959557159881575293579373489611921055737336390933959185101125871958885608416093424128269966400810415407632567987471799097267172860048924535676788562971985747265799304705823620857827371470669041760892869975615277569629750326393348093148934566699176029390669411242153305686232003227967928077882842586251905292515167102502798538356022994534483618794376728758358624791725612268077960572913552295713776055259173615595288790210762135589549807080340186104991661511418421838506450701009550360622166892493789413020672291660514811735346625411547319686544382732875617665880807562833816270398481249057066365829970348901048746931747497363063582582560399194964887317265532846720306510795505014554372888601315604517388964812030457827645757590142987092360331669521875066156900589531893188438423157130731293900824591401348847696896374047232581277040814405952749394631170799688718115453939834378728517643090250481417957451454334452285886041779241468261963209301953969660418435236840204799764198004151288510730293140160623166687564352026541955235184193672431908366714275943215187708406725594118601480666545535072407532353466456448229164379922659758419164590370885376555760121972522661629461566711947314522409870928726019300385212270806039334732518472424454189884465857643555250133159511157604045620059402458644408051870770389966400897954550537208160375213419934608211586575330674730925119314633286028925075346187077320662856679095107473382414352165415599191019329771497476384276388475056964102314810536277767575383004356579303135637323002338283823423010540441450975268636362359542207391436959623479433123274790600702925036357008191825138471145109919682037306488920042516723828987908424557318162157636380552110656255071157301243332370932605961939209384369542896872942965918934417360978092859831489192165962329405202344537967009423174570462715461184000923660078491618080876902544916618745692649207543689716968976136454205134999405704594962741664228973968409233578959932684824085786396649177767792077166873789244922328251552139110476369524866447054406331565927880502430882688148045495351526903597478059686295858397789197122087807603927207253303174186862637256527124141240778248651847430073126831103905705511213623289801327865569905564997416092323110135319138513028718975526078644063666523665162625376322770895169011849287124440075117062389336865901765839671474337764641598941749309296377098290462919478432554337810512992156065726816986713225970060398125773638466404479213625519998843264054279266864623422180903229173554511778750003056381423186276636183139280707175200095375488526213204386643361394665410390611936432472923662155910108516628770513740587258366417811343570421162118370261568897008190277492466366222406545058225665850322253792503569100559405271789690425779438800959395722341036961871834062151721953565886800589596658932630559952853154027832549099327684731865484049311271858791364568075093230847972243903634077990722291216542291693246025703398174517490844122814575532278688870149382073766560262181214415941968180759891366424064918766131067625385153069215180535354918343985918755032110777726138929888542139490015301398277896853582581983040697435482048626907263027331688314172988442303440020849714729952867471645637890881534184214836423052013951157087652285500456003701807889891067022036815147168025935110881974600351730571790291193820980616850588617885713578297795421095755749487009074000537366801639580132468351922506602177059656173109171014690720319072339293165710005145759792253006821550057844582918705300361090232804717236454084590594802038716579839842243546912825430372059280039594875180428438630498261642805534807253942488045454103381659089672517546376669237654929216659391703508551372664856865529456188178591991527390423562068599224718937921710786784621437831112461471223265986874810886440134813748340318902494878106639660372433916724289185808916153381330594197512272271800654295626514376699460033271345500511326306656455946165478204766807801915976420852496666396093235733503918622042863564299956413959759632869538880141332723091227722639429414723673386232695718381849725562835507583784954364848093070340120322598820480533237193014970573741946979957237192644813569126629591842268157424681729102335450689409294433023874423107605369468457452629795218808812445593765805791905673365072553115329450770847948775832345834000797420729328836668886764750490368296662861872245326376755259220814110129985335030452428940407158027655688322320549868324526397000693767937717380817483926046889787139779351893947571955729422518450066241962934133906554414152129013963656259594665072674039880284021775522435359629252479508428615473812440998486923455229580676877101788027711342994776162618043369676178862643849632212803608216181319804780157160093947555988742824366532074039809009418684904780043622769320934003479335173780872434800424488265290903733412889402213467480823879812998133192474265054995244630105290764617713427511853587466916690773918952501933536209555133833945833492159468435507945757897745914856463029699498229200694898083903661621452253943835502823455849190242509804187918426644782697103841266795853457636616691007290005232097866810255472774457652361600693513852979151217534067510303149732965186838843573089153228278969581565135337421563491732637864346528382152208673604449916598909400419513376777497360464617147039050717942190963921023200473794814199091709852891577916007538673578050564745774442936443021466748200268127337477267308528422702808034615577912467285573498222002620661483636621324776027536250831269075171624573954306854187668932170602629235034898717371556527933725046522525459028880100991403774285786253532962521057994425942578123738148539768023855267480385077851534957713192007563052656134984698712923431940882394713742026450304657368730951650899308596941917925171960303342357208452376011970585826367090456091928721841940296510170408703394431866511028117056651769654496781105419591768234451976565623053690566557436669510127213081691617699896128284173939375702870341576133336366633301313502259492661774941850098878412066158327170752993938784436660436945342657543296575180059522452231169598015332656934726737917935107772873113950501815363589326866574094712753904823164591537553202058192208001955823657237340008791991858227705579957343387162337272010138732002589727325851024730783134692274009917804830959882440182867246895322078449695296803389292948446651983914633231544036514765879292346692006220601895056585588094457547055963806783526215266611090189267281611240869355711306981177406307738721508366918241901610226530115518895662262422878002634172570252130972418339613461228790619977217630276524373935747864473600265679047007344874355703202484245078867674633911859031474337215227769758318946534730458512943342705759704036205917204892117766870090817363301527650377357402599006439362575546394776439076078760450913793351743388687145325068213275590378642392624644732361087350020114541815632846043326460115483870653186762373057861452653069959943238486929988984322395540741480026947615481650452905371116477040468765206461164669880200327096116841653880664252915182011138440345292002209263517411622088416931258237584985075305142313551087083575225293439801697661923165064441283373190904756714057267120635999617224428441046258202710972683911768921646004517137682360638059822474230191643983975871108695988699811456191536337645093724605744600726922726730708032822541500801596473924944151096330271065886606638791399055043117912262165223608066147806102806391226782220683556684727955128862787926362742358937050204280661375451392328848535262734160149567183453202863121901630169578664874745808053798822301893732044255348140439952941872024898830572671311156221320661725554116723809557119436400015806955107951073395530489114294240079637641861390812740224182972254264149906937217176227965719881114869671447548654022710027598421712841887672423036093408474111736086755182640731279999547172631241762685123815685026568910487026670405536487993622504449332619740060799706903716302998074770277972710564126528634952165742591425857796837730545979051151638170228997525372868073773755622430771562509572755323684655089491478441547954736895137260289229127692832408844056404693492882457401740177550501833975630451104258152292863786003736587277772976281656715410060936606232319145554608593781383594867580109076597688252052899275323011028394941836457164671985235111485355052639826567673777451189426738604230305865943617572478303305972212077293273733472325119523572787477597219687526823987880559238308998854206722156758173399759500165129601966637690830859101356483819357527841202491765303027113557221749389537507096741603774444811649427283643622841343091412025855948238412617622434408014021334687736999824614086173049552825402500941417028100647783484759108739622249770621736294554283288107397932944345785990327086987777447711169654146930509349337877453699769050928197536733225239451318874565411832719684913390958308242593414323764031732424606928835383498863836358799106007543220848374982337803837913862649273053819198989597464789963988921061424072664579006272937229574775727982834916999584014084656739836352753836637360117679647917544456192702051202951476877765574898500872747956947898328121846887567801282013336103861803555472306556570084421648742904598832465237653143213247531372963786753285172526731015402632556094687221435816775198432723287233120086528971538965112651238007939550041183118160735873156992439808728138719093305522069909208713429434224079478308989272287662215702159220153103454155058289091375222956785296550348930118815597245374796163438132822037152791671182615710358040325584354954057718070483390937559804703005448426861021279969261874833475749807133234736803908251585929823271277064669697260545877137910314176875133703320668669873311814013936116278287040675112481718504514924020888108939745753679527667506095275837978611113266254602042820511036777503671362630940230094268250327555693346615104828070796110198471013131468960549806019045211773987209306753983086751637714903470505814835248097416773091787299117378824718825397979806719000052381656135587066427704217487903424364382875006042823017081956292788058613071374331360285426500206788184421365787107090960227501001450812273032567793920374456625391190721161810123462613169989161143297555306669089183797904019300993213633221166342345378693856734274745016115652425156626424963377881106209042300938993230228851802988468383852572784613920366664140024904171657774896063980730772755653072379331970531298187431346109271755559749161994147157029128749172785929478376655154996933001949990382797758183464238403933795898173723638877099621838466843333682789579156156016934308032562050185546788324163020596255935394845136774649831731165216179902024049443257830587972987175607394200319582030614912901643176201128482824738408222895992709908568699933148052134715668449810704022250978667745468364397671467468645976547883228883641534953532867084359229317359691331861453113524423754637144838971200121978589745791833145717808125948409773899319502898561156092778828346890870625521124354311490582083793338826393024629769034560720227939588817025467457538239517692544383696493009693926278761051023532499427995430246055083241555171277721991277838196553596827269463100051541383533324972266982836812779098149603236898754199293843839557067016675677687002505486823666455133352415324465235904901642082560297083410596451722907229836094064151868086436570810160806763302104389205778354163011168239439801617816367677772813229483517692004331912738120530746297381671437449711740992351709842967149505664517687250192378815272678763123840645842093508143392083507917713310138310723587802076790108628622429953931760894450094869871804292783908438571270034981285185887354997781481703454529956003326912386876291523315019742102906248438041263392446460539041327353807940269194427027271017847612667178334555726965297604029805087439581008760126731575210874484567229286723992317840530733458923390527802256180909877665210508010110726992027422035338336295110221588710062730356723663487560757929435922601146476337512118328942799638263055246396351779206822385530735017977904365682379368601035841959402838885394130777524780301333634206421100896899372389372546808906070706241809328155019806290330274988798170105739850702543826138330625995576496672354652898259514532453681545431283715760349965669103238048982796220731190179621642168292933112743569374510377593648859634551614131231613662125275387985711240592972220766482253955724366030262375203632523402380374122514803397462149735276650407591258203268140412918605937750061731928825384386319964580551934866981356549516390715937499685942161712622204230533239624799791252353617327170315874756137903516221198357680153544063890602827105470857527516423424969268597778643044864351787900451862350367263504792769706263832000866668757256867165943400921408014693691818076049670556842123769499757494396327370656432759067898459552397770296287988494244890601156300182287905158605439916587728682048731684380666541289807058024976400098117464794449817054711156446598614968647869262344623165821427898040993562327450899897341988645981796620096766191821499400229728443079273542850812438375967142295880151575696584923520044604494155641277757371687185914188654238637216944120972115730120321927358015264099311857515579048625557892475719186969240166488352808326795804729374307276314557435726816849774789520141110435311183386508948540168940235891619695960875562141295179504163265923957254006115205767583835619773121525792098475354043832064560506126943597953994289663940455161539980179816559769714994256724288929286284577126831496694640684284611275797653697562272494858895826580246008832003264871999610529795379124566708332338790484980066680309420774191950294607250551412951650056253526455158691150920546616091326188990299876911423199779116361384039535186846595525784429675449128920435349810059359850414724005597813885564363782559968455794424362386487699958761476472594030612203568926903527624982219195850976081109272548013349125637902704275158617843700064515725122999898155678902699186933315898299333780264226062245709130905652545076157221261605325820131024384870879865878146769346740279004210330214758247434202245271798173562691468624328440917712279854243987281024525030308461634524013533633972053913301501281947518582999442900325781710458739493815765541811005094324511391586200246373206745204669660341770473871261877224530189258691276651125199472123544801087311877263609527515258771890740519023667588335339930637500635135698709467477878992991919620669599889318073380699119818827266101796781276682006627051450428420958929783801179459885719947136174636307575827489788512012916976753658880836864825091692298848981142836101299794649482720622090115977465850244770417604350500091190911730516116352353923136889287552898398767980337008107317541262556817142969295196415468843100865677292962005580348578514968617496391474152498016541334163666955714844635176894616563635043972497098394380521341301059373276828670284516397920269242436560567001406977328065390091730887344436480106743977047290087208572882743465818499667448651609684180234101498104931492635264120996034041611807698036585737304531393142497399846509778849277680325619137083796298911829178688566023295503284931980701737005675471519603875512606575373081522243520452464604840877148115215981627491435771802151517441308043211278807337708069031986388483804889685115003299090223817276833961122631550832513679041302830009314566883616165128924978783868470578598873921530776836840558765023590396940905637256225795672332378240279933816903285169436828595111270059728327206549457005377839208339323374035442617679519515121077437729130657619696198904657496520043536234592087102514619234969579746031337559596795207059326161851506868512118558686990888039543464386136824249351656543560775286788855939994256712165693931629284631386804899239159609505550081844880339443353247900028925704678553986777039839020778541676545497631739168958906744499449035080815096767965584909365617262494877701198196532227662850045278995566661704283693721652750252119293300802669918678248396474413679350500296416866784844974417188701939482202293852532226084810415267250925378119501490571493692850484790152939283916593566939520313826931782243740891008780255389597550817096874632063284619558848990574295401583569254675501712053640318794923078065757791121047347650745596349548464322222248033115763792904299395297721014870316211408139552882289791611171843424689465425143930476532147751537452433499655023616012559968037834925772147943715301230419431277218096438741228219008492429366134451211652814093786648437108098259502936649265741267769739832140776228935113441869016546720337018343285456787671566144708446245502419814481160467043337554777882525176033864079367855346231530627619341689769622550544657180883134396282368790172044803918439653244115493443894948270899906856596445910969196169734393830323403346037549728573089718544062717589549670500804740270474743565426847429671742712585178030957079170492745875377380129858578228333127632549506518426462453264184601670539166762583106534198366951563379658696846248403009127867129327065484194675788942524960025874956525224260630120935713160188791286670798706162429063719476502050747021502115751541538832861810648341647452003180553218514199790677126409033706838895112452257203941863977934012574823764130524351322185112557701133960307330337605333876087058529506270113730843970772778695069631229007877616345307508993690174925375185160011101408365435772511750424943246809731087768449532367491505387335271449191557347882291062951055373672961219910681917027386433899693448334946020011315644542399577309843110084727122876441181984740333410975107219187520404895091432938331442861874665635600866605894314474678130816002512929316143366693987327880342777314158792312635926445180535904894997315760028055982326178919677664950601628860733369464488312227224093581325174457874306685891264312333472176513882251480807778869492702821133905433290822586732345004777672742115717431895698033061568424529301401806347760998215656342459950307113883021243722906197783968954569659727497171823123013155888103417298792356974280995876393972227004067481673296511546106230857786175731250222034859543945783162976999170603346962224077475378680063718502318285804290150643838858394565083691409033580771817778227346373179922115662773735012602233267219563427211538212081484235064016539652126482448844384231463301739625837208076493369981397158077771266845480948953156414581048168954796134562608820351004783357165037924821833266908616937987126169835690293101567010438560317322926534065532811017994811717791666081856130157462694716387011027811991885053080585625956241685702253312767539313835583595680292737952426579128876536408220080996444782859987577443558688227435750956631753038947146229904247870302651450474943704012735209600722775130442551302533300505375289516975155372639375734777860826181269222325436296740346921095154820097914662722855262426913385555122074908928674505538143930272622363722680053793588043407807921714299482063531548471947984768713219581808334675794619566848202105537530983605408310310618887778373070214532899819638799053210616748544320376973661823355053713376045801430246301787541665086601540678850788168514471451606721515630745308634207300573105392818171133826709413114159624366394267856800962975049166881959763040061321633221542211333476582858459617921848757233449265076169340848494566413820455650257322466468463877856232097116459368840952474320722064535111972607163986573296018688489982252881378002977920005672934179024772203586055415805270265122075838630707963939890885696172921452429864124754764072423746748280871901799887195039588309423945285138634133931863308645050327874701935225782832051926007815322108747760962349542192743213666007787185419614410089942150054865729537971276711920815912886766456748980585225473630026288715431853474464470704784101114533013770865839264328609749710990065604825779472886274373823131816111393004365926039490021004944162608952426932119250850545268185940980800511596299231336927088019639774292118869114130397788445218261465767691072707141719460126106526455692679969738669769351592134856170445997514013837239683820852896410805884086477612758306648211164711837119380433205643901626793494482179845185546943702127052740444380964209697778554025161156755184160565673533013859703889911526255110060078964906036179556561528836434511566284937417902696625250649032707140966654938768275103702039426467673309381864891181425175151531033682420861826984658208189950106960595743890817725201312358762721637675512095410262786453471978743066776088914785787030221706191359526141142526191231615135887213199434189802384834535127698544733641134907693677435984686470833794336752419791311622148467815616145000656191826222706454186448736302393484070765632212816418223718521965842189928780138008533170737126674551953891459481534719651423236170507314875912137280149139387385185117428125704161383903479350067165640597125924212929938707617297071232855281908507459904340333721011975571893068737421761061159101194571833732006246211632317942807677634537758287291225749335016148259364244916336003397579473174799789273954855604397472069133938685267080567570498367040831087152046406026230479379714475313777690790455363696986064577166975567764995738346354360448796621475321228702700526282445751022164270617586111365782174175081422116427755815249954602672143359555843217737813728336010008382025701310360608237967762540004280146796788052217082962146266712244784024536088428012061620382450263795199957938692111162733501154723871542692821420069128599688069215330368602202736534827439953791899077295758209369288153113437832935168063305272323217087781803220101282066184932758843397084873400271306866240634237064294189887046442569321210767218334318126346974805921837345427601842834154504954666277084867959659447117336093053124117562218116991213232936105042384631980054697933668674465821284687597756983882047789320338187532933286612426339738408660045464486165803527046886283501419348015051596544342001878390141098118134976938763690064216008989499011251309737360308937831537217808237570962562429220656802243696569888661136070516695650979500245737895640759159005130196020976881437614444828997521555417334821121620615702444950795341983776646657152712083800850818718292552144197913580499688079353569740904526235408744809500656525960700629262976293368607862151127853141491520936106049340410357359708669661471707988004849586396721326007554061554651347075871049244770507531698642526979048674095292443819118540213646471242242847305559115981895022785394001212257978486152398457149618543558642972736050618510222251041587483948282387418874532532432515744878617563645638748178068393051778635276547800990495925105933156745998897497154713223266709254325109215416653211205798888199502356377807454789206832168187112606198912235524423588790459727264492636660860617497790746208507820811460862207884054152554301384345381959174400019838352355209693280070966424425318959615470501300538103484208264971183770808805714782136524197893301527866923533974295260117343668033646902131278817741454138729381761410934506878013130946015585176831060178135368680281975898150829185385314500466957813340635793669101067486765708052740566462587833554456311578839307302620926504167853501453055095271707588530476330113833805521939519534777205878184621857217148164145434438736637028200584766421006580536465452949393090298227288691679264508073828855994580564541548877122979067794863968679500819675453581623324591265990210797840177806288733689607423804811805642194979129868781505647099201199942010367738153712248161877567813969944911213067489868784535374386816462808503530450867106926132053199920031405338803714424242971892122343683408717123199600431163328570502608642090287089404438484604114746071063731572719287620042519057815734248545994818438726195987952744707798110606086096147746276147606008885562842585708477968447176330831628607601810909563543079792891373601851106745283881891084337266359605653683579942095680846413890387792748693149819405533780910885390862173980611175600191058224512513470708024052760188186666454781133319337592895622723417798695081686658995635702457647880300983668718584702425774870870217346031348211099388345302653211475559731358095513408413592573727538257702367329824136087221822037344091925943255831665964832809585503579426042524799559944029796572752831809928309044750110712506190580763170961613551289115947132927554169105986733327475675119833084985814919199002186554658413468636329235606415510488476916898157179607103667584610999231847175587028483322520725513151436387484918487277059986073422354444896662213967483040191722134075252880645144665170985486371470319971207680283018886175218717549209266151598919027928694369693347456932003341663154612082664121436673146095114824114759316488103990598909142365557909170811127719866768719782335599408110565301743033662747607558272796455514169187088576593724412478829931859627844333295100372434943883918635092654472265377707087489108404626094280700935819876086486974974808889326350766666723992000312868923659955553220645071848887780697443429573019037740904408424247078228778831677440376743781772793814731651546326426442284627978716792995833345808834357434033087642940560222647633777726203869288549866457339172311820686765613083812589054439043554903856359396506592245307745664323278589660793290352906522710626487886432985820328016154667021302946925598707594990713434688557911762904402487179758444276577849771373593421561617511735916162197935423923089040949351848930143771522495175548341993991775114345463288849878587539977572425935419992299551762944974330461582006890077338473990796217864426121247096616600720502630204566919809352432181277436408446526236088789591865958521344271820646320734523296771764754320102691371178734570163843465835139767166078959873790980179674869942049034043533836826846210686786775815636529101601896776294543201355522400125052251351107937252569723595371683376005005387166991068179462433314282957750994498643907289769082870898550908813417478018538760718636152555397559849105009348809209846668279378390673730904249346681468720425191839200571443318252190746504456225062639952479318745442388950661842977922652572912600925565945733205597569189194609193060023006277562115459304348854620636843793471851352168005510242503398424096577824235007758007982467072098496144399739370166664464584255798761111283199932255506233518219275653482210323921537894707769157458359289661205837650177482496470062920702763197645066579325783006365461415112948923143848793611922886617134044313952036753648695731691224692749158942588770317114645100624662494147482051607579263598699606618132733568959891494544827318588253459977707303695182476863680899213562431128467106156762639436211153028060532694749074809413490441219742446066746752649711220070929693289361654378635550264980436071629784007761610276715475698391176524733276429953428896206507858642489252156018480576025878187360551845047483746810662557503586582193960049248346273764351161854270414518669988010524790008580018293105530504937661278569618422847833090159142401140643665380127876119054668823342421100486672982002883265195793919310217813509750197570930899111903757845450985206132189169186168564096148457135630695218436049895766743237665254566050824707210910854722282044818571859474187935138852138745209126845230427122474791632224997959452866370730017615775239288165461537688601608284508828952053215603757356467863064627197459702807305995918266858587995785875612652048510037792437132821056123623110190693779685811720041816174625462010928239625649758458917982959400947897935250676833862642345489926484200384113745652219753310234102921345272475031689316524963640824415464936951449817812197748312693592888979027586406451432779017219720762697652542988755682689590174202229620798626417979972740535778381014361601450109006769823037408130080626590413956151755276611497311312458588782583166433380223062820906229165491550421320630468115189976169932893403372802671801349122104749051850402288464622864781268174179659264416604505254225809722737816956193828713557459697209641153234831223516590023182106986230768175354076625417515970277052299814706877300058699690424018437543444289715277073948184701628125550414911659913608377831688301571014959022675012324248028239963489081956840018729732826758186201818177033403949011644123141957924595353001768554308666620270610153329606730336277279467518151450028774940705913144123034449770501536735201367595368813073987070696908969001016599896927220439607117459706493540447417901827608445384869370487014233855445371338599902190845145327502099421065611110208613683196335860373711996368531343128344883759596105521627320298056132650952593051902061797182986805861025829965176743882608533225372997197620341725818582727427554897024233909976808070370724722366757924103530696564534270888355966786654026859998133549264495959441450782513611967964130961572721973866116822550309752294987984064604605625821082836601324465117156643126903723658599416328194362203504547834046358078780554965935165644465188138766360968437699912145248728509340550690745400052003052086796015740233591893670593399614814992254013320536912606859818071519030380938500191413714407432335966318628717519756528851434063501692198114765472284652860623205168251863519329437530090512242453338442122192943602337204639202616183188169387172795991845566598519350762806489774537124968093952627465147141865188841710284645237751553024949845001212521021657875769244184100383482835105314882743605163123907751127586851610465858531919389280808199430792571410743978468315416091662490795716796360735079652564029909029754258999899895777779662081871754086825798113766863525050531298916102081948340629253008478349274413108758721423155109144679550062655486772279155161070191875795925346786858694649980580344960079173005259998197614186852020113950951054628503877243860969837287854712128015326128334889414989246215837106536197982261830359102259246255444173654657006501128684703864552154457473808005692774872428252582336279153035047476276209549519140948741036295457072782922678656901137181102853372931778500340191341787740335593349473412631676245281549665623263695094635388949014008653998693229584683828112979542221929900931590155017449135709477884160771383015972228111629001869257133645660540907905049290935961077353827193589261154771315652103835566634053533955310148951976373261145216294307179579000229038536812695491041763560595074267066503747717981311925262777684833526545412954946900922063106882468653197246393556904117776959262350313340836453138805127343266858931193903274258089229655912031769134492650495535698298610311780361976380788419499701284234413638079010125464848347745526816503099581148996029420422931540065795296803816185846259711176450440821889166976280568425704946092059622042629816172202678475477555315587531621876364858282667661876778370065576728652197487390077977319714042940709630743858900721150432198064885202026730607465551045808586422425584674198133672829223860872421560729338797369544009751663700217615524899135521393194974448575752845594234785613980797193309898632765904478979471161004655137699642609475149706471448138660733971969232031664110479833623692697895030417531825501590857215044743187084150551754127004896832527915102997716713369659979039177713575751575589368490082200503806845328085892563151965000523122356392260800918168891085222720434881139109386183137142838876617993457569475618440931123064445829248951789558507939401340253662382231323542402272618585990966422207557492572330900300394234138882217750649385992416654894051440851326406670648611516960462373396092693487521005301100632758647598820380031377102911764024518069885106784031538325061996145735095366474301019074237606645789339753889780587199813389144066074316343014420003245340841494105448974244207949943818846907478307093867546526951302247076127358190507013338022768505743192003138364011217994477116797442361905699705070807398385288086041494397973714448250014931077306548173900826368800299925202157517173433673573651757532909585263793125957037283576736607573172863981647730889298024778074099973597406783757376615016991434430106957764429737360703621478890209323700668313290643763783432388692975519404776208438609807055938084085801161418591853521869397556924864381509832728376996320048076493560864163545775500416424118588208439289309183537796719031682085575602615407686030934401676417668808372533198423515831647420077165016392710894536051678337104412080972855810282020212983026185366152116560939407060016559827035770860106874146315489038029183797782729604696037521190424615661642708019438321726052239811671158626932402559281711824106412840596789420015145371283586429827920764796931016044396985829696136925410629863478661063910678554171171561455873189583713463018852540472295233290013226125599180414043229135303321574103965952817107290205042012525943224987688600585339182361530161835183625011420354453288643964482858231221715968578475677690375246086683264191168991450577813541376154512178258138899261232405785469810435932075548538788572133798869969006442426291469540689869736110305284283655792185743651635326407860464334661030099958849278768287904644309935984902369643347322979721793668633568038510654819677127884577074486834609352691313351080134536618240186094130417642804180738300517303320610182280268733807143951246018280873696310064587444228587193856382275078464486038517529032295908373283850508720393336541009835907580812515555756730658606381132391482323454560514857795952491090224294238802664261829417894243728081294578698769157350738868203239943177791276115821310017350150849204130295690382783847536735514365881512638610808194188736216458980111763314572361871085915785390913681668888813932121376847393162802738542561203709812853870628317835057752423319006842623570724735823018710383495483571122172235191331024945440100474864759096172338307983385427789657342100510910816989137748047184439766487426328919460806266703569718003758738682312155438026447297765959983768019206860603216243859936370906653691007143753055816072840758994574603083007403799381603919689275589272253995568717501486248251724120237830602966853370253961028144580289470311117023587383970861487709495660614414678189139435091984785738527822160032153673496104672641988027024565986553077464447548527981756803445883484848750027384357147323701446244927344444692983362484934699308895477228349043862765753776668811632442901300302902580314266270676461135433561913918503306120462996398281417959278177736825968093777703599330892548029332251552003108538262866084609021401426370661131074263295230888878033961605355548865794185581694023955247707799857575903523550029867536334567516423939055964153495577783305981366477087033692531230634030148794405526056613790203477282729617435892063338314723450274885805493273422662998216317658914051999010719943438073054987494142564870905129152136929562240474378841234247545984001739476488501614842842952436350302403780774532407927784954763305344387223223135544678677124149484322241814432765606701108481408016677175020791237225245398863171052188630707667896797129244381089773257259358788770708926546087174342726431158839666823495757473914533297632901125109024703577461291884344365374593416996446349203531203423430261808147321961070394525671008193017309442074648335001019935370360993454206504448707144982497039230666276317160098137389708951619229907921011861704024925443665833225135552614082120172688766464958263341096217863311904067618760680726962856185316472250482560112118232148871374707959598354705865760386288083736426175259042237093447841868241448304375718678557149777307410674989549791394679275238670177481407909546440487557007273249225998513906105210948080339788005438318618849863623103300798773860403674993358724921500226282433370164053811788313620269871090667917319107415643422597391720749147418735620172406307719295750358258382576079641600505162838562949302946845649758093366710116017062165320683789796447324227263846642327929263947098312674573258835698257545956470780935799903173738975209293671075908271049422569327331762559227426015877963869008991517728017778670034801514667695116985234933352097575886178676945919260680613130000826653877346613457668359780948210809348517171287448862557869900647988542133981664266461764294679051566993051985171127952206709965886651910718618076879530706680999343826411332250329061786917028640904316948302748970654906542317498459841183569264660716713613247602254651473721714754807319929294848676127707249222934755444557581237983032910852761044292445543617960413112269301551111659266752392948768444761295973972446860490513335282898187077152257451120041775672926806623617331191781431786012144408001660114186568110027675204343895995715600782463733779070781272870817585111785524995427677951908773731343430355033775375164896724460661714441053173564310086590176495758430030687932223105718548059582676185083225596270254228427872238930013382804755333987905398079051472829344583817479788466718052623229745849922742259336013358396347604678567171737631780059265710630236724785805663798317222572296329909109478567983439227591031780514682245185746208391040974273482605034239198105059795000501620484114684989208607348037226465404408583008450137386764473722506546211395331458706300895806112256652285537555256724677341325539266959754502600534204326772512004887762682916697590043681277742648380294666117190680900854509611770866925294368856167588514642786627176070134619898668254696354869893158614121850753737641861566599787084663492668527664873055815476142400896850234223296493589739953739163537936809188565635995317342751254539625689329016713346958030933790315325735637977423939728562970657906013495151160709093392202606071301951700495701208577717872362136528160055747243563615128527625260272963579036231065803440234858480279804409363143862694101933310592541871762889679057327297684504751972381303417563713305389796699791946045475147938376948519267382744043526851885840569675369248850076864212577509049583986493118664269409262595980096709179163717288863553705548396763495839954959318101889553293422411593572652667100376188023785085678492239196385055864740813461253966584340738794869375336560230958634469425774869628386755999098276719014845255239508541109514353748586798322812783908741722382871761538919579696006364714078438330367227634421775508783207389602347683664057211515955289121767565727599503589978140940643540388319816910599892109995685147666021070611667392149369526141231857512400289982085580449969357613786261328034177381856723402584843228286609301100370895580250409823951931679258336140758376461181570032825548317409456458311162219128991507785980014943600206460133192691806264141245683636672793692348234534153796046145849237543634566640846649043047832012062624184046847110162867823820090676011072873650070748153990408970112098066616067596046605249471995111543483072632309342205786783539740452200245601980799310447602675980189224013116815384423528308819777294369249873549967174439700744439263091192019114812269974508109733375058110191381370036790847534085138454905980879322379316207619103301600253153706866496345547658637622760004196768585653264257865612607962362603179365865196240720676142577798107078716883877585170929278838598905394722188197935402938696718021557995013700339174224766236259401251916397031020595220215146061350243876617037498673246592665794509394270576684328815385033203074347107886971977101377539475113942111392293456894600522964185795314496416048873721737874710314627918425430173998909872652175370827450502642262415907330040201576819898235985495373580336958422022646282031855824448007154406941834040663402051439423428758569866707184759445780392800348533635129373959997952812734499174973982802787665340614018334119318255593249171419692989728482361328605912731359099806107531694346895177700590584459110520474729208991752463827580846436197642359203959990171840743704862381811885968386277337277230412073243117384423514379334386231022585328623018120302466236499961967691120476067202027042498642095987206548258647361815583327109167378280983098256064653476474988897965168111850094087100096192166726886090809279854924842813904517456670952251332143548807329106998962130128609053725647628311451950058242197785685793108199527602615292033148387235501952801093693835409647950078605019243794135364065660008808763432513144313914030252050749537282636152593364491335338210178231980774443156961142001041399508151340772712608467926531177071931437345619550389207382584938785128564716242212448438475269919874728228591929060430662234325747988529416942548554549447215955097899420499720249866280869197478340023708011458238019116551219798866111090713762838450101516362672092530922079524254211812694894904286893370402790975251980943801089063657681517923382409247653155890760571246013858863691428255513911742600224762740984197456062242563935216145167027375593593454752325997254620164678439456523765867318554157086072560055691182207380370260390786375398463518605269571499562775248826493930091068645851838089403500061813230651547886827520888327045284188670521197377770045653730505772246909991080631082299901270481980769916016134041669791507741209117239519667965755734204817783724859498930285991991644816103403025543493095031046911625081287785546255162318112034550387214714742428852399419437058805324336841697391891465791833089581163755700450227708220558132152947571329987592480030094782830668042753824880161370271878726711907050299186562863267180483139464168406975914545294292922956322891369302358283444374580681628029058080574704338893126283413035078599751622327454453611875528632306213342731401159385082575360811249182676710457070798151908616910682171168231436837060692376080591519303095285421733921602840288933484004724673278455985966702191322355341390367013249139113606988662331640374164825829276713527116314801196420411965649391427555335346289994076092304355897561840343716448811504664734319511446684637753697921977043038416435116814271844798242060590152807774091612112541619180988567689335160451841612543693764004072074573865359675189313860339801346600616679219319956843911542123354253123980432499971102438376491351454816005013380778003544463752283322782125480730868377341302616506596731855968722587064368992230678789564368898971188158422312273882480052788566835091834976033656209412792909610573656013731219678858054449400775020728954913083734949568013022357662307272289615887624251563861242054209283194207661937530157197629499261431491588018846461399803003699878363415746675888388687634679306788020674753496577828017446769713450904650298426670558589686273396546514226723247784382690606785310199515399385276465277151174991843759810748136514453575024616224271641156798449601325676042302696609798688899003257950440144627268680869424327328604587889042196461347798152177688188390754340834651368192263721125523359899704875334691080642604668199306556269193871568694734979338791701290015815207847055250834659400398373973105372597195089812914128531245094442955974669873321265720623925518927203898762608620499060151150962450307381599747785711280643837327450120072214928343556220272546081830611233496724954363977138863674331732748132497550315000161722996824367632443067781161157982697613889029993790585998518065934296649164695105279202320056101319824883617558101823402956349046794585362545071354205485762865069182844693862681904127786231494603475344979034043237393903436580814876704503363138826940911999394875594755802481636528496048535115418298864658416301977181352443086172091063212689533193653410281435372481307573650888046039099135539301734167636531734085300129203582331604972659107366565899754581556627055320403332826034914930109924450867214638153018469311818554635298118829031969629466593231772861427067290598996029234644562599892925507187594594283383112691144050792842968696465417913405323411538584067210590455587222066569438344672134365812089862550869517897121227170922380072621243505445413712974415882107931856336928681935453357381083827714275511038449442740142722016006088686786643749099909129062658529687301254148237823294711377869339182591794379413155299964058900662948025541596712702865939240764503785772245325595796155879150902079333448801202973622060636999583555766313752972785644030533034334476527477114236047615796897185858127815708045954769639671736217149673073508860868659750954263299630797933418176267918768910129204275142131017247577604238112753207919747253447999214932819411563917925152831407024253830332519316075195157270011545000856860582482252663212632651964814051428539592941484083927431548770394332507423389686223889298161754715471491467095679011173053386528793041067639456765487993716943637452230214138399246874220759061491245076763239814531986688220594658320180077948124670192325209942655649881231619492353968034688968106623869332279598129645556623951361698378061775165095970585898351540532273067872013857136659907129333446709388005265755379557537773744036831426352130664834525202747037517553309395268531203949344146971517907905379122547112331879587227194298191571837636460000415225475907424908531675931245899014308150101733603972197386079329703556942253453509446011383602935276883497946507764460625562613206646684718954989323733533378994672471658268766310477196429982582591803224965202705422384052246482099367708618223663892759714635336074418338552023238827712599037921924326541566738939469772183034595700365458436662690829080452121493578061073306538349387504332880476633232314826424377386788874256902570515895705564569379259424208637858902726113416157556659080518292292036118637509011476911956524141015269913935016392857695491455274426360689777660311275846940090522158269836482143186615985210253678003424658139817108860190051354008236892695499793874735472756952174514826526957669041447198515533400207412503802011256064400298659332447731023783069243258705415111023744623518651280535309495418220365202317573155470139224215229963919019755768051804323466539698857848125370155439094262694521762452657506028173315865950619767077082565356951006792625106196519894840535890957246549735413466522341606246991119861303645772710834314707059517503205601296794897553583151306978921432442518168984705421963350531602557789784892649160561681860794406967558343756586507934946463827757630135020051612971394305951053865085667972281899273378816941767679381933356255297266008240465987820331006636809405829477432169160487539311872075355066503027013488071558122488030796526343852677871729237922586984006221635028477405258612943909904405157740587766459037252423289242748122610848538948788571986157448526613932035754909749965378329839567959159959161787412679121691949354768914666982439816444561365419600822884095717948860232795207348750423678574777692717298443317323439452448365044751124939575528036833445685608157751358830423723329315133913914342684021599684890456263078463910872766549719534014150077725372761147138064122084890089397406739498812471895503875143780620885601836769730496344079999767175109334638034591164067183520158925885865660188566321647531874239257303336219684805101023984406266284575558807140498991828975886183186408873888523505602756946182261046877685392389823813502941869104291932056322908409981704082126377336925208022499671365307656605785127719229528376773057019846790455673505391089870457607906689113522097553195298227355596650593184981435781235522507412431813305596781086587501087640643759723214451553529707704665067714814509875175752604338680237953010858639811340383843943421147232094166789768669131700231964880679343279280908510564282024144733264103332666636687738502388879758821263979292136911031424942760990353104826487977695844915504148758649583654593448778658338093292021296485152475561984588015195266899030006646142625683264649844794492954227782704750690767147992961806359934425301005377800668793230685287932542840633770545225778092159990988971670182747039878757215313197564172076508865742164680166215315107307666702714277460249635279533778447293081903253615018206422175436157147813736239349592101199209355206032968547053071861529095605459382079051401317174913002169257844838672478887504740922965940868000533222705457952266402522008317493130041510324926405468135573491472894145223048744851402139601154424679637240446315804308429215079311783850401255488194348351313689809387575803602415718936908593849974330176998643691946003812910001892346713320282883352522716408897429086154394488236961789171950529085322650798556640862299002966416577440959351767236858451740495138244905380670063088590452570817359550564997565787058696629968959661456605825283928793355127884021059419560183951556528365914754502892354501953318509659090935218301625547406996242046643271392272682938112853172102525942025312755908903189506950542713418977075586988060303067438411343810850063819266849573973355562775616377801553172283880146236885938124066498924241794450502378883065565182752264876279602058012278695592157502849761047294877379926927035879169268858750962851797830076590605023787538279698400504101179517256778609984348205708474831949624379898948014008609422908828792471488822261308383704981089307776350326501339364282577571912383478295189104110060801868981725029650737964482657072690690798709132715688841213497978179298884116062295305545901037083673324596188923699208603856980008876667296180062303177572825716341085945561462761636610278898403618733464996960247310979342061467061871972965520450096523208278988876096360389756714245064439029517715667943805246944629281902460961055210118118613940679202545305421200356935870404421002278155799974377963905981609800065915120559002770887779980614257325014299596092410740470885165316544000220768079096280704169615697480489183883838809921260783993612680931895812096353497772466219885447735603068261577117484239920815647417905389801791891020279893917418291576621863306639751954877461582307836743288056302452860951559724798935261653647314207739166090546927931702124533409328577762214906841254994227717259306365493475004010880990266903219559177220104373230280382851915045582573669424055418348406255008555845665735517588242221792432738944737469865691821733560157241043059990017485550390576660896815641142703276516402590590525060267020339655911804604145374724449278473212394039111694418518755255166619731294258678300868932781009124070660384655298835514835929097985567520510472958253077816388616478354060437033518409626820562257175332310586383302803512073490326534917380057904038369834101708732651844539702706494180368461980375169063192949025961490121312085400915709197906412154609406179653400442479424962319969370075619220347714375482581315414714283200348674338289729338477883510139597068667317831076421810435660376031098302720924860668222450874786750205465158548545473406376086569862611869593374439894510263323485201388643098861169080588293321402976999346517276885219086085272955818359702343578218053380544518287201858346311487839520027143633608283750403602440799965099800234653061258970276842803329175285500567929932849777017895747319012923974517664354720305751198561014039166405256894275672327719320273363448891494483788138631417821601218594043947281216909035911022992812897808077226795018121945009480030847153242146381305457172105328696550407478822525246881612649836619911443484839965053642596594088956111947528675403366156301640533605344459864613333537291971134421983323490054967287060922897789024555527255827866646244474869287504094993460110057675308978346192107108691787778712885621242824884185220611846372884582405504174578634475076129907738950325255845034393161428547796468988466596915331486544232569296852979591340350473106862681133970533717469969136628219118124185110049694747986772930549579360353513324204135017547786188406128082033090664971210527568705467099761455709981770409003078013806089483297121644459201955745692829670553143088232306970986082081288079100162848122410226766223714924940099967533808355103840187936907631656627628377927327147149900753655548582550857589676369716146632495020192979168886277880683684742080165782390099212378284629192163261666326724778617195653445733880702046896859357325653536550632557156551616487937717741644274475622211646035910872935368738603984096519729523396101952170006104199636997248160273005903346863026223237659193559869230626106795723710658815339832138930645615377916155968822332928070849458573904733174501725342804762749861613346195540393962436798236471525881856608509736417521505330965257181558395070836445635898722482904928909757025190902111559379866893749979255504770528702977639096469383904002620655452258731802025037003622124726860121074639615612536666288359207858485546028590467915880369067872816968812525120099965509416072188893821990255341378348187889862384142890133027926064757131168251335271846267325470573639915699634467013422800397958704251428746766016209092303254872317932909778711301996574550294189579619846930106382014837818246158928810848496119943486203621657337058635334550104717918877814212362019640678112391606517150004827236691162905296343112893660151927281960749674827841100963684864803491506945056895075549519410074080340357811617612366770166235075973712431202640760449900116294419148811729563033468228789888435076370856055045013862909813814004633802517107859547332208943047805024535334086882617647366707148198791594395287406918490664318882537147863832839632550629356579251111047836513179631376187101082396333140102770804920031593829111382342889244221117947702473216406766061157809791163614938571970233850895866854992847797458742499407306276209098121172688191266268828349246767648018854286725744791004685284642995816404145384130638932593905616813454226839711585869049795446498518335948299295124865973441818827830044506198499754046041936038104821739636010778003481218766712368402024155173667225488040831143542192447698397563970399140947579438075823589317229895321494429708949007429160957420122780401954709601277881813891039214319553400409306765743183773555358994383630536064965171476579602063534591516800518127082466941723902535772794330242723555280515577473832629554925674764051435402852773719238198425697947785768576978955045570999753170092598865953076541328622959566464848782787509078787590868353989381405727984771365581336369129327978773398713552534378602459221566287633542401008757504713394663873989473603463062387025005491088427385523752185576199560995001558878450518878235380285856441576704537902667106746059018992325171410769848741131177371671846969244933086760575803147505932111035804272732869097191040646491910230172807415794716285939886788603518069751854533296912758661728733666412039116150939151757536123873262583730064026105375360090198073922453396365372487015283760890611095828096988287994090551139760848374896066864970973011337771586082816380949597650835560298596602983072998487963919835442183268229016265973790522204441456027660902013424492362288427131652065154245140306628081017656974871464994307900261317858551824056002421951318233998392424795337912057925637825946048550944788267539114617363213174678154496667308234269771255293529857728319338611772688244119488677349323061515619386205532208412760913197806575755232647798387911288142814206168523112715190195765464508123369150499602910303757859658008229463897682846507887231492120318318122300484741402446594893948281746630633147929566660764716591390407214223950719692542496033507778110170188527404199222060572597660001691740996600423521405224997490681540280126703186126266213296566717113649675333163850458388477412633590959639352733895304829964000587105791915876188520243313742797009999427116698166287499516658142976346549385479875636220423077917270266268887336066105355012235598380053623020671983530256163536506815257168417335141009106086773743448996816848472091718225861199588197285888394525221792277446475135157683550194208395666233525919631832068000894285112702609134449086389777510494511583103467688976394228034565493090989060961906508943784442279301659217996517837059040024750565355601625168559052062001101678395107596965662505436812010160876398617904958191713163443062292728987762843738404954430037412968849037442713479398134579038259809634430126752338896242912880638832251642944112693576880353492172601078500199464346546494961674597861239096602332330997346257549164098424077425790899133712435830178081964565462288091974796025720879278488899817276279316513192488782427483935509363946991648410736329934468650111043778063878300047941036297093183823154748981591824900389567506063239658938205786132671709336870773534463871836267934186107426927469844048245841298681276392976802562322949655827517499045498330247767166585371229180457063755009409181948915272318283120708671259676537138485825097172088819487955934268929833252648099909060014125053553472284910951197535469536015129903624096401016902315295855276773415496580982823587024742263286293311775079433550611707597215036623937914366909558585275136113731743079375454878174443061018875424040700075859190381527537027768085365445196340918306326501426778737500516391465477054808088679803326196100133941302070666810071691078353368129819517034601748216890745822922068011840333243173001372030088313106689961036335498543039971802916718063285947361516744388179063328122326949591785372828723711475117902215940394469547403332462409986197125082935895842413571260905695700491930884452650073278187500081900022097950006496296260311598626547974174157770912755121498581201237255085183539652739595065671356004606691535198940834297340549019599623488945514697432912690280242940150052673871279014920823621243806204477166299372532466699930121165932934562899959927037266535694509612050675955520519181080631504346248566278257563970917657959424586137417585133087416519327308885863979702180859586245491347630599093634227505947208610790499031848713673869350070198514666939580032425969960274275347597466020253529940196895191123644530688076345439699933398497896441892691814054107828237122218646448456409244059795613452992440783075054063885685167672601783088507839226084338879212670462516128825171951421524877973384258471732922448767011316582701165889714993920872388574267711257438504281953373225315093912485353511677392079441098354543477687183570299161668607447808851485190810012410840851391618315585445817212342575771000554747084533130091557609411773619275689428220523141468122554896502493784924489515200580411450051737044064883012788791494402296894164091953470082398415320974465880150968789134963953378101056425010570897192940798643474573155325702293576938476715824280653188642608530105126298342672894598338982969501761093886985551048852051124821616950539078045365245798770831363901936851375066469320979883526083330143100840402717448832605764091333803726963110278421934716866924844534841890470907525432108121894611048692390968092080062568526136224484231089876348810024465591986796878643302092948217963883738052510160756295177223551699955714592204680823712250530251913867581622980057843619332880871535017687185231311439111605526960015345268028333932326117356910908076317314349144370266077374253164052096061251105386865364869655343482863753389127169375673900741363251495430442974148594253549737438886424010226666795811892703598640977986765431713422433518015453320290815724633684247991889932045528045266138663761245871038213156043693572966497211897707828176335766438200695260953760113200433202914528685773507403809932372462430397804441148449881653634225410191593537702960908367097327119778784080315178265369270071979625396592499204081638459733564631988535537022780172654632596473956907638124248712517811611634248491958941161363162474480205575742894529515297197542067238704443439883142700978227978019033534596115745837789914068601943849963971298239771626487917093092821159665653280526697572626587699224219573706668511996190244868347282621914675981807035548811125869228639524636851256695595140806426246166017204421653320940157737292080008125777817672965371332809428958636279532214244520118889925305534513896069723631323094327350380431054811486475826089397533618594062652509637200477646561457462998895206243246247122043193512276849969428227380803709004197983954787966859276185660116669106693375746363097270701780277189988340148688414322549831123039509472021179264556949083348822051927504951207804368509915304129599299488572668836334928488186080170082351109906304739210448827265376952370388192669799821079159864946187451667608191574926963665742493050141406483562144173414244573682009315144648708752469718688941965148207535368906311529405185323922875396416922949158647363839018779814526592916100036067274947019638553032347203560851320271196963427194090053560336970523473462454778003821561716460463597535474015659650943390516719281992093072259627514002221707448015190483795547168336436067644904273697856551604464077984802908145253397479276283596796075210767769061073100654637889920115822223056198811277037711203203700901162102301282078619482860193151642879954813565643055119521708914416576537788398106904010525262855839521421614456073115377508890864484445890257013157744250576022169855600095804700336350601468003222041811250728485966157858552308865457873730034318814245707344432107559561119677342280759955822134253584592164780050648872981756724512197484718553463598666802904723738348523299604216954262725560106589719154990130123780443799816099766538000986999522980533336245973802221727808527677269315050185481659111486431162307992973458195564878021313807776911891223247747366582812277941325005568153631739135722594206184956981328207359059081318004366138408629494717893029542174121172545318925401921692540749450763420268770122926671977779626100098607152007301619292769010855320551019711828266417706468732381713002427011371702187407785196324890807533269450202833406880061767056593285680889113552852383123543508182855732649798422830284592315368351845127513857680420378488452631600696900933638725501220376238158148320260380849000820287511429405584517260670692202680276316137781585707190735769865853007158153405466670088232267659113784116071170161194655472142142220993093525170607974489632945897304152654250423891162758657666724513634916955992844336444539660763324356006543861352943863869618984880113653361767084221522719077713232460950010463058149595444786775173354818607843468295851554069943330483254929200411003189093549787382873476612132437555956492692960867561843246518650223416565529856320604998868628047015362050129804359950877639227318758106031112769379301303437919272599309000549541494529023378662743512684605594554565765807865697759795256184861858182318001520912249654849290444858980783272265904942717540589040988922710164263914074038944967124168591412774545398037460106349252440278615645203685626416523484358556682681813336653430643248967131611355544615083254198553288926345984003855757488393993565654220653623625923338997466729837512014268252776884878360029158039709698395198875176297509629538294904028123899796616959969274686437645902248070327057567039764408458658473075510239126873956755676749310336614659878520618878328156054404920915527383831615808044329002195315366963472176535954272972525197375273974317543147754112588443734224400660676443436451731273163542866676921638415909386650384110135594657522731693206479148089590357834372479716515184537501964106735764914119153761348727037660999627709440248246092373513260625189845274935395790647575340948718209139630070812781688512862253811303965037830342088118863187170925404440330441086533475433472061794474162137914447176374415692656355629622513265417577641757017385520833633057057018852712794947049448294471958513303149640863603358162919279415679693169774610592934596670695718771886045625494128907008302902534564971277707074451393796487797205363260044954779610511507594902476006122458718069564348155027254230546333291518748077808816665869940685155531961350282760603644884194842769517583094303647778310458699104669340608641179806643714484402478653071150400146989287187187150506974091029769408050273301000359546640470396119680081896409310243957358829718147317489658547958197621903492476951328315411422331111435412026960261386126600072751040637463975170176048768787873885543754840374885905227435094862074859543051975681249213070380971057020435758335516307752119826739807838348907561838347538393182512205777275700165657615561929444337842010257031462640352243166132320767135140456036540890342133756667972735924240160854072219442595195480895598851450718629635335479937045695041305154516545690306798812128032128734285467547546631048202195967227073191712602510316182585348825537240219967796645836308874302912854507062331985696218708894692927831218657376167607935900079945185449633317788158217224116091703299435806008551820464299210178205361619798206922901976188998676455652132010186301460345381835276178956095123652509486922127973068910944186085022305266067632866112568136115421997103616288853762520144449936065717131265474398693743983602490487711983531291221708547005692056656622483473131196339009897296088671019971681232513028011070328743972701392193002508893599148717486488931327712168029343078180609149992420022174811837218134748910693691680485549482280393696494523601648071772963139218235792008998231374836155406024550683371568040812362997685726174230563730499839629728537812602618133419315969136774761754725233501799837368920429384731943949990979173527526698354142070591933109017315981524542061408381405145822037222033137800935048659428528382018109566257599476958086215922462082876048892694971209947852795827338361269431881937399493166090307312451933691045241954435190936734588459829843775464836323560522035628541954166901785160841182827124582946415201789463904179478038139122485371662557549019639377397024631706191770631192266481719621572431922430885141161741217687373036209843488357966447660059033433721429818036078440047198758565417175668664992448884737759296823105683382572315628330849180943949660160533389200809414936635588464309740099733567211529105322325987666212241835656629958019071689963636114262669227310924820840150595456754912317238459092670796120180814878624929943762084287131154782805669466510442952666783422545771381439400143328367754829967615626011588717712340182571277470510841988316967417376920791458442563660680639836375000487132582352302626826018434280971369364351929528301323131933805155395472236721504329317490484663361706463415434066118263625905489482815465699252338948800124252994024455085259978251510784862754430483461418318238717310329260771216163543398505555936503570661197379039587877540292520045383137515849526008285298998534183095386449356823311800833757303331605133600642224207739914874372862982567110419266376538277561950439580513200679782351715452307339340978111377073437863452701957605519789537855969510300840400316184421132319726284012885530519932206285413992579990312678328049023805501524700353728312944576432738098267375763111323509093059105721336255369107379854315606900716086316321276674077931042803708124147964407559253976597853903336777810567856693905170026011344784646608916584180980921835780924453046843037490454116862808772979295855657631664969201898973887574457666392100280801357729297224423548202912117880167388200672563703765284051309476093164850620171405255534329682891277149386559179027759188851562454072182272061218689466688977002896925650876894458614074140279914859155207092734128162841786718665552188422106638327028387137378789486456693545013899143539982326272134285882792644152492311192548383444323097426642693724008422779631509810482975617445863469840853402212688878289121824762382397170540273896986750900778989646616090401834329005546353534375621546719964331187814426971144434461737554754422028471329548197307456645797895675699823193615082534990448316974792689613996736399928333631858055820571170428197007518808416393500935728630604050495558998595832648563251366522160612664648361839141710487083731161720756547612152805544138818126079618517443426490861361925728422291383305052299153705307724276766692999237230182620242633692468615721436341267906850048182337387611015402733071742422391522065168698581768826589221885459607025744174687420578728627159690834111229495570541217266041253769230191935456083489766900464298560399836293917275126469217660322813795451864964880613950562445930596845731072801272104183569229122751656282140754057676834750168759524890319281249651680794277904378887355889573337405543547372921197987247164600873629559088873141123730740715488726385160768727467020156149380398835616626322580707569443315767410982713836505780599537204975262135317108628311405480722642335523131195498750500890759736251985198706434871834328426231967985169422730190707846536401174702801444056380869675239728438428824977828176220092271365852529828531551202363799285365081496070302694522911441008059322453886855669044020786349258207088361670763398286236428428948619443784355969897481783838394199767814909579125798943379746808679332667171897893305199570655677262217304790380998029703101338563497253828382520044353270520008752916572925107131113206018870263802425689813687154542236257894918738934629553275348064778429756763944527738960066126464359717421388200807618839327636342495892009694374180561951235753825649689171884228878015986849028990683802776676687034037483618913995946976471851206410097563229236230921594776596166539509187627138742287055886678914315906070450929541114453608761457980687858025230402228828389896279747394759339008260309175581879955667495814904827834607118112543327092512966849004656555777348914089446952102860038155184954651662722565796382114846702796951166736088015578860893473146554591653296190036688293220484131340814847134354191663141873258331350862551962685314056868635272387949726698292202329618203509879009335273748118688016012690955816327842499574978980346634870324453056097397249395100252132540133796395439935151850465374623813301500362599437302090279741557853408206940655598904003860436658592151712993212197896058837031612908393746845093101294311322191480781967172857412497238395814844760230277075645387718580963476703328038022882721001342440185165433473838259785596488018658865671857336290195902872524018001468879459812568054875175799787723101157527734597004016673467417469857379945979066855753290316375416583878340128586205697718750458034221660615494570757605859206960427937553222718975420971759161573469656430884520406664040477681779479197818664398728437862869654528616299619176286823711925685552254599503955279479977159549531791670150972560625359839650139075067065341498554562331869627651045282554353131018755642736027752172294238352846766428824114639825941248211059373477126543087009007414903008446193594506216739734829177754174791435561159362567590584674926864187941342525653611330806708051949676455466056983899725504903201853859779092860512278034943639126888966992571485921281372785411944706645308056302836570499025584322015678517371714362946190345449588787607907415564502178468163590240913042093988155368824277572883529101780024702038316089807032031860330352694433725796146221874194249668538793500762564580282737501163456248421837090618714812865165481739205476441555959186741245844088245613274913160596476879878725170382919655175697620007627044224117820443407175746170515314579978853705108860391822857599342925376806341553114710943142160069303146343545792607754207408563216214664967975114090544822846990624262329709653055386700614757427512722955727474462703449886811665422716956494396998192435753748112691349167145915824243542102317839870021060070598250924072724939278014064044227125486460124266188695054065986865663313731746320333770466928300008938508500253448921755547960646216920664785773106352467752949639463700907468272493504674722402176036702339878128157124427789091080719997729789833862967043056068263715918490548564579637382731705127578239089437704792675881649200609875842273875115399804782919986165846990258236315109732650129991133890148420148218331936378656061231833703252160220800878672248062369541487460302573322070848422060253787108776956057418845036013104696337917571034567767523275165478300363147187587408723444139229375686706559324222353827065016346404682810924434453351422162237087878791944288277377469051581555376281493650902979206853514875278237303166266038726006038029023366278076792886680944118494825319007555914587730229307838479120954165408412116390830768980261058299031331378891521042256701973837717384169095213948763317879826007869897538045126447673770532794870499989849893987978566590179977326006935989962912870317257798044162712757537134433166374454565810944512584772294295416038444675115472529183919798338937427630198817613061582383954187705949120875540216080508735529907263776518273700829336019846670920483523766658845576336352063583305476994293965170613748074787489429586059335763390865280796994595768331159780072990029741908563258905018640799296748057830278244528167626379214576223937448891202458132212506924978743934136686878229364158104469461600668497140367043485234128205713186844724755788158673339585501671234094475339362663732756665766266432008371370806574876676370914594508869748648294428593932617372080074154809869302864846111494725730870922252022748986664359752247681621548054628311534840685964769313053447446801618822984909463754652809803497952588105014749678588302109181456307968294212240499112430587493519924594982944662489928082348874559174942822467889625119046805960220632858995603156977481459727044414704259180093018479183135739518905422513626122940359971270572836739505209167561818399752827975557619679444675115877376475277824881117311884942844327377076978984710109052292135409409329318937869038816271941545309024863079113558915726108088108162414221300400975579435176867718244636022024481936772381079518840028153168748694972682669482952890324406786359160172743427901799290064381548698188904162590288266120084340615056687779396159744538043354131458777980632088714972587155627295251361583896808069546435363789115789818421113773120166137481346332044874869456783418884687950717129807050759702935284547304930756358279153527320396825700886614246066762302481955089904517493350307257848030540023440751938212379414911415869019428987141331901909464075454906660430797545821275677614442510422052799473159892944097428511749150849374910395182154029318343260671301666277449606016477985116364034924204604296778499397990544438698137594157067952825648283656381805188318902692356916449629435723898805884220283070272938478088590183216024244032304990298267524424100580420069180209740919281866141753322709903266803622064089235137304411583419698278821098482160182930190026360370149114902641403844931750442219822390242599453418520367702991049104439489415115917739343178503175871515599098098586035500611808298981328036547171463686022556917231883980200388499998720396313538728318069170491764444612063507375764670200167154798734360910662930316112353820834502136499012586295998338773728541110191110092263583826553891732462068531212379294475296270832380939163717897572318542654709137080095498440999685996229895159368246948396119038835028839275891834216714178064633184595251446223546739997020387064654161079566728860268673143045447361339590254616548473205293361416758787433856978024319077703655423856083854600432912419774879052020199510114414806925590293599991015678201584245194664389106756859786896887035209029184061452187442641261597508773107508895052282310107711447035089367562681607148591041466285099324445148519902600673339013057834763791079201797492713629910624886080600225596496926487291007482831896549524955917877426861412189213663254676388716676794758549622828555416977323880742587936948208124277691319422371360717788261069301031998187588684214873644174360498679255164381285287702087861196262775395826114238875028680947168959661513466304357475677851752230696385783770105330368615265911468412111491896818075586151635111716694296174400652398344938300219209165182597186044041621868105067880295363013215600501116765778132975905348174864915539506193286611894586029240522684965548130415330562502289515680405722177356976800430299500905891298605632064803160321929644074687767398865050539413092263015981310689374328059326502586259386049891524676387118337387224356784301299095395152620940902922591114769111337320085149240467205131519921200657181063484228831329220623487243032235820675489892172750531402242342345640425363738052015763517260158389002710479616337453081077280146679252558024014036611255626569394271852499043778570126501637049925672795164536997013726226369038372173521030359727163310727159924508128383009048474554015405041368762279954538407292124101486155511801738065226450407454780694289612795083576765249820905249471431118518695721583286116610973068163495951268486892554524284899339368730746049686915835839480479797555069671617450478379212941709245013895591650418036230392555640025605350585529274206200145296673387083459427841844731148498483472498496118745565727742958536375033023549621822128344028965823494289642910341494028058558400009225651228733688957134904740309560992854275927690623770786411312638799033497753175814172697731111561638700962524944104712952154453434959244583535781194304255387810763702659513910625905716112838253391074361291231137365663099612071498576821244068625170329717547994258207261062636098371660993757934539827431792514379226232159249856987705282558366119015305117007998583972509959217810429999217606217974771116605738556943284273799921173564451271839914604486752783812725092868433576136963276568459608481716940994800008756497788814289485673290032162373471258955922184272988544732910287922686092204830527316589813874189752777147301261469931091355635753289107972724992624596051128340697381657049213250901515869835862520635419435180005212665202098828934701132351840002755697298030859750418319058419725130118215192108090065134410560389038737920633851637191875730482786165846143221676672728704938075806723425794466149452240377084497900253930017398254657965567057076465448334933151965178821492102905086368566152851603847712996432420724602144314289074215580280884447796859851735149082700287257103131899246844610713884517217809508764809046559371137554092541062290941458957865990791438065339217106311729952170629314987423616053098888306018931033420969121017639377818248024634708482316141976262412200576664135275950821405013119717873569952102426086193835792330906301148983294333536693331851755976672400044788721949111271261905443882943470034445289608897618334336871528816030445857648303501910769101103766973659634221734807913374274282718072478399471700133581458388412846538670428811682739367407009995854413706190222717896482189449642476816382122042390245506187904699334750050329799962145008619304496682064713489283427101740214251214555082561111446915587581585289420427710511427943022939775128826807583774840654378683257318502857118241289024037827863371978198047203624026873791778688339158209404845787718661224280272852939827535751630968600868532757700334948077139518656927352177788211994510268686733290689253379035762539495923447269020431983879700942948515192690822109653354846926303001907193319652843132425134278542281647095465718100181765597677986566706678834080804515654416208391471898676868191986348995733766135224316491123122629597800924707952708035350698886072824033515596329982733647224257707049582647786107104449982200003397621915581153746743518874979613821148787852556576717800175487850354573037012860707687501734234138799066116508630764445476684139160447418601566069940241656842046526069328700523993364247957595207848596081518179163977034723228145456849249845024073671445939915023965625185498211220519620843342927260591718863124267158488202277920792942920907930570404016744030518990792008180480981788771159244173174671443770779644063272301357241829407526177425608140775655228025036573667675112625893907600008391903747626986850947068772600076851992990595248630452367108508814802578358492048543712712014678927754888957841706714926370445485971375501326020505909575206946713954789962322078490243482218119033077426382138882950386492470898621254122924872546583597465429298356074975980083512285653600593387285427573514917199212436660224651098695196028435780452892304605596567023912420547409378546958833168766403522920182530528385918385691658934793033407380317095450422983714401172378437832009027175545349650044983920843948286085720948880776651101925306770201603869970109631583437452730046268518874027881073202332343226273568776212378028692038149038513073976780831961891486121317144113509014919369944236537178256999707279140619246597324337666786769219835376267985955788616697070077698274189356864924429905506533351905576740097513116439714111162418332547167654528975279678840380966372349194970000588872985815474579060501062282069452291674954551317583225642563962918539080303691547477739042813822318922995058911279726831413905433722190300067906160197586850028743331422846192043456531510085216272163573741660483088306469124024463024848700651668764962640969894308604803394949630740916554460316897691581532007117064066556468637771674568293347876329206809542892913951208392832718507715543775950408195685951069844266519936654461526732643514984429067036860005223774567697950573737889700261764800874429665815502341707884740359367146536158592679477135562681315153684851511972565290075860071621230652577923107721341143635100729258562380118030477066260165059333921511553761332572135972244181758159787185836628370527303396234931886452327150700477941057752933246795725178101372684549989327164390297614597062127400575301891245474455729913732016809515697945050658014913526160254299114047821731658802493788886383504893406070207230177910603860431975498010943067946860491393367107124926027825727752179419464729875547175015972491079871644111135429650256748740725821350758958458901246094657522978817415056238901644953700120847788723185875600127675507447611140004643188074041073018273377262197735073847657396049966517311824701812710917603564960150087296183950200909844373787270215946948564481305116537279338334039784797793950548410044206239467050905173067044089465966194956281373376566854621547614031492085073845567324874870016674463280471086392490968218829625310014902942634871271331224782584276894121749119103894291652743662869599231225130413068328146733998620331161731946702720943233034545056362235175157967301092518516561509007266194851392705833713006215418573582917866391112502228901061906756284408167025777225472635433376413323296658527119920496875520080121610352506961641388388165409572391909834717866634472098830293205941801033837183693237163348985146364995387753544068583215495142165095108908148716756979721638385710603667208409688107160902943788325977723181185619763464056803032456550652386932031194536021699573149573222856162219540579986447613664523493752270728781280201140930776604987380991670707826217870151131020657474866514896720018762263168985804421592685196533017609095030092970977711167887997010027579219504267039729058750142911311558150720885326551773026246000535179509773092711984348554517149295146997518484376152599214146881226990807665599436341053128853917727866281790375216614148933406132399822335096014536415106971480797332026107276116464465537792747607388478863852633243462730826570574439775825235395549040414028177016095390167548931340769971111900361853807885963731928495527089556787165588957004591708272728735670127601122233333387790001669124841965725722190679097687990989672911347466609704009382376400157713448042272574671359879768618742806639010917679456071049661196184325287072004681232351963886811605491305855247302640943540194215433684371842757803190386468695837349896759654460331651541486026080028218639865607498511514843180646001554807797064213767129127191259946582926197312385921516880509537813747304028612596923947401083513967666826444235500154840015806434740666867280049720039215180180622736653253240122946586731886453353456489093838542063823121067109721796061013486020864278504024195117248754427011217186163812045465854550530699983293460148705644636651325838936677311319931084634181463451287532300907848147426262180824618848801269224771259367407266195762406682419536125378708429230801906755727861068063139352256226360940978638838327894316297350549008668537726447616426112884074044077254606900419271472628795414791501209399205266059152554143862437694677472742968104495765393273474972181559416651880567270746140594034703250364044107028488875766220780748297762452669574642012889190193548467670167798322956438403783934860009282420582291261467922612460194165333891584007795358955375978544953940709408161799375612029671979600044622805904222876167577189142260539019477174769371193155899248982457615718175884524017825177297256634076272630578768151639225259237560979612284220793997058910978532154304716724284215731665762576311472523278067834848150269417517562334051301959191166717924770091902582446669743908288081517236101779671079020822771583283324165341197101960723187312252298317925630299290710505488412536084489701832140726095764997565027467814184760969000720902435343399616105104401679470058418771393495347118661593262489186152556360158397000617560298591842927240060348112535391053983731978647115935290696474003706490055075994280912672065731749966676193928233456584873719074196381874186994053743542151412693966861585920495851066771529537234343164793648377537437958604023189007145822827431622871697982615058080302292285681078859850197750536474226379166210894563012508327224985779358142834382546343429401925355033615436976598580138699261643036430193929661418212204584672857155859935014416883795677718315034614470883470542054465891824637819981206371211776863870768254006342819404294937278218565613287009383605027327280156021733760994758211845954771452787605918260753461917095011897244387465530381033973271176123479167676376744995691958880782531597193866622612242699599926947774985509257796500816765299217441858946979263456927691381168228369048710601034626250819774200344081889327619610187259786691295938441677900163550712032887320175428811781340588817812480816031869692098840625321842887390309127292927739399904325987599652223325407853562046285553340626652062448936431680493175501635886949373408863273318553518009781641981771702517961317452877309726225259401172410687716304731396231368508920522618298307214271958513838831644517236019874584176065386559378740542271420300238850625978345285159550469683039904321364393859044107208053672644931097958376744838693959547837275155904578450052479980582208554498700369086181080593072665099836314851221694187404671629695168081081689317621164463384949273160867910948495354759555982393530719090512589147123933269511729585635961629467002668129951594723887227143941939751685976427709535916617982115206694017555649365443201320799740388528778897926187402708536247003230729298230762654212840568039782964637220326344351212162166771137330464032103432748475652328277590692323018348989644163550759443663284582872214178875331669691366507309264491219584286875953598050990749560331641335599250391190306526280350665038316217616370984058026646848755585248651518301076003179547645200934626034908973952152534984866252765548299196511391132311062098642060507160440356988408772730764962792029700045511676206529629571248100852591372515736860139423501086946818949134709074890595608503326306893402514626366887312246850015993740555564718063087208478395195075115895086893240742335684270132734145102101785708943682459863488864430920988244088096998652396819387657649826143702265926814909841007118137597810660284372354462941815910202021687157620480813965194366760501625675564277695857230367472735179723893398181154532745021469070727524126533061304521192945518402348931492724394987994348725135815130037271587981756191430485122421702967328180851327526375975486887028267017271742858360420994276333313093700354746258219826655658376067273097833407831295609925542712630248436648346714465344109743606855820912023389386761480377786319044981090570183820575645133090593661075146046778173969098872493623930762389970953268151222046995585457053388691114149919098292833781034473665271791402599090943099859899872738208379586567021690955362344576541584572633288304635979229710640195821544838072316083462266324413123896830498766459768595160368521067397924772173062574666664522587743812903043302227928574606118303465428663369760871609732685702731704685741495990414359180102706034126925067718310806255739974388600463659218954364605703696916598407966217155052322448932526373435310190428834008474575038496436122359516909307146149491284744062024461583540948351531385116407807529521952760729290332812907107625486869630638751882590501081345892103000556192794402615354091853628684476516175826080743188084670340993732121878282935864370237182143777201265786015120774488614997725219648848420319765662417447894512197330614136394683313030912789816496053172175319384647954847952186608171131684981618148578916536297194836015962557435433756679868329578364733049680409018805897929746282419293283204690798320845390667244693258118269382943753809816443996608928247044617116976455989436562452447909909825932871747388690485799418890887695730861876691535154793657853277826746154403422481150242608682272771650492532151194029492386940898547874435742434112735129055272063300619178948845500642752827634372882664402009518123448518563258331848300715068734791527867293140226166965431619457596632825543213104016793552063643402340660363679001547747031263479250603150993600736689875283423852635768712548152926815974188902320274314205137982161745588669909690314451294226438142367455996746103863655065956367383602839619053032644225033016708781570669861561092380268681917285803709887932092430663207553867877893059202298095530537565892574540595864476207919135968327990194282150615336040845032580225278887801347111786602580771748057546049187448048741539343708087745060874161426626025851188835404822073468179822880723683139399513934972295369608672161938569292674725859129488149128817567327133123471243017910812402210617388485985761334438850812596573864424403369479686097463107399737341843803243674893647285440405024001734513592851308438198254813102364783115413375073547679925093911373552997991424892354973795189445907196704870289934590030055855783173070272292899816570943707239722042181287889627061458179288607163910764286132009709854853538332988655017219930779248883222437786922007576939478109045882193210739989641489079663191220344399141364834083723006323114177832682130202552818105449188395560969908027387662023410600151432351202915546431748211451584851185908590014394399963911609427954112417100244156267165818210300865658377082432756372580109083814697546017467554858418386453232771466740714248797122332502243201354342634770610625200508668473471706083410976147827931830693400151608318400306009816280978859337832487615110459124658798475605130460272717448701580711069405151877831497489743397589831345929213808881099556752050775801919579773305850561114981216073999519375856052029719762008352829021164847249790277446831757829790239114824826507243596744531544419804825422063477016291148162953622076813586642702024314285472018916979135321037600351129981472976890618100220595132476084686098161531570337261167498697031464386799133240552830697285762813488709974175320318878652050303012329696571473552789311507805389740531839626497608659402635519447776939247178006977579862714399771487779155665530844945801245265536664316680511171750611154093328538411356939211686765950327555629655425133626328042395812974175594490788455575560475482219001407428600596703820690461068381579476478705075697283395019243979866167346663630460898632464874403968651856925281906184474149293279786746145339114411734948177282913885391598805175644819763401044002774958614183738867570351786161212671227745653735725298430265850876529265122780711354121813030802852276950076825487804965277671509480558582202728553380171104412164067359837331357370817556190237536648772471029139280550554882609711042589097777181679622298801318982693596834980487744078738021869505801627110294282452066778243729674420290624947093032407500576856318307273496204354235225045043341585169720797008015259725810704698748066532307741382669506694300471669104763017458205845851127347239310612040574177714067123593422211583351631343135822260520521879410484430322599759709009359320486155493487493797259511112773635424782051751481613765245351343660860359808231771029294431534811297874164271128523955384119784881376856698242953538226152760343990152333409583780097123532142274473755173850133804264158952529277253084971276144596913444738421341259323920717467021180356220441332967490139486715264735734140690928433430756960875030356434105818961300277516394061878958689655463603087399965541086576837326633896434120376022048378485832224707229961114337678669909568879407429164122057773240888959528776768391748298800217447076054265198652469671943592968456300399549890619348679362233235563026919344078273235064069590594853758262947673244277993802615744997098163750565465727235521346802772168010280094052127496096921925475664121175592674113388153586185556343163698828439273583558048790397683962688868846989489147987724919074652024505140861586338065144378177967630088222430040983261389148165140350095994585960931938374974679021219134204087902366926514221003989440703982733323318834418219806569480140238787924526690197194768454512960837041692773027967438964304919358554292958945824317086646576422149537096812541988260095799508728858515737852539068488311941392757366165092924927112527487015323647728284360694278874387514670453803588018681190284834741342829286438779388692724370186770420067714761891525107330579289998471678603623025414831550016630039027304940307922656758252164933402816518146212066013729541333711648997210951240223605535425476860390125454345759242546942169591288530766091845055260692650489485250106605942178082954400026190866994171322001479629963857195134314369570018989411193357682770433282261701767778084350161106186164050309983242209018128107261321607458235268356705209103615528545683065734048461179183528468078716189491800517706051449517507360898639533169699647060557559009230516965245191997124783284548401684604488441449432938543089677370008144363761490585637160529785851767678555231077547975117303232051300563414922232851532106022786542377006547882835681542477090707810066398519479579519280206189844406358968124519998924387960067602012348891772614507356876579915873964218333671245574152500528721516057570793275078175687130123312312632496618078672998174113855773540232560926051945702502805976940804183327441625912087585218819023359460471568371694497669796705275274979695513874683168384318890499752787920026580512289578942372471267015005072336186704824631293434267112910037927652902367444225190242748489937013779941917458596887751402042182023995010020092099189186604343662994040226377973300660158544656416123133859447544774515730127511447089461124844864214387766572954789415100478752081383172669140238124093848205843443774353093068421673213436902529835250458121736124523925734426103638352341415557646424767587221911685337327412556315620347479879149804770318742127864362621839608799127113632797285083846329957821432113175753249301568024918286304418531952819269955085805164431132314851342843563600153464449231345498728627260560589465941416798728082098540883693299867382151154702777644004460133491169586495664895266943202108610764681745253054305964781321418713664214361563680625041674304165484447075846537360416709291118658118658437338066915953448926673542197326515762890172541310718916118915234552689180394975015659338519377265428375703105751966594144307829165420065543106417605694746453475120745623415641929134040400190267293442448844503428490291074961032695241698953745300880190255781544741905824170455039938109051341983464438501137632757542884844273569453441850368744004894859925948056971055628903892741566994791957008573615638323041661929880288589413254251757694288028716084287968525029478176204173587334648326584475657683123397808173095588090209413924283813749803162559949539365143572824321061619672612579158590040032298532522971189937383490494082981639250207892611971941938086252064287433800007288476762280932628931374169185310564873169229191003880367273172436785471947003510363380512680179923201386179724717037021140087464737724744658850388853097563550321463895345740253453215625611697277900980873245293067744693528170616017720941509656184340843366890303525042975019238459518817738027309562187952895644156108290086974732185621237572174768484075129845150693488157097152703615938840603680671789374470103954426048137095237033867603795979596641753435045120141709412498479209345732738543138325337202719184761738801655996941880144263852496001880691855870951585236093322316035349052578900607248329297528333936142703962098517203858162396354924061422046406159459126827012123949751440287745921436662973788992992218174912111868926197391651207858797916596959257094531589685661400304796336205454350363129216355273939535981256413323777501949285391951562442850131837579593715595319379454850013526164390629421219189644933806239681411523613330367462806650561934530992204129789772720721424863281587907825145153683604285522353858594342931133828042390630659670520243678674101098549992883380727000878596233476932195946834202544758403196123971914461756098754017069387461161097361319911302680001085791227228036780398022892814275621693076234116453091100733939776784973663605566346968068861739508735198259747213673450797383805645193655696826769702154954321744195048552476564736085843474927155209441061849893457869718986369554279611366741715191776982337604224189248958191188816941186366684530428381544327494041281558288381715322808065261044058193091144172357309101323401853540790445766275338072385422681154936462669405349485802593545672287449736021677778253181974368217040016685340986360742053753727656957614071085405206427752277573129716628554881768455461705897332527475839715089747980798851055568296259632794834548032239193977093899361076498415107881814700538114240389469552432339950007072654088101186676085629888858502024075460390968940577707853324953698001648602550857499300896838369694991277404475912695463148029671695922292638964241957792142921663767324229489360766299146061194168959263368460901993324550286905562362696172205001960844969038312880360418472939409616555055943392405798445107879546768379870814428707347277580803224625128043944403319097874485263478733993474442530287665003342366251632624365367664523367186377667765130058306353528950766630956166876304970332863158052935826801169651548450690385701016256589035012445966878274298331647676196058050818784564270718513529004024010772968046889012897461310138145067823300483967698245799892906157465916620233121135070492030227222159675786224685809880281560257085858132696204161554548308673044261043476552617444821795279553274533693562146028575479828857494026297705474793768262735262167202147203623868412852007127839201871709083557981075943234336167440872295928228672742550509410123343281904197133464024880159480539672253852368973238343887638955389067322630086559787812505113828674496490468376481295233492299278741577134623431637217585209975483654087384514822524385222107870252849640145700771740821539136165482135533733615493156440815028270832078575576610439744904722392355963632505898649980348951094222432397393313256199642643729929906501679990665486602126831309338273799177185905579212780802526606606569465485165614516827555252642345092496515676474799952890240364685444291298943896519851862929048217560566212699076153328486392792272484052543020999792405676832690318592202493616157648441679213062819666948032076717774710852827588230500153644744926602362963566042741702500932473949363856712616118434959580285128959301070803025350945248413170505786549086227630381261152255051189795361965388728523081129720800122632050044435356291710408951634300740380430526235886701129296397143024773205267691873390383558207952875359278316538391718652016342494114959782679675002029526157023780462099106197161965459562143103758540866337027183309853159969280970827501881280964620335316972639774105533975620517329867038942138512874961843071609204664906666148951647803400332803908131390101276771968421971761147888921426816557735456873973293772141019151311935633992661212337183910437697140047400646966973688377839329407201289479265969548392319578690974241759629419067383276653599335863712550605096334513552563766895240275482679108036400809395986387085436271519479326797739312744221495949017428981536309510723162044370581291249243228294572756246885525662064923504217917036269638564074757022651854700669628139840774558023151057183881060321357249897954412425867439299791575156662683014294234341187029428434930350870448952262792283495355427198331330449950778288302795929714843290896640188684343484965412174574306219348042848813808458056367432506515993470626521316571097541441022820286611476344328019650201433759347735739476369441346267210349081500704092614562466561544680926758855569555824658228910611764505619635311555817259956497063007933921007509944262649351936299119390043967260750121858227307575139300426519443316614127879998038208532489959066271121195652635435141083040550972360191243475954265695814870434181553014944600069796643307770371081636855339132373433644338590338871953737405910136873192071456238706378493778398752192585333978167790841621609760184588819736130326473658653744047488147171139717563656991845768975307184402680692558347536981272241442635189115402309526185734502159156822296589833786930046773519776503847804766119952013868568447062965167038702919663045496044542042330645864476139221480595788430491531875915719687204723022087807025331321628073158445299538215318536632233407788882291560657886294039026665309629901237258845120825010075921891219288791569148037267653853938199969369040178791016632048923052454578915627243280963710929350665412504198873794617546277966275427329871898316562888306260467089093298352163590324024826303391401120677189229497382637800524189470744953591282187563834951744040544661925654453998775135029999112927670724662439306687484019798742758126979232585525777098263456809847235750551506910650873314435891859206157620339261412423802112018161276593903661886630221399723269768602420023189550807190673363497494555635639221480562103973613120546317821375585263726152266482989238461677425628881034884078326551326434455225680600322722946995720168503880245646085426295790192253054441605799556426925735797761900105952553828557597266835396877003569159747384621504110962264759468846307541356208595302712099734961054359862263961833095603089562575568680155943064802947165058034692643909342716435357670590725632681467019453249253814004609346971751557917879159201092475252567452012633190427532966146020241039575360094863560997527968229191192783864220199735998891251390037906418888101872679741206088693689924297628720169921487156680873992395164621128072897040717190730784943947553499970492130020648801761782182380145157345876194629464738406985094862981997093112071419108510077427774278041205429553929850782405051126304006338687451296444093595539067307655478139250427996216908696879248090969516441806691340893740628648196207525164718223462905340931819468983240300558091528313035049243588228756917983579091804720144832892760735347516306889079377767979776523289946069910747370294606396444401202310101389048075391247048005713135112196831347472614157546611254754630211015672130726414894452387818703274874636642147355197640057113557549344703078644986868770160561124155451573254808267710929474496187131949372721418966336844109222790622222670943763975744087003292294765700147032803003318797659909613310311708236380599636184407574471355010942025456305669516959239891835740098914878949962825731523659849026646614589277472901018553320170486280185343191548818846650397044700705523992003670758800168938931165697573078679767617838724916568620518260624003591835689476531832368936758647355754175573304985636361538764893015599814095700695291893261361699031551786445639548187077659206995531664057431619082332683357008076922444399189956958423305403126860189902946428063861194736597499452684154196752702443426120485590462800623616544582992043157930556082901895336037283739498477572291776990072110801339945100561015041736743488558760730649554880676245737242717590902687931668925843736530330443253311128740965500546028747333977775377103366104491403471752981609109118340439553587719291968225540317352845792008200200215109848108158816590566755845351154103264077445977691502766392392362217441633373247904395662349936404654624053463858393618580713598358626179689986308595373613404682764272530963460669569638321815835872511824691941123623839218249199799831177238421868906692488918596658090296278848568347953630635272829056697373373805374566173591293378249885220038720493906989444007477721668735781296695046494544714504679219921093767171766527624762044311879673873350657683596987028194981953668893739580838657015466745684654577122686108287308327206946653686615467198280421824950416392133128172255269168482154613004587376270856020105234899766963597072443236617198430677727164762714634569304675504960525264978977153012421434155586563150029155993634196679310248608119968606760946689231826407143950185922566237334736564005862107546253683709136933177725529020898260196204392108307343054820442887811386569975744591178496490020098149800960025962726456682143664982244159574527215718055878756275531548691040441900545657178583031753767820293420251143404774390788293730736989466297682810498077318046277623901653262187826890273548918787911583350438728737833128314362435887512423265662581465535213069680929709103290742094077310285488392454409769419848828998798107727570233493226517095166225312491684931887377032725892026671523498010411995637115120800402991019154675601146366449146437698278308148430505637612773694695374021049544464563427022266981587576917960431000162853928838490526715981315871663796100270334341224881224623732603329247849913013528620986654316844038215667031952360580965382120819373646144437094127393450814041850597804503793934738712303943045688728703141327093194055044366398620455493269165010177575929173783916221365039300958690013636945104338488754398589819988918068799014141116801272426217578293126666907928742178224009620776963423333742594322746481477440216872378217633728358029264540188402524094213442790983685790208168410269805019653879336025985897643211290370763306227055387926745134178883996018708369820605607105146439485765889291677991118025162856962267466978751441246810886321777124446511478950029486586753212771166936554990513728053260809930542725402769945352218090465240862671223375599506101982885186459845803225274641933887544713771426179821867482857307700698792003931310814296814907385732352067668636925769035480515445982225757618043641981517431196837320095801444074348738283343471481421843422161488387791586632127466754630924031448353202724714555769854710616535377313951432804702874234533432495574666546173967520091769016093322952720378457075532966433491552725654520364618643320536271939678100246964342215363764003348557679658234850239700351165187424229763122221454916655590378507613711173210901742982284754353843531286201912465323373208941226926387991710185086494813235575715112473712292635215239659874671806330411630085912418703321840159457389818740375251809491576530181204348494786490460162283826726897684404631249563779761636628995770480694388398419014355898855779865300735962418937933713785152384278973357209153891057200736940102289938757677590186810949006654600313857817590187255370796718802782044540448628007762263752234752165253781224485641442428771681971962687227722728968539070505839289348760594342128307073262847338388433997645586226782212109949985104041813629713406636446748363143297944901804144163183947725462368187320651973639119097911270580342526680094993857327487111882325003566517096035455074763334102611195427348182340374870008452229332006470234235963896133850301982172862136466638410897629365115136301686222884598649004931248308113906783076533877679141647060838350571408052194636431343150006067673537522717473947293170551117572251699607475365807162140304756954248172134684393558769417843232309484399474489293256952956642098983052209533209520778257402351975496727375824804166545158658535089914150950678039371841231249752228792678440686548629154533750262454156922982751834096418921081760057384048616854877710984672729238242790011943379447608997449627998573956170691551607899207379535210317907710164146001954812507769905002311258618873880748166211894278091149563264657099035596019815209865877787966701143823220982106262027321123406695342151023704373735199259728387691037803029159485579776428322568258969050949595169939774926764664861406719329678342022064634378696516648619372656552061861626814975978065085127931237100038201871811582127089362356264475757424756179258355016128759396838655819539689524178580973159766382437771677497728403657417305581267917749375668053544843499277549876995961695184046907120085607235639196251293195853600954416365008444904184423746205740192448029049461086215589801710529619270819691299481965938034813367717023249535536671401465146257050237881623412895388192506378443557001715790435025083326112865309734524879629620903290014847708568898639337779116771798440645762428357210348025220505863018693321451008491337331888554543834197092816585328896941019648818965962645137814763461416813910291422549369177056987962219041681199403596867704101252506373409204273404621181386022079998253921860790433971514942651779323758954668602139252025914536859593219117253394728322008971629250986104794908333219535007112152663103387916861690638859218119851993926204791997322638243381270984776375714800306762665634241619297231280076732566783737984870211871612323765684098514790024853523539844260998320638945180347647105403193983650816484941832943878473230729739420848008733121642730264917085822764890775333253068399448863626149853885795810882878902873061605140741340361668581358276653314220307422655213650137987968145308597791829594592882519231525975340481320293088282332984802913827763451635146821011924071505811882618287632711502342957766833515237140054046725672855452299599625072034600649336147308200999325429756406551289329977530676044160034368585159401912118959338732053819882293653534835431537357616047032939394171612258914286738880836918034498098327570860698530057798068207049110273118585568980004195448394449902070109308630628600599673235561730976535087610848419979083640192165480537984349105821873002572358426185531200254107777577523949124329692926182293289083652368831946202167697313379470038834149274208084835690176251780635231152769509710341557803583351508687068521415054491178513013145153728317693112450350185253914380436062010853484926503474182820361810351926985149585297837737273493633719465033140007698467845064591318094107197708460831300294329544614101723904502539725975479612572941381063682724017516496775138840964152745324728749130661985050540213784714132539917118969338777016207540952821843211429124009754126024528273027502674261202989746939899242485990875399862112733763594524268665147395601997001309448448748470936368794076301730297634995759888877756206060697085703948047056229019763542514375207268081040220592748536519226705172284092865975504727138631257309011229380527889057442798201181022030915328951476793142762531120361690103673347228323768291062428358909884147316799320009661613106738680706545642694957290681163778716143001478787973135967375881617933404568997045537123860431434135539117689785800148175582183333795556926029357408301713575559349042221464026197577967908980327246382740855454171274304944346527180191272956085308665924676156785445765093575140608540497659136162568866589251343048969782000467126327184747876170498563291125419537008152464807777978126214430505012477519349320057498551658439170993141544778158583403056089263726312437688259862059569112976451472403484936561693905092967590493604744062597564239250324225604621240898911379917744135730860097425342325954007561100064742211385666533463321670168462967906491881595050508691118828258652596244242883263402100116891671218703045575084293808250827253615929585804049476456295733251145549072526969631233959069537584073190097220877099078089744171626480326702058692949182387284789276677733062717570813261803016480081186919120412492292005947948900013494768638535743788544385772008531175638325525087240228779919136333569795189979324311663498692899003471808266660471673250276358349940523902862548256200890694878342627234274018523309657759533220264070354158251153681814875263588369138094436387036073368221158856662496449356889337228348935755608510678815855205098776226848596970092984016124357559072551415024088426692444740714663821723427627753785905201417228091698202958508802806043971382795227330730713417761685614531830523906056745829012586533272892155531273710970795744274828707341042179003145826046717152735857567212475146524194219453998475180084659438109352481919265771803128528717222789055283699069018951606535029616294098457786117680065749179989708256425664961831429268646594068205274258312973745991479910627246562795554727035914749466472118022488179823800853205624082090222209632869219243523654217961815587686080315748039050764794169239949334964004112308953641808624106322547729593165233681271356421967049324662223904756774667958589832680685523294364367588594354697009721117229922140145151985790887783820954262596738450765038216917165056082190443932433524836537442809400333652403472315947318164816289001996413640282471390571102231834357680089518199210650282854764601993342360883096652447652593593324971599149739836721465266282002381219530887407072267235085353350450548335097741832131508981207878386099914814742799676897554982120009602433683636911685847037724194328980679357194783075787658209359604259217220421152684289909361227379623929025446819292922828251293730838734512078374416911021819956794333868699696505813780328294977725535816728940883911411404644858726722769690177652523493724364302597677181015167061191903480532074780728442021434357649071767481018236704653677911251349838044647752253131506450104759454360623951399882581963669098184515445400944580131023787178462949950613629622929921756883827205314552660040955411038095051235871849336207609832382718227274089878147999165213138014439531310302742370352661144467099178965707117829094604798952025339538984041675462511079116018876524646882668332596432477210499625742212635643086771971814374414689191826168652916975816215812939869271313254783042346656117061163655458336263558077902779760926116800841097691119023424352215114640137611910667051469680606105983699772430977967946368428697512973931911439895018236711594256804173962966446287409106414339639797051773013891187720106385061156342091597639413957927456366376938812831688569471801278897887359534966092311558198260965874971582036109137837728842814182784765564797629694971259225719046087943666177030635727410614903721807817786960987859297584779859520005362314853705191642359432887455671843425974366560700416968383367595521314994942219746201459264224541396505611408170839022987127913271089354224553563800867815169940054120261045557465251293159802837502422042744929178538556939138595464829099452791131412698773306086804453959131104802433919358769932485128638817923163965867740672591686062747567947789326035664096108323034816683015894235883785210071296494460688075187195890983771903251800861731224461401348706328705165518321824570339612377111811112704988343258821577215528277569378191800320496424797401138642073290810015845433419340188634251988056354889536730058138955424208880637876419158970858458649303791933557775455508364586848662718283702380777435698423725040827261536162858958667172264509160609095771481672531346586646784910226360274494464648568560403635532748053876073570521714794520563771455750333200746603990982790896458454167434118362678239159405256187531815883928566536774186146893197239006550785056913420749976261026823310880606750255039046524695970676260853038924749736178250481864469705370663483976283495108044167039012741013486402902066670684452753109473430547003172071464752777649700022308268672242200791842445114597872677174749952119664638205952173429784223282019579773244994926098464856315605814032096847824245602319110067250576946160587918336723082462317817473128725390818451897817348576892298626423548807241774650303808752896075534001931155786364143000795302989568646837207485935050398618159847664367051919704271485897657219332369443809617616743603003300817841641480296748733853460689306779142027439265915078179296254065529896654450488875049160728773976769710940642956236715471001628831858908064758315295731516661189085842090389507015270762364114449523813621344374771849603241365397428440299920286197040130465324679635002286742388783067711057363605319465953985779600937539788103413102702862535768377861497398428202099678177856488276265038558451228195148430163529038208029273054467728448706202229871993637843281558236242511901052426602374361089045850146256415209167255836106776095076073348640232425680036972045243479662319680249228206763080131997397185015781051677094795772529970358039958284334865559657411923708590638549724832019123958568818712932874829662567414847577219046223414741848162375330841329155619974920932476235348116573390541339783134990279995812776176331991629184564458835435401398449717774874556955048032217223282099075042823603787140767661270814137367484983536605992985748791830993856967609545712339131156232063283288651147687012867841711999289539757244678704406007794608742563578267946254277293064208579816910906805708693044476519002269324967764097728440283397358173222795421244006597601750389346133629562058791025410823193312522774671549165583516945914541562780135041785196429382975031364811626790658506581399598905645495853927179258425154031135705974219305460966142981984717160248843991295741805930814375450288686739617656523108726097118620464738599816665709088690579209864246605785951533864137321220238216738952661897242605752986062073960494273221815711361972796753932108491475993730725645105464693490555660176435824841199440457966346341395582784991318173817635052740172998862333961815647227435806356070095280989798507691553081144837999395705944463376603303030144419214838173121699424814174826944527790784310535803490877116627391563843080273112426177889066084368689626826385076149303023675804724959294103133138744900038634415960051625837534085487351706497754956807533662228614245583840467356457997887726495650102342381160303127460609716245387790610474298450894462852840660835434553444817372211531147061246752173971938835197705209380703882243012633573567578114101577995571952916697727325278502177990749561397839967007075343832565461323023633263284235015529827725889803264642202432051296601828922100819189426808056818526529180464506247303558322993748317659438566312645502589158430193482395437019615015598829987417148168114075760555644692419023946774656526313835433021684626970768109856349888292073127207861040125589716620791112372739151726097931678873967330187317044518852790538871422403852337230918158852474992616853625354604475894932432565372276096197566309953509661886249250181154406984342152299929652757262742417222903281268372905599286157053628209654084612138292811112847643860334060750963894162221467636955504624411870943019135493814717372498586911408261073739897903776732636005770665732222211758620040930428006535678512297666151140039195041688440791845428889788670100755927135948328782885333582830199469276850338482921832376931156381893276336033836117540695191412753949719294953300653308329251472726965826169243146238644176186621843317983646316677898003732150800694789517542776474428715506916347356025303976993787883864633062941329007032755677649580563415443356612843384108312267075353972113118474666959327217023686229323931680604684933142840755526648544046983241915078602336572684790489162732789725889740351491357710007522391106809346233025646319410037176212441613104084871743106814288038841989401460998824657235735055428537725547693871177134066142619214220297931915101554228407839880656869682627776591533573428313198340702546541876220417052150400522937740756399212382908027018131178518543648586805050862642262198706128377889981146985520887355469401833355908982371542367699969420836975490099519690986806382992064716665684577648382814375162042307482061647729674681551989492555222069425031759179248854436171263344788333983892956107423624822520527290333155078621626532162476639796776183753146665754018498963472048777402209196109706427492230236692297701966045183633456720270886448586834135287051894660561647154959646341267382461238586551417343867459010722352402328434049287751472070301497270380097497446883988682670664109925236429148167889387405727471282026673588944741443652471068127727112972959543492251443651186901215641923246679866422908118064227487285416806069051405556094074410989715868182602561032061486207350205606187960451913536381430313793721918719401950610267913606877659839481221275902582992191495423697765694538857297377252600152983302572669179578912277072744504431653741167300966519280035807592780137209610644273374242895433117643282368859432006564305063888543821044289375784831138382003683641337437162046885568095373662829546288110239327874386631512432451819617403095993495335945284373229930520888717368408125672088610724823332122941298420588196890194914850398589070392138964976470004059897985954167421810310745113292922769599416417649335956553375395334730810744334144936333214348047544748985577780248693165117741680731608723227075958355940759750829015559068063777954412568040977086878857840658469041352498310769244728917340433878858478749546617282687967673228148899010700270085944126819638767670136604039356064163313751428300181109177031926888303237213629327302856985407047621209814816492883126045579352845820777396528082490270342075277851574442996386028024550477191428707406819431540427885078716722364472751287879430453099072935161137465809050633278159057273291923564663318839530387473368156266193562359709639397853173592306508723127957748149763802531138529506051996650131052136787897129429042770730904046968486348638094951447809391392933759601405204854435746104771635419719446627842346863220607487619293874274541531800132528981364749951213970758814010269139384706374327770500091489094460211440302940350341046755757269069866015470861862332003983270115860680102442819356961059393392960893247526166199970764878315783086121470071322868770794848573213288964389908877855052694977654960747258218605747707318557765095430419647368961464477700869876519074342890236285624383454820916332283724587102974098431257740224781649159236381871502699726838169862936704948324928823587972480499229638346713441994783387791065620969587699169190726277067664574790965854573789597573821026273274773240890364528533237792144341055932205262942257122896336008210819304395642312316644263156826448014316785895515689033969779266844175255059262843400474148004742402619173406619833557768973095895128883946280101807145538359837970283429702175188667543176328291477536007524091683799931375003062192568475776781868387199948209977968813846304523465085180116210322546714859484933397536445640706631579335825245323088417903334275212880098203966204346325996349411212503638056822137429758540663874034893832576908761618829371855489106721276685822464710996304411279739829956308009505395766767752855698122656379848391324587726676881624251429945268337723752801536433367237366403514185570766663993771506419961784655597954139991800060443176361902885140680145905947090521787287998274446049059736760814435941518782067960844181569920418086600898145527701579427226893634513601893386829703262185258262589070979044584185160730809403280343767968608634965934355539910324078541477265821208952583191553427874266188574839381197996384803123780079163688339153655328253610389123778222002844094179399905165082748755190889697505724015174275413532986783524191161995022954620896637273454899051034272914439637810489024934558173956957020581288255603790867132275423634493135361780195213041814310941092102394777739350410972391606061632350597345750114764945973818993058716890474785600472340622408412469858674941972416957806542046192761326244301407760459576982343347687409485966862867159149998461143450467697277558533148496854319402469738563909219195002931887082673270189838172844116358322860049195418066517341235749028213540450786785621256490431889983595428310899073836668780626219004132773831354819385566712531869170649186144538638652166794498361980912229624187210689474333271438218293545361543886422796008979615885075690048729736648523575846794179948809989997351241121193855154992396539012234002045686850097889340108937967046995290385270830609553932100419538086576619942181803291514064768270110019565066346992597993167605916264047147808872278125094138845210701101500705321802620932221834222957526920495327358435966953225169366892299945667267062811003748838594945957657539824867156238005228765693988598124617986191736337076704150612823387904350390548123379594936426005962412756555741355864684173477479743431908173063603506218806081133028127624201718078094876956987286811328094131300050542026277699019825495017291306789287282882630457325325510929779217287696250942471349009389931800701620636801349907795999021503379702158457648661485716954149804975857460980646589110217457414911787904027161409333810910373945911816630092529982072078761919332405333296138859313001381375044586251553341487015022485793005778379433167441282538097125383000999330290567821877408233261626398253117132784920257921142131142283823184487020284011926779595155967636836338102745894165625210003131285650764713451087639446428469953610596627614399886645879691220950547229021828681929558206375667334894975023410174214193257437342997683814631953232738759146457400705582438651839876128824045299479076951833713237729201183735923200266993773996118556407184803635468610767223214225593747580097570953329870542962109754265206229029621947474402255218915494549979621900708498422711439862654361400958523113644849708266570698217403018185337558532020106392825070755087280435513780887024587806799870019745960310884313480586828898228361993818217526129270622081691275538384509655597123453726564668503785867640794474028274403671885148252712957506593405708728497423674604061171865664061572148747181241336248742732178814579643750506574670001291542923230983389579823327369763273054818568936756280342107697019951353887269100077623243976921859053129068445736739864403638443075267892808181210614333682224137137822814212903371371711283649613958893168767438075008018037703235534078941812200834298995685852598750042525037737024966973511795726742256999283547728727255644586377805141415222869148104312536912274636211879958845005563230034324289954481176609865377867897711612886996808472185001440492134981567431063631984235544073544797267863671775073693106406348903029063117488602464669891378707747893923527802979201159687088500387933807299522715914808444379119808089240595797219857649420706586310780177226703499355898130124985829680712702027890765862414156601252742748182025884753757851043500898834577829057267645678869119831601732445091734053434153953764273223141534719409579099471588903795073401844447702144968533419547619674235226481701060157837181025285363112367093098734870710550450150666172522966375338972887647330379625754944939142175871598874516781049870757471836976419752059302884474841548012468030628769826593717695570857103206104532632079498188438263895258903990212390530032822826767131908775246973233893049099151746218154922504142379864954702849839824172445497928749708716419321538189648845661963235807827242226563311928346868869112647564393973051647321125732188280688580498602057636356601638656227583596892663435582930978844004469365031405549412560836880329120291530986634973662501179468669733263184816862418611315084462815010038849055388681791532062621499167125000549322895772633334916369374560531926226749135423960571168274838725204114592045303917116841287339348167004235541341595249247175929862969425713700380743163250706604070282396828575086493616614672353354285713237374802337685825871524731295686166668598132139533494684748165750019436265331729182501575583086387263906750040128225440186828084290647501430266312782015816549969843980405931282703785638579702994533277318482075846126876182818342943715652924027756979452810117273364614823481864864916940953443364270204220413744204839307827248891366306275702578552227673410571561010037279467809096918190831034378918130533956402129377114657759339345683957219044721720172666693892095437751199160942193117631377697265741821101156378259266973846041225720170685376897622451380545456314165962048816637957713972256872403162756524889644115895893335882052108351135430643565658477575927510921298990532297331044082111628224004352403100256922726863995708974534248284696585286272067392056524806797478359297997561804190417429073242258483772311368785281838201916531890595634135602265656927772273365482585904844502101340131179454408792297160569796139573419601397947463109441903340056914128875606757483587385936835778934767043054356213231301870561511339428870455176028539029250772158888385682053857210967224494275737150034388420186474115610846861151428706534832550360131004066325266454034387892164163268871308137860543803947435851236528280080795451709269564294535814583683748105016574978721945215368304363606292035471172125269045416726135851519775564635415738658458165108671049975160455896964516433488941312210390899895766797813301905833534551694983336085065991429503608146821535181420690068418743574420373071737131202616464408904154783100162169806869365799718202197425658571106675880149728210259399557543904834952033394250309718467128786496093293158807442550666743502056276646548114861120552707784720981862489986172170459071094822198483551133171331569980592042379053373042221936432764788949669236433975417412368667705462931606049226246637191985954489834628483977714348510827037996385084469701743970510282236412655389350969533731546878102916549854637400419069195957428929563586799866444356569293055185544286469504093976933220856643968925908061603179903541048865884927327686747770631022377066185212863001328927365694469243607964501779357597021321357788092528245026597798317461574219604925438636250715155282791951793191083938168700415265667782916048570132502292181916608662382075627211008184763152490111860291060683283607602391561996551577099291149427645492343857465323759845720293156015852661764540983396436153556471692895735585778649847283902083910580308506178661290261340251211021923943882449229765654868744202387400763187681106577148071604506059287421922803723526066399887030947909944437549829982849770567795438366816246343109089602831993199987968580670210109587854839914915684865899014993694671658877772099152233722088823465135915712074350161612378467661343528246149697605176465283763202816289964247661504265800821300720969480859998129150192272028447495826733265595173448692229461950824339611772014209072121198843877318671012098223489300143069722893339187199193417970282579890437182441277783502701636309632795136531809603011441472569179421092644151398366033613183887202540606587036118037534445318437534237292961567257658483537084718315049092092140947135137632468177272201293970061417629088885819827679051314768483208498051300173911402450443122085564051698397958100902421953634360647715831764282179652382418141144799107083663702561504141268048945074328986884461491443101379940476714953421304181546199104833194907404041219230524927581732494885276230580238478135713845499738741973324526876586051365650476226697225183952456029462983184977225768730329301286431660122419351184395799987708271935286070354390957266847981188071708709117351531813295789811044828913049619147722635655354545187416950444314420979378775973459204073108429796354159938414525833262368417520587246879957062417273156117749262062094636845839759905723026205635755391411347648323227676389425247103331252661632321426606150974666664600719867472454155529305363819438986416440101032056090471716376302517278831730025733037761375288904503411034736688718098565631385811560550919495285706124807160699858104297078704219275211595040217123049743271631628436201971226824511609254023109846414505798877495167181969750468891853668380719897326827949220303002089333208773091836503641341735521841161122078156961644691100441139357710561179809718224505120650786343893385527339295387157422675039728918393019139518457107135618320491744449900864023640327537230824612510527268657024993004191689028243202511395991507522947765729451607303363764116907053847427121156861393516446875266339573366619927568317603816288632896546199394867501858235602319784376141025796840632579099637810513568253516584037782527659666496559402879712985212700060692481156022933393968022997485647358319644228335221216678642890229855523734153585819954069066145932444511100558128664642086891140767789253498365925243799705173122144528905799568672293918606578483985159166550879323619003102324193309335603543073256755459096365546147270490961290237251007331632637368483117068512407422388633810124072570929469547283787942263159640670387078497068958993269282425066191817999686474201408668687903412699924788937427598618672419305045415293735636124709448106925675123376380558406837664747915488576545167961748321859169771313407073038446746958126917402534804075740935963856336401444996570732014819621376561445556481520415186938940967296809135768006492600840096321948008635884455181024626086676725488661734877127060255874700791239814001820542519380083498889654578396558832659676957699722536285536383811083039004743613202445404748315172759793882421909506884395352235499151573343376872797053787604261023707487217814878274516840668087426227103859269374930528810767215071324712571295918560513810013082837722907609441149920004964631631392078384758171705068989659951733625739700502008339989072938608917343199835258574021561767928336459435133314844842547580043651152629464566055126396353359330394240105710697476172868131791353536195890701159616417095611201259973831652337283211667306371391898291311306439309213287326860414814989938246652016934657944222383758504839875954941817365818367698711582227540162870889919256296377952130988098004835134927404290198882052249513416338832598232885768862840815701880987591718742598747721834534288053294687437874114263166550271241553541593989757388959854185528199702786861344599442780308301065276053671684923710645320958022356973923783957912231557573706936237364234982743135754585098197610731457671473795535883326610072355731679093099046753703857638063667275773818876465924088756428833623056347165462046051074934077578564265694591316601071083908182697427748482886978148250223657770218026064324332002964371481456021165140256875387144595590097106019548146593741857562640801754855641628747978689219847837798604381125798876541269470265458547718294967247890658369645069972373496194131760756111693205294694597600589213559345265171481576154953206497272819301881678606240049117792300087499481619444943873143024247884302922657877910700693836824645491338731085097104748076977789736256652641520487775195760749430218821453362409991820516737518258897255790763203208055993607026423347195183119767215220381494224631650436238938677635975994828555351774676401745794734997596640420143595844750638257065200561341773066114287382793408753587707408298786245303483601147148422209708828763028844477775087062780533765224386376008841577067844242404094752460517486752162178448244045247768152621164717068673550475849216185925814735879747734168112103600930365325672846152315635078129095056962486934499788330974371097111509951867056553448210015372831790185071431587140916651333499459257068529899598745605904029478635062999812537642109519507543290755249727999386291112255192567279286817459043118888065507911816655921460542205814247547088847815788975741953232310436468065889502627973380996796299747919659215964523098963841994617270644538478102817469056371437162009652680812884241797538084232380283648329640323850574803313037495455299152073557368580026732329401129182728386405265239561170162016729600411998264629229230166011368544247917592889899293971070769534949198506378915607808070474916844426651125988649601159938163336036978569832968587482308161910685997912026886977019950945414388042005173801859530460115815025427353971814093965398586073718159500274730945252226636603035740555961159460679422452470616715637037874584425236553357332241748652890003521291239731515686962798927955222234787514559756961546878876644725459904964494975195733829686094113637770417513645900666701256593206184372606187098942325844450772991328924148618533767563953896395347547373772478332752595085989316799140370264790686923283794185541364678523403298691684515966015371136486408900908078544395701887229618586135001155587098749886265917511616460439515320371223200053436447552106916913024063082161155652168732465966726225302510316613014162101616356628617911521139345551255128405243596816039932915534967704911128769184680966430748994143601479795904230291809165963905378106837185442328515259321382330383570639824676046216582536884235803507108617630271565605461544009656501664868791931686423480098406413609167256991841586747644447600770785021325114953739022261461639674764380181951047190737892582994558475985936104964552325051093693236155679274585707070549278940223525942557597949266463064395364124146991783869759052747282450436686538882649437373592377076275580235225558364851607069658586841288735255202362045953745753262477427525713438593735179783379074647007254861340893419167446981750876510852171924000572651984105116412995385550246695423658769511159035179546198640099349455486971132091939464403587250951074993211109526152982309511273125581111053581639380934904344527987414088403299226640911844209118157681955983083308180614695447478589756839450764757233516041725223128017531113822736629971447559096038882216820704262044656583548926018737948920162026644836678248271508140468229373386140172857364846265216226809157564572970638859363680412383843866477435581332811723577378075654810757475742580292750251670689467779628410564848237227307599077905326486664900881078502615271243659169817964783050775132475324016922795346285772773086562129414825322152525298664341691832241314726553235572881934616794245631491709301278345285491676698095458746985121262815843996388406127697297468246167126375487675822312053147071671531867981603841931832845626376818962651260163861928512573297423488590333476184646999270280988904872541910956765351389268241365116075616969455958384328119783809409871237359937815649437341114122913285132494759641441979480293310376385621541216848484243545299269715785249120898642595899054052277667551705200543229166019122328720804511707515101235736786795019990642886333363265054971431092894012874660741788793500833740164429550523520830765014291549454400700580950999685666317098012494584325506209483354062248531415380242513466290245625338772782168262939826205146192360198530322934435040157404413814735819508105377320010570373549328558684982164928441283216447968284970329351846799292243186007089050271769100820062112058922012321863067919524656066851329163855995938497492188898511736293960713639617986343308976753051709782079760487036872794312494865386463950775793155504532592715152229301023448010353293675324442519203991461621448185635074346003658381023262681550902912074770186377087852503709712597112819425086520259044799087621719270143358679203725169497986522174220969898566113704996970268243599208270895157579698106676193172105840470389351339750162062397626704304126532720890995943778280631499242023598798836256556149535339142604196619103037517740522948844106064448816020626763588370411703062028607175169800246399569263353848179189132348590086802168245595978135441313684146761175455037189307771253326194386857386667074620563424184107337796526296500977189410080132560066919155278603597215673938105889604136548475984389424083722175735271226052604221314393255792387286420920177538880898130057838211516156844822813252345733421603190857789837806108805583321659678350610655026239339871687663731366015763561387370115143213788477061421580358982351998563148750801079765828064683335056270281572397074315239694648635810343424296376009016056520445472334342211841986361536625424881978046950453358362027353908751777372141148579933680118119803139747055480357045705331845876243598638435155702851741034485476842022319705475719540636115617832065135252119783058515045375439221547709707384729754004594839649632489023706903325488551903226210246518208291282853721969201053253129294836697975707272920539769059386980384344824493459135659607654871930644722836553341653880874541059953095230813816907650658433699512060718741965475808505369948969853649212486033016798703830559397026801647631952070924415029214451410210635410941484223602887456468150696523838146837184984707524829031270042138777012499992012562953063558578434486843779118101743799873407868557195477567968765567828010154208883832006249276813089604674422944688090557489197510299776335645935271773139513090668475828460021539353929219830197125342150629852249417391237152986879372806175430678982841277321554180134197871420568212785861591869736256943253799161155744085500104331733744365246894363722665323848840865111028088439165320831354164389134276022697747737383143570063410743540606285730534613420552152108411163027527228068587729714709633987819542171795503023836139116313483682600788359885711816811333025891681887056994930894579360316789474326313853711732153183886101491022036016674439226047953714940021922192168433108063977221552956430393350329338041261840148499438524090824953641310831831349261615700510937122612049280239815632882648406262216083361105229120745581030349326344506375389621233510499163917134612366243013344701062121777545007932397441398938846974224904976957142863536671934234310501904554251658867834675948165261255482314828827105269297769104230965844288212548011785791227395642439838316132712355478622812337166432919592885910367423912637768904598911253362050381563597274150194818044021360009479490598969240124027820444414923460768578124193067987765670057926178004720577035684858854356380068500778015845359518240584857676189819513391648527458955082525026629242157526274851598683946088586933341177066921747779349613457179428228539624252511227084760833197585191113189155569999625239256678549340534153123264138830895676219090724916270109631598575854235362312510549362883414896099847368311905817223116951409399182824132726374290149979435850341673221557293674787160969404619726700155092305775256378566209509889603642557421742682985821963522244892128763052955550022044478227471854346632934600506863215191512797589047107833531951152101899971069506660193285236773933462330318471938947542234995675355525381158576339586854282881474150023358325934163620978015187028850201534058460893352258471232110119289170183621733193752502494228309304639535744332125411425403601085173683580470315310034482486914706906397884140156867945208202470441370383793796377651953333776245598889114210077862624928259931970837587099127703789911367670805850092293626713962699210025043491659780207167330845323397685234277626883950999282006168528455904871131465275863089579384037371937069283319771387517870876738770769164438884051082363493713903294272073576272639865421354228974433164660980557127399401421542144148901451743314489139435930560056669185327276668792417721478390578521508352193408927395380393923087912275266709868645472332259749331242702277148876490233094442755774246735638742915526231573401605280416612153341648692560189595750111840977579733541160009124082158474404964877038336507495210334934810978688051572769217143309406590731221763636592913802495176759941639072528491215863579271449352413986900741166503310086459582425784065240988315479203359739365022454471269891947683033236282069977320925323606493953276808966531653407122375469552518518799773801801782998652184909960009892514847524501464510203113541958086660138164357262467197253793838910571360562505769427390429628066657546257445394632120622871079513795605693398747001783462340149150932437011661856812391448419538056744381795638965872667467769338271650605130157865688677667665989530982453087603264824606243881703305430192442297736603367639996756320214259078603503421972794160683064281935259944021504158345207789488845757183673895335946871970006620879620790356028463058432009364149090909009696267970896330193480317693000806459987755029691675449396737733769573298007418273433065441906922787179842264662204755239278843760194473230632729154499489730498662468276209176985031852030580913268113442703969079745308904050295076689775759495468541837727932888074116493259550542676420141606414062723988119206496179874548913775658793503373766254792330595601075367156758514341801181694647776069580995470898189656806290268773250276375604557882089334968691324868131701127498189033215614801871630921603796946576663330911317009797478781784263638395413681624776136814193018417387200084619599231999417118234136755674961676333503589512513969064628094079022910662485138128552978068194704278012568930747247792536819736390860350918829983510269691213517676361890017832318838137943244447710222540203172441125584514568548629567905252646260895149380928339393006094720233177637187946917189452390389956011480793685837290927183527791365357762297174385396651447769841790646067174141048829692675380589321429817226529039269887054953194184238212691663113782232125112261583869577797996022273188295453816682727770211254637283809222709569626378375736161007311955189508746696808798382714976972783085143756074793854544953854875748608134866255812212580473972452826905792149831916485432005872590115849336397049777478924663165363887014536967339793968503735999358124981919751643556443225646658051944350578693125565218566517258012023357923000940790250060293676100786623292100396137098633171579864182464943453270136628358122454344944463032926892011115888893018792924212584265732085951115496160388514824713942590095000995092707124146736809465704917104577584358348511047198034653582820162655014044108365010255861510323465614873227377060628195055366361793258068827122218763583006493315589763405796951476054076985617166739631666642730081238202319785657659867146258312695491754957783281570326802281810802845040199045383766148563883118008044045703559352784050715453015572714762827917026913358424329234521635680532555832087263464677305946707508009391533622033219371050687213804143844959389025935176970511330549685215506821659477650158745609345583371077176911733691807925037779647798454413317701363821421767025639482431442179818982642286112853247676569092258724530204750360122009503950698357928334225039016890088027672408138797356086095973665650557758928293395515622321683378323232143682976382280070921179105272152151105456603911282633772543492815064375323104330478173726615470163258075382437302131993929533105205133169586059735645146423054959965078715257629809417224620605482363692101575019526863671254551698176601989916559454472978687668643132186325865331793662984446395268608927820601829904797757589577351282669851382632487256486324972651821978777326918423509328792860768819222767689416059140918407477872535195675399942702595026906310080475469839784415359973417646871753227204988892763424340794166593089691033840596800524042480633701032549944713079020069773263718654176153137428052598591521744800112627846584782101025507947273616323759944761933110257431133677824539578289840064131307411878588336601009464387924145221681790199750018037802725773475238096577024728161340754395606287753501758390592307917951331100943967617427318548633712938222882374550279228674325872129227553851059512102885494101040486011429145292489555262741385323103810981813199774936946108295917273637756521307934212620350162416942894087256902559629144850526915431990281773525837303559789693822725099244054252027794044780711276116592328382401576726446160591804226604422602589306701500486638205505668335743912068065927341840074847708489161066849639177083319379460507434355502848659495370942776499663787687936631609634760120627154743056524345308421524504097793532957786446738651108854242025886489158732513785328004144086393410828354795234965200447938967354799834879334780174861878580656334303349361947185756236852145158955738048019048824101668702699392758942132565982624486651626122139148632327519464347355184309703232810039583236033269145658696948196834772353249381036732093707261765250710351200451232834342866770068311805788074298542417138089043435544880707236676504042648058445760235827882232545440384988032432542550378797094190120862227092663798108751631832434122272077188949100854953787449606054489987948757765508452473823705481371086868839074731524269318226846812217820671218578638367934064753229144774910783659739622921133559074398363071941823013823942162178626051248972877765809284131692846235947196344194872517904634652560912134805921268587145744266206750177483315299223998123502339907537802151121692128334565402475277928094680060196519433672191873752228131313988063771827708730370411728478674988067033809482300956238107407706327584786671758468937166859362450153297954802771950919762739780803894378644911926606940358057224837283964182998435490169874323894538585026901905060797118545573887808120972612092344196656751159959462071221510238702402656182993570596844609655348867455260771582708331968934188185053849093737418375863514743134685897886169075198017145771146892761067060769447539904347517414244760237711033842250257502040274711039680675243976191891128540296093251036086499347464783496288816971143558765624535620004838056936588230432915329565873552630732939141009580397676186167481730378203615245930734206416815994367129594196234731914834127286684380454703170356003437805172101089203200313637358122165429077015884020651388415543267771650534530095264378913320412437196412277345389080541230423873459759168921812668890752031211618089936894874705522411796996139524876544965067721930303790082381335332456640066063369047305270432218684755474427887472126978584472728990343054514788414591537296822132123994051674496845623573764942647846238455968863814146003304642355968645049622970287872726488038715715309765098105368135699831604268740694859846956747890261106618379663729709860414904037382461602876987609928983419714119547371424058919313990418992652656265487966561397276808778986662573443784660086273020356087834525054292846371113197960267210306770241255669131968021716203192994178198936828396304737582865567891768397513076971638940414290469056808672414588545250499480170223848410575204127687298407008949525179549314914032176958743953867085918633217318589317373625745838776716408352469621556551797140311104994197501561680815615003648650547276525900505435222132326854102732917190608822841922692175654917755478422273924973525371805548900991187704743071423668921058855836431454550324381456504099326026313801947256053870836244728406561525960401834966995383388878540584758122133581244373599169426773536909460943164728285043681474780328136017207464715422915580029136709575692718154405054624030922611850327211990522568975206470864314015650691279805668273604722263188776107693558085637032874336262233716435165933291117718219698467107811775576992516092106728254157264508176545863386174551368625084855459342928011752557663254030416499264714238105516925424914714376917093932708849811028631746608358989105473987821239418106138235521583414976601665665244279504451991444708275550889217831056799377679931805204222315910872230699894722188387781439139842594863882572861707557087807772420647861555487799419466603408844349169138991604738569080417494435903638262974232197285576393642893348274459714750207050977308895996362496300996085908317207820436753642535362808190256273922199268062697171096589804395492830595616322100718373790591921280882030363090233922304771093632964435780575578737892775049009350174428783760296077523784271433779811604200485853947299547573193368706751702467566652695795922174889956301937696050495284636802166829718293041421395842939296274033037111337258402807079928019892437583145392211053907902304593708506426348642704400480884428179223456895250942927886502460180308746725757363139774597009677338153195180835551031985199785548911162788746194364086039665520280368161492129055467246472105465374598002081607820370851647269821035892962129702825388165497636171185947980520417809023213082833811490461356777941455787994105563705359489973520477270950649646569278263201553235222924155292925519844699357180227781721521142605334251331423658271349067480914374220121473198441955105431983854039663078233764935729234879909989523259103144386092064614681091678193274304802786830920164074853923553050275268884322475075440899391152586624875657299509673901621980902988252501524534549420002731975475058814286297728426557018708546210964246681229602770836222807895701140384575055786237383477792193009413176349716467826802840709338063324437788950338019985774292563465697511171588255081394385727114889060363171010239274890884560806771766753908787417579721361993111119604647536114367604066596652205521547264816011007607358179723705332385880571523047051363769731741767672260361101085848360853776188371958041716739824201075032918480734518606085951526114026012694833022936831742640638140279455771701412296485098973327619307267261504277841247666988389533218272584597196725687838001319677814065853112631205825760043742395965135731447791656914981725314131080516392315788183775564202271773421542573202436144541802095047072406691357180923214316382194372321074123073696256986642182344468003982895167648718064673544588795165240726662744523730598085216566524337405454976990196496281699103711086469885682823415958191664430141728213426265417768106918592926832911876093503462646408409432527236962910788204099247877314044248413782688946671210538980350697320458975426851778315292050696156014748965624832698222944074794035200396983841671221563099804884882941729130816507303500972231328543849223197390699816104878448333760380943758172216057046649943675684926869777583856265122322559323950404933071657437256811561949205771231369845156972635400978352679790054330248837512113602674904600651026701873031049382100031820744353552249062924429085183567652140672085579192462865382083763562029510853553221485141930627399557255200706023394230817744429638590079735415096741743179996465189246980970148472589422263943456769471096016527219187953345409864835136037244184091809380871912065569116603351648930987490658407536982437952674022202604950859243118231711188609122263894638351691548353321071889897170472395575867660777291356627656508159988377415635265968020142410672624578973771239785591986797800717940501355103150434939472761289683424394103726648029754436637961510422756045926523543144672524946031279436271648636672939688112152105083641279188222914434983266761845036289519634379425006992429211684627291220067453630209007304659554208292962988348735298839574512059239306440183155135767463819760184344298899595134963639172969910599552449015618896035519289699882427579504137126527124357597819448931619264439839117869784266776627967795044773962742572293085716912135472758530016903610815742839347673446473516263882787704854898515592627652165399213836897990953549771852181745797155290139598773361973156643626718410011978923311011070078031647998930353466889588818952157089625420542586061645590756510751325338150388097234626947785906745182178763142796124784047238496469656872650860647894920751570006213773296369742433818740514283062087109496832992510549652082189154294738170321380926904626308794982705448630030422037154732141328852963977998029928865485781400684437479755672279183575251577242026519005108633657816242831404151956995029300263032991476293559000061330116067316757210172690621649012060845536085400429699670310954730312819755974227615139298465321833085076376420211374171865310021573805361506035735730297651477706701938313641462103414313030675313359662740570023256215508777933492656613009034629298221477835827648370420923517683137726326588090215456398237688251163761204881639631371403640099773522141956574244722876029829493265003266034026993541465505100003505830803794141536424997072224802779308231658994277702913675003618300926870938616858508136842732723309263090313787722683162932887886242503463350271962449952130231188261136484256312136583804603634933271458813951129356880270131916426260068954292877630360597248953947433042458272838256036190809514902677268595120235576578862000655602716473463781454785228463589659633163629992229179588873894612359083261532899098897888406502698415548074752680255152900919014808594704252508849048601515624324864403609833168957720710236198066808561783726651586800419303386327741493429008008335739383556834555685796457213119782440671701819037278351387521638998096420764993381145960353631821065814644036820348864672447586286106500035767723445753762332012330806356921712329890534362276715087078328538684201194690336274382712391114894713756293532461339411632134041082834965834402445920763584821475620349858824019311582647185719610634949711901260963174523629684704592814746146768119928870852512697677532217424844856517508746445380352401381515110851106900809189620198638971636794761279809330547756029030766249228576269063065595276138507768180458278258609764674122959654748110846813432716389128161460454059561697574260181551719685291911062992727369538743055535703576616600565393477060916488178271883738869082530303755098653294356700452146737796763208112255295770616631560910787219123486184369181656198230876696267456741017898380451174654331482609137275523575836446498403074229782397368046841017402538426229589380106077546021715968199430836944752114790024920330438893998154004664357780896075872940266424061205462456130291565636670413272553678894350856679397929489337473139869654738306134692057790518976467172766123147805943495808069156548429615753152380099839726046462744584813524355193131700695668193829840778834029461149161572338411842214975185274251138081210629425845423087831243687204897283791246198937504665493502418569274085632656271778685323058722674918641617245916368968082975526297960543083640970749768872377478656986565350197322207828822784965690388504312960413106749545883518732032801297328972666753307185123351314544618043020902085293208716372678143957929379467745681776880993263618833827521250628868982810088344901253717281755971310117374872836447630006492395369312100917564932272881566703075406627674341729174709281035562867658176538139049792925238203216419310678031936802906375418691800727312913463820473451238264114516223750513703265912986020285764685207503507213386533477823490279257136707448649786282426856678013345069202876180194263483836865588000297661051736694496860738920770968590448674915278671438342975720407255721569719045806202620888448664486509688675266123201346079445209033728089147175499531891354923365800088152864365437374658736126843841690688331094615840743717494398336764190869992431108205344168447762101394587642997554430813558816065689345311944373566292686921924473815642241612437959454889275762477279650221016847476325827180550917687208309522506227918820610782834476292535518209507985412446507631751569959457854854771959101019042293611814029688674298089698696682953211327297708787867835100434738955583808633939272557636610171572411717544256822477505778670328427898268457212884242887604517983991491647054858248784371611405102340684708096585286813776368606162652794039688312514157042281115917168269061266038194098882812926850956634074291237711322875206832471424003849022732792732655007621939555815795214975664224094209353321336961113412974362384548953047275577593089641098561533775921350972227678384468332801999837931242710982637188589876760574511045272616796434310399586173028771867054275929403878504376931637512939434109529343112240379750460136881748100830033335041866905861461159698331487814743456261576978794259489578855861014043065146876914854240548114031697714946897012666841478321630661324986059374206029351582673569807033212806435148812702810430545062155852651693486378868179192787087526195771128220460618250500185244233846238693987772926231245390123618661630171681521362513084803090744902661243407092393031134417973713684378775445661193616479721187964656242684138574778970717338441697507032766644642649597680171196278174785542762108454175419308245139670374212846252146998440826197783288208719890722268459011554542049901380806344118370367869576217929284987758391500722788813354785538497008964722354286574364454997291571732519470849927295064799568121188973096921989904979064871257279845811975982867442038773022113802816880149705382093443335948308904485053108370812183294400310800280664965996043694807527522840838807384826357962469666943622888304210278884537276797940200576080999072351992689482199422544955207733177886440310044664250647846683037430683645756324264162108802649566167223936326719925153324586441103874665832849348820070106962473659496486234625999856805032715898385760701249171658574333111372554313198700931947411017581767153280013387929671609384707116022155529273839469131890572965034044865363835619383800770494082600044921339169063314114204904750041995175419053399985570834901045408079823030544515707990970465281828839095789370981245649134459023946824060362934176863734114930062190395388715347163165451670518578548407840627818671350688619372380344472256721068721702170690799213084583422520978549991697388047339691583979385515105985215294287683431908593893469693710767450878260900915244880244270019354821830925890647397933961081472866364793390796207677289253899959952384083173062016626570565177160400848215424123873060736316577116704496624986524258257963645398815496650891373539949744736319995231290238410054596434790347121083436337300152501627650999470636011201047970194427844593813881203486081531202723212937434375230199710524115274884174976250444015496213733644969683743015273432030304702763142639656870148024860078634194568898872592644472129414786454196394280247287919981289474994101912554360297189978269697342209601988438222147274369093596059404114256149286786277595889702656614098271997374408492264480905551112597825295424115993614284207932007455334832227033969802977146298887432726079641979418264507210768828196987264257063743922418749954122580148286421378710678866102610243371770276615754489935626146535102062516436878923427619711721470644744772150447774730802031566100981182459193462460283280792217720764693405262458754420507405685678394408077562595118455317729986182509984335333625670361951445307825570952920736711297278253726227869444035302322985115679257527981049385729619106302198804428949311156639612750945989784509561834404924060411468725829324088433507488422166153896501898677050301516014737271049045436323067743691270760402432708540944610474219237102368429947567173338365988296501391432551148590302899744357806010980493862213470674509538626317906058480086872627369869531579988935246872935307796082365552463476605527510424808018029765428704953723692143826812161429714156981556953261372639408200966726291620818307789716097888776527938747854577414356514816709478176370484175824123556680109854900627719392639670268431652214360226248622312118516518590342733350623672127365772735204230616562233540643657071929780610693967216660392936619120950579909187358834543194923797152142459038295011950028397934336199000862658911277072649922733782348621316357883179626882799584499138046662475182651057423077703703952728350487475993868961918048435161293197943639190114703968741895288292960280532538276920633785923488843718041777718906847579136567593348782133831919981302100934202796791346802519002700176105666102412661919653642259498848224515268637961738595422664973647085541530010017649630538337180710285103676554539913368544894594379514409545605674565681133967698690115056388768389860446098681312075363610030988526373462843580276078808361684065714916174764974788475667056510562692408935466719575964122435353234984544114707338235436806315560898482279932897390519579012591313741380558342851346164559718187730432475970801175279086738448881652961432046065194029081760749904091652922812683950286553720120844212150560581803566944806524089132438694482099301375018546139063433916761174607063141509400332811918080534272210974204296913253293805565838002097144770711640813831388281926678425167770225081170772260260768810516749559697993327690500950967201167654628056181912690655351945882093142229936489860568942400444261225211136938266068841429761715341112180651538128175315136616367500414986379170471071794588166868981835664202983184453845866173422725797698636327114220409435270395727645438588164771226088434583148094211457647695526020458898317042488369307268128002646294520207929353081724073543487019540926137121098205685393366400729853048206773704102512758077750643260959145616515313509000103305513067728707991697168513188762614907009427523126896849294476854094926708441888824654452427705835473852736990539631559292079364719954939350205072577619116212801577380643889540965416510498127472116412292501044400721310295980303883393783955749540947131526982066765993654109146742446063985037903104483320228005433859934568990065868449344414318035470770072596642069167714997692007068502156049540965990101249404123821243530568832176063290566268477104307490220424304516480085449806614405529031693747185094187389368701553035553102005065986419262419820644308123313964720361303136217112381470611941016422275556461390957868142598892930359775027513472032930758471700721538950150550071232730240055566019757263141624557622605415921688558802322733722632535558792801303269243268361353875119428023271567395102813287524659737185249157471198794454442916983983451205740010838371083521554562143451985323819605685635300813149287692247025525781169815002945073262078106459484512817913262691017593459978273884769690678645295801725155282251265810239781940814957670284878664698436117099897081099276096319039403331608864020470901962835062851788220841858443703615705918651767306017907068332467821391326277291426155383637837317631181074366579628275103197423711018269868109186259926814030122323795171712536078208343987076136648350490061348788510318020100670528255906011609245410059258549218618953318859138925219248423972304939653935676752201723570445116175955326543448264663024488668563958106288383811355831040470035025406657924118184331470252379093824518232992232940016864470090892682307270172472984727545503657990269703645337533131643135207782374165138146319450107446715178961488746417901232153937918541545099124512063526924571695002901474049939340958901849983531766149295147498917896297937622900405044132851572207258439421428459216231412064863281161115221192384922302286558108639358505585399576777618683381150164080791420011133621643878424557465778368331005186865778730205146170081342069511745428387637080546389624655391535038224994165153308788555984121258894340546897193150209423978562355992579715907618372157888179336105996087000728444211780890804610836343114769574414457992852460698243752252735329232329621878917509395893233275803323615471600928772394782148379591294114182203745782638037744143421837739426062193674653403731653371844450924243638533697263695101094720458456952531957153285257958583390278050024692479632298533980435394915101489885143385234248492351344862548607832751658893474613341830602149453465303810591106222437884493342826409026260309304982074433856596362199267419132910857772983177376151342057272992005855289724979158957245258856284245733746045132462683879514314329266848454751856383323137181681072306824903227056344130748857662038625576526496382264755853501431546402623198593807425422631380621148381107921627532978606728641141174079344160954368524695710714180269987693712245414666231866484448725033795434263734911656821999080033366860780531875490950299211521660495645302830983743876743980620490650210619837072573479554062779062167143751616567746366728624251883921472632429483293484883271072467523189301083668775920278792066019551084548658162143180204564754458753096891361195165619165747300582912555963579139020958509476627756001707466947635873111595905782750116953547867967837983872775127759724565618254486572919630433736963351106028627477845734539260017413209213524920285152801574282678585679680606905072244050960894641232216388259977265434042965580730216628941495946695617167322089189168844745842895336727037009418440557240831495085987110275340376989764855114017612838640880945412824692602122705603106752153178768709084290533816983249560399236716769114700959328738145025510690769936800327816483972746867088514152021651210636766376172596626330988242742930643314245435414497145805056458093342111712847942053493438554418425949796317755523201738254027027117356078543001529463096007854694354407424271510148396939318495345246262424349953915782366071283227435993822672913113118300390753024217548990290013690155209167171646319748060241517441051039142042911250426915252503850466568467487642427020590887479178980570246664332550257990309844188107513352806055419592326875781948873925551204740158704426820804312243200875792487523175746948547371951935803140969974936473118195147329400807771602762610019748976746388613707343415148997300447965116025807764466612196023752109506665580370751685692320656140313296919285473058571340050545022917404691789935520032149476372660371282820547785112831039264650355782328723019208193067066797024666608576844423780685813866609251806906452058296120748320415520046622647439424542419108122706248720548373958871844348537157785681881176625868817412593072031927449154380470672290395060760656452127999593950403626469714875800527937122505260941691123204643776433355654921225046409907678400154337539484219261143290998673207138258434022118766309218507957371983112734683360169348655425453961434930752073956017473524976678259501283539101771520865978057276665595045888461705839604828244829308115669168867019628358495846413162452742011208272110759050841229679952758070122023582426592054620083403371234075321058872610111772706067660094791394799872747362361503278592284723419812972223696510426665274407648015065967414087254516825214533047763138154951552263345274590509039719626151031141347745072595327639833923515716487340596224854480898299982533435221671629836354361348891608077613922998738024599220601594114136229856108780797129938286401002269468535325428024560169613888622439346890309006569363875463116819731060693180689969555143822188318443971555267847931658590754541776141914312987833847992080254498959943398688735400710288552891174941756752061149070475250290756096477293681001327951319031654476950306724789454767716543232967064578612546612717817795631349979786600932939403431414387151527834928509004139276188548866826197642133298432678665616659768962457211752689682997343385953448291472318195944059573579971819576176546493572209499965504371970228800349665606127441683020053068620625134505635911433920685595488686484791284934630971130384213926573892381781504020919294490297799169050778776389845018251326242753452782911446675008465530928791254479303679808616907428449295710243228125497687373644780908954863388867523541810050022669323090329185997654705462508944826983703213769411342528928437699668371745826916826612899729013256906906713430570510813282613069708651651728881103050623944201160245745492669390180324483901126507064442318896499955517357699644471218211170208062305431124934493175760385402834788690323122564377761265216478847971738367525866650420497876458147471816795258310035321027771657827164020261226877447210177909122280646501138880706750535891995249515699253486237722231933250392277158150508964198146753343741819778930605372134194950329601932030049252259988884591099353859235257176427314633508236903955197516950112632545778751951431236489291910990074223205832521888173880884705880807661545901389995432025764034305895354562404365760509672682685588488459200563440735202285276749780030202308426850096785216996764342470173454541477867508011863649982140789364805462032753212573142989520654172061341293757808267224605620123161042046803313514658175588020216527647565938488052110549139629859620489930005823557418203619176917534774817367052730864559081008028006692688427107997074578734695301902102715085192321725758641133784216700708670438857768574145847611219586622671758862584919764119821385353357988486024038015617355110764335104801387467581283836415260671845692375875293425605468055027890841262271632216197724854633647931752382852205006148736656704765839462146468550143962895851336549543479430986267620076309971081536640647709236450493860192992587126555872557635738858178507152532092284211483952463565608980850542201970407240526721016829422821825798780614116989825243681657551753791538230126022684791405990857052032828996697473654133029732178865897646206648465487042067001671602320623871033214218205251607135014804298144283786010625592448290917987509622218445198261256495488665984182156824174140723407169519816715693001858765516257849509615839372883926889076601766261842658194116885553789049967390178500538817048390044205826147802559107913432790076884902600405438586073291209518318785510982376871481272325929675555663004560908533510850670418840545250053290616108894768838768744507841374183493956653477645710584770737807311070264883907185342424880511143433395190565645463305562014256171508620416608224264102118406020386008120600852439994289998551111557767105379692873914643342217782572646690671514552892965800942147721669826974421028983263468895922187980657691011678677237614903309824434123725835520853028890331684359037765132289894211092821424226778798823641163672996054355071195856524333158649643755728502619259928146050238658944736741706624709788585596239607363346107110507001956549064238706457490030167291074192564380328733836185006745684637453291484559945863861373134944289450341133937205715341608893730810160724378862180861991108503349075733732733616547391672328486059624224072374427663164836110206909018959817730166238484686229169683441518756550418626041543016742512515381031158659097789176966096831746520307748985749005636406901164807890708114120698504693675438271116130607366051452973572543979606518475528243592684252545618210723408924727762815655872917842562257170904547355682416166235191106778208617670990965593023772751870113498906670096449310730306853577405966620280238146930534293861303053711124574624446882444981493729271252660221239477667466863935626836419309664157956016737335341950089955617019913773867388504443348161020934890502815579620204847161678989372134441687696803256738191717270840041450514036290377593798408417185430892353461733775091912826121165382489377334439068792929859132367441043086742015918027146154173628172103582852261209193453301364237606735015960162909239013524412702073410548804278342416659223054466514119124368047279266368695629698067140210171158963445106416154714561595304972977946830218390918244907707938569865894845470415721343292889514516080339502955974201712645089781616637332487600936738783655532034832158782814714158061942358390348000293208317516553848333291776304565670265627604640042051352211103732172026948202272137994372046271077276120586597796696493883487120764054329357845438403974628024318987991084288768828176102888381922572617182195618339094735582583670628358836529000255080922639221189205328023420606079079497967001111968409981037847621056261408357513069709191147776556436053441549599650759705017324389821135609405343932582260372836610765103945750629786567302594576866636647603571834284698301521526362683129400349117381040952996797244684498924233789509305889988725527839831064789116455502225573241956951215022517956618765248012174384648820697683659008559446315846177498200478213281457064048248620572196108926397327439287605974901738081852907874619321050229833609438050678706220920598646626410484206766926942793682624706078609035394922157450639794570342224348579094383764371991627911763341696434637146586695824563608665435366876625429920595028931107560419141759412522471635560354420030974601824450398315318334146609188762376404103193945352712639991870989461042608824632146788335706837657156722538951718948692994534460472432866001760010896308287379554902263082271478140448505309710773586089684073077657534515246551484920184446026376281800677965225748661669519272524966196765369550028516068009183754366140467543053902898857022976147335616590540438934402260035587502501647798894545974896142002887178138164535675155070481607458882088557641422652159677637765986464847881917248563967120328502558111550329495253878473783489069022987960011637961287607308809114205057509038669421351039525499124064326854387778428270772966807398036473213507912026456896400946013690360989773004457503652699335339915783366806827373612035222563732615741729561784087198620386725431835226607906697358738815620861069279129731950694248474773636477762091118541737501435148410968866446245270838394245553445405580916708635767916778412202972002923995162627738353251793546373350571145555439965965653857617136679822252561009646228787095660786488695135663428590531445881692099239238598066844561857053521787428432187300060822348441731596269797559623110038221067367361482805019466872616358660373980211963081658944602046846350414396369368248920434968743217747875114646796999961767475887812537031969943536198486204409436442591513648796519213075164038266565304823461368798055842037915812132262641906152758325199198469948394728447604008638559617943763350770080691575956201307146623792647889389610823673592776509379259366820508416763285461841196512201289767988687986816751785933332417697520100886478746556798881876950546527713151401424317102700695975246358971211370728616437324922625628850059895157916953957843078934979697958031814756763355041614618484525979673096192576715367356435265536104417447906335594144314370199129685213399737054794407116362949164643681340539489927701844425791117280154084837395255380752704240073046837385026113667622871799436883627924740749209929858413853637823646846190125159617383060893486312642742206969896797681309498770088618922450442710205500595905520539455295836616846500511303207748508892404568531947005881901913873253683566127226016868680697592086428662304383370611901637048357310514544279811511272926667020531783969899575560350487761822692776978045378532151266109098763665541731300855803919632932272146723506686584761044207017057065291274777068823411815481465215605368328517427609067209737944193281960134330908346083293515923408036501799576432151818785586949927733971368695795939408260172053517929722203868135842892722543214452340596995765185173194918571439464655667947125671521806412069696592704689239139493500487519359709407087451227176800630227109830470317313073733933148375183209848432465430833235980775138994381601674448624248696106805266652015637514513931900047791962850129888240233979487244088785286077618275562611216002307761935288143772725461321437457819925208458406424792162553509481790139268591018543596003561967443250102560901104050494651004960406364584764055553657125059957377638080526195820819476753104112012152002919101247038732875572222809250624984859109857819542096775418091074589534568573042582055497378413148550559396744001329101663059775886621929328052252170625957912693959242770337660306518414850611396349648390461340997979820857450744268681748707882355219926174321632550659714719945741603613606831061513733797817652622747283974851141338549257296150546906240946737099466075918254900548409322651457804917979440652140789301480163145403701113189043521247695074608496961343567796013476384018631520843916007732159978611492467263964092823491348278706707048841631195368291802829432652143796293356088854513069987665400577466733483015297827396066542646544609787742502455781648272712582708238933682219850385637381663199995519908005401377551167676987875688522490421199085342568828651230619452003192106817037468156273747164035175204113901611730234939974413625233475345355292593274699544643431290980215102585867511118223144134412693009965159971179959596446744668475915231625081836802837229375269585105205662649608801751437167146546288160981714491339963846323844529042890166587719334019355168764038819351755453313947961544795044912933402080364191057748317622642623855741238922814876620636413440247784686221498305345056947398595273375270831782687701000444860686271736886563676767593381019912705864640548638286209622452603236107085378567672020835262440325041481088619837391373033103005387323504568130363190291380820452449434305516230288921263240151452895623268660188749258605672563834898776089397505072072446697928290875351914120905437281780586958333722053471425828824794652351613049781385870499823348138056867349677228406586987308104680515217231946038143091201076601067238950698902839549824613866306438971904079412668073820833617205771458056758512869228030817998760823963740897685805226496353250086329822798953783681479495451984189455043453503128675058711744960656969884213878470256308633428645120972039484911736543190099052975414164050339634500962319398979663786391345064273909246039130663557528454807824495653089053273163254357199419781125312258943986030350494140314083154460672859101367249661714258989460645677323156472062583036990399587965596252034470428063030679186430273316410677688573117519392551693276454710833311387110323934665475555801648037634466691725123963879597706352164902297009795171589254045736162873176628722754367910586618571338000546935111059410928400220795623455904282648636069125101514660685430903169797338901209990097480391316238350541772420202719721087492766420001031105458549389830534109516379165245806425756079364865093018438077701884593801300480307256220378011467976393088255837366694343236237887334234648771626046610536942049152858742210966509146009934702152511730571985958911894671155792340797942345743612691111896866041075688595466009722592557626003330883036756964592869359363092490390366802991032066724221625906293357039005823633360829048190329670980461221186421657845804682595907908115571926531906647671568738084840184403445585793037894414759239526290132847714930268493486312180027773064364369853430996661149951063196933560642901203240151892242014573648403803987742557088544642632281724758303989318664455699224390408087740715239994216367204729772512108090929394072581178886515397996558178621677041515947277716445007293964510680607961171544516976422262204849999966516070045280831700654000642184691554247732769719522675563030067513433902515569842943708891190539830972280727302043112656731129594929753600853934505372712507431925479117159149955512296469243352516125694845888447419080199629204024408105328493374135726537740895604005153194631375727177617170507417949757978060925919631589397606412391478787863319225687787287430506437994763515703674603195834148504330398704344927325519552857074068809280815463770688740514698009924015609082667625082037622775418882023741934522677995924379873419653753424943611341643660773576033434485121170217719758895438057211636449911272315949757019100389516981489072212794992682348339455879475523987165848814551221639485600503235512164195909727138271016960907229648485371358791074918343139921492665581328490180681970889856782851873551532536709912084050932941073534576039431393940562548788963025401038597871554484220737371372825009219642030102463554940261859694845459567079194226978966706320172167053836283900951696947912545872252259115721435078773308793081834359045448393737294162192180664951386400018021938605432014366898441099911515439257744566530558620890280698901201108316667661323740607235163031070174539607267121889343208689284727284319509977708422961720265488067231977170763126229535942663739215933936665980507318082952708026225941739370975919193815533555360055567994118877301816309818744274361977133797853461196256611856408197547684924528489587252687423680722904431963758121782110276548086824965137089737912402648663759777577016563135759042056503941991325779806239654763219045852852893164545771128581109148359876880454709319369412528689121467174611293744829114307453682594682284654565151550481847157167536244049239528494977081057204421384932513232874419268588476522355137044922024603971436485954985451204210122535751211628182155132808754894770716035396921781909820023865524243536773033561762476868697865164213607152898154640313843492211804210780483432812671046854749343032144298503961449129809543602251221117447280200771379714236960631395318147162984670653196334075398263535518094155837751729233692154193653217767463628555434880990415032132802529339732920767447007995558877613633560788713154279791332206781338975750010943173374602975026738135777394558893348005774811264717788828183689951336813600843773977300493619149453927558945118352035062830778189023411879676139552978920349684262700565163551469723234238546646879604509269377631966097133758625786877324718762816645189700976530841087905649891357455580200066609757055598384533003374479479177680705297013404408776588745026557784995440051728687766719073003338731351806556400739577119285070515451598246941667635339075591741361245072198760234298718829665720114961894674878195354379697825738180406845165826655287133288607675020280810313512407174200478006723862561932727064904587803012270199862841568228547296613910651253881964578191253070120166668135750975765135283137424705263551453100930619060592356049781471473850663350549414867627741440461568372876082597276643696647996335205744975782465602987048393860260359814564756872409363115200345940604425914686228440615449126565310031293551428238941642796952191921896831812251894221935912919566222589949585092591003949674383036916435784183738348596654288812452476392903941210836539514101962284795263825139725644171188666617556420245580662167776930523051294605929834216563669630347631711527025861741432194414016563309375396159184319026365936811715321571584797195105524985381316365161714439903489076349557707476803666722418893378690327615174394941183763268888160452575062751874370926731788224010507527464865517541637485943020597820771211447633188615058873030584572752154829035636000402462175087773362438484358288862682975592260904631001833516124333941025775140635556620242879743298547503985892567588666289056147203803069111754529955203250950525828127486613164109255382026185318591114900263124138945254919134352296072730692766701271994723397394625158416791303636711743647698561569097949606495158242728054766304921170294974543487188794840361102349484729032542260523458367633959008785533159030209228606403755404593892628676516295155681510581739827436434942636239802613792951750750923249919327140478240983747217005210562805947205230819500922548859746719184659471073552741283371763952686350719348407259876627424533324992998882147982392453526402837292146384110433524265380734381394094967538519871176175108852603384553939755049621718369535846450038193922097476442779691590511168310545196567157551726765123748291994564116885297120961346689615760149143456646763739790473787541787507578963345088012509937950587813206330317560294116138211523842927325402973648724740758043563475311859412128731315164057780150896423824072736464403449303251477710942205378761531661253234415363505041891416360794060321468390086943728515295679926092667458922028344837106310587727386480361329388525833415245426507167686217466062449207420395997852171983566798558112397307592815682625224999697667190891274558290942011583068261978528170773581623750301193016985891919227310984490410874708816605723893577819231762679028142389426702229191065598263095023680029792529875338002769729504507404735944717133769822901551787560586899362980023216769645008607416030039165927066324064003754256700438367818024297069912943058378202859656721554053700706471541342337044805826220750836643881080763493170351547531718265345520213404806385259245232333839818729759871161951872599545034037386121154472710606589940227866154139210212255850954592414685301717902348230721846298995531660430774077419221158491062714134576402698475601900023586108079752065656221795712284094135722993257057419855560619134363094704104392072814035593032172834240716706143660062187584101713552791739031707418937567627974565827343803475116169643041932177644233948450848443445332211085697777197814920771750281606692292214683788085186700217394895663423150743266929856736581696278829052566605947435895854916365206100917338941586154741578892810621972158191400729267979500511645201750514380056511849269289320606523968453959366838454484987124561214705334352671533155895749551332340164033375632030858805590448710657310284421620914416333955934074492900376027810237179764056040007152722237606610659707577110015582643041780402440063326089128684850151676313812002613521635821286264466202551972233128230661683173973845766952638400513216245736424172523001678185294072252218128869766374919520245948453996141096518630330831880070578692557741027189061048994699009211518225981260818662241231704955887795219840398120677667473780945690751858603281205678067079993878289398857905506713877312125766294058647497968659599995174679239890954507595684494590201764902555128638678611594569379608744004220641726733081243300508828218573020396561165947640841285861205348680163770560987333218075042278064747258435330748346112625205392379631308482171135358351017706040688927173272902531201080667097622864396228621983022752233564553107996600759295438191960727106669895893395581195067148251877079273859366013679792130411754127383561198643455196678511824408493800316986412257682621205983967945287518013073865648087456957007201369074430535021947484878273769640740098831444612216927362851496129344068590528172162090189220315720226114054683402909469630835516527849440011427110487634462842320336749880211307504069072311991209245862874860403210768228239907811542748287250114598503623830329319091618483541483722917956649581818607923403259868767511828834185267032021689901346657008364724174735322237634841354737119492215899112908034366098062235284982947097992061797344714978472564076326069645965485228151111747365633973221632981700605900234272659683875609816048822398586449397153088530820108876444906003474053812238885671396973148018405453547022477896223722754624504712695846644728186979345269329756851189285705261750688702376746326393886994624525117871830375215596163379422707167777300008619793684753698873370553700711413706877677357951983532793028022402486961427656075173226906965689248606265364450463466907469692218205267972113695107143541798898716852382149222501612097964175455043691927534787147955364326935449986447341232213957889643033722920539633508833051879934639186405987618213437836729254214207092460222396700325276697309923808597522904058292293679712428188193004511182261486583785027777930354597262119540475353369003088288489986910061897649021497475638561506015616716493389966903946589870794207104824547064426983759706823171809550339133222453638175221429475901091845699122665320232018717564230189332287299970279302696524894473693144897253372849228319928668610120695760512775282310279153502296028972072939083110235144558211040691486927109223857024908099215996124772792304677323112868732284905785545772681939547626284662622239373040214480109718729306450850233296121664254753076480124535258363115682295234837795950319484395795970035784649606736583797646821271089599748478293487786220012837636932997360084942026949751521496243385835077453863875668673730226083174585580890236535498673185734755222268954810325960936432530446692147017576981985403279338464246551299620384167638856442097190721262056752774895021159045689865004845833986654923407753602355089879127404247504281159763897935198849181239501224851656742491824398511077503006681000519728139744484711377743572097669000587522257761853049304324812391086143255510963728914118217918565871076701286609167753750778396459299961181376783015188459226880736081122402447696197240053694757699073336896745115719721303943446192729591098176528696070521314477535985742407975260716740989856371393445515710659427413057095657949328493305813411127602000557219357876908591644726910560624944195040037506855371255391569647134148734443002926890820286818066451744207891984964558469331753333334109404804546165511994680936864540943245749840877856366102895532478218290630435198008538474898127074263274702133877881171780543356224522138528979096641964746468978533754980175576456050615802010960157815348524654293113414093689619030961413316488944517283991192955777102367815059297339717140929788921298229829086110155502300227979850242474414309392417286982119758210842132129471757666851163084625618367157813943327373895111126106469360540106707904946431039082724496314718126256710482812052061866296700082273664889664471548198787586632704795803385095945887616408405928867764625608834308051962417367331991913890197998804075136962332666511210117400934618181415735945912241297403898724724929891985673535072657097603939535482782363323978126524980202268936103633249676212730887029550498346371432115376454450930319075033472947386108393342750318185593345189964182073952784567606526018033057604453341545487195820365704408499432675101681921316652606113786277165136183906693218171965991747755762204316068226807097003837763596105721006882265257468235817867867574493226379021222353506683432653883808742678337961910000443970708780515956842144655924339505896273455887884881896751760252851894510857434063587981042998727111456625536800602445134784016377254004607961161849345640861833444165488073902480513766136920530230178478697225244007964954479735097104027981897749125573215319093231724695683006476278837820779572082307157670290850413495679212863410466235459040664379842840506215719037242363765574096844683071826357416433026873262982154961022335369904852067324625249956509007366342371848918142656496938401918225409743759198459802176404300855917515321619585734466641230340105092598431857651987699308364037354487828679593026285242595279605190376428531809958299694733929829807363336035709377146326307893240210913165317220911179172124105202614189787721946168489398029127966555585936146347187535072842051554114564290868148211585522350824597109028673465588210767247797594139910718483358500212979174889093282635448265292865523057349291879408789820809019204229126574446576405422538677969964953351135031056786900623343356821205547575175673859380851563323512826874685121411950583040038848382313389996298973912955455541982403766515653165924504399182294719286283518809697026110472534766344899008912866523145717536993806913024808342336459067649948356242421473596849297439290144589772763281739187332951845698898092650800828101002115471568503162556511344381243599167646631124439112752847897461312964488605506105035512131982765196662524504819734542250799803892382833893313143892940645789071347596936640285010883624681047232346781526883627138607236953247366515177635773957066012701138431168487144321464074446949849573758385228544641233989545475712506912272245651018553532931285387893845416858616768647791459371519808671307937916203875400604522207806220529675229598165276168972671724750806553765255134676786002058101974181966200438873623071081166319095394641286471681150324090290879057431251289570720992732110435509685656363076121479918955136516975817966312706014218293900843218304112579332990344027935778260836749036694162587470369808424617386333302936928210390260854757417870539986260894957931702926080504004126186517840693453314439050906285205580430081267074080532785086285958866315975876124298766972127966820875195221032700581285758990056199562254383648245819796147296730458060535429494715398642191198391200322171176212648142318529506807114519777339240748465045293271806220203571687161701624517820645141145661507145584200369646305084350199242714474371818819423552359223301705567989343732427156418065124944600671195774169643233129213895566878760105024019219215824694692597495453078819243489620265069596914231796140076510710602975092095566196387039543784573702439614101356156453545299562622973855613411743719215278125533199154231953385025190854889520516045245675547896426060297131685560856760789042615315567631288612335886883636256243512787092596447670700111211113015038483620628860977562652127080508423271650972988963765535129113174978528906152704870412617088078803999763655825176713515517162398249114915310812210889960104014301946568814524150352913908158731359211203942145796836632946060182471260930803146059470862758167462299898830491705572750190741021685097241302766180267730073053886354436166945229437879690939997075834593311525322393040356011119845954540881955755923910844859061307615406937050047843915848014712373322215294038547333267615878918235192257526162957605083595356806041194297433429350381150377782076733629125375179305968121994158448283298865888668715370234827245535355928208947102644026332517660364187677840459555653784658402681866243018921812891752769874428491466585761957002473345394691451518965711500017204074761596977660551202760521821695255193063816598523132513518766107047170910252516866443256097386231926741447385392301762319052148273275397924007860331763015039914435999331189491031321165266423242589084786713027770055522801973851935426319984488077334528201149659904572139918364885725583934374497966551133766014174706630930855333737944706718724861241921364268422926858901064644041010948917008147223933771522593146402293564979308085269683998936557780753957369393715214790964821285746726054800473214040865408402559061715641146476780531474764326157323336091436744415047775117774138024431814717174363665700237540134067239768855715081879608185299853606900084792673397751426838209306194375106753544977668511478488517695991892692204692462819376227057226938394547952500723310773229166504226629659697937300086288040928436234983061618982951011009605421367314597283104841383037312097447740871945756682202577338935641358939982593223709119954083853832800510366141772042178374478782037081278309117217615079325183489432227291107948397740251981519929957585671367908340836475753825612627732965694548330552122621146287326631536429865641834250140350967710949789921121004633772132256560997469615121734882371573751398217243570626816453270941888655036536469752771974136205740533584585985616862040998754327985522771207041296801932932401045505610947460994070061410451220890372663040661318632105010987604580864712342798741417547102308419912617605318711927159215459585936490089854285073378374333848001457757671114398283139551637017154640276355218498084194132843687478925310021509992215466703765294174360574370403556868027556033141025925041123889417347034128520749435857660193614808726571466250506129181028732971836923349761431996159627571172421268297091719028078781483718609614930806422793560172558402563977580882046205416874958954089991717894112173524916913640109802155101694650748748302963956770570606159113677841832591860664681287493982359651700335982252695821504384114244815183550940593866878763502418476243918728023396452455620959150748026344271504009438163760157807838592784261898355558273074087804747811342278982550260227099133144071958313260005010593872818752172224608719251547362479436377213573049866298368686489359874430726596105041089392366467287447899104442050370977224335065931255390493850494253472995771578643798439799081619138121821172643654962131939187037714622840625003975900127576058554891572966848082866051845327230799143430719509980678670204544557036425440647646376595178056949306814860618741110882397542143698289260227861350731106621746906382610302493923344070180539431574298031402213357507005312660948873038789729388944714583122869711886187419508947808114765418176332548002939046005412497364182351380859361691449449974812290934715327033335846919183996064569787031699657514190297393196465804076531326879470403129461841613004678977490025091639663273484418318510461559452347667389171792563444972772844784262480421491269448468821120588390341684786715057625614856714851183175036406234695136241479599779328011106684067871872471828591979517173327961432551522287439510584887077414788150524675820212066216618935099916045094675127317158230337223124219585813764684254159007568473520723752429474510680890086197473406745875684700703336477486112366447539009318095561101269786524179882193033010206457405719497230293328533985841293054174855911797002059358714206176495133444589816563529671150733766516610065199758382048340311967588154303602536610672313107445873988021692405335132064248378506738562120625229724808236216937129674703242252589017677451206454510561182878634001201439486994329977400858051195630918394952198411722078718787153181932865766406919792642539645881893835226557576498283613253013841681338710618476298732282963029809890861907633202033367676376543732778052583734528252351841354432994846098150246867907204772912536582074395111774601316412008627682634690801500189070916390140952824397085063347956113986553249501375235949725863775005050807867950061261477038620467912962245056930561097904499598865049326757560254599129312914415662098602097757631071633479261559720412898524015625385606178755913611194523464793056955557510984442513894349050128272424383665775808790383297718728369698754883095036428885623536967315869143071485275119311100390005663866995420575929058465675198563692932332666997293709848070598250864197708103355400062220610171425532954093236643547331948156650817422893617766711511852838436779814575578581195435657251591882829480931649997643638827847915570543024292462497825012784565399189729907846535331871491615137347511015107350987020891151759827871638115225145387296926268156825920760684635267579451208337004673905057703064669230457653312879089460270148833798273208688679693403948639720815694400135784194846776612147578383905047018246605755811038598952389954252173410528976064131196809768429455137952069390371237938749571363561352825754360146397934135664295401519912447339704374439820227434365764613739317297469033666098365218517133463664701956047809428021519741310089484300556117847639163828258323285416086590820076504948935471361700829413679548307279302157065379166816398084609680252101139982928029033542000896603142774982219648307695960500118159483924903904983881932967078217535231437698932780447780622445816611726218610204624714261695340873224953260352056790548897064916434505765596519605767524964198013585481608154352894501336526173388122969068793670028566778185557077663880345421890968628420738109280601687742433736085548599346191160048056995653654182929213083576097822945947944239779996376496114915119246942575850206873205009737022791368761615557830671137707863542947974915419786181890139622838694163152071552697944818306429769556407268205000025523082876503521148896225284504405784884543065606022713635885379505878816137376981505586661962691185119134018376637943387890274565286725316112615973397249356770076467468663125199469284198069713727298594188630597456363175776627026199931618317856586457388928416049449819934245130214970783633116005626586139220116071651974174068586299844526143291327690352345774430759903175809512141991325325002950662334813131991194819596068552690642578458376011537873318605042606824564814675303777945906183301001762748731848217072050775482944360078000944684612872996169993004969566512429151397496358942577276150194660971865959439909993309976427107061813539063100624737319670670447676014559755320818072303837295152642034066083295131108108320577416506730578432495959902918391628929616840769296003233960521420277802128050954652204778255559228034540117040272818694698047226653465805420381923557881424091673991048349479153033750960380187478152196098512653948389323629369110986542200891683677324369611548282615770961514618068140715924402568751316432149253009440552076839603923919599906774482605794731059893093245146677192621164742714638408533763229447563931877090503857929343929757627877230981884761696786325958386624059571323114450843314032470683055913718867513754720996299797350075385884669518983527957760290908300665436113383176595558520820265980279178665948513082228677776703883513673597689859686853276591620472295309788250911760886111789077957711686462328299896785279625539445760760714227378544853916023754006482989865139911533212354653562339840580324592649376215712498764573358935225387365646282238907264197815675505150770362099706386002344822378826912199448728998986289263750322743018314162995643920012687848904899172659517950949139565304952492087779639529664377089299185523705769083672080856084100751267458907609193997762619185866994608850831280865824548056334236943528771596417013098622612827368746351985218404560697021937578571457478257556959778506829326294510632130174450884009926726872470506259414807342645568875211151737813570120748979582094194414310542207054235695821371137498403239223575188317301221055290706392664285641469025305039576345070158257913564404447304935616288429505531330792827380046224144166307050872551870049874715105089601186957983452725082269070608517022260859592677475688534173143055357733492564629498645044447020006521711385766964455777261113429067006973394496829665619457490579460579177774727605720891291778061116684048596471828978231661732652735575182697612676094985418212569647956888635033146527649952714079440574131633005615829557229676177395122806810773888243054981690840428381086068969966127186640623652125992514719444017035077895352259136098174728817525542102116972545260753064939996637893014369238179632307184990325356360328110846776315026794736741204452926839674233747307502062031379481646955038351011302551147006890773540178541337668540447977163192943310323240340487919559000133676026435833241318669648311162374184799572280239393676671953290422690659784509652205348799177932313413499001559461729449485979479661407501042636464771881878933753456406985854622517783565456509008583325659799745937711709348876994440712762213897624747602689608912156847412458287682482211839236406025658870458853287816953738205242548217978868441186732330258872783189505246464973462983825175526797326148315871769105007803635407367625937518888976204148659477949622820432867087945973557681050514190963957691133157113372693823308718246933455655023067003835820585049099493806790185129421523007854582093300593046421886867653857206482411484987587890027131087561045258453933355008304828638621825838390459665100317890636857025599255787159877349582601866272658881476790856376555741881941269448249521761322653455714615071181218980815687090547251716276530944769102825196606740845249454552766430900702962186077079867532049425201343161327291748595286128199552300406401115936695155401290983835670913490572928453624085423344353966941468684057976041142744382175845628300728153496900315789776096524279693203165023691910290795247179784671071391623366128113653663725000277996422289060520124408219300495569931765202390365889943553740812508089223151147881678730327942927141918505451090617341475576617099645573061124732317529057286743573182231277338450329216179229821465554265927793879646043922345015642805752656681984978398082100116410508141657083413525728416674754366640335656840026003555582752774368658590961244349559704780356440442158824443608443782076425845758972103827233485870596735616246587271940686307911926771953496841918504859344991007105473423972256623922023435941758394895328799729674144333077716095950233931165403866124204314145861862766921099017780889539348318609905895150799518575920769541171032559461118572059762895109937846289408893161755779194023639369716671607869176340489898502514912060215220118119242288349263619944219922952793965861509095248839792336846788325383298238035378527193823198633428554795701438775248929967841991470728636233971706412607733722766634589760304786690818027090021755032233732110798897908478831550284951147563416435032372663171501959173305019178927736961981586469591650491740355156316951638375201643220222084658640788809986003389609836246343702462316102348870345832889612486830969541633109234653850247769285206954520615857704874506357917946777724420422183707896150454602791125379868398239215831925159052862016484404627479569695112240011953154417606490368193438361030432538820319794586944618915144890789095744979321770128623216958953974538934181015540341907200206346335488138841915524779732858014020029915536561961775363061695812642014412879975619985433008132061096658559044626312413075307766262676627923756295768341725995053537015144137204579653861112024779584982879286637464922622970767703322563882940747977093660935759344821491151160190223130036055540677463717705641209783869782812885885946487576222535392838914317188087018504362996418840921586998989976737233188489508287399582173929612968455728995206192908063576474173318916461423049487164876936123409224347041080437017547882291868839163350924756143381976922840004513145116145951200135932065917719551557723431263455636365867259371373743450641699044943210461328497870266000576854000629900962620111196660594125252985185233581377100810626933233462351228153310607697679448818309303771815911845413719469711741161864445323066538131010501028686636414454373263954392888277573921104797191131559567949575054767970598503324638962143890586188391681438863451036228161948518220567138565427127508247475254242823825532229714613396183734579321388981419426067835014485802370973727674317456071808618936053698059655842617108359835363827297429764692660720678570962735264674614328944039036249875684548048834052534293151809197936632056522781651313929383596518450634071130620110259822754068614736162024871305677015479369275296155567712496586043015129083530052691058638243922118334780904667104317738019621872265250212117249508787188088651805274539409648063276418209662267197860604338531210781836652820790483034336792776306740228994541767563807776068807309717602265398864705263823735471878313995257524892881760357988775512529071049501620996732533473628765507609487471921640876337946800566858284042799817924907450647049176379639755432896474466336690599344006338432889631716292148542291391530572837133513417669159706508703111314567324368314238855702805064226656336048706851213528322385183881851476535372833150728569034952317449191104054116660608853483325240188033849743951545575004132780992303160931099340467328747945967966976669219292775575281843847257288391512398510900099763739643379308528658584043834163028867456722523399910370408953212507718571660018291591535678260638629152416320333020495469325794381822933197409754391967403938862503605316963745403088133015760475545645650062533783433298372448621299249338248215017911811818217971733424922497280772464008591041175962897268563312852967575098295101493294487686978354139706674692889696388293705124941588959469784775444986471199868587720875804855880976372883683584210034332259574335664747019194842835471451674405909590879073608390931388312300175777672741124597379263995009244727855567452400904011761553903356782814363375784314444597369315625488994898818575000013072883961471167540470451341555099532591292795012863733466704874629973924041108941724477000719264804971838799379640509724215035759239792904483274172070462674639351998238988122267318966722821284704900955316409221350838214922846211579273963946949134289532501117025615276851140737884425769715846230791768971214727851926426601840018906225786995427006431289333072029856463585310003859417210886707504510285848978371740631561659103227467644358490240764181827085076510550177661981910660151951074827112720629806957988845441688152760046395222060351061255440280729070185387014030020236332471826495835955353961352203452363646162911304310935288232113412095712349143002111056778843860598996506441712431616153508064611236520525995157340617753346375847443403691475629171555280244542046848573052752161885905649231414868055069593733081608158313746491730694761428298487960672095998701859066822970670360287599141379064466024534506364967171929336211563293416148021296498229721239615034761963451912858529229859294507567945522800455632310159594259741953116682725662044712145849891206430603129468314715579159659291160310940279218520888340971803529002800201334494129347602662809488307129875494205170221910242526109486334654115868083145611413755656789265779177153096492487747737465861794066647604008450841970052075958657067586051011795852382584407855509806648086640244558133468842754681282557687615734098489799009940603813488706970674073307611080757351687513829238241489600745801552257827659759879683723775757440311964297119641820150024250473728115201110861118977069086076675505670140744970166505593663847128287840413825296462731295885489881276440756251776797275501784486449447009977598790372235727787641988369707196448245739595713460120941420137140801129874123677677011822391836333832270307008617248481169918077878124333404752987961714792779774744802882736698430188307702001257175626347311446470619230184507666383087586326197407767684142754949172970068440736796546267119368795802381965963161005929782521967793333598155693840482909498452272706153310678945627215102525898829740883362716636199273898634024116420638850834943825871623401843067432725197616962238517373423554128688184308806497459706987956959240697974596656833327604615344067371894050969455699871544558647602854129056455108121906118164832344424492215756406069975674844670789373917498052725657316250795131381909092746188833730509486856339840040601509649370830265175849027306093839380179416696512957096917514792840493731154584798558224928245837750947413954278130252317068497286247998024722488645364682021850426934266666938794442003450686684350862205675470837144880615568045709103330303089246305794820807327777102322109393547968412135349736009703473707792430347330472909107941122349613890877346469156429566685839490380848906118316022460970086653519696956612716925252484433359889652440034143512637509771765358036404699605310443271329926607768428162306595435740441095953304609502374784228470940402109765818565923483581988572879843669702931747421688448432583010534713613032267003385666453602234020342888896129005303930864045103272244018770420141040947429145843177793709017061424360833917568789969720230812331216828052020436678807829362647588151795675447661240524887015173232459878175594242574112614389664889946266137530172027023711689085858021707837537060115533230745285161107209767957069491789927321950760837475799690523298575712161927595905300772978771087585609055661305758219153583613765926239545715355053205164291337904229763663498038929739645723252234234810218583855482910328243379467934909779331136922506448188857485828402821513757192654284535882834586073416725909123985997297865877269502931764318040463297983778299754394683185229086253861900626287601407712629304791208414576654310577301094424452424240830920153418346809523843381010566734187334208483738834555446538899562808509281958566308440863864992287222424873194119232842390510663470180145943883564371114862774123971383617330419037772969769677558358084663529297409168714214042670996813175833778030374803254906162839255518507977014271209795667875049433476998483840776162327210206799420155480096712152803722855301984907014562293227244632751092233966464377302938729128568905780940680689035930417087709350162878062372093334619032702153694899734669248362843521868009394057823746194436941265237753869200147015919648934943952776340178768438748847374050151178378991361606232792121208000971414718586496063828597426585446071949063703298284215882316962595559395978563508008320237964501378983163519669800215880479279290779720052871934215476664686948970819633782441239721785901370962489034394926094359967229639144926293802809588441164576525318390084912720987809789856336045775333800959483759953937135139149368958726867349784870334415875985762761413755579116631756899230461222381373567655855131778494144746338516289880594123330307116094027945475867495238277247141949129070570241982427382561657524853989938930856227731190105851164249946824735278727787429282023957892736887127708403272929956564819268515363260540824619316175442511807233411633822986460198510454057130091905715244037329843909075617536376470095068416767206724735566713129819714064043568723986716894008693915580295737087647645211338757179635988468893137247867246591988688383546958049029693160067849968018647741597865381783592235256015218814288059725585276950709905680438563279781316610880666053838701986379212913095995078918466452343500859481623796576754840803218824995596647178272064869436504992445672406899718736164254198657603561803208186265585234815242429667448095577599225139676482616173036168620213250818489707412445179457506910159518998815547825280912620277367356792829760094103721469318846842703275419130403361168397463545336044780812529431675818999042997832994947079582111702707903550551909675133840732968775641957512975101688628590525506407985387108378576857606820161744796815154486517358942866418306265751153985772205622113666168898798887434395833827961210353160093266727288347883828278329815424407851856681146438340316055616326969609028067874492175542101833566675542061037767380527911102779877374303258916115941655670252325627386410561490702320615048851627582034930835975753493875958290965193810750545613313635113238089494547995231599447333026841547278719047896261922524840941118306216427632250995294689501539517706384415644397461879858162179133028618997539248112864839039302402251908897236812957524073095819264576652541520915812806336067618143046301831153892873422478891795381479689030315634842499847051697651614007092656438616304937695464129695599379245067030616591284842953533872234240884499532286569790129976532897347248836657338552343775583481734674151270140518081161039560185885273802784296484081638008506801339901168829067509351338625489489723619046774829198971022863891014819038717313386561159623732886853384938215307797775541116466917965041850559355535099996209842552151360431346177154748058317503446030075235195255244682826264235444266077079673658962842371144684383198295200438302230421984778950163629403760913348078871114570491761185491537416162358776842844556377712928600278788488422158040970040427024577628568868042065179232813498042303589218507955919748487869892703419977937967610075224788543141117770220724422612523602376957121323068704018543070729882037215972950876672594047166020860474982057498455865270788592779082073242203925939005853570625778548407946898273765466665605005174142739435470368533328451213990265250159611354273240374707451069561487340236106319698316897399353348222271479649692295580970157328580568603175472597703910022276577790380714603799622626830448026868976306821326606001168463452896469363855445914708363362617731633312727651281310527816693121612191352124167633214949740968351987366222304735266158217256472288675641795091063682278238604858288216334828930674220125860848486577917658153033358796186360378028416955818719056381153579450106209710023982355789553655357819834571200522559664119489737038522025040766188104546272685922058578539106872594925846157843376081263817173472894794179578834055787643252850903559616755057949261181079566073567997171609227086698781621318457897185917220386020865328466051886941778218059909483593755695322929093140433720164664931556700058091040922040009970366758210330358330399174959122756720543510355199657734709239450440878186925577404266093772315840404163644084749653308967254706170613279913818956215666407912124665888089382373664486477802824920065532347567184864653828061329181255573023677695771804591203037681798078384193998303474195333092081377266307865423356158914755554250043442966878065549997537147163202441135335193044664214586597531073475374172054285257757556067350832105932337098390478974940394435519371320257143738533959053999989087143588289193959454972357428513234733069567088729757408438619240139466102265069725662875433785661649121565923888653287436320949024456040001996563923342384966721665956120564061559242283217952817574116993207881768908734220658187777767663917530860603879540689349092961863750286849070417119717294485155600793423229745589092235167695330944701881502676664380286614857639677673537921307232725989917057448865152036823144529730305437165772811071586265949686356073141181892900210539904312440838194173181184717060084263532872835507926815311477636077133395713705608395820632762855963397547680377437702374179579839563315147768323613032214099752796064751145037246595697927888723025377089707139955969689596444474854153210289935961892661941075213247459330534892727662464868658037977995378363220152742922677173968095838140243657824738849226468042353862293813831404508658541334482378459913781244413519072816188018841245627979742569495275656844409494400481220164917624984948796119697394275347414588268970345397395746644545247247638980062525450810526957982335795022813083898476182533254700859945480716028615224863310087498727738640739712552661241345742771875276163411684455528440925720482667142973134515962873619182787711322254450993344765967849217420588569280229238761055671891722705681439480637411393662161845300240027907613360006499568301862616433197481298741376451304389481986520104027167930339577650752140092568483766056921014831915359116189201978126191339451294586085331471528910526250708783916649283635220561145494748705147283313822415015898181852114428972073927695606189827920740452510952821356698873796264224971471920104967608191372827807328994049828334856500521628889606883433730225014098148963810657229970064446739934741216922074283220597898747105795592316150482346443316235254267856809382064781611295422597297835027625020242371351725971877369082673275687211937549463040033494779077489933677221530979169715625785385266706184934873083144652059317916746863887945379832333614785453541019670351366126320917589475796170420819065067268345189002942416773031614760545597690437264099515662204941142529509935007592343137491547708309224893800793090390960396787003115884587248247081545071738338805438294565884843504319261234238072378301063700845408414820262990119107343822292459618726577645625496601526191450305779670521597247055089824289736616577740922883462130283602019571709169255817301465484102110282893357243408758689664319606500422677526820563022427591283413004528884582170106047903958856931102484946659448539340966712140374900244414463454000716560485213475158075656970910160603253941514013163326723311728769678171116290975671365168222675316563068297603670643612822970178160397264187941307755981257444970809743673331641022579859181059851516439234818764252380958431163953398154644520179252343516233957632003130162359825796153932353555204964669123934349351800055513595951646365330671111867420191152767574992519789658438098505300831277263571036704550753343499102990042849158855963456769693111431802159345300942780415710326264927549071956084373284425453122648234487326243790669738828430953898230672125024071092189491194785184174396699273518722673601724395083199982565018147192366377399366050479526548594159692153326126917727390391796532813966401962010247006942433214075516207197520417984801738251402324185362047682426749202330016857836963189181072892427304211271211731110780504132170926157497484874261399008665222561275824880765748459425047142510137632067101505552321265050224199925884324467109926271108406895612600337304665482486228314569806968621516486235288839612071330780514176473997197235105168909614961687280923257062861104846870035337887062156026799107666813315938339690014548795603066360823670374993055444751980103033921489922796384475643259669710997717818569211015547623654665511020780009294396004569868305740451922780098603257203020607104429159423422453898870492001025766771060511727685915157228899836440599027880109023632246701061800872503809335818907980368680337163654399887924382295653942435568457300644468110868080045863453738811632567517693677302857232841137258734237998522768428739967745265627446658616038641135775596315755768816998477865670642443797209551521836151435698081748377690443804734657116309126634545045677541065661527076948217088445945942241673094171383365986026202775831625677923731167885375973692479287306026692804888192519081724795900237176269534502751234649319083862213395280101493866822757346535341700019328443782418592982413086563683035197912424014091827599794847040234594100595978949603741597524527827580341274436185352909145614868167789726630044748771052558249760267965632310706587868651262186745555792696339960443543502646956867995338620007838280725034616962321468953027693234075748635818295512742642831936695098274854013187601803956720964417822715123292022283347108704600681710987662174931452730564215411795811660394593232277904321165798228104062222611025293933859690660504067360864520925378378200790617303911200974144484410950391851717931453531371292932797618256802000804298023676689311603527209968817280157017882005904834819492834163348485581354528920037504408575817100097843241151473774583754393149012377626418195080143687722255085611584566423648546696665110931595032942191121022976432969870087571694821787902673185967777991420485845182423621763548653221024408739267447983130019290231280217623966959400657800563056752193686262786374692830189042276003359348637930550680441998667498678377211290229027120756580135824792789111928084428058350648322759712945221331258368177264482591682713698957299495181757664483918663590476557961658038009987374882580603087591773761950753642031522361098566940743195054033713262003912100791393375808065839209475138736871420090495905652706343179893959099211956162347367872626326230397407310372677422937677018511206827382885722100901191075795284139467270304044938990719873443122988713647830501144113057076037513497672605651681439027753839381636553603701962172295900208468394374686730998424417737251531940499888208061946070005642679063352801857263636568839837257924952392891839012884611324974721192144193496224720876544425418078551270869476518631493266724902845019798429321796684725090268859898854956507831801786182456451828308629586476606993731720044874438571444667472750336478808008237793777418835548321748114229193736460400326745937451407803681003896238340703189359552987493050099680779680319651426490954991841961312648519854152468953898399194668425443813916113951753158537988037492861705876855670086203334020005006554287781320380511947863173649022209880294170587727297378952123134793575705679528209396057134468118807930944905849965025865412206028334201836273078180430539909056314147555101176787870759311227731302920915063401228705198350757277750465957802496142790607557822680362310933513171915635576731088772424170635521197201358653135310644822458195909036490810199624100361035451282685484157577895499825980100894349842718855855195707484746921835530597234722790487147268186106063759289145972928593118084790942850250278928718639814073896188113093752875314548535162683893092075650386290492470387436853571621520510490102886904115344186516316795283850107240631197766391066649593567091346247011027842023587318995550977035591808922117148052428135119230218540445488683152935888110983124124337135600284906583065540945331302711270541179121910545274264712900973198284518002345793646245110797858751485633422169360739044138782798221205645780799102906552215255042957316850177952018168328153946114244437026724248445173293052697051543441417845947490439527494538131246432868630848345047162701207624743692832730875608185587386781788090481432772665975390516068882477739262532176383606410873640718834313855474200604928118187709694976369412677283403213719667620573713359888426280688324160106028550537624545814350136071834779074404155296088609204147722766719429525595076250639012785615493801892565544822799522108666643965091525318172214164842550522441916810554070025735977568865429868042603327015349858475498995216527874504452957893216483455076790513596712081375938123876450001958455596565685902424649795872638069506574809457402393220286904740589628666873699323759873061530019199166370827851594559545115089540613305661016585675927484149226522374367687044516264609191712973090910709476301740561577072645213319156746654926841970721808384197700634641817280718032663491233552044536889410052672795657460831263145019293465289485012158418313526708125730657140952698586311993266744672585076359035523724495306733880750301173663185157233076940251478537019481443801290111793114236502042616879002723234385640347522311711532363424955086679059386149515013899494039179965237533589509019062303976462609692753369851444859118004177939867949727527463535361113147304573875750477288330996347752669532945344028757278850517015983556439848090150640214850856565151983302536587711530252410324746813589669104550598082246509113116292140891473876087058269901223797114872762111783307497371096579199625719058051749195312971137003252752052054544650376306364944266037063061726451066165036605814139272606726789279217566236550241768838789656106829308026352083044200498616388922836641241118409967270387980233586433711891001680140121002238256989634641141420468449428721874983254145680299817334252627067180984848353064365322179348290076101887787638733289158960214391022987912374978976730546235116715633922400452675996402626191693713287349123827571751215331193227889875871913827976145988980044524984758236159085707961730130496529929572676636915237351812520687447869558830873136422440560974609875895333891796651762622231708777295961407892268024532051701018589957420024064290256412870428710912877724605827101893673634704393473901714856713474289560936881774541768373883214792029646150621830629483074393501473020751353856786438299134630500477470060110023882416955961619535295217494796141218501513908872382659572468330961670489682048917357796575664875617477647040502997374941855776682989298382278300283597610047281886168457458422540002719163979760803951980580331676736840813068474609269971352069592154704054276701037754306843018699867456361783780604075303194150769681409498365016221890794350278383289203964955534050513201295774324278515415288712646098027772244544914952052726777929488729554803337552363065005622349359130847106969720721319724890670794501634917292183939091020308229135637851764358460137671897132174828521965915201354570205468085822283091078874064778072755043558699985152279343087248126197014688781666650739527011019655948960374474648397792800299892249861901725358130828012968599724786378937653024237324534853541519427374005288543883684879786130747382134925635314508413941369973468881244358080376314671142352386615216231898289921233980622748242293663736262847002889956484938385065173458103570926434223741658149956104714448657534468632090852244453606138098617310908300734175176940670487776477346610190143338871151952870285580708747830243874257162501164517347281902595847453261409530964155890260078393171057043783215777652506707592962864129950434984487979758456903520191818495446177381696373906222217431309349419737206791108174615460391387885642312065218512846397952593923501222014412420096872029013125335747025427542433902585265764275172411938474494167593959951505743836365378116909001374257744075794762356694624706112881673197602525308240055736445736681093649298653166695294287657791738548970557355029318127799476902184154494888781754897797123166796450867028619908232338079421056934280183274968980436460411634091158840154570370774177139863663016179848693555106127089021636923038428032714192445140289411493539168738245689200032560806683835515524705349856869765266204261692823285358649372631591485729872072044137601961382658274363547172396735973266280113463086408056524575760967293193816946733863517980075294709000586947433063215721165783130830958057742703267339166724775937779210408935394705508734632888981967483172548961930240915985275328693409116054377909152434524740717140880858449357374732994587777083478136459735496537543293110086599288088672881166131639894878179092795215581374333224977559366234931907725088496087823280728197198378947723176449613457660157573266917887997347149237872234990450755237696555492816603430060050226594814215732301341567836082024825656569639035415821207955621525853380338582797903206354902444411771812933239325949006672117574007450842906385473743849159079248310200333079455717991086475066266195357049637277085864534445153572006653693715539692419442334906327964240925293070001651673237279606132116414542109032958730758979360663706051533343942601945559115262132394727394861534166214786890390478050928465151444558992709041586468435746271171653178773270350471624632534008340928109814679649823519240731403420202137428442219252703420393470031954945730964835293266063759216592435619719044630018918780586354861834335686760501715085127007126013383995141003044687757754348526294149784594544718284761248011659562284616641925484470121816535416952376931278005777458386149004426514319478123347245628769556734955022541972858711318902575066318811963415396545144228459066233701355436620339805877245225764823915621514109973456288158821056076084127343066387900411232679578331693713855186718647852390048255911699437829021875385153288808308312060290351847130452026402586991780394333461710738861066405695245453569653673748364419292406825322846221505970517565437101674760177616154729171716955408651756161527104893187022940437324853686167325338279087321737216469741159410483865688234560254147524285906589016381394782421117589110624518292580973363459548521694808586080477584038554143425976643515501165830017196605087052198924152511535072636514180417257868249285782479091805959437523201927664948137776231351710307358595001001973496513570931899958957609514322538529914813239514513248495822677064921376651911224012718460078008712072012175421697780910740679382305624397516075324545899484375012629441964035803056698128440566856593687157575818550337515035451441721876454295167959832300858449275780457608886467856961118483073531475057884929585433273485639500131394701287838365348338092093693321697014372258940180042235655622951979014299222581406062862071298910765443543954375771187887093592496605472004915029872684154616494741671477103772504538440700313119913418185655250299738084945738345787195603128172334074108474950018744294279593927095544380623040325130147680213574628129984348854743388809351960520497050598618770107574061389244050197290743747788477155498187759333128710754370496572875181208603948713687397985867468305345986425598748162444992977380587007048715396387856654175878387344953093859321863153581222777827364643074012454939432409613792100402865545158703021588980839323741988034849423613314711928044863307352445062386759098529872584705180132204887583785527636568004346908615546831989519690831176787224989425689729715926506854603813423325577379548610766901140901930058017636947923311451033465930678666204398139615913194408663002816533680411060476304514374653671399135285793308869189609115843088890067422421180180146632629570906279540896708440949165198240681910888093054355683723968039046925038447435839291748113394872497682516151240827599894070001395213791957570647588242909318893415705439599659453302626675396054883554281397712522454990201354687265064008973410118002815706662322728835543829386625902143784447949090332037619465815918873732298666794010637786487596575431678813838517889198840385920405342668130248630247241451672093355436419094520638213461724491590390689479209574386642149657180564384755696675813696962997032276713742510196351638865462126885234587916873930522657740592304378670482258160945321503135782046607701443821133755879527721585633632291806262045069183816961325060178447918051494417126243577263081199008540269917132059368535111789307478532466334860388785190966909146915150211012699130377562574368746844137749547536946973036659630248584613072476872754976926239696539217354342904949058986678767966719779581255403693625019785539364354728925455268828151024820220045114176954330304589984905720633598402877842657249976224893637692332682641248542881715324638479312250695847225204998808300696972449325603371425021671372794195182450606198949388943140691336524211710042224586723726094264132823846088479309703303761280200030715189677572930878368129534339691000705745843592490233816061923054228708994888772018145686702759555704862363326315977267195618799166779099866328018927514161886480610667499318607043765306684950887325984424310168535108154209772266098419429475588521113489001727801280362645768235691444622814076632824483035132532370365147972632181051527842787754829962536362248712320287306800111548299157608226051624762939602914636136243745134618659168851595989125123016718841677827856112553340454393021522920315967696132625966430141393675857175760913178285792901796628545243519866549262544026734326722404613276963626461664972307872170953637023530689286217413647449132859836035547306851611237441962955614038559939192513953570791599591012865053594115609637548588139231864059024930393150817709461991403649425358892442801685090032310470364215613046905324658587037587777887349596939159993725573233119120759867275329472539590827742258793451090771937374597354681229993464013478415471600359659343232399977945131950111925913512343048156655981704150036345951285163716367463795858660215104850469376187733234177369757850681541048732009995337296236327209308949165472357260022672293665615528376005377312576443295448438436007827402230821617228839596385821143278551656823774625008941132425164710953132528117472725821870515402451523918096520246315215203280864011982748430745227527879286603254175719421374282044125715935462700889478824315554915221051624706049655682802714571520142736701902173475171005745225867895239107928009331342834979156617631760669874226379779626264416697652053696553765854266301995850598878016121585332762773360591812680178209579888800905846546868299279260896413729022490345096089483832935631227795594545844407127982936185690994676323741628133391042253296641957266118625125293156141817190535335484040139237669036610007647655865993258115440833871821946254449060287936552258136684939699075795376333823948028181195990619393080308489007428862994771778139833860087664590656749814513260996506741276259834408587445386547636980020246158187088217982514976042208994442918493856244513930259354656350935302152434362617038622508207875697308084993682893073454914053964183699689275873385020257661092430231687617285615036820346865705646679319542052235208909033676259019682748568849137572846109363730172624730367074588338985877866836717294313092052355868276457945449364398639140717252812873161379057071628754913227093242826682936665409266278565517544629882253459711329674112121348805156067343536868311598798984849153038734741035421813973467794248992749418331024671317013594635413584425010304101200406957459744600708609263018770649628418891797180192082759091757531031826054552989083438448774425475175715759813855946910461565695362608182244742049238821620477379468340879048625370600730940625505080196229939348205117636750048356541196840841988027992192872887970087473332216574777472904641366385576582238396034535608308315300019902246806402031941173434199021734482447914412390975172745358112313178389334722825881144962344621937767128577965233335216449037931583128999196579664721894761165528721816690575494569103723887897449621569143888286411220134545616952823273051399136991503206528967435196617331925642811636549522506222918912385720859472261821341012240348457309356511594182276172980238604590596266198354069642738971251183516497214232952079902999133696025496515132680379183658100465950952747517519383323818260936782561890375724936332044169603585192161962680122354301932753964940458173527318758829509487720424771356255493507485253026224830733761972275069211071564390453904310608099323781650219775077470270062208061484092405700021130569993849832192018635534806191221802329327512444500053490099008694666202383876226344767429048598962816218863691043132911889328105026707022928060335183190539466184441384061470807852458174507662323558782501641551035326634708481173769930585265490545895970590815303953311353403239857308336631098566918352860716489351858581508609184246115348950413635162211590923025309764925558476281479293257204925943713554931892484779154594791086700756808896777689006638527311346857942536787359436526166651316479831929336598555922957533052165756765990857705531826222885816481875869897278094750940437992350910969443610920794773778787544485625397851463404016191127704907712060503956068330215346197672318613825156821630473467291187054253072058678973138986033643229047211192529216135453536095785670433458722194616366485156862152590688664090522952763163683478561701093137802002764789388144525521898207406977775003424687640748285118731061919208854819461653540118352592707655107328127977401334214572850848180787636082770173299340772946927983370900798806499763039554031322457548601668466124310690919527558969756728646231059536769870541925493896722216940667318762054066775129646984866144419146094472822246984153231012402968891032381480697917388252884936645025302790814934333791844900201441476579025245252633061890342081820113788555375879065393756989007369104715149159958868234529795352873257193320652454440415052772209169063032773836234246305269724634693388802540637863000214693515207954491912683234862478706783441680337983030361413075975315395371761723287073100899010125240586192875023721818774248821740448921016473820773582235049187911628166695300237187909415727696201506912843682000212544167099822386780967172882699452479222060355425583338604783025281479582929021534581104357479301043931397650732813224539538200224461520186637407196589471987132660785420463857386421529367541846030694516273899924990815253117917398530995838107553629611833907662330566535692197823286269193895829781291654807847861046041748468694101008829367771371523637226576403410988835358492509428450411783947588072388099175103935577935455172862427530434675206684513585509046126917827484419947375607388389465147611285129546255703895171078716135162592101382339638493285943459304355425140339890308757847376000769640758629158851796343887904037358346227230788290264782625577243825651985246008836339722677585434994316295938226261911969842129955223432210279976728316713476698814560181754699618000836224839862012341124932224012434384212976619020880043779565624425362207994431759554166158272327194879464870275884344536981994043278633539160046761429808925817022894647849492322475189632263504998639628437392109470933893199579975817766714522095982835116506247079078051056233457558318885001435532772626830680258452615517513391757432021397142206995192850987683814412785755139013195826208567494592289063865908960059640654354211056753298852228588168166723772654393584668116639590350911077853182687706180727622961752390911050873304541419168507194292292335095578231997000934165976298349470584216354854509984181019849687143427081555898657313227949242621494262872177981643288396139359639961423712587584540175048135667726002572256968915801897717102642985141408328045916136518094571015350464461282009948944106085082770165263431583428328772516235543371665596143059134054264963456127155730775960735353875127911535006574850942513995126891270163550860857807515684302294329577570408348301159986984420190391837198658152613226403859076309257069562967776694960696294269487461718764005481524083183106386485544551027537532600551201595623536979786625195011593566300146891029098085012060074170203777698284829866313285646164434363646087423859490183809000098389605720048272795568360243870588875946300019082550709935517850912818413783205868201320239471273051941401735493414085740343493360048007161302404059318949466608512917000970835080175218461259860139177022170843478862856935092368791569888946011505885504833726421079098373162481063235034250426220610379144820979637076570764978264451624272619555103768281027196037633965792331293670586846889919522598351189848457986471471757598609282909541953847384128805491322346449303796178671283576779063501009854151723158171028154837977414309896282429269431309909021673099719144234405929821213863617477627380710392298893847370526606430531841056658800689090387051644396371123336749675049502491755932429415251787471737008387727514291404593938965273124347226335056184947694825941654769274888632465110858917891824331794665903856416722904638696082651952141762815583163082513443395334265851492902378453115243549153725712759143961577147028085103656403284386375722521428200318025044161850276331660077950071868337202782024012548607394960658045508230826129385286826720075218031483503858866079548316966025484496808408422099719615255499638582668036769571999438024189369944320881297845545241055430500841179529061745167888120304727281569512123284375290408401902303694272763230160133561020753483497460593347583954517509394478176458021118945619814943515512720023554071129012800095322420065598272930975838850987040416416116043322068431065529230707197775042701349607513980247416886667238836606991039669301099028870931082876297973604904656730127214084177381646142596409061710027762969728281067504660315288006301619688385868102456967968956004388282369071200349471931085126592869521535418726048432053140768051667416882683418901081132998567423079036659556258856970806976799457908567903385473810165910327746859750809293931214801396453497822257651430894920278094427707730631465240616980045855188182721036427936697183226570144739736812144533802013541096540683341922769958907310550536356141745765952049358487062923541791409759983956181060550047576971021629130754576637572706758133908227114270858283780278646530657806262550135820006867394110875496524984685141204425437368008952881717936488832224489406914934544221452555780539652157329989588494719732043905950363012469897138166496888922419043862568656823682612921019878211365673830236356761093087337004417240559650254698608021047832332896553598232902818137793646686074073044624384985995634294741703930146417459847163343328328097090130690807813796596099977809036861447925794254819412549718019960820984306714489550194557045601427673707084451432219754662260563092914243700032180296491159100525773688029881404452109105777228944986985961661732069322594764398373801564156450695875340599349824504865540289681042040021883259910106588061801997462348761222373231131664249599704738831016879754804634873112574717227393984054338140511456443299382623815997943561517279053506708826805981230882710954196240694835155182860028772313496997488135009004506959223845620194917838892226597981759903448590480834378849502692378235349485993751121872764507633327536933012500585461738174090896705275248072811947494484999138749865014745840657747744291793650992155874351194022701503110333495008969587912610224219633235034741930858990890228253026902613286013027420341658758034578858388239130186213912588850604636280667712980337802014667652612756539542867795219704332599507312565289840596963237051086567741861492548076004792262120979806583096660686388432909159087481619461331622207774425250739493960802596858388339426533597864410337523365048962075451543406170436766946755657163046011526394432323177292254639564874317138939372027465671862606225689779246014194951321759279258486757292129111273384783408855177427937008734096484737639660301143814432115589147849185851724353865346759440617073595084764834522403458199566292186237132784132547118932239202819552338193598667985140623642113357546548282089808197837688163111871046386446172655963016666975966321792133511777426102887006397953601986255168580684140925339686183966659764129773794096935005046011293689520770885146104024168213417036802127042848292934876958706072157141978496868356667400013502327876198264283278852237071100892980713209577068038663335597670726867578176152189841875968214187993252879871493447112577161542501775897549815822761071407310621061951251438590623495483504964926027663437221476569478532411619629217739824420397063263800752485314462193224172157900683856054086968468458357506307379737394867209716977164327479475237809184449693411489715913947409249033748984718829146759608331281885090425119660621997118234707987281720093069216343104370142003065313629290421057121254261596588106370824896994549749927128733003369684786042465873138164023434391056254464197667670140137831212198214520623251077112757170402514042371844917670029435435708277967877214490630614660670884710595948714805714265326594092466321474468740630990801610218726351032220185758539607476005816764525738199796218623488719422489009345567388200691619807328602426385205043348413389085415557933346457604297583190373138572792807226282532058489564911850521236537423931064634281692552481327744286434492601025191519623172781556793697865476249794176739728804412935546626331003821213131317717627557230807006119495680381115087703041321274942121297562579560013943214163531482409624213246783503380355015073043167245338926173313042776301917832413293719757947453338600923661131119746330039663559129794154125371405084574503131773604668463000089473504409638046609138882233843357490595906148260688163361240689609444099076725966927356387578226241090972393616567786374549880000751408471420460975057153602650475678208734896884198725072512891142952354546113050733118531647761271377649255073898067723666314798041275681620982447611969641404941696496997876260857387271974226049681544830749243440072231555276228093341148586202706943730935273824691859904366667970289226971651853417210291764529723765420777885024505167977028658197969183956707238040716111888809062337473777828569942665338448147375389492354664442352063044757039367543969168784496685292177386961374890762284358918028708919797615472220649031431329288624677942432013816794374650059344893126892182119480351888189852477731780924670262793390810500567163680126914299851416003031658156988788381445603501008840250095116097210050689964074914031622355299693549908754444135236708733991857183821013341486200171963896666129923782770862952784554605984610981649679009719152299162355908070984372663121030145055439644877887418929418941791959088737633858605306842580553095590233526123181212441036710566076752657077380690998942137828714197270895681235493723440139459012219166101963650874725406990488927450933993614953563984194634002115235722674263351417215630390521898533219568348728814987151484734596171561697389245257669124057673440977590060880018876676182281860340139362316106740567877952191572387218697293295143193110504256924067130147357049051784885061952252591368176010575945809298846482526693472820948762370362088652073595760150214057189450459054019925393560504710681867035178614590155210399906017376394287031360203293292048485636213349585639140856294940154195287465600435012543852785227074029879268215166455609351797434691523908775925545452822686728538385106612696084485834475804588648136573278896081502748483422904372647141690542387217962557124762369138360078468948224690205588230894794348667579488826362874079462979694267571360589421303797069546534300923043849938604660928162094382519395624010394903155151754496654337606242657545019194336660067853102935942303043971512690297124087995117468629487794155756481378926737238436701299062699181592012932092957598095296592750826646759352007564274117471621034950593150121834509367075386905331422135594048958796249836656819074097694664388248258401763006057607301747948340334369590470676391848720753271548867996346114773759514469674929337892336725141878450843620696581956785065866035685115153763051186790397829410365708847224449159011207654530871091838478606801477477306250847697297961271055930053212988259036304989278369361160908614683211210552481263519403883738639059159774100505218765154945883817593524947822588820648645574603855693852641101157476797206961734702217733317168354435080272459200531230361168392460894873574111466595627960698478402618884708862445585258115457469929706885984240151325151194133399027630952639515461936324961797588755967831014903629443607126439283690704705153323931434481731493465426611649388124479409391900531361513658882736712685423682422841042097398628269209829867630607792497901093243279157231578983407255383932287590407818119897927287711061876698961791904823986258732747815068281727636171842541045625238707400625291714803894471059199254870976940373662504360728458606134717308441829253316016513011381432306740637574029774953239721755946792859830911180018743033718208034145890358572688656754094352268406108526609159019766942657086340195789967915763692798404558520511168638767772072075185707710301593079208221812583580247266344530612593580383273300095078223933057456404597578483940498574413067547887719329282735901162729213543277694007103161781165387675177160498723894624877503035065872869221121618767877647956285704881143151831681397277122266029883879094400691109887217879802476214719210857184802997305122423298869099695472843132120647348748276278915059627783435471224649263436400974285666282260181856805434489076531524442438639750188638608750156431298590476800514776437000026545030341243123062210307564129539573719799247328139347704602198084158599742658694849146820131424602972391188412062444191260341910878192700482342666644935443633525566353091815644098439853420480059472016570332180602646250705151424010044331214517742897027593369616404891848688582599232264218943938049138690315340284872795704369211538406172487458687885345397138724481579109308659087131558711688292145531839546114446133338325699745690153153553474636011996571153328387676093066016075144244372185540064463753141930580788783071129204008918745500698558347850881175174220105039792423708660219991411307852820716307084845569930837643044190831857275246016330636165770680108898306174569410484960912701697862987405314581625435838797913575856855436596076722600056737763512079619146505689403007805110787601333372243041348765678799642414315204319172758202366447194282527746334780826074760754146550832892590147481848621353335807416294645650450602784111922437657123740667717168641572853284452995397748871793157036192011801815687384195178048205899729675026956217294298411808346458604801227005999947449313267745667263451910250919835405405717258967163285353563268581875298475215723148040235899578932404795654229846386008983085154596576005138032661444357469754472541622357406436243264972122689018717769209711694017434299078049441870398161660303290292577529912870776058580306965413921028282448065882782673099122080279814264877757476634181758995369986604765551369004016927923458343403041442639158000995868494995356523896411128082396028880682095013677543525121047158556123526075291460208163093321000200513030847971728501659604899687459335850034041499077142980988258806455848681679953803816015103700120021337072848680260110568571051786267019822512784676849752542086021681275961961876023703864847315372587884440806056705771574975947678618788174625768708468967344653494077622552567433284173845682359629881378992128837155446939298909198713789225447892763818819360054359612740207562049050791113699716573868789531144661090228674054686053237669285957181682442413039395403111040438336448783728807206872572334818746765135197151123553279781103168447622858524436836272611438882148021762338184486911942601828881104777312890530091882351512459429420684739814521861864159220357097489375532519182581707174171885061409453165740464988954935727095684847292370602126217348422673728913069109870738705366204735346667090058590034051971848549224416984690699100935728623422840214623893383067162245136626409153151129848282067632052123151494296227280028871317463484057261326934943274196183175287045202148108208370053578269651287300161443131866447178546464848534924566168873527820077433113612788719707284405632884100940699237727604285623015160439063388191426900082026999717869366147186643988051670591642188676404391047996795660777267610423019385755770676083448249871736968306776499016943015914302144352802318118348831764508045939593324845843624243432759709804287691744815182324194045956758205165648644033634807504530333184763441845084820405076167563326941871510814006576746848673483459225504258564913840080047994001822310113502664121033316766559604161717119471993782561479763988770568545357421585721808789685406443347501916087337583566005905833045397594405391814794017961556744609154208696078717494729015907201284951130701507319313193516136421528331911800138220357428323890796678689964760922592599422108398486347481214377029578159938385424884908936571098257556344018098858146482758850869182680208952113850288428196381572171577745241889666303585572120841868294654351827289766622907705236686805006486851632399737813717483270335991846540364091424035488936280297393714191549036740435234985594625270413111056818403559201039827130342322494633895715390374975707230862657991154021443654644370238246448403982940944108942972790377973677817194509928658175561768307374606302478590247415849199249811640059629316136535095048526721607660106889582909514917459959586397147556347892507255427614346320158026668351087182170755538996742684323492218105332432927076863192796221634835950422887508494767815162634187788125261447689230602889672611222491044401619071556451817655603280890898938559673920089227857305117643876689220443081233781741067338697361121572965940151305047837667698179364731474271658392038361193068468084060451659311713507143966133144600272712428481806658516302214596570373673865029509980160700200980814836343152373327493056298682839717987229999559228183664518433759868927987929962105956736846076604008061501192609337909987772102176195623791692551407628139791804972680331494977408931642398291875692220600610942316713590251664461739205381450980500530346217416180736738715408764016892007819753672932465936590245084589822299877035088693464630269140118020070579628366180169995475949347287288230771616734590457972337027966680773541006434745002207371724929556280785504227041684398393715765908656869832368803153137811797319904455082325547842110791477163650322674374302925910122201698259210728896272497042761374268745101203799524874201309924165204287612926351732489521275133571481435081064656961965730395030616079589573274531499483072413162748106153165477624170964071428974176976503565445546346208618493072775673426761456911234008851648093061447774454429845764749607836626255618992250394889625342489162487427708705204228975726645360308456737286291914347290818742300817645146619945348368865913272655296466352842559371957762103385893141460415407595778376642520833712401449902851746187720819689352544650090423404740075420028898209096248805244191852329747014467051731778845833533138637631773788633848878779246219415554257383297555454917913468752270942644306733809089114044720734242279244447656174234339345272226310334198299140637435672042088874582987349695465071178529179091930408213525016489563956493583762652732697261775538454961312741771390143172959445901516877084996034517127418804753761734927950611504150620807650445587996672784613486046944199063883594040041400646842649301822976331632697862238746503077249319164367887223707112106502822143328599944466890552481661427678507074439041821724197960772781537095009627056912998355582043424226117792383111410350865564364099496452862956149417320600560387699109556660706835538131792460164483768262134806735055839447996151373748893989888378301246458761114935242398189737362079122535087101388080244982301218744472980666205240490639452880102470787644698939001565881659703610895285364346123801509601078145546495197806868030319377115196209490264577987132020470148278938067375370270750647367897323946050493350851922188667547338320151131968274785711754778982372598517550576985116349814496446028247765635187225484528580435476122466263506986768662587889817284376917098311065694220233352399080500383637482672603357989910430378089953665185277573196959216786621486216298782733012575360799101134840046899879906218713434603747009457783976621554640463392714001597521100666701609072922299977098010149262148704930623627171777862358831351781327302191034460274558844635117714733447088063927205242360876346212741039691241304891601315305635201117337073564688631696945365020638747907578017195159414197506344932331453017805166173684226438123194611275283548274779834852663971796578395554028242154769048058029491551800393641477173919983892832973096351931313400649267120114647926192032425812564144582653877070253612821737666979567030595887607020302582468115021968444606869279095714445594287793933257603055394787775489083157792246212165958401476723878247445774232458030761827839224146991197040710180089027905182161047614096134629913798648841248572129011526027687864937594758031064715365309848262751257418471150823087351469467787835656731518608734816032805143233005664497655800458493619020595936288675933238911391575520624936421107063781047443094679897464783506934365962803821712922149034420187885578466018185381262704771217953631669570299171526640602323313415306890680961184623208142323438142226335789583819783646502317807795613665128315289168978746148347893598564671953089898891272333433290549868926889926214682580574048344909795329973377380641168848638410148052256547131778560815449950898373948828916960830057533990135496816899186525768325133154015933706301701446494947558255445463352481276045008628435325979371648461384151003560589909926649557189249984722782460283404109085330068111687816212222766776858951163346743627144554805553331669099982613192953027386062726107481310195440584690237824291492916772632496612445192750152912628482882960900213353505941533369383944081480376098962909851267883608370652076218195183380022417738385754218202343113565255964061323513416066635463833141536974130440694049146682584830178092011545047530528506863116789818068708870564649634110268589679778645531404979303311893150022670924393736727774469951758485123811506607519944754443749018458515118114075959843923386675499916835970229429475044659265821142471826335581517473901913347840211277355024455286073801537503220021432401484484128138786698827039647218468653493122959154969491063766271788897488710094330795570335282005249614594775176516530946839119397349718459381941751418073839533401857522078960202572304343669842006531210152159002886946578576013728388443556098149259959760137924519634870496221002624083662495746634190262417737682859484094372618254386481013353887557799046480361948391120833141117758425345745915762713019585221711234891590978419883582646039941765041285824350980051608008872422419652566769890647163541869432742505706067083770017800542385834292038458753656626301324868580523414202186042623111609361950999208064298527330910831580539337268232127089007890753052134166166594565300903705925125712332233121532642394369296389087478647350248400479784024712176155051955839403446254815390773906015802843843068877757205219684749133486125232836884442534844317007496285984705955239309121162181898675476889624160400630246905907378752357776659658412205073843542733897874774684441981158954442775313593262256031316275444012667076953169804380533007652536047497277873864808137155535238762930852695264669120489680529698604614180033320481403867580372104252978949047638201258618847582070590561529497788460938110519125569235343168367037428345714849266148500569070634175382115309829343181456097577515829474695923573390361626545589436029708308038704984391941069982018787267281045842738581252290852337019279856396390475249798870733808728257326453034448166718625550024578308969870311130909464310600569094070674177894236050248271937450263553735620759619408833334955998622645542416362181315913986208507661268755279359949963408032593517855304338637468344693566825475912640576812666637566993976275176386928074972760999277334798193851048821782386905377325630306331613423268035804601016898588346643997664324935789218370822989186430935214566154424111308414598768719888542904347279870993081739439269171193883393502229657718649752356275228110953302242417900680870352434452114100779858892785016538148090558504928616307812107170208581914448485894362189664932295649871421411301173261941928345271480149448221993863945275811664914843710026331605712009315587711519989471708851897405595501347953015309373140421926154037538295569258719774328604938168526432206050704753612292429056450283562664892924790504163386634219793777801282615660669653118940716876612224224320837596226508160597819381746048612269841912379251497724092580609343246962261266614807494391519177297253881228430312999321783282844269969206897870216076436875111304916655510948562229723586015555282512368874400575235606954259493386972785841014581135881362271624147355247029668760127455535099723172735533257696415755032395005450732567890396806672000223353070963204103250469314517822750023863599038121294617486003135705404593934363561646462759583269710647546840676642818663013935442837389296581832338695011777082685405599207556858195608766320482112128175644344238624754564752129646446769757941871194774825112736125576668937531618537494622373746356295931935943460689081192002785078805965986131106051785976465983512926026301822242578117047388152112382015891481026364962035468760841216261951332837883089185159380311150849314809302731185536275772219969181018451304865392340195244368581729836189534692611656715787126287421864921735137093278229539949151736047234442629291011927129286192683814790474240812218745118998709250164397042845098294059835238303645909642767340761232439060032343796994282371032475848555788750209738206821221682657416738953313898689512128041051795004548431106083673575864179410328908219131102879788711233068231835587928248199479627060696202533845326402962438954479292075360532180893535786846429060590588492290641370451963323280594949732054604351782066798118740645986750023740718313875418732648003474549750924062671739767841236760329217307649189245044144567484906265404657646735458554946926385760927513356315094622830091635706620473699952683240951696628608280811677396535390417554499523053961935584082995092263165579844630980525084911746642740059213444733572251713314027124655621859448845219376097583224952189376995024345461827323460737249708189025235200258692571482867285694009439410465447382193040150515883434392425065925242544084330794624982184660831965162107079633969669742187786220842626104767719422402173496337594423001570268132215632265066846743931439225180965514821045033744252513585234450145221629602229765886198309003633749906436077721928999247163676412697151994432602861479671612332131870219657962380298788856424317628850255546190788905395869597899414411862463420995581626789668064955935355882882575639070625904565560745792180639319768011681265699454237678618979323219213491208995420435725306468326924202313177835912623499257396774037411777844981030153117201834551697828443679322482973507392764494074741515691630437383355054257217106908561036121808297764410675365296414555803750868932598467542359640881372350612022600805833597117598992182998416314375758710006742500704489869417612429085116044969300963256927483789156575124533038865789019951173605034543305055928410246283838137963377131854275175460617588388583018853109080662249864894965593434794482513899153960443000877015349558236258126100185198241978444828611839727019244821182137104154573626759080984798509128360872044368908899981112645648760291024298642314525628376723095529236026045174130177791790203957959181392401980619016102266911580861399022721767181653817326661646258264873790474375187602515978499122270584805394253207478768286846456403618125479274205457002912415919998221344882588852704880907047821914510151959671611892104656676718443068345856697901774728889134476049889127972632413532367138015233155015182976048557347956166560262613460536925694118461919806479593259520310072221180094392141019413071463815849581991235609480263003147986334502692441053621531541938720045471049653578294619976843210570004954440620722067710202251160331969558566493020270486125913094824855591231743937180830423269832887337396379598944759759460260440774422323169379848232555018894254722578384104411114550274491985996009247855489869504528031565756644905487057291877792153779411364129314614415603258113584395111681284385845986518518754646282337295765986697956648198821700646146507428671436821146749384790342632019097245765453798991992510976568029229253704905649889992872461199598179382119986581616881640982165953568654253713111799544034145727828780901526580636114741528227946051284236346980518569767675252973052827638176521926341976314163461813468311130170989345232135482185066953731620108108457006991231871918935570715383020251483831649651965975476024866359621802940632128898522457226278101644611934635778667173080763591642931976634835781942838896193830635944440578201829971057233321028097629576074815590444380548270258740999027525732000020060397311610385732725869984396277907159862253641803942936993440716192864154672196188420625443264036699811866432509617244661067171372753078583823875571175814214572768566929068194051308540998620244021852282660402576508608118308445337776592283656168751860124580885145220072141448247914056145500213128579749883284893033855952757870979745956094010159201484271435112653186951025904093102770656450581965797016977775499137843075380711312249773155239851177983699116761123085601917651241370259442567881023852779298455761703175567860692905393301104889646597706377478022743223916281932593049275263849331749703783986559977475492554523006625046344181584400111908375236906046774599734795566509629719054081319221293536049295185842296816093372049154941988630235605640689937360390824734192160570523492895428514196672653024644578812607316113852133269138797363274437310765987400285062959251990953822629422263249926601513773737044893307521320220035303434616204133763376713219626408067753831968841540260520882578174401001108520251898213122549388672567338114191672663276171902860790474340391304323910194051955382453467054385479202691606610918124980264866036097072948974037866573650594924688888657377890952931144762693737455910659224844896864351304380431428228238602948534316731980385252822559133291942186883797968910731967661451782524318292034135188607315437938666789650044328181183905797756919526039670854799715981027873982459493237038663211863942282314969055246743618794434740855625258425643083913082127866518754190884554268041241653313716494767985014391417056582413759701805730939177225012286655581635829791835375907961002959165397210204378347580879511257633017503712362143503985941352580915709630483605770041092669605648423805112072321424026562298510983904084899842863874934660163481418654546569926015394980953889009131313246817795309487847005707857356390192033237311188928263771363278704697995114222165602085492050777871319524711017890669347415016184953157400656938943867432889488365224052054590977055702636299907321631149144652643950479730916255911403672446841244192543641742072625102752266628578670992988470205983326292784310471940249834426535753429900516130572790286542752012350762806259146352295505395157399311872846448910234194772166688076747773559628297391667830428966244451337163922127201527173686880824107651101465515456596644191440624913969186569423686983392777754202490758426026671377943916735554346389134488377402221429418957436255366305461330257542892289946116421619051432428296756365044979956802063255834173131570857373606222092235935024717674102529400428726383215586180051664653878279377372317125239665286296482195863704606759871944597468399975392041951486887729244694008006532325357982077563071022551139923907396133375837640926751342459237140108338636599318542495795190805443470609647316002861829457416522824604688731461065363710544072757216753577918556600614012895258393050901341191827997516881912896669939183555527803056039098188448498424284871997318019141618770664790577181318779305438027524755260031144206045731166721655204215524188744057037362263520440483237753001701183265817538300801280912169407684343039978735381787654416643147549114311559177737669759954335902751651748401390715677471764865777043469588418005525909473951796901391924420619881232984195211503033018489408256729852127553007965554089163554471579006954253680661680182691344606936513346524354243652275931401717829145664875812719986106839664755912938241020105696747116073527187195346125012084662935617314928042995792132545401907517611972507736660406877243819310056284534018577704152911407602190240346404740394603666163376768470052363227772426192163994105142711415628596346539681462923239813026151330565210628962800755214485701642347799337508697460613106038359585968410488054572855048730221396821037711517665761485169014132832084364809463873211772676055306155740649973125243041028906037408797395313626994753237477286145787602848722349107252893025420198921515693936858787919401984032039011531551721899633951334523629337838783363801713983203189387090885754793043607557000733826487755867305509643173412237312128245628989976285492324343534249576655547038271094137489294150893221789297002985101890096094372391944937402369932741711174634784232351982262530194691030850314322001568285996182481291870821710532000117965709937292345439857605151872290507812394322838625411272763906303201338524878957220872500836053959012077635706654595570531516952819735641389743799883986894967124948409774647429271063084163522455357459511440451162624290698886753878833898929983321332485792107557658804471268426478318020406153850257035559179615559473644989516711232528862757921852759571529390501889359073713014396645705259869369346361861185087199653461719208625678750835989933142154111480596147840512927774883427555093467411035548921728476973931742957782399531917951056679348876042292052592931755603447874414778610512839668662352624321934245226418014691251395707992990585961413288146430103512228823835052204093553128604983216042891138454000210238857276483420853193429985711052765417025682571833966661379436417766606778299786831883866176202744015230032500239660039435538975756090342806662616712460403834950327240276420312107794648529085027930421673218967877178402242410041810253429330944448235883076634327354548536318414075362969712520644299857649488042452393589033645542071832108338791959444325389713068027667206151565794811638707148806303964587318277916021518484024570858512497186458419968145635483906909348353101565423954340299379813647421985401413326888728696084687321394840184571367488622888731484523678957909356845113623350500414462234159072167876525633401422833579055974816186066653483654136170592508223010936435441172221180121604291141217858589878578135025374089251460972060959113685559459937158844042722343214492412252029782809248724718608987452262127340917036284654216068174523771670629575624277317494077393951053301672889503599744465158400339631520722863752235725384359461129452181730379647046594101050191794365844372681810171341113126902074638225665143025879986005042834064496011921239303643280298993456561833764728725915857921461486029139631751762668829478633645952724242221211868655033020332110527083040895530428166406078619053510087854979511283233937833754242969011961347292728235992972529588119040406585110304916821434048297397677115295372234271935533748310780076400676838344377488506584484282017804945541492769652268960514024236100078760091691520147675314196485775448863826048527281431942061337768703491856685223810338096874835321053550398940068145667643686777005106386164968036300847999188652044445663068832550813693409608003649808668969935604004397716084071738764573206841073868180371201575024848535743553052360548909389370099718883332933948383609781994101829478545662582810087963666847011356994616746959403262816441912535049373725081507037339806630159937280463411450728544679990559579181352195114916583991843913901538032018245777388956060253382708096654558879696096343601110908902167420670840741807163647168248211944891431461331456017345150634892270260314566834264350546805685011560778399627503836540512438170756768208869273934515367654780115030583833338813347765365567675606465514707085483211515362088444049233386662628386335619709196255952139744570460355731229934949226092590442520647805448550619105053340952852679175499843203809552317398906760109070696082266608082026666805613186268430964906258351435435342906316354616821877081092988007181953438377187003057654132296257034062650912300920855147607190807181030164518587092676501022260977500893403004645550735752718152067839916729085006457351057963278533949516716216526765474260336642066283021780325074948167748164761400535685424212053715406454995445525801967286061575866998928860202340756196671424333395459377866982679685462018155897118686817791092011660176459156405957334591868224958436778912288050285470531871854700573193253587269514186581309724576741513025419154281824847263564328830278057821840103620784952780847607386493972789081866007294126062940906171845656675991386117040855438786508774470801105915543515089256155909287269822843872262725270461718612457466446362713171474526448641878006413363401952387620416662103783560047221421488911622311526725972856552838599342557551612531408666002177312983272084890610474341063310670140666753434927254215348295044807670176344054692132295218676999343104624335010511768043557014478068886992032777311337668116360498469458111082613894342130186451511479712395306352041884706357818604385506564106351813189410032492708143656348852526673026088647701233664075877869425710342600815571151247420033511311228798369288898081728197608787135725844544974393274097190719563267412782247117144492136963426576933937698706076521914724559065617788277377928244945278675660803053056038273436650561487380833259877153756530604940163107543783965876828798520296139108389207447015703480145970832723462793848731203669973411767071001631482971666378159227959331160452211230981856817393171667906688742896091743297396685425129416086217628200504618981597193521699685818150174656728530512131643221364751620053229653215928508112345119139914967455805186564232182649665748730491070249713665607974584357863281591933588422211752365528499223740721094019363398450987580196357414185994915867220239407923908202116074131919708692730253685296699318799196748742632397233354046494809474506270370423041702056656502285898088217145132493427551876801355557142753471349925909001753566221032035718588776796667668544089439944542982260421727165470222467009671895550482558805082080657804415756170214985120477370638895645947861121645304816206584757452644704577695448783785964023479380408592030390427596860941243380720135687647900955163329883182373764006113291314912608364700463217544019172434106489408581343007723699505144904061059459654779495958015330259519574448684128131437580748217964662279220212516906040436732507364548572621131460261438832264424514743824557173731489474887827596154116472700428507367310739768480493969984883541561944966418474330875394678402404276141208296139395177617300682435214465344019145482781121261090236385180760201267162763587726397897132746849478046041230472078604519094069086530679068954025102891091149484952774493083663990453091713706211856835109154238713755192943081693361589395100802882253662429465068608432918347228450379781202805778601991067871184945057054509371446439615328555282024624018655132308362349089952001702514923157193160435438771304523417314345650710203578515655625959641245375701138013712531121492738611835960105080896498965156817777987143526053609368827242591622312268142643444092966144906706021818991731737729516592895045691725964371566858042903588497339454695255054903564470146264930935813694242815648784808101651053957121166999582272814495669441048482490238411103601054975396025823330348288998021534118042282759649202283504554478979277530049663183674624961304747067693458634556287477140967617916309351303398160741039778321173061358906848783908887478676880620860657515244858974118303287504828683918349963688044123506501119249726362197142849200761152400421698484754232413158833995096381179938370712742397957202780744660935533243016468561594492947438718721945845146820221864090969967092327660272837038411324589802270044742417993209142809381921680623023376075212694577905731958005067466717044906305148610779511362160572526436621048686681172051378768134415153032204639242144525861303974322116209045099229857500642954679938013649833750243922556765866043994423200305117610204776524133465457454352872298009904052696515221712789594850175552608876761145075854156409334317563270412474098351550296102938957032916080950312471899091911355694861650498282807050876936873762130855468079381553248393003957258723629678972292515128965279873782740332078866475483080727006978705121857287278884298981223644932001533998504767576399387306268671367082238775889701568287046002682131429247546859508719308299954589801165459141096398912911158839330230032891990086550999776792880107168405874274363187040841356469668559545690312886382655124754253264411347241532441857002351555472681384954985563382126055733596679744434896983130053213599104797835303231541057769018541714631636458210559633244768117184365609482200807467389352835562258116393701128692416387929231680855106342787719733761976479854169098828563565013143621520090710839071354039518749010113395040563538891553067322344053624112524037191829984884436626943213507109924412144004910208407746269104148490595733519635919821604136530252361941563455012876667872465548372994831492022197321986996304941961891923436291851636542496377062202944665739834229844646452973244090834701832543075998844768463284429087631531563387174770832845604719029978878150344843772256122925770659208897224519386167328624198412153975382908139483157970742479174137126826089661517744967654546123985883471984484465576697610721312904046114832474847459136556202565886746798872374944802904519362370554679722771856156766602585808466393974407174637266017394777683227737796746267983663271801184472982615423611735729746541446506209756868513472600925076214111139743923002557716423272581329202833831362850775461517605216844766265032507889686516203822266180298628802238391415941628331686083285609672646209629122461897140036719834680582728391388874958273317528528995064375467010955207157408301238747812949646852397250971575648028496153488144278728595837861390756416053382463645553815510849152324404354500506038640268864175089029127623402375081169530039095957576407515832146722624186002396478165530169613159126765553853115214043865579816956827048737881922732637992097221290897208710734315524006951442018736567258676282673908972390255595037488713984691400853814211057586109216878780317627879173776067191432710444997566006520496351785570069612392714055353656531045772101005079406958190057744313962511581189293101864656588170521117159830790074483257828762500643886588286046996041195119775568405932006912312980627747489435771572750041663340513144494582532962419773614157336050711698399490048611841138016538400449385318171557298706762783318423426345717142980885695567264473291031463735595813936809263820589724458791511927868122301068286140680742657233821207902762853569571916410309274619199753479037737345873878460563218131192085465751796434596870168822148061220226431742129007349483908416818102291741822904230629352763512951045157864686817476685453720825680235632795498210209937630971329673089147433083679869300249124824785793076191615645576601138411474029004170484304297438740129985763153844456814976828415107996413405756529893896203252246150814640182073963469119087569422467131305348062870808803048429827871974586463494061787478507446026782532567959300420079350698623606338279963076956387555842940245777382533285721721720348319823512910435684890333560788841593768294084943215019011244718513482090188058972947082784254497020342055826994706261537088168640782132134103644443213520899475073661986315146324938843542358905844398561997279825604420230316050204634510337915956841267219642701380555390736088667567904035621093411110599218473728401792444007590823871361885470423238939339648797251342069329888805167737150918340172443046333798285086299570211064445247478055592882938169511557269720878683534802592573751979373589677641090201140083294361105717985352798602756211598647050283186523311480747903925940519581019838977820026956648695426824980439615580256567700445352001521730026809122224061115012065456709303123383493244873443756714795217979207110645546492359235790157488865934861607273658795844270242958937172888081788116617842102817854997841937602214416583289905161049041790479751424294439759945396979406673175192943103142051612953418260220555534584331408764417637883827690330138084905741840458734180198452079994960695777891224802762008330726036809444438526228303495091427515838945183901442499848263879013552961276733483704942688026554234668796495579344379745079400311576903008187795312851604399436209605636209307349222995362829029235405240124793609270580702997748965466919562485463592396661564093843213415445717264161884319613346859044300414549984917770282099539930022013359908259894480564698302760779811572183246167283711738792066651346862944305418489438634737782143613109101093025531227724005979125141865071867314099987633943324212099897182682005979798285284411439698015557005488502756599703543212956765715526200347476857164058243541175160676233854364633733698268963757134034445328743771857751696955790549620041123640920721141165648597066196445686652070518604997719988212271400018212635275812296444817711052459215378744021006333846220915985570314660833445702630546204554609374954463585901710643361631558946712254562344138969511752048199936041565821626399147631631305102086019544964510239486440408888176690381745695640381830695001077084308837827247901170104248783614142206480446554250149539253592283363464849144396272756238583676042933200674255914554302039674094002566060545150345972864987896243001190952751609088427994854119624227363214979051283114633834814194139039684037522334369350737144658150943790721280408901897245451817723396493894410469712365399365043252750421606040539386522435491138953545984275360382792604220617608196234781097107259855935599281499643128561121912227423419655465336527875951515771126574381735486525225427520196857019969872532478317357857946594298048253752073587631235280417223202382447982383221287271772797042274582652515097822352093621961964390556172050437451965158265811088854061376173164053394376383762651671249889948935202739398364587390513927885934265869860170005392983179923498166668373671684706142876913131307922466312327869780165316896474157541650053479506953922789484502792726916911716747435589017304768852533801639350300782817013774974123213542921853744918931919504443408255151357163353744903840064721907299868412078459424190477221037538266874632558695184539287833647924108806087124947573627911695416725799534096712463151869209338927399798570781405156330555424586033606146458665472102984655804986298350556307305312388065986638652285519918419455387618492863666844414280510003703949942181079371988608235625557999780884329256923691121512810839406836442503804075801151679245160446629386206972071518391242018880874881197214754211083555885174597807633106827564277489426879349458016436317419906469110157710419293789455606631916340085701548552929289214314794975497433522696844422440419615745528208347718050770759183686015524625712900283411820724360901557719350905632740418656907245303116994395693783248654082556062112549934573203335003144974609693143616135516637795472164944984084111117659691554088182508976532913175049748813846899331163404873797228092186797952833931434366653345194732817311321559095320787945195102771634771261748683199079964648334261139941706589798656754976141642098339027379009186700125551109350198714193295953867211756504145012877295444773840625108102963199876877366721578341987937851507845771446813327233327013338982408745134326908708276192837799429857558397512493839573117878652017849212955358471113151083572790010679891158336644283919396848354629307639643164507710626367579856009757650713206060812048372789059801873579747956029923776353223154368952854747408582017395046154892042581453159548350238983644020934390560956173017658896808438748480074111543801664749869049924664804403612207620016913251715259038657081058659674420470551913004831175610834200067520153234319408669805697623740755009275770357848954261667163307077076421376134761810864070437620314800346550007285457938893740966771804389910617054732817889504723510023421586146607585678226760361603083180988886730997502954047073553399928087499494423514071887179778256770028369436521346146029315865126404592969481399676488865922852938859965490258669525704199873793325894708753997086606800722683954945008145760186352125082924637940332245122116622251298651831281983704027572315989958473731553404992841215963466955411009429048375778109801825654115213216126946197367651929080666253057549267824442950129395943167010942854207772895321794442685709829341901434141710914458619134337120025368103296991378911526253457078404958591210260167379832745840330394593857879898492156420604035561794327049857447343048615827928902837404408874282603103353513854084202469809231978622662796227775809401156656097860528815919456322384038212566403674142886007344656596777123901768449503332970768078750472494104051575239544881560484758962138257665190943090255193543146436769636169863791274122018880917174510840894015031047815324211580948711943083999873184021149098447626359453953465282311062123609617013878503155285579877719180584233776222643557206455782017346053594371706513481990098239999722828271808170713284420980963429510152157791721925883979925319864497455301828508056136969485898204467330816255247295386788549249782634808720795549461187268995694582594596870224522819994407502094702000174932635508944578725491726120851425971666397656907648022963876500329460467762151406489110706599524970393178202943775041387056355862651075375062121714754843050168699746444964066373046752143674127663289573367010488062423005547468667563528586110556828250687651507120225516588479681926981052627083351493020740103315024149189036756821069272638778012617497924101547758069131312653891066057864333414005229694608258793705061997785556622200391646456402023963486714196018173824661162848537777608657590226905224933802553721659068921273456528434107877785517803781709718199349731936872574022746775827250327833905962204915545048276321034975189051004585566161706677170461528087059782627360489101164155118669662830352143735703192250991738636837436947664366296278895266665497033802677481129776832056842344405407763059194803133621307464198747684641623648016661638756344549218816465660161195785098689531227863112581371640266404205711103362790585669712940504190431997961541315736912420871606386110554903288770388347385711054311809564358045937867533451562362469249744476227776849806934821793893068412331506489287421917806093022747956108255582379525899055930605552657354887245929887470990865603309834357984755037252701542298429765980359930489772365381492142136290903127627403631675463159258578002593845746511337620873847074833783177043180456323400682181972420020367666192716917558679421995489900321465878823879161569800577102185461468497334393260049535848336255910437787627357406109764890725005623513967070718884370318157401590813368541087199694653546899826141967648984497570066693245109462826963137461375773805586683659825790229954133330463143354871079171467635156350537324033767650316058217769525543838292429994100389951539421466110969180270006170039330210527830773360841734937600275448267028325782045053028500320545718784018616417759640048662162723894864614409554019147844343617543432816696811448165154437097883485745562882848924609603382037323167838979292582963338566181370392988778470183063208424721154128276684487827168365442749083692688016017326503158046836348204279858518633908675709349924633695157685666382410103925103031165096770705257280258698554643332979333340282948665619789875400013079246564642994941870489646487151219642377865128489179192037364010162111637306572389711263368320787010247824073259788692928373180601452381415962058151340243845315722398966676792738991104285928983962588973143489529833285723251220846672933235120175586075856085570305114675764462643453038984219056409187552833046059495725931060886394393370357551206152454291274517633385088626269204694096130314331750833695226308164632288902995139559792364466916879289565958874980207326077278026740065499547877366232816628001944609198030634931165458871211462252111737216314643051003380766146285701285038636546700320087942533860372754098693994840594784952030884455618782658649768612098028442979380513544628303523412108406269894695531822594947224130056144759837392588078782571817275455842132687780403171133249966091381493197623669304482478380646512426824989307225946291071179725121509194938727014313379844581401999911854950519185011244462179529767375404765965427062935355601131497882193697543443100051514162129230176746174643802768321812572557173224924748716234248531358661015303841959671119609335562080703794831536476693745867642003814525683494260964732419076825290988622236730630230352502228843884493232761188966390882869272418450512868499051540476286417612402727124783815434906804553962047163140811518454515336007510747586207352503198795295654534936165862773458724388885642503977415421148989638232215155486024140881674552153516018772144481349257766287392029352913310665851177411017588768406437429734947855822381584765003306890268321553462690721784335634784038073223876063193205425318917140342829243757906526038672343719756159227540851889821689426513526935585019636245388600167327642980675902528613770287102982400711825780432935900591392848475059113511770788621674245595530769806655357542224861281367300179042404268555758327095203036547007154108207640740797950918168000213633114261129638634678396103430179967525833440681945625067652031479532341149629923833612700637146025590936264212998032321241965845236709187351265521727924199584849553058525050875283488392377798418297994764158629051695166514098485287934817345281447145794173549794444962709240968260493908286591640770207220976626723223214584191563346498901786999232711370889192201707053888241182771879202706307800028274982970242929838219785350311804809093382164498095419937632451419683550002158517729653291982083714403851204931587781435724067268025039720772189569542816831941924163914082524013487488721852467955051075191745247253097033758420016161156071775649802984469100920911560045965259856136170124988215249230244420652556896659081325626619364167044682260350685898898806460649917883546845612226391118380870992098329739714626339913409883585072834247009579092546954904359596257791303236106811771495315204338770448356262047204469674025465709041547702439375506305046093293581296463074301782215299630324737980152177544780891682699652584157825129916913057742252032253504821777037876252184293985290794717950742641406110076077858443369387087226197003815338398437718605276619909119909578453919616292967284060740863060013958829924739224567260656803412642988059246722427595711856589906457021362449767360462588587925953181814658187456833241441411362259361562624460700252980032651623101608483161139070320542304023152731085811137916817561470552101900904060050843859459473108371007204102057851796508567734784997561064767710206395481105031089572636202963740510262533685004367193700595360856586456983465047324629022927847696463346145986746835793160939877046090103595331810404044552169972609383680697470793022720444252907137150397104308919730054248479298207602692133572454483759286470822681621571607832924198157771676442690674267018764867895924717360580296278171695564939676783680065755174878207143375684111442672316393608190713025423970445268646162327996665418108744217028908247164615887429252062870132926324688775205802982497475928436380889466395534995842382775026967277673484218287376194441735868196318550535558523408036961963054844234168899191207463519762829205237810588006768331751123862986723653454959708221882869682705151641440866470493844746215393389662223950050583092646448253452763081097235653841515837567565717559199763413175479069182972168864567233842138709698121795919549801506297339096172432328584656438205707131761564281312902301218907593734765284844041521574109426451555060278246773230859193930193019805679454869101354099850054980061165891511742106722533543758250152120561404215417284739466724836953635156490850275885580795559792022289781571902498581215469218449190134735777319654532584902840564024869385251129237576854663711861267972536864284205654751508431636394226351255001271968116098941235897785706964502356128716847918551393685580420095214294695798408550120331932476138270412148977033289050289256835722203379184829336648691748227670558092552537398703506754266794674876933777645803329431156954070706588015732096741975876730447038240143329017241968421728396291096638509955203557146201206305597494682271488730180640956418968584987630465155067868753620569091292071777824738491397595026828874481679536682859700121823728027991218819542334409539931000729070918328702354248492481373231149028288048297647182295515360493349930270782269051933214560902939466583308888162891217122218922649001611177741699147672029429576854901056464541057400502953131611893822127345195287016845284832173833444229645806488738561273377969263111152143235739473208737968069071465721424250428902926196240162660072554250322668584474508376595665578291972305389912127614070375829656120456294527330177388800199879421784777928475641831811518649504450126200808179786403161523607695965921766895916833186867802746222194177645779788530200810531248884461447498575559952564878724480837089386396656882115378760372664221742984768316641195802301599639098724694225566717128281383314880511093813612631439162514220035098022699596349224563261379457818502472082859774591900319367145357612497787080673062685381801658126089424602961304806602079110682028555064557397376416591843357787700347771739028416406947936407842258950592716620859566264365958298228769369873930987126612114410550703897112301960654393446981185365970963053343889237659108056575203971378181130603003000043882789851744080115016895714875113182509863324061769478858754569626055367870003117214664351985740169504366473623390117734684474842651190781395503252353354489389787498974482526617871846974767651532897169652644903555073559047083565743361282717695534508704116093371164914231263603144252728777701163431917888395890171190514070387753789314137247015590091492369975180823957415801427882203880152911047924974718576319484899019092389687968782044648004027584500176258551441321163396286857404169925259902429784198859704894194455464801083459990276423860916874470986597940237108491164571166078268212592148887167442698408524012012863360863125227253521511290006831250903432173766058347987041514567814387302977428570615254964697148157667989423964973311636254099459466862515894473912053047985128132402988236596221794643827456357722035713689749411309933023877486502077699492145592817024685105757314184792718930091432019954749837568832079275731508173895068759556093857311853708586099675115268254712532319731805855139130896041311450429431132483685344832375398499136820842038471035613082369330765571406519974765791675162729196097892851118310178426047123220737003629803477290818764314826612531180017592221719561969821027216048536082893124660179838376580188100869939818955176134681841466364446062725298957445249278816944367784692539083369945535334529755499905371325891606206511863275966759292509616948721077977116037720176277791286411011628257534181014601145560309986935715000397174618103012096266187735047899288445877518923744570045004718842943470486256183754199699645994157073520521119004113963439312811567840292413712356415562289239910225972156083948282157400457474012841521446268068520307620159521832758916555173222581343744382825455208012833691784462297694063873454750014213338688948105195657287570977294126644855490676508482485528990090465979081333495468800053344632352928638120932388832681861535449688585320077351327456346352014183932572239051733601608048774606324524254781611290667267507781742226854294434320059678461487863213600704365043974296021368093398089977041803470217665631972503723551855070873688816425755593719335178664313468023263176621736473017739421653036804854639418494849373158477410478369031430398309326289573773055617436216291417416425815017121378027522098856874462354990604949139384931814789655271445420098533597262716185421394181720070337804752495433528715796735851631659401794817020572317686054982211230677166350030786785191065570762822812342983027715465631364967211770088583366918846223718403356420329834575909837114722376625573311686173595060028874739258571524881863112407720229343247730413741731185196824811393942344651064472252603470527757204320264346096536053780499887402797243157566288820945298822542030749071321103925211688936641267292081911570099733449095824686417203877228391254056540104926227606277406061401814697467445503503458925981259124558931176649427923343197662590286134181815321932011432577226312649569779463607884385271884344712072260138949837840513418928652616635052847582349830343259381639418612737995216524477439619087561049839835026000648952578055308291219566658545794352936014027931021571873665499697922325174442907545399094140755638580435336291616436385275777276060436826080754508012170778521963506430199118565863033991732454787167836776542275013108925450970054765677372701825027693401548962792026441403492180706191457468539501453394549840245908830817271342715269677914147688157770136494141317261490363617539114235876971362991007922630612350198437417266189446908331764755149973533787129209521717766518418910191197551788908603726506531859518934093843779785935400997134960689402925412869848430387537782448761725829306570990995686815793583677451669023405859105701446538616318544151427543794566904626824597802154634363396099841585753725425729318163042502300939440577730391429701010159289085803726076581697661675860107228610971029449772747087691481686474344829588051405975503599554706221636892679760823569251775102840806612207028256048694681140796481195681701780849129565160787967934804481907930919476478719391112262431338887763689180589852945077798340366833313814949171432372905250326374129031332218993940759925943241332283643483431866958555790827133249040067016147328053475813556730888089550971065161262233146214806405051604385002398170877447284256282004760986779500221922920993773543977356848174328805511548889100580588196776341225663347763193438535863809899969927864375991197281567707695048422738341867248012503176754728564672649384938259216296029812425931126360516153063230548682102622302737165895944839856785874070593288159213691939869930088761910398900709100646901978707948050623245024816963465737731785006633784834264890737502204095495540248496436344099920357186668672003280535680050391146088653571731956402621568495379630940622662616643423578248054539409218539617805197322006949648031945219696077425653974097351831532753817039917821224698760126411389985729699695818985908799407315147395527652794753651477434981954149523201845650830255703581005641331684698579982896262504156713252755577944598671571706155653701999630011760279727652965253115168707613651219441104179508980358041089626845708492569196084662968977148479838368919424801764589690351237660668523631890234415071526093899182747332520987134725651921124299827219936474678658622337553997971516935286025531762075576778669300391722540450133202739211689657338171401724667403725576967469221014273179417949058378417699287919685043461371972105359106692782980544475758223277073103291364569552324447209737897894560027337725107523263453663330190331150754281438230180884369040703835908387892459268121166551898005855229268702221099151309405450589473792086646028881914219691728572141747131788504189580197547671957817056363451048933426369340667381755806223281354914953656086671338921849590395006581736666564548324402669496497561481359421336533907287535220834482628799574679809494085217712962411819868099337526596611026691683274267023797972163621496197533984002759898546610890964341281151581148202631392874653332692481157725034379280092450008681985646570759663219220456872689931669397416174881222033131658334567772690633523706728982589886144105646640345598392277605335634134209246791458749315809560560938706363024341217251295351049674450815999622741220000715965263799233326826471492758322374432883303927955462431106160449212573817588992723536043753058301482905275473763918612088690737827430443597450076516312001575558761508539163749061623984017455747200397015147319805129676973710533715462359802264147330949106586819111781904503871036694910829396749742391071151214523548877715659436809417318084867558333872312522345949697898792048429215822942472638878807550601888879825809406526123793775526717288881395356974084364119392010640159500740830576299218568902635897024304956043112937724366857848626087405527406887774219789979501351207543322247415165517026080252218260559971464654087759618506460003004440258867623323298530446934487051590422166321498338943439250841980473707701184576334902176542675555483625789492789008089805926067865703959732175437301349130075355441363713017872487914012904392474718458002003160110470899277599638878447043196707593552118215266153939765140021181277096746125204373987692058815842967817000480306612668282059953176440287327782254894098981052286308123923504414963450403929000609093788843605956028625600999709412467300268852220156087320184218597652949213546867641941311498352560563613151624632863653958246002558945933747796614353439649307233509513481228159635746324821993295213075270190537113375685316725992582989440322994989170568422511100526390357226332551520580523663139288174170529624787099068827373331373195528354823814973744194729291111895994232165586072395310359272677033663924532963640173822878859830174652695586789609902194748347582001354091084853328326569537403763047101826811886795886972254989962033775352124810612527833827684935723471266324535316793247818324457575663948895588024358729370602535813498468603891615251422379139137500556319937807879793050498842759900982687193067159643420823604541472259978996721463522493363301280372525695473437478928607354299361116978628423302417165810678935640994135874006391350048890287090050546381810947447641837603262659506074361946955633083355612455412876773753774215905755766336201972612076282834573835079416367754360340404268465097644388058952518729742614819814750829483322809422189552009968277654169243492174054712501542072747068422036870512567063352147688227011049594096101284359774811018588126718440544049001300694393542967069559863726008575158047129541751692502508827250186680659679653971491061545944516954954140583274720539123308486110643059311374592292821122592100492879424855739574729023281223227236503091082544981757904019084597487386702618663506461481758287412323647900108675705725766061259968749028956090454222871369095061924389303429982404010711713077706394918746720389411944314827367303583776624758301857320000531110995693963159781547815725600117347896517603322198698366659073732298164355129716673677362631202565837947177546176037252167891727951274909180368451742852836978383918862709577040349066181467954309572239489858294611563165164090152674026610323076696967249053291041541123586949108655215340926959407887180680042592516062753294454379190102640577626920109210463925873873615398220600283708272015306791764319438358915778101564236616962520985139040091292260908387779656527214650005105544080831241245756105767634499260368330587220658994880401079201836367053312046075290814420515848648289407060433906555559696919827769994433968823976658099051725894031465414599828161072230830544504505051731110433217234931925222925053632670590366361048453214440297473365443415761289899912969901659403171979270021939453251493126311616391238641010042884605165616505260732616942925398915492263086988280950445398342968780739757335807914998040662658080143826617953208397136059056507795359446077761133057473961127352210992959077191834765528436958625040307754195887672003104490844660787320380582635228413786117288895575263228128797989940938588306983518912173328468879953513516658212731694181286030747017044889536263003846611889248357388694154649921455042223709704020698376378974477648762351636897713714212505326015156842080459365311787238616559057708051878807165599991385961891596030375529474482516118105513799626149894506028263422600203092636276828840912700150764993063148165436908591814532220979900111895622126505076328180183534445602218548457604650527723112077256809941439811527026512566266238379198823464004801601981344890231409198257581856647710274122418979193601959258406344023141150963411481076063509481419218634109584615483131904288065688855720261911688652932095417594906500860590347942342487353611331534347746935840564036341709884313974421379225184770817533747604524458534029911220209074346199739033365404243303051223709867417984847845915400560284540813156539845260935897831525263828804618863829720930305095257721027222115973353995595259250293819325389325809003696670461930633003467284403458922640021149776723815041875891022408542941248136326267736690614036068067253770616281162740925936482344872440982570643280814557528481606538627412032061550093802564870624356700461081048638272441861390657439065062624901603713779712711273562873263833631589442492908700658065856901595811585822490073410818302678265301550630688984546104021147057142456971607978023497048485433183272257174010124311265100778005237421227821028835735234315931917957214385369431057175624969478047115428155335927081360581953573269194320063928095878680404482376213578339459389500386253494284364653955440414331456986483255534771445310494458309587255421329245811220968481566335857328019699109237080826453211178317664502156130025464218430972627735583188823047182517527337503519884330954730326276189240604573039792700763704068891672729757966614884149262520921531616861850016713918676409081276337327017466794286936847288182583536738670472989641399487280852053421691063485282246104291688446175578271299307686623292278215604848001793313041342933541737981363229595484811101734353738369149874142533321173709626833718426604411077835091400474435914124062552876304242159874455961794944113686505113403236003991393313341726172548227990209028160743321405242545363611979190759909118613155279159130209748792097322590337233907627898168941352896347889912018595009238592299484535631697901511026912787691494072536178064908609883249785092823274091104242124393430159476044847014016307847108549745304186153415685356425183150186687494800429213130422292863530169785604264119270072264420748728251142581008094425623981892670477739071045777329243232868048790199744335309523859729811186754996487639914162445498738706904896406404325186151783187291889316646957995850239461103063733974120922467313373327736159833865579995006408944121403145700107317368036575564516916045486721909169515469954953973751857694251133450735264521475495588850712623384485033057116424206178500479689750843712030108062771804053769023550145775993862472100426768420154451210915833462694173871223834288344055120513043557326308545617247121459179382288238077663674316326100339587108285973675226252294576839167635108420190210415311034672267838197464236738202108460391289663767324631889991667735641122048316955100655037773090694051524487825216629413607240314001289937544576826286725990904422073864401555414512106180633078578568146065791444965490987372436154883098333763414423565752654776723815960284813015154122649999249548224780099909280435806556715055930162236186305601095734058270390379664017286782746472355183738941736768707035122844156174138101212346254672963082671949023543954279265159784911491301614239493452961989446856362282638104717337012911274828901026469366652879152660987982814504123914846471491979278538088393603454747408563640758066264827759040436906176861660537428643035281001866470578618063808195574589159847590814240706099368852384492553509210507716181274270434295158812672015889451674645642955896662239611843527628812461618680838677750991500736904206312611253137372943626772944319675353815317550441670953077594033774421849198327929655695340608662291228812572870708437170141773989881821757807511286227791458653863251805004943216222923543471169578145961933381761875078874585859258864744969099152906956026790179233432253023918333797042257774848656598487758660326453994088970037629970089313897987078285293173387736042159029911186038615007017887736871089653727449778612858492904191868483335313919730014017643473917357430869535323743865749383001044452860579000866370940760976799806470406532244654746820732770859939998525952434412846904479675617093846579708323541723194270047531236597588973688311014245003862322935551940418087025900396220737603911254405135112861581530455986012743731482553096168447002884940975858960605987724892972111402765618644465695680382040692096405278526023871944415085646062393850352100091867561112854032254157357169807988528275095326253686617469634988154558618013369398007086257128768255746017496025411247497347904614871101369028675445944571256941500726988926927416755256090756433058920533100273591995457875559122288713150349806080406939881265784680672021681675880963734626446742813929500399143612994282119606604470742537747758749261516078736403444708385508539915803462316634832023685787031931732805172757966417202308976673067437880197718992877845824741635031894911297167880205979176996716864899018246375728811729491884932810921882149719627147791685653365573158551217740342703326228209966571626451489354484608836605879474555342947402112060569850906894453668930993200043593870004074756702858640778639101695251257105471825824004459424024266892234017645646913373410884107474208703447456825706429752187712561832150412651483637645476231498051241453581751497914032223525300043751259449997951695811453880593170257418829864482827579722108397651216730826355897692970228439516444470206199722215594403102509534410336452164650593110884284048716126185586021430855514833880670299701502776803169320160573415652336117942886411035473305402478077145517745696696927436809338711574338509915382528806776462326613941375822969162049275800095144697791703599209861201852650300335908469786741560124600412597265848400977224458367710562343852025630836476973543900372031008576977478572336556108746182847706675454199063885646270513405792045842337909869943620544309959784062800914631638903833451666883463022481032980935152670732891456071223368095782209575065354164005402572583413984266097868749220125224076448378511551369759890899375099471434948354218326576862477316321834779435718517777617400430712790567288359115658892697267897833437122551965857392336326661187951656808678257618324615200922355486932028893738661123123078429836189526824325914624408904108002784790357150595037754348815542194458277744687401734946973378991257007385521605066580956958078369106170998244814706690775578357152816595784942374045398953205248447514480942736281218598155197385682015938592815108011120990429844771778168489301442974764034555447873991733289955207208857843426736156640195919904117599944288222946059259517321038519788914591878573066015761847370352326672113279677299562661842901272177079459469088299313322898431552176032144341701422033822725636036874358727130327555763236527142223533185632194455282433031589678492778094116229253018893962530467502082984482611189565567637583894730109487075680912932134512693044150236115305227625016938405354309523421148461982309609315254074273450870951386252864599243831317413038897550807360386513734253604075495211379015096024080718409172437024847370892793800935081300667074796506472715070036734389435172825909940733317673418444053707652472869660121037938297761044195611082308943057982912376004260614637187632034909076599877737604521744733741098404175578415726168660838490392802427467723997647125700297320372002920453519113329047268122592646984104462769967375068464840382587179052347445401587717616937872886142303143094204974098648748327677835644474315914126576334857833183585001111062553627407084162020527208806002732480227734380831954387985440769384260832289367620638113413219478063839760898224610349077747289613516085192265682206256973697217712365788727902772826284388292729825110999433075055351559765073939274809769263188364048735063053776760517716243666682172086072882227306084589021886614642495246822665327762294105017659501431235701246831894683999167713445577809443471576718037572988558221866658289515948372207521228434781032881458364586875875306448164465432942922305347240894739394071798611029922027427459123162019190989048748732751040751842408573489786734340070068535313220696156053027470382398740377998977560930884184811372397343907002458237721576228007391612299326628699226267825306536087766368572431678946602259320145225258262769713994633316278228935249975927171938517665685671104431854008574546143322622284530078061215732905954591021319112141638669513611707833185207426145731646745778766442678321135885234075139487431076713367625259365658159374325540716138201614658811622187925381735833282359253151421032100125195470342381819013399746698704163100012207803625734584860425780807674786202022769487427525392775281186990295393009136966681192907248413817236710874482166097922952785996050167724521335176270768724215513218603270050241691550695178549839401894422410203332029571420160275668674457761077298310905095650061028401508732639122208463009798921939031995579990033695942959249094553991323397055554716875390870918801671505130677701967378097384934042327728852768802724220747365944236398692155654496168863007055258184730908619976884352089660148814147656767677801625572537380769738430159454065635903455203755180635265864959610814508399857312576707003495085704351391173397945427712832905728092263457212791498822020508492515241387637712753068131709480135106601695153169968621480767160851352531735979232688226656242890861734499347266749365943495495014380713663820589197675529788072490246553373109843096982836202428075526044238320518166915429616599483680964797725177177121162980595765757862327837016457826345669394479300234142892262792136983402620991743095754460532248662382129092058431591650842962182238296929254343989608567355381877351792501062277230727969375956110603036735890224396100562066353656075461882069260239005072437332001526099725685924570922384492723425728252101412055913149911912265168254862327687722334917736474866648568899711247341679643576434239832890044246009640258549941257889791785480250574075548012173696333269331884473843254675102892238606637878237887894810785741449837724796152169567829422233374475178049846009126342322049193931304186502946758253410717563912881069481662831602625626380256157087475407748542608125951267186887337054782552584924794233094071321715387112806468246767501161086182057176932394715134064311285842679810289601308659361501553600306755473946690495333853503104146283052177366271709285320148649962285117890564707953333583522863226386422127967918912474043559762750309621295763510004905280963453344940793768103074567308400314342326908826159368242121095825416742339492871028818203640462492759955958792970242117739168656724591143518549278409485540111749453174918785806957627626558425148300734494244090774920397554871781613503846861943173665541592147979203429802849655387629645984080839340580359777160829491858564616207472607326990709234026926215278135214693977512879171869601055908853779223171304436353298917723636273408465753006725583832013023445359422707796718191305985635313298897771058694925240183290357386934626680986619808040659317750774192282162342442271123996414439474212219312953135515732960320856390688480997641941400496411606911906610655646954934456310646339855606132589001594450251877011450324370647808198759949327426370234320053701046117206135187465086260194998196345457959426889356057433509304999663515136008585460828175471480188506272383187523072704963797072929672566837408230345381223369021949409127964187922579072317558709785861415812436564263714626196684385928154105751164904159632195745469787558821639601888926134350278718390278467050127821629042369689035731345153409531989582187549161871341294231749122749455475427705162345289913342696978111261124994949959459039730374040389356528304914453351369982313865429744645330441676172187479347642015430062319664486705621042437888432464902344131245176164127087128837100588675116934622004224369315907508207088407672580935719388342601079023365236208492264122574632443484582735050445592189600690499130604292599446822042593873344165254496406070226990537923727403000228373782039070950597961046550703584045751238206214529128286721897865366385280757346150586925229559029290605710290453625066151893519748864698650791989208889478652248615103115895913029999322719812827289129950495525428392957423794632480655340646521748118869404831727758232670344303625218388375558405462531855777363238495618805579950992289064495124265169440855638943016050929094538318129776092763817475926355800150195191852590255781132391329359149109558032645670244905314092322273595991889489690714594607478676396453916516647151993877998420455921798689985407838479653256292339537091199939395468842232808099741119077084873287076452055677093732092416023005138034288283593996386749474612305348620330386432778419926096755055166178641803447769601031865043607493757148685851240549476577034396712208114357171566561689498853811347589595354764769430637759045625454510187629788390127645947305682387662590954845062815907419811532586375342456128710498630022827112448243228276203970953190550631003847421768980611672598093914132495413874087991577006440887884736091644692673959152482966707713423821427107319904480246832777220614354730533853901265153721135472577986970009362672497563391624381650138597975226535724253541516852211421891131721200103722858395813703943934471590475714650017008082514392197738598175304876716578451289405038772946704142001331190224897962303626488520150964645468505752498058794915180170913570382904496655969819941240190036614139783439208215105185741029730397322163190229505204219782982063662363670154469829621689789260323493205870256043185699845260622450542352216448659464939983191005598531310307465699166030768210332590464532784962198655105976323399325012720176427469378714405074709222681538160549673485711235842304931869952182807201699941256077121571292504717311049495141674354667471888031464756888062216280733169109951492938728134951136678409600568881381631550658846451163672066550975391303077654702503781862695730641586100325025162892032509309722356118130453306785330729228288411395324003170592695074194993025541565882063931852892249086771515460074599290098764843804492009409751103295850777335122782446663684704728908701387828348505433774334670105780110761179897609642304992077355878168586983003996661760148586027800733602376371415151622213268559006426250843419141127708205847409926874773386991979558786595386087786631988397942569738169180058129375347717733596897061462004473200538492969977915884677556327477134411889881433371390416727050807876425540555393108776720996675732887532766310730128189189937134719852982988753010816015363087082243753864542771968829237418797822040162761688778418033681421414864031936482416935370877000128512276871415424221571758139561799930066337665065880159534272522355815873138750406697830218722519691967106600454976141302026182733815072613028608575398444935493518326485621765225845258653871503481893737432266643492907624771117379685563037016312488398922375434948436091830342880533139035189421342154278836705410034929610551045356885525469269821926082385669748281811279674959856863094825976189947758867117819745487551064700656588538256899210846767769103843182826842963832455400377954248278400403400065658823556217018086607542575750429725845000580803303322216763746920323796123623752501483057519125361517709369249313998803073760382941135587882523837972709623829925125224008187171523795034575426024119902059750031981593886943896325245508144464390315010747405343155611073263931608134147339237171081540762424965527259550321988225410635726207261708076618628150153916974521252352714532363658351289438832001688360441256883703423411811022338204972327313937362493826467327862499223130618569261174536116271739303711266284247973803944817101552290521205488782718817741244299760103311793934518361965229232608651596498352017946481713821325608476604638630720838737598791480266779850545897493932269290760681670912537937785598456672608886276727311123520673076855121395570464754886235685240919987334334600264034744045396417917865672421720649214934395216983292383222842063310250561033244238344590127355566602563808819243871124166737505734433582644179397013887157886342209290074724319868440094797159679323352190098270408080598289869781003272504819482446983465815211302703191314099671066782110272592861161866434199495256319276343945059659370049100456600570402508407639134091986579906088431446881964661544864258701365541464068323672233241063123619159107378974180467807273025282743197563680634413888069581417453934523350717118417357014471953571200926063872963254961477073222975840620985568715568498485675278477591636135330198689422866816171375038324026116965703268612639810371751918883004549579311676868861049356638978063062566649685751345600032725674271928271418253897726636701233083597610277624064971626881497577538829138302982022539538157957471871304310440571881537524869514185093622084186789749856171247620979115162113681944388215065251907218784078161237765529117951257267497776220581056495106849017350955815410524284439034125890937122447158792393890984421977612200205563215876537352242978683797846053020223423050195853324333424791102191753118128309237102770178940272219163444892000867078490361472893588615907100127872269405152024782632560661859023319027701009154534956768739500292191684549364285441657124465495423435330664419605299437906517278201989983375298512554567959107780925036273169365772794018205635012496545354959938176171184807912593011017361638505194488624796111900389110481340808469074521226446145839926955509906212299332659823638659601491776265084336402318976768706641696844687064781228011192811433900061240058123852715478159509842724016399829744752942686442577765817821838503397193585558018048650696644855147198724217454702371372692570622383640095892840042199625672758448171301204838747010833352893719692212294018143020259855879193541111537412928901332714479030146926583116970651260766701913162370356409837931853318907891733274874131876821909163682259203060206511959603633968513497044627746219283954553417538804625938873108519048372340193438659715398816315409281741585748935113876182076204070909769984871927991751237028272381012639349045831879082863691426417196707463912250719694959363756502620632710528906167527325546682261241668374896749014755475420780959616508427888371372709597546572005429549396502190081687457265839316832516387368524692050251373480401758213814249379425211711798794158504552727361198820873226604870102767551541718895228780085932956819619921932752913064443305616856305240591699410165320546176576161666754402555885062866123408389382356363676559769384645173774855426092279128730194546694167614913124120542851992827522300940650878876299546561707785061979241886512286502388596547892166997090902827478705366672562288418051732842021996234959230879460282999005279506592788107767028911535409472779087458702803227892726137463913224036806783958926265995109038946031242621719523450293581760881478790461447988880582308615917576395274523628215992483299566880726550676788405477722326679838352195745784463317881423539551660244113921580342311399397477588589730312765235415899261485930094517201450810262750936172769833529680337200124520028975735016245263480811838828851628044187152800288400098158308427924412454857559367399141752900826130210395377869693634512682407676582688700625936805169281333129135003840415851467684571356233864940675182085294905098363578722149565221181252510404055890254077007292685784220015516269612339305260300990712421502355750901238037363708812508639482507620005916415196382544882835297328561296870459166436883821013043382433970602961149566732107082635208655846517810253079063654418838753979734768035519370859406405732923095173814427618547650913118479286154560847419131388149679057029140587167149498775480448160458522169315902679596287221461099226077603237959394894387358347599806176801547907379976994036915391642403974512308963933796829265804001352989322481679716387941686543186609023800346159972749384883065541682890513943254372832294886558115317308116517035179437190331327910767598524648257110243559870497156117407430482297774823781143295014346915758104101578396770931678680283395225881098031254695649725886868905369328545566909333494244772826489744838169900897127376106345634053807706306295738004383080338642827806865536324454777011724837944964783896586170411799426627738923942572390889654845872177429112655078313648252474167120413084665216443095024472723289160219450686610303263191974497108976980111170745235981111573537266352498721250879521195822348165320596399256408275350420700065701988773445273431595291285617623843074007737448416575814641717494434632868214589962763263554242511803111797909052286833515615794635272534428070107522337125543533711224339945030090419707735865212123803399327818778075658480225296816531396668399180509944779713438499484865708670009194926922334880913323544038911063393141780392461691535730813338066834829062078523180607162083070628139255855995902353190301403042735344719664872502116071252723975514378114799460238202847024665655393006243907829121092959985827472068762891417247745316452579911321685221805979353006426954797343791900872948538956343256762608069994051041425712861110103121991714220003752607856163462958858160078878254539372208497610616315562337977140209653560012927306997907669148211278880714665301897233573932309741605282694815292933589961375140735991132595533467409632884213478320091371373050348645209472567017323878633292780108982118123828663376987106355297301489320875690208721168556858433552334490321549620291920921519622943849264237608109348809266279321501490577392414779248640882454642751401645279401276825392291522898376394259299836041143802374922266070046806985743170104206527163624441789795639364982607094538977752874504972221995075223122735376056090236800374651002780038206842022925590249370815234084524241372020722765917687784510757906423206776997789364013244801615886463717266117776145737271644866147318061898736856722443810893510523940574381099212868244443497552512686153790487575397274184313243248884146086619761024746051239833154010108154167497264044682164351345575744234318602102607769583753191033546348091826633220080236586066800237533945323061932991220889406969675958745114445449168870623573528027755534270671904708835789180119494922710661635826227567047952500026742451868761138418259028378369173001541726555943930619284523480962857162024288445152666675605678493133144773185187817416134050522788971785571803794372865552160877982334720622361980213536374518034736851501481888819909976717546758151927763224871440670570852777325682349291233336715106766446586657116089945375253747176207015518287673268621672169189684437082438915875557403624339054566316029824832545930416782078249755082391861559803055522244067853594855626320678107495972761883372240302039393458240145283526380411856221301085992958008396095442374668294374445426073082934237390648117960684876926530603024701237166267892483146793550424853405749470310679921129069302372149229664783970981605885708386551350670453491030653921036646584326239061387351053970582686661540728815243644751594736480569738060892765100038378229201146311817223382924274664761695172237742306656526434548328630300116205477403573927025257307305348042928513828481297682589783597117946303854231646154514404255262247264725673269404566870816197913331429969153143588701111796637174184301094177198691812446077039056042192794006798403118440381289096719603415214167614851026637333482874258449943980023973199458850814643736394073950074687215811542796495002202379743205974195211461863999464160484134698600023085014471165705366654590839479528947473736603057242805823098834452033661511296783790515239549613053267134201414878435285194002998723909234836547707728351326660082322120091247356516201023081614634757304323667721467055459461867966922102310550130798506723736018339596225088419844788703578828932354782643353281812619610218532268761306634741167333632675234103660784506162898901719134221781623025035597753033870082930245416353082364181297536940886685722653327671635382949773651187670177686549042951998025550496665585876868492813160441815104722121326193445129614748724684906040855663103048903281609117788821533938942698034219298069309946465155057744029774071171544373286932207324847163493460785912512468412445714887578083260696101169000163663975105060122673654808381651635787857505724911863720175598777421367331472433547457128861954107395506166143331789096558922044549745629541507112632016404856656139420468102037063882528188091941026833887931801740871577744737945049090809967941652929712060995390241235142242184547861956102124850566068919898472476988942190758406829905558058613258552004739906932911807450328539652952617821483265805816285658351014511844342538187104021919380190596952909877888626732369424248301043620681903867572528433411369347588978764059831186347429974980603043613805244593935473053271519728180102111776912412546106524289658821793203035026502326758839349411247503864707551013352336655230454233039266999851160985466563492983861216615043704934912021919668491631405204226711335070868532626271800842847899187439748156722000270546070140728306880214898944730649374708204154419493981564167305877125627701273823713093155052635774705046537603281953161324549062419321074335402956115038311874021621996576661042559223344710526651441394950521596461765316194755551283499059897149422987377689982777201845436197608486016537283106424711225405775531527671373786933686681541689306606642533176138356046516022715111778690507469503648410828272234840165013480120265680681927536811828338906502439841239469193135261759440281544322871084199238771754025888578598099614269378991790972966804195482606980925471809567262327885106590437441265487328952933332589497021712863789233535348204699917391483907983633052748129142126352137239890608873340064679233938634195659011086643359617141581915053660469686794675244817980295376473127446059729931759197873097554476145075980385448562449112174297846285292346511190766324343903198720493810033048030354214989711850387817316525037713223946929839621619822199905202734934540949874095044815960035404561421538576785679971743566678658080103781434997276000777283468483976665584570621996964496487513029126320786844564658317716812866697637659114519311336534325477682838693625197597111853983914273789226467561044260429046245164927176222438764334118469479175334562239157430292265636128772457499091865271675522175329990484990670317436880108559447434909060645290123691927052947729232404641145995059785076705499015054818340303912597312002406790243580127889165754523738411538498361043696493592946154361156301616194933317704244277154517967462022265030366641757445638891597873027631865676839013182475313930724256462608382140791708916858006125091754313181109965646777729229034581586572070003432277774497032842215114482426640210084754477480197059522832208167744868537678283497742579023190451685232572231540749748385542914250889072732186073410492853073213177671568124798816940466091773621760024184535675626011801850327956760994447318871263698989789553279814248144912750190159903978824928918956075074969284461458889319016976986297881124306429720015674672650683009235847853985601023050575680803264047108579870862100416823565192766237253148658768797957563872721794838324630569711485638218170616626785581344506282314153188875559411225527179463312438826559568792744989299849755774404905860468451584574583697207189740900780458078320296883861131049341005618201665828571408884704726809004632630137667557275147493997705313639672858176705469245047055134303572019924175384112364378008461143577073070267693338882755520608262749676422959862650771415936322413771445813865372249113101718505764003461620609630127783393415064715986446405854197805178866554131275053793546615084748729129019812543041931618529775703405933589402258383979220354262084076542787104237345011878605633781285529116943477520133022118208897863673356182273379337334962021678640013922782366827162523327791914968273855472335659448691745694123324305978858767387752948954977061689824931482858762974165857451310697798977577321715897980182040097386648206821856657893810851343522278521304926634618176447583221858200612276392451946492483568692601062882271259400488696682352561167472058078348628147134707811440830292600403402539186461820506672992524110497425401554324055545956608180229776768030757642506575458842208394135740363647778092730533840364941328439346759351505099194210367184084319322473336961605002740319418614116500642853090602249514568272193680613586882893291981300241731808497376682629795702160564970759473829877834197521301106130873474889174799945670775511913781142900038772860928648617203794283504602090964506254130637304851331427605947249109671796786172874851657653604664605943071338648673216220979361711414209931208374669558530623331700263414789435450791348869586391600916139745669174386357273802781490323290238936788054318354471153003425424779094984151173838973340464852085237534292412685242065795074149684807834263828536048332256025929417306945269803617144889748724670199406758799375536784584564291156664561515731480557429811874665808050216607646052008512696610201225330406048281340649606301466167381743024851056021551369455205524728033484417247439568511613341218616722079290989205027356357046367356365516712015533451965904688603264279298991941573751444928663628889390315537773655381074059583020116584536479283046077500535590565778223295759566151874433987290149385827153810267673585177042332588471594033133971770708760414117582185684335625523978420572994104623515378821614606128283804305384344910232397464944242046608029835353109397331735520277431520964666577723042952777051132382443482115731495646583327625371121623967723758603416098433785693465014389018698573061752210379215102120586237474838802582480978465289142426029113168335999722594662981799458956611770419642924203788883748724151253564056074936980863821411174156018500313093235753499855911921965231757881341337835837655876903061714944440079481052030306488879284705203489587385473473472811954444827084619818337537114991280893909847912826915112735322754268305048949050202401884004075787942506540456782143506430712758919828904934954327534151045117869297299424748406066164173324117185732431728915787550385843311754959593015022441181182562163133083465572581321746030425134250923819863881019893867945509238658369333073774152747099703950297141459752116358818123185714895853561789980109024545455367701403683749299036264274062969493975404149517728670235929306584506139755938545764209019526120711482859063118379024389290402921260667897832581880735354389931738363614479556509123974480265504846902685783138198033541888972686300765060847432677135518410830382093047470316297434026291264441359711543185327560055211859463448339080375796174183522278146107974492171816031728959798684860749033703672399517813432183746642279561775816499208651327396257498421611936203344566747172970604383364387890929519644954599183677371251796061756877557834759501377875729033817570914685551016099096927443172564788719878112228963953614382579061781832181052777756487859083394372941703049510790484396627954492497195941768904640269528870399144621284033183566262301492124660788110637931424555614515492152555814480572492345436485024241123606992886471961940600559212643361900914357412608889209379105723272038648395129890238166020250159663581911190854519048828845430200085658283255352544144533213934239491177686770659541654941807302324566434124110182511548043703873614367272332788641764240615545485380978221621830307876672648564412818701424620563137875840420451576829818067662808659058883892897820032585275061127180365149113106837635525403171502577852893016652420870261046515888114713501987536574843461914384957883085588044462672421456817188994071928823319509230803050445805525271111349427953447918208438692160861328040651110523241811107657151043244867642995601718531116154266138682067301286142794320195397239923151177927837938028106166398241110543824824118615316001732751921992553091150343049356352918961645507890723212632208713471834604754932923500725653948925507328352993613776364701051238149383874882297759408782657209516231618294610126250760477055274341840157622158388684444440977723892797936823275633828594859062999400956706799392224067231146533376815043738244728695180930012753370004579580639177251163047913874948572164166283531192752809295125718463233653417404076500464597516886699792706634732879695752344813078286913920189259391157285479834464243272051072289041574319528168671922361011745063312320236936883592444328018301583778749430977071929282146753050726962456867318594382912861866319244570386506520745751315406197078387269830633278021226547549672428602650864439571105717268542548660018365458825817102420690338671782474836452770790696912158926779654702411591555889518035659670915316108999908837460391123402331440345128883996169149061167320477335605842825689175561592482187852798552773851081270989794062762743652182357634642090676508424103543491553510530718592089349438748124087463541191838362130839065977315526511572728284813072798331488379410829496538993313221935776885854776618899286320498892724191306674727463690379085336584505193058227963732207993378037126043807306053262037702479483438213836689784698254131483523946986755905202060371452433458905823180435376864922347914540598819611537414049863713999241849747326664908874813183671273654531860585882686519182175023861853898182864268095242629553343595926200744230938352823579675997088226313950086967592958321409548319252773901365198688959983488579037855493713465872761522845578370468232884191977910943218301556387851565919860266880942647068507394921960248744059218520907028437432937176609522464924969508169845468985543519908553253725907594504870478184451489416502890317202208504380751989796258921660665549178661898144668640250437191857829747547848372959289843855723219103613344996599628570970252260549527790327162359721952401444391610788829941501808953569092386973377833628280744733255597360437005078986323520351603959437787851289283343406083249912339045620722909613908316949121499091164610890135634541410846192092218008413802761622553112231359159078034738465143855014666967359054505705920586286884546328006977132971674893685167491166789742128642148715673219267498550991464276768108680843350800541798646224926273504761226962152204120840553108545949248618525709210627214592252688463491770844039373648313409888766475629411774671878582272920610947227072558945277542178313443891801343832097692030344066786330714454572355552415396529267062278392310113858840776385276178715083946106108086712583533357594632120189063036142105558086778560311367397432781641633891627220706547323974807948459399500525658898869863536740490476799742245460568418954764418164190247299616553606457529761975926823993822308850310254277022535882492961565648281739215878623116922718210853863817995479610322233491786290791503013440480144667907297571479630308195644097766585653937517227390948545546822780962366832150531924603441690622922478901152386656871195189042595646182275989452913506926649147822876552700418382616503338173297554976099096230078749017073604369088722824186897906023940802886108476169114670037149481313420973421958945319777748694381860898553300690209181470065704109840919912377472516767654002527015573739526032159113172460148809293497460510064917230241488811556920061870205515238192642091046413380599754994751271149806935703032367555415734424043654194284341620224270426973136411501252393255430711030152756994935852694850704654515781975338761464199768856297089977457053446081419149084076917442462973513017065620381714715983833728242510771603726628013925697299589035292608335167059342014494780809844233114662272212496756899984677846900527168064719675587188025269460509487634977460347525446307448149186690921766023112161996035670726191394017836142640236411674343604015700297191725043103995279890664925093171805591626576756865104711193981853303357120868724337078107361749497203621027771652268593150136258524807997577615560779386492109639272813003357831579926111735149251644856463105075353945616996576939281556158628623681977718075662864656125752860282008240045796878279607582146771023105519657176405358603021419682734805164476300881649401693854466081538476380316406395318446789244643378649679176166483389029545485615341679040465205125777813618243142405450446824846785358340093986048886941326346470042517171684079088354996480050936342036855543221122870572163800550488539554251135522799079290444895904894719651228619199284430300378895668895701936804843157372049225597056002779229931113624947353792915085772423824957268115749165970778184745779625019039530671203757956868565017996108203493849080345189268832340878271941530506436417103327493256940112521389358383217241259314239718229972854318440116020066331875506239029786181314150291036388072052178132181522879326329341183628217261137695899645690489415268389064023478095536430322845937094103328575232834023363704461104670281993922462290657466379682129974652472250191562491803409267964344643841201443272861015087387380355360035167078611935359209812508780860701024521896877534509522108504647626867016704064301312214524229931460236457361618517764505266446466576242240698846559810799437706870988347845118219538333326861268116298628289501860545200136379147102910152907631916223218308313334878487146406374981847320836900951250494016442886104279207455939297006278563755142981740406878476578833947297229878234624605497591375332914416303660127575515423925181311906159695504277074129545407913561007805509445787335902383746023029836436414368416981959606209214140665182616190354632465211112159785000290190198941902121227086869673005397001265447936637189089402749482068509791797526896283037750664601592170023118954739615692806820251896912062716730940396628043574942826962013863284206338710250540888549876410503243633587170219671378848957391991246653702989317940325808582419481849687429674692618973381579503879012017643469017768180544456716823299518688058802010899784095479364197737610715344164560587765763307598989346910486618885615787063092228241737650152897585427402788051927750272734297803356645326787592014954254276272271963664138956136323724982791321946378321994216153972855441570813704070777556763582739948404960670195324359555285512113054427606815982193330291804982768284579352336142208034510653943146160845119712651459031760523882658065958381111088600867244758904935082027404213017799555433419425353750576875997748212436969335016190319242954849839538968749736511685398959216726864908511513754595295597178964685887125350130344538189233655526351103517055987011673830367090378482185557679685449988208361881446859083323489041623732822414592282164141230484379363183826714862359685699327082206872038195900653198715666155072988065604370600863902960897238113163244144347734878831158844715935663109062435219245860400965011632138544787993341514448818850397353382854634289670572803253043064212312981546919909357306642973271794408909405161844675942796376762959149354553609634548453289545585228422221909336429196776661116677654380596352226323227969850915355379621948978109925032602911573550704877657234156919543980999448703183509374024402644378114286795051989206600316131998092421402373550576971006721587170630879345723047214257914192362278278423213725176349464082906541850697342237465229946749384951517815612246456732106382040981880712580531025723222792949321784250185505366567740760684585474510766597570380952543516215321119868488604737872752362908459181134784135027099997731500309895538756198468564414216733300749772903388737843960303958743682756809820696638083212580568543967511151802501044149923958746198005899354391973806191548916783564935496568076049072461628621134473804966979576145516808071318892125218087977958912268232467808772418492360772189283112990466609382775218966829527349271009726023348636154933776932747475520657570008791775047567719915520699732079389741945572454692965017127119160233187404963161290977014617861674570558393725073147150127369166570230820262338251773468399236366532501906479956750551881562359470532842301766844487597885046517192171150513918740315672191683293504249261155198359272991982390162998858786543513204265284760725527221210977630226166976054361332707353833885042684213796762669639724712077722610812127886975299403933057157517000635089090826289084547650428750500613631384612796100823505120651256414068007801578780533506731034701706157296795769436184016400936375104240341536479099008960726668800423880327511949878708404905393833950885907033644479169580412301729891648484685234346155610957419630963939292750123034535425012127384588439471512796372897750800664216949886555167687583982313338311839493701242610203026673704063566252940295936663207784549683403659431155748600979327322855214894925051721206311689437474219915234340435068442441657386496377981733843630778340216687045088000913192922943062546824434552001980644575370859813042680428882144273266550502226567995126344913197545688305776661362282822540794234971378139433052536481276028214503313259525760298490830694397020722535181953351520266754562571521648854094047530157562096909622614099074152365254978638706092897098969003765513125626716791435525022280500511289472810980061183751716984614467745494765019594485549289080376888542491588026562653345945041042950211849729483127439063974254679528389685760342586279034456473713691297886265840452920522349618537691141797754927666110331316973106751160288475393997332709795495444714110119307028606056108198340653799420471908687619420009920533866006940096194136542897849700135482557031477094294169926259509090187286803174384645123915799970007766518709188548679994736215138323017035002310039639402676044957376895274722229889866403976563917394772540954092513757131637396678231545976057565667485431663585809656706645980476342152217039382966277002203020770777866717255565028445037526766409775938258631579188197796354820875033643266915981892035774841464882313450017380696740876457243792665607955260040155553166654661143619849312404365178369900523489073753791486977106017314198891911199951819027386023489300829335359310874976512297165546673601833079270846081665394347495096219411515472055715765010387326878466799566544941649927903216857414813681627753375278777584920211716582156630369846392252915039862872115814925225443899065569665867362889142096519391338745691866251425010391075744080452791554753234424940176974242908564287107851523766096425297921614199375377899745987441034847396162898893235664955929962383344690981858746385726201755074401968276511511972821890668454973415000391794567619534325923229791355456296185153935003021235266896237178839018747804372738427769804245888348146644544590174336237052769307833774005049889260126491912332993956758250125149853339014611047910237290801845858244781141170702705401480689661450913366514085186040209046926767703057176942624514084711083832008348365040129612659521117772396117429077397910323493971649387823088476911785413358324615310001993903779095307759061212801013025300389783058760489803338049838319701410371605580030336923254112938927221910794316029732166354902883700246698122735600071861374983924029815785653861981722577930491076566647518209581014700250825490881291094974535057055109368535237920758108121560924202006340501842018351011109160269178771921744125896771920661514093363894178250493064076264241617812190588511550877408498009522348827892236326154314284337881355481739131712686078380502270969352528703216850660536878076108558486858326404634300344199352472606939620789957679104147105844468928538662288693218478288017415339692711634506623827977498392917942097512284392553118051545514168338913773208877044273727296394451936473512679573417560056152974765008095834735656859309935743435715279724856338447003887259117069009293145092921523728637136276212506793962836021486052641719627895384714379381963053589386957399202110198945749441003141597595844571582500681683878591409102047615087564702164356493535635954300720158400248621467430461132071938937910099459962787011597476572355157824014140064642481852944688429969867426568946918930079728167243182608992391469356130646770152121991246042626020198109638322139275745409487297668665499846852126770776346026253951139664402110184200138143863370309964448275433320150243636564825059171969968749226512824508167741099552269247811219945637871440589402448307010185975059778787359995981129852142132709344934833381781942427087087419229149282183657657404742637711407446999567650988369973243210705315767156474249756875689847924475301934167637438597866464788529414978338737759479947089394336215981472092948156152181618082032059694600452575347125994659682575732015178439399353109167686681489559136752936378400559381227263042942436663564944874912964479756162743437686167514934499917698750427978961002769056220663349029362626135062951518508829247560701025479865905198943384653585999403067950479927689065746700786940550649009496747067496708113488442586968374873827383900958773986457476613158671862118612163444946333567275348006961969080028930082329259694109066950195976970011497250943784376498051856273872922134711325559976978282046056495598112792999548423910646672623617730317531616439401961632743063845852152484956042329261951660076128014248144844690336432423893721662869070254586065454399836508259529489449753587670583656955537280758910113176687156069956457178242554472269017295881216642186157400412335508538642488778598091155660163336641256397227161879243729928556446131611981664133572783158789435811716336889791513578195594019724726423559879409293034210529489812369352852268492765547520923205034436445877069403171516208302745721082193553910096341943775309077813303532688483482521181013085802279819891305734604958181485368784930459301052100673343401596224728067389828950197932466995747908142899151816775875530074797549377829607301378302123428501745790951592491747922409773795788107444035067465175607195826388503156794884812747093685012425856670450663233260496448666920817661214844238233029733565458386494169856754615458350484531329042734307091431677153260500908810104099385209123010310732190117523480592572105898570650591908664137058500874570137329118649547124394487187467037830640657463904223738299200717054361120455261544062668900017748456439863179084553948623601085292363236284536718302638317489072863373356823477304013815189399406013308996986349498948464779063357133853671965582048594734577996611779224721791201457412757965815668414925651088057818829281372902342364146401725587044754305990521871686442726730391868859382571416250498374216302513036126239808760831918600794226904043794446012172096187481460344252719523883258126726475226973872268119485352669405589862567197874554183279275558610174803440245805650029278988376249303710618310019793586038608420706120149747676124794157739476722630759847978894237644981609304890316999771198268653390916807272569654922520095986252118583084625384161060190671956320329291831195903992055389379724592789630079244072069283514787062342442611912506219047035887178703835490500628497914623353805058633115794593564820091508191481730122801222791460649626511444884972955919712638724610510383227556749572407614354023993216571628817357436824789584424370830600526895324580834392988816255204758145894722638616527193085794656785753815193090625786723020445753891981113728036385725596569485352747887307591668939057960040365681049111380563672301451591408593534495860550288408813696319242447683623549683458921624160976249641429640831025796452255999294902566990253042209716466438805215172991153198278397495912420373221732467367487624376415678355531259285720107034967975965543807575954397049152451709956805420989014933718895456143168482961534177411311739829774807121107704770774596903244132820225868617198947518636687413020998970307614207375989164454257609536172228272537437176071420532322288767624145263274783617575630195618634328758071684694856747950394821476024329950839075367469863448434787859817247046855222420732195127211394557342389556610572078133998831543642917658185830185878823172453490284130805282608086966789206240022002325685109876062976094085005576969573583819414015680373159463271999580201200389224276488584036056964413514473839357300352719221764299274470451080340127029607322836035375624339139723067143008771024332303113200040578114917861042101451204186867015801259981395102577244315762943251176008921148160192144061082146231009139110001801208663128779629037431559496973165364747890679757034963336519648720830146967592681008177109512953553902400130764539494192509918550909818958388301643614099776711637927615662345051680171037785454022198542066640599672253049020148866295708030629916078361689814080985384836659617834290452575631889573480740094322637378860355795916061387349897889163392675430703943968542565982049330654860879873444443744277264148598378940506461814578958594458092336596424327240528223461699981325263637873012548493104843188241485082166382771906310201736657049923111850181702860500855027331668237163767635117075407225749746798941202995998810877105439851436736013451532343386300380114870607955538510166343403521948509880573671242879530252027222106238282653462275750729201548200691045223649407150278123567527020824754637826713364739711375496052255088954134797905982944788174042821734053093750885046940744548681051427582000593334605898731391858257887943022140085816914881888503740812597496503080555318564043617477093040761672185156096534267629899047962985195914533864620964095021798971830586014280937302202209037013887799643887821708532629643698830500074153966959645601887956723432824734743407804727929642070010043867145817344339119456632624339369595275184382905201232744868467425707066848107094030674139432103652369416981628729613301193806759728181669235468080824956828675478326237160779353627103353063552268938793323346107108098167264053002473000643718532176707111561506749383513957729835595928042769304277459422245282468844920013665285916533253623701434455515338534165501217364180412933449109946179674870198437315285514445644129971993244343979130271903770448052542778140994736494977745093167310946385572016358261270204083597203806754391667570436073192659234300341883710708210016568612660293887018370197408988505380349950723953752578348098700864289178132125862666407655143447736341197642348558854209073191714218825571228172457278963962927243492640331891951563556604492841966092931885962101047711300776527384748763851296955927983275481046558330357738696478931499059716885637221969083171892055226688683108390231069863719520131843586161884525671205859273593466299583398373043599228375773255698143293193600738967231910521636864437354167441575667315258110594724862191993804242859087813568271316354989419665955205094965444677084833543307505134036140278166534015923438558089560804236163698118384251437903215066868455427953016597550980416716780299277080751981716401614449671184137110295274627032528620586296310219164117500186856452113625209208829823218072133858586277740511368206943034240039611578335540299162275143963138472282810473077479562796253407038439058761108648182202963084564941068409098277390410174115524473562713606602820059824772793743008555387102943594664427386366931604841976257671066971244710634315841534479941472254070379783609824080327279089701290512224990384949075183600147507384228932105672893251934255216367448603160213312603003833893503293198613818674524340577642529008305735092468792863392782179437729934305626088501504182220189519712142448686918988491874302224248662995910753302447011954213506878576791268848175533801460651107628245612404288782688934636144757380266443721938129866264550737006944824392880688237468643231816829402998232345641852116017177533667697461933195370172597966588504472247728908203037463033621366058969244433754214150102501803761964604555282947480687637164205316648309213257184993511598121565580213991416845735916549416214139423213751391569360387661138833158449029338337442350400412051667617642013226779208595346268387586767383983425152118372493104671167939911203481991271606559085985898019827023715589801998718625244442657829951452677230849904348627235467167664838680358763307662451661803779651173531150753232065744581197844689801846069881906777039443983534783312827928350388731542253959824162171513565737985776000030011061509124412611779955971846332343738506405787451209351954831043138096335546317994280561637297052363367540395556018318365029215574333176321143543190581515025143431250387875760066652394233494676741085797759644896373834719617411602468395918300753677282793613010005467521210954047261927324429322614488773495049793041911309064387723845100680928333493366001602403919651865596469273167613556940270575812182463100463258933958322790047572297923851573537205875225526850558843522548634466201425441911042315334525725239301601311613544287787804734781033633830534735528840621871115114429923060991693475610832874141152672313973933193000753879154891104886341780808359627838140692286872043191988083455994285126278687166985745026033316945593481069726479327968227052538166763228272926685694014821839144838262938380508618829551818002535892279584365349160125372883174179890157128693920866012405575039981244504845530580562553089534365735122146718989499962633586987242408210818029728400541840267067976452738337532758069905452262587360940068381086469855761978189983370794420212270850372265602799526991075140433163203816758592194118357186472593417543064516304853937772330175904499757100477872200231190877692674660018995080347295953578350844813850488176583172921098484531328102891620299861755181319076839781013086278158024864222086995690992876766569885443317836596662428386792350552705369930296207803626889656377484674153065969649902273364564186550066056672636054230384610682424732928606917428277947251389876530298078479301736645344335819007551168770308550891877055141902253435505857854745368116691228718237822912516978970736648755481573481570089039358792479042769002135984866647061363514923325091809463765460805465478372164624566572243056296668779582594633026363146483208793660175234190778525469807955870860696519026110286214475111513797890228743511087025633734896685954694947538632941059220585068968776371209286451660479975378851879512072826896124535439523867076693155732194023090453927393262062446254159983525077184179009857064713796675244238761111737617699037090885421729210442984281945816916433614653750148259645829505777771714389645917561351706664617852903602058733038484410592140903103229837102639577330238246542478880913537303579306691855433179575839063269690903080237915179915475619108156744221069692005062798432882410379343799092121521546415874912743217003070784057814841402853774231557140434636502131054366469761114361192883297036288069747258719694334559009127823313600774946879518399787558089811996051064925679487602175365083744340147736645113432468067974212109817204319240529986107056569720122804709320101860606132703460546055566940675856350927274520780545808733164465592113630875995006311432616746153416906663106972816277633936515052693669116482490044484887086740408465259276637141985135378392930347619368847425764686729712269785222217864247088268228664394520577150869656014650934879666600487098952450511255582296767307561278403215101577360511075044531400959648492489193569497067502223817909126082091995019020048290193351455988486564743203895930290891146051501075771369308589677371045675634236484480024636507497798905276402029530241581359945063079560328246462292287994697462262073698000916240568040194747842124990162136015968705267610034336652975858744240996023407338610384235443953980457485271403613108740226436342770418776994844183332641440859678631766912655359909773384264291126870797281956705004180305004955559755482525036085899721165027089852015970207044244552463214734727835675572564464771588817525476520959783789847059348427883876526340144170473896833467652429619109563483237982576270091509938563181110921158618027400128444152711850821276443948610164173662867907514829389415964348407971561503887853397721999824763129246078946409842562208679921553991951059040356915792045289132524650519362887337178121237487911098637839357055241878491389729859097419077500770234791823223412610927561460797127212890732195744896081503644981730577361385266415756655650428866078413913532119867305055076978936936786224807462689130459137162096431375347838310881204521129487833198998222649409836907187082119554959378278798285155278765441165054629381821601347820752476355478265926047607528676059348996674046679357676561611099223087985288187353816429388167909256245172439813208508788346969824645080378962840384368646913226803724960367279825611398432200605646532442939047406791035731227428126719023821326076063318518388215301438484021808873423859083155641677757680189852536696043160501190959659824313491737659323762570911494775418470265902797574306347526256160934303722197822163816829363386878572183142598872840074202315580614433620531649539053402567666734930543260409555050411591524757659129618124376760692123798928165366891760492878647827189754802798971920130914590540199792689736795220016787509253218560194913541530786980527242066768394081467581483041791141982864730193110049193828422057001622112941275162080825426075082996699483700015420998423725126780093033432784248665768281049529838512146397484367715135888620145000141239119216255478175740162778207547041885479416568724643995257549243791187643900538252604072765128513109071780055256102228807374652463149611374519563606145084921253685161445663440290245088240894805232036312222068047061411126052784799893009583509171818191308672508905957422332082380780403228262123211392735217740770349460953936116603564803872684497379736160157837836031089934320478408383056184719473912280672988469197343170217062794363775677951747019760658825863710698317044677392141517765092004618496211392980762740131584321639904405137822903837383548047850443348010017288988271980779617407183218569756349501483831290810948475990873960735298967522952916760585427975828323853454547946760681225816586481816387107208952846646526840027028026015797730714844633337868650038591657317072955101997614498246230925793496523968462544431836116426458323219541336222173890411064088529984795695343973345962599139610057817364210126685179369258908088531352127188371439173621395744788608683165382815879558323233826152830788012983700022093136455748566314155171080233277136494769151510153408223396530825681538530673060781771680791642752570537077491611709918846409298880651101454650748385840857310501513423739706110982973304112639740142226721421475709309484844492448432869985852517631412805667090469683641453214233693533816447459754339552431520287001716047359288147916466845196063283064408485812917900655114458661165561208568131163640042663678360439510562701608309219115834634945694874885831902523583297279522808657786721834468942964276152438402101850973994820239246992270677154982342626158164299252911953948655370756619987202523086378189983479483260549159646473749697532068972252399736606963002011951920876009880302632434762999467657544081765510485339961319886730070079360922187156975199461832539917602700795308635418836733811172759813651101808740488819068988324436725945914239175613006341093512358017495607522127371267599339611044584955042123734098337638625098721893801939040066762849814358429269651805543687218206902729356546360784332411128120461724046541902070190020427316583287850424262381001744789036446019299509389995794875029904166200982631344464543175050288987422986741888512437209691043737656052358190442540198218608181670010133756549121283626595464442621281852040719614351272368907081169779696004208792856666291463372322714140434603178092945072242159397419982320372426858287599102851654423445963462919075907990477684315963519727010066749661596102303940452057616344313958402629730272890711559069710665132705396262978159288663509736580572667877280510840035362197599953354062439760174489665547441146143735776443942687019652026854267916624627756761931997205765228880776912772794411463260058667092846386410846190244377216608082452961626299206828608074020742209198054148986093241564082373748112877569870421584777314484208724025304724892205009035800644373097004011006085513361420215370910438776135465623532738380591614415535565754586256042697986726203241624436510304858565970052791506306512604947551776774095731213815906778377898888888500661794316183123366204601265111051903112401426816503525642681676835935966197495768305395952143586131750980547301302816442900155515743658522154024262573696378039942148661172620901412860011659587478195981965932078442163159920422478499667489733013039011124802464078159635626307246025489949525071150275008221947485878950733482543054306568643743953546140803230357245504960596304958630030881644217420156347558029359895156137119793836514729782928831247572986336545764129454263447973165365283464736499818660428645180075419218765989470086199141745939240986901704665570959744522475294075999508518632532651424109502259403009830250250040983473485789691776601261041066747278076903004421515893978762664605833476111510161220188306102472791227915080562282902538603399576886680368489831988254847388168124459618550476081527280363784908710837828846368779991366568817690920236803492826598783763159347947945508569264839380974312152967391105535345316850742191262167416922728129071759722824942701278271398243324016719209524013728040361063264740895001472967978270948889846818026840951353359330280470132834818646578971186574994251628792230538928704961545885285559006307657569797746471643175574367783429485895143861866867697942238477900000505912762406403468406299616097694034318478595001146103691899297716787803604531036783250707571616120915517267497792217701005594938306160796291872926561871410783617676849532309425922674688996579425314631913323221366372697156691961605991533997204916760082861817921131646535328209362395210593730299216241240321962875623640131085105397062829521217264726571063866003160671067230195246312060952663889259846969538894437839174777889144501288831047024288008422563637420242535425103306119757612438533422853962881774813178331092672566089610852531563432974760020618264806755553714236724338299668900458983850968406116947271043927413865005133152081097224555807517550548533143761267942512880206559126196346052841479384365844166996830743098955506554092785704216791391543514016782127455484369265445893131210168662947924770517500929321970484068235924373012215274499603875856291362319372808174053803660115626061132872140948876172913520651436018294279544078476220345862764520624062711735106358464436828629312553862622602476854296737551138442564799155716750552880246201744563258603120956880505057205903068675350431554237642468986890659275479827483862847950364998400821937838759200083039303196049801721063549253404004644249482304133564158419141452242682442764271988935763455005751662025239831775999391788010230325939170249776709141876214828468753554164373936979825162621392212649461471001530569283575366547808888958971284020725020978010318151712776751652921632923149977466282961200144339663111639273056564737080728365482354909451117061475641399833600693842456381379975842715314235172490226225566619548470355365638310677547499158724715801578544344228863671233119950166096376601127081646937040954103415962932144361987355908164439782651541526581074620288362929239856106158876387150407022673597771364957737534240121227856309950884674882071061070718152342160460116773175862652184275133610298558955071108722779817124596869235506261265670681999191307293922630548004877391490510216898829425767627802951530623896024285927873374458157509411347107435287151466509250046136417016525218813074973510580479568020847466271351007085886696157331185567834937085885298282837563449109340352840262772856873253753210416468755099236380546070684133698508444700364110989462179384406095984034714992237438277432311082012719118674484947806928417052475551434391365149803815279160614673654179538186727532038596467529664501402072533342771489623628813869597214421004456852253053679733491219276586305313499162242747205763599319369696444837335562419800950630227411636477988491722769896977844525478772243811269722751453861014048659916036014528543509312692733689373834799884435309435904021206123194634225965976486784006636655484444079968032795870879479604709188161509424129657331702263942042783295438743605643159320777154352124123585115897209779812304881273410669111260700871145872512885912615278510581390354153804812711603185508803692408832705398518326506975661011430655075269695643204757780718825262253916758826169464039917870880235560959484172926222175151640261817896041131471502229862760601887354472018968292007916427846460307494312586019595668595570191536142723972719211268986295691200704389227559814596270041576277822898592301977147182346301578442210112503349121326321104923719106687714750700409121165016106984068787327624326422082592872589808897421447827794036207048959755166297513016685202952143578179669359844816966669817765918513393916062881978409757692929165818534427713411287728571295061496804395490100302585775495435384776213259431832950095389919881972430770146483200444475567608976489396390219957500458939788549485449831170090674781537294437226569972964823451440460827564658423975581424177386749762947352744084793356327329147791524751346854221332128935959158283411743141235474183215314741363271337722569842732340482633026059376747338591691649334375785298683241928021039871529443216497208679680633124656165283311482166115729202535466885554372590515069722518081199603266011810885799423463674673731529872081809808436976915714899837547693239875672034268246385977591853270684858076575459234907251213339807304020876129845882953202094653744188694683601707115347787909380892055536536823164754371464689258552320231104655095205893214417592684664685062188522287556148501242935328470074130497522755671888401705391739225841059663124896120447488011661933901752983315964949382362229405125316279710554686482702105578510550376703129360968788586185512438830164986316454872888190419423412278945492774509140788701698285796876150730242871682769889146593258723550102912292268036136647866324763487665795442417624498303166543333693566351726769343973119941404710322370290114632141512184258948043342372637400901104904275579774009496264705497911095658534032479226391194681300376587021208709996471549130677400258524496679965136249303390403713569730142617807736940027386819157587173200607828060572590980391897527309193751526580078775652768943220869682230537950962746788996494280445276848216947170629523126794281761027661648299008334712677292013994811136292752169561476631160088217700532531698516825152006080099555408212332146298344056881668597661944345588088089068063770822231726416142711502645782153607995731032184835392060219131934887079846050626272226839135344701223652374933429362435858434332905198753133355976273387251097380753572963927522457754354335063573395445701008515168848833536664686932940773924396994912504804069616582712550186243678731640159247389141578082625541984780803840466941414262613821574403537251200247191573513453952293923468415886186103585615757674093781903258270934284127715800532406734366110018717354861341116944213267833684080908326050645083219993616659843310646494223598270570432230349245805771642009128962644731302283808826077444188313098522793571332313931084502397111896442319342694729432045533736721621004256577967340042451534273017403700737763050315701226929052616709767780999252211015285939078853458868588139209369904385471945140901615393712118451582160034100218397628470236634354937215330391261557519868778562490376466068022240818086273152468839894828502495980973030264860233833172850531735582488449409793436796673117902254865185196071544530461922302720429647084247411088877102222155611382289787569894380554054594109639417104947824097676509215709483094742146766056273750782692844882317646963763843952197508632146741989433459753669183245637169929141075950164611055768943867792988183675586920052361708212826389899013945289086389381724755028758441701815916528476761348928013581360019845967451369491812205968890723494423013143258390787066300901426766075658583673145363969869352146550380572858061604480045124995431145275542246862491600153273609996108803275176931964224316927919554352550787404728430828989350139228596229390424743714496090578034370869751035976119811004968721047260016840809156615007722807828835014830389113499226799093420154941745904203484451635584283463847835801139915950490443971915297519318787804612171404345909143934499746716709268655260222542907783141082075104286751130087117021839588318970891141148852436544446018916682142318812002426583968702116117303213099662334290935299722686812303474866770163880170916849251282370628496238219720215452986204943908763133298349722669197935882051185668659944931965752428837662432686426074423206412296367925589698636391350500775664149818344596001922790128277867342821983445242784502829452545035382144206000300600182722034720440764755287962621897330444705705319454711541629166788549754463177082694316481491300806186030175934255792883688168470981642782834775651270568024470087141469425106377210649722301483431407462478876154476106977752055181599117737007802707545945573889049928565357278638555742091358120438911244257145897109212794020377014170218920595351114909923571870904446474112595805843081588490536352171509955964305724437179312222133849118644950589475506935311218136886998072407884153662850375470307850755960624444882422581651389841239246057260390280392805101757060411142695349531359827194494936079709297240581296128270229501157743814163663194055766203483742569330219024997573693017524913558799496237296032018750451445088787036097675601813133183362382223786985374889175268651773642755523956828216900489465291102165250822577480994458333639382201690971451687791074581703270587032395494385052427702670103557992742858209379995761234269243710045124375722513839973083645112210845510744036758412538518400497998254988823351531249414037582917790928351254278149657437517865580499711418652946386395801164304950600725129286066361899861966154148854553794939038504920342049367211762384635658458314026137606934915754169395643173597468590562883020705420914362545576457729672340230228413425605868760583530567907716767956635236447206978576225829068635444116387421751275150031615544736707695357676282362298116290883077900665360439954887554971050416897638311535828171967637364050520606794516196579585063046528010545231263163719416772765769347056467699188505656196971057798148784041596027822326396493841207163446170952786755380438198673856018774731446491573561396514695345130012957954948558050017277652636655221427482669782658750459071833850250389943636448877320994559272158273825698012478604106046133593557092661415291914247844636703171049054968902693919709136235774207511596849132277566194399378066888690348153740344337022406580483144300728026397658172595482098459823105460965769023287853792829944316044220239847782494988080220879382053590973911397077277601407543825505721036310614658851975942788637170464379503381770752873916888288807456060301622308961966509114791585919108615209448505155274500089788055958582171279689833061949569408560696848375592191687176948647282042437105389536646211772829574982046122935408189298310780443322943469536357364819668322704973788667881600223600086147406959565054430005702412706481415606257585009123593105879833732421088032039675975981770279374731618073499481065993756808880259613955071032409543020133232123202349357500949607081808304491501094781757430206682800404327397387551317287075110865197695386260558595347332638459138934870927257796459584105848167577931283424430874301660214172208314114048841357990400990347924265860312589595514721889321383925328647897085738427423316379855571803852039833942540717304356041671367869400606570875467965513164836880420200015836454874903044899698164843716897457853081365592461491348656382965382121055734361390337107929845644153785187732871392725872811016113006400378813956655163296367830701421015432114393936166769390393405257075601650290539794474487367992993059066598209824986128932097135491112023487185172515642292476059547503997579689097395792866370641733799050645111157128392637150012121883341442317708904671816023300604437760379004305655477784579677844298032328013394269737108526825756151661518667929575992083333306251168917041561685082948300055189143720734802189307296406088467159414452577478879119470902060220275518561781082022124270878942780097339107347313126474813354080790396137859257959062010875224763854170512731968208173977505940601386356460323138830522740593044200313632054959069840887033577740061827642920731786608248411029849519621717449673499729922722786358582561878626798662629110295736271154302902645684921141854016853628411346511014858409926099639160396764018428411413918334779355953577566304012866703637116677389857409442036806311568373811239910769585528857944606965457639775440085297257579010936850130500223329963796520917512409315974856080876060035674207459009938325937786650285548930776891345226922696376429415680440549141212968043275126273668973150361414716556199738497442183266903675401438346161881515272006716278167972072897373575737321168944910397062448154466885060654223344515372742955685371394729433532381499641559797141444201189801576251567004967613560025552816371556480850754910143765327915931496318831843054543115627712116434936749025666111080006280953299293861465985350509301056981762043190273162529613061994767838444864295538296438780388846437466070005894216113357908756432605051293069432447987366890114749101025559747088654111967767133909604882293827277530414168916552282447424796704550828272681087601865546577783351132429714219549645856979713411091846587661877027493970419461740470096393732294502827363299826909355145593793609515808039323812583822838217541366031139339283734502928225673755225895865858398358251000258259697619081471601367915349504413874274043244424136909680055544367502566097838426505804699612618665839853676336513355483783052171675818944798657059325717692377106812430674414525015574166281964392305801012932978698671127164439854371068291219330526677199521696224358916276400410627755825844079150881458720448632516411766561913566567193816242168497342108132695439998768306680403143917615013527658124292206288326673393127088860760331683151033145099009210227135259604287616585642114209062157748547091325561162265490841602328798924121864779747170314243428437179845185403772027029226682230271216450528264917704134810187361528543849969088057445855672732566517053058260068559570055715841734990366116434456432583302899500238647716171186544789819860610682305103487225053180066318079465417523722667913209568562787654480182488756700454542989361214775307167911118203364320486928867964393287476656175023724823109830452499189833970523352221170528782045794061165268107476645107493251443492740411949905204638334835065478619526174452561507836631870039272261154517253696646180506962120918127542517207666113236273059078215040621891311906013628732704962563706138197110868072583507636950115886334128488265702277033092562963257318273611162862216097624832794724920590592599185977763392778238980248570858760592352455957492156391485024717490890159751922081485605136883039423469189493023527885525040077897247821101388848445453790830719099684258452331738412874156861965078594985403629010586387450352014763804810957626840808570832911398723063683917263228465737289711538253732148665838635832432928409740086250518978011194034227319956949636226615099076128838482310836393144775130741939709384680889835267364942921835154457570804020991080433362513184252423795553396556141160237724119217928745617066798612646500150136269342953823094483030870632303850900674198932888444314647595606009589526793442935061198113678124192541178078894473147274554800501761811005816018634838708969498850864964285520070047504881598166472952974617084855787348035990362670091016184275681029974727078667211734364989832925291552376027849310969907036318816978599809887652897317403401679219540623701913411830847888660249097012800291810291710650147784858672152066713948565377990705775986433303362085100334817286768861354165509788507677822805653533167978132153793845445681380053412901258188936876078820825144134202811675399263498904482058445200863233102917996431605859771588058925924455055686544463762477223345774666106720067355068114787476296173931697028660120744564778418344888538375231112379046855199183526498420392511385118556988606482032037791053762578459173759924018208538167762688771175207473657240016979905648539278115638591652803549893215735307605438058687283685774637420713242811796749727689415126425582180458762686961247821523186891452739022953666994554808982407390145321913283015267246596815127276322968594008171391089336875219081883842082821731984185568547259860878096754038033461965186443419034423345364603791697375330903732406012462062621560313257778157341076805647453891553063042179532497720333285770623697411181958458991798085312966291519204069906051407090888856932617685348825247539970376359065630281614896698401747483387921265379899557206000146032565318005670985434048514582327937453257413106639416324402386321133215445527330952207237505402321295630161892621564135651711933167074850481255847043697801883078015985020959817413360938630593844923229601550007965081095390730391063335434135848574165804264054132849952798989537794429895158777965265780632492691021715945661796687057886730922894212880201691841928101970852160870418076477918571800578210087243343021412940393040371554342411847546335826349085786017105642524728051294171081810512076882497059632447361740408760938437153430328464888438953019735769669127263960963007756863289010817375870483159427260809471637935191429169280752669854264599334822597001161034202468219868044588475455529317145966008146079694024229357712245106086545458580686313673550381741244933567551131943857245023777735010579316202413233372733522098165726730669876436639474031378750349995085467923698664591229111198895270674297613122526146408783649999818623638837725110859705323043546563883772779496463578322470179230394766342905751094171897752585067902803037607594985529942731865530778610944074644298715707888708260201981957996180667955420494232047083413575648260000902696550501849796562476902558536424782178302894402232380462557316434149254864396592252680956861288470613933252082926651373587802807592049499069706191440881850427686370470541466372635792475725095789254384814849708610208597191171558525854663248730275416661424050915446131621218783750120166978378872596905290511975015231138186728516695281143289031867911424425317897079869758924798740659150926146921544390490621158999713808913926778091719002398124667337756790418486855110515776939597389638909065324901555697200802199787708839903044302938471163283932809264763949170487189440950101460474505426015889749916155196965218605621786880320082071922927065826465146726251542956159675991924110775204629852662114578096309133962797104004361008223371896146640014647097172239212610144092184856950969472591899610070628981257493624003399798757795859040437692139565958800558129238734474909679345703091224582955555829464643381522939947639972024269737626760694378606958977188156981471134665549771541728441016869421804367093649680679076909925803282511188410191740686676824049750752411267549998036255759193404255194644551727573491829521765563036907568782348891652651157991513566521683360268825228953874161211102407533036716536846634485626530754321152776754377148223184403455488508667722008848997134655550655312053371274077567636225907202180353514506808310729451755118345607225938484440573869202566985941047256023060185872824944453284738071264542621530314306544888096666763086832576454503011839767250085529556778636237313926010275941545178432040276333821460021205860077739971990128831047473517546795015765084525264962728722374828344155906690458933049423085930091318881434821062026819233130591587625078591121415270998793827041044357767867151166698577162511393518670519552688801574967136955249045275148370444087451509050651283648874590763102674840305900996291118127585702671822132368908295561849181327290417244515910052891646583761524504950857024082124590389821846224570227766171976269608227439733349593648053903986034172026977248065478084018611164647613364644005501178933333719376946754668524316202858567063448489807190810254926138828735763161457571757727940308444531948682480048756121029357623796923288310347948871257828944525577348767333996636738984326366022924961304265994822028244509989106275162918520832564136740813245213358479776500605267679297868329193726880272436413248446658365448181087752021732385228767684616884520546876113718208000290186920031762498582838421268117201397193876330279654568649708117709182715543056241356203791063118143431056230241217996314803397825208371831177236360102746524855094213770338020451696115838405536471570780564372949093525067021711461078377464028981736991173562907353309008033706780881386589315599551601366595666629377450151330016619738017447059760945852820287849039831699523570508186306328194060639912865688823776207331174694330835263986375511626273571796267405525335164353664598142498319016184593216649580815733200480674975247386231483276331642328131844606815378274819838261029066960392705524054018486773388856286312573525179062215351686502288283792926892932075828505253448358838879881218736378755935764906779045262132332963675310796071950016212963140298869827754227576132918972785088867290598991278195328656012449955274362632120577922103329580781515471003313811339036026440760912549853988022071864229368485616790263679806415915964275250530296533169544745109084749332819160365585161322178902114855467790808644395126135444650158928194348378454826694543406760057905507104974503440251469772264703958869329812934088389732515431388686170676008392346266461989261572996256662330625935236986702254713973845315877423941570537282002815045596834605505018099428682065652239632611248475156047194538014813888994209645751394837167830803859089590990603688054688462331149569463080374231317642809003569784094997971362392542249933515849423647227604452131344132284450776652660113946817302997761013279790254894559654555924278565116047361635579231486529508687441512114189991009619150139667107149014919038652852787438381660241572415051301307960452044647074834480824710870394938405214952288626635179440622110390323482190289558630910624756818520471695935276089684012482888935766873949680091924782715374123138633758730288963938290005583815579359789934714885708194778661767129248127511005155918357371518843779747796685289735450172718422659553846261569279729213870841529297134774898595130734604951228198324173074940277842409090902132179933973385347091579292143719288963402129339219184179348582494180651092095921115131656162178341074144991694249722622603083609618162545181086908423740760583827918391706317106859632413123958731899639447427937066680716589908385634154997943261692396375690046915642904579169265269595175636821079516603308893313890953742255762614335025092409990690587369252871349148535600998731283423360072284283308050959720585657409023650816227388217375648750335697469382410736042357124330178557922839914073528861213516932252231324891352805258371371792499055099460215391208175315521678929859824673360438916265690378096433496399351302947010932324850501869951413876536411756721948848785233815118333793166701704783658695142902081874369408628186999613079515143196086053540704589547640193311718507044318268503618221788941696069566589629055197939484014829999896844819810145342747363993869584552057097522214885558490117396934253764346670810658710763925024032971990235287881988160396673461720854717059768700691809760835599686815535239877114048365891657267966209064289899215087505133402790788066056022346250436956390488780908266643546263777599590348866008520405564211433956604930818615523306168117274174711046597709641647341014457028906784806125858271213322210555033999443774014237390159179968318438202455786381965096757342315188906440170785902495195762859722295020754830853620429372191534170425713770703041848723236703041689541768647459268127285823030964485924757078055165964650003204467245368173761622143805665768710288841299235496373782596643886591969053939883561282764754864016232537890696248027516380546843171808075181755380499200652324223040893323257937750842406938916500095857138270484876946389232020055401827004936351739165806352005851397883859225101710130838329902140683483951271019017154220238644289625494936170128747807142215050755355997401583530537436688294876299326839175128478691449659524277904990347243682995722126828919819677662485636775607672088158304910853437303278755553249384816800391184257115484106663757102076606859057818091068023712062705244878953508175036829506503538726020418196686087439630724633054321268595844368888004671331914149782057171734987454126945704936372228491207272916864453808858339087959800643739591188041244969374175303031416345542583737452130946904041337166139554037153820089040278993821780394838666811338718219443699503692450537691869231137289551689243505225746447499297501128926904383649346669450250699845253507314193622817123099155681401645646774968049077321437684261603765036481609664153736826604773652049043016497076990301571563269055921410092327573113708616694032985387974516562403735303692006006770992287669381101398568639207892368642746006887497646819392242843351994851078203177255415322575675704696656422327293696958789415201826791197054117781994156101340971683016173647739421557107398022027066655807076044377016233674268391431099531609426402672969654746580041908050687238581171007819028013410218336882350589276552755600734896625787716838654604205198524457541159423757697159261210444625830855162672235789696716040079645895643215042272253020254112875568472881267237615167539340660348709399003822224739096550050877224730679896362576074064982944101179986645129726309641810629132626027143473829868986053416130462162661521823153052902377116291991089955963473567234607326810390515363787608054893953712204410135670866362301459499110887183087458169115193961318855816308313788815378624703982607762690145782845025435108578282717634723040398552446770746555659533841672186367025087675915882798153331848004343335949864049148020681690523152708111772722495318781336428589456019814260238547075658403044109580268645540415658552614624682406292560180266648608637742387244676768960991719083506276108845925197841463102197139974813894825899532900807445364911789738698639993514124633031152094540564327883855817050970545433145255532866007429015214948160302338899882874833826338392857138879537134622108019187986888257441296275450015471062887555100612285803656953698805282820926465240859259544064886904444025018515385376040819069633479883977547929453968402695910690292364736482595223536205712823696282043823214715698161724941725218445235643653277457254864245180214666487641621662375692710978154705100788058133218858500538299544924103586282600150042790741488112103036415388324067394454681503361821144011479530813635046470165371162666794644095624699449917484897459624312003866458728460815614704851301327023872538479775965049100138463671035714880763653694524114298830974265170128316033812476898265917081822910101973150023483066310647174661415627684549135731008287373852652236576349509882814889642446670361430969060851074893422828441770236097239802472562938006175923602762675212533786557212426176624229726591358699342945300724998054156803575098033649379085484223111810443622918676379376494666360914208048015868562451494611873634910893011805491589742318891940024158996652166416931702528186935398847237242925112805142006210874349778814859386144090650091777252376221080427492214897185413333880945510128857047918178245199034438229052454412577303888228209711803614062227119355410296479746064533461675222146632274179891925014530441939457934138404924409974652920405951757513067488909669165965732521988023966945009866806906827893832492228232674283843558128157316231836166099503232334134481811074231902660244169816940410847847194162343360510025803712619870111506246089747692274012003253368680473584778190985383026155203275838842676687161274421283310197372954120985457855681455524995165594916730054269645310067388561481460307821574037651501551094387498375792243461199062902789205283128801769653270682840288688936244514188665015502606905425160575927954206129350461020999838189779533314756926260011186187748797424045871132273813427171141532242287402184812940415847632214708611981613922332802289853572831273352991583429145412044192782109594192014330835861051380804945640247397121658058401072845136209162254329902395869427659941267766806696752938881072535705587475021706093966933228160520283437706960368932679959105242488868016990086775189774354804602083036734213536022910116168204329493264320816904095613241109609270220454465170573848267675770484106210068206301803183962604546629231830992528969547656037308391066700698230423327813902094657724246859807212654174583534528327805329807692120414912522075406460651151300433647129029272320968335914433876290993890202774622097877264174446503230793029039802799177758309306262977327004842651674350945919457085316172279841644099979418854002573176822644391276335482009659839167686670029176778746340155664675518014296002367162414612622519873075888857107071955860254979200549086371576014262162211854311691062329668147587324918256702946742429855431327512542120755059519634688119958969702739165245236134900735106356887423052403774402879509838879996177878312342795185715496260144306077970068681020213704323915551134803411889619431165729449937458628818451011475682929233421162730825177279847592908444494670994689583035863638976307968461662957484490206212690634764218855392419430239755551432141629838793752304730727865306517362299514079453060752918662207910653914148189647635141283966016564915242457891101914469971688148442938201699266292758976417771461186276626381268334221102684347714191440216015573920420838576312479985773465459952381418657199085205747212270301127007073187947930085264136034739557762475079044769760716930163214636690483432046399743336499585359281531375171801110524399069232806200963255905812344758167894929619932618613835864665631714968241236930453312917296307046752791382330597050378373307052256085745016780384195901394224966274791852709116327170272664467020258852068391869412723408758473482220386878099932094385023125048404802421546281120068670761715653834495541670627518652701184926035921074518542864411057909175234410055991272613457859984180869054662153336476317092265680454428518482227955418941110880298529803943202010555452447513177363114375959546685937048802246685931964031750792493643833388552826821030827311712249865306310205682196655011397627863173450792496208032209047969617328298635140413118798293236372235443850002748852128358567576257240635844736549498908482400602423174391988832113219427311822393241232382814015106525484333153615434653219546687005998473829331705166047105788967234991561272473831107867668124945623237674432762548162990072832442327456104970452861393691222837525136500048692357889180181098193984371264928784027222832773928892763045407632959836518095703754615120692602605731183022651339531827122565314901694967254263787075719668642897996349868528281272556652480163456218038068137545397344669664739588904272987827053864869381486645188703702428441375354192058840556048028952916196046574216314571351476878915876953014176002297537560709562113641432508168257474723086238773269530091189829283325854663761274062147708586914318833280081646546553049154697003420628794352692914506983723993288285097430283366277451726627255028601091419133329175230136679684708016564878092792329073678766176508539173276697982219130429769385011434224562463384833530910669121070345740703246854917410560109494228148716277971685995451931364562619625117763232790974994023421803212218657611979463232459735600169654361735892090334984784659079218352857835589272349666427629811332717658695717028109103948074626134049336318682077639185009228981001340392008248931892226509055808577171279210802249911784877889642886872672522658115504236570129146275642424089492553393729906778221330849958759233156770554192502019638795748304462265463088161107335156585112567557935915157676930371770357429497943251036306425626690900238678110146208755263148833972070939095199064803109372823391708885159472399381799305907878239466872971504739644774349712427166405528332483749282359035777337792296219498944641495877687751809668830119280259104120051213574282158008919675416000798717314742777155644103640563325451127296218229014315670321006589275235510962240417731593459753148576454159912145372961869751440611330665480368779189756452352039054457394557876607991732566147577827947186688293419590263916162488401042368651509109166460781411413002264506813058069103605651508671628404305064657893891338783403023833673385153256393787050999509696420854222486770903974391124397771100706688871092017227499887031713378214317062393629703602095927449583350990745475594187858127247242267258190891316288452434990939006877376782975526065206010042066047093016991486008096950088019996802427820112714865020823622609077977801502531326909837664639482908761431336565882511874792004038047630672894849625429255183542219659191376347687473719047381735122722096585903242269792617229308612550550831711420619603931549093640518419214342968785689855290286678845519567459261772965650607489446184984338583180280385602435317567965081965393060996870334968224788368012034840965457621695937785232669313028735534995286824706160067380249791479487826294349462974289399907362391872708538631964145600168842269183316221777028449861438100085063259783735592740542873528638028475940418942768518001858794981954673242390250907515247803930322110347201142380247950494371113132029543329313058013335094866340950828774528261301406297361089740869822508301863547921709170662402287827374464020399280557284060392805734871622378567430325614675769054331410121389745524285126541518204992554597471710185250237928138369419953437652437329556897322139674841468659971525697067799149751042506235006600756146650370612358525329542490615016916368300796987236803715614246065478911067148385670155150928045087785862770617153282881364679924226381752209611672056964169038440498124818738114339166431459583619527372277154650387122255338253781834670691011127743137373153681036531655521115857177872248975904263653319881226992195994136068568601441014615864396761384948577352607171019052259559626108095078731958521032205310021810662456162328490938519762971503167344799865717860988318098321994193683444810052677553304307228085468660103849876043882280582472354188490674654739419909959690825074850220613898186294400830529553172408722859682984192399955419341508532769595977949105222923786399102940262832170135473148686739070640496409748120733012318213063828819916737464333713821549787039144033240152910904864553925932239052928835549742482559726721747377076655250209692863754330601113628455252750320266916188265665793918616176803224401534737640430682241600442033206843056906125466053295444027492591060716767385774712745905202575269559381226075862509978744630150013231962305591052790546620558841122793464960738681498303366730740502186487244355602166595923249615293611608871813478363529156328241613162430191263691000578466570527172189507254433061456398713445613819204037658594132038312839051470421978306345001573533299392756973823717354087137190987091835771700513724297653935745882804600094001484839656711271633147924615082390319539516402021201961867387210846404052403024024899484146487313112843582454240873790572358706315494173054129888434859795701382478300419696075975445993450119449911156315313689123421917948212887924690272142858720117604091933983281840354345063982141596350595940689915082740210151021709123514317199074598260635094982113972284934841630557654047415952755131145223401394414473263917230537862856479191755245990669764261684291816313945001282478835321003346242995828338732132353561639374494859940498626984227628332041478550959597977521112030736701291755157451644678977639704210249327547844915950098309396206622706268879315094592150420919415007053234934107077506990323274933725842835992712751363941835990642966449599038515477369899434270277527819793000269235314096311133566742068590848372512869805430619157607265475314839850999715679090520238056807080785416100618626655253344711918714207204685990903293752946843387733706754183845515194221996627307404748565543420703408650647103416729161230008096808159436118531839147618171127189866987517187181004245582517124250155877444864180565117490062556479819421762062307665575363925847095747023195374452046550643272994730683383866663706025553586007951397539811502125071988872585453043665597119814355471532961851501993180479567768931728858544648303574218504393936650630011938097557609053270837122851098915179910689045388556736231297874352336485773128757331924874317442050304183201321194824012354654987805721538638536246572009044537696665970362791493958718929091439806137291071399237039954630541212576440689143968259581885290464465117505013845662291193101179137998209365011479644758534141979819417772256159199868626472600993821782202830629075393202069963040511383624595430193025546597333259400717379452554528428129747813273049173791325782343741609323553925025639839776253061259317176352436021952012704838836285066907301381573931511097301412166351964013787434132187847261315310392051966514217252048984200844247814123394670731369231202928875654178585667462309524272331098460094217275252828895095066671378548380205910317901294301952829038045683014278663878126130972815836662777621729902001312233072167165338726323317697787502764538606858806458078665008387642334298476573177006669546416912460145735413288926000859489067558287394931272251970348005984100647547284137877186031129883641321108873592077618707035810651629586491279901245211204992387060011360372392694276756244008091824852981331457127123298298564100690683146075420915175507046212447555418809771305620840498589426709671286953711134976561893568557768875505081132710705992467213313646830805391710179484495783725793889440459013118594057248375144038454219771190080157126448012770380299288529223578494549220702930404898257863568502651576070239913502728159692420449124939300763714366782657740296716746128176165864319278945403375689340970740419139728116935500799822353012843083792405854762212487671983575019161122132020011066241503923251382916785427818383210330964520108632780237739061992485737571218160375670486953395322270077111650747607387524673859374635229249610592255298673333835666304873730789608122523555909362780421522519165460890337224439789302166343848106403499335823789930472635437141287544281239686153872011299302109874216415161979145915244901699580370922483476066052591506820813427512875106416348356478322737219110773148465014916387527839443907300888906223304964048437137758760984231039088246443569805375922793443194340541727641844947729024165007037483118250849755958966099917344652365476419319211905633643059233060348607119776088801920526658677335700286189301567223765159541184234282999386468869409030216274458924639279798886177306672816225193051970750292078540295289442010119801710687436663868148583262797730416391552844395950937588764331839586433995874695090437376898992393125146117516284478515903216031491070654172611289240087113694103337068151067525228948694290466368280777703611151877814812144276622806848846948200167989492290050603108075871795696848763430885157624654996407411152920029381751933276112358789735737822381711708648207557837945844425230527455491777158454985706003507810121922386846571198072589263298311371079408311772485966153386287191679652375358759125281244092919552821794384550065480092405789735536699958774555830734897469575989443835991762545355809121138012975988596881684645721179246929906900750815850315257471716093370678211174986346796142298923599478701758137199793481718135774777134317259887956625180007799042886145961549209877055515288168927678117025243119122961668674189090511634038621973149433485697897447483629890982449313174717187623540996251839329061467026615381285708515466749551612425672804937400738407758528774647779078819005494638590185326636057845773235074714276690357480373180020214558040088280063257090608721851593894802990478596380683906720043907767328009332068670641259003670613514475803754224821107358617098164717605095997442981297157845972102177959499457824393634307447078055419020146783904260893629059778449086717484827306791071717109502206179514124412369345871031878292109379576889083325319285823036774305136851245178592119694178539100911985842424662480442581923407651125094170214740413456044317568631698560280757035886267923334604379618303100733120163281245302161967759789199056967330273510977704154531614178393255717273637310296102805272361054150594687687028254351876261255121140912598185112424596080202451883894047098529565685472135628791225145748994655952886692623598943483452361097005470933029996900037360644374505816544508968402648271929581626449543708071782320233811638210523641934688248100935077823979694197267106971044170194561829662512029703334580686035903658561636069520417400671149566878333893521374951200083824794928263079345949482192632288321844234290992881080098838249377822636817205399929260329601024290360178804170201265775825328527224883457279093723251975865343680982461913260164492946209873906112138078349166583814547698274735913830174069170721967461467757952412377911338703681636283366271666821431377610886844792500292050020201731991924147738638833433660306653562303820768220000118323825630350758092244830075739988562780414345621569505545670103123070125684116578344102331460974768634353126078048016544356350950261472602271709003181471242062577898406495282541245510494148418669066744660881785388553570382309010062710830404761263372114851943146351604645911034475431456895773893559448430325298653287664522615982519350240658487653301486828127968114590118891297406466229103744497844534534270144261368372066488367339763400996211451868175554258031493898824875743988327794800798146081516294309753707422374976159555469783184820197029567086380141593802050151681454182075593403999462870309483235693935109216007569746899638250311105360624521583499265351503221360064579848552879637494829494916768782196091479010636151401315289402334713498639250732749464904845128493834569271273608484957531365490210939844674973506562318988649399853280793279533155231655390169134809369266099245035848907885834537431429480232517508756947334202205558949265217238242970574540660128609229096145991773810948111032606849102624208805143917562971564180607325919305527529706045878887071074491336932638175842972571734205964000329406358598472371544602688215639379470295591648411396800418740449881380081000892596895692487339604966159516062457484847531667388300134423858552327833562698089583378632607417067553250219569948931496858545433675081131243888899157165642261987633287615057778703846997599362841921471994233217032718956506997461583138951533917307468209956861922412548172991516359191201449617462199282231030236503756606574543467470477085693960399022350979326113912984330947672466174453773566499896478991415951668414596510493490064988809890242753930579404104318435776779952132170430929776596998193681018916961709894555217228887930880184815664121968421419126690813241789778295375662473517855642025898057870875041555605368647553334066163506912067451205855160315932185631730069894652392914794980090723706723071194145670365140348376602574803509920647065787240637672579999713213718587354200978023353330037355145186605445072435887587219967687275386742096023057106247342401320996482693971753204727159223990731626293857534398010964166339795898245808378983718241887040711394684249776215046335609332854186912413185035446531417237834129033683012694925808263760590289361365736411425067168155486789985655164980230456775526135196409727508804435918753541560798937174416866168642387902325799860183194255282761521465801789694182675188016520059863447731942028623338157297388997998647049597014439461593420359806686763095131761639508026740655406806105648748592182622350766934091538435778151549473848649294557698653577997883805832300702122619776311481514973652985863520671187691421635677108426492808782310440556407808367554277056606791598478580983401663141943882333216375768510799196073772754121863169765401876528258513761485678057657884677525746132536391952329706060188865638130246080751628151869064613480341840445071746750210797396172410085373799624572957647672251870017216294640047891570653949809582156435376854254907024326050721098547675168467100718109902544497765840238884688937760838465601962323388014003755012645899290964085935830463142005579117751263896262954175049486256014570431742851780755983483873430043198355754871791499198921751159544779174188816619777013274170418633606626630388303068541798073596085902564911925548589407551387099025859231246947346996221902719050574394817741781853045692747269579976768595278037639184313351523678963786125664701359156570653929154659820121906763252774972502124941847564593521336949929834712483183212082054189690745946228994504416511713997618252947194177142647785874204246270464545500399588111343569475124742066350944498194590386523033050930078328379005245955703435207133899908254805800919637170077630424525136246939235942960507511969903187918356995245719846640995913771526531297618947099449866732525094749115686855763133454685700166768474846554499580852592025363980061379809334045910893090147779549485574337338925626410624951791077724750792982207999365293001111865323727369542495585711645226023552610845146066065052218570032710769941075812651728559130836349708214909194789279046365489321891251351281517174224425718469262527623519574715755469003747640899091743338280280122824253778790799007443684507844372971337911745045074941234668673658800925273077915349407825196496488511273167700003962708128304076253457440463970548352211848003312875239780620093367362426983766860790192077984481100278072522342536773401256305931917431933500822035417238775204371970397372813891429924449168246810959004571614505440975294752127864000064838989268681725894433816549032439893277027733213589612821241061841898440065405165613183881133162252332423133618406904865716912721883308869831516612462570843219822847974259235945571267148139249778604726619268648336833143807571489573551631067857593334896678017213763202146335998218410926037607175514440684308170097466663023142463618046089557893238447948895364434565256802460253865706335810774910457232141538050337249870316614929367683986178344222977915859839334609889739121209165341963306687714029907709377149286665113587395731708559550370394895389011683860813181699582790010288036229156691195766447774604289868265080718329577180086417727423217836300768178381606985233959257580364071879392330299250096780889543631319374674236852455896864462497009389790772040305859968376985629459958152707682443987508390202795423136730327150734267376163738589462807092866818412918644509208633072452582406887815660165552035576612943005101182368239374945326350355363339263853760703683677109888266761845503026544695495882684353776141020184152539090257580003427749428769149835777133551096496876929553875562892808600079275443873256606188630937139530231928005199160578589653264909689283028095532755418241924973769244428836565004065083594736346083208966562813932949316425191011124825991974743471251170106887306338832505215469856992439786338997506451553765227938419252155449882577627348208560591833398457692010562135724783955216692884708559419962357100093658089799930729627154056345603215747255051656501064137341202193339362124318858103809476013797065611999792008283458465339674847969359863258503866887188763411976410374768697996428614436631978169948642234348882121174467678832860067672908785734503304354797336700981510221901234879471376387626556082678038466036308816144360605633490056444444647485575126225078332454059956968416396948041932580919080596263890537006785773997381237574189484422453064505278853385343922639519546156480106914935884594748044486659797076459588515269487125946891673495625117536739019977328053756443730656910833399556806421404754493561608200222079775680298942253006129322937735708967316529507461760923207904186543142106470637612933015283530966251170642356441440892173603225541721284054174139209960680788452139710837789451821366239849663036645852499401959667428864182641198898834037308935295571227597501669000283852195982238500024490216672068609739887197012630523586135812582285961231726148192626231156431070280839452706119830650195272323882535665923349162320269341654758832253246283952028473583497101179003321878014446805746255574450917499270325237749193475802886698350613609534728683605789615753538486530111098248315020574466269882791248392844023618650633704252460697045570176884405042823715118285228435648874169959026325584318440074289015931273497582592123359978780026079885381578669850867493385590101393207622680076728186402335188406471581730218096585617288616648416242005475688056961749228909799391411179391517689051954282947817032047210118525384511312529411127001817114798404000471057065931336776979069189458330423984726932661958806485687700516223755525673797637729608680935946121165702384227990384000701739277350457663341251340669630571698380914806304552063571025848911023094264721433923332187350456467394462125818674273013881696046894939753954543438690842776677066718164700053013400599269565007150301737569004444799186819053837770207942802661821361866494609253362826865269308452230780243905373330668346457728489888511313354668640517565456798430732414344631340832567918542613777428410605100971384854464568766653439263384179210053827573777179565503183580624106346731292500368953685225898861724262801815251988996987715129122279962533556595527382498121653990729270920931770839104345280537786600018795635432379586754324146058194582310365809780544139579222582174881759847607223964342954496194066746224953752546690636278879985970534422500813233081229902520033157157395888947544995023902487183087461711201738222018025020586399940030154970454537896824705811651088350414578673664347262723714976145879246336522682223860183803151960233588031813413167613093739172595354763880417750118615550812895793611424047276662227466853055813593969980099705469850596095603343386489070158753780576695734436598385202362356799011512267382476853994108029029722375270413980597653659777599635446981289179241928461394561260940040366553969644652513641029778187227311439625833057422176226106611068736195551885218095588629572393681477553285146077399526481355725217750585453929957991154096667506594870189182004934283749848538161048658095476440494815163215237711637829807392904222607106289398330823934041309085251253251563602565352396010516606517884302033233859457408138412293018866632540544038463079754596135657824279053897954161572109760364703935000014564132184742537791379118857652415742211138741580254666825200303162537466247339289655226666209931119033561345414578659661218511907667832462453206581240741386230402805835458028719173457690495833828542475881317996240005886507383853007960120104004217369484849936876653450909602859308449436683634576946145438636749815783674304854964973236083346748136336592015313176820751314093658568983372286065425694873052678760124114365562953292676676387704472596587550795430371853246987485351311529572297102324388154253743711878055643524990074654064241886064999999151347941724944801948825943581942727234538661975447932810767633024953185198863664748009098293358283734269647755111840948187001315883932762091141096779622894060518140988199378217516588730712055812162303296289134935825315799051574221902572378325652636939407170270744325696838078046251204805155948786434635700839779623036808387633318737379238087566354288697479744147602282391318962791802480213216591858133194501143621108585283816640157544163820928284768251395219029715420514530077039822791783070967623356124945655399932180757278995550479755419442504369760516791158537205434810312253899378348526286073430321953966826208588059632352754852793956754458876407856830626690946007065422321839423537238933710503247068081274074953023477831509633175298327783969059348007876957926889198913430701915742736084206928076288226479496387445300489237669379382007957936881630880209739632746493257073104131769182242209926554079759101715362027573733913653221735607726728682201198433744530883935340562360192475410465254011818886522496651365127034793924860848603620373017270532208871125523023790047067637823073011782457152349914852014149101578992741866808318690849283880927780259863999311568367483827347390368134112591926779222642319941468117674582679428808016894291929084737981483606745071563458378299058195687584597777830278792421851457647498079779713985897650909227620662008807071227098662494553644413172763201841015781506107792166736855082460396230496983198581129278913838567891990418127896296939355555748296366314830792075890811300837736470421843687194205620355446611236491384116379323070256074784489849855163377405540030810411549001877154156642844329301741260458529925825326951314414077020658624917197139848374296445829081772557865234842258968374761641537979166458295640699231615352404911747290078668109501873528584489175134206237691401661128394950277366577179701026291949084782243776837028673202552135636925627842820600759231154626836437569842379023671715489255484468544973311985671601630904195115412703916624218089292717520545121834120161672251538830342354885440487093582076503497704927287171808716518879600485638213721834467050371199999275679849300328595414573648167677568259762171025392677313218900615442962394639850761911567092109610621431303335714017057366222439341024725936429104672842966644438309550524367984838500971147776527902096869001022601978892039777980248269126371876098970013312770529373102985155679505271357706549535830032985001978243828113257474764713738348816391579315993260354804647484000219152868302652956787676330650599248873824300064845469864051681164390008613110716679372555067941087603665459073562234371707330848508829758685484188772886628251808852652239937805315321275156229649585440665153679697541035407678527069098834506018032206721352888775590487325696741392430027254806152751167683426346282259086376892175590969534335312661323686043461787862376528853711576556281173953680574901896732158878234775106050596117285714609603841423051338232581030154809710205216629622356865529407098461792202510005141634257426532641694482667155654460132919407705456556977724730136894452138290853763339963950263426856730000407056676891590952818063499333416573218557562469336168131198197482116834834163428552822550390312055062002035523905389061829310105205577745244894187545840624058698446975910482131495504644602344022599221062486437334275007472231081743655840659154323576383369554933332612696749567750524276818378521164506267073342139632552052172948460195177827000910503801190561291287687960627305662230003482039306820972861496630921978600118500264875526483578965590074084518780151078471365220549558388511352865927249086622811424235096944257539841983342449920855478925245323582008068444302741855102554553475216968954755346293276044941393052277449761063444615128379300731695518036806063801359368556120597443296381598536454686673061221673198930375377085086731768855058170208570324294041855047439164376021221195591950457610174038249574231081360757556519036787230839823476223494209736505497869080096021266231884430109399227485664104459328658545271595432459090409458093893777221639533459424943759179393517873924006863122117725613621388346034825779886151435162456653598579123016961871362301741111986118058109027934709539466775996161750081102483288642594323549280182263695892457365069800026605070119049410040336370167255173392396238052847427613488438816528998407631230687539617664180953097346456820172095261767021822053703110225124231294281379384934069512198354447989306139947182541285879705069097594811780361920875309805060182159400194198359152057533733110712495685267397098166055887597452822221182574165267949734429255104083232759797780834681514758308823346863991391187316685559937183071309519898107677240393967278072165223557325824909799368688746867765178474571329009052552054657736711806065442394185050077328684974339632622771859851219521223549819622383887570400702171168862481646530665020691860164596161697068730226092219782312831329249479767888101590219988062944392957545997900866668217852306650439359186392419907052124377142715134019089402154663727580809523996251076965189759080096091545168777376851786069145925610515754545553253994842820358436334410740169866894284925078873507248056802582364617501886493649598358136609513497449266872419830468521598986877058644078720859874756298081143275043396650606288588768242693098485472370332679524219082085137250599328852285513031761360378349908772659777475034976325819330669881943055904274878386530521296469138013181190886725574707909600592406738593654555155190424985142907466752170600476652721860686893410534855890897798994424798894157496353591842434962466688694887882726403681583146483460653310928100439600156167749522222609558943007110899458538160917218213308732308008723287216659373758356337214233605883563780006336734566883814687843697686200177688007690375201284967539750104621763345484260009774452190227803367092055407942377604717432415049108826948201869020872384833347634040158314055340712701261634101440388000614535325806513063242447103541538342535447330589539092607607452376948925914936801276458122469256643239271567809153943261741892721088525089382192463071565178788784981108397787674246697672518183054920537379563130417065227196921635234647322897782655184233287019241590481760489385851493041015898198721075523615185042245542204114466899715880682038974476485576298640086017815406981095762329904341997065532672338923997334172643297422790167488742430113944170612543059049356253781259017615289555282885721025848087400686790999343923571896706787351460447625031579751354535943270044312739178927643309870750428200284994066670701098562466936463974688078889050426592960964582070041200055560531737279490367909898683016363857149445223579062552387836117394184325426024005790296585352088577493756360635642250285182843544828835119113734719469005359926218641348907904190499254129638401180734279734920675794093106429334323882815062624377010454468691484989984577298962697786543822738412825550556224340536877270504743740444964301589647980996032096453622536230312806118344611259062486201439522732134216855097180044043225128022831205484997109975694662930157397522228256387306723389673874414897732145916579469962019737518217713202208545459978851103717237841019948869181102658503861527534494191867649467265072964831604037074653384694270049084893820377480422105029756245030091250338575650717821649356396790236006385061142784810029901457647783156020105173279540088413421055456919892547866715368737008027215557655756652359970897415099447533038593527571214691776706529808733373885456382760358578763028488598193185972691767412294518881868399578215304268375907012568329537390697394702087484913033700640498690818666149448776131840404796453925683557158193567630698660550548793926147703861125986268037304246463088728454438593351545632687141211193217237483942700937091598817430819095577328563141841416606827233526379401123286338817157537379578716674974673588105828776815040086115535724181157238443122142727463201766163771345236496915333334286348691241869721678967243842081777004296094845105596289860802679054306124253070895525445346747171838332514568904919248779497222041695854631174108632593251742012141442198741221449188649161343684851475298478900959313909845200227570782294063839630171201176881253012721611360283189738268203414466175406358771393449105707269249095183134111417640952592406686766238628761785677725862179070792556303771772284875841327075448287417278920992648076426972296474629388772164786322557134131732200424262580997300532191866278967149499919662911131945680251335173390313735190679276902303292725198716198536033838200852336523484337819619950806690224094739903588652292817831977051218975249252347370860485556597682623745015594870674087625672315767143235996241737626721252104839041326668306116421389294971563828234358493831540384892234431889537369624207683637451840576091236987668431894898098833683122248961781850224088377656099094643377467411343802809388982590719757696787884081941345339335952775582075209165072748226776562284174721175880467088696648581911525461018311800148897395193852817448847764712676480761951779017352255401483812363314154401495726228156605788907975941309064206212354565820525287651541397827290806119199223068591041042821147527471603895650713578915082999350378892831445120850015862886718872312338430855274069638207780533020611147626027986350945481854142109691068067445738655799629270915426878304611304419034667460404219906456181477963298189182726231450126786588566014822059886723824602516698646458852551151137794446027210642673676585598249716304897248294094694883067786286184608285018327601859310122070535215956940729981977202974920529341816195657100492159862426400644421004905811721791771327865758403429148854711886891419734928833035338465817774436842336352917561108630646326316356643117372799929911314446814788117109878183443701281725942345889648171788788559890530061926434106975437089633953919571875751210060345447564490205346462065399795264679877558166069676367866725818339452882839148794709637693506214291265165992707792589973366386911587121085030957410204669514980688647876666288627449758558827150617188097392369911229690983175650596426861070782367855548177829503237656408756105322563758167611325109812052434079191839550823367022473336529856416654868831721561010367093854833149268920807142674947501069881062931940668911276135824070346298391488736327291182062581253251000682595090834031909141808812890441545102638650922723216905025042156719706752249769530622291057930675686094080159266115955330792089891841207756850829066723819935543495707954923572856906277891232236425850709752420693413013982706486342509265616762494897836743079875082396557346468267877053872272889718827414424592239238255366507381777503317747842395793219144038303283492874863317548706698761806510123669462027809434295520465158084521923175655279086901929165829029080275556717502758766412796332734253951289331688951134370114320892334511972136226533202716940649979687358722489429092068261509230462844511485965369527682544691708089626468346111054472256231514603510587207311270365104800896088935022669819904279337868941220410238213665176406714920866460602209366167429208303411177222622863463703647027437664166747899575316429986696338638319732312675254749092235340876663589985788431832442261146801148472547202362371846233585685635347679545476614787473981601996034241421082643458400789516224828667799812444839683766837960828691066729441024770617457455814036255335399881025935844382219096604213585439860459999158966648049115972401820767925741375126352946652724803485770837084080697651661426113567033986329878804069366231279036731810546706827182520226833868408560708907469877363395659964245595041211042906911849003479682543791341706761821957472324121302472860816211777912745673987035767699709264113154333642187399119578020921535570733687547885128401676441534974758473152511496296057579602549453602228317154946517108025827852508290709482638572269191713651128629437038241864364942186202950262013958538116181247381343208672199204542747956180472057005065945685819115724595024642378520094877916050864892237476220654250541073204739433649411866171923401724946696972447536342157858951297376805452303868701686554171705916790427756898515448329223465251150107621753721868462040823369371836473112680413079767668087607352582976555692586324339109847013231785547506749835721856738111680142266318681825310181751428938352398560115152506110851841060983880074498562116897677252531773023739910725945457929751187450585671078944238534364802515671571385038776438927386376848845315074236111005132023680441395166840280621690857650734268073387231783315518346347121110323274520916862987107519696628890741138748948124702598546822419965250631957601462798136885186128945981292701102755793871371479203517261294864770851006044316143211888934370587436831452510538637567486820239444324105122803213155193440742359145074701924812084384987960123084500261400912843731083319345432799376696664985550336668494283232694986758625279720280074501272526835465641880582791932666782223209214240984124497325439772576147347523207148260348879729602660168593464537567677381836533437516967371423957473033577509746091704459995450410908990878249530775608610161344828107172546963301411897933923744777426508597156468108794316983318420029701353547176849607359394873682660713608772268565644230821629153964359390022399603355245376901559451441594383148944883999726508058697241720620693733651634448809506312067376828688131112048525116422056690434528322578367127081529585647463828644445301205623448416872904009806565308000351318284082856139100851244437124333636898196558635892713718712726772390517554608267314109988001285252730681897089843485964065877423612502239836463463409096006852724444074728928782248046331117044509941305771580031680598777527964941787733009970577499496320473697721794279024758935371438949468880556117782314637742789883931138813260054852742070375299788640422910844689625262101539693748335116149428218943353285186450589655326112942243231172280204669455088802543342643266884829589752150127387282747211077680473865471905466171805800450432330516441472425365220277069034367770581529684080472032661652109299436500497695560272873481204753656433638801367643068923359301568139165862245654795409649507852597606688621482173875810786803197332345374522889932675197139503080708542363249100468777891164357027421828688872710958370457017395155435301011966251920384275259780040972668240403686042262694297526444168575470167208273771027433030237488124421611392852723870862996370137863302611190380612076019483170307045388718584559246832910675505009179859107854539790244040224897587167367933039691586643080032126278945645566787010175593450170208943361965617254827193181185720012063075952030192448378877784349525438397831329370122816770425944627732342021978930793570284638598124804397295101964879564100779626255426529039046663648002069774405200655248447744297289904399762594129241835504244180471797901736117536399660085833387555348797724456695890213031219432275512889331193958258045630687347019379146215306012125592463787536290103856699628172412156227047625146114627645908715418116024622803561179043841494259103107145102803256715763853957623858325874820976114398536440194607793905519103407864442656549713147964113022904621739444407474024831838814072578119922302269920360806139182815546669724645445117315431790503845970402450651265108545125188113226212911994619092305600906401564255373842703606232168610890942212128283103146763809853718521487192734130483616056429840694752368574489239403240479309945903433035211167499079362742408907869702867547209879063555793943404086649143625505313165040328601884355151559788401811412729676143672827276243871398440153685187951870330723038773767288390730806256830903756212932004521974501426808982915586593198251938295888607917372364473491319363556882262041603493774281866220091639043324145532217884662985828030125278065618875547364544582938275109176734192311142320486397855424150689589134753189768936794849017182185946977874613001980292185139905037460988783448993368681336200347642927656318977768179721724916614852379326097210641960200688019320660132184889686225154085156591417829555588911301635483879955805598643703054142888787360630569542547343280655771237458609656090334254947323708762033516104405148961013447105518503052155170560444024569236437212893554378741647136725394580079009530044471133119207400661738707270353137215176475965611111937145216715276350267993481112359224457200150918530834564162890319882885715268437504370300470399921196495900416479505484332629588847530041015825046555122184501325807189375665159409019243161831672597078435671058355977097995485530825444213472981656326592406847549891696889428696481216015902262273625896232318297850132255221286581379787609276858508719650543777687318863413094579877458780532161857564617512577426531338503010447977017180748037926680927698687105668235809823708033781878380536214836405279582277167777414716214295324909709416240768399042099463855128708945810924486860709138201822336373335720578774292740623744829550788486589507147325611839806649666749456133093342557202292740483321103236756473428880195940031381142914465489391121233679369964705580919585128637394317793878365957602667307942794341201295331856322618087115068537830709734944856063838805696445484526205182646306985430145892171364041027337373997936531996158816923988428574268475096071770741732414308407161028548975067353529243829259104495245949368341592117508094250898375110209191937439739935751931690908860365468356675194136134828058958879609519092448161970464399143102814905751164717276680256060667639647033866561846696744835827938255559727925582317568368287521477361401937222980878636706632703264307599990002164565189360640575664881176333559190001873909199597225335839024165366976241803398128451917000907733336489054059098467898874423636974802383180275059760315317881931353239907166524823887442754677252133959228307646617492386251643544024729554735616865002471820889256621648318671865768523303309613634317244955349985728146111091116832282883447592624527572984578679471566899355789047188733059256076769508518172725198560900419500740227302467691955901359588467836245414186153618361854202522492376145966870220991461457096162832243348198233538438629606405656224407711103207626991834610943555364936170569220020956629584156080284041673095822528061392130967934092387883584180001868792402905739086509080653560367894274967106911510628419316172788626113668644794954538980014189054097910377502049991012546409227603154390139910192216639198746253553780132730617476823662676717885782827159545845474072536202423115390023926291932718185623276886709192644389238619965388995869809716535515340363426057165885228914809047920946975518320308691027018405655769047219592468970768764871395549645733293205057287444659419253215773402172225911274810495582406329368806615442772579159369285212290539187048769566742316511833273375043076613351156743522965751598224683609836249693418398686290596786093437731433041250373603205717329381366016790166442471825304422948757055910673102460728434357690685878538822721701817910108984825729978473438990027213579268031430641128311352527790310740920873268300663879869252070200727975176682026106451965009332724191074964761737402559287726028486713341209870815926748810479302940059704135447240149246574950093103936573470025849512305276696413842778068316771397209578540681185435481360970322830914773368531089723424128011723574479031809141855165341993685474708439834036450356092735159907907670555096558745600532304715371453329228437748337414057718360483641193651183036493616062460211305514007140661648192901383379777228134947055571661740208820296272136363537787841852319552888823776280696651539139857331410378765617133652051323358964252576590436629526149991651827980856792710299553979732947176143466882480233690248385812135549642309100155335719985017175290693995409927836635250664478561102234641773905960291267228573622924353962161277654197925115560133080442142104081713848227511836228512267097098155093928431283790787663687508827383083129103190332793873197919795147595658133828957878222439203976940671299546455527945191520954852851743786053594410957578243868013539888922311718872980127470558824686834731124279200077760303972015162347564233215206170091988344484071148945844882720801741643841876972842875536957887372426717563423905652050043489517242559786743428264388329028233258658403026913815543558209090313361372775168176090910044445130323681378361482431261572499333228969981034257885683065878555330047867975769899967303037353810703835976091527730369870698495634355765062559653115040512896993157457876323328894320721153990848682716786761024300839899268303950675649931159959617785143154095626858014787826149052422367880814191471277560069515900093627896924709346466791136345104682622046048565334867694718219202250407449924226791156694604545748224528957032606016838184448611750191658807341069678555453658512278848564296810750031715605353059872522309239122661851691126381027468788871195688297316787679399510869533505961010147814069964108298745878778709162065793832572872897890354461298706377202398520004789654068209770748735527947176443804487397797582795542137984724700727137614517792781687996308490449829558619493082955709300536395259312389844182849334581076176262926279384938867204785019941412928244307334475028979055388435421853414371858160263029481241810272703551305563285325491183761220092816904503545289867674268610405588882222313262091381515606582181829711434864001097798740184363384402697072510202129333704095310822066332455126477303318073079283628312551204772960974548535482835751973907912964680267472281816738674956247490215536551712750888590744540329795271142421314006367085918727459348361660621568926452186958488793103450506765594559200367940647762677691908936505512010770437175162759018463605755480829060537148309064557572970175145472245432774446211445267183911273755727790270458721565629677891758349334213553316532025863258515236489703900064723765435057323783612197255802268713204778243433207895016051996625166261484138007879666532297210918709829925311734789833742299264647498865435622534915412384431456065604269062546731508448531416157986088035945217076189493759535540134226062229092439055532789538740381982955850190278876371690985831802402514112740609214094576409795836294002821292057928316644493572910451699681609067948111607327773212618508386394409602882130302350497686859512406649832323419743587728375552985357908731477144790218477005682271492022404874815433459926493409811286481145279771796251747730441465529006361989215641710589846237100824470584887528581612187636404960105113214236341358689691558167530207148909143317281943843675571649328949621769185570267141376409923384314056175673311886563182385387443573594117785729149643754354074048303298284351315430744240520294330186718056140119103285706698216648729293056171636346217382099808481827085026020604355380830821053836568490968098957943969102711224547347057164809439839984292073186862516164364061911601924422127540142819684380956517971020922303654840441552096218356119367141050103451343492090859924664932824708162638737845740953206124071102829323097178623465705183633818991056336910751621773247962676423496752760646018071752855066270730247973524183581794379330672236092631742537047930933135559674698754084010216771832226606197258768877677911084599842639314032050813618194248025978312426617842954234835319248449242602295230703153209646193744701568596808002130346395771408465932103859381226612739813974527875330657442567608921316026773375378090909422002053799051038493389050586427941226499979182562033989101987871108494393620231588358924703787301834000190118934787211049654699616912886725689211245905459873210755108209958420033236680686588434079902711717216901289466158412348572744975904703234301172173423003190485461540753886950199762118351856350797181268306588095680608325748391251127307626231874558968499483359613935923944058184337797583644217865263814706724315140190444165711419983489971454178539001420870773101962579446470725519103023006817315148692523028809859301580871698040208649923785354822109326393322835532721912659067603546225121005369577185266845115137069567864305681015426932351698133259503026519541400808658019804103947828938564710543520183716523610493448258809001866437203081248184067940316153102318080139246163823139536276108393056128903889423858489927716207979481368065862440123276314584888424566847720881048685537691728963655322687493785930193136041826277762207475918893287602395424728046289724555632873458415613208782965769646104835763501822974184314440864262092960286510216121258780924824893895444625986933832063754175694757470962747933497762505734181174296323499742235701812386145446102153258465027930202025028059626227490769104632556422874517686828242882522395949234341777813146350537449278593934771252457543950509666658691968018101850474480601163580853339849561989142448864154361951557916559066726579574268779628845142734993187999514397243221453641098716355977227580909197996555420272358633568852121739448774953203821989682270116414682363994265371331367679946981964416327587274111714949326526599526044346674739665662268223308757257875511019942684667982392844493106613498702659270291814874757542358707118949730810975395659037782566980253510228454684901560154126283843585998593524120791657928308162990921247112668962736439562991677547262514903099224520664990883943000800685542416693058957354379510396413637827919640374732803750633610440948657607425357608866553972173149506787065898457876620659191264540515239326887951969309527463511732950461671775817702208795666807493583300168838797665588226337980049638388343195090382856094037531358307979135163223981860711074121378225899110473253196164826675054172635753020573963650429116092889293641270648719190499596142726535245264481695219363869664656216969721928153557303985430343372719576861665165568186655973590953308215234974016448826237965007003151401230545343627272785277102506743563955647794561354720545716976823395799200710433068279088232930725494246756230174095430234146561150008415784484315289407672265798786512757154142317460697297461076326878546486156759079094315885005239863551713237723505042931045329493560883172392146311829751769502779226052875548044258387783541581719864524377592354053623826829079527525816974469665672203584634176026401166383028155605070231354103303136291967570126164111987646804698813199475111001619653369273731875434152366615462777022561804724054039843248403197527948287311914033367303430787070945919701238490527252438456178008020246459914398201850583022110025038092630974205321785706827832165397490341447192239744646547649235421656179489809184120568996657490131999625727393955148139805206490607499607765215546017791697241436230580162767803915431655923163352642807692847107876245055481249515101842406893799653144227113084535302821601860471635555582278915643539022005886845384792250312576519906123269126218180977507283025651545975364288480200711996823441346719806631813826441980709623650927861850821204100962511270549254314852172133430548552804015259615268154140647462351162928170654032770261910027022944677670653651492100999724765822613672078347393688469165206564759040817483384962663282551651804800754347871408249356091217985509537315000280811250811491846891955450133201901281285699356921204108683256437350464248064151952002048771822881233798350642901555852861502011980288875911829520397661086073126590739474774071711094295749720796623965679431136052882569801936321032847250593376259531666433100180659769144474205750637687997849062768966190699293535372093147720794069308996865067847517404933683663240215871072894898266664928301091958407302612683491829614619389370012860300564056012856766498045287729828115363214371155773861710606423190881751384829693999253531427217136899846813389322622412348539734255586969200376540717535991405920275538309374764321476172555194162408734215509390860712425740372500427189269816931296894789437145624022805718737998547430906829072578201123638292592490387673645830088816454404431601722964128265995310655589563765511866967207743891946907977464995168878782223429191616527342575675823583113947437483009302544549713769688418817370485358050943024772142826866062298693686137514649997863377977135497454831552268853805371580115518638352073001262027328969664340494041356590289941993375411013422562470752924558776155129443886994894972416934282561112400131931368005815911487778441877657487961778217598636237357904880340090588741893376502597962898365759834092794200687709344654982831540124658120798308578352202846966590372862497854319428291495423204491547496587793790341032544453742142192152223080385312607221837827698624494860010294916353765164394792472656934040965480946578243603348858539315120395830827495381453057524791719441550433898990571701090937428382795242523448045524904411579350124758610842535892727673294209231227492895621910358379376223093177772752197732012551233615023586596792497481557244792477945429632496129135734633496732063808822568740393310004279959994765440204383078610555465369332627517713102478175943031384541925268576517520420257434392894722753574041796461902230276001366221992630776041956610410663125720938713333004730040649921967734655672792003449530833689804775949614197614109804544459432500621009468347138495008065256814969211891166434519619208335154857216788733016134090881153393847146093641881573208031067576993676362125027184155235580229107719097012842182555333150190692408239635667624257812206355792739422401160708597849021994201630021708406239128087742383747860469566212507604822413216326755845227434003714935427767796192810141528266782073295850595333338525785306806198838551432706376479002018706256134744983267108353792920124476228474002566639812070522739880366813058729900581278075928468107794829977961327019491173909150574312445410622462396365002684141877564328885395151616913600993430284288563573985068499986115724566373272081399687182449180349526726452297759029325656602375440755074776392761403970833630537476336656946722773707829112560126957701084047898989916817988383641227662974962659762366579080835906158703133679987407195215552349647357379422548402104126403414071341641652583890258445643396343552592546957395805418664200645177333276217584076463177068342035313159151111257824706282430332831784478439954406540755086356445330066835686577708202429405844837934276216653101814537281789733540488825771781075138478688200044697555091612082125239592820635011234001653588492259194010615331638294935887403041328298157012402368243523543339515805503341591348454986466775647126609259775200671006454764172666776937619565962377951818983525912052797365573539187308836160813635487355579498522249964984994894433936651047505140324223972732960033732302439520490694501647512418127531253976033668360687846486560265275878199852780637520247004415904285737879107230541268547545016343752448962967984739274474328083407973649688112139882848242467421590838807540803982739569342610052791777348631747687246202946703510632038865406062464155403042831876937886379697131209886508264797265234626441662508188886365730347447599187390493381757790280121522083676231508338716753287670507341894647609377284843637146179277292618010946366813869001997448334334107920220900083265764579935833557885795466907993272913150827797654139883496697704769956543856268878214001683713260985226781977667385856990065693130007607616075520509559974841162478643438339494107648647621894617150774336091865346586526536120688590234948321483962490011741148076398860944323426494777117214450336264513726882052459601669026669914605076810518024343462249442638895305053256250971502329180276152578354368955870610903487209287045395147851947772040887391477079979922847453482322171826917243923213967403645177687355151361747849039409929077879249340593513183563408627254675314433230636964354426717032842815580200087029873304486871597607598106625733127298405463203891764376379246251000106967711427355989090875223497340587941887635312295594478768011908175476235563975451965447290525596547614712499261879201818424610091232985506830916624843625045830848581570504594877028404847215634601576784947852960015614208335784875924214775274507086911768603955266285528414337360065788949105268869270379718506416295746522036736947876750091232945673692577400798500018895475090310472883259018214996299174374776742251838241266346480252488821209438415901441104877403134886517134210659083800549212831837883568431477597510651906848380076832165550447226433624533755510361248973181827161702063148683581743930607520912475075465141787489768763618813701082029718170724481971037744465129098387445709032016591319564367234068623276567000677684732460720250248117200999050409549657282962687686798306569347611627340400680262436935250021663121984053584868839933466800955602201531381149576357370222914345970353892329886325725922753343248290241469463152719497124849904463496039392506535946676012569056161050750932963582759496606529719928525249959430614804626261833673474371521875455582684432030148696654123962388385456338847132309760995946128767734907655028710122078441521874286655616203303989115906090212153372854911106590888009119457818214353407642432499682535641877478434561863472856937923551416003939264598872485467342689168012511976407698645668884769557199053059251020787452518957901592980506060833749743858355991413764055978270381260659122431292250495983472755515876153440423921894324818945516399450506974580366101892435091842558997471563732625360946995113222248770202929219202777211401259888759026846448557360504888992285127200953955283788168455860382409257579582727898787606636741021762438385945245991669359953417607753863832676913948105957383171809780306080962845533411934101776167094165280674963774302014528126686029788267713228505961457153934051805487129671812150044597133798945557062481313301585329018912699407788000014723671151262273184048183513626115293857660098860851625231857455303330620076566533941015242554040752569870598620566792343401718872607509168858233005007022580342659134616252555281928518619948145507822493684302763889497450280860069015552171348764050220045853973178621853286884925454420086254062569626455616748059831354050541855460673439729995866411199346133818290806015684880009437907933999063770923406594548712697101673780390425620789891262249801711893288375655027361092076530429910086894527326242589515399142744105564538489179460099360815877511887948619397420836528996544722913658290901232988624382333540032939470953458391908131460266798095877178930044093592569844074338348002516020727816121096869593807816120996503449133750070334774846856823641535996913483716885345950218657830475048560162414667674585894880361759786920990143000516049643810196749334189439364917364364953725652935514877121942358624834006720953120414183548232603140089345477376355344423558408243187599234381959516421404480937852600365396833176738854528927297206199905401776107655618641974797498183456122602459448030750004855602808941357525554025447698151407998930146922731027927580785049790127242872990086918087589815412853537970378186974667950480614257917566405145340920058098578679823798802882326641200267304838023096984676670901172418735938437265726800169391267168157042300984735227778615091009762494764226855771054887807436924396688411926322908916641467677813222875901425269452011459837306048932464453863040038051363471461356402809705333016654103118169361182748466862234925936686723023515265296350822349063340177646615669028432397858071644604770508571284364105301496089716458308881112008703154744464070581540375374206932003498295356316192026468210299049072693462210926196891389535631226640331900630036849381712457298946630901686440990600805463055732883729971891348004087524388152544300045674470967536934051756061376090185138990946509842922735618695263616920808666738461392797798230129969904706588916898337052214829228569607458070564860644246299720243789362382700241542979116699530854610184025012592176455894810658420143493658979506450981752254294983094440423846729888651513337347324316494423577893512140472152046860880658193378099273499540058115881863732490536669540063158852960168057190396634963453131993287418685133385505340639313407731110870862608486432711519407225637396718723805155909598037216053481139982986480767993398344813647657975691657063230228223521701125679965510295095519111076425909907054138468198452923006295306402487387951125337002385087912959655760077107925857300468731978155588764908638139106328879920394761932578610556186707211174087903633342068001423846740709251173210255531499739736612384341000145673672360595430585903893546338725766778321955615692350645485243013799756806766115410074362068314854609913849327604463686413922967418183915200973145554815450496786396814311330153639589160344107624777118911738825322911651899653132953214642506344472368432937969833185449314591594325956512781599404804258240487069903508810297309878395371709082409186422665287677970668122986630128134372804554761502573844990581771779455234902591737294480086492520467654564249068386018806367242340330876468829301956948364322679097664508313051376438778031933199574148651606864372156271453948011016437887045039548267901857251033252205376344799979591426348628629671775261371318097678339371701698355995975131904652894673588115321113613687841407724376691453459437466125185795189729568590551174327740825160405441585598109452700898332413037514410258632026090094508635313888027113429570620580625540983066643475818464058999853213323158496378610495089506729736976260404312738284258767061155743207844088178986812995350455905461075612892223362976095141007431162966072137432052206753907073409287235609263620956844157828235367601700820356113794679128269045723145566280509740525112357502656167863693502377902890795253426445465287184282286437999593259707509731154285844586765509207789113709227711551023437656588519552896137047652600907778518221272423311224881254394862593815571563566485775360781297213540235260311251009740378427720687582122910786636391046626569461849086602026663657024171254517076782346543122840772602270376801793656307034333728579766950144198500220418202541885795314289775316666143048561002816967698188634800318374124553461391068556231268407728420785128026477565124693128105272441572059260801965177759161443734827850265807644223693682569828701322045245756393654341773581786594406858834916228604404578765987183245433124703181113420076732593323737378135998666354965379097950272035426095733908260400014354452407385108345332091996942830577392922856734346532158437062031463624217960161452752488514467162492895712388338805860575290867206771143554793366634641500249246459187858809282540873477344852243248626122023675763442373383479304936655892326016777579424408880979635707495929518915200692715743380911014259717334416574092319401374540210089918431882217427060337122328018034608517913179016646026958722021782359268627778415798845222536723361021810120114207000180819975540882140098246127349816688140682558985029737838837224472511311425815540714615952646631745860009259682785193317209835829082196390753356519453992082975998734522859267794796941726556918843658969486330455292886604057267723961661528969034109317677504839672213263043917977000342607198682271029361365095986589868258016192930425577267106813491354260333458655839401645390224942226090390561583372367618874341473563755162446281890734009344725343111958487644908525649325816885609632392234888179410322240152052749130625478535240711107437220518528419948703444834992465690492419005869293827904234605617063937090627805549146756933880902363035676025647001096176007476392166605154759936746394561415002706496915584909473527930790818643100808274526140678720299042335901579761863070630357924337745383891493529157237025763323728516336505199177872298060561180692839201795595814714533711458659643454641593766928986373250147168430131765162642332420128240730610148994929626802552546834668931600387817084443894230394067466079091745971199213312042185846898509907509034152045676575168394998885268596432974606417615109369961142765470222349088007192381077167310219044396992195829568779415783275182734888143369534117382885917753567732720500675053125895094193860586848668449775539084028516844076848133642848899767018394767415627315614687596030287144352845642438655065430820739770745947260328406765036055447545862237635867656032179437095289181433279461542821537210279902729052472510207316622582049353423507440948289836910233132249762940297800070528839722277261356064323974923188044591723730361454520934155513484623508336413333799823812189811794176332588675917967167354586168648452828183772937820476232463735247793757095870594203119198139123004902232333643366397006796392032605563678289606501223866861927595552355550754445412519681406903363389410541335339942024830422888876810495769189301744135513842739694640559965050160842685737875577701071039650262832956551283041446140059181223687634374123586404025303403353845126058569756478747356429323705293444720580964782143741538929558632120078021516337761556521236967888465550736740524790794359930455157499211018152168655749308176291290026931488918058117513404689005122604018081320609076485829930293819615015490688896098369793145254634403208415800651577036600923581237965316184966133395727637329428265449006364105008043511232854604967242838338838013664584139351326927830776429677669149675803685868640617591323516141293491775889444228226916296812083128597708759983793958752524788093617913568186762938561215016619169030210407351308305409753239843171557296439483542761972015080703495592940664415020685431604508657579645142205084632869709160515040570557822317716962476165427542404718060272273997469119696391817207622401787076516798365664981139317372093323660509522560928174650278043152423897553504558870727217941390549727333272576265456728028301870631251975752947563801032484026788710598198036953163139407692630424822615244191446633972571975039098671707107578585834961065535587797045169766617732122181269423112225536453623064241382920351219705616810277887720566820850560649589161548556792215655511634968544095331288909214051476364498064590705612966068672621749124890383687012412814413333016011170137743594257769232145565536210712789931243940071156021181011704549312487712037843923598229102054029253958492702818347809795074979635713467258066869259588526311001189781929648324742777259480981684848599676317012979058404951850673055367090636443657932935340253321582570501222958468765056777401556559109027657794128180124961963817431138265928282248526273454001422100407746284522001333430687115144813825421611144641664467931516401968943068162894623970432885625697281637165730040713305168340731370972449806430789393996970635582644503329054104064163270934054246063465153787702131812521062295561928388315155241459744980013873501697702223291362909114001189562840921838388405905952705303003839571623798895133604850049990577877642986586625811795207182397378000748691599659536975771905979423573838076553088232984100845797292639697691444494025473518902918514698989830840209856567967472179699273317536758059687342155957077439528810177339629371302195535649289897726857785287835656041425497071552909543742645021035719768538551538010491658979305209680197488970837073705360891147126156399687396753037323229944348518295524452319734652719473261197901092972129942616904700745280646248016891391951677373845944968529455902606816136605271754648408126752688023978248077547634708082289395227115023948025687429272836334345356775351655582046681697572549219657261479753533109983980933811888528186536368610896147405073796005719194339900202781743945867768075182233004613650625832997585552309788017022424659784110289936816858843304279098012882409402386478005852626132962911379397013357594682336623561386839518428650405542550171043668995962050164155796817655513796860920612752367534124775024336040041396337941048124223451133166405927591655162145832721677111577833659531556604658491654322494141580388809771085999414399117664104175433021456178302400734017166113548678699311238950904109564549433913092649706797426631635641075188170975014235971167430604765816550208950914535991717712327018912831637025702952253684845996455615313918902919502776588794097117458811773796930203004052214984075247328922751113835281272976819610497232145301974845701786567641591087976485612005984683337751292184649498744444420636557973100624639952949790283833410134650729308813347085845103659417984367087366066735870979905876373166524735746638319055960999826394244681402000615079709066596189177773585325300228792921121280792479306511759286233527640145946117456276067908280800245603302602082848066411769932952513574252728493358976757550822363949700754545108955836397353391195987199325627826713562702950994074917011228971908859594439429467221278190045246309278407754820851515722627027111892518503283028552415089116121950196158922873829248683831391342867637660432040228283010051497978971032627183812136497209404601050624446071930363004149706561666064964560097235321708527865361440521171875969473131909604244307761319760788783323920568875998295140721285795956596993227035835186937637079764913338314072961926785454901743609746812308183120697359438732154665529776741506113149710339431810304430488215445222788427787102713948572160456816875036289483579659429581733065819898521326478132875101368228331153814958915056433603929887016757404619521674186143998042262561964427728422137153211557331629986694520914729064419572289853851205872087030292387681179031646841850729494130809503152850481779009498780022934389643500844410288556251589897141028033161351598258954951313894891305302355803785465272535371474408515013956617250476132641667838481927481603328646004859909625288010377579972089818649313120417366020578147434784988714834785916740329718578997756445270134581311986765495355615633467807622218419531773193636522441917278803307031679879908926727165712493279923338457425309955783250102954244523434081328365053724627615920150583059142085107377732441944518952840488576387548001062063147768255714505853221582498475989585973016308093197702242800804022542069179510274550326543633749317555746148470777298941660214463656162502086179781538260488216527276116545787749027811850351702629513547923885078151034923781118852461873573428432716826692100564775565638804654353809052988143308248466344210885303953492199801693246541106940999540970443707707742757581538959676146805535624529105450434235818508898565289748180240461614453686888894197283217039954592118402298899359128778992545419355056251246970382414375990951058614356272822052586964734594424173939941219150600420322567099615596045548720606843462996676841840424528849946108387824424037960743796064242247268923322983708904839159653660466695632532104746529928409844972762840843200342601673157771470315586221341497408309557735419269906237214141440925531843942736103442297101943466417806443060415914722896963158968738581823021367391959215787345628219419544763661966555598521108520567667471725109908395907324575274775350074943314371772603768057513523661532025826782683360542654847723023943896361725549109311450750762555815364061049971711755874804771119839163303419807991263337349723787357553693180282041655292928045727272925163154051726639767174441442778546924705061245780172041807494317323301821256133811511027613372261601993852443747009994417433718597709280990793540574127013512455497275870837916610834197753031285846018431783570169745247996882888476268129942257748599616457952965593222025419806455914827119448417208818364253114441399188568556491609251443926059003774915192244267110090051880561187034351585139183170844698400521337871676226534266043069816903472821158091214485305842045119196464453686142604092417641436256882987668783146254856386078267381676985230569026601203272113630489995875845610236651879502972380016860137666098999027812596915740241908643422859605477957471184854705237364849741687422731339266922337369432930417794954953302874694649502444879021280210769446910548271156569951071901720860849299810007990043275247445188547965127660958749805382474724056013316555294601115334389727159566862893249416919932741436195224771254908302543453733603031145615946503873196970913846910742814166774826907530314124851827839036499192054491305519216895736896393474798569929157679675390536612773139562932643640719551084317376615766820024156958961733572863879281329922375357236300810007792561124615853329850704140162195543713018751501349338844958411444380125098070454440133126545011376168778958067426115762509947397400055485491292679514062390181301877829524873652531497800266770061525295238008340531703251232825208710359792728092379847717459762272129357957908111079858281246198327686785123750360643817261155978174040890073500935849252487806157718421160386423666787323128395280774923801850030059966831578148845326386974654260286670970448760668048178890726301797366714335468406856492743898791562289061961628723672331395536586300523729036361303043294067230937499125205633790027994346752392839584432403891215788041260460502170456984625049540036462852064253283117869930329885470972096098309396695746493439103380282820740165960205606281351856200795960614375438737844055271392072359187102384358500456949447740988259013224646881804411346903686965416559809585578162513929857008454837780317874265836188860983115798889269068510729708745627993357556982849714116772398652280060486391404224636754719590226844551193204427517597239064514200999187727270901358856076905591176999579392418234807635843028818486370665374196285704289158894716252588262032071271405203389514338656038714368947452106228862691762162482850729001207428426808493185089496666605553391357983066990232030360050084938930813550508178670246837743927824413247743256703706785240219777786151444188733363824023504126714697649765047090251839680628452994118249126801704790057172220553738896741473758724685636535650437745402594311461158461819588678460166532028322666759770915991796339090915113549918404421259610448201647418157327128776647562404054490558742050252096274101778035998571414618323842440709142597976820283295508921736057583219202206028985583395122686429522879780814991156295914421700774098930549700928135045243246023022956105655394738056681043353720278742912175098545261659239617223403656778605213171270183108713153600427020655858873928793191969358616191315109633967180851588785833520970177660770212290204207261839269293111749459237779712351616404998650818362953188469780700344745141561980722500765448315050711310538389328159109449836305818778657126312890505255254163268590674813902165117444654921274952880173483330867557440573556630478653395904442186048610701267783921489059098206817799074097654275843114929011283610987956463901941188920311196315300177515205202676327622756834393279860235132841701337944528881330939428065702397346819550566476335450503530958058390372340480844287465453890629797006693524929545713638450351937110538310021490836396645546635513587674499594054736983440908531798588028998036337041318541603113031714986464517194101786593708628912445080806125746536570449995428879033208826289708216883981753097261238087470936802668003398648573841853886939776164985729290714828416748249543914600201127246852482967244240652127582352757085484895427259016362248897396530466282793698666274828557854534894431872406143858687345784870494243812253279650163271524161704890273967340439626891633871509330109592908067180199459615390991365787609103105297296572428895040428645783418688630182808821014319490607434377311100674486460345889234468108841382121833388317162938331439189461418029963514848337577915586726953417086640628739818026726601117605575841025634505229286641862561087252156789922164367569145803007690751809694267769282113022258910405683502203086332949542731235684211360426573286644615537808668189892869344563385083695941886784809400473126557571527877390212693227090250465158037618720059994951139860508510807724967117943707289891278231404334309903579703552697589404326266398657398419143779828006110121098833939940536592489161726022413245450009549012003045424896172910365413102417300386844691245417208688658895454797929903964539485553280213548086600582104628875296124668430469484635597890622568663556771775635259317122450316462383293537832842810599074454747430418686582167950527977676760169920793140704945693215726703963493405563990285728100018481281465056860416636050054522351320933068487141567706846842403590675137725832298533856605157974252930291520343371767132692489925961576556620765700339014245525909768822442806468398482268157307283500087326742449598366721626264420101564169220988875036738657546199206878482656951344201951059809974815647274159550627136129021609556179702775271582483669742868710277575184456409000455723559839536080662679765384283197805917790899097881469908374973174746951836664834635127595280826774669601387564462588840630593107194735054755398517928762677662125697650345480962814607751710148017589210055330310644209085029822253778528072848750449686060571104518061152256897122411412160804450987329146384248177928114221930369637696216019976527450541034083507585086815531201953153195170601577869324772422605816033575971441530011391953028022785898071225495741049378309825667903943821855547745764428202391542785197102178180232330472865841742284440685617141788585332232494994911632510003200757462642645549269207557931207491801258652589401420217068211058013270637926830200860249267841201907717368164045174809743064591074597437141206049064449408505645525999389401683802158934864847762829099657767046838623281116291193619332750022862105205869086321453625038995632714533318196533333586720628156375546309999180250376664881659840687327056671036041835354870716293463905363804261809996232329090219324779498076560505456076333754382487512306360494348065265348965367480927562089475800374846687956861797547949990775105272969589638663579629906498660454356845008962618403095260900796880079048612002114244259994573800353059427660413284050679641204058648742399652289464819256213215619197959638803289404873177155016868684994436488924229870453220279086379329335618033064379735339943308021621162032324517106092850035155600547772623664566490972723604586362646830417122244123899397108440560787035647951706800930237452938989028515801322877991624130541292504092809225406639739396773056150081654677176300802937563437371706394131497120755868146374248247187521957309355056602937026364837722978422332107707787797258310276508997080728654755841061278701436010033278221837435098581796645148440858798022865118763178067256744403496105802209493340710746909709093830514654101793774749352417422617923741166364045329400375716708047802851390995483467188991556546091494496321586991952786081781011479516001241527323836071491574672945622357401422367994953542039908147650157369211621520516107532542607145874822384342306406185221639024453488220358813014550777481793945599765236864794128458296673609192272295876801574143646676317736451741133533628643767968436956560668214677034976303492753035647436045032971626564327738264576029435443520290104502030902710198836943581666948482869613440479809815221111524327484462983127151239930326930017042841166512314816994862617005295142922630643961904389506952140300001801601699624453004481207487696439272861805421313319013430334142685828428638353463370551571815883489509757466866746681231966661925324339812750647078082890465642694322780410345464431971266166186250690321579668789116809924333560260955445051657501658027407798155540312230503792668141320556465719915833560639027535471794887481232877398392899954940480500427860760136745893874038118074907232042168093743001101690213383686497380789443850441121767643612489870451758184759381686767325768483723053828950855191510914353461767846946865501783285088634423693617145496546626987446380069434896247618621645186549178726140553166532243773816122733506768777613713255272180765851299259210041629709171238300235435027436196765258035699573065386280549546704521693893076108443006917744056569936282586887729931171847268453781980024787666721707210743164191607455710053099621463172793172463805989111121729787064528426234824586171199466776564784349263063469568492938149175050701383987099064546542587972364268950871369275387026936510859969250828479217263041142841169033186261507152284874975466174836028995799511897146579736036989029236448448032875318468104688235477742249393936747853327136535718700251917274168132650693265874595805040522214869429204801973879636307657515182939822352098272703744003540464353929055375444153310972448658506942153023849687826307017582651908020732269750382183924306100911607176475540827287113785523938290332295951469527439289927915383594952444238611043681638976666687045915198804017575341809846574800601541580654006512209447880862083525079526724461321637986901394353341895891408499517133548373853388372904696776409747509434596811792114584656103007828614238355078809633831776327032313858931270868202206615493894309624583959566799896542213847790700282665004001360697641135116238632622296432422361378539255413280517146379745017875894284782397432107778529400023967995114929353940541696597243694533615865218323037431547105436802309346678102538732313808995102062248653080917041857924414293971783159861693859972439997432131194283524927766992630821810761654669765743938336573056316878202825652062678299466215672928887639659937486751789748683374832825403451110937718440174597070606742499053529939352538131517689101602211113304358190422750294889809246441352453915133573921574367426852909959485844108030389748983960314974637053656510646248729313813216093569852460102540359856672710451684357562509238997598172182634870820141057352747439435569279090017687637412431702598640644732366770453569282141754691099285521403806925853161479374914556336638043746206047103189760377500510725600318443204030180395755349314481091865973292821626054107320307110328665575073012074749910695423652168050311342287778683231281450917673564731809441306182057161323210219041343207886258346546624965869717160003513756267311381142787005137870029205279225673543330665624285735405881151354960733340328912705451684678024829760616124821481852082887531179122968008830625168351006236830550082065951264358536938795777820146798484460931686950593173730853670558981600093628598264324324834815596810826022606058654032266963287484633386485234905747144121647370028003690030746942906104701382475678919970351173747748235144548393069874578088866936391029250585643187014961659697845377594232776419858447604780672997481373396475865627156696969921871210743032326362868044425868302042562703736574754474181225467009437845181818598126127534415193310787896883608437788356920792634984781295821913556382367361325234718017545889709927896665635180374937557270424191408060226414256032348670635516555009932815482825843265916227092641465613596507798902616901145928702622620304926284909490773205255624928509139261744343123341310964083427282683338466787775326137490663723332367041483130759303568399611994240801263938525528338209877848403589010822138697475854813144480434857252110407974334567939281195915903800879308957267282884851886408457648188540709585209904312527928779430748213472945901422190151162486248664857557332871776949316009384075236665107296716301887032570034101548651071806462919606589866779987021222752500473729608534108859450209156148560022775701907909639295320844856028581943697626301775282530878551554525779585953875876312800747578232638636101127804636956881417952550792069706107947845432495547880015858470789282663498143591381799401153513088887582092539274137575591542592810993184461544429459606385477719619246800969367531139067339320835816975846678952512234071795183082129836307444161498467539899876817735474247913652517044848793245232796416647647687807020553147245627324155585628707397108455152173834201772529412088432022760747189758084506740373978803161241722402355640923840561874627290785746789598168582141361404693477946781565638159506148054998455876712195102014236442471056858459316947235242379416183651526891234773446314258374905249411265074295018750291338777178395856122750250584602161605277863843083203724395008312584140531952076249262511354365798795965322015582647960384423014443347465599270323257905319474891572732986352319053265559595645244486781796742762444361013034327080665761973608119009904073107844917365580232677506965305575246420187731492930932934948482033402090944507562891692607801967121584142435189786210004169244586809484483198812989891189440217760858886312166412173457344042916909758956583235599899364198394536190759994628310116392004693495573578702193479167409290473100563699668240300524504898778963240918843073559010303684435649551910189531778788076212754160170204349934298822224861950925075151237584151787083902398483682633762339855029175779530830118382970478979787072490055326364094878643608786128073175937829405074282768717612397118161387912741721461133974211556985065278168600742045732708778066087898710190888393255143133699357616408992302087120478337467415028228274846480428507433933503236952494216494711121557969023206878658877829208932383255412699972511585562242335326435597364985298865737839557831720459480457970724855855243735087866527010710191428071678584120513983761542512237704992995661584036388831863757274308180261525626214639494164842562059294037348963791817766738020544979388314276234913804209751611408459521856355302328638525388509609280927819014289894443661884809308304899944445221379156331459799825784331242460123909815162302728047861168141560687679431446821696728525444416712977466448794306555929253566851299707096258247457620313491399350179997171742417374475750171976924118234180766184873726683838696049700285942855495271358664105370558369592326685756840698344528577764926702020839894637180770265888170507460777138672976162553903435777516120227455385557740026594163115372227645696693415281270196129972838758710678791836298250647312997453854107526006298852405805978155398562947247204259277731974929604675909982395347273496014200427239438345135350607005772465443065246070946431174391930715376832825408820152690982059878575621601183640814689052044823612878599302917451247755941351122074261205076011256526642212795721039723058937904141296916412006322099513987492172022496857394044831768670408441936116810459344016624023865888719871532079366455408778731108924895977854878864155172800467703632336971582323842030735680790332072595212199880988811447013441020439970305650822646231141035304698849593431059126534558761257455580458831040536208126380005372322968545511461905819519087260827939957014489691630825397076747597180833643676086223856911824216081256124200141945977623030519702622608037347694379754790462990660666815972510869079635207526934914741519010889319801369816873181856124202839058623201329974825889767471705446963960182421947250669818367626714243090452410200015102641306718232694409104858020159535834482488473603352235709713054212267095733212741027556696149458103053946842661267138348606808349230850325160442971144902249922269982817946053122113730088409831818343015542565331546938312286702166134390474423383619538610427453596383526259564844632293560330592004741118667067861752306522913992232117870335013687124753458000026272965980413826790734176266000847192374046752619815708373791097432534216004786686458779796117895135788108660688758361750140260674940587103981763902975083662610898184205943430891620970434569815633967218286187921306487632195180227157813133380852816217386938759519584261255181732264123267054644513504164320441414744326668706095212068594654459829048523960558054720910795050136229368719759796416808359527381273441565503912804558495740088763506832459724522034184524342126884645934814370524853423282047084044115845355222460596220750297662311648208739208525920570106622486318144966133660647005221187923326944086472446780257044315434580047470534806293533682657296201168628171892229481553253879363268906067666062867365213640624861648459212207878183542095626001912004626221241694178070271341105722749035328422031235218279019612356876021032031812421972046266867638370867322555123752766241844065933395351438246537443698389821740910628398036728844376390330004600086565292486521272561311934099848196297334998068350156195356157047283548165628863964112472239692713754025269534124983669259738953861764320067322631128352295184943635770183906562407351484652301109472888972580999984191536949155917476353517326586066122578335912429599063904140587040718163747251634598803328429989234377108630005718490869524582148539358693394151209741901441876007415834755949851008800975454844907167824394168919947778539914076248957377481478417763600017835383537006407442627145266377269634298315707452619513432282400834310315510859157034796914142942059328407374414630473500606295564793939734148518083000968092021414992650730657343066292191085709875863798569661110276343480724799024549071361136970867963371568531528330792233798528034928572200535814219329184114639996866224831200375084485572572484943715168609476777877861890389684409922326970784537420099920395013134246259480801464871796073449400813973859127512136466747439545181718683356749523879224892722394720040467828363066379319358711071360496341536319620132854613826995024319081963722761912421568333043654669007684569536631841106543819167407868626472983075908226345582120877516547353157228755125988586266941735261426185641417055996572848974626681963114375902861687349876753976754307195862289210970596447164241112687065676889137371482106786816962291905653411040997274688631019995723575584176396437125831459798529711570495215600857323374738017006986457136233019443144982320320577758369664134435122838466461184149156056560007324700865783185490973976471105200272466442985441384327658776943661958160167960921148457302227373913286225327621814552380462438100214033739078256668790795128967900061013162336692000433202553193533690824511292935292583710196902660655840275541026268067667840862241387830832473795189590558324454065693267093122873094244278970842078291729161427032867568337614407530857109837092529628694812120052571730135728894981036477443864703994726767971354121619643255772706393634663402407911924916386426112187395494609327732392431671606397428546617605159506276828181512771184772361013585830594717951859576839341257044358186786113035958414520717664590039761163252512522487204297580794234044297681799181492580671214132653236969333740266212464832013025052086206240415658488220239377034823432308927767876480964330097019170872223615369001421311895021327765007476584301791773791967583798515266279129089269077930126868703904602790698370209332382905697904449675300663896292376770700423632259676408620477219164071827327983255422902061941380758813030117765623065408996926702842420804224218189278638431006505772542344148802069902039128205938821218096912453339306789416133116086135400322511409003694347581679398027190110672127512563599665823447173800993284478794212492712661020809547684080719203299856398218813791479091882295968243080626611300573296966570675241395354956500865936131488502652206274430462379342614339621130836511585642344184059433280436844924750305130904180785136719764931003289131282906668655636267512521063367931827713279286404944636917774831838869614155148756567089262726880228653241261740246674880913092424075381551975126408547356412014482354148713142509125040448103402170750632283056879884061029234707140283691052063815263853116927150390083305964295730297499063480408348426983263275356068702797790894307243354794958779235350576638672298828008699611563911071292953741706201876129785642523032954079655877933022142844495930148932098146415655920529622932970970010170682901213270501164300310354944408771100246032009011370385361980654351501482588778683870365034184385455282242572967770390733202460595529328719699369963883514782527504471228712764816121432932398004525473076292082456107955924269629913401393321686543333039274767695027624205311956627382891837062558985514513134443759844366390469746247404595606537996174954021325005293507119753538622055595298321465466527965753377046625567359004676759744737113586677440009591316362345228957113640588699933045696925626775034261920753067089765219966494063422750847474935496910597962982328108172776223209081197526970121647810898713533190457320747719097298025732528980888656474462155394291052562187927901919378689982033608476388350483030282954641951806475664724234167199984507894407000391955126164122767240091585984733588028211787787539968739451924135153127192114579490609416745792947614613430142561046867253514424202033626076618092830975220318074475181562738874089046347154751631064777110637792973445141014851209135372504720772284412810953136144048682789423146954740854871845217217394424352398359120287268414318093139665962947997808590541964274620776650337942136731303759252225497265664468978241747897194361565266426633655670668059757004885748902328674788609192078029931911073233082038425677144267191719389217319766125651836224055484721988677830450606711470738161674064946529389630170377208731778487786506504697685480329879743910639241473571881014978563635076616656618094650076411323748165232378204856920765910301397178871210676750517817108969498887481320260709931910874754552445641579197134446165253099960763474295354088183965112488306732064838409530690850772176452563959818814196106843655821811788952094504541948898803112318302527773457877779591245884033962457668044706637698953899862392096746520078753540686416664629833288766281814842405872447091792517597703165376969788014527592201559804833194487593734256551317994309539725484347764133357215407799720299990752996267752432975344788611114260628456408849729379247451238720098952546408823622494986788002915948821143635868022208342240965288115750301259248441622156509071740839729585959609307339969025699511308874012609258659861888595569930364650126117654416953161422121650897459982017034643736091713263393784756114217866601724686349666932856697194324856745993130914590821122149141649522701866542044024124394724977830011107736186924806570379896236982756783752117384937244624497131036499702302372281046672079237034448014102537125000647585612740602964333901135381770604605046165864351456687101192944310086406952354100973307407184931335188713121698756567841386817720171792561647338093534112120692807723021806443932931223062684134163280961592418851066326632873456792287453321445158226810875759789026122484873229097614315908564165652315690525014520301289455160477163384710271031497065019560645361912956196911261212288773903305694388215618195711790406903350872485303912721143616432371962765764940956447692727889886669873682423618434662460415231515061052372533960265190405080038165423516903212104942247747602809799182684930375500073778285329113638939149225061459364696413482625724340595080480036656745688341220245725197297988379158927868213995124680615216340678925269722976691628759147369788488825926950530404207227283704990031538291097116809138341295193464190432190066620834925916943153979954750654287461200866232060367019577454916791050869000624582891936829497056692632047268206326428386367146559215176311050778977855383570151175817457522550430940932729063453068427361087188993682091737413083586844078677336912098767471721379858597635691085484220330926143834241026786445446655723661888704232317096251789473693125092980111630414112704988463818244722046167944161547084611118190440098746721248681268309568966275727954145892536890018146933107578499514889643638375233738515974578853473031906502057877107647433212764961673619150468648362473585257355847737667811551525333722908130432981265214167284894043454961154704419429544549928092060867450300114863432433832589908437972717972475946250777521005973117002206862289231829625317263728588948009522272485725706966767536387540580165230153996919647037441845993841700122554908165083461626922233485494912972293631342270434690145706465703202853790814606506845575874624425695982654469976308160208952016888699166083951889771378109447922542097592954687657133566097553475297560878088596786745656642112699751269277790590173393271531857195251722357319862010128504071610437989999474267175067546122076047014574251320095311767932598938064191964985700931022125860647266685181404883862654902954059238364411660534605239647250996344031608102195834894860304580833060688729960835595447912371994781030949328794764351343897087959916403734881038838409909882018429592357406087440719971806518442063234337040479115490287731855325897509272628947109982681591358968342819818113082880588540601389952590789647948828190555625140234283067506905826927444889066498083927515355740869704566847307663740487891873816334900555485169468545738636000759267235498259250587661629785841728364407945939684932769364332357205639373463873184649020461776461520863542105016275993405836284364354149291611088351506492445991997872597858661661058938492312486506321331260654096131667491798153147153442844969571684917947147015202671224765825510890535584180227375157826101292809339003882078235606523757727967475804549790479804382705351666251112910134885579371396770202757479383184033492068320149136117877738096700174368655506163526650614795528505997320405789235251334638138099031661612691715880663545509829052930216588526995464113555318385078926293155810312123562887849225059756419583309036625022886704504999002043045570093582188796898373183808712622438099465808611817525781097640363021965518452108155119031944154452294222422912932794125002184249622501965755551983361008206019659996580236605687135131736619222980171303414727696077334839614679338521045774655922709158183456912506603206815820114556180062480682130558074067511628095993175959518757796832513648816885074903369755650509674722015122339737266919739128113349680514334189223703412494276855866421522025681757664291163238727518336779984924430227441292390836699360528837215175361745196299247040082767212677871277053384153766660917570850216772302600570168697643973207000950164865866567949360879348861516450871451163825642739415398861203192809100346587071413823884404566571095935060806840300467968330667986890085322807256725641723562272077590363648040516603038294725157103132078041075858404934032176582344392628582300100133913897615988058277456537059886815461797200054258754953235533698729604816663336702151062374450673828594479546370045702148846572739518881871202130926409529222280516926701670250900299583251543077103136496566715563153190257471275844987444303263102105502077566681017171075134113407612791189233114219530559419026293302448521454025267608381069890568526511698481463754627551943426830025369946204230544925175952904135704113896888069213566638162390897194599809449471294425649773419623647027700832412759544796997994539611096591163255388464145112012004565705459637164895133888578046206931857055448546985456710014379265039148745575499894773770869749618903567603324099496035283817569207028840422911198022291228331306081819693003671584280489343679300044769659947052017951878596543469311105869514915053723576363522900134836029203849804904040725806412878751219421742177754691778242716258031092847674572617085960257034947604988589704908195077116858234922972005315481504640406114223118307707330484279089018813584847837425875246816946378276048832445045790031769820457437377792435607885961131243961480375922143661365071353198175793098091070977395885855261843719539804132407509045815076562214560524535968427155816156524595065302593494989626734210370114633219171893337735879700641906060231459217045579428022422110956256313047088309819364008707801299881305599472122504734812458772371268625315703944321687340192715458206909480394849908642649230964715960035824921894722455074291703526689272382072952196651903749219943361915388614182413013882320168063985574928692794531766819494196350543873273054702881218731846176816275195407808273949055905886997621546584789962807712838387137592904684082426974508387258707221451579480210432605300475514721240153698574134132620340775045470050967552534597208944450275505838650850865728706638327184889334770756226587480871578671035754277304199578326236746636265385131824488587934227977371955382123511460195707605962317040196028422295736939427785378536423940942838524236055017073058297926026426444372614926441485926558566361422669826839186157635849365817954363875337498126783921576989847907790912312956732706182432851555166172726598983206795345193582984648752316454031245442114067718913646435608366862224969104874255083347955712134719006684224373464258816146291894945278735509370654894162316388434392510981560265256778982981097682526142589117194522276387228391155395080248955734089262943012017820417520203757958803015815144450188962022135909160738366195083658538942526664229269009834351657912717768279066639927964896222071219928166630564024755514935057213443812245726466027018500623330001541954389850139002620933935272625219268696970993050356867768965678772334003504051089154267666723809406038595364104861806614999415002303741085905092088313880920563799279846459866963481096745910165065878267698043330229105677739582386945975211677864557391704504745109007899695128103533919550806693311100863366693286816132298211863074100113175715517315161826645021477728452584023570098926292684290453246366735205062554428998876419443856432999934907592100809757585702846925720806453950278255668161348665303056265854467667122780343804712065041539540405774374951112927125865880947971220604266543716419008779716554152581141011775269692637242114310522857430618217706285323807123576165165393478361387295786997240705556503902271455955215288846705645928122314340628679837657516600330927300990086649129905757702868055062589769267786920916271866733848109931866249425523679800622471020318400100651502544715424278104559938100406648281473036889872683752948451720241375138522626531267388398757077678098040130472336868462115842514125597386296813598902033279975109967561790748312278275944645123578079803201799105087588611049398810155242356918862484730748671377478869666619559140604532625403925862309085521362496279600840751359167444622325869791234101005165122573940120830771703882489467397734164242000363116736632415067805861847679124486743911544169205560358355791221013371773181118151600963862195304621176331868492535839617904379720133609490326775944057740341440906798874642262639557105650725457994927383587893271430416837824398607807506509289847764158237067786301441742915984590658712968981461916804497946564862378531520379079307249810812701056440491548124315723509265554040171646476001891901012891622930321269574394593119680157524526546428742311265129906851290693655981675522920852042868402391523558394975770902885325408015639001053765201582141684518078881827449768626162744824357138275189413796515632402661989848553896308688664714847921837034013402293767718962442190357935620460217037695912659354225755897402651982919051781178256643417612382374228493737610275871824936380952839815744159393316623585554103756717056717775809664414168577552319064544232201201048556548688910997419696786932336075156537652250966050951564764590654039655440450560143468304777540132935347454636671815264186990320983521181867504403038772096706631397747004568863294818191311415201064239260176294943452515523159759839073694001659203034896738001341369000314684332710747656207170817219429312984695800114557165701757964288596831149066606503566300357418591190484779777886613794851345957698333611759085550858673379788968218148147515454924611314370073477005296323480836794983026974243513221732139993157340981656035844619265188845396752959008812941555464158197877577068301515367445489914979588476715315079872387475037795472266322924322729332991096620216893401105312522562235081085176063449441271849426451931520777595195989118456954858324127742640425014134601585950848170413074945260934537154889865662183696129078679588163737070147654361082999286636563649121726723879286279928475171492301511414761554388795713576078618971962156023220336828592973049083594307214843383725839448117416704702383258858508791269811561954025081601010609752817216867911197781341079342538572537472554610160950235726015892483092099363376601592844976436918659062853778606909908262587875364040368393984265657742647490990603010052466042694046964929164727179848923929616059730706410387854166008266912914649897186081298502756134059398631565731055956428227163467958690639996438997816102994031747220226906959948085464708946462833859969206038279724244829630900129084347868188732474844472799629418529263377541321331329548618627499182078707304161161739727573935765722622285609257702320770795940015974132620882668367112622428034975382459464640605150557687367412981643268752608006110358879851012655700092262157727818764958662451182528842568311951476601579840355952177665256573117244534803385833556125538445335144601508882468035560113052932802919791551462924691154129651911707379711653569218005490209351626407563774404878087277427474386962705923826368129744805605324076116739575860087585347609134932724480933391396978780702920032308976684701393328507715079280868489064987045852462006723472438159107952476373868170007839686198780787780695017751017562293568741115807918438981614796901805215081979846714489559858479206097615599433008029942652896711818201196572509854068152481255247259715901900351686418312694302288986365841801315941034882680969740325250612534372433664549738160296510738446501125433969252191398372366231325811391145554005486713253019095033592902222584640949650666224678533566563454670124720901318561899997030395667101652340382639877753812482915707070551052349208686770327195244847354829270070262426951251543625514114697554347325580008808910356190511977149789312576981856191613955158574249218655480001362044406903686002927986522543724676990069405930564725882112972561799834504799912439079155960962828481361076439394384862426611611460245265519979819781477962892654798124589658170710672186316930403743631145117371179732598325433655985836221762590103534854959442051732596235075826545655970471035454784771550327741019295500206351521953304058767128010753253168505819593419923675742586639471617870523222464114727490138339115735225519582964914994105421538377435228329527074003618668804512892708478055357915844815827608607074948405018794956700635288511507807266058072947582713467306336709325098854524647736249455642132715337199900400943805827350666221192345543479689379055427431518071960082162899920786531567244580011649414294587117267143650252214530575289122248711965221228950918639209057917578707793997140464585003091062450184125730844715543495638574184573598061502802660448412022770732052800018736801532825125308212023126429315684316190840223710622622746800683629725099637799447658211934816878621232689376551074166613516853230283093783371101396255898613552948776359707682908631903734381110892283203710485489204012921818637560464909247353665032188403198612292771015349941903813132771723347797177835317744194427671388646499226518616725558702284718530118669284197198812272163025716150663513456532279916199243641053473370728292827992775529596549458942017555778565967123308873567674850595834060738847404445898655151492052395958768792015662505960958800154528444973582220347385957086667269179658195709590811461129330076414748684579456270548125839941359184387893252503657911841709997791683794230199953518479453292043140843203668196735859727919941153404411973694418278663353824846724155142984258768595752761137166740530242280332838511688405467506012241282456579502433354872925753303720744341239938926996515658251122984230441514005030603189821404524425814314650881307739230305640761043363681307649991674022885221695080725629201376058593790386535148797110955580102214100356394872178581081852586878163710694619597377854131171668307731096959689467227128171575945623439858626908594984820731228055874125526744187158952316277039129212342434216086080585851844587688293239582192235339017893400435446689840856994995238916984628184374067227143689708242878759989780190724874293060340875174814290841305845170399364372862335641489494790342061894960366599269916830277872539118431503869442702638774204721793527369276488284764740935350995123915594105078669073463832132865472306065341763772429598028153248470488532992875542918272346782986175022163973732385338192378841884275661429059416486796356251259142656333730642291331086155245662558347417628218022910556228649393729218501285981269074093444829813978194225306115123914041441230845701774377958385380641384899220376335863102660756022305802394138164683285274496330440243561811183007037060043395624461779705898839296516338898148437592631807122701924151189136031677666661871066731180212632392007130679389531312635020219440317049156922385147757866168896628660503416158053864321790147132747379950725861222372828980542384247533017600222619655635239782282783134830006794284703747730314008005920620185363887528332381223578470210235719763851683722007331438729591209542633801225993852572427302562838052359280423698493753702108951584437524229231287118323485860677345385140798463962983263710689574334108690714758218448275115964183616235532273230425883347254968547778166652326692498210647572849689030765792633093891139225389073636968211993236383702791075461209937951401580616585758640438693633441603572055498778623334216541846903242967865810034411922565238391475744975893336762606720285259907331184205181914207730788855735292754211178893030630261081140754315843256134893076810234863352722634408466388591864518182247634116890997576179399307289017026711046168845928192673569746002173535802176536089789088509137361586229805488620066600455465788463593069998680659891197821808196771247065056423862640751857290086548508076940346790702972501541863151763434901011333481767907625872742043894732767853310465977579939355390801955941814516182604238116362847621118681672188425302319876931153508807184271873401044316584952843574926432244384811343225155214407606437251654868165604053663855687872934095157481411243655180160821622960601298324375912204614773298369287549787467921914391160020988463862321290775293098937724970472554275317661856566262650377188008452326038906136380227722404162145627896196485290076533583552176111428610920139959348923944583071175106296097810768189969403595505773058055750475898074939748935486195872122991295631021561477259166964286679574908523954688928180814498934022377100618074825277150693165716573759841035665066035425235650150295161597713254903385061287106844294839204733606194522456718401835223875379435914414849771559169898720747465984227269577261941114782462235613348490527214632307895031183886738063226531888129298841738903713838927231731756356827440613234365446209511803380895212736247263338151839454740044537241384459039904545580462784784785222313328675059365829121552673864364067479616177098281059220846109790972567640392651379233753812049433913237406764546928746481793377923625718925423091706800564964244096786443273553128020776903762450096217488469095503617813533345904028143573044501813065046046156200942119323327648910491050496889968247151760599525926690153933798855649623529374144009305562578632845881575440024911200750664598994761114861288854443539343159400837669340545813822387202543278461463867431155372151918968524061780476740418191547683247134482836016415116554739189088838635448502104686747716541229557273850212942672401563532905324410439380743569691783188061119196946856001696999017927590002386699193868564657499840207995029191591776446752403716077350398889143410868861464702404025137528250149436055163626639153501679485004407251053188995263711127025962734113411630915268345168345707800302508617767568705328720892267205538378934073462814091751189348403961457487371376463882446175014327418085464336413583388426085797158205474881532188149786756893632543724723398541025685514046377546677471120554402395477767644341228700671003927428930880763278212559744253828985508926526324210677209435446539701766234073082486660465539618262153383657014654853409769210743851668256396379423112147485045712599609684635698473681719132509667487165789526931590025927809976744729553502506977908103986407336531481090621607318245471799378161881213336451567904425818471631792099614329194857885558091566984317058702584388948929456323387706046442295890269258099620243612552760961708865519188684657686700233324334577253666773933960684601974583087724164129043367323421193624335813433685671762238165960449472367485195747516854256493750434331963917528441213311892843366059091937949357881724396252355989175838960001914065997793857556317145015652999375830383415583733596893100500210467040201017848402446898693152959871154020691057951392019502503286199437331860880521853121871507114694916612234830946218195820984866889894403016875963267182195307964169311553180120449341674179637012529836050902776557369364971337715554343857498561743684717307947329961910759896272937404889774179573979097336256036836776107808849686587755287025243157388218585775458558163904586377601009856419273667097269653543162897949179223073222733587364201740198759607764414590994202273364161691494371350662384268353459735936099703891800409578863028880363467706846281998476025446190815473076270162682314703601235589931829450158684289340399501367477421944833019642430986618788960069497628562733999017843231687075889811173658408511364176736705274491893473401857186126210241929489726224445938333779872147776307355904175966852695394641104773850104485591386407369399611252646625123267280106348787790818137936226762656436155093866487311743744471955864853511522430826136344893887602932054692406012269523498707085316247961562883945560943308146790285311129163268900237788040919494517306797910733400086888378286601678460375994339985115003046732787593000789254429820814256482473618789456638249603313354339957594354288276763924733787782622879691691133405374362769057283460861549877603808733088962456617809975290221173218801588811998371467893853010571369014208123074709597420193180129595054536072416439211328875453403016167665726975880759100700245379224372764537252131745201766617693099047884749568080569013805719646014277968717574355230980087625239344059438314401413192158470944798856913809275743650860923998674706950491939172323628857526592802843760648129813520279047556093023962948867126849364009405430296611703136859130082800105211358887029172244751438033879649957000736493028332382358906812110475814587752621948601037879030000200889546185758708414763161886802268230753880351260506394571113857448896924401249234917218433958720119374334973760383142203300520602404113918790165962902322741401037059496182349167315078355237769084801837733468261439471274762766810511086113589471610618581734998785116043422982992063497970467362569478419516629723338696540286186228087744631328345169772946363518358139418266051741585731936720386539838169216385145553190133550935050899570872013704633214785998620310274408879317616391691096955768975390007585133549150280958007896952861717131695285637503881394969130328823456200440167289030101941849649792935395786888554081746619174568754325231496975848548812765574750761865908319094895647098036566445046432000665432827514004444183987886404154287032668745819216956211462485621821294624936344813793712656051226154890896374905018611822588750544327996931580251759236885246556632492964843334322729684695821404049704144069685976521022889748310169224723467384925204221596371231886681795866236221957254215955580404226841820957204748554521281587092129162431485043390737759796033160289187550341716078655474509760048260423844512304751715733367397216802218136690280649319929298561031148230165963954141057315361687284031677609937929478357511436547255548606505365993181951096741252260349943460296896507513019184854847932816639223114883666891363403433103062824713340864000214684703465865825989192702754465279153135214724525683603640687547282986580884523963655062356044130745747238253498754582994715403516716581137423988438609169029974909261538606267087716990160746920599367332240545784461731742750640839192091014991492878830342947634593678601640253483606666501801431466488896753248598324581828359933678022030607587240970163652666461396653605104932204621338460256120566274036566212282637346661018967769140084742957551624911222849642857903015697318872792383926741578325824257490560852626765491182182491001847769010555920052569184648179851111637849896108298189537190343285656257675073899405861573763796508859511206122238257231807518099755640562776498684134055425976730374901995918215575570034623372963105069338208251075623264288399812749393107855738220720020695970925096220558667270417654894769724567648363916164486589811093705226818555376097105557421889480127417696042720618803237723252916094176081028252057483652980841186822696113875092719133654407426974123188392455907697490326013246476218477882537239794586800533391645583609748089785125237189529072614380046827296459913992693718372569209912873850690412504748098643764852462664802521487477024569821591543202362789919105840652493772156976031469129911648486677220862383862880002986582914758347563091122261212750148579308460147377941076821062732007476640818391108199212819690356359258802113377066998928026840963179219977518845703432793408401763687786984236174985293575094672785732225646966448035510577357328206639310361235177340444707894596600873876704410094028046374911273867160674752898197114244194456547316289517717327935379510574907604830326024389474223516133571139343797644791304928503610671137333812372998692429227881482687259337449077307163043378098263179496378534808297787972888347665741324665795486849563771255917136921624164823800686949696144311762639306908807007994488060880756812498338318313189251239805690493127846121650721005050090825238738561355494221029689572909462341805109049601500177157156642021680934645537846392794204182205736508845184437669303204173466910060793227073177566217076562449733643284972784255023520669567605955619805737079181076302087493166149443153417256448255279039583633155413677943370855852648807422375757866348909336073614041011156775460357119981867983119652037355344868867902508843393279861017148771206371884253394272246158701324863762917079027677081435022814567876081279145188863995039792880023302762772251568430334253680613805802271205300067715456186623372628353685551427774542034696951239785594926132660852686177337056925171605731660845120519439037617276895519061234557760164937914026673664345623166000483493379670406430506631185816524316882374126660029654977092680468072632114954657672569627074057903112670099856795864659632061149701590835639400787691772637717893974745960669665920828409294701846389225131778938485108161108523067570988548984216642892551899320621539163246673795591112136800056370231119559345861638228480880247848079993552854084913994695917974074280393010795090411699232029521875063142186424174751505580997013050055720467287961698062883150519327819370336521018598020113802192243701887231147251459331835008156590110905018417867975844338790045045457102140418961596112585794403855659120876263445600969771887069656960494419490513141157604928676983513280206406340952238511273473832710524173567967421290560377592354006280577984427930416262097183208707786219934747764411082192521229744871680989742887395953046521765620473323648026340240062249354708939725962935298287113838662333096956028052719005743901143119243405233870727349492017987425248635963640388334277827441019681583433077614716549618947135252818667248401664210089341595026233943984164283588234019991364254813544492890120275984857322101637752153380391887930310209736287258146620262284115413742883394756663467671898533279767220637975684292523672734594845576440132848560170065081195844117630236992703852947467417522361123890840276573634087949096844403249897071713813719902162067752983259807122464843803633367229223690352797783299121518559274319947544670272645279902498208969305100166811687241643987820226293222209992480901703657920235080967689746622202994973154597907997816289949037236001774665477957908851103799412578951593326314075704372809280005473494785019484563044771630844214866588578340505205970712696207987776332759828857010241021400506375732406393929115302049132054144778000777344949831878195130361991043387654030423983558532658714100496912813411749078980905377716122372543286067563112065591730326429140486754727152274514255996471411875616035321687078948718783157214235417027364125580484178451098131629947850789142419703090443082534193680963755330098340220285368371601084462987171372715971112035813092468175839178109488533095200514064319654294922651115288313020049355289961826765536585818004703450418154647256414240244860400092727469396960570691873967968403999725279017185631421411407266134471626804212019421861420840713649902801950159462304137903597189485972102002719610561542187216562778383428231641751973771151550276971078250295387506860317471782834638378437637645613098845397921792471302807767542563909783065098888975528563342586795076687039250856218120707758457743575104637336136195425622859200452947571925046386882522793318890508560147128868020352162128220407107415121949681046461971949789939975548153697065018630530742433124193201364496730407407462313567688448292686319655996372657442317734160483515720787137260740008092465180240985951018597806732767352877136563823576089516630848740034163933709179085357833677142355233477664315348438048019139371407761979826293504373258103924779910057159423797765594661333566013798478516611445798504243295554983403891802970276012047921021937924703462457141799612983512783713697232078486790786800808193325312157304529163128126035979750005108476249526452341500783765902289178205305634266407493230792026506766989898435932940706075486178146479384836170484317747810349679167132658477359856784215794072554806152261441106464276419131678406188835078395585733593427927734330334225505085181767147981811428097030086642619299623688111786190644030237173094036443729803029798386799599740079843317290496743967083538485961432530939176693138078769384916250869115128556179641515556349910410018936465840885439660739955470817464133557904216959381192300055064331243159040535962620000130653472936247926212592298937317424271726255442354991842406570529684765940089563136159667298462426563202863799819426246614051721996805841154269978116098819661896830529448518861113723821188535996125024867937617044039539405963759568949929944583694815866629361998569674787492439411717739424784028240946045279175161478637479510390087167934622595612201522608723811607075770861858639476016385470853281329828833676767511257705632890529806417676130751090385480678981631633705591184190188471861555563764468149993016280458485504398642835164838943490861094554792841293196846508226082010634412249570284479020886567209766719468168182960214113065220702690565086426746692438075387065867208868857452832970548219601078162309452294111718300774712184557894521185387064012748409259231697378949142867335468063450218208835346528319463819072544948946552099749946771846295597495433114396736121541643239731819327239100077726712346595709655072040989539252232032186703460815974796601862293704692204794453407707802152330016788958096080762490094980067373125254674418261200413674933245397784773315092716964551882037302511962880327123788605866067689543506524874611144352321844802371165369753899988061537685633225131223007103728199655309447042404012532399908319700243739374504525563337742775256318919432492074062487034063029099652405135323711425828847685152405410372637248413346128272331150798879642657669090976776156673248478035576068074128452227705765932009052093888219103714232841999328758184610699674745576490716698964469184854885139608872074415721390242303490551827143878228974356423240971449380566801351872830510194692120414869958431138110487201683132394289222186031188903401208627798878638576317028010553259227324270461565238429608759923970094628167355441909853228977860625707464557815011013406725268426974953830724045666004223034099076464109139497299925169741140605134674618533837506277380656775731755258613253094227681085953038556591616782218741865240338455063133127679594880325015604552877250439265470944375984104966607272311104307860129299400389069482791059151716251493106350329689683303251219671631014377785089513282789274472773628823187864756346213025487241983079747843631878929769951353815016746282434937672744251738371605840562693037218039087766377799385183814101052654370333130366850104426622666644641859880477585491254383575061332288961530013210470707760996933225198966139652358846241779366091854955859668967479215422835372157535466991979268231017087901899200855681443025934186611149221413920234533981087675689993052394848605760347109129153369774790671614037720776126378083556251543059148218082835868736216201648088393622275939445830482970973220805855108550543355400008250871511575727034459065883501808936777290028839756861537670846573637141777049757267115154116250557400006767237652896163635614599135811762906213986636461162105020611903486379313285588401880172553225446877399366920402710194102130213236830220577385407995012696712429865319121362015525198103782174651906919868586748288186801607707511812844078441731819251957445964516873183702381719691292924689239465949380318001699308512715099915045541451415088755931816130471243106444228287375574737976843150670697438635388316599461007264101902613905894123971937849657424641208546118721811759368586970722690489938544918328307100883521829342110362556562615660258960166411832364680219869788058574866410433324223433014009342741447478371211086449740199958070629325862251271467391082257066378346851172452898198438068091181605165733207288570769427287790078485716490872522583680552167158889770328826949242535856325406063135283770691485494322717939570827099168158371064845641356432654915227236762044240509265645216566247775266376296377702055576875680984745431214850666234056125041557367455960446310923627397790827790276870678426488376295441030452180437220136600433990129115870971076006098612088475384695078209900996772915647305482005651554229892755351824955081733374162521920242534505790017077703968719213276775851404932722550975429774692793987140725737059042022197412037146254786380382889861166435267356578499010788394478452622328071115363353024160141153456446377596330418157840002234414042223945539905796836172035396251783034981477828235673366634669588303755343887081938293977644407930037108133205756791325137037473960196778921263751431879371490239359156462302479317999612891711468796196460637013073145169795948759841717804777041921031766678118356176708121149064675223167557506440377482599810751010202896665695338154319125910029697648089447313424033614404130545362449965534228322682961230950162352621936493079235633831700607405578014076321511103081445308115037184259050339448121144721587479601625315320658628063673968730846942750553371757469009934300434194006711787445318446770373545647767984651999751192320862707630376394543302216084647147241991421622126587818975915700899163919593603422544839956649840902858291866040083793421133595020316435734505051233234687477182646370524433734048028331843135234349030620706959076733113797287019948645098043008729896581387561736241644661485823964628934907061404473762357007609245221802229737438145361979492683054219612398680335450612403987319005734382746200821810463621277764994729747697267150647792974660261183330918408686491065853426046640678976871553781808702861077505845790059633233684793657519021070185664028616421846498114529669869981733631820185771750790245606275547560720739556996694353377013485296015139742209931843927728928999522030348920352916069479479010445391912287007128480284671076058304782575810568321610190394499713293798843117640872402320799698676931824055853243523068292245335320989831277586891358212083470973030597010152343960435133226555735813471450719527699804291866796926905869384411931408017383145149889805879640297600647934193116803277258667242262043316040624618037522889353638642043008395326535007217011611323992571492657905282154302643982144596761369768970969475508625406474168435629883911336733892622943758979354539252999751785791803745813066208407334858969937563987556188269353042629286605904742390378257998213555600361053603578220024315492747611648795659445497728495449077019319793712923734444463441663059622078162486024184997775111908879447157294380831830018881733793758696263450835486144895669251956103374584851054650467350062025179916855484790892127163222235934506044197455755907700001168268139283948790799688746945039436795156092490242613531994327204333431458287736230144500714002348918714786249083692987164685915833528231365271650309367399238961676872268608635692751181453578331657076174791122043515450286521855537498020601902522453294538467393290140611261512741842952507861950898847042162648763621675400660261003348729658156164797399191225876567075905513428763087428283677601941028208472834835649187753412359025060590179775592466704854459209708472597332798097346547677287473295143273014167767828011962972357354769413450958924689808799627153489273988800811344305753797874342165752801681534801639296117645958453985849143177991562065373029794216412754742933482624859804176790844479927774799508875596351346391614738855669579003916466075247958987866236238282572424863701136730532620997450864021806350626125797189515066695499991500000070940829641186269354772191514654988728067681764796459029873394941653503671598499055737443647441453474222153444541263702064220843312938985983103067567064224228721277539584617924418177199145666755319356814413930256684876017783101566103630821721956150959407796809639960803997411878664389958705306257148407649681324902432931558041269373098689038621900769677001198504599210240609855035799757190223529662645846008758473181009258743986985348909091071921448738403496881057322435050203514880414975370021984614520167699048655021788143557227284894676658187459547506869224302722579537830388385283759574239914018669593422531870424864901267469577056861687198624518544850975590048202088254227202847752065326015408917145128902436554536850874821678564671726987785093888265639023092442872197361239197405305618371830144020460526163089727079859298741938264227413535887206589960279501010796112133106021938193501628006912710313422227541214581130681279701182031503882181782726436833473840377228396695791490958039300230809720209194118504991802369042589687252415969076521865887318831799542917386463197587842077611848456946937393550283612013604409733568430753033523194901703567500698731263839512277736116606505710884081691910215658760380760132623734091736125075633834203046202284182127111634813237651147062631568805179303083047983235082476264437803844067955786577175626476817959999121754568016701883861354524642548954786499673780950838534148031091106871561276227242675887924608674667484899713613001613465553203576441379160797613568130617153598092174128914238330980761148172820885602986524457979051026771084005527640220480641472294981968704933784560495827949579592192439226304444771191810555860359174369480464540527207488651493796823216871516078648679011530779962049141533000114793863762385179084446761524592183499273662627358579068389431330673064025167460730080750279594286424276179768339038087301949149137231431195991505492234855043634012612476606797409921662074421720591799307981868452673462616745430614978701956256714009137689182335520859468045510460218340622620189061659183284378801083083616000561949915938652735972966933743884930100234735446038069940763700400862153004365517010932937257710712684161354656591854458238340226703780722783773343876595644937982876277776855231671734057692987253548884708296857995224122887220489642849842064065916775161641236351579952962568523749055902917310462275610087370799216388450869477714983594844191218797782747906158415038632268965467831102007470980631383365363409226678901329879372782132595186020685733786224205820750999333695915087413711352586298313098656112347119144967604377659824112588432338552316299187303890866510779553934589011316577999243192334366392926304644521775137195633098134476048950661871701389494071258481064998414368507536480587413308436310913252277205637037794168258430114261833467098406466759549068495808482792542582045886840499832698524037419737131655529954438315208593325010536005020238845336908603369569961670378059475964528659004176922148653041308126895396974702242401192026080312815803555170339866326980007007052217939608849081460910283634402355471143300468698464276233960013587415928361232614913361989418947139953521874370068952201131876934535584203715827686654710140802320018631368980837467371613467909053515199199969719187253715526898256304604854446342869224785144985825965157756875164676569604250052120389352669644325546454567009660816274139320245348094855055892697888634418635060202793057658851297523432467696840624890400159887631023760911082355650203178861764853706559814014302117762135335380440111491525968874687324287930446518016952692540021619416219712464699601696094603956178583454182055979576591343750714672900163275462858099667983166931877750412401947082792483328967949357617864857014709193427787897543716657775156838981730171603763489922878067684709540640011440418489831308039742300621479790379332728909735108833673443002924727761648467039472191595972320580111154043345928930515021210952688011543678617049482992250407193393063551487720999660752826479329770167040314163910647271384971820083797957064326685958886697271851974841110410812471241982642008690571817520136595636024757937796916988943034185273440335202285114877769850865054328703045253272849755662740751908003956130798498127108102248259889107876269383522007920735215105590146442732169969171815536631749065616955443103892877432071553929308730340506740463171975593123340516695871027105927572699115646284650833896715038052180118829535062230988925644683822057968413372567019302779901287495629832176821799418457425165727668006153601679434962044240796477966852946728890852668263823790833547112334016308663371776410967210851181668129727939684430272785758887913043903057227844598417898144800807922699007256294661590565362256879870188220665821259923719911952912447562868358939093874807774404079529697205704590355220200795574326330767727455908975375325979281120806392426463158348283881800853927949910526316296230128544767951091875353761901212954612902684663061809410862399574333307650447414750691860594532197640796520990097125306923594978788577959784245905290853874071421075012428703426486778947296943168572320684437033236071558175504923585345287319662778317908985243117870810219239785746390520115291605148929891562229588891147091025298451073373874089984937201909325056139616231438049497523613031421089951521420176926128047419364019513542261059133504614657890227307164135382791885807461162686987629196324991110875702859861901348284875771114411704871227305476247471944701535703586928517199264770030670791368502172106220647632400242522993416075535525995249756228828306487030332480922966477107699918509980687434921126216533710201023572561294924466893239349833548563665186453138939561634698201024878433740245182223674149041661083101730834158163012118276905692583054877061770965766025682569962047102315355815941638890382988364871401651400213877800806509305264430141043292390978124536573878274379535450741540194769004761181762840543383070835283689295327955664028147753252532029766597812094116225189299245996039022329139064178113880382168468935650806251231341480509850437015329156068641649704988752733966106757560291084038487054003454804540790154419201875354004368604119958072608516836038019118359915100486966147812063277756595073521325345122953055407248422853896125361658585795817686488827231861596318290156028593936609530962486638747841232655760069132844274416976703185055754662508405992969542606747179606998344009233478339065031631847335979743003751375427528114189849961174398229210284850527243154776237113976169186755880277059286871620692283866274195767417371496694666999189851081141353101263369837218158261889080231701434210031256231729851803754597223200616508594214591538513302590504074747892019976062718591539269652561811467678767669924349986601333625515082861792057632266286954295274691524722909040694672763139482769240320108375077715960022924064085579057664385506543576526615080782031069401735667583555513510170889631160284037148964058357048823170141308629254345278672320309894545061676408032230798808482274627150313093962864334076781962651594603242280298271478816749440781795681947992609291307506749933644859990004151424058922250511958407373739561433062831324450675646215438700633554154846942007908389934766512804787464353844383608409362232432202367502775750915049379569718678489817439822596652679222673123948353565896785701085490025987925392520959486931415134438068029452743133254586592723778673683647366472248006612844875003881182478615210491239398653148767188141481672705620811769280066217236544903852430502064025262691909242915648012986274271898410821319273796009448539101344115834604653050645940558090714635468928369516607557110472277059304329126622933594043146764520771516316743620674550518715078560376534371533968009971916999216934046121292205829723036931307717956596572239716181811865359348293671365799264933649776924310559222690333115012044299277042166625719149732102011305884081239407269133970089240883129640175288305546101059069176308772047779633801338685145080809995099002907862728954991749364568836408587968509927827599033422696479856876928687294889080552674089488105087660671176279105522205285817662970502184983408631805204660722882042578968406776992157164873395361005959677408095877439402974609650587989920355726142529453272138430323149934642841050231375162342519884757202094929747812896542151741351575918366349903203383907542235254331290854636409719156114547164214824428116471720177538367635520913432119154158173703714394398084466036183644866582390376166937394334361270323637281459359715217272979254544155682515626438021029575755768643907341705335900167744045564066443040912113888987627096730190950209099626025596269814278162131028145265174296665539456473719450131544383785823067513661931061838705630302262924801098518061461466526680855304302041558551816499020358445543010784759980403711750066376735465459632677660221112905441567668635219247693652361693530569099658700523587426259262822386495375825342685477594447017703577552383357521082387460918295948412551609025409962636085023752673456731374904163796339497278061128277536790053600032702185825467758394808496462649606702994557252827917413248635300588611463962680373986314224582861369427331225329669023482877317794500518636054773359036508050137676187808384005483836654692477412120779127341114079406788606588296058530580623382070712935653537602351251341395194825243674365361609972195810299861984632006565074207884881841423813168152320735786017620649921201661209201998162644102517245369980280670620388752303013152746148416328970820282915569861637009483910525663851207792013308812198688993128661021262534541002848146144212898473131235344067514605568734330987579720945953470866743008038267885482594266300530971918521844466642732748485943886779128254719136175647317740071888657291881667948833428614783113725032279991472518273870438442377908226641735122834064961807562960411168759868966827309279390561419984104802942086501867859455533398471421609905898629991627829783732109938773125402243464836395904038897278483632121490376253936008137494826828826481524460179027454668299165045002100720834942372519573186695256265619217462710643414682354606302755010980406373568714587435666417510458328645116676114855270998981682818229523249751706063144071089190151325826779207739455797199244162312622685106330790313803572411578173986421308235284970498243949688389875685720346047631253593121423061148642469085572654370378290969953337896566870342517677530391182521326377183069180714777597914371739687718866606362392217194003961266511414008714845719316731564482203417634975397106446965464020419852934935523016568563646316229376728387562806217567081452104881971786158712779042453475698599038292467282721204926396785350322297104105989272628573269538517937562701678299084454628289112873962778856099635800694444138259083145330004299453924442311805149139703679398511913078454726743148755611734717960004859015175379011359767238608890054171945283261466853738471155166499696082041759782148405531597230765784234923372235360611332145755762872139861911107611775030239924519899464600890423286384104986225420941485161754186405349104372936932886113714419773576248975887974839671876446106604622521814352154724772215059941868063378702974002847072992749834490383360318143899616524248630567172153212248930688657757697618022439887298847057920193145833566619414721331308718608383494142039625883302548664552529448998814106508667100671941090333906694691755766477555976028938349195003257707391340272465636314149904972447283837681664472608204304622078156337029284950896032446425014239649271562437522014166298673579128526032750357640644904531801028143671827594782326191699086750451846571673820609818434997652672886241321833107423199908783235282091654809662972631382668236573493335565739256115129462069120038226557314694684760844803670835497236777679267810258077046760920553654506530250011965518455180746576592202974442409659263932510085521039631602484570710247439297773451712349829475134352797624258598422818554584099618782772050128295146905956728760055250725779687949453194282821565910005057047113567634106467482992638171713336004196358823055055850145174904343998878662861864925503659240417426166048907509428864746233519953597392593813275304592090405021678925681471400132701390245190636249131225784625383455685619774406006302862153442959871392098821271793007974514635816868856254531269123565964757877740976776632471111528527607183896232099861447840381897821774507784181158967582054093018601825342555657324045381881233481555342953595438928795752291018056248481938797206368611049628522999782786254573662505355055388820727768962658675615950844241833181136508716633951273365605042605848198847153868921066550953264760842277978805132925564528990660985896597767051485229212821037813340293605107980598768414503049780275830878487828992506488772571952084213296804499125242126610192976848207715098256001345565468081669068395171613965249006559411336040948926249551932095697416300965323543269286040606358522816105976333278525038872192851276438609342593179225197273530476041981522274830936547562700872876047783179510186783793140873805534907681705533738857788209095053114111118304040996211779692905792699978030286813103476512786876391315209198618599667269324322607850735435274291848505180602352556164949499811465558165967007215935123783033271733565125252920081565471913759390096670814302853475849139808141018261812184824142377948990314938004472832718165278297729685501913741843390535668788559072624927222771102072402759412837906951599053731129740914892561780998994572594518217065793293716852247076151232661609322619718108992688946095037053451227237870104148098662706649447169862541124989974964185985566948970531960388056611662327132818208619266160255451438359094095517603110050115644762333687214243122966349768042712964541780884731204226652911260144505454570779475808456588484813664540522999568039274643373659844683961103455080190731661719603717043110541915327756623377544963843500801898480531278801766831948659525649901344134206883013723796198851441239771137829911579860159378149492592750189960712793977860444108396270868691847231617506167802874698535674074117886360377217007702725106703245372287824078322149338164826376066664474828238403504861086627591611234351492156894579134134007390234144493666453134911475870887954687034424707314489920254714163246063930924598109921881032292449689449909525943618901188687856884623174472138537146819500046355299021540163683212130121090818804483733176128093681374986590612133781459805138996768545295783518253064842338092956675369179544112097009850694084912403747755841902053676122304722005589200442336948577967077995007062098060477920761220759573699314258648620950795736189921869670289783210407218364515016813081777858819760619214121919383977139853780382565195852646789042329759326751289247061554115121892726921130003146378236175433845135611302757059763268990068985771122313618604416155451859130903262142373181036777074787082902309686042380009776264587084804293657642824295383572472244055553637735904337717078599038356767686716865935739941675661645245649764041439158737903284415928100961709063467779913117906636715250593661165972703471192432675865822520942125229406906151634876587995220102430321053958947262200867910788948342836810547323256665750193482178278014038401048598391956917383640097783426144526470798846172802326493675665195693005935698601844214575997887862161497938166673748092577580636280943672501749151894744124306434882391447385869662478319083391520167299218907388462938944761370458871077052150193512151355274039236609504049481171956827562316692542323794093911190229650244417534887187721490274125579468599398351529923606925046064942383784285691831098195079884537330408113692764477814434783039699062154317480491562822428301998025001361390850473739016114712460969530854605208884350266917293347743555162292859477093221752550719118193801572044599872800230100510100134963013734923928465505745976754922606467986024122344596587401014364460810849332084692972014315098360332905589292511405643400994884845665306730956354646338577432724322923972669390910907615475700635570848552730528856197752451474531110417509005347156286991617005093597986755463918012212737656658696126544409404480426755714287123056574858553715854092325497309467314628465101079193680162562782712742477588224748647374515485551562421918560775945334989522817371346319791689057519346171100356701723742032000677216269405644343619459951890800340379432690732526837748924817006188020193494212002465504672114846000117574747981058599980020718853736370228857085916843340950987093244428612459484765252212105169950799870836770836220451422935348963754175588001727378084521512630716473947403246313650126475411341185862516968811055354743235816304254465382345727318151580353246921618703212519354478214876125503981777968594702611209655345127807718686344938382698079463690618793094507576754129200446555136928568574123828681081244067306769899136330618921696865808956173371746294203602078182475632075504001430635584942128073909603170558065847189466116692895099768308466012966099484031378933649682707727830038228001811597418796191330894918206281789871886292200708909862374461811189602438127496342429130148523036118548997398811564976956055473278869103734074263500648875283404309174378791207844798308063551800440437873694432158338289136256608706945608777472555240510550380000074594397305747289591799565475540803407190718016777715814983468515508822284224748122039239506332927549131232403957609086000648453974446290780896025418954196977710221906332687627499573232290086094833753506815781860814191998499185942231554716509880333493151471805440996406143520188032409110759219035208716868477627845550355131068771590615025184555735730909149758930712614945706887046322718573000367970820817340228637565078322304457184920893809601398223486220430001074834685046106514874377367313903207745108055901404501835490978456382558948044956662546295723863492098303372456208761612763759571967292688106435102043695584905861215327172867685226039243579609697354216242552231374486158376424954025775788262744018366275630614671495936094844708684150850879437262418200761209202796202577407712071985811137481510073358924082972761731564571276466839769738260074369922940060750759666097774386652713462296931283353714601861775862223385072231548160719620613236854378807449386981533089364575197288779418737744958782351373659733920913204285241495937768948042947479232558877388252686854680642528003382142964145139897581918641193694488538106202298936601887934298019096028777836246164991559378233341406230402449044775795050327404932802358629549775446387827772978584640805505807344860589733122557695123565075638820899463367329565629603635586101991776726677072539847650361441791810446483949306218250212335978819207859372350085503964685157217005540608711377091950314192525896925588932078643353435760561034935927262719158689709985074085530631518444038861376859830557314363211126480553418190865689626752721698667707511460700709439835752598033696350001957345722475258640133901889894672690638259650471031103571362538670988236704085676950282398378894364241254065785226075571290722933832005531291329376903011803410113456655199143709757590431014258062198870814726927792435699966416955026456040373282005967433446485807745150739104124518843730717028549642561987319116965649289257516203680588985948535620319605110392068052977524954932985059405032606631850548569243087155780991284940183939968482346514675630141753363399255853607485234030514651501588188613374590352439110178577506450978955418948946025258209179458607230038796427007506486726038155426804741049554230529690306408184973964461704676145000616832732196983050430349326505641641090484531470660443621016761266288004143374231459774419711745657074483799069110738918337203798686485501144558700429671345053603481324096320320063385343021311444184818704333173676067094965627148402152915431931776945626591639078339404950952674958736358259273465008777007272112118798991473905143050261360122808988546343447557907976379236562657580976112612760246384984056390997105910327867443056515435032726493040256682079172980583735528055658854089323762727584414878175346380245530183031988358351177156329089266595146270190069033915711878431933594394584075377151548323964161233282682022642689297491016609509084782435620813552553957429229225944940217051296926606531466848583936118619421733778368118350646614907395506773432151746970036469509264476010387016198529436863787458057559737070105955771740794884814680057995963976098035766150054764398955640656342693617048001153447176890140159128487523068952678923478605629206777375350159643077749753401347903040551386875168981957443079667159354745508029972133319787887671797241695853333361863768424077282841753539897355838010236223438576166539625289789519455972585244828272189807003825460151919353939862923228110185020746358350542594072256930945003179369493050798338445664986483415770255377625809113438776328505906250808587498610920829973828127873625009457072748772105414379753470301967376626035020874130906623636979154566605476527615173690687415748155942183715420931628496086296588569863457342490956307294138988117487033516889294219239388778300614799993923769178519512596361594901027432677727762273571449935907115316193035830746387478090297506457363697730502473934418109046111369586856095415463980294694883207556045255955130060993827920984368959028431146178592789846105615192000350809976412107121274896521026346633830886424192078083840372169901078326909093282195824043431556637345079810995561734032895655870507283036673536849218326836020842357056243821142362607986692930281124487985297440417102763273402636205097282465661575536463953765242426163454315030071190214450973660772502718787815127350232942974047568945803913309916106096872570919053663684081659665089334168033288233886816855658387561928781749527003811880290653224894714376500697511027267082701339646882864062827529277654972505044256485835070821149900795125102171941434097305494609523836812444906037322775722481883094330685476014603814581113824920687078716170892708025856171463086170550981543411112153231498658117776354139965761660014603687757097978721887078703856277116498595021774682495084127798830213972056882713260591695056151589456645557979878557629749779442938221733052883000014253123007273612597947043199333950077277014445731141910965896510526078138226000123265657810878899590504765617195662232929529461148295197672725617104095528139568509114430016996798701836890592403489921985195358050852382854976489232807200611676586461588409846199978030699456533474356966091521210686547132289585021803636907718093178890979441277761516786594715200980971567181279749685905178833691522609471355484320391514367808154960641339052904158685184066759389800558585948011820134902263166304700256264933795742744783925552855275807738315497487893566914313092723637428629918811868525909296632186272460708271566899645914910670618655541480837523937021332433802409238184173590115536505687151369600071737706074302324494256719592834865387647109466078082327626924549462693354910465520504408012841280369933775262923181502451895728231078728778771864784249479205355080221963960183177224639584362659105143872599727355423706847608040716090781393495750790238887863422226582963609719612168890891222387586789874646468750036100611633798950410562115051396444116792669004513611659412881328017040110082432591704084965105431229507415245090287880203279322319644165286454773303216138052874017448510678802884031471549661372989322321205892936588863141786184579402830735182885183018358453020805297842467217234232571251960328688377375358610218993098586615259550842553008144878037279651685337712779130070878780340485211874303755809301779658970780207391554199842196025610570833482491146962396175016868614233660069599372635130002562298214263318802104364856313541910225306232010812855259302043151984260994492916195725647717056742794553985903431950060294664485523865306814607890515809811350934789330087391090965019173974178714099992311502424913917490010394452590271827983963093159043361312551955913032742944195354067619139977889499167388269801034473317924065581770380239889913245618474515585896965876115154159341791110527958712258875188880854290765511805891321488788157130012367876415940099865581283284889447955915192410999810572857467025344220187424068784844829560705823486527567597271552088495926551260741281157621227634507284730017101352081038425713524519329477219823631137373070217873215053811882855875298188403400580540130855728787673883385448831746989623850485601456848065942468934076726403017973978635014320138841390397193445128471981656960151614535620815313021700309285855146708544032386182470803261964609846512396040565554881151147502537332134947589906603454349623963480868204387577561042582165226033817746429675429296400541317242462146636802638867400074601767081551000921353991158100790941827622853305615444492467968921762195247796307511871433356084542456136965818366223017414437954047213393770517344201168240380456657747742576164263300686459042381080718044921457042362074975058097320196034700777779567536303966647328736647725037201218771775412305292088860242398615387154658077016111186211813263254784156785600256747279088130241096632372266283512408414044946756595393547310760060901375003696510016253285144875359338711672390642403231115910541375963503003805659104771034479688144666531034698611692324649176161022588958939509556023206374905937184583511730984516144286799485969747669859667507713231406147106961529863817483804626559157786040953087581391110342110649377828711328702047229645862185817003039159291162526349322885314000020027982579372403172492327608968752024783161200964135022763498868325095248551580322759477936300121562597402572048574502488599233847665518068735144920910923456344568314678956459624027977186927735464929332561159201747627985288755392831178875684706004942043479997018087868324370378484128264330417210744773477535990653812059550203253107794792293691333490997411214518689026718708003406913715799156727401099043572319896925669742370863045998251829326125076092234316459621856576575303116330752320105412680612614092570781374781215454911025249082021174041835547828642689876758705361800110324294934033636974140469696995256806000921173886158545540972300921653486332023495958493377632077414250960226232347895357983770204636578296390417750588323966941944411593327681186381245039220846572097639602462938108885683794191193475619210526267527950243934491896596654247754266213272491732320609562482699637057606999755851254921116522592751724679281897380850520505826070354520984441486717480904443371121993380339415842213615400293016142237043346603610646678221168168167685648226045321427328690689998226133106581770402892816563987908030536726813478502582271707764294594926615866790006266794850907939521271252895909109601098042947781368428181648665480215583050460369001376633470841519640132783179183131332374002924882778200392023455541284677676736962134367004324507422890234838703667978842173715863417382922747919537904582975210217546102025830654618087572418986462061662705723708729748342646411737036319564125816161840586954064929648774371642346037550754023292732812366427697369113660451172155331807633905989073106338081546749763797537417653042625000116371580179834719230022750958362833432569062719277634088987601405879366252469793282840277565006090635924545423350959245998038555521425533391197055112441612992950362368140453430344991414635843636696884878526666885512422538509063991675064872400889759577640124828066072102975178730691636873081466263776858833531840115856979301382302290995743521129848567266336900709823778239964143068279374305548993315560383958227912103447442363786358729241255527643783273568421834212050959773275073648924673101492535689834676819433961379099806908988282985174261701129788177497098795706019075473959240412528476927484102546360517177936821526077289045006852433821356262281576067475326459947234946755905393762190530274771099778955157236083821804487194742027554130474112352151775684728189696253842416905827487024771336054316567644328690836088840420455154900666196961940443554029732154235083978603434514584427783765950678930135076953585873655639822045470682730136364437412741005028862990487429493673631265539629211444967261396271870459819589613516425378757165928005634273079371910483341886317058528673861999387073857371943953561484412226856814319993924604398289603677047326989956426068536114539562088035599605673410375374671026233418342112610109939620144778306895892487333866970072804503449948857970344961322136358071288742488642179896825031830713546124595453621931931409069359171960588660041647071482785220940786264185222769933564988336172389821471058600287337127234679669487439602750778394351978194581933652890908878019175985226817747171822206796164206337173284305671518994116867058837299780450934332931436631478748649487805147806182800164564697254654545051116983995301189768655584630603123960726966436290086975637719715925401899457893103848760667424798586801303497384562517285336962890857385276987083823696657842119822602135118174552163794885488914930354999101318508945774433402880587440818122548008811846107146802531553957805805145579877342425557987984386686529813955007690465387021509861883691155792022811277664766414507125511139984020362637556435511827199814727544186841296685759890666794086196215430343064855730719477244735261246783674758808749403304442798535856398578874514062847464977947403524934462333747916864019160126705293921215244695956532913253671359414551986688353578024897266746471128601794990646955933574883522196924908571440174104345932958684332865127487268656150565132654874342130140404550174024469240222366399876684195687410198388195060700085227383520686666387283267797928460838488707414036790677124377480688692467165067606538041303625576618255474004875016803620316848122851135746013876371487491264693590719085571099695796957979332410327366778769802920613368422242969341446609454286044802164931140107351788130744039714261751232764110191429890865638323820616546480061353131971266168725028127126310446346061087504775289917822647416305907898419960590886057749135789016713838990480253718142394961654198628912534820812064881103908703604058510197988408929291679504658106483222840591671842776905358614345003268830027995277252193870259132350573463900862992003654308942814151730294427143736922399818702157583775290452112922030758079763678307685785550664433405378755742274605368251448054482847790285404228892317098737658629019164222277988098480993154037169023844184592129481753454820443370744411407193971422823445894838955748062749817411471957534765462006246374608615511901896079189025041666380669151244776374462985929229735436399682439882636401632993627086944265367422839798911058441017979710364005430434639896653145840619653962355397437901254922677101967785614708434109122977983954057165400619347537480907699470242214868717495009209084537127395806697479367439201092085568724507437373390164061674156863461718582030107868605718315135942446600633081672288427288729168828859562653318870636197978046302257432419486488059162116795002389819683055412512246537318085630751745887953874454010873343542345999971667789485365054420457483968055523904584611791709357797731930114124951838863260961013293867477424916492554646301462832534854650549582100523168473069686147553035360255757759763185034941221445457344831471223921925653862801605487726205766973193408279218252773954684255415240239052583052690492757721320921656704994281867927761049040331180518620395224394648126048041554515599021670698826070408786282395769871040901603352685038288084880880102834973582819075712420001655180916389420620401303731231637628158794813950530839707619022925901639685872647600366441166912313001859471198109147249308570707256068429433214144515569273120933079203739132604287776721255136159263164863103584480295439077639726220086581343637451372690457629108279655774656477455451992400659237145286616918234984602812798951210442972578374034812839000094672087000842947549592062270697309658439990925688961933115387465990559451953628493290558728681630871226173278499563762751953008698076297654114111960105325463890968661679175282895046332489993660630230131772787576709627982204973861970635762990164372292141453320602546834510868707938002812238302568783787266088177883595764196780442324265750697180708940881389387336883549095673971500803443807310787354331115383083570050847740029216444726615860453105483996856053525673737732284120335249744058912980797726287070464732389986400957753954706323693361296735568631811130788727277135340043037360076720703376792658897894916430134899412037471318669454389771184544883085682553828592050386383592937805291884502829575750017776022701342574861357807584113624879723556443158863925437878100680959000557333677139072270250657780227908308748959094490091353092261612536690537317506824282150579937874159168480966210229329307896978481565997681016799609248010046648046186682227639719462042626234771687898459806258119236068697908038202907653763121105622862653193069701850708430171132885811697428337017960024760817855688646351618686316681526179519755830384611316092229480835448796717364965218945763194753060093169254783275545194861597399475172962129792379056909950567292242925835348164480369689195042575605148313191079144538165886227519321449899148776280554005646882097799599589744983479082809083600258701702818216653645209413338923510544814239767746078847794842743495864901062486692972082085552809538239357096056645800425973577329430410008759700408218478857286082829322350166601381572495156938735226733331242709449623745216501490432814858748051209907604917097384620903411358480036147073455584366883116833397532519536657452352724472189449768743317708218321860129530394560212046658806173795049566312822155776630595363993304567735152988170008691218527727769198990185264459781077036360558808188301237568804957739706834457620331571238310936122958837402148350020127158195378813290527461157825110779224903697707738635178354873204871209653253624872620841898337035015186977055506912817546023645357467200388640168832952713881162388021037621589408808416927224804320794742558460237404441104072771355794012558456143702900061805944921294354903822098337947826496213180726763411200749344032192481744314346447508467011051551485104816721827104346698149472786291231657271055689998901026845805464928205139020659186047047189939792643651125159161941255933776804937774490043170438218661913397390119819938214412814983650723466264129304411619459212977478334812600038947271198551543761468305759805582290628086963004955447186467591839880325401713404721066584173609207813594890733313734649864971214915609040708253950999478757140807005838827555988380698544715233601356942090060425540389785742383914645493158160242274843731216078632076588385823130459713873363301537354736457879733042495162724407821141816700397782417484352340939934597681196046326720354498907732717675761031626832418762318187399317577967726870801441747056447226335385462061307421029102527790817808566086355780944282113423763343533996358489161901030850082493232222564643095210625189248916177622548847722292238249889488689969611625999726420959670168778643972827057278259195305710405142251248966964025596868162870137786760955005895731991275823579847613036919746238003229017810635320802640395121775458723377976972103633850907775896255651011077602763013366582020161429569077716580059007216056354101587712428735103914275310135591142161726185416514169693651311900880654869447367869559961991922066660400607583829442697043021133027168083878099588444619963341092876484845978269267459924276241296021267198864480996579900393426053572738623943245062587273607620622817068492114564501286031931462769416067451534293296661838094791770531407414717324197666129425181577820538719779676003689547153689079905954474068980798892789446825556218848962237183474088703289397897610348311824204873520079334971396172456042064373537576868360318461713828508444629574859232252212126117247746511074001971871566835400006530482582635936140381416867470399795812061984111830980469446130576817067687586467677942872486490258782055649353680568890091857316860701910775358785084004188994024278114601557578519225796176467225752934225629819917449439302190607881559646141494835173819253165932608082642453602432757079573318346306483358012075102190288621734751140937517562943428798643475432906875504826190918914531902874843608533401306311763532871133826491472299811427492843100662328490362761346799449069441556523143773326239295170693367434487001068882527329086596368468919271569141009891225425889777977708300906496345947532930634060084680109109148103238525288793485826613878035319912815309013042527424526866389430782756079992403492280997766420689522479526332010272286789729650565841815233245099969806386767360939096842784025232069586336307030809372071821996027743289589871351114847066852139656540185296547130854036565690533614634928067457425254777503921851974928978780471769858939858349090332508839382575150094977165919443388191222658392615414972342864600267925594973642425076893313657178586634047001339165680107160381699256572982966853434384479378068100150640960701140748545769560066571016779670474142080164942798816047928228590185718700819773288650113398508845971037982549187039462660667295438452759317362669287852052384743641401015921975378051590968348753570533458018826078669144330055393968659438255780732847304787000693789882696627172762291795301377140828352220645791148581941727098412724153213053633201922371419857630556742706647614869620306449767024842403558158827500603942999112914320950609500919787440040604106419154161863667409768435527770554568037665748828171227073462272798030967231260558731147209537916594968526646462531680905473715488861535074200741808228301947128882420714742786341255390782357243357047810995843357024506097097641552136402152362849638227972647657468552102907274500677687727324792968737668099646751789812890794246454767682161690607265504184659846112789795066828875453182007597685513433856046758297930859929585929441964428814618585647394902348720870286937165764175367224665102389285803811637882522423246705634098598063735886806522840334512952688101408745019158591851908313924746647403295492962684182713934239955014727357160724951783809053435098113645862867653905817670705419370471014360022215126609775786439692619523614523837333975140497166309499810418603794950366695299373687601314452688953177472183345945029657408403683355224444123259867754809438785029233024598532086434863527243238774256903076055263082747738549859116763582473239134039007998927831775441252656558137422977993416795168883255843230265750445813889473762704850277471892091698773390983951836968573579055700243199378766129089184976500229420802447417647292096422970113416440785099237874595959256092725926621196806372085624262715172513680792210771991650522877408424504076432096071741255746544225200305820527959090252848988298178457177050371647923432678448114309965370074017613150959816162377132889452547237701038714398692736841915054008341913707825545650033831846168145570023724233319397021359848320203331165468735194470064677080807492602716302927104095922000393552481357639601209523047683872975292774719787389274979989002922491424339843157932630247422519356438259616042791044216139527498227041021135612254319548412455215255618188320940175913720681430164783875882688420732272523644656391785244429198636963803070653841309677926099922244464175661715632343662222131564340822886042252643288043373872861866519068929539956791178686632354838310461670671220166245410908509498064902410361215085649559055507895184078677447521937115920032520703327426972393695195569976315810160385102796218349011364367357068038829424334220478640209864427794322887043667672003519899526806926955279811071794954890786949045991000676984760225229831005216172981988353407532345505109868875824701144490440411062343837029821661733951738057518603183615914458227503998569538266600078560710390100085234059632902050497264334170257807111784018459893455697124510100146940172849343442238846362269773903439001283848764458915438665375825491048471756066554841892204764038945336413654904833057040782017602942101395113416210252729553638108416746531895134031548900847495786410075410067418382659605023179711198711135926168721263575365614832570475989556881154656105462379598735540026183718421593401218150434688866726467502823143367322284477118163709579239521492451744679861632469781705635550272752547961211558728162471017032358818114010827580098387752507758589242631383522471441543887683815322813017889179398119654178792861632351258668857829914978244627041780796104234200943072871867457938675831342434025912750535684928671410611428710893977621532434687212085728218685765418787849255530050580506789072546374669410528702684127008722234229058514273703335513355883092964658258496462248652801781658801725124776244239953066245882947494788246215979108177603896923093620204197527019545468490151216533653992114546334651743733866321329787408717989454512859792213538914340788553203389986372381365857619835043925203647281890415734076042035097672976967357442445115145577840933871931246828657108977377916830118807550848105231605493726999853571359877548240763456821342538111516618238785470084143583503208915730834181311698803854306812498153367992153764373623770893589949889418155236547220138921951883771030636943299335595901662396554300092527614063791583507281471773494685507951873359669439899596242606618013945628898436156457028705824662393506533581138170316617966347774198139158536137041713094591679366321682438967122909971117058974054113651970621894954994595450127152474568227032176217014952684760711854749565951017031984484302160769881015351387683655206671880707333118461459867966419314973511700859351576371746448762058068750074493387822343184356556630424450280952878372048803178919709800858308732126071493976975303655237101250565260000843044682641609905410225203031459421597306061966721866514341351760083322894031754439408617784435561791941153275222514694680628732697255222127901072398698780035892122775598864794624011123192929103071911299869573833074628118126489091993403105881314985752940553507817703375663314241755881150836229569065441990055411182407932663150189169083815198365356239683710011056074954956209536149050347939004475550317024763551288855719851435313271021781827219257313145593823825038887662901188285379897479477963865951202667399569173040523376325433371179531259580089097498785140679746024182579404408351587894867494956319077555177183196444765112891143141002504637725838278467370836648774704868754991501145484852222111243607988720442329064301175756119457168256311754699294503671073016860598273279140272571776689883632611905683195302999265171311296994382917708680476661131621987215571038955161589794399275502004007567843086498821608156193107652246753006311651870774885917033095625687498282436836000306176362853800645444189475910753065826403886105373605605949895518645467955133577142938539287908391918501180601167267989544647392835766530794921030870596388236056838327928728287929168965492309327002290350628946386628951403186683414113085575140695714701038972792242451895399415525407704431590415369549102553548308635285160999395044054042756113510229246407853393740714421351061301921590267426370163799389278014254551541707666370706241976831222002801118161939445335797663774206438273068024228690468979708298187953065889280868867744874707066902471409777726942605256896391612447280884040724451965763952188580953188776526631819056506262660581064327157107706148259324123563056880402559393120170468244134963497318047244985570559009155162029531668192538930152085811886204949640889109166796722364597172157892304438067903090690258960411744479246271508230892268293466744023836885062444420476579796903378096377124015862330840237751932265171053938794958744118817359820018598829628771570847234359433973458538721136502920138612216114833096341560901428763603934930285924061820799856322532628455517799487905634816538896295210100830021676960495598087661951384757989576374827590598133351016167150567459496738717176276407971806408157947179844152035454283719098985442079368466539861432442365709704492724630749859062767036100863894329173362834487210845089722567546562393520875398092366241658625188039196277703908967323813443009155311906577444245118363528997389727014037172072761273016841922774512094896478010592701932669125968328535138006013793702759562894748670356636206209017912717789222082093724869530062947391519080986158008799434554034711021922004747387925107441150691184961487835077647303274531772798606573809501255528340900398565603796218908244787214328698708670693094225465547752428563035948331600441584221791953013268086510538065311356298643606436568389290233942848672285026806381467174746940786603445211267456701299387185459090683435719524431910834153992848379193989648329246101589792181856234020164601496403322665607291673770946193726735572262321041575773493461761211433170660832299697587577126404934929172915417267868339976241449053835440207164344609358474352864648509017291701116693498779810241259518684983939263320247462791888497001871067845743769934119452051670574783359259696783188356224583675261686122742990737924332199408507501286121728984366986766820816062005894690167129297532039536794770602818837665201236745216681962775717643882399561920604741613029034043153572768829520848888294512290758569582569411399627146231912213010042112463883334563908670082805914252104808890584234072203644333617805233676130680301764284457060731831191599598047128054378418965074293786514838895653512884491518540897935285169699915784040066824295661797347385364081487195776804358328924882903254320129975885700229210863383948646157286005865039621265540719133128446089863566927426417532302584309408071261530867157597340498476327361657757490111766827525645819832344091538072656714920462695762453864018676365079366120421893520548630277522777590814594893637846919856139126850180054298849829332399310221147814346947088370152181536262215222397661217931528935636923410849535678039665068133816249232817287896075781099867469665982617272172064956463659193892403887951978884394027527005708510994916150805144441653020256317018885790929888111223557038787262001423535249225427300233505567498033519274988590720395573821451119047893240966366797992404647929713336371926088152607171581373122365777885665645631713291600916322214810880897318459228587183770989451152877673922189946449142366116070647842782164196692055880992942907238892220113380688376226515858043709023593353684326592094095296589668012890869314850276124454374482346442538177888387696628746349371946381029573939518961415534065142261411817259898266198732828667661444187457371968138763626612256481812653821730244012914532704792374301973283193576684228638002865462454297514867687963949473277750906713413415114916974345580566436129983665836552654358682337346337523601419929024648576219126819372090948168082797101433278498169392516392401125542650797578853849619836011156818273740572596113655031239071781832718577045491674383096261502397296813030480682693980547309459714746311369863984677015775265776337862530241806664238712948749517427689524905837151513453357604788826956895631809983776143371195946767249160852501081774453075841223313596298621647970129491173231362491557580252200352334829597990071695495133768711795829612012636945638178258472451726827104809069129558033546404761267889941383379083199348522323339129957051561887392355684698446790902701878425445797265012986899671083873931716207491782063341652091681263100292732454549776083340883005342098951788732641149677889780245028902844577182945558299222522864230813621447092410902090751381165530359356479120555498895313127965968334201207014244734052119753678720496040273679162881243766350200890941852770910647752530215686310304152772555039597238966357956048032141482049545181403887193027758723277366329467637550628906320089637781113189506581535979121816253300652861126228349879074483939640217209954042480302404934052377907864437446226454054485160475089083721474858127735351128344348539226900449489336403400846975788067388028221302902968140385676518693679607881057627245673687037544739970757604304819836769620924310002069448438519897890532813253554085787454209740608085978055427361179231439642704809527884373904172590947412641727814108691711483500068710966032445744368850402240757697827523732109896733811844619944526565555782546532354612143872790507676466262979406491890071710666395400858386207635905257503882943618807341903877403479175812404492013127568103106572160761681549694975430209801080579732418568396221237676701549036518517193614179233904806818392370737146759395262384112630871683577648850265318983384869287042417092300120748337358433779917267504510743227940800789175266328368271380336735360650804844815531701149177611063817950071006025880555012891861171998116798783540773516687124332051310895574650272187652505755134375054158684231576172750919777139419086163158380999189246907944449450259050608158908338507204543919415615026685684582654785822236551028021265013768425546280096113821744055984863276352077573752952269377025119884045898985883432160140448984785719893783028724641548750541995726822359743700600486536395178854695399968112283962100942527400477956688233529347147934838000354499127785226942552331828226390854584776812819681983178632714832445967759796981266365731576569181269236589048673280454761660323427441292326774877723048909613497816806242347570579796647596759531630132870155744456049039617025728774911480932262521230644890079386098722835211642215274872067692607034656822476383590639065843099027615719982839495774537065914469389312944651360331422210173153692816228861270085807082149129002761271403841574408600959969014891730603890273781370103669164417196663415757611458642375675246512659983404618884346617688327417683316485562832063525399858355631388268584039820204806182608413515212841564229497051738081903113547152019941744302141452540108130774637734006647782061460673350279040487221136686309498316232881973576839783967444142352541568998426777703418470076065684627968269941996546637410563224933477700738683615958750654320570570194737103244679686882405094892354784862704339133810768454074562189794296485278309122437594546305739501391446842689585037462515952252391825604536597410748360810559748550499560010644472937893995093526888663710779295956228762288283565632081075584178027843144871006025470648527098292415285377024630012710966360588739683581183748975044438782150494402196132263531002440870195232517840304321347692143614681442728299308138806366650197442887487047360199531007802354916255981677947164584233985190166006348509222264443754774385237802032674766975726975682077218008928993323646808552747885612768447521032216935577157392806327760516222537449395823164856424163522272441211420231015667945352550531554553064775623243386422819136691517458336712630718518561165555199910365064122478792152260218428295251881223241967100623784845319580567598019351915453282811272979721450084554902760183621554289940784991179346395458317532688359945090118367172888085400375857751194981099470140115337148087193600070092354108755294269720538740779506003475624074096687167723126529101368073009121441683184438299875507305190951313977962181476543007781159873044122404732339743122740182762883566022989489422447198921129477544780644649525099331307060991733134475399219905708437472451533712605651742304365047387242309545274854628086615948561175381554051558122761283882416704737448438132555118306444640370655767976719869999089203766957800689161104470301147231864860731795094261420650363351799043652565677090748224130368461591236530623462196620581874729246021856546824723439408515710149762731670383553819869301741267171421078347316514759103874587542948584942001110500864000195729485780206448240066133898868461794924079094500849816652615599925241845955163815613082806679479296914702995084419389139700739662161136859291975745168992146941737932605580413502798581942214457492502775061609889918555817956781908103478713542437589046830129048695129195100393599889069340687061739334099040647916449350046895895757878207387215058600830469003717810546348951640711111288956171870623994934733988811089110505909414301596796019161844258924810093469120824343059284035800936591332226914510009392063556094273236280529736042178326747301516561732303237449343740116000190769234547180250353087812881916269930805349636235912943272226764993731048356779564849466068544262854346569411751080288132674866643824108464066194024221348659280354798079950889030262572735879948139889058425899676229235926022348509778671956786389878926172908972919168686338336348436429447645820547035105008139404509245373583327441716909134497547633025044822313898373606505302914465567538252312989973002073325756175207953341097698612828263044038224396975292175297211402423398087453098641413875168865638781163038156833688630924790222058770484798099577767705915078803642643178432933880487322544136301117899822997260643719316481294327443557043460389626117914052562873732469473336985462919106171702698666846225779533044050821815614600762819276455859809096554839038744429384258487347651006229649061706169210807829291358360203629282733836459008437623496775247659859901210067401460929105432030595162499542736159299598029415796459198974522861461276727726886425247168388462124826716598336132046653589544050055981392592013850032740724183032055660559118968655079300879396318503754486780239766638155870491415157136755888614933060302265537005238379199750808611140380080456653600615704015779741198418020898888611536413784756514301283238927427803925229154686729315558502108806442927794458156087842807701357903144459521385512390756203035630187267927979482221713392793359662115566787888911196635896504988675320593676097682087840266985210289194665937905841802489763702437672656453178613915487863488014018865622748431410950480917337823316419236215945270164278808910473857215626641335579968060361244748263797080276202919319576157645750635894753235168626941573045188345429122449073016628368809937342849952132920370268550028671941265564951245409307249784302976708330915188612585187325396213645834356415896152349937034035797304889913919485527570775364095121822271722669161698408096419469883206568651165072437635729660263080753857535777385894836702501679349603533808575568645306554074095279143485569042811770957129217622164048948673042114918489790488104274922467284513535773410359484574328919300838153634444720039615664992844395169014401649790234919076765964990630392692753906899831787582693720327049033061104549036346976840192825455719935981898649623221530668895780042911351207791638741874648968180358655049143155740135754744190042971342086330654820839078044961588012257125627208780921777834082265562097183319702993619858858283133950740397738339535464965317569219893170103528191973735391031938875551071591902183946806026982056222841596785667047802929587268812128850867866077558936777093350289697082320537576793329992669544641659192237964657885791617361352878356868551112265355301998747031390252645002090839803671067048162454160543599091931121525055185487692865468262902369776881269330130104872628511974271672824964855090270798618468177277794830527596039472242028828879411707903134712339778737514328287323836478296355363148035050361773106246676818069053725757621070241014993162445571395255658196328044956745758602906059365646550312311233160074984923183856555493037045405136983007663564428137721392365555060457332801933333365801682457274481293716474304292657294266869763974593666936526344266507699121381940369979908839486218725331916974264650688801948669348542578564421282985283529319860167611802158548254942532055920773471566900435702113312719864751266749889121969456036238298874421283857156633957300175785035388720320360466220269767516203207987485018070190065157855987516085885045310648505598191596142712033471316899421173671797629994064811921032621110816835695916584428237718784059497005189534107829727228291168442923896853079116506376641659469962180377329356994015018608765683738846077507941023573546684632101352129637043933492652563618559250133853170016013262491605407453607042211847415125032694791997554368082558477344168209312802016922862453391843392400587638186492180081429623741351390680812019002863853431355512803975492886346519832332040358849654122857338539976890614468186156419267913565892470374143804076811170093870849191639246802708435519045064266905321916606333720595483469078437470368883108065853662352890791486980629871051240510314685631393535156008056390137232145597130344533523629061827924194315762226370613974988590093564708673441641567896610315353929106873539607192478637651085317854915532805827727289797548705743183073137016584534828605687395092239751182298803273664665661790707628657382220714232159217096056184404691968341297518549303007089670137272462407007339614742799453393081429058915239906813826836678166597739954651835947452379087867106805793248925382449418232120799152148761025669274915948164247653154447326751437409561974807238132034090341973002780212108582043877414554954586904415687040106200284245531487773680790935579302347250121304097329409435291906132953140474576185051827612943605354715031182757676750244792545447401194954146198255926489423290820133344826759807873213776266121692424706516477854773560664323586215335039842614887432598123918174071626509384290443906335838747889763175082839061464232765321147425231338831339015444582318140891795017273711170611792969114574373699175924157286263592296346419045963418215915424708352388146309764867090075942393769535706330126393141534516894669725689405128164585337614404388768538021177945883016802019838068525065608785315632179529322879017489082563957563373877820062556969031581331007206942740085029638949591624852491530640009302591588694435557191830437871207670112934831274939534369378021565946304344676712807649073412266896469960605754074747320630904720471383157363236414931199011615447437822004438471355557477997615001756916441525611190907953394720308477319164698897215820928401785570017567407732260765963082353742225398181779864373934803052710274172594955373739187858813994868406236564910317179762605620082187606375989984931023481043984404672533219610207055229164254202737348094081396193921563030749807950801888633554260160643677100355479233065868151663764556771121869328303023674275133025694372711616140585552992865185157905196684875827587856831398853644103237655232709757871915353111785756706221797165830850108542935880309766138839762555025517841957902895253053801350534177372521111104395981948627502915708886932818828971412953891015723583700602551686818967789132919011605433703493786713209445172625552965260531091852822342324031985445853840456775895170808817322395754039403086928926580536931082871990430855719474989348077551184694404258440179562802669271372209236187557875239369657008909673962936805588070612899964342117732092676565787236770708208134556095417195337913801809220975360111788940847605944993320516867991014911700231274240642392250911123791184146469910421636092051685384712751750653163564682297212723014425955494621072772945825635876869390254417270215440187165778201455761350056511195011379632512000566467508363941084314807092873809069773683813396999731353821360374069188322750793513597937223216633789536196426559742263777939785329401338873251786466605664180524423888092815923646618521794845797998895446184044196327263314058716428892957163137484632150070345561049004821670561341731540589511620215671772915675207524378808287082231623702599394433287577383707553445548770460814372223850682332739089413735931865707971922536347947650530501521091996919170135575649940888234486063910269998755079858153465144744847011134679696442453290981857564791156634727643266502208355816436176663535709360870922452232719734179247811019880347674960324324959300709566109938255497112832364214942814651876970433677191710110326961414326222888626516828252528751061686140540457086594273715470653443711614875306205474067518357692801288104954099990184962744513338155323819019677104126460579321127678766319702269796929338108232206956695696464840423482099140339882904519908267726628111700490226592772453124359254942018612652739399785017691761974760653207265546671841670327685570440856440410987861912832826611877204482168173598714165305593506874175483560621662597172205837818226059110534398261510461179410347947359807307165811078834058755368298813097760979284768761227463746643575007574386578325199598589513545194527420335304922031163974069920360440156298371985381061177374860389735780580065545264055667711250140846888897799420307577621367750246204188052112591484643810236678022650735142084845163937001433107572587079615918175752010744320676765912577955044143872252065593950729141600756035467590056946382666902639298539109173179150496981471605987423335461475087847013884413678565190320039414055717617974195433938216108598873025177376499203637723065731873188305159824777554651122987494635512858186701837269090505173594364590468735115138956514909072884400235351148386816636706562222447222387243716805971634856438613484173593984152083127887075426161862319299085488265030817323362668157251464153335271919078053967263457184666661047473508304143087571112969133682694151537315408066148697967420063063130371532842304289557382264595536760857491470180316364377521756217872817284498588483538451202005272161711013307770297330420893104556004002925366211914138692055720113005765799160384107984644475094319269461789844714156883423474264920195602195258223727055002667868017177369084194810101656011116203976853387039226883241161162711621374963858460665835503285340259206634265962380064999945027358566083004684058804641212427550791457670055662287296870017368642445528497098931989666405500253429570974583211472527599729084766507130878575336475650753103979174506923276439427606241625736537874548429356631782613911906975477664154576156606825555290292094083029664647696745709922514062698908480962857260861648080232194064017771957209945249299110272466259415254615794892251419294408398871696069196168713454888441971852760434104603999362508192388794921492930949965468740453954781700260120492870010978078968454652520876370950059788575801097112685342755255734103291177602844901373896402882648804516823173515752041324674128164923001046374668377992100540582948106858249321181575062594087795261257560234995749277401185224200829029135978100000105774252297523564097790175223659830113310074194098526901148395396695315519514193934483907534087475220958247564495610896009076624608299955549939669432777781301741616798535893907673844981636026142109393870121797059346081176650044976983039264494922662130943151177206422275805857275435169370074232240973019038456154340631198555532841640642647049762391821220417643987120538172698414747952047282026353234995642413992974945886508987445784847386804703803536046546352567747234567550685875771101419191774132294855780041572063288063366789209549455478225889469179178173787803535480617094707848751156352913480377862315113456562370757194033091065792874836798978567168983237353401893536318146076838393814580306465356280282331240131304643980524819507078333990767353846795595861151081589132465689026245108492997869742038998305165386784344295888794751309985587067660321978597573256512145599232410114428809025014770782157081367669051201901560398077775638354524151690237256009210280081908340227837495089006789784184095059326542426762122162931789206085723706378199303097685992202251045248236473955568989774596207907557420554628860024287712137178283690972676614802873776451170035303645959190421746423565239398297390521823045480550686332193214875376579468757247770652986732625200263542483498724751322246207448490103883012718111845705817271704606864234646890344295242966118438519350793207806203537203468288956110530628106532391360142681469633179284221918775073025700515940575057292884299351379999179799439975020973255966809939141124647995026566656426570551258420274897877502302141608707060154328300176417528762004699054640230756603328642530591531735947147674039964940198689578585686527342905261445806552899025256476986006380517823676300396300813892062938776456606527874586367053092359228427655786614226272514291911423407437762369278375015721151138219528873858089775440123255884044648539444440589640776471163128895143974367381284420559974790750493071742189430131881022802234317077317677610939229475595843459182826863993744765767906288917181133028293128236817803896118876110244608460104347278441993452095840349359322800851097041570283523302575097446271241433949909347970666649058332230745484190423105521196913426911766839957227649529910863975286612931783292079761102809823742570156857972542459303701762710623265021329620839800732454758194930804460279735271383314571818010484408625453807968973179756000440795361064025550100557241060142758967275595565326400549267314256225461735007384174412069534342777601289679148521082384184836487402164950467971999259748465666990500353021865032554903911508679972521519577604692348543169428793650000857235968865355872949639400730421652011005696567971849280311751393120343803826479553952093020928921836443471249516655194052016304069273182022544600248289543772433529516985111989835373122893472570710294400801557802072977561840142948288184355609523795524607233356878250426728280573763186607124105420427037400167517975708126100968245479797614458626548196708381386471217419917587004126791895380077660005569827891760268846919227714618056326935769894184052472484985009774642070761311743249360803566704456420595606367114054330497218990860536302865400068251969336534835537639837739229393176033178365357774951323670240390435487523255452757293075169752895450915330594214467591206359487848414659851333021370663027587365002706634610597860842833954884091949061262694458753459678401176784862902500786770276436844389102963722384654617615993997298972403527576202397206211144298637599920855262535214638947318167268819737107912184945778585174241238096983661014047460677727641778216853209773716577146583516168408139386502574467456134960105888135180336416906631571519537457356713084931054846052176977421894310687942331595147676243167737695248636875435869081884749358227830095433024183337946604695744275759889257479898739062853203681086709092516913821606991363954028148788275957086061545512862441426813142736575924669926884642823705168068294417536429191922283050602712776561276337634221345851934416084897883968846761755933592729632867679225421905345380497330997523733098728380207209524464725943064138190678475822640126977123053650823141704082671465828721813730200226791071753185608306007480206170266796944911460879908156590136777751184713077440659991222807766980923870466010412757953040209221259735105230780604518895690788092191487059000223804510318627658827766197739642984794826076919028143795359796287976841625821297606447161403247889915951091425214659783590482303267367343509118019868380714260249609231872942166669149643929774767291183252724232366235285462266578769815549672714876246496548168961968006373427560949854727558527365683117067887643881125576698932258576059315855343829040952325456158999095265718139386746723123652950553353453091525545298602838121928563512536562182591353705990842517494763591224546300096605545980032342164779176441878412827281858873683017746149195360309842998739249850863993087440368895292302560502596680748468485708868364085210964031226470072257472256250188181154564915612850376909136288839453385838752763825610977446300976157133234847703863936931561477859254650135363831952047048845524250195873529855034828435491414000508805286554906292159564346222764273797621427535257123271936471915726277226960120019644910467050214394488393308324507300287777181122521624442840387660443876659560944311412264369809198330269216215128984701449425280763005035159372027950277127339780371903873055190712469058987091271619569370928149167543428892244483424919649165680074575767688236711816946074667719667514159370064544394615952084809736666764783501765557269234475419451013830619134352828044742363395162787789715296623477740450753243023957171253833972858616601802166807970133461014762990710607962069321746889464602232544391527093586559047833267727799155196450644064809108829845778535449644195621107810380583197917416409978682904172051794413618382069580611447740760055869125839713579739564639508418044749708633616021413290602578238796943278753891345470314289403582327688714328473984097445911000885351843276259850254009951528342942174545509044295997597831424923344895979491037025011650403345237369492590069463649314291523922334365144147276601952855150990494114265898106777202811876225035943988330505076900676602048720479028649436421176127242068889774045493264205299250599381428146632991171891238558562795780631995666493827772704969428633228469585285224978694298619204202465305546235563453708909445138744447667785789551511154365046771584877258406200901529874679834187752906053271974717631160224144691375990768962218509101534460482914800137448271742593676462596277177029195195821806473156499376281387607392364698206789174915470390069400162778146737502996067023279592014744604732638224761344115237568365908339025054103749249934720146545449027023405792490250743637981378691332305446518779588613031243443104668265976859624758864218214001405145767318895163996243757510404455881323844457978603507515095137033591788543457871662633826257169477269924159785603724697033745379308291190127519971726230667720719967207862313490652354265461576949813494106909478651915597001844377575050028213370523386208641129297841063057248622158823730504371963983320226420051689170532710415916723943240585401310951865149707587971613407663001497669224317492652300446244742523946499678632930371240656107227618196791588961126472370742111699359991867729001641045588000451799369836611486302958388515940871063978612033320552629597637748347895434704568496538665306854795075320430920570780305137393205855030470002252419737556129565729543816320550208155062019925448538523908331529921296249280251364724991825249094044124792501294425385202445958282238720804765803686855556588814770903387344664475351569423004585414496156586820375241716028134782766617233598089563398037691760955365075236039718545704469593046574619778141749574008147553912677371822604217361673324588390891785917408839880419617087878970334995716710895279481531978018726506390067775714052067905834783629133523666606714267689336216205080501302588749345176098097837647655547650462600615438404317745783221063907250373303448741992357459809850501996558318553861499351239428083348263378690328249589737200096942190112454230057173661100672161778260919549062311423234131510092259774629982867807983844223142989460924991055475884605520739516386686456124600227877279863821607158101729893459505996241645050459408789833402566212414181205376680732514208969013743928633568036758329875381038261512917647430633707030650922378952964156951342323691819991851615752896183908306257379549052224930085290598703866013191001793983917980729325447663773351083287108507567677863584444080459093802759089926835327302420443665795369797419357285285391399005981343585643774570499479343972030458978414240689722380061495563224375060125086118160492490826318554300397319075014493732881181192654459979359244766847315784085612091895534280596657874876509607656144368225164949963111608739719037875494309720474527923046000607708234631312633674746399859414199478235870322918025202526747541587327140577086679393388271681898824820049257059185517016404026989143647908588977178211335326856578502818272186216058685264053177789488022826279647248559882987768619653799231593080409145198498767528955864466175407031813017595080836444839443644790843379524075778575577647107051345649093872311406604689877018538322504975172847232653134708135907364526389039033981074891341248591537772600630812232277812789910955669161587626937739755760509432960033679218780891654575648642085570972993802597397814182317904930578083199095212638645706165923990739841862177057648170234141262968373241761894796385284325602774591774315661978602766080166750016760811423968697550274490610562037325749976555683042453310616054940716094943072062303707303780465211601984471952187663319767881019642589804978634720132433105705923162810959624043739836288091048603989865730361342362430192193871972275961434763244275884031383583191691554842414261714070393430782338965071537650635785461950214467685061277668107192888044797911799570996292755364640031296517117482086234213338924419103990257014712630785619787380230353293465338435295332031422583893615043716084610850150795864874326053104206638907646224584139316414190740260562652806618783559978039153347151611738172148425556093879457791053534354932366053452618836516130789389200964274960305323632603818399142068722601963076207090193203675939288343495355876984393275846909275226364705165097964241875502492286429858439582815259216995419188304585070809937441715299964166018946632762162959150325073009715951130297763006335829403645433630064991104304112266085868574746938115051519777089017884135742935426955034384871542834220572991689009083126917270379245218548209437584703698217451462284655546666418386750345032984634229352016574658583854456237322819841458199857106833575312723161163972045823393631060195948911417998996821921232334819347589897508372618926054023059514400337593314494657290827029745352754068774000210255446778969754823656655179178081016882919719801586939716076790483849281041322703162047808156342393172025474583093369826794046821711307730251631971543927755060524393295552346766728626496568735390186112393408954324985528974284980481708235680723529771325988609023318809532925983255668205272127829832288982701124894561498583596991597595843436560717549383977047033690013921169258577664976585481108964376930980940064116001331789945161391096456171013602368446875324929807628347305161857996129130742242290002918023788413613692516383465903589217440768767207810991240589714259643991651978987439512805496374358593771493586807528010371241178896065216514710815246115689331231321514020492907839091798904066539301778801053522396374563334399048554790355501754856667945884139377633701458759282152596811966418113967422899986802837409717073947687046893273231432696428142464007890027665865620671523686194217406311520562032434589954399627761639902653569862415397104907676270459763552865977060999470974292773810052156751658586108580119122332773362255182396703501955046892073403554957912614969408356571008294638595792098433122999221463396638013115445072893644069520032466523211055585157666959520208015049069128915239276969064468010096870370586541917084079553420307909783474843944347765979114126352631101800360383933197843117827478250840625552099590931083736413051030714833943597755177720665470194583075176369400115100037856174080149597427966859802192339238341588790234204192601405259316986944637701141428480956890205742938870247843134593124270435026897683986275977340109526000771378110150111187296250101480883659474745064423513532334079912929486865345251414709633519507172143774287096040744181735415831521875491701682325520069367672028737280470714333542101121369848315320619466636739339845154725823000561181072030637577559195870804929600947253311134139653267998466259982441162510098671096744945925386568876811107115794623431899690240837149396994873713415207456400089133344126216329685340608718780899767175714545423310835188217407412565665914261485064833813109079897846809325817655919526278732351053699523196541212824154251690418747063515102471720432278148829047296848621963077234917564843407512708992805336556408066664770067352951728946166240657219891536689070896241571975108503327091291976064780991017552026423216092165932393301871361583740185626727308149107504256321274776861033082216516262875274071733628427698478255828365113913584484943756863979357152651270417005176736896682629001552475935661822084359165634531930870044379861756634813688516901389247140805185681859202419862031244370982550487014019826953887713072532530102823956751413856279415987436069186073617653740364065203609304306554796526056024108363995225262753602732643572695821854755321875366546175058288279025221831682705193786552486880131282304916072635121338418956846948189938527997018419350381345980410452927965754130249213952347057494267187413238385965637160449222713476729582512588724373444293459462946933967275213449210013820618863402280375263188165172607558209513673911925209579011347556471163268133759946158025936548906627032625203232631021749674146628044243413768228322648507774498289584447675465054670309728348968208689990307197469395228928218700723276629581332213235665576602105016016646830534859747275887622291040634473265487518401772401284105507824779920960176331371257673836911000844657626392547632860969146782005833540043245710080200698999635555263201612111232676848329104344877902683216559935756747054282821674129876209099127946893642443808494370909637243936744744727239320415098410165616663714084518826554581851164298274089122476551633097960508237436869351670679097829467085608756063966250414371448606662824194316858861181008964947352557464307534477827238981281002338546566237875341973037325789209255890641907430961690295162451027042877162181529844983286585121302571374057420234818084644171048443086852198869763587808215807538688545362286747874507710150191848158621401975983798967195677196335335398509711713663476897520467169608890668255997541274760844960152082230494803409337301240779841626873603172171329183916142769575380274875017020316990306445740311601461984137666776734429009739774897462925015738345987578224558409607248048280120637428732063061106987040513839093497446137167825209541088032813003639271137787663692680033244416687361217081150950043360801805519683275112645591468715361737800969080129668260517922376546083835162319632963927650879794752238602865941525977705858980752307964413978836427728231740614102202224988645443447324680029526961624672602704198347916747045109881283318122942787493989111543537113240942890907023207294196346348800365251798947327538138138532293427951807952846069656226852807479425197165173021295752165112828966235907803995423038742997337080484533186057653323227516597225027655471914870061348553100589278801547722668431330253929238987160570146403031777026624964163967457759549796872643688124876737079704029658661955591762880941338449775608096051764975109583304031089737609036241452502796422255723542280877112920953868394846558808271352016995661831497935277335280956154780348935061317726320084148307225141199416875683038318574416320545434434579755255055635071451967269856650076602984160549402609360333003646280541835175602302557831851634431263967696249586889796317777415408171495985977491592259543364619515479568690545318222507702790198545047322474066244703031696022214714509997013239436283232622471714207745252366600381614136553553019649566001700070344545944204987889695647260281626135712691018576804029507539970834696159290222208239722841871266246418963261850962002845199080377805443069046835619361795492832957170793708206547124007632949590324960929556988426798943497465930274255357832255450334967550410405414622690757585596223163857120491039906368609814453253579298012694792641317179219838705861381278943181380986712198439157952656068485806970758968864207826026048281953082947370546459696354476556640594350231096246384690100648893121723669239015969850776378996387855800925090410041685530523714485265738573553422489661051236208944790147172877646614014316267379988438769665820003100574645865206067553352477420169477780392586578164987840108458661166544687869159657990253491676591698225499343495312343604732100253351983633595769715419598014548328780596644625627018207079746553361945781962793737258938851513516934157818299218456129220359204669631238510783751621120988782661245475796855958576615734146055780534621198382234020843558148305277140213784105153754849588641466883706186198964518068404608574729851629167406678018437295025214875177203882747897522897495810689235686761940108767996314330833717317243003901663339018397403639860600631685667695945423339369225701509585147991009138092521996026541666451832905857025934608911506553320806550445475229093269836624564585217419255506223281333427633389103436286805884276034959858399982593236450099586509659658517806003645591519035423414710153282715061101464084787308232531996404085558568536429010154965900567885912528167559566622674098953007055577465813897666083220999244021166079238538704136493802089707186577678779289765040149334952195709516970013685833427450259442998760426047137407419117343761067559429829702283154041885905827033805258887314798415510746759374039865555201610529760874275017674569939592983137245941573215128862088070887328648524431828400809124351843424393702971709862487996550384950250198130508911891908267624133975056482363970785746979716846732890981319975016823573248818656904220191920959922986768353735822689105261231157176762692325479776427616130099395134880146301850116257943307155033572973690072348689129459624806152171126308036486504449772715656908154276029546087533462098624260741522905256160507665268613224383770604874974549507054833634769940213319710014173189661791263149346706673146796693123056050784576885677188549541671472457443457911640018886197154059224808388237495586363311984080127321516607630746857640859299551433478362980993513598640793447994308272873205298829706897783820404616193189293258674728352523105857325774648790375273585472669917349096356244252185940181552268076965606471399360050314521525922531250116279366119025064291729735149602748538594984901541178854030027168998850341966815183849618370785176343827136068160497093474213104841665804195627908808004559487979543686394024299114115032483849062956291138193893578150063776221462039854454576763795554164217333525186794379773420397456706087492342109122745125763235171493354999967275314972156962347715608727342334110861040893394265596632214243401039168269833704005168043682981935164678410531343309917552850737773225428982110513403782005173069132660438757276289911654881222302754318170831971318568483444024942330916533746927139299736063788682608707321506069213648015821628784475058191510956795141896622740879006050775803994095491396499945933000981848590905705807686494253412799502500350097092564310656701935903090671693919909168530556858265355312568357491094955730494344375840586656256838770460520796344998995522726127515990276640240433399988917883493014569962320980250069302748319708744093869580773189408183600080019494106322789057949662203133513090199767535390523918321414521362743370454435935124323097770194074020590806039960941263164843214498947028141860491386470481648608338938140454444659746037776486206350391468060323645213900732780980023327516757229056072007439769226918085739175353546817088604580581309359421678171579347867366265365045248991995029199368892635507821369535649484157312987370885330477451886373319319896659161254157726556602220952940527768009630180326863764123123739685147180890570225708158333231729260038749765599650147530441401097943904970410350264316174491910207758146140853139171933490478252031394808688933071378036795411238102010943508979237737357961130522706902458455484716716681170142227550209621112876130854355981115245821328693895356794744133265912861888878148205482465285081222720394420407480486031970647283266223970406976667717740718618945777613028355953636654561419030180472298939305670238294124726145986972814614352094408389659344015880971749459235195251798700780970468396749049605148857614263164063873623428788991884491300733488489711854807134577325600185988412236739645759990562869158445820411031592380973063564592262550095471418371984132518939268101170847034065700851944413197032092343351672168571339057398966971102703028100854803211135938797490138117768058834580176358365181574287130430681576186650889651169516693705156422735427148019617379702631878685812896081603361302838354299576150522224199960242360049340494971175336152887828056602766377031887419713101165813280360375302690962275639739763853815951100280848431498352013089991599638810152989818811576055937511760814908492131368286481618619501563388828252730197088263931109962323892819713428790095836112109820519322844093751998345573055198886566373637763564610077559587929950017073013352973787280808077781155535193148944404848617921825916551315391064609688144721567664635940953174503591248657856262677433509577590274237278440754597393859338989020720831410792112309946983359553730252993753097882553932052247161603409990548945807537697926406135945344169702899194963698231835657613555584752841484656147279515632811589238055590611145136326085494185255479371394084674784358408692378255384595353547967802987992369521524349112560090448230380048484026249831220985551412006694547234927691743861805911458858295927522642115758171896287851159520180104647079442503383435704601302841632348159936561135564646848962101742811563917837657172911981067358422572294015567847209632674764134730925952005460079681513071692049262511005562209001243134184938840273986547217055919961660173760623394372304218991013444527256513284212502460996885762833136186324925877536748971624673100257591624858236781403300077039652526117033062871858150341678646628009348666758221352682798501664172661990963001247713204077743496845738806791489122299124034724923373536510747746652298873054874181321534479376585978222885127135683865351309792540580355277009779272927350591840140186605441708028924346025404927494064018313434458733181991385384392033216806008651218884971644779809716773549548086065756486120819639780293647074211600314275838329548221248379443556213896129122160979394903326055716854360883829750051919105766501213813124775459551395528301847188268221758659204791710815940517320621621483909667420818467652125248253138948097945119251529989046427002328719685943960672575996116711865435864567327685234135674982767747710446868217817059163597410412577270143663770493091297740941198607613436479366728884016472790651435129771483353934056496791563607423027211076900559488744720938292310459181701371126269469339764674783236965373319518886544058672013630861401727215431371032488440848522575561434201761056137739247616899956020102267281452744021218076280883219504509352178765829318833013368719496573844597621981191638896618388306707550735126740303888748066928146335627429287121100356549843231303334809097171934512584490615770542689475474262975950830777942995841462021858581211349606444619541229922335698947171685006497598652805683781594755301626786257449467907569297389046998919992944270824410635192887092355793023407679524578753296907595396582926478119120400274991721233447151172054716152307979597977312815930115498146741760162990072477874324947469367578736242583921981944681116732637585042721157628600214348876812468021619623930199949161418691312277934847899654636228979252966414206851924113140746265874158479283068520119440817134055613494896060330962925496859979556906241843765900054637532221970028789734617856496073731130304866816390686869624344302114816292023024947807472408907967174957653266635551000299140615433269331478774866253965963623088237077017516429543668876060873304814288045324900264972544196646697071808554676183623577997922492810652421267261264254660838834471274642568114920801106499190047735233264438767748527199431989694196533412507111358796060565807542585650099827507444542438777757827470392460913968877390715873380019483140030743262289280005209223917677312956119177456494424043999188997236066607951232992769629997583064325908912233592504841126312438395731854883978437441766185777426872681048259552170622049623036836909207831421727396700822114916128867317016490738726131723868435055223347063524869098134624240741693377401298009009455093045757197261206440992957847955982601616045710593564260212432009600691253177545190873206072872745937518734886526550759841588925020613025790232316942800293194862686284981984494751295959689884098689105161465318152440486022564929712731069840659448343176206310609810060622192859636483791128411978733633600215442107281681541270551738381414520332345079359714275096304089763074771976600706591935610522586801264566569260503840495196061597740277793030906670942589425642419099758759775054202983980194675872622460514120774895811813023412070711500239543201636642211354208833477482282354213254044904333113487433867023454850653760653306762998929912523078149237491013993623220111420166399450287476795870358348604453500867489509106705937821197781450943619082790763060420989123080690510622956499052401226088358265106176065433413347332852138075832760819494441101725977703395564025685268786257557268525402112640694236528722481500684240345938196670809500385603723860299113380669078186669387748795632404019313306411598941824155400126866532706890640952688489449732591400516321267088742308621863553393369222203102487887589281943094375894855775258182971111686196657187761417669646718126077480090799728118835501559977640946712119452595903947384165204687961282169275409821523376359662775300259007452476189732710507854239064724022645797748274748965279765934904693733091439404417393728770119563312133928826125436361165286106507626493607104745941750459580181762573371702375060770791959911737206180476015015175214707279967859981664696069568481558143703231145448393632744199439444364488404305173706633798493631774778043649554270328589818386447426180907611363823526117580798538083552097733462745703965107857825578466637602798321859938774756803246715231342624156360161918960430351105845171268246057234763870548445970845550446459786396827956180499488228955860215761217240699102249466758614474016247362782744933165169068081952016085445965113943479294622424258733478144533990019374717993319912193919000901963468607884429562435859910991209121258929368244754618434467326916504501657371654532792293459407416232183692413802827118345676199897415882784752231683603587980197547000616999687755660704509103380069060249054431835611771500833971803525107760200155876246243524292015940473769565475207738661207037736657276935569188685034040403947315267275806999677968323659589156395108824371783260868258265445458716900852400029816483418800263260891052374765855959117139784996388699214022495863834311389493024114496156329711265214159475156527069443417568784263859386152337784913408510680059554802785105443667694254109190741861651841666296353646261241462067692211813818041060005275409273243278280044156933765706616660901555316908900818976385638121167569577616932026798718229099848461659023008112539149144269300960118215314885639365000816380040248511713897671667512288175686959135718071892610206609139874862849077356397095197579608704483364935786883660434080144033310935590602926183252055061535976207118726243593083270492410161171973032945611040525465342225406522336029159571139785610529288927633424330318788443683684510024420809685553061920718131003320006042365929721139715717478643326426279484942066375794528520278770351978226197229644040407349542871589085050150232091523266357903642721678218754981527332224302042903585143288049541725794441571738946175416436314833155451645948689796332157251741199112789153165327204249271452090694021364018976505595186959118607546208670245940368670614803515240571009927222989584526762078500266078600508526010956290580863702759163730964998817682942015033317827644708919771150882252190132062434525841679380744514064714316547080818611755352737265633733753463365894843182753234002009296694719187137441053573408601929761212400227051657612533369117921639465079478241275050999112703803086154979537316091986489607714884038732938202634256311201416131669190882833230061215552392525109168310490315032568295860019166485674955741774678537133653636886340074326407088395972288370347070351002123692711791558860352141138470866435839911538341028273955449615558283746482500570157402030248046996801788459775167938689359570391908620049345310182556682176956528162894731824426466625385073007589982315614603790152568880660849709167284787268048364124911217672512987769597315491245909339127329593554630735578929710983591735544299677950992659617826803532449498834037678740358479377192896320187254798584155615829197019885703285444512010629058398147492216466057291055336307683834574051647721823884474165912956703156010335058033213213585294958352808263809879451423301547573301433688816142994517210844068307779933719392467815780394041087070943871038573295683847412410766953654686085715541422319658892324527573528273364775877809557526011635121456678906033362095269458542607458400010015389630198038734511310114766015955012987017598570859111597332051939221071603173841762796282178106653048278364582613363021103225540888834730902038002054571172312739108435347479220683375497729919768452793661043000219275790260119525435403443527152633915270153403122186207520047618986694606653461330684188618913083168282121063350322469132652116605200300354942488647592425151940279560261655179060465858106402413873216857260860645353129307042318189774592110291952955745404576104265649139909369808589035941376281166768457431554648320144648550378981901815805709043643568759787678548669549977941058102009353404329401967548721383157726603614377208828703062551501105873060854121267381716151332929484401644573784817267455378258875262115259921733910500835445773716123334988651529452929766096519055412240984719785223051236580704396277468131653575913591614422888038877475893629206628647187520881772317719670873868072969435152886012951791368358751057028919025255070537045428224663343613198677086389410626746232041665099701025755287529820006453295729684150385690007982823278993082117709740835503548625935153738183501037103565950575557999430169888357082460559668565853719091077141209140503356521803040671487864564044518209934886719544358617173529126172468252539993389407486518030836183844855760713226052329832278378896437987388387544924208108863757173438680944428903901368658114583122096128455090888268091632095435692407011247634731044426682985477175093253078489073293600635734977816776639213563845198250841633399486957088101012947191232953790122367936153723836912314579370431972208660135881668318952480215472400551308133132607965555047949568317620963714737494448053019947248842589319423734592330110365600708600302157461899801365664011189114440647505119834325881043158569947942710275364930654099920270020429148517224429195599686708400953964343223972497737977923527388063872687002048703646139074990231108822514200457517526771580731493803248664850514800624704831868444221306518170085896435958038936392484727780156237385884268344876197751686423058987439499843115898237108257131773232525871938757561369331588435887268215641404626871258131856196493250465027394817876335295416287589622267507201980688046031994605697587364314387066073733212105188795545981299552248310646805331540025532445465721441556699363454059830891783349041694998982872295152325670518965153277615235068969513467211265511346326118641231026027279461826042150290701520576603247155348505960825267606482710491723160023703129768701243432694844106410919967468172560386656368849365243142207219610477373431240317619058506706050691592737931060258613816773246381273888607138320089472668859992305814303688398235996593138763916093724503936300137779007160345159537541787220866597421494115889786303634616688250710224775361780054383390867275072974739373998112388080257300065716638301300856249736661562411268308093308158073708498517376520809228785297416259606082341405577605811387701817857976791606749754898171910009805404451186469653899864654769359758285365745681378018012334242088601563425355971224607462582029255600384109788493626791660374761192933046536221010699215469947109577079538582026404726409965532017402979779037162498970135266881981059678122530725973675490695152129375585242570420804569658263987925866509445214427588352664460042200613343384080370000289938145336165760913415310869599109456433214106249063918022542390080290538254048732866508861388533105958403520607942660783482988826640551066724729659656958376961553905507029005192420229710863560426243958911542873201205759010390103736688269387414716848756301283962414159106886368240876799147991722466349239544651205774040949578468010783899507194199144870577511797531898628327538439830153993979442324133923511617968462505352890493596571617331193361920069456834508195752886488100174765595076179578828625872352282504402663192407124420351177365252043346152661476139114173700684365868075426396499771300357107235193835977322016200862677988554574363339498620016384394305128517622529851034010500907301146371228797125947288732248026906502262602740141320060826890385561888182070996221129617833199539829736082596730250739735945621644916450613535188728624077089957661642825310655158076455210643422868180968134212605733448601508163848590386307012866310248207339559313232962435704004311625293926893364213484344739462844371943820586623211348316824284246717121516218986459530097175550430902418998399503560625015795094435413136044929968434220034576089972906202038361009968352163035978060331977189119685408648332001460513899943035564771366864487298220242399414446654228091113212749959807512951815182820380968626497207013016233367027197767519146053264277211997848377651630332808752722688245450366891898674405857950479765232283280530296256343970945112486213764080407395600485454562821421455974259939311041721601712198839796648875264793459605325643631679512529190324681817633343318858987527797198016570858594347468752048123315855820123776786030190615331291327791069463883841949496747734205057882998302774601391818868905874333624727872732916839396698638716065861626273218065429665060317796147055634934346535672173298117834236871920530483520238420202385694553397563015904237373841514117967715705840599016838876378888559657333442890232336021879846849087482208285295044956197178938663070749654358210813488895860907729613145773850969352881601611106734618377559622833941694545037292833308843149151711551350061650382764437574654550675526750849844849805741666532244663378567268261871035788697995919574598172514117661372601582582336095168585225928501215280421867441866337418142110048559307379797754524163856822872607424140778028020306756364895878439333675825451350751813185204396123935098432976017613404505284486429800036608088488715190126063627083788244935910523874259702281603417175030973924060488005344253457201948827763176309280517504089720841097780960424014041308028834910945299137137297995493624670391460108112459039488500839791580879304909218234065319201172636421866491181755645780991264330818254913674254396149118341803408355015695484939902217154464817278488977100631267984706772921394696616665674970705666008016643910915649704299024402188329839311994623726018444413709678205959483201885850016515238342475246491390538641890424299465075166963643197985840174931408732508725634970329034327346784151654787898489009266303897786682488569664301531812555589761050439672480669328879020486180005854442638849671364653523212900700882629521969908405362743319210772149789911961815383458197997436736266922739520641892679037907672651599756384282662004997466196610278926714867089612378429016483730450581943050403329649739337479997529001412781371351363815163943640946806629168444393188866241824263600903065429965162378373857184360371846041302427237033503351645429936492090334984185332193520595534595082923083026464820488557920150910444877107503742002317873436817617816729286953935502406860809589542232933582932140409624596463934916467303068046887912332565110360722039487890259333798104589524360860737573875530949227028211342843181034649020498674057983447176670407017962440781787889016035887696170559080121539044531460784711042397350604563109778702819912617079664149451287254728252038167492839304035459079818315987902846747460452770580595579557456157501751449481641910876672169982999634656805201665891904472062508162553135282986950107066969116780684748267388272654689822737303071040477731729973624427292871708157348153318930942436751230051286149143367403728747785216155666537098835953201178423371435763017202676405084014745410525056792315933274007496498878455981904151614403312286001336578202741492677152147873408631128368075722195292084529921274840989852837951094789842885992410461323120786114751203592664581951515108592418804557962809804263401171799513200456003086872659811365456245171928384925321826234563898166736216781644213359116211944959375585779964908638958707109187588725825830641804030950635194689328610336130482412257305885678020065196443790023885529431540656742304420028365631444622033873438734612689074591984207900609129357203012587862107085100599214177401182282409213518149559052852188322211638928341643521245703938281006657385100001218239422329363632049830074668112971999846924687064254883248941612690889496641005881673788650112786795737345375775908700630413171796474978081316074188879619051737839315278261138539117658008471786708434872799507144082452517478036019125336423856178580461454789205737185409839212254798903982965194246155544244538266511925763006888531168863771999673308980714206665538029980240709480201449825179408186341537249542993581654113466449936691472482288302942800238337476260054717374816491994978426484939708614109947720165566827918711036504233079934854909921762099469932509184720744568299395979768808277401057144417282266913874572311322521770712014242537285941392296340267060829802852232726296282208545840118622243289354803550527222548004988698482636699793612028399673607652535426215504673311975138864503489347278155216691512458120049421963441135887943507590882493445439639742581937717926294886441059255334419695343323787254204105554714505391505073416072709687965265601508111048097126831007962880349055809101150383979450999270060746341015047796001056956005886736398502286720343197860231182701222265261020202715538151177210271612216114721288920640993485760132813966102549828761883046219401486972088828156607392579024411136031102980712340079984276721772383034894271587583739326705586559444516461538003997272676486805501461646408571835564709382751026236005436574828629057049359387517106474226348050284299467166022091859418963700940564202773532923315362190896594646814036389245964429162042324455563160112519679493924516716434194602962742329590611175112628994036649889288340214369294980493245281033931303351091113029598209529297810734667777043981924955892718680242377089414489609899403897244276808674105780636019727881955180637652368756800501808557132002320397232252440343293320640318490578053083965119211097205527652730347211039548067420369047724845378121194719342700014967699216446417275544904565039254155085045586700683946600880216445998307807305216600055213711138270164385819072383807320230916812333987414983371582378016490740146034052086638993542828693253275046514628592050133366209979473399745644803233009976335931615855424440726733812245415029229059464042576105785963909118624733775619739517384371177800634281664516509098202573456980747720438381090875735735419502650050345278581682969912635213387569088411654513402342678344767379440263674445137651509010137400135293594822287646809290130888064222967301693255429470866879258552170839668415364338381249901423045367503691456026685861279065321392288216830032226760982906299080736866966527271894443925705178918416406497234317259069011431514209118599348336385394980984808844234164008207342503373764632743342392207548367064151984008932909682619249681235085746160762911864692974874950605238577879929548642414896334865036911019279469988224018056103259910982343629478465456888019770537886151060296562073277121558547826207838718145272625998539538785287494939017044081709490327690962625050253476981958030324584440919477233629325495358604191024791699022734329881932417326665050087948123935818093110392601888504612974519006183687195477714630428267885672357998426499143958242870963031261314781001992718863902404020306928155401003488445112952504930462008672190262254765387835363281492303833820056916964904587252179354507665940680020812643915637268376231760257506665247014789876344529040759170837190717464399534349324429404543108344910278733629571539921836618835542668139078940645726369134375291626103058167561777894701523392423655662786925909108362933214167690970679828814387091670462973473028902155484156138238264373149726888453678485190751913154477110724883571307194483399041829610567510264439212517385722237707892218349526904763325371676916100457877185268580948279464700650281169756351973878110990149622704864523494577987259326234041200662965785141015149937967697704588144962879500546016660687701729549331125088243958204340373670035359639839183095683653929333393952867542023663771137632652895621700815935862140245126046642285199891783874507415891611921619526244087036973477785344548711062492912384830820592114316909754159025668871523401246716601112826066698881565785578298409269801231628397889145442420358234643503316465204052831884100524632789786039676426897418481030264687707960287206751628835175476974967843174909925589682564453640080114983169659116289046508980767294249877505880152177724054148510666314467388263588476820843314431029769836486456034695525325603934980355989429274018577033801365763052332285662035695346553164857020552062432342375141648242793849685333163996692901001634482784555189489219989171631530691834937581475839137891162421067832428860119980204711324189015904660882427000184465798822659285666893432537102481924906749391044998027218131669147399128275030828552433434294597511898475959763980452887893869220403263469277692190071472961857294088836386996607173977265256349296760632864793975024757403306615654647847181883983719004885096559537127362222232593237209256771142183412837150072334619124636316726817901282625986263583508736954246057661427277119108942592252987207575113510520216630502825793190200195141187838471934796994195209752263738189002773984048503110192016439076534565406238442538828858864916542596361463044552641108155840327770007960721596185156387505335551469899843549602291844435291760119832132432161502523529397997776003135678109939182633513928619428920944435265091706449400339997857298497268444768989838647915639914679980375282834997413277737729213181790660286646968579143415081469822071284954684455469386478229900628975759611069636660597885335471862331709982357959612773949765842329215211164827598827190724540747867285995240020308469398622747484683862037057502986599997059464762045302935623586313746517687325974856107093985822984932804642053210195798454036952249671389126771916819154504592433537798967057616341456040015008902605977028486102633647605264977959573491897110005335919322987696951901217807294178207470457846641101737707445654184863038180830101403411616920781965428991095262282190505618440270505186728335471690356559778714557521066105645136166236453360799199815257977063126039154087471218522685405612398067411129439218048195569195816589262938527577239858551216721995157842512609263209290692100031146824746689124854896804282737561803029717258362653316866448661955308320055348973705576059670055389073880873616547606995877681471760898681818596281295218407360668121231393613693447700298206308972052502189463948415543615128294385102274611032095368506324201296948037488446671627564394372285129205054220253001648008234984806261044304941999277773822158515378233594714855866032476162636516941103219087009302802230337349277189368302014958728072155430047498439786662482455068933570261771981707192715734923776898489360938230200747133171193897595039188512565682817240071242014784556886806801682706837957447286227789938589850057424236192064303410392209082918140021665853164683749266031136300780952522707186770337420722688403291607131843325320955127901396534168875428198083764648186748467613390592828471433907657694794295358014067525857024237392626458183436205064108093522823795358751823373671656799291229982648790852102148025875560854866867389847596515909991598242612857120888242974638134700296809925635823495348129959057738208648022240352983321152619459352013629441615357316996785975225665429683298916207005598009985159204707507124204560257053666951826533338057430494823321098632767070731842985664183789081667673765572843083448869481634257432754629335705828471923774389319043627883417924796985682293640143649948485373474635337807691153526642295729530254950190752007161921121931790530653539749192074729967758562903463276967207280072039732810364806022956590103965426898219813749005270737751135144433967361373162761618499665572891628691639054491651262853648632914890588454137608685617984713282283970219746198478021938384033786260082059666623865958816966277452105647533826788219889702546965322607871091447390379569065362644474935201174069241763376214876139554906167193079636309076781897392379984654757182183365306343649368048684990579078351502326674035035833671968802530989053681850497752700049005838819535684410144571823627246073860641495499445622593009830032963209443983209242920215937283305469634934266471367346716768410116084727042608456694532763449200048130799104989895342899701980846601936266656898548453653740044890318291038435194208443530461917261520307531048825589803669801991532572887887645910107956051990939476382754723128522951140079881010684989337761328186716994637175134985597485339988760744406414862654236274948227169061339383334450581072479524079090037052298809608656291085945376835322198522667993143027321677932721248257032009288398804101849810441453923281061380616169646544161288857897434328925769630895272293487908521851820075360704030484862293636538235109577920429666515274313547115051377758798960266615247415882468333539177552627052099569161315179644428783392903566570933154111676023801563570659576441718700070217112453737965588989228180215061705355536587180375696342076085985860093108169385254441829688672555748957493789474933005492440245048944170950242921245829890651550469329704337517769600113256998184549381723336074537012740199939794617260080382336241750812365969871269439316231969002353693907475768745439931706838662621377367466299375078079220512227116157229309219943034325785771148469285071638463879013348396245694993890572345183033417161166124935383315198402757674416121527582878183718233493354642070522044924297693232494552541260551061325305993461239269773203466508138480496340450132125945695182227487048859123062529788304983146381108216219618396445145462847750093007921325057690565816554595287825224634482962903595272154272480188615300930071424137848052848677565484888210160244565748148416342995992151544866149161590162429973165247600445975583161587856703801539396215639670216644271789015637556344085656814894011525206036705709914902796776858716733848116827481850060129363199733303179507649586907531006696738495925095944509162097221043198509152827266000939502911299834379608094419437472667977795462261778107653422989284717679029170027504935963458700751952507753047075238083681911187930858171278140704016643204905889969849457530203311473253800440137949389956442158016215648626843126863342816407815622749645721621773269095667482812320795361427957484739363672737898386769622217048981587091616281194605551136502900874236430776494197004360298690859921240354631118071918003143359604520199019271095240393370695683825416961009890968797487105521005563573038217151803911645989985892903116353928660294850352484268026261196576281297355225194986299811252504262291028706780802383432894445849076394220934084402825376546503307716501450981464137763327669302103050037004139521679888276742478542356657891117612104816952661118575054572828738607249783636818102886443697711663169194580049194986796728836772643478756543353995877255664413661820057470215105546476636007541920823873720769306155570578862209255031154283327374812435884592178786664144429944693993777052584670220254433578386997884803166295540160171084569770398422870253020726244646915696115985484419537237303971227289211299019135164315459047890964195256939271077780877099573806530008607609167665842860615747565595996622511701451121145674497217000322670361606793138712274925831161152631020840498720774881824853703134732020994575216006425806164614277874074560483348635498878255994123744320765046172253424769265419247232085506956285984625860579560962939069490569190870746463726511386327500367647709680195020178806021817505474457135660440611489492677755545888486014672741397836654570317888348434107404761821111408889106067928742291303507249675090683887927215755859097872427444524218876996956693015367904918303940986049441998329924651906684715240596542020692569626890664746970409583049472483240365958884548353718751658005030058717777861475135620987960459368810180754921073989142006961677593352867890238439931602272308748492601813089974715621291900523606882475142443327656524297277804431287150474003692511892775048994750231839247312218160911144584670833364798324942835698570221510828486037064178117512089113336112897871870518326393158077172471416283212225622338983522589741878008219591796763662578651030021876215264223988098359100432400711745177327533431913434538321447191993114499578721922508053890271311605218549008570170131488958425488436983405409886260201635025923459155778961542013066954860369705003233074982186754501306169764997568203689512929128318369073191341077393672973192318629809189622030035439388796246481240500019059337500942150040519092853262422555373422732375562998953545596134135634388998335115420684510706552219018027497667646159994369620162904258042057569592366576723085074093658059082282396517729686872811567857460611753789541983589207611877658713378857645665223029575195703572412501274321507309192596830809504469737319016575346832451541628721842563811601383830329274614536434382020624584370052783998528027423025926744844088077964554347705622754463743211217733592551910962637215254113283367795236522747920158056675720708243228208245597531430416892456216492723879079348736176393843631642579503867469157158554227900477801916066408355361556764650031894949020782626463153479841414829254220915795948777134547193845513854021405982920263845965113240382401663639228603503383596497820416379130964649250479279656504408609327475575595001230987776219725727083660866681365968352503086802909623738782294782203904736336760530426276696669535064699848570228495803701359243501882479571206630200900922329051736898336575697737697140557008643663481402442306700904641936255891176465920232145495276041226232690508367337823145280587773959570722847038785760020435771140289552455195323620963557050340360103337744464464341984011959322210899206748372051228365162893459103436271600846235281955785447088517446176070936645330899878719370464056876752407358946750448486804804503842761185579466036401105091641594727318999183021981132312007533206098269489303270283440616493093689420370121437026035238527800609080736082903976996645764821010214003553463262575876874869382302688512091706574976870319278206525908432629650252091731269006269213539595481058705842349813079367834684297638176065615882548338213057236811064845236887980484659798366772091819158593089805585624797982624709160165471002632797196344241681013910032039495778921883390814247373055294930979797080892944163163002714034605634384197216668487609832904199986434902535808946393181698294508088992106211680306700063023135343207856158993579893799619909840337845413202930852097344502217949809526876032335877515443685041609723475099209719244603116782126345217318861314652311493833372478950888685089807134143323679831923843501959732393190597383467543544751556296238695535046684072929951975616696446751744044510576858439302181710839300326442490994301422389059269611079177793569602178160094658491719956097112531880543454802719335723634905329110488748012455338129705487465370202601832870397245726788784937456734473864549792200334508635013124826264318431621744825759619076207166165872978158053622623078309889886929075747993686364162470645066039118555866543439357711293228326871137230394428249201568542096836609471111176263112670709376017624160347344992192246241983711559208814012272640322706163792111548937469170869069070824514146950699924120777332257485880615433745754311577875774700185129957851116619289325915534234322532941569920595297158066361978964080939007400100965677214973476455255513309379088600781193107910808984983470123734872670213274055995794006027725551700447026479481977886366444415974767773108032920650641591878102336916829890468075329405907922766354597978010853473119208903803782854667695546852286748998807626122656141915291591342253515904943706516611443710616665567790006944763605256220738662143966544855477636903152851920451956124128044367206571199766400431394574161180708438818182427572660416746882117330288629816854992522629711850290547111675268535410690953246821119263123963969940610021069523241674559253210119991801901481667784282276866961867518528521415391241834467418663588695807612335300069189401107289211117526629967984083335864881449609601986332347835978233296077840034747299649091278362093530150738469673463542843676930804830246966527298095306250184874471939401575360133613438421540186335019862422891492895792385203465957936989440091743230188566121237259272851838073985217353033483295922383406883548306672260463220168088740627449942687584738715131563398249375979538096928444753498181246280455790494265465588006561620596411993073572329212280321659814120633171452224609493857406954462889389805404570489520705226359502354576618830605286701324877876704788104386152925718977678901044174835108263510321484461216532578550309876421458906957260653138976118715920768112703122376283508702418222247035048661257482143570145974479343798279227299360734853625186150137665278204731780582693329766768906382513599599607060109850868886661748312648973822395685221547764358851861126358762220258043036112252163986809865538689921359015994434731695611983056016732947220826963405865627051621161954584235760510621795461681743884923496268336054247859712529853739604493335812622661263946563855900674461191187603231844756685211109611906386529095417950150995214160556739673033853356222042929145627218798904513864862030773917221392318635065413737875758303397212697126169771940216002112649502760952989369516900700169854617146157397400503705912623225533048364380682441827439862839570095846704606198516834728192450614527683481568904624394293813604897858715277193127166963811675625491917589229152576155515922262345004405245409124604804517773881259815926833881189689762456136099954539686633504247872839955952114826979610545575395613049726739626678779707177874300499639175853453509877698132920703951160846118293096300382795128717196582105790572487680641327247729362546921438116410522171748393296454511668875746600698955474618287100423548992511394988667406012572749853381327002961163154938511280797413248528346887309569428285281234782808457985844556817628194261475052882045181766480272035017476457917247263809895182582692461979798060112146419845647723630360513788244683187828925003527847105974631987486863544644356016445260295980755243104371732845617801912234411826671024023327639090147619590165829289775866784997291198309139401958959982070897938934275828454076351827068260752459454962618213050350499030564449601620660863205411596024346553345311095181418772509176393272177771911650333825050743884148221300275569574031817173307263733407886025784658758972017128271761026475403641308568550210148000560641120936160910873997959242972279713322182475180445298169989884456537955068698530558598456393422962147712324394882796071313751609948127605520191476794667756416945255990501634647170284112822466034453253739204191241904949085820415584992459009307072256825812057832403930711917582374476971015020461737029281257779902686150144027887144677872998453449690032905621030654078831677362383027099746154989422516565950748146952676978201045404783551917572140879381300482989596220577776117334247786414774747309602205324734749224900188303581022860596502382557319934561565913863795899269484495561292760451978186424148404963422947910316750752737873511031427423545737748174345265951624252780019416933117493423444743711805065826571865362024358497146647949615710982338482073785250085396036104175992397233672419942521907529637037028122888378094058051970995304809758590933030673137686253227281950972016109300969453076617771569972927112498489209299921130483648473103459600532104454101616112094858445349587487411715048891184861756866414739512771601902935047827360258738506930670930255995875811885922414351137107427931980702764437206293801471176030257394412018892421375768450537426990978728181430986082183969488647401702174651278600483383656119510760216537994409990226983720062236637031658894200686898317090735436657806135294713395481014281681409502415877023160496023214995398561019796230371207161393168583190360093875288304346431605480875235559175890229089419205712796671969906658387181215867112592240173401944809221532866324085209739126586435270009001893193587472393648030697240770082137952229088748309889758222355412182756680404376912972971821189957468824595419396731286060158935717094364555620955685208980232413320073519528714851256879075710806693211902321498241432432439766147613791691763176198347944357594475708178223774639665224005145077155875227545622805214901524295711630608950171253889017569285296097679211738711567620794889010946141492170341482278539516468432945002415064594874515416030725461672951046954460410553097717563981965259587265980873028133965984545250150822615071695389298413920081699248658906980740450287475479412054416587388123367457486125820947269265485634584741143578118446099537440901671852011158976368538003010754055650999741033654147679286177291282774924130219577096953900867072287958824571174292072515488505625439273615787999566333249317414293562003266669554959324140945055196332732722319865901182694274735683263609813705549007904744818330257911262602959629014375402397913441583249042979569803889487811517802859330632337763825827575398789818576353269113534845849337631128122638475015730623984476125938836418813892264828948485942262789146041755866477921525192437991311069059114514580595259125162371488564006770793415768651364103126962142628178854032578450366934489791127653450851512087618089759099660654982743990391831005692309091309209530065122383223006754576738384062867872379027189443166813449451286969874140430378484732137379556959906689836759224555406759808528264898176208852745425952571653925381378463808082255954654058571595705613957304337872981849609664720193045088499087846196471932698099475216432498660699083189618699074937667294765164788142809260391280966350692482165131259661136444381129526892088840836610752589841685989143965360423308770604444206701024652973828977771646661296592713754671625846374684005683912824179828197602671442522203059195182949485547900933520402307700702432130066214164940117705439874028039331373263540748542292951017951301160714824179899367278715287246675391021502322994788348188036546847882064413587485325791415019775611239369728142508180000863287886397594465372247712935627607042050080858297843048490332776442388219437054867583107215384499191988220113668157424071385882674293044777965569835516565761130879111706732522359814335890473517483330441660372297568896980723148861885555318936895473780276045223514800585731776767673120535403793659495116993328617935658825274966619258955558284821376620353150705329796112521190051808038467618710097379677927324335039618157846518868994714217190486462604260811764732138841236322471693014809878427630048515941574377507176632801439894925589294299292736825057638861090746809077017355486524149429019067465535045665028007941805930365265459914531872602516399465463716670961488211703793468559826378069145074855037236194809270601275155348886779816643229959542159924547970164441239279926055936368563353149060846370991452004799261871755723548968781201934795211041483686531051865850228489369970047210678784194278691439938749957612377420039894734048420313660776710112386483479153845222597584918529246981115684484486785030929641047517578345413199296447157012985100439851875259233670466159643557888719302040448003831954505269187550501942292133892319038743138108527412811794823595626938581603400085265551632009646118916829898132442381632149609037708504811157543511864740508334432619811983358126364414575765111969819421239349196497755093524041101130998295280619518466499486536763596294613766150951441992999362888908996998122660770171977735601254469513235408253588817175541064044137261871736082948400194358885934622198164926996199807136669131584646493523475421736672117558782511955169997505308458084417091325563736077869582936980408998557467263825012516679600708585594037286082628550677051688631762296106809559388801636842752953229151171001164658046866087141101609282420786793031268025100226479053166571257130551862985824896377293344599673398890746566627252385113603275344680514284004817869158616436318114677399762365570497249097874880337471138553816220011554240249330640636083209917358419211870611203927614176439718673880166829645933210758995734311774908476818788467291034155315509075447753105004581139803563485023337526924116492811116084382766548856123059948553758339042366046678661154098563239085956419840252052557155305850109207215962773866453913898981641995392756702238310273262437877620330695406928116328750216010786204200411234302138503887912079270648070047611293399049151446620485914779123534218123609370126038749056137569582633540191279738489967060802482827005649138538925286150608071047567736954161208219888628007238420750725181018930860283751321855643096776011628765708479098274870656860503309232470239969944645023314078990992249650421200621163391304475640949161049659413466748488492279458525124134851539123714005622917478692135124405186633842817362668629339236186522874345357685905521472832000919746564020930207849636616979344845783490021221640821195791948473999261043514409945010747154633230225278086275042855572705410160185488782485626616155866304374919375267387436598519537734240744428313678964654126589286988143074458788172832686365520086836017073922693765769874118612739463631426626298891194437830710641944644086477095497386983025220431147465932111941464712457232855126714305692135344304175412597192273349711189911736888073752120012261940952713121181029476890243597746350393564597019572424421030354503709498884819458693044877582208480041403730657013350293812900164261367286550849268227510877740114252162782828194625058326690433367832951841440796063637766832318025522282737119994372809233458556607898103648519692054546192885115178523113094565125560687591083442490479859333420065648969276214589159328044477286544002472101852855522320119953892903544725268582733195096821580283162050022427480766413612509959804322009942208619417660272800294946127969662830580024837118531951351482635458893264387399045354471800772286198306699163446251245885689822960060796761548079340966518758774058163942646630745154402400049965255571483383407338816047261208514086066566564725934992432355073575980393510535609624836277152330260388376970096705497206051200311462655080045442265468458282276400501195464045931671655127203203095888063891223866972211416119973180647215123088331015150498327374152707619335323108441487532951295383168018748077191337357152697414484000845650501851973402738689732281661562860011625076484746465563254610606525529325017804230369724049766691314670413624242525924327972446971530554156737936397831281572751713587106137315791799564325997611895596874473017825887754268453107955379479428805078791990881588743051894531720861600056494519989632267400921731105731556659464372355407973935168522962978738623197289509229242135146729072187232234391629156434438050837258505152859189693902346703970085937186556106368872050474715882197533669352687694241041855523980396169764312914836397948456602235665477660740907616085411285652046918918494393740939698595124570204581362653081911057304562582774037204614400171928819737963958448251693677009719559956446100221669428721673815141916734507827992636446124125527068670091508115025329805699216067025977807265934537766905510854310310923802278901785767966683930919572194676082972497811707084993509009691707549796662032834940536895534561860078675339849459948719091126040647314942515466230150776692216846151898213357161891672093584290792045606460230628500856147619149474820998601827435738243972223260033861449311317173502484814971177713459095770990633469841533468959722527009593258064060761204444594222328390352479209657086708524876570288892350412894349665878368453622463935736190713511209606017082800249281286261070136881636621140017013331245758034710598790589583701251238521067897419741974598712649438979964892991105105972247988249088275616910889712991550314366325718288356947978957729811789632824154518298661295119766456508037593670212460008012377478429862430405859705975441480754893680699258554456505732319841446656270143321529923633690515451494249496011853963513882652374267827468329069316925219511261619532120830689716047263359848367924756703152279685755859715065613483562550574198805701257054591197436555376755466774495716772023700801095435765525589972880350920949219293753031280906070754051032783779181254515946681797277032205494846812278316891751935099037315878023637841971491157349606353517525718928764102870169930409115909401848600228951988246091993871371664084461486132820958368150398952586159299753011230595067812202402164167279294876078383550519468156810487020092109652132764215707142031146045534527265530260886345696128409198249924817945709976139239528035866568745496126912640962675861553539357522250555608215049175584636500589773488216921855356726994571891227135686102236985188255229447290153627264224234742231241073263350707916060035861520667289995438417027084641812736823217856000792325943870590537878359400667000718328677803613013456184153312958130319989019130999663066709506459078592852378921025966049193988223544169112588068880367163683421749278581571479813494187930529284629877465957476664948197561915653395043621134104491983054276808836301996106604869271396965389908186494147225167498149052981362613231905900485643176873591925579769073605100130577858028844600702534379799094379003757650379864302757542554366182930771522067706402418591591669086507666269680177726472224365044584392369184582375105269900685085336884494796216143723973358421163979878058203605445053723334052837049342261279639462804172231232369994682455612328802497046399106019325608138006697555787827668351259348340157111228052964686570302932153018280546304215651629610388916055291414278647924528795632286679132940724480031145153358895884401488822834352402360518169680275637526870662047034127701050641630443663985142542252601689169722111817126194801026433127365319824236622090931491637371054091092462990028460233940873248514173380944202667569811576202971441010325387179884645531586000984161450253698245894444618938589929439135032368833102742342194414322638923270058337773694869103600887239454364821833177086897302405029432509803934914189121860264602573242753333239528020425966071287607156948553939545357007664733034428174289579391685232435472393928034984530943777719734854695649089794477978385371480639736941634789727050996946369574837956783147920331919671197277628266347612037372600958006351631554329153895862280550755284544418829536777905727952372639144262305571447473410518993126164744825641041136082184035528870259027100439473808796304331724913782223581945954852535361335741366057427015583511005701467993990036630491240705491828335380453865617373748119325906415361937770756276559290563376292952042044528112895926091415535418666981208888951386040927792701451002672186294284147566421592725758558778038967126692555450082337160095858250022862713763821084093700284999408883424970582597120641436258985209346758888159245028177198323621753431211712397339183675776208935436220437892260671418183758180713242338513259098914477344336211912208868896811684786982657709505081726408263029118610116048702212972958063987425870579275830356244904655752364700017561130211885800187579860969571714022034123334555419374863997991626586141031808633653765251496479384388790672612077711906292284909818293407065980249003374097854579904700675507678126563841536807511493526606599617479487358647406156675635014606700013851897084253390942125338658965146663906486823175969434099440887910486550489467894355230058866602781201329073643333877547607195732613727866275244370710104403723184619868512720874446946258426824961133120786993169564820440808747942643279181910848844286382255213816557466915961783228170310894432753287274461487302628619519646067062743957541952167151321382764637163686134387118324671519797407215400154920989355363502578603298952454400738693259555054311981897639476405901947716372006821021730903108671159153720718819751942292861895244952267942540899801246510016083047458040400333004900387619290555318027845324536419399150772784080874332751216200771472242608591744271453309655395375283499819652012315376504981081797692924823964068893513695374753655924009574145195453787774219396560291494463207379491778628775177205168235971986874276409349660882571599097619190092886269722414811966669558558201208047982890732053767529763242376152184633594674783796865900866437654184431705953916375944041838372702094687903935174102975494964328566077363241724399210010324690821398937915875512550414730211805573465589631772762543473886555904373423177211503486983831387949972503147250282181705864034481243333868917683643134416185077470583177114626217167882753168826089577940042046686018902364991259830697111625381896462950305178568474810942460746347446686589865578563014945366607465710652564727087412364972641274872138609720798481876136637185904799380418601535322431276683414181131564341081548572399060434379436912153993892951784603817762575493219437689224744117510128114128843615072272059469750098326458710338898889246398655368804504115560380883015198730793661282413097311126147798054353356177806906304348462310424433697631423569842545206099117094132287215350744357187028459325509180698888204973837685643397284963358845245010338717303832922726558354871063459933018716621172900314138660181380394540314071543839227691082811198056163204545864419233592993783091168545303320166994184026606514106492601005689314548045792973235739124692165554621485715730201541527426349416021254968871118369672286978247836076277246286522385393067615373632129436355244383464924676960403366814095678645768512644578986299453094898248462108837361930817280860695034865434047236896065001932761178403828337310730759838584819663085050183613898050204330144146599024479959998204318717390986554428272881851198793283459109843649082472043227098636498671321200511985644062208494913901660566724396551139041680952733904545406221205894048794802794783671269778715218210507014072257103984115538871855727874688969447820807610744433967515345037221536772661014259765608796364668200388572563671976776345077157369717396353585855194869651230409530603062577156512066741380762045629375831621224901144320222087434860138267591732974240776700003268854961963164773814327100540671326514926732052589599696022581818973909356937180489722228261302728104751112015525868286905481837289631495359311120875526889066936300447047835143245681927141660028720394193923448876833875476737635607805046413812874445731614635776743709372218194036002734105877505074820068511620473468855616754891032991879917125942047385460638090553180631987965026330291732256009406929680069747516089700367292928749718029268621195829654238856645953761932359957126730089412754275547880414227946244141650918955045202850521747483193390900630584588746912085774474935300292832262574541789986662685845019421755169462335373783768470803616337975360723032204252150180919944033633360761132230327499899938529045071692054488042052955117205785435128201351849022122702889510732046365535982909349222456271228106035957942085839482809281753586989700855825174163708995008861192750357055062414588826645457274752780709591829594883573945867426485997213208039997730199368733150975015760956003780378183762915461005899656280546002029564436442579164991951717591534391827626524679022384037989735512423349813774555069715455461483156724547368279344929394310437263088471651678382762888448701279284132815031409611510233067575239517578268487590367468196208506684866427338188673218780871332493614412877410267667887494819000613138926891862377820365083631873597341422596879142128302562596810324626344441725682652118615552799719103641294916139845214055417986921145091715910852011546043762065525123179124193341794101062640542536092742556133822449683387541123566205910190137338028458798581360116545705658841850019610808207796647848708296280027898096359531049235684163712883460305496308997591746328104024754993071669069596130688701004223114210771667070197566134988193359251909032064412376009096743121697829588070021926639754172942436405161903094513177013358369196655152944887161122410389840811187624169889672498784605262482132447439999364871420218201040417949667462342261710592411884852643441586986627614163373440844448096126206714562032992264951896730368023524304684629875294743542593186817812549375260743098907117938475919736470809815486247293399000729765290376078978441954885726719132681031447785810920094081794113623870807783560530888455057113365494010410799605303504706972130877919910520086473967715093309663520474212156732752015990146494377064695304403115922949503525720403135581431655891407269584207306607828160324201704214619770975449667475347781652311240639353946078089777029205737297649362033076126363083633081473061196933339566021721077396589875596865655281378741483774690411094776133244519780171262705471543178010446840178718187799959184980866819571974547165168177569179908952861307342866479465725130222077126332205182876096276362225482010744104233047406902946632097444101206046394352777034741739646262245761857278294308746870761265181468300612990639835363391239646438429926545059424410354397017102479098287215261953934377903233554987114937447522164711648573879099625272777564733323182358904954789707720800165927857621652646361851694267496864812042821969621394814161606051853296864626195043450233416775874115486058064362375281680355219973649639688665113129827976799481222144488372469155906789596476109365666340695851907318864524102575430120477870766760116503776050181567637531923500487175521905780584563271743531895171478375282341339953415988241702653590787440492290240596639773443316931092555395604958602107591453337753941278124250633849238918605562359725325405422739253614613818544955838344175051682300507243673528663782038769740902775858110815923069077895035524716655942331092839130792714674516582604566562085821408984226105630826084104949171136210967424396390252165810081733927666391830671754053090019601982843696098775634524488302154577053595997100237103993276531777738411538818507712199100200802691050581048820120975019346454774385804542084135542104302095860672685472809550841936029917940036015642211201916145172043024851269421309938643882962790914375904686734004675389506654523820358286985543139310725473571792338667571213727127041989928386836991421082639670869641265138966456511646201085538875549346611995114656578415792893409269041885891105950237764473385163534264494396308931863261779250367066477930939540870638921438610957673630609958271432697389496405287212578350009806731338441077031823935908420374174936422056011558242441061217387733167318680660223118739118527579045510970254722972981574634138325990190834040597783597972235743121746721452169802262747907481716793432060131059909714395159876759873552144031628240400674714403178519509944074725248538305477559847155947534066909325844906922915221289878581134901916169183825838797932275486846469344355541601079441675064171496834933387184993605307900474656054595538311226594943570838560694003382762981530269972587904440519268960337597275628901313547217867403710200067845709574215834040733157628632985785917425737042945847769910327095430597435863721446440619421419477541784739491113426076601182732045177576535188607104124042463785733125051720846987212245447908832279688427637988642347584120336229776139793871185689425444374951614673632183161634388496421794870103368957047262239376431268561396246503503435346888688760461767477147802083293866233160995629427623340211783267472524637313442186446478193146703891750867665568437478037702767153064583269354958907626593745999650877408681852786597583830598682960901371730353045248459402010850541778837471561787297079938676928212041119788674446991344773926835911712289658392886165497832625105515275601499811997121437757240733589557354646377728389425440141987852378402229229837770893737687702558753692544610494291440014095626997806024679323432522289182857769274224977331896685451352888541190848624401024317078314524838538574168201480867812510722563036777492927925271570731369120933866329671184625782736375173193348729323877516289734520944435674501572087651697377722952469920389628978416013687696343069976402558644689979696025658377730523396522799997614636888772855866342654590641741616173390096176102607309363478770477950630225828043434545677878060388593947039988859197297041996371551896825168096385109426151976954418836803175125449766205245767798122693457945894129007447414800391442784899478388003053440179365312377980565282496392874880075117274629936361148373578703885662051760585084928189330733006663523127880487070474395397323925045197864927307130181884034861332578006328899144627205933556154308762586282668480893343637618266043164729808573341279146603012169344899110704898595705360008780748441092707011602587914429581858660937144881833134184513970572660739945437510928440565791668513730594960476826105079403724837675141951667950808367890527238906745290523303029646035368963971915481672492440333766204719842822813580931866285953069111109425619066828598432154635023013348200100959476451547862188978241904502704615445474137030440209349615017131617432756100290577096377177191383316213105085577460980499321168460765451210885237695640517315725366761985289059396584842716497258600100564688698373226035029996586810112355060771727799764021645593412043218998995436515516750810983033770230771719843186217014890353396711074580910507662105992123207095570523236460230376624117733811549751378524618496330144140344669457952006139553244884034781487466357532551450229418996010867483932507701478660958770428475901784727634801814830113536178816135301386730322261031586862525153984828976957560233525680185299448382907699953448854003117827704083964521288104024530185815730429075213384168829232353916245714516366260023086740035534713856178696678179675232577473007909809280610305385656394466012454722586162923469277087968213566021374482683558629715987027421149442220590020814873462598193319437711626130335921040394699020820924507218020743992399605798819693349184286743085036750317165934202503925666200881289908356412603725972249714498334048582619396408111252714194760829400369769585805213961848441745340234121331738134590729143758943742628203190790212973360259564579779323151917365179097268388638732905802440193133476612713447397520666802851208938403121759481604558601673044271865901510750295225590773523873518600377587393243156992103707787841679668619460535003648710250653553595146694926494283748736378254521421341545168612382826841699567265318620806531962311774423298226518565208845414827914284019772834167639545614831652070660864722991881739049828383273216639468451299903202443019256437146444204682628759890154158698321073548811347110666920438884516558750200842722375660512115776742340366896432864923210935209880666084363513393230737210413490391116514162798976822611798204981345772710402892873075700982575767800656695118008976788825083950215247758374131175985281377712573227019572295844941443161023943995721968168764071116104037799897711758464974297107348982851816719318013454282455099646743219404952246865608742691963663973361824489205331308966384226056984804068888923564982032109488762355110899137211558667702923547755067103309821085434397614313419353080000679287170107608596689733492347689732233620522876279585963635184365792961754831510161719523523647172438653853639159778456396397226652356194324629345054935729837846899708213227863065234559504224336063102479983729098135485966167328016720533570338379885962174173077713445467868634698803284780818638863045700680737701389695841915576481451413054536415114658180753308467144025067780361037223609861476309078481596134905459255140744829472182980738244562679007262581023659437074189984070239690911524141613315971030652312343140884959011417222207213287312004222226801849521036067315116614848883484620632734658914896620912171875441327425234647941688242657984731312421220187104837511210586555062479512911808634358382646073092653078498794321652516393225392558281980230755315215319626702770297992461415602330620091823825645825936159891882247658995798585922219723338033740731235177317171375384410676496953578589396985324241817992235831625209844668885942784125308345143883462601219280180034157451285693376693375235373073749602456043934373286060075494636005144127722128335195643908523742860432773884213820013823496651455124821730272731026857604907592384994692940401408303885092848208804506452326881879927121617934913531130620677514847472337266039331830887284839904635253981759474756506542704175097040588583223718422004326307959712490635967840569730912119445749617977780681397780637496585117835207275067784435559282609751702319362008890627135655517065404322280543759644623700254893986759584654002909091324134316961828516527181818948097636982411431891884045631890278440343247569778818251189108592576830927341246154869425298516421048229688474330889491888849224023227880032203520690586838494829843001653534842814205238231476432559230059641393860914679770725687891723437758998594184291221750539755533684895530487340946382227086127329897125557244051994174658991612339743960733743542808197937916473061526922402845241973713934384364127911735557203618371117309102724852410054775025350357829146848237221175305391384837613967463263657979003341651447142661678898501670071558927106440769242567233029046495420587142191400374702187851395183165662253994689952940268255839918400037359509936107253060625843367506608829059634071645230455467050946722609823774409311426417349279238101416318978849891507956702588471879910026947440805871394041478072149470648161293206514769218415726107364149637101458629872884993781667660724773336598898264703016744721984516034984206772443377401992216690272972924285065696707307420085433140898429139276441383199181071203079786012621251347491486112607909883256929713091768039265059444208959914109418319904004253026040830052280078958126629748775408698927269159569685703471049277074327747168402292354615669882705796666282553189318900378729986714631761693182680570026560222565743377645618830989056315406426397383996699896993338511663311684072509517078527461098411775060033380181822010534805491962849616551235874376861473803094884543706924371025979453667773196053463150710443405735946178966634746092639614145729044485674957197201276545955364531654685044537318150119423244656028573418512512712498939476929877381568085099217536132603605204295129207506404744626975599508622176744569130747881230205962756276172548731743322831331219877296597907634028491137344314401538862414070821268885859350765451614802252530631534039496778648096550437294963479289736218100107708805395728564327584631088540226662710587140768076637400682173086233150378405616114414371044687841682619570693555740720056563418559995688405817708814245268202029451807412126768160308106299171386256906515934081433057609397476249937993349114429015593323149649214901515436013900769073931758593947187691490386598845691551310496317281286676810470175521083053248058887034600495657848675904836469850257203458720895379883707528143335304259078375411653472168677139092651100313490364967704712918880129981576849235903627789012473629331998783126830814027265401711242035913885646482023459800170935000958840618514696976671919269720618525695342245371584183081742705431541200987766664633178880592611668336334138758400082899377025642496203195310788964100088071796119053500067169362310281239441751316670766095478454944225732800488389589393042044097249770757103606232015556107237217840141252052345582072699637339136465012429156121273220188315828186278704958671778499345417390494999119872357242520617034038452119208893712229725902641150900301671227783764057251111153215956512538621865371693350066864874968998868682157404107037377505605764236423743380707153900535600014550405709186432601655434744981155893408612102998934810261581818348809585986266988191915565111523677405468759829512356615834050551463618492024310312586776603578672193496223094509868421525433757966356897705400461529281632738075916027443416271422156154599841075803916355157148447247346088363304078196325972046106922041364392688155452129576781334079394130066040345897122262384800262123848111442565990285936161563577896777339251807509879363740429711504808383683211520784005424674626583576875169144563167717112803205049241089938276227069013228719061435487504016528251949813198319285823776945177735161428280190989301869638079351200778973991715844887705726478023262471222075659881514856506456937819284467431836528752169455283955818243285600901454547409316547736875101412049072992423692468564081292220927205735655837739932701613462431736184767912886512746406499535027138550174619517289449132440321792950230878928204350852497357148260031343488952023721152332072436558444047103475667611428447343629921557267253790948460883083611783231030773952855780979744137985673352987381544221125063648840387869672184743967359299874138238911709150502449303766294286408688195715317546842429080306159982408370234192796197145183839296612688045796703428199881201533607024313481423134077798633511449951774359698807032191627109299155698970781626654332648728302127366087395960554363279045529480814594038434422996876865146852767857026945875157757028005400809007541664420942726640252030509679346585644096809130424264110851267637571036462647641926411573567684669482339593185856690264391532139491543484184686934905553950344866311161210061689061421665253194996488530365873206606950968043283918359702138397204532734356106286496595323621322254652449592802550681619480375130553057119152072065766486163275296710199984549570638200083940195664396599346864692158452189767446430712015487894080247437472562629270448149166091930158785763430332909663576044853253682753812312865148143234231863787656989189674780822767665360313633740719055330686290246935095857379446261792069330655528643109305037913916604897327151260290623890702681380702083581056942375368816486972541444595016103005596215078321288864603847319332289480834208021114898043337480132624714065125899943251313696937452710814452800114954240973456903046546747554468868207744975272414511038097886596310764128201860778096615191524228187486503297481701926327230802450089817456077679807982498685586846390156942711073382349311367180451444921618014185132955272636368799672925721639871304624175105557247647837894443714850332086409863155426601947162923824242093035724064745993427477290230854595858668743151031287896450666137677020639462776361375384395203716722249592472412099415432445756205850515610697772829877363507539198956086193907434581067798234234262241198851919196237597288746554049833285780318153681542627411803644528301435754796692137875234182737825160937842478522517209678726919374805986142113345412303848250708220319293257876219535524533689114046573776284126375762908701212621229881475617672702218727162469998146774519759400150044033354443054698684886191220677335392545224627402048380990484823273360891558265575385340357742461632430113239864276878517143333248909075476941884881882390656318381202891883873854449004081947000273609511770048316353376767827185652323752289558126571418452120053853997120544407031165468000587340947246983395503418289482476618115794704930201656393703681545763081601625408189910723361514245971676099407675693542481040806851992889257198055265569918642342553078725652510789758850102412835166715319595184954396976023666469994781984751467245231116931871648101080940220012805374238455301878425437435644550368942609550834053893909310990987853368755390528936268376457876011996270077024455816206487392387046357611554954299045601856540510601192803194766191905113555718158608606172652372063696181255252584220917290182401634709797977761963022597630730646651270073273115349350157192046066134117419017937940313063915822339103840496097896861728214238855256906188738498934421057718529369598842111153441329793578082460252342682417100007884537747120713668583178635321864195832291813618140264537812841338822025089208658212253020452801838316515870369013830454067736969021633455381457912465954001988477186153789967544477881909510966419893199519673120216713450778712265328640252462256050375280213937816413285468948795330515851271104206359218350914412068573430751183430919971972684747402064940991373686843723877373976786362036998197415338416429415870705066907003800901564772673329770040956484403566107119497814311231617617118559414754890221491573910953268045539636538937853582346015271983292475320151244845227543676278955149509155554840894906791889194601448210642019718107490382970897767088748291849291047117391468120051594087530901833201233493266448737585779584316384338212243441629685209069249290300414166378732288009258556477428309277133138574588155407368387393324279424322454695538385303318099872591222669318685763845796619464844126351579720680476998666435655143204883952799090364531535638385670169371798855602287696217800942619664530196842956851246524882548254112992037860121056792007975749084818629937835169878424916594329305783427840485403404445932851944924507910106978691877749254646616814567430397533792476998090251558312937051172518380089624067319528032194457201455790783182368128066441594829973105651919958430973004257321436642812244509366179817354008916318383818800852864429272593627888146923736930620622924772770648848947585038795996375030208651006026369337180761858242729121665402423640610122631435943089417564447546877255485401639042231905920869183203587907837374499953484810174333491105614728279756916941566110575858711549340811752723262157466697929233708453378377269233172724788318284866640873992860128677214196372366222664304030153987749643496343644521887578207182281461817257291505255243041228000529647779646014737691411768268690941147532950550979501881453910234657784742519937583263081883090393541423299440515774848253676891180085505205260199549017057327586163411063201216281320345711302991230406341827224564073654594709102480043895142872653775705322663452207897905381734504027695487061323107155485712774367206314703758744693527712185134313368056067914596049576678622899292177950217418059916705698555089459112151827512660008047059724947388072654165930630839152092785188523125776385963095389368611625596994481635902455618865634955068160789992027593165640533079340866581454834275030854937414727971289144287565429804051995320202376296864495321956753677373731370225840998370525612802069337999028651918564151197237412352305388161189000512972518558213550472318811563874155381241073192410419073057604683219074969767642509157522488871583684676692710602395252566013686897272517420745130944465523863016955358780633518322283733956664760175057918554529347825366071086251791029386392361605957302040023054983810329143897267037105414101482114974792825585504256095583574934910599315661811596689001424177859029582390351151702702910028865364390164617509932935210364545339526370411849370052939695673126316052862017618004355041779722897581516005487997207936935725697435796419176983007527343478537937385111450050664775444526041936782148366320124271224093605172455676536490764707854573760428692664633404762578348037309620696462886524037020355981199266808322445621509341237020553208019889935572630804903434977288381004894672772027030457890497258755905558506051536934567972603488160700126313245230873638445009509911918533254431823054542875338186785254910164636409936151461155039753828174840927552525950372402058915568224113107124463035328036536233874544018332135003072894276162840707568545555768568167003111553754894312258528684573546533088809748813874295664981696160118013284232964063724261882975656548504360244295729575434016895372692660734591481835161988905425771448752608928331544778080704814647034299587718490139401509263780611750617161077884278732659452111371689325249667817728244391759387072874402675147979985238775396793807082055978798625573682436606195259224925298582555299650335954619827487325142557502222939658279449071524313185799552386070787035588886118294452777710384663709298626678041214150645233618320592360103003173947556515852505880429154529827291448158675071372200849817576729883431415616261451540600083618776732590955970012282317517910216827295214908566297544052864738294525250914721279118492996927682834373959178792585651891533648624967198880568846106198709243854181643607587729943119460312181976888039037235533091265920069858526845483316567693784562383269832238721824348340213565132367008410320683261927949975485758698728188739312096919772261078786808774308166807705345791756569040788152301889813300157357490900337562296805488329074424730230726079922401861012020635316999993922228355313529046150509089180205871298898783310219418541693979274850535075451085186689877629570773183243786440267138519943804077924117310757189941186412875127576210545120161352235767081910279284842677398985094809510295433038862337023661497886745226003426401511802537539880235409942575340536962603973833840821271441981733286397258436879364021229041443922871122769541816268428569369253590163024783197577976740590403997437071750891938822151198646034726208360135844472495241672229355227596644222078359883824319231164219892684761892730232085771601048756717041737644988524133922699299027758003211800639559493499237604257127115637910990372719445622342297264992347532581472246530115164747355700218813745365306747725810368618821137208342058431445845951388501269034132463310696128512263509137104071761636634978916041167827600798842863267008459169698502142380004133944761028389788277164482256439974024788059247732951084112058800344024119229616308685946743170671291967818928031491917177073264203944337373441289279036499176492211554181085669625358879264924188392815697855130901127105225092749940917771194817705923456434141093916532429678934834599721392884642122541533371359555711070711756050425590941637370655499657787304574278578778168696913791477124407278573354071428096729166492991434648065965207256493615508748752672472882444462314044780961853234821119567580070593251392995814826827237563923802109149012843291184238023658989702189405862073140611700043669403562624317495031825298329680955493703932029869321830605758575617644942832963782598486999881880637687607546890494715775990211397994276809827408738021972038497860292477937800121908383407745609712651567328912972654809537407881714120308757150628508536775380803853202116728474445704687341853380678431421203164185970332205291955197359488631951264610541477944944035445500881629213975260979383051946893702624492925919955618229523002146969995382538702094953721640657209813576131853886897637534987827109083771544074100582321976137283740435688401732695549062277316653540451766345260234175594561204066567060297430141383277285927635100753492460357381070234526551734247630869266722604742923932157761207031543167309807234998490180530931907033813195729583064210737304370297545229489895563160683659482777246864785893766193871306797295314095531558352379457902002729017921135524685611794025822171781852758048841404895907981068136562545769203150913105795356924765808720010686522027658979943278490916519523531463621140665429762246255840513483620314947148963730576078187031642157504491658629833563032952057318808536337255750545173265380059754218229260562018858905251447169894102723406120982388678673833678296807036802309071396638880228459545707557533299172918112108651033757616754599855578752042053852147635859183943615436578132656852829972653725786467334931311223215283233042076575981159018725644348702706203320188949965349206282859819042168621271152871720301800542950872425575005521922613544949463765209825053762654900895184998476107550412266836153385559625837604902818788778644690114475819861363488215208296471790342136012056533987539270344262284809936099825007557919035308691104396102067906006161297663594998934949189675713063517393737031612174628855188091679673385942258384025871057790266195280490385017250859257739431752209335914768019496718134567188452119894269319150114412022993371985673889008741712350325583399052157579004131691453471196737241963239469490895435217111733526124061626440994998377389721371413220017491885671645693110045801506684178677942014740687764744210592764200868967280767854044605437191315617742563698611155950748066494778301128833466473078537175122203312707616724896397563820433095144730658170177159814407968828649920453176425312678214740631225331478496255741302680623139100476623068574174668393283787337484520712376216617259349162475303592123229851817696080380698278329031342480056580151218046168922034088437641097493100418036754784573972678412459193088214732240501200498014347040064270437912069810809876193848716047037865219394585672860428046505608356684747770266596155840828848825161879405528300210957374429020268835679788803082286653557289356434595193243151965656572882896847079051632047048290791447370815099182485108892552035829019255803559722568623956152511838220947475358136214637294825914820896071847161881873135021209556843633041759682456424199726126410492509150044774137749710710816662013226384268890307122526000332120371339694056683136378910530898197711285877254563201117503721892259322360440401888390013161822883896187010266902265366885432639030606024253543009987706420280330612791258854998096832493363036303229492432463761099154942411696624854223392491620508637535226852526502598562072568367759968271226209213443628036184332424141500259952675888318893292784764414143314934167511357014866008560616867447992936239478814153398312607422153904007521680489823358335947769108381246195353499439252079358747611373926615611744884944643786125806401788669725581417034656637638292706034428671151001848622741721309809749414352255536090846237545916812490708115264123894201201730403411683596613988644775636831331571507059210049419796495295352951267229321844774935196940499342482025157554119901060971120184804932430569868645140863684309922318424438356702029348066906462078728133564472708407037872156385176601440829683343523664488396598574363226240170862826582167018815853915166364483154993435374760430848576967991660965616627478197583588564256473040709474030905334565813416623551621254004807351210743171158722551155824135734244751427982049627926661803509030904718765425475977035504465318367836648271321146866619762306950542483983600694833582641010937116478149813629306792184984864892984671730160717800940990652991118329224725432546807411492724630781562861646321430679303915421301879338977411607211383368073813730868035606582026999579016530875915820259455923823882890111116566811569916199177939665083457362989861248679838218562229269581281091751371117016504242636777996941492908804698223408476418864013274530582714072463487267183124503079347750926342777160785720237845485154317986383217301387597463887906454889576402097409881677744920116404237012940591501407527098455579621441481794548656770315995586439694828713622895537602802672724491699515062024797669730266763046093530118287584656363825555522956791175564803282654487543463385191266878989523998359120420888092972170120570922154332171939224167166205203464003269878560555881053797921849691420914776299319681153125234549146833203978464803530243821065667516911166657430547201580847760441305385769418763553357467259423273972733854938745777081906401090913889669522731926786607593534480629593480907155549428752553877085596400723344463356097100810926846280031708894345550135448044786325509584326582989645778358401030451983231477115555796655118590178465688303430025182691453113830220681543765269796357873238720296571834508318258062221649483900858935695609614719651190247196030669887358043335768855097868041962241566811442120858711572496529315160395506276015697125989111631671098393857733569876526036370836698616358190834929537757983943631085036797213179807667965223982179201797161424318297433819677766549627086228670129696347248901444694191911608191550336154691642096360313649158007240143837547344191604788254431275283701613105482447453524962872675650887440504034138526961027500287990717271252286640837906806623299769569394458634746950632277630615631964554086257458215524693077376724310836060827829462807496291649685157943822012986380659562243097001813524349149405804582714821601210516248317444539500089573560742915825014150643432580768969385658673730575682080461390078199395396377228593651577319609491594330501046705258220109291177186413054466009313157211904158557021835851039264261301349055449628908400185710799056771135108218071482937988442502445050746051271902454145929055951579103353852126755077464918062998003812979880852560891694138923464484096093912813487279227474740053503351836147699843823431390516301566773440282970642098053396397970475208203312802918516779688303026337844131217379508187977713506129156093270152342672713296255643444644459448500832908956353905041245477473611242925311559055377203069587023582237678427481473218874919128111637578450927936657532442611801866664487504091181932688473734163305998440531732779960487661801376442231232936076234226919648228945737278101594717594761072041556001864776457741929360223131200648843334917633036597219904705457010207598289721309639370221990927237385101458547293076200674892444394895636871568645193411593820888363810863397678030702207775307844982422812006543580299319462937002575037721096048774812521845101901442151564727249779405485728175012660835124645332589273199306667124001558871006383618211199055053962763540018067499374565727401634296176616578652758750490719649994357228743368422089262451483865201454732097518570628177080631316860546281542328586086782758338280222953877830466264287460459956265125768675535893850443340266690655093250977455704944014815471147326807365124188202153962463221165482236375075311797841096910324629992122466279545567565204450011669139892028985795738423257544409741054180308437205120905163269152844511042496383522607943698647299031853539815332375065273531253636445927570407113575026692327308154829889310036130963476210702653954975250693118312868826936055365203560474628557398316237997313169480449278606532746648091435933195558933286704859403903820729823956905246143927495318810926434162466924532232913961870805833535820960341693359578436310446746491629080100562328442381838950875695028657541524512106955574711358778601215814503765272102426179441510540363417400824070574857193896643126319241873394274680002960345967450459267829939787488486139519733349153973359338469080239131999740483079990925760194637681593644309866004765528205673397261782435355932686705763438953931647518504237994686644226109756645017477967885728045024192439050702205107814040547627967243287779939772843214498259720530900599526979730974283512956992146483892252066888467225751366568658179359064961821799184955709604590615427577922581693032174047298135410153315098308329355407407210727344010959978919083582575244871841409101769033437267509472745680490231996449832113453069853008710851755203136913521388756511708377672011540459856453225821051394177750279973107917169860818814698924317816517263610369389508162682845527674975225562434836127938654478581275329221254752400272794128292857570898280513638926518913578210606268138770549753661159733166017259396378886235898277995192294885341166039459228503399888403957630173764858952392549186741607510987648588269773590836838669639519462707535209049431169297514128594915112676948355222837270600568681110915595626907531019315589554389732461233016212896467940167592300313071029698127498920022143716091431757392807365410952126771629874154883645431481205752645011959349501847091070492679522213862351081963143988852376143337823813496612954314529097070200762828864105720089156883823104424521993833324514735330713336394966228994057083341142876854992593597462387126798682994213642850102627654718424448443007883480720505409937842510887869741688195492222935878045532249596890862525825791050742772570112497776034804530210788068854695370626447653523612551381152493044999525411570346278851562284831143200755362164544205750562374588614314829686019988129406681111905313733567112499368290378856681426586857083640067985224144119574559761351278201819745516932691837596801820270907106403458912868698803516249049564766981569393910072966947333847182289782087858443130765686223345731672093205265006045541842515554148372065689686462654849548791386542696592003358367764148218254597100101489681205281986175890666766142664803781699687612570693329733633560306518160438836880410097817045457208328959357913285748013175578358677370663221207850821750406125993620777902524981425017356218264653049198343814966018816048500635013480416320029001878123022999426847588237341037852464615370911801832163651359903490967858274854099670120633246823469832368763265734489068197862439484499437426289719161828482255683368678826309849111363614987771937867171653663960732398440177178335425987871054981923732511683548355566623332717473565516231948413900416564623385872685816165617582474719929214442220517257883392021259905505487435057955370284590069507949032457039504559595238072117749451707804723016708202336053661444514448773006696599010019774617567040357374196181052185636538817441703779719663777934524238974934903491479620937954481699945087927572729025591278697043943768991731004914596437091866388321110269811157912910339276707140531447459680403781873312327720937660906504199829193085613288281711896916015658596376361591180941844009900933359831867547763960005349960566291831857836602157070619287563518668822863526201015662126601663019228373914850729543601639021937933569075891720296090124757647189693167101702780009269807808957265748514171214873873619321056675453152602949860030427101290887777905132900908454679377093907822515269356472704306435354089608734999415233546377044141112165183447871217414573911181101362480799763942226104672053155771578403874622752147352064115169561576497635976577508724059108771023354725604289716189973172247145421922110827223219982122457509575869226425163990802753646316263179454025221803116160783562618990801494559497599901922146889534377076287301496319270929779245164871680599632233616569662990591453424157807773601434025954160801439732798301980650524743464831732681737549811423359257040740709200635703366463301027682791667319761499494185687402035596569069828959611914917536234856259072176449358494792246722134019660269200274701132880452092780353613284524424850650546736504346415570110157984818128017299378752549918755293699066704357059322957145826380698192118814988113818158914295679841593390845398476487825788062269839048308407897322945842898620822300161112922821574350044403168794676944022475972072299912504478885346092002712727067198574419984444931591708999256394405115804751464557162552006037347114372441956298012947530314904543615828755681391325317936184606957354522753196723634797422610016176500989300203321280356263635980346163900213686867929079084709868922144231959124726837004649312254516768223390410351831076606068556076157250610579466466951177940395995582697563163729075231067053417560765217147610610515327975688940789072135899006073550777874588559601944856923262021042587206149179936798095938616046442462361565716366372933972498064970222191688073509632905773497676413276559050951490555945435499965936773919409204651974101410817466732553125407981560350268362885923688422436637091059768611366389505947514351309738496686276203758662096648604567614090063333323939959957919537533299955027030508547298244634952627001363747049738335425975257211210734383271239351486272732459275359504560032463318644648486783470631107087777913515564902797893220278496343734805071874751152657583925016087534219073669468333819345265577793571840616754963985920345268130178342131624578881321093417859572347269129233823355407702248363822716574054878519309285018914482969737071827170040051464291717288965561163509440801626966657118549630180058313293176074231089380230520299713680061155066336479609528950100478213272241142401634153070263235433074011857735249507972134574807967629887532259349983595472275705825952804221058939639833389718691726715145474303133649078324090100913799486508036501835175730953676467506217229693066439801079930603304373549653650487128939216916627299305704774930204848316754078339644918171725746889972236948672860014586515602232474016715772109561486370200618007112365490329384375507466689841251522007588243247945950570235688441432079531352262556462241758966719252036932296349625492297383807585612145679815897241241490396299684774574911711335186267520578586418830263396376634000145307863505419281962021638904036700602151138635821470961345898310082453499825312286397869987277245726024683130052577082505007541822774363613108267145175031698426700847014256153409278034544297199991137739025548168541485181630571438066077146817718754786848842475532911364627246447293476905115884015020837357529490586190228995971160547029524201778219126343319752120521369576798879617556501912250751609270558434014337397415093240420041189808629714593103604296573379624277451468073574293774970703684779098955536193246953170487732569539826647917593642810296704877378113783849116434760415052175218361722649814901087956979802731150495571162441177126374610054603060956941027447741007573322878286601342074317631231611520689097507511897772942268090156762264647365822286144934495204101050134315145775688122999385258073981872881353298130567466720465797245665463746128280003700989279270340318945757790247392226419255723436579478719422562369345880107450292862905241513742417880365578846203770684807287835511675498960327059216183427455183020863563565100850187326460008002582643891585886173427247066518628388794344712449138331012080309166204517618688500219916884837773675821949368802395281192766603944232088576639267577050893475223124191172096108014179827084064669853570937494963441456323215476072391219752918613251381386742442340050397638987369056527679466381470679922273427975922140340568901550650064487493204085224497769795580248693638061352334222185311185165566585122618242379167589060902767378074730667453605777341517791678849073539667516507392438548975692333722091346842406305060445481391685513899065733327718429903901364280133892660588509691961596638754130020464424847248430024687964343917548261073424156842405768555760210532765614243037007676321841971693767876512626642560203420684964566836951397361784968875619579398443028965212417214586692093576097805781517119255052729386849249065803069388180848469441742672254751351187513636459335202692279948204240604850886837043661093991921980608586786138860616415525118710570227546794633736055951148714214125253407958737430254898142504645438479502836330621358977326267995220288371316110012105750816757145529475619692014112702494882994158648356469241620129002316106227299082387466690499163105011516061075869712728508882544304329327128787693061952520197261518935119955396223287257939566033662138793325660950365723895642740560057772698080418001934710181484174626165147603608181349396123068547994635559343730985647262253768496348478847255120198015930226902757912502969070380456982189887158271289309081996327818134624334804128970569360622541337900968883162029854281699526112431878341333857060885036497728082733009526221721212540434261396718011494964451823822425299664047820628591838459028212000953071199458425189432546572064779367850448150362785039236924836876197329301546221205916032741741356672876676440035332530978876122114456949988339490099020728633003305867813704454028426065832146733861456065596101175411012888925140573018873963681699419199397366674709145047291980814681886079113643105372195931927589593552373752073864530182254940903459949329341626188979042388747708459939570646102625159937744094827228339799463667496167307676323207705082934610264327982201067102828215134859108749879643167434156319357283974190018386975512589854249842640009799185099542999304203602081266473060397825852677872943041162422000469677169497136778624943993501645330460008802800271272380991970959283252070387745921363771839293150377309062667253535092319557736343530177561669623857578955750862452149730232816081014715888905550023610425321875716941239806945914634733681915103566604762435348778746211892870442950429203789678281933893429415982128469955423773487541100504151767288785623566955886634096650732910250336016600393361569078627325398731690645220645400900474378761017953343935376370633556645193508916118977476134622034946516656042333460932798283352711301890646743857859158342247052868399616154525083651403178803148011595164085066471709153148207053832824837602396911639465387743154072443756049526460010507621569148504138903706156857124451315786217942915257805818114668407435195728787280890617675866763654460562783274574780256493608750711497508415458702478395298659853807753589591106003733965655129269890226527904820840149061525509212265750817665528280485322724295868320395621961575055347639061372597731977583831260260515272388383889444728210366011125237006252538450657766615747385674826479620883901095347184178563359670167159141096758941858342050651995947670504086219240336517405536084689611159070229816843296059440476839333910534467651589360396989742714571780775095345001335545169619872937540204693522717201098573618612653661913353133105683422528729738186983835360904002687597128849327226607992166312597513000129590372794556245436988108885404413917722493880676558412311984210479772167704991779578346178764790217932678391004308832970074118575124740963452453044447502537430435112766437201850716202255887607647837788537962950238930578235584674860990164354530609604074984763596096840152998693885544957416809532929069261976681431312167693780463943181478006008424974600252247724325227530910325885509824862322660219316691831956207599118634717235890028684994763672965923492926843257076902733111514409658377800335212194582778636196553716075688724201394173178277004635076537717710980574727670306639420035697295071276360870122989206323651242136483843613612432124074403921211717848200634573071220823469779305530700558811414995436717476656977381667372206766633643317588141854814714669095113927182189914352455251637101731841089682216496082373820400160679108654513854953303290198483161454710615106603592272593980168482004307809475356793761812365540878774072123734179442491372443368491698993969472474549072220645314734691094862663067422522496129624102276731887530662807230364843993301134153216389265965581437232991268726315997249473572906213183835553674081321850065086293484375418138712568782520922327032809210411271631581505499059833256005435492747561394975806980933906343239606062544699741228108448229927170429057281905583154814329633820874739346500978162378007061249823522138076901807997313195834979326126833792845642229806591603933847767256668925059417406616599907396748253951430648248886406370663016384792753844775291398515894955027295739351814623078435888163334838099103029111669285673548942586655007984086243513081037313867879307649444643214146540761642870798009077684544987579989144887766497818295619714117745695040516438286619763935361596501206812062087013594860793126871529972704357935507194468192341261175845034067297814516740251577315833262225597238415469221349171674954262512739455259818775715017147998971546969494121558943904344104962848246634714686350170441087000196434856878066119006062668825834341430586395807277167527073030774624501542130241634926381629217346296463834817584937460506604740846055806942313073658721087884355700201547986410904914691122125117733507494627652056878847703747864185153513193309402094966146063265999996658452758351661686813817904588798926488389051498160372082845125145925885118139795422729015064249409037379480650735490087901099268806795335262021009436733186320034406348981694782609145449859538006182859219148045899095749990139721345073219333868915277523307241612765175106139997858067073384703872889692001260738187017822329944366334375278743190644325779805710536611928120059674761038151544061136743806300517182829838312075173105463940871312097044701153684993558991690188687585486771058046855851578640186547441599792486043789055024373103627625528575544706118913649021654152511738073796623659707315091320460081371121170153362366274100641865219107229751252663808876909061502702681375712280750723243116487670349390933860636420563558340086126288513617390956545297294700550768726089874961535185365250330361874892430931485722409407697306502162492630045352767879902714385278193372065212980388393229975421959879920102763277749892422606065504032722374866843490625037527186887704960663081242969648469265873495818986230687383373377605865550124657677139335007387397159846298518948876257938006895819480197488575752978425007373197073230910137840348489226045457077771242388979815865168757604764919910544116090257449753875964979627295609298288875007168714754843607237394742176223866284637495126657892947832227385442889142553304929322373102057054471288146244552759669133404693968073771709404152850400199982000294814158251702536044126725180485440284250755556125064587321298454504099069405446534723925874070459612483713074750410665013611329977046072371397407911969824378234844289912729086567977147795712207699830949158240244932107384720415005598737798219569772626609558235022364658669465369091265632717331321076085311136317247516983531526783796318860985279516651872675154698775190681096189134202126807289587770517827617234805315844120773148347142238190303047466278357206292242848833286228399294917809675655616386233537843289882223392541611038878604754888354110503589996714373414896835621435948187120990868227327195822260282274803292505187773985648188174613386506765272198229977690220892601111615951200749411961509832766653422057528731614572578724795061126368563527770315399314512321892382608826194156661050483973428844152549574851774492650354533394962457486618663688741269882482117073684488252186058570468898964505441498117630498296085979377904713103218428223426048760187694304021219869424743330924539192461595219927487040197943324201170117134728151911434880728729732217045666092573160078257227994096268718850250849268616978299479035149401088918594897814441215466683984184824917466791829011048221734639316149227867505390389580081933407944476142879253462174500802893844977112873050414802060720794092287840877616943651510560913298308796388776489364903963463708544612009654799280033974090243771546730988248808948213956683230623861316017591937799025022922464774949157532275498967641680829091313553874305889857499492736335332599426573015303534321596444855341783997955756841709739263126862588149080221609572148294657460458936672323539774189692186449657600677325333298326909568396653903277308209010476736079295442071281493081079205007516351924124152281814554295803336161287180605947225395580370427944440713081582334976599143124540016888900380821672762526390381544127482883145906770795765909829737750512959322331571698309487171590477707861708171943534918530519680685506959410474737402378676895593145693322132030131468894686297250572367044592945252698676427591464816513609479718175899658166566205341848651254600400113861389826434743866191352698549239883402414213412796457991828238053273329599614849919356875812977417743275239628014461194718474207164825537392015102305354973760992542093362070345523880023735288195746118933546659492686702285883637810740018760751479552102579699780413759968238807048541657240301078498718761054566133231669806213349015029458013170714689928479554512991819745058476385928398219860895117454311894519915771139648797442349259851569983687047992016990668647200554361393708226988760716912273871492065723267190104618912070025542551423739878451232710766465752695369147269990422323000158255053056256810643617144020539056868762682789050636258507232646280494045795703847519029357206372587573729349622481492197102373332741951428362963400618639619449345292934738861471996187156600279129853843138195244753930758188372794177600712781490026611165956008399219105075811033454166788278696988046890124618376772461982967322024637464338024420988493171496233217527351801413459289577391413138239764489875117014344821991800901796760257175374910578370430509397184826144106432063315829833997186336489364390637017713842689204335313016269059654879004732002185492251764991048819385819448697389912627698585522941265057220460614790242964005166951038100921403138319520524621786258560301448658461523605134911939304673944724024462229926562313625446363540134298767764609397736507917509170590802491352597218294617566004310462344550435084121419729553114248250947351837156789560074918883946426948105965961424521947160244136228596475104645956448707196324525254107120466541708260543133943585400386750373051494210072876620073694348983174881974327681231470197752898519232951367170733350209413179024207953939331134694527169497733850689173919689294735976074326391458005815810047736139959958558680887751785275656821134618517795531920728280537980037231729000458316886024485789856798172358736138332716151399107899452642917326061942558723032621575450122560431724570043137580962542761857042072914533976413716046370567653193915370454318579078576233229349245034493491636599829626453231262415336812826997085414376312951379411984139033980082525062367151866303373506364881328223643409935769021446762229376231837216574736878696962275763497187532986992361575039416219045690885280244019824539737130979620522081469474384287105500321932573323214944988189229996197991925734792205822570657477588247841953500849617089791925757587752515543682479869570515693086864991657760549639882552900769470409224031842011768490540075886390435794906722456030474654110871884244119986409124392345249351209530271259791661917151182993020782069724213317074452328121488264966128490843826800388609517999888708280639981127345878808922864408224558111297919271409442056619400745616187456859441376990403146810261891848404580886737749587784259600231162426428904304442339684227615392653107901349591547758224894248022014609546279343145170298959847113061657617218681808034082382198711200917401215435525882118746185324953785611658310825574971001123105538635394535525701088933543182815435434095836679589340834350412291616100124706350864683318683518906463423813433600833423880949529950403856049728893062903754669846644589206607405073804789833059462316846252870191841710263976223813443996268224219906304123677254324746969519049471568380391502802604215248913238863439376792937927960777260822834878700140845444981201512539116299832604314017898124885367883101830187081978624821367241454738425843032298892421188705912133155904895501865192222604428782798519849805031122721518632600578212063247362353928191117241635722635829703451603708442906053662051921888977480503937004735691887808148522839527669168874678246931312731791096706127622633576447109871624388722077360220976303244172974145298346494587524795366425862480928952404764828987319164339111603872793706052104811761370858141861082208241109619945601277958394921543726782442146234202908328762840063109187730735117499342748807733278361066592947310654656460940351214413334452909692847963198454005213578830618511707390213738935912484890609998949269421775369991776477967517006100358713962964028526769149165834399136847295842956255212363197684825182350624612681342496213151779619633255644514056980422269366496295108986156852216531462623192349675077079818632286027235017530058566526217349436412935926102326051863689076380987179841047679587185874530791963018845224786931360923548521502337104415328956152430225004319743027769662316794221416305735263226240620448428637914375023302394403481747750146670930265838428049618918570794378901815818614055748429762734507361920377363563055584501822670989890318465366000272778159109365569594173377422805491174451665404359168895168376800481390464541426567966060073697042296523302584631786868606984022076465409988366421075062194260626132793024492291018962241376154586552559895485922138363672945713124736795175399905828619410939078444843699994142458031553818045875722739486971732347530578580735781951664533319059936517911028869047394846227001764129567646040901736683053299965578141725978725501247924420939600160360774152060581854085039453542097986483718236747401961800580793609868744913788090352252567264788960407581510868299459985496255991791438784402675166013572655897172700849632395853603015159850582136254186013118266846211374925493408145915689143449599275884663472122972573949493464576130027357622265577262779903883480373223976321919656539225280859701301501403331026698803762402671961345299002252374747385897617472892405387248425963231607137711995240989975278861178472357791274587289905958883507062228923624933870501677850209476740196014688432358514299391747503862824848056514322230130532705112707122952957698485872810530983394372027541771452370311556507801478041383654468202240724468708835429383564436573365432925518358327816029943491431485605099838492019588794757750389971193138816495914782085922835293338315259430844612975330636147600389981245132660266454133593086181116421553368736087173401990745551904849515315208269106949862161564395202223343354486343489755573208035337184109141995516969014426430286292896791197047472709777593924852180407384989097863231850415710343228223045351711389719869747307113557762372407665352474620451534399655143983763006222341478828393357769254329352623829922218053100143047492164641317510597610613251550526404250795477466070623300238700195115229425873850681519580873030966295303651391731585719911636694258081594542398698732288601551057574627205382992796339232571688857508880968624706503078257538640793267275516480451367377592370458001132566783515814590053211732948686675942428327571889482893468755971758730574973588520557966386283655807069764194466131951400473810897191021169866209045298522614183247539739785298695954207557585268741944097446233890609949205810484770383111896339552828444297044444587194101198228928815468599296440989636033428145316757624885765531449915711420678951117881709468477804329038885333990714641726745508354627407416742675717861363445195459440942726910140036665045532628461752665366041508534646317638614912823602993749376351791112979055381700028187684466859291846064773219804284531742677470471934061239972975995290923285787884516992525324360219988376337998280847969255779197468844873233644686522802745833255497856217499711271654256087721428456973094778831306477007920943710734998278617281931470493398756903408524932386165042362131498169524577313923569173835686970194524884289437462858211800220815014067681093018767581876072057049362051689331573969149803924618167780536666438718316096499251688503615108618654790547949809555368271487270074335984564394787944090483548375970606503388579098777707205557845652782019873475634622186845214092290466270069539768979806368594901531996823184253175722267605928850364036058966341116177317134085761562944338146828606233835036261931984716038427647753543961098241099069047522574892808477745197129078515207469028342221701368986113266495708670007927186109492803928829165300342879666391525209561930492339208440445927735101142985638355809898500363620655974195660383729327125868566744420878498278281863991951743714394217288392163751376172579965395074818830985086951965910356174186468051714313018682250700171325590041279028994809521671583216801081875401948818970540572950406833764046025623723574679558481034893142160925223486431802838740586052726849450731346692243931096879194877287692281424596084557713372635251959781623677346729622900853442807845832679998162081249397188495441099450253993081761080072695843131336181353863046008327638596836932138413069504021386840615394205643999994659254391427008539164301747335406105569296793672305602388125079888644737107897103151042903359834532878176622026438445687795561724508676999737103191255987515825014762446356613291101209293927438289596586498624473620170473055869427062388371738033946667195510500681870199426931697252438044352079402476086317449966246129180238902473137629886506389559786693205383524053328926577691588825826894477949239489424618941618215851695284369438103531557286832202181454762310064922280209682404054304488726178578118637271109912634882134046097089628852553602656213633042031756572524483929400590251523033213994307889996766482587846938786332961381523799646386050124998296980126850800547700456755257685339753951647767294123025590683081638478345439891091722556864997018875090041391853820148386257023157330104327770096939692537864255502432684090753385348955130722040233756062067296059973162741956209307978616189744433203381128230694550326171814463866463497979190245465887479117037612699440977355459955102613691853881946281247786014547175290070284863334745568150537401629686870303735683757534235601087272439022654774782799170944124563019754803938944854913411415919876757351696477067048884051891412799955146208937599794087566803131461145339905654770608144918319801877185500891513677425498926605399627885965328079082075769215511265828457659205767837104083635742579679839446419532228187293290814418411686896799679046065421350362109740330106593464269392645888094781673157456423057600074242369248776502261193429050110419585094877742521840927584551734960568791954764636437625637766538257399334193955745615124732080702556690852796166456505225387877611144969961506480381198145070528016324626845587383455508062908972296195010253946361742657324060170224465662332553092449129908596667974543559404576212470357809113614750042641362965405396582673900243270241026184477710268602955919535676646450288113619937021925595151370533470436498196832688329576970549203364175037401612551083831494322980795660038914733953727218956692625530778488262766995207589951662546465275412370477621629739113842923429606731771186304417392393329028668427953977623317193670556656192098966002991397234233014856123095456539334759339180202197974854932062372109816267071585706915078768098710496550621689974419093851805064658186978031055869905710430429973077481376008805794981295008961094167138800235729763028062288857364516077256549001984247355649930089306809058395411236515711296022881150842741948560794185695050823970103086955754126178248322043427301885031416755887104681678255097184030820896696196941456949503552722445898704031779447371284410500191689332763302628278747995207542168169556050265935621977609357287357532999414430685940020467758004129123718343350296220479619746698124838927490661096208497197156531142295813775247089785167087047326960916881430371013276292340336908939923780261338031163404817896465907525505423720993788696903799405819094500665211989024908831854982227357860067700935996336674380243413743742557923686905711051225995123150891468368463553276062284913237571578431150970518501857483091385925223951870618754251303896733511691590929645800956340351841491804341586927197832246170954123846332696519992104019141711667618980011402011228361742738562537749006125532054922499834018791278966981062601702940072520623908150406854684515085772735675273432761861256387474083369581761231303814346113351903962802759196573507110584396165306857905079471234703726624381368274123126559022894545898552476485775201892902334786341147016600312092884809921961759342095196847669742082182234060163092353245173974105664047881338500762972041296618519289734660576243370652982758254803058572965598168418059182608998380938969387492277226925797158142082532593167206598533813255702484256268965705267599010294558807898734974592355623344915566454995690411347494102033108726385389062430643956237712368890288125772523883757500992588208903935142790591627160673691362291310000981817555208084514405772235654083443324129006779013007509565607578022516219997814702086417422187336416729725327225483303836562260183526978507027313605599092084729997194082314679962665983780564482354717694933706458219535082608846475945339602072877478970359521419230845751363937503005025701674399242666120488765885746265526905745656668805594907450512148818087530013872996757127054827778223680512656400843468261492685591594472822364510076357177168345759883191185993395707852553755164831530223864425293157781935239118603290511351921986616639600450666310898057696306235186296326277174655223213709514024926529911770370812656867741530824495595873010829654361334790409712133653704600705709032549906322959197686585118243634203318334609612467218304189770206163353052961540530233289535488804733390268791594004861992758117569284020674173414749903961369525524009347100574353235138637772794304306003577559493843957842197786636041228192895025706554609291135732439021754981651939116519595989845733247231745803344813126933803625148832765370871037031183129105204798030072732325481682367303586442375612441645447090912447503757244908717701627841850193211488259706655713520545670821154574945348444609505184836244098800894683920857956442241884066078860535480494891486820908614804116252812781913355319535239516344325163521806183885756074176122707858662241543296141770314152978400630665319066664907719235512145903873865382246082632236222360358799725660270874317991289372778101974792864734977902902439357903830040027106828277969157695079212273344438974673644084464768338091885185242021317858091959620034710868226209868130356799408430365765012039495563361172184870381974106691442553755443382193981857781984873538998962921695631949716140558109167959170499768064855023651617609327253824543250614478457812591988957889253429557688019355085116647376328771307159524192741502045093315373160144843251523477528062339135371789969327118316150216192979390762675170794198874048346036308290423045900416428410351577075941748115771695979715384665321068399331885495033002824719486431089635114856978237933916979594266978379833806980457884314571922807089118068848168856611356858593542211001139221147266847939855440854213902692673805579274614565227607867517605289196033890373262646819903946811233897050208125915377549603546571484111508066188038344532665070734030373959180587299907387541417624473733079486131660802817128238328360444159801970038425295627289296581176951890900297238760815102567153759143874641676627845335373547792309565907445004225544410758158598802887318703981719252312903158374987862949008308741732153791307977613975696989068036937200094380053125554753039844178666223119003641591144877024922024746082156020859891147650393798684123038432545118618151070884878806904283325752115425048188356967664150266810821998268940877506788880022831677584732558405390477248641191451762724479866204875963025236464243788759617247049625862825172306752280032921348708575106323300789109740104259190795773280889459189415905464045840654694623816650186447691489549842555784957630305512021302123407966213608031758964365674716715957623182724465676132295694439716713414952538993213129637880943769428867469734755752337164558344216586647153765674797351964667297208544178966422225478427552038923118416902019440857553589985623800377464844638588793599740777349755793142399781219854224390984818665633768197075234944741509650969580361855233282059160336759471347869136513554045582748082489803403853367807634291570126526552021762847825047524195504228614653343469414835763177977190271077940107405873537021900887482442296025610752568615834659057417359598714318806924403507785455273399667711100311279403617351888930780125677031270766278846197264579134764921675568313533940365181820710549450897915061424383057904825374362878263969911094652852950415117443575969364458674796507293418168166539879262943278210033004219234026743754720597225555675091358038569481906078368219143543921697497205403288330886814203380894179961187344631185124497521529678736300713967936276760099758205071621809786691433420875313831821967768099696492966198912916679641310995237461658089400373608285365243165505222528980790863763187459208507912649839264674361236107281576471641399825922561999537461175717778759973715063433788969260061268717127596842073323087629005459485692845116205003823428398400905460795266707817400086574611402129917944153079065254318696713222624864536095124270302322479078165282799476165421305992902480059743591320149216245997744074250695030247527307474423356129771975950117716561908751153472556100535013717650880244545777788581753444822893731989965792745403617462459729267770045027017517701505973067799768171514612363309973813502181081148221682743666439822643454169616561594546803842545695919244025969029743605345363547604505910738707968611526923381407999142899893793809051037874731698035211564088484712303655737847764918788078833220514411408482875874498577603229911599671473115240956955253919701625498552927089675237649138405866579441986869892343127414633831683106124570919158679137961402911047377786380013687170965699616156327841463435661030548829638673101531498225324139215908634202959204301300096987389161785644701594292185491596704875364250585761709437856270634139610053344505914537435016162956334283513892215958478148335120551559241106040734256030617665198587874480748189317163200895138328815001682168552246588322480175740921589688771609606536036848593434752291406442215490601914950374010140378292333433331041755309827690598838624378151794784132884819854735803980824028143638734503551750925633888870530468760924484667890488202710879575938914232009967277021845610559265922789522824568548950334013592678023136071481500393281435479431182556053976013706213497728534776479496381272959879969492451522226296440999421907670078816233631251635269178611571856075317993245427149209473013699104252460880383939414456809563165071342444370388892178270891780339168001197142383030908013224109359390759855200155408915193787065538814155364233454404508398406894498242387761308864591305394677151932039069560064537568534621280816520820281753882395500336874313555669508239735716259001629756027659082530542673128545495975717263848220638600660142225490898482301321339090480577609002724052505763365606454144266901194873132561624705225946350395140586934927065579336522921206049108247252823818214576336035794440614361928419606523568848704688817806168295572815749128591282863457221472673646721113120312315151788596483770672196978804673590286933609939454285282257773146688878833027592907437458927006842250248985459751431577427917511418513377555788787267073576093047372460026858368163907365402599906555125622023099531651570376961343996540929636411132711971050394561986246818915716404305218682997012047070010671826546671765898419809090955164022780350716506041522152198447507663632333252410618688025599164700874900011189569228162082581630259645128836180400941571700793549081478656974250419399716284444600834104748522568858727372222631964027743580665938105756112141467298842234561114795273768664994668784561443686765818724972318551762054659749767815016143396797874698009108106021594495535984933501035323603493572797227148963249169417895937570441228832693637207211010842189929702620283199268052322985681110119122690549437192036665276261434833834590991639500882983312317805360001075833786303181617660545038783312788131075002100944122474968014577805581730099921790564079586425224115349201424700124155383371295174827814469321865829907796700822713262185778094505669836992846324411980388305236491791645300647033433389062236261533898043100029629451348513180364857699229725465608268746175889109054805512590473257222490985677485150440256419907611090188136234772904072740550740198467825112918394766082132396664845602327867169138167453404316324881741678447618693920302869023790440473567091393449811269984892505046181786170422518928056254327044894079505832896591350132587350275219204267483374037748583429781352256016500958120106805604964779995432573057075154601347125588956294244654020532232323813492657309166969495228417582694227799471141326242972908357146708161161475125436808180588572420353984083169850317674299609839887490503430935221428580375438496895938439179558235750799052805548062916566767381607722145021609440151092920295044072486778500206336841730950546560615458705254904163995106015459475637801555329178316141878151651354450139561631278174101899931282322172729397481240232521775532132314604693007270919628197336350310348191087996629321246095001678068415744803533641856854324918547509436721374736243752746973726225762630129554631883394664131015901717116617779378341585086639334583717658039234188727337889892184700865517876434368468651912771838829793742374529073682525901862605756799467389157660609893118815630785464087984752812284173022133653430591516372910823009397883043578278200021404646718189854922516329468382916113872808847297090059891646219199379378048017337559821934494463084106502087607282339703635585564083903117909831752559236021397454598984946981504704207154276768656340160170070494372846810740927977021925951607653303794435797222930622997823303445125743186343447180322102663468919895547337545894479499791933165809160567291134911743619799210650016309198174984084179284933924533480587487094421681562559196516853502898374005439246678166741696623304905794563482394875410437449923766064628111695290533650340176277413262826635909663223299083555439740323106359660235925475665922109413272767801278972724274248662263422879307680893018201892016779436115616397188614663896637582596423914525729669518450700419469959183425671711773765463712594342368063456006655991559733707396183959963383610400356234321442021561216834952082299591372970856189710859053735672656577772817117806553093414427820347386828612883320605392845683519175684121512622760426334159075270073722028169552177413818928279291918264820082471245245997112753229522512136564518982455465937201927956049223856813133484187183773251162611079581070095555577817477016236655924257945730286267895617863380860146147776238710285448695126059531239206819686255839150713160055138560880263735943800196812458411004360356108286460972671646362519834592631379976472427626266262146134692553225190372192623511089407669872323192306057497589391251851537469401258302809392330148805252708305565666940401541148112185340212410484997395043588062597311263050183595852943021100584940864525723797143801120755057587474815882063685579117414240521572972268519484651497667935763208724495892539366476106009446829621729357738993917836686797681391051007566200604287845724986985957716907371719142617917578450672299284624089045680161519206859010459030530109747217100139755147145688824341352973691162757922089466772393218367220901886295224932694492685615404480507386024857469729366590915247868843353366627259266394327183437523223371016786784025477532903863319426000932905016058928879170549448643676687009176001138252242531952282179814722791521996659136269994101662636126034357075690273964091566219424214953572202718059137390984043257862126922111795616138570918469495987129223698205474956072300172261459316153612611915674467870499780265707916101748591019768095702389511639945878282172982524057846615295960582260229793102892599994507645197124622678438744165441436329950192312615390574072316930202967844202715271422354407029459105145020886468002011133438223475207769077026292561869219520249104080171194829453827264166181254518137172535741901236635793240366622592466823635794026362371109373722601562164155215952151165447926428453701557701359725729561619154807587782801294688799167021014294648962330407104252720127989236992590982670113143384740105846695415469692372751971775114852630843220178372877675337724600152885154936588123822031911845081063863341158019131509763843851230555119196565047434768038607681262024877200858545189299402161565277081228029299526171879926341932351353997801003096877418733076512438930572964580877630929066520225369473295906738326269087774970415207943816988861617747611982262793684283064101736351786542108443078420278200358046550439479551463430566765854292296109691614579865769361825348754613334487004694948283465823808242451221218826012187998933903504233621205598693454815300886762578653285402098838396963122376952782098361892889030838156648835696870777280226933566963109139354963349914603710842652033853805581638763618447588056402726750815424654403603213213547878258287489406809848621482863464048914489739467170641513826036803187854401871000878863007333361295446271459771786522823106541138828619167813748280192734757699292826428686635267247105085194397321344697455716261160947631849656092641243115956758334473910389512386101072125121113116841218581115558450958853996102873064766563209403022928233074837208946041524526418835671803334536703506426295854166223419205591478134809640295272794071261662528036641643612707885609352262030281456932132942014578815321640106142981315235940733508387628222310771282120241472802869182111010031631783163904500049098401072243203293148605310197385990372080250286707613511649795806168012979294807461331206218236394126947848368407661204733232695650388379593864481897137013658773869505913324305593601379940999264307985496546971957667597253469092298716853584649904257851508313416526199332135260871257378668494525736904373127005989108477298465912402484190337812888756504921734308251500169712042778986352670636798972119239893750265055709235801391870522887786406554102045742366188845290672366801262774333131207622269531828338378349048526888380969013669898511514504761229876504384940146493678599403560086376246903768888933812134521281086422746921543255675789226768958239005155407705449096435453701967136172881234457743986624022123235740238593610987820137131767689060390165846235664868722563381671978683520075092568870843553228686567834525156907954038822585878699887452797196152367182327011586874126105926437904510563881505341912460434001271397006441931793460358465699185700432658766950513546905406418755520006485997173775678130078421551325265556229082513632122289444417439005139037447053867617469453217050018020234686057855182144016351302309130447263246729097973529884778385606879125479972930026732935004555553259025765003664978805008432886405160048373903201445153034163687666675504060023258251888314357746581256757398014031563224938897406387533969851578423323387140468811991228521765670651745607234346933463519624604785278723887375994077187917933913861197467673339443463175301646883380132646334054029050384345890909708530940076295650617538420365546351688544757903321625088697479706449859193710018989063090715605668315266718361552176539453205832151841295333527498614917867694595502206079673651687112584828984204234856462312276190589420794824435968492850217796996058958622851405327503072712085134588182254416744085672271922216790307313860833997716739991459015378088621427510014456133361007662516178582665681222430578012267543271071059751919175998322519336133758485636530240209771001401698875431875489034197595381192352145243158667050494998005709481850523657969803890777469918428491355029442215821080625034979915384046802359284578821424329245482074325414899154348401564126664609366357918566457318870092006758967797406190154203557715330215449002464974552693867234407575672640850753352410815807440389407248982866300347005131686183807458563832645298248594533682986950741685346366944784164365520672382390790814353855546182622328662502558895093076884197842713479246796751347837310159764727887902414878481267625363216637609347105694502412174348367277178489220222039291683988028891409541283015589466388733125016948367556029813066121213509545742429904502052813662693773670631120241733152842822572321033235644742009925907118150203617203895861701305313436359152584231111880179253031642711927653408283413053983516118925217907861070958216364879938999251142929685082346457767711466130601362584303563812876015007642126480490723844230246410520053279498769031256384196923992455529967273177009935376355008076544951265752062378132417978697207094423992429955957599129528567311499200132177255969180394926362536957667586300017708419416649820376918290699875242567974579186308632741917224487568821458269792580287808291912393473922140394530179708720184730598556860158079377667396373237657337811373618032346392018969142743358049899527046663769114429563128260890171358750769055634517353400439106603895034586201840385437068870528576941068961879598197656381956833768848725008317299235950696804403863562059753362765691923654902976956442974156481192920593703732195896853606157744463161481880266774651041804027868710913100542604293823952042014791373802934916526651005805236428511072823599766843224549737366280282010007355593542701698288759963712719138681735799584716315246677515117849120060260154005441592055488870072156371649874291707344891048289453597961931452926788446212051247748850651623479066703716900411881359799169371045133417096928214305066609856626540961626219478008665939607155144978920087235221598628214152566011454265195083617341076797057905934123044390400411509491305874622457144433642457528393220892220474363227201628673907332223648391489960103603581304160920663267940243651071461889348425680368159498070014075382786432305236863071268182628983083351016715703332563854975076209382106502806662807230968362526056642185022817821642444402148312064961837092584434788272212426642883085870239993878062508512401162555068478355683163384648628874947630698810574918992514912884947340114312292388929716973609737752492690262228132476027347936455004252407330666786878721536137668070561933851481694691251765760675113792431632187121513539501494278701210363217239759024314326367584391599017496494172983311167293351299814353548584842144118023972485095794055115178579192841623562772788414567808280370723361528314951673621549728866198749746978634558630330251826615310782419726695828407772920247941146636757360136818024353645155159175327656161519854203730226207271400601924728196110264317786439171124364429684828486020644061596047776061683310257381996009847113736981381406761918384716765293681678894439994145477213559037788717138637966863216779312364322880906656873542544876796830457178760322372086625447846104380409799650357139477408640065288513309823055309638114243975027307340065146396617175911034119011847405143231387544352830760441500569549836744894466185975022830747709763717163121057441428699665184696279888668056899433231763620875419779405434996377806355351120229011828624392318444921497336755639383339868934332187799044817777188907564633079203168389447303875362667442974181849266533515274721571542194272751275175821691841032658771041328127683893846006212693741107257192513872302206214041523221887609669622296615598975584216288400492359651237270915731928963989831060949812966452679863331437858182000012191765477861085739896437242399734775250570217250598460318657104510431069155525431702467952376849247496026138686585065897808710653206190651441167927522874913495039536345022481334405612185902388586067737227537983966502237920111545740636502790031599307755029579191923242548358789164574556632130791738938267261609901800441711766695734506361607167719614578468440994151216628653963123549235489063468418671299792465616587119639340991696710870383277980873239886935644073958368907229029064967557876633857895268763653012630952159613828850036113999879446310713911790572254187925981772753241899346678080688025893797325511107784911990949004672691468552708215584949100492440781582653717698212499363845946789232753889344231999627391788797699550412427862367559668012090914875909537158155193290996539126406931215363519590943154201250083407842950515031332895223621896263175301919387171827672464918863429870059976737064364483339695666581743268620807128764114698770007351945380818070121815685222691961274454583662776786530539472065191802450798812826399874076694091107971082636671406365409220452697729577276669394712026943530069676864502219384367930885359849168898974032167372815675845279222795543043713393762119683461875044847092018296962397396111343570127030893327249669813713816449633412781656500260828939211366672620182397016103713818586403483332397552100679287606107277773354509636984188237086121845653445517325789047056041570055987250362637366865715418042142498995621157521646156814047251336466008338183367778429032562950032847669248710561288408558821302504619775729033155012787340086163882734656814133656359366308858599145022320366237538256036354145842305855988878051635727113485359887056131800641243438907898602220787171187964322142233132049289838085704967716547005683045703336610761876474892603178406884282656910405236107857297236816584806616574366459973336998647541329409098321219731094994174221000586529559376463557796107709559955990124613021827181591144406419326890742706861028492286367651575968770984029780558676867384651664273717448163823525225119553879970804214092068265910931079176871990375424808725060591934700739294332806065145284982646517641853304016306219910758883179996811637368141716289321771824100073868803282181974446101613221252109590998475221676461620195412040871535346229623484596451115648111889935171719914350215563708904003459360539670686170150417372750519040229961722103328278341577487830917663818267187264418509224814916797748258397196534737247976637711172213987519699839906467649335108628731778799675670717387901629049374122465927939983863204574229601360020361418011805399728055224521340990302956476913980185517683812273671034473099167946449200294356739691600828249023404647077608826905787726803103001868267556653505174605587130151820926276533835620754967567623021948296812543983715792574740473423163233905263069437656253228830868173327714574610047423776123952632795737347215639672066966395370616976772953907579711478760254845030602518262613573579668716037475612592937469973072687420951103479522097957088427224035615564562714865791838648249212515199516074651264376813485195057551863797613122733424301666846137799756765169680619567409494443820073623533604300761970849060172070224610434829220413606451487351553797202013742800161882872281524700211648879644191191729346470803897621760967327406160285383780937815208783423027428943867609054582904815643402503794282047601535336241906095047731078030822524547203523827641753214446724514045391904999344043091498085538369946912642497168141310103619513473061257578819056558468956560282517517207519333940259768255662674979430011710953371841632162414387228495830855623055150455216113234968897849456557162569752475976260378733692477031609626517299152989976312300731269533122195825970658847607964749601851758752808630939049411995378386622705577339661336123083665135397274487551800341521898580669954334695699098857121102653720298010244703866563320616014600719800823951141200893466268983829016488913002624752640942180642704352901786031262923204287570516869372992506525028973841457649748758861999330624432485619605441651626377257317238523804661340007003977943929931994623926653590783562912256130736748844333048739722331678356444787281580350265731925307590870305490665527723966920861826271032562027359791580814336448508306037730425647269030367587012975400230420960929628258958458842182051594933847733691134898258229453036332803676156961955297424538640548361982170377476855394173107791035657173770779743346391793442126451012342752110494528805143953686814463360249732958866952762833158496498092292515634779513248832299844423907379970726127131595412351849010810466555215282279376641463879183364500626803695711748836820952323510226335229108146611604707209116789047326542258030506010658377049047274315181959882997586334678537769398229273432242709327946756859581745350500898655399976228707873961850747542823308893012535443007602918725664588442468501475345452846938063144186328132537082018569761937957727888126454255048301835798675972607766778010088104980103449767631794655806349701676032511655376702285854786210763054188857881086835033644759067378577163553272965047001176052672335544327506442894393840635547104065988557231463496789439769757116035409701744372090953107191960261580170571711368386737815018427488456740008458166526710615472956365384862519224899343459989147925871461018144488909733482940309733332925506381275554853521754649832471690031461764210488134556143080066302992188165859041989571965052306042057143391161232565143886466123821597054175714192881111419340067430501871863236822943368103994574386692207849232693263687058375111759586898959002466939886960674933090429365987055080278180463655255946525546612526853401268885003991173205381426213774580290747200164902535452002478577970928462369563829786905830134062088766775376783012458973505984720577763845531088050283437563731647283035287777142512272156319370348342205948235943234355396676371060959613499571278519547097987978562802335826313202831463972000964991278704924798868305998920009773258419988779397408472714084622485313557571034195863078878233436643779463296773940610141147152596183202092772181201719208720489073463910716610102075573751170823010074381786051948844879338146468732569795686203563058856232551817241661725580375110139486110197238117976873747947304724231777822976007598159880592087653197009051784111495057595859484059165740986090409667350875438493831415845144077361890100570917206934264736573947778543848524329017817235505169378358360272012166709743663233799973321418748774395194754660232703021654878654306659136933025069656507773302702878854342338808767829315793007347940468548567059682571532457938807138090299417965705002132917212906874935151900790680460063235156926494257806665451601493679996509216214007498868774069133198432190162260312346330020920565935957084777080847760334709724194192922815827399329678050323285588616082323966861401529782177334967726538304493948368451558123109093335124973343536883787842667682774058006164234945319813195689141964178869815501356032774034263529378869312590814214587847782065954496123897971276476143764057305361360572639629381930545425168889059697296246633796780772183274729047247327903173361661649479371146668605010703749184516232826885947386854500909473561690575799361682350281362703519467608989811252832676920563053682879014258627911155305104500666821956220737334035471988258750667161196611614679024772668868423576682039389078861087793414018111496046738047610290298641487980479336162899661636440301365351406828694226440472934472828851941817940156256954402276811730255784822131067526647457528940966763026832698424275097751014255532796402686369538917834308063084083655991152563795709018819093205747780025458681009983842827506550946425577885681088650971098850102001833558576972086674899229279390303744206829988427686272648255900073424308004031091304076561475651920034977854200766863335843038051012860868464103267688339049138549567499462183677028770251002725310033415486648708237010545148832229556525455849894994887972785908402637784891717374013539378114485330039715506617085868107658687488711685167449631352589776347893572511281067896283917263215445786147771856320658877931446712456382571822072279824275383624617404177738253460065242100146514196768156048213206534808116140155694901841231298269528872482540523629062151738542410684812996995135184225659386070863288119689766069487328717380834702223643508932250059415042742400355666732011728266024495677086396253960649219579644340690753233307820368127272852811818945530875907437000902160849104105732419009736810767628720289731635369923191095488022722460133000594313332481940505344940471824252926059516501851404442265617684228026144128422266173808013707944913449721707359016744713916274192106715868896650620319833483389089884734523391403791055539731159032440015866128867827210953306481565203327190124748168568949424540700770264059935301208005803452807794962069696125057274146622979774970781580704858460881162065771963599957240312893392137735102864554992137921172068180252321911509258677086368354788820141786527985573413194142657480610359723150560880812439766680483707686507920059082998445390347891842966801182932967180798305020834026424496705492409352298531986564224558402923490034549408973078933337450943912367401507564009123269488162101983536900214204369201765642258426246639768936669042871018110074132530620875629080706242325768145638293971360765559421975286010259993559164126108401860365025206675987091491893088401401428237115453300679922333221834486115911099935453163464332491904892663177236317511911819773375555742790142088842901122756146197573198363904606644383587615592085004613832602460756500444693887863848109310402632960661575398323716376214462008809762603320195330212036141018969975301909398079707474851791685023110910611880580100163502627331748671066488044456498763352566236206251757208207623385216311923915920123776081952713041985492940039329923038979235279033825621083739233073269726044520862868867841935197625089374861204458395481764313827082955989694000178580192884850868505337333992965857910453336586820230342400056041565626958211780434302273793685378111739677524982155205534646147827351382517698988524952380137218968163852950372612967140689405425238078047523454491728396289252093297576094905323196794537378766927272697280376622743901450456861186216780148994835070984621420989748372714316405533938802701347300892674133740408395532198883432474867539849844159496646103921085089983783814448742169671163927297160990152824346902896490502339675155926074924727865814565895849484420942526710422144871068961440294795586095938392966017835729740820867844812052766044119106018428016978901775301981304801351204978608657509622556767394418496585668767283067595260965850473203816142646099880837973182707962271246588312293516745466113295140268123696238487024324403776398931956537982270130304508146185098725931072775961708319736593005407923942860923518822017659558718284778638293623217101954152138350510871537140953851561182350466307254616711288051016653650958482610543027973167882107645278400982290140651135508112866599828746063091446830703233425293793783144850918475095620604343858312552876132255913814712817578841950486865239064448952250847212336423256519604767612587133590343683135520492440029247791519649947300764844504207337336166537198259187768188412626296228335334372795393836383474676876178553369479226508906033071186628240964889675412404727625944813339146080125811765143271804242337003953450325932399703023305141255601901690131377545675190185282929770495088046832407513655464347046384165169715895979731727619456488228904995727495769914903500064907727784329963318338524670188836766454486387540233506801478546232198288420831658602136242914890150571674382573925682347117896893931079020698520545365591081244932349954238864559592466949125680971104271118940042288082621632486301988507024683323659493340937970345508654999488979696638408821033237638186198751534846671675768103253816307337216936893949218931967839751074649149200224194375326105714429595718816320117438609503056212699427758712933929312799228472193277236992812396585998107960418345907295067172064568461883387452045160293558268024074689156772281885301208341162962865358711884133250056877715862819010953679490115737475613917371338413271780866105365480431060601696800078046985332823769737578612567901077509436095199948760188771354803791829773615916450792654970205414939472625704263899834456040830060249196369941993540698192102978701890390196068467951126964453353462002499878681408780168741701312146267983868385815427720811213472461343786990441422654857771065440363494005792474302891342014427700548596379045478902755432369163576449349470745191022165652429612157592646547166189457221231054638613276544529714124706779800900670612378748164713519918694433492282080500657061148881306936687530984015514933436529128976753635325844595482786701352475411908954559464236100185927632878006433568570933689645547667002385548562973968766848799928658490389709519547336365959378686691474230506635909825837444527286121360522773346822045871998386126454099137772243312030517716049364889099286876257266880126722751558192998987922222509018062846189921477849786872602975534304731836984779820425603121239440094183044079049334127106938024432259233669756473395468643043932634176254410182710668731672844242102249907244846089480310991216908475388387729677465280908465132519393153471876644023229708853630939368492113035657369631101625689690359597157480558141813132696052012254246693339085950511031560877348778216142017122851835867629121409389633539643147879636742284507849852762135791179919625821342689774376029530583678078022113702513152616597631140669567836429693080703192328019124884051567675093444382605141574001368933950653421881621332427542592375543698311301328121423762435551015738371065178156881556443831813153830335030140938380150534080125518240460782724936738213020516976636803703496450830946670201250500569265963026706214082429254784422494858583444997073808267591951991031994229453021494360071519935713051910412239576051244549430587560347293776620822773962484160062456384096714547298390177023226546621137705307316952708883216557841106447715851288481246637452899489744689921912380384108382008012755578158206355357307192049423119130793563860861944812543144642394908697995954868086547567917053334445158504368354708004634110930553363459026741219373127893392397788382325043788549872739811850152034993477494761614599154747976021548535438369908259333074818010790968289070216473631412827306550427833090347781429436926043131710163830688077381467342172701355461433663366012712216655724636441265674658866206833047433629985054738469042770563327374488801596888872691159766268074892351183215431750666331877484221668200520091356642214141903086196396214428443925321043190952604588571848704707089661741203555977436404705121733103735165938125995004720648541043878727192470111142210867053764567082180719765404640091784578709599730942340383078162350372194544154738815163038844283835920679593127607995695724143738353433069014057413564275171755767398016618829095553217749008273089657847732597009974537477783529402072450876166723576836278703612104387708302027890658052914678362395927361152219589858408455623893796844609371296678456472474578704926218548566455330529056339639867946407006478817316441142899543973859022170477655844041178280504985891820920582084341060064480793560163951387352558768746632364250753823112908649503067779498040531820387332858979309795250178219995569694843927055742241268551271573370717924982537757523037186239355531066262383358642978457101191572375091713711535538306451351848556333785288075132180663251332719670249918994898475270163766550222025451206380312027628403084498324113614827603886038163536879022176680980945050267096984836722610130225128436521008710330469902045221027707106408326181261733480640579874304780374727925685519440738303926680704087494926569042796173222797550849642274136610426572309207501271992205918807444106859645950894751053743202670996737438144361200268892465220899688692412434041742399198875354654541196313227984545935668537330598307543241351812993694272210160091554248481619824874060156074386859312847837993161945133587063776344027071547514915088566614510216034894558362816724843607074517658079508963737262831698149195153478492578550945767730106821561430553461993255411911772833601838126207039958172419203037377540183366120757483207312459881113139494226875228137296358385130728866805380641039962182419017486569439223673627914483966128466471398905771826749080064271250652442705157859824416250663237141969560172558954850529694423504171792339071346809592400912032383841780620556254862911275956052770828496526489131711478516383409566072951061459287310367037102454463368691948268612571785842842562782836843070343029521079370044468671218019766218229781160618683136000516652397925653616281710363720569583258184998307432444615649376287350550043764389435449311263208519872054843839862317206299853920770950001659280593864274444455548202605784419366275298024718180411520010351867135335826756014684993495531040489669105048107922516307840358293052033835456816647338844482998948070170644098881957792525808060296173575034786323529634498370577601010591086136455333024556885379496735238647949708327948609452571888391706032630516967206041536297694649226219740541710213724148590535695142938446238856570510149483375211134319956025054877988168701798845544456496858781622302319175926411422172589582391137195003275972369320173737082096458376503070717709145971516941399505839636004399566833112351190382891553761553357118479979770290856772795693411747396842393533512220582481883237278677333119315213820606920664836898941210686416682981082678907514741997815831644888610310738656890657021395386136057033889312151384454266103497746590146374220193475589021832162864104054795171729321876704240703207016772296756377729314993456356590823365960275933461287023256384601482571490736813977658707284575171658256501771489947382138209685262692827925427915328699305598418493121939920110416456855145862466137514573897386014718401570160782686925539214920404284185273541702948694911324625021621156847086297752223760880562223888825727564449671551855084130276337355488034099956240350096221254485653489144448386938014047372092967215692900856965949807180218446157704267220671347549157169061476286036586998880345665118221586133777314370583777568367627897019878446778226382111528936432345803999113430512150232699289834924437798806165801735497550238767095261103164141908653377623988085299910242540892136298122989814689307989584916780440136549888309216274081279694165794838341890645126979407220324737292109475312655519820590247461347759797948912596589586679516717237862627578710166080973254004740976802921598320360092856594700111859256001192530177797331440989974185522379613851514227858498294080399351431407180531438708031251147090458081927308091967258501895592287942824787949107432099672274749299188049895161093541465515953135972847306871022452340554405541122109411774771403122302770594498177387090865426274229871404005794349686205106418489971579927159541908106711238550934945750707417975154270993419764777798039928445566656468344257731529775519796576424876921670474910144164048184037032102491421717885261410242788584032234562740526365335591772429192641565575153441134725995670230776206848688059652263171678505890007466603789813473065984295754972603466166588685540002465275730909094880430955731420812578635436104974661377090480813877907303290040090215553158292849458603026680763702443366683057371150149189659791463289718021105067361960028268500077212373855812996919760143535267015353755535729814738029361061447310691895779511111070637079318461499376266388929779468129262711503291304853960130169276461769147313987346382410006369600302271702346473704827529095361527044353982116124738717436173836942313729869245648356795611748449240585995408603926967988767489889050404955698634246895054075702815972394253549417980382929082812852774545461306368403839241634284616397015129528298318547911464154471001871902141278757847560027436222552974520286736991834511397679968001520003354789620871895062594987021700110356869207977638276620045150433767093481014910489575786073804063948577713087706819794150612503131446882258245464535361301813461772601647993610468784446363316755076428598691831103304347027194514777274832855966304397266180261308416010147073878515104587009529764169362196320109019142038877999434603901372395526363691245924025770874894883630207352738707238913283493885981515729860826363889701998509147186103192387446614230894510501460947490608710482157581171249638156941701005866481797671987484831213873440208078452848643593016179239585829873975231707351711202978096169094201241423417779843190608405641601187641874158572967569325229653238674112740844073994917619615490370007012430147890900203562145500159433168354125279927819277749093424422671903288845426988235748614337697395130452086994951747832020384413790095425530372437857075112210422238636472906678835713699726765504068369719872932404811420365584688821638888421579581826024836757992439912291028668313864630642917604885479665185369633794564048230186839628415612783438057855536832812453739325158226515186187338307878515465511442863315971935521641430749884103447958634570051887420122606816943242382602891726754571905929852575261107270224907371698501889547636164476030401677580905344391037198696849342767636832821459483232760207332931586117339531813084203581187009825607126584111877344509310686376911929716021870757262847724236772489258499677453029980951427897560388387564686758333376289485061060346958586843371051611591036315932012430074480500311687007834805508857676657434002336388393693267803833055388238137832785820298509438189177341788103196197865831543942927762134992148337366714304952885290023931331815162689406186122927588203282167598980944233585244778800241831260536756986160294431965074671215485579346283903854752907218104494653758943030963905066849709183175367792379782400740962959264419108355714558685214995445837851923511928527486258262283149937817919649777822482692164638212617846222356171774480835965712618546769722650060007375791024261645719777925421788897719256671596566090897401835330536313227006104329572073542032472097563793856704504790076096767019361846477971978666589957584475970610013446783992994506779389856814920910405172333742941882623383905428134817703113991523556029947642817791833155575720744792924953616668000358982876176073530026395754718418848662108637317300634285523603823840698867598542884697370141168164171780242337787017088540559381783620375818751859083597064386276979322446851771826668573784289440498942332350199393697779117502925862383488998184546806269556714079856940964365595111763026746404868911223246136243772121443196027381667563868337888534288986995892574322734588065347344669308102831601066787278955883791874438724516801724865440208664995031510448731413753322362248136381316945303454677470356585279628658029252482620049969790849460906049322306195745699404453381613143725788835564440436436394795661937216702073322182773196324309371074012943184645268982820519900033085363587679624172357206660693090105220535886768045340555597632311266933791244347023496801521400127996535410095382272750625354261951339082679646275249495979511314270168149905035140347987522889770333697018820631567918865240389799337295153683928715944359908409074006832614496728608699994439157063622992450438609530506347185374228377197935149058375194087720148698379856461256235115334676618650573361277595955208082858810009345224382997558400363278368999768881928295497016799018041976103442462038557451974489215614476641961520210793591505046937189244584523692725712119112648595212161776375869569168003168213939807578574085862356613115330350792384735750255974458721628391883069764704345644604661944625216446487108772915191907721157734955313292070079774332710318799876822353227968335887718823144251575445156757896089530699662988082912029297832776815463561835805403112605668513415288075953271922177824266580935729649350897431716221270342163469313588005284322380629730305364769528402658700472682866279194118563621222792325485754494048920182850947136260120875437088525266363485599056253597468001236119248797132833097752985201205876678102173941046241805668377047471820793552330484133685928188873109891983924669702331068267742746437803886507770136862847922918674108197503238531159735650118916229592893455619110324082127870349416547483416888380265913646872154233155955836614297546076003883605620596419473387925425224287037071466988577574717337839042904267311208990728277544515444448992770736084877143646335714828135775623082528150280962566221235442871663274904316331884394940926121203726756606655571161059047420622287715370711167841664695743800538295321129246684901035091453450554146977429152870897839723576606831428577461371434684874317229850426278391733847676750071856883594902911042045079904121974311958379791660995215712067319238898172992158022308885275929190573550986948930541387432174646939388112659269035655415987476395502725951507990971531957474746150359855719918221217625199398189781248722847098044185812345374663927499918379135529653006498315955327465766234493459148207747123453758448942343924589314250841023936173820092967846779844864917364896023238411635972643852277351668360472721469057197532485709711744451921943375236608735792952457386812766449563779040667905217316964953373952427713017207082325368890208517216265574420742010941197119541473914745365703714863535127936982293130044223379892190334634327409736808478127239350430841706766480913665209509745493885549052751280658164885569976081019787851100485092003954544465951640520976698786686643526092581696515397344124090590623274554124130805315024636347340270445536631447764506210594185533695481499164233762032858634549002659792569937302047737969874846033211756763215476184694477112313673409138923772369494476111399499525280702858733473197352990947694395514627551795012659877948471273192544613131077472167058658559371268122669814516884178384896797701796020781895105152836827493364580175078911849691133532204236013508158894258781593303425231731344550294166295818115568289013238481226050569437276961529654259058071266456154395987749690695545533168354935789699238866548396049485085984271148999072535111966775030504920928341864321160046610250011948784624303743035670599543582948140814396288692146449776813553449116740104431001303365864092798068816934448531511957771083729774152275315321171461958541517820646878835950230015457716399963878804087862394152680251984144214607895466667840306827409163451064345815597962542533732469982497605295505368517839403900017890220499770506790269761269034166429058586845477869588938899894255436528765288454851191944266709930437879271372438265820293419212235729721846080350420829009351155901963924662076700581954532794473639186904772299981743675430284730264479384058459760271208177680655746698429457401476601592050025935947059174130431207869168867784517609886788609100220308681032219411667973819749689806112751076365319317210333027544952210243829698013732596414446108316766516694773387855306641485481005819745200747029891030906322770357640951674208952741907189571863077214348943709898086854737857905049915437596710871630309333938725453775802996952158123615020848990238601547900285023326663152718613288101398143805040341325204319865505895274064705717766892290613826438649737208724235109307336783723461335844352576223803004572022338731112634091908363379661298647480298789194247093850809895785979107919577955971936691820111016475497466080916058481509008081967107716540751878969803341351902281175492243736051996643927179768887733980179994521971845211144990447634426114356002185216234701685627998208544801115776997950846169837791501009630417023307504616848541787890854763836673953430124738953446449528355095548958603235468765520488559304941947489091693938154357718141702177827017113260340331526880768048374771603345248975230192362057132829899000881867241652907137059292739553890910798915982579044150952521414435961625420059268720886210684095785285109971761253585598953014764388477285121545431536482458829233373725449965438680698328824617554274546730866917866477842211635358586937160252346085216390327644886366440948482034438397733652583216421285953485902371438003190342634613674921075798187816567028342899276797297757651981448142471450435345727182997948318818333794853424505297827553188385670865433510179140720280014244725170076647855612491814364693624896096257042533923429347695639798369945964422589594948149256986704109765813201991652299357017366176215391858609518190538068919291208956862382157178425347825127861305061474379730856002866735616017466316972014359253188997557084453983941842789498018605984842556629844315011535223803257770924108838346856025626618112518295256526988637742566187069059764003651946476206533974016430081703691606385840052898353433459216181432493366507149924740711729869873710544146827160169211343397073855152728444633597244784797166008315852644692899798650397101853381528594349886324493949742380312491303261418308009561011842087538021504840172416292579191610341323266212375130793456261191032584358928424294540476239712937550234761256702657045766527542757283925844678866780048827421775848364464976857196205212885188216477209411438057111689038808212607456121866561644264299769236897603114158844310342614575957514049479468104575660199355816872616764245933466759984031443114336049766557021644532932680157939364846406505063041475974189284954314312141393710703371365265579165868379336365324479471920086819397661103520020015822084655356414039649423473110646118886685633788438056665984362535309688529363604497136317744011031670075345633309293132946396998080746283874868234740101977907300545849752746894495976792185706011755127116606276252457259982076730464111579374325082729214513613372328536828097339046989499801293669510053586369595696705763280666005205446845556025215568554652544397249912028668620736040018971995772396713461734368567450143567243958082597559951543103061696691089008995107444972494298192195615530577619583605098992609047920975670972993886919508779751355710987644708191920372782582301050140620241596088420289490076166918693075712476106728238366854085560983431797977176772626805907906043377889742887958154871423971490994116202565196429366263307723943472437572876094972759897599535958710874415576510328267046613863879551724744590629372717651626754671883662530454497971071102791655238106692496696559305290698024586786758354572590259874372201098658832921441761544433115378072268744787671480591156511783373129749468979255422097008656652648793021790996717980120907728766442523045068476090947134877081791813475811227973117101654814747786772496848486223861391409784603960908805712932199471870120501300090848468508258492039525810529147807676544538649796684182281347468962180077612568716840937970122221724697910882713058405187208059228797047569601254192882873351275167861138259396390650770366490401830774615136022339869228219208058970175482252236331595142452899269738745480599791679344699967429997722484695365550756122674896758048399430757113919293150722568102768552612999970112735440939794214110306064035306277183474001442877238235459693634232936006423191324214485400149002605690211322033945654203961106005759913524866224731450687991097178063748118154963819617832030563340518916884845159876807540558839035359337023342843037511657150106815796084359292267162379333494351116647760491395806036928105454628879287003021864592320397310907729184605203406937328229908264874558699190943460295801063079893515727452660307454942115495275542192825178046210791775711437023090063909742717873038188983002500677756412721325391969825458909657958151728446411127322514991398116107255613581684317407361910921544003250385784372136759993056277304792893759889157001622555197896635719559389830971968768149555495614651518932047156700355218616478093849287382082289155695071249059180223555914169253584596287687299743474209094330616109639741546645459730442591439849574267305559316089529044588324808233264098092292262098188057711222041294251696080041096866406196689978753490575744083916014073835773654723498856794022670647329127406755375289448140028517635838929501928900499339561297885949468814470370125258008498645620019126765017787418882342354068512001201015926405160011873732373593083710504604586722843662052421079761808502256623993008059280311623810857264851430038679421024432069140541146054566117670345524939418907369539040939508532224684026061690937421181396776662755551599251238187057365724422630106525354357773725021479974167822403586888412948009384166267031343460047616737841038544725821838818037434637405519684947949196317317175542945666777898665623151951307499628541201024620661463095810380817194852375735461368045588962005582820849284972721642337077133318581741748252463422881475089143458017845310540889070026653885033148569340721690188791910677743747237143386938574958776951846044195997481413357172571152266895850297005991408188075827291648748415288003884223059475397037967819173922165933692360765319490510860567554021417447898806055112796843818444124894412857362193827787785455711631091880638045822687660412332991084290138778526629741196438991238398038757122304622858929267559924664864059663220367689790344941816798392011149544831225057685172355123938081349992872178141487573890335857826667935715739698672242609628173318348668193947634991252716506163707506408611738675681616480225068259954533923161585968394084617504897552609737107638357659376702321861703241313169685129320478952198634102820231565439555499625731857943320748191286240839710839623164723407031575170533244381462992782679024746815164455114753219840675579036151208051657832533836245630479840438372339195325772768200854865772464342840901505029629030234887126407707098346282661897445132001845238474517673861353123707965890583115614696155697997518555143957074012900671951420228992114492950211768135715037732810728657807748927256835365394437094525234281882214143350997410197780605588144544593796862975680998582749041242348035813647308892754331809163890554641122663836466903923471091142190949045642312962983587376105239988960431911477018232796027224748711994776355600935103364460229138628899755136685021738512709683851519424909675447227978069762758998704205714907204302532229698869474128173958226196601355377369164357990837084359232915491398415855897546546425439205867655212543040402902120094115406494680981510257966431003384033667777658686780868166303035411141749708181172998585575815583352021162548139488841975836101060088490055217091249671213052701271917328705220581407874024181737762922427173762985720374395243358276165615898887787272661547957222321788035619820884648163469304922227907976525405269964016161252782921279925733628065305460839578829155727452604359492216060154708529887140934735036856475646410370305525133666775120884400497284525584302285955682776658043286327864071253632168003046206964327543254573958335451486587031810554260124061570254269432752340875765835298480671314261538095584571023098072692370844385546591984058698947344008119101436186003407762216987468077636444502359432784666707766760149846383864273842651653308626984468426791538882806713535669992453144355651003921906647629909575540825791922717958080440975035932635010872587910559814825841166644672689780155922083278487410002090407231736995044425757994898951664871352116206734675205393476903889351279042029320063751235230233063224167087587491644814765419958586084634628885429801926643807141200569021828404823398819428193198552070355516909242257491213089497479372512579390402195225606766339114059657057341865587314720399190735834654012038978370962081717791518336662768406966604099434688335449766892116572592842563141900454237038401350248994470823468925742578832765099940942882600198812604539639564160679717451405551543139989869509888500684348235246310813654417318878807311231025859850096609450025215293031881316084893613941939645996881986424595217444858599219224385897011734012048428486232303393120521531064375978363696650606853649055554078596516473912517811179944849879669787014583970528234452493594060560857773998430247013027453091951758190576913817825135812540716251278583409214020103010539482689835305062841624770661760228754960228246079357335426633606743566348939601277210883936668266282690150265243275412143050637758298295743273550600703235312416753298975174318280657186583732231560188470333835581914805681122652444166127925563725978172763024641318776251368795674286727169829599789448601796528628280748737231053103932847589341271186489272253137024774443304125554554796028063795187393597793290297908494988802891894269473051785885898970677196038668155648293662074196782359580594690886269618905744567242369720312677023444010307778826748760532663330499283739252074224057029720224466269141939748202591252720811426871491836970123840122919539162472645305518868749457294741116515277317411815613827270606962761917651021038540691552656583418982897353652542295443658673699257901898057894937666090852712618183383437840515644053864759789356917543735644254745230928474145696390940798081465544726691344736145590335368494120339288305548054366031272214309807882977705521021203508257637948664573406108728675770742085624805868808840623678240956736934891203858376847363288907422669170199734432317819951166894547831177312059352195571934679316975971959823411595854429211992603038695914107701239953960313421957948547206210307576698885514851727385846934613523009609575425336664418793619345034938175995288004691018064318875011408240887488558097610729980779361506881269839834817908275171222736359202639009135129591348169923788557799825457525638009404341683907045143411913940408022071598651153097143633934896215748250558534318340005470235870386868028690502109160096945041849434606441484055725404109210657136110205267562105264088026008532586518700286713054920077944955684407511391758624655264289633061014377411948657468410184634473845100057620040664019896649776982915482166792301114044484227033525903468062817204651228168174719055878909209725117763768096952075799093664166844530792471361865305903154448030399917678897713899547751068714717316066380519988670505516390198264024132154392858449066969042209783281101785737966655314270312176611860647880691358155631544265481286087991589403990266802340367282328103331319129872357704477448987968625476522878707815186780719874904168797272305821059254692193014442973784849155800286659745500336635469380137528818168731483657323812315090177421543588015240877768290534435194054979733662379194484046310679472529310398898433091778771958857921506033145009901648565971207968490084061700779298069287842170531353782315318579712880815638848510686760802735543452288771433881704968254066537000227563344967874461101858469187368142824580209522832058063934875621304790347016495140860928522091209725158459617105301045671461052535959349891628306102533187753719093278023595854299648242669783565325095924687214938569530961366871472766845240929655211005067681515709622717449093223230865803003569579441616654886412169974182544441889988931295302571461494263752580895593355700441531025578205183683462251347791701104987050505830826242587993227649755564623752899515014527132520239265446514168978753210680142194737149499866581795415243445018637854552611616446514598041243215549243740404471280161281656070132816161934090894643299994503769129894693817745581700745083371119515144714822381400057717507258725104920091943654873994382752074699446922447028747405511839808954392717656350800364538529231361699440714422055673484073177887654868331495025469424237101590093198838042948284777077557966901827367803586846718662959480474723756190725886481772329656628992817155596598265294673910087379260865072012416835777916811416296068090097248952869951255754036716386007028624794407876879480936622510253282553452089433562866272094771934992896626335799866842527195005444404271095649553921573012726520955950674160855138855672727002125727240811361740608415930672756779658577857638844255074127399703780691422597096700099156237381199101026514523351259579921436977171646911846134882634435612051863767918149610655577066085856743185143146119915740997074145156828700765336463553844759801340750978522499690083071973063700362121672933337446314237304360587553134670359166063440415798122434374882206211590707068664142073949818621369794159571347952609113397779708156146124896167950928796218906481566124476610493327209286827072618937043410129184239441485521029643901485234539830958680971201104929338666292795083334380787259073769105017260226094367474094475598764395626904212687468956601768592792001169819437725325551853371126551337091113324512006789124413296267230303042973560915469048233824017096681345480638673354308182740178206944923832271387623879461443071781369825805203766989473954123058496546874346912820040429720209397162712208931610594247979417419854165191298727890855598201789171192234032025278424559022250040373502348503100611245145101163695781745721686344729548352785223993600455771385546024345875630659982042041846102795073501683605397554368942617208213274259602063948019285150158687199710019823454492627473834778161849774293672025564429140295789247756755460054493508711473020377131464844816135976810455820485221683823556136632621440186149784281820237211672370230740977891914802170633052753464748561607741751706985172828157758700581450472616088306087208482808142085291485240481244298269266475567781031690529209776817210757194617482992903600559058710420944853442493362380112446782640215066678607134078682343977237996422934815686462678209183008683236906670176477390329335022179403111202007408488453971217278638401527562657280480456160509486464949615416888951833425170364585774464409804132321615454338302045931134856902318033271115716301435410587629841932280110990252604498030124633727680930991465505508065140344546737243520330285731107831649546217278123966853491141913535080526341814789162334171797769252050351866070276748244256047352281317966664496502049535231949326567425232277235799050894032516774841733248866359756943218607610265045948488536493722865821571415576832680773724264447063539837580841086011491302586612638012698064638427861472206888181136436148957917157776163318348706463688219534311191514635700128553234566680520017478560954586817288114446888295236889355795533946056418758854398073165962555308422955263478946970228757350131448455803060786747199269377055861827033426755988078055449844762667975382299951933941937068205893987796959146053958105600176676451842388121753386754457734991826153907436337463851458329665743278599910792723596884774864049168293058074458683021792693884960023128961858409652240730147423266070126820840840350261862412871997703514670794341084403271001597342977607068172552875001722590559839721685127618521802489428167414172422984300051293623495010157927151069682079983169466230843430629484840879279746140307671768997885508710137005958935023354129203276146390350074359106406059398066696534401600933993655878332569153913075483509411897592624180923529192507189159929929775601506428594033271288471608891124253557245869199827952360252123671204350688948859757647774051814182923834521353808285113490459098476619585236564988243040127467240007096296525170483625107679512306226133473831289163933927645126329617622212336060003887812865891820006537575759195996318386194282215745683203187606154866801846696047559816051469277639908203208326179185007221981337846795130403335586041448072664149511194204388665827374682255028246552349597621065615628039460155320187051075617270324530105649629789912005564508272966520154436099608083728719983009087595068317623771032376038194952861974374529579110642248446303782306836391707400794205366559268306683924073359472391958162831063626761080064489268431580828003140260422342194039007314290975000585748209694338051924987094531097903270824987213150441546620668529434486238073394181432581568095652011474474517868998567796169900353775722254683945741207537283163067070384518967675797762054416513064821368848893236839858278461891092863036166808357094754366954447001622243012966008121633821937068995933386861961462212566879197572570391770693910376321528367021573583449661398631382248145121784974097411039904585192648929754858928707692287820747898222804690930204314832624708057762837558571191969451732753597108759716204442676942765977344887731701799950830745541337992513161574300931258928965430140229994520156357225432791323552713952147904490715576628944920630489496643531541729744437262467485565476394462169804245856245502819314734121103871334023408216248292314821156885233229461840753893714154330629691323272656416824913050264523603305746246106476189306052122831046770983692112210449723767606719789531495688942343178983688898591072231893934553237058858314613344135082762320689258125331945272228367389478870519886885605183440827287201206831550433856453985197714793315921034691047492113521917683669714341336822586342712371475464544377402593336355142924479431050378411579733191585491322637578490967603522042650451933535480216266834325289298887626188147452674410124427075355818941681756948403535151271965818343236968400335697669980814619417721613652051607201528693023426591548841155445577939010441898781399551068171129525167095283952067964650502604660829677616608124839445727460504583086407611750136248185449339289905280912162332873946348814637789581831075890251320306494654626450777572654035106350957374172327931789200288438363314560555750849028879538690677243422887995632484149246016142182438321095762794256946441670521422534725479646868339943663554515692780958528727002757192493575404369349391559754848799521711072238560003822259898757872682821527663933760019638986084409571486353268754422168227031406577977848052130062778635187450485943671420494207774568649971252539380182394749763455251218687608968260385157074917884641274207952761976891837841891625028900450687322141881157957470858217364970030312672014530581199074255976466638638742408162278919413228879185550405832328394690585473048460800100741737303974953923044415666017217891159452650658164758860019431415131941787167337228633104336505966021414298252922643928479607682519030331420912709193425037738443900742817472615845857643348250517478487830342290164853403532059855442357595967923613716108191104899740895036828016208962578853393376274440420976487580188079593577860787114636537585566928205600607515155440823393222240679836653512110694258989097740943794192948074852337950755065778750576572166468147352778737260694763721669290488379698012583482102356230998263134496555926745893804016797803119419632393205666585219347904934988490936468454931926268870024373623415829467020822552561658060502480701249026026809832891594205887518632572444775186428087986354692003370429089243557322028468572246363642469433372556802879305858226237474387261309535444228972410042678475657403714594677775101323740847278513411766051034944818496654446423400629802356538189816255523079938248885579230628348680467261140926381444644092132614579602243839208011552862076239042507762097751863227137686767586912615122999483187933604317063349743642316605323357341666620728211907919687110063887457731831742346996002593208103104931620572741160626547001047780227789358682527824543957919392851722116123781631478817394304006921700603945101656476135475031018081108840586924142834303932428503344811471871010368646440514515332369658069965197245236604351813361497539052840082353797154310326494075953075802057815041189890020226849803187431545281433983890774036238709705162206227135222989137939962818059927853562973986528508974552992775328470249195963922869653062441104594677751512399507926524651542639550198535118302190706113312453013141443962711381170751357900975861771660609916984592889438004698035794730270083691276674271565437326366406633873256731179227405194890884650408270076459981901774730177387201714525874853290590157694702845833299826647624653113874997221395863997672146157833037378449832853433351841199032234900740102133606741486058785958174797111426474387144698862770303988178395775527832237191540363643668686483671678231928577255716115171593083112967960817321447994446389725498958505449320818107562808948201507688529769455679330889064677804475176707445471840944680387066185680540402276281507964269138318726535180241974003503543761698945004818759379028923255462931500677324845273350598648933034912718154550209933534684256056061882626581170951309344013207015617458482613832144216724246615334228101935409596305643240588383222858009682838641408854106364345708017113844052489043997498983781286161293461775494305857281047316499141511525538289337729591690979359343849279734619532113369589807645171406899884829028932597623179059043710437954523568823361311077954088340228963407160184921811567471779107650032234090622594261870345172866394293104305046423270917198315690149965370639461493852150936858310438865067071936288155462702400190307206882344295683830202898966361612397661266227130108967291694122344905741511488562777679523097898465467352967375580877851030885591355119848147237569170555827832624836132162234341262914108668893875281238239540575021170873727661056704212529254559338169239187563303688994349555715776149338875880289046039762370024614096000153757129396062253554346685680628248666892748888110415815330334891599741454425513042710768556959097155443612834356779161464363220350472165485777672872476548453275137869912392127706457474310266789822979754477300542675114959743726200552111598707773599677814173147214612598842763709891472785621052894314557055152274154924391968847864211323386482306544358025059603150084305072229899492989351399091990898574810604325448006445290396440622194693929659313980710469913101502887543401287316161126497536610092925668075314821491373234626584780935405485662431479258885126223650496961615676419908945593006534776109924766510116475764243382408615548739869461587950635249100070954532500781988727506991204013688685250512495794141002437806691530633525505683735660127731774618636876252355678975498691973613291287095912762348676751810397130973480456034794417983779912831758373587270813956716932302496265433434013027094557466795913836072019366705357863602346079406405532442865741164585084435597707938926195709575976100641381221647730524552142449281066810317278299981177738473902684608555882137053348712430238953459101239002602896391160622955585382285187169481514738912079426502042122131977487200051244346474267226371003640692369183099002435253757373753269979433456633096552546624536745359903866798399263762303094809357066280143062285867956004640774250216820495662248872033916053075890242147195042681886197424177594050197689714736073356865268303325271865865917685075133402972036260633883987446497025607228825201397930375480675379538926060604061480264280720765262934711443092548208691823874870890679597672970717210698129194399784254291528112990728521583600033992229226330428657079559911363004795733473855420762421218811571609086768588402486617608130942915671040417882310530743865559294301504110796823312357026179693096317802188947714614231861174648869934197815131884064786989960970872938674244180852629153192251977083971921741263774548446386271452495360905305970137556668726476429367702540061193931702447386203859480804443632301969456769518475270065346082769020753416110538238709312586321864257407466295507525861633344048472040144218135265402860544937924769485055836643055557522269475320710406532380634181896104449720095360456011815060326967943937724340487779635299243468398065039182312791376767247464915522116904029823808699998956645775120814606905963066768598694586856384773961533633219729776196549921107963499149088529710976540820543075259667138831228604633981225502329561341278958145805104917486369265911996046150250157162549669894578905154617598287196375954620379213128576829296244825927948591052457224914466349821376779249760034711224103458461500784660771452950281722292902222059011580933765529950765261105181846006395145159374519587202886083962145453640966868749490539902383961785855741644605595529653654407929200717741091472147999169066221998624782968753004495196145606995141024235446807322602838627104452675953189513758420420900499567992366776799056561581466452906096343714609489622413888896787753047256678453119393879336222062720112749636667557382679559460432756256683603769744057653261874802676367771047119280183055275878532300326783571737425490778636971218024901275979398661180809005509378143249613791648426301664869340791806043095889565774530082443246541269766180466795406041994313630049161922731916685967835344610651340694972062447733191466899447318982365111108700537477352227691975529870869623581589073579149893787525572367656497403077714318179903465386533966608794878750408122350802838754428470597176717749744881386068688961900110664613520632228143685265805055682851970554546253956472734509248232037230072719477332329074869233547439089598174302836406686574068574630477980487691148450076955634101747786903880424377198774755646356918854114027142992177155388703250003313927291557074669077741310069947228279575618758657189404690930289350379716181741973316194787984093932572946162456986346769578782555512956109491288291853941462134554222596831288116149527562490493327848145262586733539409050294137319712780326280154789248958707673318405611552403259323910459857330424543481683561088610951167155874562694657913891065969729913459255907600708217910884822002457167303456134946493869387048262858468125508650405522658838740511295906727271196147368337040985293417471983668131023384743412719954654026644277315584373753817384557970027983643739673797522226123516705471840044077591761578556066753675986289133235792549908846211168982206385039996089487964520456398547470026803861106516191513256527921496087399119006507928110240513316693270860023789487794680364143637525595356713534932593986867268312435441535620212729478254658075889635036870702063174175275649020656983648204765597436831556026422943981834243326378562304960257184569516336375103316969205706986377919438385428078133123347848177704033825333318516711516826066675352816048964925328571276467953868436535639975417934040067403382438381315767447175425940520238328875431208446821153463172531464333800552861901737256376326505567157315365974156507560069144407327770032340896612860834312464034368819435405260248616779494392265874936576704780725784146045523300208180026567609342767627178982405784762520015922696810936485702666803422552204835109785117813296105601439410083877519519605634335327359620735638629000171491314164095827718780971486882408546402122026670531782505692529776572853720871657404284266868791806952315303684773145517089546344299457462094540789548563040410610487154326550511943674943411410593709111779014847145141667486424850376215002981229356991675950254504441065064386734802366256125667063960399773785642482216614563250784100687870239330662105180017112377283238408199357502360668304898030254267315854108848262482994472234825658992437262435585937159894468191792602083519284896488492669213700771113464371325880935942040100466716542392336668981688677359341997018874716414946678979636604169885162702419419636786796663546503900663582707392269767020733178503793114639552895533096535284460388835664966877639678536749835422644784996859382328360098809769285712216370017616385549179449153710926754059633397797585351397354026067714239928055713295191601949895983494842620398857754830731789233602525758670572612966004976141316840995845133502919713425309026579738693078271383445007184222509824450757380922060622403058613161280171679259017112021137314371399939486422715992115750874226179902744432890245612368690283206516893214035582017580585768570743917397782530169397386322112274116195059568572936568750854991636065025959054702870336097158678829543497142393895167202185317207718603517621031069269388642480895351582581633511013334297278781291884260780001228615889607746466143164316124275691568100522006269867506480537459505234480631291921418799605358892041436073598589093540041320134302825390569292979470718612811823431223356375541742179326789224023305179352178055158343489618146284017788077659768859087129320338514013755963802050080200584554114381347565650554341386431579400474493959040016134681241854941523131856244412769008503266359507224836115861609382621014846327563194292836276657375992450538939323813536459231652503816473806698551353318512049991078618720809774953078268747598312456542621904472252195470628524130028418407072991522188992061170870182988412190539096568628136960757113313966519765568395691858126565209255551570953717972103766638127433470576323409019483329542065611478104730434135107943775969786751579699091730822057547816327781661191214074501608773649073429038800880717702365970541295129388604576820808583685837862157743840332444102486828099535261203523774632254586829239592648276636700633122507981865124292307754753822959178033743746853316105875350724646003521341875598991699968745830827015021782412784723792728696942991692013399158194837193917662975709958801294698643378943123678387910557711103688644152936633192418032995164137937364058661125514212991694245108906815738300691343598939660877998166135823853673218847048756298602534922802424361718619308743002641496261213782945329038432456740130361361597022890097961956873356163797905784097395050030670327601712866502761514052130559023606962474831051522802428461936294987265972820508293281893625459136092177163051117088729389153909324015146324657084449454613229484025694382588808521533641371551524921313171705302202749333104870734059382221356528187918281711763680577012373338676877555425207445802315583530388654715503316857331548577100058204051085313893938108112534328131356819808008753940517639445492250710164211893598828380287415990330319984521819277494047716146360158858439868239827528762627227687338818748732572845828646550105779803880145218856363555288405039510917825033365368664635805222666979459375770717346015823798394480685298686500104730377661406676597290649379242124028668712057416649387881198540978495249368825224702417916176817259194874269479523955047183626162625628020657311314622781107582437599695339304197382877407010686854093633628010933482597291952360943883721141560281551263294107611808472321184225159674577522596294099604808236597909036638084016800090928532345413587613659244133150773717330098220078208155578007621626136531452548634808466026580373466412286339378714459274167986330880376522372593316719405526378083924542033185801056091797086679503674760751353443244242171583589933247996142349103176984750826489843955529768105215757165721938280015441386919858657101033154836010299238135025083304188847573713621902134093259229796112764584881140587234142532479623009343895484083211357068928067590655006144104361259270296031971014364223842755322406578546523259737145486025689693891866706955647816772586533717730918209901937360120147742973684945538465277880796280182835699199685020344533797916632565765934800058388820811677693735047487715165700525296558399128738669527015054079947925860092591054551761543581152489328514463563723773421362071955876045328085665782793219880697477957931519689507646532533667137903048441956196704928127652586292529621596279579994210548238117048766954684371778229710026356611174576032259249733388632560803847422341887858372374939550242511468322767242090427880234363884110478826401094566599126150749337342129635071463520056792251709401063624722504310883396431309273761141625938104570052750505278273401917597089392831379855421989691858280375459462915430765425961679835203697905556934763537948521234211400824911619570676323340949318777766870108749045853460384424366689243117526337879623428852742870201104517719643605188617281058341762647712743170974125525197064036873778090562322351343227328252209675253726382358644623417530421094858958464175285508844719187227647642781859420043619616934242183493859666368406400066935533267696058413044650025278967700677840882851857275318137849179629732278882062703222102284414954517583954669003885168020774272424034033300200757371051268964324533196128835362392936478385495954513476898071349918718039629287859900249504366606575691096183573559584414590058756946790626615279212359852103166429063460682788902591286312697104098319892608034856696330432933403079592606174703016815708200417369499392994741442713911101239486340560376712297039448764543910565669134605140150701780935002192432616114513939879914969669100272376672615111847683173280168003441154289597467381645486921564476957280104621271945595755089706231914583542666668144545893620016011196670665957177302629931532963621185395362392763107008163059938267515547846662022501950714370836990246738563981640278952027376446756094157842582110682066686318529981679136180436055433370038332882311481478551493754094417665283715765633485342117306086821202835203077637108077442579561507093642844166963723472809446725567912859417466564081629878795522698416826592439094891312462526177373333273658109123206322682113447927388380687074753573853656436629511714483059371966504016317929004761585991833433855258574492810401499327409643246607666014665493762102619275608402912010500440148162877970689704296025309552718308307724730651646076686111907252181362998671385675351604767913383865799653655676959145074636539193467022043646708168346719812105632535982225377003137626073532221580532647718109867650836229385037203846654403228460674989177718828516796736944010415494265763277467362681055355837225142651441016451128688768116200368645695138160653669633066680365415989947392746510659527037936147810249338171175037909595030183535095910502553662127296051096321987841519248092489898616115353704213565931423596977760182072746754915199278076780096775236182772376993887000926386830737814669869981218217646364239576429526669031599767649965831157867582249274313138285655092279065985661987787459013394287494218459317053974961688963644741200823196881253740140596263569196304453570851603913970419901174092279404110216430852293547193122026591430938588000648524702866318992050467543759958250329247362265819125088950477735914173611147893825250404324359192365174919498296289179714385211080307498032964736344176935469738159972553340008311670185400784516413381643074911342962679646166829085369192222066628242448916147006944101683516633790989234870269315916862413863854397656494238092087332451241525159333468948800966355759875683119915715501161706344893696652818653781832157386317064611139314131151356919334876788723441690269019732328795465238996174227996495240548618773684487468785275013606604139817296043123036641864321667803728044765337296242755965263261318396957411771179627448288732717553752881926616187119485127260287312021699088189015143232786659285777919641425774920390222845694976909520837000142745469618224143997128492779530978365989760762316483872436815323152665833163522180385512785227073226952519146991200557555953429531648680978509435605871947692673907849934702688900479318187103577637967278005557279765938222342865396705869425899681541272848752668988087265256747761126445248674433615250516444362111642103333176026003761676148452767897133896468519928815813908637910329913645754130065539179148747252114505431439828729343637153983291454268463245289336708408652813410274666150066167191554809354111367413687594206779798924490826543357235409717131813488333478708736904520527709004958062024322661986610358982744043860993719330952475777454790217312059978619245674853871250783466019779409742835388836452503848438922863955358517374819809406821025442499531904310443609912019293680753158549971672783816723481394492103549951655685044638033525091068424995688908520120834362078103967431542519196659364397983197364408570636606448452801020237581649861723829450532027309554493464212390254557598855436629536071178547998546546534118879107188782508455632815184858719407714885144302721049393677772274644482763021254265890902076262366799290985457622522986753193645338192651534445781636027608121912891381438121481953461277523040171239790753097587394613556604563934544908828695599305205906412595528232469607773051009968953000530769375914223067912811872778315295574181332024446211582787362969593865680648006724313105299237717817420068234082357638280599432203649134315185584508354688982169288171683337965655844553552676612698240072429570755878529238679184706474112181982942170450153761224193949335126584580263189975586754925048948501064541343213259427645643393316137926834997910727883954831185014345836906580587190864982728000625766470340897595106665763455016101637309671905535170547427644195621111037602029254709931219084588544111647048793008577620182105955739358259730686650665128439400241714764008280509545576865611479259310049510769645238718586778929091624295127247857109008664818029583805562424274173315001926427443593923267678359162879542681091039690951637179823334080899831351910692012485863675624638079646302225738813820765967972330579596151620585324062143533673354092120953428483831587522542952972521102891806118308465914440360127694265990326615838979442806936766406590479631470907086930075322348461371463654427746992470882461810958998011787344028246452448954131813211494891912065505204808881462221326966726751185906802475048281210010777133340471919797998528064496089667052577060121563424749769230345876313559420242251210595262400236142545107536468360146423235129731716604150178706944840280383470571628049708172566571529880544754840504925504682020320780443920684305167226263429445522405735228201314446571658601622590854193689574283633633077346901820278615406315794219061245844102845650629086368388036728241315327747207420567869257602623475802174298219877508718032328605453456557019494260362725770945203533458614275764655095983897976096200204926457827259158410241094031853498155530038145430709190484102370853734876657495262469374589203652595539888330965030565130930322000160054901035530882677615635375544093708020163052169228001440553483934548606620122253140135063646815079878843098994894633193905061182016413449084946184907685752263255585554835743740938757074524968368304900072762221181193575067909045730181832336646050661417117371233943872743382664978663515899366203607870433949330618320157936963806747184035022505996846054511651755497424501654867921412118765574350783962148635889916663445217944866218665805795074138619266360254727356862051064993694004480907043397719026412432996115691097445445002446556718219512491803251741838847073945584159914252526028730942670737671822922770210910089346168171925959675510112857804158064264145036803388460076224950654279996637296257595774193696116131564948364864950576019826228634573054107138261985687775950102894730121794586760637644557733661583996821831337632366409952293320895997999533307190023572192257783830101571677427501448252241194823477812905805359878384121256645206447181710939102663960935248438720392453560961240616482412130975089226868460244601925840282288561850241345409912219622846817819922411118559883256575668930827595040080078506911854864707889023179267006288261342718036241640214017154719768848942739018555734917532823476714452534994826152438201740256919115933197059106488384484307843928486423422203106351181882215094878441855130857437453937507223967342315221184556243341581483752130549121313540249240336633396014883595751452047155448619802382507967784549862781696215835405558467018373471784424577647180119788703887246733665805522432064749772445306728582532973713197802953465855713598384898988830653340333053445660069630384784080985094595589214366040730296923772009680538854955526438337033400400518724514941426759158788944802689186901910770117043501170167018556297801933188589659977611922737809434493332123949145488594201239575503105397233123544521020062051050306059401850046651994256953031535330888951656633022035175736878716772833348591750528554920132784386755865004999614289385980575988673391279531072707753813115326534983528818109471294758977087277894618249910627910683569493673641102060016701618590206916747022133619339950251348541610011626981913686745561156485317984967938440190029632669331241800947119286809738954170076254371216961864382570830775889149134409073438758889529366396273036533741422732120067501523220445147596449032106667158525712870015954187428969627827596763087423669349976372981636956163260998080667532818270809106887005132548135529423320336630809459439633741270731254039664479649976976602207528670217661676333262799148537560405939104305519638703407599662517850771344544133470638263817079821533490613367206634055060472859153688169314545978445140654573933458328101925216805368558158447500920257135139051358779579904209094245321240217231986247710717625903773424444117611277779163126933524516499755609640709359701823646457483430814099753491123906163613537800331056155331517603978316696118757608788166807033017744940839724913194827790792710019080668910273955365484152370619269937050823859133049450218949753309351524403377617636770630099305276205814562797329170104927762924426801174618179185041568935596528588011077056964115304106513141712387391182755937387996716841193905145019438134530612845608596119745484120472784028093526498794502752627869559028450355844669615663333741085097699693956106835454803351559246117986176717851358866947186730394359028261890334905314842336022730823557309759016668527115798091238832634929455203618788538115651615201201768557575188970197331603613230669743449341501178998643781396455847505575992580018603402067973008389470901492310036132581237528002363575969938933758080592221899386264771660981928917921362515314912321152616598657012257959259513080888656188112221834540646851373028633515383719059802223460639709302743593283483752804228843126026784468444303431453935511886598536877767109308529603628416896170086593831267716921674825547343669650277426078277254796480199871308885754013128722200186990879548969745933255476553705799104134721545629818027679606919522309924912697465157709062225956871489054427252538794581180759577424061902763899962329001438632535332033210730402256223119653891215105590325036885922839889019082425259534580717825559393102689292161128805457417702257468881489300615152220760420874455321842682202314242983269958506368440750868002724640458383175154198747058614144883339767880910046174531116064120549913076903559319910157531556758675653349743131646120437489574523234226429509980719107003796693454121055929714973000056945254938311531067519438650271081905600269194256617764768492642678460673711154414902198649999812619566975854064646362627599055069210785690779626338577302298570127059634654081927608036490666720179470710566866970908054284950584296452867138821216022723237675303905970157696924319885299814558142481461623155599425626945680119202846585977293388767730149678223840994123896266778340933477621864246014887771163613766367671291060064897265088007367132419273642038777068697818764177751060327640977884538447998462541657571169672548074100701722328198653689765704458580606108657277038792142987927064752765476452693080284125620267234676152713953871522137144514201068378913436447645088329444814510693214278830620766569816556157334180767178831391649536744769713727152472620404722927544929276478380869004058705881855876033640352138242804492356613593251420291479561255655105191588614494409181137877287043417514959070108694812597296023709401524673059392055543560146538671955652193752314521019793688165565430557020553116290366853919301804007507051399424080286553914156902594825903591527456120712101507664008834409780754521288623464770891309198892174000455695651077643621221345708639637321776021976052531282746208945300581149336439235796683761315910423320383589458884978900996508196906859999727185930985608582601176146944692358175145878785683625819901178453264107586789351274704488592206773759287199913621555720848385607693238523815693890300441300595326764667105238477418914994753120948788959279761055625221004488508815301215085531654733662986702422175134700972534781791428673829295255106295565079183138381158682715928371225918495951805473241896237828877324148722556924344641658056909281893397453656608097042349891312273992215671858718933918561052362177573011538831224328453112098736874809714122515827275075061178180532694944555323806012326165509271122366888111862384449482999589617300633666325074583798909423716138937754847575256069018163165654748475135171844603139899724965364308251878150459792930633303846187925766958572603809109011889799099824291922552763251767038633510585384701054734873576407075237433437397792311353399231680277952884162101009681063170254488843144662431690762629007727755372677613416566241219186293980329807382854062987670848725404758281339029052707814786082266605331095409001586073662419367419821811835963582130128412357842983392661783798330702214839035398197635654162519879623336322825907743528798505009123048254358628380318392359780932432964904974333807709447344888875755955571137103818204679996829111865931552738930184005107491235709846793715517677023619463941298721294699573946258194778279166120128336336365924477416537264875503810306432854796765584404619045971785550873422058263535689868901517305902726032379446343860139588036185919093841933403145769927468388190176642730296723935285493623993686799966361728029683572632887638804383876372320659322044121664931602568257394339775132270782808285758004347927533419990102243348857537392810230812920979065145755035080565236952085723383675501584678432174953073852363679782991371119295534670105852504296569198352311087018351440079059595682621146347456072255715286916461677780301266072250112680473265254501941283142501177782541705027724500845042854490805859098654012676427477947099676821559360700365340527305287328154588736860963915220146067653858027523688173656232911659692708966310983988630017803483860332147203515518239547266952802512557877037040091760488658616695108237386748535291677089611815762862113221277718411383628595408743395634837316550566296894368685014140515168790922796945874547736598424085019591202833172270002079003226527345419350003039118661565294449537397936447314284834226564342356084869692770756929294771454330581874601132847567371037938088472892549457955308203687209565530809384457366641691221517268253234109579120254128061190994659596026984018888055470674298816931918687455486581563835330559710877687203581333102452932875600323791196449433332197180134417570933684250253835379943981822143792767718854356197493926797076218319373629725289887172466625268734907238594327258957240107199158450291170646609010490979303260545316319382481773180918489928463642954163750544247090765994739679955845012448962724485140889966419954467575316673728364673815869157299223080218463831484503040190993262146625420656765312727936221126095301890103307454669550619360026614056089043939798731303996753240694330124308187837545000826912010892552436074173843531992952222259586227111773130234093947402559790699160341233515555526138707921669485483561029136272170354594531612428219995934758289069802346144212894541746134167265136037160868864510750575138691068249776323834838645017037349776843738352221152834433895182173079052814237645202995125631635339470185523862789209618623770585166086362536101683025723262752000248008252177059107038071698417309158905407764543884495057176738113701355667828155178063767270768580822367071907844993972296590726110392752889752697699145891799979350559766674763529250724917778744368632802408677056222058793157791275081475989542294264530080489140386167161795194405446108042215450257558386580240965412157096891962270842174375049926189074490482938585228443556053759948527306003625223615097176001588132895754676907625770096194194686443076412878325795800152930363032030378416329478602217063154238537471969399478640554898734457893508289279012845640822636625221174862240851568338217031361307157814181030103104155118750071721249066275567499826356433729129500833017081209595619121432725647246021237260390278171936265539611546102335661422497853752459475589652782024152261427266252285324085441281941324324697371463648625267702220845131306115107465285035328246976068921490508009450735224956686767885837392487695678252842490720808301287121912925914804136413222303019476501420052540395808859190135287189566976669028370875741334795037304290716704665662153598023581952941648459412631526601189545256992590897275770407058152002724854507449375565242616500717577453244582020768793263238443084720213550023826083911391200882567550651503243288895898118041238159360448312635592671966581499324410377067073141263234981583316086750313976489094592560959559471262069465429336101473516090235456596949850429575091956495026443503337348110208153242441080585779578459113914055251910154970272004557425358236004560294247206755897670896036542890611090113224318136713173592012404427532040928690162865211552968672998468017041335119456262387610425821942718835328334496532474808661803188213476464803652101729881676656897644421598431716928566878466949991406079542152658746634009340889601038505017447301145081137146432061985273088831810566305188203672483265888427487458021413118712126647038991914862462680618253967617764549542295240962538601309787569861591152398164632146805613427273776659106301707361941204543710301178828889818798867367173740054891714769130287983971022624122304311372504401643092074221398108812568863285417325331621243715275737284651447249808615381191388600333953571394406090265787165825784940861503383096883372373982967888102896380704976762368610049309562424717481074318460954450001955401661587581124818836880266454900114813649534923687827615026227985008015498840618713942532989574289019589185583647542423059162289288977038405947382338794701525523959453709418087248475209345577293597897094838333443813055025216907026904766265838275909673563124291300455385761046726513810357896830022879645049726082230982516779589284072205578494031924073161207482189191440396966681504450784279412943702961693852970375932864466093120513736222817101997460828585718963240746292076149451305646504889629585615943078114387436740428606715457650048476125951510823629899467288657937232571003560107450425812363120189029013770966637155055905252314566879200368539625887990862529571795200402762617968003776509131258126768362861954531333422157051308920064712569952730726575007213711758707649133648726594676599472315070435274759010994481145389729468384684700015671988087262536760758626723262486884722800816849073518250272702678768115778314410386683855676412720375561176307102516509918677376599958974400825294938387966483368244327527775580545220006045490986682166962852382075954756089711763529135834305677773851648684507931823172719369371613869400001295021362786671488648482258860604880002706940046314108567952485617971848532647630775399838258662607226197122548680494286815711190409511391790157093553664589119376522755901082146487431898770651505433535685091434459730230585682017567320811574155854504560481677336937820044727799073803172451664594961802585206609409595239181698162285965061956283011591522176285963954467151352518060652866386434071768108247724469588043929224706343350173399174931963110873823267050792699977505439106974223377843133949279008539733480190060234611800965325673684670387606287978050513762639047616120680748472693882263716110573334225742532011520482235686066788674732191907748000319481450941090723498564714737675582191113923526563705747311750530914336828066536245569070567780101450399846853977876368419773177264127768697549846344590615653435990054517616703014071922922932628441678688361195591989148385172329406469510766834224465356342357411866368902292822318995233751615195817915661857657341383507706067282059734448810703406319483859585838823632184819950357136435588072690021752827606617956520207100093459251099806597364071206361390735251462347727847190903202220008898180136302565359260582218487433718521875131848313676909415134036888609447480469562664319927166150052167093905811824540436424430149389918492617044461467644334627545526608565692624437384670479681078561513051936702064496793212228377701025526404170401282332493969630511367590741586760835189889149162484203409995071208897621953277590990405178041007066454577716030547167750438663389453451596768075879370450322104497017998694987459177564951762851785363929212990505515140214238911886014227648683433511478967574871685371702432201578586600034615045965990721899310991747694452084127185599652025638205776049906374597303104223211149802803935275347209401971969249207829215904495424151643534629078766314122505315896671687967631871676016035949197809911314904730320620514399632317794703213433809467730415272057284344940899882702134746445631318309297121113197113591834201644669683312170810354662173031088331232081101672192818068825506779638170508149932872521704093150503834022476693376677935466813499955480472325756771927944435031940610389666802285994800878650341622378623252688893972804172549952418648718599314395191823370088547247776927223115876240859631759410155017979601301702898062601872203221592105594614982498589176799112825176367858772478926867994959891129308415542397657059375927488910840041869867772115771238129620414398219406632076096749018534779426207862558857954381224739867633181374744185274086204860187508760675535220518897555858959203338088346155439625542193862217757786204182351707134125130972361227421023195737847561924429654458493072363780732532527884071102819085297410948305820436762484849447275721045847386354671598235925348269150368764790408372509300883850657848138370937875961618358944467054166407922015753128954678993725456227597141481524936189601277397651368579923154794700522984561956558470449098301502212900127762156002543286638835133441704707330524545527661584118944632655049718648374634867701967039897306674449216502572572863918809785946396176333790950853799882847501706921377797526695611771347939795735938670920772683276117706402682160279072929360765610568954522191814173854007656795639771121785149124139262340925915922455343228222259734406023031420716210471138433087866067189848940040513605035839908162657805343570383756776216565392502457882086584141621680857710745357082376257340679092908481377803186680832850246370218320092289818335717637221499736951566125333581894033770695250798451493875543777214596109086311227301409771775916087568727662046278025042525417818175616542102795266868902540408548616565127074401869250734751119644763892862029826701064384990261700727185927144667886825042816669048659145373880813012881784220190671384253175144459008277646748766220604705365029103596453023723936813934117277030919535956920585739740513503631009282795706647834426413451221301922075576396240674411105870122151472782100789674316968458743092076016748052639239910882396046394492449390110932886081158205588223050886003867241443750463623391505847829658584059464571688385975414457047661893172107948838176420870460619892100640023072736126047495403716825907856832929776654546102090969169320831277685939418749164294140207223456425138847129184815246869817028133133922795056484709808786242364953809220323021346510817411094571519373828209999257484012784959528930985284038867205090549800157099716589711294582095149033957097169659002863093800408025232071544520034561617447643465463678639165020196762429519518639765761791203112623949531644095240839563573109096546064378902464021245293187626646408904781184833285667922900390799557937206620257023818783541071217245242666249298849221541603955480975416124652551907088533236249521930894414642157176846141719366506447138641156463885828272489457608322198762069787239497628679835473889220512247881620973950315624794803739754681417474746658040524798927121433864887605225794076729377113619431760523662527475565626707724980773050793490200455991291663635860012079441363919454557637059951859616201806293511308983198635692019759893861831050590637863329998855407198597228667014891687749479011543374735142180779932489649220192741995341088262374442850058913396406939122191152492580712020322161192534391717176682758877556760710152352128503471540116941541874442269831909003438194648475636798034124626588749660938122010533618123017164251922930731897547032452211231735001530185745711901232006321150318778055453802201466824313121452688396292763687878342836693541355878757531961459640269238831128192760967980958852216571154138175399469552254732775675013479426141156772403709573755888918184365256548213135332870234096022115615300840220446586974712718432765919540391530945042085932438286273113621549667177023282628000417516491475608593062717943846058646417376627941530286299144989953971802750363080281238962601005727324693637412252114746866507405042879741923663734352335948273321859685949819214971009980111540846583921204781599052880738989731255584526697242349833326921368162318120885588981100206499056418774569942284011046605418021539834814699435862064249853349829289753820459147389595125981472948890586609493688922807872640208123934754157153783976614488763150870299353573233028387410748254070097602999972900628619361152516777478613660379766879531440263238649641736359095976035083212914870521070785742728463995517850795804463292396423013194145093535934664248642341852898511492366288672190893366083546539250876706325982001505407301530578271358612177254337927538869998891016691254869083695030547486033288798241294736816153795920829041194680737516842254783668003690925371465394986184880619803695147973883130461030649375984050027062570302569455974150561039329233363914891015382337140448605024007421881628661079015512343234289109336622709978489563046854015448468904624186477423118411303286397980054301823638219800857945359291956111341083639217263479698117004551492790812325321157380453673020824937826685781829961940929945015479477880039871732556107192901455854973470604345235914298762229276506082408285287045479844044604576946324606244666914024469665897280195261297187166157782253042687993167437301712914847732787567696572402548984856111781252267583438162288561235983627770814943778152669349373483585986303507080659545914125201421352177326147712765111581090433852782404834877210229675231207386131280068507191341260937845636798477016517780391995400203088558805537068551535134731353112848602948065948991387433677954713304715546181475241449616353852807813067810890618846879116861895743295956032104304250135095278685412821563172638258290163512557640365281091767259542185517523458123041950021401454014820826277074240732002364203829037077003621485975544779154462044129430090927228479645167368591936594529456226763213489141339027707044648575387337892778914897900527722316170256632763317048725159253127380892864901251749204744082793760985842281462690517082220716300421760830628691834758119765481845767257428539278197051425219488452898440312529033025164292135206937275204227916543229547150255035296826581471463548663786639049739617399508037284657615954101392843442428087525053125326907729943202738868961587281456256640901897762886800334797748609772440971098404406247878862128597120500363653864451691878834565413706630326079850403479000069190762792045029617653555785714549995820811249479676395159031834230863001490008628082401004529157194625531300316720491268400654880436608539972656920603343856091427899716216731757427978590921180913713282462475158451417035168164309118515527425150166300797000901943407592588275531170098006572561039535310934501579792500618018314772006882551159753485644277199208664003873139276854212821751729100337668189106413120768375405511341095475049806145926359829529290761774966356205150482586092509773768322143650245056420825345791501708116668249333431583960931379373678715474267381699679612920754252761278712221673740642601259592592299858475895943899428267039083590469190318922496657363789431755331248139740385862130365538123408006093030842175706349655225173376965875793233975327472506116564027561329683843872141565093109591184966118806524864419499363449048439623566709131114478541831238792992261510986841389461104909049209221945149267592489094136831490724448418220632694562691161454881026822209049682822849963944774586632274882316622106646960341157367042776052840802731186533048390916534532573409038857592682911538137742772371675198129925714562062296944762190937845357823680300145015944961648254451104430101404873780818821528234032809748160522868293842710536382074386368336026450597598580302836661021353164505813274716939323876698989857358871794282375050411983178828579795228539548746872874550385395376118637765945651177338355083198800568164823587139625839678048999331271095634219388096348615027324506264233883354577030251139024684805760882156615310770873452709894975988789530779867676841184407420916017083142688513671723865018321925731262307905487959376207535583956348358676275929358413572246221505196301171600953179307595650402928888086275249617840519906771202159386600510632886553963625558446335856572418702832771566435423374599193107711171253373222655744813959447067603688184957506486731642751253251658294136499431183434555091019772393481047734768655752158640531749940112693734307525467105840787894060646176628493849278073418345061280471319878249825267708135937048796200740214138471721681111037375040670968944258469706468108708052254568524257416023009791412427875615657258352562573543463994926708466593845708666066378312411019638047449917668463449042582943857162988651268816006625128682641321518675715687907296475394966295679945928064735187878471818857692548874611997730761313763157662502553678271626976913676279415640180963506260445441192855456279139511305943566151908120498331865355156402661242871561036280905678408517283608837103163981064870967279557146493594213629852033100887685458142860039283752034283856774820572793292607987279726133778408469900755957865467068417381176794530836173540027084541137346566579592002296778989476254348910100160827508453168923239433329039558061868507263710786351593635326873882754670340954763572565247002751594042085708064360774464231254100550130810093224051785843072642937953820688286921570451454669140366009075384502441729944445463173167107051893222499334138502879457949229213978202667932258205687330163326241864737504909302951331210022494745678871242944662808695889248128555890541397199437820478016484687345148278778698962724319448882883314653049895463053678313999196022391167813996203121725630393862258548295667276990653128426788417718483504318189952278907114251572321640702298890431573652713122342285688410546059315865856880564168640672103532819009008522265666027924819646488890461455739707772783993575317744992173283325147633433828663053502436460032012482703557623414994446147596495166004373918063130469090177367770661349777810545439159415193785053419463505473821915926931813015291820049732082593369626076422799761077615250131446167236695045848070544652832684602711459074841663593953700691546778387510900863321550075631232677761042941460219765157063137217768446083228448120754654660447178534993359476117722389421658294439098061169793443285281136831686388533719216811003488722476953927178698907247173628841482410338823370697771345878472818822127176085623218185396543625653821064628094723078357497389154289716116006541687734433912286080083444016733610586082474642442659951930589790484268899205926334637844698961968552410139332231725985495837150627864730638409741493606221198212387647757087782041303684056244665257922233697425820305163259016917836473058622504164008219369974989029694495753395886847284707574155204061608728985330016399849863002325983824941236480280392188957358759667899676559973976820406399006459406586559565191439490086751429528970528791635027932012080404259369482981243768387473234797626541148230448911852485616141763381224139455574384958415160873341417133061747631033567405880615054979534247812236130124875598530229324371422054726558088860228052265023942347326768242504801516010161613578310881884518859417270187075719606452151122768178078269152617858097159216958083289766471840445263443154631710309750892030382812058668634910772068778054381845859531427405570729284691686648263488174250033299343517084475142640604822749101166043764261695002787919143917193904622639333652982430917061269288693876104697750583633640156800857505995307148831872238288067870830954473574366104860693845383913319315727257805671066953371413164558466095986673336518034736616155936103338310773258176590914873647153698999617712766455690498605821571074732114763538904459357340180787289966588197342642156330974687718072991126175274896394378655282388265585966753249701048037432442282597804217187515957429014140500371146663930687780881003540393865081657159981493360900977979012332006016126758114476333964523385774001527319187912746007913043965962493790938132833723544994127278323469864946216816859754687897812796357305060510683647108220147480370174583902713049864187454743739389608680327848285736802196870980841813547064564389619786019283000706426833048008664063806049252597976272098656612624199872155718691618882533440765597072484699614694945315498107027926221476418970430784552412859581580612261211317272271981249974867018950867477066670193124174195587258891668495177752064525308115303693083628057504906852899552601871598567931101480096138679195991791627848399484563949888175062638754100819157999457442173641862238932606652857222666218277925029275303134081622250939899013668258167008780120839070818169424825859468463542548543514484239557655216872076976258731647312379103349718891407116421940682530368615911450324051418618612717860930552321967978925989228836907425442227553183257613906984583818542911459748004784138441714782757555462496404083052161330148374984769620118900279464572635621247822935593820336095616391357468730556505089269452826269471421676803892858564278502278406949026543962027763927350880735988745240762100557642421367480112457341019551623070127093328830164774879347393413675158016263912220413282310178158732886226687742983415964389247794882603186318921483580068172730596278873355649046227740936727996085030447374521727199528577538769264667016491409233352699234026626008825505153045543631459425300146203196473446611454935154211394222115030581946259749789780461701147488974486417682902342525010399227013531075738235438881827784099127028688502740428298346036788256689481860165872758661145849703229735139945713424366665982389902824273457001184553109539588648663786240598425353221302978266164351451935753354205514178784526289414325011143060084409780417663092758781850101479853601926669858246942867353102061152702073915696686659852989927832429626259080780091230629204192259185084684738639871103692722773348742740976993321386495357201992201163567448035314272123686054822399319807720807883700530193881006627019067273305136906502517988008151474720514133720840950035388273836915455228440572221205580326888581616309187593330640640072832756728896147798358627493614191017701551915218740967259364247340859408057817774342657724276539574214243593920790871378787155453161243752580946300570028200616627838278530920389231730532808435346401292951171697999015626946770301468348827020177361948791307802049068522597436298309794926102502803430964790178319863799869496948122938720569919370207702330654441548317511646453096854050952620213311718805000649613174500187438194176338779867395648040552851035180557529127093716987087962674980806446218038312972766573329138495566385442332290181890156275700488686197457152263892376271552354255219831757418076325620588300156279022013660893969635991712594078953652792957265021525448008455158172977258162394981942934047531459129374698384825145663144012295968128985899040879847956444767987326651697061100758670454918215252050575587773628093979971256081212882148223524265795479425387205461880113830588156530875224072251194572062215712995359170657309297108048839173702865842815561715704772727306503147232057650806431559323743946586764990254532362335487115402398045288123062316662661456593662331249381792491462297353718164647826298193287911414476054842643278669529926559013718570219334048935986696117965236111698419968772160059531416368090937419479259339035391704434024076158260408746929531015526505905780556201608535712913345467925980534144117800468299356572416462375095192321924468757120891056781944529489442026812861892933265353296265288508944211441813686508412949407473872016209826022565073543668331084890555622748241713040441353772922597251580978599608235687241253162535797023745848817745907221649161118166058596725571635969894974768229971936374771851883100063786792682850733140546520657108700211193455848494994756728561681132974545587784341141925577277165805545884139924752051298536815056345646845898070076690014686406143283912703183721888336866241830247028899543353832423441174700487963096964525668192013249694022797826618364275938433685937533630061842786313195867912400505093659758695895119258337463318773004198039070573131264826189087217583560328846483184684158641938321015611729551227460918338977787720648409633862807850802549611188818416579378530560364998114395769310394642321714297350211759455025219893310989339178324264302429709504257429093362761522764560361970641635247878233627539601412231343172388712095927207418812997209947519957818377161087171281805335284598587592217177955920154755860513880357976714360595387872668899039629091298287709629351761518781690902195997317183763387293363997212232326384788876853937393595571888392326081432103951257574055863504825052778361450573312463696610199254846953171702069685426409265327801065662272451361533063593573855808753331272315292418447767742440674671605861426986280095226793882165417709788366620034185160916766585113932369567230918482597375754646884383537128873350141586784074545457473579105637022858187228887261051481796603052850039621207303501961752882006439700271514098111969726474787456906826157580587351864331077338648184989382189508882198786905425783663942990837124986681783222069754784261184941495804343029155552985173661185297490630453053829039674246325061401699592175306324015083584290090746820352676132839577821374006682266676561473601789531380316958310578069947688215784028341502306703021780939631007541186559668335994435941751345812154665577325601326281018500331009079058637896937635509960625776013638228768322550107346727436429762654807932192366156011345238631612797609781626736767861277533200586754102526775344482065901151746500733750593921889970980637374425216178789847810572347412935406351974689497756977738792272502019362790661653705932209954104614207582220071955431753832629279676438569519745020031833002243529235099696866188258326721215003170419527983163167682652879028289395130407689657500688077736422445639545347820148514479417323958584778600534618106138013143918144348855855971930712068120338990933170031191910965086335327753207907385490636024588714961799734791345287212979130899154128161389349179183144584189733163896203600360316290451467942902680270981731264969012887786473801628471690357274508481583484175818092265017486408196484128355030952538423150591048470398559154347494481615144848347756840112718927165337945899774627461227139566327292164517742466097771530348581087357516646679631573580826633123929143158690647875668693982390524935024039488051081773667185575090704605627941326812511381623254815885351539707575151250963948058320641119323016716799071837781103081947608518368760798317761944227921018225197087494820398413523677344594524923789976751768124793017092769297759687406608154988050354537029644869801220443118801971957551916422283215217018775332694540564684661416170968598055476016649112064496911586832362494722162784095661781697888742674898362139519071545142889116760382580982284192851892334579458591758563804911260544439105511758917689765628804334109367410536486598281869561538564458327967311850446183239692674364816498954432229260151515280202006886842850423900757913030971956370085309460119509403241804702518194115532772237847298702687318944078852729483897439937071860338281904431087004213632705566840403323528344999166675488908451814489914314961319786826424583913211776388528491631607657519200394013827775329630278560962607798768020584900266786629829727162982716906845200306903526643737436672828291324382511067825456732166426185109291896703617078826779059072655067800323477000606901853581930420430641862707399354399088765433110605605941751119900263131186343951007517453574054250491259596036190956479144262775704030030143741701334811081776587711852916251636841146368431717739916845389246474631373993082417268004884358895305915279004125428485048890040784575626777844477627558001473583526398906547042011826372925607165878641190264029853092547949429161304224870311378409967828879352202594724229453704145173893513736616859828636104601931271241407738270188507188487109318321973472894282657965290066890649940452768931668661779930355043428845796107700770236514163873478406798752529424104719682149336096031826698943751724779897303188435603480847364765000014508284862989581545964548016135838385143283675595903651102919838241595272229772312179646897124820167535180412502820151863823511401551058637208997197987567989949938252009679432937873814220436562224886264235344148583008721455575633169507529331588586756322094259153302876811966413916409689336803977362175674706952024789076739172367296245320179942486375315384205656868762929130478398631564584162046837238090437609955021272113927105090483162714091411200416529516472571245374990307516531306116127762572591288101196639990778662631485028677009189701210113301617845911948787045895838000209774119950100501518379801950007190453436742741679468113665978382329882632357426762852418661854394070431987528680763412888608077357862283316315532627494819173640749245060413133926215067494558793764897429209867556892348590745708774391911874681780064000297803360567742638037403589540408474306011035662327330386358378607204667117607269037674830214262472201181002218531780994667195099062697188275215057337140632194894460903154623228393831241499070570045154079368229322846660927788492219103654274941231423541971511529850729912416574051074453347925428033839305551853585254002435663607364472951721415318105924832376617996940919112361743919583672122457845635323221803754508380472516523055102940519587043653061870203883249569666081987711359776120916195987524363927254631545850076620386458688400824892254945985496170990706177692369157797550754021716081249759733983993552564199981940996727274284574397653095774040510008989569208680606707302411180697185295099309096325874854592085825532595500327424658724780911171802288895775361017727213366016107608600820934937656397648027866057558459464257910012608412951303287357906966342812629418794608806150808308922105940313650154450096315375207080786804126672446207186788375276392273349796558876475944797657669162791967596307752363056504850170041423768927793516580115109338211420609540104533892101130287418163938715091083902141498745498642334708576432507999212237899462221820104624374434496190166740214012545141885756196450832502790032153804177840219477886370998550712427209709853579697188944673533669417161966790951436031845497554644276022472515997570200530497247071489912309129932100194311239546097839187760017242100502400580831732065188496994196696944349890481933246826216026048469640001994229687243462031957304574351367360700315471896240546088148798501696834500229580158949447236599038854227414339376675493115581873330857098635044664880430180622135952203247891781942632683958181280935042815913013968775849673796625299664909089432727836399061933205365315270354425127167422882352224568315551711709219599154670354871922411986475968813089364860172181008631944061295883568561889275446092901554595803824793764791125303687732815197828936084926299605148105803255997439805226978063931056875308142133248394473984123481264214098503026351396736721674081225672111507179381334373643597978164131276228522034172377261421886746609835109183362099120256571099781547564337478723555522463150534712634338982786963991909275229931450709862639881403799183072121967176857601031499104234312136782966406703266398484667818558967267146375855869777312390619345038093294831710094300005746470939192504031104016570535030006213857019885513203712945074902409512437834689058011461971253684184698628126330128444316273984924302844361171374578169751855134824031029677717319272044399061827839865765012859489734076615206097828667224177806350110288438879125515708631487484004761814390024920303638610447423532519080641016192276132668824626504739958628255004365153228817504714762597067150901131366278446377459289097099198293951953114920314948674953772002438877060016784739570712181138477516524736644992766637717302630162641809849252612334040505623572430545315794533052890108216027047132706371611570217634322111104204608927147678815569087034989418478177264208318389747857388975781553480424308605243170827829563688049692720895550667269760145764719889775567015068614704823525402809956963278151335186990823432324704666671486766910626494591628587410109885025876421026791612445518010383185244774369560365301061490449513234261058254581777214546445966982227924545528868184294330403497786329369238601138282876507810245386966960825311012327409353072979306855213009841950643836483759026198392445164857765302574729168365691820848716805620902563540266965511155560423281312111982520573035066226405299145470444467442140610001970261274128070023633465415358052179548328822118214706389781224107253292622128557647330460965439470534131133334890931734261962109084746255972863922030623023116850322880568519952581444347565214257403328067501156881645519828833140561101565597940809036544632981160189728393891912328037516469623253310411552311888637783804072744624500168472439266588449051744033270098613227276019181508697915922581784279801403195226663700922801326144797368301757730292262748267422785374467935340660707582040317091650195610180449605569958518933913380085020070458048133296552187888139472997474229737363406795277718777014518979998605596530210689454848957799930510321765871120812096118306296935761648626548546004401665376981066381083949624835269371348873057372261209033524424126279357211161601518172283103114660714775127143958897498848093434195229730415283507923529042719766279929592366679715013471744338221209800865918343902534344060455253504295832956983144128810257212801968436909993927354243943361213273679878557144651394186240172395473570483456260401363352584408820122077128864847712160692941976771382009996644317894389964459904586484885094905590052413801459107102532509276246561040626262016496610233513798653226668086494366286251686059231360347586564185782384865598547609620986501766307457813288411746353942449197448217869798499143181349564539620046128498331552037680776580353732692657715432685107688165672075777705168119774749594189738198280390702909776813042898754951345434999638846331097751494901061667895867534274769736753453109336198076602621994236635751711277739202975647163030298210382627916487032466373861373521398820718380044980597433281309509991672393233088353255555433229846317325771954875354536157222697191564444006061721680360089705137928570508320831827779137650427417060259674461863380196315748724515101382178438425313680394019432341307725693071544241190377487212074711919427079026468603292721576724243636599895651107997413876152280689646272323272367209328697464104001952234176063029087744851037359543138729274186624798806844440883452444816522183118355091947636262669580690144459349801288954778471493595349887936349834387144848008548149896145949300821221467088620099036541477635183018446223800565178986094373016153783501958854195687290796481091562865778947592745837894540249294835367532074792972572184770606700610207071461512376410441749631794840508024440422403755862611488833654119700494758916281608251889457408202093054552608680065758162485206917925248163553997330168450295279094165666031586014609871820900159204356174154826441033650947929608993102677889646850987714925789335249264776319030834641770702337587330875962751323853197116486663829321019717709588372851854356258671946371162014940520011539120745392492225033668732621269782296419979977594489012763901788865177122060638548630151250823913965142005286013086222866836336003223626041291290992975682516547645963956753365270813738093794467057549251172901307783910812598290111047706229036679717859974432164517206529879494428683783664019613317134763349585834415308871755601991990803083607933353261226200416770264980861994985772267377743139027104187030155100588321871009030567531187627149928691705186718350837318034584764531788288541539822449296546267459363888256788183432759032397900562011785005981612491349918534972285047501222085080651645475403265022226141395676906743340414453556188439163551161512931280384339930822091051062639104226087066627551843731019671833652805461238445591652978605922035645076151312958128635229603676974361780278505387540770813975633862599437000843549905278469535046078860617217983674169787857263493503991841532815815913567418988155400171653092362308072153047630612331085744651670603448009776708126346809019091173415921833573786927252644793826782507170112324059317459816984063661518724930440648401444492659173992961869671995530493976806897981215353796381222787884370813686957635299304033743478919813478345008935457887260085417428805766044691346231622837258169248760074848008812317341149527578418434357735950003958713273970880735534680027285526129908425918741748292072732647545694378943682616453983548893144618150976687480287028615770316928101271943030176054498357176381269644192454373773274073362866721396396256983652648847484590219622027715141989091811122799985566198134265407291963529635097752090692269044520916902028400928337917029300373866511090103728575684744110200412396875667702970163465325839402716074711228645337848625935174034117420172001203184493941821684326277241952607922033581084157328856990397910005246908588191524318297100814829841876008316366296655595221910784020781792485674869902704323652486794191722822022678650460315215474458128718036275874654921165561463533053759921061596506552949235147056798114010412850483452325199192788875492943893517283100946864393610625698600957948078392838402061699290211666439621951155161220718488794958971021311747440924426561587975022193347562246946224871315306573621986141942064015625017088329923073708313509767362601150370228134478000087179957719277196962602190087312787821116167913248394242234645626966541776525159168361587966513071465065876161315836758992307802075907548652401069493706854892516854993098679703252412058896014628841578591884875801882095387679886573854656992002614476845084171054982917260632117845474540837230062645124595942671878544090055181037918923202659388814912862936448992718258770914855604386912645556239562793363977879940554269106725956859682230140059868595762176406165342297341077649054250632691511340845605813005743355557438134458609667845334322437401118673975561784833331867937796073366514762451705470035221159481248743156180578617401430303929891913907936935395920221772991960425314455748615755384386577005139586743919965275366799529669184780977057153359030707966933346903610960975578064568441473308687369744730489059042391063393474568428820539601265453796155758236073752577439279248304011256753772688346801602718286082579283506936484842305799902687127101303628867445452312142419513514551526556755130276184828190686501313813191531831606256727386255223799192888002450220806989594391629882393467377188381199196005162838093461151431918200461652361454898565242916099272339517100153903885208286564961992053071571781816540194492176014840471687727143953198894027318881671601716274145257761490960668017726379329460279266282468445958410224036939256027407753661536816070466653167877124522514580297398423383923472238458279405073641866447643748615340246828501930637591740305869552193824719191059231781466534784385769121028652644384142143127840678019749170221240192178692696637740136196352097085228998376803134526925192936835581774653449984079921024317642521178994799611797311308835569581811431866133841249647768806704709217405522158926223126793250541985962589369061080216746796551478901223573009924747212021692391678230175108272890321194441513738356408008298756314596477487243537817985883197953264066730729564908940219997860006632760165430606190206611787366122977054925518436831426671477484408264601538340055785152078292213580489645828576918721224833754164078800747498442993781078759549849934287862692169467957521502628440075382174458480558462645971990206864294579945031953461208668484064515177355552580214212176646186212297050332343785533457849498049427620341294502381900997444343290296090664110080564461127358357456857476548748103870527426385305715953690804477413057446719107772369022866218096181289924118480428826808672399793957617933597792891767068037957937407421749389410626934367646116595923998373199429508508014299845372443454721018589049328037051872357434362435027069519012413594233769390914635443661072832657069240185905327985204593649754974945718611535800622967080616750871469917050511763164495170701399881371920702390088993424928827601682491398795974856773800237968627562578656204507266985403179966765563905892324260145630391311678763042201259472885241736359649379141523373446159265576964059429363805998323438875667593726397656271092053188221552061792674353870659294251514067066870516880945413538436992072976653148458152259635838738197262820150766403802873050891812346196639972340281673189187727017049987126393703848488613532514900485102953844187490140404379699463827621717614692180531901346049531489560439775947123201883414303111989340311039537352890811431898931771467800629708292745410580717611745764760566377444316768010895993567417200992137946906941170867222020935092407698464402091076385129882001701862836070332788402590262446785743710044095043756587948705092171992773138747901548992014319237704189721573944369318618505836110374718421818965151113182982537390683359583396415914883770601275937898380969140006355323411731668555711086005619655858209178827849383719475417526954108724469578109812451969351010734085375175255987176519571677621852792541928920466353526316405972720311797573582822772186768920045487376273709320186740856726862521901022387252226407651883392251396563419794341838408201289645742812709099137749470239773675294069061992660363474881623596009513663427831243577127465567346631619021286731118250737379238580272114440255393141089353151109929428492395160899477233705837241064864359142269394271269381107242542834395273164496260199443718819495776092554813637515497939468578854895704691684495832360042522455243036035839404271452743029422841034666121686604999020754324065999519679640579481491881763426673250233888078905030306736166676058934137434092210178545705008941262957857933264551527840659316400610663495739629972898671940329632276654637196215491342155946837327864066511475808251479763863865197697646635736429373114294050633028323585382696166025568174643060813308091311584257157416831319486838768361544389163140525302020077581019148076043816331796392930007997509010532156039670328280884496312791704712759123755580479840388842358490694539692171711224828649685975660019793453074827951747648887294989135512640787162616724039641067587090261330771977377836095229461544985674005506691389844617333122346914986501557180619217846235112535751371266284275787562696078301959658560680463841631487602653661564320301598491950193851923006336411253503320240088661440042256311500956807439451202790114872032553296879408531444763419170523473875215078814241036834496578877982207553974578624608215190193204147462053725371432643493424954101613981571836710654631628008575362261032366134207993579993293728782796550271929013486630160995124284610296632009298956477401801281127284685793408627736597120465391896023600086761499934962309309200221132814618821297686887188447699987382910296620525543873244775021474609046765367141066677267773169222698454009585641719309077536976854377193561685269318617939482175083294371572736768607009073095279030237127325679100955991086674864748254495679329514724287760709557220072497533428781276875547934161029338381791045894332293589311902175781815943765672163873288866869293912746114449250838239049477362896162188326403195152017817899671844793858784239402965589979418413017523041408949991456791535713500519170103849529347804075528019368211975395434742898498965150647387011485308495348595745345166682820171845782513296584613771554831558210430256078239833042176082796579680238725875861955259333612070561068716800573678322133034767488974966307472453205962358487871333485239304856107942446137254641259902411174973245072395470158328198181986315110714154500653636291343038564982739969632969930254966279410968218870422816851865375553119061610252065542954290880379430592630805512386717299862054660865006725693364964281815509103482945028458636288033236855567157264977054007556330219177271470114222707745129530573248239142547806238632006348902842675211093313776763637092639831826611211877354427801484998524321406903383865386226354126951888389012142594661625761830205537003226122211553949898521211889397320930055364528051912662888605365004864387270275725700196988804379867063489441210681573121192582949821795009702113005861393175741021644625229784998238870151925981775262506498833795873459566468501147957819908547866777181419006432610630087415469315159553103680622694817973939933325944338062473288838974084728794385916254333969304448772777411158684753883753204223827075125435839898821316535748937673543475553118600358626520326591546769369923578642743771737207104528320137568310495447315529968987842352489050957770866457122104501520261680129474724051143518157505604806784939444140063105540872655108304012357860421017776056927453765634363251544623365387238582406512910428183744840218015364170894601711966457078709082465048308781922271102727596495315484345845916442710274929514132811434816421461224101854417938395612372411483964905379634366231240067565397883583072722970103960516874359436298428378399940319953055377410275512914817176787225317064474896610482548312694185819911187542313858076474302298214237009519106849494163689194763875107737748278354057225277419146027049241717115137296041230308188447832950846435901841853838514897746818130216550429347499878000537454868906285457619533510269879199156200342364809038696996566647696632734621222882690752522817252750852142130386230370723317063220733419808334629478445940063621207595952685378245815850598358317375212639218953570632509108171953781111782469725106070335760780986193745381124789222654243242887799375243823101542858732152918837292799433378525189863851896208115422018146703782704792269252829644436105516498950299250005143642428146171022566726036918575789787786850094891242082129004959463597030787498448737218736829846825736236046508421836891838818602419925104396413735717182999910393544045022276250905200276820435423323302463192754148890031960508628837287503202708161713716525937844413116738842474317347690926524701100835588054483254912221184168638271004363021737946815406291602802278784605456354579215508469019964209903236995034536950424514754625080895898477140340918353428944888619982002964582276764437670741032876272630965903212005510027259357755998839796683896348587821501999194011308177865055009072987284477206556872975989691066208552584840073775313991759525234350196323532805931056927676988370281773328192127020948190615273109449352996839884601330446035854037183710631658359326757114053686316569849335763122257068659646205222545763261342051417746471883948771772744252784968121594509573039232974292775383692404748452430044747140736545321277851978667392067216269369664889001265116808136392320582685132398019426506055273367002087772866842825833636881749299878699102870392755984014863581638112548065829020175011096748352227145902574322785210600659329780456086764699303593416232580592891083223372879526343821657760417797776482707633251027762309778779721414932685957167643057602950512008575407218489381729393995495893935469203859521415928355646441176092648344419583083789439775337908886667429385865888821206017998009935865949051528640106806651769160044002394988998917251628529846532252730840382439223227187249440387519513970566167127575022311893050275066492747656138376108143698056181577307423097104472646238333449455995339031562290853080032508557616676968690823629577366408571430719622682092989545947668889045432647480735472991799227891676638309785229149971615276650362027837787700982967657837959442037046606609332283144086957038609757809578898110796960479961918108278805735508396709431077100221994308130927887557630185754247507921263601594819092263921529490543241548290646622378595402107468870649050808943204757926016914236105763760294323819894654892629332650438074482176152677481763651335102898824512714827648900772519101391571798080710878093737757548666776448044854525687509234815896617109156669286400681699418278838996133722070275628519004241810685769425433474166287530376137453884283286504954051851226547129468580082116143579254778884068877882027549032374193411967913242720109134400762028708850977837171306934306620380099556534821127559944356102435003085837171960451929233051340774916056810378853928298113036723326615058882840925392939703669214604321835765071579267883329575921710621223998945882579465881846416542720737071122182354631527309903675228386673967190993959332152547279200595538625464646002465468059378805837219617786020208884712893017201465057099012964184813754776670018565837577789473329323782585012843465393722838085610657772884444140087134064977984853211170322273800491243882459423277660021562428105438919945172477115145328669931962171942911677425593460554440118605176605957584709656351613746777970724752710663723685691557483272301165198775753860614386386266800183068822559668899737919638449438207021258893584750126150560602428504432834059253937205136110988101719687979372929865670303263406187197462773794008120260018056324647717386732465948439244695870894028340401459840079907439077298225934436084646092091444677788922503329432556504542413800798200417990798040975602151230183298070859895373751945841350297108264635467409452127285068142398533721084180554886103107300275602743482517151620862464359810619565926686659161632238388290387645162210414214997483042310299747808349671435386743177315581109152144648749456374567791807029112780903591015602983261855287084838893268823807647188216132950818104746110325970253153636042608670494821906274122273150387717617761013163883924872160749269427920941953447595088575610787922009502240140595783784447273515472656858963375574666775453977189616237029731034016796621962642854933562026205566916313211922552357522848634622183994743301869163862302879356694955742626034083550268726095349916608437090985782403165310163442030923122476138503142517052757862744019002154422394735477484594586177122506837283499016312731082397026586026664140126145591306103924085195267002134795563976237244773319867152062674612481009834302753505049780925019793448607565798193488940267597078149114850270574032722906676994468470767554573366326615688981165353915959850602386258054460867731463539512312328787685325666118665828331104705265759888129212958797467801286449713796020304548286858246216303553723968287930147382260575203869024565625113301208950719398464624062430990262326079432556923501610061376989435187355463170556368394326731060461977184617830751842396829079958288334631888385411483629089468121676155949541951592431746176506018263062726166089870386391112529725679277379942627568922050032875846813695131740309849688500281404746626565292162168179436470865175213771497068297342060054590409350651658384913269504909128459590035131897585573819923087283448095017265989049473378770521722708541622782229703237263072236297288735620281117624769067249836961958414904370481538562285485029788139265156464158484044571972443985436131448550619540585548982994581820506568305012608458915027766110401896271891091624621841263920116674338337842192886883838720014947025244587907440104038028896053268758413394289201323936488572865050014041436682620945221638385986110723953737872733293692746936793610142436830043052617045243174434857424206947300119766557965216517283749366681425110818016194298456223894217769736085982141793403381430397297839037903689475318218639907962751792930582571412725640071357796204984861128952321940549236214066558506031633146683838140308075544504558348671556893996582559105800884710268471950108615214163535600637872768749473082007354100345246690724475774535119335889191236580681757234811056645971261471950029326394973539161042058205613485755403939513205291657529579775362550166616951998619754860432937802868959129305984735737971655048544215536874946027501991976565277173517359223313980932568857054828136570508994353387233771187991711883164811056575951798741753868479296271555568111813392573481804706485927828132037371810269937353914877811836471391846792274116446163509467275380672849416451443855623410332107375306173625094305895776940357145559213546215949982697761210492255843014388244196275882510087424995638485476719523063901101944625197021329285854829693336200974553967632618215145340586536518320404309435098152805968431279099460957877115282870221273466273120169590514951027630938992510120565718628421701419019824873162934792137949084025367644896479731474743920384328784168640741681675795126519875335524274575959897668672713524020829383326432431159188591652519090338826046971592439369235069397592997722668933588669433939649133349368561926998349728146375413436922016954052792155182236602135987870255826213291964957608754864287399027017653162192710644481236878093477617087669813735179835951104042782138303910327336413471833495048707436076084743111799929045540180141152644231050357939186284526604163387001175859185951022747947557670681064127123606761174349540400026281679894788788180585122771798480935014516670957037915632428611167912031338679840190853530074090029464283980330212672784708310161405230063973250211655959478660924107573641153211313583927851622332343764152564620008774342396253898275585400366721635779415141300186769500081386438886921236545448610221758708757850713039256765003346553016708540236809024523320311043683468848687689244572443601234667066658393687084535774712600869326756798202773916437704985417356659984557542083462418603760640137346981447230020110865133950268592428858635409463118816611435004067283420985073228166328602835842419203070384333198751446789827686103111338039070819650017514579574810171666139332087740678173831200545639196968451995588152368825861721468607008168428173850242681380852787465167186319967491936767740122767793427878854623386074604045078419771317004938205643853379395782040470276860719324965072125014867427693197138036439675035881248801783288569945139182856752277959968374220626849388239498031707854387850583064383967514925514910774245318618041227020154962894600665954294862111335499580945637969012318572519867894731825108391982822678326799454317316283185412337211372149592401174809034011836898729789928366545068947851675036121308805652250535688373547312256980528824330347130884646420836316354918171953021726505198333549561621912627166860758738593130421267698592144456920471200532557499584040356960415489407809373043294553461446259671024898488222458325909580812566812520483507068973849189895360243872463914366236916693384745282830351874681213720223301216646772600045670387121026861867536034617435525923795216639054898412976618594452798519807705862649524750222333214732748509194587273788398110920137938193469523726972932339241608214276289019050662866585768291708421653417894917844206771309029507768524651197577075395160472054947090936949363526086563031154366427786161101765753516323334937122456305411710595271581021622791270040742539197126146734832205075013605847419055995315740638283564321490349288901580210805250744697686450215859768476127634141371761424479226965575422149283362994176042109412755094557393070806110127707134698222158550590600079760588195780059540420058992557548565991837722033360817944478437729548497812167305156585489346802965567667336744851224333254253588543789456031673864683103392792363483619680971900127649892186716164389659627356020703503027929620777127707251833426162753472443648843893765399028526267440365868678333346688508790249287169844859161193266453377324036887917034032822331554087415440488807604203656308644506508488670363482266026944200237833153707366353431568597979275510794502221879019853778015396058652246880461820461317374200698634517901863304307579519499036725603056330627081181701095996653958156090396390986012964864465412407916486011074716589580823553262565158991877266220609353950992526955795312127749395748527442856232599953733090582684858281103087366558338956988084509218210942091918098832994533319891682454859819228750001443933973389677811988039131479517318138365307589615851522450074469978605696371714870953587692840442797909869123550516131677249372024440749850480661523003322738536938472987627961414343912601708318050937096818651919245541671769951951227189692174587792771919462716949542387823098500458623248791244592800057236029175198395237750365863862327470838988446034201315458092852919517926582652454112046177404918411908491331468206344279293597479814504625828061827894119466498280499643889069996988752263124383247430801983791007294262700905925545241357391383139668151442866856576684584389013237630447655149657040583210112125654241574012333450177850391353738058537793654039923633431987212560700709440435881837054546440158234595364169234591228193233385000504640227658428794036013517287101092343368805860866037722826722819425441899176842264804771969128869683818189659824886124418235205518671027727885174409211489519633758954470211436693174318950414991876724031226903596347160212764465499916627781240840002831739493916262265446918815121973902654359466289024293542934910526661347554255172112811456475021543758824285217967537835755600004844801073823763023676104717247035358857855520735285827321959961899192292598501578981691609271716588938359186468344811269341385622000733438097021548279335922902298699171543675608057579508798728790410276507248952714219512617592478480735307551583677709772763157109214972608901856592791791767056503691014628396566035847257327916735242233038521864060734808716708326465671830140992501967243188060013481959397990385550628880697750070772044910626613494627873706630526956345146467536870642036062271213457861288875581560598221611543796971547300021973845570007695463625293768192983092138345170618988602419619504440122622053671902933037594788111864772897155725857434000661371529097900982134541934606277690130312973964184814363386519065965456642382244676669120167555246862607354976890614482955517739385172548425306161733011380711333549610430409747478917066092215226857252129486495519418530347347429830582071315528288288305985502398954004081917885790726588678760589628957574023210674317687253617488035338799543627646864266529588599562677151684261455376321032601648843047923726815224162692144660992505403042652592422772225143110677798033646038424807904575779290001219258217146566692361273778734344198763859450054793482291175285633583154641066631436032167842251599147273196193566648791715771588717157241902806863039987353167409268474419789733352375913274693450659546328437763177406012951492476781488574831647251146864851177186525950304980712693940212849239830615039550098546654892555113819954446816522306918389956245423153886021238431083357111367987270690025582176965948815467754000931041496735131822718033027184014317442682307394082464176780862768783256355427759125420837277674864863386928101763073015326440828958828211852193456954616914526432139580288228478983776753106174381298299943931233232649383665456124893795281443286602738867709336948734177176100373231639096195581426160786380437800752255042556784524395025426486007048186497276403346817810075768898239108273406369768750377958692181579996208989018252664556407942124481885175872772939061304040910449540586703634806127614977133643366318354825282052055593844797376770196554571326959001281770012596628497783863029134757068350425154820428935589486215464083481271615204569344693993364836110752693541968839942168905455426425469364863221793786842023231079832368534496787080181930874951636671751203654620777498324331785574964400554415906387914106008339779714145493596305561761635086400379594452509217287977898062294798014326298323571266794136598256380183577540185576272076838041887209762828446655481875167787605109352091880413369714257212518365402023246674921316121595838883289968612854203586077051407954348252495151073744192343013659447293838129545124861101990463847500864369955094478809772976546637980589981337568513713537087529275115950466019570998653802107118662763294980063697871444844103539531485584984429560438276644990295362001958071416132974554820641881050290013636551233136824546106656334929222927554768233352053587183376718748992378487210651490910016544129972856044701748145080158680898968769162837331794758032881791039114822417298911706358703230954761773796391585011374486307608508057164924822393584518210315784342066009512980701222364833854602919010932780115787156278502394860157235730385855455754230183186165322253441889243012982090139833506963729536606909305145094401411600065691344410545103624788820768953997863688224803000413997934728670978663191908770372596276133153019239259202963435731934287636782062589056873935148440777907407645721189112825360946108340152028555215552452005773155202000894234025428232917157651024689223644888747564405205325610987912296682905218088559300204479391575391524356548783317634787950688154000308287045671988258079447668810830461023922233848998848713682916998140694454882074134625387454048285963071419398508332352564125065766412003151218937806513208190133331588891675738170256600372010138331174560137030931864872460697844313915510289315872734955717369963207766410258820992983068948842633099025561259241607515663297746004319001790571286441145916208602141158826203270318437217369737378342969641194971386819611392761631658887221623438252104889059934252194929990907769726262061075349552933440479435046774907235828093525859941687625109225983580221515485879187946189150250953358363188794879207355153650884407232255376220771996759922740573034033432481725800692497327072969494229332922646677438476379077673980582598331243976701511010398055040039904578763119073595639916818121887062820157718255997339532528857792559244115650558068769776727281653931873404688965941743349858806373890927146910417596235929504993461465793681038799872244603598544459006796347615594536111026821244239817659258075105927772203787570119572235024399493865836576937111497010753047462066744367234376148697298671030138196539815386690263729921856814889688558459356284316074939084157292298288036297190358853358510279783351977550781127508868503607162565235275263317053257780162846318679987347255074884643104293202793320624310068505084279937496162156105195200954800772715853368070004234637042805268619432625752548029112335524999836169010318253611415841432862380324349117513371544735380933313994867043117595259906751952913980993988477425545291641159966567588356346300664735993691978821022147375803915569428973712510216775608293298748806934475982377713495360370359013552701353634122001704407132313563421097273304284307586627364203621218510668731469350065907706148834679088159261053193770573928140921286128373393421402512947961878056184150782748306896357620847840496340799130153762255954037990680982675702193439179633798084410111122375111323494017719908352958756253165214062152485867368325260338376513568904894002300214070340750513909521657803775181220296047433260046552765718472269014169321760744290419160687640398279263429952346323873858580204922574784507205370430321822320156392785182882523907369785671177880076406535530454395159729859681153476061476366033142262336619973738185438193802330140405726735750001552991074462858856166585852184538239709702411174575689216808878833910493217838269289663642769651195509414841541465544144327756780883387171234884038695080168538031685036754951199681229427570538330924807246988231187161605517551549161399258851821168110842818547055859999690384906499431501740453173389770067135344299269579792071274083751781285655003537747407905087979598252741349377759189299499173328305602234364162752473505174676382425698666661984020403712644739000993578172964549208425313891718593041717033771191213807329942521855866211016655015514491314034165603903926143904378849044212988040310110246630274063811453750826851701269983547490145459564291153184042429777162218629631652030622574094289734485875245346551945687126495741459463924190193420624411847448875980139031536545584028514356033001806853449531983213252068904427407201434060691336987972902089319891239837334028753720492573460601795067065572517922219456319323419194231208032057311756703099440046899049871389584954819022512359516006207901387970177581527193477584888006093152995926982502570037975999972634110534483658185430897550196641929940785245451997906242504365279167282589953045372216095425855438088448625742484870203170374353717893210524173408749696999434134440967498362631894093363104107231105085620658393601859905220983598056418490346120614037221239316402470552093499759128691040436094689904968866864079170285105213836481136104000690385771156557365984273896105011062601657860204333378348701864681175601599911611391699960780259798912409247190718993135055641375593072254381601075923294348002208305656079165971233650677910554635276291598422579542869422216474782733115823611254840712820700307540166881008068650077962328229049933785829424263434225273527922650752674156104871520609854838399711182670730113638493912987120692514530843268760331419474767213749897143619981720168791362989269276245026757278011073334301120882960408809194762424933111289711046068476682677209034115036673334891120725655340811101287101711418456045517650530647417388611137425300516777455086297546923747877358777063187456895555931084068546191433678723423125706920314316844576875907942121918491539224151585454920511945014032326924122311025353678554117887373108167700274180764635151730419528119653613632600690219490121193115677911015955867429664904827532260937766745592819781148139899665237584078634262915370144700708930810579101215067960521634577661388406901047483128045624393313577143750268914896816356387036383179060084563418469958622119805546873052463646911089090952722191399648319029873642062462226969490606043189309758693076488189481901991545116236174528776748803139087333000335298671929436827810025014378533258943196694573875176221388194965978535453006346577004886940233836211795001528709057396225309431758051038509035883896039967008635452450262570134665317082184337849007445358001456047973903090879616042764706254147103048163422692252211272330512221853570449133574309853628859573236862239900124232340096893546165190093366640813243199747663408497351031308938257219027862498725688626957475445255052477101302949577143298137372926231901634480332577197596953434647759499924127579320315091157926019468010312335255820758342725405687330952353998602605990410555937124151921519911506143060321265971112656921938536252153699707291479757524819008430421272693504342632401657224262017456400409818432700261398183581974547371745757371089481682585234645716807574057790038056292137785493509593138929831192948514753174333832090774354630266703577557207903404152564398618011414930741126070439329838730535244384468440583598434022001209917516192293684722628924453815870052641772759629891405596168881840070230050582295927495342754905711071034855339650906307925929672065243190097223814096249545108994188553606785815509101898203978231674367418539014430845214247139056020416375160323684710066831034455909990042592124028288473836253822494306555588558301914763015839402690765549948366020010749525517128149467313130907135759410911795707869763676345452712713426347953740870564587635550873442672033398718642190943512691105293311154679794630622891061319263199157720194021964916916742105915276042064061541273983817882987828946033815980284926347497446787571969085904024206455730598097436034240603005111958166781901625083494711003339341847558563125444291243872680859133395473659010872880979099333780362409043205802639525598642511028594965073072798970062929383788325491141479124369186578767061653771398329785259008595917957858143840977508635370689106870436818497203898289155636102062602086693526096346704890222540174280786212116177914845067101582684796686647318417987936879446982488651277959265426956957737931154592807910018527737089939689396590617241518442979444703379043481598578086999970494681518321471613891345706267693132199518794583408201412208795443877662821963047175160950118598988514346932419436960014820015476782558120477012539739158085149737045318652779008147419244999031344421029536946618192510535433517513631556561845565846488848059043979839482689478528629959075979667636101977628599817277340671813184193801547534382806285555008898132415327597306245880675750759413112686036721456609194100222651288641492324966923686500840280978224290461195875735538885659147404472568917784763356174484708510033910151505471493400482450371813263110697269157419246023696265908360486471223732547391652634713069463677138843189541892295440696367710804702113626797712003376452012402500080144350140758750715200374498723362147356473153873300927673058673240733779875320510536118760641782116824236954829260773157204862380406898354933086036180168893741750960703134234447815932246506860215280565161513557865306640014686045989541417712326633672087179841580633177074210563398018476341332890777852892276977896004625123179301073252035463841422964719849484977756957797821170448167122501739198697725851320660399467121098426256236286412647708043294526091837465572810344329665479144394323058772720139867068968445185154879877708998669151732601669367457300265301092222321973343405320159588531796532094875545584755212219180050921907881743195783745539766326141591380151490445501043910976727343203803502156576243691744674138717872289694532902061696138825744973983908289107656490193597279511183002128627987083041371310265936760590500962695665313658193293528000598356121701694762496854157913584113052460976140899333559681808214717349256801360612156328240391664674625569633006253318752764639430372732000690506736985550431044004498790409962178937814595597005543304144452154204060617150477788593035238241140962751183492224786824319476423927750000017629008680104114097496853549855543889225969897033217096401592949851140243362953067986653949243296917301908358918932612070330795983035182149390696347952898725140206462575097841652168377226829107536183584332806937400956855676252136487084276863770379548935320466586585404443963907645058542740556277117556349327923775368755285533087445483917499909179006069345290660451509770408223212716083656659638474618721535936358406881768042079706527817968358367432716765176396616198862674583385921630832646717150959606362021359013738732145504570606344482390031875183482226149573896191068405688328550404242704655811738938158149364809570621954955667662914771195186507128899948216754990486850818812496325145979645776922482118300260145022099025110657944949950675026423880284660701907130970199032856846826929314091472266676541654333339127720656921854671145700308855313062392311553880006311499161169292755422440125425015998172029794044897124594953953401105890142906028650987305627602904474142827840930532151041713907891698826067582280181377942437320105205269920069057200481811667548720200743513163647751528843032999120344563793692435969036105897239411859159649187993457001496323293037842281374298936989737193223736310445898267112302942569516108185877627351553035205332575847718600389055483670247796339520879045701511489868736295601028523303266886582648177395201740950694717169432542754456150644017737732040843049376323816141273317966563772103974396802545962762774118622598560354002550680351994207382114701513151934596243778201894021118639467662297111369311777165393801623471433935445028417947030398215321097660290604433860422245317451013815921853786867121236114335575783164002439414671544540619005189003673793546918113257319020553115504121419616305206424146065490920398120243210487935576831826826752576605096420264767173370820214095369317354307080529090076125233950986572865274659639455946262645815106152084810664807365110452083464981232900825709076099204555423517509014593964946111314877476177415640954978583215879959439012798350429582731541184735060270483569265787323448214521356201388191741164171417467187324215709558293892703030634519397728504884327434093265865008752862162279551909600054567653382302379890029846910098472929172485193176208032954656076481910319510072969900726793817097874925632087120856878525539984583475366630120112155949776793926720764019454945508955916295041931037082801129740844949405335990632404163059931747232829045246506710438803959361983585547938975854912099606419226917071880560906197239588211217518949583230339411496170655455914241843707323583974800382658228906082430980533694040176665713536986458217010101245917799917485319511438385482959446656315846447898875412523336789354299518735083233686012321720270886895085168511628658760470916958672738966123098688293815183088887754896675529175189772131970766529201369563630821566342720634706485925502518421425638495360534570402415669780871509209172324278386107169075704848487146597641774383700543936930999650453568170347183489970353315021064891605948202839134371570601294108810985511224974679398789223048577294090266230277610709416159094011156596165052400784123893164439038560543226725641616973076312667208424675702789552281289437656825176317547733149159372074033615130932081046432119352617074486976989835791293356797294944730489821244358646848720130007893135341908510834596914879665531575870711304216718140956315996694798773741393427075427694926963119333566600536433356819742317472030955506459768192844205778940347905119983286882268874959736718344643126141250904617484604443032849539739173698836711877744088771266710156040678364759458158355474046954263553857121328838967753204455668784831851934037198207226271513457804709637699971515776635033148714054851977266241710289723823153361706577527692743546443241407466068927558538348568962007313554289127566930060654296046684409120687403610120031048800733590900299669233807378210169365531219768761749195309348878825049702805512702003055829233749060893893750743586265805557062692337620306019612654860872306245765575643991408296032518111831941950724291056724778024602861311674493328779605494846320745669100307703784004068444165693428610131721460636644132515267349393299656389806424830156602055312016676933939638598247823997707108507401700419862518658042962869418955367399892028077996234870834873994435796879452149466583023148885351575894933546788363142600577838217316483077664330524460219195019697530616852319386140501933092627843265635718454579767394338721132793529334327540733674661281574370050326113964262973989733562368819680483681115777012242437295474327670742598521272840929417364678686168732567136648356206531469348335385550584450243179682346243030136899949791375421847600825987556869799725295097275983259794935571649928085585812997871945146965445726029468914553276697064470271911865313745801851940731026424574853142481524652418447712675790023454671135373281864745359027606996134777974950521254324973670137231879848566880613736197508315104463199479319419645043988820831481867795281428427838678171657453210895585381027696822478010163072787664137476638320122845131380640844704462910233531415840352928150189812416115754187083694359122373599297711880660474595857882429603948125960740527318937842391376275341051682340583146655877974700204810661753127974659811006624714098311155246103636605859563202763029180878927725954637643621672265504441973415360968722330436248562415852835097059669862074669711264690021786543734346270715675429515176875895301714128220205453724661327125392218695554403791376344066812334955504122153738970443968787916294074067377766582324325936022091121816387552247085722159563883433061669738349847180940282760521695707568129336003600027399109778488339717807743796327501378880021587060012660182919453742183982242821705794856211028733440584816298460041531681283526200663611495738118626025459888774469028741250363036597623828207004739670775161041948467907886538576967157111711869895507607053067945521538753952840203933361751327428791445547509254172206862974917486490193236409964005083164852117010601907806943185394915185555397235206178813260732882323153182975799165185230155948331614351115402358426649470154569167268595056773866198905031782828220848491223454712859493541606546005623488369063117785804118496868521067468175137467978299472642341089569856494536712523188195689734068682428903090438061867853224529560999382093368234350806536100262310623105286747997896166457626310000045291920729261973811404202965702344187122173683950164237046364396549407637931807226999467814038568319171334479866240208484760745202721140779615802758069436432669978297461575395777045385299042983477013189651281001106778046079911869630774425163088864465716619585322822746489660751329425282353738310975217862682116419672464902314609577528574629932752261727661661177332194637754922596566927279222576935425844319095176166308224807904278298890255372042634921611936015672578946598322301979477119858903122313829241133960309681039502761088225604658156607109900014446878825563036797325022451970251159395665584148581047144852177982787892687984100462651270437632822648705744481620033296434447842942712724528042945083701624685984362241905526901578148961754833571287882703506178596907646664134228075119856641968713966258110144492090726919057397403091689318887826624905121383314595713008296296255446870012084336327568517804533706531345962787441650993864491197864375044946169855855652541919384550455862728680129372776844667685891221933876768533518622721516414618540763185949868323406281788532203496685632378455633713217188728303979483156761598373951004451559764301588999123160230442876301815016727312693691946035805419126313555271657390076597696247528057062657558715967651866868915477472373040111809314145712681253622858954035161173273014174428552697427259546910384792650879870766497848649937499626660755499057670241421877847276150580600529704247408783603598303612111454898282894474225908640758302508217116877395497880056485431290144380848985944945725444347334401559746273361240988268831790220961515188073758599272483835115423323477174969237830447970589814480986494064966455663961871282016694762367718514223315230138850719635584636527112196923577621592590454279611023430326290400012839185494150231405673204471516467629529478919271370325457487708920151972446603954385356081141725114529120325695305027370666559574811753333020810063764953775318364016294535120022859314659882944775851138703754709261239778922524903786345507045065784733891393770817769564675018451309220656550369635648788057897351610460229319859508585193492501886777692306930436694906676828470217706035857102630372438888357553357871013448510493631978902133352561021598662741549958098906038299100888424263552183225462515065836489390519010698858981737308925357897629356790120782074099033725454226395322452274261509331867852633561612403563746558109619879472981037537659758220761501336789422977332585016132860679159086804353161792378358379373496756535231908334623840510943048817650808534390103436876235484841489843657313494274338789856690091946417625856534198507061309874614914414109566506535406747181330628736968550594328309958436130568928013135183876640269366932604108756722584321435525743931008722512205056638440059229002262961353222553884011361214279719809871984899005318298811183305520818722018782960284140483713419780191393382162774837399228353351772813481494681790610757113714721995373791648727306795711782796497099629867595625681842930426833028692668170615554745631432680065578128968002509706887201050645281044007296452597779414131932480898332845627072579692781276136970784756632767816358633864131661049963666773884446607126989191759625070924215037015688424343601806119093992768772784093448811476607975679215036199632585769401328429835897189242166420371181935463319250262772684927258548181246745806385637945589896456479966176064588757409607617691437789678757232310701825481963911544424817448213604368448031226725897527493735264311616574756390017544616479148908043288841543066299329772463866624174348712925538665954259636815367261663530069033284481749393048428644676903672391207672209820013862589610926537159099138214844020375169745828590236081226490708923946901107792927244289638638828011207541018990822469235379614874333759726249851572616703319660778936168259375446174919086113765994003497986841807228094024123896329422286604706498096991502106036780122340278099447044850107773496848531439462389425852049861490317890225302005622850324753058503095221885967139937537696175765057050042884075473597161114625304929199916362855954614334347382381503714822861478353830043745758911805619909171662032085451964787942375388506428075185854811718419684322734381031820832090226232178452408257635294152162393631565691096354526587365368571902249808595525018323231517525476120925602910586842776171211084059046219649200974043689288846598435509631760801758119541972903774917567423941072830034555285160642653455852200058870145089692060703171792592184190350943567038831826139422891186470810654855337413986308828796736319580073414661422908819476109637075738166063448684721081167631190125273090894636350625966282726734491121483762403284910749207101090341279035518235221022803571235854581345485594256099287725356336693437868781159459874269971745947005210068457443865033070673876347669386902611293844385320149840263976957489936208993542426802955096195813128405975801591697080400344229593424496816579753323459996376172982304636501350586613101652343787132369752663308075787029215944766912438460487683621021345433534430046329911630587150862202444246089293219238535536736646725369381977244096143285929212125797389377666339703569891274891099582654102302296252523484566431148775721436141329350196010267312540303828603717458148517221505209499902432788465319013405258463929092085610210198435678536352140565978235090246692064387724030480471999239210425520791685708663573101932545180719774046373359751119449909043400029343383134948381175388299200942716178806208030216539209807310053824581659956276930839284687901338679285941403006706143868021285890239843305827259838727148708160885342679039681970801430578215000774701668773510116023404397376831257653165236284646540096315535048458823005343301667419149332520759771066089931872791786983075528974303154511210848287935792862025329680763837973326681847795608633372588673471698911887863025117395563107642507787899430372427849434687465767944432957234003982205394146218239327462348628989897005241053457866124918322595085785464518724846535277857904857143270412031760621132087346409477583593690155431866172819228018216371930726234678395728954559372153981310254878508558247122635164389874899591243791134816180941802544422299008882219126634424432476236002597780614106179048108919195600278967158346342658416986492722240643380497609420038039053316690938324971454782854272196816691346923996353552306157866583529583842061111121537886406556697290419078901437826023212846317910611459380626474560322481149446298030369687228289975905444809894814940778760691380315195657922666755133197918877016885739494015394346345684005743676697421915819149312232465493244417620675640213933477943899808200539545043051870690804912878681062054034843495624673066847470206051948713360595564252568304893802813166660855699839685970304530749097139334794053073413330646869769165859723177444303979570183103969944395457426179763688891148785942712413050671242757759811098752807545186548674668983538525338034904119598335970867074091368958770890145765624164865234225735348308700362943280491869606957529540008700922505120837263388945901643058129811128375060321481190030470038896868830138703459830427619375284245635429731450134011180148042283006774508609903878198952080232741571200836565399801256790372789832736279002114477396163057921114326293402511232996394220159856555520149852276303254444508538435743785804997157505042169576935703538605917254250422019569860692069228252387616303470782295530443065985124390561336670705893737578431406289416698016860546149792565479662114706379362363305080075392995496431884902194446031572468547391283505534226911571806795567495286779179731100953790184738739812868230263420710084584879798574081767759521396858850750503063607956910673201648514233362741533718774888062197232950787704137850983343594945438281987785665300893612461849643578264181830765437724202601798060753337626133397886974380133253784313555173610326806166458266277627746334250163023122274332962065212526666580737352387108988075565869779110365425005741077963329879067970921422752083467603583329615107788576807851439476584403805767198053674947484893486715503796514430144228817431808885662245634008248692768296679727349108548870568609364127023127029497508093328281613734596140733144167651349862714674627317679277178765436347063380678948481906803882502278341761400060888601631820540483308256385935948967593590944760472955832203379535463742690435097657351343647973473862956742600106316700267815784937137105414425861585740698087341589007349601969041888543566498097444686440135746008261276446900660103321934360248552097025743467230537038432017909913491060666621042155561639392949728070149894257606084983147760518930835657451738209583258646263481051451911511878723336952353555441759187765259639920572190443589435959855429502766811866566385652578107083364302409413788954673275459746976765916409163145478811958922326213921771319279437553037585703739270739872924480785639152496635724015461393286983364471465943716905305802236011384608066649411832725312809265691632134200594373784854822768418559525641660003425066725446110080529577157723303076634636681814207150497897187733937517671999755812216178208445822924431233743868971289947682180678844028281569684466079023940296602234004953020696723397539060927023027857750092781067736940227936633418774955257211121801726427488954458683009906660506117032489892605310751173957011742429890190485938859680754568066928890397186543943608423104984795965486523040674958824973496034675012831887771018117561167229546350779220455840400132851737000763470575586493218550178210436401289138911762683650380235407887383651790578342002843513108714419438738631566622119791601998854643121694457941067203354466945552181459804741278430384617067248441051236213628602027293649057180414710387128942752126119995213276003190876870426839268664391797562351494494762072330713534946676403241359294322086350680634875466463913868276888399106818935623890575907135998674665715593359995424247694169865098958169364677847292590020139714067749908319479885138523829127768365039871158185200398307348870651363957389498816842032629858080352032605102423327909281662358893456248420844328634032736722148954606787784838369445097264408670159711953426851235971127841885079998645504353192725245874131090556668276386505032700473047972532952777306633806842559034158188091630617171363840337002392969709781509996557924975886000326883784953504751556076929642495700752625785545862432551638823062688598143474754421780885920354540979432188909308685038736230608292156867486673282442252782141478591981435485406745377910838855298302371395833139847254400490689358978801505744701405497688107572840003600080842110800880558780408793153276185199108755333876161169322652459427134230524147287793953908112234411235246054645100041312530388418439769782496229904789584451757205518946225723759603696772395071988280223622886559746063832027048051012728899726930879494920570358427712766834580517676168674749139575725250144889278545549218316714431519888510409086820954060529607109416712435349036875255860951981664433133062772196564006941921072603913573065586102913691576622250011063806973291184803225274941327268317909228954458780829562771100636660170887493049829052925413145526787709946262780624594028846093556591284792747930207291750781245485230154095385256671662033273000020320742154477539600330462794355160872042029097121640367997545603216391684403114410589581719661198900551869505204067304570854265202912387097401998833152310316358402396239425739338647588279559418054006647324743802765371314392101680547975808477483534770608983035138753008384048739279805727817797228810010431518472394565186033085520812405403774297857528887332466238340589465048064326687831956810397353157688942910111528566612583369695984036864178854041754858903252059587914742787516559981780495123147241007468738480035248581616663879892419436370827448137242068310608600459572843986375701368141498519592242120497459212784611679993924114088547772239677852405522760716700441068937805741395014118111558684001395797604610654357377349673407006019543707623731740645974849993946172643942256911993566264489970119886377479854521661745900988802369004096077119829098597105841359028899956107007866673585718241517330907195354282536607221859214833254670980391622185032790292667611829864904163186718866949059634183287738559296711883480445285018016452751209801168320246424871627270815219943077939050957869597812093591651868470474868265336578435898364982883524483520320706977664882417604119478743578972426052771805004997286736441827459514151920155926219070048124214855903225122582045703717056897958973214770329840838046214149941011988712405461934361980576666676146504716985543709387737804905054371291064943262372183182011730052950432336393564107368266895687943981488054753249449053980001790479594080158733116756042507377133070919245998540618827936928064562992001579391715027704987742367466861254715287005236311919688256244689467943514433988780165184452157856920999777980338601882725570637536843930659361670626975246569410281749082504822055539540859539970925642543464472081494233114801170389509925018015171536805333741518371924629941120587281410366999669356259646288848545829042743074461016194318999297540751620386957619527568610041289178927622793038740373106549859286894838705272404980919126557467890236244133531370922446762655287861093354361860990587535744238193970870011718266567283867496160114726920673713538209431484280986127405051754690259869303982209446303391949671939746129004534109845614411180747294358367971699788583884497140470848534405579265083233127666540089122103122133722536732722022560631214005569330176239017646876751249585077449723093969508280507278159164564390011866934956571110340995814580084541854867008465916247635736226132700463840166953086251480370040015104872372675291792853087315711175641040921348562512083107533184089778029313389265744780766520932597079801897235960966589734241969947116443047129553980007617363385503874855221498251938377778588519783192885536760458464445460044977194646926962368245446028713312301642861835073848102296888274052789555710897311967908271772433721396203484978262271489993477323749432294854770482480205885933535352465947785118486358957346544864310646491028364494472374986372858191243926905376148889805849295257375435033238739542684626044129692951461825856569289858586294136252513143646283637952337033230672901811791337967204818825167015535981602727458393442836086360782408178639735779796947094155528700342637487426531822194247743803066526140857405383331032783266963763916542537408680574441919416689403346384503229890739499810037404821210655783344541343481241646826158820714396174671871964560772971712928713939114530112570089048405696853878854453065458750294907330324924168669523539002784549693035801364563859700126895988135215650932167635265423034699283737602544706572343901327354338495311189049763358379292388565426078608342495606482256254245723501833106075826379215657995343448714579305611474467973353552105822136025104852395553909744242283294855433682685780000534403562595372260789417072237786747986568038346579365826129080947906053234655163109503676459508440587958454433967313569608334061230434741934791964966739076042422009695096767346886930208607367669424647652207268310479290282658466841223314497145964617582639878404133895527176196782759588597617898071494762156331932851054736503959092450108391534159804898530157430453333735383410694807117100828333174046502730109353012053237693009768812074961807698458106867030445809472457833200709299506069344902300127354927000949136657246511836684486546848793051652776585361413795588933043984322928916120561948396219887945403872733882867768817208094196351808637540690740949047542214288637731049996589446905475274405504243772091646635835520169273614803115170969587866524000614422087184115291853716331214455328276657276646985806566891993401219389218005172701686897818265851847654378592000646446638104568796632623717294661035591260547120656641205463764366424204961442647982865736638635755344532920206318516475483974837602860589129334121115025626972598250287231355194287581547298193094007482073207192462361947360556818095311911706959916185950429964288283344975725642096863023409719993685978640847650046933617765689946452769159523830792219732591524944468547891070477668055437908671520108242597557610330754855055346141013113644547701398929833827421336900088611600931828109534348342782303544307844134200631490105891824075389440454525861831556117125365845275949701981889526488542056059698524892783101711810024814531065298878945688581645832334380758419072955598979842754206737574883690707197759067777937984087215987095703253182823946710315792239669326443312207683349787330205710604486796039595076347652460872752146682805700260251348887573827056480036885664781715714891340799401896300824017889752488349148640937565266374383421086626979416133934443012213898260575666413434988325006555637327595701848334543833849162362607176023682271998809272572903007093576576143915521763713027525457188412365692794160326305617996295106776683915247033895749425053557669437951780417715947402760368572744209865036368071795068670358689029043024105747285294585410680858169958982320022972981950858535703052982555614776017056818823955469371459638402420329511014788101631681254108026167983049326954667588015990545828527660552676866437222023384595212609592478465036147494221620578830937332426687919217629121785155663453812216069294528247259117047663962349513857834647223944808879802414078865658804920225314971901750206729927384945120353649225148153762554583187211168180773303455526289243876823634393929849454240427981282178546400352755469816473560981392175849025253539650293997355434604684929162771371328698195179659040629853973514002001766074010592519223077653358142500508214386895682046971465263365173735781256499885212903856086030399081554216844346127544050408668246479413935288382937412687624049643275358470369405778676884691001322452266179238022007419617904946780418571867331330139412740942521598377195423116599907489486047256214323303715233552826930426918919487525874586090294055164790242352409811219613525130199985597697764048355251365713032646718554697729282728724432022236765055085397206529305831008740339256261671460404644688977409145288158561297629488574875184143228790386984285813198814100975261313382705722972733023440514132923493306336492403734647058165117856286019987804744396735912908452013507102464784880149364042560440235071782365112328035516706866803419785419177585977302000129172598351771406730605193238031065190285858229698319995092367163819453851233782445407484624796521807481228931356791840264683304274791056862850054465179574388953150562158366104429543480654026301504188265833782190179197601782825885160518209202102631955977496317257436355857312356454945049794627236833480291508629315881771441480325558074400212265641810270061801333117126395092739163349572355549112795921076462678662374901468774567987360004851786133600135878720291993395043187991497549662920489134910590919593675246626213767107528766448147344009376837883176029808810489337053669037572341461332109180740350150680191604034872109292346130793465105057332197033275007160600695277510470583539596079095200179228383088843737122546807051215688024269219519215064867258081935625733352251689007334039043284823065894789033542835611783824464929876698357311780841705998173529563750987153697353094959963251313609071684759267255847100100300319899795649688072046883152203939030283511518215945624052437313397034485732905061797544190325134826650514446440782988179173646005777165447801930679591623743808431735642170085987926913441233121788089728248679692511178069619748182106591746666417234689002381160211683573069664528804122775392097354558822387377912019385368788745283752825179562590414588407187770146854941530491574068776636558898475039048582022920474686174651735203770072474994606575432666034888346244763356308271723074287807059453267088721942610313903539969850570151965292061626024861420163514674185313918581276409369067478730540900113673401985702854719381462445676986323564207940194485277926011946400926312428303775412157050945709430201207459600393035165835262748966001767255872169097634517220702866505293931150298178908036941973031605229206032107393498358762986650425071585889821923981378769888108299539786167281368577631601021351775938468451421575012699321780303773212674751524069547297935611064251714048282983820223938762069404631378753350447701900507619610475131477858315171457966563648516077361138487243413142320534403818496175054131522963686420422338334670707608835861769116738178577486246668161639419493143423375739364541004913625940467828950367125705379885078258270143683086836654764315566051856984871204233128251630135520419732437300653166502170413179922232258875043867693516217926366812542357912409237919054705736542805394418571568249899963654696916200923906014294357282545399724677086337234491818535288428189821549636395566836179790693394863561082530496027877774292590959352303531991821890533204616332581724270083452918144040214437688535205188029967438849664948279575937191668212282240702570636150613437880991262875881534081240830846773137939235325879947616590662379632365261436129773125118970867305971863821247438817055560793872471138883240175592024309270843991285632674810674788435039319134920224241527501844364415993456249896412833132191652282985492316649706217449732043914378441750132228678743891366118139870507575978663878092824128332447242152586418970649452811581489691567478783605182243223495749508893901722737239381769294762060544097225217116622019592559207956943936570828155941399723392029317615129652049114666477389662766838034431620133931763540358990565487664191326811392674628841068865853228059844778887495399655422074440582324020584030425789088660834840642409664863631595181326957218331179967669478836669568536000430351121501779488359615660137459706615170985318019975364078420990918823850170503887098848005622931427398938353970737331837336975991607424323824144533269736974012943384611136310125031361667018542625707886898354383195184287227774421684954726914143533828623816543679833796483710961294515025299666846084485172894571266891471444232898169293777066114618751833933588292770065583635603030234494530850391409548684805546135185258296755022401106651961760045005900499915466640258188234631275333466337014081345205138881779245107447497606855048469357713423070840079771144749596851851698661113800697869143054255842995308535558315395739644325991744607049946563212864282770087104179713868026362910485040796438494474846454810016896653993099371011323398302370840648875553027354341751384642651574976719929804491751801295204359393380060057859577282370269868219312765794591942183002132632036024090844740383237160109639054814045556342042456853273639113025915430666535953086311222439323813072620694681089421496554679097824702946127992877424743646711220694470309170603617913188329800929617452779693709845851703444461796337894565107746750794595320305173985602358143901225317084817962560253666700823132804483354986066939880882901790352070788325651502339891284151531951030565778444397824497440996214855959836402014022915882334074289501269736113777072851982311015379016654976014603719634839613381053340745892338241900061023057678123976554694024168463156967386757604730527729492705036875750320995999126747218170125409732057853801779481342623989147459923877627335661757942504143905884159859543559993683740525111853610923997291206871633112019399732378411828045040185062038671078278291820902550521880951460594453782342309300087591347827795943025175739400723306851958342854818342976269797545798099087790709048888322877876501605955637166084691182083548072490646815011544930093776077239249075249050853496420630705073723901573395379545335595497624535628498761170996897559317903646646140077471805466091635848104728728298647418061984370052860433230972631095088595814374072889453825679802997077084444028557723727341895565563680924501715251828198470596368788197347413520986894962112379757166631298291991536889599769487700432536326960645311027409184566338384720742069358557240698327490173773337885034967891577628945907215316364643475351838436199287847904094836012039933759438013276907283364423651050777894051648736443805060864897466136180838985548301622016506531962355851129977927484088150514881626171679198333894510713372826964405112666728198372819791891315736411177122943705108933220544418399861649266704856190678884388049584254209994011269900402615516184346451606240259897964401518101574717114741350003245264393797477967215259714561991213588049233933281586892045860357202658785259754475163776289473410393483773825227969913719456167048609687884761850108512294492519151756725677055030396815141364596104373405228404904174299491524382686787968056095644490847261049954300379350441407197385010212811033929003932702113906152208795497746307774444224240374414215109206766157787461036009020304410302552051199757849182358749235909858319317074492993484105277120638549384053665577671916945439030931874402458223652913183408149733438426861959544224268894948916617840668937384404205838930565697446985089646257292246656830486354072359348944073010795150110138371530242061386587649790514657098890916824334778503175517482841446563690835308079666816158286719956522997307888691709995491503802178723529884057118637416139458476493614546328843396012234568283741998969189343194724413252959000733265492459069943856723391854062085763705078316325679924021481828906409743102274917890082901767814474984062680896467160152357012562126568991859515211837041377188736403395094834538811926451817853731825185923120117573340105600027739071976825946248956364228343935942920377288911977181982812690554775449467697444448585020895489419223077555566568842718258098951551383058519949344535397766876602264359673387933353107376029841024077694549559275921580087145939880391899362721868380281997520168363290567300530121445118174620247900201268612539307891396312448105521395686156703097496003800378326911487601803017236576317608882097671398366051445583463222648005427647949122311536093409393794518000821171422814080918057959964776503384428115158540642446246209371913572529075736174667325856230235500663856664502355729156123666624930823159449185810586935675953222946519798718832129911093730976990938902361786294173657811796013620857108031752807643150097677859816348158080429427502594665491877851943421885152330294109283308099245348058608201065792777412573187983596030896537310894422382718769209475588430648536234762780345077843671998562581568684675876791221921228580713093511664714570459534531069493658184511589822539433549898895180841075464844258530669391196659076491835835466806000864836931090771329961388667069491299404271285743654920165321027910698681390796995045965607987972719068386688852436695443853364999509845778515715533079046252335951610447409078448038692143587890832168692410294930423358957552544660569169698135351389272149208698881891314701919516304317593800621078060872692029593837362950245720660042758995455631837389557443753572685042144711990071228801166686981084578095836726282146216133095766445407370299833617047814663660769145085696767335620885839384391402913742708783249651070809237792658299842085834592557680692684250892282527366574398163714235818257032530164709057160073774331961098609566262967558007326433520203820454124922000696178789866257697772677431352049678381265932275180299165045136390943933134543567113896739319911533953802932183834632332661002252479307750566118316918556548064089455091902940164287954762163712268788046478682186738646428025631408565985465033486196113664354284040222935342609831991783684170469743350937015726095872961770459103987997376902699625427753948015195886592056556997474838632190011605475551779882096736318915804976587425259180750706023601215919503138250021561475853229411988953405960402070104896811150172456473830521733951394723645505844530412416791332106899844523942896757517938728147750515421378961238390822479676023348852650042224010036527778640649094877418339987759960521910625922241060460886237469042386252303170527041000454514545852234151807306024364082025854806027226144731984029464029413608183985438646725909970234443284094284169622667084651079273162124258309022975656110710942598675501147931751628544363934993167837586936682117358655301203372767895431200533594281608081545084927168326227898980912946436419520897395368465019093271467715652505552824297672054078058974762651377565797563965734733713673580042739942111022708350482709891705832107352357350052618646829932552425587332024112344189063107374111753382150972260677638606617403294607103010266540946899316475094428418985837367642094721146081717417315964129521565977056514130725410023907509387535091739860281174035430917582732137710426916068743282170946812598495599887607787606830093043611568710239375699532599674142808359394077795890655694500095072740001431287670262303790001035166014391692091685249672154613965971725681765386523924294541134434915137339072889898344378600420074306196461923372657138857669638375645891277349744873654684123519242937512636952203519780008514672083078350897334605279133145888944202987799958550977876097710793043479835551941428684942931997368110939500003442424384904622889767014906577496252079564356178146208519453494555820384417154668598292158178474453602769496044099269364560581350538025596437277248662498528638466445333851770939598912356492406843053171549089424904782670658315159432940453744731193304184260282952150713953118104703590931833505641670291160033455437772771925485615930176075407911659904152983738908962468573649918269830163118341259874005171014252566347005180589616353145978246992834843490974400406788818946585033847501056646439112996567364505606569278725218791252118016834371856569325377818407136566710091451890211841429218268573061313435422852831210633947756169918536454011494706009609197565441280110750834124528401487667053963718284061357896801104959041116261244407336126078805796139825318925317043973033847450913919289033773147629059123086534499605464765130036088206019016152066791017525709906315344703753172157480971363723672469353056515690058382787892615029349267535273271334957136972955597181641738311347990699754139412623403230858872613679490778237545510148413547779561999168992655391542936060868753170262372680692054164771183235618769500662555064722052949569324090444490668189713887675967747628139088628527693750589963859177070963241292725342135466844308233301685791492797291434096799427125882245721325749672203695891359043998614133390519046795073069284363839091932382421466749136575271145630599833054564583560808560754741239977138260047781861291851883194154268047879424413614832108036502605493936493311099976301026804102031512600473606927697325169583269922299286245353560597875616177963698476659599408867242501499680192531356090242045467252460322442230742600004066226983963882949919477006321006405196033516683809731530491127228521794807221584308260822175970302344514620023637498541648956461290427986119825618007362775649894952342506267774946837326301309744721320702348383664734788275392500921474542473874909578422794763525616678564583961396940607471732733176727581105934135188170601841345378153576638785413623167745493829342824266751336235962039399099976528563982583344163693534007863413350779949168644252882956738350082112083425595828704963054593899050634959786557005279827000517743820774553915986231132235561714706139934503432604089991490391043960694830959140362775475660363746971559829431449078058068468782476602733230530369537867803588131826309585061753882661016289585643092876666352201524557398006476949618156455131230932559496412816745745248601199079071950650579739506270066950416087142134364569426440706656950200439477740277575248923385855613265785905094615137923515672698590930417184784608695223564061587067056829897384483873349620662989670861981008007192542976864883228089983106333038030262470525441617316960214982808296904186756672471810048797631400111892513923234628658148598393138289814442802546151562659831019232576355814558063565628274078233148854498196863372551971918132947175449895591270519525430246864183392784812963301699859717129579859618925019349034268624718506680840372771546997233416547514411982441805987122045585772016719444118323616609880153669721639749014705406979276676011543986015607712884114409410112869167952789080735650492626125385573003568685287428568077312171013299988827475628419544044352643948813028614063309266259105219095788417562735669604784889642365807725208974034567385225439947023862507156003110850864433996705483682598224901538118380951637973501013665237735906774726990123635317850213245573555241462971108672530888006962866254022358985405211324242260971487103893321912479020117153774716791681824362379399095986661172284192411644563391237540109124485454263242540072639587964081597723133880387095257285386538110425381720164684401360067637988777820571129207525426242959320929912633120215443257393335747364703593994811599675937080057832699439091138414119586797532882277882378957384801473725226083427097614201595643846686588625069179322418576555614624902597811799555193542784204935917409612995707378046386813294131045667344225225824715225028681500076202318237959819699167720261538110337161793142752073458010076515398940837115319224065155393387561060688166645989021780733471250707048935344899463298697247116005027643484644793415528324009128825153166956349449822810453374472081885238109474726999966018463942487629200762674576375578199687873567922621656206198922594948765435952870068587711110385231896094215140546501460426947423255402546881744927042329423640340744032732539361236621716828649286146934561929130207511917109605449931152921195554154360335542120964609764328166260441588020159995002999996163252563285220524145310369787784253134628607952155953653134412968512500705136878966597880510911373263558517416736936161544232102859791856600657007846211668899152203923198021579698355011651257336155590703676545973454224333612213798252669077615148116974686250594152550027392044781180580911043314167061018032820070648676341014390793890023104757174727301530510605544190868457427523920563529917937807464774338624692680216851915833765872051045246308743987958035089101398098913958720846251664323107436136424901456743241713990249642911849489995917462384781824245808192809891934847619052404554539676323982580838355673479960441977612956765510459232692745983954667437995286591102105708567663200841830267340296683756850716869607212687433108293447343746138801123348370064071083320569096140186856679170534639271771592457209617189008623946277368689404802322268671890271740312699714069601401692706848107993931369255413274680209582575462175136301503293087848270023517221123391534978136413131959596348336234351464243947755435688765378625094631201370897047951203929822986629838844488639433696383296285712052108486344639700128273782175192908442269053746280994682194355377260271253481299028600442064309707428117762330107199656614909787713191172799651783940455242274301735905013328815642196845348115070318491363150605499599657284727852402343287661730514658639308556037886481654741122789121882443247191205100592607730219145788123389630211926270707457839657612333540634319682993788265836372539178561768923600511560301890245070874189035593704547847234937024793268423736555654680002947309135549235797933178997060230476102066742732349580049964502082360303346251972762991072082622589040688955526668287075688321074379933426147600903078645861585253274185440913506326045819588276970765786705157777106084726310101524605207077182883944957688957762717171532702010787616884829553767163417257679328992637652635533188428341467714181407414288892064328455801521930153794205107484921591958021731677981259045929600651708030353335988562353615245402554531476014873451746588938505792993879946003872425757221795823329737199903654480835436116831076685792435964678776642922377863958724695179023356969174851152597217337878983213093355522838545120680422866965652489223711951491580757730051166026943650464986443181236254021714688561170983184189985739863426979047737609497269811989694126257864587899988207659021094344495511384147191406285758116688313079871329665591525434192392970975734464129780384202647587606886776863600560364843018557098337459390731089376929327568379330821543081162028457016204079995980966824433701664489482950277774498101031583773708449275445814765625834132981667032386924988329814473238800412714124173085086100649920733422527024306888843279394062760056396578966158213491405073182843250085808338045590808777058066274642475235300974230262238983924480899582482095262704639990365042168843172590639480209373666875119948851717571255460868007503711390965436507295292209337697198060562687439934994136411088946673307961184165869695240776308720964264713276033873011165520993385941469822478319065889811199579500281974844322040363759545027626104930911858678341680903684433329261233448102837612614187452078152098387291088892178811820986442080229232164753726024869383115387689786939573771857408389853517781626839571875361865408877916658101800846207410329940978026328858107447416341650348920914003424788662881353809795301860036124524530516355269224321756641442968715622854687266326086663277279949400403237231362136239358461337804334872940807684634894466275330927655543087637188413025237674462842583759726493142430650259811702412792775820556400691491490310538598850574895710878320228765207051267160904366165328576944208207752863472155846549869836251792844246733497618759925143765275518335654546802575408182647791254454692523861920957580585463496547681235832726189985407744862790651402382124490673131562271278992461829087658319401838802757424716780419133129477507881163140262742877213250153512015005294585081141970319055860430405061527250951706395591324228838260962408063005429884708238364096863466553687401441129091011610990580520508242216793774256372266270260060257329804372418426853443027655900997931007240218784469823059939214503547911353657027963247539511646550151810281186036217023214218748281706024806482244031200516127404072101909438949276988978974168310606497679785445014014906474605543532338059878725887784014273717354554264067029012757959048401321150119887184372871266350789397378217659531171488633460183792773771783001411269343998519342831238108129346204697937536590559025439261244169934407446650302829478273582690697034352359448321269467977025220664502166181624087033706799992491697058469125828042154239405464787245334710543711427401598207709473312081742735398431425873820345080276538372386957204168667313244582981865396859939084105814023315135915034337233043962801586629602229127223623597481512658931331892084092720175287290262786412569714614251677515650033485650704648236425779099326988804725993211486461740268439905240080121662740979013549472976990483440286624071345459988663181317981536581041894143561722717274033491556851653903817250875217586548521690036819611083529810380943814015417503109395977510271192238168407069542355916539470655813441714721110125586296554829960321657081540867335875167421947374150824287344790048998493713743560436757143801623015579743986160804261542358122102567533911214217430573637377000206654370282277339703118907496999475430991795533881794536069947334359035697987106330915261515491354361054877895851972696765188577966888745421063681840316214220250638374372332949425402777147300726031982158934585127658128035710232751669666446990278469720061662698899625622783171527071327170644915387066063006261521363183438930406704611194787945166609670520926465629220494782167822762659581935894117310297604437745184241853403797279535401889700106072432719736358621283228232310618669915941086717436555012266344562686928859604776052438919516142490135564562583883985461704356380194641761944748879912807744849771433598353189175019059904323828924855778127429364213229990647860757598863129865058944830370537774626987203420901165860151585370838314584733076831563967670762664689976577546361028972322383288219278260599768807615327809640530736506030639725228194919241677817182130732313757572016191744475536619068014946167442269724782694140039872034453247171618881613194233487817763896365601474366016490476944476340621380742362976513054738495282585537039556143130717835081687050398221053517112452234930255076987443761899996357338078206624672123316603672914401273812730850293849586989413195654319287545893972023501506987681570198992463422469635317713685695035070602034625463515964908667538598517167542276566401215780732848029958546156299632789412723360254660615617106997524847409233027765653571928926343373155557364684359745662901686871082610978717424210028195114223473452834638971563130803628993606255622663466054317892417606861587439385912277324729198675828996026484669863410971753407710324138435282807771964224872808289137114116009335756338701306922077552212839728525170460881373538480781704968053532682476351806807335204636635576290369780663759195994104520758629270858517183899655795851942587942687757102339426606753141883941611382220808217121511877543617477062492519136948154931142385284990023898687733341683671176649638955774893627399616206945374351292106470281506898745622079756543259977566173407158308893863587989304147923254363746654056467972536963027954157179449654175874251755002480758959506409438158939856462860557534705505934344852454461059740198063947824629329083297834493516400720684152929533084530475861746148793503713719460134093320571023696664668103152198505366739008930870347582861846114437198429110101015054137737648560866691998102986928283960173014987401564811348208863486501339711901852930984051290956213134404135620226838042312403581490731561512736507832329218083296903362781795630146449500734221525612984054902331302323589853165930500328000394303548128991067441278213264920761913349306963716219827828965004471603400349292817094903994714074341590931645226262115883375784898353593598594568832392436131454932466952879461348326419790871200872615898714790645438394081321515456726481282745922281899815511714482389543550699135764199662309730425237210110827601885166874355663119960047607346365193985871378904512536973157360871239646227844610421156482414755348715834547642994479333585848013765582659094902984398544254861732653775567529023792113197795991799028723655939133360311477960990686416349672370363508811379201328038162587863722536008450369533835777819098246714547457083134583999908644151758156335787438745165016342425529564713932475091340587395148539904000297487732588009786222103542754261715207320005783429563304688307704407917850283448292192336163448272458702053316410735989471367462641884617467211199830702575031117201626484499577327036198283485788476688782576069124828194449052902365144804281781998645362930810282880398171748667626599187273340576028691410751351439273455695064095950501078317618608739051184851189127043387384663466640308736783041451772326212090702745530067197917055018086606949841216113590678338976548004555017122893264570294788877998309718621658194573064209602663589119527571596585386554138029323810326812084297358248671508367741865997694375575431988931028548845704991203690301888988626486698495579431627409995041276358511150019414176906755908743714716579573085036454862650522430882583319435561660968870163700253924735325599385632778987733772156936419498995899159076458792539391518716198736539646409634230626639201042850299191831804662984160202522944259631195159283182502725969340966944384922775447218512311702421038909812059409920815539435319855075530816561720228605552237674202529496096382650480686023837182669276577244378932096848176126710656675410635699425335615696584055869544179195281348785374453912296189445620390572846772969480970299946488643025347487475849325846623088505226524461964439201171609573453339121926507806838184074098244865171026387733977235905798393083540079307322343475851878884750915550464270001357239178870986475426885294749674157338174191883507879322999613239220619984647319021087812711979711296389075556044915169341158655217459240791684557928493272794389946175888900676413425019036950491055446046181026833791248622934176237135277259730569663049880689578451064683268654848179705442313285148905024451875795131303363212334189175495506229269518895077565266612361327947208511179427005959784302536280813973626598528897761223039012675171424306360991995663530124454643280936029974527876786099566469291196154759155619252508251065831788086718286480267518431093718069433231808884654424341414712582153119306238398675024082857617855879448311545536656367096884026617814762705737097040247039457865798758098591539981020251680081481826253678860982040320228514465784600298374905218309063528587991595699532625391610964569452001840776896573878470358924638858746352654335037741160803988436082447208345598378355468588464658522844927042461183384214392898942759433295447237838135002071255387033990102124365877086001734306942293267156026275236751997099287364525095120180682293245278641342560496947869602176081627208805111225530848284469892302987369730258758327876958948889030038646836730549643407172237105057656967872215046864553780511080918159429347797796159514656586611798724004786158165941238314544830029863807299568996063223862178421055061870780838430416266094302704329578155043602068424402608284103959244369364767232372177621000866629587801608659227358586368778687769652835818772560613468061696596182344729904997583334944522861008850455418610184328072807895840414213415935912389594904076569060596510666778332832080725742932598017601286285643638874842144253821087440544795580463253325055969702546787045822412179617898233602624649870984360039414459102786866393668259877106370477387761405036532991885985841195647165064021640785610902026878032430861328449534111036747171184845030925501325557342892691771565259848826046806747823517607486519372322945862924456417730452603937010630908766677979092482663367696188713428220992929634374866151757218581673101758894560253262901867528478339702128605006413496886657281435316124701465365634593265454376856764091728726173112256629202649037089716098372404639800028003177552018121642394468878187986758044329970814630446274405950932244351916208700479654324963248678342531860568249331615189675093866462192834891882957626287770016322620626658749489655807669446296280918030151898453039255666464305064342255380422291542358800073840858733950611176833318589005320677919756351033040006928218236597946645917974937685908175750360808649418432847176016860245402467176848726334806903595070090177744664152758622056247631176160441504499016228938813153824867273739620441483830161955491495862771956628892612866191533721274982577703120648034810894857752367545905088128420143312149098683923736860329191640465353846805609078318663817479454202971998646192472667147149897994697210719307318832509622331355772536499391273239573912069170007352600744066074602286680091158076436892455657353636876899634254025769107525112201957711763410773009289094623295125604228285804959809164917567228222804565955481512558067710232878735625689181134898666891117907280212849721881717661167381420833523234831803719277059759025212670362863940521090597684271909946703952190229547244272918562357869157209613017285764512590718057979533660705467010362800452578450923490480393823553357086242057933572641227759480209460092841935204579457957292487033314715366330228077519945140937064881732406716437938284129552963017471989964093436903698749775632761398511450925645348058999307460427619540113722011789367317807920051219510866624722287105112493267621168323619152393226022659650883348232581508729241953072828981225097879632995034819723680540889007071750416745120381998480116524091503060548353279391088392465006783525015715429578075189430909686185420988173332062271148845562452617886391103452866918246612375838588735014534602497392676241975416158488891999300578810682856402580037510096446725499507733182155087005552998899804260989439512105568693387542177161263254687502300152464317015761280223818399904400665197118490471562314273147649497753544279586846251045763333969472306946711060629633426453859502582099876981013227768776035650824426528842806425333287603992869691097038863244580400224948447166195550193677824221249286596859638321183984515036447398912225372909906068855238803177427472560142912108304666212025799560363158778960906268365585225567346287071240155431168994694512244064834534083070958989304812468145713020501213426623353201204134208941552109125528257570164277324010887904657621947740882411880646712675369173610889545984730164352141013546705709636893395028973390859234012482924923855463025005939266504596013811681774422507147563979169460419340595969521126404133089344091108640914389779137147779690266395018290332039420083596626219044943673808477217500442846885893736435679232497913419785251902102817076077843056429359920498404269335132919729174851535827993882478979068775053382834254245441284564201666231476502130321108437271600260725941615308621216629036055651374919226254694846337344170710225169684666195418426948410394953238185837718399845687725870850555519662087836796235365105228286250468470105665326113711513739601115426827228883084850869343632375330009850270023285012946316223397221244627024388658063747191384796674537869376791342040257106552825308827194465752313766131293432572376714936765194024108591828850005444639595964309901755791443673813092484235711599445395621664900417573550848028293796285612802727483000236422696446041987464827110377799364417415390176459773692697693293064596803512729307702433518586579608216959564808849162447022302219362927215560013588120457370880045782452188648649805303532266423610588748770220476693387517818986522674075254330468010164803702916375096641630190387045993739926117882202874267035183912010080809613756796153008125915520869491244031980965851641712418802844076732094062327227753578930474409315328618814918794488730143293534077909620216243522783865939965323699662308342766587779021998124959793113900132049180757976720413530474106273855672284817221251613911641556098605368584598067451231735605109714483255028182499008799675695674611216606272969957184358747401294184271169216971295982426597328434445702048907527228696560317239962706188343412961539108648471165562565909055529905991071697736560311110310762752537991472586191410461980524997883967798343607607035766561826352049146024300330566622635443903081899788817972390697955603007824634386764141151554112647849370937717344493982962668652074899673618902955566262671684788075233039742741623881324117343281305939093457557551043135710190569782362247719449472534093446863373840661189511947903898937947726821661058087427814676344571855451797783597632351623426132254217595769049020409890924841844206440112419318381945445541130536574468302668362762448491978978203213717557442789760056075929940452045162149288506301230058425913543222604703483189971107872395722915402660933792312507537652066645565673255099870470172244562175378937965913618358392118050075770361945162153610766587869021011326380347407485804889004523170849896562639965437965348418629252639326319313284743375986803872022732284649831370349581731654499135894160918697882081583988339657648484808393766706749378941940250367102910006301780216737442491138646707986401708800057091186518394142557851942839634460354594183471407827644748318284223876514051966420470744776663196085402322963642819240647357089375734649433374631801877420843433859208889061991919742256188088993944842303973743772648316667431803446214417841719116504280102593508081089280989430232170729227088304046465522500850612421561277761498579985227371552256253655806355948116946128894892865384165021536759950182437899574189124486048980165026151240152056741970914492122752898869602437730080250400866022538403642693274210061421554276874952216384410099977610073589047769248988562509898145390584682435314410135410548495783390396001912036188776437328731221596410332220284874896905179685648852093459615035410396144588463142816541766205897200041320608807223433087147454566516337072455898303523122824872966007634608231997261017469355700661771128745500908986591387593397215434159459271913870873131983332967549254954892458850146979975427884102883075255068650606769467087537670834672645659306044683728470372573960928019588306868771557707502284577574611776656769686097555750840643252273257799641046191968015112636709553002592176487559476790912449039498414774328272036396641857741038352045823984240073113706299441698447564932969730798115862984893560068867957260959243464687538580948962650820413916779853870801601690091440977584355113853957723027633150891167575939741800594549630362378622311456190391134454360015094131395518276947468283758854833564342978431285216581971826753649525322948642037128194327120841884977718006951200843758414065928979624676814083827144485321786683042901964534818462294945584596306926852956499411424883683624738321315814104625602781321424394922536255048789487396072805805498056205802932206999285700383126540287810573240628007718921130691399620593478359102792622475823971260897683500769348924696286345376732176746492929960721019327445570650634868093700537763232337180236647900074846646676562614189726566712580281635466499644882156085508122415878937135719468355740949088532954563384867471616977016348548872601337345610723492415965520101409931158302810670125444081989854098431769031114701544107162430013330381609151752133688675828766087231410835388970174439242356046454703784842377179813255399112460377907958484118045210842522467101818603315449792603094528111630807744663954701235737951058474071135910835124270941762713347541403548816600387077155348270470217947171622461690383905449565457242893929975224358791690669674233681673592625719120894806735816130687118506583309623400423688229323540603108581626310525123155882307483337334169500813397273585039804091728587773102972825248360089342606833666907064307262491555489395836280890621238459072473138254166073749885873789445175590638375776469698054834638158135105638893652289793574799374677333541556098300066922997926352479970338988862384024693285450728194223732595206857101251762233433658051445734245078458645389073887182018552835858647092972511089239225439413673123416628738513942567691451738161854183234696825508575405009335923835956423901498611475412866407729403059082801965146862745544169321545578124440514095618977900957629064758527159576390213830518767493067281210650114949985327827018034984602707535866212821235254916873705235809463593925147994719721089046283911150714920277742925314623424540948374416485338511018400758224211899857629632010555334960375483733590866369042182401539446272040682438480866374327008792361443304272791639424789239496058503327297262914652386028876992293128083805644501960029410091958590790062845840608602183446321966365062507933805003105879287583275951781051020431852646769452979376045822158224805181250778101571411897362331947136030245628215272983667424699558791853060689499558002680677950962279549827627112676979161467268301018791372024481657618543357264593924329629688990769858026785930626069619600900711900017120807104973473472810436395735840017402189129026555730787876310103772973096526287187964209593129297815252244628892395151979109046538889698915811257047613806761269572347609097883160322005622741539832608069014706166450735026107907986452073688043678272041318273799945580693066297677372474164333300516743764134287777623190825782881122968835708546359075461592496281409375946656355575334756291130340376173431532853398551953036672223213848210028780557683072265153626453916057923916224753398017336036241405830205994752433113110253245372179150396281211964702397582736999426513806980670235399330670858246987376580552747076395719120629597807300129786672189984835789138856360173746617860274176408892252456965047982680458852684643799625321530707562943101557687180138566571321644850933478735347986154769289144505273100323538035729553078123757925494244745451244039678237018707912402339666823396174760322278392594977270648162010391944584294660175143805184365145199180870979978140244469662203506466818743050280908206224319413390816503824943500760181497418566044370700066989267022751972271777408121905866286938714612395623657907092686239256754307670662649621659760265315353664912773786097118746800085538908116142728134623356538220482465849541122232116145997716151221080231746026067513242059714715973581106834472904991614711831015721754035150179264699491754526314481328525949741047448020354879535398758358448291365914919430350898802859065192142728324139254917677603230811231967673278525362923449330032781478845506049631343694090524393397552825439353813995435111595991887219856744048135414461804572293807271967164891112295760649164042726521837872338245423569532108213578175355856742265532631489427201265043852660010279586962101160658889516839170355507969579334806712086648311357324462434782173590266500013527316567304808727492664882314405626690118233195538841151308412157640459665405458860074257470003569224152642319353056868733278028640589818655370604205112735551264695618505441580930549918159418199292825662333592495078342083115530382858215239587864389619875355757124358433939775707084650758128477429766250960814799250300035445917441786679540212997531160741723687283821927262823418937297618321739954679192730257323724651620556991642040909338693351542564919142102797322400912930228636171023350167474584480107108589078335846223217173982620578438538709686236954512070703055075195831644029712819660482713868576914606815568407235860241789063999270176852008365914130566993148309933926355649646263767582087185329968675028166102237335645472913364345079986292787143824174988093085751614249975707793741536295792115021478143205390764572137825104512836528504491818191467238428291371560153220619810612911404082536233741110638901615527535085230748856478851833631923716271606680806496372928214360027732375904497908615377249733382838094438564998615046873541026334268415706465857425110749501063238717942075453754878855344674591593784141198296153656174376467455013605969532092279079445386089587668656695453482991151506340578793491758407797419413060791028808486200522533847750933882165012059326900121071337805974721342843600797193977612978237036775619356346123175180604259892550314573200574779672308821743426099590208607818260706071332828245629310110234185343141191369210304776848331773714615232011683296520836208730217530285822753939720760606222964286675380167142263661749231070616172235901273161021278915015756264176926353364577494826268059399767944766970460508303266789161630302446375651872555001011601886530409356003780110110877507035228342269600987313850036507247994375883673453212384728909728294039039511684360602902534579122757144015494133532474607707091708463222869131501263934667907689283176645994017239630785150280174510366179990734463323008900738012657549709072966373437794195939784929660746031050478379904650890965913069180947380082929584478919183649679309181567539146606807654125262112326808842508495711379612306337300680419649598654597829976380700850506785204200777581648591361746707967291944693397096996736628488363125620180652713963252783303037832778785540896703099920539009197962990882511391880697498984130602176958414539186170573327844057734083204713720179814646462423140723744074086385078408437069813318986310899141774436225670986195763617285272688334506501554483366687575743598967001088634103150447608557205319362321789814176704227130610976622201458891876537832316760706430659980321253693386821659482261772359904783690375131307821461364443981238865967777561951971910918620235641894148493609123608821359202773991737336662561322540858406972601599744492545074997317564015035955845808049047769360053915986860061927418856513459455743112105837479724716246102080587954971965806776574761108989627167491169362361588906286359965243984704712488921034575745039102170564722710699914228090698561888803073954792771252583467961419678069354488463534969170035962429697750273748236447509667809363837794084147018274765019344599204852952720101006978270314924551381872742390014042865275576818542960522728877547580855151728565919032847075060066728935398327592905839675266616696166630067801451938097170051325675584205702873038091797506031196888541145926698064375950972683261894501113451209325920186134863494393717017803495993022995536549530525750068336373139359700127199179852344707633887327196496275965346846107241503594488637520587253066645465264058776053282080388312477107943194609423629078775895699087714671198879594021900539210870068661149182868789247938071592600261664467951660989358662526634102038643123308504244331044059173111196087082964590277969131597269527275527118743265715328362454291449898026744206997665568790487386409463889278548690154284739599529116290569664824636611798028337176068730601260867828637845851614859697416259942518541212283484189033171610692205522130487753417773382071055248231925662548429714402987740593134825284908063334903197627336862202655154062051772737498788410991584401216435014066404360059194150662347781039507776099028347565115054074351566744777875783755793157680147218436305674922810027787223828393586358969049994307627058603635390059142761440834847815247979223167218379645267493995599999389103081324105815751087309842585773011985780000044627453766125160088364635144492259862253340732510015660908436640683266088886015411589590602080929707272591011611895991096225071898009990596830819936506340103401491457795358730878802845511267894184504988097100783900548244979977267384733270266984697926272199273692033979462809866941533110987849902162030329332458514781729040762283563078539317046643686707641571325485037893442078822264893828704841459660889357253859442630350123232622530906527937838749207166674512388407995436489946380731325689152269989267403209686475815573512543324218725166700610255086377236319080867581864007374946262881074652204666828257036081677635059552368449146984047067966410618633941924197046846180841710955145395398737667796842480601355593004960763912747612253184099180126758658925526901033895913988419682517773821948261997674018699954196638481607368108034004552678745919843163416067298269569301848970621289687531600766733482092682824600853093772655468897503179709058036134118716090895635954751664842698029914143381553856289102080832898862756495676035995246882637514863924989540568383291375955847150081645286909662231913003712167561307414870277336563177300750839119983415056573004151713793372884851526846745968049468872786160869827239763679552625049479169575869026816125135623331208210277988061753375804662664771291387289623531127541754425963050848197214236197693499084229876721161734441114253306853600106620983154121830752169301865253720181604478836733787556456315552100711226972243816693380455407069584347653362633163053873443386224806144121291692042679325703107259545243758687915970340470479228554329571983849975728798695574347088673333429290049350219885309802893251472241397972044784678501090872603835643514188171682379581751458498809734750192622204574231913224800773541113516558380284563405206871624895390233251752420048448415911170741897820490290609157147309918597775828727228785302989674013276938936317749354326075416319188796382413982599549540349242608953657582948491809693955281534159049879750179246316944217206731842878500870398267561296202642592119957713446485788280083411507862631540485275266530538514782285814274444349128502866792186892604563200814532016513756678550877380692529112270349686092839158386328054245988875256547159488876321770255001835897237254785475231911727634690056095298859803128039038296531091900877791442420324519255902134723574865678201331471766475096893669362494254870283823662216726634678999453860409979297618251662446297382422893547373814935255790462946299950791886038007984372388077241417668699067533217016115904968035591537666447647486618757940436348390359605416856078050125736693945733240870960953851288412190487569452927985495466782864495246523496304737217798778058766115844977443268257174508374624323990598633787506298878572910004444040675595925100767547669196291183616496456230244260066725609994919064685888743250001810562114801333530294422956357324156082282833250321673358873180401163165236196595740789869783644655018574234734632612859677409198093919784470871646756283279173755801796519070706255366155003655663012960510052081813800012148132099326550063605728538670458976879670235994847440896047393979715772638974584463440139636885539832139191490273355277277119148234535124379339317810667109230648965792817551741097557765339582976825979109712855148837137760103928328676331510174643103839784795520240462131606132823501598335107762104655844687248844370689991405169397802735802978741169649663956753727586357511339148415582102875198331106573654793872615542421196337691436226741098745672590359733354155110302536994080937550420388840313980143326175545276651954910332676254443560634252145101536063140567090545730047116954713968232261426773341526941112537789179417788255807001133004611355371518618495790390138645821038745479605292080276497261577297885595449246697511405972661763669947325947251972505149217631309223663841719035583685010689272561757313420481035488044050898189680274221639933695853708849330216426984772020865459180749154537047372884178609178376068413189907242713014106644723945534563274765447775402796713922581342979969479520189882497172595823488262696221106875481453988204462922779608989142109207601629620398101295178817376883539934734572836623190869879309251196164791354400183795234886954011218218599332571696887369870819750467031185457322323542236346698761657623573650884439128571745087507085488081717986581628476675674201078546753859395432606097591736236367368451219168713561893035983580572355339033692248750809326020179294677407791207850596178240370911877486408734280759743486049488748460148463108872799742851183727014678702561012507861466490526827377115844167318751022496553445902022964102095480072386613685681805655257203306841670670851276754478772691923231696769960280522758561775102994145476021765310194755111871032696380247098794057794625497773267398743764032297451008901671162367197219674578946224456735047499156381049989782969064722013056033850754099200056239490890987055023310503250399409389079093253588039331691399369830689947549680135842943010553200977128948739382092663537226002266703684645787240628816171018736097820855601437674707244740355227258048979993479039146263839283085836214892097119901648014077412630586208016394419358279198148874613486486267202444918564873442512031490342423390991967215889364874278770815225402369039028762852942795070910898667312145616306560188852012832415471557275356503399562263518970578072656394027295609569574195202069986854401388828463414343753251752551233324480362646092223720887465753488313038305420974317812723630128039074015839198504344736840295704378966009887592733693610601772377205439771944274409160340699202173512447938755477303816956222570344725110749623262582844899397986413348130613154636028240808869607899131840949646438441020162573692649483683644185645665281901402421364554069179683128167907866085604478243318407789413185213287068546997049316334132948631183339435051272396039657834095191783201083815469657831797223662419157334794884795266304341632383674686133035818467214302684688075679777361126448633312438244037326930129408823714001546633297917249420194963441646583264732634891109962370627183504850857453668239763799366123645703382115925793668265830410310785984324748138012297192583015528602385435596930117395442011184162052121641790463830544595930836793407370270026207550652940509356051072151681018440560799017624029054772323525666739164318716376445338573630568080461195111018337232115590581354994180664863459443927542718760728298483350264801918335612969197152266255464067008020293332455065432182988736486104059237869597722809191884138760866278466724961196249315694558444384709696419659026326716410204873221876910908753159231155712412241199963149170550298156484550858493291201673364794834331943238794103781779058248903408760656944359394040544212865213275287854161467194983298092245691080024056533127387912056178443583790665864997108976379212551766656519101477224401585035558441726923102688059861216721100692052374624570226025887351293746052989133150777494881799368395553285008254794641361716641317206259970724234670555914697248151975316066070295889054694772433060227539744349391579839922644565402323873317782427177188948246090670206973242035031327898323584306955412007520179700809908962215714700972892465788801764380026017287670272340054499709472257777548066878302932172671507307632062614122275648785155089217849276090287080604337076744863886981079669066970164235513436287707422474533868616134222363296848372030151375587176342928130999199899098720320033441896786354605479284392134433667112887736588011791096848611273571516382213355721022779322681743229300831322265575311749769198928583650107595718374514137227150941858556457134738134532982148142637667451663116310081750333507794144448319173516014699929498457425403614432574554608507891330837293941154749890483847665849957459943581412497467292382866416138403679772318687507575966748234872047799700161373252728819746577285644906437584816318360716057131185392607479284532650647129265877257729836581727059900469746782126262695458043789188761762515915169414122895074196756701129707791874148768512136280390788810493283061151111067904709318377959092693026633204792416471986333578957063050880425332217788164498813482748171665516848814400491402039991402049863050255243898432239664135179198457749416411917405099225225777507159394608204736701224150860489455325153630188814095878955102015216955902847162267872334427731224128111429673088690799784378628696201261839045915631398583456126513169411278204912427586777609753075189451438669942194136700551447609988159983402728789086758356839698395890353087138054333743508838209482953478600820768365166103431614141707521894296370689823671835672015415901945798071627621563385257281817908461932141003327118420967598077728352059581221513973298723588597627146013455238528769759805711341747071013358854104466043636200473445293596389621576951766975751364360014447956371939647114452420526542380865418275235066832701358939639051654631490816089820569154961910128458312442486719341177892326260896815000115993316567359465367646436336049873793385337843497851651020566209502891735060220086440908130683184656790955345548725834186813803586333831218917315004843557779142211303476982828978605643714345032772428061122318545686315616254168020003363251268803365382278520587360837230830565450656305228301810419386496456973266421082435676698195519604323010750717720953676375452676630417726782049279911276012057944465607169059409300274886137185122832214873695727381111038871549440452302835247158117640221463681942286226636520279790130149240907629171717536309028718072839048480721363518290787931817009093818088478077300641286824245048277793890132771709460231152174986636241783406596595259280075013231943120746376196203585460284494717659439021997392658560282580750617539516590618471448719316055068357947899028599897842345386418441650405340665036593585347431467077695575237740794049195647098892109258127293420750635680485791842245904052576483045716750363418471111760084370428545672794360104060953391456731520985226052453757519410100657595721400661624144879484170275890917379463629677925683663922244831303176468745039549728845516771937461183487602345130135181647097165308372506294102951005174833492507135069499986861800641823620386763966552492466978525934354937134487608240435156416097563365131713924687626570553649114689998509795317323354174619400316267047105307870436002383498348211760429518770835344097616570426209613719229110242627035696709940847580332379384811567785261736359374632615106329598159068418686577757209875484131500151924696569414973930559938663451167374993512227477291059653185276503457685671074211116532277960216859322115918650706596847717635130330299961511409704349535174007451167439499506490714956577051206868928936384531066153737470922940836127463460244254432625382862703012822317093331898592182498058535559021284386401417466891775137798748176700006659769012369844450175014301405631841166431160968987939474326559721389399146059627692605394708452194796648349877077388459839948813503104164796622721358947137327016449181380611006336298553197357753448770832670186878412518157752924624729765169370113951633300486970637824912552969526953042752901316151418616907485223887833439978588791557002800579559706055441019064154960446347623402559639410283566183160473680168608271945201430883535026347126557525904351825015074347739564073363267317665093935931107596347597774244818834514370251103198892007346475186096626947377576755559181630673913719428491381057223503950396177777414138572352634820164596712417717305384304967061902497156863813481939228911396859982933422051829555189794780257289197367610462020796807070863514643707035569939436386713445381962019483901081357746820301270083792422176310745778483006216697501785856788598745698902256311232555760024696342043758154344751253544142848495290085719169783992707649114390816517412987433058859380105229791681145399961417874106044966234558399701521083694752629379041451269624840731694507474862326095513088428246780053730904157344116647861979650638229186013231393704018635584770173783648881887689245337282234855888018192484362017976278586213466064245321748760113646575855201130762911917626356189213575991773488011606392087572660567114885321568268848628560845857381120826693272070621280762624787488063879620930934270274879321680604257798349502365246249348067982451408036893688833178998084776188542051449374335274086643189963706697449660538954138658961614817757559109342901490319533450118402160545247305792833826764568890635929943334166348047208348943328731188796797961487257827370523825093199811056643980869104411328447169172898922356705721763407094716543677183629403294920385951681962717488843250952023512318198401510445852863808362135117606883551163603342239500600695344077441387538235886773101783732923585305402777589876391522960879278987037943508191130058128355574632600122039323898811501587691776903225449483624183712535354664153122589433857726538688598358576593664854266812115477310564817959778845993728150209814608720264228553135852580358341970030245044151168255146925320407595554290395323850591967279815693606450547712900443502035537442077676837498916759281715479591848203291234018357966936501008484502498553823842444012124198198183082011054041262599404086734136658179090569915081644700486257329163663384603994227290660567308240096806900005584740289932525946021413122927432437392570532073577739098627193301608575373977824492706422388009557730990256640771939737059507283359346480787973609864115766951023029519966358771864878385746667485427763462266034717198514778664421207578576352507257218592454339380972713994573756522798380934308058178622627271507489539424185146965250022699861444874334205413819843380546478057592633471002092498400722815707769626512303548349040638748998446088112509783782482252731573809108751825991746159584175463124119890730958850664456739200382968948375153386864659634340268904765293293325391207145150888829140954035584224455959417543305986376418743105865896167840699579686787278957692694024527853070920002726184966101004629666283822087435216491016012237389315778382175382680616529625422219744636143297840890308610390261059968481540752523994487800802407227259570265562348278723433426291004465678659912812696792021695903981593447494059849098382353183617752868332451784311258525918815224323023419773043842677361127716100511241454118908064470919546072942941218701361892410959023443772209298050867758764331147020805508801840921949982825876468308278471285463847733556944920924057189434243815540484196272399105801117458872426182682909048502909778545828516277805907893876520621628587849339133986964784460436412050879926922281730068855401716137670566458323054673712033867774908033862078234442186964015318356773226472996980029985091990406853040841626088453491912787076049468399560501576379163132392417603329523945622722723682323929535939613546702825752964717612538552643032306701575660426882823660231071327218340459396283344244578330870810044192530795028407532838989966591626461535969728146840930232374011301590494231951185306934029002585141705798501181613045161751878575406475765660113649162675235843011330239158471428906535546807372125492202582486416936648100000335504646454107885127536069514690520804385408335985574015213462426147259276717634270905201133711423977250225240037553854682801191047892044627253656516056884517451467880517287182377169342384223132451886264216473577816881600436785181436844305932720214349574713366182453407435186816727440946302553978807926890959585919194013995053526503292821432442457864461292747822316164278758133773054167704259191692372923798371641079680295561914502705944075841701480914323350233127415386743820903450279623916591619799752473816633651221920544036311610442218838739856968393471700660544604416282232714043123444615127296937348824220654643329962427539653593825760709118643039799378135669506414327158473835273603779931706314736353535147379269706684642217199668088793727877323414846632436482037683660522285275511956733112092000200681394263044371644362192826402823379421783436548233848741240253698318982682045673469324701152885225924035125925513232439134228411718982371397415704775679055975465971040518321786743110755626522489236962221837620271574289248220645908512343985030538219365184458077018421715294937764599023202254345654960597305051497036069082512238111873807439724582160841328225203438942466844679937177110059991282198206189074344599192804931227906861819594576681992592109216568531443518385300099542116926322633609904166121471696862016664798231474411560436549434814176864985257410073400370892477193919421541868519122299601993197924245435522432861862862750227457292187292232250681699271733132231208438292833736054982221448735234976747771262625825662378012325832013017927990264319379843368572000350645623899698753913646435854409546878852598376427702910130514473395533130220488462628364144964717331033780391096326877214909040550315291748089540994194478140754554037625461598467040030235753154158029514357730269545629187742448620362188439612163995260608947686238242454529348401467620958000569914586441644381868145389043187727251291265539089120297730134923908705167757002980328249636086492346634072380193047449899557291861511808925238051053322474279116210077291348872339247295683632508083784014202546120316994847522405339572640335073570552204544680352479171106107558539951832512932524702079111464356629523198808345073925383146648719666592303802535428631645100702327241571517563158949947642552800440774814112915755411071265357199802305249475482817820704913760884528509610795312256277499472451711713718360506180812170503191738024157413355557957140466935857296172021085443729393986154997032898122122214702051688665758519410782631920620671495559855553786080932445429079904845037896317786377735894487437267245858577038217169465448756190679850109907263762669464266056972265337886969029542651050167739793352673998518377298166529991679791953224888388657818055629704330896399209209958258353277547419579016474293666258018785779531996798807659149063175639190050712970513601541633049269239296187782254252568621150829777720492485214982806098975764233774784471332160338102937484144275108296225449622206368159016169660130127773691005588146752381178403337096307748365393984149694014922021514417536594486726975199634850307666103136329013202720862322481915817727674604716859918547217608759244266289599985431678940137819417908490792352253061671776000459850424657121599411513516781193250806083538822369708572837822696312107039057848088579914738888259525739503541788971162274396538696618984289258954593588285098649831895489746027400235777291956296872301472316425647433112222141239035583024927997745269017645705689499498050808549634517142202201309110743867929035433558599867554258901264282122944028931382182763125346303622737223876842794592310322368902045727612802495036336949525053398356093492252719429287461065496178260350194117256409601210756983699031287292717489115740722549267854972385730185689340070266993135133001109728060980875737775731483098220814206134230200181495627829914012798280146414110265647766999017284954538655168070205746793097337872650537311659840063678299115882105874383141278946386146997031634893436904381804446290260911774163399984483229469848244410552661355923892030661302115333315270446042672198963189557027333754598493497933567148143295847559005247509277070009036940834463823981676409009053530046896814094386400291895655651528706057743641754616385571674166457959393346653562880708349242547028884142492454494397315668946997387071030224226889409279922516396991640459240603428431101634178774291133078334218771763345822054795934569111266711534072631326288080558607013198727310644756175673070227441631500704502082470998774572936948515606296063682404120458041225476281607342878558578982915465739707108787678009424695002151343273323648412922932439826886901816251855143121073373130607747530959205059135324124599691312067817653620244992358305144058302082032851095035173227373998069745923883598925425513590369386325381476669597520800382947102041171754901812586795923030226058322307593244854657278478704185694407283758567018586803068563511158519892783245306056051355823262502776063450586431811467766468359336243876269430129307916363737333170596472474108712252484648679972026750006737910234185704992117127858855107079812603617648549772232114022187465271629673126742355239303041018550850078400918492143768822078422181375032289405668911143520320566595985147757164110116932642971116191112693603983646534680095107350582044409429276220583205742483185441534304315149578548329122496806496747267238107890132036825274698762241693972259171556305190432801076538681632731549066787796366458555244721737864607246694648517439047992265072425859994194227570234757348089022563435655050023019486867300345080128693576004096859729112795672608004164557673587363731394081199778483868612792307492570698960381649537603225549987104546634733303473008464446128427762803044048482711558884160282286705442438607890336858030066455769029222611327880471659764304572488091050536293260830245173897806974179160234448865165666340349865302259387974728779662546461655300922938188917302793410544625036075851845227927772475739545966726154086464613124000621293690426587295938256651481998528239507456838029967637776409867596238057793210984533369856954527985240913725510783675763746220463412769670415091929605399814648973024438711022519490369835072628081005751809440707950917817832742615628180761657173880077747655178980948173161614362144477519602148047447883049867361403765363678575798534386134840830361777639417700709527956988182233396258870450684832380333476726267166454080144872804763368585227655519487596663852709764330814136767446398378719167616292803375390965782720446022742573546835584613112609459488120227923619344988635521132602018711792947867990330090947716630778311218668149439941403800780909259199531571649768602972119725148240657028342859581196335175322998731932429499832588019465542688939175520444221762944966596987958514536004719285703626777647835604682599509234458617226050998009248062979399255283653979316639318747793476028865076802261814713023175223409052553374565917745746856522182613378884924250284591568361319535132681063340211066984076711850322505394783302857877186334397186485445768296650307705863482891046292547895821434635417952123092121280356529739614126277801070219710406826244730962629378749661423443052012528016951165328416983032015378876224617421784998244323217747836953928372916677629484674877992330019290784807375305637409483133899944280932325708801000338433936900680706323211744048570028072140488965293156132818752326185147326385470380974137931334022353159252996890125965488661604053031882576201716331075748229642849279744417653653734080216917535033215739195627093128597463562681467698271577745349196056165026698283547238084107130322613946266076650150722479259356676286353398678769811784621333304567153077321553609628826203690010940104876274316765186073513831160501557882437549483964227707985661059714028854605271666486368544647624326520661948723058082187348887643451494123735498851413096653015522101493538079170647168306434847171569933240496697462397741820094145743894465738790461347116528724694581658486248892737962460761117032132579694354797073219080587561740358850246861944292494620667778745405349800994763389124568325248469238538058633549894338700094514285301156640552562715205226482133327754104362337136701252589579488486602206366730654617919106205627967807519834271766450654102743170297532906814714519543742784947005250568012713798223424981019952878249534596289261609837192309059085592970721395557014807965000634779540318221086237374575727984100681179868924630854043770263942857435063742770845370045832919704301034023696709005123700110003282679218502493197549831474965341825054550262589510717055109360900466555748659255170743890275873787384722352824125826316355805866120675448799168366172813047982198546302529053324954026073090858305820420592629551079201242713980630536985365643497403367303760815423974369048764849063229895745857560139491314005658122147778248386712178431658172752888219425355864887568802318177808854448584735612895303915155442665578755002352813823917406795999176321502289753228179596892623519903115346626855212311667326043064867927133771912471276686908620044488063446514378466087386771601548727929578576058103768069234281180511699403306793196181560597762171240454875768726238256666003824808505935114292323456891553069038763445633194148118792646139547703559129691495082623076289157529867251802249985455565589073461867123182329762585417738372688582053559962806791269700598527981116281729485730850489470113225904118597294334700759670769641405715585548789873093304885549694235234821435578289422209880499249877789568617005067167180827000560503931202889761249901923948944307213260436356811266870192631934064843995216198544826135090767885704499533623426238455519339564021966299829922760122720647872545571289301830596350115972225110132539300320528404381866234281496225263093220894439568400983040820919866062620708823641787491953130640182162808134513201067955791481431310061433588438795763939293493718845894769363539309136769574070786408595970700533092461033001576016250074063414715664525668833739365244399574726644906782679025902325493140163685064825895762462130513361190640949021035505335605126773856864478694229666088728763860702521456687317746852862616184919126403199739027524553322825544351300704796145575917957563771192156487293601043606177116804555472763764476869225892164991284910040569073256903293636622924516690040999988439132004049147762807199594352252385670600553899238911121359740686254470717170092722057452053656333349109180153932527156233361223398233761155920191215076999690668038262797035761883562164340667326539992042362687805979252431193334158054129455350725442123144121896484109587454271336032682630218980269736919326512070330748611340696915002202783943951570534599512092264957592386189290799145512425848816151657033011224926964723093543027993022462251101437488281128863195148135807138195239398427688120867127952368336297205132778379896405809701778682776427870500802380492751985248318490198870270470508749776459594593543531626793718499992640231883559710938319139954272592112184163233585499729642143202963980398075872287166914052399859060655526198044219741968704541742679715921553336038049160945721834986030750752184028799544422370949556500914460883887485045468426028931267746303206866159363435866199754568153484339190129762152666975187604646331872946136091403225517648301512787307540983364391615188002058625840821025747994450464101079585298976964999435400269513694887970991332652792568593103315651372697754019911139797989164587040706075413180895870795772001982100344695507969696327844220631766725047946860590957107773207697502247298201376191670853149768301498777448207388286878823008275835064050184459125484044531805698504120153325248545995900547294038994728477736252823148543205622124802397148073546138858469135044386040498256881506644069517516182448402669138098456591258024912886861537681549840208187519165612839436539367206871330900477160741914917883047755869206445125378647195407384667084426421900177357665244053831636615837727409012930527550761874194238457261473254122617870262027909892189545008963210894256035944557727757529406477025260161759956556851207943272478136326106971119005422720273267232131726933287781463693726789301555349219353675496496976145426468754429557299142948511140641961845659808018820011993784354712199805674433281383232532057180986212643910507197381929481049202190824276720503724604942945124255921047528072705963875177353183298666372508722705917528131495020225853928795948360557788595262716112979503112219745432441175204226912451345797684101123912690563493099647096779281094070161990618887682392180240973429748256987396950202937616524563623627840511760622699647272549005283536888264501007063488762942528260107717959217047057128399595935799779217397459518942396790700905010129955347013355917699823576874769176112007801315089516755089286158316723517754684165458852441910167385363672343252652522600302068485185656744428029283368015527310058628061020924243287895170314314447431414225917781902762780686187598507140896657022476385646294572753200558038950753411758266751608832562740713326088615221187962050010088576720834623941892119324202201756244518069683983059086805792780517341955593444317216768460086562826174545913213292885780560708363735233811574901029708152111355953015210967700617162575876104959769910303110209475933792919489233339326713277807320752613162869491687040724020208428253042717240980064545383850749138717083823678082860478932055403400551155604557692852214475968651138146699462360190095325878135813435250716850485998391247020575568782623810485107588742349670748600747947046904846560938308525926696489419068735325552926703790991488143142984900532327466047908463747679678945269629687942843177962686253724717253085590056701652581414508615843525513877565398693205260066738654913873151163158933727714941558715944973589724271333607110309150569607495159138312920060261507849888059514407229114795236575333470602611390052596125342411054542971402006329067182151908188838277084773656881038716645479359517991575937890745293895588575596725978683305469919309473747877431098929927251138453737413031744772103122418819097649186888555960129734089705269464483737113968312540818172903339064369025324489083113577525026143334071687412175957763689209445340640779088722958815183844694706009395632327505254351377917788493494160960590398568751635756295135644007869292374868205249623738286024824517643860916404903733233811099840457266142878892230200037593453604724657578418702892144424150867797740633693745167121199567105729673484358401104253437132110316701602968684507957719177697642977490128111292610583644784136299061988390489551897195651718944947112116412491984583153208285711648788308556691436213549346454889173382653589471084837476250998413688668354066128795123994709988372148786347677558616638451094260410975505834829262191860887884074848291490813959282530755028960711611496078809983420803521175187655776009723532569315306478095904422384750778182430103023724873082893305265680937528415330782781912573322277172371397665525598687935241870016753801017434560057317981420248247184559460997594337640116118505111719549370056254624315844418795321304277337441676796605030438443296443629238585739783204948456924182684467361183299305129478823891261863837007458713157097326444308006950589913644134711464005710972234253742722021248519250064421667322672963056024704863262147112139936087114996207793946321301945566491451476744213957972601699663973922240891073471014019745376186311955090086607610789393376654788522222148451181150120676045331272835772684115139966659597281310832228220195294896745381974155192197633444801293740450167394596344590749987506119800030793094736548863762797376756133204524529872227733802720894191951733431683345910073868827817211522121923848894558548889917706925036919633022621620901408555705255563153740392976241160248194971179253776929226005334286867803448176732621789308295464423481731961920901200823724347010242985414004613227732076832826311000064710679565944554147693896029024108399624335736415646655852597056974271416522581611210949569718021986853087133208935570506989744892515686168641767388718003096366744018506934144512592789227993702488184749448865072903398680434372380746369684496038178496005747134171179611842775496887940773529900234213153026739330352462130108066584981545877391931502767195266918960109538914639722952730986101936679373517970289988342655001209105620051864306482663116253730344466169532198524167839723935290835535561166766724173327105168507045863799166586295375300194112681266597759638663685484984195275411419400051545794056259532924158522594019134573584081053526829754035703130886500210026185218674860607366753390383779399062345237739928074894497023156185474644815076644638622268867025984956819301864161025616212649765811835991217140060593519394077095383485144355186939274366999222841937873543668393800826495991319683929538039314279693910618437046286850350841418402207832193110348689770337845216809288842446120211280000457117712419215711274224768317252706608077963851535104432665508344861015444821031365711560490459446482868121215750120521361052757814170646996470101522903642776279940712455957458406293973927867689241606079997793564399142893752037515895820473765271138511858548906775583440959023054544999151615759586197108379273295085691124798627398939861118143729195628295423855913488314367293721154072460600499439560807450860988286877977195804659675854566586976835602037587763130916562323820305185158636668652136480257300860303871928175007569213313607152962991453866304549788788768060281772212831190787132024331625059684380075602633128702919967034938186078331372086462328066862729354564987394110945714166918145147673825114078747934272612647765067985215732838218018358693517413460185880373639422111848793144490835287926302117923001190494144038849799135636635352318178383175270635423717241039197418658716897022271372343631469800847223800877829051741644400912736792248651849382136391416530553822255070718835918358979824616413361278430267142771176986784224189533655348218058198089344476860842840158035792061270338918410707765066894842155788668122574856339420498188702012409123235381862028343902918088285600168904841768437540848653081496831985415931541827221110481193990174216905081523394773858187372784642991630679667529857362459428103783831916946183220838477197814257745464096150804079886887972685982562576721976609557823715862540268446686833603781358318458932959984138594066342174964353324479445154076524293232099911152725561427253351810076609814126633857526586069869103940672497720158560852856718541646224870382965391142410908657914873151378351329531057909319901612788062082859529876716430190180326211029408592676833986063129896318479451850895791631455921729737456262254896237057752580356990859942159114201625783741352065059904320173622835529911642545110384130212878512587572577140547252536044855948272649747962116378592507126544209877838453896937039926504977626105866438774962117544715112852325430697534510083515570352610873786805384676149653875374866771165562226210081989476550135725638538601312603932822619372097527711945114576268897416228116120578733205481185971227879236416562796928984379795256944429617300486219606753466107010321159720322436970305140207508323771757840015032995483636831775833786287194991409713731388544710548795581747595604911976086378322246015777875132562222962602320288133704400134635852838425547338725534357406101793289471562782741026475625894243597230327597581145392158437655222009690413441798787207456625163702097408392991836280030706299717419351384909371397684543818638808899621415733255344115939029757490981963535452242889511220690111093441134585878898820105631051870223899442862001322440401097661001437323438653197834858250919854252584978148338610146673647228753479495093255865052635232227576519729139533715173288775176791926544057899367810028334080115431912195077897136025134494558980750085389167315817114865173549210548005053254699957210274229786424822195630677783654319717322590870443763933175753677715799841280795870875507430318719383074021580794511169032953894442212466606416084063026431187463070037563064177157630690340878935577859364346947821082102868734445257539473661896629660595035032120686104137246956317088821815047912099451291238807854652165764152832263548338484461865241939815623885714180562775840531897079904347585252814622853320597410255960753240717795963783598925928606767839472375891410666671410504845760001356940043338776242734454941435160484098231500283769732604782073894311644716376908432849797770773697763341189637325349826616903682591303814516502858037127401032819539801743571979285212246806045196112716686749935064671679783035035427946736234712584667114998071169249476419216907769586443605824321824096618559911248272878004125999112466523691245570330941373527596578677423816854791934111235362328204016149003290577998020329347121881824181889207619997827660433259133218944067131389057904774163511632424217755761387330674458804787474715363557951203678067814025474787890544930246641997592432584126619338622652060958691501824197275469206616876595667614649848965579786993165710484381734176398607748678524640581631030438490741742734357917037582867037691233522806917577843171816958764442300769679741938653396889048895279793104059265242356745304546088792325617690151507391023916991508713099511636284389216836281063259288707621338602960830280838566138805200096969475146259728186139959736835475731193510406855618167228985860404766111153421557120943882847138898938221617916747789420376201453548690901721996113496392937504148673396009578785555782403743635554341586246309979532586574441765191440869565820397265349268200211958299456267454775499069556960068366598051350357740370274757492132682279465740642415501256297261811271702065994378549687010946091663148671463601068136044723065177929908823343068223656976079379406043934859445079952627359847266275121136504005545498117767118134071901445133175291307029700183173704507994625854651748914449691384777361878845335122216965697368974605366211624175184217014380901501813479595013922157123845059553902238595090002072564231432092816789126018102317137718189497950233249294871588201706577011854789757576053603484211554960131229117865837678010262782062351178285815494260335333499285527052230911903941967449630747958137361339124634288499997756680584362816060632638272405935388221090112832057963176082755981208537763615791190608436593674271015376455212302010231290160910075285141351496762898833239413568334563690610840634082502090211416866398856013194688083661657096773598090760973694797992681476739252354490535585424835896632389387372553023650885638731653298342740250025734145172940734848815701443041077990083075955942227422770337654959656778553015906835742219120499226812399106633925567164672676350329865479514789213537059539732294767938326191877455852908772410922616692847052818750621948619874798290297709883545823537845375410919035727457890783980191442939361348555157866746155522221177916308722055851433254344271413228699307193409784888319291918201795780782592526387905378887982480318314097045575691479341998924310452438784001362582194330319482991079107680543342506207371180202614676834677920211624326804373210029624014450655324523082324393891425081257518110354346755642642359855879892972960709332485730488741430420401404978813111485011344727148225616718629177793301195353402553078762835909130924766736136474979138445879170433488661437085188979190521174695653504995890052138122866627087653454218327200965438400569983646127521827019351726783912888830490946521050908375576536553753843069473770253939926599688913684976306449294228191134853573963978370884711752511304359204190615015137895084433961779253641359696824305870284889542099875193714527575651130086397412636947762596439203100836198520652119166371115072924584240226818777374974809965658923147159654063939036593455419654261802157095534054440029369578269018317478438768369780037426317045196365738695374146126607206353177609993825169821326468337488287386003635809049487086051752251748847603600538863238671962494637868312066278095358850260122450127572072018684611738875828836957895917471430793960881567982518307014241082071096778784517950277789557937054395747860183232754253668690396739154913744376147141434764887642690423104824137275973049068774556491494507468557146017301394570873352825876843627536549591914720194691187577718927346138098799086439659248276034221373016159166999908044335285407315794860144119298392241565405210216626652430001559219220074093070519010093283900023103208566901854538933453799838467826849294468459511491960852611276710487489177758241176331172583357273477874047945789500740052099867005089102559563116968183772763589388933298269961331813732793399061730449817846201212876162066541110058204218810148746833300718681770451720149226617880279456065394864054455221140542932771393238258120722117171738847680077952234663079331363976291669003193713139843009795487390743529944166186258368113820825686234288008176819276208514549225565763445402254682900551088731810059782084549222910123815047419615196711628890181134822330531724843387947753893477506292709603047799814837706438077497256237370225021117314397655017820201291434038869755687633644671702189167289197974566073896797924036058953109200994399028760399076813238621214481446340009266217910544742092565370141900740859739274304603698187462242607232598804208456403803398059215805404291019059298334809895990363127063723356278244309381990385572530124089386175928391222424398978775878189142609240248159676898390751952259814741133684642600723340110034465910053655249946092136401087801338065524193649604908762481146833823147490234985093661929418203726010515186975916140159767747378761983281078214856417878905796248294507029735867370995539509359598158893377657975661996674934781164977740642123615736723104456013483244566595089720052318609100025359400988596532272548047312715151726886942263668704129058293026512848841359675773975210534482595174491895424533726821302566587960159333033630045902547163877955081087460777182695565599371378649868796530008543361001616136599175027658862897063739302056089109301743404527078312063781610162850306609758929791220002707469064911189500804501022845896687503875637364450896972259267750273552023922017242093440920100004940452083418094239157707476133350119673035647333948474716140341872365148868292637251632946412936593525971802060729222175458912049984441906183305420039629560634872757354788688790757859914490072929643294537461839452987117525710548861229736139499978769048452293683849613373369324806419025816180216031160624797374664099022225526574291000729310018674613546264407398427704010572007600453162013966339746295605138242081109808374621444350433828468234645980092482744499242140199281602705537637193723216204883366365867166339326024908716523980210596790732447222923861392258093227975542785935863038080165453596781840135938669069224880663112094513705084456257626133399892638318632894906955370328216655940369753606736689642411847695302539246209645768047487902506436311216675058932675647570731951444926512115762159712474760477628551533897413437335902639023220684661462889285419204495183745403220502637336631784182870663620345621512589314247640612654825366178675341769406252850207595148944967143516205471726959922979929238956549390484041694401500287607036328998352421263854040345827344325340087330789295369978652749917018984546473763243107266408396750208352767969794016934737831662715418613514126029410288207690124009861538026939965161141414765254239784882798022842248279323792712523632389451949681760840753115430006155124293525396827754340660127004343673947828077939563360266830170351934667067466610586952250110137640821909785015142913756563597262010838668981179395367026104810008576272317227653436713461096157493604367380948914925158161658051318074424439156732886975619446832348874084805347698751379292655360049932900133435735156581742404231450334843944944415287920606647980646110195073475527132412237560341724826301304831767851488666375243119201256419468087295385656688242042356256164682684693557472993350522014089036991465881176895746597287259963909181741399848718616513340631401422103002229840989845320371224705848563427395004263288327580530699771638903809772834103596064515302190938844818973567997919406994334280420579527776542380020180445606165702771751446091089150208456577380592230901359396434408827272581885000475269047645883381054817940702486889848903366958628863224156757853612793796178415742345365153394370510735562909091271375792012867578180536340071211051564914892728958651137758656356037088621931667594844494182322297455628150663000423641288109638000865452344086646511285809336473326029023047027424660651466986654191163593546384282396358481404896566206603735415746084998434413908551757928397328330631326353850045748041148904940444826869124449852798158699227406571849628009171566755084178825753940829450853185482679186899829716506698067625554756136136537037293793042345242135623384656065014411023145790415843633044438310540535469164398411334299229010300776052470894086941597992267473113549271221269698882959975185176613347010910505519290225078187326160620782651096827211325582604271715277375154741391384787752142485050411359326379069080165396735196762516793955356074636443105124204970484287899085655904522283340504253192285536146478260704954207624731894016083306344032659776711405427738593007985943459698100486944667911829111640855514611289420289332115279462452204818360348272639269655326149354467745929245812922680949294019150850655229207493440780937635058124446881185321939399938770011118968137043201486732750807824613356017625878024834356015610823668368502330687109863989036032697849617466019663875315647559166974234572283022847755770432164412683227863157360548456557512542751921806443521329358717105567843427720544295042302422164040878630554280646692422610580535071992375907652700234558073726304923418794099485716824563383076207485350339398073619084129527146558189327229781803338877088390144907966314184190555907216887880826033030910604074012148658344003052490863089043180834980098974494074526299279946003748039069396941284805137747242777294361389095930957942426416673524558450898615092532628669351209416875472177302505381217099886897412240625973561389978540682026772373430002459263376754578327476185272433527684352328740468264265477526473756191436878798798141055040902892348020193467575164280725707372245652188579986414348633096744983115697020929104727839649921840260873499193520863952112212535516434969104674110907590686937614402473394467558166844414746689956925834275876379596878665530492026845637503659293509537875693882681912157713271251260084171138618951701854351539023218699994130101686535754229688287225193827753669423214649825561701914089060428252178898150295223578061949566779938412783266121989884061253649436582480408855241638603908209486765866339970869842259765480129948786185525325249183827029083715480827554175878638111050320509000500084904663761095362322154713957601612675873564578617032733415566539994423891178006272090550199134985612018890118967496164420258732755953732043721158284004986604764414633469577369751260830006252208985195825270077434045120665818286854327879225168584342222155192769459857283605580254303249840490183842455176915536238541610065831208742339336203263609769104147926148238600207674214159994975611037794312510829557878177567834593482943367863182174519637164082230747991254603601792832360937165591388059434003128905036286669896430417218686596833739941791449631297579490557986901929881801831206409926625372446692374078738787446616931942114038660659500990578301130152174721009006745005625298437594883594990646234076369786453351424761672433167864470761395072171763958224483824517487394096219031792245382259073506935352196295427715011050916267461663566463216431604914326251539570635658897278316283024724199931043323083298657870975937202750185560301480222055416893577288363020160678155711616654206532185191228209977485508319046811389986586499156358338785830688451192184005631695834366258638371859045957422735310632075637173899128783240549082978613192209190490778308484604310247869238717267773744293067409532518715837980483374200125082549646029165793023986839496005476056235831466854255340038719252513486292916241928825940883150677953421149101070427937482579038565452840815186143361003131294323805629443920077998757136573380321074828986617595164085601927178911109385972754600880388403092459664934708375047274343485732142489726891594582563114747375736286071841608939769530230868501054751525117780931456049109808026253069574017335839686679572038878324963679528812431299794671155540912830125780559257037742410150995381327808986155277592703862413805233963159356381195310066570886370186787167923771403919950241407250005608412476084403010967577904298835616544463872813326297081898817679508349979314599097688161356279457303854038716136652193961848084064050717262331754356471368333963184354642175503737986604879391134495035521124074854941169136629519326188400180643530433901432834165489156745454438647579741703193055409450431559234629272855194959974371866447025192801180759459095382818327433400235910702709023192429779293838527208069172549397764350172204007838306837203656586225927781436294822746264436322900359770924495174995429593380169221329255568048545771753531926860245250212167468803187834512688378204069231248167403319046754802690570962034719079750524249978386816105848200607889375628884932175599449959770615637613514478933113633347817821277406247442012920966576811212409901013495596507274598483411558184482312824269859534863230867279150884137812118496034378261968875296456674762722226208121711552253732927158812685109379486374919734683828931328905196379457326934121957460271452425714888537574846603490028849838206217428087600275586508884596757910794972205942080254453275775543170202784417638819936711584353197110888951116843577979454602754071488141630360012500058376589070728232106881046299803645313273452709953644475156554131212498327117276272924289862397761115750173425986071192340390645229323132816477656705857112823545212710726609871353785704638395025823711617788701579601390871989767448744513697386996570889339316236029479357745594100872483566132610054498020897202433508949405196608346209450020308721282208460093985490640824725511426005179361205026211470224021441100118355201453933715535467455233721223739671592217334676033447427070136186126294913740096847611824797060335802802673531839734577302814573863611455005999070755101630222764961763912853979890132641841620921805101201789251707162572411710391192292789452241755005048103383618351945201782502973821597805186405496571951778087389833380503675689036040740671391136962948053638092901636106178250170822506409610964930608800923534930104637922936779372615682298446588007599951941109485193955588122325083174872520220407134568277391056768384736600436928458380767691764296254980907436316643099145212390625057672978047886791823833702171875799877040127679911583461132626847131327081800264071654136377635393477981182171760121362976045265598088107372618266007047240181970897272289582060331113573529600387241877982714187582764538435823435879971660315335512748414516077409853611244247284792986235145181705671304548937958299713030175583984061755582517351416950706557950695752946087013968948309144098612313805858326265852532707072395052583176562304073559439606950325199326459993987760487080214881737833656473437839187049131411070347267835339518460189492210690440389697079198454487727150255399537105139660475664138515087609256842915795616876474646892260106232554667333105109066960602648713394036017157877707724335369936461842503989561735119441239137397008108783686964465859752345518444553331224356676866890369362498415779818025120301034332949034971475699239417881003490610202801215735489734959393004350183498622615587762456947001780089016252395331687296733815981752840357418188408295596965688980040344060259430708352830973764680305256304550161116459032872955870742042008528763799334885577911652345344718123713603943726755285934358848107647614037993642231294376311089405985765668616828924301645832357853976579858466973331478857155431426206075186276244567139071952258086012739548306992020289809009929813985300573322280952265943124688324703889567178766110058379806325449058140924219673339230885674431685756211903411145420615612790857089306239369081153275746967002212401564922439707029875724275967104468579417158941133081203005344753053145721115792338650252853197252575346794090160841427513132614069534018296124562406811573073264300651550715011239142023607031926322237921506104952099375853483242161841800543597374282463191812678088975583156576578448914066986496758841838901416507282329821626854246440229539818066107871833834856536996417346774750652259387716631906579125014371124884299728404546611980884929994511578213644067209549257680683393758185193191695319122703845414039352306120849224603831371974702100499008408953695179644480279185741414903282937936131075258303559963911197456839559739410075850374475802152807175472437994957708276912837159591078002406052659494400313811088745354743499949594299086074670714240111604959750302587665179973890954929217108555608884113892420578125804698286842265514251375038450029121631190665904522671246688019001492618326679991424692908220495051123135599051610111599781347871226812025111105594421172410954083577089826863808026843599713319848705313845864660670015120028576543440085982714083676225677135508226774146195877132144982460046544168048933875752153696456143653276433297576685433789873320419854576252608720121841157884839755326021678471370066883630019089060424400579875407494889281348837506312287644287385291055186201218910882797937901782389466538717751305070328321673988746688255065963253964732013153669976921897229843445635196159742881528527439154047330434826889769374483857534277571730566234328571015768067006475158116591937021631337794697961890526822877410046191732958904051764127278524872598321037501577849524373935947538583650071157237756552556745268370463054698731981110697403880836946485232488842728752959435666518319544651014660074302616439826562402212035416288509903579207674397324322208531846205174538053332551256175252309358700406405947598089261019793017970467504875359149059817176915728318808045935378580145624022769248422463268919985732929090298253915798405438744132029430037553017298007352735332401481686843575393546928749337557984534268005689236863111043674223232755363443975292908765561932592584541070155927564401944705315350021442979566629240886218658761065140063197419544100126051500205728719541909280202023481565134306376998784845265196690586010748763802968113896760119838715519215125941345786996535551950660666538713707244320320542367497012629019963197087503374706419377816516642752301614328241758387223210857632062642813490952450697430847700705875376153022968557292189441999404812413478112792625492152052328555294786484388279024047959799768107362467519296597202093509247318913976853254173824142936027691550002754820049987648823097895820830435264944926782842038836083724771061560193180502185484388749013963140946081516287649543450365635044933038831193390820621536290189690196067188749998835516527055309421156688170767868553109904338828623129770458333225118692824180025929879427279973128503144235998820757204767144068658872826184637979192449933371744409684477753444056378184325933278965660104625425160404350762159897243178291863986479426807725944545841715110880541320175880174513849335702665174986737038861582437311097486755507271304769784402701834579051994945578816476026054408803364417529083300323530564835346626394054121561036238994442636770607499521904350099974070641202181999668825941917944158701741638532400321060056994387473700191942805200677108390933540970817561186024644296931141638022310636361212621593306580875979625776785044280047480317383336585986047965500026295161944727279730564861441780330565153720163622622450000705408146805636693310772065392930285364714235003482592274533310138707760845881427774763536015596368315116887882489826760364826513250875952638752627302510746083050082534116688053237404154017130503852441380520077818343491908069576599229742467320526802700849532004593180117892576279868088027190587786293790030210482876733386530007885608534899795224446905168026052842055462637735942288051195906642504353729007879974441269776337651041428930642634801376814169192886518790283766086916875400661928562645901399387252597393827707480143890841966967483278549578435694897876103645214360545648026528254920174170220771195799458733139035364950371997178440800961616460023209799446006914415186469853165240441485935566213173941886884383459830330189146226567056918695077247444155751984353629612143102313464222125552901024758294904618443643992199408002648152761892824434255843032480030088564765808719948432950411494448707634091194630636280129582926537040182048667576829144475319551172730060015135665636114808119840942525550456726575617501027751296313320627487161639572710631237168945507837135562177015424545451268415138746654863388527574814235794104231400526682372914575477282286754313572019969978163010154488986542828430716567877764390882909943145579856047825174760375471852620803168476691203116452271485007723464433015066380857202067767461471977000226164724464648193065221956084603083670793222010178492839077703006040044748531484290377810828750965693311483728354776518654936739590022490256283150040383790328167546096062681268096668228540192126838661275564627124059885859437741960638335417560204061515054268900786242076543697950942218441090373505745537528723937995983959460100554586639586821577578688362770200271134271025300497947842685477526620683152410339879546962116052187790405951435578680238966059581372194213234336257357958949240371560934112319521941367886231918498319490378029032713542495102200260745815139468972193493119025148083834089573709587209239593875170764456925250498965097167893739833695862096753977494021496294627062766446084081341115425419810682654080967002973851975232532977624935568605401276138918190939304858929017107933193589274205698912463858073907338441216255347768556720680912239916602294398563657133468353413519274506741798307499935699494255428111683539859010499010611957555429585858311956433508222016399944686583541664737169099645896849034509341307681809424939899720737820760123161689579163025649127578059792981566372796558263723160857251069984277105317035283705252425534678649361600031216604046889848378784428033424952154036855675028254066353654192535229076942230634445923293616321152458774775521890641698742353460684372491024661233048447981173255781980647549623954781981414622959852278481199741634316560779859268382716321404876164709924317473969577552459737984863167757073958230936181312772841774314007062348119401693995953695293493169369264976806708730953389631181915073099576796428812787944957772280073346970807589924645808797439180979296485914781160668087721661945092968989971267407139338764513014095994081356038492893630612591099859141202619537488425509167215987219068919519023176601723159868673335127773544364996518257032633872430577185098067294853414347096532209702562662294433625954811242008608389591771197230490114286384708597117179947311073268283154779376702968985702553748591617089809314006402257251136785322851590675668587024661300145010548352996526385410722797419055548952685919597705633128300587687001269744226535447893710480159374661274066091307877627359275459876262236186980749719947892082820381408825999850591521322924032087505914399534929218875715144418070247820918313209361057575392899506019561134138904040611314416561673234735942913486634596007393718551064855619942289530297439500514911408684370711740197858853542040982118602365235279801585545801056314451077715266028986534676726194716614194530038004037301245214134762422975898905916956472510620553508939522952376090237143844088134893824126704629937968421992382501323752899928896785674284256390776261911754677587342527035116591467596960968389771241933877409976809727726867548860705613971823808637327011827531504753606122696208487047261706969076996318318563305519355002743105380919126444185356174163407848785912605011340371342718880071208726055256692561718435849685975180108760722252023892346281822577739412500000230281892774822545652778911193292155473417652701004766079084021468212110357917938864145324671111057494683735818854500173658286607058182619948216894314957055823764617635811880971016974731653506590725192904503435523457995696145898587715680620152814120078857288009760926295012834141415443973808841353333461079940953901208420661394411411726332916704258916912457547011965841655064651497310764987267776442751501561488926596793212250233669237088775023956134373742904602129920793595092393386672340928770839380805413893682711055370044838628357315054721483805004883175505398025004614648112889153672400963006639282688164452411135662134458607102265685704299773901034184824691209520794785183019978139691788346501763879809245894843935760120701062218125091213068682620819968567725329791000101615905423831332541671884993318256174960504427583935323117576127554587698273706687210887161056595098463491508566678435867044129534147921417184208988770628835275304414319618677935329409248142833127187856031846383611102653410429126107277997600962725959163692658474741326170425166062635627722802486322234962723825450835512264065540115829266377809306977942698083818533802952846574355356110830698033846696588974606970398676535565768510695787722523330450726233465660088697092108593092547415026126564147618839643653016867547421301222118056395899329650337532733052225326570604047589557620981390859750977037599377351678771163111280974392535312116849810225527021181167264379790382326019328347916077462871976853231028838787740506428552744359797790018381589654669480738574922000510821929188729049353886918907094332008781048155067169686568423505498314652805135565915986675759429729302232976128913355613616970016756577677258599138698447283252223852385334327105779796432843513370121580005401582213619599878347041885146645498228685526471591138646434154998323125109214663096716256872629076571411269634391333461351442194993047662714945195373095579331619114581979983659200889269486245216134151959891922733583949108908504396202675877005443636423856764263159531100261607808884326038747596641317824805055860929176079567062252933401029216145152901158887763738255130480685820937192218131961766092131606805470718697618580752938883533116684678165046098122511666543937639877388638883627598545801239027413231937760049392404117634377416011665915207975113764939758244955514491498874700639383467316857274203875000383468617227344427497406364079462924927850675490913166379754921220855006059302007331618944790416694902401679790563651712841199599869958827393943528313825305191855357546970856995504741185181037374050603794545123103436731241341235507947116136945920748551907130560412993306521956498966062810762826627491445723120313517213345952725795955826585854042641304691782033664757666417802141480000332956727786913854503312212178427687903206117156316966077893657599037110487459883066730855282730294741120472640332732877246615665846484570540852755278202363075619107006222684636916411589631219189228166304698590548000855580417234491055781532213516475180064839176407706093288206879753864659378444361328770496245072515539242492771608290299585644298207986606351830570272469862475066978139678913510363818160445783039722773342555010124378458037591287158914013709832307922876605437371358562476815649994642172694015310554570636427971037697826714640508108367656311546103947035978755597478610198434883558408670582099952935182717487944818493074237292227110846488650221554627746873901405446912247171061576445712658370020678339260216154864369103003883361953984486824862160517221750146965639669105362163197449512081576056820270419853107443549750894053801620178465325471143941211761519747363405840158813281547533782890201948926614355362845185683883495982377299480052016867058454817628443549344542804772252211067190712380636918900851524969690212049522525670825244001185899782115010140578195738593982005925001158801687625190700430047379475734190999681921297360927940889068130931868919581188566076004103951783892071357783965139869399469141571593317034185448715491274911680378211501219364170104282939413343373718600156504857992750782826008313713288480205637216785141428896159259511999184066726220891702024632607523791884889721494339947233459159704669673826151570688699887560074616786748893265519684950655234092471173591230805376093517896996659072692169422639151863549347370999160161182770446070096744653063389709160746785388498573084691919930749718138981435863478215660946367991860319075738391596650868603268146050774567663361269118008458514383625347816030374632828353052072795952044230256070304745067489798026987173804406095762456349246793819153457971087401471412871224680470859873217948311026434945388705626159799827082983747405476423102645970816891161735406221706505669845768731337878141669111929194009908697071899659783588858957449056047079787062852852727004543091625884558410037546203024944111075332740035437847700640150191238391178635626650443595361482506118196730707787283900784278306716083809624850754890132424098437956095164315626953214374751545798110985415965756394086434273473818048958343844168098012824123568500209036923410579202849295006983293406891041234149239537783763965314602842029902093039079157840880793042985163463891321749292208520817931700792880536997827955077811044150900629766539134157635684816941639071589685613558679401968177030439783550843730497183135417927392777352388351170390984387196082573009257142035430434523091215244972238609007736686377425032247532679486521617902323873107361591000586838396075045376678618663310149418952881977475924115728746017045585500143828042641657960243260434720998440822695949961363733057810636261587706729892030784183066836312715399793062789603170174382572618507094630192710577853543692801642952001105925902920797368832100088583400919463195604619876883621410384911512401384390210997834480173753863825514324500146649661275451999520237917241181303186061350172946417064029458245609690689251351227233363528669360536858062010354725497670081169124332357016400464886651144471254055601712454879610244491061506227672306453244424084278660092173471487875670472188304738283916875933655699809348816344938637379565681233480629441866571317084833968158382823633415474522533301680142353900964654305811658875133950998056126310951384942865202926032759310106748639070745369540792823002841309969394646827211328097080281167943069549466436552902329422509076095590179344457052578676539480139341824409125576042867715118181354365991301670454825764647070815225909982866886698523827894909872102232844625301048226201008372774663510599839449026003315310312813929993939739294827346503838677274285922276675249885600311834653336291036174071648979443875569318728532474822660451124688848906286261428303309195875535950782221666445805543922252725231897772693784778581059682986611373039046422363702773005759216814978683688185215793781612258454169971775166695587079094388051940150044077590574732025128453500566473687596410068397402773768175987846658127581945955193280784248474681813596701656744625056082068933848007653271769129328037898907782670561482036184557828986901483330866531011620538744617967986261816261890328075077377482185626212319265124181497865881986600135829593781348589593019962368644490988100145211258284368364625059448311763361099358507178944658914591387564676546462284713360930009816098479814148874641269057114473414778735978395140885498799245209847251033366496743670417490468786389051160134763882685623175800084649260120192674432619436530953106513217510967226482843266417424317525508845578625481968145389842734238987127952250955714765297574224575561447320977224957752010615990291423241877379213664377031975777160867890797668361044572873174233558784204291536658630164468094048121528542646062711318270752841472911269240321759540601954231353727851651146292271621317387304130899644903430208113702305716847348940472325708650037524125023491036882333679485623772437866034995867095255771543636917427150569240708103481438477282883984267797764003073827019608583235398137390349511051737470521499808855075106844186426248039557294233310536705265583683995713198139421801043273008631863272075361131904709503573303243618905554002950851472989012201556801388659634315070621680974777946241652922957217719380587783442665653660095676662020967229308139325744168707989835589364240080792475616379182120360739535039321202181551328747962216730419139258362247010463190572447172328861900776201916354372856656241433326923839473213571624599448871505073335345739062252337953034987593003472273022157317221549704746045269369019313892418915824428873225028864487892886398273017217750327682765077911134150372174107305029774058308728575866535198676888652774418734827311987693905532526040554070101900004734854286342990537994862755618497190053531248704931392301685743527133379921804936516202493043118829143389216239041125832743108092086909454901756138914744382633520336087560838343037319206154624003338327397305818107114745487975221194286952225819818785525008817230906435237494609768675566871940758231985613265609675570553520099645943127090026212839597349458780520756613957551511413960974738180253484747313134969869805022564834467892058364489520266129166129176626083668071190338190150032029429399280085164326453900768388248519294899919486347332031333701092221391070896413475882635110369492256991436657239172750061885267113606375285435861872757635358541710176608226020615489590872251602850363208479497544101209243049894582883121804805628558983582117490200267958507651715185777305555870966364587500429867183703412556976398870507389689298338123729400846081772572916289835872519461888001129891592571476151616607260827425478345967995818972377151729498135684725103679245765387514727263589396463715017634121732622314519168257908081838317698082635759609286449762634439220807909191549557687510279571762392064824348571811136629601835311423848403610369722050154115381054342658811338740597718572307706359322266620500128973524120836865543996549575475529264943097798160558966717072817999683248721139970150814631521716654449855955204116150357189886586579544747133568410063779549525911747262428000399069402030402831007866506508028229227446593321297215018078362471730932720780489454310589201658780844669283624979668086093745471734331563103315089960412670731498193346394554997306790454163495107352195251431659833548782677453309569709308457521646038234585168417541599043948207934750613369663607224107684290983258163987401714957789808396549722600358153482529948038940172448974418631959091632537314200223273257332753683418560994061238394188799162849027748072456266579257201956725641649639986004592965512185106048361271006365361809682763229445630203282966445189425818949070067849197865413658713159123574480965071650782495723044616238393392826409256349889134205801661372830969242001314401833330814392571613085006868987965541099028230135238828688021520730512648754298454579794210819496865572794149531060279264755244664768491081879659774031284722797959996863024085912528250803148823029193257053991090161618601098702024500641213923083409428266076273726468207000992231815252586933598212849894202590281132555490536850912702666448440306825834460540522645685547719705868089463078508586856377942729011867172723115640205932543152283682070115893637949316548336174336109176930105029685191797215490244244552819290803802882011820356942838089529395507106087153616440901031243576954492465584126297520725532371975943991793834773659768974075537485789079965804509054278914414263302136957268236670328117517475946542623599624541903116710385953099000021665617354003105086269549161493143653435775261515059198347131356946394870580043738780352402862406026227730264953281272568399403239765317426756687161364330308993812679740212704700512443351257291123507045402728791955338142622567077830639392091180301709467500412589813915373006867881705265941264536143002383951734613078655673849321803906700276246880388864620620295068690766709669797326647906866599553790312940908262460540512952666147611138451227744284088884114276069128057821931385975194977500192133604084923107171632185166300857751015998750630365543239182558240974911442735469515907282918296445784294839781789774825326052546286175596999088347076578734683473552741538228798714499484053728852823204227423618906191182395461161040384464480557769297319694465721116719211970255552383186247720560141143295412318775878015716884188088419423788591407729157956817504711046501118373478967585093318213925334028147481626936627928567908341545457598622281182292757642592920094922289259781652016730928962237263161756555691876212375203825841118912745584267571609563130835394241191071642636084161856748286198126786832022468311713689530963015474310682030869560024380927209066131612048016952338888285232968271547296109012652359525217929254919516127662706846334976344456299320399799115747887946963922737435003813813496547581197211372766391124283513056303552564770838132464895431905197096148655240001218624554296430578724285642683461759190762735681358580897274247816901197115455191442186062473384288637299742401407056954969336869016736855031580641210744568642953358173805578003897645134036637763046385717453201173446349020717106967239315971895214658165399948842502910702452537412520595459255416715217087906748398287428510629855549669174632264045779941906368759987051278837754326133895907287900447946200387289556996267766911645582904784428928523783084278730438698974731954498872080618112920838315025288716414301671332176125152183072254914135733648162220762249434034573879344179525360356195540888962644892175934440571886243837411929612022934115205233727973211269248778999048994592997351663454696866373483742297810725102707163482054191835685239926573503380071239224968582972544121519109543889458143713493334688606053687713988555264765243369334572539910161454094425783737132712723361359090722701221628915072533053712957193676646192774026829881875511338009095338186037863781791820215640774386696971184002909212952049070608614219882389371610017039088266013960637022922372110032751872496950521562006944999182097497727464111692411367879926595687956180116176137372388055718076364169074977496348632539198297744889447888607619460539270180764736918364052239449490749262668484356803331672474136036188033728077982805075251473565887242775770639946670968621128054333316534308405273272987155023308878265982269341759497992743145846021882677795164764512322012554399172673456273264090293752371078481286342997284002988179969231150362656513416357812768603317277344454226929456973051533879600991422544575533003564941284475631351603346793443173099747015151305581674296291117364614814078924130609465683979925822356821916459980016101002099661302534518778142629347048874612148648340098932182574047475002028399778619226586713628575859539136506818141348253469073461639263920664107608159692896632867056763820816027303607919019214016411240330341524676131559594763484294710581658060375954360127700567342054431323285420618862285451714600863478607800336739739610181109226615858878162005671998379207531272270741701711509615308095860841869327893342368995639534233589593714521086729848361032860862160394938102680448719202755164122296119236870925949706126202579738759965782114189766095187905892723432893394707225880566667650327643457295607924008562501311743339352579883419623372192858823460790398732102731535308721421855883857878971227792134311699282087030317815379226148076985002253571272564264145330939166438764331916094529338252224671406272916718319180583662511010736858043094360012385552368306391114366087876987515134513445708198249903345183318931840167782716791149034376780949832562245118866580829114779770042369387384210284201387681640311640478804930480054556351587018291108202876200316361861786609610189915754555264065020332188066105772613547030429632277095436931539743537837229393789605277769037839982652816795539852416443613746073192411795151017986239428617746722613863056706094489374828111707279290712184677985041661808399315015213669441373319060050783706264761473194208337997405647013766689977920233492895072437922911051136547871871251058749102735974188053785440899380117638161273649010423781085877671894090383758833133576999969962944472696985426823765887329655112225629998239825114559959393252577291073949061211435213866817388407226834743304498248408561582107869982074110705613671626385119459320498224672786869868746634772998571032286816739085876661742235196274152251009477534532035410753005041763490650242528366790647640549309119389623353962481613112726211430137053529790026537526456071607575359806870246638847463339893220911431514703412766471031718169373604656016613772384961408800020843438248706464911137921068424824406144780625920998607373403800430212625315528024251750831390711705238373720946305189624682550715487118164931240393037752063537192047005632030918257444793638512889615294300313408188424974333590277878905058646888170490066023943438556425038959399088627724046363873611762407908822506488110015639478013183037893188676629298495849716740281312458334708455283985497052158634251754453141471241489734828586427145640891810669446978263863624061876467895189026613253938318781472071545497532434109751459157979366878908323828329614065921832307848213847267087844464400521933428310485839922101953868259742807628376253189903424083077514336840977944730259730491496742397604117445891333443642103458265076567868782863362562769911614069620621047109131225829946400566896495402057457098771154148714786745310547819612973792557740643203718137628920707974475295863874158171830394121135127701649127298720443222749073807370236577619701922839408796493976730896068000446714260972623149469836412319117079810758054355211018892065582823464589673643229932218111599532483440908461294290941623039922513238505463107425345191477104667803050868588258556072050430732024135101969921214543060028250168638189667367941621251194696259880289797118047616303151029952464414864664712860883754766898613234235097152178903996945878087319410855354369938260568973213963063707765835493341240607624887261103688851115523226362905937393324653177600019200436143788299626483705477744578150934151878159227444301868812935975917502815104607085670002365642494706355385310280421532958470382977315167363341911749998792275349828688332282975821335879553256471980979631607996593790655259380543557802012976230725435225638822852659013450804557466045315565968877354733579815427766310268233047940239158855578747075460154996805086543436444123028915423489482097882108918588089946265971427735573686839049491303922614098182590554168328301120214224348657380528862106074085009144169854172985484746946247554321241001480457248571282096454341811691529636653637245288624161223501977310164222959857258893313735703076027371654910497156456882966278668856535359358386763083130314932605854468082967532877667438516381725116952063832938735841304469867792896761087804742981186121318735823418389210228352775215084556396653977747054450833418288268951812654213189109629404865840127154833586164278464507779030904422652797436440183486116888076325363938822655890371547562624345342581292758434269920698266349602321176056906367795515347099638638232676053139846130958631648570163141357361952466468868018104893033889350511138710412369989063758011836072251020410997161929272580809387161326911452622378949946611759269032221425873177869506580360628988841651284581762529559449268118444642345633245726166084504978079815572103462327628237657894069474225526110471252473395221994238241433421294809769948889464198306459638294403028039673007045680448054014282242263709144312452397093556324114345355794713891262126832746755437896554077399251194427988998414570384626511836636968819947903356049742497592023659213261989644164826085313840899235485922143883336593313488406334897174861419823027263176421757110753437376837317165139738898082929594516685747600538693646161678625437469471929718005553990385111271926829721268521643753722823861974525590431268125422149678569928951369227511496431708242211680483280838580487253985699532993370511070657185425829360407579230256343290959078532670704242680189009671739833304195116823527636290748496972564452617096832983379962323548207422733694507099160502587553941082299433431909650550683892065640347426556626856712136750523784632273187756467421783979326243583376318580615997005866340036640869498800035277772173906691143864690670051569714057630755877071547139856667974598902994551811883891262462840181829511218688137585686546560491970914291613112587926764255761911930522882796806051678911727785668119161064223094782455341314659587923571262169205911785290899421990996173282718924441526004013965169204688190761684344909345623340173937751197181050724128771472532148696292116147616350178110674879197544590809548803200227953731233211210696571148381593502021021436190703465639022548501773741079365350874618261293968318435848687589515365613108792256596743620267366875679288411472866006740542496954815308095471769860644192058006332077424071422735576958442719308520558449846021089662965844893228027749308283829355241375041053474682648373781319106805964330994869630611177284274267279955092099499671685366801956033382031536463608137660205897127526030528201659106921248994917483924803905290259610271774171104913859819191031462278739799894296491778305866526650749152213430680419266206016735133032094826230869930839575751596701086607322717627288178967132785818266785585854575537737367070599626718490656189000849798984959084661668517546003646248020257801417145699107601507070858586755942131689749475412606109715464651452400972928397621353367429208694625527797890146568112042725200462880106683088705227411139160316514727573637280606092403837897113221152216687330169458098060418529708613150318188589848487239709859608982752331437535055385871690840033952535355933733291378051604007506442248853687439141527137064476382114196547484848882109042140933520529042787164777381980833628611783032215064430273299157750067018879116741974214902084904667926088319987322753649519277941559052742370943127881079960199293365602554270064701819364897551383530797001156715963649901473752378245171574718827812003358729159695272291877390916178070537226625910048679246147957250664354451468388165568161593543313060353630469265456273701032371708857168447431971809832256899176920673462034709198963362884812297152927469554194517625139265135766086897574115388097184872889994908193990793689346319860636267999301502103613726937066726213387932982135313264642167992342960634635082589865407656704115503233908742939744085402856158920192543811476856872195662594959376442574111371897895248703208246717170418731239540603096607693184604412659222933155322824780942093448939062007868973493021257397501914751111405353409697104588504853075886245332911817680335946150874353029560739819299923196089304391182053604468319238376200603693990776913254546708093298328627639760986279028324315252210119413454157977370625679718860248034519884070604586332319974418045716067660082311643331775733649055898632393896325038777995896115473389508087363689046302534335405962878108151216861454454541577004466514548561082659957245283402647455363929685491807738821569140562055096078168556844275169130168889966791380839308966195385082020013172468972622268240303454820853331436958386568745286977825936667405887265666743793325370896341969607050410047126851655780174930996918232726395071354470503870185399442581263161767049201034853895612840445496227911127700282881242911523103593803790289781608848915447588702894684068140598093529036795683966851483774855392071117043409779728538627515158420345080983833647723630314852616817534916804594706038456792819956799176197380226474318498624875748329681861096877811922929916226861082969561627277373802713874311995669805809985737068628517106184139725359564787698635716687906809258430722221519005594111868747765302087390400872562365769254004258429270847658019731719311615090278532876365590639318787554004805719289098167878749875060223976711032820360415847138249685453495176328627709134235449287674788545196704520523508679563744835020309376611261242486724310234368641766732138910562398987335730845603969848992191255621764792265413400823270407612837501337514155081059176831610883633076890611554692396626227158549020302910792142016219839798564234712564851867848973357891419160698894357784100627752755550191203756388241005873748315950846608500410727731509889259240571744922244947022812697378842413150309319665991043670381783296690940683557466613115699342800493111884620902895148528638856294700827876494226722290697563550511861771697150380999471589946624695543673630146045478738272818176288347977062741924680967280945033339463221497835164439738896233040759962618677878920651609106876555916775682576992527435269862439288085141226586879562863721746275041812993551234418641028000039960942657487978549844770129951771496684899840772495069079023498199286122431444644728363434570771024442715466560993646209392963881375377192173869023479267032700985880128156299288592010778608737253657288272946485019367948052700935700846692085164320353491957554921893525629001328794020210062328089989240104967685830073297754272912952533030931337537153739787102222264578127098997446536671263571882718871145426710926807763850500126536869203268662011246625079477839887450463458750106474692275890748509221005256914500787061680333731638346199700572997113244740712022746595910433187775671430701724265859561909509861495082357602407414552393421997337735398412045194790930868972974412891381297839721947818494155567199350928476380246918611744045507156278788763746704013912408631852784328240837448213932681906532071613401719413566774168761732166166673608070924123443689582761054600179503574512305595674750711600505896619614000129049112862181540018308538065647910344218173874230152618602785608284044060422136091268368413015010016708878619819810504764468593011000153735475778699777546942830366305584215491637912239936787071148557633218428378135826613941373143205772267454562421419170030963958367978131701793866991340608407394880219915290709875094742732678575324954220719247672693923168201809019739059453814267122972632653696590073550476983391935023825348798697973533471787535482841303214078381868324774276149387868034542908592786971321342969127872405688909927415408969765103189089513842276945030055910411243811197910403459740938470553497555114024182958253520454291311289651169317442506862237731900879913879555275615306898191599429740365758856691801481384114103846778937598278061893422037078057659823531023913698968862972570960359134750410115707586586620217270875143785723038460579838595729250925923169606322500752081533897208262188361117567371171788636609552089051326220705282714518086933296117059965463584301364336250968172493081283551385968502071222038329191281326803753114532327503179870541351777074042136375656613497113594339507742725408236978720629879891506632820350301404652246657929019937098566901324788370345058578310927148058276165675080280794831711299317689773952649745788519901958947222681469287298744637519544103033203115796057124353874016584591629963774266878507339516854974322516538430334641820290392246337961007247661032969051601943386406210986737310820824169095223861268476250835607989412908930441596492568721263554931341479776199425861409814803397043473158883465226570746897775009113693341805680598152929081556836332777982658931665580414693746627078639429509055108374207923899007351783112769406465697786348352338348281545478826702987020935219901987708060467675084025690960217930019103929705470973865238379960980920512577688291862177397141541552690232881288709857659508344477726214326604922335928177823363480798777094667665625135904911879806706178109646645266426812223696688396431145280062345734744772211021649011231135685836056947896025197626794912851677593368702153596675831113613893147532203656254281458372764492883072536123965194323354096218295473400852058316185906572855417949787306568678933295274267650664470377314245114986791902065400756916696102847365435296982743986590668478402625979669390867438165798579054929261088882854413375179150005176127790849880108441886397449305073440880834421252413998735951514084253109166994710755783682073459109679177634893066610472597232332795325169872598110908971827816211985749680092226424001478121853545168536451677298673645407018151917898172189362650454296425961710957079730083945086327429334761774254558327800507634029956878589943790919016950323704354083161662412770831512085447616886808367695822163036523566670023118316944129494082674469710001600908770530721712788212307464506774618324981671443484617292685338905488100055435790335975245181805730738628330725555828139858491549756703708769074796519560820199872410510676017382832724006854302859161982674517984630803078034226534462013102786676659512485101474448205541033186604137753836900712908455245445720258659382384573406437016702452395225478031897632813222995550499728751304386695721355195253009547670321088257843200093326628289810714578820428267933275542523330820280379352608492707112814352587666338622904519416407077254974919091635846961453598519255366756176015974419857593570565449018268029425169752679951018417953744114752671724124636680049348556451741858189785005695020736792420717516253196577157975362429604071131870321167655505782646897246943895998531846227489823886660334670373118176763845978116515921919728105681831863974740406672079898832116492628794921682239930829235137207003875688764784510448602042478960615786259637085977412590508020706384929802001137384081898187887910134655238108993714372380400779746958322958690378460865867269618837724729920528242410054895250899780707875133009455832645483268490310187428789089191046987633308094483130014534332759133628233456190932717056518000589114761725941934832782598807343619845631441769556985570929420474612224232377465575891082229635121624302358647475948826316918284685722582616964355890829259370296394901328284397907231571909127833848251063070715436325558548440592748116109251757529625121549656883944883478909915503268456516719576606715560726142701371780942578580287447063173203515661369898950489551083166975074629117286249073802297943673968078643920283550468343096031410414595514233350049486600613172161399386827556096383789882707127107774064227780688655896301856070003651079546474966454914188947023677824096555963135485653248203299523468788706930837267784845614880710940607290352051540089004143123517737934296972856047936398902574985604192205856032137410085138291409252165992306573430598108195547663160655996524233031884921276989632401375742322190030089342161108360545558023285261557323698092897363549301993209399685467577964307872221466530957984914801313142575938295878635941407185410142988208614849944500964376085256027643361342380932923207634156258140875151807024529095666932255915692002466311298544977155992524074356437092862173205959013191707102358843595789460198320589578788031129286826676283216157285387973378347776456223464297444766009068413119849105755996812357725927236224495316202237980251573335201086939267732467470491291350314625245098091974293580282004733201674880962287278470232500815503365293912255526534013929928529808351642482002820889638919942329769868551886842652253515815880743220288916801579377256608593641560906249268288257165243357467507487365193935154492492204103827139892158424126036785537272273228262652543989588848812309269032762076209549893262740251589936978524929086079059184176651854354791226365541100320566832372856411257543727752156469661278579993207138648302386231521531937539021599624201663743624489800926200253338931162137619584778556058350297635478104191313188356559755179666452500476111860337710801267256758498410986081603651635810859823480353607424537811599082579778019034740390767277029435662056352465840705758153829607225166163922682415167366706324121533685953341818250302015458012730844476403181083695721466079699774152536893121467462339328869669734371439049504946650594189494233214117616161956743576753112118610766302175490845983350496269185379570805612324674822144822345908483264344652157124171461011734152224112776787609796245809341069160047468036767261916354745610761775275203280146869155725892046890980067901694125656725857950925649117644433588121370302883568989835439211685755873338123526805007266288592080298910298506769805195455633184937005317755580080591566935584344321816116607991766370285855323913072578103321219742440646094891941961636876524263217424175023530378458301256430936565595674357261518890872693121451236539333634726396496588746958694212144277308570438205619175818305905578105666708885245532587293066708776244329786787017581349410947826234408000256615332892377114031369121497547407110794244225894251572507499535114858180327638463262284258267528653108076959435792937979243347891138504656483233193367185022895239030147326704007151341794954120521858075102471225892527001361415206503907507005420309566532182515549725963848224624575566540643970544715082613092425081142759771712719837948845695438633876916839513357604811101968247032428722775022278595186467469797940796366472066826245969742554942737129166801496405416709599428732629165773349475735032305938210834349153096564081291767104617876131863083032930978996849140249764078482057382504513644782950110114417029233874252061993958192717118332945920243613152654255115570569817248478858960204099945014239240079911567619366364996057502529736540671698799641249889474414496337695147569142672869471238035547439460411721190453894312742174125851833244358858251795957801495738125040779105417981305263053020090922558432862093014881730904330196494883182652362376532919180012181030886890170071247190122767273433724616987990732172971891402725117770193329889360982601748408467387099752713309731498614310372394845140520512662090757131062971303643999962298643457094261068249247756992378085330140387786587367996306655686894989124537666331864366165443363024210485046366997490943995468879673454872952069412422620290314024087967928269896974105032866992292002198298738972777769949010709009646671120942213371835423679418223291754706299456858439619660778417901256789008837361833337109222677165200706436983711429358778339902475871938515186161476483661787592062419220939715394081645061324022548294392154957485286541821336745559045732771415955386269669916960062875305048826659281595114315440678950731736428363743750828673681449321913914043253989193066300765350663121563468302330122035096845686772002070822320077752121311992197931946738055861768079957361277981508460257909612163688401042951313763487727959070118524308962665289993504680101596277297100688819897815084872281131437355678136698030275140617257904984357156165309384558599263847296776100389875389255075162834438577822456295627734557232000484599988556872239425882584171038454609164266414729071897119530220826247294550099512468315848540360440984040047592456834064390976591103821378893617905634410927489525025731818272025045636969256434338964717957434676073543652280873561684446795660287384033032296799950906847403260937776150100954387137519359016541161422563912749034853810976461434124924673589590691973609407093123555801276103926148691103266767983524422953825146235371047278855205014630726490971067664255691730523520449151782575927559057608483217992067902996342120489999395761624595884450477256606912556659195321028533277541752838859580882461412580202039762899676201552096723946888694084330565897752835237798148024837740749613509088570338098909145541980965826815378404624513969695251922588596793885634664090742819459719591600427746404641987011592798732538389888098489051877975613217168705606590251167483523200070254666867697602733795541359351657717693355726309951914383069170041844911605400647572195455922889579444265671407099961486939654939494071330987174217408370224187451486545328480805771050005430244432394870597226014314447835097253390503319237109684957913791656557709788282557280393882562912909896728590570592617686666475871928246700229449762821202702166126328008048561232903185147393181480012321328498059136112700722570018180785605792404298083710903284009239010581696497179483900369013305506027005659212300176325455868967231112585679625090699102733341037140475541196542425181693794838098630052829974814779518706580580871143436797698161837726642352892628621629790105997987994704976107121847135110298302770950340189394667179745367717082316190677974402756068305498665286328125301605261683617552740190855274943801461652939111540707239988843499917260607743111273443505529089597180187083220015507463597463416777102223231051176722390993356449556718459731360299900417265148011539135788509375952107157450893480894215345463520178884645356768725931913780990698361374111970216240749049564603354925889447976636603618278686631369869654284758732787228702114741802885856599227549708196573044493484815368532317529379409894837658842201068256043302630635814357117025102274391049833085484093088293170303029641331419886580698731552487811751810640524981326739202835703261842607192171796615069597783736644382983656601609949522473618773379680235247103985584382106002511317272670725873252385692568261265408642811562147546620591632917562994652930619464219300603250659749323359155033822418005374974443420833263675589177422797427051906694461381762346690863844254023664043533585356916701689065815252131725637793327353943989980086568395513277721028761974064443130648167986280072078206163195709737782469105859713588108899390844121204304830743861680678972694899551547364371189307807097352187848816678607223205228330787555854875246897770015266230886295374152814562670016934562363917813634323698203422785755075418903451698016307484667196982572933572811703974699354203212561401420728077189373806942671654928303638428646712404986334786882369932395356795501372117544488563694941803204347281172576274455285130693707320156071208542388647650456776586804655360378366648843665755679387105010605390486853466391380407662978595127186986752173268507750529489650386648287898168602732470688147759956893577015686428001541183311435720689093544061016609274003281171878611596879366741814937450178229225965875849137967156787605470105278582562422847685977010758503531598831912490557022187475011488108919220384833250227754224394206346105102916582009975809110622541984321991261854477901214835483144396319278589427717902671532480157225171774746041042969834171854380261496655599312022956977358914815204562591973464326968444732613239446307705810143009177193730361698613877349531113573672581764764911481532691820754265915941600495246002062683444777197902432857279367379431233198278526014875642190623892403321618708383798718591160151025077141346252892955725599270845480090511090711731211537340198993625862032658742015583196254500858977185798406609594814071898240110928878427270361198538867706170935844803730096720643231003531559786211591851119845307593048848652610483703192584975284009603337211669499124670611282687348334202094597243058155587162692767708243488362195779040690630035396752174900964895113189121137748553838561954537533308030239892676161522225016824112021849494559352395549522443408130538212770011298806665256129744747333916572235155157439689962965094261432640842933502364321501003112831512264671543099886456933254095574773833117619928154575495789922802214474771322703872106335814486531204240491188925208913571877010139125679199753815358742853217330309754142553618416990817673784626925440363607023223479590031905861289144097108526886114073624581686872254953617865299362902723697832314792174912269471797525378429015138001487701328935777619289494445120767103017139795226470757318907664105841214012122530775055383049487775453724129944080673541773740597035819354426529832106948658224000417338970639974509141550261046567528055158015338448906721293383672903433174564437921312021262718207907216111851109882933145653436281603220151036664033770828718982172305609319993156758924504780328264691223806633333226536522961718697676420701025244233591410225625678267084923871120466393189355243494425696104191525396206521322639447020195958573988005094749104376879219409642183542156037311655786243016099480795075976429898804393581283686800125729154856621144118566867981028324175862947590541373687376952094529882989604268987574393442797994443026371641218798474928049870079556776957797259847552063442664927203455702794518143945182816568268887209189505599750970540292409896144111228662629504078167383411631692443909441694702262001829627319683666739866711867763939611292189858062417579624126704081833243385595535118728385755361913086273158911606780337387205578559182893498910474400579684700959552510200183929709624932682389380814939818556342336404445979648040469386242318453036653599602599657187169354004455022046512699377130438086113411184981155141664121611251032672205006310886514112900084675011395593415782338514741720118963033120134367793175020799966634355753443565003507368902512951879092089075219083266125573832172460721740878594924817451945336568227587332951864810044201023449418926049208474540265305931245257111789162085224508224937904363076166171503832131050891190672397212107062161029981275753314701724451471300542611941673572734740111540749370287484722249632295885870513696142116162826923318174588502045134567207516102781530638380462545219066372129447663285842802487953516484033053123083180403931007643040709325889117463362602176532369230851382662651564889905120248515317873941366006720824291261175683387467441505863741219529732424849112401317138065608001900123709280964528834039972748740676959650001910211880361659697077342539990410376956423902990636557069583135136749538053703438230607187173778125780095981073662146471796766947170184858732173005511383801626776271859952799244101222218816194281712488280610952312410855285975277982845879338188342530369439463994245852585210249825740953459539332725241096901820325520232391403610937113501535882931422925639404485805466718322268265334769546567691198312215106567685872374866558330446489261827192958980976895722605590492906262632350111700879368794164178074364934793814851723374720182171765161451292799289047670090783762219622540777232479814639703976409705480884360719116256126596178344811063448853241615442004975373304236476082678732699554939572989460443273264894334831955216507792923336907949850214161374512257968785916620881064877363688158246033771677678937364206162313455202281058592440535252484786325113363310144257108324026856334796127198849697379255237185574883732439058858802387047083013169370429135592200396526727331317425917755417948766473137947676419040002417855473727204030572428252919933123499717481477125717148499565478159475314511032506496600028256322471042468220820830694006190276242764529327502406278116562388197488720803335873370504768024266604424174955125733752684107685296613056457919682723078487279045748139553221687436480509103710780929642096765562548213520447080332369842142659887420216765179768320373746096614588993279213290275904509978132894180729557675076169564851509805443989578656822877338320926502982753138037136374342142691817384064334452099156616109714596652583568344033339481443102560028728701671958009667103823810610039420153654771333733733402278915332254626256310896584312581360420634361590293361348624946184912661186240796526625267845036555031898154259566329006484772468084781517841184477727610158848858750781045090787666515096706257518413784214643415381062647019271399065302696578496062736573587942371209286156915362760070743837708519330650797870581830091625869867814488529368046066802035075899700928915751365575921842574149551061197396519402335671320887097841062427583783453534025852375857716883762181667390907463722545139600855631543734365731966953861904696714660110119211115770397961510075820666170414645289605645861574608452108790781355267735708200215872499625623841203857489893164447980799491443578114012661038914930838964027756542933028181637992982698012678892141778688787901836784188896067767469769612155311082484691309704641956067079722895606685456113108559390587169982577638561742785307499512036344197309422636422464634928986866366714848604453389074594064359364476726433588547262294812423171443466948978802604324832584862444637799618317843886910977392619901406008904201398888178966874941398854815202732963179503676450820336024470839709361583628963365414284915375179896054638188044100180579292782985467022475735332382582014720310568740550995662594111309664151025534724613168889770387734938149275115762877482286455918572336750306352258523134644374905747683395645756124144142609007187105707275472932669089907995284775510007937318775481223580191741039318845086570702849372368855713235717694292808383287770528033390749780407167947146951448412415400019382801833206968421114115972102892124019746852807687593929647061012036478827578813535753436245667823155253050435985418406550729150261408671835560398899696111711642199349955583756781799065262029034733867885615787424022754812155538348281132455381914921600653777268832638295066409188940052524610000519885296603108887763389409488579577812037363844700900088090698566541215710788488049737966463831202584188115649437745425994092811947351651385428148691341484545236863626486255566060087630530592334615256522234313292311914036441219889463460756421150548980878559133364033089571428846185424211944929715960255610387683812718787991055966967499833021738788154208160917627678045910607212248978823141704081357960788872689193841640362466507872098128049451255064383090910371945051457948106894454414560289741925300995296833847067436961920188437017215031772614366197116323677810262961917722862379477637103923376304077841261622066648578270963060185249333053502453625131849619033576379457609779411170313785605093410217457634642587458040139281016103657010663180525601359337832183732966211469909951637719492105495574989294925118985999247385513110982625465000257682064972014234449757371547239545486451288099717132320363433169556280657410807934985919768242966090634989680681764636849211728552504196978481854840426657113860886400340474815026278760295960765502754427007335751857019472788676275716884534533574790659100238365861284288526374733138689301567742039045577731567983415365942548093112733121705186264352123540972877531943228039094981378863640750727734804215039695019178360116163200158682026884790737324101226415333545778455648255802115715056130311876177969842873451309419154920170008190948569122085627235281399043778764793189731272615570145979873406972874134621078487549763770899921836605113764595209987722384112851215729674364641258373890264892099161519044320862193285341181247336958806804612857615748444864768432134159843107741588422425815975849340443742434535585800424608048546330779297204181761361101655128308703114493952936659029760893654449797402259657699088303081313167495626917245742770840565427238709741975564316679876853870887248388769256579376233842423728547260091344020548612512827554991999078501655085785888864087486965172960043735290272376665090447541204478531004135139193575685126916858958075444142471158171558084515136029648892776274370405091864202432528674738200155818548857769075299612377970445074674922037278028131386172779804330177255930217464337078350372516678101140198065977386044242990226131810638340410906778315624354977401801910386760123033521337736644975120879608491740377212470344271444115740294870280635077062097774142890602596137551029175834055579714422164895625112179969665725515027545136691161676356265550722516489026424516140757135873087225864434334154942531713226491629610331898592915289124939742597005180258618467407379647635182363229852806531112450357792772712032887931945781643770252120833496691904395074958901951574578066766310639987661658073034633172138080519657825726129228799388090761713213800144516992697148682495261049652143578828096447672439675947601429380382559532426262212023537578693564869940742560641813089193029092980330504258274942717367360698499823692913291774138852639657509517832787623634594773211000341381641914032448152522402131390638920744139712690246771422737793956349420418772772014027756758238890845149255457010958568224554940927265283671688091138205468703232940849703217510137850347479605304232927142624458708462146432250445500216575262576226523407818675775679392586544473225607459455783022901292548968246016039303976838627670551854008075368192705290808039135224778283628083129738850516171786621055085999034479187125430322306909707724276330128557254176512659941799906888926916808263985253449564111851593457389516715611492935244788817990836081091435878189588464157646892129665847725737953432269149012612103963820872354398190814652178346080428487521502932830023454891299397266837264517040550035535521475630262476900192701181036320386403442182799318931919562539677849395507738822849673436619784902165465263555999660834305373096946618050467098484974062073558620697947214474214596292364428269942306954369746251695067356088701403273873682134611521933891173358641993544732756634294481104511733775404442529377230120860902351825920837224121121535307377694922740435423600239010780326840560589831427404936953339942569877710555638532171485817320268799485549372880517729485679750613136022467345124942110493900206151073844566933621383927240110021088941752352161224812873764015981943011599314149062754161063690699951531725761808698463873894014075518319649114714474723047816738004717433385206199185642760082857834185694459715449550282180742591079431815090145861184387442982267707346434137291624530373564169591204114127057811317214148609220672386096416008758079217884882944519474651455396574706257254488000375763868471767070391307256944315533132601774466956626692135693618683244759219748340818443220804764512803307452524731667093498528022726000699211206856885221390868320622594797676038409877068316731937731300852395842410575646439777471767838346089084163515950805879059180742313646225908385804601707608845530286566567066755132928466715061943290903948346891169410025551432564152339374596876161105557740305126161061352336093416244594651040083460403386127621342304514748795645856663087687372925716768646597399101097328754247274671263364516276832465740137834332073688336685550671088588420735690063709627578689654461384464250974533890153168246410520930054930792735104095111508873648312660591605920121799443622770387062022423896266065189337131601215188187421519840516119382931764761349888606597005999077840536466261091501199637986520794034129711791219298439887021278572869872052240880008648210723103990666205366886432734313381378741519370056360949840202708760409672548800535845731368585087519944201535506059237797482247559240169682535492026556618652136463427970207760429147293535921981046710178811473154510532717759494532728212481349578180372917279705000080054444973357957194944343016396093535516115019339892832884243909505733666706673299689971225475016068592757086953642399786837859885914786025523994512873367344116241113752318811346719397195489133635972280798773731518499548061584720575008543884657145859156931534932975893124995519717319856374946957615230910949046134730950871809089940875545382375832702685607262276298886349007550397214636271735038713968899605947472815863954847987727834880275868615440791053097567240011055197165454034346203143610651447279539123866474185929308435944884140385020029278226072609624641005667345114915613008177097258801862333748488134836739158387235174647694446628926617673964209205080790246593934496156589196577826863853642749207054978859039281228518047668215340023876542037548915732675465914738813579516687795369574618340539880502736619324488823483074677373225971731737825872197935985614825726748645081272120918314043637777152694965733026594064113956958807655087370744972606709833918517971136857372791996560103790589044515997433636715752411322110484740010019079461662997431837092400473653226572614488253923319686270355527107100422059512876146210691748419312239381552212054555738253061958071522273137210651819502664170158443826426391727138237842578662936397175674230176196582482436365334399995484934133311190101572710025304705642494018836812918113291465997797231560338233016284307569771358397564367906786635889592251784186123036106736261388025227479377940889489050609038306045789085260220865641877382003114592031404061270389283130991837637009993277866642688785315065444978815103719822557300378653771142729543881131191503949629819444707916899043233661419458999761622766628867905142942285210481686741219101566627585063447491827457095920788356672468687252164412511517853672940698941253086686549380668697926585455447348464219430070543981106336991611188650443851378828637364090797447601944249155206921952733898771047275072736591295030725077415250773493930529309896906084564821906909028609579746608788158576881036951073605411282301457594112506330670552355525493741119468441116614234695368651767942417568813959503136999751188782608152660344240426113454240510338459620504640227029259456518590181941621911224683659658194597951580989602274187259342489578084485008602615090012451412311482048802747545080806464579445807059835977696265775584142143576988974821080449188273824351931785512466359628213894664293020010875010211179356821235431157691612250848192261519262189009697265202413727901948437993872458853483561501901247354809112746523356036252892310514009499384035822048654439321009649900731698074832561021978351490092346363127218895847487732871479013471867068011745706232549842709685825638704780433275522109590471178047848211655798902613540272246117458819185732836848609438882560284978958160772928154052276810968705618423008683441591097043404747601660407621375512443170605810021267544959497709612500163550508251033098506609829151152306806088295505843782244614172744453945786851630673334979742598641435667746766548166558793493228246346187038476244571215397882913181946720772428881054478154295068017656122103131679639224852820828792685291885369226691962852444434047904195186843788536745798826720441763890282477795701082510713874601855753900620852432938343188730731767477955801431875693533514050297020964726851873770134430723523779190848089277564688283127432106673417085461416354822296109420052473533748354091782149848825826369340732171045182686751970821206280958412345420935468880778560350725223203897905134089530134231651563094658250452393237793753858644906347644518916582359360545450364748162504410988859367359469716083312522094013119347893019000262822111819307642984346780435889864616552963531046662594715684063885914826892472152188696398249042600940930012294696112193891218802437262697588727736868000046868372308183444941600982360191193506887099455073892809576636288760833991094038961756278199004628923393674082059042598189691725421197471618502708533712069732117049038972738190379116998631229843490514601084837745135473750082660676311955780119313633730897585635057112788753865849162025404750608701229170402146727351319877928835178448449387733430775226225672233499042946182892743223320685824118569336019585242396690359748394344359726008270262103327602321664533996993695829531578124810942321484330570507427028486283100868253911198728079975808825908733576081064502630244551777208044751579912947843111977657786952097641848698422987787508409416316738079120345356925117299202037456372401458063023968569946234138907692376695682498068146889388254469664702490898835409112092570461849066597870580342170053449368390008670854313657008279375327285777244461418335335137237847987794832423836106207385997074851466860449114322778813591752913611061190074075837683142200334020139843101823941493476634345323893695948291360020556021801981511537471799466780025312150573708523661636623274221916562557584415939835834758910049567987022688387079360131218323833936471433831259658083486066071538206557500636060703556706637980532538148500528772276746072235360372910985456234411692396444229357024965527076838771684892722257449848499873723387432210955837515638472184914666193589255979694637653630870839472561910766360726974110279486382279339800838872864235265141886748623585199982763808719678022203799872556401480929114122227152487291066894921680858530174417632711961576453779106172827087237976946925774133674509959918512499891661924433610524314042820603218955971326620070980109505182162479404253714723848614722602440542332771227704370996298743951355688020514371445162637416451339789599821296582611933410045255878447300805693068878995261687244642919138521689184465409552582646435876830656305326197145595336040485278357011004824136226356011721494237493015101347650190175344284988436076680520996401545341732481636400636170486860923556376834125128085045895409503231620811681783036576068612706866365456714500424246025915638929845941989856231061035411261271564469301245634968004192264804243163524435989087983225638547268944363040004937359544628335601498487027428562210711596000361769460650707833456273855021022376593907176748766615945984409389394304436446321830056411197434023971834131537512788339828657149029652472375939559522288025041281506430354112779242047554426206273716956340505444320009935425169904346884413994096701973748837793472402267409625726335884078414039276848213186861261937410664866937088577187912797561354900680518310754257274516381885850531272018229964638773484099491500915595794517599169224142488689928905986067764803941978867475308907450526950039015641571943077922270254006979839453618625249812140424425725020654519945183679253594688717422592218658177988157103637231214511180303726619291540521569994858182004450552425841532138758145460370106436531539775319322215840304809066225343093738417678302958651070679423080392387802530004281378084267056930737866527970998043569805881154125242577251010035660921571961835314603001762987367173946353292151181852252949146011788963595161882314260679226391162344446093124265403657887736861255498856768220360311065166418219505963980036616622447344046324859855202541923140447903626738636224355992491125240186001339587319597798748588536398416808190896185806361846315375808019079963190733614339264366112480113856227521293480834074897679239789059874776692911156221804139530096021191609958138580827125338582099828266009215139385744482741635323123579873760991825997331286366458636706466912149199873742898112213468365481328848746852834970196466072110638759585630361488622235399378870054203649767637470447765315843219603933741303339843745421175331721825183207404909588087671246666521100590615294944864259690402269843543572227017436248510275447410568750788381301472829256002219161610942370441869624979579275228487991425553992159954840813957090575836808875225555569882501326992913048236965662555900818073464143535738678254219400222218062741156371493405491343165807236712051199636598659399529859899131338029707451342225371006821172775723240540456903810963004856303078538165762734102799943135345941608550249840776010682122321141817710737265366126957866399435174391878122629121526304551114823217263969791043717497692147464963057012286696609309891228415738115263507259981411421234918314076665827911920976213335507800136254524312527371626745281961912033864692672562966317565223477239853810671646986511776626386840402521348348158955152017891513593630203521492314315845951398171713611580875191527153446382629801506799346450481847360101311987451332249762588500056212966985959231224876578172583486928332776768171322681828037856395384519611191845549027460980897263221883378234763777512995930077953615840285201532428784758653693277146023316457882215666960634310906290137330029681409102247090966015227763545942682107973219494721723648109930335144238605009462561109500642497111909225956550808626656043611577271190895092178221959030787841019292214222716309374368423050745519322635048008731341298412197104712406697594374852115362308930688795638674945746188056828561939356018302617878659593066228794766713311482253995303876492079958448276625153037383557669779124076597427225603292293544385334426092107788414858954933679133731559730131136176915331600908747265746801726193431199604876290582328811999174654696071596757448239277606292883213993331225269754450323102995225193892277103481462732353505618282970523751249200236570660126923225128320107802693627494082216633751318823243487950509370341257657341027558386620859076993129220749856778273319329703829984119961878253047077234868877101079027582360168769622837125495338670886727030025984967117673664283916936439381151346271783550394305538770145930941408474513159177440114046806177547532143694161582005280395014291533293783973996441847026473826751716377946929861638183469713406612440839159354386917298315519977959825477120384440436625774377649790541311612780237763629912674927859432206282038794314974799568393548207126499825077885969602650981292296684566502087042684917551718510664503284772172293828846886830932499269662307646467481427972845183749225048225196304832491499334890412323041058297454657747566632676542715881962978358565407168997670193432590458576480072546577449016305426703878560353906199867182535792047541246646102980605938361412587901773786801339640152714595828636672192969740686793792433759620467010241810879175579246928210428209236857527176944270104796949357937677612348294915783971158509194526801199583675516459485106106469675869730883215634303680554112055356868919274165661955532155582664763002442228972698752118506777976141432749972973961249306524311773591571727794084868024473968709557551173323283447841903748189700761512190018894954006557351559024828169417090444495834106674589216992015398848967542900058363226968453728794939481226541259084866658999156778277046247758387075803105309895148001945208206900742738364972879792629430292297244736870662171671018818056485541887925653965852503658646360728821107800487409371951459427923646958679153084007838385615852572015452986663634449397560095567009871652091872708937519845226701985650961366587291830998748827065309031338190502467961407779082955598450383929492695258574334290509637397615299632411783756693438044431196146334668688745402642554072691127153371020602613606125651196526675593228031121117169112406571626626169862438621097275209480040591503075724253007557595540277807206621580972561556608679497197250169282857946638559033161177203984542452645186592795965529249201048486748999901533104373061017230539905212111780359596116334750413025933866666880580872347820755171775549964243121440399752691790207664970474819624844147724067147747738829990307754991079030678519834922458901313113864661869096160289786106322030663368265840492210021996677182894578681703443910386076084599554837779477148238286093123517206720086446209439351979784557244871066392502697888475764943698157084988706341596703354309233020668648498328361379484197855223086995518280879680832863575418204896007717109079208132831187969622788866018091717946603484667770256778500071426783864689355170799155908164285968992786666745314764000583731714420534747070458731402906304037978372564131862675846761439264391355506818116572505031590777589877515435501614067755684315791770560386963244783717633973786959378085873474927226094499595441886771718053166611662191949674384604535958112402169141678484698914416456404838387990184980766789141505394593927915964465725567828448348444129486952764379812276046423558273004933912686786706105107673213339904374009513937009015262849253488563873989760238410271680821494026607937872263378951969848749692301952912809161937133481967488629266138714002946574327223628539634002423571629820519276648425112164153575854217294997713329774032396959106190573715380820992494581908059249292328699512361956399897772278251852313544146838813257985877539837527338949375591439369512975990369202438028658730989407216802038237812440841092939508195389547723993062890724285565112371094456065080480100906840673615366680811872935089592781136246391872148932857524202852095622873642793330607978244269851258741060285036108158555661768573328693048156765644143771713871875880838552713071676954879188317743402038370050113765538569440201106935664578113048870163096350800301745164509035460603850302508225138555294399084308296733237461010899429161809390075793454902768107598235806206633638195195382923291751359931478833077083219926556868163540519078622144714436746132813516463366697390186255670081417596188324096506553344460108398352894318928972519614258339469423773624920322589499758691255392501567942606414812615141419721529239945917973769213854555764982307497094947187949547765812845330589569279982700644517021726890098035881227595090193208368192710654856008690365677303654306447770587283467963009930243845716759776792787236940424361519378831056571754306967265409521423462804463266618829757605451778821169176924186300214091618163900003968724011816736253926495445036815949268581785252219599000546636352236022129440735874676546995473320343032584219697090921319724613027887922069297491264737022367981558666326020688310036082083325537544045136417108162707117586680321295869603547695528271361647518909052144595550191274609331881501099408309906923826293695485869446859652714504946435281567218637686801249739527872841797828606923953331359804566124273492319352510958024734473401209383937733983300088777691608935942233000502966333600044636560764408443158908419459499966333977664849497197086037165710068757005016488605276183749369157266993339403365711561010995984798043599742382484423614529815280871986188433238156656412409863698719431088341355261778299488083718273752453011952982143971071842976964773148287398590043789143573510485571652385721832676655128990200599468706497097143567703687108110399753788281834441453575747755709955637454006415916913729316623971381444589323716885520565708450602815352297436840916793619805641775294311728845918071129921395476574142726156626839319493708932123717745261855925802257356181503856405338447051324805586941833888106218153268074733848345482895686147107329884986852464712312097269163229462663858637380407308925100475624075669030204618319907372340083192882529998908270986423144928553160539501952441220500931249025959799020029790667730225924355206007135455724558363066602435620863147184610350521478504350240511809941547531899198981798663273919708259098897614300971550866085662439813363453906593533091200478943631918786699716321457918152586515339804002343677548975615380083488719860859378342585741757511946048130655388258306298402102723291138982123527212512535981731645004318416049017581807083522715616024819247320606242434317900533153155779217952978840192105366208380393592474037988895228246690900397200570589646421627764734701309929486356193839796970879923242599425255801020149066357953118573065747158601109480640181065978387957522389297194949762103653013728244810398874899962228458282732631048471966860354013285878529020546090648133755935836687397797888092323331895934488350432536466053377685019579748532716286660720281423142407293549929410868918816184363527908361231181904627516629749274604208722531993985856924325713324774136448699321317867904924987307119184550218284828498879127908954408888225056055995971861042225180524296257657841523202877648067535623233430287466884098600346715529616518917721931563648962504943613518512110696744708539980414447278514822488993874491265615620123334604997692920633654575748908384140096728202464015525929890619765846650888864266954949001959768534347593560096051351482355402563604888462408831067663822001441896949142969949559893921162722566825812265162851872046167760046679804402349187035103307684612200500932951183242095064038707926656262108730324930031610703594321211532896194057283989715768152557750582013014785966648952317653517971513976400195088135655217107378044982454979929002780349370211317835796896609209405871614083238866731351671838634301311072854376924670505536243810006715766762276506599542487786846095765373550235678192654363309600909478015232576794578369404935987643079711041783762571205773429010132560797273824444631071025781202402571702598919965488204748474595969651829880406753874460662140711373351537381381733166720571240701306505716970892324270306034473019853195528911485317434437250055147262371247430187597080472830630904245379213843892921477908100638965230398052007545606609955974244456349134956010163388052238245541543327006197297922587857078791941632613849728466560367904466354935754708802363907928240857790353816591030443520481206013874518239856059712536654888781375184240876624975867262433969522034052867874432251817735056710289418210093043890693295337049935295857668798572632243722632856598309110672906722338297099003903533443556000290745670235463286610379146040390093243817681200883061034568737040784428834553494000042627092735637477754820509886448522306986328284722785309278425985725673544438400022929635968067783805211254628899562632099486524968664626509898966222623796840303056660091536504399439133548239522218016487569833445482791739087878339296261540564200733332096076238805666765572405001964859853356792403478828302143592260870505225920544545833161369489329289981634996706613556053266683443717084594233865892983680023381187667657028498758711004557759724721777008444285059911262614883774692543607123169747409608155774082557933377604000750130557483063058336544590117468990135830564736936097572433455280752790566728181700090488129855567700630921056254361034545754297733825779949732929438720490219846110272492427682408829696071722690311997028143751204465758269882751527295125843776682601882179594984455464712267784022267461987169925089801892566642144244770015731427360327033317610417162125427199404531651608376435915436159528614343647302211701544635626448455101852376814374325299996993259020344516367564447836925569403385508534958472624252778417087382756227586033440876104277879198616685025728585116099478524248779773543335394130511609107640935642756956746655121769853050381675364725824874790587648690509416529883876794081895508254353240274799046406918533330872350765072362646267666350430841468042065912932338630720835297637321514573505181963829023687771283883546262299564374902450020015393118673101112095619265105371559203230983321677554296787827966739689316105769182308936278580391260758987326304025507922428417058547939310486853626562331664128882496331933094340534565267641172936734596792758281188555352214262374789994086179766844916843202327641557344701239295113450007933007846582046919258425272715683047256239558226001473668333360836673757697313199536118710977686734252307799901682161421409364678540737499977243801307947968318071060460643667588150308478566284565619040956212049373767348913375510654630782217477733299274221705248631637529323279479027787287745665219630333404534021143523669212674950948509775727194217660806110556020744421350572859076021232065510911551830594100250138105830403721225891641127056604426888230694200970807522562510446970119564359150450202299963928269769392648297570743112905377307711266116467824381039763311711193237655092889607588308340029459378360138147006850699174621403431278827133210869092025259121234354778728439905751481574453040561000995810029022215339886237647723949917902651676716764473114672263159755750499054389196814582781603202956316235378000461630757995746267874726438452281183835809795198272658239804852539650668192952879583540677028319890785028754535338918523784029876874925194026965838949982595974411782560223814383463664466779640345459744764490580236001548282524105137068123767623840468312710602124404826726125091612659265378893675068554362120448023077156001061823638005885166898966495339946629779111412198677519732928053651053568413746395707943087597951194202889358629171519310302108659093443600572483408412488294690718276652303156141035035781124924056763082304061070824171958301144150535060870250988453639819124388828804022225097978793641198829023199485410669860698328378251286872197380155600177382529840281729988355179572656196819350264776664347688632249281605842840267333923908477520882925095094480026124930662490858961108943341881760925831648006309614705815395192166525733232242583001228326754948582541711102205727436991615788392471753805877649839886049293849525665423530316443049361941401873319397295752471392055520041102080566958300225751246765202723274527288668022758045864085575943389450697879153439900894404904309206100788484130269882226569662432444921785503818124622543028042393808398896898958460258951316066566726987114022598502773384986644980330084079825983077010495635767054476369042277280748270905946851814360065871893042280760757778911520752850273840438881520055946431315387334805153954196576223856425085752832130415484501043012332575544552023395220560793150037980778818203126088766369965133196576724202685738127873010844082665981146785748058675893978817391124537937650330587073382211818782814354839052911410890389314992492630813592080102763411054584965906872387334160679486035344982112370212960912319684590159242169548591848252426815625819718351119196010004061532450800192818171816912427494413988058609095692826928162414285071856934187520547441104873810792472740327963744475310176510893119721869412915619223003454897099302779582246857057862730608809633192066252504099368732475143348070231591877609167919733222844514657361421617521422384508744918860217384027006614493236557063211571536815767055048009760782614322867171466450770851045256495590002940613660226379891000571260058940430133879124131904697394291083059946800477836435874774289131441599506802415220105992410256884772230794763839308795345555023769574287309709191982413487603851963602387086839584759215688528025657551742787660272988712370470969365061056243283599862529266378802780064873781843536100748280703938277612254404785318883663438916297450513345501467649651134823151033855037479810146808826210758308368035816244452023473653305860295037200409668972179019015540775778420791949634968584108466913638133387869134259030972906546082671507811569332462123498128122647758570262424826339475738205232737078104503697588794446335904944481226914252543987820623482177663394671533171733103342083925913464789835904656238782634607558062386779896914053305083134154687559654267604302963700648438851639211597746652962187703401545455901729075724011720140478808417732924062035692732717489637123188508755655693679992100077745535010611452179356289983279030807658444387123103173974385723238275834049245568636099437673914641421963982503078669645596337802086608777253119069269639716865270102839102674236815218028615664185890769455500853406760201049800642951314570346315505836957150643458475370005271102950775418056679291184341868399282960710126318065196518083681105330783884383096848295499929083571659060341612677782535279385073521519428904409352661359286374188106213660813449762672045040621259974680543108722379880034116279028019275015622009510341012369636825461014975390716027989261518068746248294350487030344825828676753130697197853166513160253494003655562524699124176580046178853323113925710150060351759811030091628264572484828754625895962391306121801363506379716579355920543995828446537257223809227103146316793084270184841740908287090607953484036127632745787896279980275287071278122002886980405307203241977808095325529302997265366630635608338972036075954374762201178331004194763122617752644302219801092582917337549435239905893494985003971190722472921773856292248943261187731765508501212518103840844083829614214931341252262135118819139704070481194878677011712289537989701941128376270190285316521093029526123362105623671033391165375560717034802721459580446498873255799085974556027357457332371630748008758928811286192666356507448382435119924838922536442911851438544599155463646079981398869643329548187257771337499040404826346793496433697063161631287172674024484409010080832076619825778629533429628803512045911578773195357863504016771275685310188895957192913061270719597624851142498103926286779013851150875013071729316508677758993478097006414176248346385826412863741957479003222756273300695510481835250776877233293320825646947581544130629082817783137282695648928317771218959492529073649149080439444219160218446720860062153555019848103713653974145509658972414488963113528524379263649720042510286434271129739349213028460840882297533914082897362603184704574018439674042199716838526277384511798967783083498338248607036724962372565760808397663718718739633826812323819791234868579705547232540651597391138725998437573784788533039143799030174578351419509885166942485611418354682982444152177288024300821279149700362663840252686587255307504901797186290674262722788706558443019426128755668021182360199944180572935176331951113839858031977975300672120309977352979824938989883485702658552822279404783812074014382838153875189751398532784595688330953959995851987101344767278384951572957535731664288168662241819139201941577551480335535795270802277179518205132456577792741271248111710958204780766127813124955509436256655635558614612327047504273113794354850378632944989031955522829664650174892670055811748500603161475380585062643142475124350464830822057275837066593996405318647804929820385197725137971333254268035787589610648940999408696781391811111519044006226592505570015411473100524657310815495750967316499356425866365212658575847250516034267565421413563247475182629729496364669256320898959875974386645374123728895011497154951276193789425166598021164031090612198019531285174096034745414519869748381115602508197238938069635180173586441768942819938717748937306958381970169862937865770189811416568782139325099529853137393396257485910591832825523896844536294882606597903542419678412827372889730194226970432696410375860614108679974310999266454862740830254055289763690012749005189920569349709949866444555137516612693091668367196152234238834517784494003687805653107677476257372445998777892354357210669422306757598947222813825961161903411979667426840101849298678770095994405567626874540714051880571478623550773494215806796416198863144850344630221221081201306522374326088588000786915335089023220548914742190842146484362521289987085617722137079368561587059981393571426764266379620912410835610793190659073682030985174728549665982317241174800289424606280093674364665791728536960588245237723213584329767662120177646994429164755245240860329562574323827284247161376385075795530165430979968154498262728944381944965530991432375038251577219949188822944197284959857382244888077161769404748890314320993422355465322119493119505202691833474815376557786693764531039031208903643189751405137530952397293484942109485981208022597059948246696696985759585270461986826240019950562366137128462923035397514689194351895278870274508525879154578125436394960359771729445516291736219249955314121189698139915835572071071695003446451665765015648661712264149240952747421971797174410447314296087587828784522045960402709229926071423846961989810144775076877931703454685067866385291877293281682881958464000394879993438813344273040349912669533721700385576318091108534627551969089782286451732508584259550007640625759858110089650521620143663929731940769902009315403971446694046669717380469633180685087791496433760245168587385150353490709426886901048806553656352859345207977741840022662207531388174715756843245940693169188944024600200619431276283244310683619008579422793128727147601568594931559123816701728550375845155590210347302329962289736340375598066967004497656966578205825627486361456448951713046222625382275282724092035701783580201794413377959018037172458156647863721835940756809158382009587514818752214065057415928796899562170626612167373628520787414536862382209185082012154264165839506001358253747494503470470841507533288044682903265710653520617204839974705960518558876491624697023532639179749693507351905392879724220123531613409769170617015114435601411418158560102516207304984622790999743896119787838541244744973630518690606486873780821387947057991039971899298681448198190381018096448085851543966736178770144940477142602773373152168536278307686975610738002761376947522354865164738058732843340936753786498514851145042426573749426988653539762596880061699754432203640810355405107101252935575785820149795776241482168230876995935725555727221535688222932179018356517882639918182113030411617152030348917922979943159767529610879521829914668323365678254724047453033517041905468262477868420960887168146435310111809178930025386527532969979212904897042559817457835930678059845907750120991416002078329360629288423001729951772402033722934184928940300141690988472010194070208021890511045992118495549857602628560273617791533222195400324052884536518908146603096343014469797892305409552384502223120500130757753321667650329601209198218822874068110005100240513438764461082145699066362808009162753760812387455439608270100205763977781693286568855412030831675260094349490694416217259139157536297788876245447870433505179616560670359431169087517135461894740130124286554546401090349285242307863473410953146595212532579581892950797817857601859326054541747341635229000462745627216406070309015179133370920889483242920392087077844422767351702553421088904530770816698260392949051273819731234087369455693213569572795061278737664039983612867217065900271376953716346904096595356050857951567394506007871414691885400510470912257118919056868773296818040534204647534192839387368941296150933122523944902414506801148602865441358569446015039354235708492963534139386454377130879125670272577156067879243596147260696800621621800195145801581043602920180707867871566360111538149314447387682160544770778047283497596397216444633397996476250834795106416750501051470154199408121560724354317808093549499285704988992425516781246062581576857257633931086795039501115796459433492391147176356103207525577142507111979435495676830948551519526867411678235783885073377123364558095051060697320328558740890336623942705314774294383074662040847040683075474329384263731779532007126434624421289759787165004085875771271160841198030580158001204422921718295687752369219984008306136682212251843811497587728979401736043846383530377492571347129080711174029963923127646776429451898729898722825871848020769750531561044059456760917123297853176970335470643554872207183519236333328557995188969509155906406499806006765352815180288284071905935998948931275290616398203820364535417817077804934187131691126496609206842071228813306266787187644110839976578110218555735947010424403702234884625210011252667496505247872460770083953440986543465636106825018712570859939623069173915966069057960901968348660721841116798065964528552680160780747775859760739078292779866185784093845334128697158762190277232775489892362598772703704647614397688085527884166587456655651626507884413713019084691055372551446677698583569970842374262723521815489812500273982442466090325838944597456079715994634959124402684149396565828535701141729317107756676168024018306057114612631187191273820402644543889064431236025256376850421140616052629160712318334836196508428129731996082040739347055971276361329587737911525893699949831343361521464828060400096949921450075631099548664991300871054121893795238026552573853366132569968874998068660969637151234683726900728949864135839186188545978536663601053808116419963556017679224961513001467173746650536518100462909361981621983557231890213826369632941289257056938310497832066962198515795196109180031386012950957604181297728678189064628782113757407772434158374621459020521285707322943863146114644842264518585232912927210140650021137807987664091416930062508345028231792311465720835651882325462713278124234749872544306133370827018616219405374301802506315104861905833713858236857056171219755951668354549589234302625575403929614391862963654725043098782981438833723104540535695693220913027479168753458214618536841647284411907187901270129547516163030328558029736510057021209405550225380619085077752359338367773713586045685691419926003509676150223787826773647087981703014732720827227182223597373509642651133386640792215778607293805053894939797970489008707271548610926147072696032028680406942658496207196167628359516693234886345607986211526969578397034068887467292302648731163967775582812608640931227122427276979993411428520092293811282363120936684189353595459656552923395551559846933256335634883430285533538448741121957310649348305107210079474728403644374817756193821525956977047739929373781823621734071934695403075797536463032343837188144169297436802260731902022460191244054114286386491072382984392158675978043137382656988444916928531053017762417495973970703617890596910154243581770099597446329101736357029421592738241863416871260142460234106644955558341906616260771275763626672901658228771667870400033686816611098589539651556386455221471221911220836830343856297548813316995086466453323915761636937456387039217719826608514591792749102472907263528906424503206185784579403021512930041072214102254425683992639466756867061940427800124560431543536710635771546255317570426114633703601283335159103864604422690094097375922169519993164828834016736204888116775344942494081488844804919007846418548058451689663125385470281331185245365935200206405711609882179370121117421469249591024166088838009502862402049721023245494134035429489991056300277622505428796599186329087291075667486168434369603429226781829579303198794619983003456678810098300498514592783428480631525425161710638755212534927581477148554558757078079991313600485975050292219709068973613326087522625137891650506381817316984001052339755890726289192923518834215552286895526199553704689493013336075758577408740160664838723714910754123276852223383138369298326467107817398494790231788630723702486879281286118832527966726130022418883304758102824573809742139185957762916344230711906799951588624697781917960292406777548320878318260667586913627267746538886882068247862535586821199648906544192105488451862632880838904537471912977335796544068570838268004727906549250039168698819205035221127692505829845112373484090935596996604637435131788339873072349096764756242317174474257767459560720551658436561026835430175162204508099238981385063322570221403642918364213224814417076251699703386787191434839837197219644805513666982255189911551688235975988991498705336990203774915396195027268494070879226293653034216305049249479072155585089902799430371880402162054218824031265819279378682585048997409679959319255314161407026778985252638208147107491565906777601883789839814531364794514907271618405910203256269404640393446568350361947858417328423004253456593561772873487907304904920766439291357647245969141067632930711281338378108585177394480923636407394874157529121401362491046837127175171666812756315883343466379679669658948585787065780327711967461188927353866141653203919037346456247535077752736840813968990607749328629953162394879098090347798236612191110239066668954372290789668933012796331290964365787711570263807420499692151732709948676017373498148559537787181995749144785250039902437529100516744277087894598112715061163141691301737459458151951062342838922866607681796123456033383445444367741193705148514808612634677169005283013884861654411297746930954067448258051538643215511834680835659128722617359871112599842176650139338689372392320651676293350535566116924511388954907703997044065073295864699192864218274558486755657341288092068255292856189226768361558042518956951139918245852745433052319529008911152735653066449079271031437826509461419134920778613518078656928848209429409729937387445283571813422042997984233602005150752246974556568924712953778251854006066747001885029425058174723575964671119705857453243605886428781142057758649732415222067912494465143179335276456220208569614678906018519751272692477103646485828677977600950589978999575962304808116568366323328015764702138032842561705348571406838124725731753605391888862532611320695334446814744032536042097314276486979403823406217076686317242825530033178954957292978037550169739540397733055669402430647307770029069621657634391559740686681695014165564665006868528375684669121600134087120629316752263745234397704323158195350224853468679618252518330210840952069631812966392279014185332016493795845423334446658359004061888905366503810479829570880546453909740968166052720257712398093948604363985751926440494676195590795590246440045824339010341053470187926316406198072011182333660169135673298232322821123538377303977246183544929241005956953355963242709192442775130093227295180404413953440286008066354353820278250382158944570878688985653219828726298859905368166062415246646658734286442360191894225964280480712082470019607888801275503620859406852460911790041804352321363749026345072538220830521795376267507320235523676483200675505890998856983747302823024995855153268160127579540848260825544671448212043525445745454684033981169167918177762592530438293495606052817474309618556057706088729916793705943723296339240914659748098429991160245267668096717718092922619132673370359876303732587347660491627793909232463602713427153052788222720551975744624754264736059349563192750576827606961975588503966876477238876399154410974204276764994541787221970078176432070284387551897996231694724433560128707551080316894110626517086097503089698985860517017274803800415352837928284606197643739605649547654472388337223316304308325341541602886805144428000888388818424697784602779555207807981372568388002652679447810763399721038191493423116055988423051661772065777574204476720642103333098722233473679841468118564013530870740552936224754782902581143562380629465901085451212685856780437311232356259215987882688566704065717154110584104613238350830686763067477580510005487470751011264109173402175205556885999722436194339129504291025657761109276485571006743035473388994828815478234320343854534632781869365159129160169074713589290549019296270673532109454320547125519603740359914891390211222454460047873078566903375470126595656490563875189487603887844446788483176977709468101237871452809282275622296982343001654064014533991558974641499767655740779297543086298670490266440129220552509352307924351103077347080730927667167470715213517104023290860649920118308689538764033296988254414258666283046423451554460650214682685200431168968677669249288045634473176148727324088579187077656336064084812573658214633475021204076298881726323983895940139623013010094608961599920075296213624201078861040019597013801376077273646911684402640507161767102200349751529740929246493102898107364734073771304084789867460064385174209660922338080566287165769435166498834974202190153087523831447942662085266666878840391739240528802869516362453248618545906168168956445331153657838998102664497336749034283115683888071217563991771337528444753017126686243257506285626720447836036590986833472141554944862342797072577676830821741925879017126696719549862365268644167471829401397797334786182756159130167305012419451935828569235828446150123088324971619689527787134402028553638962186122176697033220309305479707197726217556117823877847550755262000696405140700773525067106973117331175207476437138110422565233446433671059130243312623380863672905706289363056770696367619521987977336823526726665923878297442483381083650912591140578204577923589548862547062691787246190221774356035563793287847556999905274666053883950052891215861273346318531742348595714628186278242512744344447487547241180109151103674367300382964337377252110320838229805412842712747057696225649593963884931852881953461470341067020076057877731990903614310313252426359919337069324822270470346948988250859160541954563350076453979413208811139681625125733867693585740853662374170356086708233004058521909042029351399287755463440161218296234446764002742502761614371925943569839734666726044881848022424111358534580078885621594332307627682069132943792461946265084051475376808090276732137515597726802950851527907826316692358135388401998823223749527775602396894287225924140880485807219279593847889913177561802832820051731887698825834797218478955545139080952003453856605651790571497659259098685852235652837198141719837109721475892098768593681919203451569363610182554539177644362391144305585769478154996131746190369722285324815942669489418296277719214243515597705775314783072264502478433903446313556280395312173790253715313074762158779877373041653561663715195926604134611758108270607523217246383533957855178879675677428384710445463482690417387714247327134459145934435284296648312448405910978823306055735898127264801211383754739323204626914273207115163452897035591270172026029838949192379624684001918555471647323090720910994541230177932428140804855092794981147647785777399761123046422627945570605533316460636458645283954024942437125874628974623551669546960306644001038287348967403424453977098343182302237317410065383558758662831259328923529316551220984439023734897925370710217720552826602198153936467588802100519496180703052983798825281743316150690735602886418137703441303612952283962894271511890375460404869762148565365461917500200300364887026105998024054040747369833268239677743285088311978729022057754815620884506534678806354710623949698824663740688190382258749206276285939126358858361815336128748397800489598243923995703665969666931674987617648268509035526624714960024221472407143956953193442793534479401565370596858846134564717076970767945216152395757347189623494604213627864501673620236003682162555318860335705886649030872319204717317322498390117282937512003840048208999769054404862997655942664496818270680916830386191140588318832833993743935975743093229804125361928794416674595917638628755539078160100843483904772348547084437113960888583800569621122922766483235691915774535396181784806426171536347590836355735621934851031364611340183982223666939333434062200781095816686336793487744232381660212751059689591211924059197262206128879854352419479784717009934891628268469559949134925492408620921547695122462949254298564621464221405591705148156603713850744978291985544497522481226620652922167907605650860588770527438223781133566779109287904296069219640534613054978289876564264316261229396748738803377626270396397741257029864647403212103811048296049114690895373817407591868734891321689248962797630441833494620124372188693666334334446617592779444626828825113310900047246574631676209659548604990285400117943890079924223161680676243931861655416897221782221031165943534277397186207262713932196137883630601733354254959458829756047856810504381464287836135054730757221590379683242322192992637066973177563974194418934678019598057972530103471627929288532893683476850698902139786210571100516093786973604667949472432540282145848019164381698007798919250900408582617908403549840189027872882191680313238708535535126991576675736639171039594958802605325721581660571188509658640689912669194880408137275683731794290484074542628121103905715969840333024391557088200746862081427744810733131275122564821130428221408848458991091393700686945985179028624486804768492667875724811557671841818179827632753370271470533250779257858906136879239231879225449859972632863513844315364737571023113863910879568281757108171344081849280857301652405677180114418501505503780465322915008781547363275038063708791708889229383571595902467851311839608122636661220791919790375114703336353622185412881949236039395721093839135265521166207428768646685370093569599824366249202575371673583526821568195311694101801871056196138974444652815413678177269470046119116700964453623132767341893437640592923357311196481892224415556386561526457559511532995996801728600910831926783996298287299375632714474110096834197283383620532540096653739666582558982714468250385487021001084354276638378456354107568403397543272145419212675655259963360343829321120413712459157900815043489090013969073993932062319472243380260690572529498749820790641359827925759342425731661056249289308160369192513170269576302334422219432132582547156388489241257691491428800384153458301899856747797869209982643935731241583936003879340430163923988936462722022297774916749706167243344242668078057596748917530275442569689824748386589119483415579582695367757972588449661414046424498957945820661389435987701919045107341277577529224567078432451536218906612451789407966300947663635694081240118849058775374725939127214068525688455865866491960660531186337681089995555425398547649980027700247588456260250969654754866724018131425553449896482414256395375094704292327479485555142324696099569083315768241578541949489627479652299360630513625717556939348599071525338940591078336962414676322240805408229324756250713725152957459806979562763150076263650090876176399673350178015667712444702789690120530001491080215152631932335552827059581363480350872039230402243158229380882341357038703867874723267948004410143333970842123985116970491094118223508613074282815178716291701338703154645943146951848227648187188918922176144817518964193013061536332798795046928553967596871774335161423860164748225266467755524319955062616335262726919527576053628809716215331127172221272264481134515744229655600702482240809080102954622790951125439100632505234671572218588339986949630606755277962975647892916712825491303039371359022906514823017592037390545610369504757081439795654462648449973824158511105128896261966502121785040050455978629039794962028880657791228096735416876810647096370220624253378859480280287034278467781489543410445097223914378221003891205539679725710539095138672680495550306262486161022046489502562930935477689960938196914811034561876493039915122415525447024136586078178746848709734357323519415605948903948362772638488885605361028319186427989885792082785313062706326946295485895045701789246668254648177042122416539245463228027724311904670468414064179239766679672799843574307557497557900939821833022646728506408720316062746648499330272689973712058839829261873745281185123746808901192329227772270769916438292996762862375712824009080270824199345079803378712435459122726737159208413297762305081043380491896715173348061916605846496366732336460067245001748967865168060308016826882078309914654967049538220974779634573654565966994449113512417936451046422522889974857220442712429864163173528115699224293438388223010238005995608899042264830684424815767054686662155303500071270699671813953489162865988339209532121200690238278909010069468077917998601337828021474846181498046172442934413525087275343799349894117607148107470000743682349870228415673490765630514349737552425463309913134335780657871869546305243934274975881771229967816334604800630783689380645677268633860396289139722144037344844534141166898365137736498515609448010365581157727209417134723454757590864616643233284770703309478346561955925553060494151332380609298434416896999947164254190066351341462766611873910188137813290878451737400780931190080885263189445260082337702482044450865918110158189452117225781345033279706844651031842602916268709443418188691032110778794489411399593779552638591961265458134292880753709279736649524670702180462661456406392851238881524183915724547666827635404118322949496901318614003129248305283399068000656142164986703904846497613709594854416151856314786043739350371208823075000507352971711712658480789777770358888828361701236180230531675745556715168373382955330086909752036673993764782869948212276301326889041060609291140283484099686004562386557300121126133654942848355573820398185027662194136338798386729928472677554271444498473114680111305080461638403675595868764386135443665950854250519903981308524314638618330544737909473523532433150871664117504439396223039434874211884992634315415316018785870039028339812270575238799549066484783098050890485416456253356501220159378258968036259511597024683714090527353283023487899590453564329041857245808569008876519041405698563845233860188848135979550104147366314228848095727188035199409308395444286597193977570682388614044767580787061386751469121928160609725336644992407516594010260802603208118457216161462381020091367326411194910581935722128879643153358788627362924429701630900092923061580329757627874258219432405584862225789631436840218357622242555687101154009883343417997245526110645513969766210749541401870292594194561888988910373629980220432175154603026638397659063143922629680784043205314232492192206020466598440986495863421214522760531483653326699403260294788306857409206108452533293110004186310043162453498868954414107728297773113953922898432175482803364703896750763635371592896270358837098000969974929485039730986274983887434396955040271387509544823719479973604565406572748126846473657415742205880062588687697808820985333072616216499522984467884470157831386306141729562403977918923097576888553851206521823987279074266959438413567900543717013296800590919889984990528392574978035475161811838846136964243157795297924873263397704785626385850167782615364210689250413319989180815509716329178591578174395027337668052517695928623841704038921669335856363227721582826576831919406317806824292233189516669234578734176642087203194271639211179593951380949009075476919892878659957486468592833176601521917054684354258409796792300749189382003866890617690595508238948383072833145039826685173603807183839084755584454249201984209396853717356390422754242348479239010266454093281485811426452229517940745452916934008852616786743099043761700834150470539723382955244861098635113563369800909328067828919329993104551539522235728734103477800020592775617342215533363961082346201824431077533151881854748941691758228203877503741512791311112428166902534711485902252726829332548510733557204402615140731153036981918183502175065273581653321788594771380647867858095537475273443671823183224829134761109926473203415588702517531099224778051938217713846344307789154413409779271063649877785907677400810102616974195859060740584103108736509784432781659785458795186385166163586251912284876576947773525517727027625748221911027977785414521614011243673353521207806488799108027521352063739061921558238425273592912904861165872320902545637563640850406263048051150482446193111794156594817264679213202098348718164506217888304582913403863577972117384540868344217242494749603436622802412660765609677101600716641504139157724110606738794284314125392893742539891686118829974801961861910867926385262055079307783675663603463900581117678864882372885054038547180072940001146165222478902769569230412455318851938123929397178003761469812383092047862121557600018969615319972620183279917588022274804938936280927542939698628305531007956883488962759603876050678349372134725851506837486709534798887676542695253292673802285454544346029708543840641469503172014733995944481377819744511836947606061527726118438232321661579318369254210697921902324407747519761960137399101979848396638984882735609744803668621630292268232084872625530486042472804621058666649382644922682478415470381457911988958972014300475030351091849887015038107212119017331758410970926306489709638759224875218360548004084016503219067039972384399540877240772595793451214780654905750028550392052021295173274586119360103794918314107428353846599092285342462829553858035099017904793740709901775845712146585722049237979671069912608334626635347613137889692280018236624327993419980139343174319491259381814953572043973390710821105166276043808490938782085025412218774560778322015137724089635990548237923902424969293983796692728364956145221240339473848766567367893057841334628265087782528378197088262574182614000770542263013487943509612762539133610972056271985010374604654480998295257034184898609628686690822207810919404734494494878784497009054187218248228653013149116721198214427643826119733240757890147733621476298856676675055963249937023279851278639112409225848778393061549744628199927741214175280371385095494092204865649731800047408436005195938143050790908466356259200140380816784941366873222567054858932383015732743418023833306536562994498958481584717135405122693257271390142770791845283953498274258950301969994298189470704570934337971230638508875135014942950373579743909497477711617863403290812594911277556287770910727011388075646972960091429089515874847264015882821872272364888461729724133464227762955666780592689491323514938237273592852604604118718979040870201083250704791897518988476170437466607013255558404184513840196464769648795150622069579260857566586969711654981309028678645174790289568555249665178410506712556030966903436277278254134571279311209127635193900639116240325323042540401754644048544066057088951214334922244817994310864116891704582408785714697357809039193234933147639489521085397141449566844868642383008116678235459438250421553776066402210682995408877486410203444275036827216004266439990527022252804715612766086735356709885626226490142619204790349542114665470746093795626209199075157923511968271971883083196623749600967086638350147807350757557454949121461071835691644847578114492616040511461926171466346827727905380436739706441588581720677759913066257189340048791120449832869259245722698605526194042829622664849374900627810791697939090764809486788670568244184266981541119957188638754528353748933015796611265739489542847544216714163225853609252014553985046595108263415147283751663234473227147615630279150326640614534183001998740790620442825294675136263822843143784194354354006217081656705366076239335657776337067928825580057297090819250537886363431555002278834644764926731159179249861622746713780559012193680277841913134900467974448264523342772979308505709964218145433446540212861900669704788868971176925350544811373166400837481200753609318417532245581112071609825881272942901962049426328050315805935677205737682202538692527089934846125851354806229674260394784398114757830656040861498110408105328198132358185334898122730248688715604434167505842427016693468160659001562034816065527973972247218123404832610543487998620446812405429462509313863065820585245422655553396872497842515906770191843178522873676494481472224528350348103981991624364476240986757229112237254136886376089547846654776740511503910911385185900687182692981136267118973232395391668247009161109858542489352182578933947550970981984717748611968277699925914177392277180462757923793328380504711274868237312168589867347202356445407200441578891429788733817206621693859967760753508308484758576245316082651695110303798411337366347479828292032761788030786666032992543508033701485880228833925441790974656538130586820534283979756193161353221851136820724607684709601951743789944000090338773829356447902735062697209680654305564520685600488824222940010852399523614869957707210829091220491515973462886863174597197238748222917962290288226089340391346088882344645518285271452333464849393555079759268309348865800690634464958471862424407724862100875409824162081371634925433028478182730427026962803043460431799886439156934217654164972762375788388536291733826652387280517474303103499073183724298782036874592980130125643878200668957588615142392840450271458213813469207840464788141946668641801225966290197134490215683323250834392149645269107634998437265810595877709583166806458271573729569667328517386634411159181145872331640920527574773920905056883374667020197242675749113458938997215749110129109003949015848038296001849715378003188836729523960249307175596386697702813202155690449833563519177328899021336695347534821709656471153941965546545258301547287137054953680168496630610986495654852411387480578351014030870010221025137109040843159742071237126952383541183453166552634646174410911595114977901053352475950868725056227131259445388390989944184438710080954084362759907590025934607893394233877800719106433057807458756287483370664912595735409286122778597554641215862085501157005803304809763903293887966453647112224184171158631396274730227149225611339925451006494232977054410716645254180365896442775713907238705965774582020971039892155481463666712370566389576732401097829596319286811318758552215620575643179802000206576410707519180245520652640260620652257333078199394347567523901813804554304179802330048217533662790990597881880660088938572797556979001774982323534292432895515314099440377653143393133538390588986399001865151456917445741170417142811554231379540159153693785941231055631615644954943544270703713629401084941219862726983969380259289246308919955668833231177025266761231401092354277517963264694056346036286179271949511193681918310124045372695113304026313081394501051023248619685559417893383122033261338894580383422840541324112955734971336356146119991908843951835846066445445764622505023608578348235829650013031257440027177410497321988335511613673502988103382113926036396959220679073999267800797083565112957329338619851153954252145662455565660316685122557214794291690887566555690508389766467783910937669589201675729096477533137950898871490398647065204059933184471760678482267427352027671590298376747232853469145739913337759473028174640695804763024691810032726009632838924460331036191832206275705221531146331948762939178173494394587461046000967057246682434870643416969838325387408209864061883167422655124292939281995702181551388116618384607380305645897815536413185531447081028969057453456227991508839632667126940880199175532515102437526877604020637063835417108751800096351805341195329713504083854075437718210841927445161809755730464484263240451786043491820892303102776911191739711813282532968416389199831727195664134534185082470071634088393302712814394961558482360508822357040560046601987667877105778415242355163279998974124673515816524850612570067765618144276153976380748736267798762606904325715283824467904861994666797009289415710218249572609197141986739979209192214241379071135422341851615498015150026234529294827191489047416234050717370922776072412217142050784790948528255785429849836519146638125836651532989383442351738130948528030485223971926215006995623774999370027373808490237884955218027044395967251155178124429677197927248806964703332898803710838560914762456901139902566254001341851494822701256529072401591725133960021995775017826168136424618431729149788174202850294550919298775049303159380449671023441755259489229598647353216027412452594643381335960499462838115981078149993359031308199395111914119842395088905822986594317058774913953806027641080210687952508111471977028245335099376427524994745429364866382707171195225693350979234253142630152752946606226118849210252822959281383332870802249276614570950505004051609167385736704792140753538552050543519931108608100817681211322066676575663097403394833706436139949620081324876214559862444777399868953649766850147465003332828770189339626712563440907640128791787104175799241016291538855553871690774892688025005371123424086169754974718028089521090016044524419550497316278203247323511299320262817700025831103734067445818394361900173969650439838933623316645436740404531354958353332643550926436849023082493320250867698398864492768955950084979652091553225389162624299027188407037853710236895599916574814426179599171601062910067988394197919846167450775125625185422642924822090727881670913738525986487947930182632375738729941000616278288433440800041001758214001272856644268439252698922961246387785211856871968840666940784039740224856205017398277224013659929247645478941758838874421394725850125581700533786824744171031947587052170775823033454252288112427554852200447038608602598483414416845427867506855782161697083409379151689858360046766460320808535132016919186136031567965769524190997566834427314999409362522465752563759329022414140505971869746377284668594944877063024399861706138209156500468378510800110065209311380889941191559674721038840837776356162868763778560593665934160247095903776434719150762426798428344276782647919854515992738728487215899999296814519475314001176945083111233800386206426612439528792090109593630979521894453561736328759503454346916238333534918921439153134621963198491133462465906619452003221572120195527383012072664137924675416520156308359247251707737957395710466898676025144969500141613527789736073618648217833542846214311282575962995517413855172155613592052556819724188604545053147439574245560564492026964607515741731876143698960708033347811325534405831787246695041563008293800173718937976078446019935526802413555887183793333664934332863096538437912120383631788821933351635326232351382622016682947490736945467785547701871734999943545144672435814231994062220241732764134840828702935524442163137812156752536985665528926607887726921335484085238778077296796976546266029635565024014315450804297402481285327026091318656434553953124166930361818017979084993776505758754033972234553370143918151954101013415532977388962050769582105849888982645482905186006469927063058690568786963958366593614557845089196587036868005672622040844214082589601160077402918649147371782229632203841220012698048331611235993014633737865885530432862257694530587938396813578942736724441322721319568401892722649946201672782084072668928940998048555381509588203736310666334160465857056815439543639780834842661558828782879358015392118247566422827827989040804257770314384596755914455545458250694999701892400253650820391045960469417816416351921931160338298400559935482171093022102838093427573180589968242481227332130419835615558404497063207233475976294510428515186108415697554512524596917881949177610423006631090754593942169859412483998514844611778275192234345436217118929932090159002078847338696805293803578191390665888643425490857721694948539947324174326961310624927704000630374442845906919453854748594832044430089593646491923137822884566397234146427810957824039577798781998450915393308910122440378402927333397006250592308364094537393326703814546410474534558410557756854558387815077387967283485754149230905226782749212393081992966129736914953494493579242994412528041495770810970465228091319746209551990208574424444788328787955749081014417593611309078142744754340312465179361915374206998589046514030892390411652611399162296912548538084162339922806324425463364186010612794577137785054120227144848344264329355541064958343835167962056040397208711175008038627799973849041422218699975371317123133765209713701802324744241778863144199740430608116156302022750465188994227176896731151531845508644014396240683796563689477018061097668392223220142088233822348896386857063777402427889280668849665587611244158752212621988513727486743786851443498526915101327121007421249682863029792129665289461731108459234777532868852119476162565023946941599344056120686700486415748171736337549492578926998185691455018323507785859186011258748866759139057068661606846054195173004105470412827674894887708074580587204217395260714064456334888627161034690864372916601772694787375107020889458925133711653195466546309954496566725462471727032600331553073439261855528512169776260338340099838496250454632277860060140207757881840160264586684365159947717841116535722680135314817002726514517490265875099488354467814925783853271909279610925874729267568566044677162001639421918463121277926383552796437668593656744609231105625648259406636882904868189691471228532703952037858936641074904261338652470334675134689214298398545697299801589076911397058087133787669151069662055023516571387157515715345418077185894369441237073704856885351252128013874565876384876284906451615398750645232382123388054037253446851127982953143066087307534227590508283955832376364458594275480337001040304060942710769879974798633570018402168996404851190299368569565062483609848865540476186138699812045801374688287127456115457522281197303728914223398381863530812513219298833847737861495800715458813340246926744376700733095698830263263759577423148071348772882961570515249996548796600832396972936806388103325483822843246961695681680873017815788387581747032535194781360448308395143155491997504588821352787949765834874481328111634218546576477373805071241721364933232708193824314551769618322717484250217540157708826368533805191560554978584137983454562324588731925137567223382572824825708794040636891002492378478714029284509665242004514968088680956795096462665454230687403646042654932571854143357378441770142139754949974499785763509738851244205438600685373716044729688950070295853562558309242626770929689401267776688294334728813748527372665033473907111518538920343839166041636510296623566856704090282755438233836208886263101924042784828504806874585307133795106457513311614969590322878697111771837748073917111785737157724070697003865507477232426029425335974816884870837976703029064228818616435374784701637230892186226591431240783399187211527787195291735197246054548324916005699240883559319022169068745161295167781624715643390038392766326654329136475659686284618890053673739941507450485855459321646852944534930268078502558694886600682991058486015172464765524805510101943389259806425069234058503330664106203323210190241540815496326515754380540386430166029916605059774686184626314053414041965481990072828963507323579004157719545651200050486609621498815715477149314246106491778833072928132709952482264087736053001858783502348228555754847533053526582196197127298990779899375538068757954656458024492508038699237842365583545849921573044961900190862531549768773159504757201810262351982550307332745140728688838724802607069525708606432098435526142202363339085658674995310004672430459416616515275994882469958417902717044413703249004177460407811895651258059987071313273370593160068965312705767530014696213190925704332400626963825837160611193266101398661930089893038737526482204180550649005794335984122561919290699145972068094773278637584628822528921871876370336169674250335024745944578221481172292041016390713315686066637984339652703946025226848516076278599688724904678269679997160395358317104126817963845009056033365754163562737689506269135290100999006696828302180905612865941752664871494244099892342938561936345771907425146966885617199955688242897024550444474705262736199775827508575207030729954890794000768395424991687398960223438866311759972676577126772499151143036527077679244259206949271375376514094011131681895296947918728033861599165133452801539320253577068887938034112211281601755096851837921610857184687448831383063878326516461240525336985264016291603510380149196906477420147845849277851687793220088744741088935539794587656797207800500008144248488030711830377469479844913540362639190154045563102847147833636367690141558170330903176966116168396520250959850131250881035710376519479467555033824439956492246305699962500140456138913103119974898582112218408328907573924308003438033832655736259560219666269608297761075166047616244148370168023737330455992916903878123921714350480425600528082237815001604222545107359294834780918806774686699839012667618622488335689298223091865546229836097923517602384803359876766598638076026211248625779242525942786307482452830491801218808111312614515871540871889758194345842632101752159558844003343924045658712143787117349897401079324564385819547356072137173015204680229891782160395865418822167596572565018437299294108410710530462744968711658576623333352426088897481699699366097700184640720367536999618094107980536092737885603787773720688367548608991545758218595257529622175050256835663226263679673307980442841626805953145287530169710874820551910360137980724920676430373417405654897804241792594028616940932271437822038297426603010977664130846644820530072578191713000094024253432269293733594443271361177475413576482251260465075036246088393026889751573872743920359783777705671503396860066140274737644771341334498546791701512632842021194604273692026877948783549701488014255210335036665297492274083630641341532798738858498459596823942215678046222340281855020103345471605382390750465878471155634110609780799487966147734716552139568720942546674679159262472624973010069848975530837990492865447277966804584397445867524531922667905775087029526439242938425909732386628658255612603101074792201513883795817570797945454458816069662196342137516190119240421790493266173768615767529090563211168396056019477531203405281884948122522738993838020651524395640558531845089259916647741071000111978483194361486320892039163276993328065388571631993320518365025717828955160271069485724381377614610976783411477663032677962874627623225850125385103030540293674152539218775082923706632640898577478251856382373474093426812100496374164686605912983767474604354189434653772068697601502167687402034796060632272109875959339175315391507271131447362428398755261383795332456569896523685466908962821265047714695919962177919731895580646968526246532219196050475084611766212692309246545084296248376494552741337427381112590336702666605449987926712353976219390681845044514156967340289960894176432255790661035879687955113554869344805898179056579637552979877846819104145703509116444152374459755404923047175604245979833621359814145800382421963991529049371109705817358154077642768077664883054291441642268392010842968566068846583086524281355629529912149335206656876856508015283493893542455730745925147826117296184016048918068276454736799388437510903614567684312199453155969021069226356469500389668193299111442848862708444230680273052384633151966833233702226745591837709763987751900834362242381660660506524511042450114716551475944153029973744776719911533455713469752056377954082317337682089128659504741135558733124088901716353773017486982619523326608493853238507793575920140688468445937836684564612372396264185816166861977500954667158677441795737088310514747291808441615334265464794513557257111670569869201273563181331887048962936124262729078608289525418020537053051633740845372284965171814123252185485744009328290466258427574077437606043985509423309333948041380808869421337380800894577154306889852824788349296491728222249114802646679516158049450946925003629804791121779446504354984571333843421000538012073993986902561318642839721970411278902354893434858896804688110051135605739645853180642612578570904533612395859948758820267026373311175545241138674378373662315898719989080881485214392071857736048513675965493266681169912385051296853050898063421740902820365989504847578931728463500258463940281017587783128607523372958119503243699423214005320594856694654008164732465322803160409767372413580705530273704076823138634902304898619671639739651870263299655556459095718016829575017876036027894775238222526425437624181208707763171188105153177514102514913545242170464627380930531513759309506909746780818851809613112310134878839023992393000327194399074448485593445685354619892050347507232005472639977024380651479186721897114002741837605283182703418731215679666579368140620840078870810873089794743177842163859631989281112973738866675543093111521582352602152470940719158329589612203429743175191964166908959777008031472697088908252537310304445763454401845002616263221870092927906587096827518001796332097763103888153264063535169308714603836793435696437426047378900703391686761830305198301397933753224172443020314973051434317405569292936549076335525855597081463357225241858852272094622188767171242323351255983632147801549453888268710717624193724017277505329777329942198350801638672616345772810327938993923978882028898780951490907614069899898044488307924567771191804009355936648720430170416844106175756736756789480779943848772423506232750805912696440168452276105784233761979957429839038963319037678888407399816455032709902557294166525465733863544364925660342899690463250927934671654034753565287391644137091381201852479999633073511372519427453499047099876616805946200989631009498471826737530750306072425253883267057050834944775771657618638281387828426494254159339986352636827616107500372764279692107436200997740388142279201729737507366604117191727880382830807802294044665825849618341131076267707904278791695723395465866608279090357659711896777885550871769170656956842323623412166723507037330763498491026834005882441464317067860166666166184629861369281940035494436122052123558626253299940980718244166120670377784818564986051586456759148396104047244227052069792276583852501440384939883690824936661684215525014495918040481547859864517154270685267260838426926522456046729348598169131431962557781666334194306428108668516000600055536289973419239249349631755549759108422488305280185356121289088206218570338827409891115229863187096132046169808170698379620068405384271709352469301325425255409483402044111005637346573592655644796711774635410077134458803752066490062818737356423902905433334926994183396827486244109523762740907054339003853025827797069525341080226551248711836007316582491164254084538118036735433780035388082844429906661305968757606658107090928394491658299170789421173925318169120560566982197619595670503924776935942492713747092414244293460369030907938360045280126333642017283291639948494142510304514308245937240422600816821477849792068100643802034814867591447396146056774821797348019945452723197491169290244233846886174712798398537829650946584202918622506532719651912656909205765234718600644229284513938820117234896272591047183729386649548804105513354846592293500636233039818373162307702066811458146949008610392569606019518435224033455681971198119492890586437744006116317896435734355922126548602299955398945468564133282457009168283437425720216254661204264255605050876717114384222927848342202608851780656593592127572747689209825107797039412705262577970974521240011366218994435333293234423568723379757872852637299754961203628151746177388812368836234024922305823656183660871718837339165989855421830869638529894368516017927706707373078628922687943121577788147139085301763675086104992627417021247024366492160482759223054898422974062003215308352524971372132876535525835427293661392162896645020712141908226753135057881472938698722817965915279411947329607662573950674427174625842300545134202165264223085120889955163311821705661096372426064669921776307171271519787853270433798510196539639632050824647809674004685043878760830218126475018836323646758952618295815605133041471585523895305695816418853113923104332868378549818232247051440252744365131505572672211488478769764262424690642968603087239735500089882572072646277020989026031496658664586251863039672802442799018272364771229575879428286277770467776759399458025829531152926226453530501501592720209063396542834352397909865493341811036873113453245571024436552125246850419170256144178521581157627553183895095213933952831153939305196677372701152086663809150581373670132712781006439120270662433065296371011991165789000728006676954527498783709595577871444854485055944090548803335547048761338963859471118627626564948162021660651456491788481352468645410258534763176669410149961511242885480169805779669510077991442992990520555945736196480454448781936866976111458141430911971646613488687381548569619154334449824159657730599806251921236449339626721891632490092059642519195801080336447644763085134317117110094135886460261177665033578060491147485067974672202900954728870879143470303788552294679029910423250081079276443315266826418074817213065873825209957426819426163564051181810339826684221138293996281026267695899107092760753417463881377741567147057271480459466216727312826490862549997876519931943266846082726370095102805029276888309371884621874387285635915518785179018363935913524522089056823451547729751039152849003866175920839789464120146546789323889461620865074928766521581155413852700703604876846491654927123423765605066412351137347624645676693322385874368725383287752015824847707730370709804649313605096512854455788036545178561439758500597159782715010618143098250061709151659600401647458711270995863395358088225709700593438720539150184513397046507736255133385135183289758062976598039752719896606770577007149586529553740139816925243540516387876069157836458609437459026766114400350163326882720573535114894654913264667037016885846876974488366396381993326217932936748918862941642775275839289090892534498300803559331771100490438434084028719710859253510478971289401977493440053387052728112737568409756596858165547463639630452562289458148871487318867573549499849146997783926797143469938390708981894496597107802021828420181442461682625728751532675670169979392172689336561504323994046599208191486514417224699094800286074270417600889364036665511920105715615261610734865256925640927501047165708201112245068974261302094164443731964563033406225992696628356061256672437716266357799923576779532197817935546285928890798934462065693075533324869990492758159659802805346200249767206191131512810397796817579561095493265106773321699946932558077120816119137199544170342891520658724813879690682332950817911935233781891934375427331591173463949508249761387872534267796296268388469057876913447122568756787080078804783718394764771928935523478586482321841133957090255121108534998605630035079642345339893297835187566259969972154137659673656653386521186527955061071106322192765658706574173732140129313735411823944832290161854888022167953691618329673409298659440775770041985485156646330112905845651561552659636535403193415952136956863733116529108753177037959319375426382285040177641471690854732309819766044681353795770438848583094637030812199505080381767288298647877129681303860224928639224844484020160493505374085403318497690769241769539450100652520186803906670470822598395517517889183448846403529043341959033975430762672845690891208870330599190389956425781169494560250867966644750747887034954143567607490383331647646733019478282082007991860014541175122941033628397785937357639411005405211275036976781344438176578271566089199257719039055583754123033928849421250228556895425837427995105127303218135053192759539171488974037730107172037348684551436619611789024305296371281379780579918311698927807615200447152790716016455587217851460692041287957083818241330707658209608630127225838342119977729608615873303409771649605116248466775456675583053460651125122544847408944897225426203983265063140929411811861518451609744137454822901924894565909521905667532477288757882771045457148963659152678882812912009960209628502220804589159352764403754783180381050099872970033139393166143609499075180191151220111191288576880591151219845067831036873253366422059375616232549463811004705679155240153660341749575510093384815818956777390356791957074380930477303596520201763481115394021754941730577773858243404064183476821764221912695302161454996760047891314982959797863119362651811867517088988453002620780716731097230227840120774086771870929120201941730949981998069710195328510597302501360154555895449738010373786694803727951018777660835150719377644219028107128257712623312477946291752359304194919213524620952694545832298302905483715132910009087235407416332566404502779158898329211381867276443935129238840656650733929787659299563205142334436527469670659937016541389361833829638371804078857611556336771393834696582604995819835628013557933066015174316798087878293731567356657705552748995328447460553972144919444778927657299975026976673853886712573150617152788508024363657905386854898927192354282230187532788327674756071300154958049256828284830587654572310810488181993301706075941354124268785080336312066515832701003408346777140049576545308774336344660226837611453512204732320280499700687774854494990704280395616437203710238992086756990158888607752257273193963776368588270257263823776505507974257146254718888824527199442315458753017836019510090051850388725744537067788821268194582031385574877765738348112720422915367762526473060143325035501778905603057753955259565363369397522349155823044299847726190605846307998191494019305169106996776272383250276296350077680541626233522533375526903958350439787441338310276492559557565464429573237355564247110471260155814362589981939302710532464814889657441692264449254411301549819359079767679387507159587012196150023835222841932851129954514883168364212273036248750153327302145534580657625358366471597770166411860799103159719637472034238303382284617642654596794040978871806361283624592065032737625355370943029916348221481908350508394305526289916067617537661364581810227223603666085805240516826546280103457058938424160239146388549624752545107738250967500998523195249603235038329824737607064992956220153604207607571586764214360426801284254163587521476138411737577039948524876111003038763692612680708986114663152016722606515052969692036695274706114393297313669890187823140753728852141452294023868432871421084891132533304097715964671402067807750489369223524048106764168916571707378482823096164360023990083165760648092243699423630212119751128536534340882671936824806383791737252598973187419991580937599020221495027469415503634273100068665241420016198466052025001784456325684425545194588030729799896466827090677271009941836518690007323838420640077836673927209648803706327982102292423796679594078061918091627408000415756530256935125055144027948238927936985081507961707110463246722262415073841737246645040745766661340881357960818129856047541587736100622643787013429012809619511929396197523308642487747999548883591155703910380365065367114211047362362382933981721109774886183195802680173215388165319731090449617505927107414049114324752352911759477963138304781294638513024242012870982944475185329908260886237773921705203398042537492920530122788096633485527558491392617537399292106206422710649144220094555939176940130940330743464419862153033000166969510394498944079214187301404158857704746814064711120994778259862543876358733448101581129447354083800628158387653998213454820625108458712672576321305148790466742207515706350029867616079215502758718826658649029824490027907976746898435875757420043426776993210918642008497914410779482925106118146055008908268543057989169184462035728464189902890231640945207547563411554587071419051315476288550938724128212864688486641247370158564983127532121703759959617439569509458453853958689323330024286099357455826716851516286966379002686456337221329386686605258933582030167168225221954894629856190843453717747661211693968171754931691127783901171966139136774275076954435732696553405566278784189458580622749632298261048169070310697844816125922852383749826078246778626133958476733566219783221122862290045458135063550250124032486548600768381655982454861645932048018519598329292874044662806710583141295717911588135477239684155977659417652443538161301606989644124096437139627130397839126123992161996731352637624304997971675779623485152533907551084130575971276184321298293149707694800960613082259516377904913509271087284158701029931676461178736878298115505031462430661470556834892200637520582075460592235412764394722186493056083338089724929621174284961257226961381384109829554233436244955310003132710981401127846593199703433172275442150779100802036810810872548651058221150037364064590177412657646555892523521029124341153894863572324094036548144420291668204052028917420498865468275254293673207151554366817764793346416253960526387323867503556805368606723671798538655535992688211213058106383939886279774185145121246173916619602216645345729404338740648788340170996506324691192808440611612120468658964536841438360404667189523926720575303766331170337002798643004926826821534946207137890352093386683051263888443433338528934989626102175970357749354048199365471282041976053031176035979387372716932179029123443648176239646382051076592020884423474070289142229602494487720568204219936603847381097966137045419679116988446008198031740475155409523710068959904831431387239904822764275219605779182651007246085307712296847419147624982712921125138553049587085507451583878831442396061654442583099685297830725665794280733927193101737891007219268454141811735022020322474740918876813675243171361369155140885765207337366262702145726974113508131049592474854665554908447480774267906977235056602478895846419413564439068248535070753616208557300228164075262637591595331529306568106925887871863108709122517023148946768261047085788933067253346979256615856755702737172885072352294400296115984547891803010511944350485886552849469911200165759239835802421483793877028495264602611603584456028101249212682357591565626421006562619814615526469990855760426760893722343099986697974107250950887427465578140417919742697753095132485333516402472933774824546369540669243270254421021781341015739435537454202419731079348776675222251703656907900174701845295842620230406548809577426626011043220827131471451123510702326230324836099022262637511329958139485438349642664000062703740093036198826391670614460627976501510684763224706871138886773105050339150761888554211740554118631550182433956094889449593906740663500622910348492709231833774223006792747260098989689219730489959736273515474916840719152798346487287785362466477868085236565152919148998291358786917105268840593843082691885906131041753507590108778071247370768875821254379320571488928290478444579264221522323995378407837811892388243782985305305836162233492677471665041092028869336043540694335046448510513847720970084180123780032003647183406916759510046895008028219752516266216009160286799892386840929095246902852879969685915528595208587058907888461061469315616523748700007765104546634368216345734609023233505169547027752893812390098207212603204833625957717101216542643803877195630093582083528577457257996270907560208575164504551850129315586307706768118793640398307091459254949338532815141034755295451011044563726522501288902139934624485362673459318702140615265351252006677274342260654914979723110680256568852389136987212796970279383245910760240833213031447911441073009414217419344168141321022792113310625848280205235623840781683139422303950262401556708590202731045041097341053237194707572695553281292232137573041901117018057650974807471202657916316223223901890048487153211987162504016179187526563548310627520550895178507564996006440731474287931453514908202289350822526937328761765085869344449084797731570509141864421678966050627129611481856614708367686155544002628247977425603813178335634909145988229996174810664872124889457323352943642013702701778459592880215907765138543490944069626496181648900179639587911159058807197060227055284471354474385593334009753068001072198579803295553379190780795998717182655539768573995781914373872466136920876358273387570532139406266958768483557921193313493796943454352788624287022061505759199486395120731491687366194549095554096265282070053762674142183937353421311691466346275953439661879278722615388162747901722339825830890371038135798018617948084120829909361722013218723416865747331911156916437309120362001612341884095329101943999417729607088275560598928578920388906964590203488196975964638456571435988485266887558688930623267770458115143226298928979686675982722443984839505069967602884015441316141611706775374845443426691686188067041095508659524794295960000218771319792153249327544794780569024155318590179702144318636339431723139538865454724415638066825788067173455078421469984806350163428128504637212372913666051639398627092520512703681933540642862562162748088736140924523282215709669427838086378203439914846740478181676640563107564954690078248602930911824783582184498799822610334757308239067282904545742163756047297923369630871162171416823283773025758215666380148109825932493197440566312088229785693031109070824754688266825809826798729128897966775013951641189479648606926724878062143375618123514329391088088022919104182748406069607041117378061903932059623660574278062896290580398575387254037437146705551150719804590133407865934545644680154470711102892158647661162596126101723179768449503798624617148682305508900722890404297448331778119565861541126313228055610334127283376887940124750881318312487787123944386200603070396592264891923975921637552078201041640731209898338161295530412632174499314003608258844509359801385625375744626554621514939081847248387341494599061423537409527341935857109956501166403156547462908327860860852519159108285105251899565429902828800073377986111777555509832638600418832800449047042419333680398911170194811653509200574974035576675966419907378719811238056017816545957915029563308643921867604204722081037542590446398875715355253768304364977406151779066966069128819135892341509901025415360303546629689985371119665054374438565348445776172607786047380423585412149360741971810571527152623511483886895035174999307736576863420747916044632140452241325219570692989054621655241426393896257716513336163012870772885188303603813354933716526722424765516784747020046094060986155112934138877045064544781125215794488614740705557325102529746146654679271790035911540508917796788111842722879965646269543818025962177938943323962909325442843189773052860796184808324784503840524619817431994877108830015336458869845576630031365947031995737845144720780037164735493912556557934183855929340013393297110819596372072688634243345387580444805282063732492439611869626674598277134643201387418525843543611825850940672759616910688848572438366253236992830055966918464404129148183092719215611117454712418355509024460553802900253144474081833066652590838930474996944749037679003238660695349354738761696654617771168663669422541391796353562163187994967072451250075296558630829865889533805189055205706544588980690627867652507663603857911389801982693055431798174838684716138832746494574716762281318519913632227928348248835349839994582583900242105403736169387270199580901597108012876234690476210591065310195600618657687095767977648072802816826759050445460370177996795340149189341510070665646772477861723747207069122794664271999940305937778623259931190130476083963556225950450096357677699214015135604871070293017358459988933178819894614960399146252313110844038688673524009975333394883434387154702049666841286752174970597375341062725363037645435437964121836465421494017592673374777219126477239443830874817041796722335998037300920095961083085064853975966704881494981443387715416897348368140800674500863049056888460223169821764076098328984490463581898798663697308118983041252146248699790296309841800464175881685291179544388966091770157068364104261227071837217328635412923982519179880969282540214406318043081447578641703619393775717930528673074012179451232114050071394684113263169377388160262699341037932964638924314850569617612233355528294863772648064658545341402683977051934811144066237716430512388300289158794343876056200382871255771320211481106104684908197651307939347428537831199503923446044878877326318356953302099879870383031098919352853245018354990343565706702105488387347575218538113657442729935809130181202743903768002704126247915133447716076647094832844087083184347671008236195999749764677493076673124839135182762712299273601165357835079197032782845573099251832643219951686010786425867761572399581001170354234665079834243241870781705992963957023554372492910378873066731158004155907877927182609151807732587637119889047819751339384655985838905555996949848922578549578078756607782692228182564756986192796490915771092674799588522172520082866014337880029599139297871420889418474710592686722076968876309997511751018523528869921399270793816553257831547754617153228686249039187008511415248670801077323934162928756537765616485490222151360574842527940201887901017414763157182467206601728258110561657334682994588430552233216805119613780749997844938930025336669292943027817797276386127033455063772173309403689255359600454592407812490580399492256450131817104510452431051394850294356451593589295800587604611381481571055891292336261725747433098372749494168058883309391114439683361452287376968632810464478643496552204458538757119433575063445829413772573783473440784952125692683130713842347140884437212003899228068777092327260396146788690844119948271863145281977781035353983485622610683027529166702453632588041435840335505057216100108927654156133228897226931014836122922249086030867852034529946875626564881832895321939408487757544802534836053897167707364437488088117419429822593455816961880136346728722477475397495753487317218564300741426551229824601923577069797323646059180211193472440802377602785773964633884404403352146336750136299439972171714244455655341506897196729177237597926311035071074590651045096915764443352771798793741944998872655329935301230619715314039545837672723542008575717990286210194712023664199338556785947049680786474183162231525064477195106519321243312561826684417665980383693638359908235661346751587520908331073263434071369358861148738987684215408352033634227726152339020110238087892082072496140196026441588471036078467504752469660429427419691417509390227544911402535249105567692422776498986157553875936778791348660970444445915095441142632678724211449862572847983366061203988541475841499514903905978053740666147253088512688263276407333699840379641205668000437188803475224181092843303403151092824869249467158904495944042836123266508205681682776189590598727469017518266714331605894495459161606782981354863501009270241752750568659743098020987590268594971075688407229504676190801610508681799613512392560434362612553842426959550071426108032601544431455613988983809675197833301511638283816192350491415278669510034955387593296324936162480314079427958079802029144331435453691691540039190066535021647139460885515229701655743039516247907666530042981635317178927835650264181592345069833613647797611215397156650159261654633377667652319656784354232435179466294404045793411548227731110443082585805453282585905265699681326723734547194308146308020701073435156005186621431619145123921193825244638291001216185017630149507979673549286994970748068336225624381082105679149020554432444173429000689558367859825620922423694152081268139139357721242950012287534733905700248160154492335080553283311370471653269531321992033069834069180616123233220106663112208200460180857833002759988848271588671005996534871005750857427423543838737572242885125699500441623152348836409343358217471908324102682948650416113070292481619288519266400475001496113209703865030901035098705203818340188904256945219564526609628315150626232677779250096559458398210842375969011697428997385097133351998324399472439618243764512677853743079762605124814411709520217015485304115932735816072587294381958495680535779217485700308350483464060449605407061025010673396296004175284584006844835290697072869778645059248630252567412415476102414186048724404022878836091281959547752670628934619416166757683993419119368068454709400030399996602538334205075714006284629264916731515246347248455877633846401333423516023052069011711634221232339430437117683942176177500441951422463573847208303125752250647501328830600101793502040513953237218967832156783480198190251809445777058861535505328110185661682584271372673268755733537722635458866713484952113713423671129357634961760218378286426249160226567914579022328736198202448184909068830902306727831361919494117761730112427612444083531907303068503200649259135485827908771368689560920214009470741383790918638936337798008450037919532161567478468533185959553606185163688995652764293131605264316343838445355676675537325049742374159983846988079050094829591334627074607323365636883776736593900372104254419619044314060205402324432846346681548865257455546043750365786334638963205087288009049712405829725743966768130426110485304006178879683504085134825693662497630286636600368262369053455984307420679645647200342136343249586187945592962886395407392914101851768841310166156772333664068623585462138956664892322828330230936118419671493504131510349526442236146978883164210629972851931742164457743779159143063013181131948220697444958640375257354083504280969910488083460315925303039189937441508996080310389785025853364385528701063293810553197780977517568939801775553119072228698640445377257152113865658008364906108677883570055507610055710126400820380211829509930003986942144809984831724197282636414862241870069456909254826187820283790758454729719714524322835953847052265947531826994740442280328526748601479300393451634449702508758917912770429888347101188177351164233015802038623185113069826890401375831817595768675591051601945217427497780874062083845148177505213047344514868490756594052572287834194651444846067826599675546335521584450525410509034859795950089747391425373955977238484088354497547822966268538701414809518013321895040987096736606380740286896884216457689853248427407799385104002688000752735248063326161925752606038421192213343618574021397970697399898634543834181673035080889130812581986964903521954675351008638050061620563904061219289425463627398161341914706531076909685716659399608465990443717947448079609182276247704037763970701616861902563506730877642950469005739973404819612128305237838507150688253165034649112826305986238949632952432392025520098164108700259825734842140798501453084850193427994092811087905574028216203810159616661640549641356707605234209768782542038342666768786845944103048389067558774362403207758695552583418075086184195729825211578207414385184464011080246474241928443572635513531808784846498083509285859290422533730970975274134553389525102583843193875951805296203143849927057811572491024767693920349344885690204238153699804711568404348673972534754674830675639102031563478356011455060575430664887129800421864825941805257092188800016390554653228036121539564102480581810738126015808973183025541247120540937405878378376298651318502612131463341802906572432392767722443678387640294945439930866275934548353038639776881245941459529839778251279199381181640299037094606033917358560954596192946990158930560265847269203637671396149207194254984560688063817007400424755698718090697841037260471456663342817252653171558727917716985660673263838485452606670091053059177775456487883025174606164058804085544348140611888512545768615322972646695006204591450210779141448341700869431200380814802486555338724563647200215686714393900819853322113510906868933138139067446156865113695940708371584360899054418038685388394231791119942083028942293909887848365836583944388676030951375078231832259093422209431924280020526045802204456013512614509303019616706590219780791435162543894479011566497221801271246098992827638400619048737562400863222118788180484331539712768097028736911288962573027536692649292765643509391535204808549632971968373102621844768987504447591068773544598383705194171931549782738269396924520753943247705623006585121701716774387859305703516406327644390161649987978421073738739422204048337776906993179144500825391768578667106597315996078175762170239657788877325223954730052935287135617543448147502006693383564895614133525351072760970144756916185112590285530452053583367862679337498215359160017930229195909315904734854531527637921868503709792373870594087141670364101648531481522567324331601145734609944816521001712491094209404238808591806613441811885261696198099749179206332126339441573281329350321352479422656923586740193876270565050936671173341917741520452378276687728952092742967687358653962041208555559096448220673829919860786135514287191619834775259672721077811466132175796128682629195831660641670586369719873086411695636225434825439704486187768941898222390580441292278110467329150797303068259835695319680740619266307219700637334994427297511025746290913606346399083665681482468011628246852817135608233976237891750473252258344441743623243003442132477162166503651804653666964569845570337714085493741665344804535030315115350804374639875124064833377371964729903576736651599827112044105990195892078266128600872255812780388050103788912977054045333940410419314205485296057357232101460761176395264422120748500151910930902281570313640150372862610916421503347684091943166092674363653475505762277823308016333997492856768103501505045691400871761255391639253875251301892565116639525966436525010343550272073316726902454832283383323564482199471780030803547885031062768575243419036398412543072146293606902082658229747823071554485089440942236599914762609457091734456464298652560902460290088036822389503861343011446522512071163696516881642946369827558357628993913038852320333880347370098377412132036257855168899910464349309969987774045550472094861112967391669827779149520034033512093736083960014731384485580602375160510155815015606428447959627113523152096968111916473304212415291813537316158086529885005735214114242942055424482614952977284547471176938626284829464889551195534548401526231039944907580021214102843625018173219968938174637434708309137443286511109532586617090021722886921608039334623754347529959663560001003380216884638600797293831595289205418987126471069988302657009185719141650118093248326800698267820830153346118294258426039464678256768004464363083575064520952591736188626895979796084108285644034574654154592168296450790287247374811358794660663591924617423060060851256557236633284399763653481888094908491801765749632353883097490793239620773064401428155098359184465469601157131959058745409204499665538954702816459419244620275044976271058994783245126958480424061289109598323757147565073822000840062803780258086269732825495281915822028621640357717118198599834710722524785430747049825531323668847060752304088527009065546146257407364943091730303564657001117858654143145116040762356814394060226692529816009820187101232688529126125883425531391519389748121604541120602816674724208024486486923803380117742132199102657039605555965957164267937737068887043644044253735874662947306126067567948803769822177429026869412523605277454256841812674782390494631473503904376901476793002568539617115188904112104807757889763036847446956802985272144445055270658556121801240301075644285996726940997458765594607362690039143749260991609755017313017620473064889693632073257246168187033527825580962282434092308869095047582774690195159095559537580833373712807427601428733924129800982533735337080665117295285328111323455368182450708848994628278421150445197618217503419628029703783483683085582195759824863008440524858095759973202527851672535284823573532974408584300327794406080825937708163071460012763083985437606654020817052748449413030303617719397755960378520253431292710019083116640567310065105889808021540508533098047648705624856708876620026578541504510121266577552030321193689517321977596695680296792098106571817874886815424718898886129722914472711265454382611208141919819552729583938355474060426351949024290834239420333223477364928517683233591788908710106908307032964793193723442560165798344089796045025574075655688711220661207071864656243734048553010824807851301051488296128188958022905969747591721783735746329475193177253072444900062839383537642661254320499489463640735117548681525752640417722713977791182229445861244624338982580983094205695747671822096585972679819352855804126205313042187746624906475913981792385665397069866536686100765408964914627330086182192313452037277102294485372195102010832879925907365819449895077802344322358775549771534315972243633709714693479751764420878567851239663674121021026161038598339052163256644229857182461788785999409220149190805217960818497459512057073879349886614568786111635629673377530972510147298052085683511473781743094442810251247495486975021526644443810045329490577491924690257639660978280693584122680225313009990665799394730339871213843700389248808237787145357951353003281059578344919704913931894707082097415800799779018319504473423673046439229280946561733436430993090583581389764996868012411460616396807630194232860937509794252914977346895451325157883335297349891083841633926228048747984615471477307351782660824298770407614558228096908918828616939456230980931777890365497594306506684652854570707292908225761235323740069375869482681716477661888050099612471530741613264437123760284732218733679014747504315309029961354445555625290639524783770183645336963388967345962977780681256937516526636991530017375129271474062229695331580390050069889600199184281098413715486100142991093038512352853622509767037866187527913887465578311931131910078421004739999255071704218265644664936059934738481520582549729465564886785132681494872847705451392983971673080283688795198962994757720064555805034568623347122383780071705206419930600272514526895644131507783008494370618702298447098536647750987328782149237782808421150629607238250444326221864209370527742424911376200979596698711661167102635084733570875197912741222325778280228402480813708439166633704403664191200241291718059033899443121076784581847064996250354198757315863869696275205924397995702808427008361444960283337822758442487874016658140397999343148294301511068221022695782425761573571435214025513451188221796716405858860349954649484057197638190133814614532420695589257627008268986976125540176800447618268417071127085054764917100153958111744718933582038954697796650831118487082148150774225002519635497376793572841420680917605488948248055677121377911494575370864317242377449658498482783613171810670414087658326915442850003952652674191783068969914735002773063413107894180212319230169766410365146612090112327472465198988828727105607433630987624585657527964669552220778097208586975157326559468126027340372121181902585385513178845170163296369277824777693788904605640802575654678420192758807336331299855958839785451938777043692160497903820805254146327660079711405721495165042583936283112662012280463752075278825011712318472089389397295858688481168000128754516923050529189389589269139612887796696157830544155878274608999596212335159383919699022701295441651770889702474787187983402655018527210996684038417629938516140417190547332398188131387451870747102406146052326445631113174372652694118218353817611282438591917388125837460107463522906110601992511499521131888277147360274666541855189677811651573224074670798591416785255447878451068605594718844307319052793508071535936775923601675851651872013497251613032934580435786913957030792110342675659900760863163882605374847231823578735315316741058649122765413248593306202233206254762595077347703757714501402036503082676099283356706141121318441656093129988181829877480038218718540855096187740893020960445979304401863984657519051391618649331037404535195720111293299110117827462239411127951103100165550195856172191246049165548224603544624661290605880739928528759041717646325540341797755835371630070884708711027296231596595825507791147011193687898271967511908802561294440759427224087838674960474087465850986277685517105734293667136337052376454881459456686499089708389783370708624022157944230958683241829031871248852440208556618039002289787468608362134887670223224164898150117234701688970975015764566515211572132722254871003278424916360118153195934994098368142859518101334689490488884279991356239300612590340995688849195550839515042883821565791512029401510887320732821732718400305591256534526458577003799035424215961350348510868137039831755855451295107031671428519266140029466522259394029741175417078753624044881189650862884419361890502024988461486480354845759352481508714675096276786446234908491980333099410677165678748449565116569052892523990496718070999660266303735913849222001581441333927979208188057849687436865242110210419641152487482409928445331093380805961428511972203849679350013912120630834754129632587923340824100389858529486284885358304786005325476845107569207474523854110960677565633306935064945461184009775830334828794337713210285341425737743712817950944332688956213914352079677783161811335707189110326312909086130359563117924023854795719459207830269871506611169334562163490310438399361154073618980328055230110727255839890492105661557367271943025808321836538899803594480087858770083076754762255295485867458656203015797114339691190985196780705415852671330343025072827153994477799628967182193144806086355501802496696539871747515006059320186964281064616259346546454242951310366694741817559095422318295789189079524959939917097444616573843786536568880291968653665024208373595488142072784445937132695484524909647080672487570984048361800212859499649117611173134555894504559442454393791591698254697752463722720497329214753112761269892320335536352113442982707987935410581374241669457171652670647603826641941159723837335115729964431951608566256796850382694711941084682316862848396077417921993547804591450272751323068630088251381125119573919666191933755742684342073963687977249014952558778975964596854735235938381534174772574798331892505689015239617800640658795151756683058439448556322944806711707062902999626830424274696295630324891458557444282294715323766796571318843891648707152012232958017477760843380973894109729777727315086840209017917989466893198907652942745912963738831891062891531744628811438454238956440214196077863725316392895868117383548893430496455590378386642645325278234392504820363192353033849687602110422779607948926091805315615087622233852225080221976995144007589058100282329434617632442045007900889973261086979720781735250827914755179630764921509138694690077719631029866581612221431062417463726780762068578708804554329759595087555689247852119741960233640376427880512322063164505073186445612040128731717886883679151331561497478501876087094168708598076229011290191825743142501967691766418401638303898389101370960618621047491786474255453090098608469309664896226576712836995518837345601106620400477584210443767311124327714301097705998167041338039688627852126132409080386656967157209454888681987895610083403754577256760295806830806036759821905415321928323945543170857316589021379221278311265908152244580167196116698314977686109666230792903507873150327334370509478919360847940664927690598280720620069366428606551319559115345762755514881637803554544981580726939096607196053928227648615163174208598361710098343677617630114063409379496222348891400910874329619569536363600633962619530202739972034060499067827119340067666266660438272343049445782268600228805588397246019504299904970867760651925444822968013479245356061400610021356749023707848817448844917460790672821962294705625344588942548628212167455042180193033685781868528835932091381157054111440280082159537703565008323776492464400541932766047879468277443896468559266325090327508597654566731384514691761161417040707363742373218825029514268842421431048009518393627878734879457180406129893800803669574951336604768627043432908624857641993787976748222231046762920797847681821050267844255030288528690480607583651978655412900334738641201754880271907598561198196738067601566935950143015663014437045082946549269911038454981689382800262835544714378984804101032719210144418600898059278675900799769166707379820028334258328607691644965332214715339103300429864459239480489677390568712914597125827241427707962570734585294146297379469590274147702322682786607427437060395575730029996516001274721998044973011521029898553438765877062092646284567586376962574581269236702323726975331382734226117148837348183042089704682205176077258832930748117103707436319108375028568480866458221331129029996083467376394486416636544817073072669434047254811310450193374130704423512211303417552713196210773081320035211148208839515516557481469878469441626709885074943440598637218500812728464778266151577888146459549084572164380871971781928700992555869041427175836043044138914245902082713435805338022222463169236787708992970482076467033936574369186914676771269332866220290542082305670699717015400789390194316588624458897037070326057365341385359299616104043991614239978315020893259256597062762195386529642249627818633222421424732833219412141601195751114277698685985220201318719553676327817026872117993313781381011867837895000920188405074903403593853630560906119849736215770322697766467209332161593276644827071550922849780938718976893281667277119256604540300696008660480784956757110123241094015109518082124692725462044367153804268497107167338995397700893392243023257592366024055010472816097868779296319695408222794051087711067466634265719878098069687991839667838116620791598628881192789953788034172011688118260282110461317756670326964106405173515325251524143122850402305685180984897113208081219293363922703629820163646095909553935741646493192443956095759006000232514832496685456561212864844543776454059012871521149079783125653542727659464791316861336801943374146265474025482161726008647056668406644764077541700630966409988136144291637922165401492329861375940645505680027862867028157556086465000877121904721466460401055100963305420796831285124118784056119427903500305935464935260761780620678853236364069529899987690131041284209186059477697460245212488982105007159306815195405938936749628942718494972673523795774005805488438004707125416823002894315784657938889101838595796424384970627889185928369856246152776613280692343100702465798892397118007494517299250600938862972485846304548420415731255744342823176064516392437323049701863978203879368099058174526662103684858667851106191076392580949824030775195842970880050979335039632431395300176982836907013834605889460145510088419628398287439690224652033560260256895026591492692094865785883149301858188373868053772397157592864640100491620799516510412881014952606610629406470673430260007302450425547942521142064667914443070226657295724011107315555519852299641404329934190468807148327715481828617357240362231009129186930085079626612345734880619991086336860799700720640226660429811939170400136776789235282650109396045111502398184000038951795802442642302291904305939385586333078783194534908194000629580854635024678995590017387555559801396364028868182728064421132714271650879322159085212816048715088241305679627325042106886226912393123436187213690746429334242682390470984085290008501501841097472110873035242388966267574093523917935721824841640268244300678877280649829159868871956470633420396421343322912883539267495850544619531675584545092676052110289636459712161104582208767850097775939696337323044743438125130809015271369790973200966791706249504376814668360136560904810350976352680668449902889705502816210595467496114067607812736422119097403188484901066219462800876154835364572536838663807643277984888600120370033789189876177313930376769609365770892380121208849458024460925699728712341082945670884778997789847123842834030149301841458383827796764092514007826461311133451239409636191325851274549455169339223123438891266291041360247727407263779397293889883575591251383754736605143279991297523317555271875863719877469982903083797708256501534121666068933734455504346604155263724321378055872440365080799743601555678717023769203441968707409892978218181944286647449443496835696072449204619950845745870876923884388127041465647468340940955559028763189648866190825979605758285351942372607049798981368206814013360507035839981061121142462359459127912815996987014568370931853874837943439318753775248227974747953251089519311427550766851606434676615470633886310929015065726436595788415472545197450725443677431314343181364571325787233876896984989799674672913138721521198343519950420882225720213065517617799084108149558003022522979188985748689999313498258396940345488191716229496182057268431892562198643144842102525904764134579274765882264723472286457540117163148229816035552769070339331642644256083399185802389923973368885770926274200256656200092956093837882473612651062370308259726910720213308950220801415945391792841527791563900203992857957843054668947717034325172411951173230402715033082931838172201596773669889951514385649127611596526079972336815697163413968653256272293416193911978278092697314895806139780175567293410849443182746333232674452529983571786951106921626067790690421872827700505669400037558427084496799050623808611265082309240828512218607402141790659455319137089212977920927670102822104091073755207750585191492109675869186913084706347030410166746191863534481522993384862268090644652649856889833142412855045661756683985210857432550157407749795937412714234218198469165489984207000636334915808060731778989137969494978100933112265406515792041321789149389106352218490418557227611644798935348615229257308787537913345091373579244074235158886647258499200129625100679694583362901951156514921279429427704389148433578662571010216544285201533695480287164068642621887278304903542688466519137197764714363083866465474505587366454773550965060445694178272685979047203247983586514212507937062067116802282047011420821142624972776649064877863511771292367668602574148832620049896593897736181060543527179851161942852131781091841322594090972090136334615177354223749333398978536829027390513933436451075842728007846881752637116803196557185838413856665691685345300063453989251471076317656672729713640156485953253858180214929754646332656644401416637605511793232603318039333728137606761677313353649978513996580547431075324127080902446018922804685114355210079952656138569573738070803260891038563536825973140479072060735000856582958105538294504502343751854838903103125239702555407664649726899337546678662249175210794215220897470698239542413286682978904355340574137445869571743232374482616754545460393698968516750312350817041507399316913557632356695837780649813573212521350866396764494527031524886002975945290712150892999937834411075836496537603002008781941148920091562694740925631576786592563578178645712163053660807419226711923478024863739035663604548090725669089600676870289130986246451627947422019005876918436235557968698893902620400283817429544818319246180290123548977130480469465727471976530752612708892280001979035781591210314897456783512534315745452811930043409287396652966616855011863508343968293816591481212951767286176888743623180635076223158592513947788782228530266992632373604169515577503040048298059859022100993172389885547465609125346068886765476257357533150789563426266553709444842057772950275501337592593401836428017774525000541276497122387275231579210561099872985938550420824553875419978633023904499846449252017888506795732736989933086941890685065086989956911425506879198026512155073308848894885680908233300705681476127706301902554111206451428226158483385551931749975877470498447070791633927554817273634298880796781588795811614211969143449469764695893608060278130892319029871102174580598646098552758536930237129059238496319561508640954011030491655308901265996374667423169057821287997466056280874917153991233603881211126763454559398632013553741611452651232538187346149795183784620126136815958410374844172187817056638114109298559512191700508668048330133794172398953372328355122785378565004526139180058570055186418995278281280383619277847700441473096055922316898194802940050753375183933001023628507241271411388684313760902162571823023240603251497927273833771279152506197731418299216819778682603680614408034527359666382152138813539371244809299078005058256548699432259328285954704900600145187692009757733960150236576270695519859359424515192113361827954746013534088997655360757328084532544503524278344043927151093880329451682151769427191211381400121703988185035881262584268776042930730670222115286523798477415173820066276766436816347320092395783972885309629477128890563779826459718466377313678728389922315602760277994007620753132513975651158466066298471640488216408090758773808782886457270876783536547765110671929766238185051508828275505895530513281339228943368470090718726864581370643294844091706636121436954212843356523185732977750078529265260456519222695894342002211698922967920007851589982855460868578307056330362838282558535121217007091124218848919767470152390243749152925521960086687756144816015656452715443298359804608719132152263317541350502781860087337047385955543171633957903183200259056771071342553859349848407529148423881280935885835046706340057954202472462517055819006137798083258170623657587632599434285358867744183711757716392249453045360494616191494215072973032776819564866484929482321936791944003403710142152562895704931167804680387541107502413518992989380000754206161093626409253260497842388119526318371733870013634983805153194557981715684103310653642748087581946798372622600917376184869301685423584333359239897938943264972514994571504755210688274732103796023102558570034941344031890434275236753215025276625508340237503586552040867783276034018713704535466438524946911596062624419761424057073792990350043411830104626908083233794267258596508634843891648957666135594040439646490543593061417286414244081102988318290972874108112945440867146151322352899620031701747617171469430353918671590866237456994339087053670848161972439071160448445200940556618026801532996241240894131546505739313613996069386372105099299865925748786688740211539932489132548559491015069874555920533428084154759695942703088494065028897652449044652046542734789594783420186550299592216509372567646851395624980750910893102081129783565423387983099767256856163633473819993934985079065813190335288100035223079501384953259535481035112972852217431440703755385417558221640663661121571244560382906213406946519707482047297724538824174644266107691481209108367316809009481192936551600831346304144835569759343726522338499273299755964811999124846183346089251543444963186747954841949460808883043378268942200876339437757893289345888427480056274699261391372709342934552059377441615692841586960441539013757807807653204362278804238464733327591475752852162563128798021858378809507449392898649752486945459224861052775267103445870122452324778561761112352539107738960466377704193084837061727357387786911017152434691529875446689729847524496649460420290734993704694340789783529556574846621665687706177891574592564240576141302194942111060233468469389262270935813531765159521818932680888008979927914425462820068022662263453905988534374122735781373395697811814889945644165710058837248386995134017520273917931668198312296156708926582893792875104018849363756523769523289326326918339460058000729987471777481819597785547393136541882299921446743053070868111390302239835577734889643312950964448651045366255267384050411380392529293204347384257173718889285505679232984578385265501842865742086276115875495362845606461569971202097063360527686596697635998111253317269552820288303266370907871272864297297057354468676118102032353984503455039299702822106493724758425715584631256082588208504819470668222454746770315336083118969148739175445299281391607450779449320479570144284569017382614090746612160649561659687401646647099986297314060508882872473744765677494749591345491713785351614783235654223631649014467931723227702710011514901865066228203779773364506053907878033706243435608313018515668169345402680499978725859920944255364944311116166514667201673411924612471949881401269342894693856835919573608369765251221710486159550020824723284534472179360678299822339648645359648117936176724089247185848712413861821805065598877740011630816772791366257983106239459744201877854798280014782489198919120864958981195601905389713193492488338317122410381660114769962854162621867500786404831622035322352124654812939703901197363345372067337834917214949140912327238463728932831881157953468894368126732176682874603227778785599460916563498212418951206875376658747033936328371557110219373455281266622373718878128431814757129873874530860873583219599643151677593241933010822718548310038910717239047070151666009706772790198867148854571799697261797111862598316143388708548851499447438658045048395691383510788174533814797659926821067678734739208572986148830505302887020325167581686366501615014114414828626651475094043615673133751957637886546708289785511107871157977196703065633425628819953017051005180357673375150098486462809559133514834159613661662984059362219135397673514998979079957625757424515457175773160085819132548275084320933576024085002267171232511212850745153125754214248492575118899794545085423840132710360654309507898591062729282489986620100894873811847244166110608662181369257001976436936865355849102784990284810550923216847539296622151672060392111336346653867043819486443858253204369750230464130689536352028901509979197291743307192485121950735224994983194616250650871263743256214147472709531689284109721662971892450950501883027842337070304841344401949701746012820045629675406638901783800459291285877824185174473341035441774261207708768719916539408658484492496417689531158423753374683786524609685559080228078695402509158546982984324538570271333041233840929494387550826614690046372608504270186557471656595353745631753220406792425560266933733202907167357137889707632794670692612446578818466267730275303732626317576443366715926514265586349657112347734318776949257877174683349444486180217148534411104753592600942797483509563731671163659723852456731307671403448943852287985692969256910751972262789562964425654234452441423145090132580180368402902899160837327896068190093346407075016699704677010984931233266856038838723154651671633204061636238970662538031094153407715580383696161677454133017924435724183086474565485095493210307475096780164328433398279430403455423883015409366736212172170146969640202891251476838750425915246289089910701065602980582215031254023814986976726598607681638801839953125242086017835827309261013393178898950573462292305510780592315639805226016529667425425689910132501721839482035109035306255953921094233168044713527279983826481739805622698568767372021494671013904312819349648629220226995808306513952713514279828032224070071147866838031932003930050163228248883125964131427743759351462088710777787516664463411337865277073269219465848215917639357140316310448720080156042140799919861729625254747712633194068986712259987448440456597204727799321038149442981693968112227399767537094413239804293510887628986521409118455415131730974718763390194141276027150727420134943931029576381076502516371484861563492341968875190418366099983765798559940992774263898162036384250879408286609735644646637337330639012684793408029204414225461179502607856477982085931763479350642713157824635056514193844074354519346490559387144177348600990823581656023596187849996890219829334385113604666932224034425867070661901437040155036150755002054353309634646269582686608082729137378369689882071558278458175940676372377086718505703015922068356004470090909589733919733665286717468410808427156876795638782772048720984907734238517718621728828413963682890821486312242981322603126794654994170865628186400816256167638590752864140956786168688102336186798014292121123671370609335486012406354670440152768040465573100077834947837587993971146944371722327513225500048930399418718085203194765828754955815738484146727416725551933739967228745165008916183402766692326925911579789542681984102478245807562572489544624316671416282450726414045972547227370948196787310330542983968646132169530269937284325380893969145251862240974217816248226051598070652200457474433697929774261797618861782578019695694612671705786924491870347387798019285831564407970817988677365401990774135887161506543977727860646186985813014614857001568737904720816889269021302634639315442810270791102534396477531842441142556253329619238820108350931480202843536327713283416565909470348170838737344578561280093447869993880515785432161663715834394851037721366087112360147193245396117100367669628928945054225186023331187512351592946411769952315034082688083809195637758397488698966101802141368706901330642125628265824844694800303318421448475138007078154287074074426630338892337886835520837222579316291567119377291543765036334084146922041823853971937870448953005426559815514749002880048976771673069240263275326271156837683651599898839231216630465814132778980491844411273077633485383018239355021648758509592574823238362681508937193268777180260792131246186899061602789258918282949591215875418109589470003391084106876917579211066678384740285307219381750000433139896848770202573091002736781650664774882696794513377780571567794972301945669193476457804355743057361310983321819073825268696344735753623965494880586723089086183343274862339910789845929245027976135082260905811350988125989203565672201192150386148060883079220398630978508770632417962711021187690733218166860413186638352413326211934524240023534241024328791969375892227130727209777837253907160666052828535498947969332067545854566214313169346528022274601703245389727457735862996904243210949238304368960667329848757957130056640495072752933264776266866495600162840679006279393143727203373284614412250356283753921678435642105100579791670029936136915634001769810250955851718020021468679496123594412470534553022582153284995453495855620807129568709953256065789824908252166916603603813983034375017188349181075688299017333952415652422578352663979693545480919489824820245111117990646783789935778258518341534599839431279811546008441782953865289387538986047895195733372481408794705018191925068616559954076498941004464780871243486480745191633477214245693864460218353153602469529509909725546889881061749643668600129391438271601084712929064328780824586904904154008885726968422398435145938169963886468205405401657606439455680168519713389509413273095610831663825458173259843072283175577671869685461706497860547397453071858619204686812718450224185047267297122563773468167773910482232878929993934452294540015189087522271972260173504929198809813166667921595325959581641245220459597970588034363789629231046018139832645358757377617563874008153003432529346162570436070445738778733333106648342317006401962317361718311609902616238948007265659546101730094122187166275107969504019492553462852169375894619662508394185321509747459991485459494483977296454021674609440014044720480410668934949429455826975453544871271945887597884874026454732778306294796664767372687173278310092687348415416559190045919934050013804604156821204587399970105426232782367067690662561164093005222584207302542819175788922038900979145825372661595133911140519359200536096427280479045054585956052055772380232226271292441072318447675568465609318782027442522229538288479153813585225348646185781831727958504442383649376575178640192761215149529243446551145825379308963702972278737995487972996353011742795139377516237935021721011515788430006052551063046065476153938531923626150940950359400978806699868797629854980623785914520450468772530279771025670843356218511076035717398375328047783428335461908622381530275333890293270451394704052147229157849089612114492785870706418063171318664628021276039738787680814322909993392544231673076570066692058296113708636751024460449605829119830336964807558599351871503520660012416222658105331777048099763507399495935850433115363279681322350530287570706023917196287070455573918893330900927774936537115277889673493575043633021776442302499919910943618103971272282830514271735409781703765763911020045081373182467074159043473401211763938854814897483869303418250600949292388397798406579223332580113534251833185845089626408281963844597535348583665030630191936172939266031048260583447647285910544351098873224936619296915770051931141900248426394508412002764346628487176398142110128466350430590947853443671566171504367446601946119485169438694809926883198350296287801412240874780151177184689981760762296813630515382373295448172649323080963099158595621790832755072779813029423179643116007852387090025499512633569090194588998029563727955505591597187767585651581833248846680208919710014016041609961064776180163128836419929512121305824312025056054825557913980553441116030229834330048385812309142397409430152715558469667921697291398548643905287352956209244376608999264271057665109634437277863542305648140586753109013963132221271394839445730739159874873270386791437974525008239442036746123678324026840059370237017382743364505130049681692853954437160995230762822493907979408579248953443805666571653715400884494278510322916032345947174061036880328676066230742093568118973552196915900897053197194586267694129700328039462099092951890486489579119555135377759680218650447474572593624294811576053171331320200423317213794997340421706297180208413008050789962716415883546818197266736713492676295730546122825146110924499338251419154380498388500967625271740348546396014245881095581392976696238422884178494147871904191809092495308907854284776812191236269335740130833065746265215051298291068600008601351631438162613351900130126353783829363714660437010324274599528980142334120249090649732033780564584950127758443709560433378751868113841908311703224220028351750906976263329546883773766239580401332678990791570464204989279549916473783901623918072028256966469926441144228110331247021319573203448044559890018831437801196789420479896214121490965399987728263845690872041266369311278875381517688307928170354996769524830498782317503065558352785342402502981530711592381176275218944724227679177013476299132754520849547558717850366750846030658301510549068669510071705169653762026261247342730709695045375375711699477196470663420762637679102887781641955551760394683068725775431154359197009822497130018283169681628410774041049689331134257975383556463054397235675840193425728360795913496036050703318148187420934925963658564743983755169539767310357953473744667986533404901697173180990308162103124966179742405411606461249776118556217408096242599487831058137030425203042244876236361066315870434646913064221616982352642831124575870852119665423690981274106324379280822556888337715852014595845764746767109266064753844537841490729355776049465561603396750466310036306199983085473280218428123848787736215892648052224351558370296334515154040878170635109645460966664252812698204745868887362043495101903933340878019594335001902883334875891851303504688294366806104974191884593203540925687955234306379526180958372300155899089414338770149138939898098722189577290227931714982197542599615395371275194277935737287178267925495430739074489286793414146986305700629296893179384835222983387732181998359517311059787370658381013575118028819070865293611043877487267397143444022211814192444474098398928227733208833908528346267881454521227476910706393426386853800976330419334889169601785025166331593367143163367752090715739486819868361373698026641881189930747600539298651844976707431375906830644873124322474629589213680896514618964013529541194455458362569797427794409705722770154245918681299596216661953375846397486683116534250638111676917359822915359712075043373680069205109562903380189534592335062725094291612069028554458922258983671750985994145030423735642400660326609104316154861266882077450230772796701216302486760678170081978622678976202123048951032344286705070221448853400092860513618584201098016012213647784281036076561452107474388250477553689609244690967364675374767437062927261547126780182519818238991475835992124828254431296909727296813546458127036358643954363377641219987952988373400087327378185049243284370464965943307344689419475934345168585775895869422656331933036714619792789632620086142748166937499812414917134738860823001773175513711190867394535876873992108845741562759796994131192288145421977754174786195582328672146937289269640642411804434082474680438662206846829834381900755383689759507921787119040684106709787552694097930838961509892708404015452608633617396731443837860301280385462335401482448386813552370346200078926503030705155094467391496796591173429677831406429403425700754382783006698781168958349624743373874374695943816476529504983516477126640419054195359213541620567538187730616882835115098501081385127378670742235560508628508826953292061638965240854241805810997526056296306765910648968411474127516698888561322591804888550806612431130481318093690811231831965208672692664695954930083482802847811561506582961671893406304033556447302971933843898661528550101886849962968104835098438415686579773980060923995126078127593568887007003409885772648530316865578232189825650946574815021125955509359077768504628048755049938760336361451793114721351298881783446255946586313592652302178475131899575569252880438125967954162615154298581651688291032451563244008233141727536439301010801556555183082208832034395142066789703996453043935262747810884865992974082577645381709686007731866487381643549933199382791915973079328332866070358303225739692610765397185038778270615955339259289986539803700639658108060750903717943639445647441375575829408204470872703784975873969874806946955920310591924975401574302265929127630160189155086463161511164795141905274498559800509001511701434424019261419552040348811182070809157973033542005201427600050719701229934353854019920602210731510574515380759764368048595054402389676360684785518931418987291045946216628647723845393435866963113561843486260459213251914582544261685365645121967209371257335072139573135134890114451298969746261360040384441220414308307840075410153731886244908470066413826820753885277272228770249569366129994883190335305455499172737581462316820195788189840198612631711193929524633870472483565160739464200838083880746397684573843640568384586026708715618545129025540125548617761782717872375406551269347029847607080822956966887545317667680547200641712303817287835856684052108464948736941675103672924241408030785482589291480576237813107126690546255935045743965330779055244170630902932918244709523454309067920322622482198051349711177336715900048818966582644359208032946099759671186567239538970659329243066507507929884750002415939171005660996467614967548074553978941098701340783244997243907067053884906990071664498003650127695114147205239989345314422837643123668926545439867308156783861008278849474802273964959594263054520632709806108561884770202162685248891838960830451949540606861734748452701219376674842005069786411724999855886099191635480330396082537287899423055653644626282465350305636155531602768616178755194628425028896234153082268062130644236697618560810652484212267861098033221950513930470743505068945855563486322489692013344007157789370779533761006414643445291230455239484982740696633247676715838956751206907971839704280803914629630067621025817799618107772407472918723871541511555010026459694513397302237543049303802242361291000622019727190852427168789552107995472621627979079655580554036741503010944562862649223612641480782893491008923928033978202251422994279726711532282217094012148442928492167490847033588979658632900664363326198837319321814531576972946309935625263570267296764717549380978864521676012431606318961958539750031476490541931522331243643128023314347549222924028652295435485397486109171884978428070217036421923576475474017423439819684752797798359099733976467560335023127659586918953338667832032452128870675099666129208100069617847381485961290524896514676455809857655621591785492434283716771160179976589692034272230201527286599255960870907662161865561288758313072873288225305988893149439884592231132779590967014490717524859733493342591811158978527343227317625811405461226175251558563614907140145524982991581778460772184205215959177435519951244048043007174973494070115262101565071975471577404108926190087357829880110726555184597972010052663980320596701677451560188080313944987849695311390497173214128606934065343158160571045080833166013662952641155824332905176471618447430738452920946167725088670975975498191943135417958217605666358806100018593106027781970195089396661255608388128779788284882634303078175616697516882979852967656364508140830467956848480316518123471451717032910672676405801861425064284754348026770929283400140867995648182778412132151744568978148195016698999367733975967814526490261633278308324919180329184583377556203692979456637241513624241183404720791734256289614010296816371863282445542367038717318120613896789634186808348327216900280258451061278578244890762821576077792823807542721862759544968643072637050130459151194398248674076199490765867974243120718244761618672621142040233410133836579991886581788421120461146613728186249591659432568237439014401251901404294613422709304521025178823937054570758278151642943973466369492073456390595036762001755895368717429410451494915827092360396926383845296014973503332449912129128562840320717679118892210219405335558247232664308739672389167250820317347217058064567314941659956542782617278242774688193013121206103312872928319002803694376031574115318602304484073353633321893959830575365936627289654571222149274431843557052503634952489916623448889855375378494150512894717046611370203556332323267196915526200118079968309383971120146538242909711361399741810764942604540212750883850335128209472690837889560962889962746308331238109440086612157111530372798518303336615375617620500221814028749347636901971012299369719041469762440380818723148488472245380219571557854892688068670733843682234726849840987862842863441028749086464984336462111479277975274285599998156195915140967933959844623528121927578145193620304055389641762690624146506170609682736075222383313750258485663699802566959775216008859345096340214452355652565173095175899313118149288627599370591370322677984202244116747348193157826535896410092475968039224359119132605228027966962260464964262623380204180625598263310899301577226877477959013577081709633756805034135174032828437028689615721885500905515574147868376297711672442133241792287911360462578326181316973904018487538624481586218882641454360064685702367515362488054020784770036891677221502143533107462124361052999427099809087693249120208031561560569830615802227192997025106997038785110447851937192152113843056635625801942865984083908364608288579329796627725647591932985476311493318520815276912367995612247376507499359458677373124354971168163326444962919668722471585254216994250171985147977554804640554776350625172291130886558546216057256018825298082355439554047027772591887833126733304586537489618430122074548512683585129887653731101137717487929550025582967277161019744651648826713523583894469546374930622816777984964265242192655428490757956664281087414554547900268217528963545637358415612991975208584222113137582254066457975903240613917798426007215147066954789946233960784507728860115958210178267490033254318058029581795977487904600937869697260030105899191856944510586266092268986946877122202331987357082998916263919844769928483151531674665847268538969916967918551840409857488732003244120860296527292876790363198115914424925432828009423998262326722174353915193790561301262987163557608934317056476921471714530594107173778607316779479641818758340945060465617394221009340691802213643283208976124113442164617303006378574617598478063421216919516955836600367330119926364360132363632134604246232970869521569721464078375278550040657334073156479967333326322296257169762413526161231256297330118495585387692747439328807535584227097244002834975664100482423636696304982898081858512074915438950529450564159981964673030524967909771285460695987095067899551760614160403342770602802048346518679871935590102008832393702703206255676353236144722251686704101692790008410771583635948109216568265533735859502174313988885153450677967223430682936579378108019787316459950835679731095407987332125032121129887192837969115982569213420638952927377550425713170385519501750286872737200648209806418372137205506233207073124864132921580151454093167288450291731138387311672305803223539448234574474132298524142993854065962755529692087397101412990463886440435020711303457904348672470889623875309699423290427150869838493198852008645100513444732622682060448050026762102828464519248367114726907451026791383172790514162164323978018239501229884851302087106978597689826632302574200343921068427858935968936686623684097878927334060252688407322819285251248470689762259200789009030518183977692909492302950307277836850402009103940922968131623417427834572848121619445264457649978827242531076761870876552961766227884126595600705134948789371725817139627317542917018403269633641184851516688417434353287696140644983787391433015345449566284693055885558531581783947576612160075301754670091618656958274925126956393796940231212798488759274993438988369149391544120281628522110097844276835659627805067131069829460628681889422167934426796588867704677674780075832524041277881774271190566167413633173356876540115440541920296214833034089578474659099596025300650058735396732862931460295386648014453537163348482607162975610541697183984546965424325176269243040069557979176412704743526254327720231102582371598861409540977143809802665979324924141539167592930883732413504016728933850970617397083478253955938133878637735273352280763203648797045096751224104129405216933643196159054196383488535787166308252144907807930007755725090878522604802752320746382932265663421540404665062520227343629369865539453343176958411043691955739551869126270688973365131543972445111226627956439796835146676507990992849262174949102942380308364120595637129865589921955536232789260615623875917013808214405572533320259796715105826332589792469794885611381372736004549318785322955278030642459810844906647022611341052156517020045122900551131048763111612443783260450209779565897716906036092309134184677222048681788220693096830871925846672619935910381497503977021883028206750341615372754505109620925578745500955075309379977207246384478449802763663180814286841045268241742604579875988061284628573866393849911148523861533390918056632143279697398287666672621023459632759990289618674975969703965253704765482131650242506565542585549538397380263044955761984987758631549764612505900616698122633495445724430530823215494140946112233543912174598425947120705667925673859901393608996392042567789406118181723947960993226116945459566266062014741157735322711784799368357937051118925919403524285918473392952565634358541269135855659666395654466496823471874814135951909798832670756375362682192292686340699849531061134125422453363277450281753303437305451664131801657693576903173349975908189048337200811038010380833568303310226643100333386107557990691133999899521717657637138490670649560489149013275946514466218573324425679551876689747307803677042995244724822224795809429197700650229173077998401861302041842189281946679751341526182572007247715776714013780347032914736166443270375289031873919865371633233747837547936576547606485765141719151328373907146804600076425132560101452198073501463301537694763104466977297173060056202265645208821796512962723191262174346901514225352013347923163580091405209257807439350382589733003760694635478200320934622697155535623820363581881720004343544064484102305496161735933391803258318007376900722627450940572172774882577356638656262650139507659814264844235475152847783021510583796244990485381161550031857798896314593911686131530317481482996314812218430007327426468959914985914326061455101282271153462098297237299657778639141711662999475092267193260175068750720007503508896104893663981883728432557185658109780899572294126804990665522398349277965026786119577764608882253444721428991611556124038987316561464341498074196821417018700077676422663957163960224816865926270826910243951464403503045929507810540518908332069424313827970942867740127530995524680933959805569196016321376131320756864849336730707279114936193391518250104768729729626163335064391245028970998443305284261653500540910628833403210915349188027190036831809955640568131217926274807421944103541607760462534615440045360843645001180021040403918342057859748105431814033167442447690003608555338390758954534399361330400896206999341331566489160575505441517142344821139411910213895323577467517931517796524983632136488581798458962437550428943852743881183443876071056079514422540757625036433988855195336717245503704927690956646177354332512555478077474401328879971114752781205267258962217300958685207951004215545501655419877411513244633285517697971158111029721946026018501222652588142252783577943491813868835186751788954997041897962956807158320893099752398824665317546538510317733428059627671787458245911781299164075458819510005804624938777609734824725693340794075887386336811801376833515334934143881317526911298426362248109154672562732849252621442202773992923534969789339584334973920616342999992635362290676641794855209475930892109401932790041113270940696078848924684432527799281665935165792258138804927108864866849508156792788319978552784989003606548985616917098530423460685290798107633697346673938537697429326385378060869697806566411078293083124771558887082672091829733085789960313481819600029505823214594049115730870356649302090311937202886229992178518970938232546807381104974976471989599064823490849722605057143240786058202474664300086983213937498906760369578332325395656270735511732197108505383941315278473841655114286035567523618918316801798015466995290087498075002134009426813003380235364305562023456176962327692519290547043106131052987528175522267935316583377130234431867171045033473829721955617262548618995964802856642662781905124428116470902232108007054321517712092939104520665877725933566883265777338934316309780622727236949300511904971504473396453804387599712943304339971166603610675115456440600717441085528648135850533631792401866393278286251089354310718823444178391451876267867471745685188503348511550128451397924961714693751668399654562842149351574978259530481683776548788148411658974435604240176026094056507795463337941925801895823086200452189969517815492831289215190967925543928161048562183786550212101369749188512464495858948977381374841096865767832042150559649281726344250806255693207401818989611849692242003314325968919668014020948290217045023658025001579541684505416027773368605699875959252305155775515228983793600151459810952480908108761452691751740733033198451597677821451109318242972244394657564042598330238359810282798071049484381687462552252373672427179745089229966908611670458127361894136652354282008413988094500593008250568163238917207181999026760081720608511885336909875979713819254686172821261413922269921169441514304075318874394628844151902810864907381996808936906054743578203886891952514327486938180302762020206709880426828982635742069168149535021460063177518790893477315652487943424178840271342681441025731858402177006517151382476561374649856504818415285528403270316531557212122953839853539266477677711949700358344602128131863410569249209052208191579976423556030735880564256158806367385670475285720630624534655055707937453832532742206953567128312215878858542603128655091193960890937091040360127584639118188064053861761729770121047242321060594353164447314419176692874692993173340648562290144098060204045439029322895472818940580913027977149064426248200207094327037564886432828892994753430434611014337710422762819541989949419639600831742045010208299431462438696793721215858300445281382423618494233900446158142657657007911679848498661424199136422618940573109898834493352642676813061263300056069483307605607166318327249838178041382484812392566497009970449420959108383128049887168906784564979033814796723025763522339179673462358042932529728922865313429320468540713478653339326064637650934583862744996980972769518179677997681150512715595187680550289754812788650052003054902895624479728571504551564222583561675793777728582733509299417877794860671149134516869573099116501096599819287997298215274512510727246360812014545217784501232355973548293117422175745479268628991059982708417008786214661694252422615466967539519967954957086098872255111999757275025291118293550774867749827813323527575182611038751683758672299852304159209125888136353238926413193514368482906515834802258643818007377640303693281815430931718955324935845046585816152583086841532257434258937992756112083277782058830341661329265680759549903091411871443066869226381480285090172317043886638234557465425790912766922382718038931559365647440300705917611291097365035666449803962737499453631823911970859322359754217867528117037625505207320048105163079934611594360368752103630960219908744177762643585370218265204115408161979733404356163825223670830100274551203913582772491112545673303095443256280916463165841080672357894517748237299868357525911512667460766497127035238121402485070843006282856331802432142202501509075905020249798394487786999120712888191424946012481742274615383045574808442937092247146250302622718236577533368733638687509340921207779842196188226009867590770913999364152728261072915444507297491059218281882177737588803210296795679530797271943537447572729481120916989232093917038266448735872861992283210819752935861418995341327027638989550228818999319105374529843114479371274586959049583092313867057245501363687794809327319188640468051651302542184524273496067062254796514064653504294985349829941720541591179594582171643710773290668861835212790623444509508233897906541604394720572799798203698789369837920309145426789503623997185266345573359441309734176609081821459414206819929032856631329757867352602608853614190231174732728370827715234327745870969896550329986523958646676357282762282907900228900293504825412711090251873480062290577193416732817671761331476392688688445560061384648346313895029209790464290392178648711524335940660853756040776474207962989559337015382692258089760228150869189977529787704015708801720712359871270748205794935832778708255817218725643371899534805256823450817281541656371652973303236568466163015099655324034513707290980155837015446981903467418014218026769829007791672796505452828686715525921969762767085931662847861377467588641492524312083538902401062125490254380966135521012223674145534896150392000578312852824093566052378849267961199125148527373420442951562185483479450385005230932347544420454356366180797106697340064324446727384397245643928104568865736118251148866980388387392359861963650800508496727402247992694350232886849475815859302957278063659957140307265078610424556118519957448343707738627806697885646297594486663870388714864280387048026500715615099939808552727183594050231304942656304321962334451930932661596573831550600370998898245138208184111725374166116842764070858772644003960325402553341149166315495982483590556490639460287556467364173609091835254082298040055717301782274619013089222534874783344582341276113151289060699333750359525104381362953992435424595139679548752316662506081711765119550694137160773769293452433645591953414685528474321174600920420233817483343229933064902336096593027959438329523396836042640056332544277625298374841685228566050889988324631855521178836458328483638515502455204279042297031844964040849979455624999105941436258619909182673093121422481371012925422009897971985915213911620806129741521124449725446906822976797631200462582058597987901921798466858634096358049623637650446890332829556151185827758896256411616952622636925028195096633910494012325329585805764509787666208402184983412716451205639755937503079899494652341126084374800124484764564076054876121872787371935249576626881359342364236735883078750956084741986103799919961231983931676112159986233296389385679187608602119538357937619648355550790889137293689196814130322965312255126121199891398444259793320535594115302303785306355715536924295544036492132206706920865446651636430588716902503173286206962864937567362939614044142166748821908374181566919886700837433879758271589386876857032334560252368638169988737756926202480933153842909608091347002823232584896502080881703382628158992676665276000600801222909682621380551525535305783515958893232567596344164915343591795778824503659036884937861515725174062933413453184680904338392136361829376510239273325932593947417254538109992957833602196968411347212891461795379329311876260163411349920403708600056443055348396198908876661780894966956296362044942110651753130824591156541389645407642873849468024653463542868846385280109359266734923038571688615125524329983525342129880999697542119443951927727810737325247980866516480787274377659718413871733661747366872450007545758214461909075730075266494188335214689396375495331689147976573022682495743437584060849478195018783327883968507845798159085288838201580235424152897608664348349647043201135254356131376788153197522309627123432159730376530299170793696830215505505883879359035211013221194741558723579529927079094806043195367970092262060829370201193050585766524850270631754483864411644536204903996661996234451759687288069679979558757528738003409296437620540750418346829249218826288646226367425095250872116379475517658441520004095606759760923715560661914448408891225103459522725785409619260087721300624331424617539448649238383598317312018037445615787691221120003040169928897737925824245642387749434872847908986814933242196471794948209339368887304434566786908554709966916833967273257080031688908830626302113522720732107765607795414163219683467207205646354258743724068028324911411365011649715513188346812892115145919889729371528483463866757136796074852059971359175616830052575243368533358566743755493547344264893373279377364680220528302310647963594669225266595812544787650560522034943118909927155061237703364275365390416700538549790916974403797105537843527967506301740037053593276142192108485558674895296328513261682478232278044077333826507217465542327965309845580827174459719592539570105094476089709930420171586264846464800687929014114141871194476944488673517904791240321336865289823986186822819162630895167174192941296512535430490445716536328934068320690514081727531318433265726644897365835161778474165394579495663789757653487033985088639875274206707783254614813045115887609704215209946335260355279878363551581986154496185325386795609169173685414420464565348724083182411159526038281962702761652709941261655499153961588336313262870600233769466190014508641070300806678512629640050755253529370316156197780711195460627507231213615383238487388673637666961382323457524157459648518531587106021542326555623354925781234383036936661036894691031592221544369420334019936941009982169638815185539457252815793820074329838986217030760182163180573374146022858381547506394128575407790606960425281060170109512860558782713963870476922493682140658702171261790059754615860074091226125348280274909882771458929368894310914375308565162593566427539810567618388799075536491702551879178671828534839467304020048843219462851485458700982294504268372229494759809237597033705620474084138905677499985127307732392895605611823534295036323361944444966239531419074357666656230090969663006874887188142988868678554481552758870236134257833831337433365751450275438029808687021961284970347311980091723838132326131075539302322333595281591700327297572442080384153494983051038469240619020544843885719719875145652080933399902903839272869010878564243724545352112320571215913041270060435273145904799289745194891095795750104801874587970328593065880830480373524638219587347240224680702361507324719344167000074520805677608743384743808216860692462683945368153650435693182859943188438565891941633895676042592200539038888671427590694466193496367297613177289848981791631932367980757406032010955003075741414206520164640675047109886075082680174000868494541175531000047875304215182617052225061324994567670036252508155880814101822505816862326717402869827662591749776353023198092785789889395308778446758638734148761075699168887185025875166442544918508128871726640997806182113368054022383600609689865007869436121094045507600037452183949340543731051005640214686889670632947396859145022398488472721022320303095631334045310796742192803186121488379900733574938031728330698935656952716172221704907195888611307131346579112628572725138037952492970571579725268990007960746143399385891149466265046712389175949281612529306621624560460434949213779829901139321027369707780325744998793466801726793815992631024808621359974569235493385236213837541117775240807237371233327610729500420048367790770994626038375577392559727386259550735192005694629821761782018760101013491702716248655350730057703703263364631265122968071249614333498106680734868691499553696513331660921502866608162438758827840668636897279322128758960391770875487654572453795889859876347513184375270244785069091494141284044592824226453777403685277659799394644639704557328147553580417912930946623394421185893732764563260244969487060375890160854493449889425322396156608730068870386605744076786628122886654714176809124007490575587781766844073125406812569949241794739327618876423125318714780440148325984789158406165483436475338954830443340301735750320886318987684391887707230232739641656827909936847276843657414891009056850843898031326901497487894912659067902837822872317203565003832846422487915141495182105072658719698877052955390354168498072601294773907060572098978860034696042489504363158651780705925337827099751445981435439300737464221494219746475775295147415706095747579901513634093627848247972132531490374429743340038261787488109681486955928876985084924408246762341875997383486562527266491944897707485163504053044546259560877613116461167870606419556214100380386412637575607135764168776819571814315607083625782863740573798251638646104157544071984665713180825383516219457514235817069071602508772563146860147093929319648774126654825723621408380183927876092624387857217704265471874588956987027282164830794227012735851976764937003320292760290489893445363848409907470299857623497232812264998522446073527206203090168124852948784640646658928232321305974122743115020766813094690623125975489540178160745662502095125242685816541702904769860322503377813139516374512049148939620109070068754346529131100835170062478841055085367867560561556816799901591188176120491945943663306343265496658964051520964457318231154584809215059847525683538691329268818223502960359264304695352946950120559126042609572738201352224541352550130816048241723733578005056012027010221958337835287418571728727973665989630704572023014729757655242955726489273988809552049845689866389446134326353303389683797635762755473744059943553475925903039963124802333816966799522425193838657306981419740185015634213730433182679385482434303922153887588825446465587747664440224657599851196428962461297850118781272687966495174400997300327310227789838591890936495089493597458352366259292566748293508943560329070030069136238948531353196579369942488870794511991239232303998249339808203067154955238027929847897205626994443041629511192841783471507841288243138091237030917030916813255508660333689698860414442252622732472799432260593967569842801299587987780282697200341056023366546011764007478326884253547616964171343404598106525044846800440940968255464529245471869338125410512229626975989044812229823424737051379458542991908064903326561904397266438661138158723941457917676745032838951864358999889207079718401599067570899712317037343931179162879408903704813306566413748161595110590764593699267464153175560528790619004182034573094478228023810550510088012236001130151929068562191370815443368960247389254136696513090651263744737135682987555550057779407892608682437099973647245276739655262247907781045991483539935734793703385137234942576942261082181955541029559028791403629781361572201780920950880545731347925982492050825702771293975132484013769218481670823737372463583539048876701434596147207620399329550414664648525582619463995711461313725260974430278836097135769127348915826065696582566262717158248125884712902199335151477069303260688251085147584553572887181477514088007191020500797124722597133739215926530459171154759182624230625200616247187083331892849302813699037038645159305988532105667578241309645680006061190871865505635628749318199311917229652945825154925378099205642151229920020510133251129500242599421834133980539516889509208696973994728373577771104999273634230094440248990819228348543790046478748747688554905661104729247384742853819549760669184032267271755520425013879665869164077130379558573790918554304682303521681734037448648696629094266710207678085353246139960358744496393281238697836772471210076408396797930308752373403968212313743930594616861427865731534915739844660619264919815589966177744898431008699625211960688046222277913964311514041538015882684663421828842560619119214108944044460853763225202885191251312876082029290325728354348668921753808913005748119272929073346471251952100241613491772202475490827732838849628916222719895380824961351346278240399650735326533975426005993877394313639052533427112295868588711577821385563520807067739217904463073850439289458782024859229817319713209401391405041123078350752340379750698909686404626480851373686325477907174898964483120649298866670243956504185391130718713622472665976668683720835419221998169409390865738731707920410888866707384762843020998807169591717435170121717828715808002312355186261467517582296380422251543546648516296777594429274075992106171740846583624658099363502674960988189038640615772431787902351793326372310690291401876512993274402244344460003733430539391857445381953319680986998162474955141883195182234513980339335636888869630904434033879773384697586217715137221313790512039731929013774780437239933615317761604936510218234682018740386872623426755338259886591216257141172813655859580103593107052319580215953693952273527591188704040130096759024367081574753715695040427941015557612750192373277848234891143846575686628509221274368684656437919031018401266542001134025055650420713140588111156787571022339629217496568457102817790730055680995647325757799120654585464415398565981783733875639926384672353427107465997483123036501615420338101084358215577910715027279064258959690416623070279682364700109459938934577887153146770039703006926974190083260043700558734493929561337404002000205947064691138091776747347745144590720233901217736975896039136213633350154016994587494855127305580932481054692950305988035900138580621678781164086806891770791736482611410339451178803920561723049248885462120276559713268020656936844778815122604581131447146817007013261981609797575443045556732870609139448656937035045651805295102741987111470665686523122136304294286797066190344137935100547299535975947311410383116839400875641254914211554756324290081819087126842266802008657892276824480854479111058897681389282119079622934091463977409246632027443954180819863544107119623906319008729479260893497506397659396770544837817384297753166001491931601532388581435422944302624728952877534592911631878115743454460634214785705344585625071731619938115417095928236783896465082267971339482658899601413697453383963611019864545625146540611606978171614402952393312763428405119754203422496605051650488260460560921494031508965891440362728923131537563383819848610718054234119503314537623342265533001033644363908435958716773557441895795941164065441248255526541617770539137885440469261736704956448058852411772724986424176308410569741855538960461659621681542911627981562069480514383067710298673355781086384325413847443305291689602539546901422391610249309534124333780805612931624410916761785782900346865513208376867341404681268927362597568924934977193144900771798309641165561933447957150824313107061673055954923169371838543691736972968176733608740923429766027548722771411378839615952865647433519489515921797419397303583612621287095071258477679944233740735318995414888689405738353574113397799540350315549950534014144919817651163135505769991761802445247260832446051805958791376491808903966222536730963343210291351770062136034774365551556394873394379200686051130059410058034898231277807631195396926723482524047809814871611760380303659043617949317273325269213467936649367744888007625940677714129349986110168415005457082429740063765158430857615341358058297438942620817067974465906598327907084906602467765513191066965663628506438904731617777086682626593823894580188589689810226123428223398629191047175473796983210779536573039927434139995262809594326818312203779243433614847327881667436151043569898048360823338888515118983221633490071878983579332614584217818552593864827500749019286648576738946962203450735373661197958640849776387775614144857122556438801199012386247838595882202161391818425646524069144456603690420519917163994744186857722349618261150956949520018776674439444276805837495729873385178407872117078167464640815503376259741376595102317995260498435592796963553427347032657883020266887990432428215761088787003101935638585396925022968800038924554124722402023742703830834753295449331892270866820752545464584281259092992842370245712370566352688114778407986300472081314238434888289756423932632039794446054858175091821861798887032726374334182021609629798397840093050741792306040571002760216005035066286447098864286824066184289406303648504515695790771940376554211732617941767963632444960707457646347030681214660011391088366096385134347393883225580883255474579182541422217268142433529699708265665496480281535739115786315076682443039164115091176833861765720816764021875824652102030365421303407159919049225201944418715508335858715786400646703978519179032906946110643557903654314835468049254202252952754637724662126428685601566379090176027929648323272755679310578999254286465206460406686441049235734143786037511403332242704813715638132332249545551283820898250746662558927278036173703670456062359868427963003360512221361739729212486866806080818039591146458884730525331012960698853513787093356909221331257623248595938282132980171112197791922526708910249010124841286587686183917301447047614019284139337832903306703699511454120475267847744671782308299700716225887900588114502022832862159838408436376230690535016153468822598524401969737467179360512341226041115159652427670443499263588033970320838081681027690447980341326545370779047556329331827212793607918166460022007162618300286187369707805426480777393223877237228849101474124521571468195532669872335294444015626204322574389991431009988063303231422032908480235767944722880717981509274347810799704051996012227149733027536994818248090715420186440502627022381918058141083814039691882533038121951451371291653902678369047459179151260058921189254371157539368037938079957940139489844535293384734567686382189160355994437380953577863123720324547719312458903798104193623115386429838092523280355393831699892452320158128383444387831466945525580917294385875867224948338984025075232351968535589077819002076042286065444815083528705230150762849949127818917732560117155575095653876989867992501315877421387832551784487838995512000391363540067341724712674194755860048435071808156128822881889631026499398871520190441544665616229644679559539582882076334079591490497516218203464522361944153975199695970145515654972733838768460232210263013219552655705212385900231117182155225812946118774171375600112725711399866753044649114555833157458696029751154319212094359295270996641575636695157064099374016775942586143298277528519856534640850216436259072110053497411810481682167170075653065737176421968692870072800058153778678690849266065689759756453628522510828375258461529302800748915123880137860064250885796920484369873580089479863191542416377172043391592177385570509534353765755155612622839188387657043860339534569375487287878870570133777055966808268511246882803122694263026899812988727502823605585265743746232711409639046654740448577271973460379245187201527702639721933969609994771258740092464032530878609008441430842192816446917261866069720629898580129021275273909945781939788124672811635402896983269850467488475706586808931678707710816857463933431300516716408088844938412925291221755512437086414200964250418374164226598878339788177731565878606721359005773800669087407225584381041458041939834709063728486750375296301795452820268815653755822121629931005214154012824934510236806898407117320837104759779333301777768656946870416900500912253598605426535140222341324416496687598378947552865534444744027522498299757379172427474429233044753480484474042889775333728195575574668875452489218645230851070175572754241239070842249047106862416185498338957286709614099110368022361411933086878962162169732384189657355954835319006241342157627957872668130218681805076396530186928732096210996157898021699609172508568690839879284367189390742688115136578132385283137785354061064387987770511138502721812778663206016396931187197726224100511827082108762024942424788716828830087855190973459414530243499046663023516912831482714700508082971059587508594721443010652269084581423785118706547243807207966206492638793240960454983620430181829320234593562308378569811585765969229322988932104278105716938715489213753875365720479619225400079737834288120724076948766265661390579654084262815911142632514239892875975498643024748271164044333380485772008331866192638582783802439629286382403426680720438430934269056273617817246370644647705595056100255802712548154575492289568124835406616465479222922610643594522147797806374946975729083174759393848730232368025245563849743591526320038590560904358988609174957417162072858462653467528931790012867562518386002697176612116974321579488476872124134280031394177368398747550762179283450466209910067419160628374186138304989360090027197138455875724496519875706754055068421692276257092398112739913009944674590294259896832900468385937404172363631367706132779070855846614938139837005370452611565239457701879399095030152028697749659067464619098523079790210652342204727027849090287796954830330263254726321538952059898729269479400009994842942632419463733491619584981590659195899358468467194206589616632888809538188555485348078159701240161215184300910246426511166189291725440913272708720831747638020411816669633632395757036377872033403485905115566332737409365638507250454403316711270421757989742761765822517469147040909435439760176879338295174095065168986229615556201258323475976557697511988141652054516418207557865724181142482813739826749467977812562755657956869784749158347553147828953877184374104256461023363561540458498526585795208209160950598088387859008240809686342683177140123861581197573474710524430264662800019798064939102421184388938209341950476981406078996111446829236126777430946225108765787085922826976035499877149661650287068511988092878427050249267066858203746730268408688579393500743346384226366412370597862178571177888503641707807275336525122276408871229651266947742519215730419650194763412580214505829920619238174837271749851637133463335760292965580932055057460038320565198294940132895744133246469740161663099522376054993599354000564442607270027739726833515085184993158823689270645373057011333255255854102393319764947088781275970096524546680212443422057200731462162532712417297255153784261366820809205888219373811369537905941957315324520745161810085182337596467184704838860858745170195454872455250729393252075751139246285748549795615456457286441655968821148983714475912358165452664457715209037407326963497579652580037948729881828861124923767892266636293048877170535332351872551392942971977194857289006073276675036315007672396008352441979119811045572003070308423186335586309571339339698036147929044738026042434189092971969616971864069003892078121878528441439254984927643543182096085910274980784664818902517237317410895917002114649831810502740391065339582888443771463340483579472094665230149531283713909939486367513987349175926935156864990460339169568949428782296025030082753441738554193763439818456540491956664203169971063393109011031320366328955976124296370827640437488924731620842137121787602914075441993853268380390402692462574332407706193057486868973833900600072620569433846197288417882443039384061400327179632974074833506593310000240891363498709534569180126288492748871490218968753016018547069627765090484210044998517595235120120933902691844883961139053675542616553868926494931358639072157708472812238178410216991722383117726455188706669003120660320981171262051234664490968963201733399730009084621440288071296724378357040117135830816684072911121899654470341155032475235611423477312967512522306387308537507534515611378510647650758447021198558741687287199261084920290207988760939727441349409719418674701389109617047492501930676938873850249175945974249934945368634352044699761112742553569171394708600937200447373128910384006721035808375934031439711415476762780443206988856133328092934939463970412493718998306755675568299721759164850222726823276551623279918983541907468826925340837953244293142948340556679902390811222065958352990407019381491255886147678039599216712484030038924090357080747574000953832576188938161289001690656526153190839552889248979083325340059768174872039010125162112976082392017617243429877686826524350146747979365373045175424522090355915933157820812538086223590668937953012318498340607750881959522422816611275859863427726571888496427157453662815308526898918696315160498321269438478385761235818506055534760987763567633672819242254229202646308164591205329906006943641509749804966632075026434356160109937712110373514165690927476493861195063353953299426769354019417994710597292742163022820926130137938460583434400756595474686312853325079599302794736347243959901932860972831418031291758554922735364909483735419695141508165120575699577578937002837589557377869599839555182903599511595073565975659236319869253857677582179196353328385213873120871931805460286872285297865080545074168820906273489387299167110883304418065239297024838989628505664180483677766042173351774487096589526463634431764142499007787470912286507088446111299430403504050044587805673170758450648588995960571519239686255765872118402875215420317716282172382365543813969866197668277237085767645451809146424180778230011415644010128716359838762287113610189567485773797657861229981329032060706751184406168397387352590784990182006429480069745431258514310842437843632693761159938533194203349540443230407517116847150854565546464333451224789398090167929495398511392498314420701080743758971091108629952009737266101924503558892936388599797276350572480933285239900707811262542578815711037371024973437603172828744073857168955996225475858194875221426244653557557884835963215506428816782248761831497567239911150356539507150230738934440798211397477258364292169450896837965660040715106503765588017228902958825131504506137037049197919617634954948312852440344590458729182462762557795903290600053901947734896897493622125613145086760460780584403170179004863276039938532100278128999619694057356131067695598793386051540132481765457905814472417290755335754825364690512439800577105611246892467869945803891137420292221705869547785741537019502366861760548607636616544934017720731430304070851212742022266956592534674827282393801478532548507397016763037450202405359727632585929239666812178115030324268131144305620790706741484364700614654951569120547893422544836338188403803674982824591880869587772159701310028379527976647004391242573140578503337141357096862182226525301096737980379799869492508168559615121010439867018876481037936003685001167962930547180577131532970925923152428377302662196670121136891536360732407749397936978687782375763991653543478223231404394397677553349155534033982700627825753189085493069837900341581185125970039629257890586502447232705750688175495646695751525994148754726573241651846971254928297941369406508294932501642752675401737083874610738512226773627511011408764680177982607781414103102391803746486578201454944415170625577703821783976477064329669829013249840186402035206712093643280423226875680824619247358062456957033021689374919086817433745389671682116804530344605039300736677941879698104746523761530946596733563841097656659170692244432376987449497072543688283833485175009824699396182643692445894761453453884894948892221992325263864285375362538843872689098292678013366338419860700330803079910892205714507515226811815845370592181924581305549903119592762749156356180340877332914418241683563808074675395749986378294978886867590829358162772593602891710617510034594425122079104560730374034710958339803111205808373859944172797410120297308398621843517252741700671771320807225485208128734138669482203096608411963892932607041437369005632181326420282283100164869383801121685047985454085083260811731029946464932451461627717096602879618857191130643772164244012578184006186331715255020418372273905312626464621480926611770405459691708715956894949939672645420808450555352303446890153414820792837329436199350273710105540713513204182227832107042297491212112350943797504686003474513953700867488190601599547448476833994001584823689929083308134650621448577822230819748591262473087893920912933018266888502605121474758391094230721519029789942039825921062522220391807253523088434779315251707583063086610456187606415658196193150474911834310275062242416182189142210560862582162132598295214364203702671400211187023555235797708770453759628993366827070195762634372217937847356982462826279350437077320294248430158424610821377332281803544977340500570131125372946572272105399861211814384205439876721995712997232679241934533491661412235162183379112494409820582156326613084822526201419178454106156409163287924295441730964998504137769959792658794817588898967542470176507070798751043089377473936309362417844922486818576032570323066814236750464747088423132442298295384563173065499493920900029334530253140534447480277963209110255999186913638775111634565009595615474922684368063621563101450237285220820020758109356324977785582438813710922011542424558511783440706248549594798815530444213034590964573277670858462913192275617004381225545817238227807377971475218594912401947992964235347699830533601223014875870628356515365938966452794585768283765101705969318310892354691909513667185404362332697650072459097280848751185324058405131072554289208190916711750413438632921597856922738873918595035808692563474105311858945629847505387925351694073995266728231486324456874590762752496934070386610545154766668044633669899458922812286810010785303613772898295760166011176580634310500028928462971756060096126570999977057800034771716672552454110205261811447325958734521932772522225477936173496826340468761082992846055605814235069729809036103307686990059030736851741587336803782238703588104559790605215022553487421919053600523898026322813285042352320209966522074428777751682147296069593548617583140020322604918386632357866044788604846259092059127027648487275880229430108199925429416051489663537107552130943459826797046489091618037246611196930813715037336203738771744329313923322518288501652745634251972838950464877188965685204026633427367078061899160861216631132833743164435851402121722631303953384047055837234665161049731119569652789079445981985606054997955514695021264106215694903083646296224997678716030705656569547061104695340229779269008506523984243948323078070385224061974847016978492092858991181278331078391698449495907196180427602137199560840240614655159463298715993396324377156009405234985222384428456272577772143845604706013355406584822223025279676066238215937381529413604039194662150405619782550823702009944493916100186940268028676946139624989267668942298667195002529459156611285999656200168283836424284296561468154119055012154616445819153499294472348209065166602837452464682439309796845294460080063946763931457468580535626178061744817519134466838982295527823736273871445734668327787490052777376840900697552287787707527237174816398086586045749693492756789870518777211046468961326643764128042139752511519245996620748875358210303162393633902714024983204657501713915256736737019898971328826520963091471800058986841658259269490191290937770157980927187917106263034652744005386106725660448413166111978884565867365780476512642940331201413921522012716362719559455487150779327880940468141107969355112976927961582539491977721695195329977871250566641876110225249161317524815114755266038991533193251578592447140789489419127814010451213806814582089376013896257542481116190650626732746854714699099783717078468627425161727185210640711242387548094963216255403275094084260673999096599635106372583233834818256216695496472757666107998563655702454170183945384512731480315851487775663273630446863732375002407463319915485737238634196916840297173127738296583147896077191945468879655530917869961850324351008738021441657102943757784557563690506403673156834396762469523477237112990171658807352711155491098836677962752435844521730179159960090510780970760877134065571906668698659840526605570770616212295624683162498274542692331347907232927432825730500103725546415387308453917112977844282240943411234001637593766467599585337494811660273260312451120206269377413627768868783032923551885510112672509690449205315198702314941777036846974322757097299521162840595705051631779194480868148753567815236536005712482000374565615961284022118580895033788742067675561548805307004215077703682394559057632356562084826054762037308312947364177993389865707137741056360189786480287509225294365197176096494333638151274360845640793307054607712651403485425863677877842519178712710278136217990207032150083365970493396367437106515854380070935490300035508329768074349450708083751799033620824077134397347684899244639150907353242550553461021973487178630857461082503968169547286625586264280439261166135633986300691648313016856431610686683151112483380526731466005467871865471658766683232638296310629890117975605074825647873027162516286113605248224292364498718721169826338508424837300389055815647222606603926743204806809374058362155455799633183234434890836105914435182055659990274324258518174203721380940590982542253977561608607343695166507366611302233005107039667607286077340004216557187714430109533118666329315594940221856155773771714124565287701559530157046352485168689128718971196489567711571293904675901652375050643642472935835426481865373613024915491805813509082021930829379521891900814396700726297705329006351279090534337722210502835240176935157613163374519627435169788554559432882678584603938529551185722204824463442214682662827288881250806194428054929754561111089918274240253385605281847816744262513087053180761846605901159630113169568336481790306105945652296117812681482470957663939437386886226537235336601654250935623055726980579457442134707964303435671820252024403226091300599959626851020230571237710185792642171638150910346177686473466077331405053597595552330897047064119058403946761825422217023236436347561133155780189677861749381872039099720809099244552917709216970891803012074051667028223695696685868915848177218603747112824822722284204116203481572999219727984782930419754638749353529106852302975531392329522287258095787219022096659739021994368997828223678118598017391942247024798809434655069919301299815188807219883596351928632454834729183950456066618134535938012131854826675942345048050931789292309765519789701794779363809893032963011119051397500497020071505428486052544694300380175420286923481376275788870897440201326463198701574029768570480784015112068323553472016204001155263302565215217797915896561297287003695311157609301902751439656290581566116177591079624085022996244975762065063280004697431228110948321153354724785539443936197839807088492983443430793028037642398484199186245226042131070008001311779634220665210003352892031409567918852480857024387751708320967551419102451350776726769362130000738713230560865316153861446175587490549794264185096908601758478786977748344760386891691895568445604352843485459048123081454532809571095308484661590813741194105136717812128475908930029996478109820681699322853867037883393180416621941352252617415702444290670385389391309538386381292647025023680947205803544862393181554263179493813511584429000276752764806032420894149034526352011167768907117893771558245192971497433425401133170950844033292198514378535981229874384447692180394689933525226245880742636946805692733931111800386719134318907537100322459335720539550088699042707938216637333515189043471114823529615899971101909628816028233992479794721660297524989536122317366221703802389333115951681707506215907429824860001055958340658544356647743886788751703005015721989386652355201175106363216996208524322514408477615160087296170193436268170727412886611144471484810162704376946557829522445658127253602177309935926593976621585488082616255445621644926683190821325153622036395831657096922090101549945244261273726426377291297103521319527164577289566157054040429715060522837512826512542079699256840957695137200584886098390271754820483044763021195928136682093136347813061857363465344659864789152528739377813276712256485792942966348424956145806519305593576850969159251030730053095200495063459854213609013678930501978910864114035067663421248850992060184182066578701678476767771802676604039897610972723801105774226982141209387364233584250033405728919296824530591281915701155849187270647449771489161130949114233861583415475204957115014378127781311333132799909046827876414860256628429184014825421106719478231871928806169763435862205303610784108334229157901289554040401052186653674915512650309383194353909228422968207591426827582272471879859256475935262446398567900311398012794970923169643421778047939103105089757511446978630130009757436938596770892069355358659991233202254442024924026886805202771805526034016859966222728674361202779268531021653002603383645089502143020771210362166345676895828752430655213562800427791280655363067097334668893945151468311268426008232042823453955220156127946640278652157768891197666840268043819328242581491610322417578946943101744282269878070031313248886772978887995229160956777946877488112060287032979111203658002881047785386184032703912968877041712060447463194719080289261205298359871935264726785878490028536918929086551426503048076613826171747871974370291278737403550548700776638859350477686268021003981126074379403227875823466786735157200660245711557626488031883787900547570860681217397871538505950251978806011785455159817053607156581377158195027329888662932218812416501768246833033592297407703956343673377636669391990096078693486653529812835319370670430234944493060862579153047176372875472391401873804934209728642474654509867269387330343616240829487767205535214993132700405126006954663831782828795927162483801593900497276591327740802936598974854542831511209089030784896769813746275342452819031780116615000663662038288540247221840524561184434455422054507547867001299667181586509444906871278376533230268573036908255970060793913340131782764971916042671842851561054854245693946002125416699462876233978865407392344444751489903145269159656466020748344345759097011736100163101722461921925061264311808945851413419415023744928366272591879892463165333262941471212868195351007955722656052353022929717106002805995341345735199382910651299579806512097325750488437339396683174328655764285774118258639176574171853088204165144897612126905875624849080967573990916065030182256832601571428790539057809237667956377223579408393927813251596310482663983750617677109451824504794655849155632544827498289138466093164529822638282504442740431989319794379609437073204649942492183961549269484380638706369191496398299848430738356404567884818901766538151880358372705462627956729859589212542068864871474318187037204848122064542601230030287401344193528086922683934774450158855979696808392195034162845742128380202904959297782464574334913246116150938395190599561106996117596721627962954609013366014458470139930131024279110956034912464796264473290965344085315492972771878505890569155205237059709761473014218270344680530840025865623154431153893870392681627830161196205148668498629796608966667838884461628285345069972682231375284647687686608181862205350950468340145639684050118652318769344597568113255935186690100227094854876277531495961417133474612235844627506311126243427868760751662780961408720239890637977838871250329433410726166574042332439405450111909844214072789649384118281315228026935961947154749438267461280971376959911480985320704518470997361573465498137695517822464520508858898108515559343283715612615556937371178180054319845176506826659484953736737258283297076175233639798120452654901784305682082607172399168243442616933841257443228302802967555944454796797552594450255759143303595775192123420303909919469052060146120736490478699146781327624310545181858946333615390012692572716142507359662022765910009885443089612774340888457960710899659830175178790428546430215652056619963262574460982317411286332888558788231453760388259548609950464137451519165711153306352782070906905927806402241925098731733462131362633813294042625213317382822935985670151387602162510367832275697286832203037542209151414676800094445885378250508916182744174418829569841149221150107181391917795766476099622370564970330365191247153230265575585267298899879441536641235113160647861871658670943057732216722679291498737815114709084073630480109440417366439566946704609971721765277527166956746937785450527840057831226907518143646533485305864783867316710110018172865185227446934547030999658706453500798816988606864920634942660735054767538880904291852980440819106818566591312032008800590658548908165512787490065131699398376258742151933940335565979757706541904523904899885475142748433712377180328225797070326268548912872031070496798762485182203585380937838709286310680990433506098284525134810653524014650728702580864729357757071364115659824655517164496255894946306645908402366361559374447606760351862482451349003774865084178678767594042405667066993316840399597425163428009214117937495347659079655987865415443990389057489883687170633071276725706213462794449129182946749963539040137221698345289310992482917610334460481349887444789127236351825881098402937417659760007639763065254266419052165250775391149367477065920153447650781817044007589122917487720889571483443485038973723203019067890818586969738834623695578409667080663250158164386366880475985388212469411665455433816079447685456589556594747960671986265039593516693127372273304209186736441026444148091846516519171892910086086152136152536923560309359280071947480707127438859391601546539997009807217433163194165350531061780379654741401266333254102288089883650450473123877771184077082982997169223380628368163521594607371946658694047586835661518722391642028017592380933836751508843244111181983635839585746333428149986325646172290878538694935803619184507019989743911039166057871442112288020513482358497120993809587631281845264971751453800098850098990765756577820270903621529807136269603692648171768427804380902180169863149752870013197411304119753483635936190305552600195469300951324191076788440501532878847782487411025838476929207484600038643952162514902557890178601371550854709298098461907645905290457386413530491255363615943515410248911313066797410084141670618970608680505442599412672810055611905448776160731538823132506243872187681014441251091334133702653592321841442217996793052201033460010876683607880121523425596927380825601126993789843620318555088569524041621429761221640480028582333376239866794023904461098063202634757062088909580934077152454717969490871958083809866528300753821203920488654398529880255343760846559803889204889190835006080846666932910765591548023099374379422678005954029434173714033641757686082736786901391371264280030981953542930436958647566454092565364785586893818692779120064783767599038294446656327809180822046590522503542278794583425225241202636613613948066235189257048478219049211683241938875868361160606199771424934942055255935623640390386719249992195748559962723074965582122858131889881604941115798988878686917269352275814072995142836153208051398406308431601350554453738447324781330474852050164780281951471857309792328677842140703772545913140240808024497828415382478953680853509317266473531707628239546003415371197568338014450976767398921693154095857362972983410919549350074550988663223100937246931664181195590844222337931228060307666700469843322167773414894985407422044706182868789970638407901477682394403945773053876041599285811235057859729534821159415381115370201245677787611508568388064492920980809373232176232136665166032769678612560485976914527562223728898858663043106839198767035031282234942624357685085806330031064344720678801263644466071460052832693516978858891616861002727565079699353455419499910244191212436197802150195072301424402031167625244451372364094358422142316580423049471644180865495848760956626144636808929513952914499857205762667914798761210320159868943995923984731710867972146484536921902169316005065115707883960357876932822182110954338213990687089052110226644631313331369761837893866514736299291656550665733774116535517732274899488427908998869178064594731423754485944012475301790801204073773404181144168291300416713662783278572929179355642019588036780527144544050452812568402987730124495509603932536694887932530316350285638786401667580017069998765738830451646761483485872601468539040511830902611690274384043881632132485173951830064306205853611088498782213366643929314370069869304490932308902638016854446487179079162648308732216069360823228204381359490763999043014173847507343775931046057067740102243062387012370625506544383086631661494219236584325725719169888548312861125325400918571926439195451074933842678081085143668529306492684377206540653683871555485633344293909363235842607962596294048343540526914879033000892438617174060860904756275732560701508358811601510652431656243140062562311892232057925460681052614872598828237495812293122834528014726755537230009578062530603263155264407086654219910791327937352415419927622578805291521920277872244146567351316401575978394294563618809970849937173726683733973463078937960373890958204909050613357974392140616235678032276920316305283786719401790544350457475411135078865881111652274155490801191274826978998502579681930206373373003086377201209791158723799490068551563951329942621599408941172678909349874008371598886688395113107170474642578462244021108551453762469873736387230923937968989263765048104593749918556786337908576902018792944770215011699499703088663540039039066105870635193120778661054441898000518540028770438448795154483503758284676825463369419854517638411502823575834104443338042587523207896354025084757124669326442582292327834353162691021014242355856492830385545568171404352401149834672359477741181616569681156276062030147753803736664658763193267437830569403600489026762625651956551802557061220349314076566742828218351571857902848797639221989316171060228687251562494524029506598404678737709141661122341920510564755789889802120900834593263140269847110192005144401047154336136970655070993611626701398207320002906532151874591473655542435231333734305219150540250748010783798235392487419939279843593466866935706215167279964106073500637127355062459162986278317802674810248239204822074079032723379188053554042983596938552251237794321811422405978889214248845483594107159665358588402528934872003205816954852400703548036182167820615573231992847507903186597283764291588997008006730090704654736042293348207366500626385704308175299270948502343713294846813624729230722559737855170178255924833844474973032373903362763093468256554078494234745664016962985549161421403045875798139417891263624323563151687509571212711603177858126381300242968227666866619366395639944210769723833253953051711902154943964999463653169382532724585028720025850566153174986904478425301929096105058628354295099799749056869513118326878397103041057936924330860099860093491203378524758588693019732012828019978978363903452967908150502739028593120258033838516662127542986051461504699743639212298669584702988340106126537579703465604973814694983213845003199182781645695744503251717102360555039532964176950379323499260616870059716839386187738922041403244488354711153188224950808112956363521885788125401385637889302490510696016697124681224352250396097122907702571380624894523650879202193048246248038767868959229349386788129842835291814281782705806975759748015476807229660211633027193811941919598922248623402411384563815657419931671551592592691999420093324542404127859657663389930960051337436737796932609258295985546967620003956063868636680722664865324091584756908068917680467736600740099965947560763276709374119722458806230933185946700721093941860406858481422680725978320681730241333502106942790790107874416388227909011171442866393565500591980149117019354714987909283526469096533888782506772587351717654926604333660405000048615013388103021024204048937590856197294023379409798570807107816250509513794234675285648894892598477887474623116888844921923157624596183223824031840274515244634636686332458510324404465733964802739423259904908804354486764032927246489223496037725020182247711051203122235414312379108924487127035220987324579948602125439601241064220392139066193631425113179826652144142742430626615456904101905118551164244578620806777066051492059610087420500039470994118343070603256350643163802233344259019157147057500694809636530425336789168578140433445032674299207062721180109981073908521253423569853780099145859540283383524990560223676708316582803158448780952697606849483613642021938683541154777621219620292831866210819077801752281741603920341784062890346288177438356674523007782630377945468741409046792867532871440023926218443945266223697319506754510985022628556571382235866729643147583648432604154960927357639799803126731486665497858851157776673610314702737504371260204462124897059533779388450409996773344120099677864535271855740368600328866521326177480167504975064640718465367405962440351983459287014788340398908523958443435115153430108642283390940398289646088614698665168430855180273675572805708630804313933331756287026891455327683171522707867522731574768096710095874112246651612618452243770494800875264270896617658853847602295324222254398328470622049949984506853016930859659365650809319770067359734182605337740400377043122106379118360068546730965596159752325303012564986196145751236994466246954177493337736646760941357923259200270802641850020471942753121651428655089933381152509411370198322801625483906627429771817710815644139809434722246048927362018792240330107227307803374507166827130079253085709194588967361517166548407294685497001487478734715370257185810124206180455532684290223591769855444720095630643222106748010825499316474603899145709134558865364503989506626012564689777016552979163736857830095458346253659613219858230363388206410273456633971607241197347622831196118809656082748298652125543333249365783981258204791774835784086373678886679932927599724130290159001459746595198571274220424679984439828527142865009429426883075290518184840526971570207816005771062089900675999410365226470482941601726551225910868369392174579980635759487790223591583185794649421076122771053424490446622745530424819839293681130415013028044893218488549513500708744061568905526139834744063827541631803324611836791830673946570078470024105508237401292243735598220974387728375257410788062418961125167891453884033141242283306400606979819471248537438175238173887679635060742116982930683423392844300458964648433052345915490081899774060643217785898393947374648055641351983907163583119862744051359499585555895054638906228708621341000546620403182863908317503723792533188582717714260488695655305950700497229565350119692630223760719452031027877116764846890585492180060162974507836368929722567522368383373125488198029794868993052054055873195872400146872528065006165035183886593654290911813303637557834030868106009193607519401600478234368353874738350401277111040254132562269611724298943700867915386536173136926478313670674205593824485447081615392069818963029417583731969121581529157515422908876109441547210920799747933261577136219376283273719421706094202578333064630570832754129692989698177189055388995854672209467225580735638091490837761923328480073888782626656906557661746096124347124704413242908855829585212861459943478830326769304433082931963232826631026089974276066748536506358995156834247805547232299946550746767491720290291263263092214536229507987615241660817329655935918943274202046154504410562776009717090739449539952224596695949875383124595403118826581287224607388356113328364360741948914816379789042773763460231030026465848620399820597106970951592040114555460662507672503319858985934640815999956592745604021964583039635422939261504742511332215996416328525645922222159606999789203141168417097564270913220497127195890028809734611649284353070137333577865677072630268807367356606132817852367957593629962333952146416232156517484358843426815622724404196340140645357986690095420685737885869265233332615395490552332026720240670383851669251940115747913219320178086723751925110547218728730857975904503247378775814710217868056462569326412719844135610680675746306383839143275910637945557374875716964561291763605861692378707598598400039074142729241254025377258456407393824383010416397893499867573319465463886221819451972213079775941343458672911631923440925081365208001012439364949096786249334127119372379388197873869466902959053810394651521511869888704128360177537416916056904836105930042296783106154123237765920460338008659597205592435535518963357136529442553119127989005775280094734369453344927249972100695489377918176035017045996686680091804972033040490751090131763627931372789058659353666434219378974738333612834646642459877373803150573779524303936871431467907295541954399550430947557919408072225010637474487974517571858962607168096258031707183821668666012290027617226708007591523780576118603207881027983322265889967597297136804997953353078975364869063424944825432412267851124531854276895258575255556824369459142693146483593094494529296270163741098130536572818539478249392292445125270587659093054894832343341864289505911406698195267723963114072401882970192755849106062189272537788085701569222460968943770726151707659843250299773471467292728435296364072008390657998209865341866567988708086361772774215680258433999885194323153470541734014229613261249830375588843297167389457132826721011827510072198020313737027088863090061714005178374635255688266159620859180102803166679150223579273151287471644782832191493732347277795380632610547230159971317017974180231772586038835567958537762475640382226077505924628423384611945776449119056801522773655244692555447724225416855521291992432499530046896514474553880637536116640523364447222192847445973366642377768094871467569162276554445296542239637322341299748482999540425152772874598421289304241331982357249654044988340564480104150757689443392682731272705351822818768329564713140878240936959971565969105820105088536723592759969922172521257247262277093125267285809193977288190002855804576077047128672771369745577270288948895408151949436463496926653259826089853029713995252057103008339376001233109218211519441685850911579695411603378834683671164494719794603352912318087681834322237222481601404915839892535504080530724519978349758553740298095144985741755935618752998388242851258861643413408069510241791572651264619516599348243316294418118709958416339333257870846489918865044227386163643097584909903929102155751991379416106612514923723583216309624045124132687917629564741235596470017882371656372704555647936104476997667297879710733155649362605745735187262678552085772448645475755441171571726271672173932280644516542018706251477478027526618400898851297733761555066777662280170058630373556196685874173658875951774208585776785071542267868348928773249877630157767436108811373642478909144753381372434938748165228215166888580547549122107660762573850824882807004544410734555606146140556072072086036463229083990342839424842369136733418773258750783903279674502202985813860907483271453024723461693264614502940410423235308914516916112053627986740172393856911542869820116355289624830682865303636126079920683516929637643473849728053613912699830041581955040963228556139197090051937440970630014094105272301321731344285033704042328039890542465928699137290166196746794062855674132541457845833165739334386653970361866150048143272011837050876789992452641704824412440986666870348812687611634763760669842849414459919937172746683163025030212358795574826145427317311762363050308415974564336182257450524076420172451551540793060256188950894719807254548311402039558309918960373292523973145633190494092690392454012917666184685097366540816548203698211522014709237054527708573848258642619802096862505120796593882589185505191446946304926951956000051014844815537420081642832438296843027383958347724372308366825561738192349072414327881263189452213278487886477993451664350157716332809397646263442568827429642015451377221743206042430570530216400923165108861246636675366373809002925139673854269711475866497466752928597365384174100973366632595328610583540814905197108255358929012199076859650209244435372571698812731932783535792536070228092436312357320252454947006894327337533761796856929116071073631582193404023264288578533563137202929197048190305547863967690139276660257302837413967679916169385304792532386631063737526313006181350934307391049656589612882823050251853479599542369654218331375497937697078644824300920260077820515740751828262414513391565507762272949442354639343814913644587914952501770555177433553024237128914880197466037899365061299559559328564684344196748086435895404562406377752092046950270640031978221068447611650736661167286393492444454665273075891974206538595598021100830719707959943674708306612791554816890321925257043324711033319527825691093124253588866798359129591064034261236004607289162090493615340007641001371837052819540615630332910523004373845598566107422216799543868567009554582287881209389415634707908823011365034429884345946892295047804881799961178967888878359610029290864784879238590715358919467842901045446371150629404509544088818968117004094475875223233970786801132172255436718121301713755525862948713351668151639460340785960154250080820411292922193340542624957609441769317017920575931516110243023001336621704975340510695722307899017933451091654180744735724191857607368281632021223635168390144555837328814855200349762765911168212595130531650365087673532061110822784399233912126430175828199423855693462279081482011035557484002799858779535304235469933857968607978601721748583629429704689024045565069742246089096346190661425393567536236396148947425985245424865605041041266687610649288222401739225883152374698756603480074341037194815959863601111376108062465619828566081816231671581854320247378706116107427517474829456147114886882792132831852603004448543874134087303259931472368115179296150684163575932269833533269991493107209735753911631977958218981796581942226189838792308398368184045762808861034780514019700349470472225327919396406941718985541222412527154989776003847400933751954461526572277971789051311314626999062017409114412247171832361943575095080498972462993241284310045203076947517831275915329393185864216531291245506594313663280924855631704308407158265824331279552426032857053215557994970911242662010063702180522976552077305132512226142652534124151630964683840822331015851354609048373799706175512238897382807131604656273803149977030363562583333827142953731954263873086312286196532638319448351847462482591962998540875686693062893673843987543695585600172951359738557940079987689331700344201327877852863834103659510543409183902765411703865851593275736771325444771320885141342384325608030294295843815785827170799927791869576984259453375858109256150958115739065699028673287409100394517572351366550831004886151544131522747755488296831944028333569756516888922955169022731867900055787803782270484703870974790195420334307893968619400649401803371862135737819971014693742490144102656643833984148288296052515940439396660048776288619498367129007954920117655486764014247286578632235680307239694413666461838081050510730386255566591717347118434087928956475754836139907263134482187594522954415046474767429481005958475736160997850782618644613705497300389150741935115405432623300090732838061138128255896035563457175116507726405948795119016299958984219589065867969505000461542022519762939037607895671454884270761506361317744708010306722095295405758395779869395464297202588488604362457168334346916910205904717012005983126185197713759362548704470330905548586093353061348999542423951172945456703870795948858828929172190686835155417815370271492270225148531583109637451218358367552480943315174143336524151160256391741411000647979521970978369947470427456511436097704392970628066964557868196049413082064677539537167420524744357087985160118271766028980048085688435240075052979186729534757792284560410720178194398176148755977355267845668653959146926084260290998464317802370251817285145007797753618008720068583527886794664401234962612937160801267292543458682198130165198423623718987498198508533538372408451237797666400959442572164473742749794787712743448611868280284507694014137743031521590140255292082515932410865735747359355831811413214805686292346580871332854863339013796563672223427735373282684010850819355854643753333841560940511355165066580152678999822822011213979232232418988492912674576185216158186991825900315578533546010285958627266507331917892474398893423051747279588119949060816071565905496975699405561379067347745530838900665455044907000297356821458696768265953359651216348357754933037982430282207734415749711290785120261973053264665162311517539799110943068525948804607033623069787249545966273182158977864412890035763316462334696231373474262011866739153235878147017692480462642265732873392097986925894007499800145685195148862930805820294590311031412040052915044235202755105442054227851357372148170685811972979835224886058378946153133000736495150888248158117064820959312011892349152401871141010848983663631693095122281197326862348391833269760182382275702831476316825327543066842419869199579972984552045900944893761121279188684269188464433672191321796237131357916922895615519474573276802199746847307662128940906440453492443628233795594179348460622948677126516742903264936779243960462168259171550620409131429128955177619654711176199634029779400179952958510042883220141614372610468484766545163509189548992140473897835675378073537649679525107152060077516614708972250641858770986814737476809303463988104139755482040833991190199376081230119011232553724962769262394084667170242352148776012463490168709149604574066765446369111539843404988602324954802413992295613984549889123875722641936462638666894754096844902866009010925705862968448296086619142605508794014287519881283756231182517002031510443779846233182642687103740113315921601656127598899488401444721747983937537004442202906168621231062724229913087711677070966616668615929104556852010232887243673491676736280043223933108871879059768959895781024096532839260007144076641497895171839893482020187528027749501482353978539464745474957260035158811923003991120702820490325141842522598013017194062400801009821849118896406683642103693642150739523440731246742436793931620946161415961611798910231281040254676748683959569602280721864050989515760355599280242299999832890596570305868633391965966376370166532682289028619697669668335774605501925801555896446842052740017017068250318955436271757537341816237677040575851223049505620584550885120708397912705468670825626102241417144879772982240739196258670987542794476722643911710937804630921700354248883770035317781544661558276607402137027662185069353947880277487372572650921462605995205920097995177726526355202959870678881994258777254826291949886403877668695575492881832862123237357970008158949118091362040876327429924623368260737811737953441981826975749199138547620005020413971659949734979465598546892473666007131405051529914560393810510404796896887386139273249008866270254133710643276082791450650612679758679100283846975289950362955114566160547640577828021674268480976838590634624728759228219611669935795726593507723097004558790667218558378063508184471177735901105587548007005887767517657509076844726098173509361433061168453409379826886846332842740058233330631627746500351970909729251956280797125905509546006278407785400873042271103265076586624615750211198022779113243986151469356132175778632228917151191666308328819143334242372940438477139081457619677062384593398941473255590736651226824939749322405059117716441450209355974395766190164388796931703480953884564596574420413090486018267897917131400856945052419336239381726531817534503853744858464750193566667607474385498474119944103257752490225043462609733870864670888584046617774480829905137309435107933095590950944402800837259342195865602811311326119492281311629015516625231822587670875019130177689466815148673670463820049873982198817912670193066452137844493485515861372405898020124385621152407274818247466096685150317157321083818714250923346296210364788131717692267518306748271088800472696667330996394233706145641340413134142957860457005203941178605219591520928102460127556924581755050374660797145284876403315722099011643965429932934371799694240552233750893349167430768510409933833523618997408729301036727963847313586424701047875392877699847133399180124697384499210137689388036659766181702511604426456254354013454305337163459221469663669734784657295865551796721319961797434738242326285020920561959770052911779723247528373706166247436982975440353050929730648749871100184865805160536808677147323331295238675095661704196013646705071023917728050622592757067104215492069521740029511573080817075949997520696545786938747625992042592325759897602371523280614482759819613687884378908784987253921010037247506105239149925003381832869778136859838380153133098310366227828724211331701470502778710726624824061768670186002804375753851906778817979697122921846134374808706418389851096477979380077281671069108229790479731886926597309391556156819252294116971193974349389307998009244091376064201271472570115622358014227677229667923205238449833036880507417999108152815358629490052412520620526154362898785624187539308979221134875159898326657533550175330950383507286700336285582266111128608877240054504267177955638218860693628924039694063574293587406261027387276630833726029679494979039104831459084943282882911529952178366499432661870292375229614347177023483107734104981153485765308920949046968256094513663012338520769319407603647426283926609456450830544350131060062164164760726233590113707089951334996409927945633643447081616910267912030588254331215234351329595417535973302481195928909414559949473668898613050570195117507148991760583884550056415586063202500296948875845524971113598133875082199309487609911456453668079212214527534706786295400493605686051824968919519501109501530235956070298899232463296278859894218182843915666839507634116373438360636063621249206781422342317225577051951849489078221404912040709228007403041280606321769859278170119396845222348806501215204283808691132126211283354622461484173633808894786223993846507125758287046871882738135025766128942564537445591514951926189370046074364037346520498940677563751384957354055070628341970235187746707047679310636175828076746516544043892985041828311374483108675901095634767291505452067140433751244108681573846724844442577409606890496929239356201676060144787654793765171482379824829354842069411963862321005553505238781525211622630656912344715428884425087876744552425628546839007265969212271040972688924159088138371110251484674845326025425227889750709952611140205824366219674498755932903506199000103842096403536689133388756741273016184049646803093420191552641856248927255775196960797836788846139743643513756861156513459732512565933416199603439037353523830772764255394356623812060464150145151101325486160563620273411229871517414264673424892031001699536301779927870136171301345270842980531678630639730374929008631104939580930467645583388713660930626820512941614663909247598261467011277573540076487078155985227426226037741511830187321583393850416375477281104009544122677211652730111293810027577462467318670484705824361258621536968521863393859425190233654622985389062128742866956700643023931635896946624259077636448114606449953744163179723031787102046807637189182951890317558007763006741263800186792660092824978281929824705136223827231248336431424495541001073166162465509934183773787781826163307963875543054571155157622358984607746669469660855066477794073627778293030152868693174728663901147975256155000496740036070108906303861343553689765727617695139590782426402188922883515859654603825867919227981545999692559884095139903656242768657768514400736513076566115273871421226399161875568165966099267533556632375052719197756236638343248769683877828047204163940782615750546641402827073796344436401146002739815187742234915924739872479795173263431413222860714348804916821669602357930101671379833237628135795552456256429865460125321033466610776606887286782488645273888491602062794548203818777484860407339299993980330579976809239025814586388690427892217356226301240675014006094163743497996665084719386492932495194610818959657294713301041486303830834659130787821871237386725946586669382570155782308649770657240480772585586560082638057247654047169037980950358699315451625314337905236184921200579617311866133392255639833770865737744147138244604399658751224307518714546908466101753963720404382827666694888727652746883060845002675350752702612656536331845510590641689966322103792945426303569993664712983546647874904506734408405383094092840738455056963132204220296486890986283369665558183150045349251689141235887236272083925041504314379156109708203541418263054565113361186060976806090161065911015604717166213348520165892630374043518207421566379324230450819257089391572780555027835303940737197343828870876953526918008561997498292248371336811606683970618816188680085150319100578754957379741464640341674464801167115073543545779903647648487818813002218713783921748388553715119823853143987372137432221471163702323218106607400314955092155092866828160470330904587840005277679050370565968293653203642464564802910711164498099523100944747454796071616258801039711198198305750042452116955698529437525318997959268086874889512015101335349130047428537056381206812180253359829398878852863186037760879758303137953127322438154057278140551051500424902965632694281230909191531526290532853119068933303220297914264538666291766837471161339214678954319931882885236471211547953122155608270424038191275417766892755869983992139422566520472016365598018383573811584452890206849499216434776703752206389773754968313350072919360981354030663817143860265100232881689424022193512948034007738447391562629473846756794479978880171898313281954565166926177783592107956207625990494575364073844247595932032729998286665037390988293710251989577885218275185936835104561103035569711641119131127638474814293478065955195584374592857862006818203652481671329305300102683448245714540089596618481970723894522766364505347678264495774659485012787676505610993253003452453528139355194599597206929161801588646024283267265185528603497933776780097842072964075724230767556748626445920154743015224807533515508811038753792748009700867595144346187583239380257147633487631101855732331631420120646301262800127433574566455396804440106953740134314772023112340601883560084688297441585199451858839828576158348844373993586994818943059591031528570045021687590374846413175978411793982129107497781683055243835255588346880820144164304721153375089375489560923534844870957495053472436957375684572974807448591300841924089707436695343407614456483784282438424061602035083697445956132171510054997493201812935249423451722731280689133748092327707752119427739868666205820663212191334950478362608484668841274480942267441504472567229546492323280594464408110311963835494184397259922418058369534854286664881890661112673139606697715107673382690597224597011841315486578320863632862236514243305391166892439075158724531361001430477477395047506753172731580377293705863606372310762568006397577859232218185870857983227906167504106430321256515899194517418656664526427944157206696306831757092736693638470615253758391418139257634939177215669534805682466086794444520051695551449900043051812354998999628189504386291372970379262319720032346284878632561573705324986405210307388939410158413383846205327209229461690972682525982527733885753647517660077039736101309481777435901589267878213336177225475277409803952175699660708769433260300028800375562261989671586226703556851474727727481062732778557416724455443589860311753601086704461536495659414741892362832049108324709647292765256819727959490436452490473488113071669694535896915163079599319202864473448215641616632361249225809652435710715906461181899472507526020656635818300094543130230069226168298889270706194622757128847569064067057427172222227815423221068172819799144258828784052171011490361279809126739419996404800649084407509462976671337727689788181265028516223534981672137135684520509276930932246237874030457477548915213033338582862804406210107400561354606902851516842464020277908718761085395493861760133459034245883172355755831464823381536735139890390216949898134499670076861611280074416287614645402261708199225243184452605962407229666077597223345849292001900899800527617519841236470630862600659750580500641739001151974314690684705049998514917799504211568611239856391960357537310696696654505371851922654881305590716888703575898609514856112961400955310737377847932300765815217209381613170094721274341790996516847608222541839263074784760804348015484549040738560197003892450102509360678032540051994088863103372591568949542194727635375649014351444270641288912841036918035127976995977462200904446208014553026836595578013387754736650529701168105396690975899025483500582208387756134461757136277140174953970605351763336327112906372346453507684939200431379259095164526299452007457516403701130559753135636390887886570635716770436897622836912575564333823451611288429439359691568547197754696776851472853111921746393734067445804743765973539509530493578125032026351756932185674077990313890853022423996353534126959478701606810134132810134578043674732348385310047546322353376644502579594143798507549517504771249680086656518132945978353253388648048914426797576799711395170580414462641295055819392390436769660278702023034939983077472778999337500951609698032731072947790608050455665227605100145079362580851793650079150042306925602579800514150519085622104045241044227317445725584134734226576742663220150945290342938940369463446849417341224879830717320410680797409063079782596582663217648298210672913478889987678425429760600653992593435334597539797553639729568293269545078843825248699086102623023084159436954223894669818304642475522468277672073533474602683813096929592959265258712918824165675172513486352644543345751609697463971397755906480684351318782936493544118495646619450979425143347667184046513341575430014784067675753284233981513660861230957255207156710764024386536539528777290581684925673122275283867758819409604048951813349500583760991171578028612385046820674377248157005975636958268618063668188103938117883811181089014885040968542855019324467408230904865200611634974573127184881042917143431886636335162737131118166875988303351152566667581928956723267544921735122247341896203462579554038279935132932673435319543601001510276357625174175345344536321704656915539604668747889087293829077147176596347945693905778694720189008189912057377857767283080888354732324222592690982570244918317447346198646056487165846315084017666216452455687541800475786093110717705276461787108255079798607951044206847632698638348089459379295258743221911112489204312965828061920908011454128586065842690247304043789749271403090274082785502644909108802360951314705809893315553294763058694589386403487638230457020039329837834575096142060263554904250781108961505126579874818159460444945227645120024253797114790360301367467462067744435150928154196872341382524189765050189061426099038967653248743253917667457828660076282891958967047533346147772169788167791921295000546786076592003119239245560435890402744683086180554368047503908004486334941021109629326944746989403121983908539298317373600130087773279114274775641568240183931360948291360197865004182237280225545071306026486818321461575803733284092506299993683191137215267446595933970837962847208469094229037340084889024757075850634088673774812212786584772389998413454930032171210260607005663424096154306982280485029599153206515878413829422863556702271755052852658189963354904459888953315190703128456018971636702335188979350671377663385064942591722599823923826676926764603976751445156620646198736963447094958916019021583850900382747791380972449819985084162188399924378961976487902155071810155458725330636518336838112305786615639303476117400991208021918845888523314355103731857413562125529529011472257359070940534143417686069333608058255691325903821166490583958969368631295816692076798808317964170307131657921057413807861974440015011684927487915002626964618169956168233141570720061806059479817650561040293015920833324277000383480999743038972199044911808005950501534657803099109591787131190982080391262027627708531530431953605435274822211685175381103037857604928835447407574094622027198723846775867224200311545162830363841615913098549261599136963881493273930234891764664308315164980474143691399473745713005801866041010117103383019332451663123888246853919078075547703923144311431155221697320613496062172053722862682178723503780961478719302770051043227106902915439589670956099745777241065320724410460296867507601208248747283213625115891806629521068240130453888682918874734668105657128357060700211061841906076218796486105951004017168522634765694739491471296600275236039532154883449382266830041999286047247610188981662251254817357620717193197222362517245440059112085160496735241656903115664061004553905722032133304393169688486793051198841149737936060986746517198222181457133698882680960526048213905870402635082483531571152036112992836289727877872908536983660760806942037199875787495894333609950349832288967437650556923514785519544539357589422892445057795030867364732564352447351253330152378162255304282412772969849839435028961850914223382748295342796659286835212961289789763138752897803028873731980073560459143346147461191830360306203744338153273634270022342482190906684982611470046532009887548704239488008468635094735216052365389133979299777533196178922694802247973320686026764724566042238350221831427267981721257940027389256864748342160258149184526699052381770052093041757398835823432847732296569955300379099248428154768845118107418627927202355529396612588738130075295362316364345953888140078797758157874840915715827738014610104451198343011350484602313450704862280003102397390684492346740478305136530504740352357935006353812870790446191025686531266397549711525736702662432401667606418015305746697983029047574415802998142382537182160694425480627683445778708831433987553942713816403866324695588689269638898365054887391282201703937090149825446387347748918080197332693396648937046205943355536521534418432106110331118114111370501324632816340811471017032699070648948241577780340298323922454646520026662999793287200947921571715997303233921013827026019192538685460142631639829033269867949998564570620979492775952095278714974512089154175587463262670534908368434935101109530092477005004215774441761219173965447171537767169654117003423540567887930551085329145687828629238893474979201327332236086122240345126692788251923223738774196708047560994414929508163870636069216997827457840101453193117237094662897039365468115810582014983513294302027923406145398506581054930463461170588210208348143177417684401807645822690757661175578594863864223839294956325578438967335505023929647456891872835872792511780811715317422120552076817202010714158615100457465102106139140530121564228854929657358276948947159794900172522472661495105733145247029568316764501720482935772342634245340063925785860355848763467544593595992530203833410076870377305678744422154403140689475217316222304402519958364603457774102747804371585337377460011730342143865578784000996886419999694545011613121497003475127900293961107208486878929551834405948576290135610864927131143718641674801067414917180136079759272429904791142031830509900022181341757860036031826604635237174483087454683468968481741142387511027878239379241862824384874020683874662124771701720818474471905439283138200160615839999607400198648139362817251204889151631277083002710331332635521737267808946708043123088948713366483667878610505972675802262269931101185562757832642932559479483950938560802051966765786469405513484213287255512530103361849525493200557719987243423941134991625896951937623835313019061777368958489738364607287413147881785205501501806547942111981955163361972315142398373707827021039466955938257142442819456450469146901281582634578572229687585665537410600817586053580603492368243228723298877450478161250574379780299020021732932978376526728427465368511645065735195033138987393386602136476632597306926288009442418907199103641939420555843490573642300045818257494629854965247514171421769714858756319406464972032949082475662326259050069686338515915065901587879911544597700827858313432391892737774921466202268430558796068977358162817622742082434069323839169733191810700339567222371218499785937872105853363757943686157478676752794045084950548758106020397590267157181355192579485122457174187597592993429225694827637331041464405950232400428332182332225059629111854084027410106108990839194342101792156331024571616541963446072270156065756726506796412683005654551319246681344939046227724911825413517756872979861402817180761568605974017139182077502212265637201839629606928367496271088545735183935578220154300599828648083178801485149289241817821589477098125054149425018107385018025893349640673418028469107791915415084642082360136271221587273752006191232897131851634722870420971467036063131201135836881500596937107895631894102055481025906810703370685986951651214900067591525013352673947697008767933360558081659621149738316560312990070071784256526842309330900072052005924292370377392078357338549544364708111514231094552746244530589381646598525296700833643560740149596949068840857423169060655420934322631216389193987776138652297442807461074488253803662437467904627956353688988721191139690649730065038126235516601776425019061474692879323620810738437619129809892795648474112349850789210617459258693589377781454639022219456178157813998455831294470051496630486475501742144577611256562962406143817782270007120411140302543725678249308689660686054628197143905747171435882046126078872170932042162215121775625949461184502401943144177135772343756036937181946203349778717628118634460419574563744578959597594952124404534761296885279092021107372973005770000434017374356323147498343736764908850707254413870442928390719055514502466509235666224923228272789678580884633664542629452659692360948681406233317920319438496725601445662383811881350246590045540609121280145278002776434675821632245201941596603093381661566123896732618482594017963259868788987274961690116754673894083438345598290368572264849201156998134901634766550019712090278203758012911736571403709896393842659463514056742649218209212700443885302210582471052468135365941510518376109830163038391774639974112828521062344637322488684764678540917156969935047394531913985806419603618059206746076542068386352508610605079940676676633020347781965954297570092343169694612548056858906787322566086774597472185557966754551321889260219844422326083904876601806662393870894163688497402877363248597433223071664806200259350296777483140809611536055864100059308401312228303201377965601363040974294571533486093888593055994742827927113994839381060455201105044736307790156222396571403614978186336699222881704380776640925554229013753159171201111271173724939223079426813865839767785670599995924524285751060925523705504265549369394568937651229578544687002130058580048556746641852640302951639484079674500011390781967323643890783487984978544012408401604003799872872413277514222328885118334923896800995114151694738280130942803807386422279773943574256970572107746283368254324642700985793673829819916626660062220942067123958914736507545833388532927583056453886976856038712418226276441553911693972442209698894682881041561858462145750747067433196196388971291491442877775329097525001080116889685602673985584400251464979263731683841669447478752432977855253106572880592669667034320830056939299438758947551888201573947119347465693073230881190159248485802754716713418056492698293400239289996119674673234004813852064965092270370520283924262133815802704308273629270047505607211191407816276603723747952448038575926393380181871059211737049339770972219117675678519990141277266827222734824441606896879671359413362775552766982996977613562252143127975897531183950808289352465413439953424972246398586587139632392233056091452316147200154941768656126967223398099954297496458306494121349285985602870229808104245166077846043492547115294034856157038907769717669302752120902409363655331915604531080068310914111751785245458764404817314356612583472681641900013411660830952734000173839441972516310224145481563325148958097389675645738805941854666818938173889156048501976059729999591384685902419538455879548225196543962551690212385298200350343290010412727940893090560593975457694436039472369259402027172174680504605912662776911636933597774955141645121273563863109591494260721610427305062342585755548836694664931501916249010863596292220649959643653753220778197531592393022009681832468108081744415063951999452651279001891598816899117331381439376558680383490694533016263084250613856559073305642528525731161197726728479636444860918597603599226667609558800899036768855780028467030367448011275201536989330125219225706734917135222721841023280133458037055684895844733410168988060392884848720048934827485263513122610524924706017428096984419408122896005810806482118141959659603879186080453134156534218293588528832204558752636864618561324006356883908619612339724342967344767838006826252041321109244160649780746478889050499138455262695977858661395006480923782855734712247574520420830346281112054051829943898378812848669934544290184324641221471772289780838637468815591227413367893547251040843694986314772993671218631074970838184877474562745183456358525804373598603178648728444038409666475821840312188423073421922954348672111739832414053482865379967596166314269798361321409261303489149934755196787495377206451337880134446709685203152215767465461483575413234520157791601003416391527203167128781062035539384612087052429333552503769883289367542046614288120488131592037238842465662474400524867266585989115596916134221142355381636481647334865874043902530073778733565311364478110498253812328667087282786041325990825544309051700428776592847842885801846213924961281687328661465838020398893044358173690050222518631000369060204046328259606747523173366514953869580839455192669634273386787303715431073221029517426111283779983594450413628506459168253804067272633806084009595155919008429157288997645481992363510670013800186800490418376759099486183769047113414314177892054069862438614554956724916512534160515449235804439641893328409947700893019562184929163699345435724098507467987448695646223138759434566283773539652292779593891870292687673474127948068814217606251840055883926107798246140293136033239571187887281530275969232866336173648348237464585276922549144657445427075805074108998081837093502933075941831000778530360359820599425957588847599649089732221847707743163825441610265633795059011585664905136213114820519381559376272950449625046117955598379302119822544043487493983664757729960232770441289439311861905249673042848967934402744158392031385944162932845811824303009753146867583670335966490887737009898870021659015080713513199220405057588356229168120108455299955075081195931551792057823849247995594620827203776151897841928272558380904657651249000655596168609064961174545972906591394387712046485826230416226434896299913785433470741748071367905893964039384866284178358946740484949169233920870783308985700836581433142312702697579103023066535701614441344342348682569806603851833557298488414715813631826779697186145597559844994626668203960676164346248879787144889230019790255310374251782819262660587115887643382945021715391960344693151236978198113873918136583910378593201531352873458760718094505144146836943939939692628010884878203026592488732236119044676016739936806667336362848714552683048174265895274502514390030874010401571825809703823261568394703468943989863646338241768915789169861515782119723744424111093742902854826142246622153034881578387103126192045840475669673621198658609246569985453039735136639162381916268288062728404342841219808915392599884482832410630299934531056870351043512970823658093058393398619350214576144136957408954639443876805749422342614459785674487879896791923597899366108735434946116521528665850557399729924138792773510359044219346018219682342230950944095339608915779015655177887370654844546764358719383862438391554661640033632515848130929910786101774250368683053476687252087550141927818744425371509647860278584580198296533882416297774327430349768481636559720787814975529513202807011872997887616920657532814885673535036449725968423645236720742633420120513473639800287441236467257872398902008838604239621200847372382634191854330179370445429500241386171573469989455680048530717178794665443426832690574942479820698368249523023874087867713065097989038180276719515532071396488841585600558428614204117770249120346050048630442864937473306050906987738584032280651719904379656061737263739809131298984674082708674321140843987892715922807299116890413091434002639554622050630806744496733436375719269569613161962572761591996448074089411934943758980760051973171010315213402263314872558865928259419755955839096736789229482270381951121733433727473085961687235792836444653158362414490962515361346574529227908028206020903994342150017903123615384348862025935799904296128806124096074718107952131421001508881197371437204319606911386973810852672559011273981346588295917102591498155566788625889077066998895256377752733169760676932598437143953865054295061075404538083752801340003065013708487902314451731645425482503026107731251916976915966281119416643281415477769128383469581801406612436700936672854846200764635661344699258066479486639593343618800028582103431474063596776190277985869630164585428392657255801817840453337593417428079905873841332462021845933948973532816070615832790209614809392295541594549862173191490076116732601944790538151954142347050329382515868024351203507088431350042227146408008260452268832512931489444294714053398725651893272007783405999926960505998913306773140559912477947876142155599263394689534905717765432847914866786749391894710462824821185617528725868474983716954061511667600679935357157972244621882053419803940209643319588691775778519647165668659387019467870956253208523827154853359960567828379120081598375183662553373936318598748410387813920462255811755788777325179944529166931861754872316115252659514700884606718834246566994557964539518689148734377782403583234003031430622697564490401589944448602108410429654712476730668508288396883242337096746108163409773179941314888482620219678318011474077031818104767465407014525393104583730281105820934961306886527410718273588848343856884044214417501063447018082838621904493945539153314328358479348968964129363749321452486238358473185318002910124860472473792253857444592209426503295094517571803743208366369852890429230020336343690186579621086052515902116554593809884113560741757177636786619296870100677003699474895492662822369450567170471438790303740670868748079010412386248740026270857331325792468190125108841835626876848948343642761030807032397103914227317395139570750699637250018397727970675849795847211494432668727998698032570986758016205515259204255744530827780191767602721198518815097295598606546901227026000886261596465000047489084573706907749619042414755104974135572239709845595200964700273261866425721203243752978105808843767893532490529914103957419649863674535925720723702371339079255899755463995701387644827871625353102863986170999481142966867496677479432102566022855239297618466983753186409795270242989351149190604976447074468659752696858415554282288798565459260486563815718076132960473252920957550836658546323571467486876996309807498029497078838949092375166429291899022115046989036635214245548835066564971210714535208490241358013441143396731422478745179147112319722947967149631740770486916308998457331218649253484586328627657523972691526035100877241771365864838129987628543074920459267846312144713330760567024287065154817239279789315748903073828690733493506601161408140732283334199678166299247833509928926593325430781026232856792557253870550743660079556799991449766432338304813729859648297390003593972033295997263548661681764899689686611314108766358275055814452356940715747245787749612249181519524880362472604057962923210323737736861110211673150511470924336565702600055977927848021779071724506219515496279320756363960390055093007063360975554603476088929023071396832062117822421853800630320237853562597205736203160021377896178016403348675073126605941918265468482276581396572911055870083752297756756575460657830412210720841562032285005060515927594799785572271026451002659966278553706014548973863956714751722228370210550033729651251905849494459808211737985349749663205980234723445750924315785092892408725014002769639905324863300649427621685096920566963611621777808246065530659342801009405826666550265007022238542013420199947117822723516235935306625263912990090607829959251870610254818123084469000002545007397696545125484638257449626019839106350397434553836600588643738571468087303096893716369822990639355156733248571444364666898116219408813764517899601511264137669530395494683548656320103947826128562970627729089896320916881599284883338864274617169103814022759361144158216927131423073933163699111125673062432154042686167090121484802685062257675143257943352889372983788981882983715585161643014457794057486997773245242427326049029976262956802888055892460206184027160331055668378933872499951329768107298050502864189177932208783169373519818159850424443570785185363251567785203539735937210128700515576668107548181692459562973128659548977911477094358823138301407852792641058044451181136794943018089218671177293321553164352469169344410846874218278400748720031111675750166046468237349046399018755390275327971182556316111004971409432601739215771334279764937783077520875786327208806043279967172551465560760850797634109833886129427035691536353322842300205745672270409073734734767425008089245021821774625018762536936844083850854687474294138316045987339561161636950114419314726168832228296980903622790826916240467971225099927911846287459993436518324947134517504581073869004709328702675452477579525024469619169017384683365286047959142169318917140267721002858205447424218564187839724436858152767072192546045131647627473666218291384069434837673056860207756674361907511885201449886978103907221137125487127038863985175920052242539003887650553912790459251655630005909290957936934136413682104877307807250732785905758230726220025496846403952104066121453730230834170631679307691287399915490622449043600287708248790085907612810076946590208580614585785780361970683320334126768355250785128794934398153256130839570741493444395462807097097090736877131798249053419584290129799247694219859367404875659843921399232692611995752781520956523127294205132825533134745717358771852907475627537762340435634660020611018392327811345771541013599079107516909079320582402851584754282628010162134396255259894148139530219310519496278946452896540197827943879404321020660139297142697717007824813913934009615029103486656329916077073496714768223018884138942326972154881517156755007576981459905917793558990813430121830005073608865378336893379434959724909136516202893186194612138857320654545789132980355493841467849699846473846075327780164916761533360251349345526638899754204873116677034546982559388909000545085395910238805509890415173514288214535405202863486811352915917261194037740406760046882956436146671216447482920218925398800454728911094792122169794163403075801843263283379074238653070410903866331379106465249286963402055895826240233472918894404168416159258689868149678303775401449498407961342737778953092742891921310655767283921720364881018198728136859193935791400573796564383767574062528823466273096952591558396020215947542020782076453661206466715175203377281702408836651150264181101354698221058499342651722420420177020955001072025348114036450550116324479278005765383078652139234074337415402116829233586486405707601187101952477173388709247292921834958473478201627943207809451809228943253826262383004460323534635791216198504755436699451292288093308600637463784198105011684528495576321687385948368409531040234433596412527915267502267848067011000613773674807673474641308275139515239300790229768134711772592904611430740540808447651681010028562304495950269908218606971476445387694847640402627499716229508605962469360173322046552301240807778009769283930452844615531928993388639256185916966630731117199217765168612087904627505966156289067747900751149989659726074911007200483099985840466553676912775341546405175724299446467112815877254214726764064321688368217422933556293593419836840952731096892023193404335845672960034219900195810884930325485349273648447075288636748810305302695798816350292075562962336945837967384830525359882018666681044461550073606397513605918838759767880954637665449971307964099615023313632607315973599236446418702991288725849231080075675618304357216260309822068175168613867346036422835360376574046792273177303400997869882795266033934311778551936323879863509037248668931332390552459585688973890645730081851737318938302261981965783748061976365074136088940674414990526035106374711210428526640109957387802336876316121473352366619263619823812491687337431034556443935214077808818967194265631681592514706331602993813801317968125176215172726796243550240296349001415082961505556275384667256467824869973910618442559238859473007203012871750759686622524968046954954025692147167891860893974299072063798665434381354841951755783319801708924852310011196799418649651419116443081291033044140781435532644731568616081419492226329250713037507255718730608358201566297524591177194749667893654714479009152705084780933406519808290168565680650254313606774707653345218313403344065859460766786436949136454422570245299490431727284934833878835088487415942601031266558021433343850213511436218594261663301901148252202966578504381551501481103007015210809275817311057808974974758711376669250439841997396150673113071197407754614863326102996468045150381014514847372681477796936080401990220893568345947341763918165809268714418281553072305581011195118146014463368222294815205371672191500453770666834861900509240460682097520143776636429547636206840849975693314406050695411504567392133958858450969076186108701719850621703596699677446892257105142535952593746952506728186196115496894216351006698960699685473379875983566995683329103442610027224698562097767105700187116488544812199780158706935977613655535635295573661530438096532641141360827149211568940886661085571764896792210095437510396888742237261282227751475013913180418766643869448353135763495139733517454290049860464950252327454721738860434729749573600161568708330767288812063592009712179245010662223035648882153769552094864747143281487792434606814225359917913327371657521908986674086418599773666163018997723411244640162475946601335694918789211890681093983374677238612065911293147665135745702248645100316187836507026254628214507738840169069463627293860231071809950547742931019291909060853573868397017879283699066352352114952081187692284211115653101001410559925229364426622183954998780021632132686860810524532746680778813568547833034843262654707213664980144223568965980581449278922132034857637829977123492588583792337321917746419031628972534474496969421367335306824905996594977047514905130251269610140511149324928711285738456827285088939154214445953176524163107239302178687459608613496741841957350436536482870518294322877851055517538057960063647498973516836833936832783394833410787984107596169856202663794699133924195189453553400696272211610720478699837646875005483695744078222360249909571182217484545366444777597355837288564714213355604173688081752257785264665848677613542906375495650508146309469662232244190942646588050084296836298663986220757503775052455840782024457321349829668717546379286413253473815390153882391118137436125102150956031902756355013330565558235735723450052772419212596851616754244652826810393476187414918984941617979874280967011281761788452036046773868386640853472776390240003480107287597390278555557434209041677811708210108322950139051093237393179007569693110629035604619810927630672533770111987490067608528671297847419448203229772532469338891974491683256960485969375742046118111868160363349558327134463012191307916808603811316535292581437346112103292060352873789526716970740411399438833306802227583391217380417997601383964617091236071433872497707481707535609275713506284162458377129304911241721881190934079443135292014232042403887069120053301653909811450477610696099344515980472893653753208239580067617417434123645154169439252674801945905755842952156670174406357742916783184822326035538710714164040043226402369235921871585177914038328133658971996815885811514762166778063569617117987236116421195186014124383381900437438353514952427432417293261958760153789465881741749848673732195868610807930888583834374670851482321971774051272501253668004396037366214403170406283067752695468579253913812538008127257906427722255231818221448606029943360762547719760621264478201944066779564935917716059269817830996255540781037933907557643606191380024433126364322495224219722063099856017685455846689152192424495409417187749584796153381215892144775388222583204557849392412879270041326062461157738138445474449100241437647725359537566522901437964051524582137080124697922572634541292790166574570913950371410067762504999620497177602448925110987949729508714126107522296937712782474105961384121635712117235819299358527887302213398128127436876504636503654978856712998252326825123047856433203284855117387114340175274882753654529657171453076607629519934052696960173274179602618906316968747743203827105420449991298575938156409001050892092694266077979309819550603074469085864060852874523145734657934353118571770636416582760822295844907598660009198817831269350996428809571725210613949892965489493916276604577714334232759730546396548674020287127257061881645649024411212054997232037143780909407270990759209913366706984694743991810084227644234758454375830021621957073227205957024173513311132488874139736772672186207354396507574716097963560744905969978054801467636700077810466577140542245632628829646667865076127867930379232442414175878856114110865664923358477401067190739513452497742604675534861138618216199631206933588082011112715875561748364015028832619150548508033519384984403654938817238920739890731784233204647376566478635209143122153568225574459940954186288818667081740169147739928656138066841453692828745443984951698328743422450092510595621053785815134893693911081579524670564448291735702760907921053287772902505751229845771968487768668507850412022170268717866210559158871481630940365957708726212327031001599730384599514021768762463545750521956037289703254535064071708236160948490675007663847024608344959486250452638951961464232296868709164206907006812414541249095768391329625717063453947251716904069742554430918527138802204545516934560702611190227640115540774180968285705644892344652635220517149002037955117811422079177260607970939138695781149424564419138053159403815755173239163073071916313883261207842560734150668912949112109547292664397992264363588873884835366266274015697477527475735506648800468443301986395118842806450909994788860946036729007581572139583991569103468341887302189727668656300841778833011567932674863626814723004249344287385141718593304451204618153739304982514282535681463711266524772332106488530388213408009452870665101241680215795055808087106753558372388677092108090039905385181822070169332891183362296022708194828336168419169457399084860831939725009609782001628741042975239496578942328758359652324452930133443988141221106274835298157543059793469318160599888487246984899119115566186267629931441204365572596089816148365722139982137194419184346354638445963854659228550482709710562865909704846103678044249868232006165155578494121894408987859394309091107268560403455384414939181121447625841731861128373467328475974805512784939035244058196159255272137893493130450411179448956119750778256311385322317589992401256707079560318717972502944936407432084360102706277658790252832057970424427384858325654345369700349272990177978375794020799531006981968912079763338046416992473266810249269747762180644575452688837395864043393585300009979442973783785936715331176689857383949676524311790393865164410020480208954691446439928936987414848789976394794020929142820152317094292506473381059119867814590152180568297764438826502194977503862950384617274957602049422090324132306731964271939516515756982883670032839755413114391085955771572402887696330254220089162145422181957888937810210136981845070056426453744706567383879644635421965818019086131426752721486773064719536074569795288221261260131565507236988900156858014740904613643565338236027020740939269356410461309297024053269329034930599162445520670932666816232713708479771795429538096818962093744204381608852436479776499925361461655372857283660639874779155859748913323528906845358911021274897606845046970339641896357873716178417637083497234615388567967731503421425187371778666851093142413288839178121388226057085654152357695321521647939695923773494968354145245439478868473370268732269121915547106168609760324544052495317806913134523348827507391105330803395792518897595937502648121208428291960979493265050782427764212481391884640980446214080552901150721490156902730749762040832016273644680076676286828029319313640424706445923462676600303679877188626653261863779336434248146712476726141638483396847070761352239196288890358308502013584204302817607053004184438377715627102936480106608637339410580267988751231813147205770317282734880726286316520490242288902889331371832845419138872558542832889488442206639924587033615470703905314516409062491693143165658251104452661632329178713596459861615006150627204502204840830416155378054887848733985161791557407563738958899758859678701784244860382870402096305737537775972478038159881313653604426685958060837460037373464907972520559823960177808537711978800352560179083363721280102068422771063675127568215336489969065924846789220535018299563641419126260299627825383230243638454980156897056735323751663513179765722727204554025254859290047107937855031728295568101243780995793522859970689992670361870611376404289365553603280930204456496430707157276845338739820217882449223446599161095635122691676764310861291904620793204150000301337001333761645174580246115144638031860182945567152697220692053994029815654199598531367556343832991448237461074941962816309120319001662396846951404560217702648380035114551734946563054618500875783564837926731082723413609124007669720401161404176828576291475066298751043103511269162794514446143202396809778825922421652330908588765524572988413725784349025211396478408352041393211459389829516582896501540620249309902099865551949019908408443466801648061729266827177125380521512139634027589651756654534744449694415128309680148624284038841408608789442247933491059268210896101279553960128793617741628872225008583757068007936991615202392256325247265985352748940183521603496484952656508387002628581894425728411114516005389684815269985229559089500770797407424114539390583812182104275238136953252539674423547328831544169552917476320754012307533851824581841022439984814183823987084152681402831176891228368405127983199777187919720029803749628408431602076278794267730265519939946405494349088660061077265018136896269471280383661033930786246591553156585665402671347356331298544261708627231752599790877334141984920996697724839852230059463841854849512427189620203904380371890825930077509802539513606605096689360878808142731672703994629383510968856644467378598947327251597400333970109794644093664938889283558564225167527500484378887954396099093364260566003966885056079264192244425711807378306773575126430569596629711464462107060118002560313895764482550600427051558699722345471752842190961076242155551138012721059642833655233900863999917891534428847148628569566517868042037457024601745568524189928978738262958463735307803695017452307777104463881953235739992904487697186964105826307055459635246751111257532051579236511369897810211850610302463315024128528996512812871526024148587640912866686512601302056127938140783345268381026501733383950328462223840952802197644129170471451985469441778577163204412299621538440839718269345467046915104469185715301121065925171342148946198600110043739012738745900066195932246762531817183276025386858369676408492949871621216201214460660344733985656082962087404904227839966925712457856715113884863421844155365193648683092255101298537147235167564545485380070277137496062435808631643397385582795660463732520378978613141399357337912459378948818358910833444908432256246807247779307707324810832046023820257750195162348044778003671202163975764116122946339541711810567058892123004915917563451650707221585454520049699320023046330676241856268080948359681303571373375980672995906275967435973426490118394297919732777191206806907672059908659430833329854229239221211088050422048976337151778380086964108241128001763871055106625294722422601466811586288814293949798583311416331353063203726450323228103078269577070673472754727602134007426249642378398226003469058906540173586181096130191131544778015315263867294563713079534391574343451947333621206474313640064241647351468059507561724487781079969542203757114277171541327227612850015397154746632309794067521920109765146325703283488854815022077797578244891540460180058535934279663609790171572182379154660078266607564215073854556413544127982788245774773756768164396772430973714010530067139478170343357706129641473106757667194884893424714654283841936250554931783508702284997880774897494482347486472337327785848449419932679012470475058958978863671831028004948015361891828354200475184441756954644881287588126638419470580523486698426140954579742807191201625938118375771165362279447958136298909488027233491823849358009405860219331802164746540905875587184632794614025962874789754421311092793925732352081678990953175036624093234620224111683730030195946249258641925844395141949525819049498631905564804036725558038062002472519918318949163884738190287205745246714730219372584903103957288858113760094025608007346093949694115412277620954904866169014081857956591817877800425499083102652765699340394430103110960786709554554718384877660939300143694802088475807188486048072849784501054604725305824258001298626162149772953194422812245420953499306961996703450053875965441878669151442717165899296817240735127223732606967116598244954740810378696907915227709079491382338111058033619936360223083366807185748143373704454671002725753749399498451941169233420709405794202738680280981631904439229890923578951871106555126843661800211033352748139977743744840634638001764553475976945154982678019539322854122126178556543527892444641856624807250824250503365001495708394440191053049339230592397339022812595555910792127931119191991110447853572957121011303800859288216845709188985264161846369351281716074553076846703394303469754521383098671395338959711836849088614713943790447226745410165542368913960918843390354326360870248526454620767854557343281975306942741226097391189288048676269974608576036977439662036569740206704814242298050116990954838926744423011192713442495708344843845188299041124705766836566626069704908499558590958275178884460767783365374867339808274648309608565180815909915001057447100921576249131156222832987238679990736252633006875015376054048224455391856558959041795417521972075030549206109416743306329242759240451281554864811838240457177257978017328124509454413539347826514974291925844116508250213865326701954049648968082820498512460326811379453300877303786600899988411064186917795361531328609680293470030374666450931220881838453255241187359360322902956646401561935463663311494325409431130391365652801472244838575283608433846846934540957008702302997722971452933565306982361484926365401892971960401858535760077783575902766787545123454292745716951944225997153982345575944505220735581215042787398134884052406777652187539390261050271739075744815051318117741882898929062932674822274114958695953828864169357646019060511668098727874420268885797274152252919776332370853773264430550660252610820984946410339654321434257794348336312631210155620151802131670343735088911042159573456313291035921747047329609997685010103779983953460186223904159855823207934056262074010401629598767360551920076729636603345901673282734249231380887362187353221277325248238393100967899818999798946301446660373566345591549228045412869758732512762200585935851997079973883692177000274740493783495863206043803075853760991672085168940854018665426439808309466086104924701807890894865265774185463726433167121016772946916497017254841574267421127216219077029466931250873532608905999290970958386934053815518080511140435687666406470493872804339070770032709333856707814818711565886945845310468395472997080855665538147743061260221546996995527484525465202881272637499165686570300631719173275252268411484632930907436427684884273786730294368108276442799361991985534537521377289281381429217729493300137957534765824528208387481670124018677744004608738102129182641837318095593225146264613070592212762704913334405508531699703976403471795112770987566170982704577617854935975589419955198812061346946472859170664279293164761699044210660854507986436192544869753743963150795414566046937594795874268493336881433361624544031296810558420801030296416844743122781361743233127906240645518846052479989681186229476628652741657376150932318873243076239545336213974262470759397856195379225347791024678621912831989182993531448348464143341910322736375856123706406597098188258631420068080143231341774656445063394671355814536535772295614592837548982233943484916385931468442515043263537206558009649533389972992838092683973682453044161089379278101273405556887675779073559286505619093823661420629697867455365841222540227467759175507164797196864228948889328093045157354944402817899952812609673258926208412451635809717057262581356098377136877583914496460987958041490853790220547890230469511579110930831065713516624840813735745365684937659289902496250247368257740121944818867424445575486881780598489619648359088995590839009018435847068466176891456471090421519716498151991654651683826508573021540117919191436032532160688322383298722918714103850344234506815280456042376528657870063906775743603984451771652910917544555708797732754716740401511973517268533542282429906987796238416930363171152870435665171408887670639568853861711405935407115117690666288571580271144603594024719167918884440245649771341967264293974303758741506676278010196449711558709091581555455927096063803912759354459631770780460379059420994869846482734613137111396707301581495109239078777112876029232106505640563766964982661710880286748213785529861177165158288534152163217641934244035076441153415332130524132638950214534071051531329493817547558239863181693518452872405921547945269864224424971281653214261758709879830340905299953441864927542802564234824817674668830575956999449913654364483711750461660554465988387336788241709887043513708940339234906727743584601927047950695671726791851180839681789874551480346182795406643454971526398873960785159167630572561329107808984036950181730547699895388258186031419630754872107498433055355925536417462281735115106696155747357635816504151327898106674063740924294204186009159344045658807258709040428386985943757676412667743335121025650079618578119050903017812310421045147151840423327074686081444273369088682097021556735722752402574364720961029590160953763583338311022457906421312350117984961865312371649018669848883708817649389024194262457400758070928584522288216539422524232680610862507543421640947722841158760679218465260098645539994981095799933311962064522894517991873387725435797982724974422826033064168574674318002019310948416505470804149101070226025017391014306772287966731967398534404955899252812334827245364287996599572112983409201648105415125003763326722566735326656757342595329517841762292424552447204129300075513952492219518724111034372591795450667921056589394232426504640572746114426179637536835879990729554706795200686949809597720459623899195256200203822772864671209635247725422425077205293078860802822308935136428361415600905611587394394605676344437628828858327902828090651771626395828532547695643809589344656680626157863325868869853326250124100610764500293017337751423428847084307762065909810994416484407074723536034515490813609747387150903207241574741893887410524445177763699684994442518636550613385685601206023978240737805642332106042506806590011564247611793292358978023310869442370159616148116537647145081521936934546147155236416970023397895794392574242757388975654911936851248939659166321707150995495787920180698489372379896997744414914349797381415129394714175464623473035202158580459633491281226502131626947765356712400267078688334428809926953623661172967399274266382929532567595682721856306547299487157614312183445800661542366094539539918492977228509503077763179152774571730621224087015585909861572221028743097463709343711248557742408742175191227477120681956492460586035843841095846751998896553017339788356119668575495643662725687566533149437018594973520836486974866012046416520181478745469393348418243354841962962554496800828585907873162910953716222474060747491934515906895251219503962519920325254456006841526595590835527744425217424199460967847360713863971744511916868721737649878776547172862634321112706413884245610900025103301324499738751931633470184195018612171011198809282702046200576809259383674770567108750462126872599697395357118374082283643516428941512873121130162434106523292870490837305400359895253023998791348559874130755690834679219264946371467980140202982517745482323679770798815527809073781819891602620693724670908188715427488474671610037171679828067145267286861607773290748240722921425656806167981361450661354787287461317339407022828248835292426640582920906439618744846189914717053484704275268581955999197850789883866964296967037404900669109334394577068993495467848641633842288141245433976999899475395873046002055297740644522866396478448707922247135578674399204981302558872280218979212939334783378121378479761535082224244687080007981059564492304511348074345154155863704298489986122984109690141023991135548967479372042769744005757372725024602606386665926336111169738956288543813829257146840261270467259660718328320352601698319176705875827948846112710493566586424392648560424773684712585319858380996111988588722863399811871168804737690626001134131103679921760277713006744466304423211123959719778273820494236936583607911113378440852491444035683929567848199096392223715762498295876192914744042571426622690580382868024589018654904522312972636522394338957255910714232853980480174935230798762745584689161421732347413332774189224629581815531533069761664210566087834760727051277863209627198863373381458651229138706506435000589840463629540065109036369686214401269963002423826440396258152965275768764419214725508995836564567887584656323927921049633188668776187667288307176989025465349564040093455110543080240953132316533304010162818586574663390323476321869828707367869823123312407902987612130420449714572903296764293169567405119536139539177656643403354167792629410741944086097653583596817778481662970340030555283176611969958346721806888847575756278585845644080385172835795055626558830766273191556057097241998418823992194733868241788843818007452772489970497615168658887124212428846160565218281267163936224156432697848142808433455632113245978785699243533996188246706042170673104761936469923332781332665873138859823480151934297278632251441986827709205636352894571600194973343521294129980220231551766806957955738440541710734097871898283157999414841821636457837328784583396303149242586573300006031846063314588348074521265616444815302970587581584871279877854231423298664936592570900149195775722348301837959447633486901715306794399677753679535014433585332638736672611445926697177701111181549290407199892966060305103684587695225669162515457512694979110504166761141779350484342714391607127725604606506631048766409860100912251795051471799575543308000375285826002442350696990181459915212249901078550745462644407398246968038540254810922582810487616952410785938741445952561469200697410319329969939470450126743855737318405143790109217017289780957612217036525874473934846325041080332159533008788141421098696998224884026257109768894783251563869506280640232272960328801601772322136828036103339557000171558145550356648495734774103675292277505842891528674008147286615967700787685209114585846613336231693875832552473836426259103631538943524058306946584720623702786115991925809394999130759210435274590987030721373953805254204450332937239447279534482035482477078171792859845558636522729575083519800944073200268945391652036553413616191705505586789362397468339383431329643139495172546085357257245985238011175099236801025032465535014600001227248001531686553155026179692440715028750052031076302304868272932011162089661345747406046617906350348612439743792858633794124315484847382571417990330009193474290760058065646781552432400053429687196290253481619094498674118483911755767129040690842859967364468084669409808598881568083848966544060159854129515103271843300094513173371339451606612914384731255092604329031364142941308637559096955621404860357830643239341821195295145382687996616457355416450295073103052755312884708706444911536007782511441762414065330245805904598243266254399357080460728911630851012527769219062006123763010234471480890403439353835832818398238490668034327162770994920115264482984877037087613722557616566540866705843890090450607328690865740087207583368296578214975856841371764038065529030269883465317032760378659111635378100012441543180298498863880209307481153332746431486071918977726992256378476345694303606170159253456339427404807299214312103181769216110152573920813988441709599248036707660217925181366453855000495656689094698044882597005850335830778183649971109734322965786235684662361754159035730377173315681292716176063776288000930270235663127829236097252331179956249757912710776102695048005582360750899369070684843580119566804649768229217683452623339594471863993671652515539318310799087711428096811938542216211999680991416886317594178199341158573224067711303900438412660790534626212040804537031007884733597868135966272068577628898993826210978777407591563827508571363552210573984456913812365707664731501874492448713531891251817015653310850614950255641653357558947820518132410293603376334430044625938950056852420310634021681325009220450403390159250179881851633906617031409809369523707974987299611725370096186197373803264190362247156674372612381065343208977531887920803650018185230164853525691998504004195281800783074622292552297513206744901798601161372593981027369820698861866768360581360281275213253815527915944068441082680388354043104204100421560937317538889036552723492694513577400692717649253457075449150716680739485642050334262750320942697263621390241409757663094183503673924019101258188760799337274333775806059247293961150050527013611198414541235422693108023413135348886373822817719558913760853199940865607558715820482850008649085754588535246279660260123305749366587594564853603396904120701253872438755032233341403539579275305444748176838539837939719110804897658588255438898044646297582354841289621803489555671213288718410417108937736810161981375521968310738873738202325092478578787018529980820479161463326125157290801909933863965337438093923696429299827717625643275380530421780449126374106683690962083631867120073959970687528546433329578583498764928507343577824439569896674420069971278728390267006834646192071974639988136624234578160233983994813968976240817256885974775321693390810227244197548945141026983974227564644005185753485651671220346380312281775112675068131487872968416134314973673200634873393762207622208592268542344386562804360692083318823494402758901415359938466431253066228861466697609492506785045961372102486653971810910631502990363275829515478133522640875618663303176839765644637890611566884400175089549589275132266740897322298105514079744679407173101124659135951411456685343723105133465383835148326572556073004683325992155520389440678711338787640667987395638214290640939630924527342727480494622864348238629948673177286230282436014545490734373949588600500906120642680231258196991177339593640694477706608526027161648975981307611332544418332135625732798570591146759553572852101295805409517026598926887715747535896630952461192420691223223098905437889072262284424133960634554787014618544818926269909831995628824160857763401464835021982178801231418312529662317693674883803261111091410595171111546772816463710441541160257518397363497504674937204335363556773732305199021829400946444228998195134727545362139190105028537381213968393860890825554968460132746215727625871645372244084948368896969998186836713001292929484525276513008484701897713634795801713870668852594870069129756339816996647922971721038242051053489575354802593776090215099905224516444592916805363254085515510676187511075486665325041518369347328441385994814379482676514038371051647435760447780539064209415691027379591108846436939641533133877495561533600751583772980656032452625077539694804121933289644257854190086588133013049938936713506427946087260354953415416997783103470726767138057747017719487435357364850973250863731091092751291471468457660006072194251693947899161666041675776382393821608926003367336569899067629202530103170511173495732791050674491692776587785261829493614568004000119889391850203877038452360231729622128842002465383961249831663771692282793222362947241960246664344806788729564464735528105150733937243443242641127822983017357594727745180096561996317466389589683396897786987586460595170192911535704554605535748072120335548568273284608592035348415687609076946243105708104744505882341280325440008908972052755024299069891974017443891763614618237226352913290921505054771698070995416513249847941901247888626419507100251193453620585269426842409145192409111342776079988909635689552762360429302141548803301283944261784677379477757598261461991035887997370448949944081768615493811588529032021580361368544432857457868270040789180531986324670988770592073167647158069671241562448009036709148970048427120551126273609048573378839660329372983045123954705960567136327966385401917833935543345683035127245433746068883552748935928889909620815265429346651156348095126433066988481563863074757951612727444732042947358818144756480796366894402047177206827677167096834934485144663865613001514576347143295237657633792841564481894591997245045304925028148117163236460294399419552983704776422833911567300907341336042498256397040199263969304068319860051556942028698876962773090085357307862043247515321662152219259946780427841106532908226610435752333701767152514330427450745022869877454984239639797435888737087404302366426205346046210513250241258545402679243631458164436594323344453786151399217437333162326451367358985646145029251660903830470933543991615899663235715001611376582827523098855153858523193226733075992651598857952032709059299793741825350989356055461274049305210173575744976595044167570286140708030299402597648021233902793938392770334786167803759253038792265836836814444520009691104464954687905243852130496999785753879768914434472979745637647930182848739047242416034626986269060518456601304078355919823770109540068474516545113865258362556012108466364220533689059223957398557621389879737930254224542505470901796854404998713884116339589908906607540084737632479589969103594411054362610883434688784133470502160493924562435656595879285100314289387080865569327908265946060348820983115429973476502405442283298674491534481742267054765288563342207281775392616422889250221938129320911616638999866413327204061653603669175336448029327545646484654705784467085495326275221121831559842491683317608748789595695919376808133507921933993647526621030544562792581849457253702071887953679159422536910189034619621051259974704698107699260736477927303415454883966324557453734173109182491112883221573465695785265909215334467575728816625365566757878156352087807411918174279041856595772592094808451174690607242085571612323565881673982220561225358169890207606142017589501129239809575852175317962603813214100731485850426573809502229759672971824242674458603115044174360600139821902119078173115935921628905220582701137943100039750518897684677822807585591826270875518033021799509723571169131704129499232527109431138946592778838460557041236274778825565736343624809767147468340468745038044012764709204204905081911800582331852325197901442798124480541267897841423348570948289916196639506235899957526416735282004488837821739017043813152013739934401959004670592691431982683464429414539989331903531683421389949328944237377975584836016237112384789142586876572531779584466006554228087627212067229579906625981543079997233768802539244019961644237177279477543355307458820424173177806531928134871040260666902716815091082268424890333889209255205165455437204248656079887354609416076834775430917653589881848311420410089200288218611635032645470658977514729158664225809981777032445995766857021724763013127449085701996487945560209934440527851090989911410891985586117076304446720906277798576881285686715730655762626702544642388635734282210770663788055889102447955902006666762311870355157522596732627049000324399563054880285003725126719936892870216516005694742994958068461024776982589289379331497936859828047252217786462992524589789111946053829573291404356639209406017778008144033640991828600358335072610360488118879307475341879932069127553458172407028769666655692169713681017480965486045617632554559694243884857805428053890392726750730384780452268763047631531342830145851221207545921150165939453408101121168369729998095307463363983764184626738519715606593998139464462256745426293200228055096924841597055979053687687367216469040154701659661337225578333347292157518748248614662765045002329824100737520400479432075922826324673207528024411844936796417146001977416776729136268878495144955391726990830580927950665476473854617409722412320093701615082201466966947900995464694610390210255183835337585385028382708159474560868549031426529989587976787006946642241319033543038303508733504119140458420899569812090940680787141578932549212749923662917250048185907482142468612602873205824486089150576491229262970570137279042409283295515306161381205552242074243064242145492581622454097739030179716381606659513300751986934964174417112994883381729414299572749333080661662697786299741321382819947222561968851136018651571298999743151448427630739864065795739349801319695240851821539121528306127259309140076799776691044251966117328411561715547024162154288783233338814069623761689742028159202651818303938915126410363817549233915774302879129815995627899559050115191480498472582735532641644539431400659490337097358183912756309723879312284161097074449865679444954524570978425986955082062566757974013987430176886699134322768087506714785427637825997952157360096149110542282142773436970398553718101584555550057501006686385205605268955692676558552565579872318592170511565821148771062460469687894983611206786621190137582526006627749892511821588214566025165207838896776664331868116813115744407781444859346282299977161714515647076340926390522753780518345632300835297387560780953313982122137953712351723534641947289837970824352975541614165582593111702989678118918013060640029292801099543990102293790325555099395784141630499405468568522398953169544381634605448356287381821953424603938567563782474833813806540383659642257204139761213443170646681459505336652418671646540608568258646593888488511909624022898860153308194710936553203617969572591714527083595764868910773666410966096162565621056253957898363889946447971756535956080709051156547095473670518015599227965750089040235755543407138036709402410110493274291587881152672373628562076934997860625428478497642793753527450804184342775541713438991243579906242624832866506597681177869765578596888241074864209603045285332464691177994984681056029051726342039987946599446299956656838507270496918927775982772546232038333560322561401007747500978338142232866472425631245190876316670530592499129294971266739957478262831084114189684497150322247401066051584364311514648320793854742733885733211030599473385013446895333637104951970450851479918503115661583933577239221841205334935012841726510918435391649708774141137063639537765330181929767623055329695151048670539428863928328340630112160956540351663181378368433821125779752394312819761815329882397681839796788552604901113901295100948686419723410456253395906496063707363807493844873260113107040805167234528408909673838766993791002134464457278505227767795594658289198547937828997935886178727169872677345358437285715035237291145350074986623364322901475345795196120350546898042550809470223788731257265336298060280238692320315051463748228137746269276466593060297896944004430529241475136884020131008604302076601673207690439595172746215735992754803813347761845091773389616147608794451271975067339362269049738365581694610313528099662144421164317011107245534892244735202755118682387063885321941636274550496459062267506268974342974494643521096981496461233689350705157924494201876406541090442455207816607398702531436257089144137942608632121789614482189573908750541835987176528699818291241112831581719748451254831834046077536301958502292875355218600467085755488724706339777687621651979965622515856383585196722424065973410290532201536860141321458802711811148043984987267280228944953215575659869356911574431075289523788243997557247985670060684297151471241762048922710721634728457774611133209965785599288479011878714196272678395008886171526236757979596791815993931766181016738749610471710186405388908946693435643380173096961804419072718433077493187836915274086525906546546856323607394582805652171978997885667905245531603538785707897671398625712064290755069103008188247819861081955797666139277410422470755874952304976553707046736687535368819987923096915019256155215164505447892467481369223228509108159927428857195889112617135866029170974353774163656618843459633147232622262283347362426276716017988010636711782044251826215201612987623147646709310401779227659780817207134608367928726028691150406579451078606769629687525863607812175296192659977345737725575408713672354403910957132797252867098644917656857591442783500671386550105761902094489227519641729754516910186819442253646841444856650038189841313921942282670921597014297348162698249541914867314499201040359131149595867452311416615001801503422305182437212212570763469120678086540125378608455029306624543471950793486617247945729884607242456690554438033331201217182118036006172522589134272277018727362042975514882527941042780539344702257524487926228033837046670827230268049696480974026076558939132478321702842309705027719887131418905179017824467784582965669546672275798414097440876774469934873378664000237236453753667931665114547021330458562640436505656251369762363476099022095320833735645179748868612453450531518613888873059590919643501317413765380851714254623913350743659264586062119977033627975959232603709666753623583950599549233027449632958908012092802804582026292640373410359733365438934760517690379350540129808671287395909807265399374169013126214812418132135000549597970212485613932492851612104090627632848323940893831059210136577381303866248069359821627959046294937590651984400940630451485041508199534833169855159771300362978687587220797524384318041799301616787159396103847985500692769338181261235409204181146315261744478382329073504054286476203935688127644223486459324135426775269149438274170413064883963870413193657795807355234172910084854206047839159115681716089125335718519088407117561601306573698267959285257010476314299085668139498051211636170380988697956853676131379828487532923266544915328905001091129229893315021699264299273797268972948694685078565546244738011982063059379677664186116246944010208391887783650393111341773266043057113521692959032532437803919174211816212352350578451374550041119061209950200746645849806816466689213933529097992391127381991696929207506870426001897522477395677269172582710699770222586358328554276752849661603662075798918721326566467881732348557356863071549111037708809097844598448362626015155587553787328047132924147836697742210212643970562294465749790736108330700731554875521349133123146211229778689405860811606720252066823194555455062142316787996783472116745679977179186541414786654465326134367725699529232709663333829713837484156833075002871581368862738932730695802058831491627344289859636479860747055502380002519686824236913791527367290148780746210817208786970501596394790414626676671807760520122584855377171421620840411381900574276058337080485474612202831542946413765875585655589645490948513528219601834564236237716631795410503384974810810892823005028268863396117748158104277918310038765864528500906880632327324017115456842996424262477659208244507637496523875548322962868934874593829844996054398785541841092717368655102477537492408469790376593922376096706310572492653039905511593554340198380705261174144331204068713710492400211756974935976044778644718862017687233156010335591586086143747480216983726253518550036320319105617856616865301481817751977922533586584635492606014662693923039101023594152759356535078329780495519162763297506345079111286444325083415899397823284210972807957537604215859556517506542378257291558721636095347211682009364390366769508211609665162617803895040443157836556133295210444752929837296823211860890963115178645686297905453314439106266864503957532163998193835988297147016683721425436721306768641521864672361247413406298067677741744850448150384887540291977245858936489496084547352790739361703962871832517632497873223279747980339734920653463040606083954549406427654489916977070791607299481774646961714749243526787308846230294163093160320947079394847688963334689460717164932589073081562424684195453841567540328665543611431756089580621244703957477577454363157219532134108792302129757987325623788628242472702571390161617512119911190212259167171331432562349712488685342330593225225071813052259504235971672037139944235180587739159638904127937804836550816652080124342383697226399582816371510550589738506228479486437930581919261947881837665348570899713737634036900940500373275678326477848991890905141638787946211408483766675048454190111271432775621970906207926348796161557448968519761983943632401148094498102510923380397409747028183539454496956244507474693987324351843160142635729996881204500009970566115976943713566768332965338816834511318990385679209423486025814728162424221745640150984967717902386639522277020366294427668734482974257778536105760081239433827948045077107535559767261795937010470803550999557957135634683927845094788098677081687144469667096367484185957616741194159128041073042325599249033035249717603991472963534094963834212456071435899088344951471144031076135498159917265582996253481300625617964922965161973943995060007791030088041934581129162444475218640193296858682963532899063937869114674913057694793941110605728630183581693452943365073290704769863051354730119707219738244057463017108493656261475572434287587175654343736330615538335192314247521634555055353873347356788300717880879555011183191686575303286868305937007880878809513423623210869405967063495365110358011347600008263089089485193159700628232636834186498327390009916609239514492442243912784331486313643877396191577667652044477967895413751113785582028381789559976401998271799958816419984394531327286520746059093390847801946426763380929224809277945022155154122201129884688664222886890893310433975337141056438313195878582809095598069539944428154437712905492247722595020532701410428443061857490538615144368165856931543967306145779731340509581738300946676055521929658357074214355393971812949632354787863995711399647231168768666741628114065649254210157670296686212344324879618107942289658547474778764924721713012578881615064213525249459149444224702741719352525884639369537700936190826224136806499106175735275060075675763204888336117816574316082028417420064164214356354257639535731808601904724683949198272275886602167046979496238993612654607757819919711474948999889848270033663662422841755198465608531648922698109873969315126743619790464417589824131942630743523780000074381294685505231752142285964604749318341213736332188547465134402998997414670318864031526600436259834318252931015745742663768789852683736515076836296995691737434203896316879736041174286376495153346504129160462224569498053768601559726106684120972291481912986872315813002028706396372289442038580358432831061431836101631408191654285722253382823612219087522554865925516935287612248251385906380092529641054774424557922202084508916239446563561773344555001916473200089925236709513504046042337961135454458631774147142839845755508716415489889768563954631424974309340198982210469078666667668956483916310483658304168593703890345603799798554304613891179266774442971965572195407376801141177700754574960723636640351816097007382393526388022212153612343103923197801909674679257384969159747999786092623116765720648761217043960042623059598992015632368248835784325246713080391332435449519501397857484563327648358813869278887438110962308299392705787913087297698540032392698395348257218659122131820473631296937479263395016503462909386938498326332601825780029603427231452572012268186176199124774880112924140389680897423383434191165278355698779534322928793415726965729416556936544849371590811435314212521292580321613953409420189712401385306400295373766593644441100455878599437889164002615547082327161281392960772348541827402772708864728351997230701891098251539458166532807026128546794153728279501713292342401368236217939714040426498767885391456783892982675368036678527199681642672742435720167146712259887311648753057637463942298499769134324960656548510137734424792805729498599139281235982577753904207958183832758722481002891436209388334583763369399131270173503410750815014911238201963167366271257626688150030461235841461021626623837690914832927805729540870177692901237132999149770225842343732776044937676547167201618931460025871243536970639449887019136834200732373051445888508625810881011272691080509854172638064580817201297321793506791522148576582220544594986668567275871705241798624438196616910073787980264038950058119400641965463528804906247739100617247399521464049007997903777594273521522756488651625922965579272644616556161169375702781912674760984280161191863359485967729362150857001173449212227663604701125656191583377921881721997465788342118735337141337540124516174956363017174751020493203422658782333737358170216985007091882334521444707598157922252403880529073090446978100058166284946489608705690231674460086435168098663391414435678423738702205777220881465777721994262265584580483097483536148552973631951527383101786485984467930620331218369635523759207268183697904352487201334392775395998044870431508889459120110025670913892757130194999699150033335342233038112885467910835846634230571027724500061047615305400512434997949487046717145131985660252956012594515129796259078997516051598099299656314955393520698112846587222506341638221962180162302426248882282266489441558587708785838032193282389387237244585899320065242812500707019232886598255570664908477317469502640300272174460794054307794486430217401785328739713564643761143835776149347669453107754314503100930061859220379373540165200391866273493595387316109619322757620487318177723907410218558539753927535563470538843789427701774204374190380801262915977386964922090078551454533647099561579045913368723368531376413500847592848025158695085619384911802228975732443898863458870891709335101083481211073242314851050719478665510110830547982790798115009850474575722236325264362028766536029531253710866641779991338338725320815257870239391197148791121840686686797641418360585685230810246359555660904239499954337030098286923964353002018146835243059919646141726299001347342896151534462291072720480560468926711155697732148153171513992546638010214690819542477331088514794596274035427013152567315299686563716674284939058582481900426861459535270705485691739569279601377189154852952323680493134774721833930683565156420669736753074667908944300796977529626407745165620511042745104126150818754010999852837501518753152952237212178610886447655175027469245240092677954285206773038511942723138594084427852879558134029462895976845299493055020119564974406594866679774954595021528234178734275937945171654826030726616078497102451162826543767363677378757845779075025159160717227890436840716768414455674273010984965167825389854852207506281488046806057708593839186494486175427573028414266558610641470012877609147847435242376167971953090960657911377979255186598057030502788270166496635928958127598304702282000185193761937544595849781972043559558139355526403585623793662295624095466553580323830047386477286225623098045201033658143108593908568950579482299874510066706644699580873064174049091385654956368307292757732459944831554648306185520466425065535606657389898586852097575249071619744168470077788568119754051535278699350903335402323557544761044130420924412112831855913676564541937999598283101356893353587663075199524966242447778765882089799420178244540355968706261411610037905762901363432491600515704565673449468029329133821821331653365287644234856244218773969339443445841737569489539364487837530077242663178556782958077229713203181023193994577247943830299158438651729035662839144304066325150769846200247383019412636077504406488235576628913168417314248452591898666101410828266187602713426260256806515915375609101093138762337712062461599069405958964051253047629175685227212721553509030016237688244229161347378413354247578854763145891893812862939038939315739016596306367546913915247749080349010799210776108119497855984477027458254835505174269602697474757999564699541337898721107807116478414418525191751011056878391746919299099488280014793301899251600881945598266155003137159970016994839955644956552880624584463360530564716442256422302137566169736822155367396565563542828954061751126539496683097439476292997367845634423843815960864131237206077498904253873003781889480515773957742096829784516340845131119808633568770347762690167624951569044637951226681458567561174571889733366480143714718659585128851379240146873315793326970063606007822365271430931181646396946713198464155445679623045165973349388849847464861801684531185500686102490574180155295258488667986730493150293749192520246891163412027524905907944971830595888941351625790711124577040148790636379299144062008433300552628734094111417667566137781738450903863274287789338590259393927129185361304085302066925381383720500588805724438123940239139468210295864039239294262678242325169768704015377527599908804694217628456263297342172956914989502873546398148898588376152438588012223427125178164951256045044720508174669618178710381884497927684142121693056624982604751626331982658880222108288911811115199262950705339923334040758502637087185369609451724749509505310902288368844867792386841518250092103500490264784197743461515857533682587851354531896087416265717917596747631576823852679820376142943348200659000201852493454905086095466558452319652957256616475762700095058669704281742312198348504580939476195426559283153962992556428099627672182750000803088108182136965585898966927440972566120497181127628942463903486889318170527321890727423682446169675112915301233778127614774779514021292563485161801100664298198889339832232942271195004744825420084854817660010354892299786715774913811933301516989461088081614151570012846564911407223530254333417839980835351599871143233994062429518815786856234285195699478680082513661504546362020030579017122737156167117487384915279321180561798435750687747852257161536136618354049673084188576177720974231327342594237554982896587104288124369213815184409476863263094978279909376382839822238082472650718680530159674830296805549096526087070810854418571190461293553476587552255488001612695254687648782940077563327350529828891640724360165517943776612706624938873046598256011283837794151492243553798936693897494732622780609564094822918294476913314936084919246478755317510236618100032389287976337845117638750223954234136212782423328728760821364573563294126764021958465462138850924044317255508969500947953762408111940661429898651491406197215286408746871986049470468889213371872954913919482964169220519134099756084203610782056756414705711032119924047064844294970550920487268399955867656146137610731220496367927420640441363700505991572219588118451546443173986832228574032236825221322925405938245544079544614487235353152697653774718830103796979733927799288761808956516526799873863991937213811836293443588082532883049999591395378082833497694581614664437464487118693889996866148300694857803182594622630612966391116400504538312368611759061223737779202341882912826130182181416799446289133773947967025781133359983192322403885726406315024257566663997150330361142729124190826707418168924499036012493925789655007867742683538739532415106986551222826272196302626347078085751497359970788060119151555021321345398730639089675811777660878860596760651062956999999464245311818926621356775457095983559955390937015893323553609779702732418236951156952971875569899116062780796089669490599572283030148608795396616680300161556136272358197252003246535282699407840345469027075691083391987797369698241865988005995277074773863785451539137466796121900501830272545858439881560194941818161605483605839977669098409741189477915956077408551396521245792879849099842625485076362815030187141976596977373501237027152850186022810834112977575753621983442352126759195080298376241620902012210845750568902159634495581438254774893920228727867527939112428155398542540162717133033309336197220149791291097014253170321594010555392134031961085025531786384791228541575620233374418945901030237358378923213322559719977640842093686776897587364997371537097649916751407532885033545334155465995229312214017670212517678326140388142332780687961244403141550288785869131870178653484005928269372034699239657938989279172606811980716540515180153721683997233901914190056851663633694517429282270785320152407437990618520455432633627963061337002908107888961932187165576965686835641284785347746755132892715505816054763403833422662664814903872168839950169931924203946433308065735472923424034019432579884970961749016658977962549145349494202754806404772726106108661517937216101210355011393429935816703004044483565216867494974990582436058668536393290632826623301256455644831478751818200429143937463635375528187037761288674809892434931734040770253288671846195649617765884763773394033935301480988407459969014614618154449882261245736897952243362300741642145867748861678932650428344261270965428361381577667981687531795548544534018919018119124806896926792718676179739362606162024483681438093632753992166905714675519735466716408082190132235718148130323137851176818099093892939373932891851676156412862766294746924482168663427275343951671410536366722117605669459683733851281991578595075832755980849286301203752035007487145310936041703613670561703366188341821056411628131235308753753361144835109199884401823696343376099603300859035246959645081436708686833352098271967565923485330200945728220060896596319260159922034336044956364177469726718188794373626951528833251361851474611291752505421844438351133382553752686313587374667001511868574489283438239464212076250781160266722169723831500449656347640877642768642777761778276612768507526932565819951043114587889736274063027198227392690863035386051702861403495704333232673836855963387289746306956725280376581897887140942195582986582903067146928514732232078748137391502331086148106159899358136512960206728628009217288981946593459085247748146256189018352291634956620088834163444783313120100224969755435832694737813912895005252839255776511180251014597751980722729176348417502984129249505661055931939018579197844207926594706472328244760333937282128720575915717809815452488896045464595281701071743118922737364553390152770425551182925924156642435457763839049914115939344816986915964277296833632705676617884956044161504865436979051024309063513823619152874867792638731179899128009513207278922293623008577097657362843632128842722978722376485175266090880198544075809823081023301538689551279582642241138404625697856955268252025249841883711564989268401139631549172837074726033102003708939209489396834898845948528336747629264642867845765905679308790064957556801281217965163084984245892466609782191805318946272271981598201137377128425888286318925185486805570198386093927388781146457621826169749851625822148093856332941641442854275065873976060983938507113853129825098884309821524022741156160257534301794284873526720991237648728535701211036683759063203351889936025323342909497219794772780399920049450329756412798285079355249796921915982045270712800677065825505083113810347450280921446476465107580643962571438779469226216926744000265993618963830375364772943383226100842317548679910133428671655528475530944367382433701256474389842495502522596851822665626329767454110948749082552122145468393714909379740272648190469753282630039586548599211532694293887834792529811595438442005739572253167673720529208291890593013741918813683616834490544488251680858336558218294266015095780768807776805947067108576870794133912455122149640808137806611183514505068050515445284689853032974774485838665307584934891614018396709775511556760011223265027512765563689404703977453075831836858245857305578584326765390196964750190923038598281375224726640586081208975160117231875758090532772616955304069520616496282973341521819923938471421853629175787353440868382013127871218772603982512971950958616554613922849871671988598685921748939637610673226522231627267446940073474336838335648171653614962147834717526878667109426364538876308514713117378640336037689942344653508077451040767055261193735587292642624366622355003875386169203127545466642466020271140345147160124925861725350843520414761328615254879053491193126464653321931172022946759250456348515326028345968139713405835408527150097863704775372590641603591499396078874668904223260105831624025536971385220417956446579818967255462790892655744535243668064887908470694549605183100792195181167589700606400700946426315964775176672624899535192432678656153004677475026391893301630543132642197858124062074220918618942821435820063357335787338987742534137471937540266588394442004535793796434854767764183650373824621991212357514568972691733644131634566360512744460391625061565550980002349191306445474119064000403492579223670273370227160646963482742789731372436549136906623166238213089341281891441162310609041748666223440772038356438324695230288551117643135429485196132120499691141331122234804282107142784183935058396124913104831642715640713019010569482542129810806194495613404669984977759153235217577825121697852358882589165657423544846970862223903706287652507526163215327567064070240292653421637253406854971881307238793881092236042459804661552889472929138916926998722204163195399865867223198447004428158349440037797937873269846644465401102854347588960283042091088311570278286644775466173333765496160774834031919107560983271298643148378894521749833741611779019619754718351724870004000592702533855651376188678281460905852535678243152494708951413593185375887249356542222517353548277585683825606406737714792885919162113032392644639612756163694937631945250413601897549278702550762823825514580573138089619436818130526604374655751047413638063145213962287250905039494144139603837096732832540713560386406073626377367148599247010613706626322964620579429424069944301574503599773851320497775558937449666829689714794334409178724480993484205433016395215546242058520607485532885994312720528855341318019567949611176447587167517613250973226874129161278951939322163556063185391574326818066682135962984508594127416779341802988721464512865416917811098755132764429548831921757423517830176206574300214038595041849688948495488278170517940186293218530276165306630103361360852363483859483229885344815302997371535648476376653906202984243172389882552818777223852168134553585857535095681400479413835021254338260724428960279284747072791835328073830837911915483215587976335533272487649666295507884228055147166709510534221870110810709879855605316920724202136946605910372362581587615547168139144927335338636028138797832405439793514810015003016197459517869548584437016637778958478838779568230764531203741224378507996244055744849633413832903210064048828583168180225561828308235661679405718587139547946628445702532273747784211088958876951412615832896720371461814888704929433188479020771466494200900357846129808518754716907340447686564069036125240419292522907809713605528041508776369110572605439610030753805782584214775964532567770349606103150991303890298281394433128277109370523202332745822541451664683985223235783838998384632220588031787385029216835680236003375166412837277788922828527690486969086396094363118071478781068341103831608478685951151206387079769684609336781165973662662856626737142697317810417057215595473832563697335852917350803660379503890696610930805209098523823413416256507169346333778445931970751442800969151543417916286790190625502697253511184191556944346096316015092455662663448270326983178619016698146229686956534979975661904979589674103617166822849372366164742579802625878872627435344450518553632052599846038141101227634254348495879685017731047261011815844733204935019580579021457390149545605734619130010691767695228441199071864278189465078107297729078335431002929489619101847659608176602287538776414155594460916923275779013883823028777059005642944920252355552584092043164490619309783991233336432236675857314593389284813174405199710281519364592787529591031099291153253518991413459716914910656415104301978375387016962667750335963464040661630798646972626888218795844377223508687836539772297689668587112196640379898611980988413344698347446676878067696374970654045813464091186239491188388245518731041689412631135805820596550671507964686206055700179440045782022510024593253379839641473082265921956922421683878371883954736493416085440347422495986298704214656398602193935030551340346390432995373207731042426459462564257962611694302494866135109817665131301081482954455614412507991228466166388032161719242896261574532403468206734878024731197051587548650499736021710887997796713453030145032996072881143250225365876775655626075488371355803275929509357819682067500535429051746321626048738831977010913944732265169029938226848544092948411709949900973458116526893642347641041815885409227078521690086733416227854783712888491779304541991470745939759849550569195781422548967351694467230387284425750081935885838851803275327010863363729750156481769787205291297956558297316391523834043655008147736610856730437782765696375649628263089294154635432395680385882806680318980249497034453741577539156954334783747470829453134099035006045062530151184682270756649112888504636723013165294098250001305517138341718623077406691679170880276541121061020729262919446132989162683925917739197205554598131600046819982517250481427101853440150929681860233971386446007661264466757979369104815160003821315166758175204412442502707432262802458612273168617148064602434746082330584362826678373145595712269134982776024326362974315558493179400293689342172459563750934332552535428747614078377171790088875987274091901766771908155827527911783989126859506512331325266428393156675107147055256542836866530100924796891732992992904710397139253929091653473692904183077675296104218539748180998779564402840096444352982753292351298937622700582407174949507390398888286350192913486322020315079156138483810917692128261007004910741730515832169907221903558393518805905304732999223460156477787328996123743950015248544280583209083027675694426448667238951763147480308066003835324477978447624750327664923399353637202585104699543581355751988713108800227238703523798549349847353435226121320909427817255490550320889079412770659219795750329467552355819438738939994788477060654981991848628743136824906758691773797446239131459407352705229839547834195793508629993794084311585875921762905190736176635308970448808140221122060004231217174113521352706863940647277395732491507820847517312811630101117803739183675186124211104699077097231888306673194149668498437457568774398296066913902602501934697747768944677752389719738810508937157159887780295262060591486779516093837859529388949643986995708940663786975643269407168337813392844339539838281529018817154966266755574124576088227938280920626807488169694689033127783260491070747264385745355845982111263283317877350289525590401486340220220537276456067810893426342606466245742776890552373781392488296358006365924032550716294619358569649635605656472010833883584253348942217237363682511480350466841382864748820457591576763393116950627509385978745523811075730659034133799582368779254250774753178154901167797869358037989725886137760040840476787736983777467704348226293755912538345978722456687534934037215319509036392987490743817292014297551550978111990752937032356996865765733543002862506718198939254657228690733184375200452714341650742733559165410033163652082765375465639604539053788228775346917278431918229470977532415530405969783552291527431308315682750450746016829844566074311021119518686599329127192663546682415550478572436487984424694596482748807960772816789921356625759574186340510045064622364621373314093820267878471944188524059188730047143203707436351230957317524264300909584335526812785970622700359851672695947486299381933660903542631153271905330336896090694626746735868746942376840091937190094393388428802145986152467862799966615715361558464678353737491709384197911443977915401348515715330884636160563799757777225777196973796906310866059925614009987833681091026523948839860897577171113909111481416808018995106377875060660924594781188240940967311409097781109675930101883527176888992883937488028200575545571234400624980948790031200946853269742660766106680564903575537216798390315331064706604855277060477991482312009016254273188980402440776032770301057588455810205312125703696997865520498309142655190622377816524912169494472444541831367725610315822842590131694569568594398378407604553458738543770628536612341859736675462012002771933310586485256665676475217022884009525192278545938615501554211085414284104171500507783057942124510521761215015585871852965736545808099954688687065751335936506335646753604531498653878226127694933012795154943715072157101674396382400180793652186575760574956363904780044791714278193056190743113860109021082715065110621778688702359280570143006594314381475130630719824592483596310421161468778799103432760347033021770510696568420531745621525143087997770143726407308155874001660311979733220618613318619631464890715717004079866453961706975493888121525291031894075840714078253080012433357226220209184630684107143954750711086493982046303791242931393811499256520834908637021056579504004180661803599879159155615950876453247446364754377089713012150110244216174694057054913051825537534991535636756803869061154737550752276921806625662121310155567961343204117116551521806594145993674381084496452103309644910347444337764607500652573223746939177378407272989488785029526038937467722401240487533189416852629778197995053161393565336720775894070560379927020752912286482397964317047475380831505980102704332145553160275971424144101747643558222174514640901469362114247917512279852239429142987123970621071517720260610404134510514783516141077866202490506657774089312768729329152408689993382237034967573090206264870452453345120757519588307978496635024268165701915309525237606881602512570528380967644060075038506274795990838908966533125200902609990978486558065549457334301480824650268401021051067380316032797202776145014967728757852492538340539688427466674328609367775232389926161247694971458133117607124565473566830643101288026562405694327105258303670105590300639630861034346633987798533177078214277401936902116257457297542031928600381205157127870371329672012905037360645565888059366065886739590564611616427462384083136542565037052062142414242234336477016551773880473958520974746771410777809978658933610772202610809547162484740004980694928175103499486356127050058836338718375006849424382954515839396092221210113452116137664949295275123320363177167613652504308625744307014673781324986580615325629525532225292056463881456117930365783374564146090687500825881099134750401544449304583357023871462199182115754683463723031039103754226561503553900067709045846562397126232536277431214991576480946719755255729997913444970749896796811044720923801840378816585590531783930861867382874135716640570406511891490634425281025316751201168116687618318723554611239928134253126318880375849127124599527960791099609733473130149206349163414599550358819835238691903855627151648507005228439962788213258809567097329564849602328293614517187767040721672248689342498284758176546931868138747627240339519215735806595089834734576215366377407312758825171674604320226853413974587794709315450007917720261009787684653975816060485712674631940027283608436330645059742313913967996676615515146760185005430214500926874990807564075762093805072624394283051965955124115098142750929552875483950896035942750323865274672310562581822410700538130184320000312414357859941887528839987711444049777935760528450128580873463035927277786092134806556128064635785966063188581747179607070140127435640466942841332826805464898862373176746031455821343361068521132775724794159738977641925948105740949638190994295285633240597716257168947259850562440163576614862245436643988456442598096336071479555635176925528955105393022718170301444048067602134363890423290479544202046400490851188118620030027499123295874635316466540774193589588273585926108315562208489765723899744656702820312285698096960013397832008669091567589244277302688604370397867154581010679877239314702132309055584231146527744052795530882166480211912785419090340895913446117070530564789507749725047654786390866764504757969620965327045246181930177797984191980847565193544313662669934619667407034489382367725980942234818396710786417559319476439054723991105245566018308476002640531517182705985054769893762335486677031933896244780316314709767448447791600159760170612097901760860905680331983065379510645175971798573615409538383974539968025572031968220446151376417715231893081394969452732330775118018776092812969221929493343268062756151034864433888102682494849972395048237393770627992960996798913284687510890881685801793748983867696943933833028721512910700589374652841785340924213137372302619854925206182828433132181087164153226578261846755819563679269340875039925536023324544511324147036454804921140212284262519794598965814717248858141887987973952101209658158197100697920258055946272037854528148710984616710227463209415405804894952005152512765208937732678210228219169330085519780216228646392878248191476997810200194689102845854434093613203530884702180314086460762700960927657916467750758447607162605064253316583639938103267577427551716347814096221942630629217711746554340517590561851525449947847515001658078581970081696934153300562806715394646949315108973421780290553767651229007700641089061395731619707079682505103524770945138645847317431702579465264688458733752053532427117062945509621978978355557593756108392964945716368010762552065637821067269980033825063718575957952298422082885141510095943369237385522081817506332092066041207460379358330166267850783080289391423498613419051141164393655023038674647561789383075761394522221225290462554587569034492527881207178216707046405614209757511548859385723194687970646209568103945190660628354853647284498888192766445653069497467650543960647632662277651846324040449523330924604626489190516043370461657948265477304513458521111520979266790265476168923694071513647767626209757541146633241519207673634091104318665058794233827384589309023218592862388635220106790081870378659818383623122238440819231206206924164573081913300621027991727001118423949913669970369646478282233239481495358938611355579793010714570276153864859158251670328776191818845008697353287271560717934962550610962837727339306818750074266104279386867883798819457489461129198048833070357944402649911431374682583573244129693648484913553070770181255366543236443838936712828807334593552984970723176205212102814775233857854036876497590330363507477623634662885561469413771273250303245224754019508203606151735703696870824993942420184658982540352384938371109770477754276980964839141682103799586729059144449606297171821660910979276656231022479095831581398527283681381418144611299956256549006082487118553461273670627983012272489862796296396236884990842141062765682344153607752992141423142827072468797756922049129406095515503135546542315544470039459643938008680220415210001009410439877339710053789325553372880035122072760307991590653735640675785624262794916836940836653846045403053456989554451469136717334358935533017947510569005216558232656878047799377619390949073026661171317184264006919259812557079199241973968050968185965615611879755747941327427743621993092610772514841596761015392589913734284737156011095419752644296388271577667697805725190393835136308376483625625653127727547081625352052275227219396429803392091447668679276476583858749102949839417944179876295801412291312534751277170626782578075101270701113203066235384664809546801659902856224494565563712211348884587107499160929302988602999610316454001054405577554929900766401498959400543351137121982983161372140201537572614038436413505177836206329553526578399824636447799578222281737466709264212222192805028438225208714528415912784531704613236781401348452197935788047881803821562495234598048631569156698105662144529383500208947258109377521903596982380407506785126772118831716274453929025630042679016989574538988156992238619052045747283579287284858298223150312454616856612084544085120491064450959109168416611141048138260776629979840984688698559300264441307014249606007544326620504667311733097410257593473285816028815540262459003839490079590038864002818847497112987662098239158317248873579494541932677826550414423288921920519144078423571164299290158182773583490604705914380112984446918220118493845431479429312844465792506360924736754752181332901526483043228294861360447169753028891795214069975635710326065552428427622454096661260847069063138783814297386907390328944611078508191902422991665446049889446674339919037934929308031840031908746111657894212849879320422002892199795098004228912748292250338914083144902752652765341154558183409766808403936841783691696034879545349396814581827201094700946008806981983091676518633728850714162835885310635961344203876463514593830969304015692761532654302817561470288182861826129013795925025618307668723404404296027634304017596085626396642885534959564876015987737499548205697084783023819886409886996251791678904321825660728284944867240108219004324878745167309850973491827147982743286250490427739238795120958654230042788422298139125039382990782886112471861864749170963400211056592420618819116024198934552700885019343046706521282112394072304869165406381545605113495287974766833558436774651927469203106357597051685621615437508330324213653410428846580658994301188277698506968422428979523650508379607625425464774794392464305878819537670375883631550109745735828534640627605514757477764387339898866793788402120806677688854303862743924155863445469834548655422006616952503586765732420706096129618908052017024886438481123049390590263215872166161438081008638470236599511890303030073182656716161470940880420266772320829824634802411552247881409421161998614447422629101393930806270082311132211878311753483822867103835901950261221047269950357128595095811580184754319639909366090391456639266451019821058141095245893764145825818059458531097968875059699104331282425837986589901657149173310110116874812085563725479505174912133779216578593642976646351598974284556621690594174944429393304206961054047353782152807302941698220151483858628861019360188837316757315757311472221709310205499534100676751835063127979247205998546606620503138379954520831480462676811111435041625902912593120372781909276884185727375777610799661355509440249340034083908125679385084278705022438770872587568431519453661526815671905657023251620098016613265059732254967181834259419596830319862961385692426755951121973872115912347877525749657620725232119445819457641425577441748077744538298835088638995961771706814485845660758479165557590574278072364875249977958815918100045536100831289643534034286601295465693528381849841607160825157105528787338642590493943231282737208163600428079732889698386330987021772087544094325367993361910778946157357458703803883775430957971203810341158362517301053642117573487245673337408901302474275087545202390297847627622754499208217855657123367694607692518772968456188549978617538882138180822305746640653805110785622970670087617447262697992291485727875921631364926064766370060510615977473855825991501519858789393879903705913957968030013340906147341548588803461822939779807755360993404927500120185132032019772594861301874520979465257454848110425960175407645374815575405446450681325732489983723633417831641067873293223085548775838266450861094121338899222859177373153186250584173563725623431482888117485488062844643741731846785755081612642010918255262845079197929543266680403901417141899910526476679870232293450971896055443272905870368090902247933210479935541522611064289286480149108480363331229487077868388694543933543036330992765667504351201228452085204343371995382834114266081304199535623776753000704010398870301986699376120195710025366415035155278876584215889194312672166049750712736533738344973629909987083153506036148531487283051898866249549435921303835379262789041524376638979522078714249793506231185882148410248913788681101877259552076961400132137766489278132650609669759422410792767553662602257708975199294108860108139494840525051502196903603684899068449519762876825406002596509164753668451827826843538144444337489286234042922913390211733745676951836552297108401148211530439263310432783413010686128361618760958272955026206115619234537206338070267354841038320535791513812722939748764694273225709204475939889252418616318558954591109645745016172689953838250451537479868636442054486631232207258070793071414046825774098468423261723798787871502612914605655405139151320866801876601233870622233538580603847758849465494826839052283280955000119950825576472042557308047858425590295745346262791691079036759558836511288983871369729437003478902076730565815386106579845449122886119687469237310969710832244856673047346215878159342536826935423541865284188300669589960486171536284791075306807920590782153642894781053206215904965914811886658321766858872464950262281784177430705694667198004114547582718514013669412987439439511026582274743096026370034106364745787538172170295005512212568898324804792320981141968672229824719596988070475961816188490833453203166573264177077049257600835432878691256929387136002880599580311760345107285099979586044871791564457802058451480557884506683670078173216153338359518716921745740000906284418850536182603763261915335914034096540771318825154435251239008696798502277367167913398156406463815340642392930929765455875349263040589232648530283556428283232215626527386205703953483386302764644336580636353779691281357369699740390924126789402232865227868438832558758775501421833940913292971369639820220503539046248701137675340470991314106793500972110936123295712061510322082772576124547539344137635417701881463608080995687031467661199017144318361141209203009502898218452343024354878161778445771319096872220481379391759804555318032552421992055362597714247872153452591800870778167969604129991770252830352571139656519827454147339705887335687710644457716940403945973556560897107646270094115827428541389404744434429294039216582432385398842469391556204285352987196580933301508469007616255295984085916763885552227795862975672820263754553760863216861651397463681481506024152501168633557114354645207173129206104296707898802845339897329078232596560276693555989520056169568295326222955878980996886092776735430296635281988913826575314872733220612928402817071902325012409850022612862199660699563254232384979730933605853162786182846311305653702405941344409164896849669767539579145896961971175848549091165946539235215369087629347312258867819080337144124181261565519004962226426529605736449640189027820984869683633460542677884924805755892897970164527041399584023333277171780928094399018012097575403509671908509002363735735799449454240963669771868966822469561556664900906545369879817762287842009360116995974297499704157740422189057227411463406187994860373793250744403950609252673900888700654680612211263421873752643347031388994661104033018542189175615246619639990596302019255442967241444097934453886082097157225405867152635547357260324475827887655413028378039727964037843941346721986662519314366586184130077693132205817478087750830090610077682607132486720098362795129098555419255383189327019842128872528373807942970006574518776960470141153848209038811693694028891945784304598620188451317993455007287644916204737340075911688112589148862220546150363613875111607148046060215174750417559578080811215419939224947718663641507039258872535800759332843208112904250869954992068106147305054309140017062016722196479574784813953713712415398270589059475874947551505134067336748029517563710296248815266517422301838692235434695944999744824893918154142886115105722695673524638387640740044152499652730734100167708827433512876695184870021765917446544684859397453406736646553798011917254372675926933265100488234717241925035843745372624198754452285867205823572858270081349026077093796181978413377629451063148663940472227445101521371501961088454880574547855059397881580959962849124408764522814104412972214992612143132733936872548387547475483267896922822806442014642904378166825527293541849294740674177827695196241899310231945114235234669885572129190549969787609694760807848423822818221623947484331576620130547450811170945217342832239655954448365861656910368702956864173159048464376164240111314398977766890137286596969799477368858108444990608906369863218849355064046131114070021434494859205894324756722885017833686289505828950929828990441247405657329302870258268176036337020905814573378822773458174903220736422837831612857373945731484431255560340295881005282698966894986410904565491524805693602260285374262245684490619228886359237614150261493193392673698292860936398098624741681238740237593240669426049706486477464359881853499238844295109991618550806978144419571125966961613520253793017433318257861492714145116834614852791915005903850596085547913206363677873097830753115296990118148732073333596593092194141929173010822346265720425796928819293278814570285358367435022888382460410837811531222425934677504666883118272621692670216943179707928410793412855406680836662478108621620046810901086583091256146747039617898781030127483986192522231166796858862729871286340958099959696431766443719594458139610187960477783729805394775107057127080672956684759609433556476068030593302055836677947000828676283002479189523172364481114904858858922974003041648528797254225081847003811535151226754044902664912611563587038455903823673897075019235169809124148581833148608880652797224671530015400540426102073225906228183072258095931856816179113769529794261821131837365870765609768781220558367728913428796646899430987199702720667187735166052995866217729292390598653073618593270995865456844263576073877986078829212126937299970308593324807479787867502405758823523509227202980401878938902909550447329062469006173452048166040262633093676593410201515839227496027366946991564850043978228279114781936863200740272433890470333461780666232580027853638748431674393732491729804453176656760328513576627890071029631739229132686777097434242825932919937854779786698142506223726034541132003406652880122828600452626168123500054352241108238733734607795582525233251165886025296319879283753459470172488232957575441355261774598698289729235128071483883769712030522751091539599895396801213894981457960408448630178968152372189969683782469564255851688781516021075562150284711202305441648616415287670639898410372305627446703061643355384795434440186377887695949289978019135970670667715448077643985187269133900495302192340873056504270290151826623675197595565593789860573096731966711838039540290665010524825446961382076374237221651075530764281989190491235913612350747953253738983658168923752075075207985024139971088687544957673551271002832773551957516802083330894830062370232117723508103033907456653425404586716169508569585603785395144713900793174252408442356179659021965794161552488442503184256035292294210040341497219659030732221022061411567949452727154903474848083592960583538703238105188682333847960376780576984199231612526126882974996457476344691482927489301654139001413685237787640343106624207546637209341271827496871878390882710268836275876155154202787228217103688469321372502969395572066357446477973490088533016615522420986077447009520058437606905173297920820541944877246882579317100008301334356558286813846043834647227476176020297305313622747234270931945675600149457103539949693512234927342203368495985605829699281737268615125646973787121456074161865159889894940371904085387985202603897957393738541098167384499658984752011816204575863095742163945788281264767909284920029904358151029327533880578265624144732166830554510239904633803817696368159792549153890447854814312205130884764253499307906526327247991249309933805853306772942910904920584061551684693375659570955839728192264800590796638379961894096454837108266717278060132456656820189295470659164909449539068093804786232329997947079650667380533450967151243153238071009517356546542123152526731248317595145015262697371889107565339869177948289909448430210728418322571843523007335406326678629119421754230438457286152754489875518894000595168957201496277943206797945682277965145243539982558777978514513786126637627559149104908972612129660041086997530855077990624467554015485008174294000135149629801682629694321518443035989669775545243053837544730761999455483495362351882061231137742599626817389360023011852488567267993381241264007857913766773320990768826471246768203785886909782061053822392773145203916528449906268415712584351878564814999225703113738702037367318212601488529953692790303433201631139215658644602117054483175685476977570571143615532064301791460520809955824677115826221821532850230155878827449622230172997501629379290994099756299387965059724166599488351622179293891755428614508952887372822327508628334707662610859582748130400920094808780605101024789803964765799781925777969425511980756506546015807441585701048979019707625728717931351826379283362467760691284009710942447384780885445040630989597356371463053114813166952334977271979941638398141530498219814240922494830615156269119506625348829922290347393723583317558051912395011473617216350126040007830477901123573765727422865753481794819265402717809729648842400883731294358592061374806040512171069630180773224926759165832620764605223267158600560570307147468864278565638259049353043399490005912618015377600979014100049112849086231855729103877405431109266331383204873335311214687540121387274721173036207634110973325208073818637444896966747054871403961326838553640591022680451071168558154758385226941871925921956043023640488839128838711050160993584709140881652434805612250584982184834919489537148766269067724861792938953726821682480211734735736891450563449779659497854107790005965208724890660358150612013330521453503341690045343338139651811129237437086563949739895207123845864773539789843418747150720637649003587747448372025745669861162616740337165242328263231786452927644259408754897566066043907790688383520097603040637215336811999896035564491704404955973870173042453083271865781361324196224205107401855336757492094997728883909704136802249747675516996599633617268424760793272232560059767751764186596044060933577479803319617041933183271077752559707408994292630625530280881956874342317218765020168528633683203346463140082241197043347930839908537523043457538369890951022291833567265477567209599734859151981091630881564076555877452251270491326590427426874433336310084157457601866901361833007479913022148374765942280204927529690827763762196790567824584638009509788380832760462226266500028045460664229453433583220532712126338623544174032599937861057243456439748112535255931455322752827041036777292896260533519841110750592486141862722830263029929910898341072536764337649110229751422178242451224636076055997551370110303182981783777435627551442042013337036654630819440197488549401360295054164796201042971585692747934648904993024248048812086969482689336444307950186125134497152465446362876602005884700970829882733296130668381237658377618116467042094167205853223337234121909938613880135684603762417247172349155769677911718661785458181074036673940668162486504105609051863477524550438179818689760716211636744145399671322928666855382239304871950911558306394632043258361836957494611475423541404653835146142164964139871956033415837664307419402982174261092815100109138993734075585510691902130995089674907056031505403998050868049266656520487715085353868352465687177166625435373750235937754737085971560019600917802929951884086749937525870826649437995222375877432981829846191469855462528114640302034139887592969510765580031017471128032302491752707832684570002527905550975504522145402557697596466324916750541937503511170447107078896668843828188865686747875968922252175469934789708605632481477709380033121450179879365915297326894800140090236271824288281504078976668966940911751955879651168043758524676252429128706946102314973761964411512173689535693571412670429111424497067209752913787630052789598453267882278147174586227006523208820905808378981836924856136468135058654220749851334193690315856229482719305240794092229856614838676695434241060519547351649207975881319201439546642134591422369563964629510460240573581804466020006361098394354797209779697499296608984750024149825752607954040862937832037342933020912041943434850635412434829546981197759929920283709126145892749743675004009565122881627398599949520307887035852673834227211798995824954681882933074691547732896152989682943327661495373167326581795107054883344015347565439224960808465944264126945930026576073874918579862761779271298222319132342737500968006920746551323473269040130177021099681081877805497842820803621297128252600199845800075676196389554738686294426143012562267844828478707937427191697992751798164576265612400155365827303072194392422105238475885984189640955632551051329017707463811154351862887743873414174757305181655718144740850438798186702356791632497201589058802208754778536232622192678211473322673817831227641927433499617752803878926018364498957715965395241628616015887944208712865213084490782343098668270136815015853464484737086133778600725005762763664376103211368083759301611401587099589475028647455690911515967998152375293615719081398909648725535482619581635826086192054109840626583505982890466592195367701401067337512526389398580184178608976504472562564768642043068224204976942866490057568073852326857124417013453036117985330380670835625650175080245166014181127862113893576872174429971002806048992115313073706031590367371940449213715964883376033931362042418624644656166419390545650395973116880339595995612500945921775167790174771964176261325962675355294331737928074644617818568795103049314886294486160393363250020670820422814533016607228016864210646369414005760812593249272762369015736494489316272097463927653302415105070724889046385214007671625631809416487403954799645950351570627479433630737562757170098024788121557503971853078394907805464612474132073527792163214546931827768143663719129872349012637470074571845292007525487224650335040158522529942225945779211891361324990963412230853236163608142572711858145294423647297438364167988336175818906614764329886852085826634924422779026550823682509117055909283239686251290380444367949596049613666691591919957285808893556688746232793672671871824116719251827205064098443012267244731434150855435805187267648531877572301564167305952851480465576626476514011019622616156192912400653298811180626295076548676465293374098189304950664495355281811995382122727732703867976781856461295253539513135066693178966027936608832269247444619423966532829239778246967980908544793456349501716829095074108012013577002983642578069195251014731403917045704391058642986476561658303295560339843645891488017706240534809202312058282382081962708743393036465253604804236224738481573296133544852634075499281007144503454088704351126720623845966684179230533349905476417052353142406262423277680300838926974100418319455499739332653584872814709252515993979695747167430259428278752271281830021303946685982066336550536144159579278661200450569677291448575661132213121177698816883006237366585948411008830046408763222398563599141297764731818511265556359956843745683765540469804092569552287116352296999156693761375724303503980171335899519573236219414783121534131758610718665048516694636330238793063941992569158216598661650605396184872917938829970357630452415636890483651262449397622821040278337631970904880456389316650586827736309490831285624637057418446990271539147619560603049119463857487826130694622983003559764259858462814393730248225695389718147219651235518495679458040634162166431514951543919215088347275911963627671230775450946038834230585706920778222602458298624960704615052387006859350624990888505418680658412537074119812674464745345466643417039239480151219747325112055583616740911166740903527233383212132524722587368561370150501436896488061211288799402244487791118156058769091444092236548071706359517623429029763595449814823758309206060863283355250454125972317876332966159681951716677977164677871748629849716377388066442404687300564399776715187563762131158550267151101161075820444629538531280263292145859201629014422652652118694846623727109973052652048655392631966360357746996789636073617259101514996590280123216502353432744854089457962561376379538719002890173047350686503871857698020786306467766397623704423577699952521996595327901300989606931739548384468136194847185132714698572762434320850909837788625680568703891472699583594344091822789287074022809181868249088954658430114235331200822136733034379203648095544123285050174206977578883206068565087628342994158525618491351930206717632333906825163117339148305837086261899257497779398365418620786741831505123919744263652016173759271493151643321125173340924671496075537363742401942898408171899010920916719842566233466704534227021014664176242205272718317769244316602850946808732935438385425557725855760342081674494947861679244986175778948323626381832591180920361104459510542448948489244522190078321381408638307889776545643888014951520926998776096847428487816791254634961386963243277688246387272607088410138294880920606489561295277152511875006766359853568993162102052362734988956405705856116467041229530494095099214773015535035034519557254669935802981921725027917979851975070001203033389898697355194246828179255240934294550114868151489783434534960411353755048596862118938446181262042171862811797244508718855690418367333011783337524071586026021268483412474954373315587620376460030404941657066444141838696878961721529280995272842602305610318296367254124175066956539792582131954865239160129535149576674588255207194707351340475903955597120876276541437011348525629925871491796335583330968189593830729698886230837054028736696621105234414105652883040576189927370162902630238548624395985364882426945401556145369352969187937991165057467705818104394661321413115715336144614889581082585671644193215170168034124402568543533134841037434419976126045695403872429042154999590522913062988722790780865726741913438705547848181834238154168341454238446174417023337051689144775646533969809904188675626990568976791719317726855096903671448724120471563156176809008262586407042897605835934056563418894001321997551547633259822522713742019269339975334511355600045084624230885953025473187565992175507575076012491986383286156821266113249196790623038011665283515410699595696041554411874106462782708396579004157586518320036999570881287939212098451980307463388160926388378365026991527541865223103781062767148713186644969775393913445530698979695589354837544095843626792515870784711286980752969134123227733226190423982913502833644676290719754676251272157444353410754405225570489833044516840380935452616686549781587434777723333656813160387839711245445649202439445503279142815176224906499310988302673977625482580066668728954861524994104276052982313219662019120923447988565681746153932789434863578865917713002088937884117957325408207892725046024903475070526691862079187603077130807307844419220367721197289539207012808968118035944664167402133895700472381114935341355926657436190606096575706112876517677640049055168192696519866253040767810455900551037413062162929899367329784681804597965091565107257751197733518325269533199529448693374118206774402910943491748606038860558696530017372207869562429531090263017790292095001256508169718030233444453743132719660271753958448743833121534398944670854807747079429542558500962693753998266992548571135993959685252659090404395496184108348164058781823312321817761229025843209820398015553284531903950161249055737878589504333651758193890212545921991393790699328961279057222190429126787573430595667813120600077546620967085265943561508775055533394195864143101272944015142064503764628407814277524901670442396607806963203736267584267544931975208623213415153921737524300374050473615393803553717578971529964982814265231947415464129364152644949454650280369546641034292650184697057941161599308589585340875652172484799625173984414521625480868916032531738595711954017617184151695962997616181460921072589791204851379300284573990992742898436602844854636421002270512416661774770361706372661161549728099082093871906900310158280731942295049312064455435865319715960180468125213181840765374918610903152030827800884994864858271337891926556983368251248819695599089570245374912885046293723056493983705520830948209218215776009291126659237472667737423453109158390792899960007185732759021583877920558763731328460840217213753724898573988176156346433493456771626647189711345712027547502937846210979658014411069167157637716204167639106309374670371358872883468458666490353665771041292502787601828548148293972501970175050682252889764984003877185733033014002379772734423234374473670889127357450407399134163704602811010689505909420414090962768043378179695955383091357051054859465150921387754160580096195498025775163940198111713207241973832054992166765681212005824037007086702030243599220737610488645276908171765671563106932178317072759185310442839616642867775129232783264317678610704701532760832811412385077039654529917799292181868459689856563053110011125745985793349577740856753366355265282632190753541528971194090364556603936130868792530372565646163173048877311971145272669482038206840818799826670002560501594572727080317125776766104713874483715759829051140004783685168890779847457762842550719375915902019008989342819921289763851923401258159448965821940693377714661291410848727861085888598850943436976709251249138544105091449722274915749209065467056788103566654283387553445523185471871578229737697169918552028935330031340284685477737127457597630208586044481572763336734312411691557933440336229945405834582693331387951958201029081702027377227664563530327245076633750518284237401440285117455273263614315851767310929031665100046527888519896275160610772878689996828755036871015234858037022501705454015603826527130219775429079213728289014494066246109242912413421513421683422413054000501903511258018267927630369700697673421794313499642531638911970720249409480603157950022109018550135533426351422416895373225542477252491243775634829816345768162185190098350872785364740266036829234656356746088131566801948152381156832889169515685840580163685814435891166616206110101193083638095608046190004122877964877393174602757843206294198689226005827931005390456695898126626346005801006087764193053215173911584955981814409774999560216926246787126683642547149780049113766242984504594315324659976887900075214255928846542260254874647556605617249348028894734876938742015167953764638038790981063598176636951167568594907737841413557899571707701651738358832168708966205650319785480018293206876640732923786548843651948143003130368842363409595888536291844826559639671606058125022169295561320109720997684699362355484307925764308006619601074233970293429670477156416313251025899796284936428208490435516280304823693069963178108476160664403053125932639008110594871300659828834247384021835148373006354380107483307478518764026792852905281794949155280224863144927625834425353890366167911489801615996991979011673175554666687421693307481707461409007110686584396586449035707754109484141396478377599097205313960878343505365945298623779186687253186247961552854568119783514625270008224719333263244743388207157073165026407916264635693757498830059922563144855464393336530748581348509286690259450548261147520354546072082467832890991800279621005412289214040335516661836956938046659132213847723613552395328114031742320608018627710193998393868391965966160047645346693644620776124768116046513301318492612570190781489664793945227587895891203393220717361974840278791134819830094533258059203526996456915411694685712624142020651929010443042263982977220996004898780565006219059114060710448197107416813520736421498933012798652113058149090186261910663998365479867882882978365971991581195016108229967488158187661805904424282342259580010799729124722270367022485215076843670141754534406982782743841187227681971882257706045505312326619857936620307322509763140028279458036841445034721056708215932454840811312122023982767915635567522936827436287408379798582381222100098607399456836253547164724294036666183665713282551316239671900561280413636789549483458115627674535388001780082801401051746204161900005248104406530656214434540309028371837554320745540999469711066213283047598424221565257469894154081460065567589017534904114099957601399847480290046391735244222912436134680076177759076628182402311902876173281347626130653734616210619631178618827226455643928750015209804894007293977910154053470160409680616999780573597614296785933877388026157405088097419776219095502015140192191127243210956281983227123181908377755671686848943616108150517362129813850431764863918188645224944784890497745454955702586138759441874529341955840297380457790639988495737969177986181748077800243630240767121668131827939098978141479012347840929809964075321046657331992286819575356757639582256457251392641335855219263207953637657069121187073833392768857754591108585976133663207583646198659549897297159258412629675087152154349015786719600613750053378842718825629389902791132519834340410373229204162402575637854851495583967223447246267682453197875256057939445812695424960621842047233429612948409561649887744911954637434811707174670498901444574594864812112796340657491980005604421631881856447059658816188430444201661079925370469894326947698082175808824634348851865257173073670461997750264222384248135152731382822690041253661632754765526923935920095127890354137880817037504266078617897113847956921942861692272691660789573792033644065836071641910731534328149850744437181578536583790678320136961308857645716568034965236854568100272098024612134515670058628070820246958661195577888420243988207597354242791371373449785367698376122875136082677607105600344442169383082204595821741373381153804109151513699966334198898767352670989205958786156630031531206687508327348354770238830535739495139114310070568356878226774322520211805213125831904099725535283351803031091108129192775918266484130133365617362139748702897778498913355892759919675565377702225462074742132700960299176696576299587113394508102042533890740791941712514975451048469910139640467847874166495266950880650232401393185744710941164931320942076523837375329006006437663596500843121682973755668998249275829961140884811636642418534958921765800304048257037069420948337857228531088100722091979070786307932930513791728591078255806510905223149528312809852822513446322810765014633542814692047700670906019523407415247874088582478007807342237749640548987110569091897867582568463499867609487524442984960454075677712789549806184718308005947413571599037727651013398353430455459698557997521766399714852205728936230527913326547518248099340197068820596642148188351650030724886610549204439824234778311507312198176374137190782982592182710835188837049348580624331434744780134286588190485761012280033401616796472855281031184343397347860082541470991134323220430104996371888069704037380945509664450934101676680464676402207204363613490983983586074651025431631634723929721558951028896603526265144880291821124170140203923742829026927515444998947703253941637810751434890201463754108971839399245753200884143139755635348295669085993915127100198218421468511116573314576715455203496107652286665286330087082548677546981227857180935981250913656870028730243094961394247528315805603662098623735182927110239379399723986491388599058637979041212957138707814784399270315989668771898382525062587425656139046792342142286011631004976655391159397711809539097627838747491979546307308902410467972825516430359166694799527979317897971204674169046605687650822839631153606841558993349408249549678958202554171909213778739149309780214927959257689781191220836745718444884639213233043618289135764477393195402600099091807751984015188455918951224662030696991149951323089569328090592867914885046805151917136856773867468978758695593038979700383053800115816665481986522740959061803430914927874595503322430691096568387157640097554473439719607304043409777786909742073921032433736568741693085280950001798408020860530235024700124516959145374577910634019648745619904944538095770379034641667081890701712467471072231241598561420371916487364868438821072741292029168914689647148272324885955091918919337735955127596437145309279916859615672827613829644320960727373169060551567928433438945177293056120963728008399823033970954396974681055770940635992915139418970850679007946989069576188515630682984810976675249480360896059505197815787488213763187992779109098143082951835015596299607790555053562623146192971569311990236164543475970995001045391831061346360456454672074984684457956759805593104539127375358734922992686614989314849329245679852305149869964823539093841315391184717285822217695203730557676981319041350691506876195098701775744964863931859758243646915295881186530878895862197958062205708178909880097188176357920177757381544887504722936322385389725027055690880286223542984452195227158933544685656646338136385500951802963770430885507299870233870842670088985382850731928959461513861997023389433399909421792130150173419488630213915568454073954288957006633919493083063099397186062607349702371753003843946930972474914638205551837799329402393282332518601849868105090703137398029642974803513904146173205010151132136545982884694341880459065130758844745968791651187257381606036266815316979856095464586710213327564844430663055019580452157760996049047011015421759128581623928407469935356162170385477743601670869047060252359476736284604588493009686798019605159461901854682938619663069588919653732172901544856794487624656151625615236703591834548750083428884002764222191782392149583988265383889691743012798070491913247319328774615041826946174342792671788565084932417928713567900746615128001560592916731320593704635319926994454081044612061653943340869144225000428871312778574632162482581185955538372833820229522357196625411980515387744713184036640037197948495840754154380081538085271258680916867389976705099230732358547418361113716869278623258651297293427759039959392606683434871856207602510805539276450414961505548200400848484082716054765241311328893908596888610704251048723867990747884400130353362628632808119969511816097393326408060326315723983208712773634408334144918943147360474688652241181639235980398690289330620729115425578079998042036256940390942730958452860392656986148116342831460082892408825538103399267144879735285727438275606740131979689489455204212531099885153522802097056434362216487010512961462025653006779430666959585433344735518981725941149986784717996933351130182199262806579938135151155206942627698905640912277790509101874931447948754580360399152268278327287092777072580911141420624447430816017551690237393367724061606495748810238421684238115708320694383279672539554001372201100116708122873750295398799225711784809320023260233830663517742924857430810246268423189256007779935736307737236040071163916107853897068050748001583831118560755546706711728423139910736731444631985655277357480235279530535952295967577225409487464841502737749243229552369664191698996194765758828640419972005570600572758309546960746182734946958679153929890271568122989894364158495285102541853755619265643659324960086287368074756144166558904499155494496623976658788445972196550903614901766238729429189359709056580094820198692265669476866483740137815292191428016002963534785837145021888310146591808106187350820978134698782421587857532989214649760695602414489704304776300469281408305992512103884849911722886010826832992868960905648017698740740603738822904372861731841960095400413095699648611802518779051575104940322856381027404472215040937907651167585411550396950646635588711692992133799780726735973411033848778030815748693419228672608991097584145977342655811942403716916016489795504498235950225788850100300075288711059504809032721537935204085605709670307297406750687402288274415197397309304219100027138277085166672632138300733117757879483680289486822657325615924546269966845473521122626749185945802771024160968459726028386735943211569649990211009544914787171141637492635261428821789961720376719064175001176359221695392961292235589485311154676293410036784061473812661012386854344232134626531250199060505855814583522019729288685759846138036179360256088816637724078743059855337739704642179170172631302563777085974936706402185777065871453491077506337314701091950918178557762172870404307924122306390115383306047311775935053311983857138749773163861685998776480468714615050831958664466561551940414728563077030917503442444912572943477041408092905106674431022409653861403626929485495415527438757111522930620314833591063418221905436972676478791806363325164281226782205530541990341563269824763961270207168263350714518929708838765575087843443775835067872643261172798573958727083431737839459858151868668511527210614598770192131497742988500079978680924176759247517802639609022009369601981363288303159715945675793774527619365890994866336753389194248950212589087773346086769731887936777291640853161327663734872485589231448758036183227571110701815065179145617724938983836132899477436554375548492644168659681790398752144727721790489264113563225572187963460753056408034006104936015069875439718434909500864953483911114861950588661444472874987338332919332080787989332598421626735541364598391890583935722578829593053127685500571754064673846598298228609538080009772105619511571221908517504846904233437446110995091963835762175201177561761801775578719458519759297547487557205422643757072032393480449149559140734196192385319980798683513230089123115041686490192017563598846910393143030341520669156329027085533030027096407567610457423917384461664409667071653423364380047607874592731353232889145837599087683189401534190842492784536049783243264590850058049220976560165163656554832268621840641918909094549387447539115737508309348585871175084122986477323035180385352889928855536122634389397162187202204802780480765241804117923712155260482956296341258968826561972896258369205658110087447995072514906143977948110279433709129647837098902533073594474474568516989606376736151869365221723877741864407748033770676315057503723094009154929988547078740371163387979440832854833511450019592028900684949170904782576508779973224254360078755551868241006934504952900235514899606751050679109113348390808584144506884560016635964166526033910077120862895614938928704843180911233191585699027263780406185682190746767299611754666495387646474789585361828085194188626705412442296659586009481354412193419722868256503800905279096854030767552339941427543992360067655204325649859391871508201449758747910085774411459567957913247472894481111176643778371835791591269033451937207445183633894684136082004364796087401492864223617113241614139604688667419183117687037916846115715321875696478094648665728315468182060429520767156056352696733748239673775555256326657870350646497552387497996891176443815908346723231189631364767106070734655637006765980733470097970674472801665372326579483519531642439546085136117536969028473030901856363865772154471521789191452715398093480589072304380705780010218208032167003997355390603569214445100175951518652067250262740035505749521906520124587554060449249600294063296264885954050060705978557681789715633501876789948172362237812676679313905433934154236192769607633394237207447815621996317544364921321488274803226757310638517365919727869709925524024445062932435810128546060343494767182782770178832581435719446892127705780918165161178340282886802457969865935993961469034949921238583622884999241077583709178361054582274886218752928392846873867449435701899875885464453208256132680440388829428958416521093012212909750288335960170152737085533803620739070857944562088439827597970355509838063783964037606759859582014112850509822629746883374134972730356784426525418460269444176899353624553897896389879912664781969772457990678243153734183476419838907149152622283371583816326385045659474201477857347166833732573979819872652307827883296580646931240119959417248124768254845048357029447192450358801544198000281490867769097008661068284559381350861508794912031066098438743470285073138491204036412529611592938470982230323427120346191602787837467193710252037391110721330606110422806125239955684761645626089460185809808308570142204373679920160123430152764817749047773246722643567186691580268358452565584816741023920437855309365680826330413510987463195176886593871935124987970963730199658309929597499854858471232927262529246419169867501963084495339723278877640998710454992656057324258733905815462093887938709491763878979739389706409853604142482723730066218350249653924049869634050961212449959535727564457033875460855988022127693388876598440233844534694200883454544765864770340563962485280372984043937675408049587684039949265990672395279840894617322184717694924761087110680104022176084051295163764098823030620054522019155084097818148929475638163458602316539571567013262486041903581912168528161926167438307288089321132907369131320605600030077225433420659046624398168532174967407634761667039794296168259647617131123277065324076705026825595645243742483461275318180570690450327876246872971597443580734512738750894570492735618190715470632350387251828107889915704674548986379294638021564124206477231801558556828161582940163925401037405601381345790358207956344940943332183106340996091476974351654930585585898937104497160011079078295126941754636261507715243934339987402213705082113670886054378971174313671336698660254831343356963814745394126943260388161922322796567066761313039377441421036544154153643351977036947432628409673382251201629534777726034253874477470236724830389863823026520425112833795983756812113205633421635691675716527311687370580932761744271976367274224203563354672738267652896566616130809970011743138155120069245946138744591156479548794578223090273925554326061156416586827232093354447109465138793002442974916815644615005662291642349709091425705584549210823451933855924478816740025171574620441046621570778874425372867405550413597826950823257808478227539037076445724622572425724262947247018273986391867678440400658308750776292599304430801754673211824843489252055245334620891507337581527793917135973235673188499505383960669417510387866685042655723183300966291346147507708307410219886842397168194347609255665497367529383153696108931633403515659832971799749144176865767318431480944212952001255727306504295830883758163001397376949029756045613768351728983634147184270933475855693501561463506948640827730781777156235821076200623614240677656528589540586767286072578081409468985857310722465762871552267611909017930072710680602322889193720649239917948890552861649437051413648695758500067278622069180922110124350637049043666727099155275033017520510629819516527177108751182970249918486512823421288798759016319620946918063321664145844377732333502736629203644407722806940803148508286183656234645299510758022606768998773971610379815661721776325433179202704112481907140885367472076999942639930781292198161466324776740715100468765155139937806873455079955748231750664938427017340785626607476311668396669018330287015568056797747553020266055336312036542503728755307733586939395542298167960380196776951164663088581630398210771017054707446357210393070035239572346664003225037963290779970749169077203051418349405301761246851700928497420274888416807945021014187893807697346216361276424966221672992537676980815175855312720060333411688090461039161676383175723641166171881976322271877249794306160447049751547214247356616408872125498626384382802202595615234767947309174607576975708664406577340400390612576006623001797245490633878535478262722686421135377933909139331406375294015106881891129810276598455851790495755048260239878426701595880986106295006408246288727645442578784828499025554070334338285841081993624371306606620550980438011591788957700372033044497938422828642694196993619071694736687071545385901139171473240208343488229279011488609351018379063576722309625281436546732494624876625886054033631455522008761718082627103535064560064245081633464432157721759410501874831546924826940755205359618349479261661560092184393929445413899775746219210319336801462963127824703275727645067771189796101572278437520276765629507061519672034769650629507314582337339894136852603025892707305799819431743228912083184674395637962968700894304551102875361061936491230019389825717526839583332151015820470732877408981791738781685199323109360992982880481457543833749490644124724201320464734453734218123073038200614623875737927628201323555473836718206943475188305544987326748700058874937639057932453484536584925322490639273028602559744356011156726568486344209664188142455125716482304447464370668053462817114173620406279451806822785386938283999493185207902609927664442437164437520076454335079169533873055663356102048026654888778861129413764440887655943488189513769572972444387881210660242391135985456582352033557460301118945967756504761117430100405544078074578042061769616825178194218245552027637251694214851731613663657515083284768400289390105146481875541830470109489619744065980082300185255604002024863639770937776069504721456238737955963772426364185771783933408925440416079370337891715886807556331718501520742982941380071335461501335230658228662124788195872774946800834873225862445399775787916645564108668803099766599620018565030756158513976655731602135895306116597987873267993711462196169278098098229510058417457101384541311125700152385216828182708878216105340099488639543541788708046231565634746173555977092930482203671322481054794478603489363885929685254460574332391112680670561713719333331852322965776788798242995503803245308726548388579776839570237550703319435313233571724422128688237048855167046078588357413942448240599643618601091393075614762035520033988742879520797352034845023003593029862540907761129540991951669036161145869088897408645702703213054149823858905196749860443847616373712857638414543947899067366327413878156664712338433911312629321306223180219515630814975837164608293139247863692064754579472811113998750029977652796201511177486405838531662357869176850710935549194796815616365331420132911916276597281575978510198953793693560586390583499008573218283750836522701931851759945236876966676433265243391147185798144248044546077217764646398848669964626122338337486123387183526594298405637768547794934353972415858903561396672322613367157244735612401718835462747286765661577528655309963465875486485440609294847980331762565714141124093582989377050129378517546411209281793750592794771602957111802753275644804287384851347764221506409526324984980569786490980063244024575232374497680855983862666627608944943556159215331912473669703774273316802672477720268846836190769305159136837524099537910750842938617233571701991542577602999668761790311704105692448904352716380247207535866328840303908273283041733584954554276579182613370469939838231648771158439145524488359777887386816763309100866666861869558618642941691478439242435552111022445294146871100423108879797422617467765581078230623300041720323591708953841675221182701688835220417842522331199873993719630358080482602606613461145382281816864542869886933885246978624168515006475536611186148186167160547555266285585374878356014276458184636360491042794129683720852731689404125871467861144612150114762362927929617106785290080542901728547395696438093576175039097507281182512726406782609193205524348781977054817387610081034043604510200712768272870545774410369277886234425253382817652171159776925822278450593188929872990662712731219003097022607408470676541448312580879058125661886278290653243796393822676118679649761049488458462944379279291402997989174160712289615963629136634649744826813817746502097459749833886656662751360991426951367404164137266983266577719296279045363161173991678409335062145961386517211815462309509664275549231653631799944842599426348103044485426422158334794018671438491056024682175645653668996857499830382325583004235094986724247168914956141309929367642736307589459440975280555738302845554897034489665092351701769941442966611664032594448968974420133697601926263579633064430814651881001750669267632999005014490733143872357198228631710571530493914261224181255680510623231955256625861167278080896970832350085076404144737140745678136812669810631561667893699716307821682235397189576944104291557321539830691446736640753710524287390358072076610645365851934590866316497088735740551239413714604737940156180489994281221736060644150421394111642862915757377227372727775717518110891130404590723067643647728794801868774994557998337726051537264710402021573803042974878640189340510750642473916938745075089803698027551181540099330482190359556338460212626031294567515842190986444161411869517597487684534679666836319331856168145177689438970023412223650343305891441372513171913831432406123623922989937473106349288564953915213175371956401869916792488084102990957736827288547954829282666357537447714108418100335262181903315451514599178664167606892270614535453917349366112176689097838420911665710546879353893839059842842639937218668784211433656842561883491277754868983677905599356687608932931143809656379579728642302982540393238734720796683949482246636199705848528865226945167397770424130984143701643093420198189308760837304805107555540300119249334339650376989110539734367860491488200059370710973458757851157973639652846527166886355716373084754382420788355161074084926560548862088076750950882929418491247626323877989308090775617043067422149983301702570464468830621896980990917604602944461180578091458109089880774321654494640677236028391427817772326112480366257570120070204209957263728778679912252668270064532371715038651265590469599089418978406765854752787742676691904408746842859527643059574310249961606514191646386434524236339305720548039958117351218086057022771962274304557475061378771618857778966241432695351195887555378333387798616663569944781600454776654720222069117768072674248220178084309874476135380162733689958742090440334022185807766558575839014140058454269168143710021660528038657967918277131588260379209882362738134469107566294348001388425307780649619584388786104275339707649796159569064680939943621721501500113337793655470991494756154607310338783583864143407530557312432690617069314290346372497850422463818173059062608344632917781821832293733072010494432647240034019223268159820485444309496516923743877685028060184774746991810357508792278111853614752169390802065805738138781666366627545055305924480130008096005832297071522854110888994428447859180983254675205946502952098192101934750120998973932929945669680997037858560537397255137794546241521420867244243204884348149013186403568650301182323956135923350503769060907768178681042348345684175207069933325386105956911715564485403897912330657397003454698631887723553681195832964921994695593902861679993861017415241379653819638501520007683228958795918775095203760897414404444476226906361163826003157717718907079321673473491887428733330218924596194276734499717510232943848558968336214033674955312087558722344688593685449975126568689105816342657048280305478908099704143393640961758373269869505672756120772377533960586187910652502030091923938400925375809729261421772321026485646176388256399805854389937156900923709271220000698662047402692353824158064556030206810638620150175134250449835496957137032020024269388134799231232819236767996052737954670180300065927689535181386259304643488237931218799850413627709426659449311900756909550320469004568021976512817606407519376747326939448841836149519057787101227737633140938333435103786186401455874814671474812095244765807414553213622975510886879430704248550676458596420770047104011614644906004330305461696380116703515001373175357671818900122955236392244617752347645177187565291948668125218765220885874800302463032856409804561013618204192375042473988904230497089981753738117550518164072074758107220997166305926142309720776448403769773622323907628324446745073493317405402806180442330606431282370402207997874686592919116538176789730515681693879845662317232414516887604675446150697971222021965374491591857537087332383030804064178758701237942862453972510837854588207945054688600221689792661599861405558146029409704122746639090737352073494551677118295108998888805992613334632003578052624202534529032122294243331457893925403069456152570005661458964652069799608229274846526643876799238244582850268799613988905236275046349488481774508337924663961412159456522293982537298899481462685330685370731189405359495148495116003041543287960855216488039590823921757827228379418775333964000202059228241650276875521041621658981386458108937809464951361790907385032894846824960379332111754888826551258583687494997589601182487844873563439197184679129395737046683416349273639093407819729425641532816979913739387850611047989138232367484879917547065877716354035884167063120735714729769769142717197039245709817558546968294943496756354821144743360396073079016220355759986566614067513418291409126036098987692298106562069194991117797171804274294831527035816640986637954612609133169586207408155083551076056540558916572052399520941015285500502898482919867040272290705702170635111515319858115998115694736795563882077524375195982031232926460467306253216049264932486144367291070773330361818134232443242153356743170455550536030396714530423318231411206860322527373503058683104592338964232339774888179704583935130889135285187196353710660655841110288217644661963746546093412184983180908075930620123870209538743262603808722688550378724956063721641234772645547574105818836483169965116787366984122085309537381191454804292206258414744995068052297165613542689157803755796674002346631266057050653934620025185222416228951759079428691113065526836097083160619517917259277546430395528095047677938217707558286491604833520025257594396977255057363469858727050450781046047028508249263938496080978433814715342954420985108287354259424897874229491362240478069606214200226901834941380025670040428191385394887099073276775321693874590456645948011721005180482978618393462083329638257640556708284599809524480279367433456556122171655342959527200723933103568158257765825605570188284906645182427500559000375082767282951620133977361485781655895549745646044040444268610713364111434303350914428666378216527719055441932546322039568633515004321872572523403018861545961263164226844329029692552765745916830746683500339832916286518025122894685889762604237403313414570221709651314034144921385217287196379447404313337695615667180610902183184639277051684902606226310199743815820831836426796734727279635314092137474714154976018081572789016288219652480271828133899989049304482976944176653339717950075643932934552446892274207278187288687866598275445936239649674660620921949293894972244989916114536859008431905879304893615657108436342531606110222438746065992606565058402837221693612986358702607472741533801398973434037901413014288624325618062238069154479828356952882795566265350788350512373811650197935106722950767477484182165466085532867874459769525204456133978118057861162959269754873702452672627184479728474016779696787660482372099428797360632960181431994569787788334859012910891445781546472087148998625961092750769293948121656913656361183154513536471500787027836610471826952709889158385942502809474754204971851551960239403077879909201704043148782869566516450513110585640111066456477161851279499613804877311553137905710392577571717829860988430488543394792826594816730172196845293067084389613948098978455851806809224294971614282817146197827903697164710543787797392683009457302799028897212205900595516338687384336983800371859300719177452123398008867864200736166784076070079460625416320050196303859226701526146322623203652491093092413854538722728544093482753629334885913664331260453648536213747541959158547369825998435445049167951818938161548518550003858551470193727626760146636480533433399262370555285343360133414527583818043251707798372807463817750419393851155423279282992469703475006914663882422036538381792750009900169955293419726372326329047016235663211063250601081619443549175613758089165917004934337024468748974610150922218362116840445475005963826164569946333965243731924687172729351288473030568220730293629438059996158363088232074623276855294943697027220351784862329820624676618286024886174979968885271259173632803559236184189396154855973051835700148155595530389662955326931139377178277088157886236523465665914371702704653670434324702380638763384896168373918777020247605788527329464086611990109109180579850698817482381850962538668135059387314798727569754673628568831643788177117072919320660416600718550908615882684530053657934780692252815793240873171444962955880329493889428282209880540498991640978092954724515274315423031378984113372347071015336382517256688569990559586741791635868712539905226626168748838211871566638872474940319252605737674504032472816915865566844106230433488576792841622833067096688821924791044856000213595602598711054532640498955214370864358842205489391117087283982856093751363257592024219698814909458996543319686635169560894443566293449243002612177309948932417141812411108276992688399463797515811019946193867646161897407053046780629641226367767380743385603363114977207584365818764840694136275084811041108608527594473529664711535089362707388666603706977016221120250271736400549888425813727376343870085404044161070606463019886415864407273342802294856213332361918713434349798044861467721378648858911605895008971507301588686648346017631270028578720160600611793218903713240325503165588588641905322711868532954214434765744021085301871008330163951085953980915486985232575242112805917600261821211732030744513580510979493793630366082710917615804459415441745453293126315008879154065270901648621193392380469259103683559879248054273578810101573598192479179866043125329113856998969389819843322873252037673563360476661067249141115153355131829770233340718578891940137177338386213997196912764816501965730673078418616098691583145241778688463419347822338530903505033702307706844983167274457697429369374201758590332298839384349816864983049200999606672428563365369252379141053260787836260307911410960908718630682349929037839238851097021897649270954221885790862662419927027325576861562444040453132782007430862873453803857174585588193010505143145089105318723253180955860668933609622038987565004948187426454570607032446821725321307782593938748556880953849011941091573366930356036933512681733361825181723794141319465908937262559888214581055354743640124288263308956616984483856292561999436217743586182285446743478190417486004897862625787341832484406443564474569323368788387358803856636708297616048207643390559505315382049699344557101710936522166500010315103901052495319793352094460638739409906133542701278642630697881938058294304490951999036001435000767433259631921593751985732533603607332633035302108154374922891579398205413761622400742230744325233019862311357738869375754441128185022284413661326446035038699140519392811822262626229625290352299088618063855639545090944265656358919686230790940282467693427652854917397442980534730217003741459865687658642197736890130739185198384775817613487201155420795078011835992109892130271986022983493065697953333919517079497078979295117583835207033730729284455717930755764673393928518563663668716794164476530035050843580861872029188951621829193303413741170346438294595047960533348030658518522415443794028636002455984001001190102152160838632871050160124768982010921996165128841280661905725092807396693920525725133337982615179321086607120691042831391458633073387724312195723147391153060459703227323569712935380711376832799877906511110351075575847969238802987522555001159902024725446920316992942206515577766967274722089347269513730591747153188309664930682433232837908934760373353881316040193629074117350898489484342423589536601453814560648266483647144419446793737407913738110808950889290512512340256336331296291818535827405772534617542425964410047560983928420434674949619827050795575962663104652855905508485047458720234908119287744672178314166209274866750845986286160582259884200827355044919505844793612745917403542965261720297628569554621935120627245020437498518173523386507109392515546718926720818799785868041522176299241196610873461291771500735832873704921761903377461052777714911283064104527378925475244093839307809383763906451251711514174290497258996462953861844146796678150770276079586341860255814953474134883565129646631624726225542799233879845049955922030323590749583713320041698841882102604363325604364584251862005215514745726433842941480415531114740743561748292963682531343863356230321072940872724234141294018118512620154887019016458002515258807663720592238965496237412688652795799548249298349576584633772576605118905316134697129102933783128919804264976112803081010708313130764306978449273139566922147714500293302409294424016923651668357369893859896918558700855293719888577420084418028630437851654628774198985210295425969468919676257114216408605873114024036104870684682500194009041713333673155297752323071920869533578110621169151920738368471674056574321334208412323878546905222953440983353245507670797271624571069195478095668027057651994461647221033317758440048932591439438462234158526787729699276167735790586187637796410090868735388495117900975235315962786540688385783175739419122931559604592978866262352995916767568118504472019729407187642707432130437085429104728987272391377796050636275534709797220400205459188906073525841295222776939329490398199395327554029978765582616221364481671228061926809504926403076001024936885565598551546628385905281151622821716982771069399398927443642585782312769960094332396485817687699684311450133688068832153209394875986355748934805141501825457365270681029482234887558555875239338517540857223968587426471535411447482682387856030162468158468306710916236644444371472474279636534937917671539637558512967988450569832439687010192669984451489098982674010158353808847973715269882544750142815595191165498080507671621846913611313109859121731319811137119858524645642447462862847692870864032297539512732264353263094550587486302060290983195678707937726141019201095060775080732483467122278941707494015254892886405671745392426748043027458106374499993132589706872428439844171390100869465936685701053479877049635955279326288446843763771640954860223510499854036535054650713062156239925376369855725900319635363657926681313256516887143296028590578448835807049854352789983420477857912843999224292072997651088423678364557958751862007279601700449276211872122060997976775999890889565495068908143926674751904593644813144681297500784197723919288447409837398267314719050050649438729406156446661528432492432852377393710325869493743757516877693765311171429631474178184752725860973926870768120731917142520175843114098759225025285310959273513562432192427657659445867282417769327887888345014889345339393858713014415713153197326067294122409748073330858715367233182398596619686448691996370601538897460941244086223632234383423825560908877065497222195127962123010293420176779259158909635612953685717715461114956833092993890310930611407914443169974250442035502417315982069737054109842467931276138999592297191984934690802236801470323365962357972948342273332008741133198015289161678947621340773350668022022093619036473955456040874447319008180840910034289967888145594566846507918398065285536878880271543431110623081573480814973937439136488523560600540246059911416401421865437136548255762961782540111626848963758889585444844579802064321042600762327698583284060584680583029227445206881554450833948084192957273852361225348912108735611328533395041949902886059217926898714674048513958510977124777322307127422918011133624658049369889148951851388108945479120913921114432564247318706632343057950354215991480613914164041005834174898773360882373476891306141962298162060062836987987975930260380238147096343513158018586437991099769111203424728330765439563828369428339455973299967507183737685029380300756922134447212146652343924423972304777629132132423052886812551415856311088535356589723084307261785458703055631128154452828376910568515890949048284944526853078024110948679574853422830013718141788699146610769451361811414905501044982661831235289426882248739113299625626594467980227699168985688527027137861369332099502090690415302620465765496666456937607121992025306183772692926463054621954265029812896171855289044249550189721666181395741968405210414371253018231565529303338076248566153956859187301822975495693414542402769122649191066109022887776102316170447797506915251346073131690847337110984131088662051070249047606990570193852635824727453467009225390391350508813891894887509927072649979079617123799420193313996254767011724877413547888231218288607812382364423685690324433673436393253905805713416211493869100949031683172826804007454354688233529316168097709942689276750824427108926440455829952865615803006846802540641755850653699379438287243468579088655980164281797775457268695874680249518875387398128044293516739928009145482459734227735744465985122452285595915788527978176391106045914555956606996998103310262673945594511755602300219233213276641135233202123861843926028097886242938390567339020562275623077732661773090515897692858742597759879062938905365546341039603037846701282226207694234013909502409833621941162656446487098225423200025280372249126909538652506213416451842087807884725733834412440530446110650836459906829546382216399276059212268506425887381893130869653604831279416092811858328041823851751341952225175089781258104792782391088208808223393715392814433466958463123404810082324205029028965111994635533955867907761290905505313860864986571448026410938394931466696433482299333402854142088941604536401945472679300234665963374285942294833389718018636823734306117931915416464826817711312840183767267644981750006411746042083670591485986135729365363507987642812152879043812967499721700755117992879706835118450639729222557907560857264715519542950108872405960570742499975855635574840123097598989532418179034451683330256625446187683941352922146922428760039961942882713941743732762108560481249232735969704468352828156015364402037626646261410179715321014919631401429434952575097972629284695401635137936333007705627932433275222599635520841982876666585142581953858836909386930343237577360258302898722439650995875667482762542611927998018911441634586830098155007519388565375787009340035288721349067081133597203116179226684635665647155083690563257313215045480434680732029034481408418643811277267311642416107665817260808709694542627172182110787823147757859160707778938009742115446456181211342410122799528456304502720780107579340066292552445069308589586947932080571569296326958883708555296232337788518018329003573933354444383937432360557265146770521955305527270296376136016373826297348268237121618387230019786604475233183297212212218044647720134397435411110045975376495133790158203865044240474715081617174804489095790650560911815009232883261752072502915103931556905896650540719173496782598048530325126754621420138646089157960993166005096072757821161316703540442187659065983400354000873381711801011089295305712215741078319898540003509536282748676954032919804275013247013881980206604408903528740948005513210691857540211718591740276525323164538772017592356517651263590078657544523966570417540980860233075542821370942277658528188389014402808201848086918760904346509034704650877172534910454759104561505577071288539079761663806195673445017509220807531708996779008690830406492603326549463072165281036354824590852012614784654794906237743090551357181885316500117375002009557318795497259990295501002301370918127966495284939470873475582842232855514211824847505528134100626442794219371989566423783386292975805475808216991867806392573902769363605467321468074659724864765441934536339072679849875408483035073314562460152801503674526152925384321838981710732990361460218698931671946882134357094611081768112544696783521655028485531346625877511936721533755894540233694024845255568342971524199128193007493664136338092765463234246261569957342654986013486484958919596680500125996874279102104103197097197447225269090981161544049429889139506083617020765502341329592557012467005843361247378443485205052588895112574662307363378201691708807704983310828677082750281858933106462442097546606480607049418808958907029957589030257711434270870969453385523045880162957335106203463755250153931773634311490181480801946389026348939724806776716678528588114753676476763664892997930631698457007918705730960760474246255594066547377841718099018072021930939291480296638829982844773298069315840291779588930605764129915744169688362485097474629243019331938521305587331616644230061725040917187127174591398363287435654103877341200061532757233725771824995613211038808058266261060869314725956379475455178361440710754380649902174580904188773907570977377020591969941603749476069306542849401327515971263407963677318111256615796704029281038059759340198754381048548177034700487097247777151067191557091981186254817619152411077066198196943753862485333616028829751726428628516212390077037451555827082541410706644641175216385684432343551469716396014693597967252891886298073030261987031313899596558843827000016550028168205316928890580948779765683721019566147535354186314812679850964235355636397745908703332514781679325646582502490609370398068109633758142630437551143816372409627731996274637273908851574868705615518004867732174916785824551365067896585489036994813803945814114594241068987119811170898408033907339677268553080036974449912086250049274817178744978321642674074784977217561020770303115028075950416162735360926210781486854097868946488740399786164665806972785124275716047801474658502758548496429260637920965979009126673888915274770064973179004793516399954885316900972042437762122878885275450704061297974201533634071516356018982891790786983746496655529849568596853882840267397148336844515699252038827572379506393213356104366244249066804251289550376992021986567660778070461842658183528369663085003184849093018828772954584390240204862622546885267054601665257184920482069345644630832343763985385995718876173764606101992840078506429366184023995056905726806888375980057494368860418169629617267608962662418625249321162952697814467247792420695451700510330501323518210188373774810020753425448683966073572773214129309320837437624315059433679129454073842261816777840190759520928433711148571372568990004363294014703755201242655429573570775074306374116828965499676818694473545880483347289228992163045057307677727385319872725370734621064831598217055150471763394225906154143386841059077811221892986256792581947591040365637112659693726873886677299136647916230675260241294216921885381662763399328152416776085349305081642533737312229560794131960046847005090049450087279890177154519889031202877852281347994831168341751741758718370322969664179427963393029578706454830606761916726949609034471345478042442506742247949885611849235901095391162444331541829171594204935907311029373400624066200474671149103421060792121841155963596919516320311718427492595998796942441910810522345628945317622507215709072126525568330524208801044684937731197402779368070875300764966982420928023967609228628863987233001250242081986555572905157389908807838722787990948471270189314185063127388836045455305062552297796617868619298905700344425194596785153388720454017225289933693900100992944321411961027001509020113120718747836887565274975964406103204478380958313539436112293728015489010559342524465462863746358006027686197590856041895762979858049256839349920616261263156354837537188814859639546439024331457256459219094257862274418281795660436240292387850890878338241323509403974653247362591422507786478855444520210208890066759735864651558349928090841175103913710115772536794074757633950276910535900946402588144431128788503175845353720897696268121683394567470888583775815866523105953869236119107486432404172677063939523833268058466136772116940588477339436397856663010278680881145081605862099975416160449665186211415754889601302508240151119555105414810174006887448881015932908886870938636307418806650013732326440073889155529796028474250777015346875031219656992667163792983216664190789369938049097515704924518144123080301185748298865024062341428834555884163545111753211302920303395739826897385497114047916508892530914567002817255657870882061144711354159734566369000355833342883372980080245726770532440741499503793915439357796015209073179484928632427215025588678064464253032913143242068431690722381620426767837964401046844778512041008798610764028515631823710125306210991010420955700135524862068498456289314563777318161373312786636416893027747493657887847597049365544862368662800339010228078937997886187195297612001304639694937270526009716481791705599258530332641748197785479179007359721848670705116599986947188628445581929940221218635165296064435401426724557196273844365182624787574892250088020975208557188790271202554254084839715047994957700197398966043311369129258572427352256230620648954325899628574036742803488845376121141425299315818302551026472562478702146257819690485877894196396376980681816821670632974208702214379002093239189745675197120303509181960878875305981433842093935676495550767157953559868308136190495523451585866878659633858542221910373611026329330688949556262736150648861440090903930833893853132547685382209343196264489438346900306228516599333916620499817200200212023696997065977235657374733788207527868188979593168634420349978912767777846063317814948472314060734179430141753246806114444977160228937557269855452926053996201248440939711102711311557721943070830017098216463740673975093878653983175807791459824298133699582922906056942713652306932511455273676023602238807251948131419564613204122494150411349727391783942737878113203526958724598141204906662642952215019374377600186409157711193963169919068001293396046179630896990349137994580832989186850165865965449917729337566593407901815762675392610880480181461236134536670696384733430977374108629872248518768978290671946619116744867574166029282865049093206718529041334750242539813418069018027150538814985262818749917843840765003252601309683735226620869991305070681274352488275970209600968481137978798481109935481767177921829204531113052713382079449360830953522824610135914902827718325297950689700253622639605686766417212498026292549657178020721062431998156603413006677953960227851223704076360106903845837114509204811829703400648236751472875150766910550163124447051170913334623604407181485420963248530456045635974079861025108126552594872023288950046323735909765449586619875325387465579186075600490366454619015229629528497773088214990993797083046435472334749564755271842333601949078441226923420122534634454452350882082297573801123254443204707303520118900726958659970820045993336732024516039202829955999018496359979880383621169452331433442199689322370819212411394052099894830843182969973488788407381726797364222698692241714888663422230379358815274224415209368284780110811607511582326225334894495812980670053575631792314237616068244510854690422506032711623078388875606875492149188981076033065458734236819356907060138129296155821790419247512903392163473790152945455422051122174001846715605049177766452026020597774735216889901778591668777752039168191524397319845167745212885026918278146534305630204810512958682727534803541401224784629473496352095365871338706673864445235529025361883112703248643996023260336274951048608811546679987934432529983369370127845035760858107789434649833998037647049283511637120645046574307810288148719411497582750784364310576339666283123393842645293474969321700150813677680196752704938481823649549739375126388048455097343780293655341288052612255386819682469910577820049567387803799516805171046691707853392192709390314820474782713347073996111816220688165766504449480857675659214233180555738223953929172081645566102919511342495333710454162453531431127321340884093848679227078203154204076659926733469058903759255296673068354034047409761396304467404399588801506993271234581360592155092298422147350125220558527938516284683309298982828253739561256715146058715464591958018651238851815130429126333393287307851759694347575869469733547252698694989334130730995395715223857747043808354144057015842797023239609793761917093709536948677189093769232562558261712941023318179360746237308317795813896862509438698910079185539261737444920827912235257464002978252118075234349218404450349435862530944367193163412252020199031632836526964155900121548342588216792591398220559366383273542088881039159002714120016176279376889906363282271972970753809771432937358026074416750537031984242914211908456267095638898939892750625573774818866611408026942864553394253593718089751327311784166449402321688810028817845238036914555859572475074463494718071727791106289102925479977517302500451427316573713736236571477108793879419897166681231727985044050096566324697886552577674531238019817729280329794117471176312037588641156064647623825805212051608627609796770435857184742450316360350929555911397806463574944661602497483946223756978746679021989975003977059978470610794566977284889484532627139552271000485937375135085825066329523757566165322275869912430445047134295667836402897698652488969440300941582755164242579019428982145564113202327833087126491887379465532563427905312191085585293196149300536945734379029180712074599611338292693598098933557365721740535441410728115702961276013238543798702207926549809982575728881880727404151541202202781199057166475384828352607518556701524686076767161477764284313580636166463321578439988135647557310674952161341894995436495604434794222663867882583079080383143083125340143797953088615327352222087378028264019837976312390847517033383770190209232527307652967347651928359480003524985310560225950820425385558927080090116328300715288524681753993763251834981437874846769499804140065491747973846217957920637593727329875180378911332371030200802201912085875812635270521612765922964580759722286811019885636634253971174352106136338046664215285025511521091694885460802701252041951897007468797946130154312665897849411106384417038989385410566891492430836997145195021823095399178293093048404117922264278149628290836456949309858037715680783373661030751001279254084838121850248678509759132765348828249212958062630110675363602262547242783929686275256230003698362015054603409664960026339098840358285723673455241195384920140505722933180162002679534815836668448765245719167910286976263386182359829270270923430064216050422849457181192255368736501655277764968815793108022590017666095581216660209754340126323498182912283821589277773692380238999526616178231603833546085337968704472547759396346697241342794977698363784690806320123760561356307073203165802372885171436080889652155924382153652755370317567329408150186196849017691936455209637274164132365449467936471837245764962062814433521752837152455706506663216341143954823198067596961847442031049737356688774920977472993869852856016892551052426238147987908335786362322651789305224989081420320519274096781026862511036228700160979843522336869243942060757787218192984255785496703304310122403235064297901070341682241000306375056768497044432706836580594659784817256844525943608231463833159763271036139468962614166184980935554811489005163598836424146293304393855022524512105022757992852261952426577900398684850410244778606888374692357861980702665233276820290244089493741217644897535899164620592277402051891758576382046489578243553353401306807330570167650730840954964008291929145661644371901007116740090837523121711158599680185131775326714955367335653995523946370118773458347973584084720361880491797393808761976373475864374784795304683517461138026769313410340365128143219436457014608043525554430952950712317329650405936474380380087110869849158420815308953353704622429903766864602369458713225284947401916253248991181362775767216973020314527708185601740540269544081511397096013642766297994162735951675686272694519662590267449568474448822863210612703208274844108417857110587012837789906015016740300122082669087217384864424441061369041978738470223264575886269324183451493266176225836111542711220820823996821342615339725076677826611249394533587785746055871065747715718096727743112942571917655444317166355871288341140571089605998921248219130545562723000678050225716387442029310514385347788946401511648350195945125064022874174456400144139377284624244098302028093340391085758395052184447660704532318440217675238428481860463946107523494183830072684473467389099860760460607054006040469348046721370226246152984294607937839956798778851615893973617442409739873765234054431402560356755570735976175555713098698026537747663984305717309394806645257684480641752911785594866431571705961813534047679346200115600452779237883271437375544350003538893338430209859847417805810317408001273368177930979248264426803794704289050109335269615013974221724802211959783180529994272447964313751483116195017008636069897547660050155619109843044979910974996126845412367884892811488404887295916549123633302968773532807707118612030573932686985519233190957570542380391292442926734624740179709865081509409259403777957270577976465510532707595782511817318306156883931702446952909985386840371205938672112732196572489293472142017340205836991557450485412964895750469027331923223382152028932470042273164913591548375371294417577807965050167531583748485744377835764298553099851224715143351115959852486805558527930585731262550388167830180048918438238504629498274544891726607867853901501166586801081738774411153937222894630760777799132281212758883683138901178851440887900833324568868881594577753340772129247954020225969257468965142552998628852400214089609765569460997927039981638092440053119296794972211105564192072324661981263961385371628928860753314619443163859802425721384046637067978250866353531170184189516486414529696323768105252814033154090204252122158499252687488242056162357188019628781057362639181307954600106587913730363227042920867835937978619223792085709762385124039071237147125934169463358920991247253753100723635234288117792484437388669548675227873924719826840619449126594016182108756677955288296107708223392610066354111378801710414057481732396856175079815616398365257222616755773074193589842732458460547024035082851523917251127043555364122506493635234522967665048972460239390474850193011420007436334804276469157851110029308751710353538779378463393027091815000370372966369315363688241620075186540992567681046510250551062095803140260763538146960108454974871866072436970093973116444805875332763825383615481499427792774688350035847278541453323474434850849541848200140696204278877321612896611749811097079734466679379606142556321918785853366304215095796268139952772037237040271910481044318979569199847784999965439610678457479131781552834187241566623721510632686273164597489454448856597417923832021409928109234764261174310579892447329453133364383397054815695375320238620012919188472318495176513428256631264541603557285080160501251528861141353945426313649444880652171190609190872762672150214499693430920297504768375933684727679943489963474888891687824129289890723584159676781358185384339117467985272413603213475216964130520763738678954398620611206708582421972821744256635334112071498022766394929656886454326947796294269031894031009603473546609456189619882666636019668357080039925098383475763697401018665742630785676982748718572657554498498917620185458708131970453890790112414367956461738349486877651866656845050159118435315262690756299156566921612737321408049558032455426742325488952200311862863216058106526246246823481657940684912396867881574438924843697146036518202657661019198044768750528500375592528542201086917623894884718999159976849313999406998917762783562202509455292674749336551839719767244347925195773183684146238514223183577587951001836819549063030801162872735711143115875817954532700971576240241548351848497068589852469984849505145451191896360697092505839400962600446203593710385792427498367727481173225657272999239168674603740446832402038653681542211587004425549772224104792529499579500200237655015692723579811131624157762286845915941140412302309846792379117838610829178560565834790715534850758637345144463851435297733200696247743208974179178118961428717112384444860623018279593860575710459206718833701369849039440609020807263345543920346495247573251255580312798083075239766835355119723708885861410654263142220879923906429149729332117908809080359930524094832376276493511009833085901703155114476476795190085630296330968381175849649479072066197856611033765336930931841224032499407720528342412786936715787629100203088683806579088940951510128778048410302487872076358071972860143541206012152891851550557817338090443283067016194617268854646648474682050971518054227650673861862493732139610471703816128252742421163525083729195559143500893099414159839434759575879085945268503266857611388800908421277003527063545897085748507542959550731280937237258375969291690892898270074916015118714348044987096175811659673734975039920078330099583331986876459516185496563503638861171623724350607078659143506237613731977597019794795014580202982317632854270201413691833215888120743929539193542437281350357220202241617995543761969018320425071982008404646773735187882499026994690362510017791683428910115385747227718956392914258077410878414621463642861269626681090978187442905238576973539825850765379307393708970394772091322975736944860223628094512115298183469361430069955102210361777904234339759230826708002490901980212495816375202086710389907685526561887510663860993183831336011725912132709307885402110603971556363973396788288909277394923855842711180469831466979175318046060396741639537723718607442003830781709607320879421422597294749733889571821022023335151437796666257684667356200952900560544277063481748108119723429022824200585697033145669985321285843246469862490409524355317219427627621478965757296203033389836520788696318713735923291343672897308467222714289819401046639712260942087878529015815635785285662857516576925085380047064338011336434413923990485487821384820799196391654982674895170347060622135322224486077245602306918036045412739253315990734969937855889188053633103074686294134861652479043969321637504690782453432419018823989879798812226430619087375934887262488155775613830611336030124928015078312643572474193897665454220581165799247694907004015430664613993745135227906264590032084870166638361416124401898484745840238718268587481696519981790752352265779079109083532009891573852569892326245295880731678634793088012074543795960366095755843913093475752578915835176256212126576189484519075387598292363517426899458186211477258442491036754547671675035773901779879488151453083298769638955355521789605911173837325744277597917340598072800783599546216157490817827485190823587370998829545701498337473767491092609357501831446025394591327391321745847470897577123574667487936572272361810303851054533763961169572905675409982735118063839221251430541759548188221554208629511469082686622452226869565870155658164513845309867069036907446598424249188661031108848827488980068155883617941953961872226047957697450839521377767832480826418887664052006351930648094699500932375737222904788092061897747578314183630787776909118572411503384132835719284972046923079875211895809226297750115519259678912305155699194185298658385655103160419238989098143022067663630950740156371284123665402431866330847095270584409483819362315383420713508108513489266969164272195683729447866436547875216683796378147489565034176871550711999001700214143312922350189781169885413130234947904175878040981250072542094350741620530262927030853506848112371846385518595576179300235801401870843240626167942540499075911691651757560919489111261862641269774280585592468264056526021897574350448256277699639767893023331546946192861891344779899303492233882544815885796798063669753884206063326960822001030679036385742516256872940496287321880290478907413275796847293769961735695377378675352341898209512810269932926953111267840054103416960648628336512890720635262444611051821937889168698818543500840445033308305778035633621156027102825659646449919036284619964659207881511214322522017317347514183752314496173546387848485095864151054922302824195008633902803697660449582915697810390945852556126331564750430612351650321339353581367668118266843042094162327094030227164444966525161269698441375101989759402867687634003655401825941118182833392824994581344468224223102722064172351963922995194546787389462027838077481930834744452835467283189168277276296330453806366522291120743321180012590219426839634837367307758601477942551065876831600435291555710793544363113239178833131776835272677304261529791436759414050740378896869043227956670931023079262916791485982531146307685763607091782720084540615046222669882723217216022279180669739969758308329225898964787143991783876420814029962125336261347346908967158035859456798494159624918032198653200412475244369360702226368438662347306274804307953671438352405694281037478154751568870485304695704643886392154836545378783026766134599964301752343434271854808567335920864312650427370529444031038502989384538577200592327288195374534147545550393582040368628061856696019651293037736512522051477591735537707582332581123627956320844334262570558312660044672269109606239224614240710560416901436197247247727616916659852606285412577332129429899658114542447343953618846555451802944842702737507201414887929506484128438030402595473604110009155236667628102617755605018138864730527871597134116908403271727193365990768912863089914015698898458614762864105546358658477668635662899534764230634047221827354214899499555142030870602868517716179497819308071490642263949706384387602512312972197053841687494224568429850437569347858144199346452737603047360268136049630364934518883946679184374412178545442682367376345345501147278230990891733685673128879430559644236772958227238162756058520939765049542793797351153371736428435880063817875670912993215942412349448559442318812341060510643097254068934237636742383314512739361229660251658212958375523438671044399744858393856981503875268066777442627558499047028426380078983442079713882094531103555874658713980151467538491852978938864531926993504098473219148190529370879735221103785287053211878590983916723997749984922822932774373424996605319132172830355353628316415400673922796748227616729892275243228827525665109262801900348765086514099875068023398423266981474715335104262053045251074384924817102928157766279009726517496106950826385694350530362021641512107593138460402732852257342461870104495114492915202466590058644153077507689177637204034946644913269062750640615425539422710258566098368784310888419832749801302317610030000547139631594943098869027359924344789164847174869483872030984856797407905287271412117034162500826142116357152152013476731153562525036420354692937010871775038546993910034519157682956096215096149785015477249446989588678965792676218112505714826558721760902160868118504717889563171034551207149732870384247801734700269898287140236356468907405794950972423016839977787903806542790872642952517072552682406456386749798602078282067420694103975401411988133647070075952776302344468857829795111292382513611528798799322832369786833621937921575496484911286417395148505224915961244142526119300833650079157873007623187610924943420269131535314628750498078057583324996255066636873816841573751279013422935707966349659881019491574515558338117619023756906977606971624121246392805999145327369911754241055414837900649000719370153292328808880059453636463348133662128518485518637683980389841054353512861494363175443098008604513980745644079205893426522128593795278862948249738605108041706656733389815704564433224999526320702922742504938992436410166623826417688758957318958899411395936673131681352359398454681955377072723661024948217261341232110797527656390381451915680980755517650041582965403730582713575311622884172093239085821397626445461924734052458854111264286985214821056690428380373217590102597238095742562792500109182641215137890338861363325593086786140548400736077312584041892447131340848103527835033930534060517625025792091495560071098368291466487634840353793062761864548329951547516346849800426397330095110316311208413727180433894534110986278018475296684442755308893333212248276354023089753156078791126900880493679035900144557839022819687260968293716648702358271701482969734743376773662553711284972209432454715387447225529558925067146512563555541126596880816568983150750722889836822843985924437275417922354078194563504985740296894833651086992712383939696194439819682192840063646331716744939073853604473425103037542345389438859102276149930227462453334256458000324928752119200633468887996304921450084302588236437171147821053567952439028719369041584103696929760361559755500551472904374669889329795325887890345383895460685168133611056304309980074862466381469542081866347414397391409679015611123226009697851915149942748255713841014169372628862036592656107502725797539952549546428427526289902421633393054818920664524289215829192826402330226284595405570597399194034677343575757664563671801197247165852091026784750702125877938756129550674046657585081154413281872750554830054416770895876728030925033278267500427113403257220139815070925228883965722492978997806693956753966588256528736820667285936126936753899791862513438597688543305114737891158488981695809122032383179587389267491133115549594253836267984629141121218661809869553542998543546086610417976072330485228605664079307607043685692430433211153490264858525778610785542739736222372873557032953050023992847083476551543848973954599537614937468777590416099400935922583563549583950060023959812778811399022483705992312124411696888844830673310397998470662463637296934417772508222490778022454819093635581580182003655361790273939548748930310566035668156725378611739844985424370761695099283730332553466905283132699753000912724279834758740572866546825716329517047863327924705756411123218508873033268707950242221550976388980874290450692769672582105339996625179749237872234727484580582238291143607615416473972614971734521344187477162661754855131148917477493241206551644014676413615972159653473251755332051653748657318278307342937931040899366256022477911694402258895549849624309358082665414339613407196813356869409464184239107507806696662957829055770616555928411394543710195498456714204296848742007041554423759069002477583389367697465196149438420137725324632524017687852514521567487411650466655986379049872073694592230465458638356930074025941963326904877780386943315202141183311030132212997496442489039050855362831728977563463220794599991471285141347510425690198120590041056142886283645455621088740379237124831085002463629081079828569026767162008342472077109729187166574626055587406703914261542797268406367693468818734938868652689705466985853341770065793718712646486605359331215478222219213964789900283556079303768377449956241979274555345541573090825496424073940006808442049355208172050276455039300871542270354877040204726940043553778919118435133272789533019324797928292055308713812809331832292087611612114653444448852143377193009829458031015459362710128130356571135443655769111123527349163876851617004169548349997804531274627269030856495548543249856332254443650596984236901784445863402769312411295390922993310253709696777850957887418633769922697759776639453189560125526158036736833217662631799744838565879463858643743127883521665485054855714764672906866456851810065145483671160830374448805714965260412733572393221191187169329557124022831553684417324903135821003950419023969246730624316469089338980587467866929803388100689325216655271121506403183287382501149276471006684625824363835855806610402581777521672388478904649072667423077755050288787497281275631540240025262771494567794515444247121102097966478957166151223714926532992920532977297554512314880784662816595078981426218867298130852914031235169461601444557565403513134123764761827116981021064235312360439789425577336237492283191281409810550190428225325762634944567265806772447487101686908685502132548194943092950270055814655820541176427468751672046510036128196046504596489851189426100599379656049436384860583747197104003785069906346699061225090905205975846690954971412701283815496160243160345042407433356946770398077338629029999141106053197129612145494197714966553068139417709783182690886410121127298539134728576217539245045731895785315459141534752067740076370634114520563719499375007499014955975877627223107112412498000330497080052522059262013738644325304465588069690960445233082201643956968312583854944612028635246164403278465097757021156564291487493361820014692149239632685335124538331291438715257154266266751318635428486842227572435333786493991606644786318416552295914006980734738599639204927581975861544923306599406506685830639060554124758717975253429795787493065406209141465034163490759712374916582555071194629801674125579431826335209682832088822379641976465915786686262575914172643968254878733228368502356889140194851140408668118123521649569752836728872396852852797100320458274293984355169143124212650380461707804482786057112735711456049013098561751094479978927319863120351840143974873421673960227019872405329889176924506852500600950186654216812962439471771954806884474332439920762410874752361068764049168619733242036528379715207307936280195601798790182430270367021153266495259069034215310844137619180171725949557148796088430009751801229631315447977906283023947554586684624180086927104724785258396358009549646408048344507068138669145353296468378222460248729039102215028186615636261973194696298779452228408554625843164256544953703254509070633485770255608664624694457398511269520302950884399077967140293629276130764659543287801093234376481720838418233061425355927754997906947422872515655172580291175789391251632576290132717473818062358236900443256852062292893580607583830858524430829882071083618279422811848074698510092022967761437591401455014313588336423875007149755021285849965723451425634090494179739312027487849759264685044556289176010518770266699029279839798901931175896604922880671804918311099418426980217211468870757884601195856844983522648186025983988110277641045333591055055344192283755102785058405838124685385984412451214167731224465397250094171581890591647584330471677495685503368938145720075409354205912012887879574092075969542728030577801403717840195802467860677337950254055431683906470367915773103106651012124517185848098865055758178211990574457567374611819263516537896827069375616299384693505803166111706209255513122009343676432226352642702576835961598523074754897427157822250252874716968680382536561704797177070560340618314123940027513279638357736560360910604185407449170825401433885607488555538949071415449633760542110639383145154141093861677998989934793106741065626037845629458973931431329888191069615721408936934094361663352054036578129583703718710456872537991510143211298741632389192944706242058988549002672975212729223928647927192348360242815955314655817215350344022072832524999263410833845298228374673520833945560183450747424874832612754686048166977201299726212095758822098194198168326087368201952389229722480564791141485693682866728965419817429280222497904578388728432615393616634945547697576060256892536369002660664492308659345643289312119038113439102064404485261125866722903762325546984436343123664055937452780797787890705523789472698082326770892617081661356356432291858821509301475532285620256966748471419460189771859579617336237655463810474494593313526393764592549760831460820103779131325214647936909318892649670659532103464062116161788728202924694172728376110826553541658417263636287873790771982524757086535822040139101678353194939090281988545581254509623573630329810764767752214602205941457512707666066327817527877653523729431449995166964714811435916249917760851231163983228825224269578342158965622621076194220628055668618983406250565374883813160394483640835273347028978667472503125862252896743739635577083744230587192838673703311232607234999818515865368501133425695069663315810244389838716735435086222604435336556652829013669618528353743888369887100215567469140035744869137750275706819458177358073311731368266318687224620394029084959965013764376796020326394757519884865642772579971325132910908755789032073906207954378594899218160510337226123848103107664026465973752021151442976480636714601717022020683142850978884788672862895181705185099334830671423137541442913745050879883561291363449986905475534508648774677526079157225849402812211957178572188079049037796404632150112005505799628539071233045399170904283126041657018813325364599314916476181195828020855118024119959853364253050162032514177277688714388653332600570593755300016840356260360774750505047245710165085946691049898155211923480911846965072270446783268979492206686205540090507145116760911046706072317280236291148894478582104963735175967890582196579376187835302228296231976231519097416522779509463354294824419878899677308205525004971146571375886334886633795545824019110616261151153907648283948895279022202110280111971657071996524835116855191405734856677594076783093686007529798695360558169081595818311882387199639066387437535944935956907806957851041062989875256379883650904561383915943471997573940132088118814893670849066667248008172388762899240822409148318323707209142133677386779413590818051328757336212022494002659773771757204982290340294994092406039665650875917886255830684245066342985880677272243083548808654982034472673800389012722028867575709041732216469304096233387512442547644628159456160329415397667221393757976271295538361632821300475700976233908875067950957541519795828719662180368098753391266563547971592442603786618726787818787599302272597003291643816403172599652611813179710800961997297500188835813862395033972455655526381376924042906263753005657951023334411016830816114040400100695088132190195626840208789871817415971334827766258824219981475543716314161307551038303057975282101383640187335620307170605692365116714459432998273344678037935462347097577026972519684022146119914071425575339451986740071178169926598890175185488329330463524676287213654450465450021112291581940743986710053007531568440501352515411946514580809649452403079285638081843236848968634748766580133751672749103408488157662803601909294045071063392165223482356880434594834365974735231375725378913463352353034577737848190234377883602378184433047455759891598345418031102559906643595077861483376257732066019220432578355843520678077343408407617194206253990594025877638633990715967177239603335583037756543570878903325824312308810448340904155689847286261264664626997856131374904221524465758548775282903483942265056482186678459618877154936236121846618922553013200794741768991305274084068946101937029788055022781925096627518499703920710349172521453971009186733954232920390850929826506059591953380605602145162206357865294782890316552573214019734776007934296253634114606223210540812752779466481212269267969929155606495865359232864849963522796927764648144901245751310911420676334451867901320717954329016532547612933900305004868652893189536617830243929233657224915155599047193354786915499598342773465264359689580389586924613275003250945741410378452229760941043560269227151038909260107174310149278750813160674506907738612248300399163226123881301326412824665491874573103026661844563054759180822021993365145108475429817796049032421756963197655414468775237823632895229092115938725263375670978916087129713989998579152744968087185356961552547608713707352074710012183810065307119035518374424241456668456975170417493362501521510109366175894504037592656179844981629812909259808761545394395478460629080467194140979239417444882234501408886527308068879731597467298763111340570078035707595356447456061976956471475543559558983150968929817515279768605027918233934907969025657716696889534063337228083704444783739691444763820791467087529674725964204650759722176290828368870204198686385340449642066647853447024600437019238939693621828785972502292912608758679525652477548669605758750859297175119672735432641728870854772219835167948066163014190225427974097385263118272137860393688861898735286833743098969636101015931059385156057495708383971024078719036261409466478944011253497260424411080107983442086070550514609221692842690846446347066722697267294935635921273354447017069172541977614707450905940553258193541091706923681825227104374210078377572464735673487481264940354790566053742527514700574300867236560803712847983337992154269536126551735344813217833945972087014305989699401062025521434468355580078074925589550456062589647729143799001013342672184908844205059990135366159859426449673544954057053665506772399700747656809729161110887641418242481949859645368684459382332332113289451084803976539703414846448177636834812310874360411896373774325701654214712219554176646246080579874397133600876976129321347073553199569358622005888890447924964938710124994493952914189512515722222443612637153194496551263968487985147242585449929416879597360092935070870750007260997765761995800474856542432565043295475198194843895559420995658716875527136730230122590410393341450280667472334330871892563474363093796025384310880335118601946038204422665232668669997754601553849827608153099137783441891928567739880657229671010270814859006139121081923872580456968473535664366515016939564512090513146308385640431474305731404342258650671375070602487968318037021430281774162311361079935256196205235925584830064430508416596185200093483991757165371011993373810230021434848877035063313286972044601429092456418513685750610828535962481207851649406762383636132484238560073431728094293406355966097972622907524895187612828691425791295115973024231549202679285044075911057479944773546514576677033600929438173973509266994645401026488860368492076208407400491029720853517340837039803851182631473705138733263115119000467224859271842392070757406761484483837501656656497788134592879919353786681249666646240293982149362917947584012448661022996617552637042223945355967592038454563231002755725454775703705534466850633153628000845468398412785182555621700297924626939158732658782164671077364011845166410038421152181998045917708069836100700633787596846248824447469555513096896139121542539057265191180280701204767561150030556690899535951548850717965202413575195405188778343276326110537233505224561880013016195452343082683970131940567896285194876463953532009224279698636024446330202124839537182578248312449942608934223945639046159712946447313529810977694635364760429654425965681035978467898465866669245593625693767533163362299208773031378173456671769852312596395550200803129237210949770297967331585575831547739188569369231249405932456384246941222343621055840876736942630799484067488953709616165150325128585866643094246443079373431984167920967467483766551047569065166881930137030598788885137629160832428837381846710875447538468560342165060843429238954216697059351325739342501417261238243021986509859141068982766425966539646218803777663952076205149428067629093602820924442520311005969555108922726444200135641946693582369730814511383302332695600717092037625749639836107236957629464023144744209445474985501842311531890135017560538681286498896228285425769712052276772573065578271269855343947165972364311937997494099254029162185876950231216349123085026961406796188665014127226904000554460063942736832791004417415229061094326295558550708424785751630666259443090926238041967909131458050279706664711421990063871922777533167370475699917154915286001932618289872710799220139976745306986610012440330990808685908685807617367893394695746927582473154344486463687517389057233892705168638355307158183564351361958479074796681804856987205879085226753864813669890550281622304597959126936936128063063250536998966023626984188909405756224628834875503453594293923932732161950550804354530541772887630679423809341995560838005049896432503012077295451585087197324048685382184078295249197233389875978946139114146543747736225297733030477098437292874855278847873208855672638553700907542744364098905807603123570669315816606486743544295420199476572399021494459744296749475271926508177920962158761524653270185165323009524183913737680370062879268919518157432388420207172384731672153203080416350008811096430580804896132326748805070628418420151556248779592191266102285023476365322535609174653483379466630076124601269906733483116134020514534281992988732250531517629523245005345273313877045120050640692625034130335275461054410802692552047236018920557043491401212077250007147165278499053128799930678404501827083925157480546011974961296122338633268865254240348901475862926648965101422009326729874405881173872147441399318704985846326612321984620205358220975195615386799651892079228298048365341809449499825746365667672431843561569111726802904302714844489536311279688425188024354498122245902175251775243467934413266473171253188525868350870699543184060502203225900478949637341393840436781338199971896169811263544859130249222541481340585165331144479055587633616024518669260124826609452066478315725490821287438519500365139490085233018806443230669804338302958726209242999940874045804654478956862647052422935599820368822676134471242667879062609650704166353006930768797213584958964688367384704282347338917010156230809100167644980228400943080473461049926305856374391787716899827814611462835309869503121617655696653424010824619631192044794699472426367273726107208411961314430028972910361242717572997718779273999530055834927344764696817528764414225354977934850724655775852150799620334691199353403226764437259658259140301308289692431053982712350268356586939794100880992385303643131918430215870545696648032787136056329571223607971311487991158886320125858623054783719321219426104129015547596237226690782624193898129640733568806976800783156891906872418539199654701512840701337828342742785088616306087163685283124268694350413242079443820526708894324736635305628420628810157475098780453976721954142230581656095271063195924039464325926633964627393088298586710630652307964767225383158745275324168338662985702979711080664948389624198115952602302249909638280642264029851042433046218995281078243247663191198351891642529005187108061932298277432857490672879570244723037743541869183618813851036844972690417901742842313332316359245330846768099503294596556409010406943909238296463143021355801346014954510806948372711733556249076942562762800173971159658375658069202753754954323146060600946213313665689181394654619921437376779424395824908179618399165988783377709519758866597084311124370681310569647600519467621038303949415994042556441359683697444640216333644648234999458047472518387466151547361464392871922887869371154701111266685451871868442801462184192896000999130915904830450836906898815176191237194932183110309484397557417517071627256157006449503829309477706498244578759556842375734612283654084376530454309033555918618108218123395752225279508395305276506048507892906749470094106574079785361875374696357807062860769341475588217003505700323016461224578985418840914084343709287184943272181599533436279685105409970702791481524067987469814330471497021377889768940520345254592279166668573479151658106889098287287349431636820798440991328731871541033737356851342635258296302484112208003862867569266589724266138272739139153873890152669243470150377156230818224561289549079245531332140586511403898755986849573662327541227482721448959964900829326348294198016114715473800540524037595196936875925529204833188104454398719782847329048298039273088054053690394412956765615961397482490645922168895863191198093325466017108571215042678372275092911471334419423895537814182213367500664505926235104578327596026561783832325189580520456940380311823491077225239061461309020521945982957252538310075790393496618556321353855707472683323170114313436651379876781256680611971640020667435695955027267236476744732343590192283664793585880696230649457080402582962301656412957729476397040850116223776338325830980940837856575534540917042636565995376837728972073913204821780226118254539852594827794886231208811521290175898117968800005969896735936398247222724260770875671410367450148509934405890716711623831422959540708721719827888280857852407970670719031949893979757059735011027105087359879462308834502185658369824298738399925306969359583703993305119364992734247908582486497918555878167737230202637773981122752202434342857121562691872488070013909804503129819950787334069295993092050194539187459547417182774605250514670345305875536480663420897609057754362728832844739896441430341563237956559463974166282378569907406325077620538502066690401320479527437676819793757859254840381074377882984170694579712116024843313674754071206034161634447683129726295769327649694144543165736167277682427782998011648424463745148943118265198903780966309088120157239605374909475354231036690613545282858278342784072706381304919196124273259719226430542891695345243425115834564172050668247479120510293314079466223138049367963922843052168880462712743330302514779134566038103979778378950709329692526802014275658453530697638334913291049835316100149227195673889523870839090822441522961823707492849327739647665442415984047441257470160375903087183693334503779091782567874227963558161966249500518443306844940420455928167785876799989782891028618305658688476694966709774726956487691492777883616545722805037182465822795016388927775685474865162077223343466510176942234768568975234739825618701857628169860993884020558997150607292347518496812178369779824421128585848074644258938999802784502279039224356065041842231908530752334684601715815042913158572035609862457750758850402087200662179085561670619630132654257774916213388564085157051595864660139751813325912807167519397014482259193918926816286613741680307915358895392011812602470555657586824403922784859383423274469975991281399306778025714826987763952203699890554909317767382970117918109310774900457967167908401797055928860079817694303650775477158618282482140821880755644264314052256303697116257735575691889704931236900205044378861328628438967227765413382022091374493786122702629518797512897484843034099050869402827073939058684732102931111505185918515326784837695025984360532233749635720044428153976266491289054114361096712776980371026098816686693496753274689015230601534561151365484343776855039457995589029873526354606619024494508620171321338270175826875674470245465824301411701542873763114652326033288248706378819596396146753243093895751052644836525861998896877880691157427323418895053777355769295862661597510791585269708525096760715572721381717317816474135802311776390021984912240645200955687774960545018227156634358129112828505824123397090551899573310170506531833022268637417808650834504544362063940769423424387772575169559127269772720485882407537645223646219669155995017379240183674679042207233823879407995686218804351632860960467285663374141496467898320686381641630645823355162412213555008758325857041681731965651358582961586484701779524574675819769362372145052227931454017616463468880205646669806040515462387813482392855021548550196369829061668271258059722450117963763940628215961620024102164709930343146586461225163949533120878613085638447445821562981228401121825950444618970688608815085259492870017312491762621165839118046497071770271056712871188094964399890107808211812580851700306841843584098316634474519336698093722133343767626421350465193723860220188992959457835779778327588081040636035430210248095809350036177120699686289909100923093241046832666769200994256005253349080037601357973144021676089784399993499235325724473779750743290491641450004246089191807398964870414246013045579468258953039571280778676203802788022208467877355994300587392872418061310214932855780185692661434643662122581898253291284436636466113093588108371937621523984923529659928699067626530348955678116254362136967560119926207640101105672462340574440419985329337925544333193897137987640488357703369237818918898541907551734998614856393093918417605684864499863459066510953685254489670109935207527090831019619060039037782806818905773479072927309377862932234504624721989465785593604975306074097289292147868038796411340527234578562991599817020108710276849839252493281471717925519353377574250670893140625872545854682999761556847251244917189804944765257992565166921385685561911515094096408542702116363632078698896663625577544533442708594873931083682444821853012425445854291868923449264885698047596940891718267439195503184482543946265965294021173229091182687727287066297827985818783748410192930152287823892985316107046280613349873322600498856360519396083770709258713921778273513111682090310430669308533563908401756045605251833136255341490552879120819501498102007433841584668529974852296842581610842196624403839938123626267298402915190326897760117042381399072992780366235024746907438048647427534205672063355310254040620456062292727695754359809801061144984287953111119991838333140256023560073229964724195426761222815581108274098387146362028361212932565071803035136015434100086278032112946305300435807370402943094789654783098286492465509202311851015757172109997911217236943916806107442413034590053596340360780348283673942330605045157866640027127083033953247558120329648847867658151137710967320103445756952151782430083149020248326152898470705714073139181507843138015490951412525253344453983059554192333957901265551225201520623000021274477818377004008854805254375793218947735708406369014885758962563122973200290522724840544681932229181810045215946091238135112152651794886270398246610316093957229481716632181530993900983063456461990003767927437573362255651516836612611229230123314755942042205794959282452314758106002993214878103596485069111104576490461490619162305770034439507826744959490175416611101528582653787879553060025898136814576764303600572471915242226125504319766922177491895702659321393363823502695286166859095351212283340493806977691166540572210430910736770327388444248680766366393881654069014085665710258556999880986807420093937562032675818360868243825207729492088376025239745486179985619358338070111386368910732217698176973002988468624661941531821598223443819195018839307989093004450430473868202403374208372157006516383211851015752679409253674692938468246871504038892186501605061820635095370325998693645893603961600692955137183824766788151494642830356363501329576984997807257274420018008720952959906071324960794190415559032419823662971850446210411350164489021205665128981546286001261292436277324805304171558350345374829804410046338972191433643209397888684992185776620633350055080152401249146670904176741771202792631749041444738591967129687492096492458724692438090673369609841628227099542142297851199715125095455512680522998191909874024357208803880025504249568608774890067951186655533758639846224478301288172693986183380162161511889626352300681629587637791649393091008670824075565469478482747203579485540554341958662217490907316684027421029639231456851850262574261731977954911097358718519953059292655024656441137422300172392155457372095654049368417229037852338005294651335834877608296156477685639170184352668697167206845848588373764225588216680507498034241847748847291147958337321847861936797548473224423487934394835129290487141134410327283314963926070296871972614340328114957555753751912954778009005166689443761855092611844673395014547151502237803391221780820822939704945485991690409370874037034484617619854213470805750646170822898926713760101858968385286410078668730275362888999589272875858965634251073176885971195004445215518744256386749743686699203450636107908901752789182280196042100483391190469794442012523589001600932296602390657067023429247108525193727817199257981301934718336432660695630494365228350044995884094931697307597300527143483339186977906810601588598345221916598707834446009041126495008899296928254605444321866113953669033871879612540218456954919103763270714350140940659715183909523161561476359193579235221453826009123367071017231080352268553382035462687039536871530260150226361257100052063289860686998008585975109000223539288579295590316819672145682347175716301434137926074402335999220425769024466651270515766431435626021815896187314183870840443149159675272628377752236188257333166400852590030324117600942475785030093340705505477122903360570502687293436523838416580981656684718369051045461421923657675872372945754222609380321409327993414036528665972995862789798921267904179108368205027621954764026937430638265388878845922226451816635898263847358219266200311309099840019626059201142735105792659505466935450397609169921401567384137999502966138736319086294023069067067401386998825188407320283800180651955042004633589863985898168526061039195498503895787762708445545997225034721181171341738555124975529810008686350985546969071015471813561414895863246954309213664379016189842474323642244076743495881435283403406998301228184125388540666944590981121854223542313341452651938145133242203219579857318056542553540855614653278457807096195177085694568211504531512401634475573105256383828223167601142768142861328933855036828724543634560095660466545849931529093578755000159159091157766205622566245494137016177208391584827064822340283837832789030488376588534738342900261582669421207780108470523306127832131633480279250062679228662876038720184786282065292745602181435499780159183787637247942464611562651041255398199702810511892423004110684610746828553045840020801775043819883255049842920421172296194187557888591782870366891751047805789191878047011513156817963921173187749797986916916086802359065367360092409592792610639378034434772270030817645939668168161497489299692214926994200450623670247588518493956572968413161403464238058186737500553184128822211908356981940394520111945209139859910845960918327862053080866380438359944105293987377341445390822758456607536949179301606047342127408413943212708466269458915180763397665068967899959383280663764983218755933721581448585403655968526835099140849562518868342245656377775629796770065212383179266306804235330941695496804441889404935585496059874297820329482555441830156238749241230105000017785836948239071060352186999348506635100468352500240134212023570275859057623353952319041037775262964904398871062316126888489719894479703708202879734082850950669988981989747063890401253634682615902103971138087163258361535058774697500722523392180085517688666482575628570134226868535066449892106868401775706860172333229854069839410623640770160415491843380309540839686772191755671450513547355197319474539652381958137444966780414962016723935658600321683760763947374050307999208990821480676440435433063865125510762423918351974637211783635854118437914486248521441536562539865935604281976835682473254871906194875504474567352557692196936396130940934566221492756636750682026943192925925775134975214443915847936716081489997716171921649954927834346640611614578703039515649918287150656794681742780768282958974455354833344179977188844557090549856767793461614375698126266437844982525652173918141759667815518879793232087781243017084992672555478236994228938001213629408116588668698116713241480314966012019091613249971560930993129882255315089476247427813984662964397947114505936866258390542284293562849293582952447696279692886041881974608028261879364635371775972107822380344919736328058867053770749911168105586391911513462760240299763139239444247577828557764604275028234064205444286628603906946911560736417174958678242049754935162309370067930806920754946791641810677540903744037994105819421008962337001175850920572889450634394695482850543315284751875324558404134297779607536216627627178981880936225320499599012871680552983076138879429655221118104301635760190898514004135663935273520244270943682534942290765181583851814574554252646096600768771146621343865370003640844110774312402631780771334419783025221798801204540044346306443355441298868971751716103431193595555780515456798113871767367206206766032238521145575073761497162647148383927944593126455085680277861187420742692260517079370324331848102895714035247458888355321160933358394219920518923309557462243384988044506890656924217691093811321180502250027514550177173289223250627750602007756310214729148697369721022132379907556311625639944820258982988830749760037736741032939376689459614784206198045524811106440755828638576203264974779656551490065903217100377607550764764555232234686043712618090505892362198420708917793326021810061530626299573995024305713670085168624748550323794177546154611562332976441280725977356971247460884160073630229971394236467382002252118317953833121015428524789369016654896009565918863538453397531434449291868859124603667818599494426116016215779028652053049121099283265038108490347817204777371492539628577763428906628568554634610520059223937229866835818535408127848890712484257581465241564205322662772364675662261052114294831694405954887815318442324911421387100168702112123892189650903956584969248447361470119919732160023023455982816623259302321878485657052023666175389604708631615808117072272363065198386462477907135258209797782212227780171457234359553141656579019063295862705254838596473666760109814542381395307947684096519539278284514096521895605808765726079005885374753027582680102345112174007413476726594022803917598990513130216682139425888786416642329562668125844519641848298217931020270629887719258743139688718092524623544877065156658083995223269012116108653254479152023073646037323324586193916044758719914028763502760843978971249830560088970709589817431289582345262479854088946376774114288273407270463977675756399247252146744242001063724863166426447722215136787031441215681329782978201727514511637972931330433068822839981869222274134540831344550936448752291425303102471702521504765526063427474839344413039908258404361704430722073046455316705260520750671117301356476898508104204662164534332821750272733516225714962546500270357441835452926481929079602546860226639782635890973971791022924291608675762029509353885657883242483075607953898988862822756127376457848081357813880074037407272396059380902926282791231645673288805852081175732306218037205275365622168053296265708868724449832932007107383825564780583720431794725818074986795420186241200388503942325148666021418073044132821066575611123879718881964646007784323656071737196649246107186348928976296102119238861093794003714621915883935035514955783477428974818882788470684488400383706731203204971618874145393342558838781752809035891371493164762234382686396688866597871707082002312638722809249146354937679709438900475004316796537377185385393999260134813379074987300562155337116922543657769599862157314200108393614480480924177207573514372005318447738856061093218767225647216394180100845836829357602725709501479045404153974580338187921141178763530755196653307718806748093142094168706616790947629994224845652669832170407159275646496144443387119752726001471107284407735221481916580323748499260987092867536753830699281797775722593971782999705738058771184278398649797153450987438182418194023785318015718545086733328819430575382978451157904787070462035563228798815879963966290629158261455703116437356094158527597884469259571210724724856907947899116555090083323304067165887539896180814367215119278272828833792091384934256307106762818578949317540595096733811515200170151263992931995236698271352006707490745215667359259294969184687812002340781200570719115140953123082698167875023595217650435241305079317152149518561462555470410387331675913759687025584576032757628650283378125261436354897398907212216330124906012016206355729112230291574503248458968356900361067181350874027412948769779957749202879441481984147157548579264280283571331876076849046874633686111508406119899665204446588695480029018233165278023180636721774943581743069539312706600983356478729351284118683714331852248240601900865087232319419436908159717144602313652948839927621464705717966125499701577974887282852095248596648416237642853736350084958882164713143392657903575572146108373970251340022837337547540703549527060331906847652598419572568182406188890677539955447533236086746483012695618094273708726405636661011880033692174295477988634095203040094363688615620936462995342648179246538288371368253225672736406143743618505393685246763330912322049294388058919923987424864123102079296479713992984831902812565593430311015852998552686604125593654030652612623522394143253273389021706373830932084618630284885741784723609392830171545347626262551423985941706574801106982111706369189573002892715137577040352835397416202059233903835968587573609410287257552354882539973214950757605663544976118474875735122915200062620857165046228054488700027508401905737215936998751138509397481290538404160724063718509033767614208008219401447349040387817552524145015560138489724712724374346107353490607394504424973787961806513365122911266317295045924376987858553994153919361817451613758085927464362820392089184032205837121636207795867972275935577591169604475726630454688155141467150523983331518171348786821803961726119411685283745593356891620402080222786897941731644699772408819681408594056346155919040266207781039468706019862702341960126556336919523640973083951785601122649928046564436255430204178622642896676951166297766855715215737711168055175275048753527896200198395885732857042888359638267870619652690056306132328303641078618136978888603130911236279693409737602521423481537732815919407181607055162945888825444171160217177937212469531535921211504338023042193549698889880384925592650781964923721309185611193998838599884001040705791846513327816740018108014839098259378969861705864484323451217603925349506923982490251745370104026928194592063475578871544259095262948583075662044596410474620392812534084595642725539645624228299974507247259827014458422959539017044823858124033119992518269802393252050791797353433274685910808841585125704761157881243581222173047561828264016814042597849606564364697583037663657614861783087369634196781982470263912582879914867863075008640335273719688374244283680406441641371981802404204778770081587855011047406014913297616879504332390569278776907726966738313621174120542281885594089026947621069797242296148468644113226749274925423584578273900905051602018836719363097909841446191687242897978736250263151104446772831161832684841656187938429018719999733747604809355764263802591678119476996746113038555643608209011014996049456762251065501421909882655529790047653775064634306238279823311508846417260116005806805012617386450198938209357470928905820132275452983934246070987853707499850741397562051044372470412002186228236816844079429755619032538515458178120217838779134149289416180055064294705974445760129682714215702591321422637550801282479280229969618092584693946074382348709236101486715561756258774220396552557711321617712112963549557796829647513697177906932577722285894921435625000803045313182472274781294318736429404454410294021313497916360337499819055079469135976016128003772248134038148183498612905673722721440509237860159903977792912054952547762103041899718350040928685740863734519733615539452297714398089691693424908802894152956319170874169617806945719497703427290736471542359216137666984305392619208357660229746813932837340357116020610928200063185975332388253109592887338647041801332271078756237576449924497843752541985446102569619179260851640397823254404408913811534706037182269973446122380801072016795738689424445987608078509937534629046468912776279955112323799848174124647242414525908788660065864145195261644294576033420758377020085807974968383537992718252630065819182634675964916183591378777665453580840458413907820742708910765413282666327844628992316934601279391121720576584875914397019506515278160312005854635295481141872891171574674477199299568004919924015875989794152156376316027709719759908856736673329599860558576499287524407039133609514883093743593418046618449518722390976156844545806280199518182397164439872357453053364932043386153798420719149344013150707843784637629213999404513930297129904149695244651970038873046255209067471046582348057982403917635950045688534551018997029768356271866571037358491890553425908574315782148624471417675895892529693074347229634683419260402910036889348340361207860090975454423600117703217782538390016140678630387321164989389223408414841496113213127963423028141930324995686582067289301792442929648564971448852590376702321675320241756746726295433354877780324518432647482776042149320592269898380558257353170543990944779949833246016790489224676738688351175896584611252715897408169881599841753517826135790862153352683330900031493466140977482577268020729689225454380405200300391514953704203653742192337905387865981261998246364961467194415658418073275218807828943374952779938314486115210289757986459919098590541476012817444823171263527933601118473403579956587238951279589248705726447961572830540076122399096996346092913983838541932088225204905040462128880441444602030971881194558262465720414757422715032843795425596836676425718303808755663511565402158934998325004250030978917628835059769460078329462363941218874934801478888362142539621318006872555318462047053480802701980290768410783842692286973121658649914895155784339300150565585781095838628046741154499850206005039660035912490711595735624741248163178298461048289638150120965300963230634383284481561565094258889622627112596944707097945609045041300207177787346083753040921573630501719071702021755585471017720475043258337120584018649976588771477137316170843836568554782751968941025114810417893946425252063014833972781532420354268706095986814155136802354471041320128651397579255534911219511420737740291726284665025258374670387321515726935320608853886526709448598803556814510620412300526825568719343011975977670381300118185814977782425974513302845103881467966373462434521025387402534016079204766427517240097774144765064837565724440936669772412163552737392441182507828529822810522216442211002705563629103249068424544270772990191817053627172098050478012263495086377290566744196102377978255469556878427915869782704374004028545430680516587733053879258546841152685988653847333769746063106121282173041174909868332883744458197075858173041503951386028050167607722822505119804542112320581348900967018335078878656907005822090209959991984824746976745228411599528629897961809951025720509950291426976708647975201567097817568290930843015630824027808023505683484702214608219226354802172983909911434649316671095602596092181428101973436199780480410636896774495913580877348309701326847949070104155513853637945616295511619876638004148158164802086112657589564224751594620162523206130901701620680183290659868083344891865525666333764096676542236797454573004460655406994991085055851710950017741058942893704635757976514520708942088675884244373767410302625759737373307318475869216207060529888540831046523170246770384306578351019677287026454498690453624845580734689968483875735060777606632229646377123130718198470103263063739440303787469941218655701713161500733523213674215181485966268026770701254982841851051954939188297491421511594394437061343476921324567177484155625165229053931653112645614312357922224918559095028479361672336269920605685742417660732936358641439296922899325076310956717163172329697670300238049357964821269358666605693474341449587211407495727508965819551223434893780821604528833216417522928647948077671860104732001287925125944407809321044092192850368779945845475898453647617993530452127729583721468888869058950083432868965893118363992627747873723087665671964000803355269372084426421478294896770576313187725972939802699528041413851919468397069000492845662111117796828078540161451200497132350787331664779229082614488798607134717814693530979906121233680761380329226307492783402203646943845889392912707304732792350640614148901007138524150488063426051297096283008261719785422938920828618743501314006962315391157628242245443029035901502134737469410718399249426570779557590388201665541782673594410629245161891420128714320331492966641696543341445981651597697730054681141407289691653613042315121121626957717004028392105087299577511186831503904766295145276259098574695151062098957203020287795451824930362487143438616757527618383711311678341461657001699588649159393597530837214605191150537453293467575920866367165187986452957332278438763802365981276550590656094374825899832873162752725497888911989421876061641063222324929247246144347358958982361886193462732943503315614047118002005966662623559993322827779464624816376484526859770462719364302879958745865674867591818541280734496707563776405211849411989430646131635295327339977213735283833555775197682326467330111249705937298891067017714365613477515311083901005901974840483516021602084458914451753017718020052639746840357164451133685750408600081739916494957531270428001463599749079792788899068011144902523082685229730305968961232586609495482211014563385121309177174316769331813823722204681456198382178397392017035510880158976735647299313001347765488436894607572430351172079195502889417906733780837183832944943499446974478627468361508266655260902959083475981754394558418613096589358534599619160005415304976250388684051155310317301701422703454287643760564171544716103997562279926860984804362760632139082036146370878752631208067548270021824553668975859333246213641883304798179487690181850250651168352216907187075081634208625304457124890658068935090342962296404971255934417942934137298762795427923647652818119219111880090735945927942313165237472048087608608704470047796155991582647226456586474973712930820211215512159996219196662105824256545833841765782760208652409797957659658949231919494435991102854305651210669682685056606919658700215226898737691634719725331300304166922034697909020909820871007070024133259763530307170681386392067890181065501606989511508319477016373850847148338672625726594800837775789820718983104877775886709580504745258027235577297053070057468620618790681932219382475218440006073743565462787631234181987653476711178382349457661418921837086384750185270019842977625603324148594719894544311662016603447862322592670778123869463983989911631807027910477141532071127521858467302345033369460364433863512467567793465501189153324899530632538348001537887995842042697175871991334139262097616360678596282095419088940793561140191310799291482713123395436499076051423590580480623952899290027410400952990001086759252469430758889610642745742461270137445527342520645386371106339973975114877174632692774712526057898603682400878669586167946564801329340421444428133587289044569380517368853630727073257984863623154624457161093295954912882869331603620866324133884243114257652998924325565156104163423306720368701151356841930657198326001534149512292515360591575292181538743484811711953773217530144846442849257830349761674656780073901614078967896505662064111111313526005973464658894268353896773216363307606090013302353927124946100734315267343895171726379682664189564084770976178463977065592994930753924750290105546465592261650936973362369834933700408003228867940144045291523535581490450619651715238270825901468751288389730115079248580242452947254581296473556262374449916489743645972214642237124472393424470133941226826686453648138226532034306730800641454576112152455431439796008321155171883986609765958929422482346607387199987776451544548841350055975125511590590824006273585691875795802961497246758346484645224761151303986761953103073204028881049261015899081397712250561702629332968491404233154873991847242193860619975905776519824957008747084166325993074650471727414929688411739753350014069083542428030962452088295143603003070638517047543829205447292031031209637139296536231192658110781795475312076409826032422319132657536086673893074565325153992671328350993938116518063454060177453383816378089155650654964053784765700052308689674371880945491099308701443495270622826141332244383255690519697101995473838622024679136229187233699310473619725236144336298569529192866453288465769405685380618884754988895894426977723483632752542006692231645947089137599839677833952164115777546420431918824836794852781099716373738583702087781669262232290306425998446541164921561011626707164315900728710650483919942593664834216383779218172736546101181493668962613735968340755674569278902866738183630766670561820762795184653190747443941836436019404557337697932943921882221822164696897892330035419145419941386289233082533483163403586697200852894227121824423345692469892751541583947700480067908507059381542946557798561557237369716744076102995099747358286033094539428669668151128684716881750802573515856884555068583055111867881699182509803604708751348018973176440448615279873825131355857084998892500657229878611583704055831589732738122861493687614337981533669521582398401475069979734150854082305844877129483895123571794830838539653829343553892034123935281884755377524692925006491391821128935090664760433256933100186896160199442315180671299531525005153042554835104091029763150204511427398740139494824679782332056147054607203323534933916058958285997636364627910137995502185951316257114140294529925395845927408894880864081578133489567203695819098468350520150235179827639239506974971929287267935519930422304233519895281811131366169299074604906988250860212293550135110668018122553620517543349311816300810502041635090116818639807918889098354607942197825484976739772585615030132650044543984549367375560594507732696492475360002157315538567492844899749701021064853875129250804299996896122444366809405001447651709235697806914722067936820810386256316309003620283636326348036868852087447182110339192688198351863148354769121863978840859749973050033466715432532891742821515521695919186345236816982531372747786085226933198149076897931275468093813026721782564259749182927329308101796694003970166089195995538808274568529876612095200691962840264376495149019823866140868371632262447696524239270644441135654168123005940054858365000452355755025645479327432758931625319503399981641918144121515624967871327970301642235525427234939791431373027730057078839056434152486835464733222618998814885965084461305592777802551390753268028640776137366702393230097904172068881044665579075020344951558616986665265780857845171420003524294379365829364001756672199931896374816341576279886145528798159785805080980336690510431415715810482655820187230763233121959603076188806530404829747694326038278076021458828455412396772729609191198984223533194394072831542630371163015608435304673051609180803028958618999196302159298610656342680573198766998058408933295685372069825001219545267834224748385455677558374183417481538570747285753210874767352066742782119228372028935307448517597857334278903654708579093998271655891069314012358732125385286519286143613314659167954979603987207954019824587057895170190033033871742112873122414284568964430186225059881290789767276051791028909642533410306453611675400344986028018286088646480711055978028032837054851994278187984591280243933436740400341696342099635940963985839391215004872096223986757872293993162588110554747521589151414179898113980730941977332030775867862840073076029344110465988450764290914702552404874524150175554721495815368033151508354671837892367471261673331142912373314552131277770516449974484256294194805472636389146621723976239292236146644380627223411588717114642656340634492266960200891944262970347043426980061577007486445354621315562228891130293017767370635922062074867117993285820295471766515314396811068242423296974307179311463877905535589287970157646313604648890611488403796611071094787212117124843927121923765429908962449513688385086170425874889910671261159774276303177345209663882934899874944002223400877041099597539933525813738543630860400261113011115790221202696577570422377477326053755663342241719386861327546604312886111791852663073749769513424423878567887090401565192401061198425019679394494229760502785051118631352743832014261921955946461297870541102168049688709766531176578149293049641056854456266612451787592752554518371173868156319526825126587046873497951218211586486318578456802676327341775096773403934947771918129939416182792184645680894558618724858414446359544865078229287860913510633883257385537387828089831058193049261793003517422455995767544702752723038032130628500447917822449114045609385516381006924296576725887487357035097731567168216425280845436427156330837971350061949625424168527265168789145754829624154371049454574701639341255788957713196091715135821192033998611281279006475449591410389283433034024246332899757956456707251919322550496532944458927251101319450591090790106165001657318692223458271849897907650870704832322724495775751808793987122674010585538034638307484679729841018580223145996765707297878365661701081655172338700383663650907257510390471560117011416781051071741692644234172292081094659577907793711711692044816130417598110795499236384680511510943446972610057239456117169324944733937822928817237683254710817132455874115981500753216152503686664502638661609219899193197585222248641861606191634121632506824863516834202064079422757305781323354384976954841074773228100862597638694395714222276867766966265285217893564172147059373193548176995852663112369908783490867653447807672346678105029041852027695125496697494510273887748507211367956555862402444194199781351435864555575363164989143436093886663615886309910640718234018626871316858768814432017482813544348476961432877513702886371146291469096740190121646508296920584649518043646787499042648201526920398858023818269540870103142112359509879988426877517225792825395272547169552583567854023414747117813796661524566682064811112266149452076379219257146189385417959074824601590258061685502420989452371991678161272539462099233288059870765709533557293480152179123082222004037134850189949832506836716102352519190896676070225990358996781953682687159300685147938382769311954932601645749389460150585923652393335860789713936561763345566340592875299522866280196141609142904840747974982892284033792406829570826981673218608304293720850197133114579862001670664003499286435366123674857294050183430647936570551011766437390338334775189315177413757756215558772949340117845019517438281074365547660267508261785812571505771263989337784756067333883550626080448195252283420125939012019999842176949184180579450804798384565577366455659900960742619208678442437173478867918745930210935837656571216564632787218523140236943597137427245820906999929548712049045028442827238273647574320873620430693444158537903071981472604801721697279794930969027155639304360641582836863384704431544833011132798079614667387590383001542999793257781490462245168593070010435276224967679666077972136653330889873139202836934630911042069012828851062242736767491744857119715537025941253400570773276449204808349468050386897957839950573842202915835843195873975647615208632522383234335594669987183063619207470238312167162986050577408060876901762074455079436644635764476492082805890177892893862311265524493251838032072422947232528371440164899563310587183213577317593925492222103363892674489336840976076941068435793996329444246767634984413846077229771960829399463006659450942770881041855896545557975509094125760044994117233775707654177175249266045155391225941004273899774053441432375138225425805530236785418502463419982821844701397775677883275656240440418254637716535009496574339079541037426926892978145636477924343076775232782490313510922210426694406938900701170831391634680819222496887358631198918649907515729451595239166589124755989346933859437542930572489171681320993579284159132220038916025755665406103557158931673292365308238088059781337151975405336748923263024818596353805975509923576040279022066518473424101947304088525276787569687927588070654779428047653762499185208995884106322030452818140648641775155333362641492099849917948978983526797255530118911803140770938914108445030497411824221615686969762047572155076495824447600244680009821221591374958497591636409699619416681265311971399295636233215109292252154218095808384264333564068569405928040297668160525049294710799559770125556165410821503771077404959461307131388772428909381910531951232849238915945162551170080384286477587722167132914343846806031943333693450089763194363035291959192101596088717375043974758669125073118919973518857083735332250731591924721771340146182754717795051039551514414672606556115844912277176021448738699735620922657090663517015864432366384190368905883051174476658381837561352403155332732241009876375516031655333282845986050877172230772870595278838582444270825981216248387361853909846949734765166858298555568125869028278751114850987538993673784986608793915887916451570331845732863758353109104550161467816410588412247875198986663521197826283654285080616073878106165141747586921598651498632082320371498059808606902267698638600444389227344668615054836059670353246213582347929680466134436758683910331828830218386015483306346918831937654322041508968822125682985265960211275549000332602101823743475386196740171626607258260013931482806955724192779532640704767964459236690887857666182934714453524918736431623384850111919412502463999149318716416878383852976472789419144309722141631818373526834257544593775828829701630784318212096719455404590858434875799456807356509178282623735354259609048222475842728681886700688494381648802035067898386087234718521514897589817382202857601101809944677890323468707440857034135681139881021163545733779986185878331717971538780343185730523407903408331600217627634466447827154091013084009901535391261180333497182657953794668310386477018989825995328665099157808080102724778799678653917791490204418770760209419306033324773701061860670974275298064724468821525438984857561433454041020806575143526568064038225337420237156481478322170154958515390290513339229801555230667617008802904007916009034080044160948493149049133092522020805071002083312347960990521710093770062992106167311114008534441602019776000662280213443705360596383601691002697718278613516847952548869200798201420419871772358542525854832807213785208166671888336560134950058621790188452624249338299379648928073181173191942213938805535397441017551076506100860579644907895371809079368505472142456908534940478592119652123082606058524764163705001503293745080637296128432347481542485127729513602320462876312771056128869044289823669315744079480047219151166998757873698980109966417508296785183927526229479530748075514289270935628042477176252368920752661830182415449819090569168482242385627379125049966756665598755483399906164884125649812726178099389911267160278229681455319027319893994127080499916805896482625408580357024483754587339460169247096651518721106257128232684491337756634259845325809532607501103961005380918055196667679820544975700332931747241154945931026154538129966428683301709051780066517683598242155886215168462070032946500249447913650898726798639435299033798972727261840034955296513215664911046013913748049588458507459979354120155850991691513452957600685169934514444915519899456633370526452047298056098773470545883172830205951705873543223223909685857933657840154988963894462384325436391823649551249477976497600073175965860551504418794419836033506793325653603420762740809257356496564111718116774080238942632678563191892506335322144015174447508346461667187002224251342929124749596693676755333711383915118012305758982344232020113012134810091585987684990473716505587147577611482792418264817253608196934856422426683484485410600904857692537945668843704585974004889598482234559315285842282166490688152739515790245708578799765415835331394760973868239434322297192718186359865061223351211615570740848372629253283191682952875477848158916246539983986511975198652263964457864017215934727578940162234409012025710854646854408537360226566500377197256599108657644703297875098083624977976402486376250724977939042211192913670721761121717106977127917704295963555129819236088115125672803353467258214923542414289089001878811751200658418728670697151762988997818420785289010231443614158247087569039875095496728956438248433264154266231468353148195960666650407945984384934204773418280523458160183301303052056364699158680079867152595549147935239585047415504097256834400900051448696508352240554766363587237554132385853411078498696832564805236054641198169663053059861614344918883569086321306653776760608606881844726856708724958575744771213836101150608983776876213695572499687980970970063912287806153336588147856112118427387784709293352384385589557530955673368825526660389798606349661199843472480441978894170865248045234931389972560959059747001131197832527408771176911998483546708075653252561096984170304181815531007962942314481376661567078427506263700470817099928119119935799303311050625656510551596489701572771557151728412391902461047017709890217810862343455601015168692521127562128834120078898924744019042684766507220656143710947967090390125190581271273921993988787786313502007264868195326709875436976751932098915856713929038223877138305977230010850279853353043884493673094429516592308491148029633255983495352921073114284351894052172544764107756961456438827304507054944367001489700736310493133616154792869833214603409828337031176618942340659182659548260073963623843149609999828347161123803914889130417509553135059948983712961972149747677029163089151581377883117563008425293912870724773447136530192417439672469377400803521952831926916808383101820559362052849602571856043511957941066474602404284320074780322206987152470892476483617522379400427931055264977316985391268205986592336642154797854468562452247722381737840184691383031488468038897016639518230337407104508248217668506493404095178473669296075753124526683252723494097806414479068873885676797664584090580550380115733003708228223362315240262677146232846383418681553505710537465643658904036876213889600153655561905354405063989588647404352637396385682097885085165270705258332757035968777217843222966937650393861313874681367986193442058734941169164367879396972938769937703889730603475814312559973414149800566773863794452650412393385935784662506609627956629764211625608838134775465831993112848447427659322170570510953778633563621192145328466678059307989616590906990058427283548814857833737032935146471124874313485689612210182094899161268690499689129178792969778146851974139297114989693687890710732255114328798169916141343470787098738117848359639896849529644452981964297817968489925284191673162360431781110286438662404887234041820643470908355194810579915005581948082719551992717124287306487308889522551597834835176395623524568703122287238033133066892401950255030870796194058799227072110248693108849157395881156256308780719094809564477373578554593546935692089317717316790031499907025656795745251749657453428746526580122532646963064365962672542600114859844471874307885401467512136589135036660284156134022935940274106331080352563613497117794609338633854742729327310738026855875629397969429878989424836473055763262974017616959990857349541995930238602548175709792873027268009158650491048124127263204322671565552646733854918886417390960119002804054001416666897250540048081738827318686390979214402098830834259303012071421535143191110451588741542298923589095282481182877724875092907931595109571144138521293546524258224855024421244188926527205755725858957258159567317465343114454229502442679725685868180250746557745924254225924859527361003654189751535197603104058066331840817655979879124369015186246983186102920570269879917164245429606409548456916341654435620075724910729601726372364544717670034340104873307226910901022530250208570027791572012221238328687112751933691585268371129579814741380699342228730563453823468395849866351733753737505234589801586463697236333849379212824044445166785171998040230721769352412725813130182816932352245484063005670030253735510858169936427065362585399480185222633292077850823046859589833675736698253215656211223552363541554553311469589357555022133856965542179068131785761323662608721568808160877919766521528699945623469098662878181266484899039763815015465052825338098334595132796397405391767024285217511053404899499075900181913413655856420166401975722923103734051881580503140801237604115739646060800186749863775616158914831486197674342243480431430425979510514261011242649694637009536116500491868090868036734638511153766405645782791304113707392081447062344544672277380359724224837319631468885380356545564454195910358217131045128762624993111917003069802330167612339352385461887090474115469707832989040128460054762660418377508297524031021777622137478229601078404214220706528512323871520873921275652208674933181412066379439737213003517570802096732910747355936608041324492321003431409872329312500607027764132460596069718279855255442365194697069380913883108039433646196978798269862657455510526435596859408499143964449281975022798996658196102312898585055718719047216834988227803712333645916428385121600155898565788915790675533799385275001700598964563584788807459856297534642637543602816028841327857164521843185790018068756060899081160808166516347790588468358565326005492694197690751264007874617551442800974644424606729248236488184832503058950639621954319957355597643458098121798550415701280843413529661671538492951119977440813440105981432252588664861635947621626507803293306954752776054579511890074840389760950040183698181769026613395626296773236423794623053532811787979440232860305839144165523589852805603170515106078742473662627493826311483989677501143828293142905864477535424873981563929320485041831302044041317124347480468018244538396681410015613469503421630503467766704344715776288254961321480188499629140131544797419395313975345239996558283039466688191911257983533322520814978457724511714230820815243324429302220422149840261961744040861928297530399684527984050667915770855297943035497997432169472618637105719128310730234285595084905045294693194134559908787759996356202519775702572708992921406108033793432518966657948753346646207370032800635445722009238197140612533376129851309639856541088708915996083263850429507327037774373171837434570351736098254160223438623944248502444815792166882118604338163255999861803460235652793805108434509048344514953238672407141608896124505456088030520233025781883929173276192861299036785722128551249352824222192261295594129370395087969449034076919547062580926684773579902582688970281972864708381575198246737114377011774111205763687468767502316142385191411326942808707867068460593751843537695510552582866194023288963310272965757597990515623827745874949065204712453303147903625687187862731820675753083367821845361512352711350637360164595149591739596538978982228923212938050987901204989006234036780706928969630590117556828255627053685690515967510803653618701688583537232140865496440070542239688740842875004595508945400514573205442673347962717704950133086227601194759631544080346988094725348968226992112860264840312914716976960898212788619472386507288102887975059971803180853072689877808653301791542901442117734706604923383000471984748398759791271092277386809666450780652580898594437846398662102919918551587116447606570690398910690743851734947526512483742800121721566025308554029314979861449264951614204486540346495596778099081551773363579782195139501107652442416811078944320163632897367190351200601212479221266208501429059368119701533675977308145985456211148685075037123922343677430356432808725621004193035084859188908491113071993434502647701664127701732297444125766623136152711749379751860427981666677937729275353930461888044011549908305568135720057730175959220321379844001443902235227874234103917680268520624019451313662872187091985698605543414032270535258843304358263570971483090281802223248345137391321496403081122513976379996954258755085819146324083504228099017657873585655953817142678341743960769260603251694727113004673328799402962643127989794884461106504758988831720429892027045698859924118243384433133464346225250197807527041076702713512196392617789020447774332570332761905158768069682148713746401963975333998353615610132857227019521277513564401138925716182232007890620524974077836648844132881647487460611079560946607491725001415617331335654693184388746022940691863723734400465461670722927853298424348871047673084008218405786091861051372191283035057844761619841463981039221205393868936863113818921526375275954631741366014560709462253095069616644421669319098838557838079530667437898504777063868924206080712337725279046663173074672123710799290617111644075600828386404769916354881023898327902498252241859988587932072432625900989860287003447022488045877839831006660052593838744030201746197003072936522020711073923310729927067356931114839705295615793458930483214218662812749190754209660934207874867976893648133302713568117167689863767953047089767348800217776644171740106818570619064301623718274641569604488993328643473286541167609530400130354609834916045603167672560944171826039444712712566219216248185125013185067461878291740497035988564469558193133404554837791913917394665767840788487835926483904852771219727059288226828060997100015401765914132565934860408936835962535301459797547601791336254226812259543469796606851547921376383405791618197517464971537705657468390500369531713602951878294697408736433924478249767244418079227598411534614365875068469595036925591610071177212725066620659631382272066348243004520880713380933180252336368148419265153665096126818567050083023136190427173628245825036194223162575698330689819073498779080520305653290905909762289290595317079989394837847923638334205605540748887336059752381166801456903815463366062481627790086030899790333940024243406930420512007815592394182979730787011673091348966357740328260207661409489011395868521597314778615760961667025063041443843788304470435586577147546665981579092790224864695797736250732058961974240527397648199785170526149338847390247888840283529041785377384000922886338985307568117419632090475139411456714573487587232276554415475687271582449941467352843982992971989794732598878458668570410182030935609598379144202513783514495255221762763719010626264885016015467785501246887262479160728066251446568546843072384883875731035024559301600281488745906826671044476671805535385729144946103604095758262013242990504792084885467647563644291501008566983320446156248380878035230223561462217317794296581062056420561828534748976295394771426278491774641562713740846051453357061987243109787663545398282623754275785932989947323803259331463353596231316256960595400700538725809848281688673681060655497192358387082396344876001602624375962290689908003140388767216904020499604920478506543768005485504183051627216015512705522743510681620237399625877701195614027401215638358120756292323134722235708696125019487200250413943665224821694198956669527488558773600423738960639672687803017311233965604767183528916392713105499919987331042249585519660045711749047168624448615594702943074591309101860924231882703526119971386137089438499722020226247408679852719053755405639683759288357955448488973424948945096348961914618924714287537976394452268353942946026387018179019642830269690473389052877453119097560139036229832419673552611712284502714393194074754390289614146787711963810213022814511985614628661813862586733952406360104486733987975553770695738973686600463086899336508680782766494380143612066069876233065271974197941753950927134703056528473294344699267122933235515501853338674906080765914598648918586881101490801957770865668663959167526196435390775909872577991391006008055054195330435638643523825988360369487574856163965918534276304709648195298644581834489355529982239124609795192355916894423932983389465128780136016811333843988539265932653058635689377876772540753266081912866403213329020410765821218529909618029202618559683667296708858647890764847820137098096165730287007730533031486271529562893355321104012752209558849794691764834885144961072359847055379737754321551438243971171593752840178391536563493606333929339607986102206468735135629634517634964558070821822635794603772335663144768568421413084329303292312157207690930607352867397795786248392332277023911357943714833160390888990182371415647411591575677180662131942239484180145143812686800837007860477821974204333298678870281242131011941506555721809585613328823943477953257648015688229004331780944295973342179229159981309620829534477644910711850125051943750505062679004094682540552589832182176152245855515120692928453528947872787075280581565429371051520282596091776065402579260812928161623838912632755390623363641046516518788980448662157886673106466946096569022434898115981658652473557111705628097399008687232914993066683174952567834975568684192620386324562972068755052490100279554181098971333237282532854624518902808263028903355840995822285868900827811219414769942890808506586252720467709377267337447995185201892432140067321247256664151527690273615378380660240347481064075461155604162204865581432668188073364639335325739744562641947711028471345394880379768656418942787113369216307326902213727599281774173129124556629819657034889042236217731147182039203512084058495704864386467627686663377233370328397882819154474236802471818130095235064716491595241572198959143668634964332435512503119079858468096528523055507153849526814266639320169207515515551643649966073896466145418789063367516937685351882247636492805190704456876627714775199817073910806604826805692076980039478931305382106520591566459811070808824123436270350646642252637069682089974282877246725553742388397634151618600299633821107852845558465600431826188786998703142552958917303410019526195675286755858643712207459371259003916729944663987641031679440703558360674056707996226395426403347934359500859273278776202180033303910637077897280228774495225650112380357429289226764226211956149849319716158743207459393005517060881114317893114890172911860212990716403974734677490142641962320135889501728993969577162213696614041438652488007656952312087664723760299575208173382546066259027198747200186650630450250385949308618646607604434644276559216631586404594373850451538631214560051606680439961644337520066572751570485575551375174178020367607031247162566792322721281653898776603585823328530444953695724940454296874367361056076339711995051106925737116105204012678072531505158841577963264441132359553121119010907302045303939821128192501039092072306385035609130036946155082189293187412967783324634968240095371813756573625784226814665379862956154332725952585317375196871047275842531283970759172562227380767388540432832420927783186478076582983478669551752852318223642061658117352983915845463015710846385672693431143869032576720999236147823853011683295544569950190393798593305222824884320494789585363248142700563471611457019578640845923023467624196209835287711688144810001092426090524389034673198000091210913565587836854977542086606777990680800750402114556307488891169858786373746001232963759716893064863899950096340752029333425307294908308679919208453131461627113766108606633374522330663539646909998856806623562182715346659530383171985494359853444460479836384865965929393383583124422356310930750422129691277261750893888112393293533855760340782697714696179953401278856203240677389567172359420211611467353690442681622617674612881819478844116522631138407763012065453970428369779422337706702086941689334849845889574812399820916404372496398420619477867635826291041584213017752279719759383293027024736039394455744133295786403454204329190181244820547526373424727634473422952547509504626774451578554155348003333274282055980719449133933500918812500789100840022270013245966506323019166697321428779050727228011726126438753213511154311067322648875910835241493510866273596220890122338331954711909283531122389587581742493974789662915139510814199518016040557501426940173331419316604925241421028447665108686262851773922018965074547566087159608916109679468106000930180663846762712873328776476929425689022545260203421241452705061070966353629695656306724396685331074613451738581544368432088602331699345075250596433573659192567993630600503770609861858147066997530361956886688401057256627831878356896812615487959221524541305426931300290604950912510256302663992746993618376363436943409021657602092521739344381007882741986047607436803853611560617659256711361044037589128781907157025169408262863276989666955779491222104168519236774588204094068597597856653055833683600381079001923819115809426492319915857385935681350579609441202536438233511959820275522055406699312850963067797907175622401189808565082576643186056784713401058816716553556054997380585534425110121841334432192387221848770572961617224630596316828403867628052319512839964212972800819795493201395509258295875428470112562304798062523078994469789742519583509399704875009281199324279286136690370560783002052702618772909390934901196397462612459776483030231622902765124013537697131075186181108752359481853261463038569019203100099685081938088392791296351543127283530947717441483819517747114584709236491134428270559664235743572596261537719125765020666327422687669554618110673905614877550044387329629267386340148286506665976991335976081340008494176574999203614766010782704885034860428891164879367195795159494116552937784385572071930694035636641568850533445099488807792625637042804163630733469197340710639444625233071350599298857927065877995703844478695150660670879710367098381530473513089546199397133834697663376929285145983040910532559779447093605061564479382640275854851498232649593166426517127137650066451695989011056709807246469905553841412120651759183605950252281926787420188259528636508878503915925659529744958944218630224121610962924805449076049437181555512032399876118246180519175505424755522983294393531260064769285381535756259237476028854193555142271387305025886289646607587956439902026736998884974264622182909946066155075658586327204507337395162893150451178617325842952529986454044507993329320912001545067936232307639468531355832604188510857959891076105656995257263375841541436772011351872888702984207351081891974435520296625250920059115148304435096856150311136528230290120558505654481412467897473596862919242730227654079794748352503186165690293206726581449533491317056098952284579354597083294362689029180961145688801953986293290027686204713681833935833614688587486072360909276893498901155875914178776417062072841583105814698910066783435304108387806291881671255656285517418701971113171832789182295153139535799407204888313689379173206858595115460696197683022081728769586135937348930326170948218834760702245468296084751206727387264199883380036000825034630908999431736546363113574193487648427518360345476950116670781992103801903059020827723892473632750915823853112641067557222972753115081672004181629924004141730477026348134458386712466864401346128262459972616874852248129750681584118207559742000211191919964726507217580396114357472207986110438908604637279454097453475123654540471488252637832921118851282744799407577544998477669539304218987262058198186078675938733606453593471428062721758860464410895868316330397029962050637800159241595246349728684337440960762017948973169444032768451880672791544633405789962890176149347708327004705213181481319957685931576497035561070544557166563458153116170260307448933670459205780696018910098291304019110559687015226350089492044632186573152665495312292927260687481195577617207993063254247184906958307974643769549999080586901371444899848479560199689308969481576533109261152595850812474198450099660082242105310580103037585592149037981851513683331037872820076437949984808124923617377960191429267434617867706334687440771458780640569490613693450508646269680425556984193081902809792606912797902450873205038429758947912881793583148535040694491524574618065510473041570314510116248552216434705302495744380384913383593786259244733785405238537541014159616628215886000578148582836737340507641928829594797633901503832824414024213754766584762424941440850670876322538113193072726049317188928109167928592248624815598379353295183415499850561144561822077234640974729790129199629196998303233163807953353251432239667347050252964979921458141975625324255364869441233847503994359337116640721375294601678115113978188324229725171064927584164621233888038777798194197768731267744596288787760288908218748676036702377710034441109423764113783633118009088970952424231888501479707679092419949943331449625802591084229506021800400423611515639424518182226576861979253844633761767796726491488395684805908731761979955637704931083230964989205492885297339847287464878042755428919200934969639909926971675473263985962540474589104040284059829328859378006927714293942526283513211205837627862713124106073519054656798294127196550702671873894482757085142445347401464612422327631118682171598062851442547121954987795641697292082699597495317354799828113899570895030855730256873383514687189354389419134883011105944151712063486876331356546762570589949660195581745084960480166285873440487901830989579052787767389061239931945871675030264486534564254864701244057123504171886300533871047677449440033722575680880730282343651628988122404985063562751485785989211869947344323819771738288477914973975129971955322681972403606736902079162762157981260522904890565674556639323520285642865992466207824727286751914009764433173673174300929103334515677332095498763705041437060498950153819191926393000675181709317781373212784438058673253482989906656739913524263686694509211738523114359030532461934715488589094285472925160340341756135175747815287303539720208521086206295869803048068045924115224364266751521866708473305889575750296598809244269586992262183262905156822990937324043457780973959963961453673086459357385948450697450194482675137060224176485236105033769137808334233313167647139820835042201435806602347290289199159725150193318588492741027633157707707634316434234753148454315386015472710987611801643869552039138602675003372791335406845538136084243940382338699280278110254908767765662582111191296749243283583738633750214054792973786173389336029689824413319472767017420543584130178564429627059382953444829298397190339430231189370290078107471425716059039314593024629392644785864545237674312909263379798473977997546661803506220924971514286792933234514308946096189697906271055727121998968490913102377971704078614285275066205838841137001040919753746713297805304744693366482293924585919492484453688324739515009170869092752055357540775074168956956481582870353344548814879994112226414654406582776737802362584027029320010750883613417642989907291989832505275698771555728824391572974848518491210188188250923507194593392266115800346989252281428103636844465373618375492606197687774583354445461740446370555774945794291117263408110677618910894125819932212685129902820461903635862870817628197621329194612069330617381100673527847670590727484389527964249755263156469246693457402949470919837198516062379928130628073224495628434734468272477988220678424692880641577384489269889221542615344003431125735114928320711333195298495653153180775150395384714802313479159018242333136254395957315553800319901249369970602767168106887225041287361786278796334676411109101649972652620723965258554717324581912744714844578763127222234808281812383978767260050044818521322481231000320264984235252123203400495582014825696168669245362000352629191677471896161019058849670910215996028396199591877276860654823723292965868498536913730665442625299517264461836741284872565103116687894415412343117160439138567924542907870587083348825828600935988010598299395589109121337034225523273000115142408758425970313873509409642723792253272309832787681798030247205593106104924464318640491037352376568097475905555658372680917095150423857674873487767348288670358687174608059045816872893763071398568396597212167541072003723931081314456247094804183132965047026299554258993336540310114422088720979371700358661168387365492422850342950548792606890318687503529647123181517888221738950186214942688938028903321777144718769304674745632218956143106562410556349675051473376923718683284650107962908429905573617145268339316103609740326287372208721486753132318626419851042301191258219350402849560479912956665397833551397324642522495252975230414735036850672900040625133005934825429166310804384074126825388293952502521855419691026094928319997685078635946075908486525982907851817410656825187725751253682754976365238961068400808975895922100169082905325668094127958650272558138096142542367476849577124279684017934015409872684130452316168393434997613334121765901418584815022815706059834283766499865240911365350667124820319977790950139065391718255215716943882051572921390781206131741492195463279443324567094567369011174297914721208301106797114546328359732980668781427778165953394275109858590515432138178881586481855758408895064286722277259048653121771326158656274897009648120458470038658489773208797741178220411206315121680451075909360071749609019776713324070118377386763256817174941639608356821001407295783433899904747631369923125875774867283659709622120864435089698423720302044328195797636610116907526183192908563342834538959894906789077536773229557588812983283189244655763857733966658160252835858515906445648874577099550408466633302720124240761350777045630013212512108890664851848251147022512185374916694276680425521140473255100220038587346765755270959453751634678767315892836374345318833081112439459537823969464605491226218606513168433577791672646857145152165070318415413436694128099644237907914370493771633596548690128875822715778615883875679903350574700918517238915557623573004073747102286666596936723286800508544423226346314920482084834352552501203450654991318238200334319668967836557934879578534673176468453746995534125905028331057222370052016496494091203960937914430640374479519712820422808263586267709630564570504377322902097480668129280751627317479443554564715494628327634786238805248834987240887784022357364513336308166282134021022145811575135083019088667011912726168210614596465755473874300634048257830280487214644041234722934111489434987184484305259038382540053440638965378290472927579372065378577398119713877782405459903774614484825594131612219373016219077923645973020610918733523692244218580222149529587617329873860577643041322203208646260521962875592367203896415836663171918451199889885202706686920056781036911897886086752731998005181945052432156568827326438402934528220996429314125115810884993475169246811077317774680299154492164114998120628122720135075914794183283505372275862551151681977378265760917431814132127357739225008382672178714940113982022365361014570894622052015644565631508451529025954241328709169424839769709130350207483265382918170667771584386820614037825400139962279556844621863115755492094395675592838754225355385531627408397409595154623890672332332095595929381056092930436929398077488745566834540410196550099561730454400962352956675751841483948855163266800304048383923812711464168531802923832540708563207024552709373828236824341516137201767604994579488374200964832346015901073824379052924325047587802149816461275098711812948111222610820007269241712088992039010308382745309649614174032520369592060234424770811193520247459920677529141003303921421765432096653887757871488153315807350108039424024924419849250617716963469416403475206946168031947114349800898895951401723986588822665151716382443036601885483885050026690713996525650781775290678369067928186775989446816176778515885443645935458423446234623535265794866053333472446692525035487930652035949200248725128655443152689839895443858724651596379115926308838984790744151345656748518647338497501559986430120246296290890914424993011803959345920394153323104176162619446272399387926029457548832677548831553258455079202011417111892973054493070893632619251553746401864850639422425483194060883404375183268326228157776799286531900612201979714750058084220475028970891362325236958443151731369187310900564940861126596082053673388586977890240241506001917738388387222366537670530044304454912660621797768556235307517275827191537217309171189288269372432628698811954399616835609759994130730337188579569008358934879696102349847661255813477464239283423724191252437114689348102963649136194555445786270125967032675502543360994390126191418687548297932422553622349421789759233591240369829553447609037823760804234569591043963037617604787520573060818829479332579462222320282324153463108672881864277478043724565454646539445979763648252964695299856180983778306071551829285623537861797673741743106958565604949459253383213722292044755924778444005561920957407754213273605173807108021442116186556248164961723482013822710044209832323072782283961630666854786186483872093324814348400747810119791238839651948521543086690435000441898360292943514542815255812841158065269547796879427038763410423307750987707564308730997084709597597225471214872865878311083620500005978184708923880884356538839595820059491262127967350997381853808732016031581616916189775551743528535932188256930859275044081443026296327481133782885531686837926608854808361601431486790361785593077721143617222320190929012849630190307131048467646462515681936806139112326514452561029759973811802002255380542558177747959105103934377847394128374543284534411669488903944399329163617907475932485611948606702466068853966156685325903086982961457681941313749013073632574726527950201263247062440967786962979554275489912915108394391513535735667076114238401151600845515729016735362511323776083945654707739890091853399238822237010541373248737187559789963042901310752461383319464095573545615089547135602286029916719809193739293473139218136768816040290519726107454516158946292261262678979899301072970466964270662200581609427090255712287258320377715906378961023730431380644252517574698861363778998394869489740507876997637127597046888258194542536008628941384929969656478325689026953669049001246770737507723814073706495028154125486825842581012384609001468609127070352324782535490733921642271937783834786337467114714058842639227005769606970917568368661198140506379277836914073150270391111972045760793279816941101675766677417254107866545957558892130398326367528960982326550064236958867550256863735300511516753789122849447873096513423633308369300647066037329934947729920895721248847543393784005354760071383966545045714942344451521985338564885334098717139338037115634525845816792795131014115938338221165447177517113349788090371370355532032340555946656613684694760822056060910017932431311632832144375374327624721935396234707272852023546948068674213013323711723753650883644129221442976059862302446526891607882786117944463604062808928824853208600271071347513515999912116726124856834235965246167500237843920523389059166568747828980663145182510454844864593441816880411617087258134434901686751942262295410010172722068876523774789749865697193538472596150913111204546068532977932963481571891117763624067640186763893897065440815568896375721281669358927617687336687380392710976139121144793750629848022824637679517836900143691634849952128274754206385184072644255159553761969849472081834852064923887800448867592424799532017734189613693348655215251272306345055926770760809479484602862862280677790983096781287298514349069240015398391236431349671362427857340969642716824666882925234101068881846586356391170902312522769159732362682718866675801133178432776040820768304292978001634914557615215525752886192244042687973731597226021026133709329459719585388129643733311454719721233252108377413600370794064177428604788240683306987277054096764817135302209332141782516298285588643483901025550332707448786621750811004001301636577721861449142697137058850563829205737276844689551825979513068824908153168547496209183186760271889734890423777172776794938475250539083556843789943555190733366975867495871315058368695494860908425846227114997125461291873546223898949141670897333022322679797712632453580230340642960139624194301867514384218477173060742272463184681258267404321399712643660917636004622540237219701516317148972179893745183434365910948325949256579642955319114880717600239675961182702503322599633665491035648953008298532588306164077086781303269829513018757325280579059052769192126412108954988321833778303169938455707507317739825190488725266188053192157168732882911344360799663630587306241649458427330751599930943022518277406613402662181212106184662079477583453769585848332387616512160281047250501767304946077048794427034298653015448652566845642189571342746515308277765055044034656188932073889850032631538787229754914532784482583219454530003167672632339637411445680520391378340694020891898194359497571400322168050149537201523858730194421642525850551718379005675564351847436824789990931618539936968004229479909028752135347427072166142470014504135072907173085107548164850976777413684287269746093112351899411001686880711170833818170632026294196565987682322817742254530652635610709862061526596377603499937185343071632968166270581930719926526123831207072470574124081309879376200543594737318140028661062375672783736340075131131291685623825666811626954877427898850398561431020473746332291938719908889629750320743243387512397129994788976035572022759616787884309801381376895953981340188915092025950200841749918591266926391926256309488385426232797476605271556750328876326874457978975976841132286730652004162669594489403185637631284499511529228552361257103202035951628690151616446732286962992914910670726243499705513305222209887980155878242870719784879968471892431896185601904006803347204085517618581926469682356562045758604806116715587173165603406823102380490372587040176375944925895138606304778740005878023006111737477456898487429870827396015221540722279639146502518231138888513093947012121497983719324677590260039775704163445027410604537923753964082997860016021142272935178446209911583641543760263766155263392232790165268658817395033976623567434871490550643086627983849118777573597481903559355350043025513227164028637342653998628096059284325185088867999054693910125301574859108532584913546098187649064452496149036207960170359030493556982976890343856746206794026603417166179861241948680823101569878594462486871986098045830392809944209365637878868380391554194379066728548204100282641506967859085152349431048029223100246594992171939439192140642152897207851105511902643913878249965959668112215894828962173530044356094323811194823849580107231382227154241847817413575740793423409299826694394987429794868725780512987080829893396181483974475511420349039361042097840487971085940245585927857626015463381054904011616203581568699936829425694347829999867402611193372266599205360667127599113267040086405082843810245682440171575558631825071737150386141925727754387832775433513060314734802740078012452155208220308328072260320039198013680071627298514172935063900999323382283866120552551200242817141007901193467768154683002912779671820632479306432424847052869061108189790207872748412490112538880916208560211149488315675130736113443332352620605373572610581950390697061525365610587189893016273041931587716762688079411614199411383991876069570355851284172248530369664769883104313995959785248090528299656760711713655930090750146929283142927275834544464798216552152216066551746357487197300617876496255818376000464360425798527648712750003874999121982609769592965834527714815933637107373717049004962768377919624932412985420790805460649945186424064763949067574241320716827628069897218920756080036771828386775051061973321515683968524065785031299265038092386406439819133862740054565209067980696948756518959991585923170818338254583771540003513403900621718251481835431390102823345552898133561268837192570040747225089698409947397504253753056971584424118548020954303156900828953730429807254658715743130811866908556235891320966871090533978638271593856518678030436955925200987107715778207028219709814598925072107087996102545085198662018780396790796044223654133074942055569663696565460912581278511300609109948765299932052450740124088123881923174288931469620271141305630496955796480329229231496344114285164695553723008236728953026245133477801347404686641450618837122681872885040407621648712711144823497234007754768117477644828212962988912561401765889155127773172264837699567753156077362831665687824073300630066495626657967353038209980864337751102377434137664854793592654970528998942486640930425568166305869367871777308847249938087782430195601308473636781982581916217676887985980353797492219112756482792815587430739038178741123731229528027071514131468792035828617669019812106296701268465250806138327451619673995286510145283062884617208156768422788187538633994487444644773156309402699315664454785122845930522174023606651581175099062628781656366252627082948472902033972583751283331350176101596013201002433948455503146377819188961300102677773079668495104217943106435633144894810102021202997322845737273007164391942220567723324405265478403132329284012062576030773849056829979836230624444305475689845031474222268273624221883576098129731353664127833650008631857017922850202849752105784602006190001254300051398368388880301408669664170967131823823541509919143239553546611449872511183424515429125948300794994934909660524711083020640827887954941261684610664091602840566644063964719903756818833695775832107459980121989627505425191689353824080443848684350926811154325395933404478850745216836948754620395803326168412625488947750553463133236498965361558336017690119644251580448943378315622805473684485730317440347246061125761120066185187453096813323654804203669318182886041766184607441097217809828559911848979930010854720604850879419606163041983472550699257883216039515221224782606189927052737460562257571592205923855337460618264869243250545649608335628341985902432534478591512579992272966734192364419644294183963326871810888604202422159412077182598395037499339289321880141468313006691834377706052340416136413278608898249457059652301153473780940337481802615141321877541110827750596014692884385160262640427586575654959217464177095029091286122881685416852955882608724508764180536411737230457941539897960698411972788088595127865881337145883609713470402762110892248865582431704372765836303277002728495961413744386941004263848677345611034482064713108756093983768261804925822366077508654780819004889085275661654113371489694792206745447297984760206542758017293908753833259393168232528272951875547578792222982337222050323711206222021214619386091010479453847838562548694973069040149066624253887687960652459822008529442792088766995944981758781102518600435939635357933153873271355864815633202033190146503735948554690072475203766405431220557562528644771861819207206137195462324142799121041327867321447427838780067814045326401346130399610701871248926729078859282419914657827974130622598320964724444931619261147825634311571092412389660816592142283845337865311140078780517937309542481496610549559461119242227846047752520753004719305552637982378432325271119892157909856038286532959537580676053788572250116150286617805681563181596456937511928791645329934120979580542453227415986692399924962518961734835521885788181854469147461328493542695603859241575596627169986339647701404394617849179999955693485659343864047284001637407821240827533788525954226293793230649267780204055389677135721645541037012535445784454832890549906352823702766498368814887057016547028599387382940503157980083530530009134106481683880662138941795548665826934634759072955140783121759368935180907304286425729813292748863932585847379350212675189263946458285896737922909055147303479507697568496867284919994824884094183549877543894243046284242407986482530702854250758800736685683879472288481468836751712928828136456563237951433759410032842050510311790092493594685240600796887837926167125106835522720436223444890616756901721395745118291703793771411660782700918147151693541493763029830415989299005293846896828444178323939467189893231615714288129972842307026082384747929491622500116050552953846267693155867429950712102900867298479349817621835685523186352617868737541440875442354575974315265473539765539622327289775948143935063713234527001690982096109792325347917903499066137366884653357477993780244403500425832588666955778647336718990931315654531648149114214606109009820972895188540237745559720855523674548881995504790039617899244388999263672201121781351645443731141572852261577450370676511718505963444357625691900428449092638084540919991349506305897789364079397940670057676618312807911816258432609270437675741189296514220138326709479634257283541157156026400958418790008707952401875500005827532247289377898971828135798719235986983040415253910187128454133041094197134459233578395365203856657671947540603783519427769803818027610553387220009281902122978802678643556714904882798579839578820159285910967727542044793329402009309789864973273334832416253027254462398888070196924983189586856127262481506377542634010773870785019466401166497550597183768523618122889787831282304488376320139166452970598082912277185463607512674320325531806823826052645303034420898032217126760746972165448812695072104489295612239639467814390941690510658335770197809907784344950079945536135072084770934657105433311705204378561010022136611409209363054504793965521631194949766036784018250658597475265071829006697245768944731516653533203169197847999255337541894796225270203874741932293077335462730479926021711888922435716444679238342167597071185431699003448353817073045840646279870876361392483704198775547050718190621281218021248009675735671806864821422392947289161779641310064632242720788719168106169220950699204747724964299467457741256897164724536923499899176056862342014942331501337324707864793372158866688082376267536139847804668723321460285587844854372423360186496440755814669431812862577965629207210889138562787718342260344304311697349398697505506781316105366143372581197846494433179149974458566717114912851103751754081382031285499069881834269399179127279756073740329176522106425681673626882329819637370271064566432247896050872079362228209519961694271658855223568039435110103863414377273180623095356117013672016898864358502350120209768401171551159536108093062639488258525443128599450580242119151004793212471264494085025729311756121190170673618600702713742195413363677175744623154087778028986820658075875726747775870927443870871408535215698285135349188606269365557795811661558267054396389726743358045908037729821757748030558941593617818171405964268895819847313799252093630394116394075753437338405579594154423005852863242860412979772725455146886096218992335652433446320704232998852894567367860378779862255904693166188012590615300010081358250010939800718607676789373235287113097609921628670795496287226956984155695751356911017857927719271915098780974860934004815766178535768427849456512637386329405105264972237708783186216239919529485983239473939829448448030405676903197295508224017500482189652347336953663217564532702737540640331708622891867594889769908311590735154391945981268784381681744304676441305027657567698334068386897510348072689841602546743728633949240427854926966657784574325129935968411508762808486735608807222130327056428950131467964798033024719452374297570833866266790457429899199463519055419947730959978828011192069753107626379568011308299677701863574953801592516864527673449994219507451935410083225660447244873074472536820123979444682611467368170404480964235964916893032792435726732809224817456439965873092631154738705350353310547233553671489710141047171372703528072612442193464002666383477815540689436697455972938861863994737071984414714691975433096301181688133125565843925270870397607321887805815574531872818067686207456363218025526188104996503389203633005290700217256924723870519296629402216286129044191423976817050357927195476225561058815078791939653476757421251637925876284061602335803765575480364284744308955646863178053854335452350677056465915904545349253098238486916818791011513972171323379507651476470642713945641828698711834939236090333611418625154042494767102422884333715355837011134333540804339692179523168231693426534375023808400811482275106907110065064781974116819136366169945622185780892566833913181217649059634486257067631393518484317416849145551482404388031235217999975088112538887923751146668517474579875657807116602178939408302476825019947616404422357677485225080447409856807983442064908094274869559389163055161307093524067324640715067128635113033127140117895775461862687251765743562396153610866348093249183760975232931912476389971856486377169823583094023104369981922478493048363313002482788120429420825209335846851148345818114997743420299628568950201001525822607644580782566938591363386593634596975426299068476393547131203627127562735546735578785039406909831381430869810772759210990543810448635420360809472708197577812728001960261475906658893304866655421553689672229906080199288236029473145403180897494037272823820312153293501277352646738292458666893286281774258675499900076197332012800085931974536640565272296875632344536124340382965519213089065693110020583943862663805160918567668816458741325509346200236128265083162096759708006445147376841951526945785206182926036786217020640865030000931798727511187562075070142972826600217412433077321152099435542888512381135533650105679927723734252730328339656854762561161874177210865375114534797920970851953819084956180719665938355301217460057262154653817422106538489878833878218410249534480906511385854706736587368507648727253181407446440134838894882895070437317292990468701119530553927157855465146513780713820173755402253857617858766024271419943004514448811862318909985243456488153170563963132683665221559134502987942076301001258809446085302610415897039946807340695401174364921131437270107129302272726423341106102745223216374508161426246939859005867405649068722412339951605558926509398419163031190528308052362048795632350124717046517613862361295533078202705381085669682333561064291666819893332110100742628984838840719171399201746118038815979176107502844613901683963514225277175313273178278769271671541939879759237125231972408269272094127133658505705656502490945130295392203177922482353744004534807401252357159200409537914754244106434951499626293896181475226609100388172824288156273054057574882127312590443933358116140471158185227234067865199997491844999072740687301569927136695287935753879429831310706377511579016343711221048966220338580082408835669643408896003786705663370378632080855649543451054346508203747170560341381388691513638624910414037613261358190063770001906360385212119482831694867417825009227013579711488404749137672594851530071072251268312150428733763557847600906189561353264128374736175586452803656429899826006338417789083322117222774548903154710322822961377789972228874722332940049509596225259322078320725275262539103375554025160084092079215160159787766431214883683097979852218392798870075017498813858699504924811014894908036109417643737409194225282943724173483294716847251600776912936490696679742271616972871990643526198766854941808106711702801773142079758353128239790468320771146629787957777272064351027015403978405784264461850897824622045750317055495168449345579775623026001523667457702636974917303993740145234256883976153292914923359322026776178602668199655004530664592697961874883299487998256041065755040248585504597630950454294439595332831044573040039529838905362351979177286018914036023890700983014638798997687936964254428741311529254742198196718878860044996497830527464362199641258837013182136465339249872649094980068035691792978790568451983726982726371081673396179231643553523133392290939030058817802101187186789258869845227991284390827168651706428690772295185882500378553334528254363980026503083090780141285172115354063543928151325974843918276977257204491131768193235077717102543177575709492702250480061944585485398557759141003196956645637577897698213321525475071051948062532735346023957702275850514507588246506308484805809059960951732525770421009674264047553008449749046882032890266507592680685026419555555972418168615015334180998629835198560353292710797785551933185855296450310856312161128606691632220981403215932837877343647474639275756114992944302339158938206178762948183587826883916754659347315787876741950524370481690140980323262689710726368400060776775887258185610935186531070964202019868161464322445336994087491622488657355528473993874234831413844440459450844455206382715718360575827568598401792163216221834648627065609986581383414802641940317749406430826734810517242240107285263972847382057717293056555640499734354281680000769239700106141472470944892112470087072450640005735058349637253827420635416661065553779609743388810075497503034520394356941399161769271731090920499084134501987944800215499609192855137648364716484968839706029727748072514190378986061944945141934879673406962987824766947177526940311314873372975288307738995109997338042248554391821844358514523212052319514022193492692014593624028815841956728165820210828239603699436492281361618758191175629699134148957879111358663977315099834899390103580722804773765797035490252633879205275706214942584438024706605719175264419113110621359433606984229217696490073732909503059981035077808362191760778447835654603887242256610692035352532480436201841185656774853626647328715026038209355780143555339469982257382615884281833613504602879996939645288616359074888358398188787706710358321076986981859749341863044676175285382925875420852710891965937568796341045760441132381483826044875827781110265775495221801798447254488449195234125861400897542623309200493928324560811915911110000989179251491779897494915570444911115854432446223859845504902391307641800708570096077338806193598530614469789253167570525470048291368529826934185523768992183078625952620967544085402193479453464279415394090787828067153827899599974864069736265326401562648020370263572082897793609903642840558383672336565539525518469844939867442795729176637891127628325120846256422879653159568257872081332096464244138879289976889405187401241223318375716281642561147975744516746390068908740578177609699519715557892551384437961917788875166552067485388970771111453830469932299625164049819351735021584958500396628318933623388385080460319820792166873704617291309958451826418464974955919810531665834710644230614028248611768664605262602747658945508264702984917672686400832586098931675517279168242265245244721015777846013325760173925270864853858393128518625453637445515957496240621694548151838431047590216065722170754842511344561308896454582355357828391496522947951194919781215759482277733986682585837376438479609086115941162111064889203966026928959358470151961370650378441495078949763471096989921392432097376398290718142195194361491745280809425178926653387737162770269136371302958965835779609852750597409257615712564245075817102804936179510365848494073868585296188368758265369945550550246979766184035304249157707401700280664426896065625137592298366488881448488588285920615552297777885939299463450550782634104871302648245426162375719668259152155507105739636366045819372953165227037225142378712239471676396997938212058022389036755121752938826873732009038431708240784841676028195271578045135597878154864636298832889615396248287747656620342639512775969565743362954191989986879792805834178857509912832829743925275673849686474005842562334290975696610719180011638536886958694129382641873298698164240346318570629506034019663880120442861949680785187091921352470779850772789201563425816965547164182912065617777445824212194073042324324775390355581132459935897828499015432503166540544455914134345074350842296968244230215667230834873810474622542047183250329953759866938848821024857607528769436976457724391583619551647242046883072850991306730881271309610274114795757741241014000161438950916827049425067111808570351982314518181391512228448635723093726519250436852712220187834074619745322128510700549018537572578279922724318980850633282784299696424679142044124001561965696310881947425843787715111306359986390287919751813681051900427974174448174413654995644942358113166680008452029210298598156167072974426645344909655191260328790958435609891722846519383185680477588218957081977418640398512173235912083221745774216744248353373710251623891230157300613976803844748951211875006534045409036397277672655943920534208216664420360249341923589547203319544510470971554744445306670941005153846440226235335589687803279876126125951406797736510586118426728780324651560946271149592501833196156203066415944424291802962815151391428185538324080940631427770323070546981687925496740193238957782233348460561575691197798789738576793543712040832061512413509560239397358983062701280175748021285040855589812568536965530396809748080147517139543364420359058494661905204455517478349094152916480087099640726868554425341473448776178754007974983894507576688896707430153051283978994043674557328902385528777789179492749540367164286623274466511849743226751121057129952591354857364940916543949156104275546342443638178886360943413361154926768296613927316945261419319146450391128981848487305096188941774479871607343250158357232254765610816227849064211905779628909884579449058985683222912775982344695847010843269374691935570250449605541028557379542977948478417828857366977772656168339979296693009296670431941139478392669998255455143800785569540253004066223955735738098993451026742089490456252362020034987844650741259039647527629085810293251657987212208615375294815149946404507051291949409619262195611855783704822252464307566551963742066499951570426983475673965060112933618740537861451792097223324767283165000246231437637701954119810006133273553821716900047843402822981370035439908598335682811621885589619418009442652466759861744280896985653554350174816644895508179763887976947949483788871922437544232791223575854474865582201476459240961870477093452200269310092887070968597250594232544854825129569640374349324297407619325386461721956571796623416053765949547711691783197246335401455521078731308904052473689097136395407670066532210691937693595534271452227561016402124976302017098405231041521081052740884958471589175391272640604271893895362062287649026208518760077834741997615927778393700973605544594156962703341599704654034428737126561902652296943053389441424498831970328128770520134801587783498408375754426828947546934482187943613144865354913215137060840949164905066491566190985010579162009632755134987417960998584637527344965877540806229819266681864679117815258255690882527046357825173721476082615274222154433352960427093588652304694132947629372670042307784207881502060433096063334312394756480615378417718532190728406315670673618934141101811277920696613498113464386027749496080760502291393078090271255720701724051124508631382560101992013195185729689596952340557326569472635944656027735812278160113656460948965121642701759533398376320555381525950220714744317349773475926852378516910637976179318587118618814444242306655940741368604527901471250164965449137211239261555378187180306577720819260993749269178130483377514666211194879777067225215342684107175079102271225595772780059418720295923446154898519318186089076455146879735326402328573673920357642434352702554800365176494721452736910524303911955727742456897378192193572770408088165696822075798058626457387256835892885342732451244562371708895682370083580511345522190596358160589269939568715488344482962446696148438176070892304603718612633573524494973253917967068562126704497689703159089984561333762000588721526934449649871969654851029364308293378101550810229926780157834561060225805083725693483062424087372542612785649215425626462607558058194051857801276825758115131147462229200407966103658382383031333348541511945217733221562509498629239020683075066108534482815406003313096041851432232432055356374452306325217754929595565605766597113099994572626608075713443443766717667145604003582239182293667513269142351230086253485034171175863710841424689989721554546671438616069492019326140162909804509438142054820422562811119376639661924773908749633803954558995841462240301987242920273942293744379498917610090784698704232001595593978870459338111340803523896308408700366211429542935800720178550696714822561461527461592679996198734710246922197185826588246410690668697489201194352542075217141571850633390985758426040665713195188967129879069146119999263657622398483993957912868640140839180175420305018124983238254989089713172267237179945752594599431979742234880536131285141547724429628110221443471279286340218390739071733318903784355969420176388228293767360298939553009381307509614057375306987780375697279257054074206957811224190715892486148474575436012231938397822380164425314165101709403267839713566341462719739202817338880801062255615914056271725398214411428207905039572181896612757765423386694806180742132485024101809480685526686313745835376354032389045177272754022491068146899449446734346349308621379080232695009841928653016231943043136512196142903010786422661390680661050828175802799217806169284167934965919605117182119917445051305558412877699528624259249497332201614990161334133577709549020425635595181654215400545666414875893814712608290018117132961791617784745862618865896848575755250364350909976063521707116161284856231010294071697275309527595822684648839224150688236869919863500192752948115525183046254745694387958569148589205091494149487028672531082216870451798134364423538546469119589184775752172193463827787892922200496043377507709530676992968164148387486922905001509039136383530414584210348089279071217321258579935698996580104511469254954724351782475575525742639163346632616627639889460169923267201349882768237542686554831157864159536972182108925861443508571807177762636672165438133547480958622260168301032730387006632683726246315142067870002430278706130820313544241778269914802629238334362732281501389884607102555725448708030569800375333735760132778636699215800519588925774791266958044350203988684697880024105204477869891823971875381269347346786789728515523224039313013111934144970785690878093225104185609501604133487717305385483894150447712051088869283181562144543938206779357339000691992553337455072373124580472993927418755782189072650783703674205496890736988946106915975019208901609055327724653909992970264763355553654614277369808627452132606036313192757197246842759324185028396553281357930065191199711167329202055726387919019562152896170546418567262611256414047946905199046799523573010949288017770565265155904906403639446821348273252483712886607710676693879543878784503987608803478380546268852075722467533197356511132868098605882105546848355963163735270200984918127317299469433001963312524783114033971393502997846309121879337801407121087550530210061929292804240218244599934149004237311412182627261094077884117077625025347368985269458154658962985595832148376777915107271270490322900890912237539372923709210480551000343378474331256856007893858052491461675048347038541623505697249973132757546672596182626123452388303565883293680503317673784186510536754549108697989734924375702845049941850263631892311585293160306725589323148640990323965950372124320668011376594458273304664218612054562413100556888838041444767398612228728000064817863223035618427989287271492104097272471656973275589271519961453935392810004529680170584120201184137372918640314070078334444116842677966441974332039412911174175242726009288934798840468315017745432302215205499777696366977669074039267833964774222322699308293878045921945277488011276146551886071175565169684251887991514234741503808552753631361266713370654399625982644075079715019345559091914813891207820050396958042068386824469323538698435341910003761273020320075862771035143522951422115908825066665466397113028790770765024896873904057635446074840827737011553329828740482572739889208386364380419113665454416834655613974976650261710190922420575629262284856937826841331295155276805298474561168952609689827561110667368431990210696504069517223028718222074445543985450022168678922744471509129040888565808638127868947293422019953339162517890441641489920592448788141786004934556857261237194351325237708815482009501619674891957972331274496371591779298481535544269977444829680431242645127370912610785583231262515055228971044571319095328183928800973312917408540254680332164498010348224441428438246093129115788440329231194018397756443793313353923028241779870710840775984500335794225476070886494341265277187057848015577632136107119446946753234280354047523476624012481842646490922490525632153408835304648895079757683840782456723501539577242551609186441032330990705062112593369175483336502532181299167522530221157436736055769781761731745783910815370073882232530092533378469231653269559351831470378084637225572478511201238645910489098320921471567136639429694051762104084224706542990776805945114038483999878357329686446970790999249365074596509542586019632707651535009783954941830240340659953594330965762979531757945441174901761578170103493043093447504482632179258480540937279513853444138223620819984192766119938913100001470345755740097684228344152464741794268756189489887437693251683985167786227234116370112829249497791895049837344554100884766970608345779571816095382167276761743047663947516075909962840623360228014215470178096711158290080607742807660740022088368145661295027764898158604591682391795755979502032448536427865815222752096196896258243568260920331531685113748042648067325673932892323808194454807478894416517496671462485890350963452393615234722117934812370074008234448610468325250504786153678851087682288818486884731651323461601924062814304412532394908735020537667113454930170702335713355172401437535207338421830120614796839534754083409217383315959696908830365230819628774738548308252140028044371175917545125716288843247397667229252537659193664709773833841612174763111289142980177332322254628548066470411366489645007270540829453069579191236466725854557048684321190817808776328936545192600051416531407053197139259504603732473137702639261472964849645016866239493618437377441414572073108989559096184882045376993656666186531845118900471195381667598175447317001846129773140627026567529053323014675869511940269434933999709578851976528757114786708955987454659527516802498178368058125391465415097855772492078838418444991420266337451319888864618982193013553391345623074456863533262117079432572600877922658259390267614755158286356684963050158852050736238105034973214488647737368263860813050045922325118968153080466562573373594002065187522674212314227973425187141680639205263573171262898084985023694842641628485873076071777869370670481659733137513558144111728243322159621893547213481196740037619176699271433112028478622781821879121673610943071837955102184400657982488302564103025536463740461526442881167787363384325227792616883373455101750619297675156213938431945330563573500912588486126318800654566451624770208327095255610804283109012829408875461938187719830511208032910208848914690753648753569682113202678393629531911544558546627163523842177510370250913194453165621733370004888585760746304645764664832494232248712522545499020690022219409910903666811177128370609838560737179924028999457177776603989865121146299052053737396428316850451780611242095054795740984156506558396976210901609772959020931281137414692275324844832391918896097487944801566009381849553658416145558417168194123246788491580637547528162486457098155489031352000800614511355574574529748790744525128642105477621230337265209096190640333798421463380189201110262891392197064141258873881854961808995297848433575058811092050774590468979208632030628318934760240134627524281190073773367272050437915491662681429537289205449257528930314977601688646795941010764829654445521989318092896444590560642253843421329419231682722862116675127674507895788486268966717490110198916347952458830770645907331027607983488785757241167253346649844039528993678224796780817734474147248566781858809703314910611769250282500550764598759352715561305366990997808830406020309221413530881505475699577673313962250793441527471535637727868575004599533372782429223694270844072935636057777938831662862212688288048209185375026254247315807779083212655392431533241019764198132867473194618094523534812400852860107519187082755551460112911976570429540124649599138178153296133181542421015794053474619874228938338724507754518618276180231389656616886853872970352348843982473503923232965948386747764492998148727914680360916813676184942534173059592429310235363422043157143943334112651322695060019984491246477719425074204044742290908996370912647695531357798490214844928584269715026042321073760310312541133771050032540170718614762655543050742040906349721365852539890697987567856088279234622262818842120055249702894523611763406013458915228079693270724989243713991912554151552397075016702422890718249613751084766905021775732317870848363862669604446006426984753065417515586530942779118155563920147612146935218094524000618975004462127069926494406540377359945870873937652132701244689807417244614236962636266129300865530095357932855373183414724183719373581751198168478200882224990202010364182499613892071218614975101847266405887048289469188770156951570117574586400786126370688198073905048032767823253544227597190030482267713248419124222306929554128261103856377750988346112654425316486485939021062673705119343035908514693315771797685725992786781696741835179774868862964902114358178751521511537911928111884847921069541887636708355517842263424568327619965429665542035067310577676741562576255488805624539387505111756676344987802274910186540847297736177471674717636307344295896606651018467245982776428227552112050423425400053794395226933771560103826829275654654130832710898883475913884176239517883693011696911797573184805877791221114796499021666982611305053601887618025556150491231960287766339137400882342462294969535497281790175587338693019468464612489631384734328313625398178651510006993716511967442273325230371415102134445407756312796609290113892390765853132968921604323662814529136193972038129604460719117826176616799090814687084711410728904627614944505104107571232012425405351838470934545259949925705172154982308254854655425119141337030661799565850215364065950973033192835011709044311041066557520774118197446653949426785861980930039265967377054197317859680708118302611062385852816051189615800401930658161425620519505745613321139595354848567253910932058529926172462231105863543648973848749238434211487338904222631194626782532194270119322060844328204959507103219637110112367053846027911453695679864357950324909724022663600647491090695808623336071717444074569059658628670359280888219218443018851178333745467573291726614129286217374688553784100580010051674131842137448865018004259191587290976794312118465701852178253342217881834767961654524182022503641798402186535448502645858915189855043374696716833950106991521022641553416592783317556983496478270538724036999862676495058813829165950571543410352941711399939413131264372936465487442675029458315190695931627914890109454396876177208739744785142397674292488366673165786422133021553284784297718621612510719341728507336025526785678023120928296522036203327644192177896451750337197842369669030398874064066243245350692470630127779793844544795933930639055201708978800886580954055543440745437722240000891001086837608159727755015998130939242273481850959877739831112690076060435932425884445672175737809979889037539508219181801160581212731231671394900899774089105993007083033461070742662100397010154319963191557441604339543051916250891531432643384441808900371341674338025911933916862572371418015884043142036910555324687006328457469189172115801986447358740722324406463795840370438050855016647041133474763972204269838711784453680055320306383321125707625735880885941662892621268497992756808396075712220441355386325849479081352603392495482433344996959489645021066278823296591658265870367976340495812157630575135944022422343529139506483230234486556299971890218204572065759955581151065935909613792716253326821919978210914221829698005568216610662877940779494514280403265617657164425720342846779006709636083703052288667905864164742528822426810741267257902319832219114186870159418074529497634574784652586697083758107736857767897144112105539810642929515140203691887971889126939536323081494205509318250622187333989348985610420550718042005154475561247433519377696602354923161640904233836138217045596858530782730824263590091256449595211509407778761524046116786008305522331149371860980386692379238137257951316737442437229982145187155752548720166443434557088759201412407025487633496456599980905286873025159703230011643925741883369518211536750497894508403460953614487192749600970026372534020814545595223949346872611076694788997409316322625330853745985992129194414845184939094487515095934063787230103844762220385142342020452161369126754730646530498518142565348101197800027917293075508994152868828466078232359783780388479552181620454639688788047505050281145434113637241383832327040876722005603860570391050125673162822223147720308009036845514414846559590407770999752934813968548479451484708499755706411054532824640625235298338757646649720933138619736416887879957570123247194825843395998872998459088565488443256199371623873952440907295376239490625552272843315061251167398141601163775959740310692763943516586081529048103025073752276259178237341997513274838475660000242651068002004273190368632094093045001399918677175723469734248109213107906192338704176920772051467728262045481662715463112308801584827364502899160402371419345389869337662771030700719776164364911897947914331937373378682850332887617592360373913892959616932564828162800908949583996216763026724475640865829920506444266818086507017270872582557442839068864031114764971561462814241577609594857113258376661332108935125943611125312162152234488147714792085718078966043471001385865707330542364954122667771238631553328599430245625657503979312450089103510276242930228305394200428180025305504354585452765177605718645400177805768576540465213691348480965878692181932898022034153800335771110675356467140347282159005697067001346510204653579580688946631852947425335196814897196760105463380431265593531480897499160897478672414541921143034765064843221742706087697683729236229089267445071835291114515381156810232260356757520468770617900059749919946660059663086050779527864847533847038851885649549114386567640936749720920720401353136765487854959260748671722984006125663946165601583803124017616434716375382840376957681546442671042817067696003794548991357662665513921855037988342323995620861165894981148100791768640073142598544187017815432339033955865345834031538003811697272753919490038623385604656487570397174434140443313714016572598600627037477627354147766102648391919181987687472190751740349863613938474012226281535999162644442562269242217648520483604305854084473236971073611295613207315742047788332569714609647785187810819432823234075788604037339028140688112388968236904722714386690749368721916644189553401903745297225341541728702507473638914325851885499509716689223068279779081375771809417436971755874277455750587744289291737895983448648415361976462530050613224898823651109361108418803361203002771595973345522177636690061353239654392406508298935971361464389745524739733494713171757764958717287466348404011579431336423767606155189736853962444161822714429792866928691133777793876513941666135046910066018139133194956550887159368032897784871198612919293818997223885816454888194190627961818490601450030208041025230115550111439235300167917540425589865162448787369198165531688241485775753937871182999264906866453650378013635595382718047249045257333426380672031663294838915290520217415918637383778627341040353374346479292127699393706211780485504103980016396764138100445593819772942344541537938435438293637913027050003701217642530788088982155289249390521637153660211725465855125507307545996924684246391266935533382239880729172417402662731466492065051526575617480209138021183487564159654155333655504327896760096347194705047915595263359252541506686019436813489249926087553538413028268027175027809632027805151428413061730275230097053693351685028032563483710581164633922507859608855864123387638589294471364465825028380483614465785345840241089368381894931634827735395823211868852996512255569334707939580610838017288260688572674546154524315557617961650489525311976485891878573320933317266945054457711457183825004001801136778070042132557367305859176867124473869084815751395441736523086945512956472790602601272948131771654592047911688810029228367668337562290977653246276242772931662156806507883880550291510222480021755423402019100492975663530636533997358571539308913561767224912161438198965422249732231985709761808198604440509742036727436533217066566010969088902718559634778585866094667988473670572648126381897738704760928171498102336412696575003154896797264867566352737582564533084893055763495195129631816988492581757759203988493859809976735340832581715791323875066401566032317552399787773950543935902201269183295486826507340499088416777381208208224936705670508079026543045695617976635769823388396417726959163139224753089444431663124728998621714013827253877454542193878236841237894857215888911267858293092175618035377649783876778264116115114145920960111845217055514638408687718233720311142939690059831567006594733548001847535096478525006380984047765383432826211557647869033072612391296963261650305226187680878006947402967185110737975921619787758997287137224150856476056418742973902012267533520490470853679947492067775763163598568701047078250697789736640198388044984999550784812752339182639780526307273648662409560836128410153038006521097117028831963890741906257274985464707954323113475701952985348974505337280708544367610135092003856612286651107414916722876209032091585070428238167530358799544751359731830921801212164912303446465084228373401205656687950270587935830255377251305002123252972365826843770810464011051115315774336586502892347979850956469244691303161058981750149459790629585459370469631799469884485847960318708355223275938668362066742195040618281524213781595611685849415995835816379205928861239756272195030727772138901210086471406252490564860038104273416774431007983771927907780796574744852572417529129454959846344812437593051229449682136721280221352782536761423748805271389528378061824667373522675833045760265807611232625337947957180973873981719232039449478325931244977928470982615327070730811716465550611089292207274192917576653859089635375012571900005741353491496162394316428272767847839596791945093710113182933793646005398395596180194502616886604322400693460291325335524103760428672610409941434545470161770913691534879219035928761273690402611394486197134105607317392305632368479566728974344766434969995732923856735796414841332557588036178194491141191032923393757685520625601351879253753001974939579044285886619670923912964777816376778616624206410416635990953792124931451783480045974575413207109817367208731012364144224706597284108487242504780053627955581901919207397882136232664804832982123986817617196375226849017774071041705762716679593136579561976019700030463382241525161293717611924271824465661175971991050018675273902754182844301332847340185314625686652587156564618768592415639907310624756164358749242352342890552416743398013744629340990784286801215540771678560429336954055690018664664544404192413117175304013064916066633174359020043181345175383325819257077112490971994951012739323424158787532535879832678560759220012190858486724551667665660219621625844443901332809809209883544577785415926903441882078934218066705930101244993528106691320150331782717321623261174216299321524822513386015961094220954687069483469278151258063682210104736376854958012392900514455144508818894699162450778827025013446925055591379574290466329223973597933101315036074713781142832381812223312686796883049863548895353940914794156699367828164894842102352503912800605449575844857877424394107504067902803000877911184886607318169003716958318304003798383946100591821958208380203759476144992121192113957286515933749377732274048076705763935518087630795457790853803309405688845891901222387289178672251336819602268063267432482674287316912552996849638005872362736499847793290232254768174429169877629788169430240323425434703553254298886072622752323440705604399076977447844797611823426305052483441846070744974707684638362806862800085594766707433856375069842350515176845280478597090699361279427788345214510331555754361693010867338882831572863786580202683593567261813433001764296835879925793164216689948801752328262168370167061619555677698918177096833629028935809739034964772181477816021241130934359570212638006200505425704275131288713477842315243609683683935592913643325540035718849384876756348120954794118955429755084711751343238232752876603517107349758629187662617677731975231662799654813556661571530611288575357054550311812933892053981334204517701417734520036131750846526319311681654597003457728004608975405213544251592931771347819298718231237736381361867701906238159455511641361187660922752018810614922448915282880793518841507394247153117357542622524322298309700765479144720354544098116623419454032358360829028886159978772723066379552484145862016975908568664147792904094558993474952394397523413199279013430623425646000570696309441645368758250096899911636607125956223693022463763836009958668517679797163533552623139236238594313992051999472459194058164105124016471483124057102169072103843908006672137368837746765235635439905202571036233935609363044853668847924925391592287676962149217699100566528883915585550991073629176794402462181499337366682804947503697874007529095444352846027177984235590091683062585706662730025056970645704087660132998968593976598844541404247962446416844588277687238887507901939307668063978592790753725718621341502062832750060904420676007756532795830161209986683794690667881512779024990489499935168009913152648289860481336631781561457060928574907852874070647553709887539629039798598607577083398021499906852478742782497967480222209783809242154349575184288327539745018729546828375961513133409354295299826226181513611206151246108524018054889344864695919335526863528824406326306388724598897621533887887511342396457512995863151950958178287472605465913603779380656961700025097549035328545670023724672061432567749761884023715487629582276188941873865766689642141938247405302454821642846442717324280221924412388568205761542197110643117163869644644049332941347446230581672697867240623298581757504606585602238238447895388474675173391149326802131579336212366618395613547713824958391059293085421672636372827442194058521231498536148560102170987812360400617510131074389596439983976483651293627897945836483291808281469044443396467757162178528711022131084504045957725917671404122585676868068411438233662222318849002679629989302258185516322504974988719606488392240477415914441971080598796539621686592979511410793329508282663857405428701520659954852825452704659094646178959491507880820496779855979913766618173829579057771085200763050275784818384307129070951907091167844717030624651508165774204219842729271613174560843133510514030715947140835276160049018651719454514772473093710203142363531079243845537002689193446173593542846291659709788757370209602782344649727441912979073079732427627086013148754620774251263605185610675315480722057686354956972567982320105643394610351342571019572091461330175634517236901292987670361117016126780765827337931201699754697915628079496129574971331362899300711161698206657390158898389551183865732289699642614615385923532577627766849685546456334625828568225648521147494997909710086152883036644577476577854873136405435783047745873513583845704029673843606834240954289210225542337971107441141634164448039689279973998739189587911591557211766180324285082852190768251439511364228790712247216248789686711515203435323085209508721248116489616523664969396227464675227222341579359546248779281468738792294181029564012200303766583243255002765227261412299347696498007451032705839178896302811989366251463209515250136043156763504776156202102787352358730342890585667194690785020481674881181901712095488882972329860074679975253415349983329215897723503721269018172940102598141268495083578016449962838845800007962073925898588929704707031588205469349150799085301034391696500062584878706386844194493755065153722170115685058919679300127182524451385289860009592051114110847938352947954757542147557632309491493624931277103010001549612913129282666280000203620558807703847360813287050198725773436132855450312988124731257677399984753384295783015790954432166067363492830769473251997209842033070773046196340133702943194584031972502354356546478736214672563790476631989902251649857469006757603894032425814716648293280356431119576199196685740407513189882014504285465233826569062650509131815923926222497723187362281669742292316891371170061541438299058245973766018612171374932417302440939853384136512814952598930591640936984988350690732907456001846979905938493662717319365098387046491163944634577556654574790770969807562479721555269226566553449977425459698369467818344439645753229471463561316802599020981413298356547484551517367552617110431261136586974465099016138163619399899355615059190059852385323931316424766882325829460536537832452517495290453077802862016572300060220848757540713683870408646097786531885242244772886635808411411823230826121836908740949658293712907565499423715278162984585413089646987708922826979319269993701028119052945221717523718523408014422037912610619334644513830400520664239625131951467192232765414454317095331381600129791819576896384980441741674319101778030148874803414745954123989009167462534686796473913617465569068858026624772634950439214402703426104010728642343809558917385381805370074481807509968501678102079419149550532307272377008085113557672639785505206555309540801243587231577101230517367509360036652436435939077799623153500446271827574106977772397337566621230247285211904880967955774894533125771288945073105418842301866439409716440413508166274003177018803515307975376213485493332059805428752806504308122549055676870118802820391672834994683129499719564017350847693369142301155383053141435801775948127046373628036279684297298948323015479846312100040279570809208736173169396779403057454957328254619345183650516492008678461813607727195063419128042441878977948705239750938410507959889009881816787022057622431611863505162780252907052648592587027615233790256601192987702362141537398626979951652735230196643464086592791850022983976779843779343045222829656264445031714062209864292213438665281371868649039124398997962388490622015657892107883542021542431625490154087364001586915090459218431608032005087593778907239155013944641337483075878637859720005536708427390354929943500376809418163279491133231963285790169888090642568806077213822375919930226616383175481084946119500573486139101697560890433614951886563566295520109896012053290112233207795781459564070597259707444553980200953188289783405240703067451766667920949876333776491921465750566237413013124825790276144485427947204950792068442508961786832499080294654882001303089337301845897681211788197509128009727646217925542679398848114204370180449554733636215709841383678260253670468823215319497800699064527738665002663403030110441046894387814699332899595425475301422485988227410632011187200802319449805659156469672324375758329093901264298003386545400842269923117157843691668094350396066060820321944913242011421700972461573512372425261002479699121656642363553175610286441681269177234795908333508362073036121951947338340766655223604675527826632399565944659500633458165251264168591542042694218588734386355679840728096697576035538387916437812536335695740773343209389982520485965776396206241258084655317421996253300566280095197394494497705101891344244141387635471035521244811470538318424073163852506979452408033734094853311206201451655575428899500039189171854623346354571659929764841526983040659361433645343946801323801132629030657250633028426245769780893193345941677181624977213420699891627187387443686271983022602886789246968210307219391459766581416395271514761065427976638586929446105091211694197319520209523587182494672285869446622249032994973740375280219785778454679002443459707021031742077850318968572870188758885139733702543845578405081489956014355150636694192241451713159914059790170456009339940906823268846419831028142385604969660690133381714394587534824263377233205733808487684603852589136748067661627566187170194121014051500308104103788588246932626662215438122801973646253670222960432716649328994586286553345246790204929116919647547629555234543268709285893934000219603998693225847359302978347191326797323415702248651059337062651726902159127892088549983620000321644819695183630788757281188465010965675379213845892654874496069753447819328249939096239643438743884363965202019029066561215338923410264324490776552426875778683571145456013158527054694082397844249985227035006352011204915534225606720026115620219537614292339223396350313243238870252002963247935345037645563165869249838531941894678304215102411715421578958349618362137180940780271874522715441077280187990096657268724523643282456650227543946169032138652617776023159021444411789757063832616766536932891396702060369553665215133661402600793159380411597423795603752769700776278248257149167705946324704905024613657497724340311665518550951831252139658422288525616449653371440200489631193577973368980942570065620306986869141983096343947035751886378774595905069348233151366361098086079769431105960587119532702486175958028012306003605630506132857793891344241582675765801444718550962867740884258289310438734233966590093160549190092213519058243101652592568402780130764351887130400889308101791381436474141836843915866935565042877687117338550463158734469278826063494112001579569784575448836800360805472305380758511819675865968448971568928446825535445352032329525001525376447090121440928510873808866739002176683963339373799512303778681892196893771274835422975645774283437933904844015956865806281268691056091195960484860054028440003453066868935380064691176542506158423607761096207379698033456908732491874432193071034656982095754366483862835866933624612940441058090123577072335893903426208242984712909409631080746385391738473964959489143430643682995458710844434290972740752598730246097649588589289957804987956318239673239953650422381156360800365118824622048561512593513986105020732884312772178064467521632816753083441443025753920993845199077838406522643625055936643663323082258436591575862437954970659157558703076170815940447349689915985252922746971379161970178039330717271716317984663343052681234427573786494024020335237886072239876288072614105466546036888760507973105822275192060575139635632111279190225117923418602328541336232319173066493060637754941710043093359395292686911006607103850098796150825163895548050372447240764875900695094171436783125783908650178459451241698069919608687430724599979277613803926229178073085837261427464767732735440526643678931906594031572004572447840523714955264045447743503622965401220339040607675811803689877295800194947109732224797635418012163584666608921667157217302143750171502043608383681035552068008004502335015282615116178033663250479805162585453622198063950086127299411166537985724131258464857883322838568556579588790959324501641432178187995793228235058706547552491819226460383091586088514115281971676737730823001616399809607914138652672184812793094657252222289406982838927647597332184510126456847310503194830867347286123307914691610283934246434704046718253572128888849410544521871509464711568062400055983346597575574674902289593785220072458308737620811817139478810696708387899346155337353698884540301599007477109625064268142399823509707185736357718162162357797138416813492436891273439804764763788628986427599707965523495977771780998421508524125478079500272687507602538725622586535204118320443186889573962989428341972000779112713537869596896766972934960161733731274765910202789631323444170131542055091778350098546955375319619651087253481058409523701462213574306608943760800586872431353237762964773713644788004418066829439007248143190253502692840424503451456442799223472027777924642268565239994392862768228621616450001078061068651377635343788536173204637800382164214561116529183473863256390616907218114673933911627307765855006363727719999352369923245817711752049317687675626309630865588594281954402011267702777225595226250723030143805687590322252894355706596976241998220995398255547646875870986376374959977616205810346443588799867957040367672787433657424740320311122188576154678938127066827255041419993882530880041370980328779550039451441593309614478736541952609717845452369606986830797198892011772930828496621497678256728118231684167992557785385038634084015472514031721671224496652698272966715687909552467394873189631815703223118947551705040023257937356032158856561531919452526935506848447119075636657985987617063155864137311206826583743950213322120852112507112274602915930936872654236665669605301956039065161097101842351724412478670054946959298155863645324946479430194084070825729985551605715778941546157248712928988714499599759408817544860782975494252043850401617135671813881762856349810251736865463912335875310548184592798668597242700916769869299451952644931491695334033309472262007889386227632319170376975046969482622977297003811801150783348232635517569546576192318410539117063871709175323231567450056551587273351962830355112070483475548771496378352103252246870186221735582020364850095128035486345554501742094802286574609290622120863071854344200623229822683148151678840955299751504490856044006850099157980348539485552050097889429217165635515839719718962949906548903279355165687193761107697912546575912151178787439397064020141469341248947786940128562848104270876723752389587535969325937903941559435556969680856999408592848482985185745173313319267343354493987077904521659599671166335352902728840928375096158256932982765311224694202848089134686936815576124913407936879617803922374646825744122963829636724988609480953563270438595349295736432881884859490162743604146415482889098707753421215381678158743916963689873305710685823362822413690385523268226583939435848783004574176944376985459913215491378580788305211910669403540973524190051126488372091773229246414760290980884745808239834799057146440234046131091374047102258738095633778472714827794579955003168313729194302231162793682683847955903546852562090282161126066706222910006874708870306934244884809225320576793454799134333911901938650335548735929345583736624860558615660017241991221720993845856302565573235366845203030882933492952600511955060128738468968652555497697349712391404360283775182956510630842618160063203577675577215043793595961647373676161003808030113707688833535795852158819096112350029591542413400697215354016755544219000152634244018208073814168233940551595321431508505918485026294639162734321611628312455088633046875421489049265353451945945414686102707010566037568128521633955141917676369421083582379695161284914034928114134441427437380303066687030626470680191931877767369902372642866257051049552415481315075478243282811060919804270595432879972394881179778827125732031097453279252232231758110464000208596914542394402593932391717697154926518537751721020905647264077170371960877081228160732636216084726858790213591948956474412888528158899206976935798568966261023335025152877895065073073842311142758199966807558759191975005892235146590634482266220320381321040741561490225959797997906215489664164730959774799448123831239428528914265288100183212117115104352742894636390370042357625222520823361232312807565215087028771907858604362470996189578865404992175578120261933265782629231593749283065428299595954190845774898487860536372651403069394727098091197647202836509433196592623544869291337712781252422564456631066520850118770398970165871474223576106758588210746531592807607145006835511023505962510240941994075605844278016434326853128367428800524109904671590075645183254547243943050270351805478462613995093340970071931199245772401808488962552930625464831435740127592825002938133390721164027366243694451249393028748963536714479765273486866504621912388750682085261355200542392947133884824851970550479709084270557955803113303168209317235427986043342510570332595552258480857305485248737038544322861357917380621628305853901473801072021896004419870667749243020594982519358100981722153437245530881326913342988584489865594497350985949958147904532275041944177763046134125655265940737674082588262558876705528831389011098446945207403465289614117522825097958341184809847755594293479216522949220447382095204662867094399474735123876591222134983002843075432954967219941574232713335606183966135935684017789099532656874286603883656775193338043026700806817381580311611061678520964216951451550904347755997120217394106078237235411966828322041351984893458945376349578120620059149438138644896673016436755058649943889580401432763911346743923798163793631371827732883692159012617526314762354573640032922086980101088403720031715154073200264827763437780801674709229419632947248968158220498798730686323661294002565838181079090574365492684829100689113269560371794512070032245823410479029680201248582907327779083251167022665469971009722875637317688220023700691860348490878854021686399323390205091368564519827621721810774675941578159133910232779474554991333247939931462065330465569441295773608527136632993869796268910710617314045756100250897650043728059685332063020442082231881681263839393312395528583861317290387652481365404009294287279949432716506267442261978990793627245649595916409592242755952497161076444124871188746426674299779226941601712505968663905050725670873547361618030985356458000762153942118093053277756172291140832228564822299246620527689780932387734214444660330740070400991032388457400221304819870209882854589849110039617978391960157015849302680720549860812037381925089654186530897873855920022367214643052718967542125591175282637375272230284437952568301264328124003937594200163768612746871085057369387469268815655620801512940424763851033576567806114853925979929947723606499848635250330056870125467503052369818821344416480620265641864092423499161261363019343032275033937730531031454822921775977722910012002837046178797293930190139074262346505971106650696103402976703196347271684191239683079079644470329284991717875237229033298824084175330866841299878155298163979228658802795875526302715634323991221776639360782086831318883864238681846360484341576498729938690723082416522993314203712769010495805282491128372602198646247716508517401890549144441985114998430345431914713551552462319294140822483366949073636301989829918299310244901075284605885426324475463240446189645259066125422798820094287246161490247214285663252893229135802363143081066400001936366361011950644041958426393179134131144445794028501444705734590728389164120622319824276093361675675170590858640998064590865375328691843183681496290883922340677465025070975843320930474079585011795902481666535557281044986281708946840410682746263111546023420551010810360492967496279839343725361556069606062876375383542321240872218997354786801904901676344749082787622605545667754354213721415147298072446835908089089572562635728013279687103489241819004409111085761686502934128618906749721449907295885012275383993732028638102020920274777836794198606294742133161411023023201698528695920349379644117674296660312154162333633929740001880608669200702921604266727149580762045325065548789874499671104233991405659841279515498348650173791869669720270459034807938602406763985366044120827180632723563054027643584813736359600787927594734617117378116928776860550502962164792111807080268399616689166399202009943799810749892356879372757698122846490264654803468889666946099626433665467138023511601649105524634764473945759695396919041624061397687081220338098462540900628924494238813710829934797600422305166812759712247989711012071812093019459698730931279508793960654958003604070665917723400582152763335864291213153657948166468764108653970719049777354460537296419907770315026963856004235849765753437058098085733139123142583026046518192866916336356267466500588773891275332964084809530582330024839984872437109430382112691134928076164807849036377309593930319062450064419909016303161255471066157200711868977474835880443504531465087886027076563160093669407720581563410595460593513690058223144861224870628179735294947646327009244075948372758345190134196850443539561665360505419167168441863915288661394180476873388790938707312106092320763545718342985791531636392579599463627741646760804320253402475737862517333536881517940127975210588514400823289358190166659016671100567705455393912139096258355160122605342295338201566226709748308009101419971697028157375346458239795645032347196697393450726301537476427029494973654236702961921501081471324949814911748107827199506046321841562816644737637524228759951859086627029040730191314608543402720559588860280929189393631350504440416811548993899881266757724336404997460770681403535690859237772621525927765333288203548957027373233502831282611326335940656994017109828817841363333843964039510067462818293675275423976253150055220355295485304515780329415092052862130978327324326906293453819507430465011136909786223384573964326226654183218780682687998832089691538611377921331541076652356686298551274884031660310552440881234607713822933985226201889625101252763722473177291702857805390904150252671430586648081764497154382152692610360967239523219456886989074475130667896882293116853540649510751231778411604625728633725105578399134898150210851602533995211768577360037532075045997653837349043458541921931711434117881852838875765827024973749656288664232872496527003053648467195414162735150729611059612371873327984947226715685713668988621691024681814261246593027504479776598729658712791347729734212179805328343290084735146555974069017225335327742934604696325406491253757641352465172423654501252657155602234375924299392240561321090640716059307559577287617842700748718379433264876783242522408351089355170118852688290170251120722007440485620479232026084394606521556071855280453327657229330753170968841793824419907925172439767623504375603363149938020559700276752874311284846504212917276939016914777099599654949783864422871345029303726979065434835461226174046690967071459023990381133583754435906162137412346982269271314663667425548966746910119682783623490710794392245112440425591027480073389093539747974566436956781811083705167707078252001030332836357688743838645189757300482949178368086746807289810474801333055173434105315821165770092995326526181756319967157150458032429889016036422618593476860936817496480576509990269783053554627974447391393404608199784794698118569423454448710665924003706207710803228237627266677409020291758502411507834323745557576720397796659795159582480864258606644683832987514795227861182101468468809473541029998569128364508024095944871309761965446884596519970747845630610309328205268609526500104598082695182533142573908759828025705206486538561091666214412651178266375062869157915484848008291656957563655405279909135415489609279537998489045760601785040902841381187328942943972390467692029405195720026476965941645216522944845734501130801296263030064994235373872936734489601699969663637314041919418187584702632555142115294633057160253624237298357556100875702109317836857998316440566723078766549809167599374866144595063466594506458269041553156302237593588621538797260651375803501960596877652276235168599756007220919012665252050210013941055805590902637448931439785077327979498559501717474102711558048338667604421050144865353683628809629658710567495339783430189975045969426513063631791947151024215751313520314181371326445687819804027597767228119220041373119982737542554581764389140053363249897494089622325481904950564631644304033359819212544219426850912339343335531484653690549084473564872598491271362620283173002249720482792704901594906867714437746186654753847484510637580230675365944690251297072128699970352890228752634410683389427098688304868738504571212082728558589782182037533783490992625828037797434145601185007440734907455753288490037743923876763219889859175771415486200349670905907879505631300413662559343549557227923798576108417528365754994160385281433737454497327945391853048027583847387569891875065415118873213646333621959591262877042874003046017484698679234796888534573552509497519315932322567080050881231512661686526233865246941532660884063030938977174347118627668968899748565212188965170741224607123735493431410278642721895118524426328514485790867205770315835349389513459720176453890977339266480228230206120550454542321108563763882713888802962842048450132973027189172137224768483933171508212946081521020063121899013084646689225969731570354085946990496946025567079376326919585917923168198264401168116430623227926371126775298069198245475972542724389855914163656623669371186947258832510480730400436662378997120049760206966656837198562862597430906483813807506069762321135525980811492858748973309929678565552735019504841963839222341463234384469740978876752834486096977283533105410789432232250875818670708052053924492740784676101877847415876200446030408096694217761147392250355648958330987060779892192847483813290637848262220961498585678350040586670504213383000836495101946915082732907428672978397448011494371197650573441504952340072504038893180974368555076043723503506126026826084386859699229853256245973825423130156924024827752701228876516942173266284834254617867722529325059379737762782947079771649522301592200540099918513926506830701882109544072423327065504539389765701568300598512259153857554458771475182452349144541797315525454749907599643604823899281419489653557061220984260779979681049466118591050613243825949816801196463176024930457229496990616441277909992169761008977669016383465901322434984535053155765964268716744904938261720263647374696557950670321697190420301068768571957083150884061430621588949196985901648663503339670072835497816883027196891721110718152338585955986834819512090709146490270625541299460662052220617559958870798288057544140181543543878870948413166247664413004668633993031577449659614877303521059944969172778781361394791481938277924883621239715935970057811454302516742581758600101336941271683811830541921142315497436126072650051633973530987214895915640821193961423817821054840474230539600156122607089856249460231053679437932798559517358844145183627262063494215122268075424867040250582999090359329942436766830339379576807364646764229483894557310948468695428688638833533280453604350999544022299308082474576931581504065161321065312244095535763366931142859093785177732497304498046843868251025011559081668495681138671790337250014444406520916188157511757891025317110475422728397726900836208329725211977346759026096951251332212676513057414442525494405245217781218631414815949721855457679009689176523457808968871394465952046110828558663268059360893013589569053146975850511553508213918338212685955909328742248392977503508632422967238205786573173949194686428827880346398683767369318782759338379339625756510301048122321644097892249292375662745699566758277719886219700435717170713374547750327829983989803332203272379400198542557896951194871224553563363600988823705375792569399010992372329950183927193529673421163647452610703224017346339434288873451511768286109086338264401913777482361256464953419928530700054427485723123325952850842372006435345221093806148660342098598490794703307875314517956311949817642431778739367962165241807111172766009649650294561378361841866062517729035358213479934784871204066004192504664892946782622252604233892064042356492249699338752780647214578834418451417975502232651997156994747430676659707420131401074570725159806366388471230118905136748597919856493741519735576430409655080085538409986445832949950436445954733275486209438284933057287421436155682204792618384413532048959536393914943654733294927637016114118947876787868440892520581618682867780820213584798068043236051435409093435379854321323427141404050264636764968496269961424693434388979893030565206290316736433487161721114186357795702814077432339676880546753849112091354988517220645410118406907566729210168614830247822671666115961109139235819760854804088636271072560981224682895557670276053113511674446420937234632219813916025565945803169264911346330583182117867758687009194822221863482871920826076285586715384419797304924749461027956474161800524969394655886911122024183180550467776784007567074074910474343655499127852909477493045064415358083004018576712273982052238074543529569270097171752093194423971077751328862899521443803270400306748481375257812645725258724528380717835635406244032211309765969266580757872871904169861366797633372283459180304446743162666004932734952385389067480656021166583336491957329656884959278311908238882483010167361263845176140824227282619015946456325912947133581074193530353446526834106195505339614983911792245576675233783224504084145034676513262238444336775535339203907527675624756100383678232120352096411820197324337251305691913660467634377806642586875385499846448544733951791196240359028028158326956598763623944939230142128886671559883932365727020264557965891861643870443237200079854994222332464015435466199364468759639785167317363073374202915272582648979280071830623870683541285708966887453420032159007744988693340762107712190441754521713579908848085421503607051489796407261206342482402880699370797108973440314783761301861198267772777719219369814132118506232527970466210550284985234073588512722780241770032648744378109739636698996134445818893179688880002573610240511889967826580628878851024976685396750276280005903095447756118900703044437528533266547600513320466226831062445032109172113700392114335396456047433313304031171756084448636257828178832563140734329666951765407001678042321456848304139553140885080219065954769825809477108542903804065343663581976203287503137465808853430531859803557199786684184992199379681173926086759046625719425309117268233893477145117692124913535618828701378713251413931297546330560135144227619427760079840789318777587107801386161390427920027240578070805345953122621240960060070425915599002154450151411512594337104275602178698840881870638603919937475026108668724411952919017691301577454714686358679782595064088937970174125167108477639370673196070779803472242595926741054521991096688461974437115079364860489249815106983669427593611355256768978090190610137211050673875401058757980927691384206743168975838664794867163873442995994846156172921543583267698134310988342107040916524256558365306128772569035645532938252606799245644955608078526582119836400028993272599619811167917645624072955654104785163314676409113224020431562633274734067251300365971715189995830823651194271847715663332405571499076495997205464553692786299664349424724837509234013701618727609199829203911082873948479537873598160247474209513739726000280012300394405673035485109317941261967183148352924672376379199252990221579508371391277572067572506086188147161851428397987540037148871359022562770914935561131185434606090063328047348882447506787941453052592405899506264088243651734825528244476778665765239776681708187239845163109396918379735657623015382239533668657523207549342401595015522630843625435663278480464316603916511934864610888352974434678639701878334768227910148859816207072374044559768742351605629984309057738308883938375812535506750634274686589799972836375063670287783391287998516166736184444537546155352760938364444969621145779151577827571919931352308889818006355852052518352009898064135999140632652344440186595644695906706664963066821774762564789802856258213326610795939395379643656649031818836706633451773894158069435528405329306087022950493837529226597258353195694888566745601018598726148887258196228057093101057057007183432236794376229577525010502290015535770470655696529996482810018068301762902216844328826418031601072632542859430650485371538435016780792409156881557378492910370275716024449302497157065574844368434726221717496106136758910506297446140855270882192245752728963893528387088769920604479433945152779220023526579022631669214135205653989927613356956166558653501856923171363026871063707930054165347081780846692592104344486604439790435881831913852285051504037165601638570384161245252874894236647087691739431969225107124922698909486674421708505406739388481917758120598536887446878571767538593421725025044975550817645836612688507516930405880803271806342802546269581566161690296831969247960981114411589905300300648931415781040645071471130764124448309459673686660740201772933670779664738037100154801436612987324627609285414917039393661027104376132099515584547587219820763316567580080003011845226120650067071127303333041777235311831517345118871379862817975994523720198164527966994160826960175918514220796667130111323746962099401283513277271691355978736055755534551207300438543493943616145132872337087090719200432304038498686321421219427100614536868727454777638438066609799980486709901835429832814046289738470051934208558571557327749928762911735331286600663480637451676497325058264288169572748634321584472469723673476010702687403508660430042478663651446787458439862529409987226164346197032139242410760203129664837182667353316933004162163069182410039994806857347256393013261624258128618348017872493657844003557389994516301648504366745603381352140308681148150745346022878210826597028271738978745073028547896335802312539749407105419009636577325244370886640276330838417316189211611368198354660373584281954903960064026282014645988761108073954126199586183466687268114493327082069249319412174667857964021227840779171884187354265661660808626836365946003171156964762272968015379640081968532375798275433510479213661816822701605443694481861173227356348144728814208957105953334689835346667591142224636272667774612130340355597009263061579104929779557966151382928968127379697570276064657337443349340282060942591083016542581858446251483577008071588144198055959334028709593232415723929086958745767797176659670021107153938245307829669106506509876330858096948953459383286256394931182966457440578832803152048973731472885643789888558357588886924929877014644122996977897256232126987942569171866822902909302258964694955695571013544581520570731763581210967284385688955069334804220534448448463513061767358076244780386016923497309819422217444632751873988924205546339628920100050797116926427372391161444660627985105941638161500122130399832223067251652181537126970148919638325854438646883997726076268207751431930528820690874307327404421208828978236211339287293202343191659691165395993091397444798583037634774880768099017770475366058411816847148249084290439922971645332014821337027977840800150417542251007503659919940881408206754710517863338680186112498892279262690241590887881132306326382307108242494336577529878817390461253009962628472657800531922636410463086593213628035743499169261278031960053028834896633578829633044121472148491383608584254458425711619114844255103959036466500633743068908687484484562824036833085211708316290931996920373397446835897510719831466728652218497581304652517943358021206714854655575682194407027913179726119934633957110967433805015475490038096104469144011181525654226270288157466593036510356238378469860262020564292708398662975069698893529999064635952247631211570369259660342682862658520874350795438239513322238616908871808415322207722676047460179265822385970671690540481213284789284034096713748022816061078423386044227456775892115280854367137183752452939347258450656747374238980484427319944590282999797525241430561980253609488876825093962406387448688181742086450651655029731908282117063842136878901987399712675908226896462940133456205099295151343843406351053365692559219836507064457544182183829030177856165209716566584003508344146819659778399266880921682603233892415070740950210849088880921658983008924663212271790450029266290549374428806765555692431351492052335315366691316938831692529659108256328961598029821617192065503045418578010555378815618627047376509642269930416380413753149453716496579356527370838876620490058882717506430033859137240495446082292329370179644389670603649231002865001475540506889709355735231741954315654682767356076161620264074605669796325244448305367704832655739185177039032537654528481511472903950666029519373297252676088090524857691494588228639114169589624490961009356678790678039105118580303098493705150320671370866376475593727185238652573464761071698501660209944484402503999269060753165416656367280740204047061756529096103507666114933996149433872806506332720050730242955344266334009704587326311093845299311125441906096503552977789969601431383880200740988676469297348630904284272618444980145293454117895263696243583273742342583648189004792905720472207258047074409880131919974173884590973269101781489738045765681971473405103296450400750954216794635021585476697537473728123740356301380960615677036710327612981283538150594801524071128618520903507861963747505099602235186276466848780261895444396319366131222102914974794074171672667533180565221095616795066227576102494519810416685492668518989556417822027956941684579235033491120572053004990790845637170718191453604543015339534667641772785490582312754206086702084056479150883759620457229680100854584706905122952095999494057128396189860635845182521721916498565319391581863063768510012117014686950618359048611707737731058601444513663912184364398236596081253689492747799671596632598312402347126250415378755673034885778147255666634026231034745138211572543258584309414634658230280567092231118635651532868879291973313204564256630181983372141165630499900163919426630608362570781213940262489889199085226891867514282351403865329236985849809719716484477639562594622847547722294403015802619793625836727994207294450956660592199873322974845791001395591010066601925261105893537796508942688992959349003894714035421501880319528779992878090714811722752316470578524532328582672087113286771266704102529589199147102138505136562199091178345294424238209070193509468492943347729407794981777911189464731962616803334710840351367666299865169059866818084214502770870162321928633503775566854303951470369011766436443538296506113174852844277510049810058467499848235262371425656891111025932935656121054459331353626094490240634017454031773177540391957072760271569252230908032398757729433072047390558384426990967394886613470727943701055797986000570993058133177087082966257747441232484925154984050099901684655660129673367290641970714550123564648746784329197368060606884137144117009131242925777621095075557606053719940769399536466586322058870546295703891964376201225193525400883126849641150005090573792342544903212008658939038334691534446162406082920122810179760824023255067185078204888974619371556024989477757164045880169092253804185475849362077932206076225580360170024017067769939753422561083756618073834082518003109599993916617268708328079364149207397272984430418047018777077258794067864136878069077168019935689638548679999701480470163658663669181100448096808251721337933534462645273885568056078478989769729186425584440531123208029532079087327596853607579479325154756321601496295990732387352928251095800307347018930189483076907798695238764983344393490733768228393691538828846249384189706735922444857316345905706100680700725005308036250833121026947997456349805260819082717443417969156095975111818089213787191060855420530203370788415241946974785064236846895181256484410658694056006221980432233030570113380306984725176552945181693921024790956854550327703786115292807678005088684093869148156837648764863187471649468631508182210839047598734776693314391781344695856112520910847554660265694818964131405641766136182922499842293026924812206377169773641821138153087561746124356564970353004865947895442519904885682248335212811473146624608961614323560638418458133500353018023014246568752371311234992172889414045086835753779673715590784725283449858961364761142015681888108530743562257850053377495198960985977270759546411296937030556162395595475380143486399440907878821758840396871097405943532182205675520775305885735193298075764377149032165341036272789285478760705970704285331496433376976921640320708950429427625793720272382500000998395537347294749148094295640920450933032868918954146452850019696430732362437806854070821107744465777378779217376494117751069118774786806355264547321469016593418544676205683784137072245217601980513900883185805993612361201285936467460733022182803442787453648668957753856090698782607097793417543553748233721969464547102563878251382550719241358790951251022440686809928496299335798596803832446025134591396147073305812640336198555682633506925782309933111629775883337478116290382234944855501791345065866831005711722252160381595825644122576429694138173213710318248457836318741228267854027537457705089652051548831410618297820417898588524491318937133148258052767968289185654324759865343024330427844851567679397869132196067182131350508067344448924003034977060754806498007558790770368638114972985256490680233262845352837692383595176955357711902136008046444348848695413667152211429862198595662899162508104474620025786587112917833395769301552709604211165999907873866612948355321494721164072475647692549890646478118432556157539704333374105510984148344087553265403773717769956299271768457231459625663268005803723876355922533247103328534280300512168801534628650918270239013680103571549775400141810956065409450074392632640594285203817484941006802354200744130653035418065702346837755287256921674520780121246673718801875999753666960110705106370267519818802141500769285793908186618356298026060918728465009518762403154365831961647267638158733130650963816185544438877440331937841859949048889863695333254802162774886911022564469619122059555004882872929800508300331144153161096511051557944020236386940671604181175730155809423069796039121571923239252265072768783657594572267986637349202583861462487111286109750113964445924268995376863541502679454405759454192155565161122077924332513976401151923306917333128597598384609424298316798342754415024070492749568028475660875294857235769888125713405910745749364907900659764093583465428979195181974853372153052085198691508897140409019791741162257717975691519025023719111383644138815905586750588469486898311290887503839623875339350103325202993727320687744783925635708913857136504774731547451340556143533191914279917245886022001543330927827843538824817988217108948301801669278874202966690931981562107604867680982205098676968470801772217240677583258927441501050107802308830611705446973494417731879828747795356375225473122863792796740320457933395471128233190147075170813597077393759656882874896012526672744457179540094247134214581048926294365344909568575354088092885364168112024438317701656214350431673414849875413246140618608289445245813241779726980376425405166959576207399483403083680086421445398199922213137016650271330052531470057108349196660526920989655167435926076480668251411746525090762996111588624299269853779983305078382148108804912098356685254511786845439550034963253146129439250308744218945785985279976254990593318314591853507037279426348414597727821555227436990125244491138920386718967931228470877151925234150846605730714768202963115478438687129382953129700354372442532617471442781262046233178957777961086508955054634740000643203644568973135444802906933847405183191607452239141383155890158416497299821361714462865860541177650339392703985080592691569321301940768460845471666648133711483749448013400517096005417341236179323003814093516750851034805241125395476094917729723713225874611216304890720204413870970754724485637589390188250167985026083415978009447056855272438713627127124578530864358106046914714518886202358867989586768139526847727456973554000965333496259039601616215277397553255898418465257264880388000566491745698903848489203208405123749829715134237621850459653898020505597379399515429319718502242538407642694892266982231509428798953559060206452320648054411863382704010282211077835929244365930001729764013547561833684719125419818612755058976601429504062401128686295470476155612141035284622316313412153972719529419324593271919131023052841954570620279803028901212124292265629451096909062846863089376036315773027754976351595102955757929105801006402970009774455576806472507786516265572100877951781013327286049475673723842891169162685463890559679292607747811341244579004271331786046802054143004714663636659228479127998379272233002998319750908914112380746371345582507368747452328360590310256817196689448718667978311271436029394778221700836511509298970657011429878463119360515268731622536491089097229253067657979138057450594868833654973828625403413370634473909796203348087818241972892957003835978498704155323037519758721535296228196756736892089552984285211443029852202624154775822687246986488981338986571046388699691724444701561704771561597066528334248357060736008444181949533502741952707338488327574728246107072691745051159630174035920518006793367148696527040824127304478221320760110041447661517170828853194336957764629567989788516216075028165897783273744071484504051962638405555291339249164716489219259890962868508561680330242834680889689870291541766752892397220630260313070394620821048330744732451078606118695227573187908154057147701835865472653388281781612642361610458401339137624247056157158254737920809258669931844050012094651661720304936424024432141545183018132787307085528996284991844632615231673432213480482389854121955002163847453781794959490024437679936125555047007475189917170947858652110579799876644826125457890426617975133380144282399064742286102339520216391130398007598944964842901019727093066363495774029121473008764757169351143794610158481073701678151721667394507197160926718386436999687689079136686254388891679268018487851638273930308836197174903080649385719926900091572077267084345270341630676929910856358392036791428968271319146279455626980674368067913088182131722571780856894438551861212059134032505271709568665133950965737361719273464533324995939626804555762972374856294499638498875963107389060831274850792738467533501080537139117747592028120278609008490387101275846127201823946595511593057932075990996946362964471804880015632954179698625156486455219020609654576708634701673189403627457738746101518949440687517061227874677257414140920904069588241132653121907825444727316449750624956102161180122914143520748249968646199090692994945989713946795539901711997583476873518478264066258673721073719959797976728260723916221220867888155081885868287266501135788965093553925073762196261368207674680068738981456445700802641079640424627448466238586607548735688343350534347822606280867287333724746083756335716997165757527857424660414685556181286105656567038755380611632269557953937886348893215911364012989715435085550886102500939121597474822048393466926860028689945978439915353264706564888316251595595845481950611286717275980693147596951827402059046614469011241802692550980773780628808137291072758096625173831896162519749963464252657407058035620481136415316683507626988764897266458965457953099305457210214451226363361688237796693827782630916792382908480369811263605779374180260732565180568003603969247481317727139049551509294359473430003695561255800150815533646924180891826184699224150086987628281160140882239609651656239752088892081848470307812848286537571332237640736327394315333865663581655431780542921672617670100418374229096189896400953129012792386733937551286883286571353944964368952713615551519422590667770620275930980413659670538060274008990118931473585060453044060027328912119088490951899281030367121891287162128924465589131415593313341952612163077160883851042083054728108943664806477208947717466641964695202505097554127894028176947570434720434100152117725712301068078977771032717269752966274062817619023868410065214588538829573042968450177767530626816914298023748165726476562289658730416502980730798098228780315943077785958274648917032696811395624927975605930956245130427198229275816468045773542422509210516309933401409094296650729536721052967210378505677835213976333821606739004829134402207775453005058646736044964284836686748823882653028825046130958491172365087616384528825560337825121048761870921970569696497754781678375536293793665876728751154162010781968938084014526226473157203928491519396624811635118629832745588823491921265889016949796346980782760924000054624644074069334351930452673072848485556089482707450242366539569481884209568818600865514207429968313837970539156317135251045256927392423633718806062938876629107444670329874387629962228178250662878000545909400458707704390424027997608103093711465591556586765909249742577776237677273801791754152881414076531176957924589404768786749939248871126485358115162051431917144838028267243455748785294684632495793730938213102061541374655065277903343476893244548873905093005629398849940091637638463119714958487622363307105234407090876125203408218999383009082991660970342075399408851057706793678071305396210202522812564742785013806135888603201550255172021664549897370139220885593151271145581423364916816763134319737708009984155660980324649763583366697294804337968268804096378474308248249446428481381376876081245286646014133669611739643607782600958375609982970655865625108741569132958197364951117127468633061669223426584551325934188274684184007519359106877698500168200692272754267565605048687003258547183496569921274159501476565386326986145478018990487783268590971180783618219708799219673201994454079176410835193755342950494276101623303599167584292445252285692655668944954723454274127907401550065048585089520713939698843479931608312445609969159169896286742943354372746916667788522367004655738875344029498832614548557191355631813167854253105804311399173446255556000696160873330652982563778406159022687508132467539680542885021053241847212757727204483954457832470995587466853716399241983855809582173317793013964992259911125982461996862845158883597702548384066953742082721834161151726133912436198374758196530952142347998822976190566151909475698705375374278970427923723092974098731003958837308652982357653601791145905515351602141974930050427100669366031238157758809525964165554198329496454724936692667040245102703098853422575644140953066638599010494619989103197599072408645546472971155727654196272699565774766159863378476116053372797731641877825040617834052980730297023487909946211398225079336120054761518793072225696286527547802911632149552273508021455757903535510105975210326523812961001872871455301787466572150271167170800902867978837104114686045795901651322005033582711666341471367644181712520415811968824580477627478227928072035172685991925768177882321420964538820621929526098187171457182526891330622263187719216100775599694178412561582121992783003913587357776634684774383657414481006918977378200514729284537405810791342529261735109138614010129671450736027577539385684049854783764802069054184285824784887717828153549586340774093746038759395382886042078448739805835209957458886242856492147544769541184517494127455867391281743209035434823833637886972374594865987343242769850398210917025299378519642989026093851242615583125281378467938745601462734333258447165343191245634748712559756098725650194887414268302962177704381122611412043404850674646509969377415437793100910363602878796948646236744153708678343660944776264075129572667032314009344440703850446607607441123182481320807432062045271610243907494871794910837418396889504140123980766608479892068657125851604168232618719215586675107520143114304800526360443329166066726346933438253944881938963864210051346265853721782580307914339390262636256359053838557990262493344692153327417873044869699929697799477217346272971341584251085994650990619373346919720052495355400662224411681853572970924879525852109571693178364315477022161723499461311001001048605096787202881526643807908621960471935007238762306976204625243780605709621117884456229363205930202107194204959440716274343979422829465926459524851575074364036431292747097848862314274299187722258120302500373159556747767297861124161730393060659537168984617934889847002834114113858379200895636348377382487898087283988688046193469171327285084341821523686967884381738699693751264064622566042972610437182818810147423682436398843149284365353965160953822984214922585391288681208422838156735949820700058542938836360708483773058982349781967163678999764052425962182118004815116697102942713921183753629561489344158687679975293968006285765448627632220578547207731773533644930203650998773999791107363594089257078777883529380486200230472965516121976788391769312033491549591847245937526414697629430184264179222247033730261665954226555875850013820964923659220794457671506422883483275154556092400713362402810639701522238805784687844519101884692065721244549790774844037371082963042864931405701731994491409783273034371509315050567341832367541152371944932834918604681070385964806184871045570738859621848075146016276831692435517462515126871472539226635989638127970326818340181124175116431635708172319914296776979771656727492650843925915528661459666186863287027661958848375044601429151339465621865358411892585266759840305352008295641607131931815636328355355975059250835288433353735056491175899987376594597644261082013872157037154783929181316076728890221292220347075813790261033779404941910486481322299900731884712867608140474891757961271647760014928443134384429976920029396730225564462806241618344667190021742095990813457009440189906494747658955837016065663574789348220386888806493408713947446642003877637974492441429501000013180704916900923268050183707086095111078152165399968387380105213532220287788306535599020354895512037069790257857199320134923613543729031045742947531959165366761379234846839577401442243971492427935232316398089878621012757846712710403584106095770724330957265447700955862523584315374252027531011093591349220579751876556716334471248954152940431762974747857454128359925800127323877204627612296298696093090766823174727703796303210919079109692857572314532396553957433003689923638898829979182519489030674520299189279450022963581299495875813246029100197613844989849701210810761136543184823329291276625728535801439051464009525745313390562075594372192475493354662619578947294920027670961959685332037397265278992149492090010374547521150720359021351096503049546073193089411836201393963566370533972677238848738321069037560581046903376467674302290313483429219732574140862801894010997933938285728072468916395030490313592734635649600998976148141813196273466814640978733606615890156874081415090934136614481611701576620867319112133182244083039312913928287896266581824534376787440022928612634053033076649274047133276764448213718528067867631728959452093660318098196371567483535472943072320457748336466059783202728273231849753386494123877573456741825530750772319805178449919367596945094646496359785292397646835256373446952279733268202612204362931641576476053170513745378551997591815590030092320879782653951275898648535531201785176709984437373549436736671760360563692944944991639171009144773467113300401776535236128449258471978548943751419006169687069469006143391379517940632232295388772387758720690958642788879928718605491208986235305391206672639217462684318506514548964495997355889053808129536699439813670959956246061782145565685944472493422429845511325325679849682756553047291000500073245513237394973607268697032559768658394694074022550292260655997893596918383748617904856626729190464982811441263445209137744705043881792165889702048544574329089129875106987843337446834153639693811560172427884108678544003572795574682745943403472345225562936893173582429425739729092739136494402571446941959374746409901649636048073606604388227561220435826132928042083445746419607431147089714344448140275485721770731235042714728182906589220214044526613287830802115485839953852866094390164949625444378435751964408317821266003541149294803509409811587151172470254429594527451278493716535195226215699441284351344932520094913736207302239671680946566266913007215034843216045570719304845536865677778489198454281108854321470804462226323526071158579268577159246889019785866123416174689177400736527437687470426919867655659753989832282104291558194701467637791993324586549227195491825862452699006757477347220193520422267349753383624341868192970513302245063856073276520913043445294467136289946979670813944761920446310023999233506276035695483421908286129603276328901288105508673193383744680976544693593969931643280646342827579266060808570783640274620448822422215826933929346876036932103689621941868911970493391831327558092438432528854047994430149485993069295686175663886772256672922804303317758164697083680812054357123974684213879123917382852629420512055302717449968620764754133465201798265560603023848716016228005298335881385857002816394102567783361108877631111277346075317939634467108711025295903944105435799451121791655792704127974777185410768857038405894575686778697953447099136596791944928570586999921397830418729953486480611901726541404185786854332932217189962126347837618487976145507792081706259400748873115931683296450183615961387877001998239176482715732606577235727146393290810708590976191293390322064306149767843478170412533682104858697555418816926350276388618249439660181294505048823391880362172101439013214238517046800705370090635489572779914687822971046337795811820582781151677633761743209828636896594139408238283698001843314337441270585255072484044759344101979908577985680397996265106028912114850923616736878540319678527402284423928095281069100173332419346078994214148345257323943990542878732390870604025445372955503889387874136085296949786294388883635636936692050962098045101019173375991464471334051703206929320021652135778125099069100616133348434864844561501247255597486127675179624339570087574328972574452744436191209783122419394732385019477738167156647931389073771246299302063200725585143864000478064446512081114444707022041938983339946324389447500741477931045049819318289057421584209965448925033000072555105090485337724832657125271256462420695938636206780121147440142829612237560597129736071891815687995012928210680180727425785238094777222806800930902245742930271093285037131753897039205074127051154737475178079462839668996607999811278923981729197210761362308670972014033015526953767467640345190141854305852930000587860690996537241111497809710399379573928230265048797474053628441236853638037383566221464841911591542424320837710805439629427984462378469391158633706311748914103160155634418299522525139000240319080922795141620482234034708225745432043572339745021187444083581334623047575423441974333568504981430659114531534222055507843152448553569341251236973250781223275811465819300952332877875470077082816491421953923100688610470032846325696850473307507300996401734140647372301283877094737838094270296860777437553590798337412054343438519053139369737546334650135615773125650269288892939083372876134070519996598685525526302474237749927964649473350054024048979201613895452083062872620382194886545886016616923260200530966987634792311679980164090077622478471588859957772047549430524109842256155561983666475295547929880592508865539924483286001342466760210568893114243236897470220616481459812201725511522190850540177699235600546444588808732479712090466069459358259855188139085510186773970753111805310464796235526248508034862075682564672196420723750676603925193026826954600477881949320207803666899467881391063166821413890084562137627205750129125022104390790751902621818971870464584973429945964484402331063753683447780627150957627005501549008375791413404302460339649190948168887916051011721701939057202581049118312111204012935896325572196264803369107370132693353550133595642801037797981401997368297637944013367014411925109192837350948069456719766565765386434675035917888533964514561369805484518537912561357750478600932309827876388352545485672165134123394208592910795390602454330747003007091611532371160421789547385285698270082209743063218023084666524230858310961145348470139527409092248938758233291209615834732244635414175919951771668428176765470357028422364953939941194305237639437466706287933726842213836085957133031225666407701429878781016265364671366505386304127151539159937674677509406240332589155831112410210147362450882410058698804307070528934575704586327615978525262210473550356184093058045475078355624119008412048648225481842892807120923360684392369563062176056588959815502361190100251071633594647856503177412156412319586550367774600033635742051809170326625104881956407104876291257811991873375513424381524589485827474993977525577372654897833391757418500046901885133304965587411246943271655885589172754113612172502527333807996062708045025870958434648006385787134664930942579044362709457509890177867453826769396763562159736372042281629160864266597539604301361419236852272244935204426520975961814272139719092640585024969279597204409444041625657370225208749901775358727238955506237929118304702547312690296384634510402828256134988376202820921151515775421499813964008720879954797423824949006089261949997843355612969197214181218148705890546709228449926544488376048228661082924327570932925643658649036001559228604450685408343625275073238870739880682131910898501203289360207807974647159027173976681197869594315472202365260141549811250493692136523969376372921935172325306326868119893619025593667242018794955479467577805318521541327886133255562245605280698509034233439902554641810810436288805719957296071723298486256946681374360440688443931552020937701087771117810927529328588437343392792319448984734318969987754431667905713774413013533449391496076959020753735905528247633279663121677018395883472704987003599003761713296531079230631265624066667208384714114295466005806187568861680286905414879504043212686448322777755025720772731761203524616143612574642862978800128295288522280511240443595624666718287064336910530907318229111660424042163235038512633622092454742033225561656419674634769670425718487411135370425174561561871481198265848357195595493833144336023977927174654531803618022739980459779306614207935847079545491809361827555794999431960218097265312966294834690454052838445944630635489284694177387648818386826950511259603675238282284301651296168201571702372715327220679851602789857061833108470552752497662153467476585156149129743756426691812006384556460822909243312401686450458260290864910446792969359950026313946926726141620274619735128889518228962439614970928376390249214615497086541775387218111171428648157946064272320152354970158736879724256495525492417883461112384100164431790177781119157200424775342234401766789855329145116322344089894993096002283013829443040735319578617596133100508556636024232373760252439734392684509586821429906368605706880381787091808332922578788293479977756476299240951483613564346201774554317232193669646118603701381090963251060053860422604702742442667954262202511119491651741533716047931725337284287219105650241270613255047286698280283220254658123867341291989211093712676937082957775557275570582398598148247714503890892832547922799151790589300839690458609511792583358912201280881097419683101196606045940994488854175929557161192624475392013161713025134599885351163875677944730947952316591531858624578597372135256302262651962420131270467939956648739170857842913171158197507326973636916648020899686541193382585698352117142158901466899634201830507094471961407527514980155812335997376519171985181313571526493512488623332842427600785182468644205900808293355220714478054747539022992138487536891094351854473294939969553499296512480289908450263882199482948978014766913650564916547588706369036577004824164214904587024665360711212597628512237105709701291566111630357211398240166109651610349965010047778076204052251436358561892122687110827316075541427537718528070611519644848742235516689270717980255444817762159716517939184612612023039359854833531639841273367150177400416942470708055945182084745565142942063445537151659479733799870283328792807610347263711760134698574827134795014494059140614350023700031647656629021832288357094770972771710809311348219345721081287671460306592329708853610771122605952562505449998815883049269138578214043415729093725864826510599998269718999507656048912578564987672765499254841138321388012714817901445435106348454017701712766744221798222567598151246589969619876472651411749020530091573342853905126884360360317134737951206443847195405374457408848413822659861655705540630102432574511883255897288741088493918691300089929726738988497087590307189467170073232688871062011782997773784299844269888461445317597871582825704672610849078986600012590802791863772827644728247523552579118670167322769291674092319181836304220330487958352038544912986220799073986222507634935597990694496171040028359311438847757885445604633517553088525348578797088449690273665867742698013590485661052995127322072821459025401017856828828612151253440358282262081973879866778432192719781106686353501961120591225570465145235937780413661073280866221275229506716538461981528248347666448699025288247208975141437310948149795432676385990741483056388975270650486837597979899430110479858494174911977549324540806737696472067582536747652926528897340352157403908575193163253721250940077442605239281516794143532553023446029861271917740755900000059002346463218270881839031013456390072470408281711479701494185229605937387169057479220635733997542336950455187749495577349731585269423506526869389728328978118194499700621424010035692625395700021612183917109683590708744104602840112972526677588695601288179049716228521404229431407679119131695834332431599635291622810822553833139599256669676389890288233294460864513016299073361250396639794823596562319937993010507611925042781430031175106350378347926645435523632110273986914694277429505096494422074709224966016034180878439894335560644547760561828543335899894455588246283726747955063296443875047329088543533199147862942704764336987134285752401338181341023090517449304037985738103569260508329570828912262519254837107824911574738755840112036810120616102706220189536615037224177027724713359982894464080991362017255406351679504543151493857914970660737960229139076718925533453278981294026587959370754718943453729918721535446092812973694798456557878387132487585307180240550217205656826866576033116760776478261759689371810966011737899336984128228453076241831806225082683480909406080145643175868698145881985197934887048253757167619453083482436930285534322891848806590072829304576754748862460931869310987697252594887959587397826042894896544620753830768657665712797818159998376176804486020299285644716569230406397374459020830086333308459713982707487495099165315504184150522472131080752515562541278359268949240489298701436743635411020284696789718846927113574584606894116494937916516203813822101323128481513736780562566752720003690393576210729455430234326504899574882021542498230565134270687107141351069227993513619028105548030692818739592853869450987069050254342789937696518100954812348722823730122189887624697296327459426063342026146772462882503313348681699068450187963746449677121934747278824704840716722677113387389461996302790952637567000781115947712230833380532685389363124604795780971088445679453385622633123414987424096019600854917687005087172759409646214702463992745269431150124013206305108537425515977163233627160059255877295653520409340201167594157398320126635555023685479358860005678018750204173761499161098177505121505655982053344542387312380556596573662054955837091440972471978529445578201478973247680990777086857548422714141245014815112081457643880923792585205201599355299564295200986415079343581258564150511667196621400279728518342537926369552762427955129978829047868752271282233666002747679525833771111463160496689735763245526595551819365493325154021455875239765696880856113592660157963606448544742627464197924108511321048479462687720269112233925810851964793987689739674687375527733167597623191519269259181619926669717967861923861387371508922438944748571090860533608585620061291719557834901164211248641073772698255054779912691339646738940425156919073261461761771745323418005415374430767927810730022392550039011034774216422559788842202596883203575897499931654338218976045528293328056322239790515862792425834885139684555296033974679400574847798304981446990652057992166785252566686931251262822592657219257276308943368364006430775873429539145144426033324860708612290014387716846127930096337972341055843464065834848623860890233199688068639499580442066368330295224988831375076030756461364728824087840935022037006242063902627022974780492703997295590446742865287492067459368181157113321994571947300881651004250925827636399951087121702160605114124059024719853578440305040553501383430797042525560256475935850046972950999816620363270495350813831842871271109911271047482391639494057439908236774892325563655522497112665100785494196190903676336039457398384927549888256569724349962818712631061080275067603122372559286204047320717381806894867066275315382492752225425922686511854367828751598933268111319436321837059194156036797926367090147415987667716872757709036724450145076326946600876081323408928386834188407003572090454127840265738724082870743541423391767144642200039525183516225151246003243179685827692862673027287465824053414077039357671464304781525068123288426859358630213832517867748057950817355890101785445981469665293010335052567329614292548291231701262802285146285131837896462747690314252880712732109007532477459797245978669403585734612261324115806976946327274373813333484006571067930758704111832720482835017049530258991160139088835476499784886391810692078357400542870109103611411347970169806905083060384538215755691821175934042338499485874416008077275543218470275531583535819802836002233145254546894004522547279723883464225935750343494934044731285916155037156693576733283318681989315508014597058866702616703855498583120147623687759983807804077668873215406719399352914610481920574177141632527521453111278939335174866309420361220169812242130562237733255008963710489977957657775548328036635317875765767296679019253096484260373751650074454853076588606386239660321279164681326607467383362274358805987106531198252033000823219657874183331998650470849609105812146769551456703064147262577268345256977486300054659198430253240900214407325417601718872047438060216887788481781623868059143568430585818484346399023041087524913540227207845858903465339796732318642114053434244010846058413302367446489110169371046569909043741085618200952478931587591415192885220383130701981167192910208338958835449663804059253125196769594151523358677719730292225200892509403154793325441961523324196687465293955670090450372461467726527953092468004340909750605170200670102496944233076243031867139415811693999607420879526028231423902378421661548614546343109464575914089554640382247600253089759913889608174814209120972977150349626485087040424069161569164751261601538491043498765341623841293750791314031875677571544398138111612066984817332427760616080719279696653373196082919595134341171958963696955306839947703710153248831836938552323455267757922270470093998068095424684161069400913301309778112913629877101783019413598506290567897288788872104706686737447289829108390841278686164729540948316779084747246017961972002846103032081224866670035389685503662881010492246358590275541431966422543016725574784477536867222722934858524424262569096710214985538960411639125673374447721122709602058385327613452449012365761332502341156910407196744889158536001242279888064882189054327478811630765128537407227494980792601473239604560461548015078375259508505413504918087750519211069318691070150003238490321615019077394305581186331842478996967364333162303222584562696588447023960271897072626545275118089898833148622634122926097704299503773150645968757018109465564374859894093193654892128288089346678734906499765771143824940766664475912054088332711080817833733749577104644182743178824535811246707187124471452547401983346351222664659379044922654942759345761121528174149607062364562931464997364241350708504688494268166908538435695275955043234299742655070849455638926075210466525754201303671863250961452003357827865172288153246207499889799455337128790622939641031689398949554715945806468479799110123114939108030574997455094381819596437698213191404150450587448427343810205453902934738968133728563827140629246995334998717369187069586109569221562734380942913274073811557044037011844010698861339914410096680196672719208830443882344340154807014610365164839792226751312656174772628612899657793777380529943021064834991553007136378307352623743882134587305842613329958027549073079529555127333673074786497071156288493355975419347719418957599604107946100893094194545865472630040906199935330255537140279326253105472969941596596109735180027467895361568653051953665518023024052347974301242971405393896224317895406032922022663596838619097520953385193755752348499088107241816998434673193897866660846563690447122166826249207999762874685606244036175155014270168477092339848066959242723415703215628897265658555575017761195719316855751701563361446187010014934312309588025990527909404408466159395322868832467049683918686091715314713761633150618561922088485257044753402862320120135416755670471088212011076818219907238616448408530048278668087838927341352788527526385458515298908782829966605701604953287290768854998120019421380541540553967945043563629743927916207449676345363787230792169960977911520658273959038744552931994643272416593948541054122377988646329132381304099864925127462886419687882615552185048185835974276543164198820040269970401479096824454980974190932193008315061033764682940466345127096216466406538535969542745408256694210691214496004340254156195775689570959168493090172805064959536129265456107296938563916951318094319452762273002979141839224648839593393229846798704178888776227140545533170630487359447687187368513118315091099367941282713297885684755181529493950291419198249856326790022951647455422375710318491369115446503721933124251933990105129722959288813828214924289640722749580615644978557280563189500478768392976952551199489398562560818030681382671854629812168761942320643562627364387561963957694272699212639961977634104592683584467308904609507844359551735903336220300236802913066120479768229960304229141032819621875704552736354966399226200972513289189339156731119395477032622333845201037887745750551856179983536280169106851551408416733487087811800556759559144519086380231422855643226100438070770868059837914655561212359345641039819524460900229706443148947899872614239533611164699494154783834417487340923351051896889512587015717988990918376857824198862369405268091210659212749341680314372639713830140508616154741692017546410956947707001136342551502761041153613925021178387541245734925804914058296021726521750296673776630816437373087212913510967013163302038851958733570623423925341472109304771183783451010455972106706112040473442558622261380023447196055634480991393397129568193026611513048992248867558859375215775774866279598410623501995418004833920052313124024937334576581272266791377339475665877086171155590140615883740838528015888292636019372057376306742357557464404901934052586899759007117124435488773452778283908912338227344997259149603527934312332704196555142943460957217356233188117681297818905188500081431147179753460972300185045217848651216909309808835288327770584271228527496198476540892337699377842410355182099561751954850156689670768945253719806928991945967569105764126659770832177131172496094554695766593129035271998850869865206288334198580593251375796512299336042126053540416913524166794924111767880593003256739678600896229386497089998338485943231041975858774698096057683816316921641081816787944200838167955916578239966524152668106462795474966067305509176198601982711733799381917577235606348928941434620524547126071064042206177878271925940127956331606680980845498356743727369833500157190692984803742215180603279852102553490315703674209091959680816928415400208860190944881144154499400576481358389827334223473733601688422979237428038134309299563149945503205124859146007423117288498011038448504429582416158224276314760707765409964149858605211072140838508942428539606479962077379179432303991362031229658685883567414538465035207529862711744203919474802802380926294613195613901938623327904199906713031614185338787463052138496694441142350127863065757177702341431111415119208066149528545489377847831444793304593331830964837684046995592738189201092812356868443202205062177006817885612002500677655446171454076762843871653278337747860477504174298777145350399934024926709558974897352260875040236507159003228892007116277094549044475290621156415329691255280425961820334014336707433774145690787707546875008718968113590931226493354644423271851229908198942756351236462074527663870806349372090955927935945186494382988676942201364043934820676939718292278851121862152228491079667717267481222565511684017520977945967891236840850882210623710438572455059157375283713291995289382887152714958186350381247062458144851206767632284741399844104682192467226390957186682778486596619461336174181033077097849285180470726778148239076892311093675737219309872335098617438914534376779980867912338385555743300045063132018164351816509169108551347791347517675686435353947724416386646070853463532082430766408472056025280565690519418632800536618516798637631766498146686983066634740842623299758575139398857028311201505042406782582362385322698338393456123192283399931243578424470062444787572918012659660597946098149296860520513378676542088078049222151760687698912853819222390002620648787811701807247986314921988725190338693777374421770598000392927891544268155655214610440743814231545045641714627963676240818831685899504289700906618375219405916368511408700158890243835360588468300416972855601133283813203194642550077531222636230965922114388535379972098664808297346371730872369699614389739351888205990328427781906283976043368428308205335971921268338547290770287860203121640779438383962926939655620245052802988424368659577221755889061171602250285084328547698338967937139190291016272854372248481196454701903305904703035537984338791781074043222679149566494471816821588726639553752235229026528436228960700604248431084063875868144072500337562234949021545074777346003346502894240936104001232347856749960798522700440551870093175865442192013202073020786604935094028636874252539833548752328209343032096136327021297747429679985691763520855859222594303546849598231820678481735678880290214769292612637629145628859170238658564879892707902576143088569404241921371801529017211482998614957516906873704239297208615983785180974525260175351457164711223779722207305311030641456239788845984700712280823777385784027616917667341128601548736532309363949997124810632737973563340970056044651790038364371787591863562851652890337015852902413466416642649979154172254834612336800596645302918326062899420862758834658652709709017258902841988750905981225113310678970700563903430439506920067157405075680819513403081035647651250537347088849858441126200668341956349698534561826103163759868949949585054190018616614636946328322686334308267532859796832446366900146567562331678968213539301987924899524021355853426330568784515585261953451909413685743652391072426119587461559320397148898108530085493046001734974585957796377343473792163306901153440899057819399366678635815670646197222534184401028710236747695912783263604956366964960392624633193338781928055858153148343002858222974937715200408136750575229069308217772724252952214194552651720819877850766387875346456353736934368030630181120563189163624829314417139748598474769363761953542401450137150517800365051977679844795107066599581758055284691005879063780343316438903850017062157102923882552388793566395163970975077405841011755871267427600614258397570890443674504943759705358166002626340673048084008015782721462187002799687500287635910732777964897498620128139322913842156786050467247808656661659615168806063747138290351894374558228863209044757100334263144532654475601442351042916772845942896026214738977066819263843483683812633117846768784742626553887464448338001884666730694076648914916935548038987501316610316625278528002635031754542365741700267907542617362920979134958365526816449379944525422195199588911115402443611627727550281609128154936254178932423894153518438549143203906003794051849108269110081882253372717656113422743695911335820826532524324343858188673120175469284455651650860126312082412929314483783707547910637776875904528647063596101345594144990716816808212918130549370064274529812479199417866942670616398161531265653150701553654388690201732049969241223109577403671330287558688763498793229595002878586231252422491797409534527215226110901261250097861327119513943392174502958534049098581122251267291519887882983261298432633676885787552639954783708107460789595170257634960892675582328915333941028544051235868836596847647838362392386379536590729672057971058049792200266003741238199391853673895437637128525025723868894332027970791663430165784772904696106871775257881838756058963984022223707174378883517599431746853026278546414396467592110533528163762281010133288006594956472732122650090329876303885345372477958617970313612483832671216584131245746240903725018007120872877271973940195219058628420947629819822700814688789851616195013310387985775233713612830903352538805975420808631570893848887382542532264707173971517599915356326728641002925188349021303098164253928435662920644376104852306501570482812698830759356393615617624805017427471414605930808779771283142228677473105137094402041227229565474754682295630528137648983556414715880195373933360314034320493819523691096421005244835287547044370501737536348436937869447434511414656025018856557420647821952512751038373374574076485920848176126944492101743653970235016434014700920793956330648546707182033217959106615981196481979321595633273333364838522524793164009389677594872020413347774716300205474456478044243209923487679488758991142860310976044641842962346096112506285729554536166593096615700940019871854138718776202664443863119690290006440298142416498885874289321609816971265322550605895710063384066658921553268733273568001880374914762490903534461592692420183929834267307889986246556253226124878589585356598152377944874453080761112441447497213801457212149577796573754649401283728898461907540825735972725143278195672612116626451078627210632435696459703366515256644647865320632692981172872268651637443435595264107150309179866866211482124257122134468127358372394242426199707326511108708018117376741207074844066551468487823668079572630280367647647769735286782629926194665267136967767547998682533479693590083020580866619578490518993078272516459816829601998798748619737163828302879221942763071598743968073886383080983480071280069295198933744662005352627477105293885725811657604437655735196023765003908494696840721614628161177130518398861529340957899250988721852859380522070099273815950269043125305094261183390953962977911059789839807853037598710924062776094639842144299289093080299036651219663361012903986452698821281509194580936451258800458570983152365308813118232444761318299703988392584549568657885390030876134611537404512916273276461445835261359105373061247092201842474955512306357404769245219144805910124762348444503726337808434637867616469499834962524749694070423139766859594861986857874330163070026900926022781641068612539404833109950033912477045340489300592995630699213492948463344657798643538276276549919979772883185265758717852972744689415226205410549927070221098330746354323571761688528429308599194074168898040771312227513616643116724932207939869344103846642467199699795958242351905274065004621749733622155386457307957621960651633901893679881712939055468249843105599704666027893960596383310162331950845593248521567845183112151128526811276040256041871974014938006324569857562692245482249117553578175303938048313759886856958163754627195831935477695463780131579869976498285962207989135557412953955762199862248193232598510812791911090906581938989972353565053733453169541420137046177024603379058607812290490431289070331413475578811101765638052219355700237893454912048955328694022771485954514051533003795507010436951292793463544246451249678644445060141999619887394295876589350311530594841103054511039316658749739204370145142719254087579795543965897325819720117644180765752768744278217054421695257761222786058067807114500130565489309403876382071083241598334615039855830332139939398207713551668072457406339356209914553606078400507105641767146667318709803007823640066759498046741220908070973272102226167474390877024276947015680861555842727339907559473818838050386973903537299086173834045322381550919585516188098913521734569554719700472488892286058889162478516297621632154093327034263911482185161060298128937294554436285485802028559335606415145819891889200920707604070185282696133980812456355861180208807879770578278010687963247865109523893134347191715077881820299766288919895325924589365520107830917201126172823771828413643351870379001351673789665671244734578766582959826721920128060856544228785561449741404502368435407322607313502400344496991375586580125283950596739260000481743048935932436348033241601871221242699980625879499904780720598155515387660997323254299568655889348817268309582740338480885760129066873533087590341950873517564885394368616851980480669578791041595505619463044694680521869580786305013261934317957772421140120827085943835614967148089753176149231256403085806666134899250344413481908210296119517362071972660111827155719342286483604316462334448008142796543992534352795324207372362666794341367874165784523289303259176700665523848565682349978539550957446520742234462375282126700910674112819290652287334238005373045251585892322606200167134537370618729184835572836239634201059594757459397099112357216673089619315601137305519965068696032229723931227728038932825757979776124941862217274028723420443073782698305735688666442997281413080351460891631812993065518040132608323932882249443093450724229041614850422903905028091120809020906035484776207826118991065281055643683080578525954108539463410549545520947089275515555703840136318650695450293741397699726704250328605696263937345041020822221665564674707898864054892818350241494328850521755694856735116068536291635101999632345592399262331606101869872791662978988957699753404908220730639336463544744137886834245721271341136828154591030147928156152998925159692022021429211431818367628083649290565508198406122721760325792126582181332512057899499584075964774949491487237496818744391389628499983219104370710940226679999376946612391456683902743197244312266118572291400367604138901577142475591156914824448980237934203615751070746855779089085614366676447914851657989878443354046054474126967555177156689546573789459850253681191399019782328756672107178519480815915243680105144575354767673312942089474388570982130645253802394326372727364385572687927649218602280165337085740168735204369153730304900206280047660734183974972872545993912942148162198828018935863473687058857003130954099330342058987433794753369068706288631489100345101353425369918611156230903156305900953960270225714380616203059536840964717029141988433714726641462948473880093275617767601392788345561406941703526288808420938316943241516687405152662883506552970350971341204557977413419606571458493451665956097486558455664297172801682395098788438106756641720382434805069738808867238497041911013710699511287280556795732985224251259126816789814636629239342753417920763103694634465132926410105074740666090161946489984919558407147954380889007607552033240184162738252881218517864034178252848278393093746422464079551478584149314938328421994186002134674875146160175634500730371462860299069770881061087613764489223535638711613981902669367878564512444443550611523080844677590822489924324314149539822649507565831302303873437085284745853404062919418504701374623596205875287993580974500599309677764085825373925411599491164910691400981261679289063390272823101487301597764857254894061504061629108812466132260751654311519865935666084380474092257275886921871335151797273767753453452592935868315396256468339754560232877175973112176039694935084408665549654852879286632449523008903328798701641242031288668160103673743444503039827738380632434940841125938978684404948810997706987402469307322403816130195860939703926402829292021637046198062348158057891078758213270544127693434851191102094870224017167506028507644977035132685460917710091437499143554493125897354457165210625967475842030723549976313270441697790583307017215135374699960258545460916026753121709814433371426111656772060269389001775140594676484886771293901676406213647873770071094891181501610249384929933351346418505054591810773917528726799575461959778087904000673719465641278755304232940276180608518785281872871339019310969801949013081136641730626498493499795526334760395656103444842728028108677542775452789845952286163816750485459539106037281121697194698098552140265820440921768143913004628817931643732443927182553539735553406455724041455123782717217806624165265658007291633501387972422377736897923941208570731552559771884270105814363262298538950999894953388019025499501352490786514880377057477916463660941007301061670368646556108875428606439007408498282245560920630469225959173888853412696470891855825216281118722267703716610171309325943159297297890314473196296847273808052395587333267551378490331677022324264032984743011804058890498762249336904736380075530643948930152592835947025323632552933487512538899184004751632754892895654697621051624861520965133736060373043216645823032019417060954888039645549636204567009439050237935518760447983569976149453808977987686112596794785118745374562821429231428263275202860830337095340452189353844440476069501528439957471625731509840635175037212274025857378299692328881745801575044226681728085513880899052735707685402499657300905899116007344551873092972214532285372660256478222074156572249596022716961581453503446068065525444233062787187411827912057169724313538681217256709360547702623241077683215534966765777088694504425138345854060480024149059254426756948293161919390438374791446911806692350388794113489502413481058160793153376332197826178806307250935993098278380244193575752881340900323609591101615231554180300569342269432640281806854140874827236095190881883229534303880913279522959197855855522123278023147914756722130938506218705270405970879424141878884705919806765812113456348933884613149141244259773294406625600902514804311476131229481381699261339448570496238262579915864869106003501080303565796545121119363391651834931108572505141441611710655825028387979907608931990146981547991322129399252345024035478947505344545076177959954035744771474046486545035364839792711551129555514689485015406554126542427844497475379742182352960830726453475030898655002751681308766149609639838347559316500017659606511146681926330763664785575182539041538078782103892413489308214522422336912392201236530396706666945399237058962027627292858883093335994433984268446231111584313897111203692209481735122594540439258728879042360390868857237674522719076250732237741349466882077882178950349629676757737177038256396601134707834305698932587739290693905234302939149126950443978362452195229072117408179325447942666115048943026850176556604225256568324637077707151669538942524499732533633014916342182943691189852689465348335329577099561997616012535149612461687709007764063926831889216350455663155813448668620554625328648921821627940672697266066900958862962932398329418642696688608784186668094176003418181783474419787090596324143599891422675146305520905359022411750866651431179977631494879457924768800277648492427591925577232117897023749866599402001274256417410422170273792114399546774059095154710599504946896255462535916654397905193969483865691957759370758366000267128624928115266925875266792002797888952186462448859384997837697671081707016099795165020276952517025294266163074942629234261399448086442238468887303322288659909732333501004535935635166771257655429615821688007720974761423420425503226228199365001927521538863780798069934069298089768680432499102430931526741520815468383004699996704406134068054408131889717546714393738103551482914164906572465071468075139489328768882858534028329026602977567685711116157710661677881158602302710290538115249343605273465798137767962166447199948282699650558125950535548784681782331939876733661027031907491534154522627243889417714753065189677466605162773956220765109009285919007712077093433728075635674756902475939601884144702269691933192129380898314527829987360651732952392834599758141301712381520787049437631322591339849373257323692360698797412428803358967352371861809002240677415352150085337721036844825017648609699303962285877333066004302936200641941074770873682419969987440790572131895949679225923938728908797180257823484511055535357260364944639823892308587897256380941056642617029092984288506716126714344725161168510485653777152743208513750362592746185624378190634871800219150163630549161936647472776074100021490428129588108625258636416299108319217800156397748373933744016649662051640224709669197555140968934210031990309315940837218571600613964759625377905476022841000906927053527781082741765185734082579954077991290816769630478119809534656714354081732426497210959336493389375463027099519022526236011097688111766849141943088656139043320928435410632193365226522863097586663400237065101002878408247079277630150765875834515657553300029973055738123705071621788365179015520672895949140244998084319040713440419675057106051984266166051605818357617596869520768237799215192805959352908507146260903295336166099912311279075661354514873248498686628834592939628369498257355320384634433345956532708899688326480059457582392098763641484210391052220934072609690988457142839762703307647256513784416867213230317026956428184265563105908807418078198693610456117841817404348719729232380415272593213508869850641818822063065969209688259641634876466848970105951263567474138848732236084242153476814715581459055990884407833820436539610669585502532522042600236421198727407278105627480536173475200945814291046759446626080210850617085496700983742119450493506175523983239432753831354942952851876709352062767592607050875154108401465482395350535497820793151811245848792516788775865982994028136409688310519883942548127337557761746454272734819557846508361160839798298607373338098518506293602176751243485587008568549549587216080123802331271255624968384157344158718489204976668932151426964738453179718242515896306889376304956350126034606017197046316878971690191528273459484513788165286939986803903897424546965320759459961379948005771673951351350877222033027971530559876032656635336906710585072232500071383135425308558636431498865415791760341128751335042691037383734901984508460534580647556600136993449396190462361160909958663313700612235881117592128268572553737691462803910705933306493585465454545843961993875846208704352007159155633984363512395955331749866653911145974835397797637704282799821715005189062693429214364710561880646165527797935196373112345520933890529513558903801762558604279270496877235081249254624643946233194494882378863270690361377370781488400778585445772904522869987929178277132421996146807375688465682217923863973309602822716269983084620534153371558596509802578469487635201678716641947558723162708045426838984182508830798949620196008842293526286819387213539858286611744284078497556230892787561571849595580316353837332343442043028316934509649918499822984570959220328728504579234489902112702312697165907358385655506430410529695345853800680323579295241388898970255836813395202237002524230952150898661957922970370840957962255502022350239330509361233965942968098244591303783297329332267213577746469869900739742169773956006826168881742152898972945850363791719542161946582367368751400826073916905485696270005357452992912947972093833194616216743231956137656213600016577017516514395102642305995724277514018577793505991457104854582606476253861733004763277865881575203836190444025688561443475941343443016406453280935941866003723301628270970509937334741382416030056693949274472351996029588190100752118642823085502312534591654904804442587142469468675081932583657381308805040463481834595435029087246347400075741782615667961657849361659006737391750061487805141187467297250127835077657896131381242762707388959736327360633599215982474027846369916615681452437855925361333307039575039507980419454174901152672976434894264879671113213113770926293865191416483355754124469275006803986308210866868955767031691435847529296591380319702726734110065659367729837563002700293124685773319078294080541442929874209898814803331448589279771892468093247012161557621916786294566734827999745351004100029130615964277535446561984755205193728314886741355071647940915128748795627707790476567686592618634351404306780470500408713611392964476396686750761422893332619082545059432321119650997018351465038886048998816092891446961117864224188346663295170230573163489354515446143942736662054359031170002983534725246999381478311707684352102053417269087152792140525260187782760791317136695922569892220681925953720572784642297624822579002787396639517980782392799665162633685284587366090300786897481438161909973541877997317255906067469331880454253861570481437232211808126199701021288651802100446780477579447765170715323916068243978656743189188244813764978780327763182588066382437743067743991807749421574842403578299518014594002122837768761018284915390618522674390350087692233434960445625525230751631486830062842076007086251856519796729061845601783164235467613077338623588126483693933680546673117208050653650868089185146740417591876795646944686519244811254004772143298751869230789802908647624599894856193277955310905827436788265466777748460038565454171777276789732980470477287134145855222511204284298639114652705217436471658064806025042010791403586945461959408214306571348718496415536366066928764479660246201246140411347484170552414496995355531314642588120252907747594538506732923477883165490450403799799414413881510775683078281556335323228616294555161398718780560249754550139994609259334888040417853279464715665364657682262106522354875630656045823569736088462577644616259540165812244629844488529652355266126917884403204854855480262811860394527597150643071173984540193914074624062551330415640126380810515909568601301346913059213630413172706480026585296864124025532726974345170095338445358324295357680720076087383632338131273841274614486061449701072373249075438792872584864718047012364634435438365636588676564334664510395578267224149863104712422859738346447676416828545655724969197692033806284064793076215302590531707369044053865479990368205519626397361818686007970519399740121346753588774338530293688826771600494742224279821117836840892810073890811672583084967282530502068423744891013381620371752938506410720346067762892899900167630382795982888519081230822282171630100542475764520579541969470339076744534051515524508922210796665625737585038190493325970318967095975211762861253841407744529000224758572658059619555042312290109159349829016197002600526030467509770488332389967299255249623570809259914659490506762373674093101561471635508804105979476124023640052327464895548387178347992135408806480732371745113796973322669628280480005995317105995580387833023681167546576684374814170347071405564243527622044175594448614245141492547720667535997243763298652111718619479018252712732110963651034707218490841786779335327519041385960947333400449951900160904516524653069537968926772103848342299690480625873101684355930401186713715255734640646142606498247984690848234345204846553063081899420247672255754647955234716844346305725908319544133600247848701676467923578625660363880109316878401095906339005938438130199360923027805964071257325810835004148806425119609323456467643628040779699224391909455434404938550003048298895281382861642996854267375855873420660072600774994963580422688446153951827480670496165894834132300189078579386583548855822195775205853761314241350010861159233322280531259758594801649902698678344294103116109605733488523272325163257267017698794695708184977557376990334604539681167809582794570213636751419563232152790786165929565625483141910849896756683355770189603436616035429954452646271816838439118408241815976436598396287639908694775777513445434859694549122051293116636123085964360348486170696369197047729604662436121467463068707162273790232869982247057636078372175304928622605196005806034911658077806406153251564700173178171369456818057073320215674485159330116879072928323775503207155382962719791465828090573897681674549266975508118691070912680537419152164925421806233880491690655873239077141952235323551237313866925017559403928284240723297614752523181927200328693533726346166536003406981958563572075361280300864591044201633136877002565379604476304348051703099230552823155340134279063986228964918980144784446013279928405538164599766227849064816914006251776107570148413566486789885852733572656892857724600191190190728071091981993077793729821593443572189345173612780419500018828148569538756803005385866827149586334264180114041673331556628409945748213862003349757996824030040300408220395047740828480729776426022458776578289201846403698576491654564885125422605912373034261075406820815596600240706024713224995138228550295944198603583193011603126040626492953081797591602927687874461596853655789723319673596149426667395283332157505887038540803921819788376294131228885569549228708880005412581013412196566262506751349041106713598745230860207654237644306246768484687593241739081228330878442271959890584850458657271172249690885386267921603210193853236761154553631346343380053002311447959335554380345655934887719896145009893739053010432665311063980161137149840650095561256677714159218426755262925809392467963666334785434057836229107682645533683982168477288837752706199192178353362523176592915065229968343072453715787980906639270820690982644288909028961359111675021904604984797784500876229196669772746662721561401811609052262982101768494637212467731664879983997543863410936387716779992713800584492365859921521216126423361004116411185376158718612896051752941166327274315405305295960408124706199405056700801061106785927662539591844046898583217664135872652324390216402254552800570693968011690182008803962400172776509417974070991872612181229307660807636009445481664070236709716343613753060135815678835460273253114592771520457003096235380802780571576730949022267336257446113716044077831121653506168726816927535937965056682536073276622822215652444807423230893385620408540901439321872927958495833231135220864800704822217964947652717177126452543307215180923206249256070967211157666113760063022887587364130642332623882703033161689743149409471725626442535293521278512311745051108776863947723884941753083490488276110068722803887524957413488023625911310344422282109697422736628794591854746545447380889842158567148693071833273522353159430536096201024182208763526154498647672891356372850522111421804711852087170492721125049341959415889077238273786164947540016764984341606141860328160311715286389833288056918996755172352112950793992645472388115848446648012500500187245862148144849007520684535171255849075298937598239266647034190158809913332551225588656568161040621937173102492746737378959025324348792229160195222832138617655328561547742050194829186992013010549641035963597595372642703496170101501811281310147576356648744541176930253528680399972927301620856728972964912244073724705791561256262263779045335502863953020008055495412063517655459616755773394173021219523865538972033782019387715534334045428886210526649163194528270841244336766436141228681170896000386989293350602129453859584759485599301749369496491416637259744742183037768177999037161225844591219050545258747007215467994382978323936156275024935116590679462600318223386912161342603209838008325702979940979782934881024992645777666335697188846205026809779660687413806352646599557487402525183394819046889685416095824694104619809134731498296163488962404923105625899659518540265580719513555698259183707203604318371714040491331699278294706375559727869700628997885559020515584213016216136607711371992303325841849068480686943882622527577430053701904340016029181772851667954303978488642715806263203791796805008819582381145950073091119089787542139973942503921367224007466366423975354454972326945144855000514972038382675606958581964663642262185531270728764167010029144127860718349487417294174604505066745323930651532927128280439804898199796750344502062907930588772888706542838821179874121004177386778116292376184547524910305060052793025362486524516340401128235824965732149919605103686455298889749239359786846862998841233725961762991259556842868334967131820429217297843383991347695163472457032042067450710107058892315722558367658083487941128091441882001897262718415310017742130682043046620990354925384706030071884264291498081810726638806566967320586360475013360319773777552020106864134782056571817189735017989173646336473654653837712208415001631224827226648122296190025734407859924177823002514736802416512698260540433347931441968721342041650119711090669625631774425484718757982125565406349017959244539279363651814511310722472135801187340409890714072166114305924750601177869216591757778926956075911947189647898049215188662742716797838712425336935380342856590942576936127229082356146169822229410746431022887192495682691688806179996475932157155218755114180881048846558138622361599661346661765473654166176726831206533322944520213682473347054623004641927135140285792254683928617953689841842712213981427147129611106117992819799202891261480291813564542063181101089002943067410015376726457963711885980929291346036403676226296314020279196843742022768716314166544966904685275426606219232057658348635543998180776014189619810585577628323366784584400949717429037212144781906038131411066340197034924750603472404591348817523201531667525340520861963057025426230346242813717132710976425697793369693205230524604075999465454721677007962520491396330875612330443060785789418835583272636680327346769403950416993217095954185454257719647121914275867206664168528500744000265310216171545233724564080671953022527847076784920014995274133055080939739367081908052879079774101924275194670775250448663013069149938175094355209285049701312408347067246089759233743044900754478641417924844013195303478702622121915338476194291146876555278522966070670575420034521221418449731060692895733918968915663302132925083757827068734897616253571670401453954943268974333942812709856703909025765793945479847781777074328873755562713515033676993907323925596760233825756932004379515310855880986323785298780790556047782038404772103348951332264705315313871337020557458302423188679587868471150048437873220318394357590866222427051858831185615559380530567508848079464381621299882726028697388828035939463633087836217746789048723281295916116795601590836103254034567032701249261310551124833326851714316516746688713756370411624109237316881638530061084265960962494756122112937972374550061596516441097858902023628440236995810053574328507565274461923739653848768900850623899843192551253482356385055085050397532571624761864709244455608391168708679002631047695880269564975090418517528268900574968293980354941785952065903477234916320098974695999500865832441994776406648770416068634838004289489279944957993076031043408752052558574797007242957043695692422805670440684726935418358059616906496012703085088750615682537008190931374183764845817904253549150429100972934667058170419007225429760684444583424149705757079137692450817784195359085630343082654919904263744956313072646898562052318513585480256842608023275647534495829882322880837884319930564341204554837323333704633662711190727681503829540335721230961136551013578495303907548932756255886855878929710048146657891355786765607295054830432365663440060089723152196029093131116924860717097297150814749564678876995633092238075584470821681422025950078385914264038426731860939711324745766761878965810314885495869359637065645255289287777190315805714100501555535924178784850011839194925661112318014502618083151467290848699270570076295096426430202934916108308803529215985368569850533529265694300205158909975022395176659439668384655943167777516611887653801270391348840837297763803856308243341468290580359786904431514720403639581755557652410976237274411829937830813489566062062734766445996030113820776363283253301504722129960945984726611022286216911791106758407088359939057783000851778731410855597702736769833385453246506535241805573738416602377121175314726830147827113171714800781397003882346209150284448457019575950688166592743133433821493961066607332716858365241775943490518105326243369189133304491731509486459708423221476259748223311345413568274588231443601646654978652347467894610205760185013014926526746662410206696469928493317324007702240926008445695088418190667654726091824687986960995189618049787465523478310538155285586541921064327463839669490672833617302304354974153093745460630688697078557568462970843112910668784203925786896826735978280967850107354147269750595461064200933123826964647532047658016751518198587672869684682632939860853214366588225065861263195879649830106048137962680641290708775087996306850878299135064505320285097103724112938118711670902089027642912553830164004679141056402885172876926107660724708364078860510251609627076070749391179583621927008764912594045482820710810365862648231036858113355394239341318562185193128212222501839393837795133234004921169972398215474171470086143829969179609882707004951680718033776001962428643586605409129030182069490982934865783327465679296065307821540086352192846439419269392208125560290188456536258797096656299588264827671224643053780465743035862433658229189558581562079175819472795059838050307217363773107874056615496797157510977688923874087759945239926947821167158785638027077935632294378092534168468978616841475184763402492606922080170770107411046385923337202223637931904159717639498576214292171629645144039494817433688078661599252948325348854961766691498865341189891298859255598363700323864706832009235972701328004096198141443854909707127373036310848919549857112810252625107821109589070651196303610711350908959283216451578048325648004259283476088486986857612892663208440789963277592545021888361539249207063251748206485265415525314015455028288297564820717489001575287041575508439807770130996141380495376548813515986275108066344448536767270854852227647959288320187665791609036690361485810824685786009999338812399036706930224655333956151126071713429079322453035019189207372139786874899182226646138129517655193926986331584969144275878943194523898418577647260329955643649456055581577697194382471804706951833293419491750784465046728414231143023038088270073138471960852786826509710639412435789245990334910859968950614713345186654171674317170842547026290238967976365292352144729311415605725022132637188058946221732237580034745788629402894367415754479634293420990985009168896497287916989822927341564946279136760616575085321334815332637661109147104364844596479123378751543885267029778864853620556732898304873442439407571503086116526031715252515490514174877931243981780970405545550356258484935933859957198792006203377918248679840240420801365658516616226717070980105247454403062282246098533952757468129720520367025735422330679825196602114315099244084289669039626764354232333522236686428654993363873171733536499643431549185983780721033876340615305396398103236061067662995543803742420433015641461616877667594231022845852065166290668268908751522025242392406144420268809488967922006250177281416800284877489834640709716743375911821068017075058341735382611974431563978355177254174671997708180083686899848552100805483677326899047399231356300345417467374622381439624021758886354504461205846788176218335580765587404295610395773798629585287924441734025806799439056705136717197793251694180370676288457116520092188920451424671174307044086052199922012957212132371108456393807893901051759136225545378077022907751047376056174410293937429833379908490178534675589433272884613066985355965708047051896314250706818911486060988140396644542526984537453287093165635672018514168108988429733400919220703193719129287034007128282015249378016742842077919248809589202930190574614147511759007768498599063801614201177775228524680757049982758279570745607340858887409030499570075085338399348538187267100071210987207044877901787516201784078362460241599860150537549026489225357194900295330835493629281768994009896196911726420766061300135148237135629419956960696939418095413935260689215395659182884057615561253156897976595897812041109096165530855522702931549732639681256091207687452744449631954778967386338136329464020592610793274022853768055097269576589887825169059134048767435305830428420234539148295014615828679907480066463651337539813132417440058148205391306746295955089189185320929636200262604994990040887815482112480008356851464453106039983972595625244052435709355563936912693898953125858648677760144358505025893177217949228738132649489027782498000002113183512426234505558119421907943861755322864263490687406366582541417502598003065886917936636585328103485932621034085551462452371816975456111328384615448588114790177336054380029785614708825264952582540211994639758058331219006954257298007731273674977732174282543171676475344292711241948284426748572712689528785003919243352331025623727706505852094401993090909932536161603657186719171770090267303491531236878565894499020542673363986915096412991668915947662162120147117277666496862491215069854973703320541139842485175997442635180819784395242488567157489075806418692020964276436073911570481208010142254239004447279243127403847808612094496591021632099684729941459358649467836983348646562009105449493356763828369275855967656397962159992662875879998328585718598835181534446509747118339261046391432498997846829556463452836987967676489372191390749167388757512009825636935377238378348651769409389692931753298108985536659346329405627613360729905242370371923790168235213941520701132425482533614016510304921973959304630964170450625949417765084160611079029519459579389845668010637140914349660079974206024595598660650220150939692696663492031209002323460189992024167589335608227095992039238716094260870446220265647693878024645337628383023793694277858251761037564584955955587750251496057740793814329020612873679281911542764441511273057320757267703428297015737612199059365488672192838278176529079073740891340344998597008775543816016811125305521438256608885409970030405801329873754420900844045105810997606866671402872349576124445923460855121436566962444178152955546228030929757655209192202634082064262266069348930496268616451184462484511755445307405093915035249031830835360035229990553260241150050006965883679065344700034728331607353629325217684976277338214888181096533132385391512762876438328619690145057812782073637205121824872791536315720110375293750260648066091671779128067306663079884674992881224042673681270632810994691378435722612574750277941731846451144392406223236773795019377698536765887214877251024595305622375045687460303101021260199569559475198352024614240338797618173373606050264822274656941347553317487262810150795927651777055245116682517455331273938541684295987702831819707981010045436881729703622980045208449641706251584205021852179652448841481957789281056209687478901320303982145180683011741901759882604319826974218906429157064759761373878128287021870069554733414994013475804706002492572617407368469990803711225489282270454576500544637673969103189194104386916168645020850039108584143088353675547621862230727205311358858183809203488388888298576959305640194081629156833263063227856088041950661837796331189368201102521573316041327374564572115255024670669266493856341946250222389861273851225669080029556335885871100012236245055356334276613619278858112654093162212920314185446002805500702056728503774147635866886972940136222736038985628428823378226355198018081147709319067053625634965390938598779622706625763804269925968166337162364808164699697981310674256194557868776438399086341436087366665927207600980374023622995519582908435794614966088039985618928025206233110922073587220169178338839748688770120541994501174328756904631876291719926209037105326658427039586556718310861264688047943256933660290331426951928175430657486112149183037057400729354872382844147437837235359173754096268834381435045188336150763023147161337861839090453948074961483964359032027514313079309751648537470819777728056433409015992445653709594128563510600562149384667490442864975923033839980345276547073142282794722778124336436577177870954650419142756934021591901344548197265054414935151766793037097105023459090262630870275507820006827705648665502342714210417014064326944523800847394176740515828218643559038804207398089963114735279105762575866224676742803280421324292560304165734733064336351158423319220316427968430291019698735555489678239652059474297388866470375793834807074591188214973947958330794260956479741247461868160198494515819510570010125287633416017599695668136791050744209439556005074207670525649391701780802420331849573058371819127164532816500711279215669237211780709912763345951215428784998763987984425720843007465768934714036136809325859549181553321634925277828503227387425697300786638708141861900815743056116939093015045602772690612102679294942655263345057944070429452143915653474702200950347302221812329324433751431283100006698319281376556531248401096489193430001679108491195228942552894449266085170420770214688403166033605188565607798335239254788238224952219965663567111397637553981032892654684643964335268864566207997863570047714184069951266046451879263346384683013054454490866123448685301200229333120407826219019981223352189942368769440664958708372345292398191317903243238535756921437071036194757091646993238086826486090176146735573267999508287187215554382974735467035026425061015950511537906800208257672134265254345880951890488987245153237921057374727201499471539224843429822401278849206615638431481979046755669752123589281249029430359996869763643340259732702911200278525943432941190899158414611249202751206731204130982948997934138405343891919463590386867394251323533929548069611786504658726335437745202960360862690658157283067253089039187320346753977339605732203079390545504083360219785899082338924166177297027998424660504882359020668941900236904645880946149933876398034226619100455700397413810305480014046353725379603842610374152299547437174086439088463306048111775534569856525863772707428018904646254025480201084384067351172512605707273228252631937244677550170831783513279436044844841367316000099876830552790342600907541420909925603132127664163927788291146407448836085930971807055595563820450221429689270130401733501527982757661175161814322582572757345321952724948728956464743200157435462606240288653051517561941416898673199460041694528086298238113550098020542008682275593259364315959290047143614388638372391033128136610443695300708038813943578881730972834498906116457930006739505435946814263557807179535940284807470682644690868354555388713762581751870841851280289758989458438480663804391795025729218610517335831881900179745187176162387407116373112043468578705931972537967415394481342515383968518859071504285197567013916240230859929680946163522762013229569531453178740859306349674369337170099169325371348648556468522705298424999169421781479488973303183167928871724859707444925886276491382933633598925747327012569496000514670163475207763242826655827636203947774980121178593465809818286351857788838149673447466718992944108004409351316549622462326153192818272819479765537273136721267002375527221662043036131682241772822329062023544055589578975815806371159960737603982320745648539366830903109631910575424221514059209133165960597565425233508826211737779216806228513316836295252312778970138813347297516426392383203549618314285772047120368977190237126841179122111626891443939373188723841732367616624004784324620107987797983574937514605927299532626581681096087909009995184921155309490815255407791885746115852180975156840174990271535526673667432208658352650119127111921000927390507928422796747172595168515555238534774295713546634380186672429348361619319903612834924608148189281257422153807250701806126231695689352688045204596338387151844776391429637685837089370761459786545106585349254143557264560377233587340347052867944412798260203073952183704937997822152481676620750460584373972194352635771348653164804113559424092458955113652779090466916881396057548688084079759508492120736581038091565836313125549137433301172204291103733401130870701867986449852575450389327787730340125206734986475165866695623534549239451812299513612749518391249706669498390472514214877791851397106218069560620911021857173663935481776224720661506921262329215661648131850420868236986832986289649468499387092054048743396843546190182025005282835530124343101370108554215162408255435955473484664619759952026100759312735101537095537893478879084049278348366411731488859853400689287661677086297539265985594045612390945473670248198726343598620031264125706845907795011571946218133282181556547985381002161583423943659779626446939351825295104693104769564614556736159178083886829806150725034649293822998223617277750076708238220006461003473180922218484831653780359447260305396957258260180387775441214267539280812981037116737794096266701682703487474347119771620341604302745001194014363355185162544494528296791040812230680275942136187792179816226766732638086628532777308345854927602356767048104640502383569126177427851054947477620947626419388287024885966491622797481713035078553542601086868493180147731473616689585759920702465550836098029410208341578211890761501643448613366270341104360181615005086222091727860467227432482124599582889021379063806741550843294237965359469886257622999748005378525646907684416422113672597091625974299569188601481566870634063258561349143231912963335951356225330882505805198425236663990064209216914266206146225152715277596673855860684510144218447026373342877312914575008464232804058021036090865538146119575175807092040001779968353562315726824127117279949593264961005484878319774127361306339764426643973494618750156238996847703174365539347852842387049306267101805558114914472868758699693146127558519871863875540700284117890417695421629452600983814870944415805657261904743939489838602548665902110536336030077625434973093898163017584472813186099310491106452679067006810101671517474004780744448509730396937470797217635121500453708505930460656463207731935725076653431481816769927483868417256886082965260873883342808788677799050594421595347861480877136940841866912205923651796071620566360738010562673650908968817481004563299526751751038372509627470045697985737979853975694978510361238713775570953111914357655560095257092632314041942703612691549616392167581194891714501776262244458707422690738961743338135912699700671239816689604864875423246627330286622521351659635214682440238149553420930352657896831657563363645330632563039736014536200681189801452576197173755427356194172130584067062176878476006284877736635313486587957397611000277923598803979045825625999489883358649776797449805911744095431429993562944802097201899761368342800871053207042055554065755393713887429016794009292734381340327535267904776625494463809771260349912137034351387706948450782831169483219317488682098381571478906110403890188453785745129044078757486116910630512144309284776733970085660313952786787081409889912293453883101439728833922288214308454572526107572685400431201293220807991676533954187070912813006564903566859885129230094602166977286684326838704538980877227456812595197065161978948600533311348650291079871819514940005953901473788627364476838044889165521987595326307687123022012484589773817086052682894580028880562701731433455770618326342612942540653904829679492933228580727441869582321221846438330206038533624455397804758876243980398130889728930203902348625553584808281926945356039696193533686214515796564571619148957707693923502949156077632303073267160803519339148536224892915054166732768807863097512557788454250388636218182494801334121880396317699019613867178254468547683832016023569400959752328756317024922514282848212290773185834499652672284678503842514711502427676019024548849586521204963100734802144690123736514578393974677169260982243353494939817569025243409893413139088912902267034624361821856008239300999672999403841336821695997268183102926366841385761774343306856181295703471772906339118290055816653627656299555570303347523456237374986652372156545901881691036274475963022961158006184312416140787127571383692143525840467113493868000690079611341593584216446882557903415617986901508319405058106490263664271195936924292775547762349633127271718727437208985318765468823550308021079811046589477245924196077176764910361729712078207276879500276416251309554045643697942289487874889782984144977571094983967041026641481368181526840026234595105063737889455109779407091703364737260140937777823975270849719378353361181722821559521512152234615751435385419290069819320802234430428750871505971813492605692773825346417719010705360124569738602334303411270105631379877337662534195707327657814685170886690437046342450777070893547077544078726690304563986731563911955537821415051167749275314135747832244726694245047584023678607936559592810513847400425588321825910213119623693267228632387862596044523873404406859170815140504044937665533416484685502899154985167499248194898294896204135821587039247923160060235943680539787793609523754975944837156640798113022728696172527814759325450879726336066505777174985680888095179664585256354375609524466552100404071648561041874558095813408767295530071166255556768905160754397331412847489193663657939714830375507251338190526038505148636508764801625950565982615513512162561570408711426595391760236095245237890014566024671252509911842899878042185390171300962724608537955905332077716924802129186969280886095675459819309441096841049118117856593735215184744812976146062873411571179714444325754134671918933805863486256478275239104207098470151890097638972028168135427840282043619364845107721725732211926887112612111302888032253469662329056580864681553796528953522216547588436438974098127045333253623513337130119926224992185392936160464628358175912740344439752266465202590428053954881538050519289519008302791260403036340538061911326834108633440992853861907245478479557536851749173793828595410298761497960771103423207415777168948130880470016797167612769460728747663673876973297689322408515251923117157712112163325493659505321822819861446060154534109270114004748493913854485310731846551704604084719859298491243504947100884561490375083896925725336029909772517160571792468063358433964716122904142387645635488215690304859448270849941392956543895922479433085060397115206127539558360465426253244737953572861259262004706226486768597707720639277686901977906055979141531408308616279673235417852735494681069294227566191170311454861857204076737325296489260146281099924426289861497653761822305336331605568205895038396340968982618428512927877847983387510578918367703106179536896057013301928775455732375054947287054878265513944978337134606665408867808895299363395724958794385042296344461196171905910666066138251335829496787149072205371329936847689068801464955749679023884974293882838426403973513176228766383212846590165213716510094126304904463385181414819618478827694566898530876955530652465974620284780531023532151610597791662698245718444847761933797678784127945587022616310784293190370993270828608757655865435328054392945281510574028638295089318808060557651252593656272827827069800966304943222345591014819887231337156286909815988091778549876667303559345385470997952342395295540386179345393690593621357244885881814804042745775093539580685733251125794347197372684216598590048067423567177312260131503020502857741728082854123878772385306593580232260267113390272099523530248223584544254391133158494591311984087980907753470939316944910831595690893317663239514918937562884134350381350413420715598629850396312886033918418847520990342844299326095099853254255723329844137974696996964666260209102884564796941301033450696222450953301124252792906120449703116555030911088981070622526594278151969765794299497341022875414530843251676864319370140505304315725908474754408713319203681250836254954588223960869107449311292381994589210794145955971332569481619621182721895271900905167651409784009423259003798254959344115600570060996245733643724684795335893157164906938255181652814849088494479283586093113607791642229384514909703484217586656746449412662972679429837288840098366818119392836019515755971290626337609795265892858357877488450390551647179463515090782034755460354957009582255194034855230727722879181637764310502069904144467190854931178968205128341456309251040911824300674117719966348840116339153221424126835404192271660971612553318694871420557785988753233914421173697618691501483506083098862587160297877024285999981611589650145456800282128392794624507862924312402623261876641564311186832101742056754154121268891669187322049210679204512908589839950597196535772394315761612635702583126681641182272087027624831546198160759210337466307911105677335365594720886293617464997342334146593987551218437181732575699776713219529202874970906211016871550319649233191057386215384216509206902865502673127819422973239530678071048935770878847796564152277840817673637105655501868592767771251747218437365102937117358734046690110952158537226308540296395762821000032343539884580212980030912018059020554164927438760281919751869618514534217448993128535730840447400431196367199753598172313011881208713925309048589637635944715229845875055662830742901851488619395361888287753785735435891280227932149866884616796291988726935447409576025791968003236006177804456748521097403765535180669957299934036435847470304633823005146252822093817466130639655965542143689249799995745549770171713780747533116703675929462440792038467006548137162912057007041618274823753353538668835374564258494022020534653906949039761385984985730524645293067298267157739636077611658846145939536773321739315188704481201777375525839696209998544322322253625132753139252160817274531338601985878255623510215385546532616574921255002512457606390117707157765384910620597648502801198862125904997915375443419219398491561586442548922866010659089990230078857282222921563103398311555794337529923921263636039542597838775477745715913935165099958093980336766290074432843753189237980299932011087133129124535182283894787299956807230493551111674308715804133085875600687109064182017889916776746420787902353576547086139397476051451908860558563435262232190105821999495731391425507778766309992614231174432345245983195796714704164971275048811459345377612588463497591825458241403143504811326112480356028164472600183267372045973482708179127974867200503261068336774000132839904028738268302488209330323810941374065565676916319106677644060637196934007785329610022750585224650091815848682646085018228781588507184452169612277587786563227877250243051321901936259924493956891806272036574605081849170020112165140660031330736747904916239912814278385879207321341564810988578102091615270079435847106823755860758907950182747765371210873062044301566299419557463837957622226743877251663880215958668641686080550401936801520089712672885107123940478957642156421244239445003969378997909525225847707567589159771487936105353248558939677189980563657458797746905768365483161998182464113238638888911512645833491375722607303271634609460599228235683552240418853832623676613772776374416536805329511370922106718674137492132952868795736070567459888893382280348614506238910223725807619268906640343121247925146483056253943215083656887270208681081187408549742372243420263384852049958144954536434840283371237938843002450017564391546103834192511181889166534570381640319503030039552194454831380665218432376125227026242535662367381697598616949204658660827843118836055512864671744356877911446757928842249516896921661836285452739406552422201679172553742248599330605893250293606671500731657891237725113251986357613008082439272993319002268707119879324714321990412371484598970557291209201444778509038740147890370805042230789129571838222424989412522471614053181783169304774011864877597500514694117504695393630873127968680369562801435184351865558085656135371622049976094576093199617514953966682260242891137252938539993197860894657242213819445476564737586770719393288820251964806155005152970902735704930573251186738614222740057086712078433468397881356303409283427825471875407885472674736430585111461032894351032836898582745180719058963877038058433343906159484189591328874172059480825452278365764732673513327035689254276048039426177452546706925396526586628673303620362099175500454561977186748052142855873408280103042419164752328025914876379288311435591245945366869961600005730417822782936870512938803183607088286202502299621022467628013855517595853413703966115080140403422163812739362923046978401771823109623295584635020136886696548030436475554848237328232739663757488172700473186928025350092480544928722117294255191499310469817528075439867732948763333175091378870878822720328911489178013144886482241039937254625868478292183986436044593991507568486953499737152056239568434140283255636429217574818674232619192874475736589006214722110307759055062489622490510170202813058322665130905785803300881865915185464024319551442580484088892108307037709737983174416005439212907623704526196243634543190540344503157494305070628315702076529659498276845732830253323118272106199438342956231754614068690114578402918778847563824058168100033744063338148990906356151317728616478524914732970212411866229923569046974602835151925475119702918711732537989861298550796232644654397439931549728447959889426566508749302088435379526993693344190980516396180456432331288937446320823536190573733663412160646323634053400630536748435901990482237421174446332078500819174182026457565705875336336824462222505847265339932913231800673116983189156939604571872110937702369587288646498892252412174584395588340559734166430095911372031327676269977862774749050940282542881740239023900177870308727532383777258033608378706123653603222590572814684547665230231084931808601969895808472242607474782313411490423191081658061702958161650318689007153648380794606702571134715395170222948483532905153421371618674114440000425523631392503600921045334601371811167127068329240434902193770832818265215528337231980847074073305860938339527111462109108731109075060467242716229821979544615564935887436802064479812485247143686075076028098700294207277695881218735941286971645940080717637890709717602259429860774057810578757867842780372260965458356916561216303129522851742652193525318924362590737392363516970048070690083146948393755590055065136669641845196242214516475510571734762461458591622595834325389890686170736555112960538861632386446241873608108489544773896515641729714235356670996080268512261786650884137507256679123706008087713899587235881369314449234467175579845765728448662146922426850412537086214868549663087620136507665803983145059413189070603279654981314174633040515758772546957965140349422103583481986794619611886660348767073377475490999890660768509201577596452366335963560603203998235445466045309790611235030025970950369226825594069274595974924789203830779156066333994277663531854841554312499276718301988407042134352509253895640958538420996118660125538058943556934356679715204243403065389016731206401844652566885468697762283908344237967737029006175949589828002351270075303955565786547147443538000381592061545445990502789478164319344458052809003089628376451266510216540910565441543812158165342350695049609856453166620835725092266087360044929694041778304309127686726305288096815575136618834882429910053153614817317834246263564045898400956858788860929397900652475298121890598252048053308961671283791260811447835855934418136939837358321808717985891391700379815428915667334511788456145441396532941269658427989646010727079098687616034818830045023127009883598155494346888043729587019854476259658286747465498634673664461626722674224376976697373408741982617928869562294669306158642525584981423630821001896012070817255978734130289052983719908256051795361441335840186520292392506181955833844601907712711385504607480033907440483595119444828609175027858152164548995198205879274103782220388367160060952187776275073029543629557008418062589803117573849878371692022016359366601715090302934286249544407612220163997100026800554039895260240842795456870552132241399562704494520023811805067382251176358207876701499568466959955811630330211739468065393724035505260840850606968228826230904959971832066314010966833864539280437847839113844950213963458176884194165430796220306343736243197861181531990636687920002919826356725261974728630292112127231685724045517979740844801713150692296248430872295676519197189813355212906664699678748171081164169846920652964964473528577912530899878369945705146367332136016296216166160981591610511298849227604777993784492611321051182331393945451621534225925979024050175777498065673851803932888032112404743875873524454278841670124106365803018714902555406603124700018034280402898716967158863850675073957271575578401929837817073065639559650329452477413685431063625879660555796438637620256745108621899668879399221760973269185946980883863869351518972139694604534630695425425606482971088312388254903860308250967798378455461205761780863446566239284906386765356472082891333325800934074296834222387803790790706003421614064166016895003472985197291785665861767758955695549216069584992923113528590602944681914679235254867072783428323953902928799564300605561851668856979454427610602453916268945288859919997982708561899399585027023198671193079321541703710187384109138397539017390462957081632220297980613947694983750757500608389998639256394213474163894769020558280858554790835925222042206214227979553267593455429926602726784661270262732036958146845473367427017344922900790425778227113903157503626833970461329520249077142793387504151704155686453596296070925395958266050025360909178949300331048463871145032963340324820303028921261476488267815217651165670503132643309219635130882639564855981739925196408145848089477250719694115785678380466027805633168310933552198509487955064640433190750254398592549296662816346696256797052459069180024217328335731017627615880745216009940251418465932052351445232492221763266537951001370440436288826748005691091340479029952337351574841670095543375477460221342646086726792032375567871653086975562794545594523155194389106945406330894381629412633047140521279388294866747961568390346860109136228880719099108334543733215483731444262075043156650427831970440817791344859366838322590077686087155085284694662235431472678700315041419926938636392927801201894539941049121324633593284986485368272567063175094232612545106667935055306811842693973108769219556450896064358343147434182615437959023982356702330114699704087270957205626413585436419472157981707025626401072500721767364170799196820567653075869522283666571121495635398912462491013308127883548891594421541629883988654327824833163912945787180311840015634239079579876641709211570439326845274771810433390959504896405678209505637091697915852209555649231414607120311885717297524938885579098192131189297182687046082781904668728638497792192614801271225587654787810308881126256527076954185672447207359315000157165494819151125640681208270402987402503872992361674373189332521353693862085793032193787395216323573070354877102909422590535718632012037052852515426171542022717682352761603064609058252615433786506425380362392561435883892514593205056236464110508373130874996706710897562354757453613189536633893134525178612040273161274139278236418670850721594862226683873587597974710446280090903685557794901696486628222691042018253519057379047395680873393962024595913570827518670738646010223322800506714440035253434107506320246885566642768586689211361893117004108180293069888161611731755747568717549089914309529892127794473583045456084186280205103196911968107280943035995231526863296819382913855470844285246156235496725973711095731032511037355505311640482561455098383955616752696365553977404616150215680216228927715675712735526140357010965690674184594430062842802892044979416636266059144793453544052275241601666903894616644083267147323668275803961410912602245373216146292697781744524045430482288209674441724211429186258653556401961759265253437841836644697068773761215009157508639914273459207564138955472116528873347569427372480031026086810291107198144620887095863675723779422009464346436282049115185966597059442026869765419023462814364504525009751604326236279471526272714914773369909905697653677372136100113117741363101580907334824144106529130106586811039908073266556958062589874802028901047580922241558118987902844719551012082156601435109031959782219741527977961972280947981055942073230273830012089102381991427385479869872766754602581543414333727648379925003046287587370094881485107223781561059735266028008805150078403918853127962256409485161728248801228410982886060580444365566092624316312302626643630968049449675862093434565565017940408630621887761778143101652533488510884605500951698712167952168268686852759709058138928738219383260270150913362347671219934346567814282743979337379374213277508878049536551016846379377413238731447669189757637327002591143238643293371095670383508603785474578893281063922650048045250446948986549602854609787352103601837773226084802422128442396153371914501295028412915790141130068457490258359798324482275638898869990421457764801871500854371270473034758729858715432142973341122240134359540763374038282711365151194370920473339412327857146300893591772903700109348773785239672299783955618909384688055520986171349973527068500650108640981517482648229199931006553971160107626453472698319071219758347965572659253503227277460494295760285426183051161383685381447024204622158765263341866508977176399503872270572778392416225742443758753004188742693956096031810912219133964681983670889432896605475397114702906687840660157553227634311428109556019669314036202317132499626264744536797769564293279166485640612009901945609265005332907475183761609508789904072159403357663585100684990093493894751824646706382596454124705714634183202814530001859624143492438505892236901607231019148594677995852404583543921856729857655626142836791462293072653760884567954990938572140897142875518559164354691740145488760984386321160413694637770963139159885270239887814627023377429326738209369948146707469081287943660915438717922284670596744194751019629754191550687562556086754081975856309995219917825249554717326054829449334013576105511065174603922420411502533019645401438962224259238326801333707356410664736875300098610417724735580292460730510763538582934922549382026322130934505972015937131546745051681532895879683282412916623946416832350551762181808035660048315299725660805936621122085067795661245057035869763197767757394456762116003255045486188255651602352258396527073687877492503176294784296808151149752325169426013374597567937008229683464896952255320760310062195414884012736749557763251505427882927467783736734720238158140920865424307475976328645003712155603634892849308003148358795867501092586061322912174367529303785623566420476586070351394990901274258699298855768673436142594283786664636693102704322652578683625455573849817038714847277274549224255733530041243805090034565044755344704074444740205365878671023069392577311392649753589614615023772632657375607902763104829094943149034412748827803871727323054001017050604647844781211237214227402521603380159772518201259670478501931618116807423538596985044509431958179963381522589497550601697643781715073133429459597385491276639961698382892751501680670353805797087759836984658346361894638757150411024648927332686803782708012136354312791741111148526751338695023477535631545252112032906011378300984661945792699635210564883897663927536085853069873777746711895220396345540426088190255392422340854197620762986562162402681254618098815376078102580087543007556499549581599287968130660804922524747852354700999235949639385910786674144031611982861157153839732386318980727559998730214468751119066422295394161555425310047159252517654488947565669143511715897711774561046436566868893393281566415633302209796166944488625529812812168999296336925218347495188994028550813907854455438726305132098425699082877747877419814054873993243750706289432721933396727241600198269218105994110026047202507026337452673930218910679709218914412775776459316959678278134162402407290270957229829336461658582385784290235710576182894393998208414531461230942609665975700998252667171532336248489891683421662813095471704440053852734988977106054816853831975310779797960185892927171839390987607178888184947175194339299436561174397155887719475803326344292210201401452280449490433862527440788428752040124153602784652632627243903319682686532519881217638244101055501038606769907628282324188535029394629191767342342439520580804692676505734794697073556029809890553374334840882062803244374151778996658270047047997113899664564042484017980563446048969189674155480763197588688652092212314919986166384563648047934605191011324574958290252549375571948635414958310484346057801185484407832417427078001945101031687676722314344158061978122475482460209770918396036282207708908992991388941163770050626274496826117780739352615533939410971972668016047985401078580638426466624240114744832635515855606826033385331658942675878455142776738153587123399913249649623470851813747820336832333254396083333150276681366044793328244697974203650210613697272450044889799350923752697826472955038984711975413617534952873884613566976167044498953056626838584475464808459143079141942280784237346148815594908048307435830865806468728203072053609673882563784981701043164062519476483073190827529174330954747609523081695713073355116649948356166738039849687245067081730809294400507074754995357492540043750741672891437110544761303987013598323393199133422536537348889540207457266557361688853234500460831140723012024465756158944134268839914870786078000611685263962151451563017014520139672336370284539378293058634446432632014352651131900786784597057366038343518572965027083065901015371108042000169149889854128795219896370478755799643526032083032748141476832820099998060835454778336381305551129463701871244460472780932500615824120390746206476066158416066127920233631005255295712828586212556768512948996438678709178214231633813218296969774057003745604812870079588667196072481263309732708030346425918290062062860128277381520928070208018651289080410181923021833963246093222354521929783976989727615064829235337803238159405320124397202299717450418537363111746805809329941652988331243949593108120309331870403323592456200724032570186317551177493947466697841990201344743123468969024934545961095261891230984228759116040379642899603578263988244864393140747694269679585098541956985012700930896233634344587224032319316564519677943300867907330004151073400577380364981668229994501405728103401107668374497984218680873608571961941310487894090844180535879854624764017469296068162620241768362902387443363420157480624290091191988410363956696008665709440240289363798498200750477227703930236891878252420132114919137370889561536273938148083226844874025569447251846179053147855062337870107063589648729745300488901029220540833070993126105349542890168750413710609480481787447201258875890402811978592312363928425844461318770466350923517241758715911620209205473877080065940345643521918835398048931874869112464050552276000350577087267906523529017193779548220763847296654415810198653191200196496720536242861866534887999076367228189886240622311004953579884235800698575881177452200000453660325270657481027378863577302457533964292685012440132652473100647948590644405046358765626975058206528736742508954389752698995119535832888355609227395153368214167875198693777667545418750591445543073199645627592220526497058804719604384536054207562304830558658010010513827390182536884627367783968196006181554543036925308468452324461594907268368166327815396633292457132858332256641179824883410276567801612694101969569731529668657822699693869834645383534811211017071823865570779247763798958145649817708606996791765170141548338464781935791015422415861731737461289677805613046319214179134350179237018671602331068508466974038247838046487044034649991666261584487191595694935561251992873291004926284816046460108157572384840752468573096437774841468608832489080220452106909581254498040269631341504518617980042076169459618688425017870414409738412672944533401130327928637352752063098049658171253465437306118479248133211993745843407692929739641859223336647679599412009541567493974100167380982149190723390053701059730314689638766468832505815029132177582611067239649365927724511356370723386932085792426198054819321565892569895189338733070713772699168412964581623851755814582658077074667447985054595004850949185683085168137929906156533858543780505804070898121414901844386642009328428783273925984458984696356248686156231263166695346350500239588964135632970962534866221813658500522310173654338766512535175921249764800816483461733666748044123003281166033098920803293984083386972123951510693195190320541649495111680027655895704351020332857330327313643466159968422592436929775568010286933671609257116214593204308742687578687491208148358452766432321195721328430102833002731699805472585632067355374520410713817641832852894567360997209575186351119579519372856540937690189020601003701845354305435787638580506255034413735040980692052668715908867876716653842549774615886934990599341179263974959923893280257678432100753402277128771018489782751809184123966904353705492372445978950835880747643736597931170995858453391343957293155746161643326617354257537385252362745302349500552940871723769247739203730818208250354459486757000496421403012101467576040996312047834400486928191752697901993640290378031628000988765324838590942873001139345555728873338274966920104218184469152255679034850589262459395838511604149792973390230899414386954968486655417574198702692095170064312717234397228926148357625664067500938075554716772658181786894231753530647692869420706585600963654630072056652020477558376366185451596408642285926034955381793643523137385899821860210868168543463680552612010036004057140843146362990327166578163136636447944841824382183452273519290899902066816466460605268550898246359522199994199169575720917862039960347042656780378164664701159542172893277881625817427979848906034102085917253906324424150047302232062426273374741136730215067478844254113447469069020180210683737141417674781572257754670901635914856924182079655318801541631290240989924205112494583671991292283381410784147223844453150420819862994800759874728024591599246004935952040157550045798616961492742326040327600231083187391888657264037358382068316973817043852848700100287044446610658606497346745342599307641016636400073822445561232863171771860565511676171413846322733130379115407983605577527535092945872096698893260184705399443183207991055982656861162382986232590918291492864988732509761187827212935042712826070876401950035189279290170334660435693302722692124265400474608909068711347605154270626433266610952372709273015031743551282633542915500465474942062681647576852818477834524517222727528049834663465843610898008224506957658932703505884710000293597405462868239776986911271556482219919312205004774840805759805030851461187718376429984694514502272877628330742386719291085706565802138335252128670041953786391507300719288270292483255112971888863230577490558546236506031084276490617882642109088296538111073411843160028394662611469978209461481736896320909946332103962912330728227677217627447173470553035844425156176516193256162716815295563230498557825260495510870089863348385665514970880817614790016694235997834893855583972588472511820745763309546733507056707153431382513868734082600951698877534816000168556061447653779615023946844773106450275928574215524898066605365754695136627875715590491082908912388620552932599713326976947968095770665979892147231322328624452000133426685942923189859164165622554820960506849078499746309947013920665109525733928951950971789402385517084798633722376582039323127006434256764704650957822291643828850653879805892764322287645180884517854500783513385166872777114576920212644433668164995489595378354670194873412044653081901779439864058781576905430429998395053801637876877789823718915444375710092116860898384879206274989733253227476884906003129056297645835813355192705616537263568261283092478449707142399100139733079336276809925249800180222764998847201477800144979374580466568936602757952133037147016647907650647489095729520102717336114402460589494977890036180191525972115716154404948270302824347808063138539868128725714030007414668649646618937789537998644728619416806034118159854255327047571033994638139561230918410784222456040226721909850654357014722052770134095414635512722319879820910558684223195544014335974001284495194844826298035712477834600664333444598015160880647862679865166148064561759706971460501038806164107747276661578555114633173889236207757362631369771419382512824055005435047216935732629697867584906457308674418616110166548076958979526250038537496491436312575396805930142225985772603446377711172326900987651904050953229236013985189562668143329839493889485136047668735564123896048569274638849711538438463687806878587004684892456912081393776971694757107975455226904952016704588787560205332949018284767327841963595763201106244907956405223646306839189074835046182559761056417375158513122411570233822807279691669450632302106025267532215401469069647682019053851964303395932798502168238245707355152929427507438299821488957656366721754011959467607204371381519831968702643885628251358322017343410355824050298460608201255418965754971339875826015406348019041329531845239830743831554847840178441279743509914671163722675987846743390144078056493602937620957777462049767531133216618743947117459132393468357705360094764617137298468593724784517770715023504140448402576444152875965919276077401937965743886424499053795498391656158562085829837376365837412543436386539090710783411923935496226117830659955862141155298333951122640363993984983725371087043768300244209124261590262622463936890436625816343985338395475217884420795163623192705197137041899870741755193501332912641613674190282305524570933113019424577933928214254348550012967886357708579815918164567274773834276537685668055116261359750822406002927502129031429178528954941600336215014563906779008089263436644189488801465189391995494129975945665444402341583598213500396090215787369753913373299418433743409419086649918230208503185406688254908016684584158860815674962895099185592518879325100290696237971309561362862627163922940492515592978439302835437176864254519182847378800439781569220181828629014411183880452194134404932550644430083202655720052039746992220151135070768201655798500689554275798611552713021230602639527741100396072649257542483633169385188475375013651490162840169098539983141738311842202755152801608603768435593190122919316186771716058389124239752693813145320918963267497712266410091837528892051427755393450325911078826270109407398881466009955841849352082339683277023872251967769333954593234489604596411500991097845086689800619756597547435433946826321168184072589949787139111031210103788451899491641437238214815624259636462279791884049511897087215483821021019750491984424657223321894025050936893752645328779254640841054098157294096008489153897015171003063346807640773250607969222695608188068945693540875514083994216441415889110774670698034640335376810356510660804058702985598397357362117359651862001784069020233978865952380774038884518370911894654873139448709999508244584610233835589714100195027109316357223107672831426952047247540969455810098755039781625261662643445382163936268191264541142620376098257946003750382063009423477587460589347237818613140391587355889354698202906554191719312112182765998214114063329743593196051774536825264494970438530363049270330938608136262393772005228528059825986063200443490672428867909699509766916912730263679480048584501841524256744334310007070125219538307475944611968834245417774311743510800576422657639517137642401867311897651673985602920809799665761537499606527764345062434728284475187439306885115291623728934309405432938240232280389817216037040896114654584083023630946416552963396468186474590355032973416519093097796313998637595740171437284132367020651134037810384507487543845626395424094677330829066968539676445517406515334249475392526311245138053324878325039463641280785627929638072803202918075684659238912396905258203996913677717090473686350607650192343231309577012506495548164860436578145710662505606334866656344454079005378412627944106592887226454939005832716921628799389388028648759052412567167271504029720076668127314059083872549791976741775509136493677488892853621113235356959839473863254505553520540983882860192755878002151111929278977900609252909613614693987412343968509113102323845121759972120874454048056963897606284046038926392052765058729793628921275742023529062176351360796489760201140860868252795466869067998671272623609750811627974020893183273894528135868652592364335491039951298295276127426715062408743588613552150053552471645351965665886509189139437444513168844483240818280616376097905386287596642384402833699078145050548804530993515740826812872395938204847116292459391641196328465681962408161205269295327631788000914879988767104325815066981966715109434703287849332405041117740310385200844369904728940305794207514893640289232438313008554844038616954815819729781905513036281683482582906233140828000299985656617163874249514550378965431644651126984471863029018008964269863075731634753935359671117148371451613024176751969577291204686088086647844702797986631714045434354053400064737421328622124609306133153632405010160178422450212299406594018478136279813061597730808159111687192117900909177558791844719801789053134173176963530796655562945024598960224877890220102979013342932393150469169179735175955660243752257789461985446753065161816543624100615708906574136281568895720331263972609890303036910332509341234445654828987095575050341916019477541354982461056627619039246884415571670859314745833743971571826760258694929419323304999448321240529170187054846144321835009176862959802745833776347475174519520444541975644071576314630873183099332014331314005506933840688100442567480948846519685705865953001867234905670470173775398223004659977219836984581609522604887443489973337151104707027699146990428982667189715099621514210945716976182476193577758162284127916280727975607060256211549873458075015896109724403092383672819116597235073280690897318695908552769587698686828132567168024848415367161562019212516567453929254885497797839480756866904144865680220756238047718525049122169578480201080144212603659042025395747746137644871975842526918963773501848858323356478932952036636024760392175974230500174036195757463070916652361660435652096257119089627480579323787152665908481281990277424845471439499790473196200398450582537456686667681785165920262721597547029625779625279842332663035609530772925765539903327689278218444571204503558602993172642706612769840796226383184064067150121503909670724706157653343493245097284688966442619405357187839601735926688191673963934515232231516258030446832619122857178917251542453500449612266583132566487484606365437935747967872428069055049582379689022352957150458264825229968977787051268473322568031277035835306084695895325650974287959517111604377169801610847254331757401729503932368859681083357157778342680243256527150498048871852863377336723245688788405215475412889099383891800005810308438950692666814491685197650957674434402291497828403565311887003901471392974710464426847945247682957868183799116855412538480990249369899383634387661111616521854843034758372416252490712343401672037877717997093756186731518015205651152124924877275275626870749300920499804895618852167941911429999320631028598943259612480330464675641199711270309723167284598495389805670304561907253037917343761772855274285071284067175170134672124152093542068313170906159807413196083626588289643514118767529056956892916824148624610220088229402434324286118831420787003299312373944720606916128351480632851673176802075245345191274508185900988567133862155550786208411619490916854501663602791910256984714858705793745698181287100095143780042841116273589533655279687330606067044305686452024271688006315635968292288497060691660889349622315680110949268145290725295442148345691345790879149434823388117291960193854056034774729721847102217237754703281928026143844194170508828237581832550718362777303372789682328941975174356882679481978641248223564556802806624429948353870664391842896124261017332944187598680276147108298939205846592176161495955053794203513757543971005534643298865394962549902968191373766885052261055690884488379676630166712507495761589736507804880777130050197944952591008556005034698757058986774244346535462653433721068895243180200526898196352204820380749506310782520382693487331693983658611740095269486721213368644829761552654556388923476443036511845098330000876603046842327088229741234209872142712410435285496505538528925296332165544866638125220941178403200045963147256661713124594040689412555910874827502483524818831502938939590563560923522875283186579761571074006515251188688724070992220133913204157901283428097902558478167773115289493586770892711660391577497721141854283500299418926878181093008989524133028680892039659143658115985772507731527345980130938520186771579692884109159278792277043330904320271187424255438025721457504148224940212144337079093895336064022168210810677477311101536575935415959936096745626792221885387636650037278917124340746916193513102007456921329552926058683021439541608659217187787389298526230897415179691571292048844817959224947773655840568475431490085815603027189144009735848479149435813925938553879916162147261103950154013621150567192652556920384496424734750380805687410832288707235493399886751093328624610601275250525766429298935112925209947511193791915017496736653828870381751310688124379616573080754876144320936819541791115542062671406267250025175118674548592112176649134189706398762541046230196566405685785770652041104974561508635679450430950157060050543637598391794504934438177029804967158397696543361372787169104027531172510673400453118010406159447434369477006140625441399611237108924042427654737006927817878355150907936193092171334185662178388640875108177411106326941617751168533691705624586776339093516377206571049954054987776842700708200969705458781152088414859447679268780718394141467770341977605178566950321584366147407133800705315517659241575489710225491644774401152936139746726953603100890106284878156026013343396851936167709519056382622403565255138337886248555329555700324698288193661970473273700703866247657028480203548617651041810719549866667908928470823015836199621014110640465090293913504141652629624346042588501517102518864766125230373612340584988116599995339023824807770288529700763901320568286746426934675212522683129123676429245153043238240300957647952602767239838062879698966522236401110190794847159269408726855608468216355977201850297960718717128022051892902446989835310473063937542020763454574225036905641074868127598253626934853806248504785471557162401013896150681511353371314451206208650065165881045668229987355387955867890330316167654877327610647478763900931209412791337101475773369033319646654215189209319813361466198060474139285381249509394300553933722697764417697044846549079937604999979802247751591648589977520969521077983571116807818031281410176762379286097788529003171938912442149041399370031912954319812486073048679493965005317915464434062364953235137586468896218795264005025094209998138547450491480824205029983264293936112609535885136169067610283357124022323114734867731148250256440839857229050056884201146610969095544771171494974178780595265019982932837114506787090550601205513639835547695587282547262183191619014565962727989549208925023721138370650729289610587488356978831857587179710913381026253855697694523601908111833855622528980005957804506533153460506658705718343562664231542802971059667454049229015091923953242704783249561514507959981692398628744154358844017359444875069714946856542078053403727179590063584284233890450372304315565650447911632218601281990123097854433988245803797254325865872067796016225035043408170234628491729542531322129720924343126551402566827753453483264525679792525589842490181232882147755929563522873149960330908547022185830925332749383749187160203915174041499249219575487352127314624435041212405400922095323754532027378849335235224405628109516304038635709185511258831649034956732225240056801902982882367020357929510767456913199391342819331251712526993079155139552799363597829574864233805352998678203153102451556740225272512982049998893296483680336496831541444722364868023945112893772152868840792094737073572319566188676545325009814728497803010853779985690520854251433450361176700035433326028322131725742307116717249695084570437257240657242371597413388614303232553643536437582264064644346536724306950526730044678672905367638605753197271935471614421445956539706149698726190098300942046722531963996481746391742039533740856531524262141691217886171808501006524510305533838997449626641526572167763054225571392156436523555587659815393736804030969811173782161579436881564256913085603738897412219789697920260835199104767443507685861560435916018011311886853756553750480692761270138611087186832211401402562722842082406812877718719562995044814386342910716625710741691133131050636269778866338930240128036366768820012617984963301616167668451809778807095287291374184572856454566557327192119552895644772808644566430601225361636446183948336254461955910135859354692835467825694412854539228812265891744768247299925626538745555699988650551897560665134320613268881936625948093966123795010295849741245015576421834921897917332182770063666377952081355772544291914528807134129495081515725428485683059300190732353599262309103713447852132987763340470379714742856380337087071694742957689637762795799044480014740977841824876196944427056289620177758753618622620442219755613951236518655564256243721533676934854316931857803963251183896303365485002321655703574073525350646670518822925195922490897362641957183496110112630705153466032710257600753472414355823185769866804638647182401319759091937192630374849417519104756119382360895203436270765910045784719806974038806484031392617231269902343379078017857257134782654952630451235040858745542126988795244183748849873924041845325536662779680552658659250689538575442634837112589592953599783209258145781957785678670906264408429306306934928248539530824402622352835850824223483086279436984111041505181803185134053690606915133427368193100582584870858951533615959801203725966494519726924576747127889159585640551165522071984955819626028679606772081251645773401563111473099718179044117865407536812340040521759943049561139142472800074494224060835574947858511466798423949867008594101953709855684629653718881845784316956431182432972339041038362896247080181619410972366049784151001702820848979760348226516231770769520604541041631861094343152889760671675514088940803132871875084138234468730979209322816066218362713257823380144153698851639702662566500011528209190976485770542175366301461023951200081728707847097146167308488196611428610676751079818275195789378361637929025025742305227277210269921273779674990687754337713291327034937317258573639338573466069383444927478134392248784502463956627975881560698635125301809872219594536267969383350419620619036356693019691872564204842489751767901785592262319704977418955837026281328230199691432549128726354464626682930184729473862284661266427758317124662611305031926470210542809273096266325484342129823876947781180228778633024193869638993899370310251374862326270169085786581408837490191849181503106432005699789104794471456372716625193869913134556688526298816096679094241781088503619505327471268920005356391257055099813092593883117191682870619755668997123190429551241439102999262684527801132796212035511149994200323298253629816175573406419843065569438926230340705815701040866897163498665635110869853313563476598670866801608065908809018883788388580556109271804598318035447902849009137803469234446712864859806923296322923986835336284792385248845331531497711565129824842914052441278544784351942626845209333987786855380134591994340851621551885667071674812865319057280577060638724105847164808885228996052484995331453634626121556089111196964447835590532863617154357421802592488963744294014463267841041074216699189635280703001366814302539362656980522987123476741713702117717537619117876546819413519606393636267954919750450089278722945522059239267087018915352026071572825534657125398483034290611884640411790211996087445180036906921279354018116298017699933750335078913447210437993490925071354706874123754806700620695171049301640004574503459619235192485281185448180477714383100533485530474797686915848619535093888023580510276856678765969242167289560927985778213140231408381586431667780977496042377411501259241867857296068950192675614461354789850708757680234460948614427383689250325558280220436222146166203344804674218400689760137043414764206369690903811503259045131523659334667947309620169616640572891502263679086047215988363224914742071820631114532234860872376607222108975811221282590202517239187809991451720104442178852422390249787659215267163390739040472852034087995578768725379236487833026343925641864391950486404223241194853286721853610939310737852947620317428269259032167786394238114092652903907937667622654035513501146027221595808948610820395703123828369991993169821581669304608419201155708295946945243862787681037008244852183538349822360931569213120646528636451924504576895683902727298823781645015262141006762064240394289383469203252642342338205332068833194868387172322519461688742294211484527816259967731498325636543982962214939586593596878999281103821278813439944036863815667192733329854791848062257115571905713050299485024271734507701311665533231675867153175938554040858107457457888817447431552736215295848755893966136994424180584913056901023705716600161169026473764316478064489159706318145561266496911677446049518407980186999779397218991260798363411044311671271447469394965123362469782374577694139523814244858438610520086195497716430052157722985505971579330460852238520828773400070754669457614736121237134593716775058596660075489572150759836009278975662845536046096861476081474473423593351998118168467271635569854879606222639495864973370472337170565588065638141196367770722445877156540937814620620768242006007690965600952792496396852158003435802967355947323958335033227868272568572178167028518947898994791700284495402078657624551620197510002258032876842033270317858978769273914130925926465042465669567072353296700538622576298659119950603514620063136188854052817136579730130331592260427892188315959428774804531006952489670050733866696171808987571824213998699373453939222942356669379131194480155118434057895019234840089593368529125286164520598281133203591599869846816225426627306483573124885671180935585930834257485318887441819206467458146744812787472272964723036981582778694860925501164212608267952960385490049628130275081968855399874427191603883457396701665400663602486520674060553288231857785321039257927553359040725498231401656040718914860003963481721550218345997391608490839498444484392544074262421516313313015474171079549325883687915663339204127695545369714318204783898207265715777903282593172296892382303221870159389061838112293619376990436775013394021489771895570577532548612884233489856521780768031890701193589422257553846841178839892422001574545884630204939595573798224437019495210670240469981770341526580398854225102665110853651430469198919233307111560873779137257093576153402807248502325404778707762024867430494957989667274733304056614287293580982406891429191109177204743724834513766522827758286141432642900911795254645080388732112486445469324571571760130015043961550278399499930785083057862836830651151708507134929044954301456072324277937455746865480703539029594917211991266008555677542169433724197261216953856143155403393279166296512860411112164451474922745728866134489733828456296408590283260897045984355371941437484806959254158457438001604239090543205879859253598089188847342487585249084513668143959543820300639578705266225305187893067194426882020114564366256505318044363015605953309885923171418382872013895365855989146153010639907966274081857465074655765795078126992671539793929646032661994582381406197770464613908437593699377613510279622330126972212598482461657674500211939011602816230327564904022971315810182012206281658272933163037619227329782430938070564011692888503267880572650916483900395786267887632916457574602674419540148614821613717276637104946938217014732422495055836412262869270089788485125511407110830280056778803196999662908462317304909098045764726452798456216854356985555957702861000891141264618538909890674931178825783855517750521338137331658985485974229662578512182606898417112091608400937555837217526646173617665839481566696020773131930093252328767184732451554579663298680486605891054792089485373979768034311718579419742652266250224583418114653741227502044184349683368720674991461070204810512971977906124757961488758247227973553858571745921147612692739206280849942171413343820115478087010679405893806588005109311624860900470517340881554739902563987398078834341531839519420019815440163128663339247811666746224507775005561097579234637263601369987618177604639082131043074933233200452574316978176663062770368691654354976708164811530461162850733497904248668676346511022002707121628300449132919403344784452680447020985786791512394072104677658892762026998515920880824098001105068322756268875018292127658708311430859647587229270377945927872846249472474956959411351817611002172642180932929671048518063597563227421875348255709667764334662840885439868353106479991920530787337822613957178764264250044841231286970832574805235420330544536629902136264635986794842895990804899335632520776953521331126179938378587656510772219376980047627073715666836957687316265423565824802013391494523229606207462640172410101050265511892534711308294397127492828329151892914875882558146583784056962440928323248603545558828398902491465715946504215693261371460942685887830640307786864940078519975761972747428633997238159032804010867505620303684680637152580752978706228128201751340307277065168865824990599574001678575334385812611666873180797171216385819592695484778695687993520971536780328590042716842070249957239911740050575940699474075565532817577305056632263533044340017472917299216129395249660080749732943001425271141532370541992256751613403797209351249392136424345068693537618952417019854373406430113922558410795449151015657278698598968505519753842548580789182869520952155551345131408199429184701542916471844112155264918878844651514270011813192827675763677603056882303000129150807148435003178693212383198358731304989331853798917550327636540041325594560693155424219939109782547914469087796872582476410931970315664657128478996992565392260247705774780480812154148260523948483944028878253516478745056644725855771077269308229609304174900147408973662339812835875244822389902386445711505946579687525254878245477683821976334176128261240763744122186755384943334544452634342548695053838899803509459126679211656702559294606792533161477645194888332131189223375411686323914511952250208532612636032630720626032632102792758618315074431833261169592345927691380088623379553151456557857471336436973283079656499900260677843119059729105327310940259692092181514034241560403216347592078098872089694280810609953850883283581426019501108108636599606396791341432726274254175568738318416709846303080811008070102972684995675375679309942754227107839256171549211320894971384456240731340745688929814219973578800315671614623338069770938339196148481693232007116759517879614033257736006079305980209516023291420730083852635820855268542772431409452155670070328204831344015124761692117383399551639858265439459096085696592123822818109345412075411033937291802240216714130497065992540605939300760254979263563987019867769220046626285657830745443571128431728808218453343455098522417667869854430153017946362086019554658283416627287449278464175457577246645437256734300530165767716549112948275452338098698083324651949532317280706518382552161898008720386130698875179359406511055566218123250952353519240191018712886747523446957287896518758337639345109863028128073217696935675482921684232076800212014753165400928226116843613469906352035246617132099662271656003751689167048138465665723683570307036541030109745358250449919552532431519323591134133354515697190798613919579636582108958898820823609330622609780458635276013621735084583888972593687965519546916619466359891555771396163200378769361180430659343454401187763160821203852998616600948115378331252573129573193171238342555126503062726927987780983656333380802546100171868238454475860742350886616824794150407031285144383599034375702886026214505123707230331331735128450581808043565455980774793332780327882301224589795153596180697994357012024055279748992845129709491478110215499517014232084803066507636846341114232658960125079759458500230043387671382753952260834035842417125031441709554773972369395854141225415210495936456638104795168806793954256523664682466553940331661331312267486350173546784464538433055758238656790978649686659655115691597310822029932730695300965030440696853167862302800862505876356286122665716077740385292124636703544617067268458898268436090872199407960813917136313640188860456490671185812049421103204629783365472437297153373834457803109540326831288193103822090075598147910804812228354266193999408766228576880732307954231191882831497671873556321557818536262026826734917391201123669156674185258045585910646565632932937296516577935292990866792233357553594264745981198459124165219140610453390241035621423522858269022231478630624122037168250537649241055409339147166848584126830590872746024677373844404469380099129086292481420598158530411487659332565550644624257936958968032049797635303144758991871299955764883526055750140936553834143318694924577503907507513699724424180963094725854639481404491837209592640202466868218581798967235150674920049855552914024754035193439540216724209347641148877467168107262723512793592239396926452853553267218512362618526047010291652392848188002813968290522620657872140602955681062874831330502050619106953144955455127751886423374517882737792259379302432742883218023092076130147194967386566821738251722696169206937687764759932124261975503249463587413653748142948506158560044596015171180624430129258945054206441368050939394648050214789303569513746302766795659278711391932983740635521852037411539188957264792517771605988690946107432911750179705261796367017246237061376425691323120192391417730861426049236229743203672407990719230009380198362000333968959917616774493765751300764144177019423147155184388530017139992082139012894358938597772937800825710152849200273612323096496747346130425549547500743007840572568836909033252194913336543719059927948748475977146417925463886959405636826917182058998786241741310402200128950429431557148218111432486492872708023173581585106618134693884175590681278054224719408697372897001669984420087928871056769944848641551963685149543848391983386431852902967145583951490156612235641473077040519538371634680988426355749345464639954345486703025243918492622074914131542492014772437113990574075674997895478338717307692314702887095817835926507159352973153177455140434818987325192047913748643688527166740410427588726018777714184417161438000357735408713465215656423682821922072141396595358396367783923692384004658718908856472806785023211678933220002584030934643124207162823546064822881823483066624631543564306553837717455907677086173733224369136020342086289972807207702588355114292975826767572400836743614449594497895720015766510168463138724185888440370822865992072438651570509158259545100196094114779041987213765185824675422697522328356691936707395740766027632627324776423333029856843441046803323599927905995261253950757263688623626691448339297537486960361488895242081395702367035785489849644355940738601273595266192951166243259227778910295186666989836600585850017394715267292932579922491295270288420694303820375424370208930175431915823132029043986033048819904242750507626058795651491573021374984956204420440324998469405659507486412213834782808986399389028437976249887824982919992911770354567573289617815354833829944913742670669933522248325848380771095681822426961417638158189090343988237671572580195487926214009817376286221426105112778841255751846581381859455251253811694213137034462301716568402023145777041572775071568524854764725347668218682558475036398935165070102204718861334794794262071522492174150762810666892613598166306068535152847268944509296490703285108730959773717391969246690623758815296723680761500428870376783082313580249305502521309284156354488024688640757941929549095214254928557585194753862821820624701075101550626608058836020535171530544443669608424669932684111289531326025184894493771671879434923119852038681402824542603753620715158109644905633849320055018905769418927474161838638680869614138366216609490362537719908354992827540601425395869965869751147173979919799332301689933461048515337107889293010923129319135011825376538231819902471835565632634678511538786882078217320746795079605263275096267629999896032983671000976978696597917382435570976529773642894701149677812253708850029926748537824781742122566202260292426158877155003603419319421358684946311727904077444723944401922229033386555938679375317836190401821324661227544184962839757377352017122111193188055133625066971550097194131252367462047827996615861956246646897374816803111403916516326098354478375605371244320841988739750161163461592495040134207566718507202535965172227985669283999145499392587235575079210183545025656953857615852920416460570057695124838471100973674933183180663472342898326505140752589390684030968685285300616529756989563259553687736457443548209190892661014675323815290170545576464939731828937445560456382683884226420976096593333384071236250213699777986345690486161168758303647958109336115732002392786369747172838797856400062853002185785149619489179014652017083684951893953065761699419789630937579505987300575634488807091405819908885997879351762298578562405782358825032006095827639876774064057994162193316346036326039515822591098145564278371343275254880038199064682055371173741033447931769619319961244716929186349496960413242287272525110962678053798893645084788720905736846132050685629210374683473270567324871299332734063642175714786302059840992032279573702431676654758412735843599496206914437342319905533828772494178613485816372541752981295680829780379765395677008541488552343232931752230451427548509167910547311116621449422604075183159646616873910459409723158134906919054917552576769545807023229423853600055366347180342657833090232421604151006850434427480720683514744825729029089246620673760209144298933941869717768726646692532472056566546998640056235204407444849071743433749323346973215020839055592936755393653955273170743222030818935078294758539988555574111746511350660572063957703053622127704946757593385642714967770178197881298837663728733294323913854802821233316844681856744395414890515259356238374609675692901130928472235698164372214048158412140953577992013814359217474837663767116248706079197455681754909458397560167540481737605929530896814323639612580132475985760523527491676486837003873585846119787407169916707786801131300181426488520930447620002533628331153445953119822721798530101891653007630401191080590897320192879274470024136504911009295427015708515250923339919644989980453394441134690438225231920862965044066706467967998228611517449166388530169693491066494043804688871964051275104616879887827458619657618778956478511369612618317669922635688651574179154821155530151619293261621124142132997606344157390152914936477768280670548510173166806085862352616916624829068400328047075599442391214513270349978970387927730735918544287165457066046560215647449433979643347136872936770868526619642079825549265932837578856375390064066202177929082552731884071178807075077243343881436019191899188558012514802645787282605670429258862850499093168292720778231673631164159410655132019959830211908544199681618922513942317151921332769309134704215106706765051057511774507707100811617290949198732171609196763522129890834770812706890727656269732170025870093181032287463624886862024556895968701834157260810426917297783999815404044870462181001316954175503695920232379155761297138264519753129482544428443083347197603074887183848318931841060944425910308271779105432718128387002549926033578739195078304731184212928249560503241207942873748126895600748540464194755012068583905917166494179513910273504410664090637224068732694418982650212960301050728013308518466708860262422758831088619274881274585531613141265933288185822153247888650712057596448142750933836987586673308219252159680156474359930412193774767236994131296870441894608083637626814065645341973392694202759513460612808745586190925864992310279806278590441858172377421301895412345622526067938603360748579888182218372837617662464883811379301797724690127835459477292023900111637178249890357732860399243561106780714179713720098904397839912632847356653220059319093776708717016861561945633652418030155908641701263494272166663465559376642156925200853642699544587579021917776763505382045293910383617608029503354206503506694035501227090248412743554770442435400646000882296499551671866907891482867393573659978041819172569492520716944880735819818737178561397577750374104474151878837400500033346165241153726820197693384433927626617532709022821067905467184788280870920070844925530196199597381453495386501167318789155123423458260456073162571491405908510390571283583333479486424910728957828322021660996048112502822949268907942865906745626542689436820168800535200717749967374157424819610889812184422161471946705313596348728733366449010124921421201260825671791139018043197710620115202304866933856225834207929850924644616262057041323649379228163304552397212855032246453584351867016532957986924497446639335499183751239313958987647353349342586404261975651218163578970790307111050048625548412632320539811230257535571706801226573255233087167255351330800791427895850112928568990585563985820048870551564005531639504995589722186798998545074694774152441182390283773411771829618190024267855892783669334295074482637077667821862745945476859275133216881530818763589478121908219073032707999672190491831722693752803071842480245619546324688904119450153798625040645957140998857068400922213322729723123493865855612168468534995171766933143746493735460451398726414586939821355347501661979178056179692534869791343417356674817580882070307161116118251276481575781536327445822293053789809958479013019895195658814634322917734540062140160974670672660183506083295707148945082137559089408171585962200563387965269499048558438831332233435105115393997392090698576093111552047123233751342578482970552949386282005388877611790609663209513929453640963361377743593279574835966863410465169352312806267291009430969281931218731953533283426164102683757736609466394100820135016644173053280419758999331593358299658318661946688139307930046681260498785887466799609852732417161421328681464084008322955572785759999922707322976199848873998168268816638914402400191149703327591909937209977079251288026160038012813419400231365440358067118473789694559086682674321025396497314969468792527732942150244940820477519594784978982262269614926854643736106967872578403649764701042181062426439019433015457572349877578005372731497047534985575649369383867446668996791772871753521381101241079956898544116814146581593484001463317379960327334885184684548814922957678655453271560296768628595644071278854326742264908447478770300992390276378878895690873728819740552678776975423171618091429529489433063771852603405785559953132313756601618879203090492016943399550357398854178598471498585853567372099355767481975278028642595061598772217816428081375033022279172636086267552781163293503402942150556971973450574001005674735185806445077027814016092976843107971058830189119994060265614295120295055037534723934349308849374217918040105337573662122694548827632563946892594187360214085942912638628138121075533142482722088154074871248110649543488846732561001285607252452633389362139203229042979751649301511588849273029326382612401340214516570173742958781662451330388203088024438843629018353067835270290595289935867111625387875503079441602756290859377105356265219944462825404241391787965546289079446360449983383039259382149164523817595238317189688154954298209464832563125445667224510016076534217895635946922074935280875359551884990847399790063033752392180054813399947926478116367704787056635059364691722227191309184674203310727488916946874438216182611173259189656626441766519698007678013611585364924020600013875002326269288582001846902975272684857918845784412028409776950882187585140737452214458600109353235237251950552584266920885161325606549479263972393073607120029001032501636556477661895141583505998903748196992786038484705615458203924023683532517189914399952561991399671106676836908575882192110486640605189275823130326874781000755541219526313980472353435268577827055627899162801274864527331381359711044675691486250259999221811198704377246366131691948404407816569616936999905908940093935956175388432728774725059032978769758654046291388571796474229604924391568241927188825315515495514868134523871696334463739412268997848760342854453944837415438881620578528120807489033377313447302058189166899381623257131533940476226944078541165847526033560825536991973409086808214039125363912440612024872964465133722657757963058646641337581557164974586974599483889255589163296005414726589172125270576844588727326996664172864114656436153856952097624214010941121936999801468759967802690128144690947052704038583846702810850149412801207488023354633179732481687859401306887093415890526945843365497434141170758010903666586553287882412376245316083847830243386150876050490946960748704852837033009125464453431660348053297728975474610114826643316268850575015326700782109921916129613734355621413549219701792179240401069218858921058764760239791997201668062385040818698641836000561817747808942368823568773663415978890256505964131448138530365545058746678345613107489052419594055458702370796016707099546181466491266267284966002002537885509182593089724685600389698832672589421860410281297701342799003747791144720880849791345691082332086245664677039309674918928801983216324676438865731834826461662177392501592747596779631732646691569834836547968955825874652271479251862390285288282505468034314996370121883664555427097812198923594292366771782524025653787977589458084099972010710762702558102475480577235932851295894930409717200670218759250920904227666498804611304272005411492078079828923221399802466902353654746308634163229189248607663187717627803845897567871826395647405917511492151920528906257090068968154164159715286597811628656241875014553343464173679545710381244758204081772212464104973288907660323152289755028664838885193964578429486394181928631372189111997609614726110899872429439384280005597740853704652656938434977988474265871000844419067987400047347174207104894286150194251024406710251500828976001050970038570316751774341217751978516743481850463014759540140941509101804231204722610098415480936336028223609834200618910534828525060149482620099999703827898935610647460362263806191241287971268129498164096184609371603466875064796940278079107387519065880549646229518894706812242527081208432417637987030009241431310071962716143851104477352241904089434347180706093983833528582518209543506301739341466301531412572560488770260017537792669092154574859553253533976327484217462834008382646529979089659241703123673147898224649387481629814174583708213946330522775883966429833775978449320535213385293603292441494467277646421818729366187879898985816061813524799053204239236821255505941844042765238154735488471600489483370343419589588519133771111113295283602460311191577261000759895395109908772646407114255364117765895522289864959270403321871133029951780134720135853419785356662512126387778897561016433420125014415555961293493034340608430496651058792781674049242962193588728485212240507405555794012538708783033499064462129374576559626831762623806546426760827526148304925220512405020867012096252308107130296779634503697828412041114190234951992202628509929569771021651406696765752121763466840755243308585260219625912767368889505358265603452817481771613198200335356458327877463895089459475784598012170625777998272966747406409271298277362821295683287153404544852719232540949112903944191286015825596611080845586446444033268405085579579304028326506649346331248428678802677909060598804345089518636114976410852334159245896949871364964862387396662138813313376825328824743345459860565748818945330737752928593904724107421299296046364612296970787907797433684427438169275214510406012395705266295200343675334534231751234514400126082014926942852980420532520404476870350807584064795029642553519228263307523619251506051903448050483008412644937061693422864595522210060249991164498416256059697802537847016028089809905509379003324377152466537723206293035003054982153762787605887902803118476076910730680883716845668320804192488142538381735412581934936941752797510757787577796235018385087969843940086087591360388621388545077897488082474645384506069166080243258780778219026206100133400200270120013364799496823620182921627835903924792789444789305681106136305277685106660645542627016039193240690113712748991161983442715962258550538908844011490226418907686612218411135223236147002416347037728942362995396863485486445420530163169379238736404368612516988168606995977049649286265965814437387688524208794306845040500149758593338068493294589601311885746738508407781385368625443765082387621230719530934829285638040768237880625058513469979225210421582241460642801453030018945263578043724314300267693824061443529623218563684394298158954373723879166658917928120605415308175835116265266389986231091721138717549428825765983781123725092641892731913888930933749639315897417716282429781771136761388019855103504806243526738310988590824333401404267355923132364912787697356138883459432022383473807165861892508768858510881249138893316936280854146393759131691418303604864645078521258227269770762131839570034574177984985454554731534060011033225526081099553296876479073767451440503215388058684965517175433063466147740437629642422721874996915286493732255675436926026610092224763351497933507590311514959022977770570162388746992856542212911646429603750537962924057625845755945100481725167705357714594369877688519889358303897632947005369582565853695471774397881125751197210595277904952944008142331205592872106344173302443434984701711833305029792155289378840721209599793969564119468727107767667773812422850412547836356085179000386651227865339898036102945014228062754147213233405800139193299778150517160724275918852113289071080091655541387121882738341991403431944704667698367423935351744396900383594154504778702667038248922805478551492928844668126810777365628310709690694687858764069286939491578741926152722710802912923202802150227075542959565917699408704135495367441260137964274066399204199448020694091707076936724137612793966179175375900789148265234133007230500568596905891347407915066244361639873244004778650354897486240400736195870553065465428113011066930650785973582944176612878783985000425060627917267113748339749014573885870387412187465985052042283173832075868997095708990200517149130083961020665435910700993647739097653024251541810974580254301259923218423586928056903589682507464764167554872888779344182278901279986729581899199261021992940183356411267372055037720135490237941204780157874826316804526939624021953698269893484928597732900990454953544757446917901890925832292915616100994530863413971793469592122836953114281365559308164026858106067310421271504663591133538583428267112191458391476296936938943177744432854438481014251111151376167396631369574597380345125144162134220965000745658828390338239115015408420322125481079381991540533165294730896792782530016577462955621244954399236892705750159150724584065501399564267844453951732859275119361644760564365333344620485032030944198706717079701842135447216507737796238904027814482313105464615586737898789864128080232155955838601925841891641542844430738331640098551822571871372654396400845135812744268345547039198878429719849807072695572588569813290679449706186757934746292673989972265167441221275066534135148381591199573900416531136299960239342814092458199706281720326342747720898283863185247854666157351252727870659725126837463856504810863876731524920252256097632412511893776096113046723372709093259612610408391982362560356589692694086090270717864895668309195462379865700510307399466215296122543273427759626167524677711958752319555292177159936107461426350814150515846549321916894981885585089822860321578164800843563569536066857621080578970898235254827720917238102761858989546543263832616515750034520060578409056024211283237964430201551686937214148960465456179801104063186693377912961733167411348471293092645773891660045517080508832072509737521830383501643747453611699508933263937709483622633770651932800883878947616332604169775638059559786836279649596135603192355050609284412328647570945392839133476147461262886273593254081132287244893683754337020517790248652913639335921279423763422105282061706390048077293063330563237924863684116941212753460171195623326846680677750876427974205176234870114890273144644013887743744462951276472214889325421975941144883981517507563751035890616537167772210374543776585899651338196786907691742287680306140674232217245167219124835535809292879162299492403534927672242896752844134840782438804778682190160853261144605444800495159433458280463960207099224992385615450949044249676546685916495459897348119999666339786807394496794703625978161756069329531285123521609181194111765547581348174271582323082413904089060895044183022394049977861281737722053115892922338257942980489703599494151528356023014363256210674344585357804280146997676304228612804657270940829646292833491305948314205265730818513079227421353006249169437238352338092054759071549482136280413428503157790588630650344317651578095349802138240497333161570795960115181358937992604384894922265504455388809746714692757273409247316160206958800173440754632660581043529241635740133859224854105347062900637358389412654091605342567656272404198794129424809897173212442738585510841593428239013048860762344759468131416396645694389507006261157232741102395496723401857499265978511094924489811175157934233499274777349686307613619891669973427354772852514222753983314013045458862275940016082327661870246610539665422283446213884183217217350025433748666133814056344903689813508138238783327919924651126534715238214364449421455288416109443788499300897957367753678380457519140914095558489027078780646912692622377066640716427366412609464955405817921179323682650067305336982854543529987466494464666284620413682261276347362282555087898599725510938133998667255748825470235707523598772709164721750178170963199413486695940659645977383370183232991346007295478836009217873390769778476054799542264720349880255613486135495192445237522582985889633983744635284300412869559251098087416255515725560046387532294075348486054880278247347227784195729559902028270928004148498050981788701461973438741511614271046671240157741520534042124942870163496852065357033773359762570215305815239279980869539731413432766619613982688861571387280441691567001162001706323987553874867152684697946145189199539545151371900765943758865653504581345605048167785520921098513250834166032689028793270096550815805109312889088197974157490049815670245274514856981616546032183560070223035857224599082035659356550904549487344617010938813222324394027004619270500941313301020077145019492900422052541982777340881965075589306063274037067391828018389243902001442961653886354853198294731437200755650870840778855834449466377291692689788157227089361468857299920155631459184231263363721090917973816105511326958212589090170673331678888857737858759903549795588415057330819639435423925140560819277136078937958862953033558557525204631627843902088174380414465338230824747411110090323992422912592800899228638904979621819531448738625805056386511342858147760427947799747255561733839836793313378429571135431186495215248742854551521357535163563483250169944326338276402033135504309777611475629702174118073515269354706635475525727157977625254748286483535083698123938229926802910286514493310339365064343832981142006656771180592784146990710437279498731696255349694661334738558277913119025817936153670389245126931520133831928602277401324950918264381270716932912794027973532087981106753610925230303545807598037455994770624392996079558207892845019384603123681851914271370734222543370646753990680123191907414035134625624516408666088562015181513817022132687593039546667106374672568791168817080282026885985034477737562986708114492939633856586799441542066631272930477861478254176266106294097178276264896868117374516682119583076194032312152265478321383716456542544402699340184577311296902589233703925453001959055575699230615601744122875063289373741231512069244514808706942637088933165904289008361154359062614471223583108246924970552070378477034892576077099807179501528771733323272016056255787376257118112061051306476895146546315741826810503451664399058126531198535003493795008574812504949828089109760928475030523684952545695161838545836483651169501832120410249430825684979190460766821213041783340053943339835449488369597386055646686885951679659031805527370890120808715791332199055939022596573487809946505193092565131627858386678216113987860531518505881587814653258455146773575093209944488191153284843161782627346929662663081519705589904015317383316652870065970158350391552669681374945292634740804982907226786797921995627394290444815625801534661394438658534686556612522775687604941199104966953953619539330694187949384773993466881583825581618549099777222385127247968468334711384896058907122620305187792737869498969314269164409035678272109697781777889326642833205848625802561670836152187655526945137772230887789807276576873693489701171017654435906590922545915934522360031069925492888335809319514356215100076085036866097184658337607363475338731410074927120912999160094565536159388859952589102663691311233816044312886883382569132412505418417606410692799257584246540145298519535130671624467613334601499428235813550834221518059189144649365461749125471845697357863523641114076371476670974602665757379390190919030761638565138293434346815921242001024626642966505847636159037589053735180728565791366978176868095650024968008915069702871556596534195136397051912239433060810154023444844008484511852237200178441144721992283860681938879373181053081208508821238230324517641948889788189983910952036873391914830608563558213230579924097710597884547796643091167669959483794693825409011556464592556048598600462733222660822053691492327184803404875958921585992045229559837350412638495427294053927271330775527372654208392239382768598169297030451174630363719389788464954996572311084208133439049987963724918673148465830666147389953653285858079245836848148789750412945090293342613674191443119108947576929425018189638257057866601043692115588504893633709628456790304584366586671608248990759381327871539838524658577334197436626381403526424005877480857306227855025438549601321828057033150318529290025162773097938484837520668593736255652092160780867864715746204438005800986802703669350883483386037540355167104413156922650577442655638397625607516602838422436381736563251517348466951797881094735079958681667152035934025746861051499381452092985222629557831261035844673607060509772690657330891440325089880697220932318937980480943103869207940846421832405644941569018041327097392648639662987475344401529769079040793586150403981067008528089436420959406761841800169878477074295425337990909117882221730392730355085935934377286923642243268052452411397882496796902741935292203640045803661594445175000426153364845721033669345145604414891461159018387583061069326043740412916258095875617587007631653111910941043468287774219171178056583862607258608134833901608464723984749990911150345628282007171728413202665173165790987963702034275039178919025344693816933887133551223527452445277314457533002205857670369939091798955887418559721410302132978659089217652162896713991969271979105844384570893345226549283426318792111084274191840578491468695725045038979349513141636186614976281199840940249900887228845263745271306981577697538435791891859938518056402551428283268326860109480468546922708904156119770818899306242315641640028221397637804817447290373367637435394859989008377535683086499327747424757572286731531262644903355686221090602413993183311050554440681621728332244644766617524386542417390165379845050952512077826172545822192585466315384950076230698361873274860729356581461808505158862738838524561253087629696421126878529842106284908516707735008426397114256758910771200826710990109206949626897607534941176538955045127086998092095317530417421114300507197561417682534517263806949325151061798308269889836716887863581330087789486034166839818507114680967499538609568300299951975623704921187330489015844398147306978663948103694919677662904786917275563630942160321114602056659330739105295719634872665003885040314034912706252832198054736837357706817406795120214614311233126685525104999059024484132437631782056854657224860880111639953180945768241706976894001746982496685310410910676199280469667575098815196160869950937648085364878300208351767440981608022702376341349215210833911269982883082644910124505001459204321657508226304090987282526366788277796856570546460306920342909242360315759072681050014723169317166019076415225350574128672633947822825593345759955486460657061836655905205112321536301959022459186683133682358953571488677690146160930336408098120717617105777277765358642349129208541148289427734239675415116382328113477947182324285161979856968056178569490546220322367969822798387566996952803621099564030305753937048212686721349740188855407661626495567640418397462108443379466499476624465902035316329723080121181706946897022110006192323319369476675530496796214410477959054320892015147093673945667061600592358841691972470223300611793891437137095972376728835420800786855551634356542108926130359392093098543863499938961801402492666897239968082030174144128987785369889530991939070991593570221777063746044110961802425419914354070736913231395990655783616241052968759857197028593294013102282790703467263556526524629742469450072350858534128863154296660599783791238132976054936700324688559465477577948676147320195070006314772003197634623073320996387204339936413143514605625985379779922320182124823356160224540314913415853360404069067338211148944760097196212112534281610144466011171648487412061663453699814637116631010366499597701087990892686321023426792036389876814528872918148727411873219280576102707462098015743327243106227798050724572024105895435149557499038281720110157440270693814037968585828339251345469037545743431384367219093685533984597499723899950134088141869207724609117169529045857646741666078342632962779432051297985542404221717346818195567717844569382216412363012149362146452318144997421184878411932406881069323971626349733350937251273362076318231476249280910513490779332391190733325385266186996419290380171807054121699491637385092763687381333175536907610486563611437046185632563224560053711727545879244255136439196169719601542608017429304235240520491043481126606466943848221005411647852536359332484094541360345841364883607202928619858954529749440669764447904326237529675986929891805007962750338326195796841204770205434657866480872557527846176437238856042622682996136518042017632560942060500232946721784637996251731658689841046284692534459572433225579499515927416273819031319594458280555695280925753564437274788689966066715052093085016755300214594477733156617796052052823526410047809058947705446651908256895670949533971551246037546067892477601324179075513393739332689773897352795422148434021957231764093482373005355276331966568024028065075673499229872952412110161251026482454129948165023396619744154197792660433543637874629546937494943786279731337458525265309014135651493424629813391263376325027387534056286090249380545009188353121535881893878094094555079784536048141142873695073689970012802253806104930977158290588623304445961353941446791637673747216090529625461662550873986067182133605050007973665512964066242964088023456647069967560923163223147656417945033655550122034800970775690483787535505670636389789964390436350392206978210385014980864102752391196464436316359584526758238513488211662482398267577972656133588059565423058123387169210925833953951085582599698236790362679156175017738979570777179182382026046062263133716831525880472889787596929287432480385273000010120145226085197019803825210711114199561149642406575186665026834188525783940061146701431986380357383148490951578617697279379173139789936294367971105005385006251152415398247092175820358615659845185599664946655174425056122483155607946818618243093288998884087824961818384078614127344860908192254432237847005444019442459070626033101381635566094307259297216295776486871332703626142969318717129785181024252254787411118024133756984430862562096052769632582318357824291962274180379061989630317583782965135883127282380620505899438193923958370456379381394826617371007994114218592508993870713496720703820992860680940402836901287243762323010384176904611670016435085834753272135706356845446262872587058188639471866082231327691955391231096309699315720457059380763311503353691309629072416147525786534654795551166021385085372956371686663948195222574728513554687428326452039833416987276429586064754922428767480054008192433865463312605023104597904516691759703182547842760782352603552735849642335163682331580812845504107110734233463706706253015551027187834854661313852037468796628635526386175461073012222467553190222261590526733307240364377438506684903149322600442373795466161445123682044859596507182305934861988123550375933562494774556122545564354552779051460895105680938154276320266848991021108855832885221435016389936672434616359232214319724670215504529512775255295146617317043507124141420284317890093558940071657337851539081995670330457279862602768078093491378931959564053672244356094643139375178420188660533650695656794496969140223240650121568466649605392840530968484994149167587414168850624773206858234359455435685148911578769880011768098413764271472988115726864993787779260455632352294774921383512867216081674575560219759479544750757897388893045165683450920532836678673090367495341018803999198374740252847659816511083805891276651574243343594439303479373188745792682173377240901849896791027942263515988784446489360946356995977552640356210601467123331770114498243013343774784609481363163158391828697511898325546143865501824440817328109754231894186359282927689163364977742803572092459012409349619736812260586905748114183393314238620407441539689158331234463299958178426026388443413202682133962073126664945766415823994224728923368169073096416805592328078008104412928835335026751548701520676107972375136148790622279259565247598462729612526534403007740938215381804957288536060566324996323492678811692225911889833624579847853296759093699318378130963447397164414338463704035931612420263049067183639646586128758750212342223841366575957647594148100531522326214352487003660877911504620472629088647733600299246919202398160894628604932377358535618007430839598545502623576371413002193754635325510265660493707712229794463200465125024289737301615107653861340792964152596119207840797037149272789650881286796274425550674811682919672255053335862819431427786145410295025972962816184307218589570456327975442971523386056099114856580388010031538749407880250599765650113448846463945247517972366540825769617703122555179857511891815521997938220935848781279288413967567556501407906341518838097157545151253254056549008555357600372752044642188392748632636072208151381508238392220112829771332186513337737623222520104392581636225157258367534202660771655751778658248984494902986507094096500702702936948425327875557883024026825890505530113361521714549406558874923639865198262774916133229743027868894754617325287689646281945974115765394337120425002949388306307964940390712137581437666586633569258626551655444337032535415024891971897486254552538363693247105026773729198959710578654952186006787795404566995223812505861909061912657337386124624214036447980906431223867226193477494546412372997612711117018786671089658045342926009267094771628703870584737482107769274579759549765042598655361927708451513014249573135629310015883350278964856467624757462158979744499426472435000027395165781373510028938513162221469470749641102895925551422014320867437244420494024314471089784300552310764799260118191469169425132884604231583984401823922257793714080295514681962884525924704882905185808891297390148143259855400022859964666467651824751007021546385582350253795714379424059890573916411075375765032324568524745413376104717234028881826328726586624158838463210007355862378368015493315696656753896125138729649074103396095812229201838808290549164287300533228978630572443214146766998763145043804999637930797832785869309105882175834805602928642485967707439502316043062058831779401689458414229034337708983781820525078817326857602277947261921883893621552004008905155336887632451404891425383231915828701155351757748033112289817794944476195355869156721153170056586897132171668524646323070510262096269272423890769249324893631418629419686143005334961715110506562992448425012185878936308401179166460050015651234228178747919997499646757039754655563399965931598813007102237135322519964270057091216413618974930755815619955532552337749594007918345038702628853105804415416840904047282866826137443242800552004720485311349140057740214311664854102044723477370879499190408159280727328760964922306027092682365311577070681531533497412242257230482111825532740767997867088285040419891442352306605596877196839908780597759564677248597690816592537643838460359350390840477218063485327412954042453043090782924560164429100295830061108119762561388112615992962830179837709611000241842328649102862971706404761156656150244754268059869944966685367967756885573798909870929090324207719519499312129880432310886259312054942776669392194133616283851173126323265054128084283705378878782221609291117259451641681723121291400842363376682958454271625206083241199053096474578934060337361004939227929986469517028962699509092923546483279375936358575944738816725000650400691249216911117777330264818792451769257857265983547170759278303212184953326324518635103738926519706050588732055163034230259849120285512593151085837430915076081156075703423193061839717061798861963164012311958105382803586538861601313739279675160599094842922534712387178598894085694619198097351245992610812434766048223867358321453204758407848586813639066852717639263129132528137202538956542469857932376802496113525045637570630290633590786219968162425768192677789692324538768211742417693615392668812436084648691134466826434725762794727128496783710383206590820283976142794563080215562188589470227938622437216332889777584967988387058454313212704725179665725036397562732836810969811549891280953158067309396112361201086990339187094872263220163702503976497875512525609082194593899340801805323715148819044513847555675347058307710938347136819503309424464705282623762999291680845578628509043096236854261748780714285169692261283710892413057083568216733035428607386916740536383879395303650154560594240385069134793546396703277652245669781937129588872024511290567259303712227144781255141884894852239011116202158288254324146461899196381959648496307732162343272535136040258862265216958894608530519254360331667484021483857660854002725765290789555116319968175270590143710338424584801472930934898953200874854930763297722646279610250062576046658660227488121621536486428577452372002450404681661038827467809345618464765401455443247936589130319899279052383818370460056749375934086246110975552437045814119622087444318230799759712884400535947665649884014795130488546222079287428645384534679770616460766989152931289210232671076895975050176584626833595777188785130878874698711770548082620046622666948067416498249708639542545618770248033008162841346867461706668523338421050504622721645130471093305898595208677852841928468991776560472459104998914120052060673087292595287029400601201306705376154135592869989402178154852018002882833034893960415587855703769707398570078417406788128751554306521461780874222701748604042874951590284182282509995018411306565543348674637812359225525036942461376233129233717323029102260814425776299501064883265909699645270264202814284341994198169025071012220234349756073523555924797638212505553667245589382729938689268563584173389549796134108983101222625482428853195031303905241883713565623345746827912504136953100905874931995589799499575761710821866797093253769132623178814727108271336248277462459946505338540493945811582083405851083764949764228079103800098010060398267993670741921733088210838533383364039079243503215217072796410358283942552330503158933616690924262015951200818837001201956292979763415986035386612320681297707902990486158417475939062282862702675434826704367961668601136689963914171073951614252641802940728065250957145013653553064041487241453884843890234343035232862823854576375730758014757566003649831387897354198697905751916285713110908781681330253282782305002672154143388762824262223125943107078047229560930751892296735465185529336617630012831081554749274060111257993500004929433187870366152020943233224170438239519182470394553793540580365016546943698614536139332817995834997249362195780908683759982530540990827483252105722797825481349886278696330212882103146125670272351768825180813164237462704452527911074037483958205401467255247312754140000487296723879579499121450632281262133555657881202269126876162398516179976827825120245271401347397321546048298369452872265980333766020579363993683329318769326399744015117103087295389974029595627933371085661161456684305567553002139675378613739219869556845117206869002786780577976334380955695457584102547573063246146637548103556434192176162750550350366569950223911233383516229502552402370487594701303969176815118879798713562449090301217578649413006247912366676659923200189668715008883644788098531544548480267224219844094846882719551193315775927787282068499696034712931364234333735654879729610546378276564926012821223532613177008536456404103096622381136352312790340723253311847721414399313950322568819711464557393529632001857569093531992394801371648855111545428371050837802440192897910340793753112366744999698912651060415636829050968792209562471825588017593098080525416030735226519493367928501975862707311562700302595187080670880094109918002856339059329068754279895600127902223595710250747276338507783860035167505474469771648170739581491161573583552758959001591487273520209821827731097745300018715713619368735489126955556935107846864341864454221003304090642334770943176940057859781660492922879535090502628015574715997461882237829757175550213351509719514385397847869277538367533946648249097493672171086830327783092210487779292962999257825236393969669511708243366636090943949937218469927460321577912853880160151523684499469512340625061261325199429651798852842624864751561218980634520926311154301087980618538354579871943863965478068577198797426659347692126578261655966631857831635252838268875849693150598178562440645855127652428521709187640891022469852721332190481531011248507390214288893496369668904497266609509476297480400358018820430556232637203722251637352721910366535516773531018967944148688811376693334593588071030655284164113435422009060600552666960164996517296868927395079921261512559956192963856268497039502176140242469158677504723383179507643988316442953447941848755994851523244984366630144472272559173200432343874604573813365477508570360023470673693638301834825041757857141146424299636166543998700197302798060698288327863752271180068019597143735347044967185841005574643616205752998730381061960924638093964580139375031648813123005729074320865179136044647243055365392507798606569547033058220141242336338221311981224940862757954994096591644415759677581752544890608294177835201921028466070038150602725148487013529979024528137562313574199414509371078807138113787306396648072852388465479848926709107984457939524901742203167393265228967483329528064330851679601074995256804044900972964720485888160515531995477267847745577950775959822151778406238172529601062796811435132648302251937305400034918211477404633518088230563010087710147438079013726616654610021391081303387415219832810617904096184925838202225719338954595807074345976901620384326748461694574995833028617113663121090174685569104408976700927724956978478328993373540090420610561871408222995097308074632410453895226827834287791860604719410279120041498733560842463799889587990037091362555546328176901529131876300287619271345117393830562529680568416082638438110458106728577468261086809220438847028584475908762102887680837444369275705523886302913078734459483224904845452196236165076644418252102752230091088041768057000813028756058122974434529919193271451707030247198307405396664747052749402233554070153468168087999660381921757593488653970149931440418186279898223120783235746167494314315856965395731173814957215388024738817935510892696275584444708369666938858027164440196052198149765759303646445943836767991969571110283618248946972357950500971596030790184568321373497080132624337883456664138070446813053411629123787809177236295038622242392221967976405240249205711817628730771288889503547518009493641625271279949800083770561323515217906091450853280271383502077162552609926543559195519254933380976652611129250210129509382341025146761445185332868944523809410243928186654699596464786865300843324066957762124617105862505595702491420148821690464808742324646696172839444573338953516909737153285447286124514451818375235749654009012643445701393138877187513260073680637941458443688051884093053487788641937422712528259916863854940816675658617058857189947646218745131555050852989285918467357284161813368641568752806700224123426043165644211663832769486629264801040693953996083501561776903476178979232226306695063441572116015766572925726311548308578693593911194230315573064449919396337107138625022467968148259033100187989021309949762876543825919372027716544865619035025169773088404879524285127893220713253757317935650751704595706113672700737902943393984045126148467004518581424134636341372314528639998500091746817459426735416597679280558840592055935262661488950599705356668114298085668295816228517024990710372916934584369880429336542871824866508085455961698736145312225782731897354951960269492429865192762324299270623515547790803930863797212112669629124082050203368853927075714329946579721406323344191166200209778930875391415622252128019399458045445055696685111469454225254119843506054126563630523160730340962565550435156791116718828739623693237206762709790766410078455928487697721123398276620409918482396346381514771675876658362847543488886147342424147668062276337223785273250703158055110196524692244297360850466378361296833902217850153271218480934996408992127391081203980443012855890726128451823479136668797762071272151430621755426546731159192700107770367719946956090214724408847843313320954030445970981803621637270245574657966667571422949005609893630721186932021440590369974674150078799188165764523112183401920153259874917305703112859774739443230268254048597576797553479859653905986507844742794480958567145581553538592316565576228203572469462758766018616190429269506426683847668294276138362685090919882913136486467993006685254109993077151624381779271179140671270204403057003894236328910799816420585272690446333097764135331325699730576743175906561395284924549382687442274103987140806317638985169781250119840241442807683456828497592470643954607209808361592845084411212236204669504093921605482827699839430165210099315952499513553279890409839976317522449689235483647208808456187105623575291596269112192957628185751164974321205919110885968093459055272792365932507270087804944737516785402424845365869866407715505122368620305698200683880714251123391907514173658684041692377772561616092402536024018003621801625429667701723256807142947279056702745089385971575853711266235528809602985642471005746922595144224306700107132943857717047858116986608849420369997893453018780773581816509659339653331485254212497400305333889897900829875806330184200226169971518370568903189256805795980068021583653359969483457727983561491069684316028103314581346984014112428831809044274921980343588036261728112503157894590465136423723926431322910436763028311608038812929760972855387921908996646656031816984880581732907670449923922503324290312708270896178203968783975621615016567051450942569192273119215404398775440267926855785919294420130489557030039979758132274328398793436028216587874968772085065079633175723312175111429983708536930998991274205350446480607595068538847596338454081461375543278521200157797215234241738452934112397167359618219071564842440024593947395104446435365954192764621803894134066993980625345415907447064210157177803446199075056438389174042211387111624903706978041127454614265786600485078963140560899765655897221559847703294276516292889524585502015067179272642478599850055362043779300692541066826616478135341455141963198453338202584831716319501151790711597352784105487355325203385224135804058169681603364177275751240072665842548115354626113181510768284707882222117874447824331061484048371711288689929694432877456484416828294149520891839032037686992067610729086127619893404403263371672508916362003098910710410963250092666439431683562539427881100369861889928810938816203918821138347365829769288954751350406388840108140366361435747238506828857733046559413510764160524169111612334724587651352483120187219949661511202203997781216243792817648677238266491380826164034679276755374139922910409381891295587088447495033570483094523223695019164919423459280354693718637323150284279230523510370498476636974187332516965743935136063227789830526892674845139495803852676087717012231579223542843359447377341380182685978571128154053644727377522359162472141978537908854390815809078397012705284751400692176159240177503113215724228675963111357497935227471367459830685826312978558184953380166357474231687978772332828084897615166556610285660817779055450596798240894096802504856788437617810224171450116986933476344370298129213788324602792167766213942132920929134292420759018118131350908819405890431720373824468198816265175655512955086701321960865208051346284192581990199735045528245979152513678231326921842576130128192373658209159792719232102371047011317839046419498831630190314519043604528874410474520771332296583988518094032797161470737599463238033440852897253204778336147374716070457111247900364051877405104839573885502171288478212765755887335621459782841637633556499581623642583753368670202151254039884236532763658220117305403245707073573992997445135362053871370959626141289664700314801251111241264759824038285587475212998054257181896638405688662394565752116146217131359699162810048925086515312192394572637389157888142543519398502515812947084861592109426019776605346021386984631491875133652957602754090009470644190115723042588701928628040557076275839286904026079436031828528234502869842640216727957432034967206647638803408590927030598203968765693852141207557450143230042027041654289816615315908007180263531233278849199711786658394944966999209104089067989958555954398140002504291019922919788725692692782345524693904332808444069984784255436970967452706253846402216538487385031647331858226533750159018171383640013843182983286679977634460059662789484113022448576354954819021859091841228976228541129138543407060356639457204236573635236200122653805807521107886641857313627088470505195311452547397483964218049912312275596396014146973745777427208487777215184325979152876315916713722956473435427357575845700906416277804286827461007449008950768206127771800283678521221489975283036220951726465841834743064941299960897047413589882898505349639122016446603284038580970778143516426134639606723429326186635370467600339474152929882606491329263428423826667421482353150141541600635041443508632090572219033480081977561116895485387866158115015408045056135447833016306798568426150118946502702011074029103832645651607564302446742133145015660352162718638787525755319659928408658185867714336031661593668287755135753585695229472408207721470006309893791513541243619501640523419645283378781702928502452993721413644927815145101853725573821348222646539068188084994599200397190125063496237046191243990719313688929724815777818756072443848335071948771772019348852734744058238061858223281449535092524061512916046497755060783229440340902961241816306645442834459394077241725935981249171845339733894675714806148738339402838893067038847540137432963687508051080326461927031937453047253525071369994242327018149342331961621860298197787808524371183130190109962737621341666739980961853684423452815538984172549241484966779214639017317855964387045864877970908685235286263374601176736323283018752176323590534670957783272219969313398147048702164571931142355855212711022276057086830086309377203684693810492000859160732741174155243049901256267582594436712638508533748278033888092009039010175737732665055754068821544242929590670897506209721529444666919868972130552872214500369003504846003002534542723861427684473546531275798253283759752960024840849821488087363619134136946143188695051148179621778286150628483858984057330855674835734139362244235702074827986645701296197337181644792819617566899537815681545320521870477265485975405387554101015393930063663199639009944217771759986533278713890544384370794698674235772966185427614674739045545684037501974317223185739486395907690694672483582453565317096527202683810377575134950267745919133476307257882652019635330168840051960922773286765396868320290703757852566708465171770104299043207370061421097360816806522194297949259205930699901020565817358881864124093774688898041978998831061212600064843083944427904682214968376541806136572405364211394749821861915188651961286070504602479412313198940246274156555311717081349477043396745169939161540093492161910215533126225844811997848451665371089669330429477281362473597731047853018291143598944015671444826376558394636096902262560172630469906255338497389934924341503275235782874397730933408208097590848797757653806148968434334512816628659042307065683506338462526370380434008139066542106320038192542706350840020781237746476876384322127315835109198396389240641220989463494185362391764289258800706824427665035657339250057421737751104364766715847314381085485551904031980010547209402141162215922212354599604719230119741516176420900213911945735976397300147147322606854397044657592123747919841208555421224551322781200104634344500776874239100466582690159268732308181098287618244144454903144399381262136464868462222072101219687346655509896479685370466389263417427324273057081437662004627508239719844337091745583234578776817131678048784110054366515976565129614795949051735793843123557411203989558054158773288606759443128690362667098921506364467140283475126533621476524993057592238209785285862915483588064086302888948622203011161148125592421387652052245706445912570671060200471895701498481728037854231071724331509072743384297863007460916503980567811462593755071201417632385325192318370523276986069754747260354357925620857856022976226248508145628138036657769933432708381916952942402987102264107952476747569699796734594046363549335060341431105418969647712127675615851072136328501217940494884630226378339091283085054171582112675595709770587624651191039596982789954199221656924257058037205297462193666371863181435038369698252223425280798494874808274522966245934394295264538714553895027269542344178608568964257497236815153488602272129566496781508528341190105003291501689158040571054498124359194869580585155033853618765196383676092486108463638379151626222031253929985004987217653589560867873390901020960363963750685956109897521392172236702461962600695403715877078097211771370260857416491657773029182014163866499875242964846352211324479945055907388359281051365644940322222084992759070482051485276168018220193554516597376233430325092876474009893917260510871785891516578719507766658846053205006824203637258848923054780826931682101686175774880026811886766844292194393417095525040662537846358483144334345760908075612926388133282869750725272964721001271304608561940840932322472484151341335692581608345536797592605291827808780146355679683750708646020951571241870064074235500890736378627885077535184113822760344256590329488222147188017505918519064183063151622559164779967115090529121772600109684235641532722591632429803631961403127029541738354422299097921197680482466310792025725953086340879025230192032218646310101935044098388102651765759311376732371029215045437820270272316668115063847999445211067990773111130285276948250007599571743822978289013263964353550216817411587506914618456057274201386182367195019861060681248194758661858496467591327428833543991636633615695882580728223723789187952750859182500198180972065502706115674606028917519323667018136295348703055175433579580599327292836922852357756683379264102906201294716979083564205266211853506009344942949168199875817433261065697214286921791837742409847431695692874672858112347068094124365897783436095685926383547580645606865025038290645437827689679833347831488761559283059928608969688078020913852182892934081306273217329234789176017417563401314476355317518400669307092395559736686687724473089960360196001704498055966359572873377077138282074766104097143306445571110479488046028608530504090872246393586022192564648407728159271218711619336916191651046528064898011720798015229022114635979936239825128539163787820993281218571076709785224060801465994130695979762538949499419990968204858294525776115989437240565480631865982901281760077152449845202337887784254454206161867277808924476388479835353940125470852284972007739880665698933687185601017205200878057769905593321616387682777505327267652904276305124069636722806752117087228408380965993580204390111393885420205980550015617645392739595468986956673355659808189164904208893215317753481879594060200307425099742206686574928474809163781423979474811790316778183474373695786993445968361637862501464313885946080186012488443683883510858260352599602707895862432599802185537453471719618003757441127751239401966228307163720289351060463718886575939731041692999640521621180024874438204023502115847382804836251427494388027073956462267077293240212944750588166059638380113091698593643335267850074920486815588312463963471602288352898964312496983875250648682912938393690816370196371159213981530671041871374348167184602244279534847773791951670516290693635789035262130604398357553554167766826497841559186284973853861674948680175154761376080854531083091181922367446429317160925996672567044017041713433192319947829401912796597128213092691649586442512283056327557666180316626512304244708869207366605011064116851638668823970240880216257567828173039851795166640327552738664234397370065624817202412985763949758413870436522715320440831780339040952713523389556559873446983075807846783157869698862848832684913079489547279588498569715217197639989120808712237891103727635175219898985731583836398476693705535822582444771334703475936978690893830419161053189007126435194867530594106729643529913875346344357344057236478595922860719293520410567995906279076366569930968464764937086405123071359369626994844409073337505991344483235609986410506884798772264913134102933515688950304024875019801050933937240978531398910917700403893020190454307657649400557843479336386505491455439265623665433996051403526801086742064785864677957620827442764354821539787865746961170267316650011147321801388539505679746164900315593395036906918021740413839746305361384684747126574963385658547129782778336766296778609925202109012892339935054272425073751608065621356692751358158852429402942546089581083426529617229106481841325086079576617767068727124587526868822741827460959635689323403864677922444907413828316792942563368140783032786700963237813235285237000446277007754566763693292665839984896107483071492407863691136342503412178352820582815635204824453612583454106573011556453667545961848546711694171391050285217773754388090951460136372948978927505922026177608781465901613108425047434990010998211165218608689918360611398720537092261979944463812395672636234416964295870042097115363986730908681867919981461848420441489056557763619461160561409843563812097618057177586111174519799125530056405405111524301665861681282950015798598711836793638512191208061665569167226566763371754042630857773385484289539539192666570000613072186053175083940561164803376775127397615947692595756336223174816919175552919053092005449498931059301435448609065290892422199018520689345001914313398146419699071030742036921439678981641690703963592275299545095733338850465167822263333979907130169683401190337570881699996573690423032548357352858343900126737235617327486156668352877649653473392594681683507089245297674728734991099804683293594787257334184354512130525273692609281263337272216098583281609646291900798016816166413833689194863527952106376144540854379180977665432073740182601894802078240261919401997373813717388635584921234271834513698160440172386859485352416248448937872124060361409543804762479277988877704982722982708731792975873106957450293369446356059969040978559152370821423407471508826361539305245667823447205530757455634877381746613204979962959822075416636008754722923561733222222698765672911927850319657314241475672960928669504743442734147670375355997956679866128060059853026203556156733506729555277770859928509968034587950062954043045395849567501955006381462757841260063525998224513181875200823973325976315228180203974787625682830878500584364448188758483858886749447965108617683374563683005601690670477679631330069344401945159907308213686609533490070846775284514176760057421718894672933120108685191278414189861064065589475033739404709140634651634401918162793535034509244298387622884395032047763165120335842603581043491088405230663272918974907709932414677955426754529165135345752008707804868499182059065091405099845972999733511006004324009499669286599168282300050970829689837726543604954673157248302928206261322108131796619448370533136945986347772322752120271691102034327893126061603232193008124666155291982319476952951718395844858647912711916971449765574995770354750368352680663382922864674308091097197471269404835612549067661990847154854692651227617405323188192097855651412261835175153304085101481846689245272591682481027768853918088040199179307659831392633611210552875311832630957761617851291099115102862622756653275773760844208822203731817814735729110009529786574409669710103094478380604038888645717590301742686342613638505187870601711048997707096474546587468370941827898221054576606794089151601818646766404881593548252580470970051430335640871719125769833902046246178862351216681273294757045558034655881154843104310981328159302098456359122551851279898714706990884940261888682639927711615756862140530102180513712128628046227890971673712912451993645332548934650808018734856458067416480331813164761275043001345703874883005683343248421721086638669971026968289173548425214132573681438193469127805997628247222059364151174020043015087474694151587687471048936942866740527049638434755427226809618459184597449893576982475792073517263070341431483015106494934133478180426286266436973690030997514484393776160434591530892966160802144968863596303311070608877344729163681135802882328638524716324033502692644717156426931469548316869217717334265149151007694128402757679869190512238656547708400420162169528565862594629987822662764562651092178822918640408286807669202434435839980771850006873033243760921029398509222768280930763244127456126576361026285593314335057166786694582568883703818573888530050377942372271567903794141031477652697539133493181331422741036071112771578301676839515364240187222147938926887242919184707834955010283042932490858893528427074554020415151528945593838475002184145107332327951108052560071670268198230164269249264837778061044812470449507820995042536872148658179365592959949862145496428606112929671260206137177365802437913641789619157884774391854864743134246904281160902901936414094767002509633386672016476185918524182551877407831800848766254932080081147191622954603223066067547850949154001325075503234216718318545573811790978936500175837609484466870775943629074143200142799793317705134088063004965926914686375211906198086391637607518640740791298884974552052416483979488919504305644265215053742096289806592852778211856384158891419532485317392414134086452061564619749642382770904904628562490110174824011968850388144978513770102953279675753494098592417520018453437243647698705076654994999024743709736369004902293326963336357532232514335896592850408112096535052470430885433305371404672728526832962499487347406397990391282260070638177718454511925868959431794101814443756393998175652017977795418140819931679856972943898844535544135478527992187232213277900775435150737028139387484663077098103022589937756606829715944588713412105317444243679058830632371623907338475373324507964057950556921641043409007880414949842808661133351745412263443240564928638294858712628065368224078209987558788715684850086616401685391379524924859379777398483877746496038693328220890349416127682995805750076392499708623935312584667481949052848609690463458954509613839920002714209789902606906033930469190386836724272486782575224377708666304751395438460282835602076673618784118573490568469145495764299002401090893818133675891810737514587298657103004018324765400985446512835622049550444336213754257143052257279880656996363332622917076833382863417835847252373003503695793028586550226510332697252469307691730433377292673330069187623168832099954590493749255968169711384757829143734769633504380543440630548834160187333632770806684012727356118330819729920097395523533963689534604036188766092901397531284135575394625708345270652180572654218890374332254685718075776581873353945708495686180674824940961001217507658309338378171937472991390863056395240792482352423903796623326809160171105123654827541569155952005489123175555800889116998291126341834180897471654021125152108772240091986509886622964381154151580286437754795620041151425643799758340862587272343786412008264085803342869323101994353407294459573417826190067961898164168168575413291783893221726114893243339089232570652895016586369323930072465308347803624268992760821790685062950203008888592696942259977341758801265550714757083472395345616037402669443459972193042094589116926287883317060739355568970352657389202646647957642214206538945916145410445858439623376087892548558755753836474353268240167647296570562034627472213606099970607343805350571479772935345054999196648843255558836352789131845345089198774057540140925045769265046107563804411070341691153767724066772060281177509315724839028443194194400580993077669054167398620934248909180471457307526947108675018361235204357079958980085127617584412741174007973290441559503288473254784403865219767376258622412042961999884115948689032489305370520629283450732335916552689472124248875358975590380546932296658193755278964493631686722221758505666186672301022907866590048577798156898770594151137943593474003614502747217752882915780058671507854306363539937787840392692541986095185232993526130173551466675991172001929822158266222380244071990945482361201115288485740197195537249798543284063088608866822517357902575409007705862885865733452871556738698559771005662602998852940459361175648427570484717153201969141682146733965994455364859423465039751199197956965309062512516605265633202003615715966964758288475574355263515918708385244955470931595503078142599078605847152139084462042091058420751621140281615849249791106835094061062680932979721255160028947781083077319180220910652485523129351915715821907170676822736495555154953882418229374575036985571679276595269597858288004584567399450075839498319736368743470132354785278333629395254119233155317202039577723209750605737602546593645077747660413404426107296194117197073655723162983154202229010607440687426127958553366279000258140800817528157331299064640741846723876366573869724494041012553009917512109772819769741692867234797610738554769140062236402432037660555536389428161715883384853099338070068953174378414913789550451678529789946274416012946013924996743244228238648263260621265532700866139670730563439146961712624765404737844592326596748451567611233497181636960799626840039401632962750073443075991840800063485567956896526396674576731880300207379280582600982727245260968412486886212970057946269113523982474881794282315102060777958504543389387627811143541949058010084670263604619470998274499029516186030495602633919825875752332806028343597730272410304647046916816223757894170342111823007476816617679762985192123879035446475854691228256076186494373853203308008618132371474187735696441364631791329990312518198177387270567609892894403013258389665169343952487095219966727293501597492737340404254348984764077461715311451176529537258081697052065070226286857007454352574007173848143199377366356138484674126724935377116152661504818027834878553143247726385795790058520764461982215505648226715014005918010602176616122575709395007334511317348004199541915599048457287978439665721380086300763869043830502517645412813998444416263655072214672136114436980729738934415626306934126352654601122505565210651545640021052859126093949319568221242294176689936375949792844348707981766029085201247610485460075155052961370373874814240302839135686930205069189528485431342989839215858740733616773684310537219092684848753508332726681657454576008900590206591125556887095337112574443852313906282750642413432027049665171832743549172652294711553922563265234377372761263199877573152530885008561928236806819353775215739825168733251181558458245400114825322769737073579659934566995364117149884336288306976875145457047457096443818183824856377170038639328379183291305566889384814993438440854452564645353253150723710019444334337772353543025106115918924165559914532002288396311128978633252064209944936301134149806759844669542908186848762470214627010285283614262864254593092172705506616595732205065604047486740308195970572197863655168581661622396269698757636103980359951931756769876807573709190498362987293492851293833438857292522666643440951018714839839503557382695385426690654135909229029023379429972984097477088529214685058341704356935793955651862891341643225641212020402410782244140548786158544598587624221270316394073799860671495710437042690157780400136646167787994991549918336504713435550443114184202300442370688472078418811093612824857004385664513594978521270668189072350317180613764588322333382752391550504276366461100449954717528984734828018296464966996387302983558845366165596738577650941993044238395876421765684931833246342350627829135311096141663013869998442014753613181495937783115481953123974885017154224513187923192327758855494078553986493580408892529248772779047374560414381322072382833434633686918009423807695976151052964411296221734819274204009766509090583178305494548120961166290450413703114947028265009649907820307070578260216995314876142281387353271990773017183892371261000116672376100038560257650594951775431728882611147224586307607201480296210260642794385354894111803047523466293100332412951005750979319348539101483749735825628390087006533712659177415478508980524654062427264237600399517817017112504370470393960913112504123723950048058303445226440130887892912721773226600144245061598955773610871661670354403324596451045896578177649039922626692270286225351154268137944418708048231055320789196175042859272199210653695508968839890540797920738621559663334905090881678527665701263566809238106629743885319718034450476918917154249641136259738459356604177852358058117304315563844918918170585676891185666587043305464977733402522763287308127227063204585943140370061529126896023910812737892882992313009694144002407626761080486143936335522204556795672432296237397486390748556500858747995719465172923320437271609512362254398235983092139968694265288222167303941625283582570216199494716213373111714485022642125599115243640367837478512553907803942507811598789450703728920351949587229712035118587602517692198288942283312277911337861670435011777504955428040996921065344877311411505224548235232996457182365295333254677094429124511074407003903872130560875291989918778669171245501224118668710619432631968566463731846596149098813352548615589813226929247006608216246225328681756365705874227578019919540018977856793890833980299220396368699803280904811688170404707226408843786915014260043227852717519705122572419814236590463301618390996572174946819089750736590482823650774856526353117993483764704462990705030239025428141996415904344147826136834843205449137338537781538307954053155884395203706255057314431800950542428893414907833081741523763420971068116960956373661176146833703498813098055791414850067129758793237885188953379067513707300431474665385337844172872540641612636360319027757601166958519966179878078914991196083938281620978688114923302254545716972825558547231220828590733257524215654125126315033948769398987949803139532870798283030540439479438664959420241378231750901793626602756994566704964879042073349846336785687214946945289716938755993206971402152991587846303002415270822009666731145249794342001279865195459145453767215326571913520887551751095902377242886707214179333134775935836206564817492224263899599565766014582251338111972913353440006500559819470724022460306372131073936899611227057276703415800114280608162290838242708804995890722310390970780925930228542042529854088331890483164892459125136266626944952296366196945012249169254380704886618056615087018175078993332161172455079198227625451276711665693671045488245775554724790229889063906872158521466326792244313400838573705079181531198138661633295282842557917960110303990418780415489550716202424287080586629513287845085889483499042550423476125491189802106196290750905383601983509712793510947552336164952015714276550920802318072397301449878686076328223690402266287302030518019905691380023133152943374324474318621743668277543025830068298667676537828138857899801938716081330829483478983835653568852708368021224961787944628648679088991268972884950661372411713678584639075821929604519746286184662845686796992772627351716870116263755689890628781927677908780571872509431921012658656902653562321785214952251744185420197851149684326158492396025190828185908622123332069764190099409119321094651225955015029400489941725758962206636735145224487706518977179983886418145842136187447620477778786057920386307344646842349705690491690428461345382554272618800153128341374369418875499107052929394429797788542295171516862377039927455095246462521521760671705402236151414781017277417390366452385284658513238356079745988056872549448715811236155656582596260823276781029273697537050516147197356610124779319303812207923867311854613555905223707661017848688865041784820048338192334902823787010326655131420453866693381240132177750872614281809490355891278226066762084205537055494113924241204262102808216978669567592514271952486194344518378137029155474193918986908961468535038673051245726538755794371359214467909340955505296114944247597297269868133521256161823680367348619085108507812481254523232400701688512399684459499840293372890193122000429461654215611105456623574074082842087543911069413996074913936817344370616298541437351771320944748509674361529803808576347599912329672862135863633464144865525962831959294557469040348885761674367508396462448923735934835783961210188879606234948003239463742834025309709549482879279823694303466046926293070575363309439385916207312797481578269153854265736569483063080587722112120786842724366495162849248119759449836452250324745097142003564606762606502325627982356833898400738787959270145461821233275723238022188089798125322798940994301535462346794306499610742590536807486785411713461366635044623190205631947969268550131134276780783321761247455218649932623784558182899161064932690869152645539844550083292198912531032138953318998199064660300036973439822141692903257266162816025109307202617537737141105096328670356961275152209385689521109888471323395267725685911949379056345145032272272182994929304351300708401827821990478534099202266280614531766128783186731239312945874090508699195058793961567432143381656919211140165940929975870357447644005523250228742714988428738666590018267268887331969679366021336471977804720011543513234902162761675490786262288993113971855992288444073936760545316567652416005973123673471299228738279073671464485205191743226466124449317934305178188232849083455116840309435971747876073754931214901478694407297645501381767963780038818840601227001117928415223432726674296047367620271268001343153271539637034136706039674832939360076290707345166522703962285680294156094510591692851536277438946239232522520806608992564188612438190898548950368731369880574960569751732296693238376285305933379775320937283198102010246816304191861792042011920965323174711224320492978028961258528674693936134842903365465405884453972475802445299314711244463464068441446608084234120131991627218168834474115812754389927369429558143319134569434985061293783629280647285445105797402902493876763390691710605383520019292834426960977199678334780987785445248621977134134241143163365342764475473882404953091143277533172516273280779635464330271850697163286969226887223417110476583782508243511793415345973594119136300271492076558950770959133324430618917707764827854087350103439398181440039741591649364178208664668279377609217196028516932451790910969259802684892879610611871088964629144888097830816016948307762829441842301302108207169483710115051388320862567628547847410461255855147720901607362115091204686293332468732108269003897017444564724016480292351890666646276455718468525678944078445802202450217064746355885303938561626564669586363622574089661789417144538931348288254793131316010847019376454804423133631434872536244958170955241535505797035339193836289532935164578492779984350623780416020320218759093905861898445310658472511184025932039808182307307522443608202347958809823041338633882490130690524280636808868013673205380621867673532309357717823740721508041503020048262946346434549655713699436452085757955703724445492313696333097120159323319207545277073410831571375699071730036621240808424951615963391914497805687335035560676909130423512453938840068668621876736441294471941136107483375793510321556598252851439269120405739585507467665547644350812332174776579748094657994771893867497487680983596915067700566776221313988337026653483162241102443933446044193506111110583547049931137491427548580620388167524951714021984584899626108252861015556360420807624986358405308282495765140704409280363368313615830009373822681068417625889923469224954327765506932703449115321059799899968407582776199719749824461806261820722177928751530830588709662630476468192785499657599674645507391302455410881952505189392160312523125947753726687174580866677867015360050887593657620079187981097309242117767296014255142295716667385248763199409612539854036873898036735453002907771855614408137098162070333818835517911180952710079331026298556285454751832771629582823516853413469020742438531684528115686122887794054032399942875114520844792155542951204685404265246233368165632301695403170676190692149097392394033380778552188476888872221760577583106941200338087942431798621572279341186889062869741622205374181076422940943283934696992312497161126675947700468227806600475370103732268670965785670801441387135458468664484265927619134074064442718009288907235942739448807968283528326584843484267705825389116782118591385159876142181618400149843650916260176253713908876743848506215456930595372538702577774522709242098748696423261474986056422471855220874897275528845197069535890111819700975708663451106787635816400519135699810742204886762693465891851515567967351588062394380419560366399807583721038134924173293545871494447567880279198416771296271469565816476819499968984712287310559768593693691594931678707466172061812899627672572495697974467125398703717618293990293034776508140549634490622419938859328394090360241621278311605551745333835190656340514286037564171588864049447209503087277170792045868040799872490920218901558359108556113561964446893771290626720986580794389556793924407568656359683946143629677850464665378245536214515824099872425514497236696791976974208380055087748794264861114113882507785592071827779618192883921758547371441425352017811888178687231713075363432892999257497030718329467936598127417733606608617151332524790405995118136107526648129307905442286123363713567704659205804910618108967383813060164285442739052418246970904929049925765117874847145335051061693639371187341127891599879020627909533938376656100593555271272308220756248068221440616640170874822011796183504216766212606008863977885686124402431877444669951007582920231212939051548895658941813620094537323304941186061125141179674819010690592807977492340871147171648501397723282883156237825025932743465111580859549795688975896097528642354817029984763583326932331624804854111941329691045977506587217804852505685797427401434686918488886607619836031314103346360071273447446657451508309543795152356372879522302636343333001430449738274974004148989807219263901423510235981185499324673346638256100486980816511955919036807767261483597798742043760996937208197696563433942688862421090042684978928623319521590721560435531481373451364414725432999279469117986851637749977489258501282943176046368295238215720955647107713909391193048807881009936330405038997468666836797543455820074447570709477602870799144653874370018015302147188079704449791079772348922162189127327855322013093890580962429219650501201126080429365125918822388973201201329627539785042734206427760341441842622826191706515908835090966687771671867887177871080783315413550021910013263855215068127468712957628441666642848381350879022439877672458252136302650493244858788506409343348007383248615826238950284875214904308743992728979688861577993864702924298914537416222179257899878736334903339706843236194844836081855874475395522187683206002130799158039533985615810017580529827756498823970656493868459299513555942989408480878359028664781210276097927729334503147319272632494802786776692372080347755264999809883847031154010187883512341569818566584681234690539603322368160583821047532188506692652893962855949933326571154346620833298178955091008753363693070702564363534379291842348226685454823331443373663134586045094342210998528585744701669218244065186052143976151925350457853627326366058981154111120739692311378385973811044650132947265979016623546047639159315759131575526019660620569536201343624289272180276195076143246438872576926867475779088107615341691715486426525156146619070699194207930910285120815153348165462312936052786952583509229558192686400275690879892629183147265224431571629316624203989295789351714974061535746680747041224410785747533416460761134371615616906051273285385960796396005408113893513846062910688087706853891767853514659452708060375590415261930408190979369606109015705225102042373944569771380046407507299133234529150355042738853386951628075132272927022709085670127406478561975428399663920987417085514085515160149835485412293973390693572481027531357231062474556903943848492260428664191628673875788538123201207008233584099571016467752048339733452722884526858714051400299436800742102391475970809028086069688774369949430993786270893127172660344560869072402076320204110428159097783727399620105435991546618118278574806387415560949618437145025731666670753714139615853204449224450364825712620167761307047406735840642806494726193070934362859042096871608607592341188418311742765400919042516580327021530450473955194710564948989250325412257543284727347774220955850600650679815630291454982949794085986248235628649686592602669071482081828921314391932698547267082945605144437489290720566622150924488105432779820082751315682859423817888886358076846844882156821114988346423514891034778292546813590867038658406224840984551833533639118149333504992969392954044135319350132716897722646218271022460023646464354802983856937925666260683309761503212968978173393626375683693888400461244896745327858148752024238935676895997954768034570089516345689071734417916296627081251635429374003207572096405441135885002471127484874313963688518752754829897707995685845070345700967815258072740660936291781701397064083920102546397607563030971560971114500292585144734042676929760825440998899174070214535133208571471803752252728456863840462031615341911500738590455930777922840940732980426586334326940287700576666141133658477124522131612120422853489795277670542420143876556681292618186903030995876873778401253915446843536051360919293583907583818379933954522909794321280924986744885479568302600827708352208400707078964655195808752109911779030820214669116713230807842864026922224366060542773191951223605360536710840884926308274258700442363382916464547148895382337439237404602077384573319897772635869377740588223637979579148901586593938826923419144812758429910570082329922874726688654992342228785568304309592176162839372014093820944622068651716799582452971621396935546266758743900850735724485867858536297539077714843932307224086333638568730931944974915199477686356935716353724090808315313643338534383885205807628113737049675169356235973102642604112783520312376509426440824871471185975357399618435973738565608398646787805130473144514930314206896067813549676969428547246746180081230627433796300113059088247756771541577301109959966092670846944306880439679831462936619928485908943094259623589191776014671384820284389954604321355043100244604540102471182036947278505547492866718032860567470084183943023816222576331509189513960890597483311124945661084753173157428449878500235093632480355188497274534393261963398310157860603557713161495450020052718767129136426437864985086678012306275393865297288941564804060895812490928321453424656651224776990613044408973447484434767453377142669144496830392406827473140249158552190412162200524901225949055141169137887010206956208124581948280229452209376693539837296693750944300384544955223687812200186828904060094784891887324841222210791629041071184570310432609908152151198187130818558450013383965911986196557095551310015423455431013672036607704462917532082233733685984618743146154881470409978564940001533428854358251568426519478690197294095312987497897747334138952800531383824756249688232554311831361472398242928441225814824642655173603091760309872876372373564446720379613493521225454472367773195299937567924877266485651454200886968176783199520334626204552216632245391855462275679091860442301389866780660155060417550399320282229227115623071079594034718026850573112993157784563371145714590373692690337276283018576977118014037418098691454239798035222124209256950135092909996854450895944376043726874577125547582493936988699615106795285147866006038051258338275708636090720263206893767894868109095380660242097641741625727441204933254295954105252885559370082591459975342267899984906373829020686554332801620836021478133144818547226970722143467005968450814299496478419924136273891477200910668751957246466283513782409771324537446170305842990291371989196789271781683029747615054067604365460036009450752385426106837503024940261077540168818390726012735766789573694935963369030926338194926784733756081941058229813104821301222632740082619554193540980641861131298316160539608120267807892170718769371362057877300576617800094493267582282594563114283819182164647345281724424510731473205062066030282461860734885566905027532360943409942465000730899893098698528895672991305580631703109504027805026340277160266607869994812145587541354504607662747076581065594907286146131067099258361762540186993299223234000958779273061445227248880730611033080747626268428700122153763636694065410874393752251190971046624124686388240497969544303629705475410128206610602746746910780434303028185053933833558309313376887053516909325346363541548460651428579931808992755310960258863946422028924489757961689402190092766602838736701915880920987044860613806817364079745510097526195967140366781245782804599717672402205122365427208108113917312936741084991010996532868672036066212869521353742685668626874254030639526510178930921426888871325724036230200162427116905667125177912401985733265248026518836737603247851213699464518392968216213967821534181583258488132307139433510785285652887951239405932476909609230087218433246740058473643310029903934868449173179495205860778062927785295223063417437025717919523575150036577343603733803402348511167040997178558564794559522072992884985068400659398369175017427054495921533308332111396717121670155612221161713219954342162061851453552334610473909539703895391105621642568717610351530292629670322331093730947975879700097602243295686743143957205136703127361125598625755434859888629502438494520644618482274280773854528890283727355374557115363078772599635323837073181456211171715523788622256783949414174714987505543167707835290999414836692958288394806168083578695470063972815762513607797231162093899629485276716036238412204815965971289056729949820776630275529264566732384396499978537090059160729160712218551706076238831652053701514727670786387596509832087041892178165719319095370109490710850366160259463202705320361548708758905628682648586026192423193102710970570188152140979786826842653603114441492338719486012313511842290139201812716125130634535006912449056834974004665337948994398421910908723566412263322777848426402056217129273241998286298784115484985421547554533341111649302896525106835313963948717423449369784931913038873456440333765746410029314549014861947830236661716329944829017972477197902626920000537083999079985748569495907918177531382957447839405457782110896524691717969612099405181470617988698156645190654555717272854247987705513480924121676332397515128023778780918471422826624219443560745926907136009441497759812686062906295706473466337874797168161591459351988089184651628229651018368250555599046395860013944923589513381839243621973204172847720349434195422981134561281171708469518097428741698472288171672969237755183987840747345724954677294143168934205919794423404703701862192903321276984277097274563362791115105506832967716591913643183341814221509670480538185535962631621526021698738639740865714453478317919581440162423357787545018858411208241742308008754287399263728913813183477776145781367925621245951553676568932977469163850524621713505353719727478130074845769506425928093038694035622203418931356125831601812533231452110240958356078601704181758046708344393411140635121243836192953108735954342688633353049682254828936967169990105706552984970520935999157205164151215947161562154310796874004522008864705899983327841947381466451423988960869316250375471015982815946699159884770118140069239294661458547632993914950717898849136294044642652447255242384638649250566850565513858229704704974745196563071100874780353569966187270572836656684826021772896713085401007447028977824125706849141258187534447753477158647443447903024648816149531092407816645755636557566497010743035579093245042219489425588643270144408184282225666332346686189180762981194612328671438583876730902739281046025045157549005445136160710779334830023964819355376628001830542580086209892641188754818796346196038696794431580609011833626186902212097885414489859248769260760108709545848105364603839754800410151015030679113285838782126669692255056690082171253472536591349893734050191895348422354310899020917226952621805523045783499668898052574322835202422958122402259181151948080773952347573102987799106625811832333649818893638262914688952600253099241785149896106796153083131985469469327818334250924780294546654076205565560988267274061999478721591340529607151855710340893245630595864442833059414903393125660322683110685164941422650938704103725390093563480098290338186961610228645691688412636362887226976268446832443819007548572984237687551983350293919531081554730907588253922567603503901561893009485067675510647453957037250920916398427949135995469062726523287194494316496803795412017491571039676945741203626441883050692806595749374746799919567347678469736841037156809111070212579405003265557225903739209172293856017862439609966889109231937959567664692595601044482492773960894039625713121371552557489408282550713318067327438727735264175818465025360859604937387826263493721985171460297746400047715522078641142498279766195328752804811125656852807981319638175362041933860164085855785451339813531243688776265244568593233690961555421369768494737934639890121205247964222217125389872834682050849064059885156136841978650296952562361818875939682055543627280252506236399986027212511352695483127468624425985128128701573783627042537281729494213227593849974602028584201871233404421152255395415299766623712072559358778461085673907137341192109872960958925609772067252028102319554691504030712909537518822391173136587253554014774715066554289825309765274646933152652906131778428506550628729254166692376739021163989786861388205767763663904875669647233510821091179405262557206638545152420134739333971247572772432808718994683042743731005902539825213731327720417125070949227570749851640453764605203348523210014756688403401973850705901245845046116995389155940671204580996526270979064121820462085624678118153172390001266235325796459006053823898274657549005583502984325608395866227976824374536882611869410310539341025776254257881003446233715457342419674470731224951055235426695522208783270570961436665836626756749496944092844117264471341425260172517621698502523421525734604243755792710686203455990083142970336416772975360103867154276753711820161915948410667651439677458478017068012801363631193633803064490931451819598257274238121600801193470369692176419397899094191265689226733802057390616643590278601568844556380914695759046046384947585991464592698712333889436902714277590046685111128627102709165354298143235737594871176971704446729280248458128860181181901900842764520667500993922189281829225928810783659439861015216902330162021441798612239158872704601260166093787325617250710054333093703133753286664317950600798831189646215606946368892345313288794330065724943315351457433179018429262325134342931461771695107699380412508570583566650058062830736091031400724486084581388522122923905431577338287428425421607670812958158061686551808266310761668012676898182684121949163249718972914822435503799493369198208922463816410894745192810668670372277904600199149696353973463740979483336185300604758585505802838076666722248843225037828357908602059493278682585310770895900437723624205525902327838287559785818121101555814627634009624949635034695229160799304390285943945890578903190461969557065294714000977296443998676511454419071928476954274586636040854537389981922228486210704264397956276596909975330122162927636565930390473519820415955156802368727727400868067890411569375071735512207416602229817069228405972453077008275199580713746814350163558803676449103237312719916366842688614232489691819864931782735806567495606144341203117224724762956732010115231373364312335675122265742238771428316178170530438577923245585320777689419360742913987884236296539550221545987043102594826487722197531229897304106461736118785611741984639871518773655462411514788709764275860616319377072553756756793446229120499604698108175882534169631367468627585649396594686387644176548040696627594330588527293363807615891116301705540767602859667122210996401958168982695244977980733992870107141013932579890626241862031906703954723282345569455800450747481666281435358127253410818493980035376261781925348953692991266069654069853358384356676908075814613961099873006964049385184939568406398255311593615573406963968406233053286233754733838663752792539105995280588838785543936200273271423937261584804179194395441428613044519645398794513935174759364713122532175085693658491351212173854530742780383593457227575663306445566241701743482056188061793605987039183380269549338424479054183608474004142443597305229173636325252785213044248306682863722320647426579593641874376348846824823635391013588987340166446269797216685164689494850289087025174283794978274274186329147369027425164426202912283766483123215844502058011268608924876362892566391179858945387754885664305148588469298648915755652821190211179900985016289571950725691452792339117109320539104433326810731313755599464113649079943130801263232912205005583860737397162142815127354190975885090978668650730048004158642355706635284220188944338511415823994529687427916529048918743344622148465864106359090206441758473100788916637279320875115002523776190610575888700760356053273399607975681429589357826468874302120633914198528676817738501817176177059408450795922917742830823092985201981999395389716738887948445791200054454638379415696953472815101906833885867357934135583302553843824727308875235667524103530990228345964551333033747571851797138413744270313869270566101449290367852359856691177359420154928425373836220222238066145040548132914168681401173187987726641686126956279287182287189426842740301075351148956073895095506084034803013668430662978486739004534572569196777770453277112358850141167549447215372091436453517197833839606948707723081123101816521326899838513028009414763406938668430321065366913190115697437258667022272807273886816446127206464166057652017027146564360144569813730779262866059925769301115127036722793867978873712947210200737235370991671849669346836715044443420575114538551124571797588408604494980487616857613862454415145377825113190734687218170217192564168149788275977821041628988353127127149613739372992217562457773754145575545125446488379363078728580572845547704675194054620754607037182720528671715496338078278637466855659225845174584833721348291739869959165383881438043569674719696859704226290226185038894044549382486979236682772977640582051255682207865903660457098946909519477952465778420017151244716943955061694035733130570368312067182733615130795196443941200674515617373284460024512609321405752494126811438314256349178644682503366542346975056075381730109532360216701317085903717348174344577688297290033923409446922130198072928480694266881441137671466960732385584581135845713282699664951993042201421409209164761082153509974760574778215374863403834056869143519204730249454152035697443465851664248090118398723831642708918667041691934542610061442056923622198172219124050794981047871884831722335907745656182723281151792031978189411131060528948656045169806250484830965883029632984872940579436659317351802586382497032571979828637844399969174458174588706547189446542481358081442780923296063514098794040588034376560662368187053222289820410161829604947567270649530639980642988953488382151259636251970147521761830937314548593091087130869783769721951941139092762581952573077492863462674355757565218471949508917806537669275468859502659888486132264738549884773349925018966709874769885280207556592023751683200694652563894780736611192791330142013073093580650890280260612272562877031458218566256746810274837784071927276352150626992232477428938280247681829260690367339141196678662696413934101456562526202055930565514833729854568434212477028967569122886777682140605071523207201806254468922541786997269488855077599998970476076155923815380074773337969695369267969685534951191386750603641563975855402133128596311460144079341068904954998099230095399831551036382146678543734166580489706505660898103400295397504739655631553517952004056328038567205547680486253162118405076082352346551426652882117702796873056741566598953647456635470007512538883207063318310298910107475563739796538120775059755788859211462797218620741129893206552392348648734641520599145675495315623733354469934155622649996316909405236964557160645302820184664296113158710348375719158497745782431234921011401142526332725141237065536616364000869460779589925169971495784796198208329896566119522212109942484740460624885118279081818419331602815742745282956606581894178787197684124993644909075228147666396042132360157385697831673429458496911921652003579861608098953969670375669960424479376375521938708700921952321357669520557001876999800801324775165527799262037443911659654267263748978343600748172595143928153174059292792119039293500701198858368024798151244322169925557862495405155106536641978407686012290796248106904153810645128019648361417176708572409524048490029573407328118220097217416029372617762630991743654729176400294814470176653232671128634105162447269085435880041301610606397096163480121112927054437472163486155789811860452716338016881947657562313422144333459514311113270321373242773064670903619493021635508607968466887458948488260736382135280290750770183524945849176272989570171711232311962278109987727388493179137618085403465995810669059222771291011378627420975408294245598362787094601699721789300015981159430979504384347210418252917172392354422055269128666704892805965571201732671456536895364770602153718932456261046397145094269746474756267747232565399390676229922265517970387494578088538443270355655083169538616928839594814791987688801143924146435129175229379339064637001543476768056398024403071676305232957591391918797490175957075804583845580321564384683153352138261629010619280317680482988066864389000195729543643562445132650748893407853894179912233838244827165003992797588766099116529146635801752926982185753203479790136483975690756076420346910991332253364685778298937019711246722581219456700855909629335101898777941668464453542172783955774038857368739264076191649341623661164744042025943842187448065491459433343881474862682201878122131191706249772280235855591946195297313004531730750069793183093286431776706188906369717281852221506255043921957139298109226432914588766910889197106947912305931215345116702130285882315522736987361213877219941042591411179201815331983615373124172800881463762177070373265449976738138039038109289686459038887637132299925012683521926296782579567803000002582567414225135210332673847956141493064545142471172997267528217496250609908280563319831554231486694357515920975395543611845300445165398914848774234546852605533773302905040728750013390909697992348618306406001931614530951725959196575381110902927929327972899418682318433283370565631523130580000707974600523410994269634584178544191439354973331238289552867860121052952599864000912209266745346468642936706070653609365251664400688962815641370939099620317726508652131265853097877961618046978848945315229476580102184620580368737740468064982052776763051699804648611365616242891758028218437915376771883981700346897022191257081554667411094249550710643042927664412543492923479875104319736614041169966368466552782069464453596489992290046032454215657448798476954500566857755551840746302981666083799329928917099413318059077009036996237702494780772063844419211677976077570724676851259492020628529478226141993248534673577882682995656660054370233381911638696954251702960196913555629340364475977512629999239938190773633341175773887342667372845588239547316539801219773300074236234705262682323761617864610062915174339014801636005888346174957401238461241493667452083526669049244769721489548767971732403831258646534918516436113278703323077166124408501349330781336157218919099705908323846193345511663508027772988381825778703609058450801216681402817969238759197716950067189295966731983359134110549177201866168682481660028979006613155137355732544948927144691002256252107228057649932799217427648558997788593024941723285798837858184612500327890464709971818839858561158383390926974261844698958146643335227679353024432312091029619608311724550078302569022403766538339734592784854739308566702324508883543150055236453593796538601640826564269028742524608429145253054864853628042942735778397511478652205052384636091027231861569913050034748112116612511215559138147620641617423547659347338188934532249577918484625615834002075968200010902920404689787857651031211357533610203608987956898990298015791675209583218574258667037050634586516072613259327161232887593835744087694468513741173224698278588457353097304472236628358097641390100171892954922600784657101502035700100978256486729487004555781162821169921952783142185903767845421846572346009263475967052583259480911656120062584620529495312715837427977080246240786855531951317685210561760016750214480002894862729039779634380187357506117540006453252164964266790458730468258640831793632157352622043328578400368432445277644972590569310363370430397992018652147337715623899034287476408687192100414858733494290492205883152756216366847814819947691199637107588690044761009420754882633197640904071554938214199732536331580925514996057151826725202690848170437861048117638342038302072331146827123196893432286493790660932685056144167129849176003903532859007206198925220815496340643810474529142963858703061779327215468804842492384000597421356589811082648845564543759553970106648364470933289034450492656220706624495494578732581547068563512840087091501346751719455909267910567066064012585083961706653003899927298139824125098812923839896736884680016751817987977276182629625340882662322210897538649265898064213149497597434881344759834482587600709388097386786169618329320930919116255376795831459926401731242443968851420025533606340459706113494565894687800355904937538677469225272025675964338320483592900044408733757689303080386615621037284184601388696758379446060480675151610586543813442853558405797163339935289660579105303915584774047983356370473382974991149167222610306267279883635416173061647435637875099512330775267358299033404857362941801493018267233230954544401386177197091888887198044526090725853436277828051306808138545697825380361665785707650927491889537452033968463111562742758289703326694513305405555494907699656224497873278155723853601487714523940712121989594525150121680677755599121195816661013900584779125733607029501222963221886334625632538025415476757621316716480023473030311035607912805096829717049420141797673193929815599802925095493876736516212523882415563585834195649190992872134928093155074709403191468276354335371245228468808263401524009602246466838153698518518231447720289266944944601893743597165856079488367741862956315165253249429659554616593099211954573719356509198111599486465841132066715249105836173143622538235590108712900920989923177922457178173658178942638863609758898137434352730436790899076782989617705242250464142668080797647810980315621280009413627344262106930638178926307816773077022679939199304913284914888845011869405205690056574713673887462284168552894862380154148952123879524151522308834618464741947154064380896635012732985844504893307863551966903471523424295571754405394559620061233119642887064583580513285541650163257358036407070710333036721662018431541001088890558470202646526333415358992692736524256415068067090265658982837479417680976277273259223913954205788519063828462831491713411175180321552275301680550769666404121469381751189292334415753609513022724461422913357683026971230174441315282588664091472426397122268900541706608975560513243754822519575372040638371115795049159444102765493964766881238900731352591513829383995767715348903511734427732536149545426141644005388985253524073643729208328710161749331153691772001506879192174894399301532836029588218340339239171078819564817865388230193537904421904433413355670604177735921049027602412401498160319789132883895031930615266600327281261683888047604823495131362524975593905043555277125249010606617674137302253360322536049802112298563337883443648649187726664623545333930395540092426762545722828870069407695854258632096374162984310424117452433875811352315219622158877187501833233331146997239606479642424398319615109698966796225699220525622789814652441706823575586552892003106537601604364939577217132378662535310206147897741984147037712916584869503773013881271309972271978288137365154996690542958405729327607290835592405251344308958641000900203184405305595299081065253968305214590834650734663745391126349868407051291445763146450686236397125586958319962520506064485636322722247795588118864041542618178407706230667635281682631389882903628100294225655662923194583268317884051314645971380114224130215274872354590484017704589696317588500779604689042249111701152148899484590475752042066661111161984950681514181771741200778466005450105255327306092384728731816588661938603995631422892078569979116641229827562864200832484302142192687872453639957728849492630997012571590214885773022365207457684097990371399232920509761531093822462128655312908650724029684839395200935295793474387072783644570163719611455525556153221795064674922749333681834866894167832029056689144922690254262448271957822726478452340977007188896683316280701958720761000475736224370996270976235392492986966795322324642186583262133433043775952824012119340795939773381917798235668895940834402634498727665674076474035490963218198597367170837223112019738699645568874697399591933879851417487315808003202231800920828282579860302703776201755238282877690734215698346520367506819159242081002674714925380074722641556316477661617782565117913619634281995121392965285834066290356506476482991408840515073249863476713216186644578000273397033733775521465649027908824734841060300680466510893634866674598766818380632967451074977342746941192361977008394234536991771685145425117983416286615862718530493185100893229515436903355782421792642492200229746586085834513385220200070109711215212651256974019175771551073746572483350058764621631613629857151512754270468316895959164427098287046594407894171077382866917665830308981004018846818343901416616898178798889534292317050900836317144155366967653130882040553550542042649720576068937724098036230547828269952735451398621054400342831819834863779691610686753735357050859344892615493839006061610567553057491578300600441163982516042555008685090341820496602302591460691972907652389154488033092420378344922460863130226898417909904799382526047283668078451539655542676729895159036872250617367717056092151132462477589477548275816641303038718633371276673224992252930510446206065949532258887426787462571979190487806375301282306893876099128742297063389374413702513498182011529155937736506508515008694426393660409360039952539575205723762889103583152102605257227595562998443770372451746505871321358920742298373463137400577092388073594841223354048925518128758117429126868556137851048421399254413254596455647581167263683184901354457045534212705397039276907201913188113919855919743010888858283384080551550056182496153764396614437129807020883952185924298248782345376470065497386458628781083734055608221885145998988191850232880529708207333081490222385523625386667062391114429312758399629129597239771990567616489719064983777114676717167864460153807312091443437386912545759646308952153478911319174921716656762640711461687732604085192503643121281744719836246480726210724265648586197937544988610468929426225749085471299436095984532296816346425531677188995224327954446425833229805505435845002631006801737986080394974888519765299093787312323387055211569319164012512281825389804752130342567198157212242944450511524333156084590180334059239043215741889801055967403324050033807635156434901304933636811147374449683231268266395768375968935045454917721524743016360957639126071315928946296430713303532198069370787056353410844546297785180921221876400321050078494668358861778833905359831984074118958328419704192098716938014217279042377734049378035342003256802771556807188101401231218055913985507576526771358729810001797366069724215966771713476442936784072700801398901986274225190638749218332063270086881614786946381863276045982484988925427760534384224144902356312740567679323526459954562176262564579956930290501630644486156129180579261670764101107226601090879398147948341248041309424598837934399761571040089926428857516518702637849013587666833145858461611716606058556462923196801463099572512762150273390760158277655861350042724319054117823702876855625568740506054748925981041922689527046207961774284491926575869166887829943952673955392832622782809358772245230106960233516567205315146299745844712889741373176879910726144356873468716610938827990773955633893318885170405813529621617239068550746248490541474862037201354249675135789802545926650386061264891759254348349379255215982718232865135065075302031915875761769502665354741045167961048055551242398977177192245199880029503720635767658384683295348761015427725075252382585666081002199478714825056226075910777318980997285631604864741930077017209960133496247667162069121839018960066656233554482570588013025842109539070961402837696122782296758835604471811981484215127341714820083138206911164292794724434919349240122715130689160388665264262274346544490484842820361115194350420128158279913409619965714143409166913580884279815475068811050009225248353604031683533951862520011111881720944051411232309224258470719742996032501565808227405753609893097457040649339868229364045805646772797995928893082284779456211675277136997361948921935895333894662059237953470226277409580444760162228546293484203222163896189578432403586855550526983951691455956914733071877551070304437018057623482739299493369218501925947646842292996683911372397964083134326964695332627491264515673972163654310816599079092334634819485859919293621041775001080099604365351194709125030738003219126734803557847376800212042963817761685931764472050579577494774100750900413869378010624504443363355088810500538736700267394565679628056531210434292607526311950677792908165301162251768712856766785814692134535825248079698052362213021349161574780445422165761408504494331200801160987169630100282142036670917217708735531234299641306862362030680967770550301330501730308838950391716584318394639524098112614836694661296505492898410797414555212502475220149998210225573153250102385387949515293998538515756956958745649622129322482434324641649784677483658517046408254221599124020125035438599668943957531088262528011120284490773172387520372735699130387050120395802262098412020136059008716202736870624054583467258811626448186935611198660767832053026927573203113542322092652978794840605905590201022421084329281753009940392114897324438317302566696596553224756952099895892134496112431054519262238551725779331491863466963805738160809224951134443563119962973770071972451039114342736933506759244113182867722409639728125039445481594990453734956940114353467154560999561244717687909943915893249202646689299793369952076472335838173905754854498402206960545174142571285729272796993845127690233897213502537891752939982182718053085860767590100730530887132446664744867864260056763095926132281555780887587235997757166946650681165989866402001918346380480386185094235384583692588935714848112788027331886153197515683597483223695401800100803278529003596028581259314140440373572139508264531153644483674199613060902646037539883483357264071399229586912043366122045071504954447693240646166954672113108998302479115578388336133394571893081176023113658392792894361514224089155491072601896074554827749018725166239073546071372594112220015553565330487619377377496876779664727240843313791917683045829563795084269077199858967965096723602291042775749469900424013463773389212832130365635951120438806856052306668090623652439639960557618550297318470821588214509150567505363939985803558952599724014562624308915617587358057333655801170273457936667008597987601214378793329042269451147131618492750533343380064955644908317129159137099827857809078254847987771452667464812731598609380553039226957545479398993380151567572773851066198109880792418664751717991326827673547802727102332043371629340467867158424082826739721437508286070059880835456916464535726772228323335537992082145100979813575831916858904019894807179169214864354327743257353648409535919251213186807693763893414106309318972127084920958127677613410264694709484405980595712032177119602958708207962578825421452622922754271839365071266306124871062898963517099536889933348487851415185727999811395404882190909429901169333655351583618081599452927899743967297526696053696558378097380959901823150468902980625573657494573299679217218529932651697241176176768388624902549952523822803550342420653436438437974648467510665281404939580207150096679705192993763248118679108334321008275872697551320206766805293772071838609921981144142845543277677368604009958019598307747497733478802159056522335748548674659260311168008289015007503426393310508620679884162693058247741938743291245964939735483857206499616750156025298774572188404476308145253747547293095893898872824809129471533027896863938813092153448797924109828382070200065790025262949830201953926961747673728098255305975932556216135838454029509571359946635321029647907331950486173254889533573336406940632167842328086886512113453873495821382381120298251728274837215158056876410469099009425092578443398228606118600765126940348554320972471877130136222397564659282502881104630919180278244151271098263473897266115747906676358005333540890120277287325811411426860081221048610419397912123148642428389673192593446288982366961840217221281431968307541618298910878100759585147878572318996117250106503264444433981487387490260710904071353331667825701824631376114217246599779132180178224373841244279190004680421162209126066683165366266526829108736684735834880706699548550349676337603166601197861096663316264940715230668397724525492862108638150754995320149100424331389523371940956309281231917283696966531594415566681807919567361226211687310896939588162476755821942758953917739473899057451270093820131426654853771760553702526775627552720115258719761709712025855291459944462375047564970733390817442776319016542227456372024659393140799709082255337156314730147470567239540772669182124129809249378059348448159937086315594122538320846234683199781041339156979327774979691723033824245460469213915411131484604278891770737354664257318730111467215882205086408741427634635332982070273861858047835132857391392087756411513592719486765312085382463195120787723488159642462122446216686373156162852579166488551421518371628588279600138713909724284273066438731406647416661516890386579471817872552939205551550886698292629515677866216492719253776531667142750221373342664102088920706401054576087295194073393178603987511347621695966692966039277734734167472786328323663384657896944143022246894387262789690683571295677479958344469922307502165227088298501754667454757711129070449261561501389181835232848333422740518646066105663030396595001865221425421958089297305156342202301840164735199975562327723811072733057005511054801505095144326963499544383750553492117031938559878486175106091933523343870701864631413087883108471511845503341674423153221633887016474842340741008075726319545423285067351726072438807048734052986099540095275538809471422513081710093247562618868806818193530842501096387305799217958720682773937140928019163843543802231544304117590950471051017795616695792614688219656809131369655969165636715330565312789616664144111231289731909861053436594729640250018301355822977993252190938602223025204516381684905637364824919813220527786459911364210723894699182327158105149055483978882068268119132880965163922018065832560295371342355275244176393385262654890866295144551672905984321345929403601475528003829943336128983484020997488591215541817171949403055243878145800884153665099188158571827741400724832001584954485130196715877158861137455082910911994945702923208801151723691365544052901084518669389913539808521659407737030036687363732441222159023780204795680843374593330087949802484265763802068892927403189450727982406582284578901335873930024113029156146197145454044908828268296826412503603185909604518730288934829179014169779966287487887471744018615447659784713073144181538617575575426188525738924698738152074110480000858744627156093287160658766272839958795756283767851062618956105629502870993342431911124503631096842743244705098881568848381318010610942508597944403191081372627555704328142530533881454279705287062986968517323521374614521153830927501110968970102554893034846795726357818032403822837914625220576702168809561834671078575452485134006476248595548122567719119442044107290910266116001348619787635381144066765516548442962929975557329763543837817270199611652938921498755091074856481894942942298821731251010303707564942070710862345890752579233751446764534098309345101777177514211273724322288717962606431770892582416780732973405690393063059121009737823909953602466526947848041587957952632856524667719394468025586337524809086533100044550079189206470738370510084294109872821054053554317718629614769320665879193490195437202066792761579256761777983346898778784312363513562887810696580941166081647064139491863137943285501606174973925432789146990202939209849875812150528005312431901863349032712487203834158331666331083119598976599027329328921591851796428717102212189504473409862961760884498972062345813127718330849498205141377239298877466188190122166693861839260606200865699584866910911383344674360116908832038866619734013183910199875262238994916108373297294326982286303792212234303964963906449808800430327160611051981557943543656674400234084456747316310230940624763415057939057963045512936925275530683162231237161183696011234534772001074681320286955835901236156324138114000711293397145534379048014219356865444422109427078374581965547725017354484182795924687803977937420825856554218277419424068197703925591329853315384380509814200693054954558560470070068670012090339811977734727509375170832503062388839248767598293687447370883466353290935082796262137005669712022311109874595058330554419708155395101327294178201698924686171675329079664590701890041176175077583718324348227598870262375478702262881734601586010541974757911385387492036420327208775061289199120817386890190250869645557921445604520967780434290336845195077968359825643019682057518208096134358088317654787551554061517459065196218044923965885001663573129911063356970150583982499232470768183769236295121344369870598875463242802864271215806061624291481257186927422743025221656880578234886053393854348117440046698310425716847375429517670176058208404132086193728081121812042113921861278710413715708979703862934155287570996770638906845395428341429959430740771728629074933034730521377337738044962547333988455534665801192870904788851741614011338725368977119018917345459325089367072353932480052021265278245117875205828496510140425132076347137737646885809483601249847176718017303575567767753494054743857694272335691099218034723394611742802957626483835281411023680749620363794536153463528547925381035053767211250436191496553780734714339545978596498159989159600050882092078777107932901489935824612852449932233539696077367413750440126740385704646224337236631532196065626827007504704140309133900466272347762295468234836748264273599938607307974760572238857857864424694520067167916072207374930331235050934166693379935665308264349005987533632457960041384118812038087510610891359738397306465426716450677612392302104201078168332996513830723798990682370278799655267226892232614484780363532618019449966312079962456676857292540120903855182958191928654582491490192229376427845697252841085702894346330051179798025131794031514553912961307043555639481380075394005843097779106667635536247482690112920357293222883665081378533232118936975745581710883249337816271229530566170771528647525694587083365677105550746113316900616696987556972428945182072345921994205725026083533829580299942542641920621343574935847103841189499910973717847489430906195074019315717995282863251036559734250463464285416451396733450775718750853210558971051266622787913634087313349544638287287631469946744462878969016147672636919539344483001811358368665695082251511958297056227861946066878111514804938697359554814666235397912528020867165439867012592229859377665669548942061595437617775766884174549952392499262055833797596771330976545948071576397807159861232663523828714413333730724797823774643612436588094978901754330754925263761768353069532821582447534610720167515070520764722108562391091397221863968944520298223621417063609707215594539606624781978841325981761450636031379172160461265127177655916628388972222765249836578500165211825710017289883482571590352065339624379992521138622976152447895531586265131017821403822379497434239734900335716084496258040880710881855826879668844545946050958587934306603800109448513529461194299139559538189927750574235708599829346404581263150391595180694699906702189270670103480121479573406588220940808833041381315875746753395959739430201503385527909717777881929815934348603114875666765825778905366634839454524348816030672830488835260002356770732686491473043994265519501869194420732821026002994927202707734257875747257575451829209650339103649958805672281291745828856160479999558525740839945243138231074570954299886371785001231187322785578231871606141194847884161877569815740175163718821165339861105774200088219720676650750435716720967543221450916637319211795333109601371358152154496082230473084797526402616599585388708431315094360078493749832307439417588831319108439378672709282203973848856185259534627823322188065558159201014920973323900153960856552188238981192994025487913807680416426318623548366043210728059553534842182787114271628196527921000182411013117378403441371414119761879647082940434746007748192157012475522913528252869593887465282232978629580689774326107798954954783758639814923066166638171755203750190006362844633885780285786191499289662306840376790027982461550326183051211104185907944397565025978125410356558480789438546854272825567328790081437204360941017984234607621986444259416437666827494085966898481672250757562859925673927858297776029651784071552556251723262223967441118224578208459266867558151367955799662691202755584800027909276705367814478247900185372312648936094259889012984723177100461744956034843663655086836271461557820798679669445548656083062653163516832694010436733653694981720613494877232461504013144493113902432220234131585744842588344691872497756427503141247225479999105322898051740358391925887662193522848096979473398712297620251085093171095044600885506548185381065798740917390518037320608453236538789526677363805965188530039172965714776899983552631535933994787537304767125425314312882965305263538247665035094029462875115774890561459244560460533018180766051173908420293398694545738299344732862169040101125146210102740314531404847813006235643319154408497695642149340748108009576516260182990730828916821281673217541501201369766897847498873319790366729794172218583138403014895140899510871894031420802330183844639495092657802134968816318853907611487299448653755342171967894558419170102710874772971847979970350767371888816069720895340252491283910948381430495625475789222283269887911014793770391632612356890105310489797301068223556731694851812376468526497864111527115124220954903055002243329930815784836534551964496773666892798594471743019769358077745773187398242562590638780199490678633037669561596309349202248505318797695567501799914054068603876214516737737865359993016738119531481774552242476980269952748891263355406342697742680030637145237277253045002822166356584124046143289464267334482664837861475337277166781899587149793702272004234091320373483083101100931085851964452271568354195261330571302935541027854329781716273382617077581885831213581766939039201067761835357576614508135815353883656206617958453576308536551586098710128547055391701400448960383448257478831732597772890484287045616127767354335268442974253366559486935862402850296067123214662165501367700223686585338927891626400649777280082578816128371479886754310824906305273487071725769412815967384316355753936094423475664572152455728411443711892559180001229308227733274313412954603200285523781608193051860829877050950526340639267449219260408121350801185369878036594942958379570017363478265094878246202446909149123487860956157146337494358023699081606556245452221087595859790332187888323150791859095401075692824663108488267139693510454541430640584003925493897179070915763542162174923932579358799569920701305617232845129628617598013040617400041823592162984053173778786782581366329415232907683537355891110730461329998975932866147968608368335733284555522862858191802148940544315404180046493168207853396927820706166784324467106496821488065325959353158757290936594171613651580010051665099117123746262465703010803148845967701904637053310906907262309914167113930232234511493428023094847650527338584693265530981055328997598353153517889468413362344928385406638274822872168784765114970371700289455644151248298356172720338459727798313717343543807648363510884586501957642827137131105676855209394455520919655773587416253072431920251798660509501822231664137087475250176936350808719377099154125851917825718869547482299850984146597365971644944778346921995203783876163026997134474673350039830692448393719126757783014498477911758856992650025363196006518885193333677952881517020023526438667011561572342047595944681400315156296911571661372620908930020667295080291813519540726889325294667246217586474413971966875414657537590903104834414407346506218771676404367465808051949438361443109187857886803629758315484492727062145340251601780830756135271231607162893031545527708558714637393440270998112834474648793604249029791830159655991676535096005182867885430787238366082153789621878492089479259525842555932452645244061635826480035720473395672041476333572582622284479004596596727057255675795204129786137376458970852655019919248393133553186524958507064160104949619592608518616527627644103080317507774192182748238520637948778085959434417565679850264753349306903804123758748224855586145621541689925793375354413248881037220858339520377928211095902449395726111853481426540060857809608582201493742239757750324409295253606596104528630263461076768808257699803226685326002815220929395261217463041035242803041680901647968532512742041608209161931135668506364576001168262367579325654813824255855682491140095250083128465900359969377786575276640575749615009788295963936408446892211083510263726769098704418738664817892267140334497749724781048370477297651670235772018791132472143118195484871860248773283205940421117561698375255306036481169414308882152930452229314034648589515644020090763641971851451559010468403949751901530174237772406730487260342735960129495297022827293017143104690184503182769341488212163523097238197019452437375362051974184111317019327402319455304328455675794436264782313570871656071142491143054514387595841890509152883263877162125459769442807092243986768150236959147056995495604780167843861192550463223825135037663279367815528189289373343703981848287549570280287568567545761235805693878285701938322843154507029883899699491038880630166141730247681177210270758807441032368373228599994341719454618151377389715223630407023801426335662132129477438139125798308747935987479716827901149944208772396640796520724935419879864346883680906385368108043162886735008692576491909913126548850626743179256686272874987437899126431595633614068807625677262755015045239058865771843677887475351591825224745573708334511192897100679295038215621029472713997939490157116543895700297313653971643892257133552391234848314857634218230553205181962747205114528585742183703625700670751505086579893646869026101432348329579408038886189489095201401998272224942178407364291824602583474549478077915693179432330822655170084290378091130701004191683955779290803477390732382031691504649579464450030526838524158482879289883586955130260419478241143085726646022419619019069112447338386545275153835246091084945082786406075627600449148010932446951407183525066740105554921338401964870555740848121784808440858272816376483456247227357926434312714610542965745094315098085796841970375783504547942309179338169287993264131908160936930181267354105935145900386848856500346821037905471727436700257195785222795780678568313411594309921848851089000459273558742926056856546391111212355021904752041279487974991030701627785127039284830647156495379388796131688233823935271701940071593417548591134645468870396215996859000810696849560917225894204303904681767071309759984524627697408049777134538817259558428018090034265140412675056297344962029865882996243245737336135008612488910391494338615844442663746913624288150677525694354326216607130366519186163008543421218369940980982545161549390302977664785897103307856290024229628221171344026703830585699930456062446181701615542620910279912578332247123276477768005334634455030258843620500999830092866421024582530046104032545750910405944459502864953165405777574231260054926340822034824167494142354739151874838823131306216238883881444565498477295473504521893940934784062942044349247864748539360430598728198776908107378087403482580552623339844112040418064631232250223863163393833786212316087914811849409905004176374360014299503895763030276612769366298288246170346823555640135193322785467677925939911227962460913963374023978794941673700845638975806553285190900798814237789967220162802485285502951943184608109113496684684272683654346932737649102708693389757724952728841326691023248448801613361806464484276332737713329337548983247105809600288178077963432785074092578118917120247161314074227621629649976616025939402879527093761626297380786978507517114294462087571220312053917404876225844321436629876503762360806317373302870223996803805513133880937506122757834987276656981062906633907683733660331655333544334962234443239282701223791768743806826981011647873866019820302508779788576883849292454440721995985366046758107234854366254304015176301966896722856800557293998625520601691756761750195413404744282374146095611703644459207585392671314755620393442653863366204766110600861304544456207493830678325046907567487373182430386145527353012670363722654170587857131019871567786940217212071905432045258735170069025281684827786775767083209947001272270958175689098957972687901214842290542897901950181715137685454886796653341456225330806799179834344452324560590741764257534491692672168578915686937313682767925188016210792607815962049444765037253987282469123297403685102505025080953985785133230729487260035358178046312233287707782139129394231709298398090516800994676281853966992621619794349967919914690936403358929145181807353542009582035813283555754129351252484339828316996888836354532658046927057799255331042564299665063559450116444678800484390030680160650486525183424404488850022344386172822559136556310458725376225589025935003739207194916030165784713191209810594624038866991035619505801758896540056376276660691360778240434324780060009586245569629709469201400078841490216386337681704894743378848933326518952284716817061462290009996673016723103995381421402489393346355809935133551579422748347137689388907129555749942459597754862577581474203627859182415091234472927564668130233153793468042173323238115738448675757279803084099967278313495351246645080161481613363333767148356152156367186187378338860434205863412249984551384503846486849991854875247736415922801038843904088939654786389605728651995967908348143140206222217365967998700289036676912961913408491197175606551818789278943749995652052111112108680677836944078136461862899050415087406257956075289653643142385382301944994892815951754592288209385772762117019802040191107064262240229455281105938687257195639670143817150166987922221647529069638544153833826789474239742181864050135137591003592339430963033917147211024860263343187720196912615608062639625958153271397651113810757889102596264460491346695094673295685148686993031942045788706126198422601620490286710086818413046613797040619168812985008620274969399888474485541945950068487321245229632702232667709069354640318040866961267158975011942432185919065144121429964603400110551976855181967464727896471701536231523151152130998408759882880315534871583141805094962662125146998533312766866778458734186494710639206185723167894492429166840407131069337630510054059229343611968574203791837239107969520225488565873565169477121028936769048138638314015668666803821531762165286906685490118050136795662395647954420096810537254214057409538479759989380304168203075146322377894760237543052774704037175691341212649236819722802842002334962131032501337380693993194404285738014058475192137464088783478102385968369384595727616984995830417132159796242931592941563756801259089330055986442523429861663647910965224706827497683364560839079540631645939668814076016099841131793548413848840057449240203935122823389360999616488946178169481453928078794800282786481862695318857148390392688278203345468264192913725401052592497841418603194265524728919104148721715137601505301637389446585132799997716744729377730351889471344696408993865014095444606319100441115177753716098879155371045303436749763477688357759807889449467713359240701762157640848879328028453514800288081179462920478845118207388505989092967255381199017271020557514227491950644080819367959345374009920080858340933057116561991336583355910798164090134400947718850551558779774539032382792407392886312166638420405750400681734896435597669872114280549631732997923137982189753643505120702516560047204157624539792601789309119044252015848132261785816594612367258485646785764572045109885939618164169667558171598657888236347162286037457369229434082370651987724995383962194775365977334754310205245749841062634390618017719362265241057383732357891204800734617533658043907895649549603301020477320617525795965632526536728786425200444551149572738257193210634285016237252697819424378344586851481579703478062820746094763617109217992093249787999918193475680585351997278428083702773804789592596454663625305032002046578803116041860289128077435002009761376030790229677687120544095312106168188152113461091014326997886994951119151230983621941659505991071198689970792306938434701885894656488408440222837410086738626519922329011262737310804406577120430947753329947934954279994975157953729522001903999841821402517140939042621450233575661295569788579462127176912185816576213679352409678416923344983350141306330425011017744463079179365127280565221014091824659494386540071938241955455201958708993516198476674087380951266729598376197107362058062409665232115198125703294958650068698427847682373940093946929603874096704938321212794723789319773411569267174284066728713683108874732849232056140774869407546918655354103303934036076302308414997817089182684388297884251952901164334007913182200298199897757178757194550240582724260320053728716493503607161339149903925318599510269422125385790728861178401442519053021120850515579449713354692249942517734902869341541126437833269128018705705126692127961674907604373391553361394447293946826191779681536454283761906594083870451135689263374720864362471820793794670914384047850961529633174691887469987972511510197807877675122735867016355523002078380115185430757063877376858057035781974074317209458327747346132685306320990484198553514135643317951263761473529074284712607100037290774189700209702779554149617790868338410861687051142242181663282970620990983139080894964928625096893240057688029460708995986529316462995436584635887173624248365262698611604760321209717234874130609449396761527478005733446936020920996475813412751849022399526427961951349091978787285497689903251164289162241426839436938533861702491603434856100072287446356207186720452803123175104126213233662260117331306202595643781753820595519971616546054071048879060084617573071762603456239706710648640428967637715068751203017109882558050199369328121726651145841933360769481396300757607155284774246790992903131376643814518934859460508967377069671713547365895101143268530523521407652505018173272124966326339289561407448904842240583011672464205109869513428657512544407740069355828541543160582617951229489597287233300170961842894583323060802046188681511829418127181816474213392721337032818644512863741846913576536075087592069962635522180835242654419003823314055795183695779708439223310027547385309519994151349906435716803677365156378207122981370990654837439054261524680772574249762128633592138137345863739361424047832563871606600775787658651563523176109938106361184643974532511261803384322794816847475300217098277827776774613934111276835156697858804639017833796384633069512431215851805081426018347344977071155103591992447977945405016066278543789684412675799931406760035153650270027088923525291215282355580341043932565245781415626177344343746107510117532463209289532084297624714821298786055734967022631748670959382625837932128450070615420205542645416648295656966161890762768510852881224974171641965163327724926857417249826422117380939067323908108327941466057291303991164640425203561594319234617394750417340383586592547027694065114702234528725034051263186953035994564264331616289823915951701477861780862513318780553895198673711770745299095647545378844464507734827089776003046303642965381292131159238600909000221491078514085739123755754693505493750333431428917142039092557367067588427609033754977300053998482062958708248826404744321867778209706639928036797067539180979537858741303169623581741896983822201186841589617096859618911218422039106295154732589782372643724209887181867309900584675962486180774126693102646266230837316837283787300298458381750888212041202862490919883296556323835556760647814211652179900275532836459804963392871278386521987872343675974626720123143191215638081778243993158599461619691834051230600064479212486739800948874078504162759725427659185759336971848822763501829967822989090743625430690507116824323143706291816671677570036253464850704289901687377924253224387470200013491730552676130946798591096372738036500344816769144560927689574846535795546284541594302691053093843753787054433869880504202545056495134946678448791179363955154338426873984960424629550782973883787738841829606325434775166511407176390916492662041789648420069639176714666467308727710521534296629123482515902742468038972191775871987530655807204424592166639365600539320895126110830948298054124578370485120127130443731839233143017736908365088300560117660275514880331187416325602420157885265083127257150719837072683220828117022089479623511091852025659256600271527706650721350879850796881717665359234594427959119458479544235059809966706247415456223949237280773555105295860756740731259835936461163033586221199481106067944614271278408329436074488302299751429821138433598654569866357819870490095386296874183356468907352614425149507291681786033292237223444116808138088574874681744332916154999877685156675335710083644166588358389285146980766228712815489394007510097526116056837920745243914461273147676980620596372489075392182283183492996010979588572574289731021680206037658051374575085968556866406769556111010104251369757092337639725485257572506794306478967949253179603848786565651764342069829521801680937173726142119549436753951388103037113533141065019796867366901063725741409105502893200483481004591355958189444189736736764809070855785868135330952246101391696120765746993948443007161088936739841176396470163335993137894768818576615048232804074156954296099346565392921062600763067879947588694656265125760774667968636620291321929579036247838066807939875227421869340725751813616686895813768327543117959220461204297171082675819872765607799235721458523148131133424534666716345526233202356947737988281580933655680195771708005052436433136584718638873811449231610332182635291978759333191654777379967320959629101641634889081676192106161420010347707405075368636230857713081826241964953963493411277542042473665600919122160374497810375078117325159533690556167088331175040909590521096936624650667604940571358483270282063920770381132240939795520131136913737274825058185335539749113454966612409496832661046834943887523511648943516405139165927362732224572127479187619350181414827482597595222027648814882033830021736307504916236899318593383683195238696960830829544447229642947368885361919318406449235297759240364469366439240335835908490122455303026414514056765471140602796004975420237229255425621002237000385595181203433206160713404020502762190514312104518207889810231467127674948691770493265980887019128856086253990492542051397963671604940293025816757012879338857782687851990325588970202479527825038058177889777065644759595065356959076999918574500982466289186583029747182537433682828778796734784572429959166956684588125590536165877715443087597488560987225218644371549019925723300511830720740049731676116943729488229802550477818949458660597317742595084506266748615719341851370689675208814126891337330325536564795450669801914039185889712501450330515115818955991788283655113892009933863301450365166547497882518031799981286419282898309034520684773611006513408640480186513847005970416178761491796666985851922572765097941466368147462167878938933062414253172964525945491413150730887018287344429048735156461186634593407651330252057273838816241330403200581107046677823372050280036407378183340509096628491110366031354917546988247543633336247171370703165668158568729361472623800860663646356864449269848599263701554899067182944342103518720220409792581028440831176809633898437390602706252641935154381328550335884348113653970533349513600330992766940832867654087312495721339504245783544705758712081981070759334353136257846742186914070270346074181161296355765609708442250236071681890802174381531293372898296158600282648959015828602907323407168990262099814046289544313307960392174848772570436036292075054533423536434096053683910505994980091957910985967515718765997941223467001212486711885528268172828328455794451026484474673460477291144878377694090845331172587326787662534598450924746897861912108897527004160552059429207025146151498761105561008340369366578285495535970677206786695109007913660768962583407992640541214886130906525353689479440827271189409031726599349454282839723110191621034790744692863176409479926083955322545884850468115105985898233713150361620232963141036388685326484234973882421368592041327127796993051988884780876269318972573269855148570106290155999627293250086110601136150120805245016079616588143325647270912087050266221184260776962837719415137729840955693215634378239428524666410180202329060687957401515361560560701460452194521164109370399986076952898457501253523113816635252059874284141983227644698259031163844220409643895692367276678240203030086352368763930352654081655813070058844132100467390824477110339447365079640022364207789173189613039435702345625356971120729740463758294454397507264340011950815216680547243942626168833037742284895135350069636373949481758144186527563602145406763487189616845032653550780791333669360849922809431656083410631897914708984087517129999602314407837594035789211270385576214986134076751144048971506783964962050669627178596696133271964798128808069684387284045386799142644168036594203661476996424403882449224859610800255366347304117693510361358818121397245520832784393255253247802436486940191509965445140144961462572992089907075622768969522306208017270502729562710819619766418894182996396318288180335317012365693845370736936802645563488386383811396283598266998395015251733990554640286317115741881664238062719836863583279115599609006966605534637349506853286420307237949582765328457933799505383108958917599803030646788641764539826420022170318960031711394821485867467152603248969633448910890723996384397587597324573284690071904227881866204442330107831586204855062480594161395665062984905754472508483787764672563839044654244860480732016051976579415372516598773732369286955158506676642409179267094477503057148694530924716907356848141264958187654842529345944953896805010004158179293106958466485659920113268565031092738564475450693396440343754033569109749149838011457901892237764656154022401534799150604817723076575815075698167820723061502692659134977232181341524681798623365328379264531752693873271234441558855694503277314156902199574257193674394697750646305698670904193439701514011149192312884673477385035377198314406455735167071006224176977366467338240896752883609640058834547126396050745151571078301323120639082732982989367243256570795638369115448735670649183176570044733623880528206669843872702165127368249506253471796010526779296140549145049297941789822605351839847850812463383474501080689680746930229925633531078660563570600403632974520424745590069144251523396409473528844937501034512853376497588900748822558961632161525990477416788314271126466933640726645869013655287795336353897721995575012169759041758382218175241721955687265800166107375973273531197752021157988510220138582722950195473944586706207850737579685527371703018494347614974681686793383340364621181283437613177059406024593172172704220303831142961681917042461953785690664217089104209707437147449895673200284077124972744080299735730129127159826973371574341453879031564597779337703669523388686972827848072891412823771310839637613336929426869174029227338120912854360627646154460490486241753100893456872082597743979635164291220619589975508261827625312007028329561949231457435998382426082375010962370191763399043646218157817377346793869122439426190334392492802408288623721629508925669490391649095918259422646196664769051142468993186260166995214839421082773000826051698128912940070560345035557199883101337223339058718133920420454668982653735476431152487039021638928683441039998838556691458296125150097981175686900778878747511119581900896894342107253722549815883351187879107415378766313882565622870033009127311108259276828054673480811637886310172408036182315201425094445464482392387942361662490178170895690115177032246335251804527366080350950909765801483412690808288497929805584069640050124337633432482746377591310415236541220415700295911412063726197424987629550238264306808666124794359138997448986783470980247401579193949873155023172250657440720480987072598701563867944501068652474229158362455349360128424606913983498995279920849034339379028941130432855370993306930444330429500034635667041865483675509837581600442996542193883862779052975877388859026317587467327294402544919453539544919694188643522404941417583500680540128050923019485108927067000877145914908144482550318333405731971096964793531812060039231681164032704574322980602978905005729485527419456593237839847918914101508050771007081899573446551192667647979237819871570720879394664083277089765778444855539253658513285995857391264961885519821481428070024962649401980718243459264912910383768802264315794114742350776946907872254581802607286909882449905352875869229726792871100886635637495737218086757467820912066597429145196157389378200749499492936726156930973868316680726201942472569288428804976100674897304308667534482456498662585350703925361656271808500596226057742341614397223104145410431001951908929789020563183803058135862418261281769554685505014089680255056698736156965442851950897077035903418540726207452628900341273121433994100679436770587714608775896102086837899151141383968565256727558848591722611348650459728706053523283123896315366872477857317528175698380176132949210573232335436041927361623421953465640585873119742721576016979776262354255735989225886249677397101866153969704556258246034344592862950479390296847197111885855591201221099621138084693069650324230887580113718184685824060159324178910094825510542869066244179416101241691879257920977299353184470132012209536555696842674325792723138433429775987731732104342175643942317728815676482847412763219773774987644644176655274263334031386425834209077032106741594583868475611105165638666364811780558471637631904661690395810941348198085992148918893245192669789267773004459464450013352815655559011222477018364146636066816815445099049042698860827751783672916592231357340056786157054883979096054568759788332752803954105550107738429509848244736588597793277538552537736839127010719037765346106015129862131236565837407370225090049950990344495438484207462020370816814923016847843756939710427265746336624562780144098169712257801664520856945305223828126048845056683918847330874955862277976515959633124549595468609039904460088204243461425226140020860840777830049446383691412322864006303541668537940869365879096670492434201482115893623807395377576081488494798928217280166138992567344249474176911251731600074213605300911498147934344600934072351411716825168197419210530280984924218528766656876535137609851871011523502271755350658082332012448936888489295922138196660040276185547170725373153333817494497798477220134101085516773685098383687452389751023634152343603762652059026617878146834376097614166735727659997105053274269756704402879957953914832287133663693487291798853951938476149572401555811630500231541780696295639957839271917049314230259637726575695690677041486285894788199825060386317834576250994208397881415370201501092212161924159385540786188442766401170235001319330945030488351818928394554225361569445687847620021663390639366593097522225742531193318032947307089250677374664823956009324948792999702947936399893835132834968976756050007777783148410157023794701584790594974699956970783635093295965194512259680960980274236909440510395312946018723557516191905177475819124403471847195991847557441238040751238391358760581252156748821102870330392807561822110433526358789145580984991236522465506280077943187582242618957346091010760722536379434643647402666900659833362201190148021026300036087706364761973901229585202120010180994407862915118311324853029990839799573664211454980473147599659160386294582413116960457922602143201224298683520650058269913663832057558758485970030787481553169227621479182988724686929419068603786515585130842648780159252148953878829931895544401233331844581620863114334697446282293306714841196205948604520488387935953173518125388727849825025027443331192120232616400182827185110852600173254241397814939928564577189904793212274103277479263286092967912818470088327741253111233367950414642723074731400512906132740680880037751906119772088818637613027778105162839349953548152514602808582994594644626090031728619836771454977443867613420258623797970885895275557970039872731116297894319749916972687990147906284953747450205505417983704689065221736653477456449388860823699628928912267870430517007388789319699160599752385232977852856196862039009424467073197716241522219044264884014179810640782660608636237049163772763051421438445241520953447075712508473513732433056897056103837414041522048111344267863909939651787851072195326909034235350588162237703272114182144444670065273485411976794643192882300163508620897386413406387346686544504653400532837363631757448883293112355926380171819001357423443869995497981236469136975836730255817220064199243152113405198471201742364833873644930295078361250025875872768874565902529431669627273314061764745499032769678369524102234401646064807936265943308420750944793392380512883711358045965126933610389710257369847905689378443236103807858195266525399864748823160583164978033428095646318248737737378845844665449461746400913867719885997013722783531502442542939947632361000134025954020193043906619837666705261303885966780629520952147857512035571558387602320769417851482818818291564261589488067685427567547503545925224562382009341064202686908497961542444099348558449043986197819654855698342881751033821149538992380108485935323225551599616645297445563000374292491195539456783601402523767379716385508102256703411279981982666872537857945712873817909971050735942726329970871207700738086070717700822333939511345989959516380766317693191481877504029173775147954758681866240377762917163046565069249165889735883158150275995107104929685421484495351977022530922279000244537177201208116792561528035523325915630989966712489296594439006146766529486634674948501340552991184505398611960612361745093690977509548600839420157601227543588016330666634544561834227088763465559854309198743738127461671405948195075571567336088775420575613192864813035300302468721868535667078364074370572951004482321112065378258053611805311866830920527615215175898309877256599419242996674193586818854788861105567939165861788765231477932622359119968119408082712854996681921922088941565701702316088758628340820115666912040404708805489493949116549741603315986100804981902346313781938788769354336778899413004050084932475365090536591588676229121619315962453333092041373187051401919027485796569899675228937233806303074325734670049136361696180581094222945896593058091180370925973995165129792719547046947566379353957058821214048231074833581365553703985802846037488913553790993276850204210013086045503021592555264125904479943025857975380341147427792649240281539623610933056669082629361093342624171793060297058986321907257679484755377815851634765059727306013510518348200402336074296559633323737904445541536240681691928092722706894672740341188777819188113144929327297537616000684933888873682537504120897045074821297632411991942266981166499141159033473633862114944055189499590529915322895807812365899389074078973429188163273547078292720744346057088900734632702551515886702421402953871463792912895489766590772430079933911810022250346428376573923140865597492066949752968315324501008769659774806853564749702995035110765109296149918495092187167147345716169802575001227175841777309143629148975129544438736192765179897248621139232935373315525117374828166306548111504055641574567494428161376627433868496548726409750084960083748661446212431701849641450024952449424033629125612208291764625172862392728709033432044747922871383444689770728970574196191108253707429203503783633527903482028926771074208875531161637007580847295217137193016447588560529422223413049126269958283691347579390199239517890150507693128796725590191463815037519607777592341933810740144249492652963191147308417149078479471619412782465976844518615353711627075028073802140000304606946549801472272381685281658432467835262669411361473856163929915512269008823482880277888360698609214874786014489215050680041691521792860041649612894321944080203279200223867335623111160773432321769418378418364322403894328586358706724700337004729280902710500075117002522638530122651371500462462547594283597305606144519890355777208749283036341208167610880567124898915529252141222002815440957932729507079591516175901295660897909813397834909371143107614612931779102262762765035360313083476843590768351078935763735508262806471168913770312563331090610009099961479790295090223832823460969304038882750537512214651713835728708423227236060181138077290430068847973535258267182464101749756999894785507168802109583541303458015969196873805189797905002893809407207840507344933718562523693515934787842689972302480405123051442487612859736548123432454705975635662901883879265909000625058788003847846519593188425745183636853222588785566788585943657158922805857948850966978529022003972589145594226450570984282264622782553648627004218996189552864701016595592775471297129474636022334754652780635646107506780097632803001523052037515288879593326942219228999516492445909201621922386269532749323151717195551850997482036931301501629972312047592048166574250922571400736390365319035502008425902309246794529274737453674269631959741252177234291749491138460903271760149834568846111246052599449811600259625000789137662166552185887428230010171894385300509794902001274829870744281343259773372764995868461489119999192571329903817815804637188042867572177424680133301379281142817346177423311843413511404323871921599243700543601811750474533625708943922531247117859793621152776271453998129882325129278121474452445032016865326363322830019289813665733993150181193941511049580860537482056643342232098319346641608722466862366551964518176684728087709543072053897363520066099128191499468053539004122145919120393565970570671116127195813658830052390994250064585468143524742895417617661549832317478116282219513885071442238893666810189914530795118834796237441265385201379262051528923846305372662004803758460150431072207096924187691855402991413301627268799001680122523782883775604931862490510122625320996556117421935534270441860799313224143630089757621087741667213040312710767414298775201495949613375679866884586811827014516627525748107280653299026630982725384637657936691865269982816606653676399823042579786537494609088821580139335425772702450359396118900253347023378663015633290845536168127761398337498726637487476398323920280626848779195802888816850977396871449259154143763712800628480297767803209845763422887359941276447136782737200964046085790684492846222379660954904188025987305412066168678547408774487041820921568916694581066553872924444862183826782350151475727981728216972571134098120783092900097920414373289368944522281004715465665441127310662929613541166111929039745147012587369750958134795426143990747973391930433095561229897403969770986239323471673514815008325346515169511670921704341795460050888912410207535610748268055439140237175171858444661512841152638881332007136263355179344574557765081869498599985318203161790840158362565080071941292698847733331458725790208035984057254209048591843839069115514171304998243509699068445104545497043337838522375957423528502372269238928770905655852095960894789901464496672794056847648574622786311721970034733628540197318337383530495963563284576421175111117240582932982869991110582413949331342640390234617570786619251239326007412547223553716890569697766362862348329390460134824988308508505642946295971306120127747651198590197367739260934360393622824377432394976423085530110401617360829424963284432560429288156514299473417146917512593156452797745428034046505468238275982368182537350763940199364424068767868030263543520248751233485068187049768453547390973731129261151850367626629754891138716392090073147450117809253627129538305324362447471392159007695593386089597324500388379622707371526061392817857245724437419241752123202040420592870972880145849104675822537649804379928824121458868368874020833234232040211139679184707657057442563445358161275784454471811554983327367385642451207736840283342471989477818365535565176441809845465367148333377513255991438670945764833680375346066267686704550152868470149228757309562686722364494979042164426009250992534649841315584223134539082284484216776967016276352826008344073399712578060323364825175730456069216794418781262586872306398169470515505918031831564010757937558691362362568518234510904790280823316289870895583588350548761628898804795261766234681173165907967901542905102130372746513015730519858262098928422348902088062460897914241860825359863233795547273535321065123272811499651479949339406289206365177692876187804747748084308236243396381739183553282774502100987023639952928333483021424314397798565104067045952726704521850296086572903732065031114422438044852031866540014843329561073415417109915683180169652400903780244328744505125119958263780781805091798627121228313995678092944229709662332373204858893519507246314563801146458044280056002035727389490362421354201874784622555205698737969966217488947069524879315407014681964858926126768901529770863060738508455629408379497541937081598375267396817509957962833842221204719646349721463261638343758878037812672307332595682185950188937072184257524133756672788211148724723257863559882691465833257800251266159798280744476030437641603309993592012325469432723623607271455875580403548035602286208338342870584854515200704545974491804707167885119450367573088922768957319105152530499513655680867287501172968881203368512556674407981783177257511026317329795333200751696053629939186114215345311313570063824289932084649157747227626040219677972541807950929683839914308224919800369344022932491839901585115119874793989400753784276433455763085712929620223311594441917263848435583177329987867918145434881706923909734011562156991602117025850990371089640698265908328172112825096820023326190824657780868020031490592663781411984690830026470699733719659946852220992026488725436695989086385526727153504870153205211865351132389719364303745500755432639843935333739238273714636990217630666520365714548565388219552635205676428795191988231268421293688748842341168489183701140346716312427443483474807815358652991002431452902293443445784709061686650622134156745683627011215715409110374127392354667695607022036024956881010345716804169693932853435019750098493683772654659863154024509600271876955721379389634571565860016282874837337130316246945939147100983260713927778369953076280760869013706330536638887401819286568840170020262588279796989520319392046868975318549714253112878426410250872100331357340873763524593833407893109245889832414321562930098925704324369084479593094552707246736761567930984778184131991210271682148545929263920737275895398908177614872067586742688162151029412846717224413929508077223927273416864826072079511433387006703330313799285340523915586411538556880437790360429873426042550168332362976299807300033096408196243519774152755714313545802238795336787891108574784203113818420305440033642845397097502395048369162961442722272542442310450853324564397534435293486208460556112720952969974115472955363808432948384293595787084273936372181391732502692525955225880745954603299020752979721652632306052354418791318259938951470778030916795018710173754753134822584477896052975580940801872664820341457612191890732943812609075696763809358713388227871202869943260464110928005882913449394200382479816944533883103247130128883867935423859235268709546309926197882064581998699737093031533528289620448491253207617751488535983346468593437329351551372782836157547780847626951531412759191001902564482231449832642383058352823389964010615625269194007402025827226263158209362785283213160318305846143235834270924621759746708236530020764975873120643132915948515105156961363829751429709213744861302765497158264579293713100983279089277494303935742162468739216529767153983056523450168469758864199782795769548898106558936561287047305240494064283596852434639651100108083404226213840127542684775232069232328952605077658672920054073646961672583755051127316906325427306334849943077906667490586356377806267747793882202070254597237208564424867329864144709549449327792216211696096315849013711740553784139726701971570969540921802305422828089952639830696598268078859183426791023003929977664441068836338264324014628792452975334053235909215266021963351320641572883540857456406053132345330726303402961688047793387609989947520522274826501659688520134324787236584618232372995075007751800489815535017255101590549933082956309397432755895490437247965382409814406787335834148662743744878707160886363288350094330018512960645375688020223390300262281374357079577620638892406464079383779142383680207004057831659498717563500843615466429267130596563951142416972519472292607794654669594435032395032919214779537478744577977385827941413635649660859325607847486031858893982250624142234869273529741028503106963011558710335407875389449794351705976472745925950728366733528180298699081250012927202997641225123089335441014761054640088465096568390467026583003375881405584986807192589471146151473454103678724873051885713227850247911060118425384680543036366993620493649033574452936123886232505026465481924943658181465895251557017381171592887038109363481836806202836376061117434687644713890768512878340762464879123986424374998420016382369420104815394353890577258173625570626994739241678807055797124725531700476315052259682991771118504720350101646326777774454847442262874962878357194826957644905036932507576022098844493937259729518653419210027776310825270031647489554975376883814002210527202508472692845726690766156779925537450162479794537575262357874206414358043207181483746699181504424476033928234964261717603130987295088542393184191972314867300843594453366385596243521503996730078625915177037867840959424196670280166341285852503600477192007181834373306280851132512753862672386485410406904999058651172350889718006498361238365675969463022469414550818585317129193300585865037710442985489720818653396764387225667846482864978718423822896558266065957559045737534594833919389501419077017035097740760948793334710236642479445168027894629349293903846909644792016524600834106405172940964470694329797179271452687420376439577004423367300527497815701057762551075970690577439117432862486858226393021090179118213775817523271755007191807709105778558977444223805766279935070262361895986934217856684268763164800183874372171365474934620444434058015836383969007263510181817379866029537279980420177298966426330754252862186845528914458979738844097411519479377535549224122601877507337860409289336913654165500187054343356302167315102999387928060359792345267007642421594956311063238012336591939543434708199652721552563247288982643509955403281654371052337412752730747669757414813327365937643747476601216993545764430842211557042977402535752520470450154322162244626762510212250836991479711789684540816830388503025113451942539489694306327690113811256982473982617023519199249100331611842712777187206772758603778732834779888618835198068772114656892890623715891220853079047230254988109104932331912462875210505892450245591985416890735323465510178763349165177232902709375046576732896400445444402462143905033006070842627926237106540214038028618712703336682376588967808017463629868954891889926846628944691603764803678667266023551856472690059895296406572129923297345287966139932241408667476504105049745420151612756150441979613753057435018931546123290702600255389613514831223373547296978818528326003283452849192377096833764991059670703436542558038979531897167133440352301883322381690139641771366932645737846184876352572420815105945368690415081513521964677791717459951439959312267785516971382174300453899395810244021154966769654467992539744667709082936827602995625344137735954069343783056921014066705862087470485183975749178939740224672355933920975236475226441871611064693060470884627152068313022767467804531028458862851606251360504159973603117250063767124460633894053559699638537476570224296333092537084280240503434702934853947419596297924136369275511699612666353183441732221552987607409046162601905708177474005797398189272245170676154337801891267405545433939543254334442617855254418777494439061914730222684916372143360842180251521777180584575972599740268310240056733509293347255302853170958567939839635277342853840170080501464681814299090364306202430684447385277552953220477505580427112343735799417929059982166609075089064277336708485370306287667654174873613290887385925711409317134080869142298047274559316646658836927815209042203968782146080725143147627001643206978419680524917192443262736075253189851985931187322415728207563257204568294199914825658121589593687715342823686560072571060367163296435519808308490371858928416221072501028868548296711096548937844804386948323447965662337533860813120225249044812025561573150852968609478580941876243608061694342991035250921656269942873851983392111535978045670211341865807988230747585673977722017761421425579516352949775608868677471615847307958836898628902476159639315434099109223935278134375383273530682286072922805497999393482288286586928993397783486342939867219633632884301705466117067553251205989768408086692656148267869657800812149068280962420563058736695927503357549899567956267791254028837618828209183825468389256563571829881095405294057284170641168378553943728186446363924934484247894890942323758162823526736154523367840193730289850916787298414537524740747616895407665296580584087959787021112879206340963986775893874366337140773976893153298522202194872172776760300493362600491573858997008397662149282521716588040350449444484286789325278305294989231966888016934290670450392018926614978698567136823120072496085150058366368663243125955675689881810988251891381809561629243996741744848447931353947342371331804222343769710883303686713063174817738531747786706888925583333115539117267403856670197835991160154623726170787738162297800450408622183710378313854578311958645479529603601575570643553944278955105216867535481729617307759448840904998445309107722181327984367214024956649108815289623343829797739099509944811433379774563470553045960854823350015719433041954702932542159225186838194050058178561344510309148680596434880879556782593903987777540740358476981501373978496424073877015734056798060797821877307005406829182352605060659558871244651683636039912845760396385628045135639053338978527459728509682566615433729286712524285073949040430412510580934029531507878562425788658409504137146897747304482792637182852172050303564111557837364852012521156771060892785879101946578162198707542291444463002254647876260974162272342075121244821519231245658905672689367038781275010543380366687363149586212521032022458528424005746685566098817217818830544744162532819501050843674197984742884682784932070598299995391883723334434786842419978640005448728022422547204573976097421243872206231739916596989819955450815728313325648643441618845740238493785472662915780136477946129498578932486145391927283055201298942728824105536511042519155902155631706167849947735670370690973347727340955599455259568827141019352431825315874070293065129228912517703857764413205328278080742243403265915514590605448448891239825743540306194213696228000379884456387372972539353451968235140121149444771081012601785647190918401739445153820219808508607051550405003909649986053085905960253918915153501779943604039586856062016887586653176651365401141185964141470790100812307159756672283027565011923331041545422840647209284768974108514869548734454434573873466500653081803900469666404332964896127979163764567650986110815174628521152911612035404502088008673835696436298985043117893595397380790997739186953965321014241840032466968791160098545750867213476632990862409422020212324479866367856668582763692325081004817029316259236272378464039980213228560196064422920341494691053524872273166698494511923556242804135428498817619708548184104723838647547423829940160818428934133882297744348039981034581235981191548907981265822102303240444758491265977373963958142876113454041144210100276019003323345496774804229023412237631237186117341620763115987814695944965056389225818704943651066685469668604578767506343561470083731518787758115574735795707573362264794194889774157022535978980673130299267334586355460234131667127282729876273915585006263820466313898634603041086425082086309614411062443181435007344310664410533160302659738123202188975695125651300925881902457231699653867810427482806857775439461560535121156728058665491855038279615279831007052036329525002336870405083151545326932323100378027226385440654043194251928766156087864765553663795980579935282821435923103629950659252763195337952417294200671553879118993239580427352022336481641439608176501612515102383545750204021781441432024934551191244741017068034664626523908798168747040984700624021867504888042818496073729240033087824695561698475589239275186043240678774413652420246343579445275641091356595679014791965827244499520781344288403005703091356219268884894137083623116837481039656965548581351669696338923611290614667333394649498588201288706298483267178748493976451018488185141432541929850520102534724323261862884258465517832282402560816182740366250265287876172641716369183606654624791402440137024567036340157818579132651342252900900987978788352787213757741295264413000712891902209151830855104015098407646786522932531405272855815144131057150737576831888209943263047800333664422824474450686495635382364426972549139847926198917354323508459074883614134623448691479042400284450702203917755614597361526841775389649995751703653123026256387322264768183186098148970857701126456184925896996812797707334359269537119908230582377843050318592055224732692906274800044615111970348125632629770977650705840871015992078601564280473078945037852575249116055207623510116395776108337138393411273269602418854572963435985361779807885439969142856933842849081668835293396465290614046540911819295749474221878867715961266851212062985206683559387428956178598481293046723538152930956650610125902861336967014947250975775685243582868952062381255648142789651033315612255386138357572270146649485188788905170073443819081115252936784403617453279413878444575361397488253430728458552378752273743138682208464257004924841620913137750453847966289016635130458549481456558690154016902751803854343246357011808338589837651412432756512642149816599722605854372754951685871983539760227027277769257071273092823501555084713052195538769597724950513369507441936439553165287465536125650031180790506839755063063599049539257942646988805798032568862808941367883937677601800002304724085124963426072429534988647890253473729078050942555057140321178679489501582483031877468091648183524955903959892090063134520964466887204297278027577253389628432939702438811682350116211344564595532011435023575643375472909313455460565926678716307111159679842363730474766902823386524579839831550807810229711417698744933180548584406877097806116987237504404554106097976699252405819597658443685393323886573998253336176116259156248411254460093847884970369806304447651274109248689430289997521807437013193211498434543042983977855908218272805735059962092765604348954325904578431647877439612122964572793583450053364218386740958892725014820856647171307708680844568102155213279043677714945863712055349628055825009775301250756405318919126819845939101712065001922092257737753198712658156526015548012629967510725633709770543812181983126228473934940354240106090270245890719015742306275102321327853994831986241439865344315001487110402046771083800022076109261626625503228847696260405655438458814835552231123322576909235849737541291983435523714257207454796101645882861674581894530148270483894751352276690807613039434420609391224941571960149037267310995697775325731047419619251269472742439414528371119498944796648897568831705928357538312558466714050694092163380857906736701012132500794913838252693223287403005483934191867327486992496279700814056055116451453550476729999736271753620838552796293158088360439842137611874725888206579023183370845000503484733437426710674788149872230928968456096611886059517997911646831428904457314054359307291904636373955602677953927263684965432446367043592893004842587751059293086776452036769462344101960834472778212254163164420253391128804005282496479267396368133885961979921442665939471929591403244040657750132075972137865828519130502109260003460321655174382289999303945786525409925827748286696798366759610606353690067135604883974318597914597988257236977311289772118355651168321955997783526807859188265626685268279971311397088936178643895685943036850528985105934505462906555200113954213878816389804227248458375662391924956893465981651210420589237815479634928908282248632343590059467656000884446971489479294414330335253490173180854544655095061324713035447452019117012259783816010996706834483108129084846598958723738739584634980169936328000885481358099426916242282728871268266707602897424675163821135422025420211727129317716604265489431262159679780087008243397723564935808575057847360061719304173597829142785176282629684965617490314224188475883216080535218249486758374750281820649445378276292925385595461235933040262539202447049088180904919102688921469212463469810497575072040198479413708672240974265212600040634489021596146681649236950949727943703010589565324642250419366056908253605969856307648756711498728185785898299439312633023505493743594004077272905999637500044205545136491999613135929178585984352830599967972847305271311794915130940730756555561261510764244106493133828655842231356784849663222164000439251159187161982438410649836944614032236553064539191887625167900580004202644636829120859245305087847548886045688917427154531907059127623869591310067008648435867991064775038859442940980405014986840165777341245049526170821024647674348099919399441445950707495307507700287353497467227526973612808822414054780200535183107244757928901916632804440161517901313503102177883162329779575232355377383289121803950934855170125780997577258976849704131335234685940968065264200394850648918750301068702027066077319161927915047493324172397862116578813040722290766632683579949598842525362658842987183214930499663196549686867036657794256558882713645288709359044685499984822131008655867351017880182675770252495949706601768187941160410298633571055987789174604423374566816892215317459753153102126465559835185388078722023992887997133020390313106562973928187892376464750057232198376051737862605275778322805668682829983683609813252271785301652535346092259956143178131816558135124987851310590356948945559181115637375945564914089497307970511855444067120926602322352165349509318244922869004525564309626344406033321168843269025811278667557550030918135778447966656786342818318919397817404759687272295105830363248496504340837349109853867733807968136609045601710433987365218814252671670701144557506791663599890139818056211467538434324283358915364322679677793807624559105768283848104879429344732773024156590703467026614164263428414371860745019087757418863553754217295166005574932989794837001960245099582343722042327884042647184628495215591072946274043142840392152743501267665017882241572405432889856394896875789499550055143921385478241299931135527862451290673865766302419794969477964291386352953877223786584726595522755773047821978110154838290884465648341240348312298185690846039244404781594992103150205866231822587870252320279195969130786079862779717128712880483350119378358207960869062607077140762728370778440076086672216347293281332592892395124990472026803458060297000835079758227952390469498305878564574891443200576396915536535238835570322453008183028643914125566311662136250751478075135219041362942062487942743678883696084900079213694302678830595368674573541458317742552872499362839857868190132320304438833566598266723746784174259505280325649416179590413334104136112273723487813856773490061110865276851201973118021913667446163710341390396639197292367459425730844320045376854341685998648313232947459685303753975906920878394993305796512523980434079217948378268323856347145134519550956921809182393162610185889351322125683626561572729198658974012189754554345243779720701210491994480824866950499751561956310119187710637526143177952556585266632351509000876621997951044053916905614211257637127415075797167126184402706804917517349485444886886615567868383523377791982886161709362660870205654552083599064536168404049924490778874073382010892475217771362490385921575588796863338684728432003927034593506888216741083247232631744578903058340654005305327857011868305632628630977453826357606873985391736361997462672530587471870722394651099616824330736517640899718660408818303074964221662205413897334608578353197792184334442574244855548978202790719352920392100733856010214738734018074811623241936542967959096980056113256649659482462064558361439217701948086778463671653188699403083782571321035078618661930822946712069035338328337495328216730755446845114909652487930066495941460024585815895009292153049083908939274292270476041390292401531681655874518842524255163642062315350352924168448648436343212839639784488530252873556398077421891608655421711169823219849446713763329261985448973586819032507886499012965893577983708865170184342598626021952650662015072543935041955087171385339211472752930981364631631342521885688050111164111633700773893933997574112331942934540006608068017080165412025748631305344036357762215731893781575507239388091714437028222051583201277897532801283999570203960241727192045385817564371743323478836361237295325583810816533465397936822501961924694928288009996222664297026524829745476527105182754217067790585387630812400982265130785449945892831314001294783770244665820251623031279424537051279001157843765288560311578801829540049044436034152229383623636073378890728925333896864126337767926095065388835666239691357427651865135940056117184886920116026014714510559810250283562394604098098433571038877702047941021346121584366990016856317644925314259031933956592633364317369094576081233456883812977933337420315956805765438221094737866068193146089918173008562961089990439314858781270496428979578187458392506259209267925505839658872902434302362616406358914837752271725991841749136005801950906209716241544840622839512615523203680280516269509613984737121501501690605639633934387953747708499476176855250696360650446386394927647887958576610228204673271376803268242929912686700883614106674041658513056441640296457812332997288963648515193115735903309484499471817198410598303469863365424642715251987590164146613898061119638095641700739452897055505825346197256694103445398573059029837178148323216319487203482842896432602125198737550523156424100571943772437310251878610945177985438664366084045983643127211755188742108988393147591068340338136531978588428084431820729691181634795653155974050412110605924648790808363916770494617558206654866222954176084674925634531922625171981170937613761402524580390836623585759819754623907478746687437343752739256296727512658207866689439371729462291436837276460349957155770935315838062106499104449152999873274670427263887489875060667984273011618485060165172969832921020442677812842881941101011544026563235237559032898658846340076832591125919035183598304317768170105884058191048444203759117272626896029474156299936525049946327118622412274035415002450227644164144154182735493886949016048587857885533618621950004187734338159355504702882723428728701168369342870854986418723515889458697329730981062180340960912813588930048422243284342993001828894242063223849953278771797856951465398270159925548017613682601422898938251057052994394050128276285531035743805459974987534590924261740840861528828403006873085786981441947386788450722282579514462802459141058636315773546669787335829847887459951228151101558595184417461453250748810954432666753518300383380820773576798851535671295177054502290004169839756166767193943046287951386202559371181098364604196339179024499379745455793071887284038319287646734608498285052445413568640595159382924805710063415142053076548317408742562613392335771922363918693202357640346414208716372235767255193571744616538245776548184600162582636047959029775526858776306697970495143263969769857793704781824090208081651332347543818260246289215342649601716234216666569290853044510448971580900577539365596583937575967381409082743145501416189960151347951688395959824939063128266736602462000499477668467605433934131332536654822044949626188596478905378736048286311646817917225357623548359711050995969902416945908756937734177126974917676793646773977491719191686100989329215336794650413234851609188277012520937518202924851659761592030562957135714057437477604804023335677187283264121779930330708198566019899008778882983868086461908767614768959093793841699462199007776952121744476678593914242905376883197877605055069683763915026830597576694900284742388202032729938752537530111704753970467687508243110356293973214250256223568822733529932996216564650735546530273271634943267942476699353746330328193619881815780040150015577214664554303328494726844657758386303290803423814851599952965946709139447521016505860724761053877936772119427454440662553747153073761823278178955482065510322046943276437322039693363706082629940539010672809302733391910595154736576888556004584881763340302767546394152464621707327403814911562366691025707960000486545021689134274318225995938266029718183016362590322435118305876942158025563091834059588823360043714974163092616492598385746991020188742242675556859721853475871017650475606359732212826071380351799755631115074573400933066535684753446196771463398282816347779673265377460103808669753138242745619751236670128553845479699687845694619128495995173518786927448382203182079700550557915020360845473609997053625565394260306103830192282758525094371685487834919039245554815717338245897300229715557436766725224217838100139951941065618124410669495161765942076439884186452161300596185406689585145601229695874327798588003683964655571476133957214742649852187725667280752424127752062903222524048941276335590103117763762272780362362676434057398142002231835127118631743677760609155302484518980918334822276676140076862785408622745688287281350513107125065103003613300322296798339171660711304088462629313714004947381563265543839992037249135601673118573502791561397353813215956302465213908493478491594892313903883510216763000371898734167493060171596505813950198794082252863579264196620057807002288261610413620285677569929944624394194470090971143632462219495690767357237577165525228999191605221724333747686111303490414473436462021827280938569513984107565289104978109915122795372804626953900099741200831356963380294365283914559179525717710223043945214686440212901939080497646740589027483078790299062527158776894048513412804958357267390991185360962401686500474173164472674484182619871596158845919205499442868379724138113376200579120825723073563436725749571026397326782093887354537762849304318809079888419922381578933214233963470715115952904717749353136639019717486874455556867576415593898174695988920658193996790432053449284401987822187709186305028834953276151822454156935676445674966614663056655367457738771527802416483958723787325706049713371342045659947883626821705870471960007904148110212626956488905768210903713738145811842470756486331564535345063940941358177800447014512500496328079084852775200671485374527858749550976863094506570279782660308591935699878944325195866166209746133370277119692398430955941000376180348713902068225227452171013483838511712003514086488172729200002414671073097823500916706841227432928992111393810218338991724400597026960236309057136173847190519851748741912398764877917817825661102976788020246764654145937346839859000070215294026150421701777263375243337441782910770411167612359205679618040209771814552189813203803416831090026607754491798499369952319770212267051509798167916045945177368202265832848820412217260436555472261736229112726154468482401518520627864355129439748582336412754201870171633286419873610384989137742404073589159204945967662135418826946435429650577108851437651279105195458710963104531079123964346327437444104189975102130541587796479783633321457786336698623195775546738544255370402323440448725346880653389885605937206900997581834860127633779768386664681207104625585679834164133875486682057141711904745702711363164119283562048154063248364248025212075252303707678172208129395284324106398639968577081651733468976945860812433189046655804191145607637557120664361435854803567552102204301335214901364737686524688273211201594492873741368243718578960618615025690205882683378266995916960513915500702541927834841874258111188349938305367574179558394596426427648870210180237801287984385265959969168037678392208147343216226103531342829299886749587812778412438715743163231633600421657657735508416007867970345614348522867683653857602093211516542523931385269147685902607646765540550903713460624797204677238643040550749543313194116431792039734514927322054168000217849265217958405604951354684204167635945282071123084809495143727036016071448606130922756889082274363604484854043506012676672867978455924414821303618175096942256300105739827130940494882016321730622757848964704132839477954700969193172399948448939932851715820958117218416141223791226365107819413579891095622256495936746933431976217882248125855094254146705072730162430548027078293056304088893380188506072782067148453457965252114193048939788214038233473154534676632954513168284649270324248809233356232678687430800203762794334941327824953608615949528840435853251529410771506681866814021495880722247173417286249144014807102153856203782989680825463563151608534625912221572034199967750484705051083155469503019653604353042013635482414835782861672844322128746412088934486201728360962443015894474523470148606667345394664890961258786588289620647734040579035893945576665531388141015230393604882583808290916952318083089115207805839788194274811790999728321226028314590472600090766394321821251802741355627520583666777077849176999778400231790118220174494366960658802964453661771546372142965306765546451955660153535157007188353462942305418632723068705491817441583936793143885211497049393869276399681388782631093299921137692787862456313657684587102999944196451070917093620877298320089893616707677655072302421126220265532172738538384099685068912041323984261429395702041761030444548173503162784251588054362412909104442586771031190805461781124908188351467393847910716763639485509873478806633090590037769152352915998714358550306667030502858782951320385366009601011481661875989321442344519545084780245836840995328015332169679923387966722070885577720646960132117753397816033267902203306794133118879642840893558985878240196711330185873796467283316683442569784313308069713189988079233084689398485159884175191388776968908701940289084770765649830117020326495494926301783615327970203205215963402620464609496657515905296600258330548174500254573056508540987193432191180515262202914127378272856416082759628746257586628760226398530483529132488542072080818038916717833594170071618753449444668149733782651196211404060141539830807985233546181623127919173781731689335532645929473119265052220753516225905619952957872536104307023176406109862290325545373840077920220594319717591003684952225950834460421552492194473181298614307732149386259866714096354368969076629138403398807891142406226919647537779389887761603970489901363611659951927963556380725324958402537124626636035209947867383352473588155917799390995869031615964911455970074151734730068533170141001738427636411635024737745584813681418825829809090109559674786569926862505534872770034601790108936746008775748300703389015261410247749038725773466606934566537039888013720254304436900928215569482140607852846416876932654311417773496823402386183538721067802159081776375938729283120912074131436591450171689568049352978770513447188696927542982444758872892693825163932121504371627377469116458814641008007459425905656910936528633109923166973295206945351112030449317761082222090196342059173242783048019763968220312909748888452287158768182037723541142488352132220167911362832311440559773059354776360256994598570214248715596016854504515409274899515687067017320154686248329923048921988166620057553354745659216923091200261485310558130056066156619473684205332450832070871804630400529547369306591494665157854672730233074002498849526932856031350707052088504764803337462855622253870709953403837629681632679259695973125325864074254125421188420192680486400301175265190859939683754780517413503617051354600175905389303307212828287271425740300171347484624986399083716383180716350690834949812524014933112226605128594822272254859099774568176924104174439254921911046606886453715527710131728968115352029332988007371992040063800146099802166308707793541688922735511860624337467687267749594424952305862688448179843504486024885934608837867485685962891893922412388200631354317508672020447379680277308116354572022988535561279208347323111040352831788830636948860744293482594365253912185275317473847635594845898137266126239055289578225884516165768621448300328218732951560233797542875718856675890713229633226598270736161193190812146326532942704499901303562620203071588515833878704036875835621813899214198984124343296830446616377526387048663506721267725609634463413203273339976066308193152902671761978677717080358192504169143766156384311043026851110439113878895456495502612529338806240155192737590210164559763095500596741998357767628431928178345594754708125289291856585306136950956010117184099829157837602905559304920601547523383654348845997532362559702290177997285828696766225782387774533521673628915857442177532687061107999486890096607297656807753436380172088767576955434677677691868866872663337421905954729994349830543786577781689435960535304837313386177386693162944773806127124719088896699735849585640505687299794136590733660201006152497848765331626802824448399709750649820786133627766768592449239620333587628023548109120562884997512529917366861509145178071218192584020289605673644170207767719796813280130304734616183933793270718360669600999710488944414217527448036444049902900164066044614687601296797793427764423819770124447328299238987790878551287879099361673486326971309330474453188695789440450404950822023451150056613870335078288455217920593592971666947588917554804371517213776687665271788980643718057374647573200470803559788833259955856497441560628964227392673614915224434895590474521830132094895391473876073296214345893871268177683636001620382380000839207513463172401813532116996465567909786049254407305420949250062690644436949285285416999456770939073625165457833831676544467410395780638852173640484086776447082682295226471119048190482649312178924195273908202311421374367264034637184814251039174111770094118950950277945558933907497301221892650727560320105803265408804595677214475306156618834003586184144744880915502440846095744089162620523893129695793404630053575621698946472999933113400119582779171166137132443087598416792410783273132598961541029636321147298049555725023829610699964687982360034736028236813966747286341393897611897983366191142022254210967728262185009013560037543591380706430902275446816227230450330916275731597541232284781255013118536959737152215960291924959346156171249998358749878435604832837886864219129659294945697177374717566911921535728368590758130027543788539328913703908435645966379306892194167076929468327531893174449546212645505114025763290503966796574517100149060785523652669489050988853814235193381146001921761806451629392850743235740055161589764079038764902719616794164459641002316710731489931793679931759017103629690863208718879334588109480412853633217822799318200799481262664367010118487886145955120917305607177610350832300042167391142164623119260436022204202472740259698621624580928856828283971161185799596470717038749940368229833339187823364243486297262845290181196630940102140440965795534943357031274590299858664385726935837097358288818195044749382487993963949451532705151370771104814526055041727476831071539283454625787427377218038666843647882958939198538350028666379424503032518973177559045081168496719662524539513663563970477972576957112881661188582499869097693194221785739072877551000707368209018499636452650171712507556897811618644399033632595928938689538832724556391005348082896670781748582367068029712338442706459270148264929605331069990019440015238966440939749764723107944195723702787830517403428601605915222288670837832262105661240231818959633826217250538088917897194622946484361760311755126537989709294603125217021713739745793671362732942189358356087162488222389048813450449795161822995273767900523807100716236676184318383883188292501337117366980485801073579667922854193878204548147393668638509049517200980924165260877097999877794383277510817472052661984211298019120979273895931298134791207110471486060954857744155642164948086312831589705458544287925451745726579884531523257936672208273680389754873630154581885604156198141029023827091964547249040115145457715165857386972083879960637489824695072959499807970574268140312356070616310228283277137753150176767231434021440153201957180421399815679315615936335801793401630990904073329163785095479695610631323336715769220793517924817838521791036588546827298807567324597914197297547315621059521336809834155191005448525623910730564987714546703878778636343802025305600293894583967366489336136580017248825885437306651973870722723883835981425093557197446944464309655105137341661714886560515617062187362239808914645872230513094185349157997674030958874333303382722104282815216232020292547794420333954123408116334815428853494364626172853945334042489774191893634226708889078332900497262999129846641285966861049550816896008542570798051368787861991083932321507977070104456361862089167191307316191557360928063605213350311141214763076625398141273239804025739734767788453098539221558447012628824589185196090488535873844337580196898406959645088050853569533338561261217796823728564447049026453103974661495848653324975942725626806730912007799316761301515092265476833712368730587586161201435576610343061838046216589567902139281132712936842236208936248911784138586241290265398653910753777997213499854294276119315315804995952116902617199057771460192231923834610087130114391953716505089036475196509888505497432377908347222983834061071094801566466448885465583970585555223544809069507963426010366720197231760260802549177032315341870998851421901066269044210412272187319174946597349511349403184202610969045587135001799691513189489793168353718489589227278785563855492590792208152542564746029158974915056933146398507502702765137494563126800663696695479938988843634388620340684392121582361419870226878121899267287383667600765722664235849055764860705404812967937771391446564299235439624309483460765970673533136202835589103784086344007728861077487725830508954281796473538358354942441092233264008791710904472766391287312014857291962603369287304323216111752749937374326595621270922631646902307523441189721068334782251353465771431741251623907071893198544105002453345551536318462686824177142525310258331297186112078904675932105709728596614609312946634551604128729771377049347433239685511586214007979991019033760270137282891671997201588538134244207934231485178516706772553374826205075387033455495822869785616484939252691477759574941010362989874990877787992180821705395362218634323091269928507900501967002686443800062734351264273188947509792121670926584680583157410240475308229949426649966721098893921955822279953023132290281977636412931122913531157738222460936914074563587435850483995337890837748891849692371639531524364062885431509727589584350423410555174992829545829579208870732228025312895759771088260967568735658406530468471059157030781575271714280651957102180887200732893722116206058294532397294356333541865366776369911190580702935196089241202281775795558603183140040756645941432383758338748281106162518931493442218904869265825155855549115745973787640261275182474926107017670485169595861159512016888033721751044465659026535013408608507773813137008951964739590031331797124350963061491070233610091042626867806869428850168208671960754107759889806168554022871756064454555358539893205286813966221789350398647953249747490254089558411602268337737925874123386062919788983773301507851117658153673088376319374565615651597878025425775212651499758551541965219691734890475762204255671868539367536365960711941855739314324506624250127118303356450778456876598478039688315113671197899260472529977301018906778194593018422342355237675401792184636524280418553796221831358929420489108253956619892707678120835138071980998648440305578777843187006711561756979566576634912389009042014279504316125881870850420247199444464285080358499540778927267644190615847979083081385001370886356000257411420786194096074482947291422741207083125332571837219695885673001228291502820405343125237050428323876748856875325084529598241380552044889342635587109324552248135211036938564942161942951701508885776766741521553316342503476033535505433502553972068586702179058199366760594102161582643881906222766236264351527961203364455434708947079331949774527271682222729242182961950061819618158394869497724772031930433087691629812912468670318077400554960657664727151580967538645230277539292298926083799166928578802657651191955998861924164681118320421802667796981550144386909225373580595672254736481539182930240439420784358043661972791899401166186932578015211995401956346771743481341251176839962342451544180313394533129897964313543596141874346306883281360900111967306030449323452286545184433276155958903211132004102419320397142119140815255972231655576200955495284255838907318307120071339496290006330061043869315060906361486048799615123006932092961038619365498344556419045892952565790019844320495686343792094434927473942960922357886357237371654088947129872909345154625556822300312534148872008915196916159151356330922430769471782573534159963486240066551306054001571569208713106892408446818533847986954720613346951646562622044680287774459065364768551672753163677318661046633118704877760738414184964563724880040994503724879475433044271972086412429604404248361146342303571234309078068722715124853892257440863233624452235130334919700775434213832106320608337855003679368596125277366880164943990636955656599230206346877494027585606239065877324410129812366664661863694833758511173986110357102888108382840645259897142016878431870181764551859268763748564350861369474767618334668201889582009426212245921320189170492408489734696569945591846963184174956076142436439435489799610882667484725141913346576925752919034314471999126206981060826404045162227594378477992542754649961056069401631944699479125062321217956322034625072447173622260710982644969013223461144915315526645105370570699722236199310303519480212423154247397253366816799514542761341261150594091617511382108525876705916159612703282794088006880940211875308866748857214686717996698934347019021481058180083323187130468896010382040316036036777773395036950695064716908475094723229635572773661454665451123347896272231400617457651227099638671793478775461789774787783719003515569508154133724993576997231261348764795648761703072954860868404464794619668285730781617861696735737784368741624748249490667402024438385188743123156959397372040749582708969598787188615546466612289192277434825184225795926196679565765799319996938816059882500206790065394782498129672503681506638215698672703869683721090257799405686502329523186683074887304924121182337127573958166847581030823455849352993892634176899442586167369710052609555635032483997634805154445574847734129689177185911640045998460311929821890085194302401206328443308342061811064073526453078089668850074210843997145111421335740100722146038798765523528686706367852778190325483915618415190552744817354693131085520805980834647968477358489837933343254201290111065304069181005167622369021736803383600331410676720751864381078782360812584069356017345685263352139297034850957650444269486670749937274405948331278426533078696698370649011189858754187134206713510728655004889664680814678446322425811281508747235656040800256487930976059500401930968185795688240523817563242805816325268372510200342248609310934309996517741373466861743152035277516929388333724956400031120914658780962347189551859734848358963804133241409271170500308937917667510056276980518929682651506999042099478442593962651522343577330427160190872131977319048353159326132670183033172620078943942368409339179406730978007462756301429350943199610375859661731490910854084423368050978272463330945845439486858571342914284488102700616819170410165077644321653464218278293307345896474767490024411729063515323260068896101670283474414920457069159535378725332261526335354579489884885459723467060522685626058078717389736315538115816835094806325323867386232757732274232832232320232829682829991770728546327379854482691177299674992614004353322321296568764834093893808582189762823951370838929698358724890662981043161365364306244635468077853025418344873334846760335340380296962097826927558676039021099685177276564224183416796484643196971958769473081090254339673931780101517242728042251355725617963186374808910965761086799474888609048069558469579674921858831667938253756321576813444705922388878796824756276912686164121985002372359551506365247231608922582569838332060776380002260105234430674185280215728881365536462677260153287893051163204059434495505169638912422182147855606794245136483809070764562744851133491884528169844461043886299409303635752793144732160082342441250653236122615936899665971140932530314371081590780369436550480068075226235510108837342982229607780205340776100268050144068006609885997007038266245162890288733410898495840041458250579843987609193924657639726504422726930725411580096952021236978833907440793088207089460659422407633074786112270086852535892832037062624082716786393979092255440251668277702174722128606651031651624518485730368285231825039181602211466637598429998008936421839856852092556381379925771240093626449811564576021544860267385094103182662127570506270254205287425595369798518244587830258265468609778413145468537048119702707046282550889485447341058857314786516812666916817805117639531782518422182575538892966143372177560025857809855498960388514535011197462921625605283026307394686680767485718505575485761671889355736608654294153334324266163455448930283267565536469561813155609582823270864687589469102148945723983834599425078747037856500832803573052773683755531335259478899060422321469391878564763383366965625528622573080345953466740639563383124084310999880053292581661934174286198180051725004614138929909370808631994473912126450963431903775680113907201550413445462698654786876666728865245471006291742949685903745077699542307336286699924368403611975144798659815458933192267153196105093614573151015120202110965222417963888988440415150532461498641135974098540570564245617438052819968503314231695594388091831377653864411155051578084294807681371203233368642675144328840394313345769589258892482175406608088036705349826773173245383506553038186316869067166105927648838786852337797609410284199127327322076692596759758684621759739608662666861829122317610336999507048761347628848534153884447338948384274095596484481137311554791183867578142763486082086489497669975490588540906932533805477694398709928089510321232793010007870784004803799161725044487450382766911136060635513775825241788384451724010347781318504669216072436402624906626686883158979825050105539214033141065184761617611320006122493315684835509886098408618177739421192755947307023614526821205945401860982323030522706430180269683362712687393535926790126755917106775140491894332954962805518226036576642094223751081696838156246247237887180505958423411513170608051500454344539344440230977420378177017767800651576152578405748586932898448677369832517468317806048690338121173969233477378745541362206949795250139903868174181396208086246220459471658983231719272214540193542587728110129099393814697834331032314490403294854898184588225145651857047489964335839663241186461359589553519589910445426036147874960318044812941793769136420802570298118756348417506571298539841749150442686526703458414062658553870627408829887468550431964082242985080457122544791869960434116779565940976993533427237761406099620181389239762113649902249636488055836154032320844150086677428072553478984559981298460473996611307711287824151902225664513279892680112390963280924926798852153642669928268074109423510031763087671021883555010693312168276165139202691184858293576640495293781626808290129153603300663051312726282746168430591318920835218669146264426672329618211126293617038090874806530386744658167193948282246899126027155997584498818471691876807772771827240564974969307828648934474044459723346547773012168121985883728124670985747700273673077835788984318579978304804862617306876436784670650255395192538045651404305411456274206378216329272201989798785582890656159989473052928214419950973662771322724055306422382929367533503133039790630874730172484724439387855097181218100566902067986468228291037406809362228529757718633535215786141813012652534143837749980118680132759216214003395541569029975718240454098677418450575728253355909065327854453134443524341961562171889950801855882757159290277334421126434609331913833347221933179400348109293021394201107259694574760332382979614491991317543175433434624687989775960238404199250204834632640014222960289937238628517417024699398110430656955972838236465191597242815312616856094028987745398878702499192486086370875497478004535770758653887219379948379362206287746554389237067000564642167174086863644303874999792837740172891797887069980446707562348863487422944163299537208523002878226690643675717584476261368992026254004228210954910277677586525248342144584991175328688886322725136545280876877722701706492762881971465975047120495260686968433000989127088248046519473572995474472416168242052789747600876123490965710749400609043235724327102290464799159512391419166362762034866819626212553128080101988824491185182019309391950006718703504407213367741342717347561722087414906387564083073244867329751355267059384625569909991196739790438130392009485684421109560825362460486455116948764578161707670330871266617471859132780609435438136885262924884673598067319175619960509268886292177488972742885775038323402923632978526529836423711439980468180429690311875993786517575170567888009311399290016419528985186166339284501627668459886180794750719625372459032989435624884965712785080457320654493161389005501306799623090701067292236979045814660680915174327541962858276386148462994615085714687066861763785224448320502086000261801661230053314386989145945885272524001116024884068927401619879760663041259480494547376572705478480804242171690746368686857718254265504983971630678949164564467796531174905805647399547694725665485424672119337523081943482085591202818291514378118830713594725191933663369737137179898421663464434854541598990869690626829493176024395278201182257129191953942244375004691458812042576135304566979582449400313740022973076290445415399099581533877758427857475128035585709557975991197146432529392953900586020735766070582003332468402073306986564439033497923223041942591118661997726141252727662063259706380745088406668942681638591303663970611801891105194913330614311884830904648196230528116467074449341789829664508340859743343415296950650136909445746537257034360504554955714273343843906624786430022706526689167085767541103332608042038319943630316296379612162853344365519144990920427467827832301981231523384107604069168272522093910328675629460356235824920336715761136144364987720994948467988728981926733016814341684319992470342486242690497841861817150648235967649509130619256365051271013875217535801668816295816011300899849590267193905242977184624778842064739817978877728811602172172706490217773186629065656156695955562331961688717076099631665820278612789499558632141837018198596493595278021067302813471440401276444306983129067719329093842311622192684408269355257440222746259592047633981566027224903521594649420186823792205778343727565103990267595312863085344105101423949523442204746305742618869692381966649689304033844309986795723778734344084787892945752711188286774713073629426085196659318587074355178241783979514001282085301790177867987989156191675174632414194525302792057267430724367403001558615240429534944896808644312401167178186243513583405683819245208345330936440395938534236297767155307316479620501855500206374751159278058339460214230516354194963588806139503242604080274754559439275424201526340544601067215114270499657063417856381809151739250683394532103719826380890339233866504073783015663358447218078099870284973216198389739659047863157958849445675906069980205688365952180453142920165032196445394510135677890015705341832291715906457386405275848418660740865068614740206591089885148853529330060050662477107459367671349912885588473191703262427580891976599998532454980049334388455023111625419746620709490592680903240871116214686373568825175483109839397527334053109709749557603681525509244217175561094418862241792986073056333599353590255926670099883916094675443107811472183547978851462686704082054838006193662665096184396967365327820863912710766861994470482709296833500184247552514789924206277328684299753936716066665063343644938483821862107632606636715193526289513705649408437894218389110254687074706122325418413539936748088797589161936596674551737678908553014223012321281605807844948856724561706805358940728008704180611273490895317279778605269797369040113020025654157254197305992044526518154317683897404400319554744297561203624208633969608728895365788019624147726630838193426179807316522891038013557460676003425488556849103972774281895232672727326442246032972965599580208102402549956848909971037425655615052941617177935046362053137536515528580936408748132727475986368638600926601829109476173579220393079976461972792628809147252372724070518441912631238631112336534176113071212686017716088696892616242087099748123721353552766016143024479044469865522210111015744418132313431642411199900010344753967396988615930987339043048552005052968567038003227575743897176424196501254781810998347317076842025775485986543799639207890991820890501170937171239990641359588288932925074106357483808866696666547516333918653550164134401176528798550570955322456965353714741841137886598537725730740441144276763756064499128586614988600152122587533493915574838167229392327788856974242212815665949133062316919249545961122761566613637627992490082254932879555833039088382381694072993600728076918835171857140227197342840648202538074335224991464419404613240382571125105293968736331825357306890274392683178142753722449737564073921377023246734099201350216220702380458198185861860868748702627937062875475860507675042673713742043334081362269634580663574671333603845291621888899943173258276516795948149335719196798585409112786124270212367198481100896636317681766932896718035940599644492252253627951304140425627416084625601505352727587847723466968847750539341783960773013289589796981648666174228422185943046682840245533849053480155686127413384076530971997256283448664346751387876783787164785163317544000437474226359693726532994532392582899176103111328818143254461702375899601733916067931517722984279644366632235357681625377970386008656002960987095364132147987597642472055752371038039006168406828688114669549692638391114952331892749878382006645863359017306410646128744266651962080581205379099422605019511721883868979211777959533781671499988957119093558242063951095584911378267878549056517023678229350461844470950891971251031934420290374728612931796803550558274617260220235578193790046781508058416161274397905883214101700367112159365728944845142011122624842790937574089242604327634384607034707809783410513060513391528747654882094201673660716217955838480674766417171913554127722838825037323667936479616936828668458233081063301314630443275644080914563345518592705646278915416196687088647883406040166214068875853771441599591186349384391561188894383000187851360687043499979317597095938812371519767743819197014114290564819319211203823131940597486075772416985090684173049287447839567404133479237346513568014646792906471090584116879312326321533767637891219111202248684808093102502552310110628791643820138268026189201544127619140040116973341531008148685093611854362902403841268741364006869220242443544265980898080749739053567355513563658720423564179491692752268109446395813564058999020861635160371709844973359986619248731371602260759874931220335019337936434479157056978866956997708044126748943513644524932985932472712039419255568026283389006629830684486918954190742942508525367395814644637419297722372858405432030090256759092473352796523661572147745224752121769734692826385893309714884015307730202437552575690871933403514685981502862124611053764116065795360324813067438986975361936969639105386064513366027387155327176814057678970856238822301896208102800724470487650436067495245053286683428684288571208674321825507732722476454133527181587944662978800087937855282283575532475856162720978163282728295358521025977529654087701542827633586447811978903215620228344046129933276204161283183924459806799341559754286805440239527949388719416765783140203217165413087050318983492882506290680392933763718045002594367217848095863639572967599251964829174557984647994196089523419982597355059173789216441151316876572556607802516569037827824996243277433078908713926717022676366806350364240180930174229966680934462933651438896797686856051821121063444120855410993719577389327891725879773363841101908870768614877250868475356667585028602165593466756612605462999807344340474951491709774975902644067400818893913214990953791480563926933187057136413361750907779605426096519410892016759041753278356740102608138053773560361539319091173952995702823117115040295913486271110469317131042998847001803266729627639674118736542744867139917783229637793447200498046957351477886077078603255114246383824080685348555484636383086155812388378291526452284176366785352428047765957462277535701703934201520890257618730809755998083517961150871054126626131667681787972975256711605730376495175527351269453789500100507074911477858194478916023586203344755321115553691326083180544631978545267958569837430902318341468601254680972851676856209846203917903087238338700774904452361324003520883308429393221678939581363127872062992679013348709431121407007971130797457141207251571763009060170833436240266167163138462846972589033225454874039037707332995705758906964496822485349017424879997453906419241613981503454146090275307267760638285933011126930988406778757235442558604512721855047929588041609271455139921921256684187904466760554358841317567199826109078245595281944009232867440519780964250089106151405209463919274132147642202192462273787096571653369896723313218342541582624831426197390374629329513727851760447946699075043757010870995708328942654546321505992358405471161268768597903005654171096892753299823571085842456615281150338632583948590710164234466832876220414876838951710799343588152408979054643949047300384405802456264955930340184633904178871966531843952168647372923767875847111811652026013261534580003742008022509410661828641359470263678410008566544428430260306829722499853400628603200288225283304151508478386727789836577691582666180749471214460461257790326319001020366444241276376085702951454616365961653000482485378382510494828491097241621767249032461059033521561105815162315263227393717862860725531225603860805162562294074819303004656978532615303118813302196085547531674181635563501347873605216665696948171227174169029954138933332236321622542671751298049501291778299116695571733169953579215849920627894284197233546124797590603188712297812708440848783104548684055947767171331935773517145848443009680905924789739959417708019434798233418173380257566975895538536022414754585637209286402718558784236150633773204562378729526323848096553556368546111498300223498253587360761734398591840852703678915896326424195639989252758535669154411348505317023282729288142042975693630997666315454758646507003730085480827615119706300413009109881825996424715295817858360377468516370428708218448344215320549941695458913336152839804509677130672453180396078318458471540655658009263834453978904379013590452573357161620223257488815875190565752390447761550848207639057315731395430336179334947466067854169686833151173964780231648229826837005522437163793135359790075779707478237191961416608347962471193680799377540897800768153165470527779677627439738226222922603877912490835995657242080732219350251759926651295925136524809912464029369969319581245605259155192319205722739658395668585016922489389567427894595270707592971331678875465256085360653967571102717597532226196195548329351307794469682996757668746415548226099766302992263772550214781943471432103430372163914677216372865079817078482762678888298276994492775791563710370171252119916112398278214061883920588722782208205424475179772789355664633514341623487353054104521021878408367239567675631681638286323393319945458075327580204308164566354831347121303369062220983138296717928534503531050203956537624737953834086338054822523788579141837297633430672156092813547103510744089496050898930352016776688135377664325536317008800293810892459809137896777712740592871427226695445713657221993121492803732751755335469150569928457380834714179907620652219006596815522446060521901036078021582348003175312588922109534526318072446809981130444754515153197803908186886005863373017766973646371211073558180345106382054502931957124657149397439334693765825774615737431473512596301836055027516498062481444128197639873625040789945887887356301100822203472288537124596847509061969933224463371361395893177920719356188085073440864881470175149900812138395550781111565335423057535099304444016153907490568155863154043624688792586899845624617593762472995028109269732416119990089443082008441898630715683586719450201007941964773031094835125616975812028853910635620235136104313688979213706850707889655622721669699276889214637150134658417419222142807864982838468466786139186989729179511267187723901402121272870473358079262283479687371432397286456715757245477350979055649041895267404831903248214218139855120542249070931722775899652940451728782168886948298860172610655488614924938368767411879114560371705588984505693884333024353441005287486589515342612727159570648850385321406715436345237473870609032298703468453585768576415149579300042788812323592160359567958735358365019781144815088253796797934285022853580103542960180868752164102813682498580780329484059158262785510657308042504417047110744069743480269649909473566326250232953673166295744436561290613941898258769615574411473175859456484848892148972363852241761330466596970446420407484964052591332153034488126608212941072395890881919751538018926989491199908009670434361684368335871185568390754058642937634599781697926501490143410045872327279930691932782325234277180878708047189445123427964969659348717874807474707324057654030897939578300413217285446135163505476780440602043066172047322417322252773293984192580362570249180869993867583056023623269806419737004190877752846860676480588573623239602064902050637314987405702259049721726357620755478987046627517138187381195609127164575272066752712008926105660370766341121394984593679069225645836365488247936765591884413826256518076916110578668690435846703072701143025878421001446746568859630327911000882039518682757370749526667660104158303797249022861717451506424759035028469252038118352321065273481230985794569234175940659061186543727727976393809816366543739770323691126422132124785743032786106361977309553921221902270009048890025079693238268721274042420981942609639312698339667159396766814053845284201878386931151662752104092989242564436208175026855570591401274311084485749058555371896347029527559171304745927577435084226925593566649444798355476586070620142539135804284089186264202628309192941319086342527169979085982096249977500855742884577190127336559844689243684569345624152471282106691792010649725145662623772187316812483387535967524113941397687138975950162947747795638236785243486650000482567112835083668794724236586621443106643645318773765487254045154239019327495374140139252463576131943249067872578531250315326791823367802501404728866940984877942753466801656462304166706657516933333998576581669184680869973639731705416175087277809453012888110486926853448941101616048433027337068618757679544890337593320620845574755229363418690596071625017378493130053090041237898850230476291724911717828761470897483273170651009119639295638517751510951165596095111955216340300393274852000954485699489630526190626788828352399504431336258039155972665920390013266433819399313968685172050891290593550802594869569690813928713855650817377634082790509699662434326724846383237003385217056101140000725124660118071898356680893228028590327011450321173270270067115036086224791190478738630714224684976770019071777541443382532010641060036727234788671421391042688582845992523111256880748022691170276246478131584227026857278590147068812507343060713688336453309602009820980009995951504253240819086231701246798820515232086532654176675730916199531834980855155729872006119523115900968838643400245009646212232584310454756873992589317054648673681366649716887414662697330766939062176443912308701803347953217288122421909606631231398327441260308264510092371029547978039242262708835173430147175982568366467381577980960155766963179152255208358245700557915604990000196173924705607455054683318870389203113666449273761729271453096000389684799266201245890230684523624219519593045916567910256168855260351038511187794078653808109873220269243168057157905836844331486344807015763732727632480973473649768707439604072923763523893735560285771818513524088774405667857648733063956975219119544366459746018384086108546088348561383545834188627811645547808381237221186254050363334641063574158449698692721409142857715213119602617584846704378183872116802954532541342306070679709771120389021469887657904645234647851692661001776873017963727386477434407951950464661544096263147545420004644175936670256881539095045300555754935896742436299039336771594697551905510328677078967143007380269119662545465968262098170644000182535029840981752380607310307867352519285655613663615986144008690607425382946964541020186736760833930473663045132712614163292619052945207235359142051103502972021935193458870085313781155503597713751543474565622930623613428355930873004530570886727541305969564303055320344121300120435322188217552366185088721835587309133257612471069436178103299379059601843924583181411780873019589640251351997062197709182307919431782130427264152325214557272680674501035846047823276004941483215854812795367895944937813845830757953761199297454547499606276371137644199644173589967542453487689520072526787324279164267027412995089041012628954676920065342668436519975938167970851573770199785737855551405669841309947937498860356488488618653666960847329002101904198350239831190002657440788416304714371166208057491656063291159889539003057992038032419843907844602919316855061520236671302491822977652640646959089952696419440140765962688519292709690852144243166442297979634045972530777898276483363732769794619287994649370768620224617472086916327985671547856055841661353149010501256880063623107584453797466713909692649833091394578395013379474272041988902761039204628528615718711009803319312078068616298553899065424757164626970383597771692341006729903786866655883853723376629868896445994129173059782418823788461201612556410124821941552739591870467950971761547813664446283407290315047394809221458856792217646028064541442738672506537558789266816716255748345200651350748962348346218742870598314488281605702849537246600742733146161143546332234073681937552993853737799284273302308932445291783056895296550413430819884365416735418639162712912707945155033658276362361619534648660034727013017739890288252099477566102155353749764387786279997003708595836472265793962036835782604150946098594496881744313119454953383803017304681144173100508129247539778389143493090440646196694928562723549275745516634006994491972095223340876292583093462157080481809927947248815908797841181836231515864399544725835829306674804267315742412414402673571991750876525178838259877270690130628019491670358938266159461655595460401950165080381421190626995021675372837026260531875656483327072375171581289465834591553131312198039734178551943421530626752998741633829262873418521972115136936243938639803869800802674487180626069876468773440012558419025882463939634969854350367965096393521549356162803547552682505493232857324823765765588103793460582091171860145483196490357378007054493400519614461221660221580195704029256929195594617391175325059443359458834415964912561653344148085551466996420794862509817598162470377189512895246264435651362592383438274163412808645951827965223393502004487757978567246809593186894249751549088798497030667067862513253103094099600394778467402001030708107952286989721285789955889918484850511010345098046588352212708028855389827057214010858663746211214505232409129992856203353607680333405138317801769473403764445904510408290401344115918815159614840254779840730795461021924798759514839892908770494379236695213762607710686753029278182774300708533925008141752787692675492711381960328642195904066408266988127855247832104703809130727279166894643645805679003205618150903695031904144089952182847536059183987208359777011547400737253066459467966650850543026869013898914748309171344606230613690477086457818766704216800821869227930482422223724401460128893855221766815028463371984712577894288014182598589011822176410751070944218129788887380666103851978847341854325249240902783460848616651144825357289251625916337711950105005164911608602223882102131861183786879442559323097470413570937926107161076994166554284166151434970398217510772232256526092617405499570409229695111072983554884961651063357405672750372547004020853399915428207674820371805903664064398505720620415482989816147039852025403443363674569452277248248582858609248608280531554862920079411720481382487718424561564103424625932966178374504931860353155688570562317475481085918715096342024812915377464763991232013011489465879366382235016138979030242099441256274184453015224581664620476576861194933809101381865454826342399973956176814158345512380489690359370999383261966533682450561298411404369522766129657318635730811235847058024071406107226951946032813745206391460481242080869130436220216955848695020577952657168303603531355814870279481106735358533496362233323362129893551748569587197879891125805686283044045671139427512748619370827803665475675518698550800578304098589230530506650066085215760738587121809174070010952600943371032494131341499442876219631922134962013976506873075523696925585167944792389782341702624781947883596132188918894295946141437832274046793928293178257277706092418834276764941664294505918371298281115881835057174078111185366071540659745876680248101318260009637883991247286265537412445384885505952436113180597240250205616449719888586083149083194504440847633242907601005588058769114704404167666046536723255572104015790934339136394749774701620717498854765591236729881237810516090283582531014016917867737458303103246225842001219774894151422806559959462707039044603408604209078243209782213367530748591551754566068243167771155152558595248544032418198627037139950595290714932190711406531876487391538335206879870539431665329948518923408420153439249305104585330560643199533434180160159991992186125664124043903311052483301393866853476940530177209531031058662735913979407480667691938634928150049151516320618223345284887791395353103982959989200778912230093230260422063927478543219093827976200374378594860570829195745379044877627443199318442856340855161189896124415023072946520295942441128036378131593124613391904360662951492268830942431577717565965234145972238545220399824045273330228305678753254736339519774986602766131568061194353783377570588775042591457643779412277325531368367666154414682794336345858568414048092450377691491719466875377514177921315810095066566789848418531752269805345902712102395450782367269882730717265848408265951144058949803835027012553493395791358427012489562268803257724983386523888999426439574776338755615342325237176956450166552582597039910190810787232703767299107232209996123602749354838510198104743197237878496318470747694723914864577515381359165850822079630015647559860585477745201148802343140492548459064399459802085958223958379544795068254131122214397173151915169374065434095756530587605953937717855172103477035875681653583735733532954403790541734354056818383740021807834668567635072005208258059126135832101633792292104308988922964352136123940331635833774783146236618609541193683761311262529489537361659296779909626513300842644296109916828318369802357822962044765909266153977407108470921879292162641062289161785068473944469204993705964688104348122082381721692571360052153491137181575847384859434870592514771176602470654661208477457638319711782474144572518187296440737675871101058171425677135710292261766941409543932506672819671799329747973973620443995411847100077251940313408489716337144860542867775537433752675292369712826488913135691356680930088062374096978123764221300112184839773230901639895807309627776040192603316099813277825307586795691279632995630831795214047306169405913137128628702181382912153373194766313242519541673048781425863743734109331231950312872269347407314214450743615080321555008859362516038998848247921103856517374587580160715757511291132367481209243671411411759351352190860222596049613190527555517091741840417990622138993782935693366358425587906358181528487219590277700313646938715388333424207106414715241677276566531624604540300046140469331414816461984680944415168476417885136566620631861768095820691696703779384700832001480891385327921451925871331334583563401208608113042132197902129860668789267804665531878491755172696078212451625064600898303926164076194526183589822440963546501141824718169541830331992311054844686346122725628327381449401965536851658827141651567770576994379434838262946746015470667105103697862088234162115990344762130737916700394259393188523600972113199246817976585208839460914389537378206881335103481502212005096204454538660348039310476569900874740815723324375094469577118810042311455800873626374705429722136004853766791710937453943464497147512113597515755408216517664586160973495557226550182174658040827173845041297535399083920301347284807880455722822967641472808515193275890106765313880968965473771602497115487840518552140897234651155460790630905586993730312348710836108615921911040516765158446296623986461842702967415135292658424781295942165424930527885538549779204576465461094335278962575405055247183017065650032608942220239013653858739796834024021409417302977812344455103206929241517586223315763694435277118558732982070601014175508069041447877042251470660533678542331074881268786580090366673566752198421933378984166678899972253100174976171986057740843433794412609760266239496831876224906370855159307150964773721579496184072786025331731015938551090454888393495733718629121867157694801818264814662324476375704778427108152229099268672926897472086825600341460665719160789663088225105294010085842550687211923005284987688128941325216975232048850169033960682670005587502443515284122218019502703945489703880400072429679351320264669598632403226954106863833978984447145386581101027553710783021536782216876382074273931739497988581289492120498635362650415069208278706060651267232805146887626797334777553632915198559340854382301252342255847037750176762531245561072815161376308950167574491396288593145076052433993853649524431406703464394833485256873424974646188511120695155201181609029123453671209885808026427783703271805295170580728020189698747482333515415875434184610867071187634451051590494694548148273806680802814330722178356829837160243945752593803656751235854289830383734217249067834940328887086211102838754195724244938401666066411323650876461160204942759952628730096924327611087822710876175577246441596843411261792722546482758691435266192968184589860427381416626808941852078194304975966336357888935566198459063332398745140552674423787186016189003926745727771596102597969404701202560907258013114523790857647707364905099257064397606079422120655210216303100688298451624010976547330082815341321227223495476290661454858784249693100790583601151384634821688869495326512996621048976125749526806241645102274293697962818598964954938150057600779683671134627284535184117035535264678415691665894144509000005579304485007568972940359438965960345241362655381385744045915100692526644182183199035959001946831931746319675576296101548878885244302336566599952242949901362571567875245459542516651285902962742117854330216585309028513913406195439796739307831315496759747870929274659477225682459955662579336376269808666746291457243805860945202234216367789391371590550271543826121653351362674733735375661800279169074790708241619447952537146948258905742472037748494670761114442356239463168687691721045843013945539836115614030008817815770283294705775068586114262887623702325170420494187198451404725487512813609654074804410391779138273209515168871771229190471165683134787422524469439002893350710531691121819528162630261065654533279284074071971301752504655508796532329517605564701485391028470803521741340359206663189356883994314306434439334010790583249115191620945932200582773649435421639674148620175270230547051460458368391135635488556730221207816707862179019568451358329945972109391569515281507110483790354555636321485768512110959581871197928188185242449103599000164601111474080321947065839189408418463371649333316079255032918871470095088319910497041912496594016518777433881135715423482109972300117210974426879869310138552255890653079967384820935929028070525845642380213895504148490987264804893122443207545272884383738957098485597211986641500216014671830914570439704428797091910357616336438653559323022008004868819993037582273043651245889935832932201670276953346211647144094308742587600358726590018511969281962508233335064426870398696592865560384295051711813705654737730972201020642273860875473931631260324657648428661076203851795491314788811895468675528666584453250912375293650787862916584203829772892868538064026111065294479880389210497432551205383457300371898552142029207630241565336471526388015374497714459789283228569589204428398664568378850498266074482075201899027322761302629062586244461499791685378305368281209274610706578335144560648671845666625063520844448305057176009130935722792536960805240798046037220489112353300310796949319178852337912152996873927096870658001672919208592116624521493186991170784322857672437489843429624715008460006860433318721416160438636957422334195990372550272414055648861313219524374595732131834407953854169308387505596595272830445356732746173051276559067037168999504859568275243059666664963190068363970543113914548933177051748694259683391137902923417018980397159940087753874707406257135655268382222970521213916707262063856596884022909335298399677581375002781119384376568506135351004127228117564964807751713795749096667197490332711218540503935416627865166448443126687607176366405210498032796747168792564402175072059261897627705704737042947105854712843641607698382799960307620578382582959115159525932747787593951036665416174916344771668735350219381220813386691441132144097637396824144818246280300949355713495781933219791173043382024403226573279244350415142838855797116041353898978467178705660139349772397091142692283744448003445465229554158248240451560691303729259660044414517829546434483982848363984012356644744381902094718261136749038429826403807171227257148086763390073590738596476895962212848732896439135194768301168238239352787842179562106880609816193757820923013703827325007071725861430698041311495317234980652100094063101395826353336699390978791980880136792652692426706199543171870749745023595968719045213851115787287678115578873151838136331177124117377043330211057445268665233837118373262894411336769439615867113571069415558045033188662208187636286001589656490208218398952877037551987390375437031926469633430625690732868895054691910800937850711425011806307001043507609672251369951523027344380220802762108982097226080940721081489365997004373791143686275848801975705891514690754516994997131997640371536875632528864075876780675955678562842008007198240762360724229641391471030396312075587364497319254901981299102030825849077974934405798746664880459130071751563756157570721808582611895888822346390532354764121865876129913700168651576174768948579996135315383804329841180969204606122768942936629112779872751192261052970982725603761799445977993258699608356659782830230047786315489029066219345024661858425532896155625305603398389628080056878774873219810661791951883293696054201969446443564897890722703490541511494480038991003947496271180684565314979389868036688601496949627649118974737532096430253822022446585481507367809762020769951318432778301612448280459419517138379390102671042610984853546446780284002216518820863964817511770601858277716213726420215302193807531658062511347053900007466609999112853293601506071585686897878448632473915733254723952729122308115240293671280485498365479359978137892087402289118882541300581458190843924179089050352362384540913504652324738669125034547865211070350155005568292402986761246519628660856149155229194868015199227555558074192747726229387896376728727856060856578225356738847305136382224328127986575514033883320443023446139816807299137975312810550177481146862084362782793136170052872867753538929903279929459883927078637541543859193316705359835402689191156034225422974423811679980726699162585064587264736833170930356829009926475188027272987853776402181970040081543688731632204813417586225303487969456983323091397870038979289002568276634933127477475229343500242896379570772195726398412106496102601114470386608376181629310193947341752155613637634661168023662740687295469676239432449153118380109429955940151095159924852985058756658971368344478362371314955882851623161523922029928374405088719800221930939592396997600574654925291135818935128139425677815270630140496548780034840561789957663680398864988273828437391492573100220081599449714281338584343316083419028573536027000994887216391525822512497977789964410126266182914579812842502064428349058861584077465295713812057969099752332099099621008249340683839450574362847612766170125300215841653692423841231256954073699598797134763783031589630961185299845834379780634524815833583022112913004794607446298828131367117584100449283643315501754016525394129013610633194745399226498246145582510149530281752215116385530469591565898401062693659775050161524665397456557285228334940974516964054447052941888468515133966047516979700663382126149112082861488812901273340753708167924148776476281463868605088502861764980178644988741884754159819268080730085518909736992388289029094039963395615503063859601573215129807598811716293197318135727924066597601713574036340437661841343491756728870351179565761692508112600535895484057900272763881027111982899722506714667966458442772384343625583818432028239915036457791919259336516580083031292325963259069230649057828600072017544340839460797378111352218295353414962574344856362582346620271807839431521439286210273394754179359348832351625267423518849411313140923560752960076050366600013336559840182044980873960782735988529361853407726051565418521882462471830237782206568503238810764126538882592463651686602226050464814246325858216862912477199114809007836239436685947985813637776072523817682544594300823303633201247677918175245997800944254569135554184268128213948318632737949264622357572087667476566686192549214166437235611095509630299592312367112559381629143004499916306377388898831068816430206181027928224309956459031519981267327666154661178636770532423211681549012315981095444649230663270154366304645782973192125240712829105195820934867315082109522467949557309074706185885780376968491392848263310851693196852143208351466653502222286461584552535576077945754953556889346879161303627466689546417894293324645820247304153616750079078366721471635223978625255793444663497953546869268447364235540197688872258353333102884503795279720497060387121884535496781763327538861684910056896034145335831301195176651323907279343637926524212180427660379740838099180658158180542537171845019068177938467768597321677523246699003987494048406096333941702127436113557478481669418570883910258699400071488878686578958542951620969178794121494462351724651861053583055691969052520241120489613424765274126672865890089906988045952310675440265245029626969222955633219992048619005190998909840088099660901146164386869876490766892095103561369927686775423380458971495762040661368051594126249837556574843696289352805050071621133469212615928795099397532989676752336789803349700679098649085139374402648884680968168544536111634930823467574535233130819583759566053161851208632516172948695798063457370352044983829265400666619577901753465162224613831810505889138504013353739037732693560676213750573753343460658160953117770943196997910178775649517321923362833634635029608781350280521678318073147795007009119130679811034312944044714090751123904213135151889017473989680032325406894169368672348502384718958950075878449851507180867502115706735130719787403998630958284214111041317687104840930255263184647640145019704437883282835544900852709103238838975790209000968216638489602170941011694672521764682180236443080649768007605501267637649518633239414352098926862926725470434138826792046931828579390775877833057143788504965564938901789819333466526973519739467607723624830882785155986452611225892701933455601254827933751577309565991339232547756312137902987249239931004538170385472132555361781493181032604614636481521098476537228664693518926577267320340092126915356644175013258298002492992707122280998603123769682387972954980440112604954211995072902243913814507160825774200471876561314769141965885000128744355628455946568417537939727664764583676951458589189072916616045029551718886560764815602032788864703435434511545307401395539753255160429055571547921217823577426025182276132280491357426437882638643673375245563745140825903280143898047063711949225877631889939269522376787592087874716555307469311317129677828923355734148398231529794416577054945538357540626369318759830338144298132587513990555042412949128121108996275052895231847428054162297489696265545944459447702323523195295719413462898863448869079452220578405852228019686937215957624447768109757008460798245565141337758855222048079914524616753265846717321358441302674604075646414582669749990021651571540230815702649244267620949619785711919990381962776630509811225838845903523410086750539527273983943607118095342405336759208149311105437907913961824120161733557342699430321938152683681306256683952065633488403364589807332555329206010031447054939199711209519482568458759120974181459104743222183583728551031238307456502091533728013931965529743898606661827248979339099506348077105789366831066688742025746434880879386186978292938527062217424654938622633244009541726752838138403962511036767663106866473334437765574378908286327416919589019542952892911660209251498114525253522472837709965655492269870149790451386507254832766101324616798356994647122575286233760052537679598330822705327755621538121307474067640136432657086223513643825275409275246655403280775953702497780841885074561460818467994605223344939342730330364762051233015870478936384522161606287982067398080610327147897857697801119674132752341891921270634923578044829609208279250837394562516648863523645203856761967465324649883113175808739915735237533389055129167839407807307285589535555751596625240450405084689777901716349597498135295866791724722679366043349383635340715310391188814076869247668362763052687152336234848248621876195839985082862481567718449471861653147569148605370520494236985205098931776374770341671888006003699474346097383070369522980471341125318808246611508649929863073262849175905760019548336757199868659602664814562646200324985005019518377431604439576213973922678281093460669409949996037396684412080478614448826803835543232135522733070706397949954863890189541336307007687920946531629696013887251993069392196297513206951763482522315589633039991349031997653392184214214711081061473072855351403240607108323610033976931348322608702244504672177913463712716483980168853630519709102762209075119291583332777914012964909699265155852744722570311868880849652405229339031924555994856727360454170128318160824951866202988141072090115738943353086366389729054159208821346319094825514656358350265732415167236770934960543404795251552259582594130427994796504690316259388229748382191571472992049578598379447768861312097141643481210203942591899005617822897967245204698875175425970426716944594776488954895657424999670684345694087340792083660219596507376757033721296264149974504850592885479143955969113390237278991185838696054948533298407305366200869461740616463028216728373843081421276012559338583059060523601305608238094287360760478248541609417875779695287485849228972417747059347095651098740326181591722556109530119608558090534103440600824459613228594366699290296510106313041851605448051383132322675327114344460683350679658678508115615481878342598932371270618117929236607884088305172231870341317827220543651819234672284602100705761632847914807132437888055670114748076989143113441769076869699166616557738538769171027893597471198164970973490322969377554055360751129685020021304932387395025785573468680678001891380676520283396529851395892746743730050368337460085883721163459922556214292746766934583540320032215701822814398039260200343310932980689763771152701700328343862331403890073676410558637239070406508258844796615529841875687862687546130292191955407998415590341143027407741242262593322326733282395771442456252903415607799142696382411462468864786082964308025895998594274456129297001516680124799441222509097405112145433312881133560158507645468369506740798133564807744121834043441125973025286756061912761390740864343348366665305852252124591541546482046516314886782221883957921849229191191085900128487885925238901093280105096245293602726888125693876529302882703663969776066682912229641471644079194804056849734782890935922561255525773165293438868809757316615279116783192400065182962527316770328231504558396328664435763774841008009695999107633354728305938858855420451377870031121178033782577019393955512333576274075977320366947879029567440134492514464333026669888413659999265483416727460657456467171119534737833884522704618062475460969122803523660080551380181431928986809096658065025270765074460755564935635538879062746224638087479706410509797160261879733365744060965973693152592399260399262874094467597048715242368597272643722920362073627683229880185778999309657287016338253332661971635776642502854835791302275662048333127566370564345866104018957695853689731946242528510474751476986086826091037175353271003515661009926482782694516463355798833682728257767077606658792217148124715658370095816457563515319469866121637389969368569320427931422689702266632187811946643594954503584184853978170614502664176612308149145238793798708544938922664929230175015105723393384500525065880424880247908555356008933794313782200489410355583268263956609468758470172114590104362352066513018717690094313376047860718241643390460411770152901905275481489486231910841555007280179492776468549425743697135210734004378561019155026879727664903004671110990435588204063748589652001961069506508557020993594105762196130697392661134493701897309091678937216286570925770360678317296751174528937836113913833260712047205187292063835626099126154107771506821899353019548218871833772654702147192077008899718761984257549388232187365771767091868602743419142936682787086071942833410895859437251462710141748391381398994454513143762524115493090045214136911866642312794226530632542919396540468348616321399945020275704649162307636727518888973633522920793194894626600566538328065129571482552529374100889445092701819973421999007107874131767547964061290242574507830478867842428893901643048118079415456342281549900774405111937368817391774849039705308403660128600107376010254236293371307134791429282399011208073507001963234826719521682435775042944353549900400075375416138160558511383726791345967622934992557620527977009067086006620745571499503292999413373081450485966992276406166708026494920958078534744145419324330281615410087612168460228480528140575645522426825102528699348663711683955523834176668804472924537571326361011349827733504391630317483045663873154761049872158725739635176264890136327374533877207367987750402830633541347796365954458054605956287909237781425807214162009328674288382018946854143873055689057364381548312001983813443926154005923641105047279048495713747969779684397345576846805539493190441556104124241672325927821813629975003477755331684800847568106562443544424464222637357854118933255367780188419855647921429426754682996112006792433828993822307599228713490002499958072819507777605915360273823599443101638668174189133633891967196056160943892664087317764663786980644883546967508039228888958081188837397285880614753110963943661334172533741546329770563820757436730286427179660471874794994699925978826961442515498514941463896606875244534982935283115083869985523113810550776504864676045965288850871570018093736920766861432321118050559313256231104044166368979987676125779905106977446554745830891096665300557975345882633745623190659330284325885741927772625012143991645416950579282994827934431695558153672106024055518081044931243462748056778082460558284730896811728838668374958291658898621044486843210753378595335458357081521339902394021837961331629488233287705758654911987543693820833121193147031183740862686381307209481445584238513784479884470485103978594886490721314053084165118965260642978425847250955493332503800393029403063358973809381050829910881323664528476225820821505354781686377532347146435041304569875112748067679373458557465823639390566707311030125553735960122106822216885861406590159587838619970849475262093107607331386237806269604962000337133924699259504410436172947473830910731649748671198495050825655424742199274947519219932880395432269956975451163717880578876640728051649179105202994303620794774309465784857476895589335994899359496148069775140510325065405756598154743426536908473012957112194189087991617362301064346703198280288249561322078715891119614202436978182546711049567962063386069662050313101385256921801373840125326212862447153625946908870991146908203404754923093774641713296334521447707508562879402711568881364511998785854117180851484797113852507495861486705518529948781020592298910434759995460995461436909113710149153876290079416603386994196773782265208147790849295907902970360087312213674178212716004667538020991309972700756501859164393272020016569699976828513957247570607862404040651395266479157301707728189539628788144037395951925219922202982804762778278879638926635369056860411274124872526669189416773807630498263759691009772534962247735107421717728734641148874611351181412070516487560279132265370048685683783588675634697315078501461802251321493935477028524766515960716259300713331278671588392275315591000664636346264983435130571206102525951347671905494989399959028508410147853204030244255553887693842049884725161635872770413036096758922512244833338180899518912065280290371635597955839056724151292256642377296782104919199738375569565794736128016865012252513256364565275929468261700732633945274532499107988899476067404786373375250969939976422060330264595649156751468070632124920613765436406650895031407191501175090619708559292315524333911821110156712199557287977448719086480302981359170617282183673534501644605764749960947197975805691778848338386851433489820451685370553690003732942748208929575201895936115212469592684621539776146767318602437795633922128987995087539886958316152407496935661699794819107782685381147817542351002290241939570091095924677471402404065155947972793320015945186486920744653574361118124791791258107995666116978123643883372920864778813266367230250882641694772939149370508871035156564844246622914364446471717226833679651981561132832929914639952679136324635534883564578151902794365166287954433100776583646552144202108042346497726352863266409471529204216079680733078068230986440135216688971023350854799484078621459918918425442004127290728027824504725860332507997806013863838208908672063406403303536720614255479498926552022658298796566237498560830545530984183854266817000070743965252852970179480290174642908926564699788022808475145091712105212160620528564570317263736369091345803814057856858064065294027212099134228674735699959437740071154712762154536096999544852443976506827195741881897230740486893599791826877859493199490836445957350785219054795178837597970686558294061319950827328792048251227227139505857342004660449074027245550830715798571371892670104432946001915131271221886411895031459074760652527312346720585099437228885685732663775932778194986757657805666753750628667139579349330444479890206351067284159898796285049243873522526058868498784626699836973718289938089797539095469407041462355139587127747240560520885836112243363630112122616834513567159559842711539798170426686274403579531793665876719030249213525971806782096004533740292769891374056438276325719431760947508773976561854789132183771296549304752322438130666049512467392924096262928726464188908747643757073448151034867319564643573894430495321674923740771494062449879610640803657860214827739398130788296215708050921436550470527607690322489420335105894830753196624592653573777819713847883572392824417578342166876890328826842654092939664025248595135516168358816442016152159456747021532925152150016126496622696420110607840288909276555580994610764496717924195393032551392259320038430836840207821405797353389567209083723335410741059295282138079118657861763116279475851765846489092319188213726019102963683969360652155910188274326485714178770353849319955754908426796089631413935380583834107794325534931959406498954347643953470547042193471710729313650070482628004253334479667976579454173856921881444186494210427265542308595965887967411720979147981041882464715327118156068984925135738288330035752993099443803424965654816996176359937262355405734425961251962557708109889418612493758218890697514204365708236014479419629671314001726526401045485117224162352101732128357189971728409877757490906350874094193148730257409737307931290440488410211291619930143781167408365177685931106655293829624794423336263590347748003179735121496932867196994615648762519475352752305145922326266333035858058250387405852013358023970837003560609836530156660449673749156678738608695443706585788083973187543258547224553666022265684577502651707938761430188366301540959532836744357812215021947969731267032156039467827430583721777000054549365040216795591231724646806634603626703710373880129436970596422280019740220047737426858458883679933463335198668983246450844988631628132360862820309258345512156501012744241914652133878405799709057927028534686262666014167227986829825235716964980865334008756482638947476084598786735094560628667831508112609252654137315940959636421151866524884838440332742905907880168429503898233199719982485859537190514411252181295342048360910600673957624171070343983898297975909316939039243126485313536393498807629894158310470005196445086402495947923297173413340827313863698955105585134617140001785321734115340854667507883137512201650711166310324016711927386496483687907140160910578300623337409950365364774384336067318706587711191308699726268628340778660437116533936115021671182826600903581493171348497947702029074258808955357039038542511656336059436363516483633088939704439352878687132372660074231118857864616157091504847773031141079239251793735606814520578946180598962760080640187088493460639413910301381430626076452523359465581386512350030020238390944997434876395371078692829323864668820107743446956788315558672806079026610924397660069661330640660889972195775870732548502660161674759161905395567553361519201234331219194658234597200023574175599277927826220095943977720701125273494119680930245291218906245462132211754431241772227618541429368796282387257605926037049035605394626558612635683365430003534977649491001040990464444698406036140652796085417866125361379359107934075286287838039038257621111203817790957557458576607336134378044985950065861487808502224213049175899502891378369392600954562473265968457433912265379213809337736889892057926346201239756788976123677194913450073867060763654140271372192709714122071737549761691337650401173975635035237149069347567896004873995050951773489363575640721179922647963958881012732191687543623681307101873096457356729503539298727402625052908477873386520322739509808809200076403341177610687392237272160909038740524269328424955056278957135330477720265866415165919992579876725386619443430613374914998069676023115308836211378948895588834146776381139889142596536932331379511332294069032948250748303239447051610873285671275559823079924436817926124999275681147718291293565281075045067124951367483340943413816033048239382587752910320971809323744893049271144101928085532030653671249181341903534065299386436470964054483777227646275992741153548012876703988853502755418260734056698019183598045158178646510519531444819728273826108034478039078070959622699375018556327757169318879659250587302998976297664082740997444317027693551649629458635695669868680139259482350096445302830593584301894520852348822009719737247941972329216415703883446382030275155481206244960187461887427663919369382947599978807418083172921739873885087005180076764305168062681023844864252403891606361767727970846176308899537289414414138995721561581796066905234204705923087885589282214919572480814150340857329947908831646139764705560523637926929991790256111725727265374126823309622972886316225919348806572809481222168181644097995941840524709661786561048098148955036010804272013110419747155291520083891220843010971963918977843706599630037790054497192739001544735865516885453588425627198182491621990122860686303739949676444651238349133170664848411481903742239984327012367432877313745799627133692578057093979379349864071539628117483339279010098863679543595493125003982968351843444643190522998410020602846288141122897353671930573841347242515534358344386484341728853613112271952244109827508074950910152997031265439848117474545174522228643672596262247155181742921996462948264259635873273141403385422848478591914067857307233472468205085216009351975779374630479004998238778403053359057768884684626472561139214991511956849520126821461402794738750445486413013231329186325529357309508855909893125753388548722237707915871876391839708043131110721042418768552932357259938175325057635764674882269292608506788562349878715775977445812698514365992748893826047552379857623341941781615726160862414507572142358024626220861912001578903958506629393558872561433702483433246451915520974846130919533803923087345202391279498238036480649132922679644287782341627898839918184298619916576459391065300472322473035598539383828202880010917268138342846498888741040845445695013167635705120587117731773347360269419574646379018080740992576198483561389823765392134193623663243227072676542706210322499935571764659554439990088786405285617455657929913224167713735609039162436336473784854842642800321880369938502348491868329299854510982380782032804410706681705372722676552595116806109161716035466213214376145797756644743300621104360077750761322935885190744869984481875349078919997071864225063475862449396980462042628242458691653029447870615207919575351178072838177577725388161365901861115832815517386525828350600185261583729851505876303444092937905759735299830957021049456459387290993132311663371927318321771798798803192961707162951401219763288327198366742009415627265018397311154832929452145195627040660871964201118417376971568501977958566347723391731524026109487751569691092103246723048259010305575449904055973313140111558662983791182330159946118807430690504868914049627717009636728253852382565178580784841728822861793497370993950821256019142558357403251262484638095422748560501176458188406395880851331013856985635729804846375771234659325571627349558251323501177840709252326704629351147675326053307974015169200502212610438907716865714762007875829098127546239317022598180510659881763863023411334566117611717993434797531678903479241015547582115663260471884252219821540382276442752865879624283466325626139967687992425383652251639579374514647879795683006674274512621282295204298490860750517813772696960518515393109101326478437765578505872028335425118633790088015743360704212843857849990279095780887965672040417077132654576526806494807908378896973828299861032073782297403956616043434812780398029087657420564537754130110093568078553912050549949291501216964507625935448599925738993703688944705577351739686415452195000268025248742260501498227712335454517014541712403163307526285604211249791113842283385264299918432816894051324154200729777131841157214906632046872158429833628820808130624708989678053070612110135662998478703965804123792867921639105583079625035446740101564748470316094325427273799126623184777818455764581964168317075842020254104330432795100955241315540534962367239972979575202780993072724522253211385312409269073340040786577656624860503321283117281377196251944581049178544017414389845752792385864429355057951443690013982931890010683307090653575113212978259325745286587855038675574131392514709051642935707977066564643903741169334942878878237713618232465391610659046371499240729980284372491094888314776211646696826271132951172084490305545607100726715769345744503791665765261909540867818494143683541897850016540670293893808740331271463207765027109690630384976761298848960967128557387867515413436784622852931432707541743327297783038338914437767236662179706177369314000554711472506233637627804697885300225624508001700748058903390257612063315059897655916343139737425197556239675404823588151361278906811404970561125770393267053897724124317707190038411782783207465976260860723357752855925167485757767542128412067091051510230180790009365517384813841111739078473728448849471981879602584063508962318957617718852665844789996185246975003038020908518057084114722587487107652163462079720256503433790933236518355838566498300497911820986558548247072228625084059929656547006128517039060204382159548429867888695043447738350411324865104413052461578111426398291303991865396328712978693338639972822507534629659083107112557906526377508578578461445707342948037468325520096862379755639702670054524327162814021698582974768925519444355037149071606921501835360061933071269576393272186096559837737164340789953291053347124002017940074482557384614996161244971372278216716725953945781552621681433138801813983715780374272610292447686982985318858014068252336091773974546644706921286287258881028219006179487317132717965898445379346390985726737623492739460000052964057854417713223028053226230341111631226401269022738510252982195977301297172880733682928718400402319103263166828493446292750515166179203326466093399916918745758069941337654062776651882191314267897082768573370857721871688847033735511732994485353498856461235904866153931721470864321302912416545520084542209216814454342705454695797879527341545914931250802430115612761649803616057762012782712311695014578096056811542819326981153009676528841400553980910234838721637759475299438683171496156355298579859732252895163273002872904953577314046127442260753364729500917840924514793448355152434622176063757803225119044326332939083400150679604808812445869911770675304219269280027049117916783435381085079738096356338878085856466307503727121367752607016281806291059844175296148059231653671693413579506544190022699222246551547859756825600481603305704691041427863641454630695035471744038049210590255094296662204047221187351967419218387465534650625242725315193068436207372976480721065526321252399421005578736239782646922643622820049313253299360609696556206801779572189775349206165140952643147003770845027182226832828357314045912863439453753295497047859070046449721384227460452292122528146397964468627832744013247602337442584276586926382503131623009506568017539983928064459234257598650929388098642326933462995362063749570717380277916876389899152826824425254115801078574427345176145655327759692851010599379088553935854567947128074435962253211231802933535664028111673239776109934062271414077458452581767743612749439715276136125549305607889295133262258162350425731268091487636885215407170179304704351420933605391163067739494629184113092051921795498357424047390717250300432787877131580799694423525651219251232520211088946295361270406430368485759847089120202754003515037774388126079587705645463654372579492274303146364724685541508740730293636675098032842828592140120466738251809619250070095451238650295653205220636394444445212391389090422593902088169732596017262165474329554718336233226067517986142501187124247462808233773946415365869089877038478054901180547870830703848862750358474901585397819436239712091304592926740371178028850401537885251243070427817983950749314545327685908432765541565178403198963853248248933702597756059098789315179796257596068105354967953569686737295422211156683234781344916007376598177373412320622260837196778053536709767764416296948108276821311777778861212191642583840009122543029208468974082930929144383909476919640740194505201977232370872344277551747401271397151372008990536956000871379442091493384544743068924949547167936498879472485643353114313115913967644897152344350923353661979680653072602022141796212440241104403871003961394518818960250165515506640520648703766814533308466190562433076780084496339566878456966500602499116545683455503693305875892171560484579609598080027305678985026158648026055330245964465204680803279092656281648881631130721300175022847459297403058107473789860699655696229204392408846918726850285878911314691718098838970114085261423840620026026208746239080008933026694612686811992615954257509197952720168978552972177188962541590802346254554445102069930901659183664842281786521206934819770328181250226026024479078336440701595135970895437747267140968947259835802141304543148044280922037342942847180079491496517763221755197440137556515500836726986785255495302148584116179698837626152965795228091382495932903295655553994792223643551943614077548987044225077083667291386319399008532906020827906611813973593592721401738727528199119914828493078834457127701420931912019865774558818676607499887808696640592836521143687527819685077907100186487323230383419007282413565402974426895667623076345666381035944549553156128578667968179566359112833653017193379732333065238489865333736273538953704481763321717835709356053744098663932644493583255029962235814542819540428104633384792279359051822339815244057059290856511594964759537929687344540182541473485051418804840489299433211541821240730752529045971035983290183617523747285020793733215946667663076072382754842016507852764500241569511145478759423378613809175304701799377510159584538201127067411592321682254936738263752993830552188859635754775490923620225704933764546908817088869957470290352063730181679579220022915627190251211642372932828925072997458160678349512317066809807171647426173199621134514517136917536706326997992820194174944191254830049545679140913470703538927958871522843040752481357054698014714445809147741131679039494201426765689975871036207071877005728668923401436003480410045869931496638105387074581844440531869186297536116678521290639382530053232053071368786373729248440936166660278303713861458695967280057926863731689643040625707632022227616936755563698228431748294969698345068302424875691661428323661089375235309486185942708058964666697673936736624338753205822357958195690050963762932370896850921026135840106988757536982510301730979549182272458506181150559959082595852682258953468588240875124638549384999726117045126774869992967272462146054641484092316992671060120063671088941033676965897540912927213304914810311476260547710628834892778715407816703068259231707588471529668245852211609940992772424719621361300636993897233777356602015084217626756060232397314616299567367711366599568906159646971410416046640300589121559915139029923600255455946094354401609372538637947887429198586012897098542919872263753550413258275264719945117656724437034127430850465729849970625572490571729463285372939540966880528585741889627135703798152143533948683730505889610689615203664610914621863563282659591374140809016817909583108360778467150980718229453875142731958815507905120296263916466590874457614580679797138716405835404217076053918538168612556705180768554826775236112462727063940749861106543746071539428078527511040712193765050805649246952873816548560281273742715455515691675429961435313922813010486559938776519211445065746987424466244849560781402464207302096161705713786424554166042619169368799271875855032171146208854389652222379426935933951558800517585194540702540888087257544937404193097847292599448571633679038829816407968189499496663362973651677822540053839693915462015750602180150921255499425008282170245002219613731503029653854714573351263635804241559340691081971019624516990373751619356225236899801652495011183737903227824231378684206748901470139296982581764672140679348838029289064737576677791063796326307439695123523543457136106671286544834080855804399065465257462203759793720634058628870212163855268676290708555776016388084408774393434066997383533543004814691296381429454781811695107950028569807603912994991776731328192520658261131107848386959648308563332449749523721488239126246529692398788151735851696586063564166058958247826264360033272028197543814867799333458390516115632078202809814759448392112652732087398334079571618815073662734452351903286196932463926578539443119411512448079074945736167908119853095942675001362054067493708574714255849429633440821224442415172576829802670536326835305512506824886774958571648372164981727041535435231822767802730339350182750658778341152836367863071574326160533683916918152408429929009394060735849691394603519863570609923469254888041646821549109378137016843145426852519755147194579947718192730382680492709506081184467788776079449027879543320210354682102279842140645516916152164408162558790147370908306795721603429678220649794688056186725366965572243232076657322693078452570917877220837064846712750827126204345574238118746885497441933424146336379420337630276697320520495539422317448953631953045329122215749769068566432694900049650990898693457968493254707871886589640857515940581336551218323818320330730347733893450206237953626430395272500152431248472764743344014743432160094169394292541274608202949757708346992986364087601153775385881671572655179088049330297942410773871398545161277268666223647869730688570018838252260376128403513623521278646914839491642207198462597229424933628166073532713590893090017475220691638376025614774985935926082757153400350611605438362519562711932166383797550382534828730595161982636598359838262429581753410216373735046453764768845963297546959960546224652846216134700090626467736989168925200161618726579055043908968427168910801700801681201870596870113464551031923596221502619479302385426149218542076917419813348817786254134067730121812697108250249296822940076311691594779899794597512037724256841213181893099067382553986389393632266975143465268322221851008519756706736683356562546185052788979512832661529679402981788791654451047355700960050643908116461138938569746679714742421512616473932198161760498015128391415755512207510104676954942228959758534346914931680833694099168808126761193392009087814269246775897190388928953406339385839177286849722687546331383329381749621784940735622041804344387284156027551579207369938807292337692779814691339964998699032327188168816659288695127842359587734976985883393630261773313983391550381937970329727531299947755308840132607942752842938438299953862581880929017009012866116886186001585571604063627937064398361491185570919732962561086251776291921002371958204375565264009311044999930276454610644043223888307081064345789409077056838860890918246115952747860886441862823785784044232527581046946930118602522422970143898243352604460699541094730785144525298888635395416817126209123498337734943051313821777901347806992085867935981736813752275753554976176893554233701448177854548536443074933486609976308276752276195820158588708273863253047738424841670789058324842852566308885539848543237862960242942106205811453769975481140705122724583937334817821817171833476085976068881616397549357414100639164679034378631045467864263209687405300883333970713945434043728929813397065307638255564752835051817192367617449163018975138679867444790680836351884529845479560609356046862086478612987134432989055264982092192915761381657990945831236721994183391558322139857492052111803658247128888935292065036604609847468122386635628807931075501167246841400737408960365707948539229850366027883459566192354424269035382305715015631325791895276373727258248066897767014635593597650164830723974208734769574193779910498166347166660625949345707461150024110731283228605267968177943348122997120134945269740735510151937865402582886888940251425942800761223344415226410223399731727987075916073434680290527205632739901549634176571318465861221269372886042153250762229906714074705884042858465875353902654751799291621616486556942220417529124600049137926500613486427229882624119326113214919189570920741936774881476573546185963790572557633719218513860951053444819120799400187048814195832182395484484533671224574767081389588324319032805762437539359284110847807421291966395799276156210429770244586948301625340199454257048973689340658460306572171758186917679528728161351612952463688282649337701737613355296215275279601705202366457657565220782053567538398733110111392147613852997854701792708174673664605289147945499031353927165317174173237768877809637581195367987535840266212085259453549952283822057876633362886809305548270380060599168681509979599582897650661462966774081487429820451529537940347522895091747389650629873224199594786073324138827527807252725691295846609673962744747720650408920619888135096363934605199447261205028743408253542030720438386187806831297272319908889594498515726573996463945597885201153992384636926550196580134955743727212696128156606051265800000953312786213383319362753586538694581247068333896837926664739600097240551546846441828559525049519313864344220834807712553596702112688212804611249940815874779923077378970911049249080841436647356305549183793415131459402568784545831102617173377682348079044149772261545755768264481271730753683150729195365590950892040814630814561565915612194849747002659711397884635922146253253644930509269525080055477544551269296448114178230873136202327218484133625546342665347031216848398851340848366764450621491795935630102612282185979784249112435395078719779481410330381399446297348662326763794125093965853507626030138161649585503137638474697106680986094640382687550443843589589238943185709449151627883097489520599133094325671822204596098701632262002273712633294370181166804896820009258565141018658492216759262586594860446721490816496087618090652601970042402946319801345887822507167765678849022615318726562722197429150045014245889538691375470602337070241625158238248189311158149357939336679874605206458673524551987157919321707222572007280148752419905849511835641686466544531925421579752903541415198045497733307741365489538254676186739593129161630406951095329745466877631116446801910789660544406379325923270895806910218202128062553819641847217401271442944754675132469639134086770520972931915681506979682494093843408686582436606574638731999822669013356015212031441612154620448944860797759711229400029853215661425605514953819188549165456959528525684206509442312997037879734558482463332288216809118748162937301325766916226103854055617120983160899141009761329389734977584891428420779333367011341416526800826708968210433724529341178155991838466298989935129350738576590211003927118482737258884249615595977632988105084096972430225734762572881063588966043960940076034628287369014619460886395456879317160294688946832775288625845968529244069169442904327977975238763504003977831196536543587158149446451353804301599616526119736346800061057670510437997027231307066193874030463853682585531047659672188926740420796014418949945107009050107999793530567177956827564965056112828452408304242242632556014709369102435955089350176475685780999777385117919463444921683579065053347945644666402819606126378146945625847673416204332339365716311506345557107723366998500674912264891731432220659616008090578573309056200637261020294213386966232534109926800394041392129752548954161105782174461147894576154544689305605783684707730859151411156869981757376774549314331298759169398801599519617306983923766951731616678358920648367867585036970717195365645349253220053118459919500411722408145258332384933263623534409736392662196830587630155809531492332884388387767081727668992520196741328700730658172747299072413442591250380285654688727851232270687788457106205790556687290401115589993805090930507448835778727512868905435454209122713594865748491960230204993974753077868628588704114789932151869160328380668804908887109646492172888873172888948909007241169906754100291406557987951845984335145612678333410479577875509093065338721497946311605236092239289660453490819533516427871379140745323457285791517717368994440101938027192415115207991608169708974727845176809056079789596371727638001700095036226000754126247846982760089054791594998272970629716657385259534304294100439055379355369597790681705511856658387947018813560888313580792442423631666372205663210710962571890078868792246646561452529445529320670050787783363468432465550207986717426207768916611039374663052685840758833290965017908442363263784336706254345516226807251705042515425867199571826454012759538138828086028460695562720743572543917825020182270407502933768678613579444418165257487539595688417744391907822862978042518517403335698643660803721354166664650411714301332572978210980743515831119965772321464659259292112092195785515139451876846324605085393467619141452799740967808916785325933287132755956685955829463907672620876642852645935073944570967471679155596532602992888974248707912853100758039458170131262877333886115988816716518205943467291893681473790078704779465843928558851215438119619212203621609099305259857083864337222489994001500549445136382191588708355426134787972129219825898346340338902882816713538690568774289771699527951232052567240472742282792613257901779519259293719297324915828071394919880161591271621734835748286521788965860205484729822283273141907392309389743940560133735585867436267911368907641360495509604525360309039925285436487501966208625745636603396146184306920946568430158323066536443659935525987725333825926781421363559667308595333984202977301756057515135265542218397532360140466874286438931502385395260609922920822003421016933471725975068639741387481294301130909088253670532189955513138071448044377687205417649645199990320786955079290669050392407602347507986065648589155565240970380199553866513928828637550215751497066873514612222306476344766963038214632849733894258375137114387687848308882822256109365917535193528754991116429893047320029114458238304748435343245443960059226689066284221802384792715411653027979979727737766842622706746216116671050501066047993039059971402562614130907750553406297880845379094694312996721202005755252211484075827220708471135399497941990082082150510031635471442193164018526753028677932641775668592519629355067928684139185697071670841460106487406321431325399749631569454510560603446410516133707476676461562482229835734841026171320524571554387793328652383036594609150125663988503466196687149776060482254822718008231273069843895931029633717903118887234405270522456093539096575162219721160531554088926769007212375261900652817328052663114221580992541152713024460168459176786112419053479131733566541137916471154721787688173184962742237638447635210893556602021292732010362450427403553169974799857277122208445622353796133823717316875768539495945461537141516149571983451884105988663907516970343448137536516886303443407393998818425264088437653299396362785220451633617094124917269320168316568216732116904110532511661808598540324880320708280105603108244842243449646180467907464159294928171609932534807407687101195285784762576367451142654004973709533771812872848929189800793247329780518772973920531095556862216148202247739928417521626511392373950222260408945484724285669783366529363711087865635284969283278008898213474345776581729317202617981091729572957387987346597119491590978979466264242253344872676106836690267462885393718769055290741571760508423798664337478631364410154691928027680140760601354922746590324228279770474756002944397350567519554522986502449294465153596585604536386625365004881234524980237105905188624838409314981263487729942187512818081603433202788842640500319876745533802715647733534933895885364926331858701784471958805211967051437066035391269583543320111628574053062171396208676778757940448602364955461152977492608535244590205409260649125107426973927733060610991386717083867831459846719959437293220877681244058586601662166217612387249113500234732477860842539148055365982156771199729519481214682462845959067584006624606570929038625120574202980712736003968956852282627133622522509945228919138916961337569055199234688115971742274944906034847861433210891501886658357738736799467697375554133284473819125934508467456722762123528048067645531603417585010586929757073709257694192815538359264055547645303229636086766214857019287735108549533037317775598684328543725000243400703247209616704244246830569215472456389904116844640227266867227067598288021496777650309365535678490888287486791956157673004941544184328198138379163769034696914774841091948248477107978249118235303023858204369054259858946170429262253574770601926389915217876444668837354139150120501880639869868160609092987315357664945493565672172589303654481153745683503571569180269707978179522081132217734247139369783920781142667955418638884712158752543185626972771456674264025370008893004342772447812099245896522295181010767810717570737570163842346541396262753437381667050261981278979166105338692925630600254589485748104788672902422787075762352338924804505015976142486548897213492038450772053211966691778378835993642550691630972209944480169020196321564904073923768988296256265898169349121091988073659126920904000150733001379372180155528214521441972712503192391567837365074461035805711908423557217144534472969752918995181009386987499271025440821028383601377852408163895816896029812392603945947753751799912857371588626122439966459900504614925752926131810921379063588315888653312344690950809608912186348282097367446644889939030769127766722678081794760211853738426947600474924295887140693369714851440863800982419495001306209909259779848654361281886584090248028304174180343782433204236781158909906267173741548014103388035127772538375129272019553774728496938436913361728787414952857207613306971993531501269245448168471068760547352536675239340835043471872931810549919940479983320679143357660714944894676600880828177498188094358580204776549941049083113323653404080628339568985885518121795123062759107924262561156111528076102670697584162248761224650453399302722047637311068687536926019110762810676710963290509660275090052040413874052039775401057027365215230080403325826752805981378112062320907478348389475666631290429301952401786612467567285854556951164356273104568053699055268157081597922789488139057635876899732640033081384883426997257374652190824094682219048951182561156117926125108507926555506764381397578368253907637515212341469269655705405909230959475166160797969612874625383356982886021554050511164120061206208336350154246991845673803544036031300455354279337925371826835013829223393274380046257731375350929138290665230385607432244580669769647594671032267751925842360132303928705978047099435776556644132758700067851499373102165243336424235643821599112550572016913045968912743181989787268192766041402232017435704731327680512196421689045164051661447092097939159016359641040151593348495022392011457021650668458390367166361168003427255738513438208462617806721900471336691432298538442102371356042773246917827153165407399017283814132613084188326215790347111463439743459907448014094204180939538679068868466587508846221259516399039438197474519179850843615500947504910531453510335454743110341133564290213102876873487320417729329428371781965006213477828747026085550157974371329496612865615505581049776908369306777953194975711415508901715316564467139120690593819256720794593383956371357976087415030274551784680177086090147760424972000524700009703814258787751749505615638978470103569873234174996393317046522441298559941280856771586807781309860244070328567660263118511869040801679972672386134012525999371591304742877365475583281470741047471453145866420823271302183838298802650892859077424078516579900818466110622873501028220072771042578098521432763427866908640623468038573617980659579172614733026288482413231125677287554496540410529442329763874732623957830292979155861270252406558594459659225770458685322718443443709768411314356318902485877204793070500142786442294735021590560964831838440630086245768612638461686365610386499819739285831614411515862581715015510651876531088844681948550535721887252551980301599602813465870911007640998779039556335408933469304510989376921037303995974416376958912633976239307513342156226450529694945636408014488933258300700367325863100430872766028260387901515421801546235339598137057047693234450726393237033122006286251399209703484310422873558739534030865750667598337994529096616867141128392020556244212012601728874347123689174270080484755476433789810580657571744853296797786879413227047418085788087985173619289563985260637891616101330770412592928096588986232012474109096479932314866176749608304093782481786620334792220214420422399722554132123610244590074135299402833737635133979490688136153600430093283775501751428559098045137401366791886001623036714746383147570714837978272724515690389587862888568746469155625238041368588517208304710648606981988344494480081787364254046334543805679166629194964554949723918443614568481220185415461700347258379479783951556261091868985966916785083692925693314814913575540781078701489213016809225056639318710168076927730525156493035777101101630626677761922129504381483692964295032842888729186480485843494653435847968754754588012512565221093576277805615173459645558094410878992409175559662181394272245056003915725668559849793698606704639803977969081529885316519286131834269608888193600898642029973060534414991697506682004483577353829054643921256660920351487628735479669605564067716632962049452144350240256279015060915014441381499951324966676476971581021897133285421732955408065359407977758511191756115493118640544418747256099821375343493783121474447414278367603271149136160719195469524225129826506147372150814415986285533473754584454793242170351878113237972016806794251366243634097832830320553162972085928274536551226060633897021914282249229985768054217834085605235092457165228740715723678400424700560020498148287506131700004262227148801796729578995385383815115100601634359289759401022651380003906078480762252845347735198192376300093100244590228434080963283419619762494966522130502546317339518665751995734991115949269191834672851392590238906887044589792237125233336485811252221481593011894808194918638570111428213573221461942352192367125698443177730755679635529554997043086922930670874111227532224156490975354819377629202789904793960786060305344008514091318911802094151738454472767827514253927843555169520164188292262841750903794661502987174133939178590535165586045984891928158069357822216175812052972099646948217548476950663614392848604878365835260562778991812908918729529279283336216896195559816525648002189824793046184547167518029578221144947555505947218092606348694490987028304269671639241581993620341279408050130768178995297413094127292135883993305852645579278727319509523945947852722637786524834333761829909766167014331723035785056228054515581525339278138850098026043866637870050792415342832332704471641486477842688873501840995292905995188219086910036859825595348229760676034633791545490878312595691502469877717785808292923604332838035332320575390991952445589783742862595995641434319932063293939840584667726041976357020001001686934964487686519695639540255689881652186893351162406461333375898777669387956524670411603338323722289577954572833966126475668406479262983564189293856612762233149767261147493434644839182179872948397888017539055844045222276193125735645918351805075847673003795230212584979772516390656145308918948228885063991737090707175675067412277232135425806631986568697809066574887878957303304849312175225493703265086303523162518278494707696651936748980389514998846620647437574029383407466378541853423161968225431946757391723387737576733901187585765153553949244305068367112755871884624911000994489904697619668545736704301090548880084249386730165215120048363066987483700418189082183892400095520368758299084784495442727279930035761241618212619973197344752717306939183446133065960223313832101152236282094712233508072431672910175715814573636222920727229113322181057510867940007372593141312221811669030284234335710277438006605265893093277386209820983451392180874965350194102444510945769456807031588895347177083341445224966290794713193080047388388525885650425817526627289602856405359454314363241068170607764329070421515605809933309541292611166704852778426916647828394359680121829130376603929899401229617999252705076642561449815749459292870419543375997793807615823324335559088681356196204992027766256963101211347434585018752002475433224524745689132093851274894499494020780878435215946177390156789912572701050403551485367552676573678935265605585382793989465760735147441259456984011358842540259707611946557125297751825619864697848081647472402016428816504051464172329080472073468930548960891638965383426584531503841074547645648940408486578388053330325320258757593092412280942605261966858952720146540126991030864547408894816163448162356270652354710771653589312920950995899859310367768391347880384306518007803392868602450013487485526987132608747070658359844272854380525241898252842320722672203473971664753636011792400791216560811439129032047800399688663442081274235452032206944069378823906009207405409526490898918483106988271109242534961872543486447809265430313182033497390511787578412098096056967806419894972599526999072518443464398998012989323411243674083509118846700172000736912160247509688204078307327019103572607509165802679589943229550729870052943948169585738962466686929262488191877027658897415743512638203552763163860295411842262817139208231051774935225278001702540170461219169676459917502732084276452781833686509875356819694637392986796461827809006571095153769672368227870032684589407270063619365149011442650959108584678033794106290318135329439377464118064030641636148297731790007210600629146838091683328980693958375002200504227085309937726263952627812510261773607953924771720410520710047626286277226453732644694601013007621977137552403778664649256742782971296199533455302852188974255121069492203498691000882729779853772939822942562938518324205553236074546915917712721860521044695655803317468368021090293841976694249525447195212646240435013752087448855694912713864028935298602130977404483769365389339540905705957738009004293105059365093505701555574638189206720404346675561791651055706276446681624960337647412010205011396310032388713421291592199675243659952421442022921114058020937947262694163031013182187905052745128121698280323660419508357912441411789289263324301720491437643915500945863633853708754575048346914426209580314413850775141382048904675328625974053440511666816389793046385854010462019332590506600908793256478461349869498783261210353317179409045431194332258319527388699624757553259289972025146324711864995556849960507988367573605210544217196494463767007639248206799506692230367423554924759588242525242158526626251087605842417359693850237753554635439349953215117931066060940042030809816987121109190464789419159642277754744504224293526875617823904268388671113925218953207287758721526767035778945839632904637200363216605961364369568369371570688367371146513152640107861736010668816673977270082302823230387711295463974470059053246529157455093118647479900463598730537214527136890201265638936621366770797817614490917421151062835633510028896186909525324894042047384329940392503073528870462117456800254855543134229756812017254309591047401042195693621065259421976811637111662727966522091683298948573632637824477418875507149951756305574756821113057724815642487025129043808845576790243540262443006817364648407569531739116635925414021627563727304093530606670101515219597426526091050980376851436945399199771681312834925636276406092487141695949729815490215727855089925217374373985690446367833617310528291290918726829999839360421221382222647013632083308400564139808772304103344351020655773817362624093991008370768323113837550202219290716658875668347690175227863722259129475689472427194094761537674698002345900735107317824751603944012912999620622475498561162036650954255676130742828137122993357245059569220411041738934705701508352897819204448515387657323083561905521915748583559005885076053620474281381342715460331221508221896966284807233443694827202259777603709392056789904071037494612099123894884209095222123191770419871457187810856594220640387020330479775367042874522224811401383302506641800789412775035443466894511263400008501822457180683976632163685935391161410754454022892791830939666222711360490174878568540720235689362286635518031728700684063759923033339888725666629995040388596312927290274446315612937105443083702315982594284427446845857899198881061534844540736311859612680099300178651156606780107844712596012087797775561965987666008177815992754902845178461362790523917030016921020730837632532055733696302903409139165345463547029985558126929553762780712290270176021529172809396979679730823979499527355318967559089356464556710563750669541473276918058720551978860320435721155493907630270664558608080832967985297457054273132695358305024099197725748083608264767964296867328737760088552316359967559855290165740802718714164366524676715123810939739722284367767168148649013922931232047724527924803187741404504893474766305280864284669509867004948243588542339573700564911816901336728519487005245756859544337301543582941588139878134814355137720812992227107883949666637794423789954044818849614573030162132121350482529837463104345711570066726114337322797704075126853142048991980611216446584290398973584162640037381222382961790442041494076983462691572557978713666174048867277942896674528857263410860608128830502421722749598430202090776390639317906794080014683263447436482623871675676196607981189575058831520898848051445554138574980843024976143012833893271638155362172169073290612625270853213071261897188425506081025697047695626115297843995495763058389620486907269019937485173650630164152466802063362742061829099422178868701112301903420514285617177738078638114029887962670009081933136039874915196951968390742823751807215789972498474696228559151716035367696714620375529805464691756311903675219208389027777707773887719387902585930400368180450387589793707650584017255418447720024151958930861785095884945941807908807744145125056893630984479850476463194469649655197755589206863071571908871465851707932004070860193510181403497139808990947544234545340633831344736815771876698878655459690602223406000825956967449259205346429701789886135653214842117739129162837219408336798970465738906306906042649543021781524319149899855972292989272672414627152811827734685937961832936257205736588172610545257474712781054768109356964788969712945230250043454610358841305186437377697460780559135173364256901957697714022937535214502657738971550244916643190708691437492394872256332626602991398701612230666291776173379319643294267547671486700007824635032934273026138459477899667897152329793390307153587682892956879652744130970791898885399774823843009690045748886055875185318276285778767941713661414093638880840732519721993181822291816356777287299974517556165716309631352423183507499552673117747218963722113295452849726251082219679160756424213770111946852251763215000258687277416693715527348489264805776243776279134265800905221507623917561947860212023396232770776851350436742160779192988563826410561563102075487869884671249181010423311723772720143652234954327819515517651668364873394420727974819304412705924743507694249205895857059064064814104095427238586026098265267517547676626744880317667521018610487261015086431177907485593714677083678223209755807831085721691096594161470350515779048014936666451487031627264659945983558813195003254846311559341009760185525698012303891838285335480642560051683490413037784753623726634905834950770354206161547128158518640318164976384695717453772328831052283045904481795178036295251768719451427954832212023686333228583172100975575815907176434528188036732081399243910165414073591027859679105904001305869155809835323762884705992099211030847046686379299542440362513169292742717527301295138865251456579158598129534319791319087133991280633895075997278339489541143949147886911271129941687377382255661776639795902091252813496034773260344952751796600414811214445919983707951874935005936739251285237074909513374942367199472506781386800850128101612823515248806181073480903851539156372518382438243851457124924405426536143550961255597829376738344548379673821022069233971930340021398264524078377264553071538657911973158755415603743600452997874943073176250666859156411345335870065061478318006715862217473438924413192088099877465166397547036247415931023672099319547657729084156899972230661134779338717623889494105785011406442694608921266007139882519727779886255025087512445656823216772764703365344472531204474915724520234010454496047227058608733393001467116817440057127156997957242756471880541476240340106501062875721089663559122598908975422567743463385641071017535122075492339220257639772715313688551978886716632936999212895398750836779563826013740343668077300789117971138382648843567878590154792754077452864773938960728380405424230158111576294323075137468213056047419555773552274822164037527185764451021401687994481735318649909794198832084463678210179958983525121238310179309552377002258967241327036062277660900927028199345032682354273685598970876634226499938367838919783023191681199268215687948237998535585215340861134866436809719114032836654028208577608510629043097717320931599571055369045278371336691857126559973598462151871274987474459281900296500894046765351486975595483580972674033133296419026296408595822997851563043250554795381540920742060897966079043210799241869355065062274112006888007495748653724063387454361551512145662093009706208470217648715359230349579766958862245748805562804681383684495161119169739228941081521342250330360957828368604296989481451349657945721549441988397932705232499343223019936621493291940950885855046510197217377858812509904299547391509782615500421525092476007657420608753695140095954670705785087552680852531083453768689016622341504672263702437908076694643162978448858987873446848528095762646266336130658295820370168834674589790478969814207092748168397313737563116273617545126560884224929494309774599705263206883264920416500284647858441636119977633158109143972554706005097370563045897883005767121716114127008831468069672340931154176628741031744708795360293860193540735276357943335630178074197772849645286104674473720742396423282915838591612800562550419454443345348896757908806658155302431076887729366002515122217242859301553921555489859714244558614366374054636008325320789975505896984488516557223375002581873451602561177212678811829311758891341761352228796021955718427159556096362456058656569002858421051391855844056080687143653035308446806414308363225551035664894070122539758451216994168297501561143989742219821260907261334217750418106643673636310225004246100496414479684362859307590062648598637304868158965842900776413090206110166685649152465821615457434784709656528652385671627033804779259538836945489682381270902392151816063558268840549049467362403814082704144694111508125731463736959180208779761663181579227110894367171112252120211896088716246729091645796072128460301988035708301266381904852309813107988719843945015652214672978542967206609808693611431042512575421737762164406223252191167381056727611015014439403079506378605260653143809358080312493382998575081753632309057371497117064108422989464132744503256000486808077588916161461690308918950769035206238723199865145944960283040037041080386173420384119714312991496100151976888367493166632174947164262220816300173822157272734579956240265020789789854797699607470001329527723778289230362613335853089537032436207210667379952148791004479914912867190403772769542161315879235927643302461840459760412505467095984536089737014876268341233158724094189791168102632440739047572914918317604553614527397850212206636744811767378144470229749906590422342300253863484305081667697005972268826728858903843893641707035802149037943280664135483146496958369528760387002419740440729461775226435749435397925456612784948227670796679562349688104037943966374455594057202182434320351693869485950934774613488029618283488109517560195699972838621385297161357189775117429592508494787230956948283422053168273542587309299984588937626708197836146547896244214377633337719021888694908041476476561201221901388757439419120216244247321725119211590178494998063111971325475695307272946739043589015661297293620949893221786060267582145571882210312599841351485573863277103744149918596912626045722229802860535617896920255408779268596530968727588550018778537604243579171542295591885471725985020675886781853707853990353461974186785062421899580063655944696498523797417797599901477545849955533482248671439648023977833011212978022974435149436352466236817648612869217331818885806737663787595789723230819145320664266783075598813379113536797621332048146679693498256349444099535711600235550269094283713360557944434476950180681548135693856078883066688965088426096327040344276203468323962243664307583935220046032151256669052662639349049993631465448101175161249795483980203457599910224911290496287168100201514050541834954567634574390925481849538438683618117499688525018198233194623820015211592183420390820877039944078485414059163506178086400519467088263970243129065217845517445130799683922201852355385377828677892443144312055599437453153557483327238219672060453476843733334885161031823789722011104938149333483727696238419825491788744780572316003824791384035931739403664458837543396564167284212407612153574929332596415930503972207157680783687010410000148592512897567477916488058011039727585087543831081725010225546847409784511159004976389956891505431700500059850699542587247850936938110027379575335645234944010192919455913424002959193552817622168201044419396143943434310291027413464106771354694032322687324451552144974428721176976905732978613664421997884758758148189887836267075186017568316055696718347846032436210992059758861847339486973277635462506910323546058715653799142489663549151112589946651999376999843531262629749093512653802239054740729365367577009863375820541053695887364719101321860061749991313152908760975851955238176239069224140810968183990105036544225146701469064522143023814273844031781355499278609071622055335496504441002360753669069179778081327711518348397753180179407135307976300319921095331907509167761198199247761315109483580855969300618055603146000136985512375977735239486483104590210260695601102633317640750354175467719854031067857793540441597570762426383669956328942461237590728524281490618031460662253669735110551856959121158071339476651389201790093342852879664994478976603744633150669916307182856869678497788711401668265240117820856193969470266679054980772001624062851950073322315805219192622701429655663003786947302860820077442716997241613733442388367401128212728924944493467055002638907938587824602199538018707734228522428006147204529385781723237864157308309437752755597521978965862582125755063656000851656557479456756343476784134896621119409507469042589278012101142155033907920966145868011181207906123935222959195111364541712729385308587469640674096312634832557187737977276213561138616802188694201095156626059925842972988404211168510032782524072637428829336296895248911136797344178883189305769660201101090610370808296679353834125192874603456656618977171959572739335944217997392370687765773667570947935499188967672264660127813778416455490782435813232221469948642837020078333967378185707166955185994566576871114781447456403499165021564804579031430665587091256351688854568224059672181820388296911427265375711844783735756592502381636908734378926081730401838501900556849728414861026403564901386607832733099079324457384945906850295053770019767214352399687648843520609180304688668428223686178740980230048129184495296707707098610942758410851875929799323262865843636210480603921030981425049790928156840273622871864909315172018152427341624840935777699966003116461520347878562749118043325090070345936014182723421677879160357668740909668680916261941271811477252961462191001037714902301674420622915636427529819862406543598900150691266608905108485499303449022750575466028235640317170495446148773641630427317161749540511563077593561978234314050885093622374226992796729213020809918157146788934732701667494603870894261951883084765569557366634083148712552798394045020323316351171084048966586541513932720772993921563157178027244152838989868648470896172300351276535152235536125003383034903098852269694574215093244867114711866425379127113277628284737238534915756760270403425806412511232373016261412518009179064790402096091251721770010498925881204601887592459457757200967884051122350898957944543152557778625283932906074191732538039553827642480728684767991674703653562501911303650961228137395070129029431356007853604908122494557172620628995324902299098719742647238519076914860685269774237754946838180476181661483340328364200230905604312859748580916795129121074803975852052606036214203473286237706739611438336462893455532007516741270976888697923455274505441243393479741309460116759824508911334209681074130941044585538850392204590025022029337124462524988621129577862966946812681672447702215098057270137321135346857143534854702678734167036857742121299929125856782501020632637194563762727354726730064735734443061155310337809670720989159840570106598473661635301461501970843640844489092489637948796420591796332541128082214076886654843668974781508836339014086189829050199424120403270652261677419498531554937069191823541422496496341106749426154304897485539826997811234389903716121349461359655272141538411856816969030220261423357596193249537582196669386423437835088886106666765138741324546978500544616186513977760600895137546924041613912799556882572191349331937269623293019419011058077944837624368419689162758886294747372099631775723853355697395584116233310461977375951334778679999321077623369393179982996613805421549488295157905952830272454401269177626453530848100046671890383103267277656385988612865265964773512225953704316120036831036807568191873123777087385905384023825585263531501644202977222428530836592210633214408439477906380173611124393797248470665206316534043813908202310842118153485080712929843773721771088679302107096848891189288226724464025850224363834461251177591625301515969697364013087979682291843195035402455499176569181294819570633979670638063568578408887033865098464063465331467106911617826825648892473617813398120360974220197931252231407700766338380434979873979061704350569510014319677861406252725949547535041973925052774424869368098917955636821728634878448485062776736901166457482882522850980684615131217542605643103762741281477601420533553879033574429963827541895157376611281856899577339360376866715198920542644463870010602699595199840247850023367524567890571129238624296111069378373226904789776205560717352002040014169186162440967358412277558923154897962103122053691420808464806075799387279548213462242198092844888499804752053758379162208203465362811379009763204518954730626182245407760612519455119806721231040223934307757474708167449676556660382836978707912396461760883817091285211695672565478786816882976437563899474303029492498371106742409177520676653176600008864165315292970472100765610364682526212980183195163557725266615909922426843545709596365862270225920544555784357099514482493808852502853859442451078058641985460694344307780769667455293675126924083919734292208533597875593954405181973081593986175975947935155481793669664953099017850945574942991530974884957602181169147761289502047743302861526997700442283778906672177779418053599395954540174784221678260342229235213371185599691118239065100587695558340670742404824003582627556985098837240436516509111992587622040929662592715725930233348221619976509037197568267722929328120195773973297260365868050867194328269654971795042150180836250028095000404754622121167711646693181931492067066830402325442294804955719782987195624509073304760868691995928813710657965778876846094467527182458508116861238054061573215244606852663449371312274278243496178841442194641568612536105278144205486917809230040642361162716465057715822066095720631524501689463743349098770330710001647170072730971132682025357761270024831832466591086564701966569506440216296059199880175767000653971561880596163257934774179757736220003302738075100402348220462042303228409339194480409679902333030657824437391782814387529163165201576046748571370574276046394959742188638456616265746203061563344216861730438337672746469441834094733898960126356118416057523718101209705578618530295188571872272311198931742335687210779863053498715674742104164303458800309735373463710550251246734821405329939545615386452703448319666188211530606721098176558907520438734338240568894070646067091233456444234772007695895246830347731044512335876962856990689779690463320413233530651599865561992182017504352747183955493862978202868781140017346786804906508778427326463248400445072854873563066829809652050649711677781129916564853526005634983721655501566386219388001804654856221309103976079933005526403003444500313904351746715890107521611379946060053450216770094543850606475041709584466739777489297479318433421726094807973084897243485640125663123827476761423816017649344843908023553498653798862506855526253452302619503656963765148380868449048909409076894521523803022555420071113399226266119102729123017458038471005499711678270577620117849823908063676350983741647248333839371814443644425759578209481963895832205132106391121118347087234813019699653925253928275786633277266154013230996211717570434585727801950565485466586513789221501957412592216946831918717708166521914172865063429884990358221290390763410869895028855121847907654535981028793625346115136612850284455057190318839348442025809429724310990512922125276715445784036726790384142345820151159408467566659571427035087187631589342417821742993740441046494214210351695688639953549319508811096955229949523274548595882686065403351350264979338442092430719631212568742521350082817124756903352607271787160802767143935609320971601825288815034444538198939109456659927497635302133026416552705850833201167831628293473109072561525550904758895397930445155960508328659533996145851054837175648114272183401870148768743613332106425605681853716663471937045836991299286140692262060667263086358036101717851892518697886631892495819225437673971793387092236071863265083889492574624171407682123268790728386061228880247304222209323217486348917741999376884947845255923363556223700920289301704183825122627523000427026957635289715900631342182557177847461998748422406464383293209480747205001976687019306322524759260118858031998532750567224787260126571062979818415854273633521948773070191313119157620976795338000394488584703509058762482068007805624554891329294400433767840547574969441912304201219285208765588163905655546748185853100444667899044404128588030791653168993645170933754144081655048868800412035852723026066981163987205541303195331897940046246257609045636699549173952108288421180022754261299891057824085112863553669836526148320499411653426920768422425077271609858657423392007656481215461740512295359499958000029644283579223310405366743380537933904897309693536418711317817288171197025963597525314064255789807630760882311468085317963747358330031414478336485922005970099762074227490049048580474366054811497079290861453147364688164888945619825088236218303977499650869704078123056171906783943906336273460622235319693053161064965045714600289302316733257428994943393294533185303122673992605611835905875939888940365645805546596908265850298754409077630760238139123506301957488841277986560694348729999012362066167850405315998301306196970591995739466757768133722995779340512410771927932176939703885357836837967938792208455115758722220166104090628446724363656957035408794323856657401106301930682696703647280230443194610456741367296872719701123208845149647235402496234306604772412846804399829242433956905230587078776149137591868313728794806394615399818425222213826457625351154362732993275132456862914168157907445479991756539158202541855634879868546366565974975806050191914548447462030354075408202483179699620292821842258911431371257715619408468257172139185218387277745335521446971127713194880754239630725528910743278041948993049135833097797334921974564489368371436457151997509566287152051229993917131079784672138343258368637525464643889917173227902313221160829131336815096051183098968465968194687583498895407346214572738505669016962913425529145322796059285422604080630042361396187478448799510869211393786278188284141384911474374070619119327783191499014518034072920521227234563966929373182297415389725046102503591602608606018627523337117323007066667769381749370460589001941817930371094987554141345603547101423810008350909334999442624947891110395459586123491149823377462804836979524864680031279925950029305731636632366267709319766565472659360209780745002153995066222040976581197149665453696907630326332176007151513620036582890140184180570716176337266667197575365568114696436264439200175164687605017748623309897472708035525977693585862586715964416762796768591659341753181427806129551019789447029342475082117712261013847286602397704197982423389160013159231169783485911352007170367089481316183738537195391583460428219383783766526252482878912533172386358928116895230463049213349786139510022146677603653536869385419103395051165456879001919538180093411974326914964076713754103649556327564297061596141477052539302861710766365081050633024376567435519209001676263716368420839723879939940204373391661294152727711922172649209741860116691099546770664348601643464436627008778783285751499736495590579243186328017513437100649175983553426476516097163171536641698589697709283697660104143470831828200849824987942509176404535312992986986383981452791290652539629182973879922178847482166701616413003493728981874034261275281593832529470730670009765275448775473325135398903826100876591325126099993277465120278591401269019960035814657583464161172428375880994150670374812046107123110890617732049977168098792954112696527946691474403193519535155730108755824139396339751397095310405033322124892820041012661322128608309508448005480820809645763883741841148356746316311068488991118464632700461903807880472387926949039018830993203795319991257796021556579213352210131177811289009814434963352520739863314019297389332364831771760089323009982449818572629074741626645412215264226841519762037670704285843753296040716162232772805209434509967547100353513520054069260157816690607447939978762819135153597208681830704499493307497423030320308618558477468380469461362058461444874588540220676410820467922076414770489001795455288055039715878344195982447209876046872881620934027183248551703401925644017389740605088595650478134897184450268491702521998911486894539097358531137224219172507871045684488381197495626671056998596695238106394719071132414956822394691469764152471099305519430882548838759530347989570821679627922868030199405387685291939608610190530232313070076650599449059843825187300777572396726618336642658003445427427978802884199594161988140204251881785960196839093055156897339238702556018482599785063518406318483413842068196922931911090181512062830830377520014183112869424559207433021833332770249461122803706341851846730696426034106590757607808322241668782841672286957044810795758071539890964037265764302677409600124802772644765178425863629035462300095547115800865211649492491988751398815800212452724034188644927787764013480649104379092744889235679606814087032221288901404475429431603272999499003023254646795593867353114330735135236133392713118610313834097569185521176920044518356280632433423615689286608799588345102010366019004668235027433087433194369930411698966948372349911237067637450117181453988046285714912507867306990810378132041380013758713333209376736889623937147446178726983053867179317601744618178568994700150002241297677778384780638848599330816522696530783899333425614218830979724196987267013377202053291782665289915357261981587405556244535902857366121120791585773915253759378461232845304906965921593612713104137239108215098865115230215250803368751976009748531072607516169352540233113777680959317564572082785297611169622732081292677544036020548285751637027290742958958772922494877767316287126449404585850205079923480947092688178824082557419848907719342130435024722131761401769565603823436656148060655857083982382837896595882186397005339270371386681137098783513439932981210718153644474105088481890891307997406696496481855441970555927845760707497008992174072173029571323013239168990389465371793618117625219105339063962731651072044721612517529247909859368113791013405808649304048265968166375580721924661438830256799113941485650561515710328910800903133287164306516227723408928086826070163655109776951005029813990893461513412981113446670198884079651284307263541784830090074120509589417384193222272729247470373078779984249210495572369791032447106041244457313639792060131128220340875476674087925249928824787161939493545491269984269337544108646701751334909267389055972334606060046025525656043242707602655172780629021365565162755949446804621692851617547287582205420035526480373751817661982290319689355000407518295508346793057164399505696296470562742736482158590044114559265855186926622635252770604062106319537719259798569377291363077511150476789278753687812516679060904251835682103718049729793880917648268634768269294968184451427638585581286847830539798733412593945680394629095984395065261457792987077632004353212416684063977989918304342845566579494394461033361096163391473480060829447093174493099552630078257197138645335434501103658848824044328412146621061176307145244456292716838654963695902356217768015276213379285316293472942422450095625517016093012702820797773289213483256772947887952601497197101808511213117647508104220975996417136484149861063419902518773440024352653783788467062736368328796114433607208755402622857841174346442347154935224536069450052070704761438413086789234642661740263919869655913528304393163081142358277874240410539318965029790614369741467144161305812560968752799889836364770108158618074246864290942309022539318981570622206232350045425430173826768524595348496261290273876503556445205258942302753985522135825197018849574544539699053097669327266357494453606268703256327698159125506564417009332078512448730094335911296682287896043433392839318269463334611720593692368237943773408360332031723068630977485338402616017226553286440739248986163322097619659523080016909083091405532838668920220951591346748495343036405744506790460720517364988593247886875295466841295081174756840521563596877453465733122325877927602153027500433685897428605002642691300517309512465014467808090689939248569446586213819068260980372258105852690870090620306582037760983093774208236085441944046174102888788551559244895604862160122527924714675918417292204622645300783425557110902322919998586141430852900499949588799563808195871868691721620165317750614809539525231332945033405606274111232565926749544635206436828335653206383890273356660359321813794956828343457586870796025338653156168351844881875769139237313550842542520906259230694599780713055270693531826891742867187137970203407764002363613615994507004438460591002819144531139058305261865480200736088117832003262212462084461310944344817654963155162085161847472673611402922297991735106759395448508062642118777335538436319928404979777414849456121273786343671484441998783783712431555044807855247622734286771553544538086657776100780912354590571003613935388752201747548114495911718108022814094480438823295211135612404837217945141069631997368962046393553669675010277954152118716192962029168394674945997132956614888286451040729985213159799035715304505503144582806342149078155954669435099747646831038013861726390781155263107853180872608826475438801501886233388389813177058543201162349758947883324740429333140207122780864069834011079508631425108304715720822011919297609742653441047678272061241371030909067498379894294274226316858900404427257951656939250068488956924652481375872855607340214407068085695510130941137229456751789298363870950073559986234371388055535444591887938938127927847542011555609679230241317561985761202641787218056499083331095007367425936546158774528541772198184653806718094505249506406995566969469633619752196739583195543581963872340448466801078785578591514427720811421795680199220886345884862643932035872633446551018501570990164177338609424883127288194803048995586289764087889243243999044287828595103535106728156033550862828004693815272112149563150308295824706608577582799966285030631696047895367192808017858541237153444275940426239461859347608631007979322507688700465547020881296416355586686795006441937073498553509902044547822589345899661810719491898216767832947648885289011344712225240028067256554461597632051526867549218057261674959777464668913857975357379311556588386432782634901701412166488045367920458782106197841373328442571784867247204347095588207006673200163196296279346458496572298096706286073917926002363566144867056980896013185316234977184332895915271634665138965259360754312962361233438864282452760367769880969146275922467555301255713839987042555709167789458743389846233528927573386183849397151170420839435872998975024397529563133323693666418805387911799864844545864191444994586587961274351484930484119847789122995229896262735415175155594719222961146394029171629316635300028220906552418758872625385165865640048234775608943868679173399985105951804293691051242375631110905836726243984115557620272566458519090521378629301960115727000313705257998283014562205311348352664358982609686408998102427948920947592933995063785367604269903002420799862907959751174418065975587175063090163203239046494590218595622896416712817274027134013837268228460823164140660377076443486174170105694715616236085727117572020155626444311338059088919858097660951894928992395086135115296756472124327704789160050174730042457708873909441366870076663894297005320351045852849133931663301599214858329904546179035007297781940641652366586736981158399281662903538290543007187355313121679424059475233630827281409525667810329319819476649253662904654448705298218265830375229784027311997746680302374960132954501599511101304638806173559820108398904060981694898596828272518610149503086292284986849907435276481282408778540648068876104623099989477023753790348217265496018648305192708396749860838644842979026168724741167807065349466196662281688178973911060890011979232809738363068805145350545257728410790872771611951392724837428265456136973357945332828006920822704696537682715878027198281455458677009611683899696188346523548716241322299347243431315434453347709394544932821895684608903751558626400140932361535944628714310818682535187582204899443846914186486034687970041851867015131062778825187113364288866078088847366575097887321728261057879079201742011335203518316482527969327638678158028313854169273904992008477551652615176885648206340681627724916629178854936909045320918425260341737949462068880083794798000038153667270166176153084782906518562635400220939451245949309806503099264598531665837997313247398328393409105144464175399222109345688251050412097176939583159999372076621554588964749615974327971440710817508574806444565553746137492915045916381311407013805142873510408368401121600490749450304710843888223890075670190720909089879822272200062591182718925631181580462233054956130625283496048292197603436752929542547858764871982135752476006883339959651857493085318087516347754654598376122414313919244411812983845955196957665461671268099565294841512558174187262654034130764133288751114321072194095669404171786946438784023846090733794854339905387818151978814780590340013039676405973244050318978230758410436911745541630615675010350537076830553553285347412942594260708535659762278557320289570571529761533222569486888439652373890345274981212174416522126039375370428101121523482676864463638164248389009155191829614264022253285686554683083740733480049950136681777618378123125853334467650137256304826651089888980159784117251613876564441925901746818326029931867639881953239158929282091567321342927394004064144701813750760508445222701543790227952575175538059955102477080538772738852334171648447580442532231135062905851337850592485663263838074871602160307311775982854100334083937759238451196052543659567640057864405871948142740889801108677374769232620578611224248880736784634004318173587767936383563615595798143110353991472952323992578450089594357268096823368202630910605032371743355279907340612223486726419007371138670647318245017574326496688577709760640353015395830997992294635722441639517019132303128860656196050906273762640457443288116256755027255051585437428895383739951309750665115846906398270549608833546134446428361829306222070306513199198661085856697418355775871442611275644755209274191965685106409063222132865907993149250395782494544097255119681670126445258862373682431746877948155755739315178012932259246108592877182662630742191878624237596829651672864852160474942283461852452597303839203867752684842356318541231784034662879615680681286537875052842024153189397698537637356459860797022035988827407899638087977673093848187869226045899485747635038537594963104218518351260548815185723809116597429673163815846107889868859792282035557072995250164332734054366752501787267749371738797666622778410228502439134068110539228220077102256765144455663334777533155194938063494313540484505785036038019528377476663354423324786251218072935116862860121623516709080830457361096462576877662304702281783771350413108547364316680622062506552755237974969353317843179150121086908819536573069650591261848328348763413462185144159226851108496062173021707942999246532486307538899065957193405249947555059060504432932262385459945594210910410710964944665317950654645664515566041367797162651180674550195076414939113474022126550991124526712926810788957526654891272066463486357075648444431353582797266621163224060100320727881960450844563168840900316698486359757154221218203403486533329322913717727264487528472176590907162227954452935476040125611973963874733503947262141589958170809103166269078476360356501749743411006585922282223587955866982806037286581023971123286440664843657499223793010262849119835086361219717742528294285726167442847578822792522516482236367902260184887081629803095717633285016891810005616877118527801164753895155161309284339660633949399094102803493996304182006436580918428576594825495143322261332514177890189806103663003524273947725569731367182055192971890283336242520974990464064673979353192451186756746229608077279546860073490375607174750246947445986595343247330555476567249919363433852373349315561621750169903273874935088258950264597034531023369740603809368362886892202502897232101324059580592203423807498541724443055178604311163214652737903413598547554972868566543272251376743454284091460164575228336422262100891803793146014536534951249709259282899497792677677268940196613915923068210203452582571654123431303770755459558789922524482926520845693202232858957980127480112623164598077881650299198848133855157241549669784781915360230062585638982643135572378435778389271442754129042114252562286474938054440583217050754470505992403393908825414635356207238968857354529993913394280100324026120849245784965581109309422756193954382984767315657212322131623135089417374695451771647393949626926653903640261108681989169620148094810259541490615503003630044853184541815319536130225379937575312901574907886498761879040500491301437507339838620630727370876024617451862557489595802235348508765545583566177800192231468434435358518470194420100171214980335835834595779158136895608049524707848024034312164028129300817693663343166093354982206666344383832437946637503102303935100755606274377311476394643158394900411650536026786147658980923888410182594995506776790668908288148658205617065042979281155029496968341762171092349883660530869295915494997416933842082274549692122933310137801940121296799578234190701368307237068766311744584865600612192324244584017352300377135415296645666892924416581128262470242018952369256004754186767449906429263080004531723236924322476372759355797327394785125780386034602715825328200101152795610444068706502303677808438236492607315417850840526274278468598895575568866899776383628227350764648985826528298401384133906930172089604652290910303645857430716302666469005540511341262174019617050486781243856760322243858440529725527211723825753345403149873919669672814784499485786686239987409256218362611105861058498847659085324187298527620830453728731381400660705337944688266226256751510688497848047142078220372340546582005111025706804842409844274050351911735888238928976840688848277612250777363115281345491159990178337585980082509564007362538601511495116076889177798806199863895657167072080706615619323053957862691504558061718524020708460911410070627120537936058412427014785218884554067646880612279486767985662453151354351908606360180350619148348337108169580219109430226922087546937622117378998105571366083026995091949681726116558736141072722425905395864511754447119346081523270757578505677089555595383545360969739884751752243010055571021256797297280073484749123905189696449246707984740065573202972569632940243576489257429447830871627588140148839281229842443734039337220426810101059358391960725045925475437401555729027747019923694289689721343492933176440818477142853727825462322958701033684377810219868676680392214211833947258468267473951229771245547879484234075546985305186638965494117708432219458431704641461250560924592618076811138402671543428837157651760075008503211604246088721686626685401353299820993255121636146097425507578980704223987166854904036531347401792373473530576944473964128591970122637570861102299480396825751376127932379591927947725931886370738415693719969151441512696485146773793288612831883969830853759652788206903848440089823745171281415675408800448100069242266070894543006814289882077904906692200586925737299449531207581501546827876334898878575800292640242258691289230035835579168758552262112601595756223729527532717284895994218561239714072257928569025987823491578542797494661084161345720003261094911671491998727288530794499333640596203908424614536754143434959722215596270672541697022387406896960785682736290478710264744735831863514981550152515425010866625788178099008284575520534122558647301514730197535317952223285852725180193162093399980950679774318516638576401842310402619200949914455518284234690105271878744353992201028443496400796116096820539239712208548388736982558213633888774688043973456441877362689838413303200047302246611431921545817887471486784111907553143213981414934407668292497011493646001407014476743936123169849416428323822062451000815979425486568213839707111956217064626043453403762393047660140238270440838469469715531587447369567650951014122102842985833018744060343223548555807457469198511330520640936616862879644902964575669919286418744639692000787679018472171853844954781006947942060701493903194266891169642408015958014411296514685241491932452326302724646877440209501756589268891538493822960474719596373998770141958422182686008314804406980984155533253904956998379067408908526470877603789895613886765223366832913787663785607730578440593136236680558608796256531423872462309850498456131875825477713174677110937026667816530647155859709627263395367562501697413417616013995202464633740071826622477207832116293508099588594771739632653271555916236663377874567244655805655693150883301409570456591567085257061979989575149081069324238731434508574753131959661971109924893341798410704916795329732023550803178651770152442428564036127066285490522913104913681456092322190457258597942352349219613490533828722023881124302414672648758687543650064694235077140724301060318525296732765935639049425319604670336264858338280423625798978549890314570231367304158715324678212487417494754189199528034054430908703137504677470091855467140097929860536641839183313749651563331447168820092037456127316953363171746470294499484822865701433975350821416861036621948040295768149626086305170051259624189009714104394175860830788034197219404450252273691471804227823221102849697816070962193488234741783051881136388863944895394975165384808683956408908137060814489742933976021589121413164098975561582610057478293764410173526448177798142829225529917126472355682664733290663986451395289620489730369025604955526583270906282055602991405600420256957827292018425910806557501712110868799321219136853347631048321410675640722665730275796547762141282824758907272807038893785702677590295315709039963868050831400446259575173475734833958395104218581122418703716402777858556655775254227956159190581356371150644026220500986144131946887328064775880002143524197647300890768424355759799507305968175808852501155949643631214769463161739138789812022921414175985666445478314466054327793411510234690821235899995089654736338854870891750794835312713080678671571941085516820391498521318296701973847488373565663993069612508058053308460808037033607049986757554539421489936921086826084903577715579917885326250830084492362119870937477603334992915670240601176080267481935673875781331549563280418461553001190471994716747906135361336039329312628622062477088588399072991897662655974306777991900798305975890568357992552396183164273405255821763758335170401979996514515788254529950681381906686019756991548125745530518851876508517194493887579604331951448096824261559053586661088363461665800654226241310030609050447537979823204773835481636690627235794528203437268901868669569510163765646821776758223876945077325672264628396352027271203790262025025517006904637095838474245962471428180212533860134271125881319624765837420951897684065919015414422799487316457613183380483739777399480499193109411404680441094302591069770132923486720897513161561034717427084668331011028911922309891893954177680447810358648129997731460718559939690130294454154731558954384232915545716649914814467159001618370050267493052652001166729623720149653678810289286323960861310024831484294820258189825904036350089368756990778591431561883707958651140678984876307856151252913660089160467517863845200047784889722749431179364150075985636553636365007300546350655720967862935548672923839043673161230491829073940795060114912217496419463187662809339260404136832658687733584305109024870540529786899733524478895107977002338251855936401133818611389697079995831178833774286780190654879326950375165859394439823587532188412785099423313941983130598801313421490234224354336265111816014475888410914622469360811534289109792502960434755772248709967899488076792508574827948428970691958749636699208061061875058720752187574305214707675399219391394846854248192712139987050645389133454624203368466321843739829776950159182686957448740060497601927334226460519911401713550945781882447611378476513612914926054549857912380113933147695090698935304526186947429048786593782819766001976907980578294972085588912211915804867957476311830834941327642147274763857686866918503309188738535334882089103678113347880382219883126302426081901299922985021099922951730487946864371910983737320381223575752787583186699509658744335297892151678809471408154282917926041481690839130299391462092706256094555568220557818888317354230521992634085810116476031717999596770910464874116061694806861982746193132623325638326458101533475809295158370798647841856244619081705199430653805962845929507012923661635886466080249490351237238520414220547391099738098715901668739658436881132928811515904377249983766211057683278916876016581594005284206027115276237256751962312947159296260661903708793857754524805583142372866442252262649084471619048600179624694477656370392275395686199130661498886534296953822942208688640629648339895933572760468535386286299126096386844427455299173655330962173053812180170219693061233119319380069386970095946774898377197225719174919230392018752296364949549435718080980988831447389602873900064650430450613325017453646552346972023953033665403662988014604102662830880361206924852608129607181065053154423020187686434549747867055299621153483635913380010753167798164349442548955441600948656236899442561795076631058463318216159900493041795032119888049616619067453092860296407222230130395492235146047905465595534832514193706765619307587207913339837426083477946124461133014958553997359656052985576146097645572826828655455814813296706690020795140023228415574807786031091999920152327722826646072992008061514460241254674760617655675008886632335427904929616370230435484461669652863891887452942442018121174732540791776959864153949556097175831922751895251693453563680649526213430147689639615964258066826072633876043026761762254098615786705086605478271038997419031837641782357221483224710058433655119117717559193088008069115995988173914876526245529998463585191309522891935530165399764053040875081951962908822098183384367371283688864339593028403939618655853387643463838760855734895267052104043700729184469334657962910204370026157760048405694402263263544940745358917419810554245242296604514265453211049412373606473322408763922916260995134873909615525796535574859840539807995890295385338998622833297034747960642571486783517728644930536345605683806637023971122325705280292339580482029544084268715961183682262104135356623251956045638906920656265563137481225158790118802089847494442045369358679361617380679302062372573654756273112191977369642091895506027368013697185209748668023928309182248820378522709698339943479610494112044735508140754768095113974736385159043502547069131668817555433406457506278351382605995367807874711159897146913298461793806217808957060950522064272958989913749251829845729953897792364902042465890697064599299496489806492968574581982222097120469842840299757954261731236666236310495862441721206438296549269412626841989734850362042158436034465050532886943521521847936112770934480846235546895145016316866845869389509799346191405093627143983953803577634559936619029388271908649726959008915188627019777394868505072966139912704121912933968106945783819035641906482347954432849904935179038314974044474383001847778966770441383620330786066832532259376194659687640995075584286773341662963361215677374871460649604722062824018462431633500610377822666379851838157456555529753735147915385552565179774500970758827970534868949913453690665293039934424309947678826152059523179710546195396791134743656141357106639724632093813289595069780318241111372509077797170674483361066209779577850655121059499935284044161225028084811785562158969796283668205682673822205556146014233229603127168510813529378721500873530260328341697316813525348836280669700854036793685183221534358282358568033763471406984035277182482493052639897667722332126342434195277380561156378752791806995981518729137819871300183200670262776712335742012058495016460290855180993716375081563363166981248838272649038244403161749558286280651127688305184007397884742187277053393559212466827514632387568311367933622152156414106170428546492204038488645935125915323093296523351235679293583911021801631604522382307727093096788580234786967077229305117144171806548204005936332636674015481314133545989463814523170121763333797541548209724330007582186062241291583034134166401824658467124505208241690113094604140991354863097028660239023230090354282341538955688547370472693687992611460610055926843977139217422304931862632843163207869668705888402079616038785638380094922089850120587244523645704507632015250463790037309328093107292005447012203386033029195936870812323730652201625091159700621193975074030128093850359644055305151751569480606294811717568734747094771603707925400947415146259829223184200172186841782633281174425314360348106482382524354737973915481527841708373530608859260836482026377405806953558758387792445674136497125769889849610243013806590027146662089586547244885669149568628893578847633904431257231096575433702494674004616255789621646218568059386490452013929985720008104457034595491000458500586043450119982491401413509266506060455029099018956759157200662113684942833032209766249754744369851083900459927283272506679445808071182604233086279449031057592337704933576350640601087383140817293535881110761612342589596772128595468970451393002951943980014422975125693432253010563458878689291829351543636018295403119650718176342446358166680780935817104242842900889869658499438224619299997988222505248635554300766778829060816684585910924401515564474028552679999621431705332553545517941806591871339656877130457291664025729027158491954100112240306605464948032971710703317065707612155415878058245539810222106104054343315282660441426348324347088623244174064204836030877665881212476645386277616589368473020863945265641772536647512957558358765795996429827007011068216677923459745074996574153357150895490364594627965221244132858274137539035173491713147156688158884459662219840279444541198383670485513933509245179142102318733515563187992389871206234218158514761089912020770248280518753799638006641606787976529456209663448129954218465362593810739117939991917020770450871709966954102394996588577983829098731338404754720014131716089117998843640551306067597804363387155343426595315637125525275641122035650963174933515130990467956635520103195266220485332242719635536075490674793414344062690200624925667759323648041490418110264560900341407944781194052380064107853874503082960675241269780613156243236881814877694820044281436075977342732728871386014702202823508675008499627055407336590053764473879828186473845936216114049142777795823095554506084427428549395151780727670546921979231903668252165177850930886777847374255319678515951195985422478348071599298887618712513722106654382076871506045312379775039989785433277683566845899253152703210266616245085268180293972799465132266535197879434470241517661359585970303982987416642657414410005554877015904229115124608451039929823644193111876674222854270504149294734108584536084619628307663324171447441698414695871208843633205641411570663315702920211267316783967181286597449341563120967783419851474407420790644369695479612735616122545842476770306744325086506656921920019116924160344657783606021567432982712499144068983584942241709447778167440120530868498161845121550232220228214285845618489490622995516771078104173957270973470358302062546516079760395643086181930769389149375246469676889147006701309763789488098926605108437432371636448005057425509829555628821100246122575954879150056420523037719170122655683418709032799675033414583938591709342584508727922203894271931890907119084347985270001052023118241547647511056395162439290800107338868810214212648407692562222945886694218759739062979173859521746440935541375066145053572727305719506780742781099719303690439266310990732696996373559326389108230561582526025811802216697564070978040750118260402861957227029560545573136216666366094345715662017248619756466865761951956508995733137975881582130313195267082082456918706954002561862082030284623218177608044674004137014383350233151863879661830032610854160580074586226519579407140051835243745095909254531748204629994555399296890561841851478732139476947757560124785272639947848619556986083975580497261917338433684904288147821686203441052672650634053090130572761912693190107697969410927021724180543676897214678772453362666734487334234041453523622578007591170069356954102921970095740029403097843039066818945910515442577261762426581003195555921542874961511381901708683276039525996048325086731961830103134100298515817073464867018049963687590597103406436157094798862936638163603418027851809986519536997167462746479679329870909914654683947990963956426589262452302056865913615573796714470867240430684536627867637106920337553285101244823480292134687244300913971327609294453786382645355823931273632309143203524712895557613655280213287442031210686314546392624097276598163189316265536600115954906166507567851834372347927057619925698784736412052117289521159564692736172594292770932466114113827685716176065618611172396653619452388518851242986120530464820071119321321759141722182645952801754104680212550758567345974580176725242678464507513577143490089480520550501672425469104096669545412723296798835421920188680062276543458341886188422249280698822247954321247349046482441542814128386769162301875538061398660969661856901941736152553506970651127940854159087060113820401854138392986682117560614500574841888315826048528022382944090141606817956735429813908788290150115790144389577304071457618216261318171628130418256731349177935219130342875454410597164598120822424553840395411576920061213615993184246235384020717774703648361746982647450685285655680866538932914833646627444756891559066471819616033570343055431513167529749654906837643860006498168350309881498879869012318102882125415500375021453162568045149710884149162681606319610542630367355078335028788628419264814290452082262537512417478143090536715722758660989482659522002824483431832172180941808121160115461855505268601058086779073077495296410610853435032301230183879513961130224650171521916878020685733345875454221117826333533428908493270128271307974740555535143072715666606119417407001240320481925866169346237589838690173774894930747401905630714547428025960613850149721118059791291907664548003034616821140870692440323474329908888313546199878596464560713533402545941761429362523403092354757784795718056768145940198576001997440523971596138324581795578205718020217822802161959148278090574050711540782361027583440403883437755591197056489325968191872129843967413267914559055053536046875040252922968443954580977920873985335467475948755437810998996091602213075236568402230754826193738798049296747394580093219295411647349592685459233980930832591472618283255856927712554715971343603882029774527720022041291267230106146816334969472353002115776198034757214887688495137502397652922713104351077046519775550538083447210074072644094312050024217825625936918619359658462478434260518943761983807830909433449861019018856888926984347532725154516057711204797262411666826704969267481667533369558483582742548878868458457134162329936452382876420390628933277891735727570907762013452912243638714055917857790469613324177866649877831305845548186531652334613398361404401539712903536871885955574514111455280989814275025243746086219330635267572012687825841822349544025156631477981249726809869180085669965318078877477299399585147075400656103795321765240064382001040636976857234824955385752939136186476450495763797541603475484681254025365465475613262191251433373842812072385043390307802740356643775032355514433170750991542961941180242229713585262777891721474276585474482446240897348970505639390686088678310965094976042609026435750551894925907869237885882585974031970538371981020991253097352514469025985882763562705765432053719687449303121716493441378144869601020694452827852250745723784755082367503459462646369428289708308936240257442665678892181331612339811763218875210662294795557553251291295881064188107645994590165805395187749516630175999105142989500418994841072713964028181446353442910282345959049315272350847704838923465982871068343696830561027394506455653477902759527966791963962252015672239725038507420486177016522188852801031299658758866932369544593037700341652869178830038838179790467035524839516208078785013587255790313767881845037588618690986691210550734835817436717434927805645967375436374170080822687957678628414974504491681806080289624283735395667142398154325062662095473204239066615874628947572782066956821891477889641874292977818637317724834080819603801807383650985784671658411716884090137338790134753184227474535248690562379831324315742579495849038131784591896931890854535460675982403633218543082334502978857115914837232408484616297813766941746166457506932250247890403609670148407508784075806414378368471722955792443154061149917671204916363823532343150673241059474213810878544849823484984031667234947000382770682518121538519277806699725197478132348213447526202858805760183651714155617931448493747687392133092145888176666495183336686587384928662187852054640184209682184564946399629901827093781819055712369064740279947416884523812435086821062625049423000447174947378174834797193780752584609209005198067839312899273210779927361660175147971561257797147263818285757610254991305349663336194940544151279747434710826607171902285091421749147905564904273360619086175264244783821865189038701561561461962280814909714997631397414999558318739494552968978603748338664567315232362921821548709335882780299106900315780940674475670608647322891367810888798738147296811577227053687976476545983355701803464892978619786121984780190626091573751005094128461670953910917824802608564008285828921978336167973991558199916068066189193652205929034215774906078447857954632505556176856068103234608643342292106169698987186415681798622520580747594807917037680341301411286399785495714225860243856797522872816257385819206233237520590920349282945882021162483030513343309183228416173030154601843675157061150546821976750505941187732752060911138508804612739342421052709486205018060967523568490078620867590824657103574469442942510980916574623007316426476583198360531093517098474525914770698079024011417496127435028859208986586199765826970130939744162173047639625486707516978536215771230091227920200942195818874848132178786930109269393350471427944346089607779913351773670524069837506881102986162287407610260421471917299591918416089888676380634264084870821378320870038597546575284161754295012826279825662379331534903818330064108732324656586211868441112291401860663847500678561618736097917249011169778161148001500492308096118252099152257570854807833999364701901422420530919662371284070558651982931408655476647308891841759358882786981920274777929676290035364919965303938525643887760184770256044304002199714874592578603712565692485211276015232774547125186708052026678799764452818092941852421178520375707453261186948312764205298581891620780869910739499376802255141227726888615460527939732405756831921146072064753254067838369143059509839483897101568129030267930774340887177110298116700265487374927385614546127470035093736407876950461737738886332374187627365333849555089625257654009480968122757985874563073237853580549561427744355770931841371974373755120237025069724729310913694169797250048334843937985915738530309688784992005728483488782047596384061462823578710729195694839031137328735837519164191832837812832561885820583081484799406998904730770296001276591852020344644818419331336302103949068120869810320145502446817616343456666226894840947885307071027895997183268423902339493784208654527738366112558473259042135819366827829123252707782675877606668932931405155075384764487584959909764678696787069263031516868369170140137921485419752518888649265306215514584349964525567320582442994091495977628595079696119902360751898106007164555262566793620381087436275919181684270571896202874408053451294282615858939965461107951052173454100058246899089337097265931068429360877001716803269323395738789124254240540035188426395766015665870830859365323072039341156605759066059747714601981501542413666827247377450980028177767157407033983159620295201165280892678766179259016843969329938554988082973315683668382208356484511820383523122222636951160596617881196139455746013768560869898273245491633208289291029141408572796076329631498032756139181074729062857310156043650840614508331253881654124877826356755281097502180225062577692184524281268239438722319544325720769933132413260422438465726316028443979749728140216014334005933739976604663349150904093523474975940419767269134004739609613188968273385043449877654603885310464114817443191883825174651821985863077627668703549969474452916212629503710227810731120640091590385822938844178547911982861214691006533656452490113950716855251682351243776932806483490614209326252984474986939967335385090246378718241567785367850069010551568333463532038413869308318239023891385428303802132039461918420142962892868135151450034870485396442673244600781632003807092527975378485516018140188800470790734337303881693031719181018605761256476878919783138182028328315814212139162047649684168552429232271091956428573754202121455509267769998883757492935565556574513064397138581262624841888663113683845423872595211825572949156394753541266566626453172094703224291889698618026549895464106033944559456564168942432029198131732898619886025009541428562938986423338855485729942009544700299421700232321344383090422313175928187771500987180390366166377217123829820085619697224717136952308376327203983176691239076359905446282317719579130612509493796972197185822440625711140249584291372010508529671989765070365566539138727706566624457235692666274283121326155543699407212886398009311385061332650308836974500321713754101045789146885794462501115930794252746929918819013030149468665419200361605354274727952129490702153603303682944465352255860271674398102614707335477281854603599497252818863242020654593796083206866992792000242915774732432359001891619334846687765348099047965054282331609995739343386570274060018866318789338015180828027393450783337892090420846816880574344771043993667602361308484892394100886060729203523431503779250338282612411193799640454612814203303194286117130619576925365446263815397076016149804016880513210983334541874520601983552696478868224771282215890383995124365245716511794268005351479111799587037184230848385223898068019075003892765780287462411586680906093535128860548142464943286556145115361089775078593994279504842259931827163698344248745327917805244162042858705588853826085358493302289070921099178184518094082641520193212222990102961781081510260736713013489291552470773122765139826706409054781676973314914989584118695878541096074231462154472706347554884764897180797151584035082745438559978395286685178263793620259719552848596323047645188843278951025052688566864918063162654882017687578900656596372655898288272264411767707589360647258662508003840605035732960986428810191164859860373575143542811755024158062321977103092961245651834965909300332363563557094336857321097926264280827816081648019006367814595249626945466096669011540541863934447219805690739723773296178255780303582885275469129498835330420172560762033591913421874759773262293256451831259494129844734640321061246338961552120168121889219099169862736173837718499121334466182042774785556422663950563457501710679916497719588794024790658029373570194001661746940882443148911364733830350367636925126778278590494664005180177466840956297560164543066684750585967876965754233921995188437539732061705882814250772181292442644335950625408214958597185239442808343368849340145058743413647528487127755307473739009304765393062042621420100898709999658476186889417053918083444345556123740587760578993833538817224003329946534369484050328682157422101801268556526325533302905346812428686049191665151651897702493802988670169416660767724687663895793279110724211228530856455637897402572216088854231800882130514618858174392744155075671344880606988799384123686586740690671531606430286345535424891558799095617948468652558185469991249237660646646047141051201547823406769617624072880440517693527628270177135844976387434449925141367035835581591880291394468881869388726416425646264333099940288014956375467765992452234018076794219661279393190856106515901850768798118309771643375952974725281207087020922504821616112674049061961718229563822275904490610377040841207420446885912136083700188115576181802993996045419643647050840956241956896015383542862965363663485439942370331661276447032085969401865720736765540706345143490358661917455722457768815369291275617205240415976560491937985728673062296378021914482647119992990635258983013609489019801915538686249454558249255680594954633910018154107290699117252363667449515959610733184956035662530640369334386613617202832760689532208180776609459350362521702392442349689171008663828348835984520698707885812358912109267744246902153316800751860044689869572481056096022906293608061184795017444397312318226946428908904787154118423744625703968366349581376070285960593018874525019974003351938331207014692639727064266249786110003103751031531532955227919364292038589220147251386298023802886127625936304056194153570518542488572580084739013134955433127147691387309281248819630033801490551609017852048361654834471196133974621735704486535244246121542407469494107748184019829351576212944953973190602477998847683914816113850668121096936777039552339087599574225898910783289081709908482472659919564034982151034927492120468005015564634873458485014382612372232529999748624633394730323367321136310507850668400901926879782214104493921413769911363555345947763788840093841591346493459123180065306485106899292884247571046838077058680727400730323495590976802866886500296057368252078157733543539710928078907612006686950876185472471532116034351697025187524961589701955015538954007095808245212894265651920057629409436527197780080830947216113485735241393372538730303205844923762869321325753094987547715182007540313841590561987764309607512666852899335296644082673186071041022877195311026316635517326121296088678397782205948785190804692182492690508138812376624082769038214586866453247961327875316487468278280185614012052047415936670272856628844686829132681398489132534860703791763424708127365951421149085346334448290704593729271467339596571190708057791806318244749510883930500613064400587383468424387937046782711057589075461766782919510883067710478837302820082378257089515778202156870164272446253523169701312872187459894720811778973225423783032111445847545191970376482959581781309419167951346155659395014589825067669173973346275393587157615574479886685792668007606079262602534462340493811257511918761647184311915973154612337847611248508462819532053703572950725256476667611318804065961663308234361091199341926808442559736931554801897439407397406677262944161134844907495405112009243154230247469178199502519000293087721266642969913992001593866918026454162368270142057007395687494736792944313785673948006032627433414560372087678930972883733640754366737297208400136763392350609296244867550827570517334351479386719574885557505922829347201929288203942223636689937893906929226054806399502789697417144648553428866543237225773005393510969152825414977719265490001726393254182678939432747871411515598567597400755762056321951339735781759141943320359243629726214507685610001163661606274380833838999017621575622930472635231067179815604565413187199401841466749776341371528630350537300496916323702687562109252948124973056471016611465531705543035474590201083844787758901769838429739400552471649166407589616060535711512909009312586744065169154618629739238197690141958693493337633835557876270430827224277770185314151554069142411602705585437371333596071134558440723620178101936080608775181348815850812666533340464318709213190200567639454833154337538073075452387488656971657362161847488538588931483915869774859792615399889939037076912071982454486170806723950987441039089276291843079555816438628972284318158244529948710293969119871265702967099628529735562682022880861950088593590916791938907349124681892443551143042735618343855899758948839009634801676018575427508745681197411665571998969205216436350781114297310091550122384987306829178788491035347424742326607327559221029044667268572660566223099512915132713696681660260502885881884566052826758720371287733706862436186873765908264381823139546226356197778215729024708037280781409593978472534844630448682682342351482760607712378757483346206292174928532614222161503988397863341142934978678511497989486908320379199675440679569899841204968746169164861022770509407343257099304756734349104440088272062680076402552216357855411856293465223903946766430242101726334630421681552505199252717694298604955502205526082487961828145836476841574260228432365274885184352209766581751166690371615728337080536502887055050902371634144241293204675460929926235645337530699192660487030999127551224009236283531439262761685497416788478306799802978440444585686718956771786579342421953685993520649424762170049279565604392617264305571884207385235073637709530861638589941800027229895530751755525388439727353440109226445922565280076697196887866263902617349938616837225215433640885173835266116673803230547763940567795373415542635282987274220372469711841922000259733006161236475560981002010902932727335387865603806129193456673861397560485979840163976862368969427117147263545968674967549223135799327703055696240912177858776717434223828842835740048212387606975912381592606299922164855503537470638321215886983081299398594612374638433510727993852156255142105575597830862328137151709605147253816678413442168533629532540995179163934385963211885411197862559559042377234007786143545549303636614746942567049288471576068005547362026666552474391455042358519045709528474289916952479992426079040093528805786343826533322061462398369598479127982119714320567632102888257128986845445273453556809261568525073505878258853528488457574488537281048037538574029658014105169315520293547595290501085410232123377106351562678426464984606223558838740161283252033368262324906281808069253857531068275546847320132912245429458548086957194894813383076758697311208916642954955232266961858390245109754127859373554639486737068543428990228101486374523879208125953573737044421584977574807132376871664998139743940856757166681058975204565656768449449348267503529650987206111805909445947048515484216878189873460699044491482275993249875769615422264345664665517501817402767384513549796483610788056770311219760628300027964775340800671383060323280145653854184957263127542683179216769552293838129739944147798346084778370729738389313847802148491139310686492118860616625808104715425925754122156313848278827438625906284080116729720742778462307182826336800203176916281059037453092311501152015846861715912155032385166051726544361981866402113189086369953405426106796232375533840849250524421493441048685848937478491833527859988512069207818893960114184492298130068587779887241367912898327591321915311685445815923533806720426414107410399216527571364861383967041171462612231095367163780557618866965194383147066750599684701838241878336385854136525834749666895922962931673537449571880402228987353845685608733213728937579730142044709859703546434627487761012674031494937510623626529084445168260981395495660829737699304962487735653419856102790005559213435163554476532523443773559630913828621934334922648191849344076852048618752136768142888737776194678123403463778311947909686651948249567828063254841226064185916325600509181170657692512158408608099565566155819404238398828572873424540199106933348812816614281552421318361452621710516217462262607850186451214093240182920996746418083519484162458646184922433545971517827416538153126302245441139886478611862213205193026140400514781411536034312357599935212732050959507802301987429398260134965650752586855424770496148452748230928422821647806708775821127486436773598325079984605512648386121179760557054502090020123358270213186092846800878161015202918783759327203935157189391553314681938702005658426319791768385340961410314676583471902159934796632883041346194789412343031525607516913779376580519001224785469923668264178673342875800925358263277687987561840739420299575351634026613115957810452248066813658754257419710905595335852566316162785929044771623195875965133970230602879774013651006232890264035389379947826697148718240319934693722262333946854922238161915487460850999248002117403280303489453718796481747728851239601683311139408668845310088958337249555304665286335413422011165567349858329734724791552058437532633003706722813911886899657988992662838330016164677713129970118292307422481353982672736570427484312972806877744096261657711814961853255798531991819639380188009193407727221303626758451630445396947458804317760660741140754968625543851801343895296807751527244223214003480987173103485349890031473335612742291614238768603096223001175925404263920351458689131644403500958716244179306513739434304334037081002959825581293048626739946713160343907165389792805817899211083945069164229721153944674913922712226328886366314420996754809371106041717029877741578210958512274299084512162551118665813956150463614773523940144112757215323624064145541901785768974402929236438579942510012003785442140675102651799256074285773788793572255469720256054237435606407706241640675724712135543148547791025469625656810215552352290922529945504819884958922448909726937096694554393168843957440744773147030217065711642983727152513994739472934290815218621878746266135992802691845780185049168548572297457015147953596792891040640714570449752057962247604900804691968670090425078528904959724542189389698469902258558951163433041405435368616216304485808419778233890159092172901859980612380175133269112194249635922939616885283211798341056835260337872060867911092725325163000220750145794170114114514480043088117386517267447397906440489935114419314971796032945585751633614605786813624240011602426730973822504882520090573576868408338323175037039045783114705938401163354748498703319482371559561836675430263497541204795731416104833873320701707399571379960172389015973211916148889227274026333907155419134099573358801217274611744532148983659517369814455878763336092806873138623848229268990573507122157920466179821395254660005374484872263297194962252234109285185026038102501942016799072987368809946346644248649106456388235018014965496740483981720775608979454396276112290897937951127377829752825277061433041636359126315160786055079760698446372304801689865619365894777938297777627768182693735554011525737809314194763992730014530003364085871253719455152517339059802214837401108617265579571418809952166838031489569087756459050978441564826113101260554761879479797315268878227160222263412745517865000687416068967951473477110265129161148527614544557684731128221436390265052795930153591371565937731604801704423107138253710146380419610998249845110425487061969766626949369344718512812026586140223915289503858537633089511908024952358017648879359635276992765874593530451827955052976018216076103100313848975810115896228563226072744142976115878583363189805237955897698176044401268987621748723135077701122949686009208497981887454685596956661694284220072429436699183394839171361131980921202763219226406561689499945442889429767843532931183156878824920977780456736768914642940974215377395989480237153070868548405691622485198975736038807896677802708996708688841320744909995192149596101563374355509975475063952019172478535231182679928652442732356047743411230477673528320297706359605565986302955939989566711956049021147168446232683000622840027210615251441601841881340579767625924196768442794872704136793707378399752687449814929512538460432350095870184104123803701212335835698062201577900036476528194237251363333141722387730278607369974159879324480352316572187999864813786114829224659909595140485756501323095052571713176711241104888831412606912948933273925758172714185347185980561802274997503389249081855925117289722781257289098893986147321146337273372233574671824664127310461291479273366581415055145333909912609816520113952064788553088268716375622715293780558929689812711824687287172496030560962558492468790492675827790216535387485842654783450830940604833484047390139100960640058497183567544689419259250290524585917921008757404340802955910048772927993175276677495170464745250219527522733882934310781477893414520615880719248455724744125912886686814253678168687632351838112257471409342236981922245665536458213416702038733989758080825505895169144893030974731765796273098308196530979207893831487270415236975070973144154735827633439863168223845261767699992056847838525486054305021581253575634146799110356146253074778850853884127467557672482005191894304451089959941068160820735451870700533892674837234965708347188287741192206381214776336303154447652962442247258842434347706702069655691503594191879507824380419374255025982839211104163487331914941958826301541571929206611356939781275500117800276497882024683074842624421644585419612775900757169516036258937201051531684352596251856142392360649433515284751394101880334379247570189425092221325572422434271049853555025048057797921520411352451507628202053400775468217646847989406882344842445250742676520563753633337602237362730685710410188131987848605194917033481594209574708632189811548089861902716700888026995459263292635663859026044583422995301708902422091358008788601592296205856600300623083263618586763843611857984492352044293205275352172024109751879015725429874229714799456954735421818177939501471812677250918018110140296766685892540940494694498166086176704012586318820048843247557716255674309388340374957351725874488000951235661089422415928656350175368228215815556558275734013157306322071653828845424058466879920507479612478329587286047574130483315861175475338731186759692940135581665550195108564863498604504961824937680616482490953889272844485436992689741909388780511183639349855886091946732400043184576619173529056341323266790534134301198682323210642634870357994100906104540569416255213428718450300594584742564995209467699581027249516385739354553323250361717833816954801718416175579499208833262451816667855584006175383473416237293459121728389543748492784106771668017767684025798076408329057639671948242342090312411637907342767281020836349055560150572256924740011371193138410666595987680055735652019221057508661331791325289360564648312335216947579249266958295666496641883111552087392156403653874418515955717797617491369498287380948746204221527140381234422830986813207159563506253399764053832690613739985425921924149085386433729489081123690821749122755504819841521483724433764325459552700261048886596219841690910617506211310535881142922647618447955615646029404645201102340141298498481974144403181569063272239605864093016073050405820308202257834654191521763006923335438124576253270867967072369978640160470881326378211232126858005755589631004275977995660955596213939072062351726651824486361556302585140618873743952998692794385963919064628880784616167305292995567186812068869238970569526186059381905443017138288256515446328508671794136354102195839462672950112567442297881540383136279831295696793342233001778374936612227642113583670723781590080300916161097498983219745623245280368368065284649968861767333177047222444590428004374635286777469298118291400366527704907455615261620698193770575763850108343885224870635938626752360196360430824663909461718976270465862956753809850869605417438416492137333076263268859012808216401182462285919703238071820075014165397929556062011559033815613606171993485384615067676335330825674795824257552256618441564808038857074850132492692066295905328867947912751187643997443318357780360691918470362228598048650760184909908592530904095656969024921900631819557187934200274926339239168430898066967773921471496696868422081451346423927619110940017798525358216096746971547689965913526299690734261634470351919339078204579973718067232793903546890677242581530950113247284640074697737245184972695116873261144509610575674396294313986647104213517569822163585259380469555655666566645360853814691731016566526398962437033812615215948425921810576035260919422510751258746324553859727020848284823945758915078002769109046814983491066206746401534159091892739613487208998637418281585416653626766121766420598777213038406641567281461550543188864119805165227115389121995507330010768225662515898516418912138739758775457126082170734237161120661371054705509334899591773314211964502918284462625157879188140406903565028059075610452461274262714535587089944946529398816152222306922086972886094106124604403917775654739640109362325377035206606427439600163973358405301272692386640360906580869212528450583320012217217514910684962026579484997358661911274149586540410661482318831752429592455686323605923841510064580732128817007521177175771041361931325593396868720437912487686201442890833162049216522076412553195667251158094366909330927264613960328799105614796676782465329955063946080111242095501197788883977466246803319608817463522753853403923000269779414304059951186856159822607825480156232918088464528447626710914381651757677116121391236219610305354171552547417630075126525846982749645141297706424123696440720401404169844349380131972202313720641994196566038537553750998266739120890882641415128615005653642706620455962944738640110178926878121709386206901619839442303678275703443038917537756186682688966259801590015180284905189011097386166791570211036001587544699492271176494354248913306268589939252863940339630112697497939896932593229536829746638135362537792765589896137360832541195761562953405334171955008253813142197844183373385656908288014418581067386929684742224743975985359254517091027289613459840675587858846628956704630013756620392742530995653116587422169207477883129217012971722693579636999255066723090396274915310991486650828224228819405504995319371817780926149366070305446402679730822777577852054454586058250095479516030756385692713498410835024011872473957124111413762211990159457109398959739242690882816734136496482371084733251208075885507436571233127092320104802012605119558699052416030247927302502670448072238230424098721818388044677714422264769880504193744909655222797932037163086959484521041395870883003594254588824633373708459325692012473786616470232959847974073985222799114665589155310011541350076155097623412252265115757013815524645320254541750029577725267140038044676842128280357987765820568926658787587858701012038591286702010090930427517157078404628949988502370913248304524626161031154685342284685776751441146657597067791316586175857004990976583846978289396504612485106488731113110899472270743695658780689942026330808666017035253466193410575586653386482764490063545392706520307079873198811405071920655378670127525349679343465937888593482176612963044109037661465321215410596338360328374924469620212007349404549867712647665480187615241319750959465042423163554791947934330804842804554553188172097016955646155864067120219666747043515448950038463141805602469178011273095196325494698169909119993836978501051028951110722882561794524789379762441096701287751953539593985622882892145120625873902912102132119645251312538196599472434781844923087609775704073903661231994274152386534414560888488053683467958712833808074428666181162545844722953361306489660172703878483281808566519949414414670739315394991530594144256153401936114581549843640611616665360667444085665891735988138075261450346154692728074030080348336472667413410440865766111926979245561775582257906190215709496364863241937477520331529466626264885378724021764678478781371858463381327287487804334168213495471190595710783773365844861593880720548539300346618157071695195101197889747128492685350050897375133790548936930840903948390486355780703281460574724853430886057915181745207986420876766909411434506175486312584895482486827768539736920545417858342929923519784789470486541828553837042015895987246340218511956666739453577814642732056946799942042216765584242563618225379064028395037401750522571707453284467879055188216211691067956457521308179174168756205814045231547249712926196131981331651165516568451445083760592330355997542614309923524340705246998701808300652520436503936987631136054239577153504913580485834420965232760419749758455536023544028318010867698803937181207918038945076548188007732502978278210212202185372417972737250370885597903508076752461584909981093559076554182686076134188338528565890858695652281650528642350245892147798135348763835977433548032348859463245048531518020390158313656857192441877731880579198055619747450161911480819575127307979166140289768723269928465386788128883003829236549989774124156297217099069092401129089104029743150024955393872697248027369032750693692753448113038226569758670278186029067101252915294913042827110054603236844585479798317333997409062189679793223649995219307498468319100039599753487928137476437051079052591638019382903768514450350980056083968185162700844972865487963285327224819903417493271260429752231891357124033110584197500339425422725577152057062606534300188626821200116501471594642511352398521793115899633078866006091323202139052015988085830906761068863208546970983883455733617813768827909718168255374733672495547360187317660066214260666651898361900825726634610110085354024793108394449489943277651764410635966974403358566933087787446136572806589871293474010988810156440915005494028025477688591181010222630015092830446226421934172320732459653471596043361641047160163649293942506263033244992417427185159079945618659651629409843370003907939065114397823662158659761210590822830518621873508188708129309435284936248132185585734242535607760630935704450422605604033030855772187838156255080919205031028275035397502004378611379396436027896868315418475755945982665328031063010140866853388345382238462449556641842030427362077764987126549081086028304179201002466036456948155938568064261523722756087974236488245100507723611695751231642456548036200816132214960046465652535484119134677372411514144235909263114166581410663776979568238851630553316346212891165566824749827966647843342111499565125011799757601473832962388564157794262126608884767135340397632453900364332027087903323189934319082563420873218778457105108438658416209057194229686083351873154340031873346761952172726509098541485386317786907855874418411730047999830011118853019751883645539249147233063337431796153267422613929389233257941923761411372833019139495510981042145155613611176188934088334137544147860568475734549229964821017359850742692042871516794666628165504718876197403969463729295647007841404437275730249528411936170171669985101747071272446523266444067513162089875484563595666632772873549340366826180489078773718531733080685444157820113899588613528261815253087905161585450269099938111632944270005870637849702472136591409181100964604976120834214247000536765019206060127329662972556651728401153154218549588589571779413756757461250875879545537016343991934839913684488813968276456568141557841969768130222335112597363326047882119429749443807606068216685156310273298555712679850219797185873248729135361763463168026582980265115228260309804063025892705969058119194175429015561141907485239167771396295374228164836561330919403755769071900576163783894918114877039841259056959361171217857904855979681642537706473575108658061188209947686762643439125402078443391387356916386716512259381046855596924321900916594772971394870235351977583593806259275414400198517772794355267683667820650559052101937162562927259986997607870050752509498995857239938406427419805902927869713914762996728353725434069577587576398002256983644607595420989721433825940744800566543550441360486357416870450876875683377986913312787027393552477568462088633885878599103662647258282029972822884977472432261461617976244881247616399394182470586557132534940187747279064566683978164547495224371598034998892553427045515722365531879906591757007824139060332224221545487379748462058474363462132537748746915631950325801762016088706845616159989486201999545779028494029551177074656524113781538313923931210344726114969325109793305286300595347703735579160610732120345023072072953554214895138356098779862850440194984633312520750540708154264216736128641587983005538992887277561190805851821454953680688165095947049503299862192823909623664068618356238477310602310407055500755339744659580144868436707196370575141609900849858560168336804331098047333093224549581870470957872150318784664641790445753976257751598275258483790501919327676377732760656394767260162075874733382415275908402070312867319653581474001588091194312033233649449572923317383450051962435815656659207115271723971570093860608442428702392569157039937638937665580496421073548097702331475181970787941469436323852217328799762028634867142632176035417224934324191583326360017520399956857941918838952062521847961679439085502283470023838728234417416497625482132798016107020496233081086281243612014777080534388111465977887575354566348186527582361619370912713325931828980702963718883545496358191824408650466186424207959233974638404435141341309059087289613688909553779190965204607358652404055474656776654080583551842641932263994729342459291294138706655122040643052649066887063090287500379347558646200198840875635894232787643311417320632052145930794471774153471300820601658179555710103820224833407265607114071510200714489017724707680709524951208307535661547506293299478069853929219244250494390497443114158724352612559475778923372490415002539993124939400196463889117362145118469568085219265038699896569877651944686387495061569483989051271905854869741989633190991475885298785462674786154939531679269495143585902820444725522573111502490553904472109347585475004463669277855378057724376083284982576438687762332873827867485656309020677050124906020609385138961210140499511802171297450150016102082363932408026097741786048205580050653153125932672361326647789793298358617549109664710177129794597430597309737811304745752353586865779437099162203110901785066874731717962571724872853847405574615131888507030492811750507697472853530988308467180704934336628302130888654722910461341373864758373447348758424065209000932011346429078395937280516453942431828170610719504658414755101719255599241720054331652110157831362895031556182996870337290159482728320952874210328047170868717180886316795387242650470349123212439307881916804077030058071376168673429247936773070493997693063197418952033642739722991562198681102869481510919173053323843521903399499893842373467393161501046457656043726551088877960492120071250313294636771095342680949571964342028703356288821509931280605875619105419475414931832743361324216310372220732207518887111010457218844726356380803918146075106934845933951911793664697557901268731108160135758853098718733994539652559094534260150125349019119609134864571292914343452034955428538759125077048039058141363314626033897852735269930639306309355193214743396478786750835108245806406687806391037623729396345949802563092654027688426313094460882268100840601887697073190672955117282100405308960949781985090833518910941232203818687132955191767081920876162693365839962281852327950281616768950798043324173001255382637605141639746783462491829776905274941391361570540403968024805032857971109769026942141684562702295176593910523411678032538622971061781898471623290684641973066889482835979234440949294922238953153041387205146818231628566442689447630472050328184975551023116240342795768079588784993115595861592437264293409472476913467373736444382124530995697687054151815631755744020779867038708737997948289901823221936177929136989762871111774613186029004344996483954317873427802996759319876465189054795935064359886067992639375982876202390993938702266543686698845701600115854499874502620430913611970849573592050614071679560731390487843007832598626391313025109884051545337895786406905332498418136960982876509366042385631757092211645001211572874132342656896767861484653776991405259232324585726427438378481010590433737812799263037588446143585285144475529841486529591043826777026943602372781330399934156290808966286206538423064267385799444858113838728739192114343256103500892338404859902166575721381519500727531739730135699887998463387825931011398713926838131695033173019246630524479695525782789226833913503865292938499235482497783697205416712260207947797528126095718134916363900309828393718558891975103575610668005840043382648744346724674937783884416790679178492426158412168501502468894725565411121432592313091332796841018403777584160889383398789212478810981502533174681793181819201486418378533710730955881500113217388674312460681699255369840050723083138367995142268302218226645843751246998106447951718731802054484689900843213546681932070261194490270751362018054045565780125480665926013783331339919688719840323751639600582716528615577309723445169793736428328710313389967244395420833045981228174089007123428534598787648593240870574100588664210930667507986985423825646114724381102669149409609753345594292534344401038876147197753340558318849065257352852700719266780953301785495708410252204406052399566317682654046900384255466400923667227935413435002811203310307882941701278807011558275816693428031689877240197923210022497516531310431536110899159252331611394008710741831819508672623749508608073367472890484539146500240715618863559986820350109664749560412720355193672909965204863659066520993483799073231361604547104672830410645269324269462381609690479515960202217967495175825689705396504153916526296997874302595921983779033460541591469957953071786974806175964751785071203714611791163189297501997638376496707250371511328081646997134148196026857262434010163947717763778732822878974757363977521912817690787655054522934436492476495812482370371767628326151465775469091113095675311335288627768322016530773528641688638763716239599330101174958466099059699069634926951783783503623826451381186405806452253631126081015181454374823716774704138435800077282666809550400980612992268933926075969126625468621388879277620298999242716643019142507237879005738407989805641919299681150271699721659287543028567985862582525712889581770359666522817666898022698369126792473513639906297499081196839401868858227608831828039644217659106801860545047962711892178041212851241295565884451597862173191397952413121105843499501327731908020748098352802857817865293532949396898543328759371400182281487980096053836892275393288259242986224268912759281662541732065913431614208413627231061931471582869328044126994654899400775366394519512656195725523914159574910603257166903970711834341921386239866409349831432363202174705340449862361312070237668828085526463209621776689586605232384754352483267722824285693354814757840986045195582470194215251304450164470206721720189778251921978461568613703092864889327127768139732587712084734772628140498656418049919131862036826517462980492460965644055214002286418528140570592483113190728190409994146728288309257960762284373513709959403706981575915965671868676915290180021675905888859036284421619644954355332447575124277481459529892667484639905045296732107132334516113327458886095445241827016001454081139699408044965100180476092352263453475375539199567798018676640408766044797189765537328621841678714797365446147027872080060851066059127976632144487745760015209344198014180235052460172048919147595611564589493981890490398677932494819173082972130071003541183438179845630009908844663493753613762447944049548323873010402638394996600843048676958097642895601878508587512339360454324630002937909977815552596284637318961653177900123779283555551579673372386816774549095894684857935841788760026510173295073727380177729247034986557046103060833339693357263991112928705469515481814398392954076560863931037359139224670083943934193653650627660768704527460220275485863313415154979469346575905556247974350302109664277756350478646374358675939080853001839821961720587670551115964453009766925288019368928189122933779108701670466438516718102794880214460122220753795483725674398309444413811529936375738767016334919948669710952182289164042878630824732390164902977089699822973043811551592747485737668441097285232041393725992612231552135966702650767811725381457454068777980042737442509045984944211564723131111135583462890739884103577547214035347339612227291934921349938343290191312584605530022476995951757094011966422508701479414379760859674119158755345445959428384288977245874086692571097798090544079414017482597752097366306086438380400091532707959140983952581178093888080099853829464304432568988210649650988102278310189852909737213480527194353878656452176906200837058612756786614651237608066937191489173008622286277829502977867091459898045404019665484572596459583387405622845960183732291382271651889348288799126375028565508904906349701749848231092857440438677149160394737309891064114672100192681192196033071628932484005721854852907661577239204927100759703924514121816789178581928151668889699746610654772538655691459438670071736225109298045051951181309579141569166823655912247273281571431317692506438673186584265032187190122175055984727202432838560054707002892193948563103815034165773231370705554971351279658994515360926638128483538660290341208164074080740093541508151190830027569880576888010940906561567470148787382035535407681389596265787887770476032316823666594243698922609142864351108586614287643197942515274199925019442899114155169052179660538610874746338908769429990522737717809340563562324660070317898851268358373440772938659541698097953852917282167635497062653972938183926820111322464581919775907987984216378448064811550127189774368628997013069959785616377095051126403988902318808014380317122876216033511410035509598637867041910723416418898434026720497587099780101347206134297720110024856104785603652978157722538161964227751541345605180053231941861865252299110588845861786506685341170488635628626008799498599947324475467874049685811301012776360622019908191009931436368042927434305654852533231221943619301705142192931064216682727652599649143521105698474810578029473772817416585382738771179255202420560069877569404360220001039192868770129352008794557732229245490603022312294023281176940785603660354856283123128692900086462753426350907483291706615238013186030710989212835396090968653532180173507971702631554844152603781445730808140146888607208937787891821083440047012475549972176116730373477119339194580190031106825378393608972326782784686240161919638002397090083416881805988447349621730449394173056991307724532870699378474145787432406315501962397131435231625915904463727887781177266451528060887528408865227348786214179866340323088369888461922007770850394137743728314424033692740803072584481308683784187796690980480581228152293718142053129123254305525278003336763239270528801246360023303426283163326469036491592255420856854844359540622263549840135308276465629186837770510428901756340288348182217353530333138445541264416803559161492180736896919610907046737704525596844725168764207578927901918701102999742111901577067676004942244803925764538338898485034173110118541051825719383132309591795662787209915164629655729098539949767708920916623230277989940737089664007615854866244482677580012771362597705266076467537682930966278314118135801391883290650750375466249515663842841154122727834154590920305326724635757975536011339582984599323616773601943077569981775289182704248838229164233435883320122641214935740794058200562852721693718954337806635543718589137773572025154423514570314849737146057595453515947026192555245196646943919425358914661218964646532210729237881214752658349097407249095327968858820848007613953982978276860404968253206808000577517850050486287242647312006803302920728496136891535478512671238659687455505314918317531420125565659119573589256789022140156386806863906509253087327766227546703572861237019648266458049466338455130927486900896822922414186196125945457975806635441002482940915245138742852457889491667611105702532889761807260506652933593521186254248411295382684032626897284176624342898688175857536808317863003887357690662744957318197690519700699112277161489648144056232749528077098213321027027376212078503729855580333685993504695867858558848894415156910978695845813215660640734176616286831075966288916006893935026077920232503226622527460475161779837176383657875335979397377214883477697200430324154917760763538504614790003577883325406558502118487913186967275844315430701009921524635753722248725812256650883816207513969652715005247185259191712554118212628660697109226540290329945880384886632521708339731079858856849749906132352570069697684855622661449773542247813577873963259372997925343847621541902216131681538412131959688941215626101485636750791435061081905738145604598824645871223524556293196493054833304218268903803301675407472012978163010050733568492710668115127239270277863073773921336397398713736900268155291609612179780800328350609558675883738723777311280957325554911913679940000938410081305561641943386130427496328972913357054898853772358576043444631689370595991239619871749035957083142245939859007692895604360698420848149671725090362713074959473786113916007972066750709251623351121076520905962533140642978454466341192997468796403270531567563998102372677877883021344757371202580406112293654897318651844009711162288460850266293673362213428279905001793236934544323626412853759100075075559992461932183341455223182775762073950908538965558153071809282757802970151736102672985361889821951594687275120776392781342482654682253482521079943353288766016882087829127425203966287228592808363751275006682755485681487108912151227929216874297654643061765682829529967716363348316788515858532500001774102824902897219152424408494270422449770692076200928060879245909779044233764637757112521517358267163222209567034111384759950224015279329700611971496818842959885028350860882286767741716087562374402136002801329613796591676598857301638298608723315316744657975096028065311652023776907029545458401739836816969782470868307584516863529924389594752173763351771089236026820523122717795054656347175148584841997172754729027715486601034085223508218866892807174798359107196345517844554702080040123059265395913791043763733545667499060890157610622013361864017362673476489894698386538888752958129800528195621351470845520909971806101610665872461409268660199861121901488815194318956153845114598798642649763013581487116414903968905982765312710320525068338190872230959562495551688899455953612631133840229269641661768680000323056713537581234891570226615599420218146863114766062077762201466312518338419934788361227337343043143631553226623234019359456414874451105093310104190223161851880435563092960631482497791145310168393893910789003252395874776337816166535431232974572542787432213792519329504585812953917263571210380586636947110968585338559838619943568511329484866450509784126964896713780695970773092531829257351796878396493651437482103604261794061086206297973059345679866007293247131009414608695714022007123350159824035887424969056398389350386500572511136631117043367065776630249837890489958952720873648017010371095094842909049578113424348342943282986090756566796274382480905641302848262643225817333297601858750965119724427649188666133458108674754005862718144663018275212458546367493177175421586272960126094836421054467609720895810752822878222148407131844566978239986878154552577180468663493677761846429616731330819207228025200491485932054010250243334859014349934422463680038360326689093002587457638196804630578284785761484896739426259483655701216353009911218683454826776594105144204138923197383268946472288540929785702312060063818005913103126141721587375986467856135578288011415284211170547100385918681492488581698668170760091600698114924335528754362370739551026749385278765334012185784655616016813133073384324843328298985694421162609608962930231901990686787681773526637525101352427305921041945612799416821331826354922743233205897252939846654495728259491772075134969176997753324717949855073962254307211263711204915377441187788426091384373111239582134940260919620788148479435968792131951129357755718142006118887549487956846324377331734792241510367661244202803867066023487175624734606692820474061873033147744315804681898234244603963858136819850874646831223052858620688686365329776552440786270700116567741979355822191686971940028949865596245492765323645070874218175739713136418108013818511550827939587872117155518659646994002625495610265551458081690849464953793097523651685966695860329227974522723799386212729311752010221764147836412616290010545967189581617030197065889130533882126543266166542949445666018732467799745951370712747817169462128882268005310899094931536244715490275490719202026773743179441283556581659253867399919742177308978443595787055321268920640474874666859287419943090134915004627459261561042960356274837190865826675244378076948066401587839797553266594435535358783487269117524380973182775547046706705747636578491450921528418046865252666031945323162570976875479172141013992355123247290622431818851369040764838559906709438568121404605237888238665732578148871555910473386907139233881171785470484577595380506109206305619796858878929108215971139894684181249385285481659090370683624204589985460596212904877151965776379883833691202000728828966396843855169686276447371741097512960909869441396513078114799981678677216564871394721886493093361104702351474451435435232303175612218042973229265777491811842188702575813817380558467557953533757790998184176817327353636781916660038878020695804800934989390638373583391667975278546902645400029865953990086943261581681678296590807278639227300960627113111055411597403432138119797162187493151884544023252972388223356259266593447692115610766959705024090548909809457265477682911581451641374110151642888503184356061403451828382715887479599977909884265901131623366232536181585047577836888780956931212135883650963852838879215011857974823663456455822175172741551954595501091630245503424028100701896683519614844648550727743297049546005835577226501201414001773178802211002409964116854920604529042139988388544318917634928929868067162086878551663861762840944226213153577488299606774843092864418767330478613584501843979879117206835907698579227487133233071081116497591365422233288117652286371744582750313564848406957261744748012965337830161980581019331606498790518579592356462730680631666753481622828946106077888046280554969107988300581123009915218675201535686806687955235429283122970757381470732949460906501210383387495541270743836425510907950430681112118325310574460547615106541621676673684195177821121963906017372129530738811656505863289674871892110035085374245414262020075523655411209015891652256795184102374061392724504887723269256568970427001882494638675737712359080130578017622444038011891853500407611889251243474342358959626752551509907189309754459696470430885432026598429956548488184893605749948492021401960130724153995111765711327235384882377379936470074549072112916539155633144886168228943917842413305001212907690440363194597053543633027759057550370026193633984034536795562728076216609535843941976822527891224627323988082440556337293665114189833903683277020055282457482916150781817713872456154807280575688785728886750205289071472976606071121998243011436754448037502593911783325805581821472277886186541939222406887886725261349689615657596587900661334575541899004655091501852395866817568291727888047203678902522134245595542346459679990967160553933289351938052803687439323555427820304924478567420654799160194649643614365731383812436693321260168907609289629526283145355187034604998955581747912281258274143514089895005250395196007259047989155398177934728128536226883423909604317362333249802465050164626945064734748135383117834620164188426618213861683959996148598384727157944380669432427012923308015532131459082125144740822553865106173149515532206200487052329639496116916453320014200116355384347948974532830747448294461743442694281753372809709656824982356276653137094061608001552224902444337501866708923818049728165267261170079027709520188469563013083357492662483671643034576426812806787030611976347903339927901216948922868509771240785734487558930694720591959001382439324200854466050530903410718801667008122375717701648517727693438856663363126439823855571173057307225831643211937530393505344250277114070594703570725409187422041795632826737594518404460202848972301352856918123724228023596880047128511581002023472204337648111232095088155562291518620316357607149344727209503413128985071653445487982046778083159054361414170141283628181025714244798166112816966056093045037004239004332762918382319901863599772534705738124903370624143997282910661344165873664902195928390339892742601968695542749969990637132168380263921907792990519399170650310348268198120819714698282718624960209352286336577433474264228354791813147348507843192713566072118610154960976911480499426167121958213611190762692235881171794589119093568776526850009841690467953785228185909372986336646543551087407188828418153705849903153740115487914523038088924994029723572114890448068034847570848030199653102234732647636242770744906715145773939815107753490828830358744194991799221203118744491671524149088406804677526844119228854950915917667394747304727940368444255818132618632628413250483474591589638516637002101059657944865100421649242734000400056688577874652759022280940713121290519100835061946213188180776322739213693465946009131708142608071634480084258395719909970201794716369786055422604356532245015113131533392721609554148110793779495936337889723162136873687553161788387425918095500516472391375467705246890729521897290043345054416288194496720339635472020116354529503089204402469243199230641280412053790888798249780855192801059963679801734172461369641886336008148691437140054068583096146615974707350951493818706523541369544721550950420211730135007758291625497208974374062599851945318628615297458270725003237731242930483827954307835554544462686344777476298744464999936289886238028472398142799404661636846453509563934654333403666581387433578725496409807850977120132361631722032398106627929656459909801197933217992576087916865031934286398586629844426449124895132548318141429261719045899745079701514543441009232240604641119220420408413201924390917279035856041883032190154138058846711331593911564476917615719406792781917010158911553902127413284112781938138829776758622231266445203215538779646888994200498188675120542223170259202587815624834002629364245345374765145491567345424825210990100699688048776951004573599060764735391941592867447934162716696189651894568327208151070988803833683652203478662427543382304255541767226235348531296524958978348694202496351429057075642337481218626914981235947448519839228536000978112525385972121429403529287995129105671273621765994345702997350878384041665840313889970034300231271667435238303594247581807695985234198294696462463857130984716432383142398810674345943461998751728741281800861674873100063620044450706778540255056217387687752357068111647264186708975217623210901158352769971621925822751748746633180144555727443682633950612550531586778272730629508632394969163710249026006686150701511992060657017085713550865253829644884721337725898099034673924587797313443957301033674569392687617211815400688739705218387194604174244882764799388411003003803562581603088228007639520453315231598999212825430575811280720421342394746153785134980389004043761385622951984069715491501517457538237757733525023007749978224452304347465077432373723922954060451686249355511491657809680155446201701351158338689318251186293667651552177361563083779378258766997325155911785544886409904531990808049460926968627306406131568161134681997878589712656873293978084699561354772060420432428325987292781123519191352207001838648026836629329383531961551361405027944760169259685833486427441885452508346618977438556551940502948473999850688169354499107087512841557333535677147552941529917914253183812310228952167581761332197043542224661232207235376748351808790347020741005751578465600135175292448474932457870705312254499492666791930620917718979867231845705697721201107277477257801248914308825734079876172399153625799686493427536798895454331822068477195535409469371713429785807203981046646990629493045038609268117303240560424037001899662303205466015141086570437691185443729100511910260287538871634977308954979817660066139101450353550157363151459273835237445151294057694632015311391201274328745036338667742055208135892528646358592368365541904226347019471018731814815669688858185011390190256705425839001291694949773943378743049272534718776392064722541308819695326685832763822097684432131627440647750505834685367183759996114411505671996888135938205037359213376255430011246657441585307427269072027311974624638947006226762231078411641640339997441483221603262328090296267616875923050516745939406884288289250852215095477243947711710250481669570635462679474100244032349463057187900545543304618347628854366118429924899983745415693499641465584962621933410327589941460916984421054574229578149356234356269040731814470077177569610697467091988537375613300437583392422137894290256013061904299928956422097024000046993333594683191553111510712280373868891834631010175737403953940809863950611408117866149562168229185213362738008622010107727821070100430314378172310505354130296807490470088517422128306662012952193187846447730094657148518661138981253518153745111888241400257526519270054652547504746792064749213618257706829518420935859374788362757763983553431024921766148267145221234513043266130570742371153583275149668980712633501539550362318306517558948166280582845137904711119969158277727464276919275872847304259839441439005558373459895256959083132292670245187789260681103189895566857999990671088916500624163440850606624677463445850382710437257902461464558736804405377720737350470244286939369733579404462543626839914141455437736407017762986856829336974408371703798311731825311824953342327723411709132530483367267118389722463503400836310480431061950768753002105433356870379588282355185630503570087212130849061287602060735070349368446923321188634804304264361851103328051988889678751113444593676502239449967847088758909081843357238035934563660469668819334599743619414316827308865597177978771375476678264317654196646787861579323625095988339150669340398932417264113583355498658058794919256353678510298065005815241763108124114949055402076355106914700242116535933940345688210337041117233493407451499438466035302730514113516957730045143040188105000125043558421740246350765846172721158131741598582260155667542210855147416957433186403347457565169589587631164317573194356756764105887062012060641057907768776782815409622412924431582005166572870541865262715781878302581582663564222968237315918085575109111384907458501896127067868776516707213718130702789339196523602558837491662051043325525430658222521213936108597848271303596378103773849310463616141665208006789981561094184081125524934554488277630058618541330040841733892039590500417493250861708031068068858908397307513733831051565612282961283611230201832120004939936120566319069609250654633863538180805184527238246815902691442797510960834895445949706778980204183296435203337896320436435737587172611584023675664807629703659619071829704139325273333287226492592835238861049385378951826584015087366369528904106898330627246094011848866209056527571309577276890846895097726159584867603851599544228916320965223989913685841662267527101927710285252532152939640845034471813219579936267383473519823135146017326272355428435010474716661049865508562983521549723325347621446503853973585191234000001570500551618571043253666071371656609349769628691420792604757312749559007549331240765869952735481379553483041106937863902014576550345137624567162672209899321671277983261038842598459824257229038303480800066495885136825023290540559273768420379341004036738900752069074850000357654309345591455035611714138569219206787783405473636878821827075762099172736389317787697095175510319576916836001188491200783351281221986608623496814729362058460441713465766760394192102250632225861358316268644904276700766626417230073511489202943073489291771030937124901233600450856257001512886702823441289790374772099941504292303954519819476858202394743732438160087274501318991561300206057424266553172963246541785172052603087188280517833794906728712874930113490279706805878418656108609039482150485273151459505560362717018024590834178570810720020465155375028432808162708332815495399229696170634149796420843173464981910434917609269549803423976727728208286550901692443084926767558933539329280823656265970122960058439169448657560013182725487254703742166420274285579259961071449524111218530474289058379586464328513394942410148768717752969712121414253274844158986363655840957309381003971296618263082385126538194923552623715431679042824428165858477850087468985236996185527115215264786002852925037362524892404109591430756433218050780238619480028235422638182834420617433208609377471760211454793790337732507778746713102454878196736539512129583884935664399779044821811100423505082983263896539082837960191460125892938369696129679975409527141449651954770715411225376500154587804397092004094416174759755220555409340757202504128237077805245697814484019451478092048929401368429923328608069493496131167547733341549982005434289274435426763443319400884683143218725004533025580861090772154182444254515181504570233459322011377443999236733675810961721090844919277328740737538081557071231715630024342794737350769613889690613333533254552740207765709906324730773218888445256888975178423625752552148519070630760700398057418671094402580561741144454827053145658404285608572729736356204599799119587728338986768700666578672529220362187120520250938878773040521811564092236093026259344038047763578711620298361305126021687325100608466914111553039745858448159549793761458365646817920861004245976509625514640136819199345675774701313586324179998778191330473037693760375511590670036353316840699891447429191183795525299475777768485532050455874772286712260219669990347294053341174552172503323790608463461370517168954162764384345111733382334066110229604679533887691159645676210601090821913772855085063200690228802522177317871937429521842103905821806498827310238548822367956400181858965539988533126337658369467071627791218675842461410991341538701273948813665870128455094229489854315015044660519111025505852316746261075376486136384709510439587235169074047724256470928372124243335429632070159342613983023556687223905378549124451910934781295570249159979526798945559076492881958459229404598932411252850874783338246559669495375858990024689875881022175924736760485249543440621027641745268008460238688702874327894717397630164572822502970731239602196880969762122031510883824484685661229655718404181951972295488430958826506512990428323653057701046522375453131864218145393455452316450908449823432233804682899466489135174917209301482596102656372101458426427328630667128542003126787680703849732085789864950096781790049771853932968347934643096043591045661804452480464154249130600071873359533926194729253970863580173204031881570230681868937614732440609559273978484708131171987735908507780409910259012125565428500900942651849576778402179794971353122109048672405292300944166805916012481442494204771249036911920311698862725509118408310338702261574666028816143229716942591262686408673463848380049316610858494587304062701086103210407899042252847589328895958012354427998610932986357575906105647699960445992991037781736842723994298172082345882887504869326288345367965615153928629949758486893681941805876297894161988955461594446728971347110894816025182379953170815883124221721320096541742238009480753063543915627726876757942462851820942587023900156752684362763124452694005493888016956897272507555463258167637296020764465733482173704060993681742845637876207667710698923696046895782541848964268998472645756568908764774523788663363352433166443764927621049277773551286193419001729618029444987684088534953626970085399284862417295900062344039071499449655968548690402430681626532340607020952018458766613956261785301854133726363207299125391720022493565014498187043433226743875466622720990854441034975877025095984299100474504484565563521479941803566528643399705065028150128681133099260978601470763075704679604885122190014162182595085063205796458217909451923511719892244851367549338327735768035707761449971975798121719989801425376636954686722841201809586442718974110784002096064379214820587156887378754476067813910548894050748203958612215630447967115882595324319253991959284798838900647023619000004513307421243558869030228721571359438171277988286082630927243834090465777277775378862511113834801396346695580037575109161155268485522336683113946470303324579388439438549379217209108192925143023123499477575651815871129703990478020574957526647739019895771572595053625595002849181262154123915573966372230432174002610881527419469676020018156747498975486418161516535862255941039624857274700143073538640756024460115363941886408447020022588868299902341623064917541321702484381473086395122440110575981010796202228397601524736836229115066868270449366231987898399955145134876249845545338997407188563804625764476287516159683859371232408731365038714527244660442493455576892255136356592620047990207254841444565790008576624527128182923610870172199713994042852325393805013102103776682340094026378620639287511889288395705332137765910798881033217360292852155481890283822044873481898947006396911254447569946234146412621087805697685854786397539649299792647174639579128453079041849706656204354222873039251627971912852832636629344009032963657219241148501097545732972437139106503870233816412515603687694304401900329459532244016782111063052559216853792947894676787019243901571795049357896871286743668829329470403899349403237154120350300498880500386030611798755551830560553380775078027732911523462648143076527037219682303884455678219520976093863958939382055273383176949086591762190302265146605053841614896411841053929327027671866941715225112824454875188284041419146144174398844733544398854256171407223696716236915626744625847044628495335825627301479294982506525443869703779500943832369390203325422584358885874516590632110938013677987852247927433524275441519305093539581471559431280952638294666199225735312393489149830295291975386605220151365007805443417578320624583341721129618016418199296565271987322805610524099983324398377131892171125867674512366147101668669846723869599127524810618547515756266361808669538548148276563945960599478544951390295251208029819312513371581536067294978628827100389073707341451219969134183876667663638196787681844004901200455361419493624660408433814734622988728418791929072100788714942677907751740476906916574253961723564591940789930981658789703020312457192714867206075054470152654218149860247748520542507356738201839247591379313892729597302275753633562864627260555587593233310849774321208574217101496357962632296356895628892943010650994202991903671289413658984047549281994845475843683365155887088089635120958672134764032112707411381761870096450880788486006787431081556305818504301044629491290378750606158233971197483083693592375650751913343203835256089875077394329608723874679332393275805481900831213679094069193272450288787587610331232240778944860295903472664296454137018754786918928683883573270702050635851266687092371474913323119659983930218068328974847435664322549525570988091035461043255998848744782815872272650874698076893667359473277556972639036006492531319120469420998500669388272381862192589024166480902191907754958410118165512992983600653327987365019479491323427105568038041028414620754037933941862501729395131259221989433394096800508085128657307454164546429953620847565916415191676887712762917225815960131903087025143631478414455597041486544503572350740716117419382600623282347618782561041899589516683966395326626645668266361223709815431861984342662860363106957954990545540781043099670292745264086266316655616998522117838838621019715427725112972189085950119978363157715754151722897670589078688824506471922684735088031764499160616449562689929613343540504482708562401848712807491256110489845077909793607980521899205543577347234346190940248747835699690187898401800811453770230934448295407407064921256126173114391677207069235550868241604953041350782556347842280340545127085502818457336110010467975451957086602572520419288206188330483032021326352969523089621144928622647534288362587104666571637118806030635477400271299753248405173885695764643159185493341528690135037965344231913057155251699106381251850960557138534944734863806560726209636119041730856825918166086361440373535262283001902746423208371112763505764838823122085662190833988216906005122027631611795724808393525188666460460849506111885558111025731956378012665330841540707439686288800657250678699804693860731060216693170473092459949995325611858123127253197579358019118918972309761775992234866016864221196454177123623884748728591179106564398176182016687318769388902673864536366600865202330011398226275048491254748163391441908949111744409810629599902488771417972334429825977475612062025620035640725120781904951598434151011365831738820545910479895427710417843443109241985462771571991691260871514575513191839342991563200450915496895741951042849941137262906256128129993237264494698627101782473834315120587138743070403592957741961782706292626120221088076531516596184762108457071702784122120486346736148907061310264560915212532387086297326523210197152899932614324540513347663284679361809861239871981368044322446132397325011513625048059088245103995869645523671729544445151988495978300622575202155151372569974571525035303907035179714084137701672296998525400997195934291732562752060302712796024014124361356107693569056460224106801693360279879216173960290899133115643383598226332874398239340477529831333354117713280114183828901910165640322953921991769669494814260234116872458225659160777871877049578881884371807223714248502179331278208292246659442015348398300910825966250088679089535676563748090452613574562697400447887098992643200400776301331952664434739032675679607635372039028995938086542568472771798043639248097211999141359555268439574463486099890264678638059556423092421998460218335697989826420393842755840847062901951022554022826318551747769351324208703301744009693660857952047662644210138261671627866472743011017973088169156152021623228809793551167723144220398199986564468235718955516393660871387122526355116800392788353753241685550857654743955872434411534290173216646783397567581608848857615658781512484436907526038251681872043996040520779231313446054126001997009570119621509025517203321754016603333352508058383659527476747612294538455109689495662887337997482394974809836122856683768342012593755411848205250254751840922520164517678643418843856308247994815678396319437956045359613581675938679675658799094668946577230245507199135730998254189478141437776284111412906084534936561492273962626399764204711598619766292624816808390710567929319297086493908998181363577430102997877504136059826293630456419555967201183467592123811272193559790898619522064412573950735436356777822015710848498987974427343409384271127853566930684744041548542674481118497763276302154949755798308061489797325637539053878527642607797646293080919724733980257691266585943572189401135888011613696835866492744224486045443101366578210750361299509287793372410572498400483223348558703880407772259213299490349473340526960097852715782874730742841862036319625665432531723633511213705484287462175582145498068916456092973964465977346062481335103598471506531439608834506016413981492503025450281320627531767203698378566053072774807895529421881123167842066051986031831014094990724624626191148055483848439548070103613510698311011240623051487366090838703023053567365936359445140318012442039970112042581659695748108488190512864013837620086207667127722759719812635588201895544155763098424065744712330719618644056852661110812340793615635116252871096634148086134852329465118849500419738844778297422058440702756324562175278733357921056251048562806209649054466819889105777920405453061865568169885514984921397297669270422027408623591623975625902967448877672809181264779938495441789822609076013431834732406115871433385424039322821503556438984372269874997935186557310438183599313059455083303400327236171200633587214568180478008640816650378145148188401197296658616419332864418100098020661934588453180758805058727344017226693366687682734782644851598977443954695379856149335641674321039613181139748773659341744258324763910689571600482708244582250314738398016433881582625009033318925770928959775777437211788750416714310761161129711648309230168780382566677357004369898542791306408795632344240454076460650344703881997290850845194661318013088845701141837674723002583243821437703819550083772605881109673178368982777448443980171046063726070344616645122766130440932988135211825625677496576374665339481996851284064579095091290272685686408250898543659307084336941773388037590841361334439794666004224108868546593308617698744986796943923258043611929668721399894914961146998660788759708393489979014038394405078481800796096342398546050385114480809486123701020152804386274511242051466014623346623578300247573195991493802950456094663104906656594880576083466444603088985325553364917772751926501315588634209000476627852308833290648549667450152663181021368472081643784135201404507617928527383792744222152315973113562658487666244554595440325830291513658061203801501642907761947619608189609357633202844154709305708546011198071897372304938670757749579393724263113124711889208633597386630094757993317263467648735325760418682484754061533224389976210376116551994493962099591904387219462034087184140292813261603347426613923151539984134159370907365033028499719814925847914766529057606040083030324476288668456117283364806254182354241778267214309345024014113506063564811032490862609034961989387050696984338564168640464034402796463796272025780250203885886572162250454598527336724117764414746256272557645364448255899816025932823840372605305070293776099325692258119020143712280230226826961357225825473920424739975740600149119763034387584668205105834344669695796743159828687693921326128229572627193161979583414790543329281319183067608165058637904653302744068868004889524236998338296970945696634241057467706480146711792042678141440733773195084319589432196525424147369348289642172696523444141409487520638582271804603970570964838054479251006516509872714221393670292596429598731897176290856768108556720553828697935349012189121919993055469799939778998306714254268528116295963110524839873589121495389529481637001455228680072152349061506432098021045030358507969620800136695438221566911961880628833850768714850897853144449031095643064963744906890621013496261566009091382535826694563505294942076948679039757149052153754288850866202103489026407781152346963552511752727117647807787785869722371473330765154255852721638014892481500996311316121026022861892722812953821600028547317661095976428627230914095164076633938045691043290410787791865797050120528537537006420968893658588197978913662593925937978148039649103817170063748540847114126986008634232618403523975751807215689734511489230188224934825883914584711184917454356475535290437425429998865336372272482825553603848194544176017391936301245211211763267862125248529181280302938091740476651844124409386583811022298706697543659604300852088659059353452672194259571879836690908415277650872584258431576229167749997754101150367441575780392454172168766969147883765353158412718664623985034462516244690223538642319391827489230060348128578304075892770466183372348626518585250075122266965581166196029121377457465560110633600726041329768905618047322051243781471763794680054472820554574479453947518471003444564225250802151498779857544364085278093248566428078301307721109428405592863878531156827636851453147959486714273128476386521223269696351860960466551341725178525686086301941788515146210813239998161661593433018119226292146728990632477859632015614027423968775243163989045756822991337698226413190496894474372339680025818165216793515228073537440266656208760894518404165049110822726193186901532367878186974976900908562368885255655804739568007478097062195288418002581213928603179998889949366347282288097721782423810192326460633947089140203847733146755768299264525635421205225087717828113206100120223870028115930711089059129730051331007370431717618439686904477583323537769379263252401718955070576497150113129615147630298718817428584141916000288015340540839965656946429284797902623820391807610105730754984125999065011979698087363314622926495638820962129544015787564347032703650094379479755295789719496035331940819762980472114183329165078425138487755406006117057355433923848677778886934767875404726781593571203806995598707795460432491716270470147667705371112873478394340798692610108082936253822811580091049391995078186532642726709037902109677393180676645662543835278440431055049125724885047195814878426022134295098128075664477087674152251216332334781282532182555398903811444209690604005940845636075087789398006167796143127394848099440039911261819075908393297784620193592590167280207775200314085148427376066907791202116537856527856652998162093032205885050393552851995115525759633146776674405217333873018791820898844352001348958337206007425197867823520944823160866758799091814618005027213743343436393801045296045453817250600326003670073340381430435180548126312310942563138784820933713823385325092422157238761647472971843247875281514415022474706776858236530318325389836265244711458107945378156571230794778366677329962392593503835816203076773008242187653964704590122767722139125796128596411092112538993482801796100813369165961182701804163564438374280815593597115173676267178760111886181034183715021558623550335521720487971028454931816460237675443868802329660508844961438265290740372687478679940390139301674608296435116375389935965138136139435908141359562553860288798736933883370164339965935027674378463299176673455122087987748049784604614869779929898538994918969259543204570915707133766069110101227896117670657348430247607988756430302871184649583502416458351285905845606488110329958871310107879588319603360320810032251712204243161755127819472129171056657214171828074515858455828452516060227997203829317441780198337295767377107369152706407830161446479338895283789212811654895175862017880019841428637248544303011686874124297220703582778717990645970997674763942825950066413040067833971102182804292229321819544628794338029042658863391328347187653205576829557965173018945550562854565259007751910355193913548234034264227284525125444362960134023465072149214307763506011860625284862745869156425754296097519830314317024333542668622137855564462337987776186104186938781763587284322865916584827352430537489642826186178430937137494960270433918220966520491128030396777732534204976035867263678290683258170610987792576882533789299969908305358551200690669170412989901991113645000054885680911946326976526628366299234565861207362624913381766488260930779197458722292368282295402713150524002649599407311513872033676657012188340036326958917202758594847021383894566900687931686799346075587121467951423074384104723733594445858842105126299144494690271227053478341562388715042647490533326382067537007902360995411021372170440650198264095825456115292654291336126339819634733934838528761610979504781938274294971089657379717148348037565051948210906026300663984616398250024659907748201182205512557693805138998103634393914103146687971009576826518946895954252268939479682870210996881024356961832409216848223097395752087804609474256527719166564847967469916248863198834069280566234714466140122259940436290803784327971294860896492552728515246443427916936279582692685424920533090784683501019557777386000310360139282057189971360634404070494431946302557757159495829483636517912050802111758835583765295017704230913887905163770302104910428200553651793014736339932188569518044426466219656610194650220736191772396310874651150624156191267130820663993218498557383289734697122399751676858016801296510479320662586903518152372601238188745791089454031907072310088952527940418747994855160228609056478253441608714525354386110037366277358048266192208058788261462508909804834240138877338530822969201134271430395573559933480509277093672350378927066346882857627574241447139488873891610238514608411462194415002329768883056980517306527505993154249561459092116870737380751055603518515001299188338509983890578567884295148605848743692678419814838546362998251035774398554306082716858080498648906960038634710298999791328340687294084368124949748894975203367404653905490915968298249816138351948538487666807878779595998578992604942556057872058675569215025930868607336743704159889800665413233509605813580392198306509287852242612960994137126514732817145476344199346488997670395358496867993506635649497847557935150698513060244850959653169652686243728461399585475047219563581861001626141440156879408835615131076301172519210537747867515489367426827259430756156090523537274404033895687577269982354570597512127403208208747220180036666767750938655861628841419913282543870058540854104137304383180680976951655205689192262722059035296740907159404627765776053742904053896266148343097888250177511168611634990471313440862315652115120919403430178305161177119655316232471370253526386184344021670053511261182476213897931573677201208515811065025705626192171505704168598825527749166618481288780467157147720319328064188880201463590386859189986897592557615447475388124277700898819045960586004473291462207662864682220208228646920382001087374757132804780919895718106438517194369728924301876399164278005738120315301847304212936161368473825973499148049181501748046232881900374033388892012341805770914183489466662667704200585480377006154977639056210717255161178509640567732242085749115243249511159659211822239629473983507715982374755143780273777515238946748424603359730428716793882915256033236969715761480615781204720384907254689045270992513251306945126782093799521944414935602226059176442545533906459271938729166790658016657411225950895197411899591388121768350003975130244620300010365259061933317590387956345207370467525848983517274494791573961912345519473048364843692797996167070911398576937317102078362838525996973738038927248460964532810794248032645045347828328293128647457203844058251675086681481224729566121902769644786423992165323616239542748731009143010730750981240397784865262866720328456656024922356642661242276058364289424197921404203397209013854350421343388858008956480123667474310199758025303438656223486019381566196847863906392967921850060759961539185397300372235292161645089845297745268916043337226194872888667731875836254335222367622775941674808347163412374112490500804775603084532206121178397780030168255314798333935846034022451246840011118668180514229138344399596701658431558309115414373183885071035853209729185505113479677993351250424056999867764492803122046488884307085304047336496925113889737651806621197472069123303038287538687748123496638270692090617161164677201688323754500927604306752808252360143935626251312069463688498529225127633287915018046515042874386892428294919055993741478308407985411193752384667980715928761847340292664891538150432196029754036947486947478010040999258940176435329469082265422112833793066278864099532803283036737975368915837160302279928382345000039676398632384011701349959471039830146246979147567475205687087799168134599882305634850680742232531071887659391549409047989302757533510282343891670209002949753711256007324101812833519874893914439540052488310872241600555429682708841201286140979395254166616247515317020133146751973580136140368222941662241973030468868274509656189441693682211183286967582495324578412815438892415778635256984438837345973201969498370972381984694185234595666985377936825007390768043137906377491795786379453372482302113733344053564357470171922804181135844229449530200209978122538966388360002704373382630412996012178265939284649318149871855870302137532683081108602114562598845843414806093578825858599783630116863941871768428209992756474833598307519685615267789519043824889337206059859441700421783580401939851893099437327264054965363880381319696370971957704406275895611633805065060676284261770795052477243612590788302673037827004898294021633251618739299548120826547321434828651791528678323858878594553523656145682470701687244290340000054996667415816276016715938834303646426135645340229973972188040272951169004371591906885158401486988737357505708943797997302459048978464396215510810499159374398014599084490971649528904388372092588868382605989239424879467173390478449482048291486236126025899041173033576781153262163948081905556335395443680798696777143103018687762705621027373089119393464263040103506288209165288566821662266237102697178549051509406286041441709728532444997734474135697395033320061211127677340890283537684288776875774124712052493223839490261065533129445049231093429721118036209507491037535233487124065691663069050339614172567909034418135088104112952838890659776473664140509443787782096822922098148529525371795070463677868179995493646590813414128508367344683917642808899934312284621033499162060635149039652031277821363931697730240139340692853206628326842893607306838113906032979283061481402549230996730729905886517760936214209631877220928144548761185960979378259572486920256205724224601328408142922603035485593436073699216776224176685126140747395303631359715748513841388167670861473724156471472102774198758320390501713784767865493902510515381710332292988065112326266307011293416916760445781935700957574987883943226786595814116415363182674338532540477234636739748963453868758529161449699733158590479780440638864269388850310552884036130703028652010615640639884674335637949464910061853957045647828185858822148134132232773420982808866184275008398752091872119743479752171639054978539116691135785418674603163613553127897339239603182583928312089043282411674101367653846580435403477724684122900951247401466812948794294603501275555474537936225478378595761516800970167498548443652439177211655505717297536384516517680587225973885867945810866171006428585414488916636955352064547652299210542456784672988639295458285270794164797809963657645533578362326331130385076243611764773463543187396317561801795948945295678901807502721106497896839182178240745868345073509444317250738909400043193849797377209802703666800216879113578035142006072292081569292543741766678645924460054106865358908691614253709611759534139236743183422627392443483363319539683136414648267461150436062130192427648614347323237924314954150527350491329665561427261481424158460514725239733486493060045184701557231890221211005388705159850630519199713767749873756528438084561042456001670326481373898816758982843298760069463005060215146360579734251148911532615311709498361663245996624294008003647517562005160289152712320404575011444621021262492921851739210962083080955554251475777536797656391513335685963252967424624369262270459685676621153294337102852016869620415305325850302625592525003574923166954151017112020669232512061973608725339547726232784669951395545849439528744348740431185295564971692859970008065282722494628448120977479629249497893288097734787644457347717669322008790691805695812823546800021307212934188379488543914163956564784933565310553779450569288995092497128028748098090680915250113474601556236930051920328415190727496029641524486334817103175956742499116237371986160842798107904878770241921295067721724390938240111249946119363341162412387209135736776393646820070867238811365564720170126959791819452548643132374543581065024458122266116242569532270011463419380010716049284593349749983361086910714295551833604676972806508455506542519601988231578884527846866445109330065347221743534952878324127019538136612550239930108829655809108842258119459045322065025936441074254718930095744199768791173941726072618458528188478696949333483790193475589713032621264613893891871810291313780606485325641004180598890421757561870247879189158368766187509293313902622439061407006625611207296226538453513539328119696872457817078557601568572197351591220870000202941720874459581969679389683246306046368230309230857325370719056083921128649313732736628001217645640009935420244749093271044235896001714735601871192376991564838558389622545259369422426315172235819103830609361267825551786935469128925753476835684279761586038937338817608190640763740496679996547155387553480612679310393971709647484907081274935608629665075448540774841398862675528471343447381330118109376573431717356253171472289910235126664386267200412834248853412167300581509755346213581133938303827512323630896825228509751492840101680439168185594039073713670725316693491999662345858036346983582425936769307971930312049617927174355609422466310450810724271921643662335884634151361940170419681565965752800015047348077167876105369127949470090450992811042440158484211123152832939766715821759513955059620960755049285224575235282487256663627162546149119433230612738153605312452523542228593349405281351317772227632354454847091999080885760062973963135035739945290733197636133653538980739711988082509016912909964125877648833587414295748379979305596801028341037854996567141956055139047536542733498745778102075258313526040884204895783023985812943287334195755476412479678594942574651007013711830144212236270078638832499271140988994564430122742543364654357357504135143228226539039998624973325166380549541094833544669447463065298952736221841714677061365996672464412999374632977873105126503942700301187854223481888541662526510725524941285945339699829299022969499864736926663499381366940469266202583055199976565559881942084032499157149679183971124066309443191404359922740037258476362729778343557344370293685595132252582989992028171886809366381669237496021169225826444312033038882753982345482376055267118890862621263589707199414178309260897439569108527008249116570164635366793344059102472500209143799749691016137694463740644349892967153835583437906349478760976839495014195199150978743584229464917449207267068760945282544368159774446395365592219853609984053627546780947078976059359956889331013161913453952528963784731962830237450612903964040050135253742324385692985228478853724828109061659253940784448559130720912059714969555152000816974191774651041604293745263565748416959418530586696858636207465491440585156858757494904146291766731678255693852919330272010429026106290740662717494659385136405996515076745515359703779298050938426256987441852164188151505366217262830899610010224681350775242636197753665099023135879657949330793351969058957647152961563336378746019593554823896415869108273621997342732467036120279432142905570961451174667708351463899772441485641154956048364490252114638607420497533063905803737448422742438800620944339284615143345001992374756938066121029046262529046761947245089572802123224790432606513052171686739123302391535999329298560026311464352711831703428071864684838223863146082419513927355877688827355981749690565807368706370027077911944013303902884445090873214760057489957703520554900017697397682548065458493148289346366344908957141657578509985330680653569689324383892605361014018293539520234785324266738026832339481537388089603458008519113674045600244648618566003792267977001502747766170008843008351460116605516617343451398891137713075926901603315950454853780727298412334683290959796471585250527035311166871161744743060306644430501603935959841715233935531378655077926373162974305925582407829845117746276597006227315555383959323629895354231338794902447240889144110539722811078394730556434602297342201870159474726587607503234252811672664614472910508359368197213077763257919067774633613275028092917098827298538765945967276977853705442367771832601029194083459379502278434201116306860878843284150697759396814222302970707731697397499131675522415099646475642067803787487391102999298836900005424577087452344610490378885686997971333467790306265438352181985822709406625059518290732887307149876718501155209055452852952651573593419499767359829246904880809761791200420577561225385066822916045202344490587791228718501669536481752726290910713916371746609209759543485286241165764603761919964425653165381470790233961975621675142930874091572529619182227710172240850519335896432553647109835080969220543025157740305330742247294930819404376193368213906005493064053039819006168663186642457318025955313564078830028376602411637139156365315121193031217689859764000943397151029594698584217016203449299169969593751475837738539801426713502347117437727669791147730877132164287721484661367393563937323600590215302751578273029300700031574379712710385495449170811913723505255959863880468648973495580166958478850460167803473227654236890758296042793935291603462938922556361835299544613605187096912556094777688468534750806146189988658839086852706261233978545856798116060596495114263184381703464497238923640656956992321088906230659353581927660804055761755570634287341301922573501104215019703370269152536855306246823837612957401577195073546170362600929669610088512208089045810193707410402948560491467060477808655613270858235898593815991982368546424998936181263350543528904784349440774414324455778099404639607079515428931152079622112191405144205254787051966497550979831305818211563594444069733215220181843437368499116220273206461239472981750538249114022561978782126911733200870734300121358213716279373001080711740138280978143972813982587688714563626106589061667921259340322163035533166837447707877505322490343162066522141565770318436029406516547730239747626720296617835327252871066901980734392514108349508673652874802445534922608511497973179182174891340753773363754515122174028941424709015584512732275348837452013268145413134613472273828398160420263717768516862095740379636512806066675988600470926617331964960772712088391142378707577073380900553977533332526850870370870270286822263637120971707673922541900489829628125182481227072079008741637195650813420833573422677419113343254814843741325476012893001966467290754078145728239017280384882784039020599117319648610549693178546739670926572113810367637514054797824044903018472814530079565471979909719731279367360845349283392785451919789448865974520721719403066391121399308106094327212469445389838016801594857525393110422916105963980500926938317652617948647501784906824479894060235116721750280890231811161188996183306329015552574003363111431033789097115339865827663119300708394924833916059837723665746497928403539697631990915800749104780776087527717593235841342823617055152645073741367437272172153905063946793231349558182744869492387484257218685789456159272036410313751045992043183221365031917071434334454633180392250140440286235821113945331502875623709624097055290406598937056272420480890100905776045695497880919351175429206908275978900046085914978451714944031982600092453734910189282580416794415242244167739060017275409898934811284387995413001139084787924554069520050879832945363939951681801803121724064865018116400504800858204252296547937031535885650734313090697407622261014696699001049070311842212000295448958771814507544141311242237009859074398160722863435481382881373636733927282789364338500250833325932206901857864058009450817692182539792302240547088192908138590206641696735773215888249526611473198966204168717313355339609063930822864292373253429293082114156245173791399082285341800394400380201769582879916168611287343008920169301874632761047850966882253824541819946988203366000259020590459955723980085079226903251919612790176371223316617841398795963131412231831959925330870894446502867566172446235802706094277697744037660301095162630806322865376949627522989870831600158792476430029738876197571083051743272031654211062492129879831461848443858265777194624065248423100542964333300138409910204107722943491028085476780722846315562865942904979038393067744706056284351176890582081149123304462468223004575662939028461968231688135973838376142860658415059867574989150165410678801813504387805919603749181075535450045868754764828039095262000450310064685562252601393270854296251815318043667000166896148205446034206236879153541948260786140239184017912483971729968783187411949842803971927465845146855170235887050563956645300313112148144437463395898458533822794598635228235905172879021226456613016489321875472921214741621330127471590684550112372939548273798496218905206286577741738603897116054224335070500505642464665283802693677474011005828323302767413068483016926767078810364006745775419063733261841324023773247106748686280669453052617923793667565713809857557313984486529156068725901369568914192373296379840560968985771784844223860458982285949104841196037588143512732923308862670324054154548271119797735212109680193331417378252900993544807346809123556284632254606284084955955309881835310740359098204378815380361201218211872238125790938352736316280299881850442540112225616672188546184464286715840204878377753983617297891924602261776627384492704737075476647374207105973140122714731256638396487259070565194879735362905154213547688180225886382133841804442171264947296629266488260126287437395471466522058308338835500751575053484995545081492657354696951525809997944561553663996669142162068928717261297983466288139450614309710314909685970829391994598750228843526956887979004713055730299147739904412592215946332001890729915109809553123267499338684868827762588182902230806666183630663599016209953153356439707903448804302177204804019458498889591505205866958132238647903286147594734207484522868904913286945553331593139061115722398920492184640501995950403869050302350420794241611942049559902153556637096465501635048806092897069590938428738717926245937969988687867198849535304574972194284527030093164588125148160730269702979702844191835189519376565905846870176880257980642218256467738840728566759484801619811207459762903293734413567298460099411993152095001694739519269962873709688427265519621707439903179089934512451311098994527530229964893803555872994213120089337460200680871097513654974175330501660036347833119525225289772014473122815531582702197924139569215601234689389353987951560168189607840759334346315233597153777388117903172348287047690431356966973171103557318541744639884094980304750741909946707817982281099759206935790948907709572529057670701001684241599746394181406060605465446310516308232862416453222310031780187900381905914107953774995641362250423823366635212646770202461454561205444545778463895835912851764049442175365089288399265029306533293875785377817187739264673608205712349045200432738038967001238838594062167405457469390557856300353426704095833275096795373304841547764559954651688623133316079985526331488104648253732730441885058929412701031343262204383911568329422789104735817075410959009097212904627147668691234132281740608865374296059463565907521086341870662110017838405735685665294127423675067420200174697029665335491986206222179840847274005387635925451314757887526725848655581601601833469883017752472328633705023288868378045303547110227755509788374412423166957723780909025315556459125551120611205138507663319768981113579356756078850199776962954919610239562307197854259589900443995810245416983427611024830812284612066290881986522418038273239837565564071062623936145553594872659340415103816778929876672605200576107470204139490901018392498294949937233546468330828162416611011569993518281056206505632451241200173155060105787493715298274725362817040111554260701400641122824698016659365991509666707750593651607139467010804892042196495563131052915261917706786276950355948033839235385167566339601224363043243519816338945992199473920058609021888698249597105816800680968177910840736824262388784821839113450334894344376447248942608093776849687799783736490329387125210894225049915240124376809746962771817761372168488578834518510366134065891017323839207684051597224342902799044998724838668485025636122839866507412777741839453576459309899347443936881606115356184452631712469698306950230876717716027425475630845013616113495994643911770002718463220908535105240124901832880501105740812174156114248206721535745744962673363952676792386108061110516713758814754121358684468202371011181912540774892758294124631126414609511584114685872699140223073865404133494846443313406142469267301275960614977646544856486442802357324164308453332673609889652554976549373044966947989820099946849306892625714954015045351927663032169200405788527845764905649977098516885846701720313044940187940166184017292484145171320341326048783963643754310207036533398714201993025620597427924670872528386300179156750902271939079675192425143195587576781120948554905728779134603182755876882246076385542368521895653520378966690917087509090927179712404375651169036288662741288919510986056179760734696022133908373700872826297109768710997214164595190815093109622650846428608766786038578645897358115870804912250183944842402319739432950523334627896712954531388478272177491322221557812912943034315715782017437348371816025515004799236247213118991223151706855902518635952765373665121558662697223416317589178866753120208068154881338281933521630668543274814915630715207327160302549401846204911872999089138180006548820188783501776171999497096691065080743099709329943890942020363033632356330922873308864541908456970589608268385359042234071826074131919642703654564141101359028774534019175701165107386975503994799250290672065881412901523472847701329198379378238085853919044048509004332218765710349490220686985626391742425424495623972715469918447168756601970500266934205834402256951861936129891731174568540952427809525515311572885361333076065214084410370504612296244244510463037973687278110102990599920784567339236910217222401273240917503621485144735749460429174464737561624362281391471930877239242454791013783278729660941747071994611724113468988356450839663650832152653021719031511380252586212898235862050694263963077806280920884531231365392206868380850666066868968211792458233177442192214936240199087316602553991065152591357523580553622412305627041678861081523985692715412066703427417870318080720985331209223132048269037418600904490776083833319699358411618719898407762906548598908021018712566159494456496446052764100301005181434703196161697273195523294074409226539942545436297162356438614041290854639097695837428684367410243941029098945858198438571230417014058143185016099008126142642702218805489045540701235826721080420847190303129194025018243175379315526526298865443701123028022723822117151975947490162955173586474674954460981278676981886236885885123019993245151174366271392819189956492349411076874998287476038905279219884128662586098917170680805882674338270507359521252503184228585495480290704883599944704191667126855113107385318940250038240657405823226477412707582763000740611939451494555818350783701442794810337123781988814840759931099437236576941089006334224974403623347870901079835769744773447984827711483773438872269693857985349805049504535258535436655767869922862710746451190054949547845222174196077872796340187923195455323569345563092478848271060637833577606602904572215737091306022868670876973387680082658153842311656942723444387204021667019343544495981882194190287819317563083974887454946123001252864733106206837720203717601791541928549576197450676700600387171331462408162080031625781084702822345825237755165866879195404813662030845966762173929920030545370671995401517691891548851568589549731850459879696637139732243049618313320976978047853037014617310453806844279080375028191518960231777425654076868449639112493831306136267566140737475791008137098009746460851860429140925170473435317925939685729754847670725010493931507556452781927965509429044781391063646633476772510143936251753368073758551608853069487679888048280470759548571934542712684337921225253862870261948803208196448366046461474512097677128939850913083116183470034119618787017031123037720567922239018740082754625855179351828619598791811162965340290822887643131285137093318297062298070148491103377450898988006096681680215020014946473037178909451760568097185931307244365380041451289187489101573286569099549581228360361463159310667898356268372097744590031256802937205835012699694552175945953106975042636904227837925702918650239701814509732997712889401505901357628708294715744721876344230137868744448929784039014158379601621077742360413945055151110080901642943498654450393294183163854499886460202160257934495715087728822230735492278141535213719544776346074002480993130558764787950958746476380919887602827969545870282572458823741672227544336104545849020686735439758107327774760904393539825370041705301113581907267433785008551542068985662274633419572766405911609270768935299860588719145275359367830528994475358955760186546988597765500242401567664406765564196133266046578980758407492935951724494407033361997808211604442902481843994485070133153931613612868807485666826330159352694548428242548750027680182497147939133767393669309492929494744405501928589141461239835267284567117410545193310407117946840541373077050358486078932265774052867224277715075844570454525874928727250758450661435665020693818421942351721356126294988248884912437945788051965906513762135280126456563796811928853533840362704307415021663725379756085917702426923404864602727850277153941361288837678868283253017358693609135814213002792263513459080452792313379757141848687207810778216005289267180829331935966357688794024072191653698289535137290873700087027430933096458428337280089178851448921921484614499414225543889606073486610077731591239580003356891512434735164191979986809334937575942303617598659583756977133450283842436921166685841923235675173982505924074761091064772165800382480906523494401268727028602720508914479249517499049584367636388091342394368661312500401238289909868172090187947997695964421296722999221975251609437578776893254827324536257841121851427474204872037575720630398573810758143410590930815845589124526625141573162503357955924080736974458694962096654768209191312533924228436470026413964264032149189559724709051002099360954951773873278806572266426067451182064553120398938691560921652764562931885610124482428114497842186248379059370446715595166257768913603278892134067966624719237805487930203629805801612153285651103784332571388675320096238550273992751488420942694695191329708298877846461541325244174114234540667491755435366816805913347327153001374322480283405871283473457141021345000375262837036231005693688088548054482589267872581078370582095984381192119051241672051253424681585808575207437367319701490773377292147943125428554143191852554584776120219310594490611392876883064521622297560077968882121471726319692286153010362447166775201079106941523664497697770164494397346683014410704775672470245491534734186033517963361270479245142895775486610337456113521823947860297820712106266210674997211542187577853314887686205443229294076215433540086855304185653393637648264244298393403212440803466083464477874926687059640869768621738326039142257572075039532923581398833146142125686446942014508000951214078715911208248255737495085609893387490846923617132637190842830024843785581758509138505038871855995494809992191469501067082264745691621405615165957257179599782787955083605262443690557694361428862119395390626064439444409285030833828358788774702292763484290180981376065494254402956804765274087868270892451455176085997632401810866389543486623869229648302020533838307346836890775900329510930920321253833033808036379928098378171259562535839893204541121532128803860413404259757810614149141776507581679285772499132187184564224180092537692160963119827459630505081597521660447176532921983971383143422251532630772393737010037998449178997413532511282427327687940090250237438686700528539982281667077821023913438174666536401843596937220214551142254598477309907543655882077279108750004721039227022039732352633904707493147564686815535770417832768496711556203209767502371793176512578605917753135342126300000701093957387117810263960654076158778757230387433987900909902103055288161723566447740801540788680493343006810018093465067171534074310526296004653609547236303433843520359209152919392686420918896102387447831903023061904665798929470638013990135706463874078388898601578563564517702480533931848124368697887449699976370090586977988828767810769924800570899942052454355947621589489994359533163824563271843912736490445738347569844219622690002092526298655272961245247850574257365949797000164220308053850477661263950935441723249902947721006918124626118093248468756793284244976969733208637275540141115701056681431637727563087977715646500590351418453193084962271631835078064338600212502812217558168707125897059707560019652825341070999565504835033613775172491355335763647656661979112739778320398890408330270473458401606782596014433709381599220679768192760874566048468452861407488060023082923252798646391318291783539511601682658913675133986714494927231561338876678474291884740613954983838550151475040742732367113843651390343974540327417219066159605328776230729026501723832137241757158909600663103648836925980297390390717984021904980011323512994942317413240384058397372328004345196204105811868774113532175352144231122683554122730005419384315357631673158868667967967834440534209987676556433807758386271341908111859352477233694537743080460332176062649475462076592309363093849620310126251292109436498027559083661125944590242116747636074205164098064954404801135956052290097060380583253914315907611471865984654277046580420392923323358495985921709317531414055835668070322213195294231021548608001017341518048826934615773107484321706310026170214484317583392783956308258127773825716259558893666609287856055094359041916104024341356358213912504722892264558764984371276307134404006176829745448242835964873032301741413404879909387358615651938951239602482675331381487299111553733078643815072726977567527548977527628384716302372361814722192962385565222058784776291059188759749458787139749701031727942519485842368673417280610955897207314836811915631169379313537641857240868131833983763268892206348411332290144027633762215302862302210538909227375963334688076590769097680448947416130828589715060160350807749804020094256944406598683385425803100278872789291709643757378777194763499480367902605439238234866090024087612993381888593983577368962134983271552659608436369986261092112748289756477324301129848907062187164946406251142805706226728868630800020805435402964916188255291713982923635831404620655014582819422379093625200249921129485249079918790116942915488742708477242115508609584604979752250050974051476058629270209688621821731478854171648160486364672494454256434133452124121990453025772053590381055110897072098730730094820291985522871587772197096577915899974702755537445268917167049299272846388697822644989461282859134109890877757376455268608737658693373000149210818428733768116358317498059387965233999509791472467537128916579144605748440802993822601022499062263011928332062877650217813086940231504905399934130861810343418783677634676352476154905741648981694558642884916478105016409204582421166148180192799377147066018687293592751138822178140424780107513294441791320742368624821107878352050041942930289386809538407641564171520762002477521196373934666910230967808471410163560462110095525428136948030452515856224499506024533500705207499558544647903410009656039296142746937236602802831136375062113215327074384672143608732616695936894297343651047131014882836175690229376118824503795771417064409664998762155209253814676768401587232247660654791241568802630680128307652334008165716674301206568707362719358861547105532794428359340440233157864527182333008255059978792656382710435964409042281234445188360608237313825479637541158276142111174119679918625055788604301709823666833529407027373439912866796492903783013047282276343435571524504209689464812342006210210769551032111096188005896954272833167695867780502240021460099475062094469408201271368779681036531267148554648700688720270824369477121686037956878485053381707788026097797518432041426607699170961924727640686764716695081175665411902796979076944810856595046044198975529097214393071541866881177793624461048920694489865280240942349035238031680905982353804657646231604469749234596948960505994974232533671439136655159390272354461462126344928989087807526944077008429129401760122698566885732251063797113855558599448002747133193766658425239814737827661483607807418482953769065534090825262916480558124669712723959489977109465756586235898625307578141964504210874634929132387569512697070375071877537837075701786100734958240707940448795794731466566520740238641701221755020510683306686096376841667191796030325746915082453134527046746602169650557786528650437277017469877203529983505370658610017570240739498013753717747485967134266849949104246889227080881142526496000799511430042165825457157148632041498503328792732572045343592557315177098965908648960940918923584372287907192492922631297855921105679250051888749535586859042583875424317998716238108289899686842209109679133299471826936816481608469524497817926371126302979844006857766174478476102618776869361770324810463948628392132953778852316114826944403408782816717408959498249263510833752130994093069339245443072233299692728561167139019298785157684699673257090421951117606842287118461272384656048081774597485553608017189295494580036963093800484722701964156570404169784805335266145794908081692321819998938318870296404199296711333249648542866360848247645377843031925708362957765337186497417452149777887598568080070399867952725620096467416223018432461779713299812089692423824073689222345576113968482141602449336795590596491138715789532715238345237964138967182459881704599247578172497352153277416698776064165452953798739993511850302238273118573896268906975503072338304096505815553817447033562786600268929562262886654618080826172126582751741255292329089609049191132625909000214246702756091275242249591320651101039921133861396003530027382986872785173831132856265846107568362845097703099700287078387254032268041484844456405937088493782239097826412186840945539165007119860734019891359561174605927832361217874928861584193952453687986216799767978608823332480756312127748469181324615591151498274956715339654430670330120953666218669689220705719052793805723511347739404088309975390684109005471769260183042344793213338454525523767981809099112025579738766309465103379181721479709192066253875455344734271117977121605267718689662833034559869196385103953381735418993312781596375085762075899510286738556697409492152081769588669382476068091724238930239082935137026427307813296246121152070168954197431124916749084941598834247798586005038465435301423479359729315726657108863234027248943897277220658368172741949956118361641319904496556750023113885533476146864372601261066056674343644225226233513680810742485967783891257822555610532559128271058400457844668723503936337681629632429442221450492946413214556581793525815382374968863435668306274987874537416863253687063255085232265556201086470770329212916631196619077480051800074733873240541180759578152293723249381476617983701748444301526134328205642695189170664230344839828377381714098860744478716210580475243932088249959068684205399021156238935575973213898579765887035963795400021119254913897322985644969539541432495068223680555672582664919897328008774710844102267360949938275873400797996338427136022322638571431257189748695152247134823218103106975597871156295719941953969436100792495969694182780853557319877748228509100586859139939974237253775651048866406232134157491589679909182786457220279494229902268340041655271570472702378702786986246834385453882444876174021458734782835615267788331726846145244702108690667234377644727829661140696350852167544655144389750602398753840003403474879796214174705932082586640801121383951880515024540010239305711353170073949295398842151565999148126412309841639747268343825700063647050499444036652439590282156947936271240655744405614139477108900392167379384946149754365827502265994914305146596478030428699351140084623754655929739645507492635329247666144811928046666962131988494508377643457166074103792409263899045452630350418952504567832594011792535935657896465029026563668159809146612093705755872786872957521647596142611081166596770020252416007958742420908030664140657814602568377056902070426012587818146200826734215559022144518608123913231659274258707118142700543459889838923742895554892714213621812657522897221372249982200855323497817918175991292608446019476198649739616015674557456722504252594863615769734345596042589743386895380683621365619140234435767045975685812895903782869376500494812973141097495600647050402782830187507101352193603344796195005475907805096817819608071677426286867675953648666420954228345837710184577220897368222338476097692350960430342562347606384044960358088077711306167410817512678906327406302697778542785640620233541750099515855501078376510978300549902432062353243438120571207381065651415333075810092888284956247059905735299317144488073206595534421807321450368377144933520237138088088000593120918802184165960102605855203450831071059701504653390691224819009304264659257441749695865846336808495739415638239413591772537975756050539473242380895397944004398045034729873375745649486088867924669087046216809365596322632030161637453770089894516455301281075278507933618128066144167415416038514411550073414894880072693902301550260412250126559520115855312118444249667721253602889470867707663702848350174712054238575567165320708837890851302369246125813555665783525612398636623806609749702887349428615039650115618919618773803801330016505164102519049226018096131601942684817067348887299126400492157439793725627769770974420126997277235770140897197683767050900205535920967328708439525776859816765855243071829137678266560131696699553744706366254979264308492134499530828364573204903757515841918500521675474602269556170930162789130503433041710728627691991083144512866444900248735121427726557297950151545654443596407834109210382957738560897065113731230590110635501500697608823517312940929333758787771890699840407422655978973070242402048080354244243208092135960192835613873270035688244161645229552579775869079741936196329457722775447812858449706431822991593083780518606856810757972904683523096257029079036753828505252009975548922929870268574080939647357636031082192591988976589429227919625820310596294308021299714929816117301303155292857609529794738351037845895603502100195450289111222506539852077978224341757492396659707980853898950078948438406671069817055084728403409956130988320649410758982950126402823468400327434378744387226140145464755707705277730912315795535607639841243142508771417068127932834748811836880637960829157249576268054536994194650334809555367772446436072853476344827034193231372180132152038096653072871006663654480754556066114380763067638524624554011916577837970159861588850171615312725107806945909103691839476545806095380328722444730604687538709889344257362806152355852090519250568512214503202096911069541208608823337658419971556100661585472845967899082144920293822657741968916490367939039354814482194740394835203421656563969285001615517730713352413972745857348192356286723540829064824414098443146322428378622408652015098961386924280551080770117899653097709347102307538099972078114417114160837646683088214943024770793156411582384608466553845028127812984131761770870466123825797310794999478165811262766785822359406753530483302733519046979560814595513180426840587525891361874252035222649717556177791499189171370974584616625944674445779778887252274362239755623891596038153303014244360740351587230250916000571549038695509556583419294220136667576355322789166134062053381432573804921460536983435650660309046174381833265309419056407234190982274733072704307216076909047267616196839347474948809641680216790411896113663707055893565276416527780181128386943708197230503003059062251297765828910235149454417701146382364910366269240604573402350940445176711213466881457215214066394103901375985565888666629984787951938892130452295876557146053024371646091820804371898611311228245361151714073372467082371992531056174220451983717913823571502201489759617716411872244053229374735005906403052425364110327384960261621577126607389702631443424507492488948963002281424488950359998210727619457532252082563658408314119584987964897375947880801974824569967686985023615380243778803535880244689743131312483037430301251621522413858777558431857714625671065293008250784509375288968596327900408085276891455796747412012180843899584083891377920734788197672561787400126545636678259210903075932813869480038943474598779364833208326795660822617617216307479433758133797935025433216218268303399974413119424202126300090406822272999017257568992194524137060478725344328699381991892246650425295963421009684891770598472703340839021749800362672939534971341222723744177789619927956677366099569550069548820990838065845165428005584571982338849642844944734069651684099030910420884865766106933052913148145798644973296227664819725690910158629132269711633249376718671554444207816383093077253470221856761077992405272727429878242013391159878307280780267758251747421611090628978145925130977424621348612729225231486214660906875952197158079305688621280864489550897851474480193055921060474698348819450240208116088365967084392506092943045319284611475362608573386074664326222391662757389244950433747742409503383588079685519142168840079933911643915375270588670077975389995089387502646268420423536693679822477935111669405961902909947293920414547582650903642032876239015253517525792647378297310448661114531475774120175210277561596524282235879172071478116311756849340839537359059017123235430786514091938694197225008160289219973344864072835126783013602479461253173547824460451114211041235045588300184283754075793481654446887154329703943426585892495936652185320559507104751570954542559933164482372311544470070186942335918583293093797740977506141521903268345966820378761564414039907109777249586623158008175622586157200314687241738519128439713011984352056260407043775023260275697186325402858513433423390299067635778029898795772595424662814163864837586224686222617871481257566730596607401890872716481320427484796833321189314142921895726387597577945831564654279515968956091337862124369993257938549201387558302552229906342087447556253500517253816259996663684221318327815476210322616910217468245345337333210351300368003413964901507052896322462892582439909803147407089196116107326418987066728945130523562047779667803179248987053195849785052362577997953232272035576230725894763815711700079569900971047691074092593218278395285225872131361670764115761532610618128874216339099896152250179419925070355095299979999526643907007369209751455004096650704311426104221852892621570669861852248911324955277656756425972348201788857508745886559343552284013500264177120482596812282940755287930318573208927051329206355104601367553217366539754018348714526108537732593024288924241241550779095695225073109317820641217562394909587709381952720444837675213011561778601442165259817061905509154147539890201956971104986310006905126088462614024898860134532883466773641211526141508914858712495634470770062289765557392907232488739191794581155243226772246341518561238426982765635727718729793899997157812805561982078147539343132202640071048500861250653070854075397987933988761467636099771542172022098324034766025922614596148485034740323102577163071357598541981412271234536067802523417386200149827983600714664094239316906965257257301043966537891700309785856177548202867199586742656360858849397842681130004262765088804021706329872259913613496174607637765478369099614044415567957489387315705571288247990761390767967893223403478894460773571043079585366510030412326841422089108420040743039359257039666657885267871097055271101084099341839298110176005659009560294977739615216815481087249452184673077182738750249975153695065054413883911355952829441648127060405919688953169620781432543278325317356305049640139909576905521337961335862002422498106858545554590970192048652703972892269193779866448721249021328736758194488913182878962441262717481961440260722315145652812192292002342893479990490099548826830336819292086808744697440983456920767224777591606462567625398359666361187221925945005507046009015193321954679051596867132299356917248322644361465713850882278943418118132997718306862090514243781976654894864731354409164141798833271016520491725280110965882302726070053685094022262205957917967679869795260886592269185160735153147522566365213802350972417685234409791863054763652560039400591560867176329265773966072206155301013911836167460059620733096292730714230248333598878787705260130432064724234018179175097781732528052087104389541954502026048254799814725118043548078378879934184313872809965935571876459998126970641521265392684456393444263355410281170275560461677324530594136169006379551618035645548350174696872841685659448988549353379157406980688179312311541296265049948709849332847400488560999277933860431157985407979666148299478822492809121877533742981182377664402874711021486326556831256404382152558919398775843177528558149567035668073391836667581086275988825129603868062626076085193222925779380388281534990139251338126012461397833059915151538211332718307765807096271794538142121771109273794603462704221879104635917652572733264118847434354303953464308700475033010769878482951796280316197992691918501413936356662384253279849633611456949301836732220573888400206189962588870316078100464286308599120009543167604819137272080608319198212364181080737353306493688087357935536293788679813352804189158938513410363700095540741326015947466194144209500427979082428960750799290519423934040980712162116307993330753814883086380912114614989206401964357295148933806560209227747049006559323069689062142973477401861539124568403598033810169081399558310386698217204120256660992369627899370535365721658961109131809054472917991722901091132018930985595798274350815060970937883118915137415711153638259116815167569860821540109317828365603896688574248253818060439568536153397330227091387150580158154910664862454159702306678766913895495008678565807763754003626801545093108632179862560950115538382252104291529803227982275726042990553861984539299784896386852592733604949075849745209235381787538626210212423339189143952423108638482616163247913984554022757315017901369558690041569694791428065524490918585013553044300473815738804555086730994758006623064677106768115564559418504721728239424931067456328125002930763189035244109437938967964338925811804199326123612197854508782661363512668955485414146488044643965993711299636341242605897397011786849050037503469339452302780919555331107843855505093958870417461366747838548689837527278734553503567568980120951716794786596748701134435592579638957090203136499863092937015884234778971258041129471422454148322502714960482258867791128524734697905372744900425506588865914413007347361108046915990121032975840923580729809603894437499980528040546566758307980340163544873748803684359670831674074531228527541250802812751750582973837822072615428884478345078637868983758327564175746914481892503743217602063400339107263141935262631419748283074173712416746482709980747340837941922919812077356675425817563056722746330160236204148644881251450476920665161016704797901449239023907980754233473599197856703749896819264221508169478768542538916804698877953058624809343779451822784997727871868684383277164204744396736519394840149936005154461118028639293329243524691390027975611011062161592015479857940440804593726305335414580426608949188230672345816870436561415418300820563748741742623626019851531040946974352203996696261799882391219821498836702902418458255711119355354645663818716924562236098337706096499512828043623675040766963693252662979111182060416710972471490656436633798808414054316937346291787309561113400999316406401531717242404283321318846970168326660252843121578098262908210026220563951146908712408022626365145610565217712927719196106588352461641113101169717331051606309124610691673878967398720391665998069030432024191716504526529155508004804407344023990409772301210385063580106243242633318836676759193826886480332832881456067651108663467981408527508908847544786368722874348568190312708797553042860012230087904228012248547523838998756405437328193532349192341702643105756138545423998078917374750822522469635780053956517513270056106085976498021590423290680638246845628860666549938479120539839089012216856940835097690488522577695366941001728982509564666643954285243905685282530385778123909797525602268400381343850560811300836404013075924565898495088152759623997500734554914017164642126262918925175525620851077722329545925951627956330079160080355306291376185588433058890749016846530124382787091202656586377176528626617443943405667086063989052707523235904777378911825632677984388871216928558206798797056495726843187681066141182895012379168161428795952147047890720928154102581770256027599286629630757714230190766999437261387446148291104641378087315340105763732915546424035216618225711606564727718429480864547658132464523217368267760200887408011955259898312329300749140238235147952587425610106438251893116057699171142890850450538614742840476781318426851513114393949360519669753801084220687782199929371161258618977949960643544605213883625802699552213554219736172816332676280238778054019971784771796674817122375192233217346831675922760982929546848441186838671459580335012907909768122978311686935908604209547410972831333080853659062535889078954821183040524114224521106352895743233794965453435111208887035976206549591354988484854291641961697324430425562820991861506141935668130869327904826037664355407904694433141014193137740575253965494602133336210404805236278696047611474318264192466628033148196523362091053381851615127724351404207973370480123193634689466146731333048382691602440508044291628141587652610575908892089175501371325987653653325732949921174707462898059084882157131710438307643426718395329589915962477619614980528160824392365373215006913571065719540198771291102067006573135931428163550048705774833048847283205344429248897882916682271510028006521434343598289289301768864827674692336458305594702462617593067034363385753618001337933368766197445593970684061122054663597166284824230413165579007639807943792205206338796846528785918728604531295383904263442284730569066158550837157257062509947748367002456967416440865959997489159714971563306670976104424923648223220864360836510714300608391375263674747718904299755410227464369431422468724382207586237824955025473944364209339789532719748507658880925550711462699552012260446283371967463012531022967479498536171519463470433211767422564910983155379755121173069759162346805187336662533121383573012370382409666597944273312005487802528432651843045010406571578177654898722856158175661232915970749383715253914890756655785039814712520054102885345552868911684402601633650822722433294022604511465209783301598482121807716976162269834854610376130495128016674873694592139053219755394916842700000177525017512954879584587702343321236985945879868734261630407251157136002287956727632090111499009342875514217723497776225018864310590693764934506352923488249591488154753834777893372642193036501954106544535914645112528902271547187981430059241698646532550644371115960713348051490394934788512406246346841550001788253335958636610705650053913542759472832874065700259834609369968441592264315117469990095281274098221182401501542080820302711039024318483528071888644661972684855738003994087063112552889584379808962516003803409373820859649164188990094187884833833736274494978159793004091260743952926584798693811054273921188041771688898892951518014425627100825134160146077734884779302645004121027339284441963702501330103761878246153105958526311558591042023348529244333929061749365913062073349470620782511236031812407202611864494422227074100472195470883519606194340834039971275768551069899197028138785338731664279724221372029841393019948507441934535650646180815666709993697995417051977288093231808778166090038524369506719085537363097128394741789365055190547280948859385499122429815430254007534201340927844737061553911201637842608662182714833815026343134852806643765178627045107442592134137830278370276896929866275934577815164489363277068725919787222415442852977311815744055397010732765372582457481414894096812748843620957807268155537985781161269462248370054910111221116232596578505942552826654742936824109912858127318286247620218884712934092742467814007146522470980738454548073709121194579950765758427047913583786840835383631279014714797165813611296434512462111637999177377554119241420839627739239293099800230979269304767443403552206740112702591880008364000817553895621451724477224106386069522217674755841274986384550661492419275002559501752297767754054367325625957656667676797883140351734013368997446137870813871678528041411997715759536365841503855606972506749203466691916824538299575519809724613115023540666811648984312588523628929187271271404990938042438725552167005256118333828554928895179735777600672587763086680888535341096026492903280176370497506839947429302651599291060904731492322690993751437105054685124068778809116389617339694940981690219341472965238807071272739003329289352820338520039575751229848171597416434321210090189623426500326652034975386030289577180290730426809887497217477603021653134405058628365321949042546931663922872108156864011822100768026593761669871126384307516488923803919536080790227571381643679672802765377351533839667313547186404388677461742416086885900922400419514327737415270090909979534199793277930906964422847194691803505652499776803427355129880971459765733989112945593922337618706794269649400091742171559673673415019484470429792211991930009984470033103082305751789179462858257787440077821647113029339392926515361253883381803751595952105584550791979980381527308757857005691639385564606792527344580246917463586725259429119805569480742086040253604542485122084703722225918977805878035294413412695135461114147462466133008747571131724702014270614171070905654419248585994000620039259355990847117990854175779919385493736227382161617620972524440350298730351246768223184069447846412675872939405758254741156610186732984795611748139141503694374984406238880356192800898820100254972769603768943857749279191961734375854564782213216815593679203494508333924436620029569953644220983812364879430855243054712350397715489012379509772581876544344389688341568560414546068737520172627198507764482370368545749458344474999472416948976102034108210506173342059033688281793977414319698082402785510017086858933891169659106038442237011982634165028892765150276072271969956856841394307964289734183760157453586719625975560473227362408105727645957523140455935844995968358111559142163819697956279352475707847326484135897011228689646508347466733371368550925152513588105138977636235659275351000282856867901023445488968614974251153953990748462328862374711619531293960188987369029524903803192882639471224609053784579610669932757988810565704160165728760667077618302526246616351976282526633649036907740806345093901891715530361784547954458082214647092762177993687363160082232766142812254061632977070958817226863532051702323285334684474690562870329534388160022893029044684122826639206222981596513149710669801321720652199717918510415115642384210487317074824071607703704954436909001201574418431740502983352853981579596169526023840585581248195036784668705126519820787646060543790169414781588059217318841872029566034513917400378233468322334512956668960583044728733427483675276612666223080792517910552950704299550202221818821402287021093462061612111223810763401324598760091806981871944994134858365100491899004344470233540017690245996227177267575231472641368993459670073437251115361202313149853352135337375075018967469710182018377438151559332170420543765610911489086824248081351560989510944654478879443028682347673730239304272917559344235662830309851774268659341085185364982668525462809930750673806056214748299955891828316188351199934970313052160041895536017762361739661650654792994373475053351016450709461845922627590737431603286533595887070739994139356510905691749196627815051128267225413558607318238463070110018755724681878386041872108110254372556493254406787894745498991207098472872179585122938589419702409235244701877175488747165745994099564690359936014416881890972691716628091502775628207749300872966650836220676193571944609095753573980978856098640426675134863564435223143233293338432662663109698675519092239063060829115291568344845794233387683885051327053119831382772039882148476170739329943852863449461724402940210636437821837789069842599489842989036496521684498433021596622824764305962812578804793832377854688414666359010662067399213945554036358568120436460878358027123447149044808193513715590599963296226811394383982022650276823892352222644629468851440946901037362403995049450017938555017915871108101401022476008539149871650988119154942931372218223690318157686569311926914560757358809380845675676829613014164708710157635807322914686670267844672979337745100753818273749024620745097889220848336233368929808707433897984237072036016467988689866351878043179591182904369041429750066085323720186836479207742111693345429193311884115459612239422537696039546633338527317991500156494201417411136733593533468075893460505018055478551726351287558086096911214937005810486193786008689496858303789642639153394389660884224487087826486753359782681004142793639527431283193673366541401868278890783697746856053841346601251156088428691092243461145415729678953891020193966403235115215667770231752947072307105280519176355515282894676426630909544619196583434549205979411719947630788372537774474245665928318028398138040147075793366591762301950655771024801428794636508311008840624944000709910967058685015694935643396874152165399770809393488462311984406725265509476025702910908891939643018171509497301160035058983050171418371736716051613183314140698037251508086544141807844302228292564931367195020301997864136050692360976386905018057054178131294222581396020698383998168364181911224122072036296481384363418953116003675581415673656219799868528288925131365040966762728562807075239789672702780646403353866580354929821073635339716892959816145856303412603796195447358469216429122582908642356144406581822522051640953990275722219871933455771370565693179435265932278260293301143972943877792760172897139042334953858627220019170476736889908880288582279104209241354050785579232705003100570662346756658212539876563387739099965869945150815204673661055390967080341202719382079083322189794011150829140567608518487458900194729019047077205189474010396514843062508573568330808830892452855615888846823682214966862382701028547780027698025166082102947204367759860959349292546977449411365880359421492903008217903018026518098673506102331707541681864852764488879507864548719979908329832968752649888243886217965323755116135245726252045080748088068051977277978836644576942635543548909674840990587271178570656524786776756221538658872846855024640992158161641034196790606825670663417662768485104740762866415187517468763235993488067541048602989104792000198019074193370579126443290376168231449323876640101424511112593392708796012514358633023058400508538333561675331869483228815566612951734388394541259378515145614074246120864944598422090058836273224955137497892204483841017488307326421425247742950343940035329071354959882995743111226134496817654786610952194852054988731219842147509751840613766078042184189359842258987257004232822842894133531325398014426073793112474634387535783826008804967075677312882532094608431002919909473642839809032943944493154274880153693413027921826838035981172516233579105159030902897227890881606055319319730396778063936411751883482335277096770886385648787461666343977202697744232148119521082271608276558883099775276412485172360668475560926794608534011685908650384155816351078639897372508944160771395140130786559476977126127720912592519075015222607782321738085435377319913324245218158104282378068856069814173436850431536625983509138362910207193430528373062655683008631075723684425830198988568359507833985373091642803087920121597328853638274678901788950245206588300545436827005614876252761649192995206446608202028446891844953007637661075035988694729394263864835018428517339619527060410498443573896138179222174505712620467026367747947867262148085702287832456671344822586754732636187540701214833536380642770254595115553323660382293812876015298654209634859412413230435310713264231437291631538839016744323831821421501493983747845122914893967291396616960046143719279400377629369696703428449866706914862006538550744574006320392062935504370536486013315827338506486997531965103654073980353637249056937268525587009699874040750007657553820320447820700843683983616718552972917571674987039576659505767374830804487188373283286551445110994631039607787929576829637682828708640439379630494175166731655236459895624957732568744666472640536196516182505129468332360863112991702683266691883448220907010955094764494081992070503307321414273124966327033103144340841532627100933548056218927441838680270969132882791004051835202374193632046507307258286990538561287326633096229496037190028193543162895032790950006387206280218640990938105725505148226292575458749119951780660764501158160019959116900280204092153301109746036532370108169026771515183999200603165570597888848939154747382421129890263486523219741787400712116483551966064914895301636676370521648792197294260259223639063779159224911135739227543115161935135858853117746687260350649683127916396387033907127850390571352136767091672638848437334923269925928825481323517255517185873027690301068016752084715890406608943083904517715593654584733639128889895947635703459346301228025617195908317495982046213602075726023494552303274002916272903073279483247016425082322600607645269238224096614456777509322700202869594202712115693262062047210541371296013701342793858129528534039013182540902081545311027623799560055199685613229201647159814312081664998820810339049342417259884507884086109353026640324391893168070289506235542306182298912393783527754037048442393193102083358008641127602237894236327301844468614433743996550188961602669100083501049408666177407130467764596656427384703448670464182122214255850875829892362219920387127649949223537424051120946385308746744623728360381942715284595430346010746217164367521994119358349735368182371091136183090467255926257747584732245769452727344603449412691400757427536676388336451610411459433690910918024242634938716071716192624069518516536636733130383320757341292999159285850222765707001527246911544116512253760294520556358606840175733224305333411817634843181482992579267290696756129014910180692187262000864145032316054712808406502463646540173251889239921530687411099797871307940611826958156296865400045694890033145959585475850229475618471324639044194359578518426728863669957015418423860586702497777788469384162565312923959931716858853958586936628397504316750589281354562279285891133524837780699688993287023868994242965453381913837348235373769417430371623326742142235847272685388456280771911086950173012980946925410069983404276363216342085162427474282737486015742939540125096748964668581912968287772429091663162859564367800609565743389102596590777724590899122480989402161871666194418632489999433820391676669058009803944046582152803532969906614623900345587252528185654231404764419187560744286696960902813420561886141777458437808341743286412371908250642101548249351014714076778591541091981338083149636914654242856360006365275557299362791886006014897588090116697259216385994571294794558924952238082656704303138929309500977353497946768231207453065687400095986709833596349295757549614307909407446302319672263366620239626828332591175801174297882791164254388315632129534589244820475230482638639836285766558012581759735369968929870661356725045202584421474126194520127304715135997896225812027957772107204175058848263612898139973103999101298312289768169641929483029064014990396189626228496766936834537360984812869990029105316213881015513438520912714703507064210715619100177877800118319701123252883560692363579511474856317637474715652558237419249544996574561365654605057968766640005380462828076859305286846250141462399088964423150436327991204927808170536825716930844520380116310030636635886846094639637576186838888389725081087477493983112673766486702797573597816872571409889210234862016693610018856558241218096750802964264683828884163114269103434110903087406359632205568437040294505270296214324209046856125202279328875800828907554868467451554293487355192887591104737599002177087086218901725718513748504223500832528009703850532992208160227976724371748012375684440733161010254583196702091806508034925754597438743300215484980058112011544615509225300212376973814999345561499851086576678788280853259331566084099054923172312144347832706992594679282154733348551730210822463460862002500185633586347934068605061701550546282052535249372513043453580800264007954595151528699883122120237099101222218700423676838407636028278354517069440617078595324009066901834488004737910648561366220876745137977758046664888240235328584367613076047344656647263018135082956198024704590903665821509528383789620208897144574151209918093514698604977447709181350563495854627796763668148310602125144639357298292725712821572191680117912776608222558571993690339182818392605751139086196727866799969415778847271063112943530907149032590609172573534726889221888742677551386092531194479621482621393795698802032353755272184725271306669491103936590881071846800839445072842017680458549245458898265679350715723073048230889079765555078905204387212591762137617767461950131013864220611026461824262731248569816748054858800704560284781559535148830563029277459804980045116122391617722982264514801954211542917653773708829401509353923609196594241975908669418508061062434923124122518339356964067192602745106695346348685855893930055350054312729625627409591641310434580128391183292234130745605210494919674016878657991441781276093511676298827101405609778225417066444254072114359089409086435495210181764249513322578655598265356202608472277451516154707132141047315736419228366251440386470080683690724059804794459614626146384260683090899627384247640236056993157370415919880999350315369674133870165639291154155518793614055678150585187070416187992822545218269727567931837703495259442877022119643483504521974544570129346122760526571422246845736723620150263582219023295462270407081892828712937029075303449517578267086130739067296133905737589646329921512202236292867305896202333515324466708314947409629980138172248529932013831897689343221544098093174253033097483159435135507647624721124639311075532631489595619794840972904521664190387293057426899643836582682806917267285173891706294751102198352392664371148531148101067041834157583111021354503136808071900974195768464149880752327701750350577573167127239605893635378995791367440380711880767132755850212219685584482488776055148603562944527121424241778525429119401733115348655551040382330779111819678506832453053095937776076370876119295658113486407297730341983095139264928876661504479721544182079061704589008455643409939044946857418683171706140100122423084630570324164732864913603873890243903433215911205491605011745619929057946841568174230483484282703256897057857594320763717191346772943494435446551049920163128462415989420370187218214237175241605492814877193735774504783433411429354645071485713408503290992387958158332877507923118500725985695573702527107760372086143871784074766328045595034161196205350599193468828123702859471693843134424351941677296784888896229194985773548867548930418153695771034786658806668005076033135335061982306114603238532798454695227354750392477027939840843982907790813107969429250224846411393663661918967597304636061751515808684052188253448930977864136692392358912384664307172475155498894191388783980646644746945733206481063465404670938416512177913265453138714732952494949929395443135707238058333491001243419605088968802996357743480835097923011472581278624481456308262394411002273219408285802643019200402356030942660630014623779186904408610015543511847880616752640605856077619488113962925846766213388691023666465841337728411995791775134071549938859269750271057108321207388820390557158531057046701368137975329275597896518962547713584098128027088026591565096944489796178442072325428258192791408537763330052353092025802047322754517941625887937898169092199492060773031672695985023477148959995922006420867858215502477768392083675070814224061168298815064618445930840284037719121218295377409878099772969004431247203924379227064031425320069634491310801407225434651975851173198998985811855260868390320707334755621307623437686387589650298904811851351561445018743962320316553739738024774526074217059819301477300392471523686843443357761176853399879818232806303686536241887565167572862975557596196630885075795559987526638031979199084464217898904565299824482885475827954071574211584492601071203494935119634858312654519619888353034146225975941738894729076653474724074035882702290172269616738348802747833980659571733320880170366340498499236553109293326758419464980537909514244411144892982372424666569696305165328737882124495289346800448561344319726478961539992442951196443716939272158045197469890706986405632654656912159849792137151173231136336557760591426467266383602857546266369594489992266824167237154354736657873003629246657232403602668339709096656565376370000922110444279633727389957137700064610854794980159999262060805052678130143316972468050582786231244782567581804438733404215504607289823048959057972027182904178617749209467148982840294970633563248951276625499763110030640326615398854816839281798181709800527584170928849930544614353177706163843699006631463734733589363786308086195770433683297021293767691169987175300961404551872043300806053743382301061022691412878331537833519920810813508808504140249193498770523654777449865145733645748051277306917929307299245610449812201350064676371359516393187896414650753531813047924163047481576078060660243450878047865074958115213427694411590357931317314491738318486441806203322386586684025483125191429806616805335724221913691352540635992973207878181024580051740018851198081840855294321065866073419640406363097095145892276024175482284081673526163126011944419471207836188987208543628310621500579303477073902893183837642774390376629224622692264486389292535744893023500382338447658166418258504639949119855634749708837703537828428158674303975067263485014085459366496412528064451162987267053750246228566519493288111744783201311973357055970719415566559783667270052386744227600133722771933661236853670055738301642717655366801573773476028999355434284397851467425212832523062644696150286961698727791859671890320896819252136241352303586519738343812220795434413887841846681194723465678611708850911703439942967627296969010214228946333619703835563065799631233369762351023323855753132458566872433936895882471494359662381226738557007308445749463337503335766644000181123181941456534936299049575645716081692966451800716470624738055763047098475826237175392708416725956791677736069294237923828269646332744014643803833893600752652255461406517192091956251576488432098869584505575203141836799351021184821556087997469618907177331138575182496015771111040841506105498209284869627210837278322525816613871593662300514389406183588774227032568302194994089176279777309609183140752008541109779722476897669655809099515093592029893972060302818645407422826024156832703176121274233766920076581407243827272931016789417873921594484413134749131904213939716165010949200954063177644567899295673142044527039525560832554832100967852877593881931378551793563300583273037302328397953846535749476135125183244167361507302254508742676648633402329134949345329278683129060836355635602432349075018335233096745438702703188455194155775765658787126166253941946281800060173978216931455142557251217135883278342770778747858198211731285264320842191998770026270183605483657867992227053201072788459606749016897563925271601746700259168434462651651409033028462091078736466470162390664885110506729878206907697677059353639451788439624455849747368852752959530274171315006647244409317916894572442954179081955984150664378085111938445747525531352420540418565836272179352687845799453405350097111990816685191482558185463289665683158401593251832709095496346145621377352761606986763085272790149260087382288712558963508104576793000825202691095348041083291623837721595004162653702573197599281186678436343385428528844081836561204546929071282834883342417626908109692214244411439981354556645718597949496833248317192335395889306380916313598132782034537217305511253707723703282543368827868664089299651308658208666478396499198894528919367071589690875037756481181337787126792477523880691351415484566783827234982914408455706333994809344473864340292682820723371404014303245445160280032724158272810997604276160723594235662066507690125733988145253704519356033638247412721115716145852920852709725998272317741776494504496620190400790475347614878959774239438884858837969463253864083618488880175981841378943615439947894533392187390926104026399311355004942114873090643597369956197289550074393948524559091885687618618220647565579520585404917487253939821383673410837114703260367553175136091714122575388212032195568405984188354933333379575948472852629629783603628042004130999874778064316622761521514431469855903878924095275552045652985055332498658866326365336809709965670786822439953216969732800624804485747293391538426763148130721875692359140400582166087847163070512446550357797764321645597826781240606177410389037265657776952763088217402085795685324789954437523272028319775820696989839659996444052330064856285730894394239954117133444598300837510700433242383164266658421597631774434036462945631976220098162716014883336761108492898267963726424726916414040643463003982738111316763772877301759367916701320127829127926377501419931132202389487373925273912690849900968307598332077529746435695638484933041234490851677856188247387125006780049020672244960954417868806318799079266400621021933100017828394036083308467577848236698457130105353935198857542249888481243150708153901607179562086177513007776692534431232956314030614304803526151980587918965291773242784450737314863961182659037844000652979381459606342816724480226778256034952773250154219226161818289953086638111491601095963755135215815583294562606798435271588844149962546625889663372503628350946845366595099297953865633525827364784991707605391090414853335392288802108584705876866450751344309178741741154487189191814772524453435619506340240452851205940187729425885244579915112987256235308146911737485037537596678421019629591604734292606991687805836689776535547224788013434714434997389460200000596016729475919688854327059492354864007939581810367790510362055867774364063562440306088879134103664709911400226870880704302654292223366053352730349218357903364949987485612214773269926980807305814196650868437666383395958702200192859419006487473432817574107118857669011294678523825882145464755635217031887465807802611510017741928208956382552277212624735419844632700025598842759274608621322779149060453061359809889979847522204796765239280974556737437278223041979671034623945762127956873805124927054389332956843451137533162377829533727120770460284016467015047797456568323793519963855998442820581139278692862266105889811783740400866562533798077199327522245198918985944039649889458963217270453807590023989707888710228550535602022185850056787683405244699792187537444262043188910681794528809297234347305106320529116293688869280390664831114241011032203325856656177837227394017036203052153163573321334793365322164076642500559343452279517189416527115378625747438255354444620054298165701910684046951345354834219166283858912294699067502446677760020386851009524759758382115953839975374336359736279801638666066072951015235784690314605895942098274329245383839788958102283515416180473739692964432592419212920833511948306834737260071319574183441516422429986839886648809677328290929249804280050656121494551360375781024458252424615477362525373429616825118044842062642225372548341421592894199853734955783858689317688999749827574566102012589154980838075788792641220472585908895340100303582219725308567184184249442299543630257030836926868581155836884863771610990023316076490240176830097699318744859618566647109555962622405824865332232910126445845534897144183456633842889780204244094378982202737867235291994307565245613193165797442333709533317861039824597997296713240333076260603370492717011074035160394702541871447473979824095960947801785608339196161906503611810551172371685394401916699346585084322060162855389551491760813046507241851382819738656655135975365989322061707817226424957468641256088076063687381832730367601038333620977130616031442713927188901841854042550493638104635757223202131940321019687862304173362310050210439182335739482065426987789380604110326005592366180000945421491986463101411815178345480352928839969349065497388305489996197091004638890478908549900008593646939363896013746860756126447815547376760507365906883235036150482782311720079880683608664771731020918008847015724218151598340867962627930651434243015452076773197095836450734783978807138002681722505917677383620156083546553785968954025635238600645332391957491109679739842872664812553701655817900651567364248720457154148941119860937798544679389636629991321597980029423858002502616051350494563978408457645837601032752829211365303681505059159137112239407488134770498240904010297672654346724840972758070910650117226416657286782096201820028169416275685771001128422698511974751372929565581054766309084811372753999877210682566323911390331708467275795242288666573408572875332298254912427967923552016533581610286355810105166227066608629593646013023925590154742905579698819576535595309029404008626156015596517491576187068277682171088198100370681399027714939116834528836789059295015678391427159228536314651540597773507127480099698993542931414873715629961958414599249649418129623885968093529121230816998369161955471453389386864384105371204699916470876306669756908044484931134945591804625860268088500144237241118477840808251513554169357431935695131211593720814068562506274875499760472384074539975840559248023889380568806196433973844388055140615952351002018437947219631845285727959200655757626756298765536116324523554148384875828270376810818254338672938993190097753155793353946588723131498701022632412690230369501715272729180779068432193472583492547957296151893128200079095035206126930630745516199940586749180237687044999266842638046184165263288232214770648807196044905593457140021857211564707623663986697415135789172559512550020460388102612192097205560421846333108835783478426723948974573521358672559378214194989106910771335666005821944641631173848846592975514299765346037417703853762226599311744731668534901313346913048406299249252250032195148874814473598487626088872474823855381148389384812200129514379741450925943010328326324244925829551711714200707355539439307617023651548644802243841403534598568878353731133601082991538074543303897809339006232035287081277394717713069685396994270252027507173846892937516315393046305177756370369332090561659250769470495783423222993305710764736055746578837599541751286847752275205975152117415036522058983752807015336395996860949461996503501192172218508392737065552764420070412253466644445582155045191640623966433316495495961122389511890939982462570105964713150511066840062792197065406349732562230382513775084766831771762215632687980991742828025845467890555590446299460961216272429986024025853058506736525077027014994790723262474689110322485748801682513151377063683287841574916692920707688641095180755931481273548005200286232576407669685415239958369184129849459666918134441580248536713856487490680674228916644497686425930064076016743130779571976566551880727346704456217945295312552108555351785533369426992409620111898036306229957384029268566179593225689946793038176923299154145563098651380309476045579390686000683993082503692826404891167362817596567759140581271994328473938102661356576864256800846942022338050840742633011846037718476304264850652527135033794350413650297419447178511444959098394030704132598431245503222172403903174084701973336525760591065016211729972286221729795864584740683828780672835294009824306442743763958151141199737082090251478888182973036871498259352059212104134836464918578454782980020425343394483126569709391483850099773105551397998428497703159777263838646931994840978454066589883892133948653497524538235768123427442901629535145419245842334463278873211009938248440418200000052702786103892365550315268536788293910363947186699839884085921736417517390077609308066282155387672229371064704107840730212758264590284287796871118774523837885049293585261900932979050789560001247154868295571929960451500040568167897416377373740135869772756965886799309912002945436191278775391973500160845939549070605204310097923703846126789687815568014950626666432845327620594495150926085540714084161183960575637320601234384911921273681357737114336728935493449584827580371118192834240013052273369730334651749103865403520795419180694588210646365852285304401034715866585688457113702484404156294251453344353176357812792413116007935741826242176933365756194402099752026090841848690914570213981175799232617484567854252594581526809022168391614763516070861652274365880622527792571023941268245394495077387973507600729473757839405347420370283782335488357047105766232429117550607260474654968433205715305667046139117061193537588954247861579778319505785020616100278201927349604069286928324522971786579447959402414246431732185598908906143841789709144833181598138113367905482834380766073271694409291034915753728934197022983136007768252632563835709380307878877554375470007127558570837775899355364855253274619647656773314847168319794072884045013638787256880909827044597172804440144155921642527273618253676088113281451949642702162065250531414601057822976354223246499752170085951698238388849186160246349595867730303481861381647244865821924107131321274383717193588370617688458014124054346498456350813174389722358998531260486899855617835452119757219588516062563105564803907129082017435903155534769126732345222269088874029074586777595873023566976321172504595316503498310965579044519268788480962095982719073209019850218597005415001260817927942343565367521089788745837489743166394385723453626485939153691029433906511683002102590598177578283739596078088972862566167140619731335434669096594655168884336494855384828647451236642417089679434305608338568769616706946259207286824943543775455094527920247484409184348493186909040369320742035758125234511743897887919632696651805879051955568351288824809018064031022152347608513006161899355319445914966370222606495988721979080929139629457880454895407234405966283914316842474096492065549400968160902917199681539260490718197328797266298367497942146282333860925018490663964495324564235984523313736583219719958254450220393585525236089440742628636133315723251809980963062979678642209964854904560470297613396776055983785057323368472772235352729570537092307674320598490557598041162880831446374175922819326767656500600365641418038835934701028493823559400914499995236030950882070634043171076160439935155827659594866352066115085860260387437979319532354752843714980137453608118682612719581863337878022969701589179056371947334212644320851675941890965098755579735648605155808751407206302678914262464346562264225382389465289720771556665531641414730413836629056886016632170419992022517191978378172447493153995181915360240831888065135503449191237914383328710956873972880312310335218230023741894820577140565857429318284792330348721484640416145324072991923274788302848640162921848265746138307337387833236969871335452488372340823671923440766359379409714533345554479884374311390337152521820756957979640560058845324810802912075683961553006357430294943701404488433549617557378410154952120621604364386217825965486175730757376982273010446623085284518107111412938776311856420224805035055653797586992555679704310318152924407537939067013546070288720801014256618421873868757931884882279508951776853102600932128454446851588505111822394910738985725739339863555319331657168315879605298496049179327486550353233893263914872088430649530914924673648144606374422517569605281901060590000122910659161085043088626049351525242962301769874221909765736263067205291907812173867243133037959531733890930338227652425871814222595577321130097800565251214589288290689375987849090029972384499314798358282855866821712508935233821406230129846245551930802324467650044900806666350573551211968589901811412395236952741311036093460811271187184021788522611426120671411044296920395644909146071825935169781727665728393794839014123142233555986697187476990125003274185456257043003685770778840815223585377750263983595936771176426192506476503625614893962015455559094456754199866219472799634243855013678420771421675669126685189668166353286800077373551312335211586506946826935135242460400819198504180681090224324662742857207309898685028336977794600533151419742196899379955460036881445122610847228331502259452093850297998299946217655778763778284121783454222955297804942446529962870035052330279773177144302685386530419941994651973102303096338775877029784370288901505243665285750114365744815430366285658830467494366048431209055908571455085056873953417014612019906205483655027403949320286620059741055311586549967988914532120740482600569040352606157329016005934218093739880135967310215627252760607819363512740577831726537157544347306958638430396115495202090139259926850411302726817524104498915495292702443312868656602372469692144369352820212679272543495753875593041599044067441038848207180091823046040748858809543387344002857988238088625831657768375629773811491278761419719596078751780585825546133619481974648039358902045599387477712067629468235115379005848676778202738391492474650069378190347284742810253022520278018986249794889025267709886506448652118229721802362628940293561702675369524159394515126693014736922229632655396270508314047750788340837867817694692645689330240717469506579447365920149354118644324466165306110200027020465968775195273848785595490424692396311083538275382684021667522151063452768432751935655192191386376456090642161040963017083917560527116472534270963867383263305158046916938798399927582056411563017524747428949535880193633711223870856477996010419429778989506221957114342984521066933335226214228787458361466714193144583449295017445133997836080721528633193361936182779444162107725203119217632953770131926554970558946516783516872472185898217364706562906414624700271317425536145707037178420363972548417431012903199782096466317624788903106720659237495116848595925311348880118876449973931198407347629229842591484070941694938782389626653926622776308004679818936885604731394710632645908720287517831990836854609303566132087357419025434568898919586782421040864630012809094408995246126080900099666024475410770743709573507390138381044419886587064770431582268170055729699596637893207558457927152450551341671406998955306337011351926385465991532067239480049166341082401927529797367271014653093054038792428819658706820988417872962810685663225153371672891670975522525597353363014033055904127689701997256025044614985279887335674237798023922880712031540377247674977151181338747131097293501957820211722304381120605930578462796863850649856864029664986976654086407664680382816872522369946612575250250488335175391846190308356231066768196114369372902604941139396690610042124432103403054816414704623325021613429823803952742579869689709911700662278542108182441080031144163090962151049545540853017742483243814254556824071117564601780761147858886213092414148007363193460232962893645927869686221396323507751847470608638378910277374821992280720553783783065445547438453579088627211977980644428367524013767930543606177456261022479024286326735838048489344877823975276449150884852298416964819265156389820654175190198186362225173926195259086311880205332486306425569166676433566279670576781414975344155255746800991365367121742306328439874038383710862820206822341473046070318774801377306414831670620266852848823178830049820013763056763698574860949100722304488410740897636201463080146960832208132704169767933500112469580047888450081842665189769197543672086660149198486740222163821497765485422880591047288899884228501562743503305304029758543638941702600632639307062323649941268736196007898321630375169854004548785243963748720264879759896889445504044230251773590480017443925497422072917668582772770876539115122617940876050904519216847413442734572524823808698719448168587043395284344680441682924161963806774940382606525989634229962148514741609337695769170870809381514771413942856648281506094433980917919901362060838872120381682130780570658858734891787002472173596144743212772107097791846582024806000814565461059296279048925442544181031110305424435986406376668905786262588792777946754270282175193675493711407292814745557980866818052453407097554763835903024453623154447076373279214782576733884884607822446238086402856044900741947323634403585332510936650068612050047336489412229013143950229506271223335739975407796097280137964330878326395858390352768957137792227257652349719435641523608648802282129763535185220227371593207047647048377047360993950581248714043318535808259975496960127201888396862773352834717451669132396620172660094041805828144497992023930573182185662939947414813784391475607897599558148443770975393575260779637870600105956999760952542314073525046460886288355777820843034295011971235713184990350330995936879712284437218550990773778866127095645861028691018396477845684541484705858497158722471562494290068565989646322819063926220193483776339743368739491737956317514133037419070099368720862051926795057218526215587150172941425173203349326524387497589159194044487883263957368491552425168756184218990904587986773465449286375187227074396805472611620067704764457247719175025479088689707492548821516084061073625842343622908473372000661731775555931931436210526681977247130767443818534894539383666519894542492696713600513608931860596102253281360462061734904089833122503857462414294302671841801158336333849429878064472618004379479995051664166292680859658104708610686913385020273343808130385739456469010180082891391653449904334381625292525589021041286413448350968506160106646948202298580984234390510802097531097320167583191866411946497055437423488905063936075062871114884948746580572266644553744582442460374068868567086199825406224918425797511126824663318399243201193667568253128630367422076429133800294751137873414919472878237226176801308857117747024237305050532807451998334802521713072336367802836105074686131255354285566159032010797778144828816389619640964340145527034957608901448885931315612732834685053952484681579207292590761261449341195302370008509014797349562665903663912991950521919150210053024780697380437788360859437691410153359767932171840814843657846748430116809490326332044433048973344615737065647071821259122861306135061296373960559421863381441003582861196309821977002636470934485445890531019518810320869232721378377514272376604898492283216877742117624299723774203699883839880247405958989608668211291347693586227640080970782597620374187553251286083873599217645878550135949075751889272413414334201059833475853670388701432088518894352560598247135681483950529058672687263146471970872849334411275671395595262531232700404936527520822846820560943013933374722495601577769775795941200148326872539332477126260987635626454334890157139309247320200737636017729754230513749654010730228395877193694678346628624120791508695968318544295902796722124048753412115829547496869236173899044214210446847435576209081949367288819461768514020763312668819528537958141412443103012550176271659819423769874516586101053297920184492922891981231360259142860742993463512480710476257538714169254388376357810126082104222244076794299632212613051457098977734803280127274502869705594346607971243524083304891358121310858013776205527252700978849907280285005285067155576044927780377022641634031876714011425326310418369313511308157970078189140778908802588143252337459954129637491841432411634304907737234830623866156068584282842318267621367341817631637163366787507503547851864201017293184771167717466194126831616341484514088580345270796964664217885236758750283214292996076590496991586349942605425440267160551173758781726410709565372051239041252886518819607102731669289368976869957803202479630428359655941965953911913476097077087550615576263010825705983123306465167733663184869106433113882476037256707321733827242392601757684873207951809869138725780786941445730988164201947474750927005240580942806366982458229692617803694384384390375707294073459338610915855900660503367779082431208687116612536006278006407107361595458741004857087037858536053101746847774693574389359694631053872045198696648531380395305312282767093482658387323538432801051382580926932832369150769497896156172265225866282949541791890200645545944111920310243745400257662816357875624171911592893779744784921542461193840260853431488535914491463998118243428960707455645934473792837966782592069518333575961329823099605718829853181971201189657214904036444968952142254200788078022209978652833235139532114718923133854556903564478097354290530183580568594678074129509953285538024714476861694555318809302711494933709196650929526992056642211685344545877282444028481413133699262090700728412782256701520252262036661442252103501795637323487256697891400159940725312616030209803329564113790222135997687909891844064649695339648403359954967149638911897117014640733714268088216439773827876102170587259780914281377074680423172439887996985096129504665447470155992289853833492537637211705276574290788403894198134518359113290294717639843091134803121917441989117319460178676801523434480831673843485772255436229509971957510618731087897182313130117095309416692038960188217063775146344236859130965432986314747394906043540474785690988071096556456016209771430105452064025959074084363430498006223260973375588605369154920295902645081195582399805531598678688015275815268011368597272294316113999315525847692820558983805113942564976635169896468498698102565756190243831418815205879662785576745469331165199727023829080221118676149087294754705311015957042774582848789268194437729895951810172313168959339603964913366700355241989008401964602241657684933994260550788847568331927196558560683465194615257911498588104360578347640860356485009757194323863931006314663138752705115287005133386509225141306265667061300852756417170840717358763915353202623823172239746203728993686268099491602556867573398130865241215695790096625198626253055362579219602811688881151219199689204778070302235157570721896667320617653327756466247172471872985131162096001471223289819917105136901029520145342028226072707537728159431910068275940437354945404361543334615894111851640848796144845704872904185721507796415223274030370996182438077671521352758441761589525930415628513901893048141443560491932359995874694922135050565686550812830800804038680861548529411909728815142670628220606938235234671101872476712599265907008357848081370767132285270835238824909996457003699002812026774791297269551484694996208796587651036385560036777550627818211007576108001502361487399768262869500193466452404316582436474311146154236737269667066455422191268264989248771058006895650154506703330437279007206504614634083436091176149685633578322587206634036428915237172811275527991169194631686541632695465520949873647629100258982332979488351081897384773701724648473246030654235682031983109559919735513010274623841947396834607129692790405289666291885386082210498205298758170275455573759168568423370203423031932632270303698030996298940775922436426557461553686221563822243237089629921027353902488004724583168307653913160869627896900472751701008973536864630336360369735232472971322140000536099430960245860879001276521054392476762918303099520402061222244669236242978437050597053780363937055733654397762667422293846025686815855446762537067333100687392645688144970418636236387610608387364522460660631809207811032844101124095145282331245062091410120325847076656212652953778314894014269730441462872157371435278313710365937344149582273578352056061911112873673042568670261270174476843403013511019764566007582064378814754482103131287881325332140975806921440647491801094034882773967617242828877102257374504265238287779378641789898095964357866147702944775677301806925661801903979416841853621752403239337084949890761345010023117748610894631279224848918780274994385120251547646255263934508389184912427032934419976860418696612714476248233204014955799406448677528893395981666077136782562433407843126316580567543282463145368099784072821176722323000115236504323671446404803920265345481360813147480049469891023270377579500807909455775970743236590955038460696703716043061691821938044933286278391652417631864727852109694423900704978087069786045260573482300721982783997704805253567617515434311937836525072848865316454788334669324192182345541330253710514250087237428626911426647022480159467869408507923438812665276940918301799467421063407603906138210929217872948922297322495586606905729719692548428952066935485744440397659728768875555367836731977253959184000633134967134438154007299515961898456330617363009577461811492456031536916060075207233656863185357245468136861110705822068814870253162565901160893018037339821697610428404360806391567012036163810874133802441212186524844171405845728013822778357400211424742518572902544375233987679677615156126502867568218997068104767183775220218649158161646829719956224641662995802195099740521458460407292705493775253794223683189736251098355473541350760279365282087281071372439838460113063034777336609635131919981234246697069542880789411638900681384608360629340684574581220312154650973619999497594307909440838886714622869181956795313616091429107746119687104650064697876419262807249725605667645374113562116931835891277643832941955133305552507479831992990145033389198208749749969938619565714187315227843366971274356123050274101569261326451450393170519747601237349298571681689579877792918969704300953744805010282750612827907302469165284315212662387428663187944856488055686986299656387179421536846273185694449712547952461861587417972745523741303051678941116979606535498835536806922328773822204319627118745240558108086438169165490139627989708093439335600157783989056952767340599821181842318539154779013126410165014059140343433750955939101853850164248788466869639500829068705279442324591670272403134787902388650369497509767551153092269212935181471695135792310618361493741834766138951584717958016123623965219260779784349637107047371159493149081778336135993502012882380516346064243160453934973941443823696009939129209922692029430528689705883781853772997313177077333746760470499511837067811389933495765553901816212239577656359034483742469305826777983679880940046316235911766147660615300953663981576239306076736828585670237926222664968052692527705160323500036101742351480693427114045630716783142238481622420847856234412300008678243913822325486254308351954591007291405821695807586224254707050285869141501870449727399722697540253243852618512944361008954130600127848805606592223146600345518565461478520520019286539958665489402801113064191594769695381629876228794353396970242153404433576186101079065071399878347275232688895146576057431031543214856903736570090100630227243980585146605289581018949349790835074517597527247962577082784352210415531285622478217730928159819224522853531409640167495457303048822778899704162654631851167216500919391908195705705614083319956963021348637095360728907286042459862142436872186665370454146711570022006083754617372509649952616218454317449445334253876007577637535694785869356788959376087850998647735138590364154431686082209232249495196983574448980796116513752308201139299438823966644092046503741435107145380376753767348178297544158153405979880201651275784988941463730987609610795239524801329751790991258287205055479046177554256629716749191806215711762588484947860318563472684636109093405848980152357253706972089361150829700140457733545446274447194625385637213970340032489467035453712028995576638833847175617144680742172204859543570422901604650684693230820006758397161785911131932033407915098799645398770733667454230241166066056369982729821353668912451892368910984255922863739023907863075792315398921969183169121292675010082865145730831354851630732597118267919917944890589105343911000334216112294922949583296812561680580070140739468766475583912298594432613635549953580785552571838268834491149169958069995075623676922491707045250833050872850040723464402204122645628317837129538599657644559248067868638006927098509554077558605727025217413484142788389098789937499909962330074660526630351768572861467753680355498635785092161977956139685578538544014723792932960370747971021685597759095224776423026529222790921976745230295780519185560802559464270310671618005812299419541100059146189336979617027397706461551790887131771091534212793011265342559390921019454721765888467555290330387273471465432814162086940199326500110552909803830795532220264022584781111509179125817850549605335150767548015786009880494281767874852217784708706380521110815728825361958271849957837979751291389855833497786641989652950224275583828874466968092317586498886490740476471249756943221056863960867864139939673517631757118993419442765277235557818270485673303401677902691302160458628596244017828087619333022286928708396506254524330352431670608737446515118480870960851953625436762890257855468906863428257743457970120609897082893887352784642151762537490574090208808358092620440953233878510213179742879799464711635892475272864891839447083530904643698622062798694782891413389543457051377477115358310055569153151301795936000412573682717393493475759668392938061947710234993097103643773750162062177200693158157182653205919027228974876387329949592362782163445079184059436266426612978618769851332435439894100656976040048727376918270705090504130223317283063745115704065464033789062959973664001115477340160715485911832562303418360389819294643030047063953279136587234525079458122213299010416475338773038684784127822473334418416145204193763610751880238222447664388160784364758811862995226271768110775768247078463827844762536398894210232629313445095742399018741727049143417807842972211116171400812817473707408818600136102516532422431648484953548141771011454372472542793811361232302774627567745103685418053740169525002455643541284266049167548120441947768587938504807503981802830970208310166293483150618989026691966145859470636416084588034270695888417458769347075922237694968170348535415840291346117971705006260307227648164430323194431937423186635253679420409914023701909478731380946353699146188156500539518677529786347578759954821817729585719996761423563186509043628828829536280720589315596394289668992768563672211761026712364405002515834838218600652870519771032296515945709808588860342696385040914930356615142178311601483252452945315354457373992306066551188772470031137553888635064391589109439800946691768229395480930846264289214576961230136640487051302664786943227919203631648687056071111618745968595791988854957507506252360151332168640877099135896588226451287760602299543063129841094223286737853979089263395567376407983005960028933050231044545027530464849058352952886236925935399587573305283320378290371993490591666089280467846236138088065668537245310044349005679600368840350662409018921569965440946243635679439109715222037221331380686846183137834010511538113519776021601943836962551628689820240464055010308738019834671433855911889764270105167006602726256861212205665045521579678809498882572323400696054035623498149325835606275577532220119757984798143123386687752002590355164153457202178876089629319823264666737367143580254786511321929118637229652524189568344064566185608422065929707302890749088829305358599826326257026812036879001465201237477480030253201216397293358162450501946298715347888065016485309341131871704350208716468579682081624718932424346685135299083690762836802564237822762837599972552770221096859624504472493196442018198835676161539441705230384259399786914428384316220868392406326089817327684780386147544319170524580772249680154936319421391616994709642742316642957177817989640706878079989759708327264834648196335685302091756397192671204829232301630885469943694059437682400222907564760844295685614059993713254523627075099680826275976545024594791139624909532298597067693792974873902041632578932102456307539058566132445546874739040916332114187250871094940120835743756666660165685905992753385948703050768202203149626221529376266750762116324462325464142171121088077336347172550924970113829318018483687209235972076568908262873432415155797970146694361723840928520981621413801963606108833385930384968818984103560828821376583949092074874649846589714234170899979492095449561751191095934817416376205040323979703892142033205219138892768562354290716253286621282232181727917115185865097759612740891885029904647492408621128783795189051373857748828509822168403715942809460460009215893724726313247949143788171654557869940874563057967297651200432834275196735054679082902788869781561801696973693176805608443966150908569162351422190954032329530317524275872478460582735826153559335861453177091679477660705877844101495706651414585271028162081408599387738624520777400534100404158699264149647517910324180777263481459762782356535018347792955416461049619244627053135750239280913093239753340484722308474668634428444398666240700192848866082943868356046718071050351477426096626326707955017294111444381829444871631474640167621975744479852532867127706352171730722902888522092820123408303933273231346404409828974852509014753512851149914110951389231713314605511531372077337306016189012069959054660694549763361906769159424868198434118400846305422089453283740030296295516571044277649372921897347592884142695328985476110871552704902276124301031903576814845688410930434997986346971543271175706353215512502230322163908722362323007420426786146897420524201060981662426783819798811333443496353802262186591387227848017631649674832646688075246562269143971363543074704762212987810136762623700745110879305961268356940189707282283322656191158447567057932228644475065926168894911784495644002301984886719195859156981745144771619162717370947886766893938971515616762920309462451508887412644291700339894782840242210111631191303281478796626324488299265006025736674301631556938092008913899946407204342099416984575654910798376419579112958035516493348514992367859771590246566536092727278345859226468060885146509257084599886973488674643384249963078531281365344278092008659851483117593826189531866325185953312609478098416105723305501887326539917446441849677347917732417795608220183797717065143867119473800390800700461285095453193349825409007424401987041278286411370035248128695978520180863174986120901624519720863962465580571273757906887497070086062354996304060843202866782769047483061898612792016714687047416209178032040732525861346796969386279643057872811298509292970543283188742611653002245915285932906695710588203339265301395610085843812254105934722264341597544996116368331326419620644929805041239107031463709861655193377469158262256017995579042110149772807767528560545250281271095792891554416228969470238524309016997391812567198896016908337218613762135832350281733320216143008966713875468301290361978472438376468107875877945794638312776730097593550175865714328388886197603891496891916456286341931362232247488246632506465621286212800895749922295539159752789124977946446335476580006897777670969737802146696983041776108742954506716860910076054883731997836411766310642400507847360576335340747854303247188664994952936527946012441145594221189801760684735809726179371663525197895099831876586084650494232053894812899275257393059865099417507672053144434537534448577013317685745388418424390785367279391079609776102805445180925322984201897855457490888577268720983342467059993792668404521634065769771157337177514461955009573457374773530085052145837150182300912318324869462222721000817526651722561758580866302973618892269845315390154710858726060693021189305452341940458648561018788737321540653196699671261117778949700962413712996605215935427043962096601684340620866002153631996229351992933700382465406627963797919406343528921183544134139629982688057228318264569042073593004981243520469552054050713943611664726430952536921687464060178297936684733313242980935672250887567142835764804688660785936337090912848912005470837397138037363837272701614470823678578533186311462105939777462139441001972502287662475376241212536685340130380291661631822879218643865869419084196072430071934990140527454219530766608376797680859902594014145978060236701177823035189889137848961908769270149379671161263749278770937360986879075156639694430943756058416414695572529053232988710295142983684002815645965123375287670235824636506548516296300333345249319974683275967876071817934950206219443147845011474533773019280060132327362069266718326602639936114518276014339897799583134083061067895996276525882148095417111131661747391695067741356210511032852869714507095731783021700206580730693737642992558645358299232646571681957795245344401404202316454544415335066417780712288066175151699864302078866430942288312112703015247239156914331350587522981775266962838390212418548809366761162005414570385283257460295871530875795027428371456202784933328650875681802990950298316571967271126122976670749317645978684748680096438300302393866044574869892600924628017095201952269667255379474284545438530901977344540217028487735140854980126739276692793850542596100723984043070683179295096476853588795794237834199479388068642136690335112934492604313055222595194211471642522340187995589373131333909883807790117302702976710811483943299735168750538507986897650704017481573927304475951726489515823418076332171306507553420229225311254466133011561383886559306841331341277966307245908911899394607087934353116377815640903427983854916326290990009806283699661390746804582607349669223199227174296392864285009193255790238635609439064713234075277336604939108038071630771932328529532347307428741509798338168460117577033968544738499193458994313857388221091080615606334382086818752377924131898364198618668544573223346248103654261716931898885238152108977297110815367936293094348612417187601132743434353437569084951191051737111615396935564372719303485474142318395699199871134273602801943486171101312379117838131595020865001834927025206613193569400758573304774073531320870733043455459999986179610459734202900519710738104861032543118920545578534797536194469170719610678748281354970564187630878839713606402308080702584009792398835359869002564110634866022262232629575197232792117080386163366496244941464633553011191254311770851119946183918677001272125106007671336192954846690699896410363527555277473962409437549261355607352551943750993730446784329596687412677676458625914094332781710277168833084268825555243343702021068298622996580835743605650034720428588065512035696087372153525816286527536400781925394224956525633175870376658585155945435374071168633915130514788462544632345945131669181431699449409776345392034393317653460842081040258899120198576756911192792742333002489464959243090808519917765107173052731270693242965044285739799869241106419902250273134913740754893715541653105260814441564606755656729958084268411516912978935967599366993529028911912254893649627524382321104337551078257614899442802824925194959449979408951887467811170881702428946822543853742273094968629538143891565700531009374460145646235075423380647546390457163225961714135091678732292368330942451220832643991305420535386480867483494853945234702798701023067435049892580763888542241259016006635915548887620644157436658470299014100133675517694193912535478576693408124546958155422190950260753918449185694942242087970303115355163673411558038009839792860728651325605135859227725855975474677771802065418494723486699967526978048106502421644432736748173474633577460969684545158776955879717189906948011577691237450483976534063407983765054920618130497955512224310573039271120328240173533498782986734901592386571245382654769069077723459951694141009782648782146577685115209853838059270996928739310479263088769136836028595353559742413028382866567480558050598814970155548785260905342539790911993325711234597655152822539375362163339909134776991518058426357621236256971480649308190277580837602419955358289639028475142910260486533487921232743616961219588825474901913839289100522629197289813977989270066512844966972670704106653153549541066909546847565865700189555942572072114759755169476042234890086517001061944063637316863446410167305613828876527692695238725473028880488478985192960888556228147730391185350216007541855751279482793620107532885252513090217771536508753229782174743569098890902121265083363280852647775384638852206968579054276030671534264906430062413588947493869923418075743274622110382360271278709385205199550209805822361722203644117917451995113963960025766733765177013768735481068201443020039322913975220157605201962890042128682266408072746074061244753557762742773691996317894088885317608156933950716630832188837167772670034627320970045556924111664718033872510202274473395966489610181887724836359981523301508677475473952905722855216282188104424369146409695406774263000607312092274293577223312630598431185337022483547525803406655352397615414569831837602065917764192587410536297601616187705025157025161073299991830462860622628354759671545794983597446703072131205409863784284645620557081475168635799670807266922918920367007458959663117069517475938179941716860708906920942499316111494250833355738218518100011203719142998630670001495579079395443162143062522610542217646273312331432531595860043952848252560883722514705614338490187853247264693483252737289007372170364591307968053776875463290092120352276843264452540386765419843563464176403198411504916712639250770725716482458781019121322704430543677710887830649692049333692651038848374782531122744098482720531551640403814126447432786722552472333872769720091542290262332270826312079001946558940224209426756545881662680158724917794444231934549239410177637168421393935391001850175745970138000410197072137794751861103878302140489998308852201927589171764399689395456357335481593997599730035111301271505581738672740101628158510920429234355991739644680151931785745378528607709246287160358998784236840165927174702583589771635480393663407335086636474128412338673410664896762962486525344933039093977045547083210963985430243147041761780858032148247959875712921737305086159439380175229161694647743702090800822007573241397861739429320366202765609426991142446472192679870744411610877714373524865001834182070993893081290833963549784420808918237338072746866489516648557952241053311148554921409813902261649847419661351271615585742158291578504049096165956037356868906305640644961900134289345563711099788011356774616780662183917104810391467090416218166543838252276514074358137062412313568590727705126090101741598001453395406502211001621880747962427588906622946471259513212100343939812418291819838496164139971477665916141296171036570169088679991391297251033673881159949757957316791529637738218431732339446986414511443288122586579920507777077311242603966508026317732258805615090188866376875657791592327455456352304116997748383672711641994185348950903614762220184521111256549599054581200378207156751753709237507109108283201778462710861731583987784017971131456602783062082374720573344094756868429120568906973126109568493509193616100508224580689944642409181744460201984636089685647316183506937981338188175313064949710040112307283920828069068015350231527334402101837752985685307979608182219277019969841646122620655815842068794439140373406343140162018186433832279449677809217035131906505030242502706665505194681649206920653858734942068887484657303572206229806913292136248198605498140675050750165425604802736882181395885040368229547457404979575855097130075094974565760405373336100908200276422002311042765174840009272825991423879028709963805821355685052136422882052625492957624567141307460648297405524598933295971747363550410383447371719163201649883983253692259426678641299274316824263197988813357059703820737263183386269582936584126213419393233453455745287574239723028347813730253911611431832580731955695995226518284098968908922926227768877275674518158649815086491883541699979953677193016364553137915325778027726897699353942950221879798477769050303953971458701155875559619462210262970705943088173165623187260785615569015441068721774742204245184982233656468689544926133196954830480912223095939215140391390780699074017337027451622850055562474032513727510720300137670134947195929993020871749889014266911941216706270403585832345098607851618830807042307668106419683067501996538600739098825842077481551755087913882486190775398098667325448676506631041547492929916024419209620036720070718710556546497320223316066289715786915398396019414518399256245296539475545846105044421550318925869520764521038193686920987083035575448655927907647949332425040177600953738300340696114932031237248230558278328587024931595430864084336400145473733689089672883229551399219971828359849362373563517047663553161942862435388710765150427048196481686360911300901147846258995980989943520745967827649557648351564723431338570933287273325757802848030306910811209803708956689789141741060649523971803497532648244857451258140604571306719459045880650269174918398885903100119725087969633293637509286342510551785155350315333625181356725707228217460572809606757467196713629585338835104170098731219897091794996687042040683852471163547301739107053473234785598541868142865073527521258834387524373869725325233908043247443153303918719546298596614476057879236474097077732788616189980117436740155672447579374560826969431719956615133640307937060393553464630593432663892842943361276340682816693338499290674332161064134579557203699707365713424011132312731599387316427564187140375086653693581415769418990305140297797092163930633876759118986648947409395689560384733887883169633976072209421325846939470642341275508657098828457885365903825173061787602875426426275772500323565988838963174268127179097659533915169161946549847177519707407958085336404074780995439050139347069829638926271807774840959365233443627574145844822034181184375623558210826068743490671232533364966755912046437558468939165939481900418789492988478293739138591814028528142875204048225735219367891339866428401654889793919151857499375425908776748494792680962222386118154012291947262541528484504484059182657834869354874921582478544672070442205324733876824742179391151519203517303393200664281059165506260236356483437309100230382999752987895989567327013733007569080584080366662341686866580582351468526379239170753804298726250617308678897713442486623010188485117656587136204363468017861159322716115553923832251549967963312504590353769993762452424587075335905819566181795800162147669848085945755519323104348036830853625267201936732804742662396990862374715480886813836972821291991610993890887630282888800379180783511868671662048618781177858762568550856620196658424650355128313898310008775590269508466587548597189507684859833423334532512669724040848819632956181001998223487514466975821572436529765618523172899652594416309981287546669666531607278877742196176843200679655461577540292639827340193418237969634212224345769164614985943864855365881086611363421424216824383704766169000992219283509558801768858015096086415832282929822663695584529932182583478491635848428627724275864786981080063898544321006715212186740029748707408616679872825329709656283011299955267004591201524677631598540737623321680821968623892533606870651043182876385216620618840848763382195808715488302341671937089728943784457046687967359536548170802037880244694870355530069698662703271014234438455272300690026915075226183853674986495393669439515690074462208043505145851646782701068647871181375924668218348727607637963008834641217266130678112761045158894073305785399636000526334796091081786195585199750175746957408206908931727982018537571362633204270937895606567171552815590220045586439659409323825854491449711777753246706239930479382202762902030834871940964399373418816877024074582481420839066856947470480888867320374720316164544186425070490365967176697131377612665345668346189992727016220371347413588729323902360768108945686974479947990582708805820124126613559048641747086271380651609966164684344540623938397537068340976745704157279075867066639675790589545030720165442346070909649345842134416691124890517167900577643001132759220364064982600023904990321025919136325120764881466527194115909250642148321954447075314022131524883671793188403758765281091969222984847699094478273455665142679562444896011336195210947517374127362237655301321643460459432286435526451309099450510931925680265930310228362116462590264713564701867481210885912943405893535373644349256529433383292639976421696006897593579773692879056016025164557803881167682595565829646625822330788515302477568787215316530450501101923484206633862316247203430388938416626992910925164937815833555917993711658113836602774222138834573325196913578153063060399837933541223019895698504840971809647234316462562715028718529029073802743939173781776955418868566211701424908543228484079068483535582363544426685280464072692438073572198400947191200295297695361614540923344309956697344458092076536353712927261108293013877504452984478825743190246367213629177531583980121884142069640771021747966056142410139732504223595064760016957145640497218772391035157811968782029657770732311942114618088842057410471062596207964506933997824250730684580068016989066597381692779616102386493356042671574387713521273622264938355135654463228890918159162224238254589075296434948271490460947626623020574700129286526447196479966044411453415350951431592870730510099455686304277504571311189974652822948186111780145496573915651129273010785842007511157457959825966060057354723027703193912782191671292564602745440304115916643627147877192516674395741159840052204592551346788949756529494044396674126146606828877195904171262912503273411941226775304229110747891160476946459222355315485803310280620728361561570761449231700227646570338330351659184998116889852474784874991677149418585086755330843299540036397198839270738486227002875469412549409924550689743053422886444055094788737430584378148194028701068230339539819562716247802537982170558215207395761198903583308275707028815955997117682660014762235384616920343747023541690717786603394252634542070055920584866555163059484720941047276755720859574622973869264888509726308711345927311090999436990360313990740083268284224658627492894227493217189029571320322909039700906872297479083027708089472727467052937491427757437114068266367775747277499137305120886581941972126739988802001743157258883633251584495040949518372993953446334257226200466302482457452748477987663627826325588994074838461840783708448798913265625829617533408213940333100815206630623463743373050474093209329840038811392448264327698244041003805740810312598947154327580179196829703920357762570512281451014814674102346620179186621627227839105857768625293430713567422810513177874028223244760491641779287624912991279975499576232944066406973079212020502546963679550968585794408426906262081765882966096141876487947774945046373914737478510013080549386549562310174314790333682165709927233182612211453250746420175768680918720490004817184105564699486884238851938655091329918661529679478770026162165137791282758994321773351635693620890989561841906276282843719702257800651860395316770088202158112649162994400846633465617138943150324806295862497545245573544168653440695689972837383949546216084328248717649306565104944332753552633764965635732899984897193427786418917508003579785108233539980297597656709963517671301550803518366256403357816643445748662978411645679685593396178808902455526204110397679979964703354594136129953995870234467168872450107638841194553864413518462411804222306304856528126717232741271021883420736096749357363147943416307520236365062045940197335876886674752018066062547052908431441025337113328951655797560979255762453966039967900988532669153574750859607821064100155987024211626930082749727967716304904367639752514176243783883900192027999634439429979093211881383177869388131510006545159318642271036779643006743702826278654036902132833514231669198551833281131455723302749847005176481885741403069879415372886919867096864449343543195800583715404566709210076090649443443385239532614755701205016278535883532236568902575926877959333273974175596755021468382279877132500991178935593866501897122074240980043848179103379934727018196876015869941908189979848526363450190421553228595718832935615106779331494814243981633512530719443810133095774084632396294949340432622316772869443910701835076728186825776233147602080562172127057005872705515163663219992093076175107873495952103053010163770088004379724854452721450846088643080964198301372381950809473337942927078382945478404958353776378569427071475824488918798936753293222507458912168357778889086534092208863611047945165374997362477650324066045653946804016173605956605217395308819466499064578487531254351890268265312506936763594364531576338901442493592037103591906635566958266383731985154829282465760582427290293160694276751487027758622646929325570818472546770450065054427467546998506602636666816001984841953393700980481201574688392969149609175788144308634688030668644110894508731431842202812820020568009744698594373550805838100105629571493539776020706421220904313297763796762311783907331649419460617949355992036997368679736455627336994182985905546042596094239917365012989729964821987380969445787895435748027808445184210862484655448581109636437244204835310666376638342835065505943390402345281207619837525437461052235993298430284345902704452468562935458735792862203333097337219367050403919994566191930116078376712127742593365663273329033858716034092883331938481952329785253561610376193543967166525761633937255782195410195653528038184028104759857603719216364547984854722602690793952091186338397369499746155301407512727377098077449268970451535701441574730009327331311085865529767338636803810801367820638553149467538940636372045145577080404496024647148014295226049062962659099770884955149252523920932725104675754532958377837434189193177828876894588751832169707101253051921140580325198276373645644546104330269294359800593719505105865519627123587040642800311563735542961747519877109169806509329851311243598132950063425379101970408331085687514170337677560033317933696448667438449774068804637992458018068048295084114792000249718153244714595916405162753212600571728917649756003528480688460203361633092087309434586511858664245928047252459760923672753892432671691079465295034327804765774574839235522752943374402457531647674105278617760975311605877458141213145271176003863448579655117532571066157954625861635426621449361835735734876287638721413121924789924372073247642111238675332378490803103410149871564958314896079644675435920989930921219681284039290635026652633742764577074476860798153931932427868793065424959022925058090500422134379389215211934484031900706848310835361216972619858901940775393931956234157169244198809368179609664194366505806323345805292570756795605735412421540797093222967868810613324516025316287934864947994728871939501722809812632264971412353964283284077554992221575907948691767064486071737759361531892795643366792822162304726261586408284207488657391124327079940014537501966867444181347733315613968644319303850940856923785864791945267072595399531281045342358470926200792917500062320059702250810291676734461713039873473461960854518118939339742752644803624585087286067401378220842741153663695696815295262277708859330450378855160876715285026744748890307572805430454740380550502889255160643030116435529590582723675609625869030251248427810003221653909913589527627426501902350378307056762325922180873863700532821812546773928151624518107436470569766455777651309105656063533547328894782185435928604011642252123465669943495618522404037491874198447395749112636098526763490290789690718609726942971020252334233924270747650765025161108345256866168866274177622929381146945753672442067770175834036330011516242116284766080746062918560834134297410603702293648620005346632510581971856924456836859086470706701559599361439829124923112469037809800517234621085738259054221836173927680560248537564098708251607240458502068887019126505353572039014846054538204946974118074442003103385594257512767093398399320133389088694636410073951000723249165956852716823255913245830009685976744701740376103561255064385833822704576573752485731353363142555006264593987607752212398378382360903515129322086226092674099928794623597086007932482003444312250462087739841934477337665542770935480930216634803564917522362218346176847292771810580139182970583654273570142902206954724466981448485806452762049348354142710755750763002217053555333157362971077675816168328454892577459998343083397735928501237561756745940978599313995809513463843834514335729329155402475660160330247120292832023657918698863258327325092180716283469318640461917934878299368777882201911946702295741866169021382349503042450826198207698938975179715429299700995974764844486965614941826454496418118824289822499132627518192367753692956220924826929571883967451067954423210974203568777141504054676382174443834196128116312831187615102192669931428956433169484066193644220589056375085177788691164497277889340134656034677536999451824916948687539021421878463505652967194446186235110873367509988460418831376471278530663220540975977947068491059310680294982844582624165044111631228591928300403656166818211091124164264575388126293980385843775289079671389121476655001169759277296678211647742818849740787688965798147034514639253549242258885776524754071071736480970893391216470007526898515032644184109002289753997474732592149964311348729563346829281214720045482000547974230292624760572543722073979346018344526571169465715740919747948819674328084661131487392747915008674156553930162649073721093083733570614033417543209033990427754892647103124845268152650531287663645014329719021569133025262463796516154561330242519883858451369089518885575716052539277503481831161939987999434169283472267084216373679172557923295778631043935659853334248095323744600144589894646892600487244407215033389102560162892003440260978075052592454362325119399140489997765477429876163524830056305974997486363782743181635205820617696354529304779986607540006495304228265222682245570116274515345752040298070521022022224284707512261057225863347729643677204257407616491571105973928374693477527269284937639604032499065577634416223484006083486590738559084452642868724954553823124895644420015848572324116123986344149230084963435854191628864656167140283822660754920441926065123757536379730002278342868171189345054086767838612520138039870450652856815486911856287531591268664925961357172931493139051159953594474811506850717107747489430177654077461413676379606485114951738019752901706430265035504132475041691601530807119200470356961155453839854344461936690746959534432197265018650384520531395688854948042664803724503780894916759477374067690681740321978370187073038940784284855161305999010317000117302499539947002513983466306504715041462966140661381986497508491646901226590290975318155306460321381135833814487910875788939170559429830896367955312478749167106758094915286778483096701012462156476086279960357098398452168274280800661741604227802783190839091175030694065598698607827793022685268009572752065928035856428398138274104297478455358216098545226960349975198733033604044069740889801473464737413203660717457068299157128534794194715219812396276917842134399136588310767644243115775027490354649051953480420274400736665899538163202915959403570959835276073396698490453784543195970640188306497247671292239885583970133810692367288280694096933913066089060376391727936998758957253488630137612560375820375452670281763367068076410050578520989480134584802695324268249489898137652055716827392445196643702278658645892461034574897515006994657623120331086345910104470573104238379449823551387511835027242233961689685196067230292821553348891066722268232126275948801085663356048602797474646134553068432226800009547448528878281152369034633263955412575486994420130300805786452021380563768583295009738310611954150069295537653018351739588019625891164488746276799424718120033146085820293476123814194795314181851048485528182301549392897595460245739504316211330816995738641774028031244964394815249439370257439512127684960973576669141581976203330602961583051792205197311500993021518471305547186959837695719515627589097415570917114189950471167646622691965989038364145872763124531429529307409625646048455223383295037736534374431684075647412116409105432867538295945848570560411174749508563495616553423369400215125253251253508788253422921398356753064893620694458066162879156384502685861489459296388595567726520969422661140495592100070679785986249849215541505668900297148280844339060128733204789856620062792783191920341723596492977514513011141493492639161510266047005405455135172141514220727006548536654629997963522378170608894944769082937566143391160632373811250709196787220156685557763601339960941549785397205020612936488248160234887749120052287326874722812451209458303631887781439354613162966861160697108710895026440289641495977252446289177345414404417507693958326974257133550498590795419274918987998634842087462269716445129444384749777105719647733949555833492550657491962252736116524312065236474770546228441668646133735192076762617247284512826958161186293318175801206780850464494267032045641976312107352507291198861480816997333250854579297673095845175090162528839782067578892489371201843658212971414597438443751515625858855358829470682925098573765973691783233017959596904220573644296965655474060657950218420440127946877841888112941966837717085166707713243974099968090841538530769547255673883938531211380242335690114111221325457446142443574364440056164861768338996222827348764298869928776971312427726717480970513549495944386823517051081587671077734365095447220781183442096732336857447729714473261729242641427021446433386465113493191443405622701866014718793128415758777127743191046588107801043704850986459428634250661063275550051622775784128716806569165206595368285028068952328812969849611984299528957664234622349964825639662704632105316317726575680150445023321048662128880827624160085795656817845181691462457400854227875020722338624303662729931039905766772225934014353828518355855285438818127016314821173395235335668618534935757782973447466199387177400090527298625026708568442704639697839300209014009645633021633301525309219792287038281233713915339817984677102217940346939909991790122340304107405457920599899900101251830872231365035765325230250422490969218485479182012608519890577058881582709727542489816905750717800197438246827535980369206262425199523162584448772605709553864466156692512323866548849770141856409543683009390260578531789418592228885901983941225628809904159055476349924656884964624574167362680178526857407866373699671579703056268263416796292419018135362754427238272392521044803078393337309738736775709549174946548223569406896650936294362539147819973225861894648440254141203369098417528734496283861203385901621085894572732114252268622218693479794629536754721765635210741036933079010264631785386225631382107819383073271677379914598120483111802252862515022697483109555681065421939693063151723837375089395424688375438561954562111446947308564295442093825387369759170855563444706148905288947384202686537009450764287971451330753475936546035198887156425698232653174276275046311172862238817806807455653840453132103158373658083837369649052309504296174734919904136786497360118668419976904861164921420947188194939511546517006384107805569230804399093849572285163913589127868515845934861055938479110744245973413777050207105637024688054584455761162496602148773513415365380455204624187905997879249378577679583235447504987551730289569072290306734324386324113379342780426746987513972409362047790904946308205219548922238090891554193617949512633232116535870329054984370018933351985615475224337936106095050992020922694259087359007205982388437736355593382780526031449075683612525810945336781154276834936354547434313568418935942311236248204824497038981798201504670094731260223416526769965161532130405954401891030034189812395138669498805769992822915849071721788106236529215941870059133280703063837098925262283580723338198662273951482985497828895195776092691381056707422599644096364875004436221023060335875516327721621401179974502245954779557177665908733588345673397488007553480773371896526692548191953699391770048251271265084837564882558886985969683675342846324247834467440205072789379198765385139214253936078253616931814133696147073584327915415515748886384135062735891603561206889930615504606509860411033558386358042973693446469525684722724597755629747347783727188779899419481815151819048359421755585931112972099845785739758525873294538369519395085459765421233041207629251667293325862995783703857991339457143358392331965892592737280626987884373191407403078833439468369052199392168406565802467053929861226788635247022421334210295092053479424503121500454639110555396742186257847138819098192341872790163146652735575253845138746772936549890267594423715414086958945448948268973693886568172715856286035590427801026772472189939693214634132993828455994995400144696968514312191669729629015195639526074529528130418179912729497063381440912400935232033201991469452727147681190644429433293289807187494791050338492297312323848715273708570866217300275526280130202427622018020502715241486217362468578093006264950541999639805323289853659634052742038499199228468598814390120443663037150898283019797620398610663529719379557079866010543635713109423837595899270424721125063699389226303291848565521911900287429554036952953944038328354761796218046671586308368390545068365517633082108470394304528037382432447303234004171363691057327534883149464878635816172352835705440328749713773921631398211803388759481842695028872486218718902234606314622192358334863294845458528592435782552284489624195234159599231988557413245850473490964975913467384202624541675885545988495532118746064408081508381868208909386880962561178532759017089570974982158237682616555571303493397228031052153998516682161769186508390739772099555835628249844646328523234769190900684126712487582972843676285891095721163457606973897627774378108980232600627837587680010076354669500774373755116252531402509620121805975435900046299499424464083354136956510863019902811356914541142362754177939971845901112954992197309679695607699001325479756847092191150240509116240862124457548153782216878023384775447362660206720498435620711810810939774332948965576095948457950598747091277353892730915767710100130504000445177057994010073079955814326348597949666833687818580241356246670758464052044956083482565874287099588251218836228743348809193955831423788774071467169652509560047038349605763686826283479411690392392683287702783035115824194576330987272251528684311795949247243674626258315390543303099094483756631705637352395559862834729569216099573380238886137414261688418282453785711802506841596046955577385838732617197234242459562181137327089703599901126150981444656435217967351369287721709823362745421157161675491883439892784045839127102836842599278795287647844904607456094585484780892928827037616741464079182028504091843153788121844490283143455591949731784096375975986505849610457831284644356925424477479199686706623699064806499987952558949451088959948125858182752594006799069759369460569304989291917470307064070276618230859560597184235923029242186689370855019454585082317619355100379067240016078263217422852205412117536679362014253713852078035397376055379018706019577271670417344998272392632124639077514288244931293421003612050166469673599073036786638960460253398399913470677158435893604748567768097028831459847859686052010619115079593331386502224898497603539676326436152445602742795500836487361305262108241776576514532094265740267265991983959513477260852530398255358844705032437960652916230786879524302005119630333643821795010294550869989626387927827950827979578618789422891018898318087779474444657045214697343769581703672291824914871219326225669550400675425102944097394332889934346733749883602593438328896544211260974041791181510131475854085233906282088347448423119215321908718063720369842963334896447714284271280729390046615569896623712862355249209720448891060276310840797383795973320749163969124461372974355297539776677172863306274655113711885199799131539378566688695529486171717925776392246879150519545002483106984084704696134986915206231028434484165940959370660592668280559078371907807544270074050496742241683005209778842237156329571835102569443238737273361729890140796958274169181178878491699322389703082262447602852595670224242843982841191212090009832459966875717715304822816138349845525223534915226253732506847419402644936907300284601782940588920602196616640927923490265620330617673889348953549657740577720851026736714696648670423061562703825902367042340952173564358393867458513807702543158798207432010441496242862998999732849719069902097956220835420762706992088797303070750327788735302956925374030217478027741281207356083192272230625339054288129227700433213565218906252475476441958868339500841181224842129693946145440329607217901183111115423422456396063505609906139233323518882958200835179370021917894486433100926114656194042735594105856944041116310841390527762242171283446769941330354008141220664943211429895605742957695550050066295676508806856565716936557747938177193802402149341639647408886054117257460034214455274455960797355261866234465197401617071963271602037856865730948084058935469707729234931001572632234275704883205029995397956434778327834016554725519017993958754347101563433705821647195325216736312455403272663493266996775801521737137092213353961440643530126612398995178212782583790358182566704672670273410195614098224720257724347929404550006361488405106150507119976259393922391863974111323242658612001713775845182061375040831334325894889659461291947962335674463854333442928707793906947028209037917768103446276933892892572923846773773174754575036265489810330303162252630131199493842639343828588509604012633286358087574600474216498161787517159362803451707709247107493371078016661288149070057504708255173931897073813781483232004263320959582848741906481396143118039217738557035197212724628908382647648725238808138212680893247319714872243376252065995108074497342651950320100580497873736603511811629226527893102077259718690009158764465185604166034173118175252617041390057118021010834792275427002579229578028511609553409790713205998848456254841396654772002257176850453872069444250285586334560608288702418181123115225712889374970594986730143735067526105010120072839011527113747939152854887508834664380844172607853614906251299141928098900867595517981523382655046279784336355991578345303364856662189670838900237856168736059325721522593094307446371103262133851113615922570267297621587948998760467536386133936138594431960000411058747973374964058921827686056826634561747307978180555896812428741222994768215181282434845332498420462997642604924618923099219007665294221951508950046598759954317181455178061068352206638520410474749448091655876040442168970143595654028613614732953774226251019303622718077887588193815643186285916836843323117622095444050560282553581812680320798309944520458853585015876889381689436777725659668870973267139828280390242012917394903110376619756694978221241224059281617999064338610118902960805451244954894887170876661960055700018406298167964458952335031021654203425836020249685557508997375286332952699745602991624152879397068604752197877588596229621703302211369720668547031303477445258719523361039593931772580484413626541164358513313306728726065987265153215162510594998057839694031858774570417948372414203858092688184997285804648398312705080922036550552085775375618808189616129404566421660568285443932486720172917177819510415890810859687236483415743490341195686721294150434307337005116491711852873848756090198267772248659591572039853132255229780660878185925380790257192973671392306073838247554714420030206325547622247583337333847127380125304642471709798074869744356561830976756470454145444415124384193809401649193780173316400859508630613343097053772060756295044304599268583527618082028152093801041897220723112021588198423928217687903332230008658596092378113184488185709065938160887180881809407776193191098216592653942246023951613973131837713706666815253583573275915432790854998964835430205285283775128167337356805876745658277248367541565264863020191887770804004745353762218976585475042564589481351215083850593450735292764157782477259595008608464540763593754295274321900419393837600896919502339009123026861004620224327978850469927187358033942437836398955833096940584479796647331490006217463420197837957187054483120906269572588941741650813197185440075369045096232894251801162883610274274917464182986974584258512222066751056354440229326261420395828793464096205933775827440001480409910019564690445623615405485444142198664933696787312481508893649823887670926892710885421698572106782068536708584288380797674969346717326473458083099243463533656000648406312209292948729970620126736977183146217761211436978888184555465320453801990655519185924946429071353967538872403771044679922740123694064038509180564158704241744385204743985608237216430683675135808389307148333801375255067996868362396906461172543196950301227008478018825254512102281846922289652111579832123670739267454393904153615792431457666472008977457506831255677401757911863307701809971496425594597635637990635354555280278438285735072919149081371522950474884108519346393864350929643002196076700088255828805543134805467802753551064617929171127602896189515205053137827599095130775114035867520629312295695706120611395156823783596490867836327575130901742817774465062684833062775644293302041763010248728116213722887333568265149381391752291384829477700937380253125859840857367086516142014318940137616886023486730009168484380539368901383844176934620034063268315841262110678695696556832623850424754414472228193747117188787821400414541540558469491999774143347942518259436292482615853676723670424375896027013864626576491826275296227678525392443347240900010772524076581949453711870156474528127523568326787402082947914428054450142811875473741370972100016456901876122319316690246809840213301092195393829996315377916652004545474466737772238013076460555701243271832255916316691998316581943924106592878838362037323802050412796346120659816979181801305461079674756838070167555128499397500003714881203475934880474993461340281445444430540477664034256615726425275745218365218098767519546365584804576928953395970812735559671007499108151122499545128363242914457287323325611386252571209636832821231507313695376517104460771928682684938535188076666022320156292482230131788484603052918886954253224539035797666606328457465220550024150919749687863939636352528363870326616492549271910380469360881841997740505206507449062156323421262892196909285748556796244668679939406384558964161976414076706824816035629265633721464772874322467260249879831494351528063534883564236894138211683912872764174730433107729928383769468524810378245687364548275506539215480582545618414695579659959513333793634444043112081811576999317297987715513618872586845869962531332397717426402344913890508436052940864297750323166979413933047717200986606582259525980361551163317436122311264700338477541389575719441069192398785743087932366736980269973584931543049623614186659093509377649595426951481348181090417422307037116497057206488091532955346625204683366128269679824638481579387797285163927417642957883824094854170099261381610884731510886651656798953501886194219437814168138272337050660353068327077993809606396825388292566348418899020516870519128559792931285110383213527131039974172097207922091376372573454825863576136274328873456139604796052338710113709138937154419002067095891664957655538584114894306214510743291840409202109854776845595486972340506000237852715667964771290085052664534013082567714549316114938135715456884282974599148699216388183266741899452444051344492713609281316241310590616186676020251567569409507363692070135203731155959632531036874576042470949546562186767861509190341481744655386939549436890810661713926131926015783144484652247639102948791644555422370824609075063109225176178497541207657289676854364902930328253842522313336678654460101845592060274478797943108721387122895752311960047098012713033236933103573617397115286786749064218132186220930255171175455339793090952035142722963534036542971012575296221714899820535964259839713282025746860807244106655033777306974200679790811803009156426483100899555218311258751711582587336884870512290522286656900538619330172053378531226850403754655766637333618101088434060144384584137627449398781364926859288449636791351959451309835330087957358383576346225661375935064630513807418791858521116228820732902494658706054152287970909626893975500935839198848044209489845101929812830442657306238520431183725175734791543075156712899040815381714212706242110524319747385617566187453191374615498555531092340097457970516213713637500445617631183756377631898132180009844904900744470967784634805908654235903669901336771219270059183194764391247872091565559977342476584984960748020115720584723636629920729037714338322312855799727307915855512032973138384701709873609845713087393350047641114613732117239499413684122722814474409219251149554228886262282121196553702540097674856049862597352607679257267141181204808349902271163082169018113318776035290930521794642788207459061055026420615941396620409438661036497916488636633207313747245732770540824712857087351210225466316651982173004686801742861551264457432579749923537490780352546103609174122995917327298890700384380277439658671931541273015618226394802775490493681542537385369875823054822837479977335573411172621718341286670405053747364643075832655659333555457136089333178477088577914908625909094149209707898602858867261513262347172725958730515873491144714320230615302250563217819243900532803000484350231066035613777094793746133946841032849833810191080754039302608440205982100246340666437262881552156122054330133339513986346182532377243141684761555329209282709131742247093745822873440783374886600523512573180365410001269006875564539807911634524456991911852782405110205633142597133568412531229530242707519782123360028426500251224472874554799638432030232614430317719183589951668094440334393887124530921464758538016493375038216014227761665158188085596818744544036486337304252572117385893880095268799717782669356042982861446279102893311623978385737753673533012582735990896845389730954157434577788788050015160513859147199366009533280553556443942554539048626718417074204999212157496083956151183538600410559281573830746318751298094113126093739064639580767122346294822034136294232680952601987334881580152658275567856628978002465207794819785179881481812878984006689067672096746175126023360471435859847171966972312316125061966321821473178113587815686783799645700250337941719140904135481410637102301507545933388308498959480047337497937220541775433850932277264419759415583543102480135302118050078341410624063882788156931324761310282996627667700225437571084690291719910566260654390802476269352899405625896104476529578522372470027975455397294184809201096716199366590688206308129552726154113918735525516201439229269492387812605059096694253453037623519830882947792285421218620725017453624783191223215305313784827168783548839353947348970577451583224046678327074472934175705977587962140801732759944265882994754617211280798122749177817930398654289701229862741057391518536994598604641143840522625362674794975182223791659443002707599369162361197821708381099600735674050541695147563894673080058214408653869974618086314358025159439683415634638801512578915581218137071286158435617727736933483845673130380069745477731619855603141123356775248756996734181760681054032391172535954533447866378283753275295385311464082451537574310863010727697685855242096293506010065951993647997146798868554818859099689792542805254750279434721196104817058334519147131420255847367597220841367402207765157197731968924054609972829740662779810972622899518530538860332009341030001767863428057792418741101811966081270975347622200259697783879283181643623354437988761551069764754822789029695092018856058869494642038789722754825701178358893555788303296566158491020915833483755948960332570197899716291100520287542498817204692906633183815306005311841172159205224590387317486200351604884283733909757302141615284967449875182025085891008789325460293522057416799907952035326383592919268310346766909875098479790915980152616029743685087957199249977951330702701527411477554635617928952299511966509413672096843030176153702092145483727321760085399120835918919991513334778813763568762363510930973316934505530345277999831168752222039523870087551509703546115740673475692631274406039981152158285002111346150259906164116059489374364334764668827566145500072508628397962996309629394133990620449239188170220817368264550742285094262934053329104371855792257890582160342382943403741706460244131906993794209772797135501222732728819082491018587176905150347195030700585003285748045279240454109210706999226049304701061719111009331567045664756123003525828264488744337508470991407462641808088845989946177976844418738987745592629279540888317194855294220879873303627199297960765342944763356328948684922767952094153215953249514061837221891709461002938099641258820295977595162945511028701865089100889859675816118528321328187236931401491597970036407563072648624375440896554282154662634350891618074429424536686598229809819696240179531664649293054349313561640347179415937036937603698576304992050925903303744669956009034083912361621511119940068582156641086316348565041819057790184444704317492959769526531857944596557789579409437250949380226515202603943811263839289206460643678264092414542984949343635348756301531166298480818245442329274224211286776446064834586929320388103750172358416773512477335243938020611386608819304973335761601860301076676152459784894863795599630081669518203518047108763897447303599645057433088643362317018036214927351740688902543627235949113820594197290618353355436778769684499076455886147623022812720478740193604051681524095911545560685661530713933630120247644571020027747544220163623641299178884814700367660678106029003430818191886734204287856318345798042585106752538814161704213494856125813904766716307078436528921548042990072542866008881177420597751028077426580449673002228824738084500863383213491784922083113541035063720667369712951981435268842367630877081508976489103757862522134644783049461395170197203124826281955582740401928212772559063183914440647673370683642148359428103795171779555542492163365984285425160817103390662924360472635049159770557195650282271750745719380771384209868388099119100424220749172548797487437552279171539098713669290253534697844795871014709644012135349790475599023467262270048678955772440633148306527162658369296823103323427663084140474976745378884725569506548656110074736464512338229007464326432341494728886056593117973826395587510801243280083210856680799850144217120437896387426052944047042153605525747406539396262429150037604098301624831750309238612643679360936049654223280584981605655654189855598136491018964693272437659601246350007133449189309012785399486271709109802591979731513125323245654366849262887380323098817143969636947965065422991675406610279311568598521243163832798922543639981910424529811648909361311949890814867834961607576919553739150095140654601789419263298904543302323581646247688894061572246385428740420118765127996422154426894804061450537706631441164830803488596782660217472960101235092045746203780676260448021882207064895656612257260235816536544370488062540225845832809611004230799224633270251278673526116349983969818680945455301889542577936316064804438207400322670767146489933154047476996881234395131530179686879350167266823245589997438219793414083111063463461378865141877169798658846732000621553439577368222169715022621558844699943377531541753431171928816086808308579191751985611559105325400415148137720080118415269559729625922976178136664169773595578649766411126377816470657950759570080750834018881145279773530222323517284942422888558680208305995148075509064756537622503344784850574798260399792758795788579370213970134405676175850371964963843311053632987536625351272774293025575272154942201043947094963362595089773002021132715920363583798955017008830824796480303683371805104106854036604629424703366875680575760447122848705401177815150494082828716695118868007755486796452070349899235853636000144509997545736822473126484017316955886079631985836981579674327678442968954864048265694637366054818627065214769384222636598903525070982711457339359969880591244957612130551510734193641367108903863007476131380203585842946215140962545690121951504019615319330800579299200612664414957555185416955191743108732765120828543309774091997633927325863608979251484361378024555508419468559849482123383240512581061698896073331802553439587781608512661905279976381709857548395801857842890195534759119346096372036501985654388328858059504196654154986830654485383072684751921956344087764714562459838027918218645668358484672276529904177707602074543291872763883270921884099782960660201533147604931462419187763913004551336239519833695011693191651295444284127443892565239438093324090470607466064917551182932335239694051770451065189452679302965499835362700934852272916600334686210327988223368082035333130201879073421119595659245973832889711492672702069777940109382574243299507644906777726220881667418459266490530434181282415739207596006628685093855360144852312517822686208162676557834018165843228496013946354845840155767470017808451958857870107771356442372270721046674797144179997304022721862521862691976023219634018639088963980306761385632464271564991090987085556205790130772435828171013606462129220670376491297639569017271216147584287428783943635750142309674966648868970406530423650199916404380112403601970345673860203226019395396665362806232073135738936850686654095078722631347368564611068094159685299097173371275712956023749761762266564402367813401022374772606458877773473700591474465824891239218022284838259390225923137197669666714251258434705272824515979581519748315877671935435430440599893673429188781563828127877484208496307020538224538648686990995805263983529044650445886002706450018255934202216126915221836001949085803568329931945666999485729401642149950647025177690143998401566463707347022916121206252848019065841763992723576040509120956194884531645067580545871842705438793936026097330612187867254581406360982178416267080389159554868281743500391715773080997421920430009648889165091985619238829190095206816101066900813485982797701868279884257701005323616281489018609081904424708718522235630467974006675180957566771943964063736961470662545486926174613405565108298306344593959691977924519625147205837711977417179241881823699744131165538101080805955128010444568626406703995754531412138929401180605625575135318335078569379467889613541326705396838627913468578372702819162233415194174169438556516930530974450863650456956059872248170863527554951329593650895517600920299703392347433058272737751036926399382143476884548970702580493109756279991859083450721921316264475254402091327359349619602233958345752183028731628234706122307699449495534338480959304059901584967219875909455348177592744784671721177734200279400068787340364771588443629715073651772690709780607049504776058219255152170549149732704345247369200534860432655706550320133503372360308603904143700768141098699512377868507429223863565877345297175530514003138040382916677573541621646828721072263070918550527581702601075373619430490732383619364609471527350143879927702961058188072834752363862601164027205754536615362151417288904035878800237632481582750709866002744594973804334599646986250068046378475615013762485336887198708583905611684404498574589410290055658461520923089621382758125286558038152408446006821691040271473399393231215890570581709355071781177022699434504410196136431043947338566512108843578335479747350132231815163664678413930399552416403301970417290445434844409010248104343922441354020604244957538782098987885051373214021930692052890198987239083220606359429610062387910210604021906098931986774422422376487405498452340508069871081196371990463051159592512591469644225740329386609808502500127405146684416223067890587254534332000464677761776959208374037864549466038510017682988418395275714158915863024053994026433561353845715467821649037353522056333383837079475625099171334762488802410126811255588217082021036413614958706818329615704311459910985113740981333851633129546719627254118421109288252295659063349685372254439252642105915314675132275432407296271922086931411797066780177062448255753279221359547214099648160967641649976748830128907413470687988122699533837339332058412780420426060520933742112191808544251554894375675982801663934134476083095923454286033019056141693702309747404577285516760787106013012933917323192033737500955350491131910690017844109043713761744770900544588433804329371100073495505601623860197846311772569927911335657774943865574155511570718978362644426683264719510635474675672622457696610278736551334961990732547251175093843832074353690180748399959997873515599543191307476621900426169432775844582860696085366383791639242729133463712400196350215439106281067136335905030980290738565162338804129132737534026835190482821990205429054369907537797492791450306038653696346317346484422541634253528738067639076917305899204777360429598474127598954968818751213604950679221718535194463519484322283100342992673328103787235663081464191258525665924857279070330180298768672800887251532804841361712164320999604326323793774127922965568880180360421956747579629648940876086176772871588128084068620185120039090466848201671467983137419494396484501132534473378665624632134783364539711811728594837666292593739000258594574554297645170508325778640681664595624162104358952837963117294574092350386508632143525712068567189576320851889394389450664040910758106769382552269777769084779815464961465711600390129056476507971673153090761918736811734661015022949133518512532485049514250900809830426936979724086714757470928476079468836709878726652671812347420876109762465103825059015341671230417255442136159565765510755551543571334136047643139179404777659292312376086827068283972078875742697903561674917226350189621518108893384325837541347408522536165480043753812662711318397657058519780817656713544587846615081991722028106791571832209511379025239413834596800999071100136801171996533605422448311222003109308254060437341746830070777515457822839544255195143867241579579566032417256991214695771150795841327793702071255593573595528607497724624026500921460233157232094236190034491159637421414353183842779858064961207908002731873340280911751418050688108886114641144624282212127689708143982932437491419140907043784740860502753474407884133965692123418790327867237229562427406526638139803557685132024260125461249896331440384411613384056190131655063308521796727382902323202958869251193916565098360284351050598966957051274930858087466220984047887870995905004450020512940158155090484637661259619532802526833770419494658297893368362442138413092261801228112296611974110281644724503330518315481598053680552279842793077954589559189155650016241622529034232486814152535344599479099590610980630005031453278158748946402380425242288921643771438457373651249936309756239764659291328847858709444391469169741657116497330222713627453502487696199038190412452507888762464441885799185475034416823529132654320111861894275050441579307076043603479226204111044704913345335105914801954895270693330645787473765955209498853018635799924925124259837890828646936584837139744394084764680695573063091020712405275850071924808899736029841474706506141705331388568159743897499829965478746157703425066642341864249096452391294805427947594245189913167908088743627681406409486038739920455134660471081927390788332233923223575777919198861539380109536984760607106863248664770505024920288451207959744297160791745144866227565756461201319032872213227813068243044346357404014964039211964360744102132889053141484311018697462159109494156014423625892330939055213121341013535266400689149342763305145116277829255002795713276554352807717514515434417465089001542275004355537253371769303267491732139007734811743711562323910711650334551789054331403358113396975967428164169107085850881655815913124384845950139007576555995208831401954956170693607760743829443981352991288494098112766181561603404358200670288998281885676275115516771696796248712486058552638139304767680869641217140785133530053229466722970576180581448898855867327448042397477120515369897571135371898660145869011786239413350389261017380075541354255978880668695767777396195108068300923661277003792272281892638822740234555292807329784699937655622351865840680011298762382450875630973322533294560770344358429874393615933639593829454468904657661339614579483849558512881511773622641667011329623228436134559657464652079961231000183846924170896340536287912545980677561007731830393610174317755516870046394977105539505673543561635097963917195004185770650422335856720527481369398490424676900948690967370761588494148481469229829736527580792472953786749616762333943449402850636328112532288450126795334126166841190582688179489232345612258336249830689830537940231924797553229396540402481458969027655148401567147532984562821221668787474466986775782181028335782542064978827891687970550775695858744883703586317751632373554795734880683801354240902756799503164285234338793143833282272825156384455479107953575474929082394163554698666728329146786912786892978767981058342185291551525635746785588483487383902656121713583872010872381770424281165905513216143499705418069720062372684119961856805611860599190992974509560554425919252336768717062291614201190477710807797050399203856931045018656657383742515018540880880494093319683442273892515836433328633545727388937836328310378768180051779843340045371527808291916220446051194157200954263846814182080851863758591818636452724910845612554842525938365365202089154415991237333296745678459545482582109028382007329216901345073393079753361744287986670563020149617596401981693549981571831385711529370213929849089341651723193222900665095292822485875495137666106200767482564617460373496522007585127066488048174941929659684142675492105797788069634786859556021406418084238926848620174282842458984421114507866298848154134170819257727053760381758095453385839127357899015413419251849867247044028598230649024768243311558122187653303982182612721201528172715535914734650773514559059586781420481653858444310856952189608073854230672419707983187795523275684687830676663903437601458751050773534868091078413178711355915557283019837508137906150567894134261746381251431588605183913885713885257493633326053175564849534906520647812999840151080209286367890889520773295334803898911525203784585203573786608785113946150425614857690725970200772909239377909436742074845753488988223929977105980178381466602989344232810214988999547124156258559572499705097716069726322745984416989399292410940784952338152072408834218620947540152794736693373047349914874307070833204734779960260416772535846119422135844170299684939297488647163831308201366379622617077387229836846028588596310613750726403891679101159258962352539301593530392535212103049013458196673311865972500271767039177685616571554063252783230213052932352640807495931371319765923246615892198095466357693328006161021433030150459702793920337261744951713767271420177981625376887293861208043709842899220732122569064148181782496848801595317037128568371591495221194996460751509831776525039581764420140960702987464985998514385806515429845120307025185385362552831419262017574531450292218045372471111370689260474199835938026049256216130989022317823485377811491783523481698077534447634947038670175620095044004480535658960870130604156677008500914562704512890404901725644926300058155338298749287252413168129406500745747230553858700604952239574890442783447154263753854211242763906258114097461398063045935246658977241411917810862446952225181454396754529290791605501431569441721198598335531370026490305276756564520572666575102336518221437283490575807819947087566761768026419663777093198099975219416374223547660737482775772902857641415236780343053477544228262899062708669336074407404530351663060923452018629181973465534083380667867933007498503494963596834880461721942749820827667297787784638010176706667325516465297456540498767174748179900998873088746501829132808810980198686096257569764133536920828983720217461410832926319266258368779240420322312529553816866447659142277648926380195674400160744107198403133993523521324774985010716373239631143349925816111100462240041216567568895444580611374962742396332425014345320920620958077171299221096083866671131840653225850033464842262521159170510589209867748580836814865780308286201024743979101032724276487853961095203172719495385429249668530215798146348761522283869590658535214198665481249422706408879596138178309258156704895163590319170151920193079733610739351505342967735108232911402706318938754137562337470412880409255119614496825616173532136148264910629518206453642603055403271991804683539383871519945075414595815138909421268853897320986292994729909819412252783083750933000562230759809689806456463600702300071878560629410385930421998421052503522420954435508615639657484275641699522658765410101501684433316842200227844643084344633510778460030722242664152186112083117510455293199282891299194197323059496733956683509709168148465877345311920219060162244083083171589473695142428389552531774138668627266141732918799210589185381062461276439577841883072027944998520528182477471412115366558132335849586097039759572906095031021534878060877795727614394587827659714463272292512764790274393894448464950603365766568276523242617110069138526255113813350952166316996769682382339808885130198810673755595924101779560882643139820299115831278353326472179626627225035817620008574080888273841584385244614159936297829173039696588564784384539818316777720936471315886266170371409452984127476328607466307581313024784563791631918424894596156847331121568135941892174753775902042537228458974748387852355005644381696192318804330677122868248296360795587382151436966217465790856128954654855248153273047938047411578234430153397052624139660392890937734216754471060946050873704653020105917460813689573998626958082194146009974876319878851279007355523515537795373861373116345684939723330492019515330507258467750587771819490520949934309973454443878074128313145184189929730303099447904233335421551816338015486106541248192091615578224275169166406693754336686820626828221921590481928758635540447360012010726380549565563136165616353131814155615387194305238874187623998804790491995499850931247537096837696739107466393966046766275111735386024264935899404295361164619797557389310363563682129102470173468170106921185190065482855680980441819671385558940546929222474804253908255518956156878871228065965351299326775622142861486356112964137028902515834849109075984709945709942160211307390305667865203212003137317904734364100984343113966329526639171289995085512243058276366917272292304202615672952307648920284891142560959096287131395628597450585352991184611209935762400440837170229615622201933441700885794515527759828789847830796195115352838990341986726228142993141025990385218400932502243166254198013339438100391334780110665616846416363272537365730119389616415872436418837904752756979546813866878872272313023573531577803316023642672647813246882092300677975724932255748579419947781616560166427770669004059459627878664866653473486037432477066250123321416697699918577853288332280215058328555537073984037320104455853386771667425666877378897996213927919555079199607755969180261330349896633149951178987822807136867863192350223585159986054482085654469796046789607564273626537765228964631624227871875492493599251403942364448138065823140317835402253581621790707387063829420871273201277146419661332952686878867201995783976471281856183265902500827997794455706024360337902206746666776593845037431755016683117112331341917126965719609230255756948713351310200234418995094630860794286882051192031209893773691564822797342783066129777886477862916462354553001623897414002869490704724240396527023836040471936862061888695408658348402606438624694213608937446487533533228109535044374963163928261699294376875971668948937780144128577157408888955769909196295100775307891544731258109741377109794173718233515869904657602599755186066756595292509262108353040355163848758703178546613776690716569354524140027113153831567405097752179382188868310637106654366256474803254855429046789154343349046324337788398494002769676884915627053616254989165833111996985253616217527992275861610491165858899336465827891639832783081801724302780489427229357418893214974630849695639309598004105951469446299262830827031370059714382352361910515270703723939969151482832080312315676399045947136703558788947146392957668424683667314781444484903733000877575503656437041540347512068388845056515743556696989776884209288017828999784360637166479052671650652876622014630060151703437136008902767118083643502552916760924362710148738186480129924229279029724678431982365454626725804428932719951490632448362958766608860350593396718810257777591342592635795772073536566997333550060994111969176187202752474263531922128625108947288208676133828200078564543942374415356209146279752611451555366337565655125662984290668477226584546916086683369866088414615609715490033463246997863806149616242626785028563101679807618458772532287256792648747834189018338385686911800676945155822230351560575714938458142623844801649962068537321100944490886070669116945434087552816436243129574976357016139864515731653822800314865736128396683730467097343845587263141955838558838674051249032748130278067653231280319688580026437257733075963257934936675721101170941109304764470735072898579231845327964677961791700461879885934028671709353596647407986211187972051815965094386447566886329725472903881311514129492880562893100315323639265636784708018119489149228912726663308556496699274504352785474546109453912935798722770972646947341369706590680818328430106862137758247056178759022539287521268943816993790648564400239288094743044612722526917413123189896100961506484555031002659346103676335431997757532494450991734755293159978962129264249219115333697748463282524464450910720211692635473201026660324410642160753576792839595032801096052200233886638965572134031014182322411916649845761292237261253227568557694190820218441744441248887960579078544623890723020541830395574495412866107645282951479594630730589140829641828120435414592779521249887459464926248005593224450252542524024239538665696959725675105292179525687742683181988625581424290146731592504509987835156306747716389297145456554633992898395494471763157106699182887602735881435445223741673628084783094058367945953112829490080606345551212078846445610018027077368642129799827762112901169226065206156539030508264192558183273339352297309082303598064351931901263693473943263481811923848016864821105271392371168069889299102765425908446846219806145907295870758584889807710262311727552637658097005313849899707488822672235260326497310679366721453784967160170962112941092857087539044997335875570267826151863125851043739290697417777727479866873113785355548420674554885594032152494860977411462288903314084400813300790508018584083711178443323958763928546913337017000556127142291292655441831124551750172965555485832655481982304009330298594492735549473846778179637640526291018422161776761242958795738501211112390562093784386475019189364170415490343641300795060649956188477468437851565408008691654660745293570122432945781408665794580036520043719465688639846372215026620764920708645299353442671330579852614007257426427146183423397718648778551963035307424441296583773111429016135473780997487549485617366384126931194412617720148125897126759684568758332964688594991977839326290507085435283716965268151640734855849760102065544117746507296910427838410089236431401092754497279276042455216054903006550790742030685027893444752040580021399962823998651257456745135871277829882156051826859837136484121540976195561193494094286846344775998378732345891432964020135858283862859453507071289965976824909664545004344779917527393845496984875096370936647549705029458031230136810003653531640835064312146470297075171071118005038353470712467083657325684212641442015025090787309320728510468015133233192880789638115461846744880714619460810162376228085075175758579788744775797267464035439942554138783361826441087557916641217352410123351860585231574171793136070424843974585067517174448314044751601541571771173712646049008878939012151610290332621091361614936925491990500946451745941566879200094440559324674843106163796586896323580096782358080498480971032253386809406261350830461683629746024621075272670322117916867679506067292703996241047072233460737821022374150599280211040912473034139461504890823825696867227134739407879599797752520067241386112006388033751723349526120647038132037374972682751881677051338436352622197785055499450325291125490369357951452112789228134242630121844755307676618302517242809088680039465263467571345958634558607805535570263613477877960366025946095861840262723696915545478351998017913816036941258598517900994460428376223575493977615258590374130989378655342274535137191836323904506744977982772439481891565099799064988225560739688494223435477904640793111689202806315395935075515491575967171679599921112352417622995975424613298030386362186393541099321888866751707387095745899734756729103238632500791628601252087110089090010878091643992785260085504494770714186762545603212172912937883802008136434315657819161823574892391492949874763914931222530347689496402755906904769762762358554947256604490110088696595152374053218679544302646804582342018053065137030197332785892587072561194759125304492594384173460950941822130923626667521608982985157907877761022007339137796207108252032225854210598212117323198736313514491791147736285332636830586327917637851142248820809646990684200700687571127550961632539951697373791328732328872028614497182540997554512362817500049758687358005831086610767016929088758681281461107252161505102266057077302846400049430121489372017831939197679412219958588018056621993795089133007727702725912064307959389808615823211360413316982145249848473512759940325508979321643129004423456895324014463612060941607521073314597161404531053256953784676709372161404163273530279549672988405094979521064910894472543172988647426643856176563722773597005283272256715016512050646579841822745824785459303824896230289392800601127054296766158184268517450486145269901680661464901922039390143553670951578121057681920033529863366376404715079607902778902707717076609658459845178102873680480138181296434801420939651530501406221872041693224453326193523251987002678662016892527785433687594895155697956727160849524166494960718136750780131532223114471637978973557185244512489513875576753255379216338516924301718865296717454827552404688159675795541610020281351386710458407747449489636643738210857695939185347660831854295778899991224335593734375466669769069818280324544226527950837812540266636659045547917557742498001298936159564400746142510632683483720920657188664240875356820423201995298889069376719047613067531472190584203888031067103090383830009730908488961749613373686797148646646550748739799694820443537433672193975571963994003102582670301146575610336988360081364132252124064583002142575919819711868280625304943177335261078429874159363335956342856712597245865975678001164893435964949684710105085801791438592801852665401152367161349053525514789653032155261689483335146953666347551058256678199823493369111068804253324234560791615043733984398683219990145578241991764521337850098206262743716879333849776185369064556839458850370065676804779609757017459282651918169450669991262364092497354965538335371720705325958617864649399557341557183784193238345676758921064801841697719285666215377166363540244067963536662449334019097481086170940476346175988533915941905977198224369857719697972242839611846276183574982116320189907849003512074299144334096560551351588744877122106659955702322288826185468718871368181949846497754796609265983320049202829261513975148733947363133217315463003890197745444741115271553902398257098212504180385301118036939651598414840966922950436497444899716674482195803873941665225743367892672886855924182120031070086214547501751059899044146647974793206586798607305977837164240039362525595845175819385438978530156862999807588317772164753682033807939122427341692324381713701780155840869484644171932981314072808580635757018839088226662793238039558415569956926743866199284755247039229402406950749864577041358033185654563028234849023383612995596776884906194020877303212652226499492085066728757206002112428631103447689552394446503640693459199788511481282108658424487555932124521174335289023845616680523791094206760952129594864152011045379399674455074235129654227475689594483568697727418441799495037304697494826432109905766797281321560743154664943194812830915912516963223419300909815972434995197495636562354487677080122344660392670093082853960238445541933865798559664991272432035224056252601435947713170537084924707695918258834941650670106521039355333719492544635567753717311072284365901213092742157638596613990096260153547780942090025213308879597141360466367330771633965665464955732302407920825502507169081658275643524272436975845881437469876562203493945763954483855302253499654836500145865770635647574207727305855249537180768973308461746932435257428571458684805531273487788159810707826322098219573573347008424223959014825387928320312057478652858632161267316138536123598704170469099126780684490802257403612967241085268371641143329778546023781584485975681052081637618952132251418370540252495173186597233784644384950631299169820976039270863322013786176165623386387366052279453961252733037388974708051505554907376458596002674221282122117032064141406970124051706479965997419562424822226713312913432947555072824423962832141834241717254337042714772601978082498336748859675003234536095846272589730326250057150976483559011844638272483091046378215197124619723938546191414981255491037978487176740115073505964490247192769692888344325777550273715434040607116939168457691653078864749362945823008936350325530726144738196350116166157087417984833833179975382594267783390957927725883061834887385318917015630061761011479397030736629871775630861259061595254778231693900287779403546480082634082997893874247681469846288892687147908686900790250619962486450515078267594667144918543534298251577619632933524974037384097724925953387787351908952690890802506592130561089169606688958348731705262450953538476095061262013551602508387489679331514913835887652941347057313662008708284396201814689233623093662258278881129224704981493432767900187306901685064435820964641754114502042306073693719611084063023825878960202142106801062548580554054776517579593476685421895006418025349217924237801892467017500243257331258182383504725859144748028415606429526255040898182717937189257871398711775851884829038061351243276193648350637648983307599111540098556813508291536029908462017940325634866218258164317127715947916726599635989840942531093942984589800887301026711994826313653388100103066357077406496442039654313017077411841030216653080040797575275266825702150567360450477516841928564884945874835886929065518333937869077355444182926947476656370945391684267869166174809263493753783095300714465305560076277714581179757031241600245948797505122120339814386549298584583627875337297275824593055495748210060313192708405695793993729128519578525587097967568911147924450663771622117801400457177064491688280569272287898935270980963768980825379318726307309766809830869894180824131696397274724428139164452407247397725539608237245893624072555270705404994980651858664820219447692595292360553396473310501521284823917867749499025713584269146550913508282618776952842734602997859619544344935040577355712459495410124723983016078535013422526208576168487168811256002097673584916643875373782250387591049413516963466972251233464850127217654613434096282586621218889275391522501649210852143813527719158099071458297704505535660854016662740472126133289271158342792967166829905599477450055516972681776100832040392755246957087441597984124362142270476931537829419001577689833080119834259445674485622707121549395418718175685792591350633482313280513226815397167234663377630697619016117462204471702147286228766336554800382408895598287776440040976443250204859962878599349775117152602266984453239313692954654396322171254827310852298672089649521672679208946049429836235441299738857771882338211954105940923033977424507930413149982360115981091254415689080019250727172238657467190030376623338719055424417185871703595771934409178839287786785266590243799972524792850845687063321105645132449652181967529528587901151148848085722068065652618026717742575353206544456596075134625858570938974666924026185245056914686594006221544625253930681714196875633500996643444194883649301012450791397441888430737243518817459912054708842224418688355450001718828440157431374907303810519979380255886859750277824631483095353419783848787542236334424115007929017032031861374811218628245858600333478005365465457881769889249515833705499108435727473513525497908289486607049271131955045156691510867380870416895808995689124627298148536115587042277518711362505021317246866399741867399360300752325798408515186453598589054170558637848774162482875015434433941129357752093658719755266352835331118605284622528868012868902884606482681409321045271505390069192788231851331401416981394712238098801528371934461114921160241900743489816697353299841321737005893392560040222151661784123774145878109899714694926407420971001128940228328538975788949644271922905621110016678515895429029346417147254808071868085343846794295094920922979773410879642062749734127484957194656776361786507641553429662871668378863199865619617763544867183747458824728601362378319427448614013940963116170685687846198529987458111971852731034216959504139343895897778171941126775217785924294212930402451317325962324485179115664307851353349010679666272391390985111679672704301775850378474527719742586146483471201255408381503089737794433587201910444656298142518181230728182948905336529295258212292285577663367369904340856533245856004491522693509686615433222871006918838325797229604580350847471952522237270700323007635478857646988157324217467820764028165186691750487510538810767008429236535678941613020065936080943155740599051016614864706000217927646108970151415425937082283574747210399419698264180292577577846964614849643080767234183779753235435327845916736268357306619529296199913482417355780003237115783294581525894848094038230348338978184815550095592318212653509780251557086079771139384892546477143156159499315699847165323223548075489602240100287456150396026393888738918726569089458185411283468096796635359339426585208147282039607512426017130825664888371843929536793268517066658004213591224259137965256763811185444692711695046438997346608199820450856339571206723289159955865598386263259635087312664620022763779819391119474835748589935978051431461930134854216341929591109116855775903019390784423992554441868031384996910115771268875212652545945758541700035539062130218037753313905309001206657506377106999706320384814779396794964245112453766204736569991262427436088331205023742698214171843766271124953520374454530047151229297270180984878595957826211332905065542645566793692421024066103031434627057491514444878162057504099325257983653089955608647514246708822555400065122832111531780424768486590823807061513230065241242583491922938719376139920867461250731090637935162953833084628800054134798454621367882498439085589174367579798325129669102453740650068333883706905655976753702596423301781391034567311080234375030902524383593015073982556497968204116073509215828352722572408609550989363166710066264286819557318402037395907260874237900268898530331729940912889983508079055627959488904887299246750677451212740593323130787200740779343758021079571552251968641871563956529572145557080516742560108700228828131138318379866111536035064042752901829260683518423110374735859351577763971580712103879451394350481176118900803353564105169755696715891277152990811988617472680157684465398135753057521754689903257297908514463972939972063968034040728510780796588189754334766338114625682015776898795144521244618257052538355659843677341964730735374836861557151000611932965579851883570503027479619155911341543896569921422003438182501216024593202368199760941692510510338913664039956154667690388351165760057203272786079934665849366214541635316625423806346669642809601012099025471273834436992431488624446869523667914622078176244026546597709888869639552198019071802834388259749856247165303233154050672208703868292976824072209086395841430877326482472011546702980291680165803508813449119690450863167739953982654475735464875978823824520067681986836376582712296508886539558252694410945216167467678846131741425164902330097362477795360619958738632420406223838718242269749140214748270393032808228505265146245470560760453424473743130778206769183155421691063961648514130266456896235945894552680315751356816207026866201973884426006691122192575857871097756570798241043311600113153436314426860771631450986154485494625289705721699214872081134858154772721824372796110909085541290908377175811490347199750396445849230638160007904514124868155028587167140760334200969590716261935372576426377556764757804223337705620240791619185290585697312324157518839768340604306632470444055077751220375052112576762110193008598538483543691203940577082719809616914297599338961368749793834257084218048386263427445058186726976630097397178465106584970912389974437969123085697758323483333477223176011694316115902099828651844090322915203075817740320027809765173906415998552544765870572709989924292728926043283879109178680926552807441465467270539909200653585023072747893065381219934933619118633250314262385159361352897218981834950261115177408991392279945595106872049913957063211544092044154668464822356520919815278290529753345132631222920169752191544486628761017394466640553271213368941484747001871830593529532153230215306269781863795014445541686224904743026947480184372182070674694652937511645606130186062907296825283040840772889941226021113296756791012270381743315691464999910773166956455558400802425785451418598619794248511786068683753782986219434138829046930115562907661645477278630469068290639245462280424007149322126355300875452581637781045561297487485975038867510169770971495710309347032547485274332810844346960311744658434125488836646613083966184622236491712326634455341776748497811002689280196288797895364799584904741488638079998636470794260265302900867328663649717221298374652145148109511677293241464164975285698695267350366949454011774823357031431505389673201427113279125278761715840121515668994922329644402490399105060257236651571116592727931689389783813806516098739524701776142355789856577052639427069989914620730015399641835288710271215018559787434134565952707368981134665388465810051899021904038469459650677233515317152255851899665872248596511013190817294818576764298003167261888381441556461017275478554187603492624853839003525344736775436970444325346447034952780673460480053509707270386338864329879266044517446962784151943770201543722397273832172858474175562130320489805178341949417944900759903018998765184076848626122594927904929966102535972100078630327108869159798019240911869663849460119026749092605185389156213582406588811361283946733012426775441471730953696058272796539826883958101703815088371880567425217649400586033654711914317267963103014451367137458652377602983834940761158111627437854582007973529785366463073063461195692003033829406609624709599072747962141515434486341590118831887162362301289480376031605946804197333896236243756862437181777773333305440517750906290924567862111894836410519267988437510421583587426388702934462132288542011335302382044863299899699007416147918580249081909177148082898151747480458895541162686301128177680202294587120689485409632659878462465615090247614866420423216411689015120274908196583043182012569615276820908899743543622497248527549853595616026836749549110769536293566291200793933198224908037107748807151666769143365713297655299939627989037412475372212471883060466051419893755376569018978851522766643113181143344028734570057800079229424704287229476772065406112168145420502877481395556868352128069464870823540143292946950784079770344330871716617995665695787467448189757636995639348630521755519138844420681468315770310715076933725986490612742002695508962329497739624346539347346821846418248505851021370813599753161354110619545804245840182774241317168514518700366350347456001141289745452355797491124139285887508640563666262886637933527997682418061755209169712799635513331853306782362278299737773546061678457098994169023886348616614301354930707680764755348239643127198389307564849450396109913685830403420617131871488231243039459250852420606547152514385685347076598135474482741953337992425616748219625348207244224854491166587622643935654150724054237733846283671665941453488459195106375061083539396370028979133471179545821246705461626182064715196537296564625496080461064815934447214004713255535897076029230726472396365627119600010038255185143624588950352980252749806316111770931883322546429290057768348137421067784771951901705822446947921273703050211530349499933539564306894563279127496485729086814584860034867789361425616131257810213659332494517623238616223264605143519234472241052541103120582774138720815235991777809958255643675282497655440817094979014821108857971809271457303755105948218189996985000509840232186381697311553795601887900874475892332737538358965146961943285768578458327992164062333855570468240477183726113809291814355235970984144313365304977747167612141792513336134932556505404276554506491363430100493080212681529899743717889043444516056814795996671920334619211422115837341110380925547503785279356438975030622988413960314491674646963760325341609265455538067060827627645377128373119799213869521671155033913002229579666126888955005808927314933213503331773991285109394343202336896508207993744494625054686045431512408550787605965110443806263611339453511401875793222740137879209485820174800718759278352701747723911274709938456119992176397415858593590516801108136314055135024210378254525014603338801008610726760711193597299271774595745128740037547070972051657867245583625238483762615713181417007758553766113189721935318141839911334483200590161238813190532281303038173815990983845332611618474914860362952733094523909245547437338334905669238705476713925903872127531515478435454062558014202410190618701840497662751928996020463475128397749825731495983082392113287614554260305848506353931059918860894368264579151890001484354737706947369366745746603567699457681504660101862555503605266745081219878460992221616644546848711685800868439551316319620524697884371175197022752421695497781512746241094953154556164031759206068238627676990848124621785508624515238886398925143972359078660608104415790731741053044643059019352332896725598298329773795716851825008638659892022177453238271476912809312313564310355937601532779921325151168839885879678433952991961818376763303337445270164523201971365911826009784089951202829752231145189213827832472304770135816448156482441826692771188379508297817818457277795242219221160762578617992669821058471202456813058194765704208986904146969334132736115479730237812743903972103504595856869582582124522534205259918786203081652541299102283647147087687641322643401487582912263384320809006833518326899240096359029904161183920570316217606584142992059156135921278048058605049309137288322410283601651891140707195268190148270309256516214070512913980509172561948396573153526292149214366809946172824093459561443797930789204498366919492698554741106508318292869322267888279916222286078847576459005563323998087784780856708227415720998623749667861430395443541725374657553784147593364735483633847278742476278899277543192746027018953090463903588137348493311735511423561754729670397751317437643752102680104455733712975154447412370583410878072041469727687206594228253630835839843398486476083594750319118392825406065203928881685414836852707651159751490313899674365540407184303752040356670798896051590529168914271578726235279985155444517241587524479773514912867242625143895042055829243356348481643669674264640261553124882134729077712713766423625850618951754421423652240651038119250208048543725377959318772059955592421618310580809240898442800956998159748591074239286870810904170887283196750634465564408156671262548966006831657648956432307063224001664157712071030470297981584877744558238432669114000509910370307669720478523113931860051782861024676729224787760549206243025595120728592805328623068447500262174412832924568930203356638631336098434968726373313380344630023088035732112920817095383804293338485428515339107756320656033967393253892697003281580392507127218190758143767262330129422825874815736190557212478157800176457820787702796284215980802058458571176658382345101323991513149911403352969811761754452689357563500278238211225675707077398331872680698343764316859158050847652680139917264692167271696905560077548351515562203331355421577855823823536971822300703747345150903424950008669453651314818252559524215950741162007134621103088624606951221071879537689699948591861300074892111486818320435426875365912021103034876512749203182848331606891687046630926981523734534176148809783533554918867798330951595809454828656392824290718755678952990627605016995938134754378288156906860109875428561361665216364058747945791705250724943624143287844955730343390937767908124436332726948561181641343518372316443529945532444447477519177643795140156526306058755865564420963004131359702361406710264619845928939672822851000601737148303134378888171308885622648485003197983331842416687206738946220412592305593927730237538215898454614885488998702497623929346141915748186750713930988392768228897243557998842676905251204210997138859145061951284927604775096970824575417796801089820240483655677167753245204292767639639619740555766835127102966949299596461884368061246673031288573819297214308355034457730206792440299237282834524538726655183502053925679262957221782073430135563506773184836136111005671138712172400331801504869783325764419768037093365635456216225087100899179149252456127488792856339595813851660084614967279888544394236576980974207149172136984207663597004015519105091440377099097713537520601821511472842819721225777887351983513856849538350119206500136749403988513080969297778202701629908516799021866841184074658565565847335572513637050329107148997222506830029392969900880339152030724835542004039880367772952493435196673416057380661750418606167748933238025924999324666898238540719357662331231549835330570689115600352058769293416249383350946031331624951905732127775943479439651309884888096230622364208951529098808416991229320189130998513182565272851506412966229493750612246642410174842507922193250198630635352761745637203822297387455897788512129027714859902479189904590759782826774422064828079422656696637879333434349743255551868738284804456116766857416112755895402095981578795829703727391344181950753712525748118482789570124612893520467693647400206796051726181063553295194532559863413374029118254850619275121594738213137900739159850967439959605147552871363589172916337775413705832443957154517134556057535301762119519289774115023273664926256427932226255872935986151970267147336790850294414421360435386501423983409803002983612572741031666299883190318374452408530160382022318326668231348221166533516895052958478134533514771262030517483520255239198454148326254784698627909406862850544026504698215489908151155809515226263702404991607575919584108400641302580990485782260666428667537406520310686745748260024992214635259804911752529896644464390492054990162090948270879975002948398893708939140187990031790411807717556626702530670454966645514390172812753294299673615732612818579374796665192763463354127646974583973456627819262507372825679203112695429365763318441115798622705822360129876726018999741211021186718229688035282409480017336907594495369111432676811522734949155451299088943687751123694187145123894733424921197967008342444879637903713836314610989472484169626847505990571948216617765202454313274878127085548115647713809322429469631390881609651676873530446979283074160411300857434988740668399286683115297754639318023348629062341783143867626198476747349315527903272776861603261334688608911714839038712046805773730023137084452777490957210634450723345903212734089930890896973699794295517227262797200588336096779138499866916446627501538715813163606297293958174569198265050615282449940528998937130065057493854509126203373234071973073839606443963089794376247551227251687538540957529617393437643940171331641046036996214716200791397255389733816783778139695372975419950505718682931843289721367571898329315780942173086933592946509534205297564696385684122461558986287812669360162583284075035843776793711432970193189677157511031952724954707135970859621044594592576256317064353841768707576890715287302801981372610096464531615867141985499434325375947640863591361477321790800546366192834985459424728558840626678489913654771031642842117589175084304953714768422359842334755578339153577896894824877615412584421837433937039034801953969899570131433693782793803898335990756862135883466943697863938773565949754341605594239669006864680104996648805379414118963360479273197453220535622267352238416052098161810105366769769669316950316853221618875532641218586308497372688615728087389703859177126861225642447038562047200404709888939421975708992617626626750983651646054207921568542119911139405958040245039821726107124697406119590748250980430361768943274285999977827064553845547949627388866017534276988618788815570110841147406514228520958821506985439615613849818082363143354260996569652232410956761544713926536533739693043815421494290949197311506322535080281808663442187577883874193016697151649540002319374574571172756350924475383502841515427656313988708821151469761183424893036502198792570186959879217454762562270358915097129973992432743206179117119474757232018211725018124727984618505632353253531472769289452500847313358944811431048522766044370750706405604081306694362532478963760194344564831133406959800540359638222043548596353901516079828323590295920857432871022228683189358524560652424143401743032473523402786510524235236959887083723703357443909431342493068353930089866285269082671107338898355684413219770737089786038344747076574979402452237874629010848709339358151959131105822691870103198549637398679021341652972603532935929255826908576780887315914695162032771824433575256683912501971211276052848757345613697281546642162901480524103954704328430017715651698231639167260217441941063814557682301744261095051608347600390691420331936420643740827691341938519341673870657810893510344491433155568133952928817656335799403579275994946729461207429351075957925090939400161324977854058647153535347993958000906186140694008585410195872092087374506939165414338982177951696631360828339684388391729666334708986873677079266650116798365815267581961301865447493120910837578948579420780329542258139729630373197737283886060926264659618390924077884742317498103539521958787874717465371023359180633985047072129018456887248576637060791112191261899680377053968858189511230100135058639196901378362921021400893830586294080362727492567634949653525897190443505141208910569487494266016791383993565481529462431428664983518611026172960232918646834772088211387538472873025217124630582132265102568624352103677844381069821199491233761871168469034497078591584395780468048933302935628938554944412177554165846187389349841315099740824401249892130287700203959359444062939601641119748286223350918528715451779877666130250126992004039224877349411163539876079155805845724794488736544099103479531458294526870545549967633070047163209944705217118644420242921250571657852909122950174924589162246103835475993154204292664359293155048859144793418177636862360100362495003281576222262378882532367889923983153078624136490990295759670004553179963119170721219835841699328366072690913846308544391196242901929596673636644989450579547399162148984072823352156476256715644985508249891797397846480963532734230236413990565343334212821251628869284711176926371643385342586974681066868426281719973348263798646122665030021694315528225562627697931130757339629744967814136818318875987592594488188506427607388524101847331571075758804450185716236310695663984641228066922570616751984813490041353565276728848684229528123514753820058062412868953247695948711037698407965738788030733730753418669701451385427001127902023921199471246176341359095157481435765315195989009232696300203138528662409833474469385645434636644269744129356739928645206593741165744006209932413026728876709455075034525785956327589271576587758809284836428441966088227154320302714373389227542184034801923582787820150048430339932341431394173507862579726451385892764395715971047114120550739810239950933466554350262955070704827859660410034452697062941138727461145175807285068439608589841898363919841457985134956036770254060376915437929213220965731179761409103618008497109520279691242661192858989072379234844160419705136137172104751641368548719041100538033290115241204217982480999159371358867862665758435823108543465028615243445730296785870280116728602592739610365828609953105511410673348196713039445507728498704790506293139802850223405027050939008850611123923258262130684600898104997856731232969052066437766667789399908061287394768770638101448258666083631613959546747700188667772498758086702227988025205345948478574797494082543689165476316660092165975063691518679881535912174056918443129605046909255274428853193551212058159630622026688447479999070229570137308813236116277861509529631763557042816074414438322403398443496076964342922031991237672062161262120423248073927577927931785636883466385496158137192788613715037561821516803911746684671764477151864493813282503333498758654147772754756366830387872397693869147864552339265203719594278723826863559314370992055515857282627009459971951565293588639106610843865378527855236446871943248174160826984286828405173974771923316808975959035655115198289286675392046958029857170484444972129357931998901504529502850129192077041872939500694867277001097853650135528855223472644532548550285383190341615872380698199681222502382508166022754542896592067422877724346526391089416674089354594988031757663406437703291565727376448225688920113655462855657032813688746022820086894883556043117504213598881220882862253487200347793146572376767798264441453304339376304395650878296745998728478039072591185314081778500017293025643499604652783692409154856505300194231281577540857991225358035380164993884852288489000077931423360354396538536116880465978869047866503922506008154424181620265709218092867035166275902162333191628966752353552746834634405092197273677252069729760170222784227439076767937387138437255426793162356067301971496703935573229329147564077294357005728519426413055725642416375685550228105412791972428406527675846824279235351714221136632745452598802247722903611037757597143131413072709952366216894620508626220294540182300279643991431146925917759326364737565517045011764144367503508400675522738189584335720058113153473401462883739464011940624528520121238094251436411584282666616903590112087765811598609935015888417914829662561018990146590199510447025155679213178527583557408557744153308358384716174774508700037655466760276217285804097045245066191257497220870810610090338896727834260593493369003348446593057128473008844286243096591400189042891273384565070805837530162117509602455402964884938731544714456290157657121358954015450555089460916716905116211080533697278877580051944839775822850510107109888155082922991854633358641458088862993359202735426775061095587474778021699050576912669482000932382577676610144126241258150538330796867546169747717941141841512702460794705766584756863380365793976481826748259081556503616281555361139994672674507542485080387911373712834717516063645113772964523471854766597869840613167596680433575592698771807394556199229978085834941818401703554782037428438623052950750518528260922125011927271316563501799449483561436377733048543396177333018390120148038035217134357368055064001565274381555283713651477889039532588725173280284880087378949121854270973443353634995178034030737290698556814264166533145370618162149733431444754362539570539092255426219393565926004969433956210277670647743404198572898300487528804982795339976004148431411023286401985455641689154102110719468016042722561123974443235430769490747467961391084709053316990045554718097109224567663604519288166493839478892632669549461326513587074119337832477902823842760829178361579435525273822598109885335824409184517373291783559888736652797738849817576449343474792844724274047858545043350072027165706545094134000204967175814694913078188356772621577120566455882966840682015880620695681149490725782950824234080018960528159333731702998130585871756728071034600460129691408076764032596616195965602095103242674658680786388832952986963994928992541042807568099084248622657267917324205488097068363777757057978481859963534913745706855855274814095498566841593141529360350143279098543478232824091695836905357347135080931061476219771282149191329970719750947518388694218964707323790883852980938720645701635560209673140784506980884221373517314493188067288201061228479645314970001875065794919364690911772572280234207068361115249360647391928806506854863660894348492251173435537302372135011750134025585567683650609485552858994764541944323749545296495786181836407616774191571488006146892731378176960037284690126274602256568614875256485187094440381767400546763749385258230339399296936917047602667431996687188328702940331474986560156154695513177847864294773842784885734384136015140536454551409841072000975381294772647736588100005129529877179861508181919458393772862439539417737263054748300104673878762914340714678283023526772942778866469271419352480059927825212850030353728434526542807613186117299426284554130132801952270270743281379517593241510419817252167576188347789004934842401910170233278571246571453842351515188620199990152959701807365977498748455355956054402076382629544336759075776524108653974729614364615983092146832607017715727765086115153571491842133802657954474823825023180110909917830405699673137493673088750465592063327168875236571738362048223442300077667228099219931834624069058759300237174130607696651793861817707395273765552939155884642062305046095016170933325929998650796713577829121348137983147496837683132595704735570666980038495069781823831879092683918729276251437649920737228784841212810013932719135189800082268922774642697449435004666402929987515924184318430313167903037333332261042083771619047167027599254520394710459987271619291561466550523659034904939342831167225884626981719856954979867423853161155671455919726878821087762594961042433415001149840571852306498754582498731240869481278159845265078261294277490230508586801052616629529886465237334022872403614078362175338830666519523218625902892091345626149385564433590822322908108640790303791652197557110246589681462853292160656309830276484682557998612578904718050048861186547359178351840445583695671157292161666296315178363643449019342682400398961718044473209152687671207081297905532590353014109139801745210112289236765825275053677232730748510883364664257402614681921276835084300448114926926062580799041390410227375099214032126202107542479663161272500475744663017944954180586238579483398583536976530825769266149726672208396230190700731588533898716777520536195347442205928190356687817525768004176779879557417941409267166107702807953791306844457080951479036049416546491644630486325486832330236404720999850127699325586375961576215482422826761667677704695721566072656846015915943230610053555336606545985381477131466169102324064074025368069634535091724139125981511813466489444201584615364971118198012244179937440144005236469013794931103293016141833200438994418404849287270214414909582014177846364367394588663181798243980130854316762189876502362267849319806639431457430978959015706221902866999500366519056655066090458713945687849142141543647767054179377297657406397111987477404036088759590413326272641692896016563071971185438495530082709601513423834223347293857333672099289112979939653174425605549240230603602765383243674702749264734582126653184490413848274196422613968561921608068797075726623021931249151317825076143566013274909559961022567419173179204958296234448121938137212433405952287842949678951243066750899637579884138740095082466249708238723719555164480786293719588047335345390517873896257263805939533755916824569547612506196977003583005389695534808777328144010366997951727153379861223982786089770184904716806807825545372462833669196697267706002435086093147627307764693896978995294665287766074477285250566064260304289090528332850703812352940817864837867518374233660863790026890455365364053281252252695746807359773975690277116905359947856104652668950871712553381919606113021029203724360861811236897364649251928150401193939672664452929323191628922761098659020918371038173186307482044486936969839659434384681934124937561112707895638758465014862612087133319700762748464109377159467341715668099639541245272534594562151820931434825761632591756895419301069392343316637333674879395637611899048176784973187196911989000730893466796937724385001557145839167596961326061503871911458523230800357383592384985926356639424185719702611360015875836142776987330191940430713436083835139481226408597886345402902179550389012663247945565786846467150631534877754684756915504657334532146674273987904919976647232051588018524792641218158876691579512709142006517338498485118836410744638428990698511716359159912649918934280222850191847073414896771113032342264628648798948336861570127031171289928460053574443202641654369572020679403877954697409502517840028188645941075739343744949804265545055425373243399533399175809441460750549229350865810086748100323238159785014803671683328557649203207611566091673678479172931948824098853987919982734912858050511188570493729953365631640920272802160844612569250122563682569103894309256217072134688368328989397352117491029023539696891740196858494102351694100046212422358646089068444044962630453522370537389360013708563550220716579352101407342392491612071661514779798925613214543459086115572915914018145415561449101086083969801685507194709472055290450451707557648472582972651693798755227767219526315667715070012005059626249411511941886345083426928927030134483385635253740688686133333762564608347072617642969651172801996168171717315403961440722871003502335049614272555786103807124928562237759767669571236320535685499534021924092370538672890235268460813706447003476536057725624497255348617507087229824479578065509182712841351186112753332659950042973019807745183711109789009744382925993332324790253991675955842293121686323087066698896615222797212389197832865679468157210937460397833566593728867052224166856484558265231279411935700051493796589049347341818543541994780289225566435783300160038292999418825568715259254484890290333633630704810294926513518343244363467538464017319206713777049001132800506524588524964887320125533341082708732445911723152037331105615897089351282172464887303850116546499583515342781484213186438360443881225689878009573668906283299378640767160240913716113455950062256395010897536577245641186038923358051389710374463071751778088922618750977247924520588894377737417623460467539661565878018955807065275716785705891722092031861359491165818216649424044480073223544918326078742888095484721327236767693490084144477896396623897572737607318379545176239270152721028336534883936163135540461929371548570346617611075618396460060864952157161194956094401239320254442059088363022969215227726105013210090293359355199240663990738888588925727348578401693979390272011833594548065006251453173052867556192818970242198881395789199965692861790213724530853975680195481877375357779313523808340633566603319596390323568933972482632863422280122440829662320022239484050515250668455374778882394851636382054297311548379516569622244466769349248982191207204451376335462389283624577099307269597904996557088580197684180289018763534618750765822480145252022549210674898340188637405420158734522259399307657358537351951049917189641007680716598288240016197297854993153843352696302087974915055793478184586485750518048546462954618669225445011517337379452487907262722171646938556719355459176026810867509474060034186457367730059658976319527143231001988483174803490032412675081745319918392390788815216782277109131120294532766739702452628705192722123843319696573177966691758221292191154044013831507420972324638911955664092799644472654769463617237215244488279750450455768819717727950150180625631370325147897119261568946596886241431040004686039966383551654865036635961426780047650879156793561143584217794325810099315018397771714785600513722529389434463552257832898352655110400324127902026676850764037816836505357285828435707745735453787900445676306574465768243002331300302126420868190330514395398909551929872795626370529114204687549967190729828032286286648396196862608757798233910662101653901323986942953744595942850154508570326588152657166841468094107955934594375558675501050177844385880331418132038224717970109996405888617460152393492309020879143206460262117806619120125239155160587527155772716851689458797892652466843010999161176145013776504254418230085041357651559978802232713125732144307940474972439284074037225728339966554469369847503096513336012070223814712338182760836392556456980599452569458636438378949556684894523525083983995206279297887830672458454968913336686673376375320889235701630877077967329163717572424495271624090975053210345525013015128943755778425504311394711709589957161853219928570970922018923784337023880133940482926151643956488828182283148195367022397696847885707023404142934840293402920860347354351812332043798865034594359019728173566918607982825189167243079301778848615719316247795053768993126552203175787560806407127918241095816110679971580399227268630737862761593193904479691032129123368030595601831077274313519206077924476391590891653231141090702900187887912037619672796353965028725644715151974818272841487601390737700510904933153267043913924784019523262037052333712192681859460525764734025240893445167873112008623794355497150386672886755280397088557014358809983704257091560149446790713728337924681843458484557994254614504529001684856311551886317497840008608662011233888033518842024081078664626073446047294562054162283637937778378003891121921740404026941123219079593844379378249537674808640344053999545588289326045346328747214498880292762821077933059120198300044933502893113357476649677075107479495424422962595514483908774469749369783370645425734108742130174962146322225203807319457806921759292803465684042544843776667814114922980210707297170110276940255397672019535162988632245605786342845057449985134763563208625461602844393723903614973279307107051565236709540877636379440102176985930078443482601210155028824014137867306296800871683827406412437359893061550585052032940899280803609152943346659302919250624523248576262259264189584472900868804421829933233520980021644006747929376639674838538837342380004369265753892157194457768264339594329844620265685611532607906331172568646894433369809271206134782563192338152088502613308483968993369236541182011312129997478080255957092599586445059413596428496082189024862494211450350854140002686984739966353367101990404013528462160063623150252725013372888556903651275148830636691991738133487375011853382810058619921718806962513427793831134997219172209034262911300089033501809115578552648234786427854141522515997832619995208936402596255450812087769490769644366186586343232344575687841534695208418890056330280888140818944386344973840283366123038068922278615191288272960207395377953490200987177918727771403228615693387933029476030464373854114645654517327297500934887252242518825115321523837783346672597090507047720045475998002859825237999574553118532506054527169358242456846264964906787943003212313493154818612363670300456683006244183486502302795181333770871488464885716941037941828723363586596943928558086164236818338354855747848351326303379887759653875242183223899765729100973115014827835428684169489874681531232480542827715369204331391777529492400589727945418754001128082209518007360962531730367032246957028969857768973165271797232234051898200771827232519798257157311721512951707523494336729251833896292802841987740168889575906188285980579564954623255967779429805791334688913804315674790642001731333528238639041216456324418311583750265339080285200754837667549692061071291573774134564051004683852811417751850627109557463264473439515706627658128266289796393167621081161258046826862505095231819075089475725471535304948665681837310576475248085962108766345848735184308653113513737793286793963318947470756436033577107744564702387747924230861490021070236920269076143985055992985005926058756194583706582972907273610211795835602902280658591745808668612813609062228588420890872372748238051919297216725874915956357635564094189762426899655473641433516420912673840159205396535112090078101944648993982826881406144244171000069313695601032491744500822038798689975035748495475915699400435067353901533215761684812505110141200544769628518989418716505856739720649505922658243255442452029767876828917233572815541454765153704713205245398474967445594052879777821794755887706367956027786480644383949971290452836069524633075035872903609885943024857818912165040492580182611412416306108131066400967956352043663110866402670932416093940864981897777591461022197364794811113080226373699923490998284276526156461623888605589611153919434565293851681922070363312124590624452630934151676712512912046381097340205677763702126067239211139176726684905124841350597593721616340909129462756272170579460441962127950486400027383595924838160234391018866487882289251448821324085583352396907596958243709302253606504945150742244466138259457691964051205064768411078734995762760733157599570705155637478463789974123535933334431394504488987050330447709674717990086770098430928379000069422191246010601254108455964189431867217581241847704811031150412486370941609478398407981120590107940375765409511667683788661159801734408686820674730406297118313797665438786052650445828276868645978556120926256974353806312649994168194451875355480436198174551589165018992443487084481644389800775456987295080917999816561175341718095295077575101573682514560984362654746693406929908121749554031128438332600148215443245064068120265341570630001376401459911346441525802219903293458092099770085958814026201631171246395725949652712934319839385389561765391381714140968866547288165871320069162515598932734653947488464439601553897996884793086612242631195075100293055987156699820665121808489967142787707905998888882385387538362466395181685684818260277457921210873765049034016409425984202920456843675860086091615158219805579312950622526544050134523018279472403744613283446583406627245127705019922285762512796492776352246082719560862039754005212677892819991796039830747076170674170786376043756080969221706744855761662647913479940247538986463857180135766110900515180142530690537801358092851551060483252158694672189615396375948259274374161958036960467061795268086677294757377669956862421701584666656523519667697994685447586609630871471347561214519049512366046082341037871782865515280437718723046467003945627080743206453630320007862249774871814393392311684549984569475591643662967274815394582882891224876192161219917909392531512634660352716441655805403016488000013747700144652665451291567930169831351845902581046630860180110392191840130875361993861065519898789909367956903364357508955913772807484105830368629014190545471815694746951798349276465436758638040976878279264688007336312378326380557278493615156900423757681009047654033566405709378922974068604426459396638407206587739358110030801436455659308031547332257986412482066827522231070715798566896896451536028781782942236238089665400485500469449053635005474378494297409738533467415191578220624046786026827251414561554066137415035246464822253664345701042669117750907528343186286715080259702109796976092064898405992233781885094291694531226642490285480292340555446731103646406648126268196881793305499804058668569028153890544713590070788476588324947860589123972317217462789201760516077040301627332145390647718552055728607413713894491007830490897262243452790206574268048283492788392699154530725992827027465558978041833061651722096876522815761136397173934235431570453614941164735660813960159906768163763562729845157893613668421098457408752493013278900557333705596531412164302036140104694317781281890757612131739872356091536697022453257822965837448546260920781315627376946118599820209166347274413823466132741998912952584224703369798075180757322794017428356544526095112090827603876668943271067886192163145145462694482742431191410085087197900131245344736095382954567122839391113372758270809511238087707843953404797937855238357607958428611244133325430954273347168989761353970935375123338898680244439699722958349436710058250292800862540603947633903287037134798400338354393709761970325156092426027917892791501772506269773445970512626244251773755056348646294506154394905698112055169591791934128634254018100641210670975190468769732771852346725202884420137015012340851321524592905252925907368149850900780731885283703108884012879275648878629519887676495652543138095606321312145957420786295075041607866607407704189334079293881339821309880308803873108130285659129700625408817758132435121463570351668311147349089795415604441676274120173143172793805630317804738884717511449054358926451913160151743992765944928293170389159082716163914595984316505700020720027988853703849757881108878858990421688027147206198119593444584909693483449651746526657744541029023006085681537963014680557089144793501624540970048536634807774892462232827236656929714581544947679245970203040931449070652878017421786105343013500498086266422029786967874057925289224884737673136260734613134922343801759228992283387640789198843668664723910321011634469329134925882030042254295924947485001961034828477182189702781819929202998905307244221872805907191060518631648866602333429638441207079794500202574966780237798054774200379543970016897232936414741833277097302986788860873938423562398916721294857536052314717472050562161730271177428070690539128746735606323533943420466655461770008454146430055366853881539537984506221848116125621740625640384528377810098316909033945330532250364374513751426490712068043812146681637674082175088706540454328915878638256507855961160133883737087672072477427794327332029590807839284301036561788954052625050479943394997967200728752114182633151312057792048864164043756913884948055057155034151776443130686649327552514781158269917753188696426127940609379013590191812098189728925253571357096422453541652729811870458444606413669121219900485697385254896650085340219051376753735175784673518248384695330465023247702777925681224249589551487158968681450475017975292829527239472835651054650014204760741797249772225129023757685308229398842469649691624503778314591285216150773055243585288179302010955722651815234817876506994616651469735858300094622608651080875183267921528963583730530498673766159426557632991995381381644523096787290836938484465518220498647964621966695501446953350054926030459605678865828995138864978706860180576728031867072353647034482309032214601743349403275536717282325979149955522956021377939195371450008052340748208525259165804235283185052459003871284519185359667202694935423193001307293593004647765769273368829837376291886043674191648814475758934554268467029140907526314978522586562916359305590007049729807866557213480511805499475366484075516942829426817253378297096018150261169681165801413177541095702936662056836816554028420361904470956607154786643852685215363989717623732859181943575358780489010093140593380723736038500114497827973761258594015609594011361075684388045482526692032213327520410498454496708857073360550590553383824456873685556873239627510755991868241035062303009121914811901543433496465452222644625580797655852509393805633641135709478772401553865508861904938652773103392691977307779900116234422003373634289634774841875599497619498198720630518912308268954274708678233982561682431144148520781795981786991741585043277597134352213584544904802571348420627154981046524167582133228158690069363949067505179585095854313154448951115447366852485446271227393900646895822757565181304539644854652636651376902398193502358204544357919219649856579964074683376110977867897870143749391229548631196471087936288181598511673110814501965727989017756447824501581979118337724196424987967255288989461384249092687654124603190634414915826484314528693114956187838721335959182601047678497464752734433363378206946176323590534901156088445380278615969536722541130807918678055831809567443819994298345796381506707629830640384296264044928979278176647711413569478189463965287063838711372357101267031175938130684938620181839700176862528367358963130754179121060339723204783862634798129042392283360272596805751898846495102227208254214265894214453833207224816777170929098594289756393010998575723727780257390668071004655572741312542505428523146879204704470318848816038250208622536119730022815388936136369207302573592337256768219885396544282579557505607041433170319389099856558185313851533395904073740537788786652558644749673598622129649863485528469063963196509457800149777373014876055493109391621322880759169291730069808226067823762316835882858096277250656350490952792770312505028853811708819844531159163048997807621690584831146185179260575453031835858965008134333214848241398675716726021442932256890061761820253592576635004807931606623570717473112624594371874921602497817521910264736049675938098648848366985669025238328994893638764909526676432017872434692782249318715342224405308163141328406712801724045304440564114680244475286787770096745966030164624573213690288511820757551354559787062169020712212544015158635015817036428944460521629377504343630414120607036870156702134496162591578625867997844829272818364240801130102941340060162772910809773307308687415775435559432774644995819283746190374230571233189059300144024874298228127339903671546756947744403055636602868373403418387312310138490919601546464049739057250356620684286236529314247488983420591326247528946077373039298166313840569753366541680370509867095598905812792887502985922451087857020972698878575270868563778245874956842286541817212757183227720200850430291030975938158821673772163099876299108312059986663281996930503425655629275628281256609620242141790635819472013905194788308509126558640633622480477893656079145384478158163127233052933990085640992817625341253268273111362244403675351707719805243777259080787384559814852149070075521193100201838698563009666026295629684811104072338872347547925263742527857495267221795154570501369272809463504524020579655264316961379503851724619892457834398611632774642778268448661349374583846771266794683598921002098995502051043169880491101309157367740166504581179591190078642348805542885731971200573356485122434149479387503956125311205823307879937049891761946518991384165432365615433512742224787102178249951644034593833036375248837178064972646920500762229300348857395223985631736948032604558229633127940819243324061932753304970362783418302770594372137901659036070733905918102388936056292131748890851101840417187057270416865291946263891644744791966881462671467482351849341850829418283545414608759495800743306961715584210725366530066188652154646530123049586599051823448214425635507855460806165957518695030654974233120202989719340760574302072568409207282260148265572704926962988195415754668184155767291904399136213118832891768822498452889191937059777191781137833865734358241760766651482595141170754060698100178776545929140560937075716615421295364868733599687005439730780510478872457996484309781284354436029475498363491820816436613035919546093872170977644528173595025264388411965902309275279689810098790735992264017052206945868498915036788213698208339955736053336832438891422126799291093871676153498814585890517038284986561268220806872834195178449051366078283540217075646157839144654105415162183494301156317850844518779792632707291379256354322285089923889122743834574371280130343127825094471862199207414770157087280104316999047260675605975141577339614432785609279221750044026808664347651584147268734171652195030136243082977210439111204678875187578413350950724799104715562019952463648030589498318689409363126991338589949523129160782204246055943794839693951646929108844986620667548064699321496025753844789038319566835849096526770331600464797407655336933916145881202708389070337317738935346169990178787824958225123257032089607056696891453676858134099405220125463674624897883517722172257259899204161926275389651576398455657931972814396375041824932991397188595739833074250395806597548718591572639363238325487784154418588468478554262870426578466977303564624797093653117356855515399036903998326880709196118280342466855095869100282499282024248571006733841995800411904629601288768504447768969633653901964598693626854949122650017644177360468106172112769291741037455185545635159438146989766267422291978370819325875796725477613363948259781185568545626355464393555400513675967757396694197484435973269575906107037391653723839950668744440782809489020898070900128574121677443248250137940151804483457780820470707113897486038978059410648995403744901513546039138649626228373802676024885700423399004236695199786642799397427983726681551457026410158113297598376310047586372908699496938405255530811924335942858049979094157917459846559392466367685652335126952702721094649893781631903189532284420991981245459599161077827793656670068674273154975327130860545420198107981775702060675402118094610907378971581451787791925399309752435702721281534713889989854904418144314030116492597486347964749332734691685906349006766018787008219115476471275023560950105206073593322015852154994994597808588408042339412204356596368971703330771011875371631984071853205303726291909149978756662018802176243317202512545334860285973874228232171006789543251022159386836088431088802484236936162806417996760852397548243214967101722626317687191654649670486169046240592630366298835476733002865244899458467925075801996059452120161453592884541601469536164238400659611093995937141093725793288914374314607012845501112871444455427782462156679431782128241385722377351328709309089419592419225773502971370541389494651916365364401070533800974736042508723361044137933691903132009335272299943908681171583697595135044959317156083198165516186633836444304402030740355512278525157655700976967666907848829193946974054196991691884519955502675729616703239622746921554746787153726630890722469330233126985915752458196880096077349736406670600995234590444835551905161745220228698621093483951408421353039756591690667748635616581144965760923990384011264994481433984843403585947691636638469090212156338236274402322269317550982746684121527980672237112935417494223528505441277616874139860210405468631784461747337540026672010307577427475405583659238702201310318522732984871796842249737691641947844781807933155484631418437645946854007183636544780039078960903805782085931896748188826377147574209452713914178103199809028631867834776899106427152225900711109291298355286681635930556893264704667483990284432222590202337271816130040290513753889127900893190236914053284065428397612712975529195640723036418802787992814927330720276636283551161297419414226542091265528017946709708541767195828669334147213513205515878656253799769251372379078191685371919219792797261116901570397001211390200153365082002295435282895840201324684319119246525119824797956795969208188377613601899131805797847102627029847024391198343329210520107078143976697057316437415415808425437833546589074272064814924162577039307182429030262557718449294084087654776610726681906286546646135981079565113753474872088941591254847457965603912633274784334911250944499894239499613602805049439812892067535790567372879341694339678208870560494502805955192675554007346900421744245530839128592935685242631567629843203275361299323504250162737506636141229441906857107890745002252221421773792662975286147378407943322900206607112933133274856296203187536237208207904372190659468274689774922486390644133418134598547312790619818005622604551869691414259254177993891662389482690148786898982575190567634090517109772334278203022772133565964267647153847925522283200852999693567602874189942331717457608935378139866352058495093606369924861359959034796448469499813621463828514985753874144263138328605988259068571287406367250778815565225809501489452705920709161264797806159390801272822610031359199684600183964907094141266402337307995484404907286081620480079908689626973673126881216928652128736109487864569731567229558185809004214039073439922769081393803376491578003331852025478569839671264853764790648518066600510614989186988389513271130629998861571462109419471242618588705271555842019743844089866394194810533186551450975332680385442746473266674101315469107448460001049138347616271048436976309336802627956335992775248161863801232119632623160892981160478830415078153789063280060126731735806554554644134444584455910490697902048971841071972059889342046626725483986106806441312242681209769409635177493836557177491889241005867104557541632322092385704843754543019126554456342690721142584092090068384573825717707890856375426405291889130910646022850496351532999436033734842659482910797650300764247109105324062371090338654266181738269279436265990312517126187332946821749126306431217356253678486282026498986865245451540951347576573278895840917385675238858519858064348135944440896636491259771315525528117850107957496377910901049713516254658265225318102924676173663251650591801515542392977400621794450725193479006698973646831507220580353514215147120511738281196353723626004202510257114847277878081594397872772900990056412856328547055059406137442595199079743394344561473972377983889894542032268268007464009401181204293912453450851680177808628800597531897659648686359453962699671223666540116491578325391154183054182081450811601584738913904587713214362125651508047534955412629891104907729962484792017234219341166043476757896042324016364463909114375288292763357528092257792724590407615173712568831867519636418893165799296729806189596441990609699435337335090418210462901980486834410817357795915591330947298175033188453742284188448944918410883063615214775382729790459222483781908448782827913311787606736461262641633848275703770269073189546248589847324443723886766442286713297631763793417505361754604132376272932412772108305519239445373088523837584770979392019350420504985097463517236287307982771914668180431058608947012952086636989382043772330347812148615559799471580576600894198756795068030053800138154128152903757502531439829502870394329029278572652637310269482612945660468613321768924935552382625244572269029623876253406126142541746977076585087538839606426550172003739911479946643126227610847586667447435505144548993051429734577544402029314885935452599506256598471784834257911793296188972653511719433548563279277718106294341354000675129317778300458205450553950511283932498237077975073984873133931595756653255654772791941869277608436403814847806091879469451929043814672340785266052899874374444950931869238389765765174088902070958277957918417026259986618200398600444453087428665166460492858895267401817089565160393579899925877242990519469648333323584998208610996791458706594894973553315835630958672985959898442606770368474442572146349704188894195042941279485779259419756271033278712048766881112789454420266363429328708570739654243546333411674794027143852757787851914366596112059592546079743257965273208474464384263831285298358736238919695548127778463287052588294631354375622878064171165286284845591617194303993577701230765328233777298785698223828308513307952834995395664697764255191590642619726473184175945036376273640949847187173941360319684184613707843064930727232856892876204349884991753746586208715268322492758371496826011731722886839750932715401314632128318088438905734700557842506213429429198550309008463012555718559594503255599413677392877339138625394033018100814994877135471016053018908918660799062646035428584258047933856330898459239384869549334462711200819413463818171955744929682114060454292295792987771650110643838675038199352234018873157179650673965196851920034400715599793801386046910303906387061348000710874780683273155910161581251617497605795502141417203790869385582365177362605343425566883141543435321595873409711626141162464426990142975564854895872142374296872029723520514652783231696130661825883507051036803318869225393396831832698546349259072726620952390666487833789430710690613234043775710383303705445268905537224541754411944646915763774605813767579126945229221778274125396528836005703007621506437035721700870243062765743323717593757060502206047299606111875038646310174336109033470808771159235310164771009421360927154298286889485635184631392255501903773306245457506098787395131178824842712688277334630874287135462106065767051527450505974206415103779938359221907564402045388263423599162781180566042980361215334194558795026347412191088551946907085481891198653555087188135441412516519698950742380540139309849757263041514937742347080778471444113236153528852024369510466366084855815573781107526218522861890526914756629841526259755867623730424017536981857597808176283980640890611837754563729483195400689888300018811987701678266837643268855585027785002162366908499989082990556361579064273041784950806011818248314790813966469904900476078013701640641619321074726970523186254132469406547023293918238351184836956452473402718082833605928573447195767417383726614630995707329678682377481459637969691242299208638520103471344349720006487548800404150071668597198347386144784575351854565921557134804072457320087852201624015481077889624763459645283360193832578717922965524507632110779407569144490114589123188694640846826318134143551353700671462576946113425180293051183379858562797787377550299361477663612913607979278962979380339845120840587987310818850834369232700897678414416839006411911980473191299404222232732508568389432610848150976781369858297430857184390882088646803062718480729138531521657357233332003503672384002957175054207006410783644179453276704764072542101017456826233940825397883017587592626681438306992368870201799206721785815888710221673247740431147984754502771200386963169701357258682427759686571390135396465245257408845484461395963859015063873228269142581305927759435701724375261920445903270778737574871950766655838729865719976727798341684702636848759791605401151957491185832484229237729772379136527870527545618365051149826145639171523809189004112790718409659894163599828347139147790847446820058777499915888859354979891342072777215517205936007351687880318297419564672601304204744998825084323930111309843817238171589675397485645509461084791347507221426375971095876433180193840894593222179760685520088175136202711351026919029911791276736287731146310850245080681991201186753863267293133425873531324467771834192177528581826740936931826437996827455820178175898150249188610020453964341740270231889906661752605401187813711875389168213388602667303748072762066897816100698853327495784535478008810752871351329939580028706905679295052228597427374684451827512155133363202480964760234541395243938809657407552666360007803499839823584522768407288483347597515305480889271365656173347412306246485310086170444862774977662677281840299333526831990815162098381025194287073012945276646438822228086771417084481659401845254566535268750988997689293811112380719805531056558468317400898263068281217848371708543800958293759123351749018658161297597763151747915307189081306718362460128439942416287570931073311451012472782983430511039124526111141660785021323178018255099148872073385688860309056993124870969192325780510248233844375564469103313718788457002771150012538269848293015751722965776135951492769024885604744547156913370306592209672327857808915017768697328277673313106749562514224792358964825909601538830572923247849556920005826422515431110113160332667111577387152609240769803627134357126493719331074830923149757233164494029656900503990230710843046564762595985139309723091115529068719144504745206028617899923581764547344039917737512012349260150625552718952298518012769989059137607383862409727448311349301854288324988759649755508957095852556150335352067369892116926493424453578341376758243074247761846547736366249172376714802435325028430908748166147560247597861559604545429466876512945941771245438490410591529766040488055550052366259615920910854020171869735697410797538919827597368572462845223167077421828731505853348023585254942129820023610105217657577128543095985508359575505147300957600663125476214954749855428196734470674761624030743742797213018583402484986895149399424289108618949336536802833240106613544982312780139519571155062983447812074144299587133409171588115019114816219740276834159569697812433444790187857401975363972107834732728446680082631465177695497215100934378798994353338735974678856173361365022670447227584738253584775636048191420999827576688489126469987806023962867972329093846336350809699337722537023909599110239363050585624506792686310582093863595777456571938467627699820918039612012926204110907729106248454412284302115840131062406722202759316049676639652127207868432089748967793446786374130492919029959535956619275688523312731822941004342634068088149087535617319556449538650293939884189579955404988121392070983391689870634476946980179838107501998550237346713932712756857826712701564374474085101065152771106435873218700424481150057838733976201769500886124825144518661285206986999209450489187408326486977776892828536385198164408486503597767937734163647899696800893093796310078298233254980013474442477376054675598884428188036938989364924405643256527567596932021591657331032679028795717832515224480265068660087501962969316910718097253693375340797148962617421139948124453408978032874356939050537512150151804116035868213585739177923306337533053682693240821815085057194683421816171968618259339201283332165756633601346829211410859994944348474066777122757001226812814534928966950907964271932356611731900374173432728607972023015966777092223846811611011912843059349225964083780836401574161368769644981455426435495711574728207818768780290234637957148200076059457448129496180102410539167760480074911936247764434712681912367317343723151373214389794263114946720096977005175023592387976049638208842503374378973781007969060106417267827507290401320393654572555643445837379713940562172771765359573608898040701320687685258087285488686298255365652917732794990291002176410080970495673908345143219216043768260311420262751470303690213555446298512147016475605840384490138148302526633964672899899214440574996103565140406953669122478499501680233668653564417597994166488002444444543601044929031993618297116935397284097837338903625993975429417617104500326346887944085721830852590255684905334004634697158751109424145411285986874481332323820771677769657111058836096815810645833716402688118777413023804680270439622750533343613818142931724337972124293320283419352434090114453923401440667402565047426488174113110777778916804679674847992824031758240578148307944959738677218579793530392398189845926017044700820849503440067884032110983676428847360424246164708724278662244393017633618587960099260054139642803368855764594225023923945479075508196385518804095846114633151342139480604684441817422973946579577176703317173850623472205154394008298175244470715959748356645156756591109142790413868696241685591406728572837059740519405319387395762604371099816304076924501211465869826329896924617905150865542547071265407397371987398148089859792548795529308825979181026003675970335896784875398939447484002900032226873172077976357020672355672067012049677950473733520831475244356085813526210346013683324394654744822374252078775752551326888552102738392276216987367754958713142392407658455658521205003437275205392571357258520707149456806178185797385174378349569266452607435093036363669075354697919755676150575547835384268748406386110756079728872161271950095520135716177312653808004493049538645408390838317451856100086194589306209970582305408525455912710902591650114286279217978916537719360661173591382320391466249363316492671991323358288653844418909991905520321455080661593106252624833461847899439842902382951127329695667875119607617054843318644042575406419483867044546483764659402735330730597177456506677599829463864101998759625921368331633137203418426405881439739159367214443898248112877188789882822812791493231360764686844543219721948657900897764103844682928471090752176553364108340459543677717925018379769364685677030667911830277892442336467330509573774098936850734650059493659888146773419308148855638435471401560878819741889551861892063021147763806160012291670892148699918294217561113625637746870165372370794518486590347102007787852354307070105608279887518785208298795461456702723006061682699204618240691869079596443095649131846853431181665964516521501770978364153721244236924404759007533510689900079316350305283177339243646044354994209419193584075290774639894989150484285392427673213583988732662500451573607012450591277337559538342000030199235188087911197874665216669669073031910673300284579639674387997990316081257084171947231167533687200126578048758209183237186473768770480887686594139972172301061604263697055068512612442192186141668422503526857148244950709322962692878284530393586014556614978646313882626746442358808118833487033914797800408027552207091973596201484639099210624901340598836829350916574029897999994623748727583361560609046423360300324806613528214268640880353508315105193274947381077702445340508827783532541499594361543713553084250206783992019738590703795893505314840379624929422687721322429050115578735762561365411636274820183817960465896116137089523159158531467842601753316341786973980370788473920315750163939454550713370948635996412202761611571701917090555474720908085318917947916927992990222185065816272776888654441734921252849267342614810565422129172272004214734279727913115105413152991391705670176168826788362449308822481182707766791007254142095130938008876285406690428720253677375953062960149123704077572456533629814910340748778264326845733373010443962695923747691548461254993771486077671771517969547223719298863351820981590915543096857684763316852326461752162064441562743780505998543172900213412785731231791928358046100913813106290380351126636456679379046004752076295208123046686354119217601161172840103192133220812787635125928932897193730099738292146992056252181946037163624793404972185278352150841653410689206319329027865076839352904988929523207946334599014180084513807539004500825624354454531524207382442901957853930927138022406554198430907624778993327391506987777763877453296707355094310744807684473913363407489193639135301639997522233965389983594063748457987332637131953920019711068456293056387460327354445952872801657535803181680179480731923359057664473237530115609514662737277353949629444079066013876645617979014892124020549515707537373733213602999811222326347951986577773331648235542366039881325277376386620376085464905256905544947663813674110081696654660416472179467931093743271930057538164639929914101641968415958389362480121414203957094994396978144174723257562200727291007610658204338495249938898359995414197763750489644359855192875707775383069473709965361747612721183740346313370899954970801979364097422018640048593219638304138957719637769630837567937445871213454883336921431485471075116481479620349524220055435739192874389801095621312757514485575095716654326389053028979689568993678743677837247714117868997295207095561098732557720886748380287830633007573803257216962428248337479978132540800350084911712797248167465824711380945202832783779622985825361327052556414903418364195691742169455775442774921199240724504209692887713079365310692982037542730512369012601827991652362428682970899900070538707466280795871768927391744447753512203303562246277888966730645074548712490463961129618313609272860499045868351248085782829996467188662400389136748453003424513255992608872250422198232304275702926854864156457799157871210680287916331392809532111896507235779671639546427119706967336084635195199879226688442591576361711348178140580823251381435175030017296423499562120732177224459672613654427869467272138280869355670813354003079909015545509313548039412225824019850125766199624879615778218389966752702547246898208518360033134667050149121598006943522847679901605862247028005972767789927529984248646810567941304832156288837506181847319672631632727738075448176466222839244272030310835642264219597304593732773461043439814366997026280901109253017401790560003990583359130490981813251705001649316407800450636333653220412786398110429199949409197775726678823927600601978579505672105134474829887936663712016803139630987997740782673659384928097502386376512376024575406822820597687673257408927128720743275428519593149293717142472091275998750191613747737781079775114533125736587570793768643773057857731649314850982292757469680229947220440248195513278482263149700645160087273032212011381579004775769660014081664326386537201560234706704937438163848423966733848691595882197477216778821136186331229677529427774255319617768087466968442921296649529315450135677137082944692229892993655823730383051026523774267460704329695521926992857978028177237594244346189875714564246582020367114850805126150819778348859479398890409294439106347978162087196545988371820516676192134569715011084824261229149695463418751524078895015826198650776042973408639427310245132429328626930216108416457978722733206166571268897190559270136671463819732789217320958725741096669029223603764830340348218835910077330852954596624823815297244983399336916738524459989295729807871766861047438602899195596007013915666068985972427448173257949142381884968729592648135561204741113468326679762558740551606468597733929392278918072135708656902219160812137040140248865509649063522695750032391785149243814984234212187003668636519802003825840324923882707680485273952336230342226893431193589143474181865841565909119079243042244472119236747218075600483935107335158185586019236123073832821978824628893563381036019309592797896958858456243845564294360467544729989169452821881571110080250027690421409452124118476698330094469956957478212114790887598213642738240708222487359458771268422704483008849891164560460361570813920784432615431553914053480777790620640290561949332937177386545498902463086726716267105722228252897399506127597156112716900365716852212220948155215405294171458375239244123250060823790962960455829873010081991758603829747985647467459570392694831977725651262587058627366922745067482307911309341480635757980597805258883037958392504728505210979480848202548494602565316733463254189691930091914240066383482011079839540070488838873696718210138128584868126838475046387265670984122292971991053228860991147239111352591547304287634544163439993585926976794191144837565659018846937831362186301282515649902636467322261398809273670836208741665847599844397140001750066171258411540331920154708091358919392254698919347972373939548493220615039646171498614866062641115197156147344249942695103319667269498310863290240014397438552919734304066258471918843760442268688489770227470961004594667710238936181081966086140996301788777155761436808623472676046931970866998633777355558347658818983837903604894303266857769069425073337224143391023473184171551464938882860345479614988437020680759821107682745599997260879894348128968174790536566716747621875118547185935530154608593965567636379521570578939348073869051101407268223813835453327152252548344223035579155611478046814278796505824646472258740680616975165707449413182951616200317752989422732009438198912505983676244787667414590698434991651817292090927145446619659140413448952642267288498873238088444428733331796583166916344744347003076401901261121192741945390863062145992628142425839889368233944816125052552858373699461327343196400240059896852872598837721149370172119221377123220465119666849766580513472939536055986079625876345934304898542114170492630763362103336999809737316966216707508606600526265867440410418377919661192705088774579581329367909299157257400575138406099259289948671664367060238305772133537883650671921016686232615898217086667953015778395672989363606986451522201830641428115679737808241655758034142415021005675607934100929264396879490707629093733304085805607127525896099070268765266125895719653202308722585149103646111806657284197728347008742960519946882342503810638483530350840331278500758461688514533120679323718915761246843783764144684325804306944102871026916079920015930233283959449077981940419088317029210365174820867117546053215478577418046219609971833029814087346965020547764785593180086168299583234617532676100600067124825730756503218381749627711220881347644463563600501462183599627046021057096431804507914494449885040804997644828290607505840991205539154155378753869261762208517612531569201468827970697618767059631282903618273422423624680633774261318035186409506484674101310880939710113284360142628046341281217574724137799901163415349017400656401725713036874812467270402210510966454745160460036970626972065507096286628783720368317124129033999789783670806427444119991065409088833934584237823004454035067372601010711909577555444902902899542161410969969993649747971133644450761881940617037278946454128262827568951225740954927400563316648105471925424405670037648953790418021943370916319901149211999732014952295174092729077080515867088458758364284658098893590843252215040613038318764766921407015000699454592295718162588579984908442109423452614140436044236480724114061809265536384412747308108643048064310935708616856964575128914691852534232444635005277387479806676114510599829790907701049153441520472257513569944635029750140114335075487844662024283949761668723111094096622490852651466181396076063150855231158258031076111299666523656101868060900760836472062683314297078365281861748437955119843912951406511409564870370937907030760575283386529123266160582227799759065332990517183315529543160983282385374695991116010315479211594138696232743199412236518222645046631043597585334934133058874593882304243444307696725590067361728649691418823171224281870373446726024413695545570023007073836449730006007236779922111023187663727082269472895274588318196070110119604540748911928648533092434398395603882255110363440037727115002639456202322810820497996472365421483540629923793007314954917615448535153623114020142217285814143714904418413850690409885718912804784178199767439503075413193302931598443078982116308469698460313531036768516661539788592832820813789468533676897451975134222496861138393569537229620243252518457906543981350715066905354965991972895197580652654604372357185865369186664271122453212196211291909373698880795554532617190305243948852481530986540502272028346647719824960375437106318248869406165148281383092067325347606348197769909572191298820250857877982099535633864219019211109983573787174724053175342618135448139741718863803073936916517542940978690867288425729363164494775110912320587609177780117761146450663562599322772900625171307707193522329054317100273947931362556917729260149969753054196905428366364432982092239647477484844172251376381079077071825727043177399664424896086905996788956956499986962080391244091137330042826785188061477975541378975385446458815725050128247295929581054825964746688004440726284381782679311737839126432077420924033254084902650136183843162068784839761565632966792048812494247711405783167948008218756389273056887203108860979553562842702109435098843720831402489176929316158693315091629050093300668906882572646606638442673861615711947665701502610112502353333159134593563016483032051607845654553492914267182468506687139360570623391010010732145479310833382109842807499991244169901240027458370706005083421105899014720648629460162347226068829173395950292192371940481299979559552965805844905378393161719484272593839965991907389444847428715030569425206073452172572124983162729002967922615708639653646489473132667475737584086057310341054890467473529143317642766836470370691165049893366302271344229121678919700709019940766781601546803034412104811964318284542674532410932170364863617500311733701364211525142184335489333899754625998250758565844432774569391591512411491071806139244564992360273690720193859399072931013830426664923060925544135116670597496387970562772325142723932518669858863988805272260883504172691874148646163937108135510688258644950027078644674091478337802627431192779085303227081937371378222045004885559859694476302834045879108784683261395279801280794957027517453725408110415853161772291204674899268325821566785723996260139022112410324825941415720109136968721119978682841267941370818914620176110545197370436351075915202878717023703988061870112807188366975327177579469519777365029577771148373034823886754923303114393086587231505764050903821734868052964384507106321597284902982097823195457615499211200931398967250527966738450578537576598859105418908716746273948825492288770751226197507652359511914359831509040811458852351535285596519311041722882507741749370763146331660035336843771980534620809196679989093667086595261875841858766707804377787727399647028220211297495032600286448810731038106210497283223846160319754953196308229237954116524802640403869761498855999615936733310051793936780415701240614848058899741863893097457894854345982260007991667769654530056038379720561451136730564584722600265480950346444288886463089246936362226813909947326892285962523389728111293086489248661808751129524875632527338266628261341171853288893382289851168349547732860644863072272656751425512145400883785451842408883348225783736924832453028450114920523400633806322134829944464856892163084029850293889553191230052468797705257112753565720773792983682464399995898737621320333908466512639019460326217818776054633023225925156248354432984638604859905143650916141097144008656375332259212955626929987541308688578859292620629931649724193488720069983212217650805370510842844719002439402048919123972166563987467986115388552973317225349739158067677305572610935173870619924173993311490395539206502987784405819492540019167791116177020610222375495739077561708972090366748423648055721316698990712306903880540033166667349233168316778545653381017823047490344983987974736794481057373454288811089136381409634704589811284234262804068075604702148246441443259188741776978328448993387386638678124833684631369604208905291507652655716104884602459108494272114566992452106938068333237617145820833583933822552993738078115103837918375029949964703239479465535267855537226899577126907549855053830542190499326563361796020764379870813808846995967490287097316584106607186866622948283184622883554513701009327687251610968568308462500623658782533390176314917644465930178693389019178213396698358442957873835292875794275809374776255416497351751773447510347030566270876309929010726260887976271078356883367595144648175766900561006300658062306637250592842867980061655029128094794463329403590932776463553597298432720222802350780341940971548407752306906934150539673881406865514680581076238856653165127541840449753113848467935961667343886643664857479795407950087981412423836503378231716465586350655111624972816367486228888080462341492162145823729107840374250267346108480099252323084987439443139179432234868391365404923481516329167338806972271740990800146173249851685368112341014705160562372562201779607892664244219305400144995448069883854800804866255336324480181785989134417103113669992561994328274927104185769065094559996269485215641791952054154967168138334860692927940525892754985008560742124657351474269926597750923292979944342326737382522850529985064486311307986941765971806807684304513722355049826256230558740772686995495024283936352146454119580962090414769164778402577454121467495771910546745982811257409569301458219589404125062007854144560923283852441854579289495359213127706120655091190494150013635511968585193822295057686848182056284096266251845942472631410791553709094635165883366929631224036313167780440403190541369428617082552121752125504401042337807126061804767073685513417277929369320962510707377442626683088307484269263486776793167980629331578198835933809033071625055448518120738673359913429623117691540699651907232384589628614241162492448771181564572791130193579983429585993357280305594324099578576781324913565517127068994549693547568348480363490874371715549696361621645337566751403090461542027659226412878152990223604059058627923021410380353946059589921866691916330867471878388210518563493748679772290636352213289794620218369503658116932184461500354464352568996459112803507940782551173820602397743972684861230428214718215057791051946380274356908071477780535841370017461416379846869523983036414944799971738196337879623729476297262539280095346276892917201995158877500038582126995945125837077604899025601331202658763827258613787419139825362301300372758107070395147557543376406487683865352502968991628954388607389627473553735552993604002400360547978970846150274588284499742267594330877615049882915201526623304635324608467755570666574894658641219389972359734788058951780743452881434068521117046868123459989183010250017208759559647383720554674850080348073787490948260455756135290344016325569437906582473029209826935142996528151631307423189570340732110495974956716303464863334575394227350178464737806982845648663867504985127520963540618906063161520632191019923404992551432427029488878100606255571506232877791290104643172026274166916233754716940653763726836495886096321309730134900357502307516149709953950729607600136077139521487950012263834943134956533855393162275060705008543927976509688898479540070014435697284200896248205784708052281786473699625525485242044138442475798713585737459434921130317476364551536858340824114566684248840670051389975871739900852603504955138320010734628311497998559834033828528915501385706151402066776981946216921482182025357947243358500516493283198045024856217511799728217140603462664410608090182665552652371573594135037459081087703749277924831506553609917257444098009538943515043383795492092568598153750510376617588477555705913927796649571774422267890425529893439344723153192452708865958345815492906784712568266934415049835322258426085897825235940744855682253975038803200673667905808907131016987300261552281704815624092086125225016004222577910457223028817210981041241021232261387471886191024882512557576240367251325356875900140898815808028357498259592312478288659206601750285675201232786721725119143661217779328859783240841024318247395839801641461255978897652117648446626939101158664015151734662524487363084398921750353218446950875014801324564301697089162845081060307330302415915191264881551819525575127301469879047131191012500028169298236752026191503232710161761470633656091794766396104515619300482265980179502876753359832077388298594768052104560302358162893323932171313406563163144437103629264907947304701613679932126482045597327865938701871335164160820348288279177909488687323788503398758819154979289214626901592089316679928654967433089721780362688444481979770894785494365053103201871871671928568014422398542992362903406236505155291731356061989194610302397057652920261582624185322346261807763754244157522552207260818825116870420302638558686229785688056099472246612511563585091100804547288417421618321825843290163597342229496089233386305030015033346559508117964958900792753157346195316814828881857273593144515626231043935343563032928885174545863247685809263479183340082831509499952378713819148943997269540448961509451183450773960198458498486566202361059334455489998761467285350896636390018467548073662728500330240800645926843496328066427917469437803222459106621988313570036003269205647722784272938290989569514023561833745550609443490890374398614201952001794643265867040866271191499708609237854169552700731294559547336380934579451323366044662881411067904095677395602757808464193037112543875263114959544980232575665791327591584823344557006863008365300296317902337410838024936734944136738371236958333944538834459273111238738535324180346340858863985058483923670707740640919672659710588009644628198385193716672622053061543421634333815667575118566389778877378943861090513178513391248185163376717825837027005925415313491335506778200023598195649384344084438783013553152192065714239005978720270920092709695801913188164380394872941441346288366972202500804657234466275869154894608213995820156347458364414728441419539529764493173719734876500616150520723789542887167436272885660765005735522746378454583470282097088049590383234418158593651719747663885697972363943329232087992228466809780041899938502332002568857815977297801864592151748710554687482163425673503484847149393924344914984727332937415764254866893326452098861679334023167562434363936196279802259390970939115736334918294102874072670570315543145339568617311679277519489981387441429735239553876627020335276648468465307690745845252759143503328007852659903321625210006797266221722606811241115426741289394771487300480113899121146061403342386015472784705796910768693308477823498145177447123750377381811338383990303007180402314486443456017519732040909173884164077190600632242211454605832050291792572658627631233909257334866094851903020639974539057202276624325449895856358938686456448298655325141351646634715784391629042096519151724962794904475543931336973540261217466052326286321579283273996194063271286946649920528956474126536966187883886914425192823507127269681568772463046535250871796178266136355866535826079068925137854799404088111819179407175758408073897989719125441455446046541753468510530581571099772818639836556596409947422264731340894734619827832324312421439249065799875073869932877736196135724515229236826717504310209510720428722904617018012512535114570034866843209094722609466800926541555218194977875618662931350424960628708068952209328785543542527190285301668374306195680494386645259679225543477637589328843927683519210231091999516818017006961010135732001199776331395570754280841514094619298643553834311043196207193400359885935707621430458995841430452227512423826580177629391945862730374418331114113776322291653594184535143626455305763216444305168893344141979016670788556083622958581445245016740512679904634393929511399347373696913341957823521226369833200362229092786897919703319540968258699067540599465937614306493912336185081015909839898567141466877155814352215585867732384166304905405519412688217831637911960279630476577695198904630703566970504416470371570910118597170124074132874282761172973456171206226454802178034087547890564451890637241967276887934746426435947471322545174003408125117619026737226579178078077850910341820754618588621610072702105597710334633934019606961756179473695253467347946110776856622624124802546937860831982486960705454275193891485688610151228510791424890421442974682774803211152536025237120579110216208465419229365037938717775742408642268865985311297570707776092410718693564983609151607841592313899203142269858109724985597059803503188852680574780083789752619793581407114057954364756697807138582551230458772849988800491654426073400793423421844956274736753698901751583960100880434310903942569805812108534181363375697101517682014137998555673358044780690696597091480966857038723691133081592601343686259893106700578611039575067334500171708739696800165576890265541743393289598080886152252879457757792293477550275052451158002266922012798985949717819385739028381642590981312172787998671914262130095492635821218444018221995342556602727389697672435468102746885564910350875721624000742125152594968528400062579681307296912992127904064615425950477854656758560428249843272284596898955958568777540086138105599174044466759759182655880556602953037100475967680352311319022219546252566169764211931146205262872086470711664793836521054019312381989533907753897873840034533683755788731391498918942941267429159570125278183416152998339683718576871970434446259443376812227385520245611251021941144376583526184527529932155601626944298512801351025220336565456275504061149264881020324710474540154928780527328564749044189958443756892041263545062487078642342270190828143843205805930947515365979625175787460912073518159857552860304461148882848161122154035123613473521391722944955020387652960068461050028868602586522853580744893785046565787446881320983087554791392039517081113644483802511352804516754395586099483830706299614748343856674715913522023570834589034988805331283618988907746738365530897441366895690573534277486488973379355823528700202534280826712077484423769695015009199146686458612126620746693070939934343432520331183779043746338011072956507404810604865880639225666588788822271709244062552950017870603275389082038508005583324701452518400678189847911725132484021616149575343453243205176148178621699642908040690177863670086687337497443924855968355176844937116889685467083104928114674372392982855121677759500824944092702066963043019461803946038413295449018331090005177142026248245057550156363756620648948480993374732721639242493096286939973834775312384209121328528825010125604607328463273711552192531364384869443309016487024423604804223549060330481212925691436360195354535003030884307179561816318307070703738273247421249137940867170770235396912000795070457121555710104030450696436525459768754627238909602611019911846290759696185151672927014629095404146458983055603494577790046664653614891802750687029888917970382567362704396642528294647128007687482318646689987438432501905221866870579480158446330664659673060323138527973893827340535408794282973329856883676685035678578152442211687430518861721819155079684172105572588905458807401001044580814191303471194414464588752052330589175834676752439769143867571164902554156326803451287608240214034833236914599945320458948417982780876605502272890591239674204356191274095206983962212756186950146582065931291939438308621851885668891801140431328968070327008068520816013930938397910144351451942511622897499914862526229963884511147444273828513458534674447813226985161615157277882611794406925064595353187928693784506495716833886600693008924137840080753492609140865295746791048814231991749883537178204348583762127596936059407524567316880851097725068981643774884006583185849374787470448107702796384522735882431139392832953767283902431732831571600143614539630395421954383575623574047811722570028312435041829957907530406757445726219678459700492640496083684578442355035251453956802474341104248623836850275672717735297162264818490099926470640408809990515074427822785928936724907828126889615502108243026103467309999985206178520248929251042171455497655923348218783356650840990141363409301952772284833915952633048414617351035527556564249285463453801058648447605703409808058780848990094573747274002967108532858515168967200562251394081824669938719355464765382245461981525455800031184389383317044076513313695201541194155305408708938114539476725958199562014935393653559496443839467160114176431529632615956899102265231454949398958067564841913900030160353487626212714408607951464593925055402055176972964334093988617358946024862242039415388222363516259780532388454305714568295585693192955468909409450523681127663229030994526775762693980963171857012234692871295909588625437623333175696531378150805380936250824773953195876734971181561250106613750804662229378063727026621747159040396233057711132013030355849393621480778986337486618026665572170386170088189543930901173135298637263046241114032988615093169568123593940457772433131909771421227466939638794113652940666019639926021770061288497977077627675992079830745886815279333755652575537799527794253364105679758637015139647392119897157802264665164582564558114806938297323150405204741796964587298094042492408911755604868076227789759338633227452188464516564449883670084717981953976606517302859085417903063953673700990629456925443969900070952819467439928786215645746060894811132122160835560344128814689143620614640505724009890649103335638334474189854192027692941300399264753182957772417906987743945474398900236187729705359740830252358519673630980306637475009484168206990846688534244606232432725294827487613658027029720279666274041205458835307827119953511753045580998694638273077070377915872340138226890980755456600144838524271201480879809631578641974215777652160011424344475431943045866488300969578545481829668153198484524427254668874108210149092927068301821800638022730858713800777261826721224350059666481235224093982430508973725544892435308936740789100220959304702947426907294548864490338062780483656619158531491209416702943169174788603737532898777959947888717112914201679296887829846335129022955791448307941598172254744768776738731039655845154386263349321221541919587158114538255101854215700668211484445591119261257326223866333030671392473876176363879902389928847230853295746105803996647887550065242127763942442652332928370725609554535909908234593082610412861356755591859246836106875122071742143143832892200312559705612121260302099078583561978941875532935511939103003486717473780047046706610272024021217630583395892232847342993135101569213389026461670308174150468474580158109992334298427383657666912382535903307641902617648663005622016661869328250861675601199608511851551069996730087382121326230977301210178442468639131426229802846409268056288443947483630257858128418525117089390495562041266821989059850276754196548393921172557483246180211027183428569191309567567241682429885875474469874333894776292171542395923186449708361523695171911556475807450664730679240035990455920481271778775164264579645361305423325363082620296054718958142797230802227628162918550376051596242806738448624979631246226872165207616902725705729027964313106068061415066079040267227802613091375040473936991885690788411829049007415415248388877811659042558484683929693249466836860983250940647498536429311388392924884429769122226906645913912401729118657170070301518954203877179052231740534656011843771837772883550864699171138902810295021215250776976523565042122661988873770610992696232964355571686309528046493702067509337115431458338597625188278672425809939734561902853549780470022993667436193577925135447150783509586584866726845076219901901083894438371934674375759480720627315667046327533604526529185746319328699181344072825243126430666607425433298839651327889818746250894283921015752453765369463884521166269762518009783889155455463209789150855490211487361717190601188166672655399448055968425853929433720636457158548234823971471241190842348523963581980155131501884137991932420326645696418549478489052330650766132705702259580930711167358448231729366557389601220193513515440579396495506991262224610996958753356727948839938509936483734753404353021679572890317042636362604950530182701296105222653494447423560716347164679525181020848875403589473229950371196555717781489648112017191380401532806331253137445546592076441737671262391541255990597555225865793716653945072258379534636234734555852268362450045914799583714620632122782883463690585858848843698782052582146830116879713911359488986560861358903671856378923488213302699827753003426808239987829775731030516388984113335160726554108653804381133422241727836556074945745458050189689820823956076723889082235383664198838098098694581440934856829341471362532964009231457525205149269199008872653739188043212961628912555436749620081831703844735049732969603507663439004727303528237606142104682985927968328478219491950668855989646418935046471090387659844535773597316434059328077787523816369265628878560510805231460922448324979577826883592714054228643258008247559030228836969798754567385549118399062571352624759380588667895652483402042008021224287154122413950468219412083779028035685373464088897529898463701214767542670658721944262610793243217952728957485385123708338111881768284575127824244699728761082153057253115103019496805552763579325260609116631367948739635516620030212166743824948170880972495874297419525951648203660819365285185211675347103033786752434971252371848814907635269087729074292999337339857289165595494485983666366138177223493974246750959319090382353804560081055316742472843729753111203556329991851159237770891575680252268234667290789143589144533180086458752751135700909113614856476119526466758730776746368945557080418544580560954190191919169492190852976879544756787307167335477624914234411426783827346943520098109219237970460486498838763731905833033292530493976101668968502159217976469488446953308284805321445352454252301888283351910036755160124745787646938120412191612947581983986428435219651766427282428747512780767023067506049581871181438018883791131837359507394092739794368597443450899618917983013423615213018410754135306326741821196766912064986088088997579581227888929651840371887818467579851930559246731178375563801593824868009495862395921981485464663657580388936641325486330963851654386007096871238348908469118086406880829141245790792892346965224412132744398041308997756962306415973178434786890061811055181781574818637347620906651646462239935501039449491142400476545844614983101737145270349145096826412102322089559382497934387574069108304401838412621276518743285095432333814318481475921678953241905186412225458809272689190219365800736257930239568815000576721965807928975680701152307548681567250127046488310080299730253629150447625734241317174084465032875931520351091774971048497424510065158881657467991010914028272063429371248849491376004186664369192042795827572561991858538855195799926232192338574996046048482154844122521894959080450664515804315886025253285599072788194760524271067459788840594296509872951863834313793381300498224068636202546613629581644506469882782361372431079899991218400181111862359091781799191677659259321183284426657394404709582243325297347120610182387189124818299536918074862056244482617163355621922310119521889086802923447225934683041063958547880548051821169821570942233670948302913357042098678236983063039962283017423804210232568437976539591357210299419746123140474144928088174721259745202690397547595884103791887933363460164646165244841837695323933812980483859341132229578695695475127205225891716277053244296981073148649741453388184715381782148547860563239638033754710171228120142242453546115574778988058012538079803165730135135603812257861643486231045832888460466281846593047065545494651681334849890321765634903340235680885613780671964262430995042619232841177439013426197667425112628656769043895537006419733246789873168410742317136218272565205295093931495859452654148935872343256196120508954530290706024581284471071143930364905523501732595066712539831451668838741290321986446555877560203234870075627304441878679126400248955730352022250511964214707895908034267953988011623741122915742039212314808328535411362848898996452449490395909493271603683653672740442510667689669755448940052280642887303454048867049760992669055748251541679001137236012927681833990546284885635667185046323969869726294184017382063039968718721155596593016467592861777677938348269212954996180674048397780299950569639915919327090283223277338011772190734121771531216561839328161193247635315962157080778939331272168961072810604154450417808011782589555586092808369401557772108984780398938522372910923516655547610018068310497171801688147366097502855684487212777035718276894855043641824124570489490138869422036838942071371327416377259428723430729200998245092948651112388207835465075359305104669177903292966681958425760611687720270338870185887842779301153050072995103037502879686881078657787129422466344953848470711010099129013495042840953464549766554432392104300014052376136589822279766437048980937556213930794828587125336062274633745143012333496070232318875588108660487881681534741098847841152017285131362977019449634991198538922365494354383488740040627079864127499173424813386436065376287652213583470776686219637298930787662372971747369183948233810685822452528649609244705297606984123169432170633950439102441744957727965035053473281817037357446206452586354076561481900860060802328514161368325435556145790101539500788853260832198211714326798563058885834570664418391543635202132841963315127280058762377976265460477499773546705858534413807576574713346707897191511203742438665247269090431906312651098480837113455510549776913050305701786039837463135611444590404456077006823824388553060000564211009292440605300643270622424630938342041999222823675037840793165449432796342562764713940414893854038182679797797860475706840121666148780339179559682167779827062518243316145703626940403269282778082640108591189779251180557414878469237210363046628450991915188266608240408406040405624865259962471079078496067898691072581635384598604891934696105480005856668520406419065133505347034984990318597282624646303863225411945920027366323552130495222049910072575672812363098673010023486515443369669091175615618710801675338399397500582173087689614659876433848137423858536694591079769778870339554481234008255355925832742827665287361479718800255454989769888658927605437515636241586075539163908545937553018306929224217916545617422172112847959297277784042593951310249963025549769811997834604127527477703869524219386966651089489463145071822195316522991089566941662874193190757336059039651947933280448343463873255346522616709182074685717961329420846224364224806330474185178468110813415508027752008220792285124275947387849716481216595624830795788304314361440025650849302834985253885412926161542499721744831647183439524801780222458245116071859035275268225897258654787739026105368983101307908367119688863553931240351704444440898808592516245341443096707880831504580865325531877583710775344526841280835874820552705533118352735232917225402938598441904917658454168587104282369281844525493564751519159452302818883497606403273540051568493157870066930592032818288423207181649741995763737216456939398458191709229568680871565776202938094510450576732749902982283333696772788199400356062426426390291833767912579416182284854810896517518846188386457961607314203337499374067279975570076346505367266217475981613904979821770058941078050791484474368164298213862589341657240376763857358377825854347703462266188127414163591289018372430320093123757059561794523304849039892374853063083284155281065299553864458644188139492251022259865353373332508307522849522244349564803346027134290923171765204783675550209434400984794356901989033368577618435392810128960228041345605463114944220110745917104496984732237606187220386593641512684477054115372870898040257198357605104914459456273142727146238328833923486258870580685698343818868106294182591791108711453111688109523034071096147932319405104125663550748053809214768132414065157536246305437588659681592519602697605898192217144010608180857339457590767646404120274553842826918349352737620021812949518056634770621714769238290382880938041028691738218178425799668550662788319693396856500745729520846978143758366228928877381391254788370331407492426376726471890694920552293858111718701433525041447762263076507995808711473959629317999293867910700238109257594332992537211841990052698718573329987072885985171418513025804107865187161309196209691351501427415419569427147193916332768377393758549163360026763016634871804158300510050726939018105291076520349220714741266491734587748767489962889945437584140376917974692215875510802322865332019103192589675984107027018337859352349087202055343407898542553133409082845141813799470122957051309882662024801977441631009675415255959826073102910640352630294250452726930632645715479626278056077917857640537345100244487815911495035146427467308591658002647928674144254121168458621811595605397839944732543759991340725168184733233881763774662342222423091394152566233910023290448415252426511594392528315417688479256863979226021377005017625784632916412923390401283889713981046528307315356159587181174425444391625973234563101659789669517652232529286463439196069502287594116312599180833297470599851522034655429520828568824199933537353016719822007634683898613232929641264905964797225561899586164543379659925089749266603152617444173814056523060253387958078745254133448626945588948221022754991039903530180679892672020215918042441097852107032126048344536036238666916631176333575381048856468841311424396268910006509937791194046711691991629983729838613223564197264894873326030349100491912545804088095607867596174008547041776385029582418053311460125158963708884195802798861336751821448147995464926505163741483510735235706693878159450556426197329455749365102763922286892221557610193257974883974360837054432451442493908629665645862228798862969953932298735044966327237400577598503945386584104456014565495128700219494260407537893698500828351166551770838298072398263036568102358127829629924447249518555084692089223311151220383702310802559346198216665985075812624494397705511617317523256990066932005577549625538046539574515223822289960800688241160937939873829327789740343439764001590838310243627313626786133156445033871859676868976600876946233592237704292514849078117490979657223073178593981341215846164697618682313925281140762913591978119425042305925704669536826418751535377351232243488185554179158090437668796132479546694162314091173599274842516849896116875204542498513481469042001650441937422142984649510139316412562094411384496385685514949174086821391829282275142162989370336540955222424984579788706912872403435933996674356105906953269803035631597924335512420006434774076469114759821155290059469037913726003569564001706515806170014047393387578187101417115954280682054646810207358654807094838730917550826581761808118079508239326704227585728030501841413356368500330294461631822000339597046513434363060383265868016468415188533402053139219977506585194354554201663757698385232375338127350058387899405331306885617625042551697391527626773039291357314643943215157125287342773922133741787161782925851762913733289978986497250710610381314876469359410474913369462539742217689008870697166741301624325358258575652077882987631386602023788362740950238118426783927310528196951000466918515508934378780948496652321019607276732634462561334295854358298181666557150975102048251912205112291563440449626912900620401936237214029116472653987828073088199800208855744339045249547582037055484000827870219729641143352024168290009236676593277799592896962183063458152232387877939994327682844979903875995301555931185554145679513225360088352722140122696912634151986850226912195256606383948376772518858498966448372817123285859876485939817776648553351648038883305854529677589016724332080225202045711612848489632712612483686212020625492765734951997087514127977930826634743305086618795875931669284855046371874881518900325679994005723868912912362060479617721580325119533399501601705844389356506178570383126791447104910271785936847912027550988177356255958570747122368225586685564521039579212452756541192805457043844665661134089036087722092877508578308726722918302634502600037796136931314236581410363040445319717604434325037672749120728388395147768120678181264147618292914220218913943708764017020224495220938753595572394581454795398187909375374263139115230142226373756421753611451069231168954612215845533365257436821359783453629433405725244686583648604160785074730491991816390490538770744257691343672322112331713134241272930677537115917259931942011651875480367418007349982642144963991481130812014640925629821532681881496142081785519172689769389857476357656853148364927504252087070737427351460491976359381411930010684348570509835664041387373218751009858863013636675975248650385547439560168775807376537327105058608090438378010147610974015377371775272737826845024901886299810182821337227786490651201634724338262402681968159141867988537172143823114109325867903243044091443528473423862638430884801899926339388649302974088370903411859117103038912174296957470968257458804955409711533635595451131533640346249043530583619314324828258273033781886813151271947452210255396162634400434088181604550090264023757891474088748781662088047316016395274348243868535375008535053390748077701246894386117961653756759344707511346376043890006925923524483506145171834742005034348332215822783704583270268353555889853141851957309119470717229928455380227159947432491534732832086254377038631444411292487577174677401154341277002916233811447449635519913025362314472511076200044087386373399554978372068495152791218665643876369902922481356950161324165192229465919787574686162430232978003699194087358809403737175643797153988066119308097487354439672232939090155921333192227641251461073409527550661258787694748629843118408046206374684115268047501338144459197834157731509416357827195837975813161586281750994832396216394048939572471201387732652176012791158513354150056236891034911600857485781015486426934686489195292485329947155957955284694908400205573129008519257984583507083544697947348415083809466663904202249967663967503551236271195584654781201062405283570630687615297042880761602348612083453915879471746681527490895671110773005539038988362577374970042919803827537622642900948398979351636106584620424555428867977404924191235566694964541064050572904707233132190818175937796394008234357258028323249995015334884957526727871123909334131915719148777676096293199673958251149208740821807912351020156988773332047046807759031990929382092503839681304081875673125578122860443030656356329208999998050855319666727523258106352114390267509495551158496382785034620050990725417577842778878287048889391698092639711603520757788644601892602090904496300095819943927017997178851043345440672893865466362417854263081660724486586746087353980775698334671632905815245097120019118589702478907652378597941793641715172022695952111495161307951985016049678687867625920040973281660346403726320496444490745057981075764076279226974793308242415310130299858669096110011267152791122863608965568010575572063075483377969305194377445206658611522426702933656840950016949362736692692767906392605020566319624457551225718617644889816857349263239619005673198775842751079107864056866179590941736591678651038041570775316453778328288619582055978701249764946044038953811782376776552546646164799991743946055573964792982552990767655374522357329089619614522549376922727360855178242238705678365166070730127019907495875929456687298957812415302552995122476563372994004392633122692033683503375819363411892168873884277915381729447918462962973287621391759677603165573738887121296447035227511426041151089431199090649133050143664802032141207787156469904461077969919849083211726630331890999213833425873181682259674225656976499942559925141022723069384855745544060717762589301790139115498064279946547557883213570451954369185498596823528391624092386569431658124774360784271551168105446920821878067931004695971525139183388271322345615291941535907514528883522634089007585571516655036302471033212987895786411135965307062014068532158069184680152660202785346762578178391886285925808800957833744732018860326234104154545424222877447695572535734359952074206386399675965087245596405212618737872256662872956147648745753065982505208363391485131947232984196094670194269240578208051157155087524311971628211257097758445447974408690134685623817120850344503234558361900768739604776975184628120648584462213376348425650023672570908963847575091651316708060521593123912520562414486521707541032251941993206492210497967517809323793839767591832038038027857326791600350795288489269890286246621642511741403014905353424919235187216173554810302046736622647629878252937715211914241576269305231370086390680136866446618925841507006844839348084035315035248670942087180974894171602739494018168314185192847092444396556258662526045256191562294389511843945716972523852032370313941373529153817673011741407779576040926096925818499830641904959534170517949156930340614781977398151286802596373159983637768345833378817383280764807658340945719752627343069927160146370505399734304818137466935544076614060549788349888606713532533742274315069068352728142112675207263506258428155282408618165182563058327509165865686871803158794719930438319438992349335131313261219522539691489269232956483012313009439151943929086391240531340251499489775968522944858578409332889380125738402117884586136697942088519510645843278242076347264952742408826552372888020707929647011157107928897719080313583157530975135884237559307045246818416329352248111776982144862930011201371468403178222875768785193609514059829897161791700366838366622680553972411906261322460359413647494508503049751611572231043718008192306468861496864263543147564599620176577791147607782988202529943430652185196360171059457338011507365292629218764809986149537071513481068957746312181031256025554554477747131369430346897912045363137416426512647542950803100358928570867031517212744221067725222819025675162147865757386204400392988202219031499625964268109353843325486535861359708490345828384238865930229942944223521646900806266306463463450834907990476017680266422905990002953253632256787520164799315334535487096397609800199373943715079593482508739699370292456014763273542864590750506675744106478846517344916167136740091943309083726121460851448726877956807106902692849960953802994687216952595891477223795493484209672922608264385281908808535499956633518188420076431889000910710121900637242139076324493619854545292409834352044903114808315356634862244676333915058657705574571575405172523165741604354860570562404582641708988698568687269585481299604023316961163544416543534680635056880076308748067147139907040505124188605761524388403550748514217002841173326296832902928252052747694478489666696595062542251236582616995071668522729208811096196390431364322669380130589382596441112098258909234024127148616332672729697214010609542600443828065446421211637455629586340298598310131340025476783734194596324832921168771026268743585536768738044725940186174114922642555471478925513001916173076360396935216163060691516867700185256785744744887563150436890640603943748063553593912950913186972420602950703986049687983883329650348469243876751711721754750184960370158034273610190219533947955644929389362205333214544831221581125542199072204031235307146403840862807064993369755270649703405494391956629946077304156639545764525263690152086165193341517907334070537232715110575203346329030412730580160843634275395126128449781167625305952233014442466890469901081953840093512860428549637864633553416207394437064791116161899161041387566184519097592253143407214050515387015092740630231778121868312299880536753596799943169230839232239232442608872171489391860987612203119983573392377805295007754967931948833133743381657790742159273963278735090666661027411465303224161254881117834306322474346950990143698156866082065194428568977197885169197613344146832663454146862313008860706123267501421795151081439050555660722191282404839739952894195152137644379305877807496062694342368957381223299461687068524848852824948506470162560825472193657491528844960949625439665458146682898571236591546423817411128194410818883723318380443777417819158729328801755434414536783179666245342089822073725679647591263456297532403023049464621249404706055667477269854918808543389340067852693742479384516099974510953752684911222477695682517448521614828925419002522231876098333149737007800589744139162026311212737312145282546460501692033265342297723277127853922469214612410558082190384248708886610368956250745942199649914950074340107071421481427706432847680976662501209824524114784087976725566887643921782736198983764486209954251049533418793180290753845344801313838333548618770008936718055888056250607073795618991237382526744398328826861159034721272926834516664565485090655148479894124118704183330942177686529424615990141099496177246835346759739911828346822030658959492486726289886569490866476013958033226382686503996628969094064480766020460399962057565276581844403995435410252254932290530607482599943729015951202300763860165992259627186885932444747370721902102018126965500973098289049473434813415543454037041586725595437779962855310228076671181586784490911048647145141373003852558001500590760570474057026376591207638030182351595145566973621186005066272318424659341607419724339947621595690711871093990101245659790642123610788561721014777041242729397577605230034747527389272145715419163094606640696269215971756074033004816061721315441211004359105137070465228415973281289188290872532660228101145650713443686131161275428533305471649478873988180368037868322047317347687107431899263933262399916503774318127012153604569492859109848439166191930231190335187134510072189755453503328866192482855022518035217105666324545622054018840247316268869312162091723403067663873442326957641619442456314137970264585409526785289229334127714574250505743812428977484619613668102092673146779491667285361691027918512750263646996139275190955397492136413167444594956868197572828994405617810524270756062279976933113010738459706409112958219529685679900156631151417302072438640237801531261541889433881563612311685182063098011756870899014647368794273817347546185672508317830548397509847621724366358203701114051265379387081801607379113953099900320024406845637047563166151434901693922820865064219303450897822830829047760998109531704213320607891397811466061311736911161081155257179980363316490094042607240061184341460454456188673502715207540624434232697051001570435046822343770112541176388893202833231345229245836255983675591448117098239094486588380261269397318638822191091961545931347831798585752363402759035364677932295691532590445365544747296490733064011185457065641029441091700425610529688887681447223900215596307670742136262275897949626628762187577714040364503381117205024431190086391920417427641494823070854737147829188353316775364538862055966537796926439572869859104700078711673129202237278914773778003590141552667067700048147562048017417852861209722984227291193166481614501204330233829911298937844683320802272568086115807411625415010010115829396210900576774155756035420004655085330924139091749653107596417685462269353790182992043101724376607020625483702641645574643666522109025592591709888680746983011136661370895755187525422797689786120835841219768499427653561426161536308493422766343967653244204122422967232780797058019074689353067764890051032148001574253034727724612981167412968041328254274062367562719905220981813043377237177723765393472488215960883625572946685847596415147204325626998952700244545087557535724987667037287444714867583650513931280508330683339713676801661580601805448676308357884289012796309680949645668782030419881146092657114800075750840332302311055710993856581291192266258999651716308195120089538981920411124763938958555223389910726784178749836835622037066354743824883257171560004381870130093310524369424966067671567776641469203422226059641221970207209591105100020761486522878998821166998890444050400744573040481552855653637092066991977871686427603061385187625405105041459599648729601219995561416013443720348845387105911416361337859124605662560863474418775080531917200396868363557135253734161719408794011785383016660405729894801394597983728588544077817258213130385599378721203125993048177272947589209527397479056000503060997981288261488962177692935991625360653378334782458299478689435184549418410576385878504609610147356692292554299195467708933742176341064406633120798707485009050616539521048334205898213907155488941392971585594057271492025439381844082566059656415108818077992889205130251013446269582782755326819242605450644028058752820828401847846477062451578920690771866183833341085547815923690197456377648733657851583166038674497835614814858556576653654681281969385829843371744924490698915080721342707668718599080432443126945007140694564163827462667361635895413663068109726927559673542513649441278700302760571584744630526963443501058772344136444431886782955773523855665554491951432070057671243409055303662226628540346027602278369918895998827999667940136677071695685821127964884656154764904505034742419904559288098138035724145022741158863347985598688205861164126102360198570462178237797799613781398903972124850960068955954323539273303112865699860153742591804132659231365056007962463949966823176561893682516943821068709712661903849047263789385596531869241854144894371388749945842733444681489886313950635838264243518775607479447179363021350811248630343123069157933834859061080896887551684313881013258629742883329623125994868238686952457966386832234435145136782356053414093194785481364002125647925388100571840553951226893572806340444941508749534352517737597110696386083433900121013166781799315853269970262214550674567215867315170676962677640501834178188202559586362041370087718998647114911560671596418482592163462328360700967865916683299582230783938873928871359745805655141620699092735658848625583482280620819168616415010822237685444669883193153586094290184421808979375965571481044709407794826867201384585568196890143881342660842108120429961666301416069229977433774475209137057369199028892050842613527476068166826288661688480364291430746931830791832535351514132252786424422865043371720692149777441896588059422220940240571410507246315906543636068394349479195054801803139947477871236964852567971869088239770605051524302005531320642842520522499848335688079767476319830280723800262773155273611457697296275482580326894752170803199203493388537850593078460068639710214140344228036213733229379084165114985038517215471588785832841690156530847944145221293923112196732444956195682394912162344315816218663546431272490583665304829042001450663578825038002818111479528432477898767859905171381211368919932887572610701963082152822048326575122169010057369852631141297132353763423072720143132376899587932868038257739259283242626910341417996140480196944618605965896214991356038050752276268395298946647976588535028329526681492170011681613191207647703435893425511584814354575241514259942413242334071520969971347618340320632808663981273185475826585923540161993369581796326534818956468481689129217817570803908640545904565483669890341485324746789334741052736453943690601949530016942011218991003396353505493096403384908466470315866331550905480839821339898684858878421385709197022174729476884473499736591303007939772070170272464654226917270788272375618541680144394196678547748251753153892288968133828150378590293312479343391017984968670991139772899915556854532458784112447044586018916616840457884743792577115044884099310928819568540192732526902893123925725011863949998695385639490066739200622859223032623639948659213495017399745771998880212876964300511916667000325751786187024445651898728252961908760700197440574935220549910385278725484857680285270763386346029391180164140353121349651196209368839026510597523168115967841484115578182362137666711048707296146286423601684951041570147237794372659017987817720645539530814683888230183922894212576669915221140619465494764971761624639062210697613734175846500960233862681212299814405828567166111299594951109399617238695284710552280625825865314149387573004941353280870779534413996949422465900274558198914060941473641770818785505644260983919266422716254393082431636101710125220187485431977297004076614923183396382631970245721393857217210873362967164442576641052600783313960423478878966023096495991973878479949754398959641021147542598849589115175957008513751484807456086502040995775248476106767588064464689177041184390922356132686772626164002627468624377263901997008847753921266170795087136407111722947574812608786662799418669774391992609021467436614480203846349217837875938771014625181687131946157935962813112245864014493890708461002607635974416656912753069126420928571005708592934097873176668145442330624238701005113361173519996034334815931786651082567261214594840258666164624779110285033898940504468303616110838747697313499464365542866957590840861607935832612128007615726609978169999978845926936441162899998231515717039672230038837089218122902921322873952039813848447192008509018393676649722413081200647914233259062613988768191414610772536886608394306923687500653100831474686340757044713069308260532220130921338224264892163964170566129850730402401637195813231435592036434939315864356287323840318737515731867356354665886662449508574308918021852365812825916997384826120997046108750639082731146800457003993483300848176529910114137191833704131631848489373786626594744387110974163549435386189108291695193870882991679925387114757232791054742255826006480086451942668812159838806572341605011990711830913131470555947158500451809558913020510304473592843466334655440337425244292680404119022851743511867502485865431503800354626418424107614069707483086729891618325955533924868272346511873271124163315661961735869535761795431077312389860491831774529535657714673201912864073198625240094345048453431629884963956135807332927982917045789323337465445416610262966258116024551430584883487288779347341085860567309742200442520008577977073361670426545782702397148196258568502040871014751438435979131205840509642909704217535871256268655134494776091207405839303100489182324146040557009513472813028469768708287418722542048287042766445568533871756526270919811223840559203032069104552647772215237591387603040292067311682985243424515476083078582459565059840614731454584890748853115053408786503933167892570916101017499207417025318567629718595453511886383768132810644492195663313237486803290038993330528528817107045967484214434106861554084535297327043887728250465100647729226519133861098992698856453869443938890020640755244396161482145324429180451138380754589888436374008394752959776402366138784895646976182507498533150965275871160050750369893083616783144859539018280276614700034758643367988513029038163766258511679300665754547552984242148022920107057431787325434820965495346665924552937111916287654165974668605462159943073825301590746216347149831166588251170684846013526093853591405655465378918963123496086181698147667586116486457103277176963805741069485400025793970225154318951132848998665879135128230089448329560889315260200185164156093285978151662673566164918685557066620932261962504974147472305952620793026067997304678739212219887208422824248743508349067864282969147408072331659001020339709361607912171054486520951166973173253589450505082095476353082050819766514998859912679005064296811871940091870095290899598323588549729461503264299741480149910788510164933887948492494477069832206303476650895855868911913940589398651889677679131024430672240897888500515237163855921639499050801828895017964163331612332591704857713150587060000141311175612070647014020281896218454894549468285337421401281779444313181145143348091272656691820821012624576488018784673222595561684311389949786782758417631334465849434760549656203631639923028757598741132893930486515107586250146218756079209177712248353360554237633519289311039637713740766695366117095417601706068365823782254116648634123645738010226387160792748306847105173638972736096995999659739183936516176210069335698873237512732726082729966188424410566078884308433867448360557049499046772725761438146056717169696757279465606007217661143948542253379012904653753232866894569788589001145530788900429984223285865032873508303134397962400806936924853587670898407534852657440598358468012114448888280908615050982234279063374502275766348766649584760592885292893604519620938824403613285214935077675690849592838848472201867158239477243566165923262405035213979667950725687548374640923945987913421030829586909789631102490532286841225609946091952787296895828773162819410796003833166423996549324298806205211549006950677641565138692985437052336303863020163861606793805854944762131528331546682513926389045244371416604889299971842060603450090394757633412655754229675428726884083883461525589683262839659283003736819613032393335358682862828241827955089342926390978036696851265606274461593170907026935652918846004608638401024303752807437372023134596593679345401732636655368383553934679461232244561519223870467268048910870936284252798501485981017342625826716227561252796736961056133767656302388036004698934173607783301742453728263533890396254888252597051487156431894709934374532310481992114044120676311318712797703963645919424289288518950899513934344305440832751671627115814237436683191112779555379012341698958788523222058335801604483232013724590372097577172810802978945694116772188703137466635442457844514670656421944773559829099126576562221715248234178501764583155570188852656358222472604747144243850342141159229909637014254965168054253181063656054139424113757374327552299116279909671076719279794376067577518766901031735647536591480221064947062080981461206653844791198152449673728063604898000810254773127546419526079949201189134653804874458954909167435764520743725278090580425833984325324860606344058143850636416156816724282234754646772594858472959696649311409644584405105018544878390606633625554821071942755802603352435117613452948826460864586471999326439933356422552315242121850628286056596249698490625710488030848244999551827884384515598835379727425967619837963205957847468940533489879374681681649223115058850273062913290935135637099063206445943430258586926599283393107679762999093599536291054283221980948043563647813092753617847056966841046428746818768558031354680823460924986466853621406086758687186542520710178131774255950172921104647902435807506351818821842131488369206550509128545781212679588884610091996958210821349943737324402261782257154499363509570102671181155326998948706667633944256130241342478534552257142683878023433137696031505626348455245634048227590126732964907976492346396407562954073092213517904232125192401291357098548550264269064377851980609702526420277559525493466335752506029207646727682772370644336346330326183151556084343535444668763634141053804892918955397480368408713374562669913322940516472008864744338098769319951491952552662998236924452015749266509393264876853054943478187170345499125836644741866039598525199010333011043320498507332455066496845237289506548592387309897659943311155948879265173004175737699984213397902273346919156858394405786430570511724738450019864598063969269086088035015547603956425453439905782353754353639030141653083290821481625452981533465330383771892979539593819422628970701672068188481996787258934795651999668356773663928780191292330128970298532196722134135976174031474485009816482694541918927504600634074756378850251971386958888102527877163423865938156607103099499942179766198028570146209507190033093553697191150716901886257330916976456553163693736011160503776429173891301982280192909046985622115494961347994904507277939308861920107130250925314506207620975860754464645317725436678929188360860268047679953718016396065168181105262599208024477704942123946359601061732357002791642593687308297726256130354526101237948557912332970152361857885947214042374677691787169168306690065168320523264812690652107618439420260152996925317739267568873117543058229156018832430699256232994186565916472009759657584227311895601940674317581798831919769852169114415571577086150938473390869237846951689713537882378342130847097279611475430714735123643571225806977439403348617935619328544670523651666317534598882118915459103280089835286705921269734593015817905672910108524328180230498210906793029646320123736492671938948900010257371334848922316146941649316440644180395407499585520379648347416150863334258310985332224056751908765170786089318539897239812948109900540396068126221600355015597590143517207762551052610055950421301481858661530344693286463715425610916052128848484051100554760319186717916938935944496853358753908411760650020053170117396531825919268787766298530715108884106546077794989179822130081483646929029159911565279258726915060651526228090265588663996191201299835666874083888808874537478660059450766039431546071010747334643973166238927248255881270773567616306143508217928146910241566744796453075047906496331901189059158194801374028118619070456500626813169856182435565892536502091710900179404760885176904047120295060659572438908061317293771804947750995755699933753614538529945642786001404831107755647318343821438278148977729851527142454724441567709734300376327492564404259484732346731352598323374244453360371646066700060344550013805388353251667150644581928702698694579398252888832156713289149105002793564723251146792538782666758518911275486486488288684454505716947351030638909010351327415422412345970822687203075485977758837682096095501265825027137363667441355518460396064637618904815191190126109232752303517038237766193968890902385722939018255867651179530818470490266999457946825292872208428415462089990848812234456871105933745627230678725562178953026091220804496383398287896484142639284452618886880330608975631344126161731004151972259880741325220846382203619204115727732865753277346765639004625971526569508529575930180689581504751405727241609272341503361074235344886733526342350891281864073682469380506419187270358481181217089866536805043090623648014902733014101747954069058271661392379116059682121661284245881509404097850703769851193316875274051393996393148423546707716871451897574754544118878658480011641655275357656418389382294599367342594558038828221309298760281709051031957645284899681066908683538446342933343814560138057054805846104795220955856759719746269404271405480389677131273838430700161562019755168598803645330923883436898558254148344192303949343402979706514868552725587017694163991313375732602186196672556536725500888308625335041249227894177289710910096811963786365510461023505739057031431431660914816320622325344029102294275390707358825127914547481886221036001285411350280713873831514919096812409140543032694055362462640982750159451356881122450371291583094553036233965913830343679583452664762042432086438612638292949495796347451308676205444127330463615228732719897212813957614221831293876592918239182637781095209385194801073363346943849113370717901180703934083772594781025951145896048624340179306223546928372989528543718776800689654766184258002532288343546345498355354594636425434455255193225107999440275658238783190723069030572016151701015731247437346427254414621157337325365435704578980626004639067052759087593464331787493649247886716433002405433857376941966303385410803130056033147434220870009674192491293485888117096378859311323862046119750508380957935128111327292763197081567916635948867767235881291703940823140622198628312720041320305824628331535120252012389544959636016515412060634900087123290389107823629581346313757337163437734114135466194481929051893844379793946891836482366903358122839306695731266230234969445314101889886865125224229204273030577272456805052477195689843008347807251441273956513680915219426363450342167039991688662559662758818206117173068317719267735014228125824984022062143699988688272637753260414791857921723216707933898115333399451358652883677453536253838705938735511585840362348293209767642869750342531251035761665407703631037715918843438756784141194603432115443324752283069665175812932518044357597601593440882308468069089429743734898984097869340458513268081402513978971421281690338341634813498666152006918492126944754991953134258401537069224100044633153220333301034854697707125541110096681939692736909045029268375888718839891562055594614203545875565019665340891788581563213368881902521058627230461190853179132714991298384691045197587761320124993316426091381483283888347668575656155295904322614231488765885635694821747983710819032551755377627891949796001915588361873339139218774134228261080404391436557182016835657981016368838481647803219853691587321403170367985251043724498761750827746583877845072302251863667831837609890471201473009060507302739721277048188759098088427169784185861330297650260797143006024832539210814095820249706621665244042682920726772525048741451447777363514930331383595530547146065208133332544453808372611298232057186272362225298874860496683360772826852257469921155976923077779780243139758507844416240990501728179313660991244996674478738471311129854043326586222176353303468250844548769650523261379056827150142233157368334447438760352360966160395033946445530153118968275733404862780262225445523880629567700363624415311749745937304496725712794553281302250408929252257139764506781041476253378656209101490139894050273958366688673026972317802078372037766535180923010623245043068068630513064454499555729817498503042106264511608547964262101928266376716904110745477935306725414314006374690601326928013378292278498995513316436228699404653424152111096892940144374863171016042468000711365213893971966090570409799149590700945641853592188628502164172863531147630247652291126384497917745832802133577304138909211962954683645084269650143285483387391362237473132677231225046145432576910137429927177454537507108191090246505369137144378716318272419163869908933131969395504320952291710572223884196896599706370110684170956963668284085231953195470483540536294203245963498012558174947947300800782887955356834836837769434810712418713750087547205028479156438514919519278443007826189282228615582623365344323036143602892487314427503818510420356040021785741346226361112299110286622639811688154106293103983397651219383934266539418691505253871445264489458141019492066188711845405204086623202902152147589068134244383159773034343915949585207068134384635532439235159437352312673163454518642111299861770478851566739645928472209433768059502604521615982615425419752262288439638341089541603606750692415817035782506936774226049939485389457776366703581442949437013438243230870360025299529364473588610467683436789880645117844970767120614770715495128101369100612636617507445356478584617953380101421821419992187099513258603271386872776072110572259473190174650419900845285798233331444791366556016310517811652634482415878081120826294416022322693033908268984286480641189541753700021262374236056502450827297604434450986579200442866869905798513535805955868099545192293029533064424550160713789697615569868713420103427626056316971977384898595049573732262850319824480193420460672777364959737504340212689940317700922523103515388896219024339447699660864824602343402235817171878856471403230458363442733589894079829479176502193801608314646891486128438762907821050303499605218901197551579277610163911263226082927321055948168220220865462947683934181083712838530408606746173492864461566853725898911651156457583816641190873828738961622994139648579796458946303318649297379635576402651510287561377765227925094040924395227467454098232866469225233167303309075655616361446461325102584115223827678329513456651437180277398182462618040668278358998791283200803291735652229652424405822442525462013532885654669286615187305212873972698548685883819486452649116740898374525351708632718260071001671341654017362995580068703065485758528623395191402462798909471502452231784889497466255661215987630357403796328713132293472892415461051320002833999331609182512185353616862510405297260664435809982912694973421053951521723394889341362863797587613648770939128853599402844854960107984508489835056417298765437732017260240464797110132803951229678212626971884937449856198253056121640328278899270909041330513884034384294516123201412382269519194016181018955409905100501743337999918393249657148251421635040192782043152825088843965222838661527241120851266999343250067052950330528447610376772862198010623540895902389142962232119432121214510690783606309375026040019946442933596289685262157271909077309500884034787203006851420999353536538015407494559950801837378479767627584383745029995825870134863906680665516740012062762023797832240837655120107983393040027173101348005381244650487160010213038760551984319078498267096124327971229997902976923715780491035950272352953583807816281873794423454411396319323504169818007095353985952785954724856164372592196198928689261092283784428993364936336288052997701821153488085271473935409883542198196672439803106895853331373349210406619536152323579832757840828349501605795590598560614523687144166328303839753513988413927390258271552578052859078060239154126096066167594303747725132500775110523590601940595814032707023101513163313504407842085683391410877433407077183299858559488478442380644124393848057399880524877395923166591306192497465684895705123530079855858876918688256761164579096749235032863989086635901077786447947413717341549725473946196280951779337130682970017489546456819272898926017117496451032480654153191128777698757576727872367088659502115374243910169000738681251591118560017223669793060893370115736444373736872928053676289656485562266944683795216191223809279122510946226069867405930659778178803608806424080016352118370332164216263553178849320926382766088216838233767460716147731086816671453840976935845682892198366571030105649525824392891507649588007971287253537610283978667289450234231209081623507130673278516382586172619337506047126673700426133991282598204944058164934062580658642055150754404291603998048431602351421024011826506515854547020190460604519351764355896829564971583363149942133833323310651219750189477835581678810788957189235561499671690851501254054077975060749356683838538698168392758970022665180151844393709930887275445831195036553602243739167940680769996192909488470670175209878469307565025161788569728769048191171197044690376071883161110665105424435982636904654118752997310347678408534291028018623265438985281442230300197407359527488115126827656620656582975235841803369174447506113258259404994727319992465720958835590168339208702789607291519135705417872010550336506774581010091241657923994963741873960400349633389349419321845034356459180054857009820170293208342367253288784134738504641382476056279300962696108807531420367988629968068699868927440218549481206462033791081934174328862333795447279439885193840037489837745067619735610506246159868647068041225380051948021422573008518213856407165143499504798757507008522502217155339787710195539579817665967683579945692221717100120727541279225808349502760040024228474922934112819425879651771193835965705262250450837323384919352858641165841469608775313493447031993747437205418498690166365239006767712106119840357733132860949463968478484474559806439724597790979467082419483921617067404086762980603657387060604836070675434981460066042110251374296721528774837436265542719774979419023063483308346895532631695448416704540314082019631788480332923567410942605599159582137047537427578301396240329964618587669369149368291788037770570933381854899636236880864408438519033437187389025348997378167519517998871924020308096509725403161741638015345423538392247932698126570437407445566801582639450681469694468918104407317415662279307858186120889138623149281549232745802842538133574815266092288028120292443414622919443461261609935503632631711507382814694463532599629222515919802538397559743836158039635716523079160000305655096974261046341355249445729715124913146525193446548070189411816874800455914217804398176043698983007128037843812575944699863947723963714571312147216867361195041182401142409805018761322797509411177799198190603971705285760306646734578698661937300332707319408697905793576481967908210348763528184262786135955952974806518175876171636353603630289842758823860766316199805892754062442492263908577147759120219506557973540735842474035802985312313352158966920543756743434053305645046990660020799014132245299010092032636339228111051633898292961310956786233915631301279464296320245357666427049024706806722111481532968202710385123180870238705622233354546902618656957179322803619271490557776200444882577586185613184233302132813553226854197797241523939811550258297364377923114767222783817615753197085453825155966726614811744435911617237466380709796975244581836863031261699870253290691839605286162131442925219032161676361021068662200345859951097985242175797435280656036085823730604925399997171160613313731764115192640745407666825666900492316716439057344895271099372550438180195069027476207863955543488135559031138572568017857378299339148374253335161778042451614502569906384691865337890762553844212740221444438964536748809602136474578802933946961959528017670227137328812453007339448071433718095165631139805229547433490042892118812612856320364085770607900368211205233344074198621636326926713817011539004372005641760625081002941229904178619669218702498612982677128893249513784363088918126607661608641501107007029903613244016600312296411775217024466457511732446444132130991145294606292144664870972875973245501724565868043811128143113257175933301856077801979808023533523438926909465918373077814678702494660819569355451752416268107929179359572149746343668477106164868491168171190317164382563762363570639581396798006726378410653102185925569189356658161421284707140117752779875390488061163992454518950318007066204718430537340992814406302026385863749821326744426784737769638918023835919601330390328224550135529104176631576339233383764983078124898697165850847687723800707385559548436606167270185405290394811049777626060213802360018447487781409962123797525511709255112920331980913902589943621727486004471301572810413710740115388513360325947991957642602523074641597253342982900170284732020871496929038640267412336432495770889492520087952130544006288267684536213462570971942931850596036437262015628050965485702254843143468503329958586208642554149131400714912688829979409945978429554262427075295442811402829694046694906439923670357946573905685715346593609763488349225023778102155496460097021538762989581538176499030613021821147728878955390680849583439597835073309559094274579247633324724552140611912188492345400284587657374941584908142885166961344266963695541270830327327923373096589607104417220462622687175550777530399920369407045107810945141339304226361639152287536951313524718430976140980448874309722481237367204293183063200681565056613956733885954645290541778733830444897697470114005022015828931807319746306037844697554022796438377615696276323862175192767208893833237703299770444009976477125790338221619944036342819910803631450563859603482724456371696497825143054545366523874271989169461868786607018287158038694168621468055358982281370012345142123493423289479231083485005884807457373718411277084531186023263203145903575430963233928767582644006600666677810881591571669643234230716701170519774572213408012367256249323525563994595560304373692041227023998964093619001624724214443679605618062071737593443225959613615134391542851760698809839498697125784144256566482186441170357120967816622293800578191396915906124208432344257831465269813055433171806664316567717197249203213784264234369698278566179134816700576678327456159662389207420004283548374192481090761912389615119604658460213586259894998962960899084849764557175067465286138141770645299016291297623218720006700323974458148352043208542634782621766028912392479027545555241976567631838069541909538318557364531930435617644924538886782266037289289135856901605172596797289471099170601797789167110526654978819330241649332740800327971428925957077962042806650601287754727024854691052986092355216143194437197057944422661989498867158617934783565689803446647992315495516796423060793545838620155140256010204965396590891749069968842198758150692254525796832708510651985363513901360825811325353275120853886205234106022172075545584041160639204582416787007021840319603824763094111814531379672694460686118233726213808312231971832470441499881773402473608397218644354532544283981323805937320094934724693925438693725936266568788236040250277382683676626641000604417293518226393325501815056187683654605304753343677974137619093979392998000953472153753292793557010949802981267823342183693610648079837383504861938083144499205080410489476781944589699975900720296264203873826263497903222902818711427921000867794690620744362866283422099350548852178221102662287404729614490270814292308985060179053829331720826614780707920314012171279757570472429821033835476802855412920971317193750132176998984954140138537126530318088248209450341108291517642797475057964474833192806832360860266784967336082764971410812576391889537383975661729478207567947086787105912132296190841466235908670722705135169087065217372134455078837699470161549479679609990346126750003381699624931923643721285404100702561224697970417923266680798657825225438487488030828044367257289404118633453658569084784337072550007615173593374861454930369771352493417862539656817996105296023783139723249483288586397499508213452140198485041403955538086400938217877151303849498774688845663190871429988481462464204192138133024481271919848713843697055005970304925735500846900766499801803970970662424834154629103685558099709948602735348382959467425004424683103614557625194474354163040433366730296984738570300663134570906389945924315610575135214483097843709791920076068390787092219863710314238439179434661137612387957531156038300032926373594456700029212523759131714241075503696849125732248317354858391706801307277788844315320025440789233802626212724694207897319752535718115704068222853545881533537158759052106089864533175611884758831506988454300124972034965357723549086847095240587149298379379111574798994339848909851392494805210267667080218734338988162293915041618587578291220713492593316991246969134415659540252384812780968708967354406423311840240564208784742857414579004701540996554824234910192642370511075489632949206121937208934450064919519583346721275369693223751603817391668069520636521691636811313341875410794519352577984499834844430283547390607706613433288093939442928743352913219457994024115384131376565837394963770283572710784317782527373048243789557636474928973415866713834295129163657283612325783499099196164206540458212529624350717331388953341146241740632791867721065010553637002461977143659866476100526388789102223065496698527655957212627629385423077689740505554966505300668714138168222345349901335361230915268335270439563975070045350060514731577312723041816433483268372319884424703947593238970757280025151540909860178037696827982916071149564115623906910369980058238794966842342475200902573382917253756106725895316098316939453833325336950049401514896125924197366932691874026366560864130838064863546307697083791633248805301404459547340484087734633464844433668885485284455508550371447953831800678182527161345766976198503662384402743187035141756839372025141287719061593581736013651354826225700972322738698620296331694190474677979454250879354527947034340283169983815366925597888246012496279642239116213291978106197791592835371166043865885195113866633370099837729563875496145956992584470747252407553716709973835492891730324225023596319108896673601678468043148722996133002950094620375178817587372708601648089393299779458664997054920559324537362065264044607105456748941770343187013125036206588445647450200951258796860266659579782871021650185612553464204833740148771522617254691323663524822637193274846272389271418012354703426122398216381656973928776654645819814064661873296520419323187042476743036472491894834681774981507789167541882859005426251145966838264756638309206893225687462321363928898799358137198010326290913195416687910449851285719308061615485092610016278810522891512825303866762870150944823241528491884235156366293244556345969985869736374523029999297304234247182804457243163677310664163706823709397216654220379842340757644043884148653389213786945488736155483743159241001360283696854893208660660005035432772524400020534555694939049859048615834353987931389218266550771535752088092445216071689030837731992376502263451824133134330825220861857759068316930700144671193365299573225036303734409845937688756562147657626935028339412815165919251333762581928641145912707089673135095129429058343342122533420046747581300735992871488619353848771522255417082572409559440282703781680561868210104790464529426280819243877919271553979629154962520390785950393916604973730267048944451282658280891610361838053179642317622696558949302348094413383821573975842880718040741125813811525413411810031624852396313601796883640989070608814843349369699608790194866070842489347669462158362003528291068517079733698674190983160582736258376657101661532220842280265117399602378138821251874306732537290390337053354352857330333995228344583287757375830199438381164455397493343904799850169564492547864585911852316997385017709966966532644478534314052086434907154882223076944589481814616526452803318499662877568616893742311794364870487573226796858764901235987126169964659933303743890590900762690328623020470239515614977060914162440191474784247152232826514534122004186898297552265904853072951486623410944289579486271778941054583103448604963060154352762204846397918898896177777652038939887773627014645570807004222455469226737907721864423050519374097388638850815610174178687452995256479550100187012050353476882067463529573949813465577014248084944666084623913147860180931938577379527316918171490597866536298182663745361854954081920599937596959577835086068699694778139813608652034879925363019418817519908202916613510336797290327029886239434850822892986205924697114875531539251244713761489161478673960199193375133089994753961097143156154823099163716261261773213642290333436973162542209196825274605545130570505264101169481538272235720945392370704375889871341750535052809955367919634240554839294598175471580821655526267963856217650214964426972782372991826877366938844577173835476015585942848861726642787392945252807127786188464219891893722654071646222823491130642937026670935907549706736792046380665388690190183776449303412770260852398582581561938621226238165708627939428033350351651968523440415044744819497926007263701776671871427271032504414272109377732285365737408982894735210296133577848656987331070879759440586858935394201498549515324488073157717518807573375105593936272810434458242280519349000699270364502319978181515622841511091617388287469704538414334271361540481469337042108702465634782842782167946369977592168813321609361086550624147934240102457823948606969012801204635135439136233483866542952011716925328567144390761762632105833587085080025253554262710090259130163813413267833584428485260386373069410190896637076258551843134719580576384814551388044476704880475070837941471377673547623095226585519353381154594358461115227222070396154681623233397917950221704129127753766414467051504422701421390087521083990815443381441874882005765030367116563517214149057112095794856462060667653663686310820697911096962198806388113092479340592602692373508223744448536243878878938402189316564851735185565101405807652593445843183381749072641828241471213382469938848162129606836991060931794744273212960978050328940134007333286731657618571843136831368264712709833407226889362535518947591030684207879741311593669256165940654387743536268110917148637761799439550545187191364588676038848759161208069512399124969714796185846800064453408767478229398539643684507601975321536074635576457645357251779395864988479040825708513297029929786869890756640593859348436375267110729077587824409972018668545821753927289711614170947143629196965918304905922562738829621067055642457045828437122001443289378864083376846414610234307380218624849717070504181350762996163295831137193595278500094352717012459119909581437691520477142027434574266249699173138213665569854894749967986848699919688786760625838284097373223672573447132349542621295243505138053617582172548646114478691826461776710115700792178112568286735752752060430283323467702751111777541423665199830225235053200941740856605281140711310701516666116291565153242672218571735887718971439350089668954629105291443587703238941467814001179050357783959092034463093424825190644364784836984913724310602087008327391670278681600031990446647434564689287829871497318090810253549069391599038552679193228924706301968697354416360359194472803656700207932981086795965289081569539798201110129791979243989754517628806943309081045500413224555969388329805219638194529540579599643989994229581910508860326195381787800544443726495705072753931457959350928491578691373108307956787010281651995378291088177382999825325534557177216976036586716931141199513758690349203575064802455792541947358882580519515983781262416396272314080061631735892325065220020903007757796384366164506595228632282756562750530972486775816224752546410915476307423469736957105094053233255503185761091943754035740717319734795591349100480977003946991200050331480131428892405735266458429682934490792005250241803829119644264994979355230800629013343482643294294774749670160317515969611166450020910557997404849503047027917075735418891914932916681889705340968202633981034567213767155056740013707270675512737721506405454307293357974605846310690373727687142825426111195313892918305139880929963020485623400841853204438249072142368686340438279618637931788522652613156863888848012207098300521035865320847601886177441624875587216032050003580070330493782585651859382842807910453459488273841362050017990965657784840928114647225971838632972788142207381158212226746706195273883098977020129123124000100015080094847108842590572754651843198343790873366880375129710585477078805861610696197407526424401864155434216147819461683252804998050008953301695229238072583658112784088780438710252831919585030624721143573531359695864753308968802665946699291762817499924153877933834550319869633059611121085794101292995054070907746387810313612311009931291663032598835022506818025058455653264390073727013460583473606743547513200056271140633086596503246234027381482522433264495844406151568296256874096949292346040032009419917303631460258232866015815798271140023941871241897606242827642397844333582563828370745670165391753323908699845691336022695643559258611915546158626445326381031324315733035903632600583477613965594876824944298778128423342846117556174064090300065636262573642133991454798701058572027030986610975065812799615206352762688005607560907186875691447496013519856829033025839652113964712039746266739847227006818205576314274580909917569285389441550981796655270729663057429214451048122030911540466632329162229495480813869972118238742918051456950393981821077936555962909773545414469238646324354393628823703858546314091644866179112329161831371758744749415534586240382217113135455860898374928801446514621007855224340140945394095748100965145484644942310014907031933230435582441733692029544855633320836606885549292905868237149124011234699923544367817117746125830124546619182080802172538851616487757445131074516951062808665940474583132371987735152372018743673878610967810534791148810872320399941816680427973743098500095845458440107082230858442159167250216422287628579093972371144434692219533585997361242360975343332863435473446252170209012084221474523370451723213047776092598744258071668795559429297323654055239723779862259903902918950151528665985552034980224117576795856333063820476107845961721124830871796458314236111608080505711826925082286222759087083289580736805935208076045781581772829186304309506640633972510263124548056908789912411092889973010097359995815809034599291716729775639407729205935929993921940570454768597446884773334769408974904618759751942320804595325294365216431251227310480424994819349116837046079924412764928186642411073021946657586741366730094482784053602718251166805960792631328825972350236050319583274137464892306920372239532801329842917987294010097260848389730829412699343165441142211185911904239846344299262753374716075903619464380864324164316891885514921375000877493736533936779710435891536031266143941061089904556923515646930682877496245625334903898654468110308307272305679599600787212790091815753718663985565237124741989761229466633726959509614272405463581030602647341513127965604298482954317422664945865785407086913745220384540810618164020509154715909757151851082649188082309547714319302729464264021816465059715170361411339119004962861901166624111730196761401719409509212138303582576170229804067459801157195511546526984432947930465997813034406354050819853503024286126072176247666385664138990793310303913058856366285499923185532923484063897984448949135543900294075372550705393093093538798005602951098740910260555733765631285198201761628203265316900525564764623863389655128734630425761733350294088450770533683809601159122137377663440650980980742164221671061624729800123707792525223968756297066494148506328870612529706554092551840076655622622956046912375092565587361557272368790133239102327959681869118085257620847050588475253625475881155899433158452963901512445466506867053969544801259141635733534935390537303498126746049272641942289470175515995659217463326715047093754700979353985466591051909119710539997617946544396240341352090964948993649225724949669627529642895796868826549106480289668213296817870646705556645856070823010277391252331763898140092121306738235055924635911423457961288336350507285793515989245400066403540165065846637258803235293144733382669281244115700314062844616244637651044692722619960994062874025008889446280629784139059553010615170649423831464404195504489108531182119856557643900159132771647426237061071966281086759109110278005477569876697931683777666750594666978176538541848930006107824812048777824121267568102272613841758694231313152928444171296031894533434216378886925071786752194345961344244615023448157742661319762980507023956867325636242745996111003245258224625417439244427122851519389259437011885162604034253259985814877536304452599049459934249723989525447363939928415234882121899907270343447128178647132641217010451210231305983791396933139985136886832801326888268736854028673034505213179989084240546513270512570118501534615670921935920546804067725051290772690098376076181280512146557686351678914219136494318854935153619641312284347603706299159599043567239374651879181979258874118650500739116713650066378901309772836464113297861563472537199659966268337655154734237722733871751774789000339159313995076087948355386316139588935198517757732060058666539850324728586649534403628230273548788892864861992748779160353862963914249587571494216070501560642414409199376314116779942736351855558139107044626452888273522419582340454979749516875450388535352554443396267325948710245305434149679128694416982791689101327184096627330900392408132359410149663352627097088152893483435849095760180570982075175342257530845231347274888772351746125284061425515897172970339035260063002573495681821086270396530820292778039172015580427636295890564720865284097268281151563479943631168519336353332950684057684232018792847198260147151338406218752827510005406453737731340099245489177256549375707877162679833514966843388484574145784280770823531074644288197410263541633728484193705897908870094296568012020016530970651221469320367063622632211464627693448884914584791492694100174459648140983325203292491247483747851850477083622404235140434212413998548869322931234203697048818086232093757626615107047487539413098755956184373724988883757316519820379979479451449784278910261753331958187862792469607609478956931292485744923187836095990170781269389692986696367486015590702993905044820725981383289196725210806778186701567513611595482426676736776196140555847745300588694480597899252624489286395811977795727124916513673542903686240790468014712686224320344967477767303114324987532582238364762250054794150429074386812176607281693822273578726248526451024746386101529866427327283148376433629098219024928524126420972336482261710387712783681441179856425287465276798775755945385045623947858457804905992243238049078072300496047816349717997999416111705226235133121248992302530566595835375753299892839993175398507918912293813940756327349065472133680494711295690270034523469584593054816344013611066475309565978290740588116236079318945883184962231037412493770992239733508460820263158948513439361727055802935375039190725203242349567493371755599416548184841025284961999598784331267494662414423067183813025624596296295315392701692030740671903871985851159483735672637817537737363807743286427433489975492872927109205226786198783336518019782807969234717283686699722065921973093486433530477975885388462830950783205660924830467872480752406164910189107756288709194479567211661958494536410659112885248651132513223771746616286775833040037790342566414010784078729178162915879987325776426285491935815132445514122085399237079984551095889386293813315372545497937883540431452402186835735957916353282760441513909619746052568124033246640310941723538390150175415549272220339066879595359185313943025342647793978801120895553678021634170192905265708379954332157886483535550051293316313802452849132026431440352054292069650433298496216568946716136703099700044573027150428621796597592668174560513434252205867833783764995016184847532410163966379466557065896831883149184363193511715289621444819686297147851029538170488887531776550463207813825354334106902947415353136815210081217040915979270745450596728080901087727049106514957914367178086914011284940189581193776861757095620169461571225482967853656427125496010262153743994066094321988379508526119572979613654351972160361038333207394598396329867653042985436741976930649594167599774874331890580646332234318486024304666038308220620951074180904592208436770982867448764420672947757491287937644669024579259020251086186736179073938022775528792607861265248556768532334052063995854665117476193306454672135325955961432271554219430516349750940276076485186555726703956423877338309567145466294863721067173760975791642552516124485015826514672695574106579445193790349709384716153844003964846245474330573018415627225934804955134645239619393011813436865091244933963809806868384703124562249183243395638181634304087549826185723074900830254194681667899976817891708008597114753696907291643044740990494297724979213749985074590727856623763884810746043985533090544662869236731124894562835848623338024153245248188750974145718562542086440161313874492827776868955557933090852191859197925916993808634181625016466294815528833642493221562270012004972704300126178217264418995101354740065060538121125085187406500261982606254598056051828750272098010018497292201698722685858902286337264015583206770527112327297221871420331917843335820658455910243105597668096550103326788152480026634632065789909288554516270837795961036997200293143481409462655221604422682457706856973231362957482628599533663412021664225459577868786292872437389474847028891129996523732576026816696660392884795493331073278354748516902431821715021542305174576549531482345975315889238657052480729877426408157882390344368646580096861252266293163127576123248160558057926348280140628436156963739014428599623254472559982933678368209928268677349782902384813931539323184902491311228484258055196991544158092785961510693714701485640880222903191014980335877051620092476494172591534894922025335514451825556781891759109751134314501108566114682061086828475073304447212839132525407870765828037678494966434180331547913507094917135509695752498725585412008944182900684353689607882672055300423136952130648392411558586294255314554187686706388461314845140557531763398292690077830859048109815643455689009829063039419781772389153338888613256137660508439281425036366616451331005994723315679416998129650522194181475302088654121735978684277812074465306487407041564501840879602829017732684809664312138567502065123877023907594243956268696448643335908960573821190803377121559276299895438551832014328727253477671886487208798920415186830869703563449578257683972523549644231076622467367783595292978746802382395021752295130014892605991842037204956517635954398449218728679646433589697177585463259777246124810718498345362532996269252944859301928503432918017888301109670771712848720583631220191792509261990341343840429179369638710240070808637892045895738712903348510443059101159339951584733301297905304398115032452160413455561998831181054980604388666371696149785313459877784396181887601376367999928173951107076104211231520741859748310080657225081043885654471449346629418003915181814707428783360498471944598826218264408704536585618561708045881763520345391609783765319107882769735445723438565314800044287779304737739408567068441313284961634744399872088170007461183128053108312188683373272740269984374109328294096757725861114275367231253274331159521766522105189260549494874847177630476039249600365047349670246523189377291746589833028206450659045731469416627532820810225495912119131581053279099059382516136118927782030108084496069005412269324148987548927712999470656121956709894671900765555838984646910108283166755835248061734932369226142296146263473193991365440638834045714782183192259359238745847895019272445698168557295672129497658236031045647991271373079548831676127537382007989041633705390629573932273610235209112947065859095071097574245346635093024713549734185068660091703358528845718181558926580668859188372856631330155221741029437495734711888599497417331924880943289458616876388129341481588581954026937520029458882677294274990586340793620283192560044062850343228195431318787409433278061518517165352782393194849336678088021653593386569727071476400986027790424337253063453027421345701335302386304197094490447979422080497736289124602922707475550491144437540691869852554644042049402424044659341188672562778003194696015825626166695441406636402238114079450487086325135614857645672840427326629608125427542034270050856946227667301216034214141248923786922094813303783988336219863521807827209197196071880662817601719926468404119803940683043765611141304429264745074514180559139575708907534283111210280983322982657632604029520601416142960044938755117940776528837377039898619837078275258941943551610600960579417798681854969810833821800205887707768742941154076122866239264890571470522115868815791737418125189948742285563070630851708201270272296142879835101431841360533088991672879843031696927085379133436611321628575152436195641780288766886982635400497514942078513705988449866267550919751217851011531744871593226801279090456885656027026838668777483715953383163430081139592893486492240374960446101763590808846397386669973231847674228005797602696588574420537481760464428485091647445977736365205036086778765743945300100295087114732307598255249654158474416058409435682204073539643863746222744507683550551572764104115972492772783591245116361873864401146005129289889615478689049675649974465626889471566913395652466026361991693968182717584174849528825906018035154367516978614158973899938255641682880395921189119548502148866728730314430787788566124520229261413187463848088828727223921049096808694510808163522092506050610375187132218738835605501246031720935687495328279468549859477605445549134756880863236616448494224399741678290865108348608704289075162826461653589635318489024871569177256307303819439182170770090890534501901915464165097596150251363861797982951378738658633650372378434156401150211880474528951477533668979942842151727769146512995630610525306241682682034755690961142517320205759830566219243856904438934320771844493623885468102123053144632289753307839756470463195155036346728657328870449559029675052192955143954803972436613406992226822106232487837849887504991835953011412845754935408410503067936216418600585897617587859100353212182250828187316246155385737866807528525990706856550698040669829800779080256543644486877021532073201332430021112396176764595654717626905871182328060578322657128888228022559959602375546388970823517753975034415413730891335134067525887585676554286477914491166708719419878388250205129827821034506431979869574859218076609658822273604370157569597542992516872525686445991554420683549109941251012355360448014845995406192194330989962718718525373054277906615252198672685887615460686587050000925061969983051301090599299419453199658157230989623935127869187739248794192661066918797796193808357476665976209208844139281843019740857666924841039464366101548995750272248542777187632759478259411780139001140747003307863133660919184656850810243954507225777663234579205892805264622335007139448801209049584207070242415434877938695966430549891320188820465251363306263397410686051138412458382235656592460185280661407417886972690279597796002049921325644521868289765998537542006803960269756336607271626466928109821290330453713172372044289485692138292231485240914329771658646514167196078385715650285549343708026123689739063692929127737454095455982238855073628227328676979447706707458755573496486926158895678282514256048045381617369774941824963506538609350931812213831071321068467392018736837078760751478310027103678858582385181443910152192952412286347055828707439147702755058539479507833721295371193999619631482943627153275139803644028992461761621216843210344336298704342553718443692785272931756736385980446620820550519894372431070272640233714334193771540534237742867951810912711814483892302328298031104900117941598786238150453771364321771581633841782182103324249607602874323184771379275982671507347878448186928178884721495829994588382997347949874632742354028624163003244218393480394798317617878653764590877248665521882286437654755273113396804690360804590808713226779251136195758164745775895865490389457196584484240153043587462249518175213203954139665142320780920118765602756300201076073706001398468450178137072392817239102666532424382158057244271562700413944514334084149733686064943836942625991531964139373205543699771193907811898037005546126420095336632320572513378275504021698985815720002059485874764613328289393416029418661953135518901700347043517313550804081619434894029184706111014140689140865501225489393133205738680529925271370745633893120851416914566068527673267909985343659812008994824588578027869910030890761195577448923707871262223241730389170492703134047747288128658807908146060926969958778339795793033529985960511577633437964310006467207083581632778017754332441073018917337922937807244958899335110164720558347883717874598259571987550437580469807433066443007647098422460410436630361744955307805027698105263318768317634311678723461667754619893423193709520888904336743473801724799272266575746042089552574282285041646409806046762304487712428415973603132533307322376205904997471539800788650388637161200809414537987161386775236521840813119320056121019424616096412816892564571092421884750754131158073590905227314601379381253319147352945658637865316923846072310723157466914826453935057988777463706651440324386481867723753638295897713262105656266980222161345991959418458714189900507789407082426776291046161919848555200888079167358566589424178069413617695940277731842250796893920049440132137322740752338902773159039206391011159263913818068324429981977659261988901709263303268499966240273791360954353118485748102476312612798435271249842535511436148857672165743227206281071087264328717156495192371459350179918023341030614852097182231037880365974930789253402464317268053851432972229335009619336288920017959107795429930349473680780498160807054289830304785181619327603950412590707401252174953944943388925788521500678214028771696383034510605348726500110301103452303028138313419052553709282503012100250340250666099948305821036176633352353331942318266220853754273681837336276325784852331683332894211867624390155068962989973206026438148161260450473516660143054865604831771575603346858181679816373581224628628473705972397355343303736823144535610710507955421058897100742080542292270325472713158924591396213129304594895983416830736138251111498441528801372322391402569859300199401977362492260854316516131413249964651679550431703680580828491648247354891513998654792335464149386906944632560417298612234144007442570107442059692623786889587832713493932842777766516997558968922671739474594382959062540839629376580589174753704844171530500297722680680454625099851092374039810036968802036568825193699188140133270596148348148524646472034045271833069777458868207374613979701207170539327264055845340027044779217559145897114661540946345942303796191670441230336058508010883109231925842684355423313041947151580165398839043725067290079841464651522009229359278778131752863540181477807341823777387839902905002546653600310000431292470394005858330136441607888051571719920250166517632368374948591587068470446788983312812661481711643892210384280315096978139427670598788391125037047981971936618985882208849547397244529577225258642361525676313895520961434079595116024635041098505583067505804480724668720481018281890451682928713121865947843058370177325351392912520202964615876137968180486102150373317458856747013063944675525694854267521185247967283608792053568338787022175637200036100010066023806462295468241744724447163835389964218643340732594499231878318344186120376011835188342443319475353698036271902431701271996994400974072295386113522087659246444371074381890410563514743706892763055043568737440146768175359912836214412015494785729625167383765722365938317400078980229172727163320396154502128527161897089497776787314492634493562580369303116084200783904748418697902377939002712682505240759488538395817472155317967831636297361910503667845262796021283511367566419154508451705877641778046894554533964672895700661519648236138183192134688337659887373433696172638007301536471792986703660112848901222933188147043394092268544974441687684766388142708203163091578097394849749536700683656169311540003346970973501868798830449524395106549038819284435247840573223425456916892283869256936776578498952815574973853431640805405123500350310249615831635699802691168048640538322937956234935314192627821603623768069115883410737190191359352385275862273442049052941354408741504294842356273509953812169198276623134926540346670073705110091663419672711308752623541976858880732091791847039105954552189532590492848746783111532066801479118714702360260989100745910535717303209426949244175507043203729204824525216921495950206230618028218100006643209313661333468820858233922573648761454221922351834899275315119623946681734110446123881645844943165127266410962736736189623245496249138457445584058120105539334152576839199450893312194168747365410601386350873995081185063030128605716835716940341929080446017688896246249197713110509144860075878004762806366451575409012072642690365053254851184971159414471989194248547314726124694170812569202709486522358158407839407294589968077062665743459564565498855346157820408377070910361739727784774212324676892385686633243131861855678211517977130121263318423063028262255350133470288779560903106121668283207411241992555283130161880289888424229166521487193061143237656396155508680415990986939985517559385791166033445628089416798687456510353159682192935889940492203189588408570964866708731125673239198429221474571779470418682702498317054693433372611331050944915198974950161121455163727588543325900179754602771521549957659455108473827133066703894146356020586914508685886273105199905629061274908310124840641062581376433043295429897249741915947339369014823424346823281727567213687360251247587421745667728554062534283254906776004504576577223322564882181769465551230597829957459545895333359505974052784901257457285987643891159918820134058886116754573672084050996893002329302889370180023381645542554062646877802661200154944975735705947895041170637020847334884255227537956578156936002822482779220862913501965277989935823282030476425518687329630028831904051413771844289914549980356441149105482807855717755276006501690418503183740599057952379169918712392403045686956226154946300957721135423787149501085816197552270971683044703681213548899219303336090000462784386203071405566390371078610105191399485039521458639756573003298255422406569150157466347772105586016604430586910273332546895757761197801017295796728122701491460028341983286884406992591757330150243700474061832602539078824937734896427889858480894363336741228834589389648107645965275019163884255461222229322548363876702855920585133349270287719567172275477702083835754958149256507267028773022718152370844850627190911543700169545416661251167885217618053761676425907172006147210089130286400606108033933379148855840996151992628187852175895564416802824637562349777356438324586294352327265594008745960626836522615804663662796080274180249697517820129600130284892694189268980329332788829888905214130261208710914009706588879507092794944753367990857421343454373103930984997930315026404617544581779998957386139342635368999508525744392928520159416018576102637619154689442100434595183299492648058009451299633937616421919807189142577187309032520859164144086736792318048756533999244506143499037192390525587641109706870272322639901397538742113738809312113530773934116392080711303026563511998152976411878656986848959181914597589003042412593089926393224580757980254921295357367883532742256858139246587590553682603131873346066701092309479797584965413501663587567667919076185363434185997726903936592874568918348716084846809699588098049908079683296719832514624291874981741316127670127160728749734282429451407257791486009051451810884988639282250017926728415519945503007820691714916717831552804985650133297255776150190781270155307913475781937986016836523099128526374272837228385943706021784583297772560156566929339811354684587695521873832862595989786119949579013967483252078771683536613661940881680613789426120410943468693408908214496737247340715433950982871994399316492176658372280849461383083138506380821956617974700307661674283029650277970885614535953563529703831938668283938663467447187106722175242324720657205819336928123641444059187927031631036946785104319119940675380373886428165001278025913410025103237795546376961989419391987013852433048140030141204740267678102215681444649366487158580412869346064096966166449028457288386320858982203347603202256469958626573644676106203315211805290253842465511328545394079429870221820547877474321761784822797552686878723235828295387010873689697067283582719847726502491170287503447799688011617008553329687988005140747945475793638105444643742041795133393913503368027982965465539431247163387447751522734388364584433366323147138085951336173467564762091458364235924741411000797350325152528854280445441546777890872619379754553979076147673860113560680270167846765895622487810902665200124029447826188617285459561324158455822230641540585932457151305578609419293362225580650335214496096246921043507487497364026709270295658786048021027269172773830315771012152333936961870847785149646099893708944067455498074904315807103618743316515268271548957372375345731993848836855356334408541346715869780340268360608711451609242826308528911932261278768990419857000413129634089398010824545958503570072440338599600750126932004256817601237182495137797780963454412867184892491802464822923730314186864078607058252149751645284525648737913742219475927804901024825542245398648020119388874768220976754067254965444689301101865757508287341685609543516077773535385449184363043106592230517066140933991084059218376522738239579757203686096155170794323348619547453877841436013611914150720517889458463330379511592888621982350526487687934485307905807378261249820365127004863356230604977206084949083050682679554256990547539264002282512563129855509464689822266264366043609800551937940588837735996398682749739205801718009594349759640149254348149610211400095814105449635044484435126055156307053880826248474450887655664828808785139745151023169880847454635979991330205155907850734033637577782890650440813573531415205951294085944517061470546121663989016665591051690760476313252304053427708784176721948865666555990320660097064640895515590676304069245787914219261675202263082788696632868506788021913839066383138947588602985598006944595272097280958899987354082565776780428846667531855519146652818181741908692969479390598865827876225903194029153935489177331760832415533413361686283319859740158692669236954749545579960289863633951000372313864382322212757977103459854153325347782860021649051856698183476151826857639706799317326688424744087290815055146722291012148519709227089727682033597422222036258594217844087281699582174264825013057658719704101070024200021174794033943923148899207190279746538683908108611005259855886116363042829869164246066841294370928519767807284171780573688390375115848084718337363663746030344426110818542615594559777534480863488989045169164345782457986931688881695116251369720744212679589277308359913721755581343036391938975901755703637509171305733702090214132816880909891960427777826161781258346638549040064800525959364212048040062968352153260010747932102726359810301320873218071085012335079705099368663900034113083708667791734857867913363275259176872137489664423173377466683291851584693433807251118764245869082695325182398783909849983051279615293517223848247489602443266979718048693789824585290771496321050717686475987386123017102141089930348058961842734037977620071782649479090453417909947414608329024281014337499707181272317467953747805276655565201904010016272720751840900700546981341922994102954836059261813102074643226917719376998321580426997192356908254687540146404548759232908370199541542111131689487923398951880021489978719544383255920501382359581682866018618469772816540250813917216262943043337049210314939755801208577029561174332447151172396380026102217986230385994557305910690179522594671163920513796283105834227745073265581946099419540638717824481772997656232860011511150632140222011676784828317600359791428433901286886316162323627406819454858493895344230449358294978212459924389510004052070044599554716085277864086600472506676546569604903123338713393663660266733195068256810835593924158801215593013845408144901609746732428375913236370001824334237264403262671595953860590189423811421286448341438903955405658792587940477487954300572268574959243528150277731680230083639964112234609024187309243977842662408319149036316283539291903849091319300395046652654621664743750733618979265792978304829567858349261949354527053116667488888491891753379584465868735547879828103571170521470337112516938300968604055023110718554456018010570217633030404440571363840349999630988792178339930954896645077887507574463424830166216445991822526740061289467197545319555786736109704770129377871481002628124697129966198802337425047670985813650532422806618523386418055826111116016191855193137569266962123191048982791384147573882598514902920306822498961867267422209128961687518912010704720208427804985810538900597508477514062988843228993392781756143727215567150632908285483564120019035479534373927938729900344163158425020069209914475644190628667690309498850644818592433677387779792652208986402502462051866792471419783447073948527694036305445772001593445230848897081363946399400558414344637684114918683248224620886518744559211071211607223692785316186812481759615328994270367611704788720338328189475504117004797376725406021842187397809280821313446553258693929343134296035966783577540202834679139590248074167278032022204004714632544781646234727665254992536234259914240749498785917628699124669835697175775472827332010353674146030052949141272128172044152048096749049951388249487796494461894845056790861056676727263666869703003423932302002713030379774655767742567001470437967495035985599880198295363647094244363495612726082683954792488439174038685399906035826141364264193670942477394437840156379228594128135593878962721346066492108424324804745082177301623790514287550840413834140861468349408224828228905581568485478139014244682512399846913427222402810849877059269017907343910288248423573584429414651304686639720101910510140899009430353541455881240292036827417604111165841726256635667451932824515429271791401651833956700326787899020110661041576969943215951625770331675194766604619225533308859364533837540380558832552669320954874767929746780133281763848173055867802121490903997648329975241295541502909316868990605748638556391495824457497436641099969151550276087866347324743867948912760404843844027240412970353902407306285817465262692090209916369986581504693913364283803730481441366105352777626784762125764310819258985942688935353132234807859286262989852330118656735282471406312119627174703597808960351033645521479772939037686840661407358637508339765286136204808343632929433803487879853127810035414767303918624592535588720786119624863423143882472111123971659369781995002170430179433126312904787272990155377680012705044683869520995213814044256223488862243304842158174620965009222589222012896401287451058599801129228263987697410252068512032712743059490450929300364759368095918268470530171662032930096562802465203904638840122685486516947318334270957860990613496733835565959343832138008431269265159263982078258492236573166416803415968920133834664389770400422012744362061257359309308380758518144259125164095864983943247567605602801856891457149413125315369278971058437725074903207035793944596857180165016499847935706394026900969819968700328665001783488472289761939999720272652786583077278928215203586975923397273195250389573743178962960733571046028751845926697777172464568689051433676267563552650822603408371340389178799864827843637665425057763768056632915638289462030004488324167661568754481813804880381455532990250133611602704921610680234669806880727099111532126758265415409138950427409302133547225143561244386362539548539058561852333091661871528793593083674786793616962620781307337238116176901872290127974663591007289229158826062087228756266841123134324961816933152567336686847561564417106348933980592334295752587254164226307728758091016042636567442395530885122575470558396134306394369719702590096522735133932101855661798108045262530204850401455244654397912511458871111523312704880155336279737370832137839673414796006385920120481196197122251883452961569144297937788871599297845032609310149895215790352858597230330485153503991547717177036703632717821175938234158151881878623241184828976786388137349289774604813551187728042639492442295633516964490636024477168069150694124169950523923380762253700192264668376624567445957404091408811893884308506291245626524671467244987812667172720855767707019540293310883381711369003456378630242861664465889363003072887079751804793127821740269181799266541067704691417107612855907759290471007127002768476555794758189257321359595911807803429225374593127399297327337984985715701354725841646447650281317898553153305985444519368808257877433330649951231006494754325788936479264081526770881544153667475652786503239222261827036270642904030350689160547935000197363296630908268386423691847741096838389000808066552503286091920744749141216119611929311894550442100314585446476984411739985873105060946186994417054674895149005784262597086211888148522159442650347899546382109240797724609138308818084828791526280642996618558249160243832899352200456057772004533744233665552282349227453128347413670921046085899908775043450851509648830207805490910677249331686238067753677987447985047368288836214131578954945155417473787143322150434172455750566715755320568116474040677707463524960193246654434223744160923285352150474384500403797999220382061091368035538135065192103425380181457267802412584194549187843894426565578340559394150451330204147885705334167099349966793374786348629011571556670687315380302006802986173541874900113913777705802868214543921459726669957553292274952491022466870804026836817133856303584122722012355404898124599793736308541158149720934956089653315741478090362082023905050254907141280185230907578699760775748757497621540616454735599975088880476859590914872743456669143527903576966975711061746814263819837728858805273533918076425143322176654175566142029570992060006969528141846001483172031386109341831538971211615608675596712051872905581396878820296615674313720365086312990719885351552471244620883151138699645524388126276895646278357230509851661650036890053762451631298575146709946854195085030086111385732664226513307951227628771361305795771792754615960982673570434481740283774918843852600047258275578072343007201003922430710658933476798894348100068007990636868160166007406805293351608962307214726860506469313724651368614066504869156585852141740882460108079499752489648392086924027606136219804099813380546005182587068365091720285613118010974366035246371329402207802433820136286834683682274759137633691781865649849765219797441584373230603192850035308380280075437000864105056641351864323876699305634239228806137852171764122818806350132015306828539727377814672242249693576321071789114246066970385647257840806229680185307638405875671175430595835212892779124145671026366295499313590072082866422353104979262610397288545469008862012996974633149639020035879878742345892074792493835622719854804998826198353951473689310635286472137558741704238269694271216329619804499247773439625442786994019323955870365644353583692365327858295234072529223298967319074839073790335548683604782239420900675371479953769448553069476721938916311802351470706361876571458781803602284164067044893315893319540548586255624128740831676271645065095766996415484545315732554381604491482662420382035798426215603825548690553638825777847375142198700967452707077787038694436928866045764570758196215243488306986139571170095611950132944377886655693056912377546761773108824600895532778371494547924028080178702175529736238643856932720094896200162180368348081961180142980470492022715434423259126599860495666855175537355852438932213124316953330499575733611211953270836957966511550710352425642840223767009844648294266568283736197247036544826721869373558565392632468563766278177928479085040748432340839768417320408995412191039785325680023426807819494387684482368354527301703359924229658681917040873916004098348332470340803627816538579128411018250978776985020689926788859354475233112970095307828489365557110154210336294231901133859315238006376693153784123193531452028654743030461769777666169739199772969247461576439215962007390547599476241702550400672883329456715224182015476356559552895828877639132816184352280888114508652382039831948232181887394160113445654064968031780393233198049208978260970176666795521522401784372202666381191030806880736647111726573741493939165040598802803545071281773866243293251787147013583607998902047958235168668306381952803263303236997975147622040202181828568309042204512296898683925920240914536210092336242607406048850241697740869152442233428841729186063384259864469145778590576820921852234755304855231952959082782106844328401902500043508566856134969040809622427867542843211093125194398884620775009306189560694566090617308511985481902713731583137396322743121482029189042752438744373799124217854890365663371842792867122261491043723993138900010016335113565016800730274387335556360702455380399847764853440176077559183137461030188508666181963695801481310760975467340517750241833693716782032379014868434911587588659615870972200815379166529798377085972253215316075166574570080042554231317447221522360888678967725613987539913868269244646543734408801348475487960580612313095341855294329818664285484267631077754223429958620758291624646796882030971994002101571853933296694164168063359851015547299719947568291808748316654869702838644573119160655916908117026387320709982533982025400495413452916749167533809623595542283574731660889522966269394994315858233822339943938007424568696952026957362054439219936476136310672094440369124103073868889607793205287421074146587443625024575682583232956914350173418964543097322051125510831867310017990884233474779964106803917067742384872560515609593916947695199266946215820282950090237397687902402435410126830558729082285656981020631978278133752688156584219964957572801754022421997736995484624843017189460993266410814976313593927726069744644796447741739626124486669768300022763245612388475558695753684394707884782978628469001787120474820292128011453183426466914575205690672668613122976698169614910587658604819937797891166480507622932648751084888854578079684162363850276217063447714499072276510269503428330739360264697035611328112330591774857829994306890851037281773100197585923681755675375779485355508439852839192034940561931540550395649471246962053109382860756555670795064534641656727912678496643868333773233759310064590958970144338918893605901244831845141086066030879532515098573447441772650676257119041754912124074962542605215728270689608790014856087194653137313159199080740860783268224138157346736467532997399341266343465082911828628568095048367184148856558349143932848239712535364673968659451752660013079422852379512030778368379700064211184792334940307219615903804296951290231730455009749860247339961828776642048508727633683454429935967643656613075951597949739675405195610165530294749842488532641518933645420085346836997834346006010755460909428049225913908961302729542982178748931517507337116670910109157020109317411825199340118806767315055043352931012913574071175321924071878538948398718200194963896202794448061562972165872687525662560851112233143744408596817913710174218686162362936354135022663091287375744072501562225934943106337076209514073671354295233322085611119151393464475772354071501880553999578590266706724157404953117362994116974968627206048519916024793259765670976763868229407365056224327942918291346462776995924452056620598620698140416536471996174983074319145054120753951159849182484110810466511291726117224925241741759602079994484185619503795962184817832013939651182168118081520621781314247477032083592779223380378636849302015289796263039157274779485458529669276466991315692384971845632077541141515520047694705092694975269481027205871215538016857762140880450581421831271503291960078820681104238218723837159967645691148308602108297123214232029846974185632564358474227563093658643806368809241345629970482171563847785440711734229912296134173695674445185558053856181984623348696540131300497896406066656851558352909279527326455189125851220868409607644275799103400824471280687685163048589126350310290864507689439685581264923512893637160871917708688061171918068086623622601382216236631294915776772979510666209473921056631464709033810463908660414088263915692057688928008283197646220090699597887484286968178210042423605406769696077223989900386730649688331247862847625137732624215219930005977535263479911249203560350662602580413321892380935386070198341553165212690519071437447578442224676600963542820617802626651934648609271099051685294998632988145914084659737748857343540156536405219459928861304907862909371336202325996361350059910414725879383608923213527806845793380167473061866187516500332657452966055155120680800411191936718922984774378971193393467281734552020397980937268556025837306324471544641620303072364742665087492275797894441409294436248326341302189666667170729776294606447498032910971113916981049593765973602885560633670958811704114263532196275508660044236096617478569936482656651940404036762313974709773332738482378393440098956536444642327095351185023326690524026666635527227775929102751616838513489362697278106682311677406663647031714181153835995875550784689346553989920948416252690589127391876600924215478821865785640808493001864425768990852880272948436547988876631760045794954142493820141573628109894676850000464980846733194766213676330118628861269097146526719666050951821895082225884817399359548736072293510759564180105754931108183800667618254045974883982856626638446503848687435761711431318420238773600634463670558399087677216625443944196733441076824409920289212028340107630624670846688218772969921935553068867598592309681182862896203736466451805715935950540054835558347657715399435795109907483001332981792510782026436870273970805031865993129460821569241446160072873369162486280600046377024543349459228488521677256692844909924554970218896670652129238149051339040779878385592614098818398183353858112584968920095635794946930616806720954692969364746508814872442455698895284413372045295216539325106338060000362113728376085980322447475435148642454804435744366598428768829541595330527914667641922855939700925612053429838724566818352001141336722550111891906754440051915966067448159761946223854932446990017063686054671584800768260897453174231761704254375080242741222361183281980338273131617667161179734088922128797531900440477374624487241815353541177795052723298037999235343479413972113130107964846556440416021976415500194795141508238495816278848256375246248210349590124943943051593541210182935814572458471847976540928519295544250783217821993921200863618537552503036305258748285532953000888007019270109553772421564889178291205037859393613745123713762611760896915212133369601063630668183099254034233112419675764097476734909789448148984772467843509427398806620801291450496333929344598686012506137031721551061323160438672174823128582271284386307478099966771676412621524646082925453424651217828953971933308750773319519420329196170310423333979803906600495268651403765137464875630772168552281701837956372454703087410879309383883831056682054502280418116077100522631169751576883370876732728550250784879268989562226418978072277322895298555241455079757592960824048972903824187850577284654837617885608202548133744069700387706558122592220154576437344814971438376741000173243458459694941003646151240723579419335340567388350395385624288596458157490868127384117222601518939171502702018206074559718939808525792595962349597681825985310505828961444175798147516886165046033573558454944568300656758599542858438972974967186318125549217423024021303374586536486379645230543513396616533702867703613557616164403708098729828000964484727980787520998900825709323960892075569349604100611547067754868995723762355908383275548791041572440897776414803489778117217274967348072783832960300631248485296283772356414788521952238580824682565056949934568816304113568304872876432745409950109240830383230551006555115970457492782893054551166459693314665250990564647654173800493437239786269085778484261458553522659024141588560338524405471325782079005686261617595542903533517055083466422734482726700405424074927484212575891468708754779997731131804262092310088980549174712375763126421071288426211036720791315667724144288578969102737754959500203906823169838380226555245562727509738058193301102415484065529918743929861687064798957066751862496535414341681706947911240134388236063254288679489315129675430619957156120495579092593611456070004621547004714269581264655229837486354962445417995396664350976898103864407687035459690992777965660821500417043091112146385190542365952745813107770949180551963913842321074981971754986143430975450441253364434413322178466619023449120519865654437952594443629843808943121884240159464833602038050189203695175585085267621454787364953195764481794313741750088408464530811027840744239649287516756046003702856751872296192645656819086763226742910748817368824105010475240833678355140999677785749915248293726670519627754554148704675959477189178356389232247661616541008882469654236147646186281455671724092965593791447191830490608666878243545355096934391973713320042916592612850111873246270867616942786780452011108020332993980022409646003975738355922901447884022972917451908813758965701067867298888681332908884736873892864632340330637350271286478145878834268243841342698171536973091135457596761709282224766711368457384816172229540510177768341773991052014316954035211766158630334757162766368204105101280754423953388373611011886394411065618335730894761731107641444159703760937394137339367178350926655712586530808964952431419749098411296867166765438689160496286573383931778770493740505643961293432553189195928946180625535407458568882007039696601899715972263969294514134000059011147849596803240931885395325144812133817107302122534557269624959692703966806685181555753255672016580574151131683318031890571870523606544466590860750716360228882738051633374872495105283300069396154202134440663778601786058604239080167989620556857235160807394026188689018335052887519875638214218293397177896605119554977890031790669796664178398298068415333657313290928799944762604020742728420151349852277130365918913907829291375676079619555717143263384801648713025227289743120310967981256594402360406095340019505352452912822237170588185583677148671240344460831423108596320673084898214011177602554287585137532164199636069213892242535933144162552644701610324748649204399545013941038930058554008844119124011206579938573066346441173122670624885818748835076519299663587044057758523265079189678621979529019211658469350503037588331627898872682458472390866349921689380742012947769417038782141341971637418824379768266640008258817565105970953644401735411165462105849454369224741796655571660534946717973592133436404716263690199640377587760646743552586372648231359543376493946491220406133192674245272811445297581609412053082114302870481054894261971967552408160391560071031758708233400181681009199523865542552523502789573011788902196319198869379944938608219496230374430605043422169730984234831610939702424233170623731442242543199654490051080596520660005860668820828845622417119239818866713894675699409263680789600129225070394627397750121561150181807960947651163940624232134360025723698855007867994846214465195796264412333945721185555561866478207470377425318924968703531746828736873587602131045567368887129675401029167059210491363214825938913574612467722070463722688975646157296228939100954143867982726867903407582599743182634205619773973260487937376928070492768521941184745795112036942128728929841006847266514841528197691275270732297256269912528954240134058520831447365363682289180391253715075026551314404693583830619624111914770310557907349440047505562983329107664111579708306196058242019158058243673105987379580445627957874583365193728048653771917435462720060431800931016952711417606847270109903521308857212027361279888711727264214226155106499302554637391058950188409493901272939636195072486070468644497230204932632097735772270002093710190193285293940100098031010214332148960375014476064967142790651915436188149126564350124563306484905917804705143595633920114238071544188914326401446943104264234881216048424282038102308209933407830329959667602927833756772296932959999279888576845383273953362753859790407690334119949545657885726480126199921651060661707778660896210031496809596625084539885195660394469658602858640500689177576266358537284881324472157328285865808194286338920856738062063021524780645754622662415133818221385119652861788283889183405231032891456748451213102093418521757786380469347818092214554968443934486804352507139696536135878700946210756231949382353845751600557251937979143474499509248606474112268083114472545065950374103484332590043048030407640344680715984766307030637536580997205915546470072460144893176611494875325940231681004803276103433326711839603205243624417132024594893744331311937699754849345212326725334266152165616498788179431964498374260388827658304424510209064400798644017699134119531580645169092311522835350805156168309732044363907777728407868737913330182189289889855563203934070823195115770611641311985277016707781152407124806604579881134450740388316198976412863708775585735314647098253139838815582439694753939967281217076163283347479430723825870786370998571966700477622383727889141319520524100586521661962324030562666192772068682793898335196078300540046715225801236608870433614154447446039513272895429226058104748245081044105329750049431147279906692223892791765619694667532044980538522353998437037634151366613900537566898523110595784116326971862900488391884502172410401243436991312250167713292074567163655478784402412071249913603063846337513830777694673242606346452679857020776345980622238163113289330870649693848712056823964656915035813904928006296979107278367271267758082261319937327915003042496969554059797108915993889156053934816378547362357335519118261364181091986398150641222344989674655095957114196950429873789424964417270514574963808258646128357585714126571735383964989541495473779114147422647114002037375790714635791828748848011470240614633893452750680817840404760382041882367309355774998953663828715984297716499746161654619004432010768819692221031151309921650255436011000998394187583254005753368257548351803110530191006562797566349122389941136395305406990876343393683414212921437902882560933201185106730632019034032464294255778591392678571680503697907356374712925154563066674162935092160276580808661982558665391502779811313414583973965681734793042079113648828440026350286067628079679483673487410331410560695838231136773365274060242408015871257231668889729593878951503803711470044814832883534390675182431513055889795587008897500332211145517085909724685321916803521276728129470657121498353277986553984081126667211246622639581903185458201123298406125365194453966661928519427208625560217300038182695083211775337278752321232162074140505647097583294139420632316664717828618734455488821550089172284894380377317545711110691667417732102926646544771668394069148864553191795163697373438224679681342946433845812699484711748273062254469737659539404037781354832616783892794269335974876759355936964886923722905516310237091524216599120755938307645105741601731462107103679194078993426286851607062489181039629540399746853733803473010255327292205520397715561467134264631674770447036562836130066866351377481101368251753807693797187498553433238401640205810601515071517987825182935518260590987387986493436104583652921472033803895395854215375650648803388994562176946047921808695203684994976183664336397919010567601389780309149917291761490128162755995426928889140019559777113959224687001384506063420455382364620550075266661606888560490934100121234679509905897350135882696143107137661934319013909004719250982144366006951529394265895584494441335435790760645878074810939747544001842523658943495099071739154320449672273295679450262652595169566245945000772890616350994541360773445972960647449283341461385873618471673392233571426955884675174713134396715272065751715596632305512881479905802228945836258432950873633167390702492744338804695074163819298800671916224843042307060799214777745010098349987845108606382217263580814055060920869343462043552700030318467236222433355688700186503668600353327637475373051352173158181095677405841956893434089227248437596153518928066248728968750120423332337596463028376677406145727396060645219634155856540539847143554069363134519653728532711602375259491690976301598158317492427007134385747782140598777726727604062879166624357788175850509697324774843901289761189199983587112543897235257913068273011020022489373343823570563064767306922231948426206465529281079643998748776329159193103844971217278581355181342003012729874407107059433258270569274453785326456293895969138033951450286947589379242923729749613286036946681626510477656798244896785962297716261125692210677019788054358193882495372073508194581647363610592527000539669927746983754002378460289491921577099877951913164269735931563233232257937707736978219631709766112252403920089464130355496780496507351245883630445150607246547488582094529109878510670904874110360373402477147170922406602825369144887676283144760799133953891331877037829966010458554486206619057379035038592304747836258335622115533262692450507841317364451674397030288619252942852483396807876189939456505617462904670632333699043129369506749870887362817081376910386617266769757319777782890977592137992209320515061193666523077866419044965185204548906646311763569859135028694738601713310624777077952335294964714786137566497268849300408554103094451604187803874981507432282706074730326930722519461417493220819669008338949891534730802870647481535074918154745998635314086975161126529898460346137676246921365351593709476664292101505400888948792385922552231052486376349804273799664839861848607188047643070988633906565485038136441512203205395835239200315184501304849019807697399632898498460016658792461127371678417851194773442869016395009745159906420494962025706382110732515824568912523659913717625837651716600800465304827201466663374596651395562194217621041271856352210528795355761534843681757692460000295169264157982507561754538632439772405851169774347252782245357569170280550614114255627349999537389569911548412054236797189973252062015300118835621377780145781306271031356875876414628071604730126952702020644820109519620807301662228573675407890551203171970641277910669341283328400150071885078396413655351726017386854880678381482693122949539343064910845516872872534303340444066901111824706282060321546207421480521584783452878888527772137633309742843927144144505300776523651788255803537496736278010646067341550092548220325962834978240154353787540091656485669853551621191182903364167121987293360513214699201786335261907878885758160495243669886452235899072530192931751597539282391216671286486047579179377666107849338906962849394920047706938273642789580375450421990496246606122298617626622562707696779526470006649969462278268682907966068741882983691574707845492179422537093052301709501699343024565683306615157808731494182946649963571513520533969383702752568287679849354782870613876762974626963796626333783899019917719041717331352821402531496569990849626061843569276770778654921193822722530473462444006946476153895429980016511086689009139756250923189225282174343069976769357721203326199855371030733698078229103656775965010002054668577352423151593202283926637236222004560943326017307976376871611982646828329004784037855356080902179085999278617633093686498985057114087423889662898990082067328537419871296579495852044688678503639026109362062764248068109968489696303294311304549342823195955254418368238145186662471453130797257847748584883143366347332430743230358222324643852246587085577206695350451841160769885196084301982815319598719105914120349170956546180731562332137132252947926325153025216734500411529638151227185732144123505697897017872843396279199527058238623517781416161633618738652751503986246321526668414013014708105643955691736233337579867359482185068880840290221958182623280623619931962605848359357913441184054338559414516447513049763234682042933640201897887966103289413104053914189462103938064085382893195630263133581418176497000491619751431183216229690917955652526389469787561232796678015213493293903877762535053338291914175640691791415214992812846542707104330002879300116368897552938040230760514817384908587230022316419981703184732898768393091036793151376069917093379855069794146071314690543811621655666708234067186024485577357118520576968694081664804356624409345902161582421287640978590349696942581532072641102328143715385873171438711536958589088473368439880738727065564029266362143824254033903135542823645810098680107315105429961005882826750741130458019809124212580979921900198797922067421404476846259650056032650684070648190666897526658229917303274652681147664736539295910637656898621413994438449027731160405575067288126991621195184289195954625992493072789122192724825764636241259721865851971548234033024591144195337812230814613925871751138934032843347496242616653977067651407674604608765354353860221541577358908088634635588704776416985229780453802050047410102771023430124684200645748373815927260038940263013811009367252529902572128314946482999387098800077616528310461037175257610653161766884535491006500751278616858014708829821410503847260505709247683871740817261656762416095096615199877880590868278438238562570066388902722561461546380525981701100069643255743400746982195389947451840199906384154584312747008353158644295441853720908369563166057744994219538828877038526130078721677347666264223999695106305357572548806717652844694259193333725925597252129696909373761827858200109603266708270878104739374215647249608049104498829022758220644970956497644771893097676329235478969809203762333082726164709944406327083491035613122556969856807947469925046739255760304781184465384875864025199896016946839539067410072754044507775843425551550716667389231456679625076204323669495812057354892961922168302930525469328407842470351656248978706661163991081313228197614752018613306002827781357705018992056101109579083399440722441646972840032852919710927668171094741607189345275255076288889205347363402791760607891311916868998637656772764759569337040677846284090524129306132650688648964549608700866775658021661216123702885257821129894732015603257861298696706438510605755242824704004672446185786963715042517846801847875693395969304231010360964632155086698456252045639965421535649651321276592656274093805826659889953329988154259820943214972695579151570382780545349776586617072528342831441522484915367710992529245677577803992811659127932379460952543979746840452551670472653652120381132172075631593599736954448388730611627112623617211378077775778360657396221076247957884512805940743416695344128169142427213463179610917652761756612246319214741327730936853982989600091410574452587809721416919764421636246080705022585653655788312367483310283851492883012910270886493870159674512491334034130546400022331011650486344887065080710691661759261386589846237271818571688254164165156341114477148954605447365826422807992593596487911040313425816688754760239097807462252260981330086759044982255733138006538799198996373552625841953202586971714807653302079313012502988326092089275880307525412526506460262788693977619160187533158943534706629619707827776974584208992940240711943477547063535702464448809328105188267712892533660781766879356207708652299388167922303167449316408116490187025954198894795304078624311877468796554179498950278669615552842192659960251317390465550729489986309614081548833577857989666449100863547940905584703919873416851295947539827012173943424270008247514046799267518219768557777492231297841192678918394931870659428971893723528239532444998547486793670772592833463154251795358929241363441500588009942371678028675399986831713203927121261945510290994273408970943886328666614845936966835782823032056247852550168168195252631655760657047594012233558967885926415297307250370859578748442171642974448297377213166886112747740245302120624635456753967005941483614574674236942255975599922114404232354209582141186021733378333755714070367658871692106495314561815567539821903462232877355308703429850076210807810379475735942560193417671699846034255774438954846853166995803119858506279857738565051161914577008921787815433665952225768186175181559423443701112937703169411265841408447758912957644151926753292672893705003190120582112978622158802448015020021820984120194440981561408727690501972817417380297405392561152049989534857416949183801513935154999238263000160640681766780500789003233807883658676185366490579373858568888524912130003826769957576065266866281072535335691505867015799955205263894927132190528587571304430294351988720862077228201266235403992249220042342651495918162366876086557356921790678145137124922647233594232066677092101094109746827155486723177627361274826731090951250407793445834459040416208834568587219998674927798150273805777086715146035491438668393626905260739218402749647265228798085168919756978802145514568639798295675197660966393759947955127990909008899621290225019960971536889262257322274630464513097103568371346841202184388026495174477541681676444720506879255795989580563979641718281642260690191786941736528444644406139237044482169898427028524190368025739481906708345309887310510042012216424927181095850928605402727442533627185364718974576622992254713085471243168582537954017064219074930382985203940856093060647038251561968623951393208802541734293604581195885032248717363994769792666900340630663917330595299770987014289631217259897831877986403868948208716459348370486416403026551160024447297238336409999899041190671207184149901962234889784433358538968175455153042738280368483682541190525986816778252237876529910366692088460595067957198495101558463358448800853277574550983317531444361814670814263865688187570556901254762186471383556327988817269672391103233189759952967067213551309724945888236190803031477355803871034793213955717122504730543794236428366267054482456451931365679159840738045538712283846108619643115740262238920151181674676900385452537707813980995971410073943682594463975211006291257432947986433602203819104813477008187493901428484203721691574897515039497617998669545459707209706543326511426788180249411500255901142558035124637627096965494840992080183151135108596487566498865769586182257359989935806699690335170532946523868407471380637619765536971198511345284993662165362501988224719157099433053212456306226231672987943593422312280355912901140729818044633333507115079988281495479307363417310132777862906042662393765173448531711447398421567567640093680405205711025570712535611763385522743916454534414189669351689628303698198659617224862494952441780223076332895403478351020030183403177906292459436352187830220793437620512420061086659454817316592296387775754947134624995047715216504239843856899199947117998161575970729120006139888053893409759581589721791802095984123166102961309596991998390493655490643362156719206573325658380735990810751517945879047079532368167168928037289154656957635846467231997029892115433053924888590355676772894264014287335661598158935478585564820055055923233519485122802286195099910673038552498605533553219524246708880343619347083742384027991842737382007080286744244467514782547956086368371892176992761587494058011187175692424609674635849247956889724549744636170624500000688969964582506474976171151607694969310140719015598320036171567282333281972108383297131306610963262734899821722333172422781245463735152856256956808484718058943398623324513651675605312742180604107747024635132503771952197344563478461535593523640044868381871789874423384629075646196413993728166556674742723457249641078504764546545099913313203402042581067574141383039956512523560909796980074312050790098455254041687234947049727198243707175000871232290663542409619480049237941666409094577794468102354751135318787217814981672309356543130125368004542284399257810549523072136064391878110583673789058266352334507296935696400223815929466224476000656637630033650850730041763830163706115444384789730676695312166460534062319238628819431402722809895295542438935557083933073938954229602200526215654457689567315923095793089062836177612381512477602206458629505367919547181083371481043157383525394087661251471449297579889606991154960574266831954153350617949185695171794564701444721967333752833344781243237502693456797172063628376745295859124591968439431565119653699970419841849242685927536620860266432419111914439596949170072644124809038359159530192485955402227510163869761238397064123630069613387864270610204871065980665994875142450439296795717736822934701042650879686614506449606545709606060394679424971696196912544400735657258826350765527725481809530218865670198975083144009083597977566255121820286390777909109013941406032918011645735642178392510726343087696918383556621281451904888520865135142758632436636743474787105410558845573434973614202151283815726766134287744604067728865846315555700011348401188878959465260620706530024823773840121911941912333445928838895446801147754895714991896151984784347725741102665563524392323340977976426733116908820105478582923888882146539294633982647945720174431087125788168749161982504492419663660359494429882264689667926633291268214798875187661519561768498129193911650180830467609041270965890926536207494714981765407728534549530800772702177066492549474179290890373289920254906703298615467688056008261554561402178671607435811636594320326247059256620483043629340954310549315087853640573582929640759742419395326762189173959502778055989728043263208475581944836623790983360198815298811191801881585410573541196868529370444097200935254678932857972989250222583581947244971905961044712449743002658007664907200201519023643008264898093283861921701776723863035436159715592602573822942917585908224179373006394356318647974407138904648968631198135021377820277019474543114625579270375121936758537294931004283157963364547320569185048778447875266033201424440566199887304917174803935383124240366458444171025069634045369352786157584943355536754388147734666109484725083261022342104193204063154952630859021718248316464827976194751181210767086139435189984667996232689550153761425940114197415057233638420172935057713698408590906901005221959624088258484668380501311515019807446285519669978304084436754497517407581302518230435982606997177556642356248382537091974682896476157099610554409391075673087732855902567451941332069417550039134715527014354232932495434842693180154865362299621652480030020078485158179865362685543570723275811402088389130798133605068728608186861018855485854868700861404366605641381171051980040620337667551544259990455208577826504657806339477513779736613007899034624537763759038243537074040025592486477791117979791065022498036675537676097979183522939454710041172997991936788975691103158743757485261340328916212161348043986441054124722249326116298696499194760463730860316611282750134302871084088067195174545124179524965492790376887627714527579277017540079025988795454027584158833107759851009020241137859915508481749610939303172740369327538541060764163106000153499591401463839969490898047754707671380491861438838339915190389090995620955185099324103868585563509696731783047664438348817124717605876247822754647313333471195725785510679037227254468536255379321697866932984383985303135356913285183923764990770985598051073206464130618448918831500772972599415354327352311550011042929188446398221385121033903281428774402138057399780887724472511162134467751305288603530868327168072587732207232658721195110068427014741218567816660788193611937537629995494268989314091782272860393079587457454779624932523647027448999222537822187822181324097469287361752902726842040897040738236757255665834101014326032005428170396744306160570116884579357859473024615144836187414259878261680965156356513706920055350782489069679805666519591803113596045140097138613406200091002891601271130615306683910788275473868306547375849878809145988467955162010257244587524514332727927097172030611269818705936632630363848476683473866582613139519139297443450354857872950261734859454190154534900430338940774925834428148300857923282791721490156851307852763516087591877679697294305594974573516252399489387231157388946659273831054391585741969222958035540165150086543917251623055786375776036108331919096906134477236313764981689017826482851070676902739238933261998395895212298301173578800184890913414913912315957862937770010955333881659130402888384053318874975346614942329550829149361507302442588241550574037885742850995410149085005415061370723945589407874760039784022432915817148809142708596224178011661778452466412260755440442994238239421010133225417192758098162715517261294396837727748524009578997789238051426997401549012198940542262434395049136025426145915516155493572364392520285016436998539072613066946372510121785325830889892773273489162645634022346156844763186184911744342703620277708216050864158345227949367994730006741645856383245737717360032330428030567374364689961220310845587824872732001670545581889858074183030695209266136872700120931530021336510083062278140506691764654728288624492870966645890951120168920952101399410976386941261928524151420109346404864016975811312057555639335542091950542956162356092511658328780436249850072162973252857679090929133902783302358983460171278561260331628834497125520323765715724841605726518850764103181394538778326943706950943789348745935912356795098116231574673742904994874102548002881615426785254310512445592352591171320100172975225201171712469935239655548317729980232861019244165968518837789050524039949555655305827228719240302101325101816060719684007421635626876169523020663326862520434480247212820904361891277587028711959465739454638518582575556662882493350887632192128692437705560176314309979967765361920158020603071899195353947310041232510484025936780786539578146285344299687227198947145565843934207982518768985977299317086152271041228489822393091559434830959853213383777487931002534259019062074796680452341770623984642106337065332715430989971880727363694988915041932643224606232990240846233387731873089085747426641361159877505512332646639223037235445862704122051750025011663359398950271484867091956214363395371408142643014501544889514423125095114725138365214261521999677999340652841942642019798676684563385142424619155928477574785739075987863914516313609535397652539326280827511383692022836358192824378587759353589561354492268632264272605309080705785749235396237176930864343767125072559020111169824579399594780244218764760619567959651046461526426707160429575454089660584612605985783966848901924409731377045530133672388255088166215995951267221570977367960205914173202892021334634749165652492878201175111585569515189221148352743534509562917567718378623144048238378697916220639044704360809975569477125731012618217005876310029038355714665250784421924788655076545741959686644082631847432916473526774491945441268939304832647325841391862942752604448847434126281604517264589710098934764688566768224335788385392931500172674052552004425732321209742033449185816701603683323719462973564490898022969978653368188043942269623927282665752730853743423596454508497188072837033753590248834692106057441416083474647298527453506013524884601211908165684056758336126642689462034598327214161904339565665745975407865239243765089025355710327462975639428772010308918491519327835838322076130775657195662723813431888142419313160584474386155871390255881318212114780947061748855759523528537228994216832784068753764593989702062858371149470755892809366019265941789677528997689474821462891477367262793125578638579451607994420293940662163536600928968267743917020777489721156153576481879177786830319103641168159805580093450952574643687371647350052137485529430641232758443014994890385646918121642304266253652924225820011882644981531870929245042361966485378670900374235278194766670209186780471797096491696594347032116989395357912901803160017916907887943592583412498948847846492694074006777239204506063993959147606187644715725399787155512989802874988149341958612075753519922348696062502245475841759218153183385247563029729204968041096090265221366588109355304563417687495286524974722198996275801360433577575930587679807103336999664481990393449996797315074097831789385134290060035085729139372443024248412708476469797326848306280563279719225584823613743447845692175292494133810389477797391422135011089781323582570134180134340233106616965385457551291439996397453964903601132651051350950095379325574328663640511634546607161056566346860620786247893608675872026605695244873542418162683393932314697185251144550788684524739741103456206763625457789715058832794674043505727979325268694100339513633779694173274366127158120186755032847138454418679275105884890112179710118669865158034874141478144113755448772001329190839933999264228866913534179984911301517218773228179367155939046838087306431103705123375120043384175412307761952289460667724670249864314878521055113715871783061171025623425813588959735340944590252501631417986551161938630792845210110853748436705713221637112745958893691763672723079106570839589373239456811058365287464376057383124678775764411699483499885574860936552721635147897342975603736899335104396775356838568871215030196852648309415942364988082982833717843632179743735963524505963245704155353456740929514401683403978038448766409182906434495339600700151523043762186005682421880938748102442624632169969862352948610280274875312175399017314550707724720369235082080940695951473596212511603892882507703375671405920395816659009804027246021965261959590088683966662585137721935562403892549574064938225064419659450109183645982031284726617408002851605622355391166189176422405386316401865355036570681161822986683341604944470891387484587761314323571772319049554579137453710191095163536545788493077448330393095334703556507629968379543453758472096675132246978588340046929069006298451439393219486481023998376561892999674213526826391607080470893209356956594025379768672714158152276046882642645715277927493463545624057233040819246910401177365415585418075718877996540087019982815024381649157778375524389398573651104917560594586882301938530403531374370030305745675335735088035789352875568045988852069531728290932179443037469718757207567797303805309415682615988935797758848184518449232765215450274672430203328238237529021399739987940020249740580853994050209453319887777918690609573549386165595972043571373652883875411455076286899942269625338093545421754353336999123055645065804822495137001327478673783745631476882641929606499494958997895657022104839726546006434674076224445376167885925758891857606143305087409169753646298347427674671973456059046456382676935236672046023470565136767761297712675855585505307577322363804156613857507090954334988563629149983565835454483518436007858079706091291584461390932905202588494222023161903437268278581139409188431319135844677565311354965289795286956115558699317401567272987967891530398541243802848749841250511922213620784884650367455704426234411098388224359201650149138223766692359353904076202376235117050308665822273961895642484316798734549802601730580018492840029621805822344671159361412597031726487301965150107356696939871651510434781741191939472626574297468311986267071519790555308129051496520606060287447190864048272237424611696938838515107935405048525554397463668837599423455548546360343015479947685797299829682652716461353219286947271899932975843691902603222810202477277535127780454586420393619553625889083994815656271638229424593346944518222257722076447838509085808064102072339831043953176611035311080240670213890800503924843400567245820999197497427840316797561465955537839333563019876772998552953813911762261156180434477080142687674092380575202453770055100224409481923415604558940658775576946265509955530013346336515081031504276702295072352552409366124538305958585581978365843489035015442228479747126906612463113199616853430642428196293765014565587829919627733386295446567100480988780721750957718444776162944114079349354722390746405752387330160918794107583011846545190409540542549196830804669568377360928292577956163404832836935806636269725784066116432895557873161380529059478390259853198796958760723901225919915115159011790813895338106561045149551821704905322629713599527074589492203436058949342927906581745140764444882471655266945788243219191972980945406507514100891572299321707932467441092139325080191361220380337172078466710294163444655330718202881931740744453201825431190372392562514308247837659522157689775238682335736947247101129260409234258520077002375202410630878052374205513495724564746672551306982803470956124774615987777378143266239753940364217752799747693838775280242558841205663825048626420382807536432163890212872410103678352885118804258990658965973241283412122442990318486179775522488986714240671008482447213619315975306351676080949341131482393265824307294416731101063223856586250745476099813303770083995294494493300058342054442690803215772247419859073598035957624927063598594944288475838147580679928635458324959257950295999892276856768749457921514011671513732779046335098481100640263211047433151083232894381305106879544323684222322572453971823818465021046673652801342397374141105272894878486000846997702012466198956389555158458750242628024338026130217057739574347629227633381081631173120881306752736902798409852675957552539008686528869684096241110692951410069661605362333209087869515127676089412895264425648142991627916162549972760163533560516604285563907382018966169039931997356897777259799930097417887619849419265291838812746274916129522508757685419088747873859449621894771571201414839969262978095178752014827222805953945451868034020656746327362906259752613330238629273910436207247061072745339693612585287666829712491164719064512624704912754266388409945460718148714202348554487345099723460993833564360677599899166839629472785545040681345425492161914047548386211004383342957928078627242578212164331095465468826838627610354642534539204661117560786009698323634110326526976591757215654811313595383568266179712289716775268588672028072318876041570913033697525196115168937207852702269170045151032040394493548923263955681107656637289649112732569742842159469965176692868960602207014136691542461358351965677888516766721287925038114119847626770081469813035079974155411215484126296593502738926980224681894533039228577515439489697409666126598097552696094611702149949675267901334099401926341004150588530745684733140136389507070227377034213005994634337218505478134854353801075131436779294339441171887099074850989687228003504144954877564585002002690603860736301967729958894667990541089968873865903911190264211817954508451260946908958865790615508284149371513295109899563527428820111741527500641856021080291725011129975664952965921536551245418930079282108788440754225166598600818035497708326407330614181153836549278924518921063040930483034582884279552588020583494417670343754117639248683247322049756013806166895861187262670422511597817705632004935212140421551606451967784412927851257122052569205610691394357788242739168209750606106382551028706350503672178643948460476272227356711539202167011556067637427866522643387298442395396305760204715174261083328378444836895833247570885150919593786833519336122740851889882238133895347891783267080970630661711864300861890057375304211943596974012557035272820343118850888566524827064316845749158318266157672780090719872963623948079299034993196936553815258726766268680238105584173892816733486086910644358430648905688511796249454912982222042909588348488148302153208765150949088935214832414618575264667815240880482466597172939743346972020140878845946372589252361835783145519632197092089858259736304597335167327170733425547665522135890766618372094474708801747896973394394128114594715886554797431619586962616204616351775187865031572828232490696587665592967065702882446065816405227006393345914374433443953711272451718309252056431085400160918058323194845545198582609809426939100395911769056769411354755702297721921209396011169031600678973040700257009526876185776246306629208351197315480282634805959168098046510387374725686730295477832642969841732293083546179589466152677591017496353073639237821624099539548598322575661842724564509881368283713485067681818588305163005341637222581790002769118553886273067115674808561526341611715452795586396862162157021724935558679484630307249835483053072763210231361747601200309133157476504425432393189350533947179872826607794062986782051113453565839719047107435757825076027494323106831519747643897182000413942526722900853641110906533140674282708939220190174266619327901565007632891120332499813707980009355513148490329687691375232878762846643921725376058276839928238437663273508802429743381533609976950208075518040862417896405678724041349967832882104434023178265236103553904424044493366696307080100253855672281336987719013422582910846283258232302614056573406374931579730827505333679775497249520901490748314709573992693196386732514410417794534773493783096451626722721859140765557142790402868338635736797680246319692864587194694185853974373531498696365345882551115700185130021090592110937455354866826657416219154049533341203957972471346352255466921380143488370064614485891865627577339016581846035910235211545792131424501641323899295594869789810673120650620423249512704109322627921922897055336281106672364874155777605388422220806418434365555916155116547826696682980157652111017415394084312592208754836964844535230990926148004387056435619110701851426391444111123066434259397042045014000108882321347616389961551215667267963536437798182272499851573067902857758418071873718503446440376141870566597924529676129717730559506239792362414241856582906636710367992509602765419739046672787432102435075511139554126291223385293211233165572005776402019859407870952283848303817800124136491920277849830120167126346963403406782798548360491619424115940142229183307270677858170446961864460498303696445555879906437232939168266432758319015010792021235959721673378189681146820664057917167654699335820193001029756643545384881661253027603047382097242550614419067892654720400500330921316852479275216743439460792126703032705932573344553039460392915007279744741391262078595145950761618288484099445822530919250482394374507258555773607627959461456582914339458496211660348648069993163680630837616771806694927267986317335824906965162316073546875042839970952832619416967737179023824715283248089114884645960848999397345630063623063449421941275782040586107211816258016008322070580385606296502171108184903528202158292237762320777173110849792850748659204768210687282228142190677010535461413241422713713445420120414208192372701011278511622105742729604197963548798937199326268669012249177688112964244363613117312234660602518791331332313033263784452124601829288862906379989250520887467999263525874550935041020065756368244379502945237790330382739869018165591122251578605286333177406089886636299926939663344098027459536401770631885597485172063570749482801569439647503567315740262252748705066681916840046598764188318667242814020014504976879084580198735376535720328850143552036905020863738623856698170210335637838846484500831045537020418265054285325922328936643084576213073293944537353945107958103243282245227137927913351951945688100231324907773893944698138455124781993172373671091693985232830213338079704975550877538902521286690191638812560063254202780005110013515077243016592223957484652028007650652129161789295126968412556674808462275327009782280530234820107705572559296047848318429469993953669796013827295742595722001575927922770208944722702183241735398060726116677167416858498458729282263198671462952909839625617861081307481491415678490184824679053744848677274317787092850936322070148990850952654975636677523776242398010462743258481383427749300650123725007444326993803535940375626863595159097974747847651389395010556909785568836728391016305733354884078976437908056131038817305131445583024857675700160863055297831431158502943671788641618349663530156072622751782003673321483666705222344943727403258296329050233200503576277492300732723715726067349030824678641579296715547081828557479691959444510229119291395984061994632760943096654078984057010657617525263199863793361208121646720547166257657917441921804823963152414041785582166064353079973520134570369519911769277161451058805024049739032596081335135308035824899334598479904007227359185972608577815714252101239229091041304326911597354003800694692443593831974918397616679352203637442123742931994011177148132544499329239732810972175677897823952087503998031149091669479968425385245799534029011777169964332648228476613376248226659074730964269551676777884271230070822385666206436343930356435683019870818447641957314431078850148021409024898626037314000407354916183388980773122531010931440905882289842869128166750270933810984855159818079839954397350329048187967566032412756643573303075305404669716569576248026683791824674254747959319240955429936285513937774057009867492912480216283888644854396677017488578421846530386735724587791527525713439164499888638901063982215464155877522837409970483423898521399056840407734078365047567161543491806493713869584050914062650620994587778748216936977364476034724302534947392287968372211523436185703839876687528582244120976770278333435313520253366068672614967226054787001345034365394543822666009325148645599389326491621794253119615271817294784950756327188652374487517512377502853244995003321327427310820767816448500495642490537274478787249369845336220143096422006044326650468291410674448467555248138652366622929101990290143022601729268665925978711863810155777814313360919860135868167774321420550112875787690341463928175534358068958073563896528087215249447319901953109760699915840178208453682197403114385914811985647646472288116356920488094495907649580925304441642470208539503451918360010145468641139858516219392456977820005777571622184111243556686955268034974737747136903408783952755548434496471510964397549674172403543120837015503975865057160369184286816753667643424057171353102828286228243109948451172146850205756622430130929463015370531602768300929077126623425364799899908125182826726020213176764727448264580114095068991338633070985666224726043680470067624088699141394467877025186703416025077785036904947013102677570240990849003055882350517943754544421989309830594743094371250068892196137697834634254709546311055677046868298566891342878363629697069431478729346273402822643737728689527224707759870550449608759564204620430840085820394870396134642000530817854515322133470424456675464596632957835475544910433836963196728987774380454578867290860471047283734752700100542674002742703076435396125163985062245227875938996316063173589223690950637033487283496915751583049301699209129090468247432415370842282689530792715311575450333044258676612677196176771783558714815195643411127445644462993419606538355003523744605175477232950856221208763810002155538237935648652169052184593938044867243925904845144392646656035167628614077114052146746178860548164796762527627970017701247746101558094221237507709562219161598864036589905736034096774337940384780636540213349744054978737133809090811941259771007671668260387424507151000226172939817867990574579478593764000179527789091900367263046252345375139425717154963601292674442952110912442616767678939525613044011879330686748610784739110477831411178164847847128338548688588411775207989186482645241154334363727134129942157949152679733454711270243700087785070428500298985490392649397274513861872304775377214655105420201903083511875009113741256098908246103784766417994000261664427999503046028614658151276488435241008782597938503891929615127733742417652668987010080012880718797877599393491213494817266824911661020430805393152303324336080120337073626031668573029894335023611211268918200719119791608384824581376069960948017557290889113572219041612889443074250260595186797351701089274850015252032652071816575135423791071765970136722538957965035125077685295343076197164984670989022144987809128436965871695643841602964397922374407770818967128583315177843980416831539566883437012531278122285851100928221610357166513385833454469387197817160956749208200333173404698756776164644323432841254403330247590346406083891011008461457457430146384931409830085021716464674428365123959069525054069215562525310226842638528553446490140082480594528164607525942073610961427526307204513458965316687406141194691685744131010575312908253481572672095914738465557626071302569859310972807694002331893745493944182101888243207603289650433779299735915177550859883476579768052964063065792557701998915192214540211713623139634026995033222252564734104378850180158281491205802979408997944573683950665456395803481678244700085334480364251772420473767534212469246622684855604094938464890454000542247842017443113003631412221331075159531124392967247203106402654264816393148039518531734339081250007268013551711822831916649444928445380798278529681442924703776782052637011737983977859831262380911978176582582714300992045375838688991994597150869969273203924493811433545435775748259129067178264404861281599285952246084347271278638281086603224180008746486874723237574001898535747888025286354639448117188471777504980312138559648668151740260158643810599829000853570780224168489129298201591576676293310244134848489192996425831285030006134619032274963283455841402154674528660235268915367969104673896078251394469927876574492412324032471898124369405739957783601337107609003038976656825199601664979451464876477138267946551041051997866346249692539192406963134625469048365831680728947725000772921122809208194865393118534048542263681093029662223296732510065967436009176383590477676599738314177189660627715223581733777422886985161963139297525795498140259548037051201506125329348946192265273811739017361888283857261978489516535698956070082136273264339934836526744552151043573578826737427566643078262453910603977455140291231609795654983789245280019920423702586894814588605375591971625442757559889037019366137446288842227367591794558555587099884855966215667744253627779312880092017558098079965337647890190378190609326345800360488503816522222677440568943796229203511681563699886091581120895637096263892583436122810145697697818586986876922574526150865885029307440455101968990646739667306570734762253630693305150553960806931283071397227860595080304757646408449097072420003434182225569034093869570417787618520882191066767122894542549594625134690267296601181269165227834580566497517846688191695237598500065176395384785470164142728665092689919551731551460597806309565814818523187245544077919458748093746441680429628834070044875933749418329415349409456138854818345511267364200851489447533241919314339917844297581496460205324251688453839471850071054300194452700296822071964700170879143284815069785309613985931592927824202338846023812870033678758538022279850597696020857343954733871028156513890050277765352608765597758047567785671810648270417015269053504381296763373859926232588430355189107541425612108915088831745992220446449361586845673419694167746662919728666936831122236465602479177006873058345058779966407611711969162808330695016116069557150565188111118104700878943869105473392989645259030340202009255765985684746845446463688602453282245902346897819052845305065646375726925553953533848347131208156306132189750462830797012821561164436017995603669149621701031729745546450914678501686309098330959627506190522625158715850209233920229235356288551746090195975907924534917041046557065629695840490369484178524270455713169319225416015006064530328050243781479036348274445150479533458437717769790885774338733237865262222864128413053397504216625492917570392712956020388966550601611291675283676967599600856922141275404227663836949469322131469387639917033110554573103086581518062753586303329065827721982704031568949381067488307549582595042485402502642992017696749453770660315583568684188748764480871350151793607789327887886166156280610950696826847497363599983836207241601262050195190907799934866106936983682438168556048241234383909656064801394296389180434262278091136187075339814773818821754553463784876619425813482946194531479008610803013419639273028126158189681552044944617937667357512357857436379128502503660333969788017325538220909240315552901465751944635848019329161257791472100247853550072535197287172240890571670345976571557017820038384166830931361097112482650248865140251512624040403532658246894313415124808291920828552546711099473980408033409039363609614363961293360940204711256027742731967414916054368034673701503908735254651781935408485953270469865236215542140801714655696490403849889147511407782449665703415046631994041541982510557804301832873391131997243929781624954374642186734950109726081460596320251229379550990157452435638490436107687110113963947328675105368817292652277947105669641431385879317044060911847087238268444885637606182973135411748328941303537389038823304531997619612287706413707352035691594271722475509340489153882907538286514623875047075655769233746543422851713797161861698291256574942107606391917273497766067436883716451762386308112008234732436656078393853954652217319047158420257452552797517262744371111766978150243323657945840730228902390775021622526689110601509036995722441947480342549030284508678947810149584074083223651194051574205400037079631593267703143652644625062980787990751170968367801405059997107609918425130197478939280879758165764603065316651345422373118387083348425774585119638017886380138254265863451239476486172132166415107924385639634232096677967525182522257921223545529319603121161968883960667904219725531911086333088132595669691317642651719748096337420676430414153531247290475236026083637142690556356542710650393227494891986980387662038337390672745576722639166933702100221825208168639780976472509020673893409580996793424468893387602647357735947248945248160218021646237434091061003399092441358763136746869920036126637478031397976655283888399235692169533314532423725561253284618685660430182749401433366125395755974495075713514739962249133042301541171973021614399798587315671386261168726671635964180902877843213405343141935741758824315957847089347916413340175827067646822694536774571714519664859333782414891975020699128827441599957998550875222557541176174214025085971877546896998071600214911077924817000313409153595624041132481079137524826191230798784258772195344540914584757889267688312727682990143218407630709420139221089641538918626946125628251872553619363964977523468046769623564039547147721243693727812902694948657907419159016231361567497944061806518614632074548918642776183336720851301207245417856209505210632522646484562559872770376490522059899114263954967588613606233152057461068586659734194776513864314600794154803686902620804632246891982107727711344193518746712070617212299619363909753775808945075595600091139825433862564121852200794015222449666365160536051663699080339486097458564541167230829567427675141497241209074242928252866800545295902437886998912077714906198718010142966348266308160728869470750479436083301337774315264010393872841064858274293179782665056624866343174934567086365959838800571505458574878083834292111177178041850958922272110012155773962354265047074965640973292906789287568339083320174458133699550961020162846194946306190097114832069360718764994348306045072919037158788301717524651909526041695097010289400267811354678257909079631391897173544912865872531000854643148013300663997930291865249344070861348311552958694277439839380121809002509973416123434362792870617320586291686512750110626554029827287499756370324635488941491144388109274365755041108764931605368271983780064735622958427655044446083592270141885148579377396780499409469134196575985434686144508397795702236840238393324620854247603810544854423896212187941784759507422781666625669865787721149006404037121094513320109557077563121427567572076512032287942805007523194282609661562197502593940814947011544344213841968552554879346905861378127225173099491358814716504134010815541853190373224039608458988008371483099899146409970855545536960026102033201855415704539847456296347984778462571378742798529623778037311198547035743698283841284332528021605890245545762827752059831747504420661618655544194978961668620215607396910776460556531505209740260591915405399655046642168433065434268499075694202666252885733124693357992579007917318590725491523189452277708934142079022502060333314653598807656111725762002499946944144245976452239369033752640586192764681379224365264071539976091849223114298610994395747472006889904154437636882893343233011330012222240663493251666707214381579268971270495432841975288109421735925933813006464555271075969711058385438400484504713802094592152713865029381655893422933951975045999016957815248765546714923733671779542188711727539414364864988386085324755877105046824695849980966649804939101241206187493665316634435467693493999068685879740012016407694105236422668230923350875946772747937160171763800201738094211542424539752258685991118824776144357416476578684638290608643992750929340550602244456658657839685702631102451304722792684185330626710790001486874568460831669047618620134290630154292652052195205565020190206573987794637651257095950939077289150184828282065209652330109085488469986417177441441039910043058625748674000439346977099650193788654577393134722776947882067856174175623970780221163964116690630415730408361464409973624114397990318429100868515796799179397749166762674954144552656196529769146945891507582395703304742586194853482451238811941849361087261943256705518278454261853020630938915304072518002177998798816544322745066402282144605172497605949496957840174908467537199424830562889435169018589879439091600792770811175201085591474584590048935908296782615680400118839687173328503243601619479795429495839427351155167078973130713994138940118306764520289136381799609801488029696253757131595065518541961249546644604165955023409784148607952213209536250138865493267715908791426196123527754440960313402059955050079412180832999098815934187673937777987261044700985945859950846792620561808942552794673109044383964394093743585372561529335681137184493479273058926022844037076712706734946086179326942346165766361999769517887302961054585346720214790218820920859812862530719013451888827570381251680837290920061565233040922103631807451800336609817135090346211274786254937960152428041890597831872676672117150039786999304160709223242651084822622527958058813237025485455092896788620423991904626201839609295245805076578320002429803277384850858803320546366620566756792682326964714382866809032620755232845460654818734007973051008028771995503152900581162083339394945314026139632534013619409438043305384221217915159632727174114723447121486493852431089270622408708472975259255975097386236048773994977102152844697447809939559991611454209328276851296216293961693857120167989547208349331279284555278552942971793883782430040662559181405304101408982583990472183467310563829426879623920014160643831299116385086954666731359726506822673871749644483188580959926186308983353464285344866849719282028528606143876727759765349624891474163684195553328290453267554116226434814944398667826848359508025243379529741011853169085219432276257834544002157353112222593404084390673969889547326414414944336350187903994834101038351519260926950076769885498330329996791136427105176832299974312291133657852798755404806136753885517626433447681220398891771360915126144474441712272978727037942093510392352455847363063881958581851095499349925685886962063477506992061820103477563567512453897841540146037054689566264377301859498797728267350859938415634221595997296769549326686963001469151197624324812937541542750191575763065034384997663469351320911451236905103355781680904207813336541499924593623579217126273076182644924981876677780198594480843087337898751574433530960873002964208812828473506156186946420801284320380871590907023808927114786291717328290236890902185937808849714040912482302507424464682007782591187529124050682173759051145789672989499492212709192241372650419910375157609535170900062775675833265821418130496549390159176392891955464476138489188002144240316802857433400637478188107413997848978457642708519424382012500304253116698372369520758659161728854115258335442861353516787080362328482186038411502414716221567955428342483068556580858270808169226155645298544575409213890226787851667460330950478889316250614136663509504955167542005383408734316893003307550944454966638058292743876176762939663608160505782133297957201454952154600224675896879063884781253551741565064632116278324567039369220463886088150267677840885640713815668845415536068358987392424051230670478013899064137103668903295789922757228804678638254387030974065092404007283882147392148537788027775522377853361613796618733236359088041420871177946087686783399161060810027439763823589959732412688193533888105451104653980703547085584214332549951867542538604851471119436320194729095729515043852419286400356626851013101844641190139315759692291943719847683478585863694360689846025806863403092858828960886398330133450655970765450926365184833913055448853475058418518902677175521134479906414350802089861898289242423308175631154651681182336696921818268302570053737328973311576158161468414352420440259280576675580592826558802377291217627834312679506542130395147869814533387776480192262175425152101243679527568928029488518505077939540661431826803187578448141450264235618313677188983164774145934819274486247514942495844827108438395312843585212796511652411322497999775821610446652839574182766907540757902360620296891830911497370489547896189263348430316199997296921467142544104804991279684294449444596108581543713395577302780638788201836621001778774079293813270697994965645091928571517415073533016463548866876695482911872418647503276480481505914581392379537547282739468192736300230264790849349061808785724252531218616407682224688216602675865348610052528449866511027344309655097814366632175188151709552771055658065731922469296339365512261590814758591478388940879901880153873671191781227183781375372195270910763101980563699809600622925687498021106534745245890780120391426563539569157849075829077297699652658833049144019533926350351341538015320370147376356637705035548457129663957719021894051417548110930691859273110965766344891397787742938527816875201303475582570231750808565632062666561286230908652022740682324908612811168730713529101111258602838142226057518123137281594043638993098123392935754350809927315018542847845348416684119026813744225758445824873871725210185007180645664739196440672396940540091519176263043784885692854995631103240883852998389038345866117659778112818947327511933512944810574824815350913095332171430424947259432249466323155694833773302881432033082874270345116938531398683682694153461645130572816023325864569410461891694631784502485294931949759030330171776430277723598958926450029327348992952580907214322595426336417125101771242783227874566889406708152117570537039235715332952708615626883363593020420705959069060496210140662844240168521620640698703453611149518165349442497445304680906605540608883498653160891251272119593766339380049313163346353486875541226501420496129596549964619502909013214318882697157821376735253782012070492166300416245260625761635913341444819256162001313959015513148308883726867977587335431485291832447961306666584495516589067999938268632213824798049590147733379229560477905971044139727685620423494067493396009441991559865790133209486511855140430942128334473229969587529611812915436834037312527752413567641982653575629733871936114640116919927879837704727314659073864066180522853095802753146808470954756357043357634797142423889483868081405227855029901617018998291590342915807886810152097340128108946376200537316750275266372589426139502136772619087020441263718677289784270562132039936387930959498686715982793232061335726834931992107746711680417794547687970763471086699064903350477657941054033091372542746713027513294255957351421152813214951825787664678885973390360467503828561025344603938940013426151007108437914561593831347543123073430021495062733201654244250803645785073683913475699624671161431487369420341050632747646731485222906852153582818791205282494233320640208667330682747563074418460644666557340279281208495132134702188827641372853492629172941937283126745667151525962773376428891732688458397023839559164347396254578019206239966487693477779602055960504049285280663473530090714710320554824181063210797755010830332424017991652576537600176911619180980473939358159378995734748196350109344284249434613971789299853619831454454059339641325967199987998053727334489671592056167765450163173543527685418044595035587521789932168449546475318033668666110632229282973111360644774112376554814947527305139998265431687786195994723186290154624421456263147706125706977211784458524479338619551323637785338363250808500911526922433602138882736047853937670116211902702278211084898429943830660495898846422341779117754985935244134267501826704683133176600918018379310050847049755996170830809954002281685426907434065475418318625145752387991753528772704881835275740488006800927921790792666334536668095174408676040935540403020574782602133989013024939279233599953493402199522201011766463340422611710699522470725228292537637036959816909788842703749836053541115684071041644282320864847577948934377293399833253950904176318769675293469717623441275817583328644736986141713227453643806550479274045132172873523802858781562851981008766855847511071995425303216650818708096879665418521747070395168035678187409369664452569964247980497219660418797719324348324471226412890083788072152638694019027000834071478469834358319638786061662954510748175202269467497572125145809070634770631929210289304435588207733588456573293278218536230582265776942536028213130038162158361207012748936342140327126892647475653426193969770233676361836361825712681030681074070791833249502195995851888333395855936253906062278258086161411991276826955994235950609391366696287625589348591793599110405162953505602001534747493702828027369756974950705726963898410838294045343041970206154893742010700205021769930371208002667285613314418181237141145966191722245601928333978106695384922245302288942290613342327504862435268787066117280133733079749328183975054745641021741547775319096331812721169475828589232717465650941873940480594277545705283074449582335885105501501838479856882129407073848439252042118195111648586312926132455278552341843398451492604522990353444814122269021206861064119324839778524038929636340856557640893609359546991343842096293510414023943907724369337748134637518887794902949364646934594052225433934981144549006514216325188129329208116940920498949729070375446319747136920637047408478233416999438845577882921316838813930128494816340043939675394593792408870090601794276401400656606950870974420749104178211429359515095064170238149316668243698941509242310043406077478398852665146184409847239526029851843457368019511538776999191995876658528928937859339643418797347171725745395471273418367317005800462839767545327745057925074385627857516426726070737622978635557133958519665287035284164986326719750966577351134959384839712608891492160668280379868556442931466544110905623592456782176183678759009788787129761010137427855727145726246874357208846530108039955809797027779334249013655903025613450041600988005676929704494336979173968944156274453452569189817433814821745284191803130798132887534094025290914352351733677532844664785741096527970062617279239555313597918483667632548837225436820005786587714027994472555790799000146685612203588454923911578970613127527416682932776747791520969869593645904161451268646983070876148243016938361649268775663385271611499832410256092911538856448766746428712081403246789838921458148097860218361280519624983943998272012719441838918760955386758661910483645146852503924358413863326294938424466943839845886958104413356806595424186740420777775069293416773196113000803489279226068629363140769597677840346957464003680363387252494203146969490515661656305986607077448104790300065782400168362444127013500535272706305854465430800601746151512104338933934073710983837733616685367191384792267846096847895052822334289944096755457834692296873826921651083573649139419371465238870124336934663771928095187898550916293707935479515811524331624668290486529938381903148905386968461251131298643469066664526578908128916304514530293066383464202555675186497121195035982499111667342464813316252405620663097238645884159444745663568234521653823688518262235155224240781579138764741266008802805393851836179077205690007916638070912875362235153566457425298512726551037130416287247598125980481184242030041608141352977540055246054650621055975281665752033358166296048234705391399626495717231151330345616675344253724541872962026991756683934875294758321607940074615099057073394396053160911462623693116397401672946524559131987823927546462707092279493086076427505142670225562144895571066964744969605605628054118746738011034168743368219086575904495493361238542384319041952918252324576454253710234742932188579400697980718793476405588942232483382692938458768175910174317087631157772818709703642633165469951272646187300422301942602045148943129422032454871931154936005882951824119072581663503916232545728218198393657122008793537024946285929852717476142291005189041259004475088708327385730767915969445017270403607537735421549280638593521811491423704042234381226411615780477154564898192564438570842366635186503021405242208180387955450499332671721537080895559108142875194257665070509960250778907739526395545167546903859484198725010947207340664401683273783224343212391425014533294840690784642349427723488951332089245512714891471511572303588239532774542505744479998948311640476358866004983045624094992822984076077980742107179956131678105167494257186988992183071187790854638303390889578631337754373916161282700195275536868449679881388568773051645611277343655051459911948638886809121883021962409618497424066932733011705803559590710420385878946878193445571511170847475679119835692161162772502422883767446792912888406038831615770966217366439555441883236884395647761639966879420213565535363011364893166055422974082819283970910565169578862945075525148713032164731594147399567846609169986139566918332331857722562891922123415932594849812036150514464817890358264386459721608628289373482406581468647764816556131871053642939602219790886904300975427654757417738225758918119974855049064947514725077020320114364498378588306275395132845839904392304853766797224590158485369627737536537756276475157747055251330185266715932483655986402518851861255168073239531019070283148253786430204438461829980897490437069828039678825915373535327641153794362954799682391062960762861382720926469534799706688321886173277243848173269845446032118845495177444846873735414925732541204905868086413631171556690223401494124223113069276807539689407372730235383218682202355309347432582985632036879661451727294560743382876071356904092438566889818716640952811375920484178426004246685143813734658153096583207820949894563275342554256925552896240840993430559284992654643325283108300870858842943224638048496103343399497812182229593671667566004765006646038105967560355452964970577913670698368422954784484777235821590363215542385681920969668796765364235312455052698064087773734955041401348021972354935367093702827170997243647423985946750440219400209219851838488533096168103911218905640608884083358367005236419092142005764409682367560650004456529123629162546042401118047404030235580897315776460773437731533377928126761085452722680380466503965343594832730662799194917457771859981708325524481343840405062913740163217798281454009759224803033678299926863173060675233434919330637819908530034487509848270572404779066406233654801685158533327538419228963845212883116870215855721167721368351595181074238301933232261317336408488239636645285349922674336226007603613222860522135552711870715624155473204199101022527454232863369618994369215582800701274204512401834120141987965194104711787204820481722843541113357295662866221616335736644697696631517949982762923826348259575655040700729487719259193546490173198219005076191031698546546105072689642223364852518506841384391331656518140783621981280783676110034983203982838190666960549699493109248781985096061772473775627229905679712252860271630755573801072411164498670943944123132362201585635930405364044582343427220275525336232747589448895705079623058514177117978042294333595494551250870231015525962466485225517849603843091991711732795634190139189930322927145709070420273208900677727084692725225942482227686801660466869656293213592452199003187539112734175153579212064188019122205991855610182477306280507785604820603037498080217603080898339716241551186986673086173520874362050846515054849156830775660668751129145623867939081000239910166979892996679815314998492476162867856658944335717088570738629536601022545776144324778045515071685915492040647594856071146861669075805818352120229186021138133296973096242639822050661836221961563550941175755705334323467676391920224483575532668431753117571148472038015857254018858965848223600590785714955669767175110507388907932209779335576342570846140827132480101424690616142659174211614984367799015062022580515401343396631505979601962962501666920224902752880916610297553746457359400959382196502875870254982864285721572824058136763552450023893859404369048216026959878429357983267799798166366123377527022128496282802068987328760486171609939679679596833361914873876314049431262034987604401940607177293076872868731793873712645767481749913556309708834913566892738208358966434943683591361492762522379304642165454657675357222541133458196053878060490047739346817699164329234775171278454944617439677979081223698122472742975338099447366216902245177989287916648605304526565193077256965238755596522487129163528615764010059049760018760499587312380181522586333999029706522631722527117063517931474854445834199574014297142429021587910035615128090835905278969746469377243683843932077875101220485554048621096406860616124762190065810399349507442155141517457897287599702741488418666069145495243328415161498372882003632200509213423913776120263318527885641104053338322738817586870300624859453210198270868324975079200907749212880293445576215273013212536119258630962338386166074718031090921088886598524087709792364195107727760539792283224764744623308055087402805182955660963156762879218444627046121935024166048910103227067011406589491997105352446488501758701692629482420792158792366860298273664645060758021900616340595060391121067516704536136815839558470491450370819202930522650565423583894020832752015886678463980419843494824692870888578006950411837133989379456209630337241312106554672113807276324096281338435503320806434828758988291239540193338986923108739465843587257728419682307356485345413408813988858579479459024386647319516013342449178090533682073343067747722706807004926231669797847875753837584484967248025627985484796417106209944791487283409502785852646328298348034627239161846181730866982536706662435106179377983729456977184026233601459732589500031912150933732602371965428497161882029097901737780488460906258909186521402122563270553501135810067764971298417288855076429573804008556810297173217401600894523216487686286830706381771771260338538347124082291026252622941134436079086506988025611849854998598132607825081314135132606723479506124905358988616766076889185227638604524639173542533153963225966226887224066569267297903739683685989379807047419599667305965344624458831622576594350410092337034604436181241337691234460524240760070384204924476679041400385508703780550355487045908719686251166005701454687284584410725069046046413523732033108865838871035106138828246133611376060584106301518002715817751253194603582747586872202661770757739350799808943299174841398008585163574417436151105273114081276701096298837639580291801639988821435150340052787039657480783847259230452264309849222995348028670128951176607466463494223413986586099584804056171651312754978627068616342981689943131539166698169130321298352173889899905682809279674487015809010559985631830592304183319265693267828830503272723131351645868998198870604667096517320303113497903587141172102485930415435728348470698328246369016192159466818950870298075486314551830285575909338141397513735342898069030494908747848152064150863958791178879952461908511891846914740880229898658262764408418758180669177442222551651007329444654404815294152296680482892586355834074466779117812321430718933887353702738983112743566898369582220051096713165374978823946605165978340961912296822315642805790059577535068391102991697124802035287222661293175845511527366269128217867331938683209804607971799359828587067483582099109505600295917893710389192560817620640221202009537483324997158892621725582106619692143119286617527527964652606704730882691183395956243397982470858322484221517928171991334580062193216194695251412040425833304600656846806850830800366685130121830283382294041213211531482006962233430489041575012824973503414536613415549445648203657314953858826001465099065831180802522097141464571862512839944561760454335667951637251911486532116883685094857646238669899249869423849787352954578628531473318279288627441860710429267722056714089306528704874973311006688627677651744083546967456485674662097684692890146408937297801330364733465833509817061011763455157461797224531510302315070300943390743858954277572308966625128877161116973130325833641695744675086625848915047775646746227644030787190592686716625550697835556200993684967963616144542345081008966018840478577614694055538616320389223894982495906419028095409344641393551718398619246156966304211638993228099283051789365451744864343764510879363194741875304148106021543118353200620836384988277746118523219367715975992273333786695405648164552236437487218684142538231845353277128492182680739109572120360840581344764637023379549897611310873413699132967537491218216486097183493554336412625039676515578831360335932235953540622206610562996124505878877079306051660280459944593327011399616408716933456022651779238002976258088016007321664128863088337471594012878448069824378916160316406398708227430385645797893631683178743978894886077356935477553567535164736882160621678824567667120267533661945595867634282891092531048316502962854497644290908188634936317711635180849901341860900086700893408112578167908076201842965204029416997687211507193220495938722459743393949265554410777954876895855138629353636571309243434459363078952948791354500178650842730295393368750529304483159695721840419369198974360235636614337424884705011263055486601655730639309386283250260871167086560445119407926341309686039305810821646895567116513943672918399114032888231902929664630430534630253397054943586253639997505018156771708537806754764992697636959184275240851894647705680828573083483621608669027008592856586418020603719106606064429942203945535272814496307763858780563011407339168762282127693769218386392294423279608185795584301611366699630649284062925372417460771073104784528055774735188464138437430913461592229676633699698582759583271151383654244421819391958346521881218773553376876386095361016711997256954846846234385234809297786826320626591830970658370230197181165040465711782843844210186985887507943611427621016967822403920608940404731363463517598816091252294140523041091634896924070311114123947782890919968130220669897672105583412929557286518325552615898524451467793822240747152117239559693336635745444483149481426057061520689223301501179338231619347345824377390668796904629523699493836122784500302306589945928063639747461238161824519771287280157971828648574910483604261568344475369041724964223921095521373303290457284972756706112732494604428777014887662655872726105952784169062094231735755823299087319429544336865822917437885991701876813540448761824346822977534269746110835727181735235555516991102792850033228127515390586926543003961792127930716263493045558898668775889421622732652383017146670027225758169957859367955626137644477244651977758648692473422541195774098551297044108343507765226761772674179495158989661328250375323702834845910737410236303052267093668639261831660392221530856759535195341028877455801369145332016296649566266827460489142663153003753864218444949514235699970169239353620043950665097343661947170061298403943947161264815621703887707759247195572029495503562371223124317877680356022609450278065671606347670740872245704297076995831883087247163319813976962712657167256279653618432371665955252292937766051784374753189903461637648031051713783400945189861816302759020590960056732100024093770164080549502663439952002033872406998199171911807035344678832231317897341294824020476591484781935162219682159999827222507089331420334275790847580247429104167397471942022804854140003276953534046343750217206364082212535575568346802208950039625312003418081228511842781239715254934562780221141679246000302030110986014477678072221134025841087633620633023785536315956709153273067470776641318333400002426916108688087822874254773705285053480067743382169492174393239792288372806715760065233431601667474008869615775826062609378789140283070184076091711909046063356178914342843656264350084975818602907937198066346538619596799289968433818963998171551360788135399511402523743810219123332442231676881732047688842043503707601389398452406529368938657303409204636322696047444497761006288704201077822048466753952151383870564094029596799304438268974816585997598044568970723540167282578661098194760637206283370788954434248479927766198224974464487658774184466990827092155158644236743840591331542373501285515091036338750036599608118360871742538085564146372509361650460765692131291241009006625434344901384913236579091134968647515545955737124931507333871918503462408616390902129633674533757721032841198505344469048959387113702415751072378493979243992728594945860587409538986267827478717945740920405871526086266005439255361330135996449354539102622879871357366713741399775774672037355044373210604438981321254568789646389382428445262161767503488811364600226993810101076547561890202157821879301877775748019355648290865080094091360375395008107286925527030279809694044441709588688286825856360827988215609205090334764607317155840656463143014679698181935789212795004802273936953668656537756953412674653072424035477981399448976138561903955265918940371401774125981788371148791921913199110524561723352619823777063838481111480177035543102384612573076088839716524041068507514141189120637950505618225880291733950057251824910791719781281547084967551544677525143183799178874927294884150405550712377983174056391583442663502298446096550147878137093294333223664192392776924942398302723019017616629302095991562400622564258128940369922177333005967641393645339827494467625488625610644352827868937379629359736795914068334685522330591261731816398803791627184201198699378744903460908238962485374256525447581712677794797755156471842977303000918042012601979524899133178769181434656662842075452771619778153023777846572006562049913912355106733942583167385622241705835774184899943760094888269796188733170056847980493174151824975092501962843658594021221939844864770418562532534341145379906371972389678381638731241770302316436755352619726711797787109503815816830760060645922915219506200849796591187642519822025993151853047538862356337019905115801471490389435314855471294252963299921273964643324504353814788024218706820548229791456009196363515509122026579299620947224802664001342978816977986434701907591952828732365411876925448124990105334069972864523769877189379669229223446942614304256156707881400087080827544793555605946576910057324183402626467520094446278905608883736139134106636184599657634455451537935232966900812283065440821212752871163694320388736421794003624635843661914784057763156503732384690571440493602410863113026074088166376821506730996634375148614044262858767860763572543497784721332501030802009598538680591686053037361048676553424969209992337543756411776234286017712166236114145904284048489613742864046859227803547606715655187698018487100300406876264305568704909757558771496924044238692120587139523845242448905208889866757102590649745201623530279142216243264426967850489267296907430720173036360111514535369789436520494880943850628074354722381457333157613491819573289272248559220419201593301354813440412749546587280156126202179839298181466043032491791389565320638015398894769554684835193590953330771021964190381285332176111506495627248665185592560416333201138163037660156289179959402602944774481936272425779641204535547211336545519609848010082176152827304962266265782685709788783929393842184277859223330848583759099010278741538597658558619210134675139581541244614173854949522864248825641322516423420690941569533269768580167562854460712025104836281712260353882410767814264461649374182214531860603830922097407715972880728218982982949756549500643907744068542275162676302494500530715737313048008049096064315563069031516202260643648562721339907715835841489899098702625938315822658579416698716293850022999315159731456218622386918248652489640877138910343262922530625575245153885567131395783144876287492226326957907554882826340819080166387847620119529413261605418536667269655678905982416272202777516034297168506383829632727656003015518931532646893118817513147781450987043847642110110051270602371395531530079938987212024281580134301558830110000335114132713398218832830084000998564531497703492632411932071266762534061033536044274168226916951540287977335941629259406715488422887338412270487121935259555163929777702829857051758319447119498432208822065052282748954907280261777447877379535148565573336605801787207674285046073056608307016280709085729447600049902721767459713651627168491664078853104936359022908293787136509048803581803691046152771682011217020110075240121653005071731104475563309525546059962144951908413932611050500483850287818553188557276995101317534416512105001562497052731065922201657698513829427091397155505823322504654603903228706784098730346797802158797540434752128994893574334884941311781393911296562574093222028142230191824944886116668815232411819829918681664392048319656854895120147779073759650439164576531801029008858627967561205213770207372076385677275302165005830080265075393456535446934287697334020983242796624582721647626181939889901565910999233010445618934756307037237842401535449993399014646629583623088059436895823667961114591710990248867773046210084453161978965749495414928134354577919730845211896817857757518524932628556015645450099828430047394102723228962751304347590241535730533114686370911248590439236099834685305074088803897911304542937172412137434965567197189451520954077888606604263449871893897055714619684863185531535205914781698988862663252417247985270424408385354437395489837690272393721077100096139860633303386845247080517289359285861892602935308765491862154154063457113832347656787398804833853543090579797938592835661856066376354684416479497021785360022959957842089657180279556866923067965590610506151300763161556886862528458242226357155975181380672132245475709812275457765643512716271744484547281571079732608633896690765262723968398336585689063703934601891028747190409216352973772342865172376521508307412994831537886586230222811253721467602281863655234309127784741494447005127872186779261958155674216842682766562730526386494342330769846099070601651167694946898577265826414526565699059442984678354394531332190825472862757006554401070673967905293534076904077270839157942482070149535910526602784975785015966446463839223556684770165850293980762295781369228243947535488624951179008803994405678284514246343971924983144689944043210821267275965386742486711427835672440800667199989958389848926903764521599515800260406033926146163292380018431236691983507205054882845590275360697899592992797387959102511562500818047494838282936145301406331530891496696062033972389237479895220307171133217663183990314254597559906063215760904671291212066098824205733845852442598987789833107522126436483301705541643537669438396056998413469675309018391686013225146527910156308665503373622157929117157163149594538569920935355690326617706067245297415320650276643430020095692642298088343200957949377281698340602582007374794212762561354242394062706760626240544441099304435994055355123335033547078473813388163879952385967762498056979035025691253376489083484442697428547556644152727272869709113421287375489718602973073066435375150509608521700561493851845248437575436265968618407710728363722663547033747537487157452759709029285646413957901440074617674724762808697254556429648619723519784010819987867830332054937276313947311957995422675024609473580459604383738953231155593222757154502482412325590947652566414302146264344827882588630743007829935084304677360020221539846747644072626355340696465874240293485563000638819883776527109329891169462600077784596378409446980110930739033434400747991733304054373449012551345884030875002411494044759216376143473984524248374890484561625123114988818850266305191668444431470784337542643637455451129901390540068489789704518874259428102523737791658240069453478573107505499525313142160932490463009335239078577053910607137950322344590458536311790251925987910914571566807018968597901448934494794445274345394525403584825505247046223300294848187434425393407355122791519119589632271343573437002011271831377307385597442343062994878698552545939251568738470941633602219770960394617701061283525990030796500594020429147360518140763651205151132967733133318592329799033618355114349051427020203138046726765124594705403786343302501743254796818536893696015808991911224780470413605414408839438013326681716091419881001867556307195421774368555471204763841126102483366424903556459890612959520329632453490031667511294796732033241632765618573996688230323420948442890232321356275492744717018735888112112648024616231360661747042244789818097516414191498651298355293301721769361030753690064899890281936062477921365117723247338320196464087219504950872679035407787677311747220354937967936993236553982238180334815919748526595422324376447620489567349073041460916949615924198529389313547835528642143780977887589506075375969141802462350763584429276261602080313626147794182408426429470107776596457859835087280809373929538825793004593491995490825409084176151658844094209929937840406151889463831550691240593605607748701289783989041708841473363351871707999850007701746273178919310594671844289914633974251414727549782616582095327891216774462785237390025150982046764802065995471941983521338225339651318749144882451395469369389127789582501753296868885523188647969384737908724645145230141504574814280627147468299479400950977565537982973189323266295924469998794392177337410675854436908226638676478206592617567568153531357733686405883147332312018137452269750996367180331475432479413528622857622923697028472443566067392926239282217230905760126844014083197522036548519058576658037216591720640689326541532633927658345350988184084986241295784387137989405274781243396821515606580810748084463284530017522191412121144670045949199977584474872014158075069824461731328659027550157132787768878093092389674706855431521242020732561517900391532433600144394799621620160781824012765686553868728276313693268055581600401564970161720436877497052364903417391800607221299585138502563247572777898868377122029567377455399821894287986163089797351131261895883968964045307241844880046098335332392599375528333637383739588728690770070832941402775969978085483451089611426455089265386038575736444430683426152398457312727276386590161549613850192478344709011303986306695334180546981828343642846474501050997947634002415614524291049455576007145519765158500878900769337976060578513925290201243656635925556021287707537720996208192023826019020688059193921346040967999251891747096691038855383685798696418463423055892613798449797080550111763854636997985799557153033448734529548485850427074183355614220833513719686410159295718423114542691331180599624263642325780448078911710464655596901055712093336912693244754984188370632880281258720467233069092813365179738966697075127139983595195877371797811784261293551148587034618126304890399457671543655825520641985675055054430334275490980682218340251863104265228127376949478462219107122532130780380059645123930889272878468029501048492995504239415209881105649637559742892679622520106064864181453119085356829918530906833220671337651192609473505249636108119815932394377796143467095758326790938962371352151467692307942691721264001897286844724426325939701652919892627375401976269885557484250754623245294988459777321636143311944501492257464411378968885463101009226387867947663017038014471957826879525672477531211395673880768984058998316889984924127075338068857965734896998843536141122360461048990430458834447256801334160640794465923303012243257576918124833083099709234776759971939110677981323981650910986397115439928666227626555566660464442818687837752424171913754350182044593748787950818906750963528136414976620750840647043344426918510689530455999874281667902098963728599598775579574699399952297829826939380761615734948794786120471929857556697214909061951723876751902021415909760809248981262646816219650447508544059412354410282103999274999842319776446217580470905654612676474800451677159440482304902316777568533590636154722922110082692830157909225281351737519651742905354114445230308330509167064325007684822073225724831609641858865087026398019285734525559853508803243088408132253679132087261536724482664837040247555792723709148696492259683538602236862827147536938013240942576556352142744822483711842237140563570391139110073998035065921181483465679579438685980392980987672767052007574839312447637261642582668669682462899199235655127683424105334443475919141832858023146882149679438765325277447496962558125784232847979037973432946318380376205646857141275313434465705038049078403769544138228374323103151445420260882807459837416199784851206375314786753384945971210869243534399649491761087724036897377395820208840838865759014169975844654405693248625087000733442427511337910146992340165782578130553813720458344022597933639033301715317987838983244353918230320466248647322774366747113423932818725662726386223346916057638240125177494761434131470477983534016726766211520900378064233721978374811507054785021643925511509532320873443612772630160234538970164058289280033627876718233875238824765503222066704109072265944980060026627423866487429323119738933980048267710369980519911893233245132541869904077996085170294763124495171624129625343041898493209301338179471939310183470473772223812552356284853036407845749753390135294015795777253504256772608091571139060667646077268457961342489935574301930138098963746450390286634158657414928405254177262391905710953284961478433833752620545796833170240930815435986335033987332436517567338768074096556512669050700779127797292739176669984980629742731480744609277410779478061331011877286012643404333941038878474078239250313003393020363482854009907339101520732555990594934980345711109573637410493591041382736785047533420664084217384117244518956348937235235733786895433489930069930007875619638953952571686460627589878244628350313436288413694220299694484660967836450439805820100243323703509993855781805930209071762480277714654563678549578991894123533764471558817627312340806302140594418746051414918691238262261565435170321729752679100343372716849904681859285697786017017836459754433880958133623999676712441804558599173379222343753130161896520400127606880376529210519385432491254516017850048491457307904661029721321715115019563892655497890353273219464769598350249093746969923513182748532709581520602963550014361560196889500978762092099399594858578713253110449577112911071433729338620437725664208314432467082476442345346294228629303186155265839744873619597794702071381974935145531180154244582116751378651515498964475963301858354226018883106186173985016875036650882193767961756542353472903502613787534337569374715072865767172626804314330217381125637641899332678548642065401048642506540692065887303925355012443494628611770756495130882340898261823602464866241629726789021358097423901009609718404166449508284482625702916533406440418103892979719467008267230453350204452498505773146322950806859759709134557539330887527566736839010626960858647280451780396872960897422778266828928432391297471197510683831361411252555810684359667319367819866379914755720995404951644464200762782940107859531377680140749598206791730270014634710692667761591730734504559437443584542326250040306481665059576800272105052936284438143963164546756225056812229156948069611346341900735967223685932837718996956414450912903502435278420837110742741173477769461737022631103731468231030751227681888095011623656974217957421412598528710794263611940464922471039633726400551951515718840744269654444403600184648782005360541867294056526355573724855964222304366819897549349559138011611416556976541025112889372625964812424904083154407326234682471369131031241989375732210656343629454040156562943833891134506756559849612364105540148647846419008293493988778260356564043308361682633358257070080848070325623668756685853472558247877947676309610227588043916128965367343071026964093829488204119398886999928800371784457949906132408540986892454039927353420923998127581414671981101218882488760601247568677142696606442909141311755215986724824397776855642205390358018052686942641297745152262612427408130327979348707859553990955842212266649931196581228003060791159234674133343775798575938267224509064287558287179623041621087260576011338059403960462800491011777662455836624173984623103651070849423936469276039922757254706604029734807485935763161272833297553600173374804450137386997418561635126464171230717651543030801857979858609410458670513088506030763147485279363296623014930403414962832606278214579074872424854491878762152796180260048007907216224675650173868328456568884919435700555812503200943143093999245318787820706671170589097663206058251671794727095531310933220610825332342741931040887357523250463812087120309849232365212098100399629294043870841806371677118659203173703159787984678647933501163674775584980007737953769483655814366951920555353654460580566573786316199572172905469334331521622198941335566104733739972450725002632557664809609259997559390337069318642121061276574695839697127735381672834273034757703280412789013650181868067933650175772638723131281755946664411538839577833951911787423345608480741276248975543011436159204410264301257289967224648380232913536344093831227245402073304455405710363426777193821689570370786792669127239794930108818165708994537912702159900029985599529518767532333718013018568430678535070071801414414418750357270947985981560405333159209969349648342500240477362671338739826408023511994033418504724954954778502440849195755854324018411027471544823344966620108986119052367828731922753180347706994124083224062795605512238092927926107935655605203935744602264597744277531967188050752123141279579950456116507403838466855377305784755211994405437833718435936883151738545050062953244503893456599437259390501263902101243747435334402071064783194613234707114146422800283576743389783469074952489590148931217203443675851522416437971269764520120154620302279866517048812695465549163324514439685059466248623000278363568981342370566582106712582891960855055317318759883241822024043596930936846754184110199148671364577826240145924480935822574614166237607280476288278362697380993272944419738854552417616986294900050325494607028517270635831637547172707110806766716998372170898474839591197008765518095774393255280538777908221241586813530013270451280244470866530041850985659792917934859303704572547841446073475915785202966913649026112559107948081805258141931325438198825984460489905758556753174049952686917320406589151893735701519761843567848812069846303632114352885167772350909426894691745275897724033139539903397168939752176396671812300005896394823732560654591222674864662158837597700207484870580187921181187809505255143210077447863063715006386467285848352902311426041040742551785512461619308870032975925521399884533370044661651450459735088061470550242201192430057927049600248333987394056678077371802947746483012961699303229936716853947410384694127558530900925330191209587603251407573542069683034383551422519089820741832183626369866219899760006948675094940563746260884559230011516074880306007087793106831760246236859986147169879208216817381039457663962917584608440832057200132026025509478254596280896187023733228156047873827726389186084768298643402297403866245635792725630027431051395168432537159407087848035151933048918426634200254571890719762281745222223023785191157507272240016194417551024303767503175847232571057497771714393859369926198832060443025339221582437589136885977959209183468924653393518523789161875354439012821179313787039965668533213604916312064336635886307088304197189564109391987812256134637315750879660358160750890854543746986220255475977483909372942245232917444415270293628355368220638432671283812385707567642669925549947394602387582564522644260297552514925259845276315883256843589469444688650618114904492420711504269381790063988710711470370897458918997905404867961917424904391098450829300082887507965631051499011420499860069305267128316320128762790525193608147132231495157843719197269731450046076183337075725447118839600111827249578401227045360951784868374206858320942276849202187545568422198351980186938883636134370211928958889901880872632054557450557500856913871882090459981143251333256402449501065907708363772145087928786845363782960800992471389400521629691397712606127566382332485207390627968776182119982301194057551436051211228878816631925856643568728788759711234086300807213754329162672560465226884290764943624281978159584763227854730049375210226802609880184568526883582270368537348134635882297478870451060753952333644917439289053839414026026422280572107172674787975707058855931282249231886296068984034557208020245166860799891588991218274278939844383668027754583592766496041186063236280911970086114463180399389605612735493384104149876015252149428442123296069929750126454529017993398098240620913621062310076841813321145689580540273985497254485055573199512878493075407416111047124623680754099751661195822942693166266599557529038550571460648686729118810623588069902721301136849542406031702357977257709272503640254814880921665272300522411037716388267372614679923561427410934118448015749747692402109783373723907783649439936403194507325989900759451899060080023298740931774054460447980679054910203790923913349600065433121306224791774111516982043456665170096565316940640926841110133592799776529616212625527498855176320754171981209971949136510247960426182744559673610204874169304643253584656790185784986996181860538766843211835855630546878103270657679012068325957383987695022060508834036050099053067585040870765471145642440526078269156820357715325509593716041532336956339105706502665371242596763733362000482042605739999591451976490727817793495592119585057482394511721684995074753383167725444637321822217586933026628678570094749184822508504780240867286300726631056897472529251425522474999685468511828693926375738850446134792332831029461998824403640776297073863146429966327330398431699386288598272387776341806052384703829218352023363239196826135417472402071736646917751850489913712434043089949131967442578013969389925291391809657577767347953387372538286433512139304652016803531343456080484180711808305650503556566036946818576265043405978919663469265550063577842518238725162909620996913205302170093954660178038600297107699624393546673905213624251578376420188525579728674589923478438032159410850459510486347024858059755544203405005813059203903793733863500558658941415321975921179923790923471505711591334078324850659393309627779853675742109452691463039141910197862740339855330441258715469372320287819337632221134214326677918126823543351661211484446679586902640199824522237471588214208933865357336238371200178929217118796186645198975387221909743376846510287712400222433361499979499083819274304452627722929649581633594470167457573097156908627387443382780470670130571173414828729582133282468504198734454667230523509236481531350258973341566260004428356744754389101285124931591294685315170775123062442097492485089126150480360214369971375079256248617162215204256648842966229126936051662782116602550709984700259365571706182812145540617158184525994308315703668489461775583918857343242150661070791928659440338372429340477830087341010508940879815108802360195537973096348139386133434759220320006667021313097181177625332074005153452775112353319750962604725458780348122696726510684409659551546234007001249551638193209573684216706849719539484297620608514707038817006392803862952656181561816575648093767955357125482480905776465908507933840712908259155546642174700991196543685355671128231298152944496515644258268904991989093813885438602586897183793943196259497816612921653386355903893154098661332544435122933026282807210498130034078219502645150820368881126547404968314547540297907259681838347954151260429199930050697069847641934347063950787342142548242697798299358877484177350031682415327235176947391577101717710541898167530201315167613298110091026667847452863322155735767854508630081409879610524428953806912386799537164793044163557456215363368409880689790415778665340569634252726136188728032550804137490423612434315176604687127068971389057799750420002354853661107819513974265199477489167379681335917753256444804152439033171663738511564074524099105381037488473471871445588340189034116673563197984377020678403086559364677767638145601067845386356758930172519754610220700524360330369133371428564745904975812086742980050242280609103839161793425058004247375567887859397652050572227539710699881970204312007390917195382224987364125800546112904298812621864849967069792022062953727885633068386066128816003548020081796851323493138814316804049219142153815879834298885664669049976706401191229873019052920689279906332166464148098583156963207975124022875649305124824509205626955575037747026474254579189940804562793250236583997869302746576169424676946580116491934693293998235273519080354391997676405549882486251196304859099973710232807918140821415477564987074031625265683472869507056231941666566353512633834157174314787779578143699190517277198761050713690575863030033276199676103169693011529929876537481992097784038952679755523939691436048125649593945123584028429471240916837253721603656622473981259491542002876985045883917362518133065645636247498184218679731702650840201106133774891759159027299733427560691900441094055775334548807379469165222893513392694633092793552039930635375531869572814746788326514221355876026234799749380509550682368888212280321528388503851559825450990872649597728165009750428468465123681187798456193745093886783706358031304864727832606109551849474731797190546282764175763335050150161122016599790663322064814327555645688019279895997772610490711699609982515434428543727825086055203960030460811120947796698197069793614615597012884559552012835529763944029634533807150928642434517720177426947416320789218725233342418705916651097636590002048484088682129108885870702226379399141072762924944977741989015397115631966939723643637711550595165168517898313916991211691801158955818122051063708270555600050130516345010099441416823689054990875523273830643615925396480449282137938184449235237724491147865156435295126447459692356383367462063195926101986254605153246256486835266928602362706653907900589954095654784755196876546137800556397032501651923002793078312308940517906824383902347357638589021968700035590541648149114891747837196072051208869790922221679574382386523980496188056426003378057200316776023790584599029235043540379489004175708043923930917158926010899852176758788924257315050362056077533008405984941658191130861362403795103971381125961778966101715513866230518040349389344500614005458069597718904307714163034204557646141753096414752621047469217833960787074897081463657936492207455766507555562474815988019187575875003504605572082398711377430527842630716702370516972099889452547574744647257212073300204619906617539070660167273370299353312895025010100190096995943366301856877429452713010742898873878116973524577086726702641486002936427334218457550653770489131696915512962686984424585441378594935083119946656123562232377240757944142105731268439488223273234906971592794048837415735918688252429135329192598473831631862059141515170434382776897698577385009863574423081045129709702262352051274416008979104961328158760565456105995209046171528887829070658380648482414287684621367359324032861830865099961680874582716401380134058561264370157072866735246694334687975634886960204395207989748060819010035790620863756284945571346889626537771827708433701259523992519330712762647778198790736710774708188582672167565645177291512513420918381545789705182322545849764453503565217150917694009828504313966573449197587186690014225637752997501544930465506100975071091465362395591790017210039291466069681020450451184615710486707774290835766648685118410303327402904598923783217394762995934331682581170046324032413810221381811080164901117804856416535659020342127505948480280579331028053599690497928675057459738528713831931327525412364177121047527607537208713750841635094873791917690014865764858651169370739507673606323207705826702993171193602590652538632636724177682826730756750822794782352304552969617067466386924116451925124470799685363239973500287986174843215336806959790354295861061759545694555184319534066539609890094454934722138629034738691415052015074049941869356851442252877315301117645359895392762493572217807756501803548847490044809311177143811076050712778918173845781707028625248282876459471566587616782239146245020358499729620304246850107252722092965635018644466742056830574594170558859355971294358614956932026454055967953348862467645311575019740472198647135064313113533741836249665987947606598735837891729690668825502153002345277532742440368925917047826042222834631801907514613797072577356294791398496226801581657867918820952394302137434030309236631070130143654660569214365128286561333835646390886945626840454321506142558097069274129328468769934319421742740148024504984312460486226468411942780773759107563987061011820654670494419901430411750698635591519255822229868795397087379816254098652004548668809721251573171193073987539094248359449629907079722230459928435230864045945789922606030523984261018920191633103562677346684497340779157041366192648164547069757883955463940627769595208078369578192796846047372584356989098652018925903671623835943913655004508273209928964352426931651054814056323826016207155851287982500713845595618182259942249495101199857344613470042898961650655992880920058257405253908282961856552097455326204806951217358094815821915499444158543519325926861254681172184136415778394512820295182446078897486727852652575701597653257951067662389259166206258357193832855547590226988032566975379218791251015074558328488236475532097529726705994924476767375947626646306817613651918314470197660968650531364973823203554922843697552553553867663983955708123450215694276423416932207776584655029709727953842749630697275008947677231214035085928793691162336852712745098685862983357724081111546845362208055217494456028987434542249402331200209673591733133273551103206984956622623481203427522237364533729300955938734333908495177873146765846347664514160136609666691007486481625438701632269591244530223624847357688798087246350492302995780797212113039519176950833902537365015902448767868959272376753531543396078284996126440378729449683245584054943562804748034589165973419528694741883257189937339554588111693547892128863345054154126560543831236753329626337528101434100435898379999538225351583479802795173330022784595058983006155064565217093610676890223063248821161331654746660563149091872849726127278879504950630552118076090157590266523407851396470507242335395421367955059765869512466887795927379770016107112395711176460356001724096516653355899018623233855563639609960245406780312665139229536297449246878121504033529086593006441750918776577504893722461168863872447493326897687055179523656603350830412931901169468857396866012371782547071801018648741289646785940740461803433544991885074349096570998419634757317435364656750538632201242466653109641257892804641008072446942837947198432733518611703965467960148560636869475725871718250298264843457178282263859322377662440299545776854142584790284915507975512517383906244364037700940237385594011185065167168799899311453261286053635074798144637441013222121628056952137155582865267536058908824444730145191101466434676533931856273612601982975886574872111293477010883498492307056303483326864276055444414494878907350071055155169887638707940405616691787069953222849707428614584830973653625937090901117977235076292592993227579529375023768095984301102432442131125021597322677806519320252747918636077646244622746595694663810302772825245512960716718920001756464297242537264985707009357899265983513377355509309435107817569813215423348399746740392064580158603585745272679035372680995545146121088243052183089557995976117651887579956497673113404876393415389774019940846840338501780006384592665808083006939029698600707182160284743417264491242259144146298536623519193047072227496323227241524036159485639851018862595314171894208467033048110191265444344628448697501499038789871839824051693564656757926565349151664383862101942272997840681943960458042479787632697889114595946741261866894967559594841424834141693804921661398869525010402870998480230035754513489527296319442560935137744363554157157046407889773313494812521115846383275552290771010577193645819835156198682601729057362331516735319658229037082161086814870478554020155026751572441081442963300645089218940158605265827913060999226038626920255580377847155557400471431783520430874510038175315154706555107777819947310872376242504608347714328085581312111598320497605148453258243029976848578603269066287608336159221338331991977663486196471467710157491620926689635204026241454247176898421300980668966833749593979353775289047029312237538849341451272609805713033022754507875508628615654215668872711675679962542766129852494267092839960552648269186461167940738323294674935712791749587919314341699594746497481520081808382516817219641018831953635648840025164410600447321544012467124920819544597549641361848598141967829067691996286246881711691917581970307257151193443682773565175892200441084531538758811715063344312550893039712412247151081735498843484469730856932098094019171548784451147457596467802124341578771757378018285675628019331219104744505744963509316237456469364449618826748920665195902750097266077828241168282560102008619699947930219487276515506873937135739970480339463644467014953681873533929844367061321611381590897606259728804991354442552603655912915249662137451968053832185180983452050563152193462944215436174833248150128690234567657688559114998100949352372193140371639810817335469611980483934919695220534862638156085612424836126218021971016497069874029618553431899475641647196919230678132647757955932134795713036831619609649244859058993302669531421399216447711819810406777545091756677653509148686362555182198254854540950288488102875473986004326093042380472666741205721455120492797668615039116085750582776665447927790421624389393627066711950947721402861057909615234812109307439020680253381708447731372005060434140222174368122819041660505093221957765249552042776631682323476902606750470954407687215516936052259079837561400869214557571254189871554714226034087455093741683359791809873501114349269606847650513406902954588597600528332557974811523212317188295614917138451729966773522632868834554661511550488815607200725188900169863515610387148084266451197826250891517388857336799180259807546502179900611018354241727594717235878885984939800477665257423077994566070301892360558705867152275711531454094560116835870791081291745558388814315414158143389804462570737020268170232052193945910570801953439514927697788430640837116552054112021757148083633273641932757222250561935814920994378826912094020389433267816865840149455067335317437993749498913152667840301232244364539538271746532708954288715567232241358948208087438136284592623570706383371365708447299117523830617553719039567485844216300607264456850959964801858943369304079519810343629607317431262505596628261534739358742719563914552561728415449258742899525968888652134651767060003472780663687145924701068546767810813058797898139045975363316261876911274431893963438992809032789865458167525879614237727785968718451066427887822464987035435940179492320278066982275872485327688885300138243013149617869914383907390100522565009431856781924072568509802357376687500252099306918707340270539519105427325083158354038326925514615942104846586224821726009192300003629223965919452715634309786291113167094439296289939620737961446614981183377393920755361958444141063493191847715428146887874300372015815532839505049215060540001274445360483397110534119960716646294844346600560078535181610132845311721558290685366505777326827247797751466731177228959148226555085622115231384268477939065108848076564692205819319499785004703411364593321292804422774041101626690385514670082748026789689784833632298277964274634775439137333508408278957639435092026411251494588224193299993184891435966588759505230526772513689628698371393341201292906838432430858314861324776654342933352006112714747196421217409075400028348868159017265333685293955907045713263421226796420685663058258917756382623282092395473756146460699260746772754926279441148726305137249384706882352215215243976781837106655606227444008788706164067542520374355140738988879381938648086463183120840350890334608851391899493965930125647328693479847943102244605111948764583195043072938427745960794882814203940037977640105899938471171960961337408775273172867181108595017433984207160544719601647431648481445553699302038823303498681782637629838827951880637201737205061376045343820734675172583539296263927651706858341902552714150377547464002875067515887544199482618166770127993005890885989405169646894772243892763205717083839153697010457667943835583004855639573675075336020594265220841141592156231814758760020117413733535605523438297510134333055210907440339859630912762993014793804112560960426417018517542066382732709488124965969877387603991521046647412494985827069767192522432615808474547852227072891948482671523948813542367642265925713786742150098782344770537090915403393866296305509975914268756933737563371846705932361276576257943164947132362123476047360692083000562975630621197404177368023280663671771344843239131258139782499815562464979466073501318187875115583795771879979932406722951773030149787431269446626463856277531984617183900082961743030684691971443845808598407284374960253011228061976410460103782240121574240026787057524308588060177874076041938543139806665328821287346120271241185691552073481109069457792787782231729380927656935314891403324927367885155636001342662507586282081543837879243763069148117606211586487307614516893535548278329520732097714455777320772661238602014450271377064883563120336895236424367577329740060376777521859510596382365924646728800530627465151464830375319451072857669632956110747644792777013131377694187874586227847881977644308055847316313596737496678921071236883448343474854063314501659122152861991456010625338852306952274288317318603913862280290458762694992742121804952758829183204436794086628043936359661681787131790486726294890848651871485808559356315800404363293360451105196069632552561651157127017157574211056883396729911443116737008266413326040338077100746532738581377232823055800906673630059966505565171442385409529397990984458292940200385045523119038825307222241079529267094156545889089489115567631445425390713439022040455644350702905886837374103276457557362717336124763040640277511429521778217442192856556680267803896393062542735053485834271373499228980661829384776209370302708496075283201977267055193444936009540096161005103824612849570813755335122592938692162643064830165613098849746816563136276668179796536649834167689945976653320499785785786640827452005018342324896069485385683855960721424660879045047137371986278931227838754437644274557276982565013627439035875694745058980253361193841327681388501695544593944846694160175742881862219158767946024866444936692209783562596325688407730326077492061057683510630189931515626513723157151815497520445484536716061822229270378141043902779912802807247023568932916105478069938384952569217500842669910089478956054630595055791628614109785662995498917340811223509987897329664656358764082544922866560696481928387340183295729582978200657580648836280447830841889447181006773461908676070652546696557216414173669511960967230050335859696734582552822949380140623628125213582492530440340690362798084622478468819097137228469155085334874453262711273253232794097852594019272337106044715453363434606384383192948892782533389702922271621046360174438364076876149288790339202816502334879536069208919159720709444941129401743675992999698078812424853952881193598724646331630941139189381006757073643218243713670320577709891550867898800301102914364564708861377019831323102318137967892639733393902157751397409003807196837534297912478896672897824670695207632054334904413326276815182373261014056967270672807375924795702269024595340483228596310826910597604242402700397709572910856508437626389246927517855769885856986820809298193304083284733699490252143453731150092586372186930230856350137211631701742240945761066948914094547008335575380995260732479601783774419690967493043582763684815820116407185113800417395503773290263675897687670176608305142857154040441818830868086397591783620871444740705309605799009602569452791902029305633464807888101612683761039884821315113386860026768793487157408876958718286695195760521890178523877538817846140953605645726264631580283817823447551066887238784443551527087786425573015015167297582231378027378732031378916024074326433782295482866814687132442055824258964660761434003798587978561112687050925653114528485971134233728500649630814610335805115822185289780078358770083981008608559924861437640094916548055601963151628495616528097686985830772191277365015134270003528396516975985760874674999717853818566491169169004024510988984970820438260218449728508813680157333747001849201297762939324303823034285483956627381646261374082856617428785813640434615763576965051252029599993833033700033906773559413509900185695643566905672910385544876131576882638948631380908751524394879678020391352606252234736529686541404121573069894328445819064546976996028939802154041873824995959023817776000203358536508147179036114627516396391461916745238881084988753975519255327770721024174819588783063527832479817428758195654529350795734213671192703560324755625649980063823285314337553210318456140524817152153007252602706918084185703145257518181073481574567782257719805907962269019213789515902643296150900887335593759612348350437935128991057255623521223875819269924703411387326027072317529496570398231892878865907726903578891931620003304634025774706300187740944725284463886481787842971322143158150423627932991637430071661847932443971035017046977284189028411051439885980657405850376299931264320831347983131353712090032905922445321327824596664838135093196228947246361913645309956722800756542588604227822903241689911482439308097535762671204716876161886318940426089028151819655724829844561083354172241970900167088536845342976422727803387659821975101638981086804135512764066692185506361720108673023084899964046918112599102171537426211986856146590407867912360620284051118304152597164144416312277996400157713644208297266876670978300594966459585944685801044831362320975685754499899997561070621817467755430229044161503013949959801520530416911601210837080495097032760245955104109178797301179257115001136918257893336544580562955100696851868369778986325896371522668623252886678199313293944720344839966607264948963320877071136867358593605556918639617426498025994331195342058915485177076441696011917802755586192110896738784565267849800857190920341140446616003152726013611855153468571965392114876790421108782590586721932022477731203704414176732053763975554331790896297347785860520666486011541893769976751652560537404145263393499385053005588964327152466670466195351552465817136952339173526627516264344614060627275300021248957184255902392312939707137062618344922450896251179772439448615687012034696012951611527703224023647811288009107014595803009130142912585572784008650674804111416035416999401123170636315678533410649277621437615818633230637464573771412674197261080578744692890855454611638402782766510952068611031918167786361718215212963399150491130745798840816582149953705790734907055045694608013512578042136868192579527452516359911740354768868772885262960123847671500218551854542368639676933241274184828904947337631225142292749432428052487688676237072027363751780627134275246206931736989543134892553254679478163280964169347084513373476739418827935560183971344272219692900021336473038924384682930954438123577826939667730710387775052406267767362281298684733368485062174740559964735477333119029759959354813020604509466998998001510675557305337999129147833109263702639383111897790118334657796193077430427501982575713862342886276524918201007677961992324618735193669399652664102298566937020179386091688665973183614086568978454955288464661865414935920765428107104750454693923624050089759295294163627719449128878227461933474188268612036718698005516256174472348262682856489862809567336742410530110306039811495235001568087872262029169296776428566676066790456113266735905457651036310273053260422398883129943397896050045242401608266284058723218712100682675068769281567374547707997731842570170616849415403527075439726928194832477660858137070189168165188347286479307431053618675278319397673728301524357271479882226332612174879251227450816646579775665763194681713403515302233715571569262189561109472549407030306847362494966083734275114455260583368331225504362848060771846983058961032195073178891822562088420246238279673764188807083238512046688990663897709421259858988373817027099088369610526382359011875393061622465197205137839565647293073817950577673221293732940841874827621432405574900808623391052642749419934046739172695897884858233500054730975540257858733031160312960171568965657891744476565913809812777606254457696515052089739363372759810487900565431405242437608383213138128346735607950672156437773952361172060783220738780508884427451842374193385523548600082246781745466628356643299087925074169386427155107414106521832386572420187341041647381502650611284699368472453510603385949643301838110837254366917716259892916136799190609587293178814637618403178116917722447909261591564105264955808045246925028713636904610162341513341046557493229799287800161097479782088684142086659611423587952348785870765233765751622553181302044848105556393834705739562146431745808493950435890452398159980272032759822405190429910718195743787366452616521653412171919204275973846687350867485844722226481894389138288119458314542232045722416179954085869232177294529765220368519200634898420709611048399047626210300576037229114150507167478972550319651948808211617731954133135573629797276998385006670891040205858900288167510225650074471087115374009950295490703076203181838816143195037106624870896622341774681329198957822986622487054534602576122024181377248448675042085171551777210374197564219450678939016711645849433408131343322262566804208940228358930561567066058675015981019703227798952973136412626363777055832513534106246153689934115601707523436782372600018686945012006133984014897784174195079050179418604038037649334821825510362234973160861937756139803616079294399439672208016581622801886145762653759759268345052084694727114764682406175827783600773129882985190147977039023457516748060180696297826192572433441254803684533962740380404197270225574284659542228919334831886025303362471375872935499504684265390668705533891671169262039842569029469732299550113112188071470881267918490123213366624162451648999270508468813786424874053976109176914528531363766839644902875166635339930437586826530999639220900410002515220283769509623450723975900835156870198506212519565030417668984601251463464416152767076277465659622148980007580934905476005690582989826295833093925014371179232747156602517673815448770214623882367368368600464756577072091686839978143981141658137469513625200577132682420531407134759408145080675264016595817497012884543023203681922313582354141575142622123805853777686432564444016995189840743977689428626361874255605452674880556716500599070874238157237919845458159130620966039773882573732118085588592835614457077729350612074407396709692199121010454367494351438224497515197198540098790671308675151713086588245159019798387388085488900340141396213722843100433407558759698855099271776886204258067013123759585051627067852809789351912719157226336980232061321358161412925047267262786309765886915238514187839442081735314272566403277451854478883489305863270109410331966358244672555916917149248546670627951432853365045431546405810521485193756711570474550392284568983590406057319258820380636172661862150404686211061762787595862274085855476390378860923451020836734733049436150026299349107391351755578672380613969709083679303384589831695124313072014725175411205702883281442010494943348465475188332401133239555595851634871677213618401810814379466555808344924931642264968440887188025792568398380804890803888973491461550770710310736962966789385748106135511868103558446677402656212597734108455661055573248695750251374086569757516980442091222469817498590887745802037606574045354789231217050716623658417376935833725060516873115611569142726752470365090952106999156246784948030143296390331497550136066718847141462128593423517948831878412688372359380672952098848110470465371882223776637149721798275119653437455047551029018682298702363447861587008109739139014191224186304476084172809898846240149872493584741464123522019922583960347038637228533616943712477405004688457115831197816391493350144145899003905048434761928524012796162348390566161188803805164954000836410461370783031944143370621610638142867729352141970327109676140068485665467300775431505835363465870072777569587554612148239526445659052171823071373145556416885109809409882622980193948528547446357026231924210007137137976884438389290713512170636705485995794611904657945637624809353162415688351467836881180790394858329235031151085431383909408255916550282655460872636708475205254268590067665178880955290714572528425071054370530504314192839875017981545472029543766246077700593124145485057486990657276370395977521456392664374421372724577277122687403263167524079252751493722310510860429786481726360332152427423314095702633887583683485092851545857909207862827765820975898210738834182627984660845087198684081343187726015354131457182309210832038627319197861575427680595890348611562980914999897241007429925771739841414631751778136840975600389366684766794280182360691414630016794742268122324918586691320525934777271104412283201146770092853986872242468154008542008139239266185574858586531220425554230569311290742411060541092210719678791421075509338999741445334600892585136261609897152464426130390392185780709523726804834746427162067736578763862895154679358449261559971059026893214788338120364262217631230389462188537821052650233953415490770331821794159780744086109114431003653551041533342304308243541419912282257102923016422487725504699890463688958665973737738389164483057234068385541233627110971498821531944196423052864075842143511391487980311132458769368787902528530062663643955622760516014144418721426628703911312943785141735087390918443877170406370839854832673696053571521931626311670149551590477816312551403487815918749774530086556440399364589990157953195649830244881123559412083479003989091545358713403699277556770333841505267621300789692405945708465663587852931665064558920353715370717761740114571908714212262924276945350508716441265184688020906773877951157850261246110538480791349275427378703108420177903750083698113127295121674195172142547904248005491197325224237023403345412337204068001176639000956271830462640971904896038815790164342984040964085678659114384955042962210570759829860801762354668409736134217255669917445997226018538019521110843160571781890997305963595028213706216141728424762116656382964480928892117605540067016132466092465290440560093341622364152930145479539573265624141984465011078744604380950814650812599115627140784166286535217718693228613180434186643914201459267815076680885579055918659221683832664232707717994935724739963629282798338065623944138738035492420617601797343354790696332124273523071587663751008593758601584357416275169996745297349825505605696279701581644885310152497956289795619932269858298136017120891245326903279126668731184917489905075524589525638618818534323468255783425543758490739564306057892075484725044382598615021222424581654016152774267765543443387090562325404610815983678330253469649140576871374770946255973046203127751697189936828426710470625830707187727696116531930874315317029012050478514545452204497111041108623076332604429365669768299375519530850539133062043345697087932868200249053705557148219978457287187914224400432183652442191973636804703702395389774835171747249901389531746721127490623765963045452992924416620293263762033001476385973460555275907982410603837537736040837176290643577055877504833842021876822216296957061753732131453990696937361648651318982083428351551949809641653589527899337979486912181914929779170579164800624525724226216619166922518314788633641521961636488812798666990551978852525927711821128946322224297844962600543803142474162588439184887203806850327508971976902728235559188684880841183366232658151701739279099686914249531886407051136007175940830725784533303429439883862540127496435104548882285744108761544617034031883952771829584258376526431505147125832516096243522964503112857085475059331699760071139683003132868268580950576951382661647121497213808007462483856839565596979114279144855913236459419302205719770205484433897296590589087397548960545082092371864690668322760296010775382287884996400547081780332460825673701971960035772147366329911136084457705108976141282231979986107940590758835559006558634207131210070409873918943794721855715766092913614119507596093322309095856918078359913362418184158048332974208333612852946365363605956569607231022787622536901946845509349668774519337489015980719414796699383706762333349145294448766216232377522968391220371091007764850340031271265722090705696240377523780131415483382545140245369193060488063120299261068962161153184356320299174022372719317643803122876893031210845708549658459036340541801665155105344510559912649797540203742668359160279720686886759532275403845096217554441548042396937212527977917988596144655393059431256695740469843627686776531220404763013514119215422876224823125674073905507302570099059905495164475759289576187610663573365296608828396044728207706543975826424543826110193424479242436702546467939929513027063551059521385094809621034003969456614898077045775116341811010870133472398747988343768233348954372288465082649620802929306674326990105338926949308051594185042971433840639606080187347248001092885812283440727717156142302148268576645451712909807298605323373160040279308098430924518020555919222541948709136793506992957695361022447701833795993604376445582267433888054558023413286533771313360228274383122766479939757704809198557691777257673429196501811567682185538872703641076948226489278949651329498120354475095300956094702950034024836211399542563056346108907516202566897869892335665803059624545633662542036733655259309633707003109011145094640624907773048178762279049469491307339065316590710763930212006368586232942903355760562414486286074364511746066434439971976727740934025704453913210692359818675523948534373727789410123316364754052093920842568880667140540038207800445144772664874696239106348110778614736046927868189601781235575681456832244572178911601164797788987097252938335761525170312126415582230259213608901896283927496696823746815403838011054743465929798551057395869247239992236160610062703433695568130833512333139842490783774939233254054017751941193208389942549775264569382811162186377668096052985668743238373269761416866395151214908513784459736375094440040405918904693209168870965511703599376744451531114233837560098276526366835200797029316968237022532566490998029858798226794586570637502063254225332354633028153505017129424497479800330439853382393635712820171116856141285018821990907715148762199717745824012099648477881962406214297011274034609217034801267723615463611163116892554315562011542518598063170431272881121845362231455556543020341715136477783212680920037563077332906732963249241050480650522838348686166305335992411173080631080030169816675960194638580941278097062588592060304415379623271318500028168340802416800867646015092332669012141067717346052133353681421338036426639001526447996177625749944299302948781078166712565241150985999983838928407197193304137298196389221045748250105002736104631159993108531423463896492838476213641042752377103933838299023215426767676237263103732141065661061266234047822147337902352239336032697606499257834973095702163106197525503726730713053674534015133548427194877345819947021832028388635182779343379168205794692035865735830932386922530968999744304060825021517916603074032971863412007387765541248278428795832672959462989946578796416729933311845732101506903770231333859558467841705768852733262648313647556874280146319479390430362724164592086804564139351534589843230568225683518879361681422929590134085454875118148732421493953357237165967668178452185724774028598109383211196160756422876234533170371804311166867967224443971962027152645557567609146180649867961592967719439259391007808467843283213663153059608005253692912355328288631035632895269286150993205751748529944623451526181387029646767720905683178776908315902966979800671209142525708993651324946064945529153372930395144274951674241375213115978130351668011983863086311455098431921040224706079716853365447027894829875786286398102192299574617534239723532016612632131676142708626164922750910500268158926301263827712660153195813988429794480104085631776855485574424895278327415344024236392148778092130248767215734901675435192335556111385702099302651444105237552723121779306894685960869615729142156109855171617187079440751703858715723215762613755612586649359194372495911333209356186700500323516355135349962612903967270676278470212247507857421228310683585157753749502079472559132408070643933777186166819824010868168074602120931408463489054740083704442180439331897835341656274133426081852283803522364330711905231016832658447672247867808502809727054675801777374510843774326267859495539467619320801237041944780383610197927828867589739197883436421792938247171231663299368695641525876272341774755871736752619630104197143597501407757655564849604602518422738768458612888675190382187772521194905631965951895402661894271783718398089094453579214721974778871560025655457413604461966445742747300154376717608941314329581670081917894808201450719718269400527125373753771874098557839575720350764324826251944264545182455754560098383783060750544523698954814547409752588324479855351452902498377922478080887146452816854920833545475594166889185165106778872103595826796204711722523280017331077105000771732496130775684556903258089707105279431114535156243004942276266299300329380601750507012742010544958068008125479272381508119380673585036151467590255827650518024171735490016577591143918081603709766941139419409663499856057212795561448662075590021028908825637158762569997608533589011917660948334948716199748890176590382758107812178195160904493688957569149036691918290593961063778966372507313409268808790532397697717873214900185700280507844035635316289251948907423321396846594810560659945341260434107846680122463568665603332509189373988273754094981957132801963304830996394387238431225930622099946530159421876292508004569856614370494037012609025905083742492443918289246021706695550815332053376303785590426415761759524705519064257498671158294040984456091822032801410473984025157288867611607454375332215919944627146184563226227990663494038454478939367928152782447456657950282225301168406906815259135804241389372550537731109754911413895283669912283930474910022720085489227532329213417564125472667001230377047806250801199718012170733331624937837939356923981326421204503575235024284335818590974778452458027851266718561659219938448981640890946795997829310440223560213548800555279416282683488841780316299384387710571783207933195128872213270980562099325466984590066368731983145438464025946914515925109478692623505011174249787909338929886362697092735517708655320499032558297465650853353157852188265332974419340682644888855274025529812981033767475208548164497699133713438010020407184882274617568070331048284153906110383934692376157303800085622724549885308624224856906116027156279208548501767189742689585418652170664756276163232727775809869470479451724292469979510317887198226241055671825938136574181224612807293555414396935255421757903130840047123838616804367886306437928609032097613290039045694747386669352674904203605718865341033208530710344674768453670194321348773713135521926571957323662001511182365263106400818348820887764857026355955231588282159345519551065857474080035986280783462491698637461100087256680031644685703551884488274891979171517980687216186076689691626158638137215473630788514282163541177431905958125161015905308749254859060394196751308579899698563946207472015726020082285363472039097733896813842675568366525098499976497164286377794252955569014721191947548011631225266226324803048517733624613401839019981135297923554115829304634516265666193244430663154520302107310095757281942613316584198895414675507744810479867627274622495919084800485102324932647492303759812872218902198176956036180514822111737902458413461724019786765302879498695697953359460628836127109951641420128156795580539579815847846898207354850863636251714810094989000660422784695394049722476311148817512261437737077608152781703204498098691630339759092429968013327896624741128395913590301202584110179244806906391109644301095428534711620518302776171966096496761378506008034686977453564063949168729226493033241787744279803964695619595261878714474130749441281357305203723619195091500268824064564430076170070235089295505392308716146505836705974064941832822033529629941826383768934925011263196431809528642471929683245660894970568899736336436725434737190596929200468593113784778351291978437194366616846311154086794989209736003311176626936999292290081998216998975305310984896881876001176148377788445915187516425278542856130574515899737081312428214612305589992808338366939756722301658818199731920902898715164447682567965386689469338249506182950534815851400831541973555476526943992491635404339727266748026596723689526518488173726055126186346644297215294281837258256776374665138328509368067897197754913366354949169253870039821998228924908872599382589844665513629059370521165419773124292176636187126248811618870990818149333943888681848244046776126956422760787386574221641479607274728256085362989486434133236891964314714432072762676454080924798600965553213202623333162909751939459602150390167907007924350058123757187581976858030485584213860796619724407992485012070124844781772359254695444941836744447889220625319997586449010810187316454730619590304369143292675520256229540106549051112310411135450919050709824157948174016512921280462371796906741845245634225458496764151145232780467705906829863745814644241242135193139023783295139978393187322772248113509576901176566786556787865467785272742180719424422685214190197835402103534341932742531453870693075728092390304434810098808974542843756535320012437908919668916903479663273963128634578296250847947128371579931903120792754848456220847360442472795375519033181742926039006992319994542127067953055501963176742242063045944223225776703431562059302904204102990572769736835077376534034707894369859133715777831482637212495601745530585419171815400520071993469346986717225633462868051301308540707301437836584934353092194359270088407236496637729335649565522598646276373263832704941221980443170812420549593415819368647323412663153420682410559767987237836238656916719463461492526316701339084688928412480975896037229537999271568670407265506846282770705398801722771517753788873129531626993946423232174004043100391085352740892940001543407814595657550915965473249743573472716223432227029650159965964323783266351328825389280049209142635455816605553617798865732634949289561390826091797524500379784360661492778520782626194257371322954783874995493017132259075513893981059226003552561890295673126950701443279773678414898011458236448663598201628384922106878761538409302071063894360610483087332064585571362953772856840612832470423070239511979999882435284776109649086869991970390629168611299480551258638690292864782177511982839743457618447186347641033593317184937135274248730150831251648068847231088951091607420584015526069252782723097682017805313737067679871778683190058965784883383993750163240987861735262805593073926858127236820918897409332029096269255866049415853653371457550961478359815010804389209688240652181070152757047414332173085420217937624487624830779803171352499757245263642117576378451730097636850764728109686351139291508297125909123976795404269376153569637154406674699719746392105935859708998120983425356369489639665219677569597716815236483562095138566272110171452785229008195590641007806104477335305263326595914852387138005774127133151254116632982647928258603843215294450616655809555724598204306420266414381919385080758911514100598995719990083806875445772764075254003232241983354452429753307049043533542933142894522168731622779321601179656087724397057372763086929436293484792410031459586472183656105445782619507710833260236728837295031640612418734243444920978415992438759058387292902999962806347217036945609050116846008901015151982207009253764177690926941191479624136237985426753860845237430628671708901826451252775184263602703860914648694691055046881635025862601889107325323249383195776448954470480320637904831200829099663479621144281954610300759188293793922431805404558651386471135286287631055477542701933418831871423855257456412789457657215045648983579285050190278901120012812021341145033174324400433817202212562231335112417656963146570352220171049660177334453696852246718522479394719929427883743622169945987560282752790584022388606252757212634106154875189182886627069575975847464545250181739707700275748362598218902379273970550603786869952496224528091335336320722472484504014036096776180616281108596802414051012171763374787866045455988877324485101041777089826091149506458610459660725088606580681640845612488069193353126155239141249104173067110861390510936744398137423209674857569022681380584815196484453914787397762139396289329372994226748021589345298972482756875474116512643172606207146019181133394448274209974056672300974770532076264604752248005436744273115233526771202461820272209135905906378050986971401511376971860228332422817749921448641541291036005561852001393229663935376742427053089838116305786827391715509196379861507026644008896696947758666332839488958116496155111019117081209257282713350330204838957283148368755503342422597257982063004146183038342329107005228831921141769233037538708359327483440533517948371363748428728884909437660112959351585934956767808808105913359519093174384935357859367465905362018964216527515496323006575628754213724712985375688248388643440340742726775585543958914371906025211805066620195181356220985629713237888777405737506389418246647903818176036273028498310026152403638058283435954852340055920760326673127568079436066840127565978861409761510961949767160158353573244501092168616731232775065151293359778914417765810536026018096574695968392043339787670195563633070615088686157848078111814209766381011124430808675398586971125410924698615009254404321957081623267393652866862416158973870975655541378712145090629321159215669089426883776515525541822594745360230338677899877727566321867170811515085572359149445753289914136093374415600912345118018548023274846355356172179058507830307982494207637694920973281030617973524206706444959935924471771507525441868122220035666031781669614894816776183503776427655880190151828073296921669416091207512250658380700701159525157275477167621280219244134428902125059637989696375318932096715042934530602280733458753342264908997484629613749752396214683120358820945055019919002343762926115807471095145757792076026944546674866557024933312937945104235859002491619921566366466036613030521084976371090709489054752561611830702093797158434858790082865647250265697374655815242383338288122292541308609008271807300286317422386171184793773407691690028476606878537417919395182322796268210338804723867717038125073217212238216161162447453088589555052072934209705030299141447201389038523106882808281174464191566131313565486065840755364874030743566024596143786465251619310358011225427296075312228503565806877212859223519247838864880164540187639384112614466591758327439726198089807726078799311307942097731833993774545883777573309664601420240355906921414703040603713306856580788239919219548123473565447022255600116683345805923598181614454684951777985424087435020448654174952399971196507232230193590880183656518999532171004563122979488848818472281197144322540099074417354150943115888923259542624098438038262775250645845131871303350300454208076647852707413283960319294756121592527118024681127102851981353047111285869441655757925898453580139636399801583581819436389419685568808857805423533318345197649662166638676736301132184812520571943315179234213465060818269433049854256341611470249031022797996582766235264397548846940353368462244790329119684925102215656195581021553078338217482797027699359061669822951994665350584082365939819724169405796752035875319770520113930080054857938001673697223708756194245011342089042539630892196944642399467702243323367852095499858332759209705514816873145938839145289177750015082290416635038684842663876158127606280067108313310390714199707429574351861702437884953444235734647427408058061900588699721634690999686309460571259229666929624559834616699803724881344339650436629928077709456837628046277756836558992990777167635020114554899673630126919309151915998841455675844501248040348729654513505290741157287358106992076189611003424069929851385101386887329290143522079131054474161074926473765529182203976829032725218590555287469969905033898106750920245830673398476735611164359933209980665055885276549496605881563963847839751969401665578851603313587091889570505294783295034191424968310729827785140019207849644171040540701625610763518622269085238904972742630305999118463254832449329204818253652740163467500950575441334517428995122421328723644364264285318546657202478227117404349244801000382389914665711968611799637987230132450640492685657411345979804533175897885984719039016215730244248792024963105806305329672135158938048983365502158157836996763920187234136465822394125441532220275851483167939252403588795693423673569509529080166330474102999969573373165701737796613572910498569938144332769650531353996906521343062746731564535217957270643994842207196977320381239563170725782043047827183372524901197981767580038785021810664338038602570452431672493180418443204570410220440333886178646760180281326871763021148413287614466083442733865154982341035479867386450384830077302909241242795733003542318397808187608708052399704975111199037034239668041776948669074330239995126211268187510731294092281175801416967989716791126739836870971646092525040690846013859072191863322972869237662120318041075373805393559240289132345711930605657142295567161661919580861289027671384966884947815505393755202378815707301107492507712155491499144427888839601031790485364079540532462680269872919075848280890068751775370576175647048271111423033540169049449924020960775542723802025358815335252565103975113143513988195232421567347273921627966812426728500086726486009762783778587601676908187094236562241604946067942732693864043373398938235364221244860586559923597856976403690901115169107565504286974914833375918879031977472342387207487704797118921257908420366067333137011670389967690971525451865544414300790150199502625536676156704406643824138806696361167883548736497649083825071709910402318249402019062625951000562844305414794777602099326682646318426615919742398598349862497505429989880779748383556541714340202580285466776427328789212853745761952121144661177478056574146554635498887786891563698516675812586110854061795849183384112306773106019480780971587332291124847492949984092530122910960354497287997118359401420070370248095493401211500838547898218906249602038074636785244687547372488327939981839458921008401303501784517227938319020579976798402730952060527469430199548119565031185227268826390337774130090998094523224192983434496639924797202850009591748761896911062466947364753234213801078484153293235197768500033126030118499971176762926601936902547743874488966813452493665494569618757221861552652139085610204316314693001248109006808388896355324421583273681755635569569438130819577383521518107698699218731742358560228888483339094276811699297618425672615160953647656474990483589046811329853801463055563262391948898925810844332932563341500988183134304193247163541528508516045360473270618189879357632209437427917402961576312025479220646377448226877506414896931862515708125143750163290546089953292927421275831082391668692545096521153008341059580828307043784817903045972050476707706355952519101648937698871579020350150076979726786041729756314130104626002510130699568625281708199165899643365443030973493932504686659666548869516821233646568872996263964078166173762781110619954664684087534214412759718333231650205518286548904553877239937931130635914467934729210347318276559326492537442700264166812334190294568778336830609260113278922787124043382666542202592325747999520642409447058507831972517410283926707544672524236516934961744579822599382467725308203064369327886181465049488872520299738629589034567908330561229765699125415726352357092376514615013384505673966550834592455368646579932477422153433499795899398710407906763639790876513124949382855161970694357033545866400474994060390175556683913140722234653598394056245276877853052228843971109710354123741276448776186547607890865081093905527843629438868591332026531991595065756308197653669664736560999612952211821303048341317251147608078488212742173419772116163401327196987653557462458305828243677833369203959266335731652768069059075901608779415817822711617487412544275195626315273575491902652059467668686757761244130628938408225614265938131228872874369379494275601471674355673535022869633319668908856472140151161191930177092341144448472684364801944222215226796533597617351509684516035560150635476348241574001821536908643179573604507611028607897537008358904846030743256780987589486648498257631912219562837117488517464404417150347277720264519243268818241965007959193308004245714280999587119847760801401527837002613314750262521740122842551951962347172617593201646393427375732249139530002248691753144715117537447981397334217923945885115488005874653804121114253736520198025543966904846305736842804916767277673997212998500624081257264403541068591764356073260782233547382196110153516219138613749660939927376545278722269849540513639496529881412306603943557728532473917419519020553273207004677142221783196584762926001690891545604958142147348234262909903616489666690607953051454765183065642795111530842162207482526983868521545694497057952500404070016659915293399277496446126636584569275089585614926675627114974021431219488617308643917652628443997700525696994038619362587985216443558217076644171245036628494490558542255461376058071770048785176086898856862719379704097331427199467331400552827820395982255568447165558696318742036212967980136945681811315948864080620266705184496188745927320552779083298140908306911089912735593700799093461636850490747776279906265291905256780043954854668586581189750582469960702380632148909482063809849472316488598461102852051704868471530609023995809856028697507653133673171343458017637647709008694396052713146754907163469195289017463269694415920509150070854523920440994347332555550287888366957510997246762798334538828097116989411977698668446764139397594925997029719340353427466397058419428079578301015670362999378172808321362190557611963796287200149223060236355866732356393977600522434700518869603038575081557745973164601853763242653961812903016662448633095351540050130914675501586610694247114908933376140729949735301536464929623980561290604546935247673969640154063731101162753311552779316140898395797309406421146929295169485383787720508912032892983996805249238460400094102214413923139617967323291958607969134487778164398778909599322633869884489636308806955050715090182041064672910067121233377187989577128472688022783390071499143850522746917775672351770993926872501541910418597011279786317702460380007520471062351794481380345492163639268939071617188089446692082884222237718010542548926585106833317715262937327042419541789766299985743894656784268382079815713439560483973173429467166058342933670754240495960532600173237069263231087096545589501871052396317418676747087470631905108274832190159528027340188485399319252543004630116617837715555605861243265447646181851400925786533924255088581518900530649746091441423983907591887717071544113857715701463065483707895658825911584600395204838796196133754308452444590004665665647134576641922063815304667414554437111943616933050993151691491664995978869951142605425538794960028652190385483013146776447513038379295395265407563861369464102838103349767524392463047587887831173265798850196960484707260392141522067545654143893242686139202126104198797314525471069104305313941130027960501795538641430663270645906655266831988560010258845668034450308994084337993523488620394375942849530300203224819488500113650538979514514850854123966750782948403464155720821175120382512993633703064555002249635217593445147313845017835240512035890011532912005012719171697447375970139650854283730735376835229311425845362150626601303970550920038557229308335062322057191888879542194569824571196081934704908054574975659958969507326349981048816482675284863480042801979874308184875546471640177667816112591804104109752292480393033453047470352504666926041660241139346748783440770071563223352760619950823052196816686632244164918807425276371740082425343509515162972879636755464993202227612907617867375874395000604851674954817017847992557983301405139603770825522010167239198870078212785903493885755888183114578562786739436516047282592153535214814363154767200237037402778742420060726180766835472566124876550837646450413012692363236353018569005698687920572670667800274423132854583011434997366873650028996418138707523822691230023873888269113581929963534866476357724850481647092524944163035615298778751941390197441459109094266018026391727195162052188331774599589572654539098420150102137864181659692178800619787692388459578177489612747144055389878854648596485472044677925950449680345650214542594116957555424655902729110783230727001226359344400456644064632921135718381284551209258862927061505719991958012669245484268152071550319191837126396679257460528646598012600616601943118079880701702910190996461033912140121247390263095275159027927036181086997992097635214212539697988139171566832045912141760270836537639560316531857084501485805996664600514565556081043187134465614339768461251410853704843988070702458598826911295881716467363315865731666434345645893335438112056555205022978357721391213788810289855629815555175668623698877771821066367984182563146412175367894919034194048579561317939101856892498652540784380154479665696009836495035277255559590685599622308895335675119986578349709763703270464409300749779905208677671477061537275824836395533304373454503815508693642553147797914774418615034578222463126120162713660546943990952594136854058818817028428182896789704899487218158651493379458642176781915881634042051670551823875727288205023832875248835072433317245504556335219831000963283072178471129409754214802331823102676759073574818665047645364497365064139024346728164413897561944997204311366895382562938063346044330039009645787919489336997168421009361300419113742107853445904174784250462203010721322716930936627002229910191068576171702160947295575545847196220500469089256555165638667407917921854762558947235702457233849373279680783555289742019913956276502811672055225952813963057465771090972666159700437775951281615846207271613580457370499694981876409984005102961622764594325977745801056631822371552997116197119611893688657358059965167270547164340626830445128145559600469994072996307803910832719820441957376884828341263066547716939622647536365412775614614672870784365138947141594837932407450343181377607149712668869073842896404568960247938586542889037557789739918932010469464129538793401868117303246334136549282355990137211369331574909458001608621507510495391837910470404233801162609490692689340206694077975085117516193690320931462020934773176876356451942432904932290666997910231056009520862474186323514772280594607009580090386104056136479253829214544915299184960141523038148834244784208286125660471925468886284579134654942186448516499990022332559239000016506822227759527261444305868660818439860932780265822791558098056274875678363208896609010925481856280878569727941083390530263203668157093949651622385361142630367103263817990323559496275015937243084467352008270506003984480745035112149401464137017250976209033848025474431558271247404681482395909411093401240592124204791728800247032621416121798124899705413700563689951264796918638747044657191486584452194023206099781175274807030020244230956432596194264266740838163287209347300163326904496290457056140265861506604100369094282606667367648364905685471906649720987104262354397649595567067763553466359946767241767546450306846716735526467088920875689958521087015754314923755467263829461205324420544248824211648437458256990436433605144520419112224801616835359152598958401773609923139251252007632928351491723213787681763275387216282475157759167689253548704781919793805374807155394542039478206099420914003112700332988243558301368432730537907740069211094237672974710477832651849552743021625314619595455232355984150019171514129738397230834359775222238042816988687620317208468681511658489038371564718925366736013656544109486649308107017435566807324158380635757522433485847700033825394594561517156675142737341151177321610268932923954231410703651659151487302398530838935308410892025897989667794990162268317054690990420901167772893634987524497856730880270672214147935139846784981035567249834449381403762260300144292405181443950302937144629176060021062263909315561320809825356898422214875868180736104500264197467206090772182878699625157864970102320529882159937125344912262945431597611102782619423795178174098894539740757327707345468501792916796004399416896608744210096763552209530343415020866751218836755678142430661433949201677737301543471935962090156353264145436863130578045734364283913586632724865718095709510300697542748941031198797601704193230601500772702436807730842308623966842317576243895865758393935400338505468545886758284784656267814767143866098133318033566171959794796326419140396462178310340588943354193552262408872371339048029060647698761396721633035158321563687096929095731951955002195127114122913695967215939860369926016643170957624846977748401941589427512633755082532352986772183155865212112016975244007752977014658533110623808718363684265912020151680216735549626631586415006110767254431431055828349733099532938815664812156370151294742999971981365432185733492454670124326157730912347790040848080541858696015184485373359837358816332238964412334521168081128882631152592177202539673759474258965444694957747302098854379893297236225533348681523201427818693310493278745448721820202676295410024742530556538379041906610962856870797828441755970853582287422462979048949368290772041011721561168353301186553706529706290476648937206336028082308683570390087884119269345485010979116512205237151910637801553830790551544045212871733236880694204537128911798813782494507194125435611347353012230829961095923302491530938022227780129997552411595925874236021351760110449527879356693123022577075280288829116344833491791320891504969371723336923659893414433941534846372528718486059840103006391494417139107698189415584316347320660339809813452398271670049252776077480189280635364711083800185532086632293157483668613956712844268609232017731902662509820927777183763022249511646509724913788350676125553010998998147863206971992155426563699342926863563257977406582333197739368493259653756814203641555582735021930604489270888644702265751446256775304382613251137794690885521538104269207002007478665123730433731925554060723072635035466093351954574547046651074107421020028999415352886786474604864305921247962209540418394583763052143265504281916899827045293598865534657605556421678016519241132378712453652262346414787291807383174065290821002939529452458365872247057592800376964321038185861341762411588230503169854651148897045261159475874007033686426921333418038249471401495377851213961778036972233873118986956508376541934188527503441925811350306182657193445994683420976752932329770034707009842684844186253002134679482064080460625588949541290039103893906593454870418926231498495098269412137021487049062500173773224831546656815630356084664254497970914128467503028850529380491406989222014915087916138139396708785914166766496249573746901937155015152646927226114425580735180604031896716260193983267450770272718615697459768732071152519500209633359078979089158530087745065664521342920600877421757762829081452057808163741251863102188832627540859094445744993476654613383446818565563747511231231199568329854265978059823595235747935039487145512706002692943388828843640935670841554638862930813877336358225635667998348674864071535824088017858361388326211857900563412413080328382925135144571234088199217526765552912535882079478060675969489568818977655382309929215734848577690516473933770835369802639268374153412074214900117830134962860809613422679515402950490463069118355234207226231497846915229773287135078074184339127019186694476172652084215216269181897610571457236890628127776138083114759204338742229260307108077492679991274093475857279468154972062084362643238687070044054918046743333807012865712320308885448962978677262616948484606012477563318938784765538949774859987472021916954366474187266062713447902304908738559853447817106674130401657610151728455516316996361822695897567412098576194868989833494749428171926291703956407381709828000743160347733692880015922963137711723091463598901613075703828430279462723543792898951848641311587353668418800635835785963953903203600386437711745125373552978505885489095551637934768903949444197717824040453547894089390276384718114540349952643343967052855202844216503436853109862857620900095623979229416147166937201244651953161554853354323902328757098416451177100111140663789735490065788878277590617223832146050549482449592803764023462927706251686271623910721306680507970005723324880351779599999557835097943412564643577276823327827652957295180442531786877647706939235650170137428403850828699819250627536967482394811549031138213706726925072705133670598499703111475920215183603528466486852152618445943270160046082928542912564547888718666140621331008661973911814079438301313800418983877035666643845566947928913254550859501641066706569148564853440985797293043144305947037589449244985174911022831048771228516756197833930050171594550710818750217453190203802019622130095966442189644517583403913846185058623090944579005376440882935678335356905697254574862049121943450169889995858430114706600982106884879432804640830788900695820268591897255129505651799668571297497935009839022108907181070696638657760152752462126105056794936178407339939704292385854087877933918072766410153829237855881808202705951281625069102749856835853387469803000412927362309014083435608089954283996933262681912103652608540537933225904345924889789099881056349915579649867295847429652071058831533861902491088019026878338880998900906409481487487052706273834959825182477458783147899286882581896624025795614974084734041779344613297342646414335115824266215250240443074250031425745240688510289333191466015758598978570004354985209628290213257951537496813387801871263439169100928835152715444891182287170525500688543393907953044335232860778146970425853651996854856344895754361113620654865930179268076410424964764902218022089585344137364096134530696228860911519382131719545401365262980178181103976631781289371177985480316568524155890056156190767015664974617034607352983018194074964779795721430501553422659916844922453777082094508086325992715389400957394854615781280406919496180309770789202976388953016586998172997497960283656934475077790179917199823965922150114604248523752041168185159951043771655985056421470598814373145972238787032235582972718402221296608992054208109481449029289012819678010311390981831871718050694505932048693111180414030016251094566296412353139264475575100496739696827584335160588325839807523387389231761250286726404492672689382869172499574439296116976573711286516803756258754968540441677124338172772218664708306579722092642616293645548360819145284832821117287615153419236088114969480380455685105837598650793132259895797097241703790086604775637560467086638904699262556899551397980326256097078530039247685627629813125228907815605905651144723568018004891147433726068887147521100969351704455390306701936502373897882199762776829685671214601013919880508119191672453487942864201219969410824226144364916506310648869882866492451716172728086060895402339753094818925249697496302554913056619650464741368727988375211020019034953058057301977365341942894361775346063183576928058781624832385244120036029607803913127753079892687161356613120893599243084092572626816916311039004454913599981732421708772244024862366965464278576326457682571082821183512622189178989067536015443533828981390433736224110359765184045413250613813095459712447861239343637545580363432068001446002566427173114814223016599340967262412285250391813003444100697050469259751198975137923537043629860901304184405505937893645007184174992740117711188102716670508370712659315408553974102683080247418577381706958002319791118421085018462900152151145409054681153122167232195276958688129074020194923573529983576287725033047842568556445890963691682065665708185120868061257202571710234739122917981463733567037962929185452823446155470465516292935175858024813541863115530685481976222963783552073865334983115341886290379908375605618280946182628330507793888076788907569039700819289453021539995525007660156662420186759316722389476602036262762792805140664851282307024491619673294499214290040375599205203586944012948540779697824609289742328205210463150286538888754450776129593973895702693534083803454319124161438797631228245721043792494300134388681773491022634205712432624326418598196833703083068176540555303785010246505922056108038362771732993134153994733141398955187664556181194337140790721584696091937368805251470660058095673437803265930548952157594292868240153252161837611187346234275065872826371604134727247549612751897886901743742321350705878615760144661825912080572279222750885581623295732912830232941424533654683008887580867315087416196988328830477642777682587056178305980287197504721727068698526944084794717980432793487182161512421330044818253599316193685718792810767714472690595315173007851586940644086530964385327008581350392187281670926199026354710055183498348277340311669517804713466866506112659370817201702590860231407158600043189530499461908065157447725113618373023066109039295510268912713099633824356442769232549547377392580845908946704900643138653346152159488457133765474579143808728196277112411732318845865498861969470913020952299887678594733703969026768277197683296794234709219639695770417276955336606704133191955144997427583243584471930831206508981305936694113727786536881198291558227958068764366017383628451368867418867572007376182411673147727871331608053587160495726514836021341649397042677837504800821357580059385586754773737281219577641412426169038384806789089525794524219171224868727327306390253120478232753378641525353257572670284388990294919008170018403639671106033512100357188850791339386906807932891447975734463696058406233680179162363102080328374365172120167144333751501984834284200229502660592269787792040014140448353777114526963611089741569102346056197342245908936796688650771849247142382155942062684876455736474013046030288326774004615061573679519080722522320454582424874086605204682861305574092088461472168489021300461262978814393129040600136704563888706840721327649951173363073480889834958834911361813278339167795325966789441222776366268604159972353876479027668447544988951782301169994707451863006484166885910601052047499393883856694582745314180453926243836128596250099304994826378233325077945596098744526828093592672078355854470834045506593871460814923678426924219744461189287440666350271048439709762818901301238891729196541819816617832434869410211636731594928533883139384325088910939447596174841237659890363705499160493183609075581508381936032241036136535197913006485175969535089413472741301948559677132114413479247801410418439212124075191478534995522679143164946569958095049707734457104730085842085609782280532855865411973394063954127036526649186966457892590182491511821712789258477024160666582840628239706454354606557874794302096213867807731829504113505928306278900204598145394289858501697505159690194500224323774575161992044234160989854816599054593426857003178986207895006796008117120515387997690049768868396005425951386140147541070534948650651313410664116520249573655130562138010222556925006298673053089061256445918410843359339596005752553462847828898409805634940474456354175014142545037165357154118123894023040594279560895682139933496586308790624843225629805290060761202360022699322301061283496810330157376838572975382431431129724349522567977864288628588725018671815382667699540800500467377260193831743800225030831370646547436184130286094392430332306975547645612293866322314535996646879080974112266764295490760746395115007348559431460714075226264897712613326224737897189443744737812796382589638348344832809242569070978040403123587343621564878960231327229819074664675421113659553395653501309357311707675819722018521824462478105449206798341874923075438165116076891891108804151793442280468881915250913794794935632160129854180368614135465218911254034797451410022136850998161939699611140166873930321140720575995493278231133629663559851497970849979204575662580378262461308623761426812169247569018514007254885109080532601766391784686354391034061164037727540929092864115804029116497072577251786443381974519332702789875875434175692418276176978654807602346908253258525895972624076107411053054769845038062866568525036919108091507713535059104625732577143832982870550231225885559506330923057187162769614810404819923652116223147926202773152702717859887867966521472469295933347456610058175333641623419428032534400402738550982434571459003498810135164073011505238433646696693870642704692325058571021925691059195775793340496621455833612908234372555308378468731479989975747724189485709177802771135538591947250635886587955059850317694788337913833270265597212079909387365945335560505220404705105606998024591596477328989449528378922191946806474541966946537666884810727254831410697318209737111084024937660990166950744934965271324192013526715011708306131658949108379818023353175116977674986470503447924144688265508738066778986057733389686367907335488984880357588678976134374626392662884398010779468627306600679583010456008842001706574471575580272235298774543665199122798153235698083893794761458286476283356476848671440214285694174555993087037857515487339458180563742039653986152564584283408293703978485075919265041376640927013363654008277343698180983102361894045391736463657203976077853240091282033291584221157948107467750552629056457658344576954561753400206816623184550372299900986408388929436384335522590471175817022358712789644597179245540575089767172071700457861745477981845535829190784167859114475890408432550672806990226067851863918289308325063815695636877397789365134340982148007314986375579821490052034931001937189404027730878838518771102181803987683221636108739239389081699030085970573223355932632149702266562933814250634586470999889629767064422551893753608023786339325720300754775837364513727503265938054116869261632424645789208335381637638749824973307270699108294204857764486576748960311027206771393453055219442737153132812974677313295017492451701791620107392140459561375643072569454827046530456502123906974035346192075703567039897232279192952494968593024800301884426525598010075095560747727802759760412073833172199867025952527270952870922362484108291202424043130918927615731338467647730029744512816818293935724600072562877603729133094411240927082595073046257492931987089293458816057412545693061453455038683197649509947151506827227338973191873908503141985408344193455154500983661870273624855291293096065059069338691785412148348226038364037597892928778090387185998374349714463570996269410152628743987253434042853042793919268374129985218965381067534336620462595370161343606207793767581001117278977074652728594810993471972308009831427614025482001262387215292059520026186622655182220220685315283085610757410620897518879912731141422035348780683814625478070723202512897499614183183301012666065699264561144221361577072196312108181248040010291700239466039287008960419716384184886422038913397145831882678515043848335152193479221319481344592528064282888640917840776810734559569471209556576263495919863130756607987776864837817273571433041066218610720536657641223994300631925895346344009404984555138654418052086324222230516970003086365030474125127608305171980138147391024883010530789168899186345678915310551882524344913297996460957608766557274041322470029097618575568330732423974216292032800433756331111873022053443919517453984095259732639734954465612325558098024169803425826801359455366694927228011403084492501165246265249231556167672971499750714984897366944866668945177513504738754665671566538499058211351597244647355543232493529860444012681572932615088225970201091474324635954919333963708334120571596322743304551822772580843120611249252599047879844800047485504384098908421832999661159282295012298235880991027067437946006848931091802034704669900556092766260410824703738413612705401558751882407640994392129571009580741755806490456088494737928180594828269258364736109450665954530394562160502591570943982578443459960312867054095485446513838778777204784103322799078683232122375545826995284688446072209273862114218432379583690411105911006789184635149278108166033831293875024101088693396825240900611168346767699185182529523754103424809833762674615584213950263623814201325264042748352086642604825842997313256112671403628497763078873699935196405226391528035130527670864113699823391795243346062687907710864065376128234172433651291687012785286491727013657875313008624335802402539087135326925178551766192380979882148707729301528094610917490743415016571460767075948853065940501865491207839573275386424044733114108106050778645110468037375202851917760606400526803975955746668583835637463304340819735272639029106752315850970936154822195896782971375686848900403441474227096376836674613513039561487506266950926800373242130862656278978850649460010401603623498237446942700229480241681988907694709746300689066611409606653466457622187867119001654394224435897924627204312811064674442104417909792022037003166120935364489354085252355136222471635274116338787830344868803398855615070925876119262327594281149547523519553535847920417804195651416681840013625318675253470799497789707080832415560542278799907210831158943678317436967376787577022506231630582468871064201505082727100314076885226402381359199432650916901884592608987692196665606396003493414175958689809527383539504232023085257803839110556132807862355853897246333332401325733177544263506897103431273909043375407889893834242516842640002230895278082887847167302539092566833890039867126466342016000450077479118868240548792509091765410219199173846678787814754731172596054652524163155620384866504360747791184277089467760724845823575641984392768416739968053462250436206235521316661259143338264901168354724175000354464499996470531980447435526942021452163706602676434070265917751428045775868869616480924878513378760894732067483098572275909369239115318862330666185780971311946266499345089540084478434779133868325440915143811520318261280004220946435954249766578254588879912205541188232623218702187156028601547405249651080734862889341620860250741991500661769046733299983528939967783177532613342678574843918039554272356173288913453331007422677800810832624916756826847613292497750819055835827450241381776984503912407306408415367316364417363518188958620408799960937872133582648025448246092971166846050928928162181153243596154289125213902056832163091315134617643725665659553462085559710733098078229964306366831369744388016756777861309844249373982543912437761160207709451942275419273117290002180442895902510308454536360738489453231693147515920627349215498395539997273859686925829587455333783212009511386517155260104318677746375015267068350160122223578806396970564896851334895557604127765140919188436179064369020914297791650706888981374673898822513176645418144104677862800401108978700304261260976219450390146391266313182515256329952651379344418785334833969030054105777763134145415712909234780899464690602146389286799902813574781052671115768828949305762286685098027035025622597625130757187988504503452110282321482122606547345876971924222498342858822406776429903790141121072468453886932359171259709904870839383828730229833808659561008215529246577361982642986263910021418724881974434780634222251034176705283875986548215708941042115940654860235937735365173016081753694060060991005849960300735550581681486971550703428157770256077288815639185274214702823101199809106660762897012586080101463163505470009839136082396544950306174518427356828711411038648070537791634428851468264178801473796903871092996365446715995415171565794279497134397653709369746800311505153904382428010449766822857774528284872806220078199532514858236113167535743653385094860837582174665590325355648805688972379384159674343467575603522641486607987011633375721712924331745607464734198315718384825039987534518934493022514985248630133592538537434845406906497413413535643857211099023876678660138191735107876182414651700730225399775659293472222864596239410281897494829578304336508793992401765791464779924591274733729523698790128004874677785333291379232907444093712581487409073607431744950819845877517504541611092327464710314720335102418530108598789044897704583210756499470533034795013711438002839948508331025861831609648842615723845169888541167437202343640104647752766606011157381684060899918901662072619593467501678759423351721403466673343566296552094924388722242341412578513986592492572510336927489024373663532312078214721258112820560680013006460196701580476627459655038817242868775035945254644977416466420943245511053291119327591165640489984386776422481625811681995365196532703776800393675138776320899122888950023253811877299355340743494992550661832721204166324765723616220735474387412793824091416371843447662719342330067500656947762117809986543039589408474427707676942624721598967206363491940573945575200379917505091745852622487150721459288640529873370551762791672406708999098804240898095985753745177542017479299165650169943606361458953650304160011936136079299927781603033779746407128112864791197993939399313771307717872167006495978499480242375801363481372739843703175238287285581494401504977449482809295353286738581523527827974672603946549048014346247284397779943908801567406483190375261815079861382486558005718414598173651730685322689732405839455791113324891169891488533868018139392517105970331118040525750960275694837679990833413628699232021784429993872802214796805550029624157674471521767263334022959462051690264872705895714149060425264147876859440991096128636896293827667981859848878147985876234474713064961588595639364767144274370114616288136597969907645012004907230008720541839193496171221424446365093120724295622250065651954934731809627248691995383472506895035983277800957864393924213320642744135534778254618012665711791144789707766973912427209533402686241523407570773952610000724107272589179309006238194307501860381964465079278348288774049486157585503766214493458098109247268370845028508969102053665506790941505962725723602214150104195655762481305146757579449886267948790057519006301172951609128556944606395180918154497008722768311427521487995786566346280184818582448622927388541637469089977635549239035801188850392141094396595918460452297464690853459469421093688173649353542156567124395252051710394399034148521361754371757377798461547012543530393775132263549173555264564661672088362505718788190141428976016502422867240052008879148673308922543020064322089339053424068103602660623416935654420060208567503650510933839230337044951518331829212911546828716027455350167165485558839163346340305468532648342512588260752461541825114456388058777175062907588418712433917125454110215948722296457887229427082744590847907019476126616004278644942886864952646351117102007352924828210289383963206392127117590942045762409178332945544880058102583191723941207497767712234622444416709436928106564498496155181813516308006142427562192970235995764004194852552182843666343936465881604533301436643670800053851572775874997599715961000540856972590415068472576448175394210361423278683568368383455201128469570627483696217045771102438119899650739699293712299368832663105331502111565575409555609230627466968745923499034980902862470941296695442381745797626362507164459144983668775167207885651549756757772562541648789841731806920654282042333423644355813046215978101611288171694138145391452530525636188888437761357118609420002214494863973868310483924271483805316666330860464486980780604922991892860589169393736348736124931335092702896172518247984468595377600967280260098507479824809222164964772978782898857549133272993485268432456895262735596198757431112996169471596083860221387593798680487738692923239961297332274003825149349562805444956429580011702548846019953946734463484346977088744472189394225390317936446720163865996336656720061314990813221470527985731790374092048986482390782938134591486695673974987194992453045991867527845359041578010285086963023876565134090258529264334808355186635421250524924292041644476833005942606993691324832367310159201471117699814149089674137939724037256765254087865406264489538072252412626909752208895926776791799109738610854087389690860923461942875415237134484371138806589875594515565978263126207976089780308085229227830376636000217310310473805616888794823727345668103624196038662847749803170224722828552342309975564643469958778284001079219866379836669100776572023470251392082769122852644473722837531533409293951936697633083767602394421942116762413327877174710670721489828259970197816293742721428783840856320203723781588812262441517337083595371697149954691265032765756993077910196109082356455187381455388580955971192907640712766466410514627823598040444579032467690515469749321374038342477700257587032345456561536621698473018537399484901678174212847940852561672301739718372790093545772327680758373278270738078880041304619993311553820934103796727997243625571764938413735645250868592556980547983518330098254599937906304904803786764846627243627587769923973732991455794411954872296055884501163266292279482410739107710495577117497540320609226199280596889427933247490381490230289468539788115126226344209596501816041318606284713034257617201949688050899190474859924870273917207314217046162257368796921042849429485268626525603004455832921787235162559515009370196775929628824256148946257502635739400944077329767754819945916469945656340794820642492546459219522515932569454303239134888809580992121454865203382935106323349804587253897584913223144782513948158772755119020109348193496861521910677732896901315271909066055918849430394683145964297244493488195375060116632083450262376778187865840592168870913793344096149322941762772540628614878026647283055280608515338422693850561159677505400326320370698275563300914649792020953316445887538751921900410890656278110115496109116998422935830555817138666862788896366565926339918334684770334568229264616433789776443615571087293493736965682794862230437201808111100503394009298121508010559583566365606447269949304572738912215450451874768523922119569792343655358496375290309317907103646398999476639638669683000842584099603332738198762699517826138067077267960170913892919927679207776205879555116290235113801689129768108286186676576466646172580069647905049555798117580667406899577219034431255053064442582356559662331206670483683118447237252942345350034524228294850395315393216527096789954980168402091173417098564519869888133822822429834740439883560230914824752605988844245643876781737964207435682981042283335346438368124640028661361706297133915991915836693057568182447334935208221671376630666722659693761808991301185824457976582015235907629593475460159473346352671865438089661150850857003164812976618541223580000325401006731176464905024968993429466494165459013418781952436127626736782121920455159787120690416142350274158277598802662905079864432589431269738095778685985615750379069184099575012578734124379340406824576846842777284965455829550356430917687235046320060165769842547775841143857755594388415343733822533183853392211105665632711251643567098983629687086556087498421179952572373151725124221703399185661706529043679891980299929892721242818169933230653486154907897163729071266830442190162881939877163831900890456393735995924881226085646964740708553362980055380523525479694990692449974486491411843630176625362657854281023050791696320190062552673703042982907657826178731266590157487528976269886948807229892917866233772599067107802873363803627563136522616907268059441400432484766003244817545143937052039173244344521855916640164206646733608911389143876713046925246258995981650406902584184114166838379259083168261715043196455222063140982373688122685362988079942913511581734753801264803520713098939568937768345320929767577181699694512213783484710851699540702866905170322310821359851750547173668541823601443339053731636703706164071412759898943509024345853397978893927654202919769983653963717410664429035691985848355114642591927816548393272358725855596196527688852454771746398371995339730585623116410354294614009512437808349253395226363605854956822957769907269894602122205932050671436432015345826974042826793755034450921076709812254899404589958174104753994427672725040327654683415442027827877834321256841827478131575033500764350670061060165893214861110074766964204834289101920595964467751645739710266166588309773775394604625090873321489373654729529747066570430005770576013264446068523425837790709116708695375464204880861337987422897133634481475821603050633551230153196507670693787565263618956380526917806091093518566012412647312684938326415842106213723904981152394360229874478060294282697979377425575997359131314922058516540514094894302941459730010393172347688219123265653361847741966697433620638431252518862515698353029026489509656256441056430707351036641742238150239958696399709680326719718371636499243004239306091048053634074068300748281897569000977680731858317215772565604048866145628677644304893847278889474304422895289429390658702239869237537435845514668020715597527558440374284531970458518318331360724858717951350212401290461083611081683023567800735970950989153956368427555672213824198382897924892925015131210291045161671124841251654247516160580459612590361920826854536606484102725987654693597233106261427615909038154051923418421985788509449670342238170266036243492692030907342083116042407084110528855395726912857734663310881402052521691787502508080229251491021535329017768993739113681989457897795138942922480411782655734887825086349402888484381883358229723639349142209717230654938947963420628645771741165568088394223772826085153508385234218372865754281266410613669762129318975181832429496309992791851714854100208906351659381030263896507964042786398759441029918727469699824002741396005910617626772950172908855061967203736393840129622820588054117790484358905311324103393871693066733018341787334131493458962875690917462888245841537140910176426561441530585952807096804340496252646770401737364266040801523078029191795297184426749500412361951327876489722511490255934625077764318390076590797955276646284920278801533996058615720278578781405287400175126045994601224056594132834721476606034076589363781225812271212219487573834077148031478542471464719970951439824623123200646858623980769324262530424470195795417792186439971019898478106837026557443077131185936876278631871959883755096848351841062040881509252415866464341188202378228435686969471566652905460040957409793931340295857756963253590927850300040393426132474570188480710155430274582727785597346161528628669425974041772241139917189147247871876939993078774051266218483690362092115437937591122886186743809904403282184841991034289561526770555346491017190555990366257336397737008446414343884372345175134229819219128966056951502531566462591046242112141084551964135500566345696198817334484213808292930182607357122472670646053212111760249015983592105530983364219239844361692483380939207106636598290491041781404309301198974501230511867295545845018319170812900939464171542650832046202282651608416587364355859499036415744249585870165145282228375847961677240759869877221432172539741182146060289925375935390242523847571869624450510651862387222893685798433680912058762378337361260194498488034472860331789964128504730759167921056924901133982496870847877059595315359564212722615938803994469433621016497273900300061108099116203567360798750769217426369243232274375019479873663238671941659520122133765858332226172245372030525961898944271779689467288624496356034568421427440237537369636230844956574902228932117737457798828270347374427708441245906387229336116550914176604084713498583053366908064754084528151875666987047574133596650383247813726073639150701201300296919120470539425444196571254781793568892583306635381851388031297425130198068506120853956313822457602512480237409271273993466440553856988961126312963595847835352745662968905705499448758556260850416002967801200723145104139805281539869110121847417892530007305428645914126813645802531498931744147273736332378171847721895942326555674817726074753140293723898820359631878798059612387569336462403047546521261754043721800220825090602609538479224894978575232483340312073430861952491231550485903345958176383776304166762435237274425150910875399781996661063145420512310592828001205506025179422282723386207303957804938081620428726555298614314659101062515514120170766385940636567974130554245851546416872948771230057185629651123032602616014658645815321894063976704408944086587363606179206090662738695271264841294450268731033470620118886210484088665679166847832695360942288220353190052666040238455657436574162929213708509097375797891338607810467930144143709640394364677965502678803309614714661648217851009208490795026685148733536698766543948109153847156902320533827818979445875325840812516082382500967745470664128644196559232632963233271509812589117399567948973986806474519454362939171008864236840334411360217036975928953324450255036014537863165146399807252118403272215439604403613827823026814235996900202282390541022340527198724542841150317816461712049103140041467926649814884499192476326834760721044325990938090477757326785408209962839917216027686364345276568416707205472734595434453699537894717364150108756481307310423583888767324205817455009392336815493765630308206398020676505264806804613412404270850998298431386757487010270583167297465456641915676347563772277363252997048689540850263761864112978669675602309733108898858926637153217707978651183960271035103164320196616362075099505924213122917161795836701152405310120692952746038806163691637633654214343600895995261321972419609906569446078381560674072230032435986679848367069111631172647878284216692917955419160194425462440317765066406374963297502316262877106671894633814300026176183966533912892950575296086548868191645733826240034063730073099147244557224480544482741858763191856080073275303565878671813085796153749161514045018604132611676179737994815730443245475777999976723061257411359447638632583383317531593851685725334952046769389273257788377422111396861654378785923105888768573969442269103812701217316283029320919309543119809714231044298893902718688840641870000879088520484128876213603913154085962008708579488746622274060172124241582611906899452603041813487322643378881514493306270384546400286266529975268961776337256665704792148965655316576657554074587340223934774219316777075348790595862856934411461504979042215016561817943877181668766553174403960331832825692938884013307582930699003141415809128674979653344720093415154731107583815219812267040623362582143964561298999309645971844478011434028614957398626552172584000814408409236386217401325059773370058037743322542573142878093079342810122666374210552519113867072542325495438295362326096969441386349402431056897830087604924768892105041540974586303916795526312603956466180367209349416868078096777659659947464216736089221457259881272641510883133162482868479382238299466164108129121540223273079850764785074198467381156012961375324035917293797629493175682575664591948906033290239474117520761176171154771092641689112607909443723026259522939619047677240703795439811956829298989136651654025550199369476449847674868329040532081806296031022803446156803893520512439051750057652986708113267623381584839297630525331909583689544783589695964858848943072902879392583740566370488293762656255653616488679830612901702855970098628042020815907899605930746940166778781471892637292110084601072392710502898301614362709875688003344896700510614436172793608819119022752253557840679947466293978285566657277982997687608641539155803753986582919948265082266039994276055102718652882701996811218241219997377788342547936302352277046731556965398377991400932204298990954587264175457838979859555966042415696592689219058350489013909682740047841620280465375312899913541682675276770019252796882163807575130448464832784723758214191826594535932037350980824757058780137416920210249786214242712836837706816181743282377004162835282795656908128619144413647238026780434527291931880818941272301195240790432769092306804402058512430603128216089303209259262893159562970636215459935937414179134475071733346421957700338903557967475038329401139581073640649882724689704719586747093068147133218637420041960438260484880816398028965590100406678805478958909273703956612862740868628362566915672831258759625629103163148886299911423968635645750059175858394591821112241785773631043937874999180134457290069952452495891872582846469709897128587917821794766783647911636395280462665729694846986893239376998981563707334875557465924813824471752354798037821064543158170021037776355996292570412576638880041665973868403531326783054814111881265340775717889454511964339950324273245248112878490321385774958600220883492940366848520579757195738991103425216689550289552764588834939427099035904917362609549278881894923038254535324319999446405205052084038768995888329502685010397112398573662224202976546322431586828776424893134921962097301651923763478848907918135220047546581809021739361699413759894795957392044382163244524183551200309982944777448340095858132508844082754509275245034778525505357649009508227581944932162367693623783602770941203595208180151631577449827095013767475149212044345896490962795940741047426239216025170950319407955984850975428503169887773214935782259709115966036787957168724840503388614371491771923958885908669369839630244199149468688895131107157487079318959072323649054569528252944374434953168219814422086057439331795619395852995905262691344725988306331144169316359580808739006699508440846184680497218579488121933304081443704006508784690106212473579988030227100496088120846917750953996215598219265717815099417499610328572326226702498105803826650130300087150271637247896760123174925884675304212365637134189295909401621998683346554663391385427517064987490391095330057077537203105691632614741133454239680136425846753539205435478636172470593509180099928660783711643572011030652607859948247276435722540969600677204538749869001896981185674340431624900230608633666331109266014170135458932361452358723447131918584402561098293753303188497327047581364326316818014488358354679329962730948365390841005256808371246043570453375759691117432897681540856747055207688086728203847510801145654675347785527541070501612677266132955959430408727421365637938607338098741729757592412630756802168847526420707145158072599264374864498208780332718338929456754728153715589477252727070443987380093992638520672561059761578340647225339149022485003052302056178160705006654861172383088151902334195947815626568980752294559170730292915105725764793020469411520094859052918590006553717210771798983346062733032517127343469984802104016757544582377815745521375466637537372486267779601391502937213148509683033596907954756708945121248531583782928568517482228095871596685612482222530777102339065686307497157829693229722870330730823693378582406410425842734325629028287370575325646356822990360376789768591202357709568805282273999651768617055957933070975062277285430237801160019640859810153721068898579493314695370641455588829535099542230070698149549998424772885394956059773755345842862944941670717645529545523891237455235689871358613838248070945033155900216731842852884124338485916399073977336866838774154636874635443583585127292188375067486543454616723224681713119104631012833936353899206539446990041348560412050919785537986465667970079307185533584087707511579043372978635799641159070609108946505647385827096734870949537161084316360407270936906772818270124733806052697731217320856493439559683662723971760734612629109529488585552058747148433917557259598972094826960806023109950105620832097568443722249270201665966463439478020616887499393430493562025149425630033490841410360300234063032902884266945908044978025095341564692835874177357528112196201938960499424360953143780891148916451392649142137274105190852910581011355952541923959632435264747168257072781827734404900997725675908114502654538277891357917099789886432263080907803120927160677668452878466806151959316372395331787265155099500745188342396806679540808918841077810878086317987320945585691337660429563569297791977346691848561396672645660503780340207596943809456609722550067702234115331698952181939558606950657243430444453583178812641549982264269863690357284010382057097264091994885773558135502052389055920868811700568998769879503828689378467774455736391820602440107453274728206632459430552995636894434335328965527492073110958429285320686330417683081469142927184632630618038020877009211850245481500838528068356697102228863625072880378504200252110317954647563845494810478618813840462639221810145357916348781611105315761201497334375128427504506861398406959152282445892604306714093194478000294971714583876848759444405102132783723802499307892752387315195831832808590624413890713771236764804420283055785395929516873080744688602804081344749488085073747369332143845299500574070407523884895190307777877884061985799673946903785413658931821332520087027928197614930854638748259062634495947203420312769186942516670414337161368591937823234659780124207293755371565235633253782934480536591248006932578218736108175530750321613800993520964461068780895594554602406715007468866534460229746587900480485886073177170517584203420255984748681197536175435079808736109580884463409717320890410288097175130782254735313592212955252431866201389561618563115187732947295846155265776112159735666540860815063591646837146643526528100314652348424214871332250205458289775724145151089879256584842910026739881641928164067685236847750755033321754805697129957016478531621092249286876721575978024479460667743319934711160439215132165526455858831169925688525781281493522766793233693167003696447733825630350432498144429005937158942907163037630923896986867008479103667852822983183006339618746098892953852966737347948529023374510602962965995373675409853436927521447907113438835738398383872110999164524841644001802433540417433309268098914518332981884828222861351036580271537430695087056798405403067988372546866750621515174144872879609711501915949543128929864325758206842947239649009897222222160689756105867495962967261784522012128584801512117145451705860532626275635993091038394676191783425106668213768808101849990626774159797399815981645328488730885292040312916991520476277083843630057164484181799066253553381372397375763034126648228064728003900109101055791944574394120064417983064687379526569769254402484331420341310424003503013846196715645422487738481508417738036826610283637659759540045108981316363705467155172793731242293855535393171692440396675526076740299192488956062860010571489472392432638393280341206683232692904166878672342236517190007644604973913568808250138098449416271662454818077432201992309837933736457543577412434086318298083946243471231683312659248532457352403896149120295616310971161647318319737369985552739879127429586262938048950687514009367040716005323264477442728642244827568227146233931614958625122849755661586600791259117561132386250654192727163586717780339163140983759823814248710101315624042713301876867987796828033807038416368663854278110691091976743137520859349839179596667973140468793232647751623938249636018344755325319740499093853390878256342403676940558860842249001602499116442153143819471533736678673931246406211274435800149576490009049319043285400049394130924190433175683665710174226307736645823125034259610950361205387895734888458486819670806115405874425834869411972322718375725747815786803424306856778337076224237953265527599241430452877870767155927077456021067061290318603834419101793971242995126142245929401985389730379862245386453362241493345027066887862621448285842920104809722889665765430651383116351945001268312539875652288076048139625839470857679687279667728190957331960366380866203135944459156362143902110831050454089291049914449244279219384581556238296427203599533031840949281358414006934293314768814558738722461676997889587637753969854291824098722974340671764989002530894869862489443515213227375338838387469826270503192290431536950230619546808739994466091387668837317484314357274515358101668878411424994587913719839236586108473772608548936227151782221989126231979587525329114907691653834987821949762603866589913863888078945842170494722539215337842025388662806976882200326995002211494123486084832344037526524725391802757706074788249164259556665022486190005854449916738054351764164629579055540304334895751571196147814813440984964426070773775852398367535824194156718010222887526931488019376720418135193830308134667000488362166806272054987387164846936636490718204075357129662533517859351103662387123801681360482512765745437492536716154738733859786611134552875413568133025569004874243284249791238246239891553331037536270923761844496908397505306404580326164101103935284352645482163310331807805131607170412886491670977538556556538101119484474430750249811821476496185556683720873956016234113264679339410438438694791359397100493347409582876242504594595650914052311629325552761530238992495858676263473458841883401965738848016808071309078255012678205660075950726097396381684973173894132427167603239009621395623385637268227247488941095086290610291417177565412762771807442445102206518998616195136784119583478933627698872806225242037646755609467908492101122576036994559138738719220530303720989096917600156336298358136110521645576450420687666084018552917137673174884935742399763325109384846356279923190242094835953959303894654435080215154849353961008959243939702357589360743323450511499770472943230424070452628430594386013654092186985788339449928248339196627422355672186932788661845142959514701391437167496366098376419617516763325497816969803496180259663716608457760726540936187318987164465155934868878440484684929855686770944714551510276698499429730168282049713166895376461197229674801298226134561798054379524858462806481178959644480098754443648562011966218003579940838312079360816375757162917387603552502272944405931404415211317822614136995576396094377771467366116567901497724499023014545320946102476472330803536408182760584241219328288824611769251843834799412859713263634058189595447999128765841071641276856827249581857351282128523073921115973643780446500022594591169629125765335896266121739461752525303060156260413217808697499244707188040386844988614590654904392236347495665123085236068217279528304850845974926795023054561224242293517861412260652694348386889467112389897553699985784576949898050841799684996363420417045714727882196212278693446335141843659612466220448286448135829841959137509972460926876429389310300681334728664610830266655715433572923682170421751738511640448015628102247229872926182689541063837521319517354362129383535657464974358077754177345589257823414422947153748558799303676105600451540105515959032747659226901193182581001304915714832816741473937523291663612848331560606137937044672995685497281185443725888130382794311265564274868112294550807127160222566331852229365068913472505706955618142439683652469873124433204767816388187266224308615642733148750316367901265562058784494798250495092448047349212787062714210015751120827514168887092953633800102663522488439000683182075467254287076731554613254044857644194981497604718530068472498788995957962802379823484248650623250348688024831515518502407204139842394912367517676858248789190558770527183704191638987609353362250756854971924296694594346159871874836740326321137280884028743963970794612620326945486791416204165104078937743391476499478323109983460454528029232664887864084557524448766109912645247554316332709223697768772108058420144860426446410770118881071341027541309632061225020962515717650663282339269230455381661983235651989896292824380218459746100161861819821925401054895295603778141151960984543821746381060626842904515686910410877080979339466672382924349531558911448171344304608046263531863441311544935399737288784058492480641333085742170006008939849061496971132162751483633536803904643349801290885167743513176644297884513647529681379119116584256816151114779312096527403122036536443992369501763487733252858014028349065537083537557700411418293967668240992086383587311133254790706403373512393206842233057759931056875191067478829310076068653350067617960711766521944358816481443837135632484010167992684888903527064672818760347002665183769837521479217715155356262055505431215660174604243343132075994542304186121945146991673289422342481600614531314033242600315478644103705158302437139884462305865021893329038080354968727329732990740739660117936246948694835918033665206269910144998311932442480945188435867208974181306478037451830985392878806701464451513265951926187121802178712060068950677770701402648463165001873705741127243592878523162431887740128027565053540912099627307161057609999174407629210575978016511298407720085739766242479794775135136663295706834284143424021649449503211642278864498153415135632386003524541642475296966145921925714081986629330954885507588838748419254768721310616521234093561666229293223838198586030814583927411091216106443693405576999970053016343945857120428466387795617445718388947288222683803112255945616141055182004603064355827952693608834880059715661286407819879354500348294718639349418991845948351992100859317859374490344176025429752719609297494800683817368089488550223868785460625127192063911975253941131260585656747452035871343151979932698008692503883412864265671018696384858934646118051200862040060922271376806916184969594846488285181306880773404891118716764890930118410821075146472007907600439307622286433308721445151315494343357493658979823639291873977014955582120876355283932139185167515966550701375406504518020782352279245116163938007629886804533385987140426903629364151709748641570861020363253054106355584757010214201387833664179256283510997799805141705674570900932279017279317264946587978673276885030607179299941609738700332659811940006197424368135864631424398574354947938260035875885561525036950448474174060423714510176540760724119354641188957038128255086010952961633979481910386168872579647304495567196383459827729854539466750153668110258385325653550059630813501248235181182997596135427466780399121166966760288146640151547007977287741847420493604095701450454321149879379355428859671129101032697449673583396390723213443047172916070413040978760409746643111240270173005370152397701056019956273960068994443468686609584292660315289288666845388959705994474131159548759649689916177396473321609870903704029225378535991056675157342414711813686835267513234980808975609788139590399316766663088251228207428758818858256768933472544129485565841750417001814782347902675816940996428829090986220772732977427181045058547207767589426412476754792775188754165178557388182351372122665870117934495026587309718289774280217028567022381606359451052498230021926474963991237020067343197300010143747998538272153068931092359266602019341145069684819436648311825031408307342890029732444786529178550588337278235994351756054343838582616309319641968937462702978194558084663348419196089419637422674878139758714475027949107816752845901460914477193614128071476986732893648930178900515764772062652066269888354953074808532538351513457438586374375715009552322347074425748921401768755602618879920985730033956030049576055989614377897006662312921317533758671132805063205539931279004309356915380135345339567024160296710616554117360499778265592790186822796895310979828114587922933547695605084962387607054972270977940866204930857149453275352671510138661680595468987231337618604698445785442232500657147709041764771775424424467079632467453520973880055653661783202473235636957452298945986324702186086041791074605229160441926683752355202303576661030122360944796584685052005512150163858535013815366439532448628880879202913250239315283131249209799286566032404985097899951361296495599678200468353023498457420807535909428571142813012528935538330893571816735091777079579607798881866594849824069293060211322311749994917501811094673948405534236233639464153384578116506573762005195173357000389427419923828847398261227717160233332918652321806321374166044403395361577478016977452921112104102105011020959157510495695515497331989188824360535649189716874455900395778412162835525321080387339808728966431541115119425630455283644677060284803719648514606807416986956959213997477144106726303025960623677949229196166405927732217355924436709780048744112022878016070769787448836212718065093625151420782637186316648867591933588098011625813098860757493831071369440311600610209709673191906998867422302973626702946382562511581234913587654907168992881755926604308684016521842688395451069241405075088847620529456621683951546217600174114953793151031274749002277025342420487081560792284101768032408703348471457499612258857451729757219826219067383138538096901742537253709288687546044378885464753859898267116081944771460445252781741772807908999525542570491447266068142467451703844530284124922640449151045874559163342105027276837262255128028607837350022587184370085341027383227598221138458183386843197450098728918933949143282458859598986825107516040076294333403628691645669703902943004226881589334602345648940039441649871057504687361311278907413032965247015417833140493595760522945289463717350794506537683626644649942634915088629843085524052259119259046304424077707465782645895702813134194724202356090541948386926501980250833966031460854940993658592807866843332014423706608882013760762962220491222488333696911858808613248478534158370211550857080061753530123293769549788938041194163071894164391599236331190541638391151105266576268690206096410211352110577217541501625707579945063392091943666017218003811941428365746530394751859933907735676912482032086262680085864893140176970463368248380780891180489771306175173789599723928414051872736345358234410435469694867327537125449312082110668607024195933108694818702220535741006781019659266786074666403636848870341649300795139061363811336591770477914544203205911765801935279165160400110078279735487597690850863566711831074294643674839459577673647717579188132407738396853671095754494718012257867667523745784544980382445129450802887516020690978976062040747308794047690474497827834483061018468333442879078792155402465778821898902450246371994125536199504843430049405071522405144205572694417308254946209861347495263065432473231828569931278734405644365744701796950417112224103551912180344353228564587743878592027119295238509463851266958689798172175012853183644038296733542222312425419080639443692266869888838077018481483089073928469384670249134542346836765098434599736055759974704914441265230783097602292513871697461594789582815383813268358173159383598674885552884161752439009929074640691622051791359880587475745395193612995533238102731450028049311711260412160406584433530508823707585329463370801028817211142329798208866169264942751629068996483129344334829670801303841060873557963324847205586081747721484100993937496862558958442466394286075460098099272947010920806100616237719881049784281691233670060819018726181492177156976618795383150609310282558737377190700968497901584977826072589052087617873688468481588523259188166673075104075688167335861801329532159035674694675416994600440307038244285702648854841304027675748695879984461470908053921079078817806971711815993283304578186804514993569817800419726489965907586633148073355598523089974600966677407305469941963880238267793424413506761909702276843135463689867626963089926350660437110050485659537407035257856472478646959517369043679697429137056308592175727847398602379630366665362660388266441493385739390690414541974230694241204324386198532979009218087635497611766260226756968675426358384915373397722365818250059246138214615345617524904606581368399730773367138114529853948911427521347383296335290787745168091960885914922201098296317325888415347402818958335468427486330685520098316030036091276731052100716205213591056737292779009179620484093666003533832908100131482660636925397099224223657232497837778929136721636813690208737312522767574589729601988847705448764557212744540678130079161870272821500697096013813828998191683098676551885916911445046009900298510371569098460386955967554082222756137639264854773571887256188119600515310557956098255918118514901279921671808383040170964504971409431205406366951012771614347086711308826926863064006817168410527758775090825688292763704081983216175552380779324405237379397159458148572515725719549323759055186317508285837448317172782020694614661188373688763667930128799548987247930754003551436368241986283732762409856483378229353858079433193300717974167558743993600183244117550978247569961949324224578837911462129419150188752727322786600935982458639870631671439003439930483908178718011697352324170783731455227160455907356813025427014253644068383060372638577236330511912198233193568552180014846834816651430626348737911773126012277711134369782006826832249589605329537641773683089570169583320590747740009134750211027301063698011142495696198606271789552709617061848345721048310965295815793585350220223535195825991357791965751257839453468423575594855303967172692996897218166140662881144348170018266141582525159275202049848655367827831396509749323450315023563088520910109703573621139526675927137007812958449681412146906929742181800371001811871667763666096860790195541538858259384576446060136636597800676633761192002698679543386746927024786712378261324458571744312490451283258002358689885111505441393647220342502772728542309173292132975377099548921736752883717373699880531765254639591103461481796666815586909697857621654629763536511225933826586223601771596884020202205141688876419985106112597197403682768248297053448832151893920744726834342931321630333950928260191566990315809811940004000528422564020214522536310880089401646885093647278560264264524686372154060333710132927313052814740587679811676088495249598774417123963669890816250716577893873382166300914549624428636368618141179919363953948097755951639108719355296161932888756158172574495703726815239795748744604082239935936280878670172153769504056591739844944592508270385536600782368052791757491479303918088249881185123576929543471919384199038887944354711609991875626457054140920859548642524722557766563710210472570392192636626534426567755983543291599496250676096947630234636384764023971573872363129341401036747572604355283289849772076501141838608435312425885972501974875763280799993222422388574207770411489405059571853364571158695032344343908388859795038086466560365260549066808793694604544425846820522620332594311726557931974156246905016483536436204145133795834886781812289641607704990455157414197534599181742136103520584282343534105200634903192846215412740309050424120311473521362100112567998103937923401913444582880310685854028346549546297254312089412524382215677848976638386102769371660439493042833462806597505126035674576596507202321509365612758524156075120873759400474768262433435539829153633928983219008987929909081767028399275833325953370283381591642762768679727269746199906888049609666425502049602860758946474073280676433061940889281199518947956340265597992464177947276829227909266787845809385240380262942386871367433445905879215853789202900619993226333636943160304957529848443915984559226851657775828265351921046782519276814383859347266491082611289185702133450056436418105706868367320334780086948827462353568654615895207513977005170819432386226136907484651884670172504005789257346949384039587921213732122249148054453256466290611830895166488209886683423413822611666548970194932194437816785377406191590858010028315699203894025826229989881444366295173621557931749903684848135217457310395633165925299511511651982693401543073218585049643205440735713829728194931772087205690626731765272388902540916133421523859560155892019283579249972349346537976630525630371793314636953983190704221834474491002183348100657020410602519560538975862259098817939956358121601214134312797202789619096743538295143821434833863760253516178116463033441774242350273184018002147966127038801510463882754301184834432257606755899221121566870971284373239390625121025472763536465018193270018109352302014956138832393323322079617855745580309277307638162299002474353345028854594608810961572150273460956470483938782715261626741833510720021801101431334764704755228286175984356021148397969430735305478337826472084916673911856999279450639210734490128599973967859657161009759628958329671638153608247151406559287742024556240783362843319753383518999374761845695964593887431916494552935848924833356449261988772455954983724814843850857781718790110066929282601808816642074930046763198984004583133960295527472765032530206590889678804972595246051480887305479026874358617382724681449275189948764615440068034071931286048544332607189703294460280122545597087672384135739293163504594261284167049509648676033033125327952957674115694497965681064251677737744292361815585873044960639437761109290370709385434819826291934023001546304372114064259324523479944981556644270423327783582903806766576864022882753762254659288798911702021305808448259005298597153960337645110693764602865779022963921377376369448363259877023499011713970021326050702967454198507462637778085195038050082036065947730548549408340464248816299111779003726148794585880156535367749460583574764568236757636882377369657909859145805261423095156138290023860364150012594199932277661588525106113607399291107378339824757440792512704717905978282068219062044156590749985743322778896187918003911855714455961056298478720488999658925427350062690268812768425310187228307940993684517413150644480973075279548924492487791614571031411756787788497211747987146569057655829569762397486436788570131794566504189474817642942674473972226078776685607443944306375449084373087712814632090488388532651624794471344118670469120275220173440696374982653354596741433240952062168444715888289484471080701493795178345849204121953008518598692208971954257762244871012772241885821219480496289776985233952989906720926185126129535304010139128515481040204155038401877537164588481759743913567155782609508966548805345634214903277526924380315950517039916215831977921401284125165184847317155535332044855516500529183945201910876129173771933859525062651348001533073393057707865345749733082816868122472641764345692603101352491261253411453647282367647014536071549528701683691270265887701973903695273588891378571647188172419241755377025838461199635244180347109013514119394831680539391777298737960537624332397735702711417671938111833798806215123657117286121076935361682416933907838696042001700663627792060590041391811132225436697312046683623404308777542712913220432823335219597185513935728097028476112659336588726636115226764054720529796647810479576618181929164868436893919211830326322087755846726203514862864514684632686486101895835474048912785865836167594515869208597665222993028145485011219571100394899152509013000010643594759017949444851679380033661332815346486538067766231543531433074759422513564228910915150478771713132810619631294667296852634607131677521948703999311633533558433185702177231796044548060857727312608727465474816613461057335634169111228554838656867554854968493323311741247543722395523587527156294957851458178851132559846321697511723953544142229066586582789775626965096520342801586695113132607897482662440637725170892187237058649385829072634863779385822900759121471624022606841097296356525906719163477718992903478146223295581879555519350328061570982714225446716473353913062116483656969249473173930813867432890409128862312582580593353364820291695446160363709110003113062853713283204871551174992955266549275187436950230901109936111141205623644462851861224426015260686972400950213057327774893448339706604581021854519903341689858313936005771170085052003181539757377007609652940425839499192931584318992795718859212509335642870961996954291801658282018386259289134173712004773140215786553447375890755110655128028095136765887412101942145842302936548800911820305090362410671369806989727592104669696407041466860840053309630359078234772040543679163403114891708138697146571321775885475856630031147276102504530646986910671526681826080996756939360982964067293494533230950895004744970819013593467015653360194485630693381240992326050186559909622386620086584103277632371521103143601736229604698412583817229841130116457848535459051734635525803368976131446741714608436656040597434654367701014673011026398529214025852726650278155913347814310149730518619536764828496397690259042463972389384731801093802679721911027517889805378264484936279763795941379426987155573347785558824906917030136432337652713870872560484078098195927810218931742135329633209850504052356051799986435701245877138992819101526170989519152009702463869649214380568967453894846505472028539445519316422310765400123982743509019043959757112524006607192361539464691997542542281953363904462673699135770839611782168058693607459659721790262805807640983325834197237409768452267728046452708005535928688460915404380200751438559646736175500345514929196647729824491349106055150404096179432307204543729766620737768623991279601009115320215350401710911878935806093096150876372676137375040342766767079384341494085482942859441208284896391165651909615494904152053736854274806133959539719227454056435370338629206766835539266522666071325755719848536700344264321273516052036270373240780763783011357124196926233512552625115446674203015899867087048402042730501936392606574453661759753989244235581464839323654033019541245374157510605502726221551538996404570535696855226047658229387474309641038280962434199204469290470606123855096012069796117087313703783060576414713712455142277055808575199200146114668729014315933536316338317194176613925775031098699725879205148248733021812244868511329375496726221896879500223165274048418351092542373750374933496847567210342277697165928409808686174605963221887632910636060589547905404299083580085804874445250865897844925006306849042169413052583514344667427617699959947188451391580137860460817964530487751176823463482150258103657784820496762267741454315607305925477100149873905482146858930757620578059388756652693283460317319057889118046601433984127246671675558670374747682546633907720503009984670820796451701770915184353640329239985399250898623671511760549477690561708112334708518687516951703939607779394845846000967336848848496326854612352330026672060673572724077125578052118418157175770561473077301442837158004464033845089487157453605461587512158456926188844057714315721752754948999060965193602392652069144260174851952310378667148118612379052686397135969075541543116384512980953046951454152323801960366930997277462407205803508305374967248769363713933729637393450532566938875757254822322173585853716153634172804711842249844717830185371970075674919640853704009355196980152796310910494980115267099418929647246817615272299819917070754580534631792248336307822601634976162894640764220798644918607339424716906891616116009667920285135009124738979894144041087792994836316243575478632257340099102552736991976939244492705126230783544656923087921330337012315679611228463371422604977821389259694245135038118291383677951936098245083467281477989975000486107732403484151247065921344436588163579780849106705387411371773752096219798257733863049802054388234818478987724465438103822759453013657581498470644410941643361850587810390590162045023891658030332391831638972930881870100280024153715623979899950023765039653185175643742091084561853051334517927132056440476197118462403486875206270903012245637328218940840230962978271275658243255494077065571678268500032881087396652168407913717691198562191948812640708577803667103072044108141181731068744880886349595459456123887684157103709004414125310009172778001445196001333658234783340304297227965612456033981667425318357149122735404433549815911052506667095415166268957437885666026996405410029539547793140683188199375001466324757868006006959684311034646196294446124685464504341721840796250453918728720928020303328986542371999658095281086379079159001790828273857778782924436282879532737670866194757591661996164091111585232084805939419205452159481854482545633143514665175383890997979970823498787613191694276413025361899444530525294267237181358138723915599642218367841788190095312501092308180737277126403596350141574320832196633127073288390508575062220779256876886803064568692604816391913423381903422732990567801014512154945950550256112127849146999158701956097555007310412649903368943136548528834818736807293410604550067766089986643836125545110184146410354010070048344234179033822273042675334849750557750008311364365228240988984471967327150279143453142662676177956576556445787601935682147284842222564248066245724636738304531632777419200804750857847261568147557174025225254062763468889593026169506224668943381330066638430421655679669969107749980493398203565717661598892038778228457596114704181200134846637140604842700575869320251024689842543794140523260150098346091010201824327524484535800239291893905774828919587871676780118995717283012113249643035818915510103331690887460311346049674406045087230144081518720880195938462911678441328836876965120329443170172077531796269954034612687560561746440934960150905511442550309497339000406719609253585835607455297012139531878666997330512177881081660064585311844202533805645010541753562282846139140665601011475738773467679920456102719055059736172436626611009411158984782968198165265014597810802546143722720133749973878311751069723259896533619420908753572230298994697825478841833404450856373195176056598572462996807402802207262240579068788204819503375399070042369486334878429389715769801451916315993380656783862095427827535748194816770364062149974157768519935747141310259003503815096773453258237705701872496423480586838077724750160083604893762567345931567218408095066844490700884116662428299866558824912134863978257389494404907793446904376570364626456121087257062860570891165351186870464944724533912807109506953841600387475345326276683108517279952117104025967724894027461536776038928257242425949580012443996572505712787749301389983133367133204117400358648330583705524312683350569557515996405101355596766641352565235159141062624217380570620151696259274290892835467391819632007087243269079520322290894163147413988765805261064533112110301058173904655195528257928967223593224160580734453264121632283985103184656753328207259642018233277410780049919538376138235545241946322808558698463889387509647062090143702361734080049978530222159972586978265848588299772444148554768782378137174402720097197795626198386604279222114142791897801897328546919121242263240117923472195806197423306769953622573625355117594602387660688335551238407896364011689395632022765916214191207992260941937212774845886686486605386393003478386565512866282339220420405224303146513872370022124367635920186124538126126345633968023275058937671686625136990515635413426759571969215894958103799104820207385077279942053421542167514141949270280390354240871403622846770011333829725066045056611544540625236107392154005071783640529880888497343750613603974247389825929633461559762437053569979746342125522615868289719163135503842748478247450250497656948822777464479251346482313219617091333420311328137491944152988947657151886219574486137538197062508553955245075040396059249252009978372213551883543161346819143196612704489398493914271090425792973814148576845571167944455247867721657680728661666168104186665541932144212571286559711355629901803381240041232183916244380576631127308919727034356741221508640679132880986314263052129593208581930971372385929725812879269816666603661334142653096086632706886548588230277673945233422903375149036061693730144543890832838403327710332301127714742533561904892106318113270360842278434650834269534360170329626063282458290670130579638848057475672251874774069283870502309983315509842180568738323179752071353625803859641995776901704893641325320012475063044269565510319378522924322270018663062235804742453348127018497915855404128679344064540244044151685714668149823284135156681493299175188682795087778154455990064527194613963498504813939934433079467648469951052929923139434779397309185267737454618146945881487061715355292851741435985073118325361237270401836883425723671883895295412333145026077808954106545725474032067869514025041274114168539517686032644646861300444448373789297871036141634354278631782857363351368714055585518326366183063004265130559273039723389644687263008156202323587190565424738977594334334801960128035495869214372122222574984320981588979596148565509113256030640147349189839255843876501026914963712776562609818847016821531463386080136303550477137289047061350847521148732292068898791290111646605581252216620896706184514175502813554987041320302728154433844300942555747840841090823540494585141860347489498540866280658386914978328799601492363969288165422115099424017548953637536767283218567823766433531407799251800934426345607176853260383453137982000205623721426523429752026341482127194701006354322861637799449336224057398989421719134420699954563716031660040874217166310996529633431449637320786550544461369677461454755785005672317519096678567805558380955398337073561145581787212857935461739437140047635273341017505226954320552232098626125862977145299620604310515647786781577478992775915956002901057124632292397490306354144618520269685276042554481908454057493874893740976397724030578912051439473689915378129877379735727797488531931254527080012924301186453916173110165150182566177262858572877708462146235340784973366371433160399969279793598233929063394027741874001535320217029483360486684198536233483208739546390738188444555220468283567587278831915562184124036043008042339308467589059952601644257423117071210119051622225023305690199933939182478617011469572587306102073955620937268414533127043843541121459955464752729097897136947462195293307542025070591004646772584563736400762859562574161164629678258197178246155757841390989052722679471264236932840119851845747773390204446697451518417089670439499757482135838935025914157607276121961283939856951268079372013887407921003580737070370333048547632391354180724223500471097739506612926945795382571279235536715551601615819250876458431612299164837022039128060121542587252164415038048078164359876791699744870893146233040519271554830252602071640613095735733441927555559102101907392112346718007651652044911561546293010901341075172492200004438580990491064994411383130723088451583828843912224966976229879760398590540461243714684958319717649311996493848795553780671864774884525584406012375416048703429634726798802235968915957880149199654668292959821632971508350088886011714031319957451525799393849483827260726507347154531337562758303075175098273824679475578709351277324410562229174851025446827759187554448066607899680991016856719014835597933798542190783059163756146761812512605717592865959843799726102972263429636167754332810252346723322366220597198724136142501747019164355586100138874194221391962638918021207162389752894826591910260583840574327815784809217949644753696241232164638461146500834917959100963742763091106944019968193624566930969103925979095445646186196798808718334871784085518688188767756106281335608359050787941256152052473294114271451036030518563258913664855535971763905549450280115964190896403281369839895592083178081371949513170026326529543610337507202045635906787203763928600517755064870390036096758601486856604151623422376571783952722375728659445645139340706820020457859449658541786469964396276063535118941911424813070209541199263335618569135957664617732836279876953005368484034488660359972014405061616260240567793372246422502803774049535110373789477026403328704049560270314732156972571973421318850201804360245258687560605253285573544268850612109408318904541609636685000548413807775817944702092137507363203164191992568420272517693700072766952756517129860425641416752915948927438458379346965174785083222988172296872258686246236626173328599586590214371554389074502610685496984261956710621621751258496124917803525764084612644731831010343847076212288917816615435719089620560109862575162779638410376923140560495170404101160477954368498294092570501447456141254237813079476779783084917732047281800276718390370704445354555877064293412764713882218551031239380839630485498456033580512639216711628901578762256461300968899583806043359634979565117243149092156312425727343423671829736355525316111682837767971087350112887693527620727992366922562486480374473298046638962543825559579288977332143369775899306965898380933868507759523742280877840423908768655256514357580667006060945763505406813905519668855398861556812250231601782438064078007153649018979675285215288046721504527738484021446036049229517008003191299199168623971330607054698073337544644903581210480919764074609717805579397314273071937198324894896933407263610298533634151465182859181498827209275779784189889946817845999588399864577423395087025730092389139735996811298625195987670187374151257814650738385172034403583258588611374163315236882205936820845339499505155903128028276264001552354052474267588295534066923499146990949193998003959461572719180074145511134937867984014488365492547805487352251703874403963017985526441495751320299986673826241099024441463107669734344816893881953421578842724278681169131000038045335837088022450425472117444358457879819041967132815322503592850180276747813148128141764915909197213621990769666649511996568331565871227441321631587562298467507745120469568352974989711556599134149765105183226063998442846158739464025737566232299633963682471833101604151482272019847327191246353558820394692574666930895755080711339117341224366660151276294742820402420975935594796503327408481454747192640431287112890705791536152000360822989056182950291941760918421952191067281483395027478426741624074416736919283138302259871474384897929620305934539952855461787753095718669169152739114054107377109018434350946232626683803073679050130296165099555117519316035002063291239739225237121207210494782198880004255454094116613488458729865845717180240165144974387082441078254619727008493905001864331352552874538678247466884084348394439983219873599729672680577754756853777457058067059767679278462530030551113169850596657419076685587709121600286891406579728007611989918319797015196727168927905272469766660517155517744124733262158712505730626049346044410226744335208568464223517965353689119430943150139641042415778193834655507599139266901703022224266676516090253634594822918868035293545443972570066367788670141669054481803984150350620712301213989778129462010318169351435845319340141658275316611342863036858870069788664804271542264952146092493481502424060942774708254920681435554783664458581855151904541966110210370235276920285983522312166190286498263026655020899504182370085537348232576245366936643920844055536703577643393838638548114594696370987055583549480774927343224781784430762643493593656145281205217041071256194450852137510488322787704848841152604499996936737376887400448933986842416827738767748596425038737481658737250349521459707001449831769578438199733910539392017123195810617815631906115935705358534838965201259052333617794058961682308454549435646502009878001888973107839891624899382908176962483427634718037463304235004406844923149970698551188603018869387744860145072048863513486139307408849928360031708718376203821632747844933331782889478381192606721872683242630516514275663626480081980990512258417172274846244411830573109831358396925435367378061089202521057987111352631818000700367837124163829281692539583815521912340998404861854810579830504929541588521859940510428510387318771273809098882944580769318326841689021093691258363241900157750320871507635198368353573515212173224859922540532554895355543758204800542404731059389104665256985984717566286714675637161783481104904462092121141446915574922807887727301017049324425045448735741390108116962538061055614653256961222549910501342107121908228524236439267677495669254624131202407770043524380769456065491067060818106545874548990030601490715724753130970756079218730574774918219767341735790660158022798490821807441715589261894319693048400802510530828974694293657928747933767092574555151581777521050246339574988191249245066311272026515426587730359817659119955192395982339255242844727569556177418523887545910806557190008039271770200296891974978204183744141415841113582755032799969467990952162377361698412413086746162329231591358898101960516012667663450601369440467237099886449462463942260905998328378963221964968216437890697797007999649951150601890646117335722828343320784299066739899602411060122660820197058855147225773151724538732844037488141900764470746818879144223847690453603361650058391729421977700637861850029260453370741499490230588454068106943704849732705148125403609902363747794932833531011874996307113210607261929606235219546653200663053116321273187951064992643567120524639536143986402807110742571785372116535930901765957455222952962689773190687923145896405233431946422010468800953493938327832088902028237159018286849745432409915818838508980320156081999570814446484798529242342347940318077705460064830260086030519318564786566170002565076203415699423822618781423529169114289623877357087205142795375407975623175055681485523245217501381003638001996691547805469966141283295868263640153011291413746207388710176399370324780207492704920044615979957186279578821646873214111558740714057297270841715701925437517054659034622485525429198706378386264222415965708730526937917291077647799441943049590023628308047820480847552806212775586903980840953339530363629439401852257447757071008016835723394817360022244564416610652340250738545413246928212294544620321730540816263574269672452648881012293798491421784732097350935682439588440902651240104368293028192967850192346402405172548977106108858362941255636704039262238982641154899924480740066570819819471057933372264711181072137734167819040553276612820779017241804529995076661353551256125605404368556168951676438476797509295380837075136793913387702414959098639184406188409449604414335114881416541717442488643013071797167679038576852534439350120871084320376396617387262008000891378637602618016144233252246005915163132228143095206515008488717895672130999347612497262127036909221843960558314988024684619947520703962083443423749331685859998473097314820442970712077214193667611295190450855205408053305637524852598005175300625436959105024853800155383153351542806837508350679990680254052871358039765179688092650500311419735632342906822626850447394437944940887152274391446448818150668901948383346384285364536941342427248278240443779757441706510763529108344418150681286055744202038647899412415013442175313108014644604171207100552515656067804761850408439961927623888284581715771925068444711127191015044290801560913897720385779997782669861550611086585219046859802875505228160216808417037905060619532370169884393298265770380017464042642205617530791209104716082328485801562813714293485161120317290642487950069718014987227144708709163225852445955146032379446221436187704000516669344322873194286594091294412979384499207665616248989806108127622966718834072315929556659533152422052922205843547837270264376775576464758618929173780061138044983875623115899524204514318110035552443343220097311821599938733883886284247719386375733891631780419884502786072270909659878640032515421733667346638924249176344933405857066514855832099402546439257720620013653528188029771468744767601575197889695187451254225089210486859291700642643702357159932666371193151908993391095076358942153432115162856662532643474925764372303450225200181473748101352968734024667594954827969191429526045395113494282894068248139737148479979074584948096809945708208334093946513385734304326880842652366149883088017697541841219044917129405060982363920452498357861078121875297118693447551056134061343799381070584164316558971963537019865630673038317066770258107538213741555147840696121947039955571435428479644432609830634602314884883476216706259208581939944824894776407264902216393073638344573320362903745149005172406228721149857764419193379582576068114527456220840095113251387168247142105514100364414135295886236493439146761279497102626539658100632354276387257465366767720536314482658943842044771907314689001240242547558638565501384134102744398581108595754347302156749619804721978997842897314902749178058735804672503223742473305085341621253838306140797893261828422697995173936487832225782849819882943032814344615379138273855601879342631781858663147846721965533633427205710309841192394278412229269054130727715725388467311764158880780504642485604381506389662264270313962241384484172872151875064150315131760255770666713502091189110389362826819668463152583233603967871255120582670628502510730482344988262513428851915723468941292625974974656470373437104143676352357876909765639173992114771505511673909219966041694139356376925994582567805068413603715114945437736724569286057284379325342578677572437453157748591453863493583262948431834208066765213960798799440869613679678721704142178403345141808791103890506199475429822495093717670775538151547234919328796571484119573853515250193069118578675062144868900032931401059828907571033356846293288229220698506945310096353583404452170616933015547028016090148780261961734468879794363275802937783781241607581558080882266970568129179393890573149836769491494432995344920629396599996795931526089015833368317053449178408425700542344443850362747474469268174296368807648909009820788952819081803637385461676236564964565627192826801902995157921674683593845239667566832552104513078162540869233306619763449563084590791180327705601495728922480806286057711750426799594506230912130204132266292309764981334742547259120636053932043788074008525512949950579600557921444978056400731516744220031155213440253166270902303065829119023417353176366878328958487645493115840623573064056922693573978783796280350094284414165351246700155204929514130512465243729352185477216884174813251769693889377583470591898809424356417983928468433002254926452746832990525847906668327771869220437255874967320120488033402172823790432165194959102764414596915993775782024496363016038420079510095976629851410636397535327122470043138260280105484319247167654261542469151154065165459881726032895227436372629752872521829533016230413302371060823488077224460047632100208861484906072738513535373423308016349336038367250238721766538839758171737787740156710765536182942703662534426863508439282006221741378956042982684793501239298438391537855186583965097515829499019261501350035994567168032979029424024561341387485866977134287126546094947048398145362707423849149327773248689962540554360990141291191863995585012260779910930884912860975708556258848211134800965179670245464879257021270295521111659391043716056974300169476487918861354264314943137867111926901349284322520981662592368195856301923107191811353036370886510528710701925057515183721088668586011895803035136723415608217015917852352200356216468939467977431450930099478003187514680947803108874693999937148194077813486919180006628720409762747191488138110067541132460116970584214841530497131839742570020866203267513584552787991916033500709202862408218614103247388898215886617919619140056389068505185116702202641892306585036413515961553649198678830500305738855827794571429338343910772851111603198372894353358012362521099237290949798724871570591204522867410145372585582842234908655441954656450535131387123069348420198847421972095478868584292375053360094400080837091826574910342155862135028201937588101560959290348767150465274791922948905263159536667480662666677569808050817127264467746034777893788477864396826383676678443548279914009537731717758698889614770847668388848036815145376921896040900010090711039675913689969742208818602266233433365170977441264926443126746656780226395817358379034124865662887757594668839972281456900570009867443471696909759805757927929434899161238533465717404498279727376195105273456655967759366026993495496651519657565661122043551746507845701181915535459759649002095590421575575907694036140568909350133043696990034846083790899081311481036016814648133032128190465873457249262903976552262693584154976895120651733537184865542450848217707776493833767898967259053274023289072883398094304760952757192988064144909995838786429686703416572578370083709516674047212176021329466805784892667130558741151850478230799964732049649197416897678442190334895213540103704199748412080859614102439180768297905665629502208694036622388702677990529255648781725426592315769512945691842582555973855356695881029224862529512091952747510330154709430130100496019782756350813414475528547217462584687487748847950618647455552358548726721077294746930739630691557944009846343282684116101743338843568045696665503547551989574186659439666340375137732349975226624493487193499122444629258758162766992618831469769795212850032599656040604518930186295880300613266374504055277745190222577383619968193871199727109671339623496793220353950644406720496269878016118310574292789707921051291744826141175808389573029703588590893436296035709768519653859126501223250651743831875504720941568093683902574512440823704780168066255320292347232266841649938960174812056039011260223522397356776612319134687341345971170090241275510438455188180832739393359766236085222759996066717807778256593265242149509896698953709273507172671297770329423015066201580903158259288414158208266386615901277687976552609758187009873587479084472996092973723628026171269190946681271672638021205157673361816767169399374579064474408387703227858706516711761311142855979799212900085169739622112837064355022334454599250476777627633683691725291999117006812532103987158982625867816374976580174968071606551203753018162434369772530118144660520842199898387664702046769922256700140576923073880699041094211694026596564761951807240146419203166714622538322246143761447783848170272317663043918749127793119184375445180160310015603740982847811670627068405875896657315739290118473085616109709417762475274262690169767339171584686758069438823934960103516144377992303714462577131869226258186346512781421843373827082737614295370894061775103011733740063715537811527521985597688424608605152163057973452223254415345683636181280037627221876260457886607887986829462251377690714696318393405874633454180280752731619366010572100181757354868849576144758617774182667791652055086244650199121951175307585890246279220649614253871937012309591923489788438722210156147677624928713669135110758846317291210865682512947551675690023325465549048983824086900987327381565982648353151099471905401203337219392900523326581813685389611029354255126676158386441932932608017690703986886478301175002521241831065162016817992933347033887303742256440926985485678897168330869594008201014016372505284033854818640686620512564560579123885609685190937117227303255717186749726535004999282898366419742850420704169042138013614613803380718253497719843152775581659141123142367762993987205899621850484601678063740335753762702951295156068044281699331643790735429158443634867079012396511311308863999017452292238181560169877075565004399204938714896263078597487465026858131186921380302222388964912548844194339203784375328286697437179329547055020335639243834774648000138891242416208619542900925966254360999080859925364956171473982325787499481395754481679282318568393409449823049951636815139821366971019024318372177658296360913032836620796609663167406040417862520584048134364727751469191996279670127409120250943623317189350321161779494307012799552206888133613228816047155214098665201480083646687071445629837356520628721866048897117824021380556640196594007322360251583354534848023128664659935074914244123215047486923920308079857133926210770853671627248161971683007403400608667449162525575618369743067169624180008178065430909759897470638936808896238544078408779100379603963909849614919918086404363307590951731519137164132752031348032671326702883046903110267221080367051455229255332255562148056962881063028379984744072798040183018064780817845586664986787612588903091146118381951031515543994604348880238764325099056898036966297157105679630854260280359256048748540877529833481472252900839243760341369968604259339313734435005563408349898028044846617579587075524544850868833245502715739372085636555852555473468201491307906857151231144564715050969754029458852947029649645532625369129366853454905310865298294424559048731451154556606795165153783051213335919519377179296129648134642120494584640290335985064630279318481470588866258182498683001482511909199134426379596476483851829062813390836004007888857286048079940214197031568093170472939189078361207515913201630048103014928589571310078713072611394380554434241705657554265004228940759327266360974550209621388266745601087389585427768260597848549061398156627219575030475791955737889553763872904234032554253348075190215281165104665947325801102646686911003907089811468651966084100933824276752719952837402274973698115478978325579476781156187628078629389333131969720813663477872819282450116805065910891154615062290751471025555723325696707056189344017888916040269085610839645790724318220303379357293738875692634307162796377647752542777231796655596086023078007156227728419753008279253411496810216642620096444073786280866741035118938479087602170791777425700247809196927706873278804616139611113839692293114244007094971361136101895915919737569477823086276017896482226509167090079839234469509203267275326127519246541054696104916722490114344803461506297355673856895044301445536848984906352210739007569598190993284980373899561674605838871864993420487657108028419606550120560909774523751910626251710556822026889141934482455323118928329299292554665420847095239537777086955965990136730924641254625963911814031511273286020836760341954526483555942420990234132458747896270657795139586019065410912319706077408904083665500118715416427418623400217035177063445603268785672247633477880658761766462548967278968706013058150574169092067957625755158701676309640957638688965556382138759652349800468491149008870474632430409433453913291488340227257200711501521039901791441192821949901846964208468402214842995975275337210589321952585169101749138247813525280422478802010857643725177561744987009103417047089002596482200312463194796961336486446599832440796316700867553964383545574770376138930493993705077978941230306653498675779948617754536390895848204191915532851032999016181711026154055553186176215975116729192171154709105143797274803838574278882137187849019848625215893815043257709426137447319266720916077726621344523339291472837194755056521492626345631453640834023767752334461867999870731500163149766819702983808178337949266026419510605396480103620413456422291335302313056442058847362197246507003245095462549228086473015994510333724292227295193974910529244263791020736520566853613790432819186124809959889461980321689075220494632093177520254789099222158451169686206912584559283229381084605568357087488772546592477015560514460513742773104525330557643204880641697288203844304857487945070856019457674478103475499509676924791640845273073948182575929487545627953378750793077130137857184947818438354786182223819980309950273874584830720096683068294833589815553811989616199029992981011256881772463961637794865524326709453071815698413709524996494889532070789351130983233167145043323017629656840028023848729100263168540116912193298889166302964390418012833007078402708469128796243696258528812411162773851740190875270887654694551912086015732341516345428128138709263538889453669449095466087771560111336780894944625181495131064009285813516477396664935610998234399975687220832490542725991457579099630655519398469580826025638596276585462096078885632972853496126368111343679381905567456256074907108078585846695707050536908374640443214841295390634689287910581331875960128712045365488098432644259119016424288159012627115633857168461725256632112857746167483352428802217291125381214996275312132473419517454025299696110969965061973703108495830495711771402136292340775954121182224895391347087968961911885931444045666212592036131400916287945292874537581751985581035458524889747704756111302817713418955441971695020169262108464657386266354518533348038454147686199131380529375269255392410251966683904821243636503780158690835880240747709995763379160480295904680073091797523888244612868519330897060397949788770171819630592613773353123639561367930595895370827852386830180091516166647538913649544030181154492164210765838191992628889187858882282003156226109067268253438302318345013728014365700829423267429997763473201319953647625551206882305092845400352169095251195983050589692775561705656948508909769334327639159859104020118131358930436368882084936278174431652687875198235375119480223642202430164640345579584875286107644256226135230807688841907995277855980400984706062935750890335222277044162305454476889858988450563176849263122754011916857942611766664981152640323695550123568540245161003856575990954888706698508838897067009934312982545099070339656255178727115166831507366193019492367333433754846669429182662063840562188421926600748225692233223748230579899140108212527276006731360138798077224287436734827911616723027277528141814546988128566777460376230409898657972679827838415137349997000399820758651473437514705683773323702090958273083079939996813065265800060391055682717137634875831428450616842593172453542340409208127493317287307646361959933201319194428424292802043829734836145095607527437867695548471965927286278710045985396056860811594969467084115913001578338783549368000110089142632313474910047608896145439410958023782193230743202855897356581464410767308291491046088953288951110274328058601453817900523857890125580097757634027815332609703364517329348356291858411409016379439465037491992415441415189114643853917636322078692244267921241564075994507178717124300078741552589176240650418734647356732644050658172348301830851081290125528636733459339588770135200260089036654268504073511207685958104899603799699642106400153438623164979530369213395555594622189649455910161756371114279843696976458391095962017666756804175413733587040833815934014114467758859385940372554495456594914757430568777497155515088992993332208328103494565486356685409162237920464129812836203565418304693963175819991020449281001507546507417688720626294005703792403951075251662214735363037702969551663638007673112536566333712530114922812116515023007727384929469958345057895701950562371772128975726703664867603486649120333344004533843056653480140475304100336521313072919932711963183216449405632404663551178270384868125533144076808943225757504435173280011331770254588799697538954881999313550619036439804366693069515131831801413094349485534056069835357272213855311032669563418045344291328136363347274227325629746995610695246949085757775965964975495507654704328438184068789903507425704436221722287400713097439126690712547330251604934540005752580549521847355052487774496755420359524050819263990335050444434412698478577191257827558755989694523893020627688810966497397862422673809455617671109861305674727607487782527514102416273686197824493445896366485424110620152632205790784148932670860956789555974515900034025760409213502408154405917697410051377611825940682167102537671215092257178511509510768266738270980400014366134116414272249077249326330806678439647771398609832583078548190932158389386197849261846992484010560893823789375020162604102084559711244003721714283099757393567154382609589139118096441698018490503715367991559165086810221523852629547903866491813623912106012875041942928175395314271931651117468831498978610917222183277525217339092697970459851100310344253327365204899753080168883405620549406248499741452949160791807242044171122724581570880254403201246284278457993719026407441577632746611645096797600318292702648636470129447531686485431843893319425529435881136532912444776280943371082400971850230704883601411879958559144914097755513998146832276188235492211692745377815111487719470994528974423807124475213825488341018066830722813836511497931364359498284028894229586919613654729713425247899796492855014393785756144530811710023139406304433895950226723778915278506456616890125361306270295643888845920724492798919882564500794673433470808033334490960356675270942095664269947694704615350355670434233122795967314502252437122130621380914135368794421516647754300693466586756880940846268907893543538190966208496963848129397520744843987386769895438655644304527991747587723359675838618137522009989977856979105292328395295150241365629003274760523133189844293689361092753591806125373191505968373671435906962797216195834447360368140472874172325051758842627960015655497739648428553838075051755205223731341220007544402398386514425193435945514899366875375589764063147496531865713773839494134421418008520631513235310529243511339812844818025534969802029163942556999610723730610707745966457448792488441490630483597479876082655216376195462769907185255846527594856013178372188248960232028430902595640254206574061846907517676250825902742962510597453742378832639794595747916850299356664714824663054249504538705437778483229487830609632049282742020508967069807134548008762931048683278452501879573330312398625228901334819740333908158804399353130329267766833555774115082862722919952169063192233307542583783896693438983624913021353866152613046988488153597538140154353377939742555855507364180864998565553173514058829387709953610524356876232266413658483918611639834216589874958104008146237295424542131580282293547878909410332910867346614043528355631428756176354912434116304266285157289315846632398408650422239391829046367741659099684326235194152875770456055924172711026681724914580871955548857629341117820657512862970811326220225807177596559967393400504774326739319552194050310593609631998644478509502737059756766194708777736425105936129330927450496722916731530916838474157482723977735670642180616406335106701543501103728918768779968176494370119267978713979683552932476603464485578458357350105576660387743262773300639138984490096461817972816810449514206349811360373865430496450282504572171914874185571365192874415709599755064484350400399540380795760509243537871686426595845465487478857907687325844025729409219920060203757294477473250093808704874669440791708394817292009425700589916072505207181171708864545672877716082826529920640464723646294585803245990088846830294383670420410293286298456075584301427849011353727890591634545648550362720078247751503509387584879635381223652476302135378724821498329785453077700810926977803472632801323076522684991877006562438228232120134626826297927243082486411929705525528605534556344765246464406360449496096938162181121225613540185099564220638765477081022788778605359962799025074887630974880669015300163409736784199791756608959810081937890338776882090595046811370358244737350836681284042578843988775357971268796524193829292928497729697625205176035291772904000974648218513118707046707971586958153531103595103676309789926776107762379542686084092872738965232217706082787703571400754256232515271704456169791516540782632164288298772051424595903459189384149379724235901310048418865078819927566565856360078003740074340396536593487362182303669993892632757346996784046995864485960236518326688546196488234522405684960917467126576955880169320211126969945739983480296301350509138086313745361646774495134634932598845078201501831342755333287039151787596146080247761000032185717123413300834501663018990536397727171510964779934820649352785325158959147069508116064160316555158077824940388015059648557655454282633312978751090300918519944057190285847698152648682339041197141406619297152171597421024309643789430002118026266445796333126344856647588828895299222973292708551384421405213049117264021450305565148644683056761352023623271713720526209712022276033076677027311877260687471747320917440576967889523715010273930974341251576932084001601421073359167357870388318124209301987014881135370344311224085229178315920077262842234323997817963828911296250242657922180500887202298428450821427572117237680114478363286770819454401855147691816254871370172952394974881843982021021504764568815358479191571395110721707668142806811651398027018092751592003387113782060331836420582633722172269253094043771896552535807083077132500905904324461195884611265702805809448112667211235886750183936134731519661064591990160886496114794503828165953455915753156621346817678083742415579279916432142196199558032440280428127138504367167283842749647847833216288244637852048304076223927693363101327121655964267686490705455379830446927527888696017303832316842040516354416300285610761129240654322925630914686975104398290988622315549950388515420917744806947787409777984427540025266586300116164095756053324282075363471062259748858290685722098516732353637174761190685433906319620979023303732147529333312064390293499401300785755947306155980204331581108794165720822248771557630538629467767661263070626281220892577338331992698069849896277892019235650987697338425483780158752318769399752812854082842401231810420223590744147928549375528116924512101917240748970843909240749674182655447017937783436706160313685112373558995414858886517845592552807881922460576278761767800689575240104504713782529564511258968806668087824948852011831975306896916203755349133620605514902233475380411211161663208358125270543881344898117059333811962540840854812093171364292345772593562848216932493984588130322059954028572264133802447915451134063297636969674601425975619442540899710656935857545149736891959653195229561486643775696942818124071020290776283015779277805757428320239561230689966876826746028298236054205002982269501085573607826183865386246319845969947685475621735181241096830306218044487338950268638786181516665232794860307147496235993012757581867248548263409632828059372721109674020186993483081004807048217129127664578608029182009921131568204883418295272087787742079088487422255831306472824891448157145563502752350321978928027359436426991591959623848443533656919534225674604154240879393766907784562097128384685890384885649247618716655856540113865057621660990968066139595089297730507924096149488575051625352686165561843753739458383771586739225106647248362507237468078213172273698683250936959507618808072233684392647704174513892400670679906542368177960505923536954722140801742114529308901369067547875935263469994063482531942821525049923648653136844753046747490717466310750182034388499938043838963396963930967999351680425064479624204274554447164435930335994817316692265503847574309680099727942802647022633612101315698911279113300401823261889010651376131851484006365169963264197710602771737494134110763186247267935448634020727070384943628320066604988930539361186196432547710414780682368093585367556855595464301477362551618576467607146914361438381769762592358439286554521210128054594480877672060367161511310620804313968592418029647927671183924934666874550232952026199805028528619407413655373761974182516430895678961444266385339175070653678054399762775202757439536424318416187037898826378020540276353385456472752643186736701802016857582755784394608431611776568738296031470811858400188182822167888891914184532231592732306286817472405906703323793930362183429903853870996004702602583074333982116497745832461367955713038791635473599074512861616664353014296778047111729536536654146178377964320866418835006136076038507361931112223231824323061343539845423420903494072997524873143375249789071121857768061479039986861211489909137440678587637132842498399823398493366843221567442234043726310797703788008937577848401241358573916709522999994307536033192390056520563599015583261869170747036477515171544100707233259666226461346898465078990591031326555327074932697277576128869756094821033906551195584470342643225151526394541991087018118963999509871635638808750921585575562542131380404949027001813446601291699042494645659279053277566672660277326427069401486628843570636162021624409696759951749292756056673342126344416084839938609322313468821821330164579015264649874094718366107356735608656291950959098142249333818142084027027756349164202420065831774141870815581235920596537252336882499607907463839228346689045587400644980088087220946183846688560050188329706244354982563911597360659652228272493787948505787805970598252407783604948462474665493106997263162122275404533186921587108782707211003287652975380684899029751308105358256524340176384511188420855288083986070379755448698166158875754227772706713877426614852954734604768872408309109990139564221806020743547168796324537890779616917137950959116557130830269240133761178081206082790932256060713624206862078572613427783575460216372223236062929097897600167490579243009100540319852330653390538780845196952445023844311082377105846146283960090987377486666256783347883548756466644359647387210811789124703752988700816166972624963344253858230172964501430259116531541697413349887353947670059238544739530227925091874695952681788308282953741833546447718300091677560764542580985408561995668991629767798540549985495294714860708022232977943412892740923859036128170472553242111622761816339992673272755471744900736695109201254721741594073334651294628642739355319749374994155198642314615791880186379172708880858762527841337527601539619282727299818733381859608352688634749031471751340120208161164393987847913282115264161193581901424822940763601299413732382716248228525999974177819195295562290634760633157185204595174706126177099661784734564244421874996443056637306191986911908147156521989886249782108359747972640634037077165850894820375894083379291556380498885873233287106184386574925336058308248782603410205675263068229285989678589115033670306483591457973810418627604065166465732859876133339018307577107634945400484221345489065532435473775303643212372205373239033971599495684965212878833921289317981369988618654942264298892936420441303319080691804182309987333254548451096827733058484046910211530078693755444439983033457835079371274739790460369532242702012217483960582596203964323950241970290597429482782467013336034330943057142604115018804233370973958319553032516922065454931548298922243592798073785921354645527596055954533515171963342529009729648451865694504336385095937551262903073210480827783874712543541103383977397124501719885477629147819026398308280882140477012302070583369167015495940276695596271958809714883481408217577602449432868096836244128671310140967755290683086645558638851279886494429172773954776645558665794352048613405605880244147344375409412351324617522468285141041385780021981762537349008132158351842447119575863933391687446634724073729701984972173573645190946517672399457543096163371691323183990120548225194616760255792721851683173146715823601488435824641741658436624721642595156855143755041576895427585359389485045387736699831311063404847477793388476457619163019669999730921858747641797258252750081396167592549098143213871038505930725193166157407732894220573211749067792584858378735804220560567783072793487303014021909195848867572585657529811417935479449731195926544761944954312852654277411517911783855764479685325417763167488724466894014951225226104611643978252498347979205487746645981008244500252388852800568857308532704390970278785418523578132621431501502175962058613212624151084003026810402963053663948742598147463863512450821499341247746757948716023270348656257662067112948334314691329839170873138274250382857362861473940251009587841989334456871992316332837160863691365662475947165982176839468712483237523889605501646674373966437625645639948815279809573518969916728022808281255581535704311199047467746752729429830722494976461689335249640026320501590754982338319248466549115711837741131266022685250856539786718586014764212070047254067639699609518224400463956314733759039280735510196042055927881071179194817016407991268780270883364239113559268095044816894250299919226415138404753391866078903222455087004419303770065507036600200710444011919357610813195965485221810696966502467472166274483651914729353397048144376566289631785435370294592945481932507416871250818284406372716521690647615531739232003712813413181205388830710941707787768877619986564341494732871907123536812316767587368390055905920019239510808818167743878044410396804591857887029511500267423404891276581363978878352872419156810017056708724691129983125072435300011439142579942338024138142788037344823760403398024700257587763260330120278892933368622594005378663767556202993859041785026602708120600471186972092030314755163415451369508858558325636007485520519350443465180152694326232588197946745908478539620871786195206557895367349222956574935458858444071573453086728642172470180709169998538123505602697233245253927720915931593745199223124694145481217476895589724937770199661474700837346708753443593385443510534259357591861088144223812185657089487000464487884986235108572844769095237417269501159283139366347867737225044589234469224000160879708989482230629049913503436871851083015074559802186458525280421398476231541711970428858353307809211559368533823647952734421213316287292030505692233001665786435599553047876226785466741812017219287064260611716652137116630527183606454823318646662167932897995170848836880655395608815074501681642787805449485514287266517224927088887632617614937791266742010754319847877505051679302104584641480758863225827502864994676079033541872196856114348958498099732719936356551780378583510409012683366753401108611932485566933187377424589638172615970591162832668825595840364970387940237373740980534525529682285278117610285764568023257030685506506615478841138578868309366199536557156260646648286068607314227194038765605487645573950090482551406788618937929352023432237696234653691145236954244846443534339923228904090707661404055405615518719345795748068442893410456197145911747250393343916990218017429954962948784358996554986887670126207134999453387520553869077226504445105890940188201588189846047555671178056427903729005765880915902521746355955553998999529518107287257656008811939263619643861186281781957769969218601121124402692729296899731531305340522977641725746007162656673050716224980379562397922889517591813888964374609605487181416846881800544225775033905309631304015403138182548977477235907045258073046409894036227241574166649940136213175010420943632111634365712126823273638108474336633728148298093680442766901484348716180642207033326900662388035759842387155609174448456468150837618793260733625236735593133348135899969585368046001460956014374607091662236364146840718051798336848981891536201953480450352400440250126616960144816263726141352737037785349112110524328002387596046530924276944603130160106733492825666064255375589279743019817274194792304335746756151565276187989152715446833025720122717554631192048622391545778710188228026082894251290928708755066018700403525498261011851336127240722938895243703929876240486697644801532532989889628797092976581215705366119052749047806688825812158799749299165616997116546664638090182139901692690348589358280213181899988440967794482549513453671844273308670826905395311558687909117395771584819555195217114706046968096105067575873958608349348880298659590045663063775022176075903033296067196942146906479092919019171706872059213874894516999426136973791693007856302021066873341237795476843597573078616951316384999736292097076549227887136454458017793792125812266042681893353421362573100471605508877168395695771988902432121102059330397197836241983824866011834887237572981406964827875176792694928849653710570482770361498454704064357155980798507703083269435217594747670947644953717139798152192419958615738492871942367064377114223597184684591921038149927913629192152335773930820653629373970320109026681414993959726469789292908598316583486909268706863131703158801590649412493398560962990615350874629873264458655185722580116303663544510165146024475822083769950629894562310333470191561168038645260678868412375915161160921993192814229457671674597962330517626236111595204641449261323979406015135613917254955776398385387856981843681050912415030551838682325477351674957278266551818889253801941407911523481993721268917907378842482896654258964177697935403114652517318362088026115243824899525765918612968581746955550292369231929356365041187234242746708779018973773440674274403585783560780511162158241954855947568352649612710328254123898386657548958868325055582274314181172230707082487345330724252928844147671363911352897025992503721390691317274425961462413946275142255324559744458954429472093140657557068930191171954745402170714126635301207821592393484013950006020699502260117302243369471740902484013918666983620626856833130635388311873258926964256662925219895151388697073412282916153339304218328413981873231500846322546504581103614396406188444764254902049702828744933453369563679220316789298285945062733261436743593673214087238112541815610547963580485019119504831497231645129044197423801544796760609228771437630728541214412631336706789099685368055269203696317183533610639233120135634337065231083242074495772319336070040299871850072257929011300931674001726467943922699788522207777404739441590567346400054054550006104334951454621995217503503514686793462006340277249522100497189222182289266652681769111071268614003692331502896013509437960856783212266222547508621043564751070275932023085655257398426291981208788370340255005092471746179503685715073324031889408211919644028985854136116275969808944001175303016414933528200218183175611150315295341821985485711375975413541984063772380501558126901318861215965374286064045713704717303705301169753717324174523417921746443117683386471553743801397801131542874198814233076106079778822222771217427657691330333119698863249776529439314313437726852534887265966914446435923682094783529200357845951992424990316771334489781247595774419501574546862622386925142481498334817239000681216208302208969539742121041939775703455467519100330635926286225369357404708355751955632073394656053274064583302017256421227654475120244977060438551776708489636511154724243494114797383414198211668367640568283560215218373514078061089597459342367579540992644310030292392011469667486230743540185333900517911864815696154375973793708478091074171475366843815353740371880927378192063047669940864437103222710812930164204375616298632480821260739263234118022998995690245861329313964523577422689262838177589805982060421533565022774866840706071176795184721918190363589424316543947906058393805397801319598751320210746619525533374991589387749410819022908469277118038806746870445014921918332502901926292292441072172538749214444116514649186352119309991791991169633448031982091743661761695399503555144024429063555297207347001252500598815018992453966497823680695539189295036562265074145658858607861790137394177872404171132546255862320643302945605263755149503787290799788364925743473800390018619428388612056096920050802653139182552838354690897367746423703627850848366627412952810038726700497111685419674275979630587907683692563223069647483927971523400650922778187384886448062205220412192697590190088929291831254597215528731450352671602013510369971711058260934118813627596069636365728823153282671337477414038396986788059356020679162332360146658443857701214293014821659064053393660018786486117226904726663073991996493861032990933074637236823504945903557703141524979177905929102178369542284724189332863066941791635491891322648562417154257063942564943041222200399772459132099141662714120046294295174032262785310937373434781580490381875832357980923179413299587283560060456813721494366549963453242185698601571516823613243210235506843846956702238292651941216602184786387455571864175063882598667517015501527148976105603880054505549974942929900343515303618465181586210583473367060837840019283039012216194688550565854024624549385798448267340539516258392907445676761673897184570738131811777103830841612041428709591688017434290383035214479786675141815753862453861713595839159924561939523886280559803959940617403527112963973125534544757147593390675768205837481963552599156397294765857386299648591785460229695147487392345676790429619009226708872963010162999359398603381276074075639793483554874059308618796424914778736814665372308466865584329200935160557006279169443835522956433750250976195275040552749775605626064357703473104744318873861283955660712754471853271630154847058448592512848290910844751809710847605437623747426672244732379117135988157313967898442677032034045115371093980014725267946060018753301545928381406983805700461343467171331631933777570211851965149808320838674007346832380300561320798438088167093730278133215923581686560132466935683601626018849016275428941651856188734636133001289013935173676753115222256386405608877671491067876025139312385901731005062216982191527906048335043328164785546475111964760038174337764524612153342388400203488105780815049975690326600749836202087476451532374313585701548353283110738464844766809578157355961274472271578143238552723426098053571174457154057327837586519994331551309991053144179198725671908181884731235375305436275597072098082970303058425014012857883914565103324422593757197249357872511372576182910909933111271311357396266390218048230075691185304522653674675541040116422793397550479694202701678329650332732067577009686057854261960076148371676597139238038946343142823525639204087914652153239016521413739267531561573809547504027886959888902606586193725764673149706188353972861712724380746575704631023228750187354814667907486637447391867716364479218018701533996814840984834256614942993450414310754498310889212254314659326348784613189996119133125398000481496433705950860025533217777225310031077117527734674735839595965465953044044947509608938336164170718661398266715234680127186751857589032818213802530256056053022156837222677238992352252787920858814291505520177339124965135302270942119162066104820303102265699777341474476152249513886749913213214757546375046966611308629374858599527908945196759028572282913970171002170574862497784248559217414047617016556077240180011241402800964859382716694022110284259617206136610423470198654458209146352760035538200754757320036448330122766267381431196817775869749534701262304088108679416812660264690983984021032581514383000179721430143460215380843952913401080526036590196287935470207678353320440538198287209099193399827737833161200885510045271973403310005134077584878812620641684569830449691194115522718259243674713690024669913073896139726598278109117537905465552755869257466841448585323164841553092482858313515577298540848082722840721176338817485024914322412087603194776177377927657272802294211534656709518770695840231510300478256490796461811758773174629663370618226699284652112662314964979769680700761377378446851096716854690285603682906007336324687388774230458916866824147033976379704760270745040372550927995985796232676659316004964536538952669723141969539776895180936777007098508657108537806831291903393866825390198308037737448467464051577230321552735234871909685825193958604871652478361630287557010786190763736727386237847579157045577360485961961184457372688636040573726581640177296874382130479351264218499679885131340547222482235853052451781157160442414487060204012135333189797457437056172983946502908691288718228871287669876867318841142519532929918534660300446882470057376104963338289357662845813732136861022383937879038089097902249728428529279809809315524644913672034614386037647479501734352394294240323488548108314921034771375743772317164450145971878893677135221843703226595241451193429737024965455432295096103779523668494673925832378112398428661757828513004113907667722696747063067482258850318095795832328526802804075194060579828871196864768560319761781423603188549726590444851874769436399036985303253287155496081678887231480465458645521117349810249063403673047139213272815599617610402044877314006056399404932653999443897609439297683077402887873330651042106758119647827593087450671467926341692793028609783074022287061132536531770642767778944575314612729751783793086194575759509734973524213298288123753676178370009415521253211803182162200455074640010872144248098663378393312139589380776050187299760050256750454603395904875976497480614337747000229144327779314745168667231498251956779191079320613128042169223922083179068775492773442474979106631834218596333685279024927078648357088178333060651624250743846249886370525180790943814917874459008056431650398054557234188081111678873244046665218142625827391460127073823863700874686530389421158659177691130640562874599431898300059723416503498609646537751331011345751407990740718011303489450133169334632972883413928976225041466290104210332179227275892107816830922188595063608401455326383096855204915614215729023747145559551883084014346222673265749324201985616308819569952458674467511529192423070880697364821159503691005266798807947825337281508504854042682328830777935091288722100726693166942784397539786006357686954579269353545360602679634493477251675225677711034310741615925565732228201933291577056925609512730315209041613730666465425269338417500470421626667616306629621706991455296613106729335910760945466688309022880047757762151820306804117570134278091155002033844375987286631864217253773284442864614749685579797094022476896871734884046270828187088173323428296454348214641752232622939355395008126111888348627640129521161701233878121051257389036407390313473171185453847250844542045252430126647484144318738175738120560874880908386155795909388246277671468307030356585472658157910331824468976849672647580457556988792827347281209352910759540928859513345433319059945390958197311827349188992025816098324695735500717877738409697852688686608132216439281783369651105180732721588337843105068855336805444923194604348649262070164326370473200792434049145167641198850824797702744754911068065081384843721612341385931000549235948345064274943733949940420655017242929587249394011485721254406954789917753990898000341362018620755745459747170294649378145327586998800433752830824501106102203876205472757237494990219955332646368337336725246761498191346440180577216467472317435006133035970926181695641502172868815548118703307164487258922367386382194408916458893538813342573980883238067175278039382822286709745034687148362244826704529060173004906364880781038335656226436960731573405802285430674114839990976152019324989312086962121930826455620198406519725358790872158121621259232698309840780727595755373171084394054534884715310205963768816032814135140591919128919802642960246069123451622523032915795530263650049298218570923035001355544347385983005649889299920528265130820636183915450738906694047627145280070743720367604692466737353235995016510701024458033841498654883442786489621528114751126565956341001435528551624515932771909225233918811457606487319973755221594581952128572329169287378638954991876776866457437444990171471272676427945436932545765364408681858318840546602035048173147606272968262409070098413176382801256651569400211989383124151028954173251402591060778341373230273213498629782106823453988427041291507857280215199690150299057819417109812709206882204536879203698651198536661942317348590370118354619567029577137747660945727324784074718059838713867384550300105836037011537141592483203499426240787442635112231527477989578234110873206496159505060293144772472297393491090662508917782333055438675933026817132477201590421499644668841989746989376509539789006350304244961593879908175675987259036564367664784367639387710958971097400430226290272922055367537169147690659002661912947003470250673393281609204149891201965284685858087481987129722581401213307654268896085669293398734509112758186201339295365139262174297291071503923967906239347091788299898805538647406129463099173913223520218569579017216499079858309646739167772407026044515993250523388011569180652034814559443680251157743609342872193332317931628514721745361178458504964150345361837540685206888771584600159727184896205335644812951354932546139465825845805261961806301867645402144349408345495270618806581535553458414064471886922483467341903707563656585678103257169573294537282031634394299119307733152445846000121976019513294156888406400169745805967337339347718049931557450316008121508594007772957817517359115911094226527723756806885182647927991920714824250711354320704168637352913276492541736549694551980170580850727760286562439990992825452104645229904075841563971021315012426091997111666508472242957163545981522671982094504592277989165662144385503793832094307024920329717966175497083831877771839171513021182415396670512910189223999268095999267107094070982728931105182885859852798668181078697955575664593770652311197721979028052139212595900334077506199659783327412889214747579299469051846707907087134792655847480987927970220394533871139410633269204571344888874200848461160200080395643379229977651104103247043031869544109837232308700200805702555534283307114375996733379300604881017489641926099890761147267759551900416630745207113746264504316712739420490381722012877610742066374626625646298962410818826634007072633737104912851758374840375069090659322076921669265548774693426559037670144877585489945932432656746770454314210008733872932481101484175469950266285149301358373095272464277506377195598101914334302468878783868641100184849809702812359807602356585794967723472348105375425671551078795392565716758674982218067704339415097124439132706963385409952020115940034684011412602718403971378195957151935102610031809219841677531518690720488471047260885206777870590099581707418523690437703010433095414443201964970194223802539871574457537343152297191853390950317062043365614670346168423306243506834034191839314098165269190360384059216680028710373107516965927601015261518721447208948750125776251129079785716984425496277786377084933377940591969581268122443837546873719466321925585392946989953648212435756762911362064834944918543100034998345328370253000032842293135629555484727827739473639676357686243713530310686373839318910755827246188165472998969114896829824659453717546280555607704815864207963325369660983135850495995697591052185627478535875698975459241228929404508443084708202629484924161924216469009820071653360722732281032863380400022760229757805342951331634366367988931227519749227411730655167048894685237051881397344011525067600036503104649294981266475829654208702114270221186056567348307556404017970958249264045362006895198402408030034425706100122005261566266495132350559261008623853098108002463304361673692127263548172879337828557826439159789568352604856130138447509066486461246537733217205734840280471452270024662903094352512054966652125240903788281382149900947693710284417865667670136984310885658145394751190410419107362433735928566981472441459640028048226319426597422160826893149901850161397681496909659759940916681378078764900644602328303731310181413371231406985009160322578833335448079111541617813002748313768082521908969914030502726522660264970619824996946850643127484831240215770606248886602994629587624405520418253654653759819532778140661556055004193177634858045133227340017482446643681983958831799475270182113463316144312500803746183188038563205036858838969717156498317009728622516418487659357671286980066867092319636445367102585282866131132526763477158194309574219724438731939485143390005874945012428126738993540827316012455989301167058918097549450702950214437799883968397390220365555719205498753739607022625989098027182437822491840617800185727951885594276593604431272300148955452561961875398342842472427198074397577927510076418335439656164984894782250163164612362874723576848232405425284640476986667360575761953005624488822759367403934730763047506893695583607861898176945126546583944495110995285990030442527202187109799129278047368739218557186872637365912779388139909388521840899940333097992358592758032544727667456297533816564427197652687106176203423867048187844531459589983347627224606881674283141743962670378272184357120929526218189706292827114971299061010958578143769853305115727593914840501502082557341489147738618728134269059507857965442292254328622316329373279350721101880383873002309820831285032768382139469961119126095258440828457806885531607310037913600564644601577375098432218297414354455501671856190741293081070360875150729539750880878525314975989948051107192694036110329586642472300093985666676933559339022079401854465066714008503438822892050172709085921642400292719231350606831086325527505050294178892089438540948948395770273213412972838067872999126931141474024884513891072992404376527239379152471532917508789175627279540624336883992455268090753334636558261226259333605707312146134916514145220622361693090936183383575024414983854621343692571536150329077541875504562208146019274822323439971707353597579056837908542942215303318157426808020246593732929614973203745645549611556990793027088979261236611008548995977922979430847676233522694946579924733197457643343158651967843169884056843255537650831814284522979394752901902020517435232751667579839565343543889707206384116140595214905216937028731829760258174790206312725359152715052620395315078145992211648753263870775413986684405646132704805306525866307052048088483919171147844358983763722888439851805491185784502318566959223860779199777325949594094839664730460130579411859000622189781524220573860683585716892422117224181201186353413506061418102259626976984608136456595684426815474705858044956776401069261440832323286049268388118373058859163307479800992913282588745681392236470171139431490425546717218402665773107007933714954849063927025331306784817657512858056603464913734905214307619251751940955222045366666295704433352553243106064823311302342488369306961012187086866369866404098299642314420815505373830979337658378318572595393955164536951277907382950252566816313233873316828625286626593995298801143927814386585773303404958017037189516813044779895888500297353115687675271087444912315098955334831200319822695174585951698641401142854814791217050618112929544183801764813664519897225431426143338121050327445030638485641857377332195644686496477688615084504482539876160003793269307546994338815698219504150843544342897543034079102799585179915033942024223482055504189579522576455544138838130910289503179239476063951653787603232397320103928070110091034426488444871546268685401852977400262619844914912071394415788739680686387223830166098305496137578431303825094825137601309876683676739216242528462937598960373705844371293553863071382059346809735173897277176800912077066346855003965437375076281177012065502141110891826297550750077069092491061918039101287334667456498232937676122515994381676157174591346655834163529808956167031615698800334757204104181192369584875026602662040750377294633481149300652853421208571055929407617977853040633446960555537095565546174529821842134851834224975705263208574936660242445733554541858453592092952446077781890434429300928807119511662879653951735412750855160845498113557236066695035414547164508970381239830128963612369421775105283893232091169261261178624563277945490634870869120368958950602478354755472622814921520535208562714166384453883883840507471901719805256825258438874678765335199100270495745721137624836260103697503907567715984526783207332266171333697498330434892604403995628367344049996408626759598247527761605482371663196609998636001088268751912371539469408675134779648949738251536137142163900350465743168127843161898253786095617132390086938592719847693257047294494138935605702557133752166969262227632766982759230074396267655733800948543380166804846351677764910456954907908835780504630339410898755324622887665245033397052944056994416085116471086248306305766409232131596138881904015782259661439798481531151617773357357914892390803052671487493845939752461724932286688450424534290144221020134455701983786996370525847663127133090171657759012510263751023082437136125586799885575869601896251393209630651988252013921261743233830919678754786803845143194853885089127187416090182771010300980361834631927893139112800437651558539913030927233782563763663438808959314511568021759158997882966697075222065658540475265771247720967774976474981565245472063279759516146986813218066511622197502990533574760972683837116817462235695784422848128827540294685464239674031496355360856929907606863721898998243253162623303673807620709029912077366588625872031527967706541889597085437402307381262371715269463310525126425896415017179573886277957169208679567436320673090182451166823123006148724515072225133968261988008543977754945502783308912174122899358169372615799089166292621552206682995401758176786990890018911716101504545346641949037341376857589998208211139022456643571414683174231888456002728916609248589782034228435883839876658601797207202261275394930871820268795260051424182196060887238789861670497171101622609490283021020627875802406332233886984578346487346309303988285839856311976897069713618875075992981182579692059434816469836895292417870429580762803418516952226173571352098647630498601534534221028423736838180263382817934265274924246031339560856495458744685048596643384012305453130727952093249767852073457829480780679195881047212787620869147082270187104660259436049623515879154643254904878267203991337331641390567061618780837583635857793175352468411228247390989082425244587469859470506355392240553873480560500135175951928982102301736738473640885771725305589307366140370402562440088074612862897859845609710903515882468162658351289067736909774536825271559817971832479325952576942131916127464651751378366170665295386031033428807749581706239984389578515611961766915178239869371189861374737113674459101628301346120125889211378447485531915236068254340613822731889281789201718705759354822183171622474073219893712133342477659033622950543909676898830515238696657733553242522214950302494334572616483541392672004573786840755746675747035459132964843831972292879395292507198243943889393954985957926267579892701791812928939787759531733815388060251920072344520773323977175511184781803711677169134346449217672002706182547958908367462113539112280900711056283184122093873223365150108366595053102668834984060690489850876622905309269665011394462845216846003725570089838353120291240209849382876187846999436689356811445269737126336251615717367574831017834673574264866743102689802166383635856346153673273356101895548753328182010687220835007765154309839063869641598601152846258211186812409212926606329986408563488557339853113014772483009420536173765681240318166266156643866884852986985448278903600362847516508446789005104390742996417496835484319717334122304680988661783677970122933812390876896837725479886889764507918580107009215409258074642486308371811790648109018740857844692116119159844684628919798046514740243284243088386739509679975995235680605403683057281345844791254007443684451256543758984351148008369416607217905669152910861937024985722017808556932275616423563140032417838869002516348904583812252080507556588875441655677498475611551380881221124876583016825606485117656428195316626311453340202856782650419099564111305807243502719365317275045800182121155130828861804669151386160629616528849966918459530552310481799840522198582193963776854297816904174728121909734065827302330507508755900423387524930179896713928523065811341276661470124468252321472865605490375308503643513586614982167088183702650656795845587678421242256139385397170710961191450933276125960003016585436391183182718825537061849636725763589054154248905389119211517758711227942205118196861013143313618883824401680136432370762557615433196256167001592653664478623064970355739641557217460168673878165808241316404263546891394835299449676963869721798207487174432511196344440187531895953272313769308930223376485527075169201822823866727966637146992043179391952008729479545877291124023151014481513934812465355904452895183066534208596846171204001162347111919769623581485790136959612553975847986595653973368286741086621013240369823996865070441284239048778322239029087370179978247900117589719920480324442449743091883078836996947903192343421411759638663781392505422160965652123542997708843372880930662161105300903821020499628336256547533613982661557222547490198693924913354921495441195450122195244406866252593480619390448298243936721840042133828401534841267330925414721026859077483467365199611878332861362197329662066940558196198972983858231407368892878445123702692787906785908886456398455645708929197983956439035670728651205753420515091190564576415637478271300292927021495236171959890870979574812239689406512158702875513095587993434836902799537024848753973784173722630335932954744956447159012681001804236206853362311852590478729520524858271935533630392530859778873757418195643836181960202422665053814823675839417966560157266491153654358826986628817403475129545943944258339283347574970853995906530886487273046507332290850900385156283101586491396230496681628839442920466259162125224397680414596693586707044749933290455764732783780084703939721279477345958580373365263355023756228275836635614791455591004976175641569897265222208761691188733812360665957536597823796793646024851037720199734841258916865934995289626085930033664718515837661551389541169888796446273869247937114770825393394057433269424260272772048952001786760169065240846701121558991913928863760534160695099566376337433403574485004547704946600620609738571245567914198419652092167238457159133335699215882781358519229097072059993490056261994091576770430214115064820790684632022856500107396733215219681965418410395016537345722960046333134120437112563435174291777870392814813404018126880844345085611590520231699413436285154324278860046113708448140818910969998756500227724123852586170241524994051375494340150506156958644249692035378969814984069528300826485755044689276062541070753122185582799780636650388275962813896479971390514648360363600493882666365172855181817928018888629005709235044783741644634943263503331749513459009245297645573421949341103688725384945775690616392381683428539800072344337756039151878898780059383674831680124074438871324510737528080921815945044193314160069915075741430088270699287025707532490318407842757783402526943858257067983536089950630997972223041898093007440715024521755860063340146586561123320474060091556949217355867807029365994674635488731541441175753399340878836373915318395833982743427332639228582583491105465960189273838436587251413613837723536267471272756416841905037206217107373062241683359840508583082941447921534858124960599643648842119437187623613181803753999479917289238378467286568697537770797590769960603966616371272739467471971273495867940146281818251758218617273210280984408651766707007398403568837870085977335882836169528185901545968120072433655834008096182943109772395187764520217923019831395594161713410077522590112438369929139780664404464450618260271870153543125550707186888907870642093469447172333752921276308556221455132354730033134326494539882337483557682386880345114545904606703139943453545507086146597741401419246614990318234182639582518516731608744058452491196300305610318433967370656555858519898062892409882338356310158588315869989485213758730286223148995758226628842011023552840038871393322132786544103512676140363174485275746778578820941346418159895661115538979823345484643665973526016226752278567733984873254826164853578366349586568339391321122690792501114051221379198240190508067644049881265621500467175921190411620231768592228126913420852718686440830242409489057470831664894020894392026013877452394839389546703863180019307223640850813151636163178324027317266059739169717020100492361770158965203399487793183801288635115962204961640064392961081989978646579411416321632239426570246201614316343582171834783784304249704374368876496447088152269668357835532407953483031386321721915577265142494461858735072139164901909117907875002445501160099645492591212926115100123247528057350438689029835327174593332139753804497586929438033933215914631760381679739837096772184754219448275680008166628823589288564219759148542698913983105143238956037687721820310453790280320592768640677864757898021988710707373723478909869147441447331987825447226709855406078350257753443069789998181756915206456430296089864653819481327935451992172177192768635425119134667254559466610547613722585201526236080217763076351417954878116716948475411847396125344014242325972871878518805043545270149666461409269888777914082865058966738608134436170828930279010195683393650457585804631034697370209951324324451974098409300577884539170164178847022813214195345910436250028355541944942223916705220777837695032341646676312353012534140488744010419636668834342645439769800274513054535581364167225106628919279720900064325015764298102590959066101308942693546114346461078500427107747168371875511327557937551093397063684012400082743244516771147551329157746132218575066849019190008857200962669797917941904646835972920472319523972583631179951110791564042886716103381668140608811380740512399441061984348119318900936806994711731680582660953419266015352862553237022462166932357657308070880937082351360199741995316234114949814954142696501826709036827085270118810492238171592885170333874522606968287236729188884129552663584599186035225947391720454322275650848955649562719657785644799891126830608978804403380569798375396009502960819792202336403967508225109447179520683049362719413876377833693765278362952676111433351498105952985173195417527058571558204590816691999965437786267253904287811881259344379455189165357167746255419795926689725073351565722686405381164521564919157079392028451455102608057945602777311318616618951430328094644544617352495245208055725357687610097435468822064506741525330385148040164716439360711379124375658255317429951780402161948727219157418831007199320144897585545309131466713035055227459442637520166307321987228762699354888331908317231762522317124696895947077037280183674236130750617408681202522303664870293216912799826428047806423968604837831029900461658539245229147873102664542834218194778812500079820918879016397825130832900447725718882606462334755189007874411830437378962697277408171177397477939517163995761235505808693091503025674802643462207174742202504739867959715951548064922104777407937398439869564717454061737153930170300041245099734097026377737514803269420970198981242263467477736350333261122951102791918005841727759155239865899220872861520876709492074632920505411221892678503130149385142620564103243460819663637857611803731416218534672797840894131754203068882270384973652052088422186517525414814761780937971851640210242506820345394575501149219756655256722536231448193469634807296897474192441250822552540926434362637975091557544008732616530959145112232233231560136094633254592266684864855712930025345180768480731329210082823376915125567117192937943123295908487099387386499866423283434712013832209352094696636268428936321959646923268770198334112899915041928659787450046816747286895478427974562153074824115361815644492294813403633573054949786841363969170719254205989652648850289327500244642716791337139031427624300735605381483063192272496874205253479555592813554114473698642617394486827696348049195239145438925669532594401442956590943802638745395107598043281140590065407360203894018114742895325452704502145523109027887339413897427039265292439534665163982628970577163406215933189537152166637722213438661687906278399705885037971399622821097257784962870159344797237287885765013022914074805651287281342787715669423110436170882375415531229234389745158899211858454040578087368936768486173773153097712727245681346219646921406699501795972410977196295169361231484407143209680484493179413922457509176793412213775149049277282396959205861964365653682872807452431745078228622680116189841619879152599912770658674809452133781641647164563606658800208021282370664036862980940429275660081393516075357812712386884616887892738294393330986095175263898963277623374418707578781181381497705124245064474882802857641197502689712184230062758334111106599473169910382471832091501954630334929114364035662395283732276612807262486022236438914660544944927438354743053405544915428963089122020888306961075939422223193450309083707614545990944310505136174975420173234378921797587727515371472452209351790582214321909288149369766129128181323186187962780615406517142685456224165128993622430016371882364596633650164018888560869733127335141976547118372622974204502017252424904130980915185979034135746857626930451475734667422394342467702504277834006617116904966639755471427334782547964911487292792154283584888727849072405369428435751596171238489059726070404492616381172299849272523880163381446221474930541150688186388810402381305911094168509230656059679189414700303851318543487352955905612963897143595443135421606793310323196551942394069219256767059149284351518822841415516988770610760377537703552568418649915980041642722374257881492554289868344490097319411144760131958259707015858857661878038453374501435203082170202536510477937161644678960648651358380623110269311038963378804965411204272852541066227787515100941184336927409346068944494405984185395526708465805495062030045208922908165767297049528075877486593015031497778451066265069002879292148701208846922894027732978727626343147983320771605720239180713569266688827728638644028711990790602471163662708529500859074577020994104018279310705162878180909311517139554433684979569791659039824308699666063090057147077724924181710960023533288752126151868917872752395686128887522251691922659759195566326696813105246105521383635221031050044138686009037394267243019120534781126638559248801207228765147275787710141124730935984274725713890188965282273871897441866758703645643931549026313820020303093286892896119223448367600643812780780728044825328600206073092413048744013564241825478780257425397770415018825906196760531419604267794725464318166052116248832325926691521716642318587825982086858302741511549843007802876931408285656152493895091909508970587080773195122441019925884155871367072876807610129635909401115959391364314116687264069497146163787766892462466192897203255256398824712869906700448917894975638769224874857906418307838976016446288949196683561952654596012425483947985846303676767451293114315767839692219476369284375378486280574533183439745199909155036007148441010086998559917866374067247448871004258408613228716163160884066386694254809483485375955795881419895998210857851022353801270392416100781127145954722570539981857247056918857095977703839119351983928191163838235021978066109474326882447576849378484081607944702110003739294653011670050988586286543027502171748281700403978093022874634552688349894457700679996167648931241138626569467548677134889440116191369462058211555025222797786120019481550021355962304861774835104344034009086323919380253692962156603993631352257139538158026568433966254522328464028945605651601630612346341707823615162340354474925953869951509219578585210760661746418282876493763510388184156280102871306619536715545334886212264230754912473773218991596411861674377593405574056397170429297987826714654158730865854613481019018450236308598554892127232842429148637622358229903348956093355069016477620682159636591808815339057843039183749398129020361620107169461117356206505556591001040007428709468233484311456895664925620709803403565145524458347479005008355384158747452303616509009980450352733013990857467334365918203373243685141364548473868497076566834288401034309859559447510958305159566023982530716320770217563149236193521487638314268339980230998604848462740743779724604369017233464904784518205279061628577209607514236922637884481482465103968075028291703026182033280782661144835460664160550074314051717759422032076336815433029146241486004479644740371978327426066539915302791684401936880222333570638131639931457645082081627543055185057648585346463852048109015353230958513412153388144515710818491079804923679949183198728104148016954566508098903368671306831595457148673489487647928991205234268102708944256403705576193052405629294579643488721668615812439480930571162215010008067022676006656080304359184496416595454856020993161150901499532717190044239669660661173998394306767727660254842003532697180398124215325980355871120439629973496209715770621558744276010584488186533504763859463895958362130495257779041437945672612902184366000483168884504145037793262146615567430193025283433573180482461690537958948581072015641223013839249439484023584420013289812225652410564196017418522711328819496272353883733405281537767225666358388941524500340820780952283585935561165366196102967471511410835535078379044267902220262783236229760971646221000988321483148107811044207285620615825941457775946160489626900955143069379769694333471519347668559451937801210900020407487328357610146338309662732627243902688972966016236681613030829917062965303188617566279186787118730058815410056170037269482759719745768253497132368815774254392618460847041468751745835741557669624653909182198430256144196355744588339027549399463707053800578784707859591234850236763167066853047456568534072555020301441487553491856963428094212539792900673058890697536066003379331755824686386950400657415357002106716414723109734810876424993970300276789263911374061396439883971092794178411163663876064956172302105906129369127838720650451395839235849018245022612313405431929423577003970821157571163595070355388045673514537606055026456664549797622321898661582933981903923679228899541913865238789260236027750275586655910182564008492806327551467559316909745507082697619646115406186144758667552512028401084403865634061774379221019090366944295567356565419107815580313614498073799680705888870758591025270335505996992077586920195871579749335341196750566061286679171057749100036975793033861421827780926398220963122994327283421994800843166318776080877075806008935531786054225926474675162519933917797923792885650495352955752063921979715327019403123760321884087203583390426336570602056139912761007842955329051879791509656778580578633752025585485904225239179816902456046114343682093780430885312097943153939060414426183019193385948145189419744287439643533437946364035579066341336838005346492720046295357221613698520025079756515231274168317722221446145090504392244817574853935681847459716119251525138871465133800826694533990764174888424171580996411907540114892415173921280220714913851723286657006129556901933869295852850086988702044996064133930739224582049011095628594915570034151330596791396729111420685689487260519321372864787383744808581083326785743054366258366370984133527693345609546993435220378597233318246573658226137795307533607886388375107973778743741680929394403841976682856835990435977966752876717598910830929699146508597511257529709563540512486311173728919265853196764690625452997884828997080340876002798338631433800467158396873400140733826330480735204329965046029485768747661663766412458886596463293013256237728386452021066563710437598152199091214983471070041563720878755160441504594330939493177502840999053195053337610398138995953727292323487911187885722943471872122325586394999952548162340785298192173428267991450867783586569964866009444209401510336367706230017153096874377799048751822649061992816146143714541639628032213819380518444502055571584916053938892379408456893345065474436521047736386870912478371195224530697834294915225290047494750375220188243115068504487668791656288884611212610023686014758490523761482722695842272094093711755517388719481110388508453269499768290619176617393557969781325763657394277346276701171812496515478170641968427001228910721146733413370369153795304239347889979605582031245062906576538410032525644584486414285931728747736212587886586511635425475302415335204085583630659631254829502724968177626434490561232489727533890740449972805914930301356368670822100214914442665790677666700154477672382878896835938867335764802048582176449013813055953850965188724033785659733868754146693054908790606577558262802288163925693478703104886389373612435862756447586779489302137843371181766360220265805784203096181001181769460521203513032247182550647942640840122056166307372673410321208475223444891968231571701832020417008454025533961815504326812054960493892295645652808840171752792694577011911330246843156858997787129297370832904784827944124160721114432196630792469049233861480477185847546281981765621365170699926758272315683307617792995173505684630207339633140517336708959304847793272263507270459193216479181979438198239951949834301890670825358291001063139326385791596512938721985818660545908073343650245642704769751545470870523090554900142317567579827926737625019049495406724110748393090433162196240638057981012617148109878372202955229456646858349781193371073349914274519657350397190663505611575040571549158540007680801855340115211879515707856609085596881715936001755428864531327086658988253317807391409814246704926231487169342245733736834535888162985626901509238166530596097937520523813578866381670164772113006267937258433086915527688843141205275215700278028141065436532675019190372925108691722977210784223816451086754281270078958550870164149321263020302761077308129374092241673909181057803113588848723376142380309812206701599978289407802539864835123431416181857055980726637961407903765868362178910868413803739019405624632268479664070855969055718066613530938348304348957672084915915803044941184504670480597713518108633762292611174642563093209449044036646381433813901786833294375825905826888555555700432993819356382729591262912507866253294290793854900992284841841719351228758106289130294729206457900864297013715766045271475270659245561541617341214543992689229108829877475925954953039649238455885885514274152355751614486853200571821442100669715907173211754919729465919848098631942241978734426649033174612619576349484172580230319051590513449231454469165745271488053238178250812523675538932070627033996802051127517645586381810386557679267607744865045322664791571848637468778203993830984110631572152202837945097984235704412500138677441769532433526820684034672281178109869715929909222478008090594918387809080140108792727169287907083158053828686217302807032327978996005231498448466575135600807053030635723088357026959005902891253572508614708043962030851794609959495177681510833024462748590546149926908088174114668718290969299323131699391614330702504879198376075994419749422896183568800992092597641601021827003350729480582389886847593545419061753642066406352329791487697327087831902554602344081851185559983495149736864351728886024126090353596308856826877330455866189757425866172760772191253270504367882907057772110694064571176478194517865034196292852009928080561658908791260321393454345762989496305274820891549192363555550182556560586753325272901004208350426067155594689640095059152361896074636523924018765623130080651591149811981259507875832430870325797204080449138016652638656931476167621371407759112025155346251166287020884312763089380066061062671340548657255909377256066577828970091126457025732913619676938014928177847077016059100559298554776260382288000896104371154791653976025304136872227521879389962364727860980028488123465705155318748741143551305239450361400413250012771293145672532566136475684179713585860683764887106338019249959537756598328035061090370508120139039984046185929663570263646198002696389493320589422884207418839263285723425993313214196085311402139017550722925651741344013598103350803815235495128868740825415625952885963964420108995279149967754587463439364151524640215278070742154433951554020155835168252279875510177191485787928780233013647106808648967604987953178341295708404656082563929669882562721575597238584847209761183871815120127640071457456720400726597157511797139699314121501621625208262397791834183658616431652868458614908964651782417560317885755534042043730403654977135482775131084954185195570344458575608102768349501421027743289675502196169015458846249308381121666401172187915209966430439815544682998110572096802304301491791819877776363588591901889593678141809260837149780592030870986993741642623292160989712380924848755408920091668443514241593102597979796759064531260724760750585047199648726573809707236044057408297265654917135574542408803312278592494937016807756322345514023983996474504915512743680088088547402302691422248133018207947197795228694776024528842559271835913559127056288683207918270741845248040923870272998608827729962025095679691775134493218336923143226499590109651350792836823823109822476732119773746903920222985098451174540807429641851710782598864678970053365904078325828839077268479221649624523348970250767008828649810082959803912385981307586675349836987562764352994762830774540399272648809569875077465679129655015762367676905800520387215055272446850022811499151817516333414104171077389598944883879175611045603228920847715396454102963053301235037721702517735812038063924020571509456319883939685663974404436398588402177434088055093377963023042536712952634819023054216652506696831403480377000211829098452710167214485931269096954608754569925105766250055869054754014002853148100943565592553832275557455601513683562875480251414942900138496859101894260837967213150174745451830456348352681981353140807736260535836159525670291535497888387505920014327143515841347983249718928010939125756702509149922070120462622487886079344995932986194452745080427506992207313570899904858034289420407407214187265585847692221389662507788969415194446856551227341785575078949499736295831000747344546606377656389934594868347231163322535995023623584316020697822878446395229984515166637790519470862887657611979703588721294174024492015504822005748140535629071421895573019553192670727094436452759275149441610413027580466684011518939658458736391106453299903461006794137538682818945601878415654518057002300466203442076089100713876985614701947146888716635763818088186096626610735325669887610824402268159591362913963480566729249601922018616101326854019491913835893819560866168768665367975840820560961881035708666236921304243973607221627606819268782392016913513671164399464383782034477833305256288665102551428204786756619882503405386124624928017329670893946127166123153167083798759111738771341805751183694728461413716335619614409504764668523117109134173436416004277849017179088998272035761197645198590076945352336055012390843745840596176851230186956782539849840081862849764926506757895570609658509970886953792992635160043102679946947540172638292678216199960984607801375274621725608568717133504306664781947690864645570635833998420929872747549266871480291343045004215355893953072117164353359312095359092553988876754514371195356912857400763712500579986658002222279709522728830284346028200275772020497160438666107037879848940545736266132132136426649291598555046064116751624228203685948056635693246340340478089385178472148023851294180899863972175355674577083102725298979103641301796046530458362095893405903023508951335891487974294410944820886452936186034264132951478642147584512204213159099452111869044901728362621272160313000775834578868031775181747381889033295681141590255580978224875791909576202466392705636415150926980575307494033961875346059523150322488787005885656065679986536281500602086993024475466980923229601182212848016437745702458716607538417030315914646677044583591175785913673970295414785917792817922919826126131389912160266771956677414425659208918532895305275922688509041218898690068594386089070983648935152210346813947626866195406914004102222006803737196075497787635121922109201084768272798459847316188019285323726174956805420460107058926560157337677356177848033519113009352183032997377110252596227133777522217161884946700781841829106851931272069245609817670456848273199949817409293221825642602008394618064951977129616200454104321523819410481431602035607912474432548202474050707592967732979034650817363259875124095947953814362069357977964507955822586087662355549462964726260728365769788804683566868233661583638528134245308032761840361757616017014595812123205072017779716779718511077970838553717948094655095042508144974533543489433529462235276307416227938862626641344463112469101186369830786650406321354415270915599703942907703779715497917557232885879946796149226930817625664383846092142480938965684269905672897204697878459246394753277475032236412199706768651194037101664451525986106393273639825597393638681157887462635617278387108055895368567518615430636969040162138561778647786802456817809406423771697380060881514957341616730370414985862163349566010428600948285060042483637314823368231175843181392559926863895787725298214401622982823135495209707793696044325861808450694463033046726675558799282370979690502688001368291032381438111826470376030622114254082633589974752404379119376943756577948110072115811658403974516708377218504668553662678581061095218708338601433140295912634481658878709352297320864116918997921650816614585010141625832161665645067499243989886293918501649827882645057278477334203783777855104893342679153210900352451712177377811983534320128591044275062645967424675977894981830174811450507677628611168353295372079839227052647879549106907234085314772670658707656362747440437677288308275944901511298081367585797946120651676091596012303719681619960582953207849020662510419009152390282453475304988214094165367698743742439814402062736648721179771300062645120527111848977771813390118169374636771262404125563971655336703616172076613594147257504844331519130990383468645535783977338526062290393634837925234154925906983658638170379042153246988628018359607891354461004582319774906647738105411956091780572229637804615405212151232811104637125859705380798496750947863187533300680012386017017632064461215166682206909117802101284887095098706108180599870617089743179100930697738949730088059434193645615186044143683581776928029372202819198556854181588252121196668997104128930043723102661088236694807415952811244416550505921890837222569825207580813498446183742281314687071325941463518083110491687153312635386733136514015480150780566843154137839052540055313335401377763945284543695336311140392184068430685459071607699962151304761922200359946544114959497322692912529214676272816433723686762097641887077641003282906687281538798970387045047364390121365508059559572600363314022529937526573076425442364822689584970514497090044823655968483469784012398630015525251180295301555849023882056749470078302021271640368235221729744403463327559990589768136804431531559822967766810332906508496249081639039285754266892587545860715798202611294131171427317036332896571901389262848164073616445408878214717962309492268147858591630820304890037046932781035896559920882447977557014347654754409760583677276794885352799540177698864546206907012046451584918558090438916578897305565025478474047487489787763292664015906853807282443044151217718199438297826738643165919847750265809810203872863197580411716654988389482936176414062794339087405616324570094466280912289342517621391921787361713171928220137353115885407541823175616804324797062954287285742972737531601815041311036262006433317543632104768257231322069925584175148471731228982249859599992033198416798990769257930567072433301653332015292919760179113005205979539786030531506466121705690840332393820179811110125397971414213354964983990951749092737146688929283430379519668352535108898488427112816727550258833996896467310558390325623914541787162618583972335919106333942582966467557413746852162578542629680134163407596662629429774024053695569895643067985406034270103608533687888740707916962977295073229962273567709206880652020337417160636699463430675146824147181416627646677680820159163415348669376393641877816122552540205662919216052271117166586952376605777425463957643436942699974180981070315440848253646764358777565369148735816059924674920603179019547893317695736286528791989578531059031268212175241771368332298539388404807339985262517996859939166130069149022738570500854019825460679168640809122615337904200236522268261087652299889203376051566960796022122787847326387975383182134676625142346549152551673605920826191918637426767063932631243613312847817263997809188337763386698869170114275835675727357757531706560265899251530520446323868816690714645046053801041170246201669151087237862779417740062979865651159584853925381806251824710226505362210391285715334763069226055022223832313752701778849355917195361924425922250012236115052504836653884338296045396857341880344358061565211755998631696489856016089096543907882672921425752964422406197468571927691878688148842051003083413356352005567237159613658424186331273337079565463931469620268765803766745275084695846162797011717408165181548558260645117836091412715922529135193166099624651853321341512934242039582247680938497514167287074147745218236410325839308405585508693441899411407338926178355308441386688661966869982825634578106900835761663732182363549530744654584789452397471294836404459689573109946873733675363724347456934210156397412391049658279704812109304427505820103289899283190708326320156506439187743502343765134598062574342309305213882049945780432143954737594844914760503531449089720917240998669755996741899079718275380515268863610464430069069583872643174422618094836329371406407374855600945123506570985622265982566372774685350457363562066817873346043351707098073617129340547105984315062045166834316935446732698171719182925170285392230984624831473040572681228027130271481482948354367985172204691275405144396931632175633962213866780951895063680648349829825594999233278239150401516237968669170439283620372382816925552407738282722193290790739347942451330686633619849283360780991974420628433581168715464274192438903281383807126506466525079666814982469663214335559769626890162379898374866966451982237884418130014744255394342638142105879766395786368016686359142887164661626517594412628432308189304867417947357203268483293182940115710403475531944565906302723634228952870727286499016601827557582914663959276288233901769441559856046559490560947674959262751059546439384079505806349443641836484428258970124546953723394801171993433888652630759382976086650103343545367968284168335689795193786533903337869207972160085542372993648380891269654728375926481158829228631671460319794415731574062835597921431381552806236063016989651903847886547143205320817335961525546892543304543701581915883538571052642115174221693103451039794952318361502594717817106736889523502822242943115495329834083133652395396483958230892531246522613687638553992510579207981435620247166730692264778422075764407133259138081909875526531901692210996699869699051462920013353177900592499141447063683848747289638384312036398904303729797519893008159446623169142378175979969836664742578554586446098364460032901717216684032432985959065931970271552599516166901493907099523579759392341622650735827435580386808698232973036272768261128495986946215276835991185520978385104953588264734600393502700890049110951925218233434526964045524142129936545863656721251379847990234981333305935786014066924184000013282331525455307621670818435724090836596136006922650149519164689561400679937125415765858188497540329393405676289502774036070130223080404127866752423163196799268275332465331441572298970576037687375373309302951161984319795920491576693007535986601463645500413001226415419354410220146182453595249015451066751513034594029820776756017793510150152278818165971370818097515398187578090613815392467548632148288827346637368292294487773059061869583829423269979164864685383307676679396554604542013149690688493763864945923602882506797827438706171171646691299662807097593455252864403578363225503975417635797659162632247407203643278814158742448204400759531907032201250031225379215172074063033120209005029129011956487855281003707502463051102973394521958248828903788104333648697226445054873667350713654075746582736019556049762254050024623139207955505151418545705935628578101190486714436766776290975785266630648800150413668087641492335752971208160896463561547349222539262499806224162539563249740959507920016741626185376255478331904635397699857646681189877079594496238422704475180802998147686269929506742531467920605266269569162738804857075743166287626751352153994998237601959487861542402065897443695846518964370844617186948919351556430172209894059533236548014300421082602888199511070004787971117665575554536192039247577657635062937698378168940162976795036921475095313541605825602270950422085677978972483893209001970397890100211320768406884878905927193798509770333920818669835342211348217629996460392504079992098069026938793885008743868419663315772989568785918405888123648473329698678479999977749532296813293631991312019290926896470455187349928685662968272081229456885910819437042875916395870865391512404419545018374268871329211895975949659923707937944555207701299882868445752007164533595570384272123042401242474647165718842616024408245354105088006663254352567221127487434499973860659935522941134671874422360517075876165622110205393757546606215767087553266661056218311691626538500565534891828530973526005862839806934150941039297451985372608209228281477310358493758138149529503244295915501402330780588388957807612213560643118851694494127067198199960926575257002328070387840343526700074724160983278030072137600976252696204389450957960043069022911066772211092349752065809023348654149570400596127490677640473504013043997880614669000309160395992096262315319404831395370683344171052043507491546045721609058870693980225587760385911789710731505122177867207777525850186629120962594128762219806808177007196422140582646068043711481798407022630721379220293420587403726870497494512500869255794895518704642120411723487938793713295075812305266261951267197513901320331298869013029687685752301368817809951647866798205654229963445515041755624037751523952486904910080018335014766891131219742483920216940754504218150736698112247421538735248442193501699022486991500370859070022653442925014204866190353747298656365475065766920442914889527808624502766283391564207779100329277318090737768761186128499213272336338513800972586845459712371140052944559377050762062494604017404437944727142229568745867941985729414226073724837797993922767667832362284330286393709915121194099725276140681884173627984959878891387968378366243097103762156825536544795951071497983619159489854224980162515918033063989974799407065304646858895802657849376106751870033361278481212931468217318496941159849526133575166514491061943006964757832333885056293919659473690991770814638491637015469227194937341692311596057780583529605591986425258452571008168942491075239520823733773277418218683183441187286459128374412735157035477195798883405957809495330537263979210894868216022974617800326505454601049214059946271569331317137071955751369390734960526580534839168302587412830013109025185387272174848804173656760775257399904055261077521539598014670539255560932253378605551894499126575742351585425805180993870548430169881184994560765232214572386056643831741637258746641614922015834241547190498704617205031872004155102899204859824732382322079592909496449239858453046055120351108150923052238902816122767105838404086300946764160733349146271512476740833022351259080086520546358240764021022042466394178180812720859528944363273157331315028669174962834104276020972521283590463616851592796670149471271162863849374116011411915075275214280016057123355287691845635227235414122353229145117304767084474619902524759972879083879477594103456924824641066940044249452404126710105339415177641175829850080779207458123583952486683897086891198933998669393891188297663243991917761861117326159329869057112532877002717771986470588165546179239213960543475115284860837067107921743161988610039792336476312407542395346212616917036296704647403680634445409496722746161221530347179197665195063596702375310775212729352776599786915158199594412668320409904875649537128539615428483784073029906905008766813013882118749644197469704572512132102056516937204986526882190970818779545090948005051841708963337382693890728590521527955194983838506865512340002113240556126128070733942096832736532511089705353440048111097653533001281804691586896173123192524128699551344137264696527461790929892655213262381316034318081976733354750924651220339620165227875318948919932218299441168666097473626062405790106463731175385849523365204408419618845746037319863490061625040554735369837689106244757035529238433993274502529375774750742628221911370747416758047752500982784226730278139619818500576743888189504788002536460866261063883904431619380083020519535074936199284822101727073446375041195773875927725255705071574274835471827484768219425322477300062895352040451578696293610192794528039427861990207585286155089773996276548512361474633005984783253531679169256068349091817967972278774874300822180119267562600545960510548092862040793558843762286645331722661556928725749426058083971641932586114604320440064264845981823024012861896481401604835837669145762172809926366237631360349767009601029675093298900212414953139388717205453360115587651970754048940175453715095593645377085445003368918402649503540658742834295596728732878149875825694842432709543941738296319461179252726773420920447425542648353828058587871422082303750110426810019047191601082744225878507985603921815141935428320363325528260897794155284182061910926173230496666120220664264023468601844355734418697910785605319127807906669799556155917698151713048452353394933135965600615760516255329912988734102444806055360097023101913317886800638933037226240296332529957740367521076914888965773406821648008878315647813544336912848789259693292596586340519937282990537278630187877381842881805983156774228923637901608255215307027527328021382495955136466852789295198522803072873198080146693029368118636137145986113815583427450635040995690137572748844230869394103132017992571446692755824303031592228135983477340626561646998692304130241329474843721791828811356535605622758299835799891848268083362192253463624029727362771004528717372767238764733194446564743141582353839953473877498167745877377148498692266061600458843660289600098023177482279622713342410766488268079177459789292806656580652239812997125263328101221169355175036049538801469977597056987403486484038883493650749285042679016441337557040537718656618034160538966547136903719894667824378612450262205206485867628495307512578273001728833485855175176401759477405457525607841191973086165455120629033584261359079306834799632266707114995639643840762905479908500330752346669091702273908363912287813468133960476020849030846098617547310957039669910373285284542490419871451740894421340724789581807222844982406003607924947294356643623843101906210857806128421625072300618062964641137985825428396572444352883167407649347458752508261921730811004150470140220425818065403730470240091078231685340765862913561603009280208160124561095902679539266554552752970222238475209680460215198918130779396197056752258905197224075876234827328931316390476957918850993092191243347442226868996233669858873732834049291634254576896332214446852296964442052874499557950898390053762553417381077187758347245244490960194438746815277227597760761948818938595666183730145825037457284097520192778454977735558839461047095921618447595982917844107404313819920165342697643491546763420204140391142095983279337395656428174623856105871057740932712526449656444982153324006685664342753786335740475984739116293111580588886318183793305525958084378252571185885187367601463302168290309572479173638095699620224509215754584482450117754299721938659937332547201897763175112220816300758223295197136136257835215178210353894661365370826255841367822681477591707916679009276257557172192080211549776312750945885278449789644849288719001830652718057081289846470577074135813265412790342849560628162783463838217455831930033248855322665663312764403186357882666222009054840696024271943734320393318142837945542216500835877239320741574901316411891390652834452379459483483768865568556007600049736060838527928646931994740335602548572206692223832523401664539120414219316724862397005918107179645502584397639961224435145596790261074200712935564747853554051781223624745854305791829349021040436989061124622296198009174224251398991563266204720805107602690710253686401906009567849066705422197256607324115552865673499098602967622075378002242679097388980425522518475466013683690054293386985832330427928907157425504109580377967436974885371753095615038375504946139654458682509055791599168242019189219283638481178539274480000416839757077060654574680716962179292087977855863517044631358523122959173539685989505677448597930542443493144581965278842459322486483700800249363514925546923615617122608892287144885527868273707618992129869615264044459025093826827111360062181407424002864322743088737443419879231782143809156368192207262790150069497255785133893485957535075322926017589584273605729558614286216258932938009968008945572277426687711043069678812823233626190773610868023087418764755618481555084353132613449005902077520056597157826680667746316509425446015134780497802558080602424450403902455582978738290305789012373053887881102884736643849079945793659445286664850588660646598058188123185007480359632044782699972520908075561332563417827366910101511464969110223909406359718331723546545173022557271145616689149138708507584732412314060504170506981058060090466188384748749947032609042343835430571442228712864767928949689099731642412295129702829679337289105181403287794572911882396276208415252864819411367745037011932739382057636264636334845967710113146258646537674890056230029014303616993787019130208564264379058975540799570466902594027651022009649372643529487439848894929664631695863364197060019768457201155859796638340794362296218726644210844543021858302775275710068103612700087415629830048756137865609587900329068995496861770934329284277806107677019732713076636388373075771116851401072796160918227057746946542076228946750869496339475016722901480736330119547842041546996120759988924684937172776975718904076350695252015644094757009158478875469541999410263565724589513848461873557031505805619573079543969034493442562966117580248647085101863968774271811555622754859501834748040934628614397540207263321166468232943957737275600370819106456985301073504460762390755827589689859262591661585964908487121494984076161057955319586028599475381314643725771920177875442994127153511556011197585838783597904428470202450942727599392162961461325861980385573589989065289574578548496582729913981617903521008440326329967601363586822855084800157015036865297618920177594214007380868886120463323947903874427787776185474374975068477409340177219427931172820916153519515272409601891479031055033211504514779884522778174480630756451095434979864731193098819948554305867827296398060518489668497362712410432377250646786429712442111958774870222069688459604030249081798412012587339784433996576260989803794786187213109154637085809085104508209937302701101304975488343174569009101014397798033263308298631108309632193718171089362119210754025538887041328247081984057740370762130369649489492229931671249353370899202097038504722343467699960535219046603555518317450306232854748324457559062139501325706197963558756334445961145573567107041067703607437971123547576462747274940990336637936691059173905137951022121010782361192263075904939735273226348823765266594709706384025327918869586621782529403703123858408726164424415829161024533554826326025393379305502360214784875813828951028236658806509340520117982847471307023335065789480761181273604339706807751845291920862762407735273362346289235202359928396173108026924446656959911775692275361034894387200669816538894661090680207909804945575577267852765614464305079017440618245070376476931712090397498563642864906088504054125831753591962287507102512860932911410916632145637236278897977068399511801073066668617496445980797580991102116312381074841712796579391653499101683634395832569846055261558267265998119369286060854123818523098319631060666197130882615236651665364133059384164438007117404040134901313718541349856507859788947086325601340120095760893630175547861041799635645681488954883491716864707333270175200181414278543880193348377159730659448123694390331721629922550605639338038650899482468111650863485597391092299090992837154086176464824368762307920160219726363447659603070654726838834243573526958114497325763002916913249297438158172622550809727941394181068531865468459988823179153422766098990026817512909799733670019292612858771910631913882999439894366907356710887875748310341463776577057260847388749849449318464471296825486689951031028290074862824400787180341368154164585467075579933326088578289431713902671056668354539206086420603011657292807400781486753390091439764884135798774498827878002116469555239497008461054053933841042923270918675372539553394309427676319540502698444938675461183796564358934576754403438892580688017009622907709847088887700984914719604343125299145927399145261658396096462626039889111961714467699646067447182898724081668066913457446174663669855703383898229373863153311306349945078283143340798695710780823144251070329495058557950680100739946925053083949464286764998922767974092052149859699641217052045622147653292113216077674294885037035483834651146623998393489577983723610643773556476308498304527044195604620232475716236089199425103416116600506162324781389052380959717005243069729976354384349058285824826259721857619900613998381572389650404293309716326649605726755666699896264226002999991460864403875242621361031022712258834324310063434861127895157892822489630761961331018879055464157738610039039623438598364846043689038868187108650912869230037798597800566934975148347966941563456454790943017354362850483045440001440411358002988645353319375147964574767371408755722931110177184072650632756154654308171909658827326870671516514393130424736177408641738465488833669010449892759018109264704559605497531733974068971271173071677604605499665045426437645972009339369460061715445903135100070030120395951834784792392437115734442388774345468037965563099029807349125762050094281940797478053521141786090852988058794499308234871971842220722320201356800706525724510461468749803676505855337899112231437282281763224306713636633058676298193505159587174759525140516313740129600769737889579334995102671924876166822815324896134265248082485688833576857009274168151965480129068403252710837910934947924092471725669439517788817429510881320378064992216841624693314272909789277025339463401070347459809153118740333938647685126768738078697642675336894486478395769298019875001737531071626406540513263514603869000204411037536599175848161125911228146454845575177435520816354772003761324750008595562236969086520766400818194850382049138057358420668650891701208774357745793891689498619964321655002326727414704726557045440962641906397894234067353137736578543055549032561283566579598267528509143075320103272203014811645854950841548467943414438996966201718656300557895100323750126006506780880980598684708160828387347339923121352420959222115005941665531165174414817086602474951887144705929186984518220713524794425243283905883896788529057187045254354493114015348823180142642428511431799008857120916186902831074772864618553832299732814071728291579161653950613761786627822815484576606540228219605584016286882883295145957607461284662265280684366241466986279071320429925370571711528526407303013445367498446509009917242393561520188038207898798682465412442916457235809501782552772009865927422308008022318261593809874223535694335185195128364890841449924571133645171635983193134357519240195822950160374797306500282171416430151566854917789045057488576989089982418685417785588175755674221225529708513313912627315963742820687182791821402919098313209172176569526981024521306442513225580239390215222754423689365584236958732232373195835082734170314024427972614725745335999966504573567274650090392354651629897098380078443369179101609743025326094180761677080538691668863115622155879174403672693882463448313697658909610117513069531765398944295753260475534612208609103310767749037093684265089524766552354015967399682079355899984715629463830891638826617403536208295881910396961041924708955172614734946074918864688610170414001222496798001661198600389146519162554305426508777825683931584711162628764972398781597324767034243414831203513725022857691080626586072705267286483086840392430107837847078751775875943964371756584580087075844150086989627871411529550306834773996698596252690723783534035261630936956856211395564051879535366558610404988670644422041708571042149270326787277298424123718903258995144581622296431870706994347642587540247158593808704719093205728228619301223067787281412302235025353293550352159653786314180150406158414427167327160083389636648827951668196249410835056514509211913490754776131431399482469301646035882943186972505077358669402904662348196544380097665297025366959518012379250408615541065545234459813425070810830795768477758632591920475554137586254220239809941299199766807963769461787728497653350227919280538719892788849688615477990116291598922161718060128615501443816738477595200209319476274882407211416179365262557961242743254962146547557320285015081832415403415510336562601045608853563034009143970953395834845560253707871531239451004743008287914859557409743707160240281248867375784874403002233677209464857534005488289937391902704524906582813905568635117459384586962600024379473289431459580583947858491370820778623788035655683404320205894195558500156513794325409541048402153391364679790731996984834705199661026248169372348871596987137326432364209244383598134144557579124050971087053883875803112655931146681518200313091400198830086721945541102780645829448014077719028205945665062800076822232175137479412830246070992566902127036839633529352308931917881894509401914612371100253435795294361449895214599663333934428074884233992721353309325552714969566883136989858833272332944331789006886133983066974887658026686061833522713464569889335574618750292533743060002759063957418232671506543112127524389587746355048503592482940819962164370519940843227342998060097410072440384023740056903853057168448760754657899907848485159341819817712538258372339108913793527838990288651245264725330688255451273112565522528870666282485431096019268042198328882297737079490861977356586297053502227334390918616484869528964195829618375140535778092317615736863822015499666492161767535092649013226169729503713613624850461736915383422891401626789959221154250483024556531918709598675615778323935543218846927985364978624398807376570528459037754826524761654903530985153056060750241569750882512962824511543429780669072457109501463018232448920129108424706625417146039114443655316529248159238664583512587829735969818314695688607825284024728947243141728147833046430354262217591346215774388435648034624230112033188710533871555489644630818245093693891675181740808143161888144389416588867424822108969527964058077596680064909629976501092935383539174017054610677367049356215349242286987340619001181119613070196351985194968711055451484434900954528710405544095138228607999441162218109803715577503808482561483152007313126027775401707099212568515755727447655040739269771057401093242362509586460350366374206359858294929294103199271736713342698313709245849663269322808810894562926902512496345326502848007071980910315540409632184581743178635376253482127205960468624463263917715852165553849837190122099742349132353732142374148985512724205477464583394360533605857944810615369734722877404927729230911704916731398574741947896900087574552411575639143029347195853870082524850417050412010450952047958948923555799458961619512232128355299841314367591102832429657649827170036253268113226565968896578742532884716447686342619742356467762030147506675618619199520149967400942385743940915763452631113166220745720129913751717945397326771459332585467280786730588067651055310217024861561711604556948222973225332141255490266126115823214446240957495657510025106066394225473482180755682058669006743849136961602702264692882511707982330787180130837542510875579095985331403407942824013632217022417264415691177942701072782847614915346702983504022446557027771480116878995788250275990716106159018580465297928121414571740578619402730607097283031904837737059717298622790757312981493102772090073251691888530706849736605047423261047489719867721856378000976131835559566096903432242953288525224737541094521042899503690468931344523708197667262420478041248331862947584487407512056315134949333886872717907595614622912854154036522484045823465645269606849040320101812299292650327263366558305047314437910186105952345179997516579468509370769215170560222979002505357730846662731653210904221059212459246028395792448726965826320067457285409437994015808290204050532766560489268695724008946004999255346708687080280008028776191707154018156708460354863582950880688316427769332737365612681622512923546353704546732512136772841354089386745885711143160679805453135550223892813556353141340578382091835467448529655653460151854617972920201034110453804713968849964795041134188627685023431552211609784483128432016334710391266904087594923196295856434729971860539348261445332252947822832684330241884911665410072285617893834295575053207782899952783527452968091372327667688465192575441169498772452280517284099830689170413186643623594341943100898595382615254276778279999571009230673745591327408886674569453612991397311739189071918484815469728818175996763043071126466503378550388782365761619445173363576423375555309751391903796504282963675555312337414014501814418876388737496768379472835685690876376012324425796523985446590840315783008786446311478160926510063690691271628130059657887164074709316796209605242176690860695223794102131686856472661327950707373534703841562615626994257510256170935646684466493276370345328041987010152590729058655151580688434319931700995958010332534582582408381538181453824113087373649797962307865117864596760299258635084286474905210651982333801214159597339372272017205598928887017949546027423123760046833138170018420013727707587207100543652065511500814452900002757667888314775712379737151262358247611752176251301519964254443448554512883657584495201424832063239646766640918243873039783353882237137395396173639231203313763601670590994651422103109279267572874175290555732653801625169741681272100659684252802853117799036917850106923672327792927545718394647360181710334033802235834511651438564023241181400730043426632300500839189258800977006748696405097258844300553846414716726150056327403562665615718822745891600144233169133791394445068273419977730255163751657511344479702515071068247213594280075706448376624537822798751200463584759731685527868545882298241931754699917236561621417397812449359286507387724853951898469860066350483065317679617043923670265270496330724227641409689795957036736806370761505574899039990412535169729918461830548997428166599857734011292463342201484872574149307008976468382201175846454544349211626513144641562307447434121308751907899618789950046900477706731346920259563419228260577778390250728811719176521989387648166962629874346452278204213243356874880259870768404022043746963507224637619092939367314443776454778753043900713340083406890403310704664813327940761352241710703491715587467821979505337224640728571525978778497054908680925142343749137417997192444002322982637808318097600530491163768063350085640443032886277169420439991296912554441111119898755852426531670187265427664854289885661860963132666592659189018196487856787573027621648282019768142629146616446624436523876977902586324046836726946983072837195054554337670933261329137275753564399817684191629171625765996172525846233226189134451389665560114092486941009702627348043835461824247617885375329811057579883991387840976437577393288189741284962815489697714454903128905440105443467606774009548610300744843987177814105019590065243106001042129659143413253961683450993330505194190929245888030430778145434171668754109985905273636058596000573829310679254136989185120482374891564743084794588649929064900651625121557582783927355753103645215999085060670119643032960956736168807564500552868907121539143368185668375944208192541435542389732885375664080615507747921804010389959354075441729231049698761140120057167392341557097255003883069743104382489830472435954704147145376557346396537332541672197432508462768668773311234336512088514088050458337829325258792431470439380119265795436343532711786713603720556231992086824465923565465124422218752764576027463183022727297784207190593412773241446743685319941914075866145007198697360884169612106003008377778403615885522313974801567676988065894151453898301260907056453517384645662833709261024749210370999830217479335584619562759261024554718200347339572265591161974597915881534673159474253169080538854450062380010806074222954185054357202784420243589050019515342658887354034295853129890777301131570069629212478543929515808383478098989631244473568188991414869285836368648842407886711838680725512458306981329098051850308365702400230482546061697698077221609378363363301257559988925732920534835667623438623615321864025987239611529387882023691257071810852360380163393939227788776201548096065179572845651881664027897982342352382428434958367170111985625997934268925522157231889507635190689624847137088226838673339670885407058650785046537119383263631712292094291634628295702870827264231214441820658569142394593389314743904196035796667760408387911867537003686577660734580741530099099775236437414209645427965687598131435784559235414928038224750474717919418542583137923253203816646879364249535752656128119367110386232238578338305823366777733663083311662139604319500176944235150638822869934781895787120378903546383672562424268742982553084301631656999072385091612362220707807171472344411006041842058929008449308039674202963898125306371209016371260323315449590690632452033444677038796716753407992600322023148233947456490571982847728781768334999246768835806470553610039805341235325054721305547473628802197728855522972516664924517202918050934083454824527163424929287709436324832905694031281898895645687249811443315572930274264118804879830878081930940564908377058741192223836568930222354609172550625217464291524677612848965334040360954779924102991978169906964707894416479147581279805287923842014617826757022842105098651012801471416978342433183358930895065791633395423249648208017285643502211282140353621983753705777476769999056414080130456605969727154533434854503866284926016174661519494492469814664581208330774575140800754271312633972193785578696467881447808547257024662616163058836159628883428151073912032263883863298926509913647693672800092109135739529551390100242898395767516084457665790811549959960603506963814298354438390512223505384460932671228390099412386413062964091612784941940344635760982167056178932286342319593898178092164516989774904037506396525571981244617799053379996960699179185626033589196511104713852586069668346910144454504697693511384046935829428621322445092502979549939106162276195015622241913765052322323088430346148465385828117706039253378790478802935993805871836560971800610778342976932255040991631214048419032256448167753370105852689208036055397310542171108238276398764373946370133193128531331136692434686040419526529683046737854349891040964931922020880330150516141631078922036914151731885741446060332801972450934315715898203432626687031703437719318810985609533079969637955201096621308012076142017214133370316410328876255527412607554654497449983360474609897364241898397222690630948010461134676765380302439527276713571958339508265133236043794531197358996314500110017795272127626961973001796902049156516085060999986141537392097888677671249404083890333267574363074218986432030426269712646386224162611263759518385767602347621997214518556516648728800148971026034226073022730893689623978281012153472507365675809460375364212708249318941436325711685908426224639306226808273959628658424526379914793719436229170803335286354344319865846259769427419771001593086415210704950316743455618317249447693229441595912542907779248749645930795532018073599732712808509957274381663124862685314999365413816847843822143251018991813975144354658582166122784784751699991418019499176437337270849653331247608134348547906462004301408896967149079958694523745882913254351836583834847404248416364428797874776540657380929768962697667098552493473774745968794898525005146516763842830533717321457539859027097469712938293082438251622775981216604188944676390996205475808475830581339069688208243321100575503601574710033323463088901327328445551983008733963216066714124940119196620049103566794227509952146003825028376314955217791062280274232000148131015875986661740544020291497499118844212392752211551454207666131080688401564235320149476186841818166627624281742139155629516803585106029854556537272383402403188731858864070100431661631265197859000155413577222931292609942617830656411166471263036775741178655787605836849937766277732355099103700269170893295787746518961268126881678036103477891702026057658442687120159053733819233728188309239412455517824398210071327554644851766579252220058054588764972796629879759152624397578225637435465332415035247472524239584918719638451372130769560349395386193407744627526454062122029950753253470038978342930095121958546966841508444938802661085066564123171681695374982313455809297350487447166840498182970066780738898605063466526508333190110684639204467268085912767912675864403077594953862579193547031996059123059392671125944915195611256230766464978272886029133980748906021854726666883346740106008806948895065806250345800086591748281443369971628087732097741278140594385521260170282308839681933811757617277691177996270075852874452985421386892031810420598329493237428523160130140752326173987707608070261902152527453742708123295471266640781361701200993345354777655360440701764306707949484545822070430601103654818175230104839984058072477625296029165247219642224682623255789979710308820038079193572552187562926835016722069361354730696452650608252925612249418802393138924115839898961062004127859205424438181864311576937117423445327212976937523847760441231088458172768108589687333697623219953086472211572877694663927682281980982098036630834047746594444879551459330367098832732724441416828871144049312016471086995018579838440381951438177027600127379171240444679060874746121612705404627338465465989279605076457846602979631806043477371424666707119570909293956849161684340346719325160422538327785253464364720925613190794751691146352654483193829153441079382629611179880802418789002364820468861020251888649815056433167187203075851762194880999107852487704354700658204108680361744968969768949902152144617945532393710497159274698615718960581424504692812497663690892041924919705485862310573374258804151258340036230955026106799467580578406739556665536848827492756788568530707045166368835498337559268426522475403668583956215249023976095333956610722390852185876101712983591345536794667909734764210511060474338783049111508321901848507639265799295641279585302638168305187560693187534192759489636042744457691841292729853779745460819916322184566519945889199004510375056808673276161111265735407226664346989030141795182232431528388380971921177987084628354196455735262959580608812120120559244994876553289061859711421117056285930585429866525393837613869719107338327133410623975376095749220010715514579177977459312248664865551905749006619722228229730297226963569588006880669820556222683942837774218515832954109572904288934728674100851276175569087674929357956087119764455274592046374041454860608555922766131423468398910026936690085076335690244485936199869483441016711088162334447054011361799986528410133233911921277777999693359364562488356016306536839005384259654629239225630069174331753151217663500927380939224630151958903483088535111696201928569439614149587262150541605329153229949800829932750022190130398729325885481047462878008799149438409434584609142650269592566051462459659020881210816272477758092600511919555111325068063817010634679879610424416124997682400255756996513621486714780359200823663489124563574983724064322643425878909444882912780682312968043700146440080877281943457953949513969315107138675287948175767485735364920749378320535228045151947103297030478307820542797045940282316608994264262881828329531110417449450179259723883536414550415470409411204410337643570485320545250902813146270000588658373481453984020087242591098485468014388516138179835319317152809919037952231371227905964489530081897331266948171696080252919976564718492624495789275764068639527751991398137911732722515369398088245753962265607102212715637949727388147298798469114348965507456708907799542364453678028883024873927677319257245163835058070822887947586006718036148952092129956552439445611208672076781082679236220317133469677052341559350702420822091780406470261785268291333652498853842793312834009613729958148700937882832246914984932478389879833143205834854935126273248987058887834137346182473534137173680139956297084799634553824808978171631584574884013952237454602220826917173869556103398253724346466899375401813615857720596707926128978259170166643985151792655477865346023245056692148466842309476886773016972081465414269349008884366320618406820224478608801545327157508424933492837318271914881239783182956233277125208176553767152082505948524856687316783176857352925830240489856795690819213929223386234504177034935141025462124033087412362360230798226631303088845492243989669962655428423115631084940255893626334929600793835965276648239455687317687521068329796975393657323529955123791248716926501145288088935369001692608946631691963977385759486927607972413948316290538236404295176322893225094626688814978107254759853818965233714061027520818348258743727095766623296923694482543660102133770883591436569327336150278235487640426458052949201087415114249626367623479304540747800390883344483432981455016345861279337050008231722148537327833642027068402239151625202179580222012318290173958755199222185563432858109449166635180202701243758905321043568362700789745773431642234336112279664399596505334027174331640245540413303484770129614292733052731448377560348468406302023206317045400140106295507761774628922950234621274572026605533170597272200477947624962691670971630749359672256600107589886636744733126553574719655729677622605886947762385068022193057717629559821214650963342526797577937518932594170961438967661439212661110153306434230457860649057020134427826978232697164665514231423439803525294366182313816478573990577023604163712365722097372874759234061124753445074351819297440578260359008175408721901902927793850004093709548498000111041416120232212101151856142761378411335758211387147674456376440162442070517616224634225074210709945135318587327390835192599495890933243819766330377200420302126437008521247135131477747838550498958938462439942167951029361808716329279694973135500333174060880882993037481833017351071490906178543355684303748326623528201813527424461186087194370049962033890105961008048241564282030883224493972336784655189549400116976085447574702629534675740159273885530095097736442826525157251972318680471747653627946461359138392958755416553512022952839117118551000005538004682735055595975685247675906979106900263977628233899942843431286357535269146782848466981883866015129389349640613847147538421274908213082093698383298131030918854546189865324438427340097539856860338813735409888133953265829634096190083702609727568200334667163098743794681385575488492999355837470114278833130273196526737237459964036534646305427250218028410348315967510755208646298953077181802770863875872707133463165061063713018661866913862995716630410191202503241137816140303335846725510679814876537361983803174822257428066634410264588285292895924310634455434775034897764992432411771232064458861807338948543622545550944593027754713734998939991020016180290367117543488970856697190320582140939104010100800030161890007911315588797432534680502027104984204216406620403248718058677670131682136755369548786384693441780554481875176612924098944532349000198989381453799926597463485600248162731610532496880717563349981260902792416394043546230930755199079540395430987807250052289031749721012263249638259030469840426920364328986368279593119974462526208328573516023904988551007556057200660707381012976998930404570152083720717402763037568958078575774175673815303818558670658090035485446284005888751804822764083752826574808328501264493549442575888641334211445861862238014194706011093514732922746659569761523342957740727422016633726548892374226645800780979236992859424192550054127264556639894788196986257602465806709859827728832609248198278571876996026791708389495374323485027147745561932883961509344956312974491331315527629101707209193241133713922587900717412538212741781155883438641860190836690872255072159158220551036350573455734873652547940347106069451636913927851383118694771106563100413733335490864749224246338885392040494235831761066816162890242673211471997358126269670306639457563931851073539360345670396467243922490667701609168233888829177120734084294407381276345435521715482911501923019852547833375029543070628262204131681901985811088423060212770247494901231389480572340467507604236524984104338748295772342252163468097603826430424445693117012018891370231211625938063747240974826640789333927486720460111195862496309803592068574270316381489553427787559635607256480134667957596783432145663706137054013625801922076313910986295580173947962675975583156228260223235006367387935671502432394807428600988413051788847109846652328572780990512993075164490271521331271750117171621266529171831284856816084172640660642118029208732749313915177915379117819477965678035236739191821687134028777513007676693439770371712827483425355312165750902710328740006245483775638417725079109847853375574539210393447113168507654866197095113699435332744938455182500294501351660984531174122728763261222510910062092137149208219295785377086349403078305877554818308970258752285613129462908877176753115715800732615819394960040259414889569731027403128177979161496817858850909173348439851563411226612851913146408405004288671333358558243201418063609833905546282953234551625691569571141188878163801051384753555400881685630471037185102448248238155201717514843257947922727264064280222351714618444755037827672676882905906292428343647741706681357276756120805317702550274942778381282273155597949412429178289248297815252635425949368248799066088990521334451258532384406643357608687219257025747151814792779437008130828910664533725491181426732032071089872854975381728693781447070456759134553308534339868651219339399214626245221876262459724728727444873442574918805482079805597003818389090349559413406022092405153112321881149067065000228007301965441874606847929756563711099456156310325016807046484251634651977179793901379139339370695658046751057120538052241695779245854115525046576984100034492766808273207195120814991037022402981260203839329806223105434912276961119887128937728623969093935618454829374863492867810550987597992512161886595617663092528828098379833850125738181171954508896138321867312319777457620108215143256238554212245160849777145171099215071640366277901060755331159325316705366246394568712921822309174714067741414388264089925414530042031771170017002532607215267807617760647669840121462977935132326689199580640793195432895208144580034828867610560703287869480179540547161222905724571647304919836916666954408616366489578024774418798162831864030525817378042159356050681612235530622837626337556894681414257342062936628635818765351253302557816851191109488429191992274665822623614649633532535286755736331600630576969498608707062251506568689761480152492330919492546338193264548841480650578287923621381093780307913101458309590921307400620397174746956359869895752914996922910577367350128785220634995364010639360246179441606509875494431870653383927444187557297859834627863938884672634486444689722147178552922833673237070901644694894331020533585314705527545005173968138171853601791039916397862698802734270899597526291347428891221787653708395425487638013344944814460555260619223880764984024013773374266128603018765113660435274602920870436179920551519055199310206088813956079307157690997629924910282236095758882759315590251828754860822057466921067133196786398071270657975011475927482644830743030080669909989343645582695199919013604179427203831537499563010091695014280727768395428915690364509691612551377077465407985303982659555882733695730308842081501501181536503719286009513398521534863313908374441735705742336346246866831545833972317190677149179000157829977530251581806849821264615150604935457410657818101981243537051087617309285741679240706452552674514007161422221149003499663728355800300337741158184644458643773150200321774544570963980435322346211140922779067038437272072427342770948223077203693130604800350057616124284765116461848154674093030138974000565854830452368509173053205619156242659199607160981530673565718477536547093232635887954579616419924521075466934977373264810511296153107585231542598054571031592130695503258146018727009162762133120117345672460541537741567195818426425683530851827987872246467548800622197138011749196524213436863259898525665936890765814637951226290682951747146553508381372112365904625454899628853680517470567796269320267486819661375095214363045502014303464124680722353215405481795291452294494306303569428602479423075237560574149425978145613028474223036212297480645916775825354206311083273146073294274089436593436657744904034681851457620985951079315011679028588024426462560182798285037159052380501374698698712564279026419348576018340748654823707239462270498291099091590470155209639088275054010241335108001084595749680630002295329605404891597843782587012944207266574822552761516175062191507972536550718621321389624969379291957360667238957805155907908759411999652950295838952354461230898667192041284267793552570879807553251068089336125199905578056173267333229466010820384728129076321058801612448455664395219682021852656509454335972108575164652510736194658360891237412134212810389941220063507292985546353265473263033773349761861384007191269436553772952318190607670191670280536379583743495588115444531609981414138679151670438925572104489531760889494862182131856839458778881743228602245607188853071849035801677947851162460690326234553217899343894734314351653965193670061853203571317510496423725733905697634312927589990897526022195720018148557209436239149584353333014559138866526064680369464373711876355894487101830224029937924564711637330449438820853480191975778241120748574223131103255638991682675191550287672098707834275091392214805673456138447893576581985256013696169294687471466908160477366560208759394612221762334286087559618219534474454526220867103528825166405669229447149190016536819269594092723871549816696901755324460884664317182074154393016400433432527744349883130033058523557585870340629571020484825495325669373633675301553018575857718390712346544892415866790485553813945867934228529410017539985459793357014555025896670831739595412255791411015564849102280466242655435761815112651190490574370304591491232074956766139555581142985179689550265087748196172415406388542299825850778914738906916204240845561321807872644849682105579347541476676987895117193412549324341554769494198044291734501137869868325388126168253274742752052563966241999788086176157173200314805296459406939507059367134859671282844162212962449576348588057386740228938151112283286481460891767486844860265628861339628142932410759111103910412407329872045358048646861627683613650162110021202202943220181676031373348451869001642524231531796680986254240660981151105829418636666518694739115695490944875344244558045435496776129956759163445911119303975006597427019580456552517057792054031226323408066869816178283662705698314337988504978469554102966905012441216212648533419417681222209234241522973166158662855786674194352832839275462291618378352227930680544924033274811946612423082254774095329465836384852563384491036821675249479207761394559150588965729349900045673977353737365170346299026259309289805305274439413177485626511369494889909065117049740140690423496167606434518846701757720135443459285824121080222876583873877194829648026390480491148583610695948750619814601178818617747447848900965787330275509282880009533154302709843577999818017669750382777296308787397342007525254779452146222100789503292634865508334498054178649108972692183866885752473936581453579284854418147581994868609320295619064514031541220574508633662477826221231402585965632224064916876894715539346640541847528983448679540290055959304271725905296128026422570557944514459169612926860441512361227745434206263684958567107826700522165482722065675183739859483439191309028502924259859687558305620989768911428897403125764227677898427777750152867007953686200741107374143474324476107619022733246515164547529399688109905171462228983658543611730928439106581991291455250546034101126961404020130815480534373745926512704863873331150796945130060409541355273115456704883741025059830058600566271782042832023900978564376382562205599176976992744546898472937389438304351646612735493297484677296833507623016497014591306202599366810745751753839129666949037312513205038067864822820515583065239210937345548753564267613990941160590043496667048419527129548163539634314398110695132240334634302465804098180331082875195898790480346739072780791555269407289265871749819182947394173122495814945113444218868992987899471689207871621053859972359594204827884155161986352790904590714814931900736110576593743322536501614200826949016922853882861820105338922438878627402127066514766987815215013828713382529476642185952586962939481129319959882278797852613389929377120544035289701411685082492053008009168143304322650089733880591718720394680156464725806784814692559849179278950500313734596597312864297009467163062592217746826774367742079971566928321380553366461156047832118834401372597322637667396443307170660141127727591663957601569908610242922869937210838902466444392147332715215112387034426643573800401125830019479037899664355791574882627841071422104275123873803952406589262799315546436860109458914230515712390743225967223961964267797107688842558128859562957995836116995291316615746469593896306678510488110723899549585620192628495209338970105972548919047816268300071541990396155577993214083352104031632430320155590368054348058602798265064387079715831589347300453711722761709170253869530591451399943459036845178902181196723644139292754467068903528073382028924210946207075332648570272828728030511338501682710171788018170080741981133193425694742772082983857045928879242669449269934102622364512623530414103698286207475691336419553197641232408942840103214514865761001610003843091325618237196914191195135184637303264210644607482806493900537580089736873189528742407007303031460847455454307504018261652662259687682892982695525757863916369470611651189739588628339883424676241516569822225946053354330983897170357924471960956972397304400735492815224519197095161850016517351192378344590765280482310242167260518744564192481638281499893525403931039452312396410875995741339104848821684851562277320159610496536718128426722177265615126701961442939654809722015441420717604996902954239851299691266226750782472458996196142020418413625661487550739220462265592265885643085690809082297376120311618278582190832821917462964532402888766068125947929144857112669133625006632592320114505363226858827559325187492447507657716237137296515473426005593758401848842970727669479302195856264841175056985313096770914739420950311050467558435107692926321005758202879713308097269324393873513029973478155441596585034495894133183807990623367158261684054937147608436210677219242403014299278035900024790632154811290925445084030630422349998223264235195250329642675442278481869454460258619369900930888519240735895000694489631237916891147151089362370739888146495400421427001533608483148823640755221610846579971535746108925660033067537653915674309333818776397578741296357049250627171926666515564852164458765116027710683938604411611547289899925801195922132634409191400228334020971645406052082275126472526415277346109999472483892404408622276349852400083414736045198017208734457140961784367222960722771861659930466512357939321134613842104662259816718595714603589935174714789455356932535344856108510506813321455449896017524930701601444784742776649587283301580423894499405544221716882702343795637111359646118719367824474929814477449966463646963439933467460095022130723192040144203446721830191089142803562755344626042872085843359955259713396622499188193032641994442442206324026685099187661926596771594989330311441457331779029037982117382300880238406853306812634651391149213386796395130180550989358083079812257591298452838723507427144819404695208471576547835845371157724309855283455336438132045433090772408019956686473766002429562866598617678320758434065920462734284265036148190681144360744368120077457141808107996568306531142972914643578856340178772882115534074991576131630362089766276094958886487806361110410973917554665855706929367329516475418425283858571083769814979436955873956441153299580547133076042643159830400111625768377199208588892522629702874882217568371638017244124916913535451557287146401989661353153615484257958670536225607514142506680711055463974686171927982158910304792646336022270402369783940141260639553117566516437192132371752932791967930210580527274494996013696859287264408117262610864451549069622419117191701253557511338655059800223962242124082048462303289542566245068353889515298804954238155471482698016279687728899828672362481069568005750650887216750404826920072749041998267905590192212842766390223307920018210243879232512982256706937841510564343154838023282878961800387502058247091330532145164849602476960946028756892527108179898193157161988372307281203277296092254471928460190979900286066590527214331771695279940598468420985976000666818971355044887999523596166355093464556677390484669182960260039932852969437268585628212757950782985064127938082722796844441711822593726728715450695716247539900540022088409361482650693536706031963887408049500106416053273961268971738809025604618307675509023346438618009531699769226886094195257217027486130896120317691566988507711156891320012630075252689020557417549874546269104144091381438297762811297990659932972059934484249885001395297521101270567450345805428042932273145215231752661138123214831097533839296772837288555520542168132314868591170316148640548501407442661022533920922658515703043688565459496924867381202948099877261726780001627139562827328120127594567426459320690547934708377433747181173149464005066294875979903825823166434785302604020953105910917704164558563624285013279897962053698244687225459190478621966364424717725564411377609812195017415066469199849319777344837819052336677354708776890493644086925760444503238895722411758618885050870968315565891379001683231300258448376632024634733667747741486211162284398294630460662571069223836731135996091849538881181784710492551558836908581582595034483808459910044187884997105445232789426576867028735933527751366418434634514474801457878384199299567522826154135437686121892350170329338590104397339467354917158472858577882887236951713401976427120080298844264774717255338103329373830068396694845102438902439602596288976631424685655105030153565635616812684431787934131566976521069311996245141211416906765921245414152035962984648370829258027355014872987058148558926220212922761065810126225928891640792417187605500588954081817145316839524315275832420623761062740582740261125787753383551154850965106051701438002059684384125306572861882321040421699565946873810064530626154020323215267350645918457511604919116848274786646410592904358409593881249630954171459642582614139400744289264838674689922845357981436140753499869679080439741828113129326676210658463855955080023084454823619012738378996675725970045327495292080765097307776448105387798214142119073492958930879042781176532655369834556174112362792697890129564496782614568111183473843631096684487358294779377753164767084633911558054664869257820236986003031769967855636639668774390959696293450732023072715388034622547632444632805151912609520383211404513379683024724349479014886088527490578804516002429301151745963290379049183926347922477565838571443745946141580726600746449196988087768874608641462816446884315038471361361940310593224404933458168259236761634150957134376853368409045086190865606709218648780664881514577642299983081581182515459492196539710016778472313393014895448125768243829656740478559777181876732297247625821548914898724746113558801976849293280227781970955102278916938563126701045822420662932739880125056476562124329098987000137892465600227538956314167134682668017772903963044007836759736781271127245321558690778370156566582435782247530971668785174638987384951060609376085950142430244222053554711066094314894977154305096745376305906666110416689211091317528147807967850558570061650560386527193896262121771879071748729714808107054914190996744275051931372721169669135157362710154931955649943334002181206666792783147731175600949228159069618242556857814795453878308801887363481180519818060761139191664665659917926644011335958426378115253413467136412652124470380253687791021252311684592561925627647044303812006916456261973053289387807666706169658809121181623408826107798604411572119243445217810543688289430740169377284487686748351864231048324587073687861250132309663949808913498046407568901087632162820122049506810208838089261264319406276176923054069516160277372363010726350000904947015854188151422978963212868845135307366902943466198961699443765103606935317756494093603958982374252883029246650591306331095068311106244421948121779787915907359348985275435424483806596580588210372330513529795818492666289984010465732874517117183146332355977523490691892213412854472688357751426510707907417785346840409245707559858200310420860400374575629180897164743705937782663747885952738430925601855908398881745392380857423404131978241312287144329492610799057453991887811783123524046060741061618563881011728891678730858319027241292171020323623946694896647626287690125445292502221587909379669124502736158580369744752241959104920126989719623429016628093433808018773431199486802451968854021699590524741885182133935371238535583780657661936309542137491895804532666745502009624673637919877234831955032833592640438338976063399045413957761138934927117399015674193080894687169965578368285619863507851184916111575088033403150084687606402854946635261388655688575956090573476513845952865609321891979224511461113975514901118291932801824993442728203547191562458886274883035242520241268095899046337149550831213234481448610983293104662097011611288529607591292440232044235472274077117858191497618907618304620204305629799423566439066387387525784340628910986916746354910213842445902284339752384266485919368946468406067736480027429050384905696054179326799074014751868117772239453773025383978698533883776314904213791115144848027301808393231258277047731859394458616074397539829426588625566546065982010076714214210797466791641250232953377572527458844025843518953006624413863490477132999258656783197790793693492486525746816389094137724611354366038857665885179777934327483451828261885255202816024986948577575359372057180315705890539975509244440346543560803223164734493395387289015557555067821568289102394417739620577715846151124655217805365402883592753324709185977191091313739697439799568366522499285419779045241353640940993668295574618887322172218845201230231622047565448702125413266050731766176058235931627149491025728187960425759188843442467632644494687452408763966601269052476501344689470783877023658378023988655739091116573943853563775819728296868208766091923245845130661679017920205209641877914389813406390075137591627080314477723668969321282751641399899839561533588457524817700193145563161569464168334617700696566531436460732269517546032752262292112128045211172915602247585154019953415451442969514216663841754040519095517993285034230114907904565618815961011436043647019783858149225526371550459086064002701182513944212657518392172204838442862983820471677354529787057999305449934833950587311559386017644837811249766140896008348443088741725369643368031436446030642601419653637996829653763459570242497621018976751042963730449660305159821225911378429672412752172858304477671916109984662546743231148381461851681353092593548354591198380512169649586254503390275503388662505147482454205491032305245240963325036273416424830318253034236044317805028439306772660128913109163824568014107788252902954393955567863475083049465373143977075820748531335037517490846132064440410505334110990246072683697590630484461952660624267242820596158823560367758082828625032085331087928844388743742617853412741395689754799274524496723922334231081328824379428512631139590087174548854176293540378444290836061081666728528704734026629373156404058864850040284061280526355941985642947007696265677904981612160767521366542032285593640321249728913778630308253829280327841155951645617363023027637554276208137381705423510852822724350934652131366281998947820814615711143600045417960210988638616960722981932811132652742934249108642414270553898705282874391776105053130244006529601722670719607709813959205968355695082148182806333478641298910834930634737955557294903768175747003827377646752725007566641904693471550390478627215543825947804096368211457037850554270977107774335321994468078015720313370414821866959740545686079019289504830758746705363869263155563520183451930434243315776218524544274834339830556553261846501165686891059131965686585665528940032775968212924683266094079506179085052291565097482646602031506953649313005215854336370379785267469207670594890743733298897006517096366508385448664786282623337407144438087263355048587371132091352537164494585916086121062107900027143125525174922427252018058502570910382193055538937448911929290883583685630452295072536418320558292235884385508014590055934561016381661796911993244202391080950029996165773673635959403710598964959360581261023765866846613965590272710752816005487592172040346979125318273297899126877012145627963040469986733578344693156999827136674136938066151890179400650950437587317228847386929951532947996880489551775971831629581825913263662921671571461975577172555993067062763240313002539820102742930258311087478932225712867880663875398940800771397691758439691244937423401130793144171339018561587613847534665616610411169503815688625370065114042414857231154660810292922606554380500884997320226465534082554679482324157793032704076068890289793020585889843322637968842639908275763804158318082642107757024850535973549839602610164049885151029775276124301747155048334785197344699988418940513124909245262602091473513840843753391471291774985403105796738367566382772275616439125369012763972735435922486874766283057243374522533020696284233439788297922183274586363588477963510488402840519081603083169584008453794694496949923665328048701837243426527981559228515667290733014346966582614665207581924998670189181839995506915404709426001047066436065807702120171186893022066844897588215902561208215367863504669170924176738480652125857948191780212971279623056460253703491747538237473708596731789936545979798893823886769409439607390874001816777146304762754888907212546365403427353339880907674140450152331765448252895470280119381809218751475958373960440416615050357375890939768873688290176322594630953047699409693736963649815138659391695908066077830204371278352305116280259633997625978233734770470746892534242016473620055875771768072670161216320191660499193087108168826051039618314234371661740533874629004601259950929264856189964271272154818542204161837568700553774292311171212918675153496588358527633264264579088746510847113395610527421443155550208188941165326997233696143709116729481968512315695729624047068331915047196246119894363707661384263378532753302515611927738247215750454188949100791689594964234461455954481027464989221737181182814351543457204576921386766598182881222127398058103513319048820105938527810193990572722172691278380244891872549726119113657911881833505936714908649531619517687965220024967742741076140726372678413084507209778291060970729196179298090410455299154069946563127185269551655938338020601935546034309698006484087980956564696532598455676821759795893665853478650356557518837764448070454539124652640762427396488460359786656085078833220521309178553089327914608945119331373908413603045235722003005848664077976500042377887228342195644416719301834971755257238548789112501557455779813715947708696503443598407054513627787913295267127726420197244339217737167314211254892238925316624447156313872030967505131570078203557934974664821069671644090953998971647115115098065435186951676574481910169704801636478976437604093452145132599053852449033740750172959195994130804620172888713920944550951923591724774884096870572696838006274316488707721195729309710036287031813730709985718847367857768976672664650530281560958077947980844441439011259595445653661311616539043720131843099791828410806517570344462911427662652986371046135698880294681514303228627188057851439616737389605271078222048193299657817733199780050015638617517711546806561975132435557357731240316490749269000681532760407325012331190514529849793888386137545831100307770905283921445655606676486159684184544148561492816925396293943958107556871689043659946438080428901481485523684498466991349516432613840660241256253733993488408535904841621462891688307900306345420958936627397918284400844987804826647879350561305051140850014060271023068431100411841641286624877834532326556186236394883522806362132775052180746739615295940667379249411201496523386920593756558750580313812737430766552814456629629281785435432823169259121295465704374648327709083442039813685196107305343335903627502476286624256247818430246287599045862787317331150250652903128680288489968350608927150777445239511247183996112075702322888462870737779529333348905045966972551463664493472737778885009568536694649624600788294967099517687809749908764867996106822614768380711370327806180478847290365539101969826992164420240775651449341915795242078252934794353358571313483547149478324948674464662766470453909454726422632373699162283724029316656187699807120985068398227287283701491821380434236897108640405871583356981897839071374575961680392914199389271638856987509773486098044128798002787557624872624728521952387205689285148221732883427619295194463719218937510852279513109098010042712191169313626874129385893265574525864611932762383695897672763470847172303256595782640515891936585676402632095560302888614726913237405587699803422323048466545008841484664347453635920342176354755417070198867878003290429160508279236226697947722209621040120464965308033411357621602108855156374368015561898121097894065771660939103943969554747582722806645496365155012412669904792713410124229680544496019352909321896089458708449265207191330310338239452092428719387698636854514274871924566510050372039516799078284215799027815035894363555193447511852249173218097814000570444850495794631951500661659581563363705156650357656523895525613238508583275815231471142780588689137522409474035751478908852295663370510181415457835791179455266391764986914842209801691827510310496683169014350807127787099178433267610298644141773343889319223530257176192418038211540673874653398672939449286457807485707426122228638821471073918056914091676843209892956340388537134653918403540767027206834828370108779651173152096307446089571162363838317096064029017370844016745541225934957444206968300445050149206710742103880837120036027533750648434218131418154643582556555799307060890121175262325508992477015288894823074168627797250369068982162946694291569070303647247195512735962339930548839137119041831142338308804593350613251760323234882873211080749890781313147132217645411054159726940272472151915926740613539866089793222751224221435479933565027716610272495895196126513839651148382730378809128248538715355253395158587585697150236303712891798132869107068829237993224632118772175333413916163782699460800727098412343578059083736068166111563036057877570440934568538467940044128684697526422746090837031034347139031291176737656506213427388936193006263765061924467307341478043106099943777290057811878762239445049079461290700656625461508667355321680413876785084669222225951464253816544055460036607220363337331416061584907865894466769567484050112721335825935144372139354195945816741113154442712201464556979034828017456232116835066111533386377392137899272699233334248195511007959596719301676016368393153687833968182555330682137321610665547593494909855812577220224574914050303222250385259723360675062108918918067061659294953165958083794041940119403510482609017576117190691360797162502018994330574854042014873803617619246229035619377708177918266299385209163361753686902237978401888125794766444712787761191021295825662714338349904382527957860705141469113139147656251338344061021579573760032869759782163980952219081650401537882367030292808768733933652903575219076529983964156684283558046848407602470759609530659436150740466321476375757376432561131391778101164770008248630638078192596284901357189391375617015515323745445230754539179622762690524389365683390824570626511780584296739506244255300664500107779434388696714260283573636873790599006971164316162041129078650088345307505049725000940156085930217968898740550383103973719357421110164191042760431242437150334696556476871411971915790675074317944762547984655368926782357235067377767229588764706644261650146487241947456468398515322315461926316852193329606134645658832294896160914073089940427938317256037019499719555725918276242119595555822001089254033478574874287010862511621327146959021070546841771552172649889251325977110381434613439716733041846279829149892289865726609686177406744444933669324370961512922201615053556890332967765437344718547076071190459467705703815073539208678277527856347981849643522256679229782813543191794231849103451231346615305592084275827051932806092582857508484640866094902721727906604015074072733686070387269152932777598483483641681873130814053271226280035793294952261374660781920255261997999330414601547567531629867241280518601404729972313491661502104995348257226956192753535147356193124724150596680634864658092444691708983918059025637805503886010857788764209971805983678855542283839155677241404698030047161815929247472067790400039672734692859974065964949845188042224510134114062861369625049599302495091323356561049394588861527787445650569456481996809725294212106277580820326679937749993432627282305855203881106849867015049987819291818284238748497151868101194359277697903812656543073217428845723381533876793936195894156718097500478496918380920210368428404678488178012742076744619539675792551022635717301960660583482193883152764696888753296288892123134363555689284363282777409602614789868814417966006248846195912778274827538603227800391394893956209208622035662961173364701383806784705301095113576903531775728858920507755207453295958786230605299265002434527302765191407819047358362849929259853956884221772582124306916653754238361782545966911767709829205699476302415348952742123619576442160273281167239582259641699432074821547908889547390829863606967429987060549930532620579655682916373906912250695522154647051822492395342916174981013968706247054370053910199371080303018135870406295160424085256000804280359680538963817546683537082536839431835845406655581232471973772342447575775092594455247778035444087214390410302258019510733345034770007304320292183867258874615497111771464017701626127395750687359657932860062565693488259274759797053734483052545824377646581009137035739985660215134431589383468259708901747850307584280303294834501207308656750565235589116822977748176266485441844950603439070917980119653215219394050589282273565351443977159502812320570186732637152253555372446701918334019044404181574794130677452554275927119243369030322154330077048069477941461676383388803481916045475142270844536001787281442851756294488197346357459016254645726526128804030957377713048700945013406899886069380792752703802939855863847501733767314837878292719074672141123539692110517992672127854725426602348616975341750912632172395727130427148670921585843262655217364906413950689860760647408649325551025114011642544589387049970009827806486990682756537234005088593599150698780145211149280484967796579655868662563711236524020410486330307934145110661104271567010851170633953723995807477762730712169800671215391687396967292460088973945259919713172362360978747109998522507048853580327741347687680384135195274121979643797842294348076479754441574881070472636998706501779234571518421962128318834465289544017048958824011295838219847910524035882533799814649897915917672400550176687221506478774486319579001169624335511801481739196978877562800519636234967512593860793106318824108553511261669672139139126670429366063792807863758867157159048217087985075774057765874076103609572962550793465328612636009352765221607558038457080252324780791761905489315542289145464623801550553110796719858855678090526855682296814570776742009553942836780832267425998897328487485671954991477342773650392505145579484222688444748592146413335036195216344143517887057885746026234014285512929865415036328371580991368122944841815862210009691015367688920948830297844619326358468303607081432908443775097830633359451411969159155612694741165365219052170225492087414525724347563986045901415949482669046185918579222795442047692349966258740143579048703856559536807036348614915564242126631194473262949800161026881041740863723707535234304700900081656857059811516049091906659413104585629488819014564406198190542388331728044830220639186173119175111266073791137677233689201051474588794765485165531033754863797528913080561243076485489954620149155162032477248445164157874028631343034896877311921937959510712408319149434347311669619042370848144490437755576367940734213554370644616067693593076901140861940832007121275377880616143502672087788416719032857315082537598270711140395465626652770890092820569327532281828772338602556601370862420542077121342074153743281192044704981843076223472998709109798562961482228375773486940916442120723255777742539745294939695653282105933977481393182217873981342256467528857915120537748453743842134922461140303670732344481051898958154456844759529726308139533155864060137367988456775305317127029013570484563517767447551869252337964388634576339507097202956755398765928864327935427371439492380835346749118648094378542061041490271808082097968268469957424596615589974068158658009441278975159053441645011588038128987444643295630701921286310350259886999015632595328603419347048037104622031598084758883665834164231147040813997525173635432812413941584409122009718688964859707973937176857123137529299593784300978002362410149729348261492808499051704033849446809272747773038311640749018087046352630546223723456348643035430547641335326653138609106366182949377656439555002851125531879438998081070101449810434473592833418958591467487151495893618363615693544635203112311888922406704334252559813311362345461426265701380782720893281067220104208028619017489949700723758461062985455662200819864534644778649415621122430034733948349464468036704114724529677791665306647177722754428616448419282434155012208807710025603921309790418597091400302431910906155447275677974962072758255945038864706522400705204583724804916006525612839254667616608010306558770613699227102843021616429641659333336887403386244372186200003232482954303536299124295616442777166784955307936251882830396099916521352127214919751149622497991502351952365578806622189985103378177634934624680303348989721874998597973170464064175394711432215221073467356061051261964246079408209147667334575716053814295597561740990463702882125106456853845401731525276707340202763891056445582239382245469102442094375285033201040427609318399248609362199093813116018818875014031612223502403324229192733722489591037993273101053380984202717249527556639671809762508918762304472226464503630396248834617914438550617486478208364565014643359455297638296089606141599300658789652385699525701598243690530626384272927331248218752405286254648812020963127611240491579436805527443032805596377300134044852287476814221135769191043251643450633434738728693662887072856698534569896364211480564732485826614638721412265653634257011394431388509812446435259893495843853856198852097589711836975013109576356515570025043606610784788906543770302190480936216224497170194328557780176749152145131492131277197963128346394692936607380548730417468313711767722506248115551667800034983901355600978745847040216577137028512870232804554062576954699230169057784232677223211399598389840884378637989941251582733355301838541292029530318158537914227521856176702907868234660614324569082450333639840725278778855828886923245166292337531582649926200407583121510325643325102860210259810505161144209036542803991784155119470476333864418961226610793488217369148452068050613715742326395267337216867639041117206230951144572062243082653598616397597256896691007699506343993536988554119298940226496065934244019724767671045725132691029410922574522952479413598171793470799457774989296260804829788559791172751218353789293788152389859691711056908263547691968086659419456715854525725953743058069154419152068671326008253443499341642185863665095880816944111621935404618819259308664613626203670745528869701191283529413232376631322202849784633002148967716572510598157587318277322790356425163502243069647612374182153282503593241584134869212340723184389031976250552261937027398680715308063951898750526594589709906374412915806547683133402671134537215724047039827509908521018306424974700680776200654895331508945256815902855130401326168702515094884317168672228546795573880114228284631889777355157829935451635495813681081826666276696327431149901546312788592053327596030911350278690260353310834850436080920592930844218846229588737689888151522705340205755942338398998937598477901220587633223322859365442708607684432526697600722875024072714903338212994064096178037845199183102716308132639842541813801597080494550548162123270939979187201516019108631259056770459521216665101772121187058121333105401816102300700242856997740664612727263707255035135649813269368561905410239395221241035354526535571698542220922271500735149391774866018362898767156218847944802694144629372929683836501515969081997810630724655011237565677394895271644690829677471319430348077787796312508879334340329331335574528180781184468818850178540285140075137999871229836809410460058233234940523924386476852339588523343856736034136002314499891440668116856507465550923206842948208278428203048829740873373385273795198495537550458756340277140043226517404386341775760125041511277413704893965065628754016240403414177140853029836505722067776827329126457115625281480041747476370533636695293630173204445709728983794837958137629641877029366508765802907286595414056836427127389412659924312645315134832207559097762596148547565562027225044578870425022934700227550744367199589050523081896330799920363925208828573236792667774066854698679903091534044590211906624451435096244447670200993313897009240343409716788678354096320797679651349668495423000286335347962444506319062827117723909911259815433110601372377505252083728598601429759088660991995049192582503730624602111278675167126718910228783551223737237975733756375424459489416575962767643029286947722674110804553878955589904065690124474372658411149580697993551587126230983301934430809115478311393785222809312822833978116396525728700572561063760327650721034074124061863740390027259538413004901288656208895040970172474116264421108415280000918162157418774472685499850883174380098350236269146728195619780604655705782338846707147319573854504396214372531892150079364984852439996202562284319033627946759071651399967592141264124876490330918346370602711441144087469173643398673637271139074201343429530509600580320416410457200244309770189775200475909791117704219868671258959369865449948749199697899135173784483423775844951636096096182470033354345152754296674706632763016286639990663985641974981193212382804731935892775259235740516401649597340686385243486363501416570778917128864166804610988457301870817290349318958691441065991604849858236873519560762985940987553958150792936136872545940757755045299535887267990337641619128977671289014493541344706918189601211689451938090497386711133758212321125894520552065147107242740673667129433433890692600173353105789396879830966660589199455753223219068070420693460906998090084421347569923347706330165305974824265160884394036149283750286549322570088575441116570224864180332309666383384237619304640531973082435229838299508105077369521430665103201722337048871394900005668943323014928267086036041628986365964542472943705515911835433697259715155048636087242707292997327300173501630916227310410006288993949791308614823342052007166122509071522821436628806624866424062842784242595474498749167741685090539727635178737248949715717118550543498884574759911759589551863107876629105056984027046156111756549904624868998473205029368635805278630169403493774988817506636211465597680438289344079575332059383107118069812967607200400292901818457225775261644152377918459562350597237846654281373346466167090279980034472726032738398419319127192218417148758344544075434591213659447816344474136525616324460827493987942842863770076319697662982633615127545336348917488811062081768634341717752552370942264100443672467558800734036096594773945478091414018975716983634664548015565400451740341438543532659202756837422784367870552274946160840404047654639510721862654588273887939744934160864110755867691010001069351089510559682181948220183182919987389328027784380815078055087217317573696992749105371682188947387204766006641172313394434606247759000935563771644855078763905637055260797312461952186496632960431878155334883801652023683500212305309369074694734181247587308984690098520904546518077153567227738243165678834543470615577493524702329097342324666014215800241866276155389236535141116073145341559768805771559493386551837855062333748040281226002751078752737305776072373123034296519445476852407746500701945065683187823135698765237382114134123650899558587208719767513398873511134037870019412971219211694636270760633305335947644747941155445921513280192571087199852886075975900332455237659836882784687696972175637675848415721771585702453004210818615894089369043718222838455749534304071969167116754743950296044282013569005913189122249442561395843716764070288013565205387404456449771609349590241168373079364082984067536870130317227156380837700144228627838581541643080496268961424910845087301015814159582648913872413807901686731420892183686375337281504786842515776550669498308727840774787391639748537526654176841064424041532626006577776247637822391268704930722565859863858108138031204967603590669825545885937246744415601322393313327831570027766752787776874672382457823809126183823438733704630379095148507069019832457030196643663628895808491378700103561515952768091471602121631270575271891892206779777893371307453601034517585921650771635743948964093068828011479945012097849428591821940986100039233014729513599017704596067896704841770847678377181831165960407390163957820858653241872988444333608943140634394783122967422267783905390568578613252325639120272242426464163689181940325068201622269560510142984991047174214491688707346174872267702250710440369803265660344095862776462734834696332507391828648850838698232883910652433407239415370049189131751683583081858600801550641873687652553893072290231769167608771079656071298379138059506993320557051286667402183909928920190166339920579301405783912184041233931964873428537465342697445040089160881687300898107633514166684281722779982813686817847121864429202949622535552417193396730360988984207684187776469432121752778114215854468851123854361178634493041807705625685909432962065676821792464692741225593828306237789264116048623555514706758587578352790968930031610439455812758072956637022213226161936227378737851244060887639849687987484202841542507498450736708830923097133603454722128490976304152404167753588115941783160917313731748952012952431459762164471125292455256121430703240519581526881051641921085552806824269954417830516756406731543035616016514176821678740007982236998210567945704423120645941286758669981382670377884299720025242186499830543921549874304677271886535798498481149274441139472719753943305688736520517715012553775176730533602296800766120033375181524375204085391133093537253967459529187422733055234447158905303251595430056017904056176168970622226131870501638239696011254606835897164506862445275014572991525442743066312955913724643476417032859520173470869112666526046524521171853752570144159299004842289943235486704675519838937263607112969924880889286576240679729766831130261173912597062863388555158385870011791946566641046814899518331882305302741574783679569128536546950293812680964735771719626875198323055455779574586123538646689884455441759388750782147847478958670762687244565318776164638538200000004670457415303358181325689093467703388440573936455891091400486798912929182710097770780039907648879697519362180850869540153901621487074569738337443905642799478748460468806818112464177964016135486911542951560628339983220931947861074594099018099067802821015981685646869215082099483662439487078930490035278706626602054588813171662382547051197686414689992186438086331801485110060786424025971002860218245518407947118363015793705338864205217792699862349812206607494157764756599396749419206493204789908579200565737221080878685770452434474602602759299613751888430205434382846690844260398672368985277617254879561926198459232260382739061189133801294902072707449879552683977419884838494169755165364255435209636139724366468515683117377986956405052388043929331912148223088394253086709301063040747774555816445268932958223945663201229547679226020092882231547629092018309414655147743273280308258934874515056266937186944009644421961609371545244621917210498747700484336239307913250635751556044359047360646128990001183817384013951622974643030627121799441620393993186111759602240551094932856491987375822800164603952883515156263830515231602644359209497093924351679821668620989327182451146249766315130102840645469495105847717973082743673264653425521047367481349927710283700936495578160442865617285226583118365645471665472515593803572611373846536531722470452600773744588070894511532034839874967067949594271927557180275867797895207209378753434320376020994434505899258977326258595937811876662129994439659137666281465559527823720598438382738961328028729530559242761242613362016900634370723756878860462970548303085631646027595291903859696595276281878156011730429266205152815609240163324235175647360966850983290990395097028021857537762686019052487597509641680887987996540135240023243925452175928584718181748488088918595962110982432447666596834467294387970200728986455845296729393171903955233861097078204866833193383011494460503873219990545564171364438354586060533411878236300596243598789626346880236493868389781136099887204157868945246440967687363701454182929094537413332401627219969985789810907976962854530031767696234727057905535873584890645458188664390367443393874005104428185997708483255327143278116567799314157080359468169670159317467244108512146300772638861288914696094775890117013885869155898762986251867250138755942163824410964984064027162566849853641537278569684927146958486496202962879500299992628229854034692503056814470910300765462809612942931524146676399392189951086294033744582539193388859973823253452913860229816480043396395366577226319545719210770672916856170108376785891396588297007412413314312471475325636871531458773997408157813279699087409629051904771839061351927948588797900094549407440032281581011055984095622278252080791780479299149582390148391312956445523712525408338340514101390815249033618255492876648248568091322186852145583022346138805481042371647425325497284744727949142060522380309981207483071268932992040233707957311591108172910922133488298280899105414143593220131466821117925954990421857322401535068108813036837053277397895375371331271452583078754463503717204160805216534258004379101580302550655914424883249195265600444859023059545797139102177802583982193474052781253515888139110185560675463325884907745191231006420066943581973944854938138710546248227485458139465703847985927025082326065596613220974162334424474992665204711547826719358420842581858776102992085446762808592641124403226191992190747696202102166659539409023308213059755831689056870577886153635685406495272977070471779634193878634441837358822606807372297912217113297942085797576844334782911691374321055712515549328248608989726003817461245883793442601727565756140021545864037635356098507149932389267519223925769044706519961135278405928628110496569006510909921510948955702158601230564312856605020715738177210436952675930262465951120574856438454640161041577107778656292301905895805247919623853767798712292969736520097279160522803801760825116025329615493659567003242063065434562349892181630946563113275238616955102050230387540159484437309913783446740696211239666480477332397070053757901629230926748449207586949539745702436979992480610078269323483458982127913212019511783974805848143736751572483210317070530444064824656391795709231672698425250528883115269408424722597419519304490823641593117869677961306983644285387940404568564733464814728054183118023668563263787668409533086691613663017817107200239004740836276332172520114494814690801579843265933210348905914843927769779307888453006938204720832846550837329351389099939065813264285779613220911094826064510548587630180095975589590041624817489309185845337834777891068255034108772853829024147425143988199535077633928074608630142168674794253406837284581704860727947761620444740707241020381245306942370075309294121971643250151782540580108088165997020042707668875427860555129256613466648735045315651575381777793957297712607451329492341624087001723798487258921171032898007441012066848004760117412900610263505961781467144947971754121122780818717036461000790166124478941094679371152812906279692195077633803947531163668456804713239168254824104025057888124952073931129334132392918725161107702388836479919771695383134267987085787942951264459710798653630195219745694480775306188205874538109419902368600549556350463251620876228166583466001388186187770911742795891832331169612459732622583396730826457853094665911736010342973694477450201254447011936552855629714052787260453904647772642423932591387359492222356192421355849429596388970956175596660911876323956664201773714238882499304939244618886523809288834164325693083565611621546864321236206900948585687577273543513393350391627597402606524615650525389684756068567383787893703752148627594335702083892554736574292963160114664540050356225471949508129180601355074611060074603529833677767533863514940406022707623055719024580465936236828025440516721603955281013420659089302507437471060143850521442555258752426041603824082832220361880393029618991859266804155540850856313029577772600451138173656420439219102003662676552010198097259786466439909926493701315719111842190700699636881457739645213837579999208579831293298510989495931245616485650925218081158354796219124407583683724163060877181022944263261523861316681815314094962245295539992861881748629184326494991237697567584624019450980881191591570268067697658935574722999304349178157006487351706685361348721698886589706267401100379116282346054976119510471762741760292673973878740972049878647944066904615080289774527362136443163329144680639171125217130960077904282320037085856043694838830099119501415604547714965790781296791400388897891132992519842285241231934755955840333518449512353170490815615193012172997784664158133956369882777134512641600726803170938168693876371310558138571762085108742734135966867207802497894094369751234325510769927117884516015644559074156578702712201990713761577959174794492813143501771856826872196750557346122138243247661141290195436989745192690385295642739675213836615344227043979585370344963266658714123240557018570600463506109774310814646960416660220310389484771294804590125214498825724057208910748090329332259131505947979330338823102406306780409454531142202211587931158098292539594406712087974000448932221161705707816648745067090872524440373216536879804644203447355254510863584904139146252156403964078341270973138508978033586454723337123677010174238712306431169977368413511596522367713710400056276603184083307689539711953629542787073960265338217614465144207160296684065465282630444991017165372629148033068466132750618709985758538316021046304364357341185838092969112209820196620847521155262237703895482128777995631618501836673807304956807234866761050175601645989810898665630706528779895852182572963096178418289343367083973262912435159089503800186851771518047462005105569705606348744410042845300006614835702266481536848949873518941100355702307197492120276787621015815171121483924203944973096844676487146159848737191136210973114542152330443203238890699935597133837964431095947772296542314188142091187016595097043179639198485156862797880122742784599287544171748291995567150079907388758782969436601621758404770332649045385359230781845177216517136298568033884307476035658822937451413921627878744796566178489335950989734884315227862932720458364706232667522122469866385891346892632394958386108548411153856639311942585562443711207532837863425308585324499074563604127291358854110856774100825713763247600481814062092780837417425475369348572312465309895908327792286609580431282138901576990785231302204159182669149883205962822639566063130553785218560239523003908568186130424343983006737950822810559574074677435880956510354697766831668531923219132867150897358828107951640042123971630151332233544627192329633513254659204015172927393849956692622292284298076168236586924060822964793345977283359912847478130077961884044082765559030275746355017633767662712722632923911978757583389801100836653491613435613044325741070197934758103819793330157860609663932154032946971334764084702025979196758269397140954734147096664000136876191680455404934351219054715259291085131620812397358931862652200386147634561569106697467947965426624587650692195268994085890480127298896476733835571281266160032127988102545912222258155948212985362118480408074446326047584128335443550355519159323316529780400178565964488891235289780270999273353792422550280928087080960470175639310928133416411810940621348576209871656628925761253771651195779227927259345968164179510616407211845580115733109954837201722124656423317337501687936659255676795490714819177350820206335673175892257691619946533222302343188362133076361278846087815756244864477632844211562040515973140772562437933865751810406919984424569351738560876174343977452239187075397447071171575645103447110051161128144360943760442621664864908199807731841511571201284833894771180300921537547949302364213612528071454101994278688495486345790304193121613180900429975922784358173645455497605079261768043811964872402595600598820827483810997596443771981176243351033311024127368894459062422645077139709929283774825743603717682151474722301954467341193937527743181238935776448197627772521862398440241852725475528827884847814709030636770269764012557176073997047102443875231658905853081470649437530117501534593867600756074270926141890852472192643289747983326242257456847993626008802965627721121398806358078328915800859911668388490495317977640724870906748540365685417273672890510841265190995134338491065169140330416478573516943251832626647085382519036482402811290362148370770227697677353388693160744389282895877575526209441157901323983737446186186602146527585186312072231691135209327745420798431639012651923558486811796808703920128962471328056541761235971758976514855469556635676065287489166377389562144348911749796866499295421058490712782878324871523161790790290327791685253300165245904176052054680932175462500013142238481734460202618305799859957106984773113567420126875963987989552615377369022670881231851011613613899104571891999474625850437271693447664889033399949061713527102872872652343510019037159859275086950662797121867975592420184721074855733762483956349109762846560333155539954294416312509580902539736429703347290492677635694640535649844487108777652358151860728983352177869432190445245897216747960246367658794019834147388287888136099018115627973532815558810024393828206387591680994200415042770486121831068565493246684412977220605714813266732447398854109878199693166888236096184160172576884762933125574785876720413418277741940066023371598950952847462083688330659351215527865976504777147584424116810317620400888150943337600182919378025640753517504229510179500651889777856712090112745092315962648193572958923747826788802888287512846490277018910972358164973967892751175710903656149569319157951439852250270804645386275699115208477727694078956970433406725175408853431114429060130856173700174427645837109805595045412531369836300174751704251990550305448941357918857799189962650568724608533768109230685102434200090997165759782075226856343319555393277826685673842820412171833054852337376902127934068045600131907659956447450668675051108014581657039669855224571118796088997674909344521626970501107328004394498139552646171604466613494430758633132986460598906789218776063122271390176594185883039196679894485408885700863688820911596014588390914216410434056422499071030457296520761628522463197497353110167478873463640189375219976467828717817125476400486813332497169201251397080536072207994778765895123699763436964504073324816380421327236454651803500938194620118878078270331034109600198255532644505082483641099733294382561006304554406755298943424458359275819430397541993354186145454498902301358202598361342646857831608595418317338201371052622921567182349802710752572021813323778334733804989379943411823436665977777233087999474802542504646185719546934879889033862463133530271496610941302650109418106392333555685735744482357293935980493320528428539824316698693496248103485873900831261782346069274205869049818230409818645494543193475730515309224417581271565177952850288407179940618824594276086599982387449836354291192954828101321470413125413231388546170738741390243472020647758683010076228745415127674524536296306003809410275983908357321242835459550396222397173087386249860580148835543860136696354604493602637397406645901586299629076578386748938625239985284646065794629575681424713273908037468052504193001120598109591048950882707136739005826402823730662979822660162671843205370871058999025076142430681314205795230439367076930811165704223575907029629915547721836063155920999836347085562452914560068196543832410355378970100073347014155575355158262395759085810328461789490398066285076143963570636304329748040946474101997173639486667793030078251643506596255792664471540470347915108517196018249299830957573084090905598221632373974501737646235488570989808065343863109263634012531474873766149816546741118277328991045281065917394628210006490325135506039473766794224964377039546953943016468156529531404436504828224835042873183651411822954356164299044200388548395260896279914254778396564414638284035751464959210931198251642160492681669278365672745072356937805197560012935598798029727447693848802396758407897598881837052142627771204117501260333761773763309900319759741833123811780448756320141298620961196254404646464512612166417611714234665229385731725108697490043321984928113848792731425525341840169897716602266710522907931919342852962766016160912236064499877321181259459306133611211630905616710524253016512830903149471648489000107990082898067830517395535577195227692524069472782852011713100162193135123923569779307108909936281434418549178378914464278550409659074179881770334766066333210300900460964116892558711548431250641101863162835778813318695002262172183288561304112113085499738839189461473856010133898852559117920843808220157517887357445169342751551399879433160787229845139778038239553887880368969924892719892502310375078933815368360038696058582926142796245451664985594861376029531053612703697884890240769247299070335013698432176109746044652768932707610848468709119114644295499190650532507322620879137089599575537993753638495822217048230615734354130560690314671619756118372296547632016480505100672315169773084082468528713116351156306098881918911851837151098389730004163683007495168082755271257797469116428556436406035098704000061154677257929838578654229950744079341809458702355017161947229346369094345054189084728073195920037474450752095395139910548538341729780148326530459676517799610817610693855887502783477089335885632974337512588705351452992430787548210807402453553688809561559191716027914111970994742866593206030116018828390372536307955994250307022452065855005285565605872697258501034197913375980506157591264043702949565442489079184914448387523475687239664235637624655006706970201444135809426208796406953235374358362707920046715680235851360849756393408802139588764573106928938712701982950025115976229825165884605271530618558817906530770762567449503928453804985885899599178859515781046632736361912347876035637027836334991980406056407191410414351821639134400838960671704757990797961467277170186077977977032875896123060677292959622347974460124245324942656823259804729098816369826122980317972979126417967376610518737333925085254994764561287881641228601149870976374026172706314713729319214256353967317548701944407438552673709242183052565059163626631028314451884384155354710696502893176016818785408319997684107009133146154876618709722536662739529252218292282102439565833745024087003895851007220812767770833428098868601358130312335425609990216154571910971610708805048780931374144371672924048722410651679240792073836782804358749378399799640555851503545393359411430448903862240429066101673314425248195485437716084187647549127606431083490445106070426641384774184893653115397525034999864543178112784758691338571111184477950298983210777197317027435638823458777122588198120832919600899308413529574762177168474121655776443305513994252124927115651634996076670900077360520833986207846990746692774400230077070576923462595173150751335772550119605830980670274151164847641263312223149015713871314240104147035437208736993157946248404598110879752244372647009979241166147168384079451560429119768293778892323635164258594047111926890668010463684496943321390225419321493303743986586159802690477703627331447836353848808080248598833913429350101864369557603011149928408603860021494298444061319026017224144761466321302558053353668727725909968311428411776998621537750789821369890384213132906108194050712110698263285674295863308816840243356679855022269791636451575376929203844606693868433686597054795187922331322759501512412132622826239715774915971925275345317656407682726787351233285336448811614944268195179594024698063649804072760014714625830320473726624588603858406854801897590570965684480366749018750901497816762481962557322780191954649334139625989916828719564752454802707690878425599706947579031066360673476453353069233065308032546667841531101067451159729060349105801742322574190214104260359331126403087873109894267418324849584633601442213801964747189209259615868772508858442230992316101370317354344724451285634368303883298121145992026473382825435905525604128658872274547802745656819759830189792371305945104437785450774855113508057753308229891306983019743948826962623010803053071359835322590815549141301494345097126633900134053124141467200270860659383740220215761809203178832067070081073088771410341793013638575296283463422754485149921945662019646442052994198684792190883532453060211440483587996137839951147954540538912947202865523476541008143860029367084645803058386675959837704490576837086185134971373940900472083056131153610264151906718249252575620834387858732804707234319787094025746166635314711961946653035280440776866195069029102703465603735963964121068038251383551355101876908542510730089256555877999261047342552215048837905395705203432810293265436975707434349848953226346490697727604962444399669217050625011837605120345495953562590475521091067476630400665080562698696985939871601423480604397604288120866853613854209594165385416612928261009819209939429403141224277682657345627708888378005360997344904189022804376913995508647903844971005848850948432036072824015753711345400210069801364376071458984006363572868461264556824089326188638956406949492841313979694702832062828654895812412004382963652087544921281543578287552788288521596762890339495455141279616598538989410340825465569346272220401620930090011628419060902974259322279612267883744982320374949023559544172404951923752720583703260257847439230709705159634278986055596833752845655990809048522360985574175774632065292972406074818560055892333823921657278443006621362897079479911145859779921341715831591016370509331030762922219819573946219191243692900174061706429450710311272811528670751111363827844141769034700042687828087138303983134504797967716346047283099945014427083270300966093393319110169287137962324904830285226670805770419817736108103065370553021720865085201893897819459505912735772773951986360771573011264168122457989252671260608976193718489873035007113591582243885983750418183958621433971379610013861141125106168084435929835993672988869755490774973718906124299980913617936104880654171418958570188706075910811680188097225251790904595553375637587780370264291622997494690864994815575746822846117208460968062539376966898688493378410554941137307145164335749580728871470711320503963048867701130810419280320980213308843101315703925038793828507646424590387411243402959429522531158527889227567683650167332605018738594856304170942827959176008086715239617868806873002172995236412470041653699089624051530853554277346962304449603155008250238210024022256175548101653005940536010782213841524767387516004123340713336127504646867534337541843346267613909053475400915396276059534765458367814852549646191843500565432392589393855796542691667096494511532478330649631343522398050574851839266343958389920880375615874948786176422146811910543743484719754538787553052624636604019231507753157423995729809360667111590065303485530749963836785223180037574506409157592829129450061055207241990713830338190075321380009792118346209227361960931241766676720497285029544744570227480813520133674181816801234605090532786138433798986378496838414767403954457475557160846634000070656053444383739118256601817872828557397348433762825941532715394186688304122601238824074716980177760545136425968990148114734121602112619322799321220591492157321275786799436280259394611586903157795075284837144823134713006444421531950169266679923317239109444680108707370799428305693625567105925489366492540523567943829463639353833377232194070012307597670390003057370678326031034869600021816957076661201922588781100336170257843667573274395595411734822664200893502587126166044198130815753879653492529268521299271678216249975601635708214310401648058637411410346643113948268625838107923704904062490982601924540440578194459884425175447373541390236082607164255623789174673013231104475964175524521267452549814519201290966090306813196018601140962482615446019469920175588065578925525409008589794882583646886230892082451308917628354545687763701977769744616002686491066957320262565225828393249288543319227045414008119232210720533869544774845233901594306214040582901093980499020473882208516905424411001432351582230505931616151461872754938547280913119933017564608016205007105895739690659721538798834718535638981779692464398857333094215470010951830998030150944919321256536455291856244978398742736547347651813787948865314562979619153725055415429125543003050088837863525234813286189201960380331057003191512452132816405434912844190629469660764570378890547280793598812587367301842342474499867339804302369469239799812190775611472703073994228809902910958560494441731457987189212641944284480249276704377556945354127154114751414964985526635815399477293903180703505401797552358212108442773510584483429139074935934718009224652286971175574025204783179855643684018230037606443627803698438412066882013008121155429301500712823589313037375217026143215372566988960418537795278150616832569552743244575591715934442849486776696835381441092157964025753596610120106657192440259736764283842962937179906653519840959674489623922402415840990834497529403703748025329287389088161163012777590777526981476385669124310030726421966126587053449027519303048381624241090636076556415087837320339349992729660112622865218032519090232978270383226761557961049096863606604517323383129602024536423694739550998469400120909208877034303890912904623836869884176697675139431476500939920076995106074930814313868351350513756975462377274145967679195633040221503404199629173660617295058566274914833920189604704431274627714587211886497728331623333018727422200861694162615395060907575658383533203438609801431429647318026334352729785282368356158049212580336786717093685556484307126982113587638577473297882780996384872141378999539077361126531597260571690566498391281077622983379825884449581064406850449979408650658826392328399761087821650453362425642006837568962363612700914003298161020566541049419759286655360048677810906533969488247099080419919622737531993403976374060918641236901518471348809666504252437163200667684401863495192874467992090604555458914796917140762111845262914110726897742734948747441987775430517367742856595583493354115982559621711826336262936542792071197479990547908281158673900768844411831367074781608995892371767664348350378441480310666900860699889732148046156134714166668750721721887296097828232893442755881240355022041719972529664807113015261307626528779472001652577235521567026751091883203188636595595127998774553267821006986210078941071865368430674513649534025914952060216675627153023308510549071227202401716570285843525407238220523696704419838689639968715550303168896584434260403616622002494440505606738926694122677454562283582714373921611180860707864063240852739161074548263958243384144865769555361889596343006355286815027796530867947400996638325105687967635249189053285203997662971470212559947508605797874840530916351689327219374983682972290259860856969391776277606449490519727076953810389893329797910502282078254042192598915416776659388213847720234533485078400872438923562214658083861530947342060205836730096772702833900329770259103181378115899087514649201398466568545180090194301240782194168805113110459865966026864677832640239877301595552536643594805720577524026067127749219205137478569709236181311792732831294215342097509697503379897603944371037835850075629682284560163237707609115243160047178660837249499151327668470179041907730513153062777690374640594248103586082971359419093608512908851838989972621816259799859758519173676758772528837284694839426381642951779500824766941483436513543516763105654182912246128077540489587144043576403834888482441159288721346503587629176026390322450703345958160391514360680123692350200160222237019989856573541236057439597487558908376946635022612847808888839301908611127945583286603036560738442554739557889659312919453045719092967717845937722301126017174443695999210255399887089665814627751029850459461026593568549928096018308834097820579189270115023261174212218497062997601397657372315285043940452048029776597204677720669073919564979957330632896862948861966288754586000268702507740053566027165604244268920552606407850304948173299951174023439582310854594223509657644742244921391068782509360929073677661695146987352929451549060886738278538863788847842757853337222114473988983074436646716783796008069298267009285251061929923012831217761123790160541371528617922939090709683603247700640485679886023146398584633648192082596969999916110876135425963846476855424521308014223155776612113967187178142865851317049697558153622071685636600957734079406542160451022091615662743204840791605591291017501052940683174782672349454949910804246710237061032796355907678900322456257020045812458936999995563070208238631963346912162691004862957397229731240045099914924630381666254307672376297081567393904376059013826825478808674298296095896531706096772386089756651485086480536403621388091213920787752206077669603650368780430829609182254920064265992424554875022030854139198898722943770798520563240982450250868080368149078439884168337636438922285522309813851621143266838469340793363730029445374229851125578135774911293112727677615831599768902620788759454396978715089936436652492673256627376070470625443808777336967684120773514943003395578576816753117263583634783190810632549567734038896332656382839946684848487371140387743417129101780266423616924183936770176239285339555042769809896794225071302186820468039016747260942231997375636619491966965120476586319088476533775168527112425270569427621598428102739748262368955195651352368478149886547502451333206374770143266720675149997722460136136833103728142701393684683119113462161948295075596323176547529671110131269457551986219058318637303423445944316144846374160822087953010252595472670850848912587847159061046900391520448758247193150197904294784924042751256096263468437634088912400942440332102128847066545901536030840477294149948377906728388820270545686917909993692532007008488806796556014865818645659589891928477314052277394776218808159140781012048337876240413453799777083813892798095167375745104502680144992225423541496386277640132856497970956035390920453911449458173920430831714233913183383782654350298407821799246508918538984734687693169759100713278083684508916772444582971907671778024829561611130382191770698620503030282920942616036773155801718415101974984801881240839402467183648474475728666287748558989814670348714237382968304767523813942518512520223084036850629014834776940650441886144012102868053210948117025394448458447521361102435286588830648870325732153762332746817479730841150909341498539596179835027856534951959958088460847637772702729515628487958939543434446075527221149024108984356590279565696706290690594684966737323150692365979305560304862583346572826736461369333047896885111282491681460847427692856009294991788611253601431359046904111439535895306606352657596495250833081118554149505464871579453160471319246458781103032140205173786610177210699686908091847503872176923521298785460450910335385927290088754426448936080910317160984818335669421662946150534349375107653036464169260799042417321448934779861320157798116436485520737807840843062889592604047375787649328086444359862387834509549213667293458513308448386755467251119243454226757974201953297861129138059895772896660355963692935804830195988105797952715997251652565543468817451501723645646240078548836497747700425142500374879076275732099320709842027084547344367722001694912042219791116348124187248886541201660122332740935711723570641330876624283533899000705762563003790511828056911480340478396844413168114694464831829458514355906257001882362560903355168436052145564178838311336523572674424978004969883935037640845229009116218026135935903441059970039859852206473833162595507828017942922827326807628783827632392377398289303183837830191495479140634395129388644352299996140549555449698155952420168876943361294446602222547882448007974718758114729071007098798635022554602889488321203401415679777962652953137933707603630811609240329598154800089952975211585358755201960812115845572675296015518207336055487258177887041808662109641828232240483157575367686196242194317351144187669503746808516755216911134845197424180687533963449282924676641642472580656242015706161043722137630701399724615924545935510479279400402128597274172153591213387389993037334026657410846940735139444474427814478538461979100736709721724515085108254907834652255969009916610654921779538253116985275593919328775250053258363640660874685683373951860473557592683758855514134783280772090654867009380478156770485590519735825997882012544368958356976015621136925486493997572525189482674933390136576208580721265599331359649482502458968426860339143079049306706888013026170292607021411488972330768412876739545027331124134361118795554671623374937566612172823193525956058283736336404486486164501967567245609414846198203417208432563925784219946624163248609296105928692965641261190481855375419155897065488257599849650840884731315429759479753940320906086833356630755932017946294683783044380670306966241285499607022101561743422030904604847897503372919850897640749701973319114457769595175835067708025213202727378930402413556867606297308587195224078598316475358638995982109754101912368717359272961936796609700980515740314992962028554962808909217058972814319812610900195318753496789968449528606231427044212396607800021762003654217668852662633732368894888265785268644304920657319109802463216450145820726280141036215606420857585593802935662632955266945502159779444622643166061241457752151231837828739616380030354548488679519325285818851306831573692148319835976958232527911415728632751356097225216507293819661403157387941550696146100419874677726150526565889424590525162314158024682904419670786925346850845067236662282085746591578394835354913594040179039250582784021866818259571839507270771148961672587653769676918584832950685090730187265150403774393388940592683190450461720792569148840493272969149165925241874968394515930086798019092418545566414274409356733054748156645754742544091886220013013914932217093850396294564340328998264176135151162845528014478754577327233514356613533530609506819714520955601887108663451409443895650149953536364912228368324435828912437773127182926524790837036592946321040068755423452741168593622621548150777463665953860044630220192512561451196630970415801920940008521593981311949041593370673691620740521160540643150989549689530382137269827535426539328012609611347280754237388030527968554055953539726603241440762680592067753982260896877405713686044225173436014633641136920931323834558399997565160148095774165427022151375115879749314185676112155731768254943141676546047445174206131992252885604345261812207846486784788903263548886483832188024870960451012679710560181956841290804735320725244812308567053339870365440696943281983234005987640281262378881489283635534305890342279677104760503612130308526508685916672703572572702615756439088195303228885156798823590600806407516055703522563542925736021348760648432015043669915999791348363317833894871517825261335627011152690257963160505663064408122778945853517424448824658209592353067663164444419574012794326237131907175707677406484840064142545247782840445265025971380615529774376899514606837503242715607634684716460720081725026196299995201909503583887068422889951328146570562670030128830298552732846784099041199189315780771187589384738445691662649982350325366237119917220886279487110115390073176702180032631480533646887441924795123682124641997682462325909041588849150275550863428693927241097696809151298180488802659056827895777946578695502005574645038312805512290193311029201516328019251268734023551706968043267419563536146019622178217894120988293566215881972560525693080516340716790430053748504746620817260841476813441010137200188122804721489611611737300368061384374959178635238939081169000708394985427276067200371407139107587392723140702311528435312094467918458950730741797412814540046064964882076876611691852048070034301389881136570877063245509569350620787420173785233457516468299669443975022003098266717324156095539962338213975583113676091689737035288870916644195824316838011246511744977769383389099040469318316163528001308036382193047216942630063450671015965792230324094371194965362399905143187067177568956764850156985733928371031359842114629241484877102815686451613097782140085552546112282441793088096170915230094866495309594048168537347077046816738431184443020277839998835593539491073116278469300353365847564327431019792329345933429683637544603474017226096849301605307569077743030836390973016628819377087431226253293967416659912496596409543425963950883408696671266051175028076758678702046657769412884727964456853877169778014329513857170558526872630271055348927862046572411413446201295863518571940006597133047792084897684027302943618770048182288647715138103265153393959932941604886325656332458085000602162080699465562924957078281195129922852834146497993028449342078806218356649211493782417055598320979612710423659931754801741832488980050283724418992756955294322879878571033415780370415980731775106376609257298016359202916616687433909661153677734027117055658106192264621273081973556375188671708450147016831953130073631653910993402670194156452364601678015523957167877470988494510907857624064702706115344724520428027794305889523056451118507680428218201983586402387708840644522457250725645138240983308796113639920697086161040644323889867927865178056892313377378859081799420738341766195301882898549561995929551170535808348582410749382617931787575315474805789674614858003741937722747647718253751651633337164427560331853366580397098985618646779469637087834358278013883917160667395924447764778728761398871340120121179984138220521837168003516973641694994775514569375414515457720623321338794866417828582457146260603209219546527351471918894046291382422173366020091978496067458188141509682973988283065101315057276374165971963557969549734733585332974546428674918033174718572757114018268454419311158200752644676588982548210901116452313382190233117033726995351025099622200182841178031344619307928781389933164571575568028349557107773894349648921642105918905916704719374915988944505882911100393610188473288073956290395189040857400387752089356110691982597780178302398127470409952695838744119575316418963192973234150557376869184831537330058015818144385201607310592526014298588787109948259501338201034682420720083213043976985365882213299382510119580114783387066661916749377720811277077058922184533050370205767883854343038790761072723759190341729730426086742980242970563112898009372090427754370633859039586445059303288455747080157683938052790393196877330900589482922163554998024770069955613752086836778109132535384129599704906101722139574932569045838302930211877592735682185067821446954336205213054888177057083291315212104698902334801571958492787193558886922877581255567808058396998583485021956054673298132907206384663974841630793177813978964715042291233515617130810627547061759148682381893216928699351127802370618197446327819916338099769612750333776135428227423567542621919624819662246264703845773771665279403310181781604154468965069176868413097857658718613680930769640270074687405227629594473082939039391074110369194243205183791558718672339706297357003318277380026892871175274573619518925844199758705227639351439697080744012509371346622629869809825086668186181215744983371048467073611496570642076958926581724872048874627446771457399893964378939947700291456205539709042732003492495476209752949902713837048828981376867742715284771826248589960506621545922392022926145631857608029645904772692829525881860596785297685192222181847270848455405628913442169671056814711770857286282868008510313659149805495027325625454776814370047548556066718466481952436744123973995117203152414360791702203581985814672876731191509417494885531016455285375592412833465582252902191282638257905849969421078231344084878646752647283047823586985795034053713706317650923559565997415451177267195498241384160182778697371505013149617610327197010536337951112208742086835266250416494906503325301652949166255175069364058195956740803402882291860982356250734698576037065393301135177971559548484346701015767638590868523170079582958683525449744172972397485445010176448045479310682804176080724024457530599618600776425791619705416039280003319971089884497304286720573460104955038018507610309217320721447219822010382255110651092387573482579813988031527713035723346387946077161060508519983640154769471934993143943851301404713108872950459540158875838014568259267706106334109509834200555107369468263067781167898859666824372267082811886298048774748731093818847850743391266406536540851433309126706866229110618316066866252325347001537432702764034353694880472921715729566566656145580853069552631252768958276223653689310590731721868378327339723192607030617782429000967006742610768007137377399779323022670734048228640009341256223165768803965904139778288631116950436745573108492557622612671083998636028978942760281556376981449707731012133222536405841118302798534978720860757730924807259799977566814399120274454749984508226624671908710027610533486067338168896835900948963374315720570205481224523921322404019577318329062808817790040111453859982790896664535648272317106335883124710424556993946761230694082657564748417142136531179312857815701342299307877807829565700839066277205635953081892349499708666146325947873063852103488653069414496266434076522753331936435682903186218212654145816693688800637795743724734160717388277846424710113425846465809973360529502662588282430560672752979506875333287068329979745827203886825865562964347262707001493046137813537278278073387942330606432412546911268530450321700972725930987148998965633841136203903312426597552873367109598275871819567886968525780332664888366149110063736899810681894258852274778641774806578891286097618443490496893844351884492894790612389584688462922919157163065052674791844461094519379184718939896932486210628675116435032702902701016026791428894018924445676276197824587979356704000619122029122704185560484250296333431399164009884946066388605339031259658793099835370087711243272649086822518988349344887303482403280923900558840258118001464362600299542919441278108368390365523506455794411951534809742539085872650079729711583732873600204397657244619735447619647868433941765447959091073272053170649710725141911844874723612835404069410887558407359845803861109993534618145508696712537048316451279765021071182726866000134339064555819708027975816620513794600863362557049830867996987233263956596204522826558919635765149351011754952918084110292345640300690275971852868341306951771810986755488831706251096806933078701670159482936285946041640331307753831916457258431589317978176538986591120398020634799532633766932317735895432548856072163747729924660368293241619816772837849676921900353533981984469556243664844434233856836613755922354900386792362744809483883030086866853772305543778523444080266505944518526397448776220105701387540031361997272591414817402873963305468149019516287411758382037956421848464697432777182033831027091990049903709656652663921257371920076747432893815484044127674356562689396886582097086824680993398415855831188560228697534565153109658629448041828382609414011396601091437672476965840316438876627670288432929144073374796475131861433834023190891509230182583997367003915353605670749112880003446511786801120967076566674744315921094435623240057562575578761816924675879114983980818193855845493392902669638880579777988460847414826741859579263291257889589481952898050523091213786461016515489548341507969827468676834935380417257681678927641765745135048773872945963670119355731440860709808509362802028115364648732584624354283241990880784906167116443513038002707604324145907273116250849283385498320777700729456754978886700676217016054678301358272435684501374299313336992094307307691062096190743024037404811275776311205816442059623860307388269510047353451737784918160840313243144552195866830996414994846191380734201620959327117664988306507956307394342055727027943428031569390468200537594558823777416313517725275865626337018970556170365548448910140443513198592191467163237823287451793049338221604575032277660547632562988308766345592355250060728138425862685847386762719213791494500987131922810251099366530968865185811681789640994016330237012777994016397376739481551704123334648780912549824930599291262972671870000726582317972721521921445456869045301565873053603583818125053524184060900729897211376676311821974828175845672283694200267504338791929842992987705026836528172107929090798465008463078222491231920495178276174050614823386381698943472275423635000378915101009890949648854892378080690114409260028948791158388794170292255640353554081028702289511169770229220949812142291665792066120583925647284338850381850845724903830635340775855350830318705087481863850335510059742699618694981651986088776850981090932075498921307340343063618583166460777031376968074347330943680196301457595116493527213414763291400094275896542935952696921683038607286599353244520039116847970116304117794950028479683303869289293950820146722632928320711362266995390266232175113022719273460305152766826446561049847822007595259690591295462031266925860833180518138506299362213753178017460160798937918980382452385027132525243341858342393449846299503235579086767639596456571601762848424519978537551592878869976782924551394455363478626595813674069799646933523323131558271171833951973716510446316068054027971763526890386021352051366247449934065132673393406995242515966068932508626073890971105973269032124253977808838330288433864665665785513335141935618979727181080896800946660801786908908438131558887641270885027401580562884374416326573949355248235836342666460242262238918580579944431944061313807265752591612102088446461419489887515218440639920390189698221188765405935943899174194318794642232548688103944303116361944467092945260928678794371871293917478163123132508410885490804856521164681586668626963779399980057857242793528334992533623160123958764133776336572211684259448721873169596296905019380341577129940845970714295614531361991431768764338244154107834797122371019961848058486886273592688276642702793183162418561459797583889245198698990017997655136916002083884815076087362501886902306973044706550367229144338162386214078544753178439936976501492124978496204886464198395564527526169904875137733194145998340102656386172106643623099445300457490346426629191241476985291847513747638913445933401805193408704481821010134256070840689238766713176916010360902014151308496741764196168487781887183738643126618021709989858349806410513466886327178137459357289728993119311341801865408937847063729300571418146883357124806085389194956945298442989942668174096070947444152416936164101001680664248843516676901633089982335465516660935599740745525561655160917221996958620245696421421589930424923212862452455044258156156021950531706315333983481036840576165780631984403295053236138786605620796526324933819502223505202294961118331171002646817002620115406307273901365715616559782879558958615294291933992978455762996894812140598220877444067577131545283686395912826558751077234425223977688547042241464180882868367606834631838868736864291410407451518394648107963501071228677601508871772800117796298091774317550327832504999822878035878028482190832405416725876211482411123327459982004544913095905367133382741896933822061396037869624534588730881519254809276385224584368506678607498551409818022553156820498300888142479899716139374335064059215454711345423137760070380473142126133655084814035953213981540944641610724282789281745727608364666835143470866170506584372244051881776391242677300070739923035665045871966218329114224546257788961579556941949912318393810949885601580871436987119877612713449040917239357035991484337291733501194950513608581136212794512948598861834083223553065667071731485998374474249275053386964293504372707012306492011624994188755276581923085880636572662554641107738221012626248422423165305215666396071245963713144238151153478066795947110041811346088085923048945262154329859731568134696744439997672735137765204126429242940322128351634670750509153998058499260783562225370986386095218891391225391829499901866355887015044587753884294997272886842089222849846092175305675001707344666444877148921442899157127408619832216138516993433300013132589876532403815876262338442304485270791981659794232908668187503504956818986465485831121569870144415795849536304577703276237023778008188568864791917144483945304587183116719735379751672076605634242850634237352880891870014383507931487085518560340763061132350891017845735514948663195047641340838767059689954504920285183211162794436506285314715368293896187981398977202974781592785274547131097582859669873904848463757547493556151899231419681479496086989164342461107510439480738946795384169968619118906014817679232568841772918008960060858334999561688692147245772915233218925711262123228365921868363951973013170999346360093751577610979301597060749121845121983793823326823408997770715095880130574768522424765016078820750255457686166893659281481943417347599564928992377071997394365173426832602160461680924799530281411117398233843105054283945674909061746704624593466362853493270909087832473987470957155534235735675531089898122143815171862400474851974112322342682312408589976783260280332234650314577180688150421985524881458509212434395391805456792114231948181546251253733689755298015821543275900207373026917202922745958481326385467341795508344252775859654382682586469850614372267091011939667603414844524726622359598865548961514732048750153848121609193277337634074566953972888189014481232434608410131413962384316152183337685026288719054315725347719581785453824249690813776218567000237324224288239130855477208209522995904334045022239768316207594507350264815716654460662530197815391366662581641072858556011110186538809221080214299818802710161683371255838946178871925669270076802181259625608168500225665245639186381187727471239080051360116476602419985702660524425259400603638238731762600908470558354288536250603265456990152083216241824123276532496518997342618835943569166125433202082822478650929461018331742041968127115569060066263496948629465402257444525620333031758256409739702126245003511530543629314047346108544572366878352768570023522174956403788591987561750611541987923245170595561854831009429261000671755187126369587659915590893496911711636097835363460634369438166932495717693598864272557207866665071770105746141868432995821286670742488638230865828005218350581361164686006983399703989150631618671531056346436522365192605612428692937803090436903021396019896402209227498693989076492383717802008946477453832481108472143121869452587393466376888476996526302858580135792443450006388697446844252158656965549080172494311980465353817093078809345927051177855518777471111925931036215208139819451556520259822655513154714802468423722915705155323921866780113173587793237554238302844446442017662268006328995028882003733926727621455410537392048939111568583410146674876942220821422181840924586130549412088687543213308736250038360199790676571468497200410098641824455510385170421397682548648077855031810435182813524487971223371645198678426704815911938213572704263770463330626229719629083604228885881575856850441447238399083188468929049738211712470035873654749381366223986551453585828028582015049059823447454818922381695950373264212756607250646773153260048735528853981234369019548096765796910569807727844548141251948488069732715108982670078855074788630671359217190974203507649398718048756861572062946004441721124618186675430373074752378380641007344993656854112629509721630700585081896874838331644633759607053382254419833754213739361750202638750403845671197810954224113645975624394615548991571765747209190969063431007175400199079919000852509978114749525604771078355910163368554602451964255872324107311367081518506943243759433187306324226015400818676089135343069459813469683513996268110364876627741314318813067007885767658407058905432449314082535216387713832295746005323562069409166155710477086802135589329393004946976709145932453059368511212137995257843208450815575300136796465810433529396285286530738003348145638880281741913073037910421582553742173936129590640687608229939068225145823774342210160006893841433342286007557839434240339439159838523325530188296516426023913963533648752541051143732092443825689386729407662616961819617959048906464568298352388517278048170415354452820286036150140421477403606482399559322642733015858428976638854267871667347144639631879010107927844923059492266392095338698701078197930654976586694089870695317802150432536771498127554508983339587366042268311554766219037821249407352447032833024145239384936717433277467683714241697163290853929168814713854291579162722045832599551198919719205751190226537683983610866614771140609078963198988913442621701476888376726977042304813197855499627677448062209972565970962348446300617176381010404478825247131730624196530474570865926519443619550028259000508891995140972090374800507485636642661609595846268527872201069644336587025048649140891553968696469216329195621071737185375548127379730856047157799954500072477797975616528432977877639104971786842340860195126271110745612191815502073389829230901162219024069796492106449827149115432523741008936080956594743446567313676103116575680750796460395438179352890205864567232511895432370152390708893693511249203396279218159813020971589189674094846444814522316712977810019412903931598339426581736779563327078242470032279929008862168705677130090826703413958836766666381722820305664158961826355727289662665816113046579665142897079204897342857841201321648503391200078959771619276281288014311013701081866308436107202624810731787634768073477611069034608556764253170912345739371116678212898124075971979020432817731584666019698453474335058130459694547842274649706010919153714478454299755681846086023847508416390988064024582296877543004204240270004490442007731877892503286564216501410930019061362124527118824682399613043702039430043222634280271216634770982704291667490845654223211966945837669470333637876115424877573529971292691753318174233595572089085554306269282228039372241150400413289266525904077073497104048688144904016723448753266471052244297683305378084882851993809625714887563176073692712269978927595363590387134273315152465291864513345838768624254908666600595557089951780459127883265511359609200777117519970949597742778040653692761242897544369147379743023987411696024353435531497043801741968304746836322005550780150337443876844449381530919543512809002496164763467164078543621432555792039725073629936026397557218426710185130758402273952737342441926767283589506854989867288278307199898331875518971263173190930213399915739296645948163892844191340595937801131766630951779742033165285121736257202101807478945936268018643138194882362681649468199632948709668812221799001014671474999229873052390708584940600060293036734560587833697529163265519252017502776982099324023812528837908584898343756863873031034709446412307000715589698979817900150371813327875182962256677340314493294904644684462997086030875168689937080966227097792063611480409355965160491717925800929809182959336140075050529218238313533180109504581725022766941918296911205931788043682586108112668683542657291493312309684652938720856955893923224587989250119502467008009594390338179232656845935114241478570114422773398532834932634487670340246801919481914155607121111697953757499432127365339756578034332786553050712405810029044778430340785117510160447322972472954947065647245467273687671112646634470318768050061801863184928138165816181293018285239185325988803025900931434978342190772079080073672457908215246157451224976556534951350486798139264668112433217118947204043337196356049785042511938024860332326576169673002344438562933896566901286676376589878228666107908729156124204792802466184264534297457951910125102865923174774692475129802549952837465755805673834397294459367681895375658476986651562179831840075135211104311963948955608199933653362592952831308304929628785484991117991460293024643162684401775420936574186109084678390284974026484385254060210393975598044926225228380488686215601568978568729830857271924951405155752974924921193979686995564882609826287980865427549447197376055567703749471217441660879692462382559744374882470506466622381045490711580893961030041443515505226928188441560195325855055262408058420909650524574655375693634017569411060064126974724330639757882572934210349322007156752332859948011807221687282628053377752960085472012242939358196489201514060918472748081542547090058650549289805823164196770568010269609035222058694942596408438767997998741516686648654294329915692463495051377195462354783412038039541299696645044197462289658486324567313845634702842056379642843120406308235676544064079402343218386024299047279704629940974922958870883427720953321991825872907705707796345262821713597455703307478193735087260375525225805998998594931028428281176080343570231925503953740378000950217439791531341886426344507509968078141461035658557327541292585233923905480451450567576214442046035642869867195867329144819132141785379484404665222956467958018080908115751428368573832330563970508051724826639471501513849569548800218637203447908489546693058907041130491126940478672236459590804840199359838609207443236863052103586627812446066923187737792221137580340802329171203104229857896080045429753498622609607869374878404717886653939098220212804680676874041914765567319334544652107414838720109138672764748176076688415407124597903823825206438855422754409199451575253864867227709029598858205951943540150121531202702697864595061651738757656169732316665955741743681486489328881685301634764552935586712548086137425112327121267155870858392820215941228831744392044670884738651026101054266260694071855165986820499638022028218155606184063646659224396108521517718087117158659643221683855637000552769700591910573769197856866146228181291270620147521277965183129248802558893777561801011336291503686644239821952116403913093527557451727703605918263730297815034395782150629239279753608605676561839591038130592737992129665831811079603040899758658969378814133032478129499899597198639587147143170528605715484666528298130345852258417200785464245285794322275654003607564069563461902138888267265978975063776209453168621093924122470970431566840070086796197847639243993955509539419702395552170999506961639832484064222036940680392223868227408445679060098906809863125022633475680927081241779877982353718206358889829719516376142803785849181878718023338584999759254101368961261232704606269301247650356795508834436516947436064501316025704119734476174578605508350174538465512580391924935732683030181780995707243321088848184606573974744188806365128464196063934568751397207961194542146195231302691314399084406981477742737606757337657670795968614304820744111991600574102606408362060132481824247404368901144369638313343987095987457041895282170447951050725689714038995356530425144456569920934490205770625299288738533247259930219465397934957620635481568708694256315610301734160997161086695360837205268579393503886914853365934474744307397019410630995447954116878776601803359258863265592687828575101238251912282732579593394333405038894877837604421843051190137659750971236507004815104810034559329965108837873878146004093765286815149887656362820061396206184504820134906568622869048558514847059679431280363956434689157409874167059491584375675964256964863025412826810929720511797606846623561598600889742450094174096048499747812662789902637058774569959434896993324219039993918940784627180913337589277366764705500366366782128655058350395086282087305275065961186034834595776964737584665112465556205866381136104940622485989003581226892344723588879374508854991130223798350513163405495857027214096364109972410218591618965724750650826530624909104236152302972590547290646096230374286697413426952707255163960418229138611177029530624081837808018410111193669801098971207657921890674324171801009093614108777049387593051761903029696620576057546078849944372227927543294589728206500569478187679711088197445218938465723121680899515496172911810468143064356271273053102102834085658453032678096200915102730933890097089889042865772386078738551084269542861361440020550693357889292695147828305727298895504247231820552664993414285806583006639071697769129569397574735696457905834528220690392290677877352503473916841400251295540989809120595201691777393857788672814269638118821091941367182625012422387427181258103578417386867102928869418223683655898004942953046910247687598351170827373691367482421176696054755788401907789311366273906285493618216332021293080398897794452361109729284629264190929690180992026116304351828859415756426899048898056890631698676190549733825649781691700542844408934147346648795945104552539895537572298263826284291456924381441139221137944998263580051599154978857712249439199013660076498287089662768929278124977772467332022915386308422557017412838567431781896809688854543767773762708509051645745290485839713324080351212925172904090743936059207886571186901907435612821303673215150136666617232159056757361889982039711570047590238625717300747266303861720240324127795172703193338452243824872442320553717801281164050601759198804630227790519609693752463270726128772742242968025623511542884612012106126831560881754203350820301971435729306242391192872118708349263741235541222580359818456261148732002412338553212881124738580669735387274413661197097416514154448559809370285881959301288537832507960428159265814974663807462005214355006362798137197142339417612030609715339684284186117449825840175231417749259554386455358171678685313012146801634100397155468113671133305886388607758883973165525946569640867618309454545913528289393917921314622224249982796866002059309239447141116584937220703577672867959878401828961167932682960044083305450257468791075316300495836785790352857487624407024713474402486714179626111547798677763238372718425505962131974226610961796663745777403695016999214786949253492450774954668497389947407348587651127905646919146594133267883131564573631071603557090648675955225526084767550067112667359566052881252105975845666962724514046650367000360439908375048015783047121383018272030209231811729824968591569685785235195789690452666914626403201387262164858827633294384502199980070250618883691054948545581251170663343392467936529235832842343165366824247539870797971942372574783380947487481852521862859362749366760226974705273195778423188632602884502439496077401680160137101655713533457790337451522157941638195988741276645414107190181695671221827190890991844716003892774779227672508472047280856857310219011767574591989008735190047016095712657731546623113168009169428518905755923808499360245172235889138270272685692312699789393956899761066696716892717626783706828377128496835572047778574549827266943389587963285345774921787718239535763405331982166504805604748221836470379142846134003432870660033721324893519942250044327812528440804415974102971826534900702385962683841858558362022049794033483119328066119121643544759080860437268383905331456850736919101783689449110414629554167835019734893004379315239612178916421530889932537412049414752817393371226891298688986144766313642404846018250561194120562099834499410659788461043218667458958112616294386757941395533380629546575690194836958572298408919889122610040618605625072801335914350679406561909969650515777255255189821286074618651002409333702197476268644731637559052369591886204236664020731463550254127482477024752343314007310197554597791893725307644260974936747273922936613110116641665703217536732911384902477959788793079772156312887664013233158285063020391518599579764423157979987863678305004250826197406793887654062677648420175859239860344755502376673664269836494398704701877321647022862941230222088948398516771173767372487030655040550583473833328654958817106548740422435572623373909736385407465127199438393081300476374628758380998667329367731663537398817280431913368073390521125094925273326638128392096390055655247806323677461229307585970592445920148905052839998265292783999332522730265064263365529675475442478374612976594043627925560147891095099871244690972413661360788287800806708964420517248627023366460903595681685304272954043199161187897083688107148998895029674748994875789882672587287529440154540307362911949870736037870599986606851322626496767340518321649772542936462075629820557561433638863268629336593152825145549641208382977398066587494358152498160395092495332455039977453075308852835812264641253630159369231164336928580317780580676037775308193703527702255681619882754701565532034007558364306394581858126950750552998851924151071503980630061234607351983733013813993621208773701712876714987535310014141949635124101625719746986386931251154392253877575147892659091828441747982881735236990315655416120220792305720236267203704044472841004781424933726093949892107655800660386771312617803885999240082715181143678701956699216101649125310259863873641347382858406836495598046528230878079762327217217389277682991045312785386878595743239936508081474028128899510906273928395255305104185923632625784954844505865784779009608243149334623642897732742576627796761701683278949524294910013697854453740338296881967563693306403413302074230271515357017537078746178483674759878364364517638951550580759872020296210261429326557315068440518475067355896757718944142972573858595497420404380529262011400564709151419406907542227683532402330988026854353441864523659299144802616535391208250672592811541673460235293973600203295634369588951130336906693983137167168855175350354394551859580811906497817718060386420413155235666617175026231336521416368600493032856079199734214054835818096992564848816218233643377785411566412562108984566896802050060984834343708408673422807019837723785075893345960457516162668812488818177952972943416070995513210633219935884481368445180771794746265006203142463237529179334063765863549683245366716312798981101276281520397525778149506287002353269212844487318788702129622468703233447976648215813548797586085726447306883536594960513271529836071595269556620938730347210548192914259340269052156315216055070718295364788470860715174629570326109992471876593536950325745001400058095991510793493361880935320803342603486523606179472685143474232122643479279916085565781237629962186997239719032043919655803845781813802574719971016116540804928266112640283834927758731681350324764024171929104229637133660289837562678286852022163609194517460334386527881965404170583914508807298425334460858900649777791035868353481098257256142508201419011255686171236531661476529760526063678194742874753912250981767379767461629613412069224707191181500846713588969589925659494200014910063791987032389964135576288643171708550788379618334318679142505870419685672134067164362955206968623431935591294192840831157441977456818565973630595828972304889357671993130264727226902174266060497203008603094319154369206969671964540919551009304824772499971218374142903871761580614123212809819511087743647058118364768271214350773567895580954335701447263921116062129238199867520472632426340122186527725522745491166230752388105449992214538470751664712875252046605993141576001860034348720678078227098812051017178448787239854374995907441899783532253413612134733122890217395857667087249523145313717797633918735165937888227116705183367081324667775870129964894395094304237339655278868433592481353777067893172398586174469439148206897824844809897612791740750005516263827677284511702758772389879425956872149499209020514265780000227475441985800242243059245164768572781419533440523982120030571980978229074761020471410098075126952719919313501542821226149442366339965491849750995537355589796701557885175531604663966498473938536034889869901796010450414636608285938397750051397588934240603328789989493825568453768184509320860335513000282680157980308307928844118400581004542190302619421934483268355155396557068797701275773646323976466709736662704300319065234200157145592641425833582855591316672670591882273417879619373483218878001799424601236633075150425250152699577431424273430760200786739820973554951671506815120124836598439910870319189817274180466013326630606238649188524126353697148794851120974243709902932817519923851689543399772607721913487548727457133767595075254063306996403443710058316175659558720258329719059197190559090626623110122919747396604709013951592423104790750720820238963417366691580842047116018036286090897596388528895333639868921304186483383829010469820665314271050456364577528663121465660842168661779643700389055078309909702001702306346364833250997297939027316448595273128862523146662759230028485356336250102067546815921516141308879247507553210571985973797142318186959694664704820779968012132713410319539559713936103887713541399766642680382542779576010889878600219261451268086359981507367761110016282774138444675084753301240264200012253810829980287410476596770971373722251437433037073531823955518666754697455646543746364738073524876033566018078937987459711890219951968583446050996387867481345634628275024605738598908027451940366343701769246773071500227448176501465934236548042633690736991555855228523256255009390631203280673257824069681112435686130438424475190405261377943125372503814323411895190658636716081965827133862494101474167116276254912976756984500097838092523107307212989408541671089248054362677031655355811099823182358920503750919381936899908869319585492695270127047133056204731282724528175418233694089409079497225105242975274196139698847124041290424740557398065447200669584540467541216899399335170516390894393760083301502186648529584614319320861033144925175799049476974080351046875104898915327810477448912219198320075856905255310973671405569350297480274997203205794210147597300203061051141149923424795787250811258129355866485279187209931368353902540304315310925175098803018844630795008084662820204765583345458444466876468090821895857303640812022252536481420296913455256530943914256986232427784765536550012769845680999146638019137608259379066457404222274258452694172252231562965584084464326354652116878571009951406897911881310325613216640867706172137827244789905962836136325411833085035147905166113701025763753751211919187100556716714533753884387364497056037682263168004750865651928105984764595692597115836356903617187859490950485817579319244826835538758287080371594589239527667610742994617664100991942046980880218453711699348969970312477993567798234581751051934578123513134319753450732765171727032524957472209851100581950800114587133711433450030634531371097361872556651089188539149090260916160000571383312029679219898916717494204595025853361780045561879064427840617291117847891992084488366493987117130303053842679138675394556929475933437330361633080491128459498956396082937054144867247277226128727654100680027210899889819946321071845227697270764645011259689136380863448832320496409077245893462517938183184994529178394871186583188255536162715181178359072407526805922820357424029106242289494369997415753411311933534231586510735621733724911309365848382147386751391891732084640320080728123774243250656546931505145829663903792744659604362403878236681595325758479193972124296569859863988989821775045381824279210781007907256058473548285851170811439346963004651526283633471937057770898789850446073155218019024786375433989182202822766020148571621109044454154187849302029757392371750663718208220968733363590370586161952998446543445957406446695833236719694231524906841511134784828496221393111617742288467051151650458803685883908019237722047247761271419233000635283102810791084802643628779037403240701452139852789925499815977929755014682951073241778039905565207147187743765149173771111825195661541227295883184468462914454827475631400537496966809257160703465272379837050118980989712374550162575183212917123824763683824622154606836122768583933713928774762564482523501588907003450480463767186698020712045142055032074756626079796292290117156442969178946361278170797599862181903000839342344900571442501737947198530290317398526957561539428491682754881655280076874285267815846696436126829852785592866466976459288969881253936849098340251282946284760127660806316967289419402538052745444513898893758488877163669859790126065979336098057904317911404157274264322815554709552824631978807785706802571271186249874730458116423042134355939464010115159422249956977861798488926494481172503925610934383107232461565538818640370201883457051427354567787381884082703929033281601425560626099031309764157628210616287591233835265945241866013440079787125493954046370289089756958067018562586386653659110181198122010207354820721063584671997819156362545298900866114120282624121292393149551969672410232738317184848127963851058757439196701018888536406960824441521962206155367242095183164113515790459712516610502374403522589694948751606292231258955641902014073381612702661190854313049423570675303654896692005128549659590144991161937659576761774459597579502404454417160821535672283354785505704577447096335107408466228415213749207466605238275604864554555764196806426153553335472476778648582113025759260622183167876763008163778575710688441590066050732486294931513612164566890741847124149889632227730524651711118012674339696333311488156101025693079781960929462733191240627310928520089559823228613793034164693870358529638682466066021115753137049696540852000382584026601012956230725281019187336025084365362676209368918343641504674484267529094622454530286718981661662369010841547554490111753257485452733287855161517856483861383645257438039221018625488135176935657260592380224603644028203166168410363318124411532475126256208380663667111874155774744755098530606349989579669460531011924198341347020693423722979771492203253605108532230932641784250396977716609104982660943287090975964727461590908462542256683385838783943919102737909870420427611015107085633382802734690730445851874741270384069723617379965294413416000483200430922579649406337024236376642079189480156341953011381824936651327251158540290547502387735401345971475499467166384277365541941825989234432041803026654349743533533499953244830634335827666718522001503513263861655379318419347880735045809765846206228164834013333530659269451196017227615551255431730592826507987579973676435654795054986044554837846643299625946403372031215591726163904635676813103893411200121344150667527007173653526088987228232740914246644592793805186706800082073868096703887864020691589069421940058794415871498794534076787453551342685446358433358466084796523296296202382737276971874724748232368647556341880574652605659938278854351594680639056800499258262070285815481534321581124259832920606337794768254337525261355854604347366883111516792536970145700348343822778373122866832268342761612006177144681675448094455541458455109765590061573724177818188840051232411104536191857567878856356705429493784108420695082106910562034331543604289856425930445046498616434682669963862923433046875254346940220518179766369701843781142014015635371879433924563983592535545821273294334336806336818294419837882099607091498981327283104385978030112785295522251974348149780966364754053062421153566944176281185114310325033522214695850367837656586323323660989631161163696106926534385468173860649712297178300170581459948329224068634899382570775067514294354033986025058961798290630780728535743467575055044183425218778304394932741962901541545675225191478083405545423523465580668046094581283207936654444665017218926216589058431708105509386247342351743745128323886531491863095501861281350843320982570299234678366494799893803997206595439904424616638574675668800606077997802803496937839159048597800151319321823252997680732055095002347123520230631395643184681871846741708797176586319535982568921153052890195650525420738133327110372869619430371762916294539690822313478272020994827514946156307402887133321161802563005305445990628114148805463086599274792632604741105161284226044465880109514042848425024105262260962245648801202733421389516042185120992400742207983704092138042584898554223604157614223763987031211007665663975001101341380465311723310741818240432115133266397860206286646313296304381703728338198335958127753863271396989953274444912525236750007879958121509803342296376551264618543033133239212749646721528420174007813531069229452887848082473026440259998683340892913820049844570524770180518491747528958776621365299465815753789419574542858481259175069312830361267753673725447115953070142354141787717972861405113885750637336879585461311309098435165330075840384719080101915469800482847031389980234413672230712324506116284976783134473303298287291568610295838350813214187110018990948683036825918838992666327669514018553314148778210913001037848156533323407328345566809528252044303418382722649919952682685315081204425023302068945838829343043895121005557836878039150428240296331732983972522235176213114589748059445119984025008618753630798209927369177241503450423949803374880531961731354125920413211050217192090111933670087740170898205125796298826800256307059552710773355076093545902591074462850010611344133583945428536974433747461727966380162788932802723229507049161690579397453312583580703025242842923591165614210691206284731818100731748960148665185473218292572113924487000322341791215659199049035477367325178387316758000252250935187666281703486733052585930990690357319506777658880341642370572643835845651566772556780467788799246137376652805752767153124701989113353588281910866751820870702385689233468317733667057724567813971512576059742222493304388556073256268662247268947975538000879285047603607556512825996294384010919571557847712918569916180143519226857269599292853770125094127589051374382135229216558058361458816005696978512993381539392207582586115045188369452527287176049159511653966638451190320768003598495218990214491360581902069119559107234232795760023445800882541178659499694924083235994391845905617281814006798090631916629319132746980370211471420571539146828886774915273160175221176469840590690202663953262569121759731481787970959675012063523167392978451433757165987412320826073835298491289394638688234372928494201713257894565746408932104115426311213771348719417722090080849474408191753732432992091347322697804856411830201387162265079296882316657215361007672861664661286681293732902010974366238081074750350102265652034327568903980219533272811051179858215320248476740507044976936560502365621659258082300688476461281690101432500522421235145016492693529741155516968778906542831298531033928152509704304120841194102169075232333610010082061664424232973909549218323124605052362529250723970651442251073869425468371981515804243546440793909519157228750493228204258476869445143421887996881904882220137252808888130405756354397413020730487980082665281067401409594368136665360862531122568636740680248540894513225848882478567984802660899862155074251336202573318306657540045333566220922823759563162951315689501997912262276884669466946016283232916210700768265642908334120651427827735035034167850267264062814571303722159445216873053595181149947507963008356290646458166996616564449190430286818854880881709788572082006186339964878472623336068333537033993024791967294661939884037691647128860857819691272999434583846484659511364086249382594513077935798352359926524087776952602295460793676550687628787797849054413328660630507524427688904878059173539622406534969299433525658734384672305582501399419430730388406503236332275689962726242472382331386886377514197106460161701210232083721226565760498373210913971189353956529172460880264429295819600720344654591751123761884050697464788948013840042440642337048316581812401594692487474271959482693068896564822076062638605547050353806277217589312885360647053304427436773088483882167689247289969641562163555477978947172731811390933770532622071750824397149844089118640656439877776730604022413957386883553673684434547791742517166825853170288899224051779148457525212923660248317254640862451104042259032095436758747004992131379768541574359934771801868355652313564376095072989321467545944301913452109567184242434848550490296913024037525070180299905294070840565748611542836944562638962102554743595969294778730429369732599012509134335369642015646192024439043125744069775614281868495284001850004904596778945573779778884968051892559634952245966633331281241860605033114902321044360783439433754944715876879081395037996260939565154662830415042309113043564628936168140712456958727348702666319176935997529302340643472096844131304864169394028283328023894899800553161877512799009153754549521021366827860446409939439973753744258857492712559839490769473959217979297242430377078198071543039371485415871851166030836700064253563469258250279842994221133620316497696044383416044912829657247123035731579556472581251489812458375840761551578103521962776702005452410503185742313317597126217437266652602702080876693182243579408477263183041554770479208619306127262820344725995295902275635860186892784873961912081380950892735357567760474466452785418374469430182328570836911850476120440428357008438343605393245644504731525994902313756167930355610004584919850913807123965562880838581502034426593191458097515789691340342522636752348545712862770144359326785508945093752959046491612145705708107774646769896789349826647012341171978379345117520400750753084319411930290928051481261170209197300011607503561564499999252948004127984329387923191419520201654852143114401724664689596158069412967051707284314011190931437684902279198837627441337758498456910682658506595736216924775602469375673745914379796257139553390873795884435252571269610597884402552379755927828734988184922473649229468121905416320890697769450820257970433861312293728356574768014023350475275434745899664717586064386876037107023001873703891525772281793351560244574709728942955202666242967010217093605586819017455671532861531824704124420115868646005532212746173291132490996600352663660170089088286660031198099402296708061230197386581386527661261834842683417923606456792584550368324186764141542699084063829507570936676357641088503192092863372439028443892925827420120188008898031266775740441505719791841234530301801768205117664622220486954991012314166592031989212098232251197969099337973002613636840447244320387217753078833149544735870901657589005296685115469263660349899824764009430558202118223246198497245492010872488841261267750704563458529981399236460566927888701398252958143279933832658671539684113065383996855122752558535756308732572721251893439566014889423215711297740774048036710272916114431985657360843709422509740130679501949832964438056609808045385800191068061657125034807013813057566250927073883336354478155939672834946524873287455940161931411759448814173393998850134309820224889698929327260719799309521172741491311924638885002951192259752362420687236491663233864896037702182544285782958973176048468716301431342192270345689846238715456550914906155583144825555080492068132225294844097498738066372195383874555201974487798219519631271205915356953701949645144834802437094371465433137554740852536937873533921492478554804209111750526847217088498425150311232592457200418782277348484673619244801910509015761978279011490959750612377556109017156391148536323335032350170863305908277763030936635109013026487568307163289508370383685118222532624945343939994065013242164529175759563764594911011712842948488236124110715880870047974074791264296907744889260951849795076400327027733323462034257223346807992111496718257564666095017418989637899509274188832071532002811504674270473154289963994832845253059679150876082234812166786451911876603858955069438581551877667473214711659890042063024923817999348380833723967722062957729309761860881217060991738213228457522259130974211550611044353009141274120596460424524756400488434929012847489556970724969861313737665438747068917291066499691528415805439769459459883704810958221099479104045806807025516575800029851048501294039243031867315097795888733644858336757876281514189292412054312689650381439726008279698174551736447463196754505270237777948195267256791425146317322449363459613510488302661552410364820655107558331816793928398829770059641321359155635860082394999287116253173390953587782889254353511728334286796570518715624693687671074395125139620314834661149231478962880176448837278171661920789148024025252428328422295115854709718074383797547483831182303844409087305327943756321351913026956016483959803720837663606926450664629741764018115962960291669818302805182213230311404076404964213429090351426758248686152426427154039703973404381431402828607662711016992147855522496035474446317452546843533910129080696459745293755890176223494839127414842112645219847860511659790687129588950471401962848928430227946568633814510605815944693459254378736185425789603101839745934227136209573440505998417231983226787736293604894817502997883344236868755935120076256643143921272345288703698916704144168062632487301777641510693588255454401538028929977289149459043401283390465348109835779499429202661179115743355262130408086817041736573922985850478489814090464444770100637916300646202110786969879467791531899398629187804311717020251539994185874233625710395005628894933017689275534421045799345505133762335834949874295610816594249154305671164157223443428603236830318986456559652032186108099993063142421592930649085399980156285282745989520820251905641611062891875516764990537933188081092775190473508703414476924126817006855014658109956154648075187929484147680719975390277353046199723618413063985982066141352793778985235132655627823463778838495853324554542654857343423754792787777612446935574294229970574848383176624424041608754279532434553334315618712023258636569269314052304224039955510065500071215147253905267641894278615344017856108766115288376480278596357204996966684398567184136036609129960448281780353632855859065020939243033681572687183022813224322688902889403038176098560863879511071756466610942510801941916343371614758050633634230671597579392835134256585598993943118991473327786003994229120576126628409820789420902612303207319647214767465015311201323598882421966097237965393948796492715141093697038742487653200793877109658567518371214736933015995956913209335699670663899639752009614801518206152258365597810929029986748187557849999926557769028575811456778143510014329720513221957377824081523120732944326584383053826395384782898797605764856220276076431626676194157578328003964581456164259087351209734276911532971585493771946598564346828504200776878661220410327741534065550572900740109261160277838178971668664872465387596913296826409640146737339081935906861624478407931986414495011761377040110921231771159886667953644591103128463587963153250955452396207611779666408943120988348645307218786598346511647772307078863536585981680818206914005058095636119766168370097609643061285065671194714021846574489352139721636396396378483062615523294627860702797562668280407476031352382434915944670553978809924101865736461708627605339208961723509569552080413920250851344099945843480529410854663628942127567018646442902155758931989994650378495040087302526094533622325155904374303026716051441242958467290276222559174625078305480741265326558725923010008372878097609867393263898752263118471993989560555502469857704615237314147453501050433022291317997653380819003707807786185144786596827476068713734882647215580308317767713961608553963016515887140935369462781935929769999510803382180174507892011065638712964739690238553261602966034889711325438984297368404767715865667809693390517907390605412032682373851410490808593155865351447487831286583017196687834749088612640048217844871484589364657715559773470433984300825564975512074093064160037676015680390738871463097395833688427189253264004979302343233929852721917167658161507149520344458721135770629376690148991860638538341509503667354101490830950727370901477820769501288375984969094800351001257804653627074531776182643112944466024879312215206917819513302933335876193000989959435950286351912460603953983649862239893506038334637290260123480083135958684193357905790083343001293579131796449322265816591561405389473653588170964618309197460682824885975904478312506502385085479160125157747585555447681908707466023642550370790373442969640107327759171174840292335017851438021920789526667874540853573574657745055876035479515054036033286068896279426469240236220833496593482018937589412548742497782298674683334044861810009861023175830742886369997968719009873193275182251288004595876794935576696946113367024111453705585401029317567100439938795640519135694588428709791495507122090946216835535521478697817344400838165448832118286513915127941906914657818640515420640061203915126384734736042230467613034926089796445364722190787799192151366059472046071996023202240595331356468653553561654464702096257514104464672602537401628893852798319876615443416666059267618081607663422057589658684213610003859537244228682669020224430852817806327060673232250557048280605424902309484982671815039741249081222566925199020772768975987136985335134935806354715922130548487122542431298392467016059196674763974845226709887215855996602537626682383529521798226250151542408683321631469710339580237373034808446916413626267385573904394496958961890942853819513847930691563893031149476700899040223416101664441119220026109472626922811620571035369852339741362491875375816200392595242093624758719271580862231473335310947845400422779122404742497328115266755682623860459398899275519065282234198217316663058744312184083256324637064965888693227652806182613959639590927019356674462054839815321991720801248690815169551843418250579142442067351226863222181190722550679280403241523749492720473356704206486120633934955142295664067223590373192893378648497318247340522111384405402634151541369306973378676988953367267352639775073518106615872557887727259041559702674296493788073122538483227068465427642624071497224877628020894365238869837280606270254984515202499042214903236007014502098340777870038927920182811044502345571507899351165165072676154673613134292065168642467100922667599112084230410030041707495060181275185718393948702595503256920440162003915043544424497038113392712775879261827368413527411644671265065926782040730783141179618636953785448673978707606312442720979921446374102216664883579427205922812187551450528343949163105609832370331626392533873095234625655811679162050804018668314340468024231766789488927356686916442606809708599914173262103683015900033361615497684508338993833977351066367818492585508429909600043367901458806228366821165306927585897096618964367200468160760930734745846643037642199355772054689522646938367676360194584205274655803846988811118113495588667910156426144994077108762512311820803897218993073244921707978200561552581851267087451750387541940058390341307434694200046615563465240735942875691581688714844408761198243896157973931924974041711325159393512470234223784924572430074520754746016730764142713752810357000523301201414470924887978583390917547342032765454371012549793693361875970475449357844251306494219498515534324079878137812582941629687132766111725968774412830944555031348989555987236499356130912975318791235877348077420225117425228188675594742981906238054437451380454209093595227902184820281393306931126528106431740169222929218474199648926797500749695987490742910525533010736972795165106357838990615039430630948436357318444039140291535322710060878969873819279603039442703795404093229654476875606866990955782678449022102159973475621816203375479060165974524871482384738848603772909386551472671051960901028186692686567215867124692538487123093305355559586931179931802505560659379502602866073442886298002633023823597810084033913752170713584488507311870644789224669504018002511555493872398416125403362829536915509543743302059428249191436874562140928760732121692130735709473428123728004319925935801961269255387044889029637509065101503574939623024748549846974931180291054269360765318587142752255145231919517471973616730601624118082968626691348508720093482340458394468088990215717033489295695251529130306705524259215195236799477744901978127314379046651638968270159150323756805318472506235156725179403558755130765550545854287895712140676777598643684824956132821566783546128973397376129796089880788149636331195135887457162474520141629656601641552583559827885757758265426027988796654609380503256923146721531486506578796414797923252181596049293666793838911296544969152936550371858726645956874894983198880068736364423280715311659179739463035331036446351948128523791955807023053087851907754363559833398136171736554962286526882062376465884080486748342709360681362744192256004790793680393244395412072218873979428436026971105782951443543769236363413107089537473220762670372990158227976662882103360690740896917506285121140883451066757256056314237272029366449886903755114129330021604168866920498571856324395681580847560349667192398667762196410587643512809905348544817937343778707050382784694275087056298187318809334037253545834490887587376075370704502920133494559165001958078867554645357957267224620936602047685340623443404701070567765747985983464068890198343443957555989380756394313890764537323245817993435750521014973232872991869805215109312629967067471198542399635841047932865063291862760373821840617555855522493201535406759573178041545847564952169267217763413452243381722787263176269660378302596371182682617597243671772319653877253417877898192059367228361301849276498200286173901118001206507587358603256008988489222566801481565079229933599291399771377864284983684841345037006594072993458648100524295969308705624220012992445050318914866677845323464428703216567100183243247150281225123153789992371727896364060925531448258667265158907458619033402541458875654287036165808686423187560040212352365506047622377740927135825231786401564345575507057562353894867040551540722967193910871718852065865531651368149530736290232048250824894569563467711270444499033521696183759877007353123710266988831201205998906076140413382397239296149041992698332713190979044746655159605873653057994119543723153900532904326834241500017129009213403165121641176143661755739240826997792785992163018688987901637857001972116474379588479028753312667911665141086484988315861661302345869177853042632907678471298793284197070126370430368789229930744398862024431088496555121823222665284002638219771341455079942499961874343626620367483820420105356625871020081186299201249233016673721748473919697323749339313474422914512453217481791956537402160652214729853831875691316995443602906878447316098656066107115550539250146476717481088217668883249435508819595078508403150675323877468551444748355014662653576726116940438751926427788839384485059513545040850474384487649918059102972867620894598118354392511457856992381570810246149122944432474779441915600497992723285141835309700029003575070663554967845349912712059165404577385940699227898132114500690788893794817753365151815373873463568911365808263910108840061503671225675372834869073192508421010971945106636283200207301345606358393690873831472715204385107852880829566837983749592858844042367904668621889902935172132379035488708625742118673807912910021342800090657523479712446716757071661203963903135390647200595885855809375641373256841502087562239966686459088057598333457337382070044315822044997188588623927974215719296145630114585816692562373968610965012661601511677305065481843297021544142453616515410250326687330912968270382190734604533192271421915261243861871958345074807824258186071123055448326282372554702220701857304330719210213813103723942469022312673289288576342874132182019459075712149961047574775480179629843007381240150027354758753166600758466740488165212836182121576893753073210223477406865687166113012972644576028853004746868585470591500911388600901105062201042286946640714577244661992427233573627117953523321619469575933600690686739517792154117152269004553121810069922221967367889311229257468262027548091233465055699981982604505919879640663918608468261078629182240587491791149991743927384149793969097522072641251286295221995605533653017228628228346147921863798727116681401542651948613896511725494372976921879588668538978258068718231174978722523758060835908994601784710428604205759139930584290802258091668447919951535532845284678744978578593190013703665186676161482609334790154722416689869516807116973009907039358409254772019699560779577763278713450807883431000595772492663954243441529508042106587337116473228198729398028072900513521711663396475984515298069628742758926575631779832978681891200279347757554719521530535699335932637808186544147278034985403111550560956075139042439892578240074802622096442106885488839163675953411871046401545329555112870285215111496269725804603868952242245400154412436415718109443474460461481504078030503128655028939762789293793138490401135784550322357358760869709844292035063364039271149353559053776001651602468938626472339871598013665150954002302174387939123288954676842538994136848688869902168129555147269671296413390407692791123008623544321981331186289108165003986071315617129506055157281195798454025379298689425197763441726028427718730043789201700016781340367183906461584704478148110746403398992799695093336795400833516498691562454278284018931426905132410960114849391118023288667336738834962411941642933944585925661583747681468985127033233982912595992455273102037440538515216554201541952448997966585476603825132014089850854489711626776726936337481274858275519012805255772514254334771650286833557990919932774124206951487571391707808027451672819523677238992186271277718140048069999834167028176115448997765446196799665160227258214170460657249762606301794886800740765356027852189553162610924533185946941444673441174021896678838813797051339536685984481900359364487050749894947862338777428817726466160803219360761016087526036895439943104251085219525168086636346756939737145448716122273619225118141657427182991176980191291365273532594091390977059433374661764379736435912583661380929656736559302459390529524606536374810242700614834397904942232523674532910073501393181206440234080592367437508341990959355581698824849040790478903050255893160704765303573680398350778110442644846013057620141078770344934100084233269318319549828179761600004366982950572910227567539525448148518025368766608731142313926757621225675112930849862706911621054854262725298963921292020235446392039648059923610259187991040439288083858356128191493266732791423046848709309687483578412618304967472234983748084549081489196449007965890658724587211646955227457561078213083925148826207545510162006626292397337792754856490558226314488865316947964315318980102963413747988802360473233484444323894962672852328611852012817055323102258618291182619423761788301762178086261011926987359567233963037813640420727196567272490199848688705034540050849882657476318656904825731029052943288364256352425957395417887844785667045965091620702094252271730003499383925200509384284147667811659234078788307863736285669791813557478947295831842783234214346868808483680023826703258559846475763679188456797810687847181626118409789943878770820695842952956465992718919986903020026013353628868808931850979272751021864724100614752221279512404274161035370627775558210007104996411145701903292419300044703417785574111628207881302304679072479755180700375720428650377213687647175362619007439402811874606232349093781286725453890569277055734961026317516624017187953137398528530648061680208674156542796248705689701529694214392775380657935914101497710208719799175099525409557257586407742066537256482427976336200297498315200480166426287936879512031037025260846439037734589099272896399074938219490000982842651517790868599371581443596560664002610465756511555788774179818558089148269355245995951551473538225700069668797448697111053026395754180015084981412221840297920120104033584704412477443661554057509191009140178946459086434223492156644420346788806525324323811094778553913564545879882829936483448223401561253642965002806383820151897201970911681826150621524555035545976233917398717807862010992497050013839393151775352006503013059679529137391393603009560632865067851192111585819357374174607315485663963877540549681664471197354699268274421880079637615573216069460821590206550413751633137793596476420574355894974416699857551727113438186392749250781003054670091824982519913344234341919374566360194511943492176051823823623523736074874322713917138107369624884848149699997695989302283574297324792279282458387830883086704092980008805282102081597529434020016606971776602870912788494549340035253293865178759823557191962876126186348245345653524622902551093725394397572853010671252616617320953584082393225357313251818560634735851881565682305268278831369036420089387225684580909878389984773061741952004624041015835407954997900285731688348648527937218807936498836578989668842051182337040102801022686965950417856960966286954939537191074959376092698027390622123637748129336467658311335581771920701242532068011181424354166929940537044860150674156945293710872513126056282857555187324507444016785765409660793036061348938744207797392916107138365699207430112936229557010615813204862357059649505841910355540773924803329530753096948379982000185770305505027308148616957038139580256612967070598198876952258167863034489055961754563207712911406061713940486457134956032463497718152382929336397042848403672278073850088075997793007620443067975714014587656766944764642278278885024415342146519762574205379919424390149126410082102214236466682485968870314464553042396302429503901946107917596040488612032904124006868360200653372905772054779327436311666321273695310702838663802059076808260530735232093496121407284497939743193803622747311850599006850789709268928757985829578504440399770182459114456986656989229949553376021369024852573643729173944822396011037215160400026012973992150661465932046262533282887195773669473247177940068030981817541594792873652694034121867333097908530596746898346282459714448085452336365600365392521660128936720866455760969662690905908609949095762846528798001969562800886500958482285020033492318167096903586198152356705897821150152138975786848340504805368911335307509374667985330083392207703018069271401849368616763153560978933108475795189400540886547500213381072048031057940885559853355774731142408793666207534849322974656384135489805597975684712026307756966831082996040213549263221854442086153132772443590531020366054196180097054097302101446548119022335763074506987251193510280664681984328749069269426326373538759480225674829328961261082011050668415890508631813101901482816168362946035997254740585544055323673069156624091282224547575704715030656535768162890929013269758165139967799859113144976876716340711137812514544963438210856329359520757578055771421693197818582154165589773498418974551530019748140716216817596538819088269449606911652813163369743443573831762964986885121392698290433705876299025020734993628912419589362443858630690925784048767375655890012401499282201151121477492111438364492808541307243012160151154645792403557747357665989097666139779952168128088294637785301726909088070697711309015727315916475493444119684248374111184324189112210365577335002565835643593976612929055780211588127568307639599390554687769306123414387777632619120041472252509592803011929366322070376286635049650251673180769468809963114504946253669324194678826793666936734286983033797768815787845030043328657064494318847506306103899924172602160121512546620193629556621368941811959472371677295983943973024213122064350921411952828848589355632628263750416812507027698725698305578561142557280883376353147705685218493400885149691907359550186111147763555254890270989416208302149032230551377241015993312993365554397362733776909100078929309927725683161194443147337828715796368573499142031524110561351802172946101940016804375560446066248500863256498376488843054602406694175635414823728743836449220835369889368568211680295978496356039252961123304641123305668199350228845753622308277370224668000516048921065175431321599880450925575855404555518460722919149326222913968018855235400070839605108509486240278946253338703440066028926676845229473122346551702119003498012765243833503067280638131875325243727400646940128297509715036230596354476196673059572887728351249795163050194874779072778800835284330405660817493344851546690921879244103417950136001144620187922120668949516433479382530401210904733891297602422627621520838899368125652195436683873013213351226095977879396006968982975921753136044135575820228518953240434797054694174781651192756616294690269337392354804920097395501049137992578423796066720845281668362813701323049464195180086700290478871683066213193926403605378700997681345293387116059831906935822568782622284229134792023382412257299032330848084202477511620335979546315646743471119411874239943749650786997204889697551070111418324650029431675753210197604858987639290070557796166477575437083780158611579916437077969203954435778971818147898335664534506823554690362930443421866098959408611830970585090557191643132308142699989724142374169028034426699931742924482852352891600004228636099117646953523294718421868862782979134026425634486838947197786084331412249606064513036714508755907447226910543150257387945231373880146953555719150820939098946176440956258389502341718685541951606716251646111304947396928669926391313916278351701526858055825197489853498913686229492352070862471764657650005136254564226587105207443436206762685156955302148146828023830347665179152814413616908656620810917063263717149951675269513056124645019301578548341648854562365158967335717807866405256984699421351281326205888007151043149999574229694021870165767647445543685370267551174628432215143460142965920122364788640780232296343260272423972848016480345410281116891758225671106666635811593341943831492038795795211960838058996340267411471025818850082318908388230770972350122600956699726553911772081972891774822042496691444581379697801691848946334550873956991744759277171267824488318588302739414407514228724012030344833222058888498375955570842209081000752296474391652510747403387450764099845192085230420571158937785679744324507966651032364906246591070146026358996317096442451650013560286594823810682877673211984551997681159589641913287090017877838255931202582310318625559255511376123982979343245948658561906409727916149581987890678934497727070585157774396650498254213491096962083372713173573727231360098198693880590424131267767629761769726103002896260012709990655397531721908306051771063039501753232770862707271742721171151390534379520398509364822937389309176288753593276957094812597641306061173815749615359626896504745538657611045425092379071291037755744194631053382631115149418135325243683698690181753609880178636308370752383697149576526399415269214560087218714950685771278790025166982240195202481376725668161516998500305687121159120748655858014855392101159174709227101539917797016584949592501685693863838198912689948303432463236533573152545542400285277829508075299891635229645027502245609541316566871728605946771365315852774087303494560156024686124699968085259085972876324649481651080871833693917102015744783493701649325992062590312246440526753935276845996107373251852813743700398564762195558975081709404123980629429673225854475007160472193652987066340858919612548362406007924848437207504012000306609756059027302192879955662736809038780105980676016563617273331073557324635509856358322036991527306862636131790595530378231187508059518070761351199787140483779737070174157938572789805397308155903355374303576717298097394353539708699759407745703599312069807136534115319316357318694756251843859886404768591659052334493208635080676235074586532969517310880833680440647603150280389652922145622448595940052989454731010689000297997096602429102739511998286107613374438070866879837194518347935136964735517878267995430795963040862913187264146230013321700702409301287828155684280773114402497993851690378945823802182073028919382027322103208165171389586989882085424222523100983949272733835537282982965760525783751595271479782577242409859854048951640824247399686359933530597841762236454591830904715589682149714333038692944887568940054167245338492515379088982418179190797653287246814353894596926459148104600224993438350278060594314421639153517809343096702542469321824587422838273743202402248491901363708557875701862633415614880768108145780784623915493052142233142546456672711149765189753544787409765497999145928928528163777008696307834881014712003825774007654178006626485667863649485930235282766603661842451117018195740590423656754656768082009213475557326731683349791996166781734913437787861026115056121982236458422501553464786149723437450945376327405460094685134158334329581874348116007262943728513513267723458831743509091349462681548008555145041669008908661498880514308125933613483851568924816524982294269982042489033931952739660282695485483292267755889658645914935888479311875047738147805639655368748353908915658136305601762447555591290326184901463958813752598981742732873768869883344371745644654721538937561169389535718127942606023251626516110840459948148614279692671259655301469321549037317153793285207950702958835248754979418444982324963648339759024853565135991201720762990814498462135938915761558502567899622306500670502606139380384477638121830466388783565196710698492292714861058825343531891231325497460615895230984892603933292428394788552466829623845359110585241649091543394069540828859013577479725223393005348195734766026675063036196140595084184105978033860744532916831978004644379858966463261203271616075169300535775279239350530179018069048683784463678145543338770432978696234294232961753559198941314237916902827594768065644498647021043105260924358110225168669759571506951674233795474114753596684759782481046334014408083424109805024777100517625900829140417616847555498760631793438759318559357734896737596786334653757716565500855320092546146381907235921314593925194900162310410288390079215270593208435570639567359527536642502373647661087558042226122308229495497922524595990112778542351015580969646316470695282762395026296490985626077441178653654442521376702447952858875019372624114475702915012078735631204584691342194074481010592858040025931957577797485757821205387096506029717814086459633680660466527966973660560573826048749842356020752085560440533236277596095219602688510149081514508144377158622158130365502906174606765002729212599592593033373320034365916231075561016082678139742442324508595566363730802454799476713927566699807446762590162366419343878664734651918349689140466318870065783658906157052198447862530126598045241134804974422066377123205987662857849037363201736566868449255696719031971887059451582915873976886770912102039625485891396406990981516854747264503823510134669413322546977481114700102363619842390841317859558099955354903411113006877869050808740068620905972895012986521492170221008060320085269660320898697855854790275633137250035333310010234945892922385023174253492494061381952718084596726646878044236796470392623802104851244813370501593985822096977835270098629641158299394808680266505053381681657189010012653204352026587932171173831925359634990138781460012766947892715504900898112306574013515508498576099222085430023315782292406028778808119481558713299346776919880621555310153926145587966020948832837838436847020526545495080117134227431499299228361333939119930272082782276628729096002494120971787037296470857105670807704821641528260452314849815626815274039105937595205982971461646326078665555173751657895434214256461373135189593763393651818884983362916122648936972195862341943624641200382026147929216001202212298020790466303546704179868572397914664813740458165670491254274745056978078486449709269773862002368767153979798925342995825171596056320811172015625474877238950158763936508116594458098916885761817839536614898894917469107308374191059522744043226532882530296218602881083249933669543499923129919054772811973579172148563528157212928512449455483322326053538998844480809125450047418232317380480557191889126762935560055063707844325680028888331808637879634960571644178213668555961502520428267213211809704019350665033093101792181711169382853954843492558343761319948209202624033418747920778735215946728059777822787830359995668206188262056436748725783520106957362438424702628112008374535317456771283941483571900915473887377060172008133305717282287541296603486295497368828646780067078528494378454799521599532432001870752454049605531353485179583356417702723117712419546529055888700835950664962063745750664987308546455557799277683393654633358663369113973992032239041494386938698951656966962950101314683044322227085205882617349113269144958718705956647697872688164045854606716626914876141926212645902823656117038166920602551948712466307213906975648647208875762164411644541759456537018007851863329810765790165610542956651067413192377320662743297506790053521692678505612706606856067460256930034900912279041375997341320837588045328948358449618662653856580859986484055073776255874340821990209848826630601248029221301123835482844736258489903190642821625943058408697857161630350945121750516425439134505764995686534542679278264822193230743633080550366392968005526911720128618447566376928070773739670267707825050267140682900990791720753033650961829880598757791310080230527847771722685751386176652186229192081270292462255982967144111036765586575174142912007431076072096505580175792123809300989463920535725019326787668049972907608083142633465792757628412113113337416307629859821424989966736555262895981982024888142868545231259939433432588900803422079762436386198996343105401042406248355572311967931992147958545237207442081916858804331480319026558573402348729786213696322524738792430301732690407148650500333543930215620169898434302929629596452523705198741235218248477507549796119239071414335180053094308581557441460251958160037705114163907304106400973866441333006413691945466376507864662595498568956575742341667188289492383845247977884343145986109045745474019425322343661647100363734699735784519281446452681087870237565962066421597928693648212684366094619269273204911280241030233440105344437696631266835160410914570792182492888368118970135352464023692130611462149125992142029912612551832687476661942030861495607093727447088091139940696685239390379098113528702186880437804864130359549992857989218421365480628864162843750484834696550620294285497603985511450635111020865924456748161257215948128668586833330381589994997115217911929105571406600923403827628934798608710798763260258964169871015089827151382010635087757482292022899690592848327244375936276951609419824378440851299885894272890796759195333943573172061169602776028970374025130491821289662288389993482029307873744686396967730464958901965475279183458941665767520632540889241276139365421590652935873092716350023037437848866224717951611573611848889285912128912858958044530388707364586763451085303621495170873774714858607526040077601970700859416140584999703812113170362964987973837112245201053998873989017910120519821682953265249342568856404344108145351710271067248176978620258463601126498196086511114656644900922375839521288265280396323521737588268577324058266044178970029079859772696970837842444568193452409195954622280745230607909634533441861125554006353412006814547182153619417050829945890337170379516422870059691580452972314345524000292488019018315614331730648760355833677642617591598030659883485746536742623330542128587173838653469795991536521729438737058538376349935513167126710535881662878214724919810231898236234716673707386747378454964379839754172958667427992374749325484381248746356861281282363650432311588761477303061325738775809709298248613144602623028994557391476997346037373975097754610931161548139369129641528958509407190895144188413789066925559471408202152945905872835655300003823478478540186264173154918532748167620222678900496006828087937552738395426032442370125854203936610287887563862708739717203748802156863974704039921428809971395832078317642037120827341489880230005846453150716554065769355534904805213599619988282186285235887295939153530370932766504864081283518700457670856615463984973968614851662894630495577341319420631315929350996660365105926547229482370754073659457821805922783865676404697811517920077437902375635737327517392633486423612123388962456433803736619397893695359088377686661701698082305691775026892809568349980585575043222379403811682383709981131606590504900195991840344491435780607166929066757288091460760350939874971848445608745899070326349295608643290836526342201154213440561124709808422112354060423778086898194732885672663945021971146321844513204523577765708313086616452215643128837141545732424307661066754151132043515382918374574039620969672211243090936852073793286588691690176255659586053110037266820122933971352672071142530370778614732487800237786620719228866290412880714665607414310674811361626974266234476961518372654313491936632426827763624809954760516469599870718102791373625217778931394437250395608007655883756290532598478938727350511461485252857269726775979894015153955251998925133631616142854086803371837462945605932765273751517912416358123643390117259190228247134484222907098203860113391800610506372999903625421319859130423132795966102190953059406259458859190827225905536847344151413644556582041600562776014456428359452638116473389347742400426988337932558755949216114388359692782662361035632253744652023336135225363602187890289155729734546904440796839543138453657058003055531596554183914714314368328273969116540629642718421350482131390437867658518088914487521459482470887271041755754074005803390893498120175436158036209402946009943862259239100933728918013699090419067022479541052366043114483338845565673763723263184361676823506432600158048459630111090620709217897612551628842686953756424200146787785419175131087236224962793363710268683776836475385910859470303630749123340793895471693396273942336047610659027677344713500221659920261029812449242269036808324228861681841713210454432931208321324101665202636150761485682776753727552833337211687714236227492092683440717611793264080720709631388580015302704770228537319035103407694091141674843064539377786666905657757412006715252973545885257870121885756025372181992001552726936004550554407216298342425051958967805140913210884637592269854263995281052249625240822229948132992403968457571472165164045369086757179428752785626211576314459084381476624780703802251355499177419115146068265556905712483218698252250679861186912439229761830250483929933492705101912228384555157906491772730563390957500866840345345692607621761402568430416705017724268209054881726810161383628706393675916230892997162221055621727833717505756801783302009235299907414588326369519061482000535268843056544233622925825773434386412231442018800309587169792037913753449890639533541633255945845745198141428900170154378308269533943999394786225687271574447965783213409947386800786519410010359022551200927854479194712603098655425118714793073602520631310597850324538072522673051704020394888510145055640905713987346931016856695829229808183008168061744260064884933953568798461028055549960610479538443248376285287858454889590845446585074647660247022959920326249116960880633629429924943849263260408415334157983224565421319982770116405094973700566410974177672726804314859759561046380839090963552537650404287929964287423173100426725669045902650759121426896946662340828486717850368421932559745028036063155823090749346264168422660743873926319367653023377761587059422253079796602064317371951217091520110207287211383525314054234814355878904622704278913705331609937383331510030170796215905873624660110411675881100443714874145646706477285366732873622176951451627550103450941759107828487337422842150528657757795773554086045523404832076433718554653583644534281064993282158390661326938532773824075852901722055896017439560491066960995764843451147992158821385993533152985500259695790040224754697211288746829316634381134765293978294066162594454032474834473540674195559973136493263025305233690076123522048459815209155257432897532479946695284546485662359859511430349070622901256920725472160476952659203275462400324021299968040352782099597225881457456523668076035209475593973984299172652502470099022060605333801130671458733978676808749704170362910507340072202658486527258002800482227404875722239283056643801452243216329978413381315438618288066694563671953167352804472396517125448814756684706368765510474442560638710037533723172175671748410121860321326164715968738309808679429547269260529573561212072359038423949287978122458078504881019127201672628590368078317415096701588717674472165730192106598238462121372101508850873912646021929802752057480303093830645758173301134256937000914013635749059975681975209348638673280422803195384515321362188914034083456610843669509467421069519771418562019923755385812205845252868876082132402886924246025249016501778190094869882172296891140286041619887886101730956135215413432344889719068300019804996392213989295206933360403443135223933369999663519845114757577277468275951771162478311458058726813167392983826387357092785982751916873984790522350908964588909405582289892457314438929132875719064443432417861443484073894401351264470790120633496124162524134700231003997381672226663467209412226579215695084241816451275258884451358544843399538855656063186388541933832024373709374953550366039447541036921540115610919530614953503793381656406478411495068064579303387597294106732581600841823015058541049405550647897734450392687926561371612912055510071422290513837237571056748066192457042564637067586214585209425616729302198969721537217580183469558073665416914210361869670939218467727134879127474636034190945623362373499390996823942331908358648417904560705192032096017848115514495746552539901711574805703988667101833525692594664756281195317234993896408524276579449172101627719400834010651275517751027803100317709441253172778572845317659363635861708608347101120908524861481314770859884680633298470575224054770322870492896782044901360508501385604534624211600751409807753859298491564738910320942364217861606233045097059341664128835013826507142247742003721547247937003860144275188529544944685836915001067277916088590069470936142289633296611525246225192136156191034207617430445271033353206685082384065176448165728986104660126556110717647037080155925585094676341747059035233923929710304091947147561919011868567556322992207458888519677820809132834474889552647553841901000363120103213738624461766652404073680187172835629984607566674340323930745327387229049683262470326511608313746711328440666558297716873188954266770946409817226241112924020567583442169606932015833937881427156012030131521980584383906086532422313352185679809253568530601150199247707373292081787732835848184600741433247212702387608175461233352211149529810895626943011224710899107395166726238054500887694000861580578483815917171807246159767673381894325380686798866815301980490598593660160882633198338495526719465758528014266365289463239447895663104778488866181036475101494671933365194371161055903928363639670359548980514165724865823059343248706723519282153186913541525391372891407218810657953211990836847564380069188660096879788475162804023934753681189457511738735455217916211926495530714908979322514539280830338426316198892057590703554952808357491561168179631798026428115555021403355546399290141029018094465018995556830486990966543926184925077141577725404193164446468346495021378898712633243903317358974714076944997553586437037873624874573430310818499605611138788952715130627197194278707802964001559347102648736490242117716110624311336593862919388439734078278020571233807033083948449213293326175113455937527236455208075278001652749346905513749249520457824031733853975088652911238598132205375142808925175541560523225140433358318706063980242448568999775900760852756857440960343244766002303016667664964236138258174693534859318813962775334132487315126607592596757927550032301850907854001231606314763394996262757410361345927298061114432379164567547436131220283824711839803591576528283922720031365976553525351606718108182648502250606527868636121670272434348123000286688646623635991855162149438770911013410390568810985209821316130136824432364113841663623765809848015561472908306224702259634587153579450459183250845557261389812210117165998032313012955532316204353016589854420536099020721017089722766309684785206608603012033494227336011133258157964026602709998774731119067538433970415321815479702517197955873568835879825520452592482739240359457258391831323710593098776804711765491060216312966234410796843658633585927140653106836935744295556499409822658194733210170031096454271488134555255897950635278552157459099468050735389941147081213541330277939889364914046891057455078888111299793923860733021014869093004828745716146325755562370395037554998351181662346033927058962062790107384689001487154380501199207099775009724173047193827570848281208482760354324380623870267680283629604468199265058595603282801788011761192907981257829602415691055755606612263521645231226693623485377588930657219295136050891558206457239448556793133355263160607677569221427009595851015047600798587966305936065012651522718027347793424465503610730842197883651225466284374987611367309854485547031864084851292850743249057781681603533927257701642001031771893300163225297818972657125804942257118175357430411707623061305923718439562272301201025055614392848968676962510449611882117738605823786031928097191803827165251988614071148497870438816426235865788867696496860913849199817423609104223622125162923830346956491563888963046778309343599107665507972613972971876251697711344718426911079497036479742164880442999371537149959314765604195824489148424149303241646349813248676149989444941395614216446637901799901221479808870811969224833402626802777399263376365089581706993417286161521319078472096224992714742685037474749324465014293645990263762632718618369883773408081644988842851670626172594506849681777095049307588948589692330920858733193743580145824349821381158408109746769942814733636711146303053552224134645093657508751159862534209881974378125014270884588414610637673685879128338960610981180598315329172125123027441874898557030729222454896127766666773242481289150794024117723842253742742023301113190026856775832867514641428425319406421108209372335800794856466105229016049811023619403734300173077340968106692606424099832354022394504262633721650337492337547107432167790319663602113555573353185919155525823214526720382977959335161067495305277038279181731968024038392048156643543748983405306746373779919246732495308968515938762947905011585947229614423646012984446856332637412741298379126200812561702371979659141990927112411915911875050094220206925241684189961841351404467465023719037667339488322315930879841153780137432240502749117861859224207032715713845264476243644247507297156256293198614412207490902179590434060304885053850974016924648078535203247119158715070413410933276396834734619506423444665223745608681332631984560089143430795161048712813898780850514846569350323280773596493752422161462898498177080482844128122130329340551702593827868186666719617018288423884357305089136974525017831295558685504320233386191538250268201476390115707122464792086734361742374127921035642865204364408356782263779969297593753449453117969530292359818229046565508219947442939288958638563259045689118366175020275439590341322656726786526904633148254472025031082658883060684489008752527077099530815917650110010408718882480057808558035246775329451824447757779672462376807682473517253516636241978615725421463792559971351303577110395477044036462819785628495708213397351026111876834976288140679104161138469725927836816143453676323614805338449287463731451512655034229858192415094375789306610332093477256556052740933283964267928763359390705669058208456699615119992963018245411927473223002657041424541060263128459957034192701231570314745194899825118310935751027553104993822462647618980294909746731211227643053727546943818836864060015955351629790820278107978325105612086598823069828115590647767604027961640533496565385749140347683624603138639334606765529726476617952413670759909344876931424890807460009652322897277926827688876599089362298634607805287650346363438851788822257128167012587771895324517108707579100288120045323085186485835056211476734195041859512175345611236804270598525134975261533853790624641326546134948445480529501790808127854645929294890005911448540761891730883522983538198135782146008274194582971477284377488591213029531515143194880630737234393846289408081209819387628081354424485833163463699568802322518305465228444650778167510355150785146617391905000692110624991607270942680969866015490064405091211612987806149454538083666425104342569528639597584112640892226763787674592213067440227132760452896396641729447941087406818247652200704620191787312627904962918193085011651891739850022150845901252362599573447040876431245077107143375645834190247592604051496909425051964078631403009120541957942327871285492884312118328142206480472714778023502404854412910734218333099948522125306482114996780676701466467621893643718457775532097767810188644704167569004619564288635632389006260467714786848759640422856308720551148055976118955821780689657298986032744667368292070292495409363067411090021345690938969393525360328785696861041811966595104951052398127083099979131402332694851429538697252731945664484243655501155752644892934209776562283091002675733457806629738592585705578922473362067201363902244596622775284946333344171448085583398073814413136508032095138392629408633277312002857578824171555821244888988832406371529627697364922965008777379959302957784711622976711695835774375189882916537081883765501733029296891290028586027548260247537151185882959389443887578336971110823574802098477819210539269780585516373024394029370710260685348021129761351588487259979904604466634610966141558646061434611617067145021681621383528989106168723868009419386898713107968400415732446369804418550602577755389544980473006379436250991820568939714189973641017518945218542974254831306444737172606954555143102609458142774758992332797837589774814417353802921678671950000275571841493180805329407535809771140249772423239161589587180532999169594221976830905207891636353698920144082824407582318014357457293124172522073862176984894045081025466229596113968338340539903265625789718638186862093948780839519542374654391755974802851913609540376942589514785963891968893935948888954411880922254250638924602466223550418973443011241821806732709203217963517152699666704257928122758886579050549701830173233370327329850668294938009589637987206799315738314410581996676851002925249262294243644122529744611037129743550720259372562757583375188513590494262814627461945731898307369224678764106015811714065154503166703278207122981307460705279269072481612177428095896449328357458583388842262406712646562201671988434201450899476941925323681463560578706569281972781624543277853373968970127640829603310457185769925403377507517958849824361954986524747734720472016510927227657967744949219384385024776495345500677006412230025371868435539343844335835257345546275519299475375816847039810738908576384063664363728042755357258549759246786598755817949021898998085225847191460265110370990197364754316600605643771807917352724326244439426462192090303123689484133983222976118325778083554097987864823503234175618932946602118054621689852548800988302041410096001919302139657183746441497654455549113014342075308095291247130564579198573959965066233038168330951783892308664691905904306983744109788872847864782475119713393829782458713083622936761254197497552278874251491881114699475894704354281840352703270372625942408907137028957302522380503807761694830954944539608315939324110618360796321559743462921092133451923543138805553446216343262543950274116257896114596819608071173989096825695900167640442831723189325107506507055255188182656367359991861269301628966425425591566256372116501649078409645166855576933263423512805592330723425273648339029577396126536623967864910565368920272878985179004047606644244894009224462043139583653273764886183013213549714282894077312729999648005998618977455680650661727942713548791986683656278492131607728093558921794686600075327943253829544997122215089658954510442210778609262987748085390314724377152571838821956609592067723735055412019164523209093637120890611873650867798445552076521091207221326839343124875015462816276939599582247189391787578805164929539202410638096232998378218012951851177125483033591268462417800152527586432878632052722079125570634169873299650390919926280508244343799657102291488336483906702005956305189895825982899337310461035664425930191463905210146978984593603531747900116862265392449133014150047294318239393322905678988636144486352475365243373042465432778739584367883018714555105986609795701605004401570225884284010266900158246383769517934946970229886999837138405496723843391025908627675012986483358465783754657573716352768442538930535391246028288696595788020651514849188393150641371910275189001469481183509374446878238124840210602581071874786625453374971998338997449749843316203959174497553258199383908213608089604496748005174412085680399474800989194603000163628394702902357467276690151098679313508234802126175713158156947869912965727402531805366565668486112749637731981631965250114708378151970523950276506337444759244028748558933069790925140730178285834558287530554117135566457920264168247714498386311497849658385176285796407675722936072497252834952496966965753700032185169841143256583569740548619354050316153927894588989223655038625121225371789122266985157192772811791529090312516272780363831123131529227575208996011555360106680600217893814513123915590800009115352783122788843061042360357939630940148340130733788828642584534739524585076530877975764343940620308332344635576335177530019057180342798321357296810930151904898271982530751874863247857005388702781506399560306583292760405117336580226891465158103768031772341680389298162583445009159169222247462203860304149475313070712198517217291879310813632180539337362391645777044920501831097491665082707309049206087734542268403944971513262278041895051487577791041741404494911641206373150839243910167898693882424763898369383006782194736259984183466001266044943693967243491793704658290499213752158757031602089811660057156817847546011393700503279843742939127667853988513488702827684671878943938318035409494525176846047946211762611780743127620308632089154497906169947903486801998938166841271746558292922038729303512665550235443731395763967347668293653090766351086913670361066150622772172449556587684478605365009259879729971361326928103573289135959670801024214228844984469757356047978112669759132592185816291536744161825399497584397049362143733484902826032771160907958470875629446574262223668360142632709342717590259789921144052523946802753903049138045068241209268838510767118309049435831225640004241897557917867684923774874600595307167569989269998400957520655369054289706312803253340035000705411235225512358526277998764816248448098421584927320786593216466220353970556412382196662862684312579721034619621340378852508746575261632103394820764627076317761803679328150296718407895749003433275313395704461525417268808089603177267077520480845396386860358302796518273292106967894492538994894548042624658746565622353997626879417735950763433344519629511789276829570149293192995511988989500061216813262793841093487970673787642926598854440510385883103506496775547591812182504026906849242051791555739050758093398652802206301538777017053529884510645783460856430856360361260216035153469382894774843730426166790273800905418794254330531145530460167017103952667418038629178368302990437781438969111229456535848552625568097482734952153231245858139818173505143346033394891681860826487219642746558019455611671505204754143888485988135586734532272500585953271267491077009678096116079330519829075647891424603895156340295717023612276236753186060508288707697807807197653517116082213444345166602386322134796617366106887929970062342108765299883433414181030609544306765173374299945285117636688530721674818787524679578243877714396595587601917983220752237555252546187182928877247627518749198460186124990849412641026491041676724306404572599254271275588095432120126845505179719205581393451261624541095570436694502552020796188373277233663999551810409404263794833323543735615470678214053458529862142981881185098944824307395305561262642109764432081638676274724512517152905319295510034865023532324432213075415946566926277836514920054296015573192589979987304482803966204881091550772417425752890778321647518667770973897905583009659372876316267151821643286327431114911230077550448463488558365895128818679236107788312580431495836837221355745607837852390438888850013069462766662841127760365953108045626376106121624820013041914692442829878654341127990396737448842235910173732777025375066736681759356409060545349880106899320648406334662424402111871612007871005444755712036678287650297161688187358022892966133920133688268644008689339537971630955283771170173150318061636596908954795251980039765461471608992354553125701848841591318768150012011921526980297503965428337321878289741188725012849699650347071200574583424189910990386163662737702021911800050212668205949793090551289605801813416765538760365508988516879328372638993042575068453552986590747560043905012388008924775408916424409000710450821660865049907407123076344674104365414714119745295938415109073810803543124700160820614129286047190632292916795262138600399654062853955483071461381873419062926380523445491172417961706823605712935082756050348512466212207387651863330204233577527993268083984745820048911730772347392768634675945258318777846774185264599773786052354995420306696487162690203733948778661402685955188576807635261484637287953638605116309735227913926584864436564860263831829258090293193975237921048273165909289587577994429883997530852057718349482853881497429050288842552907046314731769153136188267904154303631279229357458960183517036749930010231248413568825532636726207522714734363927205412454820590788003604364286280548611721102119648270148918362444923360883317406563656466108946582295119611127521651286866464724050033656399222620593637897391601983353072212185407164211350613366461630817895390571611012148146417795786052299787297378962033890761556447842424671767117469072010330477070379086477866705188211866266006664066966870436403452870039338295491853380736592991749922729739107461899994823911027807460441460093103540493166858748270077166097773936176086251869485685688756486790099230374022801933599409802077629043592246131606630319073825856649590670453793939976478831534517381494417548310335631857935379912644440562671807409251657223170898682370473501289172670058475005144552100450959484086441373372444938884710616158005347297059071054090672812129723983498703057215111614876656960934193177450179435278356822328970285210188714901948472847416193938071069483594558504828423569231288029413254427809090981656114353350383368862481417909767592142040889816702047357543348153426124682706989730440530490660445593285386828671228082856834675081173966712328002744812888371565586279823303901772272363508899333082242211266315159461367943971098051789634514628725431303799416858128697488414085045898945044887212728475998097458267985626666947913286058749814134777484553081605453783572368173996057402961368185008695876208335201142177294526941054743641741873106315156802914000117851090985781139756667028561377143759928781478561243760039558868858882684643852447458709707183293802014075064019782048630914486222401467378669901997480020930274820014960968457303494953101990963473539296062596341679414462033437519579221901575238126915569799803536300835686216797349080493223168003901646187744238811250184788348532155888857780429019920720379922239443789807230801865889527037033013906262665735769802081698453728193642723942382520377418625695302093673876675111935386737196022356989540218713557235460713895718491955485098982015537459473632440215298130791199506686260527018004093635480129327932103694244666248811680449909839577185478032405204507109763285844879335195429655205397459094280386380538301149199883708301133219904624090967766414712068739067267745184316039526293845170243534951506062843418924280688221253007266338346401892418231276304657184423473762503699935586632811845951529899859834551630976582948068528567792223061631159657983074549270638213108982220556440644340942662968645917019435099241569756141291936248777200018435919776262523067591816763661721256511936460949214740268555452541497958244764686834567149726434059548246668001791865092545112795541955824802703386294595968099888379529753600940308698965075775012449279467514295604589042261962412491446778975730951897860445000184262579799381325237218283198367193770787462061743309843546251417804886393155575514895553643228645074905529399985890552812552474629480741063775387819920911626489084386736902514186291418389704870361861622664830590865862125813561858266961975435988169634251796439260463593338895474414033524376411906727621032879251704610700681948797615462832011059526973623044273874992630729714545389423024988214853343605099159475109392484145354001683530912962121762739676211407734456324740925804700388292014543179766713670851898182282858660855545941654580450231908881207828868329658234742037761363562978284221892496776587708217158970481491433423225243122272387314977518503331163344257039241793802313792507999300236363572439870015337731073654236360800142432102947400734498312606913338153890784729277060322723326520775465025174419742788768554282049762452100621555705590676991015752624544745066686273123388710953578849579658083446023647345212374134486903649801821503111947086998384423342196994692288035170381776402871536884852041034114497678787377837270842831498052388347196300689280819975291968163761736127625617005620271171084642992754924596582759683113694956137177846338067182567138227608526212560245510956935296301877119454272775906553867782400863729832073263972255541960840716634710498996583573499799629352681694744228056977243064723232153655876081861968899552970145376962414140016878492286989786994363917737400988380832498666060503431320053136486126825325444680240030180995832196551154620504890887547677341279377202671821966036925872930873790661696314736992281146740438050176181086311341228629215779586079790571414490707384504654267511558903412043459768180610411077930730359617463731270572482434404593127066069876154910925588636310088828664832273178789451633285550682987003835190353549373383760471290264902222238680679600390013355410420752800495693311048613817167495488955781705998532539758418230620973861586243195948499445448146022442751419606492711014770972080357923783370914344427124954180467893614518124781354104464928244731348938444057480568180354478556801677481294738206925514977551808345332747133397905481812942352718358056402830943737160138847326883786794569596012626865522632671165535714056590797757729176718661754709975189288828727069202220441178909232027500796722083841460704445527154555860930747786823428998020432109329855434169840332484342326958756766025586234914555607808147987684099631708616203640621220107680672596979859109967399679885396948033481567044120785494308694259184170939249624312623073129625614712945577316277978662287941752521900753691849291564561276152375618513819631150617488702013767746153996825995459088629580851259676015983558643072824483878161613348870673553068909668438656775597878689866676654413677284803811319097731819882700871138326044478567904017484159557649048266751685346503152099585274243644701598582824596681409663278965979970092237699907350024683847148272313050674137066744069794515460713787060008190557966826293628996970039256412231172661899293503590471493724331204357980104964163914731567159413345818687835241687741503785623545183407522154299015979852007023864169142649834843214192176014270280603705586924521543919971477432212284938487211167653112324665826150056028611318721796563062918173120248412590038027763869430722210972926106344988647453018241983191013328663853295376096044447639579240148998682876279531636218778730867785559620102785262035687596155908583924987074752380513071398436234247344182229705989508616824706754525938231143125924002642275462038710576039268867386506332005168128989701750930658102139706833013065630357658556750051222072169125731422512995090613410286901350633917439878606483075027341815665921578900993420564531318446552817809569672467775159564188026441304997509527770707206390188819953354173377017356128197687530009786217003844978018421904361937873388741070982725451770804013659698515933489690939676585915886268691523025894413146217969611940799258190920133111202340914161409441117211012413280743692262509986787922895416716137100051317797851082523981736652000024531799519862941941846653964938284747756472810755295272147220953682560092560336510974273631968498900926141955217355656601433204685239322128449298000816734130806453946409463222407875533625411826722801342483247912049621318243879191640009911735921833824974168540553329135154548204360463451945207548514831091404224438243224650825942392698608456883504666638391886391602983482980474085569099690405210539035644551335348582175323886256516193541028835928091734314468708418922782613199681689224508475038590238399032569491278214269426324419821128268777490452194667582373686789729566835795601297104813568338826418988174421946802034704017150322041782725485759916643962526309093700615628688803800159933559939976917927947562773103400655797982603223189102685717876883735327554022567697156515280411776850142686587458376856600710843754747989900208929887428993268652724832892761784660997154588225205895397934464630177281379458043245375496116130593385853224789444376164654410694934800038272663739942916980526518717457555914024484068520796901415160356282233225835261275478258750159799470101870785862823516814015136394761670587483482054668173870769930351393606634460276946689949811665230165959599667806759293046872105730257621750969322862099085400480198914599402339733942744596344012734906921154721513877479231892396702637058908356813082970014735134639114437164520909302945834594470890720081372450853694857086132357034595672326211801508164688919133592253879315690330004403866874588049865409492432683664867435293324164618529991421245080750196871882753514794955050502444831180432983676485410941741521544934239073325629791169153305455224813631458779815166946411752442016468428269188409600060188261867554377052242104925349484080943007161313903433273241996974881620737857825957045461752405180734287625393485697729449560599948368688348384825215697764096166099260881134415339340313207026795787855898242258208632386684465604124319161280138338007530763230723195699999547412941415083725584657450119005701138937025644074756914657781865020422339761416782796020123368487630361107147904877100842314102734324884828397742466661167622911493753262864884752482662547474627833381199574472218645576405079725668385368619611434973879016658458154275721948101376910455120155334769722061538231208014469211827901920738383791423841110905534200465124343449006925103697725285103942937080313088116393061865376120344640450134900226867990755357416719070636361030043784776444634542740279756147790981635723389883714269783956918401844173121279528976612573696550653138516460134879268064044389622140612967616425478343917232757099261325716566211427670085577876088306274220429399610526629269246817190363945071175213838736611571417420278621201890574883059711091423091628669558680352383295134402180332236180856996826756906847179444686453499103367090371373677922820799691199141213369589286101995204044133785145219326191006489749994454328671239006356664865289493877611631364376329883004046669072134630089634843102908754661290745108441656692922422396813805737180784774934184585160264447347054864730863881213014799231048970837196543154489276555580652671166180195467610881918841919756639279142604861501627818745170132421784107306800813814269079078142768225732622292676444117287721055266196540602513179979586309572957896905717718488476835251019470445324202879127499628877637012766426389551116817871845850218206405055768512830350183348042380941972637295665384042037122931666108104633918519466037952332195930628171330061527732224809017072614165331364132917592218971554727670851472885183181172419169103829872831442795408836494659600471454536265144481764321877748857504181919767092738550131942785370755203233859662773603632975413640574950383873717004556847293642813849503426395829570298385225263027637446738378192683003979032819308019774486461390505611303986599021354954699696898682561146894410992485193646443342744458174491448317558923794391375905185052697458713031169053259619821356758124069844294451870658886598755417145733740286023424333870463877660531965436833045119838313950709706523380996836485359868634528855492855348966328299322656157771742469858493701648182773932418971532261042455152996123584011861619599405056212926881428620254290672484631208413878795453481412530932723088323379950577769694763622397022134114385553356444460283577225125859790644843864259044403912646748932442869267930785697795414114779679505969272440209833188611056952166224976933233852057516125002490013522993913940421912551037574580082544139091820488622155229381102995026702487330934221122579544356638872853384585921161991655510260972396910593022478859021100223180376917284882792571678857079428524839323599608542951930603413978928785359046162794545391349444418129578815527916376060557084288378358070076821099776313284301723382899527022952740984561214121729655587045315734814658057234950172424879410186432707800811302611232647980892116592579687601662782103228643383951306209726138179434699800149555468857440136470436201209125131178462892589483191319461682912167615306333778477400887780475639727592759049961786832569812319357564864156025415670426480476610754181626775181765637570270529127667202154751402721117514614571250780373081581743750105297628409500835450064890599694801914505764626921971829993582181250928493287047079602507927889101018590751743801526980997431052603756404539619581379059284380649721621554776646844972196444774544052960263371473789255095798032904664852348897242385145056377005632587165626137373575046647047655688025883607745532475224578556538229914789796905226524275803628768799925016899615680809270147282305752166092021877564662059174175330238156833156792229876655029837105625582065353169116679477849289149698296792616371679223046803292477907392568808305457132395329315630750992651478261937834399541973527308759211040679482959584241926755310538307758729179127311383087256663528057334307049645671313551307655331592818664021858217250093310137668199536383511613814531163285658282207431026573712411167858144396425544084899216233940115268151833743751427163847781163853672948032938573857625368754462291482662105621996182128416029202316815920161679774763873842276370505237461219497568183869125349664091173491316359748980452399384695300923514777317568188654688260779294155986491573955438074063476332268058568276946808508768746267564830103227175364811520886517553343655644512413050122955955142178606903721217039825031981751009885474508359616611253426745662226950118451838816237936319384823983751420516992526198929237960228498511071581738255530764248307494359586866431106164850140064968749900569311350725451077700698589088336997037382591036757104917105751861997672436808163126805095714118638795246900692926333253011142675321501137593625271256332323198250271936201920735149729311836301123699032169410987167109556180388774732198368269135437631528092693656406526557331416479676380382293103871500705128912828810175876475819750595957040712030034968123381377540078882694544812759552244454849395921136180701976796482215726775532173352860845094938939560916546821281324551691732961578965234831244133111374999243776766129709153073824663038631345608457780299469628585853776233236766166176681189176919152744489400751368626391937619983962257710480567895499436512171136626598417983783441820343054338065159158847130818030706722651266329857234791082536775306594209581112272148003393607263804572662620533077758799491443443868855398966528392234478352039597388258679321089104731078089815562165190826381142770633525422091893608058050063980387940594099610152900403837302030209807982273927042978603774075779505533850809893864311760699814833514838435145823025990212045401439842554341740492117855413155433672167084876357172717706342934707974949135104862003956764271682976851609003401629852428627112266238880025148504197664178081048102183530469777394468409702098669544129881636902948930972800207509180728350747861492866473549956446684411442553759260416263406954696298781902808265595673623209018291085031173323591791436717832590584056682927409608534696657035729640355327200174911659355084194740595943595482718774820449340325999789522971866097364122140551399566073597730632517513111106363828537454261869601112891706750357819672570697445481819339910892717028086956602549435205575417142499010878962109227016076769232599790695469092829455268463785283924704178164019874415963498744732050317434086807358513874309894865972969408863488304709565721611072983579899115242615410114715565542192104927284959707582697927070080669999694070173667000917353294160108278072420928311384615179983544814086615506679857497688622857873598196402668553641539739601814434805615147604349881566285116884981647816546617324433794202651031190485048226881082769867387320188625256959297873117421824442195987909381904977175336529335992545172042073990381835518035244715961016581510388290543050829512365330737453806102869920659287173916802936552505941505529369826258199595132228362963399548836107209900799828982013789336922453550887069559256072720628853343373518009281472676306324657212911855316647094098294384496528312798179916767714081113520771760304973920456811234666878523711084290054245665710772241806909993013304586029309269330987246311152533094943093375894121664981569595218535944139412641902845983041053651811001029493005821967934047731381851237627834459702409004552845862814800239818705703979401246141440441480507978787019593724138764893133267390165775795862597231299515664927418422589863067173039671419665281853585053871462381770979003759685666163233370912629454469212580963975990390909595962059735516083546490432845404104481060042216914248873557217116236182229559434388901634303062914794634463969681201536313745107552297276021460418359170676942434344834991762956099438797692701302734758054793621791238963469428451225586135051517212965100458500784578105584332945186259715793111175150733169657064537923392740967193049970499449099476989430231719182573886274606952698973571362839758911093967177211436695223521758975873225301760732379446617675764052735889422022305665960375675580438641695704027931674405692999237625413470193320733388233208103427448790510963324393224503702989446338658216964040617034114464186732147145430710440377673583815024603303694452507802168994855949021014259629852058626869780803946313684404140526198510570274509755124038819298266251348786044451397417591643186451242281030130932360424474111865527685522041143756762118359880940562248847251749438540320201451556827277409062093000652389629585564579293951997251213097381555200193600647108339830357527605080282430579046096902085585054800175385035341162509626454225736153123962197114732799378737733436009873172726774545866078677490051473627815255603837674402159143275371104538755377668621980457593140823501487397729313517891755274432480933849390708473915661343330042550488239391688519207923951532860972819032436660145421457354345761055322207749925290596775039713476492122206112477507396000225022772233145233070781947027474065821385672191109541363958487221303496554382257391424972349036768653255991222121887322571854965427483341051222790969511664686578117782210760475430530987132397873002291495157828962234475401638677267192234514808990162603883582704263436633857240044470834811918298452539498766126113507778305678364638067739751780557662322830267992527109861133016986086183256808217138967678191612581219187871761730986170421236838154392485676461602810719562639900067279663035785414561973530874267815082043880529863818203849631147472326235786685227211971237887650683133211931696773280549758573262252793674820899510569914475848442881858129185598106156586148947960277829588128437278388974895567573342103872430461196937869200579520253103152446007302075279906483541040681266640655577619110754514690570986856935016141460486343306741460490433414583025166934977113154940419390991002748971239406010364721834429637247615890197398529876569041102448598801997388084897150088887876972331492202557626959811256681341083832292940635953398550606583885123294326341524083313539183901761287542085147087941023604681433328153861938024471956248490673245881489935978050524799529680753273212842364878020308542997829265899955289436148820676792898128761124488503229250926449812478313816888667736295073986305070920825500055881564944192860889667529187611887019673265000601224699176003992943628865626450006576822398860639323497895547035505853447912193177924576918198754768471579926783439506343962300112984243773708900723737421015181383918923198052724479117042909656746943185698835878179143466512080065869644852996473324745988775761377907392244326276876726557901558679453201293151508668907920008411436872444995190770593054200634077839004993243190252321643654979993303353938588405461102407225642516821729150950988276319031600356301946381052234458382603011724220602124310640472650520160136626957823450255866402448126775003638812626071223305331652381569574516345279904050985091794133320552549107293824924586354153669452122771967553479385451158554778857076001013770632967329441721107617086556648925146651375934205051559382260027595437510012958728129494677492590085886194719683942798961010533211454395244058766752450312299010509740585476808247622733083937394859539745406441302298125307180408199432269617568064243190225564441733973798636770656564591569591492297385991872042515515172340353428333321335137819755012699928295180599989297694773520293023908676904710660596522305135503660496671583140671709619822855096392544241414815525562442203479548374765904789859124216405811540856789190497470139558465019162609178971927332536857693469548867974974375743821743509621286706366307196195547858019186561893061397255079398908227452053219847914466592424812710031339323647047399042531262172638958019674215640306891510135697387300857184394736179948992262976003610044362620187363496403990310271159578519569358107026966044965309629335595715458475966533131899955197950376213151945141601133453623782716095311084370217232737901522510143210146465045558801239884679696459538004302984389018589403707886695795464365718355705029716741816626800270787580419579257543792248303293472119248410813565196354144376507830354194387867386550002771348751917260531652504373994565663704031139735297348350827891845701534614555338388631209252200489003756973320965297930891800609729702757596736045934700886085876382943600459930850737898405078999250499968312240838420415085633516949316560710054119414701294352844774978298414219577990494121601582783557487833157300813909146973592077957931391730625646877575517897937384787292455139796176411060952845845901007559651981893006449619492922849818881186306897111094521991665387402182279527194999258416213655868664706429083757166154562080147500122293923280812697176421978916448304007714687086340486988365321591148589227182624019906978802775445856936031541464569730436798436745265930477352696506035678557568428799699275350620295054680321067049335815189914791937293391072412605817710218261742933259932996624251146171951953473504362666080001313791919269849910223591453906211650972720285444919354504201725264811344331126773387255596681067720591365669776372023236518569703715106901567957944663882449609769996714057647473966504640991435563319124210668981190581974200050219343912541835919829056315455805670270632516744152954208598102592798850027275238820223796037289002524805330211506746387775350466607189873652668455231833646969644532232279012904838634042649014795695988951531760184250113827784510320030868243669353308773064321383727741059509922228690523675849199864852096935226939044124123317842376406939697901957993739632502348138834981200306040545089665630001905487817963709323889570061320156568954264432744139889224617778268311782622299113805187702315469214741070840408788151486282770026332611101214986457763051708429079794082894968260246230622738459179043019759487377158759551845938094016394895912013895489885533807434409371358322342920155168134625930700067519153026943695715513967530224075574434949661515129402313401300846479781724799227914204393795534465729796961552172156421125441572555732228311226184173458024943835946009426767867466453004046421699752118585335734815055619795404049467569908972250015614162308114193817780229642161452212859615254816520885363516882252827821484719667982230019099476172021544851547935134753701172221132863493477707545673083711046232540938451893685097866664077167889523962046035221482024254888915860680949324021372113082750658868877197748311784752352955716439488988728864779893140906412574891266770562624047982351706931185629196802082102974026046903965245751902564088807700253540652017963438914129675662597188987884545209498076892054858509970684908618571740597263414758745909010552605785978315589630913837357872589611414106932762888005566023446496967076752850076371497472037412191149117257510881850633183708254125517233546570438422359982347421134005086318515399318331503468316990210942590607689093187803911191930538893032946499479948449580544367885265628913043388077910468624006058005882347089391747041404610993806405862235094327710999501349306178744088949569372865267848519228909893430082755671406470386634999026924767320077395096711038845968480344496495473759731632719324415558749068817588241175919797573265235454830384311343285273819913648010266697477378229653032897822581925620169603679684710612217241028924666622621106873542528071688626940980274944224265464773856500473141954035583848430265190393023781087341903179923200154983855061320457841996082413030753636503525444069504987694391506245733846764734691067889800850683772788644668968279812656160725015378329199180306398248618891178249007472345793438530646044800696139571209019925858827264339670902738969421369583713890719958827338359187940170165310084544028407747331993934436525752054395483182855300296973558186358567776404262277083617830411745797091654727371928597697995277190817806796472363546030810315331581984080889092689547106995878527833808132990837950144049252015379483382237417424796252549171775483758024179682376605197220998945293834045126313543425198370825054766350242859698904723274397851465309048882207789324998584511553367822153085159004828577743159542017320170590878630426252173898176184253582518288724520390044644744581705783902479134719917133483708072273166278801322828482412434699573023248038087734996038533397221503424753328705656527803933615719216714316439342736455484489018250965583454212821155024354652562647465164960450201150579805887760408654170685618474036773821958448837244682766399937595458108377659334519557337725417123294843562624884766249063787750736738045407002361438168410967932298670030229421274862965708974030549794742469287308351323453641617885461848392826695590988794783311426241809299438342213764601429927009854387252264671782568953457536704723505768847822771919146936793771644307429022903555570486969867038069031580132590596917040746402904480896927591013112461657043524802978067187429350480020321969741291386885391814689565075718932798739749169008143693969579440519186384662215999025847510775916802127413411628390241404838456494060637870237100918500379664528680213726967565066326142285143275892089839202766333639685665345652955243739202371667872773287537087786851390828965207183201410771564418858523715786323296189638540980760672175736805262482411808224545266109830073081189092471090524739948635058560683733821809915417621837735864972309525488388778726719591586285011038854577974749382426459880643638346294049697326832421521662754861417718587097441554839019376472517097134058178405723550308814975295385847611997710730064852210623393993521434449973017572963318273227828371799397895446058467107994286289918728250734235060158782020147712567245720211504105739033717680244355550190291843337867802081610219007167962623213407767526702494804783667225124734767998946487101487412626763796279324990765971941712617512848960420119447580062718090149343944955455565542461710770042014024117682583059724122587898019744376526498143104835570637540422321495041960949473361256281398105215448263690858188326661029718856724463121241116980396007912781722721694637042092179396862286872862945171075972684400164782279235105017557730651244661805784856558495599861422441630020077959257484912549431776276785534681095823816084083541215160805144827335276092535883228546729257634186586354303949653908097808453367193130207662782719091856562642699387853248924626925229139366644528899871123287288277070594265200503328642267311747968044196594541944804590127262372107469507492884752599600335846958415463464167088982678821933617407271907639939994455044604739773715909735308687792613821103751206389514368412846354801989288042435124000139851861633067946354444002483015330706913693990070140133421180558492303981654700715669438773283809716935563157526574894088272980566846992755654677961235166537507034197581287529803085802737723417557575643861783534271521205449872177976501113974247607262421971424906574414682329438354903329031099046419087374082156293880444529505750485754514571643119759016071399495701010485773666562567408766457791688421124137352556500666158002743916793495101783014925437067441661262231948482204407954475735782181464355650660651512695713180130544482157135368557047537713640498401036119732187312397675306555480187557556836728474734104926214173582116681322059383591343294016658792383293820159313245456538413804352130125105545447725750430170408617270677018458662404822100229947758381037718554805223227690872150697189270502785602406075778922608387466159196971182294128111833889128424238330151187826876869727293916294439097431141765167996387667872593146227029277184883482016091625377376406523107229970077195869856754241814040398846704333788471538323891077503619949167235989712967184148641972569694130313513703985898329603619316941193399324157487492451110962341941776959769464136592212664444645640759131166347766257799067229169816049187661077024489708373188431664060336228564286370972515184742361087122682730023045071102351141926534553758055413030407190899843216079068186138156356784904936418199573417461682753856220964545920951541999036062104649065283933469698343535819231416782369381707064542101655330594174882108394270077980004899742158827268887602973170726951987922025111012314239584722265298455323057477093757080362675140966915135379230212412784892626025582701568462154122266395003777440833605904234645962346204617913751436338862908622374351685186748813077666925489392864080003968796637455601206694593966715577858142387923190678898112979996223995438707098961754060756457717738078397173726571642369887964499284961588153023496367642990518711618845984769458235245429105954297513559040331558660190946991707275583648167134820262293161636927102739434672940687329307079312878690091461724344382619094298633876735069280176193348391123433016843572803381723574191835976007304810241189498588606528003641957740472985001488530508014240519415824872525398489966712174770998454985526036341735946062682892223721095878044721580832410368513471813196719426564398318002246259614573752860327370227487427867130618110979649420240079849004609384651937187197385094793233407569220338563442540598421307299652756081559688282336656734529239971651190968447200906167762615068307143205742610039202189788342089896628286667804315534753251673628815438386633128449971025266859065304997166355559193443023992574782151336290895734021827641837192641250287626122571146145724805764215251115441686959709693942897741422351907794074974671535030075480902138539643723636019481149773873216442585113610705468489675535893785781286924109429851493150262452298017307474315002966065599321235834490830724523949915300810132936677442348302318270290211283209381390328667112130039367734704600040962706672029216306878484306834550180303437152504770773554219413904567134775037843279607840758147548872895819421335931455792349147595613755502347489215431819487948468567502503978339518099764664875220161136857157527979268553383104552785735753733107169179086347974888151880747299759916781167840066004985961245622251139168433923633440383429017027181184170792676464702777292425585059239724077868685427499947106613158575888165565123903003730557519169285925844587923680463744159724381159517600442324293044769994828119607123911661883141284962440837187062091983444626289591089067128260080028779147819896990491796918229620097077407913947659342777056094604778741045087604347139002806777286597588713398043426525925031359777455541558841637695383101445816709410177019932473732916993155566339532492284733395670121159311294641039675386126075987017401749616813031633865416150291204447126310821768067601059106141015672910287896044363068750019328462630580149098416723226211787916340352641013659622468265088946111251191267290909655789316380007171769277086616504189570572581284181982091503014709267870996242409947179614469693994206145344658561799218192184219957438249683277643312179310670866691877907216306830858159284971069114544647072213105628356801935318239995759669125380946550794313075907561434634742344256351521567306923432190026023716532340783225162237568638165835245115630085651764781132189186701927171274958412990571666627353219042977971069148486351830252245097303761742274524889344155219683640990291867182336519231579880150943823899556226527986252744942510499221651077997146733784803713423824184743881934818328326041307298265438465971536119190583324106618568304444815396197108446653149612642780054830481506468766225737534086239667714516599654358151354760152023765336352718942762795582742297289619289043520133295704056048918905893574837428508443161274136576272835890380569452606621488190290468049878715711681441178984559642957400275375148378119600598353455836220358687720773510771091006523591341520289916898036337839213845098349380455876439348748943551372111499079676451640584126030392485977085697938956683291192874045307395748034555582284364762417294722440502493224966179122859886787622983065549413882009941585058973200060729892235223681220810035849263401542510151820326559235227838050727070291654820375911888799013833171786827982921054867638856016128075566875200304166511842430659975769584154819681958708052822758386435375258872043838802516209034353097359840398941319068615492537798195337526783778666940853226961187428148550753771006584096729765295323494597155419635549979703627795440603159454329703274779482166128315000323290970685606690248281115825099645420983588967394937311235275550439292194596633739445331433232238981959722938278445794429949913228608178648088171985285242133923002996244428898151698871351757973802000099807882864537924972313757206169349992277054426932345415743265628846817450197659223228846010353282198990344240157125102655951415248601311354896938967369380293835975736747689600403817198232554509533128260019493142693582674996335707788499960944015449088914582659906428248970091194393813079592743446988603137928227389248912707157605321183962241054781543972883318734176124338590576508329471403069948958555785773837373985022928576454493958648157497791304799200045201113708458233494764322215896691982194492989229055386137541292516395517199833670186926975791469668383114279597440335964911652248997544177276371142534940256627506433876523390524409465838931782572725531056680577238291661687273263635240476520399982894427539934289102775019003473832996314733394990538900348229234085564260911655785607307633737659967010220965603088075239355455691622314199563154562684098166927719516787747604841278928131335476104068484690486926256309389531140674240573905289690721556972766046268194419503555898804898510325131871786159948395147873186704764215369798463318022759318374650472964010800063452761463448227730807097071055703646752656705093979511908136455270384394539195646672012686393514139028308656158213933641698591197654624995886647044532750891671132689050173704182910632443972358767942025899196930700130296386579179168625829045736585429010326962513927154154952637583570410572282743987826133334632762194592364730751427595286908604379999052212619618209048784887467992548424427661916708756709509597281520072577506334442100657866474531919349903393841401288344447088053795826843478772042627119122318502465461245925374947951014544864496280909358289770574708574770820750655364081262986650235784419059253197052762386168166902358747666796572689819129652389732466773628413190251255607200700873428674789909658192586071406255693194976928183940132038071219000944943949457199223085404632487164345638639430282908712058195375858218334876971684227315336476834183924252833140824811715218624121185158912947388061780070028398738063588242680515261126117188508049687787101357370307100821546259673848093752511624149170340470223533054564137974372163692023127283434021961429658729121694078461281418000055078033598901182879224538745995433320195392151662198674831431917583380244632598152956780349292665714991317255760260674096563216075911900589250984294198283691575742161402060938888774367214073945848574117512801487842836914753916279815911981725401091631883667615060086099374845652004772495094709073257090661055306497603851210731032523237978511625829383603655462706358615405409670628269252294088081483778433471505042274375651958501777941477380374965598009002107985220610747899180155729645896623161092361169094106828365725997777038064772864709215492741202865420151354834947877182204560663720211725521056860287113807539431957840457655217981579063661079735701917405864840350559596198016828460117422117767768422074006035245550819703144255450362520910004684082943810415355136092304722686246412050407190148711690535309216498500161226300842048815594068999010591901723731313064294170844431647499414321389112036668993572677990238138838183047791463202767660849599070076816119310172981604171791937137241342890523037949369816509800315797386979507126657301310132144732120871498798849412663853994883723432628287906147318234986050368513437632184064169996026994365729722560572619225249667786487412782520376483766901379481114114702633763660076979002356510683273033555850897000398666603873003692532364128640518996406016614995016265247492606311024713957735428207291308441045546355835466645212238430239450928341255982653503200073169503662705422827414748250438394898697429541725318067609431091409971745862338340030944308112840961451653482625694877939449542643676308354612246115111265764343312381887138000084233772203967506099933702146533471031752358732758194186104202486746258459832834358127259568275421364225903950141013773703203298662817267902541327528864550277793197428568043024132652714287262239497472247501058370927584734766738446710514227828904510329642975171883845130266075688793373566107083268448951315070157316102488974005383814799086550927236052739881916896783446907133185456146501315136355503183187969042298216878457098960480931569468749612436091285958934370012566041245071315847818600166454687712832481766510114784596711280085610795167808771310121796767040776205390429019463066419972227956407777081626565242465667793402198762899342995649144027992308016180610137760299948637302888499547912090523622531422994102236733556710559089822491155429591610339057485169131781818254390023017800282272126540904969765464511074995130670591865261451931239909944157945448910013792781424783812667747052946180663511897830686787127518029778607853363423433978307217581751997290198463128341370055130290918528351380992026707724229556022801956643581001585494424550727298343574535019213668382412559331496628882000468601346012963001211484358652404914782056958950488768796632751150258102932057420490719478098336048094780912567537887938444402107596352420997474926030913546793928832077360088850590634477112199077600664686373513017433018086243705586697858658573521094826634923556104622977277296436263227102365870395616001349019855607222401697826636484364070156916793577416737073719953968657899712663419344739027432686741190723621596625700301104400238670233424465447356861885278837723428212851978122816922984347221594204669948373837591307752719181610015727498226413348714605235230769119719790832925709025080267353940897215170489658795635434206879068020694026195080162753738706426238871988000073867323629133365734997935287488577938901780677131706702784501359365715151925652236753451676267712968880562637096529336822146245938970302421331854418283368838687059498876486624923345542520589450478633651480142022530418123746440491615385851484698889893034576259653242803443851716824945069297751918943012483860526364625864045343792195737383439701575088881586387145566650852117578757806113079522149507716016316184321254509306174101969286412322022002080222688387549390609750218043772393070529438762447931083275608421127423499144202008873176521192698286345593517915413184375488037390580608488079470004248699447183438938779620177452043801710558485506634741809505382822413912546677053901743598117688885456691843893709438517577243078038442665055481070670968910237026450764384726729694546224488958129093641050307514159937970668588340476965410180072156124733653981931150349785853017125137719111134464393227412989391804487993807537133120310832386933174667075994637563620250568660993289683192358584990081368276413382792131531951113767153374678561973584781884871748819728052524385245070039739671302964019753292161765868160796948414004401563412485678193489866126887069324005001964141469071555147591087503986718810451492601136383646884565466276730144661776381097998983072781485615785026264225693005795182547979428228422304423400298030922309056151977674695547710720841268816688489612501283564526171837907366110822356454090999619746204583763959274965982467655535906486007740871892195836892679060719147644349928337071099016569808635351746659013489656417986895767570203879845931416650925490952555642412056781588214026627348391827175062986094261850903750135012667867896261555447169857702636430295295360145196023232093692961566735954286208464850403658510945322846454645834293087748130216919502596350139325928175112671108512391917326046796710823760021574645138191584056958487858248314765666554900507865405986735287189742102501213761746269692808687135424464297643903866943632375784746910664846904576983803647076941756755136723886871457594381216795977652559286706980034747155991971901043674941849957544102966674300005569794358519313925684728751355906832733254408286514806701642245495787519471444279958947698821120602014825157304748051262783987283153168113011356687827431158917185746221027476826314972248228148834591616357982578140906357456932820861127926152321503918648616012328306302917504509686311912124437610465910639291706097523159340982789593755597377243851866795352819345147641854859023170860603948250769376551645834012800121678917542071178335984569840347498958192508735767470052526165591884157970485114357192325296389106978266941481693080637090203917900781279745111648043275149917497646805332192168352956617302101329374041329880800132618350698560101347092704266310102998385144466075283376198811430369062007062719061149018362690207736107573364987106120826149196476605040008000746064075093644654552564274916580682657393822628981326936028261614378964395873255196909626731569778543945675608204482978230271235596288070494367115644303904527967735999555569733290020235254448848936514294585945836464156683790817127683659559420475735150174535776158812960746658093881841741484369563059471028245496907901341248679244884008464757671387281993049655182468004834204396837305028265009993199306228499114727023176305850263615490497734926406252078264633219463004808507714716210781976664212911785906759060354716857117065308523891542108254086815224034800158981607295635782375684368355198336566333373601699192890865556093688874711371402033385859158402462957456550758897022291517127465333788867460544567677088661344279864308348004492396245256294620936720204276430222855541943844659156978082170860194604501941693607168748106576515660243356495471942717038354684605003071824622842770963771253588757239655418749119898588267459617863309478192584744543764920272515502732405171963204748978829504770581025434719900353289449586202408245167280510982856382327540077501834027179824479385749122311973009948028614149027002384907579687580614629259388686210507101030092248093789627395581048209099620233488600413729573270846075506459697469075161550706757113590929188894679291709255325341443990375190392425955638359612138796130338520390559500700288427190631839824126824032064584979879638656636223026790433824819485908914334264880541292499576487723632641626075037263387399153778141415272394698070048291894713469551017052221148049569748914398073384745645055717548930658083801741245549879209680288505294342989680007645676702061850182075336223238231510185173446104636507497217648308259441786755542690528970437126574215493594217259681769536910675577328728209165199464860359716086591138463885959421568157441178608115796362714241085158968514099393658435311644819527942803190732241918771142415493858696019905093740493525866253519764027635330816200326293607555889227472213122050203212815205304800627149486243870024773179844360199369429002490180462199334757638637341792891882182287747434763159854395755562519975173639628165744620971770153729764876995048489641063616624129690414213695790326899498432942990183892573981724613312776928873465274656642040646533217988976967861272426563003620912339359410024650175010946801035955874957516015961754338973808677982863667278044044386269002062262178031774390155236715250064177485974265334336688804730815474249274106285112687078818702051337754376828043216865603386175644345562805461096671687108846211807953269546329231047535370827133888825899044688318936647663998147859419856514188461825565461222979709318632322430158208606221267619666451877448018066012229372665586720671260702525015138063496673470172023802303693632169880668800223212339264629923688925925747995363333164739464539132173945448885421329499982407668920476609797653331485584416093663020830164918513221555414297032795695637588005063968172494516493988316173071902881670691128576227948085530794755698214918689442418588558637519315922823822366645279268732688430781263096651875663419604968982847375216321040726267868636873478119569265928395506958514494482929193384905301037461576306087192461965989668784863275727855874357634901722957662798395695942887425142231397049181642895531179032830891670032375150966469645029039660924419149275275907443636638071584663400525412311911458247248147581234513655473639165313464186082078498976462517090006312055551582268259375226760962568652288532062182687451813669162091618953610572674041208388611249912967507804887897614023596444338301982777527210013892670733022973587419379229650449537309920909013840540865065870616617100083179024528434225311319724581496147258940395210810882398797114171351131159014699357962722861864975941968639398271704947533984972147789252644454641121928050600641384708342472651069107646060118315916338843710818484944394700559986496180590029708051104657899101010404278352384246739257097159205395111999512382829116001489732375675684251766433412877152350906767669371227405638008146477418969903890961171098060255683619630027221345319742822910323014997072224229717405055261194068829009420969909312145340856327256904154655798018387669108113820105760729706711423892553024676585629889710001899855282770909009139193127212049027302370546180437002059137248131752550544541092851290183090797918244481452024047800365709712312653175574292909173151206648464869849657660270406126003825225817071355120462409729293370600882416152906771356658074407686307356481439786519476354522932431092268216648046164319864876335720429589277060682831470073768593145865526901593671918838345748908723069459207151182065338406091830672069095185541793310790583094202842993139845641804822859472799625273123355841150489057525958639769947279717680904131718781320238939109279400392842756903106126077380036294736819180716496998783294524424182243375907251113172511367928276908736989265046727107379045806026421595381469153844682193859764975417613017934466450845606903948906968504619534578938224612758167582647131959952673326130163117161511942253325077183753804640569730372276129657355442817064817819078741299428605983162139517974147975104460477353234325570878354624445086987914636832432147732747545679785759601330684355729265247173456258272152193518255549930443005466300760580031538781980613031740490589241060644726311250472677179618211538454838600088793035624113012190179704482232835667070745951109428397365828741693380704702202104778345473405261307190985323206294731037031494789713859903140150797455161942316823218366883295557400329192133748108929420436878028287630731303023014894751414196045793795812566360398195678517841002150374462830548236014828502771757196516664916993959255319514802950643823456155408574897132853345869338421122211640602467605300094295829240035702569813222588627674117949641832575594790586375813868808257515503139444731165791072871985144950417075187957082449658524155952143119166627260937572374293758407297138398028756603369744030161840822566999674723745944578039089492557117561595248804967604688062857825207324347407604213355912287032996605109131936915785711568434107512549092559357054323622454682247272180619316554949703390018017173655924760945744160205727535997000075294190717368498578346655059394537939025198421318225577772438624415407542448429393571794076044145839981560033784080881967610234122688301006934622224155494671009630013193739398175023664269348288374859405269683182589807842303581344478400857746245959060413289887116621962920655362503440485035863999003390629441746976821497969919858820439674274459589693354085815637283504650361679079268444591493541603755740480089120527386780591884730776869605777027551379309882563960558729105206420734416288189420351456808525901366340930579528469762599665709133065124845159550672446453948492250499973929762238920641884358240556837207499543279008200091120502036535515864318504477679419493419042839536141710864734046386173399823065411419927890467869141531681213656580726883274896472495267437056644703848152221223668863641246688648519882377979927738215176522314646209804376257487331505223252860519922987710053048976973112169512563555645219671919861925001699847124012067790787129536531506426876454138264251032576326435627593683663026052542097424666719568525904797332883019576197232674795140418060042830535585665914160191673669162215960166181625240241546200839909424369802614863540133808187458076078014992932484893371221484273594196548106379059660894580188040950449675067594086890311834365646723190560143272433762098781929627696015285314853053610264742460873421068494131155169144415924068738493101460668161144480319033199907727517681729530840228157771355046247320154997174552959310826212000080321420276706463287927834600516376885247440251314248366457482472203325000523899556509836442169280688291981645436786214069019283126991972015091375980013377689984280550150311145729755459643051984395638231305655397781067434264951176315076139436606747330556372936948260773496071485393646653665047180571452157325524301991094025920555697106869342740145181394398851462311997428245510176610349223971085714010939472673890043698331787181245806121253817338769019769799307632494721321653085709761480812619964805432883962946899972317919013828005601659040230754585972239195805129591980498448707083742204851784745200447904348173947195427644376330372396488807705989677524147982686964082118200979795212441460045498665924341838950858058232674242508118858864016452388113353100009762123702161663032085394752583285688092697006288616631477569015930125529161224177900217046005120399119309845518620633044149962536531687730326203701620472582583836717908416656641820893669913609325596216248532241375397624945958925248255606999632275180946179489887382148820538131967112738588408940642341679642278317489348153768433824515807498860385498428096961155231927231032633208658151420644135435092087991570000283400894546100068268437232134774851475647705257005946748470314407012669296788645417833308695788229336379938513632372237992011609958596433408378737876491606139235322048230757845313268088596438919552864173868734098482507765806900815274591223882614166155275691101559073031446067790725872696531097098783183718127168126507114661183589231130255327973951046657181910430781271214029558367378512995326861219934851596817687106397156573256068727313940210516859013433353628503343206118693072939650541007218537276742479215387008280231994916488039826134451455021933076422864350012340559836432580342408905403298871635483518729393163148249511309475989327546690387262971963394625415847689197485942471452134366126493937214102053751745911517209143195909012974641022381704694236666373252099815965655342454391410552676929113705829522968755326057696652204262292470395162134941603577995707143677940569798269082621677711113781186144269040128530805741337898052334588688841418435140825080242813616096687434067764897968028310853015418355099653688104690489442971974328559593381068394326172269859117041881788576934564233281126350733191594592403986695919208151735593076863335225687842311057114715041495711504684187176770982207921152264190801058455622138889971631969333935039290139386667834162637895686541891304146786781849793184070615529987586045930553127719187516724891298857168620697435284340658576543452268092225137308597802213834314051453887697076045345736775052306036267171161080509399488708577730777414502845498083936904426108928911461358241876309421646531354113617847979408352473661318794065216336300938887188494095451630577594782962963911860317474625406960646948842426539486060591061067193014745090270024658223622194096432810467879558620647075909205262726389361922281685056898012263731180307974956964226454010497935909491061846496651176905104705830097217464944997330316267349697072923595474433771909757025944588724736727420499617381593834099676796242431967308971161548148067942175012837202842843081745724921134365416882448950329727664447576109213497587050727652955773048596231137952497587887044132700211270713516102602946934313640471046577295620338751153957218983463792276163068932113035474398776946411812121326188621224283064063375907981542277674356083396358263655750050274139701478276830125789942783691046570692878019540035509586212777184834556469699616680471233753939916108154767140097776783416057210364658475670801981740809496344402015232039639271860224843264011297647113492187068324983330436271597026481425409675197693944614581676881439312113014757439243651351980640258392522684279619462102622269216129173105353426302889488672283800730044124893259675379177439391751828679435367139069048689212395523981271848597251324141081312214082198901692399119449477570401624287038433459223536576886697847866841286208722595517134895594363649536555297211437930850883293875914931404882080450857484263546784093812900718703192030276209390118863332161327816350499939888911170956744562299903046391459969505295054775484213406496260559378714392193859256168014026821978873135538203532133412487213428144043853352014908876872425673171173716642520888554538751949575811726318751279313230712706602778625047158287577861281111648501256500045722471637030029155581881058030911997411324063861230207514873098593276667058723281465392385340121970458341977908402762157872358995663722660416400433184344458657771440485322223869383811559270288275109983614951196750885810815797667462602458725692886514555862310106305971533101541496429553873807124252355935212585637591672170720114347600676941077516502197899768247068316842634462830552560930127018707332434098520820431461387745088992457486918631324320333077624768005563857256287026411332770355810916473119847322792585417774497620082106573036790319015655275314997611869517223545686897672614135094672405597967449754704455302740840592340440602518606648576930021058929340453252239097363627780058462515634227086510989399847321332631041238202961396363164324542792911508267817665451484776330577675263142866641146465968105531117353244169772341922400431731979906039476415108289653135641108095250944534813844195325155121004452797091575885419519554626915244596703551122640866940888621126914982671499542009798421760198807375897080900904812322532095690304453244795359404973945154992477910007387102110912082554877733199785573953290164766970054792853342875423597127576535966232832552387767556110390881451787675324099766118612102643921970566672347043563745704003929131060027261763300785851637622375578548945045191219691392607892952429808335179498199490047861168562308739487766624906340661251058801225127974931178417414968135083690764252439135648765013428416686717444649767309952691778448164572192782146519809612058351074922989413736932492190865247688958098495901133476705555549229726597513509402641944340593197564323134558757815880755576108252997313257135857815255091925630903935500954272911299364275485425433057760879621078519841370593460579182936377756967635138221525082022669825178792273779765362952644876127351677690253836558560673335480058528123676200771163612860582526346110087305334867750031469619077414527473417095475943087662824997476214193177461978062127143063810764893532191285543064379351631294144035900998494982870834032997219941559435750007190492903032172342246987159894136415588978707032078430049902428521656774516789922300829295251805658901371408482137165221764996193966210556103878590576052531051894278084670583829511837191763414919338083180041120192981008503699746823656017441627942696609011726675552476527835590614922460980152944794445148443049647674349345257383625097217091812622586798029519210804390487292560316455241668744831561437706809300177610246800147932970777711211974292333009825792073312279308120467168409679165461801495084308651161771715242155958589082602415845953039430444113251157227934593767074240309455363900249034101584233513159623226239006916387901592709447738017486527971297065760051810889227566725490023314431384986027327705272218283542191570138096154614137070684536895606453383362625857911853685804982916254994264218383304756029237314331078253710552269817686802488472493898928328705281270032635934946715417078731911363962767874064231186712648794641442924382682851554108409545014811107461405080465563253707989875438199954116622387894851526733331171011151206494239961780573422148484288503219357121204584555109937430271807049926128305290011742686312990306000820325008347432496200813622060915804975804299233837650007488752337632038399649791053067415675187665919116774428783427393276927131643713181222212845242402103073134215723742949629335592370731860304099790626759859322982292852172591346954634683659618051736212851154797127045972673198687603591013496179101225471189533752666512919151275033653666119650045014066876065268382314374211238099645968072572796472305207548157966319979346385847371455280144572016547587214909082727939025718038247137003976500513711674542554414154274458046553384868082610265476899283208346945816647132577011130223480019802862188748375440207197345750766225606385004068504179050418109983190829030309933170191038382495503012537395888034237939771433670742001612551120501782128533147067264455978639004715087359008758805827295857904786626525826138366620958384269655308308657444864321656589168618653130610312587718066538767070821699832324323151514283513142950286116729652928442198514769379089979890584065261967749006919119281399367759986242550527364460199101843341514119380669882226094661255661974719669310441103917002743704231868371440903112232049690830141525173049166722933618891203470037093264511100715599615577768654754395403038052153050497646657912244753839268959937932941097983601847011342100835634043579372875930817097717261146645158903450867519488342931665705875833739220250525117582821661042042874068305973667186243625820328737010558966438327446211881115956352153452494846233268530363672215173578735733336207141046341494197266202418618828714832057251813805077701507181129245763311727409491105954976348872862018857390815442068534889686703049183654264060474505547219604850654257181593653282172454600862364251056192561767057614981472240007289869087153872750271455060808975414161902586904040588132899324786926869788669170155347194726603950833627659670678748234574878040562670973959901876482798576430352581800822706629028204325936556008565661327806271420966722861967835873777753307747929073812454263159809330158371758340306845758794990667753696657892034309606075145655647086730220278914965560648863929835084269589961044499787803094249962213690009442116666187089744089208528827993399906880668717348495334238947489820765655185220183319552221603899285920732361828830117441781878242526993984148539364607740761547392407176709522250353269451701750285569921371284093831950768872094697431781177459278198983530203654725693605215720199375881862720071965217089186604042451414121521914898170832759040505722809848844475776771214536072718555963204965172557931244881371567430009068409142391299889478198964315422372769301159378161217086758714080744333339158206835644797777365073427039812261098523435843675299162835175517660173234076389030855111516646543129495755400995903284355137156923766361850876517206839701843733868471163518476719264986318727086787914020399357187923892869121695652682387769465744957503798481179217775580760440917592974459279852646466438515879579400138138632973789550022844979614400369968717589380012326712035100294498094813482748799158816093503262333721412794061492339563028027121925015153337411405030686124647024665188066944605890103429678714439502271497546115730846855473213213055618756483171992885634724553454483478252749649296880984658015305215375387389751973791406676655132253525042881905160413491082469561409091160791370861370597568919896621252528588492462157225719179776124639038680724303976553570389046889641618464687059339380061117376147477784255958983538123081418289249264252809970268889956417031155647585200272558353940078931427322239865035903078203611149102343814395290612924362252164847665734944633437825929467326671061243995088887181762089296322524238855921263027639256924599199836320235121503968966492507880626577811328846356134646523690266654014915230111885521478097111058627182089747340001818968822527237479156800454732474135990261480149428672390319229755803896932031935316571777744830305032792845261772108108047347385921043547326941121159385001867446603357272595626053076884206765699136905447978484003864239524153906138323967526260766100487435492157577212263123745756921347949218421125037607002169212024243333303893968307930709863202153907190612391809057535241447518625077781261685408433942261384350491082387679436527177039870953416455740679388217038415629933466568778590255050075007933987340954869574930538068397664845648303447738372739525483589988676702115458924239762787916509484500950977789008292084045375269623173862413350650156874426321433772624058223951838113549063534491369950547787917774395990085459567585255007285456721854214070357311897236022626357126602569498982751499603079123864221604815342073609127692092245108245542318341636678957988291939571337941663673936044553134954795841481046116769739794728164991395198320276429593374122574991943004516034390906145938298361308887826780015116177065724890278872061880801038504236328738469098749738723264395941244076562212132835590210803170152237747204363313509540340912187878397093286479793208746398951720029944179876985975803053227438588561597285566424975309850918217386758847544513030137907047946770623352885394281083042223214578679341772750568024923633313766066867433014737318813608219953971850030145982450961146313891735062801905264158329161297806941375346766143037599058198815192346001772681881239538596805431852311278205865804056831141537937961241128253987579540068590806576099890575249653133320432075881052549223393525696649844710118909392089031808610475215181927132809923602804947599820243075446431061755027856854428313200587187043671676371949962030428296584942463950224800890781600039199010713489945620268897401189658026441856164608475222335912681079959684007851693393270398487949624425776374276367884889007863153379153736291909601927668573902420382067557220565948494402933215930766359205878728688284315450479198360511274150283777603298723001334870337481954103613321208428785855276053674747385305366361538197217190100737675419631699838954195673079114786051577682827652103965540086112404633637581526055534605796403341894936060377618481170057583303345765077254597751407608988947042752597928193490027380523895215927759294116294588381356241386400182107590613226475809576242850388762588447729722503634055135912006772156716997817736703257548290008008485342684000891383134437601403273673679162428808654601844193369877648583870705932057537123168146671496111757967682814086602254787738331441211859849396599116416501763073682492204909021270402866165265379729736756003442624568862784690387165482633252083479776826942179725265212136360127396815153687829611453673558519870168380147714240062509788361051727111864280970755061180405584460555333051674112154501229482051863491252567925655997289382783704628599520565532839127168050471651970986689204888845411885428182980270760226799342608015721208648309090839622138904124679538717587362989865365294789209428371021435971149626044718033904299262948049069555172880878514872077423138612642472337400805433787026025174757666887465572817045822686162254516448751463301212675292312255808518448259649728420219610444541829673101995595544071202849095993354094084736880145274150770027014820673027065785151284483452824429592814567994907526666345929954446907394513737657296689565912453303621304418882956812856331928234407456917789219557476166792886661383144565689298796921516727403485029468822839306970164531264992902206648510469701793044643488434266160326355815058758172299204761120683979812071527954707834678387648750900323120628165407033986995971544337935298610689709053433361533160877210417267585908295980248436212107102705404239709147024603043865550667836346017240068740487216995995154016423845805728965319350623395768740896834836744462478916170159544762768554371062538716056357709268797859017622458145728839883477262665229254727185340441076884013602145965728380691198725187433069501778914526498133415194270844137280197788724461527387066511870362117410096282722949975004529392575542486421003400844542014723856026945674320228878191547377511143983806521621737841817298203434317006077748708863181089484714310720787847844769810924427126471878381515072048594747622450143503778691873168325994715993780450303046988341636773829051595250891722103287171424690048530098466784421160491287991835130818470315600233903975085402754253361706003085979379084503019891570252451240640964405413062223788000387001934343089844759264148434404287917723484778232544980035537230617138524978186626645024966034576246573780744356603317097832707455218575918175448205663877673080486378244558092341114459268588915583007821357550691948724297737648317312187623096439981201324340628686338271421088518853189267602176011798118846499768800383172339268796667518571073274660186153703397595620393427555791242283850400030540578721867087272935579911567386563466065040224998494661156800220000581916069943350173977296908994874101004110151142342467365820475737828430111818844933479740358856530447079645884659890567870643507086393862262014696823249567971272444217637157065307675703106347426671494083555186817328181469921687199998723328170385032550365791686881687205707831119231923235154788612240280607886303153974142952395736637012311884728258234143447959078888952814762124396789079679804762368034548292148864705276247033181892977747140620048121960096138279800183946655318239521304298837658845170488367300163431814651970162789857900700141937736088000531132671057119573914192034154739137293762547434705497058150165230225761742613354267438771597780323941452997221352064928571741844394765390708474934551076712542483173324342025264298505576770575111333459874657072939588037934469711511616151251392513024228077315997278398515676441389415580343900944317956139000160383069738961860847990369925910480185860051790263698712847668914729052415280626518492098923150181045245793797255382798021953099436340302825824213415164076397553712801202829454226638811136390633371796244803152208931060909895345733886796441083222721351072166651306094336163073335791838255968528987592901177284828779312807779109509113737666846147768704284758480193614154396152907717509814510821270440199664665267413308086274735285866147097394700567562879625075894525656923769600980991282284353351485780166430548359823364095090398345097621582686202205465355491106969138401563058300278232250642361013677259890936868274897053262821425599008076448008963844000567512349692843608474023585723937397509520752478945762607108161650370090536431551394940639922150073125359404717986640099006073048286623102300301212214706284429723452199706755764577082475975163601945308261324380192293819745467649457471926930739098656554565723534084882226761850908319189867521022679414103148890699876399052279471546359595331375551331209762615537339407174073696417802418244613613120064546995392747019572028165514744248572671182248704614153647945176930342739250130740567181571568590897858858467615889610830002416259536339152877105171937788187571950440985731900255711123842248961343351642038459820467273828356458034474375773126492269591869467066832472669774221301379409994333736729302290375169142749696337188614974591326697492313458942083642799857144618708048981484273343404828974396536846727981206558696406503250608999819120326115322377272004251329906268438923703821769054538151779929043531485969694798777946944103036237663287247825881896128919765534134856429730498799186590343785384490913355698632567526549726759038927812628718053039451858350166566093852038263611714828627492680068144685747536324275545855242679568994199787294289580390253027234917249537699961457210305531821370499361711656027941605347925545433190252963088583661757378286514622458984334919101128436790716030439879319464234747612939558654413498398214341136081673143717750619935957438398948579852753096196054255251387696744170246123893875586746629184905827020283940637741493190999277420736045527957316230598573165937208285567140275896067932757211432569464336244966012310759463346717950314823890398566685966526674021963237175613160488815868394810763579285109296324620161877083439207558634152529583639892266894832842988284465561997708807156709146303816415113651585992432380227560678440717105538686604143693679760356875297151924436892666937094302964868559871930315696519534288734468118545800538987210152595772300941445983340557665662380105879921663250678554817358182207404247624669850538171497471109956394861382125269929251007619103477708808405271660217124860346116130327389729484925175371520974130495514255648898638930745379549810536772209439041450858782552791410024219937760601824884981936100589004842392536382219000796234922757399995908314613333957987943975468621181047338723237112692182781351582916434770716823317607206963608329182113004534185222728483234550202723834149948465763821101279648663741874779822194514544578227130008381441572211347747047601635688285003974305199189754057711882626836461797535776135108963676192654382649664968096021731282359028253683145606630490124895952633376718708066228413910541077774959534706919082478594653543566280943709166103526348951526344523522610516353753628547236439735448136541112941375103140054879431122711591010583279834049539291652785122294162271600309357130638651123447096222575435419303022337272782516175747841653528857873764725215673590478177961739617711799350442865829859235296736752556778222601990984675815129674646141210512856977650416410281823252032175594341684637552326346673803674906700022302628512147583476792419355120907306864859201029194652068336395230529377461913340874621234736214904265035191771341040698085423071077024938084608094837780388746368493662893261428565526644037364482084803041239989793032229996025563857004449272871232278672247379944329214054577463735003364605820109437550120556417100114107956751597257886476086550341103978778209273424842714292896630694691322598091603100876051503945067285574043439192573556399226305166143416586614623569601314061555316512297582611195651456714469695857169198481489496453076695244031637884910683104485492900640688452969923840349631513840692221752645574838659395743257556704029126016710332298548728720416492126356487890541802663504854561853274782998003281932284875356308128200710774921302431454417529890373212168912721140338965998099278631138664012626716192158239481899366780655227870840485336051062685139660914255663105426997716063964335660055559144434130576288113186414256908143839506976752876823895713483926090939214735507712767131515067851806712028552390534025631417660733530672404129693013605774044449609786468794504688779012703158341071905468540936413594093875694301092371853615573651926426784980506738613567649126559804167406634210617254601982050568056759879988648047335771474540207848302968306456833321563660744205453107149769325665992138397543036082459647634222318315221310446404896804869912922177894474780888050347848454908198002971978606710694339762379608077674036445144521804251935998087212176608806852076892862412007678719587756410038318837027011911600558895541589919366291632502603241696517457056813027076774850091486891632052817438404288228520139289934360789137208829590465589511240366549256499412450600632757784520553588242473902375775894419294607366665146763340090351341790938985872822738494968067819959811953165230734498294376063514018490253749552263036409344984986859061755417198763485068296173573562111036442323816171318246249792994988983853556985411462830812308126437499529234823880110868992491074673758323047553429892435811018839697076106262893690808776879883902706163072022451010609217875643841742908132264968825408945110662759979731497099500992226051130440505255579187106188267957579098872739821308678869859353217623048580379173892657819639688519059070390025104986610136447840191110315957808133875900967483740007763086842851254441590956357882082542025545752167289428564397651748498044456142660068654171187645157371464040066240945463039074320903317015711489078934357040683649811680687733471866573456969134871821153471485770980003328419390292969372409880131128046388648743814896761687845624986994578883020471670542352280302785261963543098376193511667469142193704632853785419960227609989589059314780195966260056941140383593069341610514370237088559323219426930114571950630798383159597380137832785423223508873853974115791437611451845537651269996895646371360212470821677745724188244084523526609426675514647118005164711528618091988313817412579652759806986446815236157690387329521608077097626416206795487352510245341088280519514611023122685696269987068370956207468077911101378087896078810955010481566775022931286747936811181472907083279110899467692305542916534156680171398561141147967944740673798869996869393047782810126185836377947454773159188898883944488708940880784745001420899018046936635800788246055041198447243312578392044708146407836823505504024274663182986521378346739175212345649502603976632040123228892945594548845212456244546612143047366764486189195814844756248511609285543531392968778644502536314462017741147829647903336379139171376307134232767306333717278695099307612262430280979337306229399403167390863228732626991456466192638349357631887654248430612021703748588830847981903045956102332889773039109247357198116533627955132698924897265796814079226271106063795679612428706311274056030161448495112049353898607189943047271857639351792709648105330358641797555156339883617886470189835173268738666623290987812708162477625447958806753400406376323515450759941413078085083824359761525988128100192427358353032663991663132861614851229851037884989568389359296990184364188859660899940463742063499495445300632980730595438598844194353544214649009532109585010980148577895066663703587948581602146427447055140081301299836729020896011323184336868983605999509300196345604060603334225240980459861846101421228071719779723651794886837302189799132858779921290559673945638666636456072073328236384231514581904301774050410940317840354150166941158495476391552338503258644989649370324828617013812894069759593208920370385135818971592296364219066565189461591709420761260960687730252885068754913554145498702806658806077593870230261775849346489465264003404903886100450884678087733447547264859743481754441522781881470685847148934478819312421629083637339638678646923408522779806975009731702343996940140255149965869400394711358599180682715745776438218750074629464998853649791853877491719719199431659854258485110736555648106549088297088590929290533592558458242718234900168815355383330148083700744211096473225811445861103692518096177440327630909868022150835408798674696710685138031820457105901495773563921788230724536970335893346143765884935622843332348185310011016244016993721406958156202351126829390766014088402523239063612418850914417572854652476077297654242497402481083818730519774213633528031737645657813426074770221794698924363580692859010527135180415850882685496489174086670835085229690223854689985838876845717546981847872783811849782729138449051794350735394526343109691112387737654989861084335890837631867836513475167162483109104761106995672307884066523494627211912505796900970988008813617807297555576636325269216411964533382427996377393330117934464935600040430572785284770710599152062371122951277183369643885039859625260937965335777853316765286081558424714980814763606128997021015827139713534296583128420237981894238898779184862765685328620330375791944174033196371874651338521526080924485614486036063012138343584418025396087949295341697701324032042375765025900893100445588154153269273504779830965320324304377807962907188578940729271444842553638427521621129955068992523115865112870934972183757023078232213243866961937514557508509888076337871390063348377322393520265997351086329815854394467132945366277557566411395201000131043179705059523267954626857593945826533893652826508963526529355545466034693802654615207022014982130383221016636843204189903909623580349660284636953227448989038320958036087864345054523372854637276949820742071237018338633217708052652826473951478454892690507141220604585506568953779799732273420166664251373410448953343763466688045283488620203373790027608349870691330299942687618340641707232788155813207957408557357165529384208693830025856494938221093894532096005833775639491456318122941347061354339891588045877806982373750380171841225227593651338617862914145416230662008421181621862551618088547998637131566770623006120096237981195188520733660709474102866150755551784772901279748561372615351029598757880741480379736272515203688948587209137687787184598855269571465987313763699993328609046553436201269155586709221028202831091360763385210512498611961525962145273872607099396675711734802484902145605655856501688180857127925946493521348226834547970538152717691692873241736914413055036218956444766316962446808964272526498338718020970666980928581696031707626614766766508279383916768413542088407540692344846546181023391075295344730092274336488681219480823379901445446696852860634665105422099280787870813078221330289097290740880139029467813000292729229550087343009881766896093555726774146900917092241554970034304068571828972133067167307261708519460506746474017967003747039207876738981846219365374860914600310540788623874474085120847119479241952975000405709012002338486391749498575519848930032794824266374648864434365583817963677857003756944907066136029184350844581816588052759732607007162119280387247972484048446020044614706849963614451311522245169101587473158180716699676203127382857213760648773932325827562561175438550539062463153851574504441159323334105130875849849915560102898024576539156775185433819795995764233686859636967077765336915086737051741817810468798180984623116056989388627316233130109694559348386804723161630938670279437215404219945441752828359740010296289264515723251798804794150964084480742886209320905194603230721630699683725592383791166527566406585772614957022555097445247932232308461364544493841220698819641923708465463218067722136568707616865642982647036627686991226894938157521317492943178371741728530666199368837627724611137398819189724990370863403415827692997440219171446140235174282367790475857631218624049459965063385943901665143535125683877705745996988084914231120034685624641064567608411611416438918366573587296939168460992986650038957053225682910462906111551525625623521743848191287914711555518665943179282705634211348774790408980734301048417004386711397007610233649335052265003085928609563998630199219921588273522030729500282495258965449543814074387263128178007071287202856244885750444857175074617534607724573067860782871852340033777956417462263706855880767197329925565510484402722269002733007464491104238882650732088230937644636193056756213648938391596296534836435959754958622551277492028840803867045961043377439370896327251546694151861399072143309144095414015378454104742568078061496603301215091025180428762928551019822589042892860002376721464287829512806161089209976533425007619911284637604455382914058740976709880655625449963856957085648289430468089859345292661250093039913106794889360891248418015635932841095588299472145227521509215754993644577245302460182974779401169252968317873330018739400227923877828002708008007768488995299994154596752668423942063891102712311705636887263464439807907643107608467822578367113132634957915726693159049045511610363274173737826164978219241447994345087731222436566589675225090101057061495419206348524743981717233630012821922141742536533368261911114094400522654270186635486550168740510710957098410269455620563437887751239448309494299519689757558121406729108777316188839038761737195788247538977843618296218775768121004455030120789036593251853791958342253558177731799421599117682934696253800692270192694945207163031216902360027962405971890026715251874839873627676152085388631394985545147643911146638714887000458310739467732311412852694231891335327694232909601595319933478587038551563643351705209618641992816569877996410704538499403723046927597051745513010512175317636410235447499341743923160660487509025707140399851511098397719096597137172004308970756793184912397621975384177482445658297385290125442858344981842194164050066793182805740770816361627040540737083063217431660609305781788454923261921833415402802990517692109405292423141916136077332315731070988329456552755904042911743494173042742748342513958402240742455726400580170620411205841748826531676214913648746627614351520209423201592485473738512642418961415196237905534141703977585400739530061997426435034902996752497526863605537327789180515646671628118031152213121778117628110904831185019040521579687738623681586004304617589268061597842416443066273555229345381681776148083735384604242544796188016211126157347836699541948107818015446611175098310477671101967392946978956437488152299916555434835883282291655045902220463916969693496196031105837331113399572678696697886760813402084574698998205722705694425645071399755554547638501129531036783194691360843917383321868419707704156520463650427132235860913797219698873844801364167661859744610543912529249163918775904208308714331547077840824540985639632552560359292779743091980322232085530162001343083179932815248777574785135924868973136958859067956132070882493755888539729320685626108545178718436781208302365340134627102153888058192964152768110633834045568079203930674995720757568581407207435832496161220363626293770017804442657386987449768077435743991351541141477239699984032315069893516826206233749830335127240760751034477429982352427789386438094483790033961894601153670269558976864029973468891081203711005913734386463148327561078778579329894258447834235759394557596979563673884560373825641742672789015459399801160719036414146556577980688827067809081918938115352336315694393704313798644307119302918402921869871455365393741490750473098724531478235031997330245680547253756647123423215745564310424304356200243448713871370668309238600171850272669265808040124418950256223075915514640470138236219342204043667902267372579233908423955132328359171432257689772959371467444712261517425751627702056477680129552069854200675687510501738262451687013330929819712041942408334445995654281613805005487535757671001264733837122765910581719550401532711061702264981477315552638598589132310318844211128039126305985674592190930928446908097651421456801468599397304019142662378100775601541637854158332323705012708697183648810756539646974027387074090524923404529545700762624621638784333162110640164752165613857138777149646274093499310117941407773600422770152330650757339004212769324920100321307747203798178388796389344974509953313161876551512863210382263630097670863488125759734966678669470943782412130777504523700172309992985356571535767748396071646140905515488912395112183278712325822603448344926726942544085163038491023897668718213085874100319539442559003439286966449967993846863729715872266380538327831291887914000974979266195020870370976406437178637153297008819100129977290359426202664124707690550701325966158152049396576841176318111173609109384937669888608486636528669773084470594560455196053015538246720396145922237531373051740604701309714158748002973448903630017220733829079852803820827926970797960860316409446886115168906610996711260262289175075664515039409373731434128666686142526559784299177765928924097350079858273991248561114686936957546121618822778392889017412583423549492290183103661165723702471683105783516176927660219659633437978901726969744406868729284666945862587919474609420598662895584258689035298080213655384424690430653056816635359113873463455405901387620034424270512347628756836672395220960503638099556349642572677727856554531562115695433991911359591630495275784577810417618036579585165182601557196012160863195442650198623946163099214958199561814474166077901839728464162029090457189526835010571000330796225240639188986425913740323944269165719981891428722863066190897847691763278720654426198274265537020956049918967409008937799940923736852390161432967795691461531958374851424941368292378869955019674056810456879090286241196057709071874870433576579336039326597606316108212485890283896031496640707538281145540834760597843364521638854042546975801276429442418976788029918554271943513795796792107351740961517798854125604080339848272727867115069511805186131524613264135642496371553768762986280031261154668568016391703222120054431311495989327529866847353856891441349683584811464351024105506478841820065053527836829827714515809425322260623766556701827215232574022887170439319195393520881347922924241726044628053275985100067089638294266327508406159109966993668677166517759063515420298274345286802672112230962936644952248471935705096995423812321858441964923440325135579868227484792820307560613378935328184675573496397836725698900855625075488083981083024526837840650757281293931090296074633063993143268504536734008816069797233928059590709139111381515073749523379130868150018794389322367246040838985272136159458192190717299264690526717966385810210983154004378681017144852114503302725998328355328527785268984732643850890612390999812605681396979699016036267350676529822699848181208051056614370192061983281415306441009564900851874778916271893914178364716506008451042306010075791027259289954004471175338631096035059262668973507152379559727926779254174683805485508842750552581763376201577748016890170429470452791824231532271789287327993017708371407843923906218160711984280756309417409033064692286338001406245171995941587812640643471700310568536452248830326770705911626749122245244519464569298731047994682525173788855201530334164648912615391204036366788248334221758663956959702117122284443551198806157729961836125364249651111836948160569575240489544190064791892927722641252511392676652948662236656079225597918281838552055975276428817460320834124905527826720097959104860648244476237056768902462657363704550383271071091197402686227979035337184888675121165022260474795398473985462134330520147226025040298387383099497272709624221600697270805264204638469736041131177246312659538965809522590056965119874069982701605594601945284670073894339563837352566620865992931346094009731962787736955170779466649332229911699192204081106596722486302523513830884524452120495927600130197795512672032041206186101024528585000229066607250620672918031938196668644634113671259496650556715531934004979069482130979499940705055524116401447990138896549019196133546160033523031265362545859073470530772406649100445117518036029936643384348423877658364914948800134619971666041707724998894484056241107484165134246099877534796473052695216842677930505885329782237946473868460920800800185327653220318839930698877183797463604797854014800901169190969783201634532505552988920821882563514630553191175451255052557051007060197418423513520693184253526406606000237951613990748503601975032075986662804416393011365303537558398080684190025516291855461602215932303621145654434578505516906627112522721102556949196585180773714105862598735855648575762129176355846663345839519261630179236763874200686194979619529125664417534243621540271129796077896524571544660347203695548801698524684909619248513120573465981074908030545241908972073394795091745590191213595968229279773863915203319383148507590842065799977175223315431207865352264318298487432520029843826044958325788519790065582262102963076973585900578826465853613302028343179650813244448038605162693353613830774968541290469415064040085569860524371104521797620484924449327628990254839174943499966902297357004175337066994278751194248716174221030447381546336178499706161234293899150804495006247831825107581467304564196701686746180912557862200793196240325226353728308525856205163695665497237584870409786132118018041210509756090717099679712492509486905547015921525738921285057226989476534890950820398579749027184394836868989088526159852267861473036413641709894916668662568033566249371388406016177648181818778714245061244876113658310668853475246270987709114065620967912851652831639528828333466985185123778470692164807605051331800782335249110213646079343241999238507172387384132790864112380507921502256098532544428091366508196064734633631214365559874436994776464836988742117618495059774041154421739722181776174246573991091556478085287378786504499311411568364634996084090396133384864825976892334255823223686216389509793564697745466339353548512562794095312761978154046168409966183551238934715405068482220351239110404627235316510882084012810845265558792468843043688278244001028105592859836687821149154146034650907594079628408145795490853946624647598703517496890330081716453899760468490582422071380938394738306424157963768937432424832406534707085253110469514045006253851234711026631613598106555058329213334723433336372663827752842547883220093362717235893153161527353756308391212311566617946665821341251852861922558932515723104816221314732603731736784139979167951249264575661006331588111878571464339295043031769157146332046455635626978274738442167592428125618440332479688882861796325397748443381958732405618322580307041419168339175801411944311134564291657498568420258143383729360831937710741628688238935760796575288774440761054647679628900911028380206200307978029313071249747285271127052869915231481371239701950904651556500491454324117628210183619502278448848245699470750857797366797853569421751085007274363086227006067784109518233480279978272980325246470604665575935628853354281714517745106726302644335620168484707425880331488228266522809659485978913075696206746347379675668971933338391052503515624437289118348424885654322720612769607923220549372949434375311579548958203953101051048121566726354306128027435609886983233984669111965089201611301111320115077217765057531590973383776531550042448501500530408041314614101890646563507855362417807894141632754704567091603618067452710794505375739770248616545251214966536063325991224761841671207001719589364072092255982133879494330952228936314599277468392760227957541533554144632991114590709841403417156364451184574978818400357201790640008830038258261584436428147920932970436227391719411567165566727345721389509395703585664812150325535452294457338832457423032966070054829060538577386826956534670575152000413556479587288719173067536582653917403758868744419627418923714131665877410902653000757763065093875605122719157081780697147824416950795988014717711487895920219398474799510532306551985337284180719138984709646402249838160476888370875766313391738347068058152357581857125512886692853268017775027434871979310043380979516572927860128407342154889187441147058497267141199959649801741632426050496136645798704436301569279070840229862938952265120434790466162577089759690909157354966280320828687512694913272783049220951740433892726577788175245931579245515072160719986327003046828526839407944455899996106180960154470173497810916883432699602701813872446561652691499762127853031564482297349937367219134438983794794114232242829862047101791629059187251110269541293430633716728187822410851882726130913073251309536922779326104781400640669598080917650626389605429459697805738113478801560415876680951756226779427842676271992804316785655777397084346336492742778887985512088198223777120622434437891811581796049655785033447681064878882527355884556161969714426437025109136071838361490283899133234208371519274699442045914655595240762651324964095008814252778119690748005899603654979842234919838658978595428395996232192801741664982545495144084349054087931394070747447979722281424174235965862644108558465116455780835234615846551318617892075209615788123436005333005211868240335182256261177267566916828813559367253827372373617229254247772996321998157928570960762560893166010019521369186239878428016100848638957200455760382143647756242106753394666276163200018987038224788538198682777621622456311080308620586234641422486985363175841671495736521698540726391895525529337078759359455725843575296130271434595302233212472373508791835934704014365799370895610333853279478513059677943000606648888582609898535262078741342627187705095152954775361165804811794245355005361255326803803522959009144878555898613511144404255493634462807238365248599670209155008778799214934024130980194648943726215455604954733634970292827131718742515021400895689246761696042030550866376566110333104527953112807107327422391330405387477462061980959789583029314460151115815337603222905340619242716398194933449006686947863597484650453840068978453517210189944503041281032649245748786785594412152778992763787923026511661440348914944163869072928787179189184772754539758233563518126194692309479739266381604006154876351646893113645340520118219365151200118490033908139835537643471142447528446582075368407761724295733877208648531670607060239654792104279421921781466873217338354409402235097868703227743527587433401232385226730151699288401069268271040547306610922705624069571393827355239500035961321191319542731617310475422679759733636923324580890010302344611902493722043405908271450618583736875057609684655671690832967459466620085306952299103911921493531095870379304842186763123729927419485316729888897523746415285237788896647352573239895682892967158214574582786665002651063393929540946147114319015848756099401247061769617866418582875033461494596150277220180833872171853302298532891666822461002666842269096355038277840941274871413907126331339689480072076017847307878416772012526125945277222810131966639260949073832404338061951803757337012818076140474149951007827390427030308502262557307060162825912860138435891061261737197136935854269284408798096178012342179485372224706158542219078546281250589335325293962201788156859634211551209033747418299896563074134142796875570638251618411299989941962076457276406089565802870866797943144825828855616328456245243769830426153805782982537967588885633204202873700319225197665652169044436036122583558847047101201965842634162556055995145337687418975118480870304776152424142583227102980297764677521228718194434793339705073289174011579764074808262734167037626614194354576844295501204242890584828494909481245210590997951075740806205565365812022191309230325702785361455651042712011913308691334002936247752913772554022589982671978278136502577485989074590875658725301906938147783648424249746924077683437970999247758909293348451929858940737608899578372627960204041731465850008823929200069451021052599019606193978809405686788246640313949322509402103872620788280012744290178311823277927682029665767993354566734631289507211338202741803913984701603361388795034046860141237755154846067275767239320169255026067954983024550218045169647552860238513116890700567400863885271732560657906061240014262336166723084913408741830385122328812412243084664576415599390396154306830819034895123594277384407202764174721342693537596778827062440115538422988568829530510621283594057708009193108214688559137897029081872244242776569419406734188122349812818420154169155848741673584210213599852936644050243319172513262474306577625486828202998642059825539833271875802386555381601223887022481866937199315667449169384646836198471450766505064924257562313687261190933339172891307479623375987307050131559294989788782846828735198314409079988974841267627637421706246863697772806100501756273576211659287418170449444640899536847694711318896609403198426738112567655489725967947404167537829457048235723500218523855764259167672789977492726496037646144629451955482474699846453031633878694461097700970966089073476796915342930670117506414809233109491690675722310829288908093712229802098165117152363337542594584925702471457525706192660481490869308306440061122670780606545487082945762589851681574548002440279371080998603922398672911008917980953215445318208233579901981136233485063636472895047633941252693788169841556882478392881835227989163370074068052089505315134028377692837833772598486874915010412896283223210175275896965144960174393682924508981008444206551712469814520987533090325289706619765551329001500379674236165190069517392212292255680085046013610490416685458116011746752693997811326702413533869683727332552293633696455651041916273194452328653424056033590441161442464452492948874993274866079469361690048820679245302122630954145439420508586253177254593617954621073197985523303640915445309862786740646443838379647887592047938345525291675592390163392675782212399944394081338867160607278615872639697936814445778811897233661743299276227955363170406742208573748552714167136293363194045642621661372348063030065682077051069678388450310445324331731548189389123241666400150246118593014914344883735516928193145720767132517054442106048349595615940667711250649125815843943020206481660072436030420793677379026673827950549213996607757706166730107815561079247113643810556417597215102874339910602479126996219879037221322219212034594183461459889002833216380630960313240904627702738905951070239309958169311012625359848370583327532374264328050964674467400987949332575758917854628626162562271061289075190200456361658681474102923833884484271997976186691312174135129105206805923662330817667853923416131147345805852747983937650306233158350933563800419501741782542390341862097933284647833274111212698936641776842788317120046585933006378355664140817904451119370585033522105228261688105638857505898780413990609674437025770655860462359197904439144823704780654699873609727040121944896104874758582940006712796355512461577255323412679368767379548152440612626751366458174215645574834911887764637341149675579218803093626830500275733045488781830200198505200060604402753404573085298268695876231131730206453990068984519691056435334692956740663215987649040329549910143996790233889251581383398954620647204307679498930487175469402353179122997724733449234488455411672854515045109039239491329616022808203187377134533489011388394380429536827886644291883888330631873773831674240183064895364879253278017211042127955329448781708480915951221194368756346398660671623385755568491176837416493442495484598353980689060674594467227303182387660620520634331785735919994410327468131295115588898054287265532296382696098722218734370685892452938580662612343172118324012741642462977946405657505233969309434649612598862419523965986149809250145192634815631666204221155069000972032388004592480179415811277311641971406807626947349324071121101334415456736947716588429474429000728857438082541050003927032727402782864666861519405263138685043670043024963541783948982177281280987539835786211910361017850679398647777112583586157801299785016796526341935438920810787773920670843204186902902698543269311152945809908064038039335922791711201902375348871966645877187493532450105897724340013240830251846070199491530406694317104790927917249456375246838447059885978731930313655079087406340295886320658275119341298848836312327560889131092781692715645738634599746493051566408903020439079086575410708612732376888788208512415956957987468473157448375917286742078762167037718493744059869193069363110103241689989846370493101571983993641993691529878323804096002848516821576689791003623804926722930117067070970026760980409611918347999414594017272223836984200048540293921890081594059826561116383456839140521622122295725200225663938973024485794119227896136950242060517424085074639973083411651116562357873531196338300639407155175810835841695170237271060517989370050674050086363702817853887414936703295364049891549680432883107559896234625901029697235096177435096822229546281942025463778048597192737220438991329134650473984481938197389108753588566300928130265181176062136187225915096280574922393680413668767824692771833958954046150766898371929254940479150120505050449160617773349896076734584686446075771865714989762177776725202975560924534744044196247143754819644491626746120953303023332386305711540765724170592648889794172028056700236205773349031486526001528196770644006526340514715267473005011977502069875978722687474728387358127225370969236639121660731132019215943668278069530926022184627234162277012533684172007095672283737461821812330625308794177881650018371346317190232468062571487600382631925150806589224403587887568349177846195481139732620750899632065207006708609166125864925575257588145942779007581065995526201146113562380620396908917252934803637300688098300482765729992543175200414557483481667868033467418846242157677915994458258165353358939990900827308131544520997005930303485003786792533337719277294894942922781184409080114180605681234191086881740767715453129895455410999725383082123428158803193432923932421665442045315351438751415492622177264288260128932053143157502336731737642799963502471918143288958003019749813258632637140255839429593731414999014002003315511649542089315755306476596850553761791425092238606693772311247221557507370633699268940107745574894032707729396585164398645618477924409855740584262678117351922958730937890369423448862504687081230716032965469268587350894805427461750004684076704881621007781039182799889775416316021801238806074605860121474019271525066052504155240313536506693289345890339289622617853248445495954160291264719423541407137107378387575035345798037031350125013599781745672019851689307882035574058177517647165201480879494736187115720293884065274147526778430036064044842837324606350081630651495375829174791263700632613035887579782552926917917332745203629083094167031917269460735558787672536819927392032335329969433856081616100508591811796232782334770871099217302231711938423509379858867180484782071379162339593494124574432131327598613748408012842167372498494303946095056357324264876839004823561936787687765696259509157215474441879774759267846235500420508137190095100666103621811954324652473056515209771085188019805679324583657928097051005704016624591537480732044160705352525371290644448443614128472960033484725154446749153869515427059408491806018179515785035535807673657744957379798404684938591884995018114092655056983026277859027729043846311211423680702326323103387288086966439577783756137314131053445203440284813354808073974122614620855699594962255294541613039823733982318486044502461348176483975193819751646806636594028041941148224847170377405967655269003955615786022817556572375968611949411067409360542762897391493539264107638314759842773804789639860363895269585693204911110918982668200648446889208649612945658989200181841423310178609161869188692947607858220315416459719560200148430211652455511193978251937366553650983167036792051234704783286784310638528436644307129515594266991118122732728306285097558813198754326174923957941512260482350524033917483573636710081078358688447107614645330158512079901718160928629494521053377454007809430796056055307963104996629046800670064040561577097533086255922154835418563839353207808959640976734404320833327326289147956901190821786347879738940103177349822009504752050971107891288765646486923020581313535220426412513440921335017447267780009774121473981349838867143225132052988759581259256159969808822905464994096419849653159275365408725845672191578511128511278943793417608521300990346753552972085504351319009680522872025785602263148935672897819412844762164744304141408328315620830438298142258597070133337746699686749045780739463141634432690125816572589439311905194361686894134271470400867101725381258066294164383579118325850867723767706995328921806547592262429747600406836916440615495420873291916591498500763396813205088766304282248915808870144582159810785756664113285541518298852126376012800861341336614199520026838797477216041699017703252332893001343766667600954221333624983735588481970527568396655736492731881586500744750962764585324992893871621604006257482805074714277403669350493303218791858637391937933120841362326264406049859792740084331767018778642838538164770403870585926279866620253537710172747023396488554305257837179380260713122160446905387629783534716543484649795858551069705684311218676745242178281585265558367722211323184891137497812738746296825979430807728079034068526864500100259896021555481697283736472339992449708446682440397254466294156490286920554633459926086897065185980405439468009392231817426395919802325002945884199764276273850581857345930185583302214718344264239709894182003866610415147470041590463212418731243162866193143469596556019029356103899705598665469395544118432808759650085319154808165724700292902809358065834586515912810137524021323281186768140668587074430810725247733043225715988352680981082716038489073305759278385003971550243187065458304607018172958242899792553783527311702544400476067286728739088220729520508607936567125979293422571515845046408193345505973518951372456859470587663357594633978644782600926996898513010820944940278488913788857427558616576361389355484369539698326434344587750657759203353989052298966030154197260143365760539157358364753835998155184468573382019534012101435739598494772147990907541197294801731937316107625638109046675554072409136787915809185084107216119024547880172964937097349715459120049065713811913860211528370522697641940041212826893140598906783567816806943595675766576875362774227166831027040848207355063384818074165024388145615063687924299040806563143705675776079598384916271740808299516019334158186312736189153401993398847747524596774556966297672729875004389972399534056572237775990353319235046529303060738530647527636245185262041550683797886264358947074411273138380027022191672768466892901955411064561182988504335309094830389218356743746683044325423658168945624151245856991171044831999943366910717647497053423541105327998333438026886159309091179642445232653157062819235309121188800435400111762283253422127541878883401387673266022364913359918019789134460182683914241172659662625086054967032582591567560906083302339579311132281825549124098710653356309585548628858064243060195038041489531390715232260241546531187091522123766956087416297871765797412495225119106485665844707893584690031414398944256716026707541245260654140954440597184108167436280022642801137092146297041948041191354645726539443870122085043925327060948128735303158981158643482127115672941678118945987814917252302816266308501431483693394861121087209971830959099142811668095792663720921650674895902144173030057480266661166438978754172534798852789604826762519251902127468227979534293455603672585160528282528872252744635952748290369698915398585647819281397838240225514866231567577437975614796150414210053683420210924215348099775957337084365488740039226582295051895023859545790984625655072418206315475808739964468047237366960993426441846371414344174828482478648891128581580066637883087470505828325467887014169370866898841403813169676884609925464287673729265981076354421554716956337571435964708631848270337673839273764216065586367712121924656464447579277269022879603729264482101952704991524646549470180812373419686697017404796322603344183136876016779213518195578202113707970006911322461562551613218789019237926441211833038610674673369697258262034931123845173487055523104498843355027393451141322935334352048048721194406800824828136272231884267277044141853681644861074556099674039418211132324282341438095761513748759645849353341694616059856666901090235789963081538586327761033924329604864108567997961826659856269592980626064105668437631313031854289238687569545643271725682336975684082686766585695499905420619940616924243203514636733635771960796913856095569462509574403031447774648535532460658859544655984652238455283026277964796701157386721442884177834338130994605912330162830560997164606642383889828418868549774411225616603839235713828981594544302606251990492352612287669147311042244694432980306567260742764250186800767727095218635502576852297686160003248357146287440609202753942172321938620899794984393418907923403639657277105042238007951340068472193170857690304288482212481210812650720696188813898953391875298450930039926175896057180030394260230602048116954548542405685770367151162432612539898810669612341499790630587771612661279033867290339595081692197116359780819989362710834384181864795988360399603110970223899110608982125581004835110104693144059109383304268339528840011788359098946880123189390933394986204527121615020836433929268690503026850639991107955326833802084334751723450711410523911083692580975216444679708066914946984523561390197303568582006478848013807211792887674210405435395859478534276285783629861195409118365398721615077121010229551690352687127571203246499362104517347272112222832124718365186819411968401519438242971218957945108629342428720118618799353181444865539485054675905127195020694601236070461792911796839061361485124652677468608321400899041947598777115550125813000119350051502082613279687408723175084501121643185530691989064449800455483736473791251864611493179122560759432132465652645727953288565749253099994871214255179401761399315985591690391822710012353095672507891234350804811815840280731359393798455717479170615523361542238668104747053198370409523924109780590622061696772680212095747393440883624277247689074706640315868803318652691593810952643661253982190757537368052067591543851125201873636375453640632761478053950609882102857541971340887982736448044318160307169603355282882030968537893220780098301052301278812810776479734799270601498789522173349692008568386096701228538529775977979686652266535644642834447319830616604078912078033471556930139104367000463893376725518545689741619586417900944417815118667083818312551949861612093425444171572259331325885634831377849600858116828690823804075504922579278566118569440859122650714772129503935556052262418547568184606714498721489263732556607913862453585523089550481005950820059480456597434208061278182206032874598867345731230508862877799990345632865094634644631314459620032999043449936381803379580119446954272125650389225447035192428017838298744781843314358929429751083128647426421411695213583878565631019492630863152603398839724087665690881428413616718561067994843155902783333186607912033138886383237555158505598683927770972141353267932055760670071272041612217497569665979864749204797770383210227597651984372563345707718121238483773916452132266147266369681668038816511071652687198672525691165932467995755176596213299082003539071698556338009385306499818201561591554879243680748122799926614264457574952914442777431680189219082335182289221386764778270177787912262872173432402102405293742195544529485397202753993729546885187481621555011729650047046461768146940779799360997689036118670933981041376146156937732023890161469608151171422102797913170370164460573299412218298938633754788600300148706869111354398593608560120419303444709362195190401036358576914743977572505344012988719828823359437619308302656462093333050407473765807587299966278934758293027885901066338387666700422948957527640840214139697491804805308833433323488424816055179868251540146304999432365577045295052198958650819432605315628533807188642672694139354418902355803831656714857421867891822519475098257177151273828402295192433333994995949760574475774419355560720745307320907907277748326365920990738295451151399299215494985427822373005895568410248532441769198070686014577149806774166279482190914666297836681812397881910524786091265549941469490119566260814363905770554276016508494301572290904781426932249311099001428015818926679917005199415601118543658589619964041485729331951211370260553111466392171648570835460947207750397629322358686518942645753934302161542358856947010599134405825677158958209779709868069902455741514918859159780864077246236474587685765409950517608329014237926106551391284659382589013642964032466514379113509382029791056307973620227988383883269327140213790181691724343928865850316499251568510791580855929535717068827207072262991495394854625644803326805880544846790062429984216623607843815767282412801561678616494886480836370051650434720005244550530595534778235079144353572083885786875588473925342314138634295830536791424517002049985724594561983702917288147044732591376306196797166152742387032399803420372987392382937392948657076484783132165450166786417608230665019778808262314213232549802503857633778463193778230692662358974386164764343352114590708295348396301469565174813394855135627539097192675741199924471758947592463922831793379682048717700985542120098388879027325891178157784865246502925253024901286214362628775629750194688199374811303621855612033254082239512271781328420442937609477039901308235845694111935483359093220738080633903201170131353733902387136788750921839520189263965001411928916500581300952463817763054983895691656318034208308263893407719842878467485343905723703981222192618013469987266201669681818552833289960274658683041820608671505863768434208692783101310173025782921572953597944420211569088790078878977543485013762386246633178705445012979419148775038693121124384431618275588640648972580445982668701689072639302399899783705283865903175789644090204683441759413242603679738637274275768349950822990998461568564982729802835651094694453691119208028576028045096113495900431291311298556252749906897416901090736674354434369136273951999496805246412391595050736740551125462789432101350417498590551383095965748326718224066261273313744005154194988294287053493428227724113717091869322762153924664213420813837321633315940920541524975378942397091774654161212480802964023035718957966041736435270666670019932758245452871212389402400184519570111144043732408329707955051280868017877815866483895861960174439474163428850162559457504594879134438224453098722298151279118490913841365210077536816772531832502532683253981524430849225542978993123337127254480279370647697770117967036323175693516258628846808838076756781946516279309952071087039273864875522460583671837385574099174078758202613868028501263222443008226597693250961944832009629470733270670492325482548823598841509906277178301726253756800182070246293632168566375695933521654081491129384858135202265476860923231752424747294009580720770473313403054555996044323318886648344652858836841438026287379417442416724334081989816595265476904934032968396989169705965932648370776481062161679062226145801751251244438350985144545661578358254681959092767218502973631410911768696990631490274176456689541414788338398647753719361163201374208231955721701686157409349714253942528349454482301946381199133586548540028321615965544100564924499774327915258731684644844699304298531627564711023429482875668126024956110882675862662942614239561609209602882564084118350080434316506919928028745493222383211619887262784478617013916223992953879373901971716304512760511035033090530345155524457224387761276980310596684161840375648977347343886573324292770281840976170918215514370597399326800203030764275544799450355007315085763096106265967225306473966924472427779925303747514426636293666944063336026959909613384761688221372825689453190543220734489985281464064974844460220749829591733684145654292802037967492837066571246045757714957314432210491086871422004545678450498782626340096213289511105501764963719555223274937504806558093460341465709345500214898912123481823011254090008919404865307159808205303612532338080357127560406430212053088907054851488716260844687711923854744716867783191178217245912759815907123096469008800499431228890664309563654345526383290438441715965082363156127838504382782492839872861856764362402702807103752394535202212683616506508375978316443312314936763052750685087327526797141257169448118164446691189676964746144442510903078197653151439179295281548972212380791089776983936090597526552579343652822625549661062875953936297048319729316989809084903987977034134940935495950630045936914131089940702640926015089334043289289927404749691370845172883456797060888556331254756530246333964132087414383588054650849113523977649713082343500802308555048331901014025448702847127840898878027677729413687825996776522584095069066011132580574470974492954785690708129649374777039555173310895346420642301520289911521045059999485748039757123411780830634166175009160320041858589644949537483745083147389034656409423730432320790399098428604791884006245196222452841865971728255804295407953876381296502388783615258584111575038250269375864262596744461522896772500378545754007665735546013234097925481425587353742192452050426713638609857823550498204079532300232570240599835036514190756570790716669775698973090822787526191292824656500817111864676039521093599875151386739184891687353007190041294340017359097717993071195094680726503560100665952493805889428298258636229585767857523362718846617462255651026575970181021063630716638528489544827381169753238864934953250249643806540794885729760845644114395003767036482001290003034349118101288905995634987123936990058875271526901569608811979777924975901329972011360691651170247745708713609044091051975323479563403688750960286371174511035428760317269828245288228591131507711784546193303477673652754223662695694098826331178181477584439659011536883555827827511495154817615780709477724648744016680330698148675990982787139330008088566072087438112496573081300132746762122458260223122879105462922731433517372232784272085420170388484827959828906314068483464061570385988875349885276228123925675133465024287373174559661255542344487325544184382316280547474687508234361202149676566275291846027486847554485225483446445044576290516463552524317999291760844076559853850210386922859532776754085678850603138267315067719061879962875628622837254547845223299704673335916339769503929000398946255718465782211644928481660101602183413441852417477617463905183489799089804858145261988340135704773889039130353605449721766342342640128367196217871266523675757524915060118880083733172159975949320362692912939579587508675524880666914866696083748391373139625955505772470956341784479689655774140966007214923970582202063756560515261416023624351857210705787482068118682551982209686714082687767970169418985300267714810143553846847392956600112579161034059736595703368354380845480739542425078435152658372803448543303414775996308105089298373919459476125768337694576587829989380170982607350178688092032514188480549821113920489168177261854854277067123019227023063832451590497691387172565089470545138960741582796790035983746058252565627186868077554037654023614539095584185123491738860446817339381803062560946076435771316545057675629969099112153644301857435680821736618581498924996755416598082300454469703315176571312165736433630472403986530425580934862521759837566853620664174021649519509321786682136217709389746924809951257648524303520201716252936799084477763037460066670028796946042651231335146574839535336916097765833445413555821198699873960392167113750798575968607890745705502170268081968654870976487632220970808196379544307263475695351070028613323209251376300116766310617106137950380461951206967850319451788692854308647597389878923097567051915165399350606235357791534970733087763441886133747284928373143861543130683396379752379185868960252430551167144903272916425602724641009588043018016047078294462248050865035785234625354803307553136522886879894612612449798989562807347453222566432287296961809102280120353619464696203446708309172196014606608391204882128926654269250082565798709036892372351627788474920857018350817219515406192990852544316141428528357163261154597964339423541945385760200839604817183247215063830232145214551872220371217931426112277719013746102602207999944452356444240726339907961139292993701115227177567789775286508386984574162003256490271966595997762450191896132060433972982271435324504588160559266549200016675251410552938540846308504880575324658990338296338597043605545680153762327171282384389863701210443050085565564729559065786559365755546500940486607374888775679611714052120708384896355006568814121604680540436100668047929696665238558471612156873849444809007295843647120735185865256785590674062895346172227618573769418263486362562341665718785494525143897610300402594701866459543821512442617639062410190393696902647700409195250010020226966884358379968535139896619376066711788363928504236338709227324293531367292681244472604306200945209033965854757796610314090631847540021667292049516035691105638640591031519971417618215610083987822754277883613046357681888357746583195831780699190606130326246185972980553313725895091153008108058101749137884544231437110787178530702596889065010883433425029130784107575511826585529899373747595818918248317923914897040418009026421433043809757334099280254085410535930480789364459310700593830155892704941114252250975262164964186963368315619681290252842516870614987463831822169299370335912335491682938790374396780186277102302096644116191641872654518960960672424639426800143957191103652553137275851795079501749271737894605024378633858326087582814989450832944874098516575334765640878415779045294837652451972799637804511850764894995309387162613803212211132241048850375849259260983999777415391971549455854238293105447217944921866371416211850368577764741182029951577326975968226081357413078398586664361506795110823057838220819749685444033151664432619043658775828473621478532794580703818729940351944114099704968995045236243811741542849185858961408878310710686842300377120537713816099251657263893511975266510974570226905296874013760578984166071790012832816544163771595873188316085441286737054864499499597014471097150646655361467430868541621053175321895008011435016493115400884220614282247218354576483210875086595610298469327126336444371304641063961715978008921316039337693406002654264526525888297969498691734765398993146682187217257528629235487752486461628509331811897883769002297066461760759637394885293851647155829938710738914089703433294034085867090886310063848633093826283430041971676674949449138693323820578498099054290603045494305287881778422610728334170029548965646128230463926804889722580300016061547132938921191062380819179831286781155783124098474701115040447325471806104881311347350708045384612175037672153246352479657661604862264451656233544047833381530579490419386461905797648856276386280202363913008047096256154366404369156357856759112929643277401134738499669197136627368483347801769582839279442235075524842349589044971500661347454398192289908073960274446783528009155420768155151090093429428982282166528693110842215693769230907078744220348194655250622260198674242180286515914517362276131905341515309266398170136376848830963996590387337147938424228194293190907208681640402681718815590520598908820215510472341322898647596176688008242091212118051161365765438800602731742999884680588236521788174801871035021797330700273653186582947903188812403404730955957932707906055149025814650069003707660345882102788937795764832817176305306290089097016584896185747310578512515103759193979442288755074278519796792012945705830242972326092572272126783672598220028548217279221138902592667249734494527842023198412153346318982059601998415840633514715269912277667815444290665630901453070076996722274451948018736195066501223208598123426867949272906161667455462569723986519301172084975568834686228058709997748513921608715574507121014806375130488413849874086193341197205081386837083453287075555935631341856078468227844700096398112105487212323380073640212862896767775587614177538530177577836660435120370024270487210659809707293371000220441687230095339831756779999185172816044074953361960809203460201124123487938840692740419422484003972877330306082833199808314696163297249188755328847621000747622062051738271993563145053399644747688912479361380962953033990247780259575489156613613148365632753092600139177055161521282137893676090952874123398761854246990237674952485065686293515392214205233617840779499342600887118692179310255501509063276747687796001815225803547103160742472731022290285982007155675867763285282344562417213517451229698596295647554379646349382530015340808391407568584878818826068920268404816783591959289516611187746739178112870900735827723386755870248444065875416288060769298696345962947161544911692236062691490968611807993174410956065756626046303064489584918944304702592023698339214974297828800866428081768391516229409971856483442933579429775103035174774117080670065125336713764190587593549147398771979427278181011842710227358480261212966620177117059595625161517336739421346377565377621732490824986729080649534996821287662358322527054394749391217186300071171129614698182681969326386127454543014648430753748611987228276729748202571011008065822132670655349472051812113255051045119405261177643919191757236232486104303545602744742549007963053523129431742835943692198756988249041400206396929850202992625214817144039699589454536215513793452403162717598099103375275528238047061655951428984198783861524660002236298838570699932917109358596181221143314490666043919826965117040817115060384995679322559581544639727757922510555960319864434380560098440453059157467609478963199184762446396916731793375555437014192137181071522677714181424594797077298492029523434626419907084200959175507997729365565324662317985177762282482338360545677663581589497104806214009204394226697356138810185701699828760412844562216040284666722625115031048330501785678391238832399737822639975609332386831968838520841018490237886644742560303217372474194967565959750114136406555065264788318903044807795117109065573919123591023356712341919003272343860355286323087953159527185878908413385975989216803601601886158632149405432981150801313343395866819123482723827243463349995348218561608477132582714776978506002376406462479575939054068142830441143646537326994242617879828885732979714872114066544993891095222601072848279613098459587245334005809622189698627643807853941680668472611274969515709498193457540894130285384768166264861937931229269235150870648530860919767196707351414422241743110302006588215767008148368649945790306303451635373264160717514914599042251741387365780080325246303718159121200363771599103739441346856422253159625131321513136559294990418231046396345794658715931689617505784457116610993498321576543703118619035239272632780501604400229549262597195296761879745287690278099194096313928593764095940343241185720154297099673739855298783134609977214111159803306643675510344087716501920313098182603468874965574784945969546241097562681485773304588383211314031962384924907833606327556299686696354221175739713483849058896452864145276835000453520364795381830114440667837212525259436239504757455827790957628762682196508183729705642396920068395689560504521949810097016231033037145824972636539479430181469188983890895094372715804696926570487219211855033615165182392454122806252722902585297776305401217038787274707037142796234973116478621178727191031897658541878471707897238310588195227572622975426258500337191697343479871325989458016247963175895025641457937623679101244102131463304121804845004788092538276855060212978065332583383631915542749348655740006316522379240658223655795248669957849744815785767845722060654736110370331164577847921870252220204873112864626570789131481962342683821040124792415874695314501503074410861279527064505575632982511254839146526816852043065020634047592522569593768941838716537111657069897181983399237778514888628583933987931731396776786944837785896141039708791865315096498537625027652058226893451314760609873200388122880327874302533790596218262073909571025837718873716197319453768005372032847889119779776717674240218019265361777908458124601917641007452972514173590241971225743395138672768420080818625117768597876252713291156834049111572166780082043829063421499575247042230954971445951102131461022483862392662972277073500805278169560288332254996755710506139619998267689514180785060243613605855168278606974192782196832927932454169910863389374932195284620426577383512530085145480953625356022524759584074251277463801764160664514682898880852280602934990387400564419650814839503447270568790193596715899512648522868752033751679380689281215593891983611709368720058979571631133382255189933947626759289035758462005709499315274907036266896042010939064717203493316469737750065370855778486165065436319719045230763463943614639767194297087430477987986337431394225577508182772961551670058681425920026617747741866051281786324870432629054877237621462253581585173338489185590004414227073428500098142612454157554397363007245184373729948357200614348398285144221559869302980292775358616941261774470153200160839970077533222549528744981625657795590860261527538855179442596742492040708281128005168142110353614539230867953821286466983038855891212718502431846170689177932287977488262810657928385603675094582281203105923607263623612390419728424135929527573207512298055712236010128635362802704784331065719238074600345695444487199332466459032104495402963175410879860151866914652375741647564392532134028529391018431269031896124553958335655517804183369555551051863184126904153731832521412070003859961765094485771257322896506662522471093425030651605766571741966401705700538755172513116393357763263993125523621383089311136254096133407985067594544617374901699136068482726518928297278977050554951836966522800375343594337720553311813844274016767131703506967326241191018485243694279704160743634358305952559141749338106786195661064339644136862856464563573556650339635235332554958087778256606228107363128430384482877369169638666644839111811847457222483049819106379569688091543140507153794377878623736257145355080417405386144257807286049358182478005345060066278031079470728159676463110144880080913747587454466122362887371721441505595437320391409581077002321254325709310844600655995892887035622388204335490515511123247281435753821759477908002658825978567615744383424705881846924542743560026809450002667568846651686620816803074514406946911326666163355510924717934910597058829518444640138423910477480648906601071240403151217854662179626990267685900780925111514678895805622249529835268112141947579178992262598720959527967170489124961997001357771980196270514375794634934596856476467692467360527485994309518855324982581782656726252025130720422318051373634699059698084272881811713711531713328847120811804795487831435942234927335460672761060234410894978866460386864249744683966930896353765330916769204254396115334746337492397442419019636272036497253605735207487599741705096103436443437879811700660946615066725020709100183337448295738622251153071260069410859795283503624022796315487756561871669095795369173783932823387871933289466778224002950753729747721295733201132457915978095829666090602271802668879589735500664908731599388295972377142701893387827112546708404111404801244236349843072946905417226400810961135863539917244134045901418041794517542970068694126755505145872438276134811946994783808858704506777348872798565591168697481892564274753331426348659092434960924122387131591091988441923672406839949649423253964052818962073442813623797542645690673958018089099380769156489557899838836302372219025428309056614945311638768413307469728423095634041882744278566430120291697176061282293022078178057075880981914429079053697726694907288967075783087385828029342485538455431708340218484483352331471706489383209931839731256110278981478028500437587405322848704736869917097453204846793174355564178253951634503817672311295853201880226757915771032201156893767601924504315112811800821462060760792488855291945519539278215823167548836658201388478440676904395199899092847277218926454103669566517135783026790446899021410539410920934397971501375417455905350355412065226617249765928690377622855957628125139597356692856438516561154582319771758340728620000170165972342919902324084334716247297949011032416859709631851913463847875246261571303521322276236994009310783533497671224060238698072569832209249959092460914273234434393604336653796007754546028444655257758622424985385547556309628150506127590133451040101346479872013325399610719418653117409648500835406730323491556562787089750381885161748481084363167668664043694138911324641208072246666184931834219327381710316838937316973013435171080443401260515426708081908683819994328775690403949390628040575286965170558641730634332331299588990285735058669308549928622881981100962381877874950113384863834663087664497683708946833214075705533158526319892626175453999845317586286948353568191867358656496896784651020013244234030142838116530257090967397447671603450487790998813775066769644516780494176286464447053762080074875941307274997521757641788203660606607051969843515846168880764801090136775165841420132534512431570460758762365878828221077298701000698753907666272792417598853614179929276030867329788960153769885980930523535987843771500503073156951195323254148278145699138988039615418772614967176351795959294846641106106123348609736193720764976636596269031135628109364790649415344450953113268440253815331591230932765705454682138415033315210273046262921562414759621907214421569326180073054825599273708846833755422537170858769311908507984807344135989824840140465932898684741527009617743457076724407240777799292780504251259207379363793660595044782509460817900178831077163671394245207969914110362243744814327419455787311199770624209182252355877181720732198882455273678074915499090346225931985989023704868722213087459793878235453551179360044988249373832255717417595893933161711858767605994488345070922469996969509286451232165963991817478596065855222069572314916215989283930203085285258932216297254476509717558108524514065292905996810299902220986533494870270434663019907658221654034543330000101358914441044479816411704037375373805493288332896441700572593154950004673916009169802055108935898774960867985866651440821465725618648232553403038107798904714686854977470345312204024724241291499009259981725900414830273116239967063539050636236358605814631010998337400946052960786313646926547063287022877988452608868287809643637913384504111346036072396086437083956269695894562350871492862448885947735012583524209336522410606364316225756555305497863987201399586624602766872771361750509733426411962906829334337507869542896307914632232400593403015108403502791635665756410492953504981481598104160055502536395956391190150668434893280047239990597828207348446731328286767369700169661850794655228791881620125830087987199022611938869871339987899242865437607956679506014475006060669416678661456862964857217505119265033284295079289744162712640281644584459481890767597707897632718606267359876599035693676815050970256290310981142286978002666701373295019575422182527333595247309238535262878385805916217388415415622706672994140630192638883703167805997279426839385784513108564414826294426726429531442426163571246610329792301498998254985328379770211126764518005334175537516091595698745151088514833937737060387843652616042239007503134826979616572721129114347306367004562623459205851774009564048222390315843206437809496830128828809641268330801439230307539487761330421931944859473543899863049997637242315555305735400937881493726541463349383266696308367335863939103706859791811774579099227962497583954314018954425156266305919021175662360952782051533018615119464196654199692983116721147808497765833595049778409973355187756160739521522792913549611600948486144185504872398574540253708941918039632460487441074777138653681581060033815161372221164657450113652556643821357396250561860410522970386565418727964744086620459379884516081516233868684220085404909721778378526421545120325159265560930937403281712989020393465797131025029092291765605008624822685212747521352959529163062468360787444085663155025507924410467168163247364820147371647477750496044720404670523684557192185184796983191456600646408060422596078299981769620173303188800026058261742366664549975320044588165547956772136624877161177591349226769033471023232950701749174672983292087385339838243852316277694059466766964807227773298929645979258318323004795889163952349845134769813479730394683164633972575106545097675658462209406282268222386856352171039629240436288820477391581817595587822619826418049569632837574597894961165634536030681091251553869254183031153682218201890142508724964636728019989828300288659310083296705405427752918441161418006450658101544366341561927283520416091712072073512935513119392362050420405621639153012485750184588585113171858579995474063498148083348200812865209293484317734784979649521378784822541566024914321070221340095729251147750396391773824195490815079315818846307441161316621311031812554974194754339120166391801815875782027841979770668629823663468193310596892540444312924380877331157026696815291597672782936492818037565998969895359630691892379289003214877220523176082657504902764675485020551850396816022536284506059592635370105644288142141838074968810585578462028761110383017559622657793839070123961909022889523625899052964141069890471249882949263674607717602480780646667574374989878575521758451330259992083374296129930226430994328953728536063344228625139426454114412775488216265250409524907089646086008039016881560805609234798690843989999322609982744866581451037899082759953634241109301066082998748093535890007135081649783807280069803021455171676769820608166781280558507467563249959710106701045655445022546293936038573281492737789231784802177911160758511288853760269868563792190286181048505954230804859988671719805345527626060076101002841337646090378810470622805440430420425462934710542091556671089561887355345735474533623157775091644563171226536453695998461829345304636510697700286636247214630821516709991719909907176160752726016223551021431267964301464733672987429043364557819819888511943203734545449815837443240926847689087643801309917231414430391374388018715773830735658456864358726891994277190556818775554514295065271210075262782903668151872341152763046606864315574939906889831801414066937930423267056255950150408220751164654182535798789492083639573283119458761192204132547416076911519355204700393446343825468763796150556944861933093833721089245065698286317721058010184084372256454002203450231689142399763025033404819629816216043139463846203051067047014962037968000220771909181372491105200095999258586591082265120065878365152974551912279595135894190212704664576681691137695778146877399913775132100598398063574839513746480481259200998590821490685896851313185274674810488386874880453664777212004531378158303639355658135986847814924987332895236264389396374399742533732704060434869741232340179910929683066877582040540487801051593078412466643704491776994864480271044185270458688030310497433287769653308861230441414729235003562158431725012660637635290236462532503641987623930816013319210063445778547101479848550861764274137361531565121234639875841381208767256683486450811562674814816051332001283289490413809352551774129616210903011368777663023397336708974488776597301440758548946787899044676257679958668000399134739493162704677919111620157881655214237265201063305682931774619116344704523449686044094301082537167763846719727547874353558946139015607945483749416664547236622656910408495738729784040920347275425690578080757620113422397674738502759158288533775529396993441217716946964736606911708913680132898038866050206687221478694692503203266782633167376733166804845095503873183295188727198866167079441635977730770381935703873099479629746517561237041053254662362785325952958172293813200586576786399395954951567909853156186350158216864991620263217398204451317982004099262985843632771985877835510693185987187456454446215210841920670073352874730722575932784826107318751413603245625034125637332711254232459807080249658285843652818440419670705058123487850828800550268276876587318407669535790929308775829029055061431141851625601635184392579798203571635143728638973227839825409771578363941538272475322137853750269256979262546261242196428145164388071666223297752928596900067810038157418334325479627821756286453029264543894681316210028105311378690616128365389729258591621963139785628602421926185532629848102927639486830194269452940035520536369422677658879481350391353573171767789025948678845995791020508098928008378390490185103634347474565959720384130121133086710304269096473425325477240161363907478692914146606852984523430782177479125335804297249464406670216239809140139351041085680740357211311080633047025200545873141867434690591851661804164300573572180337069789711215110631079675992925930559711998013420927049411299838716817574601753443512599995768114528053803256994972111110155524886686441628555120695999970779809207455392531687874625737928662558827448331308763016528579361194317600646204413449753321551160403859928833946637611118038886120005798656009187766297051242560746139964449029044230369001770247547531791255950102909898150898424754913486426198627118063343276485161980710385672510932878561972545176623164983876822192267034089774722685187731447689569410329532222137424395931938673300607217170854323576572895969424410282743348211107919866084797392057250353892998359282332735266325129041838230586603318308340583581588060512079457836509270248902692275451542895980321091768678416756885041597210198739909160120661346264853325690659747655167464907691788592239553530574371214208249346770108953740395469942070383405977919240316189766359285208447262129942344054520672121214313895546114355044164798549422545700329863751789528994773454741515960419626141063428650949432046944213898081235151332811085545528721583756722251842301046819046368473396152927908197981396502063339541684887613661868493603070067564803100321846491228879260307842181846676042826549589686631317649343332281611140406435814466999931446529005405249079091019434063596823575042953395402624681830489913960982546164584311503916793169124972143826228687282520876262170143928593077372534042903124949164355978244190094825110908985326401636842613795823741933679130988659599823553957093907198303324306229493482201895706774853788229866314677140014765248885134292222651733230600976612226484687995257058405217429052237900536410668757296373508763562375276018855986836524769734323282514074840779945103114634140797610567036610638394648017735598025308312990087555670060027025518412506572817117442174153471441280311691128356637131089753559785125237427760581038258945302059507598748932506273116713442456349610921329656804537595787231496578691384601577492188778410924240176670794353022052454523052217539446305134483743888416155960938778529850233792908851497356454501443105922953050053668080596633485178690197171507519793601481702112377573324890390482055720851539445476931089767883130720113188120606806028413749690165959950667558238297229436370851244868890699043932442682361447217200248781035064524413074076262408117638665323979172640095975333240846144052698903137580556974317616091931031332985133686879058261842937573434465747813113076343603661835208479106096811651759904235503610664855623192794225946731773395688044423599027962411041147725896394289633401286282476933535617905476703860602883124347149728232578306760912810697596678447356790875714920100955428363920602676041662133941577538764914839996192864059029165782240152392997846111991290419366949383891399018520074109839339696103345813106838519168313399973221964849803918658667824701208242655584786373507292798975952055955293179803615746624753225303952927436831328894771153195398774334307240514982695903363222781596469003176674570985473381133615202792923241672923059805159422057043458433164219398337306900848405122703324860533128569912820313505330238237093814675682684918272861041923509742335050903865336684781693670623662874089537718790014269864326484563667452010460689697831160051104014992639789996209930366937188802536013222759296516689319000430634628965275465305667750370598199711552396345075095520012447871681199050636680312851137957090244290685380286236671132870854745021248488330993230087704819248920424097333989738858990514398985308204674569910455019718423820595580565991210391205781502234558625725423264821243605597198329604308806549922687987491587515217381404658705598346757092942159042277900058002155337437807070071493994061530625085932725142619732730926232028906542310371592460669687310091783320516163489907368770066815777081802703341354485947201521833889395883582032392295985338174014126035744426134305226814919468694324167448850895568232925744973494071445385361750341381746645053972047423100958789144427722310311893022140836041804612476375399089059468569184226533100354451171319335230298349820135307754204141085658587424420702854255011741585191972020122271808278842350325369065759915895632472660824593973433697883761009321687867533241883681725304259006330479180851414765582308331650209767792810051731089067275567163608657229031215399145558448081677985790325606262806751416055751004482647476908091839386426249511532503172560593771071108041384487791459581985357835286610544812455542499079371585240442497671432032740324891846933853846362779786095635709251807509366294447231341729294948900345906094860238157188812957164828304122721425016108909990020069523439340424266502308546158995028518962566359258649431079833591913721754369795549648855008550249457055012636232247907491568694855291033519385256700213170494513010494235904110433086737331925108119983372885477727958524108886991337115552721943305145268300888006686394590276869618112745877413973188155584933988761263045167462561730187874612939826103710634606462625061775454591768658920636745854132731992461820011056527349025518813856255502305908153229448194957254797044462155003348037476933036373280356447068225513276466541048217467287721012426492124840717835786222018427731876628740464646632489738603153201363448162414994072553721014268908870110116034501198525057549390948117276793134184748027508036619883992567844931470819271353267066699936321396327589936675354607340944635996790268572571770714818996168736822539529509197957230442186146594451493286863322760766370749515792213665465837434590243383529491501781764754934010308278526184968407483428306634957887714278836957045719633353277563809280373857471149092026792871946283195646930663816013588546849436924380097937647222976437815973920821416575034390443454093833264775787791647734502919526408588658038590968179860291464880379807674864433206658360235410060242578245575965499882057355237459190506626313838337901234072009056153335266592577096869925454297096255842408327476647181983731547642875432857663720146880827872790892304737306687848527511449311169465631755818173803500932161775273625258711597959632226472311062226827989616877485209030214900506059879431024521593773909415163677413043451569775018331363257851979207836707045146162697684622954365082948625572584852155584113645192312685485076512850673020572009352314637950006981967277247394944936128173355376017211608075932496000222317273351877208504027539746675379717583930209697709723454545791386307740970545395584804812091723347940984041526737480435055725321970164049452940516791573351110276194031005241237840304763415314622947919213114101826678842058652433697632369873517643644744535766865408596156474944104827851166924738258734531769237880566228343786020199464636374499522828160539343595725029164446080753232054917296169110235559804872973901944045059398364522469756495851284617114627415443354997829782329931607254302958027725248645546552871005435018153546655017560039253684927277403095307664490353236388577383740250966360496386400253256671751263750153784327724877119390642828142197963806582593504849444967093818644440332701744353675958862669677153780866492145524993243444432631518867784340832334409965574091053510566908353557094065251400130619331036402221755431190168649424215638063793528168969230975340224675839960940219899792076307278900712611268224312748271051522591021273506989415111829341284228455877059311520477211251613956284292174373329975457237640959491015791162169221428433800569795703892326554646982852111273504070336859004986550960968460774509399583095648703037205567887626253721747513682455608555202147157164724151134817681710506979114002736542351296107972754298058543499624274300034891246862703085450936630040354653018381481430056724693190959183859778288973703310744116941079079496035858126437017663895881752882176105480295813970736152955231356788762409847441188585486168613109293669730940053380222896606178890460277308984388978781014254796248800674377376102010524421929231359397127546260392540597642358973196836677299433053604768676046077562206691387896838923716296932197219692918728314965203199196663819539874983108499210805949277671934344907473494445670005982292248967562943744125446370005824446808159653942429873479125200122082714373706118234665988174257607649712568076996227524341317641549981917577667682312902337024625333019588677597121656167067725531153937185259859796242365865148355189594258189922475651883442781676887074188944489081558663184659946681111755918097705859304718746734324570407858882256427049082977903564551445046847854650332932537459157473804495548437273322942564789036744129722412228967497430504994923049701695424565467093689105966275932517688704962309297793753892101668520639921427958366475907735032873808852724088255948461968184963070466465546164733756537317294696246376615252691246960423531461423725453255064480700182054138177489308768819171916365103155723288307010669522626753442145660364484250284675369896685902130110542761538006665753946501902507098371303334076755956543797995733397869630035493365855164639004738089266456724996668106703505403322847207609738395291635274829866728668210114750363576030201211313177018960004643747688164877106214509248869707001665315544010124039285030741655877217257136720321932583821632327854193983138753388300130813285892164559280702151691391272753206636761897880991935585924360622311503515733618072049959934010894907373281955826305368667093252771275483990435299061459027799515328147556597713186369879703247430081945838341799888156198600396060006809155796982795979449639355257069599620258422396894465462622513640498553313504036696924753608467770033508730152824768329629035395340677781265451864932622883421699300882563488146719312664370148204868843864425657966537917663627556490768289163493227153762995194384415030682348162745894397423520733816881728881377075170369196782990061111356766250893133311210459474532779942188991091673756007573587383542421623590088210342938471716982588687005197241912281477490209040452374834576906027791702589474011984686251804998469568792417506837716517834989092971557996632231024293743347840581703754199224331111195539446460388951409500752155539009303642185569065525774235539251630643872864594962806430961430975327629728190526912615273025734246755307936011741297414874592835896419742001676468351147302392541315106046021738871043888630462995218113413287158108845035991210140445631945085163507130685713168877163223697039287033497220620769544625016511984520857979431716352920253480288397594975372301134743167475735179026460475828350641973366888696311592407042747937580509657858610035719255478941663786635700199443692733966045239184574826102528075229017390720988967295528961901960474776500525787099059693114057097813918871112080854508553490807149625758787134597084048206344365488564283443748644501064324138642117395370968480862384731223052060383132169898820998972081874732040931737461374765189356605113215380549703017350720896474991234321472074976245703297720179145967670362998878717271936847150523532898035244847094423027765475138637374547985280013042010730505081782186036582816217923970473364398140925992407557229482850339570693361250078796247693950536680009852392994187654575993925926259143586039014902207145260693318607701773916527224397876547142906152800231802744205191349005757308634094379450113185809621473822737261587654511227897180655296992944575831741393240284910279060887476046839301374827226028401649657687321063652343686653122376957096989797321506968032963939952003762414020290140488078015095082586546148852198615322101234991458557686016615869882204477356424860978409498317295066236845401663790250298474078613348599160890549918056710199146059881780284902910178383836804407698538094012816507860185381836209475093122895181573050214633700591398471038148864609476641833314141806901258409839721020749276614796024228610473311524533218116127142654765101579664229662627872938584183417349339101497133056915384729508144580003832089145992584251262171896274473658255011570359990948089909438626037444037849759313510334740394163613242541679655106671739068274669828155221833627930961112393198281256982316551630245209462507917981426645477656254282457463829278688331422573106923030991082198012819395100397506296290548589971568360103588453866506793892644185483367361257294482630203638484133760685850171775776645801466787795564327344779460775797725737126886531794405834897180107673384308495164654689104359607614629548970507708772181717060173958743498339132149263094911000380018865176429089442420484309184650119669745247521365213445308309030216471515941714650990146948059429788441776406682753565958617884137946274076201591572941036700732207889935772398593280745082871802491265100846901570844819726728213428715705819783716705796914251532701029847660042730621995837065117620248582889913962265916710028070685709481428948914135707440216281013946296378548179536635973370635200569947911259069825292106340052052710181922874083447692930448646833207950952331317860113066650817079529161969854200768413879498093082301957563649763344657999384051515088165672832523336011990830223923392252055353188448709947405712437500852543429755348957852308696774506215123621994955189763904862375875393887479615363609799788904598533951881758685729032210526047494931091018868503772735533702249827566352792056310180207756911375670163061399958536942103267892052859350647363321514411079552502496552976223524196757199473411217394339440447265173683710967619205833209895617028066614850112613345940279968556562914851020718580563729467158837153526093502507871382286445320944328835445728035930696288507047117006309713372176063961729619361084359305646638262203898999744211598922802535779797041799857543337936848165089121733215389968293793033158656862320581244816940571047916175580734937641111513653998298026579170611181617311827015929781814052857577033827890449536314212788338414159758737520192968466797507588741406235925958822337792691633154989387123446162789532120075072340075511737340460067891511838725509358778718187995424028542880652076648949980772040656518097373380093949655793722357559923713650869443298591036038616272443608633718457839120632164556862156457518414038158928556071187994381263944000727770930749199562283724244102785408558627859421767986907342037648374009185218950143509407123203346049360096754845247432886425812203675854011298899569473782581455130341123101153317388325015103883672015862648532578631904022756741865705133849936726117442636730705736960341678142418942270156523544967793032625891705516742423494116324704282121765854716533310591747494565293482902564514521880482141005570005602013992793241422653136731738225362261315258064355106564540356842438634280665024805562061033088540655996646666698993721089944494622491005123385219289933352349282432054346175437978561582400956630629844522147551128793652188760964668904989823266861313743634396704517781379996682314967333890484195953135091582826479500642926436650559403577627992134059089519915822211506012930728830939398698183347536102991470966866235815095340022224606992119652433738688919749171327271951382247046078877330745391304406610344277857840997409686666771492225010907953817911836529768185505519981567086172945214673111564532046644122199701736241625266624132954354756218933728313814154167710873668826952169183423903442051164574508138594034803000004551063888783389055769286591837499061772787517407509479340772794498358315308017563219823703289764251117827344845386729494751634044622819997097409522621805488212099427243857007924261442287298433365832367925898477361964235480227985627904208951328599397199409571748779649947186272854623348547380722367691861908368208106698304769825053597176968228298210018245294434606151008006172554476733701261671754922291224134569492546220009017422354782436381842128191083866165351108630611874480535390711757244832354343061267341088248650592095056739971159851295069529878991355977148839651709652501269731419646664294663865741614721415252306428330728272807169275834575139654549920733834150435744749222523443716311825350372760167223973674499233635613570419490171750287136243904862379484918351545348648405544636442843037136716218793222169384936811423934789931510948477739444112472229797404457465012666246525886405350492331710719569656214343194596475788407798435168190717277199458764671677763159326951819373483186679975480508243139190970770177404148737701640978950348918651717544792395739769009083943575768735250680830330976242353306036756148737753259055922708507607420638371000855694444700388699184716740164070857461206442304548201227669314882496318090370666867760732266030408440915797486536046179914398766760041344345347621946463011063230589282837084221395424316213501518855922505305471294004893997451372710800213257892833251853327249475644189766171718152203051106357123699156968729377739620766868373783723021491973318236072321015371472658077018332748335131331154409163513594016909341127405781634898371634346356973967746652062484524135345509708374866790766311459603962074439781753574064428756812234201842043736233770172780211297617623907474255333914205448930820776269336113618217335074455853219565590250907681808114486165241285270548204339056693524845706585440611481483228299453848093754021994247257584970051430635974483777860748103626108779799196502258852307537900787395708333081346000665542416988537651019931428563038683246777370981909092923723398598344259374069013367685677165092391130167593011327797868351957438901501510133563943563011033561031819388029519459260333600965219007928393326660108654943666560691491176624772582188265398023887477001559501615073085459270267020881886219011176914006457751246354360906474011525670307779912554047076151605223619544852145490879538251677211798269857065120405605584278161641627107727750841847052715562220002517690337846042450095526535785515103480864872218942613150766568246608143423265369182021238654228028020677532637066745526440729228378764099527464262816523264420002265923921512131488455019592095259972106192944573920900960421655717948510649517105742896504705253397532209082644221529993668767270987261459914664364105547747256416368760335913518110438063559641789131768849924008515874911237698423274620532361079127255620814558677279742605248241640127000993283763364754044557467415829294713188514580221755323439046165381771451276789547889469836324640353621448621447671947986413809706685193560229428190560596542854753192001807814760520452546809937769652975933430840433420511255831036131421257696882383097369975013726728672400752577926582718526646388837082002958014182926341286781053558655698135951975083593132448812850817939604776860515820749082397454421794220601344463926648424635322422003170102331277567021588660703094196585216662582878024857960755617005413158673316357098173632175493399638393071337652143680517744302549929850867123762307401623323453381837935594977821012043536290895841327005083729437487742587573200676948425544510405955379106853250952241767907143218823179706760538558675326549332136699401177585993302810942583959814509683699003979158855955783435160650847228193306097280574373121878253798639791774107118192909298226047479802011957143498296276151242205147769908980979819534547275158995273555292109088272728729539982567112311846328248088456979553301348993147168786523821859456101615210794681136414985283435343406070728460985299876687798952739449748388733229487661790400469606869145716203655284701021036563167298645406748451133037004248329005377235751100633693372378121409739159696552463434697263098393775483704595652904777965959959428804367737636010514539852490540739639906331586527569831891225397481196100689340404641007469735977387295409401477339727207476143135792719868995526876725405738385349705794273171324888083648333879090386384836097600009123888110170238224154003225754018973531800839731934567615212980217389212101358371102349147550869174862907828507287166876832058455493228039715861665483157861542967572756285425243127702414746215182129402933651685507218004140776774017031011422702646293808308076897032823463806993656407732077476413364287703400404326382989068294433349312653066745631577104880058859790520098666690597183292188995145206662108656950547110481170111917846975086818083810370022056604780340909902457830412062777060983426317138513607589004107696100486863165054899971616154926671016047034653777051622246359495170913303839641891520184308841292916978172966431051999207379356797340927714710682471379366445922744990063789390452431960678088662589077645880568015985894846557886103663705208604618633470848020145578581403949059180038120076200471441659846246101704334790518293308861597910928416457235878184538858608517471167347555732227745527836063456013331145104535453314263103862850790883837101639947949904362504090499636352716426037535371708985563296839780187202467322741059950202283300614045987058362990251158745286547995730806021868696881359277443503894802326059967579785247313007697949409716552665512037096412278061272476343781840105213224018259980327837641278597350513013558654023620800702929047569721328667726326497803221363761161113760857006999155490225719063896991998759572997019289681401151090838476971309097709956668032738660322963039876036692913365392561782748480747048685443930079729940181083974389213830750375034948899347624501901206247783098745624677759615993032343153655482669201631258625687938688572337249544811502491530687555824816238880243034618180358150171949912777757115248622229784124401525488473505934319285696543160661402855779985356051779766853223877219430090893484769659493132429966187498016078650516604287631299496918543753545160613643507647413724216729582810910981213084584948343816183581141105923472480817765551781976514349883913589212322390854768289981762211042730859261697787764277581673605084243650213893623784892171509038215957959425648608998531790496346311742960567445253715659630253582846645638502608135187696503037727937293917649198480798678836123989941475935696292178318745158314714295266402447195380999907045368996489646405995101077656212281742151461801498851651484521926640680181043433010986222662035216012300083117660442249109431886548614066604931762302860439244313112580524096714458192257864061107642962906661799027855299840415698707462879593555439724917824032960809277333570276153964476893500572535696938739962209852212233293264768021031142052230128084920201261486664252492999468091473660071126045843684950708011901336907302745009492858544454568787490952344264439845679451211907598937819926868233567656432133007145092959614465666087060648917822268844222698357408453075987862325724865909408319177766004139285195157684637987283702864269864767235708372259293409903949837722674563417964139722106038603911190124769501239191741430582883474993248956028133550666806904632778267896185747365326666070738292975254955749515411474899363521554980325912397660896086235402460152278297586575937084967457821977656535625295296036418393990443056403421337275794188203612479651363430588972335977205109171718337371281771011209347499080036540171323296299403603919666503944120064775059141427377360045157719197385816506515478163772832882713109444625443910291631405030601463136576635264788409235579288336620694884942297643253318124686909945142430367338431680218805812158278381198009350401134228642967074459354908903593396708317048390634188241854187285301900763835341207090314165572439090306585067213749503801125203940441833480925892477871288465927402027195222827097638797100450943281904040354434162344244028130837392362596798779918512523055282757078403907625541941446610294116285508970821040788177079560342927173517558945319264138760305643581358733745273508001751326668974135899335079340634060066906496825932844121550928342824286430433425185547193284116756549142360400387047849908003764850002724386291992402929645331468155399295044331460165946644504837303733696757302250011353200191736222140117392377787344536947645503865673085838313260347198995749941544592881094053740949642724034467406752365708089778609006843582481117878302892641895572552820958208894457893506735603680659446244666247605900377392231300472715657837134530413929053542532124991249278785624219103437664141312991784950293163018828850862426705521345825352781263346451875588947492653959482674755383770733280047034080663855334764424149443851643485123099670925143403505498242906093506319770009462316996038431620812833763151674064865675112077051680648906995696316748510565203585497643648407871849262174386883666973255559185543113859748049467524412141373661094535523766365530482224366902577648223156698076042063020808102067990934681864175367626299232459898080735277799508867120673384991142319100539716193671621665075155963018891392989486116333113566965552438758116722378945944517580828087157133340371975366415989918823036290321724935372982903714902307443381531703136178078091687950807627593357331289063061859832602078594326722297593412534303429300154345169415506408673750756691699792169383726799657146489725028038548224900706669540724964795304956614887605726989727349142778264946319897349940577739394409490605774556083791572745436898157896957649433534586741734557175922810764471818319108908405747003722127936243322138723053561393677935108055106601654589723776168033395704428686990813776170026530312714620147140632081002633606637716978978208209710674083121580803416180447653674366546555826227913867796486239732304151926748011204267627394186379675980797096339673688565921753972525028443985717705865649724347978769306376340042426318574485671292457092423646772306540860031730617859279698217369255342377620363181871396611940836892671496571715876860034807292775469385322038406650215771843480015691250026666190755248939727300740028370403331482719948104387646192622855002557634542024021930576110337466868103164614887159811199624506283305445892920953913698399185318220070262564617406326157978791586589430690039141063328412924235277370510360968724641726055330617096971731793251521936100757363605725773530743928931540872786531406599398147354164826683124249940239011823303959772967156813108927467036481847170655264835017380086913514723068356606459046697737066748618445787827299889981831613395970792261745117224189958794664481153782390631212892535041573053524577646143391078186573119049282757375050005711046816833017560719295878878976626479503391269714230410967885894500339457362833316311596183473818331953848646545509044261976032110455796383940671671550214360161793464931430974058016310227592208681634816855379502436460772583693345495906302952787542206203585023390295823860426982659198839364485521295966211164898912099410041771289514689410361357485422051601882788044288223244999217169409413458283957000816975190170399274849390893859779311073414163901523683164370260040621732061706403579074933556019046721401664606590007629113876984784024131073266587441027157458651000451696268791635891443134659276525892637046320454242390869222141069895284525561601993363164653931470386873520099149612457584597736910107616638638849972660369750105936764002755003957636067089422245892344911365948670164736078931612155165444278557899111776878254680646921422034547576209479866044230789062287920768304903045768148080000510675881572448168802640987214642033065512823043521949712137918168719315913701529555650092427288306819552870228749659594762008154171974295115819441882881129334063555509982693283943002647254873293665672414234895959018329086872450186806001850856846663218614303034394790522270616394488674280422026720657793587279716001841300549531224122626403666029651257339691288088679491335658282018000392763143788530057209546762102688966434142545310976397678431422413266351674128286995937976909351230198465504442072387792435470540088523422220884326859622421424795835969554522555093699699094151487720183961336230595621509008236841373531633966148138613987757975596343608767272088207908722329606318134305984430885816600261085625051268791880358382643918427036402560274528686181224758857369783835568534633992548141652307329472186725522728716705806579038709820705902715240267167769180264689134930948155811511402841886809492262537543772062864026253123085569432496060233708906625414741336741602202826505679165287077349732722977941989290315349728248457713134244398920858380052782681273054391480600632040920186553732669297625075079517757921576750367472430936301908808156621381922546593656454318595439889458240218737700206529513923357194698795189550145346007476714420701462738265309697182663154195083031543872302108854064545531038278028507911173217851944802766390174717780478072963166916174558796325402965988147702690942898013824172895529497790035987124085601372813076562784200576290168752963287244937906542252126838686037901070521526586452117512352222793367278064282128847742199506806134621725996239886509263953418962386736515714630920920390554564303378702756440294947129797797907126532210183467724070484659424444105860194488201305345462206539560154405068721376567557811580617158529027529491788158767406755878047150308508382544586942586289174074560563109590101605407579808407467284918995306202731315125265820969582628236726483891508004155089332664398821870445576295065510573744891032507134880102864707912195528563175935363179284352680271474652928782493504366884469798683742621746799114832286588256044502114487390568903581987893909825321016443251531739763458954789675023864167048960549952287974667471080376165540262471632066971705223252007525226646977789215805726079565183142908155481124934254841133402932227208166121092923686172732833888567535136096824807666330256609703636887270330842150386180336945432251310380742926904882336013336571980795123934749089195364020393333660545755339517967570332846182395906050675816623324156525704402190091708957717052404611986945056226302904395790594528919931412342819144142611019570928047802620456121331434175277518522844702678129010427696662324988781174059879195083869792144493917258264553676471867869535225445787354082129089017551036599212756799285508245818192049264439072229780647541277849008410941082120590971314633290322374379421461895576507609692255430388110927045475066660767387993198329914101784098521721355123553159062895593911386820738010364176036712129848439203006377561033826868831805582686875514982034616615335798058667288166433298559095289264639773779072468665945744690007565815878748430086423444126112539616010668473805482836805902774426067625280209230566109471265651851038366426636233668661531839843098104777091664777109387563175878298449049470518173631967139799771739816688955003277754027085435652127115169848982439894526573169258694550280202407206524623125709453684302219273843359574705883064246917169730722814969200715119539234513809985875583169905714217883156762810183117395757645929400619051385108355987232150517573621446480850219071751856369007023609263495051017956568763595800883110466420308628625551990643331170236379834951679030592790992391599390095804956899447266335582223632959662100377870140657302195454718218388856646060449878671114490320345529391383165809234020251545918659402865529497962096931430765923047211572437446891425966099656642702049186815417423478024647531300531756760840305671136683681921524049012743721871187744124232574851819899443415143058655501773796490036179262753725509494633678081971565163842522864879720849227507061948314029865111935196645969385141238492157576613103821103465449284844950858340601323102216363907991486312978882207176482580759040183980534064688885425248275280535407816772801285871116007131890527256253906229302653365665720107245041238339494338164288539856385899076192128429740789847021486279442460828294760988482108054269854523011162156158641531158371156307830136066417011114339299583524292553047027616700446088339076113977333408859994799410790373210319883539685127201443472918255566479585811610686158591868740730414320311011338905581995698717363281637039790349165775015616350232115677064210997193870645215934932593487439166194075975320430540542506542953268310284158871132946087645234508342901071944981495905463576066098140373068453264843353167819666502899120102324016615290682592838635588986836759678483535248789587880569644503951013655872693840087386933767322400030767910636631938881504044000691740265261359715817365269574949537243441369801302520788847440285865149253856997208644436217947851635408280751240204542837581730276355006080619877119185727215050316630229716881730542949982914756915242441360997177738661861688434850572912089483623506867065573703891272949734184032582434659633705922265912907145301403579698999702708152147002341267478957030003886520479860208074414014773471683327156141165093433491380637862429486770278663309030512479684176125652387419465461460093588992457818858010901965871313479397209028548056323763423584364813591863584653284329989395486330546894229783256562418098023561777823645138370355014546258011035548616142485995315632770892794148896033729025716421977570677768820294233943677915899967597496540326297601508557654400314265311702509871328293286710107356218111028073615947152518343144640508476650741564317799603709287824982171374270254093853877360785082158569364513604800136382154989252728837343677617531297508930996244296240593920636544779790406447490241874338973120438148128889342054027252146566577423517759123747151078900972736513432055390447054879918012307369263993067793603905298854379316586069105113725242762131417615264781405484058018008611130017136848686598185422504148141548852729391201576591118017850850931922631355519523835048450362393739197880995526598946023574638362577097473506976632397999286328506869709285550116822192750759851899291969711867556546667346687214949624091834574184480513653663541850135970409525773043019803136844025848761550054496137001389265061826996775303099689296349894015822478653178532863317397807296847668431157065374801039360257228761989924736377635138837291446192375133276570660532872294930313943329424888907761849906510301274598317996495684327175201224540921599901255309152180399799739531457819025023339825951069712870409109864707978754172090966963058525949099305388037283422888505182273612091799731178167103995867129223011101905994783853324199179875200160071324842526815451662350968202335631999051662487777687321113847870038984047605973659532131454100241156524357587394993056010521460748958458029761771796812602865789310248922144423396189461492882912286768067577455982033934582747497237731986233391223437011114313774913452037102663722873183401859900776697825971088103333677665716983286824705526810427079051024585851156015709358648241651263726934850549886185948024423666769626134189632983832311232113684058202532194954616807134722383441067611221404111749234651153705539713372351770211021929348644020683906079611781906450143809436209041403962087709524429565562189713065082091413884307064502360598496650022616832809057062268202848199268904822712788415851271366454771255365490581095802003774011024919545863154204773659401664057373736815508378037363608849360603572818858618837084889016863216821682116192523765810649130859339309889958135851332956719627243435080228780317012728593704727259701407095576121166806534370813409573597906315377208392796230622745959937294147422673868538032768800086111007157875793983391234598307670319374851043644544096514353265094515510883350375677892028658252299094823199603445929604785537531311381828408367238623761604060301303237012721049745364148723953882611409604215487089703946676276180469367994189195166245500126260525467806975150870775071141614646646760869791540786224416635601480379525864458961517759762820024913264036546185559824566137783760810513902354865045302659013537300266071502188324437250595213843638372912581451995276530510788642911060816805106552998415724359583908329952400200368700894626110598500095712171859592780167382106250156989145700964038016380683184937627585125487717320674876502332539854648559161894998174979967550172501937905970089659514909492245383298922079380550323842631203896941194836375672000450176349579199328346727476496352205436752108499335495796920972077638158728865272317568353161700442812541351247333658594147075772008054630422465022479518169930487860450916670856788740305450552458719380280309510753318499700100018995889292119770860741156972111737110756083863549246967476848380054123039591913136489058511433118135949142603403838352515555007083240392860575535465765975940061104315875775025556862071134224281029647070761087129485928570129605979252261962566341407466387188717422713909400690030901053694625964932775371059151159262152710797193958907158420513921540554006436981245216536078521474522169123372446604933265924148056669186518993518809534283341877060762485819812096198542508756537223368470206258104871132988243793582062598158802726220523846823889880449303694618911426428784297582247162829080945957610530714499959400176459635040886448588432733058894298773202691959204927460554622387428003888733946688223609944624520901419857802820492949272652559584321811020881781583056558652350878085004940711351093175969553379895697304255165848179274507627223861067335603458059421710806630814844140523264906320079537484474022270405909021720133170679788303111696254954334073334578798260418818808127419844443813388326376799132548476234408296004535150963108424741125269465829003772250420087536563805148865917813646107843079234542001248636860043479339416448355418047351218803998859108499279393580305240700337546569691770943871203422588147919764771526448554149143554940738289122710918286047529116865643086358012892771044818774242529393100030713701036805670391269988502548310815640712068192910609529874627859953309576114210652050712750845183253982428699434775333932113077839884371468464368932280406150602182437682030967693032452224896905601210339735641659021310049175352576534832043881425051499026519445473671884318274297464850184512591291712054600612090841525472170070978650329936612360405110845575347016063630290146137930974193223995055258555846584566544607878439266093229333955476905708872176836701562208856049177966624236686519027475134378793737840959336474703991267459820323573262558754635577551697679219474658777332874384840690851105375223061428826699087545184630385470262976886382587431449115054330419884331895941085213943863049187767771232683328288647714428728734855538277720501758920247388892862995139997235408053685095491206537163560349629547233215507553090145175247965740022237510702715452806244435799721115361708413429651886512122574120086628569482981258018782548910895181126249365340243663077097307197658399212029482650244352618567776385261370347365559456006914232080506497545925844207401583468638132682464682101693725197189729108697816234598632706566110477517584533709189093006162828136579860647742577563846114839913567024143494225623840783698846805922083953698545108031448586386688358657599896821830597796536420581037207315494907627705885951722420263065325048882523334373031342366142111876716089440335528614857207081788365170112988478069903479117309892456244967557374957079091009013747222365673630131533065374225647432356264887884877920299413185225779129858347050871531212081582580700930241421342572977892042644751404122945013424199942966084816107106783995212948337120932596358029132185631401514270690461148446791666581788877117102327487607732518162173986818287311765003938223946730427930465090925430777413997982028311722764833199275895600889548211902451828291270516145006342713806528744668939512210384483442201912844927037339186028967323629732701883250185088629457174091406479458687526652955494611051266318826577447791262565029107769566226773337726403721406367603585841702394563752200354534816767188258098272780202792312121427747094925413236273138968812436428975674423345728474335883015845745662431146222272256645531330030485943539144985238604813882329309667431732488360081978738629574415244763157467831631396713531559804506929582644692510933133767795491400851834008125081727262035859431042268762707621874689256841267993533865261982561728901378573685462369327345768625068193401490922726844540051378808964559729663745359904731816723422480871829997450086304456719978876491301874902227409478339570863508497263739738306933246239011374472967146210599328407043286794050160673470745905406292805284246937235626610831042708389415704531687392067085496888816855617873265279408927101782671129789262173819807229701775802872201206107423382394079591360768477927241980320308208291870391131067608024145570026219050180382404169453484032637412312614249287825326074276317692621137705097888566514717953935858031044445068680565638565655408237870281535035449733570643496487244729502773399171686137561573939137162369614197575602308066272205549110096925826005988750167464805243464013684382554789287695158610746203929953279957641946204197583359300731223678972050005491017404130490880915178673520126725595893557696600857583355466609992233222827369850496645016183973663084348693299026045789630877049413331435140658193913092239481071927628417899784319139272068247193438943518729271234555702220431532720450303549070649212280697211784238865407926430669535559558160576495416774683464046946150733976355223540634618072793210984426650937794821021901048834496284333941995013717119995151334530892372754166272103277448678162875374986130315329635066191239431946323077461239008503957016048779362673731550781937341991907645756956045468855640205378164737102806180207578858143526877497938701537420248157590588976862061852643713000639019617051487341222033998568232750602047425580770821847813715970178458452864107907075891673198799754883140552308486408853896291502131318269572460604127966962727357527887933431069390660477960399880704969011199461271322551877199910576340307547573312226208563637802042875636741921172478504469757208012526139558597145887394370469415807480160035352278570448776860857211034348242693796508782837648989985047152510122625397844850337543650200303160559559863896114006586590760343615477013716259553070862098178731893786729690606573471398768231475474723484097734970702017748032522362780390502773053833538006221851127740733585858635781370236696434154341893998946148223935451615921283464202772655704614905544272965607230481989885999968480029166824357815119018106478916396982474981659173797563711099455549280582347715065000701100274785000963521504050047749284789882863222222601197056826826752098830555081584048749281629296265576756323753624300223170315408721761879205310710265937191957714078002768247290000337009909220221585105629778391533418235816367369994478220083737825099555402472495663251956341943500990084019118844976011155412183482566384203317010706252862332715617858203774817371205758673149272823276207972420174005842454099631403298485291108236582431242579922003012217486271598324089214495152890885286210065009191671263980909004441204545567240283894904410855600197371422345372975161887432957933861428913944245578767005375515210482350650449803773142584303859331225962705026357905409565675564432789584565779646197951954177643244532428445832823277757529776869257248342356109075203965676271378904573480760438560415536277810829593607293972316012831330742605395576850477195276158184312901675679926061211142704080151102265002262656762999388993664962827980646975605456688651323730543273089392041544468030610221972197212193343400032976994767797206641096489794339256752995238444559181053871721713286089507850096570544066301949812965062100878681709480330003449531789549613841292202790817680130553956007365931586513470031988788594989845584583511578132712634292197619624823807386271374340693146979451487665522763803637649724678585586860331917556300540441579746119753131843859198150130047384198661850764058331188970537960166554157666866384447599666111537747283357299483268984359819216793819912729471762090481548296030641082352644565686702406449202454195777591340145846306647522434340691536225488677926886415741888668674892308984789164219200496528127039436924409345226025701839919307656715238027898559640820952126681132052736238670365769634328500014864575781989727138761393460416922526070553522374958013925446781275346787289752935726369086223438716881646447058570248382403188284658952312543734297508201832022082629235371543494974588605229104369609252445583831098775011134925649350466527567989783044229490381300491945808108062532539841648687770334601663465122930924116815608309190872308846335548767300611124306935039500003205573619717397862252097379113907370896712043887248523301455960363693819107249222919345120023430438979940276704282377176960618882633482070317568756049370422875800401554373306534318090286828365022768583284806744391236929616793881222292596531422320798600751674573755292674931962000234399114997799861323964688284337382998039049112285932263627202000345182110263502421441197185795259089692939772534496759829431879259223262248245985820137749968043569589084104857911623679153371176264286670559470039242576141599279847119281760338659310899108662863708477928048420906351141480151936973607862173099787727862573258701398666895550114521308301820276787596870096353057476111277962530246060442263607750850532705459787757838304139496400930966344606975570678785318265619441584973123731340221669592397464848230099208223086845294033201929947994474108219844064849329949153190860141882027509569176749210247938058487937929812913859284891372022653334406137350540005284323533688296926080483870931992255993534724263492182169459855809153320719321361909710169794785756373930866239415556172892126283625349646738346664234246217546219464828961813910651433603305641264492361655012080027343537972356223348273509883089814640744656092355458146821936272717769602452118789506438122511297715072883041079682096211987753963378826927636152941810376328807604998206275018277847761685739649541133644711755887971530178571826967611212593382459302583094707336196081365417260019868661510944801829649464244663199316849379640550275419113569522916035113680085557277055953268183993260645602997554215148322216830623350408606929168986060230614598111274254386864438964194847761066236618359974242992064800495746291913340244162475838246020798215465107942122866492478079526291655291214421382001743104815005100546253468215836830993562691123469370389497984515982521484638488131374984537455110793080081208848254642910493018361728174324031313736045737551415671750487676840816412203057352578223023018388668933059344167752285776630643718374464033459668501735204834078323416937184385262461529333291079965230581398780536431163556557973074991065688846643775208288553281841340468017780048264440925998404774663723518449530340268129059647395535834053231820953048792928865116707937573859800010637212983026607053854282468840612307665141473697726326186336534823813408294113813247292097483766280300057513188526064435552432904710109909029710893302659276663594709813418230816072463784379450333565954625083231709938269907899827122232012838161216981022112285590048651106766335876474787106780895148459814293403665844175755195290809167288972275546436551258567110567752333900469465085791058485989571582778518527759960982560560348826861162814703437097119099905597717833643236860519109871483066004085025963641801102629075438287612250705101596006676427310356938364768154467408421450764732299013044596252032678012209222868910692600534447309242091564010803912656059431886108089748242895594428736692948061557029785501252646147183622584134780787272717346333617033215797935268068539165268898156134535923849631935518385133940839621951019908152683668011884692443909502092185690906378362636973083539752995381056560756283156838366965483955712265235211551626680126982276822053271298490987102024014200529059241948525404498848640217821753801790118752907551940024263612134831341082511023229079257520024462028917226155229130648204607383002927748448112777569900101919633303036078418619083771709649336720635791880482192473335303068159176894576469508319880249695108980992880390338596954951967765263130828414231578288520758654940566089766164471392039950862986630789080861359898887326109434283781073719594010418356528032651686360485156547677384778280196862774935931473342031943895290014329771329053979413001837510507999849736629393186316116584810812885673244741610054159902354601680887825761682949126048039214937314867883091468538156782578390334998380596624285818740071024967732015352808853143467134980968598641009915943568434281004957403472603975951191720505246283417277345820862956898824740620823838410439654683252778167532015317710679413108084732852604568155290334738704101077855396583693105312392482985793953997609161754554467145126892368716572417046448274941011159758000749200634854256577006079118549526855130506137774443369516633852335330125906263828148332101234603312003101803619715010881887235732507416670198850740288096468693668358576547727984250861934589723961684871260364321550202583000866271190150926284911935861274641065264230105418315957405645183915242179058221116694805181095609218344345975768463482101935031094048885744287094326433261862890803330323907601654998238719329255375508181586876132599537440028324927729747170004351612069994306785900617485974468177298896024172149635100044328509171761281334997926064460502061196046998085130360877853625027990974520248524624612276691294740316522454336031925287512067382769502035824509060907700185059774761924186322182516030394215552212187119919260358631290487215805930058276777175463448592435707537316519339830485403386779130120939328162040888682022932790652454873570727242199432406249040245427670411218917032853884326620630812693142578428839842915874873328166214355877251935978030387495336995375675927349833156274497613808817797452936108405925802670985884446399523050284754189196784341286336177766259000372538564205702913754970798768740358369445464890904622090943536302138390953854169125687724188319414849847885379397128456656980149157946287861545056975712858989099657151269244105750425228231172845418875225242183779003177154055630331755467692597905557589806809018612574044778550399010518757119612055523030199880534002338974157612136059254825304314636175119682666111922236911306944006232258077859165072985323876131059453012942864953363090268598235860933143466946624509187577442623314313542781156989041343080360697298616077182602240281025034215664152742698980638323189622162727711547670775540182686739283033176934078021825467422512643671856922741401899783944704651416696348751495142822650262707971755496310700005928505820361300757028547587717132414038964908219145115744151745641460277854447906380537139046809872538664465061977712348426428984873051893524810432869313734190702670298943988092646432417744202888717955994574947095058281683427515859450723812509993371756864780668807925588363049611739417360804696416276111618249751861872005444983464910541645324683558951620980995655253256269885579118387413166021314875677182168044054619786455759614925320896432565002933215425525543157084057151040478758561292680592299355286086807336866296853398284674238808809924426503310846757756693007288572100485457289514535277222913053381934182770649660595155208365511104416237096172302112248057794757282481115797133356052423929497555355916493311346105981599477129238616527246697096754910950779724213799585702989441477870690713773835673761281218381251250829366869392474112157586174531963014679023325351751165843041969397426234660304146748313300585199092863808821621011193143856781172462115679830074154438565025603607603431786828152817772332501644432083286110496183005686963572984959068980782594452313488798583797413652842318832796538621904981755862929603511708334856623606414453156610306902525650192496215124880599587405883686084423802500784812075817779858047991247828382025046668331908047022709614505158635777886224376158593776189181704283190287023640541860377021840313810697327586775347555763915707599344383120002832954196728256107111704213555714456451053120582607651881359204682742366770753227452497998192732299870022474231926918675191575389041031912000619334906193876100604336947573033428182044500439020540930663670726306249124306478063173476710253507922565619149203470973907961286862090851682620719598839660929267303144271287471196768445426256603948156855869627483379216632658706972096444848038004628510493707243233954673716791130426444217389139609758081213903774341407027787242803321877034312658006600974809383997334955702574910469847007810067263116064764437504166333912693115454940808229573958017900247831757075336041303173171224108340598074301866211321261475921276947830255783271215442970525111419864296647615345295652495291416810211746121276083338114361511697574268185593209982314625984243345222189869047003227890492274186527947021196252445366406168152692133670416374753544176537945783497598758649894316106761776648979267656938837125001946383160999999853939704715524078389579821937447963213549114590177964461207022290127408302000932835369481727202211418486997952204134778166726389873283991360658348288869366828695756466080773368456646091144569519445842751836662766516006235138061177264435193327749833231532788625212843079237512860172668542094150771833266357277598563481897347774030167005009695527766173032998906711771728795678478834369047930910263578669750948635076990571555280081440193985743518694956662807698332530966771032193591534879110256513223314183929642547855383898673301231992636964294289067976198452591320887584128545548844581860022602591808389636797476847648953432192011979097284094666205224964722021125227150421721282417630332624086012926826644739200094132466166073801640945055573525016056305189345940726787355230596250707480611848582397052818886742096512291862455179030852478393641878813160266072792244267748452055584957363968212319026476978162290349172967996084741714720635389842867446020435476352612015177071954868250775466009961532286967287006411201276568267326955261316386407574720655050316588804453062113051418151513619853128514041972163774858578204909982908874345961537553900893961736925973961025826457721391216926656951390522242308407899275813093132148206577549823171902949208359654571611250413543577539169224900828199185392490625493940989416960905586265364283510090305982706620635077502218132071469689638893347297336534902749801180733707268471379053284733193056051529638409010599586997221175291649022748310982669196255975381408775618021391236674046558731067836615227673575979931920557049342881605504298277899913585188038697487253946264190835071779451420173196341426637358539197540029796360441288397607635873435102568984932387307371774636728173209357654574802729797446179893623907227350500607999166273598634316325840089183153850016608178315953329330144188302870825494536276382883676128355535598213077975723912855964109442846853721722043099373698334195879724386114240603616075699997500240523032806297673709981865407728012241958786380093554488050900111672672251890761182180578990947601279573793784986845897432728257554499965178819046946228672047960360142823366045239681532041905333143377620180207344333114433138445486596995968576256765075325418138151163849742769780182798798697882933439045857611536845116572412085937023234511989464770165100186083687802244175148853263739500302790833366038371799446699334713923930833976780438725997185498789160991810156041092895371152294683329958371489211854075064867507018370381906893575347071977302179489265231126847152253476845349910933040854239670320874891769517786730604471627356768258517189337483639888610385273092328566067203299074862071358849361819220451188433687487962793744793952370700169135724955485214317172071438323357735407534231297227559651789453760203079794732963839013079463309980417364369973637410319799425966720361812197335151994812463799236287938819191042500297606035780683700726531952688214730247548932187405916491566336517586425583602568352898637367788277851706001810780780985435481741802092378677717493200233957878941493107587458858624485987800331671899252867518285041502802404086055650502796055393205140543665934781072813921337430942427038811663129093700073855982136084979487716491790355901001684447010121216090738232202322844159885543505217677650434186261942194907509348113521191107672952395688004339528455037678288695731641837296414710305616227167568352432229168967304326815548406160830286748675165016154931809867507594100760131338026757412398613315934801589982394645623060527396152031904196818479353095078422962066821456175167383494189591989796493625256885572616850061423067005705084437817075294337613942033496934278032832881866101673607039501302071063133068732298828073269540008088434717442142476566266747183216669904080023551400938192598947386805457987741350661440346690170778714267543491159672930148660663990015967005559272015424453471866292381059667740152224085280144034861370587257035229190892861332597777735671623629167418464314064650238799733607938187943954463537359931589450757967116154406256403110147341784548787028073816914162579786396988719725023182861679269012261121826501834262758360779452421369125696069783307280426413613077589977803812110787792660616215747714089882392584390521491047488275219089861542860933736829036615853631257817331771765822639339980910497469818866298291567397280243513102864130141586092319002035952484546991882523185528657038255536378553330815268990414108503394754973379239373222435064651277934538539759022553408802221974109367934100481814414043322544927577690925016272409489798325359634845441524863799465179620253729295045564991131609864806779343135370982300280571683962733002220113684264128150265162545983299859296970111153820105154009634587416767572899533581971278221309508718250216413915947299476165278532319350488786105608772854893643347488060047762274558798227504531805606621832923089483668859063074396933121249739537537238031649398652159484194111052619954795558181697508707649991546624849087187746097710384053890116646811504671824874780197080066506829635443493213969292796036683316586794234479133906530081448082040173570309148027179651717625435777724980392925810900629418500651729105648029086690708153597186691340543342867429358720324990672624230144725541264131443107580722700545142801672490866677442862014452694639619491135981524195622083021994821521531378316871860123619546170289277658193771796456654356254237987414260399804294154803664834827658007424004334403674068388994916717395982703143138947563618107557338050164533596525103449132571859222549873140086605087941488858529823789019164187290679288070479839167411167331037316305401041178121301786195458116040360374800723705919931660024296103263032568845842534719747546364399537165158438264391205135540565260486955791204773522455404656720500406721212329528489344586708478307093992922673683387078246286266103486955707507547740183861117454840395504345768056464270724082820125744386216832599951729167805473386376893391068383128056653517598687453066128505482097725447998524195252894348940831510636144617445950880360594829783993613256598951251617611091623468482629883950236027810445181063092904648803815212903705119243023841872780726567185807196869023828062545989831962119609580382224880583318242385375373668435409819662058025142138001829024712960929220808635070356200666529040194826398989125296514992348114840123561804515491576993422830267893675886015169306920698040741844875905506012646266849170020102265077433370498211872870496065055366423610783377749229226214429073098746446962931086793955003987619719611875424307359180999518150249482264687439076046295225370914706762668760124562947167871481491707907232433099801756821557598729634242538407723114503162375862095150401316668861881860129620871490502110902148859130547275650000507567787099081472644322843167360276755857554533973987685944932948875778059387614626663472336640736335155782415870169281411117837565214600592338274518127374535321683514693122069923086864309355396599576509585959779412920124498600640474991595604854615549522325907220832266136617134576303140327615643547177579545210227829186959049481013296567505634227364358345884977213481289851894750870708735687683956218722241159864999536121397485071398680829496440665278181614979264331238437061475373086201966393375823489061992206266859696900629219898661489318908556539268831415833573514927898924703886687519919000641456337186417572944751207855297564950143596145002372538469849870937864158176061076473395022223775354750695081769940982004062664196122058712714897869530239513151872840060730698802073290567573181973174196746559362873983565374999805476527321728735724979341273270699283098378976125349349419225802197232464687257472391214476853911257294157761595092117410279042427109185294669525121574276439590005563014716015518098244065937305012080716135163705208439559833317251126093350831267813581387970617732722707854192369473670129245668442541366410015390754739991628029225717343561236830264157678513375756630004854979305858742680106699543887680990440988514580285314564183375434299182186392022605340203291246622815067897911283286931075380720861503511809169658950965603520205345791919567753150229500575852055952806784023221732992260249304785423360828374195539869134598161196889983463922256678190009914645072858886130703149946093888744739533013750555100905087700685358879136131393377362176465137192966432551824875570074750300273594308774526811613459238777851291945171610448826988348947529639015960582555378207156826126160371131732070103792245799602714211976638963262595125580329471183896380014364448826473373534270601231298204049568285304679487990731507612090479413160884261289499123895238918112175514398093125804529502250943288067519536323230123226341043399277615084014270562015650876531608199500203311042564489481109255093787962402776270137149204854012253707284450181932301934514485320583552719122894932861868089301799615750069932760562042216133356968140567138504958353572449887590100991540403414565504304579774646789514921124293260473151294860502874371310697913377890095012482614480103021983563854619322517536550882475686883998281347214909254303148672375719382233474081682675304127719612867547749595983011848384314756462860305175302870318310030061323478721027284841421776930344986855083069616765415143227471914990980017960379330739152166170828239942581198100343805403443733721116521189661781300589130915937582766242169201991236360339875765354621724916001046095443269523999203315931382461476646196974456407482611554972430317776796075510531001619899387707972525423737108730008770684764077959342449636189222873306993833651279088804733663139967086467660014272864515315244402944570156345626158165043352300555991347952329043350957418821987868038118190992561886397123383780822682337403707847221401994730971333433552511350373624156303999464883182098617250171068073433121468894367685076505272890633280523324159413324293990927201306536534686650635535959428853794826901128383079110605404016691878588116991210026731965903060220562738838323912928877886356354483175759011385424047099813621066565658843815225014230235093802743172127560395429659215351454640449460304393036685929086407767465480198668793120795452532104363486337871590878160902342320183082136920783144252449190339468651065159269615404719837618872189219391904499380890591221448233206314292318280150811191350436861914359533031465606123592406489693626698813701084373760752108808788480628287339438816554334215308100872002479645708451668740593885217148905569832581963787348139639399771935020920278735791018225240876576407390927729465511376845839842884335563981381362924123240605540659722916699006678743468109028269644766261699024900475234262633625161894803725874004621692832268317532786370807906704707002575581760356035077813856844409084608822615429759144802833566820773119590988233742933830313741239669117728169342578833737368492592650287743585003658429374687197923938037470349358500946038248600068761613693224075587947558154376316060450086968785738582078231979972864504135460223791452253021505584454738639379136566149341148104118966815085665712974979888111575467704909238655821934175498424230986024175414306114698875233839405077646890187508575912751010772304757189686422019502056178281290154190299153273262472018565956247298784530138774532711667356694205521557299068178432922284896392933030388492715165607127316845144746498862539800354668762605930358388509146361791977183750234188625615789020627478608758070671434228945938418172306716043646967745933125310544260704570405560615938895916208227760875176121548505182909891042843223988918960437747055529762958394999467137840843132110969645495017328213467790752391400714319152945544146376406133728351695903874771477903459667256967101032202513432404758391620769392443793099849341868216644725895062513190767513979970034606808778004918858776666933387056869576900719677779159702482615790278026733040731104979531289726688035513565677794974375534456354963294738472079706946978957002397173921539129447294886936362300572347524382685985270261356663306002558631492618984554462264093918470215079911722500520524238949202702270087401033058245097492711191774655662965708307669124137746248969557696149168471419865005625569246227149342054188147444176356908785926106223114422301565692951709141266877417867328870842754553363908248476401099638873397361246857102453741321462368541351807995211873796628323944381546324448963295267098981082879680686828093454067725947093354785384928941938330333567300181004288449164722704901230232950383083741959070980105580441051450263144520705335128205496370578571826862553777508796046833053508633758593883751646524094727668198497726144050596930953496743240732586458787670885681663784721149305401826962941610810685417678619415546690219024154663553234571658243870706556374392122557776467036585423500617731880487627847290085994790925684739306664091886162424351762171195618670597989250509931676158599104517200004217741379866863864621899967673442035523268115426153787829716153310100602535474111929296887178407031403909215905650476802029997078560103736843266840630199992921377826248273317324261849090371015636398352053803956805535458170005824720885477622784167154747308434170914118735311254278765445516006665185349084666006649690059398317259607458042804217584949680896753727895634756430657450834426738787229236217647169372387314615295926445683006439767615564756880429736719117066088245360357453381568210861951337274010719521919221320428255467846879659847361375150662748089180875306789653925990272089956884024692546738190116348075714514242149121806634492947600792111191591520999170046395496813352915764723147124757883147131983660740746166929059232346342863181068660888287267526469809132826220521894541083331037702076743725662103871083482796784737137423789790188413303536619861206476704174363937711256509463523599899131528391721532262825696671023530275477470654729752546072339151933718429134657469393933720774773723498724340485889065586768066335382738520537625415787110071123622566740902808780025974685805205389296697638821728803722750146424003840595103034336060678166301855659594394527961619190440583799365077318637596920398189369795431545133447843363107322982122154589601079030412130219963139861328015498145150972921116678561638580632872098924994839452273696324323493929930916603241275146236964562790068678494655445644519976160427095195690169239175059238191733817103348816571477071879798825426712991251851452397542137566047640540309614202436654129370830306926101109995547454765934836046239746682382942483434025226502280246727670062080878440041675014829152313404505878195178743807385934636758440735278262779676994897228524150605641674299972762679829413973200013579518530718272321735390842210261740126818046588942581157024044501440618613849914310188651726095820195350345212978595838056047452638632596272851344439009947567605435820850688910394301028343789837308357357851374056499125595506805574959311373434425836862259092345908364476740978652574643267647906846365291875624322872890958764313251204246995276686768154912762293204187028152782057832416486645693716204238629408656429717802793195742849587519631996006845119384214380864314626192495465102119612101541109657644943203018724825317473281566352753547419054057348776437266399794563184679310380921896064333489257855354137148988343991048584252444138822832573664876845198631654165039225073979079844080905255904733734212987295342903922927027161204538338016941806351221772121373416795421310958995233291753547069253649889572616861033956435681008258554506809794850613216735234826406803912881592488907081358844461598192448037565033046845579279149098787005923293636072370188288833635421159668255345101418484257375842927226468246805095313190197732497850702883214358659055648602751675785142086074345793072925269442910005724004861954037448280106598813377868263261460611652427362966080225657586213964647757585645253514000575536633296889871944830933668697755938297115047532692634823776928786188665209280063422105602944362758016525878277628003708239478218411475364561424545258356084620191963222278209295876587437335721825240626188532649847117916381559666538135702205512691262636882271509923675228345218693328251542891015862108472934731376222433293641511188963079678074877094552206677564967971373585453824818149619907782184489320853751264417609393030217858601586437282581480839443713292529168664028149571554472454022143116055626519595825027067327254715847148954532892469456383924263579878413819783578918644825705431428128788376474633081548851091367753696295480886111266461064706570358403092813964549249508839819049843477880913958020343483766022610268095539120009379503465196182861464879124787157410988003318782656621506847223699229578131452583401013694608419209484852871280633182002039543584560668356428175722780521917776633107843287849859359759957469248957601481452081026486146468012889972148948918145355648277900521654117791751840639295642950541507381295114753554648202093976402727282285663211106118817990791057878583735447910996489191106046893074317829876626674319680570547078895492870331655172857951605414437543265924727812515081556297500638301714636667680696542157829358495278394983910479030347030430487331690412887352696876920140106211325361412985203626755416551573202737263661548825020503650779516267533195397633897499833955195404385149415436822122401734049508217344138700303367988376317611144737050534295580114249829311437088068502179799219374248384258910940296826064353902133987654381471185828057486929552475844623161705025681810589028266389857959806961740324862094073831693793560302919664665409837302855950722693559316935461111308381632147909972023508765825986137249271238538096341521955967348163353221680850906617012926413351322076346179265368367549080815674220090826139582746731028746578925687809195950427139678226811427112407499109763841584798379175409101878459078814190443273461278037290475596222098106022593778737801906275316937781617883609138177763416047577038106449290717271420438307639223658528001349127071939955545889873403049761622426900828469643213387645233518694417619249011452753932235044310290086930407693937954701004659217509616172042536041320453340356986132331146198893612920026846899854452879972391244655270931687013022855365897950428804055336463053410381775078572949476327835975198609674438114158818695137987297664039574087205079722018945034311408033328179923433821891908497600275579517810214903740426338546055874272873345546849154251161507091877436955522529463095748370491971676027230142068294244442920070530293028725953306589632279365396107216386930775445148620660820693678749996643435969066235857615029819848298078503425477564076078473646789399148410783032888976979463824794456047752117338474245283894242799913437999533009641045888365966428159165332942394561689046046837944674536053737185336377410654837711917264232415474506455366528754771927869557164579964433533856570866174729121342195507566730011012821204319084830704299860279037613092644663266858912711966036082847744894223411659956883807693638453956458568630171331464278299651908106532060629290572478007467741279861109469957611060293062306855712216749734319245996236879975862444904231559952175391362571462768646682902366393625899782583698712175120245687358513491146058757250506928359034873270418579747452327868433840085879272299705128657462312876618961715523206588087670465521105449537884610011310474579849474495003154779901789064797686596874365299378573625721304864547329726803182197874499535398485209149830044402485158475937332919326460458816286990369700609166167971298419624764377497289042814313115613709122844735744349375718019100734574201526886273555654302887282308022190202639603821920615920789390077784028601422794752902397768498401591533455293415177208075994839960743485645787161778600794972772873113676111218240868565196944037779240195415550999701878292851481581594656989470281924614070290870927319523028941169297485109922515350354629761414347507265530520742317725329838277938007685422818734877520443086789922275382783616416989145300499977015171967853299133928112947693499982266769152810612975488282253759178790965855927003215654020196062740117175657859357034241585085633478924728380167908005283323454351377227760429568702794415728808074967720347998717099512616246099860599971561303554291968687334572033807853553182760145363115658043510378124949517902707071417643255358176271113168186148747613198920295591248022202596977553070610582905863599121846236553567208224515805253434754897478040815435883590361047971846729064740014444176961576185875819064329562534214792617180556668185430487768957680701901390921154404130946906268483149199293704774194693559029068777220936590839218912964262276812651055970637394855917738984967644301144250559114654715909341409287610920453544876936372206630428737874472427137330688314219748092086529334583918825017607551296521070757371061472203748319086829854655002277817885878001046605485145073301507563407477467864397747972348035832451429276981628236183693640981517038189600368700563003603152554901767131936817019963582397316665750541346828217150760781842221724574184634960536140371578763246378860012998965878656302923038153729284163124723175314383287720349083373056300810722533616092221453433778951138929360075943586982962517670259402482941247528186410402008854176414695346768255067471179501338876069712899923264837705615672265294950721023845227323840161013266291758561396134667121203446675591192275309791299314596462210934987090683610044832094794410592430441392376037426850545781301297062013200040673009991075660793025669020943724882900364095474664477706848725153625662539220870102090054966379451907645107079022664823354981159138746525797885489556828935055845782746008311236199046833803105691277930372481793473937906253548950156350362429326051862436626480911964768910766449217233247586649493756877507646270121270945308736790058247514017390627103567323613858676563983324403973531215761667073033139838686653959597017478771086328016511318893905581016289596643564468595223678592430728998094380694282916351014071971320033627224561186145591759889911731368770553579245437173978520496062330927822627206184502673446844667784820384909955147651479547270682460151880887979253504899918436474991629461219574570614823090300740216913756374121491678788969880478479033228585065723409151077160494920717029710783970996443296053675685976557787280378946010515803996154625647389350058141765874600833189935906166229447208206134617742232537341585429632779813842146635875338692652484034663790123375457274019079654910124384628779856861338158152252726274226573787026557078317211994176921558981565075286006883086915127597084919269592405859135395005928440595298684604364139430762889975724480352945982911880155376882249868018889183006711269383516671910953378040628403539141668932758793441513629671741869892283472809667578115530613251326102492809227345265178051610724464865127745767985887011042195047722287479862486504440488181235709032690071501221470487457170897520285849922665406641416849374753080628242960490578251275112499774705111355802531934451984119720335330237740754569278310975779373755713204876781434853874793569258779731107228579173687201025109200314207376922708147310679234051135968002227614576881913833864745583293543269642392601788086936941823600750176026936486237773764465927199655272943993939438302396166370805036918100003528849675087316623125426150920031294173327098370264303393263089670288778798779843399747088323716481582624766641691536144308435102032410365402156320559111394796037744193376837684070946301602894225955229590367127940545465103671116377875932419125358136447680658688829610894783549648521729801752507761503185047720048944154475189125657128890101684304085417721717384011984524859346242030235121241847228700644960279494406453482678020229817155321601357733577304024653362909010518994267422675176715072176624318376344097867153256595588767766887219079133354916670330878310980199087391097214980048390328291763033976821300312590715111822629266971387468381623620441804146924949643402706208686184523872429687623156440012904035989383204896524693154703725388205249231167324478590804413125110124419290026897868461739655524038782681153175505582150682097301999529473955937627196222523917707000151140033966312100032000051374061854357564891121345394751567147327160520904871289367452157195547956449861734149266073962094183921529859997779261812815872796408868420722520549423974186631429006927862696800511820077119050675397135251464360941115582154814739291633985182004849942921121892634575661234858197338565069845358148580545756146200274658921566058118859712661916341807924530102472855028792265165945677179725692368843558924348903632597223858731133583012436956742665639515475525741681141960046717222368061158172043359735006824231381132708952912072551775641367501424145582207906726170810318783598220549827753677974194668417905225575112390990063586416482993193438264671918415828457259686504511508329829733712836138747528137100004058041766848742639961063026004339753780218523620688515787648053816853103125545577127654561416893163604998967831586553711917697598350404391398228652765174092276896108223467439340705481874397763477896466447015192411371244391300206790350465462260252950821199885935810413101096777553332546922546367930171633809259189596569615509573063646039227762463674553438676986681123232279484383588557963264988964873517625132465180725524627544755380289911907592354567575370385174855586001770396861353687435568703836573029873422032477903104141467175985385884358186659835805759993920915907998684553252651414843893654936449911251477584044992071211617856461840335419022156497204604754161730683646784456504865501031183877071882836884752269467677753043658143403945099344629755140822426381885381529641653523027972463165482357447973540332223253119040023526775741015084957478029757265404138561427428339014024715923399076010136557562133432231370282302575905808278158121828550607718419050068972048504113573145742852048216518326350509646871199115260839154868617762498430720646414898627580393491500571225972143507582447056668373769155044271305132676837538156865747456035355985150530869932523405796675546292244602954028076917945329292174643469156356208639149644756831377610111253547495056033232707442029713457559560071556451941355277373803821884634473126547454166526507773859496098797803674495595196770635886988285754757793175500520892766513064957865248866434526124299664402903517467165873490215294489188475085161636066177095938720244284848004020322398868828904573139563816024627309340162132632118466466099301293902430714233211007561603276914516705891294152811283545203374849393477867852629280484032161272800518020444648180802822879202221117150518090052202011861004658789087616233648980196992232172252033119052791682439169156513350352445373238403137196785781300047708948159219673532106348320959262149561012565889197665121770102714021074523171292133223610451247525612840856410625992495338090372514626048738575665625946311353246043617715895783771419767423234456180340453671592358867115519244961128691205751783616133684879731079173367012160531673179365347554939959871843870533017890065374389922017143610060040636554434172816280163937026173134396632525847825497030444638643770871352292433032354078679385354397120132804284863828778931825134975502692271242698622382480887748232449283631227451668157653341493006809009746697295238031132802691661683859289381655690008866799012493823219194880686926424081328278352561880640542190391298802328872037106807087181788920566537380401336569653582368269373852745969508791276810237539286252914975630655550633709494283469308195799980293553814400967609338996749397583498749529838911978104271921046843800538565871697206073838219433432613021158230564402813495720948827345195538865947707265000900979015918507032313927072995752549366211069264423261958610779994222220767465001509745206065382014989747165814642580096641377250605653245841539814269791102516767659188808800673509563003870570171915134283770573232364394015981766960261248193696282456342675794710038563406378424841371816220273808039959073198082295390115690967853769468024083224789144070584019478853137566620274387921397140832566169611343290182737114335353334654721577351528850108944652197513762450263972904869909362951998443990779582691965932574039712584344175000460277824875003450037678634480638018856608361563164977454104166434930182537018846838724967869756875691301798043305608255325875474670444251302147145260714222967222691256214047634076821011742396617115536759411760431644761566323893150044365215798363092631986095055975512790972886997759379918578992585333484247004541206242090038731262052244988279865115001297925241447436352373233574221965514964675430445550919472712849505049274690398226821989098029076124584014519427575289916562844180680294866733844579689822838590567970823577420948942221870602570813262641525697203648627010704093822538598135872684994627010942465275216071835777894068310587588936989384658909300360800328966323765201631687399589671339668611218807149025221073988759447226624249274187514428498027504210694930449686106643828992531463648754169404617469181327030237181639939254780897904313950161991086430017886566866571744066442748855797024899856349508206746453163044657396463288969363761577416751207150998963888799436880996449554911635071770587180019977960055651795772540539057731921048980190889222231034254569801145061661007721606449734406031448937143162130499280778818785325158672950727578116884694028205008620609801126954435218519819618704878554273874630569064499998460193320916296831614115677417090060049550423515960301916398141408858280768300322748726079313174426132290525852140942733984692346200221528082892202883859089180038113766350614439340316428908967484815316418097640406693706830124097867113985529154751317120488954316146792788188979661729579288962962110022962356739476188819650999585247460903862867071619809018640991343751603534155741525954315892897332860044292775506826853201188665679392300739657198067165473315002646654379822965034619943742678151034482606497852863792780665889921426732784271566240430681817318362143036079141683681437282984628534190308901718964687275605621204256087057839525059702798469701966421075201576106118512845952661710005544185857447250508032145529522892199395856577553438721416419206013444501431661911269540791606402633607945929304400878955517724487149572498440322143692043766425369869910535543958976923800043931666152731310475874576110622586469638189360320927138748134791038422040901297472537660507243844574825637793406417415025553658055356302622350227219027442368279680673028860814751009839367879094254069266030630703788657234740711395101943272673663993794811416663706987388861513116081675869294118373121957829952019039496362596689088066535734743187856349139436977683433328124642384578502127124638665223649085060390344951319073834513788608262344506192850056951393430577254044808004118270040343798112285274507975000472425670962920230000724960709359251754888855066634141932018315184924143523235842651967709820587110594959074961709816116923889642571721949454888795094510342862520344946923742069716465764729309548269556783296388093288981143994339232265894086086897559079002611617291652609676161268807120260628387862699510933384040247260435854638967278208564722810999596146230079389828649079388319616371770727786996192968687954296109066997123735666919524592852744366976442709423633470902894750054744050807919182842057178560732750995501959511708666925297334158345804505391658208431064405877582053649609191838936939414732965893562145959358233110718796315555797402704503633218353526530495362665849738262365559486698655601453633411887870505067491546384692357251690120970582112237526685474808603473915556454801760515375923503874860196979227778962855914032233583334839567201754788716632358415640505699293200987407117834626357286107770046236133253714441072892871484266858718208164135433336623985556262187148266476710809606637339602569369960531234830828679631459971839182579347006913092019283098616815955165350062438273712125306913707506209026297101897193865626416358682334607186417580605878624922414434569696764640578962833623723692882045259179028256452159762808557766254288251391872981257179321133937083056954875688562393547470236980561322590281927418083862121341301284588371745910708880618123029444796880692886784637681495896641250994041326461902156938135802688487326293346046151045752449775378377997239394164709700015925645735853671793648049637371542185380616113021538780974583302221921935751524959459931159522812430817791392682304267709339331345854121037060287487119850700609578537450009080529054844375542568381927835671584736815534358469932648061593712589799361886439958936421276546161567072155103999917009042884927403208298957482952021640217806314339874036156067837688379554381039308565838197433219418384900802059239305047335128581083022148711520666758060658755794000399107792935311896647340479362902393705302435900184895116834499770392835679275545192110923098379618037628380188439555445432947780974143115724156857322148434798971044806575753689703023021854334262017391290626518963208561551904837084596282783607164259500233055192211379418153389478015139663361983246384843029870238603143072965897756122953214969361660826870715709705218060516427155717962575021871511177242676295388892102397745286927835980835762358703659974622213778471531732491497626142437359257412935650978034528412407054007147687144011678844724449259551216927613066522505959035373581284434235379151280905889688022265468321608649587887393455059193684368771073851429898561405943167319518162021395587931409739410374444566818336368289152395561465889121174656089547614501710850479690769928252753151117692352209365210176261502205596128367654939359432884237460345656392219052638115005829559401222372845659903988382903364251348924552068589161689526879435164520867532603327285718166439063901177043147950090416077105937312883712916072368736688779765937233366267925383772798917794632168821715279593144621009806103888677364845740078580088402136559291360654243475649966257395057864120670525688107739734099292135450480473942972709104079184844482811801495400312986755591449624433589087650968013925943954428651835730095306935751894391402765344329107969599797625962454999749907685306950410592015494964385244844043740065333353464199449909409066113059608672960715672530337241041124539107182821148138219416897225187883068691619099464458468710657498978647065540854582619203360350634461821957412623016328304270334535651594630560283943611989700647518111780104689676643827962818141863073863608952708387887101379069596290421607582876025823115348828588017046519163851901302250027732935535191477031415487249994434624766499763824434916357480412870674588626215005910971858454030639770764089682046579483219398946157050499674827351883589238698164862977089541900672055004460791327517761359314798685278953224129124063041145743917049675844777569167210272684661635658772712833785815217467106399007723159167981818104489067014866128337642191457657826893116027853605108695373294763233072665368015127140732811358126173532484634979221489704071612955847085212116830928332867664573140512268826875076629124295136302693886479545146411534227378513832349426036323372132500348212591646034501270211241864117067268526126372124913070264547452709694355191362819675751372328062589711949319744150421419203313332198180920046346538226210263923261297293625984686091674862006339523064120748659907394995872543591131724103996905141222612839993387121907227687646886962635747798607531726023203272101854964193971709051143900540305357974249466360303404498012797106558559327539462419492596874568062498395473022839292103052453749159064178978593606245282047418608289529801586239428534704003599740072990289133700862922377275863532891413946532081193451614362725470302165381216029918824015456074471106562835033195353890146082732938403507773038079085135586294187351241436985854813233668802514000822980805233096185489778989761610718409461784758420407271337013659977438085265471818239370411672416520136945931874011029342051358032867590932477781735100513857696366676432038411635267652115457334608985517261490790624641391434576628297659599564122840144557691671056933580026148832386256545145433425050234840079728284991658728644375884759291636229863159395973319987263939309653437006109835566696203365086444600525356311034091468995053421772623626844210252610070027417708128011655971067063638556904881501456528016602526606402943293534556757922841884785598712962381192179629894319886119956442058229414880646756138246066683798354689145791314003885727104062914099862505184055033872298369149175364087342533041760759962492658000450705689914976870994274062968206985389034783479614058007752742885189074424005502303010039779201480240528570451331106410128816488756543532011792135758127654787052186887321831990746291707755062944570199444369753967842445443218247770637279380576048313577525240066473310102498921802921853916412738336936922883506118809261252221408002709687158103704943039728645542646630554013222764687113784474187038727510567055745260520352224713583030885972552135963192570575209444902580739520132017971165835687643089357743051864298716271452524402620499385070916382873443458194202497828951866935405331528940421054426185675985792598045251293656521375446096144046011430051940451230655081747416974959315841546081712856602272760631105030683503249704442191781741312604368946659016871778647049742112722110741113643157972721096754562077723144355268792224142156139952830177710220616770621151019970153662857137789083062872126148237725186917540989740473292827449210744688387017169860603649826901889045377392851314982485893137672537028716198427211871293811383596123999224754972876909569614178794042435430685406312312009123896856412956984187833401367079488360446155780000957203068542502665446951523649100039965689548395511359529135662829669676641385995211912383144004716346937799268223806745695243015332529091160494396757006269161662029971574915809329959239100223554893881409533540491904009017288206384188940761659215095255142281862807221831992644543841012046935974185426447601023704811908426544212445005212139776894253477568773643080803184402010134507399254551250088305613862915659366669850668015829668795808586837623009228286032672316365476662977279243142551391813894324815007253583054778343607510036829596401849830973535496262451741900947433094822789222872835490440392157822865488346394563928213415226808182805717316207194731123994806563661730519364739655675658372099627462485649567344717617260638525918354238646935445455440945116992775768517068890514529861934496561574712085173733115658831104343398267984132245227187502715453636988643720505223490250060535536375133812966965758416145529614045387701893386759862660336212143987477619280963363446108111373093419672595378207333010561944143970259490998919750987250451016396668332564209079781376407525748193745573921588334542111558584829901774757005626672829858003431000134863129976844891977759431529003072640366909193641982224056707985229883682120926787571330981240262779208266395135649886864287908383750554186470458966525899268052504478314488493015952861851899472124430775963798098361576707880785836838924244930999986217717293959313404142718000742708338220714506350599413501107794084885978997446664952601949596562922557742577827803734053570447724464495602817042462986942143575080757059027211999927007059094226309901534266995991209178339771889024301037415110675487531836818640297849465767310084462555983981861563407495000629237749409224877286154708979253858704537130798823172034536738054016335906886982492191525949918643370650559287119711421554288921035964664057821980128350938284580068101711713570053022398802288561348431434319424184094557149100801213934336196138175876131019094846585341482957881104694439566871671642029997696792488899869857709095549931206085026331011345573512912551543648629086266657486868659856098683140063453886766402721112410846511975302793294259212784452957508733587085240119456093329391015856580182027260949807974643933395776396066403076947680521477026236442166166955234620151948925384441864632076655662242146943849003263270739595195719942699277870169082918712163934988882338262798777153967704016865442432490537745359197216100554561601800749115918402064479106091855150356855027761022446574497961005606117132289946502803597338659712950935962555891470036374565299540162341658198729864863285179365657675185930453023067200257420322380277589261463003165944199826104886487840710361675000979689476039760150566591775101931744638340417611964289194793579561309277757082727920956385897501225810967542550002452431317130075713988998503241786170239130662123242311082187546612984709650867505203045275404275035718539384293410416442818840712701903904990527940912196556777423691092566854856476355798525685966507789292469248174321368718300003994232708994876192601829975474260683165661434060172778518627378551410647437278300789149213738661548005318024741550607743643134142227561580712651197378769186613583939345298678609596523672266613338967460341021592604179837438461221895327391661473874474419048407326020392158850573464609674289610791642005364201417899297345560878656342081174914196006051593558272791520570471236331961276160317120728547942121361257596386772652717439373497206496967464522045578729060365652971438517382121593091122935788725810052815956297747030194906109277304312855510220104327009078000622584930343815477441526755456929995284192023646018620204368176564673714908100776810941538325129304131579340029898469608691202750390201060043846276543311015077508291968555439886281849453325207841900765018721119642143614794285550605667597391118497053468646467695782297506122534674407771477817981107444580849565381402001614236897916986362120734633088716036480184317664181574324262410280543154699789726786268218908375348291061768911243646503792372256793483765892125290759134118338355910746134692544182366083369498311254237868686103758050863511893631031667561900562113795740492583132558378604432354645307460857907553621866107433385727894933055206356409655297054572001693996142433238508059288076206998917544753249965365500554946475785535089432988379049880144939282546634593512179923071168874424552640387506472475780208410151004143133797469478898279311328416069016912006602043317422192160801638683174149564344608673142294840019624069629138519466091626021913476712145104928564468618054012484660806101334381201482100072904911274162486387484418831605384659670781614476854447581061006748802919887235127436059264041380055875150854967278597562130539700599694172617473842722294671387728337054353245574958157589027335130719618578960498169214877428461691266221649997603473066739655358231904231280282016563605771210667514591747845268895595753850525617162056658152065633847637246151606166366050975946195558277945753241216299477035130203656958039177098102678595280172918586679116164965049192921649085029981372603047634668226439126784037018428918796244400095225822850066500712098385601793805790313418434547192306494968921758154735123292795581221948979904199628473994459489379630232111229039981851817044097253896426074801196499527267966596547356738075604096715681689749687944153468395747864797529766854519673304698289617827188954845161613978133832187618511619809793125231109929459715201297277071631379704089323932754413018913141191959721399000701873365198741449281661825151733268236216317459084691817224088593980241630890477600753905251274642325890563950954815535202591895749815010331179820206935572307666488235671728628506418511047241879876584075099980105549031204548237715973207380521805416187959589990328149851474155175810340138798882218748079298038891728496306658239273904260830024268071497510863986703321454989724889734142183679933273202448895050897767258844623913535723557680124486476494811403002195471360933198721482923261003281244542469892219245455319458198216488663840560913165559596647418976591119348710766252697454775034546522518987339850610233236781543174169831355211477152461548652827937001544587700729656933879410347216019799848359099890130368396634725865533963114886672348746184064351830710902647264130360238788010042969003344903713231288681585753329744099661345029910621048758200521931235928201889073797414743829785141836804865349882726106649801432541222184265408546541292261339562031561614452802469104876139284457402406054566073527177338166865968220235470772373946845739869356411601720521884540104549437075545792383616110994445950719056284751155594301706905116849129807306448630192790985430596705295878506886508788741598595592065931507706390897993197848638324178360637497054910684663650606954364657663370252528432282710246295230307974920390644192784230005290656983709625975452496943004825283587870841824126681908279099999777193215337134815869115501832893287587376623614117960675590744163557078536579334429446890355356753181558764923543249640597990217810296229807225050236562025254965368740582334550646764181426364130962614848458487764410958063985931646863478285318500968277960469200780313503438499686829313312370998125897081826813153024830354429443401335280365285442330840774661139998461236908755239044995065865134999643729181780172187176060899230197047160716778978166254744928707319309685924728515461807734897107854998213736381727018016616268399158276618564456841195122392477177046504889943018681294132240069960235208386194136374517351298929873184750587039840008841608004235472820659846142835471388301111944650922142242973492922363252566195412784684528224655099164725735123756885548229763662947524390244428158812006138235358237642869304116642718944599921809897643272121738584059109699166573523318512656577101566701705853844561300246578158607679477763928940250840857988141214124054217705128302741995290441126237944265932045584831964390501896153762873208821916511237988738551679881299405554503315320690442538533605876762655337363084630180724134524046889166976140198138336950728601452326140258444790074386448670077664459727101716124769176207832760727361866410503098813600164335682523323647544756856218593669673574832892013056262307836303046765184307980627308186828834868669843952405263215771851380633291171257119668522419894988434132018575877311472723762347322716197853406483921354364073539370394070669357229623293695286369214082472249624024043627380887181260348594030300396311591554819952461771996017508346805479107022125019200661271691168695574337218509998635778519973783212669281208684665388020103562998343843422652124328232218015430377471295694077262906619090101041128441738478843678554714979645018324221080926770400799214045706115297762973698212258620847935926087039714691049805902606076958924340081509685797213439467220951563200883732776546613903716593196164126211907186323953022232194699937520774637256968783647778412058740798488096073784942317980874312509853560789936517066556168708965238459988883433388585312197454411101781586847325377276568306190229675732971923179106445482310680899962992574268803119179737686275252143983888026560546535875256362012965239176814898663109575420109074952390125600492173757211976053058553269325037842844883079028796994618042322570203792419914557381063923887854777341262520358673591138092646034890823334206471284678296491610409987727487392493988655932235471660676652989322988521933340278958988124106544355187578947023432326398384468592703998811520591407924633962589214090148298552719620558891241874372426398051459783797572437155650816079768834375100315189686555071845509248012325153034840748837734936808792921824080060860202717418114935769547255303754901424635502560487389523369498876173065467442631018551415085047702140568216072671786360698603608550093858399435904241918349484796097509118946515971050283873465656520684282689644556685349759762497330715515773602705749533779452168595914831253032936394314745163174892740873701577269213609340496597936469385044119287575221306070689166164564163989108749359649006358302913755019433732777791391331216762991001050795066225245259610701559268693144575238947763428673702416026015507460084595546387731069956492418530429625185653940153735435496945707191200903655255830640033437750233695310290310766365049156202954654335348552715692053006670920111539149365140553366235261858462680442771497824599782723119860640441906645221452209453780797122861751284425266674900287061646124822321360365694053710102744105515434918437532737401447558802930195897112979519808931053226781767614577857058372702039283605350435744702551655015448023205207834054753297442114233095308267751751775834600671012128262107265798898134751739016194088394349640832913078044402593722702463256584403671068483657872042665768198674078890990570529607930689459736569252718904543232538267630718617425689548893757775772214497293480261412069587811943486658374536758230940733634753622118338175628529003635855537026398140556623503502466737663931748823179975120615312235895063632362822427095661967520742727225733473866555264217497786709776011253161443820927472612619326601100331534373845993408304448481011191210375679274107260230399733788191411951742126139976069509276853791862604999054745643863454734668177541333205168675576207847149037860682133517517653348994511542141123465738518356089035354303156451098988504967996716234452749282008920022638722361165177499052621384956851216705616598803544587148965518725156554724857488974983157045481417212836635431929410428433849906915616709438534786700657576855140270512631098820162203046632952585051083003994329115274480627285199698297327469008967988230677050950508035520164733012160031477106585676091658814356118314766285989412209821569832980559306353946971954100271333374459004380284898714454080968185415872565006633369117956363720533854813770922259091520554871214485939995283800304968582853048991832492237749596551962864835588939620367052797576083958874799082556654114857730339702775662105961630189937511323298006591592407812899431116270664113460553010795379261567948732972354213897280225360370528309684046456256606870703422362870212729628059189687797639274394149472858619269814133568935026555626022166202820708397719824129869276321297065122301253930256643848678962761828637675210422903711291270327870988128315371617182753296938694016119716626652730095877050735564023729858898178585075701793895180050811755727225717068603871503484084242918035628225803460290916560917445474052582496689205533481707860714329439289056728567224357842228304598338272455206821980531493917737357155733502381184819541645339962947018719268514533776214300405317238664396971442510535150737911297853504190193951570861280545908876786238098092607802505054966018117719605733781400254426210836012135506727694115417995849976273379443537885074620381009347219745363832657034659591212823437250347456348287512105041888136121392258661290809845639223030977676990629331966621665578558415253566698334933016866327106823282654313205718249011164618752443597413669588210843297096382055231521939035060877691371126871091102467015805263971452527900594256626550657161364248694360930206094056097733805499626785180588830317252672513725404733195576117823459737386228515627528678624751035888431406309349704398624847602729624980615832026401574435862675034712417790627800633590536971569518973657196932184208471510216763908529201656762684346262340260588473968175316905791394065010555590439746359984131167887933680411347454503891397853520182501570225957656352267194969768254097322573261752330097740957586838484999467876696371388154177287501197802801749534071472430792510288370313980245333868854445986161971368945926332322971129015453169170460229786313354219113236376408049524681295912733427717919052230917346435385680407976356284220870687695953383557461839315004866612275564553019363456069920124006780277136815214568042393615617344192385803049969701456680381888032895837536374020191634028007289128101425091880496109594183924235902201479010773172801090226653177574653646079001503831386035896876117536535081365709000350531832483806701202702393758523644210386997335846981494407032775374849132823590107337160283855571550877359760161100485421082504417884397378359755658260653331827280668931845261658401499846088729587034256337629444500470449181830549679749258883484808610654003890018560632390485332757524899896275074446911661780187116959465787687466742251906288360338299309688543451554387822994051176267990769782768566681434173536001473385523620492214673753730075678986734503408914802080677360654676678361170156248746356637664016296780392020056956564678440124991071496963802862570121654326815613518072657760333300813536300818027465493499877474906254683423807890659865252775464135657404278268613728400937465262510956976891427605901150065725985488368778492533497294277639976547905149497260078346409222546260935806685755788925452436018622580241979459590479458042893805013321732085978645046499950501375973344207240408090543440663550639169987258479398570331123397888927317602324266089627404677505496796269739390217382153660462772900449517679142760097301230726023787080113452678734485181412761371589623116438893621031423259717765091342330002557386401822440030847887521998240819157774141109844869671592070263874148287964846837583629442184522517837974968264230685004338250175747192486527398538862384140924913460977127679761478934126190090502064600998272140202473859872723038036653216612847010224791634557134192616133533166164743209515404162905338273966793039825348878819789939186172601391099517079838853642411882396542657340934322796500158589265534277004955159540171650498172938621744970291597211698181438923902802017858715912544347635761241089867778319327437753952930741837157049861674488373827778017798113033145447019235194749516298011016817405924361837627479068698420894866361280426263755375737031333940032964530326683754334426340385524404324745909343813730463621052483042973273259725879272634152313985159991788940342197666221862762896073872859507305335438740407441523594389775968788988313991496121127428002083794669003189548754786821187036740123411272456439780981434581514951608258373836441793408077785426147672536807104295838463763205089638582507823447664889121175932054808523684109822751015254640671298117780995028636863923400563141472292931000293672612154215072999014253439047507217562792215870901630651078361458629265439245636441528762771708755726924407403543710926967375102194581699423443409673707241756888436855557078969720118321428545283388377698543713716937310272462560175613450763930287286953472326611574893990003506991000667608027602108667135204651578455766593867059951012271191823914906011988185890579497503354786771340981385595980608675546910349243613511106010196001387766896904473621290065800578691132396317167413319266324408935114916141988744800428471142007348307903722458167991443881269209568374157776564050284733973168572751728521425229932328334894606710441396867259025222669960892825592889780467601672614602031287338415674303433152170107556450670146099200388729450526006332818042815298049008385955222829642402673934590050835172623781927266271644284120738184701586852739773417832982103018132884534126132948163572537255255585689487001574569245966991666988554055081564812972776812310410702371517666903287249598366535839667900911933211413815586950646667805985403627973651094061985140961748004999220314456867265521946480105415219313037240403986566457922799044243401764787827470577439708640263592571996686970037950078822209529737788694861546483447714114806554816526814074638491810991442973252402967710361118006022695211717056857058461588901319453526959997960498767922425052697174672139803374008081461716632169672452315676212101334894871557093703583181857563895421055985969752149648150629432114210599551695411015551958056654715266553053271647765908482479839790903291785767397371636411694963277432599983152689807200323638823086155499852812431968313766391613655702614294647248142612519856906311216556644242703189617551479750972435251910376681559699252244525361371690997395572272801032912883108154734746971175667977394543828375454183039696630294442422581947969470465531698600448023723394522747938964043827582685912685969262473412703929061150756585860927953486532445437563914590177532404211412155029097978187930888855280909311896699985918638650157141428779866515431695105010202792650917764181019985766819576231061038925484778461046329103238405056991058882493991995857963809220391358397599547427513268956808450872776975383426008438658949683458576412974956882241912448349121788287570290273875736188665227497559180508248213532125918611167102848308012653332087944057334838682806984169113395021282267640185519570338151271608702392697130165025604840252943291955042843354877909740064152707926094808754056088883094335399138473101677560060519427379963880261743065284242620548679793342529329051674672322203093831746353925629234308155079873780401374140424002995067977564402532303590189454142728575608880677271268825298830073360772561479908149388674936307950480479064468028169543542622391979815994634042127714807866259512718185411751872742901477248164196378072564641233986299127582260772080768803149995323582393524002338440374362355821134144883063992374625750089688192462289244527532368406067267731615145917212929638963803710278195873430284493562036671632967646679234303186306954490372818493779012778078175252488985569116082547092558307854665837670498922900536535364554087626570751069406726872499549110661330029113361036375586407707651532682209581990215130972128508684865076734469880020191555862481940736631105472954912339920533995885989702193968927600771219982095526850985146051566985224673469250561230470912117164423209781388554348994482422368432672856145659093827423216852238675051483673264057516090005611310849766901082467222739125650807854900758049146894420709761695392624086205780290806379228751021816463420028797092761312820897616075212155315148871029804006787413809258084931445148248645886025961714189884278676235501746144211477295729570156922856644430741046364704095766190138129343473559474770242906812856289664033959949642551614931321663161848217650940386325640036555862911914552199086727283262867036618002080997382703927719359429408743040878579582472892794806432886963290770484092814101036026573642093620313178082699424526944455102473026357072800603233278468565203732760517551508559402383245181199470357426017612465325214860032782603019311544715825995721855057993816941125436671243737001032731733120152471309971108345875899882941802808165789976887008346089795835434930759909467082577683962070237759306783378781753271494508873837708651940205813899606940516074197935285583786509775843737408219508845989863786816475276694701810952134418508615842987579700734696169869612874239020521064199491530245860306806494541407339797840611943985727515213674668822796716044088263483733448628324580846743959010881440409249117926986198070661073450232931295390234291194231448210196216455910593287200031611233602747541930551588815835372195319019851614732876877440451399745013373541909380240722321290173481386542882513229660924129362315647276369469495633499853409944502050544188479548141194938116841074929965761341573921689796696788102449530262814882086526409415234027085266334883537628747859299930488565763320529586363309605605296899907408219589455187712181591675630004860144140050833029327505124166672012123673092711448210905208211008318756646318239013106763470237606834082136393185494678136874929034227811634024865115814911750256029250585518813831478856307783444699464382374423637694369988477456255939824982368657411225999249112470595554449258465469122470640355049932430048452433717281783282368256978124312498619411740830985496726269819915052149515936062844629318783639643036863069658924269768721535236106686427872896137588706748278353224407083678611045111151691370151996239889281807052442344312668600377645195533203295744603063200543048959090253793660046833086290138175179641764094246844572051096355893113061244192813672860927715337405536231257924631288541287255018348075758906510209791662838465063895982822582828872294379127572812899895800747794978345145892868570903629792172127380060988544150463117361626824431102527893820927822294506974131202657789770070918324583160071868216320848623960337993392407542502507298393365831771640443466421878493123781378825654738701843734779436571786140541045044896554840594134881907287191628906504273668480984052829018002468428505499799448598545132578127830669807151541685813161707288193902318551724057805330907118461877261329962131367629452612851405607271058327166394920618726885088907940316158883654779595729030798335465809057997421386219679630687552838511814153331013162382279505556360446663597709413868311979399222000410669394130775186763683855118710665960989929266744568427882311637912275170416665970495166507309560343757735748418383527160260954367583373496738806655797562857469459689846888609356140652398203341304436311245434543233090791125027157272601105777238491548726560909148383578059589283714130363081691666236603800247783296498289153983395989857738707500456298270684476258977352794223473955703878112429357560197775742183997236955576055351048241707150223945436016737099782069877012967453687657670175188681260563840542874244711754742391570559006831365620577225023952255731829141513266335214060313163972578108497420298013988621314930297885007017973886397550668888378194071667642744288519203599280469330584611585987577799621835971813549699712610619912260045726084776920925109368065531443881586228667600349523643023009887156948137920859908067764126735736637990365029111950131075595404788013146974933400900263491149787380851877126187936914353206462477718077209206578128099840421802397094882930779976849789409431874331345244808739425587602844892867446294709181926487195366412884659812182053320807767587625277393046030520897116921369964055858808254397739916103566505054778374885951761266906709486471247274753515851857448474984652480003013872310928463154481620363502983220892635805004174479500870380549860563776995850316369078134586679506773907571333062612172827190641636907320428604871130222942201850432249651128299633849281662233464514810018836424229304924776461524831897142451397678563238644013947854538326936790300803892796909749087571805946992924500856115229752769480058897504725038309339152535552570529785210893139092045774571122484756174686042658907323274788419849140192377407586407633893128175814906210764504426672393454187155249072449936852317305533804701730359022995518131422086118512495404329328088535315912969262751189628569903463971627053299132090324158618383195565331439895251861372447410825011857567254301758215568662045268026145158134818560573229720797825190325682671237932262298421197852233837120318402527693547476296483478894845714638399255007707981752387074195670440513949608473426093841730633502331802681367509277931527255508864336497710002999906407642640532203648252840388454954167352996717192310151656511258234072510312145815483257420683136830257777465165298931761570334166099689178492882310213974262292306631337336519593158477100170766544296763911707142321790650849144280970861086944672618035438389620836139763769509615687893829305791045429484905895052089181770495205205698100320086849429246096682837695653002861678960509680486061912292160041223245066653934738565587279474746014749848292710353978003575739871007727547570389556082086775794142692990953492875589080493705389776042177352166492732849966314990374805147867237022574831272292449752481457762498533087185848987261177229376184744478633561410510419808118861260127567323365639902549831242102702192372542936895619877357866375341161086869451346996230211640313694878030855514703827212287459041571441916076005157338728233082538705777962355206030491960106971384711711038894264149592181379348653085784757818341290194045016876201261706876292110373735308023242220479507504398453096569941085057154723410529118765465145018613932468901157811011387826870343223659486127381472067884628203834166279488243755859165165823833625956733279221103291936793586933772521187375576694882736615442470391841913803129340592466667644023759134064739966408226003162955585399556786627398494306641424266262362134313283876195717479574999550620843575120663068624691377668771206958549539017124861408002315064192082145449812287469400415362085704343581382787014691871994364465557678222930275656882794042047020329395771336467271464490180457604102716932355934545202291627539203591739036584230266801775019995188752282089124535230395583063413488488132691830210372206996844647361698411549333504167049871637086890817086805512033216865581422323687609593901738995119650858401297891371830832182637362178035940544311136271745841620469680499143854761819412899143461758018542503329471252209963076065425918275798877594822104050127072683490634150701285407122775177789334502427466152062596436208673193023953366428381293855649210166702050040779107248367957048844467277374077503004034239818837562073673116050739431243295258322366413883312064822042622298710652055326592340177703697474956699007844369027142818305600418817202204468775932012962165851627572960811800917809540410701082939677731806795482113737622852155797937345682809162383242857732299952158105963666220783482249256469158435218887770312949381504191737166659929019485495400465910024585298489709733160749703811105784372891771795781537257613822170752988296802436876834618106134662976953293552946103523802171603871169836064806337435408033937359980908276882958734353086910126783310391323990911496914038472265531445513518136304321740508955317602779067013870719652903770969564304442377139683670653607331830850211426922980506311503642922748283571754520599567705287797966170127604722301721534743422298257822871081968802339409186032921504413334092758112979508885992728750810292504593592444908375358537532341471391636628051976571577000172054232330099189823712480196444142549442721202287639447599322840124954032231458449750640313314849705241462618484322435169663853137242838644884522428252510719515428457576601219416460519913555984706157624945590111482233315912469959292285550689292572097417241852144892317788012613921650331624800572959301022045788705798949743395389385912404737476918225478718858543894829696596584651197074975511542443716992866951329215688650723033506822569680533407711693673552910846613467535907624783081398564874247242652333066789735153889165924031565785541839668917903535415912744886479401539860141694413982197542258536665798825419064092758271242613754068705416774574310798221291117031591806350554778297984279535843431491551646449657910775758753922919473072844902629356956028876758622243206530174927185278402743984819846525798390104348715982238317050471198209030369536832705253503039270264683567575312951893947493477520318457991914251904686140348133301680962549293783768275761147335541035545975201844813887980939245667310620469574809723281368059844143561302292010575602589786445804918082717692071690288241312267843492252351747837503645523359502429407418662230888167018999793708742330653259507282903716469295251708995843897464523468948013033349273111645749476569410572504733044211396353961090783788814372603823289179361456423188041326609535080909695102840997131998427106461272978095637610124822818678243480375190012256343857106939996639924015431567584274327795086840539857293682516884490520185697168773352635619901678285099076311055432585258392936229208613922759764698281177195360923930890909168753573951037114532217152731371782727772291169311583412032326766713976564031130630604871327348794197031082239766688100513626488365348308522555327682768057882854357681689170031720891689088923975998958549275799602307675933611225218862381587960764658048790500573936879726349365751371293012836437905657822068280512901952509651887286264835151708652030539814547360138009548437116292718975417380550992579237854443680970571636699593716162184377461536895558438012891841665609081452851618393465743991241121400025405657585074121629919519614593157982102644811623747538865635738930246195446620947587296615704775115230620294575029575826538402107734369225539690140681791537110746015978016321058997414117998571210091140130879701069620519402388786493067204002795285676487463411293786560718525791521628469332335023616906430622210437811949919965275091807869864482021895072774103240648778304662094927886731564013348157777772428621157763965257067618386328214822616022254126595356734643515807799250404269000772588012254505975733851146345340329855075478060331359145458844251722651485949194997543219446624128409808581181857918879749881548902353149702707202868841412515087516458070966075289281849167839446755239411287104000807634095809303534822835671676981485946206981410706413706219888857996108722090794061071720338893766477204779566500349846660044735421062874151798423579235406490889183871579932039598229076797262812791985464044344891531167228079985260248550224146906751455512078224995890266040590664903568880203924122758200519225061796967187961858936492776000133540078885297567917008006891869630333548028285540932938283481510317859169985683149775278716715147997973453496654175087772563100112017482814070623452794027013583551490392743843491793461009391114878514379144190765327697726558971431234083363328563203175937227372306453127810322313890656522525653408203052899793992177932672845968450275506829884392868489524816576234819160282593325012211060716180311996097837562646273239179654542757506949266515120688358528256069511170220342901794718134151630824684608707204951605080980702032679662692267807083494625894239849200318224443045960126528118947017202522636692041973755052619961932851523462674975037485299536096122114041045943657302258014686749014467268466692170530127028521828567033021774483576190983069293139749692239192099035519103559104414045185836528165551020716076926601328401197010018311878897095642407007291519389060155980491839646197973010324651748636536661455947919954331425011076772840953911582351206694507045972083628791537856908354368019969053904388278158996244089078861332276362990301368837651008276534310615901673652587455300343007393838611614148491249529757795963227423432501465369064442202049436983848661004970282657935663375021606135721573106545429057937583131934586655278738716055894055512199686218253774721507833718639621071619571468694347169963509594137298012847833332868005514734925657203132163252501781458397372142411864474253242844661084206137090167139731930521558445661158404514343965098594019879438667910985053494082473567491580090038620743880183136677052990776067923038824067779397161384650663211786393353914036421789551910345341833529431343167357404585398177070384755245293903861804467683203949997432847334670720393609482569346892361031686513995104895305046804718769908369045339777362546523622459366245464103690562912485983532298797288915583558257725733948144160250074451770235666656549248452410453862187526054766225661327800801937643725264526172369234026219163236911797084739128822522995134691756657938632901727110756782283120149636869311339764213372598901202524398261542493678563375813457765309367841101536404315078515027092595051441498292705753922380589909014293801872978903713878016822682706714313027997040004985715299419722940973373686649885385979916302620751721086378915739789779088568025889455138513320168547030720447167773872726872479937557984574825657474997329906181323406141633117621803852049788648987742714584635583351310805844681857165824608725130098632398127136125883899701191050686614108215220425051004687678962577635570216094632626042255461337763963399010298106949294084421801000501841375204487505801139573684566062922836617352872962422182823266812249967072584515516661270428933816499458256171558392083039792714714615929339868769046121018971242339687833278965302500264538376020731727336470775551518221912961422304514008354233181199582002669498091990958773274153170024634749930577411968216606150765333013905748547381330933731447394090480835298318808809397321003151474528103481083964776277516480977552559465946273528563267222323341314491218759236603828063050988187038046874802270996532751284618260312960414607605564079445241720016082928895362036619038877683753216241177864066060570538173621261752318380411661583256920022746436445657515737889637652817374512511342151814008423555435400826196904876947953376867198276291743383958541781588958093211293880966351891941999463475453848297194175485157654654385137158858641054948005832511076267839370875015099326658261814284247774629147979908971048888491586717838224458344591732448169740911733653254834765246091638272965135303967991661535349840364860923661068548351640846250602837966447668770768092028345936922190402702811905380734851185415581520897267468121121687186425067751921382627856781857602992683589861403275596876661358070858075914056949118171020965803967877831797841190719523684111006317704274993314499782977313436324539064200811206166689471810206504288244032359307168660234357656828813153257164850186403902204356240637313983018608015239554830698409167874322228130580142252384901094351038950627173789804227959766584669905307100594264495836736324621496426031636115552299644250180161502707818115509859708886734396532542419579534762914339432990940576795709039338672804975883620372212694439682382560769593455208540500649137463829951476964490363796720796573929825845494332582825929536802033317288517016449918939736114940528776045935883757348197229089034181614137112710634516968287960250692921011115419905641535356088474980123096125722789309473900103747645795584932023451394406206876968954430698956364071797391972754601840720155676765530062424320006393108594669697253520529106193010745466026695921003692945513878237668390693174463200830415394776040410051172766264855485620352583898944729615395443818476641617081297530816418553216481067590236441950433167669047051232594972962493192053932601914278375579411604170279008399609027084346040132904755581175177843396601054743586805786872378730317739898898555581500490348836359672146881887882490920079145373227045025142894300504490055457133434477320834866512316375234483106766862472375989157837135590191215275736530427391717124746030076990721732291619130777011072022480116284078861106576170997880358961191675159506555359657870175301222938376108652156294012410245672784013586331666763697706234750808789153343826981181380843096374514263530383489813005386637182777588097989453196516305233879050749624847665350491825228820824613675251281522229474140648590669670999617719741604810954044678856541355007629296626922408340779951437550003434664827187917597033483284751308719101582797877677769628578029994833012714445202946293838026845943344550401892682069923436422013119633524614360596972586087687696543275985435593118473412704055858803629258327080350073782310312671695444306681566645550533229866033374828941625799925930791065752084848273272527530765226174081808112207573415004759218558353520764612503612042318054769659248589347827534469371010552753335739098345223406075027403152057989376374990766944861622220340156631950876595861384554958008340234988809158524487794001919097989676073156507650139531629355430284203504299602724785370895832112328771378512099354093371648508798447414352599435437710873402111143556143145629141511452435870147318072248103108050920247117530895692754937807850602421848153477876325385014410806982660503035220541516127475676244643622804519429660052662041861910589311683778614016169763449695645231214910019018653355996187737040353858404774607230915556177848216052428394171928905789808161274990660362450595181270500892428307507541106176124963142742502889313120843507356502656281439561503071590949996658884103829883775748469336086127792875134884073179206150752099147452361950653847088542956486338859587030601541386202536242485157467583207287996267649395816915397610778185810177603525284745581776796219748161579651001737977420800778101001786658740772174566164954071353863852792991482380895388144417574130561623872411138033692178815358737152268564521483783374836668855230248143537369858544979343005678608594447157207581908809784735535927889084047465034367154007096405326280266332352615976885938335034719001476800068185132954049910092979520815626697252682745361194131152568776224656184194427560907199505986324250401935598918048506427097279471151867714273575812435932628969173236254982796387204706944099429360475463540895981770191097998208634503094720710292140804587194807646731227930900852794657821911088640592155565886468815085623457961094299565239105047284340679384846218382172178570617287531658447696567311633891288751681009482542612946720547831519460441692200633753611542209049187229113805742890438431353201730078521210078475187117012324298809039616548405580456626123242514964185176997199730889118084170028838469617577219604717899458788138646048773538280063804292729538807213965738592286393660225352932114868362138051889978921264627025897395032681382551599609209280124431752639732582925938851101713004762446030974047545404744530850066354121816689518697643990041314750452592759946577589998240522753671582706258091345983030278809798192614273793199136848112374466392703887039181110106940305118631431960765107578094841390105407679879512761864022401430641494255350614302361093356761576870155480053948602506394472112514399912945113827545155867238295791712655878748344895709409950797018792487973134316017483199056211706015892850950745037857177629709510764184485259896401090087309279087277596062522667340714344672064958535082962202888223004762478622699120173977484975395616894624777176196725269149490986839562399544762255670302565968289730505420713810037149439766669635135261923905787081247322893575469570645081695399681971554905216187899449602370073072723516571827009753936907570752941233687798844711824728254559246584016105022295743413398252491825185752120165787564510462581992836665908299361666563861747732509625986793955233284805369582894817045189254868216656320437688351186628522610598279365870246411919948261995735917115816954433701678223275143823680774501490241492347053385530763337858149424084188832060296201466640950499249330890243289629332111560769869109205862477131422144014715884976329500437659786470358367611597701756988124703829737320761011730402264813420229697671941747966628460091911178140082390358111907225994973195088017488037631733066478000195272601384663814662393109766605300672206356373799147744243649007397628010760239160761817955751549228461318892688639098493576667552289740929357276489021734354977297906543375281188550126470814544234007554278871851152032291651169224386973935678369273746732403966220328486125025373039427587531798781603376016946338790892672255541274090286518897520411114720432648443002280798626793562377751540595157013575542486480322231540477184409816552950088012199343750231269281599900401833417382710945318643464007993026583699589259118030075135341984632027075378448803874222796718956220529346752707050866491524389016229020421727713549948701191754747551074665230623127867480729670523637786717115044750221374328083776808386811807434572035108349429580894518554530659456553061517397415990784780117432187931873331411158314538292907385010322094588174870890916448461044742116532636043323532781448187373755082112124128856677013499434913852134612353560983996067944290367517237334989644806484611879894250256243518677217131810983485000682135025762630961825444386754732036045485812798346417414094911088468100898217977355805592853439514326662608433850963680638249680040947988233992266367292831110691746728864206402614785723418164708130906928267824835398280292465631444753483102043458920021567357335182828219696591374999392461580081165179035472236996554341041257789345477792972629255630267200855145026258856866897239239080132973811904444532040796500005044373697580467403523610666071434202364549566722058392997880238488673209995761702880580485170767716103738461637423988270117899319350180378710975797011270324392509182926902339283630801088869949510109128192487236539502612701230025113665085384826258622996068628815158726362645430298707381808379259700180770499760321172220473957198374589241815006553645439880805909887466517567728268716635378025736024351990011087425142765559326423962262991123432904406133464991219243439391356952666380880324376869501207106539453036313780398855997430577089307623608589348072017303364598235569901410442991433513476226198909781485385530989440681171123974577810691699979620071894825982399209132537304506092787293236280379697283050019260981155199737668957139219102944049046346595064634831843955074078571519103930415205132015311445519965255499141593141870739947530386380452427855438662423619788653282919092731449839807827444445661068992177510199872884921428613810180929539745453685508213612130186547189170132237522509382811621981698041635076921275762540825146865492960424176290759452638271225600963037172521531610643814008487411347979076870528963271448070067424034881025971077828118969291552372812912975539275953454896820311401701899446902515866780855004700982811377987143151057521572924101921029106266198068360681576193481632818986956547224512553706954888103345048954780837563876040827913312017240705841586573780398249201137592442977394305290244408894032072999657110445277385788314375601688772507679329359024466085878951430888371858191796628612329759349083933233801741361181968579414641312880904478920984893067271071040747092268308352461055483799096571201745441488637417765495236411892105891959476976138462396243115421358548322312065965514395219329960487105629584047801002788199066280784012253927883704634799160384706189238058994979241691939265599597238861723599644049331120493640842174671713100710483391206045654422542037560335979227546076962988291406284336795426448818263427064777674220296357153842610204346229250457503786036703248689428358750838215828851850497974261584907993136969425812543783151820993183802935757086384412646859750594431960304884232188463443873475019921414451500159280396808281399171008438612342681488609756037093870334215888846552666310650050160076116751426868635395677636371869944740863840334450254077026475297724092603045200170676015114880062790901379131834896686532596020308129191059052275217573623742532977036683691984841727185073621576778310748464443688095272293893513489907785882435633444766600347950534344115456557602738739665574509754088585643523773313032215558673444559394557265130079728695335860529065232001044409411697813655700770035120086005172708358312464501961731096831505538265588316171184038062293025320339628271165769570290070375455396956170771403005642167641719610938729185501458181078818150694916426172391320751814739416058827823192700055927558654262515794853410329431190879200328446405067616605148737871518783548680764386601497465027419284043889773766213462064347510530639216961973997035955788117892686661281653157235395209129857467649873689393013610680661126341971374957319446135364349223612585665832443861365551400376746191281489675508606766875050371070816803279517538433219979113950695998374447630211874048587991381768154669037228554075281019758425411137581788080730068653986153571682674009691068264580974259174240362107830820804994189543834403913476104265743886893625545792109565883907463827038952559230954549936527282127333455385066541062120506478351557100327746925724579353246327115840251702427053269495114497697270733872753733619300632002737437867302805631964789458524561553178702011962352856140548713309514885684911630195767394581037277482926852258352619930764597837261856015801841113837839804999697816912869315050190139718803132888886413251584761949233896880835641459030029797433970293915607242172908547425240479725308891945988039105729803320811198151551225623295111130167150484740932883828879444338398438361258379263358021655503091052402609785547785954143804030787447444577849824169193959400227978778544829509756510791021223696816094859418691359824426538961785312133310196038105216063573508518678758920101583261451112259469302001069144117116272176081069662260355240018729868216051882063981562853167056639910498624819975073872752035172176748414306434682048197441406223710147352140758914840815643427810460102873711719614871084654489601227128722241153417918967268425435147300087625335796720316744360159552933109230886647418389346380349714637049122648751761861213878556790911136503883103203341368436790507502571816622354926716961441395272905902630440925445597207913709345766194021321348687084534171900367658637414934971603529309361756592692974170462150383894204412666995490433184979397018143330522131977921833229480491234754464910259156144271211102337179446176969909539493222578010817067793417952117322413591185786875896021937892286912819091242002209706467722311560603586481275266531312719220983487457867569239502904973398355812156478720390946718310550318533770239136244047940856497647287237864648053928372569857941741363940910382550296498175499804744553307421783109927546347399761039625246622639467687407794789160686558585385616728004762555379708061306277735927305635082569487872450519195525126944884837858236047227259926899122303284087324643817663402509717035363640721619320003111552160848167735771135662530257250922773876515774278894858656663220267587680260105434757129687272662205168750069243178582079140598967614425356937818401089056271965702445263016776542239042888921579950954843105124916442913051021712245573485648399869220686103899170011445698953596352572599302794467884117272514857925749902574003313154209592901801609798234542500463930786800662151339274098183527158572801763248071631635136848311691630531683214209636977978445844770374047874050701759149196899711598408292494762715804506377808232143910249547591434888422241347893026116894309724214998520642853250332747219528613761602957365250762003802974182915110791399563994867609738933411650994866354945225432778237885058591128230752728623080592341131027494174280774753250197684901315494379676065691324949048061397890428028450270008111578463934895998373337171257780829357867347772903140701070065369746361196229335712647067346788949672585742736671470816844525207233563806042896118236870803825798342977552856176385945324364211845258844980600114007347654801224870666134621023280396403818390478559973839267172781186455193289380614131700727848008163702970612612636787727684870075146374419380042179074978390522186241527943649435775887284637926639204773028786118862886858057850930358402032536252158468249606726505621070969292210662766516596490581682278650814594058241298226423481332515241112714307331821011486069884363324312688085314004867852271779904229132108052528492748948647163893275491380440326973480711820777388847761946019195786649806790649267150343264042254024575134837436660007155890449604359232236178032660399214303576965084005526379067765269941607816778210908320609572451863232884363424795932480571933513926088108766353325209462831781548937868774914052850616546277614138286925560235584268863940477618362908042549084755814181138876887273024264902266312442436684392650746016482461539025030439011684504126202920640491573604023300277043473698085053168807380389935039211372184992567497809084201991809064498884791671727202529631723873384776139497774225295789526686334932221821422823760763105876202016414578790892681482910434974705854876614805220752247003338695572379745055403486759386002573555498536873769098584275674496101739677728743129783284623014072394106287205253447792269393200604176888273271554697354693213909801101619702065627297231821204893641191974876474823791760160741484906047443373992919495699288058790883571919308202845639871719208549129933001800535871117052719444392823005225155079091229460317770803689164035808589612479451168206108531546414367756563291009586546888780752855876391646019797549534154321781634671044317223927662414425149610785049333767959614445611684663343722382585816605583658990748275661189612191534524408973537205901881650095896923491120636940743603767201033000394088357900455269263025311741963115210532926158143972639032751636610625705612446372219933532549804970152173858000412894973640296097232874335383605461364024937797391068144208100235274684372236798348147577145017996350247510996939614180946631556052836072472879762026299001687601713370812745112843297194549290740765722855533757715152221460900626513234554555617699636713515242930996239288205574013624000693081981864209195315474464977743082950906607212620770346881723677630301329321069328415393308457409543217386368408371480401829663036971407249544978082371101518453532438203344450702169277618673033309868238314175488542759123954924217342130739598619847868671074710961436918929974641114490003063761851948400590477364297501140974246521055264656075774965750053398297788871425507213063114431572630186032534338060126423379630562604409066293978408300509316985458013767425784623152336607266440125702448026078569452228165011872645649457050624525759376292352318542423862099714195563628354546137795574056787612283792107597283362385046646595631839154870310745544447811784965146772632196581046338737250967208980504744210110213444396216541273246749453342387302005667911224280160793099051129995397227448580353169250438171154507320012510614676525052567104505143955076553665585976379515855362439608857699061362154974485318529038088058027147448060005773330897148808677483937400724695946006246314697733571836572206434219862350382185766042979228926132384681378734746047956840378175445450479800744989765730632454999008255125152601953477055642229492013010531675418903125333163724131162410413385109215120298584566130324255554163663152145724098884781043441491236384371280597125826844255352461849920067345195938276429034437692729571699855717470972647767660951737689809698314233686873369649635599966290327059514633094056922593689459103029391617154700557924359307780095606561472735931161700244502095822405125558402945459455266661595012575900481811036951980656328830439360137365825347030114911936456532431458791375724893415361389541047499495444795114649099910197033131845089645602932823087853834427106264835169079939042178613018655878631991147895125812734768616666664401534592903789995212119922008838892233185879199387943486148193848854901750933964330208596587270502275632849096268680888715734092315182073267403612646870917739002519253981391708601202893074105383865083915527384437877765254703603341703318819188235342075847856772923151819022096895347793462467813530117070781514759982453835599793487511411785059154570547824835555947344396447027371704629540782847434600292566721445650056348965932608109190779182633740656858294192750535372158497858892452371010943842220641994342023483420760787430862108492197842491823256921958195287843227677695971241359450884679197003615969460000081401623470456969640501315125297116307131985181904147207464404149945167004651239286055317762818645205384065299793828617421427987359433749050632661788016696386536195396225829373749913621070199356795509491924382332659894954185970376273576352036552475059819940144479626041771829876345693129274437317418708829228400357051787429748537107969896809546829143325344605037948566690200593527664826885273769576567580311176916464109930521700135517668591576688767194320328529450710066271110002598590271825562059085076918701285077491452777557616820619076153915168644868162798764351840767482921738062371064961448024672688950822509372966532771221308042535269347792969689369289237963043468309109576805926217189872078264846182433433182950548410237415939466831840373044535659125764440888244801394931520671845933236013720384606448495046185214200810963893593364247990244065112010366212983054692856698752719357998884818965011621569692942060189996574198476265010331459594946880563346174160417363728930906418884929874531326919765391831832164161287678188752933179974204138276655901464139221285945956445204267987450402534660312940348445211916465780976788431174914951764221456994257393941585947363940309718912207254310135650459155422927700007426074076700031096735079359005044217339230840663433357008086665114080599901316703454309757628786374989539952444504489420630871624603686616177729359465515473040688815253113187218106726539670406381742797481282429887316211748025417759436389316270190220706883214965687097376027643116780553009886559010289833631463548859420014505385949518394532929651507297967855594220878861275923374274912086405646554447401910014421614677797469129679572192262869615703093954694787088213738044429712720353753782303228709145247817335731340546101160423856069305681678555614415625604081238510832113866673501201586845672869575100408184168667609181824362162535589342633078131052012710568518076607143704290813710190186561923065195687433596354625062345895438693163087618771151379547564899911887407124874355855350635584327256533373563002536576159987364791459339153532816875862058948207927219675269849036814007862711305322042178972734141359493897406342893549843249726213488508317019344505533369904705535681859436524108279579438467401813272638969397449719090763999839707148757753490656368778672809861790447948318301946967499797754956932697575169444830277098627063923588821352148112415355062751506977833574932037639157329497244764283637139209671593945621298667818874387133337448300182813399918724696401877654698126722475036143938336125397443526063644613466318025384395416995479208689548725314204174391389458201416734245702589382193696482711355554169839888583065003090485710242401573104861940421210118503181472128882184487580756265087603877465217507483949965843727118040689507284750911681915347248582855194010234490270641221910133169382581337276823519280933757339908274774601387336688189112825349019593706588011733214290521551363326982399404364425178521744171419009591144329272434455301196601107859762963794137676237803552541379714488014691844489787821306917123297489264625638769252537702975319805964094317177619880526040261696590609539546231968484943423816573473686587741926612807119998869759914478349837258639157815850364489595100519473813011493828799743772537851840908533206700300697458364661698360993318408192027165501082778300800828684692222652688302102795634822210039284260409469993585645289619330294562941891113123181160992498390922571689951829918954369848384281678181562702092053944278294638940409951146368274049024156396895211607884986686387196474760982483407687611191369510370588236242807502937938316143753462781918849597794050351070699723852271993410143194669794911062330085996987439272528880218691378836317943680128434615791071404475888016853621910051997821635941283025585432598961130732410631953762578824081024949021665450026702429850150765674559870060389008680594634462955011680219721421962472249488972574595313749359989496575832301235904231245933358487070196234473263447441214171635112182694485108647764090156539076969221219132928618474321784418949187736850102712672136626685734435093141350211851582459424706854150347116846825975590151861318934915467815408495577511333528929128081774003178029173971262350949712955548496053011617552362164893902165344074420216399660485795311968027799445621467380763588266327327439288936379008240310935835198254472261172972509653515020721906785143887494535014565787015222320967795026387192858921541900627815845403620200640226189981053934575301733007010876591677137625439909947424708629908300201777091135266217216713174976419072333059914830469502432023801140058982558173137556910754842550323012526375377261166180627858928447670625811561437378108462844481585055696949174424967421997551871764390534434930215572261796065289495198882003249762227071889105565277943950021200533827950456477889471304333596173008719922811892162401069323975707891415242543963419130441306203125135171822751782679501708794980836286749893359918099666527833218838617733601403469020799785345768119229844160695248249966623290679652031202216129766512031015679082756155540280519017790555851749325665075252737945683955098243968246803624458293822576293653679230561955804118417473851464972773876355105299125678191707524905825026363713209757224979336120984565403225341475963141696666318614016463266590111899181672506469252218408455703327715222819328940237008958711936951083127268065411261316342575727813007060673260591649572534258468558775780363578633766702089771279707431891677057205692838507842603011509780323933057560434788592875110499275818175936438424944195939355060513924025373513751929614155174540644408824517912003600868771895407315564052662215473159980533765556032322283388528976662302040136958832833585884685711815537376404124734388675639816546320068863866095356998366877333424462044885535228102264271423828378966697458468587898383767301452748616839390469860201163552378759139856810718158446730919001025927448675481951643001050206437132280369618997246961611650688300037565658750774592284915678861587823964390876697894513991330561632190602546471959278212290870132887003034270792515343680398749131370968934206386604552792914712591780154420644709539510947837281610502490091430604925734620949138372406632536965060314533041747952414859327088452606053019095473401772284259353370402974629573405497120095231381205268038917138626914522566001096323663864594933890398374599396388090944935852790922111631589557152923391632527369618246431966566977721616311946934863046531962243639885449996026850494409805279382557903019677584898894784497578480995743561120286921228575432463975945868480511671301722848650834909373714327206393438185665884939463485729303719924334388478828943427262779692725244975960405017679301527979640955680794555828721381260299561507496165214963475964390212177152423062922993388962063546246684829564994221612782657612451605112207315072666676157896573491434300958157277521964517445477619960350252466434126758405995333739836107679630734726379309380760453894125847368751824558676448953735021944617037478790989271585817732204660720943798477062578724490169499713887610083858030870607935816569492088677875586233929994888398225555675137144099145050862803690610399481057303263800185769241975418757834626623694544071237398047379944252072335302313350726828660328803256693440622221810753953338143016197546954289927516331644435702886235185545564799265515382756726470064626946170769606766466225765873052264017797021307351639785104110400108550053177518760433181368184862553530605176778813083075856111422681334820352191960376316697349182422390819386058316551431838767560106435982244698981570243323706682633251701335400411314234305366977176458123621948809832751534369586051926008802375452648736576851931588031962698150643192256212148644522062043542930801063382909918066324976325428313179501132070862117555226519151508438608218218580638507605070588990629700507112646194509509783955401276555590284591070519029453004233081721018177344020556142373600691167909399061568920666146144774619970191812229841249649035471420340671467324010883377322818549833650122721605345373955597009086947887339409722387497450071593380835302519134103835267142592893189919086843879131303368788748703000333084982146219846360492440647576245107845655362236063257272243484496901015618556334012456530169636305026163788125441723985736467138272380383616068282826814373443509191977485160670258205745881720489014922100944957456916702939323558085137722638527466129342728037695454606993228132587615796976949123209132375453492785079606578208095429171646178372009399699546694393449573261327416800829601255911643811959639059048885497131864061634263444697276253015859950606866848507787287021220233532106383259454686149931538810547925778078296834259096537417893129350784875073378521549983820541845510212143896750913205096910383805351959731342432032696335156374103307684941926019269745380559417879823459652887413856370724141889190956713512149558797857918816206306570787309346330391926981928027512698395757872637403222434928506593786137884259243664852993951428506387720254593775924690120777318761810380422101527726038232903152966103984966053737096623226697816988509066394140511600351339942887219801904445692370100078939096222395578248492795669217280350392582937271180865919505675813822864975760748243358689236034428257597860574415617432431676794950627118968005420700343440414369307217618918850745296148392753044584206605238830367978887203813703645534671109385764322271956052302217336666785735505498898877719981036028388897104736903282516546542538386510658377207277105273015408758548343751120670800397260753869185746695802446968334185702442867933082305592917786292293140631241008723978439499792368331079222420583200249352794247956894144574353895722424450215582711512282298545417249200259098332989845660100223432168703356790592042769587217719697360051810512961078310828747918821279209666947016620449122561131391051257693443782088423710128105749555429492152351123494499638797319500650129786672880479496500511925588450594390199382723604365566462982098501839090028244991112865986466072120460052222059916437233409042234067557764610611887545464066061404073485558758515547429162982613579753141447967362952022972333183372830946409110382741009498258460861315944941694019185848702894083142035216372223430833604636565410940626841942198839066673169517084164038021811667379182735272085263015944654759045859751477613412088298445717254325304424690387656620495032363260167682103210131067569634199660477049567050650918763137282497092877699268444819367750163635272652124232441269150210131162093917534319986958657140637017539323310860053510920448758738565417676914466085671573185739040312455958748866086839785480500141326893549268814898871114625210668855582576661102956199619583791221617648299976716590839401041035606130418387982310141244157208977264972403692922754045171458569648419336150450534356033137692498830878509002782644348096641371961943262328555867273878296676276434627220300629993614015577219917866310767256805622876185257382091998568969701232894188608544808029749281759134678138837934934340867712893150506727093919437745395595595620436491820621203731592189223914598611813108368804188258330946489946782695974731721335984880825098134277932050659689405246902381637498427874633947415340482583769096397401269955654178176238115181524448836523675115210887791519077184663094667453049585879986793229975925168485599160707616912198155958840025014495046970335047721096954992639411580988550592061202908579967626079727763730970157001451811610409905682734097054435953758007591869203717689502088795261109021202675350813310058709847095192657538822378327956984146591917992656634123915079794024937097663613286686611017179315846819071954731603363647309154598561861210565776170657368837708150947319947683472084616161644159983364474963688895683956719510119912646531470513050227710144121415096083413829114566581250159658096930700271546660738347035146476632975456283700924595710142819987364581212132090651928364737141541487655398320283539105837691562976737813585956369825305123822259984271364047910093919966772803688771003901276557390446613216969162500526598166315037302834505770529952595530744036509230287012425999745130523987540297815999814468545261973055307926256333507118492098401164153476410818014371932923049568069663344594853025641018048422429478746308288697394541444986604790546956077919415519788011566740129297491225315857828432675849434663976402376097823585934432016232648741686219592197965318132152577251504543270670309000080814598225019256635416685033179730696144774718200030042556284422522846523571519660816998459989437503976029695492815993119703812097388766062818563717477989845416248891081995872622302916854138831875901890874593419452896207910914718802553400462584089589049154135016019801671004627065737865477897484056867074105220066537231750860305172414206209545350770844172907444576433160832489820151589640329793137717263753619779024098337866479184450414343626972669093154205719268413435152589289085516870378722650158675594530250367122979409570357495947865223838925967607896085431179988150585608683133082134090677192145402082134215237088664769351926617794066144254674008704822864485113666382874097133720946690284528042444788940211263580717542024659410872033580230567404473936237622565531127639798891977422327141381799882474985138564614613366278166778492505960849249960625055297403469237157119651476762973044561157828852676458200696391398312840430319291834025472513347386892288075072166879199639827654877140633355151290064617555191839457577619161218386623734202703620835689310188721401245198544894076685668844071287440357566498741189582950863189828020188424478609999647034552865512915193874772107296559953063272274695082996063844487427230754707703260363387865356842552822822292143498786902406147164771236243766890846822260485833190446415249686529622636074607322150657233371309713216383792936743699746085469047417544261006794208700895670331727588003928069728680589507615208443862088729814234435016414220538776099522781293343061847064139185648259431433824907285740654017712927725115429807382742972771010580737708263525017397913950977460046916248337797549092890639942181953581160140308021615826503615080889536148439758800547276601227915617279634288179603817070319268783751732383950523596566757467178046598292741825974507630726186325070809405158497452988317562837221093954759596118922760660709267915815857357414623545835336881660326820274692704102444221076438426168582586935160122998617225533163866224855695359819604479197112893099357053147528539923864748621594202041179349820943983752182602936504260814619434079035291442653549127181316768930277260122807515182503962855352670811597714460608895832123527124115590676533179730276836308235236001440827259538981935679443144841866862567683790345052809115999541514343713261866721615562236315568977907145697606683989250072055042956459445770581109224713573809004681841933499137438425584124820723573926151284191928512777610466776257324430656298233889400782021388766611672246975140525699207698791784959304613611349399516821334356737180408853267913842093452451043955982639606807882995983392642769809489665059065173777538121300020825828693265776987842824415115955499910179499945014235516176608720571825319529878217559345167051767978443071244158152674900859208294778426559684024904249413775590858428807765662112213149581762560352859512726138712120186631092523983274958611874772083757019844271625534474608859903823870955449247678234154269140816573221835921005838300479072832431075874537444877947268486237615320453329055726670286740553916139606486025957168706899745110267136187521622375717969069767048077061377448148934838544650085475348552107018087547710566050804265056063444148660015847251440496583219910523356124991266171787529311411060363711481088516409269602783400931723814241627931178927687232484495786748748747348984614325749321699605623490814508239013850886135908557853550862634007887972427866050415565076221799765271776898506136329156192193710508616551983254345523254117336993296337069016351967162716205049361474522897321232178247036790538460512607023669888832558489209562024468827340642661196181710441976520666328697593025270383944653508815199608589585636039215027495499153635928921148229316885898989220454023969690074894769872376983834943822926852749991006919029652228764754813980303792415562675187048509943228265989511105976568333210207094693428501284836242137418682559226069676135087926982970504598063847571981681638808380641074344611282881736026088499575262548854906938371409385449661679046912996187788187847072905656071907699520385555686485166541054626697357583306288111667431428958539026717610951298693197988977708153124111391423446072288205230316055380111075193348538596305952214429496964651408593757555122268442798991927461299563140109458688421743214272116260029679506075200683278410818922001229153760825422985303103858212663775143994015085663844578468112753427706198761477031326387359941746417037524281661478124899653023356211369636768461531064916845108939413589492269255121773348323519147715473851920227744869415609827901427984728838644988837580700350059492980700664634579038355820732336565780505022587274347978483617314021543982052479728439110872413006890908233805213383375533594988440660261641081595954531817413300757114408214342758123952742350464444533257169709150246753966202067644086848944811059308620410789737314689864729414826743572692953765467659031259703721165911972275228073025309790396408179127692955017042038956777451974093582713030617504646270185529982458411224355479936360611966352591901912247872214897692572619288825885914277594683786541760652469000365394155775470701319214218493681011670367890139048905563674313572186102351136284129616806544358365488051439103361446743750206147577452730150742476369362511010984415250523267335727472925622095094424870635165856709903582886069850363828949204860517800222376757312480744511579118824557918917620188932375493648251355068571447158768416888142499611143586997151007255171354675862088164895820368255838842558890194940325204463171636857515965386243253608987131912352184190566711171861738843902737508623109473546204847255556711171770744597295675127986753150371323336145138746033658854943450266395599735767607927864977096681310948848810573267666514648794346307995436190532507171481650546747239978884367697306246262399953527662253704797855823252635929875632665530907802614413036185079849807500806558284998989970718833445170157196244492379164487856381704406731927193323478654593931535648474992279048160956431620001968463682144713544179495694100412629708696875865753704386595238363753955093882333224503222530824805757830165648563362118862196457447502187271694653349842826063949496638725293035806501829988405447123795715418023826446658014072975218439418033440717777848319699202563605840338319774875854482788229384232807560112352265880173210395977676004438370011206250582895285189283891328561527691173400322648204123028719941165383748042088872160250856880892258174200846100506014304682258426015737540685808378243267466078868353212626350097869408180394240596823841902568696038635756214530918424701498505388310317874748233314004030380496587512700142150731369516043221979230146979163533578240129548700462478800389174768749896659582390131081576047961192260612029480385945701750333613871865253983770637098152626751459395573856959853689824896907661609248357429367318078263178160650274196168102185165395082095634662332097843776139979403768676172441548715893862810828141574787683386517765488058052509198282737099260454440390315205102121654939046279468951310664716216301709493286507675586969678165874670450176644381784533990071893012679089077586610807246980751055833916740793687392836766866492436630282409510747678888658015954377983400620663814641713185312143573987654633979523426326404814194336564546965114515049255178253523657685606998475449504414658528871060174824992359963724077509183353121453329890763743928480537342596256415492470072612885348933487767548291514406820750695523270351048004205160409310906585071311601310306962852706438537720367829839636426600583686978560782400060769825113331231930002082592377216660720969485837931637771408523366318739871120900782475055588068305780989897371998278618141836870403191266647197542134353762156173952795887511559404539900961616135509578448790749529741609555324415938378077826713427912889932167408776908750078633600249843799384571825444240552076669751588398922424517683436722073065656668761251549261895508151966334788217172356343313043145099200491400999923272387930327613675759233337540604425968430924918292915006095347604942160294719518776252221483316210852094405934153244544004342063539237177238234535307256780957269806653128222761635506729184935236328418161296360919563984205765366307677286948542424105662271929612548809962879103089897800787572196125140133807618931802622329549558212355571856381413549024902916498767707055433932107681316408248481215968690121520742238735449500552098472949791097741895101148980275552091221180740247559454722189346703164209733867009861392894277629572160910295151187486890391534874465663414065494474263131878712612641724639936903610396849909918060166183617990757063226587084691713619482501354322851990860865151767613946042388175071049309093875910536798525328197379947052352301211044306363286441549387961703645632544473337047122018935479058458452801039638973930410441209482385150584368165759512848144637545640573099233824750402904888050232028510988239727938531743256813025593558600819771385746873232395297392562764210029553479063995765186615318513036654576932234631586104005970786293288164645907602071922569609114867687597547530247544549679386163370016672477804967031261549265438485653861313437844251500038946448755038588535278240192211571526634593750947349868085920913609505593816523203106689841473984481300586159181934466116367309648530113365476191914666667296779461161565238855806559507739551235093581224486695472094531072969456825361484459588056587700864817203792625051323637490978895735570723827502569879608364436073558036453478331950035908383134035539826177962011837576142489184922767837878014540576134416439579793095794134357066762944854619814986448203485955000793202408552854370072731644977548076007943565987369618042770841651927356599255069767933990330110964992394113742497939832288893764719975349525602748403876197001168156188057955506348495758783902382021435230804799760708061849018454526371249591713285054928988352636997050222858297619660916525180676623462580472995783772004456339810624262643553995393674653695757147276045802672100006438835325845241622811152572311964308307874291958347845309433852575189853425381956953375643433799227307997570386196817560700328080807868275707307088087980347663696337210603777919335156940854292042765549120889657852463151338133134833001526055876175042638548267314117724696986981973127966656734479312243197256191467457109031168338022034283548248143833642424837537809621243112477683067006657788931158724071314511913592335981122850259101714248312180368278769139432169009972800063893546413604180714221709649489119788488531941741672056733130774380874142805777539286520848344122363650544485503365732411876548752115359045329531732825132614389607289077255433883311943009374293767670851517500310322925884867186778285065008400589918401065777278269198276434938556567037204074285105088773635039292572188242623427701337806518931097953231928223937062846924254930279949807834058931277946092616480831931008425568226218681700020684004856622401452259058717027919568233040768523950154556065770618078778909124796985630142739492917203102151997699314754614731797125107827524026160377547331877895779886236526809884010641639457528101738944959298953879166316444043246154765537277872378480514477049774813429687606705866875215305289571783702541797739098828309475852116053886989457408315900687641333967310850384883075008833980284627484395593705526673751962688499837011029140200802656058874420945645350785270234670866724580771236113040213820554805439956192681216163810980209179143921901706852364078440092021132686420659369550583573050652278477918780794423867260516063812826814505356086917049804144168325507522376445561530072395284964436906005564930561581460162467575017845216184888341467798995098790007296026379708532010300020857735255944858431517107004141535213558484560618025971329103240890624246495026719982029978884674003689863257654086444039712372678388923550191069320894109657298902582558329100584792071076959384973253878998115894520980981664277239108948333960059323953049411561581606760656142779071867336663817264919816739814448539117794946269631571704414841932510505972075370041333375771675694357903028563998648436796821672739055250545798228671173170863538147070306091461045718327336214206729583966973350535423745324142630770150523585526951068680421662513394614728409334123616418548806738118978194345002145112211439619216416144674926271987253397941615558803150158755949784613830245741203488485537102833436551335632454866953908627275184893035527439920742283911033099578302270062044091490396122312974240840869031178836732580088885138449179999844381423648541561912799329843706506735491944175272422686990768967073267174729094750698981915916816100924026149024440665680757400151859450578753233202348341990727612907655908770343271828647421972208622754562314861631949972237094225726646932379937318292102903901874953952978498009160558116744052948341235596918550266813403340573975379083604393202309168696587778797586678793083360005305013365131912123395706013887677340408750866159933189319394311246604902805292929839656405577459178986274834107786081671419999037970356827767070130722895499331647268720064333597154521210100320051277252072234519998729670002981757977012567738713339684152192911545054406458526237847347933804183579893030412139278820392669863003148944435999850599130269951269309628168983089810435480634832477509182677571992895184968135595341505881063759951388433090054458234782729719190920934293543527695314534812024774058499379560512635686874794060925608278107496057020708724713410597352517504344761827409873432849434126577298302805055015175547743637415728934017973587336127821202353592991321234479597949866906620939950080949482939300296322354896175395981488815232915046198956676789839887509259761962052421222006426051183160347641039318749335972132935960533112307402260596845779772730435997627484081722885725644882534428892787708704807360805837799324842994305599205426982960516658944904304474093239737589158294050538878230428537236670440710404777859381204941260530618086736726183184192763799018698352046584293860208897428002639519001770217374400559985294907296900028184436763797651614118609736110370496766659311525208625517690284365630385005930475966467381886261935779207151360110652256822427004404688941133984654276318804363907526026852168646794454671108614459848304276248568482556201712430687301075722954928448819666327769068145435170201143832726926976057346491023182472081519467758631399124619138381234771604052383571848290603209210098611744007558038073204438349837948982154637542296801013153940641383826299773511275503241537559552356094519216004181216006753122617410990171211308160818470135398162348383233145552088239922741465223407192859191320628330757401753576713701650731136529432289016829499954097359639171758013495674218588683287781513159351542442560034963655426533850959658892181002043909030713959393999406736101924282168705437278530978328779051883080432978328649054111359592483052138776044104051206000318216885004166597096184791291935957379162227820694957159423107666654010078995859173123673662114031391027986684537594510552318164485856630633054458917986118122443910495505687786680736474458757623050074926270701592877703863033320538336914792751649684606659451401169258349953934193354419831402412864130591306659863783142232157907383633359187969323522188093037965287060870753757021476362220281491669107505998858792016859882829509923392999263425699771126435583418023771934107499131221630857939211547161750413047488062299741022066813713926881381550998030306625086208160495066245226165390504458482836139980193728886062806236967544713663437490971726487123123507985202119739662262857849825233815932614952882189874960270188430392429361152618409430095941150047508570998657617781967797550866344037226236106695035143224374308109009421929527828106196293026367371309038096081542579017465501232536255312524942463130711661363756502501753773748139853941619529562526726187755742986848316073629672464262136248905614092828989324701997882626699189585566945517603021674707443235465055047507912333939547059125764765764300927066400374033643213020864031196940575101624605649972779564836478613148287127564839271793292453539298246574024904152575050823644405529331683819405559756600366103173443150139528845121280981477101455143582989209368529396058067518792571532038333613658281284666873205845636436947954115090829958715804696175956730668146688832968110571693973698378917038046549386506732374701857245522353129728931004572806429212770082710964301489976836920558882742518779519416703894630293833210984918742802234083627960183789887000882593913705291054472096688065782313229454878249502998362581256131996103254976053551420105369019191423953288895954236282802527402442343682681799512248427156281555398857561665277654517464346717906329326066285443638978842945243881372219609207127073060996503958274055677360800536514272411449397074123714393883445302190173701948504812981586100359318482783447123475931413070981993769964417822077908992995829809642260823426138263305210425877793898174585381234198255107105492621481381071502296515222825102355534684138177400305118893533804548353419356479559844206552636536434114975667906258057705590048795830928914137533149956023884892025469231628023914322695725504456026569314893424497310430863478439305620219102150472480167850725400134322785079584459625219573928674551643908124478738128750318020473937477290315032732110120565502689116414992998868124259034070654011258582039862521594734926895984059215434351434521212318639118565548093391833245491936397661277828935059726012334410898398809312985019072008289183394953668697511125955407697813876788045979800703368626803336174607474421814000163915432401067018598806946315190337588502460234551676339527759565580410332677160346749285848869086726104341352626404348143333890867404038740113807899196403745176792699488651861685267767961756848710086804780564750986435345582526209848197438104585591906213606554105354766470898435547645828769094920959261437039534352492425662140243824662665994185548533710525783054264498414046238469063342976515578151752624830209142029030931937949740609035573876558747470351315914797134362486783813134810379070197021029947535429500508065156402618276542444926986583625665969152067395453747788286388131924608604784811915788133097432610204966523043393029299399410686518739427970100666810595333980792101363719611690430368769676446993114237726677464830211389588640142460602560277519042909657582572772999759310872497577243538259123704712245430615884595190191284228263033895790575663461867977804978698368461968878538723168195997988795202938687255633971764469357903770780066068026250018204526074983401068027770545338253094606716092420036670125254049465404701864716478157465311441540804776902210498462680158118903654581857613239413166523730952841735650901373827471892960965416547265620127282839905021919723605656289052214510216391249501956448327397341884931120890212674092489046306620762299214828716554625031541913788814430247905442776489583891270369414550078318633383116841294866346027262311006081613617001017288139691787690899379382563451572769384825731401425417347892001464432955397243416191915436266686648671296845319539280091477948245075153146897157523968679677660085404539970446383762945132762120447221823496849769799854045021905564300861327092333850911400545918971650206620185794459474887814439228676643300831991147246873480467255919537742907349385002380140389561184424880259443104935160229420269023860347243126583048613663719321723823598521859789856618716286573642888625635340313704494394215550614902547264780097474517092946294542814455424552161710292554318781095605319473393811412115948613681042642911476209002661968512351613087203834976744727955566819999703592204461712346474319811803344008627425539231580749791608354867617462308833651394045002439020624041866720054790918073614583599414384767465643161218675765706043713615150438623471932025194997218689788752602249953415741535933817064429016839366552886754837330070371702020669099188047826767003199575534775023155558962934296498971253670863317092363329202513306511300215312050816056756404290340470471851587050523129030593468409823731532413236266493696687455952934279991427149010839376706745095383165881480154330146245258266459323700347041654888179639158857670741238662133283909295480799343844251861708030229496118446023336994152444764301673025876890263428698094270025604881222183156288447236029986697907889160303458212060850400981460917258006354165542939255731298515512413198488364443604528912195572444629772498717462048585263378998015122875582409061729444474852506615939239181883686310337568525022245549556630134863261986230276191573470976038316122594068314578450239081449420521721448824186532336371923584184923382869206267114781054758043319777379801651983902714381782074801591206560760135470209689364761725203651692707038145521400530625948571409671769925306414076748691971008610914817904144557554195812773494149686751706948452197009562382676445586503350629634073070863487216980564835938475887101063850128489176286774722779189947152712788654046425766483026824627560840261126861428395579123647273922609279387109056955760885512355774229556074989284622755377310531838873467916841580998692173072287067609851892679316609461990559727895969223088305940169171418299737736581640295367945350702777203509627458424108664736269098005876506017381817849956105045706126281541120957475221502960858126688355413922198880917066179320482159192894928604634033837784708208506293554084816813366699146511233299185509946201972246569469958244867499285641126420501954694370185681184932680848324431421038294070637454125079935543995749298525263555030909680134326362250473267105437252816056769372634852087145272291205279037683842187766686806864711336188976442742159786878016600916301366026404644622423073201374808889054486974331507085127411236679236274368310672649633331677457911276266614193928643808955355256060074271450939509731171500021448113595299489207441067588239821922465344266853465587896839122733594451671414391945841806216976050616381522230371067910381951856069375507753885753128140479046528600167463285109629800216521451852224423614640634367650041209954127177427769434434411306121639772454012557610485504538588257588601741875957581894414439301194544824686300043772399065856229976450554763460039334446016903010559105094800052322120988464825530103024725421955150342921968986838196371527743394537682756199009156728734700818454075030090687677971730471803091329400122224676456314186977817787519487973272737889087414483525313137586225055330193646034978187953552002879203440176021571825595371624987191011484489805824297183940094301054177262481080250148187515649226506333855984101268285547730931064857143125188796994899185270486103012682405904668323104054825498204529754293595323956967909686652363599843293277658488187092313645848225792643360814582710115390717526049585712701650812135645378861953745789824782424246700072138290871971647011675282321068160134617180981874535792191761626881295144214638968985250219830549245752276916842307346266248440023681929130171275169126360395431054133010315208809258519580957730965690923827068657302539125582661843551200138970787926076494232688219203429923682119746603696377722070120394285333613685756159886710821723968512005569567615659425195784407343492779260651702607879564537575509498250649184235083878737483774797119350036146396359526044455168579735854813976762352189972906932665813213343945052989420420261391822271864438102989659256591980210386140938128193576377250101315457877112832931785697433425772117757527999373550492680312966941896914406595310054570655117300381013564341848491190777822943531265095810759205969307915675139467933931638528810469816980368801379201655528084750732721190652957471482694906485020278776915965571790745379647258115350238422084539794460990582511394916716660415824024676227172264515213542250672332270517233986402383195314348383150087420820307593883109779706602914523548552157157077649733883311481003893166980713176795460951786996062412725933860210874551265854477198664908405042487143914245369335391366087976019432178147771706759752883947045677011529086594783386987804979418635734733886108685877219270195597411137403207958755892051062562942913758224528441887341921757854149642162470998629646624781611629641958863392426317328485326333228298828328996482584123608644516492902073471904299613006838569020730971797507626123395894451673100162407235239502277461926428683794177563233162567932079841736717096039940808682979952741047322643060697904872125641165246721583235246286411186170777646673075581465213392817283714607645363851274756195590158105450149866180614092031046208546023262715704193307802806455390794823050459056765637137532386526133084404387165858518291895105746926749126957082307452816979724919065722289444047054738080690161745981717182142603270739655668165247783770793742235118368619520213521873473601819197389394931669926286294762355974587317579143254658088033745461487253768562566494634414862337426132933396310793884626706426531407184666952111827797667472126413921983284161295178242043201255859189552258650126221323118939921222466234725076268173106823351713430496401959339986721005105467179927405167281864378069545046421041731640835859116981368021856418131737259009628314180580719874704520273268947894943009818125895749164981676051100204148686748836069054022724090333952105207804803598250243040568136842610221725529998146722694469313313480664537117724782227026596841563250019877859797023104824805888587162824543413926472107031547765865887180690003493094352841626432459536414375412234170971908232829194439722478878566582278176074264257005162038261257370935139779357599108320736647162256395736446188303521348571469208425147517168565240153911766196524050622932901904560228511635558958682614799080389148606282846443890835985229305579674909901515432486719208274389627757786817347638330446973301856552428506818071386370132717065496819569411619805151266729237313026216488514477219353535049676090941222903689380400523505795781560195250644314583042485520200009701979592069993965351717253021301063073724700595513699035430888431207874588859200964708754418993036949222265665986385007196985565774925746250221957298173177777289046966263400431485390570648715572832197130656352098426573782363570076876467117431382301128286596068934804851975863905045227705536004618243352390721752657338771810419764041971040103688343859423127780699798092025226533637010686938862588526835885903276471010284121921590747427314301944305685821558527297776404216811483781568742962719134608515506969793954443630354809637245825509027093721972560347543931024187382379862696198422737048409211117721331563040532249116129344752886131367209446949606887919845401257150879848037726282165767942321791925705943525300579432640970001391731909787379680623568981161084465784798163035731179680076479437568836265352701182195312078633180265228147599940918124862977200168744078174751169722037674543860870155953375017294196731745583092094040154346637781937950781813663300487085202087882649500781823934150172225969075795826697141716887284417794484579307921553884290275948885745364982206087210686372514021771798027523166689301522239970532794640374408870354386987665970890646020754446095340113178633346650640173210624350866281241093996372779925859486602262364831292457364442178439484698313222388655948803544135650014873482667867627433351450454436281608400082244550525103151930389854472869992660482408127298959773433426588414082046398381007446171057690998218240883611752079579361845674326909579903892349849384286125861851745694447171247125110637291757330365002875588345493143886488526529518860009380172026808823755793655425579321679492567472680104370679220514827273150229557375701529689431068183213055320960196102174097542570438821256795910865692699598787161314289519191250464235177118455673358918559921666129222925237672700640613937439898031504493390730113217849969693883630771867324447426006208246266187345102543648952584237385942034098106376013113763297092415246740432677959306249785605790610545507672946701942715212047523150986976199987238912219481987352769841866750421890045499842603824114643986900974413772047505852287022102429940210409436354732198243097681108243372963412998118597479638841491188163639148029142022602693543208901035376767316138885528981564057407440996055480163436746631506892101686737370772581563536239827845522796765544319713294476773599118163618309521089755110563186955198601197258465593193298720137590504404745102766163208611974225895869978868272175306574431413893623038383955802906112430505879519970895276132004539815089905351207712633865010482002297615427701159489524886287689800500806602693201553826213909372503933206510982944129008071966681705379143961961075630914444980757710307266789089781929414950705228787642894069173804467660078632226877850421993226853410570439077859591222555749639769554319584259357013460111497944594901284324798694291961983391143559361389835814839528204910103194015157589817908196533725161159267247661648745671516998433785947258667335786576864546111627392482418550746185721013282410561133959678160937188886485133208602326188590910592524657735733417904674993172480330031592979761917500147483695394931090251787409154962433580516864462098622452477842544413131551219836989460249703881388954206144755320252199606388794614079725328133037618180251532508136706658928540570815470453996820177959127646689905444625257471008134887731431689351567312358968612256743304521862947260641260272468923341919529796923614781027938274098690339400126357922277809149643677811036401982955370439878536404005466718274582307731502835010863037951836068321783682702038480566293649956187228846310653565557846761051227052022137653040270937151526615344948238400392394559720654019105319875126791334149611687960295255151304411491192649503533905801668649720558262547167260246554711956571210336164545656740017978321056133071555112181898469397223200723086693361851935422262470328371251308085448469721346241419783825087708706027892929022284619728607258442629083110233733616615047862509540654293286705454638994065032401200926171213458603916839669900868947393173093960713703764937257726634392501180148271189228867016976119681002065105539706583196564898794730059426488078781834406714236230893106862317811621129707935688025126430678206748156502164309743899898782826083226662179192017798361073234881362293917900595719627549286442026590885636070616285757960070246042493997315014918594356812709980910657614982724656641297426223619527241880614749534843109129989471673938971009744739169645099578632524281465694800972849462041614521619975465992139054546499228223718693809347706629276947470143547560032164458268168907951141557069820565308007028255069427851472687932579167076353212992465971687277870912275888372667865708589459512546746248829289044908797712068880734583164781007841497981377774418747799012275088420863424380967487829325190431773888197504699810041110217938268512740239285568345521518448050881942255865437944686356290901095063256431880475527979429918268088692768504790943799906609153447344596420281613391481998787959793505714174251468187943092220351522136324409432438305298118601152617998508109988974133409663304894374325566041886988801980445757157925478314274070402209016316477525570007934138461825670440726684471788302406507694630118636468107929679965277220021940871578945503683617931701291087652821637852547431619311540866641460735890203779459425887381755331789442697998412760148081667889391187289397771609385346854272032528958664435393172755889201587511227268054529253066422816363597863535755060274688243103074966552117620854053725931043474816674511606251435286029007445530180297880692390844302690430698990849922907163493960532739712448003590391518428165618018724306101870902897205570606237670534821719406604401033956788858378795318536523157415160425801274795774500249435311125969153427078095908568303457481146461409391326963722202605607805458965172774223192266098959374409263813819537743712532662108767127650267830751722900152057560859350700917262009209905262299311502459487622649433301046970663988951849974784642437525964519430748294564141432724842818939396813098400410062047130680045744296535272113952996033067040420557400799479860113487876342699966030419411511496260365414440467858288126023759695443863293739214517342873872440162936027968804339630233288331054709986240936017842219544690200733914905406335821028746555915164465745330020611812942393926876096866489795532013634828375939440294958879755308613374795417994688389684667623876245435431177431700986965294220148614226729772960660883852149428822719648570302270889610372845076604129513176626168511255123802956838669931501697173459731910456216711908117092611460970845304715074098496960420615487994086637313655934672316812446590646357710710365754063689234820570166601433704596121689369144365246556625461625931880494901622533736310803879178519204703885518449005439702916679602543446705697887895461230669107455699717356419544318419573057211356661770390403950113256527780397346855838225847321984797362725383689901665911317833234292177477992737277435091231789878955059535048806623606232392799481255464860855553005916141201471554894814180509437405643859626165143319735306962266137207418258433384572607356491036346598717760286788286910870728935060725840102191632827008370225759915363356685910760406610586892421388469793164709654742046142885142631303332290541181302604244773210116863095624068511657659912427456021769315694563532108987986155780680381667670576285361456190636548590695043578118639658885861276471452725556971825851290270851030548635098945202303661471109667106741855881762253307358712124856312844369098149943622086517849390686498513330832060579107083041203845532800333212376579677207411279703293814400509282644307307287434136545310344133089011756896603593516176342673853470059409665111461587950492408349704925334352330381170394262319469208235971688144270705429818549300505520317977631766610072810162182072225782101586214670807015149340479334400910058851152657590977270020768160533001927344703858835591177526794780366190882239743366909033562169164870235757978415026140970926652712167091064599562234949540458068125520170531370253941862024272912929045112183592809548565841096849888137396951545479066778355682972282476967531302748014614040030873463930610074244607305713168413130284304280209591869712489571585801749244459713291081024106164119258686582953442828522204470642531290962251524943289887801076000402822499726992530694588024599849035877670001672902687047008698845780066829294284898620756022343913288074896707042995749778420466613751458801780316925283211938224023701879745047769595661755160749259877214016656157773002952165888503370381879342037953924460132988281727101364620662242698585445248178193844478045738588751176670862488321493370906976118434856774354875438926117159866111898096729614514835153405513606048000761932444013107729219638179735224653579003068214032257619610222045943087261639592912133062166269638752980166508009552571850029910928486358472109648509730740160235306956276861011485025030509229150397103241475236381031891629505609158923544012466595340433001732505402734020152040851025746555594496510434904021385636576076189918825772208762325192417724415613680045245373689008777186710495367208289851842820431899071837725122399366808642527977294867190565084672265514732389826651607029144235546262485974826210597813521902985349836966461948603540695812503124770433864990417392317109645583814093060293499241452590636594849832478218721620411211451465113776980598783463384356687443018001447911132139048958396626838080024432709477896469292841878726984002761552941567385480432235677007407235039662355335302775698393866673449486938961721929128353212404042494838012368418207063035930730110788389029689320115135758395938756414461240215406160570558163790119608541080366393266234043977251054777273552363207403258638970719512286923323139756826276234151386597854246644170838150762140449242947030674892858063599655527992124025300422645264988922966838725728412099271814693262240826544685499768281443730543172023299236276127892464031808542855908038881847822746458893350510014538469115856630159232267978737093374767695509078926714543080095682526425418447853259567070095681005481125325905723650970719333827731365088680718874888610150105919876550474982241483516281010872190147205920688984463140062261294458474783094830183673112972232759044703314386839357029453528705181726633007556579509096260293395219754598593128439126110182433033193027468350792257183944429421978118807914122285246746113920344059309000860616751659073546198118509404418243703028673381844593770920884030668343114690728749251909426106550837434141996381386129056143446141084957538158961271568532292879385586223040352332029130782680284570831066974157753133544269998614865269898099131813189800392839618570850498309638810479618952225967372674078245706574495570221066111878761480312288358540991129694210497164500671430928081707177720365605960589387113959918080681353071595431777482842430740409508974172444942461954735830502839443753535820599531828858640310557897146022864548054937106438238165974084710560965556838000744513320293530690111000057431918683336233833673467760064669850988345692711748572835278932418117125271478721002800895527541109455609671234650464941632473644870322588171790683306049712024733601516312942948434648974880321916758147087037234066997859820802834443699079509648869429787013459597419722943074080370738684546042030347468506568840647989203094068106419076108616288522610538647181758917762486174838442518419412258623344731689492634319902549613511045116367270361831382952609839221569622492154008595274636184061299496442137583443015259219066361582593751906451094145593708050124666273313431477788086867811495518763718619849365312450880626111623005807712402412745704689661450324295910882595618942876866186402009127962157543698448546248220646634487123048006815945324567257960084177008931280857880342364292181062732820272498683881654908787866742625883682038369846644005834378931721475803294886488707245792219466920879778986610398109402992428388909019894448260080902500425374092002303790145635191403486019423899405415952906775205469298183981222651865754709386596364474008669962851326469978973568493279096410313503005799810834495496493309165343859642702433361671003791305546842210675618428780992941982140386424683836298559541022735982188846920676662085681794788988550089484664173360085052061153152203293484973473682707593939951921789559351908497551083393116224460790924389797289129453263841684497629435808788251976027015789763269451609365929246246187036570773163234924441211086209405112665472579985077481448690631353954031941411008958226922579586087025638765593893299918306407181793877147454667861488043820811416693842559339941517837139444306740441224113240769356320483593607943028714450523220487833523255951359316927933373889997879618698207636852031664113986880578845109200537153453703320049258934268099407407085177981586965393738693502808243742039504984100021137518579674943143973329862066053391519094930113904835437600869634475164032326171157666545153365179819863514329880247841818746602630260494539587767059539632631746252873566728784223369255605590295866112685851780837050142184095573992310996696708578254798773100192677181352524795971155690333354529784016200979978790640310067937908688473648756648890318985973929166463191684848970915748236286604204386187361868054437970970965292599221375654560539162021970060762489337477870047639994501052895863393845465811446295243500674690745054921901242415431096012402461955897442336614590862777165364387160164727139763906863333084425298060102354344958604033009698228890226529541861794450245370930193307999647467337609315117735418464091440333763727169080842656396008174962778056097987009188804993223746892304939356415829789353952537556922702916980351111461353943407555173788546653025927937310841505577307541560386935809118103201104091922137088458340794088495312612058564860571983616510442828642788745961160502327274919959642775603050637076270815595836675467722201312992964920648951959528584703777037549770164450986017806355893415906883636971842682561196619787905384974467000532679493284314055544309952904568679056534924473284708255617652383434334154206788143249336264815507540180546211705869480413040041580154351845481574418050945928210250968426642980976113957980386661536758895317088457196336816469143569090432234987246777748321175983592270181563132731847135159191003112260227120738372899678691609829744637180440013902070228051126349064973867024163358661354197747536696055626623594650709495050658689466649349516887536120734568245294574048484378570207696991126128780808674335139074312739287658660744205033072078690987956057739064583659477213081233852448164867348055156560502005847631483494306471868341896298670667268428247065011576992423138368243196682973509389768656136390739150765453876284490557269415888469301232396840471596918291548540099168253741899496610251880363512026278502011354495473679511661996003798660704739045946738144989882660289063957579991517852700031484666384925444824807642142975732400738368995770084570080256463997155831549957452857714021930411525664465674820478777269565183970571638612417950158943058251675915994186006935364604589189265385321066170850018213774282066832870823096448923188120910143307535469940100108674071030088589275279229658903980519896901487157261105115765402318522874372823969182034226479114170576116988303420277215978232361702898172670456421810125854899077305181373679526316289496498777716716021520128070673394927221333388685667177262524433065293892288167884946631876549417147282382260201470172736836791525403579717191577754268945119828596098790590799271503095834463005075186306152590198841714954709083646093892081152413386204415559132043224200937157065940748494582995603152394147032338920107645659223283792858037619727995697885522780955901296641263304039955000847341944048275002722640081039574615064490658371507613846588649134302288956444120885138370686198407231881089448067038827752731645634616251352987224637531914173778383101972138462570268469072414919798246280180639678598355152653712378895906077400862622856296314647015058165762503409450052923397569744494511137439467014357240200500905321962363228140585924009935276622337001561075480681302369040933369331826433885813353826655713750673759927205545647653047533400184766764587448473924387798251063955185743933854550038752231099465047085360607958869221934062154776606860078674764905885328585243764229463003096187937492007390696976008927977643466837828440965206054324013694361903852866641980984143037918117134406246639714962903968998683358106766795458896272470611659327101589016976023421763942781639364654838423671960695795924001821973702592011202952601139124728317918637683048771940169896186437474935340158477786342231196981189909604645144144968359784420154307891746555160261132615911408442996650043384214096502912218747124553320718716032304225311321228312777873086025489539492871791959918982690382821609271261563581454252159124662101114154671344590642807058347733822725431258919930405325971878425819247249649285493666877826393947538574533308051771654798464210496060698684612148164212095271274328190643111114072619118758204407126390518236392856831007086776778586627745672683150332965672108791480439105338515203023248944071864237143548572739563557433653089027308620794107196897365531740801862645035138070930801370579212655387492623293126448465918436659454506519287173196446674090426088259712462064668883175286560591921412035697564267583243271807005667882737809806111693211608201011606688110854100897208988005402181521664797178579734852851661560557165879888685362575761725726723390188541901038750356116382741616170845658512251924632344189445679983478305272996393541878961150591703685830074175915585079992193164069316401739250469780921798254383993458964188743128435057277347997921829802591801609151098771233119267632107729187189842617312019031964789032927535949174964510667617843551882912091821170244625855241434987015683133833596805828653738333558168499981103855489433584758416283748605872626568231515083401122485697529504921682112997181615317535162981026391873512898514334150480591417287312460145800584142597690212759983393676439373848106058864987928357304749916741757939072654267185437778937183114002735721970556394705185404300439866236574618408511452377880624158439799068280697357910146916361190063581521637904104963287993263220803894558785856411833245681176317163869315913165488003961927318994476282645940431891246553446061975532129745350546313320108243339935728810915346192539121325369702426245519637187554872412653174128969998365480062930050366359095864788704971792781646324494975509765916670560716597425733590115724925980100977551770783330646922757692044238220422722445434127520887180140811360507902072104231539007704136150525822833250783950208483991332274913644646749970467130828924917869237601225008968282077817911683721497988196223007715707798905007933806841225865428742798620416834196731523565703042309455034344911007297750462180719081589216587903606910298010790332618999863422624524694249257812773423470118870813757282959058038922218645240586520757494498906371608927268988673009906742148619828783352060956164621411247743217601210540997714522809714484412464575610229313394118126459344031027433628151755572033003878684619909797445354160467028315443283462204765513588500418107796760494478041065713992358370646093909677396983362274014768462865600872059634991057053524237003572981131595066865287105394190067149495785842673800392280644625467210198100668522843845923320416238717617543900443516768977055900508502825159096482100683356627690590071506971125342159896233048720749154544945152247712104515076602489309948234659083193734660630578122105658167760087591300011825232929425670123669457381276686733428494332398418801627361204011967278171650656912151327819870567279942296025995411043837293354018107877807834774713636370171274031598157024930227578324292156946411880862007530938175288726723411690227372282115555313869157586481370724684485946993478601243093404041416561654546669739593903305147149903205293505231498493920659730635753385497176499699927472416373272101404035961665522606315482220571116530485671038571751756228384966239615773559838877057609175531390613355054100167470318072014676584969557091434894085810834205377553270597281632336470682164964288468625525623654340814453663901050879238768834213049030657921975508720348582947599177000221698698901354642627566003484658834509777625643910441982523032929199933859276609425819819104052678876749526049402000021380126712534729322140688607945678051442121608814168236844758947606293999812247023437322519817212388625108114563411039703381327522348988953230546294008346266589508173686754079815223652340594882269939797298838391880148500291588760593463136971896971663658221691755787637571167010023878386172766677766145077185867322014317348247914180610365884651818368603095609108798040489426517388615703978338035314806029287750974968893217589980922203994193599274677153666226446880562749005634412751117059153755241370386763180458306316646170690613155346421633663007084948702266256279709656762867253429683279488856289924214760566943399149870971584300507681554580459289381383074697416167514222731878372369000363541426246701439643087520454678072016119768765222760313067131538286472354016434107908664136196546626277620766187052981607263729016459436852450616901462150787155838419283751812044965551174434391864029653565518709914363496531732359867699934424366424924607186590387184991053282459846907267191671154626376918316802573505360166456245076322310712802855080661811804375391184180421665745698248144994841722676134761128939230760081777358951765986578839822730405943085381330722125234977519195249673375013171513650801092091801149923061053274135751384236128679856960676897916426867847464040070374730298056032238876763889718395813853154788035723960121794044924008574456396275743940698482940622554950059928556926536175910841767400848637727126590574649330528550015876613264331100685403024975440595509898206150466180576918009647652610683567863705872713690356252562997320083385421988172988308697884201157322891628997464081741607205152847387675391562769322960668090987383279901906947691131587509420576864109613500586608851694477131191253327499134694907324039108093122354174498916721313350890788576866314177464697960832357061377614080692280337143848330189419467662174576110229464633873382987341026813580864008565572439540478058698536932049859834795500468575206073914075954777099039899366743429451534200776958362030239295293270952215946327138789178464500526970627946643969466194081668084549614462456944875656619666234507216175257778756631120685307344113671121279117290824310973953872914318898998828250590967828488928502615491573901764877133930228126396601915993752864432988751988436773865237203769638186800097398560880869200085524284040892414703997403006907907881499965915723600436611133288205848263856651389397171048761886867627431763483371818936660892587220532435096889176900663664799929507709427508502527923128081910577207045662754187051132586974937894934277660836635025295820034608614272326233565841312966600879916554908181904429607166498927161774160150617446765804398221870292825485340572475578637376213893240463458822047127393284523843931977457310748157274784457550969865930598289165549253966804160860447474166409718826712692107234603802443976566262796694754344860785008270298487167255507178709251246539492205405307106936268831088570386984261631904384657144570699236325509481182541661983772104121680168827039225381054052174891396754427868684129466609472182236441909019012174889509589981605717338109880405528224697378347050294301643665547706553257638856798612441356448362031015731580428688292885732879623354035950254656357721333353592893142390227025685314101756125163948851942241085028321167167841084750415152092680168727273766484071209931228175549114936063793494359776540990465383441517622317125794480973503419878714959002374968501260104707258904426857473552523245568857870440094599355366593972425848828532016816191305841106278039272228450585436932410458497934507059605085943434684630723847320314818379058825496163394135765852933666166516927585652264121879212507785661957267212270925425290560416938333843027896195064639166014398211683941466560298277450482535711436641858823899544547639430394898677377666483899166015408222214968543847908452119190988794148537661779856562395257044535937311085606170798952495529100691313238784384781557313955263464173247098317295750354471463455389417349776565827686671519224571435361191497076316054155111577817174834064762883355279032892519300233699239232608298194730402912405305732932857135770154167066647331829340153136628703773727560487514806057775074930234886903931705428501923234068208719235537992856645804596273269315613926041671227315048640320767230256374671469346062690317633478054770915594066302331191898467812946425726454710768286673910443019938734739668013058536625184423509525920942333469210784478924689741974650427477245014023656569254705173858281735830081337670651824341834938474084971244674301858158637541701432947280612547851451901665131578884961322101623649627049006813679352203819280587142951336847967372350135735072409391426141624851013408229227401386918375039393719606213220637780478860921420937898238672266728163912206846549352142201211032164982978230452827549285661671536369335600893104053390431205463186668155993426198333972063057896357951213325452426446368174038151451164021308465831186900755652743939553725182315723396601296434608086763173229260414740818856479393818831761158407336614848372095443244129152843402959273099548615721949005307875484562109345092170614272546547419202964211529447554655617568104821355153972790739665897622753896459280390355601026598903131568786186248177902706257611440974800125103502132788356302993934628738838521147614416376748497107446355262816377742709129401106813874855949471755639800349044631552481922992601316021101521731572195699567248202586630463421592693689234340998646195826327808115715009009241552513390872639786973038454118495734037069653988680698785907420931011404497430792912498729671895259711671180896404563289266177483300498276914016034714367288125910542192307080754820187855583056963594883252236970016926259657050586541574860664063806512677154532382978149766239708633597140201650376968709414538693487092233345977522775174292937750420448747701524265497593903944795322671899234262254614450542741882875770531156462891532818114406549185466931786045031739528453076868040858682581529984873028750094095952168098646704100649811149877705372871339431329328906890678573779333437092778718822214458335705032612021140832258651212789166559458031462200297871511594051619184870574048413264137419897644647518190583223011083052091900253425255607692782631406546537736609174272145580803635797292285067802709851983843478921091490766959507811448322096860424462045752744876573477087133548127372936331622851444152006160566618801227498307222920536597224619221442213288409370218677548373763532671426107227279931324720233900722702722756421539377726359721036599001762238004228139991653388854319986545867175189969425271126115070294386165842863992835772938031280232411066325076294417688834052877927180466590600177884652898794375228364055971393409864732339095160453510079570843657510571348974701337582224930833176939392466769449339951070095860263837193109146222208768258979328821489263558708313266828934622427150560105209931439164316625774609218647541786279274262646305560179426538429990679153396171663046820797796617319111838505502289592966142363724907902678915480485675731611793907839268306378261242505336893950548996920141821071204235190652743502111751622840273040085079773507008511813798088284906270064389782418876751488268151891053530311749124460524451700319674478177942892150321148020177980988955948056375388263580759993512464132623797254457048490621736925541089964992864681018521251042290594790921492666036397452181377751413056773743162693950538364348066134344784134350585906769627219413623438806135665747495239209314491500160325144064571020045312086713664244636409927758201316004844561254301391700028964549766892372580545572349723114570460930135157595637107615259046736084464191383152247668012692030699687483696472127866554886736724205929744762899392785781036272374098985493792003192076768645193317768984560006725017024214807820829205811253034694456724283817333828116792806328982517626704121409066911729239927009193285533315729346051733704294881751327954246406394293415333837353729436501420430104775740271833270792988636153831135873857332484907953807113733026389868652043344125957974212657667263989697078658514972534579774702551083039342186251427745519677435833552965249548097198760291548854928740652233750365958848938572215354248490583657530375211225564377875177510261862156000643358048180450734209860642969442678310521617088147717797991818200671904303639881577582549210757272055445636197844274931511193064722103509387571265269926205773083672428426549865009909969846226603594336200963927729953028206988205508956873065204210809305292502511416754411227293520664918845618013050056943971171958043138617471115492839011193625844735066497905783056954014804181251524208722578659213955402610588022393098758403521845119815830480054229212533658167948474397721638956273781570230451943391977477974770714566169554441571915141410191480853593186753388289366284283739430323659824609291861257114141206876972393765796484953114246435004399845608384000603883082229939760471211010935575061360098113867636929144988761969810421746564761085561668235773530353516881974085517654793185085353251415192481620877197536757820264562474673055259829822211075816119133340695713433415278136047798958138997909847589861975709914366909331808356660751519085444107806728705339986086662393096086329021593870800254317164714979849527474042528013893653787113362555060370746431331913601237083145409050106162335584401197138420748646629986027758972329659693142250929900215873445550527196725421740266246353654887403196145007403134596684936578170172173185112456336597859664588687162434115074225043307954017615895960915483854984449154301459158080184616419727135945295178176568508518072884690258142526322460306894742339190231806816254879482223290989698378590609606722554314983409223192330948123898433119848364950148760670078570619818163598792520296091939058473502120187741581801430184096811382654076610874610747076281005176887816102909450886637824276895802480905201973968496303171805496266062186771566598676160687903325007265340169429179770803982319024671726322255941331828995744988105702201264095736158660233201129833093931928625051289385913666010223918956468143350149298442203028998004662261039697015623407465550796394374195634402759520950297492726598622397348879217016906099794942855914094315047080073065738327553489190229000299240400494117925791541948106719911370231925735614273936642091347958313878181018077169907289970070590911524366952918332489528112195077477346822499894799018986186325426882074527073172161441447430670140421788652301373488023398540291539086980828647220221330435292082952969438448395901232369066187927510407970961861225931750264441089983689135366999321981131224864445803242493203076628557206449226964271663699727242401308998294071558495164396656644371969025906220907075564128747112775023670241073628446996631979848981573078276149726679226503801727166046465941039544320124066282251376142801804566735231875086632889476738940593804822982608809740001560727176537284625251442286031485268027168250613092971041687298768394003914294549551353582929342008899325193403581835368382664989061610838970687184062269770920463178946381108971862363323256752504326539666664582954606094760602429623831426815807361400659546719807130141667825279046440776866061368502910367534499183657584465994108662439057810258292090489107094579306465679028507545864651203464685291328724299717049796929315649186305301884876051471729562783669219105039517583478118508437942233157364486180761042655315210206418525532527181592253839311357286620859885406291080995203573017450580893746720117895015481599960447782410660074096311703820439786238709830726853244418828824764281576776708985190852818709119274271775807775981933512466630553962761865154524111191379165595949490639197091422508142204031453111646206835111160556816852598709523908987800348627171041217685497962879021433537341508036366878805738349364729938474420715451850244048783146340731136534059831431364483725000761003508171529986284645357428761154671797720385607509726686812605272631892516684628655934453324087231780235279627228798388758376700282100260783122024436243969223564926571281707759920678917032920865024359859529445958148946147353003633809480657263980866488931175109365988954784844880033041879297313346139328695715040740838216095749941190429469798295321679673727420919170322909441360930640559417273762663080725811136865349896311449115304154393374228423010250369821742031779127538755715926453877469480945411669987107056783396515631621948493078765661833827932940470830434378669783972290174318933296589784786284783929527669908338876741572311733829531491373279879058647944071312628142227075757163264502129430637023913164523860045575282348924144047504074419715762707623043208204760136455878779394320916457071182278648720375298238265652471793102750555937893589599402837765109526199773545534773063827024143733235766486780805358281729179238236931400974624273385455589118903213638498977168390393297754283673258360339237293270204243179323699867166972689801145874719888732997317477803105223154068515673180501992924584680976121412811098403667312045143626272341134673314692636404596153583217091504550924510876857769028594931574241438184196623341109379408625510330361830548264314288567960759617253504842685293411030345686940850243611053052718358172066343305594673706946679818801420008020423543717956020858993679462096778805470511670511833764299714584960108193277400440506085281519361585093452893269185316201242840294819452824867441106843015959523895709263834218341980268183198645360074965328182277625197729841437523129263591281235145208841037312159688005144622018133579044772582364062909380994478831059602591101881130788016830880358780594121584873481852639207175789573778588451094531141196062985466749582306561337198665229612043584293632076682409193436561718014120249145011380771545427723723556631475847232618598396145070738813447497816847128415818784066159414746800195170010249375507838573918734165443846873866250637065026754142518136919959721867728099133889736395616537896455453402968259834273203343633859985112974699278509426117810991253944398798954246921560614884596178459344995239392433751030240032111937661872076410027094149599158165718726228758694281654541997200635352208666973740830032534876704723829095899725154273370477988752548545597788898278814873263734683586276750689001122521523990796251786267830163745047112445913322442379718340448919686587025109032909922798339394651885663681100391098985557341098955818890211817488191224301934835362649499291285814822027034788777562775241185229736725044031027393021003386364786997245929512017158993031669159645291420010498345467710187367518960622126223050717900521124552656688568080979768627808898012979908864678442466369008299061222300851676763955647908741528927815596848541735680366808304075678297382325907818154679170862060587947014053898333759729606231479185074207547852987740573850975764626307551742107138431094602847072558345612247667161469748800520721869091854924404830912471696230910643705368064279899939893173036499903831490936319820604588719713951441270627749588153543985975691720462062361395524502497472751854824793731321004725331708826227825499588251134031511832093444895815036363273097154418086117059583077768982766346865936166748427481146796419799200342904184525643588806372209167268240696882268474698644902469258331278855406229554830360422112867235160420603057475925472936021571385129525968905069363351733894474692992024667335461847819168516180802419026774686480046891059238051353252940436647523217448533181203411049471871262111901181152381191290176298767196404170827452024980176095378243032814975205061766605122758914166422905441768033880641403368480300004758826660894450860024060680118527983225422209357079793628045183881800942004400147966141771103938226709648949716877547948278338948609589588481913869700387357374144611877476655398518910252326838978398695537358309606765031212052949294573919075283351675328557815214908948791476282692401402546184611728062739249938561673689370504071410850089675727139871197129344505333562951764068676285717974263484540343263490012789221941312992138057583199722037142963685153170453194793150595378655996505912655293255814516712702432451989287383849998216799871458805014769750546007489853553892146659448739681566325515608051988504312849929559873640036801127848302096690297811033292928207862671576993780966466104005379998452560384258400551267809049733841305100396860487142751183419170202748964237414874999457517092464015807665206065407639523488528189780916296192222976135652500671349650602875675230147180071552914356097410020756183282589436865648576437046968519224742619253603781259533833503174734807437956036361367700765948634078578669521246724667669961727225727126512001229605167300357039582556372108654682219365836614720250953824333253187943306263364847780402130485043858110750707418798465175791154999402046930055136364840145672733290378040979642303445657044620679323029763993951828426297543091723340835846185813092468196022636841005166831419105104581452080115474027988426125679972154042054498347633356066253637614468042560784742431534184231734883839845935976657969271829061977300818170824099030969215783767863653838324837263817163453682264891253072869238930303860222529627244779344968177207220465344726578230891588598078851879621862210682883331120296569255442767708612923485154629530614193946919771649471288941304767453046502136660981738339756816101126723344379755621728724555460076339722925012628223846900441595819270581298536204713367273820847163233295389055423848863064238526348689017153895872749958414226045927793436964454147247508293717306287654943756723837881937737662184863255092432744455262522985369527345286381968004551845805000795505459932155255222232835504643492097814304683050341485850235291727291840226634751554842763398136417067747885288291876637838641719575208552445032406616935208692638245540189991745024292224077272736383290657101051259747181360241105707674588386769628931805381572389292962578697912458884488365473373634821909901401550810806763442739295308607128035003261394171261018184178555569119521519510783107474673791641212672436982992071415587778118588450017302635914022409324972494976362825391941688976585752635936872541244655565042308181866220442016537490779829186407889974877615855045856117059676948109474074075048633469526854765773857338037940749846828295623981800525880262272871906295934219251282355423115108764661821865857579023641144225491678180249132774470657844694770615306604640543047201946870973762568397806821728077401281948291845625598732386813193563936248430396633520033060754335311981990441186682604923084632825904646387485839986775648140616932005002223530720643490379257565160514686541592218199481522092301885948860083491221338998514781485876958548407503073142941280507115171407779223409684247801061479903690243238590661974164794055469758580412803000889111997605513307699783735152656593970531332426123989098027347828310021008681495470440665961115747991719696554800499794229468478987334629490673431811391850899872154278635047510440460716233795322080217465371274660776774249073329552282991409663804054608406481362039784222312999709808728722528071938437502966105364654506351148684809534539864446212236089277237182731594290611598031833736787554136794412735273361739332927341362543406550702589012474009325732300739369491884615681702611229016483208152054377806793555288240269419950705578988636710570120375578487267626519915049993619017524602031965715329871344539712904644148565683049916434573872925358224962418484220545469526124528819622947478164111172916395954211342199329478026991646572386799818401868919443539422167063568243554392609821432059122519186637380001449707434096017179610074276753907580455490344676723476300379521728522069593655585722496222842313896510747401282457962601234297083712722652889808266087548716852473740990533607551730365478817608191425617066266049966462352329519370153302441567704589036309845604253548800804915225136080745188899672027957500140110139257298590470049344039659356110190926113847915595783152383838278843600832285183292964305832573692829306561576708234672563927354382720811575353698296057029222052538332458945737447123741567909594275973627206813980049180513407499333895438283063155896026578681571692103039552655955737003012094234268662708307139159310970809387758017713606247455416843865291277349108878935833713728953342100409147586770481245792195108328429503400150136927621720853590598623096176521125090609210760940587297316258397573219455098548083567361206450730205325169298666805699470405239359200415731910078506777583671833696609461987371535908112052535742716866447047427057016855874793606545342201934512161766283945302937545441348691493090517199441318965601462556331385888436038358567626198719601746493354532092312378995359695488794944464536590397538738971523881624047273550770590808968266086313151686139220712752066414402840221392396666708280196773897692159645180527148116440617346015040443841089858920123062328462789221257343983556067177305219156392244842644965004003883321528339907945954610744907086925080851551199268629089246212044732202964496679855198850335132393395662484059694180253950977192928383765411981141745359261217476182956271752680599573315067252167380750533626630616664592828972166244553335318212400767519891783811568391065722092453674057458345499734080785372536546580423138037475896025303760282442554753694042033861044598837087225110272781190579813911125519713198308136054956684702713339762479339393843718812448245833200888997208286160332208437367459208431922290564592014882248826753514194383500828412293910379173765217398031799028712082331329236003571604240953631268248251584171789359555697247666593211240038316462300568788476167753615807034990538657799971813517289186462087821201272346687304118091934503707048841936434280728673913848194882858011427814810232747944057687918658154030432575110298621367738255336064109786573383577611041544849879905017536061530637116759779622313846603596095193944500001338276683663291272637310656421340843030867226705123944730919052014084513461052073924505543243334019662036393743179633197708813449079007196461809841207518755265016791029280403576831062582016237664363512390979186842797654037844522299204401126555540784705374307114559729461145015994875159767131997339174364098153153044764327720843274193626475051604390237490898873979592539873608729888190391823181089103228779779537249497461591243306929711557873623359941853818103356357395717333671708749030732813029360726391496155061047203132640015707945241208800350135269319984451479523434196932158476970378367414839803384269548133518909659870885063441705848590663742521441227894532932321881623094221942808150847036879852251974927917456564347411761723609910595050143905420818979588472781107882339106357277030180229588438391594205351607462380455773068670142157495617801240896548831290319098032598646842604094414062123789581955636248133874211014213633940335787867914660879080567281185052107283260065691670860351906103118198272333972747045643673103958727969770849837043194136336415014573104452344543522706284769835138569469265229616553671592940602432143273305620101362021236959472889127294334277363690247170473126786018138253841170438524653652687021527729983728632021080621360414934050811276159342082312648434390942290285659646915992871828442136364602278256898919083788403481723679710313909539583427917622408461252336542498819254676252722916698364109097302398533105535886743681032517073725416722895241498318280129325508944134434650055638288183115047066996149634799837022268887816888203221387425006038750973890153018660822776599587869349443000957515098941150466163967956493590396438657724079218480706576684696610908292226833740940164470539434760902203536745956236703627977992110994799099983882681614247272275886248209758825465625388691691312678032928983881678635919429055243656908343455343253342027181588395238257334204503294420992259207726407736861175401483078417373063259426825816744440398157307740885743706828064822958629081163843667906829184325363293029296012240311531260945533034394410658252566810499718146713709159271021616017107582800988827162911039818423470855370248360019072647812044261423440272458087135336321646359806981402082321265462710595998797953692479097408905067016612097535607340553441224442233275538835074536184537728607946061942727465044399903012616709890568921114893666524764853623756296955567011237598259562609431114310264400367191345197237019364113430665196976570229972686756105598720739535859844681131835552203645356201633410467319885267169407129194058557962591074327870863987763864948193740007735566203064028060244976686180947865764524763730466214701527185518240393133199986064435141905469408203559517419607792243688021368599869954339869327448090373442477671034592236126792025524908138061081155846801983742515153275181334544529992451453376598879812380429906431770183226493610757311692284066265948420220694170641485611688178698125774395385506334841741477517470982713601809468964320043501883867807324700555883680399814500939217993924871620852782644794130246383098634298165946672416426903233812895038918550823421822647914976041591758453123744241183885637220341282491232482496223648414232275427962591623968402944400246372848478452856069145486249558531848604080935111409865666708623446731392784912111948322511602428947121699617282488353846569836334879835927923124271297323824097223140320490755251412251278271526110467004701293253029556705800271614106293091420195126408566839420517204685731353298718434398301645569463072811631807113836746401581463650696140686112230184488388106714137380756862037780443507111652484781754724404745902313033716168364228117580149417379553393061790271676559574702955337106793155059588145701614700999835868528153243818432494783794287591143007045535822070764111570966727597325871001859073068361471978376813645671647837891820281069642546916732821635958089238665647066977413863823787112400354523878737562258045480746705004739310876210927459716388152404478064869621788766256291768490741394644070527957384480560498920483539638034859482629637546527662016406915157085048490305044715004165800578726284070035787992919384438034033365423442452182246415113854296216331843695639277078232600269685101473787770201604903368192033358636584160133376566697395794497576454701891975213325558400613527210999833788280329984900406785975041548780752493856988227445824824970503539574891979254342009693263225689050541159546804685498213056287695741671220703010485613288881258830756199893846691516485628555242944921931605548946717980274459795691603849700932621081837863450555463763663639326278042825692786269613431114979842025842970367326190030626588856351727283286067404983881243303435431227034872028719651800444044109852672553106220213453006633617752453497300298246804485515950871215435783261582573849490370864770046111741168994983657743743496427247309372081952657011629856276436031254431143005524882568018976126518147739972657959802510246317901271158079837535517695922511398410283389148317205075401456407032993169080009593388701079894647440677135807342906745503779702501438416627700447977451073917610167687508978173406051953260156563839483804291755772874564826961152566643875825423098552962556302945893959508897581581631017451853084301305958228040845425557544038002321366700703405462663569467412995634933381387076864208385005391461774553076951534335329467609094448674987445347854037769035350005763407701937369875309645921067593486632448458779565729191267004598511588277603196265389961995775752243323140696249007723239373394164565291409061507497017543705691363991279500821510827410456916922174184165965176720119529944907047308977646841815186460352672885364439160948622505138496626574340477202133509529302263559939630470504896143853264309708945878735588934525181994487755426601125100811353092685662048926006020479321690964239597132440838378657415178918169611875547664484459102779454329280684843647456497270862489511704796242387167640500828326307278697676244822020493152984134083385145999753463817407270595910283062217310048134039051209410180921107167295439883325698231130325308446556906777783867519342803061478188924756070341426400576750929117273790124456434618696626564052598733017547116710043198136672474563315895362605899440848727346703415311304172797275833670492556440496555630530033351614466101713933667074944284444832204022820843810263951460725243284937362966808088882876382458942501423252141340501874147329067990875053260329736867268589430769828214961883877189586610844994845607049043475410308352847879168164476371552395227150030092558184286539783377682857544101139354297763240689711499280262443103959073361180278463375168885154264415079326842896905504574698658699319222031546207172071867001599710844103774449483337013616711280541253914610744044586227719253641879109653317454902568198333962183338133291132302479210806384075854154544133111807529460775433915512464756346697365288028780957673484543244315790769028467486609501915158096164997489082974405367681449888957185209331835282577661909278704487915780539162290143205180501249348129455539868190122040362048590916458129163704864640007029869735526116904590297749495393739847119730367861941032177052240675605071271098187367868489818332231029319204534395147099971801130733123210363077698339671450191898028988121801468643991265268847337051775056642360743120224316400292589188296241566324297257397494944474398741771296931513733362250303427325320208296945846223908169994060077952838744640172266541607198667427347788648618206436770928345461505979320556466138672818423077719929491291877465974534058172183879477675486926549219839809524260592865231281425730929754767568783891489033820074168938610065627055097230207855436223379412256231582503899166431156667743853287837405768853240338819972971293311550087776719046040653324554572978139083345227655980333548795200896624562681589687534723780215235612280772510262698572937664786828569216119529955374941707510798738940699231351370219828530346059372289059970066878630933934510996485567919357461040760095452301611211064699131156229756721851694696475877003790651038212547060963630070057111381280049147899726404890929125986027213744739263195724608351543068818534609497805533800286769170931492623027530299993097796039466667432409110049371208068346681910285275239554751666267176384176460947644481822161851933466723412582601843694198280047968280365845545047468882581649950885264050824410822408467449831248426405198847703807151486528000729823157386203910609489535957082939828989994969779977316170460701269043103906209483440448209660853777317282520551321574096622322598345596277976853579331026660396638372004652434479851594905907086087962300764392328630579772691491792923608066571206620658714385184249721760835449037093170019632745386905937001062942026670760685730799071289289565871405012922219087131892356708330197903018536568472870226025252813744155116157018461133301524792628019477505687667202714858033853166190961441268783909090781700190390411978656815864876910170296411584352854682750178467929602813514670558175262502727757649110501560873341123534988052756178898118253937868084030006254974432072660346229837358018517923492000905428113496904221607008805942009004985487622828320329365496156286002637228608155394073928071592439975296866814051327288637038257233982714728704872807673888167552793198628579899903048838988277661550867267506097593051290833573538141089579524317221772924255232246654463140432649888321841008395297589478831830390131115502334960113782275974228190713735310245335327245145067799444152335637882107214491382356532447886314240517731368626785625676063245271294420268974206414680976984034708438211682509865616822462701038298638790551386806861627421462232750809812868926577537783527746490477051788292022746841957072376116343899068143162379707608723961874181833629995089049622665903572078022032991516857805394686859855159468898956239027305463060165441405500914805667131364380544653100542375064145041362380450644686197864227199601258381599293468025954086319488810720286542570419171659579670890347715490845903128100163182606896462725039520511019069518462182825160400011331532366643280727644495687556022302451038866849724887031992130875402360273765749704105638392191326051752724755138432201152929203945808166055766252990520549112931688373731566622496901808782164194676580779614241473127349645648736801364505218365225744038827922455527944786821055756029942418467592158637006253129051186658720090760677607368194601132773897310086830488682134851008233510571123662225230205338155778874387317374732260110551507567379982823552845697370338504633751712943034327719631281103658633955058202144837531542315567081418000647049972609065356726835077378741863718227797775305527501571139298581134469758896980962250445233558856211409304779034077720449082974450392312058686242707084978451435085429888564281477502408306856631170719459340685888995305233238153832872761428827382835577156084910998517882280630334099087917080020432481037307717050585139207611999725535629500002388986523194563815507246301242285286998214516063432591457265290195165938620387677618375622861434998594790292256401675079049400335781259054737840514182229726967503382168482486891993264998222140185082830200635462131530968400043268273980077884981990464655472248065694751630358379023457589903077548348405899388331084077786752988163060691316713700179003949233652758674914876542583338854789999973138682480546421483258740441540442920133019487300817300025218573706169560704828546208369643206745622755488545249015060162391589578412667160378758943191154266975535230141597807016430285641530553009540784053967047051694786236260163406208742533216327136469685272922132375316529564489391419972508344652212886732705817565758310917254343720127413121755824086822615020749404468940969535920376299262163165472347610820132993199262451731310960168441287603363474300451434877468570326913598099748285153114658393637429900981927431508181628613589592801177489214625785286083793442808499695656432528934751553294689009283224964215233624732517331838072191291761887681964825887642585175978349172483830653552673703965214189074104373417956981200294968277351856743561297357210202736255295630579913590512804198187891662447702626855559399911675393256736890965716331654908851399234468094505347353843080494076339862916411849518695790407393627492592454251549980679534079839002849596542475338900137283483681657597756479192492047237092261318158581662792069790495753787464404904931898901055773860183009669349809779953029776917609847892523468887101490130439268922582378029173409040634197527867771208250214663550607249388918714772288118297919311215529304377795066754582215495632659917768241809341876732623319931456220078647436563871203842070533346907530677375930210370364623625653378955997575522626826647979744182747753420016831595331278068475048077917037210000253005635289769357686689154104200151135570214495020133790772132680428988478962330764813811190356116097930827255123067631919243550625052000372994392452977887531276047307266124111912892760563194643844626263634381354761374706941370624028904743461479767276778599119096135805026088221831402108912619425661151985623820383245168235003528438786235439143126995349365548011386591000200418349579425476572399430929888020473992455120414359844206176523722681846673475844060285822918052202446584849822523292471709034471774644507882100221322455503895885606456501445824034341480604079101899362623968946554658582319326770646018023355207541846062690182326172099804868127998431925566831192688530895668334340117516228115201984362354056577708569766220493594240336034374284294540544095098196161863376664685616947131699867723533475253873659538964614741134636434089091086066184204647071335773358880214623325383551142082543249728825957408214418684384930314378221836993965945686340410175279493117078157881368752342036584036769904233269637507915756162789894901537806764704331972419869741640313513176070356507138865533693358746600081018825503410380764845800100762294670881074547702459362518220759405220244966690992725991303405552945988985005062258286002690425279215261484307306325142889625857499232806508483875546638417242237387637135989117884667246578787465322547567629366212343501529157457089304850262445376672861370759671428142894916092229273076313650731608610793138118447896383661012265303259820983827163090424931224101011065939354245933201682688100364793879863085346246051147346982807047771109048832392276893861545595362116235868158123486260991968286916768578789353495829967386681350768150599800273683611133143781593894044981696904050536983469658661345778945231585765236816369214840789461050964673995458043743576129745681133558041721271635359725045371897199706320027466458944173550670599347947140117066576233463568048510722546682944938802361711289617361990625523963737000997916275356845272911652865728788551061542351829943979003298943120294206514286632187555122037807047296950632167687335284884373041254373653021522904228735698060045715541368609481764752536680691716279721699008618355231918469283298489888000742073209622672168401076138788045146840769843427307837687671734617736313274795548715734108626273523072639143734844961841116359159183640125244500868047723329011669989338780740934997242651908810949634449396437532970563922700935621735060726565503583048594813171030884904284583426547376161980339920737502199581446148944840287236916292568112450375326807429859481844375574280182126350759673470075953993077168519571277256675369272319699360382916867697229137165541831353438669439317484664983182102888583852835569065736479271075266987372490216047429522001753701538379265318108222594191081204552418351590333893460272373627906278263573758457690532999834004265691752362118191257423176378678580412399284027335444195018014531820365912292015977001759186101341452995236893565827031852474605211087141820374608145699025052452177729215819764480520386764432726258526370278385137498116041010766266392896066859652679167620068834627036601014567479267855710483976098525059468614396954701954284546183260045289730354691375853699097952931107288712971990869569472069238225609751641024584526612136938421990075488607109530255516191707964785500800907401402246780827486495987034968122738640059316691200452565920201333037753403181523186715075137082190365989833448115296678788627693910877523263960199461704249590111368691754523823796521171391399951696211240892088935822931718745289563441262218592820592310128436906828925527337729461091873752075550535600607200614111097585332159881565511809813195533390795749509288783923167717185553933012252204582428995610177367798143972195896998033060770174153812569446011805094430209677266596105025995012428928229529747030199201930534226153719591221497476116275313070440048880269707884732222572983213726529255223279466532899078024982528661915156002923174863441178223479505459436649957116878070188111549622379010842661103644482470100387186384705626231714052875866741842017116246231307182209103691219262682852802737829278091512790335937241361763911573106603642511752160196634227081470628293391740272052461106773966356763691408627892183844976445859085394633670526018628671079967097115253568927965213254571440194384092618471550605593451828436043035089861213902149786716972131350685109049920802581353621415463477847133812319784249683066854654414285831683777628554409898058071384520156601012610326811044172089345737216837702175315701263395132930825883094488511852676772681649243418272921819469618166170896480781689619635157459901217992790252129152653740652245872355359255504385700636340834617832673381763256171209955578141296210994056446950644923843211150051867065558357017416847265380311391324192838407789388628505957469185338885203973679378402993454893510992382779088051626253274761546070278968958485217439414509856420318399981661360818200209279982677151560321798049320361416202105706843191127556526313930555569219995035700235695922536423326183242307444430719645859537783513522202527723868305442959925681472426532635007586889375134310405127202741801189644974893690425849441050967232772240228884686019866622446046581422318744547524972488143344517794071157196629750463717863939454628484505678171729985746212453961479217558687588242513159007505762685997048925388921388287984190902809347445186610314416963067573113562846220246874563078289225293902918429769763644377916461273957090618127516563995639221873372161626276970838274714899743875468991107900255453477467523009181166926503333371973568644651942970475006292530970000589238640616242254620827216776263877985945982538592361343118169921074305589525723045704644893144216541407059461274009649292399566938966885997598526099157403143617990686539868737494921278166650670752636073806241983144583268559637173678022143017719922830142033976388557446937556032015010330914939837996234607469111211354444184516448219909532582095948096471976103547001780277154238687669353152345136881255399030641877386341522433786654437997266456805288430840821268346486409288606292178208538624484309093837448885556617870186732203607810555242853210487122012620666944620065891027845001245951389117917160800420151145970426930899574814668959468632357737420289693144300798317935183936096139741546446020260718337012966105271694020622301873759981314231478352624026359353576268923134556363426213839612530768833973156598338445905886306458036094444357921448527542733829174330387314914783020415940777369553055501980909313657880707329323971191598225447940482642724741081409187453508895235944590721416599148933698934546251998374036804121029740515248163432502069549212145764167948123580041162268327099034840430343357331717411198819550690316954043767516978329753358355925794490426135549444783597077000354110999613398292777720503907420513322237012280639512176305577634795127077178229465282233166125641663227038588344963581873316107645230384614432798648075146764376896650832860244842679342850633217012748476465891417250783904002793934721912378306840714141259271280706284242560952206204236373650786961523666806870199360270288714235202501627869625675371542756391835084704979551756741838967557890344755692497475309693496867969678799672236649752268245284502734707149188771466638259008947162626928114780948506560558298776405905456093038159324451132081446619174508563849862875917286426219160165229195470216259360509405455340918960617618277058392021052042622620451981475490997529743693725584771114715845761260714549974048045314757296186557699490754484010717415664077323068141756183622329634682526987288955755587380792346784971814312606386893280152121038068772035287489485661464142833524924705584065790379182519369524428621869385984596365465921678695483521859429535895008654347155545017277035754126522218926635361613149111741194545037926899948262485734970285953899347987598796711453165127444042897125337175499294996108633381915328650040115172144486604893863115967325745835408895421982195489461380663729557017907133462468266388045543182149873950633232160498953596258015846471381069370900528590934031651122785797987277864595838722716432922784428367007848358512330179944510739512941206802845945985395487249821646582979700866208349184334867193580222358613083409464227313379669991495702910626717278516647190449750191988976185416807633875181568901188165927012970618567525840988072035798519521107082407342827050517344372194092260526260489031723876912014573476052005139505641072350481332182012643400591866874659200547554337918684722950736675839756291156503255921379245545037516435063951066113747655315663855214336732426723449578891654749020816074870011523772587561151249574948752795488005119398217385040920744942846928761842961902307712457905338668938868781959312781516409253645812808339652463370750765317696045579636889246857089401104258529488375353250813394268026293168182407387406123742369948449987536915823738319916424659001901066759569012554823487624929056751904068558308834020078323545823679641933071391814003947809647519406775121213175439374769503027612433697815167143414447542489639558689655549138156656712222004457017503520773610908156067849848894230724299719715877252706782762820267293875781496809045068671849250518297862189545400479559599915527880889643549404737268929333924818944549540075756526796608382925212055296991248797393415971171035328153964226111853873815298491383158056558872464118064676349424873982633791040595685454522767015350810661721978734055137493782999000305154685536923816708080551932346949524601326663809279853554855164444608348773120342585713358498659249648312755460333069285706426019933807643917874879114865386719978997147548424638157777352689431264851608621273532063531216426841201926507975206505668725013144667623069555956111864981544137641020365634466316542985395952994502849518673463410501448271918181336816994527503845097252988913636949022522425293410017181351587491131101674202981538527280356194229016482435404854949059053700810280783641446575340919003374619221939917504795334669754626077305388041739414734732165635243630497326192116539636388050588179887649354925834424313979480987699657341430394034788499617910029368938102769970249475774602618655666211590692397078517766160929364762003107163031614986271605868460697387048904817271633439412112601484230369452625360035035863211253012438941615827326185107997377843565111759828911469643630730805843060743516739274199872841269679531269199965960085217099085341325009844384303631923261553110757916519136083285486536006449558904346456589043304064099618382969232280877315749540327501457247905085117477976102832754761725350250317591088738627309638344422323532791808709140448695355207439290694393143399850678435412131604818327792089443650323244755975683441184119088539074248824593982960811870112710060546330362911665815574110742358372373907073531371588152431926290883918750985168863019200745670789564808196699342375229029807466788731421432773056144073768705621860356924371561870246905583747393048467922561989423621555972439412642934004407812323688317637367671310126994852858606198591358700402022556979462959721376741810646152972517907734676578855318269087304685586210890073125517090222514811387643215747495054350597893259814744856208668308023769809376667694208280902138742210323940618735704875777236624986450924610077216565284750894373121435680047501799583716045855183898135737457271978032041313865060427742907033211390041492918005302218740656199671667101526444951686518974044536681937619098722516675251918938869829993511666758494778659670168280596397324583706176873890783813953015919843124035984024912117076719543164402305760257089794067820153634597543179574949688331399110786554224665686879492552191073697353255939948510842549516656079429758045091879664316075033519138533817151135412396622537597709773628806173926766638173621433320935479127495739765332081688977867848786463898568220537824464144531153930782770617914818004297164378955424954670822268934240168427942204592905594089600448054751021664907060092684748571206059952965949406093317542390461416432994880089164899627286079520783625742397957494814113261868533731217988011352874890990010704458408571289698976783080145277811318887114847704427610075517510440508946869035458506006021231845022304245531090960516107857895968280436286182439412828508737777212367981191694912103993292675459622793084549646800632190409020077043062421156895854356225570274284953735715667536034155216765954745179382204008772244769769970546431597744067368554758251803620876751796941359728261533521381043687477851005926934231564309746675492176161800921045734143805012313782001534266273565196287809241741802088031343207911222079605288606529970560949115244939631407015907629126774772197562160215890198255136050117771597879887300897573306315373368868167661046220809800775483038553504750799372885363965237309373530266918453908124068704826442015048747149512168799555500621016437680095834045907531660319212998118904628028642514392023808032248812219820754058037328049300136926272536580329825261686161177559709835091377040511399945572109030443126675645326807969782322360486597255994205577784758056848578857485515230490069451972237505766951436379143592294598999954511912552089176687340413548894089008745243161576803641447827646948829627921053806793775181819216127433082623810004634512676680772102882860282313759491625472970242866395143079416019901236452359671662009486948594326181477631398958736200754236425027925933892982525375764540090107640078440330198224304718081169035668638475781833826136193880319372676518614121426237212063487830531512843415017601552344540018497304374464410945946501638365348630336074462205965361063113956402817237197857388725905540242270848074653911364453294357839414947175157343944632151012237470425777736106615667777763014526156090678307151488138309552539844605776658292320693722139151208044498758832452384778599267843261383253912664592527037239514997688259936107527733745711638882697107190413042730891317959530494548234159722639576052801720917546044450481352912644507610231353427299326993334903383918331965439668801620360798961345301220949809672332793162751186007564680836421117903256020509749377069320487467943865751054131652308916286779130981268651563380463468161396798322341801053375399877705579292716880160841524143426546357113879033642183254701592213346693269346633728950770775405993945716742702228541942565658782295594050724654455186753166284741347495009717811258431212104756909647829751308407289365726600007384909092242034473713235419747161347117468821967815659476923896536205196025389936626280614312741062925316656445677719629005565059487878274164285065970168181541087742604830498650082933565541925055721620596396487833664231654669142875911322802046797938910313499627481160682986764684577237156770246545149260640156687173190904536018041809397591295256500611935692072877924722253227864819189495659977080913593187644496227730731669961827070122304944946250003552063284248202363671964293148852024797733103714073939725618927036041881594695276620607135265940213987288487348428468851624427504802763491590191256398340427714132114177870581009938128675403931057501188598758838268028378793987891546550099554478346905022788417251211668238498656973361338136959297537558189286861170668297386094024449117429915229384031211108717177924086944596291526634859776655012852422035459252814590815689465984055524933538371298848966503425560419986946002635153439923538522328292144762254718269531625432268355654187267722378779750488548513602131313213661260511341555208478499527064817101414731298941700746229272684252412728173796604450360449187789999812005472488397014272650146319582482886765383079917281825682780334527814401381972060435090675485628289536181586648652546632369140088823259662776331551098982698534173163484443133976568254477221778583436070958415218852245597165895478781803532233002372973019243989068008842655551893487214858126598765040079327647381209020387641670021606401716871574684489002877672117492065668992898606870605960339298413686394326649420794281005506298318320140963000727391524650307706495228645260250605231806363598009962743309633246301670950497480735614508472438092253376102259993775543948391146310994806423680548584237621976930214699716724608291787086747551051044838666453095266534425068232911295631333669121103565941745138333851475476902238251362787470016746267354397458539444630872362716752915246352408875531311166810606007161569776178729519006687089773519234885586067836257868602786967399749834084272208923035967229987649272917417391538583155917333497905665088710899850087887000412076622343165249622582762288332565098149034125016973780909583642383365741939081114105098507318677580839974874419416382465244654094341280667133006875225941232355877388402424935729680441365322707606466966973449999264606249585717130764765103495192098544929193377201053736489313423161821238357217402440723703437094406144148400053427830660274187532385984139210435462453582282779998549571569946455871315623474035561202314343605890567541269849034720770343670319336509305568440110576754868131223243195843628205356333531151537093106170007894573629540373347987168419082908695977507739891147408104010658414136027208027374949065837369107723546250592107433953776444880602612810988164375356361848947521374757786991729431796804439224608191578801284562427182413663991252530256451962859752312597878004381585897983786392683279796499136142215423334822815532638931726877199155052763419308167907761783573755588846317901944460847909818906598899435755412956796971357989970568900566009269595163130711072712792830690174213181083421850972737094158065498908091868432465742274570601184999933548835185332466023879381508020396686728896346027811647635495430880065913232655353941533657233369246155254365220247971926556565353366882617012402507699605605007941446184261280723657063837732977550431542650731486680428713183598616894234595023919907341634753859605451259461513638254175520995131526257876703252178217098765537438547840968469290793628722557937604958922914120677807505536586777918547194055705162483008540566101548373183321774423750967888553277790230220238968606995225921953441208721146923444162993274845926159692759387781065747842909428488465140820388201026421546475670169108737519762379215285461118645567090552949976767717387239109707576473341893413522054234605038212516413672379981645469883401779718442258393878411403865444426372886366661741362478051080281171194589301875766051996858313543680387560987809786811673900043231332117709665827977123547157799461576987290201545445995936160369604588886437548625577585365551658292559907740005886057739884620881388984569734115485023421317944890526988195887036554819887638145893276475660795260455313237125329821074849658801508622166484244922775966777288749810781718943441467696884322818109034127501505494222991798863412205476691560001162758882214748246999507355375550233726762281205399391887176899840289603874103926245594961252981818658683919922189527990122665634484645081173119483982487926739703177151690432900737007321187324539719020587918806952809068492768620990904550600000095500273143791901375397706375365072472219061704067212417937464154984518326786906629705315255784210661616767633304553317349864087502974936793205370566794618111809629255821780177523535288736990681168387237646060267927315967831616401950906967643138147294924331123753093829961534456200729112890729173553061662871151486121703596833352563277690232190196881140345469478467691156304094840799997316299264183186054197317735659745010244998795961803044119819473083013958533308518331468249783026600353175629825356093626175876899265485382741931042638816000496871934966663289410460571078462771236969657477401788859978070808821873873821777189361452425814790119784349646417120971232531905472128074143023444364401199440222973658482856118635249387171107569683773890338152714071644788204061274636062010647268415032939751429449451385756971676390411275889672771546801198174491189960281120805767552965117697682573960587625915465303892758602838454305241248932641227953444770380964540056444677267303579130645857232142950259791143574305117172482577721133745946404974799069032757045761772884133124570032908093172446181399845721995170460710107342805533595527258818178597629379242578709437036965742123814176264911829094839720047287550174865094274534774222366969099114541566041519844799573196658367214273359394692346743230195275720842339726413184728179932888347350530757324373032327646634246978066263597861662226389478591608430073718045373154567400641272332905241242124082420467732199300766455041551899655646727856485397446946851895765873122872047356554984602225871714405324959982368321892132310483610708968226069555705123476645567161335078752445540999369816087623447546275335435210867755403651326280399967925363782870151319455784308175270318596694926587336464340020483054093879317200964127906848680264468524729617885272707753617890231059003630853544527507383162436508512343077630765400269746994861438854823197876147588806282213193056044403845709994023804190161975279377869459811251212518023989933500523813386960039504129298921375533438873730116568156426367925350577097056000615652874200160513576808459413575131512156822460939360565132017449105479187608244628346090305090433110800817536016472130504505302512824250744890943219480044273185492866346039651056009231781099699004293677510827594751158154317943950895462982029654183758450964385100341031635029585491148413739142830275616897420797793744982351722667234150515378654198672241315639350430689102782294318015170528247360974953149016320689899504683607940739996557890819881509505112992387517680244034753164586358896260899020328403128753025090329794003444914219102554527418364384090783292031332119034187814834159542517033167930069182495500985079652955302939936166320703527355702788157761358108473733823154308152281141249327480201876930647926647785308298838552944845165903222225991775009016912448264671019456983249014255983695246183763199057732157185302723230752816639909182278210462148181011472837624548921769223130740463528880926790699514654528469952086096692219732355711988944732104561774101281489185503921534138869539352589420945742199995980958488727587484175639564505877050259670369884094577407858805422905208067714044470538861133617027753733783765730110906485647883093500859543254110992199298422410462129401565375072950110039935787367051890738968364538477223210172143301181223053132402956597508040677011036462263462212918015091057683797211078229812545654631539784642981006392921875225673556391877386896916192205960979950692322191172093036034126157663535220242226028450127440807802147647032660180339709528664378690956658609278528292936477178160527041470626535425172249775810447858849694706369606365086963015898135434802573797204770727374530747928751166664498661724181183246847179775124538071485179425208956690009914433994696416436352873515025751243699730944166590789224413732314100206720046164765686358678134127929289728618428624851295116251377545546350006823662415868409897999981647228536881413354481195193325013124741873268954340418284761078456163282468183874076464055398749298341339277617108983255546384494133155690108971977017930284603853757936905200843687463463745879322311139949214317608673427583058121107813634879977473258295594003920145934187721800827586302073218381809526472734695615153938750552765434357642973315121306024350651877767973932961562442669183475140741863016372939016707861585486795157467650659867380215333604712587063623335967650795853521099073655734586272485416678074262649587240708902261729856201263451065003560759452152198068813743110966960566182232895336896711832774748799003418441525972506639155485214689627300963735940759651201613975519648530152898615593322233768007297329646392056364001640871962921027261771375548187007208295966211317039219070934644873072003904308891406808378076536290063604768463694855145686083128075701115715248269932074459165620278036195142784250716805532076064413652091886970819257134594140015682423298162932056406001298603775785515036662591376964737089892711528402165413345181986682673772576860401216828302499300264260598357970164575069367439500775183282336574922194638512673330414314648254263931812900728371642549706082826172011747644237756394008975174481532207988716279800703408637200506617574560099344844391302011908903563522729294364766674792363132805012603354793723486583847304180813043401892063987233080229004121912414999198825358269814080758397753142023649125977266142197923867203760590220134818073038035803680466869583030864097690445468322176165973903295688877819977704462407370239346814212072329494659079990699509513114468443761414995150248938500779325684799796222238819855793082197217826544688915867775396274854773864202043444145586712279722939670276609060928934344991767995213934572484165624515762934792361753650639705167432750740497550426634892149445407759460474261290292924198662766029190281485538213660636117954645785185685244639662372269386585709591195536505302552306524552156383128553646585347697429396457077368239804528402976415739090272772457713212522099417346662837948444994111336731961995279646826323452745656226284898427138175203857923909937221421781800686166426675601603498007114758299476943228256263797224406661790517366961709651126297415919847085606281329593677033061827572602018756675074823724562492796932214142722393112226031367935299089980765185680360361844777854226585324574971326753233599162375805017902678968246342681290060510589542902041591300772440200746465914973087127413341597559818177104056006204707958578742632438072706520022461712430842008372121637829959193167802587919613258284344333375336635274524906149847102829739812000695754664083546517854286430010142735187997685514351052227799331025638853025918017071509459614429394846943861724506771312658264837879518310704896775489160286323388675465670424106559847653495647779975218040656158296478020819935202392062532718513661344113493146428580416172454237895982536280670997607511700519442033756085179565847828786233947757104567787147881354364685193854947972881762101663229185251746227513446904490544733562405083676141887975081591101263911802708375065723689893508874840647891448080307413443707199869031938467362762441600472601226075516959818413665252038492432955919331554912282917256882874325947442358261011092010423714552910072913005633783881872472461863922020739811178309130633009679661045782048108467702085246160763039069088703433827589963032663821717540878073858123300577374651058961472297687908711500975933860982077234627041589604311773640601066528675967797981575156275148450819052588219343892671320094078883635616233767953675257377595674527031362863104550781390383722024159423101499509560822533570391206953318483169895748972901342759311486365692220196285076072719974871493343817559694572465299120900216693292375949976035313352874227888878912819364745360958398469102372145399000138672881283639173403051844006353548352767135811771022184743170617480359888527999116953259167983786256349017591661301195326728786736600886552245897831383067713805233381081495280867264885064027393742673630266056616746170601509670212437915702299023132346522175408191318690330432108668535917504673349094529271719761766214749829807861221456591227730096337858902037479332611958055666639356230083967037736843262928204210861712413894009811308362476379733495857981201488753197819526390644178670399012651507660038279667966710656560378192911297191171788230840974243900217240113149071294530455144519640636151784834887828848601737423883698341243887249563322633578909544872207712686829115986834279681116159493730842404543624083628831550733113912654940696057097602483018139507551319273537188858178621792755032950985961652015528918984011372507219424768926787796982499701137891896608832916438296613953383438092346467833807330097231244077727681774276369883373801507164417552207660945504176738546508066220971184994423578034871222245673056717788581715949769799072760615956808972264222547619767276002174138155685204085470279533567502720881177288658168700978974607333212719899372826371466936657682706714053739456426828526362981937763603193501641909347218276458963684789776006845037894869749918376395569236560858003063717696854973638370514728850759554855498198027432467830127608964319299051849182258261376394890561406127734233552111458226184569318956975717637520265293709339699011310685878092141454655240259644653979455665105729703141903962212914733514371185290369919452834102364313144778619781318351966398406539004266182264807957217162429842262077802479148335539956051646000594463079739668183409860619333000769787137628517047567790361026492435402577157251359963144810670797965341838360396593931610632344953289261501323218344837110418887559005355904205819759163846560066273978946036805872990872533996831785247379510968454507247167955032739445685226372943167051430249388591999575910726109480602163917159342769085794287051850979750505256151013413767257968230886695410314888147734384128502898836750725504289394300944118761590932306826706069496774910628955131232406723618224666245087113724078554430825513477081735375196150624891707604290428770828115943065611005888809781435077647773934855283121059495550021843121687575848139793038496509811756619249221262091010472637681544892029562962163042835707878956010121344984869947722746732776098285855879650999405574816656608826360491148394079568058815739819214540448431563808574128524496892058084344280400590497505557076962685181141230082782602284488568812151232759736211228700315420961474426551472553514991306109930010374231088209192593414421973533420144617249523680218443981123681050514343001450495889400144819523757432311283418447939753545103161924801055122933285389126006303753117742920599769027934238972824873214014183772505903714537599005413373794084042991417997444506213283892705301399620742705899064557017414316759896316694827632302008823770823722822299852792469199448096138615113614928690308611639585776868537538426458174136436886846715605020546756639972275355362311921237669953331033238949989985478623096592782744628646882175565311105569825518762228556786543725121773332777772011118961127653542526867712825000711856404712837571106996386889756528079811011044011224803323319848222587372870236444676093918498196947267755166207384815601954920576919842912708798239049753063737447837830463576218492839775644926385060501133303270232652263095709416566328036011448947425615461198258684142350106926872444800711426656261925434999572125543866233433563721898544528955672491466669100424893119539612649876073058765388149149095829103954702524402001581464935315941354660957505692034766244735716519199013801409697357345958189486409324412704547566218124549150176498089925566227788794076447980677855388574750682997029020794523171382479151965355393490557566373162256649800271932899805428024212319823794461947553385257898116176931797411179569047348961195881594394913950946526872082613509242469419211528956859466831040822817267073654592306674728247213540924262488524046097924687065849180024063657984925022771273940470035636313890366261284339955874034106433390069212102477845159354502836556596321202339917590381338181339344065426649443610798163555695381495105832793235764177753712525374273304627369866658645678166435451345140184828389241515117333330989388235064735709358462960740536688954222576465497665018532943929047251574537473324472567309179623643802238219518817712103540538076342749373227009670068384557057975518851673063178619434842687812005978310167980417845639685752530632919183133128160063180827673572034596892724881526020823223774417583625759181330589970231587205061263473802526592591586031859560491768093846411166167501316590874592212276899659543848172946234575958011058174974891300817479079666011418669333402072086017162013809984194540094693252895800885208709415723360441454710464667984977812437486695515555722447422622810519434996932837162875624957505195336097170677640415256722293304097117401943320987628169009722659555567756566592188960710949605482518943216454379444476859855947711240312706094737721488411243310763780746787500985000995625782377072470075050664447324041625419910647299458418192078986925489843279692436884884011217228872236755350538405732688312508768248789307236167450557928889602930874350431592372123868290012307373238342293639276068914855744805200134888403300712637132272962619480432673818968470900043329714445555749183772158203332405469284048208037578700668288039721150939701508237413939546999576583562098919385663221973875490021648956660754495600645752391494624001451405470762840950243284486718212627037915408557790889268035716035473730197611727751433416473108897916868026670337680069875328636430424554078031666726168335343302969680589435556273576470360714042971714174506408220718886272404992990136766035749863792653615659843800088232832843571417574264853320736096443527402745277225827487778588957748726585726344794663641461341841213669271393483915648714225541492947974619748794314176710781008138788643634336742700615651684754242852026512741178698157963224508886805740693449521067666223915871281172167909603711406899453516971166978504669882679170655658366631018442210657661552873180077774711636378974067547536086740181544011155663812273204744352943668944435854026323911994435553277435028624098238436880555834846295178323952940777488827487905017858900733637355199054531880901225706112353789040362424361711649014672912391615061312622350116389591817152228696750486749336292494687946983788173172909049978771932840449212401092007257766320580741679532411141987089064012460628616986254364209588370418964469310833880442465753333643115406605466543292351135010542634210199863054145703944919000392971080273217389945781622170616685701550034672913957490712119059908086773344070236472077733730386560526597804399097420332722362937330750003972688099205517017573660045075610557461620079418786924084809622238955683982507234862785710493861571264217110537660324552339026841874458447323081871898445199496867769312709460842069499567344980707890892261008463534718316014330940012537099336778673664100177589188508215693057414636483240039388210438679249506773627393709696692896579626619634333799885002324683151442538098198088006285388857022327829519733096633012232445854928720741784977225424064387985124665604651714434345191272712808487690106582955084502604309324210646601305071769824449315410370899462866204384825968487994749061683928043805809925002980234641628902458143417694164432687012684834970823125758948520833550395290875080709075970227592057976629835811505328775788199669016910499019652988108657499232422951612328458553729826197417573072184981408924262025377540458024542564931711517612571619750738844860428421537306087141447475485056415335607353511340643855534955913613410109388101976676184462741874971484184493284912208110037537941512460283174109182023311048482829770807082058319193085717251356802844715702330380168920594507035226293890492109390696016898530672688313143527672427295447464743920006890447607929217227985257076694663207681488807737813133073252502211451275396167972379061865219236439276499207168695190262267605277050784645211797447585490905851443838989192549947260205751239214589414139264616430587959759956933518677184124032723474727968238218936536057428604220057855520016171208356271301444690946945557786113700612071291521414850633986350123161050326446814911804031499898906756079240719221746997386389514569296222690162813555694688923908459035675553990110824678935558273217297277557140507334254804284631296647741722897807030420305322462369537302206556781520656090588287267177079215392021546263065742579114113189968976848559918591286811653135449586319390525620234082878941587143284436242552286168410459084334517981394652086822418962205044109942651365338428463686851020973770373652229512205935708709898526019544589547497490425770298844963310146280333223108031996962699794853662162297504049862474527930538382397538161831485163672241883325817134216276294265372807872588995690376426220871742390480695888105058760362969796447032102207623565813198240714198273887195874619480688094393636551730796000107298527143801170961554715689696076827434643207308937741599068316395514870527597319065575058057309167635022011584798811835104272305866029255539565221924439120717623556245627293119326073929507666561423672924094306954848818118621600751515970968612750761019967384419479886792215965752966851872988460585386211366462001609192245576525116752311453962312510723480106240481976714817375528850716244965380113416651057573109626100230042386435888575363312785049904207733633148627088930824788989639643886747124857327020122473587255947575017134575088315940907973778549822177291255752430898283504258027697224023883725085244050616059201216036062341862811944303236545598791876523307572220199095267788797543578475540049392743449676475718315149717583139942490691676189920983182840152862218605720900496245213713585673977977792213712360045479520633704672739898017796742396063750735589962490219585666244379770635369149339612552311306368863770405123089202437707698010869087830987970255687975790958026164583197493260524894625696870597659736987720574532194783974303989450583916436299794216562252501937673267212603278721181159663841868436447536403912757736157740881539285609903585558354595397614497612818399967029103602926459448046896170013888000414408934908800152000771949574984536064320823577467777572499195425020575330037142378874431116632456584463063097052905376382390997698159793686432233864005613360216755570194131259369021218868651789149058740192861281744129496145390849812770641992816111616447796014915027148964086436035710586636835089867434847848972456622316012448612827008312660523251778654429082129496808422241488666343229091764978349405015136924960009509386986526459356537965931079507478036307663621024040720324085708235050252679692209152292736876099736990565375346676913076179594630073717880683738741321909034823508837332661660074732409362147338320399271366987391891888052000721283488726746144361088850645068581634815404394220640129759912442738583245504118692089860964655282890820128634258837429269259241327063523322979743793448444990400351869728317185063245870777388494256309606897072134898903568918602997800682085206984960203514786862512130091704284244421042377118994305249150729211904537361631735687730593898338468244627877636430185150835241435616938516277693276835627349671399726780552754640826735001334846437410389085406562083121035247733200009442297953048386204058595781341023748823225056707429427287304765135272502229518789608106977504782109074321163454030289706493537363100201731698744415495777356179785666361913736863180357296071981685896274139520294214868918673101820700199198728278714508591356016648663991130013944728190379446125693693394525400344641869926058022634250678925472758031004077173529695386188591950433338216775520532437096935873304222256543244011689765640014084988560671174912359059734775737274650317067766256238788585711635634548596093898093732612959285243777234163503044385841418712092894824740030726666124476036961190909038737486089631388868587245504679284472203460639536965359411204313076860915926108938217167688592844905968831341331042433704920644976154630935488777457120371670787159416277429422535152933805392395799942401859202947437138042596430631456672048185635568352541518594870795622042335949299049443735558670983430596218743196828909993837172345361616306357754829110879681650119371727568387259810272782027202636899754129383028797499722736188502623639790605199936219263019134026043491953945263704369892430332591974130718619932243029957378223879091956722787259442102520454395596300438300228718669122207801213305031993637909483460087756099470319278150431654114250895747802999137178493475143693063906112374967664356496495146321201279580393566243478500856932729983743671407195939539142437524912752700489363763184259495862292609995258318428400663461643017808676722129897787778920780199307642273468822600314519033544338078010449672400247507434708142299667737227851237363611441356578231174342002039130266816429596783625943880653053977761811143915824871324339749402246440301245973855928102029627698968153887994140654516993140523816755519768494414793075426411632922088486175002957044083116542156272621737912610145379225259823600283683262193943605819749345579889770048943704890513390537669224773624288048098360786143692801307749224509880355558371628348352440483379862702983998051466990771571274007141418240727232208696917541016923050954011454303287575915306433697051751270880046064725994680270116464073915891025945575814044208473632121938883093029313409538726613877500260198527154834050328553064276655234605534990682274228110162021538182205940003157747704774355840078657570945918494872129546140047201117800133440707737923619519459674629851690353386257019286184513493194406448659367815000303837411634601276686396155963115181993557730734280478111072702589590093500069131600964846044990300408206339065585280029609559126430359892195765973251613189841923755114004701323430749159978561939129829574529927565508163393187712534860960877589421410688334243595002296011741061957523206676945628690046725668739169018549816189833626400610294217490651314429782861638406259405584970168190971537187822117375985258556608792171815602666669059387608478677640547328907745711234471069765369338712604739743507573442920093987648413497948046427298746784766131476856746743280006306985611781426340712965382178339298694999046994275805180437951317003574101368770505285249064081851320437549053309267835335720726316141759916375045526217169962012824332102389255122679031312006560982952316664208864552135134505571243767858016297876174161668625360126782121152939961307858031742409822392148838521050291013490259290248887778747859176352877288754143588743583147945515306996454125111079074694782059539301575661017155514050265298553541281537393301802496299717490978808528379287961525424139719077102074749987895919418607858822569349189963882947373691579923901161679017158024944456222288333236772483429760928399843853412625544045937413463074083504458009749532330782545528495221776503876535047558629072530608194751130245193610322457963589203791572762305870189016233999262795109257572832749088018453646827170636303053634385899559534497437748234818406474452253924176600378145733644527280219930659360745972285993422834073118757082096843191580948420207831480586823640636465074353200588533823141082229147024645330019598774804130906533575063232009636556063144079269173940983830083218075249318582998557976035916544751921975665367884904443742504787206721141815468289617068503299723531971547305452094532927740327025776175979759406514168079581419188191276930068908291794069942838177848920289213763879993681839094498350099707617286557526505243540793556357941959748023051132019101977878102427619319702421400918248977021876445797497267786611178909320256068250812918868885982856132636169055422186922809581091063665634630006282398083670819761951458081974601991184024577241860121123425930174048928621290070156565999146899626104296061751170122298278813607202517057121497408136053995303514954134416619617066564103805257732798288123944249796741798489331595195384088651347967014109982241898711659170663939835800646846787584096396566099766542191464544060652232422721850961094616216285572176918340221259476600299010563434273276487604134988426177227696045707292159804438234206277047457534638388314417461996988765446250526596255320331458991619117785672268801645972966912747609329406158236078174271105752219166547304707092338758734578188564052043803737414370673953777638066101556620238546372759301279354857755783059460201437626533259128352017412152644718981821665585070583577601236657965034869751340783221293474005797342781637608045000108793322255363905281666130753469914748872329247880226313159498340483640853311839351674276813303397333730625063177536810822113366236253537817043804399095024728746709528407609496688263373184766142594671352698201314147829796812016662209321102326385490429677444266770741569867418351265978933697177242839821993042499391590091344384503417894323323826829658306853591393055930022686033722191230511975775798150683681511404420730246867606719345949846970233446394464092403736320564956337680828535185961589086772453621205899423764071479736652708942285147053125439903264318338892618578811341941419395257163403474068430624906311920970333144680248493022039681909106920839461157553967951440321636639477842593021463039122086117093309301000783023655688857819283924224032104658010501516380380172636398114089143712951771322133595415069427860767385864307300074069204789061700881817182277366713896712367947051309644579256227876634604417744023224435455422402205597411202277062640975360642165738139601314832243871730357078700766200278717072474997052299386034053469998192285954138563801618715873904458091502130473375859048320327079153204138707814512482214055434399874119921343773157337182698090453110592684602231398890624826853125179884929151281944423292360960732768703078130251944181515832533601776270021955497519415481290192717056538178484569898719258420823784638446911782029303246733155641181227396530305998678962639729972206602767716983860795544385129943157256891272495927845434777094756088467547033564178533068362891241331329723544957899397833153785383352142687159881390454695683528717923359483511019865561529215875142713452335468217079096530487197007741553570166413165055508005612729868386532228761386380407546998583558018381734682052711469238601136228177335819072943933866221841682780677955170131907396912258840209198430702396389765443259133344744608657471519903774571167372175496231896082160898503862368238603387128225656016941995981302952278732952341089612804734576185528905690109833103328171785692587408060607784272220578682448022607217146681027379742440428086954553821579442155846837721392705481413111818155220757788273288215992113280269085428678435662772500025942603184599463209791868130399318474187348356093980428206723115429189468086361605139097389880602975833238022800171840693814148473954811259658636578199008216595485606793146964587121069771210714297361951505226179556238005902275065461695909731781927405706209239023645339952551145642040334943265745423196034251754970477386713267900875135067371822623166119939536699567265268795038588631359001842795223070241407125278516307758217217809157570571178758416423882577260622721189805081786512426879040480299436541861711115730063479649048277991715784388266316897870831004127061522411033310559233282524123696796462584898512127946823932708447307055271082481252877305215841626090793975757396353944484695829381825982424971035440259944332256610450520650323113379397417865273182554817153885491458512574016469337771277214182265314325316896880510870049369655407063662384419504723518430609266819885650336196906460187290201336033788987971399194019862775779991981773781875946676253453169121317131782546506565861587228289878158884495270779922644363602436297623458342443341299264826035758275692652635634207545985499356291360522998938897871104547627109372894206627784098010976887620927545918005905919931440527028785115300486609828651835123195387351031124145072352518764919951517937640229674072155160317633161726004880469988988809086048964108272503044012445692077235574247165263997924077081664578360158683258549205199528713990881617812006997077280459534535224195692116321392086843872943887752937653792819074547189130964425780876850162336865401300726324739814805549325031411951094754485544825211662647202759006843017168748056484775568291831520451523276037811241905525384169375336046208018032326983103873948640615128262473153576181057928494562692378709989882596164880441619065657079379805608738988956640385638124428252855717707602706653449144581357554376854950176121575505991021793077520897178893170854956346001785705435557500281887813998099708895084787793039804058425089193631780087215785876025648814322060945443311715274410131940620039942485405343040639967391043157965443881936364130663293527797806091072251837170813752015442343301788342712106274128914961017515907290483828004885425739259621476221127441795688484344978435455788963223698739695998766989365959318543794181391010247009212912977225052621863401742493385459960667174774729589954685365199394744908359408245895271094452370716280477969838928935822185330111192889207257626217545246778197838949597090214959873248597368408775211769399186769376953906475330017600967077207637110875910873943963989789693430995068686137797951638128591118885789083573861668859413320499069787164367205938413870129244927428289194829218591695103072803778148892832950448465801102657459226499924393153731940879524326690291719732664010941309857897662376217077451438668320059582545316062725540525968916276735773972378765184943524544741000033813595739221364162856536026593015908312765276864701424553098143938426540780160553392078280291934056926014458554016309884742671566203576038145800372091092348478562199989046397479905683317724059747526575980947649349568296641914430405266565324823844149888783554716847298104301132106827771423105144338493009530055021509708653334640324642562012088554293664500546186085141354847996267564677077016263310075882896186777985739682994804516859458777090045490061625419814969143382435782187113825021426021162645581173054373578867070530164378468756283333623401313844175417703356270754576292624583018202426300200353579857796307651317198956471138426559310396538609668514120439664988724796917136046941605983049865892675068276202311558860584100898149958352964235306796105797414691015184023455264486668788984835009748882975879368483177688736073708988022222504784678438621634802207897597923407353753887825921113000391412257696516416214042049437366400968893934901368355703176997529383540124006904561822445990300996363493596539676110745440395918960651921192669516339821859285443179202111122916756408639086623016741545691575687062501950822754396487287868679036280301658337164469636363156999615963882849672989550729459335185917032853303032143729001990066566919287893326964326794604419358095997940304752819180114053516397127794583393927514968929210749150180504573019422103149130160743573440578281150778901214802824656154192213625845890835587323342762007564884704582383681919305158126053906126168764368718691920693594475739829608978642071457339565269064353983561044625236943886835984325599535348733290138449508587059508374384110243627507457766779535972882340865846561946706258625342287581791836389028124352814278902862596339233203219382846221492783097463889257718042833957918531592146595699011026526368297355715569746721987411728650282567602264468939789984863697493262683646913307298230574635243777132422055451154812069642537771111880545234441710651315770285089850949273484293000081755433087772924871405463566217215071812056636014947001602611253614132960507673366179214056557055876452641030686235439112399688782431398739469390433162874326810112018486307004438441862636421939013178006458816247921219734672175102813710114541147355244685239783133382573252536173525049115587770796612879809238308521631417764243444814524898712756319582924984468753199275837645249341320078232994600961451289684581184627221789268284648590009314376649908783488527715568990648610123003651831364358158038977328718041600355935754522434949204397923868227720676926961699767031300767299188328701961124231118168815501081878189418336664686519972616185982078183147227833215876136355935853381929869183394570326342208786877126182127578163808209635557530101787607844109087103080945433924995816436796791642283303948607659857564109809376476629245185195767918792653189500684162354067241029369816049948650500925848648608726489234456683795355506699232510892576114153211672007512793575062522257663042845791098859031987695540040525006160442663465951579416714664508457635394362026270449801177747823782179245274737179356489456392618620582748384193248830528914804028910162566478343189495139057065414403263836906574699847921734748188069540855669234182395262505221713794066586251787903778023876084281655604788513850846798213552649480548569068802361997851109097111403181135623544942141139342460010014342163632419769691946983782213967936721839819991863720649783214222121389894872806361600095594531349543810524067232912336846782794443725220333027467729539453709708790164959427943007718748406901875879362229791280128273335555735000537825944706464328564736964487405134343784038381330494719551844225530591597125477879745989090921994874593590354261070298728723564274270048450678915494360817595332129466362484358637111996929481469315800281214133223255457056282169983148563667117304601176016932908635193311333837952630492552160285914225281696518597700440666636438740183761344894579690323229673370436067584476933577386848342554102230690099973556956347595547376277502686759786619818805782173247639948432864323385292064220336254028549178581361208979504826781535813327344085830418651199077045749265414990041971155703235809457022074446789921839824890468081048474694844201960632996214138056416129353324776243129404751857513794832459477025064058722944549305255126981244671681365375701495399344611286149439429025919177074103440008449160447606950355728761414547382084495709075055577608583511482814831483966356551516779958747373115309173824393025361677554801218647145993718897000374495436309963369045151550341525129153031126873240206601137824714131293375704684397764745133839119645519567191333989648188289861426845827759145666687674405386586893284973173226198293788787358995939860696455901553415871791130459707364528482759572365317355952581002320272814200135257130155697267097744522736495529258935020991675163664299300562013771327505769580402139043176010598853199505892017645629578667448324534204342565883707649936721605952282727506341681093550651029459093822159878398011731939939491278441059684935455268402157547219290120616256041937231650848853926187253672099580697227705008019941179010284952557592210537090866450132800999530776783505770990615017566098482700762147742020924544063674505842376352772810059436661607005130246427263909348539273633190043017453690027667062155427167289087065486665193575824233692883119243276184733151976926085388262216561418941644406028194400530867150786409060077909617338231372312378245993831972711730062842954579931150178799665958882440577498880402586027500077148732526589592035228252429387215249458054339152244825549470566914008454368286690284315925135625539539830760293296908969621938225315578147255000111895287830540135854536633994425843261659178896381693928182628734364127999524551779217408619908481982087180655056432815629808235444878753864556211588581532595253670997540657260464306417070683024043907964563832462068799577462143034089382682777291520094991741042100144749012094256061852531882420356540789892345557194261967001935797802091949031228207694418410802514284059011122129116843131408711851310855854217125831503584107040715281403677618361213304895105084859993150232055350724765100086917885068258657790021696917414691754349381754387856920635120021445137695995389973818666401995503564519369633947784102944640900085388882446786683420282955849538858128626102268955659448059876372088355394803558898641057546071721742209136317091147963355703455322278366155564396383776417572847363651775523027276867471376048997944522173415079168629795505243838272392495621188164051044018093240340213717494216304905889652041825047446008738604723973223974531255388822037969853802904109949403246223115414999300410574563921970096758108094000206481013730109818895940745937429036218251284172876831224106644274604565746521346955833864565272155946548209799979388495402738920276750581083345601571308432608539135702026473258047995042839691551567490823633199892761235156655353091976946610310167497178733169122419053606083098016764099121647287359454600089072815341791571567061706270484036027557395595338219473127589537048919936074431736247067051654890576049330238049012544546100697592166158825359464251964589925806097915034615381124250127964580048700439341862979345187506505263099910682505450323569269819432077383339585346574787802028907622998838280099873870117546289814478882722213960645512567835926701953525102261146006387515941692881469220152057691295423597564447906724406214022418325114566483319382451438769489707640491061277290723714983030190051931192120091899324664054034219652937585308117628931153884205937957813829623249580372704095497859255127161774498654055672470557456071790510453190330112722384615364963878078761788552574441176290258846317626294504099635043375715709698761528542724478926170622644040701882956989968628811128252618022915180033591588495006576113924709017218498535936547242258674559665134899142279319424534747698203893303087437883941711488346912351477958208304884969591714449825237123421290304846537744365740185100089008635682768167881675577997170088807754206930295385874373485402057530533865124330449470448815834486454089898336137204379373388988185171988987659398592757835764097070381108132676285088063893982843068596722484111825484526042784692931623585204454529102261550924176984124005585224378813299086868282779112789053762193700268204085698739326116981439372168735548892093261967008420557012952849045633657555574983183098579858833996580418426874462379272090247313309982123542108093952299696589441455925045505806211499530395506783786863001169006538804605433830954946308241041731223380995509653763639788962022328138401895516348444929319656787701488301427632554812438704322032555465016213903171838668768211365407284966806355017883198088874481096809095685608534950424396109339705429942493125761822913095225016500844926048952262643784977739773727955676344469268278238197050106526992829066344533400773995288250210733257204232293125582644867297784935358004427533647270450271964790698931245506955390848971067631419233564336307754998808160793770818598431149219069774033653946323622989524114542350809591797148036865727106904664096564650868562779115679231209484969969186717948607060840901788891930951562351291556954219023587459287391133034237999171125566223538831009014094952843835657985301651088163083680648329677572252890082745498522313009118787546209252681473250089994360711816223419678979078287361276789838969965658736722272566948682664103660156764720801888143442230310215876636251814306924561478411134484346338040442888403866307477440810490259360569740267763816674347538003128839116361175431323635093985136966970998871103825430610027760498839197313464868243943869565610325382836189905062281521649659383284598846545726627489669229307980918751321282383338193357710561694865942444070754290533537551088734130648022432174389143043857912310863907694844555700966280528888534539279066732911249527959498666597338100534565584303924484408167405864158572240887697338350383430746803799714963210940993307614849686962002997034737387281762648312486502600651975954671908732504509180891100601056642782898121179781563749180617176855971609206431100475745954012270550734108867870775983189253735381251786745645977211614522535650147784852749841081635743995034032457752968436668682506039768539070536856058920603478249079372658923833672637394721672352646358231404068084066205688670504788601742789236465044669757468586523935185865264974067010396099122419914530061507084721131524728360905697564167619550744732533143193401450621714065992463180102070229540183814684670438757927924226205811416619282471672490977936666991206532503639600191199334524055093380863830873551742703974425748835768637317146542210081422787724868704045043519249335524739021620478659255527296704111458643398377046167816569045099114687406691865536882578309047616442505652258589967304316261789508606727870484869670392801968081679324288293694062025603695800690925544647497778992236791819183457022190019580996517120889848014896487094560185730605505879250056329352497392617195324949429809621386940074717923941181425486732505666856024719829282243669099731194619955008537366127209574610829681346025059545004565251595553111005554867610668249225477017470742375375612686300618261982708072513337340276132811165610923207070535942059504351570481758745397320980649496080933393204456070601511797830677847424903873417667854814535493424072513072659493540776906382890779059811146201844268332238066942764459183848997337872336990523348055557100673748592186619026256589975193181684546645556773721161863113064050612372058164445637363858855028831202444941633337111432828315217626773692416379100802683555555212249647654632480565689542146687258760847686433059116184477266360543717173363800804390599208751067396122466857398177787730272029685750980137638542544825279984081305220868308628601123733552736203586939232065804493470195653647746325365658408447053955499741530541966856200076032768258580186496277135888199564214049236475480006876363259918861825751397253290211316520528420964316711811014241676457487058625602536284996344286685636964459052554263035237880967825216767270391345669447325975822469324402763927006501888721072474116348947670463712359216104438673224528864730040737138380755492978502069708571896730167904569911792039529717159174238424316719578347333426716453882736278966722571111868682302152392405123964557647762046568261348250228290308326564043785875727479493092280416676630326028868481782486635463459104422319791670379472500339399438024514546947753216465148568982439447342350081675086045214513588219062332588871437987708476427743041488800335044349515886005392757202984316454494133819158535704319842958151897689545236200365746300061644959526113564375191206994543024852370611287845911225109067373337703485443005547245486242341635593133899416357200469649740489065556230322580173045753138981039120909480617217243677090633596948784604502389873127579287152462447684779265924722363716239972109111343717572836464275396813124814704144942763727604794628610022746296340296558056434305139979415821769055721873817978815945997310175721850637228922488424465038668021971262532357920307581439788825485289904333964743931095803755403606082325504559674840869542722369081979133761421840885545624014480852419724461406004059307299463748062694038567280678739160286070759386204433428396112331447961719380885598315821812745516705250279507955518431937542939232866576024737186767525651374131985328239262506806497275315468765272409368470029654277315538381094186784813974886160560051409182583143398748371538194889647317975945740623567178231173876203296029725116604536667986548707209554278920540428531061991337935685805635639102416745880984120432471714006977227895981824862730774121699568876150632446426055319736288999437969723331923388729196807192853258840464238266308851915321208148695124366727739448846676197832219124557809775995837941638919244248413757932600831379064363269640900798819984027790661317195523640946230590342927714981125891496790873446664952788801332700575700541052582437012050525607030636722940491890657051342510674214098739538626451642336282879066043595425150314766936700198270444971183815899117117684409557632020799017967049431142615259048046856758244191873803905017958133784416768584778832220140769148748191077390044218484928546306757461113398372485121814928293500956124067343308770892285179604387879859340959073879069519112269410960873644358854670305042523578087439663829847966060630163015660658668895347796395228512640677789672970534323123189188800460056829453131078685609907289279538369977525386931333710824621934520085822019439560148440029825062225155823901619631542645246034282744409849389127536352995050172321385172167905493726936144935140801391455611318677598538217666891402383717929900168052320994742237413982154850754233848654068832266406446764220848955911348068631213195509370799586202063833182162180843645060039397858793587619487064178911276644734671434656835734581242682467772400522836581249562235947665355538383194905950928934371647238087789852180280962240526789623932801826426062498419916215251434257973891791348875165347359237927123314160460007432394664333216988025483817132293953209816016361633505813856064335192788660726403696175378826958676627679583633204117407178391269590347500707120969458444133552086738168173514863826628491045715838834656245431893708297013607105680245961314597748885516434875464945490896978262607917461552870236842232700391261390087983411188727917518063987649690578131159731769155919346393319015697852359402637374225895082094860440325215893860909291580408406063615798469944966825873975146799035810336189234187222342911805846354063091634102242530807107092731592331018502009684071949606944838282470355916614965247412401469091812774569021667382229176940246691313654538229427239971903119887755554883556123296925221016739504240989711919637698070486538501864128260222169217786274348295223274860797417449242848878753551677184587939861149788960949184767357497797993408663245707945403201673985690558912310925923392860088448067304686150396925016148313052938191619012168908345007348329693432901409397064688328108958720611991574519999575540107927353402530924789001202833575729599494522676892530552946065033461175181359799249837952900703289980412434310579620258410793186726777256795469966422842940940241036245286028228504736149673275610922526685770850739335964953550816886597566774026435213683186566062218411463498302913223358895767719032369746055548013282787603580871003960379878403048213969431766304771881135465128242197968534430735848136466015605302543987921164315191249593943431490453091302075608644259795334847224086015179849528992242245531437662323842839958532870605147880456178192330616098692671566959959940671476965739340915911280518135333054124472618201750968529804160853699683237645332137649375721147648243535243224478603938389063409031140182371573135310672568745766061440599213824775287006037940910921017093221767795353162256195625246194911927711711935194737854720033089275142605440345372510741712446062599366501597176883492342982187233796706978972278347483913322427540538508001926963056772342500860526867028237186032854574770287927745132274995027573078380902492992385442308176647676066689312855556858388601541946264900595465178670568882162740374333879527413632529801783744123159847005141941301874778717732588696163364243925739164108745099833917143016965342258112268390177152477049582998447267569617309024521497411898585548238678088030771698422348606907504103422937594100462003770144561255014924459285934704724743819937669371352378432361346828038429415640645375206025286201238687476705627874464460576535996068515843302688606992552231797394350865354797572913875519068702320171615168741021817407167428698574910894580004478636118803572069123775609800772356608195993462291120069239830198786873767273812898578966740411231889028013841041074614203239807120244149399021073436584640531669488452278759916530230377891026824792303508097348382511359367440121973305521357004870917672889455791636712054535108802179138103342010398988028187785689504774269915346128548210129477774935585668270519925240667086575381659096702659300181573445437545061382048545924253163765988346296296088682692175431058372472739992121519483635822865299020894749287491938459122406040758301241492612809301546597107017243812133657883760978744219163309887055597618084820332879218826789391106609703108124489842341718798174536759339316895002631883465685184482067668058603502476620235201372703522484082278511650409411446724620622572307365341173493339104403759863657263125612162993761801672427751728213964853061707462682219969295505609582262368510464966912453207801110910167592623993672901685847010010646720392292408176075629546548783163290601460629931667284975607892036030166602445392116691262329854667243527641838321427256875659678878375795292800067214462123365411534849088776817429960246445488550192385963884133454604438226689727394329649761451474366315585645157506845645571825715706087194559100791708607615416908931137474363904719651147122965739580241821362823155022458085078861455019260332362866344817870377154608665966278803064460507744850172670097833514829627502945401254757221082005596386781635312342225777774772427038872584500910901963031201900255629884301216111810320003301137394982765900587777580076374491994968600299394894629636205261410342767890224650353444383089432207728153819036541319203415353401860202037557519753143596284191035087297124390169525333751556610948366556788774287418355366639455846694707896930777357476658654685036214035582272185097812562718228735572527064477412523344109807355980534380204807585667675137309428020061909833080757332036590610431412821336075949410573998123252912076552724574773083763305152775442424616651206541492948094259644017995181928381808461080016733430335560962279276789641485307998052903855451311847969383048650720493327333585422210426697145654111729031156893683726502342981297359399711790775470110512826995258877467832764973064620963094137486590554998631108993242310547783366575536448575781812647909580018184011535595196744331212914877581080187592342743452376726915099356310302810632497650570781458347742754472627358109224854021111780781321977756439348704206596376895377501854225931912118894072749848956829455020623240576282985164344236507702214065121907107051908508243447320072007784463917587182491013264336349156772986812550684452612461686244660285937700882040620511957128833774777672558632189981099375403275276002740453844250555047053200005255556568174326821597467551053977433324478137377057421555048955575103508448523005088192204102669666399573577716583380667393259895670224573485940278638776208200340544892831782467517317833269610404262672278910379991038945909557091708003433134026240441256185082892168852349963319058530291137152894948746314383119340430333926692630352276677689125164763767217530647711349149183236298507460304128153839501262476167864480870625147522394091744470891937514817869505776288425374840272536700635323313899635340576184102817532070904675410697362055681022644247065241944016055043962733580246992957737387224120985895660593418048938978956548971978562843038706308129760283790310345037356258150123671960393468405491997244748005055440291727840177372999027206659202964404107818833483847784066087657667254899796739525700768531749068517389940185548822756673921117436534729631730020809854116296990485847861093150809582984262245183064445621248021127717429626715236614553154417801995195351601871874204124014924198211657314504425971589521026969328180508173235255467370617893779938252817177351944205032366805554810756455372642104043775324933316113952023756069480066838163160841329632739292635460554297627299867148097659082356762744472031411294521580631917235340846510245124811587349344105074901707358323253866222042735659339580494816810927525939726104214087681602982172045634232065446551517186589293058534544158366412215369916670237929572886787720186798079570210708943422759148844257778209078552434113583991601269165846440474786275004651060372373225095005932188054092531211532021527849957925044509750399657101558151876537225589968878148265511336605636200375534838422691006734792247633926941227542959908338483724736579641992272417679642380078507903973065497259333078462330740990425709453279778610411212703179476443223184271511125796580603947101653351021988246460056873178861268500065813226799165575982060948384722743246521221257958581584592305866183021749103654404160887629264186421881640951512472399434101315153412895816624910444650270729753254466679788302773108939740457803826999344217738139682864758607972446022230445005766426306554736170411965158766588406284935262955566667935608888554383534356041860956414985247850912275148857666161873665687132344509362745575162822962393767503641838293080032419255916189934702959622692117160432695820971161197216263622736672736394076051353563074389166941525194098989802384485513154626184740054592922003944388288782449373466356027586015796845824036282923731254604888055193751955749349632746199101105902026884834361801531827729145764605455867403768601878380030773044375143513688256543885166755652230533437656307966452040319428596423082466086700354602076283381432949018730248832920841548983632763716538901861435622578227363094915185196022827904630049223877255563109879478834579812911092867188051726275951291207183379853442325290767132637740163078571265726197156675371082918815971194915148701177457727020451938131619028799409855727870323212523368838693773252960028762057841748040728458408250694892824257878284683328467493800422842535133686244726557550565473710394848493755021041120139975445718674717877015824795594269570208073865533725100509439596493283969204356835441075138559391201320143675403572710439050082509487422137685230676487401797721775977189164457062367358443460099131439556006749395122534130419867855312023673773257180512831160393671569420974099650654222107458242669243220512246018943244011767569284198967296334996651002622695438260045993565676002013679995596054366529099516530616596383834242381538146468454929558221398847919035763438614458468186001232919297183938805098485411108091049756858592668503097456935939477789537633792740343694167890601406137182483702567591655439119937882021535558677642229739435980382636181869677993071368399143288767418203187776868780031061505034989475592612262092568093594822054693848382296581653487520206238447526674959736504728158200831665704697873665800611211323117153811332070628371865979008257409355363779384465074701621067397045257413411482958823819772470058208643186399744619536369099718189639206670377417105913264594597122688437193268572332448359238390573815851761844572467597791865875807698167801219180222070914777652365539280699557918628826778903382179050804449575554828870583755336410302314194270378032460594777788075050046422190895725323405497039399793963293091283687641465351579079003935341592439662871751303371420876691628834558807229180868832612256374671457223517871652325619791492865184515150063296107539117151780655752150673226585561458982448340578394431889338364340999734472190962469080386929471554120388751614292344389396618811431992478821393485610569184062555317569484002938176262427445443707888751921720045545825045922658382062361599576322499444517079788192394996583151899372721728377172138369209917590856395555535116772771423009682891534432428070636007766653092398344573037950684871478999898284499399680153944502296738774725109341140766102704434987044539632886541082516435285186510598021513818169645838476413077033623596357958226785123883207136568745195347552760310001756391229964355093638092799305636989654077007923076763617223857629915746165381438668389372448349339254451852706010817995480320007044129846511717946325491729394794383194719975846791079321585762978634957484436110267113016743934278156108259951801455542335819456346495150993785597746379532221507442417294290875699892475418411155525189949376422062790057579158161766859465185507591748991141023244439290808850925648905921970578758690998446278741653354344453745362559554512001038737192419433349466550426071753825676951110300183236511659046136133599714897638322109745211993676776996608630770678923543114177060112932403575918272754977921142472063467989389570463825247890568631260373039961254038649055933155505480384722352374051179022162406019350540089311279721067180163797895219908720218203273048600047172730000527117840170451359258552386663826562507000408167917859441260673776523599078053339060261867148368909005953139235303637648882531162765027567520443657593887860551465437433731987877866137259485035497097799974392028838749926196991308349947186882279831160955935385018270696024663262299010084546313767229532571596577971485929819286547246234539854340150331815088471732366897324556426965030520891540897156417912656412312994555463915482500162357337873776868200694839905357758909943736599918552190180843109149743874919416953209755268096155799840108419825520191921761216702587794333086172620986755942639655273605813887975230033072947827278006361145659601061390952723563565738523099952299202412330996959167912919062102675059784309429916297023387508048744307987660528082244321403973002426956113357748877712063513201215416364506935201160048978941568249429301910150634304438296737834264876054829812564986720073425724746743007280331220908844759444481684683883211825674758943141948520085010867092302586599503669520985813948470228707695039490186024998014181564135029036504466393170760553724416831316621317796568431767462711010268733656153583003360925094800239180266675535531791733901950596643539631442420238803988059634030121695284409907466418387648377819843058540833179141268909101135707430596047591117474647315636789959092448393860504450808998392724372275455811941451639857676904773111546772125354329887757187072519711389319463934315484793101242905237395150747844263881004633288565350090071258596653160371587266303290502418837103897708951677473713581903831937477611581919321733215303496267614840002465455482388849723371503162038523533886465201778173427621261062891613967046794520003390169318361925332495548601732511923094412602692923068372872439764011727716336106731568161759029120349789218021790110052261642394867925887808817850163765915296524063776653118158749568199020286615279906911326277722284351443841853597721521576657910739290160473445987151335100050077656471929496311178028341943897871075222339802949440603120147576432583660484664580065368529046627413443777091137922734390917361457180473619724056162371509450750937592138540654866965077826865408385841395259597872106663323467632013703561734131638113531979486184506869483346631092238614895197890249596862821528487725980046635163542150318704353336082566934535370333018776766622307011071158818507809276340181396963674136615487861192110358217704276518884730593508649870737213191576223996391124020240845193875445052380871988133910688291683967752531277651618449177360767640083980330493039359792705109530661669443534381809890280250119846605023922461243306157755935466636902578652264853551530295554999685744761436996046830865782408511347028273232974395750260465854838120753155378982837268850870119770676970407353223189332701805114065421263667832136049924274950515529493112415638286922564210563883763177000604767208537952440175114057367977722053258755820502443513941870864453304615031315068975243456376308532749660087157806379278845971972877042484678176009001576064204879623403648177930273691117085607205324983618041072688347186039851022038790446527030051444258091270869213402946776843407167703333503153669341184365447690249813489278760113866196695409035452414395422029776145390684722932876492029055665712683502630218324764100091755579665236815976646954534113314925841772574321896381760762275929472072923439582497917644155618574245855131902761175991438869835414650316664616640995337143388775540982604269263851717657035028794564584988424328282500871833821032383909230713481634597191576601455549348631459505134901458617469571698312736836476727493614125810026717098895169756007389620662088788172433904813273922440762316461278040992548460520497381780677582218785624537706901711693202106801234127196356943549643721814661016880606447786208588700046608116445175852529093669203011133607417379501321268196958261716797880195136690229249447604911866738410545316497778035845098171086452871700914909433702393856816836277545437120894463841326503676735951446250851075757501716953913126268992744805259499458931208315215717824094101008251248325752471539712201137324519604155039740845879576187622305718213438582353118612272326272304005667137184332483690351115015983498177919317565286223000845787551871254968914617357620880063392895678648038602036302453118730632956324395282345368714519191776285890257675490320062357422689934732302510103644646347633343470179456763827746155518093062394017326354263476159171235989252970482094626694380834024312781209126141909671316381809476829439025428567847847173143916323512490694488649504758403155013967654684663308813450682779279357483149594901631757297099429837296450130662668876668525667547648667301815268365651531418351437983096742307868960253918351645181897745684000296410809195015690647049105394610030115015804158283565089643155690899871076380196045193683671908553402090500146804555891433002659294429138079098406710935457965200701496153470390165652329357115134286702113420024990760170871264568523578460078327038428129945231914166796776437917365498817204389336810690824685710228988517723100388224359343252079883150194562953519590536957568163097622394599014566629185444798484215239335949044464772811933665264233590161932531458022719062018905752008555476405472462756148918721479042158076317870717980085054356999128840481638725155597663071082114328689660043289977813703685376101656293062020332192058302831581724623284082275512991579882055279159941927313137723154013375822820746106496494307295511325038181844015329138322465226145036205002502662935741869520886612265373505563358556149044055650102854063655993139171010412306910681081675362193417570454350733976355710970463013003819082656811297284483487065635980887744194631097100855141670031350840595800677181695113101143387126742316900202734192737433620681644047333122187108888289702761117163519749760243227056316425438263815939664478154072090637942002567518062747010442503897029407490736347024042635706029729691545812188754307186497269913186485324005544685615994541607016135801936745657462116991288589521393382499804199825757958503580312052426607494111681843952284140836321142467590536992207190001006632502777410387337885006166430478045511516954690160819235303792173212490800073280433783185314970312152200786069012970045098077756586543095997579518279637829093268628110706465677621796427447623091362517972570526741142138935092831636788844572858269941238087640719204572072767931871294738524726469738025532319984881205236858201382848840932040094616100205204944875572368283597719659249520824666409786439379261228999752067355452857181266552584867445035294117177375317520700070910752575513393607660407442713130264655819161954783466723320051932018397569958651779169185476051303126407996113162978874965814319271597653268690171708968889850068329413070996770025048877760538810971833719785268072676159661511406426513565972280971077986978547606438205882851239643331141522340926297066290122391453947389514890282147305261821636402515699155461267984257449207291010349246958301102595656628375955309097723018601369880217647889175735491422558653315384301581608200108406035904358180725849487798584056993259035191458795430197901265753081228549910533310656313227959590625878203916232085652307774499317975307950643163659354766448590753915397317650307922854209736745578595911617598026238337863474954979973748464599359925862050592328070302943228114239535684428593574377807784794569019470219025763748628355925747480069980175075571191620255368476161714619711818080099855432368958844105551064774591639511216434536875037022958697884292432820513769500045342007731042147607432716057424631669289313552828382586617050203566660151907585914732619462075976927178745404882334580267434405764838204884644899429153056229734726158334789650684659502152115574063450261102933569678047353194541177835381679009475416254681756126870168493469498573453715444078618606017242478899312091648814651972611447022972967832857568824466266196415775972983106022171025446412362294686804815564379068026910158443367303867910481509107911475322117273979834611533298715462558992493112574302658431440698736848712839664104754154911856648653080379614713807863685977078848515501769652964973764465711675340015533540818259687395824947586547316429489072529217973605458943870708711348071509819308356469351623255311677376024502423489550083220609962728623812548491789197543102117665632187233363121207157423240238875896453780071265137050399081249454053808940064768129484101697201363613627459577348546131611660334048485907578043550445734549476974585334136294520907706870753264774576894873083299787690126665285550239401725348391346011699047859901842984475081541134885967937456353055971612552208964111612696804577451604357135017268581188112548652396666775681761391605490390277805161631355096352184702228702654907416571704010213023623238234438700864659579567893260342667040983867169453897136640232510144581958266772133286682558780328122258902610233851581057608744630940552676993651099895131415345543813418958630922309286232157678898445788894253320566836514633428715072359451761361381786905834885999906688272529737987754553014741446061731740054033803509963169099339251729696775384253748686302692580936570521248941883215478810748241044760500878129351294064058315448907642008829578625950107950603359572035495840643729923763483847062209009826924452168504701953020642144801972962969207576271770375093466628878681678176807025554583493232707668434449940521954377484852610942132677893297516381034112503340225861590307025856544701737917630999732661639689517345048083684890686283721644346667909492638284589451989849860017328511184665835516787598480496115924612077434886647346716670020448242840343164529629201290825887913758552229659950558459455479751980793598109401754785995510636987360107295219900720285368390872127924985615639955867354613425298299316721614146166564691295419978815357177507641938987428894848973544732572090442124065249681418707175931373041739804837178659673324811035302669926124360414815887117361769627330890570119863070018307768926746336200329511421721122122794228344411075681321176336746442082390689398006835883447810951775213993516969249478535624516227492098175110696008009989294674596564984212877397291335802929574996447946327844065062851939432579134057301548419618734847812860977580764646915278822022692731642374803640222671177125612612721603106140182456473539095732433139445214371181794307982786267369816263566343399415805062304806535764683828751141363240325960552031714277168624671793861506141952385725244630147649121800769998923326342873618153295269610148914680118230955671524903942537560109784240766767230173889679103298169263706758942376652296064523739047938413115531295459621271466023343059785883323602316091107140069316653936534768296910826100923855281132844584611526182543184981749802066605028388298147118597981556877292208980174597262861693177099717094716878442546245512336951845656375338518159426109187255592050107078409920132424622978273927107851438675092537920681047226983955248649520791733347191321243862095246805911213361272772234542710105080405610370485526240054326351131125882510864718222163744051296610294071941030515363091503657406780133283406993223786091154706135199888606040043321334868739023976167011516243446534205986916938305263776032426069324668216615125985388752514165153380432795747810483460852098186143296023628418631579460068299186257708316012051815336378255183436776551130428829694087420896724658083619563998637501350531772875505966685428740749243454687274311883561621865430999003623198920119946401122921015869713743127194040336227037876951878867261927023575230310397771596294863563438788528652908123060844901859153141868716640212712730904426122839586474246660027427014332723507825296072751311472627923989082502232288575206224998118217941753971185435405495273439223451423129602220496852014047090419382134235952997931829609939405544094886463762353004144414136373797010438396201820398135714335168862230316252281292637241514612216252220312358264977752010519813260295186029949950972343367294983564903931318070391980539089803003598738218325575517805693855160809785203099538592788450129990520363346741964715421755753728287925880542355715342711368578419491736300921749195755383579049880124664659703235528113967933458582192383015961707251127839779113708626503939853067743145854305460172702673442985646970657146754448761305559655436012098217426823047852036181647576684188617767815390932588676426625693878428610222455136279785777573400806162112489815958139883556828780735867639731979744182678838106807159815930336272524559891592867815232553895596463766507768922419620403634179889205915794525031860641574118875816189875819721823347801872899210198491504948543709199018381535353861632379065822760254634524465763635249516059119375859270376729556235258811697682948092014485948364506456559224982449582717224578383604067067186873984327813605447374543231234048462469493944599537394202403414015013192105176486651868385466621047972327749709624602333629736228914506369573545359398061972255420021871370015454012653402696967847582349674313250189348750020948192234461593498289280813574819871915311629183310406244915097715446206296861580291384932306359720873303460262430279509293754737743559406344336445927938490706284248870974011107530226174472984072620355058493249667088008093444734538714650926349794247132991686109311339615512681083399773054045333322520127802905138664685114978328665982561765189576195821333335644681395667630113627784199041396822102191599221931826450412822053296998418777683067182276162002501955822791857442759604966413546880995103993569634869856069517921659301210802996850548176020687783610587685026622575317515556051091904807873985021947147176923486050137793645464896856297899409941209530533232969763972178272055677132747014552728097819375410964906674293840506871298624225261737781199383429548915874069587943923479509356373922980003990207286902032331893775239083411732533851564418821905438417337230137027749890731503553469476699253274711055030532086186961296330811034876527718424531487225990515910037252120959340489990345382962851533410573632653718068353802061552673208733442370046458830395380295903271103040596071233053459058127301287271066007064811763029182347775166487762733277007905656046515924575563438936597433141852833166375544100442357336473505265648473774385290022862443897447932991430755526886188538866860746731007234406759498801053453515707345666073605326742353595748591947098300430195791547851780932836128709134797028610415905976883713938467956744982922692861005718424800428968647697669929654708627526558658816229787411562545984931938436034083298526736407034152321053052965688448099267560627051544812271588062284969269472689032703470383676519950943573172228782046569003545893677832099765039242806100761568566019786899196194994011042434126220228563407079712720759443677416043069998384715088418096929821801581147293309527806227340612980945099786351519341723644067786633949848689835553831481579580567845856382864926765805407985405931402363596494777904141563154817548919937235124560614796078320580595567355686795677731154336205915291988544781952232681723053619076910422709517457248952989485833045857795179228835188675016346427394970192418729789050752330400624277108254387301623876130547536136239469976632229122566365983350328130174722208060943584104282497847440348076273275630167978194469611077237824575901031094436739218930952159906390539633614419220841164269390429561524915787506449205623828823966231433542188748003128169703631114588542184167863018232725908587816347920001177891343741642983703263365990354292046426256828434202477468724111651233586637713003126821204136792086512480985392668197083995026649788362712251125970409893991557126149747494339516867729644845101926426906459531860691848540199117030972706951563805965517295020414752700001649668366878521847797854229685756353425049748901939533979932674604914982138924214409635084050132211516372679959951201981742707875036220719823071015820171137927061923344645760476831692214892803088161950075241651960459016938709868249365235646020175433648774867469494429593918047970801909001734606977970734523380945414557102609160867148918791412841722321690025088122581270292482325414985710787716128846750466749452735526694834667896826350280539996063461145147196833307503939449588008539110041789589245128293886357281907903679244142815786666914966500409102714375542284792590547736244408006110744532766221442953948100226474652078353690858749722827524239105225522010740582034540724676802812331432744379036091951926125927940650526520430078011958559041957614609788379849919815658633203635880121940097797944542404474621122682305000918492784426170563887289054131786025067494312662355532579061941241379767792873665753951214498263373547825402962808939929742035344302799822444916840948358850237257193233784762862562847516462216711760309131145434227693427933309734144720539230027023467571482151544355610478841050462007520728513425912165936575505356392744198349844275400203250474538282066902437745661695430694918505042032722994330249206125674340888952815738297124221856444029618730545630195558149317016092551041481463879092389723677640238108361991738619210558385110035596274649461142108290696472460064712070569910907864035589101625574415924191410112311500983439744171748721463876109309153915928754438251549329140035750497247366761427008358894118965096676148268610502470089594693702968490008733880486308243993684912201315965331160201543828349177099558599311066761622536911749185389313049642012820460767730647077730755425526382980250572105380323895110478529107471719479079136818866279536995970539496136280288243969432490632952471411584569093146675039762100728627818802521823005633179997884394131129846581712446493015501859218148467882286844853415191469667312054674077232001440770991210397971861320622781006344994804003363822195363214376721998402009890811012727150546102766761786061205958957059239814306385756543992215287244839989768425751292395618233000423133073136663337120693739899295305189187845197239303965003186961746316935776919981897499982148274130999652542486688416387204412360681769935650221651117958245007704492756813594928431095330610366361346371084260185349577931743471240815295875640701301552902381764702052734514268123564429183567395756486209618165145012990505559896899324751984177520130488156250066287863580114746034152548015858112300372821061436415551508978489236292590345795413384149551626405754414592308662678275265941282490966982045601304608838357868979906246002025055531308422799980078883066661007897645694929056571491255423692575450480350548276761982745206833445467466566467024128308750443506904770332961873500775991543810986615580734360380756561272014815454412985184135648395024566515633495752662545600856136590788753015552607215388585029029825380822396826877194984040028948942717129381075650692089837804441153106057602731022751870762285395635041269374069136837836320477594540999056321784461757702011955341390439835215240754852130124684901029387904084089250720304185276799425757151703310882003383866032969181296510540463038765426023396173204068627128378267154512554927328582663228035185491657327685579446357482676044627060074359865617000604105643797719041511047278739903647976321562015325885298245544579027870826602758919410111254323603837656398089399212911546460529928559101671004767910285825161150610066082076299042021982714871401834096104179194204005424739408528870662378415317127458369132957087023592919912359027802700638116462347346161226102721273247039119513558708797780918401124519625245400732209920944068485396271405662158366897552584162555136968410886958526751225972976142376701737154103960257888869442460660766887911580112133427716198316213709716322178642463745142891207357586976378763966218396746405951217084087180962657296095124968807885572488566438553604188132727279610620270231998762038319792418148074228479018438841280059676595660020086724876142070392200456709929327515564169889909105677075105555055573624388563477733891764626279085796558068090111851492019099227693831702041922804952292582223521745478809648321366771472026713431756387915720161813299308723451949285606383313926531872057549572694467079743644211182403172062419733913596289933484969733189912223562777128345878285373171105442916522131777469413263327900708448134161590065754495904209990864647189247371830968225431579474428836312360849072343019686257982920542784069589540057748172612834890287644276117370871728736740391851372504252925357143560349691181765393508745976875368733174589040851518822935278800581787037447747358936383454102022623646986652371917855948211056694499999116325385139826175802466665205404242567656120328775227865274460497155082736163367767377920545244297287314125495248816411657143230978311246554250068343626745090977211914923787440082252422613977224258699945026549121589084092821118712560631367492294472181624823738169009457322844795352765749224924047955795060607760622091331542762140518075647337395404386515074254126320603556110383695760798629924412360150670214743889538462063332902514940771054734026794844355141445864460646052982013893756820006191490551431157319011320135740598792227867776527013080452182320207977950996820831929930305403497034961157666120110932798179695759456982692394060855269525692490105524750699054525377461030366711798619936841037142479085519160576140314388648380714039908860155223766910307766063314116825251783217280726163125041704379003791625681424183976411901702958906302838823028515274284609886330767797307896269546040638170837898307514744129689287836848780897462052462986468443291209156424666751340373443243262408470230467088683242658000630003507049489692237203104884250636737072023755140516547336993740540687724990229556570893490526072688780137123260611999861866511757859974802769129494904444053266872783538708770535634901636429850021960320532095092488288726791535427503624206563060193970502307454900069725289867994087931930105466794087420590315326979290552631862834513963440082256791460919322157364187565963126361994557891825593451956560567611479291491654838874797249609505153117709428915903163316411110257866463731695151935634962621804899168149051803636478110156489344862552610260650082602334961282469868035983489830201173485710824285062111995733796691885475868470276395906288346651930743689254669273505471856042630358982719956809809445803665297064319746813742321671159280355621373604233498925853607490198982575423913107514848497068141978911458518174963091563687913440374505981419639299114581537943940010794044726887470017804557682280647937334864551238107692986767093826204654267531583643392096328923181325690201256189987209554883983312405192154551730305887577880193618903400112313993011250130540154795735670021107935965861155939198374797297362344965219427958283145138397030267811846822193327953382535638014444748227792523189595003916927386939662985562012033590265664608370322725199126442473621587402187364989950693805187513828142861984993130053932084731012604408522317588321448446890504547215082971217312816959981152889695807518184199112303198417021589846877098648870453183617700383428755207242845435769382474526038619657712239323543312163816140445061336925089337608695209686603681754207162788346850892604683861679107129555796499791283582255478302183231181369341019750265370155895581734030243854620537365876290055277817959769022165576586667187370221525944366405638021288798153796265461564060630723490014323479670318394591164403040918880847488365130812734772670024764416646152627472144660138204454367384594280219175713391827352687037629931976488914923821615753615239999801259444628352146609523465527495946968247464496693194125928471009883005889309005170024003991122704821193381893487152334156249339299564489632114815856672104835660471180731879925872497723413810163809345675612339496675003084420397407349607625419731561870301129256594978494321551381697756004437298831391828595989052200800187816067872216476201025442323452099585140468830737209361239694980172454597117187376678892490301433051032557184890834302864887433224328251742613505932915293839595372210418889727738236729288808693799298981501052382953487404969494671976859243343555706220874496765888681330801252136576709233734175261208147070233446315080286508964299092014591294151115437232761563737999181160850987510368936466601118787765770138541414457899936604830312887441507961954324769547390534164210742579420522050540301702214731600520850034945159061632623013080499938692783281626819055158365378530266765201591346174039389712259562091098618167347734782957448138600790723711823894386380504417834922002511732413946110471228711160097432232055014948846002284585180176836924277245540033589003601023256600343839698687813821387132654676629479564973127235276056505254919701699689592415858669166011495242530589635514316294856843420273741119482544064568916882300830753953431089710874566202261441292734421841468813665511840664643017450747598812994064526279432276254301037880324302903780699129979056157113884594781104554537234392562639647476558613068253126042952618949349184912802003897105132334124718445397955960612155563498824383570755645041859437999191202632689620812309683412706246518869522888393897359883512336653037441077145745128456692199569448030388466214862496032954964188135945665789105142321863890721388255474871865884770093636318688056213650792727625854099509781834778462794825463146784307249254089703633283376562351718725542325857857463933050640441239941284489321825032981145708963811052893913154646848246783124104135758596901424815216608730983426495198817589984865816342323196926653758181344495875420552270652672175290443121540797016693580201226806804177645015292891655875928811466413453995555316917511422828279745104686248846872480103917467442184154768914201226661139220485443371510340036730962825366274496825950504943177253365873973003907959233835964049425265530884429319923686082349939611853067973425037823679288733260052775937433916461671869355990468911180436707353795172239508067876908224507392526107865691556736230922922396559962945111339173836108837823275375736365738562066978880592527305981805221462533320498766430469645269921279381507290674912169316533904357449092152276922881340436533329728037548179846432850133243816317859951013739551723474005688369201876019031411171758862918863813003046642778860611746628690383939408827571372891215959905706281242247079429066659394435408503736096418003354889378793099291690053222676407790577255165161350084716945904417008263675519857360097489803346443288194324968913124577203705459154762970454562757037935137030769427670177077915933358945883245163212021101046334732417542652551300005633885018342244479359616891695751206756249394601485390533292648220790028494135619549857452315689937865382126031283522727046093083886696129306235388564930120424438709125638915582941888618470920600503226730631447746702807182007539536955484878908618235226918428072784271101668012676528212603688597108596420650600302645523801802854661435487698304642752311664260186230493060691272117257478771759816188658092778333219115161170865654419256224707022484352001624986275166138282175413125186448808099524862957551784672056256137194065708003680694360714593240119433136134466062714642184215498388215795891718734690689119345227753805794129106568128751382077681275165241758361349907601755506996330306940929946610731291410320714370307987727595684085502578725882168134907042547545645356563142856617106442249637339013603477169498692296067196989054843794646481292177303106086721478698270999430059733800882347737840516467828012371980355445624401149870724182177793433545832158061860501518891903875019013526693850996113214386853703291615050597584774611546952262836544445480079501055473044802253646932601062682425782932235940345775797222859420103482383482988022082933793072474534392554047247369693206742503854250079722388882938883017146081264629887123075169094382893996148369415321028145316105062329962778612407300667726660261617905527280066765371129171519400295810154578584034500146181089310429779565985297583402230084173465173321163334438912620909050285102854907794525242644033742104635858767538776575773273087492427554859088841582016933814031993685654733164317848678938552488426193096942444420014869430239958953433408915881849575836624174492197930467279089709535977230849409819971315011903103595554094521821126731526153130693179054865484969493395848889263069295223825057762408518608414103354501443033255981420126435570840671534806341173436054618119186653656828056466172321874825841852041694556485862427492381884274585091616608598012008329232550729081888987770092483585342815083075682069410584851244353704339194001716837169561128941248018123235118832747117871292075832818450829642948241698704515447335408340582769889692472139269784755324779736504446956749899726552299092615790200523240428411060260045782260049424025934296949148832737112564466654897563503977634943093499161687373463355468591169021092675654167282737982513582110902778065325550210701116410499347795632660533009420726567436231607419145609046901401032911010473431305526643595940939484129361013930687296717107607588899631552511580192633979206986137429770332222201165481140221170430078309612547162528664853844005902184591583521874271476536979547525389291771478574790951672526323223998141500435979633783417504900631292762713825153249761259309312154525278842275855608770223389666810774863507784875942735549171042185890465011321934015511552944917063016951431797651392379840634882318826634839758180531659328742271830380633651801682370300771831592007673830130365910617614876126791644480660006275646484664605999512363959865299358974095717881767185453321808379724954324019404425288286739238555741887985523546595409414307300728721348145372930836125397763892252816150196849871745701437876873373206658747030924414335808604012438081422665761197492575116820886944631578957169744515234726624719175689208945994754404165300178080819481230657043515097009293185307602582170603473983561543231032373761634403896201248454716935534885917236301127613310310542175571595447877304841619266775239466803566144220171469421481731636831850484278503485699022134087245330968938987713387223912847952330718045076558923421904338211093351416259061639640358129957134351353803693923052764297659156398976752843156106439341804869238135263507320924466997616301750946203776470584389410887245634027173180571612854767903382821616660100044881646293944432619298166734429930814633177302952375705998438700857742549049505663508073669338338829213096459980723461860227795796005217595273941421895305946723529549169308348142150373044688692976578414096665787265307996518806016761101650048116449483965620215963279229391492594645730949769035700911673684619913427109821462300970052722697216811848467324322206245159880610021263744475142598587434389633202121577929045660967188666619256748293432798231817901878484594727221087361688169434794222979756346803165008011316249529474067490094434122655631345358286943400561758456333279678851465096627275676946507691776756785924509930528919647471636458153297918695700690880643886554061114754490777103977827879690878123767212572108884190134586353672249970457509166081508052876439516930668658577611924337662807480555698515609067161323855907993526384542884024468313223348997543266955419394915649877631509110299557084162252605663129521254960079374149191294106937881562468297917598783670744654945246461412917602898120189125133249145536878758278570560598689513680355169761223358304617926567163523573973921955984552737213523167717706103214363172523112003642245919013538494454333908536086516283037699629832077089268635783226645528308904099057416164522647208752807097729175031798997318421390227665833362216746841486606845382408099236293494645444979146359821511077496159006582664743192341843764558386799496126272263894849194043189858880762197843443983259512370330412040744361986903997078450372049722301991248468195650921954994962920100224663944761682388129458001411699309360443965288145976431453064585229089009779731349673392511701393414541239110020493598330981529916742049155658970487648300544898547610235909665417354352815779442213244386258383479875569714159718318293327610475076679292417921254057408803581353339666226833604524849609862357879846079214462599718635988613068893147943269701632269028128562596559126468046870015754259716056874251052208011156811976673927202027753091093581930052719571458604829049595592883834914747954207521520477078774363801861414002092320932474767688687782415530277683636352536854160180033591230189431747296304767630507752186315293020312453499829212958235368428475507799355189252602667989464298752810376488611786702245476148891604745390943161732067348078216549251731452479689567799568109110115946045180912250107931197060932683191109138143040686733390110093269237606285337542173991793838087524730643427835873422197867216049059913110411958573411839133128289768076951145737243512783245372776829322732267627498323204254106071169388803025034080522248744990775630976493491612778720359795468029813201694670323065274965670007641056211821226780402506838281527257168611053705580424230378380090433997538179153532552601069121886742761155990748615734428867012127678560302010339704053003161307556154935453359219150063472961292740485722829576525690941037090874741776882709143375178599254780121361261704919923835874351868110849320241580868119591907289715341489477620340514074606913003975243902699737683259553330539039736791869131937257923780097279873831508605866755482787020113280575920849732928606256916836216765652690066187940159345978311816800024114741300657585669478213076983080765725102303516796748369517231931831107467842404999209304731762038418770559205183304051384699585623630990773654840900791232250211736763851464133494509737300625237949756897422141830399464017581683167099848482541313818062767416590131290119316259329778618126862970626677652633205316161230524947951634835676391650470299937571186338442227662616834333439176712056377635515786995901280452826481182162241111235985839356453048822490169013829178080834550351402841945702027454676970696890746168340047572845189183437114933318842392960669714321669585988852283186221377461421238675555707356984644739481240675561595780557123505389813050932202142008060226147267503922273139768545892362494565475371326432953650752798098910487011800448229615687916973192398870375440792469456944233464602096070143515785332035276412642485457222825026944951791334908124399322533550651015967541149701018971321895946352564382339583359060395629166064041160077739900581762941713097444014495345275436136279353764523409086571753429199269443136502578964385058763204693305040996905216374260217601980774654369398735529182859790621170375815916030712941368685058008507094692465874297436477643233103255687310933822227007615570915226929555415473608349551789292992515294045543925452639574038268207488773568919637033551503730047560971175582179211031993734836032287861614697113041405286547114582295430262951971439104931188647485813487205065207702267202674789789603545797737446370530463682792343930737561326857865863252966991320001718610053769433086788756137664464387041537049095377811527891767113665757229353906488611245711409218631593113597784419944308875366092639212592518865916369440578706212840335735526077057191353464284771166385977695250493567645506657200911333508150681538471718101331126085408127126207757549381026856923832445589125484175432306384477116581189289948713292081015277992327626456616081482024290249101554184840382674268808419096359498810433974458530682664981377532152377835112209410377870246685862011199700726149031024379600154647526873977952774896089731788500311337994691635228137038305945252524488100622468472788545896658038127324755848057828765134277142320630079185937798206249935771128348362527926506214106883703266170085276658299259226155612697855859375395586894992656106285186533631520443935955452383626009110267602645036838638721709649868463819042198442420397892820278893512553203833814486139831154410455275843683672887692150236132547261597679075660291627769543111614150963143284027012867069267646844552083957259726802259900068095092560207507225176378953946496370186803557563358428379013098359786938769864749620774005958326739716328831682384587718693765076365327163345869912234741779857824170740073720977644205773880431775975803293632247828017988909181970892745302474698921077983283052246488057370781449927774785685635454174416283782301429427006151121559712095137387494453183549875189348887245158192880745621421278895115837535956262603347029455836111529079497013846945157043576557223704389694790842592520631582265269545945922722658383244300670837870086717670316195098557789627705473497639703704790946873861169191364129587349036536117434409227127649936138491250182164003591228354225610640116955854611039291040012886584547195433735844262880358064182309656518315382355879090963350623964541136405992568024128088450379683417279146205134044901477596622773531969132754576579617680081371530572742822553608618463823308588276173203165774226368172020342373047124509616077660730732274348141374011922742435998414800749139983889029017684579536005771960686707943634508236366561451573849745236556649589718105699115250874859553740453946467336219555121909886125636177209477176773674547073110305688312996859284748462559688317677997462514107824381205304035713754535082276208762100006955223744891299134147833202188135132601400333275639342332479410544501347772889744197348658685839206129289900360846132649746844727344290094314769061897206390844823190924693819114041394252546436808180770222287320967378774985532840271436240071890413729437807866803916528137722977478407240263903787062049110615826818433999891626717814331100210302782065650396097591309089862128029053289597893830203774897669149713360579397762545537357600725764954736682195414397274723091322991385141197572156275777568458409699619752138047206096922874698869056612072847269190393581341143840461404453700301093297909830611933245435410352041959083786149742510408076418169265899366793324150594303084583080008025734518575258695323012303497593997476520797622787636619160584746069817406814452679930679415160095286595002210777064011421669414668019859717012694177453581637779717344110052640999955744107863992743021765366856121396746281155477908463777932945250034089571930354872012020766842646279672773842186980777690102939572043298043611855348009078600682882072268139179541367235610114345273676623446831364090100109237633953288838016232608896219295504277570628125176304109101796999721686180146905170026562489713752189512716472771502202843991993758260331285094474244151445586605873705106643058627830330638483355839027946328529620772952023945399585190654097711142162916397101862729915575279486658329114624191274463909269607506094158685877037803091044215662760691369632879543280167025525759647861417494039193637097826401072033263925563806595175820689853789020383936560058892874298253169661849183896781862182375748061263765629160052791363737828415410959308827894634133468718923906325383796292734796064253730426119443619384577198173470787027088078308146794467094356764391200178028551674463006215427215596374410026594338196106596010844667055703700284570222037757015340978700084233938212165183769094217341100791470201235847579340870059505314644872169547263161980838353902882600491705723809329121105639545507315980479919233304278310999218122427793797757528550621754991826743376138269303543053123912319010554910299267685723537810621015528058333158980409033228362860952670981040348909566239682065763426113989756553917937167352490482818183594162599327767417193704795458604692615217620979016050667057576126584957508306596419147595416422215451307932385708938377317966746169406822183436814426284735100167866548758705063609494686513687497897396509521302886741761452670518586741501169853122828069476588950667367475527232474402398486932922921797484310332137491833977919618936019919872580989728463595555727439625345928379917307841634109868692384150011280606647677259970185060388480595490865921179525765940387466337064154624973959566243112606166706975129105104495573245632924412722595276119822720692385840561015522128325624584471710461366250382202065869756616028600569389235897414130187089174049630719067709222005844878545690362521957664523510473620957201062129570599314455701654676495579113952050446141894248943311906202267361037596358302228094219374745322729940504188197837154925579730193336866292492288834394594312979448405381145376464936195246297315296832097583360946563163831428150366206084780719919732202837611709030791880789712328315336410227834592933788513118652025843505868621682812136190551953567130782703693406104283351929488578954672889603043430567719091830280202402977219108952157947084664560308837562421250203836555923792763656233762813533543028168836797004523905116288115599335480639188721937746149069707145840256673645736659050272254365614105971570957678384421066270551715003265757650734540864333178660203453741072781268287218441904222647258164731176752986487661601970434928682280507069281920612455528937341936085781964104581860478120941837550822339325961954311647932839684358955273014251012030113658452332286805609103695044301549515009009542591368316188436309437845219731829754633644852933764727199196644638017236995951450069324125637548848791665232924641920996340567714340387480305652448307666646581417676558065219501950513980380090932944188012140876113792454177038045718200399153006103346630230099680179347136997468772363670232899246919576585569487603290555343351133042511804633861443955278391615980079955608236217837508747872993833552689100825621926678471009173925041557410652971859894894930521873658717971115105679131306183582744597196896552192431884025484945640843048168341379253728834724322167215417698711706386552897537526982435817811506182570444571115851693207783893166702354127467824326079898860146071149654157910282015710097619947347706987650087458599295134623845086447316339492445085064425834902783439747160169745243956669445447511246508690269512826092279041360497819263130701630372347293142795104924277316570148821742213030614549463427559281719444431379325023024493611958532121387803259990292171908606638517545246554934048367674064818268193994187157766423896919950060230668316145473305587880260794550305842429924970783865339092846272079730970991122084337158413857126211190558625342237701256559339034554386583402225734676625929608272195114398901839477344383007737198444681488043505997545880350328983600729736152089626712126443544701145559658742575978091756436198358388618726869845403231083077542821123414518847619726151400369246696549922335735675598244370905450442182352672439394760449131367622744196730754891727666688989497951229540122398411367156264453815551114865130786838172861058613656326194061998504386772454608043996725030286113120120276591682263635708426178776072997475684885381812793490995450603262812941830369062797451344646103795222498023204263042621906187802381747001496417907323044462657355553637840125630955076048071861172827903227593825341311278737549880245748088835670137002121171704779371580568078677296392794842454683264270952871943888120091929772912799121808701403846824590443865487555988021327702597021594035043531970796262923824332000294920272471622188305090222597491573041163174827884336865740334020367565158969839737943768054330432734447744501878382177819808467301842200682965973072135566221021577082208682851612822328469015857977316893272938319071013518579956644300983485267487237856260519221282254549905912389285104897083653745065313579802174493446688231833775659367586188467797886409061721653666193244671585450833294825818963502868518522270119782613847726447352237537225671087681084080738363967599400550289230563545888812121307592679174090653156037534368332821848643766074302330816577579016945455079540023411825676398668731194655261081241580046890731629483879684071494892557608365486310405601848158980138369952519533217341934026317503444135222824791718703179166435172873773538199016904078191587809597638186911781570498746755238908700654947769038916865277576199639075513064317431110048963540148453617258794282524704093459881055934753023661374293302899116059974575537775853871185307350103406310444748769699463314205174779155261773227829209522267131164745593665819614463016721595651464399895121931057257706311817941787381326362273607925561205708098701799418086205144611940894354898791695033873085374611720438560315201289894244322787675688071540070016843310459311645039314969307786442524225023647950383194216128378695109955603998906125423220438460937698364447478634519871306027142365889708192643078207872095380881991224671986093694898049048769514509462353861834916038792581141581362062681363525842545420316726044604141525768892144674844019280713889588460559061599741205244250519469464628646561331146804498872273499988549367182968250841000188672460666871058342424445511532271149657007329054869138704804363557502532592865463360767377112207779177091891208351746858028424659044215983611795071061193397844639342316964242934906159852574725349958721522647705568075048923557697380288716700180323297491543091795417393543787062553890576755115012127484882373667955388379473993542732164949649718763791058632101605724535450648947629904311401430051825139289957333861666903233890169934203401996802776512191818424110929998692120444457875344761895465822730263216078457539137951713983042252426525326062752030488840399847435481640379088106017772970497327867792011141887029935023977360427732454449705514158108299044409024133473003881275826640415883401804416525818953937339441622892088463551750171443566459782032575621382077613962135731099219646534911036795644010361521339677072031916635922445938982843309974431649391868495083655324766063558163265345223398325989621543089945893604701432043071968319533942570762684869784041460866705364860115985685114016818148840004873122353621537502853155294067395720210644408632775366984611858276778420794282090915628829346936099063627100491306268888441908366347125261248224353632753681169102463696606778128654120633910863787730580900415413563651842961460936215285667978205018321786308684997089234510190732811636145350552934076973992484564160851502380476864507527091370686191153472521718050009769697179450861366992527007913424240682695531184316675657428635825476367628240255398692304002389999736779983346157785445556136773934227543509944629506540187554953961880820853616324001435596722567056186838931716010564603530375600307302259102151877259785373146438556152721607568500050431679643611940081807824376901839775275690366893668426720802137251158020428479051281372051079107770018087381716986382690262074511280394478290625653773944347931045553469210009012627215508555375877855511546442166623331104195157253708600691942931861527218820013428028240634884752363450106673766508583737941346192522187364652157331272354748958105756519853030684053761957514289236544347078315315281377770378827102742553787574015287866741185968764485468762841846232021913035703907774189972975473233609599392314485163692174473036366010759646956181560075708780868450415644605984080043903731136229313589795164021029026190819934818974539006476728635879041290411719104813882460059665057692592326321990723697557346737570206654578527409617283913935230597375373823920540765027457550156368307778320006995992369932580284796812996054370180971403023094226534426089902016505918458001506280254185511395126941600250720350864891742031415264649048664409095341443883508586488514398368540780267597185950700039543590551275713683551066225459620877098000100483827463991012136725247122058837511053426023496294934880330593571901169471016406643265817647469739616549885501402674853702055752169107018442022597895299585393601647301967929054217550387880828732013475477539289407067256690177850688315574806512746425629125538914757789253300986779243031766455458769045669989253473475162633855385823890784438273758160826225324438549950625586253392703184144182005996014090572369697213002540458323554748197548500703479093580638653435298559570879348810970868237608096142042983930422454100082800028487450811204078432794073476957593238753685806410688699455623769218378216215734824163691616371823761073684417092772170764501291965189253367219953592619093625445219696184236300965938130725777105060000772494601819589971625043763104831553998947045069324432969877306392158716865045890950644855245715205975608579919823609401281633246471145254010495347179786623347455910706971840904470701966744825101083308622685287825407199640924095284488196278095679981400767769133257433408716656655879908717568621190786235974148246810673094140840355952785480315635667803593911787019908121397845868933461665177181994654192045440092979899513375675613311867610705083170690765120271315980414963769718043798892358125134566832057471821846505289159667301848790887236388039245305554757832495816431103072326242145164440679337050952898862110866265092543510259355529788081421241507453189689305608810241208276789164093612085114234054528611328267394719408136970325966968980587523128305725907067739759791827841368353066893322260653019728219336006559392347663904986306311574534823470174921526518151409899816976972922668324145316949297463760244909676077643942658482748825592199051712063209022773230679087528238848114128169204425516144123433996438489923630499140040896987852175399159076554725339916049508806526175937972547276284188834370835290045389159637445628717439399187298169377182704920223883447355541899768008828238302190187727476471540694597877799690809410063271640978914312363365527402049724666995439723891768450879140053502499128601568128519590569968942690628731428408176616693146967574301108422910554375960835200753072033910044401101876254307795162015417573858700828436953803625921158335549446172320336132210964884486763502171695591674603444973678795391465925516704741550156766227488306830677420930656826671106487292198387929533179753237114918932701226883808330017529638458039758842178061282468704765740949078511776292800638983934300596320572627969553000695491464677939491466038029315063174104241313535161320512086835798905522627425285711827294916648886123357452818952735911762003977303799798776325053819201351040501671422646231199345835251794863124257503355271692620632132026782602005885844553683898377020647870237407361093506386422433108765210220410558080508137760318952360093061866601635729086764740372625975600620898726960124651651516962182120684910071721044227351173568746022071523540832822439069884271231563137029422013590164257593137595514088385970756054420689306647422660932558533332320428929455386386624090109384115436899925942128044849045718677160198896899363713206820815736011458718358113015760673046789641981089390824234210001264517533550000987617032429164428239733051339561859904636537657385722268702728425743219732297855587721037968459126672048247421460726716833641358046451562247625704911544800959935102525603581142415943433084820785817753618676657595410726412084848487372868155079068960001373750453610828452463425871818852447140781235156568852131836584210789430135378996274209434359645381924375679353484308946927771657703866156201030328552315901769408223772021676107169567385936408553879888971905293233093692014011028495600921870719387078494977759790887892461684884432247740835604667152126523330286759285962327118933623435457541133765345324092541999061333784001508399616740065293987542651065705755104348455174450579689863869385054310940091037711368328963804313999393184478761033744527373489828811982123845368095548796355602561297796082902218033197791730003713632662760243874414907541447215003022354436573611386408317900385782824605664236515828066979497727663232037566545748991130974171294570893680141031729690625580710514259838556965288086796745079234583484366217821377554461443395214564620415741491106633923521194827516845301106855319047803193232193951786668676091826635351338552513996953160043080335971399930508817919932275501237429795388433659738844479552868005747854916856620179928091473472457954427534546154645611114296933980116668128803863351548598711113251671203658174887399281655580149350652881742174216382304144399074645198425895857308987922783092147327956956603159319152099002887420695744737332589180887076175427077718682994633489787270460421418461321497068834699832679837383102844682779365772219857922804019440386841898883664842444677326662324528341236183874354580083407315748210942657930460971977490449799027835733727917532030702560755816601002345468362362357659832505204334064546277814828243309581933403273277868376948929109329343547368644797067788593914108165014183484471426705724081123825504933012034811332238818177233697775013857506831087039222325067109105122021052090963884954259755832866339144127383444259334313028541720004440109590133962029406524908292071566612552832963113769147579415909232822970397886608361228112828891920358738251855567385107574759831971509698553977945926650351258097311657211262800655201927264984994564218314625662863728771562469877124303846135864534492416637973182603296402529771649386604436730758511595503005605329630546269673213097224217744873584270895186444674120906045102542740306560506357499787192939747850996570623612556018899274501172663980329995526319299819126601419172067220189255855895864345527437832516207691299006804770612369899409917343557052485265837940637248914984335289267735259076266301856448208398300628023722698441803606281508188821601875182740456000323863284764520352248703567300942307483885736865415956528069307920293192872400075714440784488740264760797293141448346515304682470432907153941728164802086344396770094276210056744678524926392110121445034909000160277789512895554292471032767137778089866395027833366242740765728681220855589343616496021093736436672178282051641199017208774618972439108079912309733879239270504399904847625348727192299011131365876677671678246729911873848969733504894786997876220799370714412109941676611235154716873148791729600731294264210248472575691663883569707444630441143268683312962535382862899067830612136756556243168080274220982581479639474923208109725360393116779514671166816210674627217431100726100710928563711344358078664195344845899541011259865152185504614458952801681890039259310551178700933271698498785290667352727119821833398704620556285159764711908818999804919786402023762543684984997536953921012450039551436617380900761443936048249494136953900090803764122088989536076413956188848158704260659590417498544557515600781693958074260808555983402612456476438259797869531150918810851385769358243216404970154424342091386492377642327073247381985368938306997170295234164885676258825677871730947881805186447000429102780100057489843666982289674823689335105250492873211106713378221369700517705567087741133747361212487559382965850393022393495538007532454321950561931493514735792171331985402301702800044742772915876543661592322298365745352371322943907821331565544589238228115291887031189197528528333761096019825769955132039642727257695260060277965930759657265636486063944617590005460501015345483842082125292663679261397663176845649929316873861432415086361778834216968993685955440492659746988878652513799298867596181054025615974338041972175832729077857424427294243992380159388493124376019757252889920056313837181304424288834166928877603828040516752210082125156987185684232886402892566215099796222882219316279973093807383664542858475780730133256215735104784830593738680638735579176226855221787366505928408766379346627156370500469195114485310341361150183273828927996183614669394721010577430065904493532006977793346893097785743847947131430957719059147293965932142650881296797934724160726804124520839356014245725589974397405576646166616128097151303520987314430126314584939676825144880206927816827286495428271755133518710308484105119417252353202040988448988948211033749001481401494636504595838186009435390492157622919744360595742831555701323167204415603345774004019801350629767080509948510754748951422412605186243836817925772694575611228026773826334219704009178980708209265320189704648461077338481107522716842149987233725824266994027316191739872516661043290275093864981790074131764029736998754028313511014715551638722005789730776961786672540788990619851092907166876097963353144241792793078900002699513816854241884709927773469048097451877589512188264538998183837979289950653608459727175477433790531866863260054050944500008035942290217578627273881380694804492075037551550936418700502678489119934994503579949887732380497042703157197999430479115618513971176214163013992784851840267553481216036008478229091991437765547200818142159066574405449398137000997792580085938627453652514011908549636233255627499905863057251906135342077473612126223531190261139945200484852246486494218463939113490736303064775049823316650887765515598249833450267033942552290914880777542765616856411498268994274807611712014830085453910915405713643941282483337805220096169819352028175661136828379714218225452593673382374714815910251855709838571766209099812246614975535910070490543464289805849374560265599100508974718704034350746177716295775962274332233294626452672092792072090150458278248065473295439513683529902958444395886086332060029007770793611668091039921333273904806436751357373030679080877529836290729990992949246458483568056958361318597379839547100408370850246475084246467930027230606045398850730150483869797399127364146734812892887641563368578899374566666754399892990816224576872642679043236631835480011551067497991815287329796847036533621330254084228967200943535051027806895268476867888703345935698745848437334720450496304882855908635784277879609319317798323587506559159358541398871299567853148642090115387868141716649188315087824205140057139552835821616606575984122058965198600516978170239850165017428157754375710859605040055460632988371196272159649430261609949454483341162169824973733602357060331256609052889063597372905250973475277604983505773621822384238470682286619985776278373492712271268296629356586536617836816231866230818236097327120905805224751025140376509238128360116584401516339264648529340890104401682905284781524455235414336434754313214374170249069229489791561682061037540452956337293588169412690303848759684725165293744278358678806738767101770188101944469517345257307313539151531274231271625644826267414636372760217810540612323759547896406879951940613998151716311218106541408989752085692674067912458084025041724566338768785296718469802544055251249483575572143164856003542000618158801918030045945290344386458472398048621298513403935422433443335802395500912579073268865665479585693007791947810230871883681794748527103735199781636600433660995355691132338087485383220482584572840603901673958756795873629256640474982429998013376155246516254945188822973587289655787994609396057695831850093328371075811641913979656914255789948153667202601842165751815815968295578561913073965600402783309021185475066799864964746365728262568522330056794456388809242930846139748327766444876147186097883739246681723101456570531045578836001857078358245138435840064197707601436295078972787935792758128407540501815387000719038002705842764004397855289082976597339558340795564282504353412714672746910242395926325390174006425081111076883509600486363988004324908543042212496614188239950952555695981728652476010490204519552422570877855002102203439694464193343465985433081985457291794032355478988488353303143274838775706604585558172329252669252662423735640499272734441683439781558045754578019504713238109899475147460567622794484693947618176203382948342105655482410795961269638472974080564923054528689010874312725678693865977399262178443734805754014224696683665932369026994829361460679547078631879001146554095047346421635915173892268326351607980188585644824123156039351198010988513288647694669712129965762783455379285544644124205417832393603801118426781853485740016711362400867047192881134634278113029561305939772059431527385660794434775490589010849773699343800651347455799243216602030993299940100867463687947147117895249051646395759690934494383879135385634755793573012808955294405760029269400957251556527636319606877614696166244981162066449480481317847162639610871079225230242016533069224226616253849741179073562663059087905950228705936049636868814113178562692780483910419469042552828913336624994912511096016654193074259549524744695610318768133091558576142123380296290505291855575667267847406540964937782751252188786877140250334625487175523740000226606097452522915039998968432798776271145820353884368903447292684630998599493693488531872442523752359234600776331419014014671096608276784305986113489637318305730860214223835693327692379654990608152678588952524008639919359587755473199992179368177630209175401085508845798748522385286493529330067165512759914763120662109311508184148137318403938621126453143012900828058689495546636859883901056356396734418506447642402668976961116624088947917721320532583271794932275003076251350765868663571856313000950315467989518289754813440026979542530946729364345965146855104745122942658166233378355802437533409813244095857568477323100968063660324483820608812042257403948107564862089294852727464563024293855477973426730481696164501596126224799864516031495442848354643499403658516229703949167013741690293442574919057912289148721573836337742550632123750433506031331121853165405514660686748697369041973470975046576698857304046124152602814261604159343968728817113379498228499111853505855690244483230235012104529403214255679350933153033841826482037486902965275259332501179984365131242223896426969550937817018143323362860614900742061208197977384725855430573447558675218039153760566039456666335688857543443205457893574957160950264825279897749473462000122826858649423760484818573354450007147918613995308365695042738710545099142294964068309441847225260444127270161617391530412943791865015537072944656189050429493409740649558141797918433920553896430297527133133336541544156663956563993574119874717996015630239814876375200300513157170640400406787939094833784766022474592736182209117312907034508895235123035927757544302724936205202842378475571124900883129273331811936928323873265697801334534196178736502317341846747773444515248498617994756557728856277239243075643531381238058858574500224059529075297489996704333771134603259997362633696777212295608685367911505284833592851202911349791056994414629168319677480315926785696784755307716279800595817320637275884652435468433006816302215808438906378076303407748271705218924167001709792179899667075177180350655891402800349922499116027067759395980985422263312276166836890087108224565883862081877446161622685827566234589192800210091500143269301849804151259944392596041908169882419666520033969852055197176889136028418110618443818164965800113761281455221244507555290424163298187468385336686024376296147834767939468241289607034894340514469182157779436071999096799000215479093607494718312578593737652310656129643103456899782525143946867720117929503175102855412884203126514762495167432572886163646002668368451090664251439923864431714288251674447955790996078449948058760316769392182152332201492059455976771639043998294082138756785345472267785474193021346314408059062239188635115105862886643149391224211106759314660918108580694116354744891012510475867237486887551767532472501844085418648184244175917146038561557076179619877180089146307562833635475683027914338276249496754823489156011696630349580561837563681959230227065121046252412691887674949552108805791977684934237051373227776208721444332551793075657318268937941318115795709627539330779275179436246126505171335568957267231426146861350068383741578682449539519325318858899658592882520003034027753307164224872207093943358614552059716231668813438381307334716276239283471752403802357099474470237017130194754243448350070175709088570121998252105289471132783160088679086469582565146999406980475490498903295100914576878653889632749801594230189299796472579978008921686024289946783759096734300357274426383836279145642074218442524228234454054146187276441076165263346891120384254905509940974401924310474224766703623059714329456960758781778280832358820569169279898570705852607212410950020407340441756399995931582329691066630411164094653850031768486774040829866351074443649299315282824715567689306319252419310167872349648009435070448989938700379637267459775546767990179521228385927024403161915391511170910444511125548651814509436918703672238522643166087930171191985739522232396546460209136049120876105361354077738422750892545346649343634081844062801570510177636916756135783391018729276616905984533479772401974327517702355296512440948028180514710504737962215350241880272179797210836311184755084867151105825966439277320635742170773184368130547866823556809054420570274555700997719214740797268448272304124028602726480695312293772087019830745894354185531135325155900580993095855004937049386895808367641716095894724575411997620448736335047969738538871331743911575047266716488632982322521381073765682438301555756077674090268184480628990796811973473849155102624022289826324025818884603750587608148050253873022685221573545074873212418671780990569240774049631445573564076577958698765987927819453650958660513156970079349654279627847864966317766799551387559073029093803983403425778925821145631023247779288657113490281265131431732784774999942493404790525477449384275712109598670192002071057815831915765325322138991022351391633822747837403221452511237265378287330207920910186625359292283603365401184353327037375037317332959367586122894853107146393357552201613560582714627648846391786224988207127886411365634140697363435686435867987021463456943005134651808863514374803498011801528994485781479379493931108673365312655165648956678399488464934813060712334016137417960532281662753076923583893357052152343928525372147073857530638665086680323843964831083690650505674894751434887444224795107994777691927662204951252438766235891343596103674773626763756588630128380141736164262317680462389423322110928099963714392595792955962453658119375102461884393677789965152982656050522875338674882542272343266130369703353075970586537424541899150267866862008807928487766511509512804108275613875377637164820072277853235661276707765551855539619480011124024349420947884264464139514447830378939346357737682124870727953334342941728765378609373821211448161496829175558256461789694146661462024506795272514028428330459170222930333571259635927605903194917324845730964283536350684203757399580120244153137942692789674203582920164795545372431018541697827662933784293145680552214948586905162947759357380674334645760778079293166416392784913270133464374985435020814652577906467833358807021643837293929801083246296207907379208202455769223371859060220256831476703005009828768032171188955056753285206513829681748283697493785903015468993499097496303060801432748119322932127354237439432080687801048085805005691719759817204989397264416629613579517862030221609289605782473458937235698490343043139766014000702450535196758950284917062177375297445986591108296743249871002694482977684926874084144891234991531279296076593342878495179573618003218402512026526069939609706240931632976941821940341295768501654525759817670859472528725093526335488327297207329833420788333379304804794844015511346814255788029317151440045024069094421292329179316300761179733852430154097220503814829001211748884955397135421123648029964255093929006276991173657922096740221403207554987828617726347751568876248286188162465273739379897426293896517655415824900740820041740942355025156430245691650177397003716807864768522163791506396832901413501351471646977615225188143750334731517372334711341285879678285939945451927072865777705853702560836051272574870786433242292619679746387315639439972790872530944756685787850077454469762440211732596025812785306865444865615183982145155140572809638284000741716163199541748213854520300058823933509740710812213838353333451097750849276177514350102326642144550755893922585886624989068802457809589819770593127716055580534638198390865615927572564620929813922672617072875109723796230341636013138542099573973856914689468628914379908057737994727053438936080758131782682242685744451936531450242006685101077573890550701519587109950890030519423522791283876864657251464712926921658615917191481632012116670865814492154325792758216379569523125588437873184971142179740327703877663751965633323092578873251767242005889803610622351410554507955763552096845215274226555687389671527385995766626000523489049261974811510489920714776117969977456130033969911744651038164809723269906703286991593867273069582026147413489932455770020384242569983034222463396734457467422223238225933066778818878732093342180654652408050766147564795823325926647407176528663236334266801852548773820482743450953317727211674540119688171010711469287956399284900399877864268918376810740410303559349564373173285339056518095345588895736171798425675870334446840935847521562628577024392338425434655971722317581800177852963303506457783415391128724149018663175032382653618673631075963422644112263104113162461293739103945788294337976554301295530330344668389048260268465562295078508918432408194732473346160242708860183688327984570485297984933027870218024365716172418697606673129710949106974241351355535352476586496893677381995574453673023459975985196423044075559109563680062550432425692504832206119449289770779859216300008329999053212662170092817973665174190726154496529322700350748203720953806018584635975165577493288399494072843343249566770027460397591235315378640040440324071324531998606599998109331214666518820052537339504278984610510604886847158321000711204863131513537526958193671867915693565665613023928876547688999102181483884652915041229299535256070391031394064085139520198568370201480182323390056517973707298612366087383136951142003634807528452537926872787983606192633634654918167709661034764530912048634062803694220530811529440247940525050648207999641671548669293005598339521393013242868349857084207815056915406484744927561100262603544005110151631095489153608005767720647746730333920616681710642069456831412333614451096717393783252896580367045907849533136667941249557481085230926482077158849843860126951849902702310399178850711279540957445844545667928176658342607303712846038620435103626614596322426513796245309189785540155458706181987061345438819224978366328733193460920476800325799496364226913716280248366988781101587690685330304351400735603627113872807625325594301227652566852260206396323099824869982169661441144987891234622789056250091831277106047881021627619359014667911178446716623587955245270535030844323835596462903252125277516054725491873294859996244477909559148270330000825438634141764712850577442761248624391837104768740003078223118902615866092311635555799494163666624280928553071461068599583445229507660881587037942572061233724844166608209476166700787900374540141987212020978441695343430344105952986881739940194076332384207705091677230805988962716173309478866462580495800937682280537659690099189247817889172478031195676869047344846422340753517384154131451038186964854007663692345302873458889669297862817794237818341633195169243077958583724812997814898582239292636400332096495229032240835795451810729512283615689142123619864008209189189901445010438184252785336941572288753641855739268180461711854660440114065671332300285898614964515271007551541047805131884988598872850984904292067926521963799822638326340183438950571953672697988258646048128460918526570660082225623211768829954207706189422082042461294539888553278962271289761755727201801578981786559039210515480936717111228780355146914714791473106518764200555096671912070656595443038547477800035424174132369276913451229907750737562928794374328755151791882760766566641507630433186401709284776471371172871929932551820860151856393624535282149049812138829483416938745940197715218244748095767375592722437252056912341396538263731920118990265400600196334773190286464590703074121975626067990805034867753539186785008252564007600370370770162610614918165097011510052593372573994605077280482466394496267588724819723276758094860245629252278190014220517153995804349038829480009833163254919797656514961554666770795845940556898077531524684820670241333533752391031834816429831722298126436498041374541576367735233707074638213521516753417502770355978081112891422810174784671770083275847684008061814014858116258961738019655299752245867448531187691756920155895703975783808819533992886089222020990631399379732998982300165884947966876856793680979627824433104276451363184408376838723041420149550935118047434297581578773228057343685728070297224626273407189330042141830751219154307032110634723108774780927890918826866708135758596960468200570347219386325711187102553644343452338629561824215061422462894679234405137617001199596831457548587596915030133725817615556686834373006189669962284214816944026436742509921795468831537351363874636100399083192579795230382375157896119617408988143133619991687780919606796179740619156375830848362121943668111758321891837324646502286002501110865791846644341406706919888192550315717874472002801666311476085594954777705870027827104710343671295891276869982467254448747267848716608628717344384268342388974872276792610395829061013877063528528108253828781924142936094319689224839556830243531575408547916905508952862041881556840117737415361313952333522258737492632734704693864755695932871502425151293452595353054594862293262841979690227788088637201342169261562475188264454960827750984024016344809307160358719528198740514107771974641713669225520512713081852729785162931490684073781752898550958134392307593476140057307214554697728693642803917587655877337127405052714309926553020263958139144347177977457753467172155161881426391141822088260947890927089685136230905494786940889600429379897230549334670432011888279198640995352746780496620677773806479959232077236227776981173939286823102266881651021689489291870691167894173717974253236182256791553806162820074205731989508759559719171369062746799319826222158286780490841335388678722124209725917885693696838907923536764880339342780272106303432055721627404835579747325612075713027774463417150624384252125084238966914791880171102674004105705328968374623624094603741270081121804274536134567419797922255837318284229110617372693203126490537231080886942528043747768566649990240459078381285120244137820750954257958223522702719862864077712757395542418329824862642431405513783375392230384360169496198614437688018522097881140964030921227275742776180167627397234406612837152211490846135322397380729110382246390035959590841527993228912738926665499963949324234415077097227412913708006983172780756527384987924717649057562016785819756475021642558563904442743809378806476651948467354794821238748949574960071207114743949843454118823362875729727496531290114988029101642533264535664714691154551710196526832810177688376250884859704027292319315595305116120588003742761453999577248869191457603450756175508732612944062844463489716170938142384058704839923949002138009901175552687176571990894211465180402282603140319849145236459203012914239358374726735746046559576118887160768318491676886097523563767019625718657399517312935972904695198657681849423810371432971605249500890063584094593783778283927425805911503030384526764794850383838456886815692126113985803936638850077259328647551971238635924590390811155286213905411628041894799019878217294478027806521931974165374345424261851889662924348544955773838108584488335585039659307348893785079680718343954600923191964253309073932097344510379243110460022463161355803791585460606217339207841470111777090548689886877202195645203134305466682745559293168181032823881352388496578633978701653669084582654147391453299820114024446717228228205997911664226704804567368300145860326811820375118195803135797948691344615468398548725890370087303697009391994506932042303601628688879111080615155127974616501360114701711307294361650749974205876056610314051527057240258330706768808069839470875339639908871701519580079917048238695274424472488476028308085503862305393122654258261046096905356802175343136625807034252951913506601414978789458452637375436798301624092735152921282074882750389219714312567105087403084758671054960278628448024775945147544329754521026221886779515935311679838821742864640550286111291982308275489375806547948925934178686384423429944055648086557499223036306790546654789143839689471784043469039923157097361727069957606682679002137632385982608592419390438351317097065966801299926311686937153299217038431029155307743718889353182129493458262272895317216106891549228963694883094146948358941071218730780447932668292079919592578250314987231440418812886758350882600663505009686979080577327055190261029421678616686892053838988344740882827407270098467269627973432426881595239673367869978662071640530837564996176046810301270721792233843838027715239101938354605500351502965007891960684094798600714639094133796045766996627095311084104173486676920663732749230800726821277709457323702346724473247599087503971329944377740961630231018703572931541911178748930749429233168678790066753288853510083458899442633405704876287587420175883571775625228817112852351193267559261327375104739456720720896687679206352343703178811797740581378365413627112906744984148883466916880209907271749298930240045869583312586702526152239358196962527885674112074324072118496857144548785062223021797605398383967496881377941081948705546768134490652161624575145261414366182397652335539340354087888216531822758875196843069375737309610028906088132104032454797648726708672324429085590804789461049023970476726486694826798903035104379630605891841765648113003500743913919589037401185874624589830530417101829100858975421019882028817143132536697070841532481750590015814424363198608151418533774956178011254581399336224833585112508774811113076675348644088478342859787831665734985711070873359946680097500337691634540003157346107245960913826825334184093393598078466437714673549639070915331335388882729902628028450729595202120545889407035255234337147685818048649636511637362361191202850773033092941829380605457040504536168015544626377844358905761130334747706696793334230572256828080884229649374974662722417227813828179970855398124378576263013752195820405490447751135264142062266640308217472935017244088486045221153226222994072184169986540803479618551793214568724788033308989597322229467984134342137524468533172102778096967285614287412328393947546007932278737242035757953860859916237518248482305869034142245282503059751048313949149217281921627354787521739387517179324863642215820023970661837182573108583799527726343789800605723887659300306153975124320389467271081448918377819627702617926349146790948677478875586649667712993997257474497424403576655387250019911703407173045739471845571129462349889735136104700131705744757753988606985436928635392720348392811858029549662403287172077369378475624053245481780805310138790157518262452835064199897005219727946134761060919474337330381445315441514531146481048677601663153551815418012239918555087112873432378475171503848822753000703028778982924558546386949450466755301894161367650630313007785380606043038416554778912535870854895524544979632755941697206092116102878428719248061976339541134598983479318751517495590015253903806769364465913360170398372282938931092876231361537724494206334802921486625315571939255558268871602550233665712982117787551685155162999182694633525671654526851657777403079480152257250315106324367700692257932000047983513552282604887414925489613717996093061966744765230511663284542352614827132350733379698929618242003038644100752419624156758905563208695261183690812895413682087493379654290096393791868267979484180707780745064174789922360245574880465963415786309793401523081666632060276903142226904519209972710966346070010061258889652481426794642869485663180761000846821328404833738547934023917856383142292933691930595544112030039043035050099484976958275559564650736592788994667321291847975987665094581037824744211465259375310874235172433367539745841531301044622536174326258817500303475582861798717958846570767924027687905536133645379517647614634316497006668023584651802689591760292943022583973964460151227285866783279451584708474460262557513685974569117381844605378255957886090960269786337101009650917441544763907448636931619385564277924079924769136455100440267242693236428159873467606170607654489256225415813899304131852026867322512039543589259646879918663707029370940461633504069277400649872912705448532916568232003382869491299127125806067848084655067788182753887935805484126526490403486062534144512247726231268868280545347405025679113088560960364698790714566925988377040305470311709921342039934310286769234160196690810408966648984147515907827363622364774103745547054443568160184204401000750868356999805067557553844973255839424025243496986278167764230250626425347397756812484566745876686660196314540456795132752027737981212341403599499201657701785953067753840947224412242756784651239509036592108319458404906074762558814744392318985451236576762937177173227235775522854931586821401592969154292957152113321915584349291461673750553166239414272189121843439903771324040386662734941762899572265139440712299731221899145222147380057282338501267802960539468247363073015347712128657005512578392701734475312630890949130826112889894558862663998349351822369398736475751598322080106434664879113195949740940102476258932612765929831330779581383585214422173985612339629773378977984938479130374759591100370405823949443829300271150433088141827959365774675927019921197380225624511335096450212681125215722016641091189085782310398924478365029957871366340372940029920918043511279001738045980396322428318114761519663879951435039485954595223573678524652480929108336372508673636247598366795651340495197917223615804344120211507898079708215241765640614938690648372788579662371737345380659563756736007138657350720398783701047556556623352157176413853501369680113130959334034720056062301036085574427779627186790374055458479268141586164648625343971601636080774329128571397372154038042180028289096592421599250438483806233565975842347960866363592830686185874766801455446615892888344137372999150936242445508878283641554403659852882882977455478394741294170095229954524147015733501325137048937849750686636651451252012393951004517264238719776191597442315505833361698808665455303802810229692039169331970708971507183212423971295183582349747205944468765021092986402311107905562793028031675318095181397235373778837783389637039829163720143038332907205560920060497105821752281634058281806753484080933699819159895721198546337959540064301038535170950427610045059025519631994702478129163178752847440125711329341284903479161954461670762785188323589480127973181921783540174882363510128716024931980746796208329319261063823382873508784983068648769692481767590017403742012260007302350991553639919845864954679262528592753684553188229878261467435999342545508773633691839973960778901905930052327594469364716870463900108278666632503680345806357892847294687594637183718311787818551723189098053182526350002116894410178804717299867826855990823522506137301536240803694481960084554429067279614305961149297156428210803225356929559551387203535258640390787636008805002225711643448918512862605006634399236513235201290142449949547929622055222858165254668566507752477381394622089440010886160038429053574965002162181264755394339829112334059082362839911050738124840718788164545700166685925742103417104800651366254915198846648389503268485212684282741146923313861264509281598252137105879514755790732221349242096485165081845977717657933128803985137849613188779879776563336366675571161785522031235115082747421579833881497295663388750788782621957448549990192381768341650553899488563303528825625939321127151871876288141032921141125353243627269783830952206131548358212070121933313840202134021028306014635182805972715122775211649788729338504624850723212613663982723858231483890254942439389089004543315837089480330570765151516799360430747972570878605952065157301634990657705357893343382638494783099757491474446725647068491543495153972956298869408515268276103791441131907783233411444145118887881441570887920522935308894819794609593566801473804485355279691584160538295645406083361529609803322370500796892305078708223924042642898220275164405969418901241152407876182520307632303134486520334945210897834143663523497300585018720803951866653419833679215119556094807293013778803779323801756621584533100158936330417576467752685829636798283935273762829357673289709717273128353469197797365554458730788392748437751119837538812282057929746443868264467065003424278162519052913543449045100083731510210792775245863430574641439227486862258586238478410654009479834928995082191840489587449360994425938347735055243112990556079966584319725191430677158785580386376316236427773873556085199427641942076042926421400574211619329452623285784803833518786256429514560724393249523597097847481185965506858507196751939889225248986711225542299826090330982568742178235470883957009221507110532411281352359235785809590612839454900460786735950288708169484984716657763485736026351407642061110718932159353480717461270898985390060183604710144949528366581687404410314493718210386765332054084715325144471832325994593975108192385971757180740148678255320630151015025318050020721005979940632333881745085190045273944701238639114462433126106139831966292252242887491716190378591125772925670603179095412682162772365599708658062316833534217552440890537598266394023142661905606092397757544052339377649790867796862074707208303057260761632747642993873043120337833174192473131174270375548710098530883222496038197121565911205176694261977572827334668095146933636595730501005808885786163319100204878744920348995789113185926949429491051956991233743257991567204396263800894575390742190486823787194930005504697723268117475503505971187271295788583879526309142522555078847007996090721738964601393117732117907938010289058117183988978921124404459990536447520382231083343226105577378362132852291127085826468480961529390186700443435075192417391373443434911237239962664732224240725155471933910739374333465252777172006694919314753043482058625671451675196036609911428463557775371538725496249144157973040321284535502079674137015539357577112471452000906059921783057504954451983685437565460743542934085118301694459351267207629760599710154761899029563900522681159611014987312255127575284150885646275320069900477007024672842679917222026911299478177357537840896489190507432614183436027550502154084624365512641219137934911560651710694642506589147139574435356424815624760314383737790406125403507715526046048903535307419600025934417261602337914602658267512773373863360675729132491122078042689316665911109391498170756822740927220600280611741187439781434068639680755578278452792733598663649754754962859050228432886949711203525144811941980951832821971075852550002016676769513684080365919797331862958424842917670923334424333445738478925791579133797781288456531040759032973601479194045337414190135680854331399784550109290238392014757668096037603037853489539515804599754402733103020202758957602907000780864158830096187929059220406433553755496095701785728944091983786601091723340341651325086370763096335097438924813900045552492716817157833729781348279969513521384194211525372587191561524527456180003321016015103347856951205946921266496889658325816588043993843766110718466959622840784522270983921433415139805157586438057780888497278132825195127330315012358774971796484662431034186878164950303063350325116117378688209511879216539772160513172294945026362848728778352755137521148410111464346635184063579286540291347929002986466187271201451789025949493864136302390014173000757092729308187113156373555398647669001310475650395722969208582441705610741683596446624788098036132839965964767034112766357268764491580600115288531795440945050487693072610901935309476139301806386786136939502794177588489616594225401294693914551125460254195123891089458785775270866278680268609890809404074116811318044828320972675199959299033871923061237633396320572969343393009893237638852032657893999353072972286850843609180349944354157814244932216214208613423524549081686613961396684802135775007714804430114463061608523279130823235114064439031045791916107224187301177811348654721750109718889270194305450358877949925630009357906937104743589724404401634311594053631832549550247652361577901339758012577223783811246273321549587789445326742505932870639817051483400360132927058187079449688906109689709265007109947684903536269219281703733214058117345225964328089710101952958239485975551445990503582045645119250379181125559344835224549951008036453418305680645134139478475412209750026916857889376831140849957358565594335653409888665100533847307111442003899494809590769125036055770219272742119862137296828477340577488402379259503124981345383305439977901532952223093219900243139913201418374888827200883632130110447908802342180260066369912197704759832193638925499996913962429498497101306390456469750606442954465053612744612887882296253982533110813350384273478550353423002042856700925099328787492765310280288958178937134640307360426986326496769438816768022212118837254084590278736611288202566468980367791308428406627717056411873522075173733510505672783939810581369584550877382843886236429180513709966864123767402438609044206604834561778153176637854556227116171796567065332277464983414560833549087245762272434057594088448874935834716360588381606262590607417565392843683133305233527992905185232256375580481002309853230348192083640158367339625756805279237820783713601982176860618127835512791258258163721051323813769480642574254064204740961914572486536439970783122341528529504530343043202335017045235374574890932915637152697583268642806539738126935367054942447075898390480949162418031215184890827876977566490971813846251933639780071804388905194081916535468356302385024997286979802883309153468798454452626837576999007933851735281343355788501203352560944998006727433561840385708434605317316367475943161463977130434536174630576002614974570280456017286424623811100320767111177255423109838290878847827583111807763131065205016307404531302387866273256527019077967345276295950366532689195115075764883196509331856672756299514522216889798832612804150063799623332691788708612559322585601364898183529593172557672631071265531309796715771607845664014219329674713291942990568578475060595167963042836002111209013336063937010962398369035021637770854485285047482327572168316957938589320894954156961525186933268316746164122246615353628314175566907766482597962361285488651556869830690343043919781720025877655867122980294673793448021750956290570382604349141576446603114148845393432120897780645813900802242006108887518194979143498084317450355282205234757825821219896006550694808791664234954964726284576037544324711091249000148948282770529627970631953938870200044003107074928436162988031036173809894600123649316368951369879807895404017309210522645391058161578103884831148468725041325078967875762754645687015781100783440834090080124141949901545903739662228237559502504413076955203051814215131319216487398508289804772720787480792825304044070067519928770586990037371351380291244470730631603678626885420795495953180757949691739503277228736719231757843376288911227338164165549243162853778973477592458480066312942796344315923170258442832681323169268189102916206091807566058812962525830138701738407755138603203751162313505646691570689553695809173469897718650017323237324765749217869695725443658584130329157609931565924837062423254593164213838568191157345264642490664191908748509872020437502273358093506329149870502463396757424110887185702713597572750068225029111407213116379432491056985148920247933435909204296940398088034293297952124443226985480571709294727799693248217854052686767004234721233359412840935448031376696934428030745769236266861942906605368811387724586012036507815653655235199586158306301835419514054212412219021018528659434936405965838562974003849013508815082149713724977498394946310239176442018039351085763961720496449032162637476010238963382984943873346049925886324973246849020719689713506599006990575171141206651670674156943012803953376448990726459540877373513696527703420383541329273036933998272854329665783422323858966103243939625940452517795555515023359710571079580652302571825762529872983408519275916929216934112624628702192088410151305465222057758622541909147340789268362788910080381950889812409302015803746887704612722765945280883672233164361245210510644715074266119614898965830313407604895562916573216014759733125378978790294840273746057488733424307673538081389852734208287690859747655777278688220945568450342014885944802722993902897686273460001007539178899255811640135024840482448847900973959036889282421908972210919081183389659222547861911434304002131811788914080352470707500122298411015287223856946723939113774916396713435162445560106517937398102047068662247031269104611624721247740162518585304785894980541277661469352193510482566906603760406415401634178949126048165455071191102439056092843411772324694866785751401959243671374525977859834963993679123344731581195058157420812360863547504118537493411077859730356971602812734490374393703460900685248644622409295810472117527607322393374059079943234471295598311996093106271681355736745429089051761809437244170465626295351059514705871820212963051965289689307530174911462612847381730789089993511395221664486222180934116776064639835767490608584100854660473493873940706196798674846044107261075437237598060373724723566365020811856371682493775428383820751001117544673172596218819044542810842366380562298811033975570161300888029701098532167138023535028745569452884971339567597305461467903120075961780357081425343412083487311708734278307255280320603134674249565602520648581481185801003221262554167520182575024761849330209176525601212102758370120675281335229696183850012107027183947636867166594546262395604826717309697507042127228596378087643494234103996498301975108204687693527018450999723691138318207176127428510233103776639940308474897131976013826366255434543064541213683902522164500445948563963225176622851899470262063523752676575395310128127517546751116244171638405150757375294574519989059069696920780070421085268507267200609609087829862724714276429393077130587143653411992493100059837498614482938987201560747657240624159438729709380449660672145926245059321527022903034956762944887496596385913360770669810897395493354750450464823352373652406707606172686361806558531695988005199104459076802061146641896611865755673266874456213283580911683693361579350614118678284486120472986188761880821692081313038604926434335855296060791055898744848846699955319887665767305041017746369733097186513200986737073002592715323193596180084648467068991788212183189453082282305003121960450934732929817086534466944718889493465848709881213938674803715092931303946729200607419389516868824297605873984686741213794236810148001075375622563912536952948887163691956138695243009196369921980428497590802485560615738811012778825005787556300195901637501869680133946014732305327501028425008046813243098026081219384017331498742244720900926339841646175107840058463584340840009814657877271808155490262053256718844692861656949655029668988905836217916866610151713969769190132866923517944312337713359903867407473953186551570993429277274693596668355542788781289733846951918369474368903902515393592306753205671750154097359111904719879587690506585955176025127476939488053044752332152619327458987896367770970884814318275776323388091404207888750322666691447479090813057017344224028147269677706691243003353231927371722643265839248947549290347313145699509664490888130656887646232451461427466562934432112785865770469823178332875477570957639888288699794868412686815809111995431202681490062814693944057570856201236410488412394820051191620565553549578323016151924049731742195820877459159673102341735636295501837606820623294562010358508593021445082417464595663716996997534024229157667631613074050514998908168979216136475134366727846624995238587808377272700738553883503212886838405187312676850989473441212074440098884649782594940980703279782662152552049877920303307133628828281600085526264942085897488416042913116142016530794282094152227508011119667261412376672556985630278385846026887942826965293636821605967809789788608724701673872541745239368683268235626413517173366671483403778340851365294053010427317749077381888418537458870382527686586714205815827530285528273218070921675821433229433658146588798385990373504010018345997509008060971138032499751108195636153737601649928796717696896042181554388732375321348102617560648223197977398643111283426350939973362655282858385469301198332991287491551819528486714824613965727586219600719998022538046763826208888302477529939982765145997270865911545589742043832290733561603558605301783310596572806543522233270771640199245697633869078607081784849230178439352656013573699486729755097679723283580372732614458045828418800715487606148166572360560395668424755790446711228320947029140402568096726936526856229460982799303828670825545206385416273740975588690774554461757974759453581148064791489283578311819074868761866526789902130269005043405911224641975912266613971293777568368121925421422386781286597156651130586123553089251577436868865290988989366638395586791770394331121624454327447051615826734681388388834369688549566285971821512806447660998009955888860846755335079145674926443655941292783827927083870410724643661522497120999615007661038321480606212603418500688289658955162050576491234190619618225427148525399092012225415172953355246735711574022961306091260456209333256044530974330800719032137330122285293765033286094504828726942454687584795804090486811494454083552357876178234831665595976568860644710581783484375239247252005811200011732599799010863782593993849811199528112874028901234186396361980272066022266634715196147314676887038769870678859796388205347396058810810843081499586346885880569698276976845945389960335066399890416963143522695180904038448187951167043735575430127987627210408890007735426803700898793192549554109836101561966130861719461772122046550455321424126970854221851082367232408221706110043112867529792508338279253392822178725648664193774432775987410754788621170151598822227392932646952761083301278177783359480399741077494072686772136465818374960609075673731965886997563466906660882669689587475630301475074651780873511269446148208575670122444965192332631531211441156820116601417084505099123029217907196250670978977025412193753549378083344517893111854237636058212621311411365622038040165986470333913136588808904058500800508375022906488620278759170691348551631982142153420807951754110070749131473252420614996600073520573887819469920324913619257639955204933590128676891581629716275583311530020700996858435506062586247184066093650123470839448348263480091965274598441856810724843023787373230102224043965189329630146630596704792993896467739997769453936214129924446114061071015306530429496576334980276339608435794066827021434591154700886530178847255436707341831842905904981677890166794398809358935750373340949618624445056230721540208086944640613180160674419314949790026244212153146949528311289463715849764262009754341721173736167777885781817452520593147255307672517650270490382261446971610781158903740948822888410514412288297251420122389502935816020482920913692635138099496210829511692469705773437690346682579348170585511579058024582852629472232830653123418736574410692459874143533276982382008561640136392228884723174664709551827886005170525650568715879549861297358750537596521548350140666261500001380135694971876535715743816033049225697523483211790925704381332818275006636737269446088039559609578973894434154750721101051128369050560898111687063300309484841751813536728095650681071720520941206829612162720156502615848759166973839779165250050436520656141153447377367079745607272884114915912443172410356830677282865667278173171653528676502012301452796838237152176727624574768474622452059855780449481197977222253640888948302510988428852152345283039079285547984930874473509756391241057543352955780905248746438983588044320002453399231536827429311848283737700148857906513710540816334115264722486021257781546916129690373457875337635407055319870610110193333180794951007312565153159069981831358634509569712864977183833596267008985995334874775647846914265634437843964240551757809575947960920495857252640006931621081266884551279655623782788494577885021654141320496809507508549559384217024277897927810333143782240601226181514954547832229675159994212964174260543002876995938989477256312439801312584304229703791282998042190668371881365431522840847486956547613842307096226430329859433944851302872445437289544995068495651906843118271432483433013562851124029054702469793382756186747403797068571643015269325679773463746327277374238623702734680360944497677137460825623307009419010651876012372206877214777581573511918004490724811903009532821398155721832284220794258154906121190921900599815796060240736177267661316583887615895921212520401854555236226917668253907228746490269463435230204950622255321970824265562824480066940033108902929823897244791280964693577092693709340803597185299344801946038221954677417794836102338977489325946459952330825873767635184299341934724179247025054413584733386525348457851498981761432632373210286412702024820299687474729670639234080490657935449939834337879990108873386723592836930444024444846578433692923469467536153195406159513958929731759641603821103763742222415704435509209054873205677613845863047843287549822917279488622685889365681227087752595062894636028975576167955050627535911092611302079911252611007975822557563394286143937453189183744615918930848320982357173476225622112457381489812242581948892225257137171436175901152596461950720860352548176516522973251680816301306554671170902061284466603771014883833887973429407331073805743007172626025745193780629595500854158113280303791473364249464218810524450501361330082402590243937849861324545129195125841676259833565600065763972447723574655071279970640288259487522679064712702842559876713420562671389582321928879366433453206695282278933746943470521779296342522254787570555510687547640055920856291056722552627611165186524564104621203077257486546365219691962172865660354023710786139001002371109127687298080578600462921804344345530954701484507614613441599994984679220586228461574734532353487872828907785481958845484051974789110416654527673226352815966057189103553818432335879419928113536341637903426243058011978275130836566245072306388265927370592688924973089275815474427673683802726904779628475594005378807843730997662336407737372993197238874049833240916585107485008034223662860158914781836445061376187465259821826369443831079363135017799060528697040305160625006868432160715004730726954332397362181363641799783287709767189973596956300604314919223163515202945695334704576953545076764114385223658517689392568936231958504453319018252651662777930600045016973816941339972749814497524565556272272191668637944879246902077361157249901730538810915427410664177221658265936841846884611608436029987180329519794550512428059008924058179273863273080310665796086845441155873892167247907172648200565231902763313047075581666191079366907056935992047042676955608398773930336043266162390069072344245357757599554841903001221220119519098966481126670910370743398822124617777319915776940947837108111552742023899636373894098081351010884168801276137943397802419324574716134443459206836251226469518804582173334233488088361891392671500367161799869727914161679480692233141974199988749099688482073498198337903230005856206842882688806953576453528380077612679779521581137560895547454391486677876700696389640382056418592151340199632717478431347778074585086235985266670044271003785332460236404904222835165525081358534373703599244374557657959809813026993997002816852742111070374528656307134186014259152394301882689669373211671233203414571995223346710450150983362662637736380736723108747287316046608842684682951518479970025552151482854202170342106151782021604705570767024703212235992878473818387874098878469641197371157618773204362713584753349362463939325498764962274008909966766641052903496048376644572792066875019426377344005252881065573455251827107012627047686696518950145226995751899668404142613828664936531007886659420606244091130818293751395667848610765292277601800889903353359361703512337212113558442809852298582288037138848549653483045232022698796148898174706373729665341270502492401467862274207067691414429389508320101371413432168064977699395338095848396791386979437037652904765716996925688834301082863524122700214484556582577373533850195495438344352635336961276155753918813443301105368091022146203370350145927620433354623723289580575105413366437388310758380953732542657292547785989759954186742589145585129081703109504604099518452992127718940272804937127326801164312923777943290742051975064219868604688761985868566010258281364357568726469156216207709608075827965468620338288882041519359016451607162772652929371363849912983344221351956675086454667634055493293788588202754713605578878960762687494710973828193350547210876263602245815702446062136050190244280921599800955692379656080545024076248463076142946370264372402305133549069579847849301184076456905904984896966356915944417232982106656173539522387405533345671536664581336967041696803824462303487379180729259467104273637355263188985611425517283654669712284842107117645716184650594080596674054163841334922612691420748887304112719064878084123616756699068916229182276273322436137184577901614926545310109218615335375910097547340081342908669419117164548140560049834784947586783768745649535540053304191139777049376289537290757784249663679955977315544592782400787511562792513953021051246083349473121805590079096287760908242106553914302779275928280680158823957356815596768356196398990313978108649225368565305916053543382609346339819917195580539263141112793678034885356636857523477112941010887746850493070769553966172456137741967045405825303827151719368407077910981628740651888847044531304910207327917866827714103133216559808576498538477835470771365615171578205609813394723572160322702801170823782354028757899958606097196546211358462870187112549778786482893643782165635663413204243318096399643718163895287613430779092247550580721818128159838842528498125539798578470385250221301614808368073610072137806509450528753935402646304454779248911869919517873325094496581198117584317203688931094463953625191998803580425522953109110284209959428736217524502948274329871952899912114522528075381103698365616727082156193606338241108888742173897694480136506095759843774476029680760445728920314336856207692052805903005580483110044314782119694835721566316983325936407676183088865929662710871446973580662727053903555374854654194132158901548689262341833503056560733626737499618999092580395109358235661033054924479585923236178984434561836018907326374089907926406385311458862108247073728030658015728987098318453841669537897910789796733442710419954852395390853831977255154790652244980792923642254177884940391237713954248289315573512850052198083124690844470100940871599105691749276057778761814208688650905026787523979880345877411308404221189530390484940014723819659996388100529257684800016396527014897234290169566928209592726011725570320441962891170895493671672492401940443437920567363767241373180049587295225269951999793337024523448746215798625517349432079480693844260176080124728323439218270001652798762518467229079077123133258036953941852863711947787121951521454809851774700648903289406893011903038856380037278025794071916155713084921251287497279953696324206641900110418687795093551255488508328675033337337116518100404887745812924599751386332813333865537164031364492508381222422697681182480617837926875536798589745629493641286855822041586534424353981666602429222550030549324364621569779356819538495796989713280179302555879768716557406665970523105777075981304146915950123404559754976319553307146571220882581865088819191127717177591196482863141180597876584837166776866499704636712541057657547745993771532435638841581435574928127643248944666182078503870609543533002476961898441646934995895760070225675972740789254807170417949128900389283309269896482848776153742418194196334154288998051220363717416812296765419453297494266327343908454030253221204494261290430850160491351486479186428057303844741428259415292081406567130843247415563032488463493382497028279737912126588248609615709592299181465255433012617211206890025817438863209087417702307018407404186743805926929719878383299413995481731557887855763375692630438857222376306129315088534903693392616937377977749802001432162974781650063269320210590955029145763268228445083631420411475846493500035892863479318783269297712389160812409589217965163606331764972683596725771010780364226800546700180395692452271641077773252161148707015164484778054632919125349196692162775685858574077615717625917659233129887907444489864414860699120278452372479609211913503611578061031964922301077904323685031446190604922405346940281721013864223984151316961028074379726403275666400360616566884680811779217611405928414194704256593099355746364339513127999330324139236092931348854268106239252683119818955569039873432578225486222957684478592648397577699812895049665429008707206204302152148251155229383293154607367573000246583947027802123827566780149283298890496165326705471473564232906120543398276910142543377552071381073596647974148780279552275642723191702060152381364014371787762330882059043781031540323350112499789576281431316003554001285801056318054244654111825822670550517753201881364867997064204870573318294641676098790046442077344168209795440333893362282593923984273712030130879278142835431670959852060461488184609316442983133435449539917684120159656124854923899074325188351035291175483077691642590231227743577599142271544789165203335625627428060877249881280466273289995939989523491490650064727513988660512622408543362772304264864543991911632107296413754729487116561453119632177584319176421366008418372872101052505953247919057634064286838315206020697346872359295140136441892744013389289668679979073595223019485097723251860761411898781190084686438184298271544634266692621179533896797261775675852305214411305962598384325937415653879371994683136934311554176795762062663176559179119316835600594957658913396208531469649120811076604692170812540730370205179388190945976254793644717449062497981257018467106937811676128025262194251499947646724282653021345836662746728139434896249049630976901322779168495547003586192660893957568692145462095026073217039480518091716081846461280287489713868934623159078514269504497376799216254886742682852932614744225958585118168297737841207416285125439076585697658761598020826224395049657048557489956837589359086637190397447325735787055164926369062843040413370602035743486745780820623742441478231451396758317317933002588656318008677744877453631975224953740731470408049133856385417833779921453431730362809877530298812009634777081276684558153469214230704181574194006032603648758803911791203028464196129688601152126976182450226828193070180604269980142832946493460484879137209291487600502524325021352825603003010872555267561852098221159299894785334292216733664249513412787149648663264770783975015744139699405563369252202895475076145038422187445925322406363024734006319484242217651869017474938738191798403357551771817682093970011263019694425507492914394015135916802367530737623648623317523801580500267888127933088593046743232372200439157086810425172626024746673834337482797993970224884677241606605161339856629985769866512680944268774238251143115863122539376925424425629690324600037623851697088760710814621992127537788497443392119508250645560512793455073014559747640831337356984964322492504547715185551857070183015684784862002155654185951731803029129196655973606876953718672586154507715065790881130479201153501914463245338892257456583596231394037324376052315582467546061663138674193031018723956227832632361618582304322779424147626987320538622710908487684239520604567898335886201294254351937737302635791858263206478210674279264343269865711097947203774543422491796253629962887648619417783127260450809768112177437687935314802306872523883630946274235696415698240321877025935829499084934220999300967506933366764327681934497072256075286308510029158097229420430121290372734616042156126744564935859440524080339987503421618207979284732976801586392305380546041037206913689781018874827591588827712205486607960155441047839943992308903108541425387110489914040547614702535045068893994800251085918995166533948994438619060780013516706604009317273410619725535548736251030184074706717076179200261273969521723998337408288240672778775971409345040394715556321239577735741731981244229667113458601215959346660014960041369475567442098120540560415921616514812932751814032680286991446974781584548632210690847311705980923624915915802559687584034107232673108225126545875161181733200153887011882261691968857328748842696761869418925889201705021401938125698697813404798260130665650454965980952506370865703119799126041989269027663955388704554165220403473133394727456602965068079890125696594882927666518186037198726620501744112943243592675017700289628087451109720078398436903570331215301688751446897516279933744020483944240904815393454937917848929291330231051964426352042633206350188639648079419586767304270258598220589266431547093384096257968887882519880964303890740791786493679498784535050232555422565651483599859950630388019872783489244307455062273347552355732535891243104886419838154653617888688003561181981408838777125830783813602690229970216039140308602478592701850209721275390969563142780191205375078466119180119205213637750126242179462846369870386744534619790182344701479795008304928200915794632820740184978895168921503066116358249930752938988315767766433761844363513851293889736445305121930616772993341307303280234130013785104333124550253865197996116839186239889455739438304497811757362215378255953090748650316481484443618431219114101142370440142963430261325455510124605530709748795186059223777700134224218502423818739504072114454670670481040025137394322935780066980756912451188417991628984135160715591474159781297554612775722989576321272338614487584633822373966145787711273351761097096152258848932011628050975946567521119374422246435832322885651235681496519536564842416217096206420887804487996739002923341561030120133911284542881451581843556042981665493145815330169611406935372721742984339465670300053939278081207696188497208932916742164559596445499446625453784494643877023291688750915627773370677604190922566617134959658699046038518071301174188528847785305587342510797380992430398041030334378178677110779314147041339389850893590198734236571449972402006149125031018036387152725732638022348852521979057356190257671478886827089160315566016221073384679254177488077399319837793153727215444531722740348822458141188006393539186472084804152278707115174349076340463173764759943950147435469585101002055285715012679171877310211799733422435937669312764774898301922096695143151032230971545465350317557915793098397656422883666421305127159929563044533136983288914477972746688025394397643286588603093901436078748915208847276886180347452627674040162578866520158664298180544068685008647188583270595639710784254432466898991931900284756168112135915390031077078584407291762992982487236459460669137902258599418986066422301749903182957787213420447636210591497592374418904329187832622994692944941112820751185744178707092565203380046035067699739536598722346342820883331684130535665933569107493116141832086847659950702568282516239354542284719280578804420463496376676682012408222565266589253421160556998361353334300992955031978795149546828367613507786224893970376412120026643723163408113523636305582862527360195712226985830123752862263396061194304245783952537499331444460058584232910807113160014135591604305868644945178048101562909066009565259575554382207226138988713610404727323321398901106711866704076250580374126115610075849128819317292460975848496670629357636096409382516626639165234269545868327560818713660339114404926462801293718612282177842125472072546705729035179459114772988478098441704554985831168218086714154093858291606831328464177285259448964121703678447005220730060582464465073941127674285917359834724647206785344391433916024983419196042366750002143253103861915268330619796439223224757653084523966020303260385296312613213996969651839755803081944053208058252680034708734667456045074683782688141072517807673183267082567481976292207167922315632460932829176494735303317367414573279985222401991130922069241895267734611972214127003128823677005484660323338947901008372407631139408709712248650559936805347645956024396340499177477063595338834232522222053137591899759393396117623552403841219922106797234779047335660734476161612432328125767728623018868906446358456405598902978822272739201386985867644548095578778881649820298496697195597736765969626256478534185638859379939567396371348103716474504879943824800906079833098980924444024186013227311097915282869431022359005723411550885123889405173873559046899611723740119940190402943561554182667087388335205633490418654877389554285901354020684889707317948865467429083512520194689367370695858902064493373518386424916067869775423137415206039148267460559825710441013443820557394276541947315333853722291341753820851393202222010602144937295931450073162390956332398390581421309655868014906800553662294750040910702834101011633361359897991395098381976618394726737090808072072381530536307755675886184617656186873932426580044199821370448611254560750781362406899270207878135996669940645615177952766099710952532857491172071578497612510489670694847565324632046982535648020940904854323213100219980748989361824980949448651062556462298391392956049578801789592430606375816000895496603588268376693489869937133037533303160662653011079615797188780124673160382808066721377325331463998137591909802084884273912203162112909798907019164535763636822683251541137166269925596405525370462369719547507439271067513812835850402419488625610320683074179751018418204923689337845553247646730923738794302391583539095960095207647019816851146025352577841412780178804563372277108520027353433524901634987535191945820100914810848846788009366265204422833445361339208374684947270261781840497017131000441058315623073820588144331829005410983254143164618760605916105920560832358017128167899192136128990870401383453564503375348421650887374814172558401671983518755538819639871000761785297474533664201611154042442233693803219929066703789917959048958188599286256247691084600142761514972735048164257566595737641339149551086745969927780270616470189881283143780055221422598592947158958879074104238152340729065800332232689098787642733681785990164699723352712730912258941736976522137651768201077908955988679692096379912035250232788474286867152526273022571577987367886386365182278366497955191851543366322503374901058554073030782178569945887529474961259774387078426517056965599609572330580054917884580359936025496077217874955411406627923702619606141049765413826374638702693341510284510965804805475173802929197241764667769071165061415235218384265607535520641901140272437642906315428498146077541880339099636700380464406306151887082960654479795266430211964693984239066249705246386176730983379908042516213584859450043664239405508194266207131385051982072578071715009287777235592710553542846925261232689044229093831664637240330020628457037482654093540665535412416415238089293715184302739092098533931555303397579592389195303657118003538354964612407591803244838416341065350526712499063651509500899311817953660913511299058896085935399014786095909387023774871252956079511152402920481122488164820296233639881189393330001283114041381586176108712434553076167518540805363274577102262859573247822893526164056097586779733262764879878035431451976563647646854958820410475176826484649441371327257110979681414497546426375496359350780109863520132265010944713254784205524691609333756034603900615751360756645812503293273769537051343916333901663735317650004332964749741085348766155737188591878808557164963827532108684966167272184804950778024170717492938016062153548034640306106206404332090531104411943854138830500951416653502296283714762822502657754507457879620652483809074193300669638919688351732991548528734321726578742407843468242547110417508274154895039220471110723221715205979530604567676221243525476101752232921229288306168467192411425725565054790439371000073962694617070313356519332966519623650798819879405907183167451600985080254686725253907195922062004912741191736897848968127899144207389556535564683660038376567010548061309439124218020125251924714528280458127743425373950963323539112880818697070450837625429296847657932974358309802833887904518532451154711093626034886544095041600066653200123232225960409653691000078349959590111779256581295312530925713974688856745100916650732627625461790256110185177488206190791077472827970282701471484875221437806777440012215786830281884244607462797731548315695913791708942581799794757377340242006710565596750314130216809602400919253129487760794312781929678249284349550436156340526125223857333147905004393654335005560759913814855434476359450265619448665029737108841604976534598900330180757685095342523115218571712131490491418632102718097144011339600652166831656553611570464646404652298050272781494564072292801028429505953188202456416926015117998174930998450102375864112126159594172850221421672477560494272236281067671163510348714062497013729368696067504402278377360920339713412639850459930207166007251421551782382802930730733204781228985322252923507047064805869842464565140928348871333563466216923818046201395648346017472987412763020182259366347554671529791421810286323971862736553438057565125803377012539428857723894398513013602694239980452576645625858332538530693590930918416521703060437099622285998474742475856465932191527518844998912712501187618816708358416320498292228169912342764641112681790589340238285421160730227144025199523922598561696124893370704350858903181842747715830543486949061683582327497158947388744617608423836245254186275058152632519320093021089229433686366489386873091316561043894022382799986759835623039688451796884943715826195073221285380241105025915994994024174800925509338152975675507442592484023773686429454159105337937340579768939511839044748284669811640956681230829307980594819161334220986789430807581288660450420532110943050262749920271223292855729481879197210089927820287759267626104315978434587690462986789875243919009136407501205104442232808296295341654177770225252781057722002991759813958664483813912756241592763285064577082345979123878621487028756401513816954568391196974023152196260857206214414182281260527353953032834547270414038459570976434182071506603909035239638661906081434936188407185292125696863304737600788555302364757305974761269294199878250964441231372529708074146686934893636229286279232919651063258683475192968795256621837019339938163558129068923909510258923277563838172951531084076802913660051846651656682530013083246858209211177959772147222628096787384235046941288044959891336524371456036756223900981793273626416201627558856531257602000071877112202736297518141572019645208909225012824664883474798820100984364211573790653650602535848617986147941477552537071288612196481813577518827274358058936646871108976210081647813063764288757809071888653650112784900003492498250902132265696570079540246981800070840557461113529085892918630826688758570467574784340293055856580132934322832465480461045265838025601597620651130153425874275466256025017330798464114111729853025576320813136527310560756570463982049465645787173827858724067870212496951059036127892934283214596381561358800914078664545965746212000185292592555420966918588138567920152006578342974729954797700579155955234218982830449904435558236107995373451311759310396596631359951878829783271366026703006713317017520692960926211847649856511719707598652845659847264687976947112589788498303952876253731724244121186477239438930284832617751916617654401312730963658820215615879581820071189341064958388091113669691457640300529184790870507257418845826622166097316563003907851014379283635313273795411027751230320573293602525273059670517927900124966449709117574662012630136713275908015556170808812793008397259639997419135301125874488852945575312479399546036289509335715006576520303323279238105886084952389810300633582978697658290571355110685444119949034380261062627103842278010161717026065170369728249708742945300235032918007231943660657100864409692743587510277946235704240822303012727601094436898767869812542982091386492805810294751434048587925427407061367372637771832736640511216760282936413334480428776273522882527635142310534001948038906262949110445574323649758971219939053925119208259331144631559928397388155391554077590393368218778133160579721287700886119385231627983068819878198263729748265613180416566943851874696701638510818121945283004793100875847220241766836718886629304117159596329991667671744786357509013808762691084233634197709311937448540075762273522839905395171356738568338524146358475728621666994401302505482544327621661238341948855272882175368271775772513522661933150598424659761193676360680675857211851947397423887642937139806729291113364132280604322942534727541414648994207948115392668187470646771000355280862218322123047326760328437198805997008594033941488140261084790244606425499458109538782809569633044790146291132374437447713135673060123826521076439218481902143739464651785341545261482743157299029173984407198958311980362397765382952725943067926011299594902809634207096974166952256023389703304311910765034061341442199995651861991706331116675839217102588455308916634261511359047553258121111257525897202985504432370671550263196025237026569060733849947969700228225470104085933586517031402102713153949250468715924697015937325843175413057804617453948976653829704045103497726278722336788442568039979624436253209092364944683721672073217547351307886855738017036912355832028615531615791980314649586237082458848063822328608470514561311076100963573559743510734376512573410542178984906168667817204423513907126143628912913407976015399855046143511094924283531206100619449943629529504135927412743615704638722237596865211058722814006577498954844189100701793674363547318449165047636210436562411049379947259757195612246392450530565862117588145645322127514206364305932500404516486985501169997577826397909310060592869424679199474440534339368711156755954541969476626415915007872366758441398859716752513957886463828678260262292478340151561988042486650533603638978257827481830998594595672142944917335733185164342299001491669527188239637280111271440566798004962102715687886757875815812134289303805762453950230102295728265475486327943815726995650811639476417621182239762607715378264030426718336297946183508298081667044820248415721907360292412089623236563477625766232262408203972110635690360896048219038925205332099645504289988875041545464379298533782655933945968427725447652961766186401485475442869883884937645478993259504533269087205948944486132935112705993942631255238885822858280962878012233409620244988893442783278166338291641388547674185406961325640375216240990032219732199227493997292691186395697013834235862892193569887522581495558891170484591623212816147771896337209651977137344564131087303157926061803064350103649376836738123860432152572389523047821800310253457334194113993748649483800372969063003547495935015283242425595503799187546343524592626283497125462451906470217109934479380565761314049906210607522866627588114719936243145094119598081565873445400604389835695199541232281411132850834287122090643067081476565517679493784625148980316414486742986094271352151284697637510526598618138262136961783839160797275202459898102844471606061571653008827072325863670797074933127431217056302046858462630616703391214062370808152662226401685688224428866148589996003361303475311303808223963553237842179033309735789506741580013009718050767840461944510731344915942215786108187357885201162694531117078015220354535541760555409785715873100864505240667476710327367817872007911777946527619436407328779282851603372387715516341027158642922285384019774825746549667824266476548169363030134860339446128003461495000768140167033757458415690579406252198469074903132011369682110179964085111443929723129631590589265046319585502124781140822715715708587492757500144162750843339798382499754115368915451897631002385095916624377402171436367028052785285995021515149155292779827946955947423943133844927942394291443199129474312637430406788901841248165517504409828360232668765058658461750483986732586041237287711784219521341425935607342969000443789350583063855236094208814252979772970147393273748321756392727684885659600520690785222707433356712476063407782728744334565663273631064695678176023999568549207540723038454255026893541296211920187403760080768595833207272258691967793741053655286212217597449787723102853644957140326961567541794678538735049133150352930629151285951876717034771153688168773659499675273207528548136646287663040087110778529071801463447249871832319633612442272385491112321443502665656549798059316028702815599052574883035877621574552584512073386486664834259490680327424879795887035699907748674534719098839536808814088857207806670488204357573630267815581564331603944416510148131949750045441456798499333935576813494053887644844910945735056511983840718084009060908309805988060126131028098366631989718251384186169312365190865722246119864751970461346653265012960704734063122147663839651497284597986792471409018478516007834210430128111793651229176391601605956061138469061176587307480913267330623710560002310850296654561911805890364448600214399161906639277690829142756198971678829572879802242453507465400234839157545336870253021384280412440397268276979246775726607935535551899806022875324583773241948489071826175181152643383837374990754113531885727088298939353303728754400178066120766026033731541799520114046274859236697796617133817110407331629565538409419562974122915869569614029022289859117596036512319545217223822087058517959299114590451977086235510276998071049208540944129895799514778331047591372327786989206849329290131839994082035404415994756287245782316376330891006440459935742652590226843850637393905654848951736209042493038056239915218444868327341208470139290912596935933141872352141992318461090571824555371813120579139994861840263866670443119945872563076371405295795935265657565105134053889152901717709677446277250592864279598331389632293686193276805776748662692757063841996941552024735888222861170248990559659882070676686647408253523180474014461327082790244226335246366314932827015096803506330528924921363951405665936066381733284221317167587012837729637308379267398656470835788682416590966867900061154851793840528464992307836771470519463000561673271004812878194580769129988379564444474695722061067287323130272726715221419944982856095301183257872499848998621377044949114069061763226760767913589785598603106945262185195069399936634902587525216945099201070762648716646748852445066335186783051834797410719862112461507261173872233394356502967869477286076195242228462087661175895950535342482172828176264141582679233192908210216501529277860214117198291374367635220315199783229002983954204016217809454067212529487374378129974835157397526479419446699222407172100383327656154226001919768332875226187304995651185540160063063832994909821188513125653519620214400177193810371113240856717010041521601694895341406070572581487332544846683402784901132967487286360751932484198188217266418589416819236050921429534500394401128308969643494711292489751303841932535643946823962533617399775371777492081230604254276096281013125853652789190061994607182554421730712483172545473204291822859550902421713519348491040301445307176229140141249391917832793236413997088853309071453843608529117827064537825683059236871298979455059532691160256818854762702970999072964459634786542165780665193300678760238169919729243787488991347449922198585838954908581433143431139096695539037933683587625863115209911440383678442901360989386505846155059402643118445885540213715410255037532543755422055333250541243233979069817462061677231462394626002779253598536134033078670200719789130212304409987464327908902469520586090434999828256438061790073838156612045449280685418883106815611867943554451163537761763046646866196411013890978571916827739978513797451510230426926551377882052576602336016617181993215417699231571940853405704990287711573801199818731715997042170937401343863911626513987807470392528423258411916451664986716707127479115053489321387111954804013575149987410910683006299933151744571264689394602838133129048300090708042648940030547198851439132258070013166312931412325431844949533305724719696722076954308204483041051790232960621388992122190405117498072859523677567765532405124221825660894892696480171260740042016093379707483571853444619008476448562365946725631825356999370046588635273631835588838290552874979326835149637436255150499957335260433159070725709080886509107685283591364115981036687942647811312226198526366601660717766011425093901394614627911213955288941919751683304219421829710510817693701499091332773696754518364421996452399429617088945313591839242753255168317074189674286182738609811471364164217500801162890475537057432866671987400025353804411975576502636614811204278662011332876348341497095914798987524500387334214468040657514247912612824155527726048278518451439814147651152239395015796243536648013310010814352713397520896855591977851799313249357153493203967349768353050864662395193411364642513160073370745689733653000761138368190936506526496067794277865539840919117368435776676342793510611962459939177283721092849013909769470983807113210924388182039218796701243674405809642318793002872983578711194977213634434845664832926759882589227156794968374361206002009566308996153398137225480058098890565984243714049902506436663833432325834131480688208024231877690068651633606931203627896953331455787015151024886963823507869795215774136174021622929922846636513162217929327972365347368934718708232040712464750503360124499285828535019448946561211551603880835830019980273217469482555588534422301646069664000650190721178547112331946035136107313054649332592042353792737896598753319234248827878084258035573949005308766115727036750320476716299903144654436191660630120638705721542414701518853872042166003515457289930662222816062191443271497021671072386724375485859576686691743249247665412588268795644745830583258089883067094469417966790943097737898339677594998566947664344316003784647152601300766270603523440991448067791520611743904340631157136948578216840077495578558689728303337403963257505406126308143550926700373772840817420548127563275067440584477791140867176974501081029413470194135339673273228002983791055871830141458489756703280419704375626492047958127660593609696576221872901899366951259645903078978707956013819033911089850508586284870997752632302539653208839065128963082832129157168659682262637745641547217682018271334114184656213012955839580575617340375862147179483255414352376314381306536422107673247688574949612773124428406844670507272724915491339028166400069688593082071180280462384284439315417257569512515550416039182978300927485100754574968216037894311194845509966202020277939358973494621524943224910601678904556200726268508711198764089265703074848790626816260399733726556269270772087043877674696082225657244805570604026138887224693448979147208801412155332883828446190815220660132739223462818022871535901373359677914149383321545152024323646995521122982449211446945346285221473734944567341391559012188429066087883220020564938388784703701182323734557764162287984125704977823006407652756907583395182364766046227452612301309610903028697063693020182929958950575827456077999853384082539297287609819506843947447861118697427609426274752343871152871721353949845159060509169017489465812199835800764970986355466607874759946431596554697762067286493075641797812842629733320318098975008416122765054615909866822288215816281355870189239469802086776833967789507336291224507123795952985977949891897045929415601328142610193168900667793115144352980160683937180513553575535954206057914036701264554918692422238029790857419045693307717388174706066373252395342242826450265798255620874501774223947798198673595693153903622639940971991227943754506972039033962783770501597650352403457343699951162529769061113303362541101029778558783145343709338640654344872088340824260367816436087063068044312505628400459651893176430956752417001877106198865909622718499807435137882490800142763504939291420571623826449142171941667606599343603281504637924384530100495665599047561188303794699250471065273527579118188090556956201482509017555821151584017755353701174100942955269021699961067974044030566871417548764668427194355299535865230546492388098503012436493518650532737797277872651288333357798218233277197444718455626357580698389381253463066634057276845665636712327322089993949524821441178780653491213867631038087107784458668970617047889845812812175939168345764328386425215082919074347222322628824479160802848389423493894592908663844055071218937477717975053618668496444064536459776636482232304371534074847506202895427166081361040294101858522048028326628056588386317198328890555512320202047750618194476317823464304930627702259343242280289818923749027634287125398637128294679752021546951330093510924204441875283018729669501790719463625956757779704189100916442750221791156694049779913297881649692000628315892591323149804137237440325975275185079759703162736013311992118475897967487437954824103432741326511458636479863288755940196969200527664173708229354019634416408278340623287818076240944543221760693576974402559015847403524507142495203802464784114441390167152973603131808557783776639282711194421538677551885940722544065578243925185521412104391265710725419055420189388028511767538050896464516893768355339184520942481113391203489862134464419549881383306291239795759291253647509455666461672947616907850584374217130866465044790792137359928220253805159085462262136852144795779773629587184077284011185494681028876023922711168019739230950678598180962345818224400013937387816751792865885597072775626766609916549062239338049593235592041861394226124057720606164321472355620080005389353519746045871783738782654064393188303723726176524978921996907608967174018721441835814531520809387027387432639593673181639849487070713194594771829571906113496477524477144545663954996954285837133348730965642753385005687506145194567874595576947791737481353216466572449311333544601247123022259155992132966371369985715345721310429031090158226987501743820764126439302451860593239169800162266262768826406228608331319801565829317910013251830112067598590619757796822125561274987886230866335595213130848294557509287109965995635959155271652424699190291951573404724415140586385738856280794555924353830864398184528056390544118540816318041193661733729822342855479643086447114069845174383942567445013419139555780597923879270357900808152026932270545473374576629891370766723235333126791456172670371042022774266682682411678292255375118489740806878606596517513469700564750771526327382274168564671473031295023652436312033496853242484082497151853972026700410936456837961234501308112583494895496047401092180917561331581178555438295282999657828220633562645589361052754659920792857272508518652171103582074821006665992853730431152540013631542399978596753468511031014766296750847819735184269473475934303847776876871524316162538704003972077228290021110943348993027226260712013651445451297746976760607566609691073508967980034788505386375073416290522185760014129188565407854514244135636874648834340319215655194252994506787315359750264988247426821519285265091211180700947265458232881183309624597697293422477716934820804560976274108832675443626351047213118931597102259713606564135009095927438325669808753920125440467642018634942331290012389495714896118197012522384141398239167491240218761114841636108959186306539892758440971744649483387651200113596747122875260311057397004466160089481305155276734593329528706818566403142280184092205971767510210908992548647083682012805510895039698051006984792405684231370319413384924043384127955957658523660459852578788166144493667046608110483938037248561652111453118621348861102630930905846980783570455369345769059026674407314073877976076007482879240537719098958294790306416456974913765016687574055090949446927649953103362592362766282589450154694719554656731970912229691734144384524403186169815426635927226294907940103421468596517561401731461692938692177600311016879374901341631835969360662059765246664101511498867568269692003996232970104321024993131926067702763960710849895193311362427333812988720503200082286085297717033481102961642809540428429058546113938205639873696688427671173756303904337415462979980373689272227934922403712931623074541075753638755818977129525704179160628517069829050974471153842235725956465986114525592381433484683408401812631354340410254227990764258932480971663329520622452451477948291121374687264535028795428830257979841657169210454823850933215757337872360982780769557445910768481050350463048998485238655271898892941925664217347469036703131040821225836778049812127761640211143237685113201768867112701241534366769759688923356911602938850799427431250037958465575620112052643719452463130963601404499808027833385498568590770472670118603107067738313316915871523578285606435831009330258326653651920807973855871977136064319594410081205815066181606019299666737256875459799123296767701284215422602246661694785190713935090661895261680772556819306146277199476605686967388976916335273045128003244990967189176025920894627301422640738830514424479243494195963613762192521125944323655820465156583661744289106231755579075335339023618700228006957085779585149264332650999253957182847869249342886100861197980047192782097454329741384796273679045465987542476124207301554842636728022023731200144933365781846423679085734110258841472697110607372130440333440926728797347581141399644022564704151325588184729692212586998802898635252734720124917381316426369281421383872162853950208551707733231919570016912185300296467408004024599034826419691399198107084663129791735229993355500671691950291209599209896544067792357051465686008893322606301226180052673336516888332031411488651402418175240752261975270369447080437677511780479301335373471579351443214765743462036949333204238979040159255160461679954737625068107867296828720727209746901695003708961352654592720039911294410503433834064095966188289029602449097979024361518404621057983208337384298021561654331964575393854221100385216712410881640888587363666155961467178398655668627857471105248097624290870980734431893229632003947072725724572789603951856861156464377401365316591509067931989818733694665524464807513541571793306551576863508012817700505703286721339349290691170197746657574490291519602558678720570310398475020519262133864076272321029098916882213520070825864908110239533367034186853274162355753931923578253327704011628086443021094537438499629641333628167178182524660767013552385129112342868302624959151843793281437320790863067933004040609956223968641851658294691248288573644667858543280790845246134777641944403880815990849040096958273321790735678729678556877283839222011837009340117026360781211743698491447742706477175487416652385170783663702096167100019309773836681402551228585422398242027423859417337177413371148997758677318642399682341870480191198692653984618131911080504535741111642966577894106802861459891814967169245944594086458043386463233426589702999525884316094179240042946090739773830579007059334810970514912214859375516264662779934645462871719181687429867392917282223913966678082520785307447171402878756194125759447816241563261800500820535044842336034781031988066638526536122663379424110949415493493854836167842743809598417478912379125572055363064360052290568069237476595974876368342276089011472288145319262750989301046899077291259569266675616453958866514324502483403574028875433958485272525595339986734287427693668994185454499450977071020068336997882973106344800047838396021363232606887925938182756420447407506790773385912296160141475507122362769006726790732650146686374237899955723134090327744653970530782092419040092087121358961761145832488781786302700935386667150822953598049453456195406344816758773806313025088581063515676952228939860503660914530722910634689640974508288766213300921502179848930573754886498442719194684867858611473025025496920942366968537378709717279617765194807791121670944597255610222318517358945643841532900250192920351679920766906577855148338675137223969221742435095162894565726799376156361915254603706036624867690658231722862179276351192458708224620840024693018876839725440640572096468057112828429236048127586673771586262189323410829724215318146424665049212966603096822468287764366566648014525332582994049758446387455807719803258943773278044557307364675637845365079801944977914532157367801777046008047866557557789162342463638307896929246644744011466594599182744856648099393806693644637204256721573846662938382313450523464689984495188616193536615167376081457517096293022559240189655533517394967744677865126062097246268226159656483995278473064375511741412711777414851718848457143451638644278661177603791597999755759062824515258176152665646598125280020028714138787005656490192172546485158512597582297924040171964415450252131264383979206422286264815659802201210354781674723415653187336155515122718118084749348246647782430488704513926105893671885963470089941493281444419680615492392431513319632141122321007773252382594514902144669724759955394265976150738079671985454184116441331066504588518421384004968092775929676707658755177213249383923221055705996827218690296394281049448404834502841575427117317128524538480645472511428274059243643434509675793059392148563034226282684107966143813551829627309122407508332466045799924684618666031269543629613851277982537694731910926808176231124073193283850391593300851808973718957285328393953123462589135976478786453065025787419555530809012431688573235029231502522388118986395332123888299201559730075871361437661430199273626751121003333968837367924502956463843753865358121417990196994243788997889056908886213325205565242329092170423342088509673753911482815385470173716777761444916647413306332020894480713349746810768953931783069483812199599252978626144556307549499261337243895293587015156585279144998911190443797846544677075952007427579466195518389148225098201508444434455113508010837897660471762540008232196980890743771468036470822020256632334829666171973738448740276118013756389311783556092921638304470238865996953620471268960888074636099399099970853252697621547984944374601916660202421743714687509092884680479502018684524433845666812174326967463212901164363200085688552035590975907377646158150210753923631028496910447826122924321522774712653277247994616651823706783994061267377847311224207446419781158798495332096841960100440704091051365624689987029389237167111147564944806209088756407113223641788313341774483208777129118698468348907214984591140277275571017528238682479570327648892642604557437627167218524456780049230661609306919992148073680130464480004786962035446330911278856125240162434551170352427626392381950644332155512922487700507625446358157245889704986731804832060192043617243677987932851412911582124006958377690689691274817126552746567968943651549221400017751067704579788200429339407155891721112895187024429412710549129397325635997024760130549725460878889981856852624227373565366983144484466579494015112674917595603935757584674803280749977259905205047294207148217589529253703000992149432700061553343342331411003892041540432728110550390633569960187990558726213828544340048016700158166875711354284204093681716047672827687312325085856803880745904276633150340355213007089935295653744336156554404140739496456317959487627372369898885996520140871116090172970215329193477157370619616658449481339887380367975262414853921194364776795045043985886354954933482422335353887538504690553086683861307606606492401920834494214228748440884658087156382122781709230610682352338110674961685539671863469598772679323981720002332670007274843230183954185869358812074537913792615135836401927275918056070338799819767615196290063207460368710154575515632129305655559770672368422017143772555194936197270870631472246232074406959718502048563652489746898981883889259179546345616958522916584299895760743533577426177570554857737682033747624657818404543571308517801629755389537756750291163590806521765733764733108661302866394211104921916655808205809997785634786505484193050140410105030670643275469070368149724421536142663022912475160434512958098897967545321571427650548462851148188745301059249145207516063414523114886910360633996773785105256843571887493170284464163289180260290998877198161070167286049881479244080017563810811868609304905224576198127567076690617275068614488730336804448288107542241328045490405919663365029492341912967462849043761179661856843062343545534109075006013979575166809822010918057098545098117101761690571995329463722775087856155011470863794959098615252504808509857140854820995036204846894657796939241173012986911606232960234940011881534781444671204819407588231969620961595267552608702762225528773274940552981212132896319977608579210246856225610255480172487694093142502269705955867660912182205660797847599018542255618869469530631773422499244011372683144242501258138914021963688054077440874228839396967936496408925972569562176375010463918787888295698091558880121817095483345475260793928709179808244730384659904108415575101460141926823331022522860812006939879598296365729410779383964420111209728241967214288124533283837902476297924132227978055441905857680126883665666337370440283356906256789448772733762377976318272355170280647825508380769063860501436970649147934816696731064958378205940028115511923327240968774308118391813898676175570599551738164167724045909926393502481993566088148821096595120435011454537622080739187383348326453078355392090827282574036205516935275080005452172764294109820737642884429928677780937764068659946267558602209827811491674253664722332154938528707998403525643539041570174469122654456261443496211939977439581646867934440016545169998549474727136456960309694492616887206148385962545492312060764628992049860160811910627733616918945168226307482598298834134367305751460831921667933475140545992874631389051023753248450849341663230495739615493037970215223587045795806815707274267585539306444681060620193161431402582410097694488704304053137076823700038063153456870070166274823931816912515240379012790764218124276818287005076964610843328376470997384473822585053131179430957650266189058843644579728651518918278763148051533915364188954505825860850061935221804008401696059724479796858371395998888203554797661657860908666165123447076419196773067514167661943095259235877016960592119403433806505767246597421709974771253899942205607602235499006982107629952072513119005902543564643936580694618871213817886496034490191212509952125667661252662725209148426864480560073565307880505183421520594904815785862965106596405224634292162322448071987185457325047019985222248733155524333235485876916993584574487576158107130868154488931356345674431131608522871759571568034406701764965397040170476649056775525770187319300696291406519955435977698972859901912016225030148912203183272656950127152251257251771671422265733636671280886639638549272292470375829808108206833374697946510557844259739345772073208590544634664179012410631367947154934410624830984547985576101491495754015411165000667839231621005128530804942228316415093330444755858810390097458389203035120064349121296634582657452553952349639909038386733181938754851958517970500609327203167607612753227260714491380858852884993087542299250682553955352054556718635230432032339776336312546787512355744311636050307589539013427917373049476682464845680246123741786318654440482288674655829379915804608565938732568069078637541356439086086752716294191710231958566735097798680107520756290311984330981916042031139181361975164108321891489003076409903414929045006871204007992637086235494674240376328793843753334700692980581445344179878682947998891709558947003977867139684082694550823411925901444573430084526735568322143372590883482840431386323345190692325976179047377274187934192482524646315543266381591233571048062056993721709415562034249168514134634287206191809813855482363091370099444991596593879030263500714514119571618028242478272075236287326641422612275020919660663407549314019546508042836399529593711461032817276405518385197850644565995989952633076755626320501426012326260626537978814831210684422976401561201406317611342865013646843105297341525822922851926752034462926004457023685782685168129605999730101503818565929185998546396958912331482908878698761640025469256038017162189261822571451993320073689395796419360079881958896868128007318548761865110165043166191742276687998115010462289214101317204465681496298470287714461099080731718455749535952090510967399337700762594656419971257777570616954939814478093104073331713916880480175596577454665354698205829532271511180469022678060977854065771079631197085185184152269273251573438176948379173690824740676370512098884600934098366631351090791554476862394937123971100888464293012375330130557052824310963659794435699902505154022684319659842292345286891805287668723830401317962655635012007759367015618670734998314695248680488411054115198627176628816900390594287365713332296657926308024159650290871417941195486222584924217840024354539551407433752925847354810659267448024745601116097568433271886377430997394149872708761184874084015428716422176311361770014902937556822370861853189203298446018349738929818493377672257062499480738500266740589743866921922972313870510373527475475399705505390789342237649636108059632868426359743004765370191191308868934766569621329140593524301091866236100283066477616957286970333467799977789743946473230047341242801017596837195681535430267175545075529888340213094087288346913191065564721913068840685037966113525509440358168569568704425635452756847366386756283613144852382057886509582301003428627437279595334233687705525188484497881199366950278528381223232962564230982771896773993143282648752726228709724485537196762490661363913649671292568533475207456084059076313797425857821578503896567512401568533263425995020989897181965078257463395484967339463941386544066011584773113374612654620377044765437117748098115438403178257772915733805114006858458300266749614316211298382193781541399210055143575128120919185738257210079438753039414444080779368048393339667173946354577733133569870894844738607178630154662091941862872816978781445755442676786880436910320992268068260888865506210608890265034915155171232174634431399508706845087277164177271710936462637383994373700813456248422229781350684158414294571820870899380166624518573289410074168894026108965034601946206512414316514554138803391829561257710978584088592958547843775653844706902365174338981496367083332545358962864159881639002283896493311584116992953177710135330011419270367375170632022919470433959823266902208303119002880292128096845518969453335383302789216046106218287216412133456203201192688755139624484731693208880966178092310111615336427487112379007531859362267623760991253225603853464816900403962744950286337094100382974109571244562547203356386356445923164926722637251337677669012009931108733750877321629132617553946096099957159660352022572165957540732838639893882324364438737150992438937183649929830387617914038513439776439017991002930101390737120200817470954590095481809768528543041691609782316778486113792488879863939185990901739527618108757863095443817366663331009139626380660426827212589116386948195462779675107372487020384640409337915076773681548319389647549242979593982808082315376847820586167495508551151404945915230449384909519965020349669660613064646364248357380631188965440217104959681253982477623574253154168198095172762632983604936468586377716299740532831654533603284807640952941202154768302839536181376079065727534236611878746878091180370250914481469515068756685460419579730266539984161931806713088810408763065580472951971964196715291754595008432226498195062250308877264704265736193810913357106974584928301984605860576947222565664073892000189147463824953130426927787312684271038209260208224536262343265379951417171129553404963125440552648690079629038640932493389659792394899779624627462650381893226676086820639820154321403373998555826594567320193890680719662224361692469355432005838243158831061029189303918311459364653395620422617402294532094415587568808541665276010758046574022921483207698404628359044494757782374424607490790336580383341542232498569659987213867761221083339581626960110620803683428146955513785555858149669398204573559223012190267782287167798808311784110279272607743670298343001174529960233243863800209753873081082838700058963818805990188928739398496040760116103902600435852519167887770470707656335903497407815055972843522685877617780472836967880694204927310172645902944454854468986942308610044460650022551015436066990032786380095502608245765115869836020977155772489288055296003497320325697911123541855990967744098007249377520490739976316263745080599369230174604781294215205345123808085829368832132891171930968428372819659979983007207810973692077153287650465884467770254896287568546420120773801403562513602403791555243672834250398562993731274820076513907064418563103460800366113004150670554814502255920315823920063071408061089559058112977315171146912837315056943958510389344888906721962277588609230916382851244434684838687245045158308037951554638295630881573673405610657227865180226859310948647815463918270799883439006052758893328347212122459648268778368598206233638421775991760705390484778339409104360104956881877977153233666392524820798930515035724030193591092187799853538148816944743838377655277170132531734285888615368070681075383311120165440901960353277574397146942995225048700560176297074844542670982276074494826983117595895483694712582066615589052841115674890738749172222433051916645972973747735127295890948941557017977643216343671768666156405576356321461623185680176578517357658131355096753249035741405960645719325898607101791708480413431310698253627329325711125515714454707233686380840545401800797023257161912282637118409314438813850202481253556034229401529502616505586304507358636424193034508562715447057344716244283510834488817441605420983679615871114004339755919909729559696524150347772772562448168923042424492705655075061835101076123311859616664014966580692577782192619800337982352689363294330511661178231804043379878163759054892456032002228319659145142933854140989452265807091604623146208525229903982302989406153698488580880225834537817241073111806368590056454722504067616360169498960127330622651329119284225644403908514841437141813965727568099656292529592394875056716373935598063572416746365729940459243920066291491220571125022991145460453330903076939519462786137780697049444192955556859525157980242374994248267992194559411268487892335699168891169290741622727200148712282102167587787994070183575114965631524270363269276603990217348333710571490614152964616640994147550343091821334200784097858897781443495709247861046909662439888768503197177506209076769788852029329715153432279408804642834408999770146574829253511176606047429486858322988703831678238080507109453697981939205704907094217124468632642710067988533159201436030201032607588386334434698669411197612161196715639615655513896825863344749458334671335230674813112563835769719958386667051928164758563978480516897081335111050703030408599389013574881839360096439730224959380579312665413502355278858556138314678706475212837017438637504677984772366094918487852623109467163351797331243535528007647720743819040922887083750225675741998243633720118827531971356128177715987704921457069355115608424996972736696294475691635978678775597154718911243183130982491678198191983288962776023078775413576619223821252320809262025652890558521650034025536333447110678559324651361497097426437076309164518605187693440726758534671188987766122775010843471329669268393451105718206994036688675923986084090410528678693750381252013234569632719940985980245431882834748908688954022760097557208101026751475199756322128596591625864788096236958029542835369123953743643450080163519661616602410269038172738582154936864831290851892360195472569220488835074553497205151894520402532874459438686935699211409722318121323907453796137451145931536747629584044966625663085556543867981665372962685828164608962826865166417659212294844652046404828769493508958606454444913000932848313652804009871831000958234281630529164848651907200928798548552874147488717479022656188082935002418526001804532557872090464227566287850649784640855893419881973607861840241087193517318607753613687125730182690139092883375271369210499246520561959605040583279408893858062530554917563402087229395113254858500464896587683648933042450249910015018397183033551024183494311061003128937581874479251959983693192723444580175236907407579896976030914983613118732869517303196570315351170995830724861991457372101592390604629228979605916361266836674924235701118866436226152189197401465409793707601496905762265950842489210419132008055167962416974376357209529024965008201478271077068765548332433702753092717197057276692834596450525995480479478226088260276403876494157228185654265363840826903789449585291099615331682504225927445776115129123032105822575471545586262417281848394230441358952449998339360722697114270489208873009001721941266690785775943587498486138193638470168327778232189610145517494631898316752841641027883091317001227791158362936870406909363264050399551966998863135755684086326503554868758952588592572185739116609362375950959348483074464653259589965939341325012038016524103536339397085811332984555447618263203105720534468977913687379510649771923404954134972571513197751712239816266973634766163118553917021235650391447764749710065080525406561258692270625222462453484189256583607254306484777204626505302529300950068682848519907366836953510062874898077424838178038113591808089539223991288957447218298465952384011169239275580978935007880563338629327440360040725891799766444498549679973596669187523333610498912105077913920379251244647415630488061534046992115938320945555682245285431311610670644561799222373581091166916412500849318363586640485204866727651919941532182663826615430210139664993105161239986941417878183974947539388899355306428122507408299811430188392300906816503474298201146567150540283147005499340940784484986281672528020975335071258990107589415005877936890473952464392556762220296276083248724020811691060993625289402662560847840469927551086189074623004718373131816478593115622302651493725102998263680942222107485625532085618796633838079394455792147117982845892425170845531382386752590601424576990415412648059957968222911176711524902019022724290997213049482870891605366505191734349131162498827248408565638783006157500413159440357159019104706647245685512525210269296684375866674477283414124746128006873108511877311747438829827366325193329801771457246732018973160606297455484193995018983111004603499604043327457245603016322184848717046673861059788391593313477589381885417650988959115061465307489024763734497249295725723782854228497181483615523116524347331195823901326058070411871433078838720419607842830403904717172963842617421070636315216744875261649877660992798609806381040907482726819575115503525094073693451645158245519080920880403899486123519433443677511412429012773707490407852139510886083753967061554400833576667442269448799431997789352582514368101227887531260967287821563819767795744407249345896343621070165694250198989022045429490379365128880226744968158197853019609857031409290566833096083626627234888690174210395284111018332844020065489892764696580334268296797390758238917956434903805726645559610137132351222453465982520043393428837906824156881262199300864890173082463588023029755833792505002402185492654559514325014537965767839723375993637372484278438343728585168160111122296524472112987196497075808865975662025476002017063103752209335260822248331009963817252230907101524900537450745174187275176636829910402811768625956244029907158164478837600982172794993941543440029625570773059835752663107096622628853971989587775539145319623047929791575609878577065890076604099493250303330580212639772720793487952240851469225891473696848378235084828346017395640109681093999392778478566404894805780674650863495987537385853299322238997834969560900109605921500462236216965531995665392322327165416716182377001802708714623366461777353582996231960213141263408927283212349166453309779967476400970580608045727209522290613458394449369276988809896733068576773384670028073624078594167822680901586277071965739688858193071377777956130096741488263764672920029563003395189365982254788595011605569044374706226053891900506300570665592835320702111783414789187048939576676547380708848884064878201221596138502705864284450677423803130396030688391109618651364018070372059711131291349595043701060571754963505405857601929735726696723925474027971509359279829267524259050652806113446753390318548889420263546415550032546723814272986277736422952563265182893295643173155477010578338200447126436088259214799155327071906895481623478242341685238395587358660190142803734466838445331849139767978740430792868455494430362283923231966304571668992085011213874317214130976793835440249671581422205180545466673181472551884923004453107742365339841245535243152140436594339855189368330581203608216238161666032241039373693792906034964192764133290239517820765351505452848139535669182282183179979040092011179650335835767626707759127445624844117265153995337247902013636394218366558793673218662122876119726449983051282657467340981681697839657751516159846013131137519612002940115487737427489350108783914849022024994163309901606626310652799781544109015561639735570272855939069537452962412359483191556683986199785577531658574956916656939030599648807814262566314032866899939708762375994494406647958470017958331076860243350186816378192842969759504707553972829738671688906148053923504786899411210186220695750346523274931020816834682521150147451249655430656947513539050511269103115087656084715500429521927023851133920074637079950887030833302939949018639058001214242998921145963588940608528231076441341041404444137481553107231867729247250630527860660198164104715336495343582947557470183172472849098123259350245155625398302653891075862629366108965440619864949323532245135060417142472727897032401747040103681012018240838123988599452356629548749824507733528186325590545129906093070155745164554778199840735678005055298077417877514501033515070474942865965221725229878419069549832903408660801252404271383794839261687786930146495083194497757615803967708808421128747534466726339300994706133349079460664523582516528791842302331973433651396093409136397518778937002519705522647275577584311261959397064413142565053027493435681310082970989883486891341895631765218803428340968732732701616604917381322194284254199125837372506792519991597295575302854884498589498426131010809396107274605047239956669386046864609045459960773338202502935834339688245988587695736054071445637885187292265329299697307337463122937654483803700989060095409980210513594431141630051617196128638226235094851623477968553358967267631045141090986174259963666830501667848228175509230508023193860680331432813151907036336345641480483476975215654955000049219902216091562016959431973645504100718578868887257574524223063260715954553866606418314140368526005281561419839471667259529078428520462564685267420360897018798622830927524130402752445082821238318472723985772371718999825143635206627782184383171123816019684017889269977043181765721086150938046102657377856960885391164166931879887422785533704146497777424819148075174378472422794964276655103063640622497757354229730204419971745831314433453953563230289028070866968189193603013998993333911584298917654533955688815690686311468881200374325394402905237211166141414051553584174559363328056816301242041208980538883123029515965627885992692848612578322328449928330993062866709796606991860766119793501420298057925426809042710220164374139389637636339307389968345477142778163432158588039712234145315573907949505458426930311759296696945646940504595380178108136010014489982904706494589241112415119000247897143676269726378209549824565756413290918368832605982212017726048377640111601863346211555289760904042881945537556245162937930978295901577013209032909742212526874283442000581207774152036270744113204543650985813792801948870401730001786225311306889279586275518536002770971909956182282166902165129753930787604096099760001905320485768319467468638901787277431713723192333715718157928684754499540666587122339718021664486294682288166852082883908114351923867944602938368962960731533349407388686410609759952924401911308787658576444922969950820452682872343459451510405858435676720521996751353246284261876052824132284883933092866395056288926067509072350746811617904781627197001127171763379203238979041010622630434617250993876563768204101198796393019575804011634865962413513768261723545028106537183456689295470822358675714414464670035487548865015791950998264720186599747293813286821874119754393527217738476099075737327861374081420261817152726443600258939014534501015293393237452703385457084114747283587518594642534232836482879042841747093013786004014955967494832810304150658412839687348521764977745034089117012777923386014219403890186679968646071279798438192001341101651275042065612212781329529054183087779257766918127549916540604839896554121669858339348547676870920897162885163727565377876854996097564180016290005244683914912736985918224426746150930526402464271453167878205522953717663952739894469382557957581242086869434524009494315067862665519838215436676277635549244498742345655710562192777722106352568619035484796306589314919488147196711743538064104525596414106214465200988326970389684284297933180607105858811617794462907248218399745864513391167431119275232350305726046214045798082100710890545005418745257510388779243651154343705214760261143375617419393075472036796906252809072952649487245591377173384316175602961086970205351130477756549655761435019064818335657397487732745288819850340985701407732176311070014371433272726640040934887072963610987018786075973383933666516730835463720960232396458807192978389982713309998909391100123732830685836873327517660765221009602067811778946999053285001460567451061890486714612738799139399886565218792541887777323168508056913769808780160358621647713926110564743522529697206959594287477865548548736896100106228966164558071452676034141196586434756401626114592803073970588352502076879746181411918401810242802889875163864672922568286492678084102504283610190911365935490909306275707938054423926313094773847064624401592877256171901086807177784079136102635252097799178605956424487559120835693261162212292947736653705027296282240345119935711870558926032009785940204677404452861890968283548138131560875584248888304622012212263311859796472043179410519144769093522783282058409026112398532295012201593742436162032029642795036342615574694544932302215190068611440789495713769856380674717056722905696229030188129092244994837903800688955938390399750394655790730921185158748304407841747813957729841456086987278544476526575313549687200265490112354001762791528228480377203885989989022736185512603736028991872307062482652828940905237107707249157096146839016784653271531503222808994811741671159610255836764776397163261135567682619440420611698302657799214754643794795822890171189583686120208377034653891721481645566934207162221942050622673011628173434025741927289493752471915139519984942663098833734856096866565972811474910842733615417441241297873455876136888919470858633818365096974022427084664816800627069469780445926893853638978034376374151283044371163158719823241566642747345954572550951238421223302826060877302254708775193268467828745970881500197019177240788384599119684132696834399806494438003424945810595136615611880621892340091288245534743512730052327495015307425357573458652751023788748211842217303503187167466137696316905571809538797275932317120998535491184575171408040208642427424313748272604623203573663511890658664444135613692384646103953025633777780925016713090773719394025220885313864125500095997324262079575829139194505434794181968549161145057390047499341281766466181372157747900780614006638961062799748528199562185630553573033449010636941570129723004123066201791414603613883327186536060668715232540333578375581662183663653720759400038817691052138188422245939110930262383409277413191621270184714264583565725576304006801632034833899507188124004488175567996602691197974629780183744220011875231749916036745380996599647412023580329072227801388427288864102914939980216904361392297536116508807715222787408551811362082072174495257620515428450044063161047102706749860068292929268379260131675087033381340066089951646820296223973068469189053461222001409083900767030962685153747067096772167743086718824763952985253753168276416668011009813503105511669931600601704720188725634358422525775137417390672086950378784989451697243215308944659407790819780701930015805897236000300711470447213782920220516266060412863831035536027960436071528914345788497332221828194009310034962895850086562901949432941137294839580778830823906472091298339844661928200441279509661712179646922840189540250210627677969412173197798810032915944877445012747514461529670282060076672815193812779603352116688312837157560803954091310421418423390538345911001247403340365096434528169470210066271867389110626480868401058304860514559074123935640497160516596082849290971684115797502392510379611313792768212111572686845858300940536373575150855219073724986052663531810604606854708084379910854650810544434489444936614999989850855372664358811520771314872780404312929943234561376490422478310217130000252642033396908562080833368474418163942005205939287275232888281713216835734453156568201284547669147176112700313357978634573967809299239957784920738334130739114177724156395030840690651367732262872399328312977904038355637720986381882589620887033773791542275991368700728820616482715743894201929652610137760029273225031522286861813585433508977169743991541919432960105846269579181494692208655086490838267342606702977688749827008466709688011060804446636586745325318191925250065059357836056779666644454928178614348691640984354588270910211223934365451656578972508092230634851987170260710177027908658031663983171317403328666703683824365208745659160158685868532390523794846612603692408456912660292457695131566765059150885831185196418445108306070609130756279177629898591939818728861494196541047700843626060563909035725289989479788775599972406342847649225055032768905885246672424159116542119825875266716141391852901846634170512259945707852872631278451187744960383717085581840972553267131159088220564345878035900980094714088915707957175082914219493388855077761890069154269836134745559530135994480820405637019253239499988570407749091414000288582570669887991389721315544557058539312676483464482913918237061403283274639766604658777703941302010447516689160647909952053346145040412268636775663941390692762903146618194287846819256681489922372183217066427884137363916149337576357396626769925404936626500163054482741549490040508980801132304466085186606388378779168557027076091124976977747647916368115400903316707937767890930628782065050132096967759572786025498146369856962794574229926786748962744372506824636335440686641735394991106322264489761565882458390116484085029568576803237166103205069376598265559703928209443095048199201941353951279850636079432275778492420806124004190360742294264373134526882676945799736900013628508028495090298778062720511171397118741081964049921629811103464851638812271694180259502710135560666706249849629402272031360003867079324232597856420289625647299125677654241997816109004658171152887632655422062537765068935225127646373155238738010733415194752414050383352126127221881865049671495661765502228331571864044556062436915479719075496032122637806162117526563942102056766048684458782104574805164655736399067947630822768732791843658777400634947263959301014287757960425751753274105021449223476125394675112575745366863231808498331555660483694761384762981627309499445213605859559536698855573883238369331319841582518498822777457598458769128668437735120290968016665781418015466653358284648649606610013900782090936647093916158641390982530890857698804052616867164144284490860270148291053890764004177976181425257242696118390251194479699327652277600885967082857007176056403985424184798373288972156986229275141010269491672518145325913561781876892581872933594100484531500459589724206862895919883594158232870199854621729519580249793386660324327388063967925032636001733873499858496738294274019433119903321889193766717734014918425210716982100131214421775805290954345392414093668967890462881293255251155614039680575567597780555469888783278163651106549284183976475002653520287731840615824452808786568060742927138415069853777805406946369873610718035752561202941333127591983134816952856279536661272801910946894028839666562537602847355007641365493061627171813768966028376005374336763195379001612595005550507826353029641826415650338817376460251686158334381687020392519016729491872564183206932613071411641132654476745592754173834632475496096670537516937785023964154445575533053269486842606896015076129985857623496365966057655278479542185116009527656648888088328915723150527323154949011084840648210887256577272911131590414196001094598717651559463107819241122996933447445036760026100212159373933248470690035237758505570021164200158446422277585390684713182212229131830694727476781153432168401173387606420265051113751815403399996739873590395283951237596996473955359108755469889710513848794144699091226263112294697959428242168461512321656226959325008763196215767962329667889010308499156583383344714654023113836442667867600586308534034784673488146068293502552128842033392966342187080905125650949678831608459829680881249305484702637365950953638036814503070727680254092507339715411706032170802447890072526762731828353103830687732996253046346209572319250082461230393591394932698836930605117080044760927556327208463916285107052753997703689334561112773600910289954500028833575465862148585833602513569597565359688609000298821081842707710560120317077698041369801762888496821796611794419373070696210285973398719974205804582164388323665598242843466694722855606195311751324214905277491991851807551703370238139629213999688335939760574931198981327298586808899232904202387950795772887536528825925257772407605646494189186072843683747234833353632323712600311665079545039446389115119956088388715509121645019376015646027390207287380953036828788981373897913181502751575934305938578770878609550052016210594042987592370285771642275904781150434503414476812112053956118503395384276841231762736642212217182168935900923317368060383490290381004130907571812344050567439315929355123652720613776603938060735085931095623014987837133173010087385064649153218287938336892539192796915783593761886244289265620812212447240821959307662434418590546226110760055581034346037497772462259288909533928710700341768653545386052149665297389257656026181644324826288152657265047160539216833214573683939370716190217001301067968685292755537127832648045226261660143131149282227912039903964985381757123695220718414236058895315889494914062062561568791283431899569896894606121128222340539167424382189717391401817072742765027838574676611186811703134758064899001244604706744762345717099816244426742847921546759083828658903552259294755011846933499593957545201029240633490551317111767315456821648184853652639029018552170932840854108137586402540508121745746819608417336230658131642591831963473656442227468785558245135178610369010179814461155368245069533365597112293644594146318471605736324088503301695532359868305645264499810053379890185547506620847821831949775168812229499351199175833117656698385097431127110106312093514166750283174507243292268833266746821644647165345834630559301414126545379414400682971934299421543754449314361597699988739865410240473209961709330929957868932427601247044236572604473512086670330777375673783467165642764824910491289222737210169232835192051021116259334866467259552168375745928338581764896797133648180922798837841806230615479043749297460861805575008923183585281436179233932992325095392851737561866937692118137755574687006960329324493652943837265664465169462064788816177052517315903856768367550167200762850011561299105011055308360774085520914386892558555947039153637750587089424801556180119440537769501220399036546681575050290087836172641817595837680847418105673401058671695396161447358897972424787179635897292182749848051757279685030301427709374679565976665192975298070077514767326113594591502209986759209095093552548591985628720926289222932340467228886549340387133165397430398417782001777871848257638006554444154874762356267850057795232272669878340122060493367164873753433764573996864695645518574443608712854521309242761282487517369885751034617614991457358602835950633383991292629811554296544140507151040086330295153213694954024642244956331086254976604578850028708438478270550331746374399688507338986064655101416853376945460746799042453245801596545501630521706597064059348439135182162725477153668414368203368724490962397575806188856906369414617568909468696358799189383408777073008100363352528956747910951384438097705231372700256548965046399407561790206940624560470264450214692767486532109499117073059210035882953835540876422883394030397633747777671442961657607424008110137013656909343894514658659612578354253478001887672272435479189580788875706765230886338149589462934223922901572079168833960382848577123052951937457169515603197018743493119266263172072539745095122414329018161048176917368262208244545877601647196598022510619799696337223346933494582308896821271661302261673377103864648684854063646633107361351998172153948907887669568610818313196141229503544091797595874445758698721796943431845387147734964642170721430311354581818695396678885401870799717747758144468821951015403824397804963960760747367233215278729703200649708540899080901530606355211884309163165326593456399357742893927263338640290926252444580819662543128333793357675439584239972558644527702874644394490526649801220131667905150205068080438056550567019874249919874757869821694876894061388712086951933880756345623800167195574391204022141709069992596181772331730327543145974708006991471486464533462936426810791438183711102252888178675854150895971059907959214441390143956954945661543027635267178036867483477679700983965396302115324729279056992812940836186165900225345320635834716518198971543213136976780375839131193648201860236476999161147880537367436647905534981033671527524400133286889312610152834188721194233082374192058428293437397662819208587584901071804853623695639610070644136500613323704073785888487316268566282599659180261887824827901143985413842556453781637151623069459303418730550096524746853493005017248569011797021307258670501190948469269505740833566946530109545407402035081207891484317360375715279638379813842233833587751514915407322918907127833761956944241899317518709380604411869736259033155580954298138246708305156813411509959332262601004663851081146426287767843544089713375504199206776910031989349804329606852270381183073123979737009457080237325097173158337750504623899638411063868833973187670298643584370573594426998670635274465887540189491085277314227705403484440709544789853305613649784909207712614223228364341409782440986853615245389263756083697750480240197095294327868329378131568142425547187105835445157569917222631903375626097434238637039328043630571658600882642487034425239655124336856297741836163666182326059907563059587980322353392790880034982936831232640979023030008582111851842997933659533373210899858845133213380897781460896112007772725669897236716504021415690731138068645687157638486844574416124756367923592311368624694617556198349553551648857768624850819490606634485087950444036946752500325744055826998104264148460272499400835530124428074169441081810349376729754735310249423830305753781731786184683588927205566053014324824516348130020966489772309757735381634134347339837141153129322841465618437046537835241500724054212749857965149148795877637291527918334570881171135903363275662529304251299294011897655312122032094281216601741634461263942368155409792130767889150001613118628090627752658419193584386210140625999625699941019107775614933747383420667394200351350744683764647385993243651094003217774286952225955928592330379061355016519732182996287468389958793604019193360771202963194627540803271915182797166248895025241800943188475857238653542243900877306604088261048491431529546780655903088798156848165358418818763879757458104464540813643068853913181967014661008649366158381530396216324864549759525319380950397795799288552322345447534769699235303318115248872818586901970335771919643917234067163469683566440169584152887370581452392635093453167074997495386021083979111289871881207286589873948840952997467048905352166649662801417328902800836296078054849464325789241343624486129770750503334688957481674070845263995981448572870598379001440972665916556553715758219270590261974862787200051753330923596028481502777277783581240529399337413101631037580664186678096604370178075229624005373667369228022288411557039053567279536948009333561342316270083013780999380588509399209741847278189231269249350440727140959940207096766719907500372512632901999505357653918384710367964691617751248664023874037103175677589107425443900528204297227324755763295471594382321645648623722492658031918510411398341745790424343317493779501274507873717191583095370010460700367911230393238943950632836808143359679492087401292157108549670998983101992710899304038203222889229724431749484167400030110579736993120680367949525175604238071598035003507988204511821899512769047718554265792174984758821723400218810375735559283433116863072217299882552656045262860926743478464824957160896245263659796999038431422435701330836283367116877763540408939358219913233163765285761737109416696148848792690469263528188142854336951459181206205219691608320371051726571751448671840304991630599979719153232894769847319221025281824120488693110511550411812992410437791631153827377478383825408259432276185596886135075878481701148649854548148824306411216056080080463865225754120618131109613381742747474080628360697109214384887567740008529864564043249552653066748484214368582394938885027042821708053651923261654920651731211039988405627916688963976373651741745617453115028664452530288889226935911664641850310452889383743573871684160847507908836792289861962995760694237566091516841748452687298208525992246738027339715923719524191433616093169921618656689185182450969315055122370607453885763039760540764001969248479127640475283977031911428350077122791827552131772859974728986166368996583087486288746543558308468257097036896385829249753896564957217607184923235368170957350012295437372014803440503344159937773268214837834885300244780729459646488999565104538645677436861251547961904608845049194388817909917014709760310737091282693825528984124553550461715860639030736507405431746404505480909088535952962159873611556116964611096883852045928587162542486405503796777487128872467749559295641878286940677093979847722744804474794829648830460920047491884110574597832867791691470552830003353566739211472307220689073091130698593164565763248664374446562686539571069578347183133349708969789983313565763815109538847794480683852733100387231618166523839965371890707750814082624118439739804710456738959394528753265324627238693857002943758507203042565114270383334105673853126466538496660295708799155143581526333187105334992630253901769238898904624873361602385099109140876153084056840778783399601476404634154745355933924413719724668727304355893077362773919705403426783311089052300570387706398995800624509015533183255820721154370277547411243324728923016774574086025717739678434285548509487671778043726865672595639750537247307494360157379581273806327814601704347382900559541710062530767119463291413418909920049541535404043892799330074117038537095641357777986852789380500337650148014781708744568924554274790056116728954367665367952292767149690973663397394212451407183296472404220822390773075853476315641425954036149472227034176605045306908381744855732080930613027993791795507153122394568090391788256545884120584452568031628875503598707242597695769045161088835303963822875587519451334829445993365818582528771896438709740247063477504942878323907544020914259485428200577176704351491949318613804305318022392670552302889717680761445462105265100469279563007732077122484955063533133855680043148086242753361353853858672762436112068260869891752763821156157394721479378477649242840950078979503117399427966347621652178425137682155855200215002475609550691388735256894733216294312566619732807490385306030677648940175392309472060626890518900185306969383952011422350890644672589574843945502668270991304861160007061608053130647339904879777701298939240346596370362616458676954362190312268179857292379622599569376144852172166908238130703873286435526145566874189987591029945189497117203952889540521575231992106019333759715123441753120069150610263200769100636453923529328587824202464675196507711705948476259122720973334654341029786956223627440174657376595920850605415084479676565722585366918752388996122391729580411806874509083428792418736628906183149848134410045461488870217084533590529256720513144126508853264411152002318622743234930426317488172631145549090554354361736157184549293072589251918397939216339237731493034835149267458040227838579219524952461200267480846027431269640109449109890696686209188789003121939881813977005278712409625955291920872067137241380156919470579955704221954164874097030064019984034567313988000031821278416995662515417650855167573406926246608688648688398231977746938839013513930583205068716261263458519909712447345618914162411049311849082792699860448642148267635509320596075189205367532716105336440046906690306001638191267021423874106790956978124771750119789784525648065932097360554228057154935481777796282396023145179863459422600891788092455941643673032865529403052356580359297944118750699561436900077672228000040099921345074704990324078858896351267130000535204891913153544574961533937982021397019162857765166006901925076900116530091795630998702281317996792360931227243703109092512084893254108918157885732677672665118554924605527763007754521036430745911548856493254351768194305627581398462971613545363467281549785834325593946835124937153857824317434174923534365544275675816166710010651489311891339285682705889263043565783236244920763873726194900556955584573755228536409733374584887582867290170337376922749917311255111025810013851867025451772387717017053300552486965903394168394319762542344068865834429019601028335355019784292972063361821044694475092319117390378200791759473407873780882092049390280504225530490563891101973383351070494762192594905166604519941072188205325341039675122613693010029312643265915289991907286437003815858750677200413747543431583470483981333140071315644336310399795901908228049917194505285306456734120196083590602003627239732117281714064819745012851639699540828285645229222022363153973159749727603890974044118026686670391710677036595291399173265893595154169200091960775372332759107390050202235970015094999738978795535369696409143428252165434487726781090700477945506149315810999583586371814325534440416499206213472104623920574064349777270582407380558983217776003104353245910138243717775880796893914327814583751710154570258051219789192919955191867041519188715806968888353049309947341679454491494218118870562187456412823202004106362278251146339672647630695507490043592733357698835460666118746753176140218632356045059653597446416036967284160306241764523734707933623950051583501307176790963254943754770611001778475323789096970214230017456580971300779398874527704725567757685990584383246973917221890655135948211838058630358628891059164006387125750117045285875601750605975005820825644894681552796225889438467123661069135783303353342387118304592971649300168819061063875161141819625387201863437653420144016127677109868244323823841016020569522593521820481703667594662683895618645064973266543684451255490217097392812752142592238679270584469611238539293163977512076921802083324222725630176866643362033601885325003846567392226900099717801472063619649301655430744955007441058352912430943143226639568625195220358122399035105242968064402374998436499555953717308801972733452911073924977690300474581643428465387893356639708328047487312155245302700267349355146929720526024026790907012227866580729450452423333146130631722368232113896395356428538416901331895129132926828228871795277949448180507414189574429141561128800811186433729737700984438011311128905232731938945875997846830974829759335724408715304125332459689795144576631563775855756353997798590571853022054498514144419707033228541556415077083422296315386355556276930895545223178456236252791550457785934932167676958742271640923027909891795826629593876787189236833538100290368836200867483068776373371293990436747860333401151890947533788873143646731583822039644144090960741010471299247685489413446276731964540358431332472847817444041001182595837076735738336207569899486782493170237821544732965596234679311913801197965263613661925803739001022813017817125987750298107617232535282891694949864912725156374961627159147274310540780194343400998283417145309885920522718254505851525038712215488232633530885445154073453669294939853785206288638509304345597119734198226523918345458392088350520499858185558934721925473046515230275198788152060372210322342761982567529288079742463327080095923714754186549011673705140074182382134700553815637351574515973503639907670900205463846515020592344734136759888431766501540993981154464770060482627442140681333701626190397822935017472498183089361365739913399083898903394830473236423139377908848643636253145572871910639941650571253779928329679975125047256433734182075717706123578799710415525058409775058319206951718938695242645889256510406563205411853445091692881426778244732130946558963597157270308810183879689262692522913968684191514226825689212647123311217615195904492408202310044953009225187304503006986402599488347702504077026387260421454778561390343934964188088277726824242084916888014844678770060949611135589525745446483727963475152919839066577580852624352687852519843955178618373842174252093686734747662896417775291019494256039882423911284168235444550450673108938382352961624651056944211287128224190018352860018763481110156541947297923177148837962662879147909991069848943610740171481502889037303732951145019100963312034824746775853201492140406315493852270740083319936744263589877323617601189276263314706130110553126227541948517083256855021006442390076805678356527420829504287701260761857879980365937397061502000134490159522634649968858915162238362591456134084175842794237256525335176936420733019613512308257979436551742292589852033990587929291986931451828838693749671956997541261395757277264839076348120464144811183070349274223118573141653384349888294400759332705481989527634478562045176844568411944248332601105737780605416888973551434476671811262306355978002726884285699583438459972991728397952240406461691261432216460423832777100730672368301609345182353285741911943804126365457829160505205061846901873640775613873710571093982565748289268616418392506502572541634814548807410672497122836224342110241964623221155701426291799440348454928571260922902477172776419111950852760793647839446887759610984121239014175152452876101787127726408468907140526447092056143076777601344434215849161346218511572686350274520402320442549385821112155697643482664787161305872923931718151212960639539395122813138754250525145949833143343539893336180101493256779214230680584436068160761627317295071653314280340028187563148732716356221878418103872774103224082834036558806575931240416397761451877910633401040967066779855031180665055507275675756325565756993473831439072032379565110093543975691652476216592855866216246975803916811878953119208622796233508024737552185680267395843568017930640884046659216952375267310826357229651105667362141809610957685759100549291837812779316118765584983061902137006320125282136610271132936796044892007317458646079324088223040776252130825656000967057579827569901376139315391873300625533667210132234927961196409166039608611547970483142918288564337830856074352560692077749477817942528438232198364214044499809724102466610956681144539716351304791373410503418213243743729769454680608770594926940129727234297186755288154890419353725000218972185825017989374995998820298955902721401560183205229933396067314657148394415545190366495064974764141870153500057055820711178459319055616552882679207336591483302149440978192806617294021760927260545906340695798047495304755232849470274507255324017568616554182850747054931107541957937166934003869805460392381499121823554134353953281763595087504266656444589307611185928232459415800775987703492869605655205965147652332508807837653466397884482560634300413113015158504907394348710959314936285924683857409990842622135122499035268947394214403867049629053974130898277257805728543199804139477473148951425948220920529668193730861774693565270311528391764114982104923571508054853658280891494072409127467073688020167647819799089995740933220093763886559182233188429271739875028397639384527076736541274577551008136531934313313927731841959389176032347708198030834332621782329062595082786133698569912229767470865193686230403776308234783866164309942899025734341113372705801644580581420036832749864896043426735377867073047307118718140770799083932139939026327177946532535280362700592906833368696774474336214567739141558915068069553389939134595916109539082545385101675219216219892543603841827042959505485094458473061054189935268395607552142719809247610448163847182743204216236352629640077864144571007653562001923697598848491336912597664046993791610144529241515001693711140523783602363838611107520475601232624349601134494895121048907410390869127715678468274783358309608136781195523372147699083466618263911101054239315617177472145715863347728227666829888163848783796773982134603614612380138499703711820008063703456820602183938772611266009757692891826454626807890730081232706706802912753100147872319782327491513912155187266824751338423623265283754744962392625574526771061745145585070748070916196804334352423189971739487553531787022882481046893964460496978500381044662127124341323163202939244784115713224605134664937211779104587258782509282654063775692368335314102156712234106087833366406195227568227918423030568013019894399103458785577846669123527713572921282062544845720496138118138562347527962837179743912201016658725254202821284642516893823110869328673993382727275907014713867108262947965682472603837239744666324153604036321128575617739502838999822637096302697986766790711667115760644909830225670139113458374636274989782722738028968580876149971355470529634585410443808096449687912168862116204706428381093401769018343530411982776268664931058995361405270253654728548163854569755651597532654578960491398911140040905196417784800242614216397521857676548338599067963990094255047529777505961921210616118653692261755575488518851923553696735272543314100849921850841131285915882060416773607251952286582799696857668471621989320895129886695455213531923937582123428121362330729352698511569461057217460361865761486408324009151906904356900818590919019518169627070698102523393906898498884562762199212345056674022495925014609950535818155512951682090992538944643360143087740822030667345560993361593691085090525138222628596558861734689684627794213334893758325802341647760355419819734026281968535372672303326162161781810794430423523019479469928390781340100020839567611907506002418399835438827794315783221745068953732805973474443567754124054822621370061131022875131342637411474384783500011860806438403906501653182848543265889898546077605144403304348938925356864776213442860337822366933835598582844182048895428303402580320721934168332483491713306132536543942510143316525077608296975326111422326641891067097552236659846993484196880022683397809819492080760970871276025529837338481639927020140085563753679839143542870318173367315457333596593334992489451838158372958567414362107329533002922597867679354701524876770914085350116458731441353614282165135910822797355502578040589962162975786902061277958031942980242867692520208635005734205712414693817810644091772609507729432164970822044375671920207156770161154782605179483969194682317746232116052125102953132903029754817273029226555526060674891508374121421206860491559397269929892291631824671736407368411769620577545437659672268949845243898921482084998703928364527192989776835233093373858100375688292399433083835373249612852812187203976584636758458097887506790787444448339522788920084585688627374658128686202211222346328009539136957051239866752785003017211877832477157086941246466375070352029313406051090339196320852757274177894220133180074140040618594636959460096141193462204061037981498771229101351580360001595423534260185870020847018587815388434292545404835871042436269829559386880269537914388477125790246128200273856635860247998240165430541730987338795303885088148593648930409532954059979989469397268008512785575977450561170910862168059616466627723853231109306051421170528075061447694903861610804771951912397138473255790249603007343085894462246040127466745740150904648194512821475005678277718326075916575798691187438499526579091411197982245485911164715070933030767484923308613145560120877273086733755456738400732962107030013206975185335928237770399507559665428440123371366806223818696618239058304145518476675060832994199895909798381794889147852390062635363837440870363867371870432295407750085883701600566782706396822308763980446310898592063859031119910324613335719939709712266863555195791611873399411186380447042570122468096092219755479681252849763386604415128407275927241877597265130245044749278093716186137799994408749232828617484329577733893139075789091458372522853207196608075088604468378446725508721141995758288059392213287774433489699490995876077142037152186178756651063733892769809784200926415741498837080301353109341022583454811387635010783677810778266200909968473004345403578764855660900202148246303171454684265935981519769307851499927039197154612992593105547357845391926377426574615206241488710452683870753560033699803275164153477188907050808562154678077790773092987116733395693636410166962262710255796627195623465426626387222778651656811886397732055531051414186611393807599392552061087689050786647395931780534680545521790902447301496235281428138547185711714928841092458626032161826500118462563004506432356963291081759579606959067539511065071443357255996647544857855017388633477800264139482482842575312312724648217338697871961173748664661256504584071677440705630982445960955546159369606917134094939051230206494135628664258353464482015006218559945071698105815671277833027178300666775434172116439182807862147040393340441077857296313072836848876701021849842015193197008280988959957004127279665885741466891517252873666582287007425892642942423845535391524068541508971496160357479395815442073259158064314595064774819877813750734891727810750513380135392443438319653015943785542232024942458831500892145867790150572626506134487779910353021582920142758943294056326428429074055310107833826802210397981308490673856377004345837965211946544261888236869205798793941107820243152514470877320093644708988876517713185609431515232826765657376857466956014574280964333196979234246868680484843967856775058356356006925089913267069028782742924081177856831935435834723048516921903081533277597998376638779427769910421877900793870040526905750854601425862815569482456539977063495003662546159349762833217384147350298060464810072825733495532054570554302155848727181041015500519201459724809751190992348435299043406516617376384452960418043673494155131451582369864030035406753631735641988227329423160668011894165497891376563998207480186303250980806819233958757456056929062811011240932127713259851572134990061439499829196414101066062873543059292042252131256665835187966510651599801679429895479291844508774329261447186155032060056299385330602144745441486432432922486148019697093974918703887584447472172871835794384900524841642588086778103494314595648639330967390547364168394107266896100822509942493302293359956011242382307377178620036275016166415512881480303644176496978553181000462384143794908542956261758088481733303993294436616175278801903059461892853834888470201176313108471844034944731740299566601982485142481578738659858291775576337359331428934445523417657999748023494883962438160002708888034288810565633267587217334013130700727034060658663843757943847676691618160205940917672896343107941177578494564831972703187306884856660828049941409399162988961571191462273133701074917666222290119437797377784714734767146416640303029488863816902902305408720855794610976245943281951938759520505735513612443578647480097993968612686265011836362346306736369816330073598082755889525202589432444977674960919957297801452230724660049281161888397653409227228662603757372427902093269569889196051662779445660287481247952234779524182932515073796589859116933033757605453891957772476194509600677778883227870152197379153940030285918773406093303059560158629950980433927895318281739146410515963841291855198927663800260413710299357010989525870273933716445970251170038229739906051871081168485170290088052640496693649989955818864291759480207044126199369104002373583752847533120721929514463376012328492103396496811746286445969306177506679613689006427124080317514022728220916845477499857026159234454871149477830993472516449620096319485088902072297643499107313454002640828634727502880938639750423278824057804746183231375690830825386806254969230280973381163309629528504748410126502060715872651970932003080934878782437912748301656675013918058921862561990953001852999740353487726532772378335747862141787582448301617514406871750113580549568790846992096450310291164843444657898296258137909026807857303994071969910952429240707868764863006211358081255077589872529637099670911760999643478294208880787591045573882638962109618820982250029489183214293041045628019332448617368538416787459798340581889629850513577325351818146215755310484893446498652517234045426598305279060780173811656886388849017807995831275141263426718969421852589116133693334962838774609073797284328722966457951024625234730917631659800317776782107413508018419356717567064514615344299718367521246443643570340498790832889929981033325464322361587751742943794586780766794659547739121845280083564064962861697623705957650422795198418663812409166810062505423348036335673732852777284049184904264567909795758122990232058303712217934368120159876515945177828471479908888075088440951614712893394556225851229728147537469994446362268819244362228708970270068503868597843173365680536795123560481576328779219893070058918499397747310367013638453693634694742030607968171841353870613723256663656704475234321061401916732709556010124616750153116672885038512051300475662249274143325338186862896714668030226731678781970025699476549770769212109982089325517423180250100500155283016071634046291537266901975759736422834470778918420143074617464252841508562063866275572306216974156274951473662117735520317871684538047870714480389757520071128928594394351492967929860977663383236576156185859760565515600586234575921733470485478814602898590436167339509050315637235897473108664747753168703009495533984828540429019810943322539610637573995454337487047686494655065539401687344394639426370976546783796715260430723487300473237096280222272046178594309572328607646694668842303244744658135643300253734448424003669848142545723945251598605278982033401633029959040675723391021083217091012049060996661547888541828816868257460789102896290671679086827104509629879395240122872013266535316299087301473552612654139249432063471067090971474398631258969035238057163186292197630636146187552542150986318824094371618798800138200735441682511044038117216985141323522957162321295956239062651306887532754321524518501428437647083361716259402587427186209979735542674528849736306898329049436865498081661673488757553293275940655698316687825207446527383880194070324566476566689902082195873174734765315437328356743487965477999358541810931645691659718355885107467902918459888907434001424731820219880567052750208910034410312148476215717067113697279171971711046362002355025881417666321724961111612416890624803480375913966034248793808474674410238959653182979720709634751167695591184002140644841220446439593228448764126924898958727672667237257558650837394545075277577394294831128458825046918302186409103411639318115404959675112968832920591666801319209303611332532024825221673584538686611200001541044948509121877553548679011291310975737473686579863800321722819274315115068684027382320570909770633857344776921209802798627958679336975385062875535382849160100806947777591628447432959667574227350309909723783007460009442845252017377860351083686737782659860159389583480597841290610264830944353567284571529890436845883724927701086985225992164836299180468164862750585800233464645882804155086746956315061692063404654425795149054872210505735767135313877707305057215620565586444299278241461705910775183907692438483539215989893093666648970032841312284976817197358284752045587045423867158669053103784092003528769999870498620295579363701582644780567182525502413968406873192129696725196373294162007129891562486211564187034333187528081172880956567392454610899760150459695342961805055524578117068966494157359528624314668209066151727010991934388488891453852042229735553515180183545918428090788587286270003629372904660865004453083730509058385872436534638936455575040240122333703870996699488281132906951433338368833483490900000072064602395767130407872434054858159629018141369836403987082439947844866873599158500110531647542379547868953405791076221980304558945119813430656815203082894665923769449023656448511709692645071761446586990970528591042891592386053158298487804360110557477837149855927864769689600844522467281815229850224466761077295551000690439861335298064977928830650864247588470120207230839477404487798468020513826653976912081780786995803417541199461058847451378259597999656099558338887579836817994244321123160673306731798779643433832024819250635168105946888440304240032469128652455717757711896821574815789086253985134489508955295460014548973610371906447440972855999982047041812302822317809519524972352593344015388968170900836148653833820457123158336617844134449832916662339855044729121510594045591015235697107405614661630689623056111662838446092044870874148180629531481215090039502471933261720650679166499512710487021029916258495373355546744729342746159541143719041122231225136308653739326031405653540345281499256910635437590609178012915872289127402081537967368083067384115503497026960634327329723975533917370334849664063033565995974623197855751620711844162398534930274709354212544162205971039883395853475486760668008591026088477047604340446789835501706824243601857698676928691369760837190341077482260064100043251377519384299024422341972835945444758898044034203418861796197090151962874470798336286252129873418132462330258579552665218427372325453643079571538121141952832181820999140461143821062610251427101286058204771290074115230326159836184284248863102268490883074884543085016243446749765960671581900905365581980448858257751781582203321460322214446473997769277518811314654454496686951451849710742006563129201854096977843322932598533524917868794849672428880900281161707951608306091650765667789654563538400089598641761029725522852443036616323540497116816777992905629139028714931492316249360177922329888879582504619896509571869175386513422895077155073616183383666372850297060654303194846529040660504363210442807311799451746520930389010254235097479597992385464178197490717455957100747146149804624374005445338740227529804610339298222475630882580813393450060322934509793948634764102635933760665251452478026889946083633434674364112169395133735132408287983626550614406536056050320337968350635892947804383474947377637811433268667724689167800943170758918677602537692205345525629136391711642561463981168165985420918210582287126377672137154125624714452958590696592243411398219415304054099073003101161921440404725754487994453337254629115071685277403064610052126164524495124247466601529509520590344851382365911142644659927365444633542649709221177534079073924415956309355383888073635088294036563431612011061312097664977260174001805656554092049297363636094232637849730660299354785515368092249061142808758573149499570636144594876049519027937063233108249329203183313920209109854759447826761335008178202386211852453554494814602292618585433179120228974033048539059420559112907212740157448733119061299745135274411553963078689506867008458422399048694532830560530469548688013206981871070386366482213860908227580262683689119511863395926577031916280393886136701830747461629970979873659018653805516962309721484375399639378959377990510915286287792435550568410117065278325804552796752322715460346520235809084831071978973995267131021860877863519981888747670630475538522981928101916947924012641951645418019618665976018633590553008591153913794354970073686613309808409803535338415644987146632791110467545747481869611647798538081826751119318098579819052169018176510483121661588413440050495915669309023747189127046729614185030304695331090030664373939354411706675258297196251367242834246446501969091359563887546688665631848654537959430137690920305216969717558950247070174123334878005434787570497804907897061162301676563603555373606011823327876100251647433371829985700091429714518391028580758853415197497990111630341026172382054368363818877356931851691632846184321796945208972458771238762655130116704811182298447813782125750167737052364251908579251868740992614555201668799457044832199244870985066468588802416468445386107651919022458961020201652613425424195542548116943866120160351364507039367157045790582928399381043991370260469252441004545362796731174232734729542180250106744078498856073595746429565946107349016969873313431455649892990664020872792181226772518738525990190746186619302084706710090115839247780797547613396339864505864563398005567630621250213161201904596954829189765032460298484202360661255313198318688178049036476345759783033973532545146696798978470045436928044867001014323815464640284749459195221496166294694703441551678169508635434795861373555529089097273627390736479757607800667560022109632123206419928018215290475766210808227463800973467235338872892972926745707656667403688442682582964116135810166661543046510812082420670803511145548494979462208185779842288137232147697351075619542783150089896321632367718735713935108455525555803558005744126754890698815850133911352704747380292905103763479751005916634329147178318317037176706824226276637171505761016028316241057209975286538875120791908942443648395788191665677032176584492372174672148611232789758244350520661182333473499389789116005137433482589502997817144349490538097462684619315037804362362740989567010457398117274279460760805725920090704741297697227485623112256061113795219076329922692973473488464171744035059215286967291302418836566208642980737399482152469026946444908500928843217018737004525530189587406632951864438093666182458984666781727885753587923044039082442757885114705798250331811922103358209720873620292274736989863071775813232388471506445381927377263110087352428631381820751485148614905427869174574233116896508378741552516533482843641227664575709703811831859456634831808655646925364256526642551821875210509377571511585040784967713257559822675849066337379665769648175578418867094611229591964459516283669919998589894109943616774126792041180037799460282039979931152546155375197323312174672530450265724459630235106873022219731764521598537646115862381983059511951349958937905291720081780229592839594107592439062640879762570299649995681464223634125986931236494844827866785016901764449429622030708399067686555142792762518392366955255070744297487068276724871081316941958151398897789234537987024308823744574017245677694530527782037069830208225616512711466705027367254190573892879336818901049742808070809987714248033254198594231590932636676628510691258521876034228455160423174841293381628378071283858918086117731789363490005125277609160730442392165059930099223240587527786044464551174464802815249890714270732187181879847095946344380586387033378639318732704557335055773940265818917545199674626106425275116091732091198963469402900731502925922743662390084584185564267320206253276189781027809936127235968374853740167066412218536863863152119531426912079462236859680238358905209931849968687553303663247073671071526379241628024578520302760114125247884680989162120006546675193753074230139122586770233516737244745296097911217293097675891916706180003782839327435895190416554583567229351493147705253457379749537291861724862976769245734104787071991146137791390857073538503552206515926823801866996049974470743749379965931983196222363275080353792741022899554666008934105035725568585492850034789750909397148367803562875280773517052859177576955569899559340768611594079797323472163349957420800382185300287266974140637336045128348072642458565254472523136936367970641489785011243454754424603121892332288361599542876955261809613214396581956116586314897272377753854010765531757445566319248933943908047965072389817323517962765675587877252662135172077549670471862584052952304887633334087114613334542463154322468346703790055236289964411515358223808521676524741675702606765471190391677603680134460740984291416326926354844198986561379582086974184140919203708155689296399048180853891880110433944515169282183528511475639268393986343032343646540110724316612347707706567474986806194190360709928505892532677014198730027700211195361999386213539818659728021817357739366359562245947754324373319793128621119320747650299145100350643521424463384946609370934818240031944065806699106190775838191506859257744312625090430753120863618024442525819901623870491077650791500601130032805945554318044468382058641083191074281748621444725368977318822443001012024156676410253925545372943062742244288984448522418836118253832588279368482380422290710797341304762060006062709431199136838788466299938299639152766592722748115822222254450972291578110977061605778273338781160883369527873581303927000228242515675411916329430040763554317408388959366020455627075408395625275576018943903967954973849919104791791170693749351378624595194276355630527725451148258253015627439097362559658207318752223345189131723347102625906809852597872169755420442043876145936342039507565005668040127454789815322609576286706175996084939903374277126151662739646702388575307824319868240430453576803708007673232208980255642960427661542195635365835396966453739609831027141939160795698944259746446498822860733541987459559507341537046910005631186453747095244050687056295319110404483256702428248803090346629382598408649572410646730956918298362587016397787167571543937027534780427677950986975898616739819588871510291846825031473041342965073001865310030701807936530574758098803303144319477312830169667600586776352229754556117608354377746058935660677084012203746836939598485077826715687131395021560815917214509282081780320356826917470813491723692783034917505955646531796716608171932457343391442224561973201151635402714923456716754014283922021945724426797621523722726629872165029271067260683978368836104356898914525221961932638047698495000112204786752794100043454090472478906501338190456418716412123428065774796202596146685007154791696230136694550381079298406829855487912807905990448520364526079131881322380112707330367497593456548728955575503928861518942234761419118115748655038579219437125171899746195483500418222253197984163794165180327510031234798873467142705027452638912479071840516273747485199559493306685903168645353472610615322419519928943628474538029090777515845073947648567615951777124803450297165373713901282807579824651782447132396008061026590422062585157554816778391296447853253073070670612969401392524152412789478493861380670196497908510318748178613866757811898968407628564755932025951186527776670167255956863543938136427712398457464375358645574037237744171501472187455781439254750540936253858150959224550746524411293663124383708582826629906203957361933089847554901647215884739976324237470429577510478181081040617216458243130712093294967487428580009278157007616108318194823994446757216664719604422869298018393422777684651817707722368456888292651913835858978736303523699872126225817078924303928811810640887385666474386173470463873627051013591169436902280188980939166060653812669642883866968687414802764910300747357136479336603349239530561415281783591440408301061492457999835674706553541782302134942622864152329156685211214216000333883653682020728354112738759473253623646618578496515020289245252984206718362479575384637393560702506041759987513855821368923249631476555516962636148538452651030736682911758762971579927332568473128338657970556102785146652139229524401900018807799142793769700465063467291563867233366826697487827350418251141913197869352215782762986978471025053969462435524511685960629959502033900724959187610385992039110760635762353149428911085752082291492879892070325080522894710358487557811861459209081158349269644480491199165886841968445956810991031706140722442005219830398049417397811900754605059387506864388473986784554628198803317270250342460893323013282140243978994539862023521265132701367942847247448745533076202313958596822561360167055632599805339250943532597597785367468048451220955864273618460295940368333167552449307155135086812701693661712148485402439334576170769219615144163702374611592823436117921420567848324091241059301900096673223157838430047862616770190038788316543169111621161404720123826684058616563824055921292541552220377659307504213242263478370630281460280497304095875545002853950985099192169733543957639822705650648490631509261616683338760485150646595126107119938950788293018499798309075439541853187432310507750644058336045033524679676268625590380827238965677846952981280235056906092005793615793013764175335398493775367836237196148571397159204955367173126198997001157037968976415296422876383922032317452244742324748745378085567265924166924896514691864347234344337367948008349586526307934018194247924145519451148439718675550497489091936600749636581840732392428993575540910406830966576939301150355751247844368866477637370677249591911364774419971669350719686556367186293509140526348490817319589794597035334333100627050666832990675744722189601093609411875900538206744562802206178790200061948505830032318262812045685955678709606661819266800854996303407092481840654151534660078582140027695929954452648422723856376863024901523143547703109708188891492559892221884577839729445714100617502666335188283480081966703478988077845595900515037392734475060913663805923816832080045111846267587772140773400787788923166081015477054645656412711671821730360281574921418127400312718343506354161274482419052023077923693465264117759319986451032730017340210980687835587187662522691003863081447167400622068766850465313449221139292521318429246498402464001176563349506054887641206295259902745130757349842860689005413947967932437915817611062373441742255562437271857534581768738664970955020901481611579458822055187841259859437794521734660913982092856709521676702472060933117938850459348477088817654853903408024929947146668553465614533030959727860332364610612824482193335543798197585770765199655871614921973370364056792999135868212227060675795761055232567874040319209758165133419963303903319737813624278742825847841208932020482642661634770809776040899261704457850440742057342613838016893611802250505907436313241808046295959561299839844689534568524160117952778792562674673985308948974558784478420609998786182855777346585962049780217753352988419645917770292190010888619615829362135589429953059550778704132176575129165809426279857378831836617035475684171448081925607630546700749959647876821841547947163298758608905292730050953463693632929225003348288753668502312195064246351440570987667115723150903657628726467548027439238133693919934686653937080343960020526763147613953511582921698500028347522733472218342630356734411580216809324383262910340327800928757719348054204065605767157768874777689611403698918725244217447665659824962873249910389139375608176984829847453065513296335738466157290723589275975911226723687213394528063994367456976959564519543394438265320893702993387403033453018307619482201970674752238800442395934853717982507578520542710954448013661626353193793129625559580329167920167264830368282579591018455659164679893668924085461378747504452757785497071983029937937787697470332128125890822996877055590137313036103587665086749114267667068479671985774511774069688454418228818268330454294416170771869040934070452799931741328439925394639000518955875802593827305686288153418902762887026544612129101441877226479596810473541779228941530258903440885611609382322949659111978590792381548808212582145590806723662294652661673049635950445498897709919123028438669367120426966881345893495772561116324951873257426572545266518669874544193063664708844479469065944583443399891194706406584608997085321508801754759143894946339520062045806778527899438161436854027551480690547650660569956053062124477124982192320639715354562632189358234643591150014694958182773670737614146500996640168780182549301952994937859337949857127419491131230070097162514713412452367710446439335135194139274800103557992318998311548628648929750234189667574338875227259754707604790191678112552393019435511003234780765619292185140871289625043746783787611467777261025230724954614100236389361186274053473327645421733205612700444971862797699359814514988106764884308480951209303400985331646893615877281737078442148691118089607359683941930075760820038239220951481073332179953238669768370015726961368239066167995701939625910120215916608485701676751497476061476360910084694105568435500059365249253536295011586396088186489635223018658157722176999381553530043241731432903854326611819336671757800143605955821254064764781684110320798233390650376134263155160501324962564437438723799493640743678781992918876433278009399665896933361908249240074739594578939446141452410634990739206859255626580232477881869396842925899997122431255405113116797881145035104853972680797720373559775043362335187047350409312556934126723368313309290828925667070239604617251755670130004600544226960704316505066357775917744300846116377012052962645793973901032362521691457067759614755710269924598866375175367677181124887922695760117459164008447368190166229438385550108603577142322736883170649262765168342388747174819403902009898990225344163313958158485461159176137888153031874751073113366134375413734444543909599603358005927758429205759510429784374896525376490819080254165805447736075745322881314465993019124186001208054713661692358534005186973330346591960935830458839396851152204965173511772382090408808175440768221389506991771336830705534896049076463327027165500727215515878970737076234694930612708225235328113126847874323009370594188523246583408708332321051362948896915430066735096460894575000836308431909254052261632318360062110569736551022988666130326121105012403529203367334434807371952419950341505683165433777550803542681357698581362714915875771568926134560770821810861592799098554979610618838321507397701793007158238051543369028803419936989457217102165259844887414983852841352961740541532088393009059177230620430485804195247702487507038578166015564182555596347394964544514798585221281841557343143179351667599296710109122790103947307872785656045923240408451504141119693594992903745123380186993909478380403706169785621549199988239074004255778111699892784666463448892488596374314175285328596119621889838155926791246331360890675056604678413259207460340946041818486411092203956855744158038885803151869213199414734403765742861624963391916194007812599234303646817072109506164426603636966816240868548353240296229649198780711715302532626307974391530582610125781742743259003712202322671147347919344355663647650786909905037634455929407683568290177157853977534032835295750922971031701256126758782681644152602500818072509252376398090635109781295945286557391388084140957944079834371863709822506377058954843374741166037558403442316604511449830530979425138622132716811419283686515179746289648360978129419886022642712888497402334408175539494661297512948251480900190463783564012536209691736462522432914785169324544466553295825361011657872224679570467071831170466882548209072278222693707580390333179040509546939534686157846458823128261627329613691074728235934008363487557199228123616735415548224758234637111210111953326195793950710594180039455290727133273303948914922529714938953061235011611737410917726346122150497944046007525281699327412405154287742905261395564063948834749012737161353772213337675413220822381131321033020622437269851173974636976298097749379535960559936037473908469218322593575564780001148758556804449197431111497818414660556397781928761501173936456592900382421184054354888872664092509089145506831325290655915978013612392159851725848591969663475631189876701887019522509095059337152659976572636011376743964617842576923566822988107137019068523769900254594515080279247771843518645434609537854762516847740365746980079883901993014800993056738631828732346057686078659132124033960889999761790976245302032924168487648096385774338721028565211870057550480585983301749071977934770694314582806367094746464462065708395741903621185283204861713550219824605920453436279453230703607043307628419008619767194548479837077690745757781205298906640896861188178038580789978565094071685924744780709464499204912674964591162025095313831246775958628080176040744665575275933590312903498214290044560365523993692670297511567042871142129053620651443963066907686875873187499617428369925183986404907684846303726168956472833283688386767396912790060207246982427467218993136334636233656236536915138318362952084704809206928307105067948887706716977601393548699860625146862440546254924450417766234592317019180977801003680719812850986327778720364449122467654213302043361975948135527554958030852319758212912346615713934191940915120906587269667279445881885422979533297747462597710723108208220263285895199289146614732548944295835475237668785635925474914576679076020219944204320942390674352953478517671877743099914711713050539232571684436849361728494179734527683116499912432942707857664400466229117237436924684328151933483712569274460047484323717810552589659952892053918251087399378300110975848674904735682408620366571980368604467123119324616985865155801385105080740979370215776577452951729531285923226574122784897121512106507091992519426583808594950904248757645905930386608292630399107800519762784034836858887106671894121127210958778573400329641697335003298550206273048424529019755238454508392545534354285715003017044928210033212144387509596524564138786445826932499316907742626824790875483861535098808480294548303450450271507160279074695846677279037923465236329602531593831676989854667777066729467328309192662247255618602631667305973200809681644661023535527122537711359768427833753255875569734823080296552162434717039432200332669981802149407488754983593072191464884723563005457292210915690745683999915919555444205959118030325744874027968475972998534369285192265216717202330002657061110446157732852490998789200326331044274051330334413131184985211063186867827706744359829364344429300266076855774701423614892673698965381823551290132663318916791252870121380215620883432484566886368706107883721631476993323293526098736986925236645464851240174669603460986729790125969674235455257919764262579486913630885523673634251927560244077646686471423057341291785569499295381419379338518105161933679770385418927798010946303996891340187472832245103198783765883030949959549611160994771592428976344193200427832540245525767817013101643745978814268065795926484310046857284990918973827914740842929726047124090135354374787008251836481618370805566853429504521891371918919302578961740891735612735231983874093688484422756078807803366455265152976232045426862082665009277649898241546759635249768204158856450449086498265608877106161819560543125095288779741460206191453317583795976701097531542919099556795950076947876413271156727262048236347927683255420705393877621475671235333751428408713105880733746072476982995362060101423085007426748925035077354701311945801240657914761089990140822679939165395832642726012628917396179733265988080787680166932696449570806755748359093644767079405142947333179876168331337347498439489522107058282474262023779220413815887627284699616565265648461289259860217708913223648170574216494926716631985009187053131200791026503816204625036483912356740196059340766444705064943520345039108410937955972844217079271512925565437320124040361982715879049968947463496721217363825070768933936250907924052670216711274075720857962441525274257013345584574331947957406657284068172083950195270458596329197242714720223937347234632734270745774942635914930110380991040955815117807152752888139183222704304521507847562594380694529284289340690172102184315816399002082372107498994371689186158254774090182276614230764326000751258160513738436377833671959008985705330074310728332735662175399143747344926332576936135805667142147966178416203317755108699816634452676333835782611969272465751029789124787833982682775555330811749784163103822110382970356969938033322637120341352285194755938160142338489365145919454683758630520343448003012129158610618800455003358743574236424062401997272626744200944675937712766154683772587408926170879017746522431030853393535972922504930814901107320081593008445807508182155955070799163389813249459678268660680607656444876790319566514034383209880348783839467911452734170689724088537612384586567628560833436230250472077516053689918467438786154529947729869635932877454003194358766122513955591477012109810569822450345085870597937888509079932065181569210171386513999573527398165796194007055554753003350255240677170343684670836319595286118578620227681073570534941573569397938353977491387455703165998759548571493976292161270379994288813184859742596206857906263830433756411510400096715010824336951473367137568803989378173604894381325951542319426831557110859941265579199984118897763312965537221507652943986117390316658532428708931555782087184383516718492873261158026488146171299090741941787838625897218337889034401967573424491693410935276463692647129330225555351390601210788066168749685933409860151010517490051780674599000962642133145067108850426463760536719308653236627030123375151587448273579145726195163799831650339093810679124795511448966328302500687340927784388102565374155870756003146492380580579078496574078901131168610895702749532978990367994282950263779578953204390886383129504921976017137044349728756415631162198555731526375790129962909998958521209013527673949162693194475111907583615870518941971968109658884773164722939052476133843868041323276970504293408703233330846061736397545804669985695010335014768980092052577518145120135945717263434337881125492687550524042213383930814361754449626228864431820671555792749984081892124955814764301090752937579315670303118675708684359892048516388324519946271145989617247032569500621837525859855470400060361148452355776317155847563957876075768259149077664453134616385905572490084599099025592728564112498987439071062439939473345520428298120513866381532973108083046629168777843661284335416635614511034943740813396441312534146742461568985016867225709187731453216462190139169897678548807968550011654980416146949113538824717557340401391549382485661325008427106876806184175088972155387248376334195620812053013378897122406991452847580182293272765163403219599725380454993878992333206226259940128780442099784490716410916590210755946313693408356791433487633625450067032789906467815299583819681469336894189009978856988715187077535411747314584899749268374936199375773258747198077075568707587317393433158071960484292740831239424264941898946383874425342337944493481439149122046681921488660890242077326435781820574572648357529495006522601057872211354178956679812137964126103427242807322559465755232853613071136280725331546888738132829718512630656744943878725376938792248276754720766619816186203980120892407375001502429780375539108267074348283891746183564419224057558900969967356843459047027364382385708128449854536216591920668244703545618273281805404139268537914725027244486288131824724389114433102724693983520073842324363669787001129353639216442912535006783093835971154348052006688467986893703086825481115476661462309076134817730297244702608548910213981220806635483822136483539161862418595093946434568066891864696849403905139782277071903851869624635727802729884486466757320546313059088905082047484414411559358523580408812419683168974791570997758139788390915816038993163600273466501254156751138111704435008032673454349801421095692284890421489438746680888515716090953403318723300808102083664510782100759167412921016708961038792874955235953638945272387305668879648083254667975936716062209381796395393651945974330225651205706518093723343256770854285387591398077819090908542025052841229283652199134430001404512653457594215517210559181151065393168592229837021376437692192444194575508894836988295260554416396526325258659969083932894128082203267977930538925850991195720792455448715492295681741116659786056524819863501168760067026043048052028139816967012809119365652265079552404520552711587016589084769298627909663081050245467990971834525200962393352955683990445891456201560208065815447803332122393880734293633152237944022528244231734115751159705418761493482135527664944805502059229525422095693347202828112701441600562024207053424595488278293108537253800027927578719219597686636722606419016095541435405183993471567137448390311396630065214347469351276918479829490374440663946356512106619712677941291460753249861710588960959031404336565336245904254199913084988044362316483186058707670793066649900224386804907983250677832270954827876511486688657666244437050663565025462783029844581195658923856071045268134038525875868377077043015909171500824578467174916169646184778345869179587026242336585540174141234333215069909261018056644031723816683233361216172898697284262164183682153345333370346280014970243497224454157713341879352640646841530418337142699142937188155633281056214418444746123622468340499389497409971616836519423730378508282387908031380700611260879845573537632860998984342675357890867538707124942575326610156741966624458123883286565472657909208711668116521444433443863422487766045047308299185198020378400965758579678935650013943878259302816875953838540204001158162965924388233101915913581974619570204676333812747337176451073052682135115340108099294750177378014667737153721737906349016940800416810428878605900836974201789330546219778009747409793224189759655497609782705787429955300952302715342335245107537034217771596928631723186382992564984352660769376682117450414084870880620290762294726067451270518805924542710710689871872803447010980265078145782658992247661064101006637611327339829970526186096662479006273927504749618923251522710986266982494111448926566354144516137460136289692806560867695320796334481050661436683820905375344560066218187239291347902804452646161423562328673234328688312379876053636667217018300860244314883245057696131718576214204809944101079219200728328658248821659520229993079958963604331816185221709512724855962029702814025984563953998994691464512757490120866371570403625874123544001194913166702591482432388090582953877956891377177108214590673716857968818595899258784069905938111614280141391837602529774480283329761706134322362578164613447737548672972972802925343417182600668778488350053947173059429671127882766446490897097921432026456955459594973772419809569292890119203256476623453132798781459464045548564226892550638193577810706486741587640202578623536097899071863005065237645158176327101310569200022573563532595570100584039853309010970616395408965018022276868611437627538946185486312731533668374767780987643815103392861359206293813225244800882714243757735577247982906961546539284650828801564326879491874799953995096433174216332865165151989217554634468929805150732818247913697593040334413165099601916949375078971816830753655968026221673134841558922284366605778432633474974822877966471685198488769662271815655757883281315350582310159496886846434583180811126285003634871602652250002569223269081514537753936227465922406761051815853549148542658883200179696590527839600521080743071938425616924372865473217062794051697779295182461647323979786087241401195716126759109190940527856277704172051855764069815230237074932905494738392489626959597590106051078793705234381289680665214183302235798317506922935669226992784762915756697120835523660135703124761925653368838633180458974553757221370632148471247794319850883925990099046998862446080263840979084396857349290624842717021435709313163621503332234796963030617405777696045682557160826990122077219666341388527713566401995355951203454326158293691997354256009256152238526338235536783848687640832210672011379907418409033499622420929444720486367511349787634086440844017132334791472094454290221791922303100895580454488522182724187923221950602152722881095325213679792501441519115166894326201228798403398402445015201199662764595662234824219096878421873571535892621656355164558011456478925798136586357820113374504658940314558797228852702778947786724170493543710935757867675030279141091004693352986255752725677490299805137084348174282936750209368685951311453044002075636650948433998241206688105306136695949669026704025333597734806903069208616551111952904371242441137595222000295240329153202656585446628617592086908804244282762527006381555009258195652252933576727666838413194893674419956181456225778370905532724080127965426511811038266065145862089274228843438274132784300778230555547966468883091685081346789545333546913711907322981090506456619261567707707109459394401261241349578327079086082910125236156795549865148396531795464277096018632641472515343233387573605917898426502774573721934372704389122858995259578062797266716508928152152597336506061775878789731238721416537335992604240262583802413492138789674774528089068677794263499967572854234378244987468815739578011352327764728887626131998186621622853305753252975920954345706363129901173632578744979750485309989196496621888806037774002205498975751714882540274909557093941902193911711723096445945089667152197397369302471848422230033433308167045741526204285372221716281488621375947116934685359334749816992205932749678024951553657813974278894138138920808687450934513488787100434288822206037435113069210291649898144491810745302412355501199967224246638040160371021616821512132963392370889971694785746299090179146726068633005925581853677177991742857461873874949210891533181236786347368332130677619528539175468270848595294157692696742770282323995139102447991876693121730455000024016529174578623393438541385785755307923189624026029959869244641808636775089549141879690361010302523954222351572154828441830484370283776474270948540141806013932014881397128415853756052057627243331306011045961387786731077770368404582646638083855850558137892313626195311461486062859102218934346151865451960013781002017593685697639434728789236805033919210664025618455652935014854833206379536105457656611506611540454301974292275225491258459502425830887956071917873374186333048923919931959836502201511673759017986741152411873893087644604546763560804411383095798158294245604926182635027995878630502508684092975095473211611846833626938570157838131807805802128496346742689980452165570683344441588526581992516525748667833918151666821838249892030353484746191100457909311447419655669233996214098793106761142335908401545343517417122594154278128018104544149122103700282199806652003473559132017891971741142877810370980703611252925770451002332413248029004750636662388821056946328938588768839239583765018599772056587607112704353757320619277819099262844645060960848082649204698298407721119200883074951694610529851344952591803003221698657254469203084868442841505736236817113716527395177513668291325014415681328320097919663334205411878962864476091096035337936326333559950611171157143672946381270478048422829535516041952007800838698825036624352166284607453576436909053881187603086751605507154565167288315211643015497012146142475860614800300987375178238783185328492927265627698341038468393305831411492108951512031802491348704749377704692236328108875645884820196543352787670490834314618728278636361889779874552501942038146275713201688430918695834402633365301458252870466897107122021057487790815261613484686694342390415707090255132540462626220643571111608417509231593727538168496121854039241413260533232714196170786837686563940328694783338037967849760894496306238328717537355384032573015805398049352504102623817413968029640129218629838654646124612106387574348881438322847424149412125244850160089611850606751911124741533555255306988024674471239646282465081003370702902682506173812967930703684789838164444052380635158789057453497213322454527482062942185741585756781116729597820586938036409352693549998415132701647007991570172229826593161724820487493666800443123312544589891966957589523158821560949750056392823075201945844580544709436851880831670552807237452341749543106260289574202472975625939306139591396020757240107046756793523437003969379824789895505138224323804698556753593866213762470206997275253674914136040450672001858695905980988396374385037430701696286746495567889391597689568940399790413650400898803665382299780149287512425265472008606053609259229343029637433179872565091237639009290505609460914645104895384793105805487839114008348411433242966422009700670484919202941650340244600806159288500374684352206283002692353043024705935272262160447150038652011503065846773178289333542241997364128838588308132764690340936284067461097659623746011106363037699446586777916054265780318928209283327487253750794500929734264569480802329854903864902105859790876372872563635985669466238322418429662969976411711083974371888761112207184444090282672036073157914164932470488008578608502130980100569248067892778414663897108047148280634720106936010198839745565654915631125694003404275095149249254162477138555163758423367264811988325875155340686001624077616727777004223231603118922146859528191265474835796820895162266232608813598344900659840182801070449351479247919141903821334573771227395397000341634772350549941786834865744593580753849662816181391876992895259074373990672107559032964851844147685150996096423966355436392056625520707991412171748779513496184813258288629947739100782070278134193866452456172218728771046695582523010715431729528514866872354160694816980145854712524724068830992764729416941393279899773139071300838488899305856039241090096321709657599284110252410405623124751069873436883767628072128433168828983243309879920055544566132231209351918623014999506700947581666741600181012185329666702030457335948430395786262395565779434754590209294326929837282689639714594712234051487308439647030535076534361305363326097379502073423716858503466177882444612336879362003210144893179389655420080901556279446535196480115105692236453453225906585148233428242512000333960029183218302730510710084749825236006668133613147950920438850691493334638095278837253755641783463951052346826293150071041224599314351396790699638619268136826522751770677065854682454824599345708096747729254036298064687689724933069473709462374044143680346894067355028497493023085621227444766400758662008448874871670944671554903489497538366819882348673639661238828572262829092246790202878333976160716781519715049832235219212221345055601472500995987434305159751439579744122639280983948615782808202403879383367159656550113155434215009354483616486322519121067806946897777811999819898863373058888428919400722283120038755859244412746938485815632557764750213729930799364812949250714992128753315397662173431949952716934233558985366205247104269324765021041963450296273991536867980111014345181723009559827021476271200226245338269155963019982513950877006263478400015535971474124515758929547388390398314580085178322005462184181671495198583161913131495430127668392814074377319528921231645333806259094271581311008131521894175304731659938018757648572138842583401214391287517548475823083201170787559382114952841524176292849883130107192055862737300207778159022707553286131023845164980039005149916522092123962168181900525116183091627305896410808399857305714169121649815356505095965071331035525508448835856245168930415573123770714212493475499962819396109210587821939726128011959638541290934663772025361544242099027091656913890039800711537792326824310999853532017817139900877205638359220441876446130913321448052416116804862882476950852729049996668409534868747607050819619566874247047446565516171937500364050085033702777113452040937851655718561993245390731447205477453349736751428077604622547020615013572077470395982571324268160791067330195435453541885754409065641452134507766523396491538291027985422893194491694850867481039865747404971443853355167384536005392685243307931821209972820096830366699991216072621006616134933440116714560101654121495232350163131386257460077307962326482414143076300281500309012703871248298458991454580688190871627181502302050361030861360877393089836392513715777911620433615119174241975558091409979364591169898982455714162127770087581292359188009134403760449356493432870797084526100110064571770236973043729019066912676017696966437629776903012887991351364967873452806550916143864252395101609048665767468785660603092178488591809161756433277912995645884175251818814183619304993292327449911195434542654205211263928244839992112678118028833491048963536811701020084510927922839198567251721800771618572122679939998907856062877572048046774108589130035246195066249272908852578940539052283164994459580905555554460831173406996971905100640244914111571540825262769321030448621558950774578619466661256914995450692489464116175220835585126468480653659142974717468366094823261823995867022298493621368962602864179245199793047767495370925047499335917862729172057970807244861883849184672486017741598780520775050659546887982813830264853067094540428130030730450553663287225560227794150415202742189979109315626321375147099549021205282083332718806086510962644135689498758543309492040016738490972962819786275447953292728989745273506910743142671590026528429829774505289254410361047343133253215721856710683847660098023070175002358532643607892945678033854757938951429511064251471227894746884890837468173421078916062250701054180358558535272641315069757648270157013662862432207903552075883220910146824112646757618718219493191651796121160529660631383290668563622530958888692711419503711990340023785388003484734104051731314309806234821297192907560613905448582965275264356811051369534166448357738560004659743785717479031760093566482001137913442018795165189139695149377381387274411782205080635594337962771517532938125339644422121424179940842630023481208994840155565071475990900951633139051154459611257759564319585216826921852473565504558656494908814571944111177503505340348447230924966791314252823894278835723762143321491744275541885285315847541544490318933988528873420462774046518771062892086599174180608996917756174748228500014233314096998847109072842701652423767918175563540110170899871726678866011405256517715199087243515575762191908888212390093997205717795426451485203426324433771705031134340105188312540478513317633836553771441010987603921890373457885790494710653592674826206740086241746104028294180837796249341976749333536765324589468235901032622932259414500765696268300384161024466599174229731567039659396535995737906180325246824695731556963225080896391631184644333108965590843454407041548818612289576415567935576321841214881830124719291469700182950027653756209004166328340837828965321009056548395028902473437440221242004361110861656143418475935462923496218175417511656113614746797027954729119013427099791544842437459846492021203350808555489320558548917440272329915241608651461437209158753550941240950219340027822923382815272459153321119484062975879683951904648448771397733632965833683431533815446490114652938581798572952328049864540442217951836897673556643451297963819231221184819289044888476950709016514115739735821295993636709944835516132007413912971756836562809135374184994896486942491023138831023366314240464658706224673220536112889036891630572239192284064819617022611813229590276521761129390507608292051902183843024178661764629990177337023141598869997295676957839043983808432817889942956464764798698004973958527326662646822965327763540886338570815665049828347566437104747629176668285661979846720714438323229850003576222445878275592135174038193564407902572754911148955746359475056889786797219052326458692056177076599873965486457918875722510155695575948763399308265997321137959155711157240814000432559665099267432941936364977761288071706701250405119630037154273323030428063691965141446947392027597272840740114803523155151914124763936419533022113711477213338549272056995696179767455196650711615731754448749266269598578925884109511666712675872900696489878978836626222253281666982547510577733851096505735354423085167945595799482532335947132646009111404082078151286296624478175879126189274025290102480556153816451227669943421821422394985888321194986156608893690943222112240183639004441956317982284379394344391920471882082710708895779251074565551896886942907218800147459108977718578109956004341594833167334124054082473708248382820557966102211392817417341856451657258622815422328330166709430600847365055610571357985647262057259011154157941327477848802606599107390619129099678899121409498524463062921020939449588130105488218645047658066862231568478720808289138122150210497734674065321047683130038152705488485341623310854981428420052805542995130681454375884513079466689586921301931398188909081224107866358982516714056212028807245245711154710937494104646146447587945283498202642523076134006107050214831922054433977653973795584640986780287689934307815831614252498269069629984840249621470029527277817411911672427384812861842258161444350066997923786915202014925880487959671779947891178494461232083937486343565294985414959576923181890769988742115055709168819253056438149522443788881136532159845072406618238173399204791535068611381882548979749723924840631066046399184452530408858520349005190637440656768971876027188819922954567347992695387658450532421759912724300113101489139309450646299174301640031463367888661986029613028937354492793105648399217171710381630117091321341411937232185488211866219647989994038692149293441668667740937183333189976582191873688638739445702697921192446730561426369168173327995814206867698201561642665302276390257850689477992540106424457590195263519246557386594116236358233232502493369540055894722131057427152532014735876436331068341425687313820669257524608409805461142266335936960019450846094112277364473229574566180181244606365485706563555398082578109188135024292801266255212604152745864457015512220501122166729387226085630099209080677930296805487630645662765986579055085147653779074567544543876025351477130286511566430168840886542980114530123114646230371759265733461099492351887568419044589817253509863444350987622156760923102660624269329136654722957234038935361051039008797068943426726590907438635846786910265488118246412248749072695267720451976453440548090920182188460130505449642511097591920629688559302183652684571169165599869784856716869680547462454583864835416512576115329526634692941003029364312221670703171412074615532987608916287277803562430500799015801889953380425171307199711175869126814513110567693180386090618526984191264921733959139811305589659825230055865660860731332194839325257477253484597283441566224328124734199853377992796361936982386590431980888505603110272665368312849861298667657003297838998525807394923059582780487813634415704264033198316407982348008868739401373231306920188767403100987291812181546400797380558500843570574389782908582154529862677960401677272076545223762178725888546252336998554130170668812458633990360913547848783231076111235984175786331532203770571982869469106437940571061039157531196931678401589788561822473413138069608198910281213594056437341627698481721831291050430098603447801327096148841426006203062244830308276518563875656273487727379943495255279437837487543683447984096460814538313401239343204971124766305257917762967616693332902618089586851587879472130209456392384158526787101683458209853826619086980638767108544301539661955612084568161723440728447611395898732872520975540980760420365184834521126082117877490574881498407403770803267287126228224140341451106513210676832136700210559478884492753409383194231245040367763686455314902641173094645417253215858631357092385303770751560809081990156387507863220817047440420428145156706680539945867277076172301113542779476182925499391258925999552767569750989335643961933879592145358201013502173418438361248128102988393630147042072450370041582537382260002121264255949036568280174636640153021778430563920395873636063362430845909720292764065273113581831817990066836112297832660934903951353475296429406736706707613970239682843364061102170870250660537177845130226406404665401501744386950010789365828112452297437371551463144283815073708791260482649674429680126170722519648631414375936736394223637555703039592220172312893834302669210347811941993033388471376265064295052550509844491740171296405056306281876819862768255513161782885954741447741881391962041175205475608710633631237501217328236697714144466506404689344922668243008756040201326574284326429205334658699787779050274294967813340478733927387168298293016134009698611868086666578309033227808020165538064685416344640733870252615451153689907484625131685693197924215790350084832309332870801624637670063224386332430087553723599344720423955969851753748902391557269326527006362860749252548089248877845254143091562234095774145844101306462312955894927886314661078947702183603645426350856314355329310446572088464376537111160335241457573661524895831584381413031423342539184735328252740474676742638410972529644613378210249087028319295614684527334831221734923555292364697522297266354696544170725879563158663659253053952470139107734212879420824557628344893457802430122243332657368451189763377339249213068338511613322320541167913119133104479848818745748829982123906814955306968987518263862946948326318218326410162261540038425718300036834603059351167557052934982302142575781762810817110372595425081849274807772679193618795572159089424734060691565090095191525791471266614896887415398990206401764781568367498266318799780316133159653067008453774712691444744150901424968141237211436524181008711398039603288993902217273170432217528215858071186953836106937937441746812590793050389735227675922392979292376111155405593669954112223275998102707013409786208853199635887866069334867749843799010597997002519180939513836022215754973752145821634965830794668426327541926358941533837986994933466423801148008516072418551828546204952189313281831162019268755119297421353079206613156539886828106723478606476834580267895571491136780512531315627605747512855831203282783249829955825214924699701312393519935497559890721366794169331944528971754972564186672804028617970838703799956519931543684543048968881164733682388860602275199861853408015016866464635761526028657442002883244754327868968064210171371650599028663253794694945011465748716444246641429854753387516136671920870608494956387175424685953784249425423554068717371924066988795202153053531059866887276699572851451896563593486520877106023117894772790301930914041846758572347096761529446464725684126145533762898879876254660690185310208678930788265975395665339883895132482704026118537254335005890678683593657745028404356215754714175256484705056543515052714175134851094532610706583552674728364541550992798589328063988356015093754089178542660771714714014136206719195008910813628272536607482776647901933108269244559821789651305443247306703569171398146444329098646810963255249471832851534795173944943406159027712779888070442450838976471201040582097464384251481010575726977895997486961371055617743931456377659726223989091303639193530711712880406844576321131313396723471807008570846101712600194493714156169827255288620375459117522153582199498409474307055984849975964534202546625439975920922495482932131877060669733351149803423225739512547955414611823353264193054639760323384188348088889788615445599926706945843199577459706655872803258053745162081827950936431747989949663159597762961156948457220885089794880305027898030265677951922426428850921471207934379109229804150019210457685804868618363023246261123605163694427806988018516657543034533350359006391457816134732179172738194223144273821827154191449184343970021025730259684196511689779187632621713661788101737409318365708701280180842948730747126095292309096316050325831820403111986601533131200684514442150926302462948820719855928992373293451392164768977168320106841255730207165998348243623468354154284422564406863499021729933596871919669852395982724190574873023566327073720693306065437160726396361575746541228841320623383629112671597593456422774495480512008319112930006001246825308032364433462863315862605043625263003902646482645144439702775681739437219970923780631235330760316416050452546660804141423508357072852562104051751564877267052764585865305472609283098485683941945249967576072587907774283060309498373539643204986450347303469307053508149778289036772205180830713653263321230922714603410329371698009188895958505871297484154765403523794759597301029357278046649055196979269841184090252743801653316183273566375575250008163960338847113811071626622049692857729710352697604851330836580156247888523406859812307192075101596790865561754122829627944310081461461251238799113818859002365074654269597695727742607588485418114468187939475665719465913296342475709909709358953228253911244328441145560638635129317235586944834781231421158698817537911889575546932149291062618929102286972550513061874060093559013722446094410787565194687147241749815023964302097774986262114080285573739354708977870025333777061835771021611791589717315901097449699864218311300620942938504883044632627554724270183761864094201779508934934006956676350972694098294205392371099812889658420749228666678846785223543603467999027273330421650601481757521287779844114356402036232035585530657309019684248907230155199960207235272715719815706694882269399984818182965088785984266617492157747704921108394816567683610035501135435641449353869472000134115906585432193897328076237703359247675690174631829672821888300417910883226493146132331044638903191663564015451848559527303008504416666764109845617932751914190225884789761391769619994905103575594201091539807224190447565562597285622674221553659701767371747888802194102455820750438267911422673700131391698970018476040773682316514256928276493648366377295028684803182338660329784282243398794090309661037042113365305166805279391881803417078105900499463754241873801710094668922572704037952840540311618934724930059309671866698479964238485254819731237392279188118019221350153706312891419286081659194202900846791319828687682487959394075505792368458914704747350800633004136225570990940426960642462118474846557359106540617213268174125715923332936254169034010761655735097248423015059785037898382988409008319493140039830462710896537954204018464325866131718503906598043620560460418163754988599111762736162344519857400505457486848687833438254909600961554171738193176116647849785717990726628524622182987907226307472930268832453044824837893196126174325212762248602411090721698864946024813346100241201204669946803245960145613267933191540125082244286135379577201237993798965179269493315361017538825689646146118717162054917239626201908450153257543863611163116525058181828532580018181221399893856784568879525569710208725647399685278369495862549135787587289446407165069473691095320955424243720042579565794636198120523707206004253573387030499605375509842249305843925521800991329179596713534665857748457367812320743010711923404179851052377379343244645235947003624662947705999792810385765011098100689815879147371284655886846530495893667637322208396225745222007373906781350693877397057536550760662556574060785808788452908422800451966191112918125485065414845965028618140688588321956728857911101681961339392788500911274575843580833206389702030432024461305741294165452913980433122945421025472165682933613511420711372041262728165573432596287905236443336229273214800961572118677169614601203364816159801319006006148628283958852507851563619736325227428564178450796735437537634627598771402960880885304816003843532592071476640219370185257881337401467383230214165026653881308063418230904375535534534629893261611698414610033647969657692119696067596229415271103936252373629191609406679544190055563878565527129123850019737860210125317014410181629501046593165407191169101149221701471735585403812516961723505933065843347517687168222902507478934219252036073507879326306555295498366483243054250142853009474039758866401047769742821383396979684407379325042921307166274577540676843328916503781717800484657574084406476607568550195264949752917136868353246277279674632366432274101439424551577825386809091323869770049859434040369011882580202938430355050935852892262457453632063443543674483998733738099105287678450246749993135855746625226842546105734070388891116756769744926926192442314519370826543075572882975125171613991042947520197060445262047426935431352682129715102501463674629328669351024218736183436583142359695848401561798493257420815174322538585041965659869348720357050386648536241826108173401381128860846501599915954527212271277330604965808500136768022392351030426321533636293920803380769518071061373782135793962323108211755132184542232352996457539575875178578390321684346187316952628878309430534613973686018703995441770404750301187436984588515518491355051938510438422346174038496313312334629287641845980147841402420798406580402360991551870101046326446867917036171177504216218348966462883073235941410422124152252380524548745327302649245135606722849329599766210055618154076966987812890677907357476332368807622194395281362250307954020721658438751227356220193369525957201278588272354499374645447368815067299984353456347057944484107478228786801148115366862864791601073317806404853977403063472120077924364547712604181052900163908797338498017801708013056969713536059909642505592575814139367292171653540732440737607235271133195947788813366210556257796261474388508138907044440593341114838803067965805753505721417452643947972197494163789879737392981256972592910414310323147387900537115863591757172439627557290851557925157141423704521586001908532636176802726229238549756744604970756521762111370892148773235816737644200586471073998327325248273318771707258693080441408529034380413139518460787078686067073954720561952903883938082728793533473891886906403989251714017932532290982000730416374233183832589575535129878208509557697281805412950019799408370601389973275142968536658540008423722928962510685347140210977181252596792253196650664440216296255088926551824096099241988787960664822467556817869062522557411576490906240187654822932328388666754585077652057306722339077541952595532392327468611239304361484928425675059801042123911355230062266346149553182133094639400636372850672885574347235305014294240614333796419740375269070015793857087734424109314116300317854274409182462875522730804023824295421580462887414368714019253558817169013637412733055135677693002786749155375073955688201359834433663336361029219029402927247264641563681816143293096506528634135568386747657442972202762338897390058487621080490777069750265414777180245734924490179002555455825578438797604488571661535895409538289425465409050370006552818306027364380793990301670444592940456415267772462435548959612216776998715609858553614520503008523705296245029528278754951613515528238797361532047502041346404397366039410348323102627471624147572415918256083369587075381985121577588402068605977126929463683338513430059005610196025119820269739547302791977362580537807121213894421479520272335270512244790285072918258531947000371811322520439718494035321356547841311467839386407648128879878404021939559644441886730265967534896435574791612485802770517594977695496379180398471491305224944999803234780076342875293588020214295399824496266059832810128797703569912069845724752251728898138421553183880000648646936730684319631516400068351517445598198976004148006418176109346100983352498622771928758090738425027664455731525793699027110828837943220201773455530713457687592544216330435616442459464128983199803548453718858916709116234700446405859979260275654040006008073595096574710323520876631523683119141974611953978445445400144008911847760275944613955367108009354708641113514424656643544621109731376378853854747623173104485563975529723915977239607158935952925294343584663133056835569433913486213245182846568250842862847913477861957038605190414506688467459143388195313659662582060681255421750749463324926896766359498924852189120005019397378753700966581851606813668116407846217533251159673875120183467242156622845730632305543711618665476843790877886627264471066824314260852593649643948169609566293939317743872336273559469299616833128372656504658686651465392237922050766711639084435113979516737160269854484775930688810783771170814656650908033435771880822855552455638112342034729948406273518332855845273240349586174379341207365639163770639054246881939716901698009752241476692791532521983770680276928098131100890327262158962035641434478090454368002591835691257559189689311935080273273842161836235545919019274699347594222795485346991758692410800684897588837398768116310441803531834390629014834388611972397295339600048193950070700059503330847190364318840205391621404585729621337652194070975834851429113021827866389025317308147356010265482292611017735992671289210493634590836966475025927085321170585408567006316956747141166050061718835754937867135370334707820780272635487738957847158123603881162674099386357449883397881775754975046717104614331173161094243044236318801389226687703804681261157662586609748787034266303207392216322403900487534841457324834131011821433502170198275579226470378942616807333467592383230512318184015757250630955386560104326349813060793092013013961321739309187801718536286298440908789992077779550684952075399667052702613071043541051515265818001558112954349131344247448607158684047390070640094629428320477471362029428365168807576031952580871441348024331655764058326891003732673385538203107239869436653659829860238651881923683152387057107297486144770743311955062089256369145515164950258621903905467884204225909544771290187064710669147071561041572710845216733710718544864364352750991509465780998467914106295826696729474636053301766445279352700685546405994540688501800909323934435682219263724347636579356991368937201869979174046116965214297371456615885822862851090301463130339451763849446312026143511777649623021708983253876317121606896125536155158028248627666366157244577440975020485129594406207914730090711046198199371962931521067128119547343002329262282006820830582875798875475174791829229653471900490981598680788493997029417111995059145861608893421652431213734518663634650101321916567239259840680400365107875156696711500761744157738845695303207526895761757098947854704026193623804682261937038485063731829291491326919872456292416628207868190974852092563834788607094525451336671925408756865653272496138066356147963425409960974172834119534117266463085010628184600754057746337997109315257379447964683746209364746683786013618782374711155568961614038415316552045329577235857165362685094962880019825003808928718932794815793625710042742297793167064723993616775527592335981080061175933907770648809807810820995959271560743248844405699169340597728924310346308072823078234565605562092113890005935274157325723441989287534698938104703448824475940125094738398369734929387945474897731251451739901015918634689586609698740811083517841831226917940015190249940709431192859575433768484654881824391820004370276975385381910766155636417278477113466634880056969850525388550428638130052147246522856534840384667299145029059426573965927324489260307620005890219915398287588699743805491639501166518658725573887803086635402429049199280241086823750918932002898514394112374155935774118776648893395299241582434256071764071063958302221367389493767974116822577113233811703832285717508407172319706301228540784345705413134938047679047396193061681956582821804312957025454943947809864511074127125883817650297583694236865118740849076505529267573484902829183188901024225671534192254683930838588643056300585449457516729656182098051199022020089303528763196071832223440422094221465960947981240150128225903238769973198705510891252088168272552690799511455027826048787565813253269940446721890443309600398065731763823151073871703850225215395051336977517024635002438848269147767451640769533205392174922029070140819037416422103727736447888081976998225626393443525857596222415561412581867570855952172248851064272644339112748991799185289147344582640870011290220883596403231729056632713007124832257247914099620941950556621828130541242169688365067455175442866262826421217416833066103666753022964612413301104193056038124863557616221662196130282666290547295720458950953917309019471380312758658763142352495467380042021750200448628395779453550632634000336712284351432544778791665777063907650897465619001226479374497521333383779898356810144088781623073864369708164641459183514203045701384473956865395196439341108791046220257024238893018202153236217422917165840955399950805852676763855569284072613018934050289601710020276515331401336677749389786790082242728137414684536440105053931714555894873416573150395808620009222737240428380038494348599660545263016603448915931471189035224653755897048245239655410288117724040473728060863359160077117420754045655287462075348720350268040544809292915487257222430595226556172565202250146244117408681460128326634504869059226030572558040390400888895453754214436157674089035528277235563079120736060878348504851036490006489733698020878932281163114656735509849854511290273241288633796028066192485804249395608296015722922408094669954595715998239082103304864961698329151673730024169061198082057830310434278443007015950966830364745012810948818445885702451624106351375162319342831762283840421244259816137352791729417988833143694163193755901530242541164337445640791065415496180612039588085608568036249931331439625750933824920614486693727467502166125468066106324407954708514306338906851656101176513650360304406455650153996749590945871529189271509889617291899288793121840551828714369114364107917327912749160847359107896671031722653321046163435876450661835014193578592187155905681317915224499842849068784108949531344984582658342093796663127037103759898583015533282243109341204551337727320356133610376347323930111463906751821372918050670398422448742988217758097756607219407980972821349415180005326123895200141867971707368624514837334728278721387453294029742688953602018700817949060746518920425728133451706401714601506629885961444655261200626023443302760349203673820138406879076697153950164707824649142256868456983799628902842869909252627720522687453376517618032491187494514576207698828552286240915386593108438245221908103647721825185150750657169432543449789007965968570908217109447077150583560836613690662654546077883362479041618415717187012478230115817219664705804870638788282037072615255183115616554183641129848428004651879596137864334629188791786410468898131086758982511830437328632975508403388593021426708230801984105878168306758277980017341116663324074673455201246339393011558142928475858728163989283656386340774106784566158670955852784402002910466565065921975813032682681030128654443423556445117631436675682469701128953927438039553810615126204071613742534177433685655706046209773821956020446649070890929299288189577386459920191060985030648435771791365854699365443826741847979909108835750347289872152514531557536509819790318697788906266541225289902153636888788860081932251525148413618000947307899099536465171348567968503560867408485393529210958111615921031306783371562242773330133920789557148142620458599563028859830267390285623059239202646929692304508079907582761679774439159572095603228923507226853052895748266963455285892912987553471666689029923086474948480112967185909817809207043439813808308426360011435094496558419572025914830937684701717786787520410238331438667330408396222377338191957473297117071796352593972898933680102562967771662950610056041733349584455001978189342894999578425392772343264820492116859763415126152614876934231171585013507648861300899414664219100985723153579929209212771325323094013146618104858078758983766822298840022191191371586756045510987442915695617123151373893995550209668933769479802272015718644613342691183984546275579441127688231645635567599615813630032587645301752856530596622322659482532434805806934818568697341104972161100646144278679853439352927969075574962030072637002802616666537446916803835360556216621592073961464310227813074949308356763751152656613565453653617733216057731355778342817094121474897071835061274931995050048795458739689256976160254768383713855179450409919942159055807338336146964999376290773545633847779612852621357123792822145840822416628227604104420115539113890240822683163159832528749497865994092440966844762924217109175949269597134188608018625217281788295586867787426639870294196004543374008395592369816836066195469263126254705478013764044607111465614367634976692392647463073751191240510706181701089741626229674566552479091937811620854144919144711071202788586832507103636315101484528011835779732954495988686560988571810124518319694797959320730901093301391634175102290960989324256446857909160914723383527839235457822756316503892377882819215419411855064605228388533738735774984291624385473526272619740513551925448882924827428781858832302696424776951535854393018122301280052492553790391550382634063165556815686203144457567962662221627427452551100208918400612196190721547213333768171273673406099390697729104198575160925161160672326153623230309314250658234744793860383160132785851716248416160464563620387505442902784806323189542752958863242608413040977686429643549504930537400811546462877850953473788365262285929942787013315511195968728807484104875766899632121716554322883181198571201327426694566608556192944733112786720476138068459516357801642134295141304488190823392624465522138335177866856421574586207005448250030410025613390327015164561275429220066789141432863667309302652427886861486363598232464342933511874238014788447449757992218555939566416344913325288048566672853578707883373791337933688401037576307524958227446425969210577448269213237060383679817435853509316563815968061178082983044249989589938998773126214962825336490117713129921417304362402612848484026400865953912717451918968036027717486649878456247706007280820434559268593443822711338568352981091236477938136165072740502135336198804094047064298353685723356974219976727101392421130912232449880808552050927433130575910465765688808193119992259022043758234827862606637599065767191648791413723825002951942278884969323920135137005518743472705965640408529657735052767388530918225307237420126350159014786183566469365903177362725397558552364099081125719426670563042999781767873546735271962998271157007264694797254138202901844414657086457588490300707052227137429020179094633448494404493701722618159220992202567349513349673100031170882786367048449656047979519124875689430221727787135647622995117822629503649984000401343536744617667640172333619066378116118852092160476508567689755439268359627936085578114192970243423780590716449903625954177990742384467991475070405266516581478947571215022469539870649405895183765895203600558331141993537236208932046275542554357585625826194234317463131670190171208334843100791994620075421496519009416991050910951695588435602778854144444074060187199893914559079190388470590027560163409549987197118065422791688129664588082041178306894716242083099024827652220654687275432935706951702437027924477841318726917476090476821747384397807854354278641094839293326161348917603710759486059559274178093850375798956703177897981906837441093174211223437894729259547359871009450964192059498496606766578019372040766083988096155216256595077705268318470119905482529425660343739669390247761093909486254377085335041248592179587904495147901775211486945317838374396255589800468562108267609240507789122131953758936781282095785372356303403546172527188106872803608540178904180548110057165569366115971521378973079006609072077859244461816957835401944174456505122534779317249637358502073370426346555080691317004511980774667361161368264935812866497246337889881151855400025681966356237097739179741294244835879374728973416508366646069517839043313116193463485742041640220043481360989677011555770406143328468611558199683869607982175818737987137323210611179804296535461231207459696893643214408062912027147264473169270390369556165133438676682757632625993398957016970016080982488854707303245024699303809026884656764195200507862077394623966070128508378463444665009214345163356981389570164831599114002636369492954780527463013666566510884479053023708997562044607907207243826182396858210227460450926965089675549782374406739051650073076557076668856272877456891892082338680443783644409362370353457443643956658105976529469811678736722438847700177808557605949538191215253135603992591128124544240144156999149181223246866664001068578342791090164254889799379676959273397041115480190186771658640848588916162737980819020731932912997378514378987297048516370871466853128274396932069740431509645832442094947379602546391392483536103859348909522204194893588070143888169768265363769351638029011069672858406754020929111395309388824493880064460524931222654518201496702113262361197796425658020452145962546511545619960961137818475959997644404249794478122829324419020793926879672703896928676054475160788003462971537032329843205164942133020237788030511578862384212935354807580874875415688498470731612781392851516830119761861114640591413191519987844319177484381469875781498504541903903415738380094289516642049762987127408545663737513511542763353658541353282277896797776605255384285459083635980940853418258343351536309022101044454550956351148285082462046962833082729170506436721305080008103412302025750358981797246228590252406221024948815199510120201210906061454777162541096801127303447419798396899937222575565902619541202010726249539892918524406839070304605754768804844171673468345508489766681279831929829846727136250382886667871668708047165348184021639618771940539285152709430683499305385106730874240566286516146456660689587775384884574978589267383554867723084097654704759623106084145273755928568658913616271309507038635638132716462613742472970254422667443673888920293636302012235511462072169908040743945375055837402325113471457479536474625182728465402411545032853677223753042814099825790871722453959083717608508532975205913262876671943972866334728021423006593059239380237143376764896320387883696113477554727298866736842145600084064375504078084344875934821214860781472550248619496564478193242285323778402977138060152800173332521972033456067371455611294929418301579376440150660439591700189442169534831012105776805879625537281571160303519251006729543589692168605781020916834144257320524236594608360377558220955477084139904753949718387405151644441635805186351344125605343916214296577658734469426619636719250630043677507543808277371196741739634487819632719895129319807824664520815745285755042611108643572596180153732929504709854354277701931978705391257165347524500183663975790616726237898935026279706129848608253933134798052785008697816533341914665891625615264092946733472126803475678236671348963416886868897018667588072037917136075931961680389075396524711603884187266471467874063836816644842408180405755805154954392941883259341717198226929637313914804103642794814665431417975760736881386671161672663049394474678234726003153673172970935150675138096085007125019349178362006806982952881730442760813856513102146910348409221915595750888956097912962074870630930095701863782323885758458024424714654416472893600952301848358474544169213509238300393949170799382903370418341288018776105861278428042190035561161393952240969348754161213212669801497579086305722466812813442761840564118578841226016020595324760206161700188519037663021198027810122674775452446705023836670265649788294635252012559153891004841066922277184700536361864184122762737046970419767871239827550803615407071712393349447452574094025777637501945612719155284235799095526405867766854239668771706805637630177300013190060387095782371765259176674503101561630366659662118139275011112886988518368657057617449893421595373769228170101486450549812047394699725342929747166783684614553767620369140815685551713141507023892602945104650533542756395158651685560310208984227674678232869734949247230234428260096535832797495541885124427776572139993348440675942837349292127223902278621577312691182727799814475048700102731752391058352917011163518378322513946648636145419334280529920793978248542681670963333781836167268872116397345762798122573430985486545117713939623159085247290344558796058639687645250679283328425900422852767333232398282484831182571551799461005229310000391974788582723295965741097479487004837741285722452152653010880135269351180590619612795438688123157856588289820082716882658168552071751481766034617232954804699264411875711305932395811038937490959581151093238081872397759587315910584245010043023074380030042036791552187370728188281115539163249673472549960545340162962645025024349320498574310197026174813140081293448162904451747524973911725459213750196300676433817001128621380190163324895452427292374011673538675085838114317122341911404024067700814155812448854004264904990020989202154720360648222066457252840551737679131008382054650998415029761158773842133938609562995923125226756360364979444908925457668593032705556940336400987233594916593327883575886251862960973598384747647240193718677546485245354982388197367456836971210775507088239482587671933217477340106025444862681291772620397577916875665447593730533566359983438454446760163000892285645997448191264400620949642672513243982253824208076607592995861885834044088368092439573636005321288777999886584629083361382451468698023075556647764710936710419183942808384047412417872867198405672654325847186119569916388297805621254910620728410615095208109451418763516814277482420335093408795444596897306997827257398626967355385077857558252733604372313153340857794114366473227839252421371839375112880052749823673805549402155285357350175369090533555434913855129860536144902566604752246979364282030889039033065044412500940629849004093570774564815582094861938384241884872540832018255826868827420401233457438743850708596539233458387324968026292982206083214851051011376275699160616536551336197666673652171754402194724871230564017320079549037832413330833376618541837808231606945128714856429652983046207788904896212574269009826798987513467551262249355359902711176056704856830305644588796751483117346227152971111003218056212389543631017955299422753588089754752329260904894820945740080569868865284614469505012589918461099912271158150518347253106553319907404170196391711313891302404599529694833505333562843584961450645988251578658876513688848899234195083346509692554026007544285329556528672277181574650139523651553653058754074976938006982718480603481803048767205352897299695460367011369575350350658423079298403059936640140568240527345631523205546564124440896309298798529527326364219566254334851667693930993263694365872928726152734000450261304915824086446368999352546616523515730922618570340681938128986373375976448004977138737084696059140566237837835744298443159425098156934551743237167562845651734588929057328452890805600622262389319628078946851195952962438603480986661767417428798787447009598196690721552903816207867656889936837994214323682291295436689467400565571769425265034738686647582385477047708148728708321991217403046237927794502764107302281322051466238766761766934800129295975115808743439845166146623075524241694997661210927677319644073049613127130501636733080250825119619495610125857204051054708442365987539220857230835142295340630269052101764694493977806069656734826084254253928667819896606748549909348908001994119420920954006190986327421949165492594963483259772878783544763245919629663591471773611993232240048871494479266572110759477513987904624556762414234445638139282303191539864639581432625912356238612975145464577955705087244212986551492708973543686141831607909691721692237115937519272125947567303649780899285122480142567466662259371516668852770591583403289415132469528849986091349877100615862894162613657067185342466987368505072701261880916948768868399300451988918781298989877634032450478172802269373539883961823803499116683512476352184684998923170029907296719946133149668183706196416416159226326768307292450742593741491083939494613472552020673068612526899714812764561222935627115775172026079166055323612418951673780616703782569192019942894520933013452162331092046160335098121789218068666340047593952241936998414829871021391576131673579601020838247676305082414094842253836938786101411522637231392547707642280277073247209665075918743348964753562489738681979739070314915589098902734823501074384030385533525383545202318992924966728195903519500189064996683150053166902532621376292063577501789513163875907845241959707544756239087109311423775572339645521170578022173709336016653791801692353294003683241358634103163161794944040131632047241546342326256631318762955794411914251554121559937594755529817125149491660906467108362788692188731440838067151906078732620769678156441721072190317474111033964311850444843177607778826172542582311445643049896583987995694312929011368588425630762416902861552608857462615078734885583233005544591238445050776034847178232844489529504146617599002778765899140811225696296002752904688985806510125583360373411415176540562977048721567836322692717383924372228809463458196954365424065697355800948092134978151899630435272183815634787552752495026126423831556099174911661528259373546794467553677391845396071285533903077461127587165867968216222314804202584012751999826719033939868004679145133615935100022388050161584375044179016773476415200641406733481654612783965142273131898348132288064636407930191554183836330136689117350495951501751204156135862336319582821330291849486412855754769620607799512304202531740164959714428264898552982046550591110880753000213727250143725677036218150655655310422071733228488276392276870689948764801748275732857961909334594782471812238781642622970598833091204294575696801173200318842018328700073068323844713043149418743646484359730156718644622339696744254763038814816524421415983252998964605830427170567006620518279782199279686378002207975041945181905443243633615073702867755922745741375790482005425916953953615704920543324706038440894456026538972758828768945883769576723421121520620714252377563689842320858120047759109482228798614688280666749291739588076945421974456946079226920991683818145837937786032366647028470611904973422160011186907412314642500633635344457775671537936835570606850346812379889017828541060760323756539021214761053965029878867508328164064059134348523760073064073005336248363110513720432501933157618089990989171742958538083911248166842736197834539972151646997324992989086066014864541318594581274202472287269080937063625996060239103040530770013542552688237851589823348446727859595125505543534706734791929913186034391471229780911439384715214604041696040030351926950638516354292873280433375444779778436946017756085845839368177223153645388526975173905034343566358898554005185210907002451789156522527491733497917284677779242856930337613487159149143177359547414129599881985029976865023128920107353321162961585042152671684044639822253535660503766548640999155690138977704567663785315490363655979555887279007036368010458846083827597964253445722592038341996962069749378385121825206017108581354710579794097567720446210832186845419509619823651259683942026761618794427956215728818095944015548868404220694569842896692936975309615048441217558080564492107258788054460202206329809072926052420140307284801867850268166539613432659948911670319528218348653507333607155522308459437038872162812346545847965899352418506500595612011277901254824743719282914459391540085106248503214422982360650862134165856824640322856409697240385125656231557145522705370216103105513262125038416675215516547225029206227616022362644503356491768517145709637322884926314765676711581431335256591323113547289271093191224660878972148977482980917175208983458418927794562643898446829288340488901058942178596815556767500140695842544173922360581333404659719316429871235590806984899798701688971256922258158378315904103783835478374157892849168783871169702606783079327597362618666631639341911511966735659284462633357910053477517317121713335844246350861962578994526811920264695373367336848095571705346773334074656430515400228762626422297545240543125541232764308949866324310726515775884361619185035473516808920800352488536832933320229083799727974308427233370648009428697700717110632083935289194277676076391986595415280545990235652363182827921601038774189340530036000378676476897632785020749859833806400465692619253078297811967972279455578366381028989849981881718665153329011262873528005109644255742227257036382050772180644455703184996671828268987506229936293023199572378475033741871749575595663931936216648166205823016843252532870433759001245120183512900930606864528237291194457526458490116378498608572168632139294786185070043385091486895775850767954540656055393998980964153020239325205786108310533793632080811932916372366246507645349884392226735605476971738673100932759900054274886573330823735321750040846798629228782200477003618956054657524321757469007189483183365362020230513492892788640754832715651486562768576719333941478662127748796221207951799306787676414195859079398884054487755824477564957425153079651053532076184066297488974506598543038924273053358895070303817344643751683833872256291063351608646206021733734388767467357053858370643770164465482469726352163984203612121904703156625505034619295281913841863985439635265592914803428952680637488405375910169961170808875314749252761753480740343417158429238971049457918043344314161999641785221518367730163917159276298420776458831580644297590953779641912335772118368942143502234048340167156497626557773288394052474173084825583621729715643030812728435005901426086749740851665496080562441515701702744444509455258777374556790175580631448296158708277013992833782582098913368257120881949450905536050551103147990881007635562491534825133039683419998692251447340489635680145006208807622747267991829756908536157069016747042992707436240355553814006356045824870540225367037942099627197575498619879879245856296523375215680560573010992927779528804237733419979603810383401568674186801445941933819378793469929189483220241869718014474732565381264064778217531284468076974188115014381578213169099704964059440249046665544498642510679866000469096395199268711700158776301369980837151220165030245660828171251597935601192322190481105292519365563177307468483091188318293171887538255235094914774190100338584611870505706074602107565892888752073987729815509119254353243560238094676977906098929380634271717417102811806140357918304887466932066202742307831972143758495364197991213466926328866388575396006594893296058644971863249587123587264968412210531770730421601990531302523150022802792364988773184391693349447752684750557275311345507197938593553146225710488898899448147156200572042630922945902115503944115713741316870658583850860467075484274895410788498218460582973690009492603883700007127572150552950230969743050151467777315928788246382034731916842504544513109486114591981872114173696377823660872564509009856519306391767272940389486595862519422172363334180293092793406120429126743431882363046334004038820904727876285305080752805176840776114339174480562130901324527490026459405563578713612006079393997530487429122589755091624594224810217498339357410140504275896396214231049243260738695966155657783018083066486466266889800841737455436389046688700956347821796050051072225700484657966027382456486679126410555058244393160752527762532015938254712701393121566830096076249775651996721819859824862374854641756100889001167294391315088665508361238363208179454446735935728997435145338252004928415941457385187262904131016765794415876315482196863424187357554495359226231356023496856131141267662824464269356833408355906863556718467031252084093698539032233103434370135105534575183890673757424544523828108009378506572086577927167397375630350543280440378521294428662355935898668443042366769631091564441091024466050849429239507648024183860184359876122696462360395203082768728460149739133579976788048736567744981796853303398855540829650688544902717342969122824231944863954888574663927303725932536063382028775310965410904732424395641463082165886611543702554679794072530583383798048291239729718698644221389405179031843718604643307485962588020369172731033050313718884561981931084606228453928862525892062722885388958688649658070291687734836086155779012844450823519330091359068627219731037732522694924509343946904274316370641644083817670485758598441461971977856907235577994880948265854139531430584692242610704691732936219415617552596980177742244453131653797317661833223290300243894839123685981994931044293491735645224914713615656508667843308811397907471159610092759078951032256860943752801722864216748237554604258748429254123890709870878621889056108942451661302522287377155525605851464410988794326232468204684960622422066317866944710522552027526844769446315738627978787623895357537652922734230944638104980684145798428574196733060500186326255401209935153987545709015582267239359668177414486309827331069654948984740640710568556446495708177825141350428124557861291527965025039291467654157867697462711117736933850363321652634076653358725595790464058803844748005475926855371924946291669062545831672100157132453721740820020902442627033313353063997671837731237544514128435395375583832639085282042393120615410188776269342087953679260473160545455728158714548246770061051963417150629549650947106933018923182102138703273391772502850678265234953831827268541871590738553049830318651062568686691859683874213055739993854114236714967311516723522712115414703085982268887557995072176599177129309093882902340040151270710037017451916939897529429980470791196103240949051730354058368265487776157996478958100736987530539476804339131416419474803318375115145942322027871029989142510920465877401662434980572756369977124413147567823448416473500248258929487350762447106888721699554857882049582191128529255385056525502825128105401285827183341024069849107957782811113011965160021047481880931599703468795233086023309471823959617955905268765339922509232067848389184826563199825457456389362165609254432331561685468985754200587427075766959133055579122026461390775509192560826169638118724148018768536830670736129935700670225277562178130388614818005589685753336003852564846700215709982151188613587300690572228243297761626338494261350572224537781319159917031485172947455760508028812866423832256061354608451521784995055358542329919565102730036225210287218052091010680004501076235946969666569749474059800984232363109663916149565877679624175175921564199010924521294338463222720234915497853195872387937629669612369294503032715077491024177924211204181542005071705291910994871726421301371425216138323200399607327253397542444932360604648904732656178243777325859101627716532362991046183274024268793319091325880353697139959392118782213238712706513503346972135749027229766469968521493827365823365496427617342186080353964395177334902190277422564840153629107255074703351256826818965178635813665598374203401138969469974138876037838064972451833706679597498539072395406196776622171550905098792694061891958620974661229649510333314754363346154611298379739776097404285060061291391285058235401646504991153267785975279374115120913313032172432210485244422192033573352999498679245994495962182851728619521784987475516236144112130245929170975102850616054316751326008277738825323631557313163862003476781772959994544723648847147908508415165287402988079621624474007099215799711930509949651735170455392057159615619515609036701317208017273028396672351872465310527685843705416595239514854227592120174934248400726713100217737136293095905520214652397195590622980515012573592927708410198361577548037507219269026820449344360516033684706075458187712250634612887943736369032205825191475521276515385281783781493480448102782320130227572078655942604369663980336092362242194545873674019957239762332248271159576725823838545077215612367478875963749404581881645674638963555186893677242051347775340221683898383542906976636038758950226151081013360101390185111123860724340893812363769952940522490216836831965689443360513894204720496753824165034319458536390589244188336591728866292887209513811531613069622906879597745240609040062547007820802451896994550241284150686858807248261964991594492086522543105304610811705452639238175971572063429797201231520974064069624617194310635270402660327039839134665856127377309631944988554198014545948194434627610886008917898641784405643356633318684709436295737620721305801977514827822109838056049110838579935915460986081400957925121372424239885834895929102699671383006727760781380881267127119468144121244189309616593202243776751752070692757153865182191633051955598572099981495000463124060974330943340679151544867806017196489459718524632372941912063850796497975577626770166518764247275786153034969049414391626995403049570675449304823380530784721891645813766556554236539951901434515442575954417330589852128627002008870203378583974593099674211182811177553991443395697636567567445832206004254833059172299582851526609951104683494547918737416550622950474825679847262758497095084248246987250761660019852729463538859740791358935671240869915607185659664148300360395730716159657258214510195218375296104580392429052600614588756213013255862133422673130225864227540632608042665559797880494380710165723403930381138908438747904974752311448137479464508285595764912444348244896622291509940275609456705242769861991938002574639354807477306212113704555432236921790786090272174751774171729491746784926672371709590834348934279790217907667418022293128365757699860408444862212748405311697153535004464357891664440729126775869803899051116246086186414987497538377515274823216482706242206757865955729338203924360655887751525519602929486284925728902866634964858174594371605325196231176069437333770283855539577328621226057937013313457907064705705231088999507101644004974734687749761527597387174141619407249207698197148855471898639281811352519122295305534094314178917759319094485948376217350409767512147132587669188472030429766997050404874761987256636320842055027645644835320760096834941556028201843491715072148605096832800888039545932491438887540003648675931449033091094663852579442820416222674454749466422283685848621108595419158106062101385407976624205635670796339717042659509584790879682737532143165764628583601842489548258247400488664031554029229879430912619237981783641671563801666542965985736895680585044738293590962219975319677449165189073813156269532748257312694599988447936518647098113965152170991017926052825007144370870501303337308024173182336258684919673968038259955203165839849546118742623612490615132361008613224610582991351094105356119600568175361621322065063983000165907913127568400126375056170748792150241633212246187843652157067815738235783501980513693253269420562251698844090189777675191120248967624814469962585260826484813048735654478446624893647979176553278861361621087801866844035470290714193222117561994629158312409809700818623638962185019012293365007745090552868085166172904521431654572024194852574145713045529636665122120025709920710785153904084260937920393432106732365182238822030426251787866121971354921644053961295228341682982415756233100900591910851510805931827938236571928600199753332600003829844731800671554342830521240715179258600341313790198658687457598842161386761738634111032488384768140824195114847864957978426222737905977507873182730102403713563439106726946162768993331573955606665330124556277866154294416744834179469067733003649236120297894852637677853566727478342638393995478803217303866584467945176402856994495002471685280880604934743038154003158620652464990142913474663861894365189779937141832785897097081746543113147490783231543709939647696494936112463814807926431711102886677844674029158668237272758609773248025740392975947512344877100889248673061313914782267073984800573147457366680157208768801979862071011785092089388834702722103707303376283393072007747809025687194547475960593816088719392200728120535301641736550266310367434434649629571171192791974784299429440264684200404117958333993706378212379643814907449154204786956409893081715762307498952907457315853515666872406285342955519160092599824935360382723282628510503737576392213844494677079606804750815348420408073182035525916787870946624788082718649250565192029821679041045443915145322012258784899320572155085165582788292381158101452837599752140332464527954794930972802791216880726704739908897465795553905256808252931595401279423037866984574867930363946426925639537291449642931911755822208631237917405440289649613835130532836967928121376500260164895507174488948770633440024748304481852575391334761982695151296779162733067130380677820941414639191987060786414499934227105528980228060847461990638375460244709098522633551460410911373517015255704075711621152453572401652250234590579059658543247124685207116579756478276326622440875137564307072926588993577769833105976433049343145548348955369442635458193445399104518090874512707289689339952085026582996005057906326519211002440337731590888214480620586336233881080072168717168763078624506325411210073396857861320115291484626633547153484115290693858294245135487040223523172496298318675609608755174260325431703813458703511946225098527384363045210610018295760434612535941563594342409691923413776282587787730685449837325937230307195373162920096277853455951256189921678618670409325764178845451576260668530653939187355770656397607162602671759838237109539079609201872883291325296430076955334274877905154920400365347703588116434890142978922170646442164616458745652845404202400196919033356708757543444764649989533677245819118650657085108287904924154424122005923537905643974291583463624746710422410138164033903770576197571514887121056929009049104030654116173474851089229143321060600930832815450665433826947334667444792835698556736933553376613123638836874099815956322208475035259419346041141357130712227459587824375960242389239506151647029722474328000755228081025361949545659669088115358257097131587963422418818816252297931138834866499327431145193587808346540304910120548461960838055498272172557791253449802081323394548730719577773482998828376096728759910644699036439202612727476711623992681630985091153560306637490661101052562130128797492632215180400505272973482004461427768669440812856937769656318965586566612971326284776484301759033754224446528386880122315017685651006612371168131115802255788849255264592975770738861450495266180405441762629851585720501452623838918019109572507289127804726890453889209649141430411304006252168173455153293009410314063607191484950912359605348383032733798682183499480206997716850704498284631973907589283385104452847283143291011242364326819153222958591375448582161781675539583909441854982580416234834073723731727988747836535282066715883564835715712146901683881651900723823627591152787268620324966600130916152441033311835515177533570652589256075337218422143795797140145736892238587271713669328899314217184303317012195472820952737555683310304741134773868065294619963325595427004674961085041235122061334851335693734895998194404922450926520369786320724192785135833556515877373438190264839186558833739376551660236966207316632862452202400536027243043127340256121856444547662837314624238864565198115278438019713266383029985521160890300425985325858649706464452766375066202873644091188088615957814350362751513194909968359247097671317235522753455687298099710843416198632363088969146278540077579310715567579195807823559129478335298447281775392397598760609232486244202708985274380545542429267090947416031770463585531995339013971858069489626868959110772881357157925809876226016617722760737908934603511251449214942346844630367736179353377164857560132646930277705857081899982164621800169996783176424250216713992835985929355477822057206902665920709096647819541065080787319923279910946641203637762255091868146884098091706922943370883131123096223626649929375123645075705474315200931904429652605614537488390019681540633638711567220084824093711606163947429728883368109222371702381831399429609082211005542919754665225051595429766346557942860719562117631162854808507861568818185929173328931401542334211120413754727107846529865043531061569669993846976046010832351538651717314134968153990269844662292207225251221297703300501426690628343987290580433862046444601342060792315558791843311646084110325700769976094637509674565711769175544621780804840342940555692993388459796622667708297772181566802344403343736861355743258606436774721466937293245030556616561776453345628796508424078509856447471650278297202650775372454232610699721674393415484122503732542765947602940620770179649258212892876391875768325565945603933227690532542601054667956339697700571090062179841355431017886092219249981860038326985974702391729177369686385726614872265956398604369452818154602578457814667943544935732435729288440671042724664446945272127866859394636434930449552822354094924000656989911387923710824418867704639321325429999073052664810876438662461236474963607124284163327439702207517894735413620889850304900359488232338144170491528730058990896495553555051039718769662885146420291197426602006149633724077172501906834347815029978494494377457744536055293875270119709749206988186528722234960281066482891502682286424863243315970695520266535311069670922460441082389068201218008349389073107553610093118760673408028751506487401096642170201600583939501717347210571174199417163245808055304505252409643146738223776645189753545272885300162430803698196458883332952753686814592669575451679123608987737545899548874491793650474502599832615202454432318292776902994726764681198301946191264903593492694700901972424129741933417891921339327136515185927216593881083784534889630851915759221937698168088368066429474098135607035554897013128744412675479220150346903539134438240913955006804292928839070176198881885141613552972566830577738339898510892474909762291522859584014375570417734054203491286509634139490153030376894940749509220559376454517762678035490176873521079908813304104170789090119600681410393643740744952871027161074997478411993900133547317361200421467321750783554658651452592698598769350548552237504357173508853203449711661887178664834838348761124090804833109707259181206299107979942962379744534795001992007616706723562578789376875146346074645861623962766239848733306675534643553362096949199022880421134329181488656631564791644670089680475362878833261304731436377219891328489463027279398116815642441525447055951579514229070409088519958983713038705246544159850354702333132412183632065530686981305728067786575514801282553809000794225898015301949783439308460818128013716781442702419767228488006111225181200047308847092001503602400653824945171030124785805909202121445117567359370158313175589243842369444716368206787326098419358894244376004663360244680888765370779161001978362156720558769947259060910166500608244418160120541347578168698738973092299376443892480604306348514272812214250263496032110834333540745594168927989491367205206204840953230594890120946117604846710197956946768157940683998534947454794839714774367459990140076029779672033726317987761240892443215269438674477689196404421172891562238076894327199866543571732153914664035829259969149397668962250147490893442386785661148122633847412685047174303660969316635877434213641512395690041657003931454758632066861821310269554063489980090346066379445735761329560208056318611752493085079561222496246356167816002888289906481536395415456929194078188371112342010314469568986976286126810382451317662677348680433732160212557911795729978372509217202213951839750723738751726226023424052029213584604688587222194383167740203457876671812033246466550854996289926607155550000505171749826169779509833625948435688886116549019160344897518197288413001755543019187418793483954368795407811278165498848467832099535843781758634314361363847774547319253504261274063123807331273262538879375946644493915115124239459587216988469093278272192218568933881589096395156221348749822707788286024307768777537468611565531194166092148832381725537908939965114228173958783723918048193523540565979817325262749326558906171534932517913240850132362838718540464074883988105344348329722766128412799841593098236882752791116044918683429306723640378998621766373953137108732560265615740236919403735105846960625472919050211640278137372826714338735729486431702241770307205276168587663631802202699621574540928257930100064453984832370759016171276340615264952210989025820212885037941439668749139514311123241406860589813830590744119614668959061842065632948835464076506787929076944585484331222016257584837210805424624733715513020084193776295815348647203323115551986542935264461829867463201697097652601630186849244819106728852839977086885946412051112111146263525244168560485931987132779587095001325138120005003728283919807898945526029313900111448532055987092896314798474030616395665863822384535539209708326799481449125331343321477829836515939764336710152341452992897412676267662043953785390815538815523116749229162266718154599416196281456689334008614877987258543365828664714007697573567438893192812615105837246714004141968537375679266081813482642469242234789859994852833805097919582992610638480123317625164553749453733312789220354121833516224769896352584090724975454395156375973536974023515062893664451720953678734909617319983767974011744394851738271695448310730509465071029427443834065149249736347869943495581676579799228986089149404901828787629475436304185869226944986463533651635747622100219492761755426753113298639850448641018523158479512643929814844472192946858765820833427986637144320569998462030347388316139533820223011768608247632118399527890495509838225877755315559582574434180434703812691415436380764030567699609428891506198955788651658573670087866629637796673583181323027945010608682025909430143250413548477135921022400016733177831609846538786438895990244056439853649445487524533672258405338264941461025092683110252393201816520639154478203638325027147786483749615209932139673267603244867170001227659323898814888993257176318200674487736560212753802646229690296506098899469380583256607433785967566453783991186897864711970996320171009708636472885550603529038582244600880093834153052478596160752749850490553852512924849621131856040134787510800852779216132833990756517006917707875480885084673071756710331896840562369129632316828004589045440701267145277753109798840174580842764468706771019535206455140842981778968868919654161459835615244125280692377936603983204578815941568230306906862893610185385429370588688980920050705399786091852186896908050572934840657831333506687195409203667820293122613134015567199425704041842840263195789763536883873685785769923181935929758894402345323384344586753506265515653980710486550970691958765291352226214003685409258088065582543989919860223954863028985485768901071079693273380596653458392250089095844369717289591949221835720820194787105330589972976549981025646620819388926377118873719373343231433987724128972485665104903512265545429708359396572465629731176966014189466218918938718940999003507476259353943128857604008941181972232131970520581415524268983188934953897226588830389981661962381929942601579453348257813869617156651546827245919050022908434148924872276218224024994606238627953717526899794632231044867644806777921275434990876934320051758744790640573114771662462951359079663179047529207627278884284408612552069704373679189399215788160344991347598818212816599396597306275588794800956929234632709255696221036990838114562883344835113885191180973191537016788304105264976707016183224520243886299066239481221847529171630412467694499610896466135963790585901988615512635819396825635906286016193932681400618092279497415187400783656486978489174033720861589818697734070616871382474486412016676382202669200100746474361079756461485886741063075708136746014387040037845107500252173937220343671078378346589320646908926595818870895226947834974607524718016883847728732981155006005908468991582705881563311271186550721331897218903805321999550493300228405597078947791936288372968501084764482391148357390563630286609879968349025913237904131719278539051713702908289642576940198442482041408458316041540801661179247266988484526232692355657983517862249183538212660497044405028180389433610675162464557380464912921669054539391132688561492463229232882385094690406734835493909889218374446376731396104751657496553217405108600220727249352369848260346513084183002636213073422505227488805514624037891129772299128292529647630419824356054664089218008604151454477964439938366512040579298302343877673954376034196179102314334622192698100207677857277602439746374471522439986191984608761373511238795592266077501207193901154794571744901086866232612640763701672694170968293567244993180913477359601116528445086948745913327022287741144308756281952814529618882859673016798199737207740486209931016845397891393320481804367834748459077579786163495084793925161270271070480213949594147635459421919119416620098379869560407567270688328225657915583980874805020513692781175907845318504396258368309697685921017622379469660577207047537993815669018794955302014663377860523133710154179826237081292762424706836678528885860978049909746147643025312288934269783044974961989457285194010238581130055905120464586390651362397069822036901735854886301462062723293330240317409191007141629362936468158063489489521887261331627836764369535797776965582586983543879604932798024707840370266741061371831790432935864607797947644899384253131279993656264968199971965092311641120719053774603369651747209452279975502167287724624068223673178520990522254925865982938414965505310130137692595373831210545098711138381856014185279082829096565431664757172504734891230253288831551800838971493708183511748068027410045762921164469254175832608519185101821270308349276607601739515283148633073351223854407106407757496638886528881818522100924606871660185379803912142482195881491574560890373330616715676787636135786537020970736461274670186733937881500686583184949730515726076342811951786277377514334809816104699459512324139579712423836834316584679204599327549301004790328935441636319470251585139608142943659365386633911836332253527995866679805648470278379191846882109925176765831728187147624612883712393390541806109211276190242926472781640414982047861290697748874364976783527759224284363723619959016036681325354783883143981913472296501620906469280949047594484199458782052534470938151860471285348839001541374595067323762787032851951719208960428146075912973219467723674427939211537946918471089277785507114028179473966297266049486732026576269755773246128612582584659481962835272116690516606869491373731530736809012810361056641283703260175201125411330024802075273225734767699609817919424893270796391862919006157849992605707334838655561519812708639474435590055888672633574626650863145818106763727016404128544174337208888974967462481689231682507410454713531367122586195979542650075009139775187202187085212440036074787950577308694533403583024400974576349231441046411673597672078071918785914258319466479781112424017248420349109374032723606445896824489793723763575978903309005620976070180230705443136843994153463809101070368570958803532189297489552996158476424811720822759463099398364199054470783182028128501971086717881714507418185037036395107389288077002686740847345563255862602443187388901480572066223748230709771688381310771817644599488745648189194371389971929579876459036776523475207301182711147002945044731660124727667703767777440890203492854312603662369621372411856243355697902049871325099468054565716558157134634460899761517589118114618420953789547789765186457566607140316921537422745312729191486143916592656807544493089557788767297431885605005227780978524875221066821624488737758051409490869655200485077871979961255600552952807284762542217093140627599145683017662518989025792992288472241584289404094542822105246375973893605466548000967843262238960579781610023262465470207681020437784636513708213516186943394882060769822232447442742885628698930179134835667471320852765100986573149597973798181268632778976621171433982339358439659642340609370245972119715967946721569730035588190025139334543459515653671861374041130966805380682697319440513063062030403479697998631863413741080160094676758412074235917691088496272730578840918636673571345822830169739944471852893842883905242633909316627668166609756551280586229302836464716018528432281568147073090979612931373623344997049909964102945667216898468211068484879902373979316340419910017737528249936942539330330983510984578008765060748286447542195058689522794631910157762671428514219087427681974613559587049039350847223125257216054923017325960740621516794372088772401766170500163818301318597038095888273351841118764419498634901139449054708318876007177500597240181088416262898573000273083292803848389237335036908296442251205723784091568980388420656876721974374358592821587550738756850540139203799159225112297957699768410340801910726246522643565520285979634311265910651357348138682203077407458839323838309268583366132821745791531779168211243894869297226023375608509188269003047915080007167520739881126155777055227218048353765534439710646082420670028089156500684474746545641175761023257609314881276659921728327042022551074358968583703368808021274870849799613447379968357854398863021134478944860912657200290239909587366515730270561317255224869659940154608171295523126018800614961195486976699941044315105199221808601906100904099320530623583618903046539423929727029030239730018597785113029366869760583559295610426889590176594701174049489416976474909240015836039311190574109588166697478589988815508645291130066927119385871582012862676771677337499669685472774617940095747264960479806490314603670948616026845922379352316143337254136067199846020448998941247973596804565295641584869003064168679147693824395044072925978084684025473090060047068383647296702612138847491394834249023130778418572981394123729140587519206113436185758192579360959453182883463475976866218522877857710238243435688649248855265250359824203255571895987871931162714541116836772105026363212845246970740003883545167956744396018950795895162527563179506899196239520530941855835824040350381016748604469401549315918065709862051901834903633930443456079629885516789390126204395463648809066757196611812525782030838662664440681486214659878082926791341400047478859040847471297614055893928159122737438368759707978542359943936286136892013368666284818800850457654208138884480502484158649866535360362270195793731759225964901037922928343326371937594950430758376821928693573704015610561586941215993419295521827481210182346412127298093400305001284814648041214221303623539672923858788611446101172690891637785698055715550391421924347713489133474790557721140852553802533400664741457095012551994840097931335053224772675782270084796498525840354047252126866542600133113037672182578293277296865538667696865431630229728070821162430971955008367042221548165647456961071085565952817487698270014817921703921829783858821136445920622848527000449715596193213021836211922598349915767630373794255677510350848649827368570317186252874629371129917245602098799373197507478469645482730842723491928858185433424404931649929518606558144814477916453440094039866986072277493060794203959602671889072644843477323267108285913982543051015701619784771059977927051904570941082922069901071926528986843705468117308546180088283785246297566849871756765313618167845850562343504239690400017879860986649080173442185595962013179908264537404603360884093255922025288912976545172418024965461084862573970141132717476070653516742013513008945896495977109379406085826936531108884276834156800273715506575036304647602351084581684135694549673543336673723174431736675430176210686731831939927802313094142833356831576547204041354528236633912803728176956169542270980132021206110395143852924954524790282988522619231400623857229843089259207496355600461782986399875089163195997190144238881363801465522972215809864764352464819146228991905225390490861211880041538060677794372308267035788278253711130433299885732896872144417614389378381452018494869915740012888632495222501522406149035508731053936181858432992271415711032770007765607102558291210528316356997015590458108510537864496731791143545163805253819065061853931813130234438785835832890815982906552560776333558154560093913613364008972469029313968767819462359834125309792061116811264183645153417117461375872873230351145467280342005636416891818381021083283152852272980706299165466369767029280371776209440000326154402334031294190932112180217697487209503037462188894708365184371429647588299738322175415337660301160541094310777873413535071115363186476630914952545633207941818130717405945680546750417561198392498204517009038868604755137277015481546098234733352211517240217676262595334291247298089499437058098602600372900776189321271510681594021269947086409166532492976291399033350445461305224351725493877097789872590346753450412306524924991574407153362518879438716547703498976171212370291687345867162787750077624052158416680843414220740168068183740661772979432827108366888528034617757004644934546284622275174998455394432106992763371814693288354433973450299372293514682957891192591442122237258477087009100823616454386556916867561106988564019135592766905083884813323765423996804491664135541062072460445559823905829674529893070084288871775922839321376317303926641961487560007607613622931250281303147586833262149711940462314821349227006741825392411276913099182206556781535333439610403142556043434594109600881677530960719310961871685707672067029890022178175728789428058826917798847038450656173169003782873154944972171217592179694788490593000339013426915470575554075275063323352496017954679190475407217206765983312402721380697514063009033316343799386346116916571701131851978870053040186389666459862287750341711743497333232023672401019839506621356117857908228586078888213449915539802739980254201284898961104968346205136650855840142874974010370712692035837209783252654122625912581943352615522892007064063995012765589426269249709177454986642104695509510508119451914102835214489693339120827641225453665425329673077754238297783981666969065484698337820747898886899707849645818299369893785645269444243792414695816766621785327889308344517291200997716187856699619764338023047214772862551635497406903857659519360568794279009457765639766304028524854766020907316961638206655842259974539480130118348284206635997417673508789768264279136844109565664247632200421232590124989185828903680834682260583104032260995774682628039308378330321704724668135953366106542894055113445979285530209639363303720092312316711167116369555277862879120248802385522873738438007499997912814617864106758419365239872432347664414356286109406747910113785239644058920523036083492138164950701292106219815856362989870674200543763331495237468248365059458351651574202043719993653757622252967473458610198534814557128481324763939882040213482459900744317786101181753551691745210337338552836051160583886287320199774878430463896432188991084206853079808210181834563935553643582510000286432386190653128586843903542631670684713705515962158621147990412161432767559724775885523960519607412020876910041569348790668000871480823103489201377792207980060543176460410594777381901578362193775127805920538510814087958632606468495218838334194082590415455599136172497616498515769343832255801042483242408247488148777945036658177924686439563907409814786100362465766075030476805670959330496875540730027213870055762823976833363811453673583604321602352150208818986854651442644913654023243886246453885006355693326352757818471952966237138738028286793353087185720363686875671559611716966872182551654934868880645856532773905917948763773992067244299146503865091008725929753371590250185353256639613659629933635792437758208412037575354221576766950906368583003282967080026589073316367242029638461031768581075064354669284817182860796008901353049687366458760166783194203059797362784177558623480392070684921141838371175042232347126350087366713842762760587236181568108750654204260683219685060681474455023867816085919970111602000872151604297889323754322480796110289861000246988763361766564823913643892173926100222104725734670372832264094121021946058587425738364436882712315511042992399376215592036337461562247041710777850947826006273313600085569409591615226166768609406310810230670325756084668948410674100580098195208869503548764022376693013734927962255828913352218701007137873589007290280484984492750675282996154466368142332840732747367096133591709480273910871707376230880046704975349335551639404887802006057802656438751003362311530543086617328230333598693271453245237957492790912627055262960713886446844221985255437518585725102007951706275598290986497478922990551548398230619844941401623735451844782832414116509267855403785566032009424618720619742088937628636397986367772771959524173785969355983276880265442521062325076899583387840139113252116710252531710837440964993778205360605870255548760057506379446540361241825534063994391807241603130082823495385443304483823386348876178638050383973198311066619675038097152227553885145777604070049610087290948001914180051658019494003923923587282963999194028743292246412412244346736658386566785764266026786263157061752646559693475906540638911345373542241569624042803432448674240659939413437670704164386628071810322908632118847938291602256784209671532385330573557135125475280351219824630084329555693678898681574076628159235075484593200433675698504044625561958563526705315449965245175037596730646370691864364469157804193483967465384072252797438355339041450772154795654894614924680695635668096726260928323475090888583654980002537305750794569615523748879310799807244294405297925114447459742279241595496444444986450139619952225678538404741697385326205221516338176093739793396089405578732529418690783335661247621420911651383793213299409682399345073817603605828745160028844400498791836512249173833981936628589794580665167328459016385734605831982893153256831221020957952659491943432105896594749852309825435596452470024953565655179992877421203038402808708004905005608194547275953743521697571968387308511948230488696474699265061997514778779285270287902193315658455461264701501358887774659887490695900232626503646297768697121229766036737032331627322313598696513954695952014594520706718957985477127356582896515570299442816317890482207861102775721060140189927532272029129508782710757657199198968881134774014551517810962160682907011323901097524880405687351408700823024570282591085476724368227082250575049515353679035595075845125852565241378173877936186549265011703170424422295251431652126297681304795561499568166257742318453446487998488971023163002191969158764099215356943862286609661528405351955918683346528171424398594611635358486286650391947069311666089003707225589063228276311208408073746634692384443698126361554717032524850756768027334021526538232561450120131604421422954819596172445742103153141157521421083625828832979278268415820112179977328068173198828211780921068866504729446966818999265269960413948885312876949512999111420360463117295015040164373646205273765051564861218343704958172603019515022052032016545615487652810555769372175039794345111899316887948954573532773778051106531340531260685182272530424197364157633784671041194713325205526443888988216318389714382999587338937149520500743424564326143815896531580711541983096934740710858795119274456672656020357183182127391756721852718315829223193821585301102819438582147796566996791203495637006043604890760071398016154809400399452707468577143092167365318264286373248022018621968286316122391437291971616757256105722937545844774014768485625696012814680520888422232537732200427827009455271697989197021965918623921979842750592470270285992888265027223218246754108455789654623321782995897627094983381700817873102230522263668526306437703168832446443152840562894972176632964585285436212846046239346000961482727426253968658956325809413823232371434467878502599975562480013271193191216401843639525844151001284796854844658571540132162560479150553859482458022692395113693571823186667877498341221194215192606118290458068658906228421706887623252693139991356017022231758929833498482377008130076233668046499445971307623740791977430376171895589843252936179236197550063639973314493447632846056236541720044644604318895265270715261103794131366746195784994258243035409079564199224963330803073325405258597123464444437588660429385187770585753960597994603023610325172951547764382592833099593051947135057677743405722185430371799508192526792118586056251197991052854821081321884683511350492084395791025104827068515934262423195787001008632399201367768723401478117110475257547501344803546726223012189579375575131373663232130862341472115526043701342473671230742204267285310400749190758115483052958648230126130012395276548729461751830975219740982852218286163889163383897932707384998078360909840622832688270005560770304551088567035279292593191377981788870142419701253485059842268125105719925812579940087367318963119773748595786989865960172824648042301382440604226799093481821918648247994096518448863073309430417715188063732346271719367739425524858874293559775818814469706039644596386619287986370758368258103199899555308068645721262963916994493777488168990277135844881244450149861826522198684232389715656501995841030854922246423847878034215688610244846121301988128055731297113062430660298405038117763298327027554322781295709144836955938179102010331875750462717068089412734605174798947342468651622329739353744712269792697405658442269408001551923477043303635511947392004649190511099583473674295016030144097516881981497312716260825677665893083642784445044647149176550734031715068617762967476166047516683030619681335181043959007807765577108476807971681110768308605233712493209997588509725121005261813402730186951445035920421452669845368129926006542931861673039420795921719403093954857190650219607706661964453663766947026774535362956430315113646494991268673788160126290692356920062538602589752927221394473877680732043627854195008150421874558980894465530056059281533170470158561081530334802556828335891025681787927800471376670294348616637227026672988793792599185789614388576583992833002808808838308193243916090545623087760986608902019532528893959482313212598940660732692828988477188399665551066228104698797187755893661695903065259788256954434437344033402998130072995029369456684743748665952532417341133919083943879936425203039825305759345698026536961412770149887100621708649429229147746082682128734280199289997173976875168143669015421649345673356751571784002899476794586105707417163743866655145567276818440112536417946172766343029219950667510315494868926749166105764601656169579417485946310129402245993101777371923861613412055972023686853465416637926280040459708960571307702272546986839409838019730804123043466533393390922117658804373556339289811315724584307051390729552193319984309499225352238354262172396935751977319296178798785112316484786428119910891534658873957566839425478722155244469563611883030480261664863373768243533479403181006052719175715824965223744202885868395728079696407392276513003780844330880587423704192088808702576283523366884190425317575896889273882869288826642552557965170712073916091434245195230807835374046639917292909926698316726787584850952045966756857531694952158121233337198114664808288929467427944301251508549261477743576025916722386546902421409397351066790704406130538670152188094752258396302681594654056867216760242685086514622078267191844981602235903879164619519528554268444029837501279963020188480404504681358248086181064937704355646869635065821440056049647833498186912542506521982694605782409018894284933694898812361232003570486397084740127552887571109859337375745858897977812552665626978792541170780475364377559158429191841889609468866455287165683611401568614876177677256466441956044930964995438244862771238865927574094801247480148733089497666438899228930733338540906374474502813989289323289987895082743773485860636207162424073273204504271689899425007539294991634802070238742576449285239449173228258122073123628226011126077457228183627890997757501449899804314628764074060896508564480640388832331260730738723783012496255192998389550689766006860140315583441803160166082886879190251516611123048334347656905966209173323845776479399878234445720775585653145775845918873866604272495406858495979500298489728386867513880589166252674274816164514759377172154654066324203702507540735078436847103397225325662510397589845256186900717329797906338153241683920861885280359553342214929501896243354188330438544584119380764309564214668775477761692471035409285909947009995292155617617646269445167679149182632405104849153500406160886875543100207029954696601507060169341070689962062428532257073112972748457135456566114557655156018382792614548536277701824949252102094080391212995445130192442317540800889936252437350134739305586098519310985563399729946967749751423735939738119099077162235901996245097073464189845095404821289514398805740417539970046369628439051659246920366326672004891036786064374902816435892922411964992796958181221499881893356941220989606336165828180689523073627057942803486287409254022174077167358036540429935002993140795635911122200054798253238709266126715815464647194937106949922209388298357451487402804496885251896681094128094856935281058133057573105279583442322177619762461932381538129458673580297082158780096748538576958561256841310777923183573649560764869145836734580513713820409369436734875931395007289738666789899554645150786708093759432844398798750782569497912274702813676005074829547554897929268744572183750214543935521853291062913964586384993502186746757201969752812708074993163578228803478238358217562908096270807062418771204278385415425771278489478970459825187911297461695979699861456786102103922600567241926555783693939376236257503666477046553269042693979588739139293839741303480814465396432544083188833260708961352888336029988608511802667769477136952020779098569496720268962849425094086274491348328227457739217851427119842236025263835156969373728364902359588298654040352881685504675109786685835383639601971154675101789072900572809853039937306895191672845143237486257765834199423939955372677905010673407342576182548131837060321769086469882837071713545195780053393211528045172663798077698176893306022834793169059414970347674057696122823913236375735409249603833035166180568780819444944849147601874602655994139632547092762862186672030246967556539358836605904074082936014098689358694730448481978032545014937998458118960782198614123057141221892552735358533727692149366525011900164690836217802412241485232818694064137148340480736839448052660257243107976769517736190225440070117587885324291564189012810888195741039568525330562670592422103427357136514256460011315352406693818262312825256295185050199207514137868730029163805861597026259822497670068156672727070419309963259348891620563913790148787935328717354782676936187677992654653359649814264784508854690763489857555010959864885842094200883914215289257076793485862195513419183545464726972120555699041646509606932051286066472190797825682598638143097296138304776510613683946149148852143670833679009371681368724979895718916526095729992864598024592846060000619486075738005166786245781949170246141687507791909776433199774357258718158370385939899406060648722918187097226999040976348666380162216548614063196819793813789081907871270489416051697069221141436018407729894277759290879250709074973288839997608847543554467960000544322763231415121107359714167193663768970029603504522787306917820590290624122866418879656654696967727829065814755194227041626911231740359846252119529109687422325390635343557838004030779583920009914402206446897132074630834803086231447075455806152491697785886873485341520162771954404935337294582443118180827670207157417319052589798467251779479606710659494800472926667260769371187788339387280631484212359997307477360204867950862695007770998823127805606540139669451795463597074187941792031231052298046888254538271919505783504398427299424440183727570842421092582907929375815757491425387610622089910573481209461485363503069389319964225051431680632153956396486395877739997142335066732499524737943733160436831286464169724435043090669075945313552560332856453429049123319849502027280043781653074750104861573315351553858837085222143782088035014493517911529883531522054422806448622008497609076493245545216657131568508228535297909064429817988151657303093617693265170708846966755839306755369841039588505545999362841899172081175181229147567924435448182725474068119285882509424656780698877851617769939683677524258243427029439945124948125628125986051932068726631770806007973414478741641401334431224760526345238836725506560928337806062154441540299771147631351782069310289303692224388635395128000911372069654047633591778176462713785308622801039427334778223329128574639918214279028321778636147340448322143783035484894049350776222900399742404253998017988615205995269287311245610552434149092370138224220963825010297392352612835378846751629366323940797925084448504280816098768717103547495410743743184270001115797832626438879045672700107006482600105725832907658432706031107137715956503262409664345395881100119610800629049043620831450423489862830012840046303359084689475287369192965169152690730379721512802756555601904298382824098779956485862661757002184685810073101328666000235887419365576140393784741532804726139744877753951552503738447677103443790889780291285427891168192607727950610442977235467679008584775247781274686215020359595393693158331301139142019412280516312868307449441929028291380429692695136055152374003076418194695974701848929190270681908060409732187350115934513488476231550064434963272024965619394706772764717113459370198634878928817685178654478751595072595477306567675776691597637237870283782293539977890533443022332624811625249396626366027739152702995301585973488913575723924780690023751216037418453298312176110034605218709606875411486994191967559203900255672335623637606937391946130146229725100971058980538842568993122343202671636629102851143137575177384745269612058683668961195425808542011360705608738514649637023057140160657463384721494903734267928335515182657069759638029933198200733859176055219367906340040968901572293320333761113734977098415457909052979303075339356314978952065972185698861049537822880906306245754582482511877241805046992632226645789088565856534914381793071777583284228915761226388861139333686035640560418612074321953164725696325707717949741321127805526489848777017946890170130121443556033202708890072900381018224096484402385983610254418070763242762915134228230321453989134595118613606611123515866817715512231404371659252370872411661689222038932473187508849089058345220159967588270442580204669590136137265364067644110439071111814876784303305818721176890310517799001116059040096433242940235585334385604073047406774330312898869889942805108409195367281742118587874172770430911957519770847651587908220247517234255357094343984774559111640344300080051255101485236739731561195050102586967682880152832190889171941992875115092379883151405529086612471567464380388109357171227655639820470205925402017854688050267544026986231133642124327878666428551434569577053668766007338702983695852921079014001543172480647051761117102410693788283919015004431720570049058137194791757138083612967429820699685500482228050291966426414915258761442069826375187698938332862003877579790653087172773890673236249583897691857383916832446076442337537667389562213464232585434972074071201625100689919410389669498689418167175149502498442198633677925766578019122690470038747452039812649442048251158647279738996796694451098270072845652089760064760592605940751167846949158877481390218087580690525658095428036264689592061742593032475572783369840260899803161862095133870215256453339765233748084513930032929012507834785949444713328218126633034271374778812626178322249414993514137993937871922607726333125017720285794693537458160078503828951198918911979340504868375534980602749188721768015050273317664712658138276723075758352704190585798818496931321442327851370914471931132541386312642068741336903576950163555167942431946865495161861083805579452704816706784998955518251546273423972311536998735687214227034574594407334948463383349515403953483789918402061159322412709312147374594911768995384788465166809282187933515507795466866667195421621907341483123697177379533488538480138902110126893134984510691597794961586876571661952957829912694687686359764097263104014898010232045441046902511076817760464383729338545411902775611752895201168194140903053338749536731764854367728988463611230551471777119755404136591561776845619544430513467255306431776350237769063227900391014201629332248679790158372131405691367617417376128807755507808782406239756180801538868129874741789810470304754498944968961670540489730272570293832578931060810339036058140311379918680131798265638925280405761163817459971429867430184712539534589587160582570910044240203714651328217323018154385151423234953429737983424661173567646584748748122664859342735257721667919745307648042681584132576113987161293017597685007464094332134262944466906592933623472019758133019741463665452540019014715129956673712155360537497230460357261718303049590728720561445680039371380741036715735119610789718473878299500886412054564499603884794079319326767880478144043762928457129346843846901314266128231326066554065380427018756104826863869116035558367741488217848782414972440914528324973932924116508442826495176276868495923804129769479097297144644338296436237771004019462897685242450151830304936287434819408757181254185303282380685656305870692392575351919261803857572773055904325168461811136104471970272302065239955183826007366724572354630902479444945962631841473341824394638825444031524799469174188651811036670458516677955056021970880294076751019954003517952623292868762091227023840052652109059441922503300613518865493707656416298731303451839836604507476829811374480289042624141127891233258475306975642200550415933636743395176509984030091956754634117759475114706963811976595199063678465178990743286277545218653329458746321529646105230440544059724601530627489626654349120493495626377203920693627681320247016458994770368108155119366145445810913950466402675078506413358032240147275327319045226361154578611397588571109425498416476289100110848466908915449635815243376585590410323863847915180281624187086126972704360644603118000893939300010706168244611536110715600268011132408578526595933921137311949903194236612585468438005854126388370417584278218735028449602359084960253317500365915606557016267930723674787529835069602031430642673174473162733834899551973273459140915020545764099952346655176648043072666362324519197206549897428854609261932721378035966070940572294035145250119345493874128104969280924450711372780505852138920882389151048434826325310488653579533383818790576888385846530420401586083599331596825149809719635749084877616296898454492527909035533805990291004769202915416660043325293824632991411231104030360247730041483791970372270238670565859376847116155307058766144845984592360892930820456009848497706002093459287086615441735039517175535692526728916506350669297861761852033247630125772880595160294538135299458415246594046051769401979913438020273218846269807613362802533720357281544680066558694103613274273769612557632914504452877515069269925877028681049678322088032508844366653293469225200614721508477005408652485209679545825625802147548380112738548089050796791866662523644039724690388565465697347982243111503120183423832235125274227353133003228076744304991510209140991251240835036149817715940009965969257696886239545404831352753585753763158575660818532296269775262470001423123150946609893549445931671993301010952787646194861449112413566961799380011653323304443418726495786954102600180405238495128523057008907706778626202954508464060528273226726939774773898263466450766443882497626546728706393405023487161981235572338390658784084161134152082585849446731588160035593389835980041044427247249802032385311812253522652208335643535417360594615333977942591184639045279067204723443629457944049633992516407356082947050336031099502336057988568304201321489162227372928381752073196080265447403011494123568651333273868571222123105056806347686144833964049872714013015593260482787304465350457091760294564321142796675091466486503841386103244837190755027282963191482041361199674220769341441501982026536832800784424328449983956975027249435862840696091311314255899067753097918156234296148118804126147812327496595316159540205092738011515611611841981049143011848537959345499145149373174437640067362468010445775326888466000726356785386534222409075051922122838587006047875962210279492382092115188800136033335587946535917323426815027693093501517872849839105171209201215686319877777662416185778482433354599171742413455919174894178057450223398071865109709276528462317291384486070117981281383858533515485888043841758662437564145983388722988992002116056489227012135139459753986212920621830419000641122403544695346135723242975282579273859930956190587377240894387282012260986385430217088555417176795704081372947576893302204678132363008844562624447805737670981921175859256685404764542173042841995920184664965557729337889111181212497402443221489241864029879132931331386165649282182750645397740339137593009148183786783172364990809454882525780872767986216054612424218178595217249398413510363647228652619555222256272103190044362198844843828414522512041444504961695726673369369296107589738357985059612272449053214602707373840620199889440351925705822356107969699754699277164203139044751234208817679878263602671674594148584751223408970734057887252022939215465909031898675409111237800018779700335021239258427614699316557768236723788846891496346493575991005356088901121996358431842478807492350703435466243655853143449019470827294799362489556012609607902159213897698646454743544519825658190388161729599963914046232238299739283515851623042553479348696485267964729237097785963629583083405229421186701704947463916240295849827796387619943528752423414538975864066966853032079428397173823328834962115000038272844570907925785416888414080874849727259090350825685891208921260095934421523346661988675101006770137995701953047337622390154231615162376175560463690814239683061669738206171706105176053864058416614066688405235244476832800989137258140814846787547597328355366967859624789373853455816436243792279924768135370174127866618249614753969699486704023287026618032716654310708601870357165039347733270928144776833290421425873919426408008870886190983308263091560373950954995146528316606646182446556084797823476751427177255943580825350063031205504046203341063030964972503937524528055976887762594191289498458475910101750728591069846537107172506882179680630844282438382396728711478903344463319950084894739833020319693584302606089530943933490024420523511562495305065761970120538159294318031845596374615477236028105945923148572956702455862720560235553284918211567539364390120638650813540585804991385922301296720247932356134250121410622010663282309292679043804557754947721798485858087946760169613534291893740006119039384910159152452478971066211394927352714873947362924849121985715495555485487661616475343677502976951917034320654923700317001913688723218753654226363700284346420446946668429671083181132305591568284227235878786213232559662799695875679878125558967237021310540867320074453750647466942082195505216721743014496231303608693871763684814084004334946345731023153691874708374540112297478530921756437786221445513951708105793269263591028891916656400515479923150346150578288830282524634456913082625080058577080792369891013370954884623192538400368501564671807407084610301166164610066676356081460663311779286122309023610201129425733337068273387253622258648483047051820054016490242330115423309212454574495727696969033355962874485038761908346401648516695178427018047381302766339906744339143303020515681274333391765890317365914287790027068711697804910424986632065957174737131544297977258235783816878090128892556922232669023578188925863852812520742269446788840105287925056494162794600108708395383994279155738400313784027977495203493856881689387930520764407059172132106016513323849145048538866313771859393682193242612269699170107725224600838871317177552859185186780679843861855185560127885135282524263179026275724162628064800416517147218248720526194702623567955656863312703047562584747960431379024736058604406967051480527666796167332341836830418430813188712954287956255039676244530976882299510064126150630096211699756399649147398857246362084541704032837777979575699215212687302348127127952162773502345294238138151045848473547781131983496646147281740759983730946472049991531984898978655693031546181089828125391624729364480412059376690867826110695420039729339455791233588854680557097562306098764292429579017138034073279015224829649261642556766651453217556851667398647478115483795099524014745642155807369666008464166848334992381477146769852592623933242909091934536925474714697579516926180252548680108101420516384765238466504520720319975205562160570663400037663134884633644141238051722014210258649314109795974070925410284035506075145748813951380906981897506328677116023492933037289980672708165207413259317057618238754933495394708916522515089967669975984577029063156691510652176150185477809236813759304510135646409794972748219591138855683341722952058730357803244915683273299445386947916621330030815427361713403152762641902774697834638022381093836314097601578843159631761526103729250190956373420763964590379619885083082866218834412709719627924808607983840761678248040009956594920129838506779849619870855564364592913804050192625766807000305577684277289397823685873832980537231092640385410659722759635233449204684504297219368709900643137856311205146301297581009016880530651876235364752152152589955065417038240225171052220508450303485857335065774769980305998787950812797935810392477453230699157631099843999453269592609773592892833232761901659890181862502849408653637543821313044125093564849661082617780825156737299530771447807509135693981539063406943197496867918749453933231464999175369025842044833243773207887050967531785829957670264651162222284985336100778245014617247814070561092399277416220291394754182301582320488537750033068355980094257748727086007076556015468369175003409218599098977742628572901292872094462909492799113377521783949064650800372900258040468167181470130989772892452570370712088390170637214761355561102932790668635153924864339807977370584212076792312321413715719563310939808494788381585023306317700841627137262809769702956476103919798126734370041240284605099820860470636746619956548148099704405347494997832977716265170522189328427878226995303212485561328956223173379198828194359537677680657550545952897879378245419331334022311041729909517987423009020321767794105753191342419641695700845384371341003903320862165106445781670403942932851871665602041715677040108150787028594072220213759422502678853454092862012682508286697955830216178598395866826682129096969284134524053124534236218690455371425447154157182346963637041130381755943289930465823298958994435971263408767194597491837203022183377135418182966917675638159139227857687658673887630722238799475096297078023613259065682732932919056232686358086481096154944489911063970417224076434881398753657062346171853441221577663882368208300652024296172288325304924019801634290579926893133843624683408341794528237933019415590780392590386401495012318337415483384510838125189715171652644765247438623801431932860822827814634415462577871251593151131069049706000566545760295324411274716468769321423245192545799270650520652514340860331328279541441903786491162172798104820789791018779455012860733779543633954469911475461271400586185878997908476536044756292869796458484361201821252207847277629855351055817652922411434816622366565180921172079995806668790094356639931410397491864006139851902001515339385467239252154993806490729474680599278144582864862952396718278987511824839073891923878541382508285483903997374137274355460886755936013280839238090623268443676434780973871167807443928905561635153819041530935445773150715032511031154831351068468152506004625175796315958206244847914672569587306942362170346923283575029969972242923134555838933388645843188838650845836158162733664083874370689511981344065536146250444497680479208123319422006884717818185946748158094474128807215465192767190641020792352931529122841739572691671295692906188009471307718849449487530023168367880167081260168615880924307268464560077917969879601343932111856462131063936073029133009907949975109724843694098700899424853665505085204350173096851956239172528700332739003165153183828964826033606499906642984394025907305049226148925559154829999685392493486727002683623622500129148975204968515164106569172755641539029318533917584394693171816104761596349356143777031969702058670147744557596756379140714783652758658108117694823027728738073735497551269697014341977195371260815260001762939538207710865904869870565125149004175295801576546589777914188199043090619122181146400301663461686731434758711590403631594657988490269390220634431666347880976206047199525850317085076113919849932308781705729458685578651967731672531114940377237562113661954895718482316279586538397671565757028636765061219856407984798502958829102529038825270911203965152455295714510820571264669180901040241700641622612164667717416138497975769315443544539957398025400998383110476803696555571562261405953659718263029203672417461363051017050083882872742693339516606554608644161621140414863542684009711634161997009030717911980607509693818312373333395538353931645958357630531606777370646575384264479337459570162473115912194284475354044650422235527972538588912496564306493335053983231012865377694738563844397488633013237001856711764875954396918969884448099899907985049478699087792079562077029796056755085466407175395064279517685411714785401351604894158539156228548287775687613247544462085725175001748335696842684644933159188846535581535137180697343072144184236277814443368204295089284834909377124817080477140021710415712735923727721033395709100031989140691687259893071868243706523955438024786600028570498857673823970837076969053357423214544233962590844061724934745550151537445256021220405825292778053194908551355868452400019152440988682285327352930722826010592885586214190519946187584399788542161885461928242677216512761186897952165928861403049017397850756263850402569538901763854279794475089777959990747071700536209084716603188068086168652241141922026969949260862561393147114505680357726689592820770298032903091794499693803951924470092483169051589986217648198838128736883265710627050938142082827809654397162912310268794034549629912030868334163058059634163078411536832278537571331482574087045712036684240590263582101852829302157255166595722941245477424966494239609598803386975511293250924240393545669389442239390912024383756363953241583730755987083352975439593512725805127087084169189566480276565282901022750457670420851014434109507680154237423814174748327327050456659051554346586062794361770825193394961324066896907427402748856571819661961952442525246567785088056327995192119259994824636005448413886509345607723040664626390694931881959334169008020008464063377455852355038128478273782748981894955027800966991416292104752125381344477075729410296196785908803701442779775379296312498971828513214108938529294967295929550377813341041383036328390650998945492570669903533481668210348692572140934233307170285954878751602167908688745453266344801387439776791694191183585700766016307037329887201610284085881361862716345859007722168179329689787507146757195205515558360009878579870335428347188450959443174308969344869867153934968468757388057543984735925299446811683517673136755093868933568576037270549497349451776707930263459530660615395319426999334530347114412347214759290855914880831192764392960836170249965517756193166236035777686025838249741771470416548965967061957729468199319897883765140622838524814569397058562172775497695419229205758735349831265481601135714317642258771711594918672906969227226351748747388012593155542011080170573692452035198685267603727306222853638959822647118117958205695421771009952685289250664518831612117910296936793454146063648929373339742636660742621518428213059880441819352509461836155033351597183536514963794285866706962261731658408795544804754398790284275360433345310516218661919176058254748481868590544567103909668466995589324390113759111744124081019486173151484550473684618459176579669665982476506791743967817561342956370304335765824025661050308682956522819308254769015608183747517309957864315481625678021387053255494237503305435969158197323789143900584582781906401998957806041972376725650360678213788144108168254547528214171565472008616845873028724684626105119626057302713293445588321807431782120601609623899504409585252645688835582146702751759476208199931154955497744737156138482052593952978201777925585923896042999150074917462734486104368537010140535392565975259530141223444557773085925593184867103984732572668457203842192879855248253214635178176737695866484450004469575423739804898334175160315051859404937589994024817156586618394595777272245833320788676950958559204908813099526713473746962480145693474527022924441513849291372555411988063928229190573830706487047513528183646250332282909252174426864058101458506823818121428301874957063387912426197151770433444851936441160719012923817746858381421673099108515719941910423882038590233296831876428495543100365631144545751884802442058255161804394928992736480269459725622218951554507114738185952421916523633969216551287758646278240455964649225793537011943778614485706452997145477666462366394296887029637502772650013521054226207876413497648480477781985855760123177295964710473167547091827497689759891563364541619801033537778980306736171764126816391468411606038417464085393361915630356039046370220920155268428586123980606014580526953907512750945216232559112840439325116552576448703164808638622652028497823584465974666293142125621364225650805924016829618233915586066315445583880129769265232541424720822712259467075618516565473389286616317351286792515390918665570466648766319531302405996405444292831756026403075329917605777367894107532175070114335875603273817692026455499824600502242758493028893056143816813400294879238290890708647813983797197878968538409668869648087773551530947507392474447189672027665364529748528151721422417425929355941951630491993540034703183720098621794103930397238568122396836341074730367119749440777191987903644203003960560355355531490594137593642893424726311848985447102521446565092152503818651365124998889391290318393080525810540363350283747891703044701277858663570392600597588795921331236116813256856286838681743631104707266370984589062630038838526297134343419728445651051557396623125848451556153367894000494967806709936709786836113428694723412869252679897453137673786426337088705577599603767121352604642744263522854032694840067268111329190038695960903367002244555062477182943452327067260702662270909373022157299948079621084994176967916310833033399639663726697949210639593391862353993896449406662188122546594382634751936890642054612517037013656482722110493768846270580153256777223712900482243343638874960622483681988199088909809034628027009100624771309159744391933943252733535541011772452349565796412635788947595423352945157665351244748090171861412376299365411731121389085517782794775227959565427926104623160928554088936981276430919308484077541678475308437935840472918931099219795722503194999868896141425680879036241822431271194007728825753958879903636259037816639058285921500300277801617358609214565662256145067336347908455549049058873932742075855669593769267660218985468022400598870587175320518352445739453234029829039928845847202140219258233521435521723610675072826747768746307337702469084267136091420757404681449956551545316991987122216100360280246483138086089188982133616830019428733984749744713590155618537674375486357106142144935439422004137855005099224081307995348871113056679781210146718938913784419111802401523011692784504452908431860387270201478210870524357334747960321362602060360187830430816779169797655114764478744881820109909569406589494834577389528160159062101554264106373544062824319254671594009262840308336517479509010162569217374361359401737473955258608720732450264580457831171651156900632431006515761509399522454550912572071401958550958451572370375533016129156161182815750358081411955489217032711187130557661169434227253446026044922142472900028252841725615137281116962317173918321457525722026791178766053134835483872025813767328909917528193859698344755395756711524239024691543292347861043094484865496180835255276221861247456011890876308848214356764500264590193428161200358382700952689372690330689555304976425113172277146609719800152939995458727097874480029173488084056935836441087567073842681128870241191253847788345926694964866371431395478350340000675792320127438948771912126828124044517590269421940991214441621577059229650544280913376832490201673965255713845237030648669307454972296021138865295151900605912802651218065676903812159160796450872213509809474388656482929115073616373339725651085115702863640106611662846364914629418080932972063186484306099172735624374595043086722810340157422888773418787917756043191121314167733078252516280713782626492589663690988688800872635482856160837143167518678226022800780798134195441512563379080951255590862815899832712377370039723037317592056112859042071691740321482899529741304977905203431080241945804365073153180334142040402850810278386277819824924040953635370979868060145761393736021519785342357298294486306625506065471812825352516138313229914584329963300692397352824913888108453886090737142305996390850436263498644915946591365517001763397494246846721127811850836084069793933678108299333825503708785418100002825479784516843757050832525552061810837707746840315120306537510796568536131293051782879741567240889482052598374421980238992956123921318601439479521847066753914541265152432911326960351575197387555914739872139073956624112778828473560481186484457486303936359628761522743467289245800233171120095736445498955741318961325668426413251868155043043977253316427006041904024503575048908722408462591297604690595023043335510883971862389232546366474330701223128009943831246199039074864886569905936475926532494164921209243368710954173283328580490007559325461545216480277406214759911454074337726591972315562046134854903888579893904875128141938441499894127674332300958233375156407791061129960738637441658819374817852677506987252388372739500825542154425759049934857710123875604548104159382321933396908627871714009426357001678177594001840194517531911551955160727529770751310375526404927830322584345416024437590092691581340953633561149106691411884774990405620526829352696880330717929628812246527003324579931849353187449053010587524228085032036764761097484281112104284613743050797777473114856794113238273576368097290722009637292928746398056730784618318069849139652341108790780411381700217801429837503307425666456787857689004088129522105140742605599222687583524374656286227490994653025674349357757350162053704190572313183675047017407532416935812889321406458292293525170195937569309896006097638108638655725659024136636383219521560262761295205816507964522738001440852689704532955089849773723712334912688576778119035018528675720353565176740585398890310921337990998151946363948110751711555777872605894789104295031080805743112188166443924496325970080531092197434185400401133365481732984631431518661116685067787031960150952067517903631411997790152182442776709539273639751665495817043392022095569520506606688441228934832344346731920750192394655752924416936709982407019241662024978262108590235920406704128096832444541517576764624598763261059955306006533736934774904814699729168076203668354084532636563033521174504155245590712219214890288270260339589925429954600706831056114199330788131207790044930250498167794627483992617494209611758928160538432727356108610498485072055177581950127401097301506597436609777376446995473991157529835201551656552652584857085593457868451382359084977111200325212496217695107892585643204454041459956688475666897077843615764549447585482908496917148327840198429906361068520349232117685323222854638888126311289314888119625813541071175690584592036516729219256333179636785296225338805398880185574346258487203563544106290254338045815190429026069989869487212982885476522267890500131071564124282948012458156737840517615169551558546890072251879185845874009558616325200132184575597115576471183949359626718020834332888550879534020123213837463170146372222475083926143127502406172632225394190085670195301434860750632794504250949127013766103380432697219381711688763957367986363220119141045470087153242864706791937839441496804318377969546985000650052002031684849892819190818390536457741310563699591152141906459767592504410904238665879634846158689838612433759633982754078689342354757258642934378780179257753079209831128719105053522963718760734814975511946577124376432267172550149668899351889358235101602217907039861738702109449542052407764531867412810083924567011542160726327555341357598912858716362883521551062216958148213903390982954089660903679205345477444362149075294149376475301657964859469572966881893789903748968798263117758965051216643444689380212666303270662854635058778092110613322355867292172902812446797793855092969114537928704398353560701058444347488997195832670483967719858699516501899278114756316282750716305829832426543019959358648954690164050446753003283801454032309681645098916963490063863139632009932071915595464551953954469994073230221576764196877440421144125392613861729894647371304786266760793603740323715549579397078042106894488954759909717138018783441720357919655849881556728920515228693134377537381817228262397532754459526580220376128815154921340492701364190727334511843836001693092778103533589296444413709252802823401893641962153731454333530133120585827748963884772663837695413173051499524503007465717572952704701912783325959064041510453831340474690964334032417477996896453045881733285169261740100390123658708303175193969233783278440555013095943848333764238749339809947493511144241562759498392129785541582347781295494720741343985934771403602315264514537352913571479788637974339808042801651853803742359193269742204790145459969375359286022741994290417763466168605210498390359473518312474785256024980779815580094624047261822300155073082192763427792683744391857103351333003909316791813560780387143402997846064564162545362576350852363525378135966581599876842156625685443608070624686363530003976703324303905802457197081334253559313004217685307214724720891459244065913370517141636877082381306661115554147465100374150557652718294918033208514606945090059964432379527925045242729137089671449921629387949968551876244240831256957145464142300197711926829703891059500525699836241048956970416453336284125626464932544537624704283357258186628148891388841156691979801174508963654102129501475174975422791328816797659882656416261336347217939266527074983096462997441441075885507689638171036551654720396021429206828476235817738845490797666490534824264497602508305883687312643398541842151440346248145995833551959310001191870233343830205263446366956844404564611001300699462297220421021344754529758406209472719977801738975942053434609064181603010404050767346291532842185674662065212270429054306007341117699711800884458954358197976667021959660005238256680533079354253112498105403302558404147119275551146884209513762534571399571483248196703134131592154258839286698873552672572428898111750654596896079051561911367363642348256510142828495351185334668934478495165785132281951158798135980161237216043859867330947828815334266062458811348554040884472386226452555870035666916218639947319754945610229626653606989005687348041121326399768329351497298439705547898918905428577836875666162508166448084669343155338284292094055178076750137410111025933198339255403127052119244621541247016693263712054643451276101875727894996877855232177623180588554457154615600272535357811015233913600528651848210633310439147070854313799158185834944495551062684092888562056203378064387348042004591590770372497309607824325275004173438954695694933820064763353893363544723752298762784473128054075474051192867070864305058973542726973975586176994257088792976064987146908279102695332562557905722709519241689148123651022788264384165850090775828222813365829013347188548048079927625549462107272825666618952177545386493965063869960407345443321070767608141036255631922938304491055535755634329344517608910503928447271457641824978076300733737206834216616638564407204041844572913887248800115552608624223585824917747537861801992310547506757175137362234123948940085373188856324396480764291461544633634209892135083559759217559282424924289748578301533979027832436476285501424392626575256239121092459845079034382031125927818872574933355091561439180790204989559588159795140244516474604028926767596869829949339169024053409169199426592093320751875319895020703390617266983587856650134103047492637973145764479043437825429374373409950436233037487093772386990465743620788292947385898434787410637411787169238125248255537234067825023566632359748453765543851685251385275017628649206184074168755892627644037615783476387358931424665808490975436980465420476963288771735744535555879642265666263926358573517008264414236263767510470509671468783115525410326935392706687428155088928795316237797316000831949389272404286711302939304796130335762903978033562926229824641210840653879300028306030863215725540327747135142769233620578411180274705178225018595678041098186174161741019999223928528068322190439157090309413689436970006470842512974647578645641941384658435044741561895070256531052636255517980549837918384010258142616373434236300937004452401742209696478291260526494292798461325878236774570612005434184554405225487604844502779325137318376017043141175920482856459627214241276374671205733440750569046740986068422296363080137242550722566703568761801083981115963411887914136287209213084515822102477534916558039347864516927386498776767937747463914856483121550696631193149158875450226916771419527594008962695807236332247884161275982745978246526202304812616098383585752800670920677724912871840731852919240166801555711882688156403888722595805666955362301727548475047939688049952669911024970447281892398653204142420328317714402980956058992521567343595748159742053731796857469194621855241727075786866391122118152616193026484034429685092164038023581195307208408327506944658435898307546519517920531509975028398384234172428670341006244928807084248362416761602552036885792177863114363864977102770806659212796162771639264123982609430980167876834838135601068320035588995272206014967235681078510809236057000593366159181628157763796717693925267238988410005176655741332125644677140372216914827928036933195701752370320397509678746946243235048856602082776776166194515277465258260245734004926495944615842967059737684266396841149623140398801102593263366065933297745753694289648892608749356675815030269569995831676515081722684527531560055834327722727402637428046327313736566103599075129143475985868050986355392144575435886908983020966259538247530216636323373626288933395597420118252836735333690063961034272972345660554919165445219139688712407411061731789958376339659127698511297121010271893397101280662282363861504106381498301787446102917945364798830342623488268247868033067161467854020125708161182400770406668395086613884569633237872918370495715884025003121597157538645546077024617561449997724765934764349745591497277932808357013865205340560929149741730659513706007478596537391021119943531500773228589076590492007709466418447829467512838027979578684306169072972419980903802774295345401614490130600594352783065091955532388980779121318884833304809361042108193446916594276307629090218010332793934524355660870971315629090488371074602432535322126876935959802662276738782945628776599633900234928431873347931448527047723807946454082210723529984716917299173737649100291074020896056689393108188246611433669586754923822924271696823915156544248852784851034500122750322893338341027258792474748870613735291444056409809469288060536140712403028154118919958020196442130383501652200932560095782297582750393417801235236868747714761832996776625083995096906807830778358697689741914634339381240487297929309420713319387656373044804612336265257689756337111618713745580585126048231255531642217524929120337571050300096315924605896833643413687864230144822289359860442265625378786575775719261755580400654595935283770096758615170668150066227229283434685377416353759084929040631858688741985716192758918371143488186971919776925482465686952877712205769980097093791715799509228115847275092743259775417091621938840892716103261720319776217645840501976818470144782968444514864780011469568144485698358653408367482383077819737097270433854303917496300437454999774036294145719086710883398646062655092124284892863661259213948117496465647666063395718537818971871067400727656779945831365219375637113086372269279429351779403007601690803063108321422313561222557837985647119530978505017531935173044196908260300592991858271672325504534507833988678318761826881355985352303279718299703346693781553287253863593117490841878941009725425544273285366156187392200697330477966065713817519062153472573913736299120461632007836664697816321264377400489677894885413031671739395868927357299492932329984620626868861319906588125527285807600874588352090613180395950766993258002418236571999507679236407148574753081054755737063492935605855593414520437126479982791865084168712114881256247927210609576512395648364664825416527106685221977134160204786543672592565637333308523287099164345235537933936569768127625631516119192467154170771482396838954172075767387008401092558912193573117243607709365126985405067050274923195564742369537156374777194010059801633872518771011545159704069397011813045666121476922171040635223148918927760857068316676835258799370798966575257006375674447827564585798364749098385622106445215402154502456922353926138209437904970962062268076347055192547511838686200035775498021628903738945291725426756873172058544778607915021932648373037142388970397500959643060616219998655228256403117030399691690317363750580098075508175110060542504147057748305567873383311533190156555768095641328120401965824610813075342991414174034928826685728302356917854583103057928526697850233114349025545427930543606873198203480887281698792078505609244840426617144516990499671575515410810110956007404773197513042029508516028849237397626961060222535805610459103773605426583588824556499966237916901355458791206908955346758858350651735267456199507165779999495526214137812314611858191400292974287275982454358282922172116350436067077613534524852719064790052746020891534400889744414109187166166228653675210332941967802274408130236539973885494184689186705146814930144333905374322057237480902442720051633260289016627081687880964973752120377181080705131302085564961422873603027925516010322472259364347803284666558551891074302393559801820364134431655053530484915455059632037755565268314713167004831889942029042350010992994111796137467111211481751434529941894032035350644917256298932620229973867324912123987609587541542190330050252804565255884346996434176362998876502287948032772619522541638326606979372098506238211186772508162923266489986047505132893126698698104259411782205574876552791882191392916413258359509541293823588221994460015996069892934722751113115968717582178876728167575672831752285586834806460141908263620184590680348923879502269795282214742381070116020745753139601840408764944353322289877204342715810692584247821380865310539786882832296125046041621740981892790216809809038537487394146421207598420612186037268724484293511736263382237406074713657535559026916477432612211412348480630580624878638248896901144764004550267171777383336066983441813537537826813251438372003416149813150686068768826952279830345295770678731488747501245731761283067129078172070206228375368379315848747205733749516397061582289835152194367170060190195528794038179094967096807536206010814227985089162112664528146840736393594870121497477821195924487866139130789904745011941642757889334916155379285203377599117425246823160901804024930240176305157469793370466792941224112640755651563804306651802763190690435680719848011504722030813766809615739527809513994833055110743447387059756137486223045419318363825645909142088049157137951196041412940058057942281512281504346887363686830988238601534778557816498844582845020068358233988558975059360663691413033858707867759933759450337403757899180491639590464949584912146240100160298834005845169447130236661488167754843146859485142672731783055175344062921442072746422237574465684843793526643844780214652025660432445846970968705705631888100175035050800322406259417602514755105162199780738615437418194559363805085688337699046438141363548766154619133986358819534717354797703740465290756534563922138747025101198402186731968909955210161352297864115975272558700978436647591102121209816647741004267648714583765898505163540308675535674490183236157340360047551346830027030336918361615017930664696233149365038452692046050482655791354666832231543014595199334733798788693649148730811116286653741410974754532623874591372343327791126200842832352077042400099881484091990036121016440434443989639697997405139811336411312311133121858523954069154768999997110075203423504494505818915453711563574835038938196828399317859805883138649727869723650479975177249062341648800950768473958404204538727743603437974364551986858913905267322951419286329493296705107111551566897739046051192765251005371154267713404014262143783433832383099838421809334229237030120647258318741636975772752863390312727730461838100618602091102601019422094098146843604374244534515018896572756109330661811529878098218089084115474218010872524899295517259185331849561770085867813837043575387123141036303431683780322808601453801524764052483883118193108033002975839292401063790162211197838302444152637408645641493585584631255269745681860494874909905531456514650875106985855320771208091830360151128694719859716125267579942819526100585970332146279182159329557495040949271996918309515398420538683205991651474606261787036752266582440786332169327456217005733376703472592971618334637189429246866821559745116259493889120104843740328713139416791074759659329055311607675308591376024544145418876640770111637189638899082586276132232217445796720908114498574624664100151508249503756803539038191631455417451959494687600295106592456989327441453738112539123048471089267068136244157716050808826348115356380584454608100258824796271154817202084029663880146109599878089998501323548989471530191830963289440228220425218411005150215342023836037488089652980426139828299700124484433780916580200088611417118441168835396027968284250320658332184411723687498290141264745028198978739545761453860778299946018744763920834895026753164357974169437908786021088188616895991390240204046283724718571807441472737136826402778769947170213995917499236080152946016400750730449749115760629688759338669419059666370949283157722094469914710386659715319860232043263121725521439789593672202391380481428349156477449626223538706928316006109308961260227711469064531459354848912555863400045766906675487779844490979022034836492859468758235953220573361205249614232364866197778494876646737347134671465769249391053335791317361816260272750445725290660881459047192640286042043850952188630571526673915866591559779378570160282455591358885905697380938308870311503000115630592987751934821404738651787495044589681801606659633454960253868563062868014665663867842846598146724715224309250153175421728680037484163492486707385761882701280729943669287255029100547346145327306075492886046399590984624995136487204088317369479705792579969558458795966812201090570633216606234042610147779776358894934452640296674988791048765882955884346053506895229984977444427651534587009239151479542978651893720115743368546175881966396033384831610181029985733472848272224883422569360095059070437033957389668051386506417464361032614705251172293629993502050026509832800183030264862842645623352465239657950349540433989595010590270106244193688732771702299849593913269906188814693284545196260953293048073226266754824292786768691949493097856893958074709422335112118243621146840801216358649922735078428398119782308931336049500993829303728093307807779940820562294535892325608720423568651633816714782794742707305300591110712891053574789625395025965738937575217340070120994294462286053526776864134736208528448892636952008497036051805976719393350996285414743680427257564815244040470504241151390172329609700337920856571875492543383522777411341413139350066583980434303158960236369560857939588582551811921405044295636621038894963041889628970188945867737786943342395092770533185276997656572468839844277701027509626406483810172544184380795674863697283425983053154155581750757813601922958869795344724796945042816579215372429616611141565898817319780599288044830277858791194766884684480729122893053275923181656386891896554889392897574293573809503754242840650286249713546512664424027018007747990051800712518092255430738709075003830434311116928980473028541188506555645336697859774698886561466653862457529485627264706469420913364357838439921628309132455194881114490083084372245384065174554313057184332765069459238750410184654762600695537964970624731802702650168840853223823073558029053744987129295203012944780353741645092486565279831450668003992221075175669923665906034574247849602307520851921003933290952906623415167400039005519326324852545194091844587481333464548028778260188409645352258615871466222054837696016074615011334908603983483977423870339727183199474333784442630430441507061393946690663799985897476329058685121226546403772343790492387996782156095492980694911562352198600180022445369880552372652009874369325108216636097719772284307254421391473884937891119321388557889281260080078911705715558882371509730564709789189918845030029227372912446343272053026721136324426077585948587948643609395408823364975027012854380090203824319648345890590337149865433294118800850432966934571455172747040458775046092451201570660634022247089239326768130814377513233476801866266087174559056952733277718015705400274412417112655584681533844157100095398083871370789903293059460978146630835325720830384182701556312146376799663197129260656364000208758203627222658448042084103844566307969689566928168978171167280692173337806750018079330631257921013607239764454185919812049868756976025300099125662010004680365755626648169469962648367622270688684526717166452949287276507853281384227657009404642669302520065297694200353672794312776494055575604324490262569772716426242207968396949726137492652145109997466554174519724576682005509370426770364760826879345973350885865752384955730555074448877492001908181985145560224261083583565714769235903771127203209871191499195995686282913608955591594098539623045075353680806733123812551627639189626100958949686464781040476217643090130395426819934044891988283017840686125686801768709808628814374511019416192273365364553206776015860916018928442892920337024741002815747055808678597903209012206405224007399294349106102541561614439742290022645004048617627626054568259270367693656940267960302537640322389139951136757210022719994785108956629162174789601086151945155995434814601575151811349389988322746964970019853549480716475604729230091555859194131284824981490349479916803753677226619819584721801129149592598781432826714486325035389643199555883773418239455071180134041670473965596256659722107416607027519528755392808818047593641603128331647552917350171662772967708493822070645844025404822209156259664077479722099763003831338583480356173954880243146626274079866299851531503211807201989292024687471888313571619272710516490414088165986562082437940952825798839158775789949301514254278374244334595374314120287591717023764973517048619185362012035180566136981136114109735724808093937267828956632169094646924950666864753149517958359832534828357188983712699544046492640207830247329690092686952142307945460526015334311623065360601757948574248996126590156313982543697108017458532637256093734967271609120780378180701140090919779579184258493829562727448360746070431067736322994989864834688235961257635481125586086016516363193025751314513432653677083346307357574648530885018758695892074496086846266328808062306520225293983969034136550532497739704327028956062580851491035086046426334016125287541844728133464441204126107251711080569814860005191678462677686460100211011203542247560412727568829732279525946211048042497517521156178412750290213302652719516333610987669097849986810988476561432219767627672706782322236231971198440888963334310280720994334836909144141850577122147510596791550099987559933752307324343864826564866530756621357992813706782692372030580877446855023833287064928895341297021078145077955168903779626932153448796822469983277827753657488165582048425570053571466427524040798534416279866309216833139910678324874589191745183656581003199289427733447806736670744523690702225892309145972376644426662978024428193204799258340740052711179459185297775358503276372565243623179085401624037658812245077730247061722137829632803649810840921179382182726224122633671398589924982982068076640496148525106628590145503297030128609299572654912764018707680964509478446857904211652798490308039465738081699996101499941819401985465982495224034980930027467579864229126474289813350639097865096739360824339309619892380226928503195421365948419871734504641635823446796951883596175901056194164969714692073768297332784151598317629634530881518939092753661859485706388914477121457526383542446423748277669105100145557567507930626795225635017331106300497966747145210747113794681187020222757711450154400008910538266070781816059072108443834155048752289022967549854473905087928874491791187172544717691091981757341194226574895251416433691133666370876052789009812357912750691841654230429786924211404219304207867734758472414036358091332316864224430642743714037718652880197747139023994195280799251517356574714739423753206561112340603372309039172265033185686944764313292275841621911762184357491596642492233902769304174482766098064076054159258024113478921168033051340572756056901406925477593107358460528158854593947734753597130510622548139334040778099976419259880757298014081982401177113681716158536890708020876245795995044173482317922698249371987258071944104031605096712573459478469446387574149516963478181918583812823622213412798960390201563566538112094668037187025607449028759963020997654792405146309883769028519168940873748618461898752054471240766667552785877347667030760988779202908887910702171748035392597816380299281866772921221289975211412925631168202061468662949016028829179161087622057946604154040090755091137823853119039280435686671219974230505367293152538500372738666783516328233889747434876764704807909592995082342399689487759019952310585103690582953983981717335895811060116123178002113619268732821016214791520904769311970496844641711528206704939638913750899362952577020684008217030104219378767114715278416600603296979687838381622841052316811922795569812643005145362946774247663362211141609309118266861888732528500424229102328506006199442134766804828092927459817471585414063477057733097208148972104352710895416412603416080129686465209260298534389693059894223465706298923540166225991581258022981201530185138131384224311616007414224235891084164501964515895881651151040734051498463694845987752297107186642190583707780774248570539643398103990851388502359996573846959277306994965211638152227588309865789825442862570817034747849413550008641732461760842378960311723180226955892798625088877528364763283478298533192327254351310912101747683226761602491351641468714629728030809056519931336172736260661948850568579347236232743654989298111030770545996138783597063725761944254629098006379195888063524382993156219299698662470757200760377630007377726713683363993489120636327560718086052569575486731044557306522986146284676808605807200240301851183993492028369187794392217676296138020702107054151309365652317623592705433728934266139551862506741835482532864766448924311872173245944607484348676871824855882290109849589322864093400483458978115035673800114231449248309134413195800503953173090077211534234454341544024750978286891840117853027855915259580917910364675503190279712840908441761299502818638274236618270463019117480323508323535368076706895610813343238131404828162662246671395181289638345495946498844261606422640440746010775697995468541611998474053332435754588596341637181631123745637858366262325206117702404202503422108328915820084726886730702592762821473207285738151979759989903526346561160420068061352960091386623354401480434437863607772035750230326075383157389108688286962600030252507308488978003778380309738587281040277605065181290455218446068334462355731951456769860809150292898905776691856748801533668767243601679039969228546201293308903004737752789942270930670640142136862807165804574747728381288539464081413301639344950034611117326045054384052855790025457201745684618470799818123551390042263272407189013180320608868537646802550202014194146007707743719389197128657495329685688664591756559498776339234685676699638547489549843072494511021330284575348186030010243654157803664627690648870885775373674150650744991752546881430770674327699981707452720141076285800624794234444384693904039800795298965827599067519764891861379736672028184119460116155705417148693467448094428027523502413705343162604671439199901073842353568652988013236796181616118938904816968001216217010516046779839431237128623618490096384584257718985629181331120223633397736193737210139369345536162091776700998291907764670684383615648153561236415160937464759715720909685104731228134876843956672411938723819755469853712056590045678000945792237935034801749578778939248022941487754877029087717330196096490517266050963418973647487272970785854171641799310007461429763910593323146791540061125749124716342741947614096572176861402779457256088207067072992697552910271596067070057479073714880653795679153727777372601252912479725270098238080398277591222522702344796710445077664165364077338803420448125277960571789649385275585754976010344401985415494098669287528223003184624149288004325557835787862586998669943733122054898692716660773437672791089776514176129961113112303222358156216552800439299491823425100366670745975733544854117779057001199063875448932281631951961617779952014385027676573491138815978430002943192655698255192194848000465442342318663676131813194479972592743635702566832596410534590884435461474907195915657378814917028547493006310845417452658193983191922338327144255802391354211665172030792151790388615019527658194253567628514213337672601021563253217314771612955220240403777492735273169486936309275808486043336147503243975447399104619154214132308342210441243883314620703437551379394165337415626729740067380998458496707611049818763646761215278850905242927872976644779230714497494246652008897317648855116713597678359345992621942236892552339262258701697116081431902664390854899782295110511626437491243607870760540944503483740425275481149575942534426023441415241644560751076629540217440640086487406376703604576248366788161019338829146551349274428656763081502866192297469283734587750586211838606511170689278096674557709137753554919790726359618225349780210132343294202939334469901686502774247295020926513896366956723715991673776338879743160829504031484707068160142189473601059322600711854411378773893348049135729208521913472239279191533347050187823044918948526589425407368262339908864992742468466834323420527808299022029365611236800406271143167389132553143718627774543411053207663322945053089182647577545798334049391658814476976484230374405130207498939566251073080873033071057874354853981112745508299615031961123260610073605212653374642418657179316853077348697657869667016107966019199560539363194695019123403303513704698904576689415597969242192704645500586196582897937181711119337557465083618621963883594702241199755466540947877311888432348491101150789607724164029583692546386580988052560374770870285993737630506523325527858207374454173525377529091832592554793889112677548521614693649304593665082001940720790304292580636935617314892816773442651756571217733200149462371049151105712540221835908816446734266966890469410995768148462473100509050828876736748403238096140498054914948313604977013069039361094109400289762710717134247123735632288966852237071171136291962397505069828481419456395483533929510557143323581663736404060269327710602098456955144242695269145556643621109224800143822372037295558155851670082085418271868299118850299293064808786436121705529421402840095197526729869693526473928689296590772061978927852340355862441677665963474435172318646544063007667643846650638664085003130562367101164178827889206252047638048375511335516438093040424342113600992501951361870123725181726735928502243952937488393086073981743484684744209299086900250860400173248904228886888544499730750058345679933228666943672668226569595311594615760425121892631403998256839792256908639127071144883697212565949555273584358261226750890504499261579354944457282202925837731022070646422748356789754391640950132445016680910127649190319341166402769471860193951032375855980828493464804021852113307595763619296697293275203592756328535019590905454974811508407351736709346444336483362139640298864613758528893401148368443032912885034538432376874216941516063201529099907923680287677695190734815107684297514930455702026027506871940501398304530939864981662087757991150159239108915154693070609519501877304064615562194548533042686876189835245349300010866578201541090482594847012114726299380149047220566615654255418512763130179629416894986930807630535736453951338083648077840962933232294423738336009325584079762569298219788711920773904658724473123090742770290506709624552973166139721160601625992871317049805193207521377720322657923661492269400656161718965700317811476615540786061187256633652494925190943679988728027201633710368524935352299954989178766346264459309667610785531971199034801102212282606186315731142655714668191624711445886493096158506987304967664609097261011431742261854016462801423197019048736970271484701816400922857725171134297967339914339604303018447668155267272248144159567799829925955649698347393360643153431444848171543403613834535599963859739598050375177510074521393351856806620046740659388769116253466291062389364041192658865667707993341640052038384632439937276504384145278849954055356933759504008316523588047896003556869985036121140707897090613228501866741620511531353580341154967188397450131676225392853273652711934206336956402419858391813439866436444498877963016048590619162646738199002715054398610542857296630627555350469323249768423343305751271078648933932703593353547414591500686422414434312844665559223355219499812226264995475316784680939854082320319113142724310356431949544385247314301610062524143333320341909664940188725247049263253954439323741112747970568625571937786687047855288887245281207240391661979521101876922745837867342802158384974640975693466345655665139230284023662705958910718295682840258939655139521291992523484697205763314452025441543373299824146780117775529819525125361165327439113404558959373987822199553133195020804419066730331238483431004075410507269330851969894501802208896814547038230979743041918908166073696782444276939366404361641217909876576237816066329861224078318783994646786414574010387120547095288396763524758626280685342022327635935058315491904485422453163928149613674668024901398910697930220073833703966050802591171208555375957542218949910600671818281234451522001441676177218326356794732909212337154769078330924889997748228094278853122656892168875201245263353414641371849005277454275378595852356279646313175213908019926984063318219663724454680388136729312112449544569491842138902857748933139006312282935160984888845086282968562975888060917138053212623523435058569586691193751060328882975599931734960964835930720465180692887138269780330036557967223728402459992940056037438224109866640895568749962846344716821163704600628351123731497270996355187916990034765004023817732244350114787041309651130832264594240715082298832150892891519945777032496158504028743254618561880205334581909322515818330968145157904908626074174296150272939244710128687856745066451764745286594219898557205348743922460038365270584921872282262615598854059759057167948357695962772906552028972296926031323555549022137786184796352536969837977109075666155724849247820866939891096153749461695984490069071527241534504190060174155032399600251605168688727504509249115523458785786828007934350893464657857743953133402367569614721795737653787473006836859366355751750786957549516201836426087881278776731428177372972932309940432594250286854194492628345696103326712596685217073740284693720685648651678153835471739719504677454394744295822593836794192737202828460713170068608002403855480552838590395369596097926377366751169077558071020915826759944014517381042345068384211783232417351681472006196021430391495505576228122823751283046906928861852327563666118657324522046621277801256164673594236036621139301654794282088083984539530806276040279728443507055294051980751070642196495546307547095828823982706219776725156115123532075592657472794849437214532784268108552332678108512378190113306564967272046577122619361902491846467988092383303947462168742565769968935375241433969942604383942496376874193370507715290029132336307323832322993445449337064958210072385016802056479652506899582612985002102216157178436298646740749395013570596895624113855242211160656925614749025940415254774406844764216024613770987102895814535589788384174115701725997749849306711085467140975850454697953455398003653799111293951491979691442182658898392968825493751157277806697865868550436047622024607953069293583930403372188621767577426541124563334009504796769907591229172349250133441721424419213722471151690473137654164189798528972758336682367979207530497064348501012383626847425044348325088762640786387842534931053198780574906587941166370148604448111839418904150302643379638921874856499902475176784791930757698340824705467204559359914847444358338435528212975507835312250635121222393486581172792079749991383945580970339734117968908386020517228518031892400978742193319302472710496005897516140889149616938883416494639145979936548394171451448059701926511215143999487515735773393046712555322220068361934424322143517065240738642356669522538372314687630406358676901303794554156544462807594019604396231342554520153911934955835115958930488149243702844904555644694294364159169075226026430736635432835362690868958129099969613633847241735626946125730705845805897249100325504729170300717675416479107710253325772994492401247250268393238748430907721230587437763920201745730631941874412003926449998065031168885492790833211794108467057429732782588565548486734584354567183173709520151625590316461846219101649325163864269582241240418595954305499744100994036482273847829375587252333619318939111356159981791799463641272175974576676545369178416069650412490658213604752060887257908523708181465013143552179664118488638257869613710739164904117706430340672564125855673692091785999379888397647872834831156218516149769179818521261331054668839534614146036070246728223408678613884378457900648902132479747442841158251946890475453981133429248643952739472428254604921002254753064200554435754435984762819897317064446562618490390389758023257650576936205434795349621030163866815976916931008694611994223408922436795505606281888366015813570382301082797622397850567209385691556614705786334417234935459208835442105022004937894665728776891048462548422984078720155623065314835964699913296228886518072658636657434200733252421328587587308168888710212060701858395529061875179653408604871977980428166762844897731873640081575887581075281635983021753899244659678555986652771973647128148634685665612632533031672539664670223590648993215482905913287263751835140872465334100037825245086319571405576057926988903890464837147374172147454913903083580832105528855430499333566525208142454685966562771908972836715748988880085630745831524484505328664621893573870314779947300667504634261859854449339635588793736610711663598666198020726305381341739923658278980945318104694355474568499065387116269428114672413371465673889640548560762749257281346043773001363690983626737711713854603005995752843941426536906172318706994563935442027686782723438776856601008291798068925962711134933642229868524182363583545500751134558712865934873834598779764499502699370663168880985340563037422378082789242607098012112805372039966677352200859028528731073201961525178755098420664395501420034076413125199626687853397176564660242601315091914505044659687490820936992932759704900302369114167810451746108417692489759272098536307279465173123775034362927632453297603279222934662383971584343636942851457001308212621032890501824682447227818502954750371917942861748239592439411466991973093274063315174735860514689643071794072201747081252919828163249241272705337008306749143469030856249671085475993261313092383572386991837453757667244052677307420816128459277514713035740109329536866120814531958988429408468054661532325620641946844749365557727441767149897576644785173766332376603341000143603030570188376502399643340704841329863563964397690543633870793220487748597507912541821436030392747099777705702565143263548740128859182283357262700857224297255451244303709638170118453681200557378039014913512518557373807476204665486786175239954315912877175554481486006314052002789600218131296671952389799814526243014117606006561956020583331880864763874527518828529609337186350082605648417061203534570243622952327804154058738071068355182446520175725190612288398113166541421125129649416780765874220482406802247572419804655744392949609058176410475291212345136676149006081880207063999576119887575902280461543726108677826065215818707208297615118135203232418976211831923450497160570544542126454240367162180555886836471140354246789116338635184645336322986307497178575346448135765338847585403029069889671947312242907064472381455572785061901178849790311600610134657542398459399020688753437689505033870080856066587104339120896995149084273904391903483780613369018787668519030562002570427479470016294942075848836071657517187409336035176726964061212025839268422922157602876043293123754996256338054097351706482130711948525371535305286622940023962736809517976245315918872258584851413109067784372874725990826279320979850205054295115510158260263457723036214609868698395773311250393300463963512735961322483097821597546067191912773409520053439438707652533793627447835772222293976949135401438656665904058540721010635065952656468754581637821241856616145922991019648620954561850278983513072566741751342557076595910879549377521140709711118089185438366305007025476600079326930452781258440773501738214797705278156154565720523355880341754313560052403586907042077765184390836073257546084884017021746171683888264184619158974326108936974603167808600896639222920246497747285579337457522552448903326015379786623000550826689679714750582092880672963151667261302426163723767668815264135005031423013855395523841575173669675748598441713615315265995005999027325576706501819196433435255945274155586192474817967681269130114823253917902281384713923757334018189772623795666446318070741837378539777594447985493754548016137612842348109199808693728797537916215414485259353265093736950116904518160622641597823331989117422509770804166311042518421897871876919144924862295830584782124896783146853395323781211559793605970854290400074555287214136816515984382899640076232510598724042843792584903865842834177540617661244965849301783484779520335583274771364807955893506501311768065474705539783328789950722096026866962183772920060721818981893093176583801169496509369094523019027008372684097282771685626993930927410067880606245558884631353096190655685143949627276742212980221810518215635357343100823811319389575168925472225468925584143398431064747482403273206712422136095888113003547575140210978626015567114896331678480203792468244044837167629169393381674229089692536619419499063404178053827002604332782097917481333130656509384218138173324870992980867712889929053334779878593699557838350600862940103387608459262109814793348271976001992586279458360832718218582743001449297888913313220477542609091802383855016280898339276943391403942013837014811489911580795192627848421799717874958029116355255420079933194168439643491489614421686141512560246896300535498650238654706399812413138810695683748153008222220762379188430915181188757862844278118074549779067292139204605675576039489776847173625069396626060465789101244936719212476942482534740186753871390015301499954692163245663865783891881596840054704081945556299971720046081138319344585725561443827032203660187439775275919177183963874269177960304611196588436480913658494266916713664323734081731044078317961553936738929870662182095882831980115246581911789496859166453311817191218021026121192860023507274485430918028569009376621953408834576192760779673174557066167557793312670779917004292884955715898209680668357650206589138550717230766645805393387046908114443869390864638339835787681122412697043987374460816799141711470487662960446821201379586290691301127193614768626549704660117088992519544210234901451030450434577036939018986274478156089689824846785175052067589032759046437170788350054558114272264064698380958597091879945379512445608433228335518383109209162696180394811423407673874005174699512135167592517907648282322782827613469282688502513862475381356720564108738112535529179422372630811052407938316231590060816768359043329927037980382251097025819981929239584547571033865710978641268076912098669084469672328299083615704150492949262526089531200134407956220957925110016868180239932969208729404250427492234975165117391995252139001810232093154379596744171242093435827561347796056712985925526359530405742527465340696776278105316966161179329727454047517679763507912427592623714014565962710807084196767707969534673769030339505142728738458293608852944453977518816318213715832153956012150891825590523832454550407712295344115666664383416867542400070156705245877821899681921562954100831962824566184623956222962368398733550362974640006317582335362177860048290582572635444600014585885036712579193659962995798493723406777167472467389897210398971433310986530591021441918115794584576622357414286841240486185839438989899777026094428476782753804791621647262766635488266111015239129693516620314727784868346860398631974782591709263501339953809926280599608855108605897493317643498013664483406972894807701712218988444316523795510552532953826025404388274829686431762876888006706223686027842593825689253861605613850025329462443937903894252564057871602819330961075287270902200830032304317796198422264888251815899216847034143536201166398249031860571264749034444676520023988906681111376924500292114915348132361292520622005280757957216993493749351575615119799467418308542026863516697180979926958642465554768780582956754403611583481859692766979683411005017081564894691063341682606722386449652407365721479047351618416224917358951778791913286526117411078630287507953293550505471895777867898420850336607906746487102378609270959460141904641070502516176698595307590296132228504502668170671006522520053703795417749997015002351455144085484287420461445040307660328928638715437160374186714461772351838623729989336392862414019292191534818160593619739471802187285091551429635070868835115920126163511436477326287064771928848283797795285582228273630612905539168259062496441495279635244137494062294056285609777089088644954012443951252990277490189664755119922742310739350839261872985872223109356223198368231395533368698270478665410110477606208741646842317021025057952782661227803055698370316243281487100374025636313915279263231317020203495545932273799474447530873676048539268429412115870754966910688242761755124449587934329264029914547677592864312250010039225839131140711975576494550956224847034292712315963377811992438792118446381628818588379035371523511974711655778693441368575854826617954454468996368228430414175924972714854048665808020036117455022810897824244432024244479366809528863044216642080248993905576605129804558312583111149277170745788203986201504832221986812850738239044129669405024412685033793360772683756281967268630133118199950634640284009366272409296675793409237810163094154134008721417599026086570204783027546976297512620173985240526581737467290171751610728825285625433873321582074102356117068488854015908268917127213946971384805192290240040568625023479188451368994279758979619250765081326909505434810430964171461961757883317972409802888027541459078555250204902145656678159904900282838244362729372217375160737248462603487352011764164638184293376117253158163306212605802839916782359823640411824796238184505918473661496616068763020688323185640098992155558732952461746001211110581601185918120154970967826828849408745531016906839768328243916321399976069415406289613550777064714596745717541542860454915129768322682086111571985307272801793113297033623228366718092445157122715992732997441981154115289345362179210134995095963158302830870192333329729231371061448735093646374795230320311689058237093017510541024793554943002150323484190213974084513167687078177069963960438120433164737750701709654790507883511609583751753899725184410627317167132151502451016121561861512866233733736574130476671565242016589188123101325202351701758850936591032126837097151042542809637483205764232872265364760293366755497441290880313551849365032565321263049925496953066239343660417706292330285664422494633544382933911688715062934621249716474121883917835775876402799491311045275444880853357614030905252371467494815412159571248675161539541912713847923476997536840979363171027650489012312418173429064508315748923925531294303443062172119559151354078778142165300121584877191145130731118240808300745821870686845956631569842835223680232279613294601037478704212572365847109758133215279857228987644221060994142328292153026769682407259472189772051863880707977234525211213327860101990799491177237264531129656520924675336865668176779525426508789849554184690721799464144593116803167227123995151429701484055437535545934844864112308495976530096669652466020862377715258035026770015744739586056843155545648719821172610866909800044196874556815145471176810551953751254033769384109085420312317271245000789837245757205536997676912256663765776101801168202758725782909162052040012154308583364837147163498256449538134808108494717011706596372115293846343079689213445140853878489861606531298013034283631006487959133541082938975563034371838863517132830459674750479322850277991020651692537710075187440378145148753690922938293373218817941326225673920400590577643723709168130149791284562021307737650943709383126480967894429694050804281780981772584850215914324429213795420270962794556277608078343741217799880966166959751746521323821127966427712834609437337144618874172280767856976029558707307261933859989741725302692824897727264548740325573046996293773731296301562342902951232520963885847291530697132596367036121932059978701591418131592535041208261671997257975813294048727615252350197277997841644052473533400138950788524093669689448430066774419729831434906416251152082873454678515116145922220042384688291552257177754038080324501607233357530470615731243368845355707296981265547242175634272924062024947579835099423978407927775567935590903116914677900508465273645133864627593344100224981679986335174165128896324913767985152997817061137849829679276262366216560841971548634042234910707263209724879666870374483300213541527614726968820261295534968422979961952267472202965152803398069801952045037290783795964204656620627401805556310934327792916318243221223509551521303478680547531989767032079651220961850519579199130600311946090456564910590208170824034936140433471605981181945193135579375635495019791676944752521215734210568943525981406906646968581950912075129939254057708531999072995901089021291810350968088824469263482702443431891757875206656751409572605573015049282173072490505034438827196909257423929595228388104506540809050082020608649356595046431238442431413226996775077007818898890218920343409842210340329859153012499356091098562022342940183604982053359672276722406828734444739764844858768512686647719691782209003807446013193940292213718409639136739704720983707929288086587175431265977437279013652521052766893246007886906637503587666981738793567584587843125328674090141294784166966071489418947906262501418678795680591322906628691683306938907683913226413885261998680051107651506018423489667087438976706793476658188635699915009718419716223179748446377662491886736377532433627209831973283514529078795353120132389852005904457084399110406552545097354783755620399369925777487769783913620850791188178536915164568434068779969882377924302484292241357971163917159981548899013013251112388207588929784392063955651344166422103447098977964739678485794848043634383457466587893699647153831685256417064061424524515874997117103137019101488106848075583296049582775640373485494782262526730262332838895967440385558584594046973455094490269401800381146552584040437628449039937301300758590653798114118000180594056664609524739132043671421780414620531782049665825283219267664837581113633936265324855099271104418785536839884608984844854342763068665273746033760741692874088314358232253402818823445433157757297885166254312581768182541940989400220806242957837822228088497791987453796028177860346971433751599114392183175817108605223716054463397884683910576177307334663826464191412150296808828069121443339180868761386309723057983210419033479401418378677676146901354057986961234086705379267019627154133151350945252567456006661066358814123496965723440690770868962849702905360160422197426339102869777464240209513804021846414025954429997484573940372516704064711551008466269794905468973504724160775518039917228890060634997663649254549934691150235986977639276364624107466870438691315355990453454250506960321079123569809253945575891523686452799611888286969775384643534100082041770272805459516793643829589584141627747666424595536901073174911759334235697406526164460885919126230819513456251809212047865343566334611064022957138082651901261881559065742140049841436241490329043142246527098855298677893143990695787007841108417037935993712151197091227411270021824281937092547059000860977427583018876710774324263037587850662978518513393621787314510846198313007804354010548308656361444914343394207009768143621725281196526295946954419966104754829610823551077770303510721269724497040277195388779909470676496997895399156968420772060868162050260646258032909133492671469962692302463286631020347513735595330598900121781921701145133042940884708982621761438595926381190167980811955049307059895784608922899124072193667740515865423603798635688960922338645613084816614787719869028019470927122305327964381808430361249361712142914249255282677128526996127816566414585032998615621342386310133836908145097003925842721007346462307956322870817848190094659477371731390158790181513055059590478388953185010397052223621196346541993724063908609151649015067941380473469089830238039470016353443259760913805174594957324024443770633015797519113982657659619538965285072333464510489552645758578790692938758003194675506217714944574669870494358391403196412312737225857052406398927435680374379061284259351380206691228797776873835383322331562724659142939617758325769335991812669067534958016879231794470168766750551614261669341687586194278634793825940040319351657568488481101336387834506955378254046647133517080528430473812636008874492377193580784961091523037351746218218109066830332400629959429871362993578380456566152550202023771293992666170325781111369854137804043344842743879263772781557193116920107490426693345496349363457838456043508032048573742791395982282892440450209523707287784242255639173935765589468006923315700394445132449601531290656677153531979349809189673589833219189119969966857417102213089147032131521780957512795294380480568507871821497062953724091974176558342089424218138037977690728221257149070872457541261411187810649155470859193955117197206025556286598421204252646735865024158551593948390065048579289873033176884237404601912697027140782118960010283467022117939107105568847295742620882806311053550329784577380083453232746250581735028041452858227642769360205672421863996288448671240238668626784442637950866252459515232731249445686469965511250054143635501499560597961160032185996644985155433570975317658203450335825507460390635309232363850632953662881512801951481388637542410235825762281785129876826200444261724940989527993145353650047219427111759755250525259235706481089076070831908975842902598222347707575016950617617682340202187288646920169893687043671539148018296522972419342951553741044231412522576748551724910777646687407699715077247050673630819279643820592871977547288060319032209672532926392207155385774976800832693342585697237440931118198326781485938137761239381722805693216470226217747235510363488851980156273414788852729015054628699673396743714764824213563329846159945080932793493543703800166869747843387327474514566322516154575625171210637618107205941410586485830067507728603453847900948192612842413703546320023417942585470727003389273203944656897423403954892186900212237559701844909355733918502762583088212180489358893291384502437621671273754389570154064845935039735087798884594231789985517632373468722667308351746491596797203035318451504372954953948577284826452513323577294777174476648414601708743810946934377208192062911545700790526796106945833875471061646734957585046004717241431542898287331325773304428563834789612937554113665708479170417402282425189658291852801584233297038006886075287956395962481065445080298524654013126444648132335206168681812905744915738291246728267135699794808005348098401794622412354651529344220856084397850310170844412574930520418473269121743761556505493938242357659483139640168524383657843204582785277077905919109388588659617620573183593679599787750503751902774416008674071898105531262949538195762142227356263436889477203529792736836794785224786586104351782325004141187423573770361597973186987728013441688215160096333891670946406505366559641110899499694065445727901675303431144529845218087875054075535736473104483084951237426842403412288731277847913371450907287398772800238549524528619920856706780302715508006489705188679784398134535583061953791059629722152064061167567831071534678640412679960653380870314525269398145065668991331909527941843152963908572402317926442599060347860268166725360651970191510310067669162983491054151779717910893623065462576688146996074200285989022807132155079615080052314518187936516191115371531912904079618792362387142528957390746295256152604922570726438807361787148841274137850190699836363834692774609555342123317670962262103249554317090318955765088314206025620113705134845506609976057821036332225212151738089248159046275899197027519659809946081253181877706605487586954194388523233144278503341687405973536033544469843718846470269300006849484148787978182772456490446270395314052689597180771782545468492598204339647190129173460709518557066888916623296554752423002065799343165054067028732440646163746466969239219391260626463545098481512690213098027972913402124338483525716112806800971617735503110311380424504168886652062797921891379124066631015648741634547228746185541783816416228491475473115393282157206614369307438975695521336811005785317338042544139188994698000867796549245234259619429242528336612208299064581214405400866632658243275637550479851737153224912151841434770174481256102182188415409295695420479519404720085464934489442384437153289896729713186116427308302733008543329632036995234953847468954756192718863444485188282158657096084235827425286071188721992318672608060901201343668515664467529721791205808129368610869112885314197213886772267516018843886396827786150278723895127183872320469053969346913913880681130135787941529711171653120128731437098076216856917360414628093490029199415980431577597348661984680387167791982321584190722139891676561005206987365652978350838984242393783065183926063168979972655671368927018599541567149070067100270784815087752006400299343541384309766782892080637128579208889786034696365029244711640891993793943543709955934575911503469989729889156066491128770804707017667834967527358437375910886876920734771657395081016002902266718910200148595603697001698419394392477931689934067570905249009359642477262241092559629966665928619776401932560354654930969596167465786651358441243221684901437316294896540119579878052711028810315814839957946680207703429337845400861413368602422515798996057714658561812431459487810847197953577984627233798867837329135838481556975813805237678741144061786911726363870280034717890053388866317814456776842966814254495745896293772177381729972347778493897404952369572259802961405822858877420971670123330454075466796247686246801939067468315883815051982358702172879885146948803000665821193894841897717195544056285939966275091711524516399668455063688627912162583703461753432166690601771942798371188777360236033390141005709300512634065159886539860991686664623048654672605300595045225186970556778773954000216765916611058795751443022504816214538661306968790850320222017556654310258276773302337520419360227318529956422269974249936988115072216334130524973990815067382547336629903538787296980385545647673119088993000917536190070726683214495651117897774228104538978193868578780229653262336205782580925830497789869555334850478362899411464034317330610888451733725983979379662730522014873821899213273467380744591150985774947636130411377678400498303915209615850377096389656536824768213794150866221274527616498253858656583878042577255317843520775535095635729246808908670451908542134449110294842587714855556676222791065675846580554552547333058771879863650229787419312161924423709130171615250506110842440641023376385536643644841121328546551009270654042664438441681467617402251030466664875312360501427329327884349886698265663247663125580008436676468148611246681445837719364480537680258518504511234411855613164413548780346153371276519829796829948998874864341348604025914356492476521723765626965648086678901732953911273416264433326061783396627632543479182410597675974884595084164310077837213173461646395908580474695060868940397338460945524107734548543412863728780622537780867870196233380549284608922346015455513112426360884060857393329381344437359121592476952956642780447148773422191512637246385218271811608730980228970939355539171940538495423140601142400810369457296254805313421567054206125765030318321920123703457492043049963654750035047600810716098414204446939006163296046813147297363065570142099379384647429819454112728047413268875032568062029297820331839635587323109169398882656787744637344846224457568030753008743909668013216014314499102903487447572470741884038704949238652070053327934838757021177643856411753177771962611645487578033512346191340169277946038200820752524110313156744339749607000313494138672770900747844324344683416744568061526956757961931902070525071713565877776724213834627473828258222889515638858166270661948787316360750540777238417089196883211927808974581221754339667718676780883456851298159006777360413357188976004758337781159071510810233670945634890233398697423871964002723250203209120698932873757143740850816682128078555190586494993091449161984982678391309130536567379588633432587630825695603189530572433244540806898228572541816914556568250588967362032811916986602751495982390780341462898674408780638918789319083547054148198725113392181187639200513350488346824684872293617589333306998929282251844611837652467656457886523579093836705877327408683344516914601659021773948544266858601213099233133313243081130259672118264127922834161634572340494860100482939738528250902249690445807174263554540699513124479207557694358357703835605919790612348454127443632472570234404754615668439432217074831298543448795022178218710547557118401833657230427234764015904048035371001672109370134942814850584763003887065393824748536195021668680813992741725395234984798596247431090970145132728895044740594490862171247724495833887162338783291722495575927525036828370436357541880781452006626766353934000028284327247749551438536606839226177379904870879173340454828886132043051710402037761613618320245965217381001575191537156197976164174420961161951718712303812645127304194319578424821330264428194285718746423764828892044350441902624688336404757084412755804664383715888317454326355619703935875690772627505429028509825699156252077371643947544793522910734491942120121308865329877210754738493835540346068263908371431849732715621101043099938813084431657171544568129387825256215373533272352218373593626179106806747475886510639070269237402711392636084053113826085651186948633507647069235700688199087898400597118073772833152343674498872343616204957540122831750680878853185468968266070550370316197241444154372964633029927179534793798280275214417530364696742391489555620461323160215223623281702008546288095196527100190595248189307149056744485979634619026826175940316248617266084339880834520927532604470817932783652514019263356470573219767945162649313359110911064498007917869029352578712332471372383318039235762696834622139095534524527660166345261058702103209059582745399621287632624342661724281742668359874115383164557932118382572325013151116587076870604037707805634048898164226124197160740691705065508942796821754568915137358972723825832668182892422152959847645602307204190492711295234798636888384018966406817537981002037780159966836238694557908654374071109749132375373870340881957470998836860432616503861976071203927661181712240743126028501442997581669988459994512456381778242215716940574757486437562553354699363233815147842011186055303026763504343521812039078469292521299465410407156454190573788387069379145938759390756996201116513924146097932667335996950385033961337899335081274733547037961750603240975100306894098295575349675969934903588817010645505151583264115082043440502465426269260437048931743199947119154623677108339686048313496488292448247018266153582746921123197229472040364296856079608687302144158133387072353367809829897515454566609356111617473001231576222169759128578632278839995604101415687063095664253478445810562327856041680829436229184625156403175826074775727865295604696966336115671586028768536444691852076394872322985131799734152644893405926315311932956327739251348275940128144417581315715004640616865694959824070038137795303784743743506459945717908525316624489740617398077721203914370986957122450409602911029314122123862653694245508616612145370927711001443461722654732185190570143880507349963061673661755555321526697851728757474563939783067065430141973671011912485342766174088079878434591024525133255292647985922006029459311048012086828793946429156768916848253911470458843073740691964668421969187411941313623002111497122869297519087026706657859638995354911906316530371971976483199876316997182269594036205400998135834091284760050094149009777017136033251492286636901433722671298293680210744803120202629515029088515122286449504012930844859599126411205815424886092015700053907026366878475264901579004317882032610962137961371332522430304492265693080920714493346527852301708101161658756679978608901763330279203450562856952736003866817160060729609094682316835444944600711350053405550574565442657959746396824426395084767872160398592938763460856892528151451077070075608786592569182052475964584816864142404424488339190050118896124150739858950465575279302718717137303447516657224802020256612922890888938839305387183847097257991983713219494923695871038633939211829438218866412840497165369217117365346537489269298874567012634168943478668482050781716263622463145851351759567704277860385754097340510277607085367092583412218856131041001643215895211472028354935042337768068571019173994217626442008662272640241355633707790023980243679078581107664512262589135878684453785085510592589947448119361490551666230847416556834083418840767390905094407268552857427931482666031097839592027511678477229101513304121244917651740152099566209503866710716483674691869030299924079163087065562634710255315550191651206979304889280493116830267600321446472675146600288568898470216669123517851765684664053604338727701283977246786794835823803416992635863044966749490864169392407602078998497809274490887729604957542686800089550412333414366320688617895726862679732384349020839943222413380035087954016872923845490199580933200772513254887673159618549578041308494896694202517987082410927573334714207516252260454634643618466512278762908400820568860292156438721433894888336930893506054083574412931688891671050003782240570584802699108438425124261328543417648943228826097210829531507976760546995611095885388836144236522870867597278856816459855116917046380937261890522054550415506570215119470587932134233298104269322244037463298545299226203895030897115081705131886945755985988635172892697362591186052939247189870164295738557286972984219630721010025451585979502930457334105452615299668653183414866687603535922204633508207220758226841141652409082037934065230007390063755400048284047990854472552480646548077247025259356963798931243617897459170416993825969000267064936179852660004895899283726281282576600080091927309721683654999639592554700760606770286916781779049759057580432966595253989263544086082160369963904768963669656764110526039369560964344416579918614536106147107500686175921780433622117320265423654110149546115436458754543738424247874403036322723239477780182896261192381348605497034168522954827204642906810565460698028029404880589656340985290069014570904897118067590359581517727220905206770164694280490788750446940266063607692943741595604058153062553603585364403695253678619827380426537793059295411040011592788158813482292441686953490837857966790040633739330357970947495010767135948166035875185303483447679198218029029340570702944790512315937732339689799632016752150930226898407286504381478904212023908019286464238600290085454548792028047406119893149237935260671309007418502403308968736777719714932296219530149622723532537786183038908625101192607542240778435391361753203468791621506264132094951833918104823996790513742042807882521787688829725475967758865300554448423509070092726695570096107808558046426376967883918499754441962590598421635140433071192653868156408503246090021211287961402018337481314416327824135127517211447870891843373220069580241809066990979047652220097783717941160578727532661462478534013526065548118803639684958055075384490594465707104690705657174401091830783390196328051038738918569570187299689020774309153151555565518713313117257238564483505639771735872052466530823295914596062757518031294401867941483381519063909846771510938361234115244739005765154405524838033406077721112167087684193964239170971255617752916371526789066234554354614843706597100220825197813445066913294703626857430403225594613904245937775283288791880410760151692448564636069116450231092890177390751045872913629560019514425689014084873694755088510102758255895553817463249511615877230510361638062652581377356162168437992913619852142220992456026468593224074384363651121557454119385608970298435711875652363984296517190367802583387316285214160077090676469307656543866126007009647656120772761463087382072302485997079706227745385982554282894288154123145519074878524089062986489366174944555943562273448332548953956093362622430236556068078079286020117059506557814776534948313638533499106709523017134213720917675987400205915114488319852827258706231392376977989113158456122955630185705113711326868825483464492511470302544298654291379807669598495531269606318735465958630953351582838265008298339032992358026187385753065889041044202656793401146016643309418341161305093514919128853787845425875169089892488800024609349413659201188011797622176596910778573094960391906935699965422757705297071951138866328477991732009928539343762135106220883031573020095890482059742161523825717754167675338767450012024714047485741583564683261533692359236869556200184867964999057277253192616261498276528900013555822635507652585792999670099443361022234729896143907249184829787297113686333578965937292464687871996518809914503367579714359530635893156694032645068865916677419812504458505395250240161000243065526865540900041099857902527878692630792804983939740849562590743055685984511145945705437046971887743588618413738143104820693111344552061830391549522466837397194122178866253552561148092563352214374864229081860808963517465605735408881115639681187139223524624303742268991464862759443462491048045673580429092193255152604176875642809935431706194550822118005183160575511034763812851940372402026902934123751879841351528545861984648612043588179459387256361122779688384177127973539733823377678822725240518398279010598984806625443276661609816175131343107675664385509716996163469074312550827449083618498095005793350652126155069913394715567899462084508014826530223850167729316443233249312858294326857916236288756062998963204305795983480202257320356679788776288669891563017215538847660045088296060761178687638327874439818600569336736871565799787640907316802907959264253309872266590186634070791678052993435233741321584055669153369338961034373929290251417888878400612342080664181867882033073187102808043831846264063059036162084937242399844299257064854009558588915413360097411974845827237737037145707810012744021314970619240000652604590098448227413391389465941548528005768701414968927391131662724185668950228903820264820458234666689020030223690482312713759376523799662848737638439074467114374461172580734804746376650713697873939766872377369105251182219899835468359223942384573286867555089808072654453212312912963992699280408249595750929559519854698470972742589566821216672718716010355731974686733433204926892677502609023628269671195642111101327383860021610112760984291856825790906467226699443337297466449060118898475302826286434571129863644544694219848714037562649145286248955522535547502724288976569553348396641352707437018449958864037011268906818135423636774364935990013263827907299051486832511500520196650122715656949993677413162682648366468162936425459412840319318695852550127505494246111237638044283184541518153131277277429002993852565644571980326383956988615437279255045610615495242520891057927285466613079989934963533043588381754095521439181251304099350043666971930212407090585005269440234275888446081082988160578749715039640520692893307426773238894209915442498845561506249672637920262941238486637019357825857562926981784091178843225980811484777365392602977265836289238511058326403588527715082887757916718228332288005762856075048687421801435868444033846243610172372864059248649114794499670104516574897796341583985977657645989485389259298601902809803631237662644348699813058712499628410439868260862928017856634214588587890087464900795858013487126364387572803739477444394851443744350793349403368634697143365100629117143989070953601985441705054376175364583038346057962871798086636321189142641309151067296914068755415079941793076240100972022544422127224430163815820323700544087347750451057134655077346117617688530346057192341568340341690650945993147605422739953378610649814558120533513911573274505127997010290164123893441708082932018237028645991145996448352899530640064475707072883104822496881871214889995867765789769831136013617809469672542054743697209337559761580386565771994584051493714434799846977205075821550448017097974240859585924323380774188719360018963278689770820213055015891783994271073103562006108444696398310728457521562883516327075053986657697051789079855613221121398999976611781432765614658098229320958536571686668458840915732189066156152287541286921232746004538123416073794874478039880259863855892901029065395171831939187820071963404322057743276235273707851501981407747285143721998277559183720211528324328130511797018133007424596811497215363285434291904354897013684580685905141888735237608018635581876778652778029024930260983882534138306937073844273971555748870951556150471347427886319641892327356372544109047234086799073429632100734085440311916745039458946687245035787550624461129788953134242222705324617090483822767040937440322278751508430191743867601305635484809497475714184422775204718926286182445407435693065828712070583838744808470911041489147104659115936669817383912294879818100284907474554770859594311952487474741748824230721984167269799665348420316485441827589254059630539550577405611461202125752786238735249407555562844536869155268882263115172720417198874661365013738431595179396642022613792235731808698376928702613198018424469035055668802585825670406474574221223676889397193662371788676723998455578750410684487844032842948155676092005362686706382750215264259122736085781251380474761290620215825249587544815330722439635602484064064602344099700588939809620320668214785647076002684939516183420240983439463256148657976593255871859262402181506406404093457082523199239589258138892919386207770593425652078568236003204077969658119039019074397185518385147947066034473467813749310034824227171676233855469110237206435250623059733827603223889916201093436275402397783114977878829582853602976086946438983762467369780290583400119561954568887813993126466440406529489963822417061237822744517284054274545758782810283114212908737267692198934167838552751128961626414647174879060209604327591466045576920315747323526530818945939345193899194572188663400984709023285132016431977664325065332253078945946869504476855065994350306147561387072563460247706936460354174324396260189712832359280033902187149387557836707264741405770772133211950094662308620111725825074777974005060434163398203272007874213782741836729296993932296960316115058680540560940339029777457176896470267391172620814738432989316886219235760158971108670664154594818036746183956698948111842025144954775784507743593342606819919609638913000257373768304943274263068211439220773237624602440973244564239118680420652680860861910094551828135599427545948344880965313225584972604796101626800724672458983620401062680416643840859152787521438527947766783066097917894354737883714588495884186650187454767101248307499294304050314504636005833265217499331021862799252452919360460458230380113909889027494506983963550146292000490177042213450647024708854136130530132099261446169537753017086806067963962107439299404470564649182044458605993786701486092530914952192804644962696739355929741805120912296004511270714130619791743555314043737502951031497721227514510973875051102446871218391726560492719647730340978920453541884131750781984137439838527369054281995196926182861168418079193100578956650544386231516905957839788197065729143714182954007249305940746810195272105479989724143342359534819452799985572856851949367801324855855889993645553306045528026066620133056605355014281647936409014232644013502313778423740406144425731696773278306945202088782621805786545784679457002177498005827471280365468577706103195920655822554156240364023846519921289068955200750182077339652372681247154958663392276082070466070544364192674882445510541917805843426991399292839237916147536688425237666813547675646892919642139261574633639741962139355371393483698973226956417974453599699353323366421045399931675744453462308349496615488354899027236296682468726042583390346192575168848456555507653799992745236196995324102617994986392547066305391491925302091982291601847890615034219731048304365389084450036371950742134577159666058374606490536107242026077117648921055278016852182113742495893559134519876950612922015013713924012124073266640858041207451429552205641624711496831361797286306722079681161531493693821901458980613439171790537468739233068967679871273323494150514875920330266732501288864204673028119890004970101352014119063678566696060289732527737555539207003214348787416123610852100040800399525851027415875698593154626480354294309078560645657962538788568530871979780975153895135193610409089967901051564655827367795723591460032228272401244533339642857858372433407158891403144251798906182882523871364984460808694219080500812669366290919458430346975167226638905671963540815986110693645976935690227214673465166623405476767911220049083701803364012527963988013675235181851647925820718680860939007931997321121475870681493687901625854869213837465670722400014976553305826488874408102687899385590945416655945313076713902164152779555513922984816665747967862857763201178825490315497186042564737438123694363588464235376757239561840337843054988882841684485215573889967137416771818175076473982104128385656806056811478838275792684192148751055580734539620149028110012451366204127182312075027648727050407749749341439395012728615834879297430001736632470446889280975276587883220526391175388387064928204581481103442378783608071183070224899752730823070575239879983216344324430929326972515772849194587615203604171188613738047083825612475410719816811528135571857566960824531847849248641084584764680640019388224521566848223984956703260240743133138986159819271831111055307367358643012398154941160969436954512514074406550346734603329418948046174377254523594278740635274435846092960099418168068659125912555099538358974023675158403988659022366136274566233438933850402409714744081922259302150167215895351582615567850759656662625327714787507665742214753560849279697344639544311531840411746636051571377240528214255603425421587286204596761985344085611591424029077070848537312608918429773468440629327841804855666244279420275791734932187662329754748655371966560840381194851698944209186332379626572417369148464338043048623538859832535485672137558000938562137028931850965270198673316275100521500266808198053523193190627240875259728469807276144515181150306431360369023355228792751476116365028902870830484416474170330308368936622906930165311887685230148896540858695297187789167012287867461403715940646529141705014482896593133289585146775757012388179777745499019897614940209337827805673594949683765095637699529910100090058521090559152018796084547612403962569083400354025199892459748110522928213015401917368191362046671314775178531719964508089008949599940100091818849155501195912847809021468982742478022545538412801613431739253327051222785603597924340663899294237241979696125732840141630932046185899072371855992602177583621059632550759681528099136301096895886216990481018289112341516364733904608821407058083718618285728318749267112076111262416439087031745329977079404476903975660663420426130639822454609697721974227579149803916107466847413906713225432771132349307747274295043909140186911335910252971793913457438466272518758535124962125387695927488203558032189036361775238582881878335346603103138446463174604653519940577464630407280307234122273927195023246126261000127769620220556646007034469463693655681072202435279493305937731606423262120965931185353575467411070137182892166885770599541264859309945798308531065181075949612224535951195635207565202032800642691018899833265270870396094727124942309791416389216267026653656897106932328089168477590060381790899554380394070717693754438156932792623566716082296931127084695172605575950936504552287778487540993796714410086218310981209515047061817979816050366404131714814499201110782856377441561247922577372119796202353963473786444539077523174170237900722110759365766531231122317331472933942104830238616380507770108804270503533500079028698025170199869166958536581725269357817012946420657405796449021552700833409602037381965801426297560623194763786692757167701806963534454450406246890003990155483507724369154774296534615985234040983136178761522894867221664255781726880240775344539222078485382222465101507184098369194820111232845184263160363887630786121005089757539919731325189814956771078017241280369803070113875174175019985712764753700465836081579451701240064775157728338680460797916707957840710677959138867454773809019857668693980309826154630097329225420467539824897886028855776606968755497348010304166985363398474762880634868660870714254410263406707436659753074036504748603796293792426002036217288354016261176523235522863297396641377096491268498225057725523322656869860067112712239889743149820482241419669976124241546160764956784894891774019666340837554709599367893880766113604340327222507894405369694064603019678610039651155796547701173161278852317749403304118888021002279103378941167984662181891795928822367773825142348192768530500723955564865181545095335110847728748308350856472321978306938259369722908449325680064167846662271220932414731020454733010917870015960629294907526074626198483869290995613365214767686592264922043919522214474674888905227154966731767916485404696448500112389029918967083437751283925266275541177713281715256322899230553811109353522076009363045631870611303289837987221944594238085328274398265467406457366822297726162290752078239931640523009869783974019180244260490793233661318702971144494105481991700146773953549541192186503031158975544335892802174601351295378503638043336568564705379995593569161577189466845433401587932960164484940364571773607061746625157484402291712837332582009715277588844404491250193755931517298615301312829078906867151228554933273018509130049051859326004536998792421713748047268948328516594009634220858065483414477103588180343143410543017969543799453419633788081031445666970612380885929256345674846366264518423970055375997845011936913125068229111570262432997215433388378321463992777546476450174608316322037783693423284637705180703742793768243824910875300135832550902498493682987985689454020236689814367693951645256501331216430714792702726159025388489411944422829605109405470198733441145689507595443558048298312707464702897644950393567829136770241251694340798442687202888219642462058677490564931975286397449216547850149476821425898127868349242814084430898433022676791393596869228944657256493790393829074981653778900126418506413697321117811330880114466075404075516295646967258535629824417727831155764038818407132252519817429767957526261423766915061659675106741375099625893276701247669534119752650322548862954151096510320330639097527461076251453101593032583166616357238100876367190425754149830483062594479207771611735329042654176648652420883235531873198856632798449955508123113354894542723100629164748723300165034945013989952759011442099966256862474498215470005108872859042040693982767803779313617363487305183525934949949529865522161946161077183130268758977183520999490794898278209574993348371924898193310390902447343879802423171301065363584368994086865207283589927574685013064980361474716347214301758226100604721669111203674625108699877549034867015601435553573525380562113208515287850709645842721399362543805042120678580605267323955290659897047169354043965261652795046495730986085419190244437326941422379238425985224439836622641577488881595603337674626343323441158786230137090574028426717369013778278377584280275515057092829949292270341500917235478228529033909898313488119841980999044012684489350029913274189860555601069328244607216600115979758616192377773064997395678916384995883430831397138774766885289881677808995407897516150408554796796673866400455563921113322933745803110575188254560301465118043746663167494928692618750116720681739896968671856475409523832752828569866710282326548422304740460665665945051529375713121835689362970044785249140315568182168049894196388525219870155892072135101812610135908514237772001190138738407730936568297773809312615560269698527567401322920553232641082363311866706006702455184135347143233184314075721880704720741352476987855824633443136467702143353635064039145410856623852172958515838836211990511801624284806653570730871014965051820143215482506506204684178638790278994975798954030750329935269612288684374807198423715604934371021621246172677599786465789429446650812674699797492408423226650584442698524234271912557051044244456533741473481198461193689836222105454618226681119769233882803272654454566159094753390641681301232837759759946247120476893422929566907844281610569552408338883134970066171116559613020965170574596009484450646169742472506384994938136638967522453490189952018797503684203426589514318531664651382996749653125268529891607009524217754736542346086876227132340579297452667060701956432273936669874066644226935620117352440439742091725653102000906751046394923459822099971155881383155888423911964734354164021346157971548650623603383106315129052977864197410652518193926102129728683507990273854457505262001777737221290717576542107261505238392952850477334954906538111788152845000272916903230056423233293721948375626422925701047042741253352236525745848516204119876761261883848644733898976987987583099733831429195638379549177142606792325564100318324448426588977671137079657538899185950019988038965410618972887275134451322729309117249984050637492809843977325560913301383757049264019853373980483654873882258640419751757568129451427041586464909871530923919449224004385851180570462196876776647744784145308361980435860623476441229719218163638543684134785961409500691771242010798410893437912927152821608344895264014711504920870455293078539925079601613953833070836085388347425628232239128403666263769991086546190938518062614000412592677797930908656565492708105616376850359295848211843260454917026601300127237724643050822796046594025987017656641948313208866322923001365835514606746430971955966286670179556335349246972343778905184407952454569689310390647843578754133920506880939439563753276811699653226088104456285384174346262464653107739545180421170370498122130531785217271825908283241746516585531263457851889911864091504452432529211678102100719847322680520907091462434801165506749242515668631171836198708700755169569564865527589231340959356025132943014634121225664147576223272393253728383288187796440273497724425233938223277096918690486068257866993588901024936667905507650388679296771894306094721647584850390533550110072716347047572816172366347310427274890130755043034189756941853393564221401936234677155849796512695121929181896378651470428121224371769597036024221694669556261063431709479182606601741606533119540446770185087866310212376934962072331956155355137209336293755437055818435397851004240441634835437774642194415835988981716198034580247090940210197711260449564082444444200367504193181537077596610507843080289451601714710711490838656210608067314048064130030361373471128891085806559275425696286899039564165976171182990022456488413258439268226861462318991140028523955325509129200657661175582313463697622561572276960090160263465103864489207510365950106795225123132977511465597757133324651637503495968785950508793697201814639714310554633865375628475035849469073598987172886490759590716760845007310512243850314289063794750919457558531459446189242602441850812830259692221673010599018435367602274650106884551695835182452500771854153327860231448499401827732315461322254766889581636534895575568530932873968779437147467943081980608292465734369101421069625718339087471869292011589607553534912996957759825803295184621001494103507111942034590962339257475063570346958790878100994192734177052821416494701661341468178778124899928069610999613167448731940541573761336062723236801381436908475642803257453648307999813675998923981074995422698913560003649804093952178403904570770750276640279925958867570600229369107777318383797855182816292777301499149207502881557045335318228944301113306065256675850484970427684548396335235521840889988763322720464407175100563674898411497263842207381506629808493347120840663202670032381060412338423862581483839766087810233206706600667276551694663872251970428310044884752496691549334882964465860680812514108915836741448245537823348203272325096408214287087968019437528701844458899133770160278867389775700564841403298309992218549885367497614334469769435232231243673913825013777259513788601220851391404079266471677040658377984843743868314266472812559039474211875579342072858852645068396555112259426495724457823161739104861551204517772079484604431185081178651202575081367945622976184678325237365065448301780581055651383615382273924468687242705449310581629577248086913481325983691712261074658488362875737199266700763909374371514627204551051936614235555860760479522594876189042448535860079983377628090024882551376426858501520146738100624127530046660584814169254347920692039638157717376984433919673097530654324500233559898392215027924587146394973511865961590240799844288378757175027279673238326269061679894721618836249934473576976448073423158546186840288442220622552832447787075354181618259770905434149573390621723511663369727126491525432357664011154254898289784782394056149967575723530539712175097276459241729700964014463031247693198337964592521467289864761771329905986991005297076695723387814979154513258229727838757398648555133045162548201054558557197804424473948367728823247113265365440531687563878066996367548561678847408716241745328616976646264905570776837460940566624149996415130719924824233569866701642895354197865535923929731810794469135578987436889166488927399354146814623302477552258191172115246341813561068250980288898294896753773553817139289362823427174312994298440523711199823358329328670482435438228865007080252387668059626786229841699625106437027747493873151286650678299770644226982468061030587773802069856167609761820814875079839687693892211177941368265394544597114243567354976797329801216534938953356074393193954696537878211868609454937767650940552169662315892257072203915570670906249173990603736524675400268526664834875825425174035033512790384136874255512155398277471901670457864584503759610391362127021967834254828930047747927505228332081545734442597295648067624688658211996250419725969914471886134290632428467273170291773560246259285321183895247670383670921967251186943642622129047716939966051802147865986628026004873203943645354783928209550198860945050843879021286349259909293289437083365190895118267677550375568965711566030505339914391698865731411697766707421723178128142860557480416769706245116348778246591239153312236636729104030434586798279802307679076381094149042853058852953452887967774485721805846377760625827495496426931222206119461733938541662700385881989728668900391330287767021555187774992877149907869781510796422629687389347586382623859940321555772799096326309851318244775369633780089027068977009793705653784614836222363088528246680431671899153581709654936259487445994997213449235794053118726740358133020062512764226886369628432046630095887952722647361128370966586674728741939616016330587702243194009796137593783750310586522688282819630175360496400292211933923945249841650606170986500261639505732747492707499708482960211289133341530762204144380769187748386922898124466026400989573533840626506029307179367339505634312603174465323065175411212329039116415164888806013427929988285600421298804147842869523977724217568854566869831120527530254123260026060484128328627341576999337249905138894641991975037403161178866207717481867607970750841159287151688816330103277382199688439808509895568652349144484783734153327682001369531780240231710409023455160605479904294120568494762365593304084019631307480882894222760915599973698983776127932657815246918887618166982376412636390532806207325048685365595069278475378624528585830012324584558278939536296663364652327840992364195484497525210220077214161125646431095680358185883811346390396169419494867376451495481557163673909837140649751133577238813113266362264857312867651174388855880517255691106942247446929297351877970094088539327631883613850500514665031889788941670625797634033799039843789062186150201359315385073158442874536576011716048607962388405402853589839065803458789984260014040910867351671589132653568401027257140344967287313040112356077119963162727004614465240593039578475431126350349190620942500048313968920677193262351575785542563756912475335906597851659508711204342670171845424090468092771318826527722289764600420803927894226943145994974352066021703669731886817678432346011797643683570818659335313817747611806335325884675498093018613747839987992017983707021633446253580241670046036895340064191303046537893212187371153163631994545784651794200913989002250633360385148789754933068418741929083026057212451316830726756325585894163842764254562533373930025479947150165027719035831340516686906820860645488826951666885027259409239284706695473121352393849323248514412379213844433951478017551268733045650768292619119290183795360150979314865772345845918365285535783258921940166068572113802364723795898369185647812189590610721689581815266302693715919666552525499442651435484387166837777280183749706202294480249539116362117203268291614262668728032294181144691685720549039809725221795979461826699657703945127984591398301841463699547529564414199818148644382429700910988879441964248664451229462289460134444306195032997434127027645072823350867676641797702469513826159781098119475329954069884911345622774162718612144569472653119848189072038790113236391938625712624912621921347022048213106771106460105226497500741508526968906668689031374771782484106677381209173805654712500509009805962443120197814082496824253448239808895877241545527868936701684702900208501574186750317850151141632015396746419894241375754182993747312806178672657340010158332795521509729547774005090302270603769118936260413419453498003764442439313731576155476662640949611376793730482985864518260477015495665292379205211889837413005231538355524291000609828879722824454719096252522242143535754746349751287005365289317479895671099414318663494310147630492556528515257150050887758685623359491488562614514875968663539384493258299818743353422671887268059243900815670916154079569792008049539937675571598750284100868823211356668950119391828243403845778328795413352506441429338997365061132397595935480743329544423362865970483304973354921586547086281075212190345837780267680241302190860697420675017980424152117080522092801285199845488129146948121425191798350195360036776513065251012600888260599996029179815192864308889728515075033448809668419466960999435950155717809087136167989124439761278329842067238787477411668491582653206502302104149497740006890386107860961901654330827814690773915981940554886293162567401588371851639527190699419301301187302681003437478416170733574666333252383709265614414788565838727658039588691411598345974630405297684684529944686965747210807641516731879373318472842366488411457526945346664700410211438487063191428824259813871485533410142720653607189391330904213913669441732267673096408717906028436510915877685813053175366130724146635763973680492570473551830768596364943874699411682030780683792475433396056207851062411899920558702039129171667526531351815190504512362072414501602966066290556859561389799533174322952468109006015094726311141114359798128413082236727798315052557891551758592654735249883004926841648915585873952951211833709787547286227657575058479874097168699470367333418944458023085160308298745757764767754792614606193364452916830513699005354698725235761960352182192090063229622291843592374390989019966275275423985843589904984394504042708616440588123744109423657870751171529802199663766526393241997786426006313977605266252159513366186546639643202146616580877528991302906098070947570479839015576818610172088896700053649532037864663451695183271864075484602970214995237773693862114454777554221492860348747211297807955800346749227842022713845921488804545953243007524310118089751706948740029322430876645884368656778668323236509248616585547004031267694256061656803825674822325291085306520945323895952181535958301168233172172467581338738005216467813410875504565023537103728185184559289559352881782261711928384562402435106012525858299966853862219461649162857286085974964709218322973792452238681569060759587167133528300022113637753706661350484613281320503731920050327665662399835470325656394867657913283038081188210068816245494376565857889525266142012569529591518974047952037720951088628264767290689747657635255236149196470298477302514463523923505986870323395972415396920927368891061553862744932471217876489602046460244629248620768722311229864678067748606233062269259482977771728987136790289634584182775287025186965536522831808818314875927746331287763535687667249172172857117134738617320271617322708776736283570463288024922303045191001161474345095444186163085643537731957562911475912758619369580441269807265437359502742741445755719055431120936529942907318413868907583285081366006887166064462110275843981510134544100684335541699073875134438690751983031912092478539066742747186145869615599297182721010344194012664604207575198003027620363192975755600722254830994969981862419761791272704603074505702749960551013725968268770163118044777458472891701827686056236955574378333656390871600498599390476455703420696331154369103462689494728557226296381423998614976843106280480109557644578675164407206627076011602778194647015397321651722913306294372104496148489038166669362955567447150121269368669625532322687683992249778549492668787710637519409973550034026989686267580063418422889416305151499688901153828468868778187075908166873396867714088572552605409465794604407272935502804297154876361362588904045787834391317488485122218281790334168260974160292392314005986802292646111094828466118329895605561095762760770346290353865620533049657747656745034188953019809896875907497946161607929090170020552088763617396693832596973294371886357361213071973926336773375839382457625265105926520222750517163129657044237778188276030007049643990166776491952509744120548645314276136448265457973025179056114435282907851890779585833947189218035798893100699606556589231328902123876921314186914943624897396290653702534985963849543473046273991501123189900655329552029764432339602674023258962574349226224747214362989562756354922577133069225198062927117532664851462904322042731896113656007631403383183503549426082734355696829399827170241811469614190484976999864483490966452569263692181570033288640682774859000082974492112070088374761805330616820106011266002635038713841434173471712693501222483757024078731921935585300982194632674160260166535633683171507956892899429838519437203427603064078562525430261628903111655269289690821060246498501077856117552190760085630978227720989360757658235049191715470609745723105315754990350815043111089435063023584101989490330072566160096951859576500183839412647292842270498450418863661097676341829777938171697097710679042976973779002977704929965781906364522800968003007407427987364453700363921539447784388372777145719549268142656209032927800845897492580761009310485722486710202206651227753792860636401516723356968248986632104698596720904758821617536564268046152370771895646200006258347758299644905246460328818689357954868777624438770276481246842989854050810023039258566215333135517142768879681463041213848417624199733501637837276023681911613050639199910991363223462265222907524803348481949176126055771002941337237468389097324454601090909482723029573660177311782540115094148944945437683674909343091013380291591599603022036654543168441794333284839655471796471682810605675579108695687477224062673542382892436775504480544788398721919149593014105430864912716677828922636732393498395088653911911572681841797044642586242293265405965572414588499317743445087247975373537618390066088670897128023675980644242030639313600703466293332880311081921038144358008433921412634589326297665248346121974590118343467367455682987085622636548869510497495903943938156209728867273074787063517043095459838554752932750329358417299839128675546946358786197799703214288670846550104806489736805236270145145890961862857738518235421590738916561054951967830863112737584261677987917330248109065687113751583422481980592075692228215657638246460551251611656593856316866644135036123647245100508512450582483634218422221112445965202613317115982469350306443237626703789526011852634830421958386258696130255104714660432789785385315990103413221700566217898991840988366105628803754571864065567294557862451323460692834823083009829110055239894964206803327102702407055437141970153463738243488341692912436246797450687022812997674490045273216915402778173723654416871448872497875251699709879200821929606444000814467014353375130341442585074523156807437728926728943491853304512432194442221242702225141108606467667061683898212150739304373208021475142170972849721849251105996539298897248154082683457294585294568796907608946958254118789811011388086861462612911203376178477931500661947166232824631712985923726877921661008560510605894012943157055233745636844515886463302732957952772699535338446338826065495690648301492320128306421953759460292146020797130245729343385667036869963986185685393233487988631705362243298496868980672633143558551978396511085430682166463812657762992281861312232173176122446429639909890664448463706616506569529921800223515805486718876889238079949834591283341405670349104847271882377470534605545615578899230974695444581286025087160661838193352377558871208483576419964243034095749575186183834465766978219609600498730644232158831591809577310152576097034993403994869317938969495980832268854136235530432184079361533011697352327426405534305655114042745178615030908336984929291113436064616801452882375860266111719951123653757491618499878229488844401564967200489611082731074108689921596161818993588808599814925205278291449976863387351678700088272692158813416975207455845552892889727673600199718571533350363533281417583548516527324161910175982208212033854513861943151169070380195118590638775052240064690670115609649348338298691432131711140701112029639075581413298317661985279449484175882492745133859970824601869740501391398559419522753193704768128094712012684932088316518266786264777859260920868638481892791021652543878018752588461285786256396416362341617811294248740315889208587120249059760135917656472042973488727484088931016441428398289453376965166066695396831060727202728618974339984544553651754256851762511470443563577921238677183994390867851891698579097614002110641093564590243264341753603024106980188638148310884423946506457523617892506391121061401537218459754697403399073634949406290909177182101423601693574521808698720428873418012045115505413989701086582863793532537289269612426483852366653562387799354801787048157030465489643181720601955238161033348561849674620999174707774468176147607296779832701021498149086041144743399373762093715344721558608470879654420621877712976716391298419741484742520451477172998961945286508434849004037955825636497324140702852746452999088169528005985093178586541955353712915095834969629955951268002647707202910066871792844513612216263695599673937381940849819295267765535745145007126187886843365196003355271685213930812225780660468628297924874698208516551894365722648628155706287632502235468386931058798845485671421025530981146786311888142199771017798638986503718282776371794982836185012137663728748806893945164837136009090373913779604282560631509074303757470738722622580640957745464878530978144271787493886334469404185169061429776650968855594417882581931195191594461181518744342699924809281496096045081599179418026643985957263624347698944925194550418816843595710008923361731993756299585393799558910962729483969651631385031103807552431244863520629810269707377336142527124383679488861110815509956726109195081146979898409804446545807888238780852863327168840810679139475450187127788642217361063379773142643077976871897509875585643548458916434212296769696843838865793676197687151899923347547483818831435296987856653049963407542780371066589491544248236703344437733209305686577485360547730442961520723328161566201573515772927766496518312640404506980959893442285594700049886706737526492847196698713714427841191216253382438328091240068207971407424184986025223692469969533528102583879048632709268431703060814998268790168827571003678377684203314595344313373468512873676315141839639942157363173868611581282074001420882842855877160352909560855665837118297958192151482212251860901230729361682269613703830962529221090011206004952700555294798955756266032158316242602389680916253879150646647258363540620627644157560294325963775064981861136647716306073190864032781161502793315116522545699153481833974917597207843025968619527307078110928862314074824158969834316923987600048738501973476844143836663467985294863247843595876248302100757285055997428836720735708069816712571047609582393224123558052663677925981324129316622562762164676550597128030006468872730871380607520105692113536734224495783050751176413489745034300336741525721392673700479273909605457763527893954934898128250739099192320173482057806348004429318407527535857113072441539746829446686549714825746910604661828378263776890968337096928036834284621432371756817446875545005927390325702713001529097114000820201557656871564642665958364030477795106709055833353506112095018952799569767562456370654253879603849819011410138107221674754327921596606459925208948461222655566616027470896532644610449128302155328594308017871153327949815041474233015821410532297096565537729954612385718446800238134279945569768471993007642192871556925993034901641119095899413180451156939610718825702568889354591304959029184489560027609723080985964047479223075288109755127886538341456711221471376492311213611253052808140511415567390303661794730095117002078408879799633045952076589948570630349671904314542379871157616060512122094261800666465369987324974268128124754839329553641642302749062506900612752275281832799406428515630106076348838054513502814038102956235270330073040157878674162836986325576170032137332961548177702473438177885362757281691247924203037135228254310649774029385690589162137255164232611957828798978161961332053125786594720466101051388095202279680295900907918797197378852499381693307559827164063107258100510691340220586085434177308642891809469735662384696442894119609167220477302020505106042581481903077000173087349099274683936377012952403084919667570277601436730872875494768209963484763574246219532367656443747271282833331135933326207794995887133817040430959217521071349466471578318108124237482750938874271411265684493024436475837401740522845204746711773716925984334657866898690576347114670010002184235680936468238371263942552048788189354326792793509847769328698564446137137298453355887516391204200347782089729162879477665782188686114423058685807173626722579233066518172704207610738029344825735528939351105272513238758590282940519498812056397240818440334732291433382959352587258962093244360975050020784331916469918498514225470251629058401303918218714279640094412828768195655383066219390737644460772659801884034995496781522930095713777915753503808437785611156323074963008454985180316984844505101100007950817112761216561502064253747525381590526169376176889856100825769794542662661152992767347511545641696727409500785155251258884891197622762019537479956996394858088554385802679920245624488788669809633367063214951287023442984164680274675203827962425314383009058344997585078167819107373953553006329518519273651301686155102479243934874899107822743260077515812363672878927193483076651132209647266570851988138285201256510624777709234033307207743825946484854424406792585121811164085662730605241292244010107847931069663679362786267072007653427792362212604280895245181157334806568028149429561006690207098040898113904671907854765146390644289480905552628269483672047975422250224160653791551861333091317340662710398775202370282224062836750929655273979939848391191378799294579194850023704156718132357719619829276726850826113938104308405371959164504949248960316934323790189694005104253131610395020060538633216415345242316025265556676973261162234442023825914104297832030667613311949545197368826505733751358610660106047683928152658405120595918887007534648037549456949083068820834625850056273002655836784582236662594258171156336033851353903570320038025517713226130731040170908525649536138008828896355207011735754122526483651098534549496037451723150069466610640445191302946522294720051136414099046551284612547867246975530402552301638073335393555955397552648905235771243265331840664746649262790780670680862374319374828152744133217086245038883731609848194310745114037913917644768725271716157682497592186856062918142292537759611514789189717006794121117125118631748783490125365175459346590004793045097648196898703657646559498377554909450067236858253644586437381582112471560130962549518735135363355495917866654382792717569936902213055444117264301355955564899392424055465520778489479045324577814635321883448607219202719539962182848477470975622899232096389122860432734520833566190039523664873019355728032106626391468070724878352290500548982072183598095305778571493239942127830223745036404663269338015927273834039504400590800366345960468988490756308190145953294712756767482059319894245370034892326137960314602671578354960787570635443375630318594977421154922663330200700172083690163957025688270280937088351440582540501176390362921069501215120277064420028678773331967989630952086680112400170690471008935575330974530894500497502065518802600658336780876977239966361132488547829624028777723746880979346035002539602590982521102422124313460306389106789524376421356460578460153066835128146657793409935814072789629263514880080782513446507335545970051721740655162599043232467110096142419821721603093272231767449908467854582434313502932516588703222213131862966327364489902135268268326129544543547858706010190218760996932021856311677474032152760895764180673859605893963889782902407225980056609176354839811793087768063013862891977481835992742328470029086523868330341647241128532033374197804191614513091236804622748322265521254062017013719277669269283945144545731721524607015092534192488521974444674728265904407831258001602865019116490352820712008891377285163719820923540537679063154948835572689708491926305212682909587003108085562078653974624902978990852831078095406292284539074453949320434258607923827756011782781847522469441100683395237033248406341564254327188992893889443332827848711129451443992629307684976802925092758603178588631755091568744475313759670151117382656580560897638978754753842879166767189853618716843118165068086840656076545840607039832260075198172188280077481289586044759250458081628378043199994499299104479332323880098644317174629750441343030719028622012318967922786190823098174181217375123935372203575485627521837087805932548764726179076339722629312576697166040319968152117359060717123706651356925780455764566964753702584456287544801719577061429355645785205247254382621824049345848510648158008850873276276881747469221533601520550441775606678353404669637123572271874320693143444722273687550372345898151777884155714760307557739473453347912245903353691773111843866579116262544551719621465074058702346373207741395899318425960456280593716115260440140644146182393020514257102797398803445901524133833502967543872118480023488832176598083092925135565121349274961613231060969298420774524098487947042429358463695626367101192422856934909941629223448935892551963044618647281420446427079354790255882263921373918110747210781269862115173341529815107725954545262130220052923272308878776385615261609235685280200170506489274253847161053545003871146826030483498403567776292392480178089317438937731136219907815150875357119240396499237067605258990114877942206741686785713843074007458472293110795137876460279046760875622751890728874227272069345553163882334094490592784291210448768316640384355877897536332149517943848274349186718038468394488108666414085790562323790930086450635445862695632426646087245166679013065670818195612977217425930552279197017842667897883297311962859579371963854682973085180200170944618459233167074056337985147815953423108314586100057661049983775683965444502706200007088782108087890164217165092297762187220492399997247020462626200290490768920865810321339662743039744984760618990617196200321091102209054299233520910884668988711409168787641397573979108716565284319058342004769908699736460265384215187972861767723256835589331384172916940865663558776459682646767914734275894062745643306983082555809733457574576611996486251733856130621309939689669462443158617075334594870643809747906700961165859785003999324413627905920908652428647034839210961318375454869361917509907028539671215142069551289569433858582759066485597475793317189627530663509016945862679613303664683402598005972892098645022769529319064143779328896047070531900265501073060124313294232954194949581613521472488303667027277242138577698379759700599317664253811391349891464022016962370651301794097576413782467864394972686673048668578804453109296196192133923743411985687480287915490370482852972509729794789131741273000339442677273338337505924781944687064520106487743269780304837685118561428285201175189059221756378728594045815701570960469266216658813032980835880709349322639552247012425482287964527885828683264380095168487246185250074812633264252784283492579688106222642814528432492485755501883503711823050787072491371473810544167196173600733906971842581835545847315965797038429404547703602629632970234260787531212441218647705535384612819539277373321173296213049966602416384305518657029525618354559484008369507903476739908758979686818645652230408617843225495811714684475911564936390323302088465934525165214271458537615117659392409710773209560412533322266357814901028867273697083934861039502773959954877030517021279531972749289421869100225918106355038764925686960518214935638887447447342756079013847259234330420192333538359040335066061061041725474223846446871308676515409303557684479495303449832010007348235952457015053015649112949242859758403317810006143321664714568458614975787178097141730044018626665536186721782033193772403196814242773338228374716121977705521329563651538999806098642038630042655456182660949930661907326102577547420973471518097120317834263510251667096697969320907519512927396111399625960115207418159950558695448237396143362092892103253012755641179310964513588729291567122043071388605862973964130669445438960065434288530731834804797297259892045004718682075338289210066991710872487031148451775296692022237185941812894247943807650432144679429963494077333957311796927365435826006669272700282907337526776993849725339232887779014441095614359983984333766121411600731724202113743806421243657900601819502515610867349915917214570134504937597048121034538919383078511026554080626809334433936088638107293900781611528720294209197560505000608037371629357947207638596609322915289462427885230402384517765352965752744040119465757862819448537442483905691572811189008696773215961840829189229113427292955429280789347467841808725889586772267654806880249279400000285205218832530551782253463761102428702507419843569523775615157150868319076897471532001405593791483383706021300835133418780826273536742750617838223935976817672244256820725164211834751346505260546390924102333998365108605075565981251559469390536229737653249151334765469052256775295487585306608422629516623838667837780984591366456553003500671032794653812324064861483846933156662447076382735055947438436303923990004051135664261943363561492446113095146797170061191014029301804470460119271505218493536599117962632222607094031736306292489139803175769789329681873343277483012239493628144865906032105668093532258521241221266606112642737869888468626994060480642922838293602574525505538120215702586952808498610268765866602836043285831458556470108284585282319703178457414019155835248766219058807778698639807765076793710058777572853509178600910520034444543442157755150934309871331544338467757490270152626645874729160927405344279153684472352511152871584793338751869440553276565268901947078329854526609102973594789232299899646488523157849663604754291383998713976143973591720352780826365127907580356144485934521842960039081439557205798536771192487846728661332110246305099661103244170808796616464328676531099551659338125377107334288875194339414227240583928290855606178756034720167323749010173641498264803502676337662688837780982981869851060340351120209721727405327194943294907386518704140959726678264914454279623890743795359527549892412817061279383775896034181440634119720452074496212016598791174068069678296074177322338625605846952306538600558362665950364568882973317060281991670575711185746894750080618309949453683183809872614936401134317769477323351117475209856294868749654273130128817973250096621522435751526540829309069125652652248665103592728559177098799698967500244793925450423135491917662080060594353939856918400543896512836660249668229387739408052778799677024926705323540635352016585712497101851597894098394928508546682584953728462344544090652198997646399195026624405775673780534467847155272998116349569584164041701561899173108551802664987779226875803131633828046407799565386940953221593757979274354295779010699093360112744751817127476092534745864834293167514111616721012439607640084986762100286084510209007546716604441642749007326067441752418380304926320701464970413525831429890258591912136565319751159891275114108826145274241505591961568574956845240147318286649474415064481549356830018606614936066376994319983413622359810934213322290673278954558102139829323153731470881662607497899013351340838823931877885819178447969237357770244930419155190933138997449118833689535888425179213206734643839543481210671645987128285574144541269001666957964456691448199003446418591214094328372926346638915999343357916616225138235688641935022788393653535368053056950711684603847704975786000588964463193413637706980760141388844409193440421111409025500793916859964733204598729815703446235428084393650741452315573748594085843920388046382679737589407503923692577239559910108547772502703217697795740876960561024877453557565613615542648869339022799891515187435962353285100729328066273809604504282431535170791577861493651042993830189773451676527750489219807570747040457837235612742833110425480337581553789964750310863172395528358607011038617463854087931038277755220816909216992333700843334655736096266598861518414354029585952388945391683358477211133135473325736913959084076105391452145478703008656592020704546691309732156562136733035350381093750921412509871740960114249466339992651083747375501229412923174621951013156723155338376343786739996917308503301190802625885395892900790000020600057898027629123381037467700734210290669178709494760964152433918515248189270714282487493939053054807885115189571826569842552781599084825373266328167771941083171075583676829924863192640750979686267642340721800589937001168030455907356108182706253025141005432041138501639886513972301374239582772795053595656603719871395835148412742156268901014026979044485313386903576992575897939330800707674542713266778510504697132424716912054559823323712358639208865054753399192676926484293555861072206834200839234263434029391678616139350225126140860103715836136386980326028513616243788989632544720283435377500162209518997536631042563783781604338468302091499298825751864688079093362964676393683288378045521115938801560172100561896951766491427320590702421093754398851043675453723554847468789176304472100917562379428211261478352538023916213427318247287772740924306039229600733690957893440445509427663444736071554233052524762668151409905701121578206327930613572767403571579172472668732294945508403785196457215058768001785786119280130405321062928247984534810120983433012245183936191576053482597832893821066682549927937968773942520533227695544433234191200417964046619469320796382348448947723352478375274635256029816612162274348687985108819875878867888448967374391865802945174164563514085489965498326429885268505207642723823444084576201110943875127973361408926503992627699473247038122948071063126485653643995198713709614972729341272962096425911331603449482961668600211888456921695983971345874000760121851638098490937461837061354829026728056851029220944204854011240557459534867689866007758486696295723136839225758067921406343716141802396926563347067751172260213351133408020477232214270510287869742198580481274949116864847572680006360215089366255546115816669965824814433205114548243085212511357133552032789234234365984027356368975604160170799174754835859839512264499864142425841403686337711789316616812949482112904110274543335794689052646430776618731729387129784020460379327089114976271793891489571070528026350650178350053323535594135610330792339130248188642687715478540194108515886782624435864530339889924509119400176576256041847994079156667172701741059682796254103797513773177033734446267479478841237220586934168050193629254625559780548781142630593304181311275375395532928964182992323731804552458636155273395960268271178753062454846015522272164139195391556807768591978710995837413854773989887954883747619117141073046578912583069293371027973403127465572924586133176209645993260397290627821965136521892488574527262347122981601990604049303472332102078448714817291802149066341083889826647354289223047005340186586932919803340356206492406551547164535887992045666610349373626643565309377574021575550351481280844062204156517760993418448336809864108963753341468436787190499084986317341314200026083992369603755163030613172603647288920101963408538804619365982860536073672576328149345033977424319712354027995769700177603051997178492791633678783212084906200693711767645778939401643870815134003873211948424467888638996927496435476250450593912216642535824363730072253213452926939503867770978643508902711039527077010403404610617001713721824227478593310454755238593208267761943753209448251585153091149944822806767938542089526859779418956760042301239460373874114864004467886454147526890117143299140626488696289000250345229701474999540490191139111771230602748918878499198077072317414896612194732118366747657659187352898954246928223119774802776509245374304459506014764741321745196770111789915766174794906192078947310249793207230545776661058734692587155274080013057583374143916399005402288905011239742419658646497917442176705795180452238072335468312278553240256823928113953861503033182252613412611936042653700123430340717568966240959190612400869757635372592613558941926755125080362076029004393088124007179406994409145870950372137976181744820144126344010202318585458796193608409779657069090037656081397887776035924290201689825290780097367395485646667794202165528946422871805591193911592270872091088895605425832022858514334219633076508450076461418541043916671261157366181850455491641261344948374775606874352064054669747094112211182320461854041993429254283370319432793402675005947226953452150870082947788468865049948090659139027365036882085167141608986213766548789932209100157365060216719233599920237618620357298088311963371320201156901111666198841892115761915852702545125103451407372536684036293826294169539799453967632961998174693422219554666479203296600072751673739272709357915640976384619521624193026493770776238232719429577311821676353587337309938641746760948046190476639964583197923996178950349361896443989732410996558713078733893968322493391281444480640284131173777745519799307793860349914821330552225267329515232271968120036236535191516805585384415314543516959137687745521451013272754588896146723772333705808966448484247064040210495770407629197802541187615480751509347535099667908585530852125676387766979061319531350600635634254789690886606256619168937956363252979188948337223517846573118629554708802082638395722696869995904517325405460587999268243327444410324464034983894978462128657828750840765919058159265495194464334508164249949481886223659782746473972349600405400989510675277257889510400694427035547208809286234305261797518923632638096072982057530389372446784682676032317689865780331590405769079133627933597961737719793067283565370964104740649682549753800902632489341393011033895572838849915336784206656633603466682673448543523294671986003754532139759129927039220287371917284504886498066956654495451527429015861146151580304894137249139687281486888555823735200226717058030523424379981632995791804953233083300501653650506810820107626151453343505699650376994247844514616700213392273365792812562391014072330372837889734232091778072743348183040431702625919530960378200041587952726960313416436663026040676351480168688749265209559424843501132054762666718174092098277108868529263819459413012158958792171099651482550319732193782052319673174059666715591885271683930548236497593465111301725689235089420819195849690871350247485427697887223145272672984213210239286904796301873201435240155647294594425812993898717754509575656256341173818551270483262152071067167230097574419509368044780087579567140338403841526580576558937782399295607485721084755845711803135135271592029860205890678501606035243888861123228509599330752790657303575095888543338086587247587485422608128871731668808830200567842678941721331438573775838775989789296979786122833191697904206950285024943041428135552835721548981569725887201944624034930921462668688439367072247860302209922809089514640573177477518673436165203498367894787227982512361592612713642124110973804820401213249010179931670540223555878342399673329145901901203118710490399593250624795630172375788387202855897905928033306290552797998722111529868228447034017008019890360125470730081156344357951378085186788146212406887047510589337956177858539808113309596513220364596924638105771747372717399376342956074420450962687997134607726057240308122531799358354016552102762776581234763302725273293370105984387898808652722792627256606220050546041569855573380004653487239540845922068494513438324565289984525262873131635852212663727066248325748988081198799358487304836139113881227168532237728889747432669665484312351620480656930178783812749279225890387716089560075524556104355103503049395390381504253064527254747064812910765954810348125190239657999153469681275955399951389541067102403609924957074908083032295430721540118896439868100085220468357405494433664023751713468995050261480259368498449501366129080823802628363328716743237767517304124216882100380627220582579643774554911808705727972329633167477720572061118967100383872287045865888915163578899701152551903102197442187935214436830911420839116514257187953874874921624282671369649785689665069247186366291026106947333274639249308416694030905637922255345324354200276995233333518954454352366053239885767811123174369118669584871707147902874433269986524094434244469121230515804329651641788627508178666251564152063923417090164491905065471406331210167180197493644807256758821591772431334765059627305721892889843358554913207315448266259729938002240016050771264298221361403105748195415701686000437107908975140412362361992235751436739937825796352971793684163565049182117402808881997084992460361240290145254147574292661734324335408794894569792367926516623351370647283670196413865907839387747813161400612777716338514904266412663008922704417284207969891825608439282092531005730865110824700733820855330140638707628808805931942842878899270582923988506281668116654356360327937540485672063782222681399050217739320800725863110446511829985040850727059442776555966330584324585984981616039859934140584722454779973713247462861111918051365945957840655655317130842712746184916874278622451347335710678085860448060305014207904326187086124835287381893753470598463897113027616412730014366374953127774911478227232321962611727135367376031900091730215646609245855078710811908077867705237105446288328387632738124575842405275322887997255431514111751705096597331412209751832750063792084347437616295536434677365739702922664718119242684411461653311678466703440222495339224138012925667038643939061524163479329857132887654609870818987839483632605815522506973474063928690674545623461533947581369760802706259064646692387187080954521103473763403389016313090270908140906751430407192495327048536903496493903651205904145139306387970579261861394734895647955013936501462419653049173343605292042590981302974271918285512752100251283219586312113899952615926878713559858421669350952410767576103383067736086737741027468603331385020457650011880719722689781966173185476937833718070470478501779503698258657505527239657880223383299728037943441118352197567435814483017769595104857070768110221742231799549478550776576691703868858889880678064836647912884378492754675885056800526061012679241094572128159204487701956117337102560797704630869874568206319913799651493647256039303238732369797823273067862037784570507560759756680305606783150560907214559570120728106494268923252825811299856769864836290060403957286336819061703281463768111289895872711104040333777922957816911556127908213519056528192307349315693260759533245221358957590995012257014925825977125807632787160042356009647500294041462084528338693566463272872016574043554987053484322033066018501527208717538122351212234668644011781182288768978601337781800381685749217128845159553974981149722534356073158503562047070995948460458386874378474741946460440761219989875774509190789013956773098325052450120062609038301381387782819226672921479723365308057137450899128516751778499157766131596726389546956852841744575928836420633004836023696896747245309781575016930466337540596299911532429872790354151044914751881609113672595620292246898788373962529622554024050329855917810783284745841467212105172307743990641272553657273043587530557288915201659647923366689376931885362533571123971316215235000131933201097335337315393671865702345377125068482298999907654675474004407981001084385452165480108877784029146898444774765997634552023491082670744573708821254539311139157506062775153177665041161922019709660080100501849147141873249604848891225521651052172881397829750253830366918352497312997303240396680210406291276655077709330014638878764320027972470958213890580553780777170575197009582609589534864117998056678910180641907531432175094079091896227964678098406311448488500844735485922905722299054143869170605782496095437198004612228702404607217295397741248444633988902074016212318634405674150551575052928950282097014662642940451823316975022270070707812706422546433680778037703041411517596341193496041063417100861597411583473130902194487751208350622628736486766478537515404010960869756753729295763661829843965867153859771895824233071499532912128219061330480224360323462198246348292292455479741151931256917270072848566896285968470319810714107969340018085119212045575314739239252209824048805888030114102245934052525146277835809131325492453138087234359316549214845157915009458555998482952408159407492990974708489631677863434215944828771237780790238990267749722469857319269168039538122530637657240171937291290541363495314475720858626831407439177284114562577120565521840607012269956649291170828509534060300583594083013705403093657004334206199326104090049211764044295428555219382810683702759751688385909140656360029742539461162875765836825569080233039574598922593086752645897549275115446984871468625601327876864683733187700927934878669349342028305898394288886226966808465521614769407000862318116122093457846320314072101779684794418498006204851513674502113177366473250509720664795406533268413914909605896842511139403173112457105402822700573759146014446603405069825283641059127154207298974876735624835728908205373350446079149001169473769784894158733572977966844680620736603839487855591082451413186842198737345337696569174314651057037390270955757908400864284883777899719039037677960065093418395584132445020351557796173681474566766815600238721300856377227935694677555655447622976600999276101125766119145378150691058906206877965671186186378369233499402181559426938617159990257446999622732648554350461293088224359846973344542462129410208759300231055891119507650831264513814324874318395731130487600690143237777449214281983004070053460394467861740571118689101926710646618710676686030053154096903153396008658826778081883477015679495409492104247394933990256424224756866798187419296623801314745493187232566433987004029709010970676544349250703985751115025293763120072043773279786034365578673751029205243630317116128505899903320504385740639900761625674381519033065688321983725270100910962522495356814751527726628969756297041391957430804486863858352361835881491246993278360401666600575947327603143944733208169386247563223167695863289323521242182025233837724074763007381916786090698966400144935687450967191747934822581143146291689921282685893814638181129647226471237120499094956414101351252750733637846953538001247285591480413240309120194783049319174136863604110115968501732483116288709664078122567950539748172031429419293344253434085613241920793210037321273973802984844890308922635031792025016000349793508796191557969795433047279731892895633085574254680619998781549334671043643068397198117495875870029158426547988279957855156881436679829878203714684995654930290511728036398671493572491049869566506981633818951172431927423761068378560200557614974737736958391525855237551052982705659853589465920651895567006483219082651551842648337153277943209729698872910192502913340592119072065107672863585155897502298172667501703241304885665626059493870389164467225809116287902480281906049989768506493821339689588447847877222249337611861962988130753464580068446018460571884266754868537114545965908964708602655261507753307630614370789652364058748547338388060650546344803245862179699908763382127527004360273922762950883338597395194821528215187014390203901713548839737821146094988973743203896523413774707759758637569930498312929889634195283191640454309812809805082799816149610384028461767181424108597041071583352525869499479974111611224189160816296038524618008927398510321205263067484498340081263057509948961900727943650005033493512308361447145859533824222096959304164082492046007147232798390056894050532803172367914230302300778841596873554910891293660757148329292158479554211444782340957602121205163047033321257601558712487179011411743147830848972290420576228323035345149688989816932961928727309605283487814632348397259554656926554565220400115422786436853850742309810361990233435248859017508111923987323088887545448861453005422901215473082063748674555283680037929636593093024208314985972914231865432973868373472403951450742162914155684791837537429341991050283709587215216093477481211497306867014994385275044928125300534746109955576123268860744169061049902538762609505777729287645786231949763575395057151381383564455274109758673773003141908989514925704162229172715330294234345433441898858107458373998895447874530746859620974743663523227084406301137774115814049713472544655532482291455273869909372073639008537576525679494756536205834437084553900885988819344638163508335561254308909532237855786909276474673567780143919007489256623962691943735314491458731746668828574984418771937044268830261812518412489747673103574759066853563806977599722459358961333318076084786492941855427233565712205181152319004088598191916344331109894142839053636863057196934096696634337297404190500643311076861594976216884657498951148842731515773674811589458175712690853332116619268078710932720004173554338103868082509785359530943894810734359768232574862216467916043749616943496753601214521693178804754700592663856157006159720318297214919870886510676732353881115158760274675705450230297185956295490422123525474658362618666716594243869121480610893882922726149486539371090459398151173092748780489781394852990442456594737131930468886259064038596479674922178334689050513216886453863448962653928363203999787553150635510986568667411680774673342728771284249611917571799281370034392392849000327018324826054832269327833068403778031337732371587353206521336821241993465268918584533087420543624880846113373124100142766151249961423204000041050450707862755067725618297595135594149541710830177381815745363465489624250731061240339783766261430704698838696426339492506771571078223401367576020351990482930762835294348667646174591403322111176513954436543309098582755263144268953664561343317513839896908812740268169998480011160611677908043632805420217445417303320228889911759915319702688205356676063874881633895643829510076365293969290594309078245022933172596575337769436622597253363778028321621018064767057681576959481987975417196503359099584158307001240899830525187831084365211586374463839214255470593324822020927097429320215097950829347603940645118492965753553906098654093982036247141329721166838334995710357159468671221523105628180085835602454283888872901809697570061703100954950582435778921157297730652869655139200715680099654020506784376095251638605599710337849280516779984833154025846050545534648780403007179470077268763389406089308399467716440343705987060585317084611783608446129454206524399356561210943707053976798896584474940321129078946854719585503020812097831177356155388604107986973878232779264147906208917518444642034267744358287502058270310049748128536905782868460282250313376815579106782571203691281946065516906818540813283856920040230572149125662262118765913067522838363109287493303023475404556045495208933592787287563075854801590659156744648324141899363464265516948998183811706705987346840991598918185241716296025837480947663404476887061898302738567363486243088789795871941885096799922053834021729521748235401718542042847608917592615583791353428499830268874126093827865244445416548471282312965660581912620348197294856908427247309700934246749172900691827043446260161870630601179412441712280569356494092847858973184588309389803065618535010874167809950715644882815140470425641353364255506501764168622800852991721350425935825930202629140019591935644265982052765422764770210942105376207211333359484149690832319555910466413935212474963214862153038552300505767130954004587074936402499095351217999353827245646091498031283504319275835299827834433871441889730297290863830086513201395817138401728418589645181061641168831193455020089054952255153681340674999747724991683822796123377733368074637274217262587626042739071998558947903555099284120732523350888653348193348056063891597372479031284404262738826570304399555802827464084549508950817443951506923578342076167155759253932592171378713711893275797427454605324396465811435573545872967667907160619036396638765456894921960079217065880699252475318502130210587594080031243530723261083949669950647066751519086750675389196805752680196735068541551666554846321986626814719772245112874323043646970960519888532891393069250450599662903035745806419712031008672030025389554828337179672297823817774272803141756522196220102536486707174960611766687856381883795796042312587474540447610832939155715245525693715784822128216168334815616648352317347971442788611548130083683570851451104927421588616144392008022688191914976563340123901234583240446560203990599650719078089365212176225678205156330823310372702295180207677701677227146154901703159596166097087776086281527007831370654621783328610831188666331498348476764748288917307994285205826422485455036766699464743991582476081359706636726102963356463030217425278452621204215537267590408342454022779313200478485471923692547697666004874459043092183503201384808821774748740032207352254222115845270117623278702407353213920820509973927825225193747278559717055813322054813942464528943437685011232075413079630120521646963295738014049465964099024444599674719826642168286070053256429621353135573880556812802241576528820895817971413979338485851832141732876554975059188000064299117141312738539301947650410875838084910206388354413914357852252720305240907913643907099918225540979557161766779159986100479320137518356919224909509124326713041717897416298887535260688581485350087584576891046387014343365843431829573025039094838511016551107547578704408625130924868917469516614454455104223267092509178495317459140634952628317350648318955928326138160598375642697529083294344544092157571794910060597422472642298116296424108858662389411520828557816217613594009605703877756318908285290229404734788388293325869253364972497143425668786535221236877533551204882573938561023713458086047836812873107615944769856682592504706056815300250918169648860517169398854624508668745977127342180453044915327876147088850638137533604138721753883751080276018394873961239801534579655861377783139602495214715517510360313833543180278372256195271821612969552749617418130089171864799207057165714576883742499368559712172268455230698070051150924047454490608401132533824271682448524688970702675571477085603842852662279925008572027846319798516226545671525963732011015462953372291270995211612689433101825081742413352704785406671431879578266255439658804534544928855931450502495480167220594002477533033656857141820432533565535912802989522710320995459023647163094068278771143958965513640010823170391072994199668542377223547102321890388748543709651869701796426942581871058879979117522105828293180838350942980497579170536098103834140196717994908733801519669915212845397239583444601817773045113408328377060791035256476197573456776937975408247329645989783738955017151722121456962942429282843581151485182854739042460851229216195228060789984977288152849725400935338871246566232574484246421845671312428290457507449346711307175266140758433475974885981642980526266331919912911915869861399249219676851259060133845486346188472661868909900730733966461527655830793679917936008891202240709021643436123571533832700918728287309042943482999118290964851115539616853533505560267378995176286688572585452841826624771023146262729123471186463085204165630402583003333748526117433372246096554845122035578410596092833536927512468587412568054277319231617884902247495530940921836870567017706011778904494580626662767278108726906082049653675204821147220134533287448006891727364223913534563998245429750607916877487364963364724277934983771003775603203276057629862569682955290250892530847897095371602935969953182045628879825351899036335031558594683605330506248916371794760652023050023007459232787582188586496791279288801027689831584944555301227896524115128701153564821432896514512631955654763712797269976691349400603992648599741686422798460052683808369426111782610237276899272497952362112416998614833111352226766519731062220784116954151185648321331419297759607605689963656104469517811294786164108448199053375884649389042231682948755852384670521581349408392903437456306588741865592684721144025702951586003038752156223706947138878073018929988613543455622332391322866161050464049012981972814536323524678989291578394148342116238180955567591082689666887392256323345206983288332596482316816219664711286422507261044525410389624957738940245553493042467434244415473388607668750614489283429457719534648738785135242736677563193886019358064356194151945654919351342110470484253703561162983407531168890927811691799616208873552062286483956515658771556538893245879350540230921698900335071912653097140180162821849494804750931151598443022959918149830446105120652219588665730028022018840684914336659043815886369388818016034883150458302683569919657750006264287279074233309368793677461187055939747136185621975321152645060791166740749529624215252378167601304058028017306768764094137296903581924816108095749529885033901348721452043369684996807432737348468465726730066426452514465311048166024365127982109157401463532710643678730368197096167290644567771288151728734910729386616183718561870481770723937932661494102740816207480544272559672335585511276621899380827275429156579152728180766258446596862095958239982584547402503551473277604698630951300320311045927279975303691824590705420579884628216279387994070651553611210127875541512481396416562976300670928856717932982859029089977551573935059537672575117780740117030983522018610204622343570092639590081131706985792985977438326841895505331421519169143366662359183004673816125303072257180577609514646907404156078436893238040928757457542653799237265595692174567840032353533774088954177648711423544241489624873277424184546827163140025115734570474145937272850672782486902496281138659477653845866626583527309511395515413534160711092411588333978971540052563081827030518160225712494109807201379817088314821003759072935292686473083954979653074032557049115607847678141734586039960965568133077724444377977731438525864059676392256873019578223738301512554590661801337845650741240586536599277970702717227290236026509343930566879654155064631804418924323999965836936376404134916657723102448946856241128160479854404916216919371459508199287862564344749236080310903045505048154132407633804245441008674954567136183212606185728659758241375341260753878528781307452858234279447744430297040110387784845829819025481843710037531814181983627808173729730902405367897679469561611606553655939622656781342002276603940786094564292382786789625548743985666516185213252218035775306444051782015310447868348470127025843709580566702271624479561561484308162439285715848536944641915611351810945729514937031761581514172725748209618826652179196655223006038117671547020828968951710546975774374019617998415326935043265780917969809966290963596685871380429017418875923704639994584230514706661116135686879223624134296305746224713228187018408432549981067155403745794831044018304076095849186780200166001017074099383191809778485365282260812782731762618133742940224579157412753143147961940590508699613280105578676283870668362642708161863036594067539857531559345615325683989740092867699173167147980025600361082542222093872600718751671033887390993029189216738662635494535991017788594168902442108646600051081429126117554104401056477780315815447923678485364640462250774669884498589320883515725424199785245661336391500119463815397205224188514998399839909638349053404048364402034115967964157706729709790930067204193970958282950326892690470437000679763827644125533901626415815677328085693953120501206009550113374775339570557751094488212115819472922307864457247108393727966901531978934505712761553872421729544238051014228164477168136815171465884440317730862144064145040891873579497367691694656695203865168593160652647517628378583075131599047437090716693130913959545839029482097129607565221651721640911560468260124605619703636961271673611388301955624176965623729901060562929848535121150023461295812171685335522960920691050590913905219177001987242713282764793207499971482258244966479784683163647311408626460327601599534738247038234261260910068256746832458870318980639882478948893757817765511116920133877374503154960269321395285412826029919479249962665849152777980009223139038913322600556536439871327434853813489458363644591492120128369613956011210663630941395667557431959116741407680564690201330658459466407392608838331261917560161143917574954488220871755243136711673211121322004268636163621777858306713696093570707698751194568713220823274337144356736339148912470404385737060339998132767990514998552133905203769117673275934203296033160928184156369462501675607624588570586094092277604810221636352872323616015828525877055150197696982448011440773966009512762346208006564898296164147748125290224841455836603904674574519363209791761709719527812184534458268903729192064472697415289188552683648945338316879927406606079690094107511184173263836312610903290376216404790874338515547219091290180965903978345033711592896313691181191259707185702484476598682910276282223283583737020930633584723401594333185576699327223134858893642315052852839252157843861409066376694805474412215398229611816670091914432269011714308024960210198253997992894560783866373048180586096828517086500855605823579882338487272292148643410293418318843255113977389937160135153965389926581848299570281037064802527904320473883122607935239892503219439165337367191850281764679011310717395065303563887404365734586399751957967263963801176000147918986159083966998709908131755858990162741763632279519358750211288908400988001831337910484934788413631869953682649905276529042780194355555707902707816241601847176915633790444312300046112004651544184486274813484637932704974882480737087561043488441317244019743523431967194191436891277404276680169368943002795311518017650467209536690625590215649001028277443265694781763526996873450468351155718857299514258795797082839005064011608715883256901066647197151338132986604067940742066005700669553147614324956325030485715080467789332152850454643110086071046428704028328092302629159674998268623206108962269473808291585403924105162274732741813191377743600417289158561800396824448243439129053322285873345236713677772024873678026224432099953309514190407601840677032641207758272857879613486840417151848444104505696789603218772826380870242391377148403816157405762033893221248867800478082874046756846482164502143837523494477139032756471535660328624624731478589283434090986164858620952289856583610010314153472615637368549894609826433079744472208557480821318453405572239797582044658191896841567244982192683626805533233741226219100064799935365594863472553506482043485957360300243455292845293821719190919317133723777095482059568787656722601481155539504109356189825015624567117797451705317001409263396006259433317768628647534127692016273840755152065646527707943540504536376512916629738723806414649840820961500387191795140095420314826387129143680988361750471172654041995992760451145506523125360659336938738963151130871054777057238459009312544780834538590055763073070181861808022086825366667948370795693149111721276569181686397129027149057094511651304148980247732720566329311606959586160863619479821786751342514264886261518477548786722420620382928009725594730641185181664037040649322297354996332726408822595148666987832074776393321815845857368202098459594118396180342359629119109244367738021508007379799260033035725650891575163599268109130961053500736934303199953641194854034992768195771332741112320255563847139954642272833031413442695781698278151963492700557757139230940648531947287454014611266133760652199750689919445166823726475168285592913797317539081035280314518882525018410758751469299208286214975689352141902039087122864869611441228141993860272126202829574182780724543777832562956808767737293533543966531980739825546163027546641272249553732794123620527339718885088666486285977227314811147806405793194574993136482439181971288462969210892120087721818562059068451662053055599268749603265461793275986956465216625519580957841697770487640543153353087438152881972942055903827035385066502782441012236412243607991031981978913457003033920494286530929090521256830697474101853736124566286609089049508754558943047247694908256725444864513813165934631878548945305870807346836066288961901209249087075026873774132240698355062028721528905885356305220925259046332228319208767510882716678817623909682306990213631635862417877348273592443735829403750905782060575648852881679746062675900403552126875389881528052133275845915730417519599045153483398015459176289480464648202829324051717757088257512035016909119379941761584917244177453117896363516166767992576445283979894578344341179783242590204492223278906495408307206593382128513308062882765057119759291413487455646259259313561818055486390465703811878731679770356170154007124155760056374293999115697780341605973545452738105141890866785153598848999092406029610252989072452932002109974006880802314807773406307937806150101835435690413662401482628189631971085855639998183461511651011056717880099791139038707974324049367430786110109132431931607521880469714476272737696712635710416378700463330791793049186735306904723677886596526547288428606840815735911907788663203533947701212126300817314807413055639152201166270522043794736101913671943683090648902957457060459149048815111664198995581587989320142962802745504429190747009090716106540928262709998262987877345328076917823403272508995262025352846675571679171884345768947648848418746483229095033657772857053874232859152926121515021548678005345094532707211801097417653578655700523548433766958241201313165014180763378298383605981951859707543343327612006040892045755958035095163453004888249231397144889741940781853001173393494450275904558388141497045079263991613579330546899933330230039174244020909151352335862483406336183301275272535790572959104257865385548084326492175781753574351824738077402163338703044538066946635091040256592566758283133742648358593791091553309786278829774107315755873529157480779624331217300233812640179485017801036613654186712181542243048439770528450298355840617103286405299917961856198698567523129370073745436145957550891027962715310942698507758914918715146451270201235377810964570460763214640063418227290992865668682787364323394244267344772893386260652858934199104978223059514687607434587599538847174370578389698682280775057110474405915678512385333796754862597347501568642154802035056899352016060787380730684569129249396161208296142686755583196812638518991282348800512250911511241631581736066176496305113857400413687816583021151015710431577237840584851878641137036950914252466862257122608821088075314890904359177282299089272554502686423874773088551475075447735651693761646370972199797737633886830088865392986963135775947032708157761638358557114626157948063202193931664321189709554698922321278684311138507318858348804621786985509354363843536209670567391462295485090158532376848373539325449902834541513223190964545587980327018564705580989732177102531356503978524071239946657655696299072388936626390281711962533470905676372368606727269482447362490723310347950501170248266064879111089340602171630901566611093750512916195853251931276096936841709912704957166679394583536896753367336843840725831736393557363446624985669228144298737408532296904593462025259545791420511387498616653555795317640457861616583702253132773330912635163396360925059167167989504021698697014692240157914676919976704594641519989028072888059394275397229272746612385132917435319654744801013561740473396633123567736692486428006857339111574332843971687524998903945446584523632571291485510081183267309850851487216130728286527709008716953290463127153868780470746446771719942130296054888511381894276969350393130689141512101521777785182428718680669103626349015206598371185407920207643011633366796080090814051759298792616408083742683167622007678979720021093883291490424118197028497101093743828633175369626555805253037794445201877777634597821707021828342833121868084744959452333742263429217557579123932388976717873939157953137199730033853394288408924331682541649430535564428996320771336748458012858491046677943331190743119420414026766757946170216007413648463658315266182245686299515093723552325294610882076468649684157253793049097324065413356344557345545763416773471325662203033379051212190791467622444074592244361221540677467601122388622569711577803669238234572632558068673056116913891263693562196813869210895729625448943977200189673729506769475319871475509612520502762287042717118752421508776039299946088998769823083841950232970288828347524828041320038035865725927024874839598986919102350691526093440340032815991807424924527082710734901923734329934198910843826785662969339939259752752640533727523286670499141862326710591961402415928963628714915869133579960708677235951446043468308756430085787268054553511122034735010394800585289648389504258350238789797319025469285193048272580676657986631614597221298493492395615627913840577091867815157512958917283948633535157769706613548765146861951411699637815169926811953836542902631358230347561587320818385835842812027425307174908049318981073423678925719095602126103884020962912539390834351790387435433557979610927358746045100252450626689098033520627613970059617133659446750578870270092592614681137912225102477557227996452152883711217936617110071756811730467275682295902954176826442388224998601177632812054379245287636180342991667800008442794450346893757277687339276191447456071174253251503654840761155297227639479286863556309374103824710596341019443694583297869505798085900918827819704926262752153199217448665214985674856428343136146230817082650242180043061723285827067502497960212869173497677884858409533960154334586610799981307062923032144545038669790716679324923196822129997380945925969714181521768593548826592078462969275306935545033269051515586117576054987235922377507279528850330405371804192476098985476472519310522044936314978129066447697340685314764867503904785977492509276180270755073968440696372607694222360415577238771021277426200693774075160208856582934659755017719757605376010746939416815733917802416424201188543844850363659283182532660471327641492028711536529134910607493523689466974570706513677096639307997074385996993791373578107161415686860180696457625257982917060910719986324515559510273588093807881871962123610518965119382510852302020245780619949349107082814422001414507046042436252675729085371958298038139349693179688945354426073392303119963088598377382884715006331764868531105079860933023686731093722179069494185660479198613263978885922628769383667343981402421290958404696645281972791999505599625921285996995676635944724051322102215949540030903166135548562706211672486976607204379643608780065393126260298102351125586989314728708615322851490945902643370435509827583479348936763315229971184800196280426674400647548256458957042258021822571695093313633853241565944638579568760848226338032464958012196144862809153776610344184353537812500144049352200802966158301878716362384192701731672390414020833137700503126932081269953326627708769583291896960884068300648768335706292021130800375984026793492921997680135341860983747079630133408517653814117465186152969591382625374654785847544803575929419712647361609052146124703116596553968581459571604902684510396266530503699854382308896710456858389026191826391021451151039241389811681345049289665553604122342767125006875064356510012014699925312844484885060561415247419764144422960366903315010573671049393053534440782036172076544620423749753816998002704688882397399208868200062992240928764913473215312661229836205913890553704520396495091731359151563347107991221391433973774978211295276804277233520373981084341452380578743263736333867019585393999790212447048591191098441450639002338873982005232372197824162965456401809889369587640960369988266967070325066324059268816065812339674061448268582398634699925593593271100919805422444288146818660233736717283189516240385759186739632240853771824530605383244983774477948685588798376409675629738842370199658830002774015063706966703168625927469266325280999546847283564372338390460300550350387629756785426449658223085528568233772611650985310125806186867419124560213934184136494066992150501751539479464976914084981198282885147857689958068218170276740723114023821032092105549476652001550489830193938578047325087915611767483099423829733456721168448367368282905894406074541741226002251129046240763797003014955255070470310759671059014634946065543432783073334400861147093379076428974969303898948548688201380675528197554740954469936584916900241538440980428876964595316353993893747106050345458532128010140838030144544984092079347244528767602273847318507995930540802590516344959627475314503377653020733572300055326539748100777585553835904904245581340927751363075005532849065299380312717373917186479088467766934626732867890047843449471214381341475754871657216150132080700638691632160713242162070765797970975333548811669886395456264067474463776892361986501281400043438059896171177946128941618219440240265658408967485367001745057839694147726454856464820106785545354616394071464073977713122100112907004053133179487719048624918945068875134354793576530440429626087707443395585299017213783804184610030112036470926418091638115210143635075964508218710660401294444415474711544933851731973802438266010275090699336339857168697569159789594950423601573644919144142417741501976775815149610753211176847241054050059298765264997721869900056474006901325283408778754762057412466460110275979399003780560526002488479510809354352678726278442630598797081881221254664283054201982609853426948951782590728906635928826827312453299672329236082113126151573871278425809184276898622337315240991277660442137673096412610194404043397058522415151588835841392035906931779075408830172351407810088599385979627704018043228152111319549091847851453998279784148593538433309850899660430501518767551185715213430569977997343942529012029723766832351613465916414148799027386068019834560699855519217707697175310702764332611939995832665336205923855824451509819225357886442102907150938688776995660680850231557020023242977935627677069966768019143106716908201409988425062157164017960474624761512649214668656842205709724797818853192286547410402231047871307158345039981511804361916749235113404831510035367355612393148242545427118749342808451404360185738883070338521586362260219867971466707607467955852504588995269849367401663537508315884423107183820568379709588092502705569192079599747371034864656959930355480472994175964662523943627259469067461420500050222457695795229727263800200316449412103856830192285918979228955855243240303430302435926439164636099866721793871975034087642457372351353292082363259156535560374249430621281596319113461016176637260138435153051663078706244445424095906498236806469348820013414344307419072677346928815536637580891409256818695142335945129159943626075046850391026906097384543830535897378251493827503345417777616612717034537308431290077678856238279930963724327438407962964165463855250971941569084763685624695721882202536218026023023648385618523476447684021941777427818429810579653991436236306994541439476823926073913796225490929780336006992814883746176847546573928629302792277926646703145102080255285430135750581446921250087924645023054108768733145282861288529083938336061359912258375818105399522191223420174641310910663681600240682437527559658025995313678224762507337551203611597930595142173433773933136595204742148043747571873604151866051028653975782277629391189260508411645771985258689667057731495375295169980618728810539876671556033737860821351978254427091083725331646592595599108932279657053118121524342011675523276765255708253974493149834528723715446880559199966196016831846983898987441377570751465641335968924527450768847706649545631800848220175644521024276408412097569718174099326950848574746053011149815567841536692355837810318261729388230894805058788023585073046178011603343812951786023827363014517999236110549663944001680175643325686042740083812365941817155200585882587602258381118110959449420422084866270353187822070317738228156812763045231799672016645806426754793269799776612118831074968229838481235624460485602840223052574185385174663454417030947717955494835795418530456422239641725878039537873720630350668178562587100083338733275167244379719272257838045065146115677542847748139140630376129004584591232701839127322761522893355030683024530465479182872792527466834189657608233239012894806053585087646120077929995817374355859543454253736189201001303099460962472006159736778774333279143116160985753858031098460020397790933191258956961671347758446343546609249614538612196006819808900198338622740135762547055908171664989562747610694845722078874674895544337884097102421448189558100873404463426175541051202890861977796790541849885716802207133945532269871076596374419768478454316979254875848775560994288114433625559173871441818167311372538600383183774962894377980880656775650128690960379825254490943435321517606208853163217090735434804091297864400939301422343952267898776835012227837178338276189181600762397411791339000450100344317330994142073003942308107196695568098299241388181496209899419738479469445360930853462533168112811854802499840517767996984853834195578778432925019273358220914111623678139318741624177336595126613157349581498753866319061896539694417566000181327656955635773025638272383429562639816021076099334002328380165964013624796150896784280460997351120643807861655547679141608627008726392234409224502227979646310618638076428403715930178699552317252285511673599028688899344455193613296524634179679062249358907869798975720117171089278579897631854937852942213629039020417161777652506377616646310050263365498382276640614176534818144261559188142808407121516837382684013228913446088160748509900056937077378791383812365652739803365522334314809461008416822896575362268206947170695882108372147389201272587440539255758029738702834489623871659326742259977145762467846998831425031571243589336169379785077097681532707697097683152448166363591361887493398027353692689722926896800191411058740476512060780911422265776656434289943436935466811045637506649758320135895145212536863959636415058668256600887107443616133784635974555223693106540150451220769997057876304335075254222757153821405587704580113082231173412912600603997588894508219193244121834402317573833142183251994935450995490781533560362899207611357189128103760147966506805577512608380529600498932033093587566325737717530974851750124953592308154905905202617204511656433417105743267209847718572767523684893401289717988908371212835367535195228639006656317636250411352716807854747593892211185061033018418049359464587273074390822920129442466872534948197387698324807044248797645238843432325529445778451757483027425095005487558992111109021318698989695806010997506209613953890226568399994501942885531132767458026573544699730254611551548947341911116859161474050853823265455386645349046751424833566992728114216729573549036653606103124709628652266288736921227566243982135550751110923121344382995206013890688975049492263141712079102588050488757323700128983584157262760772183025040574303540892959043453715267796844806084211474449169002970615250163048962918008212137224661926020455238940292480714245715336480545370193422024076730784647664476414581646623941911091320948741877538766588164936900775344813787307642312171046161270444978465773117562713893128365930343095474549888206371473579327532447425347597869424903230088955844403144003985541340421136718154857614190890361143494027865942820864282318551325926074307665340398776922333965026074250765678363679413041302012766344268940433569424748450422264750972772622728309263761441348442847941975031521508822017154501313133197426900332951079553682000276629043889169582567237557839181641357632001045049951377902481792407858796812314948958241035893662956425104636844933904352517884654991799767065082475076829501196230491727993490786729021629454414122356092887851927859932291365283708673599762962036153406948536530852909862217852620904390841424054274836882150004531713377982868693289711989356922736197479170745456524034760339868266252060165857074155988232228526597806006315050455262020347008093597176880453232750606186709521478968587675379931114964705173692716300011931190828807950417813669397163995181965509790879248620561993884872357835609008847591402278683368474428367904286617924406422912006885718496527475175411009469044397248027795554032960994168051915875806176715982463652830572178683072004100700894866446815503153755407385301889634019289580736261844826275258515465216544237966995042160828637592966670830429583619518986525222373047364439459921998327228780557997393951294821089602629969338503364035261817388117962030804232734172473309243845163707992048935019440108957065699819550103721360812924221525081723296660635312390052730954376576900462303454856607950193248300222114034645222097425664792728399169681681758911568145742088238543454951670638782909299215600676514375408855427362944735654750696210349458901615840908319530608032626414402903720860707731296993436941360752385078426389398929939290979485618811239436051807287564992362619198137281198971117353102061738683731172535397907165178947053510065253811741143176991623270902727811070914567218960390450334856328325985824699111092268885166821473599297785658515630328218690193869639952328455836623782174760607500005927124720971918500796139342297867655444766616551571017595561740125372898489288585818360850598510218542486200454541639791836631988955227556108506290665203785744798721796934078147412753052786814652796821852614088616572083295947913349998096297823047609272014301346818425039007744363467353772758774547770348532182541461185850293232586573096553330073874816438668158369201445798804851327469780692088020325749168256034115501142407998815038866404981302640939189825797685678042736771205534369564221656372126321981731877914070047999105392500978911563138914322120281870019810725075236216564510806180171903350653658224993204983741624000699934281234059817488588495693700931898008362102996354425593590075259134048726544451190044295527244801598667374892374776472257481197509415690830611195410960625882788742109176569966773003939819234830006712077558686459251918472151805048221499579702111668974268486129256950537450272063099422284607231824647181386517920162555519800034717408983378607662791161747815573481249598761001761573604809432675991098181866067641859078135801953084478221542105588553123224089195473012885330341174244631442933668689318707351491551780477436668822724283245343622126316509537084393052098321744075798155694119297665004085100950460941498343096480957141096663672709777176785093321888544434083780097586676152733209975580435687788816439855528046943297977972360670292714828837327622182039078100742750011688643135420721486541738371193375266174055842052653622278100503650853625055878830598891303632868142123112203204367798690189838159420389030744662962407571170022558086024282685481558136386153409968797117071780941124003571023528321329670006958246923926088324743790579173383958103208614370061342968556878154039754068760040340979473554772605480100702919876007058415306412247824571240021433623340744654205086280900673434478638383960400746231472741322233943483081483868990413545826277925817711965109232245466666915954007849362940607696177580657190215104237535286864516590395906187029505639610957678863617001693130868202759356761837705146580438882208615525038864931572563877001576235247309457192633721893389133354624956945906012642669043161371000060900044686164635579426719004095231139353880075952721221209028363005595144722964110945246038224757299276486446209095033795882489779711540827404454584173744903393342644749420954431495563805891646038550041499633037054318906419527984151858716921953880532887057285511534389912447111336272319094049130355782506974675791991970023094041502878491527360145165148958506458244940441893875819956814158554232337343240743377716938679039679348059830965601188851021748676301394414025730884877092910462370473539342411220728691531007414418114673122455225434105191805936722761331923602619490947175294814138335109908875696011733109219007383767687536064531777745608626919251424760421167381368358510958361930786271513910292883828375759667644802380559739391442965213158215372139992730636572785853839480053785775499639771640069527092720176744514014112961044448470021875119443648691078533057435242608421694429371131498257986245636404685848668424950129002679132969310686647443452121532644397683520777819534667614131360128052350857812729050664102771786646153610950481785861574751580487506529921123017432837059631945512723262522490196363871850827950110736832437003527330309233416196745559469336547568710818156025125923126609596431906454261576738665458053397235108683351809555252545974319283242001558382197461062821521063459594356011182070088659252677079070363411292495081094130248538472718546236782391664720529646122915612282482412898935016709619497380178976547739255132825937447950753100666122401035145511925783111107893980448042676700113417756455306319191402754302548195131962918817982840374424798949422121410322455979391501811835366472704844210419474275406303137012015202584586247738184605185588518307982070979150733506538707607023125756774200924686539518919448643915789977334227363177550207247697134822691123880726851864028796263757882498360429212391166571920311204748737637119040911035132728855390535529907117979644414450300799817957357913229649112772115452793639532259263640926226996347331817898767680322291991017741766620212754295073330651004195516361423993627427615970527463849386551482097517321868198319847315268640849077864763194223814849854856332145789865108859477594293960104111397051338017785894951242988172617375828385919661604536847632250892671473802262514656628266364815433186249093807392684335552760731000200054306591788395853291940949378985611723693257294395115614535874835163266934276283493602679971439036930310287166346027272841430299383002399767915399849843034538592033852244176070831370194489738276116041097768477073118277088334599578020722600342573033422026430999516970354051573917043129944469104390245990857437786851496722745775106378574406036617336839564503670323696653901668624710625501251689781494050114636129581789489605050023989201361677132531353171098759050929888085168174537629213028521943187362611408417304961598194555447740611703019326331197987011176301615000989108440734976520576134754756235507184249061181601178081760160270625039006230081761582210819862818524057387268436212422491664857275475160577975186139266680840474418622206146983199348192647472293094612104708940862455676756872965498299431756220815769903903019399480062305439498129177821286633644991479099549143074311906473868791346594407598057359645111311178386075799578462845924429365313880933718099031083658938737537964874832238562806717258863719247225515308690101273804283567689565101768516646226389708076653821113619108236285045041320568534796405177907827659749098144383223731350037277203938522879536099476902506009290638412906915427607379662022434002340545906358458822080351935097797077712104711025163892961050184913767892489680859938921284780700129749867781664842219284940544754877561724588577512313198272936740574646354850898600451658321914515270996564572953997673574837443562512881876715002250093219026966604937051614646989484213640522654528075639206074833009187443584837488322992803584384803607209405378404606374431618732017608910469131775917981619299854335451665927058356786222128678854171286855821663869067884767827319023454695612931982599541983051984701088015352168459653501562460024541436598357637104511734338105844965761503855958186574861674077825714191750097758960851074226925396775640496397738978694018723645013648242152152462882401730496014435355021117870099686072379092129954980216172556562552867260932830556399990765721963260027314559264077522897437210791431061775373216457613871830283459888028490568915627078502896942520466449034799700765105173736115254511949962682690125923007265994568239273269304176183205727129079799304121553343405695799161061951842395454053622655775294052245753021947249289970152826610774505087932531691869960265696411546919782934284966269805488398763049601361099035022283886731750514429791026677055812916647310402752685414385727719760605096944207795861972206500381671809380809174097671674397641520694990298097237128228693682458822854595611249448058425133841309323208909099556953552436141544913783350396107445423981994311542451002630509630319822524209259736114174059099140984594615031106101626274111707269247644331954388225662225221664622794659002918434736558715785518594773757297400498261904818432425767281004554293071246594282952035761476374392923797552742679875713717085125223450992482275007775776863974783334809299599666212109953742689699148789691964192720889240145369258265782198391578809860359685910083695045602957851873348800083093942236113259940736881669006225517685082051311115211696474394335584954910700907336091296305535250302403872284786627673246878734554731867631359718678731130297825965530628769359053946560242724259283144433035109363512190455145160988379131376244407362104778581167287000769691287806988669008638352932959688611570624200062249039692427142773467476379112969889272621848151697500037651610278315648978833526950892711623513542575557504729831315944294754807115525663023812695788992542879078918451639551563570228269819938476402337584424675843164960943550394088918478240013173434506455068974411323423740140040972499573123495593322775682270486633695338086541423871619846718006878092773026455296997897495087967140206582111454456540781396358268659806357173124180629812012263209931180828798592373572285315193473264665978695987344518877552696868845797684925787864573217748459049596147791845774533474570799881012084213958662515597420033378342801131465232062328005002784776506181299011327585119800643583495544897482957160684289769503645901500797525062577409487598576085873111725592154491246217268000354714096831628262830019747463271719083853342346516299542082386074809704526187292498054202980712891230089123637604082117008626897719469964097458367533568279804448458521865494859943100602503334060829946642277650501187385967516627428403355555670967965066201985776317699649226308708824196744903707283544563506099656521186247943490225280290394338404910780922966055823199642415758828209441484021879569900708587717721105623482119752928913824267462722094005794148056754805902536811828143912012880177635766092365721486804886039122688871991540336226080638313920568512319576322302578829294157769527746775146226569975646595081904986161937051957502438029804138078724532838903233913911131313445299945922288781317592923715012899021408440882185994968534236623652466363130227466704374225781425922798317975486412271663303826488823450189769606125193213663947519691388208876691545149115899437661113367801090416321796082881566133733843637813859167267253469537069819372127272805858075310469531517579351635855027989236754570228388579028730910266165374775949611244942200718460876579356212198229701473576228666716098241992277418523237438727100977180680373510544949049180501396528656279509548872294332333508732469784945472549779681411338462982256240964155236573130508554914492382623674814970630378341667385370798566271744190908215932291099453461481610125006481058507235727901683074674634829377679673193531581443654946520398161912933102146083267428618971792838987489615396973986688171832634195465082080441158637369903647250442840492352028032115836746288210912495718573018865712931696377196746640179488717305740863522287254041011913288439056693943139134868585663710026989020652775743765122313007127070201794102166625737182525395661426336152755943944765304852524143619488872160832520220274407080773232666265386755400086221696883419685888458816778952193882651764516012105177932922651445355260079066965541645984357357781250853986607552032468107822049267045384052163387128457776266184590964663558513496272162289474184635675773787627359449653895747463463260866167654282746389790361593083312219090718529031083212825778031074715166378104906626645702227197668715976896435602335307927785566273927922434573575465361642960167503925771288966479438521611494838229251853707373297072006844631631875403525881459846504507881441812317621372567180870243430239373671987313839825993682986198365155125838762941524772020111681334440790222312532911571139385625640009321599234575433158388929731811487347022485926951745963504758743694375868282179822491574370821633397099812518191351146316299441257528173841022936146810839990985974858547723980262612923702994663890136805644966147870488613316464209517398371268100522676306398501266982868648234738786707775015725595231733352681291756027466042365687831720556286715895033888009627093037181001394057295005823153033933202958225469811756530289644002779634035150607983245463514732461002239807888132729613436645140033714869098064890852411755040161277826577758322489397187079412985632955882619947853229329170383013201384567865300743960002150948523120774885179144773566634030847095505529156380672009681413619140610540740903063765173944167230923153884204201846342549979342184024474519434807047655641544359066572962357293723028858506180882731397082640824064870259811187168576930883349457513894557101273673614556286486442851890400424823459467325782310904413532800728627541858889161893527452710407145221903785608506636620415376424184760800468225018006151399199067663762219082513015895877565055889097928387455725288470609765791297685457680882021356318307317275477991322597588898974119442475694345853800324257035355264061979291018016053867632339499849486427069295004280060615550960494999098971450029193658054287404562830173045219253489983283080347815490414752842387850040833449856311977411507525945679869188205964207489081806750831221534100471621727147073068951482191830699735764491133105154339645073344318467601652239996475195766444486340229403045513297424160538143734086462063188679497699942756902209831556435722568327495704636872397602708988939771509973648187003705734784763887546447663104884416278092064219897956595874566881245373516287151481616811710145016656203391750834351154730923001869954821380710374072339777608408715068656832889438935683956731944726364336399042833483918185994064646339042672884372013658377885166270244195130406909593500420345539071788161879989675002370899815963611252310064558716031427884719979473772712488603872540511484401885314450899786158853282390696143880866257600113056769125154075143496164508550509310142077044061320244233225322027515309142939469144902262015678819828514715341077128318667790036331649693132080379781540792071321531033965389739396886840403893966977887533258326233973222631229194353806014363037650135092559020426370817745367154112343988322105881304323510121683981679744245568987317192025210433470242110518612120711474269133383341294006386166048760760005778110962903365765916626183370603664564518039870838575620888341510092049182287242554188265235999736038030190563249999195838039293998148115442404102068622514131130506865063068827168494300516586486234734066815707351631907505990103722277404986081114639173664682905136975244711415129773869928620263008543734728632200502610525838602775484584017017809731948731607053704036561850675169214187795115370225541409389325490805908616206330140881797102835114135533348572908805305447255160430705335212258922123969266229029155620859373714682937062252048626427284520290758647527789227048286952299373808687513349599734871126029887048682005508322877669789298124998575350277253688173449721820675229664106400625547734886935206682584740602718232747496761300419031014060347413669274328798406256109633545706786114777213345100547610849996847037029668220480258783002929108433923985135443287450235122596991091367806244170143915821974619055790962743283905990470668171125042117126580437899102789660155168974567649433053077935399776601493290783374699547120774405858273317302341092438075611580898291978067586128884972093684963137328033223435770394043174622271452051347253601986538754712859824260981067544141210535441004494001656982803671597065657806549633897352882270646135948163638797154317828191559010349161604054949967545739471164404473156811098899834158033984211653081729597058412424898813505827958528411658890172682249373795534829936569402570992627599635046839292805094700543728362174387215473813384789395854595757102692470649798996733740897246225651298922214833309970333089838727109905250632345043671997945978617854885424532801992172211638173583777442210752899887593969724101580713481310341809339618693190130667102594252339476148308006907276493955567637008205603666405248191361501260758194886369830330295307036026280304611553601922291193860349826008092377819539105866495523553724551702885443936403697120688690761691231038365507429031319331272740079203388330981748674764807393663478182695543774899357528960387743192431612095160666411495700344597919910456959437007904711163007864638954486541220780040108970457510575587913829311250011426908295034822292356879942079745469237157425664975636789314621472022069556178691685717831730008250793920572819382666782849671540977232876929425087540720842608138871132895069015523806555706877920827659422132127604959117504578788170536801367375279211224134337080388665508609882578795312007911785371457517287931205196850808110993581271133391166706866101125538674822264417799002804049260459306600614537715319982577398512114320752356937518409896406284802948611814642233585917875585956175960247473985730232044429783140146253295930188652357215319132958851276138527038301662504959103243660031346915143330520449414272270301100800465529733259532041991015148315896110785914306720459412734426230732633042694058953180626174571362151643198110422923176628237833037756103901355770660052594505864908914545673527577998645178559214920868286438542962932782005287131634749155745053964209135483043992827154317879152416817327754865530154036345632471338334058778045964066847661939160133721485352913441473094292402271042809020548147478647949931526481904346449073509512816611417846270002323906706301417989943925379909507713248744055195160078360511253957076152277480433669385894295164585177333989935349499443055961613461773735406418093824302359283641746492322179633469769980647331682163486591224626298538758060563443099931080354067871621602626915553170484311245445112346446423712814896001549211690174820379605361056755122517928657648380968351586262842169168285618701039802601257391823745448530195633603212571757839918762441467144138704220801596595491689575775696369866663293405993510721405249775334721960861638130046942797264757305926371277140448612523776357451528604915744215451002689429762272751790652969924303464143311955266355655635318135114232523862147495683895293633434298578708381717554441388970046565550721559985242876333470741653843108665043321859679394429220357373288199864862290855941950149790005763515623142075568735451893480334796636786698999679237064281458746393062188579549878498506634503038366815136166870719372306203302304433250956961615002583504315329875879006364293406044128845783803598677596611935111089804485492935285225429926450360482169132613690900639223668067081409047126801814047044144787852420523204038518454009300874266441131376963066614058498836738771691479220383148103856324157042844817499399091182215326509376372158433761215560156067525832158023899621056564277664245510327128470706332138983722705860812139152594628229235967457428484941064944168284048889517314733336121637568434718109556183311993987961445146832707503565066303647423475655147896158973321571485964147448143488897568060820739799741222783000717802714399464457867255122889858697477859301532506825861655828353794583949877766654911246434141237603528347873352576893014009476367382097669046443187735343051696896105758229771993996835011792031972086012242577460954999332791919269074572105440679706155237272786081661494899395963275914331855329200101787105565879140154974423979406070025160382655178732723790675032071195226354718497849004933708276355169705625297870574445409505894228428732965131951677321979291544593180170654557385944364103457509662491454053372667539312824291688734633737442259021838755753578523765838710805784118041304589630808403122865727415281210611076015356327609200254036566076954199687491566107614978360843132133865969460559831709196950671746152676200537930356752156270575344672587396442382236416154503217431917884989915713937927979248385988558515804375267904612419049702981554662882114121933488903281250493238379374026547806942565125345019095138633406626123226438450452880142569595397050159310760381492522404620958633994461933531686475119205385712106071508388873510907938051956440117971189615903453584314251634611335224776368793860386297483092367622479188201399702597268159644064245764092857344849905015598642880458703455432567170320313376888170834902756359895179883396360302757507746819966081782761563734187483965006682104294572644761014498489268078899543102721333747327945516938933632892914148313347102277044345036620429703530895081861467368317960739016636942858425852327258929656922169863420942556821344468072444678910053538319635872228044182379084914720493093473178341209439373111169565040492002254596529434125493837456677888567469326123198168565133101555986139472389216816279069457321371519206783306168289619638988423184209008723616712582524368365591288389575261495861120268793961263479936125447215354452482578596260117457215512838640039579310114880074821331721759262063728180636889463109377625241796417405249248185393129294497854742121532916726506179021458615588273833746466085075250629840152195538227299322077469975946156471046356211852260036308136708876153203424022783230565380970002192303573199189346803328098712616005106939635287249774703313088890724944583387105799017988345542715823303584564859882226702882079390959935296853000197635470631222370968297710196322525956062724714388810417656914706146078113197579454517770392256361501207651631528773906742142015798381674277115761372187364290090945302541349406310732260747859656246734357948331795597654565279155763101987851702580518675247307065312192980351114131150066308778666986063669690286723432783846818568087227113060680120540381051566396605821574835853188096124575656063891910345141503114049348031949977434572706674865131296507970648170095697130304050734948964206973583538616603289761620283556788713196964398528136194594068226906820187526245363777444626135505421745796795675443174758543446470628042163269287972981180265722843653365082611794733623575934256534012844121455900600393035701766109510666292333724490654937495028411954198696069566112814901542471563145962712585620032944069403295886446735991980143406930861244874230690104126243214024771047044628153740736201005654451046278553238826535577831934517503160538275276272670576893303529358845155527679273911206625550931974663643549666185769799883870557014774507394189593031757252128800691770942637434334608643834262470081553045404467270967940198161840790837873062234106967482413083386366814947266097401195184354324982380011237520434442643976973146306248140962096132690218981744342131682835009052160107329918039414920395857020200189835430901796089491913040602881263630468554759979434978070114705987451172323134168334969890238018441608774992399238431919416537135875650305427738879968179368921622217605919050813815282696658084333997517642481743855413729254040944665185345493402509523326438378163109307816106806091089268027017757373838101077467487380484868458079890678321923928697007243772470496187602910259641727589469668781710220635929317997326221260572659305705262691365358912048526788140048312514921642902424229275110177576589952673929510404389477592408035558226703220192380861785014836267981503886518490199515015917969957742641085828598910058305055104535104897871128327881183686883036073054392956865495159582848443889008941843764880403204903723770693904011590275288839923927476971556553872059197358625966462423226409602500949849615941616352838949655072967362488437219042419161942024076457699806767060083794445758017080701182294516305403110492658721521453581821255936057233277430320506817733543238425818458068158115496909800275807858401273181361780079760161077997588049138788894188468954808451861371408771989208294995881072232516255897206887772214863451741713752214623724033009495935650487763246750971139268932788438194394796118020728322015525046204370604829494060092238538551734580526479529686171356835123196355013903725408729128519092646158790182241049041502505531428110358455700985410247756532944408918075920807401124617702545527402988398126859790181766760756166097404288969946115224112106479991858788103707271117507320207742418082426459854551561664770807698294257400250006271780278501355690504394937255430669128460915671319030179474856873322608579421161897828147340116147970010739959409234229436400968282158079451811683210154557093600118784982654368588110822930626611354305327388123474419098398488230216258080461137438031614043361958274847622877933416234571168829972286071423183999223587793030530943377126452645418139859679687496107958910972909622548496396018938484902747581624821303454154076939265722940968337427084125654764039064509910647128825454789675861193008695946695718184868638634554424936132322341364089114271848792369759527311331908499280263764659515224200481681038306129052920881918202651979512537875681583675604146625393546821204764707328736581696569065242506758521331261459601550371935976136446357262476374904850900471954424688018776764555613090710517298531384713282832996686591529072443455559748533340334030032277389896742041324075313046324208633693185956527140003703182336312671869715930496087959528552157641841404919105804442701049620991618645720696021604367842329192216285618351714242238442018381049266435729576361947538220376938496937656625662905162971750490741758150747201335420311130814681533114737359493445295627038839048882781949094096351773274905347931447614322846920314664814631851182376748470936317805864036707670310971904704911490190228289113471165048434444430654813287538581097722430368464870512994115872287851045197381629347644474431040291779610155030963524813298270768948718651119601604721726670800846424637674695247882592189350864697871428879573595884080793521638734195873100089768385979462023061005857758497158020400306407842739184187128459242664204382715783166856230221711573026605722422226093859125516980008486191281429082418214099172969164237706142548005107270926964095008001772482916166763150537277627510592745006648441700345490867309775752659599206351905722762549688444704759849391656821172309638243735644913190179343238168108328093911009157201031625396797268066155278640012108363004198356314657735945521130052366394147893144953280358945457901996829306121571955806205468200535316000286938168635556562538073941700660254524994815987162155172496218247468347062893440016942552516787006081930632997263448061544348367543327992006421262090616667437212639280798736077101079828702104766702311783594366600515312291318792688230898125248474747870092775786811229273032127143846670568578986840969521391956108988040936648302018137088034571651101245567430934115106593453322245405926089809357839120110721081256003302620253041970249587591340500223104700620936362292949891070501587361254541228776010959378222858098957402306944194595701930685673340124464898328063901709537966887433251848383207505680746689003583269023896098757647365527103168582263100357655562705656124897948860118759165079381699790979335768342568443805798995632715346298310278792745586293296510502947251362102430996178689252821323996615355732690118186287872452649821594255296289482415908775568872013373337627351955081307665325385524458470294220739927167683288547138490760552363516972695061510849627009301958277526853199630617575896773372054321048753240330932474810758658574776547988506430799434267594410675254548223685418725986414666884207930766238074149215180324006762011120249098003454909725311600159132937367979911333350180591833734577500336104774418026387787346905734390846980463370555598260542050467515534030394549406370503443963807017916210457734293709811171066283706231711472940698922409327963970170024173430004461601035620261217046751209815080364540314577040292247916787621624080022053238078114116193204758450562019715017449918819454962968319716564297851023018659811707268901397014396285930903193675901863241748230844509027715132893187959817959593491868995422377015980482834960046116881777960373375726212892573496887120738187529882099071575738414512638733348487243906975670968864675632556087114141414079053003324605567087308124096915188468796636733869186951782732625178860032533252936784061627760546292995871378410151793167045746041633882435343672702960117059409171633954505024796590051188945534136117335757608578529985446446736391230260152525089141817681579272262623395125041749692175599290371414924706520963681458895892928259416977538024198795203431889506235438062180960825667237814118758913262262855579551424350789357210257384061428234549471999631188600402308311920469644437675655802687957660809317529550030570451511629081508510365689955026374513593219536000430358017633484075814811042863978045713961856831599506530271285703452659690345676441251465778078076934890731459856958778401226592604009851730173444118835557063321804654115425641743266383773934112096105880513960101254774322450299845662076462338004161554096803158881580649799206412879527830308960212874499826591889717467249680234429580935556911557642043396046546046220141305432579926737520675770395458217535202325588364711312899149073999705966349720691345336171815474701326210087350881450254048036876286259546464885710988883477301768609109841731455943743446326563096950728142111827314885421040120659920458000797330892275777262275281820629852845688412667671859656046015992399831573118787063856273195427225731687468863187467392347477528004935292494960517928586042836863113484795320897105391746361208137391852708778065077688897373328541265501952825408045475066232522146526693114306610057255835668383141515066777669164809675320597844597032941627508807631344308729950287167755496671537422128598539879835430926476052105861845715133303485009076842691281820015688322984541530226270086077921392297498096329791042404163528462272446960247458336426127191667975494378509530180139239158685118055279698276496255473712773861931323684619734193868812341328463539887299748432089564223241554041717226824947027025365672980187730220985177954061963700466783688540973355342379066614470269986893043307581953598636881155391507362792240689867179085791077335021234467921672659875817294821039593630685116956236093630833532984230400318481439059162558197326640441883619678410720429347446655318717493572311211068963918018919948545547515706675176297446724592619426553238486726888768895475657983493295847550956453776808016521974445136190647463280192618606809204040460592300163832790821950628645175548085208497504639140204572104094533644286946016389606165673803925496896836147029670430937751474965457896617120610506009556633486576825850031899557215434934659343238721006880090784384097498887523964773295958019233047227507273948953736485983038352814440738877867906378674217651286204466606199014885086356885002459282307972424356609758048863888679939038650534069881952629959500861701501885612834230611116491340506483557971588628121634161186761882305709651477341712610824808991538588438136363790765310939079315416721233218535178055423060902124368099306670213468748446700985479427966334075602978676430060647344414499938769022101965325257788244456802202238486804546374305451702618010800786814624565160469953496892215294643890712591910132333882749522528432175027178898104710261648136276600359235377028494431907837411918029166953532064686518280847040472450107391172182798711578640926202263269008604739417006331573364352370333230470996863855284897883126327363122164039317231237008675497832298940728977447043048345623590725540172184177519192744479840078813360508393579701280521548631475986514677684505951641944060751859469696633090130029330113486297105279718180645755012700135954405567472177592755053536948723335765692447112297553942944151264001460937553242594485470529250691830993768072031523863830031916991958986155143490716443607674549168475615722790011193731003396174567761251231208683870063826399598354423431001286742443677410704331469978924911862613358567617443258164823741387900622584422591596092243579384549445470172838616290691242537465194127714273492684600098115393463137788208333516679965977215532533719464764265507598488002072431666965916213090732663889691145995868166254959459201889881990773146648899066943571787842567201869414568854896660402354366871279269509038623777088456388067281367567015808396318858511412018457068698669547080041171163276985097203180770050774554960217374765616406745980764169472703819532076985823516260111981017620917970101503096608713976590485464817353244347822115606115159758521615143525675571654912909274709287874066794382462545503424728839944282930822437442815874938560039030336681623031934694742061570520761301638272967577150357842908568428279820588384261928910600816033309015752927465135667666962213640845919326742945644045893059695101539781907764403327492268990526158763263269610977747962149393671055040158831496564373318718740742956126264191750007915881444056182919027575462278437608815928607381337450060954619067815249927385915495571189432574349242198744417348704436875762737590907849825860541136363473808448821791793524297174663040902131389538187393177333051369453332928241110620398282275725369670963929685647040486203609520910560956434051779906550249837227667419743884950181933034533737640059872958746335822067656765498900700376201459091403195767598987762351677223227771248682231233556070021543313593486087825896114959827683993506776419427115183905140911921716132344290718668211697877041642026637225861347887521765144688471819069629060336235362693990150816793976235027156646970914983953670124432350822879939574704202045000818158450385343919548300923484537613520304439268808442489302776898648236586555857164572453856449914057339365821047602863264913006774430114819234699175776380242541339942282134776366140029919806662511388365295856060582723906228204598143074029421976549693512918294736096145721984449954604295535153669630338285577550613013082378324942657624623732373315874127267419568565508987906587769824396297760715804499117118315554305103157085678306655296869977335313758332947539370548789806432620634385676371723512501928827377309090182842775401562350840355452975561255864147710901392291842586143062454913872911599328428704694332828186015079274608567118786746177094498388593751962367393494879251465062340361032501494508465159402491545096535740466538914238670879269196507687519842330481144054017916586341412123328508380722088938603983792713356975469089552258633308829518256204814606978806441862943248005781603799669225006234126784503145496516365099988278111073984679043531546394066000386582710244749144076614137441246309786185166818080619276998383704820400734202553078196627620195943017194112238706720017599537138387295049246112577677886292791109056612181963093120268396984214884672901861652077663547147585069370102036086426106043718701865927321546565600837888091302661550572362020569854551776046543884981050103881945523526377053946497089680971625274885088704952903029300531665184267322310460424791865664984987017624493254857811776363820901524777843333188367696432476806178299074196757497544544401298961972071531984993889157687081810764497226146595525473482276412931833518695751203013361083424178203069985635374059479507120384115587162417457554327863814429497210860936873771515775304935924951314858716647650434010064649980075268194695403539734503978614342518743892359923048645349144227818878352402504909916278192273064666329028964236457811173208892347336574093662236839026633542329808264454879409939129740198947007395501140421676367429839396199609845677134085349246930282129718265008064682845726470754767381217991391008782316047222474008988306812330962371307761905394009911739577576783771926959969455875638741941574465212422395365682394580336732390628430301606484306250605633757285019379132865125449506928305592968764537726529099991494143241477333132053557212198818636711674664165011756156216979240353137248719910996276814021254704725582235785970117024404615380993901867476691462949459975633265546517458557318867191559571681325200743445821096804723504292210674826033446960525137077664006996586256514324610331778427961319022279575806366599423148113689335802470320198547825657889608738529331064670772090303806078548677969506625162409096144211511789741528294510509503276946161654160827304387619210219456894318989294439817643222599702921983170901070775282913075147301634328388502074041555717463928282695729886660444956153027693967410972859335691890113181974489623447259122133379956894981177401671978509693143727908928168322447227728856121105224851074928895284621361054226151119436208976214983548922852731729029870874580770943227136336331477212365699371371809305692396484118945036700793377648360264885769168351544116256199859031615182981306432542287499431505130816641086386111090149205757012447434036166096454825432777348264443015883130792404365160191137291492107018915922084444580180605723542980900591567119583382247606259458780037617029654029454782784821264445015505412139822159611307356077423363269018801330383990786569230959849443892512120755230940396300495337501630290629773021721440608721362560886488511569281563331667119761270141339693505420201852598403501144890441626155601121212164860505881487292433333518632994865840534386624717591435556535033934009859499667650642950551111850533880573162479533134382460712215980164012324240968026829696630065390758000183823846044742177588004273404694609826628419283253297406582582678979131636557053277176131125504424718752983060088434711439997786655888114150098091285328685737662492360328201421290981648381726082500681028620349037216182234609746748795732003140738141687283107251817468784419373975298918695278880376215200792205233551375875523566281189794442546881811016030001193653590357373654780159429737150263670853370073295432028811226555183768360786368265103501780837290965030561396099706736216654276529467474145324582878995029742150580932714275093040753854629064795091824655710472565227233370397735895133205012100837323201695009552968362045061410281965913590785841179661515707176118532455117689614593794686080001106780943483925230082020872138811074323399075359049879292081983263029395749865999681502429557519091148921841050870571731190826034147791610601378099221755612395849222081183447426707877635776818110372895022513632171995786628111567984563121558197888719206695578464821561688868373751838536079530522083385811407627609145473983444435563725660306812157950806167461113453281335531967067581693981490428396632821867903091733170211808235172582066094914290844837977409294465418731376243083710214396926080106817106843490774200637347467147631394550996413496724979083318348480654213729240544025887690272734698327929584454132132781624791709943896541722592957933822904832271670105273134449720735673855551333992996003243194662930513106352709247854574239064885308818816195776563672297323045360798931617564344151169309885315387059074448595783890543448014447286697017011699594534859086046930108275229695862238242202086851425574090955267906185821553284438445599617283011090790763694979659214784841643596284035491595767799316518430957634985402368062006967662177363312221305199094086149711158514976327876015152119478041478836026935927510227050596564024280902520204416838056988848008134699998860853489919994731852285321432858060666420765190858459544705599901961596493690957687040473830874867529471939854386443571956103792058652312556607734822501230402728971691992622699068654804685788172377521312646840271340896313072309320095595279653812085478941668848563723861897678127265699198195433603469669220713189233596029411621080720503354183633990778164810176958149389219025339915279567672536947529084049148530006229465942447443870331957518091923083696383547019838417385893074714878415974340386553737183807442943559902129679346858005062986326171740011765009202646025097554537422996045104676402844518655303858462884420271194298402493151823948756744949158000478612499290244236349471577073630393991848061840227188699005285969805091813752453371349213123829302573927930276477503225844261808920233718845326769640454226005624682752581424895158891652982786930198817372181014337409744007967513083349541755423645323594882263100533651732651023452777211553438954419724194591778851168035985695390248628584805186317685536699159302569629115166916131981604725575305434098387776465265891665815494939449244875269925161231526823386018311843506342012417443768327142235598075138253808145835151006940060880193814165749604967971347751282369498199073097728096418922506606097266642980694339402663280310742993862518321754554220607752226334522861254320303749638574172801604531730520072964648997379410957835835628784049139273133896184666922221167127670627482235762009769038614101163698093461700906345410883754211567519271087563169304529190456377553540933425750223429306340844291503615751326229395623902652709956368879888275686817626778531263359498702249068630861809576506133867005606126791286015680495181298124008566998682137915009385076411495777600871004756018079438095997311107529147653978714114395263172067643906858451736337078828870248779309083714991081632311509532935669307801461244209502034157933420313637199813734844387057460704039459003849158400971620787076892381261040336701337214254320500168395652099026652194112907773159639204511740688169117201729382587806078875363238734129870109471666242537348275658950966729651338124612047813512256237568319240570639103470140262896355584346630427395334853405123496632618793903663477529008511637057040669183172565443220205916678587163157508824019827512792964081692288584004941191227460821296405950265000378157288588208087989677727395999557247425009171835509764092908945045964251573038509210209873433793761798902373592814955394455946826323629452758468868587580669413863660801258148612465955117522250858596326090893994930063525958042630552143214466032977445572057988230560329239620462337325270683575912990417885817924142299761017000187982585109271469354502856941130393298088025994188613430809479399894122750384539608924292637769369940760070438575197781314366746561687765057806778757979209485725625842138626233761808847789777378462809422775199150345807019163055952063051698630547581456972940511890356350762287452181348011258809409441888401440749422541566474095697304356111810462742205689820118084861969554611525102595836634322773442840165470199557244930878264771034309991071881742104388875731242919172382533647614304775144682341028128541733186124354485615878614810289314930502301738395454380595186054060029808603025356517685927632381537918544984429183641679207393735473088202677053187503200824552516393511429500137654842587672651131257329219384641651346500061784126143566613164674450996219580084001212986007529554568281895549719794245976002336721795541043109663905035140285631588682423798736320273871906827010708588114285855586946135371562001800251838215460974855588575576511072805865938321884600793962157230494906868564567873307583232267349956891695535959477667986823076453058053265824069590595461606862283594896432712416352112761372080320050696685250513879643855008255707066329851909792905110045203080654426738530581286235712217811722494345905046957767686564087297497799259839291588619283089278187001499468460743595063999265768130257407557316678947899786956137019870634104871628934567961349859391923043213434914837936394255828148401085512553438645336557109488081086642671810691550124649867152222999902940190409816216858935102523749953469767890755518252297373362189075878073864213705118395950513963627943705604225725804419100841682890795391046933371679303597281589961811403662110039074634956523857118289079113297156102053045204148406852810919601532748695872547993864469295632310806136203685899920450267715101861144661415602305408802267999138886282461587673802374819198760531806460511713393090377521538963382551078115919421313602956801976786803665974992071055905882844427310299108843063310549417375629336473803921380418258407741836988762246913432765094811699607151162946067964699973530487693373240050959827031066475769883321414031445653255867764506469032784951122409840484506808588625486512364050778595079988827385908213962837525627737549158892036815145540854137464882973834666484826327494879672667842219393475670448979725170882261881787786744340683029403706811981410867196683913786248327080084449745463389812346882294163052316831195361446680442364587835134590170241646116367656391576019872954720090685039688509906360700032125092355878544768297363674108911109707563058637863092643987050555985000525375135669950786517603420294906013717073436175292120529269904322847372645315602723936127496601201624125642606160277773265412214872287516822899440148676970514559907026484811693700649871221603762377919800386870308541613547432636886085423846257967998310642262178696140564594725452008632917010370915282108485017267048572930758531375407699712151896787153024071652492473001105858698292412290961981482623482226722225896558052823577681433720227553719371041714224473456302654542539371421490871426582324926381870845679012378332397227942798257161785905416308290287180537301778168635001977155074235198068590356258973237800850915021274262417815070517515438379310069580482624823501261750463094051178287674362956577387883462016683503928443090402591768388990914443379744513692528594586131666374668375373056791986953507818990506187014887235010177976461376423737028629627374339580431994240380871691079329052601326396744073711892514144308982352912599832805259118709793979270466011309038173315209254333680963271792286669446475232786956743813930629962999321522360123091759747857681380424087663497294128951172352610071754796291981127003404025004712094412107779895842242651857884491458772006563492235041692297189283946307943049839551698507268617980480422054027466429768073804392768013490753395910935185672793024164290196873610718500283766590968652531935861843160906586837156536926471422596802205703223738666519762772783461083268498391664078919115231973342346383475075805044711146202448119431572173864608061643429018032225333918939245991338555776792488678020403504918899420035613036131020545188231607667693210399725905036260603946812401338266857962917419685613759142712544510671854708741174371107755362278565316207334879636532748891662149272610761196294375048130551420935522931916096065478339567948615083399109557038009421651395346775282773109930345607125678525319210764305905330276996045641849879136904470344845937533985541752031404625958832523173002942873168400953514793744308920370180689078469584563813088390782143470062112122075789582018592690671095825007507032341020628051518169295326858129014665594718772298257190068343484877383130447370465312898953383699571684647594492407712474609466049278685229157590646064823784593374098867656122003894177350908388581191325820507401715293375894159491541608773640818901912047527497889516079658165126906463336760740428225353894193884571585855736105546371503432193567444524484792607134510324841496105135304056583309965596900480908125584330129696405372999968976437728358562605986756314479340416087387250617535894499867745594372290078966205326014475204747513016012841689923722221891801868602798906290137589211181128319355397944078963396870693214411210717191334236119161540168604021222938103205379741099555363824580732968972650621143156758967765753709823750982463837931818759636944759025571147135277514880410735671025082496739786999390677726358585985217368039963943559667652286307019220346913118962755771681597790075809277098797526298108372603322116663010839698715593487092133698443430944704947571165065201307761314796704614115978357985560964065709981960603203951277604143471613636264090198444880504871405183011192354412906663832958060972439636299292384188807786166582766161332456545482255369093221208024434103013064685329422600391236685362904039123373206585988495144926929847917283280292349267719943100008251029353168552960070625734539229408132120274205812916214627326020307056329874807930968624865108128906822108714733654066595609965417872203949132410015600595379208145373147839990702560336308208207036865888123454023481482445990248294009508486959566146363397694990918389556851335908042626331183328950239130089026792488428523854273496933710937524993990816788055609598469799614405773037888911466144485459927780802132595373035395056905570690162819059020183520241118428208832266799495152794356156605000061547290908118744225285355183298938903433211118407591021735935925545409060023723712300991366115463106551354539510738256107435977233996446429077343417472375505119566395488049635479354613138648556581873206931584773908875602751785218128501551903621470247353894017723619258003334343155687770695158708684435243239501145773679615704342802365624835938293263837093447709793666364103145893232716074507907811798820590301863502743943023736224146214522193331855874076872790627151316341856824036848035453563477303947272799504819773227867316927765556321793520869422457052074691389213103373543858810243478846289436053150891787749903660097789557075602325509232164107795076736700923488931245801637559751438880237583271573534523497881364830183375714261972557770768716768253636291408485381576702609435318573451945652040552120254518864918309558990188973454048411695253544689055145766703214249965440299137714045156673291744434717684621104046518055975354531863189866509421505742143658114552393384560533331149273175723341295171941408146631948392418504118844123678846551602756662103090857870196289875530601395859239840602465237512800071071102506305098181694479868253847870438923098400432249954914949726521630802026167356070872982995641848324146777910711149696562259018816974279426463619895052720890658714596457450011379258865617137727139129970134941879974991653631164495239547565623764076967874666824019335650246969303284343716676904721400809602871494745588436724134455002765737217074871779443818937797089983041492870906634978144543125387009696059363869332186451577207216570073043488048984911735402093212119312267850029856884304313965238601677632157991225970524836697535163568663334384496131237494256893234111260718630484627472482619863257392627041730025779568123997742600431747531455326400553228320996041853479148671977196725220419493288140259824754515289429459402646793508746092527264496248139440200899553200775278053621760029389635762106841224757328382256578529083071600546821152992977201497061521308603397989919703159064396507652144354733748388210409638607193914277022942870680715639596483175008289572927581257510350070146023233495483302923065576219191061254949174298673018292007088368970506870229996742129019609606508734525113715471361208526151694764153348734362257399925799839738445684840056454534081638104391609772037010738967713891487179717260777705614494668959202991835422874019163793494224922400932339404127779934904116863970909795955904349049253180281947252847194836104133221236108195843673461664671898156294036354214499665855471735971247914440125284264972444583888399790727329025668810500143577597063059981581998828801974758681748813035940372835375753755185196555120163094609156828672164451488815502888635557855676789655087742521673698981066586386611404925351175317774296195308570635270935881560381399178787863735818194732257599312427919600821654296982476453313061692872009515194809231264097661430349612530809537034177400370669266226003383618691852072433818645324836578958806965349857513956699523903160258226010359746681340829110602901619536699972994589091219088798121601103297235015225842563720558318767758462078361184595879303684487000068966120181144315813024671994681064383096924698501578799093092581375683126818925649463758403731261373707978330009462185367173751461066921403437801440744329562492166226363893102349618688560485913394678787352945344598482002621121492901730135727439358098537859536522408859291791963596208059543298420905548976849776840633600092287909052743169262586830539210185272227459486693152641655914073697977188313550225313433753738577916860982306273965070314663431258364357388084354542597181967187214404851874863561089986761251199735852424736326642356117847640246140755047089979988532746172188522195720879645758602708053925462276525709817043920403008976042189348732137504115162831906863817553085589535650736401473700501949923956572231236318841296581944950888056323447556285510650386815451490197333557483373923471761881266152127154032100197392616026646154332839693788996339698126764768047172913782309511487461149330925519447058182635828273139723445977006188339526941998266462550399516711295788546291126308069526244676914566871407091348464443558614125849913112201640924661296122990178189252123427612133702442297341492748133231162696869853263554662897488484789061228318302247765806900415770850715858741238523874148857166090294055605612236465000512185921094162985577574764257903600383009166495377549106378297309641120965810280581672863919599353062671767155717283852933750790131686903229888129318726619656295146646789408717151495742255338013995151833562027221028084178982776640333075034055471633519721965039046958867696026545462263362782902137560522465965430213776888703134517314158388154335805073837884566466072708960295113991493813281604569878658287242444556893011470367340875841790737360363303401509881415337290088458560051746709093431601683545577417092144028360476033386097639303645714828026316603668969116251318053092397080319307865217311558932205851411558828857267137260491947295636211434856022926303786627027333942820004769094955667048963546579298553261935364342292733269894123350607858650787969283114673138394734246235208833134981502978016484816375370744306233115398719846576510991869806400648839265675981816412749310150769931201349123167068753107880961190210732640630973662064968608392582526085520277829389713434693410030171708359444727000083517705099155630384174974197313401610268330728523377366469990507765926292653356846762515424167820998924313193857177323364656473112357250340029022751816273609018259351810956408718266186448578565786472555953292731022022591739030250530314595020456887383012978751266713649791705464116124360407032162428259224416628438484617784041865764054701129690537237245279382399503544520428165702465657585374454511887781081486172212517328668931047353219943450404168674756170863756643198893458350164922003235927652533703859495972727118926220571550961725281754216459436917967231722354197620720076736837381403264908020463164706870849275531228557806108005887608323295935474112728478359728301221670232710078133018229203210161026790714097858168585884323867389182715043381681631669336115894971228938134828806092527140835900553615627757517390063612902689824631582959118710234924750724507669651102136707663150055748244857540158698339715995304954735433346699238091414718995523132544803618272437155549586903925254885474410699224204755014786181344945997185050100827311856454931922877677028466431331076837180847913191420698643432660498806872060521203212379746822900277867866015750724467287517032234939573879050863274289374233491479733143390450343315428801956654194521391122475655970573153972237394909692184798516215965706789104050323631745057721000463458887681865220202592012283393178270101771492457137474307855392219721283050593276026868653592095878748498608684527747134063368801688567794643456955482350891319988430365707299298048404523218536028214289358164368386796394693554473401919244377129929578705927902540859407600817297340224362205093251802134174367178836391579871674265091183528860106966888022892274738951847404482894812740618000557698513393951946534131046773956545179264144268107990499541641673109110847029319660271005245041773752091340765836288584438524302759047097138396885998276695691335748549074216116225149118182299069962371574507288337356735450874547772091265061863358920728185027040143527054400762293953170400362468586996538741873917797911501533738357462169686148454786701557415298954881594888973705560414300959608667401180346307596318393248423648970120442104644687390047368496376750085804350049568021257310882907959392088834214556608749392421889048291024827215460705732283293496861900571037519430554756461177137226042740848048550929532281171578359970974967215956746983384160480721100923775239013353443700080510726369059636603561038910159468494929178267002352257462150423485731793746688351589720824320513228117364376762407570608429846537626611506877991774716367538607498874055825298958114634384854726925308013379613023202522665840046125828971677073492414779885968846693117994611528198277749363015601904999629409641220570172429978756389902793923029603774390584923181692786765946658662823017326422759306348704692631649724973297094713310676477800864225824219434782966311951909886585019102932717418387713201969708944000968369727833718593176889236355026975393904636477643895802866325554754903182998683994260567858626873315046453071202843887306270990556378143330484535529262532642623292113718200851983615106272183751660943626935076341489010886196255051355627869979095292686647510695769580264340635071177122919867036562532041583918274111889919390958841024844983316304163968875736043814919496834048831125985770283858991310224096334291393475478889398526684172847038561245141449088144902155769910193847248213155203425020622036023095339586345621123076743680561963115041636994397508592785696207905689586333677808816636565052145126518942047163070880325977328771642186471066369719605989074221148087138264883987997316852980856303861989386283494186719769350964345358463870008716907973533458184417005906446668377363639717740402490656643068785337879616259420333561727758488472003028702799926750623908544409193205066201794858577023844776036960190752283780993328924947212769129622825627109428428864584374741237665687566754013489568634130051905057629071165794714133576778318415599051190122788356018959195563939561752376345626733754789594115114725170938916206301759176228752503584256182230685500971910781630968656444971242146548493352238160162325520412055288616734902433760443195009287686227609276284548492049461935969312566496921186679806123250089019955116962174765602234537311423552584769159884044805084295342911586998958093076655224038276262163333159843027674413815391974354686506818024175528471544379266774976316165754989794243742180545463796759809455890853240174439569083334661235581386179356199196710569160286652233768560775110331746464773027157331430647895752925436365875264188779116641646728409808508346148519701408867819380987829656702393936782841449567592797218169922623872143375340073239093501153469510490587914797789340053999457857031525807462109350599500871584189498062033109494811237401424186722961642696548778460615682992230490834418217494534432075008941097882960767182294960837613960977385142764965432024132824756817263004245115411699645337037018771547203751076528814392883344465662801936916288946379096091416742862994795089515027158105238351156055369339462488420636903514583849073844623524025161573284992488772731301800814263718464481208820931436833083786561915868889302093858493560285283645850268518279608872323236841941590921236820796029685548275141095336144477732748891267542534323506295547560892446350236951421865644400086388714741903055362694257601287366527609065958001711098938912604546352770558558141322158210649863824827311545255494575731430518296294339818049589497463808902314980506764336277250925136988977575162976938975952957396375112477354973427785899453353520781945501157021325680700237168562993153641988624645458110802682878789418096615050209033512844917343051315597266014418610495691061476259393677231989511437070953074894932665862822923533369837538611069226434857188778063283203583290125802131764145519747438256585725896517610381265020247993661289381990969562344961331270485987075827147501170417785555189780009857640445519648414840007151913550012436334063198002554603576341372441745974807641483211081439568430649821941492829985826573762485258343403794006203099063132982762265111402012191603586239598578042166804717172068271077854696993016485843265911986900876938833800573918809339023570017622708725217810773482224878207693240124072883463191603760067950296332922269533258367851617515188823121024200917921881396333161715359674989464835337018870210519853023550639126402992392137033930024794249196076079788207069424517110522990239341937931222238291225189162793018583428330625689315359790871264692594975135389593156566366075220964978865529639315381299097686136238829618349344163733462625161429917190132533290583412831336045700122893569025496523923124570056225706045086098108446609111974467163413188167889390949683355686290401765711844274311709868710744987564028771154333708857438305353740449341878455146189759590062881799902237025981520317839799074140936410030712278778712365874574253354976456538829425480024120547116780247864021656396487656825413895449865199103259693216196080936359310056450056900159108312830291607897214462791215345412451641059059786433570335879986407379973175760381692235150900804392350949718988365449979384902467849945462306762840116605013400947304722012327887162810034627253545547182465740613373033338325585980484203669505846344514754741820028146460988907778447041209360169215848300869872618040687868996491903220848361991369989437571827783825028417697903183494829205075006866517108873391263811552302484648311047199125082938309733949180290222595103563532436925128798590141825095545735535146575304625676766614255099300785813672542634815675662146065396040138577475560566589010394111115206177379700850500649827891008728493637792552170410705628562859132800953167362026889845669155975903069144823166354859926148948562099830826594798266491771200637815723901997806124500160152436760446369664747357462430501360919427142022218771960976224616988764803693875934310472671409920999587327251119425377269145012503033456521240334397720928000725673255421874581053102618882406108910869574873997340982827780399604189564637048264919720188932350775944908563474789798245471538755443905433723594060292969168585094020939603802947244834012447008695309114676950568036657273949252461069622681136276456017447153636458632099304671878663854847691121938869326513498049216155263437998111807672604242961508306318909439674804854721229453844768255772716819008675698661360721889692154787959625123835225643289135286076426446690217450702240562448486570543334354156630591560825482353064257021344122805207888696585217108393765463441827497442099851340226124441354526402431351088689785494573704524944074813640504700928432570924488853172770636967570933235175138111500070297941057089397828172136985590713813804709109278465624395935668548719418796901554340276033326497436589164121781083232197101123818275750249548634815625529617803851417045169915276838518967143315740003471291903848043364393120657522277673525352709238456772576970193866428034225012781234207153474960213212924879341599388741419027921114374304596376596161734398673462900592336272030529080604522569333024143646408436018651860810297536288024843629290822718602419681893951421512876705060438629760874671992336842243854760865779014232057425634779197409931909730694134423852593527785153391719495697277979243094695102647345627665998843942682828292273091976495261384318356218187919311997577202900441272807945267573921878590324867251320816981434983465467012964611704390402538965188857387490272230569514043435242730024765850648119122548661803452350272006690292393637596900820244902141868419235192800451801880046222691981559901998546923248484828899111896517054082700435715168052680596003247105831031005920448437399411629262408483199063445060075316096401302332096894471037156426355975463623917857435941529970237557738251054250386845134127708272486113469411322389656417404178996007539643051310088390269793561914267009583986928524702757693676809746537815372672767061055457903785170831849905670088755639317914646159132347469148420583843538814936119929559835661897172936375128827426102909967678984018963899941990549486181480234244174425097404925961236583917217680581070455897457100246432738765921093501944642900473345184567334257214750010297975440297713969981061566645541822061984015429202472420796491160384768063630666802694450022523254448413545157103541143042664568824374957282503551869859708968862021686794456314647298901479689621813996465705833654123590501717077479137268788954331452536676966304848328928203661629618866279480837078610073705000332578221091894548344328727100261969927725839799185001947427982210894071738746509960638127976418444426436446693292268342094874399047143998651726712124861742312355828646109026854269206145814449846999283488572877438036790474541194677562517069797374067688345442268057577149504123772127084754586007294324273911112670865964703705735787230684342014418146080940954844154405332664635080672622886630157478270989149864073585942865252873159436250916503672396759883225896210952763565620925181509419182525911177001098471106902969042119913326419096408985016726810119001949884491503955388270179031871359843241550809574645879212378179150769313062438109714670955114672248181352327413221522538510652599209429536871832914027560310882008670238176963618860476125721853327710895717590621035951288518039456298398931099826361866225752394799802027588637922581308243096730644502052127478326160287323184558621002326692902160083021550876574406874693467180086185106560046341350261189519939636367389745223189025747229254494566568819539990935996491992321153468858050496182350804995888610586747209812734160968675357996847215646189976152130805267687197422560623959068474477280848495023205054605999298495040514949268020558247371246146343793750967930882680315572987025759367704844187763374993195010835926100682731569470230260077277897875970545100123886263844266696873552571946717944708186836880441955969986203243553356676631469340797458326919159557041118774455990171428321568090196371467990883763501236595029196084820285270862765733087637756941730988236336514234793943344264090792730677421291013794788846954198582991701112846907844799081448961641899370943692424442340178471288617484607410955868196492926500888182741576964376382428248045370809077999839276716926093136859164668241758286528481997687522350196219440277987125566091984198740763912630785755644059412306904788535806306726794709303856973197108276413334845510724737688873804895836980485408547882856834964666941590550405031494018328099648667786718864387918131649705463690222432474003380755585272044254419530201573511040680116015184930310487972791917781612534747636138193126716637522424064351445192321198510087996208021587545633330694952924233413225505053164164014791726886718404918512030089435526342165047587765219830663900223962092076873106796082536983233119145393986820370020430303399050921154585372823978471957153422929445328325959054148382129712477835485282638235601035002748976920085407336650041695059638958210546447353377387127327711109826450576096561637469350285488712209018601766900146807866474991509497381459308346469496226287690003703330599544062069214405463884194399717545468472974124443289231981146822049911343737391867862673610730970498411387942739659884628554225444755376442248405367602647929620427873330651801458593044511941991420356041418657373687548761630165656670490051158572817540481876331157663520992511070533845504912724528551668557421911085980175697725976555244078701684198779624834528008847378016545756309035836740745111581464743212669017199883424367883971999929782877137435800801854045004890252926919913886226788810732093791702250295615032647054402527923727759330337196534592982079912390008746731091484784448143157364197424056206319825027214566255468474350359277170992281873741162099907515759496580299488755288025173070787218459229428896610453456177499323500884129144353059472031490989450500522731599173487425120019361583961627386777364209555001880985442693484811474897041192434803732495727280131640884769363489387952653573106335215689070482286490198184947121989200298007099523231278669590950620359221946010454879884793214692554290274373281845712181368487379043505192383776771607784043552281186069262937452924270543139651777271207958384614300446169545933866778124535245369679427394906611242219308156776439129333402861243608261164031801838061018433226423601955581857957910744771717736172603517286124729301958054857934831090886785882505623392801621029801460140556496859299676162610119991609974544021626369336463267078178940998054306899430811076294202926625173422139107191160587837411260582002561460228876267796182835298003406561756498866185095164116377621450457338814191456799658579789253907594102061836727025210150940106589784088840731606699844977216585600554888065026595876449767607480636739331869310595875234629759839470905262277539689541641789073085333097669715733548656670490685725234259763897011747471210203862855192479249473933514391924775742811007958686284070665217800610283083190624555908493954090135917259571188993523835164070372351345684965512656873313620330647799847036979800999921677117791127994251089691016277897502565851570756965015233652850123919088713714118597039239303996556222134117107715507678267632999133147970518705385162513960795376719051242595106339486939225617533250359220617365476797658012695235631831160503871971326620178661214231569387795764248197691024751280336814121847928522176507562012545623633880822683785541818748876583870068168441537101992833931271933996289815025182540229269745429875303653489863828384252884987587597947701989705173805728692362990206049148800166880263367419038567638461261140521549482301145241434117759804354585340937667590217033047611409047254201111133791697079109082578543197901949043783881660293109194135769153588586146628690640792846775026616435565225237776868580477628599370256484271740046836040515673673498890664056890338077525947748277033579499486735287778786956708357033105530057839511961870803447791570336266706587074304136165816039522481990420016591832270158226678161989027227497712868981030502085565658611103299540451324356312458811876403224252470133531658932140593281724958840434381438649692867424325284847884755845271615612707930737208462654410701419529464711157194513981113604628686654221115937285251990816524267439234389403915219437283961554798796704922343417862949756290785893983108277251097681481146520585541360860073221121851687911126640371536115178132174771628007995595897321033789048169627858281900830872346244599066553269005216494019963692912319932498092461099328493750049078450064682594914618894847786086059334700297679106971351196505469021553113507595392610759933989232254304385894992283059509412552420077309028238029648081789574492991378098916505233746407430020079688312503602566050952916116271981810464086441575985316090903569939448737904353928452246024810378639332239383670452575863484638264301613053432150549576023808392646318479060584125393606113173609849353236470415866595377223280603795518828074079060990744430621450847854776352731249744930162952901492578349960136427131682280807946135399908858973381726183304095836674510024995937053536925292800853159035646562193773829071315372942891986255843736819865845506071833648728561388191483971083570387016790278782335120923144938644913496126094762030107715030498219461950339525994500935053004953016629803569749701852758867961817272683107056821983573591860167004906327294549390411211292595837510089673819813598274825593616738589151619705348946755949867753297248764933002642506220605031225856336535400407701797359529346795764336199629211632209508416343694078649451923498541999548296793712645126479850146822858059949376274960230796136096269026762182579144300238043707757331786672251327512909780495333473416927687133069638799394367692301030862048839934642738718238727794050563284021313453997935964348436445811317685506386955733847662915089719190046528355116034972403331895957837906671563578322515453962899103398078196188682061445387283031099918697403198537086675462000922748858440482112291450379454805055340916506071093033097182531388963617085089677484933697069991550562393397479422514025584427263626494629113815051841366063395217862426168670226717415588965215526044388538258700169092783476754592826958556516173351653465607095115748306364724521922963787205636892832948475839945692539444845695456650650231994368895398918669208139900799803653499755739648197668675258300057342165392066900360770135995444669706501430562617687176289506794201041515428288378448670831894637534201550149778851774425992284123192057590271429356237274974357773360604620251229062076490789681426624226122408364747790203840779473362773629803981981993481055419527033613210087892618695940780533073189558000931362269718765683353974013200444549419810618679744699176097620055910668059733723251508156269959341100069956456724154932018857878422721203804328976069605533591397809033227493490779911767830275149635684564321762109498126251856538970805009610513585076307828889290257278813779235685936783923640267734701393942262017301897912753514369211414579087908053839729360148103946275270387484147296451778019353128973721304556058053392874317152761932574472106316269542631040937035144329234580971708717686382951705162044928368560367054946159795867287180687214850473705820959328941882509599779678413914584895897089146819063580548004288579353893944451909389572757025701380036546101782229309120317613024628112629484175018912997498600536398286319210713327536396265662778363547498770647002114373127392292759471139812250117991902375962789867349219676614868663524524323602901838357498693987526377017476760831059217752510105844376830511174881506367668958806289090169086085662671735043091464403298491185811458982894806924984794033560686820530315026239217173471974175718986614980934802423887587706847387113007043301670106341286187079172728325600791346834490170924120829355222675032495683288934370841015841407366403566924637553824319405938071084928231359895071354149035410314696056615615757450678925993754876114752846318882996853470656799283685225793015708248200387758780196655578371028451830588805817893187365986472780754032968310070904624733784459407472334796326228314844795615979321868323852248663252583959657706356380466386244531908209011108761255062036832794294298878262387692424770942618741677951751719489874475801856304457882852622555652796698056643774409519676747773940008260498702985945228479915890955537453141832895155341700929326513586802987671463148417015272427105475722286193407226713545284079750628834342684891144047915380353390931920532965978406413116901460948872922026180612640587090748961774319154041844052643009500904869648362696262950683424419495004155659699851773778402492534675132226512902430957188924996100470544852707742394427866064645931188259701047815208255033877978205630668985760072726056666182102670309751152149077219763060152493958536285161308245622851193984540074247968835855258475630630880094478618897578945765126923020269345492285633897291823928348927806995220765013746094638966152727585093436362507468440119977375811171173974907682296700977668628815685065470281098256606434895765849735239986962739945853122624251146052542911534670908476775181946726188845823851317000450776310598059472635607955673965880089790618121759360566519614562184927470976485179264452213845626654692115617481381907017332597893931086633948124764878128280949349040090009443904573421306786948947359687521331721014106147597562464237022866953043387033803450096614281126785327168840489350543932447819739892096246267487371943197244906393742731166210043509555924497283489494364322320449882301096338214371883975749831966350610621654888636735728408005905803693170082489627343725590902268646285593574935069099198558703853339948389525380138388679780031152306294853025197050032923777123901183886077731014702793082431912605519716756508914513411771109909067275874662591822703151152626661452376623151170085278246300862114534122559276182563228802908447699798305529851427053533013902103750870494125477972400896069182429393558776386591511599450043756331458257625208747428524189080093349722994372915098927463430000372596219428503858754963333918016208108864410680680370064083192522073645189262126285179895937233944433143024794694058653475084385487494616581365488557466716503200200704888389018797108488490077008752435133942723910262440330740807810635136849670501682095896795718822845893857745896318297833027442213876051763804680266883861496258732791083911575043575360416660361844493170265634814548585170793977457007952765934305029403219691656917158171735719158513204326316432023196495162894365562933744572048694925242812130614394980651906093086667730765772005423448247640092045014662046611086057676008595684918472294890778556001854412061955611665774798696453209217358044093149824576022200060597452268075941882104771718594302217867330799811556160203388205056135596047331681421451853310063274162868243870087188633949263554716609457422870114860097657169751963618226935999984994663613831849342676466861915373705946189592941653904085583629051325826888911856414609831106772893649872972097084877240353257748583288941626994201467187881403543496256276033986259355087901836884017723275423458259166528976018998422582692414041572816236594057375518161878765179618534945746765859201917443184435322952193548901850073671165945103042830069949362613848079164775891535073781141201673309241548470151575929086109518344507637368614979423551037016168460402387212095664678454458056240343279842798713553833966055372499519918285112671058554523531452133741516275533493086774603473828643499775079832008339668200965585249517787380574975632641887972096195199377633537113005887472614259192077614832717572582327220558601817978318939218637003718980194693303772913467839064839601962726276383576169347546142040083200992138831726797291484829137989297628749612822689544684545676278152542156206999421287443205888694681039844740076275132528527231151329747008465466195077896422712297150298430786117393311965597236749490612438139450035530076777424801357598522340224430435200693669492531849176493789788971466126309061235810784631795248737395806495424915093997720923305151992256288864659479312350578847969832143751745606610963595910640312325975572823555434017847264263862825217775142264657182602725722355632428381473513625562951889685722710051682104908258242638063532043465443949425412484626680390852007851331613823892932081862763666740231527339696139245925330976068106302556595245847543748938689335861672051779398310278012628335341137689760160099386833733747306472817739527389033503174487425329012245816193779674399891687731130199119178986174621490992923663803754266867050782142910439896125479530025007366266339061723317475616934215711794587041120113719007473069421473283774905625468803855767213100270347381436157653380306562877627026377505342176325383680270565201662546438181213337982293803026125977397338732336776979208006615560996173142360883651803422382506767207637541931075276560842061052094106346278708357140060797900337805188534332761403110824399212439714346110034682946079134277143261513034864514363256623513144847701707496939937214952643135454041792667757561648631222948529976399788262274722342773386301649004809061230288323332846230209991814589371734528280008917255580796439263318100962470781154104956858340772602522439199879396138420921366017488826838455390633232964422164213693532304001469193177573208026344272922885694022221413728845912389155161013952370281504575118226953336135232952290802873337980734682975590512495989783327821321381418839325714093924299774513080188855911025718804968411684333726797029174243856544225193307769636669502773131439776552473697148229818424003607075257803832208297284365120230471230468769991986492941359021712082263042892692655901516805150616042333395268367452726303833101469756141841920324418244406433043097920111631557831457148189921434149100851644419216168496538752728278251052480071890958112235160842290765570830010266779830972811373688605174591551539481329797535296472763375387913846881715157553825723040867605341503710344648004809247271006134136670113125816446177396398803371981794763977444284111026775276770531131482061319247355537355931302165663155322559685286027127551083740138383739713907068498657310069082659643757173332451755995044847262656236775876516820516137640956760823665717180885988621841675268061308403225949391740591412415620005248180203906594220971023262531442954658269454181913990193704329095158380254866095787903354302646497663406426142686370700310204936421537873960750001368143403678891495664945607929368228716225899504059776259003011380230468048841167259660274510334116267236810738592331158241547989859612207196056059940695326112401465295703616982381055191346452809861603418472011990795191169460740512359869475730242806559534274788797029095922066236140227910795872414409918636460632739599436008332089764665773293497672644057447945073129052332426291207064538232259155183595216219909493248262079810427665754626231395977533242008701067100066686254605286274111004716677394774410990814865621237424579863229014418559020480817176496198286943285467990570828241426566510376368818888101492849765871315027837197516405032619884071150962835528423367056825967277080093910834816101876855644415094280589082235980515050977720864825611608002628813857372937866787748275981746330574831348697887445933320539107297748171993011961574475055592605028806855718078947575661323074245369959572547520783609997516078813557078292061977585553234444156772096667079645763439336759547566731178926752370478723828355655040556647146329015222885045885385383446409781532333001724115366954232935402119061672573229382270887520693120180297393924166463671249785288161697334043667915146353621486170261487385654085278278434571976350256252311464183754453441165987737171571759801592186268154431977117331058784454206095374957993791930344502802910719301412500652332109726376880347970562621965676546458421622578683063066859807559644212136857805310624846501070776877266205806606112583251188139334948335732936063954270312113144778802588323568265591100547340088273768551080385118494297021717614369321290631691050389283586490754057656601538114230636516719120303471090685152709924795230870813667637909569906759627418384494912116239083836029563148481997450981809502626899033692237270500675958106370832798959984179208078354753105745295215279054106859881114835237575637384518061725939059112433911693416203888907325465601819113903948754344672317889511498138543707255335791355736598834911067827751047918766247815234716819238109545340047641153730099159230302627693146598112204075393238206033723568768651985624034246967128722083543960159532241578492554714096714341119144261018245281974860433005655551603047270019131835113086710634480949992085191258530457050608774574028176034269824564387527219105690728075510425880403957836117217699797242104179396372658404379992176883026571837638336705116222967412934621843646741306144540283919258100379766089490923166392900291359393845067298549676314504597110233731944116713224352690892050247834616241971029351896407455130891058261862177345771515577653341887481591746466200244755206845584505630645327274395792564005298966421447503978387780945534526743709791920978476286969260930598759334114622581414074297864094513208081525194962675236069473882026367779934326771890591315997311025746719550513109724393855511593147223968439354476096667725084212459772233560775580665653482769985068897078919276567389704245092189438796418933413579179560953587775734360341167382219527193918595148599994502963427649485094735091493863248717055567198352965096638923187967830120828867076868703659927035407013284316843058313940477803894928460478583597505629679627160058423574016953965228102701529792901351450312377613828959948684228555430430151692301308912799851251451037010995589787105577609557276407992974975828891608526009024115789094558015613300290045352720466315725203720349120381008843373249474369601220841687205883176484962806013168005764775541464367277532913503918884654496423843888312651920664392947073089501297325515348200491201865352272393066428741649071508382420613021175373572423459705957003070614614456788137542701936626753582656845336638514307575816472387242228584268276883996413642548579813749196024468126869728204097581944017966619257998069852944973118905182899649369091745609506720603242058238982768691427208606499312716298753867754385391624351767693941207163966714410581929652283806265160370890651362424470451973025501583871140509345205458454527380719389579391368260165026093888259581542934303809149284080983537832100547793943689512115856657925488743285840454368813511955515012881321414206083151353151893615994147253792103894778686986884802452223160969130245299634166798230808492776406137053997030047082031310031379915962700654970566967859436966821538981544765082025816538194115187355162271769019274249238054480638896972004363095489322396930564839248819979129915089420416054825798594283626694960734652853033784673886310700961568046944331361281782460657445239282978097701060893547753137845014943691716725799312493889006612242165967108659989656358082254728407989324248875432082603326405127041156499514071450250226972625264825881359517418396787639023786069408748771210638474984171642307517526545843896285174867807248646466812562142372184547643461585005468022140681097364105678764278193088568942762381289728090994624595345626092462420557288512098122599759459900899766166185001223215274182631826691694443141855552134280348811763257478872152789662365586718561922254494216876076862878591327192141330834846188063690898100506503358078702606110429526486030841371405907963015204590363872666738196805861642922759691980569235115020943677480126150878396716064101136971552817313703856215725921146006145889634667657392359488036083173603983283395048250949050539199871968387891545904735054462328822429968314831505237232250995815434795148458965378553186139643744374118063743434648133051121152776646187430580257668230441366627850159821583423983353082009725818440665815738851346074593156668898954599460308608737106286934190316460244135318155180732056984430660947477245064265066678161911469217594669286535655345581683038968228776949628880233044082146621696552978738382482867469934050980528777483565620202936464649910790731934670587329927139085176028200216389858962820817411872086164945907737970642264802104500908527537168318258950806973785121982215236207855063102311752632642753967149689690841825678380676269713841718440173886843232726735643523506712936107939490422742119993789864652123172619532748027941219248111512174338375406423234340028260415663940682433307024854605591583227284474188740448294929257742954410117962081197881642370318557506859908082902584217863715859067996521633954352988901728157146502940172089554548928547671676315431803843785988168110048258430007517294362330705647036176049795161325493535756741863133756151456186122560803965900132069980037384305476944180404300260310640458754597062632987305876266477156216970196607385714448070733317420841729825456110819237968999471983826882298180961284027232531755236655767518987449052605957999838798782983245843653312183562377325526333476282294172894038613978692944983401061668798227850573020202236073693996241344735550819602658036523367580349832158546611487682626226771352001020457266966676444939057535716650667171479430438462313087865139392242939767857516948218952187652393582530081893729656440550509865626735371716147223308304720752774388228163629575719113379609177084164067846999576821832060090831872947151897211111838605164297768541589398037635457747844357690409880855004562820797903904683382475963550261941984883293582365755185346844124533390958509710514498200655176711861713423355960585491889030093945811996593679295179608809174213343689255115444413978204683944293956017648136269720301823233147037341964598191049161991850524566750325666273740708276226916538402887040298246501187605881101055161933292800541914521270508501122842031081541323823870374112649852220188101394619804304762790823529690815136686858037387012711007669347691036556053962584007148491080763084665597541144505361029652512227173580955071731043072088184794379898765200343328975193332892950128698541550895605198942730608648342661280515094289701091408571829261657656176455138393885999404654089852206070618771793023764159470486990054404563454440748711641066417410897206394697354165925753348562916829652592855471464428943565622527613418363728348858129576376538067552607766344777762371741022428471661329342965902554058821950514376369800366006006154268920327296882189269847106069139171487517995270264843784959735308214135416902243936842766375109387327424252521832499662806306225510553441775882133164429026379029497130883954097788300426404073924824961294602051715889942753979765986232918336216968272072035751719415930537368588617129923831280577873983588197948753354086003281594353807777661609036263008255570711957545939847371162159616997871191280654918171120357577139825879431053141011326395996449299022204025570344984626713555710902808858348605219920136588125197461497332669671124286525949537880972496572460294459020003970002766347244924718552593792590246540528808576827031388725451140976671689398539737986585128623923298281606504586714986571899102217716841986809479699190597147277932435835809430139526061612903345602617631675386973700632808970128197656135492140590224260602288867303716185227960438908759918040259446046840867156215693182181924967134968151969680101941167885692298465142525837246637644562980177565980797716894605744099672756738398565059667299243221775263978168793922360746830167868540693581814835295852279871029598990181641909684994763859215971994037195894664223123760331099642072080250128232379177389656905779419963748194581156180571255790662923160556148002949329393436264632356185231404758376600107590842220262606188828476835926602756982180894690626175461250999837888594640094901860690434387188967066310905571326160374622364335505094608184223902195275875086199659243472798105096228281023915289303298044855077830551356185361793237940733749546838955083330307507266460871365113718273700397315687649264207220225552607932765414451515721107107581141360946758624307065998166886111929690663604163257585883957450380832105753167528160877935348880931746994003227773355239626667404148124617780058290344089701347566650843173208502764060907906007992608166007394944976509805714428659459185577150996934389771203156323404227955477155574244744402816031767503365847795314237124284290490430436154836314348666012468437197876054723480054657535906502794286130172204750098585408638223548344785223617672310745423772162815953506128610324891770777697285007320971893048717092377302728697475105325563403443048303285495862659053183317633888346057437303906669761386475908291550275162230039070528316641612039959762909900776614445126056586476771609471476285188877142735968691336861636949380598697091697202618559706329469883314761040409269004208312625844695870278949463747337789957255569595967976234552714726349607786149726217961280874373319792172655210732825353389869802259701980088923700846686571184591838291668518932537646332599747819195364560917032088355429771788327606168921385433580866280598691244339228068253210509102461181215592981556297142702325065179271384586281087497775522507147848842160209693672649873298641349645259133970378489995369672406644963417396919442167798772740743928467799124841640705036400669101116202356530736665596585729086885403904167661285813872750360601755830459498589392640482410787004186257590439124575846504289653009950317658105431278809461521859142360676052029067690910504506480277589942539667653740298294425970383807667339064653305471707228537310213506081386673275799186677957946931546692843808350342277337564057651303447890425809752710794465343561316360479328060676682952396412283858975154233402181339742059635587259404729952418992682608544140420773961377331234220638885470409344377212083887147980989877846157590390016293869091690614117600891550220497519506826247175877611441862547815115777687936283876345385514301011630904990513791465205948300018413778603703490856978695791937149821309881301547473170427872009514842285335284750342148511666799703602703961264576067805957738581336491714135789349879180938792667157430541106325132120602914923678491043412769607372169723952159608904921299029882676161112359922592294914502404253121498147156131958285946629965974088095998265251264341757753056565545861198691440411832706452519524433449261656925909605393600148528151206096021899730175834223886115412580147801293604541946782170556463224736556560777114993637441626419732817471882601055223500275448383189973201333279842519134556486412288977066085711519324821661271286648543334490417178746424322013970009529256358424077046165204581707089373702674158569509873205539108718553489539957523315134188756033335196037550796231114598430932467969764655103914308780661274256252793847608599175496810398522405978763692569573216074317528581280319641727761679188678602559028293077872541376685587540817973227289954892455623138404484471596013296472105472163535349315091866026983245537834583321929135949942917637107610213529169775154979325969227775810357643234783267048849283198945050194986795788760846047284728618411498476843399510487553919452263764717063031248381568481617791394134970064106093238367513850834988690799153098940821707435640823052179316379786248408225486628675228825887294744156528486596542505191799493102957678863596398274082495353386852389593834532330540357138309876609089921528528964733129662501693269481827312501643069356754036830733988711951402146195111302193548142672269353512322473471781075282380704524797432099949565228643842019974945512101929286562882996010503615460324322455262921186969529747027990043743957807817914233456698185062699798423481842441122236768148161049446633226169356946107137644634649707279633545474046234807235715594890641807416063456244213706439296424169804940937289233627125720743969559596298194868781902753811163608068814168558256524582049248037663983634725752184830891536284549790593344235901497629926232260673494334479218482991256313122350663740549040249219349758681499829330323563330187596048664636433106888808072049817880692324907586887511312638232065201746667632663475368408024215449863795734209028616446247299349949645290862573176110768311732060379920721010848906055261049196359425207045109527907953630750572095141594228353746267155791452529304523826896667135629934206869803607052674367630925147756087950013506190649547345425650524838633634349062456141454923654930450057718130594290442140477692682411584007442913701547949454857987357660262371103330144498729020646191135239668916429392894494752639490562191652501553131745885556781582458139672331518405428627614799324736137615953152754602420532411886447639706042697946637626387110618694574842725066711598696619986892008118140374241029182393832236099310877982870584957809351736783901456599248371938758475484062044715505028321537698136655292853804676296388731171947700765255716484762789019336276268980016710156008919528833915969051419068436335475467962195346552654273466818438779206230288246043318759713354473649558507562929675316428565009109847236640910053967211843186804424973872820346780136228108496307479188428783364395967656050728450245219847600110218222924564662186321076875167461915088599983869614861057371462759460352766278558642534604889080578776655665128704153372287376155245655983434373508035524658362129429288585737016568302414440897836271338775738236114017640622098919124399600800020837079078920162631873907610539514307685122485084586831393358744866094592223515084616995263908923919793223512656178695194631383154682346983231008982505526487432891295750216412449290318216858079080964889139204245711562419608844810179211716817085491601863043591937419093287141101371600317537813339901774863808971695950289701530190333200792796144003145703335899102220183816400025395351251412221358699572255608187106336290730815241837334799407525147282096177855581192268427239305450585557086308738538391368820933690440046878697104736108982684364668746305466456162840875571895374347307736215030772606450667055436283730683553513933365643392168070227532667881223591269552570099896782656543606047669873777897995389842960160889992131936122102483928963909193166600962240997832401271167821458474481992522496125526668161124179901515923133672663958839951183664846258743852114333776665712002949881110043071011874911599417699926976264967151114662723913451710723109605728149900281825979036240336844966542061236191499839339971338336748613282342467392490235135291214658077314302024950239490133610137487245010806414334752153748528955627858097674648134862526254010497607834153763650374033889596441032664032691901497540076446989083200375568092452710693250443940404975067677364047010859853650352400905334848531771351061214838098216690897549315145632762174974164953950977171678281244076411246831739633220988904151732485832327144033828030008934291245670310365115731154823257771900195818457164769129496125180542969516577675370506709647162714825798480084608470429134897067318339023508168829469332561793133234245908103784953225907064625787932509962228997636720611113983697269232294922468427517621741448982651390332631774574920117841999368018330545782658330223103638580470320866368076457924262176637890738090124172058213699346437152511097407346788638198952678993016328312752432759451538149304483063909369078720015918030006133847728014997003713204638250951414970675370956550450215106543651411573083303533170048309331959453340318047589903440201671911949539965571735816153147977844321106547875072806738554621163033590978253897802134247572805451668234246857256664088810944149309606828678295448556766194545817035446549123515378224677145445327644057287545428306726924079922103841183855750018762475858859616934615561032859646772099438310892169203621749797363052046524091020265967362861620478213230414736768115482807834992661058088824365643571173542046219454942392455416530424524023276061445910690369795881775620285662563156378294183604019465697785824671514789008246462744313914909048453033969414300820447881736228521611565855848488200748267294597389879724679424419711669906132523953533624354400009718346684037144533450554687923354321656465248998356926121157679189355332760112677919108087540735840317693006543672409681441512557241915715190362364294674942699560869277138157279694796581979201539516022009077374989038323292628667711024893726797158632415254404382157800965825334482648602670469420688792487694767737235188627933488752074353405860951701146692854861692144992849291061800500631912591572062189314550705415689029488699977556876875660239311964221343311401921661571629023080680628187949966498966736742344208935735060238589052120837139300055089883673044745304814962302042727436814533509461420695918564241939186319807917833999235287132872805320122206454457781065774681034173345668143737698604490915601763404905648696337065995415243199821125267501497662896168094704895720937434398156861787796961292587719324890270824849611430673528532083606098965781881888154922493248377905041914699983467230282066143813166907321173813007880366448726843095159737771129862480384771687115295585836570828796247669128312160844756787397508589603034574041690732380899939763937582313981374818968278664432724878063994641754578445843163647300263582674740979082893442404732802519263199418704034460907675444098026003840814195463999904338199185802073323185813288608354493034269683241635104956752943987198108064190199273649175210437345271041690504061987019546802486394825279650107288087723259205396500067843451754280517388712866266865907078290867490846425691763597806926105480109829216519753825950217183880188778119930546323098727919892661597048101659090907141819783443858446017212428683063361630763129692104978920869381892140335825511281435254393902553450105675640872156063846828209493444152666889067564548757267527312189750235350973107010120515369291813213506913060303034039329926465650187369012917888178442345209754981257125850858710729919833077018817493510902955984818899143087667238121197501735634588204997832787154125468203794425478666579633850894951131192800943987208799165963664463749876270116338005556431259526626333050858856049310723476365146881504960273554415339637519270813229061995532449241018097913944228448367434423539335190186730908147401855146506755696870016664329932341167477015397905136381425885219990400961855437964905627235997604627698926904812431166612207275267078873390225671039878239046018269053748146345163641580907423999513907530593192984796902074907760258018581831201175512680500977095525534548646871718934988861282777098119460471939185674672427179939450661546370183142961462676187196615150570957983229165136877808942774429916218897230922108721817897107217502552897320962365525441891524951576814473487364576428500203169429836559998507970645739189540678934992811663018921353532279304102732560680590813178228017136610767773941160229014755679656287141704255144093252063541980374480292498619946445722043610071502111198322439282204984312888362218094683968129024410841056563629993887814881553963812622541877835081511799075820046362737135221279857497738322025916119066661603090312704332121723903306606850095663983834958382078862766003846718984148248055303913669779143845595962371183945015535206505654133894933575570495140856652968851469868704914742101598937716754604061437307931292440876472893406857178340507544364440576080171190558286060476193864124680246439505609302682606548295407664088557034630130259187405541688822989576557788092046552430441575125855941104680178725121303956454353827531015542381263900664291528104856451315388660522178780861687293271051483079805093660222097226684307296935782224819535806533883068103845936236291251046984035052584055935717170952978589798634002447049439913217350422291645860068015077887817325508052404398357204075829941040842857673280090910703259069807556881925325631212882756796089194364051406009390440191045361877810589689517576085176592515217781906216789051743561052357992919138147310321408970957447909427989475336664542656466893218621350032620243350956634056580323086253234168988126867592240831944594263411761972711489021222936947261171126303908810473518958539465953034769741369178707411763833094584859875910385525645463234228214054393383390205385106699514867262357641292013459237217540257756125196729574496506893729813197545578526945867523086631295209088966291522234610322403126401690757272683326737096229773259800329664596717415113114396833836378382002026935525724594494144055425966614901510385707714627518548964727080578447063501160674275186807600719412289772154449725878856133241668396406734473112308906922655357085575991019805952733105670904319469754204558354103403769884494108381166317475559307028443526192240419633315455662597847646476722446779705278741077730471624589202575436607632664818639345695266065794440003464789560769735411884472749465472850576176539232198507166455767208084520464773518127173035755698801792600866281101941789770426030048019439542767471566241645398105708725898786445129011322532441479403603424386678867995329042204485469272340731527259797067730901514275361063736120107080620695696858966699806932974503768325895360665188836102569951637980079090088413811177264169313819725611037259608729886026312541596966672800125385891699470839152344528505089994617046601991820043569180229052382318118716011999997078863528027966032319236280625157113106929621059446884989233336826843954140367077980151797383946847078847802726448359072135662112882799379025337969678889996155334955773281349928105730931430368384285613389518350851861876345376009571787864472011748326439196827398310396084596343961751238457005431858691766560637886217322795279603091151811778370170340707043180703130193213825442513402496646105310979800367884834529823216179415339868719532863220298444563704207153736073625377189116342182387978564295233647258632975677522539780721235945023866893173998424414477796354918872138649145361160764888450788412560196549508918147618211639045482514756336254571050419289771665243866599518319834563913630366543351206422612111125037689604624557320588374003745968891648589010582237939491266145523238947770528036660400654302081541563858531945848225416066615122283305001851835173542248395010540039885928969815817316752621123842701880367125814917062533115285330545151024913386537009452804462382703062121616014544763284547155852873595150716244037829125389400796514157304710137751131021742807547736251296647001287038618862002679073450012940667335250200259750619652364222110578246724586427695652050460603053951395498092853993991788973900669098548607550530418398012135887627445108014667885725411060610769315773881169712777846941662721664674461755645676504741098095103771662468157256833209244340945923402486709004561306385290803081788988182852734011964635403919815529869408391570078373786787355866877438309992933372384000820045788419533182191674260655209927380230855468106707049476274523388417854309498670810866850948210471187936424405448023041090368248353417714678996269948060245420363602102233184539124051726823051943973305221784870050579202595144488070904941592003551226052260118927616972187034337985127897457310670804438444354518572471386145590474157674666411512290162473083483669012741998123945139548704656893570133893338919597181433364477113277444713966210885137632213813825497430878912482373280589619836243467818005137628342244911157640086756030065078671298599355971932673883590898143746103905272681268265190094817258236425394917437418769118064023012804981548703779190225971764284669564545859300868895762810585656041717982995458689018767111607669701716181842197328746717485323732790922814644860487811839864456986269782637435203400737292581969799503665541845272697391890214680194413916614090118527680369975774687613685491542901187596255135841072995687104848375421529556229736265331061631264570246172603192059106864539972571874256843804644768980724561368544434587760907460550096430149981309429038602420133485724485372491090156873841080540338917228603522813383313721977310209559687952989709541861496412991007325463959257206357224357260583136448843811983841964040015532036925216955715103119848258272861505781336975655761524119262448719014969771106781311123255619551492362614606482698124406723357743483760889310880778207406397817778847477409966079315873922389636694404903732785067913763939111769694079582682151440551286122082922517379682281216194040383157327256027229756585209520710353285691503465291340882150248901369034893525868898212514030252499013955358371776644057498190525426472851330090908504952931450002472311672759618568637465894895893779377855029575501108655464954411372605757792483204012235987474272518839855493249216039040295128056018236856742392912340967172167327176152095870319635908327534926653784684548425693067498851400644762248499357439016344743549525002148814781573473930130921067796758380404967901532676096461050048149601778551747661684187590284561922008921381327384135109631057782257248181252089563759170978173891020105794516681180473770210565274870826828746053219258377263928503439337687148671517301286848027905550848412543137944836473917005679334357900092142613934370416328803203358263858426897364213060394719327854110893343699752855909508576671555158295386261363771352086880296582712879206145337305459740144130709007152128110363333395799447261454451072656587854585889867429338726694676386736799211181872940299848533508445501561931703852346732672638071647567856842120712301709965935573622513063723053331986301103973370527651852206535676547078122786619927512442421708551709716904774124855588757995768217974374918739804497185274221246898144797404059097064978598181027527476422315783104488666072401685232545355614298497427729850981390302127846898660094927731759329432330695443906499813581974767435040163081018403341931116400376755304803847129866001551002697549315301568519365836894891447518508974484651302324849540047367623351402950309059737284453679644544317628056284863206276222047895895621620188238775009423735117000207687069991542831473036193560871816237108125873906733427115519408652006882373205671253197692219845790048373465637019229515395511652941047532895045641321782224501783790466481109110080654131487344575802065844608264775463078579066179187951097895894382420662612548361934293248187931340935275054593741544396213470031606890542486992739307137625026018020441866523512369134339752750756904297028763176345510835388722697908215562281167498365415059969087887741524907720721533272629542735980929558229281354466576786953774951696643992760934216463354232063064955486470039603427116978972947811811080434989853531980573631755925011799266918857893964833464357900721162972746554675079608902375505931630710807207567378845732789140089816901508400893157478969681067291881411827969186124721364414083630578224475646341352426238554558496777351261979892177147797769202537760027463396823434820698817170304195656794226675973569955315812516756342832283255953361423002712038888304554018911404278982109129702427915946795859734617796534149000642651474688222748192508626355558517477785443184278626711997942109557517124745245359506559347281141915087743521479183882298122524605292002716140852546612171699739560996308977099729740571240609261118611941650843338874411740656948370079991963578848184425873393750866882841259541619305156672427359377718594738404789618170205421621690567353960243737655968562951937352398270945728346943401255131435371306992031038282021729938471089934156514136169808314541176906682259128901947514345276508811277893071569502937152222576531954236072871317404000053213203230477470519364692275494476456124838903952411080167486541763719482955592925603363363350506515674339455558958573577881128632521230969936129014537994040419006191350495353831574528202254834705568984908831504064012395360553221713650799888910543544495722000543800312926513089699956706114358854492339351623142551331692472600393876221454091177546524061358719862498597058641365241979819638520323940492168761183091813264259205246446382563223410134689408268623110061969081455211939764115873994041529393208254681623668001194133317162291742106310096428282662734510918202267519927895448457781666810657209008295112962686911886923265136474738015346971218425644048882320382344593572554898123598194556077117773579939546173341976586172396478908063357429560120365629990415277714297075555831786163940072356075408993432263536497947915868416659298469994688930134261386389183968762296436695156055325391097552434650767125273636835008544022876102007482005694689368151630757860805970996861048361768966228391209251776492874539441477916429834811884552599992395555817993198511064695831913037532204196182894394147472260535821864882668642720830410383343312309350463436221492924225978450777910719258655068920123141952376066467013707456726599369914429463707714110861997255702854949944559890357611275176666069225444625473529447561659469445923483078397535576305434881414253230854408324198276896930904007730630722586189086430611305159730830351077611198631221182642730720712618285368590539769885136217614588878833166230524606717157913131786044814515923908487024184334613008753331875768130458759140763273804540532677707525668814182794323252085050618131034760294700176552721466614964850167727299306116248093356021871144407133889840271482617625196998518515293598707081739999674746441586034332912084242686578333675924687996504694238152635848485901798592405696925552761613195951910361070271244275138728930295080872232741805124318789662192309354934275431821129642541864992217792905977135586909487274177821408752661054215120300971402678495697659023716229299675796660431345670187335576946678821015305703599851690282813999677563841610033603933417899629016219175569699032030068645399464901697175582210566748352919639073545156937978136607458893651091713193132779794320969611629849743156583973958667256818951425735853098049215570910098538933354666060074204499253100055624977413975673950443015379262389983845164230946108669578224403360335893141527840837977076982584971808027331490337378281308895348924648119170392104735627089727216602563403698946171663020201235794827796878978905223944199428529240841033375550883434423125895398015019676900648258510433617301199075612895398122881083258017808064865113190917234853675225776226332829429500534551486956268493426402501772746537698253947101102319956409098605310895874777532323913161726434982954457694517033238066214340908031165410629325916395475511325981106265763167626787162290656902784541975161325084652134124399541612543874608735546996725551628637279259003230727295006814915733584457711661198002292761697395673305728120669015358592085834002995429630728805304682842950599521656375569218690038374275819458098492492487386636577326505128430232924679210681713526215116758105268507362234723564887562916225131672873178567133120525306016337668104964236959206793410425509984861802828689359667271704994283448893235793830089274736016968894186640357352978453985913796154300954250311734830867679507003375756841719748327821436321965082282431487863294057544729092642269093592847891482036323473330957194036695807684581803849358272345767726771409139622417491789973205706318771583180550114130616180237415230807949090040457044746689731272697771715449767332802813575518893205400352413133172193664947729966710287426026405067617937584913413105276315460870828872071308167722553545265866557461684987487775220091969339590297210355742325433249626987435974837110920704017396018690809419824849476888878124069571203696377855369548966288210386528179535037299243261680639998264515351295537695208779779026280402092725776775196993143596246974119792402459965387821550542500009546120347581968346559490516628601741825135207507635265639645129701679560897087194636972126149222335615364884914717015528889269791015480718976844892446397054817230764739284444662397027518639539850304098521128709475141535668351638974659580749203971283686704648782519784738228184440848378366210313232445037366679751813594115620212918586341804074392116709692264882465333844323566175649933310796500173536207097089231741138059615929774966441768475624684958913088972764205228410624681032441322439482993036169052523321900750769537955182697696044928236535867196184835765020566796078358899766596652395031796110214783946381889171401844484459882684735106128823932673910555770138828216440803339959075017783209035749057540312998094340840656804217733176231216787199491913444975973269202560179219605437745652769708226053195578501191211648894892750732549198853005649485167014581199283207244857267087285239772375419144718127899491699853400110245893778762170874307214580523097313230597426642510053442198860467056810072125042812955925272761087998785008479429044436506662811302351400948336437132936521987517507313859073130285549835066071621121680415408705789956149743031498359041782337785962598426222586496036188250641517797508191707643978207628737299660408225491202948739432043533715436169660903266751468558938530266001188869683592326112433980962214158327692192690207877137565536639435118345293383533975338481946486266934703935470516561603044722495367488304459206116386981923218321567427001959349531451696417309250493435122444127510878373733459599328112599871217924873802614535193133028420190027958742466894205183288452664661621781720855173413358263464155332288764640377150456193212478799762186160496427519391889371910480509598316591898396847623261458157630272569724159044887179161389083740229651486100349339792761554881059683667571489194196824917705737312212882242992270705490617885234554191730591945327865398628703698460200990559596689804500293348608293113264051592844882544418571685684288731318011215203621956338627805848739418325911741048772614748505920381957175516361734879896938267890409557109308616176169184110414273869087525225668918727316576885400891391900386385323868593232702202831339850799550776845128686908861102048566588184226776368196173617430632147880240881382323750471139385372697071402764465966396835397678249945025130659331960225115247183011736195928477048587396313510630685589697278379039815492760408501187088170483008252043452029684417034031304963566255960726613697626391015989534849763742283669908258350368252313543822551384098074854179873520473253791638373187845573877839605291201701855383085200776962819586671417749297768881770205985768235839103412734037976138044177781511498290501800305771949876163830640737038671298030987368670083434513010271267963605227894755318438912018739097821208909472628203063573617821035787534647727805809230690243259607336796582560783903121413069832996233160902882170967621104125476619834239212260221241548609226441882933961150863467391797868599543171512022777003652047226720271242793927813636745746805076214954832730379306156916616951972942346272585424915386397025866239298510363686579236892688669608022790526544657509439343229085002525476302499068287631772520215586642492526015163064376698440291030715914835182055617359688525130760731109643143046473589601407620369979500237211741066286021549163447874831665893315787697209226529899084181302945113412095172347176752245463666537418960831584262042187385332533844388189153603830395064566668628725695012801559354580401270792023389282666927392276906027888508315774646383604621051416540860686838477337886834837684471870903494647660501955929679827206715653998277122425868214530893722283770422761968963519393852467498084229922707653828732743334548259121371430373832748801565719500670457346699570413933246159843744161884601565450156037493923963889961149659344419616113194450355940263701170750729499178910555501417537418587235941717596368523126864032840993091529672067312395336390340655775908823796285567697712083044977788782343980659726217318998062735530676476425607713270988588060514194678436744159148223448098275823646901752080541732786195533951374044828396153947378041461033609942438658029373379674975253752034303322403409282207367612032639923502552720826693251032765540991914269022728458914838984160388876350881489898331999932984967685231613122436448117094987471729843377399632953115326681895994324478000855669780582626383702169774980474681780692107486797027597190053421486087663688706626297012646067986090592465112625624746561002809100626769714799001004834009787808201044527880013688732130986124125803859556325496755118316468692942925172562530966813805059041069088821644765951955158999671461771549758098073399036754487043423261940812558073149270725004208023439254056884312500181567683293271299600252355751891112446776157054643232528384528630452115034528027010686161418749765960075706511059289287389383627429624556130720479507955138844039703403607236317015908879519649865749481220502306599771910757525713595672988438042741839496313228127670310447116643255357804614868161901708017185640112078474392036130116806732821442156710139770038474195983811589294649871792513669030843352023942256236746331750433691666780175553984258777327509616288021191158000556567949888186903863112496471143307194341375058416099488842475267658703837062477670283469280414683694778986269027894369083437069809583688980977052606238080405821058556332914407131171989853218779736536292500549484420379259104081135254829317483969935282216477141300102101715572497698865474938291907178405708711484691478971292186215959063572416358948779017500089281833697987810823009770164188831496497253949855452176474629230195361662673597022361988077574594811259308155750358848151877181587810319457645606569335823407827831718826082101982750888683116041086460018165569271850772771450558410033680302576194540978128145478554950225007891238290978455706480640877407266844766150915751454226512145383712934244597638176193916577716060590875939998998182379012619523957810351252137247599574664154852953498522436789116425191727747173577300998696119229937576643797991858743049234296024328614621101649750325911082649416027223828115988317652121406084872832495027223087017789694152447628183968836454469180482612306412630656994485493896979269609157706957288736048995367768251324059226310837272170428080314242931890536256836327359670885351558030302207461424221912576683278616226652020232617317176645960603828643797417129220495211647507338744908603221806293253139214753611119309874588774412051251850049745937681398788727969064092285179344219713061460691704196124260566560256292303770265211096728992628251206059211893885666197651058231120941896496615191741583528920699496963093480446597052889800224428086048136777685727083159685558137648488216281887332599263128941562856397129109056410132878522849080507663982977056782179882557231849904649127290584721590792793211720967173350637957674448635471172387150364808782382813548835040403510485589661052293997100863999617514857605463739281408184119821971532128955736006092304349662142634659500966962674342228676610665896483689563511843108085917840149798470336296639992410537869362972653963796493494245140969952068279572291890680100424581977467307163574894070024604684461173140120379251326967915530187776367196576789084402727954401110212317884579658462532672082786920953019044408310832733598493509045563740004507903344295598091695731537161645016654168055652558049617739477988453235493067253865909821254849733444475693994047987697614078953149635193552841782876095502108224619932712876964141559482172934756204082312675326849738924204025263216510436779351622112614998399930113720711464614235792091534950152431874950483489999493911391910164537019023989148042141384302774534185489429500829579895541647745032735556557289112739959825136279944061046611469117087331263515427811787449324009375890324802380439414436837071529508123789802303016102409614600945173046760684040894483309807786153451220760228249899129723259458710225703247219669849070027660323306596158434963101945152318887382424992345781613507051027518769296869444443736833584315545151092000626899736923012513234632375251996629139713338365954271308829829549891215866089825725543818058880726008516094587443528142609916609115742108781835469956269537956081657833764962075590151551602499763976048117310052430042015017158840061321169736726583619624720962536886118179506439856656483560316387021801848869773762643925294577913491886043127679181347699915194310748891885631992556455585785704596785551068864925782528095873203060357642458080991729335933946418279818363445001883135429221948534695370764194456750704703229496723197674796880813406183899261745541360339063835895713301579296223394034079421944667281745874054823344481589007615317888454961214714857423021601493851714350581079094167196345357802484054569542773855496300834176678196123547957838113085538464029493683067353143297744692376635187721564398167994859539658859835398357622157022307659382440715553385475398148461773615900227929624091998086552794085499470544304609297330773745846058320971938857691920398059187778791385850812527735811348967045135670129755734499184336457430663015703198154496710376522174711157098133502258277710914620334327173073045783531002989032178757429850248434471324020196119421953373287718039730832804457325378023228492216274832169435925097033162096038865382894231132068038703323505089305550526398657071707567942295728083192237732924153190412855633708205644040161079302592140358645814071550165792811582655430421448402538939112208728295299575061752833695799716984570849406494127978315091563403542936832434427071788209911735679349064124720263479530058616694883511236210152132753344872693703372210285570451630879087451683731622328124924051147316463915030563964472696759331572696720766893590097851359046921360925592315818978907262875167757459764379627662924597302605140089560625484427213037238947149361955094756061861195975076884011739222762278135366100489061783598110027476109202795403322279002988124212186435203044080368371738541937002960774101653307190983484073256207745263082541548652807032169820901908584204904245139737989859379720334946806644485141389418389696088024780513034102061699186689486967423490245090052454930618935062550245755702128728244942306036747006986488803152426412197608599008758899782146011169452591786372341545389235856002060365799797343451301209667843520103908709912705248210070663163358260050602924928913704257951872621372768580175594445670615557280582617547349128883012907072400553573334141607463911537218971194662179139344775758603877394769481488172354143967150547136130611549091011856774081937562746434349877216100312214252976848609235528670341086703737641051127506977137292178408153067488596241706153983368559385729592320768634037009493065358418398921921220312883082853662856151271647381738963391367733014084541033060747925897627861881498519875105595989123014601569492521792700366512628115220036843187840693243695657489872005118391865310031157965531040186776134230658548827610532693801985897638975196620415331615524736406319758569476496419209322962899905512909058200843065683319293540459632948616352389678349604954757612233514290518944042140170076619720058481276110426636351411531619077569547874651723991772857971133122220715680315360093945028627109084014015010283873461662956824832811900920162812117315093053134488314013102179951141047711822137976701210777245251090832025723685798894379966473255497885532765749609575899311202112811711808162298003523698124888828049637173146283521316566877566972980241313835612597075687541745127843813819258524777618251165725954133627385276113748336191746666531609859592861964944802748692761777658400277503750275905161996972904412433586086287198056838985051576645005478256157044096391333353893794002195515984918833373982863744401536058934436800852099818358157425741651054783339460818353245462939319818699864659165878273710263269613240768753431667816055358266608522818045489673279291745521760003405486005709545158598643628210945060046233375393203608926860482723834091888749482467322662893630038024444181448884847737439151025408834920364671809806383630893327276020168506321159920882679708427467666213858226202751609680637417508570448990966720048430386904631111571113376405040800199839715296998663410902997916095166921817116643408892801987842706201872972415975985997091204797428847669059176105338466216864946438445513560859465070164325823695825633469996337455670964341497924157431933035929444711740071220929982908743803163007194123790644284258649542098639339625674417465806546117580482402791961813646230037662272343713761050176334442065826684773970745799787441409767468416209389397282627159680719928729309046896050962784178113262287407774177700964627849784678477775605343729476223462080510459931725122199136112722318846388248980204970521312458745086425984638751463197295499366664730557017779203620117531530058022069876529970892214721875020958830724876748265549659091767559355080989548286098151687896030424521633713515354603194979164831912729572881672355934596213877588985703886660441576159002506118802306893211290352801553329160008339937177108833501403785774251508843598556899444966062606101602544803934303329145305602355359995049264650293722828539340731298113347361957713745392137746955696319732673101957577994675132980694140242307258392575966949608518499083624860041763660266525265712961021541216574876412709949787641929442708938542465969170072088576484018838167716141791946136471699596430805460887732563964544263392256962410216643453965459842821769553041432299762165683947513064037868336675966804473065753406929314833736910617554420145767371307106043456106198404158868466926854467885175859562878238518279332028945610412258422121933701890140397177887910287256608964504865390496730653180723732296888921881719138147050834985548863890290281775169576167461644837607579919380354086862784213302642467489351669375116864611072507066344174671544741138041280523048142119851581592249796045638661439062922287842385810521757864944403874945494160872267286079561063170203959846143010380313593311851152528400353355321019098191982975367924935570281531165522459973507282086962820974279604608521408351644928095069839063406938648525267969319201172279813609610803839186599268305497110423929564099954680498205522628013958335040278104464142597705235514264204281344947415834918144917798170357632350253123298432300542484767978838302830178751952827481109395836674601374862690893305128702572536431144566252087074338775893762080883485182106941603531274391017114759367292227043765049653325034344510766545103869222316613670627934353043723010408888013461279241717515847237526369322895267082952223460052503134374403237361818047908537789896703806148078972885632475179905598204235101056516250607639735313258712817590452887865842030916208716359050359340500558895067703274343784517855552851471215681422542790519480824428061712254412628362732803307068199071171315331242542335954171417928342341823681026230417327219472370881164491088600024795819903509211635745280447005888196239658401452182727226455856290505363627313157098009040143018894240087435125666848784685181662002438623262812362688014337045639446622664059242313528622475918286634808849824286926198678522234351869023604992224076497710932800451617704030333020997744153989426955671088792938351499444402651951476342711083211867672974507191382967611795764368902237817504077175073011006752655832821631413721128704692190745140219072437233409577889105643610097276069843296881832728912396459611430496404398592617067055921917181126612083780143484911310174427572096398379020751168938295018176291066427506139461797928928933186581354488656641418402571535102301213840416312055802243399711614168975666019280210590080853908747491678686671167832418431823414793487995751824496573299954414653606420319064866135074377483302522767336793285495609087715929988135128547230135575625592872806346910738197326517508919135942517495980481961723342533377911722256412580124200778128437589668058359434772020524808951587703061278083825392643920401549193779605438622678590941643410892585682858931285780611986114854925075382836352645740117233391216405207011830676935978290996385846587030822898575333473568629506268491556391608859919056778236755114694110620540277740246441043879798387206654515921021314367640367038994681667923878119654875034435478666905763879373832134904655546168553778832749207759418875620564721794443361570685405603821030264746630754651899655784843208075005444991804753672714753389396641991855676139222789397592511963951671862079968114297316825071510778504788169940110351346841132077640548021513705614022564845078064706641470715897708132402122902430581460946789202183187835637975617106170165388399408313584777965799035589554625326986486157658664540932410790671168723815551147211565579121515970575048599229750784858759262928353640619151774921350237195880327828166268224033261665560347336495742132830032135925763129722015924861917697861974296090863156582751714685498428070699135994032424427302700359744890442316911741943217683059525894488371969555554564246433343473402702668864280238432288642693589203430901000561847512552379811756176853858515765338048671864167275416950129082619765006337952110265050240640001210489185793412412923585314067036154970169934257200371517449764192501013142178859799713219762260723445048569696536218906561270716814608606626154590142626148091523854541730960623949314209417540849835749157075525289364359966227335175810796114769922601037541770323100600978020354030125775740110853789276329660404302336251459273766630787764395574953955579671385690144543488282039135154362433423851837299292886700337390040899476817996684238868008577340899147756399658126552338087822139259277971335209467597416104341600727487265457646285132517412486820236570010417567890250356966939577826793450811035578833982057912385466509281432212350361807891436181434416405545488275445959413576238457651953018584238409574976621455622954253986013986231512089198645785400534217332647194587043581466641775375745974341228192830345874487478388351832335100565647009032761286332978814674785663735769904039895456286445550513771526397916127935241482866896747501376480318901144686032472076086343948547195058053137621691921259596811124917975656428655063397951741228883289616526922348695980812691465430720837500534391953617000436068311308085096236333790912313926216560129397383550909527060707512423043633429665326085701062605971882108436504780227052155471892920111087216845615299338346132181582265568382832233433889159033713769200959098265481843456178444743494648807369205700675957920799856743403107386544845761204314971065022208702080791046563827043004196320508395858017380768120615852892066510531566090592992849464762142232114884440463494084570098392798996843448040516398668324635914583413054081731758939970745565348205786683519671505273427573876234005500267766245600896151863200139849920562950471615512674327936118106559671929518877226740683056272980987626226939955611029657316152337532540475639283802551540555175919393004907637311478331903883529853198445734707797056199774600123222686833018149348814672808240633747040945639445702602922447222642870807908569080530248263574474264459639061253257001892644534703526088715882647590917537338713213316344343128082598047857295027765165002327570184241544433977433830819260848022807229083002503088695863106150900258270125577866918653357664503382831318862470812273990389804343456774129232993776340691073404289993858884039564106762000336734703762174095607879212158175748075762758412944839522209963683086131579282670336313748627040570651039863257609565632519573755636231017943659400000148681775357763868889740814187337104824797560026768245808831235530419731918391036404279825349300212637878440290273560206046824566334791307364859381410714613623479513235679041828160985011792339798705632575766048061429800501011316879141064731351542051228542455946343788917418784330262104317822972288417554356521443365009144658208993907828918755364098265295613229682041598326935143100080107681772552510118375404580958528083743482726217554878345079676061599504995513274249780089498886271779798588155267544561670469769454110732960434432796218254608368046065126059908436858493902643070300921563931322769481912173467370911277342095053026943777912183972017461040454326300447581747754313067762815822083575027811253417455890510408146633522352244622617938731866461570496974945155875570417778398549122088345880702097872152003339936477028177260927690047047966957984350959165299669629717116215047961965918820334592950619052463603690366278965611808355488082794765055039651947317086452459120868400461271695585158700416910185223339866817027106895798473392826279084712349352049058664218719727916408060357031766548929015208619591622055795251783442416488246933941148537759288743238005714844601910228923024448448267687252259298759735434277978284243721716179078240590561261063206611378995094899436992224016298706515604238281255255194467408203034975972333612566783845958370785343310775877344150213735109948190130190569307021784085064378228126998362736995889490232953155727121805239701926423703228998719659881112370332669011942613383771708259119372687696708785063580431364944590026817481029032951683429843505008424709028792995158891681189293956653423458307326647102839542896603305693986702953934001469013509721465925649784614473070433649467244780150248130705618093307275746711168896150227182795440609825075929399825361408453833113319207135862029638488548966585144076598296986384538174081553392984788000452252833985320016031713628981823160678530544455240596767600871376487116169872600175747120334066983768254706602457288777949323969849003727929998602611123481278555806900176208944324804583140236498848592230949674629084371427909358164653330960189040902096250215680521468857458570343586369270402797752805163771191494276742441625793542100603804329912446922157059341624647762378369711820779121925655559302134759411167196525663636000065186011705269857863897095030954653620614652031224265001713987922577952706965985463484782676316419903783874514758861046609453892214567410681789298979982531497176596472280002218080717320897740550171154160320950159578766409990840957848604276525357706570796053452376273091469200985384084712335886653003460212096800956825114019911883345615446749148345359438741166668504480470067617245371917372505088192754439916703311876784663614174122011944627752515930542976734251906677765922864091851056703953944678271819106946620388613597960251913156955861667280660688330201631186526288432691582138809364512948311382722919862200609631038759433556884456353413518253933796420008372853827593078529803743483138959518351347753384896757222304886373063254074513437341841224532092050354561908861215173794722019464272071696009447639703335272373332442685829371294172707250459405251361406635327026956270510582204040101338385246911584660801321138557580290216659427664534404817271565022013548139728713572654340217363266209509125204394033669818053128164667543452223623939732075418437775236158276780887650710949590887686702306581586507821530193852431542383120517264756062643581966453424699796306837645183828538560460527088716609350555288919498137396817799726682557702447088761565642537243648976480673358636770519307338678998888341400150777338183253013909700716338663953218382875951602253537433884933867849141530155389345517693394710014203857990116752128479596862130560870602858648725454918258410602061133903532293865541838014651583852968911738192288353174289997812161597844645642277501474227562912749824104713694072917106481342942286287397785025234449111750221417820977085230138502449364976640869397360502479815739554485105279780035998385032483580373457092490120658492402488092942849351037117449185806604267124172239274620548885019420692300121423245196793212290820405947559395844505516559820571496585780565819531843119719500888782605896597760365388336904304235580819595955984465258713367940316150021714484796858591237853595269997042174954632752724987512742222758707120268592824068607818828414267592156300511041490644940481188363624795116480193888001938590305061910648159406615212212987169911895518227865613915078771853859606305457047633544869152609424972402023499589609785521251848689543251495078882252604599109455824136633167299214892751905070040689340523518989026327950445532968775049396774301509243260076806438948947731793990645971377834661917728647352499950335407267019472532577258839542625575916497577110322867420024462729338857386810189987517154969385557387727722577181815178312256920826790466643556575535117245160238263180268635814604817135264257071330045341802415983124475386605191603974311850309545370854999623993810276574585792321189975946794183431560887991426728702367568506863477961314798394442750934429678238241286661972841100628700527000586040880515166092240412018576742743804324236934927077316785337934126406284076209586239664740394863882019598208496594646565519837417749218126160536728017068030576336075542236657429136146083276800505517221600789507226980292538037311808650405402044880601933460515102538410408372174435324123035808068715650002731369621309689822637112169109752458630965896222903599484651192786945665184170802478705041951750435574891439790433461979524361364586616677798698573739767291917365395718588871736339269090401961568330428227895515093842590959027450301461049919049126327786957995008824525720573195988062154498139872440428973230118815350796210656672567338984090248138298437234882416068496681790202680164821178437498343403581053087764835354788045999666278099669785555446214738903093182213905332618783686994417634192388248619473292415002568029617154810904431621042285256824065009961835338503322767602905885048969253617686277314793190655546575818033120052608716495638896487658529082501008247525541503058769761929297389184166549062713783119027216437034768610555113080222348039290096955598575847720232835177913153259749290966937944857011211252337048146441316966260700695498233758600342986856892898967479687675451427807041302309966373847149456508348859603391420794200460702223275983041809017406343828232980566686777229397602265990592185050851921532731320934335918503815339152469234732008752626370579738148254146654789333380948443958326898212998525824191384268414559177040906613999341696506400445520437056920647500089586663126812911330692089962058838679589893967260506391546132080161538789670790820493442148039065350720613198454262117794169528374913554409180655772790678900053622608787745994557298864696377677856768060662694506563649053348999882103911750074330501561039357596103934730976218373498977555291387688189545745249102744975155096363405358285768117631145273581169031369844058205695430170635610318983200963423301261553828439529718393004381458104125143257577726903015973052570774780530158861050478968366128778007575327079845754809003109089728381408340502672740965565452526180928705635253162382477604763809237363204519821166985547201555991167379438418999182459041723685836923017545478128637763905751398285695048313834836146308534284099364473981369034471476500912418434610822082148930009781617052281346994342027939974880921604258537937572237479612009450234012434838153548100188092099256777901692335790483910192866200591423549520387286144403575071158848310760759345243379387047253674431574806871498173430743036922486596253626301559727778737808917040762207498450999693752190818032708508647042449584074977730718660937100814884516314055031053290106930227301378568278161926350307301565271044192367923767254805699256295694429294324616880681557202627495489683046083382112490171463800828175293653486853653848310840462432438085557866877699836764277698766399391849841681624001747164208715373032020702196247150312911888099957118994567136855998840259578209861910153626638778559896582931900250399121028546356429999389538247365142902243963226506170656690152308505351798909758649463455176389680061137110315772330709836522551566703931289828398616695019577126306146054187186077897560047767082658818091163954497727166041277720014621400078026411734409427894966018629722448899978357585201865738561010333734207563190242278451769023773944670872606666528027303967514044587257574766930009658983599564077519723401299973713230067509655559887175558916470941147233714296089804697161351471902042864930315441947328067943700871023531477209181028057239524432523153918258226594786989022475248456239210699260885658439538418478454353732745376403735311217303044411253693577666905139587594970868292414953229581510439880405187702449663432461542092121314121956777955330800612128840134733702225387683280908612925150963175696744939103724833241316694705812599934228220653102303097042043053086681102212959943554132888081271352704026967642938249515425203440633523387458317478262859952799952848596541516368245893634076243600019958668295116537865505097924778189388791708223437234988776361346539041851263961590107469188590441676488879889607917179251220867422966529099546549705202896293103410167861825667386704277855965395168564797854470346060504127570012825509520488248781868650086951109674464031737419629709617822695882991588775640271352095284445280563362356513338964818702174057858882111475854379495941835473852428521018538470598412549420508957072991538839342532255820376915714784653270760595088147750796539003584472591945508016556739153466221665424298507524721288057369172206528490003691818556095370307293838443239863119407936202842990685712611013502494577889261587108029394532634360592969501661859796021579122770612729814472601494568259619591167785371864026959733023494610290873879677928399874107945350321609925344383031016640796644712575569034210543477451288528620644428469890904275958376564470279203749895463625379357994349703591890474462860322693560429346834230295912543181445116513886530803322920685039188611244426236294523536523214376882677292919265402107403354626624156729976750165956229652386149417906133165511626097841949081057499213032517216531884897341586628137584121793038302318641124025010525130225570032787439391004060406237432113592704381354907340966892739521653580973902851135920041961238212518578841680449675875971665976803653373619433435842939607812101986099252564952869244148541967370076992273346045160614778064824861766345783247179781060471634585634444643049844533761776839009569270649045158438452796115518255273657122713158921840354988853233700805550556819602452170830084047838808475385298415399928632994917796161484160580348949494799998486692478126624038019801703460385275021617390389736668510290031946814056213623918151221593589901347334221416374833073093703577423821297897504877655115846575762851315517146977148435087699822047388837310397766389542821532352719648299954988247128741993905166845439302143262453289543086694589827026178441043555637073398303033535700207380943781644617921474123440553165138224835478935984973617198098554710602934242213419578657512905254718822545416139336169081940691564895226158957434509010708805061152979748041128879681058312991993357282042557506834322516378536342047366855888347912761738327817035214548024984770674540104777295314345089741643957524623162750279956863355795464360671571301821738793010369898544618558122917905659815361758737094570581006299118612862741372584667401966920676743405036290925225035148028377854756751745162860704025907296975502621242224809127862826510879795313023643906417893337935285730631961590737652146969331082589867454709207686955532268825746084778487244846576815962945815261645979078121935014834918575461316426900395451816524701628541718609596585613668276453277447886740984162294154551499035011143607668965201106050037118825103402015213798310236169820699935751773510674615284036029115462572113355622219312436852029106157909791030017262988856265922806856987897721742563789983459918316356979574958400209995135334966680955756722078797839783257346622262412539513152965225799700079529878781931169789374513168797396976772121790084094048399491492983410821266473706125722416406056305570633906792857827630843858971183704478942178060583223716887498204493438557351600770339762017016647723172554362977936471172549178232399007408169306901091798364536584268962080881369047959283837159390239173362246229197553316635725668675256872818001035946605798464445610390123199305415342693558863665695363013921878338825247884023685657277667817988573877520312221072962580479464424348204161176849200082714757452411791260728918423851258568006252318854673068548082554372743595493174278348658661066304883017052480337416662976266003370237467316374398825887334571357813569557596655752795579004013850871110381421489761227612514977801485271939673886954854824483776963151227865839181211299286510500150357805151539177248767373351991056764013626494359523206281561404372067272730885878667465545852900097558024059471347813158546770048264243371210361113175208206751555582176383914403667827534924944888113745333861671604990995722792889157325869431290478502624153240315432427957609266579503255020965644702953938317357205275625976635589921271450748834345488676785098487919817207796462995534643474738227486926608247712477530822866375420674434231096998619157354461220841016689384069000579563785374607627022505887154901459542056500448758641051668950573296690015222260521199220565930624975456979699786992015230527366372966924191018618584835237774400298827119870536591063168311791246092008354061628725115801670765159909706429058998840482806467450481331688165849887009070099526209259902390404385923727482946052171515670291822010957586421227644995641138966228116887765010325565284354639019669130988452922300723065927447346956057047857867099600697007071672256348308186744237388347958239689359721730267844082840220685271493427707013984045963100527095930894290305823441999178620835078516474907477010626063570097439746408056646450924265200522535723020141627738716057396476769243108528098539509642821606803087542703208836944499427842146791979781457938062378779117957033447903515542213469823807561777211463597150871166952138029346241261698456949211376209886222550519532985570697108523201144458781423221237230657991676706956784807879706841836611854054799989132473586940566551548696282092742434801392837666559642810050770335595801215314273820964087392503355704835854691522608342823055990833153793118369800808648979626767263297057773851260573405942427878511471400170295471777180937867231951881573106405991685997189884376255159495305761014595781934237772790130737041361709328653372189594076430467135830980171712334124811086905442854111504384435557737425046271226686226920738573727975832623174845259935402331780918210517463948555780223038772019698242747366421778642665504499554549170537641548429530248460158531690921111928261680009048404623140636221383309154909883052967234213597813888376250663702756264034042409463065754898657050184085545886129040668299820045638362509810866213811238409830941070477128938159906441174646587257164022911271112950511047683875633200754572575350143605350060126040446902088222475464221994097549669800898060838064604038528942392190063258029819129605584399904586608913191773211360410583402682693905587776934876519211798258311172064269628744528405661734489710342547820018222172243153669966894800063998212510765154495290361555090912636329996386958095516549858552920989559704396280025812998611410013254141122953885422788298639611050625614794075576068891380252321585274300362973691441213214891961945519203055853040688220938227982139003062958900586105216407003641448832396702411821758659205361548707068188207590311230346768065763307683514803974069833534395162762025997888086462769420094361735438623594983191471102827624954368983856547670046138599856722215501979560939976525975740325418496515804102764107837297138591200111936429567342532916281681084738925125078035697222776812172111825583034176858242782857882538212323345312401868936151809973584914615778264647388498014292498881035132144440616754327542756447930669434411949634007847043677750125019208247336755219858271886604668228521783686469605602897606257302848037398147276136634941316661874667745401185188790383389688916971289966867732040625087005656392087557443474625089980827321496032602020339778503592223342929841703381574705727495676537518225052571782790979906881622659858524713493404164983657216413302669250316377179586747769879408428718930430384946072613185946238322257765667077930316890147080826321400555978854791658378399175982157445871155627293934548013036292291089417293084938125278837612042687101648845436370812952956700348354750094548820260659894999751055439461534764946286342478893129377026373287301130454971854986398778974524926608695631896825713400622019572484677077481230628907135887312222116486692514272510101906627974643079839763182239712196819845927434805573069194948300241636044380576241158829491714914446578734105294140463785299213308716285046059665998665840982320301129048524897642105035090550063237588259540216662933070005558840973958859576514997692415429972375243251434511425456975720670135695900441962771834860521129539413475604262942308397078113236407147641031442197136263557751079907186109006213577202447220004482693285665818821695922130520469687514313655708393057516742502182974486624096449785212070015946197504667929067246625959813270755865958763350372224810453077085459810303949743476775966168463679987713320551643301351019416120367925856655699109518675497393908326905470766576110757906963454757954593693997649472161378971888403408410354569774326512699575981811637363280985875567422263417073240624144806992500015256704235332703190180384100964077122802737851178344689530061989378835459049491325250192613043393413089259486953374591219024481761663533910819873908873048672057333346167481506551495739478398214042738229372545298884825271604252491892242969415802683425974170407245845588018703995082090035470494800996028248278107980688749118672998407178299280893038951298870904188032013606175357605319190299075021761317036953420425654676567074124928433829660004712274448439235709824577792274873113575678455682684650090588399334798772317425924996455225465175330449986589609232292935004906970481911161388284735324598047640303955343460297659154023537114053173173860703816481663283881105050820055331679016236409830582384671693401036089278072137563907371706271632605837028640394433574155537575987410125489790499830630567794567788769678091691007860810332547944236093315958790954789742503705053535333836726912814272176107434630297284151517197690492680263864598876096085666277522274699596766888116187473293571250914170174083927602811083453938208039763766999079237336070727031166730023281663630353520826982302162026973142616012799433537858257325701271589637670080590656676253120862115952828403365762273464792153959404363359053013429566692329246439419277787266026450545990051812164308807346215711324009353404239582470724166218877805351926726454330813764459197808187045146326662885235247300612782320055044688789451707070544247070180291839029603999248627119272976843657571596612275966692022243076121694355512177848347295743405692066424021420849046397157270750263159892924959533945670228601680213965299692893357214166222414713736534831631488210794690023410832747205325925661880465406910617336987936328977269289573550865866030171237697756846956328003189363999387771217497319316639330434631490186685367298864774161069973568672174246471488544521810922483318296428011349937433701834239725331014061782574466160902238732353538929764769123893681044534271790091296624528147312516332183896845084491130420656202134224791164065854726409608348034364721378069260631277724811508205832895037722057550581235513449396762363856442388058442947998003282826319252064454848643912746221552776282761089710149676527902174144465190803433832053621750108213156148870125225862714615957546834843014434375943859563587789024901454693074279313495880520641626594534866409735035376807095807972306544841029933244791243543352030056398011113649546133785048509274592212131027626063933286185207123221529453892684019187221841926418482583681058279663745359885433617735416728166737986453277830156459506250669796370029011174884787764615396568723609641115182705878585617855406757650179086257883185110431094181722506737147015256991486011936689555598824425567065239052158208207522187323445773720029138849044182777918146550464174525936229017977683827445409980914936141774894139206090060457526473300356091202505924384445434982871101004145540769394123899093101302877047274581070974933453129846589355031868692660750185568006681499386191347341458898590684847576218894713433664749175870988525436985621996266651305966061371257059028500236495529554874375281645391217203779188122872434860133872372573796138454311951845666603450423842956129137345083674031423290788698226868404406603619698582082084717432796134052210534418854780162511165208998212915818190448429030908706398232784064569938397252365165521909856014259835063355148483966980113373150445020735135015231818550046237293358322790991286233117948121711492271722810967092148383839166861745005579115610462344272896974790704101989912009659189766843764573249851929351097998020148554752347122036667122117158568458664290327461279076846913408664692255897366412321271513377192483573585863943977740136707355226616312076070283035909594805213118605155817724941398866564717819106236519272715687281785279598144554102414473031041394164202977673336900958506878901563783414472455857843261843432044570668443653478339106060470103752813387243356632186928633429180062008982878637199457862556656935040776661405200021972574342148229544453403349633890695129394753141508429740795144745812810594186450321112979888643899970251469381468820535218673564035761921952811782201357873171786519613508593318873447729666754118197415261405165601481897411424247844754092134574642986910656324623490047357125754828478320194741467140570253640696976655099468316741980957320866898348850560174040082011160238168752964283706318389035307268096882058552282812919863996266377158243720960944559446528996907674332445976971813759062165925014906973752739541943343087024656597309250867617465930288362706355320821276891086654684342776237632406959305801954827208136442098113911188413226978467172219629551421712351687140205903037692590829060024649838223705860592792178834065514300415961344179999406389107931944871210305785613826355787041949656900400657859790918948235189179132051200379233447472124812585233784629236067955957951521121000326154086256347881492534501897743522832491854061327407275608759499987450944242665607097207248337976248760144276743924055820350782701997714053087604706794182716645013332469530844488209809361313306068899848249016183803029352187162067984553759256470973089882236301501963904640515394645355070302562462641623618149365063414386544876490166936348029894759963334570897008375314877891936053939885699109962346316579653942339812160831840019674487337953316337108533997332315645968349476170108536310281208678332090490266692040653363779329061678816962429077197026928574194104385526323175081168839423021338720447076848706067325215968659132776513744125642556435550766752363762793447266341905885608714964026125568528010467531836533576296947051345606497543153042243954287670204583352634082739166732374939597648148897785872296309928442278107245074134470965981669409815220294875451168800045773054831120245031937928899575642303240033176265867419966992714920369046162762403762589197257462161147832634036361592397119740899906442436528622601456178524645545300675607861124196966969556527983315804605891268298767390119243901157390065328576354869212797681009847870057426550764370531041870208614279974508995123102677458738155632603660820015433286404836258505883848752324726589897280514460547163779722084860985333007143001877730734869574506162358315697260670110440897742798695636847264294427495955530861943644527598408786504987228886036135031187741147338070862022495524013941339584858685717960589029498272126733154717601614427073277138056766742888857673943355833129366596912423805332507098477485174241115794654769515697886241459372661664858075017358982543498907950043572476133453679567670434308754154141040037249829553408620980606465260759935853051092275260640977006921512922761171239837069025098978111639142754036543337609348904242259029757006464114454975336623930320231747972427080393651960145044725659926670312136863828103607849267290592637309965485222548184699576070522720859130994115035829842521933028396163862009740820609448921901602861875495727457972527277771497026567094042190613926157662695226406246613638649005271284481942559967961832772083695810703270639088722969760137397060382536921647367728707364751548461227932250237459957096667748157045693176076153244438265999295979492547672367535437730602117054009100269463486387637338705255462507655006958626305065787430332346441637501146810817039327210369820032718362856108079572069611962495614869290804734744015833662937289426110091381848672590202454834977824494781688203251741245669566536292114752715564902364089184762445814442927759242266249399714858596999941655981336437114207211262326360025109489339446066505142490299673316976986710711086607911930302702191668096906968524918438893837297216002703162794577030900877766650066692907288921397844130637667431098511923294600677382687037685268764644710418012804799404655008160994655833547071938363235590715165646809438963215305737279813720532677967894223364286999196042405801090058625399607156571445061713098386279112929071498370614472707577762942865307543757510889365862832091658569181351836597900819335425081603472486863230197385871864690374476999221393393276124519073776225461681806880202832140482289599393707897808780790069333701680926190308041219203491626160156441416656039095665692671231454909233998928426441151376344630881517597503681090329758550769096730681977421857826304261856774638255546992855972114594005830456567835857602891230636639764164836135931831009853532849675863316435612348453863133928770797952727148519896274527719060390183957667303746566056894639426857469326160741279690923077050274962552174652445413035071869149303215824413650422901208934635463992229673369530246874474508301181068480994358843808795212647927991648013373100790670850309380467262577963538358848046951033067509718964341685684554523142310710592930107107612746309686129542028926470987273388758977020637890055096512175324947216482373594927234435197647483767074717519342648324424763735693624955855649030267765036596814608874706789624614257112731516053696497201213696030269829538302235400339639474374750622265961245334466503153748491381294076916273066138559141266922695761381207078530261020854357758462729331556110581724150856685027786786707205726697914993118892164412793691513935753860679633792400683091947874195948097647436606331114387529310513361500974518796260899403520790704749043075157849708639585529698638995675242523403917315539384928324854145911416681042958211499432042176656208119305750733287684232189784314346942400316213655691244458949428206018455168769154124763009305692258977589382225719323140660461753674813148141799029633004785259842855942349391228028997859494168736715328428988014544993031055016594396729172750110037518933796684020206625594142394209785265289033297232007676834926038117906738691983448881075409589410609053948518671643006625732546284989665661944377623071815880408036372934164015700931495659553721206196614579873945494926078150055532548187578251470224720234894377876088289855335937360718272082273270707849796941908184787878509035475997267752659363432391262858057453866024528408131707880945298277647930152864626743854615330002088728136562166854623388523986287828180758022352349723117422911956465024476942068913017847563111924634456694834486145099180147196103932133252946393291558198801011706147848667715769037080620781815802578981444884130807653709600419994412990736575684653207453764157385598450033736199910496546459366072449947589020758160092394279096501547932378735264326697819775849875447120893595443646412144586723217885186162870662270960586729732837031116737599808762067020534924231980782486337986435059382725133203817510818452987491119649157341567692422674675061093173480391441932659757485500164598503300524345142452867003600075833313585226552911306835845892607170345673065737701397006252090742839563394215813528878355840768953507796526343830706339762929437014748308368149538382377014495409480637704009400016364450954444683864577551478498275311668079439048931802295876204721767930629834481473030430229858387723721206392813245708969815102410091559952565790388073493463742847509068261160359130302789393924469186629662704860024604579245424881442351235147078313506293400107810615631568357906263195635557304057266818394794599334235160496579902904192813362981265582464247182452943556880737181067083243777005485666074685651935178634254411499434366630694554331340948844826936612884507533054072267418996731800576345511297065856966378269641389899539922447026981869376845378280334627137792040416095051983013577976106399268833805132748758552928117969611075673694620009797553177858845779246602610442086766625897277419162972745584296262259488197281781613121617875690788181678896499654903230794861719601654871944985193042812254365043388124288730088648454631657163927758845324651063255334185470731275911652446736181376461967621033337251170771995413913321664121499266189151295410437089554259481305076230095406453717110963578694880585213152539454071922205936263663065026534088118246368701902512423969180091083977835870378364625215287035240845146248545764306638841136126195746913517676053109268012302811356978507593148492755332400179702141765080549967260036358486956402229335099074464573951721398188209305698436799339226232854284334329535361962888318086118346560071250817823276135448797822992807965337297820811344054347694307348992730361486321678444156263843132652145728860864938635418662364130850668706906816460181865096671879160389589962884992395785263333745702556254481820541262866656483740096025344838772245014019089711256741084108390449670039098632404561309032838681199623956869466892213846750287526427113505081955062464007516687949641334771661967259286557777995716355184437362585662523593732401701010304090511578957776520094670413883818054093795856976738765982707932786976182133279196122768209854401724299339169517589765150980840686133393604911812163033414464793062538102100156238634939070716352537639637231369113999300033048520653699188530008120618489143138452110698706452817548195943533107664179060750822777015657868837813755234452092322813128262403240221232750144779315781577300170028209130936611552729955959400206451568722568702295589659866277781073251084685991472133641220549362427866350803262606508077335657435866776555704666186582420895368562120007421082819746364256378304847537816101854911996503328910019897104969814533114743166263729342391169562935834859304615284250692505964508736831929889698150248880832909302178555818650451339821669756347257184250336797382823949096231335349006499998281741970422651326148448963077970123517732884741529322090884688173906223827961682946211008011082667913890699740038552869513594210297832537387507033547492229147070843828072900923883837559764639690618687478529771461993409000898732029127286305493550253501922290990676686528792776619565513198790906635734823088684480964600089065153218837813704759952769979961645279478094792907207529218588671102589378110597192254276809115838617494903153026264316177942696554895089840947537343121443059712663718949095314536610967817030339887988524725371011842931201351195618128142480397695216234674946151042741445789760364778961748547130853489625969883788996826625516177751555006189079246497518658104056017593191097409964563412892068161809530268273095382338077182676658920662138584282714576486982213849917887315997999633715087519191937117227310869227908218316099588800819070033733824671552887432452720006915977285629902609773248020916248361641928214551699958334840263732790946329649929582492329958304545614612613933956435361425911714303853152939693610957754821616154416551221896539481640635146999465892396255455669597834898604817650410852499932867064591555945476304395754023849331845725720679303971319558858333703313870541224181288316675211941785572338375815781848484060410155085225239474776422665536086205236724021048320815799413333339211346361746428285741499165051525453912638725849120265498455948673325750972821429874634132279579805078574282819347108560593850857626138234376171005721914923737337585004408432828704043439673885657136694076310135736499700402427828544963074226693841047887067443928984367650476522758478843564950980259354324853356993959863237734875272765286468740927659876237027427710229470034807641039221698130984790369620794684259330811565553924977419164459122375570471386670229441091231917022309539961752391619588652082181873070531213424010008639253366681934080824260008786063394323641162209156407380153098029771762569070882575583562626744451258517037476976024672405394626493352227971071455724443713569662189928071069573813992489953489903674623765138912299302442653232785305899254065978801456688215594666612921002931233526638599676493908642097091088689197193296515030665900189562316278381254488046161750134821257292580535657930536189442280772656463929780376737166837312644986974535127251327901822162916691016639322027808344151388408602194791097351713379673146625520274499274381312474084486237587396818720815962641118532780609142682655345005904321801558925019460004028609097918160960136951710282925049720458943161208752150960147170010198286802134598196194016722865753836147730845805986624231764224959720134623779665547411177789969889849645096855306695281921400192908684814082315806618895269949277898664087336368084344230673156092050412862957812721808198660568200192141712865933895227081500696871277864140709344222550251310834178818096803110126298515393085667457487022495197056577027211464105894213561339545998460274841019846081753621126313935495486738162655600287251432214529771146842335031486188968401454587714355948166361824449083303857868777054450921714463364381006482068822975417278759880254916688891879670039629489518636267915670480846190312456663044804042099518303782229939111081716092761039649480033467306984856362109177789891956603353696059577520678630395808357099233489963069915616128409317688170097929892563797050331948873075389356669357624222914062097079744275382929397007508225363154014608517802683229399667681711170743509852490220643314451483269848016215014079339476640902599253565039008294146770035896326880492206371761740241442228308607179463112408009553010973562974510787319091025860161744424938716182858565419845066111605856528582757563185497158439624459316450060156907657967318763440124517108889269041482975571435678689178105397785292307833064137193277050459759172416685490179889205852290720786034556707426248983908732049383139359807923270803791626923189230035405096055373297654900512765500243547527401591712674875041690375690971848073602656714500786657034508079791151585662039995986342458400930175302783207799180063992738633576967579535064431459218990854306426081774246799889474810012592994262903729958329565908962092824293131189351848235820498778051126464318091255875141769297357277425055357969774505850367180623052313585939988918906215034424898295648482692878717791697461052955992261529806851692197686630276730076463139514103744773153148964546592903876623811349427374982410450399363888574301085112804801283175029344707555068873893929820302701128358725718155571662155925970383436346963131685169544914388016526446524427897231907728062503610712618694276050342252488867136134266193080205527687169814014964355707356385613652747473091257326010221890670103621988590059659143535224517608536710381232012849068048497970077467465031425608029833632929522919501606802687067060172145280352978124964197611607018923291021091947415984077922927055489330082388047053962309942671609564980294956888292561647143985853589725621507525221878884321966447012607280129297769810671549312990161433926690433809566380078458340486775235913602068577434958400376162078348614770102415951340004646483530076346338103736132556514674796041098117359340151994449222613353541428713003277349594548859926551877056164942592311137450034068808683522545577753985559035401466674546132972378724600411887186748486448890583940177291188153543403869535529930687305759311868022863790204246546519228122975319053489623525047797348185421339803989679445482854514176733769309600586335944245722689129485660747560217136232382652127605080265640722444839217772462538635050626746401106268375277214238032830857408900279253254956709237790493925000207972119097559851070008013173522109024622066237769422524116075860973937544838598614019822633135300635455513727363990848688884527517534579578492590424370364781565809574830714431666938388359687707928437876504861433048691602144182059893891556689755087396282894197394132143399411839404027825985993869733186923648576769750467546514632987015590092916797400066767212831644165255352234895085924482113007926097982605044043867688392863500818907491737522255457989822426155968659836906587955085252884146173294836436998713457410632510517502704971952828779148552594667907121215815762961689088968522691690179789779934344482138591590509009604979505607926912525615699096963777860578955838441406349726299902808786335392841382397520077625311506156641965925900497595414513067050827584881860367807810457441595301052539360516726549962448463367839117026631542205802663848298825405873739967651945437048702672594135612071697871799867557999468251530221157785012513465808089193801151308133459126823243449573392183769482141009568779423383460353417673001778735545931357807233526273291179674119582306021199538251277563991063697688728317679937801020555439075654541400769034521492283830642002699404410258966076974209139971541854362170542576319860799168453183145030454589306056111806523469465855526648151321344611720750187942409774607315993058061722304642648078395007331733101912831086017764685783243031476433758918534873606359016102522876287870076041562707395047713250232496910004702445316360013408199720422623781640195056899167587122067709482573955210843121755058284588589882625329881358513696363773792488649810883603204658173810218229443718065870245093736893635527820747463281998980958209301488429096442070803439090282946260709712286272772190439219182968417422577251602169766489509001436625879897587035818945947830072059205753238826715476914588262759123309603535043656515101214580077508232974433885159535209479063047511097053583429809726566658985172922255934139226233105169290938067521106092239822568794827164538496273925712219530914012379385442595328132574586978648160166600433316435715924958117577262173123659653777615182010855974492929846909493379712916092302529702567957096310747177457433133322917996924394571993299330629233041813833126385985926977110708517885627774185547935145816256316781955337298508143866317398751991210060128678269813323515358235401871761808980699738020861988609982871929038822301721363393295318594608143976310231605078380613881230594394869957873872320225715285589351265806835914373974648717730375822792977758258943250253555358313986304720391248668076668590345649569801655565645043442722287988136580999836361050280510403098354483328016748281824832327591718979502279488495680787340391661359004360350876596662684482537492640628220834790662239381368436877078682703375342461972547445070743204360174322551315438553434217629361573527484070132879710657064744098614995011852435228653456583267724872097894070473343669175094403200026996178246346760265231834149853064003741324904469960416812498701293083073766851568679359118888119270981751096451080312070251468266332340040756307815487689282169966962126015158466200714587650801223806327127489979681919141951078612708108355198236368932475656900822656759269896175437890915426385080589602739717498311984402112663637202675690450849239805075899086449349873305172974164351640200579492903009571301907887699198381924025281716964555469502949563066590645085814571098837927042913020543754649801766319308841315463534316831802390889355670030766766596609740694727851144439796936799154616307298576659041592333654854550303242587013450016403704827737088667262771645025803442671097552905504804930838908125316142142155063498263834405284272104785398944805929357197782304786175370906506289202821831885453141683714992596101569890466246016839533749694148711258826015866913694240244329224812362674835913807299866203367669317899980741532647180916689402432297558669466919194166005329348934765725736973325101846115954717655475635416443701016279851567430377346111221446972283201749502705746977098810684585687503527179316487454812498278389693943339144758794656106415356068507851322464898597846437873507614150874784534484254612925432277108422166897764584879416599104423041782863931236202649862426053184487756328740702328775724849997815965387388488538036257512685550305809830780654486118509069728323762143116623181387453551302598700205539645145264774698180556297207503796983546913714054597847667522531006593816349141821701035027108610670493587128520632468529442585123405215562957590609246729846840513481253779385311386068269793397345073627364624834340492352240559313882639419160126165021544312027515156475439827938215121784867335089621057643994318376580520087550683146691518187515147484734788502993552735586741191272180574592513265543387349994595571058574096183517186895553797270894921853067414900726309905588959592492355954943286603941025190050965315945628302644053000121550175591922032577356262750196740146618418436862018235559958915151032089811329614692737258556564246534986026441304222247139362462144008226135737316307090725025999433064837691192936655782421153543704154666117611854797127917324042754066678332049784701223951471309354680680907391292133010017358512322654975499849074626730182324163251177028858833325868895480524490797229756057405317487980790998760044037308513384515820356690654794854439389913488425140804708189057645661024018798646443820069302666992081245409086905742205654304797974811977725382058970796158764010575204390571834172909119722011972747677770838969378070926689219029693787188767969180990374994902893632836459013008070470693952723028866847226680924323597059399156223405217960333664693840829436862565253093786985298302104261018983134192738607617596713991907210052781404686785882462081327430751507757563534386261748791776387379503318621798332926790131145643548683535726871763090334242449527604767056754134387446585597355936566457943956152822171808604315679286164349379261733414944265474159963109436197799495467123139033265749100504287032188663597386851774115397540936135210403376545499123397593054321029373405657051951981507159581168904750011718092860082854074064836996100600859523551610623399449409176554105111522985768920827654909803508950181514501862865572867493352165468358472180015742024072455970613438670648988499020635931005855083869078988801368614747042991520154793245423698742815268300801034872761424174472236904461067230119946880669325048413330946533065851631758127442960354185327154435855016080131480088744819673652075935999991418599366626678064135943483888202491504246905287142749515447488400930647254806877248776897689053539924379003128391520096538072017034385558798089341282086537504969433154597710484231732614647010356161710246938592493326657693941782088564794043986512119685601036289167555536957756386012802089813227090971002729242346522923296526789891734435076454745989504493228196953351453257418747461580650418173223890397966631291537777700424987754208123826306025960908521354539447101654086481467389560787290249384153640159466632825918543260879143624289788435245586928148322629633426770870725891968513033788871839066139416444235787781933294694434478328220035833941218097524311311488639589680511715885072579288589667302413006799984642159378185841786527548973954767294580622426449244091710698583665825396327532121978396856453292384782607480711081309949996886443673317083400365511116685972785899894074750904475472207187940726961508388566485757047392108188201985690722707643946857738291047688059318431605656766370026392965289729428387218187359528093878338529371376636582592393024615928124929379461798745829674846656414227609047071185892776089448792020759139305534964421354747239640553514140133020619365426531426852984602392293683897310217206367815107994122754339810866660975768553416523730899072916348282538828970543711031054298714728019312342340117307545369840443346605413746321989129407533648912226419801544997614016624776839709007243078489851221537961435929849111729219065202389071272784584031100787847544008782022314256784464055651739662608419977465708654622698390793786231769494561327050019971137120717854776647136627971351617034545824384682076686398651002204615014656949573113686556759956506363517558699022955506175434175807928730169799910353669910661843520793838056286090776322796498961696009832597214635092186002796407358246636831326998017570493364405459663263577041369077870764726307217392210426146822895735739870551360652914352309162233937179949522964322105394081974294682957999365415733274785838796691580164247347183357431521875551157086088005422820678408533564983132916435349689521602019111421219715506684672148353350316005706339214649426789803687002183820340098058684855882485971872538144041200960962228144204283923821944078292630671057691638537223248075842658747580199192590140076881643671228938954868033352956134219811389125226787764210663649707836284699004512063220281138398474507653252819959583448241686188883070012395936951089954349101406970654981306594222429659580794814913225200388030169212611104545433837519345381517082696312028523527555779942006374260933656986106094119134943922314449388259697330604009027044062188186502718112002364098583675981126127415248062673202496926671199931156837971437210021526051720437833324410774875142506736974637309296458050534778664911397253594979303340552242569288607621989653040736025013500319462039889414118960477831332720958045612889163026240879778150783055676571320739158252466942528804441934899138642661593777249570509091672749463397657169535349688938663280913657986922239747829622905682561390946132140822787498088610479148752581735205687261755588309300634096281747103584275133867014215334992687917213331482504823740771581936091633313730258261895397254882548761147535096964271567525735165274673795781339237174780704316119882128816800025262287743842376589645977229308901060888136717413564004944087564560954173270117856157458256217462860486991979276594308356281405360397364820721890340206675119869656118085214542023715729849003038805800416872700445744783124613921782422138044518315673803208865475735443307331467588769599024591759787271354068648386279375822381545703578672141110967691228312484300059981698599047188679238486658460185139114960029860867852206168674905742754598896093318434747469110905598293515600294991463019476949783152415215097358861077046060476009101436122314382080346636865927340275516941154792582270924116519858293248718640828360280949611495246241596161033038083438313089495369842631207834767907219771906865646249764710836903954444956454519821138860522148068595833187618415410672780310969144674132272025845306165114413518401211089056586924791472972059759602451432584160100435406907546495216650377605856657350585169964984833733513696964218258039574187733673446426525190220254047470967592501972819380078713388307367153697019825059160910975878636477270898690459938402636770621605685284345074498154707430678786985296324100884449522759376816844216747119193130617711551073408310195894105369391626043831877367045641950901784715432795943956338206089914314007047292726937819418761253642731244421093183616632544814956282521539249219923978472336546981563304285286148475883498074216853563397303172950832368268723245872858668638834583671339751217782479707906192070931815097628532415717133661870256422578571339527808846679989314035920990156343443571376402963180954188705545750490044139275424998292009735422634735426863199354806928634041259207290404574465410703377799498199778531478465186648921410726334141462390678539508947113958434746348267274995948062227872302313059808828358365691641957517492761875680631797865615722626397683147891744934136748003906235411256788169831899413650806524208809379745627398062478868235441720414669874225907675168023782468972468760064768086634816234900455052765892696860227063152640358340248654210152219795889792761870493840588342029096316985517436397603479288136720326241642255644135866318737398470618256286976777440790879547816209296516461983115073636715412333959873077944583247156096065581233404561196481462247172554389697301464794074313839851303058185690751022419478085764172737416960062376627734703541192401216103421265381035015080112690779181681445591880164329315442888732525927795134967986493963131962839243036329483111216818188669419108955523847867764634229332606991898679640983076015811807169891813892301764772576052006292993608801813782249788830774610147766675537251207569301523218320729590070914061389400505676143321145372311044024822329284786212593693718705552956345656578775512976804515815228687871152413002477467697478079851644190358524684178222340161267097669721284722955639735926080089609877839624876754340238890483764890566387656500035606536288278746913285561342564028990276196171517011981489612802635459612842328180953978684990260802693856820313275797441661194216226978381875773529465925598880597597272084405021267587141192000983948241390345470588764088888200556975867046195264416562143555285087658433182695542203332476235777617085462636974972669890128995513667429017862043771759365907488039721548092269388267008083894076568310567273161306935631845875416801529453129616138069502493065444270715785606047116751637333263253984103955712933167916049448384759591276735373044917223493958905485300367636668313294435859103256819920406458421873659952905182240093806921167312336950634491120516421073601166219283405881689050062780178275648131572709578363655306017261709511908044115773905117328897579903346717227599385962619296735748380655141980897712426810121520616956928100818364610627377343361563786705660265552797609344828917928726769635367883593386753046725676718093438367753314772374951766771850920665331073813851022437742211912718936013886510764600258524271321224122329247416576019250024757502659715853237263423063662602606558473386422034899921095687535254460100476671685281658314697660036109289442616730674067608974571711625165017968978472342172109514160572807309534137100141975355256438925642073849121889707912795645452365885470635853647489039911377778847447864640624387712590297496297792339317667924501167444841161337086286769445320908790090196010560061830333109289068529785902784418962522598450197764011958206054830049598111286388801501950810500203554231312015740375461335491795417269385706897110319915077442508547786906009663393213178765811324644388087288649511494656099520166224695994777372315118564519820447165555620423496234864282073808456637146903341995374470226025900268202457708788622998840561560906621654704681230535858544007576560501545861196206745605770334975431402774602250438896732912516932973334250423957031541562569822389982649274529300231860967689409583087585317745353803655433120300657788701177850945962935077027641562064794955982449915274643112439802402916471794135456047291836565570808906739367794717624214799824068087491603518914984859603732265955521846627959663546813488531468529837347591741117626372130006264728006627524990395773468036019134240789429181796800453534234453873167801739265807882126953514712610965390053638409013894319675130890133687647695640714483300447374581974614191543535974084663548703470782041553142945895207586881415973186657267174581236115304741836437090103325382223156347689602745121030376938667646850276124922087205184698483932236819882310519925667440413448788073413749626638764409036350131355042857751539037879175217721871670815248464497058344902475987913302344110055793504995098002929584348412512495142121854078056920561560787759357914028311927473819176641903867359748304266089244219363025673043037942574238140883494385455572543434420588090632749715277904951407112136704837482481462667411753379257529752428241042645327580981453084820175814098951075404669487216136307823372817460222352242581090241711845762222744708154014238003939734846962031809688608851538461000173320225580583090525162142492597124850935099083251155956008994680237365655931526324550357005704316739418898278655682115679207845754098055492874145871123963259993922114549411644104203936948481112433690048371408951498138378266479141401721058146659423778578281575223401053445848317908201867629904109647406871183506737340382031293369500864167150152958199159436131978279103429740837298154763561675694719659561119936454514364419303229981603624513739000854945672619458627336912245285342372375098809836679517652314660817708796750532676175421473734943849277107658816606905992909330779485737387400091085163741082895163566568468454654489689986588832891372055886406610696888804136464457682956634674110653535835705012585178918382097508502516708937673139313399932806864745940094678142872198008001424886399752275722460163163493934240020884734737703176622963030029275396967282492378262830981093391157475953657494648222382010363568776659115359185941246958225075165718671949512514767499070335711451832867783588134536592213133397925087757045348361621352036872758874143926285753788239434805588022783641206478125004291580863208119328814445675064198617511400629137316612417253024350512726873080541454897235155334157319328263145871802491801122288861953863641110545388472711492705583517173491596588570910986417797865029227965884663302212384045314277811216048962338235073364363340138492295522185490287504736611368145106532213794478429855058427406115374282268861179579809357826284982304368725728582798697552940708965175419113401791275142369557618490325750116062173913315773512903158350338008095180930870135830765835059362098315855575831155912035067643629043053599990992522268540594426500601262497273384685601588648150695327538970934103814943430843777304770056198585330706925078438867829445282356696991461042056085621761705756838231760831288765445874273812556165480954554894851373620449227831458776328812749403624816960249829628005605639182322766801369113517644949878433792484813178932288836319855604667912789154901457459595805201200186372422304772621201382810912269141749786949848894031298546121025176083719202797485285507206043492156716915756710822117315110035170882779625789401842424491957560993260433559704556742155963744790393611586954789532133529073448400870294599353991605893823188108040731710180791541974543623861763732326481988792226474101163698231359925075972796231169007756577935629076358164357475443085074965938626314175604089958953371705598771201396889193361570420431771209550091826969032785307926751458524337213219234285690015505993657324700995478262265408651952208632611507804743550209924657804231911118826198175563927570862853576041870984149610163821995439815047683380386502679534066423870081984990331999467882659915237454942265225096168737482790591715486270658896075711606396834883671756710708013721573752823848187409972757867823980948579120576879341719265383172720298637672507660686120986872768126879658995576826260640711052039737239693475293407740134389835334821959166982649697262512669412644345820855260638390599836823566857082555101002604781482867899506668865293542046264799872216659191835820732587787395058218741922557166360925469044045556327784746262368436596532417327573431234945324224043367398980373248089064051989477331704761757873024824935237293595786122423003880853260679457892823408108659037459578229457831804423287409754964063249501917363827978164630115887758179105079763719727191706499287525706788866611334432766813550749100422062881659856640939420780452053932881478036400611405112253671761106292622788214450667189131448011479932306165566821262900815822728319552667960608214017759556587432191112619566164747509327228525522109478897033263235067263394874591571608516834401181348240185480141561329426105818309628658157902253438587450452422022782012480831728692984720233286335464468190777395811748280064083691089072272415948891843148839019227798412675647665877166033877599202656187488299969934461244660497922373782685974018454683578159783228155057339493514264226594145875761257144254295830307790761175031755364362558794621114854382346697015420433020538078220576853877172587652666975780218819913145438541973021928766133229169539793789276872733071820009057704698589704092549096980110245575292422144914489521323505579788711725881865077302088253036660330036590028888236658207220509824275890288575416484231935894868792780838597672013668290987923877638318999521157938939083878544630707731283024571518988342474908206936748416975190392274711060123531612975946300245532820113833496802855534655823670817735443939433573339715112908614923122062185038084383726880925174268953964377784841767586183388714351745206673652760376736017464637365221433065075764499736654736530750980478002894307301474732736267040369755631978133191481662996766831333263242816459053475280771765175615088489681378617802370384978496693274828977597634047917317631203464588518778246768008576056904245169356025217496736074152075025391130346158091588744828953602935919593146251828973520064617894229102960609690651137760944484540343396530460275362148075421670801850344339384194903145374489227416570892042415863623469877502993599847457784625601614788076370885773064722337924451399871006137740573386478642836557267247313208032916065816106282598375981086968573585640700656389014172852570859745520585155502479214009620085884532840334499309308892951435267020012423824115801614363842137637819860139138336404267903080560302455679649425300169989293724255642555786196743879090134563150914338311403786265167032096358288448591180396289460135446222921816393187912458658644595791712066177787713762859565991926591759581717927940372546809391829782393443332578127871508399341451071557591530277294543039687030320987155849342931621075475085775994043100014375722660000688731030639205734217127051305278381641512038976900127569497988844637885747225665383092076294649504554366996697791780441015406739040276874643799608811898505508769480958631432113111197526868277622685728130268676843443192535963826657535276110028088254071207455419492441345849104273953177924621817521647062395314312234950373453608565709206733632444342046736586285812305692896459835380740639892055359590883871741024675911477722498732720122142682503954215590407685159155726898770313820119415170862834260059098903674591232072692146362605533109956513175504058668027996843394861544869779760431233348848525311112491589577401694015336925036255412250649136728918038351066955361803971770387262048928605660068790819424135831308976645436353188563017008217961663789587150836483752619370653610492923738124201331769365179985762565714199021529677857011940826482200387725643469463827442305623728362424787122776226886309592261924859135701723407920582777741114075536532736243872897799287818299563072756483608000961416892489508674110015996205089375675339788904196818056332917942099771496041849874408630350053485184148176438884105557646826982337037572139390297420326057834767620574939110473007957776290313485003016977666759703877780224514432783335710220745043912995848778705856943206373819247881259023056485212063272900426294317424661549088898889050149452429287800145814952832210402814232272155786343311401177742764929944446082461772566485386380810892517184629124097593043325157539100668222890395883259935898068665652289610878931118904220756961458291042678579441138155061969121953288146508547745689647985401163789807781006138236838102501891521255134842132149593950438349833724688823846525393374257319844803888238332815016995172741387835648006501700405226486987510540090584647961683320736336732154902927794125915048143156466734691017524636319956296950889682069444995976169918866537040097737177030975165591425682772295732682225408940618881406112462483516951083552527937966553454979010185086734004328653886662263430069428354661215614057640357321876734662554825396733612428462306637753428906984502105555720910427974974017706041990196855391092385128458612525725670941106445710679343599122825324355372730909354077547663025824316202859812835987248287607249647987369243671870966362867138370050033929893298606609685832746462903501842627889718098978426174577911223739396945326696622846424215091744901235054187457006524411535846071557915838603553807976792522596732755040924641477686007295271745702658896489667812118434852262183127043595574626997134808748206504873556760617746412538004374705974950356837996294168368642771666921072321422581677279332984241074060670905026343214300965230707668152603468317572405384493992145279220169702343208592536233766237220988452875435871220985399879565798271471327685005003048268281572127174898655759834139299607915213591038299674422602781332702288616161641595871048572331942709012769496149873708642682239497263235695551683519306498834188790638734665906498662600616954395947348822322941085169592595579754065201784493338242019414850764215463217805581189164221284876453138753476707965511666281463484329666030413597753374248320385267338887964050423753475103253804908111448369050500927028135573916939583177836528553715323624214767714076932529992298110840544895345125381301603809810138253431094652031295503155467067479841539428852076208234136707282063976258472102456590462067880745653680336125614311767448466150789311561739075018775489220002676247632976713231163194400193925612290306913846848033944325524986242507708573258433720849822396170017041688744478933929740713467913689927747830526272979912977345532090872496350195182942280283441788053237010251832412330428169206869020921651201508603075730138941188380479110458230234063473957663827258292721908911640513208511143398817946163101535372927488041012050901214623287364692995201726375017654528259618015915364375103803587481245266092131176312699087577608280856145556740551405560254715944392028726157021392693900029209371876651453755590556504296241778027993755905729317612074228263504695948343199963718200580908563222256343666799041511773768172377754999254748551624730673832045084016903077504887593805346078690352807952230149167997027930987695134399539756138831349762555271483257176707471947797036998099060156577985634357640216612251953545113609337561110932601515128422529978660167367882705473456685197878878569214440349392781042213819853372647692393922999184064575823309626524276216013686319168906777719100548631241059038814454734755445297407547683150394805315601607888751788775241540136994320912774695735808736747091439010257329642210298863592399138216855407435772325767802357371035510387199373244804079378612622696179440205936852492446958966367864085847411373891132371727628557134423246979616464152859409612055715471198284387542967214930677355397659416174637237129293733767749726105699349032495804165596809924903730926948314317971963614601401050954834778113770247789550719266984357707334733294124867113661068802473150829938253817406626754312608358306164676691200135478150563716696759087936095431212985311343529770240231298131230849002964317261985029241692408982460225366790864437601026756684433810662794582129570609903900650018906501401348132607029405684670539770839093189519767437991673546832262384604498214809375131792113141495583329760363510696315757779989944075039868422221747426921064067806648845509135043146882855992280559975741479019640019915755211958601101283228674672078106313898103968414701830293723605370461746044505955375254876207408676179430030066044704055793952338908657447965596604961370087649919659199242925503067763887365238304794899967878930409378913501390925216949445297716562754639130224100835962904887594566659989763420479039955771902200956286442012749459631093574945926777684601106746252921485578899891661075553591306614633701301936543401000323378236781355472777513752726606019715922657344449002763898446395438032744274473871763384062635471080509496518852083781911782860062266757476888292860800273270261678674278629194613467574614740690613722637716868311917932127502615926631805975916402685112353962651228011552213390602624221114236579137377174720961290517793538474319658244518471043505375679940251811252962320681867326279792996913773623166432935960575853018808998681819722442945673225928402760518712994300560129295072571309256650635996115764707996584158338112660101615842476661300177301225090569161461195501533841496572462478011228752246775549289504166811775177415746853593665804320631884670592267337138164026073524035335169411838549102852388191836588486393815068723216578977557326322051804824961963272538319005336822753765933444051577403772664316641573879729186236290543074010082357764056296307123639106618488198491173615808704987889173190606117184703989084680694406440687446066822935827578922301093618870134773618228985421281081443749924775280514774546220400814502877834500599414526954988616880142066499166100917304111988706352868509819033426440180890851330654808569920764206777944842534574265760121962873413795284306745871550422337781489778940349992620676457168115694518234541680866002121364994335192111472678223953807823748413697412677727999988275527274457421856204211493663832306830520016121786591024060065147846264557579251534911299813828829429366418194106585143114835340130394901517480949666958270486123277820188097184831145774207958318294250824355728975988253568002085568089717021436146570576546083119753275566961226555259274457836883456794525828790251283042853465212643986027464864668188197807019241544042923495260301748124742149682224550491400439754956109200707606940353743044196666825992501525110022031858894141711133862244136476767677385851441487555435411523703783182296706400633037335834704569802669835860985459271300482876117175632862919562681733415598778832930768395177240893427075700251398316140675429575270406804426178535182302360155546082437224835547209922130942304705446650773725870446783231357638348694049701690427605575857065498802370033451519492099624034956197101214763411152780482094688965892236423731521264997016418732249812416212069521275458313355061742176197512964605657474382217715250633829366515588233301519284686480938729886217455823383348242714666766416486958611309171458105166829108922933218024225540014487346810742573570466594333987440167546208529123009525709279500035425646890202843600104789419752672936415947540854453132478729316230920824313838196404990597000965765976461218067585553026592518690550712848354236058685210924831333786617542605186768946927562756345786988219095211989768005213004294869145038797986958345628101960860569052321194628442550094168187683495085569756726080456884222518324301355961664916538578774956912910064054939651728782796509303207333951455827027254601919799110597373403430349908787988102976984083655218973163874752800372602868662475658646673557300932692194166696785409718702346532774755925740464221303971112097377171656776183690477031485185782119458075770013967292700667687827594214380260397673873079263012607009503605910426231547212225050468851176904651925300060953308750161452359062945714749174997000741685435404287245881045970004397895915569064827697714051581418410810066166473858574059500755276361435912652440465412804489319736998203341258909867202580953120062468655032997800192245984166312124236692211951066182970138993121901557635195061049017803111361839984519625414885204422853850794013307405498127429395362108899980526075667569319415796285093735737078740332882905127978301793250887686741251206578599610989851585283991256703721335144740561606681550385581359454308280395353709847726825351047127538224148659461261001451606217669722226821174220978331995936728389747012849183976697812911012059962578701644583688711513842869079678158456483376363511014285629566618124137872071292734605385890764851678788487390278903429571260650555403419379586953557155222685136329895986481473529345923794463055703396507457114731362482889145771677616711567502613794521473484197236236578025588945792430393330314016821244598016109444637160248800300413139494280703092020330576073137637431978434729906066066956974368906030044931945015923139467343055056288403901333142719504027765575448026742915186849450114086806218089118142433138717085262681290384716586828805164275815104867842053034641789326463548605117091541879936490093415855229971001012715857827085511377521171391750885353955829839593907640507864021687624607789061643415621375518878674702569329930151915072008290593662396000209506824116040171703110368963835026924243088272908992016118047266083124658254068399576310409953322874002230980065659058281539896523677050509260084895675308086514528812672465916581068622718964519836765972950457725254931212274130458901449601666218280063903812519330485059039303646616256204999773313222730617492008661811369653050102072878742250213152080256951513327489364826322027443549503652524898802443275010075869664870350466942766367743698995976047189262268164516249146237198710540312937555476427857553947043004212217105192765051483784987956342285320821713192868244630484759340006391839203795849609298996644433826880060901364261249991790219838541668917972491246254682604584266508145018071463214528471975827787714677393319663631319058485388448263711161211483124570230731282045533896382521946535125153953854693199142635318824045104273299087395009026433066707034820490405080512485072260760307523877712244009465230609460120703340499743064621591885393175923460604375816825273913022169954359512977996622725122739542939157880353390230958442193591751038606232921835617477763646330360118976122063892356255308356588142304492969344284652664952479081713510023786240388863938712766696418656440550765795072764643661881867257775660949672091829672132314438314492771460810181360145969772448295502244003734096858965060128723813728192431469225515272196439753219191576358078846399749250576987558876649401552053395621177341646979842221072469901368905127144278325908219794968706160054391382932938639498005328029228164537214651198624256833556194279217430474992716127497490776535677046593719529161344000997627858139737783050290241711069903413442142724823253269662851275448742747919726286517057374277316995538040027609867788975990717548441288227296662875886394232453228576069665616240230490449010689658236886287461087009789280051624543560619289886143212869670888838420250993202879185560602254390109970183092950419496269942432849996701891942932096149701283626385462398248236990642659683608218125602159500973268843622136202004775458767426972032822176799955387145277402932082825494472884995996445188233523662209717232205253588246251996803166944378058054726659637641115882838801708618451878871449718345531000622811920084766707522237755880295598459136584931682749385027532189779784073664746344694326569982537282172589480765081628804626314464687290807635517316906609801387862973584990032756291028196778051236117828981880644919949168007185633615142560523397055358406162636202783890475951418654765058881079401527046310371833493143421544694219624268968976847380798822941117970811940353804570989942786816173467941132672107275498257281263997590394532644892001918805377285367778150742710450541872651536012391714384469635828695979439603227239319573342655299029903291973639826931855142757663227247250851133065405370648948603519919593026553403454566251107951249145660583356612770916717156235919958888680775088161493568155023643762882099769729798057078670381540740068746552961926553296999802715875354629842354817669909365468652421997908148102462125456087668002919760076481257776788119524317557487636550656434786916036873788560840691260943742299237737897395811263721070060781770566256174424320945769020602134505528021576335100013814529896713368039488297450591331805381095765927423266634728361862532927998724594492822391958066363182998447054477908636230341840897485816295187188896901715748027717373668054101840209471274009179325111653615602189439662893278117584740717294761952154577119310786103870801218172291562095411418706361787306894512378736799968270743010904432259060706154762738190476638967517262230843203832067546716277768026431899801122165280495004832122015380153138808287287155839077461602044187159406453370307232995519442874447949199604103143443259578071407721582300474450416995205401822555075028185670727592216003074459772424544557351465810686226129317329252619935378052331817488283400611557980673716053211258286365028139676171023431288394531056160338941438332748161701385099596296759598784669006702304830742959051620917587150151628434613439006312893233330590909926295298196170530119806557276817476969240746753834971874151501121271460100946583891942748975820927619093503625614132973594091522088922473424122493117064189487079216537327975396865689947018068612240264180378773356004547387129541823519211069804780804496632144277439074119561106512483208041655939377787969541940820274481025275582995798601204641734922178249305073407565489473900627210033847560344707593593728127730399390230789424431852980690159830065394163502250505555549172656953344099032914584721180209456938058656455589134537095159854932700894369006403049975486195985078311855450334414639471409178864056695150425673998122864374866629232234567262893390508877566146354248348239902200911967240752431676230336997375467126513867093039437460276619816591927649890410095483000540553096576669695266592969251093063255485762152927858619136660248556226524084714145887504548095048416088053553828055956774753898145599130502628200827088618984881916773219080675400695498949668621554634435989932348220148464940879408883932410128006512043288609768460901914395997422479308205801719706517827634907555649935782713671020453568111927059991775813703946825944542560915696127043318932585626846748319737725627697037040323441317205224903707797271148724974579943768700623286328813077245658308483794910075458897295270737488665989697219107264296621212240589974110160911005621861443652665812014989876641149438997710614951590039278235398800980967959735353735539116091791669637536357641270852168321226479191586561219005194678582764678062474474113512055764155932884625667428177009504117233914003778726595318201408282986035696132412363601820951334592898992320750496823417937912374350695284345157830154826260383681849352115317916442934295368358137867058349865353695818400548146515478846474162587143134777199307555346946518326692095703741011470782239731954475014371422343084744516085048412880220281001006779883743904528242403015585633708192140199459608542292514533910494840601753337119626600644248502238851341645095175944970775109000898961113212339468757930259667684414657195166825508044093646803129615726755827101279227679469277086591797403250802066362628406660088011133305782850040811073780629534188016436662071386353113846364045548801940257086692733512187618367024587150094234425525743353171313530897066876504323754597696323577594430107669231196274910113077803055383279911677189673154887315709717974324476946659500049469254646780328703511522760608604078618205544971137038022464562471303848133168371753018884975856330117594850424951405624500726317865442694408857989622396298235102566131482361368512667845336298912168349190566199250568278191465835971815135743846014000162199892041312233787697417605735724149384426550764594711380081009520785783396096597474197536983879566171287742753770252209208609437643551756823967774619113927971814992057362713714632763463482286277794254269683086612246291652074085569507912790071049872272718101758484345208365729888467015137488873447420307179999533275557822321306487796117868916495697974946242918533830972018107825168933353000914696487142129765602156820657918885692373042175343101697681546533916410705294921041887259320314107625772443044946391207241642329786465349898411077808793861138036818944161905411161009509259402425204539866645619943878978157112464249583793717246113499633649330251690120379272599671797301459397562461925892409713905949667276466730220435502761413881913639339334422294304922171504588543241826241153196640159178052573024168478403797385691212780313336237104123887400976800163007986846888154764400606694536644596210294333757436999181048097272952428201486501993316388875354554909989925640863381293296385481850935550684388739712098611415573102521492401260839438576592911472666807601462980446707150225408371611003992655936959299327808818972078909360735068956773600721356582842904395736308057995310815893196567367858029387066141563383472576551208010981309442806006814539222709375814437265965984487168333059556199960211991528371277083699198177843497266591822920504897998087352465472312518072974636168370065411514651918546223396444606907651748029852609807777854185557893802294244679218242178510220949948926018704596364943341194975622981831620598864499424431269969648037645199686122689666734278222726970038996685888620058029208186365746257377045701955939704732087136818315522957246680023504097904051725101219199067602982196401201219394898077337571978571077731450914379781801362098599372716656780669968250871855154964286708847313790741464164667389100770570064285103401799797907772150774078488058227853809623777257010423466727582617738736814495066684011690770217066890442703603563575840054996016948724466931111004832935275575646516189477327080238338412200428154337917877526078072016048526883559142159745619754882436928623366755721244820599636427298510832793364212196155026652061442323330532543204138831001141148156405380617548141131996961049772506614210929357126373033740578415019222246882955300195809271827954751096753917250203315305794100425893386742092855313961867350606069778945861855644745094707016918324955014445569507410630014454673925396393722011537347910699232396437817748589033487419810222013446049409828997727377948633079727507860382054515775832231294181829440557847016110854739410227791345674862879426318398599920520146403669176460052870528857058443453998446124347568338582675036566775137590811724987261489371706619947853832396567986142422256356623932439640090525974450044227379077426653150394002791854469103027355479204201483349239312619299554982984800828832490642774956514771945300825249851175487632048267698840419647241110279733264416948781295552323096165844118541257403592902371845686768691111039918425036638177881887718256363131308206840260956534858328851798339151563094310082202099236934575857069064682957422118255889526951091268916804951751683012322364716381610277327408769674105981797335062356266691351175963850193803628986904786253842811896450684060786472011603760224604260510897090653798175275431935202462794952468249134608264464839882439351541777998784660329790250338347814915287374562366834411305267765209236072049135697143805918972813015751625097956060839285060420784936043625360001131263438747013104566487226256846365771804265674020705501062199557608368273057274631512029745502762032857090965766696554075405265009497346620725805063382533088838762742407557300317616073928173800988364290058860398550063010128748969966912056370684198505347499291332799085689182495144417893783729766219928871403696216561212910193648416944186855765866163301640209503501886107967390641099730404316118743755046886360072365068092642550689967460448825831115435851358429177788533593068923190968368894845079434683157268654843101508224145872507698190022564992826884756935817635984640166969352574919177836931124827889433938960487612088041668997105250510478489664468508665619993287583828664868333406726188615948639867436060952187905033749831708062065073934008804050982284975283552436062999507623986068542848057237213984729920334545633884185227486782979275185997026330469318610653048451868673279757367605759140826173157629165533226521683420141365827920997551837843305052864207731015369464698419639720517241683052300228402915604964163521776290070640137242845753124802319039903126390161344656761611280205668810446823031562240805864510736362334355978924486050454569828595585136073969545958647577631977247751729377390470602871374685991210322800845173354033840245595792374369378292608937153417362823887311155540025305204149370007230146804164127840105869869805139523833431269945315100641463003736126071989230349192099588892615601281937107859456670407284879097094195265518449034572444710851213447352889877097933224121675349872875676156395095833904567483751845663892704125138820724135514590273956823173339606901728617240294502056923352323157944574241185959799263088543862530397494511236955527183425780450425935936543927841700590202336289569465830536487731135900430849689707356666262478641201738892094469354353764559337138512135742494620960265961580567769517647082422894156670388655030205036088332660357977002020670491480972118784381644972926398937546638729545789422642595254807988447918490693082787597031626342840745704393618323378269459004327738037930823589158660174404484417738305719904185217123006944974512358869159579138210975298727610236355812135143900051092556630860414925825913104090095500245529172755487817909369043299048386151635903156172873550283763515122165433458732011693468738276987135730907347591525068638442671966088415462418739010761884605580663227445848898364287194673494785582591107608254995064177928946498133883763222813132066807457085995370620831368806540164921437475296415198487805278759248892069777606262018684253581851077330573280111715402793364363077794858670226210065006399701321417100248435238359690129172907118959879948356678997986869707309730002162002340629992463742791043026898986660665274670949702428197551282815410263729300213281208405839058940985609200913981171068156440900826016044742137965795665784188050219144103766442242914013268136298818620350662519058961951075741072466060770076407762584751403567750918551074079844842314993950451253053175300087628248312435157353655492306628139169714619718633511168259033828473074688143552385512014526105372419774229919175072307209582487800982020960348460475182991172294391961312987696334581534604682053539186815809129682463682363349311341864519363661442045684858956683608308678829425021619974786746499221304144217299432713179494634291388115393057733602962522647144922949874297450821835090734372804366834659943261858229892484764500212623990322309040890088083166412542153984645059063361168558008848019974020996496770697336753234373684621146384510439493073737274867354355561464034383877556842242860205056567728349082873816382898414220787789336464318876941686509463299710749688604487746417395659626746758313549789801903961431861931076039323213734064172962212587017647867497527725170337162827798126261488312096110032868504501268572544419993212408544540821382421773687811498812998512013920137661940740243243174259804000606846451929631457316268621518358650773966747815805539611121620207868409228126142641087689137775266801877787440633527793033238298835875460708201671613586720345249329462492473874216750321801400122100765478491242368873831978112709289028953742598954716784554110336618358224478033194852974617313283105553401608160497529513733025644218145263255763959478373691987157879012212048108688259454878579963129450398953253924675303472477728265108235087885507899780806320463113204012375050620163698022791563456882232493092933499114360572056693499695834938073639218135005621292828555187927873597404772381605796905531029781756089691001702339022253178116212147435548333217409735185109415636061746428451067214464244474216139887782236003291216278668433460482517143601335860534735333641394065245758392882381828243255407791674300116936872456169044302070445977782940026839455411995828348877248827447881675762746717956486026283463441249182724452736898249361587345786221654199632645315720875171166343986216526973363667518388815967737470776500210181199185104426732995546509833039256148923784933544741566719851673108115941650393485475204172097361425526399953704291651944528219759134093322253299956214612221391058491823128997573266516823714268584776063033660141700462735658289114707841524638381730517257800585227613781853712933787927251982953129849681558683271944461250665519242889943646389794242084754140751413140906264745128288439099322200021609976895253376515144049659299379691643982930754812485576536121105067106700598785806601015353190768168656691707255285993722131505158371924179243261441800524913149208122357449825874080828612162759634477032781033793946343203822995596115346674088844758362915399163111718269362090863270265102689058011118334976637710535630208643239506437461859863027086377038866904993711668180160157003946378995172956082250253839102923569953562981715825066642314417366651839450023807123249619300171598787741257066350871511993636333678908839933822500040428227182931144059808292840675051381978041537775125561071187018264691848281470898401386779845186426636943887102837281544079212186285105471108971742269352267480085840395283379768895016258458328947121134529389060053099236616415941731141912753791768128377848626562504880235139081554601049931014605441750450050305667623669665964779045070364362311997172967044793940778678130851657645348521823352027556902891093695768529822165760410166045715771001604948943865654113003114274039171897369534965761805766626767505612127572378770365299645780838783672379318129518922062112574655744405309647401554369572867144328978875572306202509694924957566309834010995046091049609082855110812234628834194552725268271951128303017038347769577441471308790640735885437093363463650536630457974523011203546527780832944555673189488098200211054413890937380375491756428926762393553577444002351831757653787035745173759011544321662000839541833443322284343587596426898436428054826552684632212626228546108361320177202537959573932602310321753220639463300105331126099492368248687709817329632634665992863784120630269940678212468258235066198490950064547700071259933513954373540821614257069219081013850897178377006240651744996415573990479851825365194475966002172954408301444350468696195908787650708073332345375960594553721385927186375340916170582209633114452196027355507804990720529047941974002035066221284672732756621898799267910390533154483838973831119644530908785238669266809594065737340234232537026285887311076206348738320912728356262583434109717905447148968603771247994419720282008943159683364320780375834590935704235663081237494132588288411485894369223540132527638898269469199129668413659534343357022466663087403650111525529409208721542283942540718663110577952459943229945803317961916131050448095732217339599349730894058437017809674756010397909390267463462190508122746888775052119266233077387647953664080552258887634975802039354982687655410730108704460447852933689050476517731413559870718321077196496759932352340865591876123334251889336910149226567875051877888189994635944339327552942919244674313373591891257242730756266244458493892889853980516536972108347718908608747254942430060781777448443446262318509240803274926727584735062242718927892068993202983113449595920817652747002750469736058944971856440799705986014137842950412788333230093762499654908284388625908398055977070919703751546118284867586344558032014386684275692442049984420730605381398674037630752067848814668370465464396463891547668984797620465895110495971470001232781519723363091940874250176811423101549544180937365398571167024838074271882907562174456073513650667669727599996240085654098444239877546904959275354341422230118967000253023533224612302682247497434749562422750758106108029799142245896252362666569807665297469609463951769550766555303465423618214963557921509163824292945278889791269568319917615375461289138524923581041783014586326018809965717761651841581140941276382417596932094078874647828014256325924851662258086789234004746316372140053693401063642472353134022097523392779723352935734175517262311172366598504334266566257113434069870592231360585767777532214653852271715394234132157500335978351117926275162670468344769525707419104584915000711177393195769150114090813483168816687776696013370365374525673722744130886996063120642512518008950941885572820984507599002298312674771832032548820689247779457493840603331153388324144425467480699986129113118519258875702961626411140456871090091469277541109226751198426349323458473361058786327016102181869797183503376493594017188038508417245671173565046651392785511520212211048768246941258883395017086787533897819424143991075918445080039579210805012897948528254894276138529974463744342231368779203997140532406809041590710003508338129029440889343626663255382415725229341648247296741533371337472896024426383804499362605223257710864863684142141819826420497861516734069943771019086138971918735615173665188579421813548506931151918358293673125871433647368839989451495349643553907251978720961933115134181039306696261503260659658267416170880037194633533136979965751062684429962383106844089462444010713033081672351892516810152240190431190123015781568769291216042066351929478562307240069163078772154755265172128007899685112759247681811347894093263299301534502715576312928561999712805052506665144975055053543341924559264100970745348822629298815139213119611232577935271283009759261069718890729033704095493411928518216532126208852410758787092712261049015073620868645426048624118230601840267275016191825102356011287993711387030275434746598735823244512899494306594465389567943772600933998285639458623667592804742712331791899192528923288187228282101939798319366795291714770802798292564303881892279255355316112552539832672394437787820426781679897762907261885183394540986270859823876941090085660074830127920827371609560277216773488510910111516880396277298858346123872726195875101578938409890019154719651569256997667780464521894723289280289699222331800897213985125933001202708498865516324634340254466364813907047072332343346202772300143177537213234611389190009323837885705440036476009165025453470451859910455334808802081496374612207919729285453796997893369003006711808803503856255649386890810924927989565399055295749715860422375647241137873034381457390761997969962914148917517428343228151757277357927449342053443376939622096514164233776483534011732222876435354798552738569963198905243521284779287584302545676799322177131977761410098671277260841131269695928687327578187750784121861263612601096849468293593187078139075317448043335849853112468474053630970085771692707020585264901769574413791043566421838969431776886639217551356090982350658444281779531105076138044239170674213760104671486588563881289415817713876684578704231171085102148605064872683706277042724460058085444819211449676510531862974332233378535908376925487830284487930640176928852617637117968843279151135224609098606079758872162335535181006790954584495126136503809304421420699791706692314281213617260909428851735064895065340454853136054965694019575963281336481534308060199548913223777051674316550164181439314960254907753261595641385824407471070751021623821824419170440433955648053143912840193201063907230203663235012964512232226174518778114763155184209623687723791449444852320720676353544338320253791647857456877979482314651138666091722518001432072864348179269117659859195813061057655787003898803042518383482594528674796044897125858608518257696609805806710610957865950992448854686129720909319670411427768733309854095470447803233134748119721118558349268472134646374043950541768971951826853693233495375767918311210338679654771515379965034166356494911514731049836001858703233585409782209236892231595690091080960538445297515081430001121978672193692773643659038538647301664054159534740557194179337005711118079402678818746580561842531470424607523618517358759982061925568103584926341404650854360382820442446799692102784696392745056106809951820942564182160877035661964566169759515794417100267152587550172142292940200280831249147649429526192713603203564095533254495639301567508155404064337326682801220351348462778781950051827890929511115351637192435390005574229675023435086758660199929863273653321855803113384072656661479727970533142075511746677018105797953265197586654899500757913204834230173555129675862927044924585843303729599741481152891559358009844481225283373682527334033194275037874350372288422646930620745340635602364988195496595026072455339111688047020793464547156335977983514055853594043836991656881854645854086671960894812127676046952275343310219511180090830570626098073988197610934270890719272759122872681598973569285583475351078341777530504631582869265431177442538853689408310790380358165974466539492897241806402079129174815015465194804610821446377989857631640053834067549352589390508119168886025823614656560518826299014676543897239186437006241425632320713545293102384024052603923435434017253541303090000510288633465066693710862834326957032186224865578195811385199187904720351307899084465360949782547556282385293622938728937103450406092139125955477001488334682341161222339429999064955037193380488514962965851652938950367153043423364173708344677954147108834859867982476877462284752567281354655903161838762704007865978336697702006862840268293924099449050290147654562186191830159290822973680510340805084021839019651660615972666317625702419939586619856434404181055863921024871519962975320753154976849724017431160779126398492869284259618693976977186366410541376547335409794681621821505577301806519714273462112478817265421486328309793391515980375366619980652500368834810053207309992950789843902648830062493089369573159425110690379709678132713031664512079515810671818449886852218963571294605505413524557897977469025692715360500010436225684854017893947993549051260378257419251202674737351432522173795201205967227084730760076798269350630169562261493748722794818232219451792024163449141052325741643874104424295808062022786182975725636519194700234630491874848445848437462835463111823049096361658883458241437588807808912240178141447521595199882329061984731217802194502339560261617918867643737642604646742489330772583778400820939552259599481541837066095517508977056516994102721200660922343405568156120154105558247426932582884549330461758672190382035870325684462034699445701302878219074161974593496982229165500461777927108830196401931931643061198950962183231422040706511408056755110869646076854047653841886576150325872562937533503815420998066510737538514494614640198254373941112672446833422095380499375239586003968055359543466542112798101218182900192024452081378172718802150742531093909348502742923314266917309676870094661806275549599938445680728642619345121872068793980558898954513149177132418378793329588892291973645290919401536775013222268324369326383692560966325279674154016846044765503514966855611855941879048099537907499698474676364558044414387875988144908714111989860980081027178832128418818734069691516881010339508930818063909327633786406833156380726719866726716285487065708833728583536940096920781385784409915472085783346768313159652268098920905686592579079297853106830349456434641864869736798117095391903219596059724001026585468065406798717503875619427699783601045457653342368255796228971034958618626541879275490712504178970258991839706635700020041408830338042482953320917821854131516794955575629402031243008769174131506132888379205615033318527031602849611267217829395269104560377757777245558643227559319394782494608853225641135635958280625286887457843472457657640553913115452351389244400825081880101719007819713537258024517849820124067793036220077258827896598327590852762857825355922815274893587644219191080962551751656649608411039471310634045558058702821342924765311673926606103989593893449920665093227661586621694867144090454212881560246596586819636649286536686931632580692948245929483772265696183228754642028997811569729942469921243746294797826733447928858715588544400934022480831761101420455923435868146018503629058971380170635324641596499805862628208859393723263177114128380229213719907370781731684950872274235396666718244695822968414351013049383398214372939685918610223977356428333615419193876536425537275484488345133606457804290981637917872378572019944068354078473542902419155176491975201547680620262473561749064880830873377432259942608060465265520569194441338359299236429416198620233823390523370126807706513182270534850439896226014301204924900404651014635634577929525390168982902787265356557822060343055464704616375381258290317442610560955419396688719309058831622637862383274785444567305205940872288454189782611518576190885213073519978574065682890362933891490774399130708363860400031370306195484570990030880214779165983230537638630180554525851094158823547499790443418621183556544989267878897152270042301772598771656452312580787014553589832914893468075384000846354126200932789344547963006786881458555650096291716242391104143515251790945726981492937465524537413134080279669498532851425216742858700883256423037207460392595630296144499334749153739062883048141963148739427344674485374009084321752844721278590865016823014614713518677895329043788328418071203330828489572393427081834292229792129287151122165792608163264014131016416394032989985973448362594019177900382343429121704224614792468743216560830485005324411978254279123197575542492959241271017290546386632429955496154512976177243299059399866826139922744814703207068588496494450872739822706882027195439078333346821019815446272779884790349729730538358446922297175498990253091834317248290934976897844414658231477307927526420357181143732327740581332203599128488660986830775574909636978565185998575250246002160343236266663334979255394691324178688169668592063340022184577445665729815734422856830332772599463942107090828773069253544439666959164594754570410782869695622501323302744756476047309894142577997490474253123622582448753344907446760726818231144231904421252865068828812746898875293559062408798391434704403400561773407660695851461299839172987827154437826576253235973568322963379225773926665530441513771469811910732341405915101475769647987427738004195107558914424465057598782227235060196898733493948675975558635000275933007977446086931370258253627759056388126134888874876418028869869486824456612207747165860648167708165129212246415093625873838498300853654575876837682943778145127820677371853947602950317866435571760768112330325140267024186204733588924020552875059692380755879308906284796394932501905665127653613960489573030066602340521728621493664772186398049659120127344990121973919936364887148617891373682144279112596152941629334698280061788672149527669574509129475178408265997102484679687649680243549308445774331661141053304656272585938722530109781127093721722453648597733771102546504392364343004380644927040367816505120874633696540896537918234583584272767775074560162772059940216511801031768826217064737867879950407546260982609603907294856930374475265552622560464747957892205951546880915992377577506634146039136663005937286771145035808046729372423162130919007175619703646202429156015466777277107971812150013253853855265338371734499054172828706418116469513196400221287661920812838500437113636362210412438148492199168094004993039202388385646433219939306155329890636516153725365744298232602450101999824444245830494597058237953750261268121779834249263205624884529870303403770213272410775337159911951781337592213892982093303775338650940989428064776999256356058353513985413918089880520615932336905473683439399903541686583465668448838771359791578129807970715112874274027578045959194595812383475628772909633097710675290193211184103631060279376778565177540053825665010199890973050465220946328419302068959127642259862175381530058981301550944919642078912265912971670451680806752520001927774873785916962241174961254280482552479228795807155812376157135630018864950664712279398562210399921885827458796951840961584340649682151585578226426545350182819606501890927299713741888448001871932040447929347426397876173085160927690259598928095529376935064023325719628166698548135995270714730263330139783122759146940099261118350925159777286099669721634789997800446224342436799959092971556110296471285841008820459243695907929571587625864261010403319017414123026277046066287549464902948630647868054579973730771407976235045148800471011902240663372893478719931592832269424337258552261515731912986335718919729278441567043182836619657969761261931119656397395089151101252620019265657417162888153689689820008985383906332564345561583284131123478915654528165494887253629480721204907773418469052048986100012323222000361511919984526675143832933178037051653743106679494936122088600843312836117603654381384925047959306509555908813100732157708462260149840751602290515523826453721132169496356491677946675095811335364718875906904162657798037400163770785855384523476056093945412881780847940179197796964862210643630748124897326486427072574394201293447588614710461676812655540888776175529431374240753445579156331800459545428832951775095503035439203529619077774095966097613815050085331010900092464675694345868403546988812117074874638799978798023504382774909418806022458055507144541367524374615534784664728658930903777853463253722533899095362833788417703360254783644219485083943640239847710790279227929814879849234798139252775498403033209756625406509003876766063273127982586393258406845363047237867264459381569400546408581476458583233331383155898595993261588804601652725082170121416166978448940631747730720320983970534714216079675168444484577943509997873220843110021045177530251538023209039368451498565993674487294401305458764370215148623516399143556253904264751580023689741445746127352478665025587819679944666729309917198967413428990760461856645712578296832416543756847967183534194826937669378597882557561941806357223070082358624127169938469686052018827668123042711782076942131441874836938982601953296273388132634500492399071973504007206912537796082451974703345470501885288268408315468927522496217991975110020377750031740273635358122635796388875335367287166435527434953935178984349519721207251146900947295080339259460036390492371087213733414471467085774957952518691446393675043586730959471262971221479555438269736336929772521030514247345841925593530095164775007680787344116046455699120860257694430612649489165083731264398790090117948018172207687399011079820806567791366319740001737282876773123081390297680027798362504195034306601022054459194293414262201679430414254949169593195746679630125205602759426746070158509110472345141511543807983932974296705434155795587097878459267613927917865282071116059747380903625272720315805234077488125287522661847824220796637950264082659707911708986552205909995939454744361688339131796458436307488882972464204222096298051442768628008204515344833857647061956495123864342797694742672921354767860673171005171094481807241582341280438091230850803532343609712121143214336437115956298983280932015312404851883882041462484262510573358576432354107381256646966105462718345566262674130540676454790943244343236441700338848124023161588392066468666399093088323160114741732052112600048271951145783131043617611386076154481290475958757661746529902278639294733951487293107148599731709412596994833132520288883527682727948146208323420604536493700175580258192323843483257384057219046051752213820058481473819960731101513793213646553227037829792185252761444381190218870781291535583566853964330871184092003401941339680796588463940131946289499387868052211538620785805527291945037422696665897411651594708329471760839598307772881545987484959127048350593873902201580930078901825487329036871773694996939087149248604206325342329545859772464564748758587158761523131694690396402471989936685009325695783778767400526228741309246872079837643700938767724423530242787199593121609301674356937737316062876170799442594905664437676208574370860285537243912422492909032318001781259929834932751848556717129689084523755385011396400850279378220492201560104101226529496765529322387900729799990516129589072586000791577276877782269881438858028280204278303908596101537671534642201355478284055349617447474960834408085198594929387207921889330504870828394569058048423123915600146888137650715091994939815937497776374837615102013060013755559065375719011337985716749585865196551574943512746511781329707565493813468489904147190671604309463202887674381203802369050974064615294048395053180166651159688180783075835321702443544369187837739726589487005158392161621478201516478004807532735072812512514332353313595167316393624428539525624518436622660189124216285987207221717229255676177858175574899327588918201037186519990554584513221295799270475796044752643681040585944457246467960643832887238097244791234633236764681231066549961181726427118840603771858670124314647739868796358718068046217184753795496054238340900611075173298414124630387769992042590317052432384375429607690140953556069136911578249439040226008697580468464489069626228693614832196474010492208921094460751557237024728157410141970384422859310502501140246127496483555702346985629328466011999136088192554378385132093673173060547449825263188427431909309765359915991835391871593246344772576435795704152748750828244112416324729142700109196860965741095016347442038433477487136623272563741445480184135170061048279632985130496934845706586746244681379551378174253832016232291980942871378666699418004719128303312750456659996558685064867111775806361361141530355032143358974591485614106312307529059814682236938906965132677680402967130396545831307992515467677174466872706542197987342064785148791600901299853097638432603077550875377416029738726737841486023711305168157089919604058803369762993737580970958371982256094368956804531524332848253226191314353560738751254531652869032940913635684375321991361329159419459231873713847739023818661014557029186338608706651787489258993163782623263268216575776287249637122183459066503872098326836522720398768516390317798797694037760806637583971631401494194909968418082481305710943400054413553231006325491861385205531403967057895187722689823934597752433582437955218345573133595095568520052064325482810345366720483683154436994785133595415782500088596779448564407747363444779884595020231573276998008095251351664598309521066997070627438505702204683677923120232544847835804101580469003038397071577963078637001512932154084315058599932746036925303406130688795491349153361430622013513836746994451092622205725145034786832083655712750073850020389567271129085591394678497354368156927415293407540349358928914595854009856386975918074519908900445644476399398026301014072306667363090897236397987339890691487062328121799723161395761167916037589538242572857761226461135560097988777858040431061375705724601047413702068465961566485400764183928916901008312293576331319141699077366471600221223349650551197757963481038214286952943972532544978946655066916711768936942375034233611288389662753033340335716834482878483785411504944521830959122037070027682005352207457194528752400945833714226526507426038900220683283274962041765157463344395057527168668351247108538936547434065407578567789418522378039917823555743935826860340985073201659930991352165943212677013119423607152624148798739633814248931840629628702496552633253647545615994305804565667839079571466474302104400949991836539376709650705841691555127133308059782941891502627127162571982573347597733890733098107516305580754231461326126824677766552101966987140206650254720931849012327001984282719655696619025717261651357349707014127090135379295271282007123512763977195068045617584355006665288316701306451946798947251530568895420720914608921315631944467432203318896736941429196666831861126093883944855794857987584507211111498684108021928746898630746069596639732291666452831433377333597009835350299560358944308705665444358247454449531430218627980926530468691796930568464567076291571580816216084711601018775657545976575996844155333789763256921518943636793922521550402954129971732673832658601319679047784972829169047165620688390583559819640339686215767946900030665113541447142106274782644473231051337481541852327990918877303655785266197531086916072699824614545091844216251029901813369612664836565708616803396122272279520587270941337897846904427507374563613644496900655170396334636575116469458113917656345701315158488521360003256412570946081037086625979624418589476620585627565355561468431820252380815184398508999463014471312295539605271308156476941363160517236002999048260082858765795605808791804258808794225501503431942197458165318244626220558535422344206538241600456335664290735501026114825065005803533733935827542471280480273506628054499420862021187299472523186439710154853224296636122159177985268943980213803651239794512403233694097188111560270630137144415022204901762614510970000923566102371208139932104610864153645497805820168343574971384197801010260174253830930746817753754438050380409165581107244842143311713189487883944361215720354859276925344361649143409907962290133107473243977143105634507527633391066511721325533635714963799149098923359994199966027083375844143260965014865570850352556679014084017293962763495744410787771619085713375244269041409384071406578006361831322353020558323959290521858948255827279403443490318216037057956638878223416359995343829428128283724553067080740613187435952592054328639322964476258929739621800498157619829510039500976174517150877394662686402342697226381503830943038805967565214860223448550248822204891792498888872604425471772439813859657695098814042561680283156864044866104250896518181425858088688693050072627683195057149508243174762167286358387470633185348101679836420520345471303420510734106200240179101385052772168088364568262776265260290065525724464563320752559140470678101425497784962744463374816522685953713418866676335954876073249299259111078473340806983784017456931370599812867225210281995159443792758272622687149532990413928689154775865675479438840092408123709667213359125944787768898850298762752639111853344542550415637860984841759769805326266074406179087716914522621159231867729661321848099562076932893180123060568792427893946062435532762851183612083609597507529051700012942190862076726750515214179725172574042087935280705261268913395957047789399802985549266851197086254466846524477309414623718569590764045723747305831509818295575010932323343573405126205357433457894704141835610804216395615832433392747910920490538773189207686808263270223569230518597956580607956209572741850397876652678984393944726781646601333744797131812752870098417002484017790557123850246610558658644335190521894075913963472432192309096425803659123384719233858175809031190137313617443196962217590133219583596698199661423836988165211441812138104830544668396619928966040952899694021848406312742590859789337901440626431276271561804201702194894885020692555141893150187373679246751838895956042695870856314989406406282610457922838374421262404515105279245221770912993297786340101229024998670864850673642301807018195973511003403667080245740874794723634578168122643089662270499289142959006414333511857558514307326569956611636296029786429987577430279031336948346722302371048677137645816223959982484582966613072953712266911786138296906733280016911205285057953262375570581645676437997489344793447925169870538556083369537030345576883311347201181801183262290171616627364829882052810804071260632565864989808560107442129790063925832878213148370873483536874982927248557779777436266212138413315771067863342049435387962169726234064203250844133127258908092146649940037348373686929223270877360744964704943265953300480993302773096219054668547319217944805035164618094561857319810098808280509030758493381142617941184246537083932908102615924200608945850166223130407853726685914101846352479328529365093221991517709400929027036813274444995655966215791576623268501280786538903225097659498730406272535032779629770106098619437064047856765918132083597594598035408129752763025795177033171537489512172384764421691720689654714653660476010498847969581041893498528306960627763715198282633761137652231607364185470545196628784727579996067050244596421902596132121342509154166638749958632123142969175665597497093759035751905722660788718610173406948883793959246672363485109775018155293012079344906581527847550121303899988333215773193380221961791708426165718668605208735652795106885747331695401898417580045050774467296930939878367124913716976371647137081860364988800667458471752134429792057074615601534967929052348430507192686787154051898345888791432400651036492752243170487772115169504060316773017089635153472215024931950029230287717983446054114810752945636930652258392294745874879989560530821395113078525570581406860473937129335916447695819016742642354125894589963520247480190479660520347759707792876376135959379801691601963396646445910651350889256360174465370939541310062682688245766136204295527006111068887224985426400366527168221168039539737557591618835057781123152498993254173795694389525458983277005917109468130736396332856479926346890250518674156041286577639353564098440257203874872154309628397281239528892563126204498864392905915449768267286345031001195068746720375614581327180144496617273205619765907940928404162383143075741456891985311899256262558399207094717292571209238906816239662730562549565548030282892883001877998018261329169070804368110342244432748484774464473625577773560173628009743388174548289428391633485764681798683318261494408775096650140345416542588914087599949185778102429175927191569827398002747218090938905317170916378461993300840524897302107653225444569758348490959038697283672123533970452544926353164408681568623082794854804023113032702657366876743830722664009680298496767957889314616820797821881107093348406152572115118763324787102426962472236627150378901138276428154953911714914064150328319033297030971343117927887472431118881682118302322524961150798077889672762819762401888413149086352281084298218758547284071937740023734953964582634127764249215290409383117482681419544789404728855305593442427217555313169701685568127453855039377670544086727815592489224243553111128915649062099026082238696259746385778881063844147655671921682005090671311601392230750711084084647048106581130188264750871031274290603762227967904736152699798502152800814974244593216168445971497370162306419739866168436221720128009029470548198999844290496002847865460057003600242582377527205300135397360909278861008851955552773639589392618727047038018903977885405192815328890326075626747905662250090945419105346543102816558339389020611412413599170615229839035615025086004693818464064687029089773156677541764459630316324495470335353933412646755428530107471418817139242926700450824752155880135042188409429306333013034242581059141991986389501205745769372459033504612633849518580738263229609422086899892990468973475407350412275932143782804497692985528863171515839525168340870682879060967319995160472385144822862073510759622360875903650263920738626643741926663489488667384974914478570569722818084274823263084588626519373298838375990828575512366646406271264600010057325433290939122897379517129568988079466033268631240592463362498608432567148543823877366114610712012723721290275161367097362967407196144650810733052018849417650144517630912039291649608494656656010650668133635751265469217866259491814513963640438163245483204892006220789608102154825729031456832615228477119155104123437199089189653410187351360376424472003281778306038965484697539575758191445798366473300399831052987647087802540253490938060445893384742032147461060242094974111375590883578449174015924627241724810920460576740156791687820113081582352077331647614710903156238620003531050318778547795588047348369680696639385787751891571816160693941175238953820144659045037507818556934203317519179659525135927200826263555657887042678282447280164985852688899242282856837896584499243384761111290426548502805163253804538502010214608796001188303935071479532945373403457141431144759144363019559427321008734839612864612928793125375207272347506449808019164999835474544318505352708024005671348032245581763819337167754164454969377038326791639399983412339118049215230274475241262123383668542955954153735650711171019142771389158867805223153238623012762873356815659784957714168488571956023610945571637255302119776084157522364998099127071618620905318713163831512032318009476335837591597229962277159908991679499649023163230718888109125331336361443740040582749786673626957771125650601733668173827521807830645223197242765364853378566989652219116640571456633841718416826098616679728270960178566835809505347330819528489101091181148515174822622117371217730576103552730630841732881598546794587719497128988100931357662741074691742458674656760878381665759850496807942344743212510231678168181171169566910319792961501867865346755105514790386629389919964325723348698221508840365054364635027628304505628485774708520681340552462321561116154279067227568989302359574092005827981328052470887319881513071609127826750460986771238317982922324261696655692033301061727482067813655560219564968979073737662323789669870909266579034967049061011258660438608869525595539424301742990910743701541540122205737890943125050951678526744711560028744199737024616482089751648322610454543807041292691437895160531743075402155089964964190070554518895215496563693195769219813709631139675218568575047064949272769928090602722274037171092644613360124948462927702555015826583821934028901168615328411052543055687470596495840168715966192713270043517269257787358645302331662744845179490871371825783642067005906791437396909760043359502602231903624776787830008849603737222837917925462087558634551848568322373112785730428283763116311312906879954026079521342421718967534424718673591789297025969039075830492234967619438628443939140639620438758594550747516406585379818403849330042541823701595869145944781098110606846056646871357495492930001527002458043157389522382045059705450563430886422877570657447989056604242236595032028843729266916119003711267291996037394863215428770019586785734690373235576461414314574366348678565427226655384162467258167708418265106952928817504812967631321209036593801731307504349381827684753524096077177723157190284637689973128348237376634775200941678654217474309099345955337267308111049078031393559154109467154833462445207096436154784869355077010087213653539344037943820258717348183581904616893012048380270148135329380082818379273477330864283570599862317708816426616934128281017114633967594272536277867323423811997997793712810989645528629648285300730780953676707336804803749354205130675781201550684910617261991008798856256103071285751723404473964943178675859066780569161072659002635425193559172457823429119086617255060381852023965458307071985984135334457698984389115319036977786233811936983797419293697967128833847782901817392383434599332929912381879808697128411930318576725986560451856108313651760414672458859686814125410997338006277971353833083276537669708557769319378838434669723618374106432451761196853952996987705857045093237956807180144068157385824864736142575367733196605765218469335154660240903790917603464133284311316261386922805148578146939807088516551311368972142833122796927929163910360287410750405414844180170555321715824237885847241603960976901682850927699160561067751350111222702278107312180743562582469816284556850030107901639151903312981905886233955503815758491460712057617090154119290512000595984087867272505148309959021496741828993864836238327658840558283494259474014314543143106994274331246255326653220776245158712146214344305071738810363125785416052576155964650698717206305585947832377803016589747474194435583423875606352242175245363281451034811759889463998289175530420482388110075322028708483832342200529687799245871694410053797808936553786996572352248969955262885922886653375670727587175490765830242069923276066893607616266828127388576721376479086855841360921264448428853003633334242486654567788410533320414883233949635714082188995142360321204707320387739087401326531078969723112383013746632589427122272538358389150051597827916754368918452222165123949109538551803429289340250529010535010700321926335769263215878930176868376188615613467186751275469022571531247568401888064280324083058917551686773849848891682081782458106812816964624565428817490885200979550816808566818267556130949623190696148038794120744823084674464598650621126010157701720439465789406463578467263340964555916993210454758343395957602273021122156044082705631725393631762808158587246861245570271240326837099955286919016723713151713096830300083444767620544594515417892176987318719214249485898284258052882695651874008834099371237472714171821241232523445720740167787468273101350419345212154234071403882535871075805740362126772673839768934829245491527859436420033733052572506717574626813364127930885024210418699829531579188968924771948420032410014380576162222104829706960516660036595078637703884807130623253303340383974320229091758692433991976713770103261396088171038556611937460770186307581562160938162472026079517492526137162332882213433855205967371715014804057899452619664567410862407351484247660535395436623884035298315394392971633554987428295976417193871638098977698336818514568896814298033370711721409604661582440092905550676568218845219474718717154015291682992018413681464011671140614617768950190638089483873968070696320085373078860172517096315579491105284707046315980177127462603357375262481956704462556190263975960594003282994807431454761034436538079720276148600749282893102576544631460133933027176374156664170723175329647713082729852511644232127161323608288689788113933143193652038953309045383798889171029295443262501775848499985581855484162480845396771709026351598674731156004806334188831284648227655903278644653639413862214007419411306093702189018929168682226798826697275487371118056470761051169061840139347549923508111715875722491098692970799551582480859997587846793696458903479901922949277490262420573388127672421051179300437941946219000469490684036214585215433134869138373007331596594534033882325574174613521177663092098778397311298189004378855731921350208745447884881601593220884751485529789805208641061840458052890388957445904593053250191119439209461887283626286653468173787549597323471692049812659915432403538725812593977447057933616889564374887529193814179563757832995719133207936621214906420718003037179638753557055992417253437147110564365806396496197105369494613258821720718282814962269484968082992667561793083648766239714470815396270401089299276038299133435707236491899482670839834554180373049416793531077132500973770630922599478516232309174834904571558112538369741779744314902287343738479385615296289284355854570591738225003514367827183802724133726649917163055248900660641179597869942795607610201993348291748082261351747151915894995027770322729222797341267812645730115992075194737954138794221045043660905928028253203816865722130372036297296393018192739986765229808126002824686799406784080117993656441298240704997624569874911171064513787476363191257027665146306392113729872651866145402004464251344503042839276874896407580360471517217087293922787005628352304647033832287906965650089050425005185776768476937032578666481336284517424545117860300658548206752305485718134245040883371213260500738123268298864400490764466076529528401912668199195909933732297599368949382612528418564367774538560319894176458659170033866958010917241464818154167186265749785098171221890061701028835310340597778425384049704405922414262877043701581285333190616967382228835001352270125842921222079716242622891747063495294305823834687726298710451670179143046477493045669215118149990414572016433364926434374682871747977399151760380677951604034510304084539067158621486323381061355503204202275033034363664405732450441740313631959096391117858316568842100302881095539840374057347971914738462935133523154309089538572038277697700673955765988234732731180920669713987491707803117311249896661883581809252707098610888938660096368296987830060066347730923970773675008463200389854764785815017316142051490224317861955247035128539724852860838241339446629540765965122255375947579546848096061960749470622975690292933461290034993690901390952648945635630871088253161630339894973761790300933582818002263568872365495390182065468622223450454404000039360660325230556066661977187057563378788055429465857050516296445061124654056665930329801259012107440110021263212359633051211647437882134350305193326416275766378807439611828244899982937270294340133308754545147303628992095919896950286298784275504455006159918266461665029812118917950661162132907323108775340122155482853294267060124806224414443240282686899266126393232845780452102110191144201882886198324296487895169258676248572950565635191079855115735763396979747346676826010219931363223715081794652616047907665171280681962636031415233853073684158743548402329355515116816022737228990727055639466691375474612382712651885948910197895267132634108995332993573760861344316803786582268037292064112514433024963749168956417590330042600074624081078467497889681529014869815881566993193880596026485407021319356461089358572232683613126981680385673708977902268068228220033735976971758014292604641177650229807466079560656556750088281378781965784893020780444169403072215562574976420642729739641795786629186444841001298949879999541692024253903093201519127141899035860293178640690305963979770319795877252518078400476868874954550450355188943918092761669705779424396662577960469478622862796589324729978142766236000138488499129730884881904662619281060823916310743776469781404968197151068739311117652655747753286498837120610808656401123303756753842923341008534158533982701100287291633991161756224952126747644989295053179631327310195263135836713340881577320966468999400608096088024286084695997552580657914320479867213177906320402650010440724086786639098506589144122427869738101107279831696303419581071685692498302329934216162414564658793135243361326284909054325323809354995274490025486448995378332336179553304613964335256461043531982543385656564313930305110036829865825554003519342798661672381565401683719220651450578855976850639719781444968848963847397408320332842850180528431004436827625377134988545361718709416982296395482042179740013819448657822307634021890665370305777160553778459950504327858932262896858966100818569377414468561231590382761419329348599596739329419878341387850032762203400437279837501607888718480144509319619384113418888535036487635389350365941267405559456050048882833537815108819720323665799318172818255828040151736644523402256874683324571898061399548151785394243191652830176058390352864105937424652310445485561958488555933933714449990268192116268427185018035437989996939860396663954550679173048317857197638435076856722322910484438980769630814783424141767084668345822657984137081826150636314997507766435026430557780083842891587768608541076449988431428386701513076617770246086236632907855055880930954607552471302196474816271065784412568501100931191768637300864410152521501276543986131076164062587665865077763503717057738159214419815495321410795567513729430340169585333463039633309582819236013958685014723338968878497908290677940030892686924543246556346192025401761637410869388992884257776762390806949346482669878445552676991766313455947531203725806990939907017597075362138154931896369355874303703571704880769422549205004661566146326647479872821772620816839952607884158979902859122507647429563253202296057461606677194103567882841400403340064068543222611822173087456067909429556816478593248560113632399440690253667299261843719589994989668702433924486477339141263051215306460290427040537366186628522106967487525093651781798963747518257103438709585826689719815994352796754349244785366548663971995514529851831710487605723784283125026099022288726426655173468230603596709502936589542132151814730701256747493496738222502572177495283526683606017078595946170762063784502143739862471131593368047882279017810140674753535556620562518032196594743584331332926016899705259838090666578913054249634977485699777594935944952824929958997708928691076833695322669498494431744287245118754141066715768303858672600060125364177607215913877714346662686068903057440861882482757055906156654357868264856270942876243513200386413123347122536041770814895546790290741310122616288246642720498119419614636596213968957590284024978844473849806656175629276480625105938395618851317009027147474030115806895853978969892593708423299447984726692936367136192696076807917120944545374794859418154404107323790130471181131656470436640928985568204575577728244721816114783991759837427650134643879762212799969694137481531526773112388746634628457044354890769810646689897827003794878244482704099871425362972843916611310444843226861549234117195586966701341881662056727987087012384377223196372516235567042712561145347959059299443328727578359367638220040524844294513132061167592031773102840879763517167694851453608436587659177765119937003813127172764463573625622286216726825244143910610551633581629942796427520759785751123758833018327059586708569110244037356964644758514617471530771148053388092004105226935536853531650607679326596620132459532550998626233480870153551390595127089629323832087498442613710864192757587914787933039710304334222889248155039590908324171979993485420343364294878038517112604749745294431634676971102137023205938879669429278525287529156474044360392269114674325140362055258299457795240856397077993408397116092017822154595633179933186278891098655005080503787864329422374504254993223528735351384883596781121794411848469690931573105472092906787867635725644787955495748906088563627623285500007652997133361750668168119573945248474744450166602024732723786675075280872746384408150238094887938668604991478832071109245962893605608671967726515514125894737257688098260306424745662241096621996676255428527078847439333922248950332146051457914534691617714554657631079946103323072097871879631224115140340080008329645459820245575839793713468355268309452799978576455005807155934039976762614963305988713188051557283600490643619469307548215098543233938848005850103157060374234046818171756434184637931005045682726550450625636685704565847604410325261709480095251414294517125202219558206891969826774287418816949988955284032493630238594867439252165678303946125868643641200805440631683908189310992086420638657284197368316486854024606280323800644660179905815226169198757488739996897475957710342680572318825022691198705569319052122051494349386516148556664332246504037864586220066928801687061315958778218279039318009186937665637211454474870536800813145229563331677798539834900009904537296266453719135534097113626483445951403001146028078241202327914248340878221875097998907531843092263368472488228352836358014796378919736852215028600400826898211071222793025378345661789297574942552797495636044308095809833664703872140142235552929214499420407738813667213980970924599873249632998328667159061034155477253728767929750300876918575055948368907347559145967772642309642316367163962454539604335541905000005428677725563725878923442044669360700114265570138631650270052199926787614451285599008926440719745236593457868313939336754826070140993669072979068961490170114885547832302019848162211363992534467088660901959799992622985260153673838307476053209907386405759969322498448684995355072640345803860815466189166854638694122692204892950269653268452928948009128554244276865911004967778863993735966189165402715711589729717566154140182667619348178738600325300488971689176426665726829737030278518970991402870847644526819031437593879795811735861564391459069179349100914849412753774283342049140046164238545484806293513716085479346055151695668861085449694410492789921830154516962639523194433613443689968479271422773095026682152052779447665211830948907906824413791737362516318295380397652525747952549348803465943831548880106226015512238301885511849209990284791516057480399760336878462243724576499592556832107449425020337416498836951065426070350080583707065799454267436665686342156626886175379262500049045490882790324747043959507527632100316479920036572118080614497867694613657220553640644826622030143312751936213610979872506441803206618325446676068650311819333999661966504687887309681575605605055306985320888260261991996292139988506694841421628018709935129056038521735502559115816675817670978878838846544053669772093579795002190978499951079251827684553832382988149669174387596310888008853814481175555212399503975365885370602977260229049949726607333906559760719028598697658252138666927039448878961389791148989666910052912865949752963334125336556006852316246730096725378926331774081095834027697843271547941555662093127298462810879565795305197216471275827146301220761239515499109416462535305761364850895147868527383761750350684914347379920765135402645020398139504263745109187630766365710814824874713850946540765291054782185361385313816977397563296242810145090686195864872730833367347817356226080419382256537375767505951274729763896723804679122252158544782310913111603592712219206593673670791275548966355570922252837162439006063079777389329671416276489957643748162359194792252470643997617858903597298125173171067202259216476585835612113902080765398687759914431438512672455645835393134271517920968627828239216605575511520852572094715810495487054780935681329085674901732839621694342316783536392969456996941763680305968045165544401189625364960035360519008394593595243125464869787698995293722353431675849997684088458191019302381180141381661179755370463283171579201872592868622198846528514846503659777336415714907008033020255623548697377269318077643318491076403830411495566899748577936407833256964252120990239910569150585599422220549150471848417773707630276100562952331033689731077329234359000889034875232655037340176003463432812673149322281272919450802133556129703698220160696310874323032585223465669188825720534650525926767714294224065548339902344779412194357809688231697280795466654773654892329309321505899355439799646347350751866197220604343243691837314301208151269797087174048223622770197282331875666155184058726574159448765535783119469563719406882466412595445979919735507601990476658583711584917073254591372446248817159527082537666858268484272108566894533986067101735545533123762062537139599903868212475969786464002377830250260394212526809362462052759837592575090819171806689463872965032176658329084396100894975962310676934977637996313071386831768896931828128549590185868897363789602948391329444971015351910261987188398581295143415372579953368929647868400443533003612224302646184073842209162954973002111005631548707378737532539695442505213307156835090143629635567945721284353634122677468378120256264099196935128792075177488058574882098330671259452586879505431834612054924836063594844613512046800791308201502560264754094783821682904857020312074113110113903856195583014026544933741522445680629162460681273378360912207393117262645610287008543149534061251257173903464466438463239711992191930951431928395064185357954555258312615694805937133222726243767059503513438397776582034125708253819445647338296203155830114059421496592447986453786391758135214563149755781449705645007146684813860009423788003074864280687414564736505363620623631807577500577145942332248266650388413345722404786955293477941720798999091520755031058558759528965243037725702656557747634922006183147611515394648444398569547642341467542878899455827707117189422182971313554889586948825975689429505262771731759438703096428415356983866779313822762410843890300405251962183848603904628941816037733284295538299988955323117398025098849770668318128301312539094180918215290414191750083194764496739187239509102069772396538695694808276689246929950406396193173989741701842549887682280492325119646845300632795262784084550114936812058793095032350127304225751192819445319813070620730741291486296818250106672716241262191990006818842193223204620594751197826895675339719093243728891746258555962285640728300155069420825547805843842029315038869905953636183151942083781983435492966874603593674464198465180854190590069679411577264157228425311287001343852146904848008061263246199193507002037499240063549555877214317931556708598526088195127922680793740318432568355536030551672325975628593360372153972884302529097858269368436696474783616306749576063836782086064941950869220395506419260483201045093433033618775052964031099436296832009623674963875774044084246549009284004261774667852324559848505179970745334634156985353509085460406094325555074967694885112515323286709788889159950640563894885181656876121700759464932510523368749574160738497062916973006257309729943014403568132019527034916951951787110401132023846294678288702455278480658394524496421578040382811066755108976363929452078845413693301245550349933769572691331401810686909568634742121193108308571276416504516781263683575219418527580857976876220466365201216088990396230817897994492766493774659509789555671637007662218717801985043148908154073622271696278983610794496349527738291590872422358686684087530554512414400434621521315821433530022428067699522414627610833618322766057199205268948074437135282935420078657348003482499050585147589709590318635344055312581657395735267669149223153943877318399696620720036710209646126402694284180306966104301732868519568099589280186164111053832049895942939260138381319727423671263986250452292947693458879202225890926488613201612072304216795847444673931364434421904314431046589998614399911427198045008755469503608340624431993522118620677803221086484418360231896158241323523673169712234316695581643425601973761591272681072229527712186848999924919910580531849533685493877532600834904495448969679988245180030889423920690281999391813616784914364092391085623723641161485997998441097285310075757401716537352219481080732561713366346060847299702370186834492539832713359052122841259405983822231498945304240899869009113747095817160731097536635547034619246138828841906551672168371121930920685894007614857386099861849101253092869460481050146691312925142299409362730817128011303589170152478510996727816025959371619180588328887864817508768920244094628984745275953481861072936558692971082490857802938290447979051219029454393821803766269833873511603904457509820997627962389657091592541550509961243024165297277188632382301960699334742735074353534537582020587547359036364861718626058392139454074586488524616527569797371870822657750003462544738212328389488275308703379796759503253933694053867092433068338835393251296183532950538640053133163097926892735622895466472476457196646153014812812249595685893890911128257589030894598815626775835392456133160354442221604432359034898930650581861882361827532522057597279643642824091686977251218896176203973897890554077609057430244109889531527794534782731289310063653565909811317474397946329125197872788091851743638042810119234035564961936811408160068549719128926066919095437594358135904635742283371675197695457755755064438267014086925432367383743124368654608513301744632876106842685812339316023950930563365423108588808711469979560395615520072743439072443044416428928903370715268188370727605060676029519589778556819811330483542042504183208665048267853848371547855326038871128225967529582994627489531173695953183107319632262171548729664365408465091768594748543765056517863169057667837830194265582572812335003895230823941833156454810230360965960653771679668550211741358578710558883945535362070350412825774397290853678058305449191306196407284503776954445547553938146236317917559502792258341764834851736878960668373917511243980526256167666257306760525670434511038355916138752862585912056066582105031911623597645630316812391675211319050151936010567598174094734643069670773693121878529158185134853560952727769574073385304464611886575851403689598703918772687572234233706057461837030886020610774127041730470647881420483545336197108996562612071759168919217870561033297033026237938438168440094953892134477057474533649665669840610601124404826748623406242086256013694739199829392170421058477856053009483481251082952335240673191434798564618305331976143058782002742470289844394115804457230491930753022456922124678253823203107310752037979470212547770769310046138382161719267048647637233208759532968291843077132413581340176614336700713185823984567400534187557535320581006739922435174876796841774903354777995989586244242243620621185245920309492676856355428966908782496208346992778759236697936142360775745281064711826122081488141254975497608129186086645179047894725127967540234338136293070617457914400006274405083047705776650720154940948114816612167524185691659401470756781657119150545969742498309569890588297635512027040450844507830976728987642741293005002405727089408218637316810491288275055991152184015924289174222593829195722647582505262976931687533394944041325068633377816837312949440894307283163680444140946421300981155932219077992867083297697556738934890384232661695888702533048727217489899431942711069907657133541442871090790458364227260393438375976496721379199652652552550772901887433919477640236717833367310165658423140022737468566093481025440836690236033364768271656437738445893144026473182866817109834492187151091194741891800709005737524959266812200581294423523014562641179565470079255399320224271093189941371817820140122992422674265879434657031076317459674201986124637037765054856336129465077991736701291590734734180301367784343568228290640140941486144869448495572538033312134266162880977726593296257681985607151424308331247591862574808723130171919280366478811806101722707103250194290401275098138446691968225357464542106940971568309279856098990003954627411852231289681389259181920400529726592026302918349177209339464746884950693536273518600745393958918702530954830995645976049067555208689311318675297348951177203935644183448620397436217084588741009493266928922219174172935744700479126534271920138977022363206306226998037987092718578739630602766238676893539623229399604885463434326669726537913179721646822844525148860154396142258625434160478300706937786549115860120296322556005054391227958997281173953531059390939988569513351131929517996095561662148900456624057276731187533127460148300261051720328103253349255984781616262951154270101683173383008026941134509010257919742603834620733236258785394179286670335363607648727314787192581135127526891256504610958953398214285339420323158315903029394599733877513342417028566928207312874917478610744371761601668191179678355370644010458984167504750297527858797648220223312319611339962566871000141147079966175553480062343019000118365944611825418942617106237649158830657098369420162563914658659522242942731986311007852456127257794744562251242312651813892960917543835688113899081235256174990972454351693202211660636618578859776216537836101470041093439383326958674330893205237556272734771077717683502691160145894756106598763254734936185554497414524948518853943457880162558173427837192178046755323225165168354765098621245027905791555538857317684865324683623053372606447925524329887073094597605331463082998222245245006366018985803245572073721402966153097721535179550964986528896530183062719552087928314245246804951401562954985377815206122725966273679196740432319338903652972009499331326149697035632401415580522938112647060188114887012027774371911000796597692182341235462288201325897132348932468152266693114516317488732277360163865034008602780792714279218431680804897581437730761633733691938026522962417624008376016609005155842178069828089390511304644464539503808103868799384936633274404909559517413958053815080456931285886758131386698044502101356200762305488692851572980447061927169972928380936835383165434326298979271291084147845868098909551735628700736396631098875294974627139753724248212976420806758223872834619585446530956293775692480101591526886011723773562268534220690205007388874639767525131048415059477693007630697494376736667582260366719438694855221364979398993503162012107136713846472296068016067741628112079024816842657133032805382566172741536020812510709086532221421980127829142752058005731815307723609979057829221420246339120247178073148787023096043287347684168330341017481542479749794280428525085119592401402883908565841626894456392716491371484937001318478216246047405666076840472338725276627855148370786358057698468604790031456060359406242239243396425929701759641702613198300985460997600519544410036508679047235177818297884506986264161689135419601229454361649470260285379432514439490443075412817548299418393743501443025638573058899432529448307256838222450161234214652032450586368227696813173318850285564673859387261452875260995399970916986810386456634138976488973668335259885530380593675002961399908346435411089796762851737165453339632824157841526586011913296687689443448659059613072912355117931202154675816681499106607663489898557350145272272190474621282843445841624907382689601017920630845403064993554013688283347471109942014114478333752936704906325183675434502583041565524047887234920522224070099586885973333600077520492498163379219039362388367264426627721619681643756760646137575878280731123924759661453507950000015853051585706403725492024601752608517125886686032118421848729131656706420183800836883990524115952579576123912567238491781628831800938873044540618506947988971461113769775902050996727091364324116193906267031300587556859460823850331005641040580451816654371104346830088390784423664834697682855054396467959736793978939719450317242813603530181556085292580553630596670897543011778329069147019607453780325677956692972629748321258246874146369182415720816287408644977339575593471623554892360311801489230456865927045868323284539217648254077782508690941439360709387900300361849809440185973395368000312036864219539368767286674252320094540122059666070371452668695951126737569148497215691610212651605677753655842697831832229187891983317791631669261319889271834895593523478391009202628625190839289674343150085452725174326922621353482508402230725160540861426671381408203869338205748684180790590593531619960815977679904497379814740258546006196276409207739412233153529524056692149924033792742937732728860871002143132947911527717020484098032233705858096462466619074625593400143426904115060100985534735116665705791929508949135287887602311335290033263477540648372971093477185649977031862549847437049018112633554699556304241804498340882415697763358751053248028381287872800435051807050689117268358685783260331071618673687355163893370561076480756375174386364701306115057426741724061806170749194196464447555715767268981057605953991332021057517251816190275312235159777742792367621736806177841204153760092487881170024044291373647635822720506870376203293886921144065650967808591613148067771681585697367620120142667496504099024964762800541462238499719230410708246197574405278517086877222578754612838940258906749355975015529738204681359542578705050732593214456526955273229933651836528755728225731743696124456994449808618386255166613404148051287421736354030890446907239186734423607053150494753436855659707563961803942676956548408573273099854646811189424944415883404487977622698993337287087136522285338407973871716754161821012815099248115297428867963327020402107341851352343614589440069990037033149511787680779663952623095495141195790487782638875068268872787834308662736059902339924189337067838334472354357775465484033209735044239206153340020176731192920657041270063397459127321579236919817583119763421213022344202056768284982702875410841236243937641158038025453855465866632118000827817132567998082233256519474772683137875643431914654321688523025670532776332767791579377148000065607784328799201843993618128240685296836489203230529391814820942493279470019065139985673743325661995610216121171380284309243894705452026277049231921451968269275510100216880729619915720578078190738626056763974049810950582142720416687767284798946600384474698713717993595611307074127579150022332909215450767112216118942883130512847901330306309832133268198884817407384495798480125092925099544254011274263361881959258304568061739594003273722981573390187749876301864416447812555610311282173789638315625875941048871027551639327542842916703042693428998369736542155506828075638765772635880836323749642342560719974721051947343812746180677123729090098761657688723134553121510999368298431835154010098402649897830416151291617844401945276721920811579279997098999962783111190608963872392486988253788715443957263471597056151265653741490961264387046064086664699299680341083941934940917517037341915248937902301453508047338518540899844160333225996323476164404891224370450244647925280333206004805254551942853178672820252350504241816471951151909750887704469736074198845561689687068147538596104444622558810650819674237728893614904065559443688891907622034029835467932734035266181771320470947020014380902255557800501686011077229328764605122596615530408071200556463311876133412901763392269222704710671633957247389581045944617961066487978383481616194668588120276623555237815030097953322780128751866670094815508656222978756361563683604469208984595911775801921906062703656723675222920852575331828127178523272373952718182972783114312439539343069646327181621427579288138596829618279717362829806812741248034662571806573465202748780639053717002866773772478543684793417390023277171046670767871100165100856928809615465036449090976487120621311135769133110824738136913846595091362253779708478518628118012138265278534241869553341633166839081008407677361032890803839018681416067887881794089924539881812982210029813510838263019542301962294179347138279189629873892452049942351148331147765666791445983069078892985438600217838244240248609032713444707642669665242825188156462491350834479044629350585058861685139612678693362367841979985288557549939315800805384983880058085441376234641542097858289901509779703142388234786566571415329939373421918058200024300297775185513599167362802079174573878481469206184702871881630845848170608508983589985427266515919746685121632370506562722988682899182740341119258716585016280975969272559015430372637083599180546633991799572573092659327356241714183271140181409372663843447487796362014451778978426418039900489779619754072590566823617011212855506920807742965923468571322040608793664315254574058122959229039917170600219778427353101002403006508001351495021347900569322237407013986615347658153342348338113392125798505624644689528100749405053067362046074505207492766550157364454004751756144368609408791373677338664839357258281141985842615073288755113432805999697248080996380451716905308817493919734381888756263317060430703612327494437634805248838504349786032770316178307121372457179652796229409622693518569059112341794516824787126976540622977444507464889394079517935870602838683195131018246324651997338280775357739790009725117543208003700976761242131942680798928773877036898273853346550416668690668192349277901385674386260583255843317332442897036760853863832878434544065499520936010754957238310679469124534902304897110509494377301219841584369480170690203982897305033759537017998663447338791451731018285087046420927708289038123009640678772492954921107865399557898868855015153811583219089203379126379171722297213448613292237497091866835789763683470632853278041020920502305866785209503083546722364587937574652420675777433120494534282479567984517480467240522493694649666691418339355979960455776339240299820267727564149996097395999096178280735353766702691065585282257985046698671662441187981008908537756944467936960755457988741013428066412500300035144303181408106346542875857093251118051240868089477077370983928990711216197184991008674133980171303572738892039886284034510863501833560057553669618207538940749597370915697453979024258847273068658605181236536482171766963668886741686337899649957808193138692106973203473596885607204771281068791033152943456593573167074480930657722776339162402024381533037372752422791237192264676952865493055457984652987428548928527780268451167051532351007740566295719850103061037722258331418205686372547112045913039059367152664188890181906908754113652980843669027598440637641554274832320555580983616580392551443090392703011578557196065661679274953825943745008064383131765456368743934498763430040697484390599701043562895435605698896508248155849802888671937368368461884572547723343212153305064901741488861396953688188242066405147431384781510442790607339117859123600336339156943535377942719328344837222260714736024248060150431285405051132327794393329549827147642913633810719215182657552375502292373577343302447702874189732619485945897421035447415619076131061813250628357781192330452594230586084983544842161372564487373832165178217318001154968942780206662678474416140542933426761885858939524514487809299637886195976028643658806712890375498741560816566464149713426265947220859465821925047000868431344417141212083220415974547793191751878260895400815501757979462014799633398514053345701253257110127471149068929641028872958030717217269520346993904285150541222895441616685607048849959578467111298069848015082462699496207454309278418780407497152884951503438359976342060297295770471676058608565181588887148968224403695222854765726417435768807784488518894966470630548123671971402581637903171717417589993380776072630298766537845952507229475369505998727638890433922109804282512564635282505539360956402718553970353177999675707333769313461931087509372848154851170001969843554927225477372763421856575313070982667889562375448931851400777016346784371028701467134996688550405387523194102840018275557333334110724580329861736090738138236786327972526239602029157112380383707358116983876727593445685498310305271240434070514876789924968862275173589483859037037340951596481885179620118932279698072793411832347554969766815099659461540848554997046194799574606806102361154802658673346974952533539015959388928866296597217165935675433739215468462852673574045764009605265524878553404026130294358971064742799853917368530113638725920951456679357260088507092251097706050972485368458515515282977434713337048590719122883748689818638933141489141986293990921845077955422900877716377261376277126007197943817221589416535374639216480247212447500264354431739665859651806607423978182538057232499157426774401771217840146532180188717749605551829313220262733781958815852875850143856423880336179579674554721788500383275958932789755110980584262344309680995045678646097955473096452842401163389007278466456552699763737518826471600217830871912112717755660414116721126340304575876686419182877636578133298720923045259257563064952783434203583968637128435922677435653474521975182755766704403554351285077514007396002235691662230992140588042765804372565069718611826995151192103668066494334963579097928069213739549647315167914492672369120923391528949375710507031566112134117984087007236402794516145720979550435606247354701862672853322940456363062306825375824275101532400491433491206458433588515095855509897271999140021434497719064713562606098824720009054197147003582730194931491218150612584183622031116275363676299608380652592310427590796725704362960638829114356316620776553743795822475832880264717431278814783627442248787921447881762861108306265313507529319772669136985712953196795111185922188001266705931827470484709741416261544550530081628694999103225522275104320160560631760984808525403085009442238922896904482194109353373827075875663828340132555891204166624915029920642764903126314860975972105987043327346692421854142392803660168025031679967543143615657219155436908936921735192638270046342960898270677407182335959182990051048168075631230548210355929370626508724988221509520751936748709608145387914419698337382651281230537698588299650463000516128933790010462664690855865479553089277681330277553912480809872588207220864192473674067654985045886523497461465816828392445191120566554810868721336083769657738120176642441408228374070008136023653448429534937615635787282257992229461332725358396706771736361055130828996804268664305439101388542688537663723923060170123220154025780965566351785448475536890450254688922237832954063338682470588994499678652640816124317725284692266854316499401912922802734443476136580719003582826116792691067061096735363305496526490671927159085087281003533434668541767654065354683887096843103547725242160312181727795711832509402629059683686689109375808268870784660708222824211954405549418667250352190207851690595084260549066114127571973772333802118107788430095170162551779016606910947493905219309136268127881568918081379738069372036532868133162540581904875082837703753993437247155948929409632827973657473629082622068802717699010471168850179751713130698422521366465387593288290048880794228754621426577108056597925155724570928623845880778645463853204338916788512139728593472850927025008403790425947392588622499209339021957981050809829426761975262624666466424092539314314489633655257190763230600657616170738058106418910410116943442887036854496359883047433463479657196144603745211149274841339359950735549388925721293667176114317971274085574197773277708822646412956656160750837655961123482401843741021344035612961925091174617421373047515530262710416552452373190065114972855712856164170317826084111540584728130886544728211285788196073148596893617860742112594412982900909747037871628790803325151333912858666185778417981736339190777453389240161370293533192831385749065286844612327271677890376410418969310228080446559688827646881882574312206642554002795547975512785638443584074011228337752231377505980745193864270983851359525787863190553956456053854983279469260246329695470871557538294283571885406871079066437284583595277954678134275098469597061779875068818493286283741236395793942170094196816369461703946180508887645637311781683233677524926626889850847899264027282272499536846926339519566306558889030676014463051048129625508753874231626838112410371164521938273705376595695470233608830191367044654287625835154826889037002174139646815111818209746384625564931054596596287835374522305011874955337221929084668781731685169459862108789997615282214378249723549606713210304887701457227957870665016359155787906875219878908089458997224455274900280381814997353785652134925932998286558314467021523881508225075627230616447456527885712730800189162552089669183319270685164450801346007392638931174334870777466945283945070324431943072402539028078810902021689091586723943766150743489038827387865460194463865968827589998267576165405988495792133471375814864636640786084388250161139331311287154646988281454459851337875412286051182364071620830211606610483695788378394520777799915846563019734873448716456868545520680144544859187855059222204517430117321240184778461208232776504046619910500324385703623118519323990946134870594423819580481628163954952708352367736117540465791610613988922163677105466976728180153263857529204356218504370583052386949432392088149091695913238875586246871246437817402842007599155531199028315744755485225858915874650330203755440192041352653677765092007879082240060115435014005827131286174922605419405913968935745345114458661713197312360670941683830511835547425494066172155376117331076803417119202555282598892909820764430393685657901364684545235247602944618415612495386924505028714522533064375824590805129866123554354029487499336960532458081585050234382554415500827936672940788732815895122830047135863315433971077027669694674436453738103386264193760578023669340453259525157751083325811733167489375497372761851318694851504377081644220888032400235702531110539578317941245266449573606305471599376281622565293563205321457852148521987987400928957622620748328823837102126190832292333904280080282847699936026183681457793228869249856228929798067267916049637059883433495453305047447340231089020078420653793826939513355587722806231102317472184820625210369657255962416153547817900894464412153732620442520346976694813025434476358041957027256719568829441704723279317903594415736167228845366797252258691483640672983884072069967106118799863733947925674728778057181496584772732718440584538131884560958913281419914998120782706897814398340505871032079768592965371483079526390214959701599330505862069521759401061955839885764086358372505616323451803785966038903106099495934765543456714686018389622012224298006591563323483412213507685426440863026419208374311575584225925027763461070588436715489428216665334791798132152859930758105664797210131021175355218907620521706891098824848459956112311474102463932540786306173255261252947703743804039380333471711127597347163501688721414570495085692717123539007801248827631894902849764289897548374937800152098384333275817762213955364867392718185229938476901768240339392084446107965131752828460978707426806006338619040226544447032120759967968410082175902386553900192689412569766510294784611029351365216233727807052549162193942978986543386195395096801035892339533963947642758734913252760134735018242309184169821715019147993444596695713621201265282791597223938930672984210901584280198829430984506239255036305284489310533053868817268704510083022949208072056747188665807823288619762171537925247388246470014352863088317339112127061034241409063285660306794836038379501306888475120761250397982399816647418882206761050700076167985017409478511704279304013195233934660534334696193691183276126059619912901813346603614213627173921340181529250587767995649980302647241462422924624971756635442312719173100373184692975366366537735341302316313880452681956220009966472988459547160153727648027363090952561903201163207937246104911065612477245493695380238686725059917709179308292282836113511528506700971908215484166505763564470341890251769993239188969982198322047967592691463997698569839960557654205410737905964407668851250134982272659757060464954027225554604416131422895187518172261393361519382184794344316427005249271018460269446441874795116845568943079138492074205371001558330788603940301219808659332078815902029191216609288282597711399038028974477870740850165218641341013927534417421289858069636238608273888261963326407453080596814944694286896162708147987299862263410244749289389979474768179147633358269183806328363583664764127994367794984027053532495215115893864309763681920219770865513544116321489122650909903018636506565370639175446426404413459800174316224604407984664837307447999821526499432848435744463825908189609522596807347679400235121499153670384714341526289685717308664854211481341662022044533078794663607600603416296718864771348763172707935377641820826936497328752586447865099451408412766526668865268314796969918257211061500878286217507184196659481867756649420169272011944978022100458023035471254623071721092380109369904686640717546369930734926654002519938703092623849079821418806949905391928984311954969335873924592966698342387798512063333469862453222193394233464367419851197271943214594268547832154959919461448042850573229036999952641748578745693242099000379192113468818702818033595020952089737331814157494882267604247118153597887797937255090035243544557408001127951406888012687824674534197153632857118046367155999918019176168667341878882343876583913041055462280431565316784596336646656689953916543255368790038625673158207373690034892475394175447591164954104655218359437767425361087833022669291627590487772369722690542168578477090463821003132981857142518643940110508179663725344456506614463532563557789527217475893349353895080486022699225451718312374770799939896617229071943469335201062022923355680935278252129241401228707763341093320750753283399386633073697280127777405905235699163475005223992393393957581743836995019073152187321382940151916125600057037992381115262672687361281195965044061616769199602129948659348770464129312783610712895318779863302493296840367720633283595746104947468005137003873675670651670791793581290666710159580061357499461118153563205180684381462292937780336399952494547033585388003959057958619571008277827072410872157868103011849953183497918903973498980470344844243698472070406702959907688086834729365660056922316498866067404283166114293140727665120390196664958086721552274736707295473245962392143132795725150619497878155324212395057914617156883173316200356640886500059713633349591786743317253913682763644014965474721433080070489453431155604879009422557041964143304431237657562458823615994394377913788307788674059945853795002398992893553190612403440909306751825016329374995361474364869666677256680554395414034666926872862935117461023775701246085239418105926081032798284506591103156261349987942734451320615748005931275641835947697554428545226206636931675886143880102512479264170049905356426909476849459417302690570523791555042187185478584277825527635050435635233605827294670895247376721407808534213634223418358814838601780694460798056923389984523812538380231601838435356897864218538952614438305257686320530546079965683600046246669883385606848402089878930848037589641567108608196170667870998681872212158863920487328682215424351577541953532844363881738380462628092645217418074434201970076308003758735114039383994619303092511888630846607962624146299839038183316182701024998748406178917262059228424665703566900732994383638750212931891300822021214508572649237579874920692168401481942304505478660640966529288760027309201028966656169881687675336559637334563937588064081129714008575210069523308773586005234344755946082781113278354693170500746501831154480846486414453205746940000712048478185676870872438117014774169472141893428642754972601983000737830078114326073412647163608493687946894118583642791291448241365189719826897932327795580359940903603972603486366122755510590964832973789017555396197300591461216882299984837968539633527653111031467547758231463304586731321120020456399935597161155625105023316842670204741842575427655866902095973164951832387432657076175129688236482559077538370158269833101075788368122668695653238904453709248432887150018439529235569516836310547318871661427170443451685208283739968239908352256854086402420752922675760818436302623852112791264864509777403731323344719766391922895931377182824003363577347860218278349186979125442938415505975383245506324330523416302027585817472331479712521199890747685405665127105710917422383607814336094208737663841735962996733678069536834525266658404728306898674806774662497137018835031144195796762658338391781821046933298554359499448505908193137503697359895663255737324755757879502945558173761105298949937799077940201838995777614724787094021469932186025329468457341678145510426040745850985246109564092647752547308822739603698451371852252544371824288461849945446854689236817130642635477659118108788027299873380751164360990826497089143495362160704368127442932541046699300345230725929991036845015637448908064315545429895009974589755269765103739795689188875834345572161172852612644174928028468484570629875023766791640345019573683067299120377567518455361244798341820830922116477240388090011860942519383899912788993144167719878414192450934976072258183225048380534093212022712234300918173496246027996066134341325690650887121441576951036050951351033066076351897106348590969333842737149489896856391204498449794144389274755208533404533152338218250799528489805746200023325618270979994525882116564256322598733807128759827157683097900489772695278612331984387105398238124381271310561047453279690397021114665427382613582241407269617318961110298358378935423865468858053435193531671518241774032296688677113118645828963008615147365947427405986989119122320752750543822128331718941259072344787078804593396102012751029450264888011169615981605112337406244122657066185140256746687044867946953951879449990333491157741514268242145729398588844411428666563019066234313704411829601613484998307365170919331317518474276676462415217715100674675450544504247512603459393102346968842326199751126570295575779596147460783421882295829644030255072130200331307912129782018291480017775528863289087574517303892668051449952196204075329171130934527817252238909760942342308703513370497685217236294754242247690155449467570522282985856245960339783098422329168424017990186910401078771921749733747993493505942052220027895010754794280194144513285721750811216970154267151088478031452482366812610821931163870155029304179211163494015617913297125435443356990275840568044161519204432136805572967358895546952154468356797020175024448002722930974699428769596629353389363796439917069145026800540406927333028808143784575030751124215981013777099848289845398913617985050550216540151552935724079637191645398764731057037488545616345182606778187663775515804725849945205602459514919620308685587759648868016430169567605583172334612891044392958098316073484440440243121478416263062626953446865165933203716163020265318973023527906463094108615094271374826597777938120753788413511246475784837974570012336197025739076227132258946503412877712706421942105147256032388958115244669324757051129372150010606337810052184888262669940062585073506492293917881591225536297231549074664725711625308608811258986096672314510593959601376416157200634136094101548317203377991055544417925053361653441701341319584601577465807728176040424728980035892633284629177608893949653979187376620030172649946211655358840062370583124945010759391350171187302706217424304181560878198867364060351509860356222215137215228231760566568855035049144464798215387271802250655908510568548456674161189541390569011376599161554227478078778447803642628823032719465764912541428951984307464356560565430112793896853382428071476817763915449076677087895592988665414399908020242179801546400531076869552268885450006117476319798256259544676379246936186550507985171342441867444159801838047416332155472507927719008468766701384343067414365534058697846134561255824431807018299966045642813679521324154533290619505191990263510026659297339783795721116945730579553155130752336819469672028765861916661594036387340783158979957014234312531148845964143851840560301408857492986161724780863977093672327642440296424651264082774208931358469438414751793968422806304429820446378949944342750498650188813906485095675627732817345568694614737720740243479639852754560984900874849873132606133172918200227432335195415203739374493149989161403173671330152267016928872772848469764531313504715202744190182734523766487130737693862327795246650987630013330694251600847315435076939216805216189411089832287352873305111806565492478811571096681377868804415673782433414402840765490915207041448513891604730355107397414128880237411597031786958605456822518352587918328403882076378266651313454896843476649644830055941309738768418624650446850129062748694133410180148472167339563543828129381297368059007534427235601985910314545970723106380317997781771217257830547546753161100347237912002134900969785095881115713928929686284719005727898085879634917711119357924605207509579696068665435166599339824089408765867239409721155595152863571917240574916760356090870188076647682286664939083584907338429316198583470889762434888979717508894315833336174240118779218998670701079698865557357433608768573208687729821104057054600845168400226682465906180953279787023394158664946298011247631530072539424760402581804695885529228009906287583777250896797327057136573295634452287927427221616002751445727475172459253057991599196363035038207634740287468510969853680628905391094892108228018626642099837419604404645461463166146434204081865877819649293090655812635830879195705243015086855864781614347545442584379126804681832606235847202030095984138376683703410138558283686887588701011278290360728026702965795396608876737787776298046110326263505490206157408009513109953488427888287050200432695939925756536375819613090437068659101886586722766168477206008195803054679394028460370671781563918881548956622705089421155415667061270469574593914889408301042313329658033612323944793198444078946393826300469577887952329097645023035239653752923471476905014267744821062959500355969643719790532051715264059529752187669388275061682391606240250046293776777571040714973402032717329649567161797924717447168076237602876187035092564926416048657863492189867719248319761035337394063217898314444901990813283738026303371148400429674051636079439758374541452211395961383271099030888913362461652503824969510244308783803395468220041050352325888029610345817672648981780873721892178219816088161843569362301105286079392563222137911800060995218267376210883130043579215541788014826118393075357560393910544849092927236637781268387556453768686964666260206536830486242814279604616554695785892261614820892376013447139501642182492494776383654457687318812970899353328499795847480137633029677672814439917845223963912953253727772042824865402438735931192130910205410927001359337632079787681515306070321274476671553828695638849985650772360597465205254661454703451302830320167851636577183475198479361123928119544569242556851031206747698577716727619216187125670516677317667547973527004845782678625767438922533265688817158257635721973674445167913473523938207341033413292102192558620320012691686190889965498696206343265698158760887834840340546852546556543441940297664245075236532882414318643647194200023169068876703943211057244935401050539450107572306209291352902223141452850893446083631851824963408111197313648397959114440760638291990854301616626896370542868837670674515710143868958996943777434719476737128564612262277284607830581933501688606452555790043937584760882276723532984134495225079415795347995026606258364766897835863097096590944367015254065960677509106366160503249096192036877999710618005211449017917528465735963736185740754796721875592324737196848477899804373484291122260106992251782608078022376418978347652168605018859140587561744891989636150525595568787522207933809814728014399254170141585242287821333906497536137462007754361080767001240617696045953222392977134660000275868223051172000720829575007764687415261078715492024713024231687423133122437680036470727332451983080478558785474371238810537867444831569030804644209839254405597827843073572473340151699048430745371322875342747745632677226016072966456050402907824459233831978117990591185483028296481838831969001857506197641571062689328182042781837912924612795777063918847593161259350226401781447504481272658265237680122109897518591028249563640634089725798951445570626945642973261237946083673993813346749364428359900572169520631334551497433646480261111263698469483121820464202921898841160274253897231485019795384320203204517029400125956129063003120797212383144208368788992404368425696736768631299372067856286129271741833305525830615490513416880779771450745088480147165612038861215074102008510487967783405445973049663863650971881146885987410780515519768648057963044367062653792951008298836582439130225636750164834305022508198025205180955301816733824245154529532527289221170936998168834535033921905342846609427039380113628080233253730339753690932935813776773841836609535712593044507066896802199030228083564948461830024309700335056729268272288677932525898844389655498398956102336369704993733010996885000994859553304874644585816570207576039343629437798947316492554452469487388591025045359064918348938794150514035007537054733445744207448685535113746517642137902052042684123183415553418390640148552034217760283783334787450311658879103340008725291072149116732590128828581497330414105805831109331782083588670640535380677089428324748809588029640958153977496692849013434399401155181970358818112116725568264430371564722988312966085712543611143439688685285437307323881275808679562130427405439880815748913459794273404723353228726328233049172949531849025991143573466191055277011585634234495821986679404220777843225464832453525200279571414685458068147499532707727755270163553486211234309755988566157640232238261142774416986885412519276500488147238275956032104168806131391437897263421984135735712051340500192946293688570294900520236492976968717818836203504220098430501350124415033404234271677306664905788082352371369564807971402112125985694117130907038208518793603382020783271757737884995203774839559012871136919323165275197631675631213079508710212788249246079032151445131438296303034087022176340090947990353280653492968700355782648459130468390070684334543731258658551203030510949499163476025254923957444985258237015194178181405334429586387546698703372385523514034892365146302288486883599764610973347022941874884102745821229286848894044702465368193332233690466070187159082604056122245823451185689476674637119881008756186840626502513946118002714009526069976375599518112199431813138907943681857792523880472208587388979352983201333466429176912899336287470806302689110881579889895254091895684006592938236092838597553316044663245816395655867990380930981986185728402054948267747803047087142921942820803158876763930297423969543742191004951938782114795793427900474945204473353810405904913757352842582757195545228441844915465727462058031758148563559219761335308410770863865198992178448111320504979039207889219269781188604362182054446305890903724206583204133484284672954266340784565192994765238099825519338548556905303341429130137373859223930145550954566798482373575605245180261495107858270027671113911413817355733742644715702564093201731864253682894866244039016714928288929947797431532959259567265032883111108620392207624519935225125705587415056255494395822704178425198759691137987194575740161145435532711456467599988884362845343089249205187207905650646559678100987910912153350385484073770283879569110391028029320350857134449875342932733566513298777537637877109768644274024137443643637271289096431281810821177032812229305159342116994445259156581687379768051147989084339611940559237392842365490614427673312673154091183853139162075084918793174090306452145456696506787820439410282769170552326485895735845998920613321010283022537100690813368273194749023238762282870163399070072339024929416933401054479212620639971000896861968515102938081644406899589337226934727030659427077221524289626610390086469559607605406402574783564340628870341009748422568674438602265789834712785894258430270213235455065649548437759066863952747251592567677281976594491099325241616763823081231890478544331207514037703986059785624208518231330728110668779269878514806403954825533397886773384741422150868021475296550396274706970463676604128565689837832149361903944552658029985036716494538303948877707071745806624711570576585245279735182514310644735402665508055251655116915538771454424491980095287601550350883181767375101320017880536205253826827830700711286671364706090356093272357526710860255838920564606007004220731421534411379199549800211567508531222713571898628629553910411317394825589404877175573102891443887184388231877784001413704187989419041080867476792099491131274744391531948067747221819655828648819595206529480163035114985923667021179143888254174675877696740480778161134632098921968234405897898845733856136746430997821337472780780116625120182382585213390357037213247837261715947906599255228231597335470605949387719685201951938784204442151945394860169302896113908248373857462914861538397315878156051704395052002885325620362476393376348740545098822994945563604663158102388536455367914351697086911145821260869105182614246652087421230978025489780970874605689258106200949831712019392956458977846607005757480374012667751100073315858499054192764999741993308234917800016159357938909624906037484555765810077053926424142422123291949565500404602219160476585581980749527782289013802805534690011399588972145754129360942682346557116929329685016204078933175964160661815308046459888514471363737203981667668980910734976189461129778219223363395614883844435312242605953835940421559520526690713168087929295967359203537806421395451399401866420244082272216758087482141674780326701306731245746743930328757192751622431985445405391761211597029712740926269211187783518349750159796579740044160734390002060612451996749106193960064904481663692695020481069383902574324649199260970783320011490837176797801666512241463435326022053678990041352187017489351851785279688579008542758741151666199003707303466240137628319819029421966006373966191251349582522903696502183910560217808979143667781749575727220683103576881762735903297361694119439292228995504128279901974952340675682583304445528318803346998089534249193681055489521265882944380829183955316099351301626369956773352712070290448702833988547815911059647365402396135531753128345353606662900806710014838643788505835838648670097125337086321752763379231761215189905648990961047335925053318439308154153944501657831900410681013964342435533346473313281887707910793933448356041502555600435032314855186363037693843685741069360942016361097230249903588883279189537698516352708128630078467077300301704248591707559623305666460841908828344398041190043445970478904339525946984036212383441805976767493630192441588478915622062754291508144340954305125772088054813354674149277851858756824056124227827296582263286305932657388155046074478340369862997764367059578029562219932491153537134076766590539873873383027262137858242546410935462187946284147143967900406584592068255279262066009117177246352188026855185692928384326731255095068011943577573440369767995258898648306024874496470980734354334010326050104023119474372420374666995833303751196239451875203665432706379534376485562790776061279358069527758614553624415838653636913857811742949950864392881730958496369431064969415287201722684879964832292895176648666674895544112354816135950210268376644921435000324437950638532205581666987536249730293360532577917321378276854936294660872647174881588111418832922708843455738924928356855399209445924662528745099416300532034511586701895277974349507965136318479704994689124196571124619658699302881100823876940969718438151446969783850106293080649251569837163510160993273856985727606242759679220495676748663450898357128755083310420440944792787713076977961932976161990946730901970472886133222457216254123353227214408847740173277248757594330471117263350763282158884733231245854031505111487749463076880656547485246623723959054010622085708202610310794141919316665710130852410035593859287779409130196531416435928532903216024035163449204471250117217325843416912606196175421262103860689488172226433316638327806254835540339898000975867769300462472443712125465972025825030498536106318054850754430773485739609945687738201898044375958817971632886599526724918162541837105999368905825868134248303795568799493313997069923419004941923442046606395180569580924733912973994044097133344854526418882410810302890015723188866346134443830432420574299699028892365020570412374783389307228594142682308512247232544040645916114814754245788521221154354749596625973536115576868064923578926614169022935795904151429848854181983274116543847036564493638419847334787613566149075260148389087250861521629506431592030656877029719644039066689442391485783960982740644671777441772377524209191227717894410146674125643009700917619843767057946243340913619348066662316730134730105596035997665766162617112731135834039504029182076707488175671814856889398621544890590735705534063922402139479781430035602968306763188166500412923369231061664399354409709084491735908969740307159696482064906509734634725258912869258878585154624360886120017759914049631457129756708855344768594454120188825255950433642786691713856866807867865603005415778801785400754973725381101690463972094569296029649844742656167898072831486322744027735360613555651263886925083626644393667357691517680294123829243291403237240113605968415326845457963883640867969290666807889137410926850727580341060929139805785972174974416435713934137151990781115888267694778849695865839441352228774516986648130993889901602181015368736517324363200594352992233579165023433997866032085987286558458882031121155183345845283275001415188093249152496063712755719693255505251382913697058529981073018120213997782573844661047830257981716491269019128755945769135647806080742336689786266167422831041521569780773293734331638055081758290344890930841699654924209816497226433971132162176569217096785763306612487755923947644552001273826990632346962439774004012913755836838345907145821902033524993737725955100547936813696045544605906957885333565328395046590357267868170376058359327444712393924318868530544003886004063161419574626101480817461726851046997214721806832336051998199857649817773321976786344040604412038116086976888620997968793521823870063830106454874430078464323123109947377982902864833122605768726979058739379130716266148403783357694336214157277929138354652468255819241774727761566131359484016831594643359303851405579908337641169061520363071999016270540843512728798943655680123101457004880288671455757099987296001776296839852264283124816748094855601118022381800195266373751688873415292227798117323135176794449304583374595489373596551680222117911742789089053895131035080481223038547372413084747083430685664979421205612778722337235753218156728927889559409897386377191536623971902745560770569907041238680862650381290488770015410253362354522702996154283587217867046436965569940300676622646719011178999163745319033801077241970880706071025120192804721260384559689616923680792265014301099783600492301965554608193628038117587262624014025965744721854075281452786081385750534482211423515849617483593495149165982277135196610628613397979513877717684717865973973358907325854535002412111182176513979747566930866278273563509317564282078204824280199073541271485281235713095285685834459164916015928536440371430486030557225156198868545375512751701435081581459688601846675510739803181221402219735927822408180252280988393343029520614951208800374936009763128487582483406612398490984292064733009417574775855229822454462450192264092764187986279225340040374779603732961165668500662970534659074183600988164092040245877822334591050583507336494097898282699594074024535696452427445183651701812850936670818990477048996097409932509022823179401385163527921867097502330395691661549588867161177018137007318493894660524777240677451083191534337514397064800208396714848697900470266737282122796202387962440818967579235123503095930619493252630291882353312702812588599759824349823607740031389545163761059436871948355477076779377044680939470977678110644861795810048429863885261633169958808380578384848453638036569648486745984890993624491328728242932854742237883598399803766962989957147458909885743204761560061183697676041857542953462015336553008504844173134011981469162917793639665886412739719770964306386651281175789852722911267565957019902613821734272855034390432745293216845852035711335745693600384759595597935973495979420211692927568417146916292382776419129282465782670122693184310425585146833269994330763787883691572026287641905332024169602453211343658771155698541014088087750119117648611138918640709954310358209974659716406657233137493847707257765740108191367651473813162815830658233760967381155927034528667168944322516473681577784487222668737276668419880876373051246295045274543471679766614061516795999191175947423429548225569157107313758543526215465863769984630112559761074490967833558832914603985462004390869958685790900544063177482864790642584475582293760127080358968757506105701315197355926511042593856805588909729550909297634769594193519758799968970910656273196819770278645406944460695226520600579928552539793483613824961010665253253098567960683012580177173006657892468097853813529407010891718281528127780646636615028069926405998287381515186961204034325244942761747727118612903938743212284553011870461973758449567886163337947321269497555102311565688924960128418366327280469691522684706049783479408955445278690384904512357426076207917341415188516796300678172780108538420585900919990415456785882315989849348544886710314829071510066858928234544891515828216247806506090122028342835498243609790687593232690943340651222123296512582190745205017394714139479311049434895459203951515644818969086319252695492139641806296015350177889711941425302222792258446906614212355991059304856043189422731025526126748335465513985241177117618867034837022769412073374964596823269542025774140742036670587093261246387022125600749118383673862441916287366640286432499702968281267271032933558899716758187750911552344245161736140133536470047107978258159636784643278764581473238950508127351808604998734854798407173464679792478755578968083396064030905525561987393538775915785001296269697558566244590788149931816036308998264830205225279175944882683532434794963763000013312825417483179330066443036768911549460901804456936228648200865512771598224962569486829345618415220312559971573603437628541515794266641263544029660767416247560264220901897616347924870443069300389455964713610468985392122887482824268626883659098401043558257831175117435775220815822709005283468971128034154353008669650722801997866001031970124305120802999655340570240899713075866518898933059468054879345281785384202241569319542295121517580189061064675733689791645118830433096383253814533351083636355344710103160781852100992246640818284556032491047689548462728888304654335959001586810032910026478202730443025354723543256094705139355449235760897330249803603007726219678587899266831665032864180913127454942476178080535244805420605025320482349777974789441440621798822725383768649351521078608588158438012944835672988814667792093563511991297589622131232795471039935713567697074764732193834212897256023118153596463361327523594536775219580426656330468267679517509667553597111405475969537801572601450363990652041717679605358829106267417652348565400667340611208185158052416033440584871990491440836651623846909555798744553055039223883071449534622888079184844357027033349797797654006088061889074889952746108616760068035867179573981927377222351374369481485475056298461671594350518251747332924162444181340217234642338941258692797321285162711092966250401807361568423346688641934073630296412696863410129522290962932191770424144648106998457709704437316670011311458198439559809662529914672776126087897262477399706360003780217531806031094854011487151356788405060317262757970309101085404952702374443581863180091807065806020341934066587763704684917084459581693749447237592120601444541257414344701045437890247564879432594373436122908590192499022398376662984416367308735692314844184347337634075268667487520549527087484890995884563458025199496728212028611627540322409517976896214304239164348809571549755483855000876551427424860965568705123268084348560067350540352534655907811691047601188614346627091767748472915833997287915211011808486459971079327405759754904734460873975922008646756398906685154201859477304306371032587224517170219829034176236008271521716353388620803628536522883909411466436921400370592575825944482699148848794718232449546311712686195109283330730818923761884698606345237751310913585501613561971762131305578077150949966065875250309110102199032890838069030575496544591263821461867629485250417102254310094989689245180209636453314827992993632195568895895180519317231621232665371361326150992868642531390866640010458118942343599190404659670268117555084796930771434364123981516567357444038008465766296106420485146206771160087979292211997500416314429147055187454395915235921040275490238376715507280559297999034131002566705850952804505851853068377696239985528848099141339516290741833403551164697975418772337944677723928266693507072992389608018234013676171492233534583266860588075591815799883715732702704527174982931665118539041573519395442394828768065730114914693798211220102479096541323193913438808620640401910025176336295715298056535236270371457459131537458173551435834655793962915229777777288028668272544527394454964444596797120347353478941284793081547003627123048458927869583972740287323572591501975920263839712243428566133271054677673145671477320695524047493301152767296615994864184901237167969545853045734808094784638540627373099118651745050163699397523186713087063165100248320752473766648055844454640202819296054747749992862987076020276835670561620616374050027269652824810093332279671260207803691124329808292725516123302712003461327699935240093491969830872394840132539068826990370129480431098703126098908759710784898205838606004286096336672896079951902373135990081668673519660720803202758253476406754027645122789950567916840781083816859734125711752775908909103780079893638912257489568114039425932410369089528477814205523266533732361702457613835364876441949545152211871931529953479736275830488952052894332653159340510877656512249304640691626710458849079954151879840686409388385521072152451465441648920166302255955908893498870904199047590835422353743453371958688739139976849956413395431792118791706859182392958991894896147918957758339501379801915525094413538857483780395102599090608797804700252759231661171521608617963512263894790146042747823844429771662027507882278399632094321746243617040291268479058739316903127590729318369471034359977292095622880882720005200476635779686761480448530143472589572346573055435610785898767757160848717522813557937540966392379388826713244537967287946338405609818676618653481302370868872807576802882450772440374091665579181053099524846874911238105413465501590476251366136671310617899698816157881361999151796573660506918850724466396561690111985086044161002217358782505604602192821174495686543172722208935780608422141925316228412363630543721449988265826330169741888540868557269191825305523978917859528613266911682515746309300221130084826300263220453901333794611010708452482707507209909074123468122117459086625893835425764974684980218382375693073737664219090447200484389666755562161924009203811400229045956426974810182155911076846702953426611568674484595254600552904889194922062948816048624012905646467951006348296192593293705580130298436305729256299625338175053454566682974417937681738360420573125585551631398868958274515609245697767455132945118506062968854261962515091382863202858039946440437373250928009541985520601620635071018507655541620086883798136628734794793720533398958789704050683814472000413906448056153068865702400240130289089599885200433639761538122429450524102742520591471614143734877513146357086839487969839957402847416667085535787502389009834177589567919850937279043576302097138654363791452778717316389837816118042149635584972747484384964837468500150404111612971625434055983202012355453162368961560335321642493832386997472536642712797689965325474890941973615381100148001555152866766908134144278554343001725988473213600385046491213456812533585529147168072773558730511895277777404750390215630281684338736331143958394010397443647172009611373766865188454473361221777186442280664955047551814989980407351193489295450113231422299808228933215173637374437764268859293710667030860112304579498832512709123412994140263177444361020067676029275759238436383874218818524574233897620211101323737479437337623093009015394096481318979145464791827566604917392799572638015922764577042557368916125800237119727757445026220123272189315852255555055902887186053391292104516789233096255022128599659430801500449030818109926158799438520659082908736015011364448944601954407836837841473588191076859150081819256788105887366432392876655526494534689410229395531007181700341374375439733902234810729207248069939378138422277699787733276778233632726819813823446727964863931750822550839938397884118624392622890633896814994416103694269149529568608485238951626537578825600228886045902591549782842616050002515634630773488031234801278501524904175012438979944193647171178982396412059036775730253615007226498193419677215772730782191612902869903888741060756254693930881917225322677439127663415776641303005140167778689964405843452972027950764936216687150675832408164775258366695694668612415039347646408211144237513055962519631487417068735811654726218562855745551216476841573809609175500473344410644146375115687189512823928285697742780259292648260631685768752092455684080353251037239120454099911945664228989346215609454569887330218117535229852184540927233284342949837502138528290199459008219740666869899701393840743451909801538804424344529398878255737220157778610436027554480181528175146155349696601299600343913041887553806298176756761306802495282734789583589988035563129000484560779856599072030517498240468062907305695039147435884944002876053598288189497783517615517369163274629335114301681627173503616438521686796261716285892062172718026923444326219307263675464312912513290501670557791344353902130120691383248788438229389293815743759861517413549180893579631783938134841646143156374995353889954307116002801627120210012775064884342376499582770322543105070261617388705739273072715158427280362999718029438323251610094440719565055050788704538529989050189745465837706150723326948506720703842372910013105463942314161736895562337059825331367190435332576451720232036221910333182751094492424362184055983407455802355604069444128161678475127466314258842045905245075059227583969849714923096886596651244016665473328169972715609590375957535385540483339377444021774262429900586587629854379419778491154624810919636741876919390708735484741529270183427854429082429179021405545220327195741923146781257457581966098796861683155877272862864277874552387083158747247297231844764233248056594128742982600458863383781416424866750465561884221644410163597148401058205620850761676263084654794727350853806342431913745940637942018015450703608118620438661033993789188119786525741146913237694938315687845171795745392183219196880245654287486266049584928280515651289955444895337389261650831603120418786629880077965222002833709030896706423913601492427334411652580322480778192889972080667869414267829229820101712463062915381663101330628152572367055457205587598929634579809712998403002807634861076118007315850291903662861395505352308790229824183092316903740456322510382639923898938564848963686545098273712068851624827977853546462362518592460373856600127355311137334883240191331558575283619793514838038491805715348382296479190737441431962309530747712753393302520914894052385588512558899439242052619653565959699542706290701713515051109396202068685694878471001987821261667400999951378689314861700705210318906667296309237486087444420815900637271793191910303563791974252249297655718652468241281221799744174334502377164815962832025240144083223811382982089614276384438687621741374430047875467946733590934714318318767900140490668130741592135569271085963627382636823488714559581938260271327978755321054781306818576711499908076748461914104668451878452790299424716458705201017124505246863473286040612000379317363621136723466796071032231019627782093454272397345199625292773438500000930850669393628615879243446018826505259712885003902039192325073003728137026178465294166844424452984873874937986213698531997336535938252553710861015317128386459114975083473640697545547894908730996243344619396193413587418254274224487993400472700771034145543997241526723156541215302072993957479784062196267381033311550578592640344343592324815897033442658424441215695949672625606873541002246299744316946571806930419783210548784826876900540958540625240379332587966890856565158429129966177341137916605806789702220778552923345560746713746049514488993814091015705113862900657786732869644413714797617501692738175730380704886393173226610744448156731216129490691585011237042442525620299606073918266081871924071679255547101745326684376896654012557611529410788763150201025170716803633761833367740534800758827486523122723508558436864626291892252133138706182938192651787692737592374013011321796053875180994746498923912369845986308048466985384411400486336074246282286693267737280275343949935469450474794270197357178709748142283562830019208806051191320491735014255992138395031091674650485327399890276825729593465329761195737037710194488221725727112499915585212412724274753839668880167301730742184134955728440751450558471816230836809496015469414615502277641997302759235217535809567135659211101378185649176305737848396508870622652202527296057965802574951788578262471014677496590864557150531620839992111735924885519646548617383085064483784795968893930118735685872988165368343666145505869474786413523037911042017068605445455151124675092643883860693292840480289402683484155691872839576515099459559559618448137890243718535647761783352964266288378065307475664093082653209230372156430573408420796543254681897366134536525759603091917995621922128209617475758417886652647240046704740458548733547379781837246616982366521087159653308835453502900289623061258647637657314104583269891407317326650067023196360817154477911275391588346551808226273318431852131121141507343796539560238841082775641601917916259018093618480558427194059116184559413041308038287605163195088092986071505491745775267371598049879883454990654335162061887913928464340515086621645024187816458691901639455886263362289688760489372712207172068696031172937670522297287415109475365147318387716240679193632490069452592256552323540212251877080267097492483119561963544895380218524924857614475209917424067380906178570586631604755298177772581684321275247195761015457397370452874552398185570340089872362448718100901916079583496243432684103403220977552043169191613918161047903329762964778013000549452618016011907748361129653290357683168200500674686716918596355055542072864325711272553518021582011576904735285067059182057680133973869082123454413827721864294702785816636497761706076542126469726460348635270451960501570658819300701998521561965448670222683072636858012484058389840932309466705835822721631032153864926976955095592758294577253304366160428688227797022088604358340321220835772754931574907464055680332978305670924547889874535215448451048898851431918867359657827383934232177732552929751429480618910558914588539227810958915714465957240502756700047816081387718353515183765913389353409358429367941686011198130289229321488688776422745000023676172518496846887886459386618597272518220099899770093833830009543329121708570800003093123279053765463059004479762786763934255857644668633212294804756725065492722806478077740301743786554708266313625192557837259202255468314609034103759357615782071926423331820778478352351061435188937884904156836743863150867892916988792762295362392723686096049625951777669265526040688371845294127580127167678684339944951370471875834729822642923850253541802927906524149849051274958685546710136197002416813260614974024480423944636993801379178322583444151197825713879114442841467131481000832133063725234654063507667153128266383827140164283564167374785421268222067147287625379218999702236908812635783880351225036470197044795996595818722297137351639769977703035566802231442165451870690713246500028654644451234563206402947283338221795493566731929512778616730808729750705556536973678336348460787265923171548046840731432477407061313853536114124753255351253757126363489372133205490108565520185464561626475631051974130296703104579500278076106326602091628913421393011275762526373176926937120549382203725726342519701596378802330757533492859736628764419912614912088808145886973969137105245559548463606903273080534741373190497821254680063105552268495826556735226887142879843742035073123232000377255890674498133384379859711280659822687149146591805483369778539388062572817007463024553130114420866277285503288606945645502768863736132266504705419897748924714907789713208969458009192141288656766951624963443086988209206913775244076985148459891134338547354418011291998321663819795227635749721501315912802097136095354312951824031974514473019432991326038090291580422677900317784406421468339413488942956757618747637529942758800623809650679443713370310068206453792915614897314527994355362381089036738736272217668671330749201875133172549595250716451705857118034051225691438026654712560159246699755560013320443665509385217150392901699249281337876317302721120293100736011930095538276173671865688510767317420078042828540364534652349107320221870928789800121371305367893129199117927271462319108727696375971737656400000595841205063857368844293250124819359089653132788656745488269332064523585737490629530119102934903031607848707147438470948648108875791600662282067813858002852188297414591266267258154871798032582753736764939888298081093492181748944760253998997254678437669496394833521740396199639685756588813624945664383660203824085509921454962069165205166025164643781415006026385770680752991182295676149478791951067730245876139900781501651889277511736077125621679296088351753117193521540699834061560035214350716508092059419168853394112175717511209882867298167528037853174403210921224689443543390202752285859429691368183433683029242531473300289982874465136142316697556133615136842495739278979715537049600301144772714268493603201178335450342318905907111842674402093701131275761554886925194665046297447707123903698114604492151111762222703747595434155266724418117440935781116455631220825608691764189690384534680571801712426061136760729184416522038549493091094716580959196990115946574026849344753425896171784814930281991041525247507231604756238161888987831716235807654506835944099316685077102735951101588368923904559414849004207888598781294432394952987071998920100660164996495282194712033253429353746479356841693179557604483564660161732845994322298023266319653730640706984176621453183995184032397935309844363697558647481414415388518492137971968133591107423736493819301476585744337496279187122338625972814368371119936159728547888072837439875658934582625378987921210592849024634706295590019892434031156989981358747104549722768174752831984170161599241449477353038062867549395894339548843432679820558227198136561433569454506721482363277281427125108184160703188335447519008546994311753848590016491426964662299360305560711274307778107808116779744461985171426671911534557529561997038168306099908135537001586085759196074944403991200605756141836067166180418187192791618143300832638954494334166193446219871503221443413372833406406716149679197554102771867442828080928600591066257108743615383252511103042582369888454449054987504181664632666771088035486942889723237428988565587775094786436780430752287793783330999363778103853435347773684675980498055723838223760974744071943337778324558602936519524376128539045302585845615221812585075090616638587547053677036807764339242328333318766810919332547309422861368493449590598154937193410650566181060020477714182518118827493896761051705530048156035300868613502868126369513846907618723726116585564509083719832538360130230117084316687653076529865010731062087807522942198571523323651742895982735701797796018410142544987629626893650343770541702977720255857021511146131747247187073486641589307689155159500312448068080518147277442961568572330304457003191950301562019318448695290841598298282651284914801074499943858483589999494195598224846431249489947239627135803805317055249785800499950479739778521867808783887154150758438396651824281475569494245009039932419078354382668131563505637421578386803785174512820708458307586654024654943868280464078133979680289082848120426549966790537549444584424589824280825869577538223892987148515330124404226631304795167847488366182124142090888747147482693772294868930094770657801648359947750364865685212886103587517189135450214137059132374991363430030421113518032061845388027584099542760233774025144089273563894604642851110049732410052882957184902210142327772210983836479261476625090678510031802761437286055561135236624438139513815348273213682410484719803492744504358122936004369404885961826287784751459815363009380885904405064783101300580734115298067470967901045695349914913445755725140257032938882835358266967837273010735161880559354165743522661823835354340173001851941890096199726861471471396397065045829021160906327048606968872201923754515747666904128189263693726418711152193752708930123048268389041773925435616029284384527952826353723367649963298676110108147142434170898556861304067244502112342970845254615194803605439339407155702232160693278110771577972811092120409950197486958121158358738577701001773722162930755547061940588332831498388734546128249748746054264990457218325562963003397272413945732335006810349301484437747893202260338776650835248553822202287683657995155644118181014181144917185182438284997876057995454253187476693656173636970080511864023198764123907524463354088766988117672760898196752834534651958405790839999142224795188769984255977786438515593371426253338924807278358740915460653427657881198331306288332883553678257571565254929105083114537007314845878562372535441577087724409672616804649398494545720526117440047955822777843793449093194272247912451600075447610437197701137794303375128930847510466638335118860143884805445302839988906999583699951841475878062448393540653857707183687952535289199547239961854049422479936986261428871304637229506356252159983152491695469565719340130708251990657228789349704119021518264232613377290316517999599822305153159470424132562877144900153148160972929262684254891526772251994543059113924531937845862912697891913103795120396363881830058049990065068341414185634538191354317922968965387122254492211030273033363844788307563864541177013688000631501448117264028676055252327012750611188118641864563872670710158833688712000169138244300220021120733001140958400460905659368531702237559383999406563072596529542981168288694806434321743395201741988957322524344948845910993762586177684844149199854205427055894436019163606161337240939604159189635034947594041192246822827631877126618008878548535845322010914244966968188523643389644821460344957062408570089432489111990797491100601353917704903957519715167489166562587856139103233621173267276842739847128519375903113816318370854725210318979630137718940032713826511291899277689582252846962253437822009701435799788232220931807972761095297133735777224886322906724853148525273265476914989272521977114121409225473487655396086956422846907047701314836501624013321772935924458834565318105380741955334928724850095602557212148657524762463007756307856868882176465917355978680082377896286868487391562338852673245600419588368954804566978130309021464753573677017899046565694854619335036103580498514640872478726899713930794708118076648607051128200884795129916121001296797503789714847020623418129297677325130398089075899182399974807152792105787819781060871574850319282387661840947299501314876357285179813678955863076722695177211708252941719844089273876185721970396344211486777511204936206110109209422556191163400590336369470244148058966749698664361840547425211218203019067551634146299116131247023064158872068710746619234422540780511383392786705951906927292458131156504268807251068213128740213305832518103727792408610747121012142375469500799185929562246064654370701009643695075772767638981611640164740463266601361071621912333945673317193905394753097362386205961495666115048558900652506925314162017998220774083153487689391013624843215660780473353614536685930402018621039528473706981316049978685882890151058913339161037834621759606926614365538449259279230173650367832961847332855340555963307993541688137817646577765725020231755556580894796833680832505816076663726218123932565875370255217750692021965809830867747717198450607304067390315267644105784615995435451696413258841782402530225963964553102457857357109990069759512986538042153234058708362588033093474254874533592377318076046222596639097419334097200891668118438743161282087831930605489111197733665256591508251484416105159103888620928180694572309424019537649091203164186501218056240534051732790611096638278971153917894104601661561848263919167464552445578433386518153151569627771403347689477047806517165247474899136006290136005230705657279303387720509265903357661069030152215048239002932383085442796062129683823869709126787141573456950905613859935601693734325207929201190320053045447711896638274113818995631818330679988294635543723937614435437290862156150842287045498233082985663923384018841432872453438083291811442622497927180078273700009998282643314899713634559751612464544313946742595145978992166413435758386110593092739895843612700040696430072741554940937783330665789729688903844267660005908714724007342763175533909533685909766649450074952944973872579831622801372734462242701598777909337071876558305367432505438544147937936590536094132300702497059854280558493286393184520752499911713799075597676938416929437467764572854117141805495730642758197824981542175258822489976904953068475074076862780647506849124786826759050406197067414403601880637255816243983771245121867832947186634668500106582215853486393342613067284407348039183778101023248703668941513514066101731363058251944525120263254004529204774198376465447777675774338357155667575791069311624532211003924138956095667470861296395049144153008590237919728265697427615066131610222445411946450154541106060570594717875586672440361109026618559282308793672696051124178895083686524060114083875856937009737356366206369188847644243167747932365882617441458289859870093305400706530351880809360443503189723517882278305014548612366231245486789050012979852722673968258256954495383608011554146511547710328093426804184892145895896985904411538746954768382027762162356828574509106983200896108268331333315960018187542031578624093885682897633841673026463835861498216298671337718720579294823905815331895452717736022457814257714518783462279304290897705703822667827089353768671774162507871131269862633896444212479654507261248015091641931942159674401018626699045848821557396964289463892909531398299680454757557993726174236389948716360231124199046299749621413765610961648030835073960475611608772567477700937628832955960827808285814581130650457595019312750295489773179642848856214617428412625511559952980581836484377784270481897015225143686051017926016073605742679490795833692045088995082084510240862127194186665430891593712701108996523647869257966150252487837295821018527726471277890667714242327786233017167842614776223010926591042097205825217922826393677588874493013928313736047202332346574719238531169903431794263195837664275004916331320145562714735263952426450495089166083487946179468136303750037927478874055012937205210732028322229778401705863043122076881843375155647853244706065975798921298311374183442807893270045345082681439907370080333646436226403705606464721757739531429256297615276380005034389754216511520649424607573025396136685011930670852247716671181192783393230781383948059760386407105458304265046075961579476383841820310046224350572094366621386866398874328521436667685397713640242393636162813470639274528716649676930351881474531961034067432436603740424488157799161509405914657259940167168091765220809993423076318495791751012957851857644202626995659198566058939672852747333809941084831991752405660895500700729992231197899915997136380421522691738373008847776733066353617491782652228477276024724769667757317782983408306601585740206258587249456367448004678549968342689028353641163447961670979412885242722364918229874351660037557706298311860563655759126125466526161677034965322591129992998851235868181959266006789814300798694423107849122312345915414328905475105595370323718703386700158165772295333263232452182863469016230147399945250939817064974134761516664451801894254574853628964541017618691534691911956395215954951095346535711736553601192914332368821735148197057452964030152741135299880341731692643121130159108347670503515256446547619864760949661600591896701680744640745077988096364633036967604025433213927479496230839655105488230243667613157221254985704073889600565987424495991484704470930523685707320497778114481369312346195987262338703630888249568637189929118567970771594912613858680643647197429105222746938574877989026468940944267156884508252658041691081479039493027903706934380126813417184097358133888484382877494628469313158670067628452661855427955042528512419686640931518329499761897348574414820182697667587712832504647648807179303734266844372497792676989462948261299099210808393568759975783680855176178662417810921084151938896405976476343450222266272533473351879532882336880681218831900233306504527802185589314834599183991427138170907429670330872491237990003368774664931651620738361214372023985259779074796720045065765821321753733658466257583246033696662966378347051038659026619584790226529035425132887091093249732576800949209497388407963135731143880912113612053224755671670278490768468716927452885114819603136082333759331471452990647786117039130467313570358430623101746076841101487543921764779367917709250869920395371216235563266976875152680298818116840169146638516326792765258839555415573101366853919292827797699354629218791628691623008102845972694532594483944090614475277332981510184220214471405069881986117737578696874459045930656874559081456734629331153669766918788474019769920136786751022624835678011201358625710893478513621272612798120075555858023254932499483535072316608443623328434623810419981610236247247785665012023294394894492614434838117260907323133683631791022182554137616360458093471550193212329508189721274752288504100379320517607309559289461503730019634298952977105975404393686862340052552321729757633129375758737878226665204448095480117860794023803661609421890476396374948135377367725163936513230196472761828342750246516816001548671472360665719334617520452709239574114829227436168955516200959994385516196805639058899407861982099482302898768290360966018153153673507253106781342046991622793758840656856462201398224643780745813058940384334614385334772374043067498574499152931682951897973092189225482548096865719971551599060592694345917712062254195694512322711203221991041398170235048605296271700236940677780866549219079882832094746514782036295960631858402329494949297524092026810642550550139416916152247945112399284268231956929206879456391572086740218155788458822410229642275080205002499334767780842285930479501858713271523050157272771262742430316491534102970613862099206473850484153026807256253735165110682822456433479811660117022652338684754556623827869398604863103277329781432852269331561709243230984926063727663223788115867634015179198792799268784376348329981334831932008020024202529174967097090928253515481217267749733519803171537778765287101293291649483255987973040427923224570294756374458088922389665163403352149901126150445560857347779814818266184768076699591290498262899494379484455174874796048001950231376025275056092249436661883614537065070142168008372803185408206161323924434138719717411141012156848879328936050818914576464274740795429701424633533734382321001415764408078438158117845209803018366309141698027602273022926765921511650185718264096806365866096361452634762633204298306283305073130903428085909604978466203037377759156263837835759160515946374763837057880608002862346516530154462931846890938417584425350409748205508450012408033973068010269306932386337020833809218375305975670735907776477676140740145655750942154722270928349220406704618848898636608771649531148587166286006819169697466679596086288782549796038267886025630149867481771930002063443514017828018112691602631716273405130062991316260229044404262414876571692918721978167947363710527565519211399754416694963247466509221360213175512784707445578673756529291286784347748565583035881641736652027658045706557163221418277602179885267106205359966876532024207780501649404991373364453603226024549856556684391444950828436840528538257411948234036401161382584749738439376960952016705241314913961909510026929690804824971810063234243014251239942587781153912728011621947817191323510393950507272836014034470305357097340841129104389150211580935605796118655004832657266560514085518792351239648788077944077561113392212037006414275875810860200708898170910338220035403339507688861868362855661197009219919115043585271245097447490714987942729150396284517765972666840666346887741031342020795621815371173067409340152121357514991316212779307340661059442463846063354413527373252708182017572617908631002609537607929182937728750349871109169053091234496471118711784749399645713572020229771358235006826024852653947459277627704591948954266364152084307577251140753837529020902195982145171639237132378253942472911026116944921109388672342857903115884054848982292852456856430849638676936076619663432825453132103452180267995364796880207203496187585574829085418181522591205000451129038476894121987848824566572398099668377767214986719525187972822899774927332094113324895823172711894214446466352271632934252724308069140577367336723643627654039143929457707174553728825313898525896889739687537240019969422312067231361116956439524542458785587843422781074261828010550336061968047638914073702302001764617058482448566738963292135820808033051339196646447711394684471675836256070862927297284653265899795615464562218983027548538558929686345770304748933167385994200952622853401754744904505836791459382359074896049300806559794529378429413403831436568813296269510195547641802046052402326190621703284755537442858080471804160321669718955283088979497914218662609062621313717178373404258120242381858678714398507555912250344684910042919064504147790529327416493003856014859207105876001642011864862418883758863125117519501897017658246028361382337936522027679661905446718470178590302608876571740938844527868265431281615671735760740984405339715895694900815795944908358103851510275258673109561768973978317950850572082295227965837692290709975106860257464061444350275319364965045635580277172143786355626982069800367374308744100612857274922074727339602796711012366386477829487209914830839683938257769278904629777982470352619163419971966744300214045637180551746893291309018448341827640864640148106120321331091782764114488684978072275396117720949446646955370826572241665795536831324534912065567449247789339530179022982652262735618044080090797187470749033515808231850932176315664981546791505270505002740242103698757531733104237433376126457013894467443787674992276406561017181991214549056196182013289911379032081538326960294775762424718408953477333441047888659982151255785772679713625790675786225693772446615370327837475137389343003151608982176168578264271654791735671674150727671616384696571165670454838754093475963527935413277126410858566901986928800595333099718698315111446227806165836345286468396267914318752260609400625947658549309327660446796065985062345733138353612937236758373573331623293401656169116097602628850298213417552768601571804610641813377912888645833129271518581799694781911351423787787691947615934869957432741825196301123150501567200684501405272825879714581356062770079037046595090883415628981913769982559790075954315219458618610992073859762170044337811962759422206021641076969344395935090842330728476267982505721035781255558495667705037476263642076487710151826156967021976245330613066480702454058473751527744574035368084507547134849818848520929904203179200571503117951714126009021661275127421307651342285341342926374722895163624799666111600928444324542356615056254449479794793800550203768877216477616119940334261644405438996423323496548705389626165930645633515363130644507889248287858847477880842288355356167715211588953762721103752609475471417858313753304061994947238676532974057537373287810370929794613678306100183192533887669695256219916009920384816476492021724019393432090046092518943515330734910016665739972864207742663110326650509916369159588955887116574061695566201711316092137181469540642545403080724346418547863501062813154253385410118762027969985367069658100238258462542810756874904384527502538737169037188569448915528759447303543998239811874593655124101995613932854227366496143785529029415317212641866773477173577297042918686821341008677019487915353151195436481229625550703619855989842606965435078188530583958383943009396132624145223456156551801111875906572847311735033201387471465647189012332035566195315920166583922367989018448998864706597896919351865735180241674669273694671183295107773394041420622750357138769045654325862505237389613369552044017284835827957844010869793269590285020129763884722464138399156325653843046642974663309592187033893746158745394717634862928173059642158917073298071098548653498694621527391994141206076226656073889757096105695538275530727046606805826517792036131449538911553541261524881767124199370592634296333975400498017741878031373929904969524279504152055812047210232086490219167913846877672503054272792817697093325903077722552755830646369748278718393669384383941521925530504085687963587758341272221314852049754530148660597331625168575863230623459171363788988500892787696017378985261525142556190329025260446199641206062321540635642332339066592927452183475715394637545084416734250481718155247988162737761559141893750645912167436417395347464837153093356859192110165262799524727937602698831650689155747659206302515040762654084141819650990915564798934708184327859749500504850195805808184864917481960850355783217429140794775813271455060477930400001492060678802266847618973891324167551669850062823234036028113016576690012420425457616896871049445507707203549804785238228747870825330581812903463321173148179459046036261401942631194610899320869712253593102784690451867043554514813527284699530005322188682536731877768386058149638387377887815326112652788379914718770636908035521926963408763858488473219701609993184766153285195176428093674740286193192813339482722615727866562893815153195903644187152266958637012575131795029866776854588799058764463505218137328300531100998645422770775049032942573051016700617597127724845810955606178882651328669800335985778086334211499527890223974316161949665731799315391085892881315427164303435594819626934944304654160853196029811590023632266310357723958245440797316643112715094931849368455959950022936545590514793845381417881529014232492239712594903057556746599079580084401902735400610557398903060017723461635491547874818146678154381292651088285554423782751222388751684663871883614785256150631965526953277188204220395805482241576988281690960696101227347250850455223008829135900142772084757836932954627234462416908001935853002695338999901198212688152872145047486749363603235371583086781722509823108988332689530116837040115535401425949348163723566575546206333721906303512566332923126596314612738371568120218242685172807990579771061433061237600226882522628578764610942707563828265985861477236199698707287692167700151069207547408634748614533014804763397927059145048402394450036335882135060351128772068523582765859496012866755134770562023669623581213228814235088652175374061441554416739289564604714035841867080230472395892948151965613323899595373361518103678879711835928790887092897093390090715511304041618418492632504491439706135263497398862639494543391611610718107202826468632839570074134197961313158416282103340288869149002999691129607444787809592396973141815965143339083629712857581656409224865347361461331844182093011391199067567068693438213065115884005427314274997840427326459067519494912559306943862675690045039821750749008447992219167522365818299658693042454405779265347969071547425369061524829076912998886301921530463349969031673961098357462290541101179600042868802513843255699823038144609689159883384959499980183215593694031697735081566354505838321849412368972649523758590433244718317554477494790063435426092489503314106912368980812542439509451833254545356383673832784156065632109101318499881672908035085308169943771386518348389176300976183768502883732547154492328708758994652038809753273878668662127639704365905712919862380107601662972368530118035357852760863781804409551204414747155971829081461654771354479880126687666770554407958044351283916301413102703058219771242205641230837395271115775204893800163340475629493758658683218427392025269060915341678378320226890069648645127178704051010804287824766862202518067060214819711282284227882574130312985880269330837736471588285517481689312901421139206161209782421288039071144575584754014770058135125849255475607054030970837647797408048505265729320144370380374049657047705863625674382366196041061726264139981419307946384337654446208205790943290239226576960629504691540197497024775511381962941585978914872642663965215786710861924694235671675279917120834796243420763674102869858929933846967640585217126856608836410394886189780237233431676086571963947313442140784171332101962037061915515093401088654980927382165768299510008286272145568998672611538912065054892766410725544333324189501723915893362813289974536951168864586304607194878208022883310279078277242599205955755437028245759623446986964546858091395079199470163980297199057561224914616147613926424853369623981521316532353438146345132809105137446357969751243719138796789048519687749092378851783534034926153826568453741772258240168369265115846840121869637751468607593495331259356269394040523771147093540437183149826809071312464830413165134093507271914716161492769669609844586610098593549092111182865402082808497798988979487078240350690337257437966522489866384603493389127957332364775032611295384458066291127328727877838395131736031690620399083374378497398162792611350020677874718648957704536244729431923788169972759982741093212864142032532118063075749020054638729578705246809593870863354874249069475678117748491462854421641858613155551953769221280031794421604012101174160716192149992165456228216742563522552401886203539596836936702126116843810834676797740755119604020241159185745467538871685975714812067905675905553917946777787684314799371650794452099353969223690539856182479639581962903417293768429630617516500204281821503636961854622223985969991368129740626534683936024885663678677847514129774042152900736227382670029427516956104608151256155519758672174005324115285702936830227939887521774619571023506447370572898385377333010320221715653897226175493209248906232354901737247544704763938031891626150424407962728366923743720211962606447665416264861944763112669830353940017103158802513084149712443456347600325041602717823860892754720359375536538455896617566078818505893998543373807647904720300402391591951018636426703584788316193396041699699231830457327746272562750843468798553858022511711709141489690402306261208886232378717673426557718578302046033786416138240706633016213966723903887472340656099278355102714896759461751549345409282815538329199330432270782842007248378785866407819110024115830472047292573862817157465115495644352972717255592644113459166612827126180416243942619984398176364579607716582568936059553758439976904850952872766233248944868001474919988522058250496800948753030451189735538357644033234590973015012622874579876927697705718944401846225001813586733232764912782979316599550928666640750472385305865180492873696999028021124958524416176820277380573341622150968848430356455022553515388009659331455648874864951338186407675123452052044399414317334997211654231625300157856229943686401771194657203253745907396769250669479951150149802224561537928416259041860009782292465180494647398960897765892175611939450906554902454784032211098036939242650797568117854861130973883950412593597644472173854129124642515976806310572411515804749682326421606928329209030486196230131657857612931298180555919300544194608233959951606462691603468760664109439747021454859026350947019586096120171137349910749936599190014285071905417145089820760624775847145263075158100059364357844244414407026501403174814209322831962343758875701064077165959613698609194210505788988266605101287008469771620219454974850604920334590328294833455139830898368300047340188221115219328242915931908226209171669968959699016809242083417339661062187903625024175916572542499015092987978170774580092955874131423955684912812964947332177943511499772532088397722762694513337252425600002772217882530681459749403579551064052570541897542291804297233858215005704859043606791931979440660907384432401809336142036720413223069646497284732847616551544731932562256586640927301692603391433944785378625998031163269455713418475791575042902080546583438997940551236085576563289567797339848225199125601870726677245442377188680435170323255236106848026825484159775607772961758923276019479688428518129477578743034152576157763700144709418802255869427376434566078695884874807312619410029316550336734697062259074474704682194955614846338881249050940820223406490439789032631150148650602318116981964755267383180851931454237128687000722812947184417116431682821810217271518045771707780994761241633270965895372928708538751920874267595197282336044530834690897261643905984527150927186954396710151671750971534599909496004116184836407019381082898594242207826918078824209816869379469386923798908436449228255376990733145991372613025532624100793710102899892205855105703915769138554983019121325779422962583863573214921030097469308591541549508868102939765015647194711377200839718316373346817240642838063715766012568790086352719944576951758553794674428592103020986499388554310290985227667016940905673263513849817990286870755299183909129969756807942454751397208589020452236790180096943914693080603516808030414696674183328177951270843226069861251889902614719021758697483072223853314829199343288549287400866265300882904663143076234993737148005899971212903757861146115549014117815672508984084140817182746898050089062133541476079018293739460308853544090145970574768106696160677857256956587427121354966227742262765598334755947523350724323894827934899321594662927455351661433554507221868941294482570297944180819530279548939066489822678819215363648595528746901331751115167349379333241627843365014244707165586416079741206517135357560226845675844524805119339195346824337026956090903934807932440868707128023025444561007054175410414268874025721457025885043994956222436122596784097727199270215844927700797052041967378304630843484722416715332767354672100976314503279547284234400230656010188557995553779105340062638817022925292608491755259844113188886109275327501841983277887631568943740594864548094744542703597928436822460949022167277646456614997836062724918004074465592440010930811119351976477362266357827752491759059454777917768541871393542354847952397159993421783088751149454395365169947352044380932820358131645396905912081669153588614616168360681926829999348619010342849530093717126234270011058726878458880754545674195269545677347148021789556593840739299991183993637265540959353481684400289663073782533389993091346210789908917788101397000248368405026732795939054198071236307091417284036003238128751099402215377342423382028936338148739837392628990815618610306547988085911112754843467055471592092997601115868192129199150535167213266143559761683871371263660969390602175328161832600303000852745055192873745480666404060363664985110493831152749642282348291547264573258515081582216306040197068973260220007305350626166635067494605513639490732518099258661390736507735559782917824954365941814229107844935411211678063975975721603776144210496582289225881886124412507497093452213427984789448791203105100586777263324639941736307725276672871487969826701059672461455343637238793810287580850310517712333845584829395761238253494978043689220267237751334110326817913345297714918381186221610090938752041347290379536989910457242165005852292787334741165660658275405448144586334105023833812002514909413545079822762019750922254730376022649104380437766595760737784239080452865793953632708339002304163931816187861741785260312941243070101691001996619452551115017199746606922179389466917101676240153455325007995730173437383915043791122222504700560480742385363039237161382457490365893670128237605186990523252954453642507870555649535056191626150497628624954603759503240624131105547451069185780608825148119309911161565448382778259048801636346338719560750062834743956824536279862681207365402191531683907947124020724993486447238000785240855172320027383687816748308842034386766243123887087537440147226833273333430238863906957585283387688177866705777125184287541387121655343057125834633251265296774763753410097039875677442591566222453479876610643096023996810500109808339838843246266163232722170317232708752952642579106097509127090091348589561708143501394793071459634355469013259197816882265208276595963244866473176170688241981196037126480145170522053962365178554124670843505840062204421515971818039553182482305075047969639459090979019540870132952663764084586920023981375178671947985156994260415083213802715998243512000182831984244527908587139111267249832808368202113278265622368993005888026636850208731984615728538226756934711764375060988057871194176225708028007279440155849151342440189810953319639976361700183877559932301366153214939589064882909746520678118013339273911975802069684622965906553083739814668743324529378171322239942721606638540233773739678836870702790270596258867800468567025537604848544155387208913110886629677312846842300525055924796826285228323390864139287450617948092265672270513424978188196168669475992257352330880973381732707232403103711820603778099923589965638364585915683053031125577648012095608537709492933128745213989165046457221898382741307571127249840867638268082776996867639511965448580919775318548327500574372616282482885297355428873194766305014528885111158368510037687140136649600037545347047342396146673722044873173263909001174501767584929748293386027347700852060702944334063218510993645532145129055510297238508843317362322403701748418024872666675808143641382510927714048944925894136190665252919249556649129286017575869657707139699567563427627854937133594506850806719755483660353826047183011792306963394231106975436898687297053657349268364557912518471567226860427955188315891469518102916401764527558555500684723366907789573371785781430113490775331270614549459849530835303790936027158565815736409984966944377040783561288685794453255558993154292773031588208186085781206629698808873539447930917812548364350596324374081931355334144289173599262543623225977937800673985342072205025531277409189710788842312314649865672084504299731300699472587162636555397299667602337606477456121347010332861797351893539280488783142967283799346831594816534714509989634573178239840890995311874991736869033672961218282813086406167058562413676561154806833801980855196915945153672135673358293940762873086060514146627880771747679699849355448582706534347522937341252185302324049116386157202353558045137244887434666101947940209408145942327652690225033307818911828591110034038047494692280555242514889370095329066180723755061811550105746067498577730380019786167182849429822626856263142343358653917400946769968229247791502763960042428052456822207628308894269549173366828540504863762548779375593771529953725543845786252286691979967862512106506684731077310111812520284785185819983787981875459694973815039767259882953335491720913739424239619712703254699357323315741160922304082037501765203000297040945887743520732176340258165733890794082344866687018224626320436017494902901701080414257884555525790292341710757660813712095889925787460655974997444532811258419622458226790760939402979779334967697590368965484152090963173506581507344521003877382859396371498870338606379448887159077829507012099584685661110976216254179637557122314244727285472470029153128366441847751274982305639438771915832935874491219890723925720713432369944758865634183133407747809637803331074508433280161926909465274194728625012990410046112543698562189044478640361938161648686136245993951974349098560914479058480065849904122153083859069031239685665943812571704985616367422793177425451315486415031846449865205846850260604612625834481138093953738599106880487301374992820704091261916649681728261926364871135487593468434144552121272155349994759174652471190429894755519429780575670336926736600057876736373193332178765087650631325265023458697262169381517589907365886505605245332082867041554875258472027097251956194899326975672060762688000140016030523253014672590467720343291694223474649538744148243048503611744971227760300977295257059441524811093988425465608225546422866912558154628246739183970352176602616617816534399403467008899905697934715565694652585783697857844374767610779187748626820837629976239434158568358236386004941730297694349664564502594138783881157229339797879222098147886923903262939227537892856782125480746724129632446633922534516864365859132263380473259584119622142159893676744658357934789811698900367258416765953233024311542309061881299295319353703301000662811380756286774322618430127928317535158238395080731470635765878317163895558680928326536209493018074646802394024810900703422286543419076567092629232882097537070091817398658248720520428278974620386297208290284326412135010463046239188358544982553764572464704041096563895969096120742993775261978273337027703025952673719415717598001565736397596531514684238212352659733176276146915774940313936730285007542811154459886143394599895358775491111604127788726043089307252281633590063118091694893970190985422671499681382368809688989878344741028873964176364479633964139702107958729270235690428033829677709065535757012383030333624498792766327490200267805910627214047802210160531933789392941735891704489326923868367998082578154579249256047150587072403421971694263878436528262011616736175117814243208163036268709086377869084929903509309324752053711775767670216783106034853919578279127197473339551437984522721095941569798918177944582740486666344428356276522062677728921523174266411176377352943544474620363903665413869897962092065907324520538998359690786121708017795463065412489181467307010383711436899358621126747862369533451370687547668752363584215723158902711056811136462529537431629765740482416698904906257193403139161536087949495179988521837347550703158045416361201842830570563180252353049511948099635514942320611523290760984525305480073490675879258850719257310511338231300356144331591583340464941347382856718864924883203991829817072085414816608563100241172194161439950108748931262302540182433368786894438901149938683721179810460964860379575356505575553532427047761083652260460600887659611075749929875342936300400680131630569295693139577244286224092390039607013000644104164806303075953950055956781495142520524918750754765089010844143943103867771999657969651504205729368169243881443141011392521242270744152332118745623485899337454594829862713691521904526366496512096424124958964419615090837662864356668894665117451993324163600223160047469936350635102829091597530099630115596048219729696900901454847992581530395251226677175733111282331749908622146053548184829876768514132204548564943163642377329597060126693093582633514438467353077340374480012741268488473721274920981863468240226917908056308303482466251534744836546938805781548142416008751215020581569440128442475765392874857952743706025120821017951363465888858795248981283217142216300716579950897504534481150990939487447693489332507073160972576589113800427876993645229200116910002843756112566329652700431706492182106505468904089284222255141404045123049790034863879378639006527575140812265277274562273271063692297117114413773426106086533606717702914362412034213573772007105665764093005910475129678330583198984468625028374713273873978026439477780658790418714022337153519627528600445427255509723522498677258715760268454209861264932969413528948033053780299021254440183801819218642354668646840278415852382390850693409631170036863901747760530047163079523856734876323050659146943641793413697567191780228339468554190124298736102255973020980795958442110154290945720463378580947234300192861900972193760049385876758719256926685569216926427361680146159443962132038990047974102042096113537200860527431178688083325474596126628946129056462726065849675792831628514881183318963966538005436055529634897567929390223868562198472592940448320005876582455765681907862065708730462118422627493162835874222139602785869729252739288188675416254619713230370303968934605916054256626019176034462409025497847080916613477439741976895722271671770099966375356712820035070698568653808963408533459077749060988196989972147017043932647747394769547960666640818382942039963302536949243787173665939542221886980732927454840711641297521137123919396191681772119831452351396284591384672655889706571966936187438781553016348948902083887882058751388594726121126128411339949044144059332518632598749921180787221904734858490321131242201457657515814386360607622706178898801121063145041882018039573099489941227698018073184133753835043068071555000362781036017574741537885830521744512210830514125153409664840956710109584070211655066863042954195489580538784423619915641441860594525616308375204682688730423670658344854614296212232055903346766410357377257684121955866847583888327681829704227130646913008692125412402147809237830781206970491471743486245258178214938332577917657074496226976970443722836361708437123812175787466504147928168517007365808065344343391234719932833856741825710190816749034305331473049340767471742342035221175393646047110074912161296270683368498662383873801411451901814110581324554072471829578019468137131946560050384089418942968455368470829972656898281504036342562392724841552456529009622049329284677911569023843300832749762871222332614884658950503273758760388750369267655304816404538208318519768966005454481658407640166294679118371222965017468940742090167021405839807573145150453108699322946487722125663537545003501492585000279461359739938893487270491922189912742607054957693738559477097609787036034263711856616388113028938089893913011853905972046444551857444616905079559740714155035068021808520792639064774705242772590272224597793103715369020681486970971985343271946096779204523427567596235134151029855206785674117383727277339525003992459377690718234290078055426956526987383030388749839745659972677937555319430386138209011588585494181274357495887184918982443599393835515238241475849473866834844596877681657300298765306355829033977858175714695118509953067674049286500402655039048576251705515211063636481848796112036928528676733632664221095980509098833356689151910216378187023167650047201122077036840876271150880599653180792012608036149922512114333011653263266770054974390846006562309447642402209161480529064308328466212921426208572190446443348278354634212580859128821243629868922898955721686815266596462103794585505332805753428897075004114606018486250120178775937326316029203758349879839237938721410032445686829496769973407951584453965245178439346109206431111187768686540801387928908428905835026698105732231823174942605982998505112441292233597901272180136355292378140685822800457568763191648203235728010931375658879475047115654833996562246882496895053030407375019094029170526318964556827754613588019818933301933116980309846093787916105388299020396575191603670971474051298962672998496972262407850259586737795976856697542461976643702978511725777103740306759870916149125537144545584307207710023370530634924704772785180780884362667038491143104153088745403405766742244165243271719842047522964370811555904610916855400551284619240407509974028958075156688323886357776720389671646098987876406024796221800757262378030378271479276053427638488455316531975711761863498626152792344453979535049944018691914884114749809540995466242802909127125020105778390635044547039691285142258016293379240479356191039975882298314698980476285214815756895969177698709129473887403235724932448382874921219213015318137221893974237652297667746059509680350945461645241852556705562930960713061092275687941273346567455631700814671805571597547873032100139560684737853250086686026584023412321371171592998627590871526895918962766333529122510640263181319340456270290810165607223905660384948121276223381818130385123716849647891783717171161513803801243322601289063822713694463208668714089767384560366002817249098162497207589261454983140737699535376970252515104976812113306742674929868314717564460125972575285538304309087941734131905947379724012948328871036741566610315885926860749072719053568904252847141646011796191796150939324142101748770947424671580646016933472355002006374366838669578658344280067276151641264574974784460954124881882374450433202786800405359402933128187794053699441162185668186358148762542673174101972264248222527355056892658394189217431552599847476212290685892868482425464769152405858004230926833263663021301064552833503928538070159951627675884681113225783441091506792625202431947124985391766123511335799840988885304280041839692485424834396076881518654528039695530586001022927781959981349574584082867892337588336286638207005122107408161625376857044941196722799686299564255471416947136904582434251687568343121432118115331655757805116719761855416198695158242631241210977796466200107003185559018491992504566274609376217694788707030049643508929094499893097968496816139399341448483210795612309383690073615043571285700239267638155700064172188485023032630994495307801330988953893705603897347894115849770981029947052260904888586524848274471181885819227426003401203328835985795550158287251818071285662029285419105610003912838796932146710837414219840618381457596739930315828510599989159235963797078163746738021815343159433115928042064505208486271284573204652538863301630537424440585865785791969623288278421231094596029687212071037455442903777740133216177836489583959885942433190303813465114325738596944998699078383544999150913729806183516460663350341395710234641651716333670151392353366932458044880359723130680730085804624503775344794018057446602893856721657352681943728727826463363122621680379417750834669458102577711085054828590966245213012728647516150846387928330185137640787798272476802883806447064099703120252672786048727408952055235663253295226026916584562717564224720521159977243083862140577819792037913027626149269505545350750363047352558376473890433230592094507086468644205100476900837259862921787147817123444011099881800621318983581449848855532828815722370281215937074985123477516047582266765117733727496937089873855824275152705000898101752250057327113848854184986989124074250728107731799940737170760987661813100511282382143257140385412050162370670371315756302369757582931001365676660063924427692685944597246212685832725021173589890790445864961751968040301102519371785550744418970067307411158438758312129670586919633403367973420713039327953553855585367611113163779718587618942982658131369464799948341077190118564592349664360129843510028152194919676074591376509758048832986303498108255094915843558179397091554571734612974823473410768440287005405190656481483566058662721151810784454007740518728641070701410845942926579817613397068641116367519506653452107646755408431052245647059721674321559501526402365395303829875993752995682000216797181764315054446992541399333506572473687184881346009951660544297178415551679567108151801764549057775203568703651595962740495223449484477709502074564810970109610071535891676706581706939579059329977304438868447394833098156422493477329629656026117291092120432050713667809064649104233907210384857001318229243927634361957001157232641437805812240841413962561392997664644009475900021000595491462448627702388178188289236539204711351439116507126547352298453031491193759867372017679208508378741236995353767438190012123905205063562135285994311753897675510816430443343340349148746978201749875270383486487368992817756974836802237021439708727756153556931169466109242897519287612263699903398155776280082737463993393691130847394090201409727186920370392078494590261598410008956428716905540981545111102740346164174248019091289594419288129425245329828993595583981530735432414630239278966740778579718312706100160472324308973430369638556047562509558814595226105010770249529320608345149291006059404883766521859529940013410207926343882948230719669530041815150424538608943156726326020400649879317611030493730710051490727146317265552379149232946877857266423800344112730534295096624554258424194484450646724490939245989168262567538506216911111586544208804162452282268942879321582062660062114699471553921434885639942122017790961993573657245188965891256516299111478260993797534091422652854406719210154016700743551836621473026143769516231605763531448922320907506884423528432084660261052580445501655818225340195256388264480847268912016334046457609876396192707071869705936156053705292027339896320828129427077146326083095946895948603861001142299513826779740719603131411329104822047965150234988621326711245320747836609087948103866525847299998991704971882206975164725424362731771861175795053453746927190343746901892925176823148495584891392381520597099108757400098554126834947830825362128268016459101040178210487685343443571667544267664791850794439753651614102841632402691610629143080531237874925948424145687651790465630847186827672386405881645307960432872720668854885459203669061996810940532517632947203401563441448094121678501044479846470681818275357727333045884539834968911995863816792947164822600803563785959861406416947089894887279902543022798495581511584546267805786763859953406343728865282576391450716118340457339789882892450910375406503364557422304699319594402173003897598413693387976053519226381361172815338047483590545761971542476178211449834204383688159647042535503594873694262614418591239600277661059476745519241145852093865520306723204137756996788826137819314837776200032682521726765771355981296713483479731572238564785347166378937726871245657946960044880744294593570049138314530762586682315875678787962342938643850484570213071378270177287799332647915344679646926366839386353961891502840745440730808886639221154472199249380990209512560076326783410831204426107104226385544922527742113652769467859955933066187209720701855921780388684333427948514765057510018508492569989307049643178730821736057375314624414576797079088059636450491991002580969091158403643129776920515198692720858752140084341056301664253087226416979598372727658294132176463852954425243853968249877140538110000199629179971476195276111052660418814643051895982340149178237520302180211453846429511272544378561576050665963174895677409414627778479089923036438754086016946293530849289877856745835241442933309379813486417289779234338620001376075566177486330036906074700979724753763081881330095735798865947476914659467173173950827498705090921145867191234248073729404670149470698284234443694392206809677647845860985961902760244092695318885715336760024980144866580460215703341577396257839199079986169354347713318038789216592646037260374686610852184505591891105919480770160707243516623384786790000500572069758167069943165857679208327967001829766113062803071507587014013579044718318017591178741142976546623715169820976837014000660886705934804046516919379319749995076459881132861973129585609778753976466892319121345814144388955819634195673008977822839126279845997728495371136446581605450115582901767472551955998652532721068953430382302254759073002630396901611051084476863338418120949813093010824401991803472145232035709873296434593500090538565257490970475779984035555817572896059705805920387188695454735000600821566477756676633404238390511578523151869150031208023209999820042217620848668364767275439482524917132999790573427648755387983702446783523422231411778441484637510340632203006809964483908105689198426548656359015007949248331427189617186445714438897622566607546416300675707324331405600277162270105271806415189718383780955238376263943788062019678159748663195589983666375757761834089609950915938686501297631841100187654818384283087522212901036803439527589105791950545288525080538053286409831423569208685671367021520047582348454550715398464776413722406331225182094856240971817598560214417725026969551453852731558409482320724180060131522681574154945425411794035394400414430226523164784097286583545318130435950215009154480816649974968902942155182637123701756812033118960071797400579315409831724554936128762956802744680798480526475562079571941626425383480309557744567238278148383435177851898024665305077221728037476290034210554025165527798513620890205434011854719520449515916472156279914827237524072864563957054719368205415807895347119168624663938680522576488595779598495977281914390981139503426207838070973793270803883069264951533623622566095791656588737985242149561584818680974523793476267902453944337602448930722931020557449785492940390093932342871290769294433616162021660186875035352458473310844040118539680175695363628594150433898765421810133560103551954689888815134050287028166443814026449512822408114493547541816234318544515758236198631832632871179122451552107444447825937111239743237494535662161164535830042890457467107060502968580396522578271407446918141838389360226685925570382862946267066713574418959314630962803026001367637704380693048626078406941184411922441872038160311588925442425730706093218397322371277511612690723059218513171398050614661956143397530653737966010245292064312150731970488274517835692149226129500423037679798682482559989524658219516557855226896398176607851035972314319012309915337474006982060882766062512593090578049738423644858001163071869107551143210827553444570340263820623532596334852127592019266293663023460641973193105966473069903207598522844848502410597870499778174493280023554135156524939430147216792238231147868279371379521879043817020803692182976245232215571215503626485271326071804902761377063689025415709333180539636008133421661297379264147138145072415278150459156181286855209452150186956097374991428473849560461237252191137490121612409250608765658168686544295093443578783888365706296060279101702754759168833779119620989777377600992763200828634695435787164704740586475239006644795343339040534279484115018162900999563188482384506882993275026782654352803780563707046428070477202686154495299036083159741018599202626921439068463591440230864426348473223796211169714639880062511382050914104311246976510278251614337040481708808015430249643451364171119481477019670802029441687844205275295234229317785920334856766931003964432934463931517177567145617972364092701916673761446813757464850288529290166207584242702801674864550692967269947061245747527696708393780628814207306345477318880588959586024406503971792277871679775610279233804578993960719138763912226784634477182868451513969130899424311779565310588604435434476062254180270064582974815918188444455089255591549413722736724056961547019621673770976532132064027701459628728060193051928590380827198485207231067536658746069485840108136677340733600468932584389429087441899380919371519079129780734186360273327252117228446446493424473860367325350892875422908167496626427895957737745750434059992408446249857719188006170986068774120414413637997155764508022097904163813145391130854734332646078516377443408626972032797883668719224627017229769061537486668661578133278662176747938832886556505940040245847149358356782720791986152183470755834350636842752125460589283168719399808397976942345145946219972794334880700445227826259495062212046246277286229669978560132083642741514439393102621016720072371801329442637395504858896128296085847817792181093849705527205934344452928262651203723534804398825225136314781219841651554876990542848028976493605385222211421569464155970466093534641281158422888317470666888003845310958691212220824832584180201758336956146212305766458783664924148646690892583834293069565255413549870243559474729559939338150740588049851887805368467007504707854617115323089849787566411084660215896686987201481565187846361384397546271498873907920849095984844774841934592418326367702120466225920983365029785027769899522418894050976581562733987642431498819396079677846874217950134562233074646558511490602945783472429940646803537216225765515365297784659642845239860381132918254127175775091065492441528182135921700581739182419314899066031552569361881804799799596802423015701684013875369015520318979207033722346818155058099283843859829729665469679875892566041763529057403121966410079685011679006452061765558343311660282307591290385810861562853737649040372601783989255193454735682874574871736665173483839101893649148562492679775055213435236616356199009850477940496310170390074847771995551154972852804803685846533280633745046910173638570085258686132237159409138328363562448524508208905935124712751755104029550353621846671910576727221929306708364751099095872190570191633638405350664501450838973271179076853499271900528090917218510319304255414555526973793279511707435712562168415202226027780652086077824425283450998909311637910634141661330784390096500666752927384994287714532610115908516760152929228154983015398893669106751638451929887113197529581926404289310539585907919099511696964217396485091487542419034567217365503140380964438524060694743421365677752073592116928582057284635898490355644028818966737773995649108648673342919398007501835313046438316783607723185288942202568674827161832463402188031475620732653638416098832229366215864590248185644538720957948828282813556504221939847026004548193469764368510047608274315398499278633900850513649630357391052591094175401392343138918619499571369088067103999794913431612677360317269650598500905274147522667441205126237382862536459691577531236640842035479759987204591304205823039295090425344614781079001640854402864231477946273605553057040642074385260324837052653275847648975051056741358781696263899826287173676410979367729651440668455619411136965816871114555830347089511359398495125950376253838960684719230341853200862865145006861196338200558203661695183358712865669041823482817686034737423236649180121478253932656678197495766151308364033005760597134266439639881984937457624190735112807785733604800990485628477427778196162197013511692243268532606734909099306951092030127066469098579908583480013843025376573467730520716188770671118070801093276339206556122456961949831247648345240999602573981706430454232865296652587830364746254022321197429779536239269779734677437706418724003234899533447522329890641629965547934287514219566124177665280167067373852125119111246117814607036755980996359064071048940871825018164539298413741058363748114137645867113564911704081785827390898411604972607688472487932894445444372414592386517100626370381351652544531124900319789165040342811278149712432003010076002339427468329986667841987911070261302778033883090269211095952994363371928189677926564300599360231593812213300452388017045192044336245783807625775921247424013154453174343362727978669765139377806590736495361859782712743311592016940776756459713889458862870977957161394702471624715296495497376589656209138656116364405453620720001070846956335022259656139049206776981665331107918357054865496632164741212837625187681504266298652598525359353810523705234707481605686213223698172961226800238781529549416072970414781197435093671104877093160517074509625116318370320315026831563583635538839051764220230246317046796766819406498833093244175906061497558939519719503225856595171167610506749203072025002036654033304885065376917566136463826687449660352705649367953213590881038993678586784800440523104926227764737984076154888528977993718638141334467903863127388641671978444623227530309527709580185136553138047487281905355810887354490835588602794992478892805199377198705540528441760730101513195609579317171528063937678784874114173901681180783768431918318729980054671265720767570738172230517889941112360033798892699981056660355255830323219259872065795530425413563646690223347115310271564467342769648115284885655513659356288422949330795240790444673668103186782502531001700888218885212309173054244439208159955388125257251401901151476506459285452094262924071739798080785129461936476962337307574291762966771208197866132231921221336929583536045155001552667019458996821085034545284667860288151211347701198448720727771702478237060808557802089611498662814723972223640461418537813262300638333126795524475425507327218869034888457831589384410489768767454533775565553425062103776221896279621927984890655771890288876124027939851090570267231593969319337717563357037702165195927998433149794463086481187073820185905093245788044268757429022832365859615483090777005830779308494702022684662231067970986321239384895603144632600652846928511685916859771165908254722637014925715690241530095854770645704296963890721254656111577935953378666327904587516964886749358333968441725210191221933023001501624756014340781296591412411475394373214756586415192077700239457118733957669339336432066203596231598281726139933240028092749992401909759662876228618812583867798331982742199850980957344548813392953477024451444660403674636433698119095068178266030852420978939319725538049400550247084816489851646573556325923265145782549952263938557862005026738173911250609568344193436758610217527954887691645705904482100323355483901496514967084542511878966025910274110286654749247890050112770413794281364848812215252700870936969775537359204517571872693060128161275748527539874700824857079704558925949542664313785627071752791523085749321086105381776040024663791201357546739625937346670202306369329806348577573137169753401907946802123142726369128920629993087674891276600710801362163086531823914113805177528565555493498962832621730710066462543834331459170726744566806086285642088053241947532659646847511172051428250394436618646225320062024459527052804789183606763530562903668815473566308596465208523571187497521956782204301095157173445649454852752458633082886909540624777928415911290900774322666142873027477878317197811810487569744181897712669571877325693095537155754518284731851781310937708357010230576339183675630229532948384040292349364223312527423649269765388834632529246477177751551828396215800246218678708097016039879907615529119113421410680317692270294618494417127026491837606299461869098956298455853757615774138668285794227550921716264383572070575842972868198701001613053782405960060823269171382388919992815015849523407794658269264746970845640499522687009970210201841094000492129111645142111461574700814463219219145052084942816055010608888980939006229654394865584790655644359252423977293038828399575970285665381390005938371305516197459364776391585685929505864969206158677195073914635925578060725389763449680936558530644701074718721349878962795804582586502126195866648549348547881785245704755037012333376999821738586445763321505693099895719029086665459948120733688821049474511646010139888571961642760724214923501826196670667310020906960819375329203323199739792642179045401890348648239085583980813696149655128369431908463415114519768646306819476427008772498958548173717779431287569578836618097336123223820458380635248241022400391138075042185322178902467426656418393480312701177126141844700274858101428935781332321594438916824620353828815516347871384880166957741528996928043828429903479423764968188778040815335711344943326889719622788372711720781802754477472884550301818969376984055419577630079444710022954625295529708531696433245673768478017591037241953042873240947595618492174033033892729915097136936416264583019661143964137527667250600094739917947419135417722968568588040439999943737403895150174151541160107821435102165875189792287772244773537324637817821724421238727227637825847927254559008530311991464396972620655504743374986070646954137985970905156462927139081493055900725807166903385962818860203347440707290660608400290914595651052750948743030031040782286680223287004429851016049922348904876638329914555347334881671984930683889884268206725752653341064491101619403457247126297581680926480606323432380661077810168955186488294988728289834340507064283044814057676089763182095595608584488548538407406246269306564721251828336379971588722356720535966795112660278128085760834890748638679431362864234507224486021092091451071079748737133398489031270102705519061601911888982420066827058333098546659804047524093655744972098780878250543278171544552942582495075059941912741640946944852296079140092610555235557642645844394130947686796266774249893084974013218606272562691717277194795254165848619125154845131838498190195741675770381992262611182767507653940957382817066454639234666188246642836308872214780157605488665540551288010767812692617663919183966979858955594202969475186061980273920016482294573701919965711275929468849889718864811290312720116271539115334149696727656991887041999642679320496464678820427997426514442119351899580878994280874261053551481484931912100273629623881030867528885921841481009542060661107088839937422084893026620515040388431333657379622951910050039633151901699076433327542785601582233399826441933878469276440570768055861929675269827073757990494619887672474616630584259758736041639869464250042036984115180170393867876567237502536399173875117071564056637629737435242251053543182801546858549446425139435225515572835574511629387494299609634559625757859429995899368509326530168669956096942377751228680206190084647122714631253862458674355741729086421456501027329367799702469513081159449291710089194899421893828422524339205522794665968394466199297150763507951090748845700160878057843362920404376263472449421404902252265516777762297058709157031651407890707453189148488366275230869974638829771060805663750212899389886506309907536336521081667283632362998390288210008365619901714072505722111800505151672271442287199687780540210360700104577177580151176740172155462438129776359486170118287882638550540739875888346660752029946824618982711350749505385301748821103618673296507755066294439941559695352313164892090385524168474149575683200885988308140317118113664296336036406151931680166222985871636591912638073066320854419238385750813901578918306943346449873438336399610229031454966738611152585561611473001664074038139460984709847111880729331829150939431671420553050549763040957360652287043338815719572760896396259411708394295684029910814444731128544117157781132786103196399281477964489669931482981599679144011350966424516354325805758217945112851445445652993061825843867730090158705793821887023172224139287821826322125586479578970169517686478057992095704147888800193871663791009231742503724293319127732483180198114718137289415597667335821415259654566210897674487878561128658692440673547794960019628251353413890670637790867424589198493677064817469234869539104257422210384703287017356675014902758661606969161493597735484388223618455011682043779291350771184984489284485305270113454651712051266927755419707524384546078929025873433613001263396322231861314864672526236993914179949883233716862376213528951370408119943960266287826362673420397281793891440783022526221646605340092591506434261387339629254757716508984188330450939398536698357871479669172682931299652238482556359344679864659071752262736819669329709305169126618038897206726694593542098646852342429191014650784684338419743345681253898038107888291229774349252686288606858044099139300777860100986191968098519288960324914378064947379265319668153505330109779999832479469380052142074415493236406400666486053451062694114264643757976370842048022783377888638156000993507974581850297705162725706334053782504667489789098164665735637476683771695347793336175861539600107917226615019016148962101004351315469549695509307197555808646145848507150886726367935748320821438277451982116495843477718288820174066804207891713178548939045706866216104169077987346844405001541669581951451443536040704925318393976691455915253462980322829939093212904058495340545389266729734703179789093860754322064298993358582300563989844941531739724031602263855340490932824039285314932778307486007102319762955173436860845493981795869044159556313408962173944204818684870720400703151930932269177920256797561151605007718278976779932317032649517552503088922414369144043977259942214243597353178238845058447181577924533814028186873541456258041857805296645936113592442989239793696673486588089003058222756249961029141271448313299492806094563674253884718703407022899236791816426521547449184299263638340410785335944015584144991364284296032203556282149998246749548489793786757296292885083265051713523290972145276362062192398724341030165627195110986464640335739693449597742975326360312016929329658497458354227718681770671072236792112812187122345300094722150959468543631977381654700835217638700558048006869306395708251382157859340834766651637151881365967621851256047949685173119166847187377092190794645311062763857181760122925873440136488229942358841792375912290366243219895026089312024318617721241013942911426779601551860133042336132681280838936410534902971398161868382929727306583162802681204440942380312042137508124405422662875283644068470135405271448436598201317106766734453552998176112334312068327197384339031949583727524892267889044282461910754550320713033692049977497663234940688928944962298352788717330439189407507725500010181749793390304070040291803579088453918416970028371086810432101043549142904452313163387728371123316208834490300667384106386518494621703206801500515485577390632723811847242364109723530013894661066903323120340913684117413298713171953551990636068083113178606751613775064120294659908056736389848248898929829178178476611643967808548580848756922994346402265243705835889233883120240422917569417306754828659920731302826228898327508053091745081253653475983514895344243333321986204607104645954591829373515570577992695156736299673449957566299089113412752378625508636027188215138801958608991747631951117234309096646794033863571021063726540391150208321527303781261378549835861928163598197762251717838293611960736156298735730741227171474764796302877362398361374129274459392761026923030746462221684707165458409246769840635561500528170831354619334146081326042307207594389284955921056273915943048394577817533078128732331457729018082533750620865697287428296563388450839172529115575044806148513339145915057204855560833670208144629921561042688775058214912222324954455295807862966466790587974718189952134839832737634464527541441888443522294670216701013012915810186399306792394706592646357313508637785610388533296125580582889968797969153883291664280662411070689466830003729014078958729835955345319398717459350155305035735385135440855380205323193563041127454180168566208053256173041960138355270709772896097156990288560633264852404760575486107724491305627172864672615094467723359820505426030914874078221694378689651491303623535319181472404603654720904714620553950331147126131588701203462039369453678558173063716148986235730885677338477556317760878861365294794650231040840467945465119439445644339259902264892315315568727379222692614588040787485569952778626277963085839324869464224931669939957521455679660852022111891508477723475280735001333723153038627902102812416758473142506253050721544897079079424878499745007588813935744114262296373595477621771650198462013626299798691869354475337153971292114943917943272559560980582770997665459119308306272025806205663913563154623754262971632424539443218039175357601553837901881724318073821265496437967458263373933671627901967151012871803934114762576372019031759254138182130650806420141628061630501434548522514947902675761324669577812744078082643904366267833400410447782982461622871891752672545067620361610682699670730544069117482728758908591943350420116707219374483347608868310046598289373420588184851070098866291967786300014851876020055270277929273800059839552377319833738058858610996759981891895973745310253997990522792494508740725304612957320633796807767672358696307957611269526048110616931186057831616042208045570024397384950032183561486222788136583489795144765663302120908852354004272838096591772947568043211748714842636318865046435556152871631779993461619447828211704577210246583761988016626233353822131627791266673765046847346031079458897970753694048271278105359663364315800465269471105328919113593936725813801070971216107487854600094813609563592179467182158243205151178619273078942485760457985017902233756249169015248582910204306609785880331167540781420038134813810280307450775906168136702000622403104676737094933771653736686203452644580712438318491165693345330073738511017552030365789508483123261824632500664698837527782228969370042471591064268073152536964944567165469976560789672580832861189365733943883452566624942915512903241506033276438523282194360445972874884778309632663761562571841085997014823765658193792508404543588875889484969442072752037958008546261898192622665183373699340822602498865215377077768671474307325392289265850633658128436744468033343969185111458298337461776285821552325269775348448616915524549764779618267864938719955997459094320965022061363902038982255375074744958123911662419816102861154350514098010534128929385019579212925914649152605815576977449867573489035125713052347584381916440484371823717008909065477680089392620806423273582184693877181758471490788113581229641440464239646445403193364671625851146412428611580523390391219668738101264325909513285003716717489721476672180915943251394680944758256332036022891563704812831883122708276146146388300716956622116992124983570569065471618783617352827646658620982077708511240945467220011071147080824385997749422304169799452764737512558138446519610041956811391789874605790893227128590892962185620005805043646499388982169371494733893600130951220028149955604288977957842171794265084495028809325180606500982932571020053849777059044648165125608416822237822491492861510050909355479237227087468210530811733033290766537595067510541012192153533278606695602094561263588292765433561693954421394538974506811821491008274820454332341802231656411341355397200358873061822407224410143561737109686102280065085874971744645777919919617174795154657628068778674755369527523388601569874628535370735959581427730008445978462265742748951752819721218851593507433170384102677033424756018142868579063488526468363519106617262038492388392533760345001518498803158419525596275485902602020271330578432733677620017320590037693181554306070486671274612534757461821134288118746557532081566914251197113380683479574021092204321448177598659454223243802640850471746915018138464421472332508640304406580820390933682390903940141512458331645795469204684426318295987113955068280663355875720321854583103526956815444126269435706974491133434334399725508734492490158705824668613336102880980415712939849708900463584034238953983116432030509620300119416113563499802362431401340626781730406030446388040458773961754203911498266326904396939279258518880945710095050816207916474592907231701206831152994578957686832451741976793458361418082095575088036606818865825087076439062854816423567147296066861436111147129547386694950753293195430740699510853229331967428670095042297710608200854455406782771469328240501555606891181098565513241146482562161826139477901193099559649393797934073890233495433651166443024402543522459005025600076734614358974669838186017001820232786552684859063708156636094567966729744034370528961758342128117005376841353153998998754246862913634025786943009528367453799986340776901533022850172934799244217950889684282816055019015744517324124170221478757144573239228505628795197052906214482107601699441641997388268696049660323972080969759765330337644881580807265265328235007390279962768332644996162697558578541982075956993638840591686699498736421439227184503225843444947592919674012799233469516622352413651909980391821494979533765855940669154520963213658823321518721668638251547862061927400563883342733651448604817951577145423478600780904236082456710156956955565260896979228325468979722982465713117485993276246228838773063345540032350008345695214929847175749171876345716647997838273408352520044905193139359968266330918680056217598483922589203589496247541507212719708229762643862745428721092635928110627160374045332853823722853712865858332342067344045619565212681482031220289625786858118457841695506692394347358780846474376703731617662002167016109809968778069256446558100767364100226425687053909722362140663037586889689942137665777848008258547093630391780652535718313883780138990118519199648026362269300111559986574965532963936736369123199092690604758375551766530207577053083674725204308568439608866835822669557526911309557741119803258805180634959518555095299002169955228092865044947971001793488783353523617181382640455665073756670924066304824765893906608515914303285985982344262385876182149679893726710384193133334644438720550646136227770897778806346571290252884411012702644962646074295876268495413261887573708364973575287582316441195463562551367274598432936064980019758158182585569242539042605638781773942461964864623471370817627723205635174434719382279836233790240632882276377248409229349250502110806480735263597641772822717289626665071417984386800659219445735365050865042766976028186245620607965031772879310281322815022136156540279766050744232579315849709235427525262316750532355481600499216557680106533751587142223082020413282059992808565949312368031030543972807371807659061766718678711949508129269604671239629161174294219667303626404526783387038528143052182780030999740310159406718958622723931702185236255785664995144225323467122352989198666624233827602667677092966350727512696042324164464850847434363148242573863349301186326157864228415175539085044685116188563674770871283559338600946615283945250946358828341481189863384254928214738430158473200317627912974009795651506691047439074248044170805042759764316282724921038718325347210043294147159388055300785791786814405424372559068278648601800359736544686285138873791421027165437509986510073323225371323925583968167722643083654650025723135979738208278348167190385399822012653017544250320284460459827799824114133045930102717315711132226911031662117851307644028068751838412447165744742406007215427858379078087344791729704814839468544569689444229170018475045670519341923733933756758638831251309690415607013047424790979630445819127937190530141296915587477785829168335635431913603873527011479461917638125526694956100710513521090011969158905210810504802830649117697199153829342714354690608824200732515553877712787259041603308753499729824077316027616986023183614089665595452501945588099038915808376812574198321065807211663536841994064616982356099743101986985898400049384095636067211074963596697817038317434190910566875808524901953117739203012144734246133001986951205485157634954623210933664738519118936492428015928444458876070146888755221895449420748842660264003028074167770127094560414806198078301056497920035971895693289907869424129240445855005174424899941135614459421368014450782063242618653216145829786477759785943099198134476532333991401916195500845313461154584526916980824087953580374117502979177671722981583809853953110625067594712009800684175023766608122667674029286960759983828032355025238510689952444232422263476063668665933261356047636498784072225796826518224916263413919844398318556688768258093013561862012156701404444267629721046885423286856840587397844848548755868357245100996271415137379304717469583939444634453521226701268752165940317867056052969139720171573826441871594073537656554756375474079161885119380420456727065871379321236043583025723165625568457174355383676542771915288919250637035462750371371680362487077789901602230806080142283779993337413147594263373664518164379769461802608029685710712158615364396083395242755925513062076933200957165644382960199074709803409428925565884413258369997195226724773781486879396138494987040461475164266306392885736543182007190024302015190620441476482630722750202798934738245489617871911549520930359886426032259209885809262388729179248655746042309775067493574949048944779940166807356242032334955215182483957327763637866964463984263156134606426536026505605816844665387213182265849979249088745485614363611015487299652797715778593121461013398453726434231799836145993048328204055987270702884935007481256534254448204412582528629776084290886065475999148363179530904002744320958561088471544473648411615041901741478271607987127398024178128231654867138909038781643411430395387146732117030846046963387795396070422800670762118022366548972670821787353576894228739371917993107777285182816004988836555088139144518250296940532596720546545823884945065858154549251210682105752776981116872877209411887727410442101756069455022050849003156604009256755452211389930490363713399903257764218163502548360269565846435816478294188114486812134670355849641603391159982269228315145541447655919370937744001499241651231182330838603289756915603878135181522082434517386948238094019040506614668915283250295666258277297221793562809226675842968051619184096367368280304333140544840282414219335713881926232465296247160360907886321108456237003562975687719217606501089752648447425214677568704036680341392022239632641890982877823677788998432568677045918185115725490153279650067000776436021064745295359385593652693779703174898512245608151395659767257648780857489646529873025001263737242317129758977952770033259520610871549270762536266636978030543148459990832271964491894136309411846113262339623146311326376989608958526712269457563889424100042053323743028433533184417975446057959176307115735548293705133451246514207021065798527856649810563107204453290753753481565833727570937671821589097494667333970793666029147042120762663069437815640729284364156166266122373995343544545604175428378071089784349177529335200104068550773743241341168503001928612628730434185789817070577627652180870378456338976909783879152273976246507994307672154061070564542799743413370434304101046322007292430218672212929526754640743358713642181970177386794238265234659918672594903764912947363420739272007996242376119921158052633035874068146750151987316931564828707493812614386250793571324534567625619566169242846718854178022241647415032731331977615127919736575158748717803627160373990723248022045863199373510081466784909916322059329978021349432093631322400946459597300566744231363679918948722160269639582092295402833283840460970960436678962598187981453487484803489835885520368956346060309132663619556295305511419375404373486256166749806131979267789479807137692387950769925744261464901337823871435401035186856088409018667832601445572517892018161752083916876583883249264810482099064019782834442075135896618730180405993454705297718051700173264428864252434177629341800827955024950427484899774928099024316126486380088391556815577292907449382747443105545295650464918081732676538658257901578450446923465122925263065645955591208797419953348196612075772052891389188248320212861169832116462759772833779324818620247197120727210186155719710614353167260789979149725860179306856773382087251310546228557666255487149576991929288780526227587565720086139942390662430632800949965411962924760089568336041610162859159393584455753218500451362782094105880640934330988568282617938685887981394568252681930109850715952139391070757182347764285689146341365035784305957224329602786117424144787009621464880702909860289369098983375539630571999717773613636417284796808115088944849200023312424324774208260281401638536205304298210686981289973373607281535850111743388857879815994776347390497997893194552789962434650886450599459750517087966473971223507101294177613316860976010565095653517456152293111774148119399359091458793476873432989579573596016106298272819815587864565898664651951001277363726041905405669165821915764347133654155919360977593567152402355523731866435025192479534473070546179347332510117480620376521766017897189248984128473836367696392990661617737495648313823525570505462707536347799019050334711305458581467359275694559841227421513937377082013778584445553238554147105441820897576545427198181767305214602972260379581195462560615875209083756623558109590715197877883372829809726456848022841216358184144337306771255956370409466183574873925526953614109426316555029651079762255938703125747869307354288967676637380018419514658839335660746859474702993769537163085294336703899581115570950324927460579608477468748823301470939968437504929115993553450387427333511382880519840748448435267106817446248470915470743484616278364386446473586813202642685904391838736511240228845801030213457681418597060146173730243978258886678763120040953184744994730879252943604095612306159886439881220167502749003101318238132161159307590978823515808383365989086484569452815150351904698748415374971765093100473078185841557774809374840315713712211428511168156305363697653647585500767750593132272853480533871694427169893107673286817392770038007455707184136383966482185042598725064014067979276798186834342718220961346728126198407099488732682815800799319740305859493000698374218893050967079818857140418987768264320378519440094838440477381033876287558967096834791541121383956252914327253196116137773682996262757223279054037621731086381083793150662782402408054836472739363435835879685249432134483153476172469336012864612819420158291900226986320620980533195132177630749524861264379852376712611945484177895886309971720131523228906032692704063319554040069340931231405228111777164870924504764249228069749857373081114389738710969597278387142947081575577310286158588115637293999030898197346872661748995543428858696683774555727453568836551902603697824704351934976612706698882743183179597955280292997937962449083267744376533118299722159041545741078878480676928781926157643332843474471492349324290207803675807198104630875237607105712464874851201057402251826117252388348999668171929058074676636378072403120718953576666970280947941947289007764946757974548936087297722019241284005659875600701417476693997535955675567733053939160337485794443703417881153760264687485029550163110436945242411691642822763332735638898236435216429876040094634896592803486190593627644043900245167590427652202042211049247252745282421472257291388079542347075552006751022751835268294403742963556523382083504838128820235411411178707891659985114587375566425372482997981252066956087402657565405121481840342927363673151208358210998972944264575376639394704286549537345222529413767819625364756075366327833564214433292899021145497189529520533001169138621925370686473915479410610888398699218123478975768084429425315192677954034271774281053633372400717564374497419375593250702051381245484900285021775681732236530606483283362435880532903222479443391740327933927653832038174213201227973082726787930672316106845035997486387167621189178246113782480055936143745168225059707371160417593568485368696359251519724216372691996623432068914563823510220033094855359723551166714789895533431640500212020926084273871411974200298695304186732562284919623027116775014170409822925502664028192789325119481008105882794639284896106945648422936873220616451592796094845428529903893563612838877954824794810627172306946907953770434484910302676740296845814289942287844227905217674477462854303078017631925083383579983500448811831644972379942652874200696878302501649322413125780708324506220271834366304316841851018538014025184675562346087154722008075711740468833197675105859724216082848685110193948727475286604254186458278068073369794477362630481765624200754439153612443312642691810198289636179185621670872245172836955749128831177802152929017562981365338276128739802978891689968482430303514012342779217411779809039251704151071581490743533734857341904390019293833969094962418956338153964771186645094926020917785413756387199996397358658045990071558343487544866941320075031873247428902044905474725610002990805054861335388325335810961155989165405966722635061489943373266002471300523089517086550547952841003231299218901884426373480920888409048910389872611942175369114711910699489532337496061892059309946252526994619352782622674073850021579827786826888274782584078659804051453482279068244677595388748453151570525307361101966638743302740481348897329851583767290014261368637217839981273525926262829684877840740161928201865793114427567274462471499690436325636694968457243871973748736927546468157817614935342398271332915103620586622013101697764193970931354262166578500665186013843210372860601757233488931393796055406386135786935017038776348231992716789052123520765349648973022196704637403835810662798627046168841211252411941223667496888483932768787198290863988958535152759871555576815043640949014893443496873161775183226115337137255631140000180267022926412184749711410419493590355990915504531254525339465420140213431464130376326653702630150818791209254580320401376738600351435154396070188549238051290557061546068981056962204087821050298444674639996247052645582926675387201840729478142439156001288573113932216457963333851544635565578638554504659632906602681333577727005615061386450589300909220411889237772477900679735047342803748106457696734892898139073248797038452582951713185073929258879163461427981971428807656410789807147600734838141512841219432957696468513912652304140489689479266278174090284385558217901699504016773842802327786384665845244458815662865298506641834453115973049859720690223952206535909691126951707519373407886062158765705429272322376694235932494333942779911684093698477771777374183083387893588020928396358208701641419821485814024740070039114407206197603934196534822557443697049347597949197811609993993602930095779403393772061476368725103234409776952425875007519588515041499707477350719203201398393457162509103559471313772537890085320869837278236877294682513305657361835541826848049433649761875497522723940443418679699291303037800689233085384877117022090261048534825735985589368835625874955796925853514910566608412183724558184119241046714561588344980410612891803563061345232799620370181143962637413924325487220050857518523401706725906089921187834784521106055262196263371453554467944284309527375612041507976528847649225719899686848675656484519477935437787959921721387723728323469026752029232154495582879186353198590031448576452900869810277316338907306810759163513615299999093981342820544903174423535389019402427691626241630870822995541131831469340644902282233938509168484659498902185250815694249201297594700890113658165831563654011867344114007666410262718079174500581802068989989070842256920258446234002813531229353409089746980072267175348385797055001039780540204115175819835697561674192323837993459834461510306923962484258034314835257127892493847112569299038967467397402757303847505760967263111704672383194082463154293449502954552913458220552473076555319366959765446045874630105437995028270475925398004819321321055219250250795451723840610543922465337243224559871007348986868404452846557267687911776810230651000464891011780760204245678126874545012105742466833997568519642773777513562826541310860693274508593832119917647976868365489555786436197068646917775071812815611227510069457354093033504132063915457553492269736263160190334561862285887493545276377496857820926463249573697569232203470718226747915858948369876736266394304077723658157380087086252131499578760993170041196105304341584050755042211354286005175296794009809327600546506456779957081708961299323160441370389111303263433686592574063337278657578938041469911618909425249483829147932824452000795786913534643344235747506129129897886434377043229746695081433825683637630337422519042714620175889852210375824945663879300769982743517413808387545199824588114752426274653437243913212164943027184312456046155799759492726050914306850211237347873854736947976792557008434018926685934030231238816569189801043588851184136908785703021164766446412303498984771431369677578515013177463899018603894467050526737204931254091225901410309296635192360519199654587687049160956246161070146560702154660392293703496254710787221853588702868752740642577009357108661497827215499199444966293948324899866230150706756153860164705709188230031721312429395628005320539769812461262257685143178018591441558659435232121549678600035648044976909848729188148089312650583197140216079078776182022681891343711937068875837903314766134422684315002546394160493202273755098413978214051087497603964402038119037396644187259976760940426537292639554955963599542852236868014529563444014032544806503790193519090970777680506642148272293342710538910928346525221164640383972470094465446448948508911320119725855308338876947800855496281241545151334489836317286803297138236319783203989711835817607754361323674149096530716155245375586961581526589345285760779224745160716908904371113097654756914407329750813672641417638194209521122092313120444691813174202177751267918093143801285624688962696926055101982133310576077281533303107203643777838217493670465220993222208601086867927593214400741811352973037205366393871463542544002528328791491263402565429067366314731874931510353305099641371583773409526735932356275107141417475419026883781838917796475924360902941340475785417122144818124824125684345097877941518161800255167116827683619153932098488815110819117818839207137763442263257693527054832559081884074115006125741437551596364595229679933908103699487830764712850741486753363163768998235754040283332359085758712180940700308761074669107214058885992516349800827772084515731552637621789311603727798554312329161219475917226226620270495130889789370361103980198123157614600652082310356572898505849805901176564484064406443877785001963770938627017385884887427806521945547605943477584723652881256660989981947667944354816735116536490066890500805002122421510212989787535548225340945980176046598441101189094443700288379074238470166887465043060075051264110366926328116663316451362848764625930987409804168498410254722008210306444468246688276675007106702628194068810485098506535576220662436220427652544519409250815012888322155642724079540935718300878305608741310521082170970265003502066481642092106451365894881475662160005002944093894917839623316339253561579619862256747021893568168325695845733588809562856112528972276694709012395357570334183637838754267991336333906938169189975639050893604553201727308646528986585065129732270816623475441730653528121864957448996700446130802855855919218939429334584151692662478755244499149795869743970244033502541384790155376885922903693786346157552826727199822974437538752587986109322974509757750285644325215173608429121226558719479368987201944250470055921694211207600899963037439448661038225039903730921745767546268829703134879028956976662669331303611587261432169508481765150494134350026342588108137007699761816400792092963612875716633017106960520850425409325063774969793946272224028842156149699385246479846875146979509232105148509371738825842479379207439476153791334406754629439657687481824550477944452655756701323336883764747284076972205227445004605569969051635585829345544851858613581959685456987609087540399382362889558837396247143178395562744515621131212890897588300627126794366135087658178102672147850893715475974739049161266951883203555786955546324801605433869963271014309384133107065257615557210794655879417841672274055281333637099816638001510370341885406958884960968172838750346534781892001416935812695956250661545151113946084330155878452034638923449974277285034959358697405708008421700028483087724422419535847800481013747513297641924512653166235126753922100127189023773844431447979438087411593356401263307734720195292748839238899134245946572239609293869167323361459664173955097568756318373314222088889271051706139125528299394057027632261970146505868115345495273862098006857716933209206042046020661791093330759312896488028102324835863514562950167315548466153726809439274106352089226271953452821729082520516650842050577146534339874341722811409784518875194386869534077401992270035305897329124007098182301867451543841211225138606487923725484127241847291506086844506549461665273986321949564560450968654126296695308017339266366337877410205127126153708368874846811760902396325869590765872389108777119742888617108298989230173140711155944570681763067544389528219315782248251189141785321334984087403017212524514449441672133604887040562759310092178884541812145257886398048904997493530665865168304460389448485125473088480476291172869626165596094189582743973221792255677085370840940442768243986103954880319054471229828732590427726696368563608388326244535549115467782957537213859806426107648871904356616066921321268229552785592823296599956146849867364722141555740484532871664167726331111487116364298013676043096959680631877270084879561916321249846718743547108042779934429042042411445184878387162427485186801218846245609182767495373666434032357789768711025224558827409693778514047913431556026173838152375950407537274035004476306038595532643879253781894355275501590132844273220279517882157309448937466385143591249391288805280244589927909660086812406907201607615188017890280417736949670008043937873602409056168635513945046619044703527356604546535287716637616402853915962191199103661085910849106555047679544371572105565790139006101654534121246129930930137336474010798055517365193234626271012141731168269175319989285441718070831786639106960746687468098679305851599845823130907072738160238385193701928424549672210221920954823847732698065440280188453997127345469840521564686859244393303973466425586965894664431965782779577859505593417324790196739271278346347224758440962997636274944387070943198673447086750172146434056298924825137836318315448311235116206253591939403064141805063324290989575385323862829045597494365296618912380271768741873493142704170919471892222377249638200981872372595837516517256535580304570431670908387437311360322619478338152555657271563263205190521333590674524801513612952774354576730806601065258266354750779722630852791567128420571353644255439825944394179339285094588038802280881044266199164774367546794152077753828822833611826970954273799180195834051036040933927915540166074448224356564511894828261946271777272658167405097804299980671224047979375297756910658815430073215193725068430506829573049050936412224375907410802261994166006359280974364841431853498311775606382070620542700914410903431519064420215875816043865998632468583809015886747806137488838987431364911242977400237560245904604805796187940830881922349569735607987868341750424384549942741701026339095852535063629683573293654947634288779345491406898258173050912128477398562959641639911557349714968593504656866622454084402900255747507668209689977544683001812763326101754647902658566644319086124800232410780958630575863780450979615771518042301006098201388163090704780902618249847719614348081899927137346829555246834289959503352857985165530600891295586427880008040605516575338868161185496493498438889710073461794324100236752434099137698122487410316263805998905717533211545635802132813322979751232452983386864521765480840229519923856668951601702329649094290321902145443004962505334055911699825761311559308957081762980290184274802865530072243388378855157145776191035306246930775968352032127033846711537421118712119997240198918566077501032009779318929653013730207732147635115778025578580919856679290139813752859699222386879612393143667356022298711730401949563386835587682443504851468932910240281615157486867402904787850281375409661031822554719510729762302682293219232795321358006200331960276678167511155785209179946412768178305550738236953472653308601809976932815283721004207903874101826016450790264402011102232023989456874492563116392370663940201178248601319443600525907899627082484398674650413215784943066790840389231884063600760185646113591678108839181788221779380195724270376156449051006410075527234588569348008066314694486929518870455104881039885779801222013521541602388366679428077861429455998136170299630677052299738988930499537146133850875594297071140314116899773584108736179445544148651094709822921551274877622070429025673653879992275923498708021865425517810063358542685034865438306087934060419743531228336541563670202503274260485522369378178719102400836365203546735490612235457756992206994754905142241557246184839833592370228801937224568634465519580646926452592995964163663456528414089769842897886573911822572236148044946465117509569666042864391451473772364003088895110865843719088106259642912694279261236040985602011200456405381044879493048771246725732529905067643736645289806522468116513102406406889943561574350993155623640953419437802671322807159952769435391347536508735576743698279448322939894300249710342717353685484038395306281365880140946473902368959034008765302507126253631580338683553288463724545005335563451549054959102289574186893277726545449039592370337704627563858888646008949570278778333877144284891573722299006419107519019089806125213392046175643203873643026663643056117777499615103456898760271651292865294754840589858435320598941760154996119153585731085064723075381332163710784012927991732798735895010314643859467665200661732820926040968222607549645168413133173848108393366098141492033202368829203524578027896444238441549869464989614227914040310022702311565340754499399490215289699256845031207251865761034299807196503681987281529367218498796442748053004142690681317622268196360159055252852713894674066187708525883783849716647888449402050095688745454556254707937231632677240248927462642407595438787334270441228456138325548448482319272943617773759591850422180823237481555645306038691445843087673677873435415286575933690167712467666313735383972913930777611206185427057829663819884862459289513294496665703766520409778340380504835076236435769129819976682149038615235534367599920716065687168692114006659975663418941951896069042981566272826952966095915396738837257901236432942463563032483790181443669511039278208607640663447910875522392635148674698910469033047401801504178468538061508728242080353353948837367008858745266572446781085298169122684369105222581361723511424410100986067951016885947920772921447520015180057903477421954398350995781611525676333818602764270594232274549397445166240119843420006017752704837942930781490685872563312927480449701976415460067784741810835672587977664210716671326903318111257838462425692736991377803305047742983288643015351244892822803880542429738175004872968697618001185872819557790558386828238289541720981170447141510493085585056345295843034573061426372092920780407593723127108934478002226037681591397412089633193716791897235911893027038564726461805710869378190739902058422707721778275930945470594564815280347015196852845582371618265030459535514157546849431359239068162246487716694786516268467720455819297514230211695679106362826949121687918272893182983367556165360122932213514716593954453905587999092154140409690038697107175158643301557986859228641189177626310174095615409227469977810501412239336562917611164655940115772596970755780676164924178284577676665083429358858697457668970835665107059854125301278705071796442117052718182123391621659623662493042262679840140831564159099763582965444834118843324570961486227483937828371895330449240743230666951841020538300598091850968297379124411168663739562220387432152442817552050698184676046627020451518157229494286020826212244026956503107691900760554661675783540860566287960973910785716297134537286024266744757218634393199147634650190158687363334869562013198945157037766002376866559787787430862581554069097748521258292476584706379454262539705010291352517373561356384306695398046504666791901391815410352030362187330986744597849030488754975219375520765030090822881410057138427119543484233635373526902040953218972130212768779365447550656073631239336332463662165257760685558712031558169373691154090173920205333020839212060634308636397555438255560655430861372528460536944303792554149688368496808522870343261661757393016563224218631324130297105978516263296552466755881105398713213346170302404331700496280640245412755538325746546240218098241667577019908943068243740150006836689201243327885947279597589833625476844123563805740028445610791337323014067528026274455983273127854237206391737975186094664019471191720543461745962503238409296053048781984334172856246764200314822464930204482035511757390154136140345349787811105823748399837895155827177662878644124578973705531509548196240912192220040202349539199485914437423112239283135012438009465945332537885651763635305698008318148702586127938350037836726493094770720807297067154254822453372199030894905337013888958189572701707453298317239064273189530157394843969840675477123944785087940264750230756119913457439794532994946081260781317412272970917831475875950339337922426340869821933797459940136867458286699421437413956897911668289695747039310195526598815384992757378300742192514623639389915261182288317989743280286847093260275967140501536846358090120199640086354825185480557975202801041536961675380026055953773758396623592550942372060320323313081085992379576097990553628615466044841407423451903616666182048445152199648238438983154115539895625352217760789966045569146996418447138208746375150519367928998454663911796552940795750531976067433915780549120389143479330983801201677633113177218606159548634606203311811652748849418393322107857202043528653488642318741832019233569061312271586024808608952959619147124027689960177402770662598667634059681944942798244260484402717279383877699179184238318312681497891635726590145907810591157163556488871520755449711820691743493493164996863394068514063328000371203711495123236199190820156413228189083354738920371655821087157053621143230137694508602109847423953029575500269316326653627399885855535031137156184020509919798618390414005480015577643261222392359133143992500343437402915870730789477671016042691101843299054688341782966155167608907748284686840446508316983729024368557538625502037411499641410427217095295855915181251205393727833383093561484380607713180573228328390298561415074612501119627206284780739014921007919976562158777116296459275175660453446810734794577964314443978003339877070435563237223422232190546058068983945714307092724716662167808657369454825729340554496354450099038156018287032107247419053223350049793356276929853258495667327699093751773121901818524441295071343591215335953130797622723300784847507437783586894883189050012592569456120691996524402773699096762039334666543929170711275004783197624304671780833317559233541371148693863045840272417852491497867715886403624242984379089624750098222409396481562418755463941102854365135970039680808087669779759156791338266876257869930864804579419461371608917370465930570017651318976388017857955109154372885751294259692166101100901140349470419894493410283707809093191428148814579448620229950513030067082987726947829847147226841213708888883430005891531109694563578898852854535052542712372688492204946222528517754350543518338617692341297149034813169878169338817703765959670869825493935387286938511522333188288641063003182943094151403872439471152428482403908242021956331521401944798335061815123885427412274447734987668269576839249748069601885253863456619096595076864013354403691131569821793579062631671101718104506200707059252664788746564456586663955849490397509194007165429871419175994626474796513275744053193763151987827758693464627380612162914502292375816505499320176792233141767721612790695698883192255622018908411774088725542673467428058023706549777055523167988903263558953374156483441105360847853271274749978028577646726102668515325931334537256527523800947263280846417072625592782441441691053813901354156904832565089717164263045571030455718149404727624607012775653112757484496640171500672287394396732251622066741336459856374724889755751277262749223910788845995387643593231206730131552391488541210607698958137523790769043789298601786813680315757493735103704799465591353382951607225972860302426879258670525488175334804821976389942497632637359448989754148036679578178057121776561312966968861672085771427911331056231678175907206645837662450270093425012604669404198756421326060931143117072273150723456351366294941406423768504602138095509500624844159452790011924692595298812927238272225616499867119191190605904727877574918398388007368588886999211042011222615669733960705090274315207684515672913857895024594280297730631746675579186854632742042716316623744947871569608255589723547786617756312099013210444098989112563732408938127093259983411987667222968563491266033222042477313824031827398749258088451454483093547051059863984273142728703421897436850631794734527541922180015792741593764244781278142881610917541751869325600500753305921573261011867207347401909669881203319302357177830582251348565759454445948547257329244456381807382643890884756760353229351078523840201299913720643977302218714819324913022340699323782714096577949294520570326963459966460225409523920368363060052348752549448385028710340552755944814661358079940778695291204507615623117891739931866210401180191663289868690627534872843324039449121185881449238515934855174734997791258086739842992639799876452452869651314070629244871549527128282725179720849289557026747121063270186671940607280466421507812525166691226493945131724127549728999300987989661785731742916742461323261629681296573703790662403001381897729448958647285055755436439044901435664207845825575254219058809983979694247187692995487544820769537916028551786891822260660459323933337321489312992267873531693089360354733860342277842167843815041480136516060353717560078187365195663198190907246628699602188025972496672267652021380832332051528241924870500249880877562067640566500144378810671770400511877642260881022381596413435421904809237331827213797264675180447569597561078038186629510173301089124992733307177925551920264554445961324587934937181149716391963357816548896690604954480250266442304329684545616457545649010405712583169419802644862925380537725470217542624606999406948535128250688455351387162110481450707749120369867332675433136309882799826134771222639190812563218743515185323044088817568240661469617047018041197242112303918012681279786661867809370672479728577788800938894257533290714615976097640192651481707761831240806641629037578873211908199244528693829169698925030343150940585918977544113280496120956151812932541566564763442452674161182285947640535493264908109880055268782471406685512269144998654760242130294040021793517283032116393563047974487504929691489850998366566267129572050426559992131998221846548361821113660794670272016519874491343744743504363991977083827689268064497592220255352956849374212085250154112949450448434157973643574778949349543970361030344101789046809361549193296419790089049258099307797177796849929206122033090284084069214911355494433586901081553160323069700080961346739160079797697591683192841053241524505662748747825499397381415415214404569814171010230903565351623094477664030342016938512298382766321477226903941121534241116981676898944458387622237294237261639197082789521641552671311731269909525309248098737671175224384939458284599477058999992985829707349964728518382286635086541045149539294581485935915166245858143121725630358915060200964464504080283935918764856546900534687432681697100105715794176869439548720978764717440131619845866549616648153191794233205272025312250122928809229389460435465607149117525107323776887856731453852589605479100785145976997697237523776733501729228574723866843781496269490371932365626227707677086585448906772448370868285173935827013668263136143571818386161551214906474358918937460491954279526247256962238300896834093274399047391699986267085872357032147594270204445749528105307054704453184444747221184933425057045402026930676979541070430083236532946960004012650077379225217533124481342610093077673465640231798409718967313054956383364071311760985331200192596842910366056970440798761543570837871743813906977013274053880790858886113084204779901502692287511964306924287400799675619680945826522554005178773732741407131279419015372044391233906619692315184320554985082880810180891486870632683230503964985362382448187963987261417064354940730952799304242289963320064460319107952210994354542165790965829792463911928534476098700276787585340115133113206937962761271754082637150802889820825279019890019458332375731674857668465645910946084575283023042416991445207172323582847681604046237804485073935841638134819914968210380871686479175822267579853595750593736746658678735622202806194691765293980280236946917261636266513115337059536165320959693335630683545987685011694766357964568702020265060454772852173693633698154492755119653037909800577529016321644383369525646319573593547569970780539599973112104323119926468191691875209181608839516652572044047184390712283675244165567633917586972243457833282156981410985573689335917254856841695793141788030782597824921678537956114343130206750179528827229501992081183251555744759097498316951093440442193093986016919739459916421157826498307741819490413696991307053696651310814202774434787501816314929531051858290256087373671214259601242452398661869004029184050843104210456280870196058516064036684705791254188793473808441074002425288382224547995130890566168164807843739040336435112491709651444061443088209033285056875917910270871971744140277144934678434171997135487953411034630558191796961418781269379441574560456295390281595916313215735834561129804603783719090096239322530937416247905496943881163620758857183523908235316963105479912743433413083790690693396289286877879421685727719225681753985414139273654576907332728078280759114079434878671029182100150536239681630775410461446405723664708787479824670517810866986182204872144089248346464595727894309274667460928620785699515936251664289588772933388232567797063495323035497357190809478677056358213211703021113670447899584586780311204318536765987021206603208749529565790328340907733851880005058180073449611760103896750465047628235835290243632228685687124067775911168368667025755430956694394152190399211671169892281365534528022442576816046395647041359174304874950428217880498254939197526794495138415366215911129121446206607682586933611379733469329124561542318269273664403780988099616240297145421656838205156948995859405823106460948246944680100622322555218536567551264709448694258046333189472495731052102869057071105449499617824089381312058462612879762486601471575747520723619771205773816712726309832698814810451516062777540633014036641866219847830409518864292324831137636205811486100306275813818075035619829340313288074904757426855787611820242944845662981847014557882641262141122978339297138657843989643195562602487387540643161905930594545323799573351184298204684523671557295544393523797727012217333510727986709672171756256908782076122821172803897421385863879340790829425422127826301683119048566617455057244411652836167756287825876678084652525772786634883887566086162776999155887521519372142408121941948256617841840077161544921811468046856022041265446362654373280478670152901835107616770043451132566329709882647889992171959634643884013759420161685313096067477403717171300057049378097396799586588840985579368921767121088617085181717429255882559026116869106048205855964700757566294649028391078557307500084360811719343820673248495679465439204310331957690649002265137122089225011627329966869864872618242966517748842269882557679315566591543253914979080982628407383736965857505217533158442958256188473158544005478378305982017798126828570335094585607603476351613962561469386540357113104728995341391618660231145731176178215432541488740374575257820272900792819843405331750239793522403820252693056595516580393061179377582969464153621518498492221204471205322632848852860732322552924084267291353000757623618520900626935573742656350944531435058893307806418447520617296928653148427150605140428765277144307017633183850968069559956478045842101782294582874197010851182696530865397511073075558008087154893292991679055276648832029882768793269210043746295349090370021885411265249248178406050618913712126768699333992928827790258197776649364284618321148022385954070009719774895739225393910510154644607244858058673054937936663033268173070905528497869099631320285779304195659068075370194482501764088384570224813376669383995007339023110327569594526603205230901375163748011961421043374907559502449910159209434505861077394057527305377296581537651976070076965393962703730717521323034941016784443656431352330542874151380453743619873385770945027889851747567965760602092416570700993026622723069836969692097628910449925494632163915268649247242771014815928513742896976131885746990781151415299783873481328675979970987899519937314804380237656369580872608374155501104254402316339890157623890155616880935534379537481124142718411959700260074145309131830450218772637166437469565303063013309085729929616384200069496329044941080475514949869442846015880515625695460832979019288837330566839147151046217555546701951010236163285583514909719084831873231463293940736958799013231616205734806218182137329518448077708626494049004498698813418775803474368449945446276978227909056059416515369174574035004869821103453125630367545822223513786028555322377486220559282956474393440662024649344137716628864832650306623071083633667613440425494113458165661857452429936960464056904828645232929918651366878710775890799557868054431192217809988395312879489979065514769576018768852776061482013969888628062722586808411356235759431997120926430394938537416297967050501963872332588769550373292173253187625328118824260513050783501193116732469852756234987798813374146318351180829799516100317606599776712088963904700349637459357923355438052147239105145386515389310872130333951406193444034058675774475677017121346466338743565598957376335792939129317439443272202851907862519701542664971857685907806405251401897141670665025506348311402345395220505196526351097134553409458016959921517065348741732934593155901781506005772557112910159595354415717988618616781451424845400240868700197170484278957646540284023753581192628786231114642006025540994604936649403301600441294552241785886676347244112799785855526952106983924220080614427390105955655388000569752361074504504072286533938461003219316236940639030258575469181938503332656159364703005631874387466736754388879476031663281901169148334408751042562623967149528427697248641320607849424398126673325405029034620850656497041038136871513365107302795897913857342892382507067721444861203667809866075009497487578763950526419613001038088250312811030604119493609120702574278155713384806600044237679736401537311518086870214319009554502300721326577262839994437760248172726516408491307486602488642227996759423749566481578059340613012832630514348957991924316540673958699250976404258030494114322310513740419862428855520729826874547849461711674678520524992173673544965056339371461533430916490412918857256130568061237107167230640115603061671776116241766848819069457560321512752405979950704353696708171573206072553837569071372240217146109210927555014696272386910174777948717810688913747768278517224019126603143446496090105490106793460177357677355930557011895027698825682783082100157839006019868466522891221773400413820891163633177588140477772982319745024886488601073919081374713668111813048409122225162049263553273062788798034437637751648801496114415071678580833199423232566560857901737897892670811853447587307870073025137451719187155481412198594782513050887248364981048531781109472430599217963590355388685359989947661640467354635201379865827955790115146943257267672536782757185034573936462981897973242815324636702762864779985059653627529634272571777214527157170418607360901524000156863522124633950332851936396959021528699340830232374167318582244602602156052009650032724164138681645785574484363540053656438147698379414701914225767358468265518091620038784925006167948276215447796154590321811311780738477473915005293700594209463248361931369582532742653943260507468738345936552892493844515957161475412511641404833311645468622124072740499168050675460091243079469864388266636963199053695888472788217857355317037760878820250697372558425241737215991098688087884735376562340731288180227099066351403258449873242334905630539610794637108191636461844681249111944089002513982411775213481814036319206140627715979574613187199103774355545730977995404282109323260565328952036091241192370315836036666831571019298592102614908834844726360422727703034642694192390316539644622462480393139469494980497220895717042298637694957095668467128360336058046038702550146568526599313563008264841279601494761388527360399236250747687723701873313821597020569687639896755729620633890820113133991634890827431191980291133890919648578086291297462608414949627834027936505637140600075837505457810647573004677584188627944400134355124938605378762200760389425767968493454862189018900847592809427878873023725975408049747932823946611729357849606782672318244641605702587476880755709149615651078463921439941748691552030033128027868195321686468812456567656578745764965780104132491651936136943300787089126965747993867641062080968760072430309893392186603846829639453257277917639666538446477546439326887840168190013342588696622613124569367619862871115163936204913824656228976193877946737470139306705216645981918513979245611298187757139823160192365870249821185006456930925111415667435047102472625852752086766802649138394458497294026531617194373204140737712267633277273992499079855757397269742369397692922576255568708209295937462546626807684480805654056478463157424344124629583793136742665997291682171628165915493620185402236598885284351982131751341510046150611291461114514533892862456776979197906104428161785613551909185526980469252399487517192887737611127070947206076256709687195564242290510780991991384834470407007339468163894203550656861749049156930197594399331953670057059586478798930987304140614862580651124744244733310271269223725462305080479030784175608276071822611253864748360964889116965837014678113096413324271877956860247741517670310790666632702680626418206363980650680363888770804474139806190829232041628133612830367763177518898758250093103890915751601281201428381249791152523703486731218086495356248226403416253134769857786881677500286264903641212087781004261581944059482771535721137475758085214591591296078612728477252362106349229701870693088095265100778298513683352781936581707131895051870596940171944405662158707772398021052404634308484394235319777009903237827585772406130678057973894409540062842364861868797497841190390561371766059273175827162432468556911957524207230171338356706066156241816948882907063615625572627271757328719124243610473923931431636004085587908567149653227765315091545041408117439815536887122815149046620192487954194457532853975540486235172161839319719830424088630908857710882155171462815297098431293660973155163627149585486384874830851017647933441084403144798418557249583467490826284975564390069326612235072867488959586297329655110128917233521601876219644507739832009142343802024996934208483674417260169711678429751522696476156668014805203708302819089220425966698589737669823749435601865401652217764980082699911294325195150332492254197902300434824126850977442622838129322424484959040545824832396920542870229430352473967076641839331181708084968910542865869061342826946705607724390973929836552403209691991452043258781945971767359134997937258515893517706199112364427559571028103169760194724139910046748842891464871129474508738302533125662835847391231157583713494359337098977353097781674730186307139890483433782902155029032995680373146171210166019247660195283172004702252309020208469890437137287711456947824827961535622989000071281578991603253710476633223766340029415762081879376858122038757397416538503716103623677749810073434029151804456250061928960827125375047348394289795369219347612564968894234978974931391478157197658152338930586506047562064742265042877323424726751032839468635090495849043725975811316229163956676509736953138275843768914637719900639062358621358187310993059766436051959504708151486597448384611774454129549113870460916882832891057521339044727799270190277826180781971273270645927256991202469507357204128521856699225860319768461864188247503114153893381607340290656637606995823732932283203271299664751741658882263169116983632094898275804097606892102795063420405777880032673385090623930367460942888804553635670006804633284846240581262980665582322683577666891044466780471072306991716112453242215227044778737911198858606053202486317628584757505358594898883141781157906595760957703725316472091455714100070762419259412669853471455477370707537508423789083885633930716671599417746897785227034180385268581578316072434354462894411109121849592753248752754388399880354593228948354024628275066291829236294215489812902160486465913622898807215857429102236063516797765825556285199587934848076295623351935002935270142459825632192383898653510161404353724415548354156820861838389547119646840865431091476836755135728081877691998031624846398346509260184044363057256462391686915439950076878046246681495992779344886850516715453248373140573727273000585636545627007324675046983888828191963927250263820769922353929435586422724859881305966725619534159391958653474122815220674422541930179517302707687476342460371502328548666794263099632026790466804217999725011762959963784430346932716998822116198938273826041596597013158739181860327210904054407058628389766148478008890926937008723864877986723803566348082969727667461586899783595190200701872133195241502189115681994706615279367719058259429224342141490402402065955588152743244155696409680128210437493832891203217848285637914357631766064923745046149800963564160663500781165306487222710886120688607952442192043246130413926851039822525686899814962646891659266254704627385129286565201127409892557491918350345569970360778341753260582462268307970560595029810810381264394366190188334570655675218146237755881292966097431223681289883731535722318312099172330889270957519151614899475330128027083147284698226511587684818174640353852844612061232192796940212200909042017095424312275298926397177557843618703839657614390573088894296303489385806552904247005831424986131289877260474113238122811374839881760239384103045189119410492185546074062001911448600018391277964310785667115549108352653641289792506294408620536872216987230893472122251622854394695026924002728568279587791609260252909069470082667449901614638541066889623685780614325648359434150644516500234292157346739599936887927110729874231507471522468537656403647483898063259853345908336303153670121282341093553986176143889072493060941766688447572296293723721411559411085405057276341877895837402532100104082922048919392132669784173461644947524857638725955122928082477965922786350967319192733702641904565398463790824562327885369940326605269193624330263567420798385266654130584964299798084528200149308488290742650499734869029986505515913752810520588994015950309794676082028303426140211380200405782413664864843788734162539253694903925885761641247363556657639276932516999426039127920966387937124440644309968520464493187265285803026587766076869726905488961698942432354547652816322793094919423038006739405541584675889240872886832966484276626158767811852586482084285213790770639284252901409555140851860007293655168999246597761811306025918177814733817602361155822656181854291171794273938607643702111859443544455083602895036326413699130533753284749831162457709122583014062900155941127423719761039054723783032766616197732702463131298919412068887433928367058113015581767242300963331584414525277502023141101126366056038502860122367329902180187012015156335753589563537457099911081571516912844272532655674040292513644264486421113295966474484346243260876510811317046726948632826494212479607489399511281491755514303507355407609076470465377964833176853744416440232013794764921640115297530305185797366051731765206496299445517428674637381948719010100747738222179007953888563723490621168717510493310662128909373449842817212924556976378666256850688223302910661585827520398088925246756962245493955717980306704819516699123592676549621686185158028389446561504882527987052450751630357606119112718790896872097777116119826125123718739518240962799412726388342562427016349219840510514998073519248036255882440756280635225131994880817978748667449341699571971734413744680871202813862752810875450967781159982378140815236070971281838993494542607274975045121941333302992183840995589644939821392146427941048066102427092695275276076445392175173600076343557081868962704129814812597006775822818888960797862113272519870932301034557610294613708963017799649811091436360810545663747839541711772266826733950918273465222575766802841111932232627608354642930249536695979549181669511899656349095882657262327487256453450619629149814304982049996721068336632414766861879923339531245689160271739225450725809699161122373015005644646240371837771824850748510212481665278828168059749916808423023545935386353689610091917259252764477113502778344875868059293326463243138673176579787999244596418142949619417359485994087240296871460464750215680813029805545349637958387769053433826509061084151452443532327688496187963767989579940437011430604327735502436067783804899891148275262355052570916878808859294649292730268005387154516151586126507292577558519777590067450341540304093235025067532040632090913838147717408889149263977183799530657030931194998781961363766655117370277257897424702858147322898380515682486240069423556355473745532538125348195734385483361566530753232224330886702701000173174371963980418960406248318241021655408181935159893437210424148611099311845960133110958142293946629073779666032839722048952060758192787955253538119064071471199851457149271210315744004069719318435237480690929327048454830451807961928634380498164294181120644574849512042497944986564425224368400847014203232799878124716920803285199042004454136061953211820002552540281652818241135659435740657688911309999088253961454057102285461625181569777605493830822329680434545855017859774165211703678072372869151588437925360938754478615059514850585862136963110678583985909234294082217723369350538378358257671726938642765090859644915692102421671558644960494125048345255549906702583504664277049221105121839242352517913726461316923551686059026428551288526318324745946556723121656027993922465248027252201231978816749525981666724107595239531719146290435457061333047710023171153407342045812724071335367185719365186069769852599655027400993410548555544137194392672304734684245497669773963362607510948978374854288658096762145461738348896587919057283094105340666652166345981135129746951082272370199677137489940934993151695290037519570647062658959279041781213277849806622818971817700118221421007430804022724267013376220777847382302766315910516313158618194877924776383053141788334588123886910137086677339711066503689618748578264141103417182151755130555321650511205312289879039883205859254011197452571859582414606136721218929029983556924666277642910487158830594081804776587729944829067303218372575107584371167989040632443465429952047549627636770070472033442440668586848704684955341748539004320000274590736764296718220233537665047674616679530107752302826537540018866265019775812920636957517807317864134893573007075041639653008686520687310474687838184669920453986134176898771672562425981329444700207870309356269599603305030061223247980474999555020233015474131646079894362112327283717617830961060312363418889993148433618579905414408267212078327180172417250207581582990778311683146841231987171253401342168395658892541805621449176194617237531607596145458312413653850935426257457710050474176972727220476515466620947259707839703493046687871905408049017787377927038078610858214496373352718214850833194890763984998186489364704085877620532606014419638212854392884107335325212715662455475043903636022278247595152550469281434170501822632653791491606271131037108793993423232823747707960192830309029149502620722561121040441911501798184306877917931538661579413721210326469872038768405848407368281890302366203811129472808430821559692710938544755863749215086389424029794381767676907112704202823539070587873129830504174241752001473447077474258687459415940771842017081160104477562323721759166054593758917856660162320133622651775337428290129759352318712269570388539237541720059968183310597711423279667621945297471302102815771025166716477772303341728669913753302533841773112408668310626493052604917047680438731957030403750139804779689343573071977587292640635409449126316740871072848327948469695201738183612519696949434877610822115572433036377038027387471998510711625384023978335403679321621831001785411334638769773561137675100885638719301506439750396424785333320250714918568132121392167783146855048380666880711745624394044105069759021384891938531565412804312312606690986292244585729355850382974710446867058565209696023252488899896611287570695423295098485375198746172443812817177437336844349921682021189017278107935749965316291091873114541602657762534582845147113558841602175567444606381573307978397142531370552448067957209660341591691049979650892207692627191556011965704207790459488512801319448120691500576302592919924540979855126677951737826866602401241342974073692706398943573662604027712151254493340312312483114288748111705168550573149473489666652302474531039654819346622553594147429918852464311861686998008500252535593009236552477186496283497467407161613762833314480579714679069375475004217609020171370721553126797160445740368891938330905609389261824844171356923799095075939912640271079150759381754133538393674301337477076978490238577373943795129008734746160213363938516634363847603834529305418042045501375498043203259313059861574212749219705180267083164417217216052643508962096472001371401811948113010799801106733457092305265376115437128604852523752910690834470293864888272457542218724407482239673901793494297530879230202091645798359653140251179428920953054917003500968204772353068734267830287450591571993642194182705183086341564404674965084072794437291457839177082408330466768850482201805513272204198149978651496960403086249225279237668592564924599184056502445237676221025767011201316124658245454834260434101880875335487178657590984755706734576692015239720041960114733134300794382920916546988966126209894293824348686199221745705578329522551995534353148690456464667865866380134348626831683819733510190699421779754087531076977794958235529453124157420818352124746033717735342447648317701246577036776529061625132114968438536247664663326482545005745432592599510366202636748295492243529419355567246114256668458536820905306506957155825795367106704675436228950940930562334192229707424705461375240581627229483088600224509167369144584030613223427999046939119640192672337288876127022648661571376241962953785941963209985090605677867905620680015196575666688433914561094414025002432383425707776778821432683649876065555459049511016779569667642918951439046666762481256956771105918864658448500123346039346744064320618167978728632143263585014540030545470389335488295930918581617604796853330748421761544320023678329360557743332401107486303486310967716558424617323254530022535834533982457516070955490900435681487468669870398702342992617468493916358356056303562023435681507700155267484195887245988201980782762808073876206294220657674792627327615971549214495761905617006489002438973006108134509547436987183294375189827906037017048092760173571279719297873333244028261338262815868302848106089690195743614474857748188481863734444798676709633164649158994747925491510503447450640418698488956676883131830117850884544431645483331258653544060034083707516020931067072525754608570668394959241730410586192454607870112581524823753666291861155817968063910503465115493211961130409077582736325532703714058903480754285859738809510745470394949680235866364478192625489589639437271267529673912181353414637592860669671646249033888597400431548331672124866557535129339079574143627645857375421541718297719679933200457166729382252066026001061711361447482607881002261797874830488164779563651548351211886974401392631419344992694943587695547404137549146436591411244484223776428223838263365750808975689613392730263010539644627687264936152073075242383288760054270381109768879461172341862826328352199257521833603833949621832329626320593006001536208796430050971450992984632597683161334649220368458273768229038356484217356811212775455072793659950042994158988151258918052563082734022049993768892033023188636874918908922359639614744056699331687356803238787576626618248946125719898441651843388184831568776790094697814060477055405328017126732007457507418046981576837310983034478102838766340112748446118143017613610315012058315978623152133614408485774323957229512846883662221000614288403189247808285638470475919521291610968672687482135361590582559022774235613011317157076840142647367719944980038230771894584292356717037867878413182465944568908064297727973018177219746270533570935731018473559369019867485700473167337056476401553740887106276760081013531482855827065639947490970074350488717937885947397526583738020066051512545145572689341723383818732040699399235359362516142521074783650669144070547177696276813774328940543955416024266437044929418942304378963680653037083644893224408439939607824380478649749696800239048952489524304685246383261485240468659709718727444790769324392289630489625826188841832829076242366773112198038466920065794313264622340696829322532095492673073521035244130933621740622106304838216846427497908208437458491627827066095689703497302609052928629769225082387583577655208495974072915705537628813291261715563151951160364343104860790484404359980726240278678760282272689695960227355186681579817774587430072446591638665780643438822791594693219796657436367186721702088485241846552380363855382527377164525098427159807713336424871375419269513347300380360883872281659733000047135656346506534033153931738875518132936580971194586131794085738141669144057516492307155482164321192832639851286169669887917227881047037788695673814020108072351512703143740343047712162467843073739619743291575536239867669890600976882141334053738801092906075845705766873802461781983075043935701231948576663926629336388804050275080153208697358565185144463887691231285980152824288513064332853254853297235700574834549491458196952346378889249117699684849725499216577045129654122309874119594236519370291757972758517542254508389394238875991605145252033861052051639684204045920079911113440988885091240050722317850096365382754318873149773102038682319601311614167177257539335315429443989923562183668639081228600242084687998852071995363165284299561096464598078484652357067327314724248478105403076092367087397906790688526125838541734704298303029511345336012184029592105713417137488800195568574344366132658613972096718283892877437315240730183682178955026246196284776602621876062521331873905658841361207354139080203918287524422999559816924455370939735082550232043884815856586482867244708861840771190707685612921452416621967303362274969999568651654714715152059830316837830900191686583932032365930040509436676056706495564348370230748210649924927756322004264414950632808236109721755287413337954996706735975929970394555464167840670416904681316691398201434657918106018246955042383620068899828922641629133763747749730209654712093887629860625622929056166455394651572787223370468110423416852408744326470637164039644584540518003799621118429224742520524100225810394417218625685927230633446733600942294991140556224928535280824444950693388060940824160087863945602043393067385499873980966455172702708302305520540578612054587875942221205998950617792931527669911775309636852393329882557724940312933888852550143753925546326901801317318289829647358485319653544702823549679028038240382459598477546160901138421576255843259405253511102277522846775213571733504583221108769018433694111692927537650253596852177162084023129013457824416550573366370025368874683989695805304564167794274928560247039532068150917148333115861928233351291585057054834205168474375605203353330600697165225627723393726980923236286049230774772576468260596079982469388809717183668367441261750495659391772141796984735941130703054159094238849033053181876000602780318063706618055730576428973049541464435440162771694294355156961161256506267599819441435039046580398535703147202722710812745003598851243130308812888906153552329306743832744897181847357635809325343146976228840098239178596566738120453002967770846580835885807621255056190354588283422393287993709815434845306379283763515494205288724249182095045146120826903207276247951410230733325905265739345190119999378254160212153518195047345392466354059733643532836687540329079276979802711483849794230751818440067788361442769232794249704578839439105471121610129178181453465386920577967535481985484041510490731073180251931385344660276412139738712791351702852447433839912455522060476042732028374228561188992804550667332231188174786623624368913476117109709940447652181603715536429416226636274311923812054464463745125832424438108004025284413820902608714267622681750694071889918988602942931111875375127823331313938064281813173449330379876516722428339903085173434513307889986488818558151396737182260730695130065251490318216187580733529201841670604829441633565671050992195294381889088202074109648912070122250179463526700244973421249753813395381553690333292727824852404448538268118525100510417174219810925732883930113033693180105143234951480937039996073195744583414193208651342080610973632419423237250436141883841921821166063947806154807090517677501970988889973755836340942516116465271221599918433403951450575059476773044241664857676234258583960719103415129692111190357083068847826456087960758873942125008292589760777167281886375520382037311606505099028911338467991172951937020859870011755583032657932435569488718404184827806807046811158430560095422819275614790640261776380749226717401858693293625021932276459351081968447004529295029415425533610047457263586579679329142518630569362672860317654732157891898856520033440558888677022606490325378833802059345656469201639788287309476877619324065603026588819274591223426586822162276092855144175035033937358753903665313663530214970119886590020346305510067341495036886324737006806023574286791969459879138051492060807242762603784650530892426987465462303567149338516895734401399435460471743836869172342903981231796388423232768127198121106564448401747875059124850155436370758407451390631225957875760204910612004364444791380639040773103530053806391704980919058737472672486587893128334714634900067693832637597469544110108371179095149622607835637772272331459166471321067371384131773058053613478492877018072670484443006952849305784082133821181354518040150883975775016162199220103085778318142786017165516422443952456099765266207122072390414519895575154202830512021481302366131986905654206734671846766675447958759750912951174447921466119033811368525065735737099603079987584832773483765284417234624923971599724034426188979580702087334802294159448407271694267255547069978082303538166137811179060993617985701128335755076402987316686367183022023909206392450387874535400590819439027357669683732074377199635417475997739967837958176546943436195036400236672309849388514084808981060478492051832864924831321902513801142865583734216274863446822783086274728793968100857999166681158254021797103577298061751941405699064415570387363825523200616304983347070988437630262231558739889759101923616166852962426057433236276860858311303895261870287628507178755160384096673778652184995614583223970131697601035231049627108900641559082659485645452183031823755994187490041228330001360065578886906850059343284153717358423240606123595926527326010962535048453534858512185805214623019450742105513625398370491716743470485195376915074903364665024104402335546779481843093030605578240451692420885497872117905114385693258459112275246295270406358629804187316603972018090924544310165779081965994459223125973997930020659569044433559754093779322533511789957449993849953273568552300552188397193775891112613843519860023067736674097406933949787380501165701358740954302397682240957113572800112637252136942518072680153400791800211042081463369895615072675537059352579261938125424664065479885036965841112737024606099387176146368698690586100023518716107192680918991354423917035659343976375616358641333140555810703686035837441798663682132643841743261205652196993235107099908008671227974963415613861228219128317217787475926248900035960764565173654316485714986125606794117463094492606222286656610885219565001454133040488635347313895624921378586943510720797618987383223011541024099067753931352403903908445382072432419375041351445032689723332703920471728090958372763529751718981928822724974065916103738363486607949734133883329057218294789075638697362238455656563476156351584431759530819573209082405004788089854130983712290544743613374008852291040163286969214108548982350323857379397047757830676045427462211784598634126841762628386534248434429566406432471802595381473849477458889652063254121241673081144131876143322435693864535837137286449331041553595344593246586812164891909862468989969591008527876535813421588003141289712041620205777729137350885040660816106743766330841149037305396242297284461092318376400814840728556164165291649625598365903527341089315853853734965557193910988907960998659618206576367689026627084308691828348121893708182483173351668046710503601868334172218603816100620599810236480422222903903614848010868999732964870252140564328938684100581109328310828082709922713149737836105460227429271066734827628665205765174688081721425834310843642686676669836448348275431420879471836687909571573502542260436931003326325698299949411172671337301783480739324256285032135796401447522219225121239003382748249478334212079035618596357987544962366739581680362737351218799471030507608217562617830344949647134173134374241618745856439202226504629062762312590971874987216078935176761040049195272194876365086317217229319934741552833929898102388596131590957079066919905384940049688736153802834897525528968973981795216698468108317887602904493757606203414882833814380695896283850834682291496314056091424124181964058594533948201763225703122164687319232893904853248640612569917936466283438136319715866588475663855166349072698710857839662484899363712498275985326202772947068345864063029199064207477332399435818771133657035707579243561028934246451621824585118016977105731694126220479457177554855845064858359980844246987328615190755094289682333870441539286104135908899192662096882502265947972542470901885623720901141597332694297286889547525930742207627116108132252690834855730658961813243417253906166492253983724567784674238605756750032622838210939709914601667567751691493976652713867484218964274820407375931416486697282074228909211169950043694426251060810058889585864270482089118348184672560230304794511797896904331527352763324903847093270387908796271336414694941423864421438534540637868149892696912503364087965638834669724284828390052756046361971529075247757026055424549782517187274046271983597902296917752664427833473902250541926844399614953501993428093232846686009338179899996748936498370266315233040026330578050346302033303821172725293739571538111958896574347882656386092691983277270163713569979603278226527821142175612767184890541234711831004110779562266333345190747674860411985601687055793867110165831920234810765987227575417772625339397033479945580155782257726649264816041420626709591278921090446331402970725139695125431713625552827980512552567772379933051355375219989392061073210674432608943668077855744733491257646643892631499798573613970179762637804192444271763565735608597656650964680432138059343146405097467535314870593692912409350934498221115635290538775899826058319026320757379598650812617079048484703926086838708384153084705399486721133767624699030324604477034659055203130027024250655787127757004895288504333412944239889438948117789449930979291186708851482264765104454307933142167353697054425841206521493023557298908189820108799549988708733818382260663194839779627084441417633295775773635099142796008779762764867054543358652518279030398167387016313368688441823032549047781397705292967173030037578236920321589032943076266458054407713977706329291304528819143737435396304879872194493490204932249965624066841331767266247412280430705443628840961215753047317725786992987670438280767260648143182465970938754268794956058412486042183789523690276474999331364781540321933920208087677374936170970266171381909953832988163669674419835683917523384849745361610898733018144092209735509683686080202100869775408680438360470067859013404855770456159589771113757817860704236958986604514933648175170871839925237629821629909515058589936337037398098574796075032416318068057106116925923887195629558040923821920935720563463436613995149858464645445556789762418995124077090332704213060781506889661843647768803324153395799071692464387939608032973062795734303045147329013373721740880903308308171616295616053190139856912023649335253287733898238782559717289749336895767015109967562918190998413440056544605816809723467526855976720250489042086243943979749336474760589239518708113935899124268770649393918515334126324147884159153239211806458563020131724633592938051504517496079919295922232548873003290295335826667685141005496518874113107487245164552198597039627877818805657305512262900451061686864774689633678169916171907074910616189988960413191085948866146299223630699927111049714166064120247866571044692568268740459795858727966948204395462322457759425503300007291287236621217135866299535497095891716513081511034926408122135765806795212657130278802449527274733277097029649045600180250487238229463631162183689017405840782468937970391882617467771574442145672659345543787684179828083450951312203037123690615449588657910627699640355745894875048392036066882134854135916285728743574944400021117664976779081149631023403763294608236514379285878064336080115194161726640016931288388126912207770463027674017564334323562200053253993621392615012169490585465629930710257345205681068940777568470375350025479592717629231873933652119464132333034456042456481654297504529823801023129549761034529900780082121149055364183612291127086488299624573461170838683874379993711360085854271415444336707879198362271479647706666401563119601310851382377836214383004544396074999755364037132016638350531387711820555782648827831909116799345682541307356869946520913612132409063430046453137816723480097417509517465629277893550205144685092267275087013765148761451569488724353772362372405767190576782941731076119447178002177656867624870427749427546115129762086013333777184373280107887812757419048742119496187903665847498520098357600603631591068710372387285119082855507225464904876350757272462127825610733314517973644501413221996873972627371916586546239120992773082835895762843245092876870070661413119769898068413962604289161949343508941640781593769574448722365014069055060329661039621752063372532907336525560010437125745865534113123291264470760730342104590410868471031551378641528856561101728584995063757204988856939215175340440837479242622495152303013014491804716714234131816724200616761807417632288581068542657542306308340500797327237133319697749056662096558192022510449342962954542377290189015696100054394549128551828232738101999034543895121823437675996920130396485226647840329935669081309316248987576097975499296632748594375593903505211766769521445366088219027873633290323464430000165164910126803239476859475213604238827091963152666301744115855017955277600057089953107645203312406444365410948533518569698679784974717776350830227189957216897651959359788321525367490110695712421837554544934372952509741373668680538444028387078742551589884242153362853058087761707224010194288471168100006574527382650521329494950222341105048270335199478242078268503771290254389704648391261773356727150641109674633999071063802103464584336975707132311591135150380371674726203426302472407882116414604208467852338237809562038973944957201348621554904285483370009840879707540916806613246307133403748199174309938288071584893127359963321344307576756733117439219168415729439818747692085342003077243400922790071395586493119621536578374911603375187523916821943438473969130429887351010241839459566927695298378804125079954246156857011569238138839948098799021245560386357511371576541999063119259748907047494305096757981319751201000431385295116384652952021336286785480099936950203065523634683625273816643183310111791086376714883453278375654629243164091698451232589787114078550565037336775523896459134140957974474579971018443931393455496413670187779428215963178372653326353933878409819184035365908687029967621143248925841388797058431607207242609745861135161719450183045280231843154682589503978968620622104848875420987921087504756819094068266796751292222551588496970597677844637966115057990906061434437110282298996316940112312327057522786984361171186544009272770014010399948398262692811540454596096787205634788832933319280608230503213903358601820841079906890375759423683697281966591465784943782253756381783062107855059073744298531089210814322770761331128078414279741592062610844690954805996485454394651464454426733929923479127420697455995354076570725037762511077143161973023356081082443513107960004165421919435157970120831154537862297018302699458098806344041139430383964551397725866520101485709175817853354976651836988642430729083630193702176105144164705476262418880813351524948246280443318756265115259398717835323505953199021649223359033698132067741774550249988605530091781401520829616904876801136168267314814399694335986476146883276462229363919402227986968503352306173611650913266594296317293206608532885351925800370700664570206863036743921324180595371003558958027957112072732857627565759015807837402896235251154468076186260261997285488698457706286300710997288854867139853739490361850900896982100979934119148189018442383828183301376457567598384259293551861075454482288252567678135271789430773875038354373950613179425242207035951212114022183727949319514545764792923520577920979385602655752726507423608130905787690438095836429686139635695359993047911101664647565110462994601101576688430720979214827213394364844616453634218321970873920097268236826588164353220281379759786235139423098992605580237191733785508008401692809823230465802978423720024634778929893107819200734222076137580601409386439220680017756767204747672381722761519523418600629701239160533398775194793606659669072774417283524624851910993291938979316800860168385634989273256217192204563526601928108291872269640499997851738714959916707257333936294652551572328534628461812614189654244250433208256575792142334228005038204438401553247268523344291326837785301600263179884043645522796086099467667197939896957915804223572067542304892142584544863092766736795542053147318497029281647098407088199535037175453981694529197414066465688630239402434582363853587572954949824542473525890896460276523715187335020517279950623137261616319263061977995121374042996484825491836915980896904196918326581895285170585912156975037866999763829556257339402137810681741224785409474688453117737760689028445274993917233696432663023140867822236816012837600529748558686982867815175951929186498392375833216828658482333990594147198758881143461291996775099928253319965177413445789376759897475889305545826251066066201422018412361802312841809935394451309975884144782736936322292778249627279813620585400097256940342824067380962511647136694689010841714436661568677540459229604072040517170163529675955951543989362905973433572779025608889702003897728110664278308967144176278391476994450148431825674860605022472756898538234985127980388977907371178741476287609850720795046511499149157659694012744948674895182363608391475508350888520698354473748450230595851307944134647597646313732964190788147940043190596958567815964181558341174546763409733410216987386039854797443727428246039362104698086759036122711618212902748532035257301887752639230138118932834334411789425610636181695309157590409499997079742319819734088176827206673977476672064840587048464026705369811855332642588320963294846307579237125835127565827406440587992756381777289390404002805688734516060038612944744620409503071213233273201954923542171021657051787642615890430569933048069999855247003927537121009854847500424856659514808088257588732834103870747744613103367357552550023014655395934805189332437198917318235302321607971682541258661798465621052433567873583797211408883800300379585885478765508631644662116008154885803417421872741254169061769880670552227407106941492562855940489454630343221101283216233500838056425327437235266584128151761664123139930548806995541652545888280478650185920417716974345834499721161229887368624053954589133719936863894355581760674668176045779587323781135631077265773230940352541743821343181022314305267209160121704343063642287637766498303155168692424805444984938220951345869109307238552244326045583291742164841089577597335442205957331383509767570711182678077951794725551053198915681422400343330728745735425526139161683756982162717183683481476310773469738129595984843167745765252724999970890023463650623186959099826181705380557663504305618673229535524959815795437081792879050311319452018593089850806133481492169807657861273068810806775330127741230291243039238982733899980722766444901270672530909967669730433772378165778637577268667807072311226579300632012874764516076321744435533410397171649551813537338018729913930280050433003479908831590589462776509458205641155093146335153941644514814408262558295911043832155536771853918667596342632063421096861286711862451305767789934373352087303812629048682309359674856908147575355749937097690911177909851169545683445345255363882347741215132842381324718139148297851747145520738049441181361636979028496044062193368240132422932762695105940011188990804642758029431970864454070809708186106961124872221372235697373897384456355317851943551242452341464993468179040015621453633948949174493678939010654896257018929990044532678378830071172632270600373952988008599488798293167918858140092422509206716174109067260198822199712146706163087554834093404362074736811595606945298445179937614472186456987237664280925699810209141965588252797852447804630877544496303974348722725015625507828975376642719560413783259955021950899717082107838094729688733567587837588649476579480618586952397627042491972082118498856665588475066889566256440861121925237632197830156225957103410708403387851120013085866582230612724471430577687243019125733307283858301911541497482852245474178884749017889012045065635478539097466824832812234964773751804254224486992356129629523229562313692767768234981212941891022143874402054970083078196983855506730706229256420710980404661561360588825349475394089944253582361391775715287060059468747504331576135743458692440412860649145487534033952273110405676041889560568010790425181067410938988570534912177086159209392751566498603440351667238550289968287736996401928044434065848667120145122091875709976872265129719459106496048330324896919370383572559601666545553075226245038200602684288395793253337682882584880225523174865971965313131388026580870039769616092439746187061894039401513149743977507940169142217123845810600547732911867252582491631106399238888134609319432146515164813872728602308503719808223518067749745971855638275690098971926104996448944630114464025177697504680441279310090090477338489443635112008425768891967879576126340058335992165847623970117390300627247929947760084088580246466419048228419877153775038831254775315662219700661587911628631933674493354812808824870236906403686795866829145840392345417413164530615783966420749386334841930826413660380178560302342175239815897348088761125251798575003726973004339554892163890172442524040989152038715817181776987372802663462589980094352002276138687944710186359244124542249973612860147695698722853728046116719272675125610461672805992686549561495953086011625276952784048842061568280559777661135278838271747341650827246879444903145194948330363066485692842800513547386635389204635133984313319554629660672080444078879191672235687579982455242830624927981626708089674981743140752467330874105552444266031853339903424844340710268942285246435908813834714548466779445574655666179768930519581283925630202440559835977397579967775589162251050414995895448918955478136152103864402784143335723261305073714409207419422163399723412133221405112786314317187022109679961563690472675149311952441561020642202751703035142143226328959767083742202781045832205133534226500271997245339093711675696834790875240244372873855443089924217833621295164082840477582973958707114859339332186464060002451175260435724153351579861193835786857465809353476081226739707810700251160310547724537084334610914879031702663869292364544072712637456436074509196593980020602971005358663268044221357944641641762118205727600825022273213274071443026801391861284911357471476996847704180110479408636288227128830070983490988371398473850535415786863149290128168101644663989755590865381930551025153094865999572829579100962798989566273473490895487553780845859095318784950310764956850785372851973638172955547711135953872714684807903438086645502310230346983937759618199421122531578299071778442720339484462926118379545375960962967809000693353361908754579694083653896374506498763029759413538907067136765807752516562179909522668071812714064365800241831377158035499117003192317731567060643663443537299139768664300913951626802772926139312469390689677112193064207746947591881241707750377802771673738644344944377134831388577810816189391439552574772301703601316146744578805891783833243070655022953889560478762287610287416776509945811941632436282452940007567097609629789011319423961443028056544443399343068730993297687901867999234282180773155131149779723815462646692535609331622995133297793216594156221538964795220099062059654951450930008228580245881839129517982863379467388559334505566630113217656784930771848557012782272873067397852322818227512110552516388173272016089042687551610897521998301019125006642332981678973107066300651686416229978429297940769911844624052395133692576509832723921202948931314156009552256486576050870455843658003949101100426629602595650330924883710489456875828351237596867301807934037418366164608553227331406540224860354625794214497411444640779036088075793505115119001222358843398177712011466996130237923602148052390474771618042197895318704993610495612499056259596145478722787274691768466250323386587602610364011417531742308104459951739220411453615594398699038879205278337249568784205353902477016834194107741724596560001561993742436622780503465449258788559084322749767073283296406962029864825147342655182824731537443045904864156010948542047137379106242899414236864119630567820580093611842416348257970635530560148702988533493817760049961293415733835508094794120485657931109614585018060510655402269937120507571374530689000058693035117785846119558543826601833654998516823878985020297398014520758840392406954241114913163492814521085448952328287779952925995123123948726747399193873596752752564674996022488679874643222569640893756555873423105506926153410389573241803237972164396463614555570051970948691492033004444974657451556853695246478259559625768907921057138551972294916606901095870286149749997424828065014780591803774164094184883456570008542738184059010438581413350621927360384821890976684157990236179324794679966742599639400584301311075197836986407459734776822935715156446331368747093632303755599531832374624121046088886615519406225652110952008668467428668260550528697936064731618081402897671785624637245411783776002913792432050097076516605484076607941991144069651810830288426750889438748284171883607766506586302050248575975653187757223552809164586699180278510364446158079715630817845685312602845876754262549381271426827642631651020945665701263352983276661298759169733688824523472008768135737269274199655689330346452874803662978213651034553412613276175535870497949275027788645380446651509190567931680701355281917698626210547164633926575709343543401518152392853212010254119828716629166131751771182442314799096350516438223244965533961707007645581420467905781644308258229555731143884568434573407515594980309907157841336021719375220732710454682225962783549321733952634057767212034750825256179182520594527416056054074225578693520583206658306443462859077626013147085207624133325262384092198041881247308129535677929073828374530138074204649457711421521126030210821650974243519292200107819179552706671479966281331154248125401576191422775888477677557136458736775611130685900965617572441945445243078207694339318737181766350296801361234259544397039410129860897396108700837009977074156157427711320805543957457202050165417481785289667640310234239688243915302011982413971592456471939275462727333173927727460116400643553033082169641712512146224036418649115047370521537952313050009795555684810507591062792898209402288914045103111927104399440266087414855994676179427028842144470728083348547350984038362600843024543845839319017072954707267795117493720482282654095274061052535298135082518558537919673849760695098322328932581818262392347455476956017123937646908756093636011396149053449451705084855810449597694644094701742891525931926749927835616009372013327996930706844460583329330753646296980504754929363543464604742942138888381596067985477699512678255930649600586496859148773648230471342175497922255417306493200498983942278865811354943224842202865374846726650464726797341285834250321893778343858928535046868595648478421257805799887347134831195821239042245137718914564483753429421045432933272646895041886247189302068959942116199116624688308068021826993798476033804368042473976853936324814014470283557689060763762362832443763496706110824878050847602145895473942083634105768270932958120274326704320870738416301141387415376345651636946150477104248111385959360989137463932467462420762791753503298349919408457575523286193986625947589065136935336938499016575998785272715716049217240598762571462859534518791812132599650464490768678067461951968948022800999844263843250417353173306182868851724765257514181951256507909878838875276709839573164288676105391173508317580708174443054950331112963230758040183090156395148490273415609121233998562667176060684401828797753810156669244904666909057350667274626977005564226641586721024468326555714834171401024141497794386697022045060140791376277537508471388785843334576456066847598046445110411053693470255430564461030056989256161166661165017812627657583785843612057532125857585458453966190143168088620113971790794150497644113352715844031955531879090079740797444659538557407068894539003879468444146010111373196528419654267091011117155893927394234091731284137857540228741403027586880315125452138432648878731058794049019328912623011027643699135578793916743341753099843343497768409325283644455670031762380483166052638180667246151697612515304418109297434219163723201161083149817946024030740639285230024626540528340605038780112949453145436415760594432090430341057185266601559587987564697582529712155355737277686383743992498683211343880392612672611191671064723497977939206086303166864287039299706440226134892515226036859972970508044995539534561756560427224772511514292760010696272552593052979993249412042200304472891581539890132257134701101843666076236763635732664431336797368433070037968679640307350020310531659094515658655294715717578603655770866562618013183963325327716549955328217705111832654259764577624768682756884209473921164849661950653459234273740262514412448784043164964094662839306831066411192824522956873453810482381847626487641974130150194673745175821731567087636590484572331124821980765678823854722108149762631516230950610601071015578221481241682386970382646349443870813354573644404763487350393706308136280355985519193481301568789286182602805687050647742890381419458950168485899117715443584663399058935574130031919679686985782442502001948649454609446183681773352150836207840629557560747666186873779682774720214348357648821801955805398115703876723701640016059082369582593720992828669262818740330324336045822904493915562403328585156338460315660842715455300728088312354333997147400760458541980925297170896106525331942618029949883345469352539321673034129386722315434391332815481356242973219105866719039562231221465258958138001816241639847092158555952711568244926691361140659137855905234578283955141874408540605884398186296479807468541671655574833588338721004772232460439464491836796087132870242678512633614498366217027507760065446753268511219374799915733568128375040818114189658540385682497223905835471733292212256144664055043591491125007723626494497063654588969512090060499599039616313815092235360956357827714427302604020284805087457489369932392404358176651667604425906351287213662328641861036798234371561491887344118859319121602418689383042788981710713304994512293440415587198880789648858588783805572403384156848160961454250522200494659254188427697752162886493004149038574704188980522959588854375786856661388755621668386972039370617213583083554695933603893440489645358991605880515073356130796247506984908825199126792652521878165762125030964908471761286958104672398993436330332388704474462871778971274305823611578958719338542024579237583396403842415247774770039736625974296535535606442080195449131378075128692171705209389184920744682020328643703169267848337221209068657117848984527555647442933273031305394846683237258868167175249399569126133083046531085024710231371035079750817858505895875117863065066024105220034404436487454648611562153564972391778478750882600725842090631688520461305980406128082754800258420927751443345029959651601789607342776304403075303165790201393371208552166356228815629049270378494581537508547776448353428807135694304667855834337894932849025017114976100786921955175609884973417037105508792416639232074258569739132355839307495842520057027548719302975259850580891990667936504902944176778939812329786100028188216606587121413854678751612843522768949409773478027996657791641419991334993254119574870449935180038750521477797027517767984077754285214792557197689611968256802750736543742912678334876027337436559556510912963855506449335726415236180236891153125550410749448224512342706822410613719221282596650575977965794041545372795754086170816809413089010221109187407869733866210074051303137548568752999987042934499569403826099200362168493107949637687880061679357830493070988023039766793347099835662977059822368652533798445927347031615158361794123957461949384122252873178006979703262966929517809212975622712343776382346665932005603440686399262192534514754731420129490631411134682066692940681056801746660706394933758048352568513284858568121490539498963657607849319500466471888207882988138802340877428860584025663404364531179670424182521200338712225304993182431761657718732771515987681893667403753985761141316710073658111562620980639718482958348896339998419916404108393312288416803109367984904463250412553160272336017219480858438540256271523479447029093107592864675069754637057613959214432401937799763575932049709818096076085257854559176850060788608288151564887615853288349889456405459944942784690157310759836438011371927087586863051794607330053214067699698405590263144473154283758233918732254824062685601896909972335067980383503795306423323551573928564425226065572531344110840926067346614111459828487787252990674640286570406462599944512452806961742254098335675491124992339041446290412804797083372812756988469316990991589132545264505597648119449910375270356976766566645973912427958349693035115403883379905068538488536484462222596794175782444469577765646210800080970213510796444679359147132290118657041251242939578041560878801525298329069732742388240788299728104845180066960171457760508759585086286514992867548631433443780533149388087282998996792022853288171397519058754068734199608339697699689533712794771043772507650495762214696535284380169737575604168750761233976363879592397910117753163199653265686576720429953697604411217863118190647794312939229250466809633454625160487728015220357022008770531196612077703808402320922890704135708875302711685251905789370427099700224919436621094089189110039496925449163841065811642302424371064190620878297084502083626920487545835255328138253503210441060504992911187275627216016094290774199782264811886042671518481670553309851576082878308190305161270425444245609941054355129790501135360836263982717810898291707453763506150204875748761124614213711772862184014844940060038539252654862290959621705183185613537673972044033458100077157174819514224896745049204300924336631124497217708284983355830485003460413462615096334567171025946962055859127074672229852556711802244304885395307830736195644926067598730042618534735562391530041898555675733732838930894925340308315370556826346615725992462100392727868205704578264248108545372833396862706349759527532842757449985990203219925452604129783656671101039591415314092205459115331650655348131967163845411526209350408158269449869428432012352259034014505056020343716419180772474207905665202144484237540816499878317734980410101049537974657039753147612660041607154394376304447414469697388340508566341628577169575599149197704111980537787642744688397160821839296044471947881726980499259170425191598063160782270093767379577680375492405689706555281424830820005273225457757234587007389039897469468748005348361694283797691759117833061283736059050230579061615130617971066943587777704958055361390906447962484379405633146126642515432323555565522325205927066962771901224551586379034064194095665330257919896074123737391649756724272250935786467570421294949299059918707307995450717366382016096436818390967744378581495415820456547811681913182050888419955929969509148228519087308775379079923175084009385946818188658909737324398461621701131537097284172886075453715975029203324946055740370149569419867578281500037279340704133463247529092971060604118211603155398079878904823918072725790525780335396561420682993228838962054447886052558705726976932057993405576357025576866179801602298887113113828537809069834289083367935006861910033487684393550077755270922189007393516447521412568817248629857630799869671099475876105265392722603607589100241791290145362411722986150422085838984771843449811001265704050762076582300997770334676727476882053847283338204333612583649783683325285403227615482238699674007011755771276279597880330592948507709627404414407883430754660264558897325775925287827296437223930829885663630891169474371383609053402791261272489827365465677409528865402378515449820322707322268903874797107659929875665282734653318181973687048864230299975292666886519467104293634609263533242798447446821386269673779146150068911060326963709964614333573695254932277535568913991023495976476126718591696038643881587827308804158986433394381221802126016503801434205653080496328080675370493049987514872151358204833902033535852914248614297598160152198495266153444959637835369534562743692654685583650948994900295447235913810856028283062810493169202274144121145697038799660434926039847952270327660683861937586931798943449130472553837457532097148050900301806760454103064051111832002647442094781887158783036969236290890254744444765760410537589191418344347621309848646829186358498777543058304196904140693448446520767841061828435833838074936113557646258676368500230450338851294208569118694457786428688643657070303510576318766846651225069146968012292339910698825256581158351031753965708610111763295772195841449609757607207666622432278596744397407945441429182378366036204333382817199911021262473053030916713895830425916003578768044370015580953682954777588687850651582534316609601151167923083703874699210617584779031800844934926332257768653678007395761438532562698499468359619212039420730184145274920021979853039767909022880855797869964203012388820654860298523717025341254813411924566595627006634439180168917645409250303015684326282329140536594548277796380434465400370822868447267327563844196362699404501219166765672617675923400249071843270056244318957865864703207409225599205323839223078041558815844528984990674523062416493950049239856862783610869364185643028103242037207977673682618280930900307751556804259109216705581189817786205501907153829757635272771528334502370421399473401306972087840209499967724719732308250376022439695211211972456059535811698067876785708859723803612687943369901261580440851223176249022028590175299112594994913059109140890486141308706538889047192368500326328975845650139586604744322715281886780597791896938057320322802448981086724365815251777298296074299064694569678872280171458023989876306435310851438592797751915612700820892051363942022067904532266595833794876966608465833789332685606238270296032457298428407581882301956041239642383877451256683305503996246494175812341736986072504248540934631551479486753061188842594725615646722646147343430993149232192696801073652434522811366657911628357766343620410973901345269692633699329973978158843008758706153660009138506695430677474126585793439860371136369670118019752833157831221870451155689975435703479204188032867544108706506783574643629890100543805183144491771612508441008248392087535831511982297577015452037274645366591530294864070283919508102230607648642033426266146634133675849724053085721662060713673166824143769104251783127541715947023459484408513411531448367404333170439991919224687248303126510014441304295096256261727700104118056426511221571714065296584656530296547183630689400292492311040215450613235348613607280194701616100432092619386210047855276805898016384126895165645929144684222466436376441249064340705293347162620642690635657806072277098617281575703968387522900308980875340436083208575675626382542257831938938420556970241915026887491625041292916031799115387902086057683506211261354942823923597662668308482782791378149874231004341345551339832360066453215660200795868612359698364984094441216608511539807069238070861685923673510070765538770543347212790610882736372709827480203360005863676828067199173401674727364613715021334918253417744652286953458400285436131687252038938693787897980136917528393951404350842792491975431044694746421361367632930378894917586737691975719062571102108633905369024135594975916368710364324514972914297950320055482718188853286628461893277900126246692556230668726553832651523814254128999832433487373627130291601778518894836722483239122111632041258376514232420657710094894634471097666297232732340559625939823772783323344803276944025067505179030894796789064367915687168247692651024500218244381588887682748751655570586181107249070998815168555641106625876394951210837690292779644407804145039103434230775102150994609967449482151423488899550273059956856545461849731233032094954500408353122720327305718633306768282203995909713010465065042710596551739856677578647581913401283772007192342795661858723098622312902742249790493244932807312565602149279015120953729569927892065239083029724255307944784787562085576784151264980263045478635764143077889767563335549750158308133473649715515655034906426562694703818240352297097768424612439917986732966472047550078706657562352027670215724555415550001060052780833678877383834802293719400868903029728257270095836914622125637005069753498691723476025116411010304770919253807124657714052484495107350783826217808817448680228174779981375220888138096337236983677807953845916260389390652008222718911401278872839255299217958578406832945663486934587457801784318815263544553760368548596117096988690888009300465288611463248894093630355246940669260553667381825259955677127926908600858814040536719348348599097732327999769968084827152623119771485275117932924283840381589979402226040089191961048416116218545164598037979858869551360012194417138490545585592042792898733812407260012361997663402365202900084773005739850095366557358509134310901148888895886407031748856515204640304237433316939095399914041146258460651756969385151205937636490652392686450413908653302489222294662379027078793911478771840346426266667716178717320744644054963589491773173140371465327431429393779351210438669237079671535928767424053567639166039320123696401629735503838500344185405891589121885911721368006991919794175736463999522797492488738202959552135681736665094941906454460508661399874389197853063406897244527750813165617479867222916226039976131725078062429510309614159187981297819638456819669951020007844543564146806553678690351476394602883734998324920168074342218316706161366738211974366272400747348039667859670054818669997558920771822506216758160197735698972164850211264720790313080252784200765688865136515591754528542786736005401684344035293895602576524489847465551026837456896563091102722536784917708305618147399221230110188778629390707624594853552122354749047397770384235516127641779261901096656222044192337057167386194755895544369703249210655109160098051186932630920331141357632752045162562803143303273522595742036793446771027734948779596709932092967180839881694568048045491988264341108618078474648470058386455571423164775330096835701589342298754464096783750818509522827820051235108174587351762627751593648115264358313573936344306905948221473822904387441581215578954789001502310952048939045022557085035080712473791968124018757315256528607188354664950046338385366151347963593643344610811493055879725505244238691637409903996579193828260079178182646816482696552300117366955309542482738691226917989654643919716199611264631150451037946299755036987811939268825523486995707699884076740449794650894935922513429737965999089727497101373211743413238275265540524735897788219493953596568296906710965001949023692620314215195853600821203701567384333208537432203546027701051035135309131318973866914446194761479478300646381840624611587896998780650548240507978549450130333096854315142246146155099213743564918772471153736369592981281196289559520226137597726388708479241039198500337567180863546803606471823638585247853913309032357839911429149336656706087707337049382844313737779879082979228992319539413460170304556780319785941290388058373796273658656887826925408696118068195809385658366918185868289249038958218848902719463838529161128956672388844098823006820825411699842618729667385867286345795762215863857834347042414214547921448734711220979850664383514243978377603336721806658355471685348717181367766881504074625960227986766240477935974044552039145040011773213901781229165709071384924926039703273526253544324282902054202827527842191870355504222307579502932873361357834904528805719683451984191340938635411819782442612572566770641508290821178547262380823528268312127439965239542335256842842145367910025289811688838734765119308596819262071404981893284214874631914093489558519707040323378295791173226498943799873440307495486868727186844138927697691676346708470277493002844475998984052090862340857261378680668211373927715987460860276767993417341349572217987314379895445753415747115210563124966409866070925307738887487320594544300777523387549706061438566299088141462035514216495584634627434730014887747786234254511581587836106715224658098784075146118001144285028452748523811731975264512760676646993215802738316488813578204889264258294147710373715823646265059470892010258270660048006890519138236171742504482770275321129561063836942376547866916163532248445991591781644472408661797181569528064624129394490081086388044890911035779470036601526199102955305445916528166478939881295654157807324564931164766795750501511753237525638116394230396199493267389324778961290855339036817750017535707371856052416590421994104313183726755411518769612705742351277031267524338125844814033922256846183556130195720604256575885941132608131622161627287718168144659190074634393416010413731084415471000769083722835253715144014182512311901232735103893416312289681034423292117858613996249458952489346730865702271921256295890863059097720559416373917381724933897196936778361708543084426816978452634289511344878410224527923550284947229302495379474832775951982853726866837653728611978550755662462922757881051274539536146772011424909781752900336706208296087125327402920513592248356620980998855034751787818033701089487388068011175725978630989088296505771911004314061109963417615400884063344024444054810134506913475307546506298392548411947177923345964098192442883526719578162125454852124846365826118194166056065932572216248976978408807122268438557625809443882473425269433122291681516140036679532101388567666373352452283016164370146537811794303570913928831886612295914854417950781737571610230971519690622599687561964623653821116574314245940025653341001872345553507600411279732866496438545248725391787143650696376571421655365773459510544054217890419483746686111927474660555435827200046819786723265296284116192520713240971782941684105586356494000320538379041555818532547302264573297581384845067359950287731169654945548942015635676673382922929281470112537691513632980424778414601868635129419769149438739490399270453205720403961712657400387332731079136291754344435907801268738113184065925855588707511479786185129563369628102711355644518157225445840047370697363156637628670831108806076040105337423782529442397075757640967392663759501409908168456627534343773972520413444685036432914863320414735985443995067873513511903969112602459020209867885504139575586186712043365777410313450658051251855661332001761163757901568920405683996975093276948929229080671711681696092445206371720452730871908884127022085445288409066323806955950263360250102378718506875747007365320264048533833780525125789014872703969022660739263920083786981857909310039467102044279180040633968304873702176891331881211832275218134408570978756179091737492562924578877425499208465770969822357678572897485661328611343753346539021739215940063438613909022508085385266753022857838966589256851780603535187419928342283255812889127953165119918846486830279410078462382261440111729412427378648915725839169097322008194168834178326855606591858735017973339144861248563386373821457610003900120068040601598492379234579707903956551950391520814878205719681582204526622807453834832471987083039145367747969215200848062659389176289652785440849872004647375327761591198285695653168726260771629542028407447152709696698051067489426984500810536602224628810058304976407391527504570431635069744953896504685811300531066085021101179910864628647936090829290354804484090527359531665165135746401429344469268679975908988176775967116667480435043228677974919800085257619505433584321546859192646322709434725132434893057325257559614948458037004648012138151463361846672799427250345763710654535969092742095675812967260898501855816406192598244886954180266753890684957646026737818057357895536268388721180797207374243772146193987626405938245779074992702722034595346360931788692340512936376731661371854728386910826599197617105552375690563276159667742012600135906776403481883981043886550033981236608142285668443165303678648094152078201480988877567627616151621822880357862583057038061767766606412426428104186803751089703116741630672563530689967130538171973861166647139586042256673053081245274402442420615528118460917132210149567963708103501181306736189307482221911382128826118069425900319533131131039014343250510985093740628529464990606394863944678167395140281462455901657808318555173476240157014809775589369124442575302661806052899447266254685616397800143383588455869401533495244796665044741020305696236057001164388009064781584710799277690073996039460423606978731378406634442586049720294453293044238300426653773763176513849165386848133727786147729801192649667736299160757344830645688870187201278571662051988357204640826300864187725852392462262154803628836042245484346049676707996707323159769915105305765585108101867043373295713506914564261414949139656239838129995293765328180446794698170179271539051421934142788250518540073445556780240411937583237500601109362604416080869904987814159069956730803763869350391412668392796032843389316941209209388757586078243380040021690181346546462790546996484639325376904597429290452977048663754722941327497104309310558788374609914078667270019863328906670215449574914086494623076416382260711002437660994299892224692467383795765418809353691490691717470868136441048393008354063904855584545827170026413628112001146079907268049027395810250745546651045730500071550635444559608323726671407197866077802580913740631810987218583364067787001138172584419326593328799065634020554314884952253782049613914032144167563508844615058747991194391976366176589833353702386519612452431924656791563805168042926678613012675214789977538956089078012969236493924772030556495578857114761934891070122464081949768782528908375311703050240090197126521326476324835012556304719591021615532917262201283303280958749419510776217254057394472439617449577306950794584227283747307548939047252300212537134895539598244495730363416677356716660983441614620426759368971140693974460892639219273544465904218571959179129640463845576958015105514756099308957999895119718955704306042767794151432811659848450404144658753920238106669087625227786517928391583013607094316724021969969468017257555257537737803047800003870147105563566145961822608301622522276334509516664154991091833458062199824254040112163679962903250728723349033268805749661183674538037846817106145876453025881012307605553698486971173392278874078365586672304297601341078193817874316797127370947360559270417786316272221656982571235477912798219234337167883493382991005612394295164432276425057770929374190196082017558501254918971067863579595559485999162692963890435420982070748480380959680971994243401551672933269842970006311352339010410914407101064968691013037881950906197071759240085507079783631078362944321482112223609811466657840925183168463377779366811773427369927348006944323550011072599391388272117067122018937205086533186614932823879274883753968967180519223532064230499716669924282807767951628715104044367117383802866224444289952962722531336416934974184335750153618475077811632599603302228665539107696173592285841815948804592957297179468198205195476410645473400757507581559173395351733067085324000537756125229573907371964631205940863529979436239099783519457179734723107031350608774293950818343468918898159456268913854012402720105931550838563073718967451080153108270917629440215965823997899693707298858232646324217868537050420034659873303878716877092700463871115932182338421211518943030118501978414611331135476806474883325214445148392110598401043032511383717505900145015476486061864362801465716139825092516532189072973260414770874171232581871215449548072939739303164175171545007118631130075791064630727700537633674448807025564691009579839152861172401537282087081113686656090937372556460617420604833659432313551799888283898805269285064417341516368696657318114279766490312392294255338990773831307623859911599940042880268492823227374099581474160220452464606798747849618396452091779512623611543527940977424298484662919160013327101481609798122224680958270479193382264589099455576701010662298713821553254407982802880890193859813447851721568247712677279078124886180677571626877438595759465100252428056037440535056340617808145740804402901723197591847181573301651053720019364163653288012071579486958319508116026444508314416027297220396281992479111397188230338688028905196186381353714497126083556609562876392262323817800980941019307858156039502519859148442375841346021866107555385248898085912397243879417433252607347909580742005401458049836479062018135823051551635014111548282779645761985912709079957093000521568866067172329484616702999244707344953161342971024421169771152484386028820412387114264814164720148899425294022410786333271471499295389806786629619359216268364146745563273838661162132815131249122776426160678676848442211188546271897374880455749312062570615067088455121335268077534960580906140727449692800676168336018928707357214621923185531415332463180730299041883226580419103686650958395141635122223755544454982947893541265949856024056442212422890998590793977926520414289688416533556144175387875323890426549573470166450369649275692057487009796197259243202790008818671962375354381698307330070433538112078668386775929179671204498737639279398966734762015733519131859002530432681679777560748885449323330317030742671121025683819557941428115326790441452704796783384444592830135669807449883223115944793643761534731666378767745700605564808762680764641611107965828038232348196122135385062849428611279897193411452121370552153016090509490314335838123640355604957049043386528968262230672109715258995826439980828804884657911126238966635607813147526694883236748380762733967021107192094688903864049576234591231447490220730919051336321982497040174480652143750297033634215796442089887182271899993403924107243296448911273077224979431605398581959737685321597996368455832314127370625647559120439691612757691014100678553822689919530086915753697297265693452579535313402206822921175804708708743759896306289893418490861988139110993462345133356158949860831709006311088269830423313868809065689943360760974949456368686368089830939057704227806219169411381624475115886647608256030757879197471447754160448265148493371241524716399406493978988270006828546399694129742109345832253718689156089101990463170966586453505294199121229694035445983687063748589102335469534430045339988607982284121358723804485587781934751679093176930201591722020905236906578029438960241640138741867141196058604318942252310544689777685566632829947505073158112110155919725918083072551719289395929193115857139134927383877867774829273831168821677337909696834509203534658304065108382903916518801091120290253611372541622533567818050425605242339833394041179974743112993507353748071248133233303014088092992761318863508322336065794456193692411127171694474148536291331060377675674552289681485420042518653219209762444614266216639741540910362857978255477544914108559518927972045381873491005133010080970087451106199119566765767788864744760085842054732354103452761066694788019977802129752789347576901677550863670605250984605247868799087538661898097976656209039600729306271577215978974960053447985228677649541070151275391387304270315763240878094404204883218491788444431801280686468527277870985279961787683194385564106515944214342937455103033068861996708170811709761434115265039650370340508882238628469471844588341001799358582127844521673108526003296631166275685507665536078554054021713848762379325662449936633196446389001882056521202338231450081484791444874595342327432872325671043939603673560341757397098532990374131553865929734451976794045463087832606610534930984457888323505292914192735387390908837331761138380016845420901902832466811790395301136283106640751570979927739393942560239043356468144855304895282438584421430701011702188720200116065091005961251359306963431182770224435145520294498479833334210511293934219287601747322978739640107902501035551679085595075433538145094928501091103894894569705559740259789751919968472893832932565626371132167624196591757167751723285751311148252267531235999437357474511652926862759929689182336770398554617255447767461696298738061640763421198673242741366943119979670261532019114221187438272690680377543924857139562965348546015595876331037117758966578551511504297985413568627332898609953092735892212762212138229077328095077314225600341950009238276214184578573609347376570662835002162068488244874137784557290843448155047445831232043222376617986053800805539642641767863572821212314160000342041361161721446150250203278475855017704063570377585137678037490512215679556967331713907897056431848974451069780798884402280167802572253355033776028328272823164705078925000737510048998524898549224448707217137574440206507167992274733509706308534256437005538411987447642846982578201253217117722537627243888788254580987086741667696333256602531179999163671063278590752929643993172024670417375026019748299178398162411084204150337032550587341228586374639243263273072320668808582623583762317568409111273442990048121279621230315783864082280367706570920596411567515167647219118990825328118096885377862450955661155116417765886287922710576303303924583658008374486645650477550532149035124913346811589079647894923769305833778071758411065497806616262094087333537559838740918293065761755789250242839113086405621790614155758889155469856957902297999305915971812334670725036481283039717390376550156547163227337047522570178960967185729378560546998517842481014678410668651930928309269593496327024451050167858691824531245561817217390829743405236522638921237675097781583131546177149670145120500047370810731273992913942033139820409093018618760443562831354935274455804254453995689693997421405368907437347392729772864462823680024540255766375970853314199915438449753675244278626381109133567095701284855370376546316493515255563345159901456650565253199037535682933771514478435144592303600517639706986717102132442434020212676682049502774669998489430442016951280863050398410478499943316225464524060362399720557291506930529234396564958817913472317535470547215934732023710395792101869255817701451929361293623526077491651743748789333125002067432234286760649752262605663337446806864142380498288577567442826206716234642414582687503228098217508737435355147360625572223613183827569688605354419070193210896762256174802866855672381375944206479466481805207395677496271985019275059566797199302456840326596436497022715185845731560953407257051206698327685606314772249170403719397554736315259149416793719336013532195116530022081101502922333858280139609520817113833427793626013150051030440584719603012712497490865078775747631248830550433647259139498266204121674359302027940430630558790973894679565370563171113172299341340088326097708754810569324865802423548183437495697937615202566860024092597720356278484914967937813366945703004529742975540442340996605195790526743455221268611229726033063517421007593653951036209948891638221821106745797786595897833281062164562145453794791487102019688207323078208709614797886977761403808349218684714435777869439443020531719780954983136643543479611857624595731343983842955576839569533378240915364063287329798236770165231602029739814281846411710154211436994299256399207327829379948594469213707761670986848481595878942793028191558007436285724580197773873926485134226415662979060351504518940044566007989322243564984770705967831645731255514868798809838750512391989731981852805267751614014579012704794210075928886131739689861796546114587765507200107907037124724414106103005024822884078236875769436571768298786264435456045221023405629637687130568029388113513787277907634741571477522820962619017438465332876012967166898009831372015728133769729357699443923810005835695540631724618501607784501256406557385079637566331739495541084614858784117081868301724650080765317061832998463606405754143563056821761148767740793104618687037698278612803969098316045908771189473603467932338568105390129696113733358661737315297921442560087767324031540064195064911812216261595194571917759871095496229010658876401277691226928837410529277689844903911396928310146326318749764495555758409235512022016495544042819809566215545673044664727038970848470231858549422306424606928187948847993578281308828443529582075966599940400283245066013824950597035227890122520222876754159527057341137008634893543515674712329342623905847251703604575359738230361438219886653417876319144307061316038354455599319129289853217814202166066416814151401525662319697223042266895743243947214294814383492264511817303460461675772201708055884631875001555782510122976155412901185565747110688777193959456878137401253383977659606699163994539013052766228945340818767284683401960961734634231938574926801135600994059237037118137975250108534741010265488415507749315386805000979622872840596213949471886436060597066889971160144657027782745288584232433491478967922756102251942563993350607561196579006954276771085672700049992759785626553405780508689368286885724124424629509516872593830716551041361128337167108469444864318166393341152835785100619129241757383870303749183725432050879248794267136270297812336042463404387520746448372832980153755869541475344307847848609103208438969880216059131923236179865181465780632708737715328476246027888036301343908917432496950133495547625024729324976627216407636500603774431702639749912600804776048611016413311883046193773241912673845684568146670248390108207459038822939661236114847816304795512206260489795888624496655272180397659265612694413013564670073609141525769611987115473081972852728293872479806101299098491155032408172159020000991426671806397774673204378384311329113375318366414508203559299108195811333444343718146980486529213514778479344181274505906284304024379326789848618939023206224545654558038499543020800841445384114273730395379926938317344108290077287074309427923683163417744125792617950185400889515828853617196461291254962739789392741531933986308207541745427274656761893632816802507426028813758391331791679567866854724890300201934743925136768246555472972128596878972088253939572720916572525547810006131952414066934393874934784378597715937274568331845707704629650028332849410100848127428257176741727412277874424146456408443366692067245479549859204519925461818262781806265008392268167620673983837723000938868744770212689878950843418703114904347912705075166228716911366346162454446836322308349835737734182932013067277732639033537292850568296387417400630867207318286867401376523001427648618494835299289224557236647446981348422650642595446291009714897234123582123775464837792996343833785489546206240544944991367691426263230895995617231798552316885840924165238818791523751036801593539030598899062104816063896057279253342889040848327618839899129705197929807139660859625673407128810436834202003491629019081896978877219814869336819106675587173095788509785165024846484135507257681341338076175326784505245803296906022062813086618511278868040421006639811314379458072405566672953374081266236723962956449128895336629469500539605116214286435267147764645527479094697654301409486487540031476447838919245190986952290979407147989399332079514417234842116147716670885277257412254528180680185965368875543570895487559490546359713809474868422022713412965839178808669107776326029729566548761050678227890875691517147677948918271729038968972514770606672844293074796375909072460226655636088661647045804583960129176339681508310182585789189700595846089560325841793026109080853720798375915653249391809350976399109786929218712575809762802105148191031022667456260981234686838692591660156303232599630379732115588989525523852005034588319300131987541721762416638347747645467176857339252317556675349111133261714766829957448999106684992623860020348661060112487280645035686262363898667348703870891495787641589543085280048102810744581548917813725048507745450775544481640494839938268231609754978246118582624033975304623694908803159949621390826131306829190362696923114204917433089110656048431991637621983482397975349839464796504195112970712000610982093151558956928651693580798487465485203879823308684851306021294099182566810172967507056548875274458618492672239541976527171887636438901422883442407253239051253550283247315040231992601910367118755903186401205711432040594174865254443828355124181004135343177823333038867146839601707799315647536551414675556348336844558881986437991559469078604489047118387126445339317879409349041811769668268627736346988029256799282538662299430059446878014927066082110005439083219613744159618310887988957715542131354264408466009074680208855568765996252346488399419137295842589986903559179104213784699306595822598365007839772940345114969965514887735640796874342497416919972797486511163765738429209310609963757088446154242287538843331626221917173305437785854306929395032430565107985229980928880124714286255212935037653894344448831560293944484634773318965664137993266670678869774186898494827645581580750220191218354553768784099946100149262365764363662757866531086805156378211670290216651503460556330630489310550652559327343331021606211814394505671381013241673052244002941891842645762606186177551569921369863554292525167435566275576814000568370579659440087535781644124436805769246296705731161754911491808255062619349057288463097344904725988674367609569425248114179076829111309550266754227770487961538833414936288265794300051694028032688455564431757265120969088424632399190104207827427537817184584183252183462522402545247093641507697663272977029248002605456943659506903611608728493442508156438654246914859825264426708013841731960728877103130401132581734748468507995407451466793603391966200435536197550912161108252803893146006830650004149633695510944580016365376277740278487998681044306941890333904056151172826796969782827571992611487530803436915344425450113880887002541510482176225876067717996743268304754911479622941898993867549626165313706863384664904623306826859400108758042293582090828626723701194835963501215277289027933833325289066077217750126261155216377906828988980143711949150430174897723306931807197116860027834358610332929721973247111102758071344945043096278635167260497535231871106818664662099648969469182094017288373395085726126690178655578330360693900099462285197134731669901904167471839066228303965835499122210051406139880670045354931344071134919663681291768414437412482494765136873126065052983726836505082463187653476116029956170226078540541344577266314191222437435556985578756129266354837147896766795642224988879058417585353522358092262824072586128539410484653767796649561536891316283659312631472984407345103454135917352264391637940580983036572737225303016068100486420774953966951586950979304898087137819841605284518385291678497042178574966611298461525638015913448499109557497772600345823734785019222062261376096556264205030062525429320619825476177951158629852016665653115025542320877175324347868566188781960923693147135017224007639130841623953760184256226887539360470584200871464591833988817335120600087881928309497958412768925741835464399377507925607740843687918379339470534369045796460103437284612322055046870569273504880680124401655518151663510788499996381297091890651637935858057402035449543992301782511394570544897351518473809075063904490153776540368300932263990968595163240190203265904781463300333727239877655662762451407580844351746888053669269589820533902577559828584522262886426947436444584508483260087688386835095382918961509308163438778144019954298776953815248846216154976080756221759536826127365322479696094774753630409748798259616026983740473601862251976039881231477777220512463955483548188884707712007414583736137052878213835908117559917106117587187495381172857864606438803500418593458804657696329059457039103732961622737349711504322955951600393103230652224127985740412585178620267932200964935680185055293403768683114455391852325543701224457136178996070208008643303676365986143133036398071633606247224135653244609565540958829978199621024554677277309682416164244499457153271883088980016213513235473601667512319440584938373091468833482951687096370889884236930533998938085051839654176586833039182132801068063591401704824451080188066262849959009679158888912098282961761308301548309332568170785678393867618212782391225016840033422495886507590692258546894474107611242760608898710869048795195337685871135453776017135173730854993096186250660311565316300548843834014853422403845479889925832125565503996992040466205993687831942312582798518788966432651488079191868069774134675727675118268218517736043157989489884451861754514428266784435547789570543718764209944544266407774803895567653065126652637446161006438430486201592514590760416712472815410785422542110440298067366431724569543794322721091024786659872440814982549106101807523941219209188719523064918971161099380225785799723547499000119345715925903233827070746239631395870273561351531909455905964074940492511494559868072115889791344374562727860842476361714104505856268554225386427068947454139630779375334347321632386615117970134464966808683095806233624900363144976146730994619774316620516882279753312646422900305294980624941884348232014893949661834428181726788068068927449257739109651935657135884606424356958213524580830371587620684477403008585651934109688090707481637216520606591539876709213996790688212240824271540709236037275596378741339628092258416246444408351152031987456955642451349559865454069701231154590958021209876050980933703436053477855496891935544843438864770269275141092619155408999704333888763680148742254843518494675528702518449017883274901014721919472111744385600765295409907255455920824403805297795578631477360677041850602904307368170978835130058138389532041249928007220151702306368680132858056336698810811524974227504836781571569684781241723700036811891803078905651684693164471338379021448906717290098490632351118522060357397984310052624037687513887594144404887849160459690887841236956801291545955882843735705675339944944962778070287611710011969140279909153052520762114572906508095279866485992254950705684135819613557384554515914115890375585878783401800936417171889508321865920821589120056503843359634150242309751376370304938029609674239164179767719641879163436928543219868873109326007315231082773117588544105097622247110886713495779533180684745534763688250831507540177564523551172006243361963872120312744564980738286750054355268842959277492984209604524209304739422570490222544920263825021892253668628311128868384705547957741100257892224028166493776791483094507491334495447891033349250390347172914232088800657040878158252023211122661312923989648047665953624472704054663233957666799795076535388525783871509454776766192956237649439153358711642751250023650834738528909141004184049559188983044711463201978151169729946085854626401753078019872368300385278634368513661150331053486200484530960579368349160616516005852427848460593204465188658291516327828245068874138248087697560440987074329511740606220443167030134479480232279954081894150840592410686611386721610014228110755041723071307005450509886452962959826378802773266214216437885167541508976820365795994934383727643251094601168268526013061999219027818809049688128181296418642608006867171266242044748311487303282890161167362639544425397426001449993075969619841395189171011540305607681871363179449119603467932240426757670077612617387857189668521913910510018480623028932688000314301081281853250122772939522753215195093611175985128048221124961720802828327664213335409998137454474886952942425727279662434244022130558155978471176473906118373203692339020270646268223061922080122576496642048726327512186578749947488315239873208183261057365369561955510515716513808486226509823078824585259981387392529520424019433069861375512059410962020874617734395365923244109680722981761487222911455085171234940252173388237126149343593479047632820012256118138774304991124012140978236782511251960926114168022915136462588427754223814028125075670130921122569040931117430789637220649523687899496464046163712306940298297692519895382122017969837280580080145085002756872708451366027073577114666120025229682735739966379553527162912751492022783105166865458800244200840762720687891559533515703274534528450459432366343399222852322990202249331293328478091044608926262914952587731766171579847088493316570172296481241975068169769310904156345522976687915993439892613271143429600363015772482194226643330514140704317200047250281594934198123854439422150219959178352684630477642629631416379426202838803903577011734867205293859569536526060285951645293577913767025003173210560823655415110037711743038460765290288124291357618318720169647239683735832347844407297570140380720600168744431760657754471455467712187745980321664661192081001834949944677965591870494436960111934833207843323436680482765431186235700400563130546047544172819690193011368795320947556977431239795103755938849904305421147375961551241282503380269902677520459031527548151684488346288238415918726001576547974352247379311972304488162212064105982569504570385394684294803197724379024611102234096369025566092906696796140903129963729338166571295322975495281498318765393262343047679725441109690905871543401027837347177167456353386151147187154999236256439847214597705737339236608403383974749698580333157507659031798098669192073711651953660875673971980088258275379372471379539460467589621128505662895747452069833937368106385005042588952211388779257265891069538161293266092442304404767517423508836301136043707397577744614577932085613031197643439953229866718442155665000440734987641628741986924202106750838619070909094742211404507479847762286722273205311752354088566823280341295980619922540942870694971476981918391405258369656452009217089260885025222212058973383281181534778398701727094014683330701668233229995667935239996158779810324568862458076279077082331689197484422445820628136594788830402344011907607431327070698609714218233600943040508931981774700884211602924691409287693943933781080751621452860575360341233990074377228905527451203315243021466025891554099117205589129284861051682460559931073274864949503913002038279178734728183438213617450409109449952102561289006007317985830473980423699764043224315066582691176577228331839668468000236873719387581816956570320077015235591962010649965406617765907214035387428419218499059229563891655476866724084131093848558992578553577968827690884485572331761652470860878837728656340770306150857982772174306105141572882850762160642850058763155729997126493108122409753150027686991625400538838830034920702952345455158902159418250295690223621604323869928889534154771708037670177263075911996970298233193805834036450380751224555302705083914971084362517403214905485975202089428723303598531762817103454955819856350741972641879684431673900418141792167352191859174865111702751390669433751947859111056145658925596989877188016542946925599610033911427791876796113068530269371753123929124066507197697218503577763651098040483072106103085774740395469636036810029294965213169196041447456350431460798390283413708580098361948405684136398464870027648597651279819258973937399055436013844564270385928067890960365655122937959080974433776830395016522399289751019260320840248104586312971742285203870829684591085417473447742713303398869608888953947971433040570380187458971146709836637610248929358977202319283237992678685627856206822682308278965987630184041638386592890090004450582641755800109889080871080945204415725037667702743837187567217027985692504058587373136481291731149557486717811854876296020953109194556511405856524789561833584089834925771402890291535034913525720845384373737828945956529037969220824169374882229728130349075719901337631687544970690421043810715698255830804787434971103276685432186894599537024650676079230885951807628742461389074045750171703935619177179599220345141289359860685198068975270260598918665848492046988890138573434424492565557067731844993139723993978789294440137324124231009584172014686334803310504978180436617123893254142843281718970969136551431314550331417555290684130908263781804777114053717434960238125425950499548108815286572505850109781936647832362653722422756510478684926612518569652088479081486628783331163766097375083135452876491783224963047237012770449773387470484569139315771312432431752102410680211527942916553464210870719192055241862646880826683316729621353206539922916118079379600839561637205432567381658086866198330818939663930201441668538230524971083565168993147944636205030093842227430291884514885820696542264954057147062567330452245582128360186616412928517031812983631435617442891999538742895822916069384894959234773450164842645135353160747955284571233622582123386746634920516576062692424228404658712824333232685797142795473298686703843406069120983222909935940388873662867130696792922469647089306683463649485979279658151525102544828535097997289932281721805641477356796362813807638658294738191800190331755250588276895026888338647205614785956806615474092619392238774423657702644631327662812427140121739409071033337288554671143356492956795820290710426985962292311503627571009919241504077962211871338551935888290681646634007995397748898577806541581116537814748388686579727805311973374822846217239195820480362247049879779726344343559190758823498574066804024397265596318182146669756633241365195345370881235946027812943471915939359556516298220020327242391213733146109066088004290754581547755913570643771192966113675279731544081019827899390552082652796283526007442287407295946140688725433941941819233207950447777523241984863625018302480915875697916427646377637705653704789358762065761432848614423003433872881669846563242611464492767153106306896593903933993612064189319333953785409034208598218229185527964611915907115175336769294872037129194438466555783974491215916418967664661502149222946654487340768540292631798593428698862748174140556303911640919676247656705474710952867772402209502585771250441169302175653753960820248201507144559672705668221609829051748952528280992855559615949783811432018366985199145420189152863759165619416800164897680796600397898328753987685385386300026338360990339314087315653073798193159852100323981117611190005462571045606340467529470295351076808947035704123759305549997767897760680441404851395187397679269808145251269381352128443613806852135112740145026177263925272133535988905035294136702046375561785466454565023740010956850072152905560345541431493569366776743963468445639027897460681138160448779731164717485291274242476847958540222802778308794789241505190242976634063503387776273937897887058266248875836389765252540309954953818368257051787244949044121748996954392820557941702381988384322352529539497990379791322706258844564105679217153752740303960246646578739311492037440271474017288179355595819692080428533329162066158043719051611524378399382494969879019653784741787664054457792948923226377449235889525300003887853125991662632360710782120831773611613988088571906567089859142869681399112970001087178116297185411491776022143519729458123985789162897056361721349504083689386177793346287108895626739214603235821151366137403270426774842210346543187672062258755925343237531574074372558302606806132232918157861488677445232423440094242966485835521439204761550903026809619725720934024314261440154458027486764355901574349506192206848421149732492736821838068279644097075079121663881830606849757730156808022759259206519043226180896216679026188899264733720614512017903059064610447238525818420838182184104743044664220716984080070613067274457670846839617325052393246161391556396085133053284920778664069200603099106008214242520339945672727781642502243533712801848113412837902565561085764917331785129149275238153225519391928439289514090324006161776384682458769502038574583204992853596848559567110865989581698274540742317163119488786572450211613731836812406155170910934440469195022230099757603822127220373729251299909315217216828822501625778236056503148477015934896147259618075852626353649786603433745799353541981954874440129012341646448527298469544840617475156397009108322122306330865934908794837337414818349226327123055226972540758644820365847895155246091335466715203655592501397629390210024470942387431654485627278883222322311214357728269500118911061708879230065994862456646426855389802629095538104972179891987489068669199066192715894326735021369484349896642591403920498503078799297000952754932700685143042502492377147803301191774222638855210652069483579888678508727977521702976842925970718491122475554020836565368116377038560877936570464800410063488367485286389891457604225513190465875719788265864570626805529717972451014823099168191408612688121292663884473031255159040761968683115668712538201751250787891395843162592267543508029911974549084388287835155167536015631613651740144924822367179465096378111700153031706222460775591671099343841412694780420533222677662649175179030753818605280936856042329973946982787207480968479218833818105478229272983692843803536563593129011634409367994107423651680186991363185664275691722554511272790740033603408409421606723781038355655545286884343342485365264872229968199303993278872530024991859857297230793845908788031344763791133358227562391810463255224678000088189992069540373725299077366051134241637861997167854332317496114363196780540216520637634764995200265909496388028144010081978784578973915223330724900892783748332018288745003790541548906163143236416895186923553185721200565694304781762726685285493643784123591443005194128098249835171554113364037714612420993975009170412274419458385617191101134915847277719201656036585205134805239850330817061889912964091499867520203124022970580972569977617457271932580621442321122911231414356935493329076712567964629671783402859141354891858441024041478321734763119520390711408026360023313696191907445440080070595889741021433742569323556110895992366640557672277021185721513113077761928009230692849904136964009021331391216226807530972913133275602776908136987056068065485837055385708070270839226386745764196814886039154381528690320914953658392731340451504317422488323562378116916274167349707120465666288366881117175057953086582070837024565170536572915728838769121394694541393385891173987127754830214764051359357615531459441945616661471223684835540713454939850715294288169502189531199265446462572167351804002223410250287093536555180361057104854696461522716968884712711793709133058996380724643432547342275357538457464597219277310134197415884670446095530104882511804878746395461701179530321624460575428014876141781854523801415756438039722666933554546777884662316788563892728931944844597493383144554832103055304753283928334401508041523494690488246124020565882349415070074964195543418428261408963183198063793213467182628781983047582104232683835304250720136614991155778152532589803111462827055396393368591154532009042894091658443739074674282045977590788759572363446174424883306842551906390340168817240976283995198214465637112408084576101550110691535991987075486306755330702228410698857522332748527183256822405053081339130632888423731565133961022495637383518223086255530027000421464676345883757310392036843586673784383979591582448985228726933613295595769744717430702861474438682380009836468985674997892808343152205439048454449602671182727374278844349649179283738057819208673319358252413639521431522885051216535858930028211176242831179450150310453423823891214145667729390024158130892806311090656366495573117139139615362197800442700587653181944276268681285647185870557255096110080927200765940892998607530925995454904565005626993294341033963608489364113610582862910690321918944222098958891629741597929409684376512943729826024435539210778310551069838460680110443754095670070608202021083215909992149132445584013010662268428038973869984143488308736420395115381278618711135006952074904101483218554448194547374666194494719778895717231934577022335872782286283484978373288266679383059392926711779543512462335457521823731941653126182983267070155537119048748793114389885338406899313404172016983223761146662665806784190499965085055330276167411884350047559142561054788834504649071819875437613913562206696585423785804146567176722848775799162219581727260228125251295940458122550773545115601845624236967125676884291087620541234010024671915922325278471732075553455906125933118214551821889479713841332292978511606898572245879233658488261905948377797302244197140372416786458907679482507505650271537957734486944925362315357801397516873684886237792212711364857396381822859722048596877473289607265239485289822691425888220919128214257969883235932113568166089620363674930597566410366532426659420292731661395484392611487983792971145891086787274949791468752810854200096355538435389232650586452390131222209429384266017782625890610038697294622209402836301083997301251453261604352863465085781899032454365673282697151901803529038378999531864058463249660305322945394655044750944737117602898980109683313768365659065449209783135455555244290761573008488600014705104330268271679158104171368636722995312804052598869207887439086968752349823653418399778821575550542747238028921079171035512910940744269049613908518498225474526915364709223794860838307574772906976419403626742032921642674160249497105526540301413372965266644658719669617214673740321940509809317452110064653427868277978434772159009033996084275217067662585390195160699148303143937170415900860671128974442279402284342053081625171991772092048110619034127513042761354509147894051380744091852828580200352287763502901965593372105400957390809411692177876339705845310732634113953254188494732697508812642298726536033415096030035064001213906132536058191272851577012269502085295514251117958369845637484401475460772222468117597236655083840360167417588785171754012099393730078686429939378935197104357109669915145279256417171426465638250600192610352932587556707035516025801606486661623570329341920628007436161146590645182930694325717549263288912941475933504550032373439666903698929706586990460505717002736812034885539805512010284161029903712958026610028701875980574661840845200222736964181570582365766950129616795421529358007909368035069272252896652601636675992135613026235677768708554734645118871737146940507898877187490721002451723031986120016397879182627228437410347769203112573619685156381770352449917690795843890022655151264023718869216596079526171660925939330991068426912873472115870980855167350391515170668059537741828422508984754168098079499266137628728277602481091381601091712749859062855370031788475470202850208698009506942151112475787069936121354755513091662930659094974564208634178277378555577627159682607732924204473431233408908738081398029251697505836840120597025252263865355995783239090411140372844888786420829354618472451479816336983794351154036057734655016805793452404225421468922537903723096957499556421865390606682980051944763406479936232822363233100104849392246041295679541654114772725735998941629019607963882546812853306638208574461984839306820361182610895111189085352368666749975823102390725987841013169302482702949021144419919098699741485232064200102357999926421743503368357374361614439134417968111465528887517731310782247534856754657199605785298944437637905386222294953133072114849249585592981587019294406457479875814754052566473050282399524146983213222433049753859882675386971064255328379746876163452452082254140402917274014537901021649726098052200838759800568336282696713116307756306023928732956443595542790141325348233349544283362996963208985811771471138505415187277946316304467499975085712730141889950433888403895041102164512128054890343935430779636623386315654949533605980636767929239926926522237677770661361821640879583342044545684050654728750972289751766106081670954923509294673257614316027044768669200720014922182731442459535209921352591597163822194527025481980578297086252937727524980283432632815330751409911424572159015418320398656545183820546360646997654847817069739400038177188361379160277073290850097222625646205411067118179826409155808151330600363053739818620250552977396537837839074460080308123954814941936993707311612360147242020368385671799625461673218460771953643772233574677381578878232056936348800039672095307658325398487942468216911251470417430426408572096418100442730194232857181556528325757523700918082353417652346344620608145911237491295890546790363120418545348970705679226707372659296266120812097221027078971735854095032381075544258986175171091817149958662930480421157338840808279770533877002406199536399028794578683294296782007391273363464974123715105401268221685330054034097045660435787931593567894444491009443936251715059301793102561325313453900616836425985383978657829496078946536386710428610766423805171591812162856016276390344495606074591608197213671400464487912012070254997553360536318512572261237613720351900646550303064541343840807468253557820050270717323396826855439127778151374953351398282749455451261188847384555576645089478766279774926730484148240962055192633441058722852604690945144696581042343745090190650106288909299722704507112170847192005174472256329418230207158473584637946596266675651488923202817695069137306368703390736819745229553782448281165558306187096981376234108352825376595437933188067699779269619867591267256703175274382438665016622668960252673237394319927141122945281771040548429309326709758035526652858934935138740603855775477733290233017414736095534925123458648271932667314271405005885822837717832129409608196003934327259984693261252295565448578158342146490215795911257827312572808359476661516153823730472793933886248843838148699100273046877211229897801565316238067122803849086200112983867189019076688206990383109679936566982039226602299471705379582032183691466243675471567404660679926998138766905269984759715344940391436702393857103987506887415125769966753590044530400857714850038403922591727939266615776697072186266370468896984406721282221022733751747598800038896318113021846545443307985198692125560550411700843238342738157730670523397593114152730951268970359073340276295718953783963310582067987649898874839556981744163163271383499051515596306121009255229747729758305361596398101176027029187653605155403453209559181188060487253542604774184583888414501681975637461968690596446938943526663421606154033844858752296120042281396149478766328069316889562031502372333414275184066931467070557208843340994078407829861527144845240703065174253076640982372192907906455007161144945996652606860863144166912235935781973054370178301163212679720402157184772392090635863709742527730774255216536877184802230578838779341037759903130433484786304362550548913877226067456946595368847468738887220235984205070150978782147293331130844340353335439134819631847124524567896598746919768297978217809114212166227432045393477128443573733024490218840603501104770104673485699885400988079092255269366609233930911822331735026401172085898114783052885826881535344208298048902621279390301158298718828615097908449731479159964461241554489148767912246618952873699708694771210188030816956354211688504689937709494480529845515535629634812498756551418861955878642619988266802852424337896607755046255341104560704561835930088234076378219800306687816291498933416998164035970048949953270231023535243989070553094723198755142352878419749584692514951183960564455803790936659335116358598313616081949278238994691202967154106211353054334734487536286509266380199297352901489911545243159743534250882700432525078942602353935895597669395703613360883374871840295500867621603272864999620718318587719824971949093722679991292568637822306464626954884277617793976983894369897733454526666449503761278161433250697362890280182325812156605631885986550787204798465762699804350148691428852336806192381546164250710890866047669369887751492794098932498656490012030980659685700413225203498144604420199558336814531952158784088729101666588345818773459411387058102543371702130165823149444337220945543935514104314631015441450733044363658190369837841516673922815005252248773360430179360015975520123428017350103563589007128161035734091757535417927945137405769438639975261874890452343431457677172834214362778799081201334097435246195412605832751367162715247568889337227041484249009274774379488468586171487707152634528781959901416943582660575165491323215755131177718022792205725030506093295775908861036991451363525354088387445170276753222675137988671353206419601254780189916645954901708845512322609842081012388707289127534844099186079663889818096928645594028264883149603599108749427100026156116514049915381744853381623620680868847772245187314276248743733975012553499110449238947327479590024586512288221557422099969976587061025475429284994670988098244310839639096732872821332205037758506176384878532417023138943553884827999232625512211522743757777517538500608750110725181041255364295208352853950570175917867863406218710612199403093151892902891032847000539103126156268356989777993981132651081301763369914320571397204820159251203290407884007428006225586805386022033413044845925727552596493227657472853853549984528644960801124713582441713608296086843418558833014771955885631383225730704474881630064939113843083966994210882119575780963098331657348292641349562393445279101229035076536251691101181897084137588289462458139218497351761432610678813703764932754122824062360720843738673557649404124797496279502515566351076699312990723300983379789520115498413616560173468434141666134463215946862507796782091207395683063112799674911173379229728774680130137504840397389635287379231557293460190339219793739592775114512888551649362871384340044518285304042091437542633402598502215379193735297277306588666635607194873125860537631497275912282479103119662721699384151859746671901213413626444695654154305944858109885986734035392612598508928504636621032233369595438231113244415037480064442223795063462190878054168429061568672933938390590677191057578875494951773851849110719107895785308171515939572333360192465620999221637375708569692872594896948251191541832046311943820266979267445028217050042814203028985115548393314286488097462824203452525267380642595690381376179747249209346940319496668890836328003269297043488893198669090298296006231016140092206274719491913863852748717870158310559321087097568175427952809503173747314981786103462235672338429091408645963722114811754865010003597734701575701285215127183938619840158171203556724781920975447369816650449022430977275755657698376647212656554847178248473826957260018823367920503919963579767168206113653630167933913938072879605115969998960048645876434190925191641484044144978754492323352696240407919462999177959507365263925306056769937300294678549980429345211353269285661604136096078949233539154547704629398937147466293745822779319589875645466798936604675234616367231737329258718182999869688973231150298393611646808222324409317863644473693131252253569973407852966621644716218982372645748137293403836878283106484724130189750290028760736056609035610517276694474710448013828591403486650237206823492957757162000814183206501132801208880273148411907336673246495399517505130657007414362847641530201819010880757616268157966758118662518692516849295332479370204182244212061563730821017165951562588428568627661641449654108799358571050153924503992122354377037505839111455856985982047238884652610650551227653483369606301847134498663826254842155402403661699255965165504409779580891081713705339953405028410016324160691916449951786788203235492402768901883330832839563867082496688029585542052917518652128240720241373342296486624020891213437037729060158807695756223677048033589456089334143128033306310289883300467547484315438580573693357212711368348994569893995251527576166431407652329732598769639566664856078699936224167332915906890248618883641913580341912583386899436883994742043843459749092989319308079749765281530043280181801375252913076042542653701239923327409806635760133462185001434311157923307916512991100387696228325324258839857035689185125816313603839323789853659685293375416342750083362846563286407929432152225353998942345460205015617586835113834500208688727971933210797336769680796530269035542376596944361271562939475303530278868302932001993615579796239688060194255002621427317614422232992495390528984527654201921847053657321652628296978263549763042751132777300707176486737149055168694906235136162661508762363825809870440367631624451926389788308371126987710290867293512833404034621720604272275925934058728259865380406413443367926156974380854405955402542763471071658782794071135023311051440371455849829490604875703417402189619996515159756790419183974367573909715667372053936547798547360314787535725118275658237332399808612241053127161858479196542372318259048515015337873327345474173451476667308879676980234426253084686079069880740835784127226415337664442547702319246239839895592498487961220746100400872558994506730545983067182571756082765355119040132120806856769472311312882364365153631557454945621201020531469777897445014124657799209611358394865392214374229875855551065723326817737374844701866456612431910665962899480814448968343352927263567409981636165982452903872776239874673330402070056911811513137405025031162995336363295144909234466895410241598029728626818769229088816936344988248979906662503594790505739765221521140440585999446777561415801649625331187053191859646896934545144217147592889528524048927423543416062280518759992730416113326858969809378524723115770352194215239856471674537266511035618172644275082204052185546481261336994278032672856816029896740466453753873565032641338755289244307344774428754242057817086579380357065408832687652724110566431798337864639465981953203983603498197234886700396231369594289772546758436289349767598464928761906282377227090239673045007878744402281031012931778618019277367241707964416656856761066567027611818688718241976649057561346846633899450332265158344175511034694562642077561060187334960719443274025768417046122373616974958060018852779109732057726254654305468890493063740012924926882348042645961050217908611121289633684230909575245412412338031498457070783767670075699192719116062750171791326208650016423243966206480869163527135905869614197630286074809780952744248817356216870753322244208964236755380439803783421032475389468995922636399867747825887127806742699430594438035103716787834624371341276000875038378654082897228619005436838854562409673174392110980943957140453166831241900726509234450516275801851118883313533326882263136329598382937982089791449470457352006898460260611693212822825543858040637122481946876126650701282362850470511201192149774807772449068132303244126884610535314348058908820295050694961297940203176326980273118212250595532177230393645654896440465230054623131795804768156791061114414117758334514329342082022237637548768082753582055305664284639680734516508580896904328504311840544267231308913090177863640819081932393124291416234896396523180901818700816686320309050130754282081178009099678970707449553186373765704658379806300516686197990308633876291082801928658243217110839271486688676482811774868509774285244636260170340986493276072657098751517409240826771018532991958580921231683758611053139231088885258753196244780970413702040344046572231782021975579774337737235370592406866939352910986302646891982119138611091745860819658152907770659839385065335280032287451616902902821110416376061167375088405400617652319820428985267101298200127187264211114515056741120839606064394207332281729841732589433772159083272619178832045554904821849126088884256754371477768648834826065727060832507333912857267032713951969979633695612124008986786057992585898979763430319872229945644976096946420428329059224294866362061320237259890358447183668423722250668434342330550868988055727885961702787672129920854229494568453643271384970917319852030261391236532023926342010133393689055828138014754096416086800664205038475867516033268248727894033146002533525971920132113743647195373198954692891287797928425353018218779708961489867251060713543004373167192713733137655153880685701666038695473945331961353127794227444700132640205195224912643964744149601565071828552962122891469343497727962522824216483385379868884294230511228474782696392907240225160683649953359303615752379646184210230598790628986898100398380839907581037219292175952262019100657649842723076057513161726552077447688419348233471920279790506177262862739292743081481747755438885273275750103024200575457749827589393636219416010920251648934441795767684645498415772791324304011332257186474191398740720145050656388280803262922775205699939906507012886079235935242412297945075978390442915090073699967706340273713613803058969427961297881261529627580949324447304415838367267213494084960432848173660116833448854631890192673445909168751445457570528988121625350814269403051709732291669286190616515356119796445938976625700922696574685377539273315822070694231781091999672254578755082922741560520973352856828931803624705854243158634364423814953101274333596435303442127318175274387862762327597057635379883114584795156444669128371057333854940031358298813781789957588456136500268743923719997590502361991055426420420290422426302326819196734739112157657958054479145509275437204095998354027788946577241201958574865305795648362692937645988038179113898943600774059967970273257490052142564420338981435641517151445072862105942690989461413039705742809646817411530381377282805269353413076167800198895283188737645028351021016192259871584842844692920990019962705768449297104773021512362028674231415926037068373372816845758828562638596584878037962607767479089621034783815714891934513246689665544674552082659431113731801524987012372239789708964068217447981299392413718188147026928250538091984276065895799730540408545482220889371363238600843875786359498638095891205495935169824489617990444304951893802174998720381890942904722031295921586212056951607651475719380202675693557902239827570110075244657187090066368231130077964334800421163305200951671485001438397245222823104508075035117139459018136553096540883224512917785866800621691596861193146648310226099613906249477206437218304613771743335941637214944538201190298256420997965764116585650080939051537090997543896189763240160717528719766309580174125905724793474091120330126775849842861796508664176603756544150146714447078424478730174202600352142101571656544617552181551667052857744221817773025033016561685929257285152821777606230985932561078195714739020223851597134166815404951072237036958917025274385238016249776209065698596743373362220979109875017485449980544006423145165367896463661597008230272729596148053626114156750911622191242707832090687557870677365165906051559447996980624372640053282441792981786462475889888042475125235828529730159978727532704485349865821495212026254400786083755231520830128702632370795463125579295018978669887187619677013476336711365147540228044109239433695301404249920959703313122296280433618540393466421811124597166946018330985925214003510611677860805987568108741247456085108937365466302981529121009763241792744351695133786002959085687355742999281401552494886706130024421858057418293118527706554388832388315311849155043324989380087977785937378306423714401282890523961941570945448748655237856502398633171699919318716855308145936300482089612073575079008467790593139782692846888992563953539037300959072394106096622983863418631545456639492730126743411064423457468948662372584915287308509877851055611709080580167207902825411453125744420698545201309319033639213547643991808445990424733087996405020755940228161893792331678143510395473534539216093216177510463838043444274165824898207340261886115406448077313097197564184577595344577985846557650388345433301929385896064975519248296017612301253665612367776782175193638855549692528228029304541600535558594802147328206016727388829760298819285840234100615465850249185214034641855247805251049999880207683619926236953263048374279333297813721920877644656119369627094114237518515520636230290961376686873789676674034277874619623059402620750348242042942360785705481990677700740123187362212350540058182093165376817497172180769694945045248877629782401466845716763888224002744208343402502594502093659927261900888562227206690426451992564812989898814722185928222621923877529981850698219797471236573466137851740648831961489881670799461889344205552665755427545138034435232053203965646145839555721826641437054166173689451729260115161484184924224912215318784498857977012039930356724460863427804171868819681407478973635588367146666407805563137000601323824029407654974332157864160972995414991698640872025946876068177074786327233947197287366975790423208143709149922041601418725429665595817008396861987404743309532731412826007368982185983681782106609100395573654807250436648587673402446724750883412355185697116118794798501952301232010821600935813121349776898377507148421709395375919359794345100545170005656204940427946901997264195372677558692836564787082114254006604241866162575822333411854726823652888901212754533218381086298584777861682122555100747639379820115061198189335466079608585123135227461460163300652524628337654212909558646060837657213115730405010033749687734529184601807685346157796294299427788379740255577112608037194755031993423534262234336346717804627834625982664620359812240912592736488168783599637407527471198496278414420042336225619964273554696797130655990366982061249527510043704058930277504987168413031686338320264401595770379268539332192012939046155736128411406554522779010270420886372383073141828239199794001264886814055882061373486830163138144159642826764000284860786432095330873350719327351227394448210701421390910202466279295188256001674342332962635400911068693678875676458602386309726891539662155098834833524819395295383117235202212646212423221398534316970826377662853844222878503608582924511056771373196539921345851218270357404030338327892880652341088389283787129469751571486857951041291627521438713870617482408190296677706235888317237016398517210360823974164495690261289416537013221325872433931413060857973255496915084919657929637942550520928224155102688854401141723854582094884142728424874198458170952072221492108474177164464173765953630180279176532655461824606942839553287776824526819604612672919629693759390141502632015902547800345916213556027356643267386651602956044859624791321324609364571281623624607812576919030683985949984388866371339494627683739309361297263198972418830359560188383054440680431377386469161723486137123620122650988904646382513679611852214170234090033033221401502176711995973708170849971548741991479051947270921093094402203428548201469120443300696733404334584422024604391827688369068101035001777704054876460830406642405681150268343440450755571193251815944536413536397706863108953982163569014604786570256462617517308090975910803947708572362883576351258948656607661057432926170946571358222889598978683125166058317264729825609713143486353001146181098697409012421738242330926431558115595228067751259189495602346675737673034941094790813353272975915237305003937753315882947441281323854554312800245755932562776169449306558555315466450535333280205821391109400159515247357791867702560321029850889558730413273051196353188873203498160440621117892061710111392619459336056994326045480472503161359718184792343885463571639269528691067934636530829095446639876952860280684319022204845759525199535959251819950853434629460926141335220400201410244975750502514276463727847099924610771121126659490307570829485012836070517258946311919278827778758164186296476076292461356319348888198094578200801960973834934834803500640653458159476400366141499028416701845991134059889913088606376134902830460857847562847500596262866696504284764107157809261237896447390646090681830720530681511794899816253751523552371395032191114806254471818426425298515198433443661632316671955178026680466016999080591544477662525945678036090803119257396898740269636922165811728870825735607714935867621764717645414765771054474624404654560643435222979374334383357651834721266352059686314553923021714420997268719046402416650917610103164655401389962494206661536297028076072040968949068747100189560752074826919606763149197550068776904056176343540066846154105483976131134876585195270672882886111663890841792718060704133279964944304104425446956244511945909738844959043300707835566371391977670955341289324063428317813057052558006450323272269011060530449411790554206286040593332033912529076177339357714705269624390964028571681071665356299031975904199199434935518654275593551738670433275653367770968990381462630551162071844988226748513442297359398861187808911626508632090643413413168326681835981402128130191009690131491800003009626222340667774609359337746421070987325678858423854634767497592667488137481653940558079983993166548635281928556156752129368765187587841806374030917747208715983142691405116179773430682915443265718741351091482784870213204411486913874398308510368528979700436357949912248128393110559704188337985171074316980726407674655187937480347021094256337740736428658542067289506105880974144493681195275233793825562853532666131656660722317341773754595439860358517780400258561967746810051667055636077429216267967050346086647038410303728850999379085159155087521307960566992436759303667001882001752358151721874085039829718684510188498790933825578298317833732980788423733985883530526334280534126353886725648537210002827698315745903396235090178430587370482098449873383253970640751749093971627573423521496804510839871274129324525870453692630483078785573254772098993469554322428661271775994079200567156448579070113837137224562924946660573979654532931586086826574254395124716989885605840392021470377093881842984040435131896648408181529311707104762239741518546023969347239850595475586892172416820591933268151495422128894393229600904912867901602351892867173006002927200263528933019196911934285586942433371566622291399994028150688759888688935144843980823550428285615044489951669276683373012347021728189177848805481661534927308705901364592297060942925036071720626057889137990185641029878589556470510201932645171663909606806493181946969377586566027633770022691116514737587287242055013404271485775687208552400726016868118751246359370040952712801364664394995838926006333477785738672518180917944670791546348316237067073675866241687551040939721064727368664831432623076416615154885621123794665701464278028530204469138990698352349549836720345396696007085495949350854321010954929129813974596310662325285249392501485478741448346890981109213518034710455042129254003374675032206118496595889702366795980479800135109676663613877817964824619763927084404928314853769252446216779141958821460124173158104008370455770475998311900016181956340805833723972235153489096703294653222877918764647023445648633530920000740158342469350795752368999136196815772774930083318600294426826743960354320763024268907549768905766135448828690139891229023395605586746065733839655541554818661962153687441560734035928417781831003796060146981968157704766746602568427680969788241816769814504619155557977604441615043583433974026181350349436072341520944640609019888161101154871331146999000206890447320680199140103193233900868440737047899216212361660859864626299526757167954140472497666563698333893418128879488205711962438019462572153146449371952588944459743863162397140999733006154903139471124038325218343499752476284832139631303072195949616446642326742578283679284156039231178361514325652888656920390530626795856060773504586877688691841758108305087597349247021473018468788254404013513245046018973966689131281251129753255842235671469071101737071090514414187849096847299360372192936593128154399195929636004412617578318850300092342669924502732729793728549283185297328633271505215709315150392505326417237000359337917905923765797579239739133078909401580966094797366558565203438432158104550162182131084522669773876675509370243899033832680319110627152608671693258769965713366296588425252395818672371838214560702721753159780792360508576900088392744330685517874856242902955071453456307443520650540184080202528146688935211361222460559195263473203652036799660843171143795003236788509770992139203623503001315163362099897577710798606851063373381341521206506781084657195164862275446355540725225731434811025065146431878041551643660510742841351216774474399839039426977939035169481829229716730659444749199449320656710464548746396507175910186459886250834581242057321170704165153124743338360313232954519713658581203252517684717970314797986163459348001900753667532452751957399035605010253220522793863174312018618149267403267127405433685614020724364539615970348063422685062038403561792293857240589360825415108325644253585097881936374498412269197855570263068471808669890457597374910318840133867548210554729327429235608891056827666304772516915556030646233208587825117770364032844842967630665935558866712244282579523493811850693426046551991892417946088798863054361938550842645495358547079740887156686044889682125832837183719110251009415593553994345743869630767587158367217042069178270064426770200859227074597986864054060481545544934321149703417512246045987791719810950363528207423164006195721610544539008267582503393543188476918450282355945727236865246521575639814169488419074368950713295033690651291400522519136237072147819613994362324801133478239693326101722860068019123061237205270593724752341023326326795834841281735253009178764084015107347492698640155198685533626858406360723881824149377982951580723465661947528900793476800970245468157128287568894805193494428884839505606212759962044854955900194615512603703963702072639249390364637070647935286180398541992137956186607842781488332239606215832261242763860907773873442896379709665879591794330536931263672939435660141561901106727163045505896314257211309832233004681534125030142732532931864777560809835145213297661053994764944570796311434726475894447948736688166760048042654814972606821721494801864292921658905222724928422362121150661098235906555918424265237508656660188433393592961285223531598134704780811170478985764589944759869985433965355954781338519513304732212573682135386533275694061492949666516193502833148327547861194612048134292993784540681116636394915157173125829528492170722171228782546122943722680476030767352045348135264217719062759062040208534248968503815723673645646517338043326684450430383970816615999459556225322187753273419590689214663148649128229421385126483871999564735773298935366252605467060051845456036162217966874356876229103600162878787876015147836572044693660708938966071865554991873934881586655168530476829880251789373342208563778226425507664556703084987694443889498921915666004216289090725575037666560710747799337175163172247172324096109921065906723221673097211465214671178562707972834066348176488087075740850719958272784610877563204278730992256024306127183712262457665904676336393134662095937840158759072821317349371129822320142874195805055031257027652059837312964928220814846573652110846962420774946073801179363783062256347170671086799093666200866005524523511695310001608043914946954654884122690769908188842895754579558676463303968547051920100909844650555744819566513339568669892389016625273803997371099185156153630422612771292338271468300265679798071889529932537128821849481107325249230774394935695485855064802653359607381503907670663296435274627879827234329298747598499370053626407536531022558728157308873710194339507171283885713691998197350283769671068972533490133257402690814691323281811981432830758684429727945131278489562536496211922680364675753588539164443996265956926596752669971561061420263662492484742210665907956928681041792461175391553396197852385742479698077219111021862793566232266920741683828407505644625307146514566914108630977295593682113182985155211311156748681968957195731828371649289584043178962458488624044078314330457418602298595529958124277422142777600859695582952532374867451956075427327488562934047726492045782292996655847956712394258247591517347072705960108570857652935626083066308691185461311123462303074878279468959430594947552248453699747810556389718254017277919052030868146867905010969683540633174223813507015483172784546782429611564316233804427000461137788421382274710704178996026951953165731665807373276419464032591169219605596422376303396501352825079522792077326105977684122675901474460234342153227928656040218581384446491041838836644655380599652503008954299367312337880607999571186052902108466413227696012369710367108316991391847265687203982917867344443110205456403006518144334676353954321346125578366032489056247493581551567432635043307220573786542784456120039497665951108071274330204114670596050392624010682834815383972950770522377231243727230196428097578017837306418997664534997210146587491667756104232567022976004553336584491555242615471724234608618794670491630049137953509292684798363580370384282276218924622551538761370355553351451726216166230517950728807174549785614238361728488391174312339547080853556084322388131106761637981670881930425618416103604548342279453475275956399305380030164228594311002588784376639794307815462974272072151785954970876316134417707044734477805240031148714179520767250355015104458385669868942952836532655470569940689621262778161124952614824666378414212615572409061991082278596562737531670440078751620989362578310930286864223222169276542231533408481248412290287208097513245858047520565057037028282455194177070044321978447204362794039791053379949100334709882406657314164536975120747082024477751228221796484698936848779462688046663555384537704197641137934045990142714287704057894265248880383124438794094562444545526425196719235564555601746732028137455545230902969745477286001451362907056917131097709656474859207388818344437799310327788149319099636342051320228789212164894807187959385216226697732740276298630599418468724251234277958521133921316600662024114807746551009119711469692468607621247773347213562323581258101736769445374738039572979313151799645419694305399717530831546107705702990507904982380054589060025443523651825575600327903622468328873458523569829530728368348656932685480907899624597749357979347588869605083602294603387812000034038704449007501871873918732087833812460385563945469017063087778476209623609570606873766303649262098904535702497223357269579966087751002209014283406572745544251597941163567664729116440085698916196488175220243778517874383683229746663988254781232432317851024057683236994616933418826247062109807257484668118969264551953277776236721670490646441296116475286765801042081843676736304429461616656088002230161312312823933212298244190811665020723462166559324800551837873336381279775777191739216048243874508394702747832877406389710236036225273868992733657109375903175951697798978092603334498088998646513813652753509358298719405784331400279044578534334172595824959625167915442739828674323971359090560456366936941500908611595900654286069865235057381489363343292111371053169077046161327789446687817151069996513479691738192712679945152231771347346112822339884296908877843225031473868570777654168469517852041351165365298789468556324253671211245140623815273186437795465124327521714265802847270733813379060064400406946901866070480827206369735517022473708795379915260338878628698299995867601215021175447412551117440185252847129427139740049590446669138877218223244140897833083989833481932489408595701154683581973758849170723044093594655991909812165773941720365610507380919195582233177577632998973732339715388775146544314087107835653574828927750366207173272292457651443714994164433618172798684596808561289751925937679562348295775559063573166215511283687855991800677539028982246157879645720172228598869270786655491215154315590901808899758482507185681877064031186032464012847662909907975070829179928049174251365188595075450777599116323405191320880464687379851962910234837191300041558147121123127737885451320781961718991065331756144773332237800196296787008435615679542138028346422931885864814584311306908651069874263804109556924295606600278284821671605285290986389400591574920260138660603747823116000804208389894221166901235868677066391114034486880096756379494387954063876545124095256382025589559431201696014223065819941658900332616017354661667380706685736819735260111491933278175613048564606703304552114133262768579941352036291441693563905365982839804855510476970889993614721280637346815147632914216116208707737470509228839547884073839528985722809781085083432371356372901576318927842333646069484874961114236767970764065747027226014166171780560678259567154768532265161258553239883881447438907534087309037014083035511066439151894407648517592017852927763635447338836475265063365385275231503128938746317020722596017984067139502300442989339838889381065548682196353239976511233401537216837524426839358719681025982014332188080876316062377718368952942419273080318970266028078906886702172704275444335330023217341573928484295954939175495363704133547528783815902656113767241896834996743298073182911755714526432563763036241711200460039585174481816196303748744499511049345513052147240879506466428063694553373492260467562831294297449533189952899984325861097025454132140050633446726191354961146333484309321240620125303267773146817040838093759619751998655828235545597935512444533268036790193719564974686554296819004731158262629534939743062092500366157850650706965482132538678950736283217559008445132883920183714998533052653512595773342729539673774593595550191098491166713293804930737200645406496188874225980967891341619646399375820300341419528179390085792924724609461634605528811247500949479915267708928968203243815374517987466009088273313857524233734563242718810754375671176090950644572087168977990205886080643933413563392787465973133984061948595319579668600687184478937369344359156581826331445003064836076955954187691703955964921643497152278346759201559106025954929314187875832740114393674678150444461394099674891325825477713139518957233111322672128302635049459628748962701494467958754364258672222061190120914500756920219381530335567607822773670758817546053564194098132182972304701209327707342611756436964023163636959012422521039087865843902229310930413571702113380249715513194326070545013193408691791799239855459429241296450592024728470333441315786113419029856687733635141610926978250345697932868069063068426394491902454575200384617293113264732940442443545877600492199328324064412208557905095693307174744529730577266370942785222512723157103807099447694263811506160612833700278274656388671964794705603237747459134163758460161417707640699726936449971021012786998674416454156619944868396866958075666826219344592798968343664439524044254229248798500578762176223311438561835277068669480921041084678069269978590726035289029059528259439833407158361496990626958226187842228995806242411330087323319900523048308924876083528975046610667549312092708226888942053784207166214216872183436948055887974091380024488294144273771932988470151449151606460129114230719719747077893533063284336330085521831650350856029389605760425207232638668281854480999747186494251484126564479319289213125034064461545410066960372508610169226499734666396301872500099418426996452358152829388058929677493093981890443350855616859263034716022216504582537157204067099053589150361802473541183984015569588951986336838835728673800166573411796048373275134053593350797087105805178357547833212540653317615028904537007929947086067297390903952606496122738013715906510978611583569286888053184941811517582057671549537740739699915883779351425743760541552715778184028636812367618598775742497784791756811464342765437061369187035367731076314471042866877557297780894931508805746818886485079122160976413683650615301934498475781256334994128853299163735619991145188908221081075537143679289110293222161031093424386580213542947876967779825993025657911228382697238821478880157376568675610532079595665221185549940080573038478570458662335679547573712540902196937608693542632859343754787193884858453453038479975975876679458088416544685882032442827284925060581419512971853259257768607228021194612941520026485651838634232866685318972943516189609356543480513232594423284520266881667965229600164736270519695637994980098045001400209950000272396021671972970984876137576655330727883072023258964784212485927588324489643305856668471521280899181312876646581559289400277882816320374248654152972390357378772454921866513057109886396412281052626233348635864884248763702324096906997390553373172226460222632857952636260065518890862382293378961963827649300744810993154125607909863790548251108017614487315266470612957630586148187761581678539951312609235028388239715382741084669667775317542340138254001586728458084140847714886686397372721748975914927396829061782600469999878173661367552759755852579511196397716727974071469572470915950840256787687921238453524068161790694046087420790734595769219496781012379523358725597668020646642259963513029240970662736734344135356110740539309868832608224201945717446871343531895977693649326876281218395096108974904343107998258132452567843155182431136098578407943310782765734069577276126922048713385816960632195016836031683332504234458509093882312799098375073576767020446034482000724261222822247869929962847613585489458079194162750003685715587696197366937349327925876679954223965141717117843809668198815135904950748594615388236312755694917887919945404607596987701121074940466217862669713715570683347979108382041165956056729786728884467858898895329322475825823864266913172873754830655477388677792857311653237403803162312427709029377745807957359250290531168492643497907755536930885771025255911143006955886920350206080883235625993934413627981570827937527894447004894906780774343169908510353069840195564033652956925767493782466063713705835370488327786633182567729915535037081711604357785988142978182027334844219145717542013725135597535378257737530571378758222241378271565590050308884991068915784480678892798982154826667226925956494816020811757459598961817633852873133343186760443380908874287589319044691401754824538475679443538402762654363419955734757888560592785548788803068875515037566841084293800222060580677172438617069782011614040261609297986002569855713302655362219314605527241360626621616334471922383490703308470742185454606103260148118408176127260140163562430909993375362350010440212809165254074341232423288350035488390088193477392613811688590120473107496564954571241006612951260949415194543543830376582631024255913443740091691364216279759456136635256875959705823502406564890749011838164083383512542413231113618917700163697036610305384239654997979294116451846045604416187984249561151776369453607050406787586244567840643356205263846372898742105111326340441854519586579331166572796845214184714175222187257092430036653682847783986611941765516306358611553058978189535193705829945384435293427023546097539261476159698013238050220496337072625399156234229747791906164616576024973287146666716968765885197662788015888439125673040383729118141461068635834501277741152590575710006571015618940409551187449375500716649636534730926546120751344577542136304949328724014144178533791013238214276415709816018996896177206539470697186382995101034775460333823364546808005604562245879319285394030256403981169902811645289643369918525335289589568122489982211331015612128777651914139422321552534745234466046388548136684561744859670329303107773459323117435896947665211748231290707544418020019355994516844115424486141754803674344543591710553129124144227647181778633486048288939846347297853127864651734818258493705685004179937317646059972230258285254935354438492539748899260833553782109867054939088889014512675413526780109712112765410620481585408164929845063594126544256904994905910739329033688138762334006842031780079412638246305290435376142828124079347501722222513007135826640033548360986025354786749493400727710511947983909166552912498005081217178468483168349285156679362894015383564537412776161318390432414320452186534667918057035460591854424445806101828018501770102293596916073006444526487125430100814502452621173835772493855922290347438855093241423288413847948956679713890064904554656560727054899340754298513991618504191546451006426429872114147713227643821546834477936611133639602630280112676538117209665888772901272326843630055994189866921394984754494241890261933514440014018300918671705767234979109627560767607999826181060651025275053354993676348872063176624373999104292285155668331469223424799000497362847509018580448427327463424571348178419135116679302590112475671430178208687697348758060992992787464304703192464592444456380036109427410874568715185105719543308573322317010028241481487163647144797804762569794657307280507040504994424614150450855967782597923107921572456761194701542707650071152160017965789222556382945997002485768829503613360898262733982536593939726809702922957853938443692514291636849153617278459452120846159336251129386519319050752521607649203772275241706001565884585652274803381200801390075308290309634750175210422149782494585975409180557135675092445951998346442916743718811542833641427481762060827003856651872384946395421743357995939499465170861105090314797711633112536602872677158075278920490536170014042061155258812692028822595253373320884022165071739555735574721591030292978305830392249906847378736881979915374220041858188056700288736298139407505822211461051255975893342228394534867527636921053799835213436626889438251057374726467973491431815172506033891573465659081636386039609467375449669424987975264824770025079241054012807723802455783346945334899707825755422239757383850096513074789083578293116608238455186303306530528834229818315387094376142835101448538711015346842392838602885240627767167267960367403025806357044181840800989490425287079738751574123585851240330088797086361172281973748035631044324886129200067302420549068740140245431020383838789942433382150560762271109116007251217877322232922406499130515000141073402194530852231967280612705180664242184045545155203938128898301984762686044938617711534594374937812875888149562790118212618646650332975516388578500760614020775828053744175321979965959530194492264149430191419615022851781394129602999692077674701230617120827741969564876664858958756809063654819258836052103727704660871288938113084110540282172750971342441278910518943440238483776912221328590474601533877684000982731308532350226694421553882968763104097053701430616300143809969633229186669169849837996184669314121356273623630984654443531529414698229070106979946574139177551235853737625598563881766423288114285772989304951929598021986222097857132427885789639386348291788632283850976750671341628416541054035041199833158280838473945839729800401213006249876626890947544430757035759025079369459934362474798475885254115593171997818052622434543114225145263731490765880014417708948084951621961674492494270147292528496972853850801250559550099489625840325898167562657816244969129211844568292000537329933601272278264000655537763810761365096908923380872601389500851586792355805899879356742373495349876810804262670467740998399990807779845707265184591873832825545455182253341244159557755815085051058406758624590406835651646903346390781945221798785714554130386368239701860730041099146886012539827027199967523614087774570366268870298178085258109124484844088062384119931338285519440136799676538941420059485827482839168530785512242196358998340098960369455035058289698179911149644919829737561837307988941215653222775901781717541015075447067379969221075793662375200925014964619899253841796884689089326964592826307467832975977411719661374937030237351303366499175867565787101667499520421427531572505739572618003225273351916425275996730292944140460043964050485494718596166470217149071638504051704866768455281935862615264151980186954841163741505566255039450643634662610185488055837213521618699214309574186740192574831705765985437117439130997142421621600105387986481561272093815359855068556044070057890531080556921623302643691911933834129578228873169987081798257725064217432524221768693794821416800922885020501676033967030201402744399363237668045710410096465347584591186553698974649831261932677677466319879242251068155411597552051266922145688880993528288972376051943724543739784211301286301607633346537377041093592044174424273104711276675214205209496468569625128275487165056907417477177985905421020854431155034569273455849458177098764934340283254488643757401324865397861672406131994540547602363069206713876626392393541936644261599218465477599315861448243773554944155851153333063713125077333632484807158684800100904141605759775258690646645664490377108410821895893808823910330502270690916969474942688716117110149276311383650766122972622156462243855336973296661104687492641324322330082955270421634349014688234703514590566220282193273823044544924580105636162045225184242097544972437368488581192716800176082098720715155471343087475402243256436036591609973115417931050766351631704882546973702985322025050664697159638039063326286917586511206507757221838936227229396469843650632436780088252118056328196139246436688754639363518209470522897848970944418641393480735194181777412353311129481153347270400969856637796120079083891196362268255037158413975538500107397542596280544825758747292246664589573994959338343521729945196173566869628410201142457689105546740862164153308498936042485327305043699016359838759694588953980674914465939695678021414831180151118076663740007373349980399796150094506073526507278427279135423774250519309106770196506769872264274509117212247310326855396965630897726261183797726527965846825878290047254549096203435543753462977822175711168445154189944328835392173687551397501219907010953617589885423396882578084258315181416808221339107609257870546670348467156565100887791757411684486660731569183719877909220981284655336468949013632160462195591782630453624304378659908428946620851858178552226103229337061164900044016039571957510410958975919865910436134694459997359905171854012433161486569501627308550787154396961019143380909318374123560746441094893652356690638245675022686212217584990939821433363408991858710614045235904912158345183163237817487941727033366524754085573324001675342796949420142110973527955717933644835278941881155687269979110336260468195883753813907685398253249355793295907219473273939083748514071181542095234191435831857288652303290380004892920125681412873362560910065402678411431076747587931883301096752620361206237565260633142399127893002291446579944083648779441515758150544169847239504950384238181469733360774649461938352636379625802877950069423606305151823435209144518331104968315890935774921085617324846795717934550724483417369055180349557157778807235408448622185921051446439889729120206499152573640718299178390853787067950806116027709067161508666932464931954382926133224631997848017549751568742054016586997128910206913665580676414155867526387487426886676390624270508215843457381001363591520517763305056935661972043861603139067403750346864557106527468532322981969648078769988756051477251538973390613821933204431494951351927463089480049182907459515064144446485293118526703873268914099285554351751760943213686003698261564537800984336690102398139415866148290654489032678442939259792578945806579952065180560219965026236688966678703409582206424279783099431706570548351578533866186046785720334042046434777834251615831959450818867893318974988277612364624358463300150509382511391769802200410226885158294721602090586547306523919785443411267324796935167254452068505745484064525945750716253793489636682786280269038780843335791583415905278658829265179398850896976099042253329263698401143285132953940247967898061818091476711233351215879029351546631807510486047512991893697694682495809104800490390661063467049495425089180647935787527264025004559851952684973320780030503815568023063832568568371130457152627091455548623395406410167289845956761406792326586881730559701553242664385903821591798273677175212700101921405886957884543964120174870781486642731343003968759135925296332586901025227964593672429090608946154224144835844417468987231378632800888855795372657465955283067894347591830756623200661654741153333672182402600196205844976178181462119154174712374526214645241262958091524888736697164057943825423143491518887726885696229457283222991532407695741904472649660082315649032552852634761576091683478813206919869945721363622723745633699812781380379937766567601905405553903295484299959892387412988305381562771445219454760501760766239723217044288029091097568197805068476873696905318299366276426313478956500311759919057086701200554696246434207854097977472784301332890243909299726002499388598309348745579986052675859045082626919167784180400116302872966275760403873811133415915260042573741164633867833150042402296827493980373530159579822911736188153335789704808606977871411084217116953330208342432579113487129660592727969519892831109903128835616207282316678926802116595462347964140701270468039178911850720630514411598020612392910636334632532963210289354695298457257685017761330051972380708167495769994833212527380952960132825733865393061938060555176705375999039572774776250769683482072511433561085327051259218562676372908595117713053984716171511684354947739092335393167879074997694794346486991525901069600077497644575063694429279553590532965907325472451450033164079105284806471497722732450371494768709069748806315880006822244889453698841306210825291545027647483724624143871577041658356698392435892644936328621420747798279294415253010731058577749716348734211541841535163354660851970203267443628007122660308391430793485861683125803863314928420232688183185506306772300341664994699492691997340133069903498641184688465625660161993503037040680531039324891606198293220240902321167295499165305208229681676439186948377304170435866507679134654949261342484559737756188404228559963998590014389478500181286025545579979596598847333738627132806040544530280523444479765375224289410871238143177136819813305319021483327062612240467249171539740113579324981712801975267362889035220378599131681652424019613697603287945676769380136212388527394524765866484663872857424715197167914405528087024257606622564965016758815510947826770078208285714280959943604776113217708074076628536608769585380606153542131077063494485061546137068094919663992602091297811419409176421843974088182509817131068717686333553238435788772916785813448065420037847140688406830103234733042242535831065973963252574373418872553442004650303304940778610002144843334218108201998027079880658450724414719034353654213747694798491529374290990365358654052499566378402176008294194912150027320033845672233113962232366323532873492185421043112995819792951560012913141684013604318371012375687444171081940112887804590952723358317251091439183008996293252072076821412601308934738524978918678423373229710916355480605526565150427773639421515733471900914270621771710219130605988239165994293937544087373623700886060663153012254672935824970342242820481122965438355246122402645148654128004156597482806177196333834015719699888978064721899112646553159246368045627129995736151512649215110664136110124400268728145884024695218246197812185564374151365319595176293612043562296131366388341573459858599829773718969745414907924922249330957364534936737203376954221018390742561883850214210394799026766629167959328776168025004247804140504455633823623851324886132824173231158347439314615135247599681551953784963972679909923953131522103039929811787392817584027264971257100398290118190239981096413461211272625639130948170337914607530533519731566478680682789013932733363668630935069836067832921478846429358102746548302053575256666539527080410635330967672125009609758327697692062976170424611555204718690583498679688152385545403352327131727458194097897427475265851794214708109532390617995064470979309704540386679036889867391628628488539221443691946477265354593010402010784800164130788245847920654880948457671525178021911968595124573514939300384648116506115006539220055844384590357707182459159577036229161909479307273217088265237441708389155744621100622225722046534309799612151219573417945696718603385146565532265682047855775901459099140058852551912331064613644367871362626407039649893067378293276581129033375107220859862030671461577121353154805088504205480403725959013274743575476231793762764853213835953805255187054603158656260851026442306251660381320112156365269831422532371229771318119907093972119751595296998907456139455406749548255613577729370350094540420571338839002462666077854710840770598294126147196724632139086576572012374936522366982918161751950542697011096888765893857603807068896181279587827125244316488792625433790501719015088235702723937239908001280462556295775772161318591409002827229501758049983268003866470613330954731548611329062821398542738300346911791605099475426026850406890305175571612794795203585584657967325755857554126172115361230069340902537728067664484835009147838253491163533936308177713274963365215068922672709946701968956534326263226569214592871972737091131201279084260661372436367422810228547468428417938410812472017925696680565634060368030862906061385220324161722023048116731402198533375356220575615699044999024324741605974962344915679055202019658095244175198179078097611955054664985904793423444677623371381157361585560603573234491987468960605886347651737946136415946404059215708777422306439543818232792153629095386665848638327770047213470472985685897888658680452159106219657419263821049763649719482634961774808879635809970911083050654175800770982085649610962150178001886550572370747546332476945751830539134729896538391981556415349105769489111882398796518598531944855754742637882464153495298727950585053515818562288234444714117503471248936182861836553026036908536291209622689657211762482059930077610365778973168243642758827285167784169048392405823500628647798840113423918274699007090355498084030846655398855697161920398035768179507245431770645581050883263125337041511172558047323308094797818150053323540004611743991721143769193571893949802209960958964408174182112854144331170409061562821320343047296816559963096800460004528210576341091331222585513220768139579393469585230435389325330930995253942830089729500391023003169555994161979286459969969911642967833215910235735436463905070975471112984516067991692606546252118630074315723404714281828873673470814625532772354319737955683219566005076257663986402084360140561898968011582138239900633588348425534421126028884225250185339134852971122907923764134313732715057332217329791531680390935570013245796270263883209555814591492505476805594652562065492329932146661138398374022183913299582858916523775961498238168623915680136810823760829183013600869433589018902501143157983669512910175184345048927445662773726183402042765288112465668391581100320326248219326756353797720772424846566114225670589737006996535622904012956751001434412382080080334656315840643907267517588519166927672047239875500134679248082804225574537798651555533746245008681246287341816450550742584903881360987210322626039834880275528332367638285663287299369177603535677642890838598514350209963425883255012740306794905512544078995881356942436733755163303061482128042014311362014734679393575807260777139268963424367695784768297164517791710302033552131466191425614666452677079568873615182081159531167529769147158425552585224409933480200286632307505194585839587355242267023385209075953409690782881880999149780520738929656116215584030673075835016662759348650209110569173317938169550827705733662725632414511419962404238486095758129032160485475664831274597896519366818103889997608842227211315447993348961155468635021151749211058409617524386941444938162380813526183948646783203566360545478411092396272625490681401177515870789331356102882312805586484311748214149338342405586993788919556442066626222125720086470781321479939701206757040074759629143238907049699371677776547403803691648493647799671382892639996331730046760545955295805487723049060154942853034421400921248036913142161121343850493957318369332504088873943962455846142657747526591200798122522594628388991868738797678999991001169911076948595391375145419577466144888071141911262844877832881618108529463039316189927374746538910418126924574732933940481419469033038342058619765559387972467148129250921913814055169413232382494949402124026489070733123347218129366025709202562793336557765098843589191151099046225330990416364909827520849146306947044372487802549991010160042892729989537883348857177087619765335650279967733428978047538345754244268584863767141002502763312520479568817756339344882145222208004034983895076632052741171498904837140157936799659058583049421942373341231659981109949280822823057102790374474373358503240624232043194535787234464539460364365031031058555322505417749648362022002783708604734890610000887007050422692964867693247465657454756376971931703365715984540376533433872897908680068516716042074902527156696187096706717589305908227808001497658111301087306241962611203717798731760484728022526163257802621249005991718394227131546886743258932546204122339262503790010586710314128525049627360895275007624729971659653415897187221964871796421524071964310125162670147987128052058242856008085911841147934567758746297981816766666744754330280127789621246163295492250784913004837069738564482980559898733697155051698602937041625692791451274911713324945073676966703437521892045256591001549741464550519228762787000684309614894122423293647069508004841762866398619088994802774819631012479061038432148679561561364116870818152098620711738245532211292320788879650429782095028799212290119612353368528813605821024171338710144990080335347770532955057245975326086039670916280802705676624237802867797583646197821688695649798378085255972175799778185263416065730305642094050252932142946698900459919367555675512225305890582374179220516913896344060343445852739720583050457498416414433148620793143758420603056082610025599689410723051279979669485270336324763354000782470646966917504263022386561344397814371071627117958386372447168037484237212992555743294099991206458417805335365192104049367502054183580466481928456311409239380225643729031941338208910342575726144624094354946377784571039723213295601159497330105520357785239275138550848933565267733363616899278735231649981318905980173702586461678728080042585601025193156527521376593656443132509869966548851847940275707794537748731388846203373487551403842671273064340982737688233895472103915726968029407886198810540548556782702363282669153365843449512141541923976241210180349469671530668762828145117836934132118030721958516261801059291734082336701392307618461226762468389635884914890972628681292232342332770622851738370670804136627048062397437945240154513397361097698989057974254198505970726401991494003777290901496565830869600175680174372921959799308120445351923469788721372573535118684114400818359822997977817443151306856040286552412647805514437492835557628992733515523655569340020562362459938370945388536751914018375230955041768826742392851099800608618424269722726272481317301848171402556066492230680099042294216565053684164211757770486711328366356850750568828975445013595021342651069962252418269175225151330314626562356450838520879752186392974092679635131093621113974579605516384098413341663599655829492043825163585870667506546751573033872490596015000573733357445331816956885777051570817878609749141059680084658165381659129188711356006040686151309963341992032945307229552056426209652237789790174354945014874086748931573043167725429681625701829291643176396928072275810746665420295732966571256380546041473368024270769080360112050812414082132216046132633333824522294878681197616690443832744270494970717238189493934828863549330298933018666716609015038137780487165425804121058103571808998480780225338935773819990997598154516360469108002778867790013749879295393669376584543030996311371898489844292671726025706632338937140954569794983562465748042058926745541693296882427021471134881504073002654124918751229604355388159431755302043832183419141565077629857876401612589492310401768290183540913762544529784538067166132602297356963622758692648257960766393408870923185246382073519671824323501937429055517644915843869377868015359426510229096867360748617308684799081920856634684445788167304289135652818802342190262630331616529527977939730379520743676313400293708616431766618385386264583979281559742462727263241949877822508232201611594907895290394119769022983276926552684421016695975818479710257570498547115976529078251563155807805547266562042150575218949816397614058627021878220790371106542741273612350750922009289856121325794903053438668331976035341067389175940470526607674527864733400587221361581234594432537847240050989595350024790401523203959131087651148487908901300684742197995865624236694154800918675597535550452093574318171781175733519205962802393367689140901946515011829909635622333277852106742824258243547096473751738212267112839139722116170666058924343754764727122150889902374926836150067006189261504346981363231564062447766137573547152881035702333808389437948550300557719137718197875446663891054133169192362313017333769927746463490470027251508552602748356586079119875439304321351977499153997975113466999632459752728650414366334782874020279951412428728244066987351963967865030017714158301106803621879435986457101456749941212766828634801405509105820741666955976997262378019862860325521231580582334964395955975903146094667982291984833151243370932270160403700709952101769667916474287775749291591741635160247504730254275074910490673152137336190990315121806282090625955838748995976980652981016137547026641552044348748478695478933576491912658852521905556728012104659410972150158118439714986012445070556449611690141605013704723827399047047976380832788618002908964477321264282234865915051973905080869470367108945590146910296318702551935989352376215484127923987465651008143035581398947712524497135336637920468659722862000879528878231029554089885127419231784329688932011372280595920739235003963148482982583971328742234242596793495515252158971737753621425921552326731867278551460574167349462007005968382441776060861297751012798885678400165809057671875965321786943934506258055790590050610748612495587165138100227314769514009222106126063210305892678950708480784383745415360513789946722262349724597815563422775746492741429253693005351262985919850652875030687520609419385744494866991703548362307865111968037256638038461100363588123514349748358028753865572579433560825440290819016070685474993112472188111871792854446036100159116261415920070362223844584062890418443202207479601907615628802786448988046059504382102132941085662124633981393924362104301243416982904596777084078551741771896875356785802178809126345046782094718181820163175284910542291234257169152510407106288189815452302033688468526062505590364970819711577712444285433495403034446445544021283402367383134922411939451874961689932319488035194079230298197024652536283732825660045152482867661429620331935400515131888580090979653407710188456788116016446793012407871758254502370630042258290488599617557667053506081554282435659481222561360934188688298074619298106305274201103640083032965229557090399424801449660330841335536849631551271190594612096380924102309945494825207900946490941290572724254852308897957649549450708006617752070290860880508119394176331370474388424370671107294838384737182737537878650385506519455013118156594289220043334580566967180280042597637403732001682322646226014181423588691624326703457435486658835699832581796616709702605980044025184713481748606802825960246916089671728228039053109463060963769490690662344103530017750166994499916932468478812544145467261461637629842321040698426123453665620510008128086308125312536913161054109354503458137043203571894131402737511133061365592596483293403990375939790569837088106034910652879482806717887291561833607555150976561431509123473005766978891455442312239240013570120762724387791164024687032935700460250431490901573296263114862058342831353104824179684213933703483400537416002412547455660463770870055041516695229607054705272443979637493392630112272264032551057768793109428559156366667919903001264361204348297205008879905683173745784394633204171778220963830999552137917347691687991951679960711549239891875022339785078764422735703046555011115907857098309113886188001282374323453360249896474741077159207968991481582115973288231736871727702501381228063579253497983135806903899403227320297327053296364593104544875886366471400033621409743793112506013089678157608615126766986472123299936190474052469480172262125082026394805380532278559993390999890267285968426433922514525381821554394160625685019172042218384851281174979465931993265075541331693942129557429599803375106727302419185314912753792439269161737658386256124028220770461580455968850223910095064655467069093660439024569202807523231049982912369054166003541049936371057049835169455736208967838424132126360132509647274300650326623973349091198186934154683726929557186319584015474147979863522844706431559358675232720068330510929455326653319860045365380218034536586661026690608176578820713855996927920063712740939169603349515239997898772997005754685883623558075492225425534003262487638562882561595520081432587908806665714767487970225494380351551751099596711690316979877479242368381029292508339603518505928661966494550743634522321227084532264024589242189855863382239264924266897175380071877620053886234163799137363773470544041065092242587235481801765133771417190260448221292219961260307670734063498101955163280757285954816940322454612842710233451188883990469869867620412812825159123760091630315337750494507515741245846537680136123011795624795866000804284896023496828347631785847791303931647681664291927260113752337792311000059740292553882759297153760437062553604096782941701128007774535426986227507937581234288711500193879084226288323593008540302495819727257915296094543903211398859582040878512317324321052885800654089495301979982056917084692621661655232555347640805105839686651003815507399106007056463649243717134893619011134012456903792178971620785225845531934995313469886401467403212664318597451573903034899863268205784977245755340260185376098764306572537744184358245604231003002407094963602590588493000975615486413916383659897600948952223241697228339763725051460543090221201527896151319597937870728391917106291967720323478390029228634256412734820955158197216909009447586200855319107734893802723655940277226666616382172819644059707580314711974307789021439863226025948012857449649334449816998317152653682208516780918452154981786119065860672984111678352219351700582614049434585255797324203711289941486980900408970970232487371887917305441659574632581921250883174436414095181277594928277736876780785819591535688566598128360843466823296583273075894412871870199142970963708635680965493177631247499560250494620203310560782241720275410010162556858046979434838003416621587811631382205732175607234982364316017940172920372738338643536286242398063145521502687373893562004869466012673663303585666217643476863676912393285740810717238202652646448174521157233771696572068283542067151733475176399901914453406717672820481109156906300553935426751280987925132159728583934242928830038250108034994008278587067463492040146136432371820278363189955454819785024313532420889921965503015609314871509637917976102923401343172805182421172498165636960666348499138304276740965327640323960014109840907845708390814320302827557959761580764924235111588865293337251811190705390272738235151695184951732167097764743183490138274805359609826156462279517767754221704418484859050130702846999853709518499881174990193508741911108732372573244468307483189244686694962808764387894144029714719258140053697692438918464895283565999940607772671216691799562540790745488674946460330534885052538524651025898588277464419719328908525245119508926385730505374773770269009037997407694352161666622928761016710034838622285385030733994673982200949648483492410181159898666060237731246872300603654439821286483390909103471164188835809837818661901176434281243211519436224557001189692374367413588439607324767597417552353385719972449831552135234529144010588721184810808156633063132505660919008307274494153695193282199727166651370317524874737687369653605820884994277882658908875495903297309107050975133365193754633197209393189359336318427471498046822898379583189203819796250182586052649065168451472522584638553544865908713315617308910395702352164980705149273165880788754955924650719245509050330319347882154470725346616588644060167963564703450859267690745575336742252384556119466137708341085996831485881111553187222618501391124809894426774022566198075529275836118307587194394511134302843529748201332323178554974139064796669137992725800967351357611767514918057494182552393465228349593070555925255660594629079852552320523989980124916650108713934648172721936066706366583882364750950630498559829695864508163584945434045387602514982110076999924777217896572715128365417369947400776552912749766096896579387515876012398480028856145547079488699749168412513247717713175480496242823610628711157498736891084665260328920760294847558596899566285719010787900567603886591638050001821523869309946058960377551869885240306466130355048731364147558134906761419911330128162168698525413003980332158877903368456550125934430078870720927291857976112711571308400071714687005620508982826750697735536543031887220787214880087681051539749548574326992407712220934963639397767990336318943651109188887474672886247969850764288668230857746066065659777618869488903831422047790648145227939974224273476863575048749071480289748699836094002566556080549832563106168670512168276086370172395047963518409937606832180076901429882476534500451394438800038797603983504788144818802827703805209426684336141359657393327366431275573395620817908778367121097601093086487477416443657221366473310080133518572164486437146903458935023097757719612369356160601605189945762597058250264508233843033594212540655337846884711623833361372959045619338216629366600041242216063820786092421467943944876689840419279138860428512101642107226729236303169491025349321517813586753359981847934482888851966420949149213680656951637714897671663696528872683719945955227536908305112569811293741417411536817578225549815390492279739036430008257690962644582135770730490730090464174279050076298948219808727039045166351403992183650017323892771781870518144451890107614756937027127677215032161110195758019265168593224761274797239488810259773947110882588611786323567906543283749472122044995805816316167743162256043447093772938653310049709871937566089316146804884983100833146274843292925968620126164181972960481214635826854866556185542813317411923844831158206573469431770070069626377389037503527364855884404476870860971518010504057591929731150016632082514146981044883047873533424515771001669446092635273658342709916915878317032685777121858719759184651473433260383717445939891797274778882235357243942389657642706434867017409653658118871833546912029189187256540210244711840100028882401578020841969712875089576362882058777996059188707960553853654872364320579476576283863960419012533314546158858053065237350193847925339561358796565560015100743462875746782016517912879993947163542237348107162915358507306651907027580499079174729686631247126164353192923365576706787102739724981166037349113797774354773905402624393868603441862584802748272339334729006970570533714152344121759567826373792013958593737315808687802801444446789838458501099699863794946998144573233444377876043849035643760790135841864120541843138860676855269963757876612157822628072359547837356818409401883299270569354568268571144785886379843523652400388492818535803428842389284522970209927870035135652322773204927454426002488465165931131904775084818187288136896180359158919928202415476049789758699450101142492247147073316237970478949197272668595632646594642738223290622346855169209612252001808013956349376055640157530667054661227183585494768618992286783220925362455601874967338550952853213817148370406509199879992077919844783362476762759128851657023578021142957191917863248733351868113638846429969653356536204111952694849887914050075448704906604433779183173600537844178954894037495275192155858886424985592606833738559299026549795001848436519998119869915513326504411959626853369748965801103986225482801807684108167837967756930532565983156218899445363579191562442335031985462456363875244151536095889578523703742060365443390775653346356394821398093872503649992467282385352513135331184903521049016936456930589069772178521536852795561141026434469367945585564927125233639856272482378023042140346860342240437098038381547830849398207578930511291168474524304158744128977689049284351723514017844261177525179564542563329174077975571640700131084932677475840133154548636513579941611541122159825656692993936169334207173796262081264888365420811935599626972270080544781356925414930345482442657047581054113933904606964416036586243336773854653870488976641495301956592150652963305243388182195543812889365182912311018796221822861737858003188167681343919563624766088110911270045861358482031094568486241951355658704072209515673901920603295357555195851313576935903226793816452981120971379703677306117579399217408203109701921451485386725808160279332263607948146451145976441429727445092642218365875656291757982059101285265974644105539716382701464860536350221327781953734610784032046465499599479581132617697212510874894989650764303588978287750692477155128717801805390495929263836338159989939387964734971938839043566905286388495644219601237186317581537515434247941169923761528955745028432764856058544696576597794000574582604276770012393450555333350393795871810633581826866205457128175962321560378649914038609264286886328895724997669118073450955444974489250287991338421211874643920937403056652326034685993114338383831217025691845671642215623988016959693882032570124521283441298287885059004479570744362092600536483610023954375068075165312605115885006669197578203035396250535014970533929187168016868036449521038528835179798425198189963389455062517668734185182399529284719994532535395883314078549573051322699450044267587498705395117138035671979599221138611975578275762633044567246489843812001120572282393820509989889636529751829693528186810446647527672323445799045244367559793008852265331038924616863870327710468312482048354144783999269252051225005217875465319743304931164109439573144301580689276056776774363131399171229157718211942730900798146178468142694950547413954669921910315210119706257017835298531401958516686089023801302965065185300157619309768911412461460769054258456461416160365408417595769069651458140318025241026967291384455911540006299695693075525083922736214955659833477054176086939190815242234330397838394371191316458397901036424726672042533381778412289062349533508043354981016808641760848054460176096449825340302909437977022936701495799804936533228010403341778947143394941319785911521438501840823936987329372998156580839999209969301588507817678689377000354076336169794205404946213591997905577754871491684646995063849900319803124769450200118459037034217140490373106376174889216741783292309139013202436451366513247920597141723212323868237688654490709180949094587927273979317852671716354002497031515004592347121312877923584637649063704087302684713785530341326460850408527873601792444115388663625076243424775563703166852778435017322753129487956048069977813595009623997412390621338439393936822702856849220645332131573607024194685910823762667762513886070217914625088716098284146526329522845738802137387667526572599575168526841617179717747008859687011473757862850948027056730877663744413019744090167302179769245541956375651339378974977378477962956226001463561112296388034087704087996563021539851996577919766921928736321403319482513873438854070613881681510681542721288641058464951921229084245694688013036201953415577016855878450139316159326901763433256298546601855798065344666918327304057079500115692642793016326095589370777711523212964041768116247825348449475495620028690603006202800464423812891622706291540141788018411610636963405464003070050237843669403801503365247280057038875714348075712140191662141550113833897900596116680555148233990396858477534227492400004404376667966521708187567073554170675633512150486236173340931853364075050407357977209855522546875803055850751167427032150946078329012733684754518441731764197565485329302672713495570169639440714999390792404068271490039108538914043520413304672065049055187477587254157956321695047530812596153321308658265882077764228887362015936241644219693230046417299155840742882780046875627271434389527694973716250538474883392973059646533748884792326232950176797435580633011980589934437922696923762532088136797850110024663750791095860162645908072898024816433363365085663068095525027412072427401795476142371674806994782135224894528453992096816051959458210308383594941299501825997260535433170824438771071304280669191800387741255850873008666839418154943303060892449771284144269945252250573638255010408481292853294118547789523423963814748561398733730090752792039089829023039584763325189699886523968416836539777057821651352406646585137612529410961566651686596174822116531526017133916742569285902732797726605558967367983757313521508524994579728869858038582594752843073988046324199359517674735916559908076115068868941995463615161935713350659681092593040285353837141335102019398506538320334568241404514773937343307626354407008367824205273517485490567185407967381929300318023625455136323045672611518637798957840780823370761996988880428764114642307084408486070715159690244521130889664568565623737353275607429712683269367515110882055035803371782496931059704611344902971476424120621317078083467383497820244643495886254461524879148355978998231565043307780790890328429647202284756477956890306760549397294981966740275049360091351295061653000555601908626354433845505893978021858675672981028962173310952703466722111553271949522013138539264637417728487703419396470140596112712881848479229281503414657192789432228611958850938845939804742622396003394801255303845091600143989467280753044912377853793912047355028044173300081236846851493697683226208028359644027110203856376258182367907878757068645651026895519213960004879771949975256206634637384080963624693117725483713719142270986272387056851381325039412314770292093616888140637731335129562611529329382553136270147729362276245707690418034738829489319137506692245746625519398579566638837654687892558576804051196215850839028254767526706847846568447679639816514444011344122645942363304798448878769158151908571497763720040425593005636717576946008040957882176438834666807901292212554535236375520914722238036138301499342004982242899652150133502338646427424432128725244467383632819103477056995751426799281927881534209669908012410892650541104004842775911269537768496449447282309604347950639501769770370202286391128978842293054637173682322175819973284565726081385463311003016035807401001069823796320404551116592258777470519705078029348191706433464032362579645123757834651930114428050380417608912460279191946748455917986463402017568727007317841396193275643524636670313730559913627711653812148537959049991654682363853388000605120347521864790143187071894840582107013652172822330390714528521450974756451980066525494916112532740750421441969915909369272061892291844188044416483177754445409747820595507826873040840961633784984220538314514575838173262656766070610532892386631380765971204794626547931866433110842799233662226833323434059780633689563275045436722464785776295049654824853576129259401838465885832953051029407195844517689594828587821360730344426209859100655973401213702207877781101778577425097203077910899456087664139535215838406172465981682395800625941933942255078189616448871948976136300550117265572931383908147827414934865165390932102891886606536758330076349356300506028064304467980474472027574372244713679226662732017283836933628243690560984883835988438613821395446175615216811689529062194614599164735639283450601266541396762789813742879474865922306554036738434696892562068217517461272160841997189098716371248050478895990936325795788695375823421141636350987208603152900050017484775417512476089037908903811638412079292272837296590435230742432164911849658418429336929196866397658169940924065840166398708563762326759029384055852967451299350224022079989194630893473529581229435663703952428127133988026352056462598755442701983554522130037222225126891261819189582580533707675749379935584372824776487629744985533527347736741773965285072239107156404271662223095163990847502084724665313306495936084564444148052543662742065584849291762481691802438497840589803015118153011060528187503276819028820815007536542445374819039168454076616123374919684350337238681966897607857664616396197268032837215370745671019861330560537228833954512694468665186731357174565855108383478826548127939465275867210022160812291482250849875357678516133962413923696870078323799206626455643732419686370053961511355721215745415731598180857686985974944632290929420446105937727470051435308462924226640061236964698756320414296620214656731455990934208669813111943566741906146323750732647201063794062240119069383866713651577555390947654118070557407832895200745510145224120697834606224050793349582461338420087406670434498421308974173054370661583492547439025302846553944338417544072702256513579796869985403474520773902872066360193146403330089295832311069451062066811532594535087751990420284467717500148039470260991883193785083617518874889001965140926047471045455018579749183864738703529395526114846836681461005814968053622495262557044518432297017748182203499053066423276611886676296686351062526212491916518498446893300034805085260339541440930920640141185001879740355761354009141373348656226072103704666595646125004151993683668458082738520034014986803587184230885030750542748687869155316278732178248340668778850676283799902253780289209569801851974719909408510595438515033949485238311788854143148065778185189378857087553379826985251542076829805118657631550916832302712025123254271756592087093455026093959228365875214995035623646065394534098657918343413711635832851054106290110999873916361673750541298372897287342267065148930668679509450623019370897691533098814197412024432977855041479567529581807641777301784151505779075733759950236655224636441420687916351266589324380207210261097379792409716345608514945761899841300131996865166852082068064585721488475779547072837303666163700943444934657578432153962308487457740171687918828293334337470009006639491654172141936041280907371430392054839028845963068313562328856643739186321479832633842633875820518745721561069387308681526371132710826019057721845621937551923113400548984307808506291195581186722940919967652284085916540110646352272860699774456824085478108447602976394649198245366941184732775034422555844091860011802461347215575622776516350418548498139535159931299314890355874583839172836916657745959446062168101526341055009709943488240020638700634334138839016257107854200772038217649843320240188216058238972132650740641931967728650179491720984500320352124209337681299646411898334982919498028863623810263485254266333759296019637576328638263242700692556912043003290345216574815383967659623974365776396448412534489102949923429170757393042661382016810078820609597778518292560441613757389019282291473285961232581192553999269842944951024775106445028134540277545870780837289771934876442559788098539065116125987565111431899677082740537415572217100076124654584568274166710349243979356562540054346593520996508568102243551721512739915436227641357227497754562268135392196632459974810168278172741767865520425162295495983860739250531608894038691214194296820728242651453972671684160639493602718726857031684456171477312360509434487901357561028240407980850560985468763416276841206372748836536651002159261387971019001212051140587950084843545995000621222029638602283243329611885517521837069349323584455613460631464992037822311569852110771147422993420856294509517755626232819630772768785980339969460421057701424328655986648805103150056534737306712498117183766165698110716137018371424993225305704532215271788054787183395915889466483691983369158450117301551986711546981379174746655306734954685947359561804860151062744065710907828635752675305634748124111110152414881979634170544826855576836386466582257485072662813889320487797780097467637629475235086217096913687895864653690180682272916571359757210930251032889782314128175783165852963450167714196283985753234285667866392964195899763497251321144857851877162121736694383139650896378189878795976502627466437317646870966729760161749100388671912347378415676668922332350138188066667383223105994789175318020208359756716871581057781152939876524457565558149392013408511970162294234104473081779400839667560803888092221752885311187013403255258197080376822249489320231759737167994091555839085904290740619340856962600850246224922217731852791061938674653305371547213244378959866247264879268690082984763069161888446524552347235670934159050684240202895415244473273962091869074026958158533928142732378369897093867654529558568241735782064557624946129713091059384551349630750254092038388294493572853062622793170512887431180623627121959782727690941981553030261625037082795649571513741007476101629904295118564477862045906999113748973552557115927967284578142710925465556204947335668947867202708613264011662687375897229868736617932877116731621082904504477612153377910383952883305046946699219377508417887220566997043914252186551714279608182079548729865662474673371783896376710873943198703843124445673254030969967838786372118883960520870793087593859282258675814924105042176476505539938179595193324850248898347996162683142981518987714976996949347115421221989086348973498485072702989718835227786479508886546996584023884251019270979115311511988511658670830004287951309184177080252834294491700896611164551619311548058309816179527935089662788424295877077253834749200517992163930308727989158295976578158517002062908683861670490017986933793483632101807946822956148430513186923053447004067978127059809267574707105140497959200856509554062921111892795114621152986873041168292201817704928060632136113220487767897496868765441046388930640372427121030734853681195907295283752718862825308678851796435748920934584190351989986599170025405398683329265610041715905254824630489821706946378218647042716649027096554766403362320449712305118734162387446183172731604157002736230721938623821486411001868380496853085464687265064657767348100070835292380615357588980933831230463346938442077740281454252702631854392013213509852151685115408398556379421120901797899390969391435641373116812145464278160625600016112752688896249958318879975975606507470669645516057993474481336158361334511727244097156342150682532220870855927826487317972188319686516435667670734219375687284430382986148007027141997441592301519417818471191575850783082283775157228541152930258436720406815041883586574581764663860119558693702098927697621905574362034361435803841214866112040822780505731425085855392332969824823081024762337473723770280069770966301568984281089122730134412601692128802545133170626507473242253119202408032619551700139614497416592109156070317619948746254612539182972406810516814558084054346518737309688865718172716982439979172721381731090951959001881990286335180476417032740197087579714694704229163157994457125877393991714208261234495797619247747027032432640692122777069501131432162102111963105703440325529694512468541563249432302647190830160387702405553596347651605440292420608374104726641045346158293867137803964124207967283177022277822615837395052022864471002899982535413459664737144322579219132485381183939457610583346950066057025724077102368572531643945781335801803273371237100383451050892260325610292906888869779605138632770158829540671714115370547802441569195132622445465969176527772178610929581499381646901094715080186368300959699657955929114682244611740275948425877875272732251889354770896010048823885742435654417428871644809331111401419784257259344312378088350593982835090334802765810979450465457832644972680025668055207702877395014033272912114485742931870075583238427480861871342914667674299691744314113678835063545284270121993278707413367071505467997753818735629310657273919669737851623838929045720511397140952879958805656593783751473223403224980351212379865695843650856475343712323239043388106090453735099927805236753134975582422012563949367004899656314567599524819305899138385193261289331372450700462097195903532396087894944865848942450726170167142515763842218295500627784043390870745791794843969794228293312717671280120776991893151837737552106015582189017661586206822885883228930258218862886739643540262471969565950789954414090263455937483420409842713793516609815896288431436453588318305232351459228199602126002370856739887812565996396387001389845009669606690334530024398388377678469386672368175098117161127889262321432953103606803054927809445272270005651184787415768125588171992999519250603123844070577610224271682005584373424713020187381281857580642485080401215867131308976340212654829096753094371270881043769689148058201001418444078224283667327361340919765915092236874931472894640653626303982588364289557349703607615237493527095204721328474852771748745745617559828814514970663388661671902085714363537218116488677603428511748258455416714585978708542172059638693193457494370113828378565756514633580082151773191603856679289576335825347836311673231044749471772889700705788050723843743507796883564988073643197067224154329343021500080974416553359528611686021751094994792680228172817133374686007759665190913833252734832088886989108487726993418294823466407289931674279182899471022868021772263156039675522353112276737251417673317030060621049699168990536363072206841752202105406107523943513978712161988192137176674058273465944989026493647483321665375480183772324218030800165311474810484427850016198898018121261047192913407533029955797515012711843621705339502620894380325335192425107212503162060981121049356813185699762924211513749718731618131548130788707511623270433030088650289421135208282595632375225208422264763868399146617566369174917292831751046537496911603756341342464358574962863104007942596929780489244775063941212706790843471695874284660829213451482568327511653843252671451633751642586243171665466499349737487023877503397657708491408086352193694167225406399927003831325307685630742993047536213213849548559947022445060166284457169391680203393112344588673714253859800225024010734506358722650530867691913264772893281047152236636304005505630179232644474620767738747688444510840371756940612439554544050747497854647220820506958343023848798415121229038739520385816385188559190957213555608161901426374033058011844455094435955926679289598227110178564383393842378698696451990762891347523138195060812020943048688221215864665539085074791972991494828426794224242056927689595091454763825911860574475380898050693354506839415343643362261569670357133851792739809109310626985188355303151317937291691840895940445329726411106459909918317893783330361038500098260717577788080697617394648213358618266532713446304680250603627886248774726525889859139353799702837973964864923892956568759271686748887466973012978995520628269253243152419914558554388151346407237205773533092468208785880985050535126046534225155527927226014417965281086762817567916375716418414513473784543986278862173311452729885038169995191008138818720371594452812960721735408104519467033456763886179912164835549577733681405135565265212661236096760514952518547945524830663321051693660075613593520053610924226573133081025311646197349963711026051028450717121690744740305455075150681226716218858240319326912441874796473766064345485767907228221854821883546494911602407700063462773914667742616853950305179973942047257299228809918914372067817236474925519660245843992752119045122342820519443049910288167853465305292230378454631180685951201021271605277967206434935919836200574400997727571708968952847868519587955383556674377486998997022430463243744524601913957810050496817416525798583755591669492418054419279628678315931863746621456912894563118934917632310852734248908891897319726848544962412829668707693280401599721492466003885654024415550224387211512667277501374934009636784491394935269082686345258661824778114368289627267371605662478713415681156204299904151840772604406814172426095011682401502864571462036904214812858668882269144685131949865115662122850877848965309653551748999204829720193528152379918937658043621306992398328930921819439569801615276613950280614709025351447931845137695650879171326541237836900919691380593619605587864181208720076226869312982083577667128133395865702430838031580679818386339918251091452239332836793680279252477265881743681425195070973858328208728117883972678414313463699593853697105012545051553539706548025715898792712758467576461083983043228922519378882618471872438932286148321816578007410945013185285763022676684839976200067243866345226406043688036525935889051479166088300230252038050004388699833725617104969413281197023693353457840664775661192740885187759414520555818516722856999315849451247300122410613523533422651070303681849807293690193927338511087549808866598174322365415903108769123330530962129482088615681483878728643956787738155850574549025502643850183358186920668316461642158548676745225878718111295755190479775120773656980719367551214970652760954043363661099495605166231659635105462561574754038570105713161574663076496308670137530799156942994593605712115934843369467066363542654527202770810108084048465086812538133134358427371642314882170841691462012815493929883103908419645664947798315627463895603309232452974514137207620275741486569535974867162441651255173355237519867196131064230589394568994951641740446615751844847786334664781866931960459662416272895010031057383481360479640651281468452506054432072839403426541537119927918306716942916836164636702607675611300274477752980705913119765447275024104320717270536626498505846532265488248902991116689914271544135238215323548281086275607510136802412029910863831770472732701019863800010923842479848729676302381944292182815320279406622002569779193804374001072773407352960079991432099064263590036485505517838146024010984912677377006878117990615624163069317227159175378899690608600718690513752342769899936142044195707116280998735668971994601717208261900770585900170052597998511740596735692223934811841451325244530026137151374479182166559202366253695528639771624470971797276038955429735711062482438854019574184450970051048141581689020127646356677080900653394285634389559988340575341876372310200386124071831915326918977869159135607838044800256919535411954580318749523700747350353472949056293790550832934173037940500714060766828193737516397189736635039825280399686174874568122762380662983053999945968318548438292927613752209842761960985836307895155262529453143617161883835376305786225602228607966258958828248574942773727029640743696810508805414791679149063416614394243458193898348134099558383136991525384588869851526153634095299638089269565296877615825414683603153925705273071873776313326767378572497383322159184371995417736583682511154531358837761051085200136010096954766779856814907656698230834706247695933329804081259469875103176003497963947443152561715980530552265161603272441664511192085741906629056644889093842121432792289895100682424426937317507612717233399197251804132404386833561422025104011296273326994003341990825873193731240964827594147856612208236999576376405616393205828641917011229120137936218769416399324911044937293010993111672939739331807980498776107316966992254076711101254808039561554419765703880707355498317434298765741402531990983903649726018672292216439140994549656585487957419346986265007008776588286366172059966556654719905710287642454948124431455470403263038440472020543203508019310350314834123157060783676930024494253544188236767855655948189480886767367132192993515878402863246893445453458915071556842509950275455818690827526112319105802351514122522402749977432416378179468520402188988251023759119822813670562260111075598520832631801640429249747808267301562556675855758456556493204572798339864866211970678569965592566356990635070963573907472846756376639097732985770339326181149619691302028979779668842495351252640895132234806212840148991487157724269959603312486237308989203562445288879734380469178306652822002148059000656619011531168133057221668492558214981446202818385744024093629231349764774076029024869189119274391784623018047831214133106294148140309393189636325145001380743403244234308095765411366538981087130732216428873667411003574185689326827887062026579285378334163769142257900316901196050702506829217468165049475272772669786538727916520405087912875465196850909594317459523268639282835594836594283580226788199457772456228154252000377567908490275132585114147858907613756481503098218353739488840555905130860589876785324390464936709850714264990064938137978936266599780825653352239415919601078835570855903607238280786142056832125204141559670492615301641543455764227340285851199046635346576266832746276790923138764466026523742897055400074179501186239036030700500299920435183395974332620954837137090938702973281636526987618965817681706329854963839981163699217946714739249428320583742993254368115815275518270376445483783892533268721765741174200094218486462585566212446135832277428680998752825830968850023921207429298846724918396874169021938096349416250268318398957796819997197138526733057259361679103068933190781693145852772276478773589861374169940408602814001806896134303911750707093521951841889951339141544298564129447269213141425582345312022166725379300816950544885480783179435528844990389601844913502570512203384524136028631657447547937220748411083770429703355818996861758600658927160605326339168620108677221857473155614804541643628416205771407126698378007273969036836740135582788585051728866498383569814975345162082432270882373597368301980160214768238719506879225805315163915613977685978507853328631181062272255568985096490946047662654245298454560418025458667912675716479771547609046668809035523976277727503841117422197597467782345023284804449943623008916129676457876171524116279470554870135287810465290023966028928716055152401920001447447320066839020812892373918105585631699028589792307038073712253233691444912148158578490353688221534434949674095642855554669448777798804430115429442226608731648962288742641397746362040581669380195699685012522199598786463266705337296577614295978375859399991875440858924842718381021837122700048778933142672638424633728112827665346077150085694367074983372983468121047084684689968334600387014368674354239427945483728957838166492068106198118959533261812219402254543289051363241294224729251221351914065221104557570969455756427494899702705346444817126659100364996189084212330411304377054830139137470996251307843438899839961805091956125471085256008246938898161510582957027269143664358575794616585619986467366085690201193050079802978299374508462453410436721763090463206461545614203190996909291989214333737223398694235700867841609462686708464083817538791579372462438404922328249788447696645616900645766453990496106213428381398038482920233480934465488939862137165283669649677484760284918895771804694118008012659358256541795089338682497301252665199672942882765874372596143109558258641956624796051819506936821107645174550848654601940699096304059069275900853561862001122133081490528341540022164277889060163286261241336059464877132607485997934068053266522200924505143295767676309871910523618209860277756515245860248048778263657049983284624574140999122862760053445665119721727597658655380072712560077272864155274742896081378857042650149994786938063774748297723227096167282040542223860551817914469749338468472218752390705114586915483664834042319582761187388257168558841236661011665548286749977346565437654340798550935819329309018624695410319815097542562692879434679166271977915632271939095845473362591524757017244263475930451588550071037817039245415373678431714347403335927970111400925163244535237917541601851480365702505817523205957891685271251987183903846776981497301642093395498410886980732707298450100741727368493253688261545306277845214007629509333228245985120305279279701880786127495088850471672774327607716258006795620939706684551898715100087713530349537711887698892576599719409051798142882164825761981926407746884779571510376734285523449109206188398463431711228681939435245777841744453193539065222964695301833151154484061512739737466818432538295268154992223459818958214632005165148919654845133088011349041037286541952884114944065277817571701790778573170395466376512955315814535889779935728393460684926610319466984331170430745327850073828660413601178070492238573555899916016813149616595769842232523366808492568570557916232865539182957620710643949133069911418333314541134667315839295028120997913488809690012340036924480793225952813133630528315149470555438412031228518504953743446258436572653104408372106536225215428252144347376394181579800750273153195797670647735646252986883804003689173117866534281134211583757568214274114210100809341637250593110808684798103237968227911605529112224707803914863463791540557270536914550032064555806695561372005966364885753763416460615221717666741323049477840709044558240656758289992012735190707614179025890094556711298873421107631035356604375309780216237189930718940706407818586669075510122541804430060031484459625713890028080717626837813163811151841475104940369327968026581575874687135111815888143813277495018899756028074475796515428235991745282718080912012429968598765011180424070824225737266159715854374401808779210927951173145086163393694514575982846512017643630982558850761371777737451118371847463616031246457026014140671716200429429160939656374622618477798128491455467748915204536284643308049495433795492234506689564637125712761500131952547381904167260189837802814614579004009739674396993772373391355726256660541768438186965538473654503837201523630936650802412136614952129391489024695943352310303975746542516116220386491908369874942560746256462811024320541852560175673080610646806203120850673847078419825296070814737904262851041808253726872511005344182921304725207624711615633942332344081330221801221139547057693058186044325194771131242308311306358819895328521662078399018695414315602922855230562470095768927409073995702389985792307018690057159114860557490135107201283626434596879978788075864777369926215626150475522421587784147796311027311187259336090908897795013679000293608527256646075907653161796885878790182972111417755355354865889503687983405145909109571900732022207265813886410004159848574768872307284512571745779289042713644519464019250543653811809239514634399244519956042399538500161926587857169147287436750002007859748822667566722631073803079715886838957974204248765355679163584655583773044695408412296257831451859463295240660394466256742151530785802862770274819655191884441695488835155895875949873184342881929539982054412155092037963486671273419273028834281370504013744415127503191529986796240740682024882468413114667879814417902325890132339612832951446656877863444958088316206356189467965568878895686294736492069267307099133319845589015001585430534229197904453338942637994780716706216415411637351783795510959395573032968089359748825827085226843330274650318695694761965010905234932420188590897169891548735697904176783865285195112685609352418771384201713991010124663719245209371482987051196295503484821828172730517365190823628066993061296143636265870162029822806050926033250435159808982250682630026885876152872163562174160339351839413102801363552512378616570771772985150175983037812643596292778274455832298581335900898853321243705222003347880822777801248057463618222149505365713812319962790874028227612928311548559148978295585461395988576013299447079201168968871037891985972268036211840939793555163460589819820685559349562012693035633778645534270062315033152127678135667699955057563719526009748490887010811424986213859580707468112056826894715977016878061254462617084094069987159723971827806960361334148739018555630918413745178974968928462115522450937223656169058139586183308998450361381096770554432058605726443790979435741784200581988529246657464797435451673213906094384216385000363665323338882593002225331549323640101415723438842097784906986780034396845732484245648732215883749594723543478283309405340705300919726365576668473533612762094803160760355955259022725195222637017779690413925132985412078499800993382106960822339124119049833373347808613242753694890482741938217256183294671332069650475333937464765477646294118882383034745062584904940362870751388865006273105796283761122823952186229498609294693408559988537964062143577208145966849982761862961333488005470314762646277210239906150557742655748818096426265460767872626565137486580116824763512994901835130454771837364092726186726385793785900702733938375399736691776781907681540708443734979931296504344350615311250515366263241918125704201585460734746602792488582036671966183330381677236305982103238500699111087911533494555540571768572276354319084419173755990579417610408849588163117058003522955401548685540074979855531322799102429718924395562517106770457564395193043936319261845725802202753769076542898854897905878368909705891174496441522994236906693523412662749342436741574982906027967408584484699113935692583749988906749823395286323404360577620324615131973754742402667456521110189130437677375210021338844432029912369353747154908719637075865396863108749648392004694771283538574164988934473774774756591382039304886307624613950052939588679654588374857358540033979761778754949234372656455843084588861285413401652053320491601266108336290603827558855474562781530570834118818205968425509173550564561315583344419133957051772050715312729385365552065620527242316427173393730773002946759314464360125596208540752144324564484336428905830297143245978094435255552153968861356621957387948839647800456845653377925859899310456823378825443462381957547899103251032234933010235242456504990456654943647768442006700040208620999496704978238220084207543051376909446850288371672378291611071556874017828307934941515917099822995976036052256152841720660867245819664604980433041115144574533105051933464751782529826937381334676928876494446718221739171077666890216978723859612980870521054452389237140513084780196864848328633798230716366196715369163806956145358649613664871312229729451507869529534807482987887613269684498535824353841917948590251802253692023500808319654658247642795644116289528436811682295594051226262612348501779311932573586438389059207388397461061529621108849168977471145893450472490244151729493093700940238475294776063510751568310129136566860502441546261047793855344254877560608666392166693944947785036064410885060392781563801815988975626843388022618034948086360806983312856952146540240535496347745497966016511178501631057829333556651991150568857970538619124109240184969634386432258476996892661908111401349079705195662411434764152431886113372936214240624319950496812743413060517621638205110757457883130686277938211086119337870062989916195532448443094503928856298635228578962589060416610840859700182906660722206515678753029658259147729656596306005314127996506240098419692415596075089276257831144176306803322798636458437831487290123286735606332794687282165365922904575907054702523549945867025064487518668233477035324793758766746389386158604900143432070819117698840146131615719471917149496936024882768980647436940750874808619583138211505621175662941281204936209818541292581587917578036526113781243984493217768663957592314189610223239086053845050685750321865498336257671945354446349340316503926972115166545886549657696983270999925719060411717800145900943877108075110173875897773231529644740302949826991390305780997439671802249665466673192077550276925398117657843834966166895509516680881170493266157299725703257758709624981906295192238069291050031042603907929559973171182631416460158213877695380187356577219680401117244273196161587597557723309431881390432872495295736324446951503457938881558504716817089470508954484712993075104052916319821957740046582194712928532137437415295172390901937892058988471632285057788935782739040788615349943761083587985851699334511100560062072699188721430019384835000778810523558298491516625803032009127294865386289208162025705885256724099800832981900484366245579397299591053297389392936937897542336565820945342929009793280620825237687916945133035878203164250511165404809753383085853146624294611591578797772044352209987086327747322149427075283833219866810139788280475668080217697218238372858381004176489010325601150171786207119155809422314687072398036920174107657094302741543188707702416602048707241908425093354346922457775405795425781223991414223643581279389743093123281378165129711847034231525236673399903056647604107622658128923364450609706215091414670332257298694131273975640066792589688460762878629434293526643615018930602805029537100752238003955642400751701044403166604392739069259607389789052004909542170191426209825250139835961422257425052728562164736324550154721618161985569473743642225017948980637200350214429957813072555677239601376098129287514519687131865466441779823536906385460572055021066245956972455727186641240785933448453527373498821695332351531225152375885774052199041797572878944408041395480683993579039483539559511638364473473351963221694936009021188307724392796408331612837897645254581896592547465137361864258321099873669633100184283875164695786195835174431087437279127239737225022009339643133294436585223175558851104430188276646216003650486142124278672969289587186627672102424096377064856865534778125477870958840256253002919350532803618511835705920615186659207430945013318611735863803761794611951791368459722628327435240599702851105713778546265681500209145592295884004676110525762953536622496620773589029762225271486215805158937538044817510068522862146868840021584959059561367694200065241280012766217990088485228139413170059598175798577501102111532740564844555452989422258794543602392054504325517595469325217874957401853962214086800586926263844085537552340103731172076800297085128941162586981647951560997205424205897053756226412728311478443410723605248481282351085988529312659287172533900953970808714844058723874080670507802563043960813388887313721733726951551559221197560242203080234865159825534893796262816485153086834669371263136940822048775211686926269803888003254772347191770720375024854973688789687659752776386728174594573359493214809611025773826796832107791800058259403553980715018521884950056190274187631527658947311704328545336232194178782189075754067878456578358875233709427872001687778530088825603999751030854008733043544823982922356590599024820079813828920872691328915255328097908598340203363616481344592127871990213029895579599859736666361409615230182418813665052704248731144118810892068661287502903373699523222529547133956999479463646906542029344103339176393376891572719771145698626412453071460506608488046848345119440284969551014859137581033095118242850653596607871647259631713298107439005442686450865279382427950681050522564533298042055067623361203496805828854535499327987135971984472362981125281279808243401633704997966505266949323693136381328922488949435136304388459163167735069507500102386135524040036208767540104452314270225819832343823382455408838066593209767319981915484561673891821732656596709424500052079846550228431306409454001331901615568784638182535981162918759808101668311313567139637461440883126368833337015498183497264787405579116154159726385781274806935335872124521963225679260021548762561391627068012963549583308054853765128083941247487813003381796980180351505456971574013635356718257690733421383805350179438024518393023239245604090193759533258573708196471578403600751397515205481991638324346637777023966663592564196232062513425788481505744446002006112554740862745014651019144283885037647623545588226123609707145876941660476031528035296284193464203479063433155166327669675701222391146191200731380973678487605870581178239091051569609890056962381172532808149782278065978755717307780539290108100695583644807871053894787133361319990825841398710359645384229178987615055856581852252297346800675409136739386558388159528381928762190172854992831483048252528288145399203946569100151853070367186520750635233593170506739928545680500195205099800193353623059366072838673265547445412337698971871077102341618804214600502085254648913803050834532589411101222910575848998081274591539291710407559332958438668967355820924068480021440522040980313117873045085424664007094161031424845471482005878547009276701439138426846839424972509932480808071122545999362259856463855154108314733353887014704820388944689348612322429369993342947781756525536188456169332078360622640528559309291041736836411954916948918471347775030222230547927083223694253520972346854895382141666974839358967243454360122624426740929098556229718951935256097624431971318842209955213841343183391019373770080338873356775494482728507098196625174803740737735618163321639933943288836797175543380111724372862062338225036534308088410739787961270058028512998483926851849693192752632847611318303685424545886941733648387041976864044147746127032038328436036132727847008494735039959679814826377604760067868102281786114309146861999414033827645478350248473872459235704299955989360596059781463760072923310366622177630801184574576604633520672676903195712365844986047615205741723990933724413143105684236282143241401206601458777164724478679331742610373722956710326038574782471434222505224280097363924794869006090830687253033273098990878828453117348504566741400176918729810994518716366599888188001649014790903751601930294708033761297603899729014609697054164092938405315258884742555332312408347834573327178899268198908252850021710793347180031798393908683179561590950186631166146903036607040676397039185547779035917973253247595008564322985854542356964286256366662580056820666378431059388421183929623404068814791008900935598343651851250781504641938158641969209748869339098068921917863427283383444200513152276798082955266006401682086461332943019953823394489755636069775345128235705746437932850437312169108492987587759485313737468682454321990260493271847931731462995573879127768604728759614486953552532735842622645576907249898988787223660630607266680532222806148991320313333782347333994246483762790188305193220890879564466118008255161371301410240652170096968838467042102928209787465868450089610791036241545916836054199433345078988289335022775708234960550202467224670686721965936161378991376776187590552930874651386225951235184346277325729658167549724680754501146026371310155806121488831252553015113950195763342661827090216501233058141606397728757927613665931604738388845827885280286398665722485388700093056793552189457339782947533655330402640305507112270754758686830811309311530226369300444421623043692846148530945582036141323947685077788861257675075045984906800237004051662908721719161885565174350430688280495060391093493397915012950461128553103417548513274177601426246546679422699271420820511454757325112329508190824654683256122811138704722537563793678085567865706454726425822337258887117711937496380771078449340796553580864695045171248452883250378713136459354571958485173420054444477237700161371998960170714830558286552680595394966614580503022008456701270607430158442616310720462453223587282698172169864255831033597790516203917542897976363638099626229573991682014345488355325756991746109782201581313717191620659562509201499604986669255227522149943967697852958521116035170347180184788799885714770996077135997908663556959942634529075839434897405749855226468154662636748656332583768747740250418971967303341707653470200905597581810208731597358770034677172423934856513893285893284425746785619758487669434115767012790752013947984524390564473224694958406327862409229264371223504090741331492166847482642119890055338981544752912093272366211944795356384842943617224942643775284088244988581104132589954651205140545020578718591814585740836862547252095546906636191028617931145084761166124986516745849132220193719875384306536098310042218175627968913364303785709782094675906384794413400195363529693455297347062561588170994487019901160339715833568390121655162123578885506000282178079295954277664608728073048249165863422356249577809922989151479144516965285616190583578698135971896145493139885112996253112541499115877917413208478123573408507947277059184119653014000598107499905861886379448760933753150118498244856190529535613810425442220523648120010336237382464952368224038312041199370135661429347915571805051917728513296796003329290522651193266742834146902175945308018939129005861177773174623147125051650106334027464054268446557584102699262778738040241902121706569569655702493320709844642312287405887124391248669828924752603877531641064361434225936560772196970104396776202068091292508928609775312457076956047780093666491730958516983360732985046112990863127626841977541833474245758088405863371368329764220774032941217216749784422608135810754278648706676822433763705489388314659575562733307019448923180397171172479530005161276058863032222029070484614700005930270252763988937551170001721736492276990875706540829363866700706099408609121556518821323435286218276689294989394964409013329729308213396220276167216061898806883143326678711106775491451038910196039175452884274176433012788306805286162916837433551370079636640676033603304145571923694883611003306654897900098064843107375887329368783026309108602610391084015524292970303900417878663824697125878992376492491782371311738988211267677501171141791127558321887934269435709714734251124469588755022560816302427043573354171147572773413582801955263583391233602884019065153087824295413498500730320211555804448404376808552277900748855739425680305285403472547477706929023993191993463831581191593028584318277159014115960944777681806581821318152460353109638009335613292525286861908819569484801900317129877496859695404583411839015661039936225107265550231438910892957048339348756447849610599164562270673110796744223904050962923628809927791396006262511486616986256519404675712514691107616452776422792206757110453852609037231146704100207684933171862689192338094990846728309593262693336348289002696807323993760490349654572503380178961532788678523128593773856505544152023725761985209603372384109346456586740974496470218905138366537216687261849354902839366783482013874046954051305146649963604244950999517128801663078332265211998005527568549712804887236322338658689884241355756143180850540543884082835661927858350735915115760802015374655783770586368772604798645583613695070838412868246040933897408490675106956423852798721284396065306343284897020997549092063270918419767330261233778835312175633298446126129686959401068284192486413500637254493754136107171645964753330819809786699848016944110743998184206934802362761891898757554368735931323981334189350089431382271905508735882997092169474729626571612624789864989650275188058608812949551339976613140557975536789419824129295510791208076056088833603631584801754422014832820051674811726008149745305258302234977326448292416110443255880580946804974009609708257827241317196228554980321398014868624657731850764090821555564689760925240396950706904046846967881226922415344356481184169817965515909415675261414937150294038850245718243977181698402549356597539650234050904486201928467104576608185534187622093847001035287598774038499874194619932133628648223187181143750502264209062635516958798792926358261013476251102850902636429512391409201342349699219043319219310020266765593321445144603572625793052635187204871852940290743510328451972806882014243159828988827523305884231943842799115602176329361741081831565288037810324195012214069294219551310972817397956913140132100619616030513941244119306472532784476862852771560579636680806721177043712362421548093800682952914982539527991696454980881566114037383048454726017283316573511488939892370290057261836671367150437102823861938617085772590095381052019995969339426110728530304142638643815060869086113097937536470334128914491736745701315601317514354789322585169119427215734469614506483880439046536071871686506718103788846380337338160050616653818737599236071664954451209789611251191790860931980838987305601745378846870157506266576176679391829963936746816965284336471967977964763239294956089902485411298274748161144399750038508330048213993021210514920153787128610459313303280791873918520344321257976226225795056419648300195837746969472388420324982120451885524342979802397489443121621465122360342719863556445363406020095972587662591872701850718539285577630721283973740744394434481825615459102609472154085618120334635391598903327309810808434232772965222014215367994476035591303062393622323243154226087702518178726855069835910284219135609209740301795362602670064255030554854179980346776134856080282214393539115700816295881340748292006769445027219974008026964612449578489097476208558450064012402117115816152068515304122851608994198459008841283339933449587947746007836006582109316977931988661886603661896749393306980065531392801255024616472577546943633949805076230132932832399703902095134971190957594493219497434399663366707511024701450981414543655725996459845393158159642783812201494587861213172674169630161943163191075006663498168832763310591582504046858046125831486780405619727199690453510609684726468123368662447468992283127011215901467271954736614005255445108167636618347585286229510746686684241488634169353011999811537657967320094798373495358306064348968435841455680329339500105705885027845125334166082038901730109199556860064788082031967215925789870004927869086204487281513905637627807615422783091000284385679299529708230313313462688832281311564416954941090209130670083163060846401536530233287346289403683451581591067848478677216500926732632789431429241235014316620247953336499867710366619112369160171229848182183155980471582668817185269096082325324152301816987800908544822032351211839127652593161037383888802788391891373194571007501937092682441622934888386055353787247162370284358593948090991054219681150778160825114018025798189372649271075470243083457585371704608704459443904253998739732381094765297049815075207744284168528531438378645003152237911834681172182709792663471035243269722318795718611865211516474000062573442552211352076135782148451751194064584833962933881985234948697321156966231535383542479658337288205468025761768580142139830001946000235744780383525105605830098562590709710756978212351610765447428421236699879627010039809810207354794271708146593393146227407119184388889867804957936515772928241057081229380291257578689842005894155042035595113857355077893917637327600779119736006303001852878835901487382085216038435159353442992285266148225039969746474445571004214618099562516088405132579037880378984581059169657532607433088586486252672348852435835726701939543872805709634163840561009545689804398484985746415693790462117321706121807187538755245329479099338195050179176218175393187184801043313166259113114418317753668552258635158572417019650010733251485818949212933935913367705520985472255429873416589142550379154410056927086224414302326625091633008850063472907329627729553059891065453298862287732089035133217190257703401004018344389413909770233215986281703310148090325631746171741009834852348219349820160809358152089442643727068780259937479541505192444048894127036951588536544354876705858467830785412394429294018099163668013183396931676416096673091212538653421473496669405630306660014543864565497263403507240506716173179767944529231693526137365338711586824143978775386392153041880616428730358051023724974330353329390585365517124641201312935715764894791008582663178830343304137784830535797741586363115184947377468011694085569233617332895169028134440332600087535118195834611228871480692745264461776130196027001762704793643003767818511844038708725223802301006654450672122471955352474187903469410598196737927621068285102457112312529272289781710257102613144433959665944694727150973890116267568786747036979323543609186220969809405901509782364839303996419494868833715548615887784995539419707759160241352486671855271470209787422816964621035587742423373752970397727346859144213088786838747268904636781860591724245497766704564180736794717728812184489531750687636581288792675446175505396037053569732844195030387905746725653083096940456008030089561301491358925294013891779660287626250549047569879541915929223057094255969351904325208306650684497335902293431558084593768813639209537099992491658269769507691941785324353481937673364647853279278373295819548479702608791125619989328319674943511598466474986081035027489868128130538671943759458357026505335637565190726551168211443103108380759663679919022121097361512088836214017517133526740173009482676158452803256874109062218676807398524403636403325517467580790305513688476059937210434227478975568731005303407287216548458163547809799797562549107044636750539859078574801958488462820644464833360806709029065529717704689529329602799394204612304486037570300472065811282954676976269247196600200500208877412219279140835463100158947529863958787340408276862007018360684044328738519350304514366501834190903341516795270270037414097065595372790596006842481394856946885594651345488684173061384953890168344341954836981927967098801769138380814019913601700937552173188218675006015457346722169347684942883112865309638770328879990119798718689404314364019101985173767539658296364734696015269889147750136310827527789286660720562235455643694523282884210383249838639821779618306048946076584996330855758460578916418135900205531124159395691689587320775171687215691735811912205755097607657776025369426417245850068819966505077454109612219223680639890895409620542619087621183311153040245662515068459297048482015843680800449054332483985723005653566440164933352914772801352009395021736980477116268949078359259666684532441422164929400484252274621988096084551653545040826328862270113235084953543651914260374413420171864210757596771081913041611283348496589676467409312544128966093911470270153745221866622203814847527043163234069990380138875511692023136935233864783682235106290904935668016775119895680482282530711062563752374677872120693483207743247716479597453389598039884478061077766135610632429348407171964081313430867035416484082051270791592407096892068213599152420154554039686564523187752883355795534091213416615435824281290908261914592903393232482048225366697780722409887454002831317298849665770189651899144343217839223529467369069677049995141195669631592531471671121359512548154027227783600394876166479864046998503482964160218863326479157330308749035694149100397004051798099929112771520188165618109520152443854768330610164511350862985784709112438167766892605583568826802767409847229923781364053276017185448961237318687062715141100163812481224889838323709549440412085335832658636986151596669270365253452201126025210934881300588393248591628109768314607468930450819248986993807911362385181471675363539871359253992860859915691083313805190299976147218440259570906972285402922196995483924285377880285779790552255807183433990055306284995082707943844931870308500321503490319575996493358853402711689948422730853344676441748421701450067679167965100051272712655368176464048879423088491277839895406091579314656997351501841947622919392937129056893382776972715183020850981678606757817802887177313144555540706723234023636993308422762151321247603957638323667142373772722503787646485955790878365126850906754971460739100453990661652146626527466532655400183229455062735410779990911149284497826327414264627835547648268855845964452700431719615210031998192413126217418282465309118647632173466350413331463443573884481045926240307444427056363448003704482654002259471178905281464162404036218462212186992263137137985936183133019414521946569623458495571683259575842796669474166961055440413188287516278848968342715411089426660127357960413686959030459568612523522962925274186585785220334706891218547382572176573698273329530595930472852608120412290818773925070044756386688914717318328529605826274873023227009655273826660744214653561293308892986430237121197389059707813962392174901282587327165014634161918130430580629338961383827597476613836265147875663361011535470353734643376206196978275363083759414271643408800843601178028251929157926883283098261804197240650905570097496512975334453249471035975369040492775419867877503610852408547472290515519188740654583315639849132693483646378957451408599814370317106523791398923838997649437464485311772300602515174075091284880545276514988843715094776618378780703890164384448816387089728751219176604316282940450115777354529581965055100275454208798866493850390626354330365991970485437939294847161858686007423335010142308237212598077645290466371502614415197453713030482199637382733672113953445880820490521738112925559651281994197295729608259487214129176970619668906398762866074934891581999758805364190640392853502608561710412181921122161054032242312727083934746932644848939664540136111278255319128921762485225058470630217535987797927383860994386324322037708129997337071999861059330265050117378644935607271424066134242316369734995405914377379836526999791927361397112925271758934014207872990656683882728884952436136799788548179782485931583633054241507932629029545138139657809542873656562771972023308752718860444862450376955711541682712405894068405103020148086175384392750972575896741235799484654977071871765587578917882557235348816093116783813741086601282877536355593494052335797843020485363691337938367677833192530896588987435355711299203016561172032518206183792150266364318560970715990335533187311146574235841210003380444425343357931312615590772484464470813902536023050927952284046855815968062773733218964155836358478149630367082850304914904055054218214370621896641297401732096446728359259451308833702684558487827811263334103720692116699653494988307323789281366246009671396385729216078173446262855687571905425752842080304283596801557359436345429478709442650011573965461087916661047869436238826947165462424544083267328949481510458069386131990201673673055359370289231130266386560774306153123370405743941775874108346036463306567774145665724737063735712948875183693370054109586911394169912737386701617667763177464264540816477930349103260466500924191508690010630070520233727818027202638677944539437236914145348560623798128500782969172842683061873108473114193045912920553938573513381823798375599819327297518425019824784567684746359973032900627542285865295130068418854154823120911881750956340922466589217283789222426491681833068764604881606799366097668228159851042151469227935372690226492553720840277973628299503489748013757960843587170189481664902531741251368324712444625271060895498652072037794449695862446838462712218065631240662153599407918599024024199967911091784151159515278500674131929521206092315889457685303407583112094266240126802671309666684672846833099754575752313270909240035104676689197621175554940373318119125393312582870262656134479145968607009855293292913737867216691720875542816999904719097399614591816875435717361472726443716285761339615038381083220011573087089776356506354796840094364629687678957989972641073182405356535087306771421961821688615224053804463412783421019941867723272020842905581394466149048880947225758812087963714833543467925354021656584399331926389195456231907263649817318856746921913395974722559484682156814187802960803897889268803318199839012807904066820627217194194191973267570630793917214386922509793393024649673331171529620305059768499614952011615588170212967973664617673914173480467565582793002001584514187071692573906210903517919342945056046647390520145946144815140699606794653583286238232794836997276026947926422727607271340462086830592583680702989117760408021032478862426548177231522433491330554436918943966104850079260484458207864620344458531897927363976791387972771605649823731795758878377100947301088485970509060631248726181677579176886916700343319354682665110570001888466130389635901903966116115989314917522469818910136414928367337175319163658859471499527391365998378521905745035362159028767473501697326835251280737658294106355294879609094169046694472879910546272405740469317671153352316656485982803520561603595801290187316082894467053971494793904759703849577673161408159144855322610615660489395644573295528748987484446718994209517859166054959286323393000643273587730309690152949834841435831698992947684130103305827334401128005276780833331260909590264215702368187327818588292340988333562048541326481311752562947306305165591045441085627326928586810446783380864590318739187246271221790806579707338884524702424979358226634696619880483932723349189084378524424951113797019040483917551773968202197667324400863929537467086249176205825534326413228450951402257934961619677182154928083406997620900088238383843529857565993757112602338035583597369841825312022071716499438257274581174637014761942095092596881452522090157024413137691432915839897909948247766954219098717713162358323620312354329679663283866595743211257714455615402346579612047429310820208469129327505556928762697805660921652225752128695158364548851367060565925733276456237193045418143612124242591112494111211740969844988924683010090428825692474144617514440707982818262230128026743893819853025888450673069042832667597614870405658606140929070729745595031075893430114460722280269726916765578125030033733234606986228639850353045385571237259885960895469553280014075420641014540207799765626567592343591281847693838420253541005754211629061387686281460064433153104604836437935738963650336023985819715300191074196203233859149124964465009980297355518922134628967504528216763069944551430687951945415544864681559028609045227085802161343868159520273786920443427133263668950254555400102412497973492532011232251661214811622280154195388630224624107043216895791371763594446730500353346842205648126662874438484189933479970015904730197007257560501573181558689033727641548802114916344223865848230752982382205100284749753108554563294218997584182972462332599537185091321458271711961664048775066919504111795415378629362179536369795940306235661241942214588215955954809587946968095541498736905388211158881329049411839137354334790134687238309398013817836888351862905605200943469098631457552435115164345777851280353827044204473164734926655822806765786364046168177999398199760633291623534555638694842585358968505674253769391511876973689382221333310562841040517002904245544232869394530522364409853080915805357181402154846627465717738212852465263644028856204393248274639524064438906532256598323592703155128117535342100678794054803389313061105686916867729679449766010966166174847901158710975471169941800704888824831576881990062987714849803836027704255572397096803678946766981187121622059343260813420340811690628720466511573089364753852171363786397502754617020563548076709879051241072158202624731813085892146067792507270501018423572598995788365916072434865198677763403449679930359804606637667671511428709129039389095796568471548529292290549538021370635139156133999457239239422822893426120122483011661059084367203927098357272222360060035973947742260012935881327552009383094042220234221910589409884742005980389372062618413515245246927696914407620926010787227680682778729187456106614808428832310819499945618926401565761353657460989771500997981975527384125905385502563866126843949849114379846159900166999067679100441054957807270132686816872254916414788467770598597910937239732134537222470318826802936689721186420415203654076756637094207050651670698433751704905157411417821537384379960126841821000573459204257504254791735500542197446519954063585855100377860625618274182949081564706371175780082202282705492152188388234923017808102670366792163632251398323857804407988685844914831245280644018324553846004670371790520021036524504650837272639716049877050022211948069833595833244287072135982710471145311147900891313567704527114281859574984960610743378190583319718475235238161246490223326872062450660752030378720930816828138431893324084595083905932499834324418897787659165218966625884734235765150866184080208876573110135518475998334291961840133392639770603138785790509387162232416870537251479506626095876235177793974361453452473514320939264902483936731712324951365691011939156254549363896107923372973163153321073121183428083341478598883175528654944581991773745513611822996245219095645383592442728554525038664020469674591375803633678714045615921017805823890783594648187698852419636447982940598463323066559275352249075930098403459771040184758373717550205607740177864263355587741754898123145043688274596329014913304885609753408672114665699383957743270843276185437893566173960643616521754791175120789328221601037405573208669014342490695833041334009661957753526831355682460937403270841311052107241812367876667493566516655772942268848609690531759562513217926313807161046611516200795778091608568037247415007335373219964603898244024432048898645050029191857832119089908960552108752408647057797392453726233660484888334469220824087569658727279680345939730524244544157893831782069563134174204273559237466143990614269468721236128891553601094813676922532660827915919841247146016744733123686597476004450614674425220165188980033267692948545023491745488258823874384187994428327152737023566571407154000245011887413982553179212730014471321912657399558773178742402800658400663739267431626222827730609981246118868522272632610865971335849027820693090623498453278994412275038502902747049107357873075227886048838352814386394134038584780010239458056427323555413940902859443888756851089943127875652242920151581964978141123194462838406398043563717761763014049548002548832321801053284100188163683496358020521667182554538981480361403038954670278573938840664801649413785202052502188420327044767340160666258662666058845979142373004068031806038783479273166573473337588539143031493121364459684548055849857518571297986619174168277263364991657155201463788260369672917786594606470043380971899260336193892500596489698320927644748203442825384864149672658262499144617228202252274080801871838297907490555818536724531000137144723798140197075067704368258621135376428556063374295307631170062337328853906944937704123076446426393224403107838466554393519186003595838785454828145508674916029782223163212193335182169653224422425870191171594176278130887475531584703896631152113817676504931834796961519770572296571443842609930979112319746231347909388953075248953573200892752279935421080724670263269978816283920180620265241571817482379417893744583891810449554730400445678907291412819531031986868129381653639012653996097835525419562489660467274703293685668973917215801878705084391789734789876422709277081661148510432182633488260393834207482602789541577844770501664680207898812101606856026796848829950826607236933230287343100691619654884981217279229380299884062850790721463409067536310532242451489213247799023884506851248077186234512394824802191161674243047618643910908067759072190073582110201259067687224514332132291089536487445708004731003950244023074303524244964655949034027743590210137481393009672631519877239410088498192004837983782508455356420867744529485214866283234500851611477422565165284315455629355919740462751278689284629407411957573133708718757007450861297849929810003326630935736887268438926982263474322915367116265007547530137843269156943106607787018936407813387660943229304076278094544200331748217308485791737704530522608144705973126069358210261665336260886082893452179725247128656093310403959395221142894268462991874457134159816171138203698128715349990528238338810980440636553030720700860864467714488735726233458022805003367433226876629025663999926235140555079989994306149047785965027607309066714000415533836170497968040977936327824631969947458737131638315372247745314507674504457142581534409405256162795993325156168875369498960102502138066209861961286915724536339429448515974742507684156605686378449452875987443205115096293878747199770788608122729862123651964037154137014450908476963033529202461998157792957997611611268732593852157405967875746307765931628072155906422320969159110069115768022153504370169049611977786867357683537901383203450936924404243267942207935990669989536672638584691159568388563935637733578577666499078469030867176340177491765665491063130282295554867744100167747765930225516026475288537106387001929396865425887551709330461520024672154659716836082905863923923252887273428422265751097922197613141184537752701988694583810156183035671232317038857012764988351003357961864650979678781246122554872495898201157999032089113022713097396124915134626769468675417196549551986443118518438110870625892476149925759583407627787377783012590699331608599279760823941084750417976507080256406626888321055619485235604576068298973840382504922248705238875898178340957281466159415227147727516244641878835556882418498363803937608359322003200121179014748494973330088231315457057923230281577500154891355192873603431864950869878391217143979535945915828545621756715515238023769020010983057912002666880548654306890183034914831863724428003512328350151810491854155714249300081977968159116585314712893472669047062257289171659998309200873719087929461631926000443954124004610156314861763580324401057589088899982056721748473824890885918799685157412606775996881438152079572341021425465860593218140820342008628139344656905135794353765582100335550699981155902121275565847284479018896202191673726998997399947890011999795890228082667422720428488650131458726087900622743104913139490774535638818228570288238279884875210934462846557549964328052662305738996167656832275737991911872654491376836877393355415944512831829121768564993498655934911636407932547674641597621587360434704810814003838093136599202365769120738707719950823730967208389369049385642402547058400783052905217607671686842211141033719358282695478024100643805852398780952999300969150561423768766419623202721588591002038344608142047030348174333017357712798186658154440390252862618916457662017188913521885905031555026221398737381455026739536950787721983701479718196139371074152310259202013284406697344501015800681964595352667143875498563753205031643409664251613123965995333721444942122460898865168150609754373487159183729678421866039630571896759659446470006916222234040116741953172541706443451907943348914983835943499434628099361695830375264492469876865568401319011949166715597818767731205741242148876085054653764853558826829517891760829880651296098943493480776850308417867652952490978001271761189875619608558234707754396036664878131104928538444379368981799587644346866667119646629247215334672203750287007027667891273837587313136926498621711018563846398567348160381624413613538537560353764048672253446076487279995557303459192544686890770148010353935017667402478578874147586025563584447353182821406278946594673848180784040271348174689546010404190041614496185267102977859009740073833222399257522616548371455978660452794658062487064447584163467212661108999598761757502070522433034926581073354122274899253365130307263558186861689120220949683968316766461975707881016106341143756795928565814541043164676051651307474973923943683133630950911456627417476713998397758862653928057149987798895743779874420457050734916383195507583292903344877673197892726483329180475482053542890695432670988886704958463632491718382650260890363487404519736946439610696059279201206003506672271354108962136751587154654402095213491540434956102729840423035106010877809329036800559347991167773742115778259481312408042865656296332972218248390274451021928604623278280474369117458034078486732821792479154794549315398684453845901456824675371220098661091785000777709463193389888018550577429920935487312352620606563339792782283946192142518381016136541574070239178833977919007327724781383444665854121904339471729469281660836707863365920435423786884766474770867788841053091653497570315986258696696565456086053942596607890102217092792390875032847330280663249663971494115396685280954246228406089696137840669391239983018024761336721020200216544024222040774024780309404610943391333763491827247333608213791604922923990414441746888422693873061982491561933853239040599356805845999518461536069620315342532153391237455422085569989779962228712935798617591184728527620180099393570403657899325857883561478590802622574882835492971072868659126591683513084522527699771388684683456853605352804204680923866328925854661846216740994991131478861860156501679655048875894793986607258059172336735987691166473277977412765884658868344918639386657599439920888982554270644514886108744356268297839642134352810046846470504338686294774393459171079897102710368371977613101125694060157949351378379751124275532504755682778617321387413912583659838188386461111029731773912164587969894884811990439110298280706113600727434714652058244623949839398392515418802925990100695026680470036422471191695944740046649440190167954994725924292570490983184379905051490999918290649472543641153910652498287311969778078229782353479432469135118079360339086403892679983602299814350499671308230448852326903556788588268710896035691696605142680080156543568496137813535312740493124440441889908714285309732255115123413344225254161857356335890238677348397990897996843153278839542784232824050900115150546864790241560492932973331855573258144295776138300357429208782798227771889296302144356685551247075347928719451941675405688301057553732254501475482268422271883932075933632099195470615585807576503157650280328008300364976329491639321391273342392253180409794695297519113620913256813310835249649909861914919660327193192961085334512486245519264907624225334907060512752902775303928886148915446409232825871895856587041250462017322481659663952736452797695429184073872190133395035598939229089802641207459021955209887172150825474026081516734303015848403449318953156063466846210753352083984272702172398796033200215743162479933765257437957405218867046293357831102310752878329210114862357259991627174557917185637039375333531277739871261112474034574409929011154498911700119621586113023308800085637676405493903564333743466500533537266536792285861213547848651291035203872506055414890640739052357914533717950545482619920258593190820702630913483844015158982250755493993334184754179372661132967293242580641627662096824122128703462008098770698293819314685617536877363388318733205988641294387777638143509994272385609218937695187810894526519753632193391752498190807124586776843734851757071317761623473885233030401274602745981105452388784230137072492016918010772000590656439419243876275495151204807627999490386608130435846997831683290742590185723060954887091587339655073953118526317806467734955034346903355272787670389543465981512055365954028814153919353605595222762974000421841337970173651182259837207772291049433474460994078176030855920664250335812849912201094085093381697989392671290119109297339577377083969987500462196429727712986199448536461165007247016651068742031066148106296676386911188503333365468913190321793870644435629314889370839823539253643403003653701320099445312497957698435669708829491991491731524822086506615659543093871798263603301714956653524185190508131219651053586252435142599845740818165947648637798504711047418494097436584194811139172712597677421200330424047254046848310637675401899927297502168700717763802458397259563777032189343421544144744110850358627492691261612316256433327753868097979757781563719318681645242133395232490238758934934953675177294229736576031967124554254914707710093251808092484456018434264162045873373162646176579982669232579504202400989526922279582254009926659859222675354088514886155209348763299282162900360723787692534074612842502774409143907695291896131548337557468552816521000033168707114901750762944802136027112110239906803208144606759074072130851017585957234353035579062542865968502879648163157219799278045510591117872096296171050498304433971191178999200789174882668344872619745072099193135262822338721164608943459687658456954555650181642646242747576451056612367463641780985184883994886453061733297915653181850321976363281622277329905362835764020698011069582339970495699809781846693239799221568779202082092454220531269732294870296105052784266203290861726977315421975590149590903505883037062655300857201270494360822071926666231832551381716344273080978901818941775769130560961787663926692712237821985767276819237433051413749684093055173750280113772680858200975567991225054435721666087788096102273693934143396744068345413672821961966040691801714667990959101187333942777162137884258797059727134704835458304819963007821594453248350909164442544154465196938770040836708130178792721363713260273058248518066254967953885699873777932386135777728193419043819181697174406104732723504746217566865840597220108945170506665494047420387361405000092046974431518519697687052695899271327831689672654533430597196639423146468088447748175473735815619901415386313826189911303490882620972133653449155901956211845438103960851559611101599363687338501385600061729714187427770632639826585841270294471663281895286229891448323953763042080427957079631619384365256926797242585536214042645014257988929049010308971002989873387911024955585189499178634668259804516304757276034215019696371001346056411081013766612595468610715437096578531833706907684500824156061211470790905875638656822924132595648297314800046880388041470535183637088046840700300251493500253708492751404490392102019602118462441870682242938281984612224932556769315813741210737254491285943577731795839938010197110934559048229452062650763108886560329718600782320995735234022687787896517092350053950994119467021665919136242629553094432964944096602305969522593208492886290973997723899140171364873204127593339266585910671723898521095418706485586524225846399298499749191301262267061409768508495250407705313949527912522919318870431416774635915338553317087673703019911513552740170900095421392730297946679849707637001682076562038794342394804440692349356056637140484159996046831941460972201124615623700802659734891497574382893872202757652544371424295020665744581154697165364241668674208638939354969977191927673722434522812738893269033157240509035141407480942479684226092107956670840236366657937401684916682473584704783324834719720806494672917927055160137123451096559256656984968243811319428758788935405119962062637664897497754979303969725471186559189748144734196531810501092032317690172588952846995468730924400139599342719228032512952683341038974844048814661961447226695946682304772866784219471159535864497956003119287469423368104825228693701697689237176210494919471518714514276280864568730818573533676936662501670307998627319991752957892484876699532175519447280660306963483870933193830965181914950845368726314471698731176166342034001878872451823773442349138081282275168839496645851370590128944280718010959015531573505194850408851735260636460144074986898552812772474228980280764333749332890909897356642180430302934514799301565282963098847765708501239416341194946469676235202063891526057107019862783272205468565683261504813204213274532610456643111283743036041171937259416968106021548465910311355319922455699509812083497571210988352859029967115500345408494104890986106730249071326742231469518847832883896353762735802238132451220899732482710947638470522605414934637084142368718306361148876589752514256236053182978365356653705720822516028265779729817605657419206970486059279311562153943158590304222171324871441056882993762644210690283910296179292765357148302727598999739956645361446639281263734175617308018717239840186926444493560174917698925691058879568102288643299200287468759070766153345703164114276206181345798597331314783283991461994598695145539116726781029559910006212321608592043136478482698382573468612946374939253860431731061840256593598209489350088294390011890304569910472701358496590867347192267394073118662884589295115712433660152444335312673933708864701805441243762131936458754042890075985384950365166936927123934991881224730868711483871139245891398287448106597099276449052785292771903982513845374905679385553892810576862227484635153793527363563471601250766496095770655917476497009685122916791649898291208992768892834017654794645472798732367499458150120559160151640123869234647477767361636220093832484382382850981214076186277866757884955272317829262387920445287245223634443123060586305226118906112160981198547890279090829353248147042406334135986622850130201337934149105350627705401455961307303517444624114849999537555683162064480895460423155083290122780291158039615958961712321686709919126097035371138069104873871169227639895037327969762428255299435789011773990669983792456210109795924488562826175130548520564975570222518716113853122411962279248487792051570042012606259715838281089711098116592501497043278757774318878904400382312558206582140110127186778870178913474217462259695459963567026661311166968856040356395231234948840542812006616259903374479831214073165413322804458919845241853934959886040598770206844061770280542076151278336438814356338193115153780328809260918378667518116225892509912071481814788159076927928673916797556985554336445775539192461478699507558956610591488453424924723732566037258561765356160371297962118802079291168074886730021768992528652938507444037852828018216876890230522461042494376552079936401311388845476002883717856294122541372660085424312050109075430316392445326814121356321457454190485398167048264543469548548509269582368589103343416001173681728028605775204209220227913353827591122761032510314431283249146405310229024887249632430032859967926198406630295032440038268365031361620274901185087962123795368350802234083114558169935595952276293520696950882026570137088468868380008777613078969188420172621299418512933245108662040087688717556599966956483862996108022984202005162292537142800994389341864480113854365116090861971379867448248243233595632729800907868842374886652805409564512779876834707818377248761333011263770982804001897519738728597361834241646549069589203268044478041234385676275694187690066231430807119864860651979941253818232603911276931893740914089348812735266114835026749740595561027640469550047966531738552175975333612875495914162426978017784139841840512135553264346393403080093986388132277681602559279039510020500560047898137442490367819602361901041906052492002300409983588211160343829189530563110593908554883687619721631353428801645959982787608684152343049173883551302573971037495682175148117437150884822328166279429033495596401696924785637376020208314983430526036447323558200999901981500687549224069603380835188252672016374858101634468592470092325757408488277154963295969012756384398324449787842403462697585014528693672126364798391849515905837389807883706911207959534814138840244554073214979217272568943984433021734485494615511734224845735745539068167551202551808977306280876117841709788776501431620462650265461738855089872211631163987256727025473120781866037811743545510563967902804718727036212057417742953608139941889460274821379064609076591304578980054971140871921277313728237867369659700877103853295791484572429641035660386246519765312524502929876788128015565955227113384636305821412487543622132380459611025459971701589632895585538333081337788749942012913015591850770458749850088843904523334581171797652195732294906232779752720277046563812272144358661128891345861360942514052733284825858089601438259349831698072075441250789719578438667523057773934381502568034089085735496320432607633759694786279948285202908583836978176158544807885400303775240372372617717771852465891377169724370378676169704709611540225686526572349422347289773365800982940713907661525751758719635029605771568687047569186036696825292411072000720113456201505006461254868106540893565061048749229525911848180127629289899425169986469391975116841497692243602534270450734142212452117473915637334403196817152624838086785974624480652192551055628443636261921945447937788091302883422103620227123187522943683920208021227513178526090446931382454608370258017034006145564187688881220663877966448157455520487515007145553960388091859566190644002127533437111135581840179259142272236159443031306249617101701961826367746747957680833023304530328047434339037198456109828532666974133304827822101719160242106540704875430752562670537038500724788883064510987539479048885102912202227761124849791796044690414995635800144188745433070349264652349456342086282748956130836857078176330473588167780678519165064979195894628369952489112381296738362514147663214230355964510369481103602326675658679792630863190924284767168281169144793173547913847935958621426373340782448063628523996081673057833345190148959960731766756948627494671731190847910605632731827812544234905830097938013267729752485738618826310412483504605446483508859435861188503803065353812909634734037323291119592780782516465026002928488142987784495674367725989393619083396866531888643561819109293570159459620247779057448786959478296777423821110261140117027596037109294145245659080371578664073549105982650973525584198376285867193739810772103409857804234455796175708456112260678765275247051296140161642663244451823516067989852672157328560991483605252969928293530230266625002837413802183172288100743240551525287138170255258198246599605720267509544689433493523672962494883933822249612383936534835363560495691145815037904608855278468058536092860700639951574018057124138643538309286983182677103739433904839012284565765380195707268096531397267133161569708033101320100327615158017630159582379422017466156678300987745027664701382840969228071072830292930007637350812345897395443705133509681240542405302903331234543541581469223542257634218752217877440293933967906091100717176860502512632963344055476058760331008728266564563759472234162810841786071069921562661112491679259573802071446706827401166348700805885231541150852947103815751159948651523287868308617959928724271600054978916563812561036847024354243365577499712957579815870880107398964814573499187636848701952798975583602812209649222334757296570572547312134877533323570781706030708398118586638085270439258261037529581890953567667433278044941370619293682583675733934691852554044982274514733695307885093050151448065854281654607205085325325379927806473035288496291977989387203417304930838281536898551727436238614387409254699253344130433065384682588889033989039299635532990111697188431033898559307873541901110434320761232701792377909908890426651280538377397589001125441018869300133461396141343152226448161247105907049082793629817364563030987315384409062786762163834255514290595107570063435800428767238544709213259452687094507719653839767840545361258034547885077762373401598750193627086473183080001165755148377397912663648698034569884643997238116375823131401423002667224853697012404389199628290351714413280797280583440922809957912919701066809613984427683832460768230793881294434696868232671354733765563526091440765607942764371425834780408429242257938865967700350691506866344106422197285161587789386398641764819167519225684169202726050676580303466193365136205595158909912066055587896281771609335424796665799534104580199175755576733506083981290278525155994530603681710589695774121294253808061413555100913470121323499280473003672844322598679876525796650822951334978407528331039601893548182261951049903130029537106069700721646087191645766303246091824583622979844330683026891000010625336735497315908517401729982835390087091711273321743192210071081007511812744257656652046943093708810214061691556068993562063563413196434236176645675699237542078730679938698064283736506229167615436409428645896286756726999219146621990202116209893682284248998740186967667151670939409204619492228623723028657696336239403246251480573408205879724717333899961404489363218476642339378035890804388677620664882361313727137941711667704828657777449416899814945972674790051235936804607295484142258290679790624159900904134422882208625370086879214825592673912821190617926015492650305613713084897442634392684362074707454780099776145143183015408759368976959500274472946583941865533216765769425621842842125286890423435578865994345159423024909184076287866360839116244808923964442995455368106881672378834313696930504816042081494610854832410958644436165139915513965795419465590957247572802459101771531868484777290113271100267237528326875478595342958086543540323681020806781655403095685452524612437177778906392917877088445572343433531492205872181183649532376977682389630915594295796250590729359462841256572187627913454695190067400561609575023068447835430955258911721769731526909694087239209101458382949259804456623824564135872961820962110830692760852179672395815600251668453930214056153274069947269328092831811613123056673944702783356519557680222037031983204674287634433962502179951207479613310846463050243118356513426861252493293886995845541518856300985118241182014536651652600254885970374257751096828811363551175307235094164987906356890278968489941284424822119423412499936847898021254733802600074848068128890627052683539956548220763027679109533311810539292707323961026134562204896336807826457397011377916296511205391108308638784640406609686242839872527890156292465092791283503556538603695111434317085438762135165254834589273925324498323102825296309512681342832472900399223341288312739241003756964363043829885137533666998907028502723887419507336777931088120798140121716632781196033044570177133983903985766322229606890815098272944566137309405829937696190189610436916181207711940718367067705872858974070703543280510524533595221239942493099265817576805191180881849953747746367825994008940370587143286080472780151346479116336831321113994035762715403813034886412339174982661616064012653315636640744088376969237843538415651078236202503827445174663704790816234106633082164139228718902045503677925108176507823833120948986580213790648115122775770337402311292792465924077042355340027121875158801900456521954377689463886161332329184535948659149129209969177095572194195032926289611154200132290165455147147227234600144565536950164169960183443077373786138195605880095540820479721707175288242411244876411332029018239330046445306881075193447079289844611291079291493854293462695470307101876428060244980787455931298011905774485700820823962987443449844223355694905043581798242603804686842848790734161087468708567630908263100143156904881463818263050204171813607393579769019535513663065223852403594567069862226028095763686016012962144496283399156858373472735398150571596700181058001045490778645909545775047078620297250038547852339298908397460154845149917667425043008929921901252853436803195514255692436646926635940711173678178899973419274574727402684572198743184321977521189280624372129349827644594013949624586945655822042679356075923639336635585378792722820686465789727896283056722812244775638504441658842844043682181717532932376895277663467801117937185313265193338232251937853391726625795147036265756016195761147186822145767604035185277127668140544545756723003686288615418978819370814472649477552709179692322194352652128479196622021470674014482410165710417450253471193798645441786971654961922014791665705679747001763190992279322164157315448789949899021875058930189052026429129070400393176830125025426530758974671025120160909481036690978595821411133996452406717585857464690831167297341485894303194521854014256740102026510690302319617709764792351938526701052353369259654203757139402410094564811706163182171440041410457946658721065378129213271667225839682555947510997333588315301531425369326802669817260804475363334608105396325369435332671625730004165062149197333597748345380188049521656734391323994400063976288224119558233578608644166384776398442047400090338543502056792710270060570784194914879730860654217005812324804879924791792005997248223029333128784365051547339697015999446047380881806105575590177869360026632758247213158470992669506618683252052300105685304271920081626503212392579185239037386444085715136656138395810502693156301979581268264957902273818666860587776190991706167275094159131496069954754915835576677285896363502825580515850312916650073792241335309939721170995442404084342276991144718439952462146619909770719600975998768164242987199751313758471738358528280664746365919478781758355573664907983066074540587939844535766246481053950399208816575289135030770480169706318255831857704935281860634790159157373138962712695617697140102116779824377255305740293481418430983452087632531979951531816914770370958626153693933666944833289190445360528759302062232806658872825230146237797619914206154929870378741252026996084312313359368890959987691811711552547244630028511967479250607895912286874109242090757660479363386567440752358360378433192387930557845527149585588694526465216396527511779900734358266638474516699903516957174023655794754328768926516823636699555824269565357054407308871692442797200420471121193930530167897534424578657502097662132614257339561229399028966805029867505958621946718837551460316843242164588231691023020307922451270932475946774869934228760963547859261065174190706226313911763973704543402514896401608247415145762489282853644926731466978356051183193222303033000546486542413086095372941181065705909143337752542359501543935750763213052726279182521864472709256972362265177499141183704488047885644737333217103456039360419960461689216846192601546512178813863914071866665102637048786567028753986735690582938146899877582742611110032069019687495240985000065735833524560591252068925570308675906697771153790730736913635661778703137072658889693701178160123484793445692828794753647345800083488572161176124020265226818297215049871115264790990688509247752152101578831605796474204127544978765323835393066364799431992666526498055728426375330575059482011945637154272769443471766917442057887721266106879852908154918572094198026521196445439078471915455121622413549456152066388342219083251472343178788902631538518098552398474393757196665936637265322503494809708669683121298942298093849310702469813958396147238808726112865824279027167592772141352173202277493524507691881979965374121706221508324955261223352819858929107267784387474578257998931750896702914481968034044348161979069910323101501512987961922595640087910485193639536677186660607787788448490705584553222140482690291774182865278698973764462021334722322449202779964901288006227745110971389514645029463051726689967665745148811924454333660415039735303405679561176749321866117735625558575579658991086489312593380956122192105453479378055004177401396015959219805268307723522232980493772239849756390678477930347315117773313609305443504503899428601309862397319087382514379583440338605976095135318175895252478883655016862861878717351410859982975329300850917593404927955501450877696244970419379499345548814395798411433752604360076818128515692788312644704807986779758483031597101583261531145163678229144636571993867519038186263133676956155360544146698518353512656940215761571401136306939844489214781442950462762863906062584310108047164841398947304934029180714115773324377597467688697398981551953927698307619505634124128492222821195440516114748238804531049669872055677618503277077750582178824687035726609371362918229633938183938546230089271121820107536750889686179186085452103295111791755062572795224046914993288981267747718170560275777742967073381503192889080644342437466967163687882898907325203182355000783900948320752383009534746511028973436067296284575505817165835885467559841140007779935237170916133723989666827959076868348274944778246189505711059810415993612876106341729643553483247933995595317725610946153051039088020545515957188535512581322669901673862170366269222659202433523465320614558218413067190595062464298371805831444969286990469101805337017355296054265027092742979466826544722050163270184118219488123604541468983859628373094923704795453032195851817361601515148730768760522047044804788936471011354248625740768425979473227451542141130719661682940252200363299008139449927698035181291390300005911348972765840281685797124024681507568858752354814738961607548342981678733789409758437618601484650447533405724283396574886047811082760664128994042055898219633865746059620000364181090935406244878839995041804574157457147844534402626635087509243513333532273836321039751248382255938901924334604417397735004125090203571996750832814801745481508697415365879268622524677075119058691892061553747175937800774977346208408989859034582870794815700737744153819437545371636081849264423767091265617277820334523453087096774398417981171401929327436691086653119284224628580026792042169213313326232928474866672498716099167341957171658287748370019551430040621997618280183023377102924837224129270099816412737441093184055878774642005875319237489093045295295190149579188110108024543949648438054343994033806428564430970411999249420592440732751722623440398943110439345248132274261805243109932840394215117182680331360763772665873446035988686553727707937586062556479631383822119634328575586104586378699532706345556545381489850903925624120741502628260086643811754434073103713993652591353713121649427834649048840225797809694562950216092506939362764507289240601482442700613091473932540704292235788383605098426282334220868087395840441624618876252579444760605388852774329694222860059751764416081436782534213943467542530171315697903314027674522483812719445216240284682804891547392355056868775873765787767053834016289399127135091664407800719790455429687860799647367197413004691028292401383625704084866467006437908239351790100898493607892248914565943351879098636076286724338346373905317119770687423040474480264306466007494434068984585541135231587927300171112227981640284916893169542055552490997647587469128293704831100523057662664171151119974427149102306405074534674286910970215783405200414458480213036810956925740947951939132669000162818413439643037186181486711568467442310825065799286956525532089225969379246036553630238406325542682037150073416249124621757124916716784053375938831738684018485934409516937664847526909251996939405922095222629718169905092443141516602749179026824021149450634123879239955653830775046531630162244642910053206826269111951047739368573775239755966258292267066721198183493994034086722724064466408216109016611262682593883934330560702162786685342488297519869083115075681622044714480742677920748272806328939929276360123810866545826003388683208992370278138836746136580966590484038866488773618132768459553241291472269629808812590252154936773000707680505492434955003101610589262464754438799222680655157559788279822933018063534462157289592178760028161074772237391526526200518525932189266954405561437071588882927492341860186858736237301865196538824642684827867153108802308768164021197104988979230716874668506699025269725027301235744767357734680638016757305014467265163445893478431120954876882211100384628616095128722852529241003322939777601440438568861319153898791847955447917136716882441593877191635090136881211314880641950078383215720063648356810301892160176420545768639703204951389983359226870588762157212139776968218881197482017989786113027507504120837721035586874609658264311288631546841497225067771264047157729473580936775892658132451750514306260520247839046261786779858589808057596017071373079144535474807405035686144601019918512560709344441565713285784839464953605977843449716833366619069274088654059483645154019769816244567046311090831804060759278933144801693939816715686157410232927041832481815622777851058065945595951815885765818710758777242461688265179308225749268492286254348578266931594113407636297867273994735198922485187390071830079170966530695710282001477077947233717404452030113859712922991043749705513079814748494059754505307697995923830348524104239356086400702798087201066699623948773098574209949637910552832902608765330854302648800671329694441617000905920788966118859696600795163888780612047185446278467134616006489050694552056925031735844626466813514921852449663041970426896446918620977508964974217748046145423458297061672940739257759432071125931745262875792700101964733188706557256822595351229182790544028677055098343502646794923962164671689048173870501595631083180024483830742783378676611366405409868525596065379465474241451211488865555460531623072845435989394655318892791152495532264538397274921991077393013104643385067057652317259059720684603654887994235460398609840137900216698906666658768967721517852456628711587461982013304082075974512619083851393124537589308351465551227132036110886794580758887177119099199876312393056514902287359107637131144830915849318256039562237427812939297491079908275021439832569061361976823200368022030944171504937850638666113301795633760382531208126626308252667649356347435570728039511298371749631286975383462502950774067502344539460011495335678279069295715652521576655986413375813785069997534088390593923491729773692425110053563038540854778701065103614633288821563500729483179352480707530296703044008723915593673605633460543450933058278567387930252931484503074249821303621995732927400009374228637906491882863402666137249423624257962850823820723777898380945399841884473366933618486134168697058512711663030015951118898973352775010175252345956567633482603692421023484247739096829673687238683897636172491139387572151340533305727308810660453585665478918644128066833809489705828137517779051307186336786528083687530153693523246626131039205060335084239459771938341425120620111551950304807005756747363108630075944456008039481211803164067575839931535798750799806740719134250871688647894717315909252449381576442749162465586077175589133133231239610793252502528848884517997602727867978242096868187532282682899983545204211421780481363241589396002327494471107083160947150743558345942079426929421372783726408108151523110884914281595566845508459520432960350547769950049595411063712147915194683468172914443430784542385835504357866552303861795357158722692013262044387855949002453212866029846948497412029784404589673007099811870300940075426522380424855473994762737550610405090378044980740528484638293370032307409581910335658850554566866243953638611731259745193537824277829575867406439239081860945259633777038098012509198428919386634835326788793293623005810544840341793450205243277016509319822264422942110691192784365746182266987162371992344297832299934872546233249433026802142961640754319550533006485722770439209452487420805356847758611432037083253041846383482045349286480999679007336829554153375824624846206641330756537665902114954562214116647795178672894159266966378211978713487895916204397109393741576683969612969436751109379037406988351630087475742279286036909425355989989147309102929725965615631779071522054087345528738566007137375643498791847932807657700586365015440862482017773118921208856594959918194488162796874979157812092595992019562866372630698142621303745028436137365238734608897123391222310966810850021824914617583289926868649431812200192455119149348776869057355762497214232786038587943641059107340757112103478123826889902222741829777391072435032336820597861504570721733331678589270003401718627429263990943323545615927604075430168156869283833801034526130397828641609872545134505846302389612128139679145924246229411866649577227042817297018352575818255708925771489389584094706238670986420908937664378689045012247605817335673356954163247678963208837454991925564440298349490082246643660747118924011440681657435217015497082766633181480003142134059056533393284982263215951514004127061156377518973348167401839099388309917960565936446076229425578803424526438856304909324571615253847067804295156816763812439064038297505434267398404559884103915357026531340444470832200039766985300072032939838747896891617964927784059121435678023948586655548252705011783037855641326854738220705776353852832751468215924429766008167642404428385092691432852799913067632920814673952947864861297455435102075517083372765366036600245510133105030651187868881260695197593663395093746895283632805267712628836487927575860700072608444706354384002745471899710059714895674193756084049522302655405499896419540007367137188963066932733832390395421901247191127447286385241847853374780268778748451983124746086269370634445161892931525886509091874903938060213325524307589911488980563807366078213661696791257831255515801063688145902933692565227605131033318634211973775196564300174781865870250189765756081435608697529342218383391308758857833714953646875437080444108948080214963844581764169777092341748033319032229688877370941227763522178002451851608669209934653551037000522224804525935237103793671751534682395022451403383671578624237829535961657730461861085161448498413909132378449075769114476491866554639567856601815033218161989137356226434547185492063539295422300266903281858711768430527483401849451044687151992616482012452971323357176275972228327817440836039332006498820587298371527646319821505413731415638791246709930051725232139544125605736935514521984632449946482209869645985246286034670629047608445987382274456799525387343156784810402860403127869073503586302307997372010108762434714084454837642157008400302051962023554001030436355676839693639006811313028377740298866382216856710745751386833873666034962114977283073688832648718900701583678503652746136958511007534984394092475621993063704899757620328280537803191903434742678065373615855117798749785719626309004127671900399508643361964264105117984392221676295771887707855050265972366311839583801261071224345484721231371111906443542322323306346179417550465621503910858597046454547222818332790483955832143646066392855214997496386432838592316890016940283081945618520076053254883309939543289363604659427293220810044002176741593860175356483943341725026296232459822155029626638255170706445681385415052744362899947349726601026584365681767424606757928044216226819050574432382405935170899828083323443544434848818838335876838358225845848833723385379292061547341535450021203491027627208600765394244546741590715487544770307702099220838078262536591762425726572504935482652803741926065022474340420540359445339002493717694784793090432897935315263416270909172650729630639561783976418351976138453352075764994194308470320004628308878836607833362482909999855812615768366013045141004500452996732554923974863838958505923319790012798274969066465517824500675847922378788130448788033261775791998971765496069480314897519946631836948935773245144780584670307008626054773664524219265934214743331491402105128604829823277027300974421684579141970355035779789078568186045411109665231941531275443286903115137298360366144994280950838984044633493480460523348111226069507311596177139428423478072906757280806196306368284294184368033886457300004515453220076179325159190951552074231236667354329775766771516857999841270507202584596602756598571926387295833575057352245598018922517172075841157016566012200093425366793455181997184262714224624149154751218675783121859039085261142557224286717197776726069860163845342478501638176667153074782066316306859977815430273339162196305970865583065895129245699577731047063092819543257378011284237956100701203451518026756270477136286323872295653704069756203860286904574928060245380396064695012463294548773627466712354845307202485765108747098653072505004734807616528824097871334603780029275477662457623537710805952411092486520085420780620534277564911086644739629600361484302365929455262089077910628513065758568255706091976930541033874155432409258521468948157658762542348939273275638982495730621554610392043198517465888515916724547642708700408287174210062016111916577675163670285024757633431415056195217770255981741724826333251161271263042323189374368363228267175094040093784454773264162507554462572457935451804749899589354118444088148376551497210962104268792283448884560227694521483009188428862236073861403203620749735663904126308937416281083850100861668301021044061868577491733665098911240160639137573996597650341155394925011517826252506641759672145833658520711344451096222060717371211513895575669261533910104976199811436979422751238559554166608915522939305398293366042543171534685336140561511548684854786760187689673562649221176277904691309763104125092431232758690338738901477224048938491160182740337826305260616345245319241980996682163766261109278890353570986032602765941046535995948393796349883089694628452602407266249311399564483031859854960855712271193681963096449326892116386102744809215015731973040040155050386120518297241199987447488203116049132995810230247157644041939199192004193055200719323193147654699081084558559240827622377016708150168993288233278745872181864184353688409587099991822503128205017593443484737619949493031028927009914771821147726117974200974960742150407913333732919752646832437815009668354164813599769257941431459237241381240473395155648273408414054973903276185441261484079503160802107428664532517810215931460489351877936293742898414184373739479635406737171849908266126397944373321762608492265277377999708970538941589335092966216561359836301069658035831759101803077906732027866023896418018662805914665037821067962641682019408190305236236999157588678024163371234714463237990614783639013085499726912672319426192341626699104859736564029742269671796022040242531851587199383930815896072905521320803444343098213859766577032024975728749699488706061581984878834851710711306994422704226879910032670351082091074476675570382717794651004185879851853920078989669423028699327626571289951300718439822013894708843675480493850849368569371548946510812031697728885199555768663073789967254920435242194878360775567323300929040901657806593150423227466007707008684068244910455418451377790413799750646915283336764831947392928161755675200851476718225805029058710336179481600846803452619322937396657295806100807054479622930773732427930065649603683893892614573718710633145496564431321908767570912696608131155209852522695210740797333527701482007903217180459328679754416586715899837968475855158684450801179016654847805997282442592203360886862353949475366987368672153922237094544808037487883325376746347390831712767254845377817792631804339337937623595189714954360043962360657171184995389894814751018834812759604041237310517521507722758982209581993196350401538693752421690769092742173446528701509298629431152268848766771121782133294154931001770677458054655086261753067344018972575890227434208713194968592869561220518021088722481380713339757208459054068122887146974362651920859249683641925593830275905302618464428940378440694151075665704528490751503257801020384819603253848700731033567988561445605410071927780624380682321018556333108018450393616878532031605341580780436288023503986925745258458192646858159478470342664443045256568200924481391540720024523189750553499473901318843788623670932196102715642482935088582347134688879204475887152644579506460418259104134885612219551883930807355395513887559848828469247511682056231351849294104698099126690867389035583900805301353812728540917206348874930870827165388051863847230971651597565999973151070245339694650102343306477390752280410078596667065947132353180168881658168534220124509392403251712202410109780749151979640300330129839466864991982734629708850174146700464371631679647749205404081534897016310924004512698548328487518815681235450183949129927548083020060736321794081921383077689064705710452277174804757856135505000117569120895818463609522159122850274650280731495422823606493770292360149300773982809392816216343807083267643746614243409455130490652014499635054041867405730290061481599433058207849247962050627059092563474624308859155822148620059506739094465002948976085530986936661711725754549204863784142447914744686142681228660219556292493316977368831941827941699770185016626629332797050943193020782242662940608730391620501307377542027660171914649398584768577828220745739569148687624890628290018771598429279284267691452044229180073892786543051366465426382662928170052097032537152504116402401703101680703442423429890629254188531208074694746011966983116984982005730247609002563405626141027486847497115610331121018260965471021172764932148223568524177409425817090360584157701466118084620188671138765246356410402542089866901639858283141269047182602039818155850408803724494286529659577373918187322441299526979288727323213765009297845044941900053619152291643765782637269535500122330554370161212843341681201421748138304012763097873880824118212585189144156074943620770354500842117071170968668431332332460485508878049165737622468833246810287959394291712772971525057255927918101049786871626365856049000481079753433679390795816726685125334232502587170141929641999702595042760957507532866899046956083385844447363152032367116920821929600345640307893611490798986200096952236239579870080449816194127329954973022447751396511574343395495435226394076805226123618547480348830238620708917184903278411173358245397346754918628795178862785948052750561319046793786448556718710368913500870243466001506175383452234458859799423316617987255172063186072678684390222103704077176057675765989734530070377288807812849862734433368639996962075861618991224307755148520213091194710587730264603649811351054890449812314510582233770158930474022756080716503517751626473568543005243872751807621416542168749837709996626089194956100584769198889788998439726786426252400334137315107180450934344225352354842469057735461777257715153152827317670537979006887996736214654591430566618637952826849825943148293090919001635028965996309130033170536808925327370204356822999796164363443654050913068011477132564083917566184704899008797423844099162195322649355712360463536721168414792530784482514385149658189886893949296038818342195119513820998781612906733581094712962628994003885790559224844280409507882718640145488539244423300897436041766832782856226324863654459573167272440701281814163875470331152776786790127792399744302280728013752201614541128803126445316316139700052838820525615597337771587840627784193342443931623345557248917364429419312483779921148660102903019466458988094275925364847780060261162945299377176857280656115799690762722083710750608297026997105100966636212365939110151890495297226304032820187010698421797056277229951357300950716773227178706614630408446209438075898746891335854005249793400014880100123352915404447945258059880078593059346559383180606008745516636527930148986932251174996818751914040887625073680877537916415169418457433860290788109105967515973424347549367451271855887738839576666418372086382242086491958502312356946087081015696223866091841521189686412752850695154146888714597256036320798968442169894572361196382598307545112165644693373305470001591856746224596498884694889335547446115373459377717156733303982835232835799621762967978713275676562311447020414413071972132964558953033660447099019331446439079375042284692469100795165432254915205267024710007096476603715254668093221346731037984279892577184745395297953551357971433058571320813794215489336978821158848517876745442304514357589246115379135569643285689071564568844415879578846470993427368045342934071040453611482987092404491770180192380184914000708837211238477242065222096058923709202985203630474702406759552891252483957723044825615550398185833213374094612515991214596795433547628646167707611768611130938952375425275404053975027647802172288470549198536789109050974933316781422716483934984797143401871535227671935472183910887961932621942939672526649432179339298390727251742920149817798582115323655296730346332850860692522202779046260380286134668036343131237747400118085131018952946565116295671940648993517206298472794720335658093642263767661992909934021093258568303660994020742417387747842762660066987379002204980600869563194146302953852963607493696358952105584569553451076828253605458249979451302054904450798313553329412360512906838170559746232186655814461525162268795877761113365535125673103665815402244724853599985591839947985900552106446962270343999924784174870729566581949039723235829225388962666923994060144333188926573670695000073410986054788451959914244225365156563300368112725179008110412011287919131292824935290180176901682517804276339146616219630264623571908515973999976154491167117620257832526394927991926398404397505010698904109476067729014086060090436545620539519908714050279006722815219244121606276995192579193077713467960405013701818055541765207746500714572888624609568878446940717312418460079342002461341993234643360529791569705856831207496317523222197771342978122995624093070203571356965015353953621554960134587702022931518831102635529167946024774244221316044978374320388184685253281891048255092881550309273818240629654378579819289456722785939916582849704666470656404989584043333998269612345722857056708270977606723696472350211520047327076240072647012238804267894028501930583420362497481192464901153344632589594532867307007285449402977878714224485589298132319713096531063029873230861142263661282872404464971550770279899494726281889234158872716215901963185800826884594361398053627195062472362353144424735145413741894322252493051371714885944188701807936284729429041917476850677203710811423925074416615795983556054650263608354061231958970883706731520028189797653989751085093390030061904678297654538085575340502365039554412405680414971942424239116316884477258215793034464565634046702011403304412765036792568150484162622746613923960152405789170326380718501980328365551188390285706131813021866039637364966479853911274523469799731238919080163908982747155539376444620275577989360346333908917169729313009521606614879030182890807214123935069025626821561975438095688228526007184532318850635714276697352317574318078310513874684627388097789565667531193018075168998935704535764975787415074076603293556517604903404434718034336543848829123934224613802351508249244748361164255539508329924181254616905083716965944160683021032337952943515902360066039945191193822748763944235735436146357509426349363220411538171467388271770306273206448356499067571467706861472792823295741425721670798618964755447114007354897935951977683386916368943750880697300792712454706836404782621395272238642156502853484257324445780237944858340796909617356100362371782364755810410160012944355944930522452835939190919133578638664712458252396566397678551873580053441580797354999723766156474886429021020097760403109908273634470920418176205196195827019851487379984621563828006659757151277913704255242283781758023838630186362421515620177815285084416938637434678161211055486350351310366072457097506003554767051042088821409534392301243829335695234902034965908235832177236771289904299448691276952941651650585327272292956827329201027520532645776694558184933844298184983281270009653125456304719956706139175215966310764261374070175382644510685934000300212193870634838039179902591214708133679570550874325308622346865285908474692048646134280032811658259003208531638508315006323267266461116150092545271859456850270423478155322396252853987484694131762678160405100357343282776245830209963553286101989009377371839640198859105361568327782339752327195869751502300547344842497794754844447860489340377111247297829715623185794265732165311006972772758543346243859401156438626307752652566095694045676738867042210223684022052377819415060263489193711767400977309163412580494151321951135606697907691723077990173551770086401294653006971023817845708122404031199795575606387192211226646026571800548558578257710557781656768820934742528481833403072868051612998236576410463365272142806865116664719081303198469379154701193102522960933068133534948739225782517785486813672259486533005863407825576661853732689554100940774526276989600086014290349253850643569031441069132603250825473107930903079952823618251884285755599611545809967256581113612446483936177554726918330491934185846587738436041248273553671147612233487556246205261263955275256556337960908048369372490184343274185640096582773935673234450056625418379042150827154286863882143100781635130460386357920361894656419935356981000447427849784382317637481271606601865088162619890218958981837108867943227114763092136228700180083451293332422322209087706250314706223133215824261249059631082890948442271198961907679815266505488901193219434822996212466883198137124134611612355619929430925448679515390201736986794934027332252093701365052717361923636530973186743036306533379667856659924258887120168692501108964909842224463367009216802867328934061178466726641017798254708481499127805828787770524173174172228170956216428007577583393474967592613965251840054817743012753399505884215484375942563407886730416920106595798089212377314692231887505196395520631408847010900969225302103279779554530430492932636361914970822007261958264422533203962683258828735862825319099267221709594353233738291161803584186083990245691833395997447079392990949355933298650519514468359537941669654690246566013716898711026973424956469864044104000370481159539315708160537445657395529199674075492428335785136613343876023716506513174333535722751552460168392323542501470417712058904825725054522452640526310006709191468014624999120214519876764934987770202773717662858189665687898066374772325826821710340712685876482890509353445106709202983355743596067383791253167202307603801551044922105775679971196821015826030361077032555760161018929687664028443388075214834732087178563262290965631404671963185714991314934939173236650125319523007734739361205751174596287639322411011021945830011079196178373924220794060093758333675137485988563390946662901166027161307370954460348463096550019246264109540358518829135309186646514629037555692379836498268455085855911263987111191710684833779339238063047525028438271437732824338395184164420010192821456623842696027281043893262584011960629816248941353516802338306851857960411212017216559827894964798840311563539971051845148888638314214634073454983381128796223459799356205179624610985292479201888439605780165870731919010834434044039127979881014907523941101890191621285654352232896564113557793185322647837759995738458698654261563169747473789402265860471429890374823936342431210772696653132460687347718720319992933476672688936219694218757422541738053512319858648977608203408057803250716196724431568603130257377540263696777905698431495389472526443224590752247601408440687027760126219359455704478137637471600603300475497296237015886169212685274917365601880129252279767923331479106964623063004826102625263515171634439537244639604017718107468098045751439048150675291872043704468531036042096228420227770597800037656675255453609081395561515677212907034077865387055862962515868761987756430471525432002876142410522642225417050082041709421967334627757443483131202090694946566829282553656374702694411508532645246086920108288797010935676076234031721848033469586931798006643449499725373145874390832179777953979027137794368564403742691656466214510089632139319955830069296130866256538655786104165590831060926809970186907782759477686442239704259539999783892788189192712950838486829017392039661639475877696961955557846548140945284819161764584523547508658568055429356274938517884094484340340028269554660585274070404576957675761084407198613885957722646387207949551852079073017811644310809164128975651160138701263973166378909063100246663290924185435537677189814562756004136459585009900139283820979526340995467813748550538603440480805461793680391754310044658309420387533538498261696649680906512946035258476373095244824121118242391024677500571305752934313863841669379646654851131595598654815856406775019507852340788776536758616554454529420406373606195237775232227434646803378165689199010756050533536191198126736850166630403126212454403641589367668588939065336517697707448434113184097759424260840830321158479625449761691113136115821983195043790073013866636315194957123546115332426086729332723045157177121046543631836626432365292992688953919953426529355824400230957511772957200019375799351938203037487376466092765919230301309205755761370958819186018205210721043576354623025199048352320981049555183423869378721758818156712870328894857941966652331228989187321794791468366312184910009550176266230421395689174247146107135694805791035506152749834495931747127765018655475058372485457948983186288895781512071970387996961261558032967764831739160164861542794390834562244140758923250652975543374592455871546114381087593780945171388709036538245417218999343268606753078416056555599081390102193013782961690336548609091209027377396477968080497253979199711819788677181274146933469854215297681015726896947145950022247308289331308334731711620867707936301609069355700255732276265214245992331937067303221163616287899706601817565788713680036460124065135979651903684142419027570103555694151623930930756745449108315315250012648226444637980007233772244318452702126535096994702549933592942434649813627819896169512031538688543462739513595113117990755754910108066347584832811453238268963767227399142421809899349357706248175318937039837824422185334782636146727840576281519098152351106733915811564063765435604929578203539852082955699038015025234722188888965272398277684679759938910713352170587925664738094507467416868495941035288608596997416276105902736321589194862133500213958224722367202547896121983142311898344121653324782740809760964270401214591845396822554847366249540114029572921967391415167123888111214830986521715680085295804546655157194952750296610759798359557262956071730549494889245664169999051001729217071355936071903115141304982047275868205683993236494133575833470248492047907371321183893162376018805946314609520624513954549484129430021641354111657503575063781851010939955966269558307146085975568505745898033757482211435084794988372908162179774556215977020937315023164456711860717572193937501166728235454300008161147413310520730049633066602280824082936501635440125089122237776342242242565866817389871274732042856945704974633628357322295426641322384165917371037171798228532216868264505105524523266626060829116721991841809873059218017523227575968287117705595763791056656563666887183676963500092097687684035488531404512879362969915562793244652178739033309721342266118371925865887488243488451500532901327071472321680808934608805137331969956513016694757678157801129669809075826581315270981303897481646636028698348210646451976148802307538652011027750435007434113135061922146296013370590796450919298143981215967815812017668495669292353232997377166019700763452371181216223630663965223752392754787572223749623722034866139392850849938825500791736800392102229505377359529316921543237981387289767104476954992915171571905702898086836700882376061958158555679152524360877645219350462108886255881630842649195942749068681208048100020415951714378732657987304406019837300749022271290632727571334978004389317376944230306657084032734924789507866306328583770040898656177126510661402864734790199758073794379647497757175470217220059277402599976636253458243129966657601188389638763495700497298999814973224259659348136481130191605564397000468959419773656479519011768350343175066339623144000732853981328447727075383965087390269531043129802602596140963460493215725659475303911092523242404630333843799249967190515661212474784078271154643890927232635663863584145871553024196126204848254607587191074546655419213764980829272824749252078536530063072928488038743074674382057249078069931271624698015645656572801790644059966407438556581757111398025864805649373383079149399397656956360978061013962260887930455564674484203981914860308083031898383619860701019531145221243613236830841861584844087412620933231623686100823645889136750178456506301321623975955476585056416721375418854280444137377175708984791264244651215058685497939648085228034146664393061684254664491949956207586937312631120525973942864434040764176985405816478678890576293518747372067528849928078479542584670183547582538501155327062402757854055484967098515721793767702816192377020835099840467539581509688950480263160357006146003244915634204787543297039355326685868816574347506125804471409178413739599476226793763480206522264350579549157070122332010673355334992025504836991661309744292704343298245818586120424097340134733413109180472679198054206682931652363827283063717438522040556277249955165114878128567953033807061084499624105982075375569815325973780266307480179972640833229045664149039708918424919214279439923084170150300700224295627145389202968162887118322591581878390540612222941948198853588112794476630329984203579019647853421028487522813692424969521275487037990464069877591787381855707609390791842791635595150785625617243250296046972175275285115242930531659835029959479957438358093301343703073511947567659008880230039588321292849708929349067834031359105157463992327265847255810687789324102687196043761135072986282325544697178006774240113920707206510974740344439364313544497754669568913621148046242341017669403438252093298585277161069564467705881821145435750991401772876108967296340588251649289198673257077543141493759724474927334231668705537502372708189473480612509230673837424000966997587337811106535317820733874156435539774828849202463250331885693775553305222320532307556106569440712493865766769939428491728480659389484326120216427385388940004075684342931414565612788006412091731886811893313980268787635980144092956050007346746450278825148933143205576559839545708183724020179889047862891065496318627550019234249796118927659146005965304670599855393809268452025800611330057751054082027878507067873221179368276856630486459072923481530667372811204589896212157044664238030575295994052751080460877867048010515974745723844920390155108803165737940601259784973859326297371853676658962879165955556315372795218508565841173820106405783723396895346140472178752044895770999757407750543704851734392247361415708451106838699945890866383653424795771177644614414957945926491899254031656095235617849963657235683434677935955743718650586882997163279854506742323363764116267894587021082917674193933280199220654021641629111829203079618968602055966524625468266034616402471244527011105383889315090476535773109545588369434968176338303001272379022232418156522183775473827943269288205999286483638011077693774278594590673701212671868263311518733049795202706240284711013934794071731770932557860635384663803485560364749252802865220180320318341383155617638007213587710133845366279100742681491832788879236321164926958243806953505898122005131040142293643635158487684054779541158847547988560369377546578937329279429808638165803763529857368741297630339304257115106048401996664616443862109264157216003441237951320205967943046394370402379387869904240899514612975085458980774946074358331759380368721168952063787757831033355901270130472847345132052088144160676428457439672246349335154408214712535862906626870771643158401966741948103903112879117919667094462371192609816431964348651570080734036907166438405576403242119139630014580820780190764626647084113869213827245586003884876187252967798313239672847940112278967433738063549994650094210508077929736796522856081091682289283545688638690623517273728747007657709851209298063715873772810445361413662266338341604726267361467916781290137607052538711808509235793825905480381835127796343048444748071262268986263500665766512776485950320979214869877990976492104572495758236853732036806171368218995259492629507454184427730578720278967596467296158340185611434763973863765798742104405302318493310477748600286429722333381253392382441871313252430153998246046905512021075628155382681031300212098117197177143433176012501029924471722705270979943699059693374692623122691269078128570787753231354878449304299870616869045526694581442303231252727413299274793711925165004014762524737484686279143838238808176437183444785544800215698203819483874377840414963626329924531277862226613930222397795301949344724990624826363572184154890210016930439633972727504920049007637425154057531052941772536607562921348242260529178327546730263918147619154924123898114818930894034810235500023693764299057942523148819701063881933930898977397763748525919271708309819085479961791430677452434562978493747648794503828799481420267346018776949070646236019736511574630035213683152931169203916175924350287185865228768927359242548284948084975175200633752112688521208840498714975685116163846851673388630615671427890416634807069614893305289891444575843977412582761993146281818892650644423493068134605967135868619778539445750434133702881407275974062914723974008204750904614069568708473930903647313662799380100438763711966270863018833894881374136110263565163229629810847149748398165472630021080608461201107843561136819520843575862963261193930778377987372680749964122525105578272724740764424782194270160142381998020244950088496634894254825633561986959847264531624090025132027995330272521202297770966793545644272659843591827623710141347015736954403096846226458353500019928950135639063812179622034246632266364262857912395985140529848100287603846569644348059421696153009902605603371119734998606366908783819936589284949773832968185747130411679778822727806044098151752817451945628448814202278015553584205206999746419842816867128458516574297448995639496592840856234649344660261274974393684320542540256013644538825985086405236915571606542298228899927920173993687893371849338975013614776604247956138692787741937382084719048105343114792165075632443240517368608094381823316099674618934671064123114387683081523786187594074561765875490999386094940628109412329707242970256600913689478250254218238808178885829481290434279196511128399382128465524338716210062493152488374035337732686227509431612317158797458723773215500659466053137904971482713312917109720984483367871676034520509015543467890561073900035296941633907738351160543237695949345265164887033368667912657452247892330882247318213378160258239982952643787153004749651738146976219369011115623643851791356400961515504342084898834297551954267274803392346819901814379438948248091226608899732304170716691353735260757054151934787428237439553996950372995764958599000625725691179688921470483197781022954149648524611494564596240591570065687107820151484587916168671612510897839462852307311295926042027789928602714641954085882804976664888209574306816206061770807243831439174326066412318034290196422036621671836452303566620572723955254097578257819533356925803547193021737557151618882898625033209087304612645805706807093804577484430712242871219417091734450731786231032978241641470650508228376784952897914455501708359520315659483862173292429753373875863886274731074319031060273378509876489657376091008878741174947342855376989146861972911932071651949941020718493678706670281826827522244547975792593565404284016456918314795968543456040663721423582222947975171780263255444672971198373191651922829354957477473831392464920949830111298001154808784504749964518152622795696915587341144657538126883345866679856116608275010235540506902558963339229319547969815180731935493346644228370880105114417408843162209816132267393716167478389003428755816908217828629186268822872424036113515157670085805714060095085897195819968645318650495041846725615422939685815481096555537939116550402820129193742580801512718608839512338110915423898689341744024141516058140999321738983738831672240594803990341576063041916681471231299954434351182895558699382969900641003724998219365002760772049922550329622326730026648448921617438544308861572332928132989492715962020646962272478591818254161702625439119210375086141294889986419608899895533551995178008423763920921546536415124986277411540814647670784099583268249471009224920728884146485016544107450032221619543945006181135207322875369955451142046533398669255711921655784755321407748618998685680922537252873020514449329128600250873705955969538646098391282237325796497329293055161646290453342292727359660254237449202552529021278073349239702473249030589727044124168849076381670768856437111600548990305112020515341339015319804193969534624127113971600928976668596656998569294443301971994062034845413787459975825034085669641050830418631773080569451059429045997894515812104107348369048953183321314951650317558271627522206925134811714121429346233681779562382181656238173955495479196189778800352770568808243185301514610474087902979177487037280888829525725153821599247933367830518046734446327072315656134160751680281701387999673555143962673839778279997353100824931406764966129828290490969520132661887219386265634008258802783626102237946124423416358068728999767321601499044508956229037224122362936454592452564333443208089900316928448012516754873520738210514998835360937517350713239905148050847367941064753240312196325669924368468025180318318471578107977080059485481607319727651157212350897602049316093354328396186397374076770003760755625721097996542119453300794994613848882309838627832895434399960401239684886768024877603578299664513927127281468288502293415397081854084985898155103610236094128311017794928231167003639235334994658464232039623312582771230140808357400463119241776071362117787540868712591166266788968096670195850937865347885214498545425144775206942661374230699844024406789388831777323189388040767016700891341249929920423772376414782154826999514302050196441593682466786176808835858533945953671240293063227250724234487999625876113705512032335014770915680929222182235056681656168569896633667571152077925703417288225824174638390663514795421426360052509997539063924986601217179567236284589093413103302616930103851749253362995819160701913322034992091903605982301003130074381763341716119213171643245627156956045512976600831819653093227753980756637929681467769542948300081711004616040825674718922893384551254250218117852755394750937587196082161264658050346770925905175792319221283177003737528600293596480810134623653731421594048746240471782459226557567956731192996074932339686300378237650128668369579481555899821150575205566259399263291976902090990050224716759194625662305590697717269616304404073835673583912056686316310045193532486551955676956360128562162599705439254818893440960918127922483196235060917980433519771537197773611272950960743175318455683514284152553069231478371534850056334753645800947065306260740059127788837308319258310914061499160273241353534288803880925269519806248864673888748990948578203676442053746560311898611690294079356549575685693907330670113265546375335540212998577508593708056524241008613080695054840766403884364545300753070201032043422107331818488648598702562350398135169726286658898981196212335231906934894024011102262514915859209764727339307170222802324961916136397210968698283411806233002132858515910124912046679902588562227630224794382339541431575483905228018163626026468393239823318255760289657540725196264238835414974503455669938978937292959846571509640196312694775759356658325093723619111160684982901622449991883529179253478575590795763415265971025871481923245797438080429516148101887047928470125254122897996331646740454551595759156592266796472872840470649103736761802195874765138473317985018637450437993484440561007222653849514522912074455118908985068098588004298062263969052893979280899965319027873043673473669418502261214598256406193027200603418968438403704896195973640429733912746709949076842468776401674338353381929307306846432189543000918204284239990328627981906657073254162450698628718006813514996529278318765936881268360960251816601058248318368297500229556442551506984696333640526787433195905023010882452924400385581461969449202177468869153698890400645688240792043272627119899318695064324262655078030671651244827099117239617000960263254540211397151779390906776851646061333565579748249206151993734867346504876103951005443632558334925797455551647747258812616210499830536584996725311590202768922757879855571714511771010500558545601175558842743370683202620788365607773554570268343502796521704042281511131498665415643126032958403032914834363260227213176987818362411483675838965429701126763316325907614292864099296488892273910420572992761068443087725768336689980411531466617400580951093558677839260574113929579314025193066283290614771558823571481764853003180809480645618830329360120210727910525840672630150783158791841637873803848282448911659751832658752203365155471513605123684830284454954054354680164021207771308034388178967375552916133667881577199401362997644328160285012558694390925066043809755215626690651473781482385276436161847073270326537854245325554000537473720413068923860769586776114794321350677419312204999185605202252671172149463928569137776799871120102619840840801105963022672508982582263550956406120258253605169256384936757140798788166152630945961954308927230466964991428616423782382721905993937199559815592827416762256742772168306578631145843379675387185932106534321826709183402034246458819284422188368731738689712281770963815897643754033612840298078599709510773452698228102761049682537698734188941236858240700118695784222166658264782551474138962937716221519920656852863508244180472457854030923442862059515364815338582079170897102971546648987674995031523599338409465759397542331661453251371002801094525094824097082276296802375618534653684279819367017777674326335179687058440644688451127272025560424288217716246004410938275287965002769340546070325941156703726826132983105507016510373070287563082528189480568016126713453425638925659456398103728651262437848115574015958010688173543394467916784813322101868106667722233795671143998757222224938102933488314075690089904123743679104088131883414073022919018261785461691223874114804215324227856715176287291770538892692155482542675044834620011923868461726000871622729376890666243583965520000031241829113641011361894221439032853155217530019526151835723742608342861838594302095042747630411196083701568597459910990829092856648612905866816351322421540115057566713652653671922869471837501138648351939332279724173540345403244601378368013014300649974549754496267310187353365456611848437983352765003577285842794858313119417903046641172567262334299721369863968205303787875475641121717402647388297761041957888088251833670192812396190113231471074313744321510735687823372090517314345771941393929578187622788139058749029411290196460858299562352782625829683094578540669785539080549649080243788280966964545806241821869156425751475289551391547531028124327216830244223484771665941554868969819601787194055567426366381194970824006120368166800476285532670278785625799028205146259857297827462200001050108221668006713220508391503720409835762342455794767577505090361505818841418490232969563006768620264844181053928256969483292047371843868262335545859412078021088386579480364255748005987851084384922528159827506939860081854028573387441965526692995490212007368087592194569205547112116159389442721415260435999468905235834708072684241700479502695578863758147859379200508204826137203313707811970344592394787059528961404077331074195113168860177121609744158381158589353141648170828539364314966320471155270272049392993638299056307588916625870326778274507372237892726328818367169321061058063166895175216964286064912018590200126488599464440142508144611368641759512708432437171032912619055358296287234162005157672797603817530037416842050359353220477656503610809603631047547127791244456873353033242715211120356799995973582148792763700744036695340316356455746707863354316822002837187709154037293622124851089086640143127182942612663122151019959569000141898494314048312985440698224184440078733867336400549516456152685173202394330856463553799032911563744640147698354890665692477898469242231637886074899911464951095643049174449208203961781271183702763072334318676845787921218943202840722814281480280361601851649682779818690451681099632462189660740701480033818307302418576887133069966998112922596705339943976024137535708041354021650947092360051507504842718679793896968667316760618352470226981435178650681679157693292369677768075198182390594174806167324366321534815753039395988126196491816220627611078004362472447298638263130890917065988376539240260241584207037285830938015484564500952201040499012868266750600472973182941276100757142171995366150623277611948245437371651795274970014071481687117653122042189727893045398886411836794343604826001808542067094892041709691495187617534927256299995015343867240378768882860889328770147627392399134399145512072669237454121580636677513921076917910685015550185481126132671914640865046303847954104730318524201809537800232712089264158995216453552421504009812658022285138062049327716952984498750212353350052721798371643920439955854671999642931309751285331686276957276706855347429460217577690618537231803391588358730272403022077478366366890555209974453932028273410706617670427003242532455654907894295868045901820213293715597825307069638340386428808514911625313852284561548265097635177723481549220433467731919644716527634319739585067322013075631618469145950287014162320387491154872560081650797178774301419811259999864348127215727969820788352373096698753983569876087873809851250062317073018701410227971965951128260359553709222913100718582615613635623798002322951332605515950362818238593684891706994949105291586792078961326604189493100485309747895015641022321142680632089402504951096639330641045741541332776620237328548824070731252447458197666670353008142699001935265746700762404667317182405631341555402750042547123450238660756091086061357137122458688947888966001413705440603517896172544010657273132942927148230906577275608046913262444716546794062783846843459937507250858582067192743977781456273330344712720661290214047380680133742605389043337255566441975662325391181114814806969138518145294012356330608867132474131439943888380419071648597088367281856100934828718687654155945515876254327400069373362650785481387028866798369199864851571074459183245081157445141786079558528418992253920349243242231321488022537810656883740909606264981005486830367651422518092972892697936125247845875955112659560216411693627269052511998808190542336404988327871076365456751433178418597516913449763932766598061620697190707031215039495525454158577709818107259892184178462865091154308390093088119583840535217153677951880359434264323612296315102457125989312275832152585925688767035415487712547487136332561338852027436300950001339411898928439712621609583611003094478523733024909160790474397409033251464062971636818136876312495311524463591498188446999496081394544093442016213166302244738387638604005302399043037811175470633794139897439688823332887458922283105646103381210219385451588585060617466554661258821280070351858076861158884947337330116228018525019621487830007356083009473667841453805586485416788366281756088671335969447987864084982725878445745163763989788833654016130085193814085147439880055843584916724070537998867128482604267449885082628001419261293054475116843184085225176565917644645429556879053212569439864425250890550486780359085826441385302703406620349678314662755884016098259542408186212684622790870168408001089142380419273952834084363385729548413286195223548627534667080988095442266984713438626814671318751244345972579435125356575118902610799782290376380828177281606836178100392238337807893854813299743874489474270037897867713226613832011888680907887166464964207965182361133666625528634239019283349533449227008086492509280606652627043693205029211292973360212649654322791446354855599667929139741756249352746067343214818866732870643409621926113591837486624368409513981716215246943984073163863614246030434995640403921507892257152324420974057446414645458739825924930473352049665641612725854961974935680556813180425758675969173398047053568501839942633731795140474179509866224677648025307694416747345314593488399616033529326253919046039778448978416835621701851086568078713838789496538891410255948841358310182374189264177790514197415461180287726045103148659311784310147622734694331415849536537419261736659567145576078611396073613911798005505611720403481402883425005332422577377432232563794203611175371631119369012268042973287781650785337189420523221856747243332709456195459331049225668341265927001019955547587885879569241431300330406906883870551974235854652974744528284310743566555922061030926623735594641531004704610785998170699556240398405815992196673173079262293009316457129424438341230390226281486125374169357013911087509427155084395381611584242934012912337961845155732728541603974357624500640930104382547371347842933288774213702467095316241204593699992674760710590974243558397428169709733022473483649170116260969802979840850788811727731439018731769104873206121952951965599932889567794730879458910833758201756368770577946792262006537681730928419817353527067458621555734411184709017873837092092207747281119001653336205274326189910393639176583652921005259430125256374078840516336121121061660003816677479344368515406877893349671139106351379880280782243415384512214504084158887476831762829946483218426555765993584302523746032827825991665537312638266168353990014164171279995491307621805780787492719783609362027606087775899501112449433826397232429630103799881711210449428156375003721408454639047943257793776282769983239358146937486429816480432191653720887171970734789418920684317697364069332958270704939326414469767684307192759155146662896627679789783078406003604584070573695271957544372404614092805592634191814339965552702275286608723794568222076414544764271342264553689657853291881195077157161568951724826171689986194890591979081147951022000863456082814651485454364790736773082844349577564528098307052927740018174447836473031038026056197246981571611350424156567046784221597655267408468136912350405468278631544362687572680073548476630058525268136023164934109007519773298002287284710124998391699998158478020109395325801208480716317938990415665927599095984450161784449663520425072866576166835124750998568743513687706285449658206621968907889128336840297087860594380845376876446410701446241003334282279477938134857696724438642440681549456592105610083827873992459049779714485864978607844356222463876380571147322707604750090269991041866877599514592286511156762009935116601295962366769323147936534239854491087747463929997337689879958744677200281903413110877593946691068023930400890146384459226364288840043134763287893009478276540474604922993393647597243415217949981246287063284863385801865341587557049214106468168603799193105722773774508063446325015558425631764484183647223784815886224812889156868199831477066003432965799957491772096942067067528145018181699040461884751426619783603298194671579703605954362428263870555426868544900282257722869016605767060281812452889634874757429356035966308366382368777885333155469689582762537581472530702138336153567609422445245496874903611014251758359216665631053767153586386727812299460937647677883574212981124025678111604499830208027686783079269055177072826407175161937377765021888551930789325346845113975316422643955271105344181820630189412268039667332925249215700385281241015051028280916762031338538958744834282455147546879046200432231128446726982495483831425372237237340744811155809008428054583749510601570118676968680276000671418382431138005138356863215374926302888411137597580326588920150635048298506133791873897507498844792593485479667971464415697697428054049576319783693086041349062981560044927124484198658937937693160852333453746934188187544576625668239788725419570948705265773417242912113162961543841029722355792690745922626937565385487597217763879295068185593959195959625408983357936708626537969799249315746549620967757798696079903316675216569061250873018360083124508869503451001293627931725978380939120445684474874547757802510971823525883180494473457150510668468899640056590476163302657362735885476371063605896924587098415766623312200705762048129371361641175380507616560481555057229506210707740915452820743562508205476099716748132098311620729034366092834110310827804232097840847361526554725528051297200046433197886750770569097636059370315086320154995590063450897891927190814479472511094878107530708059951594937277635115462403080739207073737380254362592156444492799795398432683124947836072167641560408840203023726089424707059353702623698291591361614526489491383038559321798165398527472651380547841911658057913428123366202923921316169754029632548677856300229714400680535124250138952473951948022357112264024066631790141934647682308319856719304256895511905270529889571902478559192220610518318195492969235839646088830434720581277373334385918459363169727158273726849755499282859195944098991703174697866964228595023685234176285035324800355125416413651668743575576811008792954466761133182876484943864522746109362408115413315885937635059504658374678259056496540510867457058256106680902953344001826507795667365149477404051816432710872424221763693594578353777752846116700289360874957312327293485573811897981436993539481841669987830781634212485300106744262053705781321229696421800850828346041140856165736599321067043501023511089584243838467584150588863119871589861111953968493712805810210608402005124395287790439513556487183725381585182455020480271347934111478499363201060411683136588969727844791572297523679368360198042897996070744108639716754550037149405941364895802575663632097860911299814204336665551134817203568885224252481708363194290396903670400966099057296708255248220313708605321299690585271220357061962197711025304178356266362784959906276493702741561783874780898036037166826435981881698074871498201896317444393635976046454580692811505453565606997718902475320126179731675450299303055783007779672963302473040683494823144714357019212144333449499326914412135986294695162383655267878771439308183238075786949153096933244055578642945627626242589945449438401598149214164504522539477710079155388323861161045994145049516827854443192016754934837356208958600178681943381621081122120843626884027615752973343060177962672692493019333585641097161007198163532353912151870255428086242391934787705695272921531426869461068383305062120491166773308660224054092023863212684212260089064707987703563249170045888560185135156661677593975122817757503508548063457020526499754992064920623609823762000553003125854870567960740562303725240444613566744818254964932097584523480786724764621060470503976108944295319016287829930702255708777214458154346905343747321037218633866698324699212701176153956428217567198493720139079670422917527966324658746360578551460029108732707645563843285599581450049292363498005728572930705840286197203991009267611272886036789387465365112291588582462527201750924036221703192881668126736123871239454263505506166384416138552488962576330685711783620754926735445070769903374966427506872425809272192947957562999379325506700835900895682416731512324185789167707670566656150118219583932835083771685395607129536017066127965651434858494131219998091960160972609255313708909595447362223136708816847563773655419015703008069072031830005875916769136038943730097986440779267028245000012580065517083556436954641042877821012822796658674129036042413445178359333766680537690802607246757953387297372320182076545327288066650972062183853842598297760860358701578712321739817372896412326172277572400090618111612824390028059546388040838775812164575680082816668005122486292434066918252870627637104767119071586147816972782298474725251345395455668841104176356456769024979865271022275882789061899026550634438094269602320181087202442900244126191762198251708465026925651360436838856405677801241081453359958455750350809736388336777017504530233174233802415049768319168141130030228898290965685259079360095370933725728629331753313063635206794209488779359934185447027271148580086424058201339706521899126425070238746542656469740267854672026192559633885414901716169732720783176000092413144864873771121982317388851664151352518649597548855090698287210392828478237943873934058189740970875545605422948670315178280907997159574455487300737092357980895501030928937027457495138205962529360068486639323968218037259721054500550961350673849662623884435740542524706838538044599969855527294870238551487621157584203619676804949101688992130247503114672808125613377460869054141426186061735836989610357030829717344058375004471140462277162413959163196776375097945004495786663236694002106034510784401146165400913136506998842224874331576240903513688046189686463226947061397995952357158662350255337944678510397526818058276324003308528387691748262073000471683616026884063908003744222104957022185066942987080453908720203800668230715487506810616953078923799396353533912422476141303750728593975110227425369409861727392810298702326564243621106638138794201074021225273161461672716210068000504706912921397944321858476850560809118560994969424516203666822538082839366999435501169948612359933144074578672373665343789659177218596863910691991282192593952814131670465251554391167582282532003686561241005026409088025038775230937255050023318573106615261114265078172219775735251747712468585071248388681806047119992576551656576177794862057871645357704207962944110667167027641583320975087871900682513646167417313504690980510052870321921002826888821955090664552237423780754948970552006026791399033272411837389932367959406605053691351937597750897997969003935150515376985929310825440687638079637708296657673353287957385750011689754191611561330830937206128314509758234983138897107102060764211160485878436345623043742612026167978025754385654915481794530444453204059373506299271917637123588686063712807663944940951575817588473799078901912732645649456795755518080932069619402709437190598154967947947653315621559369226347938892880385595409712819878518822896404119894428410185094617178374863208529114635329604284804664555650735701572210904809809887116617205514398796876079050819420515610494095380543091741170621102005458320504840081670454251001313089689988499343548190962829720214507328654115510083548785746648682630706834951324280866168206424936930706459722696072692849600277786587127226508896740058014362498449598486436951463571741790923455853410008460166282087706688034791625791931265392078967057746772222173126940012621898376453725911185049088973308537975032901555347536226986646205546912029716171788036130248284489465827679377024633540764700273462727466385092945163813887116177908477846116365609060240717086492229414784875745995609910319661371171771291455541604426617047927533143920640233841542628476756701010425571208910150964646268611768308595210593162940646365866358008177388156701983334739858068779432956239073754218183357709533722162132405625654599658761232874405239517886095668589457718424122900100736151058118789392356328241579444511372148129119124764207332178627696520596630343745863934165271817644236392469254434292620465077488889961983988755610574556292636039776369133961944361870818758998739392841999182141282234165867163554104541212222050916350722592792265138505359878298708604335763592429341366003301036119992034703872276568166831362802667155068047833445091862339950068070942445136180061880190299400342086387620566513380981295492191428836392715138103634145170272517355531206168285262558835582296647723867577472733781048704484071351814796328850183214414508176809416290959502790813139494867268515695180586502102045203856337260816749027354641521613372766375204345939775502122753506585298868736832169084425487017204423138501567627691105650375304506802678041295184678659598621681306843781225858008081687893072400143515016180077554021083390876819514402997636887086971917938642884852515923713379911289809772970300769625925282125551104036751910921976528455086082608408088791140213554822013434570273865193710890155944935904248244471353845297796283256501768723174566353644538626005387203013690176951452271897613065139429364469274551315297775330558192305054963800028765070947296946645606280153167465393289056944844585366575371585922597417400342308718599089569483637600326403039175252725190137821681782186944323721319733931617040035089554914007486627843640622427025673048153935794235156388596855143499192835166433231243363849942411424249459667315171561791750190384366148421276429516016986203053166607294495201479792511518758116140001197064155320359142642435204658021058367407909975319171467638115926020194736430245923345585466550151078022325815786842747628334403280093063433413729771687663627256481615718532886496699643689832097856547621726918086429663449125616121019450638198549747680118960345787982064000875118709369937078901781011243937855952935384695756667857230132331255280449132953417582013813238130230131950300507100135057426059896410667949073119275272088600375964402426041541651136459890137926228410167339460144129162342032491844605841927334043689361972580178716335303601071889249779455505526079804282890450533534537042743407454355140544846869383216224868137181092680524440222887739739840760669959588530983560510191634854374416869025144086409150491538334828839210495496811424512994236604936152030952531800221891457774729703535007615064569211816602991447164161012106259134512943636811406010601212360223435070471085204456577925820476395182535102700463972332881402876739253092819703065073864266437634214324596160078335726129201099085455353705911307686495520199629788844193564859926396432958077965788063192861376858583012245609932426456344617965500198244765216089727625636861254049346008677263292858306843324499398137204907435750362680777493928539311543139206135429167029239242675358318732112809811096518229272197390850152933179076560910685414824207872685453518572174917005735621880596323127830845502485788053518024965789452436489501417325771340605659487360284332423248934552010246256089671313992875585842083299844331273152126033356892008727320919807879607929851714252833135006030663495262901513436870684867409397550360130429186321995783455675917509756262591137544898739060124132287224812127380742155874862255838759347769353327634679914964345497710629715780934281852390136886296555211796734055352183227017726425158301753646081254830648631636430641650159408420313439752137417135542296637445393200552146069755756821497473544070251530328192276809646711066486874419169817077274420323334546482386488132779408447064578449167349637093893671170162573881429479111281368840656623900204028748612331443285032165225238930142849449023866542903746765494698596669639006588578580457792769560661683775866994917583381006574068612332014864959628706267038581764211780756019697232337407943117450323256586410270483671442705519312922812947890558751272429601456926023663545402176361735939227905660664442666190523341602528444237113331197403738151797230589193226244821504632413326251548565509288053476764155740354972147747512142053981063777686348175035870731169590666154932131177621162133533233563792005557303857796790593735260025255162986041510834111752236683735411811113819426749269916399433358003621428021701708685892642064942586009676675920876137312298149335499874605260743469013081628137491581725241840625990894836808532824190584788939605641677957994255817028284386556614125800236827422689144021780648984476227080482858390620786119872075552762109889583170147443335323605439166237518578872641354001246140854221289264202326948716795313522749767881013317160944352810511274157021700650800807574770207057891732335804124569430564398959500143960320258929707768292692314771096536087556986489706826965902440128292485075830727297306176368416726885015253029478775105704353166680584158308897205433750495333842966149897817336100241864785687776479250296085348878029049695723773572900207600765577876890379126760860124569634843702705781626844485599089337187693719014077483316312788252142460452213583008216648887613824122899388653214788692024381233387147128744533925404602451661192865131298038400387242920659176920604774234884208406450047002411932011399184538515704456554950689927239131320039566841587871687657549918552276374095398530285538077371532095074231722041497188711019854537211377090095256466461353285439433849055587914735305787083718182245271496239115178005093073126191694392867777642380387615409337511506393563072416708755616256821268973078217733594144383292290076312602995084683754001516040260633936678295513949751895809775597925435536110323248303646493797424217187434153174118602567073135630424155294546997449333566110425883279399227629705639384213528821807790023354221010404833982701188982027250030627341145324735416745744442718073329016229694560620181510147527255199330009260705022981424208890292981528473155348852543519607916829957513485131719971597797125957745859143769979349743409833333143608050375662146095045834636065997642105143551981543943695093155646407930244171515739066071901440461124932243061030830662469170531717923671354237679172600046839770303281250246009980660522570403346765997651221539879314509207183385860535198894486307651828672750997757049375000768086170814601425152771537812336466049446117566249255542640693825165050815115609327569039789816502564231682156898026198422733222226934910711331101550363872416431064362662605146746394781313177542227399595990584217038484760247530080400923293003106021782940439500325974301730139017235037965437056553910132128058433203534799135896407193380651902602038846013474861448691328722545324257606987637929077119356802374010034227075587822708656859339843870785857214064350369282805464454100783910261181233992170676698055943058794742043082826867010633272947987620831262542295905152294156770150972500206261403610233979390915553243252033232067835989715319993449546334256346867493797859364797233798581242707911978431723534037309617805789234248221323920750680935911883539891155560518528166805821977602308887288316833025404406297610398290762843073483912690572389622491444232223208905210321720543992902274076512639891320515255210469423416441418830892228222617940235613955155041019440683539538739670821762376884523115841499277969192736912406633583706160766484673019348596212347961619623882922361120137795854359794601703295972911169657668753408218612258914904700185611749876207811364936143451100245727706876631278413050345215869403418652068091973525718105543360268556772650060156883641183803260305765772061450514809236105897470614958395233452229121481515394270840609242631484183096952586251785656474541358708344806464645858468077652037140011485719891723367329094864975758255459422359294327871774459393920663170516815432677337282043235248905210055699166858790690472890518281690437995429346165505758529575854119299520600791964828860488332146469554423186289872288716474131832924060822395986660454512036730681065416158329906055668498974272521630536497160058061797040952573628002006538316448315301751600505645216279037098513710022808273708340489342027243345411967318759532455435086140767510946818766981824870770687161613035608301148543856404662840054671985204602041511485411785712353158932106016814137002333562566046204416069770847412700394525199841284998009361747766782375304193610500872215409467641798811273819469888948686195353949303196587727624508721363862985403713661946895935369926526720068789299713243615255466106681384308842458265848549894411621564256323641063100003351772164014370971035345592488068779356784337571827682023410694022217944155488083928159961302417305817736309466004861804660249436279433097444878306627710389444868333252993962478944340851779834360709318199234455123831651138575201270903951493774715724893476616487454204440788842629243026625048863636728588525645646238046163617968996759407401869730041081173260143684339531771972966088696808225554055502159227730066055362798541194222433627099209836480596041696435431144432306423603384331411906267507142138435158257102505539459129586004172381791650673475193719526663813220131676833152277249307670700203433225995706345955185928365402429752523079696915123613291016512811085659453488534700420256400503655230131274553087220797275517484317233783522348573164500590159576351599927497421866693059602562119062722055528896623924445634672383497722439685855276655914960638818968527976289915497731143944044491188180119420367416537178605509537534496672575366280771686648305995114981793383558273956955695680803908336568772075860472612164590281035614943427037284995120904968435354170240158622867191327163313152794131532560704303167954306072191382713295788466301389878386083984435921690445595604327640769798235944588332024664514726004763773929070247143048493906449636120444495943378087020630529921654835442612933808374625962818585757969173968778402138181737066237571340319252002849516505612728893478330541651534719353766837428541745950101269436416195712872902619730689564068569318248075125876035787382510755405566688685920398564257751984179430809516180642751597605590234911778818821253268557853782431993406488448093178074189451167426429779452894893846843812119227850079519357121219047718112082914226425386471906182122334083899745373262232949856144611243517514226722264600280027011791716700844019264336997151349667890224245686069198520340228703105214249668039817979061159525860025786877352082773756479243034901751196627559234680895232341550884732844431947469297891018715047715533408632754824925718717078877448897074061714965143389417388441472754931428544520877465410157909451595959932000300765410296979530535516983774227783636239565583345519816934427765584712570562061967948226191411741990508056379714087736280875734541284491584056122943946683835931513882146173390011829930756964342704749259793183454248444173970994560872261273036122937477827642394998556349123996487787823513857974889430147047033772498214195201950854409815808981183475383679996156199717476275590578253958083611634492034977245940258682935312540957106722223293232460263144877839171639299750062771117045768863863630631191596339496875483874738397878133214507223506124552199013768278143802230445054619054839899717715654711530280875190849334652550647888490503767288117646635883861469179982255554690097149522448650628085226912626719350206963962140615906006639731566447922370053823001284732620901349270420102641018077138698953149632807449484612816026974695386907682178224299390651966902702463435382552560737170096331396160111698821437962813694099594961075992233230388152940699195777008553576897209408740746883839686793358341168921210567338728643164667946160687580252112565862764789559228698983194121222759869381397456238010806519160099427752321556939824774348358150463186741071090679599985558062862859691107023646612055261555172241914940827481407672671504506959692479322728719906410198934141142198874423234846816747695152069682947320664976769478360439263821360026721759905564232197258843941212507636668823639789546350005272649987269553940789190128194791033556001116861027779599077333140465242964756974828887929151145665306569901911678430796638413360562575590895884358092299240483833382095377305396352345804796111722577434867148404630898667749971918428363487772879940084144453400869390433045248451096196625992353812690452637557840066684915817310525946324211180541644566533770820453911607484167184360553604025681859631724874849369252125978182297945025403371093056310767791493214528983792913910985650101498055745432565993893534978988001811086081273004505874352755979950223780424906285231088363163573574087380216632210529767756372961255380890479396538097246104434129919414310727180737634430637016702043213347624292129752244331596687995372395012475618847713214904414852441070966804315740333837295341480387901266341060468564237252023214120596449844886508734348799238954016353760115126498403433685905610616402821461003296651937927033192093856020387188817732863013082723802087338180856320939884798955793637078697987221336524472966413567362822936772347981680146021257570156225407777159936356256370866762917870406216955135364815201326250630057030257786831434172454114112695611532761341830439255274925072510590926783411837938367588716551133086913075851358043191837725696173577971258356263518064018508209472799906655249263168858389452553670541421200544679830578981335302596013032222251707295358288429593644032502045899687187348148219039842481794690369648416323030829836178505928246437421788017928022098630668542728484886356504920178355046629624396097003328058641440155579179528122458720114270677913482744776594186189837320021584405339780464064206877428809727613127324938397250383902273851164374984863070487784934347387476835525766169349046121883787524218547029490343425076082270848575532687140584095120776261667395518792074216187632570729204865354412765002582718478523371392033220592606767378999585356107332249163243893635344360714599546963076128127695467769178517974564446766305940013535464722846232586001535712615442087611548748397742922684300179690614745856598064702415155549832261190859473153809527074191301317195678410381368952287633842933008010667198103548544514594609935350866053291213821754212514039649067044213394657812303063558240177409022533951899061279415712089176919605337260298501294802601563740046607827013557988679022545061313959400376444673238087548895504875609439072853147152706275063318733898808942088731272021541839699333645585500444664257973159937733790917173891986196492308520942215035108689390802422327711354675717923011993339278406381088138601140149447860520937235481310712855053603722857233577227408397785951919428451375570871035636975815135653733104343400675321587844816049602344862171380884540267320465613671746429150005969421886017484428455054403068185385192085795280676571403866287370971511960862777657733243266800352087511330480879388268607361611784633805177711136626769016067066971738814873499184254736572130451713626548422729452399279183097287849296730314981078218502598046254650044570313634463913390041716748404762310069246361335761288855615065545445138781660480545618369368623262836599191023046782679210332952725008666157269373691776186715754806102203575744458288066029965322634206981164027080395365479767139835946716360132090040838731992502873895282573425502393917525292440001215498383373563266891750471104104997517301994687241573358741995049542983401608188036907674207384128535616834634888169879295799173814524453809510544248697554862764789119331945219783997264724756419490542891317358552828049210278276325285924277283208324586402102915534522602972475249875289458259063671243798140203139514400706738852556874246594923950242201867307555339166530096448409923372739758993050065615307114537663706499485247141267689203280498590046219853960017510773763876370715710472149587597632458214707198817514071051072083209548756250724868596478202799057564434781705040912852253738005810194641360768837787659064248637489347753717694931653152070774673940984404120548876565275912026369360300758043982285646540207295875959441887541505048063552826409597780127109066562154141114728677932104304854166415802195850472574628210151536752607937422929096937683822397404820522473033118111076876641660738298610733169102140604992725852747083155074031230060706653546679215058914837455893938813900682449314311049230741444782608032094312291712225645454647344100809355884012117083484440903965917445852148387101314778508938655165648108594576951568982381991748119800665375946785453316152589839364679332927443560825803825480775335226252343789737703811420232076370967969291467462733153589216719119345562503281351580433578857229963056313251781618197581189368817597863850064514671820926050087749328080925572348779870542262035321603505100106203196184548466344522974144367135985873287235706751987351265307715851173671232881786947155792630420847248402313422432141146592331938136028896197686778140042778791938457417521783583319143306812256423199901686247696442006972812222377249403369629728524878433052423863909693053231302005997468704010443793455591911793072434962395443855070222383398934274485054598636343630567575074422098823626872203506513102462714820311352117386539873190297946390809015523197354138155738630469640301527836028004106609245858086287283820257477158041380803808651614821765606440599297492610540185899390989019231361812245354857362177968134893509086533678716693441353638277652975825592506075998337201057311953172240470051482395756750591369273206264380824480921232873076741680067680625554244738838335369683328172928655887010233446613489214294945372010662578524985428322232827097133249173337090494496640879770812084802321070843330317718660697176211165965126986701884736172703734985041841208742669992748104338618028832706335494878599067971531178387831590019402800976943242618565789994955670217172012705951679111743091277447296444008665572506805854001841140517902130716764612866484729104622660757721612545583141964656268473577937764302283636760657487234286937639222374564076018532310447689375585379784763716447806459560213714276458137268414020854627714256175988454628669828585602622513938129617051466675732684676053799461476778673083069225342048629652395067291719579155371221978715317927414968123967690869367258471637393318877808749004833188927244350305309716670709217182775635040935622915262787132249945795035730546046493170933798865684522330132926757835255359097591593329948498582482618063632901407920566198353049929850026014557799171435891444638473126380208555699205181572163056564130614070808904005958133713733395442556978574140418569840970956194462437658873814738087697829361866660608145108819281362205143171880536762866635380362603496132264241313092969165908329184865447456789403577082947739100355598500654577984840730206761036331058355655567099495501809973108139298244146206790583999283526949417483874710372274000295261435489243846364498175271668525324083477717439804153152558379859847706769165896533578592171039157455146737710998928204655961112190396462125066999179977280137333503183669571651677635981644824174070322361347963660960943811757320342885217882604099687389169592638457410346110290816160781135581038875618942638442009818011036501533377267381992268880853200401971428987046396747090746989815437032076032293679642446585646546316771900728167821764519862325392750825899364821787536931222112428898847628595652640846524795462147096635214051657656835404224414922139827262871744195794439388638892688476524978610722897124620247564154282777825575876770956609042517031841430626877506437024497512420827517762102499608232982144569702236811080636086270998332467255986102436651943653474939663095035344440698264787963571429559579664654174753928814407860586888973034317498475878346765889243313624656735892889001702273280637826000330646595730452224207487550555965992111108089874202731185783075676842640095348437342053892536484160467905164036549944031289580262093713298519500156551977119341362463406296495985614481124494212353845609692397941023912697357568050807449986586209669739017057567799235621719983358724294330247215825305566865354167241068041711294448601509718714803072753111478123321470509394602081160022014608623848584565886162887970004654058540492467456010339211436909180403586776474696733273284064631427065889080802458648159139552980299236527184050753421757518194683237865168173814112694194377854232619655721220189191783672012535944378141378953352174114537664840933049948089891696852473222538467836202838303325352999516204019191038823828907384225473137029935696733615920181355852975668043729641079375881572382540583064469748559092357819225288193507636305338537380966527487264436824612778262127339806414730642955249382198634731243069350458786116427488024583792688037561377258781383252390849460910740376237357505249601481598114618923516730187424133230652609951683343131350989829047615961211803994963740611845321084364173968990653455809712145093143818394406277426861560978311128532146234517189211169589628894396200093481297124997659066931623728858181417861404807367157134411030801389253769977001079604008683115774716288169643528220915475055733155454877979066041509010852798604571904807908377331049555983546321679053381233855930044875087167325907977771391848473371923177148444436694569390860570326104738841779890383861847418254971201124291028695242598896679958550475221961970149751867092438560123042757889318190619076199392409902134998198829537920629745952103279740780616758210321167623783153122848503580676557851517786291646495048236727488652657828659017102142873827452501367436711030892957400691780891477561856857218816025255426207535497708716354151084506572035811429199602195920982109434552108064572128910045685879074569947581515748261454282368874034205374132921558203704462670032741506915847745252718116672080428744223789524095140237375238107717469358595609792876210714714228290456189028986049086897048028148673818486732254971674776808295617231148934189615153394494151584876583145662201596282161136851670310504482911730617456702831324244324843431579864178840531498034923963427485679056187499605122434080337021322235028186994312284526266280048597803042925925262424775972683834755403681342508715283889997763681123870654700612542641500897991168902903740638962968735455270232124349775603525573234440183135790870509625647460771690756966945225288595989350324568526467030948885617820304269815215791797504615917553250277298518173522593649384615531091125074087364977248727201811165332730682077447095976280975225008989282086893789437448563421503970046966201092115082385344269084272000360692882867114596764048258973295093214927675705880236236665919693025332207344009625365077840198787814513468929861983199969069474300711891254368369307918234779652922664610432157834284618188959777426749027708663623130776535838320487522330663479892029204890566249241112980592823838778690895153886663350860640616209899727789280878187316563423838893985182815083906898961548301020360241243459350381821864915990079792194012096098379781320521931503495746749495443745209437368062881666083647204624651836338428278912439833450501307050353450108032020354403947279298513307366470939190124708887030326659216433747915995381825177079211085746847332487390122317182448988517206812339842805324746863292781869134677128287120361857592849854437038040843157058974899780198715566251761755608741367580094516219418213464383477461897699084528059634132266676035650256522010478698044363577576930298600883914056658011089320134711260726180664441017457208407228171253524321993292742630475265546455340708554364363947828947097180966621316781161124964859906839180888991700240650261220122378351005794144069247672862501292414012169461496176763571248790971987813771687411376279885752069284857591315942956750756203805374449535349242036832035184826581736140660542055501610196203178931532349989538474659653103835984860678822123714643459841964514696730807764217231733480791780313076316838225865557663257964374347759519695411303701688573397983298601326269331256270313623320216705018483400174857588088897990859791072918290514709981404463738455958379182181583194023714818529051441032381932537423422547268792726932116836311501166782828608895401901249685262782454181170125432012481802588906277600628828399121085234365627597045249343539261937508663338823723108573994492927877471945330817259702335617391237317228670124138107019926862309877490512472060463704335737288642632353532686584702031546739305341143896900142407105404870385571585423695536236136167977148042360457079076708163612211310070664644020280856805120043039414840557781841504265222076782082272769503030057619956494171326592249434477833772367841297190880394651156353866105170825817704969657036089728649087396322821970652052729604694713722335212690155481979845117965645512313875382050245525402959285134632722333880042726660489809136099864576712439432286104126291794435396863135682014114702752911570745128851538506979689395768174514972668732018664994503694200899431623105056175134756528351213687496074625341844376662681379466124150753502998119781637177047660143296726727060367769401148906274625776952876405392306314309795215481477220364475893637487701652561593080318048492749866230016060590778602032021967783569571984800020341642774941257196455526210007857571719660453886690908558794596393348111042732099566713797029569271068060141105746466866722834437465142592294894715346104338132729427950828256518353626158212533824408849280378995361645264341584304023079650447603338292322653388442937126721127456104203438298415040180634537736489383756018070201750193302778148763964110999169867817988795303500631583175397305549346582973765870731209032219370578983675443441524333331844025149768031174569106576597973058772210712379764449268883166049378186013359280406117003118031200909170050852182692390211468005507957199264087481113383371084914230300356600158413789915397051542724321397492860792968158938706603893171439126186073493702297919587541988261442153411503002637129434563003278416567868468279157179235258718253792763998274606175070481143697831015734366066650721595250139781789037772688423322842819838086493550986970840814207203206817885157195028268576866317231786426379971544981478216868656281798337166872349814568624688647241400227255075650032316859113028750593065570020335401841025856887404837415365049064975402562948231611112312986134416918210533174735011597009199317690362908547636091143008369924228554619312147388816646353683408665626362420333171208349546438695054115265982364563350936897344553119093005099737920542223774161134510862087437168121552534117491242301523087457365316354273691264821555751802751799377552095666320979644497966881997184078906733872128837229520944869736938621224596118731854376273062028750265607690578654778723875721996137443442438610744478859170276583823094272232382324275005389938624051902992464410722415477533203257165563068252157659161271896147005127033474353020705024111898825383008766916919159724757395289705915996464861753083247952358915486943717664040377750817268240596888359864068227065738237593431606042694439742894227471120397023860346382676771202722377706757047650824830785067838988276966123906704597689333687015967698768350103759066917617701049500545006127887506108934022097564284642268779467182022427508155475881634955876012170051738842431476360803481353238166308937429010542334385407125940826334139121218961675404983387111396133148480640906322484699441789030764091206730511339171487931151503710761833208910822560894413174189491702854959085838214721180444921572528167630850069653817114039489529889857802402498083812429667398979775123626390357599411266326462583425623651122565412885307890032748963391433304680825502621175009521350101400044663209988428653924050802363981921303022992028946064082497323113099612893401076914061774538039965577083110402945319540766677002295314089232118358947774451671327663093471882259596919777513452322114585110258629320707243341952923265448598885760160885870123526944421950090608403239733953738001716867997145635778604155166810901961612140588848632700185186480802261108804406319310931900106293633137432427059709599638078675523202475677812972527765980341646910949365654587823789324257470673496452674504740021952491016705007215296894430901844060635530055144871346624693487875900047424423373099687730046534101089534412962223503220315792243456521492155224723601174489423667836265598099921666694236923982941756423856011704830695756098892459967517393814567909577157960010469790620447081084415518825541847920208598809391563717573880194684844808219488082387602428352585291873839205893924480018780413413793127356313471246379996151731329481444684571071400884694404135909457245643518959760017053044159313949761499561082227233050132252558515561992202643840182937160250092357448330766391726677330199587758830051262993737851021418620991798711645412312930565667728533845326454999645011340668626669753355195115311838541574238360392951025619154067564096425916364174000022074084915027806823276727271539471275610120985792116233771017292819076601771992092284170376379443160249085691128540331303393890892245621075421849418149590920805022775886407915720792854218890143945111120058728917360273059225066258324062016344198485296842090119558339053371743283966695799778252307856017270915212985448738014045925936507968941920249937825574926344619282428635466219436803444050849344048803912425948527828820714384196404089149558171972390670649187084090988382208549428861604146219966379084434843032970096607044650517552608562297621558015567248350835293855903616707863168302992069506246746050068808053415628112873000121495810205543788962197736232858772006053322849516261235414573821999247797647968029927720571365712620018355261591867356866430433461255603282005231663908928553386524158250835086978913501788662259466831956910580747298968875463744271388338008024334418249993806951275542718935403209509685303728258132229633750817480099723478468044543106253967062789959407506884250444136703762937732058889801400149033093531846116795301897097203888357868538203773449386390538740677562269984142901264346792324325436267752176766662787383641917688021573103933569430396652912725205159923372108239960649530822703634861394893172060036363944032920560617349027601391700608782685057720429180977099597386375592499442189949302774436953272215501616519023933198095556924094774753811390537259493640482663207450360362882380273190698617901263484449618328574445756970505430831969489246253663077589547730761413920958903216317423211992959110785893111410823416276844801979309535481565628169829785769250122869749515657368268643587042120130390144622323383010740719419632930623778880930949929899560342022751404776325481567386191677500786745161928433316811247095513574754939282592523852799680391087867685442938307558564569021651847449543198487889836512031950885895797150978043297245935872226387123871173689065534890126871357046509178653111124710283432077662523190374510842201496987115522485021778254699155144088107335326629637020101484978298558520580398058150223505253258338448182576184025295489760511358565859331826010315411060107930704984666766757027708247941092675969298353303106430072403084052200103645775597285294926550746695872265132825428617827412557117974126151129797037505935840143490860818969658941946587497076834068106709322317118738573073406492864933152572174238844877784803998673400954688604548232266970915483168357535784355995110938447233164882945236666249639128936726566816206183308288304419222250674039494994214955512923812490554029737943470792219418772806250765998181853737749462021507591066802250845379949114117679962150832270955765290439787088635240678358233474079409318777108789339495307315517290567382885104114765057301554472696462418792623425261446895943343528326792286177916541635646437778846651431078781200475584158174781939633010888170850942822780234709749897235263834658291277610228204231098277159695757857687332710308549803379612617663238781280308901989040341129378438454052746280734974075682827013298945284935461298342243248928394335800757524998892454173955314568876750181092392419109280508330547857507725970411447550962004606721018485792916569258213864526278187694641796202882202211031600279243567386867875721836420900086789755516645255578247623238548828972495180794697542675106463915358239915586020865553671332806208968779313890374438339417243981698666958077657589813665083815829034342860575751415412941793609938833908609068323243481958993339703964402508982882395933989886825329496252584510564308073410510720732240609334019968217951448837723530191271054469527060324565201059218574987059335274440881020600449431086895657397569089549049706978929287031211252279866765827997195345813110080969549420615358904925953053287153206362765288352445989590696158816144883787742778592381682829336675523889170694513622380777018946386842651264805961261583269845042545376479531274896713453775218156076734902430494717225062165182768864219084342345787063068394742938320594486157912918356271867624851716434898787328912030773292254014365793591848456090244843245045622733272032446237668137447177147963643700531824753778999623557476954361678255390003777286204668189865580020374907380823588756914380605915753749617270774402436915119677280491371058861121926043596306359363804555970129349680218879956013722051996028564666054251120900444078503686233184406214915232944943761646108975500603384845193006232286168791698710092893768074928633111358480080471243638115189476371664120060901347339502303795974730746518041120215417366899048426797159944438072081916819879916783648364422488329322648827947591937111081609925993348701848115956942235559273640263358686510608017882137574488512207982324792770057966873817196693297815668061320040543621548771999982264584175811506035672190803019258805772915228559670243909968243963264985807291501507738278388389848934594453322753174156178947434580985975754462049820552370494577908996147667343530516849092495114849938942041576039536641949920505027318944121869072121752176359189946431343518971372631382334823070703663811021116426502985907825599245873324338223829686069305619589714770766045650152872661414587017496283486245145025346345548312380473378457431017301924359953899809138398577339073592057886922185349476106004723843142270683789524221465913220609628798625878593136415520906658145730241658433383641588275342185618334857903267543163320542146193915264326475546054541477057975389480975397252143875852733785166295730301429988169564877406604729564699402911817991283183941632398859690123412976166147158657898226648482498410082147677504743698515015112278344457443357443301245632725062584198692800880169908668272535762949085485027533989520652152808205687825931436382310197723176467199530218064942876849407370399652156006501538331135801179154505436467929124529997503777732951039886407110154151221546333376737195006610807125124890039641072374127948198828489217166868780503466430231584960619742745148390045768234636551773870484678016871815098747551926911930947697256610252180680453421065408548019077593964739532155597438672723392745900187737356717197580632950454358873953611794330218033581873005450562167578235746546667445130873903121090689997458010545087409825942915797811454556789136214812834712007562475031647184230651379674507106223221366458530764243136063602248956167598156759296935459153685160679554698788670460573695882657104751687985616715513679241924532020323990272395763224271369320192021333678761627810270384792019837186060456821756798877553976326921569325454243126315784420520144287335029020971904179606463767803352491404033838885723423619977923625755876857470917234328695892298969872813079427245021322335055059969093026338549361097330160722878496552729848610317935332628546592376906663156765946232425101108687439452453876250435515988053401438567022668455139667514760246420841279223848076898102119665359040698087628170046153151338882923194447891233145723069058657254562474059171014345338912835893473024172061440203696295586344165066892526556898296734016750451566718762112198816911623015753378891102314161995324594753573245412540816588724006130033467967613713149006617756185237729253949337990007791787011740967298852385188532747017491260163017250494102346920963184503801024964217096476331384351225753923710724584531736854929520821003127374439703061350358882548780169013268725324562462526327515104286729768494417129443155654939087460595248356073013080289394561859108483680926188678454324903850149480071614842117664216919872458216189998994489479134073627679251083689398033840266593264094191321182951348299185242284447719590049932024157572459419840405470185587806100213792038556803541444612577266344084928222535922450382665451205480550270753463837883960745721794730134526007312305598844193655495793483888719587322107636118875197885463437709260135673229338568960602930514796469811479857680310063011143696504925224953732177464311114570360789797752240962055197409061286565430716290225997891266389974908226327080396457942194287636332132597978654351524136979161716874383729864140756234743553220211715745002658725516591217671494308204383672671134010180703952282240235386808211315209783333386667450571723006286978919233123148619505579972547933432846434516651255784034540220368653670306117025864860288166188975885247766051762456569291765454095233676129600098102355964055248805493830271054887037300555147314104280040686028326533378742318139499138919240763259113271131886898418392750333136337720613292900996785017261359578411056718689124205976269515131836934954415856672600689830203873274546277007956732629475160451812241742563311624015269043083105717500752870177449151009278562281759221139207768375486943137026010990522593627931292628999813809569922275549535851898588400519165456929840934369663318676530922936303372929067292964675151618685852150664066350013425811906218554765676283452429642564794036304552993989096042281432418209329656705852784257249500040226040574783006219805916259684904200357472402820748938988798902687941850032503198047625290608079968609899042797798574381948509079894897579761921359223970087553407554850110914131301041807616715354651954215450426507709799456721437983343572718002602387584991158735790548970743175770924550185185459773205907861451642699993546909840081834528276318300144895829823145363564569495969993528473086685194340644230995137870447741481121231809305499111436142202589299997251287306885803718615579773686573117012066425049799401961380480859599980693613644177051506523996023473965009231787313905154379792192551553440878217771758462853865310153170241822411289002113608034424615502182979605092506602427338972952142858117919350713498174200925774885941493289674881245483908039864201020287401229307557039944314507568322508463728317335369642845172026985286256098422305378745041113744690256088266215289861241855199381993671393480944948073029179325956902188790690838458976385917730646608259259849465873660218542515872706705554997850606702611688398889631591059642594494064589873559562607251157112763106078654555562823896696976968698610528348054168798168503898444044738444599411278440001803269399170035144358421714337162745763316647985272300306369340918960883813621986682314599628978124512106236818450934947676837203061421447313161760827823149583839226788666365753219978863530513749031058536350335333683630340973028660882922608931400297579288043276636861380337885345367390601865076485347972288043818750247182040754856550641482694601814047636867992261920222011082022220768829687125009902602559560585861863614475657016547524249269140525242176326472346094236160986565107838427037077221589544054022482504023464891821042735412792918218010035213572950826105590860552254589890836280824279639646481221898525000486469174078854953352493550024319149933120449358751761827080072088641949753580329005118035201503046468766133806373303215240276667359111590444651307354221815174447363895200521025556297475421124691245722041542324850818275134171255952708124064464506273879226820279186702723408278913808509653862347467157700175985160836235099231426921411377678903601247154213098798936315522506237202761198930102368375765301269033659900312678712145235554729251177288032320996996701973893381542021166197425452628225978084039412837682546206185776991302169854532683682655495528164910787383425933436458303418296403302150565743292717996196507751842433982497738912122564248887210482816135771920379143612167668606751152163488726159727621374377703037253107689887391358647248092875174462805315032569277903915126486468484339322506918666787039326217587574718830127525429982117152763545916305160195064385073172786427130802829836981134645704147054088668000985799439886449040551686146588498989561011428278357687541198934541074719467947686388881883323995383519019899486716535666485322497908113045945771942470124781642347032417963672392997863594791721511697120713674024403109866529165413606522028486755135468303907215149955670185128506814191326409888860421339546244543391784660133717237699780562743288007087958717637886073682011590154004191763716636246916437574256942309528221824924897621177809956861822317027699058960546840835824994381714900582579615100691366235812601076603808161745764325229900571993865848396092206361208391164995566934524292410432090944654742717472588300004063285602252167730357927380022370879653738424934246728911848661291631493500578898718893347177226640374492068429956172638022660194732125169012427562464679590374497780495756120707688197659755506637701620828718360924230417850573485005556751851233081351976266868875541365765456509777029584549879533237327111394975473991046185783606546534872844523371862805864917213281847340848976200027541128574004753535649083818668905561479176750745356803041579747068195355937932740299816066871897225389631493117671936695917421319714680060216923609550214362558008539672238409807894073992596815683690639869007060806653564066528557569908536809007989971158623668100609668377933058958987779302052716234526594447289614622083997459989592859822775208448805787254262741661130233575992647880905778890158890672157433693817413639790420505286230021483953303239801036943743221634736883328015392180309557766387453372583605785961190520811832139080829010841598577510476373034307433211692619787920519862227987975018848462882707520266669981773644078382348973628313138487021931075266063816937130842465022853132540175259431010809626634048890445042416489627244746414586013232249110130253975053617617516130330629767457250985831595412051201350931080266068273875581979167741021548512577122615793681476205182427909456876721004014660636703386686125145812401255195295068181167815799159444671666147570236483891886391587835787140074119987298427432192483751184448644480280921291990002210734585785935195030399301980019169347738845515279946597786324668570063949630078682744135803540750392206166604796630153830599078295425459019940573974880513715354685106492580350129337506520600754461735849507921277812155163312264723429647006176621300024830151536442898297631090555832064453310242700952008190385096863483532823747697508734921689220324039885621572904329310264746441279484235155998370293798387230916208401588055215530944784560662527976987194887876928474182763587872675978536620334818755422503041736851782047704954302493654947821227122784368608520870280990103680887708806002913895293495092790455288897944185272566330340891923072356891620655693614513650677586071931197304160276103516063432540349421159045116664670808239713075341996633432726807513126635101101276147017234532315351800286626385582281904891248733811395878843421345629836792471624638208941965815646355822845948122082549094294538188193117215529429593579671700769844316932915258264609151792280830082505606395158816070596608370261644647854429434043861840855883179566562798953929504834025612658918404259751604558452532849304208594413053374049885278575941649558426754948546974120177449619449965782740483437001928434321868306610543947328813942354310231147279586101544494767171799068958676784233539377660103938180296613300448532705531003704759700371583041422677590627555351081152112407894045775874037050593607735243289660195578675583334017703160333548239509451883605086579184512325245940867880988160853524760856600951023697653225001026648492577356968094645705612269979763952122147633766214766465663572279428105664408636564003501572781917733125779351228477760586035190620834186751147354886466004769668765668049373175241379862979747711714355872692896459729932944382432619091396387866159422279968925682794366043125736871280669149991869938230683085220787036150436474132756421833222203039558319523901007405867626969709925362278925435327749008019134243621548344385280939771891577330274746419918039857457858135601633162381640813975362642691212400769839293841835681705631789318638056909185244630244119806863263147183179421180043323995931993533463466912107995209810651613303612777466224643169373704350018980032493052350693553348458196771272935879210764258986780451816705531131531098874766930303914763012407023281980291682872656388382513399514099327335958613914853168700553966709276905834842940166895725991032810017265907592075116143546933057065535163240370492706563128262574702976817706879444757164404547463628405142251481646805264366041767678591006265544881954505618302913312004045352369057481360184519334814768877701870553239148296818666297799893511122284741195458672194645543992966314307208001365886179447646863795802836432754345927938809757605262223742858686211990199201907588612505937699127911440261640292988932672573939797219480416424964062768091572313315676480285061310369567008095811490202846821832308095205124252648261478019671415515225895153532934438636377268858489223508085844764113260751439936162551577781681915366744549978173355965156530440701654261186643741510199882459888296590705155993724285886773363425205581495723718661533705284846361627733709478045370293200072351464372491354182417066988572928608000419998445952914900539150519609640970560320634812440597204764145779562645575183996198710724143673524393311365053120655070917416610930756984958431288670093143984109195343350575155527343280125293133084411182126575635008977745190347451772658378539703056924076651907913538909610525882934174251833092158762123009633146015758595314870830293812928307065762646880335030049764881582690151427999681053722430191072054907024822535864807141323611597835732091670704675710254943320026309264038579264320594295002311626541869085991443310757466408991569922582321241486886842171538096865318843335465949672188697410657695862186260453561243702223965109456694284452653011964179030176746821982659950210146417284322747644502514614665109754664684291482391182423576252582267657477195663505175579756746472164224393002587800379755026745179441182697241675094292222176826799071616214564339927105117836158383597738393308314040858846379665186485039703360745515634156730679973447571819489273815608844858197562306024565709782337958668187583038573797388905399747644605460204754391537141291914062754132884525653641045847073026054334457062900084736269483548946242077849218896621766959410859314729884769687120167930965065000887980505378469864316726191602742676845394901036455096949688493502731009593072772728266634791086575597485558603595220611429931023866553028361141302555051383500876646844468600618831152881722441143345589350276397007623913629814590794095774276005195377707401451683397126486324790333874498352399133277678479359138685241495853803336001066726405724556025457713280905335869684896423948035490541394457738591070312842317941367615011522551052963588564689121787628463981089475005589580842100531541371134744206226123085649134705009530194413319384993877474063824712933660908158382404025612551466985412762044717269366257369279761526926589464063455306504476292889042293961115448747661271632330637183538246297726809154077242311114295896603937023731763358658570628027579662256147717039738664472399480232697064959113190993705009905786461241931105301486643523660951692286768134252161689785570679405858310732129793491505819532097715658758605645702588781698837228403748626292897177414986796350519349639036687061938545510274771428778195334234134993471617660017304308100746542161861232090879169992480618495720667704021145714697869515156052327935143582072117002801528502951550038028301399015706254379969715731301920377932047205105130869713845062434608011697561669567067180491531109806719097927800031888333494285549993494730636634209153149989216281269024373133262479072578837658777711501428090633180976353027911149085456448058205468964660744810086087775515337137489912386216031721111376477368109682123463010854275745551919438303416483348797947949195871010347785201440094095339119921676314270719529491824987363428292102945683345563593775706040409833395400150801832463489354612289072612701221786332823945431621741778808561355233339570781384917281490820896944220015593495232037225386962935475168399564538835345085375613752699461634900694410381082213079662459377481743546119779667126094429191619125377413347799028074441812090721672112695956181117750904487266837293149966709336506873895208976208638974642013292984522756159711872471852235257168129452257284245096545994084861063984724319557767664458903204859280701375361515315445216904697741627508560849227105650974208969431345976823041166433382346641354277064152536119782073516938969193748416360223917186790511607596857165401827011471976829461295785619001304011478212009876681940379367687772154862161990120924592547000543517181286378455479069458115455975937232530203008613672936390366285961272593569166936800951549683397042905995239543334573833196236245861123443722461925456499465421095281440001556769753338332206396868199780491027998016895642024025174903739527251592194267502749443444744937360560812832234035027672442298663907334105478983205792058291345553766041294826845133688666109193991965646654760822583397125030849864519480792175073154352448475450691328641833966681801142708099907475134478945233734054819162193799439403534280251495476189181869579785448546262226834308130965340100221370317451664208435750480522468034846751989994865653411431374245520596403857531735814498011879508705332652109016633700469501041152162545008130713945813864448205414887860523217878655608145422244195563939261981931184702029701910089468890204048364685530911326962236146710737883600033560796853301964922684282048165702029943796566949691168159596821674517827673138057274983889623356910489906274988340324078223075412445326653308437675967007994060628448538830475879059748434559452205589382509454740998121106948415079333535540557607732300862993415099103412830214960819755182959154072690956665082241836748719997901123470219578089563148673298031899894421777142730007072449362658706395571117950512360953424087187584029124246000829052905743698841157112189524871634340519774913954938252483315249658958643565861136407316250210196504976632928618981565688517065062504979320802903427164708587999682769866316074499301726555456508278193076390062048450230934942644778359723409614696886150744747977144063581359045941698975966190411027728456651835655866705394375802325423855350434128956871312455659297781193217672405788484842140667424844826686211473868800471557361016666945390019216269376323240810330036568840496542179670892242791660801313647649227044205293810688682863221533952856951315121017407515749468350798379926274767016883597702575066619115704397798715144275385190374544832683059270855017936924029076358344325959191954229281634406337066809546909438685247066572701100570497783212416083417878044235802031527669490676959069776809592370822216714989503219824475104164214822157296400794750122009103031419713788968133480094902843797681184756737884320807613504949623607753535547803233211170813372343413227839670367793685630674369390974253579496546603286230640956200944729400212343731060001748206673157191098796417889755331501008422837735637445984704728850785105483918469669056657864630247112608597490097140284271150960017345248491545599784540070399532941915011084905161662394557776588207184979199367993014740785117752327461023874980832718974418559515997199862615888902184098400565643192816901419356189841056536776645698402702208403621232254658572754302636273826591869428142998539852459311393625666705035012891296040381005944585023535489429081951135832238439217297648873977946833303844828064649734624442680621991272161932487982973120621398971496839439055499652818578104925441591609757810246076350221725885665911439077798711704296192262711815612758819458719314765597593218485853365129145021007031543078654405359861898712686569511377570616803628804357185295430542135133400335367581451267693398572998468360395142391934199819087744485965299769012053264418617571711355278406749723450827318453624533468235329152431213495224000788091376755327052989861586886392745901605371452082403055661841933017615473879634587164269113126589475964135116179762662325212609735898807868404602662117643031702027353338674042340970744902498430076099612704773667400292227281133686853367583215863206275498822167990689060864792429266040185039350274207065058600609245699143483708563482549859518980697909907118730240661416728178119355116324663038853070830825826344275999608691663535101519991519880440443806027146916953131802187540941219276261543488596159880345635863657363017690364105179179281141589441718857345739373463166850189339731621860758529644277666998114925707517528032432662438508905037925903440569969380164426378324490220109719436287982366725383872012258936366082324721848726358961632791879014008451077476126341955156696200580981214964296088135514106884937360539616846577829198204305523465616341652052992974593879712745718879852149079126355598261048388342631535755968583745252169334055857925864453476184856124445740081510034504073778070112059420177008037828819792983218487717085258919007140173620259539707571903720994117495958712763161968327876288474970631157984802899147561519649730542656764700787778729510355070530117101398347874292005893713885169094091533115311194105567704294230262942789499878938012017274210739469534430369290391835478937862188517546846686068019542514268532588128097870852551577362227394569920348959613744615943006816427388381946341545127598540332824045508083359194060888504248834257229301197796925431208542657499581616163349234825609673030935412599847715169341818501275723304762824472670667745293423528599104241992308612837157786747518199587030376299838641741661523668105928210258047689996403520224985195370082247903976577680860790669920359631719603752920302900494020510149011379142275751213890227263082340259213436125420633598808525590909038431065367800343034124356709954737362808067184648475327936905105256847047740390364555749198193351805525709628118856554369781629925234080438462673807263890277560968696361540858317884164403887621778153319906083665078607157037066256303541567614708017694915839373470584485723689684490234876417705954071759450298395068545489289895022029807127721147640864991425541490074157742521489058370171800034274908493917160991821651535237513275604846445976847481513930181710004164410758585413678006884611547090307675695526480850101782065633154467341580369760285412033766061162733111885951196046400686522470522863497704947747090308174799215543051566155035000389924820790202867637323463630992819203786822852422490651543596643064478721560644814960055605202415833101693958936184010098742464910814655983165313965954392676450489389782961759066738906426244736715064041415989738440283278243006268154315584453858906946994944762763010747884683830198866998606704777246094574236342792752886592961983807055698379173339450875046149613214161935537075279878387436708857401780761928525582589364377697573679104380951731225257115205694109230999875767802393922384274264098837540497211207952282169187213593579036503709542193803927400448426241557525724085965643364258451498857245983945085952134339108050123308572907149143468502238166535491027733544119712749815575908752058306007084996334565708041982264819441017925806909595463077922050749612706304498846330590219811640999041884188598444935997877944416149661400759104188176384778291297154389738078779691950689394665243455146763564753316127285893326128047927159207371792919050323728675815120785641964095291864647819719917334959076160024099433297255775169564237808990287532993668851113361871482957761609846187327570875575741383602028084350736799168703645062208836095573179039341419205884158414846282596455310562988239622932286694867809716347828570386326126088145179085086332360309402835614802701331767686040263238547902681006020412618330098171908423281753723707766697466810874405073283393557778788272863369384755649137034128989870081604291170583154694652430837351851005548127817078774008078605152351221229461781350160445850728725294668853299722791230915241525009172111850066928283663725170393052836726076630305625505489229315622393685925849181534899758101501295308579633824270964757810457045412976912995000191196956918285692355213592137365999293564019795519698070432677930773170469877643478865692404863854207597715261589119977750069118541038689798414463329144150910323888097574627934503554113659339492052318553512068094711510840492105519119116493832813856542440199692722696686978762414628707563332287125056393157825533141744511054089195619470629409956419528170498906271757112839874517106762864803562743312070668893210847927407444489076360876432903776272063289508938172771471758235586086474445824712826214370430247488446136782125513826090429417197136899609680767076096344558927030807648172142766178809775895672374881885254671033235029545950520269507251091474943996198937372180380341055129205342234737869715593102607216349322514181599533537400804793855914158840574267738426205480954366438134215044784359339965820911754410619432526398851400042734107158808508144830584365348016012850524447899375782055800176260444763800078105763794075268791199874333344937131423549989061988771697589222113365269792982956274937370361852781796114259820626124277707827149043428164937845589023665445934616485733030946292980849227375466375726776921447096639087653249073826672757797490881316807912398977406954539068291436976765265406345683347647169047690251941993123939634816835815167040284021924082941534037336799628642145324464317766859534959657996440065849715840464681999020922293290659123216813530861368896243263117768093485460318970296742948752078219706505327967461101798842987836173936702776123949923867225881812694566137154501927438510456536531780216808470043469316409744248687670211505020021665470557459756032835295353241916302134229199909841085359824678117951029805712769839629458415366010538916248808365013496145175480581829322649587480106291030349652731420492382119526736650201430297272548779731003345083686209656821423412541140062125069504497896467379248789582763863722951183185716078314964401444344865618167282202057915322480465257002916214325322740646818103327388685593320007393591445954307481040142836942607643063085298632310126967554735757564412438727772115933219895840811009587271946559198936333797749785402599014922883577212824032101467018506848959617661201142521433032870024091362901937580962115348314701543646735799087750308640214119968420108498208156082148291331814850629968639682598642881889093249984006270446366652172930622969199013634248673328260110862226214137066102901651259323351054117966335910296895015441960296701481891918711183927351583128789016969941629672821236767498557243767943147141713270674849557080862451656748921166532775922135743885397039831699595882867237497272869150533042754735909349082446606478447085729085403160559864818307625928666343246643198715807112505917082281831519821426096169111882398142645521362445017156770491913625675314210419193373066230532541614060514238300957492200301658650568738984269832609657313760555378734453500345665146089187479730329835030128362562142191418698522411970014073701276487083790275844525947350859188701558411721724966606059860692718716505565265006180143865099726165345381659855169271871757375653751631366770484075968934239330879170445148262670942107183677429006733540461021206744255783663021693909708387402292871527957380511819439987118475409228827866565220966967630986927604289268232443735176982418040834268281104048524437591377392310773482914359323139666028258809871562547890476936602605393206750584520917665787058119465370662937935178274634107348897037424114273113802525830842611159218900618878850860004532840236142288969737206003876155321457555477489778073528429960821181042145252306006969265635626052318289476929374441427070143488793928787772520043900569823551986239287022912203615318328319009415221803313935750491711675151327279686055567791169292605272900135127696351540822149042749561655750789195244407331339162985457867039197109829206127232444486263429533940811434186628794481508103140438075993123245187477283544080337728996322684557547033813707214255104475762698551785888942049528905178104877434989216160634785444422849709750583768681661577992024192462221767636100341579463683980961006870632634739441870503177835100610956623264285346555757876122120837493334161994653335238383246781222150215233577380215415597907869380068891664885538596053708964168926029703131638153583428606207670583676010949350615563776119361734984135968114415899183818208697024661274826311108608179095449855405009208307225905377267354511950174473115748296506341801561923983259367131206420597446120400009310498622813827893123672817743009151352774493074155856835075197727200460363873369368548445090544174436861546910493431691867541349861799219984520952042482291071016916124125150573115856843992041107747719844898009330595217910123458391787659547536535596935979703496312438085033127066734104041488207235370938670013967628581620331708006484288967359147581190158048584343932364507699912840577419108988871478603079722519748608996951903030894232034354526983955529749098453341236103993356680439921005985907499859203585107211871247501581090490715812093785443355295569776712101835221573302740437686532291310065691788433351501781711507972058508481692006032967940856972255368691324451046418516540679212965337236735309350399693297358350680971794234885651350148523382929206360286792249551542159989623684077011686906877539413804161566044523834871003357154126345862634871938650776815406973890254081751246286858398587185864411916698998164473815753165016819444621385509850978580873806586572944070157024184130590678694166937782075554620531655841238169425308297678079671310673424128021803181709812238713386053374035329819024031273168101050949271741520595030515335783672294022206004718033398055844329424238828304640414099283156895277772226667516079315461635136646722667479615208155591500818419506429581537469815151601171331693130627479468440763210002375369894217018572659279817517048371142331083987967070291237398995687746712667556149649261354375908934338754839897801350762429674904753887705430171151715502624152946681550937238468757270400602343522601743135023882585586186833246607971913772542108753033644052759300370100884231853063764455068695854652885633495399170966062410067025862008882994321689222537981516901581968186292016259420272771891841727717044479427809348527482908165669100859650162815269018960567012191340665118320935665020152758760903773109034921652132875961652359402344120116119236338742044691730719631580481315639609943221274892007296389067573473771115850201331928373812399831698225042295353015863164008617147140069186788290477881570763477578757921664445592574296610694406546721306648176411506166296432359427358064451747017959998928138974914965365856235956158989384179945592319964183491302713320336109543152690228154568939443658400481357109522217977429769876942148486756681973809760491100333524466091285456107762043192685732913808270425928337637401119949581949468164402008986715770744776372838506099240211127572824710576895222098993113358964023934626583052079743487840192555944215228086342270125302204395848791852311419391432848116820667816304652550144484210682816107587490356775770302334705394817701387728513529510413438641506598474668847568899437769907687889105630080764012026343218243126069692000760103470255210284301937802624181888213778661007372276885683590236244926413173214715358075110898005684868337779621540093263759731839724032291281023440618823172268666263533039158278020399751351152802870002861421788819050790573327132407637212429469932223942618142779779636164614513507904848520963309434315173053302669817038749578215876935980255198019081092552504657691444025912871735208674888154397401801165227430444914813466788084857117090694556238177551263100720067728583406540909696856356846992000425426855664545439453803132664810354246196123043163646150956896541969639560200195538390988346960949193177977484517544097011215301796644032483726329378978651409407291796389467937266585128081338355761090342676357104309272672320975975708336562924028343958651634842199452734456887203967154586944395472952211813074769304367669221080638081262755515178042344609658528562420546735018713940574084877372204738942830527751849690594043430499788702810284587030129788376238739765951610262259119655184047994364317352875153777228697189421584597548088227526341362311915464354343467895221457927818587137297774972777424949344205963051114196684027561612133495784711138613220519542836674001242915711016229688965488953892927497923815410767649490135824614485998679306684745331914712121737611351845530777976111188156538644840635571010027613537857095229298484376693431976176135057118551654671429344710096254269083057667438630932861702806402744351078527060749647463705425272454710019234732265292704055787532518469798960299723411297289633931176160956115037735099222671905371938936994898643936162428291220210638198814388179893632642237337447168959013424877538978753852429395407974308961430863356273238017432591916053058686828380612992837048622251001872472771487485449282176064458635136203518193083817544545127213655016545157991706064367673014541119108435977606109399046191297995143458719536068815347223406198182293493589004910234293363084325266153135304639714299270113147676729818546328284587009042036203199063828687327798225375583967894489587103811850593297691803553408166529680953674056785262606087471969756289585784360825146830580855384639181713038023850091836219600785953849658317551651727191682877464239470630855911392307009483532668187517336484672675159649757615901999144229008927487859756285138561781485457190228082612580027158588573669479156997600068171141555684883604013476928781182063857740839781758596825564480494153218130934712339920093367817150994436036048389195235630988909371061429506795637960735542176336430523760834813853465675311507033831421677849291634144035882743273071498680099952684620139570790473316829994812135748274286517432356593194120031342442032411330336245152163601405248295806280258100386859608651124667428409749903083755674078622774161329125281129666221230300444402931652734715637466502380869682964947618377933334389890769096548586203104662335914480882155327350383684159193552953128268041277918715709474598122243862950800421950318047868088478259751170885788706632469052155032263674354634834736974576956647172669817882694556234159464027064120219472984486928771212677919660367335307401977572251274685461425996468978455701186464110655156166852858453165630692513508401560481940723997396245243464041340295653081985448762082096274188691947035246272906525474341644936980705245828018621666419026319576197252359280039822035040857694505012444489990804055253174361805045819199511068314604382365037717153235257691629242906002257343421664029268302995028479596103085367223734080340818894534166698090213867964766179414405395777642126600818631294880554258967920845898453494303956898719307487299791695625024992437404037958851434167011927032692750346034014710551050008694171778817177673479270855886161100583028125898899705721117484608953193650648636007710957801074514084463737677264903173491392239853441611229354761779368682214046308833695380153447205792405619172595069792223552810513682812542728082648102476232577833519734395123715440515589809549330426133380525045687786888493829542419794138910215498748420694764849207742397551705493749393566909027162245687137107319674739288872171321810945354168753211820080060004209043191034541298716547453778317377862983085979788159638452614763363303303512964810829878099453167531087107205044163536984510255859410675692296324653012349782044874682322855446128003847532773208817493278872214913937663722838901821391507855087498903833708756692614097780437585990568529281903885112486121061421301161774362811892026087801848523854511237450399732932765287591893304035837933494134709995921958927782034790263806867114089392338565730649345565254608300613579184187254892227558616086361144979882296887652069077480575041632739121249545988578897632933613295671327766726276868698537272008029819215190493040027470026673340982275796508048783998085923435973158660241822968960891940827242981861793589994657753954789699974521622929799562429510992364486272232587429098035372375648716931706766882364452681634993816922861662953462609146740416857878245083136005296285643439418352288466352569387453175427968895358334578775833930031879631446567474022141143434630144138150024488493498193465080657829255894027343608844294898365146945869423223873945550315846229958365157734404950862777282568924556497286511683601766447595505228443317821039450033901682574449451133849590230605476433542282256591635741249331614007896282829952628648674523132338208857768667279031579015044130052076444157683355341588075126429202588788889205019997698924039233939319961705393137329892553890731405876016063401200002379777824199956921901292765630427223272589561779067957732994924820569709614173111669249197023616200590184149468963547991686723163557602989509171689018745842209924920743646946520340912150311578223181239892666888160456144158598149876996300117683153997720989810760095854744802736933887353969374245777037460555382029739298900977994486547984151441776325410859608753956002792736886378905489053277161830251558439975776937622606842501463466277158357574404355964653384930630338439640680001116440300198809830312465544170032944157453407581880446919459998863918234840200950688563114129872267155878183635138365592749100072410726604669422522079650257372328131410912257916972961708057318511408380467081329413135704492453589421933157757617469942842119274948749017747870975208760897039900024680841805214664648227920646811973276861123653985965050350931408452988819247672981809488077348063999665691713586143446725815108113587157952282577411416893583090721404406402521501967108635130479350197915367945721660671643856674885905580084278091864960464747849628396036969283849447103860826486102752240211344599359546503986256892444201931567158540049052625670613813043115538842038526011509271633672864176348815087854641747480461411837299702803149200336799229085188835351335387796911588569068266049330290920370044889432178369353711072388353159089852759661245667251972261712339286767281818149116178479373643281690243972841364051657368282738886435912256132105797994912516473872394883516818812416856584889028408472548179843321930209182816877204766482070868404541678284129590210431124453518682098024616788380460835023132528459172908558442873413681756777746364927938420175078543879045360020833395945073635865344493488780888352440479886345236102170484402728553767405237230787703966724033825371120135639728532221632568144082635913038125023226709805537701845946820076914180870070941508159169418677952371667485778370114430713461338388951341458310409382299835481228447892467115721958458549654651864900350780836223091939674104814576452360341984079834326582546260462260804620437392758895560695510677265186391464909160040160509353610887951982286516978916689637503904800808756220216286753685013994888019468895990229704917420294179508337556145220900273977311688176190787540219441752346895335833763680402641527805227369045587498183964229333641854364037118113459156623151656800711012779171200732945174607316286453284856431337526145317632510321025711100651328297929305243481206763738708635641301674670656591401865888633481287016983001508491241571742496567311321844602741050950675962259974825235996073898713181948833147054543348268835890142185058251113641400316345408823981697347118588173726398470951379309490098350690622820458133273087159565521966732445451676804230117511772338458522509868219987559173764286528755658146116780992115578434737297432730094944456441253279724324561216443628669247929428837556915526987023492475308027523433376996708780237049439623584687103621098939044919712552927319206903848431314346837825099356539405104844724656151511609191821520708514575212296185877675321189622979682834915928679769386907591703091422750430405899001859040815498928778473915555581292104001632764531221791283751363577294573852800885242568074934359370773011619844139991857311707854084433660896844093678232893292002625647141606901674019888728757000632530570556304869536181610460833040129015408620670093475484445914102968911922252999503545759378905964390601351147368212282270903666835059104269186618515606246587452656699703751568222315350325589746552099272845496877875624886447241914693174377184375498609921812138053394550272502775802650808344577822205429736621207526519477220072710205488940310213006730274878849903659554985936345697039915992921130943769344905138827768640265926554702852717516469449372671178673514782475976422481363752325938301636992732517276571596944976758186940967934728933396263808210980728489183460306514055254482152198084092642007565594600599912150824594503920149917648403881609567386460099057967909322067974478991583537527038039388134120620734427954799264471980958955540176577276718734198404905834102368537928540623414084926674031925691015543654455021173588629176004593336708598026401260898150489067970890922556305574774867830514588136785227228638309600017771451141347474422083625357377891776614305163092997700748094527319731000357505242577265907634967437232631852606484149548002645187382227612168245771020282779943048496184086340548458478920129139436086746154796308456375401157650987247081127159372938627864246712199813325575850451508888469542186244141689419205992959721733578047974828144387141398618528060860067340993675924882220685929134046423200194055953846601959086021238873954147816102166528614394473368717293236283639473380517272342269382251047037671952026391393657119351351952698500609394624904348236350734288316746523937976590247542921764673837259817215414134592808470476641931799107913017691921572863793882176683016312143847986706989538427541798872325524206883957446331044745434046142440849379329987537486847094981882673242102276300250366447252068163625814492973699018861522492839871438400943775739126408028922077483058358744895068986491085579835704977905775560976599116425346128413861344929350672109777267211260047389419279701493690536026648158423435942660432139741537050913949717663789065693284639766013149023919107539256133693371857771132477564609824062067662940337163958915624508628203798726688368863638223283970001487626757702198068141054659534544240726562527526325915184687526687237277025797000971022130996532555140455453050045372741882535780200579846794848801093176317468933017720159287579977835520386378424175967059654166459255795473528572854929375209269216342085659319607367431590863504948991724254367375724643437060181457629813255355429544253632824858401306939170914217705018353718439181295527013854144761075683939574222286793040745041294885109988288235146415149813945997457364991496792539511920318186908978452991143265397893838274959475219139374683707063847566778384940954063668085726330292753049670375426819345620161276828258174949659537502646705820554472415998581587583280276563368562193791079145085276283942964631972381560034698632023674269029082246526741783496957041452399845334933377467899690574057139793637127037053406886915404816528606182895250675232845694390254560444168916600265442543448242311082278791873140720416415386720975464929928770389708670765330137212877246840817771125994818982706560743023905040795713978678641867591052712818358423514874239340378962539358683795594021307019634456446330517805486534381320714932983806563007281386917757475360968269586937230982379483644144914604571752970984228880449969388931365759236581519162554359582002457234807669512812597594040858704510499472669492862616683391988157598125515590840672249347798396685937930676699610429125268861531211241702990576437667809920608849222173345778302752053521607914716687608058821551235614138848282251072828467617944426286589576818168886106363772771613740910558248590496327617076293607366129193372409694258022202948531156678038185945323237785991341342834283536248669437717197633818844770662512534966877917131919724611200826815006564222626581159748910606109127125353462228156217973773059276223094014117666087209029401888626563496740601166092731038932930470814627185339316693879627877690145459197819753717806946032421515181732579357413966295032464411914477108285010835239562192881487159207946913089713294897711689999873526580067607763533003836929582604341632479842432396339795147197850223328743186513620107004557901444746349132965151524075909698467644699570736278453746751861293548348709892849938005014901410787624073426888333075699377540710805949678050613968628415788339857687595319247529896639459547384408160017283580596667063807125486163981672636405772299827159990022060299430862698349333844020757433015851429561650949551350414614739196707515865103954248742369572627366917440042505570021838511875622833506716382780483354707353225671586033402468711001226657073086865220189919283622000756214745149805618874849953237239860507258041550364403682664626190271042254265945963982555717119273922026280296103075746467045597853209848713630404523687403160313542188875943163235731210802962715514109913891121260617344022472216429372819300951727956078973481351580618493687981323041176932811936187937144034717294390708803214991599677557219645005947046723605377004701158899373536674365138668802902477671536445697795807683062597244606899250945494360106364418981494921055170810433069711530887813883004439929951692672162332945834855412452047617004290012612693588530719560366995076647896379118933444065979322006635230901857923266956125851366694739126093818268114310104404208759278292658905780708284884201239359726482702422331771982087998253726395536201936226471886430111301272661872741860959197070815815186629285507752899392780086376011232810663996383758639429616247385756367855628454647054045555973794014285608677929216791899387955321538596936568536238761939753583771306462599597491263243844600428671361263664879560629848173699342465804433257462350680746953982088061782948910656302088497163473589005349663636616658092414030387232870412676457284051137676549865085714116942117727183987546007917778815350425853309628475876122692774050832252295422242170304165250509368191607236151539312083794982268222134099338459459414566095957899432354734614137006394253651673636033003071864144880273978743302091063350299773542089310785388485997106221159161611670465898619463887112363782970248292642477350030401996521625552219113058525904327989807915033879440546353641331468385817573571370333066160588898129055770469615379227547019074953685695039190806640881674005913430150884310605716704636054534941435198741489357652194507588781298238430961628341522203440841626248809220839128477529224900266823702663025377255290925767819026671726036495008474238305730922224272345725228541615453377748783927789264869152631522313357103200557305472762221251425365276910153183990700257843403769405294912059285386402567269272460690893127883563650022017188202742307144733667926587125678926336603243368970903382642595597663366762192535222455059611959174686989208089788149734149753889962726149771523047946136499924045831948091465404962041056273181891368627263125004525190666073140094776029182302299616099401781695787941065605054602219092167327995219733231144935730300881918119797553173762099992057089566346050429880588739190242932261585698213101309285009660999791052862605582349523749447076669905636244038768383664473596275315161171185465340436997201793680413404424875485046799259131967963173826388560493311728802589384486346732303228729036256032161289506015715633245133643920623541982168777203141077254800660963353093842439148424465013835365953672973720334853363902261602974949866465767189836223485666183819540855644888009499994017528299739951454645573245878657170052003492912212273902275288438989760633194240817781797981352675716755726126616374132982307698132532108572824828089140799218410277738391267694144182004799189519900235968186613004702596611753944025986289180547658569214724561858697832577909582563158202606305529450046450930038009765725093654111980107517414986328781118813203297679822851343473646891043647164956608675801623269669306906362226885932765106127586861838563586353419656125900825820190914464091357342620148309046083215313539668852563890482637059725530243259120608461844490909988925657737116671715141229812711611854879006997527428485100368949302478239026707660060996911625484409922856729229817021254871416145991567914075162750405384243739320360843236533048626770325717523361242208928985602892994103250959649493013598392604730611462945216646176343335988258440809179749334289916347625626309975699530399283702849977871164332823433692348393456821371786777358846450181545179424940524397622028187038539743304172976158224490943329995094159784625840604805132975737207076346221758737656361521415220236047767641196236346453488860362707046162264590386090549810831178477637419403278817306373694848307456481170896327774777071286074456956961652186790477501691515221131862943281590506134814759301124958715302116155136246770181500919068835452219577740599242188089433283565314994461758915291693336675078990534518673978531027418700404607176428916917895394363815029721250710768940908249570732855879224790804896305897311895498400799086504309052598370303684568216552069409371997553119764897190677344816020701751867606662007100359648741943486111723651258829306598344298935634664689553599893205897123902416239448078966330930175136570487492253559516701882480221730466932995723419686752795672753821693077968722269067702842903981881015177077946003886100868360721410494923801733095003545181121965922894691116192711269004858088884106160014195622323435409220490587877507251450544763256685840644409165275205697373322633347709688482294124889453051395307992980520718268709751024105569209778559329804198469859799322773663701196306582876458388252185816211694202419094058009301882772022266979460261712670389949015996702935583195438045977258026372741532522324770734636325991202480363122544487383829955488312425682653726646150698404699202238742566772482562139247552916935241384937099766362569373913666165203082481976929281811957434333159803952506928599913257009701207714407595253070696052312198047886082009242020992077505890019168827502094147716042479440867121656893018651844155762594408279813950432417141337851061053777722296659646536161643910681100272864914020673755791962676714764063955576747185556903741175079651673348569546350442204530070240840351776498039304020198716729792965573518730819044568582246668650449916427793264484786406998401153640445864252206434985624460548377705031108084704753852818217141340481156728368052210260701324464648492296224929631406215581002718688644681860941262166817863415253645240727669304860838786848081256794761678218757505226403198663134927333599819991350291793594562010847251007375671446916141278018993226914877798637665253949180552094092672894244040981905320452634574487793064293515404444160965675241937181237484215403769390588978648819691134066564351326076240581530762901036856658810793524373695579792147714257121810022337562438847634323138412552085251762211418241900184029106696721418929815164264738773615902131652679461314810052089526777685591416208619383250581895985429821724583672386017891663303316652957109570258339467515029042585933129637393075986641678608487536696008037437603171604611279675993818847850286320030781292494228120754596843865145579750761136189981746742444955184180358549237725271868957196213953547115711884642131232109577631665911607984073006392142277262082845346831291707401461495772037097722518160020123437998315238532993204889010510639962420942610311261172038637353037472269414072577536304726605705597237243557872966823086229772769383538387893161919279973734940541376724062814025845825845921499117214241700919657308623995798605354410848771433395356003261734387070963282620009917352318382585833732341574162309531398587732562173487596912179519014112736022444195402243491003988735069021064441304960019994573071627449546862233668733137169811894633098399251331241831693336292231679973147425506003279911496017429801238657363812655838877519582278462505733998126214591115327281812407871009093088400814124558662715187688777117851507277552926024522866240557358550709529683777409623490821356626279137727368229221983411144557503032637747595963435924788555294528824838208787897356565716611543872732390770335191018524533489249857928610968149225787232397871420664844833000497567394238237027755666925009633208639992199333031247681250205848754408094233483054169808877066941710858751900405219462974170982021269922775658308661622250828192608486138320514838924581839221988241785621511315834217681797744838204617774205747936145161643529665877182049029612934340485504864292514690190637271942962533455685476155257744786829030943477758086551385606975620735380647495084220616401054991255689214934734624859387780601520161766528438789178228599114751787625175282058046633390683500698001620245787670852201918027971043401098884901544673338313868196681575409053960953450089442113028963288434135187465160430798305609261665720841065833787939522174094564048980066755518925849549828800108913410081595873623263616592313036641685957607997051855681196506573583189280911196091235508164104458824950795884363128610745031948312346331563059920892512830599409248516119447146200144651019299281354642434001149598405409291569081760903410414559435056833174416400611434994654184157640093680849682141336797065926066072701390879077954204909430985372739372677944441261065502902915046174115681325225379218837424314086384431166450113137526516627342095269419075096700252672213818549580628317893341275335544955982075887706872284917574837813867626041334967272928418528584404439222498910115640579424101989338884244535409960892368198923654887016125305953989717096183171395748357760568518268467402384157780580641442074748579949152880835281713566462877385555492676624831009278622192993923958952941532590355677424224339675958667882717644278150981903088486426348867750203163427006321068790606337087900391079752634626745102141864849775555123260827113170224505618972573619602000181271154026499004793161441326310070354923384022280145327070748762815039807147995603141388512217690870019696462552186952949755930307558188092272734940229403244998899079743769807551689943944293642494643701242013156953824659192629650332958287059665190958942213386749968864983574927492996596761609844333138688370017120924329606787436546170741035119332187834829994152317728487177360075124787335474635216100345258182551613460884653657844959893059824870183931283777649611324672425438019681559437647598931339845110945587308651952954072032480481697455446528252849546195577234277493168297850065449040871200774837852231388754537481475954856464200019150692275929924429684127024938547537520765136272585136599010318940657292060984382015121049016108793337237698942922460006620275972657555124382765566502424572669981811980511068843276449879868733112279256539973896184240143095884484882806187313108070552975010519980655452148690936780996536278006443974868290285872578958458596130429755374791052018457526649390860151163848350443585444594712936065790592905832703629443388406841604651061962214230825028994185220049115566351134093024106865929400141846923323126724779147240967681141969842609481733103781480703049242984816760361687474381631270604408569899253200692968795700133267659950048590587217682999044071825177451946023390481753264836956772019461247202772207325972095601334670518727647650191469317627264565452288718797646257572750415190647533033414480568154248067478446568601127923234283566118142824148530273458281129509383963676858785853264947361780192909771720220050726221122816415955355853637966397241622637778887974045304217696598981501690698458552096759067332766676370461387814292016696259186341875303727575250139918069487583238503172763531387646382414199812695630219059139943256137189670853151586214903680519049514432929753518263166147187318804622563802262570010197775376507341524425668602303327216182258581061602724488666908536588515469055777939622173415043510670275557628899993219869327143562868024456359053491394500331420938968247681371472516444795784627778500774375034038045289134870570728900455915594668612164316652056734094367771011497173886995252071737648556869109045538534315001793268511914529404415652150339874311252000516679751024939488111568245718405823802773088123352559907816223978040838608692988465827084625994752640878041183450515169975727038337573186708193231496460855665148910960304476969473019831417681981789523078853805003799450991863860845515500210325404014834226608084990113601356961507623645977604469744290318730383310343010379232403497769195445400996142703197469881721678426847358156220287339139637447273884600525816334226550980284620033623584876716534627749220800783604194222807354580187715824517691866592503437410307918185395913388277801739863895046426089615823330502144953280431865905901441932200460761000392304713776193548849324491811452592965476184088043736750727982777226997410227691615657276926682492244861266611168251059653631240437013166247219294057186418911706943179532935263272129748010299081029854023386726051425292299846716953470989953464157167792543119953750303464866833130969908041250921622353125908587712289479265788101493172177664378973065496720533504752230853795316999718789469245661597367716539756424790533512334348120136849856337128182955580695537142228247595869884168988685541226908551090129932028629485493347406637851636495058905442232275793337197434462445594529706093722090427461488493488891223637886600229964557407025181285542931174612727432334414043350366575957795380640113921390963523868779224575393239958902902028198128051547557088197197116232360666559731806222271013231533460922435001373975961667742911260231683342118659219276826821724397425385905896399967759187594776483706081938338582104889908407135815032659105117331298424238909042590539256625942671768263064811523792615109796885066319798746574378267454172975280435102560824647073731332277643557248206401994190003163512844042443666594650844073153761268190457987031940101484345496969858627570162462433009830836012474053961394782995268385451566971591922378273605282305922535827075500521918868751540075048956420801785039931266593882962155221866055324717014784339512085682212457910841078193435291347585291970812518439096684246799288611600187345606836555622767634895506471830440006602946549912597640572935257664500014734224959549403477583465623764106397548808435599850781657565862052140453933074770222760896525912331529048652634693566135567496251237533921592819784574364638775411225206729288573026896370693930330685333648843745224678879865960860263560272806545904358887873015844382539616648918613774166731092696547398573719177506557912082239137684378857701093253228272070596339666660438005115509945470550966571547918323547271882442581271009755190315658036597663228740959499736407647708961136039907312316605633521789356610230894304438212191421752656703721834659231542548959164192724281336535471951636214688810490856581964335983292667151330862459224550122350438310182058806644215835372100367038098433365721735687439035456670817610618726930685794215165940433289482074670145421528769059337569487194258702668049697618559152606756884074929212377813501802651889860004836802951948128705791971232497731252460996537399814218708104190632803882984806361060700320877484569837891355666591555096406797205880808927924286280168747871586229331752475925050674298000502493646985344502822326462645671505740926980614811220173538887602681926673333717952224459205653623832654461684935444028897508255325290477693331225492323339563668817827209079673358368525394026007058809607419082536048094196315419113503734183513335388867457057855632076246002661327832329491521626015888859528457884617785094286318932926008622810882703035623220132660594675407989932099244775428177678457645557247003569187966188372014446586855170077447388002491932936465173984705421921873765679341066638278275297998603748951129377579208784148530287040482168638855625751355511166336434239828322574796983915219639601728091419171786281390772536854454026780543257740002416913405221423549741155937936161960281354212565361094202904128868456424124876879240027759059964374824998031460105933253600999793491807367061446685198097723064773734541725145648604498142051570060610505349441737512077951049959951599055756348994543819129514450174472461335147621833588218882003345212477250663754908799379661342375266909049562497375122210326974741931238533466690800437069443749693225462684777704639459846634371675708491888110576683999366618932452643622722928574514267614782567017630040769211488998361546275324539223012862058312382110708949187085873101500545064377006027762937237326323234441986343227292032250651267196692076879565968683089623966475028034673322276219746895898129636661523942946879041227949403194702291134946706786358024256365173442413822498312902633800217413280146669036446597060362242929954548099908943963033093438008650613945335127245635504370544205694642748264881207066868057768619841981119342504513459097851810772954668095079659341626646349798910610421758197314466389392766808613184066997327413684954948347417845936973198938041696547814397406232514178271171113892095470978394547014504276515657295590180522886832388665592784816757900191912768737241408146533437984087095600804410114228319025616280465831265753081257367304453852143188167659051188787731894516931122697277050156182612715774019987004993114777914680390589225536954850562949994824194408881681300931624349083282844202954528163641955726272872324711751332277837250247855035472428288995839990215327656286661993226852269010409595605971326408435219558535638167365653193691829918392067756868975912973354578704533145132563848889667426490491573841825610737929384982261871557771441031595098539520703475509704023804229686255993720950596703925394052346163488666484665670564910366714183833875608342090156316497159547749232153298647587417402821831899214344198376486508162922248360290660930930139073254574226094620119823784761459912407660672147255161379396123949412652783595602916629925052448679165200464918875935913354514972447250450990957982438177931444139287168135215723615877340950167470841270317280044206195296708147154125268948864808180448869617074334899982891649743981994960848494333736487040623887505357604057303742904215075997138372767483445846308292741601944211669927586248078786301495026181855841434639228238081018104474546648141325090349683625774401367588368479479416708764981160489708202918848518981453727447590437334540190290926286443519290480394881962324599246029562538615485859102330178995828444595349453314959171098957443785940887633792817987393947318270781895676241410719772530382012991856166205223793505529466307447413411464342310700560893393342217121509233498860129143088535645860043645648607040740083104689128605456141964116794831054742215908952985258979022248291756976098097553488509019897383558158715358792626776308946849612393803947141045941952097625711687115386931636579799351589605000353740915881654905172816203089599423677218873051538946791762907651985972355830579503378347250879644744556589509035568199063353251824982231164676867181739985409098744449197682760825065095169287230657084511665360181882048076385780573616625690036305703336321131574645428221752121957410925304723729761087413198208107254257386028498690711105190347922260910817657200909982074438759768333343200462506804744132008483562730377745398802073709261350209449516747572327627674215600336159232011817835686256056819751111557765750854685258782990864352561703844304643629084451618264019854145142569511135743940148350486578153099035389600424883103551025893546545891718213335585864682896481535550781946948412519382114081307525051191597198753479073001428491186672916770016496893134186028633472602241802913601582971221055630426483392596792794160396347957309898760053258007461456899433845090042802523389121784193178441421045120160119365759758062562586083051814813601384444250114127546940886336084935008372262399597052607507229076081920682744303169924126266466955332609887280416658991373773891954989237042508451911761769410427019708667862990640594247194218415259598758631104549400958955934812619591102610880298367992091684140225216102100598915226058799940022660782694164970675327681079034906874482754801069937026933228332966085742140152910211782494308053465909854629553776061546303800754528147799547408581475553599625374974263786172966582908450656809246486420982691015108785456245581467038259421310670804034849703133806569344505509391153172261722784030202747431663848040306602456752397573121417044792983500115507413863645843512052860267798921050143876038373731821843862809868839617852458087579758188269288934526596576421740239747139882738428494952620234717657616902034313161435164422981379507157319682782156902389898729889469911936306896955258455650474746776515101539446393397971427650932586142732429599303696281146132001532889419319246022850011136900762586557881044778977400478887202782883904722536515856114408144599712954519830657172889128272756365210228115605364626599211428327579756320126304758685837420282100958983738576973322961462618736426034051072167514104865354060111640938485712312722459269080008465997803925438520971929838052205604695738417758670500305616813594115764672636497443364722864502189923471351240979766934469942750442958393279866211164402262070381882819524870086399674511509285801317078626089542756059317325386078099406124542008620737560581762078055037860489609246890698648243783846542500913171089163638638291066096790731579534327624027129589529473220998778231854081400022308671880580499112601209184901333963827660817829866231950640719067318333239512962670822505761327958262324119300222792673995306485143475446653861207882252588361332022940826463109863545438404195673329004461307146456005937711033072126351763654874592456144389921248795923571889002443621904649036246782087693733814451530553205493372555526603442575447698460635815920329645351224712614957099226783224298406920307139757648274538154653300238944985242550737508974799475192965961374039191291816228396666473501296252820937037397587864082782417615407137037144689573855994002405990513600667923783928612601326264804514763529825101642138204892374551045780659708709598287250774244474649670998538816644245827810869799927144071379239175666738751980200832250711678539741167404565979321395464378802210589366787037458037715436533784264463048221961120490049875491271812236863920152601411749009414621184374742961158896838434026397479849028614393894866337105841533504781626247337544024410255224262981363825857863341914675449099909019946161009297630156685042100564145624871693437283110311346504854541030834966747941404770812616951084312001987561260225947929794788448350788856902104242842298448257854289922349198041520250547897001824326328817184759174126202071814119898983521654590716822008264214139378817274485696002366271588216149076215818901046826711386856098788368163071552016104118359230631483519669680837642611396187325261470790696001669543141527602996314430996744785886934531440183409867121492152083319760382119116128191152128355252675931119805467503741260997751817660585079022614474607192815162228589809169044100358615043466441279132747020611872513274577894487340059628606513833024527982498614558416161985421060258477866736781633760801981932961327273595119262191455944818069280419311050259975796674525645771654722653674556981905572001551689560641282725386659235795454648878170570595251121865344466676801465456340034729135709430535014209614193641797143113463007640135562832310098530626963970794551773860253915958749659663921934329892769203151533668214924860402696078850767593517891108828155227828306545353340763929281700657867819031494029339880276120687702861638826651704399618989395311201229850762911881675043392791044813338440804999897228554511970969208450129415950214330505654813040951627979092942557871345651234629666715589191417070225295836440287806083920293213656759202096948132286755232483514361462050816890030743534295283219416780082682185046713494203531059791968232488335512345795414702358493884906469440346061494319327731493545500674420487341356225768044884204632079266707000219720033113063828079188347112524831081074714361876345814731780924869583642291844384381092449081026454034582677062151855138054856099752851223183584942498642274230080001967322497135416436531136299924518461330439271259797593139481209935923393639790793419369533237021118079710705076511302887868756826501725803353639049222669811341864502208945482141461233175454728445403171019688912008312354721004238535605869329864142561020079387796610413441198183170720146524553752692657692483204091900538926845612717962169090982698465202978893981450421175419940676401801299516683281480032325511117777031724749593838697060289563247505124119922885267408927418661086026012183678764839611481826887103910881251001701936451653230539920181543119839926628591023264934378099716367752261782670361516884319263700455754362859714643324214552340798126243225252187141913745447157945819320611605016596045534402470953023567238837539527062048926660266672761871117773742903432296951410734305759543576550906906808955947616972980307300131920238513657844921580458776539447642110920320228158523532195291884899720837042472432564055089220078577422404744679228355047730569894185577335682293094378197496174529612976089106234647272230208161200768611012865899619515654606612717261347996456669590054163728528436722740052967558657724426174449906536576858183424347705974331077932467971424576571330582804347431397275673473690651282462712784865378247734270308097670606616119670192383013987586244952244481126551435287642138199800351746410979655165218488088078877126591273637707391587311674328857162300388528100346449049883745725274336733097623874586916305631859791810532166115907276731786239502183038347433408841095880095562587946324277628657187040216018604204230058115049084791916941476833666244479844292521395142004094657578053109989171117776963461603839345621747317138988812716860952511445820539774137247527077649056600850083464331220376500731570185453150483315154560903010337615147936916964483387398715339637149263618960538534476647632270367403401485321913088534047634519152997600111683633979462720125758504876936443798917557411403403819533130031449348306838497587088518188349290070147307248130900426019758256145531461152825920107763098721327704949051614992647643322216579844000435279651555702207395644171014918817386895255303959725219715525059829498763677177391356987485511774342765690806131086505757586954813166747184816289710916592550793338669040181500626839665301421902106959641291822002616460374076684998505184642284189928525673612742094393202902586923416454618445816844777059907643118146843575743052156392776691980210495732422957668723781343532168023295444227351180088593872520729564576780927017759832053314210788012342048475726495974497654525443719456577767292333279364767671576303810458199538333360714671688176488652378007986089237368163273240774019641810511739082272804232409626546151697160691407836085883530866250612762978172537519899453700976287759028890566852036116119885878372499576790145532802870353553232554365856069155056449731941900737002610829930071866618026434421389814217741671431399227296623484862443659639555779840942294561516512177667268723214437952553905451839357965072515705401290467649584398340558260006892413271761875632816822789823384173557559428448472596501866141039134245832135085727917247455109838628824172833452354705487180177521676334844786482092603312891998800779669358741569379779597086686881480009516345367421007283721549260966218683946151103147409788651694479537245515807720312033750624032608338285887532684663134315207825803178048077840559219022264013013800869431222031008477144805255923169925285196115605242153032401797343683327704963609885705550614227587589417733392507571474555889882370095152115920244344831984893505342336415706171830902204488816692053075277361402666983143172644341231773677844522629241647648878366681387620587215024514303229401459159159949444870544870293731242463068151558055428203459240409300688395300176774814514416256812851691006483891628205267893422986030717558583978521051177428844862787737612687848637961183218803198587431286706281297774124424388595205962223232177363793864155034818685288027983200922599034675721432215006255221317606729026824815487813173058324727061079068737265532727714279288870886302925616117084317476016601000522721680211666859270280052737953226176318103217421393524807888558095372043283311611062412201110904177284729888964109562485651189624604651648417840167320911539204268661819777970379226612279935939897634559528918764756395966241091223018285227467031243526962190024626665697575160441273587927013655636211876362614591880044561985718436940751244223493363447632937966262940803572768241970082910360894814798787185199424100488080309729643993639981918977424474596695317877427800746942137794274636696763753080572685293966364279397762276518709010384266999846240870364862662709237412234742320547314237177370056768112168800375847492859297549680837486427752917038679617972711055541552650402574601779785193321452156862329973346128081805661805101726221556029054699999882361599041669542714538802557821113075573637784895665056257749185934158854475709955639167950695585125261156387871178566334922792961438293826350133882019704508375778153705917312266482676142408468630704915688561903878430341332768640871371108021203680179686089870243719882637654669597567972335226456115084938428040621189596992323975077636222011733139525178694639282967678034499795688793728663722745655800020910969477243545019928887947849767840919779720201480971331456333440831365732822481891768055225042692779367519500807672549211873829781845680370850172658071797750718907458044394843062913627997070708193573091624499756244142438718988129955269721756971558320402809897313298961115943187712538343100125372059482709806970523508192299197988362302631865383844815802779491451165588324187365587019745299657269341512638202235935163531866604631991121074696567630917951364726992038342848650492943608911769333294667256896679019458167319575678525204221646859973339078625722547435241115306573962223740005315042140269733287325057588003212878165945637923206654738589826188561990793470870790641809852105511345625396869096487729659643713041740993353552325662319307024508959453052341150455196554134798772211222914092631029384781351999469856466800842933249869593882483907922926629099076208246988779884766360284769264294174725277220966746867689770131719265380548495798491014862634912373379544523013608570809498892369469943533993649956309246583647900741099217144910170053275118312068003363979393400955961957422022758495491284097866683107597090359860229672180864869753229139626702842796658278310873961913722448982476119129392801659943625259343636154914284291109737389671698787014009165275558541065071924277020200858471147512993124850476618404614693368437276844576995329100771153664510074095267589008136106118120648506056308888414145546970795124478334659699233481266188825809394682092610530628342427290325528045780120052782213732974703030817719794703452758504187946457892944183922785820294356087654101068213572037693786130730276665521000495116470020798060659742276584617616799060550439277663998275639342106899693310269213794554210403572094721174578600914623701107078126742368691724225010889937841544552207852745050839749285822485470013186717795973694432965149863033580009668622483673439206202660978851784953765087258226656494303757555723258889575909775158750390316195036507045121447462485994750300857887551732857011084378922409837220552617223684989198990113867861567931341543494644243450177567547528588649396036612808221078561484487485432897256773125919135154270615332112047696196270402153923103440468530538133886663702510284102151021149242585133217596015388736837620992788177971994967622150129637794157683869242987363117599177457841570479992224815102355415521822196815412454752736127766881255974188737777754130458069168093838955800990337342595852379390623062175985426130677242675525886841030767208420554431293872088835612647111000444489461252940012000752906593611218454168255730440790744526318667773320595930438483788425315293365591438012983303160090347121182670950605702213912603776526025984412627794222666197132019936273225734806634442660990607953695747685041500485219526138818132938254595184337036408162411080680353764790845789560495644658945794349119689276124314430315283062807721799855803893195403681466477259730950188945390636173724505023352706921602756871524288862648373524139209572890776714965435710655598851548651164826054682664074943705842788393560371389447779710365067870633886534074084340762679268912122269470494439888191404004741711195995238296997767894766999663255247802895532456669968474560193033092578707402997607219556593899863979097143734950319611970298600156189401107266569094109802779734049520501150969839537822462042260541932728822126675805744625224933651062887062854107051742171009154214831607009711260579120094751763619033256008260444091569165776084982041270818108213066830095317683101782801665802638060096763178526788628324134116738973585503956185858991156237981625955887896939123245810319319712379462847963433574946767523980800315625659718676265519379101108105724883299505892428505775130995133288175934507356531743361310785620964467202389846652497107019881502589476148212099375326338736801574005981394969467530384802001943037502190954386172507067251773274121671641433763969905097991091685122705063258581243908965894252133450469488616123956115471601727290518537982475519994877331640343803881156983999582846160106424728366672401869076583936076239647824714899472077901311389842189228853269257324501230845837071557730185272702405987980042712196803236304406258855824741242670887134472740987532127687827697808799847872450591891982511926150187294892805887515152437988142650400519072422089233510640545759821385157183405021138178732183854364168413768613424188879780995249752561606085038906373363021336103895325814839235081545783695219991668115611721823121794476643999985370343528377218541212013343433417427915479996325691447448067847208569808689648843619285583747538878514451985804641732215549198583706958338528108807214423608553713168222994599324030196879152467221218766505251647565541121089651830645022042190656598321470324055464905370831844994779674674999638773205815605589270424393367980763327950482610024873118923004540037836682776839680287169753337719863486104887457332648182488530988933325565316588201238956160274810545840316057453730419584926915105020078287870627614302922186959808228829842360129639880082052847085310165871807136803147657207970469584655259189293784018546151771023021410867234087909089269538465216463380683232503467101087937170814380597029424062952188201047982380368179009702328774033518984395897300943504503450075683332764777594469471049518107556459012314682073971932198001977799683085336861503715469910429320787890731107440564136681165467966923239098385726034422912170632330232784745879596251344281271828581084198293936761606959822639740080192424017320273353906022607535175548049769518053645284054007617083752824237896936178992522419482939385784511958721396441017579471825285557295007414827892153161280213283756353372719814719186687905579826662792489196996632799613647693454863064427068109145717404577446375423110225668381417392541743435448729993002083489047979670818337093579000923211119519737480388846409415695468020006928066663175354002830246182683139110831968862885593873271005041417163699634592798843463491193439422235070248999725433212671965221197807230296819643084605061109220792945072376446671322859644725106055901529409630128689223070522540245327999220734472400285511290931506918320412617386683051056498375967487374225145775493611303318013645040998172293194028215446642919477768592593147470289013293055036572240085973684009485104670309244549395097471175979345496441040642277128526662782481521507197923960189630605272208926184706289747577135508629859357930601110639030531102372691999330270869386583630584948090623049076350091065015020480993176751081324906391553746079300542757656258010312505699368641482122440410630545678184510818056241145162615972322989415510815309900691567835878951130973924386238005164902203213542658624541817736485050303385892910436953499688661283512186681774973112496427029272060260478041886310885176937569406917807524124429999159954900490664925131437878230572224812319800364543994965423999603467447745091625450602317239401648501243905526999783975131874666025999006449439568326288321110683364099159776014223982516484924763269221116903430633202623672491507243107521117329445422980222306980711515445890874080856512248095992659430905981957855877364451835180556748915120734622990008378941770717546126642663608693359265071189893796522711472447464134999299040514009745872761287285047655641433121777618514724402655379877258303395293366969665744566950578130253660680617544941116313627780474606371296134971186013196062908075677322453709509498126871252290312245925833889881457457970650284992426093514911934780417652164668685394835992243971549875245698386500103730772225994462758467179700345658410675257731735807088739799756277073273047563242449661786571216351665864196546400611237505552935670461454017271832069161407962837965205155288566508458362340691872693521408771565036405413263557988294113886994414341938838913218187635665499766548813144430009030847172705712021530919549426598576802638088104901378275366888201315138710769963099807242724709026145461513196188721012067952267691062420825665287965287226726103547154236791289664370346782814589837208936663353433028242559243487953323169471191677921258320398001576024318322113780595080230951241467191441548004024362800753454062704238895589345538770694628297740775621838318034290118340622052831526679385362137304614463940953247982664663386896974292904485533761500594186830690020550082707353298467136544074944816864343012067159355987154774051866303542389657724272062828009114588726325421532368340161284186398997677759390663409483994545669472677225304018832288452113259513054974533316389269365790202177316018758679508118313129114115744655431962063817041062475662323845136430582310679338841593526403454212152584063416520905857614996304515241426283941190357017654702788014383061918247528960888693922212374012892659305257276851672979008901754552400657412163819970498786876808308306499925728629590966585305691229146660102675361200482141039762251836456103002774085690363386490685407149104775297082532502024966224842825516731516262857827483156895003065212044560737473927998908846148056345017088788661848685248879953102329463035636928238874336134583899006590674001920149385646903744712545610119153727435111915742061284692894366798601155524461871370086403491854342717695921127169386541773563513035354609220596184454464413864330903542846271523868126868390737379084795280274209764238362660770280424305027567294933844796545664503835539014978198937428086388096641941622192880373992620821390612282884276449747172698654546115041283906001758318403025166132287134295557957301672056463180362918447036812951914128563238513571945577740999506432623105582135585401172394480957334991919143432220221400698036312264597933224131816679149002612143895751255860856278010187028412316874553908334507574151011552771514286896389109126929472518518110061716882102621384796290592601436402235047489663447053456445349013715752190488853685915642342174681083041508985221954982846733478489546582538510934157268869365778641826290147113794403722421627483456364120155991789451645326456978427910385899062600299547113129781958535880661845152627191155116026438861951859752176593074192755485340989836594285209877185763600028324107789061250691572484831339159144281579911150577150249038742570480124479113967542661423441416324264360844910284156268333573529598332916394225626240709377667176884620396303048331703650994771781330849738226520253209561375972466474243004319343592341660726108061172343503644127375924491657835376813879853001555162107232110449447120038723355768089824166558066547682592765932147713102048102938416653187913404618521117890050476443729651106371478824048967259528701139423122613388020183852625051944853311762474767088397222140714520751235206143284155973957598544782746196164288621112611996155946207708853034215591924893025058529280429942788853821341413013910916681161866844624554566492011155254299487755262830832165799327849095770629826141733819679651178979593456135934745006244416725135409086989705294300381767472287928191209315043172147825788516803547842679890701396795693824133780585392069153813515642052239804088253866128103933715264643745533949125196824492059559017927241457646364785011230620818454269732655337403376326496331747514961713774896308419462917998229615285698771615312950043145216851657808113250001877779871032990460708809705324490900035109222584670476639447873797797868250709918779008715589445867922934921761069749334572729494724984782620962529143482734982657207734994916533954563949414391701511546093673992560971394900551489091470896461010755963938312933045899901896598323869483622003306098665265528532201508908240342384932133705185548589573499118633127301627272297795417051126467329856654468215032185874340840363678903429204656848700827920456210418988239579491391361568790536038594715996684269573755297533128859712799140355905396205826490309176076297938158488765087111384720434044211748735992803393613855395327310629919061119774609446119828265860715735601084715303327512404293968970144736546155407481188037638202677463165487123931435722244545443017188337133115686396032730252403261084417684383386829564960729323192430801467498430722882708896079679121541321887063582308922845364515563882387831984968506786161338061074250382238639408170497956545827382078137133694481403629680963478888316397133407668132445908662572437193848764890999810507819592693330528208155170698893087062776049367375519221024077115884882267333819163784395495773005143113432784052984522681380931431650362561367756792012624663958011601092774277069571857573025571791993353184499294893632791804106509059063713148232206031908752215198785918253158103522331080820918030529986261222935997745486189110440069499414279733342833513235133789669251561062293267646977961751118862574834560028690730870128357518517287612318855847079525087193039151109009000767671135157172978008700396027752984099088209204990903327036202346918675448808979527798500775457924289597874434143697652573895921039703091626779379078963431638965784793327579250597786543336581748301349458312397557511260307496162331400360428633428292965508681986521335927539292455810708521959964855062529501444881589323575968316229021304228828940057133992811307383316363031842878169870010428466562404454031832187165770332364960914516950373440455043526343682638148452530262387713343503706275260227325977332624689687268055534279157120450389459822353061207077908111822536228864334789364175696323540606096378378948280969487081563118224814006253972660569672757330951791250619382409002666633394754800876265373875066702000453002137553711890873077466765736448305343115040798172855996160476817212770260924959143879683026311907935961408725446904702910015780895877962280422770449227560209285361176499225884062924994482932649043714924680642003507240978520207786779542659398367628417274300973708691819831813431303021587652471433773639675419339169654231491501465741560503941035456706210777810610076895850530322519979797751803059947298319432603619139111913757923745652489300782777136671326772149898699960732441023836313771498924701733338699037724861319653522827183968647808837042843912357094218155992909054888503219343384516433478280778655012784824370604613312078414056516358174026892769598841949681353554662386439217966113440744862228952397604900559607344463018035856502446118611856770076974747452951773187414014194492041223124698444973430294144563941297736002876407648115517574539286975921978703481273504813782904978275647719067633550325938017662316089667423844815784125411424884644531442844812212631653834577499071358006820799896706451422798183890293365071976460805173607938451780058326820528567873225794263063802461420381288310040939729984060804640235816726666449340850374789490525635889028873683845274668808590097784949006682855536471749847842515201317530640264036469145763250273084021094823520417163082110446591252000603319691895600631800113693137036958254533278878081598288150799582115017220659630694008986223317827798751826834968232404953356821490989378289096578684089208620767693915059267864037025388811988754326407686148334592365569965764557094700928259926760987480303482829689732252303715731530557341116462590378506248392848337252147325411944503751804766676166511564764507798972632590662563940473005177876266338173391272537072614419726278333871816670366616979103398323896701585982716218341763203246056926814346325636660123232931511403240144804211431641700796528008452020621862793713792598623439807648521541773386943346339689586764027598620736349067638991807517035189746842445393010911611103665551411592606755725603033045858538686175840359626471139670872161322458613430537243021199929197539581588649221939011201868239336838970979308998705575045580379923213117589383544882098626581677452835546312968026595166622778499225689501733102038517661157488331609467451040194699258488157347202658499355301014344756920953252861383706776153953514357068308418866606683485584596950040213404641191017732260595776149584798974645419300596272397146811508378035460085593066087165662488736853862500838447167421224137763646314056894561546018123072656383796480717557219918847444100055372110651479955127820866634666680033204922730404917718920515439806938469444494988599020731156418315399131646454794088074013754306090066637330040561413910483310093738290541846146663284976704401258413233632815576787457060264890368171120021247516547365130055693985289967345225708972931323425292923636396422140117913873910513025476491774258300085366195744258479424682598150655866445272235254385797969606466691491550785938643422340007742208022416832950127091875645054639246355126396856065713114817121935890886678580546417340132911725772811052134179572595466174689882947456069898119156484745936212205044134587184831184719268718971322361429420439566648283645975384005407420496084963222864373003356998472027078901561533010038803224761999411807540544897778541005897685750115558958213224784933131907953935577696686915120106013573296545726676918486650287931772514371528096174861783941898605781685350308553872212974068310532780933902099385037794892659533364117919699813685375929424701314559825150310614053281776575438010241125388899847149290100191228620986369144008939173314135837787330670497717352755895719670733160486224106476020538477816505026542563217620177646071275531845632338436226870056962737807541105331401026438915339721442434102827853720012401789989603480552904733408411395899933818895183469834292606967397880407483388492675228129435346085162366503015977889071758936178576574004813537554875091635692605541999992044580851660916205674072211309827048254444849506040343304277094760963216316046738313248355851505053634901682758496781602529285021665330167458791782053934947310546254761043594985824777551185050108684822272754802311831423590915109779367360841803989361287092409773709378382990916520633821745940546122509579399361382933512271374149275259075191124695437527517455041414332412934078723704329598732735289346198839775141201072036306131202326637196367826672760113132990473638317177174036732077637698526931339690050447659427246807730896603460376623802366315882039392032620281249709571189868457859492033758956460244298119564240798722631961083065701332267716557855579318991823467947175305113788200790694643922259684827666103027802595883775882121628824117100468179197640754488577684623981256298431591816758217581086066943553249894877293262368093082893903192697935720086864636447345198971378263145135240145358680538438618690062034609588987931814667464170124251735506112804432059734237903274617042924302450541818777220091939365552644529561381452335518963834375204442037007822554401038174663396126902597534210538578049527865601613840297236047410362796100049797032740398543540764448345610499604874227394745200454991433534813530395680383509077975428617586399785884886831653245223434397646680365220092599003124799116876830384086935990159893429411872809557002620289827682829099503054542570265863316808247568447692039922284586141529423832954274030853031131910776661461260301347889250573215770036134357830857894912628814882598060769505414893688147204341610583727017293035452616570849785614472697911520516339582588338688330810724833475062006670905571274692976081187472229312262956682541623070322598998416888709048307389811095281639196828446962586430125604986823550937055528854175940415724845453357725955270030584821443234508499605857134747322418084346694096576861129985476302742498763357436586497417232951938343981282901871251325197780763606253604541843981159602292778000018559832628491464727224956169964494597827931751520515696983856603980559309419276821080324525014824207494679713193077306150437346468326264708218011657684529629882692824331600179917765589922266010966865084287136344715456969003380500331902774118933484138629462573910817658992067288826927686439567980377708927353944004936461777095231194491157844446819699632370227931215960486255241071899622020395804531342083638439252929643857582975607196111844724019707535602239028069935301516269903488629288120834348525757126875241320739824353482121629999600370743773251655670836293250499069353256096024412321061174860818726624045224632126091958815980370842322574197487094869857904155363388394958290114514714561543420656858662895750928733989547979997428907309795780374207656038763430074574905504734242425132051614976538770068702067128582903090167984152699507252895292112880253487202137533935208577688783291904094511971472861757015365512248245333576948094963121994701182278378826889140148048276498889064928328059251753620809422700519318291993544662913856103628746806285179813644696046004417241264368391251134325617579722380194754028202586249580906040134628259465398741953660358061526319358796981220600089417857292018564195542847636513860294625297990741702564199678084722919375673005087920989199724666157671196963034828462682186856106281660250203369996917121514640111735141107307150084059510542945239015864666163292427481600580873338522200732072157822739537549476155984034771186330979806906617790672649271402857197865460219105323222494773523845736667300345191264211980439452426405674643061455606890343607914933743379494145261165396768320360493298229177391227931303634150562421809873601410149644031639436631478311625596526706709213837999898043283305079872101908872121156430823139633344262400467584230719919896980330463677928948635440120089082292528772529972415171737379898071748301350132844771172329554533686378895663404519961621235988796474499195479962240364284530926665200220158240273217112485864399198355813388040442909958604977525364444652959755544847553305239568893911541017598227707851524195981087285148373810161987465396959736711096961257722460041785691866974767383469379743404331967219424600646214956351449096897356792802639343719364496271429767169105344326769010209452193467501947721625384694444837966438593049983590436599331663800970335181570654832301041730648181864410423650399599829207998781333518240986072553345353817119466146604661221153935788296369054613328410709063197270451978654101554021800534488253862202712538509322808201791267678285762321918662921352306359592223769313257019961197231734368180588431140355299978836665954285913331676451356050553419567551424475272653153274615100075313806342868964668280935617876287976121217915269292269763131105162890270997258034994996922840579529662452166843926873944673361818612692463881422887114365549148848223741641894484151573636027444174588037951592299157482394844037726386058054081486843427276823196708119826197804063220827025695422078113706469372764014019930229175917648711777385003728623156712732723450459304878077005316915293255130061431036962606738847805824237772459218524224816003687553715419518391904877659487048863211970434299948762581592894941097224673870590605518056912277271365775559296930779236742335126207656667838191597924892238967516229095999965856468499810586486079000846544077647343968028156274610641438340244594175870475394600085941281892326327120128386531758315129203535857348894059855980882245729510572274200247472011360254662770321736314986434040165562274322867755901837487421289243059954623831307395429551966736233282481425423931152632448700814917729884325648942070672763274383255390921323090820750315864972705420425364977232102758762464133014423512189113381148393737558519624843271651767922796719808543260018655686762475070644914221002522444154299805449340086965577733305887663317943460527864083695250035021849161744796182687248290048709711252941543358611762769126560163854299220231935640493892559757763546808768477412174223235027879191054296789319430446536369638587877880492903003642912885275823319350867442384020561472938043179428802489339990405812426582837721673640286591466431312085829156442548450953036660936472158163103982254269718593015194038293752668749620944728599077008688542450540737637926970735063845108561072436664452167138047562278705700625516239662849708885782452309158766897562725029106823909296877022275561620099186724885735828197024159951095251744357516702145407838093415329194612147044723457683603996391036181980443955611719730488167275087898985154295253442904215967390849088092309422883024412514926060585133969248584089451891959964792764459062775863360938433408053415439630660748304748470248436638320519252777563294508530583001661378320347961613040732048502603486927470537103023978217997510910597066178654164262899164255165320406732661749028749529769195893677679958498905502238791381323374485096003442832966216857787882603737347750785245248752260538698665733136476248950981905275797812057042220470037728566345067974064834247919079636962570762127388001647822137517005459068132540361271097727204790523854393857862403517104881666337507736871252125952657279978965750506768172123440617892528308974568175495305426610279745317343007056245389079045519080029362538456658197508851090926107728944759778025284246502700658217344667277356944118311340464990088164643325305719268707194903951795547578153778882921510084140343721614189989296010429776580520329236239880985027955875778430428127078933671276531976985703672939145236000778232395955370408260259301312705559307870375216859540912534812165969170811024152920788714595483642008252008426623569220910919114273829965053207868456083579775175053999337960732750717461465094410190665266042354670680219767427405571477047552294952276532351812873008006309051866655114979516473658388689072154144280624885679907053456251048711549858207168637132721008849074016301742931177161894742389105041810340405629545422058974758283060723158436293675110463878787955017848180057878996848686194011074486063127407191496913606467289730143357363800247909815530402666393147168085502454154491645034445114421435281768130555845835368165248232724830470721920493733017680062953628728771580454718805536484862556072937106251278040093957248682960303313610005212143490015740513614997131846331744050377821689042806910266349197925248668197118405133658007706434482647582895855015505111344743215890983255770114304288833005565269886518301686324914754274626225577529363153471939358280302728280831962094414682336067719109615464897083959846115624727973445574142897459823808441308524129480904357449374686276000713067933890371882329923305257842337713295163148349882719983872244595627096013148886959582165532366802773750017552781461710983019878909674121987714901251192832747166503672979405639687186136295708622014563151440802494065529464543652426430858691036394803191746472721984045356792181480795083664533335522601549105471255706732731141523228153246717212371085221601355141124179395315626766203532420382519413290083734945972294250073347663334125070697840033473398806191050911078694211647568051254924272836547190383452835069909141747938229479252038980741258091796941946501247080958643181547346771125484127632925289137010802015676295567281500754573520381688504966366204173500361781632120635837928232479656949734238118144071063038529538054645481000261090430582860896862804164017227516422863799077298885756373676738072693246994148094099474868762837915079543084247489460435975843492398344624194981214931798979403477564753178082490227052015118113885326442591193938227506697566039142324857923228520597205827613883016197534806800964664632676284724784633151950687189018560229804310072713128448008826771492079997699218477280905124404162917579173861952497162926286772342265893194252238415939074552216154598308329456909929194987732498079834817550755352834717395963465114888128239124816466554995273402092755152914684333118483303065622928319151597676132005833395539716120421133949337893058267112601217608558999558587771648075426050372841619630536194881589358734543794828592356400184521624355865404112954707702290827067301358424462397096541447141057283563758346448317230541973458603299623634336388212514441978873252980236418309005571178543212887666400016875346884619872699751083063920862920756092747731096781796583878141828713861780073526120312096343636442597311443550821625699958506713900811299852091256584672540319075173964701858694539299242410995851812819574345642487028433123006644752939631991710324547690362601800861251844555756358428809177914702494508167484394200727018841978698343143034456604588672671027765753011081295683665818450704713880792167076558294367741270203762701382113419942526688512124599505803887343955519700076883208030815295615381151949114495453283967636405782173085968922025841558677632805201111627503158429205670893024825602603891159299816440106560251403054761183209272652198160941725509415828683127238891601422024504737041670583470691237567492327373090663732395988935110563759674962281498322555267620790530419602337158006493860371061483002777858946874377193261159405567455632073121291642700962198963122125466380687015733868820518570664588040955781388810792457961698720031376864061513319956998162970614310155146782681562825355847476911216392248510939828843193523789711811690849812258080401001292132394142478358127711076858835948253130365851556848333945851589058117890461414121659957084745858105318690099102399588609215105340518973391998912304667099010668445096178799516399786571739829887622383225015102044894417931470873275148178896295344650176455627468068101613781692215691159998618749179260794380170159426113204237193392409670562313513689142081656015466771810938914566425151583053546101136929170126156942583157713093004292243733014640508910238681508318816942301496957477351007199027014600599722004270580454598735209919745330924720808308087350498164711988093641436796305459808688902368784992103385869736353701030138263246535645695175084113167961997441802501904970615756820442976857121510632817053768625676785521844181358754939184556928653375537451414571930863962934205804091817759152379601807627809218442748420027980850105462512271850000086839062532691999034232681758831795055503159110206936038086682830693552524610500917899422676518587738297347283369520405870072129478140668705689905764780058135148553992672615423842879394186568889803168343937546432333218291204925634772994043030226157834151880939256544903429414058058030125090922053926324602149629078440578739426670519013906199906162337687283943580374162243723792919054287863643028840619701796222746565866675628005556709896041231827624426790328011503643615693131965775389907251882421900421785810516974433747677727586002762836337066871280549557466062225051866604320013665422494794006468994459694575358408937229512598439632446675246096755580099994134684294476994797128272561618372272414788699611769185348582364802384069375176721496878844156787723655323706955285831896108124605714461551341407844129214095760353839293830049886724415912343526061084293659317439727672438267854078943964187002563172139043335766141944723570606306520258820742022415508141848571839370963337873059372911201229684640896217998820743460273297836225186595298930627938089661538353510387803777352904664614673473718158675639772030808322817569761660910742783609179196909077479729615554588201396810991892503365006170713706706727846548788423136986935554172743727126218657155878725621637729411150768365408421766027877512015377114078907905250007832090503427711284807547513464487690331474739143273671837480312215434348805884380408466565238449571191525482271831708220075724704407820907822244573010562782872256756689614982356585765986604236782600562515717811657035648331319442559843177307677639852349972127240124619825473492185857909316766060175994060795722321157188339467352215399217818693699564441192410013530095954452680883210110905688386439124211062927264844803249579546273034224005880372367827170083642011475113876915125135178074786689342519021210293936696131251851506663292185055310400301212465395633432485922278227895953293600057849876219905533996559048213169156660701889773406661143008473630388179419031658487743721325581882424542424418717984967745838073955534626678189032746784617727389586694107717684962968816072873304635366967200623308772459729948845649706993544048551695289093686804143656641909115363026050832503132489232025658217213643788626185636225677643670097162666050685189370320181874985905986312217666316895307881018299998807115956923058267635914297598772605590641986782315216105279560869661576128400004430272966276362755203476232847467627177621525622943070206600421307885482022810447538986594469864733753607700473121365950251285586229911749756196877431671795069747244545494651343327691670614059185645183679842619770795553474198721706841889432344793676117295192556764563392225351323775967541059253557844232524138880084389590081496177576916758717630722347328669467863666099237605506986943517485085954952843732528442443433804931187963113909305695618629420465343353305601614123711267300192887983592142881930370377116926023730653948067989495799473829518600029023916360972520786101105075601998222761311559175320244127458650615925589295077482467644857090370663747641137970390364340961395159120605927857835289127929885582180834309294415779371810630237275480685948677889549782024166570870743882520214611018874316061738099102547227052028595339601850818532035463466099719258636552966757975151329981973364990784688590801792988824157600849321590417911832857698156882504374139096926361461624009151115561983735958787671847935233026616087508518469029754622508561506559363829092609124803385738781195990725012652789472426734027008733934405619579568996668647865741597393334124572068774603384522764190775921383173933934370781660686307982054839953849193283095619535735127871311325290186729352195032722037112757139124004328826823950830897762763684713602040361571424137301060420487825670483657290047580204567063589488998240011923087186427003813523951965492166498081827002491894955642851732421605819618405871633196348692107169723091500811820261539779201869252584637412742830829859539959176466928946399037970596277544766750047862829190839723316003606108900343571456210676249878792070456789916694569970758177997629663865561693358941803875491361257588799913382789829406548185677877131102291570499305725993639584046922377093235180599206512469664992507767345696797186508682910892490834446103984675959177963499631954380792471475537993360909327997741341224877692323697981907350908386167434138699848517846910773170593451405734458994178060016408688339836714018486335712484446562685316217891898844294676901524085775174846480409308304110716524393299994373129336264785791067080949492057240638153296333828417245762208153575721116511474875588305556124814327886961149947350930452525982952628843585015421367309760671675884082603275327935424674348226615390283378657189118822275926180816699057234708390799175841193451373655071970370135806757165374864867794138394161699470299488908554552505452412436578572199726762131649006690075545198727229020082576723635143555280148149354819374577637032989135117177131971036821682788322236348217983565870692292503355720050226816824094708937857917231779856466824352434054934049344832060414762784966426273861797928799943523433993109559501737222762741986631819699408314742101070902994716699228387937746163016603134578143951736177341885637807265178352521419279109853709234024289176222886728673829516909318114014587053392184289402848686837631907827411018498113297689378326446380662542904303052548853727168897117414103836050323694579676091916229718860033064418146772772309502259233259986298768980399248543479948585649939983339848428383989057816411089968158679802475486777842287472516591512841199607690711118392395837279817826395571650030705816646123155449375976803451535175131354349571091299885950005013133841302942593567911770227625075758841100964145969700960018531733963449631267348996913113605712989358055418361791556505160264942471345654382224649094310838663676981199058733716533050201537967087643794783854953953870282170966372408872754939775153695883337848660405749127893107650906442606156608346665634489745119303924289032349108845791831755618254743678587285103591519861762930421146810078152333607302752184217704311910931524560235986127512436202840170014500905629817917084361370280476944622201466678974035065072286849450030913521212349861836632012174978540511134576789595532844216946872306056317121426840772810673402098037053910343735503546807622953315250349956935699610416654347300580767438165101380836671085184473406388095415930815654940643590339246678604052726346112189460214448914288306607607518439821799963273771017519634206181572629186086575584927492207602632026149467350805691074034810444458083972866590772649121054621201285476503435280130014162779430612704980796867543333342202116224987046932732981093629359724515283474785027304528993840903642510706068758400491960294916356709463453017620499059866736617635718350983059570986336299248537597090002930181509072316402302070760185885879800340376712705971436627467338166615883477823107496942547741762226898559148706995372982436553256020214410096636131862460909049440995779375418796071863352823696413105980550186405759849949620066239456556659489549853519999098626339696964777713035376192644770055066363434236843630823019267607331401269832460909614283967679300040682976777526896225689146185749359373106911212358279438793828179588755965079786055503430551300116619747828084008250528491266739583553681524444194357676751026288065001756916760679790106034595536912090227116159023395129549866417901751796405149362125913897411800939635978812725624932791526604473289328653076945233752714701452334924084532934489790883788580241444491413383863131787819673708033121844570224408590456340566527097939848371313829902424544670845900326009045054016750323566216134990560955025987255454249108027616445993995982738155910908407749425455632694117954112223012132440951809959461437036450165384940440977364500649450743475804205576587889615304510120934973323339067455196761437549927206829764326990298462851751651053030271890429944328130572772752846606057619371523322312934756204007255886994012339388449152000704368035424272380141638334911435780424300499035948652525943619838363521084297845966087658228313744615775389671052630653508982829522657929064486357298008635382125202935769620312658323794404368609239807309775830722167465223863867074747576756757492361907265853463107066554800130857261031616993838429748719380446499049989041279028687209997636343204591278132426568543887349664553994930324318384095840770805713523839219603053827884634775625152461541645009978532908242575348002477523183736271852190740912317446605814421323790906008761691995189157702860995372118616778326502415647879245573607510103356080821317970892154641671710810415988595993718576037460559481527710988082910580397742148884712202118353228671649056012077727580528013790912228280639560977408394067086528366342329357167790303538109446333921486775646205803776840201904486758248104329119160467815577399256171514231086237425057095440580195416361959808523695667844776470898927600926300865711059957209715400736530109217301682839738609458696899101396035066527063860309731570663971730527448327291322118839274207744255265896824450560588813709538594083303204233133144191454683294098369232221278019147275451494199834571472654873338561835717570948915821875763011291976415054342568143768514084625330648244172333343637368762660551064419808648751239486279257338803481092515234581961797363530757042397656929198461717910866656226507490547564964811762645294244672347530974102596554375586542751324798905015946423169084009643091494157868317955606004170578460901345833561746736522143071570426156185075022169355891626581527422866402282140717026562862921861005264639578576487916440961148818366159981688511175847488213958241806508114215322501265119050668495450698846409780679753228677494807986774723345970363732589166894569238648142257779210895458487395600910879660805899407537683124745099799970979722520265240698741161706262307368728188628644332735768764312833627199463628460263716763968596404245845162727135842065168238864972913077547739322713241122422680448168764969314113042446102460772322498379376412386966473778405482049369250773799825718067386304162066553603795362100175477998023523572161997702929874553373036077286620424622666249118541028934382627886416684235810030109451691021224656216585098884033132878087962989213595910157945478884573125984732213759558385858174056825921836750568994409215601210236455698510173092837727552737552926218926345945702905189498852695047996068854504823343796997180047730283326056559560232730629498138874648182614044577919086573827439005869200459785377537201752558758040834932782452438661686318486191344387819124941664070301126803357036505909765039171506065135389977564537681817238396174513180435969857357396858122837267330539048022557469507001952698518905138898251271379266151858325794162211625901235676264567809307536734484614583585461024753662749468574602910304195757275259906767311056235626487474399550485605872907023210662339214247095691622184953196696193052127061012194696167331625667205200734167343059883171083841496337699511430075790375637647585834866055438897720718597718231538150827527030604751752228937863268033920972261449750852666931580329793754222291744286792434056023464803829393936010469441687134751603062186222935143466384010004726047236259788365521376013556982953579638292749781948583590204805440190804929528110925248564579997773700387157037389476686875049965779927203538339387986244035037005277052298573307801223917443129773050380863685725416306494103537393872561656809529810441731150098184191226925036838457261032463173452990805096016808269139283207412812241764317599228578143326097325185308977430320970948255216254772922184787337623138087483519837870170201566179981032452311457710729911770112867360125069784280212648673043585582111783513192456500976824817628551633689470895188613863673337924229303801012691527824249566802749983800484029696454044847538007855131005505670604782121941663594814737279954166953609464508740358534329205321786568261649800166175072111292837924074099675854205471805517585900664517919704983403469934005093790715326912799103392860247426203751023530561369028131720041122285824023651713634404791062040492090301122823402262345311098968578875133807478987051056006422937482706098696951693247771701225633850427002307934831121619137999743272493177890658633686186727861325613374314906385874023649919698606693065883570356552365663304727062946905222185160743762808265942141622571853125409006910317810124269702579604034262959893123394157844223740211216577311656270279176932093946628572147051191174318981677029023166397556704442741507315356783057456437169303899191212080453057440110034516246256070776889851073116841817628925286201613040881716952596191649085201432942340856403830718746962398193268924373017451371277873285154798673135218741924472243123273972386620008961919180462149188176024357543384883428305239505364340175407270494170655546811589863774882398980542082539232144122652970893170585521084909524706066334838413825847279543767352294687201038143102711777389673004897586413333091481622721978136638181920045425618732416313686384217804035609461837679199283796624698402890801013020714980479857803984367020137085043763077582554744636237487417242047914359837767612083390527328548117154969072961638428644889593563695004198605474937449743232315420603876322821632864113309111184708307593185360921299562206662256045154398002289203003129564195482326155617704403174829576680256690532644183544428003135943905443014497607749163175450353780983453749156699290149975963470717775224619817949074968652670621884314721306697208766608802503218183464372883743384426898836524535810737919865458819651269232097418570058946940493644446261782045494409133691282694358757097391167880072525447062709758558858105916874617829044714365305806301281572804924606890804819084348480722053427270586821603136102359159379250941873928224968244699660466955287872883112197296329657825369685662213931688265261746098752453647937187032492593032676314190783391940408590520609925063547125436844270020150025880102864426723849739023520566147096423903365317864866089761732879393354945795576869723545888870438437760989574464244753129984317844123616287134794217342635767231016234731710392663666322706733525853414940884559600529739940979400443813579802232177126768862324428366000425843973146635719805379054917666024476788290650406863898414726003260660589470488672095348162036634422685161030710558178073189197841479934709557859125447358955923138278882648071559862919001425578229113484408297261263266682904682485472350192123448407776941214668877052215858084593045445877966411577819334263469343208324978799447329816507164198638512378912537472319736380789499095408917715741427632765969430095703750983261109500092019509632488334582294980154103427312982744163359790192055060325711645953312383448130620096177721065088715327391467718035327558546707965880764275674526173859483519604470814745146946730023342479401232506922061007188724776231032436246081902834321138498516968632945357878445550937697273627808489857416120883399138718604933954261253197495376982786190775762250068114836827406133402657573122456085237185636058932321449431844079402691999738968533429026488238603455117865316214947669478600296167329853611865474885233277064322638952366033409598258516059445074890394057706920857085945998294905073058876050651324223448034500569219426247367109538805044885973613622039777234184220041877434876909239655090412308446369573118202546200105615026276402265307480060802376989167625228033736084228762143175553069824190059675475610860752249894409687118087638154964436535005338333553165344707468616478073786196172712477602829457902790002266090061552219425134889520770610140778411094430350371222776932329498026533059553907723060579482152621520510217174958448230722212921291445893441304336188104168506202604243204505195789267627083362615005118144248592995856349835631721909823905284047424242440108356915809868001234447499755062263267524292233712213871150568093741384422211173333158972285578869999135313079535057543233653205154484609449644890795615613237523415119397491992249797627368273271677229498348740241421552053906792202398505702565827147321922781489777923730654851105759439718058215011418481819510013881087654105009798385151334724071922909560801422893915788545357311826207139290114254213126013526515787281695646265722858792789016098042389334518157563666563189493155996957527626419765071723617153374799549260515017608156651727868202538106036997058182949443350707724629533368265800091621364181942707457982250445806266758585467451593653371767232483924897890479637685737485133279374588582389285210071362781568170531080299548572380399360384238064423449845016025584100174096177968021980248137501933451280790467022937833062605923887819885547904622839405841377860465711922816043486169459403555847206713155083523852079343654441636220521818323675598800538780516522766200013702778782369162775673392472200273708955194566604942950565922022153927891710049915708216424312034689949720576426343873666174598154458349139970750060088293843904646484737629182956267929165071985385576877365990065081496454667965709009991272757403276990102348703144999928884870489959738455061856706269934446370399824286420016950493067462396622800122778139663551492033814696436401091139044834478820951093128808219251609226853394654101527952445774277187310045428242081790897060053998098605647547666079258825141117255363865090633730378302363364167612024054881306066447766038413806069701025516334414536831627757240800757802561580705575927684910305309599480793940193195453814825577492856117344707054620967736674685634860963547715923943480794341377786827297451757098151982784397120833947885152172158073310422829689893538121032657435856084574888360597669546026285202280838571656002714494965071868303212481647815319289845740198265677940867121819978131082480124062536885691785503261756937219840386292038595037257090705652573060886717519476502248619785140720527099882072406609604313866250756012712504217728179847026978383760143165279721805805595529976171283511097519262931432334412323239872565345471651988941814027333164240422180441846198567245710346986864112421181090116330738719764893798338616569310423129526954000833163961153128074773536190679602497634428650859322717645876059742264770844689893495381042904512951912584649107470540097686744863627452592615594931646167898074604000919528655067808833138089309013206873522458847755244963882668316457171460030878436790254375033399072770173933804180391436460874945997404896485474251181521001949624116889672361929312261549592047615096296136753447709009583866783552621354609510251496088464359901617940884237102758901500282958813440687790394902406842628823468929148801322674635760629432076391819729375989047048475648209306092677671451312838891898063929319739789631431789361625884273322262390228635547753009158087409424913055693765094816042011284325158515879796049165244376303662960020320148997964686326546998376293366291284349187362907400342506169315234839969631378593564548199759169194318170363501860549951494227865070211971057810648176503362424288559184691356568476589726673241621297788027661880806266799796203463708298784688146658171411160760756726774953910060083756755763786085323971605161341310132344269025820713513349815789513463715109207479406288686856532356069946168919780894376463866120448618540946021991275413915633962360662498914490835655018224231841137934151361180499511585713225578906731053612944200702574494939962608556813994340804721617824704419536653551709198295302031536176308791071488191854577564229147330030117147262388910203917235788204897309910608898635640954128803772304132144170599447502665528911433645007138495903645333417235218205648647764887047767849190548934062122893771722445123996097817695884651874681996498474687163641156326197877652181867572866746828278999349681583202558371503568463986786998151935337792342996894307806086882005774892266511280398088088925176777501735343306977804428118848422460279107296570824223026677213615260333814475330563459412093646348518724952738744637913016565104414623001584871193850109511654740826430629494944372576891710355756567551162304492831250275466364460189117953751667035866097588152973413885326377665721866890353940857331940976322666201273092618712809380104103037621024356812859970035658885426911558353567224069436000214946673568997961938740171353929359843018074921910421949150433855426811858544627120354187040994585066217275700138865041245982715910949673941752247441989440428944721101586115126863643171124066861454458478746123953082395080115253678403355328605671174082178597358640758667081944942046873835368247685022381120869059390132972511720196230345231315977429377489075582852282415190862710577493510347601105478135481789666746340854452927488595697508000032452011085175851649114445308982193575313541616817487877131393366017970593540767479591845947269183370788171308880995121858793939152029981640261388861604367003687526140441054132910236768168934367303448759803201970279704650530204153846879163334186121933488784337593036393718344600654035416629442187194735955951178495576316483279253989083646093828080269036439828949255936282004824886340822772567754661830051651635148287550402412675218916720485953736854267977574443291037388864415524409949038994366757868695552744514624444834162057114804655231418767735374742115782373124189623974589505418675852442249250745724282591589218778555036203986874443648282062158287840845844076304346968558132833518500637911297897929370023020921336987386236997227337120279315885840223361400716639960914619389025897749500673428554076443370092972611990712471074457879126976817584125188283190675660990021420710330021490206876088044392795249792800737987744229261503483924375870408644716235891111354452486616040512707331712941208538976168981876579038482183540083838190904636417641153058720478236965749424257174710683016710315462218103498968766706365603408517722846038609517058296126348290394056508132837986928574452080730201707107005678946131619050055717650589069951080742619311329089949414221281864975016948057947049903162326524964367716041242228635166478099197578792401502730946658266041033882713706125953680375604238088764524571779747563882434923914151520650681598379335083715411436433305257814427319184819634450755141728517337638895618538674314290676237904417380402536060419172905092687772768470664558086772083257864640814566067850438214917732994813133741851140754006111537016785611708304038408653521975426484406230906445712297123067370885046508932653135693235098842170582211467536865157943344779770769647854887430397778268621635745880884067744931219311542431074146516228474933116598121683406557689382229359039826832414512922443723955424889794344369022810982570792328397853125807342247558971313846291649087722415558450740223808365794544139168766892416522253121285584766854399328474984054841366756090585036629786789960462760230468162234628806979699702767176745605497535856514273046004442472578095466764146451366061396873670283200502604050004908192027084295256492330833159248957286546487283612967188690835268675427265988949088783773600206744798966182966624545136927259614133039992401904984403334301496280012844119093988034180971855743955744122344253957707216984966765109380944942140365716813443944791220598951746448567304667449741659777466463910110279342890640994062984380420058936005847923108765829785729846751213830839157424489370311996687234395827277069217407265621125194260287534192691812878448344544445437708745452070084412905444461983887110586713460748669344117675297225873700712306701604508151010846014370271212732355453993648636276666016908070067645627867488818404989379937602946085560046989390094093423082379297395056336389527399379857645994958581275905399585760430387157844753519863915010242968018245653809297074855341461889200489772022495784554372166390450086170989113068349849730215573005691874056122365204685011348660146069831268009273414708592584110886201495049618725637318705692295468925508135642920125460173663407540620185744068033998211505376938429861127904628503487997681045767176311308336111925452646228596708276706837865490085900234989475709233942161003337242859615886525854908657643976611568616070716413755243916634811631722055844145027926187439270587390826360680800108085524232589904658908344514267928989753679290356864624007005956546836504023622302458377177013434112118326560645606545919780295823108808994138959014489110158031506195520068432286431670795085329527825141364161538744189408641767812940056059939774585000219070902763360258245929403830919222282823929819275707981113134691964513509976139621675791475141278419941737051474364318133647753018195699349439180895639269558769982033952904451589253839926934468876184881769832330237794166421952562803097072750283733649178057120443526231071152498733875346959690688221376100279680080870714911856936911293338843439660815203691749151869970279487931413601003263665242867095182565571594935612442508370893231567091212758949894724825683948458220675716171000504611865211583379177151995778072581478205225410294063405257218496857333439678381116975585411116387329246887398230943618820910609035042790598157488961651448597839522715030022872545481646947203983215779349485631048760317385766964876998609733539641100178855324698890168583602497704624254416978295131006060040958893754305821847174001846199463741176287385683170038753676270312978440142451160014362048096619269354774469711935749612301814766807526834188093532260196805859421937335171382439948548969034217390808246534019504838180974953359833088148872322074013916207970772209192439486955646739148609546345134813692276591184605202003020106695060540494493946894762816024977326190717392178867279667643129618648435416405932096233731146694801625868595023638334776181234189125947338447022316743567217716389479562580960702415396089881088822720391942557021269142282187273745175410831856485104012700146577442279000644457499358068089122468383968470433526207445066008409718787990223602232737550425936782324655918684051315100697647352157095064179151093561834510559196220839829617506234451158983547771452594615287289772472935579457592808842270451394312289530677262685350621831476389950341209967101495187231801118049663682748582692605513217791762673904395034107734583788846649184449537653619242656410198231013210718758283796578292789226014596971798919444033976305605940791046827161051621566579207276267974935725815547721351277192328565495529144746921456597455751269037237107827269063794688087349665587125077848880843285912332909981438963376713519660525196319561515596124952879844604623326626458500523428725852209711907256512540542282202462179730162186060126607743889029878960124489654964277249597909047089236038291040188110694849085444068554388956720066944807095547197336357469578776726396197576163944986131666888816812487090179768301172129786650371817132006289751105614845949710559677133406484842061455641538604294286169781569522737703087746777327140920797970714784103696906526755052878623874645694308736002640027587685188095349078665915267413969642193546564464355433522547202184579725510036434831978536665845059686334531411272188866584205261929254167127484219408698341049024874382731114862066900527475575586587437699765811899862027997352321480351862950776672247868871819587019196334092125139197001450792069625505496892865975602748231062248697225099257007258749902543268136072009438620150036814926941744107832188011898420627226274659803846070259096384407698824051395001626035455997909113578699941761319318098055682744666031542572904232111913343375162121633700648646408725473389427074612830722910680458723619266421597134144963884180250764763154373832502531617875589313791116726675939722996021156300477504658840429638248525688337958151934904918689755088297846976291408365193638472781388847042943037811986734902880528278708368155667876763000395008209516416182210307882606360412825727787674655862374188168703145172116680746019710938766856752743207090394929998071869954441595879563138627574808732884001604239892476383771442185699967458596885536239067498366011758510909415465905437136905825853428033233730252492387711091241968919928476546670985195525802688255733358038582934779474814077532053503038645891511255762795283805865798588751106146977211390706482242874557907060808621885282709653481850038971646730896363913807341366492772519538191914233762332544504386831982715365821589086537000048452907953253554864268495092611157321450267361986129452832634921772005005051999185165123984890331233160141932584810761599657622707532997297558919243835176264846697105885412103444247959983584354947419350796795405194114647874946752139794594923000971971518482363383792589201142931777763409978130582811039228903759369393925158992918146089670863032602076674058722681119019504384144870659583142330282343721946092108394115306546245406241339145640415026141958655255603165975715516340216741154329592134495108036709168742847945106212597064349685036477835416560627085902877042506252141619753505133864079081957076601439793872671512165167150809459355419815351981276275825944074436607346725513132019566825883531115102124537013756922726797635872261347814318198970042452427467084342236035591262094483806502208457249067511551687270445180631377078339166305267175673997807238310030425256473791506982004191027569414204563452993843787227875173542977359777733033989470244956586569238304540378918641203252811925297300260046525316632973576420009715387408270544013680610038555375955800854752405164084546414471646302252850923029698590212230505282504229495947245463490981850039911040521283801739016553459061156203171399634713063960905123745161299828331311413011476592487890724778320443014526480961726027073745303106270134330858046313245170183774474663842731228538428489457481401816621579118230025716898162655719144281120249849512558836894245520636154576753224455678105981063007961021328262346888038777966354306778017960512465016464878040352528607050569815704526108449457311797973723275872706535591443511823461754899712974818434592309511746177321280925286003739564866034657442863673373545272019418812767125430476168754954164680969262946583123467978656653253144049217292321294065649186443240018357387145662085323650700610548961362384035953888003442234848113740217920059043714878572624848526923663589696514597885254934050462473019777302333515631117536079969856428306759546708493269413676997644652080542108769607090219860080849761971361895767523265699717018670168274160465827743942794597598972671217123994842247301930560933171416767833688921949578780579614736411573994606486186680388773524741198802221568819584531307348535874548438748453843977136590178001033823952269026197563423933519019790095090877814883523326378104460836518539366448598120159859422660299227505497966201108082013074485813538158717845946552402088326696592805605001502831854975091740942979474976904384730544201112342873623064062771975924062838459985309969430384222829165355301088567327321644288649750542312614076038815170946812894883686861894977458589086087713356824338422534733322311291287382063606637448324810871761315533546021653900133929641465816725439655161371752078215805411676386218858417563070222626179396046924862553657438651928655214063883462776031918450179071874032779561837950547087776869163842863565206250088141051453627523776446127035735018817655490426192084212258705069196924332904617123240655334212741246119223365964276826288548619435969265364171395679366741988767581561258019465133028209380354272270411593105326078516476947461078812923518211015344581582083420679391553194022567347664447372176598274905587119955479496006999294274993114037184162563191256642144300242717873059617979635628787845566206691107026091285345565857293491948703937344574088848231074227608611509403673382368321874628048819097531480562108320625828003548036086079275998612218918018444842241053073913526977656515953573904335267333830762518411137952866204998236433052761992052687532994391895426601625978441834408140384868081749255343628494175437890616570858017130327215956622423999649567382195806674116566061741462160814834496707120596910241086896012405631014803343974004668625466196307718423745503148584630019197247803352966700138187895870439234581756541333452350262463466641868090053063594521675940554440247822663771976707613492187675610677884888340223989666774053909498949222871739661561709869641296880660693163424630853595710981253123891941050525703456342076420596647064475434381715308863645082842067873569734098971369011600701413236306469326637229672098413680332931069114027082632683474771866014740208444120939523288281987228711310771249540647350047663714411355162786795735562550829800488150255516348410354735065867126012985599833257245428521677027144271857089205310468602795856967238916794088040693146134224265986392817413595233665805882503200005635701363321927255046861640190494582645684903506820548982594285450860171568350600558800746032282533802458351472595224677016263073897125337931654622581973751868658880567878924234965067805086466228015334886777341224299650275037856444415074813563285054274440862549544477278267809946230953864455690981186350962516245804435284743145576639084758162797518164725377517211299777482100749353445663288101701265039682634097565420324460004277849526486905661710100605028860890779916547829038690769039497465020898198746309279431566276736564591046534992667224736851567396933622022078044343405610567001284406870667857132595263388337961356284483675268028237056867253012331824612783639547072504592961131638775623473336690874358914346814167974025773112047278762448153872976568546214327225115740608974597841776013909516278026029578380025185075774424690921800483646173807922453975871998062138336126944268787606856225347343154304552378014595943153018280318502532824757136446471772130927933577710748151844361139004527547308845679325891399939159469199921656701971564497856062215120091495557305996512257456621260417844143341978023770831132528562787049025264770631871341590209341744368875061572380701803264538023570898246267527248760634248249299947322488953146875574742013444403853025595082227120198972638180368941286067759447177768260986353251382953519411191729112900199916406791450430934226308473608617712000635339116942897758790295195366243178534051029105789589130010193606525340937426947838189490055492121201784409241542897050917361195529110348783683181067988061029760979540487948062648081294634936716176246937868333595628257820237609387112800631235931303517624784408568935712470383336755440736266345328653144430905406526852792531768349969875926480234493370460198786693681615849989179807303484391419995998767491403628721815784336613277929009926394343394444284158207506989238478408402085209175442696383776986411170259249088089587006391398597988279394278016697964617495553127395187672418257022254541987069399744663230290619392502301839996954691150885349742643660468938060359097810845356773904706325846669868086080702240193263366143911723960623346538541307297532403619695376252184722571124924550515033334201170744141112800276339634320072193170308646957406406240695852939957427468737933625692419643887709603157742802922564607720086828163046861876981376151532804525519564145941201099944114072684532184763115701841247285246575015715806013081825977280979146972364202813032547997034903582802810961814490781003783322365656049717913098077963311258649329601726786174796845061555240706918422821906278346432061360266789536905547387408025151768369267898481947594175168841565426005953648537707205799006608733642781249980192526499433468988108936300326923155456284253729521060721969663992179888099376552632917191882952960657176468951268258848786117660177442859718400170047383529455445050918780368787757560527038865816438906837619528326028951974493445957951036198239370208078665356888363542272924493541986989092884519328832603338506698256006872525312917191839124755000814729707570878625947446271814208973953291646554787239546543137326962748534634987084042506403173359433633265109555229565718536779991060767981531175414976002484616517319154465197064302297471482383999449232237624089266640311571226463698015094675424318974486249661236729520473637264120098494298147949130507343108955785076066125770205162533498886257389742728688407363577918561816135115659095317298180614217794257651321033656784089874912182675572035404861593008701706234155556724111803932818091054281998556744896163622056318873800556545678913717533334434601457047622065946143443783601575312290601818675058013867600625068537467796529210599148513598729438574108741527098470764673319734494128187009388101770410607829288394621475925078163356965482821919591018100042911159454571170727861127481064848417248061114992026306097022606131566843765384640594500492675076658462563917923632907703229520280528627056384455999597090460941623527257927074523830382122929453093591803314236554582982524166765964741223984403927029533157390958777963217024985023849036102197039272374744173869454887732447622741906927958324769310797326672724995348708919697565555749881186732139237401400535067414166096105159408645828494459999844417028315752433849738872226817720755378657536847847445783967704118088818155108967883750761497718261163751015506752931999065806447187813688092937581493763478619981912090983335785650779005648677703155299516719571217803031528223206290272011561644126545230220340795012974367668533010099143048015901083709970678595416817439662399812656426662503305833537747453427535738317983763861085953598940431402480197284271690602464135183112179964719751243485182725575658850940449128483270834314010428190127485254037308029630361224030577115218978778317751245160328612447627652807110503729734171454519533213682710465888871904558619603904978502838862199057499545319295921102719143219602914809382533453651532685922959628234904665211611039601475637169839343942517548308143134156522378060852252182297895763786784547962540137546684193018622132705266176799546908869414178649957534669551815180898147007479860635046597579426095787509000756440585319503259271364227689941949914648223246872487482840663897106777296091863899613322022263196514611221759577589224670710565411440233689235198023966015571564570929321285350107680574596520275636952216229022813955657851479417601203386071754152656950862167282400467069985064171364953558740559304926196899964543912750716927241365027557900502211015949347096847850258585700972178737328666903586304698568300956218489355675265872477502699615118772243585341772682258977351246525458139359198555665574235851569456197232451801410981117834228642409274000132391242421596120362994148260589639758691419401626215014274068592465255468379672286443458870500090875928873954478586885469740967619403269785464161364006902575406911134082512845085333299391885185887968366012586196852467908705614889041745776604087437397950506581654330248542746372090359863679568567831512352623522330126271085871990181563120074280860293561991310619051580814990333180270675586937002961356548998566469434592110165729777584014691873545136026914505791434746162616005878158506166465088361355097415367431036986140886844034321118723458072768071303104508100263866542406312196892195783715500784573573754416570746595789781654081005311723560760635835628726229969740646221507361222956089596444128133844362057180965931609181778123567031883431888091359575021058287014480710913218421686342507742169221826193330809097190485085529342699434725483017663518183635704163104562204627011533613781291240788748581185115276664443595712276054992392013613528595445485245172568040032554000272143450272978265873223257771096001492216929606667886792262338343198555606916935807272940157545276763078409838961584519635341975106568115808203222007190333561965835494378835967719427991251326208275317188272484331623787991225512161233139249708377851104484870528158739122893241188018120220839512805860647397510649111795151942764166007311199084273515319522651811349745079993802729455932687864301147172449300352831225274754437374173554330462327003329076396079182506553000922276272113963727779350169298681597823496194300199932300361116196646124447379039386059184771025501441752288156030536501771721846720694067508068300822775545082728350586887235990305051458335943013819247345301486616105379349369987502954926842998751300360064078675280505457496648891594283265963713597248424129179122431393228810380699548194428962033798234575060792156715558336439745393694103712873914309149625992555658852320406185136902842540438828527914111550303953918520985466326955540705750041327832055499424890866336583169343954855759516127152945028102905273226647028482158160666683367433000316019356691185716306763415723685259798087061199711498904765509341759357724520651618918445643609696580706107135420950656386039081642384264030634150367674887243386080116349351122194620981532471814783208994758998909225694700736222698584322007222637504399547785775567331205062099605456222058223128982876103471762845374834957679022198734271541438827539147813353581974919537988783509835453191809337856324336571114712076679322474576380449198210828742097624992915618502592608568316987585593560714562506372769370561534898616202705855037115469478092168666068361982196769241135958086038091611953339186314314757926233859658607967998147557615877716240247176058078361818633901656084831125071094637238182737566740806007232451598263700679532786803231229754482064287296560779831356471001032981255769459837872361189725939566173682625490483559407229721932287519422494751346401088218571444280103143252584450832963387524471079916978384788883910322373048121002680026638247403432661339480300521418521099420585520751790632225755056375506511304087752528903585257676053978709434709730857188405567518892434878999475739750435936517202633864306954647953526506637588752318411268054557846596009826536433738346113880157577438650409546608244305264003873878350158153837312069621643487564022311343854623079930490136546621562128593101564589340253355952368924815617338640461868077876145644052084343861960929849578969606832349994189674294129083778730113697149441003648064549028525544270331460498174020224606975666658795988880297332740923236525064890419207536553509535606791227949360533082551045873912679147331945852076052442159010026672042737112893689642055313550920426582447415486902016965224564070541162542880754439413874375225424505259701084427803227277703332411605703564735980781361422045450886334937324076731233017051818459866855885885701022786896085310299314210172829304902779863503535756258468261630925035715302482605915971567764889306948806124929346403183771410183144705899821261000942511333244371132641546075301624935193654973827908420769707441211613308994958198283810183377361745913269731936634011690989975760708054042110815268020371088342550688313889663144435750268819114811140211402391712579784028221417267097560936833141414030943808433155133700951849426215625021917609607650360986027697056682146693882924741058424991901176966177603863644068330952048518590634856342119399599498106120249000235161509568773990775278909516318151166656179732146451131216001519851836436601984147172842070378296263369235623860033872707396887470088473871644289880346731964900353056004169473315446439351341429704971149306019282875481439255450314080151231168296580231573762109889635005235296851348504822705492477945267128277461349978737102833304414587976191370873955607015573922177670431280251277862506009664153641232951166564703080805811348737842626806007905347421640831126479413055801510922391455058791858349376141213397434728073536957744452509070112404831364282778992899203263428172814486809632248129882891940463483935890885361048586267409337314585176442769191527799164650837176986237544276164740538624382177314232484553637076138316249592584093083019345029485979727824170788458533695080858471408049474212382196712748523646465210696945285419632639079352294214443458766763812170613082920452717507094494731861586099223991382191408945499124747208559757432296818730875056237478402039135879384810733895342657761322865807901590081547251635324928128922156114284227749437386980752051228764250295454596532410687537593278693118743249844678049659002838325241824831659390075918473404399647992258407247531493834241362326728759582289199729089762444922379913656410592638554825002481405456891500984240357657171972083547954033777382757073071070931844978520629329805840979403209656689118650387233410071434566652454899764929558471795109508247275821581814827443372883447932584690274923806821577763444273499932827488215424226052649437477419440864255736210656657701250040164834075959226945493995867797626888457400946752644582639714148683471914605482834550144440245759232436849887434149898329950053525603071785819802451195247374264599667280462415168074648806741648781898315568432342826291405384344187801501752693900241258993648191281807055976156573421245949336260690634233431008258285570362708013047335063836178012922842166205486150875382821035864492082756451819646098409310707542477712393810726976873475373691245214389326214836598094124117523760115979990204675402283401230148364457334768218994971351301674432576379191387219665813881894638363606425563980322969760465422803761551322212928024138066566610707253287320567254806712852347276500173009924883518445850076578620773858848112374006799935595395954938362649190229870263923060477740476599840855871651219772909159588408625225351886654230983768312791993495227106032120569110506688193857197918565565599451514656206155620363146217881017626890256881215252699035981902797005005343345888378343229762016988972862635740018855173966030215943932474550818609279145281192556767158363323577797676303849773173853116374195074929720382156470298058696967291934215139728825213504173729220625326324196530251289460753248316197793412507850981114105609291639631650863910917289430590500997283053984001139595516832065352688879045383504592312969143532545174380913856341032250454890423451274634103614444409072953749762353391288066418184418700743727294265726683362630192906179162073680098968311853838265808192693348972509369299776393474348335402198440228996255779995323908522041820498860937941020525344767646437772155137493674470637604776482407334569705251253878420583061806511413073983575767126890819485417504466237894118709987069538085492249299215096490409897406424420111896526797852565257792082489713384587763607092425148623112551076472399048013160597175380677945019008690104166265859490609205464630624316524606623991338149111476423508450946799489871826431857582889662602789879582043387647328269406476706129184918550581138994423673114603590606749486494684013857658357448088383184912375636887314581692035264280834556711338864991065045511340278362556118292833213623398125420695402879671560427539764939557840010860511645497912082695529441582399110093137102848462324585280695002996498522031942726416097840236647160879271113199494434080053472626079822884318670518627271805441374221634263442980393744530774023467365417108836795113020875433114200013440312892255534332156481126142858381652440958778012792542899201143814996053584348387188341804706217592176127320326330493144814698451905961907039319640051748890960768932164123648531107928792134083368212144096588624502147932540293812610309692038768050389687954796683066509224866939055291825330326734689994336645895576490544995573941448715408538264905823331545300231006347432055097425169493835049168282366077296145507089369990723052441529678620187847479832700083225109460896139335082739398599886967775377330455221799032002590892094612229008210436931820977052063393748370819056721486782387376562740876455150903746196015559601878120316051972899089486350767601363472129852989391056692974601643105257674624775257612153097599388703619590739966039233445492231626562566432246101674724880521927166919943281757002634147755736786483044882702586787976406261937309098974035652668202171536912404431183567908002784011050529234293714299643034615927678836194351472688161929349311637865223020472176104789439810425017446915043811600126639914286325172208701118574124170929610498383173136815785126995759046305026708212508093003523585616439247289129767831343542386867099532393603105287142816898147856145019275402955318929999200296580991934573534051034321788340628150936681466783954634340012126922521971381156631160508172369153404788232501312357872372908806953512549400695401083639349115271432823636017767280525461384146213308408513853000509376636303509705507882281337107459087183554921685887496287016750073310794952583684786733557575327973885070264650533114364241402687210024634387571875416321942178642418272248791618478457952955935516480706183238179075636878465410609371315011650746492286047070552140228762974550829103371638772607706682020198111210623624422983353858980126741382798689840692757128860831731646453755253940994572007002162974113735147561470029496804305997743918709339588698434401074180762001285701059953556180787385634530135230579520139048208361546490497572535883933981052144426245285785622511217700884600147062361144172767644558620239125836490521716708775312036847762766859847496812911245074058308314105141819274415316140786348713796163896434200143961096626377187857172964531418093099126814703582416238334937069805221463684698212457073631446150071575011264835894265115611251890362775644270704275388602480750606580898557293869617270361204011305855872297593263599565283850549541520452349360441304034641365360941234708787923209660384075984738412494250700848235084471162386114995972136407917938590492411240864922823148518332446199112542327833713984699781123613083079230267868106539196874417805515203338652703371695175795444374490220355525786628397908126159523947012376675713314671000250553572395564180276664214706689871583077866913181224056491072015297531603863930109955907592193145480995729574288491558794754186261482434359162280821726250566386726281611174111009010435234670910211559263597491400970332669035272565281045567498069934741582314019396516670346982530066774490884550643844372692192450460523345474287758461624568502259317574551650735635165435384469891521692854282388387860525632244603090203258023475513536141165840085340225684266233945485441301593599584913527283238656543534004394229512113200699294844003634012375981713166754340000994556267159244520015493858975893777947448983886188532082720220354396155075819871185093598327292728342515672231639231554903237724593499185124979302411993300968016815486333970779944668051871400671553041402532473312526697162119596216968602144401735379984892558387687409982903315292552677509028212661270149161044468007858557455513039407847672765528765386942624056616848488014328704630436360721825559887939128269270594030657544743272090397042779105532854855185821989229063661130016932640114629925160689505141162323494623528865113645954414462618856738851150868323621522843789339747145048805539592132292136925189123430931955868344706236288369553819433011212396206284258679310930204309944572694736693056575286639186926429533133542891586092829131540419575492576113061959813955192549616297889209985711619390161086929786539613275295668382620669430117391883716700887984675663421930126122135069441371227089695719146112564591052395601579138310720953983677334151836872094510350325839897801978351789832429372772506296953406741130095366287806483553243285809887410772533146526511012072151219783258998434499111434382405196824166268275798668276033178876860813339542794858793479489684956332518212184568816068614219122937195094404757582787348549998464263834219855219415893771300373402239277148997661957324282663362007995960130003349609533065008164808234624421118160476987266064738022880978586130790127818527638928158789202729417494430300001433392375382825990056348121360197120583265230090440082561706952665738615629133261350548672156196262215378511106203600195767740347302745350773597984755039640388793452240099999916314371776186863904736575214631618292186840258635345554906128371704169127984730412759921573954877933631088686238922641625065874531559921117596537705842449247933213772199649714190401037817167997779174240496952321794556712607894376632227957737656289575077651496895006068659163557751120500460186861032467003804436488628770631245999217972435150483218215772338632464215551508085574823644946802527389509480774452500661646926066996975078548410115649782291567184192302327923210648977102089831130036036407874194375894865543142260403313991134522353419232866817645762679991265054851383468923265302606939560061615914266249636474640903800009751999815488673467212863122632446408720967567279368058334474143933197268611462678600612632104542308058997794567352687315077613346078844562072895287015586597733299712649889174902961423165650486721361031074775851974900868023326377280978467706565884408573020371574559256188628965055753967736658643597749385556373080817728803574987300248317984591784252110641123350652658639503229382289123748208353122437023325514635714524502855762739633462544874560125289858309568830824075782687446083826953880627619549521207605834054246575180971696596858062296688981159901335838733424487906069750936882679239793571891803461311140665726086629014013654511012717163692627758350085404624780413736790909999475720384758860104939055486912455263677309862543214974677692483318357813714559659857770806474620174732533578585690969509018840891760640986721979667723633541872278847491204241821665376093927014921311796105614975446725614797737954837039777548514601857351045845322676764423462872412081424602348075072910930173356845021517031401805033122166628704256773763244795341800315686220058118508144383521147803848305783478796984240179422757165302142187181130826211645382136238192451817948066583059404205396226578738632974350843065358645211904647789289319834947794214445991647391484571675026386885577297675777546127807439473780943376911353195063782490304974121657907259487352053807677856411246786359881725854812791125033718476056837890074208030986657451427912893031231076995299363464264933203693022390612778628975110912796302748270513809001915440505906021048321794913821048010319139658791263911410290694305128591891368362615524407041775110234651536801726449209522656231043674877438396839124193505587487692427966936337892613691898645810338639004044632020795337490416615921039437642252106060648264589357940888494003602812781716033995931900558034771274380826575841265764226420090629897590856611464643294149087729893034999164515159979145884484326979751638708809559987667962528970571247792430921909134299172789778601494244570021379250066581790227442118937688994383022992235517278370151379504148818903731443976995295994102124278935451011689558704543150580670768396528720889680408751108059299011790776960659962707250048144372315785461308711354237630195435666885218166909065217654340710346648513513847849580942545171161268886051179616371511509388984082452851554676591268091722567564554599957105837054937905861576729751579385935776103243288325433006132131349938945664312597690295923016509550421993064138270374420520024005343394494139391840489085696562307005047598048377413277421867047651627361749148779718739960264165824161846369294840967191529610209197283879977371111956388541727334752217200948393297089390023524287746744895470069129743977480242188608756083822412129511432352126984824135549852071510839804756799478908218941900100193565127841102018870811683008621952471532166499120507379461461629057140068099930243647335991574263091149791929713095440810709980829211161377430064785501095693494826111478766701903871770709620650345435176279444518633758885014677091808386156306237368261462213069055183569242288430392376969896742567217415840763429795794571187754857873531889751402984561358359505893167285811043398889194555346297620328914104788213261612833272952015115519122953077427924945413037156074800288585047016830451375096747473391817121773056445703133189986682561496571824038145625219763979408218047563779320529392826834121550657756118540783834563745546964335345124252391780841222496936622003420963123545361131772643077307665445131580454368227605156039219459820323845411495974547498270339108671876329462034510063547612026609213443376557383606385289994431878592674741927321172733462545839934990531692433959026231938917604324378648893918772262363182524409971643837168849265843438916005057560659459190678966068773424610954188854214663878731760986243332635688229660398195668756391053054642737145768287202685398300769305521620416811828893805845504935220595331452514804249429877318578075059338446531443027722246278345943418393944149233108321244813099882137575441435880188359068872864914861232825675928756356312184083260127841614718686599831358663148197683033298819373634148155653220242415166261348700673573369277294139496895318773345276223866037982068665479151748803831094479196980258124602363401326450389640169286276711141828243287988251622765524817978303445839130634211102988293861319314548613525318709876891001434871615925115253666457392782982634190934179149344565845232681337955218250834611211304663497313857874416221494948311167486793958906646000205633670038834552240934896692466469345522328445581156904536241478400420208043098735719768883436725536662401852323601560952169234075166869792367669655328218065531076269470484478375835308284768141917254146954094149826387626542725858208850204532748856436505090259810568945489646138409215007740252351143223990305797575783035576443197565018171887204748112597437253236104031521110548197073944762279240856734228920596250845188749614269166620550048443636741905140513799599996329295439458687459502503390684119157902477752273174286599056014419332125016183992769518464137751262835703049973512944312287003915698448313917539012582241417320079377966615173904730727797487458957447153633437483166962163286911483464797642611115672886345278897200248440831457135968804817506624241205144598399071841809707032349119301797528276591392089641012695794608205656538676684236932608594314143137882198813204763223292111033245369836362566707258294895482191724685537914476559704301960838714503486791910727591856670401777476610818676679202814500675435137904207602873541581997970767366218493331256980394985182080378405176665032001443176871769168075329106249918276250159937719972324496979311663612751413685273010787729233997119188014689785018469937684068605702524064605980301014490147118392876223379671207004784362375148176979947109665667192760999417772202064422168522266555944463776208404220202575410040493149716089135559852628157469549507182883362043606612257412522760479034811084257003218231666757018972687342828672002866295721192692805636753241526125045830391541416631807986859330260909184008712513939671803429041746350988494547255234048494960430494123662637354411162541673652531164447119897388759728379653753677636353777596760511235654251761466777271455067027207614359076844072762979119485352905858817329243754288177126654302967743075813199196204956749737628602848091770201430445692637328951490353885897283788017326963697657781054261064393260213807494853469682046702059729012156052195687803195863530673297808777178241664769333765652530581373461678212111399501682261542849021069513926067252349606656368491324108008290066995619296912081113900439483221502341213388927805487244508903080186435339173515875001856442172520853701387659197578297371926036834015802269880649977495130258937341377055445971184792582034874177440263387003281770315384679115630024280258381925745649749450252589605220349521366325294691641509476776711845052650995700185211001098410249630716123932971037244240967835320568493432384216852746439258290746195091063603322506989577363661527936671096266575751029247191038548864890124675823744504670039210022134383967059410676842622870884157349496797552998756039159057645322590174999818294029180826063797681058437541131500089445508331775878438472812617619279562004673133192757597021370491774782291552466990020447170100195250508738147169570706588047774703947012353727987824219246832318736466954090322342359453078043008073129884023334955370971919923677635047735400041149975500039173258196725705179595513680870508501800381730155689193436138256901467733445379978195728631205525563054686224025092600495895329904530007252770527407007104158896713345051976770331785909500240339048314350381791062663464885168564048091501272237271573511859908641326380010463935678199465694979452993535250934372404719580933469471650096775798444134731431627013142220978769190783754923587005869858862077101149665045386566385282917648985137437532471262953988681716337137067781938486491090359520612368238979857893243833421675860209878333510404629524138432342215808408128668690687808564498668453069194611291773537230355199622418379673535613408844868581814653958236714944175262409459194520255309364742350801218395844202325115351089443973624890451796539648543959443403061664240845235082671922390434389093320802077261826517878762966980176009815132666129780888968131171892954700542441770185539895237183408865973734610716075495236579121574247082922580907167211708178762591810080475970137830272751179125951348983505584587925561861633513766401180139173542070390862641744476800781509207875145286687054316664756541825516820852199095295355746903484991116913447316480403457778139955029367742104501376841159808990178135294333354844791312953322014088446644259771121918999805678749983762752836621587179612228012959985682546040253306877197520144378607262473780930706374084380592180378451326023159095246017787659142154385037437100590778382511575403602687445509347939950392582230994832543201173934541330553290513241697575278838136830656269417898627162356681598548492754372896738961137829822010676388174973563094529092315528822231390111019713233743271518370508602906646618701171448567461610300589653781719384027027462649179015517737901167644229933736493724944238895906200764713794297757120088363312804697785512966446057057039069302314994473034952943148901165779088942511425643170540675818364649505473223508022281105664399738748592001765251835238717926195210793803048195338684109701971006000741666668733678731182771949161414045486150248126074007995825895748918287607445360120714383636056418585622833570075984912962577422452331152455464350509795192802786191907830954152407662115174236590770228217024035380563058893792579207534890460483181753870672087065315927197068498472000340891119666595443749811923580690239632979252035747237228228215607402700463890313012208709207504578225992190179434381309979664674847643921196245688044793010160361480408366282779734645252703415247295162851412249614828513044985183787045902540805221913426276479702355865016144998525434180265444135235758016717820261928814604942245038079570892808617591226186235262469444113438664598071169998948222693344308937286086731530803808491294527324351565820659957233210454691376064216906830609221914026607559305050879809933204646936645406185762715897045788757228063932580004780073349206040877379174126212528161448670198672298646274124590438337826492122331059399538164264646782822742346579696059092743748297706265406647631489932991654315803636433947106173024220133625004833806490501024899883418217127200372503971165095304180982899680252948102777444203186589278408009662794882033938065904946655653515294290277411066467574000952696862742094083156700452297397813280177232564322241574501357327714114363569490443876755573013664304319816890927185110126217277001502003755004979106870335261842702487235577386787783503245607155833139302332413760254325698818289389101623797462355857163263491588355396816180804035041258802110254042759086929988049179150771415147915144051840100832962262866232435357856528604457233619310769902570280625983082092313081089312981886583967024588301452013064943832470390984657960896968655766276557822838666058211712823872327059308727749911074244081628821472699209951695830120397639577945351253903991177271336818525139232860709673049283317357908630853480799760870022031063718142727088532996404670517304686449134787358605536177987306039090561370296217213155966234267789639975632543950521490314126327688814007781725128635420328808929050524206225451639815160060958160336610164955609631769285473660361688171201121353497224718506258846245789137732322537051831591062186021483316494985625701955182984766013502949744745057750474700682858966181284518499026767158628167406421601638543550696652099609411304357369723855151335450777516710445285080620680623943616033523594686781545534473329701326333122788362309135355134725992929895467274499965873637461280631089859064969148142215163781117983129926645954927027305178946170672282157434679512704286230250582601923977393497743414035146010974497042643198593284099531254697993475585902748807113264219255972694939762498041971762434351838072460577800581230446871515425136925126691300665630392078764633776269396934009736195218200554541664478676593885086139481789283516130410161231723506597369145717649810648327212513559710723353168222055246914317771292695632952256346803985397221742589074176397642683997633911944721105386808807666256449476811117769199642025813997581054638099212318181647619711165282619926895538664438580175091990227469595597452191219825816438032232285225383815622483093573944410340149186990296428107456871826143179768831568733505526865651674431725990399334780224704082826434567773811851784534544239547872970111489969519591517276687812120087241233847883388285923524303121421288203062028741082807010469356716779318417482021724743150804882848927286831741331593809787829504976005037985338891905823192911677490486047215981419636016548055487026587010517366351017733500170915614814687491716665556148052049844810581601207491048087114395530297832870915891730168238651112431250032603978868931501871467459833701696222294486972833653143758263219673477675206837073416817290717740519462193009670476388355785197449602467048896692736355452415243081414975402250308348087199904308334982205385279592311533597780693669513715334991963007390270749273197282040965826902756412609718025083176806084327220057691860239772313130329321423335350331910395242088336066372835799571783113029606365062255873441172447567896455682644296295644454261118579671542074832094522112177717037277651643681611726473837726607868263187351334974716406000236097031590279261821339577035099129616851751368576221763318556884423905117639915625351828482787634078230355557360207172660583283371370443859890065416846754409429207962375763224831720932378400670913136378861615348919650986939914637812995124527641053132603200762727346112034189799575575471672369044520513828856585414364123900957935775139144179847656839657931170109908888710260125345945467254222466658711503493609450852356578918073634725347090516808584424195150543994625564780854873177920531501494561042522345654477391138894334192744546162654070733389982280554874228199004679474595468092025000026929543998411398156581769009987394977552640977415991698951352491241727546393743760526948184149872039715191546412385797444547831032161966371339846075573794215404183417971402924987272913856325736718163101148174301268039809832187622466517900181868761935891193636243559226460047856384749815457564385583907040019860926150917045316321913990372430245415593131998767691016320543336687866945180912232956609417574508883132864626941922674610546345906122410482002264322286574788825040065579696531996949328715445149027127870230122295117197718685554301836978782054628172621959345289588146671387361334062593679632258185775921810632878181568066655949179071310537436167362684590460658789311581246496641476820836635999661951015641154918314806741886804645010462756489807859789580290335338075522419214630452746967371686328063142285298277749719786506323683543244344044384369313331298256198043675881721632722123536575763832315011554229067347123540376777075305734014178628695619705517466105361565331014298420476895411992994368095631877110018854574421786056726471732960087547999913576040836303205102667669705574063358694743412339344495074563725419010097819749667964623526375444437025326638318514535420971865564128747061730839201490937996083958751208067974565507059363988491812503631056314680660369278564924064016553856687065408669158670052536656356250562245028486119046670566085301887695721030407905124060395907719958231592782630859732308059221166519213586705980772996574152525715095649738170148358616729191572519185817872399386091964188826093487897261554726678227238393696392903498167753186778010285426346772487960955535547616694586669606674468490545542256315433220336359887378003828725018019610473737267489798440957685201760985382442913216989485193611409146512849000980812213538584907986201115496704805853139023744622918041657159239537583634114736702466478135573436490584065828960371632401520403840587983286746165228830886493201641307658776286243787144100873100061940005490728709953032397576419565515474015387721297341591090491143758042807200382735539544690548451935008403065951792813415029486366610370306559471422813026247238635356337963557258294099121173503797875760937981963548955014119831223893863274627748091084397842673007835647596545113282236497771330387606281509729399330633942281675482309234298273813438205747997743950937879403058848476475036072830369619222589870326739567655274309824543392633021963479578031120514468205038109319741841260078345572186857313320367090184259904900437248348208230313067254089896749150518610049504906937863137057575638117330265779253176529612426569323990520844574460126509134511500689997630099927685825218619677655376311153506646997858013213867280638354603763575162977021963654740692839592822020000580773355915104879423233841618879330207567293238245210192102840768451359456476240594599682271973535162579446614460739719195553454805752545718864054424431175688248574331042453761816329064742696741802611359979551554333872526655210091180495367587739872202080419511239100566288583801418328172622038801551001186287607381700150613720809849616414871864199885167519784805410972034263113609291630219619079989441999535979161607251951983184890185528591604392650332706231040380845108374575234300740898659691301262178995064241892829054536963468413074611701453415911281092114162845449971554651015535242936291243221149272180112913618777680233181234690593126602527331564031575124027989799847427661663360647765315755982959814513062000074728103719079577481869307778364069080439582968940709720472331999287442494979615525596322742622213903956885956550153875059352065084383911949874559719179852524539262536773597396905660059424278788929325797640296111620444873338122769779585227185164460763721659279826308975179594473464188072714005671092086718238369434220440269747653103210789000455812475906327904574205606124299474043316319504479162956165749185965066603341675920070636442619368769476714981759796972168984674097802227075136415211254907328077212325435101409719176839074694951638510389218272265706090219599936619873461120179158732484039666245770852890376239816627183586108709638640067911917462589240294731018364541878471716735538005549729387407294554648909024634592565090949648103313873474808489162800338986857899760862866287576654821246128572855328863900497695874558561431583342996132190732869010441004117370024693951834626763363874646681196888022683917780512698956193484697126607231211451939403370771828278503039104569978705247958574553608295903761788983508863594788921814754716762982222623116782612148251211536257833604622701076129463542670958957584101643943998965626535936014537991325673670077715019397700520792380138823550299113899205863894481791885441434272456686506075972562487400627858360086654572395903170383296111563157208395111705012404812178352408950354389254918882760236316316695822176145250684513784545703363365426853526408455570493060801473241751443935939131679058342472268888093784889694414459441704975829216226210852245279638394383000383248243495353446945933599520010602972449434803125823138964204630282611514367849973582525465139762483128876948318005885063507910067055020510858851280924386641701937645483087440568189721916993727402156921585002152270884814664049470574451264949847306765358802092798078062056596290904045678474675082448585084312148147095240509393162051065276940687642307229676678202699881647428345304312016585704405736624457889094341490741862540331757843279896529247219405035544425115180975764114828132502211817020619544481610480614766487608819165401215502802224522541608053625292629566280727500429759790188792307227744436390901624768802612472257982395867825734367827310775529798068672184340266136169741877032238548409682642658737728865040317034236219343960952990140667788683836875181110787307816260230056053246798188221079430368761062072956224184367910032432810810238247665060970146802903003279908708655743378509054660576215682303806813290931323907833140859535759241420640025218672476063036926417755727007148524377501751916695833250702904383884876950944442008419792230884104591359036319863837423524951139960626858892684762808480709746920931161475447842369402537226794820787618697944740621787494622680287727236043624696351178980387167729080811003714764008856713859062030720317267055838821898303274286403040187975924942056709356068146576457890381301686738284116761890072558879269123354077361934797941924105312177838568759953618408976609488381563591574367694212369957995813716159143332158949239045543670851787660005860166267052451072048747537566040905861319352999946930886151681144773278720433342827959418362774128283848482826764425010473828524134170072922742616664308018141257915726647568742205198469689911741674718858517165209610635817341946917988744939600928593350636505868044416370194844382802249871313121949764585771362975096298031438290854477828701159821258573185045522212760641339929481999015677143270537739660185898291773175500211747027919395648419564102179487441560389587064416863599105434658458686546215224682722202013325186663547484063613357399161064997065566111573607499351213475802437903574722151168576506493432236996516413905621519602876970719803975360453049590479156880278277137576457962644807629953511170018751705923206127807981785479599907071287564892004093511858942093365407028017366382506177652308324657101490804721681947047300780468727336119729377930209161438542910015403018880391744177709909379982616666643327393631136107476863281665986777937204108233732201615738224381034594247156291165290879514129873502653538922684984580262907623485987720620379163062871767523933955271798280941358185546767989559236920203294415708451948762762740722796773944819743815341704338927372947349200298336609043097549846459744135325156242863451785011320074142023761536554455535878037296728596026588769614957908339866116003621837648280668696865878852499906122234588927964061704059160988721766525970344778186964184896225300283425392874544694743514857636974736007325962291649096436634170741208755203825462721348142520178732945050813240566091196572179880339251114003637717823374767679411567890493347540083434328713978553063864676815912735552136823461067724207454764601770297153573779952769566122093055162784188739182206787040463792860112271527626289527595124896959426025073835408595944891763371081792063976436396489099957134606622925366894052771758020668968856220917978782480165292323361643707567408177263949417321329553175179547932751476189533522383596309307483283136077306544249344633413727930951328712274321790038478937752438540144316910943968695622213925061625120976904240396937178460587847319987605322674534653462530115927045795025150614519041181855498904369842022202668375585883279357105236357108059804894005784189768426686440911013816193104036463579417664061551523462288202703716592915602999847402443264746028293839535280527726690159559485139369758524095020879667589568434082499868030192552125976966897164837299451063246871165329849853587304842630591064975073172027107387002548711935828513157092344182284010591930199113124047890023945247658043010124223843291519926695016505917510605555071147252831545210157312381964291394579968437806817238499218178882161623975555286818344055914642811167796101881028498071425232035519212245297140122026677741758941326094819997651946992664551479617344526795166177613546676589165939415720043121622185447477280701671307768193513282822234818581743097261526855310484982455331810047033058104745391931444814707827922255410188607096650092394464143270412810468923052509479021805733695602204779128976523369598862561916820642259165589397497890605173106724820841179259601003378855482503468382248877972284119644071666184822374917707181673580034413841386689312758766377058216028325882829626927720170282322351094803945190854097482170803923269037707229374845876407193031591099253210171009102099705348161596475391226390020326721600850791254592914973844171302112549010232179947469300567482700373543429527358302494313154144118943251381640214799241008716431458242388307363761064248576537233898872440401613994966883523543583557409219025428956763487302548915123052099532468571788848554229650553052814646963265838666209791122482390942465553971430201217801040900272031020723936518369906134832464643184555809181660895718366936889052922821079994017657161174531060352934345152589022581706183227857562877525753156220194658142333601440606527004693014999532237449383835392412240013526595297783919267963971408353708736160087730726998081271395242318179803293901780548659630687089221490086232973383626058092643762932734654072031461081900943831403440971476402451981818162337794846403262104307460650840801052216743132196057632659227996679365827665990569899770866337094956087839700287438799286145415849097677724885559495635120472486373625890735874910883857246043589089667667223778383078157347860134271214307705349350748341890179949450024809311361641535432394651943201954904791014562325732283124959627850582220725552126765750358697941836697395479136139585664003533565840867345570400946818722782975865423522991414809408197298447191372900019858482773505609250016573972322089072272372396285396451588899938617079415125224010374954718133301409097087923523537660322172392462065182038892285042851138044181929814463918459440770224868858636118661843427551134039902684782249655202706510179180384534342734261364713812713142858006144908339826619377909623111480098908478680245431704484088737084407826274437416158381221102259928812016423519921258899051620171575098102750439318569113364353489377920359984847341238248376714263032688968252614572465639345892522817413847716150902008081375733404998414134101371352200698410147903492818014784240602684538880337461001596805575090472657383310113304606427370370075449737024103528925433209830213338774830973793634011199505892219603851323445998194094422835269933708297509980096064127707061219287127023752721626168064475138569879299857615508174272805748961485416991237270238541096601513977679271603939260197124085118391740811884258645788906015812749337883010298336656872124512742933600800641830135075335138539662079343070210281817808930316800726219346360713608047860031963399871508252479922983665957047410518918583152208782126415807948096196603143100113562955026167836644479320858616462434464299500328820130806772615711702479403454706543667264110262546014718285912057102494459457244670992808561638275772164124509810640769470915531929390498919928095142871551309947698852484043775951728653585702877562173935135523312529328848529315005439937444783316479533883819201875083856200812650034072202105891195694214713887670483818485882775909333651712920901469385308076363003227799910901022192020070659333178822436181587895765159818968455190654545302371153472752162060017810329982354317657597385330649495939009285562775866043170534460036952771633724873445516822593842714519944705859170662309445038764158986055726926965997422193330888659212935290844664308762834722212969673449585764682939053554686843439636107005717000893667670118611620496358303680976984856940768929645917197167779831120520680816339935948488137440406443000135900973415489734189439856265496574692440592277776575693672150326582071752953487362499356265278803226257526224403265167138928535764806220338782537367884310399557687226542386029017253180806361708427557791479470090607131797318903227897469595333812714130915984222349506450034949554022982670791955455751416974353038776485757486148099091175512935653641574785971183255634035449773535375244192267651601768679089632098371426816924218451257582550701846315157347093906522939053880919970916696351970771952371450945168891795335619909873745468824002108414322549939664994540489256721761075687118476641616163740022955107516910968999654761030734455423309012882369617020827434364639418778451866439409237171796558005414774320947275696703578049886254939551138658113827434291303097844325668131964970288688521517521214682716258660483983900231533412341880622226436375067212854835984814634179553279310564649508188869169220040331705041631446708385146874416608227688662419052576685806846282979419232393977488280060057486352406200442023776950733511330100003572079523032407142034717814025972806847730167202024195364775403941699277826165204216664907241536614515512418741589759032238963571936207331274780419249297953786518069734697525946839024696878018031757083569921372752953345669209351945784289047232710891215969418429106271747739440175327334494343958227206740822836351224535097770437890872717821849273239005483383069275208746941609211962893619300643309890734295151697993903363367429586016830698154849287363652152064375312427528105693701981869246962486256724542189392169864538674346218999484904006917766976747878498022440653958396868173293043479121606119093951469024190401566922315720168754742930642464050445047951178245751016606876782854549436440023251756670548695861311317680711597544236585081695200455182359764795143182917006478766126577593230954347316360334685624194003624424096173817011924172181455142326534435774837769651187386334346317945019777649092565237116038108059221147744879785680434320981367069099990085385475710846381123174007360242090906981179281274733506497237286520695143890044595644507010461986813955383721640729358258316619094157348081511345651557181859804646410971365839950604696896021624216195582763673218366327510000627888220013919015695568169293457373812112355809415056656524049463061243722869061829379263913213658107737271826402940873618228041257251217531344283667867619189310842244200099048477939250943921111036188769582483985496129006820324376563465197322528164929981095469805602082424924235398985136400774557894440782014981477057086716809484999309999608539866125793153817718148797676030649659390724006174908856557259855499570522496428093600364254293062531954859106096836195588129724934771861244950790561189326574539402420487425145309896990468317248458187242502570339729858175870476481453307239823708976706729568701643104371108076098584408410175661029834766429316819336255093974018926964799822438977897268479090915240674551390714766846737411083512122735904090751376973264308958399764368413197789083985383431766051471949141542649628409471365822307914027042532732912556425224429795755180620509662666301512407204870175733245937851984272507392864064618949098038326616042095314094194107665852939923354713663151240939063302888442490198862583107390747692425436669027637545067995256672443146100946997809604740085339469862255039869603187760785362706295983831333596928881766942063081335771291513709765379538324461454260334765188390787675404060053162423168701505219617190836380270977526954942364462803779421299427279625995476413855922415455093941003918370620725786197049970019943021133382250359603577706142547541746764311180565024104483084084128589662641323286781580079784311564674811712058218891783912960032182500780997303317222886915804548629400075108151413641239601141162970548496341105815936381717064746376372960596461809366838834719838958295599492335796886469215397095443477062257379935889338441103352297545324646405068879653510222227856308587519870979116115638982316165743018058787238872416410661799961581669465307464367829592288578679181964799921649362019492507702465809902812353518914137312248664845130753457649098722802930690702176611679489734199047478407273252146491820736726740230722509700360721140755914957977664733393268034571674688129885470989622026811481890701401695263585188361066106783174886596827517387284927521430034671272334417023209559436467468300976359587455374923221243531837006490065494854211087037803070259030334928959450975507434306636277450480693024155909275533691622138625261819577881332892864985426917434921528042002319807636283898965223457104474849274581521423402177554418509768003242006251845693485890872920015223662984317458330892041678750805693081703181949944392635018751511442143917014777460520183121574066975489860269847081727837507080983632979340562920722544729050823148581962325483569222713007706374594070759301367294321992769619291569652478420314166684703878276415691591991022834996267253261314584028778342936888330341689357872061581437902032780696889823277532228945540419825986046094779382305564289672234028957801324740580491668315164621013738956774169040416111018438208372163863103153991521892494015984128381422520882838752745832129306147672457408064610934031599510665743238768489499521575452836776196669265823886882079828704250527056080573060582187908754101875659524897095085381740030743477988125760912199722187295862807423312441548862032234305029586099977721731950163390500325615269334169555801135555716256384458386245966014787962635861206045344496181714789638233317606548100517979267481783661684026814544874560270903833549659853855156721621682865841337442529243259068822994776485683482250569381848449040154719274480549132863411579738932749459138351828197090236353117565099777130377179475292778123988763327274199459722262813229483129543030970841324014219330470410674115857057356746000744288267486084422121896031554474302910526265312332336535164206431437158325966773262859034855576601194121565134211130876842342089280194647949091968354371196194858112777165238238838334362121770093039059256167692008514482182338349329529394955220059630572463581489444288873274086647437862504238433633952491704533756982321893875693718880484775770836392361700939929651090232723289132003266433562367733790245254966344721309265699186971170083453202933455381800129570185026352854760154046546644560593119906035306406451517317393588450547446056215528836401373397054976888482804082010485930442741281997438885568560533377083675035853493791365565176649696870788347840802419057050220131059445136775993937347343276035657011680467110597754187678432003319000197230987486033143213685924844488211286564478332677228995748320127906671466526026494494477254642179834069793140586542097470825981328656430203548955723123280704329194942523899904694552160183131032568359291216357371865892663301995944074727011847159760943896226899841072808017387535582785722584905608120718446703900734924617471303603881961866551672370609302649185235855865151810960688016001126691919755461053055181337197090929979286658147566261941155776240587575326981499649649084896700837022337572354923520689385978192296780041090134386910478535641149636653654023296322018089144321561250093135206853426707587100975321100769513302986724159346392052484584135659892778238290245940253082824267956593348827139751771616920903807963369262723527601457768928248298696765996757238634185508926668423193947284435032342543584052865809000440658039642948611401734068393251092891319736408918748083009907468543843854515871677403002514716662722279432097536681913376451859015018598766567051661601714559466014044052320785108813036013281458162780181038720268967864647905583788048907001201913152236500406609445189223285887999559611569181077530029769663384677591090931515403305219650339833896790650418208970275717039794255688622672087340677248978386900965629794021356345273816225284466559124101178963978084546807954288067243616607166154279080036400969991514371337244861385058739064791797518084149052935663222713901451559755946985684453058332032610740934233591798777023977761298512247431590377168067687193842278010158986529904229170654641747223893480929255824266492675995259710167631723406240704845741152508860583875114872744742983085055664236254780722924363841443757382502160229309173706963017515496444241757989869699573603767401956903969053486808304233710143271448463116215871718945770076604733659374989713927130590472237019773363877211642333131731943496878693963883327041482960623818848088820646448474327298683703739465834950138641920359400451376398240554268857016563306829576622403819430326728408900730406717711691273276331797535339254972947988091454682190635644326222229520556287724604006592999478227975622880696582741155963703921173336275408608262066635571987446036666134352197594071417712701622711041906851512553296283607947350722865421971993048018936649130935856338638341805164382003484249184574732255786076269333119628761501833099439808750510902264251168691137176339344016469350802092744711180920026603508815172854109066457865947157903668583022183351282574486771150601790001233793533795282668011864508748917762133428844490687207696241387905587392207187798333573659982576065214999905475685733395027988627326121689306633991590279351713873835211614714201169076465391329196427050592160049488676161214313486903265717485686568661713994271600767965206187244091268436432396974590243433760359734194953890397733114594243143390952251747501787177269528629531875257054046116616717427226024416061198591358260219879571979928910964824212535251191094981446877346214736847940553777631102235860438338642079420847401116615268930883979698851434555926566691134396255467564482162327901045362864263244623370573880636087035799393303154119779768437231520407268449780516331687652262761551244558521187371360872029668095184236160797023539387627881265981112914072246499736654560288468904299751118518455257282907262715584989467292006491752014525908706650225937079535468870808090092057452268807241965560971906055781737673345252311554579869704347133772758817862508157371995811399211370609886605759296312487044608431344038910272705181504839017417861959983321995465127846852342987747983901548151409711175490824123971151484693763621341844734113549836062762475585705765858571763660113871377466393361108643922356001109781188107724996757184673908154810720475582891719313302630591314528038455663435811539375871671993641183018244043396423628354234831283319420210550893511001364694222389745002642231482323228550527937233724124885538365375653194954887495185600208375666944074789923279459422430818170746349082457052315231856322166798252802303838424149725707267714721574687963352271910284379490466260970739572957980478327993683295831485537158698862214873269440289771783354125445860981718390828776823524668711446235243526435767848692275013900405889483459517746397811062928275138733876291568691215018893586012072568572911761620550758810794778503680262662926397408991627698225455125691589927701886301542675259718089079054419233842394303800143295227285893319272537048915679738730018820978884635930797584715297934648770169439581105634049733061792840927160598748710637097982400573320145482415697000721310349390314825470130877702433334195234487156814520356279562721081298025094767581118275886915868832944361687991478649006889602506627246252925167739514890630691815864110265647451498548193480859141394520145583551785570370160015644613915832694862619498821605523982740364471392035810838192179819829882663367868423583933965012634777717325082367186066287765759778772475648126607381023286150421570626971478424951052495167378105615912547243161333940865198047301788762807010523982780997713547847506399042294889232527180480611261983602809113104588098539364305440792112022701418996142457433756432015353363546371512795122319219278212552354945052930745275702572404229707769467910787234489160924092605029132350281397317603215102638118845480816675312129604012529303502808815069333468657257631635364538559868317291799602312526892070435287895743424384455483420551310546353339813852301645480151672720810313642934389251676037297275523807950030530245875548319409497739654835824652491006544023860440549536395507255602642870477174883925100654289644986584244156576190885862602199949712015443976155973748025338066145696992101635676351566218852421108714135528819616653197275176521706194041804266422577345036559167534592600113069693063845661347431257720394604731963597339463994180295848980391253437900456733270204506426083059178127879533482709754856183425848571608857661843827813648110168878194802901620987992743756192793967117021881297686794461740545851600488842158333225453512556117991282956171991944883606461706561492921247088819264884362069842033073814657861195576698483001529980789619555748893226914283311746358798791459737809914058345011387082098120996100973164349895281812745550760768172656753873475717236270451866460901545149803036892352016133769741250542207382730173409645076299838842281133233270404039167106120308054939678643556575425039389781530277004301513144727997595817505095266856558834554880681236222407459743613660897200324559791818322755624130873257822583973416846783686494716065748495317865185304921203666964221365332008136516882395686225149327645584123780270115735818732838738225720695361947939515880574257978799129506684856863765196069280761272169896310076943870960724891052753916356960163479979532001928639370743269791188748958406648592674195246014023463782347381190715754120765862178218049141656025775308119174583071491871341416559620630625606090205880873021973926905814838340564525363040362481446305648137853946230017177895983814538600604178330395545578445059094505515459403971454620768173173956585311672555068386828741542970377990616639827101231666688394567217638942279473157161648412156797660213237005571120860391674999850541319347931325678654423948897858798931747127765072157042367064561323706838476869168448762803512671133710682977085628618830515080649440904210837733147559053780404905770385607101201883698134108893611167078197514180950067919575834693346544178209673658409272141442539373185889917778352842661792911031773357161288739471359879762323167194192816588984803622078182035425578224961503793437289820571795952310727002005475891679235507481071077924592533627589294782382608987610125854768398638568332479514776714020970008921150911570248525947942038470680857757950416195534555643221529464911633839624993606538323923881800769259721527965416346594862703444056086622782395123987400356505497842316943125358981120657207767982706473531093885345536404892231583837473089710875244614188188943980323773944180804630859551477555022765403671060431685531871628840185800652972759092549142275753704622538111035081560832378582604412288794027055090202938779361861007432877050722324737245814565682136740214388465912309429991931805436677609729236061359075207782242652136782320356165910324353008170604450107855848774023195957839995744309913286085482661028564815082165508521643906972690423387294358028628673173961949860525570990716361870875338315372794992291113496181521183703839244291494988214122848525626996960209144051195461683258588419887897211182847553633851879677747670547144487322100257971064476244325699362058747378062696295216693086501738840512550533262556121068490233462335678347396766841961002606707717171671649291109146793799814650076555522406780242705631888732795724305497523591948470696864435584290104572803264182252015171570272518638863464016989740624855131041856941960852845487709882684991839213289577864167743988768845288573671857773236547089308761976393500331200045890042609669311282473507583450430558189961181105845380554213848996165481247688699999069139017377228851719189898547201270000058644460149814459862433692667342775484768455191251742649098821514451596618857348968622761830668062410275493938544715735468610939307879668697073978021104026056445154001907995816476382747000296608829190089754589286442478294788398973334607622708303400919239934870403243925573609252594285885826798725942958997051517245605161310270301122046094248981513602265418418603644584046277241029042135401598891252877376308194439681694169074405950139263689485796525764119749579411906600725816587665271098989220601244476653498553454853657718483890221536488995658085641190404619855179285502905134857053385575567781355693080840746626049097641064177679565761259591753898088182129843277446317815067921716056537255246331389576619027173319689225047059540652205057593431987788943438968922223969346867549750507089367702310246877379112995229376093527987971408014399550999821976220858187855804202755938233490885772421789291219418851317175703095902772829726592692289594038072439998974134243448078873732108449737115937058463183494134639111753200559124784176004947937917125996924919212022847312191071986385650227810172598039703716497629693628134727586584690218144155160221071434518414383036021554888140787876038378964177182793648950749257836984639942246889211925264327488330082577101671685701608210584821456457975618530362288260504989197878693719892460322343062746900480192666762683988301185287285277045885955559843903284293084616465622838041097370260650441659722493525147541363378337916267268640526824892498355880609438983456232167785083301944121307873153994184349624551169721145962088184198660743850251262578412104754173583460859179449157499941812442626990682900860959462831852812350649260021290587230914718225099312018852665289854959300134512422506835209013698178119347095022693909644943329893703327098967641447718514302352824048969884797187064391847801034841813322109935832165821076099352601925806927256145750843460194733147442251926526884023744308774925056741388533032888901998998894534354371670156939916170544669986915745752464104083944420247042041784782796735103236202923325530691920718767576154617539525027632874374596750580224034287844372716870455209210964562686155453167516047441953031779879865267877895121239175163950818865389957932669250689805107078576224172608034001589730745007432874535006083851249588281281134739739473499315391358569807187509546617022800025281486783725716063752130709621737357475068587562060370299580965792610623653638558033574964341751425638015501857336936962386794768223684171132386106296886270438278473959145707791203695137713429132108318639532083102637338691665702738258025265070977568349525174899507841344187898885673515201449318769582052893897554143408009793476120774258314752721519085734098262652646550555285964712291547028186844583409487490086175208311592138318591563513512600738552418491755040716963056068028599752116114138426184320149682651788632504309371155082706617996112266743386997264762308874209345956986744020913398537080442346629787886011633222317266684679501554539521002306124262281256514688836038707913844982128781400963317091419099318409152104966105945182032312772561224874455203361233421568750636416984674531224383769060273709941513537618033195932766786117801042230489207384939212682828151786900982053095427929059701898496795805403595934705705724690504387877599569124054152721570596056631917418659967820338372665157518599822844734024338044104992886768615861224192462859727492482105222770099527613995610288657464466302902777440450046781154096664954914134794581529565063182841009751244529016682430463177977263845547195463288891051191252496289378283908751141816130210185527896222027059668267276924138484448509109119656894721961793792488883587298127880271674772506139522683012626232062528666321743147086125054604656758784833913994195613396738283648873795346042967512874142188066952882406815444291553708464291229351187211428383015854811541048356271949299536910835402869771452509279305455200099954438103645703198398405606443275198367692580074103213449506464413667656746498207359715158640711419610561404924617394167761292725304821200545502249421088697476115381854013237620394111848656595153783564925487390080240198309374893109188526674818352126593821042606920059337477629033531596638839440838461656654033779939803703855958273304755647040975672531494806898301080591462118984189553917926081085962229359499778708921770792971944832764479505360660500585316494915518820388597261223994910430488823171540396119701016855912669712293113671336301309652117099212514406716350610057615973139879428986934789735288095564191322731834327014355124129935914528643500025801871926293192126926796608455642269779756121891926884475922083868879725942607162256588280336056378335456805657387321552796563091004330159100066339443944865576721257878882718003818105434235248112564282908237800189149252673587579976434329630401922243024644543055454353653299766205619773992215150930053136398154410118482044997331104175087087788989765733400284744465956447860590906091996875359737234236514199400039483162835856257695206649625802586921200211917160612693988984332577411562601493738715298031798576262329907839677012932856338897754903100972076823699043636047123449079081496168811113634726645186354876727824277750430511871784395275810734631821839366928431581544573853869820500793290482756153703713362865547011726107848465229667195917676477341723891145574167194646093475754657186261527945693940849342896769738220269864547545129020389197768920643352472753514614241736760208876255401597924377428352167501195212288825590567806425041247571394172948363946311501970988012053118012715530086858701977583629145998002460825186088029518842402162336166280489323682350667713875604866500109917160988929990575263354493026545946041324319575228782143404459599675642523713420850762648426306038675311591775198524946047228326420769260439195533574860076492271100057223484288086972192745536106521005202470489687995605279976891574019591566082416074496195743381360089800055664646883600940319951553412128591149827770325162062251238324415683065019548352206540986518247372495939273425110167232102342365063084187901778290111356563516654160940579095710211000871483814628871801864249897328669453286987984587403044950046415248207952702237632792726426910671807963940294924180519185449620249386902764820308070872485862322289906194811492053450436440638131192437826695524636838587432965700228691007102414127648057225731789460043391533366538728960307167775179710484129864148015316842536753929471472153383324145059389422603596477198927065874984365256423509167142763064441602220968469537221934964972063100408678823654617719054232518831502507418669326600311517385795281681027609322585403928506020961033722115366391461960791397711348324518986035779528993436040514429158683322118429954658344506144132782778596299725045526237740126186584130211160552393442321624366022102975165391773467820226679374646366355187447290266788049349163714993175576213411472870720731529049529559203090260500387642639480046711837697680191814895893663260840947605843042834768653932039917899055638828159907845437891835670098697391571101823866832886576603270616679432532451905950088048886034280345838844319655360573860223588251807565106674055353613670499932446607674304124038788542116225794055017101256510404408636289374407688002802661872220802626843355726905222789804617621402493184974999174010355290257309193693757021179372739860950367653640656748306170074433529575533297857912008289760210418955365647741261215601430946313953799333989766944760202933301405160971938310368695270898335920772220960291664070357643612101615178645192679339777699283183522461445928240278884087233007091418097762969731236643902731540497116316236191666181375947028829693322212456563619620621541322179872083147561492267973162393004981832308243342247806397027634289060917913988751869868575244977106566085794349065012239983675313571149530579536462310533055972683404749184700203315917365271850273437824686381249947093739185912610281193698642732728358972558697476939634450200556818373041208524052708565512310018911302285404938308813876389975472082511013811743959541776725343168770974975318157725870574770974916803474623555666143922144403650412651121275167831305133149856545490461685471824714848077470097010778247142385768293296099867437971441233295516995132861237056450126982255023122826172240612026790472289129952822693152030210804078844373850331302581634270041136294226682336329717320001571392160970893550921412245390246344868185372702017479714569801593842944884125393761349548064164473734211426986498278252445059303953788560923545175179850855937796376674445155742572661387900050486510145423433802231345890437914838204797420222636563563071186174284233283228330400528639622902542054032270459987391562938108169004399703499701850167998400549910926304584993895072241083978150348940662855687731616344905195914870553876980151517982534889951779128554051745403705223288211410249597542402646457768430154127850698292721998573598643522843812367845860895761304724956323598821347088742905595788029859086687017946453475852686432997388684026254480376114066820743177895955405392547259618278839833210769697322347647501865131100325847225209310270996711514578360141357250318450964039329955697117697666411319368591655304540541370084319080856682596209475031906420816788372675837014908213053442733142233615200815857150045812260479729339261334446718996986945993401997569100079257930828566720047170581603830008199261761647291798120695317266707620749598728544240778852641761152175516877748359798370548533585709829630996672469863879891922357425880881202954546817185507787507400753550358379532199375415799876083934388026931925252097124851571465121584598964559104017179260167519032488169954188485760047532673754296593510346220841298394341952671190161754728022944788214351464537626401310387912713184763002243710866850291141360925069350694939437449572987632969829649612648614944696005228748409794377741648142740317914390213670169718751954023557269595589587609304448842793461919473006784335488410645070335980870898445809797422343376411508356083229719711600635859006441937886449712113339140351999391294355705654192840179220809816348850084159373858823433777226815233123712604634869630488458519615748745370395055090801501744395190849076895111980965253163685202613108227711485760308560369467057834408800397032348315010718701467199668992578626338107094819506384554579528054860507657967695428474179616419518139728960978674598295146341685700228196670099084966095095598229178359945636939366846152635683358039527608166171028619778613720769421293951743095970281647020764984613871339751432126717099701499347070021939869914951917170032858385563920552541654474689861196960635651024456295698837592156036010157765839543703929382262661741763299478933385125413484764561356719446871814708097873684571693734347655996294095157959644115688769606326773153822823002026301161622082384474029532161530639560884132450087185194100493259839857752788586143805905748141764014057449088250104115821745703001604318753655029271243567784683664700551060250982806489426921837862987268239002367756096177863174160533903827682324784365170250451371525611363554126749502627598920508583163920281909960200043735005489338949437368707060771501095617983625939343117746701460579005720600945982542235471490697092951496722896862941580672301619380742130584034724457007905507143764660802100646035186947943719353367211300138382080363895653519396159600199314702697732843270226373154541918731117929152942802415620841657850410701558987620544866513690015337168790550064561708599397539238051237808030395784772708039605614986274213769594427757239952333454554575027110724567019340742932103825379460044384200761296096751436197261173100004752011213101294964041227415172071575004671418223355413942076001282012526305191910531564063996949531167392061169044612768913550407751416618154674699823319225172536314810114119441110710662898611150761101651455549473177959508077786607249024599419639971889745602363488689864906703127431243914586042346459191835465170495916214555281323929014417925312476012538311756434670928625254608634580716010510256811649660305479682399402656797322113277108879792195863559455389767865852345701256744335550980756724464610333409908899335263592159975618645989388830580273167692604487568175111118932061705473345479983532366635119586058208978623598780871575250497266616808877142037693406857647927870191180124756181220577888684995490046895779604819350988158868242681358653909829305544125281456222281505812980448202876053483236696205976748948690269777845069859244122719381116302729213844257703154563686684266148647701201099643362112840925984237780774839627591396452075692070031515881875659476648901615816134656538529837317186057706900021203868683411884114211745138905063702784088223421640180711174706701457280829331584359626760584455782228120678272804106475494752845018084817724346063701006016332841554469222811615332123108908848733668694370773806653540983684948743755097034519482288229237987794466717179002252828146790373274679602505635047682508282064634141598691752194788900522436722456558943114626752348749632681740840452235836451465659917960170521065518507162039360178574004344649433657519087736935205233532938785169062045718514928548395013485661382859940962461101960329684452921723254117675310549543151177756752406278443952426837668367373092464722960180721922219407603816051867105678439507175363811936061174971620629709633034808939697456854355276895899669790340954825400465722814123096876007136618939288210272591770429692646965220428267735044310951852497513013937995420373589508651917676127400857921467452921826740857020041442098782967751597081257790244890752584351017657361837182848831073376054576037770496692847022284747876532719279305550104541744344076934178836052135260966190851801086459170643108450033630179161195171967502702280362705856442837301943376841832577127132571869132186134811028033619301892600606749606214814393237976058090306904636159107626236955757330310278866867071114397704183172305877982885526955599071288866860994330947062568216086952687175632133786925090510602529905361513312355375196651163174641453650018798087819215478826403904837560416801471454346420853490402740743500587530869652385188502994460995147009144385054683405779775299309444410168978891917326066441422786409387571942375015662912590251693837611860136734361541994555051619542729441520215334519810657279708156771011475184669912202356045925112391675613119782250579208629000668629208260759111358570039414274392394793340698459003063005977085387003302687832856711639612791373008603877252296396352032619173889429319973466054409894340689139724274064103599219878588655036963576182188042333103165687751863069500847900299583313473220377149247693008759900871469865791189627622149462172986055585148859834480959706734710225317945009952264197446023312581965223423618210299210985733017985488851600555853061303615138309442559148034834819390884496161034308958617569738095130349471236541659490458941042438961026853576733440971074932118068093053480638951029090915201610205199065614457605471998905586397572651214656718467626966453744607592227085714762621911733181595749824641208660736618441266382400334088581486048148741335730993377582141227425813534613870424364023500704637027449299411933197260139055990281914045767091501361220500696599674021287501947191928397970218897152804852051929917566772397894267667444513071842830811288562978181525749081540490611022149739721452811832249267122371929748705114822456985939045387356787686649347141107665205080235308110146732212737799723449365313044847816411306417706038074960274117625487571143761941354880496593721512955630702396431374392114209727342471781408990810970341818817678572439388249156719743656275333033594777351072145063200736950430122580237740455067860971487226749039781028909686675959886333563290690715512825662483239250988325050503616165681324148647813850991548125388666501185184321269726170858533922903366832739245340383100619212500083218857236369494059900628184330103881318838975966954075156197149816213336349510157562582881306717514697820766702720205165615074582112973087429321275583656356672293742150704333378151644067951194065374427423954975446761325706407239166031861258279099620234147766802815130322857117238226287327805495592345809413990995370230595500980333954132939652477732834296391920324973772071591188820923805106013545199148088859662654810276916283331153643148943062502635918321590187711334728290431254258827508967429736595124147082263438454272976819058328470977950806759196906614051942411548066254149047263094560114043282812356910611225855590866921143315063228483371328792372126469870941847986924017699068720754667296410954594432146730426404399355511602755735658402308582977363399627017353942916686230048890125038265384585817458708762890816257657679490346156926757719116372956030449794017068600751341755052600740225781645538689435690757182833482161237848695785815826035758429272439471940301414789330531801816853285656275223567149215218148844843491500863128397807347926074636838066929523448506703131039811274124541292317917728140083848605696502838706373534430271174023881956951339321370476734973823961061231176273978556472897120893500676735428877040313238128675507366483041220495321836936094982605408433870197234183303455078387876126665901605560494039911542021082840160927084650189963478019459400195282751884671139255254443467072773027113767131730098309447647798329034845367501523318912851071573077399006215948133071342935835961260856359135866535359341326245913039868423277370326680250232030939989653640214353803102124734427320431835659535753247955132598282329129826290774144815111879278745275986784799648838110186529944660020895437129223187078803771804563498108571389211318912489793463711293253224503850062316008272873191089914528904522120513614241776808025853060022898572741036619281289935285281375510998158151172110116663969117909599999142597071720650254835314874883591494897895701222216070882949376649336651628538098413321248973063154297375758960796243664564965887896940501028607622521424829849019728151831160917935522417504270419589675764958377955539627300079493476230405950995981991878856046848476007163381797345264223478445183391437794716261285438565868838445678448274270879887547680120079005730588853326228301802384434765991904024387022663823053042554710802511609820320173278207106946422111215557661538779543859149202814323598794507596872627343196061847362700214416968059316019155466647070750695578897553135022218527203449268222190950267424573663512121447741282965400036990733350217999050918288107520596082740879533473310550938800071209213580201393832435919116016874845267844595827772484602521410049528759723016250866206719946273737919491864546686775552511875383762836483306916010120103646668725367811392809932977339056442451534443382049192829357557134568038210852519372069928288153118979087463727946439994140972909638750551091991009382025024234878923088255826802904551684837588356290356974349870453289714388396182651182684997060879714302913089777322253978367618603699097721202628031794557696029296415368798170528275791884230918484310199692013853790120766890108529169029606124416275811859296501434411256011816514502546371393188635425954923721162757659470270425282147910625521363701885058763211159453433470858717465878793749005369168533575977044652004924549072073934566142218924787680457917180532157604867856023911253562713485327211299072674042045519946883414280267803178193042658949109279914852412880326856280831452519909201730789299026596194198163907654518383225132831496698986301940386572889390965906518737436831564582608217511778061306547871031359232430795216342584759839237568065728150439169958146535931384367021767230526442821173057070449555330015424721689513666118037508186632676133739735857786290022493286301065664502289602143577510431854755336381774931614665940916439165683898326748854379250350534970593790481418413413109768352546075887437381853170304795897409710756279784095364895152783574489412049379206080417679415053622225536396901831488009331404824421752156949119678159380365685351259533115592214151878280553266664264443770196495090683482662680054184857104679061450242149707034010550381154791872003171918423599813214937494530106459158463930738859922603348418042610232036340588166767968560965007272285653006757742135359107836327687868139276797280823902484245323119007635175968944836471744626893627849060702312428121895589418302049520150134532995608053233219163229650495208827706184894694490423010942377330538748527515628127121012365066541790381357378900527319769517084888321890719230255995754411344731718146334218871019956371571780009005037361949880832727056882261432438998148807097012224212366318203468860757750336308064794454759453322325045037172565324529883192105212628447445187153572694206808707784491374169292224291043646254624483969232446679575819548566031600349805991714169070076624365165958010894915191902528340517036165585130826338623078891847441976251758693637472721121744655208402947255671146340089367873382368617632567625615294905428739057933029062842307455431967055907902312308213948868230035700979575264574090058917036773398701073673502663761152125935604934311473158591739566554371136512804515292813824262267274828565962911144357946928735418828417825567240110061332742143434169114708274066237242404504617959778694629041229520437141050839366556353958932845777132119801555149321046865975224756897954633102318117788934732572320020431599206825805057198672187099307426124917391590318813761256049624360993424328443849345777047850369824573790910516134966608677388679473581558209478609039572652238463309845515524846241000988516971839365606485950114172489554218123990268233923114911614025975541515969211430928371900495965364760750582146100398716019187162471733589621089377662849555546299015689443768264095535570658437058679729908296714282085622527327453171242023966925643838463802724642913054750876150699865238108367121138618723233475302432888957950800006685758972659565804279553380737758514652635418808013498881303094586579925709291129228023837598690047126900296260855082323899005747905058549362026161272231701305813905196771772906281879192070221242456659399802143548489672576886145061648585497415493883611031645012869619777849294793850166892372481705728530359460106233645391336336626402927713092378734816560266655414211837391298895562028558700153384081541797012707328659358947259290098275625101566624321974403747172325243457665932467573975955072344498400125397581630500738614634468397532213233752750918517449583676252283597447199437806647449236216103811309534469379915170841457531372644522197861323312624961781486435921836662940148430031662760301613789048246947405321604370230282128515686443293028903710500639512559544591116232811827157027259537501771440240606007779640560950717118860082571537853266839006948142259696891849472886026402112477695299497281707755055844111344814334004939286728012808367987845171776901963657905778857267807898109044864483808661745770663896455929983565781239145772382821763319671646244239109764793562748651880965729662401401902369792221158749364340746123685362529542267027397008060006843300322203463393729746255045628258585452137159663173159023964618860926475069350749929799224663447543072845005874592113645197159273556143300669551113302450147954832475248000543037306069236272749304417774284048980699131672878581304442080634492843713833040200281518937495559358764664082017300036360929265412165610778392918094190636980262682949115968899839325707925653442497890388819246400269790129237863990406856958900327019036924534872403602140278839879733136585310477835869448871308531651400397522538204289535086161439789381755845765859702676225228158940573060796851218853730266922191636484545159865450598875495808379866945483317101976062635961660406548110498063886303921759374934620028044054529940050376180252111494203331953286847390891169320804100506092235393390258505165767076293168259840701378492918177699226871197226462412799843207909242942134087578797528621327593642534867952582019434091107822427410848653884594877463448007383462114726060253618155521294343476342307287141699647191157367015051062364101189097591534304956869876085521390803228031965471565087020629619406869959417796408162710316385842706817828118767648938683909965450509064087431319301869341166347952208385759080298727998803552465505417781581049690797806441025785870576106277406995702072197028524215043762280769423584927865174365732191735940996487597924632804336574850704844867550725492110686697030382725591927233279811036283564010839050324054971124070999889164960064025179853671329393200092258654236057294482529571772678568295757947810222387910452741819087426522293640191428145325158610370803897792367366851248530645459617580757097130794903317627352020244346680593846259756788375618199529343249383705466874941943608869158685846574261232392173074630315436709674841333663675681411840542969165247685221335918919917295866320756047482183033943721723276764972354150075962236841668556520372492330264378911593925044754065142457995257411815968236603652207767943567135751655665054208557472495147520924809605679981478938965153673560500842602985214212009399369783479144547371880897847234981822145527192231187643924759120739772125725623398668906711914668238428431742747062073798838994075004572028570346722017321868835195532497196330837708655179366005575445084800789832623214629988457050262566040940556142522788492352408633968286491703781678783747808515472659788802123896662591285242356595516659010438250766860156095622464096552160764615963038211921980578946715267571386489967642609234194768617789727169440218133306176537245727783926271389523280859356270148507057434993787743999572695871438919268387190976927845900539509355247167870221334327002047055530515247974679703817956176723440713399369685259167728608433767101321270312347022827274907128203108135277797089395026779527202685123116282450754821457164455000395864602294548247820883248856888631958740343774271639662551156135463064224312594002413266818209570714778865007644435976144496990379346378393193494177713467530180553501017927691294378230839887360058257290709934206368927035327950046093623736766096960264712701699904531250811648105264680241255002747947617957857072984422162780181923987082347695471301253287039596704454458678280962502203302342566001720806546380586736192808318578287610365399065048072861338416165290712810311522029143907751791277794987818761739320711069282455391648118279053543832349882378582420513008603230445799325786324556711957535365161291331063193108125454939778148980991266508709178679255735766329566905750678367275308893669536245720787492441039996594694877138512095490548116407797499240187299741564262876809182636490325940395872260060829613068399047369003778880194754537326689550952098162932747455772433766796030026171398619099461728558052071939517326741263748468083177301468525235785532672649787438756007941300865268461229924790520685007993090383962230042139343595737186547962020369392031653103949163720468772489815139102273169544270350335800224976971461804649543761847337166807506270240399031084515219778242892443467825100301281850827442046116781824278082309755990062072214537657851182350447031570654063974767192047098040939468796534437549773743507165907981621427654822217785161367915330289995528364571681930201837041948844447482391479057769510143775155275837096894440763842253094733589492495831353047172614797023405513868582389246071661444236910279034845925589533590229847789686927658320815407431610853248939436679176533539023936452885688411453945220223294934144531789476045297479903711249577214358262724288186933373160172789569707026548923680006213938992047526110535315924776768680525011236590474214188972266031857122858768965508276378489014872283285730505769205008999164133061780568339711706717137824609248092288213590463393403841287315487603335341623918687429699595592535459349669603535447592735610350053666225222471827590228061123229868801314035065252569749633889642002859252756994327999624090441149771335555035997432020649815375141384399658715884292989611204234731019483765946462570282885369203368919793265988585759859868361642631856367171755925158436683187336058470920792667445407876667101058952388263674005035467816456738418851288820942191693741163404182828270263375085835769946524220051501531937610683555760081570807843755741800689689083666665178903617905278096903983330724626822838387155999701716000396553000788617321449982651199693273127574536695315576440193056951193221073236879934256397399586567747925945017525234448021400321313160881738368087081309678122593689989143068747312758726942638582256661840495891213735396800106621211759737853685299749003929468789401281934684619639348751152860085690577092196033763719673079000451982503970623948172248350679569928596368144358881289125934547758753665013393837790752156122574259111274951232874816473889839252245099060479904159962622129639977849668388760552013614487673743634710374384181885770805275649784865702245248449760453820742222775427619783058629059301875364253425089202293454540227459045351297967369015889379910243331020236444198564700083552809210944901761242521117644663360598806596596696657080704989482329957440842883104729131349574427713333905479058007372587548642340496248669827064238021004711311360698384299405034051556373389901121283359289805604895924738218245024897320049821372034728022073999301237908089554403010951437328904865437522858172970510900424440917823992760996960449923614170548170060961086232332784730171150235120863559202759456066193288370695327253447920195544945091897362627916099848188958843961184543999753968466654138260794684106216032707951827520423913874308074813848459323134269420801820700070043611848911048566475860510025522628553875324650225613305203056119535998301615397845936515671761898459929758039927637983276795513230833510988153929385049846332976208563977128584244894530299701789412901736718714583040743638914806284254753390622501169953386453785194774769332650848938617262724553974626309232844280241307408464201122720477569891687283464318989288304621822778422739096190491880841465777272551834721466121114334416367325557472560399782244742853323998732889550272554497293376310398923512181057488079652004621284970935677366204636826173607186722862914168080021105034793852701063213272139335755719215032106895441422721439333296184548805764091064123294235037231066073668224172218535977457885234162142433439709187610086812890814933661499854994181965782428249868502439201665334206233847563949748181386728634815863288162634361702076495780812091762127294267930280561773415732544887169660265056670610134809556902259583911097030910400712811878668078809645420628798965871810206784825472053947942133769765100201171112260052335443973675328536689042973136750842486349759220121886189481806337892664896629207626638205969992755302057520597831645686961907803065324662218887949166833457654309936377161077058221109254669378412926338324718636857097684498343715549438987658197123174091713836306777118299199806679171688448237359232724926818083257898665982789945187243210125124901665286590595481993024799567156471444458496318388937756820809063010031656389762519801520979270085872653800767457640035839225141928054743440018364997717644567043187598704300312192107493299895434561292401989569514839880228291555672650072255589430872263896374288377417803199840625622791600874609164969999406680433903882891621465394635912257630534210688451655360593187896057905820392367340795508713707722022084821462820380190105213287559554471632689106380017969110834221060711182346428002325092706870547513132391662918848759514058492004008883995054005451878175109989213163689897067214518694465328078846689479359582121231702162578073044606299187608332712067739183220633192203142886145078378951114815987968314732610212215088785519126471829169675284917003493150286694141236472157978018860667034835015069083560943276212836991866901530849583267921709008395387731986993081478321154584365756169027307796031136550401258143103601914351174921879565173929654350203043205874511867737568867594177939231553733727282018321156659050876390790037871908781975166089508478622935883323342096798213824428978904663304373513907529114414235410864543861643533293510082309368677207977953027474591565832204814101718327634023901389436488115585927275261251535345687635068623157678251794380670665475081343579714067850200555571802023085231747687908041461405871263278964075283780306177828019749148555141623075473900342713459270976871099271791872526642239295585228819674625438303051734062393411883916482345693268991554053095916940980105444373572093152625018056297060604816042298419088990729422264800604868996149421852449293572874867525553378654115091580298188504302004330900122102489080104596534878012973424471767076195610542703373938127835767355226126244424661756651990849321712115700722784255897722177671144990785145472952962652202769134791452017605236364642164851019280162562782813314796272256866777287254644765011397904459409783309502850786929121841126296389847561269184177783381006476802263168053290954585893078015831076650879317333382064120804335310357805813326829230598335879121859387606747093127258682845340254281649722624117816719510844414353049261978913843060420994299557674242681818018859206699546824419142672079938069125783132190276106386411349489585902631472101319206879350613431317265699949917468092421580503629152290081668980197138926448278400364886566238343132389928195806009584802520926351804831795779913500656072138505129107132418352324339535852534968506461179841007700897909724532126232832151934921164387504570169264874465987720736532301853790704213246424012822199711354916480638460580711384428688678498379956474241649586039085252927334168434383674943556533306765831255953425714001049427928362148113452151427311854381487788985613893301689608800925047339171975669343247052042122686873500939234857462744263750990276531770089237436828230530993938057372625890032833529497157144425424302376187715320252439535331558183799756267862382996656965760442089400354367423924573804067744473478315325445869690644912231617835286074905009574546672384970320885103620824403049605802656026469548088023436092945875471320927539895765071603759842060660071990691383762536207034784879829080940504443385223669223794237362440443707026618641533618560082132503423793096881810336544884797286203647210253712766343944070670434713273357469695382696945325065340051340223228262881339813456551705930876126345451242549252700209360335521982405832327454559544658947611190988763291839970612166528086423918792490768255797896132047223938967428267907970780712813399674211318599899309805578497861437698968092702098856672926530579438251491332982325485953629270233911055525419790879629358253141751687429051528739520284904193165267802242343141266036552040066583791969627635792256672213123346727707856726833551135183349674467812474586472355797263819533324127558399351243632096593517123228937060143089106577017290416425350631543758686859848696711300740200191428549972546146311459465135438801441478959997878000643405588082483908182462374972569173268782342693597890713870018741711207401795471644952481196548984247895885052115169549568612385578420668186319929463747455316136001120017128293239635113545503092743227264923927036321402653847304053270368320930587869135212901033439491154086671317556704318322160050868508816992487822640735635057287119370348905115111667997470329206930630614578206718131064971454143406668077827821180418275549459934325994473884919118374239382500293846692687111600470653372012657221194832193117573928095100332677664379934858408729510827518097854536068487409029520085164076157795418880015041504041843211410284625113702071225674998484886646433871936975818882466687854137670687242141530102996666228929442903561404607196471195039311337257283867001262829562810225172686304979237590440053653628488613085668921729819292612044365388254573761788594679614096603184954300165334321825895758794427809100937454452338290192487108453317864051787067298403102743501628163061897128348156527921234580023060973777438821877968610271437902194008646339312462173914186660054715001306711627098502625729469207237102728907103893995807874388450109329073248468807897288368310983980802178328273614075694028403974917748883724745277900552923906987485815625550648829394053890286532446637350870138708678941179836178454744775266231590505936046717058761561946997908520164619641117638058029385433564222612007794100545337902562086891614538735857925165184797001001275657980429200645176830909160971552092578617964106321535534619343264288688480038774656692915311112069267973168826925099495089763121381777442614703538221518462571939838675172443664113657221127173402559759062652963668892313017150761391389378598929434665104196758291029864162563729059121440898788542543152949807372048047744194291597468893945393570961741763539932463103805285265590865656565397830314559131439302103126010144501274739393099413885424638620957031317286490062240721616841587117241274374261555779394707144750952376862347046370293935424896963314553100581331879454039209137112560033969054265959149444392045714128691540990806334017958585040376632998912514538067162091018666747428114338520328964003372496347809371395950062785512500522883197431102394967140489579971218365448094082894554945304689126293862914471104248852702283854173286852336914191413768803280190151865519906371545604089086749039383724840066493552340240727796042216847113938045360718951814312794326218012444825304245586189815830910820491694617492839019192223001210714231244346864222976131350947548330005490848785870880028699505126733452243457134683536947270629793544669008404332381767614973010965204083666168862020439297760812431180856172086222016935199421463344743462759458385743347437151779327404994461157249160267830614339741066111709462820898471361095810548843110873581959046187565866706017490932091281230325584842739273895011537964228573565923946274343377091868747350050988845299872132930259632552723245847523423799669678926029870697160823483966529326673226154003243919401752089429752941808636587585937774668143163964437409515168787320671254510326059444230694023829451829334692236598676063492818304950929037087886006831172462768022671437304371216819316223117206426583085993667671923992381015407544118786747906337518105071549808678167738801094146648499046649113961023377239767925067234483560370401808047795445935158619957116066098699758138846460186992054689637089931179215704765613330971398609551067978245203051676144259855229556481039980460948358804331190858822867503357839455077695784136222700158880768065553027739888076641721990102566368881580519901572020981314300009333154934105276783329044353479458630987613288097810394858920758580924469107723054599780599486584365169255429201501344257296350681805059037611163300267705982860150584806705901845651125691444873448950268142321472034236969478672500776065731989521832660558542160434156709117572431924924847742596458403575211231606988396681373523080701950216210880063165408540311912440350753162671495789651769916406057567278582720394710003516020869141489285698201998405124621924982054219976120966795838052074872712315919551432444652494968819018143714396389770661140536008796296419777083039327327700527794654702628507935713591446729458159845587018253114983915515555210283768022332513764040735945490734384588122531671815924638217812242903332965364949469382590032546787374158138320319195107002438627492322953704491072942258944823220160080442065090895597997047987002100576260638167975705183463284238472450898538372018689056387614968241840653457186331732737022779209182163053498356620254123368646526225826514343262029588893937710191259152384938503028378663703066123422676227532938774641560872291199407211438005407359273413424501968892513974573872229157164494232106181310994147809290951675496774907427696910644819064872664450889519785595894109140004489084493720990652401068634950806331606485532010497005757338922370878117313887069370511614764205850793463267470389190177185459463635196086191630414452151061620145836860740379072778012577590551163914774143161466841542373484518414182828521203138194324646894619914758735010611335364411434630508132729024641132752416837145951997367746884235840754864063236723662739931049538839982419086655954805627643054353225314892250035368312108876963719095429718851492389710287755696858611909712965192858778917267408263220920240448563702300429237056878834211900456488933875354686356903316350496053434677251125017521438589182731983601074790188840000380437805516254774570494925449787543472004530834546394443984738072138434486194350830103422573552045070250607033811756127913259684488475517511144800726478577789642045850496358127342604808034608362862896614613212473066598746642237619485617487063816145955518696519406403042519945462488205384228083792416488746154278263068371274079535956933605902208015929930136397610676943260733833800940207020325973860035477562765345699322036842516657237861512142678029268567063937501640885515447690287039556355397287184374551969381076391311834974586077534074558776276270047305306070423203820519913896498000113935331910865761578267379446129132830903732114748874329759839508921822042692535525320390520770973780908495975079543081439517469215535483879058952361447065650060406413001554774536793809880102351053333804767287483417306851195076387148594422236450164364823896726873033281661103056987539490264152059472724721142830290302578029978154143574295435123860975395374538858773727359064524194761281869521732177640255315322339261370434846965361407894834101750552566790085694418657976359564638024855192950402080881400000649657903686401897991734409599602756277359458817340913560392501970285355732613698492264798559819489710531967585235398135622521867941291432243686467369388498492560026797335037698222271876971737547632469534596114369517609661972953010905238677700209865936794302893721633736134932381042130757593900435200328446541769984372943041242691865282861934885626814872418396656306338432092474997578529004997238383609416589144270983840860529660155297745281449355328072946071553455723048904656651054343391587155094193435156999286832308049811990473771587903351992387725352149623737765307239897910078619912056609221656539703464068003896458573754691334039894879187992285421094123953577115651539652642438633723839171684690339770013201197774061296337579615234827373128624895947624813024350379841137006772958321009658847579752792233932020134984821696264414510350404409916581098753103632604619770436711081475427826096762759746272969338153642904839637775132762244463861072791600805510874078392231851045415982519368939341353163697291926914165743502868030640798618204033719725445634634306965166704769691394485189580995854909952129326493430197338256384877608075164109090319829598082186342639117225949126010444722949627594147264572750570579055201525562819153090355426024187921535927864086903012287329462587122176703984087932354827456764514799447180666800424270251279836565026800213416355623273575472448711674397504757855303310316361140123952924200288991960655139197657617549786961610238019460180139774711824968107726032990844744493983406618649419060826547529125510481234579462710476727807572236860543530575136206924528918769572984434476464543754966712869167846470180126222589726778306937524458412189672439153885324407992587986108914263857493796914252646440291561866640916446151865274967364722461149886216480625908367848430733628146347906562530336496628700874415698587851310675522930134302306524382691054078247461586899373639180517113945026916934334310912773266880270227861940352579764553539084109828479192715740381265837601522813723904744372088100543374500590892932811984353349132355784639344842476512723149301314960754339244762448799380403307180384638997761376863499171361421705487043514061304460991920276595572100468042333443518090057421121302006815436930548571459790310865383117119991622874349397713902994648412360751785117151966891525194816164230952844304160756212030703727682973673145250999253389857992411928418739519507296560248998485416062969503230553176090667352627327411116552953335051670111092962673245890791860394217856611259425476673303705961244822188361633551527863289155930576570302747844272057355790351642522518700194886022794871663265989429123318049523757246683568387261054721910060930568150025959626836622749414365179752593218641218076222037904538946329754444437163734743749152299366917629392822084945403362922964280444350196798590262904778663706411491780004666265154934429444675560278838300280443645814253865225116844075626620807297785129163200477763406891596192149450083719233457717163569687809077051378884153436038283588004376297569652752834373412077128500168422128371008957388511893218175423986794167080341826670925242670828340070577918265486556029880668753274469539385797205023863234972384452117039529878136586759191026140065971071810753480407608066544705844978297931424467396837890451736348272566981278165246667439949891364967374854099663976269578040441063052141140155228672004768230416696946568961132821605339627665342109486846787215647756472332606286463503257410370322691693397455655418984157227620641352382808138290406954637968452487071191679048664498067279474769708448525991547967617357732647223199406414958653160117746111164679884212564993830579025842383918946967355557798590682712900542328472876888871708673085752199560242257663899919588305412840009416338050324878993651714967468670366093561592859831758087631714867171529003334215814076791829159439197602373820697344018954446011365644071962348159014174958527047686470982618403101912532820095881560348598415057978079701030438036887677865333297987845697688124625097706947447989638732171720408649573288885169981003982496348386223049367128497336814690820706241425314703864509211754133916374646529177546929149624810659507676577761829381775792135343030770575671665425448377761580907013067350601333580525114423849076523628403472481589623093884944384336457943082634534494770520219935880924668717395098398467588638046335580835952170318023815385890597918421803789365122090721022389018273246277374092674232692949467621438893192634103924160740464740750145217159666339926695858001429299487099037584331236270850987608677325980498403166967914779022725608751085415236826915831979064344025851761061705300722862929423395889235728204855518279569351100701146576485274321775620064511689243613897329497411189349566196170107302143257457168451133974200435327070455222210832597917541426333793761910486599767023817308639975401270473718114110251834358905642786630643656572930064633300320923223238273708361366318319579362866832685719632104835380217844978353512670111560865406663839255447536897516663410294512842960078714056101738251732909372806457461890124366714905980009221634344385709785291337542822189670152428916716206233699767073462205348380439581631626264712374563610593332289749816560950934927719012109746663237565517824767552398274309026616580313222093668106090673167502742664082952376217230811196388578004698159976110730452057729988909246253299099767655317169008899894968465496596668160952285083260977867002840566511580791142947743814930265515241590286120233868914128068806338313357015584642000431336154072024154412505595698521996560898974790119076940150890076288598459215820104942039038983323980530899721082771076937547559821421536049448699677686758729437477562915036376171909859837127513863271920396560798219663112828096657946825658215420067821126938777832661238365293713477002537572640583197697419061189488370593470918062228247348370452181306304435022148173515813442706326020250065598338665489675235104069590156561342738179748031085876622207947321180241741451820248384079584123205402768483535474459494987138551108306384056855958768494418471789701725188311342362052718170253963830828033284762409757714639114897546572542798507102016414946275466403929022829383704701683526816567889035706147855341582655100141531185585573937321560281737544714383159999379294940265295737241465290413252781270959918530208121642310602796160729179599057826877678716953738384503509632851171696781356260191821880118290882402670143357253113898159085933191732880544697573060123589478448985550774832946147658977621206498927631469523545115468935954741426472190896446423590586388917532963895277667211337831017283405989293133898724371255048797959804846340217837696362126442108258395005665937083187317524122799797840507650671772897753747738982297704506059770771557485761351356470122796299527265835411470477742206321007561104499012441492490410495259766731462136209136915031491238211733982366264738221664328712102371425009334117680895725093064124996245279223357044606985222204229485376049570134135088081723493600487247826386661307646826580937398084396674878705298965925574145281908318742627597917966842430007282430794516065540059879297847248360939802397346585734206252205533615094269265642030269715026494792593376778544513804619784816158073568752554880062134618682031392359883713890983281765937144834699674070394793685619579703362291316311692383784647516722272230022663496121983828127538956131773653580753360872214052022535384061309808036935430152231268656454367222013073947191439233795152186145178292409634044075479314588483661511219650764044787319774967606697263092437741133383460489066543079265401567659254545991430692557110906569645321497682156324433476802780806608306132662462531168602479867332549949800596475308466621219591648853811563159904598202938426499394467861559304999897809623994921814941948266197527852997216780710111633019240147768044717534164800315021458828959593818681248021618383139854690956542675849263098804587112076931173376128256690489467291977419862400739153127540042247482161273914582772499421091146176616914826843391142398817283852491451828138686658107465994813818524483972564210532171777099549151048150096450350239299886821207641272505668201154346638564557441156442251574139244543005590275167587334049915596083113124508130661751133104432012916758277456896564590687364251740289925204029024905328216204288748578019002537683733548943260335824473913472299068809551911648927921539031521534552334859219416373158038778694893599765798014476242426074030166657448998715765382772792518321380239365654192262376843194587360250625427343246074730519909313316528578403633511509481664230749438192061574628620859958612628582920003044787778463815526425958362884175358226703478067988265715874096017523531960085318291879612072264475733127100921459104488366575853281689174888138123970685808265815131539137084951081928274076866965987944246998236057096992885589405928124381801893989609258382966577952093218412641639634777348309072297617730076152306865222103444467068601886358899188494635244010467841721412392595723825402396791864498164110920647159329429357843252858907649976088476538139944320567684372512394580597636952229459097241012270875415980695899618174607090637238128236256433802731496013662677344291577776644722589708843957368853822897964897563951788091522567832887187438102831233261095500523039566363530122390239033122584388937795397296825292923400587845928511760493406885872099236418326968773679033942746587192517421731316459392120925514509352279026435126943753113238792125735648002281994504998480383584629056883821144693366181813689793079693259222494381461857565982474460220766714408488301356930039191527134167878253559153357152002838094228554221732621720255024998035017364323007978361931255866474564538341735269885112565864423543335826332999172624507292537738899022116157354130369567473344618819471328727274496378103473622639390971442604711762814352872032073559064541397396029690034329014023852387697487998026282917321759214452574311265533128041887108367798860344802973198117000449412799659818359454258585395777853255004070979731107193939249777948500791449317035033494633854602311672319050732521462744719851975203114122749408939074907422038212788883887985714954021806449239709225061445152523315210812602547652936698005493835874314325953347643568579585500732811913308973979365201064520067763438391612978636262112233478214524981063674566821200494515516117884005576032444377240084256110322825640569615137771330810576201723938215008179928828541168231651270870593203627718242304951039527023936603634588503644349882492968174383222301140918452183476728322260527218453606309009915115576891369407447145285123051818529641817917879521122966320722486172248715230224511780113962981776782228568731751852334044527496404836144599433867810135475368627490537741551827578332088042074045127931863092310137454290159023473419637913205270271441252117685401452347295697473180997429609854693260471311632497835924504553807253769693268186913451540233521313002949828760327058850055423089666625027960772826461591749523001115203010866869763761953999405397538370914456368228190457928191167366462218909255820550528734744837091857556312151386879706268737122496977672954026722741038783580836445620542513441941974640213329027324649637120904551648662812492189797894607093516247507189693022061322732722803813761322505789834261554638795630474980077279153995634193368408631053201702327348768584311504465288228105173178909253044726551850618499643167596240761281800762638170632545243060502790864335381497207094347789182162225509929237797395195102328643412636716206000889728061641445718024577315373158260198676534924081827711731506217376351993756723288177931449818727173401649509360367583023286684976363833973867151019260505422723480156828252496464495353067488531587683973140676521481252218167364925107072370547048272270034068567885601977510202985383370399355092662232707117981608982401782930464185640981346936185263301929497154753544622647899518360198246628877884923098769975924708847007694495814089345487687012810244045314091192544033631631217466111705543876074575326354374050803785797312455245032003240752399134360674396302664296398739903552955724822424876111027806385569877398666581546421173840151078990407638193295613640001903777717579940611020811755065530228985729519612529972573048728016457390245629963949791732293677336950688134765029698365301901146439623775113366670004174049837832614079455259803534240098797826820130268438102020773969830684844221345195436063659768940263103903575693299665713582949519074171947290382443280126294326592207340695194153915601259610151677359887688489983404052953200937146795868093325684587093958462573608465665735027974911662151394974296110273963022449314322064000337728321068113933774630775350510559927393674063906556540024945756206943718580630340961708014767399773401351522629191930469845809269151956447564008883824477748901916389965930198652162143773608876791989030958358098295597607682513360073586257799739630611440641423712309754288644845106095621410311831251549414373006875704731273949998198748021846907223095501836781132919283945324973513469457131025908768181661767304405578374330779799345109718298632101340288185716095455840891134293230041713216568819509223165661862381665489113740688727542433634153824783406413252060826853722617961228418908387784515200833821403577575928408412180258234060220860739696957902673843126243425643239225578360209300852597367834038474126974633701702020695789393853174650107893247142435451426640865266632404543387992922034077453565947654395564269156367679304626075745346732987575647889232753345901874246785151394555268063739513294145321342689988668915422210228772594673239060173958875990210379242498971088626031085413818995388250507089800530913701914502787161824397522252637417561710140775244983234356405499625036675368759565445415222994023006525275409840803552068528183514652464596738627687461336303881951602614156429533575784568771800620463002176177444968757112858589249055872244801040591613372827169191250597908685998748701914581828033629550144899946109557694549197706377916324010547742879013671289407520624561719214181452985830907914938534359048274369153503283430791181728911855801459477102446147382596776407995410502503079825329888395095590513443600192179840117924271663329890187698449712900290588183967032846054043796016879714898558087655324979174860669546158293157387686349495695303749626352139690701787526123739283679895432898342584284439662365216713132841092516128370997566234682722932408882341148199400073061818788333484702181406766186529466169395860915492454210598441241148760440347945303577386445548765131460802338838045405200040535038462804468069637032892446373777309315625871861745630732026146239431390822824747216039944493862589031409584640576000530445557323992807772036766770448729748574868296502226935269447208804531741959092484539085750226022019682025415206922305175154760733063595208309331964115102877393211391466285854956212311718643108632044104270131959903283420940609813547177031965863426338644938162374865557888211707351673164976085980560380392927192841828766784731712193230907575019705870224723415191390994867630509567767970606232419802149423485516475687079649201995068100353012663224286809314696774652308202864001542121434735264911886824820175760987801881708546140870480237731047341102962960505677543725216279483049245596794131139348841043458983912951090912973603506861374430569634526310128024970603287350675869658541529636230765617159304536432339185401947370355169033736094975594008460479889500401711620480828211933553100352668052549785803004137116335923103036723751028052425692579566710849690623570232252606431363848076622401869823018586604757647068602602890569978850306344786739646787154959343659826290808621950427658895162902355238158396514451647071899443954229286751065630558170371810850011664815403536288562284372690374552690693348612795886157735903061176401551130501942370227249964538441713420057334322512977823617711626880654447417709985015188429017309156470434377384987988538654470616628026833752932632176964373310186749241364737782385583355203041084230437005255402620652738148075690712594844672986642720649347116707843101049051930135016965533127479829266277963694710204599795201443266038971730725479689807879282334071459674687798918743025539270265679463512955781282527785675672882698171151156800697348709669845717870112237517545499180168984300734612816574317220330290340626088421937198854220134071004356295147150565867428142021119467662039174105154704668353755241536287531059067095859221244847248398370819912794248856629571412224718826400996205329203614710446724197111569689023532609102656237876960397711531046722335044441427650410739800669538734828190825383368409130145956597337158542943285513657798588240230163878687729074347082117396538403814830451163410737200520817801834634918662773477904424098645007670048455860562666128504012769636011651476861305887113545813228987055465156701509245696309049264519572127663252607985588808585180882611463234156426430808590946085366757490228219988471744111296668728924533642302475495859647521750734751765485941673060595840967371580720596969536543853167290588217087385019933676181443988079160824073723443675479926845511943449317888533360017252985865343863271210460434316037737146973892557526170681083696688522558538353894270657126572154797480479358631072387562320668054382730210349763901507318390471251507579800323288229556489193971098290036771035512510800850967131124030363646424520185086641267924281275333645513689557971125136347496066805679129815871420938011457077528868031299813732732604289751400035386460613279836397345075586485836949999153596550798955100155046047265578680295619069121685901330783359985070422719982032283130002903532062654522801263799734874047329444238476846893364259390706913747313279529710642148381907264639016592378935208285218956079034867260834999162066659124726415635027118920860225296414128135322766844295964113843108582508586150320700362125888743904190653741009560402532496264242339592359230466613690472052339343374854827702021450481621758094050511820634003896320352236821405869281967910639402326583968916359429258753163270569181150179867527286773979100382644321359293132112889652244260870631471998526611755507290239192393076205601277899262053978291402179364883556234456348467312695490633484669976249067021056700786967446555869630789965736164480188914951473461290157811612960084022632368854342717004999664360973401357345832528345077243454561459520369192715212575546931967658240293252100732505696101040847546168638829014868068320289400008325154130395795657140050144090099822091171414474459285468653149721317267912122970411112769090697165870605867659255266417852843440780967773451745219175476405987481330199913277923528950915594232370910092577144097215704338528463351896674050475352647906455118442226201661549272749372034618516263652538478301287763288595755613477072368804723116024745430315042742494785282472812293565719922368650136521951026153918435128611384075745958687362451225049709338633453172765692211299706507882589424664070156427813889833028928688334530695813535995103548449380059554795506040274040078271435507241064900541629421807075868604125941492498426117622184938168656533887354169903009468352168164035588788482209361481784422738530243919036572832628201779457653278779322633046744766668052293884961409532501617434042241824946035206807581845835412555679574283647386650344884820726702337913675200267767515017057260497451747742018996797563467200576460727772244559245796880337760420796338433662684314488985819576840713011871701043468115597779456164224212511958530656228524257555605383251962092455018795385679160671402919206149632598861532680498101320204690442650488451935433638491346759795585577424363313091101915581128354776029114038233070467902624951560973245158981382226783525381290243607089694857256400795500586076819638304133900049899342067857715758092781505078420598092932784148652440706573348953991364719722528324343718401508926809925384898197222329759795652492003008070508081920883222255781640313782260424995203388473974540992150936292573570038705994083315783473947675235947265181957808933238815712239647122665642421938524748500077145729174353872932525729308387437559523295939357056103744681653894614634553146943443405001787611832250726873115675093258003457092682151499825542853093100955777249227289747046357148785354848261617179732297780550341862409836157670829978280954402392810786488051097803911324375215717391692758437288888032525175049124872749671054954366238085884041982634270160703623752030792568343482665231945537321564802095544891492384325990185893808368523949257701630627116850486762037976199285892144820048218141914236578072706929873616014309695692005703304063073991391982497998042734385398234443994255840587356198247133069760305107363219754465394081159760878488736041337623418986105103694345230033440895960058746267506794136004546234220652103097273521460952781956855717318133110503149614734968369297236385878776156931692450874277547768518930567509476034444288210576843686150538621374010023690365564528287041692522902075934607569877892786439254397708997675966768945802125771762014553650760716674534780321841265574017760263506526449048381844487016908964132674110451261602094291041933674898812894985877543442258966802569027769759718526996233521473881279648143317624270073501573087273992303151982282409957773777218964906423002453446273203937424855478302716758548075454684867615889341113384782725077422208473491461038666691772975351193388252958121108755691386061722956381755900152383498641161373252059366470465576904322286777294053738982150007935239546652090897147634725246815068099407959809898777893903388504838310594905760919124802761012244138981160729127666630662163055304859013902137988996190546162827535569108302748587343600020641311248899250442782986270510065854389806748378579379994854865550333269160490447067157403907758167123672903369562941531639518022819079635235409039307658755818706285772008679070824659943142557292712043754068871451139009968366833913268652559540740821782099241674367477375797169597481658549206727956124621576218114675293997597225496352957491701879828765223724893819654727682796339229984171911501998751499897417321724905886235668686744879747651125221344059778544858296466903151726108618322688436275115706738035568089050123550967210657939654213085712724394312990655001790196821278140834812240656133050453178118874833235088045180873905886823087736568760224572004557409768530112621751806211628869480644354936693959736773336009840557603857399319328887978334234650372967849909462671035531789383629072555607844264654034710640958567817443249731303702535008435039980323486909778618566705868197257132026467538636068842207592627702690521966555087947092245804044583345502887890297904369460681107672024119920549779372497518901744483012404179737908425063986501650130442550252346515247698834173260798331430354134275643480642187600460249512062838444337415163455675183255777741072551461619652371781737506993450899597604552246974319421494767181660795195982701835897264222484782742940195413593813344812562454868704481238502732668997079336655896906172644467701521510289474424641067307705477290638097270944933952726679065234995779578454336519029810887207946862099723506420509255032768217107965697785496337841951753109036766353780469310044759743072456639711601801773504832163409920903264350956209970609163642181087064961550550941693150005405780562118225386041329114981560197610043720961937518483528698964597493675127890085332962330528156541122552012612014992120478228223883831270633712883983254955852784334328312489876460651095820455758677352470742154948436404149946642219753664330565701948633788970995801361368400806582025842031863816850742811341757227093643872798817081356989295983460253249703032372218299443878098100668070634748177164899955985221702802342591699433169813175279948255302822792309345743084980252502404770524742939589286192483823402729657673028234629765408271206280914686096068426903184415316157146956423365015544483187853546698835692450277003318641653126868634693158907356628363685790120991951788688594651170537697332747044766241903965390110638859429576419316780711917272009949856797920953252981853784493647964786109420992446895223496291817417832919130330948076355690616756818590844223227781185643443238231307371205496658309952477638497647380782220809333924134616249030031106520091009624423760746884184304437886111378572521888076131803568158893714531480666323351516217109267652639700686184424925889614109306938703988011072985788629949081171546612513351333134746165696742153732377020239412314655620189843735572317938336291795769648124657777501492616857305591149578306109943610072060041704381251514888662055588607860478480564509779000072369168941802489322107825745291434713826945056414594220119920358328552578925514881305981801430986678143824421871528131709601427824069402406166928211554810905424066533537871890626779242754324162697057333993692339150884622127164226119396348305298622457389705579922974379867992801602507248428360917643441685677170061235659069897693724881948762084568058855535810828803056908602362840479540267574083411481924551345003182510203019503907588273414975069242065303639424234585754813426037203206335350106421942282486674002404367112102648426654455680582791049132002970668644548953582737989132599105213269653824663826818123146679303521197700261167460181340361699667683946231824240805475416692278760337345294893953677616387005532312466052478264887484341270410250634433816056196229369667112447623340659599416134360706265175739416999624993671767095216119602698084546068847020599343837624990237128477483620468274606922896945369884987301119635721203244329860939075997783761131777597445748782773703751829837668784425214060777437921802892844871795290626527238761306103221864138480719747272227687915908096920746681086647278286254597626994282725911169084568317259910487233451825688840556257858998028785911301435530594589758418098689105088145482722625859788080602363814304223857899568140516000210268135840752538961123582342775722871834176627067946544596554296323022799947460543747739030344425027798999924738701999790267182714894528897999133000232508466410899285903046599957090754826749777159500757901220757064060809485347811604673787146713228707719109777617874006124384263523714177800588134604477677901415526973358427665569342744547163398047274011192236067517233112717070732722929300818863064348631230093209077953492454011303578943467644887539393961212084720235482145386952335769167469610925627386427188896591579889518715117070037394559779150097637053795347195991025737297220006142021490179261545166537754848878836702598139748706136944904341550729188502069383355019718569078101855809305382848429474758381950904270189762013847283554532809307635844726877502430295234451371659453672462496939186405722244440632232665060174643213979629728275614105920537354268783666332057693361563693408361911646067495754888533941485867283275804023903343901707916385889676079603552365621505856314144302605751614025077814421281832711428437996218843327627923935122278775514683236741986879192888111248877293402581337150013842829450112275593665504656042795775939285861709049830086350392014266749413049231756089894624158768832944744361246231986036301500928904851343664751830057177151886404998656037430973500523812127219014124290072977758690740811483717174770084692385156369719758882605538914438290696049532226017517913280482903480837879861737263014812932547787892271898974021824638217314422910871350279241417360469661750644204401963260360209318504146050437764990565108938769256036610886381157279114576822625377493023339416928999584371292958345431067600798868582042827160077141350126549960858202454314036653805337139905503981240488717805110895144816470585874109983868215309946941582029823609410576982626857149352251802611589524486879355316787675359732193965463458694868968000261960781013917431444204264341493726813474761876763561604505028196742045379645172265212580336977382062357059652735667786118199715655156111533358279433709692846684289976255142283076209196501550623901252077210650159635886454118294901888983499658288200521578427554482019550004050301572412272011126638441529796004004485589704044550561441991613323761713840501142821397465668836232604778919925855195117338761169100918684031816309866690806101065869285207822989178388963233850565123194815475547967801393944514677299737970294952340571943138182626405651639344526306466237258650021086151425974964176373177934408955722086067279030364032550990359974018255224990074165665967950408492720669721968422911596754894833952569312743733688754918917753472973670460152664291360811848759378041811308405672476824377825210482490280637672030764156369039913886496589908344832396858969152436055279764133279496991268231408150404866132785684185604928791706000164934361429327514755439107486852965798252597000070081594114704325420508827127873900232901437282792296338463058775706901762736657191008763344817061902799832546791577751669796565104638747043736229662508512477408493007460114785053450550838800755419297714212830857111889430918481110470475556677658193490761421396635588067654375206912771985017113695052999662418663353413806709312320917992615584679380523244552809241718615642922357961374431355541837661312294431118698868277094988837584020229053811435805241145158487275476133832370449588507319601090585251660116068605818577264924063967528934391926354983766037761484935309360191212521682450845119290143712450087353203333779329363748086105586752016602634831428341360021925142564346384163918553040281094546456006138121952899860466929577087988722511284695277171370569566912292448142763143353528094521810142135602415862251527198083850758735468541731378808567627183076599635195906647703645024493762092849575891705911855493965157903289835371009393399371345347565717925352536293476451467275989583301255567119990353971155206760549977539586880400286941386869293645134379311935391477440302895215233864728219474970510425061234070154882389042722403705715805662502110405435675461954945935479669880907571481458514260925869009702708975733969998266159581637775708374184863035754898605206240250154301552203431102685772106753651345880521660413521559647851494622635136662185958210361254777273529736044850797584361027215878635616995793119274480113493819123130667124343280269325547750725160668821127147715239339477915750694844939644933934344492300859011274350884183587424570800939912314270372124025108947671579978303801946209948328274073995531734382865129226426062812105734944803216282284830226462308505748034751211234509464740354589275533735187520559993539818065005060891195946359786805551304956356358167079865307536816055152964033536667395933822311843708969817729067756107743309871807782005590658008879057425638912863819675775504706164008712741887565056602284541457517674299095668520210612763200090296823093692954812026753094317697126448291930299826243925974888799514056421368933657704253995139021741206324553672855363657036101356232616690223182342285096939385230718013631414198559548011362207458924834270887223937498342944742761068980827757306310569018633465326794665880326788856899506722783917916482698929822566207925982660992467864966681295316445888795176688039734375034380386106215525174560506426445441483548471565037631548960230578277149287815036930923840604705230516344674942288386286196922257360725741219196766089567688575239530489102587612249942116862291953113106370590822180120088519850567815833100052618333230585127395901854465879863424214045633026188954008901396539336196007339840886560944937375055383031183446580835533458991782674092557520623063751307850900677839385128756970922691921592721390976042758743757953552195161510853836243051566931971968337438710698338592918915364328987740675779300393336389806304855342636170071805741619996017686701815525145605501871623531913070243499401128727954878808828605600100716059917264651466886464212480675755616178276558144276194977039533420230587595016816936453456128182267197140250562708605716213849678870732760329547886162117032277909118430474139963625409632216908634174425915647824669945439420909451768894073479567469985924910836988164980961227264676154497112044837103331441749934398259856051741769625686394464762890149307905117485263468761356048444502512496989856744113478844888512070833238432015891005265524377714014347358747824134105062140403410736711522308950574137813913326588441187334618987781737061604570905181109709622993153408400234186511749965742436946620776926290998718936921182276789636442212673623616337253149430270443093292492954791639266338482830288105644581907158606548807934000139191264024361306734697168283335701017293182983776281028847769211272535565447340367602061074048370530015285555591069398701771269944429477769910647129964300750591237984555625258398806690105126770761276726471862569093276124156247442036453621812876703972534625850026602888260585230447577834188527976296735139191653491224073419352108538388458385275079064633892080147028276841894403817570786324249003018115374973929745017285127211060445134609381942858727848798637916871237694901187656993156523729848010716780621616438902871536769078171972616443238951833232037907516247438037163469545817441928453077454187092600011222128821631416268118923779153726147200682304438963333674387457919523699166574853266289993121896776938262252084645274082698873161627147990220944851516909736153497870832037352221153468190218237036148599500612347620286461455957464709224362320932362848123257896538957856505977264157738069654669913832647822549313129690066025298002385656743005849127739526218216654929745890626217883717591503093709636148380242746744439661185847632952263565715892285442958911461196659007546504712592006226534853654001279341915609941952379120722537166011479378358173773693381162422409866819833505187137403291807681318374836355129096636846443764482607982273846612624181230510760410876766956237554891508729085263195598893669589662691457496395820339870608635099275725415105549603570645834366830657421088743952353369441936017741887437292745854999815358287774581462080907668306210436679445635161107798715490810229491860810642830593923712469330436784672067853394328015719779060738389666270297992227738321021649291711760669532350986786492265503764449101708562044233570353936353572064518871531884422239792971284280822559537000610988638200182136145809715271132270628360702363788732631099663381651401353275263020541201705296692802307930649844734693458237018996666744248647856452459222418110984571405670397895515024100759675860142286709370590877184724022239199747048226503945610097068635498496557684401217533715343498134358706176844486470024037236058201892671275970715017628840156156197160573666191351703029267272738402558159467355097188624789956248338979685967043432703740907566079914793850424706450810580169878328699627225095930690890127295423897566953067554588546638943998267729313775019129941850587009362591010404174206955717578330086071405943361502065868543904641156449539506321998397753087460575204083370793727129104163951033781035709301060178926707950637832451138748601305221619103884075547397711993554715450328398862393446969954232833625476355241217601075359568185871067021517550345447689245437905986089626444733604121915781272703713762220049894561442089381485810759502911292440050510437383007216514506385948982261183639489549770906158208655295293000492492697092621177077757251523898977543212975869245276795452062389877775523220606033083725397992178829502290097550050352726720424103768400096525983550010821137024098663508979260342798527291670698315574820777247501632906889103848104324754453859603092280879773168695693500250114834292479816199229420018196903227915811848976822471156159119008474643841725387208959334108547606772563349815795353414192792024052476191752250464757853027631495838231059169992712100003690861944940818877170612303711472923605049891832606271104835530817095980572390001319146869428798270344798472126126054827808943674536182209343008528770282175229676808903027238140507859516193047861063677776581318699146526324597691809269704323877324332098335796193470067685067976600874453980843235232239092530520513101271802643752656347591364768503452400595128842398565293589390514000148429882720375556396961152252773501364174885476221232495806881031897592703222218298865954045361814140328097482972618906568783500762902710914188231585824546105586115206116067131133384940986123140297778841359171257105774218583196393035734264356365265515435629545376115385341043967774035866221463642207219751169405531662598607937230999014831389302323571397882108707554540232614805465459808693701286346481982213300052745359039342800879453109960667633055104200834896049525635668776947972441251722053398237829772335650365063498293215660168310134263115707961648219196735007216058838248576459520269578561540330052526023124212183512389214420712143131929299204718655377852935123212472757967064468916244371390592227959120672402141174316588786702124584400986452970889382440177844815265534506341501546042360285481038109280698181585160447241423767956001821582048394926258267260358635836023280638488695341856408893396554504087101132340028722496257918159551372174443176033073636736183271101517152673367151948285892805604272615940807921745339719465256535089533398234157853885587201994632040116566472530048029703993065652875047861615924605512082458781174667893865923312509318440046288652304685537358171984494534928954472312475654307736604255610477937845591922901499631826494728763258506011545246421116486244715688770659662637263384956183000594533533205828527585543340618680012304708416530116004498661921001948540370784433998706381076237939862704271240695080783924573761841899760733455541419037180578122175472569463192874213715827086207059443460732354301696145018856684267876120284215110795753523037055145856252252708600236914680921060968339911048130729867419547001812573720704659477074837067568784728644777712760337846731241788657141693510078798485524847382291069011044257615427329424025213078561390482042911986817852828705057912333578545520865755977858191515678322748110651493695878981228946938657552632394233469696326288545514847292448970006425800837462657168993613837668139261389286559042623167413235688699461451295691269785414438072179989816464800594524783988537033300261603640108976030346170738998074653300746245018039572923307001768976767484924821475944606868184631572933195530058119605941668814669076733953608828159746655195008929446313674923086278817988353751127857054139035528986450796525334853746542087289547079408881825895452647450426454509357260970639290733636247703061318812565397844953370627566728182154974865162769607359936504399495612519128808434966933819210185913690133339249971286560104150377159260609600680297560690700473648301187119793065626514549504489803222176467910229077048146507484122589445870653119362199248340967577921420290498871537402646650405267825763546151255693794667018329058115449796476887306540727759859702842811952587683238204900797002215988563903077391268699889982749461729608123186531163929747730160222878441330519823051243065248517414921032538088629423450683764400271373523754192845953600556656824562785487094493248681565015080322126737510021330216410445761286944243951314126992397739524483222096867754028496755089260493179463807225088101477206595652260147383861694956700859794862092471618192571544665332881326208345339961895107068112563349806333202294449452497664029910499806323921180420092723898784228980420623720358512155883993507080057536371368510341674327130900750309575890008961469196479611537388966462368958363128833972338812922858332622090420642913675487840917847690245637936380374474146700151448200359718376231438803416633155495996243142605701108807502742717439083200632032605162968310764923004259941017110015533586184421020181590951226542776564827526636263530889593393960748460213655264836181466808750246306931373638398598284099954450979266653038507026310819899253177953193266207466325374675741336371561272197656134446844340086183579833182475217056799026149093263503914592423010771884513257301275373873673014584604402497761685586979315743715130551912033294657090048005480299070207822912340897222019908990988943855981678165766639558841448434150895470308444996256474692835239442204365163826771768814955212658053702486580543086493161548931857165166213503776913956695900750314520870834068234075705847195852071941296108072212747854324723045408060450636141085036785463240108579988819392077695944056683880155139584052778311311521803697262095012345609705044164274903368965789777110487824198228581937714968733915092589654367986953276584820527419131972433112963879745449228574174035936492944647261104011084410964182525517343742317129745797755695844044270821615795331625949630596716540121618730196255534395897973094748444676158207633097462097642064199394247161127093395711078685697478893387111163013636751361170379047622425449379230228968086403969353033899746200519017065072698806021122383326456078613402288300482517930801285702842286714352654922711604928814457662618334210615509554731497254218620584549803074337251159095992426224843684156101602592767009324717395651214113194299539359199364493266451475129495080905596638008286049190639815579395288873033625937173472856562336468951973703070405744246522013849664988114550929009942003046972791507158828674492992779004649366517828431935077711124118433931289923927993788923615695241358707967618747954817789531002087833888557007642755393886381416453509818219382351060781761329729175045359737671695258352011082794803281384536416168478358772319704262770444146228243132200306187825186583637015540547020073596240207914317060065060967398250233532793705790548763783667212758842010849860258164922270867085639225584019162858882263815383816134369601182635878965914532256558327678326010285991483362476749893015644826210948511464490821819182272717405878801694779251563150627912105378997431444557762495745965355129772826544581277922401672884347206933632716065278315003166424361775515279492561398218830005731404801613715304923389197312906136719225722577602984169054812097319380831542159485089650813365684115617608417169671857067140029341198693779106640877074774965480711892283653569711068152752694148726927630909012321383792936302864840528604292858185775934055905723160235944562164817912598835061914920298193149822183459181804911646572198614487860694253974601564859456991428688590493863866016334053387187581517173621186589480950198537516199427800082626691853984906912027359179385617242345633255907577232351738095729153659734491097123973265607551217035650972184716141611451809053046504251876781048230997881052606985454979698392473652913266219388734121635326724681548128967494430428178969611055059383178091074750051148364435692980628003164973957580065254054698609507858283637272237584081635443525318445142468470505461658208307944373559823178197990253441419712393787793121206945454097955492489974649781250725901297256199686462709014088507303136708015903728601015113941905170853749319730570638849226618291283603192609683238010001668003188456349260710164185923444715815734474401606545505380722371183676149747311904786865338398259693279712237811240326557880699953385678144139731766026311362740254321902167306188562168744778413287720476693289846125588745589236006659516322961027023598112488102888652196660328230659762940197746305488203002446707061651525340028942463825240918330352939905995645967087598491629968822581374749377994403167336016286787230915302598046443252433100630452181021053276570874708008455849250515930060398825880531630168300766885764810771407388208864395258965220461768495627922881164830039281134030954296137186358443123280694924069624153519906885454092424125667383989868539824926401246905370300115032543609501854606205133270746812764822535174930854727149987180344077163047893327291522556574836047389126222632818448554877910438152956130509203276698754241338882669347113900178953450204633649319245291628413749860630702946439208457745932967408223711148237645200857978204673371811453157811086085028027315062122805390150161910751328578545396833154033703460161780712632642638471610468346028125313410621487720016187966606926571854786049950924706790676091388148871648053110570618209733288033116622732169577160349217796484602624648355917143024670758824614772085165786497714519367213675946531818991614981215997436653973132043382486290893377571747082029378669786493110116175451387804231546948074308907858398581868331647342511095310513834640672376812782326658770697767882008161579905900290245584561482686322517655812603732718821608434499871875170845580583070882289899328995049404225312292019803171598267944352455966440085580055406744335452377127223458847950374482949531017696269101722045860933906541514389340464133542120091377196086544560123141966652559196072942154211382688918916768850656230992903388618856488503233145093259763828674033945044832375656275242682497142069999558745605584105520745678409162006593700243005294087971783999849742901018541683300194928958535971784027557906931496076943932788728218759332015269466832851041792246587597899331109476154281739335825271683181399650734407031059105590262070892077680657098457622246741614544502681373277537248665398987779763148882331116953285858699512954718848270601395141016045762886880366560231434015439304813359776885289988508555744103686734179308981527266626919571215486820292421389658264648580766958037219046231823607862273529897600897851757549984946973903606924993028597810882221140452777104651714595142720559392930622608037592391865287471048097433567434159770886921935328364684239779926546465195354671721084523563600525304765772763757513897576951882206524460211278259093635032325793286260652926233395636476210240845248282760525843094569147393823035565069222983834765989285397565552399679306452745819869896697205952964488625576863880134891418741355501434203001011139120327049709571622234755094705255355908978449733749752225378188525532127385955091310129922807716297982368453607472411087524028497369238617625049394637746126452893833120803512729749568973906749356393441726116981397010052159088871270947040598166520880888624431652823209916412139190161677499213425853350457426443181762714367522903210675973303839334046482551716477354322625416503588110590284542539546152888486930401143020104702999835751540461245872858445630320435627264954071950015826224144258108489693549051077344958074192373324694817423047298416465925663521943108722223645836293015967256748837471734747109925866244391294913426093893417677684755943354490240489064494792416263171624682669995568287758900061467239691306882877664825847156339165036370090692410635215009464586148641125407030109847187391625992126341465743121681653164566501117183362777016614565132352629970604401028370327638927308671940835750552766959775069438637200023321267178192886757788132928834306030702074522435532562619177710372351883172700780153356504506924907470186598393722873121095010364050646187454459410649997841600227567750339069332908999266257815286084313554208772541846758063919022467096768167610190223244587050871708840494869961405387564967484997267919477059450731681291938006823656907736553056484426377015118577368898752176596440406231721380423283378121139562009402153956737526753651643732826291428520205864339279763192558986246241416658000090455461482380387530580732151622310938732870555320201205604908979991856615426391252495922920046880758836495358745663752210616234245294484854727019294552651749981008871964694207035285686373296427790457533229440792137213661741010081841202460631284781210671064565911065959984117193710205587006970228750561013887904562131178368910391749007372342409749019707193788941077968809152389827279188893669752996087913182605014205136096689320167507097648526425450812035207874871740292872123042126853212613399083856592287200386963342660245695246640778729190646809853054537531914184423285020378837495421634878420056943370555417143928901379277767739829243189695866287322506913773743950302677152749148935334471348469459325966437294087156716324657384594796646300944539402442108198990054518220832896833509592184690361516174205449307832314860578372819230442824595854985807360266603899267492161322586576414035906875351111320674208303616781086368671314297911430712653102068432631164115113345420588762757988087738388620389572833385877762671434589136393518558544466697906804557546329370835917982646352812319520652249150468011059698983704211674455042951008544856943222469570629693375956048123246078318204752995111430451658188835546724965364209763161476087777298621323147367502605102038756032739427172887047819297254645618791024995332090173276276775054430002376266871330107703597980949703875900679867558883221859176977420906565933111456953731921270349732670393289616768119788742789772666941331077770129998050258553741168955622147027326253561755180691167334532148038452973134965668085770845985632943430465270450282505565959036292167543987257741924063452993060475062031364733194369868079110854119938614180477286028719464507217958928640079539154333915961897854188048015736338269499919018738176090434309347228752200752475332195896291800743580267544411480609803529107418203447239512827059130753993707880186677576321172190255429367090106724228512861427118098501067237812070631363973145779705868379005988598233509050785277349360074739406252605803004170892345378840880000368015683735556111300766224307574832551120905647699255683326519114476506951750445040736889761400862342988260948375104084583553759297720805868356155270962760813716913120724097589957662674197298507029771983601783418689704054284771604871052103060975365677057734719701262457954278591477117060557355096537203987059617502369490216800358534685573864232419484712721287680771329215262108407349484878952597489998795296579722702451863623191454368848401684135897190610419249429853878604394855580595796716446401431557660269449436339525449225726792144468337513143608750376143201109948656871774160678562269239640128842239754001353439320780937466635962776867221146046194713661974782043188337962166729244992303194802793361917878095816004023064574928270357132908260765864540253767685206584606275776381703108966603517331316560992379142487716652264160045859869785926910060098891637736601673506327026645983150447935621132068021879556301312584202942597397653488210602354422610503395085063929930950057879237530886402794663088459167224656243584957274085262431402203555067715230196840236820416794841077171859368616361195688425517906641156508259710477303347355423627280153019676557089826410619971343752976076002858444742359799940680588731292946449445123436255612021148162875231279728333038956140231261655240795555024158045668135265919475916714047357696966888282060884868550575894917480787101680484953221174004747875488280165218130318038803395772297555191184858007643596390404468329831043693000359629990976039286559691166448616402483592662872898016102954079348890689085316087565242196886550212015271403932766265426361545088571742303377798041561152578567278279056668175419546670341349053617498250785904839634854932428666654163952949393685281455201620022985391936712304594057664154940023432889814420864082263946527225995156963707701888870185524847230238000613090658094336063441684497234892589952136790746040764836559772531926189133774323463377765162039909278334606064452862398015977838562150028909519999518572814182877980449650737437958920746572213575575530948196473501737142680242267354904451529522633138937034305953157717766296995181147377435334915261495968579979609185980373343695074443893380977322832330007678910556848659431272885627064888581935801295191752259720306879815771834496228329272422347241387943268976825065002874464185925940346866420893158050386838575595079222797772766730039947301779254001852511914204081818241060946130762843902903496604391836907836793119507769616635357118861891281592401233931323615263332630158023236367736987488872951787868431536330888273885647188111101009566473059132514351021089750390729328828131648813394713172536590250316619425606841221437111728917412040549116905798301802018546451332353670565560350092852952433332603852556581111547317382697681093177250791834557131769975411132767861901107046221397518288872552028632960706508317467433984953821942486472815497425820207293530140481122330065143646609231562849534994725165193949025281624191033326011998599893065843910672871674200600631885379661268744668221138247193096243486645020659521932583396958874588563060255143391780973335892432076457410677102058311506317238729058772355498877616225077217975382102381812193412970442655810122202853763943361378042743939582527366590271183281519397507880276658020733355417262755624477278539547869543914232587083067740816520366251961828068220923387980309747567689057115774567482346422345892415138711549342876768332120071929163472536579169054684555861589781601904077093958233624397882342245161800567072657766124213886107786176895424871986064459872378023271121030532858884807976849758784407179438617829176724762493114598050613000237771258922915604054456683547625439698958995698080392691298074789038173511748978681556654733793694990508054410988387644262431508331399825306319495263694850469169762027747727340785715369935252470436993646900783194157621479034333305000432527416026256085782036863542106303416876098059028372805702436947782318473278197958639993813045933092969617197265515819170584964197030557744630043822923471218563999696858438424965763875753922272108707154944113581308873932835406578366933224421335965410708115784854876178613895954988791754433166206434243292490063078625663078254601947374281439612125473444510873012050690559474309787068043614128451511914480017361198266688705445701194402730401433614423010773256200338211314579091112235395071164595893195910831464891934972880180821049857965066214161562623756568670442882954213294922761396306373971334185613534044503586918041884457390608309174766224886434561463260591929020272613477738108665335224380706926261654218415531366648571431008736888024022465022939970559046269426696995928250400728237064993487240433680652994952097545314807611516081897307928144049095763276605838773683484494024412454291821010826151049789573642372015223190234273257809244392701301696470472877485398944760840848829167482044151353705846495848066760100330477815210642432013179195188361045056790249962701827851100768912239054876067639855268044115758732407287759937852558421672166337292495293052552686763797831901496557235574734554794402378070710342526009404259734133009657826164035630718256183200563001105923731113494682419217135972678427621194229255047528672667215138439496992774814209853198939000928620716541212292113989970241085039958979400619443327183233095129908580215474461235092154040597224633062175571712189242401609963719627271618804832310158135575578655006913050989900533578861425833746432433088689080730610960039140268043522754248507095979634852046665990820313414882944845729311027990441173628816216813519661011756522487241023881946067337002955392624756579733105613075030156952582219242336462224208256172351864852357972972379337595330822035358810834063015446531660578567919472445618443204989102507888650756373137281677518364729243456849613322968263333806242667882365896739568084296731854201494295437614616984135967864971144159251863074950503680122123528818405971301006283179255357099256816693831545388187718901965663630373920598121455730395514925120510952688289073051848080901737598178268839140498236791835936723079465232748944550849363178770645950984604319021572203307703895796041959661606108428250614062333021140945557301299851819375229373540941865737218201788052219550521655067442213034440938470622228188901502985782062871897608691197029917184520319831784992667708087962181282174864304578838416331972115719245350425658543840934160759093330931856744141295018531064581657905114932448872053781811112905413484365781481861275789185077815918902088891665217522323338026602191551456063053400083053172822100910285772040636168977920310732933393804382288443833465755847544300702760026000296003968931602095629916977139981921738568936571133493127564616083001319257144750399654039234753310171656665537609427134575914333660840020061176305737602271309130329350108469324658955379333201927443037386417040776397933103083985518249841394911787031705313263645164421903657048656948305798629960745469157268084460232040768698364773258995912945480515176514288233200880462914854639597473018186110938571323805016311209050097996836650800812310430702925187181266856334449628247764397663989185202048946932213875844404448166916736168270228371257464024282633431533923483252921504870871907336254792278179815661367531371771111989829313679594863140450702830167101005116764422325700239141685612418150309509378514460044800812738829191932514815105687481657230271205496734908854056172299630339483461582418843431533998301756086885649993794895853499250498851639892637234296195129606215006372027183205427974147840829887782225883370650772786829351710069618698498620284105864007287434347194886790596970959717160562506706390379964044374202940532654693298916584628741591778606816921361549372240965425422385769991561663286850036574946783448709793600040319063910499364767754036925866684402799680420368115046191574845661099068740223054325648581983230196068943129261609636617139938781073080080021573862057754689447304287155027029763808469330788109939606332789315175921555562348179718614641420753042630753915129870269176007347061383295076322924641120675428125949933309674986239231783407867914412493979480406556787664774214523411953163989592516607780469659617929969809319440400490087109352604637277746040648036598937538670109676241539142057546743359190351993528103778328487467754088346372859314879536589403347274594630818688203414072412224367059480729062009082836891708394744477750078689345142116752069992896601257297150481277584819233723706896474883138529528455757915575624441344853167287903611283299184344446965414125999210645553365387738076092354838716288116230697907637585757360506733844391412157754683692594208025410830617069530250116727920157157386322289318883112414804413775840692381704273701991884709615449842947375875010681559302888349133151653879653514849059682656919530952997262818278413629239502840589661471362227668238345434754542498647885747549947367553491092740538637951885091800745623661314830128913253186935295138311100666397958226159570387063545024062277406136303160319292299378746572396355787279938494232237066546074460078752421970400156472243942651508696650615454405354212960148133698673719213776597361109765745631174716774977348834093995803401166186273341731546609299620976759255331726157606363464766457330611914913552927338747092654922941852675071373414245578388396842388438840746218645961401566474619960856576798616850632074197964993121964294766205247184567390375024782838361670563899527809267799277408609232555059026010247343793880453593436838918290416472471240641443984700743935522956783887358379698889616209917038479267048712469395473703144985510382302610451873641816676212428423975987075625977451583349359158588399437461883418747864819555037697865869436003284262232114287557990587570314807633557470485883408292585015074537932714785610960701901824516536161627024476109219481280361995316157963564878465638659922532213555740908175044835959137957690505428646922052659758524826240632295620802562257398952266651105888078403846308155081590992761918025722717969018268235631215574600831182469523588352666170360060541946417383560942192159754042907936887547103956670671672587010847698940101271885418849039543210519027563249348654208974364876934393494964617171456011900897946636748758221487509400649312561229802529630415350165917287658145893590366833705234225646867569619635115590745437434902996857359766168852127130755264675852858476585074205898375308704211844498034796862775312612178083717506440863828791834893999355207929100734983366131463849790825736545429994636035151966255577463118472420981830687817685128727179283320544854645276013937322769998839326905272535029851070821898050900617672883278410762309530028529420057650121348990952761227120179017612344764703198343055496981217890667764544020636233092142648398280634877501487011857995947934572428467618007905250152267368317682460563493533470419619528408956934219480951708721542415168254535833136833007206959202104707423071554923255764948199732081398037586639393973388063047036110525922450050336204820835854094771333449872080993781964814994815356083484515109060709074992741149930976395297181280496279291412214743070540071769864339276613468870728936557301669346906519812696291098938445329767283285613536615720386144685061341711571493503707848037570514846958956726469891198143456168237214143287697019004371276991864008114533371957927155501380939078823201590200958453777862085366405399713695605244898141837806902153687233621232493757956336301293393555166800111918869691897790517451812074279939439254217689891638751711115860062129190110222834081464375477252075931044396923210867522351937685251806396756376323336863996600101280700548930745587133580399066476842056768304866487679149506161202111424213779428424941994941931591549161904062695307193996566389687417971494253194498537513094862241984572428916311665007224233045779278573696628781907368494586573252332068252785261911985554191361352287760411803531405369313215158508844704807028771605526481670088396095971268476876686260781403418484156292231967870432568298786643194095546498951224947236841736427592591878234311118523989177193627534294402847949613414502708418618747868346754862177422710659770828530526609747139282335171909808193394293156553557695286059744225798613347372140715059181947578329548147097529462231717233792826009268829910224554906222565542833488015425313508900292458692225705990608135214595728605236094936293613798295828588074423370393847703459802872307342045923181588106136545955360212261497140954543224609228039421557628185250977908934113990590883318351473469552883119881610649403646281049738791303427377685263892734390890182412686312568073613861944486159605979826938853868862588020808124095843394988847291929008494547706007968731341018736906463949818830011379149445174376250939607779934270495864670436537890687651449023200146877456455723971969881244587281424597342730826544564433002982881943318258414383572560318412321000730804187550391299497114000031670156061462620301333937265672109017788444064539389676487699521775656921431113562898206339407801296569457438853624771583451789061822944336858175383877626241807560724032604791895400352686198059816571575573221381219626037438059098451765674349221820791059789314478411533666372349016984844582289503664103763869052228084272871242526399444838827749805026748831051629946416800335454499934165898045882426458799741135358327041217663894527461157226474903911927650387717749848434259404761797104259340250503722721184347049854217938425334272461675673264013869832560380157241047272419670794289592659351171948417643112111055120074816942070393098317551424061596875452395337405907626235744201907352308005188586230072544718916868666276857051965289720677128665122566967150426003380153668144297369183394558129702829083158189981158187685182642096995486961349257206025440779042433252286933804998288574210699358084421832291298322448226557048690113570360616344714880007004773510447370776888450920695836919564196710939333672361227363088815968751311560521324968586578647377464266143241767423432958609129551791325612874016624994374672078897717440761539557632196288240833434076429612863350289296446744972690846227206101935494671557773200509659590287064568668619759997738535053657840832232990705096272755104569837568256050762658619145291124235458856826164743835158053224620968014794436945922598642795347057468851902299060017987014601438431012923112912430620737336159178273959027784649171769879576275741792952519105851881546624866700528562791922474494985096990132259048966847260852267971686478190253887179211689439786710825773944249319211576020909473666689797610578458368533290340314329083106893349243326759632320954462022445072975907775632845115261734323438348466052949020318231434107466020535063032913477176668819688139911872672574687314876616604522593595270692517997197098542781897763792234864623199968001154231945623660903266701959951521188684304192322485421310195802024001771059685884544050826626436642055559314710803425465222207818005299036379505275704852602264032338995837183429561690725968004562723122753028740319359715415159359559052487447686658215425237302276525970950300299181688746354917369735368864153884805947342167374047559339426145579453782347792050909066723608485398875813936939728970235360972370102007969307671730991064666861888904088490594103758302705315789234083479242961681970112465159126250368645983480871256223197884269512572920390670863962404425073489111563507309717281061348616133589954498593079916983587590020944752872719864718229852142656032012453141155535182582727689181855636173510016741501430718509729861581484642582367614804770220891051859086568957936758686515881142582016596333131150187107579236067363376735919542354604924639282650089045626717147438503409191886940313688585091939600391109340607829203939568622756659868814696894289452388959940661735787102016665318892713698227439039925369515164398341221791777183854454985009309428262795491198604953718585132105410197091654831029421980299924902811418059399453485046148023493688963508186471153554711713730768421155918637427317249708957103339353409642966029486489112521669230035063706773247767037042034877847747034008574528152997209853336514332403507056002673054515768742227257801288570542852374468717940225366149768098359641675110120583837691780162183487097452346824622302406192582299869676789830451408598454369627515017594347267872732449306737814142662097613861358787367524023353173143708218602047028438891196581799424059617705606176886880722455433725863236113865103370234183581470336675271519897222132048831078091451675196740376124421230157211331441333209874819378595712783351936968210902244111010997796109873219883813858639394671559685829125252919287867238379191017027724908346155086179500273228014985088858289582784955833105349262558165717801399465015636596119966867922732422586275419452479483529332884389539637318038074051276225470453980833024952519491744338982445880079118934919088940885634972934647583133317976361632634283114628243308618336468524316519266974384095442029194254571101121974177325505552454064370776581760321543222674649404212555065170510771290667855456499175132169807644890217142716387843775438341991874422148617126707880861864644647268325136169973953009193522270464813383358628188148544239047250137189644850456167262399571253863120317203285015612073047935843596215037083431617823039144512870564020948752833408911904627351241944705852729758346944996504101580595664188596647247865476912998323857543983497708618922505437346512339777624938223074822058902661928594277491927089066728276571304859498955610765620056081367658890524462277316858042604192492644902752397628784359658518762261784381990421690801073115420275653843974495074579912040448835515627026970229886177546860944719382873894978574757668123673220589452531689473802137575127993632985684612800434642880620032762312804061059498756172153438697226444625867309996020955189030549603398296186102808456843919048113872765960993427938389978815222771187475189663714177283254409290663279270244370981794206869292081748737548191109705130355181339086430164512659290773369791187095845083451446538798920746478809781635691016365132624845682311579867117433907464445677174229741431594172017951883178875801155824740052724917799995473660787882266599095269498914889224934527292630652854515696753944158871756154515200904176741684975025442488719773256513878320260065704979324899992601642988246740386961150291481299403232825145428292076523736953143228963807904167940030184494378037672668414567472636216893464784380663405075275815370922470030135954816630373494637436082120388779531479304992668903805809160088690478536426849141930572725904626939026222334988080221411289125919944720254274553289118388974265426426936719040232672564513922605913001951083192303850831457734716382745363245921669637951940287212089390471787155438495005690860349922451394984438627339951466878990173864272217503295226968564668792779439805190992350441590648175753182630731727025178503967968888057546083062869467262948246571751202450784564030318253596939053736886925376621406706301028926766619535653802885134275259715602376847378658821412390065803002553334693668151472737482590735904168803428155011284276187696898463798540363160036060491565580034801853214826362933172973700096034979900086449223694354303174275422883424673036780449780823358988489192008954566356637100414714807959890787587094930713156270598803840087429281620367662175972672132126914940561737742464771575538907190072971491002992995408106084811292140326870757806678399431246526342946273655581669495977421745834283805708176407452709672203249123860605187841249271378882877899562614006497575553388792741332223891231023135838013068588704417501019930295724647950244235640837389754572557729954684242542180258880526665576365016978711161024283040074132448079744659766661214530042718921454386739239468234371006662568400435162972807070176522132694070390822065345031057592431876347574155653523767036132339254330663495561565086119143572979189842043828496339815875725614541161145124347092730367617386673215152808748730208728779428116392399911912932495722406622918307606642721978125177398119054489087681779119841090554092438220324999817690429922506558061938482173591468002898925737563710283565013600598595445110548526384438520448337976742550544079234290191433962344698526515712070334487077736907927555794511116683797600425656665394945392046426214624112373429381462044468612458520266581936098635559319604700520893646067698043545491872097066916644088776990890025676492456972205783190939474984093389636244263587005205802015132380855951520132562276011628014188440277163256693048698030275983451588747320635408385268989432169118976622932793101945064899080601258666982727639290822098542933109232089053183168158642080623079271644273687519864645568475023454204204841391312452561381687260004197427093495484366577015493998849148225719693960713614364528200254895981104417424298944282711180772758730349836500546030058757041115361187149250542916286076662241909411580515226951227417417022751653113096023875585723462782284888350236429723645988103127872787970942429443893184055431065700106562991570256657227070729659546367503983925739753243218754307887320368560695434215562644311777325485736295830626323530816684304989297493869550852246144112543806413055619247810654782712833290885849128152577595577863680117475731712365246917352732674672851279152854010427221081364328267996129600919091212532200716388601798629984607797070703646908937002932226895543561800335299015302263089487593635364642266653478546636720538209893966088766240172150760390191176860697552364984298329313977329016653353768380418960594448680624525905151797216526853145577957448157059940806992497925466462659286240713632521995889102458295590066706475923278155616493881519333676035788660523440760520662561929106922386559929053101904772199326923868536854645234260194843082937528303311575206416501503428560416683647354045134485296066409919554599330339244998824010913726298886583347137718620956010591948582632936008916437995588759169052073808008937531446574325206578944800308882459149443651293253159465173387037510411305726254034896555015229591892043783032013826841400600220742164898635416085420698162555179311220105020849521908482236445960878791335033997501240594694817120194009340294593731686756832958776569021320371927152477387826047237675385131471534324438585658811956619216138710467975553400127643138469918653665683353416075424406404747860003192575137937614310065203435527637046498073518221010940946815000982998484928953298789311278328493917558760779549256197330329717928652232003352720025879319567915708068852236052856460264602465002015796422657083359397502244144577391804204951281881703511161453652541668613901051493658177860091084216689943944266709478576507865825557961257255061142984426562821854482788144717022181572288086425519769193233561398931600967095816038494430224085373471285664158024078731011319175978498191325972658600547779207595420936814427041764756986664764797136509953014546631862464852809921037503788533461572405730615156252811352864668159658143669291363077847783877110273744906387498348986708973044942571305229286318259630166423093657960072901068071251594915595519294446476114985983970910888842541254201216812662804784481731352571738914043531729772510328760846199296813426520530096851566343101994943805894039957398319203072746049726088564686160138791949527222379909037972734521332664140145158758436602453756491566831540122439580209755469545213979449225094792738052095361081231710173093607942766587936349615262603920518713091893009153933668367261176940006936303383635613706615652416607840458577040009403865666608528656631150895421305429251493643209577855703335073403992398947509947417258071115334688356881481916334882482004573158908804417217525890624066136503114277635776703522316972381814808119378825404718467824331412344222130540446812200532608467123678122486869941530474483866347199714359066992527743009427409263683286339263132938472727717169561165450666738229522966052020204837126791228216928860170570533735040669390578454234465111522045903890046195794541769545107099452450791073525322670099597387643202342949329138709231754508769211074495887849931854024303959812369292457993282133168016653970777666936832351015731493425654065203707669438897937288618086774936496610679527567077856322286713163256817637272854153737850751403468504827831966335115773150539869546027528357524531401136716914390189416642245187595210294155307030872202006872115503380287820686859698482707836957835331197607989227490037069911939690453814384645143557823626406321405390884440927951589625941066760225343554433727104999429040714655255259522845857007883538835424020196704326252202651282184214377541432617512368648961436408628142111827343296054870343856728963565434687187688746017604739268520175530619672894921715022188300504375427351221138871344326855261925568988005535896871139830648499069668878619001118485984029509713441911289788021738645472220415808825341129156215533989153829649521325274237714503960633887034199681998040451524565969999253081325205051170088881766908291276761901671387460841002213911192180553311993273847190728293789223319429004817279272078735105678975791842069803502199663108906243524507560271852360020079062959005395075389787846555983578178621696668508364683519178660532687313623384604664548476568471935540310687295135020619884241052535369213061388822082872512373865423462810851367598993191824029587173674246373319557571353247207277464675693954218478425312438432362289105356111507134674330636106815722787815809169494636674083892047033352042011757456538943737214763565399969264833514801396933716046323974145375039336957034711929311640317182741840285985118970749136334748635627922336811873343669764914598056818873192670178921774175585659030163978620082598810584673772319323905864539610550789615953374577813456554724544868604317292479350425968558154856522831750506917685725619928407297246579459097181481589596361951300631337970237001150701505023729390181283774545650930968106456420970132568489737147363127907444651574568942059276198528473722913223612057824329040621936663682534661242840520977374689923679561738478341132447643033915582129760256593199202030416909113005983683500016621366477569457068594288560853967726038431542271559898219007866089991378859364673490566998536466875934297807484359605574833886582392430950203846138454545960568488487937017522125083465400096806188264743433799383615642432933527917022010095926327319278385984938631025306165920529398163259330991110905419929208660713755339334078842568213738922909049753808614645402755727300489391574368055873554905978407122378886728929844783032722927076453465878748669169728102925249997844132824492460094466803420070374205964179822303544613346381377588414243622783976083250879781395725264398507642892614731084817935428149308931354743668309109367858079105754894554449021137855391120934454747937686378291561541828585262741483030452309884275819133385092157631238156286448904564012546210872543107909813132371004683234592872805819571913116316085794674958044786211723183601524413078791679159404508130796279002728229006198314476079608644137812156648195043733806950504379867790347221315539545542354029006936401303351814135259539087946925530097915909846518252960169727789270278101914072392962611743634189528244735725418373408141698467292650401738968226101170187290906046473124212249274170036565976562247112323399818897943708585830288898940195593598756946175332478149530932082858377305339779409525733920587525969576677230759918446210113552467992551984737523480088885132513203925610523359742900840997130589369956573347367051340713118581208193095182425436834579288632972847609245712905477706309021659789609136287028684335372925363834488158461140278189006521939447066933722050586583977986907046187392505916632190154908619215409927231196844154708893600570432173610015608779898625373727331599642384417317558875025286502273104617250016194344069935594018261421099484803952429504621508758654365851121980147126324263412603951937291978297601163236671833169210013532751840079990589616382843178215811600470245719765379948320868389246438795345139752117338612692036561979027809654231041156369811641175607375203624140884629399402265135835938223193445734067681948455428884187834398606646032791347985532041026492198144639988545791096983689956246961604195460007881049455251821911186490660199528756948769313192181347090482589633983628872610150462294840466000094101029780224394701782742415999578815926918042257125212115689048227770763139013466144709748349327530988603462439607327971328305823912552515857162087786206538439848912764313901548111886049706247729741382267498041946213815475295343042306516844443563064974165667265235109579178277970771775056803639717096379149051652731965711797310812169255852499253391535118125043175268110970695398341082354076441494609040672931789350421199185122858015236269845974894471343701858130298251709943288891314640117888319829749580182240941110917432194153620156853492801376245837335862895829051424678476151159874108320909823687930981453667666138769273195342659440462317128832931261124333307922987106064769682313222759195762666562273706154696666697761948281952277271902959327760087192490421459261433593754981892226297881642365037901836794348690160235253167237735918877864278054404979218141728116072695159182969874655505558338049351126333415246146625841978343410803757734825210679997382147081615035629933530287395739377643971522776045017547992170505156499350089926929898034574995356514531346385267853014836356044880943834705450445707017879535189405711750580938180788408262992239806134250683583270911217492553900665713024649025321934724170036737160935626927426984265409307485037978140225974236782629782535066396713456454932486019497008154918739933817954319029230719260269760051774542568965616489983573822263856856622840634929064449680671493691652040425873915358319453621787423683432323358738110196204203160714659574636564862654910464377664924999375832403594991407001902406698425405174061141537420539607244178062237942102224384363541921611263001780238521093568660219432542256427772712219338705732025847560962296717721287656128423116974740308779126498282253784475398481888911054351152741645368083088453789119193119945598014231613999520953111001771031146139249656858577351590562501665671104523964802538856234198860321250217649370845078982226322120925448192404153172499464353154837747962426383541854686432010272568044374650843502477888651543594975518832397387054796295961588007822201874408340844443330900300344796254994443476754163818264443081400943298059915512218657427848812679136568087295427782902586727374320648542290300741726913349146901348829516696178334778807999088564338026984512175116773035666906951568587589510553140335327829942707799628471903265492586095999813457062071463688121547500590549619953984208967296598575305151576589920168769381133588644598590062985469894696633987605197652787131217113832165811286378685733188911952318783148860918836943607520566605838827577479260695743093992255473807306433003677247764474472179298460095977022242996149680230189516257017049314015480487166349043565949182168188084089633402799891589946289314995779504828545193955991375330237464911254321303304145439487772120906515620430217627943505069599656948003046776322156058083362270519974339601598775247135745950833831816935668500468676185821431130685311861994658127996827333612993207682555093382615982058161900224514617612611582693470463759048519539426860120845211711158630581874833804713146935735747319716187757307419402847269243266217176331796455191680130845165143027509791191909004450889657563308857518884179292049183988877370358645825861846769326435237356188495590646667501932604150500000239973656289726959980670325195344448133268226758082557600855880966647464460320263007988757300060085086875443816824224605259726913110380847737533381989415377381402609897442013613741540410495339793374096854377933256876598649483082298590962777105547109451326176050356546368238713454477770375652785261422353260434252731371111580470071100801116270130265841211975503055975539762571705140539964278874945431273719415460128033431188915064410875167534734213412264499414602412873725133234109051259712408022069555644321608703252684880459040879392418164939821788502836446103198768988697385933101909022318574318493921624047728067824083530877494395109748177382065754720461471940894221393419532067555841224178897318756549970960634239027263440623205919014923032892380736632093062577833059905160542565195824242742166339664546214580373775947558282797482202814570580068718232555645084363869460725297649180802727398376001195723444661893683577802677977963451495806486682569948763910035439251192719409926495086841537977069935330915321334979502756110524040627251411590276129343767759767123164793223117765362527204444285402128843545651343439024193932718532165531984326731509828330288157664616334523465837062556287556606773161427119550823424719779064305834133956738640039000504813694576910502910277816253318580035723000712820914226996753315262317585936510592952918691210452270830951697315641300668811603328726972978581933293381993189448758506221577186047061004348502983655909571519659529329357192950128863862370554309718231304114253761469617323879333875325401433482530497639461967975595591111500555667989857373860571737835769818635801991507755576616748118440978118266147758489095939953042417723387898170121425582372732778481410390597685751218541407396491711492650003052731349015605655314491924720145471427653705522282060558283946300611097588486789085333121295422425596462475810808151450633606817405545707801990391838818260139889280077468532147694608171814121127349138396740082850486302422592191603915182575028861713009680623831660176512610867651296014128023738772136658744937627785455956789664821988167544381627330061736060863253423948841608341931798594333759673472559471041874489599507033391896574065934322539874164985500216532583763496281983359472491545465413492614480188849009489278266342217429888953210396773871263063167598172424565281085681627865023509000797378335980879794484349871877602175204566322969733731834584596350759974838920376443778581309166054278579653756757711012216772791253992103102969812032296472291412861087419931373080788004481748742713369751106344175843053666915867158857361361027215806940233365057967554965017108788641980678422820034226017888698084969347389696849855467031894332476415022140387206963973261227404575505254552825612311781912849876198848145481945116544617663863532149548312040617217477361995708518420978102043308066131592876847413302894728214556966968733200358943869694479648111820973666256888723222466976650989627401740900501937163275643727408913519050502769980383360003553906036796342138854029498618389208898787457406717862515503280504856119573433541001060948816597270897007013593904987043703191069600218005706170955669766330461582824757859306409938205883003555415032641398478173445339411615033062858138305709213643403599004288704157193830201520148612527750292730680310124304987582498228405715952248868688753482738517873511297587676023725736348936533061144693072743786985449093663781404210587859987847942679606471561748727510455730781142183820523641503156636909659619871224895985801331061944025335560147904501178757791291234391101258402034449976853049178403530385886354609259002087823872971209690224262384040361016565881267230072696641358130257804563360840750039564374506472479712721643209371387743277653336972379945758971795870658329155102818663529626041316478569671248150685691208439841986090727350302918347187924068547232677666735573129797161088823812890193718823862219115039247869310786190627056812901986538053464188265056112616282962615393714083027500891736525734525754250745419321844677443592168061742036620541003594524411245362525570316466527759450043974907574575153484594397264052747689046418578644688631319688492921535370959226970047080250343461561819723050529104867396271704455983968720118190602233841604352754867141333807861342077763261582100779475742381599522101720714211924361351936333521126262321676865810482983659185103787604009749082405439191683751819987013973880860465875816246908399482094730950137968411982571209679820997089983318747721905116919719203753786938219255594441854237317775113815647219566413865618307096165197939042646653740005952427245425180441589961332542576304029898491729729949036400850254249956310620304060632366692444202768842479326265547552253359125762638682233063039503735774187184095772617880357544580405329986442282278498319040713278246511913495780419592422730333811487060790148835935995575052390619076881753616805982829993276849377717858201075796611909573579898741650394493128672134808011997386613764391082428248977447013411032163060922739543467575866249246418418816701436956605607915450329455644689059777213029859737392588231766992865793908793742326186974731064862141152192765367560188104321159258801097940469586019880760324089740893384731871188899818865422167091367944004605033244201983945077063936254550286705716923022824220358123003520939586103756863012631222115387885145908039195649701929333627476128409775688018478111453327131840801277301489967075522741941347209787987158362595204821858130768938515559743848420897519220509905060522031682146216442243365625127223696102181252748122606375071312716145355470891626209812789833479572544966532977611505059055654933621266485248034442691622016823775588163453715657644907290787139546764149417602638640490504832428355108526669864199724497556934571968218745180218016108651037203575000383937076684307437194993384520945249961591551674719581595725121092418096112378814262034785597858261748798965378024986995544705400264653362299001585621099378761093935232032782435895191610994323865728702067897496712856457890503763652680549638887924419401577938261858345551201991649467785526870781315407200171082880336894137118514551154844670234032398111837998037726469127834226633128655126246160669051894052749382536132880129306560280030064161509601833683252127647477379835145210768212727601731918968021154063899974790886016347585544128567426365150909098121901434846893384836993144048098940836596502343613509159403245249573473955125780690320291238816067182176011199885359689738038557820825162246520247524438908340491264832740942347513073070122943701751627612731662138302425986486546476864399999631539994041798684633071498842427551703312846154607070027567831404810008554419054582880046020057175847108163856932826297941774653749980366584636925944683151113836754994600055128743318883053163278945967433221933543181528269201840846911936057481485299930397102613219801128232844629365659316604726971835386922574982555462912618930989437673363760701778866182743128566274687476339415916133610055460187984673011068152470342331063252609323613683202990703785674624868540105841209714837338171372662233163724222298382534596017353968715665844633654534782909628706518980571786047236552141302385220079898131695946922995589042140608576799828686984779934978957077393238039849953188066614507970854102097769480009260261765366045584530883903613019725308320097410492050499022987547926416499357307326083287096118391635337401444735218972089560781951484446497840425268530257234184841718567139844418543303138412607961341856484572481889512453202790014106635920916766574201790922013153320493450029687497677910877325866534037859773080267085011636147302150700070954265572173469680626845589445966575830289819029278950698005711275192606758823271809261909543962417759366381996573164008229876809796644002426736289890640672850545457424837721011257395695596592477894309743414877016475677160230243851609377942029911466799614763221662358228648786606215235890263496216876911519706986585503385557737528696535209758039125451768785445684967406042525305543265412414114222940034824592653331075536129864570932763871077705140392161422577481779272393327983398997756826556578834696597471290552712986097412247357087577883635704644974273143449875190410090266387118597912875411326036264738585632709939098318919073558715139384971467454424194221729153229959175141402609194612324418440532722025090775670137831098006199761006756500622513949494960837932394980123732283991218741865502123027088193107220053864835646834216964869903024771558470489411590674109519631595587052924330416874168237793441179284536706335613639076332676219838532986133755768301050376902225280892184453134804209534470516236082068496673038076333629295507452147328159080518563420530959037716993371610111635688960755182622615322394304437521381701639224115879573637525707783562255139512402994025623091306865858552806243429159156744709358264219000753675356993901013136334922902633497163445976824158029074478828122190524042591024751017393469259968058670702164422749912528388339487710488671667992957180542250338560181185619586926114509772141054408796868889056139877545030425994495392629971653831650987736404928632719837827967257532458956818320373705474458999580831590143049115242137646604704752012069310941685525164994520386622001014876355746453418913960664340615626283376034992327108307680692445949654804206489599462987026489979484740765037050983255188800089088626627319233193107480648938365915548476509353193439905899417046437043471351725980428391582815979913981291386064126237769356945228166447592667214224207505421559217937529170144974596383343270574238190927871623270235516335470941364956017408712726550704741782291852415116631736009270460270572248262347024740582895940381663276093975453354193414032096964490455832920800687309555807052793407840709590853035918122368725605783297572653788349131631752260691770780271599098348823822548669382785486089094600049261025901909079808905649784668641714355661229664162909544218735093753835501400887501104390573621706410838600138860808272358193752625437405745337119130360931151027530155768697050737159188833040401319666441879637459642678800153214850273285127541331606168823513523287507597775927708871101800276604011164456253122342004659939787675005584687045485294689444495110914938759716843216201944624996666364251093160117025959619690041563610466090477375521172904105107207406337861286350046645174962347402203923108821129785083645085545844762853547708764585221231919918771955002769606281549058287568460824627714365868041087517305614861158965809297278169204953612186322894636998902767651045787350445510850399769237889516869466724865949146439588786467166351472214473969706557247189522420353947359767345091054498436355774933325558856440381861056326429144928470509235748945678095648869686898534423946283489785969745891795124242434241725941193658691954377792248676613602503261181906174892008675481255858719403410460870253388935041520334304071242422900219868183823721644665159949971265426072546857149921153549766272764003225447565010221281244458129458537054677999687366119876818445850772814479021507951421166328403229599124415445225698524829011180412792803868923267555982112801520291790647047470552913343062010932818629409375979111113329955043918678840550833578771000016708994184881439097202157304724619995793159278381342982046425800106259251398053128909539472895089360666424281416175088539857176869816842282329372859131258151642071013567163608373406224991539197868093471101365003890080961440595937543007375966251743134374852334064647724125859247025463229758648010073366194863654281199473899644561129518002721257984359040707698427824887964535889263255825393222131581475268271438600366979798482762427239833197365969718706202357174299191659535484613341364583025569744037713816958206661965286262857749743615296962062593100427224401472523446419200275016267704671957397812041840052270607342218226089862521511142276030460028884726172821287006858404007225767565942053488265594523673083551892813183128775903119176432390847046007342751998386888874062930126964604692342212206451901432004768469170155218263386979685574364033519843311442748652226632807099698276230916477263651101516147220452078796051340437225326953191398671301829312588234097804155500238394490310835371183939804558836028335626771616885349092520426802684731657160507419376210135520598413053244724689288287963341795356225478853279304524440911103533782649901213546747945368650240212674016378890237665272905607601023768851969449202345333044550202265194181449610956553357033763346929975504693031105121795247072486911078502234505330735343707854138117893197675498949195142330182047041011787997473168953110826731690973634094834704417153113868690814787123525911608575498791301652712043869688446628996772355212553907113081766698488769096393934588063723227005546837864646436594062191005950057034683498047109355634455646450969426446865466596320789690566223388510927560274018628744812877083462821647415751714415105560121016381609734845243781361197251026438338837235110800657836819293239246796687864449278394727557750151871955270411022266446247493983714451634244304010534821800408321593921316882424191225994182699691082159064618862724083750105244111203733752792111554750997270155066197523339300338396154176551367162158857630785948166321328862839680804926121374840189514154089478290384606194144968742199982548472498514945095550972287602402711062691542336570531156907222986696307251467224146046094008408951713364121893878085004073560876506542444732571898096069172381383774999629109257836101750651201872784316749735148537066786692326934597848610726213908548857742152582897024817921917239889672962870524019166836541837029439097915631914296049738003029245427694896667811734039000647308868319934690165656703201659393197761035314555235135852421483480272346653294962714688154290328759424813922398191778276224470940916715509674991835527886649275645885560652370749390442867816798759722773547393464163698561439182632078412323944742415271997456565996156158211667066746592598534695975539100373954849002912002151131458885103619877354330519113377307199741281966666951625378396364389136483951450430537362860309422876789543401952606080138874003741398653863877679275848337112947493412376945646506524167012475632006018049945296896075796185377778954727578916801540544535532911084077024862857888449078917701128349531303485852939654982707034120697337787270758345613703353212055795945476252022054092354443900320498865718386615798774168338197214053956326403768902649994715113771394026875545771135565597154549923262755523744411101736409714744932013656613044204276956235209549436996778513791629186043403989988039985919380656603864593924142542277773017612627724901264468632613039433330057550078870066576431836148845509434403778873228561828901783153982721572308571302280034700015988047670259328307003536271678174722686959197111850819765348267560220321662700472757934607382143784044548400748728960768021805546890305833818774906229115595597859141584875002725893526292645985122555420746996451421840938172913948375138019567319962470040491701523414499140546419872302899779293206393230585609889869415497718475992413842490313314474753109859726421927610383007457641028583223119275720618807716241927465645382415972175455745053179522637469393046549739198230161673167524055269201715955106389941491061986985684947232156601569909439284839756805064349248784933145590155528686902698879431993840096849957909542376306187111770237782518854787886698392787629539750164966934767759680758249826614572407157103819866850928890266714385145537438038233355646560094583537488538321056927008442479708420741180468513228035938463263205383062027447874217313292712333997147240549718171692265627609334933825231352545636082714593057700552917763952265716892828493853179614791602457914754825578532772199351017250799323562233796491865383764407156202606337054707617933489962950788818361281873748786521236893728108901579395783592697303803607780793779565884945563127919067760133571927105938334514301969562613427437474644234604140298573005714840423756538025373214067931155513003450018835328493597451474311185737008090071137559463048963329274839765135690676597990927690781606872221207736467686451429862723383269094792184031990007243663331587840905068323145067556982545414013996135911658600075639059810796889215520815989725912036070328828598089442792407909212349105837259141997909411910203741725868556087423370495349670338000577974405833202145457991719919362843954380378429237434286223245597408859296719680381035203207782198473887871840477981451974564898505654804919658513496977695164352962327330570428710058076288806266281926127279491979134788385661370704952665360193650095453037193892539852739886472797252602406823966818114578312024323770249853515519956196199696611544730712592766411423561996680617792279241569292589426913278781760191760262986331235128362627674834677909305580451471766745850984857592469472264758182409436961797747507233425268869590680948109333636953419688363191089212347461517985954867458470149523254428530086310195185184687334947280582440850624748040615009966646161022491978386707758529234643214759530246270229312438446263910019516604802266209999397228789597746572444354615504613863651412977792208501003337790139826201280793908211998341506198798346800659914437572844267271442524481437025658506529104803417152451522468224126727511644409771821007185713747110939937126122176421811470802424102935948551990153855004991090156348740440829146048740467590320655558576774449072814934427865939903484350519985689081867475655918847291751061591115272878448075339616571729424161225485118202528689348937371293027770751239518813596616601725044318211056904534938326240703767947149569449469535522615264510670787131374904237339770642838002824182471190331353704826652269310128752005146097292254166685195034623067282374160467561306520890507811640689816807259802216917662848233263081033183293804618572467247015467174116061831658846992533495647770212579977202499009583421761583023388255735937895691164774673883787434144230377584893393380246859577261696257449152878897195358296623544709382964080588920278248848817248413822478837528195296943032177806855669195822951445676927471159003639174019491589138525037164819743395799478700110478962054838276893096251595330361418053495441215510024341406892351078152152454438788936768734984038939545788567977181782106643690057857854115590425186611875097249555567632219141549369011882431070708711875060622367035178913958851576987333077027768007562047950844663575623358073329286448209501728594215189289331425328429756477295303282837295068640962017256683483803900832402705279338876827191961969011427309894305963510121363165126280323484686940360881006521262155156629005630141555474968219912524307284568949316066727681805982174959173690859234088983524801139577413032974679028859707342174907955155187523945027583370497146686462692360463193550226733174910576669742650700574999411616122830161278633494210088870151166057269236428129738827101679545280293896540680606555641451505622727411125677858936118862085447807694775912925712266051485729919675163662337725758065995922660780245154882055710556317657776960285871434243742195844348513066098011264871491815404281236228332691887776484955628976822444543702019727841482267092117216744038691947526024426705583631879498941590594520585670753931586451816558833068210461805109044414903368719974545071183179894492296355045477129311617946179491501215607993732451025685997814197995855463194187754769437645856492303370239890016579717868413082941126429218394343264057851670408995718259530762120277979538889465728498470308492516937096036487951191719815001224795870222867816252420079460796874921921306996327016289093058744475664964337256509122084207532403749447937357885361166953679869198783170795481656435003977454368439358800913717384222296401124727191815613577046131877933352874011081966991906686479562929761478784271939746755491915647825120895052062182419365888971712316722060358272929104130197970869114560645618152312957352735671401634564676988559229153230639402876759715785961541718231061349342989485717993219050586022955015696052160166287465386736346282923504608251886026163793075428885946318685223644105113107172086058815409008612433924125985099536856747202664079252022018564799575755768026597625001387671939976040438891731540347634457941077909699197015186588308701885146402686975368901278221480432692592120324231475323546673708185805796225831244183193647960456519966952356774465310731330151005584206670636600089365525088392205941546348920614570307157483390772145097972746343753734304724273784801622741181723670368727877648770502481235837094638007095992350578668313047714366910193642496473003794225768455656810560335409778219607803622305430557392495609779069309347463154820381233796896750697290792533662506557879793752509322664630039210727222707299885595985451911969533314320151208132019005185996868508186867381600970980246171521210322522152642464876447381591812119860475970814571520633633512703769246825093843740519123971340107937328880831352077004783323282721365579771574538349813436343256547975874052143869936451646966673630172378080862255522325955075062148205128936937307575751362830657976503916444553639611386171801103496788021006000900834916455417745269435994956356073978523469235446575440574119706668454685080040427709573943864355086608770531633284947285506943233794130792948543744255265635534900290529567041733424465389724043979699208512694124231753550440187462914466187602980770365220115378283028312166244553802360307672819556747707792158422217090798094603021721485906211800032380025816339956898843276252100473661041994131223861999754421991883960676137735862541814852364018976859957517201450880649595359524916600374602066075010790548020888510311730283043835842737408430947902471502165223516033694300453202969237961913419662878645082864972519640098368863872934406075261739803377028722076789663478747956705512198381152415672843821754643606417149010236583592458658564227360287062083407920635405401665450595069158649764722081185579033476299209057127063507539752532222791416923345004286102487722672479506099463352863413635232282995650670699084418376095222548942759943085420413988300719934734868923177410744594248577742185129501316960953378567072680609495190563937066699755047768973292523790568868286674388740085103721104031934885407372784282679983148010511773147948742519436827216348132680225680569146319417663266392594966312483487193940466234769452398597191933844927598012558323347728587763341497301695409552155391963916627175958165541709124532407236277170672943612389607060737535255692633331885398669484019910893740453732068101382619427241215531345016241095145673692718098810524054500668884023404286436931419269190481635995767900634859744441825400866236301915865245088777933670643741435291698138911219581466965114048735517127452588932097453666806207147764589139292382578423210860128599635183096373801952593380694909402971567198475315206787380803439655671122547979132850918309033704015986602595733783025302470919160731035382389068101345975805080062122403035382473828091150983630451649890430963650491259853189166789199194861894946798968428816887000257683457711081374188158248732901994681387125579651518402981901754887484181927270682179608633995098548196071221189114984551776270804136130765386200896141336921708580370323573945275873483909648315611356136903470127806503770169508458702567321519062163246589132345679770593004747257026900832697188655026541108494066999978471834959451895471804277734041023947032150725280578502400496015240018338171827227224748126831318560165485864489141056841316817998219109100697677372972291095794027158891288916521460093137655631887785693321453273544617656407064136542206641695200633937838565662549897219757248566631233628856461696807688056957279675888627013926727669437487409284195781013813018850017775272077683658694072605392118649884605277623284578319813602449961422275380546116056939146913513903357874109232542151690268934503243584224433178799063912104195878726852257107680257867580088424817416107453176536417899162355102637459009533259405822779248024487560701001368975998423537962963991541081304437860554172048524770096622817699564257356832486606851736821568370853378170757764017129568786286067850536963337000584457300239297774756090474048735974193512713361298745451432382346874191802742407362206020252000742720787182411793583914793732626609998427814410951815337945753968973871863826146101545458678744598009192511275853042362256881712020350942432063221220821562316846397823978888746721459623002857733417017428734167367080099989224209649841981971818030947533691164724984863745891350927234852123229680862161208427344521480442840463387767229763173235110354407546245766276375179300828949330106119451301243190436037612971508558796568871103560447656075032003262545788363002187411788039018690543817396906804190579024285202636032511168019442708503637570205891687918863314001499370746764552500657226159523468542307277603327619080330554326612600123509690707186233485070555341560636712021013236231407876402250874877847584102871050274730198677850609982102877213060377472228076505242576605713927748492549610348041985598387680553613167682506075041867659961529952697470412238280289874132339401322973424919370280447543533139639258997235051540568400311063260706028449854737389304434565481596314881544164722841785735235266072173829670808352428052586290278047383119520604941520943969419044205314451437325860393227808694612199583928815304351012088938403258470164290563383552582064786464406899634911572536169823141472558435533240201382301214778395496500649061902980833253471419881868960934404514564070118030372414627090128531770333496750552151946007792100447997709476013932067323686347627827342872046449490173393257361685227852912480595601174136111413728757977911163590888780355743161228957241259816821191262432576993486351846901523727687591848307227065580330763967366113156584010495713145206140648842924113383123751128736451358059970106228242187457484984588975557824024645215831297986748642053843813327311627647456707896295110863241002923082735301899339308390858351627097477455902448331525058098496741874338240522831164294877431612599715075027287540149340973168128066288757826547917925396799926418855077822873575263664634467177233331259337716866540536946261125356993901920894335516803542391634434731179064559850476628217306250887652051332421138049436424355372010672270422741571281981298521622347147309440912509393685973140965895217371304328148044046517107783294617730466745164683154323073202769317463065961782441350218076571099149642261299248697262878929198600940546591405547446899568769702917221008370073173126387586958366388756480943449896047618704146183354582777586888729337446196079707643622474117667642025276645750892214751511993199438364211421300331113152424096593994529122111356975971083313262916429713772093859060408184302000334760847609640399812127632535441766973027296975657259420520648299534475710772068972565610081967892229459362902585099435449036366390382947960754850295733677012014779768780071517876852221697464288019462105098845707645664616683900728449624747655599842630073788115772257253287841801842468544228463583529222611037780604500870638124753555260955452639587831044850207005417048786434630017484783240177140356123783934130702497880216375435768763507242437944748091677247676770191910730365190587071028985777335138114020135453266811072814071744593515882090598693866645211749094587515772110145871564638035855771482421650159237112106503060947395469943095252031126048329701276444650478226284250800012880187156468580419425522232642965089252345146186723177377822460899948671329850831864399642688724111322764294641558202083266704895099934664813388900157816002788868612075690593402369883084848865401466011535927334914856614240458605338877244351869483227980247749039423857345221853271185590803502297571505410250685606451283655635441860690422293079860242025232659256284138376357398662298897270344261550281747714107235746348788611938310522006894641541879997346190755828753152012048318593268598856601191349997231925581630167236881251718711021042817651425037289061301691915786781594291651850440627835984098135704610180234331210725180810759769158786362699247069498862270461432313180503001214641156171892225432717767577238455485991005122364663031402374176425203264948658502802231391035806391189183458194897073921117661485265611948627003540965162182422349473400943300190059922866388873813043591642726765690636127832928092765030242514166367236338860928223381543215702851935429891827115707351707129791190979837322460477783872259775452077854789566774251580590398127408525332803003459360094226809879379537683256660703054557765420126713195639176247257715888132775759648080611681549701158540587441528953190075749262324797253060599252337211114375519259769292341232451500047554850589181412206279225437464236255158979755843388412198478400547903557504054395301551828437707330696654253794847354237367900248180710873948488856936969637231670213936209114097372339890419272248522528844538659066609773530398222323706349139577839057753904103103634028402808969564315508329254145866871479358293139343069324430968834267300971186297920760474674386525455945400564217935283547721190574636097324369113734898186551680590764663593679971543124701522570552286813290928539171584155446990267066447717691216515945769771828751778721926376700124646646757967035594451614365465915030795159893684449151607872651700182364896951528889682464573167960174843557631993016781704207546377463937703657155857138290882751278957406314935329138129508774964228357004047143370626958298311346771058453015911916424549012429674192243282018042560850476795139997705654940859985806272996274698898306445491005931968234668313696380721018864589555710877419663564189483770499390425096937553565760614123347840862844541758497412143466526182697781559835370684557692587030030563688020087136516634260280724001510371468292820810109578265457057257637123197202567982058752663983524702902462400053208125151856130669492046292636721428474244819765906293711869813486974339432244459755738087947535201512378717990199680886676926645209959369765708217123541230115103096567914804015900558026959328292113645288151964592775070101137089336030326100181210897426868344285695358716416939545119434347474669772863135747365050835532677097742198587604958047822037186630254934813092316456724915635723132552674104886608815056842090771574721509102394348782856990948356909549528653717555176741838789659665864364392457065613326512204878110888433416598528332469605099152107425312412180329329026621935298181356838212201852145710234060898563295650313479161795652057533628846030895825123725953474778533853650692292297425382862624528647718053556866207741029735719982948245819302795112245965735695711401389091529105388177859709655840498089813344191272951862294112586044819348823486318611688041601517543076475271373657411976234121674834911640064021047143773660857583878811876068834711672254415340539385403397676957967333938870846280406899529361159864189181439155690372454144322892161964285329194592023650553716637437615768839151128503847400991861035209287105556638747877802129591699598827785931231837023254040372383138234460112722885562658988547338118657164283611985730255504335093031453720592064059653086208911762581354274709402608968704752481471255609978388156405693186118319369906900173904160926944162000819178735041390054337801569487172241017920740457898984326518014315586743770977775869865333287898908330994535210392435071408335267787006289507332595238721111806112246962329485466519842490752469086059993775108008088131778659554575542817790723297113909549986076220668816115251117408610184710862934068320821380002898791972899452950357628911756854213340995186676899359830136692769684354548499663522942454911211970832240546688250898563197902219648965978727633263933635519276614943876662533793851913963855604203508066630911023926211731556655775419674454875839300241362758669473110310179923292238766529283810548663818241928698606789770223825939307884895773069962420432472365611011466657887102669290818120986548454444521936778323472415542506740586404528922559888138731438547556372114556290332997854913403235598305640796262650563379977551893320380898566666511001127062181176533615336327764441245266483316909584712829937856078753968713304516421561272339215590697352555613109665952092839407181333579758099390017909647688405738444023900970085453030450543561671303776580080720046797609784008858533798389740424313597512253659958159909256946001877281577879532539153661146565921428880785730994897266017304197191491602917400137649438362520975390087025130289253671816739844984664607782659457436514227995692034041561056728598733393793380962148617751358334596905494680016622563109195497910306427632051225460780379165871827047119867569617539223651218184466049312011463904090229882333885105648120239583140982997200821395180509089703401149462248585156812976407426869138700606981289207558849590158858236795430780167764361125686201596071145855339687145629800214555014737583809551760289058080404706248953132393967550739345317858725209116370538784850659972454195242019671943308366477398051573769091289333773767198073453535010436718187217527408986471087417844684051450684107919149694901350297382497844569064563723462484675519232218102757802448370011822650527215742285166522615139880670019633239386739229499719797279084439398009255168000665972392126047336418047645314688321738208047764664637865313222620322152070806815019473876317868623424013904575550365370133832454566446521689206511927355771559456986589309203631144891476354257091831956664193412376406759485764285791187181150445896471713114852700476401939731763523935790062538348444545246712676016578724504126756375535385952110049218657424557154087684994239357064993866246222763329181776881242744979902071007430416940897626267368596075795011112319416412968116459625024602503455169964876431585836152719666622812109171876256316504791330725971188438920171252573785101421483638050217524567519791618566650573481573777715336861682060209111035176987752584428961568662396262741170886523832814758178455464921555616830408656877191487732217143038736022947901365861618911717700208652715738785647942211558019853631744238280135327686887112015385611670147373446487937183321446341925338548590790303516089935514994961574063857128700806038302508615436683932196024228959516851288784146455555817003266957361866848850416573815332580808692215755517443047922516103109474851989898429566647607058201578915620123618123332271870347166532784168118586785096646861028519849150498324133181251419259013449500237800709170413638557104523310590133697589221731952228003505414561035964289472283048702648859773503672865792702455738435860830350557837487878621271613648824043343524179329978188338278796406812867558758714707317921592990677457525460667029426421313479601623497036965778830457627099387476453130990874085255814619609280767731691422066152108485139140387474601295081907210518525723261327253935760591004616435563664308698747809538028348651036420471080889016363048151468339557083834054119378894989067881047264654818360674434269149724612093572507193476277793975869102417174765743870382621596145596171896484183397228180574974495880483630848119947763047200167896497526421320951746037347859804637413975245525467011230098049160392289842353585475433440087320467092803042082352269375336016955676925082509183102019015176259502665386789088161501129069523441174077746115363030870593011611906167604721183910748813616496709528708716287408666811683777522888716878133239710830695726379651018449747718972709439463620815740662374488245716833159708526319560004696264835384384482860063425617911453773148486285276991232607387867428851983219280408083214424462739581033647932979176711673433210063201072407846279661529930827631393764669544116509380727576832003414099547728949200725961066784766666057501537309161699370558228314390120406267819374624094964700231690249778160537824110570481290113845944934411872368553028264613131335271166840957413249156666039782287030605459321650216277718886221784873657777144968602544286210211804545720581368099100061779142851907448377290777419642041694970601288484783907671891072168220344524420672248074810859821012868516640107518181235494933408056540621251333188399115050069796839111043413221213751103227869126894966220159885824662208420057049789362529259997881026742283444381648587148274104666196265462602996113680116904120436907728838836262381779121804312022282971461717401413067741851173719765542615000656995715592628497022249285659703047944559250846807702870467069487527625815495994982733632612996817514429601970507923308691717270765347729244390565411867750593996774937285177043919175041009585574885015566946783101411085513313768786022143481753530034004231971442958284416405043580171740942586449040408614903168584193532304774989557354838582003567027883703463383426618458404261031292649356381539327661195236837725791816694857215110768680761293718501259442275148415356595673142694578773325103707235904805353516487825910410148197696736490767428651369891036385579962139924889230180915115862945035086877387096841669363161643682669242585223433547449996909245508064674945640847567349689248866048046043434738310193128984755779393602269803393978385790360183669066368141460167662695823657916031625482123352974930349105292001668038371639455776240605591627100523778650012502965963496254007816979582198657936344549137006408566075907794200494093823586524347329162203457861330205449466294041560506193279311899546409155609976753348974276822149139296673055372969791335494156402339150729569226656854315127172951311741474218412668797631640752999390008304956657544339485448007636808671074843599065256622504095238693717141633137958482539195223883706091616963770118339530083356941069657242171970551601211879840706585197778433733279169177926070882886791961375550062120074275888317666118451590851372365699298436636047811513097987822209615965294973720091221159019982473830660547724271079607030111109457921425547967904077522497456608810352108712067647405293844767004025993467422887726358953472326753522953761067443769928987135458460755021393076304352604135404541158350126365783965637092840430090215109950027202943195803046622732293115125675392908059711351831649545642533243808013970358659248440631788831626892057259942519484173316385696266577492333693227804785895419643742256039827532693905300179495222012776452804614017767783309425281353311540868957769990853340368696214577538103310366083266205234580990246317141308866547509567034376810157208268171698848163373896859532215975450115596991271586672141112412397569417730033809244083803601048882171446979251814955956869213368794368597538942692095446364645213016222114806871676461250992423841579747102680011154798857627326286323626169783877803775035499532732166576014587093597395519443664225065877990740745578094352345062450042314764371679278272366792647358042749720492974307715807835653014818748303048133710848701921611289620846007752043260888173504243093949133715051709604060529043888989432605682300079729481265241228895969280604342980298674014438708928808916561655723199010907897768919668434673320330937516555180609844201484373133194016384808306376921535661177354615795974551498801318125674376930284381801160059444118906450762364278720987106706808761322994006848805125842845605548188504352140978779127248216289014338701070662225689908280025637252605555311181995823840329551556733820590844068620737482419368566134941480672539707444052364556995901004191365391309912574404543091765124526740128741292633773097676122585038698212788891339970998487574765663317957002078165747992876237470032207279755440538238862244760439429183451274403265805661426215054810235692818249734671830352597411613936162706078376521832047598089182272363537734780547605848213749453475082312424685387635801403829878984074271866260826616018908097412559569701772269029378160021974348315582845272969412835929197191168070525457874534327467191235249208530909260711929608101310701971701753260077708484962605616682194366158242151808082311709613469477142734662807679382367520690553803601774999826959897514403138826262338235635571210846915296940184945132155925685413735070986950009955384008973079489316889245091655007673016650929099462283130770699389711087915772422575766298569628346676908931782947278496116089221399017397646449837224151637315852500047642069744086069757144158331454408564492881784032960617485952304562812060359790873398637005529559509538522904184901136147152064811545332520155808154817024761791934244605670989930740067817110395459076569448010227689348698781712551379109340324606989545694051476619248452232331595695387582561680956376631380582255667759386645181616810482302603310930330897662412809258060079330303702407698127067365437437695021103401605517647034502374106046296858666413419473542611920257924375570227853070729981369491669721032622965100098762466610729559381244714374045978081983711480695255450652875685343344519034856323880590452108277146382717933780065139931921154330760178644771965571705726474660158610678875129528103107116632578258301172707298615044350915090059988397940725084937069594491774844822088811111743063622835453709904537792633954973253256131058826846685280017244622156705956010103959662349367383746040289085189985995894399697643530224279432805585801687200867179889510793454650071504707218516622745906521955752363825607709858870278428816844173057918361579775968161306084409955955882156885845107961169244036758784009993792163973132637922771014117919425210633778633336064306827461612573670031340660249162216422389167517461123170332765728826084784294368114760980552744326622742543753054233320379822542496692225031196373866401391105626403809127132318100025923034198640325044755580508981087315722391086927013775751049920324202356531641658050859991590686957693358207386651346616305754862658744932491670639321239467202095901315942175489160533534375530452277953982919685770082814355365107598268373286124085292449574915021572476176727178367776711238442709986083291298616418779851677132137878750878808852348836519829093652740793169811703843158167093981339932136331742217128034773487614596748845963273313383008190285950614602830955317314476565042433963051761298978198660346298896293480712537652668914565296112330583332722759738804297055253791926092275253053053966951622081888894439038655824934389401762829508568171819372044388338876016593475174941189140179076868037305601101771016751370060601032594984994908431180293971964174624575753031222674189007638710260263569663459779731059561418609801656432827876994710927035223446300859463299313392410841873377601435978307872065226162513072848052759366482209019687575111704373810877184925775372051951274895816537045698824558153351174184383766414027318972394013706820109414536875108375415721462886387879538825280128559370765815259798842596251066494593559460171857916808868198038817838931571716716785614947734798112083591035621907597071270476083816755709009521062129009694643075248797542394692961783734050239249567236422395077177607003859262220316129588702691193510861856090250060050204676193721909784492621513184993584758716617833059680116032965978335017468347754191864320057557786182743424423790467741593704397991742987241133812474677299299996141495281368896673698430199493228747188749212106576926271301438144715781165301099452247389938625165798446413096517361906633655394713877469577349036656747000808066418340891630836766282628469719651911503612243611040521709657568278087600352278514115176324078086004310230705700085692433825249711848192237486003380414341333683461649599507121890267968570958976623518159850296517927659647519332962688415356106335256312781882526926023361828371129412504623093908021244572583586437663225257603566806862804755266260401398463636505433570140157358940549949729837531030867284503896302515970142241293627416339222781216132101909033591374997423112761232417616155752445335672724237615700417425706695020959812634142088297185864437396909615317177623633382518816822701713481227423808135337667816247080856825093540735780494849961636055335546504738208127196367886201775256755987564193758299681061470710928102735115527348079564364581369565131842801172307729545987292645362061517680499186307865187091056582755047081235523344738441455419404891052235849389827173370633255647642939807183576347949724454892386565689784312189520982151386815591119691604563955307263084634861966842013919331931608688328229462694565454290869488704452972693397365101046365507721307360423336915162797757937720392107445793914307401912207308319070975517183216314227969238612535437197906119306358271222766363559335899147583767351348184170470302556952755564953505745637711899077644633662010146581223009892992670701747548075762172724524961866916064735675224148541482653639277946862964574199807018820938806653440580978324070344324647154441025590525727262388851360527672416344964718276915598916278263792343485703117775600471133288128560089636325458809997630671193251024113145225154828207634926173813011696427369625195017529088129237122301656506490771159451891589025243287740539527660146821874064520721735805326007532147284332832551230147464198859151004784343194127934466870675420695275510419256652011588899771859046642193557521056735217202809924604293972390313843377689460690749553569742766061740048914869272953203185314023938123633981171850119220145717461860944720130840404987945917828459442945314050365869282444419164452341164163446314462758745715078845331348106937164246806084926669895430209410928383330469084699116928137948499454516359144891958178366519934096258615586356003982607093188757257031618049376434425606540068388135106734339425561251798615269040188783972741022012698431015729849330111444859445198810162839356228777667836597959447336650496734392011991346800859429288371489239416941887640161367939205931257313272992825551974021969725988245867951647199770613379745743762378922944991670734308372705277516900174339867432498077198047141793480587599509768980399702959982480924156251790673248552226047442348971554650755366064906399762253824619470800035116511712814318163520577835319749587155233557881209481990355078827970971883611596928447081025720848012925253038987558723223068662440721078322988607194289785894944502393890434875846259209116883613121012187873497115940319449539538804687284042117006339193253123498808964379540975260815382893770263079726336189103017995503901942359493195557059212209276009163524919823947945253766238980267746319279354820534737472985479813010023765907441841447677715684321997442663724313330918874667476413263111839866011514435742450909377307706813108665033926565156683417991195152450158906703398757696049355454784137610949229343349725500277399420012172173297263490565175140551444273763050663059234551541047138791413924434708840724050323330373305402072730531274501163369012924976995854195251060455196684659893507222919863073646864152749255449392706221750273419263949449543623346890215801202503355472403069492217706038761991138932390928001750328030830793992872685397705052785344718950467813365563368844230714509502830723029129342876255848414928666331011403551993811780061914995971186466811030735932747553650457822494057794260078574212289846766411690529218231746894900304599217712924569522256718513644396078204174179063129482598516694525532925955481623883386134718283843399944037557066864938813265164227485400146155174463952735815163328874689682484433232810197099112555436294849319141542017723236639284497706127315089877323221295025996615675288468670665223864418040412140613160662479012124127740706043310810236311752169272248668363404023211276938465532682517170981081260043608019959976949060780528009926643084422529992115162004078231452238951742313146271986770358428946421779345239169964041478062065292282196842497876087198168618699613624535485939687563088325694525240557616193102969384714920543725873177716175153317493472793203474397040196620436913529241282974484652164064427607688370897651059522743627967630205275696147803149315969984319385500478345332723958503763533315935024307616470953988549276955254570247058161987085286783762466947486000566032987109120922964514000501588722783899145711150754169662113740032965573742453487510862535879220662297925403214007820073502907061065392300094867880973549609609710682092833393603266639336148876649610015222140211610391963381028151323762242225871241925743333103060558115509067097407169939826129372407430080735998174596729590832051283766368071234192567452942277175839405648988640452700508654935404330831732292695883179252193480475099929309644129090678433291056097731870217253124461959038064262883563324926004180969003360354721180915876705662440849017887494069096079604696824435560938357125694221479727037432831674764680006521746564821539941805025284157563008341631281362657788534704615180297650599123285000861169605083762801892509097608592706494519546666084836871997491308844429863798920830891195605522757109547423145570406251570871008290013925219491675546449652981101350478326856315661345411307886368184969476072490497863136542745895096105771039097651712206867661518976329148705742017717478456869773754601353393338544692181750826268274833099854328583250494711289803019106195488629267822240226364815987800354656749410812213639956702855635813900337287663967823468945475939725125449130358928690853616054924465019809648251307582299031741377680880315416002717517002549412675966219476593895226654791946327454019773282350541875142463405108562257307003591421515306185503806103334495687388273792097716816023033096730107788149786526573096761257175606492229130675505606821685914182637858428044625420904921085458129839717764887015803876054453763407113983495138601000318142522537584911774009005900027800631888267082480559903566800968632414442931092716308757051396306147351980035822369640635861204250547768942007822168835739686184994397048647635649561947097238689378154550387783822354390977661423167817789266494131076113073209629959684202880551537237642680052593235555335027266833419198234544117665867768012809282700802569413242067774357274648812489685597568395784398102676211879956653486875876377146894405926570761687085093970200127143248102323982865962026041394681059749454439476901589972885493316535930897740899150815430569632397064913682555444278536470523611460911846254387181212619589667529121670392489155829046681599553026463101911728881335550746454670769346415002252407552019615961128303883191804912296060855904253686593349621283956038988042183777214079493003223931085184970949369213302443832158811393570779866658371250872239519918852856656803472121158205636897190144319822855825430495208920323001640474415467740608056952353563626000018405943971843952350628046622900097672258802413414820638937212907264762416440274555571007610085600614806795747030094480232615297827954404260058326345257760559856764807967647210997200535132215563725710681374242879772082351668601499989968573071678797862686683300090977687653032180433612936998073238348297867147974159339407366007972342193811524483117047826452361678396952693838422880945846876759063724669987911191215133089719728716266998694080864646436734904759938471076858806236329077848462796025534180375437177972075974916535112443612653396751275266601274462392713157607655084957985671272266327021886600435663193009855746129952028081074515310717419533431305362442110839699895623186674459868872069233288837522796277443787089016806809689806578639192660463392071789986329551899297371202723408301713607749291643854815434128117938499129976646969203013060449637861360042243861241865589346620956676074284848543028089430785207389231322636720248294398558787487931919328076903642550862232237708210278895604097428357755463094111560250358531134432395549736598011689880759510140260692954600105984706168830434920976816801556351558443553012219573414853304031028715854985562290185510647215890566941939522204675518502933951769476816332681459805590652352663726440837527368244273218083275898573658525099482067984460251394619825724948050956101565803635224193982545015237681701670186146062869836560445192996805037066968482527885531327994448526995589154392664439494367316618326439538505910459505500967968950136540600475464785128604834305890991777025175925051723491957478314199111608983174622592924444371607830064535633190707129520430425759965012742229134851064298989083291564045947698607914159645093915756008845770561538743749504873774110925059291392827157153094527203316498008942172441646299136070923223432103656289835978278598791389846820575926539076393107775682123571687062157235709351663595904904587226327836563727867791894299664102458770294380112787111782295869477523072475155659054630350489343573841440332466181031695122482073064183488504987732579545814861251360332016169370612806780396924166308590396759735477138606309146283879569747605308285374098488206650253191062145149310931720254937198539420272509689614363681150206622076497723615264794840753065016230643823962879740792759856621545499878870132771617101011352909334005105871757041221113523176305592696370974661973070458765777106409654714224430735884964539105330629640430308154843903976355826776175564607397222947745847988603757248860400961763535747456178670069018405799689556390428049487394685170918037354602581935762125401979859257367772810148366735050417455314606814948298473106077195359615144463769921642251736193368753205752048656265080602720835608299472791697319008797146233197000932957979289207930607177751811444081511458560501421535017464666424267802894097950808252553536705202798814008346841324489187131404839457308377357828995485808069076034070199165673054599225777515033994147674011845784786725452961976124196963288627442871569219937892729534246455239659754673401982202497332271542362144042066156031926288957985108175241897264541761486017711175278379840536588087746131379335656685286907991041346122133425914262695649397824992742236193490219161990507183489215180865959310435991901648016338722172246001340385497567345453635183068269704924936926439152538461159668987178136115308561291698329027540861393336305747106426324571909600809479300340030406514405454594209411213131189746007974329621619320832420959982045268715362115229734299486963861399109034491584671720154964037567163044616801689407779816261708510901130525134273145517969437769020114693667328137344636621107564072221823279627021405319820002331828349837693124262971324397926554818431299419919433423985084426755636865815985871449125554473620669808505879182908868383439091831256014729294804223579039291877369396497054545291533985679000911550834391685035675658416376970753989662584624184055562433458581262592378657876971215413973961167080517159052596683871069246598989154544166809007168600792872125558423009127707118222935775561460857408790150972686973931543799741426075060436558192074404443143066275021011321599915474139851634087799970498298618639818516124540611273108797510157573466940022705252961835414253158144785130777237717153555763551666987928230378223659890534997255495282384812387106253504616740685220114727760908169008832945696269697612416369381473817317434108365757663426677132681394967407738436142547917011618628437329166614198353714711588186001236064324041256276725591043391206349277401427795012351446555416180073251782495601493826598956810204914572965930345846066225711872476123604586324085757378961975495053036721238118432718549122031150559361518570320590910095062570760961946508312741507555286149723242456036695149485485011169767630062804881464566187062939191425655563257643209995193187496426923931729509095213173253873698279935980899399648528878649075141099023465833437976233287332611646241021659968458449136266816157730749680647697125555888828972518605928280485631923502752693050495916039198983365746427002776621337107831019822779758900561222512995131595413427443864899761953030915114155088447728443244177409433524194779247343801508067447115488829315085953374236826797498444335457142505832006952089909640170183893263558297422808543505140242384350732635446353438435645135119291160385469604873190384781560922301503876171158658548678631188345377216773899203669185763491719855363702312653189788344384833950105266384600711777856618815037785665230747383270447424228614422636041257894714104465182924752241703169683132956261725108973160906068336712986051812071739418853530481914520457357166921436044210065053798851736748309077279227183104582618428788797745337970176271126741859643501703376659442136846363034431930760977252980098963030922825618904553721484765564055936930931138305347444084196864921690893226531593546421117024383260732371589229193164148194927225644192319463395561353964654004487368866537170297252652694413715032728037750938221621948296468919901203755791946975860162704135829443767098786093365925351851411431832342704610875778657535171583004770655419311540299931962966742287205202065383842580617628654343951195864710513119088133087051182792122635073040077464153356360169534429310142573944314746686456178402232094079993859208712190956301254596125541339436049450759711582039166222222058075667968841635248190443445456197844779635161588267109954018006508727157130958763090148506258890371378738280562605784402595842506564536762844699195346974367393677250184217289713489134535453607043585793173293187151109817495580723033752864149730274472217303537233332395296158504378432706529448010046556640667720534430334686158681872761559205453156684634179981418497772466812303882622327316231917123761695229072690065878271458278353352158709321493440077704068427108528923470025856724372078018795392430526946955910966205276895883363501090037295363561000393738527792753824277550323377779342022485108768288829310988570574439768568614494601835261864288412948665907297100520502437117879390932418150475659973835739540269836019247369580909162285619398740515874751931159882104494230575168445892224459133247987065718664681294130060496949141751358619415298386604402361558102590673251355686193077071211266373743171281888531346895875578049888529931535794893680238334218084554703606861205154097651467344413550221142204366722565141254282274421595529559220415928110681551642922826940044111167104332866091291271071776618823422274378977193617227311351996619848611792053614882540366329508621763403049891740534204174875697067195606576600030390166082354379730424737804364615978916204369312601432124756694942265922147232630672755889271898905221712884488567101623609032785348067127847334767873113298114960076665335514243979699023715320061512315092145638317072735444251944785725261051268179823390970657350314611372991734654590236191642672626904677047226126053642772936620878285601027606720071097963564625644202058065321260910215501802962047536525727389618805948845242990869629125019540347334867651059809797147881003871666690170352304799658230307151286666332767371501762433599705420337545631832746438791657314028240436951922810742058545401343440098474608800032241105554987255310133816017818669805135564612554489318407816395595242414692258747588745316626332605033689398571741659864655070900597051574489353709712526621814434227477833843461091597020597298522862395955213038469163101980224774596056419576740969867448759411597523308893166577198431363146933548898734790331362006999867784758790657374994865938660069828662405325689758513205321372852131688821534686979193861632886661321532116459726921728213943420596681016952968522114756859612310113643305960483350603005198861484546420303984217821341236224768227910504623641567673097250435739350991082865502316561812095406563631847377694762441014459566258183835451516819641025610968683881312082645670804612299425072970037620815590748487204529259775141129686048336828584546744528744189968653990912488636415523537768483003931319497316749099143322781287541610197737799398176731191513310713612451608550172964219640058972515546305364252485527998764129275946870653034919474740725400360543027313267008979465281044363241476967347087061369357983071039184760586560472272170121854510282872515404336454229562898859853716970340657738415462597007477663471815097067648093963293156625637018494735919656284649334628076399044615991184462969909311382778317467748846334850968231443466326436664060402163916630885132496681898432381355681817166317414665744191032554157853890094867840378233903162980020195124586217096713823405443600794763132978197571461928329430174890040788366072956579826920626377081177455195612227742225057801087105212964855604541994151953284097620405721993855438620934532179765333900024057835788220920560152209419242201169869270648394264479322254273337601536318738961094303080013438452701766449532714346101816171217946753449228350630818221776219389124386633990404992288602763918307788253782640506033047624406579346907271249684161690174130472175517334864751493447353869333005279733860980425875746393029847172662341325511686805166641043117757534358560855500236931922350223059743476688518009010221584201259818993313626044603658853836089414473444432006362531577315083542798195776147786237945814222591196710662651886870386954029647609513592668134172005067580658023211724105696693656412500401500667394372815286462676383877452240404975693945077017859717171368532041004122342719664007054434594477007382157593539462862723376035699244826723923552434628251617668263053537254518852642188556436138242506436631500875031312812131030780302582991716512617980137273012242394968166022725580826163194968315686976562054229928778734885718419347864194028993656503428975388745705609564873751775061872996449373586313204969294439239221938144703083312663530376629316652064319790241946207393856552418140050176179481976515919418466626608617094543865904509689372602110055326607487204959657165862303593683568741254036228104789554983582524096342239371486573214824042105429928596757672108178936261617107252937471378634492005575931534797103420145701413640542166668927050109963916713257132567358022563052692325384624911211021275701927561781083610173238492888025016644921475179400840960368192122070948805260087377837046057479169303865492695259107894442320971368039972894149860025361714334223230027821891814430394821492860107358375596516950089448889239440241490383558260372097142773958693456201482523597674171746394001743404782508637349046586874522614257172178927685806580645821126498607268481110782360555376344336700207581369692351708656622555540028385670464945128215499060139435487846994320629767458182129359064527993433970784873395933288550136354137860383684972870103644880407113505800483394885985471228574610905488920641634374312304406693076544901500475281388631742958460219948783832781639896348866574289139141044741093652093325232954479975289089906729914403016471485550099387916086635444130380915487479508700601591683930428082398494802743319478066631937071170148805800403970875750154484199155595654081067057126495717676863991097925150050749851630576786191900954190779598586125513429855196429643741848795845047444133533954125501750030153733308886743112584761974456750214379887775717344304535642455296089209785928888917535163225647129314677626359585251656399840083970566997929564075408057056376961476970729589155790747914209079838839130241651699986624963512433854634500483561744429267260072216030272467347799130342181033407824986668637547587037185883139564287561723939405442361242823406645181335893558630702786464462334011712816907377513416706457272959572577003540335673017844069379214866112241469019007651189395058413636242153481127389469846706065510015795705138849714919024956340292277105022023255289533667998194157737715521358479327168022933635542054555676082517583104836255543840740678077466165478819182416730836235611848468770744422653304233684274631201971433097189338065341247495097321958419439650197361760020514879201773083606200430887705157084690677430756106792367499412991341946596859419149548889475613693177169479908820863041681276365070849531978943493179940774591193905232083036632101848207371122965345910060742048701283625237898222199510090205160968278395709268894863595907882701839206600622494494223055687572915403323824880746769590778997925391809126536354396279625693627607735976317090757816693666193580822888228124542204465095011766357462795005091071488085346895306065453982577388120905577433947844142309974836484879726415380088722933152419226841732919437297828748321290127981669963676151348149058073079885440269918564236693997661195613907473303827831540497014069812423480015806174992340292994789084883440600712833663316537748196480231473700401538362497760389127142105283516697135090797774299349986663991106914419950931869318639372933054366917054852268793170493277371751367716335518228151074391166602558948240310995707306699470293506554997986861950248159346301191977711541556312791850514515013236189255541118529588357008849842363524645684212869244862757430931641386205706462174541301554596229074832476014668556781170821948198628142699971215116102930439889442651749397420110095767875387336137378058668510316038481285670581488907179568446009668804994451378067538989606909162667610530333653343874652024964610351159594224840055285528315243074494768491773584183344544737010395567480486578750777652610262340804203044060831825976205628876404519141123921286459084761754457808884007589257898017558451227861787371810632729345895569179235171590240502164846336777053789567912784301535145317788055221558262834695326267409980825621961539251224890490216037419710214680873693930024559231883122293469073249424020301960489010878008114432565238666798742009097615019794156356950109972445310203374190182072261456814850304404794578756005402581042970863752342142575378981644437966595057338688982902880061806874195513943213024965127568006970378587371117676660475448282095549132142326435382330961226420170875836433739145117339472331459745033904503713412785696609440969809645259393483572117985189456413388106674637445502208495978130243608667134376033378675870778871692426657075182417879878020280478080408845317456790765380150501376412026392203217990661216182183530709434914436792793210193635161609251295075987090448351455546089560637810927447507606002670151083926601354949152987403724159352106181976972468477850386297108729349465319770452814114723003566292580693783018822897986314174233666847478608078993498402064910733225679171148551967032532386029749951229272066410484128545421002670202480982267912282690795985287793129417654023395529593852477726740480357398377099508394013893632648008738141234219486477872048216886444891632937427977203376402937723270970409134901128278005663872713273285621367494238603829935578466768692966328356189571877501675201016161638988278594581538451983290023875811944207088756126972198986060861839309431758338470137920284132645591537332006017309768012243196807996161071168721722771901781787175138959884326216257433730865707175924303992407336065819345434015139927342690635784423755140531061145724593817796630506628032794363648673952893232682299506074130096279621172427403085256796667760798103050793779707714968090846192668022993390337582539012212598375577091258638002101819088633479512752075840756155577836330830467946764194642023001711450896477331704609054070944747269983804792259063289580297697974177845921216223490039332775536358153720773144354693533170780444038072938306361360527654869001065304719089094316892553296110725547398653961587640626834449813878098203095073182106709738659634734647726925485343258141790037577410403962799766700641926846700886531580004526591939790769681794545249492749008527985201638220805182562415909851075594795712179561870163836486758309022062581178686233619150427971849299208532423371285135765587488332964387825984036842456278542973785839028372353468456677809700148896722848021625924348554614718667892035507476833293488338321213775051583771880728508926515288236796297857588922015120306702601326411430750397272254118001419449420508917239976055588757918711529514511589786512287997604489330581230519983930910973826602003789897981143128850877934754138780664713037970190412645865826135665154834755007276218450832621903236947604336036924858092910641566175067870891704215986015903208140036424718143630903258786564969648779493108866096317358028695144986326665298440073989344267520471636411957729177709165663973913171270240583407339341644537396041663426621231502368046033369095382169943728263683249450732864573668930475890343581924680347655590684265586345663674510776123663833656164184992589284377867694826438307911209163919628968965747594773581415812132961715742431322011588349210123214657193355354489839167301837132693140897847981276642228210396660352423643010891646502984976937814785741416434558610301261995870177332475002639791019017557263223958266503231857432634193832265237101863029858547960539404748550309652549738295864013078292322471601661870456537606188578314535430344566695047936098054997465400488371481286171238095419143554700810869849947581981681121960869340354100496293582349438859033306270961484763802473558406343934430552814384404378339588743496500350032761060839049908993408421182061536126600576425735656787548349605330897586659016224126388636800468291710165259850802159529758751820517999700547374687067697539604775080292488656606918527359448394329601624561185915042750456602620416712222353535419515962646661437833287859230374243261720171391774077955440820299515703437763002744299707878813145371918290564380088009998699324581918830463841927628097046005405257038832727955269239231616260320592326484746972163103602925118154343112245776997342376944694484225665669600694693455417261992839120502557535186585903725012037975327820674883675282190438210927581604200720754508271881304317094570554700850383298271889256041526222436503372882377949036213993542890139948921139108001996816949557619645074414720787777929380842717612458952250414749667678950685828201338666696055301258752505897259160788124514418295412557050047631550563733010895392254214402179901918637802117887788874116840303042981138239527514421103190860649049469515255419170810433701649087714951781464205261111538856064319528538646546940171163694774475161511132010867459696770298696599844454813738892214484128073709352529878316453217718192026629583849512662749428966920879120130935844579139582698011333196479490159168430913597700696270534742131016504809712056727325982671217350893558216581134373384275697243655662455526768662558370291232825924233290086827435319454122036758000268106825572945191839801465090584008404085508108752311087514476990266447954676925036544782415736044091429786615714386153361529506156583296539294247216016582437457531119828988059197597855867265624675940102444735483572877094807931714613947766156621464317256340404659212889555245283186226497459514412985068970283793783789038893812928702959178482387611137421860299659814377940746481510803456696355636776998094054575156185946184098064078173011191813521679655392948426350836982601068161028824521655310737239863769583531662117525996054704745596925813278809690656671934880862806524215966228739570035325641456273174419892305828028296962429230753781525572486239795071233549961211895432683876600503993764946040473922188616751699181274645448127787924667567521141551159643002458775640691434487624484698918441986633909438850473607808395322454074389188924065333658368439842307299413014975056208637459406452028931494056075882269991971601735409667821613063161281792503473243802473588641129466724912029867000801315303664940311730967336999466309402941043993201204258736383046906649578356297408025209154776739020000972733463721381119018850570619522892678263576543198556941923456773080913187895046792370067571474579921680958861839285344538897601663773087429438810922860726710569255262186182348140708862782459483749543988619364940843536927493484842366695636108186847536456229904028164052831463870897048411906340505209204554974956993992836252402814446991319084539741953733073569646363412086029726155161487395668358445822453757846883704119132010158162633143531198933818868416394329218074711508581844466720399787196892780144072697031207198566984639903390338754631698111987781159027663462809341585340141963649642951281415853425129084361550767695632478058046112953284170431433923393809494315803408428954610725783483397149739069537099588122412283317988576268167763679563078405776385412097810274179324690513270760626479238152434162628525282951352582170760026173465916780449975998045277702001280131325786432406342130281392426819342863432017847999570656717211857718946698343665364608119594621228854567189686911540423761993550588520751893634364147396424189096794967992563859212145116691127896852485914426077084263049623082513068468995444652843777499289618165274165810586582358384992554522404535536788699801341683685348890734248565494767043262728377520340564816050348590417758548656716872423226707733951128931478691816996077112007460237311843137191876280471132435603995221555288773823702533197933429771722171258176858050122283371986398153931088870452916192935851930954618594041621935464135846796563116142512173130490071398577333974323230335406169055774910759821355834959761205771051767682885058908194977760074663200368571235758738982426522545926357532311875130196081185686061070413664650552317261527112187072617932125586980420846079369440558222821329967131177282288846812024047051509847675801303503903925514001246002812788853887341329750911997956377230021463874544766028175718922719914483701710253454550530387347158878154836010792041455852776555366641727958795867506480066002657220820286833246938601781254453528027621099055279612949625255183109947892995966534895938748776938937192978667545829903318520360178358930944204297044919885418588661960291242598186287338783038808046387335737691808849857102196911629516648932547524892906382412162890222202290478428719292607908099146516784161148483724056922880667049178033107141849520910173233462209774801453643227621803212209880445934028892795379579793759593323796921408755600079164894845501483938297620286713006829588499753107526760468774100125706263176903538608169812237748563831826751277767572888647350524592588825373046417098554443962397733169439630455532391897563313878121344978933378539054356501828415217366495790327551404676386013573389679210674791214552449511211107132417520472655570090607545467391756564708577271659495573488143135813971356335816634422566969021623376121485986940743932370315718596165483986335042720456756024338505201245046440552557648721140479160988318650463710416137936261486880350659620334870321008457697048077758071966836018514289754693828798207950231632827582226081550610061973728967836721004913452314254608463805652784638941315473110266361597113749539506200986867243493633398082194184756584737972673492248269234115078805899118730845109707782987728785346142384979635720831550912014204932322427837168326730247478577506247267669151283508772395030184137690394900816060689643887487133850308205903542593136829113771300795193444138275860071048583412455385090625790810034773382568810826725807276252059498379489652986219794503186908543387199130450077900206405832351742992169736124187170677615334445025845958703776137259526268144093701001431291621399003999260974505563657830658610123262919516513433701716807237833573882820799334120049528889819045310140397210601449540022387296905585318743215983000208658716391439692182920079753549013348799907302463509102916042003866721273497677237683326963578686291966443342053872792008671209209293160033586253357805791658913685403046619370555728580621532746599279409999280550350761259537480175667795244575226253638700363170478273126679326058781423457893032896810408623606861857145796117990197742263980199829708748166918605387961417112751417004927107709988205260192675571571332298167151283244847889435171047862856110941765843295125038649163169574397375143532937158803933107084319695226042103244497645439376673194506116849778709518203322132291106116811621739995120944078652788522476673041780265622755184945128521659065450092676770902304743127576547769514917705970783373283522521191143630972587303206954953004779162217850955575790148057687033871191427437996030390550035091279206263411324045171550799158562211474703209141799716575081035805051413567816898382321529201876974419974194230774303551476521926686019567503588070045688107924387965677609667570023059913331506729721377270032053552757746351743276095122898249159853142468304223521368378240284029645728414102009896050335303302112363968665325225734794254678086080787588796868201548437226446671118087992071328233946996465619441507939107593934183295401513545578328321432302706059459626221968852949940619230170364707164744603283000443092478430951819053718247219319735111291774837775843999347399595681263147601549368863128998354633519265268533001651500668872534318195831387803792448125110449892586189609952932074484684018473324414158906299141789251221009694638080423379788410034068849720260466970587557501135884393964411718611605968584801553665834986087392989175170707898042472855652959637929572924663950494125931816467219902719174122069933903650714924728529307616729907536724613314987216314349641112819391088651075472647100665834997713328117739673005955719770169517586318714980194121763052674715535574879986413890095690607264498942178686749560685361489758142602477251486790735803415446807397260669576264094819614704721179172535697265882654113153001138911008589425258111547731863397048729532329586535932626369929845811599306194120717734316984791637188591569316540122963834341105404429943069049674213809938371050813928679101795082858717515609959531566720845837089360297650754178245966829098808112375272474054414997165974013677759508612312586611861765020134139888501508721915424682879001822629497791946313146631964668403857477719322173216071538499200412719248860183718412974799890083529399519191246096436276224497274224302449700250963967934694410364416101470482039532888676336601728043290924532456709839205173146832162587198912813870876361764520992834577897817913500306419778212467254836532360528600661931462062912024003047335305544420465085591211061057030215454552863658313709523957587999957531492497107649339012208223157494898473824083688837115604657665156423408219074261765766917613421864133674909202336358254695981793196542570799511439054437794726743045156831846156583220207633836817306710262342750718689423030562151410701076899579332097439668834704058060000242988988606507333997377277513084953144107320034219351688779206451090367858200802202246022988691454050004830661414794468370572907796061005622238915548724065096801459269426404209783724737237370238506282861785781939244997629565528901041914383885096340219355235046002893005204991113934520950927765019397825382680704760954460958332484535929422244055111706995735585424871085585997805047906489596962230916996791317251203247489589973247232554408685004730601970377577144643325305332191232059166824843953749404358104503012787251275147759255518847765747536880382432334633265270319117672050772506567682523931755883383889637729836688567249487778703069522053069080562039892064542346802120587323269349864217284488054663000253101050431496703660909653938774669827085639531237288250937118016163366904634006333110521298131306269107122486462863149846290696258776673192830628892059131860261620114550607707913432620166011874326099386720725229565240640831943232691793291644716954588610621894051063942259557754630963272925605975772421981392518274797537495576714679127206160818831372895074166451954879629818363657510418950761020955341079700976933317655594886141354795542237211738256110229145807595939014230691847212974224378633017727376410097107095870668430082040200716411763936072310147890204805595524879830405689845508746406720339785741166262237495739002056550349330790026106808807734380227765269404054455012246124755947605350009249223429147596561118013920198930947166337428269602486926996754575448631581991575648083338823542797277130380632192740694106888660155217082324288921363005330450692912169323439527550453521787149966408234308638904583700195559277467927021894403326342521719709925595670974013420591257298112405125702313614571903523310459312433182203885771176538627359240191238693096926085834889965341696897371276572061344246129920686513353288678645383469581835932978111010684542710162267185189741049335397464091534810399160710877703061769466212433709552887960498192199724029772265142364782804051036356226823505750277073137550153720261839380005608104889119050714275097362836510999878684371327411889278907308674583099728462412697212369259745670842884806953442398583462688787965062244221312776407302534460264894986406874392938692280589911251240959264542465958639305313187604880472153548076377261856917294686561718316552623501313193324092485266473356271569817964676513243421944060636115569548791057939230097677497797522934734473475750835006543844449246737194127125950075477443051505209411850310060130460349591166117066070471257169177179788464862124087615681004149544278150043625080915775261037322165028779721774308397419922672757194977279125489669230140400293529211093606085412348415604722159101597192988344997144460825912300410823025164615366129232746553889754075454732419778619719040732977367150874293189543097550229851331613871063045181584647181642081148480374925088378906520283747963162227772829677138856803059004798415257549937958980226127626696502631433777032632963488794931591551525350239834425946740495327641428925823669157343728713267241374677683858338541048166606885010983633901253996486673460661297755952451752411296935009771547155581765667639117001238965137916869845585368278809577208263011779994103179250031381071787473933106997296703157927618123929288860804692262567435808057013792092852715467484653005316341470404971762980772951963744178622554371975427408645290618790108021361778414858739949098049530196193806356464133623701528995738094997074941072168518591246282401618244792984067121607793677038929947023943727501280967773546437852880024232849234974065801314271200974576641816047407758519618369794263352959860336062146927892566277114471443113436082148449514856691336605372732655899501396265994261620513839884907515857440942746614344381690456560247290856835879997819976209535047302835203485474298694303498823542314823134091738967495293101111072101013054519384988178956933126933402409695517574641312354789340221911462705461764444265540693887929058402474375901757614775472089713369492147478906048076938575354010612224150658354763103896083465590944853285934492943767332838222253824311354977038971323321588410841673571932416949181466062088439055374406460336231269423442341939107165591447640903753905650548121891010546250768786911380466736271325711078422318971603049937635854230096231358863533289601484844191033132079423639280519623563710449985692469850702812824736130858040629869491525703285180149742102745009261436852569834172290894135183494858521492672680518261003515717881099161021243248829618179485385801146772069402222786288557854242173588873168931327242342754212661873567347943107561269153640389377251853772918615024505119058796337992261962708714443155459018943186164205652221462176053637819324843543156337584318214577844668064137844853286734380534450288243910290802619717188775306165664889614136080338536994285934747624627541376502430627941592842479129024220077483084579571339113518320410015160443011085272104847906628892023948245454037199201405199392276527089511072285699959919029076657338084399591036010678033825333003773683018348805122482966888891032084155633289086409772998629649842851675687401717724616206953731334249108829312415967532321680111210593078957690246464805124534825499546601644923576440282240077472005795687347685342112764969751693056548124597522870859145400204391210157697221183143485292149502070907805557117867083787527565079424247487066503005180303486415456433068147174536522289538267459062681003071573216555774614127548002119780843069675778886976082973595994437410243208672201680265322215244328702910015934225424080692835697286229455139134564786744796012406871342052679162653310415557898098883831091879849081256660760151808774056860504212016036285639450221613879159686712805752494831968126157839336901005128834234825708098376959266520826450987836145374249159972983485961932713175708213087579215117490335477365249194145948014967891415326931843431387270660548541312240759555667982309494301934867588158117355410826108742023428137574046713903564156104522483834952283388219461055938055468390238940606118530528928750676561833385458651954168400171968266045463469071251513844285007573598831438859416186686037871363587502506617183487394078479654057950950769729329890232753672488539049650020142690407754794242766059333872945360306723126526568515022971264523623697517374854214636929845502974237524191256947385992724862248867800308977117243170167199530510025269890575791849539460149982963532363587916295846036662415497674024394180724461657913088233503300564161308381053282553584562898397380794108851246545463038140304140770199928489205947354115367527441554569069188673090510710409085010003920224607573002457162895049168804053002700661110836968573637339224084645430218297902366150543743890526793562010460096195609697469481562971982938804743544369222533460978886870331629131144884550153707965291493758685400938019114555726828140569008551912422359313677053236134329634511799467808202243592091168936618322133501175769513983349627625631660966302092957650624476317067339792420180207398329400313312596001915477313931165268638414059457743441957313753911302605412761965161176712651673847090556507022372234405999587685415772405110759773733031489081628998478331536274546691150093656335815347974073971096246042813421293105832507280236647681420792718841949637864185769065177277858560494148155374173712955360581586363186079986849154866959028848176415995168558043865775558675394068491978255108490696562205183115739066970324187241153901454577524595585672471958376749449964756730002602013199128389548490372120230255422692436945102764737018688235084152716662643858233129843736504159728779463352816574689832296416152893548899766219460906035048142387633610088630295274231326468420149267471209193602843032598786656714054661658708390168119675665328453832022592287648617183223177036249632521973298478309737703217196522605172553062713220887496481347306376107226769096099409958383756975757868993649605107216014762981490986520134056775989713779901714361183793920079471028769104066526612170518750257081930562435107065551667453158731859519440951870376651272435666198700778135183889834192364150502614909800621398620107934418647729199932792336683231364461673211621671501792407329026673618241274461195046386232320485415845684302666704847160456347625055012246185943984228051123443515722735072492621363401135535379962399752852138426334769972312694503768360579734949347508079742959509074641965904135795588736030280302050790580328216474819094106632125623956915666817557556434562658948654719475365409871452783811196829250576966268313341151037284195942199781192554860585427674754750225840084464024388272115869180739545775546828190920495668239433968418028408760886730188277414565199871461581947635524465645307871535322889725564962291202334971261459019399796562707944274493751564747989655544942503916269573065699115357875416965832902659438413004834745053880692742261397672342976922788201217785557230202674452154928421987360267283023869904131230221013130981330999143929003681623116729716315909049987972600085697835816509293753191033273310017588068236246294306572300529720438617581221688194199625478271128210261425335159951959506781488775214275568202087957636126449236823418619561826818748273002591807855651002834934560002244896641800741188741040297408981042166638983777538861254098274746781825258898497170483705803829225749313640802645922005497767966662885339138684860847329162106616298334120393736712450761831035478716143780467800298326964181030457880277148529296129225503144520923628283904880029961706226678953335024117482190114735330932508680243982530204085470488576331966399826629949405742469343932909065067884704102753645177144883442610659032076046403643425840837627752605796638776783095703848718250351178361488338962242457294254208853708676931638654886604757034132145716725088920834559474775235938913645415516814221714520280459729922579042840284104699633027170248065774522753197519216047826980701460487218977133428733547024851756715702052734904962723966704657492194205407989372487601017773731105502120010516156425918602037019027288014437483459469901575466129375785485111024803460623054133083057061138176164896356699256473538932629235343887233002988545683131084596136594942286747795677676740843562032187490401306872951420725179655337578137849554570675578395381955585467423944949343470675296229103504238343113704270756854635557793002031033281091449151127579135592374035248608032123868948780323287955507614229529359830269744700690333521122570089043069087210162735798524727069462423992978548019213566337818909277511349632366600620428370803831479997360300848194022232392975901264615615442133441780145280735762508918293551723947323830136178244336322574756733212616269557497601700119364024028195021535719772160746615253670954101246948948284737932053277688323389155246118294694144364682832821351687539041828342152043589911510973981545091071084825522088701214556867390916879123896315779812375095691001284241069498724350540641672203691003902521802155206614268537703255357054508242864806601051231778750022020159391088908276846624678345029341002186167819047403888351195611087122801346646529890621741940116659333620074758314805392817947373639571423587602990558662223979431795254924562715231348372730346442875487814667747757792744724557882188907522374338565674385205070073600801247564245000305469950328667705873394986493553423891581597964969814925291449730928660535624455602848983589931751336906085459555202282951913523873827664042741173304265311023890828829140416866772577472593794815401468625582973556390130447641209664657192604870437147536133041905716256751991894251297275082432002815348228913585376151818626964400149766395624086790384961435119839554951174860747352318802664844256655656025894035632306858420238854242750189381553790280844015135719650914708679231514508566586092113839901279864489306317248158156853631788094086518792911336992866048016925394733776085044447597739485346925372022390550855565542038285880557883190237418731351104462432293594072412517708320583289116686224828716888855421432632788421172183469798262328954963523628266723006476724569868815761734186236939660786023244433496536631891857920542173645319400523949545626460663432872518669998375896392547146705658568138197760963318224276825150082249597101468905279445248418360020972296565748941913138799635094124782153800659014832146409660668351429166202058344743848503860952411559814721539443200001652994048332090228848760118257278862298125624781757771882487366478626887072827925068181800080896140573690280887745740822901832366492940338697087469269356564445604522644191119716059170215416952995275071417946167797654545884611389998415772559792676562775467202612360030018682270015700849835099334666903789155145533507408741699329596888583712823238688464972911137898464443391846186880234549888915689041442514771243090142724233506918960222894814421389035721471605166928041477905420055713681188079011493227054099690282088298759322271163696145527123400317881093438977349391856538719609773121668275784837246706981643154325926810911812854508773427705437882066668184439634393702892474212692619372625372694433978835115887420209452884635406240389059398251326692188943288906838654094909852068816136011859484839645878890366961130919428497713500191563909148384758358819464946928874100623935369975125765877902742774648214110926523653417240605784890765418040494686885837563734124175793136993718912260089982095722426271276370479303361831432544087138712566324500127617791829831910957157374736525737334909111527306454857633085349414461122463846197816396563765453156225614953984520270637842296808457356299184602613554027275053307434254535240622310787564587109061157605794774145667997326865685182450725522985494627990545200953850464826172745410127658015341970728202472925241753529442068865006787061738710336178740268354977817857988149103746789495595567476652890280756421331788370764646010597916872360236645502623171012657135550727910090476700668763398316597030628661218263437145361767152989531231218951369493939796894105213500269342655662310915350392091792281469117656185793023604041274853798583352469560143683628700190465812306683376541466867525075643745795101863343955089142998480394068066031220444481120048986601669932495598800772128908765186673351263513447510747466935041306631845336921104925974659078800679837219706233972807332917521908139366017732685422321589350528971937540047767869791791314753247733105855801726756111621781804973106586171598715818908757501726269011838308140101255070082333739721370320776948516873321063062923142913138206361891605076836277916568543827972607872859684584261733680579748624427056781848219554279084809871426729531079584496324024430546164940377280519980851516622239294404547101264233431171949286704060694207234290053891140543443015013321072316397843030718118458623258916109478448497290626731334251870278552543563206712751425935507103228778386541314891178098663900423394755498835478921705958176216333854601534065389809234131068105278434408678155929283550981824730376007552803561006168182699731996120611188148103734649512475800452735383313323953636763904674919186524152392981047103196370268042788687441392528609451634574023032592363638601565862976484971715197173811699941487527615157575394408449177806017616155443608790034198654336575026694147559715469478147473867378749554094640294567364431890808938682579235279700419749604811628327753183982388329051748959047228599682840395445578853575359618644830214350136736855723484525252108355525295209287707666838711279532696293971621201861472823732184410040909922025551212943845836038150573983034214934388294502694113157722462023491666522914213422890621026652319344313366416432750004414358922442319830595830253504569336056969768676718931388812255637079874413443750903501888455796096301304793421214871029984169775898211780297104520298192722689153583818915727212975275352712220070372715411237889906436980298847897971194582025325728494868430488529673735790516701804202317255292091129356255025736228700211996298706458328943609258909198695373717619236571598776857050470209942064950000608640621884071936601956429025057311491901771940406368427332886740597116123695932232866153080341381966613842050952367579708689799725986437301816526415543943026713979165666323172636329209039914571805559859944977177117992194376703747278251293827988383882601974984430707198727203223597431075199778397363961134953252076821604577736434341996424177831352848779102758577415747608313156185778866587368561675275605909977711429025702777701257774277598469735498588295517092966814660736373506126020689785282379505398589448258401034366786794118923541668782169394817535142480468319648984662377654767137323058299114537194449346035908528139510023666298755358009646233324511127030865536901963142283664663096599088021089406455232288675800477737916609987954002747458625718023916591522587473614472726053045396212038147259415842932233176671940077892920473108312534357018327060698323891319944955967201265526728027275384019831304518680175440317258081795155034924677795562696430161340668752050251646049182376151163537155579822483622972280866227310945914700101355892951873729980072076491192476290549378751672240189032696697246364333626229408319822380536131193835424891625041124862579978475815674003202495942487589732106854856672278105473857035689239374609234810912677968797592138460952913077180735970358216301173855343350794908883372790586412490883381633908950956771320112154780743507218911160567936041915053459655897867240675731526350953323084804864935916135474981286020763941879108609572301053514810827436273280895162870095642272272689424651766191518616234185536063145440701403409898916614064052869233731294045559617698924255633130964629318212961339698604135482579655690958464193563633213306302003743303951096192462760124052596205276409256809896364511060674305019408061980136915484599501117783833832285168060949132822281714723892022880487025971668863377604181748443602166124291610474074516673103129957502575030561087373193446550205936145149062917817316520633046607293516621346231879041432044039597961447105580079065129756866109496163823349475409338830042005451859840091943413552720693317322627497771556987821909830864377714629924895608380755195820774216171861066808893871024779291913525581867435858229317686283145566465946143222214980920173798968516793158280414667869976929171448541798864216391437211645906564924886553078346406744512731917286380872806220376778196540548671992153267586843944563028812601971729587048337398039627786327385626297131567495017289758027546996425213851154232885438176018748562779284144580159518643673358599733303344548828742664821328500447724674353040703333776475891738546307507330034413615333220165639697015803340297808365584722024469401818171008517918234595652175815881138699731721701440938458723706845434050182438947061892002715679630931606163894246661913196905203906655376578001039266535821810857734962808672726651860601013488399058566828739398788312847633057227521492724066242304138224859994897428451698578520589155109957039218298265265190990332486949560216043283278955470842644869624670120924385964496525797238255863290401377079682311469970206041208049939409541037664305885324685423797045722895807697832974699826424807555866378675508574421732716458990783939819329806955023565449926601642564620916001336693414666973316408768813735453334884198329883884953099834588085830219275134882122731839843371790133873232481556228034882620237809883823017217243222799106317656490325431706949694200131979079728818219372462379910404216653781730511577640337306441689380648867089382982011907266556836815609038555592452252074257140455410848438696934461364359236331114606882914740903675952357403528986387326645180856087860384805021377560599855478687391556399208377867069619583653565150439269987905084567202227377571818649725238736538923381822811597282688290234253045403607181089498804825004752808725444441227741854941317090867475981669672714111820072618722433873900964472238918594044320488456435545613042062832490282939536951988990341203429885051922330824610440188875928699004646040372029456496151317163982489153721868887815525603381211746089055360073638633517343479522670122272124847806974905348911583877806974701021990806407025513527145829683989857093211766950895662651611683934208745123968569727249913509460729860747742636219881116041141601580862659519230367570550967928087033906554050547938108600784967292584287892526289800200731788841898936461102455098306039873834076993715803307652934856790934146010453865825976996573721576886655869872126996140528869680820134390592946702811644262779053570442566862839466587640192695343862130172010364941196009469178501567993424055440124710004992943087249099425812651617673964080975830551379828849867193277502377272156263454310976246917672012724901369701514174686255102521296486001622833947971183057737999192853949716292797549002827969812772268193355130352392961308308445398594106581751360537663725650605145003363290942245995119773751436695838027419907656732068901382218117420834732619084280953677531146243677817165084507145847561736684663981220853385327855531326043761805140105342043546034899606931841834195576019038905573719641533387958926705026378642359998506277495637685426313031891791953764618408709442049302190040536313178038079605828509632408177198502041476551575506642702031727253589338039454803871260533246964316768042600268994675928131514874113797247028771229553781182534456967463323269992684479428419303558684072616661490338646753222442155429792258546298137258474619487150488569386854219767426985366108151083640778612322533751056887893665752981776115408023259861957228520517783070164048905465616619133686549875898071640629263023162147490036836921828106214704843470927652260247938705162840367470363145046014527365133412691930492955257491341970857647168446397902230125101516708159743534170394737216596422745675275252068293849031080147953982535436823589998045068605717254200748311339373225504436489295684734014020330135470019646760381660128299320071743420951377957733621242256217232389432466070335695403703936801630149408120525870242687865315302355782271679744944320273353333281461982413574029113038315867719435321393401987094678095857281130896474970828207161586664433733425344545757981944131527824014225274747706391626947831833366076917566100320569628106093147648963542294888132064287063898242962720781039651212373666987962583817305519522379127347729937183982896791849147925326500595671633756642201256765883866703351445304508913707688089475796142361861828782898793690786414648946526268666259373182496557541900344080230327695145781867165992372210841175708016504793801665724866879284884525938180951074108025606460453890404259239045830584786033746221395721138714639095439239044838421608252930364264529021630963323192975210067601596567740537742259805655599302209442703939956668030362923394047880239717161680532474583281472810075146783427116968986337406878163874372209742031239331087779549896040732613724004322086507173497104721891394128595903782069292543897369179591615595716996201103812913172740112488959738163483719983400334182011191536922390536734071166751922548550751200187709250468435504300841194197025282315819039080644102754744213300082730170984643439033595221214707987407446249149254681607144111846241065429361797793889614087384479365421777210578522986411897014826662060018592878453748653824700655590582144066593259262003754394091139498315062974168632602051382651607884061448184262695159047359250770489455962563139521905451355653598396099203240678492020776178489751763454588510632588757872364675026139089706229322406147596712631748302519795817125440102259254653523569673761434090251709087002796521517544440998086362881749672127658740581146517917927405869698730728402283054864620868947211884679585047453323358334478956084044799270267821741291627959978534040734314949336569058796696742019259414237385396425366253932590046126824354649167335319581863230225506398702179606537878706700994355305494604934792663672936144501999147007229957582129759393176332445037209131301229269518148115229522423819908353680519861464235586197557654164684463109062101867894594024437428988228874920660661000330293895024883802261299194460557940878467024684469465597565833304730947806001601252635900254980831333972721821928262125499399417996044125268316346787627939476236195682985964114329036698960786771637849310930718395407069017355369659379242153138197094316603447620212152135855286311240496395202561549774121335078199681210294703275879011411121905918505067470569630640750164315003731400447528682545430647470930501619892611461828565077139296936298490315910046092401997778136737604829578270266125506781174774727386590072470032271134645916378808168770485684129772522719157476189039301932574578941207149025427339026664313919441451756578370925512482232025215249225789261761681688262720548792022623993538760174840525273025658952388876064579507937625913805754094902208095192284781190030799629627186232926203584507256884756489837021351476912518341575182486574661121839940150284654942364478533800187780727820258865147831173381286271608787227512685013969610140949320350688406441367114762773976870150325471498977739222963233556542020139551318026148470279262487264205712803119774246707234753054640976242541741186060758889145034998844632868866705681005530315057324843977853959180917761870556589456327354596319877840208879036493848319115893616925339086424842759862147873534022013884932347412326084227073928362202289747778351289040432336921069325114583335940807044084822811884265654261129251326243882505060565029918938581622271882048976501669280721116820989122586616068885013497013830198021369391363507529997718559519903109423996444068314463370407679281011007207121763992738856656361687127821182055732602250138044832348818006110620320867667984731156667335302074274054079052311627978745747431435754850009895066782502402957476204735822328400081732591982878250141778650386397113518698126917256417225988868774720244584466729309696904709804074959034003535791871867267410179017499965033317978584262888151598346366198588181318627967884404248325303686888540891608916503270056170138204809627818046330712462270738928234718440069403049635233206421270551487866534489631400253765193033916609727404756523120636822092072931253703282865694911974789830124116309888583428511233309775248934387835925716907873677483943996488763067985929598086552281684054025745539490243092552549965889864266140725338992354237793982777502448766933552055490138074707501261035317500394745924107917177368870603819452204011580748202628977590797210335445237039162889188431999359948349360235686723954521236860842060603152545758529839205036970199602970788296104997775173948680649585444349107865752068198948405207058598443989207031377442297657555470120259547850011714999258693760245896255730244947821444655284481853970818714179149049149909645546487880859997497301310350565538245939736296767789536965481362405496107654593156614607403556700571958112716556386538451101851519755366244559739482729343009695725134681767146451729232959961530601287194481710291948839330671442659251424085122248810890448212939631532997750734457365129339995457935722458208534136444068226247769115139671400813211927624868252582675768045511483273460732738716112227479764409564851544828890371834425890547136415995274726055095199085969891183662921867431526774089477954339546133105524585592631003025871854068820702678759038639193099919010229309606049044562723417611363273436692187256312474957884099347274120201018483275841639642879269998731230969674015436146649849850669105819321919276645892254574446653066805804208451224827209358672759357286154355527164582274496935633587306767214126339674407323951843965149384026007853405491185519489031889548446999437715499591014145115556594979777140070209148809716800370660383670389904040622611434742346037691387792619502605417984562317809180880458017097073938899706520148226992587907154024948221346268502177381996152072792862933057794273696742437937690360452534793639377801920577183954748406412787589050925670262462455084469450547052661888390207161367168756851259523198512501515788940456806438524966980940615259820347223123608536469227460533360826098179369318064195479938903429666756466917758537855355469112430451768837453669506216837240462687269141218183093383907537903291239270259771191642065839806226235825164882696506816297496393621669804910452093589010783203942404645256543558182853234965893548061776153214437667812204108562896011150415951984182880179807350909746006036248114474513105523337852625251545864177335128223037166571028320663944649527537209912924226192076803301894736653178058724785786786156866998347726886938532678158447376729816624264854714227152978855031493756390578134480864808501200920628737548461532122369775076939590769879122339967750383799137924553999252828521534556923038383407887532092458517025320516971558304662560140988830425317524106325034361989244359976991732004597701122951468751758007939873292053304447608226395785813898257343806220043794926008766604509430053329050724769531176033153923368880142612190097836329340141389025798013709296731656163148217840922044419974946712510057188631837473401000957081145372939772665928338312358706241917060687452561153077301962795344927890764229177037968031677728719459057735614877114536317769685463669617256712485333721397606612048725161579114374242185390443554151339535390491787838094209244738411581058207688262609406534041489495510313775975952036411068288012207665303617227700256432176262755858259175096592829678118421828208162000139395932047678761763691984595372672458586575142893869907359812047240317687549274346314287196607357751215710979173765861603343382345644096995486261026171243187815500220714589186171855462469075276307609444824971694010208796739785080167669970542486023990799205431637018459882120955746279465884896312771444686879320754335496312151961895365473074467420194978336142993889760563803334940444947361349099739485188594311336468355328449469304484352579036851521695902359048529230355754356695312267945026379304534327370014083716885375889466831042681267313798670591580513563840530606604489297956349442988143049413738830607297477964022642354257237742061374452184041762478766666670311575681867770528563453876183458114807961621435255181822618463358463776476401928314905197574399217293183632037978610207599177611267261908534689826786252541435272244490904687143069994853874119832356143257257936866154519729780370555180578408767781793573787778264227178897399235048966354310359602038838841841566213350107803496554175150249188216322363518546607844667156289793076144818666465632452379398255500166902077088544804683298477826529244659883899046269152558073014733594068686463702361041078892264306201666123322189135017443349933727565261594489581945260104226968682407542743624957106432869735306142981536124370490386052967827078539559248871178195408623637618377506707925971838469035340146508822088520562635562359448520851127878094743766454666538418554176769985339530551030890834489883474909585240736445062233934977625640277576796130539271131835344224572103440762308833621895478804246065005402903736989569649021864043842242143576072648930983471215872195059223379239868260629493848777446394049975190927690057460028568247639220871540550249676107692075802951393463592687737350001717561570752684370629240239085465728507560570674156283914291368615093075936612829212383612803534365921704764943121133396772338428152820248515344564289145948765557212683733598485991459433047060048160268840354158089764482665645079214035076413087280701454507199725926384142190652722248769835951760260782196263483406494734825673819359562893149870571985004125738165916008613284356410506133731843179826351675505259456010610889377223029524297141462736889722452464478748891753938461595089534783551308413980571009130762236723475710410696955770602119030807352955950184995610093053327697564809857957327732044357532207395834229527864289311826451591698770744902662632044591414135154927032563104610787763437992148485073902300404215166426931787885780315120264002713272077764202519416779103665258610484156512253576645552321211008675724455089137713898365849739960416081515008525543158757421578378457520912074995527182361249490121633626019780693232539579543384840362643695772680503760585562738633108245384471342412352571460706078041163550289202944698170124643314124760991368132536208296090296077876434773960077981587117822661153302708025886424591887153909713348564555273885777028524549615270338988827642497927595951924438538476372905306164552863823863721238575030969111855470258945611239614197624806166853703734673580153849607057101986530057759669515362473539588243002194683958012921593850205754379174413253633873046616934701496686193286797420927869878882984855499897573517057000581382049206530227685681314961903578711977627758385787866339012356899290273812719746834368284653016078977689684898561361018212169264079501870604487675423456708840478921684535879762538965031327845867109816937917060548689726827137053794540145759273381842027620182938356274394417143765234552712738520243718645241871480320622673337408390804016504955889323663983924381554258319003439629175960471855167869911814091127993365289716118788448395968425114804157068655435789419855385967110264575981985007752212259299617904988212710125273512228683625818306612162717517747256450289992354425701950322620552140191826131750157753136176280822704071849391487889908315246480701317025562723163632928737304052571208408984383609342562926959256335171992636023698881448243745146084545713288004634799025818697305449798631699803530443959922758015308092704509540354643633151749834075855996820901227862084523170711507964160516153304177801189484051606816556692481812210138839102299701810386189357247489511849199874958202056978538632794600753833547014850869660546050286780092284343847344275837741978818705028941959549012669950615230907411564398833584953035996530489368425701375544434895237157215002393853850962815905599372642176569666588663275255459464377906337401012849494436513583432448716187291262515600542876216468289115105464449472021642402709805950448935072880497656636463327259864535576686096408761477799906051486174926390880936295143904919157463621905327974471070594961282261422419042006526233213230129496746836189320654871911824242669448609057323206844015954959624547173128090445946744522761973946606476554813615494093642236894921326907354682091939311310425081642185060297298057638458465477191194945171760801962142313226393636404878835806077911487377849001578116666415234240062404876210393255995668825043778657721633924037487804854869299582274369031020422004288978742954680363049911257636535686745119156282045071024840899650408490302129192577900269822445591371840440974652763962714083966537414760851349252138018070907670895289221608799167055405461978057939058217903905218137948787574645885628217229597266082789193279559922332582310338632801458972176016267629348182689739511476068933625954112445117733987941269162107898119116359093437477309361079033715008159529469593612921245434452875429561582658321744764048065881078392316613125150811576039763576487559322371362446026818232188636498118297628701238553782337950783748706327168809427654644041266132410797882820265899236492240866594485423963768760133079363951984346202984321921875467008955328624825709248943628555997262607076523552746451688666252294375464565516659274213732587856840168321033001863854925020722895076238604468545619579022915689285871512877883995410741744381761341344241204645417832111768589344274213556502072014126665648649653514930497257726778994156128239483392857839225909296857044100058433522378236171327943001479645566324716474905788025454400315540803023556455828593086215101758144301271011822868013796376423227421893163377441319998460261504411477374858465473852812789378095682888176425993812912762864463229060542711881060679682660654027944503155689952329638968360516392777450391492147499103459332239636921179332285614978862022392966092755478224692195950300951917121577013998806852010502896896980370240409036071750861105032372707971509560588936373917405609967741445283973594660229531741764695560560414319042920839908853262422744181628649950664161611724228233121675476741738233613070824089489767238091180104776764769356775336373425027465915241314572336021076433418672886320355830396708839627000671699795937664586960006679011565880582131126116188862361209305852513790270774850941217420250945376463493744385092499122192302453303483801044082682472758405212549781223120826497249783064972213960546513823687379911501386167517986187057652710631385448620196294613962856715500581391062068729164607122124082537393399107854630465290463091643156289912503398826385998183904012681671374701378638405565235538093454135009158232456252565578716879779523882118448638550022091426280720891007685259473480475888154763905780468906576291722008269574218324963942841514606494031879713219295151123949231278358748406367015276163467398577404723588197805689984975775703533320292520271119530450224428977360709846537994216135037579866897317517172956469108841898649310392868655579178588285303471562233432434800608398937544906875805344548803774808896071128946793850191497444773030780517591198192082310981439947100058547400337298927610986466874884511528252708520082753471319945919226020369044824846594795185641652133781174126909210868730389133726773918545370433208759872883008524853141206026201389257079796292708935603703485432204079894150591476243643299514547447688645395070548765976716651454402557337977914653076533275546611643351924080525354521362687777350279608903719480960672222407034172417531473971865578679282272948447675762836453066184094215974142751228236274290649463198456092507942931225975511155340981730389928884773463745336087810997250821109964060516494175516118364882060088197856589477388852375807114578136608396082140065723393442164443274361380078255714963539180683616650032582840691601364319054217733530427713930692441807693815063580030564961086810943823997925933009180825705471961343441574725923206254629824239819517217326744686776209921996423603688340987906957524099037108032637693946893396610093935115312551849561698829101524222226588777185588783849477553850647627520287274988742210809362553917704707480229601549846821694404042517950056330658185465363773288316688308469965587316844833452505811765262308591617007338508097069431722138815739143271840648134833614414585278348355453685882637281249096800044344163730723354757989498061600808637853271388051960820388247694382591817460655298787277551623615066146909759577318179597581959380042730682529059576802213020178461559585172861205342238249053577651038491094645936539315566635991586755417535749309269334826217476248669920349621275337953397512853924631310848643639291846265010796299379301090450241533900525936984835689330092797375611848340040629431730334266251763832124465181252959350351550934157263153247794898947303997274296397260018919423793451511674030922838180678763746918693393770168542040660838922624508098884879343876155273104453168014732042014258728979088389276408635013560482343556750551040576550753989124273332141046589008837604102744445493522055632479263505719387438154657491895377490575169215188264636496016777676392678620550670484191201244759642051131506259781184320099718713113699039705633860349186342761790283853596033378422690073323602060317114770355280236733331740046097371494040342541383526778288241799575148548313730060086375126351234129057215753524533004177739211122868554508387962492383156599074040008269009196090117892674760952852855688268698218753458445012636261789114666578147212605578527373190113224413657559672869554823821660874739351512151912870340252726576033507842129346337007074435071275456354790716730710461898625100103321343892993819079701026042816991924792263430176960112387108985704830477653523615081025215857374270046392858305482030701470404121236658411214218965518414146484560222066907006898852646501116594309820761074644914627164384372159781548280905926493726240602422427815908319848452665157007541344170032766773092546689171177027434091403594895402279919143290078527404522551730097560512837170307423363899629994527853206045938617578584514607126961051976191014272930360864832302181625481671066842102403205838805208484861972542476321547979042152811191045925166280271121367039336757183612803506728736470658571582663791550624836760325784804464475638684047851930901114617624879232538233931061244419878498524391108170819551865608006313594859109350152036704608327149756208962255449020231271854835063086211666172234977197049748324334188516202897835451678835500997260766789510673139386283778578011595027608018548314137584640024295730780213482574177854845716079308873227288523410675566737239654269209582233858821627998351059253817166604576633757489730729699751157155299326950123038532968923804274345398327992786661710248359384367624275184565041812753645991941949846357895247219832597094316632193320941912936704015734562770569898555933713494808154897865280021812451794729813786284964014390428308904576091898597669477623207441160149767848410820213254632235131604462075840095734736749025751405978285014286747844633182643497802115586860877294559230235862862580838721393922438554962321484116791512617558450906792948124782330173642491657365049221553180769275469916354818569279778189627201036230024662152171783209884299423907673378895678537771378106237102824695786882293813163208268204375660477947017689385957394023725971187826295075449984578072216187287322916943995168046406674051032607843886259209067771587074034936816161354053221015652249985174077107409685001517714961936337583064232982688024986623156178763927050083110499705633431226035950133492548367888668394614546018180382312751513014125317122750476252501903112838554464599432470825291585377023751657193834385576358547515325324560677041498821643370311476687411405538788452361090873056454487533593398837184091356635805110758642902329375007771709620426858307853161354700026858476233652664099017546089981081314384333909335188342932833963347875571096315503702397689595331881471724867379833426080158311710085027220549297976355460080794050344442827765644441104791391334435679969572021926280948109366419165232879360321263753851804392407398000644216180197002437204336665605813781912974235995187932576381443510381749073857943702855334299246155194634849414195782746138442479874796561992750878323874240276364569664095811202289660718419188765675246495781698231946080138546536320490892323751519831525481407316237858690963713525995446010573912693331825852273670556750717786852647230999623455146694336416863272320355758110734812367764521655771328024046389489822547423088641594334868445178258091271268335980212033155500010191634390391848863728134969178553155565323211802166981472267556270372443777602402164485459861360728676926582551910904850604836765041040704845202694385002711307003895664811055365929402316101598091375557026778284540219309954412829256499433424186044920945366564489002062753866245215804910123461282125632153220461062243159388705967754608523132867965361058637611335119070293135982125731954043365469791473677783019414765097077188579698250695999517034538402214194822980293499423026858371273802328370402772274244260640941902446160628703432980040307468954805546078416345905063659556134874112179606781443213110563633340915628156436779331296086667804167012377239681359341675331434705376249292705864974184058544736231741706440978425042379214951458297669485580323504012628034407219294178788393176190730267741489642703753750002723723080072699285093351384824397744658818895444975431892283768780545172372198088948998284833217893159097007070706500626108488772434651278981036272153477643430176844479862244469974888125708273514707096259436550261711934823609510151525523862660020809931166881238254136315025984698677490064366576131449006268376760210848840993460102124456151971425636232929478363052515098607744185900088970843428915358607781922093806385938971623438454430754415671855799115445172905447676208780078197041814512369347691335122535148697860530389213049543943082515930968131436972187737213755883632425227183641859758196165177541651855495995537934180622384604518423500736649820136348919288526229662232400892667102116871529553797357788170773636713503216947041458309967984085993519114090326576631733301858887091543969837828796082408792617158714162398860743638999124917923588013546992448828326588646545775664069248425025884744891978981607963253398346720311923357390007480799966395944903086724584076066423832522218744755184151854028396370632760341116781883811621802000415017946170329157359370265786247550784749699322498619359164040872622870100522174540294540596292079362028684841026486060744474053131343043010704145232693485142135034611056590362550877551125448097420886762364261586097503228808309198541918978275205102767859996137953174396765084635850966446346778710977913854992352553511975387080908844242607249618021085925786558913736018125428350355826245671218248326329883941491423101024588256226668307537978319531848275726511254854600768765345585030106277753372720799412391711938677509204352438845875020631106764163265023030305484156559315144209442478911018922673499715508324749596118596013363098052846965453820949464771465155850761330373255098646887120583558498360924464134518773156861166799219013418354657102075143880172279386219756392656704140002831496328740011878338370602586419099327790776867314257129538231937775661652416400983118835745948463466818063064235385440922715134940683923444198386191873105092871963616170325968756812155264945999695166311010250668216202871088156351925285975827112669314342099383781481161126544079894418115756376765647247677298342352670725564140266519641123267260376028712882381938625511952662507456083925788594392453086259825889715529885168741659721833100087647506352578421075317615048111682703469875758569880936781038631409578376453155154380046463181919928444246415472791266421045531958712628042481413612716572822159546695886142626393808290921434131852537073182838785049044027956332400023286517178528853836011165691340572635128775236838179331601060539794898163572852565047836256765371493376139028690952943949876077147989263224408676055899854197756329588271246044990377380650904838969405430958368571554687352661208855474171966964909548371570855679170523823353301816820301022529803753823227663848680372147449548037531379893221355772571371964166441705208714679520051352069341174062581244605097918485235805867147224532250244478172152809718633228091243720555724631996083153670152998446239336821274241404203361270555457698414136573881352935845833836385449737308539215508836482086893625764634196610856643910960452185344497940165989224414536382895421905189541924386945301695497596846779070599578382079184037329718585622464264241050180126506282008302939094116662333989434348179081228320918098702357664506267183864897869712739691138970781125134994200922479189071756090373537935210069919243840804935716022011243304575067793463720158840326091893826354496497759252671723458619355434954750269267461187580639605743995869220970940519902027499794510883855124086780024895461398058399543289490485179447567279496085416381805133783297213416484994118581421978904788175579210813814668272877422437058297717940174223011987695913581637126123471603789938043895155541987692689218169055705376167450457489812652366688001468068409372820814191182180790079599484524348045524030766838903661601227554402809578381294881602998999633889264869379501469274030970559487719907491853681162797180994553518738646670372589028142250746553031665261372504577949522248530132801567568360166860039347972522185043558143259008486195039522268200610485769662553511526989182378715061782475328981367695316815934969034442454120539858727688615406628740233166095127448369246875490664523063552156219800004960187048039668191382509664528538045412287124770857011639955999854503032063567548199347424140261647065536314356621482922171766888883752589655840965920241027564926817456172119074945749482026750848896112848343164769239489224388397330050977570666052838063880323265517501393776840856776818213178570481108459419880118372166439760782236175969448863578453290230514925159066158273449820654819351172010349039051410184913679457743886641464354918205158193891841671700985030454442489392747625666879164267220903382123342184972932771731793928327586571810906978415246097994253973923091836791139888847053482425741526878921795265659688429293624860673074733687607708874200464166613249693497925668145985795150676973808076388148812271317117174300421924838849636215447368360447327416732628544828748018102909674629784919238311121962121835675235519522052448724270722825544100033921419039087182123190849511112117599843005649191239596800922551559391104014156586601595801076045340922672390573468319029302687304536335231481557243280654793745377792105548268205599625468467050581608640106995509332801332787980575743158045188194191579566891389152049661313690303693107544926706916940584394025003113550190970579807957515690827229841421801942767725908458591285234114792712703644223399848442208082093973687252011210758941664925887490677146606471121348061648512477868285394668581926466693258577377383070786367479471397763363721544012418240370255729764844377516505265859685548972791182001021237342117162761498032499822906708168462550472403210877625863557955689851414210106928968400558429267351232124884428634993722195793757889454790791984409157932389318605915220815887418188594767940136806148771315014333872962361006423497431856289760929412760846302433056568926441840842134868291046103435614359778504509095824584997372725157483121469758079677590390294641245738567553373346674204309668169978505667754580377825386957455230983957608061465225787598316883889740344143897214747155537353678307399844328554417740133998598796632130976929506598897271088880746370211721891136932006147228084195034883286101173515803072577378501947997212234817256851486422734519236678946141403171487789432110281945169426105838774897915451743990710354669520382294833134967710952615159624539150910599455804353553144279307081247644424818581411846916285959847489444229430681161166848338290883628093831500696079845892493330381255977858189979145883141498106802398143010926200372405445319055253674522077196023590478967386285188997576545053640208944137947691057856255788505823559915022281385080072652452318398840916683312374456972221833021218601827281570523642931765860896309216641821591717159609124722732813657695697570467571608687841126919267269564067139608918155252690350124573720904019112919122339703201723823078411242544196736055616932943766356467493770820042284085252042594145640725568181510456857654043365944352396514953684710793152231383293103845809293161186855987348033530751496640273527937568470843341253968845666236045121514854176335636639905170137170538875541984738691958002591767904678041056496447160754492548115996608883106652676887781146398197803735129386126904838376381272292197674110522909454232813212770198017224372545320385974403444942967994038058777627535679606876915756181949277653678901588320264130332550069278954779805843297100306522231129863225622622965184659261530544865394794279015891871947988565526293842017231419471763406888202778663438269497094207714074967150899555205129889625557712711588477023784739906641166767370051407864329587653025634639190065568242630431137563583199805238743192803275613380538982062447405838821125846291210882182775437567434083075975102003717860642616976768656012111774337685745292081512999114783648998513963035910694310351147677655537165594488232294790127190426025082320958406672885692402429861784062969891538586168443155728512967771957101842978572692576138176829932192205944426847783536427285387635786623306912741686758346907617490626687630710955121861267578263780025639933708517972946966486396764547088721535656736350749471159666038477579174803394613170311432570535795624653560247170652187257233996354825686668947207620611729068375742159333572480813414718601474206508656657364381990824248124262373142531185457952387979696412665756719395144504894585706177252442333797619035735871629197093847856142738344901573322480943922440877260519115266605910845820689983942267639122723918257645582785197802680401098057492154155645622966757112334565034921481154619143686194984707271080874451724900688422965998035765267757343275083780038379216328629451710044199050279291495353181546352635882627072349002163255718635333992966886239582357310097853740594672734821341177856560170327877589385376667451580351473613022486765006108269674120921917260752898069414144984532443728717347740967626145938823690511491561175392177212956982816844166512042065029183354741633802495405734977530051965881148207958039682957136093104783601522522957491498968443191346571399530358069494933686013114896442191069412649254694509556104166887362337730436263045714864312357095430210572720929251338899630320843804330060300448509623201592255702900244614577084937911804025777514621779959584768477676038264601769290521290113526181228920058422451116718170442346041441134742423597302202293859114119476515613630080793030624001361204049646732033616851956400491298760690980885636115517751743695600508391074457841547839129347642146457215635645142041552147560162615261879975311105812847440272748767298543180020866836582706092979432104333484120533984852519774912330804526153724784838608166470137970896823367057886641921892061949389193568278567163864596015975169987296032229628649283404480463403041474831810885117415797371277538856342292399099556965589117830889107474054148827690504819615110826704516132846636003582384332755693190832463713475764044176172514155322048773626042196205347090559014225639274947753638024922918913221374366137307532254315913673870683642410159557926539195818541219322333195036390610499880197490858649101996782034138040497754564495828735404698459728222439104970501678781520357118018760310511502600177732915946472949254129120087753653035914227477704662342935732636041999946212902849383453308910362760875677814498505395836763572924772945896430066036118526303190339795446515667506283511103691308737709434353149132356041344696679765127820614556816375842331757238713183559649450222469685646789516971711958595253788791402976656836510395985243672061288391568814353920686939990813608912136186583303597294940775844025354803501283128635792499456298950308810351420775012713522207105699166569691481032602400472588196295899261316052854988457688696857010869791168170347702213556581370508359978678510884870333580016250954618615495816923424784407784491731304012030734544517288228483085200003046647938628278268167628237230983414082666307387051547889315490058315988488420214132615829198179954727195354844199790730246806254639637440740626728802970008744324963508134304077512779198318734394937466679590216619454075427883443557364267967990169848777220265706149668129015437205816650919823486141162119761280843458735299138098227626036901837546049864035198127440838574913158584740363235486562246089172572550547030662646273513762536761297455271439267137915208517225925195590439391631340744937557543428119238918839566388539364063896597904566525398259597215405902418659219036432931932067248573720603687019678332509438382519484046751048739939167789644605471742040067005546825661630454286255111391692638570407697195275308993242645032051396979356049107587607778699357049436939743672593784908543547197089928044875437529863814545000693302485369996005799147598581114558510840763600301365886262170970215427644267466353237980657034579101206944589776467076785624007001891481029956250745016139964847424965085149418756338835658125904063521570477515871565074355073712438697960661158192933332094497996376789960056522081513961538494232419576155319065448859674016577888569372775940324248835818906219938354150990385733324031028726721810153576180721675349814502763638093597972000859229846665066107569826065494122135671727095202807768724843091143936810514082056213068977344330399879186593306017066450033723034343700486610580019823121445331315258196206747980117289411198998050702316294219583706789685556863969590895902330802633560061960267312707251623764711881106334510494974847729569824011824640471660944764097036898466883672194099238547531376867678736059122446701323135760128614976305013492952922007315414437126227898872435068637632893766739823413098739422320712734508984404880689268060307594521067468916082916141549983343633796823626286118053632455236587354067320189301720035666431336690678069758135593199034911749042286252179020305558744168187310669997204965042354692785754545559714796497649344399430765305950076342660426019247608015590953322996365819097067073970377078667851054270204062347905739047080761862441082016541386038891304922833570113685199538811736888527662070630169450225811911754618582499927587817282145384638383400837949449627879374460832853296297563658181604085959152522002326074789143690669063339258402085393985135119769057631665682643046763970663621322387904354966852886989677327754509806073532155103308579926269309928365617201341165800525880850704565365049971610208395463668112466942472436142000950103380974298554269991131325635313344353370029954710557009522791892451682814279703855818337698899997066513176905642451357369283047778668270924568801742484268130395282776988784789680545392013453882908065469626248346697037402755684751062402324204482065800858913936275195128839227428061908269720671272270279838955236006129586185942400352693834264586738511116887320956048975004085685923695352715848675414194155389312878400232221852425454182513419479338916645867228446405348243180377329985999772083773692058808060189729183195655972449661355240934091884330472011166149053541041583143892323296105212725387923277515488488594275922337121886137737907648658458313550080176312340677744703095674327054129920953911415744774469075500968734273894148190247320907267595462886265785096274814287016612151447600027165529639945759008784623267256823106928616727935334893456202659035955803640378783802935652249466299831413125943210052395482109902414571076754932807197142274959276184292002267048437648791383599622447988536284783020902123487563531067461586482396072445454728444143640762986789003400072972766927717996413107910543507719591484574423140227397245619789959174544340244069328768486645808838148116990126959428627729458418939026397440654805158493018021448626110176444558001863162895943397401265259353254539642562682240030404080198144085392200839763026644780732379267647511708146409366110581014186417970598458491120633490972015029110043419781021614316910145884542470960016947121109243358788999669359547666645258340394015364932367447103765190127264917787083400871023826048694075504441633133510433060433366241774457327506327287910187778339745521717865522826562591198225760956306510206815730133958640797743216342071103167341815703609557661166243705824777646278228901246519249297869659336877098732582841836674211353252686059753330013189382267262042964306749814403919661839316522778527949724685571647339857645713499452339021039279470118363859891168778257326592591018323392998360492822967933482817361097719989694757390500385591312074477406784531814425841363081889421237840818142531506701569910044309469625714814355184348543885312386958607104117795478962527088990970803377352884270577562366699174613533800015371389804999964847547902224314842288049805577128043077235598689747890764887212839101850302925672223959012319418969550418628684835010295429990332986491677577727550166053781325560655163459314344068611128890952632285602041664134031486000022787318893468003415159342957786096067048371799148153756135750736785916934290366716565484499013608611366909286504066383255975789105287974742103182851819068443347288452710356121180378817408799795344890663000879817802104882748736512950569638110957262232664196256353974324983732873179719591113916841397883516111885883018992542528661348057029384807790468827642909655489227458883936561216271301153314728698872209613590510440168456200159387261916612876366266487513129940225086340386066965818559514997153729702116337930489632949275728172694533896392265957957050937255779805635670231663152706935563233622685234945409769967441586400988998077445582135196324547729395924198158651786601767945290286920647029886094102925900341678148126571958983809467516270107507976856942929064531105683766952080339965240213216450153851176340259841254362774797097664133578539400483014018945370639713606537053255664166403849075263207035985690656042724295601344881609103893711915797052743505334470502877534197935513494011004732747308936287962541231147280525726501657066235185079774303619829507227300807504176702921721964824452611731908849999406569394459474372504363338505291756466424700787328467150166687107040743770975351151471354008439272067046647431471456696250953225452387948251423308218716958837184497296890440141535487056982123532950190884620826663330051990857703892874639773955824704772228023943176792761974451965720707930477870594516602047064624846909989396800219189514555086651304922618799473615412819471278146834937285013682781544034379840161567916452206710914179814198995106910207332411333433613440420549369454644531611681816038316698210110922315866828039040427208033215504717925147092484179300055638684354008051168544900298192941278154662466254717967575147320353599394980031836553387768139665334333967281037162516710993904799622999892574924106539303698644308912899893729037033836484416160580562040793441140438318230578663130663079440564407663618344212837799142037644439051312874232277834317885768007870280607010499876043918795666009438052830372554856830502723682326830569675269524483931276801407856907140362769954961806374666811334201512881314077026123209643819632483411107417723760590175535264026221774302907153824690819091983191519100073702856697868823935168359154116027657125722620656997569938982559770406782966646020757427188918027390328511255970321288005484861097820536865753921203107431024484103716010998660938755118461839513628555640429450994759773690310288598454888237732749744859160186222203880689705640149034558257999005618019598476990306047982124253320027869392488674049818204083353810953662968444145947989341772034142227404755592387900284901316380657050054786194542458764907627654196186406650148143332811456923445995266256739702239013336716155541602609976823917033374403327005706624756371777434244248184086953833151006247791450700330451815950287186401702951870065931086053243915984041784245489882563418383613417734185827057427210494506603011163471821238839480079048525285105977516533428051575167170948948317682212081701215981116880529850844722086476682560182751472780342041768601190457318175040688978910320320534509250965988546603192197118030473389494132211852028927110298496309729042822628094070900605082228138160018145491132243284268933170852580404559686586862762042662026086287172836507089358727882816502668201737485092644495305040826983128812516732325562844579987069823495803623964829868885144171021545656035439097779971849746364812542602429466729730943382874820321322808554887841572432123892779490793772137411831065861500046088499401990275008340652117239374602448861565194118207473248533220264602060663410704267465617659672361842322041523325108045328095622653739732920855603797798223052977616897245224913475731580284618253621635584684626955792786750776696067979606570456026532270502391252710717486200960573549334457143124929397485078273751546792378256914592750480857707422049901145263765685539360438683536778885276488239522932518817198879157499690317877622809593827930156976879460077251881573263915086767927974279869713124179647758920985478784418449956014723550937481089753427159581066222519040421221710116899238509315772593585171747919813016897491470738471644846286286898162639279973477332408705374628228556017769488436058986923238996309624283087584747589108010173169624119661276310124276597825875740874193474037786633454591619618688486602372383318619905190262342944717766573647210834155953800085164314028793232204264590094511256923746003194027037191413810300620032468086594940249987021721906302010068152820387161241438329757814045781763779975652234660005656231236452958482489801585189733815960408291256238811427197331539534512499463095396502922165617632004655775139961284956962676552698372770373319518423696667489612941292345413244986512590126297416576433923673789963738067850444798801479140193047847431633777834667128640229855842812336501018984993492164917722308472123767906457110262785328431137957934968900113290434836372673365967084044489265814657881156847022690523747410066877536713207360884846675116639243797866946555860109186690285529910784549829065502165789415345772778408963724661351842519342234022036189673651806885052265435064989261354957082065853570368577759495867231146455322004331640886277734775737986940778932297064778231053225139329893419655904697442666218263362591299854354487642132763529664875995848804191998229973776896546471778082518650442596291758195930567148130819220679150713917984831599187014232851611574286571621565721860059155892443923229386936091580609140899816185906363049688834474961135309073795436812451588691069900496722289628127656866691408937910949274268949208690046142328126097035238163290782786793524225056368521480230842704769605521100771972121159456310235189838916919865814822234344688962827508012139504046898298472712909733792158155706121818766145224256265684708219786271230356580252412845334144124459832760789144687297052638760182220367730002505140862367816072791452455913024264645181301209394582198680801629357069919327644545478405268850953240482401262104682936502378575956500441837449619484198029509585979594659074666387028269323685384362302869938430193436442264582250637880487955576697547582399842171136098335367860033573244002556502641725598728615060910090017932479803944615057514390171735752707477003447857487004770105851260927133965691698733036944133120688786576429747968522255843246963797162092211105244024072970417805194265977293482278872773698791277260091075614183099940517510000251121494934701748526038631161473007696496071875113608990567514790631470872391609964832634356276246231246434475405453200772988662286210778636599630077767792892514261253314154780861021013798920187806392430241732051578998670589987725934798899321171516516358939829259756059099308803079734173980911108594804557940305699713979068669588190232390030670984381104902357468776558247108547838418745546637383445366973009173038820451392169930297164032217193526941797626584401526475307792306446853382176432498394506545329052361662082089997377395460409618423431354815659556622885051777980840866959379086541211419210673951233779887989266383012056449612977272859076979951080509057289036392751437495742872795789710897847980012398317922878407627957212955151338559724291604623462306640149326981947035280137008472792707204430391274742548874881691295614223444707223574541982534403118693860899394707283070760045055028557676463170740354398335550425899670519672788780673063230138788360553394279829399566921907920702676452912001189817309152096647898140354184020612503687682533943780107579348022039678865782071052776115858318645849414755204461355625552028902145298472607980944370537882326467448412701983101340047801747016806017372746530192657548085448065735173527892041274951869370860496572827631536208845077082906496439221611869698517810521198874152245236966635633452243655576344108196581608074213189384091992058622793748224027461999100526982049050256337221422850171474922063496004755308124229623321110448613461461887968524589990450815904372491218313473894417856990050097319052145240150058641559249405772208084970793049691889224337427238395648747222511619980742984812561904407546854874877797030038314828603244785088256413812732129145902803225016650922565338071423360732074446710920693921956458563352434638514715081716394097643815610800604842846480359854186977796534930445837240254024365788546219013804163884735095435079805595978887852747799576437686647280328877436684233423029583156054862969946608291174333735832793578555454970150386045223832478785938433539531014067301276837394153690285167515746508671669964691112589900742745956645624489009447275057239621925958699916588485467138169692515210417713143631718837232958437625287663032323488301061739482465634702050877940181169500380772993601858719316361780377943744174573553897132734035048555710251500347601502396591962730348215726434870167407131107350401729370205491712468129074277116834292170306534507973488116249359848665541371518120225089431822524560735885267361577136317962094593469292170605314653049327427638956175560896894702470532023339213138074108431759514287948071956468817059865252962161748597306996110777166597635343613197505331785182994709801474413924001868647867481938523488281597416664210290580257697258224647530308975347275534634174767427711546009787729719213204578207245238878159662962749662495381950658733272835253084618104563066526553577635747318974176449137703571815008404213218199728392330460258862244469506847788142545648846864177491897746237978486378241714533588076635362916675597524273629407781590523581964407775153458496383393871428547370501352716874529402953570472584249074767656946770848051383013525486122058947493801760552827744593762034067938945640077919470981091853340992513889931819870612316058942807663831596919964235213073143063043198323943268053060855257282617435704346746667442078470717491111102787596961736718797890123790552750149676801796540190890364379605295333180969020422612574884304893913274108961647539405294384694877239865227914529902473248254619301753795924543291174093556989291979710162065781629005599418912133202815677970954386062764708362252214594494585296969643525922668154145973192867599835272262342742240100981852225277161876078432545236870943330920107088919787806865936587864195349565140669158322018314324454598886087716553464209149671351375255924971757040460699940209033621553197601247664705010173289959576559978579186158811170142855840792597470355146132826582947501721818919061428253819776719064834470164942693822461547590631409720040717768686360126177189710222129323852573978513714837930305017384802154745133744912276994307982980916146287031068983356791058094155878704264259302504080662544886091255928400535551224695201346214114064228181323210609283645614164279088757253249367027037181296946743427887734322184494597579634970496746469789298487199156033930776030405233371436471578047198634574800243022683034476456947225753595320997916436860435788011593958004509048913502019087133941606855194375139125675581138637536074058933179462414061347967893674117964794893952436481837116813706939022758205338244181908480103821437676480147054319557539342312161153919269402211212494458349320375954267883519468864122733648566618400068265514769894805028592053694136150900930306566336775572198332710103883595079912852409623846797079450534139764187645974834920846482534174232945644484920449364196698543887677397001290158216078461699543344261151815162042324993089392937123450583425411267630190080073225805680785507785600959224962316407427412903647558576942540718256636907203322280302521274352764111425260574709979134440624886824177981184698859705210513937414149262791576981667157151963165367475269359534313031479735849939487184534195072018086320991804251229594016168038297893684075181299180239843840246422276767874696319970498602249052944393876214494686606607534491480006804977746629510038404425666770254283652682040991597200515526723802700232937945080925592697969200886239498902283833183115777893388052228769984261155500571271580248350140171298923190063673598755213021206835233581776906691916158163550788129636716540203041553269204379502147894706389882909800990848546423798750824946364121116480155331768873140742636683343686802513550649452610904193266517859459710109840220236167722411464006320026802356091564797528406281157443165364428008678890134816058130124130608794497094264321723176270936183180614874832677811612606610477247510189541576292728751838700697709246172893117525380301950729227196706713371122226753532315824936269380606434360560930558467705032480880693685795374644884294916760489012688408398013633448990944908195818640090793197063960556310142833481322662546736665909059149380598702382437836045667482321002704153931481149709070156008914605997371141320309365917053542019549697050894084212275449880292465058643842236000825395354126965296294743289532399227682481590293738314769595832988664326088512879512220661567314354053863118877278254509604158176052100763900475243918774364434404397738165163679360714947733160803753921896973241811308433417343323741575871487633662821409283171584034284633372532962834453907122898361273479273064638151477501328124498042892935488668066754184494678682456637884564189990265343235777073451862639244923163117382522413817223353118221801223099251307544251659665722069157971752670212250729429670003656121205035627054790704616403571960044383382300102103787901573421174292140233460972019665443413896918823144270643730076754967927932188417386578063141489175647684957876546642466905178034311798677851413334284189663748164000931571554120965741504224607109215287167248048887821326294996332342771515275607421765703542770644997123945200505407462640911749661958875052339414712088213036102240746525838366433114651714537658076990739514613318706231652264317926318291712441519938130743280293494042068801456435976490975130739647760322463045639829539580229881894551536967199706184900714750328295418786213625276944067111474016552494120961814722686263487470707157393298474218807531140918958208799784654802937933226189979367862934116795783429900489581096100056541233953589749485450354149414502570559372789661660443792771292093838049201983531225707679802300643342715695574632972944361740532246555409000215527001781632518917382843678938025956111768913685184349241292278057104086482420470283652044089076061090143082759151034552364038349413094657476945015230202515213691571050928235283862731993681217176634983868796427644949150821967205810672642180709770541940311775663654177911433627892089717682731535982071695447133484287663947283936796738707223946929179188878656073709032144917558924087738329824592076592498649591878017776840420008778528791720035231722865915122526125677382595544620639719139591550894598669382327689679047465672134627161752143988383087711835657782166207865717301656094504381578943294793300245207216583587276141687481471223092102487288121316786698819105433705354698871830184008181304704180466023423027714961373223893672343587527796862889643990414091768363668117673895282611055000116082652181250974738261299052664337579985999430574573653045479876002967989681229156031490210904136553581099890710541834325400510877605441625790871322318511860684151951380323997146521715477418590014087191392500329025542309868535206416059514644689205156864852860128132244132178322054542370837029115269966755740026772992023997037901982326035284471906174789529062346968554479601552578101494847963874963738158763390309353707358104238833216957868610541697029352654178220900987191069736218840131508565083823032637711326950819926751713057663462082648320368435674110049577084171237870502216919990176322654175717839240670490830865204596419133426918743767242358741143273231398258014052688347853680576053719937300069959657912559678640469297036134060747762943479163118959841620432377756254778984881131248060319387663607064548153742320387573512399719283451246302039525908849360613511309197896358915050441229494518476520601180349953544301050916593420642856783206279320754662425224203997192132182132180920811316973319767290334228526266089836288411828359982410169779230226234926236282549994447471583403571168320069192574959738264568952622940321467156790575520029539130505495244798970708322766398755577619997253108814268568016479356278961338682637578356389062694022812001308954551289245395435796032302960006294540311210882323292528139449528711557971145013735462008403377567288359110768272223059361886765276084981072594701212231469014229011993614061131664503261708090818265835979434159481235479001621490024571650714036403294549891167428113547211698491546033633687068349118712758957827274451933677829866717853193636216088133276712762311010398010946348799919274025536940464720205398844362529917913461197466865690130618661221397562156240829672736210235903592954199383641292235870164149716045791215104328553527384718693400624340167364684378206336646975883005452632011414715721260283780721253356605212384659510825297452245540557606468891164727070422480217811040262650665443930801872459301544268041047602614086251034264460763215959421376406016664140504689404154614877957031291874293563081570724466067847519728828485579908994263548042131556594273977695590439605222286879942720325060138361176184486512771419553565824062249287813662745466681792276488822017642969522681365330200468169141153309502164483418317843820710306894723030176401163575813177177752456972213197460718542500378215827599660585077686668171433590401855266473233335533515871441690073899303703306450831523674953693531845814466752240062015326025116085429958423714787145040680339047133874763952346147994484669009073170664276389420884604261151696991827421956350822859925269692751651460078685741676434157722824881457646785300240765493952155814887202859850256006219996647290793619130430129712233121478344200898624652629891054981130064230458196939743996864638462035738739327429969083894750550025163164212698212080275257384052591486015617089763924880198679033555889517836848806620585050233969006964438922077047697128359127156687191897065844141924334560265210872722446787832789351381834371644205234898893789734839318269339274137518767084173886753360505401411231161865881077786115775059206318713972613683493411152252545085316842682666655343813420187486145699363025951600095884320470475785795602026457468934541356956385213469508412697875875963548821305593106736099912735167964838550648240301168782050707076989240857627657230584927453361255465554668278964497070590417338134457731252138288549499280597092690519955741508936201641304941712071835126831540700496104029659745263051534488074795116445953211376060559510560515042869304053648034608790385396652694329381838281873608568191404453050793502849811053411467160573919800159347278608835478541724846376324991263079757135891294107075603772152587017581811184726624462452931906915624465497630793446657205207324881076253342256750799613094513333657004741403017922843502570177393646670106014286732091186818107913156564431642498125944102073658462660193449570820060574423502041602712884444981393446430875599323244661188274656570866667043499813665064948369978231408091896143646714020578906302041090908078545670799532852890661857184103660638989668035696041437722455378268746732842713665080269434300892929848935837235349916267304502362470091771165744303077458540293308604920908983147859411268064900860523455654860996720553125740986644239205979837837153554617691695177204202749207686090946034025795735127231127583621708739303197909193768118541450713323432807229931227044114631705181936606905944718349017934952004183719361687891561840480462308689617894484806614946681545238353643921534480659840109513543963856983677408744613789297906465821469446958673002204831428566574389254522642917182540853239677912682377832197571111262980840104681810398597176484773270414651992964749730741508452391553175378237619771143201563591583189949612186259891757861205097223697776419635355736222025840515261802063469470330345217153611425342800556024997879363648170775436926719424505968323557303991080475503622813922307136725362676534206570901327337318294472280482279437641288758737332752128266280352885026898808630839300013332621502605619756574507549263760539866548451996210343613068452691773469781452858902764009299046763904068420855271312273190857458923070202288637525376246818078145161372385293221820822918329069990884087070933103262489075246069428350914834145410749764501207807143373755419085008894807996847789326449164261813910845345180356641786931745494433622464290337907684221816427658418302501704252759688513356000565509491164231059103728862884158760957600624584816919945768383597960585206134750623851806862159729517534090365560947564781942736723490477222577091602436230967669846761800104011019247229755530937981341661527623843396699229174442788342161944288804613427110069486511977669049708346072984744364588745773834853133572909306593084005613437135160937117424404335139889923297767622116407891765844111348078665702858793075074463962604442902033585415780621413011315787357462123162511963992794981137844184770625739996690447732554507597557527386192505720453393357679854452498990534142144458897052111251541724258421886188865352799380612713809430992129639444317639413602276022640888948198683977331630278732934913173380201368449652182979013178150820337673514664263263684155479091868871353251182048706941330553762510031273070661676645788337497816057977499882129348816151560527915004524984639102822709322684085331672820710206554818644477858221153893307081850486346282667676668123340479440559281389500139361096165750553150811029026263112971195653856686239720788715620523835409541196959401651737045427432946373603781436880047917131563005990704293837202943860984718128123928195989447804124411822601266158651123105322126642793330008393878216627459742368260101608851036577696522271668240917026702161713645716886316952420553895229590925834126681512418711808637700062427443128141623509590566348359291453598544025120843299037499593864443442614209926918243167933166339572481895305235362444551498618647189684565401383833499941741398969921562995969635378640112937210728148773341427564021655760458152607590350681387018468234776638329504805620480984272777521018486190145677251921166159396178058441895714471242408522603777569929517804985841478809127288931597205621047549233369833601007590381651538499127668923140614142609904757737436719842297188688184285360269605773893183144794552443612526622980375095513045056966110271309866695965025337202465545590973550177492722223273212683982510463589672629697535888517017771956248582367989956811008396494183313552355081522130291674268211522755903195447786223096947899671239628711091249302547953527358490793041478142615216794935597710714245006161110481249733505292591030693278864536398270610706835607241672392384201707796759186397685659311825684521847100944179031186114670150851407625381932277942811757082398743361582111477539865780225461140224069067610951421667143933193368907443767222675626156138724499816583939840493002323680107683114895028348929607106938457628967782650710478213857918548349930164587250086661480863269152584212961558046744903739386394572159025148253603873746747534076122328553069096505947029578678491922909795919856173460907556682782807156036711227552468050703693085308941371721847304030651894385853054876305282487676922847631043844123625490967787888253547852806588851082614051725280806024086185626498724351225473959996122248047001579635338297658408297841563079585749374739688663491857439332718202484988611141272992042068272427448500759020960786979325862809731824417564010613537464072844870810742212842092045639846499494333910564149179166782190163401228828515077458720100497310222615584917680324448494436704396673880050419329606687843231046044813267748323680718146693761223391816605727833694612396651608447683888047629179841447941717312275390307357880174246193112349497716804171824550880372715770804106958167651878032890848830170042408530201360578295597310855995475077611367593644127230631213008923936927686794784465000489288891239657640696153263155190090515506934527465715253986916810432715636999413762947884363221582367422978271415753679278043444449495422801279377828484509701525803926603967314811372674101943524001055947460103776479118352871031890948356159962938744144239672139798740358850733691020888943626224165094476716309547702984546438372053234657974905398665133700086680563895502046111335619187008102914525443241632798386965037813046497179673229520394028781625802506731908445177690327906809924636221736399215532180962251775351443808292789682924382092716233287914218582204192670114521191360717413133796491333401557740125998710955733437730315016307878814465007743016047402934930441216355675348763970122277124813371560765443686236284898728490348167530488259930792008696886173811311782025081960365411495719326970882292308229236215165307809077518597218618582731224276417270595597270237970237285968941120623405322068731908393073347792351213289732914717685527091279067355136255767451504113188802361703380044657912632052640240653859512940456256512746946826392493805679926524731317143918179694804530848538934771539268487111393924441113246383190508214533748118862273830796114328529842727460570478621799140146220620189925669252397912129792084339178161226542715312067756938993479380756276618560857692065466713675936313248021600137722789084661531836056189115916185951830588696817109172159098482718058467275370354332109856594578541633331150544426826938324727130409689762406345357157290510835443475558826916400919938990832296515576028819650756061141634876995234179727488737680226608598457980101060260289297844612995876955155903980010021855239876974926852953160592554057656944776714332065563934834394312462223167227222202282684557645895676091320034552384357931055258219242333990307869110417281597986223267304835421626053528707609831123078935774532727035137625432434427986469390887559335197174268528597403864781902767515612584756986236648200064317321141657111079154403586926127521462686394615385782179544455241681391272687775919050803524370414812290545050571920813704241038226808340292357396999172434426275805992654272263256069986509905507781261978238799974919079503709074901882476074842670811552021251433036660079496103315677874865454738973884323274827087741169092714375260462803014035167841889517100501853601834004954861926217897577738286208240621449974943693638320762752085337677700070789490053367240620424826330194420649044902645972190322464993161494299676422595231815294670832578325123065959789532774016587349164665398310884924314808719126526599740536375299015614173853572710809792946566433159841182723829697751288743060033582991796806466788577588687633863755987206877990178834370532429592497000306471651149281753624231603487986603319942025437798402905792463151167745089091477213156483678094030081428499176988682749579445204520784014218745659711610991707221297891450368302749141362475535315035343303123597565995921171466980782338703732952056213155902261864583866015510030554862758597592486076391092729881367881320202192255554780019062125613063474047552441675555472335574731461823544290005814051255329266448732476562484229926268818796903945317114963159075206330515312823348842405649095957997193641390566559400532670571293326701658087057163765786430742859597412178884072835575007621023221792020043807816205156551483965933985464925741227692619646779828772978947129715908738792605189021633711589155646220661444934621431010566193061338988765496971475914718041959788130407790000571174898815489278510621425688540274395861154085715576041675515352928028308031102542616805484433281135273141140228968993763422254912903433366546688768372183969333628770211459556492667139988726096898044644532404314397271683727801591044391993845734870743054480260218530727344942446480214771103865727250678754049980415289063793101215749898995264048130253638916114827185356050596310754109149854689244598815583057772401608779282125978083675474243634418497708772610231082316739395043211286775188654349168449009211838130658824683402373988213818910657470005023864702205090122383142095309767301440270922787612215275594628918121846591081166964921112438957609027228332893449370618637054418070080137842887909611479863856876907701292425862923697158094249051351969792034361925869770088045869151231576473117684355120415226197466337536378384136094368101373110941631828293081293461117145718186508893442128922574456371865455044904395815402282169001056012949998032448804861627171622643620173827695587621622813742668446536549002967803932177134481349031064485842760973553880893609220447231246092265325691244989287407800543424680321704592173445075402815600183524876579509803855176486917861894729798434225563619641674294562629240735684835643932371873345707949539967182052594956960678461719163744303573622811071015308259789562083147623164711640606157597625673260782034303502011228069921461451480386956341696813419004980289771288821324826541533637126886445814714238727030287294050683084617770488175698712571722110346478434144028027947187152784436771174485011342832310389257106888060511032525989238337466939625278232010279717361388512207281855655247926401216477410193660728697579269617386184607336025598172312314969045095792681245721770493523451826922792788595071176743351312960667458009845526470314366244213727465098784868666348063399413442648125197165938155777395606940119687039119811383092783797694365393034916811169932131523739218533832719336599094821025523131735378770941787321103217165604933542359592895309800534146385363532284979533923954422226563680029358650253103924368039554774215290846365348083310358959539260527757381476907291198678547288337728591611458454107473547962570855590612136538922171081634333036589387501760178435485617427982597308892438118993898569801587092765440840058076476036136576774533620070071031226425759010665417568169669760453351118540174667234694057187056597736597408046199738423124174490190589221602523788684780253805109119631458819626301702137182471422938250899275179679953537925476918881507019698628608628874503479500504171986493355220228042413921784704909444591897014254876204054351433771253017468867820915216542072834915700323605025812782028674780669592779988080311515024181705429289294027897429733379003162451437212046834329297491266351377227674367969950955092477938707368186026644579145863977958090311208666407724212884879472009563557625930755888315717213325081173256915676244416619613179647975608658848501433027152305123742920653997540525556725637648046317127425615385606896331122215875893924835434648037145063903709707559620736400339982907042138571270454865654696830152488406934878643141545128841769674819825496144005915731784284850290249626170905615413740481905106122188078503478222636944664474859087428954707453861319122862063043036492408608166455986622531569136444723859701481322512079685080289457023590925445587834230904161881099431361493480022988924391899299000987985357263581933058109359324249792381938969375861492275578028722746665426226783346109141237028325572045502060824448972320452206515140356589976393251073983768905009620173631886505669041190308189831457350561645805559076418711679455886012563096878374257891212216088022207164676752033518892348874508520703321419110443922709677729924919631478302084759554391168210667141289966366447729241988121712515027170700887483878689755640403585641791597313889604816133163781161164409345970561131740211635910489280381755909260626957290188803807164914234658601668524482419676479139283696464716518709229994236123001492947139513964883457254073497364333469947281408592467055120706673282260838110656073617241665767828930568602268981718190335097040171399761805812637128056501233610463505877215832952589538618719862676268372358847317672976548873754802651418525326297314576266608863146580910827725089230201334145489991814530183609333667394649827355307169713475191348695471584221200374671493646054841381152707318035303360911993779101586192760709510476801057585103481820350586942182333730298011864305970534399190611161141184589982708306648720648809467247355957243627754960934572387112695337718559088209633589658696068183382569222672836504115356335604592636216979541906213380655855537440974201020955015318535176302588067308268275428807379882583586795986417820775724795940831640219833260668766143657137388687557904778114559692390782738415174878451717021464329802534849949538385398004869629146578476731718465105835774418477448645380626450939954211579445187263121705361018894421058889889688951511261202279386656189992977739290772187190129000950245721192427235089889219968121674078619980142082638583186175426296663666718649807115674569953344467624244477844207066432047817449507069770433013433832753713549226383150361016362131986680464028748168500379918763221027708476201089904287280196812056334791307412881023280472965150759017323098774451621246983145494927317073250180908826481529781636732180976230181667577625837820970229361506621436969153460036127763306444618272670628151708472430115116051670282188430973154246343842830301830438818930455793227761532360067286160188003465144726420158722523418514275596683320711311220548523964286762045043637440896740243072469313220497816270917150041977270703420377081212117054065056211613620140667686281340956035228225999896794849765306588946780956324053070506221723238255466816481024436742601306152657003499070515190286466575649821371972149879158177928334138244075322980231579084388685446852706006346606370970537468379604815400107464023999709586548150962352778505309765676178053588788544002260558517796296761045862487755000178297406207234850429145986979335568028689036167161319137396922791679302829186830000968773674591594947659470533951635461961375298808573368983450384003664905707777865153368296325144643316110559039435808391050291135429253405278751741844734283259018226266566309988110303216604561123406905466789415753765200663863930346032319737234284863056192079224673541926863214037039988117317441385513509257523657589619258623177853945092031165810156259257846513411008162629390958275550483326934668678418987359617993322295349327390172092006173907178587099628865521113128324584390414635193651705190170628009542019930215029824587583238144469315316830146749400200351651991757318347940319034216557243197740253386758636080957393169807948094615790993180677108212002564926714084824963938848055184149246435196484794980232933701103130240356893853618947843635032922359659591662953546343063991361443037069838767472078583630111413239400099917464010653586391400353712555428491181163053701740917331105097082204821606590519573571737003352527695037735614724495765342048879720883200406907833390406666314575486939050296426595919649113621684863673351536073150394107651985439091212894891516134288499400046129344762011765255627386138726552655467589463880696300024852988936285854919531607487023236624287006490491591204122347077026386797674232947965179453214629146531154914012572039893888082773424907309152724515506017072106148183679949322087265937404990264909821540057383210437865917252195374014024596239043878717931864680849702189267033747017215846166836776620149842644153694927792512922999632591236729568429675634593452346217464537875815757041478473170493175812097220026826025769831645502375461359122209091503819066198189504200832392657977736815863902943600473559491589284497732646512377060389919933626805603038447588554295413372355094000542488549248559133182459451081302068172139779753401238733450674963710864160743179919398273458151238476861401288108256500076543166291078353943737559512214489223050720858251440989262244521761353506908940073361134730650385847062610705174940964112124124994476531241718893218872021590343789907702543051093966672749501424593123821496992911163537788949646601181308662847252797804624871910579108325940299225901636507482645166941850386520225308550281745515595029523687257180472107093796487962027587853721320695246670073365471879510433378536681488843913995460688402604162881287329407596407631914493194413088614634086358936552334612443242070689883122078129813594265043837325964467499962094480555816812408476296094896080539679178954524784595348236046686046466389641336222967477386963642994361644597740513336142709262372176106726434292108228039287153619530969860080424789832782982391871250602796402082527154346461364377373339859919107845202606737481498038326820145798626262524346182038489084699147877058858648581871103075580506843046106786373241424198656709581262949485397242027595526184650623621411950978575387618436530810439806310090368376348181237318508454672479992352567796671385344235806524959235286411454153394331422877115489504253734351985755241055003888896391295930238645259196009495217673158992272092618537795554053509495983086383464367732236236358705789118609582935897145132541365503015069965009150440719822049500410680017792795325054843454211657265377713057884211327622002198842301868254353596426647809368351923110588865371248495664693097854904156233541538623257784021123421282745766005686569756346867101196071706461293249311465063088955955814628844783741122197548653028324454584032930920867976828649631084545887327940235096416387010615711725964069078265481546311084808368830941891821309762055981552818890586397557724634196218710466371122041531515630863658982452030632733260191297917207974038268635806875850549959511126280602407643796379812134780666338360393812636179906881394013001234101303454276557783523417998126258735847760234650495035033253540357741395754029929232227498661381544119666911676878467221790366368139563954662393294888685541696923582024418530161752226500294794925841829025248360786251953515213674988242262271474741693152717017829756267875682613544385224617815674933001344645603145033200116371851231091824178843642476563119506308401982039419409321602580475103887259886209611750796196004695262510930394495682688167898523882920676390786433627965821413388723194365561399020660312217802489848648688618362743778735864024177533337299152015143447249607396862680772421821373145736074380061545230554595187098743649296302000921361056579528286060266313516302658545584579726746620591691176617382552322719874921874291758344902066710044663606839386515650446175508112822414059555860733427845450193040134181905589043646902085547868389444592652429901265709804866268008634892974393375697156994494088152986667463585329600256481313264439787462872409354885510821785156026940332917904125470039148684803900329201861447195359728914449291534396698807174318898928448494591974445460228610127720842627466621529262550262749575550981330817022989344048656134475862425311598374510160237632420350077926620010533487139869267662173554722451327149787523753884498704560987482256827878073747080132061629632765508306513394785095521001948295050077599405356865738590909059152563397380204212593572548046466805792613175794563094600815011599485023621884013378322667303245489652361947128167972975918785286519459736942104058219559042191696925193760688457522245173646622637529168703855648941297136304902536366919380597305971248922391295868718566745411992432908316974306692079171236851564436174431079368910224118928627728850809265319449952760963444820611590455134105123362624520812980604241140633761167933331968262486242325303138246175519471274501211706168273933031578451193756842555988523560365901148335096265201886043364293262259940729500966532808708708106136784552900192717396894971286634303655762624349119510454661730499635501995047730803303384734953383604354455440758847815192802766991961909814416630064734894916124456418310526297496221358682425203614752066669052700865688339982679579068831458366478707133243821603841345637780906569422833526734967610582404285232991710888900218595779636764189122395536511697971217846061613275831258628620036399243937847343795924263559976478313115334004085160846355942074001331613188954561397740775321674613427903836517809453979644455118627674674365958109289660007467025518729056279596946311594843762608651306153849337679942692869315544457348732340549657546783772284718239459535731507065425189678446069844646523844484192946150749925331224112296817494299424920884351554113600266023436281366728353225481695105220530168513084854469614221894591295442405597954536504377797543939512989397102632447358642639188901975118350592263400124590931272178489797387477120991326937902597235906408810492187798565517699408144429566769484539027844932021164746149308042492778937254222413538390925067651876285373742084335107793272834186434552421032404011859422723095550051467123703172741486842447726760890739647945255979357886208583602921428897951795906382950732019730071665783195988732590059811721128626606152590115090446200483951816350942785873297382698973577064136674871295338910181157844537922080570648682997451149501801117746191306896523617383980333620242381359783333821463568457450474066762888320919273156453375927483433485370771195260494914170670572704641909312607687377996518368167548859496559936589643781720512159237538938372798758500496545136388232269950634690375812004191473113734717282973428790115749485332748904879443997297837437640047589902730469524084323517429387105147352603979138539081582156165893341870269408374217258651466332748486139514215371631905020475300855899111428987964258830083001995575690135869586672662296661603353297629452295009962696359290639750869932909144834621377383590337714962824676564141337194671669098675550133180501159141722754771991791311644191154833801967321745471188732746307917426527496917593348803495948047087839264271694265168164670647328050751125701860081527225280434862301613982888421353333489343812496329055714895965595219810246142930993745252630813756163150801730419749877512625895618256836815197976855613196641530087279537831519038863887832728248427248116596235315382745890614576373747563694883533457793939989605921523342782337856005357349770444613143551313724463341013310372596662346986483797068374708639387959655233358166263741097420601095807006148354813256398194406133502341166417863103890903348317057259181195101571913512141621608899173991736445933999890632589871172348885659303441763137425479268378143122626726773171636909945642535535150921418911330848971446995267690003578546655144999273976599644628635413763274242226334513937151984990778815351468582168028630582226242943443106736102322036895516459758854559299561389883694013784607323226671814773725384544697664172486742056707099715305139681189742355762837288850119509189688270752705050652661880631367471284004587483513250748686204237346548001516402405897776426362627197682889135903465163583098341229404706908930769171301648068235264615425467175949625315588152942689084045815626778905667735997807707227346635821419191592144056556793170109852455749460568591937532117964501547512934518566898649051337409543831918766114201759552061453373485163994173215487031604084456300866514714168137591470447242551949752511427226045170159449083436693276988390256455036196554731702049594570276211910649606328119151847260547312990519772525409008875400642865817674370611470232072228145866826023980287831446660377543538075983391931038879203696559009950160331004454356526646627445676225318285833820457413738820746316324522439382343789298328476982389297415465545565694717536453260932184645001661877114361653260517439617874484345448668684779032484155858026052609380286488423119357469904553449013565023692074694844225299616471894087683620108211708387294014098494184841913126770248518951886130032704349218511580470555721592684474508294811079143537356325104550815026156708161871983730361670077390174512912781082999729580951676676504790476151849193006925491798529734043756454524779021150792302435787247886960173893989105893662219721940933290758307015725454354649782864523958751661415207626697081333730909050120827325800084707580223055646806370962026268286436694191427112275173043265864373740656877959499697875742812427293975416244918448123960541205855200912612697044386133864731776375258240979700617189788500779464617584347148329251585017129146737705379150839905807261847979665427490180515181576482187637451571392345834300826876697410167418781931391850957565952971627235936380248003386856699796626641800867855335616413472185134891887589205511491193403304887581456558753094846476252982115449536883725369873459772443969448845608612598929885312890765912036491045445033462044700876788452891313771149980226715968605556616738079488551395308619160544784212686293393227200680965828801444954262315312151234241968286430270621856128017604056420791287448804500784129891273734175454883347510629385986384445210256859385475393682688699108884634132900393375844435677049605622147570473845238443845830742704797882705529575714126003816826776493943394153976928507995623567468400014096617160924609286222586552744457519834644242461457132715203240772167966563240464846344914268617833423181939673460097812473451494470905214854685708560591384481071381454295051222934327902372544878533391935617711843297998995171341971231154713623829736812933258550236773133821136313446857261901566361880185003348088662949009485176291356474632618757470773433169175590662151725333750665311396095280110292307188720948032943229233663492751810644005560949685324706460180226112365806920558843311438636334454450374573217093545474503048341802369586821613011492847263082152576599189431054372299551293416967760759051375751682999946404182889661469395868020976631593027400391919135658995750934785858358469325456305377860670545360583548267579765348097250297837625078262956970622863175906233174718738516789213328016335772845743438892955049906200846831762097606527588075939290210860233785792297069017987393368449497062311683959272414218090882993699359414062043269020419500453362606032211757642052776011110839254771191659715537266532240362409434720047504520734819571708872608419583045190440911095470129605768013168321817394741189283099467056913667804669388804939422747467993571393065321948128930001379508914564474825792323843581043551414611496915776168647649334427470541123085839779903955809854538411833991225718653528533387968869473438521688132816086848352013466252952164498966132855531448966008664093361001213828017595532338500494166110444581665282562594927146428991550749058508470133193464053612177738559795574404202793328349798883313582918495642408385305039516123960255732613472873263590621374357304528522801883590507113735132369473382138755279403204641532974413054175149085340351167655572221528184284078275258113173254331628000213590642166510723124905306622514421117244300342010911181635795338199989471676141047060389061925288696761704088051610571215644653626630461926220601787021915944646226186531058740674772901518406033398694879771580246702445968504716192302179478571769134068259670471219596615062626745281773990198326960180069273231157195933548143740964976590879744516906559038376517943021130248467514351259023356329633604218892214305770951530407451150780565684459587188519099522430046585433056593376351179540546288632397317488328889598258864101352531807483083334847702440568549745409747184755867131323258853074524253805432107743989788884664729237526076688917924853182469235624922039057960836022720416122092558200266721215629982035709025072796654127726897129330315228349615376098110276247221310839227364004772131019597773661858171347459950876282502094311473693461481868017307899459877691920804145217179139114073345495973967940072371030319794004499794986046771501831623803270105903495609403581789808661223871310076102399444997263396278542166191781573999751655912950965887162468058429645713613189891906204699144348032278259865939746272159365166555247293189249536159041125612206316835474483758866350955372205036266933410920995370267258348806521496958411192798511981397799754979679519005575994752567199566530339822108382609869114088536611293855509965900581172291499284175824119525047544587292314098553717918351867140461157999013776340836745468094464522992833849991093831062122365352733673343715797392016908081838124992030543251721985620879815985788880865973760174874244687124974253751111134420845824415586389564776275400183696851137773816697549603974222492759977914080520945240655492904722388166060945428886609764678996810956727539085593813482032478373507082292145870042360174554784941025661929013732038648670879945776854118371261854562690895899075206815664323377276007602577491627007675673860555420038315560418103344526593621198832606682013390759002817477406575627062052913949859514233114021480099417825673145394766554938424088966906598140251306500517383035667017846416741928728388602729275351511239215208350556031800132474692914788011996093805494153934893376297321032016853165649462709561591271512604765806511979980381276547941991950904606810761604041340394907808254433064008377738953101810579569304019108062989406005405539536228006670431587641533158943172610411477868796795107981802862290710924203778230798684942841586702349002402730511244509951349301797187243632410329199722698261109019609495267817481087841396330732064923977803226382126731432301213003657607266887290297188369220009700831819232570034734685765604262185273835722415396246568733359473073529328329858888539731636933147434141259322852635661736792486637546516629321575374719072351430750849328821933866743312427292618758978546877356937684383071250242746870004055697006085278859680371478928241056570575165785749274840143482790027106354580685741099263681379638145520421887641465332905879016633017891892133318470995440058704861141054786592838604044944551945419907797053117302643559169235273507540275011531704314865675435934010935090851323841106582209134373952220842082029670986130334115918309044868477587316411753205833100173658897903808823734777588259252846814726123360629919527990047080226701556785302813316323073399059375996015207401358166698656246057349984467751372110429437508012678440302439318421463442706246224800325294353943097664211176808410065143833962142407131849401656057242930161850683317085929192604174252141700860660256974583728509977878287932114890486582006375945988002130455627818996270512508613681645538530448481465354606113557520218545158475980226218215164103390914584356808458594247865368590872648493525607923879327493694947423605493865050697045968310717546226822314032522126289722113483686207699873689780647955320523720519354077958359259078041874148907152244306080276137051753784990972632573799405761485085780147643748524253099689099622520028326868735777742543505819670623140583716189861476811809707672756075337439732535665613397425749035633258763722210013433588558985552989030680155346372673168524445037523054864806761273300149829119003081622083492513763446896554165880973408865934948452321322503561524373682521575595524366323095579966259498724510481463172948651989210753014788937183342971559251580484835578501031062804439480396930148749448973209162157136968940559398958589993693509530527266769898684418949015653908684832346446886494942816934917654235523881005515269479477957960911244901983922417011983544141350238049812305881104839039981583865378689132673544394915549295475711277000659772980502083303041948210817702825962827310409091478149817271524145936724899079584359111704049094347408287604539705468603086461244117546230831991075694498212395109452230958623297512344678488242398388658142457140283162384175978505748384523129943639963836295923957528513410979702410234738941479420087429872428892078296002570455295354553644248480949935046827657049999546569732838233414796237290192617769290772332176457829341375799200507641167762111423619280098520469473348424316441382923496837866846495251914433155385301740833828521225672857341020625668474518683860623951354380542971854232362539262965323879060393960607620833955241969752276108066960700858246550292168827063325971880044436820700315823334141762814335808537611984159835093663366568030359721427687240489197194147524422374385032480380667335242267766174351137726842668368265539675226256150618717474997473230288947507213644397011499349636721515334664365195124693951809283551165172235198573931515833231153693860221795551398549346549177735268552768383960825991776522286921106306374903300772742486609564461218850409801428538065392299063390850337722724778869326636056204988158521826639183967986532278407681863430760333541740341319671439699412730654938863000564410600468476738426119211823336864210944767098255480768187745325611333831415182869253267283667783667339636863603496750764324881281489721793855317935712169849413344820827048509388310318696984170615555887180717481566368478008161973817146858098805702434154105050910472023551479919070422192364698540325643206545816043405970408118943485146949827197929786365184232928113055541883237709357802627505254543250663899675298374712584249582706746852531846039521443477850474813258161356885821875335365648809020631240642617138429679060728898283629091029160208096822432908837331000119414939715352626754269985367765098487867609364611915844075327510897241261957672972637765052673559309847280080482474936809842881983575515040204366565271703624080144204327596395047246440827651931429974840622785334260118080946703056209123777259973051147674066163968879727620602920455702768960194758375699542939485820556392634642107658240908488641143700227386111613491905648820636525815597538452280570303877413558601520528526190400653089751725349568974688871110981942157932536821427441027992998239850250810629648681826558727191135977135756457536927219352970588204629602713900077295117889157480674452930051686569303618479175695195844938756414776632489815843855562427860972998501638262178993905637785121113662366162777657629094873166078407363243364457299231806874186263687858511594050528958374761734584672787536760177427279273798056241148015773717673824291051537637500101869010924858480064924572572265354593164867021568698900190268290775547762293667678684183480172176335021027617526948054852481891399200575531561617266443936337172554415517831638880640734241338195190348003029133495021905985207508313005344430625892513464544534040707261349363996809368824792234607620546608461371024975821262137644523466756442902336172990755467601044728948523396103275809421771799517867113235289152337102307871581259761890284999696919256071885685017115795000658480303986791135903484945785515452984012391110183299436628992694433975185338523899817358049783342894565668218873451497297197991455882916313078859549304368377299225159987184990406752621721257868197757231636420284323025424196739594955124289688382912966238954476358421432630965943215012281992038269330630876706319128565623513793627375578653718068971366960197259570661776173368349183586663307838695207122797401013147774219714838138368161484336392825437633745206696940588522837055309156418348263023529453821718208273491515937625707656522316258474179501246956648992261340649228715525262508327900615069753002783991411398346852128159748547626478886964383689654855702031412965183480123756645469860208735216858033132835502364236165773053927829660388233216970354068226581531776635971114213849218711632763886068363936357613680185724962093360413765158954005882171676330620510574454390908378926046327630589158475434832604123764852734783379021917299446587845587207901782104191063866432871485730257406971719148651356639492068296831113120023422636232521117843937070865946917681548591754370001315690642434932970653552647945258522896026599541587680829019381297502144134242358195541835381401754155558680373073798428721298250150033810827661938914881524292538305404746901071329700890282107346842455249702976834803963128025916112418914564946943869989383299436216856677194932398531127707509295958114157075894103844262820072876913585042669583042187477800947752288947621239304009184340634005782528527697359907782834135879214583967916664122435800461136179801626103018681163487409307592032197023270370107515816203973846199841535833327781412771366724466678505208635683279253789245092697697690888804887139434921774441256867012911217731476013659003273993572571120211716518367832455539033538448024093493087657739721924426421657480411919650051221689520342928378085191588467517348397748767580249875161884452471207677058449803257184676947866138970609401759702411596998534174341629208487482006878684642073997199795600699035457818496540232718092989857218277635250919336424327363323566935295243052390182491029185711806766850021728723061692338927843258441097561898675159858005634191357458595504578229574511389570760791819250661829594220788488950345557642073313180809361096595107230020049566997460680093906079249170577105405672616337421175276391389560143994217718067328839678786120293869492274562783078332076170012957838360428049173810932976614997982119273184067260399504097364875380493709731036527824722346177424604148661040216956403519524683737641237024203585632287717477561953429972313413204137109556148903418394189760628848892844069878540042571016090719836193466825147208000268438481179833969512842098834502241365824336326007389980784998883613396928570835630096640194933176502717327991007537110640025909052781241736297792308703713007422275065444417395141358543254548705252329409202276987905082984504914935918844947989849359645583669671488229575655945404668027905129858693561749010617855165936292161906277828872524512773976645249313137251695301684145918045125905750721568879893037456344649292792563011674428142142056436851305467960606509578549154283435805324934277925479918263179851967100682501998374864210852243076984860750518194178760641821108390410481574228726472095293726325604116082062564132413676560546008336042566283128334224413779292495602664254077349694613807836638014945169398384916189768471029116452876644931220178397526249995225739331508240626237727634918632424279176391356911110939011307085312501379909166739444783864773583232645966671184232070835442891614503292488441528644668872748533255340799564883229337462999167130208021915794634850639015143422894122509830093211349148375075759633201785882913934317881576759241039766028085520168780229257942943077662080302532898826733304896488987739337416446984001491672568120998383531180034962501526847594562478045364056391090287775492515844491671708932724199471397254982416588252808477629219640678045401090604709972383284169416054227312729355857273027644569636027886168212524914720320019688645172845354868073274558477049648691434043289576102518417203598818022212481704046431178935211671982634550959375338161922864801982164498163261467005036412806764789384703128100004815893349848609355733661774943549450523480240908415228681945136272947332435077678199259530901953696148162925891927260084036100400304455359526911717994025275748706706141269179972677938684390869684239733084488301041454215510898636961076336352352570910230860841041819924716015296864625813406823152935955136412235272856734779848673091490617298886713552706100252255630289374319579139187419371545719629149501573692505616617100061233572771449987513203962710773289222279088312497684450345955890270236589811240389598251890930912220443926943643590254402376077179985496863902773203971337360638028919177836039464031452981212568145475678247366988519757770562554868870123823665793876169134186890656622095499913402719574672467315606823666841117617575379601402092156853548973016209521248754227923036025021527504418548323003016375027245295706770440090782178288317632119118290210282688380015414278868561447586225237146379009878022470080770745095800530228853525686895761689994293438212753820044490263661986934402378532143468848946515452683982547258993731856448728945596689385579197934642751502465604990397456036061045588641686681076402054570503654008801631966444493873207909361847485878032749693775646742353442514336272123850474329116410999029257257686887434813640376441291889767515950008450635852209187603053966592826828262625680162831462640129230236547863320034418538106361848264069568668916374529785042921349525095694317740855645057824790316977645018359997818699223294890777313694420069420518145459642342220267798973297298244389839868646421652475305932263601904738328744795928331676640082202814127841521263218383261606759195469122864882253914373616321670718974119517412854982038114716232324435929477095694141610414337344206962097169859694316269808203822421380342954663080674654307954093057998667411084698026406665145007554442525607960110815276673158275282784915304105797407286845889599485657880959357628763514983277420863369037998079330047221840941422529114206133526455854979891486926146599140711235600049323359966984022206207533723265030828489890810372945329224647190581661038391202530344345094242938652710719715247614583715119901605807808352466715075848218684626667323708993591993442291920254532317647872646640501962279841109330145677740143221700471416757742025888271465578718705813329099300821840291341988250898818972239877139021512262440669438911873840473086580539585961674262131709904264321405736593372069633558175363716682191547907441639751772674196387410276663218751221373471849566731582797499374107912548341526525229933201835869112634486828180603568425940604872547864615433926113667996183058326109766147476778206700300197410148452609062372744425910989684728482809567405545918211605232807414024499343576804296156376594739537634898146635967357992274429688895624224836936633345591961643106587050646767127577000195548218070999347052767706473178330394040419533029171068060226180129627382957991470693787298300152065258326419394875878014057312497783446648164079240535406588505175403859287214460319690802504291506757100907313100462082247889115296974525271827049240784947985461298991321961999042652029691532265061888548756140730619655311014611966920802254265260220772092000255894903450345033419914590960119628613407769435296668907141260749728503471546034696835268805093504067152295434969674879356918879726188348186265718256537882252135649849378454721663241658253950063154345565217287304032746961283409431862722875399637637382980065521599810034582651301795886508479515432459063731050526458777681272906828835049426891887294613377705082045177621814831242075135878792365706058481711691562199864583376644231509128873101488734501124855950146480517091081192892500186296036927512263811613069820294335961812989071022077187860478922532970461247190431960118250346364954873696679165497407163899727978865407458608803512934290114242766664647401537243892260040555783699900740857775627744390124803884711977195558945796243047249254853014180662363433359079597351437277601146279040822530165601646398829253739223477523016599197379015114238085319015456398803691308498622043417365790364313193503071646509633265095821039752822852632823390350949320710112958139266401145111548047887640696000629856566541481515538393926653203796134772412819693179789737699804855468513287239609944640035685757172880765569606767758617669704050812765151975212966900321902348119385656749395784914476753592727562641792512992171480451609304816838797980230617897715824559381529408070554530118226591720989102891968708264003722090367758352829038867292439308888604255388392183056472223889427971953051070366917676549779720853989376172581687718329334849093132842161847751976082280489350963190279510918089355206569610491079159772276004599762141325993737787162598492750974913428352953012526119566209809708545810091670340533383223025176429432623983389937287524702884699295800233074689087484344215640393684771185782306612879849417814716451749051820791264380104538509844517016087946645398929681863844728700461820651987345373567130164325855964236235585293471414941299536834710079440725083371709072648272456966070219050891897341044267822577005883600645137139525244140528277281506057027014593090642994140968238586798928017375102257801056708460641071700861261908226805505505957697175903552966305536096650081732926618503778336754477642988508404614209921597847092961901700821028063976585579286925553396291489619554850301033801127609897208781064332890484731463489817738380394993960312009480759268119418965702201261546645059653808917447693465912751997201339628543139949245029013662549100053177881810200288706211443235656093218751577521955550468198068860696303578684843654697448191872720341940336064146347711220578269161849628712671558594627844130189584156069089067772582417322168211747511970248171186686283846838477966910254053759286101321555627698901744150577051246175860642761188138528736716451479898353689438380481403456193137917608495676561559917130892789561308123914210868202766736358649158614450125414949940535360940709054731233994883015962509244437298219640193760950427016165307274202635752211885876026596893426476026281046032502807838424943181524010815104109296837506197364465285819261013174586446143872395836663436007350112142095856954238309562264893747709664402747416762509068228186247552820356035814394035126821328758965567902031071463351154998548134228766320174669444491268331769794726559445987786997963553787680002054719927313742306819433870571622614737798738218186683594998500020479611692832378131318175293715039876409906563136688124330781379128082927287186247632642132913778391844880997132878565163556529075761651384633584833954457176319296279597889535810118663930398946320907828773323457385639692460661042415775597073374008301622306758796298362390770361016843423266440029342942745344640484188818950152995687892104910809787572197000073195201468193633325757693241275454123257464704181170666077197113734563766572231310983501730553256890615163781806653530468921382368479728749393629724105993418657944394402330735850264246683041871950736407033808561372390726785429985767408332727652165172950425407434258917707905687746136964113649730662958089903517340028411279845580092049908706866597404307605569019283293211115939684431030544957938427548291683709758739730308857188114018306535929732756725112144218733279440335982247221743646744410790844484911723772903813323200689353963185454367263191230286488831562923115246478781860354149045226161768202594742362644780486554887870500786458753104946766785368079671411619976826371227719147076935736847594136563289921440697625266183528142613244871474580034747722302984520223434035212742340672741040619128596285516147713282009248974544594728810526849584900342197748405017501737859461876470518609959006561452956857014744140649800449511819279883556607167492509775095600742470226662758842436021034543409198513080620098860818604459058968105655269978816130898949799636000311203129889350412296345965561811489562656911033905980148204783824321319171645118310635905009863299897025633340554292863621525953479242840110119990904490922225678945781908323897427136673996491097531299204078503283020302887474337854884025022972919348928559105954049821721603459345642434144663504403105700460284873658009306735788204690382654248725790568665439264400075217532664604894524590016884994170633204658091563563506831602215439091244859233740752427046579460931361451758251621122245594698027228634069184537042411694281766791086938550769192174189859911456940250710740957571183567507609899654400858982655577150476516767986509035453409081528289303743049244544741812360949831544750538087145390598431743183978852639048895280198014602092901102012875408903981453153928255484640332953245162820367756783481917009333667460348899756354118823368560122408911154855281699064675123418273971927976047169560496378672910588775717788242235716594599838213246143686797407609266461533643991108448681573254729317103452866561291698396214169686908013689159515541645759846392125302102991678676413677401057071327938775974748168264710435897590163502841808957233407689215677374665885046686268105651298013774079333703036908240524826378759612008387774206566207754010193552461553759957562786906073008332259941851618741327236635563031333221005145663734359787141447939536312135945965227584926590005488437027352514493939137685321536336071558244159595051848245630565423538352273077933538306332205488761392256353458147546060654923246002106989762437299942741637542827340961124941862547707580273294293422184329426201723355617552181957791148943064123982563715949106835311915410182904264516577533161693516051320744461681086231691483475192392320355435250936986665464804922682684881460352626890108595866069266310374148394694507356645327981710967826977728565760147025386638080550947672188504095388254875589689739254027661289169645824703627986788047862467421365381862880528800649428990875414180520989461151507720149642487902676061478288048665567067617803774203685429604159665504010217883292473781798098142267337339645474822161778864723702847475773852557990223065872020685997289680280903027516674057157782558332715748032847527129175667280795374084072697194943858978366817098679068877298223140512609098995302153786542067608662668875624458848640599689583011242449575859513061837731367436069029378967300268224972417559618257668666501201672511922112314672958276569657094564037375564947289895904109827045704497084981671913707832197207405775638927754507057800198388992508511998815895593236191197034152070298673073938541556606227844401598493413551546410657986011500286231032175856145221721696796381632747867218852954879039154624554586575719050909496422548281876874641486267061181660719936945165556530230229564110179977764876182954429668939896181842775197333359513691328739079481288558849289627885918831630526379689070502604070827946856301723174258437182015509869279717969438700480866855219244579848823510181993795291575195557386076769534474147063090200063544734254017365251957239559530048282945874053587921310329648510081312409826804030290552252895578396257687895704059276900092780450523246506131417525974415412773292587975004277495670678710098295813058769021876449424322341127393625603467514547905760579660735401119748038644862114763978893396679540656741711444382633552187669522187119354071219824588193772842073440523679915090090485925090890472315468265644846699125486088650260827486857528133436039045121684434773703216131257662137427464143715103200708965255966151841508041999382601177300936719257035263275333430814347137038823465942368385672409236889579057335344581091602991153439735508656762385964160441977665271187317173707943314230295725407323602493627367135294675917754421540506857330070818485763302023985588041853017941880821140546131696215069743137532673577773894253566757917083557041647090661650237175062846423843607200240849751042901155868629359381021665890260949486145242718346053808525542312966362224767418486491666607443079070106770159291748916721361115875212039475435215786684047111033229607090905538144541804660336689825325160421519918966631984205922492613782872144481931274784402974639175252282912287989776290071576763792500370290267498924857756232491777466319511257128592289551575182231902533263958395594455648700221744550380097669438984454431584303144470677191047439028388536013743885743979212280862553698064830835922024986555369784003274485395355466420602512712459841678788265546351247052630490793196065155955950885685313272447147806453069456201672694129986038331195999079204701548878942304328158163788833584590219651239264495267024550325499278017468594183181759478816228360206707001707323574809749165274724273233243248468690752614947200557758006328980533441004287565817352594960282442036326898903826597976940117225064460090960309019608419977385704358287076063345015256871528021700786026384227136433346121100475810895855858250674810197269977317116263136189784869733201114165747449731135971514784279705219516423447485767919306507853290100568558142856527507186682336914046673075769864662014368371887639919823205282163255682272117530918022982426174612216921575073961676785632255780424652833737710407883708594835828880333695517251144187246182022213901209591950126341707475218783511793257952769362414049632193425588398340064572708268834755164338483613981834549244712883948251671558748350229016437642979627195433299025207074033797438122348115689221710701719611211325291069880715580562043319827135431680035107274034062741800591340168760336012361359539514186644820267510107161546014461448669427200030403807749512402741377793844859390150490583153822517506398510773512375885571159853492854092459530798677775551192649371431745069313906969601150910054305385327674668231869440395368664215842740389483452354889434896355533860625590624268573080245917968001960954070540546227124753276223250199233673859443833573798051419638728695631862573413210301398696058207783878070445710024427348035495209671571470638906399651431771103194285068929414444413835824111087288439785426295005356823471835277487893909469032375653085772133474387284849668224533720813942231700372249384357704414939993451484761022092117097245901082551945829818566500637462558085195930969418099114836811801023335875976919329855022687078812135891288004091098923947371833048288026753992556836505070187339734992776743226689527371607318258409723034013029796521442830999454456423598105489730113668201231400857320342233625897490687055644752630906091548031620378839151592676397313810749108454932279357696388241778502755890223070054878102667761696123201784303638732504856370770180653614844134479512019729196044530687743403963912528318267140937278897495302538561566357803935434112479386107223376779056622622200619835887522927063697960630826144304868398101241400532428043879741981792244680453048456477162740311739872399544679031223201985161017622581187514889647689625762688606614477246993963868877266760312621946581043089313202038329296014854431586452068010317910240193882058437892046365884755567772141471004845138586991313793356510865800310467012603623303746329090055695813964828730206013831412600104335400067216184151851291939332269500251892486465035632489269504357588492569469845009342678381808809053383848538475545316608687012692468800273404518183212698559530454437791001864097389344762217847423259128241978973205875207272996697660394839700481702518236458834468913436521285140589900800517597085062196656655933373878050981982169268547392194374771443809823246427007269421362924118438751641192611474718441915465795414869901187672990453677328685621101316044676795795506326623711327307019276386047194041278159372833252292927981749678286609423066382177838901382922440529207307583400214817025902253500299435888965117528995549978271880339465029691153982037080385195836955943528760126002484227688791884187118723409862923170742956055287417457667887333623726171631417714711143051952103294231670698688138815743244619609497216445893523604956579312074449691034064770083139447712046819950523590338511122235565141770408396243138726370666927213795330643897019713805877220865574630567270629673587463354192376348292109935001151891031809271615303274100789637305615877698999324365422883993923424652685552524910383581318793705766708269557294584132626234260669217318687467062272500178105369219797674966697669989618858671936660449285877235243791762200522296455307044342232065618816390133503618880279522920869897532346368242747977637626108253199926307421610783833127554241297268566425331358391105235655830339312998591358164544601350752841375093883522454347577720685499750174595012131199828855152160004808751808910465558791290886608216764911766815266886727144340326326256275113206217550892705812614364587724826109449370842656348775314142264823214903181314333325781239698804276351395756163737613313485707081961117668433774684703236366954950068594598775873752182441589499181002353776806747408203355989211722667336307255648197064692144468270722825208347750161299922574528467831102183799231946238720586856181895355273930739320483497118001632436793717923728198982172058886954554876433144646788927963744694451856548097852913414441093945746493760131316189073873356086457144998771178976420722539557343697128189042918619084273549263698537822784058658540305469720175897552035061612930840518970341271741457515637494140940998423992890848066036120273702353579902410675651331619361800002587242065094824981698438205202233910192146455383304186282853027056491365221913808102472760495671844804691947843695712063994417147633938118401094561683712738650725068222360317788401162030296549319225666206602286356891063376035354079057346881180780387144392521883075703199312449128042224580028141387558019656737005424552984451572563753945460653644468991406292601534643562462837676279061058726143720791362514737637537553893973547229820649516057058144879984242638762804378347257131762480364493534744227974828811862162059325644351975372396711053709124883769773601751294930060002423652115267521223878023967620365085955718342876385088238520545999469902571155819116200191602203501692538771960105955628088531322101757816090229037274217626472175800195039930240699371832883848484765496403646235055097905313814085208538007715530220577998041712063992799284448824679740683145621963655704520243825798093645875573586406971190180003787061924970779865188625260186933365975122555581513788926146539920880213769999569778720737072415793198042872947625042317853525268343331715267775782850331168543978830616513774008623236919998066349765035565755619595234643226759790237567230056303157675002617731541151945416243558157301940645344476943797859067805043467010893536192591669010465218932003049635800896369766437115087899480453145702753682205279075957602928940353698209315128680252853229504303398923959658185062555717174246819182739833943936418630938548689597311046661268286051564465836972914165654298432945718355608543941251967031306240082217922826131684057638980089836669730774329440465062206884032384706716390776124227963231534343582087813138778223178339762770186844232635254193581571480435091954735022574379045037217738420307807320472676239669261523602984939410419163023386409241819868432552306335646184072831808149402857967953706772066512710890805142370039375617030893304691064018180703741310435706891205274815757793986564460043487791764478219224346795471461397140240361979973561709061091878685789529885367303880300691271253728799941524950173639585692139761280775303987705716038084370993105470193023452218512646267385357297438766112898244403733516031335041538971392832085523484946701177308476966850798726005770060008352584391010023102582046487365428882064310322462978010857230548850708989395572333854799599683780000174048860184063302298330055852063288831695455946388847450747580873065424242021236532147714646907820700458094158541365856208948896908220688465910833963046752185348570453849862654372909193937830307985208127400375411124309768165837366118739100714477841449838057808777317511244232114932870384633315237855576647467929859044977135519656156840416414106668386629541120813614719866467695252508160277271461776741121646179174974485403612063002216570182361389557716331485973879435787511804723941340129052912173694814086890467208488797634220472547912245225937648846313612345658467040074711864536899978008003158486708721790270446471528869161719503262743050139360501494166820861485411297281439790999700622538456085804379474921665358966988584557474117537566552415875636438031379446446409627527798542814352033264688864981177468125183997519397276714343956911166361832609667023043707612909640683262153398189286779917605863906280025605373649741946188660758960908213685792437593599011898674513694545836279017350987818572679217554340716821188014214417191218953643537125739183402812654514734828151861068449140865149632682426260810154389588684379727337054510399201129671540920078713450522776080127718624821125517127801609089332292311987505734662538308729377132922827884705335638245249479689284240736479718748280439813541612904239971880298777994337302881340309569504755769277733293422622375890050684775422280968465935011485593611970327963118676657753237096307497489231388721379146579255890755206609515624919598347074979181226081349493632653816179223552728211336673231071051988983512014887717736134693269247244043510042053406457916830372891251229591147566957037632259132009491894291897472288139837774939838648228575736416299718795791187839735737918694737044523020488456032479025776120072377842206675707607579021529112313025012874241047213215470050742586035587687034719817426219510870022904657474720251292531968637257656085029754833648828680192946825231986919896246197372361961923489945839790867124915271191332690400484335796471081055210442801960175193224543226021891699860663160372193200107742780360830109435925249506752684978004119459177351921996987772849358891127479239640449283731121476466972270838377365102640961402604743078775919685104098022555232817312207710168328902284858229512064577683689832206464182766292022988571724898813423379712584630524358207692468178671022102044857106075010583976931419452053720915721519994630488898661747788619894539462496645313083392928795645237281326483454866046777837063699030938296916109447922602893827051237538029616914097388008816016338716581262952697024290803763889042675484531808287304077235203007035909266375680385765686146537401471698440133077000708695505643231428755516424549856671765024012565593479354200456165495379678071744355132019480167796800164428521537063934483142311962081543075944821347066470249964075565274617534604139060622088282568450130321134740773252725069451218174977962714327984194325673501802242905950635022571773074620259110183362599543715716082633974784852553605378761489966129237386524434705363492892809243810923069163854974465978605230083195094380777726513392697009610205671420434736228515799670677438867143775246714094213924769082324165839725744468240020293241604514333268991693646384009077306877169354498631605009833025065487682431275832418096696940953862314648297397580359036602077286442901169769034719702898461734625284939908972566376911003968519792140095789705187429435871614465242333042273726548587264551808961505188524200155138061444999598443429398999032120786984818186462267466967941475382688911585115688655288560069064573662800156393354112109677899227500681912081141499126726683320787815009330273213877937204713577314372986572797594651268010085159990175186101215125400192093977603016004533993810088539168436510341800202698753140309000462421087589406232116401423870726809207834971103792139146451796010366197295992129171409957637624798226340894839426747945342414159640259834315239406496603539210811290789833940753265594694794288873941794795288897242232247621734644225250178190760397592985730372871639191770309645244126977233161686870815632395932264099716441689123898192335435693075873632527791115218018739012072127903283913220726753163247795826146467249384885978306699623989201643715535394884751250877968374268251358412567216967684627938708138423979722057661759505777365621503963238141489826385584908817136316172483070091092267557532153259538969401920028001797493171447207955999707859120868167855729672221637882799554859646479355924007659171366363801270479959808413718968117482961737263132489352727734467316864146788067106495432292560754364033211730282877348134745793551478798384599262248290425897031177489383846452578473154009483412183588176999862319599160257356596055435374128425252643430396979923368936701861320745901178958589652419599611376355260383052713967198932437178376576950006801334373854039098421132947372720875084361641406138155746933833527029168070569180057474042410822717641964498609472824168009753721391854846188408902292763354472854726999461451924263757507441524458974939598271116523719691945972830243222022845677421915377002758892231872832858798964046246255790816148710382125689640514868185940624438252170978476675559246819029546942018928238168760990637984145981141342657604381353715906277284599392196879052706383808587555112499439380365037773476626607834657170746563027931464088341602724947215759325983568142488547878042813234234776982846361683988835504044296245652084021368748743733894538905788314828139047578856810772007419015687374962148915840212843192339508845873245224624038229593707413285522935483619057346000161987310190540524496065924662743311931656002460295742069889618783245425748161433595579295118719779518592564116133828226241769565759530986593137963980044061693457205357664438507598962313589087061360648513071121773401160077833408071604106816953120732471286247685244747734990840728036178911098682111503194600518976130179230072910655139320159493180511004799133226161270160225693049027569393280908749961438151700094520638803790109682773648208293706125057260072313152764489179765113739744943096244364190191793007498850240732803662358786371225266374446380604808512920462076441351404962299828125481698005669565000529406286993022905453213260923275460062908210023443713199403843980696024570968150988586297650292123971746407826743039997903388041631196679224988650568159954147713638152772082660342762822114642874039366041748244358250965912990268894725191924956781445200477997376301733163758326683132357330418442287317317827138874934966607479238416197465195327984030032808027190497776906751405605291006946175365197212622860503052217776706724933390282239622044202109570172154937489853405299269811408123911639173047324850096892553108701244095491341170459285562343301701156649527664350671473939258316890697805253121862327420304602602238456535205927405082687240433171734576717936734013362676379786512776845321617463297671586565485458421358221278893000049715459607565435036874833022109358568393184992157657863628482003047497381261893656291415132147977994553281848020472719193972174520052976578135604032707613937814451773902365836663716027874339882441094607976717758675149569054877454390367085270407548665926382048695999419317071276493034660523801781027253899263258348252009846112896596936594446247842116326856127352588408823862050255200760268024118819350549111226322905116413397583325793134128534855331073287290638934458964691682475231561262162439120090252824421028593562806636498400276206449805899794747480230810620614021542120453441871847266821014799694520674140625803294807387442284102213818998371977922393964357481624032930487770313864933841556428252657631418144401539612593891970747350557490759450935713454818263380584827342757808035014344204309021355281274622210453227041606311869397766798138992566474806462750552100650209258317343493397294968304298616227232538480775080181498998139390681085298904497767456054487940401626844792342030272501837180622896311935119252324754065598160348504709870751837374847228521561042505250743144793166322585711458632989407069366662355597687800670614714727828812899378990958204527098899775833233068161192689128627922690257842536557165019284911065835793328332304716860460656435462662106795302428530097877991194906088578721627268704035068071603560189639823630600100737918371011681107578320450800067900466633872820405050595435159358368081339361346290553354490202153111461176215326680231556803809910702912047677306941657762218000339544582555758757221983295715202423940275946503231921674714378249266927016697910822751016183058179403564362982748731178325277056158187047102679166035778170122027363292435512702307283780956939403318839613059672974149461074776168386271307498428259421591034237360429533669830200235157845801781924298120442783328463859421151361730803283981265714513030569226942239287601521621760933538749491380182555807167939131196087514658346766361831142738154741519819025360818879590303673111018838787873648783199296485657820384025285532124557929463291393022220926489549371796061706352563528180462805264501151842232765395564171614506573247048855026167564746454387905450508728724134280761968077728102069030100189173367911195653400749520058417333040305126814576337798666122041176923256635066891638832333493543970471923483959832007956328380910903427582516027686061145381155418733382275674978267438140374723881238095646806759127583936727276987218931702207482707203569369732342269308012800175700698096218825400400159701628967077380861204840731292361706174810773756077199604751748344276899885769973934582558842077892533456969232475531575817806136297675444456435890631723590584118509767191011558927950563530052219446556680884267373430479955025426725336131355317707853562181949378654460100036443796448218533773112837403715905096601419034666597519481404695445095862959002540526866955757841955901469632742869904950852664724044128327815083545147475463759898508679016289158818435208767384193412482009517989234870897636293389121759604103306218349334151823967353151230813976249893041318759471290708999345448593724039088100261136845137789449570049965560294177686228666704017308408765353606891330711378356209616553811070099843218012672600979040569117498426547176229877344614026931528748359096915782735117652310635990668862312255648951740720210587110644426133313502492166876329594649423758382598963710581784107430573327264989874579678556467666033406823327023532557782021938131185729145290118920968181611401515589405151971313163794258173202130344809271170432138187869878356321129601490551034767138519167659981161777957112164868258034258029643155825921462750901270114547076680572859672075183128171009076542245760037630249090429494731976884482963502727565357652208178572755090481479647406882811180017150819278576401106807767862487618869276411706781729528920965949144828556084309165850535985378649282639651002152623708501004353194105970500323705526243558781559561046464916474050356436577373494766521231622870292663661052237747134631398111966258293002570388174416977455637179803681562627135828381911710593693504247658591761523123262814201595227207199183918693261127737918573840558715031950601939893447552026164994461208097452949243696200844635549559373944634594807564594654534615109855970070805565980908356578038804445694585584029264215414394326591990284340734391797703337778258935418479145565842096843909414467342922269581703076859013488834671589541545716449717771652154230604438014169407735763960261090445989281930765289482187437715882665227243767932447634316384492385605744286231962799302095813551505361301465431400391900964964237667782012397794830959474410118013041305403379679228053325448897267017557270149364156932641941708552186211515999748824087808148239156053134357199911350612034892804307083137140535317764870657754689872344213989741672112357120352423163070962466011957403874541103723554150886415950045403929826143211809236566341936277001895573931707508571426474250910652572966959182465611227839980653376375006419698683436115483113601319792759796475507989760227497789593557118646378999456991862951572436187940992332847036138210334718590749867164789410884575720088896137587067424861925896480873915639485275422596345885489457892128331210693597134089349404684995966223971296621044391263230606781267343564863663556177042397299665999039551429937161913988984469186008832960915203611704708171402497122628139398344611006823633842444532767532782684511984506157680560392894459704603209384620710673181844256756603282050294777943948517309502393965824923401663304184714731824504932008239949541712740279665956708249878471618509413318725997253173388153540362821643366518017731757337964633386846330195441346802016821401671239812272845192047519405777391960274513792024500067094806134130894417220402019046679891473049578529783840871149276448173524234842536924760145249748976696604856806195084044433108959773814148281547161850733878311940093141077447044368448775781849528659566082960559230051190873799109864435488080754277504778721111017149427518405649702017779702351735190278476580492189375722829072732480508093392077705240481492403237617803610162361029974475297905319387524317909264426521355829457726619418712046667195152288335184388643681402670238303083220750264989722674618904601889008749625871551322744302545909534035692639359082304812064452633539402892536265760226177990654402461234845402112341348383658407619279982892860216959311914993647167520123398571927951723942373414059312604049008327946749047754190336880041287509790243244623086628544748470626832940271936011727599508292723333772538988757734408451491867803193893743068424799429836698498390841727996484643877123404165242777926040693207473902414372209411270914384691751412333119059721057886667189741546248470059280161866052309715484094838585677169915095098210254880677393575462450452129357202388375508690850679385975982651372860223919791830517716663157416170345530714803590938345337248982877829934099946160531785600012661585234911438826549293932449953018212506187813481199858057189412313039084626144962981889589604438429459770253070864808273853459728784879866807258259581658893589404993694317000126723175767128106060883215984764483690331494051703415497398526049084759520562993744148833915545367100370009795318112126090086382815508870743200522936650023757214805307909863850638737335405206519553278036907579513344881811454805294574262622939618944136346085364168943344987644177004955681807210045820939110287733697889902707497751306089658387683631413866889655582265355785425182193363194133868216820920414352676613188779985413247002405765598328045293434498716981801258641302995540279593857706084432494972157540575338921999334595341139532873274535579207342298738620701304141174072816840536274348646954235870930553760230129346949043858571253899141993955226305886410554451399633240866477735644964358724550081900877072782369716108659042679157937301901597703024888872891392087468738107614424871471896805517084556359325196419731454759116422496521732837748479330700748056876147157065769532400467442304310554773958355722937425096276819997492998208686102833987747423609508611415205506973965061114939070668040035507336427543669920073607647603077071688408706493844704557989302380377438191630203154555127340305027277984767659632075882637323533479474444299666896680657514195528251395115633770142292763586928657991958688382035085545069113531408905396479080773548971817957566750137445867652450118020289757341843364424356768989029328056090249343440191197298880081455534350747787801155002226172607380758984988335400106203469449856605154220443288185219939866355611849829292015846431744813810572069869368801807457657911977208802500140392612361598331472550997647324701176387666640766822899598870594500161858195287369027555546718936974758375071986862875453836385174490108630987452436869349128580916502437422927000623718743280038160149730522439280009073695792192207036689295939137566097853668768328955685261757242793172860056625557324914061097479158974416299799659863106358053062169753647879985085874299125427443000796890638291955151830562015142212101254596589781628375841353285114662267803786318893950947116691979569924340978069202479483630791183647644779294452643755832830820269030024799694691055488852471893172794389733037196830564722184251987632028758687860035651672297388679821136956246162102682045522408585984422810522328968700377018852652334264760426265920053911220581885222583414659765639854448314016593681040532801938600271790672278557012234384987766702458275215208915935152321392565175159503532235218560773182253326234387272938300373362035857471023741602903007520171587894394412117141913395417610635814602803652354726368183665407176226313293983983332741153488026095450790612181292015791199081798767428243228331018422285552095700263450386240496223700626572968769023206499132714320116893326485674771517101046554142768017511626808306981027917489095456296834429119615578234311033610400876238545546627010735993731321371627328109383067221349365778432192543018394425873915496196198408934595487455132094578834533904860165670502541810854852412837555409702367900646252067084941669603592678927524701217450942996267766900982329137053820857299256201860930427551570103504118239969679432091337767269568660581062673601282298270666288635692087464601316892754312996284007828660912542363773007508957132879577066757494551972752420997450085881733047030400349576291613654407953408034348681561300374466220450027770686611014711430783693273412219858693916640138601393884276537242461663456439249831919993719170736646177931444897183313060783841802146088127349248915330978860011117936968010918277477876204720409493951489303247585167685480336730150363928171023424125728239286473886220781229411906795782902643285848573191075041651839666726101565799269620759932834602423320477795247420460757832068059456444615025968698227677394282753221600236585933300018326496762854384899471374733376032267536012985006568399856809097528388228922264172904373656435074152118769757173085833020710113327056326999190539285263605694384459262707431566144776365872604260257048157210399678622355155046156680264666890530782294787926911900404276858121795904877693183469567717829605796747558531721681445359117097831436524490212988429627602755528676653223231377226405284061704433688350314894379221068274956349781579619869238241205240796926687134980704267814461060365600238643815912780719220877277708620376836942601226020199623465386407960427515606636900590970942051477593298092780432642231648833593116956807812939448836971250761837402363191276343173612302090816038054553882725534827319351072971993527782686047368139321587804046265610150261976348110184307487775765508689123656157358019269923558300567271768502654807519018761790492891456455641761606729571906647999014984138294377265071794707065294137049680347879490684459279396100787305457324622707657409263313625608910234621266790388999651057086772535138156754906549553131771156648528030704157400900851352130112108922842058190166484544885728092756304256058491033956760038078654444985090733603851415893560705794710845308323022489367548191189310885111811946990644617782890665661055645052258319649173686241321899344005143102629332885874441425756087109269387707328513970600628177794627586229582868533031108886942648914623049575349148110087619279903400719998360504422841267718681310657311409353324463967058269693183496163698104021533463111501215103659008355354081076528929929133081378704271809479982283308663536910567708339745037719597651364281637624554137963282528380020934663065601573431831849140490161401090518757467784174195243005548105416039719212030057183903305424104585176593896792984786237714207141533685869476656289969018109520273193951790381124568178667125179474699684412165648016589536454612446845237687425975217869862213020351231983874324959934469959087201364307735029632614780010515806231322071763096730209491050988448555526614408979791523905756019336457423703290464469857070031440039745491720424201300754889747354180759865659146119286371513912516343018581932140465465559457529089100127373360246989155009053922901625030569209720341262471506008197796794472646996780638616414346171871475893066029582771277499400100586744403250644478328861572277878983481317341076449562349400515617272206922218463378679320823569171312596121754721613362017900079888401881608818514798473295920762756044619179569517154413146261499158539189067547103050588554976638620585757161331338855324703120141175911648380348459979052015811831118370839082733909750170374248914552742739474606488456360486538915109311803725797757435697391865326099892667306257576275860579859893018127656237583030252505088575613816629893599680747776649406898034206606451530079457580841072572712443362533275987802123573982602029057414960132879339745011859114628048362111556414504076834106080083883072519380935791574699897738440272903078367656696549392975594716858919699093234535459662412165872313303347532480565635416389431262883542456321347357676622673301250529989211860694900518639218067955169873535448534969794900219761515412552786514988297013905095636797314008780533463752741555023687684375200090661445113753382428914783502766727903088991008566023329940497708786752719745371841605568087984505080179706282873898401032276839680132123749085352681571083683941261544171549504029659228002406241216764387384597031179995432788601742787458628691777045878429321310746697497173329653574407419641893778627051505308061524119177126603930164033402619615167597732815173151560839758970268298655312670440657980697075816021165424549356121525511552178685646674725414500246682292514775636050418827023573961405871367838097285036086538669809031012966808823760918281589016511822119472695490012720889188881711320130814767454155428497026689363536087043285354382408755432551977306917764912839197775964911870184480733549641315476587861057526087731904269162867876724089341000610369075625700306699006883401100372342489609599917640413428971625591311617625917127461980897687296463889198834366933757180107375473425732969776274195391303731407572710974005235236937710428680433996300948225614169273323935589277096146441736436389062732794358867799366175940610388578988026172858222666369453683555826096556088895783105319903956042048330381294018068991494543491922707444024867310105534460040614854515359658451988461984899454447589858777023353977922834714500410026395271066855820331612901183112795835192989660102019711913903073714134093783905351458086818367530292756729188413033060739085667321430490696096944850311754285461731430234571427548255024882963694169125197590830794268644594888232102694224197705258761918445162096581803148131261682327114512993591665971343487170829388322339515486782006212766783916006832022006471991478332949559782254294181854064047797529704347872023985948169202777572354978577718077935694074450627067319643445939927285296276751012959471521280805668079963391088190496394786774933659064719730737518410460968016186566438048630863230645530593902689195388726319175524474791823427712169921690116991340015977235859549213986506708698321598939797922859212860546460606197097997503318894810197429110735740042166990101270292122837840951857528894453181906280993355424100631172512205425055984339386535347246657594371908982024615409700563394307043053844120081641143015382170417125907408667752151106238603513238771721890951595415981487935060094750195231927984608730708238313382628241758928969171135731423798720815709247433728607586990156633291353992474436325207734936189137565508932369014977662009942269860972933975671215371192715771683736476171189360751996309430613404503921610345335884158177938525097294450252610198078340232723914928869568727832435177887329772962145479992482709625840253767816587594684562220273248679257775649669193233771365630703607015695999798584657615308164832346650588933979607699017461131242896664661852334977786289966124152460854645772225197750030269852140838995856092093436351295481114738795301106530810904275472402924122150187535654740319270514872924511544167041390210662089242524566963171868860782156609646402044335985400148814039415717552399765552785897068911421685834964073076143302003114511084790757526228107614388870927554490809458496534565464038564397762809089451033091181864727598593024412574482203033208684812169048510570788181043565826153090894786652615447518570804912673643999116134372274971540191122832843583220996890045179429310642910286000289701509581587844776236114940454553129104889293221889422397504840674239268196881093878143705087680947119173197256601845199423834030228176968090948901655715898683310509489327040269209867381997176822519691022146435386307633738154051899736878252824488374402307333755005615478230289574857658742100373868965064945485515887923244498172002222302211770681193795879257917948052704080550398639423027098235100029275763102218674445202854661436364153416710936178852054905143073872550943009482010120530365206136083317494385309204872632967522286837380152656871485145456748906557727966009277364692328315396430247256105356621879062339898712668665667020007486720740129101234898565745332579026070253318652215734387856467365717626598618847625067257369579836360040733049755100369836752996817402493676780512864310750404156928244079067485196507200316533702520783619958799329279078672403672676402088226806987707640286435015547571764753228540899633599167302988921598837996211810244021562315980441843903643036183941156520507759426892128853705647365233854286172835345459885912732433957756208235662044181080150580969015168992198968290019697198211733095559230811972479120155655509179592410788976645636067675495237638982456339952487718077783659862527176740825097288099391071780481384524934215253489073994796130930167803906560284523720400175862458801193784119231757134228696248180368491368900189727771204476529351336425263153204373245220438541646274421142762441597587909396234175354312754263422214392872923173032725236830522152410580750440978133340897174352880081264299815415852788073769621014902876985551482449389055851902952355769494301564971506663876255230096819674920127510868946696019646433209461729687303611323542262692894377007345821763224863388135597770285330921758768684979362595630354180942369287965099627204312864082993816203135319592094833415131326769640267139056465065957388090066035610500067134104198690304667785317109416510791694899604490106468435956258400018851683737088991582800133105859791847449995880819885532866672597705039167706622109979111336963561801565696919535009882364439703832976847005239910383613236103484580748024070158001851409187717621567783482973385194671238420354713494897069175697773144768474822470884987254574081773763074394668462849030362628602922733389340393643129965296818170591053422612751941048652632232987736615934258197166610610038116536726409370592622859284412808439156675368053190943312904973467237268537336213241471958964256846919826682520432543309381938653652141520392780938164928556039540556704464915728699549611171293585053815782618433033082587444898980648591739169093496115864864332485158972939015377411226873772276501733810293549830147757976824012501188807488384933271047553777940312765454724975834153186804038300217019702735721868350365436055363822286480660106351994930732048189740855085127079551905329730321398236740585504907364856238417633940737573376268456434779758681249982658199911180131844207745809337691184449214259319790304449748491967035346532101839146746702305602640119306909986327328580262864123398534025227360312088414232348870259352398501766460905891276399078282004303664853070762719308632106086132438505627187664378324365601938440210737514276131336661633433108952508382240885302182566089373814459506447175689979249003214915297317322349963310340195329813822344964482057802665095598777780529145584966394780401675013696905799334119051926434013157612330710863447341053103393860846772288358282557027541755039720335547837281653692661980220891654567700818449590874502171725631966541440102039715905720802225117063118196094920692292929102823554581598314505618497509446401490419158202351926792150559853902718487191127953500669399559349246809256546024306321245963939993981673498938423365596579984572385179930417287739648838178003165067550715884226712381775301525548413035328987932830809703563843567736074184895558650589244901803877237658532891322944523074904273168793119683458730746086171394027051177186661153553867501595372889965906722886505607287367175598256336470738717983771016748554736106955569066019974262325268050212605590625087487004364254071161922877101702199752396585350321147917437878608764064207336428530922641600191707423129689984598754029781277610971265209728715138922690977560861653427359399872755291785239403817532369448199463765992026115612188633244782541783158220788864322206725554752717568934037358377204916225697838797179289561602086442692776047732126548331218533100418306822746043237673045963119234765351663828741141107200063232755948912188731926848276469756786786091700587705162939823901845729235428294399139282738522821654620257252424095470515149677444510667389802355241378052921925187025930915630667287810281633305642485205773384888411557023989397139046694260118464688528162430066046570600247000659998504241591852375896928941118443534098776611470690451806967447000904486849369366587152141166389121172198917452891538833032419133116418439790974415169761257582152907013268383795085701218174509123393275679112659609510056155204261774340988454440619622979024078395871781706491221541297108677742705050883385614190426569638441340858392460134435165807749609458076180310686389344489092474360921240932332754052468409357348151227876601623065049118936399257319715877602460474309291460272353984278459234948312596681721106032282727580659176061829919083636493549736061271913109690141156519277159499734960002046548026345266072333919457008566439577339044668119021149429455620814824023758917460423928377546947867969036373933661569110739888605772868065089676209357397690293661404142100750834582645140170943055610020605731965189128961883653105506830018713911364585951742562960887557666495250943998044810333117226039660343175655157845059961320828879981794177775494120362287795457476081601004710149531561001040319344910050275649370240313970314186438781692822434949202862528137108234170536209470557428636005907976747772539932291395172495508649235450089811739953249936431449232750446098783457956493501137907497603701528081569819686112797312536955484519295113340315741693813087711738886980096517419851888425582444684851833377926953110044366653254891233223434575470896101191411026046640736465993293036887469838975161097376327156488433380571640388462626062605051931828422835633659697976779669975263295051159599445117869349732988806510812646481983816141793364759153453753892260032929890724330339553356732654400987443910620950627743190162359286540735474257634469083914660786257241540062386895835837174050400549288321792493108473770376448330487182653873418923077326859088241767859922892333754394390642244387960471765608773576929386293270753778621485376366112969292530379259261728698194352847654377944648325056707622252695373223764509625875142659611696844584068552067285519029424329712674614606689162918162851956061008206376267245211869116386323634725573556221903975015272696453887846099881486628147171123242243813115661817068135490018982518848020617624320955134634752984507129088780059339618468811220134910401734060445108980593730308193774577141357163193293046725330377925479939148944197689496998310699264145190662565086154821490276039777546333830229006701525573235534412902267659800213925009844557351239685019348029808911060366163854516160384485499842551938884472301576721325022113454539507520436224263194629277947503660762240931436332693821223549569940184283547419027163656462477605725230267823935524169489848861147282237141337526371954090494805755574834291497232024721196128236245704601320228966250055361254022636945422012394483432533266623221571346203550490200554678239341361557533134417786416686228304510617686151614311694005292479785273808040287117588917826240202678972855542949277477752852431460080276751764280509443512129474732222294172671720276336005655434725579039040484988874638390182189820012120659034772639571853405950373274251152271071900660828184846462143291159382058343038159233934458655027505936287389071146671914578298612853378900042613853934720951545288303749467567600636492209988783379557453966494508565397690205987065624232158561168042155214779485629815844651823825949871953357901438177137269805327150981026887307969531657032360962081754575057531667693334069195993726865705511650170172680946587576505000817666468295568864073728853784197867453192770627753654495276699118013352811201333840054652849485099521803327736062257534592648618815026353243510646174867009720138272021793138856733093957831912551098147405456205375528309296337918008454622880000757391506645731441749609231565640532719626917237168419886146352641900228108605031918232671924128673756397793269346175462491460435611124707970799473967697890342462512864145090530624610775748357047651045780672500947854050897452188900522930108157838769334185977512771127526684581866618999801502313016750628386908599022345000196294192493626129714469906153966273824779872622327902817939052101895183235467811824914390399603814164803738270444212555076699886805021250781656226074281284200011748678075480987401731567354352312752038421432971091666909245056766283355514359723599765798396029481700180219760754878397101290059873721017166354937148750458151117602871653140617335504718577841423206021093120735400395417485409790556796199860080968271716849694872409217119589119559786923375047514152778439130608265301640796137205445629788098447115600918602898599640508086970743490754313349557232114878892710887760505482249467442761190842567722123281384208512424454286507700268654903202673473978253932848499506400610625545322254434112041743103511398416862113268920830855981610487973806760844248903646803766104145834488690039123325739290463548196548849162873836937618034312315729432901148502003485310184036980534187741846201652838583567812402046357134411266392975171558548675047878482382812026111395057708075646862157056966451883683476823602896337140338253883392793991218612085358430499452483491646326705125702955337430926704649524982053915919690636317829643546228175281876621033945776094801559475106008491879344785310799853843949413009034892899503120751340543068668069239660742507732012704431409493091440949366826454052094658381538243961689473795243473308685874861326498195583799179355207895685472694396628219682275202496624353898862734093984823984056430039449041271423342733928194901564975898595793482799730086890810210161046946425207523599188357307334194268918583640941205502482061689555302763142754062716185095288863137000527868735079563191951442282512596410082090535759478242118400172739930185382167273307376037944079492246876489597851546105038082451972270093617724090693844678768576928903143131264733915946279041269734000928913751660866744839815263268438096771036873053033538758484825946189531581843488028818038593687727491210049656365289997044626912960864574257737666033799291825287707049141881891978036325343429198689123116827407621528252261694600590076274996158711329163944766437952951402931237934460343981262435608107762847610348605387843236706205340450059712079791101790801644958308020476629614576026329655509505272278748731888346485900876425942444047969400583232673652190953760582569441838686121474328845635382695859063247085768864564296142576136050522582737007759442380235242297731066085425046920140897512234065759245878648812772755395479116499002560943545940371740391006787551284991375108537936295116537850899459111177844878949511195650366502065086487599077065924551768681981655628352537575351872688723713808922483763559029860832916610615792023527220256267037024086885430254477997547791218775283706532772934179769564760547538597046044005674919021123224898319107172755425158822222110035994507958785336699087294596487639317075578824766426797700726837568180717870942691053190371401033075647420027868916854143813545476962824530447606395964689929249298881209838225743729100198449749433285079388631645729820148229539470019647241107063418341003676608201489081317726866538609672568595283055312490446349909471034533312990460206819515892886525488271194769909896534522797325431886272618131422019203656810634509170374252066121583044598752522473224031352910724819123599346925124742971268276225041126826172592325451958382976368691409382462882840947202495073816547373480913806733676032162997980183930377063438533400190336798933754235624326978219769223524315870243657424577414766234986292133100834143940444422661474642183501647326635226325331754679234536098050975327835259471762322110878928999223645344001625302145708875450273617613048900348785909194524493841449222085834465104314122400387494901975769645284770983764988447647305909239859183886099695871453870218956916779267557386533084254479935446210650476700311397845570066561052835638162907097089816140217968253280237940352850239144221503977686976822300948496247359076992092181474660616521764987359871874170387407536138389415400049931567996325920633284963704928373336240599677408367935028719071585691982059721427030352358463972520197650024341721202143584666604434405736091281490278298270769376631235930884153014433686355748581369178418768077989512893357074459207387495451659953410003319362730654475232423888588603922246752069793380172256690225910424314174075916520896764616317149361948689933281187335793541248103341949065700867154833937922542390683099374495798234079966011316656599645983523355571615765037770976013107318246392285517943004781728548708560027353042141343594393325314538742520645839775606459113108562947843183765391931680504447844415871727798709315387881681011218501947799079258063894313073455909804088360189361435684660328906620459483414584727969120732246795798448396375714723375215146376008980888879623026012962119680862214684281990206184337210034905125076348208864040151852382785822682815017790161677900563222012285400907022601883756357903091205751507120358276543021623644655631862679662099872203517349202453175743436164095617634958195048979067126133330655438283026263317709063140326795777855655837636283667365599823900135160506327810603910826785672514739326517657416886843454065592498224654356976885802205119748080453603989131831614919114684406962004944005919893787270087563274114163422369655784571483731617025041232861831891615939444375954418497669514667958010360069689127365845833550963626865849795625537275943938519816134754196931657628017991712805169060696865592891092366314207154520775614413294481279363829362539670165614881149719360023601083941489462217001843817873747960831929993056791918746496980543611635741655348728789212957306971344864169756198441356319491501250574778355460098464430901697124695556455777741182302255898057794997729927686949067955780493066707332324716735228519305131371408840137122761959473738149092977450781906041196672329188892202563534850136199518785514558189942520112374268878060678479030401504022203475531066554291135733331509363628264907940502302600996362485852414323184539469571403723606624690985061503517838022967178878191616330571523823931371785923668256018650316196707476529650960237237076412300041032206462151184503307992483605432987248521672032591125122878753710211700118125962255107717853035323732740929100707352697126458935565133670094576890870854392575893979660197691912228930846258164476576218321729451647761501041942854070653168766389910697839102400395619197038914578335465586708447301130799993802347502043773952572448256846574263728780578040282102606968423937809951278338239952523672776243073668330059204348187625391518616966269524220909684300380901349168058693309418621308948896384004958738920330813058165398136709888713931042993155869961311652187861571130166337161746212157347739593223410370104245852535071976021113693676200768205496146621073140628671243147889027151806877745835057194118829894883442305321217939108339177990566573685166909074605182990948865874787879622225493097247583174034462854727958254997381616578119880952765082538154982776878341840253317907826007566509133595938099440763978027074607910901287857462993544490788392964328140961913484618375618723074334729413479127178727431391516800285086530385637502946149601532326573662236690676035927745251748094158480080324558673153849647889961152837267779174463709596795678237855279035468252761624170616526096272136749271079315467902476940682133842385911204350111232158775152451930511172823456446214551967203822686004937761897226112792176037294556889894225153226943306677967534112505919505735682805538904867836103917925284677039832216828912038066147505995417234805922445363839017551009048738917213900023758865459648595100916363140230590709434270874504471850720661190820563106722632329877489265899936504868628758749382842984580065720261587306187580276890463981507796885678746097115164151862913001608511652459922385564355790609562595120238906023367748996261491292288435312845099754400104831715639300334808134210414989836793168241532166556388439241026767897451852416510295210688514942545331532958999130961121584716661211766756093595511868892550981345405879969804166268585238741736917920947470266910434712289444514320996577693647090182853798172811837570153852585803267625829688953793632943624098763665520320491488220012949696233950941876489896386814571519019877681035047399746480129394391426303625469310632195119205926837133399584347338309143269607009782461793212061744082058694577066194790978604980093464535592176920117827771577915730785741169779751322335683562718630002466095863486627891201389555395290077247383073612252065405223697973182369023112836396749512964820572630658500414275131679006786031496116429220376490631045483526100971895549787168086511972580934010787652759783520454456346357833532569073600362828418322234014861152078310354966499938575768086812299567662292487325811177556133227838371568949450108579332581970198305460658507984644992906129999583207383854294937080289913188023973393303205643145830758654601979389265662942504285281641945349829254763747512098384699995906929683002632679254052390065194358477452607606582857912031965323987475890803117353846759482700973376643304882789877327994408151242038099940137416204446965490191162529046141638963483619876391701334519331631479445868401260897975249486415753964364664174922509757421396985218268916753718705463601030740450717843151693414751538445409856612609775362616357220285193270712882770635477759346971589775743622917588885077543022169479104834214426418768528993586795052367209321753172982722424202468266418678808068702465108026490200430335799893041954430522553814396704285691183197339571542833879574715071504197320043072205382511955979849435905867621469343933980116194709958032171430433464790295265945326706788208784667830532977019083766954278443475714052948104102416055627343495925249315892341880887446890108678030581421151747572276108595387419220806781199215844916821596165533303810058120921599090340575299847308506452458594257904809997390260141697374754488614961348706046421275752139498487777717217316529487794288876285822645711483899251888314494001676759651970146299618174711743433017366529390460358313502055047621538905429593651150277654445230121545396525160574780027588361845571567231345093166578093527852808074569629941731983821172495606112209435517227130417580675924384099095363369916093955652964077693136152128661414001672464586704657187701668411928891058730659407182930940692610773098085688363864356255576938774312146707871185848264087848650009369085336598256333747169091582668324173315731908913406342355765457505866655378077350877805180674690368607922883280049499052282090174024955175193445343816527424631576403528067710687085189115023059617671663980461093213436433858606774402315257018043673610644014816213041073579636355933943458105990771521054287024822878408532881062741415872326681786351080342724600708033845936347246637382376351027257938597559059397382375237023078544636123199532439010795928188801519827388813403449444776527155873286030596038763306484639705862717684073334917972027697493329228575541477399019707665242261013191489658324383622469746958707823061170015298752270129847037135307521219164185807049172651254812146663505596531521081826645125324008659860144381652485948700204489893273295062090085654633530821793545335257725301797804774804939615985806647274620203479876624012635854168221643703803963574887497204602914441446585575138961077288363755641775413285024592464316043942694259594850030162874352494254302936442547985067439122440183411780913672447482821162425865007146585781502304917624049131810501465150321836551742411589206837237367777417274747323452711577333434717795930692477865282991863288029834999311970902590993337872597788457696996043962602606432897303371866163270350507288987667176810122530385440445636170287288440069773556871274014371916540988299115265800447733305316106546545314890280594557702373655738411100585003322425839888296376284917620302476441921599748804834118990275170948005060660476141215036587335678397382245756234151471445646434202321332010307074227601500853816677622171064401934350045435349775311315708418664299682201618037437826816614140525680672189059969899750143239060134549260356750400186706579684140222919075178200670421487882498452414753224663714953788180417233206454320651424802464001147247398367044180034463763801564468657041893181321432920275182842545280496856720195859124820766223435436583151901581492841772606544019348949706747254325399418907297764998980506428508669904017324474935710956833385677143677606055560817438768744695326612194643496459538308413896165877597032350477230565728053290657395872126377765674725866988875320013462465114534188558054498356622553932608574693111264233172427764629519574235602507316545918130658036256315457669551004498262469434246884725977968066214164588363591574752790329878559733829181284310330176077248341926159077967031445893244162158661092452294579532538332766043830047202930894952912288366126987244704843062307393467118804300914392350790129672024320054716556326939742655370289577439710986726624264161014274474397812407090439154386346687070210772329268996431101031304289421743747154893636978658583555540576772831979470874762042667338038927549530630192705390255663861382951845921263522471733814146361500452200741669878057605138580171202119882691571124779151604918173678746201314763105327630343888083831550583745608463725500149256188200319620481819608885638119460765916858884900690427322648403947829129525594816371837381135277960763866404180320094404861290236957050449797096971442603581721666709200512268780232471760595926473547144331682444496570124246588678307051389468671800930028542298048451959654904750596433554115544789075935347384440446959212665013606293552702702119154823428008349523566829902703213485928123584885520952285423157049101015991212250106130917170788912613989904434892785395691447860480172737504601681294013927046296497488436598396945957724977571295676125484440362299054461406475445029639349166482114601483099341910003676274907430557577862653595633004144238103626195499703236333768962100151292157407547271135695924309448237813000770195134773125920354903345106484031429853049709978595483765713281429092759120492455860809134455415140617553346075452257031626380281001226708861751289315169988483504642597576266731580497194126738999593858992351899507828912225822089212260119140121415848380555464951011147561963792316594160896283946263437889378861312848802893616231374533728714626892163058986437511133148486861601421646018839312130318374380981383481375480761170138389736043234044286395549078248678455838623191689211552584554822735560879154598265552314608193834016052225651665950313052616352559093666540051401139309433064364892658894155754278782596237549350582025668212936989296732948427219344231371691166051681785137616842833983640044217016447471295464990392495947749825006988693944144167185105958439199106680322210067544995433294584316260111027987991929265433823712446032343299711590623594829870134243502809610880512474701144203461604977602751071395951670681639942922948418902323556208523141574969196935116035436045660330542587864186742008685247736667057154100533752141656019522888224138975700398456146643589529400967683228380473970331046336077958434472972131541136158938191309320386270479017968195630926199232291472757942061776421282672123549244745833886441845892053159889886224749955518864331284500248716664740255738560632853205857941476223499895971644253772048092147334724092651490010196803947204466441029091224576930391677307777156429482257241776347677595862246133378496354957370385067999499706781550125348638308539927825816515271271571308804025917952060102146546833714336909563699714895141591707090787778996600561021310202463688038299978361127097569450842738063524363780870279231492039845374609174915537259197747474575429002366996269470107928653767396347819041723545014051633299850338674397392830413299326395284179219676643687708839127703344932621977634400719265002255326640693029726477151157820121618752509870501989590035735907832200752528462169719625647899203374913882633936506346068675269098953914642330201718715438372603676998341126813547032181400861352472480907070577323864180944438058355143276372820607507720145655499859796084997555775261812066522560583417039657104751502473841700613257499500650353585340997004633441868858893116996984373286566111561663934087815020313624693207141427855093063572675422175752866652068768913195946726964436166042386722858811537429105050872325690931189886597558868602765278330130627221721867179971007360033336486734611966991366267360042826305111416818584917479369975106747507577479472268910721318007168904074981228575138293539925520845188669768682010273014893952557415694803414494405484839457313957530039073781180015580836431382770038061909025429782620852854707528595588363396709441930554092221463133735338122917796439581404660793915138740065725013343922109673791467951968602685627960933720957566121740168461430893449027218643708776152298322019949600633620142103718135195979138980375146504274556386893610578867817308075570626089967113830491007273141671946592604416477685632765478562606657127744180762769071133438672727907297123510518981320174689189780207395167560481253248937021082597341244880182320611827543149737883125651448248515807239397890195254417400176314730355565478415689670886645613554744199582869449921609353468238730380110225133956697682632787890224610376742883561664374979147087132613677907542437172968352270878380912054084066800712399588107264501569867503339210344969737344668075092054874407150487023051866957547482970349589920716664195790634998503145338365947752705336284083304846163578021235895701825770574429778842451639934159821587383069109761933717291661447810112001625328080332141903004175300248961317862093260878285979415260393649398359027426140619841365144383346282304070082978944370512424281427963647055141367383342919225172578901584216808165527352809522256454481719249580474836226372786044070628460423651001871602001531680571653072188888275446901964573959334026160841721956746371998539254855141628911854838263930696762036957222698720333601847860477592495837339114204450241397277264732430450601286480641956008734617855791670051355502726728838889346643198309969258649834333992468557280729232130780270689178814175228495461491359838264181752069505029820010387357632716876652146001822483399508880080529520913353356988818602412872668772968697689841805495866274129263123459971722904789647232652690731555143077963450298604775825983616207246276606458549390274028955943581809585869794908854069531988833878080198180836415054926117402000183798351516465491357509976698744393997000929407095739893778131861593323999921606369608659622551284426277409229270022804009450329583655974354933120547208909099491780014142924039838637315173382111378604755810515153129834360310066480998264952895073318397943877605568955742404751561298450649674666949681570987226350703079577767976916867889837719203521808160122817202488543703747594047511764757534991871037197401502831829696269518543761381022201912011128527606397477668879667625390907670697777604644879311193167757221347796109421053111098790597143634687770738578097714866131415860074060893688061563713365640399086453798654492627009328392741394915814500212937033990676829734347232727968920837489162849701551680516288261138402510890873978111309262661321582627352900445397758838907762791302342626337570550883736158522859684008242878458379810794668227619160033572753673616206740775612333609090730954043392063693557599546060784834535063223804359974535178002526631311002918346398546922943751665860650645377768142467534405712176859004592069877250257880413279331760627324011929502360076275051684313433452690259629850104315101930298606036125465682774114139928003067672546481696249498367460184122229565536050876694558204280805761048289762501929755464435233201438915997495384972258554586140990779170096162632965744590383220078725662375843336643370461701503548494409547139337764477254837421582724273424222927966987972080867401980661580048718667895838444767461208402545955984643083829071187282613308542297349690254766734778592309446771940212703599036575397200960196828371923387009083032022422342605464419772615071120002977148356843605846590793549814739913256809518337489416386773909241756764043196342951953140499306766620244945377432541780204237612489245588633508011995635312662639161507373532799793217025597415173901596573359986221424629710936504682520734481951774006087319316966836963545676722109033361309525348185426580316828952177352481849424719420912026492325061528628717430114302266396103685671711443939001769566621504249673021671151018212144647185562582534399824455187929334196440158943090249115788426960180440359729432279546223452219966760931466067749008490155904453088347487073109655961683333420980906447276814000045850438354516289005893579357363138235615692905014911998906355678483447464955494230425567800836707062897980324041424081497875888940513177144692757453632954763001571565228911394416196363015370560136771568232255505543273566688847528883254269661416369219618477379631361567029399673081814313397489856155196216798908931364273484027066473996112103141956625868454103696370747825648617660518445747456209672572547158809686481634271253493804825266530558265907463771219987353352313530693576482170475171507860373769373869636304728573522833588157452420982744193292672602728787044462626961372416768970295310292975981623501939287432131291648784242585283740076366202842672793990229444317714051265209908526596555028326058137950242688975859069940327805163407878545577366229000610527332386394068576068717464567308831915391970695415448187700590781792021975837280754261614234030983558793475065539803534546683060636052088752168261826305651059412245248960299855316175088865724063777189424709939370724885385374430279830170325567944468795794887640081544028527487617484028961716404981165132778068993392742288972287854250891420087993024579079702834323820620858845088390117435118870257095561489565841349432538163573293863461556181246676558618315566727039968697802566423482455566522196673092307870774608619294010508278270037329034279141689126551778949443388400612790939727280952793284439963249629336193998971423044386880329281021681252231196350566502673113750888450076597845352431793173836545147400597313817635149210447742650287861237478453473057162735800656300515857364673531284507209652450113127545416161397248207277287291522185916525294980788839242775543436499971862906287035146766065922146007428247495997096730324472771559801948406396903498635036610671321899756281566834765297809242812418105012253596276787188470140374119412312974697461520239945942731900316554296256403636223979084810852266855290658588433418198790157777615226994566801508609432351678719531993024566150865573228922782038642729734163269959840463871461259386691804235198267857139082801699947895167246205957001696955991052752178814152046656975340440403179829492861383623559063091083637609386880194768103041074994718327681432614779878878193488740727876792014481857529672779464063383666478343414997408479154349634732570148052685297759284194380586758819529261037797565054942175123010332326367532515085203786345375377627729017098535716726148695987948948536920798204708791940070229220806557541626023535777893837467491228743544582077384212624958590707624982597327621628265286688550443229866240895312465581447670076908781732688862555753534458611411541070267017442581937110517175858973061305989891714314190892668445238836460941180831910140156765947749994840308943790657237423137797425417445663035590553254549727188862283019294409527902232139628205586085479153736451445737300762061909781735966460939702214252860513070338749519393390963677218748291821927714958753421247598229508850953614126002154986366703118711913684047995069534824632199844734063191811798117050601342791624989718762075587076184203004999464923173621064235427511707445945655251148607939083587400141134681262850004732377657054480196652241017048253576615703996797178528156623820107251118542241318210929918846901027367678695552264940031820865931906779929278587930698672587420348037399732048308153524131290247352652388429205756139124519369901913002723313981981030363422170124384588640770912610300978124493214233995550927423735145268065212964003648280652739651483326342384961790027978188260939111791391621421800201314387565521455913404086302825783710639155273155417527035373704297861871935511991860545771627700611023225694878484673088443144639061711959348715259136239652438637840197726772936633926391447810922775545777205211450802272828309744735401527587016184070170824382252667145197913932542176684476087081399657213259851176899975574301178923332563953327535777347612060780605912534769980937534919832502654816600913306053711655916815958658863088785248900922236594298706900388916870837720883943884612166562846993171177042664915512340442685594000017958176621363780084344593039908203158733309775992026803255287088643795993052456845339746978567526051879584298502383479824606541937657261499160749933635401926818026278470164502335036936192615537442864574283089279528366012601481572471844761588614349762651415369207158423283104030546734528159947746747309623101555592098886726565462755686528452073850019381176824124493117831486364211286779164204904642060454498017738888343172408741296950006543485670274742620138248807704183940077181411380847200255832965808770761314851090836968028393233534950267857050988309836571801861977787266594176901252542879184368750816449629290762826035632029864017036980463075954914513330251681487652270090177792292607029533405463224414915595463324529297071015636358964965073548108025390457990593218996693086526029663100372284894692219927922427318229712067620779906404192609269907324832977395903985142471380073664461812069412531960074486606511218259240917331537437549649870026842827434911456349124021659202182741705816176524062198303900207467458757922716393713910654155872621978815885108312879142888704131700508397096480247642076742804085938740387240583447143546861546288246985188337466853031574215685664619544301626177073503236447100284605092449219534724242989929623360420728181815260009318904424859330523251395925608232305385112254004823940578054717974408024531246125135638190817327858079377743582565073089193953718732410340944999850296745793864806532197778560420320840901482205946600244239999846950973529237234827932188372010678323190940785884163257333136353352806611679614469372138765397817299796513536497106460299321295327327048334615026685581673879822640350071667938806809846108768027306386816190899879136601667366632314127089342492959026382514881964771396277497667021473842700429662601390820569927837702086215284538697602735526170475429222519563239291749593525958817332472777783478308901520306860360905899016646373390474752147569555864244410531840720979413303288880922177757100833114434589196622160345375444456264411405222193855517401513628628874597950915193316127055522729541743550774916787064069325631175721439856911855318911560684036661370834686887873946469655615838322506729435147459636874495231603839098772358128190597876298918695625460785874355949689310326777757309564128567364845911359459762768677079653832205018532100697371178043414696005957300455530115133885603611502754265211485313416466978865788743940299582641184625495561326870619941231858204945159585614929533618183653769885306713609156614914468716850043691740838254917387242047018009221732710304305032526170381065182498328063808770953586601199821692785811085864857773537236606535914297552448465985705516900285652578870076969475363046291026402913718354143615295421231315694451700617098141484873052753918647342360255123591559294771632066819854496755041329718329300404935253530598491884755073056245077270479380971139316496216312440620694520859311995258215150582401000845547215887506250096478882496396816105453618229181518004008885236575518050243306950539969189957893802113811912023804299623667314005512940187498739189368180088514223006368025978938121416073029370984194475011132719942994653386722677381889608419303632193118225952866953371946810145439374027766051729573910838157631437856227083866713227717496620370589486277571757704674234978452215576574145626992636938376893217177155891007794386123014515396057910055676398996905268058917146538984192947399405440289815470057243627386691591938366877524176244993290702270072698756126236084737113726858424351501132584102948964089021806336877846805293036327417047192909153822785709394409698215830162535597839090955592253093850947113225372348479967296253648608005261147427712866221267664530629688813633906996048187917823370830850659334024672862487226477554861474664267273549180388573729728388925803466054508526465186624312781437410685603536826308925389147977624436439290128481911978066993568808200472819966624234842287975392048638814943597077171339114903764506676424272103396483494362026535171168639119037019650484439449632365311205044198955012064275988393961049016620149382948902901998308353549119563133865952086627203356505348664418138283442823100031046990092779792527906468109821179077360595517791259713953855341144336564951874676424735077988820878829032713478808925798417491540021505565238991520644099617430716133953859738775274893375315807505098007384500938095131328826675474487837903672388697771993428403019300552687626743966588825037784276480817517923860916217551199370504091828734156809306276564227918239434693773730624626571671223752789433352963972905523163069815574552425878564219626809726387669956405310801146097955087378433043854722017637959299282335699127450013027450047622726976238511656302982314273665178456138647418265768910476526364087204717054012937544178197891489498616063223784110080589931714450589314618336487820814365734315757620579121940840364027213458181796299862421405014854887472778726855212760775502412039784391051931834906156047268519347715042856812354887043137928745196966817622463746370078494829964344750687818407058702827538123464639043948491796635758402596019315859597688885397594492468631448064868330920949854937795776499916035973866324527957426870326572765991613001476310345608913268588067095551184185083240501912208280379251088127701774379389224595161017681512547916826834132576789952000682420530243802729290442293538671602351181381810904422646626821167175390057820612747954231478334800725437955284205028046169300567964937720885707775542146176278164394095106240801160300772062677499684253464851677889773821582939617624461212903751208444387008414934559564554268624301807343170209914057657458063538100922146148197363154015401982799221285727079040025882483133904094168177897436740574115101954700751401110702706402398830494755750187187310224276606037371612695457431362837663725299453853941974783516159394414506294938111255388704681545473084720634282033018354307885138829133357724810662412580539003461137655278658152691077832799312608520456342799761378721623243248298147956194087239552461283173404752177852489510055952555256603881213867023508599408093855162103755218131715902628519757526299855912550215387127068866354027621861958749468901165125520836151451209510071568613702099830796696055637363593773342913164136413651121883420420947923778945103807275155185153438295005482412712266320709194917362672677378722871830891715128767978560210858300508021412453774055415153329677582845471799815643193908662700537279221900486943038029575533480857916015753006004366352220241096663318507384857780035926383975945251854680863736737354804740842597398749315739523070052008721358303932775946718818694217811411472715184050525413513387492223631434778164016509874623115915542026914216835387551641801625314281676123495106300197048418736467794769401481954638119887397661245071417366227144203839507014217247764526284186912158875443441470440542980527690361187211049681378738119565686731568136714620428853715794838451543416345371978817666871891658560668795893672975705979076994512392477174223528675619997894414777584896194788982952488434177064959792622331760113050765726753251674520847853079394556650294017785576378308214106865591448509536548130878515592154047634210863129223004967330454907265746997481454174557971663907435319144906992132226634784249314151263750777987269333521392981622015955895206208868800021444367404462980276711390294020682177410199960385693832612193715079615533212225746034398943800059570283855167877415591846569481723323237448468208669386082777931036458184692250962641033473542798943622748843976600416190764860090544901256066969281586251594526718882044132511328208954067930118214912330202136075775774715881635651097441339674384313352963179305636301469291675292072884347871845861388022132481883929291235055553301884298349775597368347201637765032636555578661345642269244616632911003434919690120938298092097924662404181884361821541380074383650011940003907401142578532374874488579659421277646704914102545347845834111844613549784121941424524186230414789867427113300950117192184959514502417021121269198682155409913548943347782238890737639962541202670167559773362569765816154660169919942137109652006488573132304380231774375614180808627362167805687684571555288407375063439480532842626618139956646876572037093997249559077517190338833706080848487690045450045086869097217821233849992427218713472656537192638758339026643584158721205962647568584666162872335973051060253580231648255935392357023341279379179744235888638336152619295923356910836822785900547029767486469440432919984056241212655543273275345041826659021007540814361223306322114346420462945776541270616902549164406416622226205808337586096264190068486320409907844045891432874314639733433322200952997037515570778123270893899505986087464642892923971988675206671658765734004087331001861634656001630930822194109007678672341459537093086359564593791873895290845987345374207362042894576359010862794512808674022011352136571013305797840552017568690449848002619303300404289428966875276114208020637389649491975977070485378932701960708958996566227544792259278887450854854268145053068695212765637241612653483799271054906368504209841898546830930870591066730974635899350119937477460349832550872803627189574377758063468535396602230521417680464572595852482424773496435434868272624200606408653428541078889789855760049031536416905448357721688159460082880435042801414754847778244960301228886290158078356252135905246240529289968261596857044665589389733229412680795299745415397624385022470204987127220129793191286470671779530220174622485372314471543651918354815889609400569317005267778023826831996995447535076929304010174525039648521477844201995768575878915231561473581048055450001090631432865562468980567807385545760320836521015341759144295044469835580325413414740382999360894115711019119008009958421625491261881181058567967063740611532953101164425691184115227755550833270243429452583086278664343462252889580000918462975899872339202064733162032744654331499581230309575043922375316111914553709542593511373283367166062366889971135357630812793787648040156245822141587150881693508851479860814915035326493087839431422483953345135436280932779985448300067952897239099242574784214148892472806931071979467689372793607738006350990589066600334402455310578464660244525716655129372567999101384778968338096389864885414085146037068174608765234208304267170403940378245461724009464349898935544645966747414699233190692159424870175662269513357817206114184207361560588623710572589219761473863846216077313692041975346016324616351243058609835049919988506872062675099169310462086482999011244175337262708648625811034975350348692089381838368679220324435545129542911954126231251926791231076483465914959215596939858255005257314785500409929690138287296196869879268124832685837360349950707183918417595280225559881008784702442642165639326269989606695427055641744765071375581706158739469480958404547964313718029682819895410758923925413846784661903319818601857773572988964823931023037974371574508766431045449092289361792516386671994200524764215343199537999634112652007664727123838104211302899781106001725268920653216260270706489179383947411256269430130256591819179202502434359058296990325422853610368375890165248275357462561761651280453351635000267888067400178964899271243739512547474885754654733219192185177960811069801010566879533856439244745310674317117488751062299272165742236527590653918301841974973251196280608311236896231919008818287943123352095239317606189388485468458675989406064901976723074495905646547606689870773437582717321326044258598909528312305654078154011543606014385688321403246328193426565385495580407319686236860586691435032463146536363814827914073564275871104835234755489397704636448931828738922572258626565595376090894083410701246279459788403094218753118811253689752608828121657509007878076668275662965092143097808596231152585862642809912864881059313892559779786183744116726846446781905032643706334490779194158914267032154357718103020761861085759175270420396293823554022781575114798261518820858177908982983367845625168003422612920442362925909267450529188666209856558583243927833489324749152581926897196667595272543137508710378860897553729397190700349403212945442315809215379651879924156569539514056139868872200653053193988011004138630186488391152658277248166462680332120451022457394864004703680898495912932570526092140251489112124542112017486676521551443161020284616968761007177020214904184871529917422738529591476388892653656807133693355965087496591112326244263242552483292984537203572876739722458972580357653883787883765215991525380382306261734851664720034074201644379252839711799019098923195624400999553332602840198275116983966249023634772048190499904879715273572793395863572221721459075371944979621176557438172484267338158504635180458540257243773114869164170785138489895456304654847389834300012614930028334874565322954378867656127012089355316142161251967925841997246554192742514911136413493346868701623827187664042699276556435486282830346752598388979995843157942082797679985911961462405444018462292727217741851526237791159237933874267802740669260522213853330672834135662002483263672109218449913434749163707248845047680535967701647336922949973923953672023035484639156568194065916591186941051919873672655964349309384413708840482551907813702633998565134893987186689746024391982594175059588265925531674235397346522004109204574469448436744398252426752512135719706853706807035042375254630547525498483428947063526150114222821270541689280966497578757485953039611195663628622716968746446431451759102138627024109706440239521899119558276364274127596248709626875613570076970290871066397608079444220474708250810847236734270702182670316558455455917621017466272829627318720611148487897619558445518449444720422700055558618421594207930129184081707687025828135556236979804720785768738964972721211711573976168140083513523041447768699965352760625661184128371691707749402008590601683031811414475310168464603019479246178876798568818270609388148388769778782094996115742091865750288533771165006940700108872269110007793183112474493633448030226749517545898021657723793452135508630308872267238671046609712122293950379344392859860881720243756326047177222143613675335359980966589837446606456695440979281029934342342037867526860546859985768039214977108330587625196205812658028316931801407092090595122278660937033107628158413620709173505402965862483506098236109672059407094847237586077692945201365517207389890563856997949055506354251656319820066920102093166255802282577831569297679542140164755359693225938675777753389727337048609390871227719940620664496451257830842432855408147540336344589926726758352022646338716124373408977604900473720388487337398150912833845386390100620460379701136494410751712346758351016931075120889870527662786973162102351088563649564964773785993885862776731800433831371254006884666794025558130454137018234627654924526036624811645416740036955119363678605688492609903152961879914322553541321130623871297369587071270908694648130108833954984556553511605774483105349457241502808939856604694762784051950992232725305592457149293467746026134917298385046318172317430019895623459425081030016703081809889171398877989430602143910435329263467196311599451147432849494093233888075241643249451647187782317024809619123254418068078819596758582853465739377618836481918333074539407752633641519214036355699031843265880494703799351581877164350862651020530782902671095954544341987130812385790984691952135999319314218874794281778166540473687933458628662229811890723364274088365883693298558560792251336687157233236566389794679179985986606124984291203948762111547093453691733115417047545462801857966351928755558363230461833072486898759016349476605225837872278421606553714051664415481018635633214445483107942788990751342066125195768475524099589119345754270145477824023037558217146660235979258937428009025068921824880443712211784042663220923121834569955863062174822758942181248369771015833741203318313381476782393995484673744234232724414002451246726471229765075092882498098083892901193894696895700778570426165597062278577040874882145146737708150998114741349670073013972392552039465304966062811656306596304694772623308361295265064676078341976473250590383279391889042809920880342429795767862219397442467662828436504603300993668798776474297691946768257686054698368671746722711360404897115331002331254871239355689250317166777879569207203810494659002825486314277508422067340839857421436341209461355378753335441217561808727207621113324446435737085200122521821404697020439069784044330479936183912816524705572211603672699494270627866491686459201583567581575380456495060857046117934198399896635456885559260440051298403523700232453826245622232543284168147303070181139125804137547059528777125216106717265221996651346371909261365726412714028133452252668176071103476881647021817750098102059824451111718762024207830144568733121801490330436013341872902864866757022155045151149457318792005163246967748771876892191566390698964983259489794486044813869217793206708939216502679859152393388155911369332780444668685247698617522657507446066623734489865207797683062465715275826783155827318526155492228151237317193758776278495908325554058938937162018610506007834073185621734403183642760017520962206505701600272475173195816873057903102542030585387757010935076290058783676105954255306120455657665857529521385189768600012651018539594650525842777836009562030770355466033495186882313177250956981367004185821267105529906532558344286693462311358158286801369993548009171582844886841985018150715139398157809670947610556284624645606013762508840700050744931307926580164656579487005249559608226237240115904147599594698870430368937732255962679996760604855197128781905489736889221155410851173124544914897029303076873366840592857563196981395433067418620790472775597168384159950906907286635897626457408531527551368046904309463294710986734062594230583984203937453950376989061161569219480082900035074002070177442301380818620999707467674919359528827147999258465889985693585690655842739228668129957689953382538644884474383031745038576900169287275951104981157079853494260415079913846575423426673099330253938113872561757137929855871302404793535036356083114289259080697911426047630598483159920642571851636051674645639149571990659974669175366013491445344527148008240550373837727016461687085805570341496886943735660934252310108938247407521338596440682927587702126159664489080524389005291944920114497912450039115555110066431584598578042779024678702497295063339928668066202596854862570663912978851976422389340025952819596875571429314866736323588852370456300562945947432834336088276213100844944638493888073964417278369626519843698618910671338320909791228602028082908463770719372907850320773158409091758822302557670443731044506129640564142265740047454082759025114272454751128412312019411398049809330378453550313590421065067967485164309822302142776786761470625340235063205492929837207177845954396695653497411972531702854192049338309790081674759917389319741491816947508848113189902348022508060973388206674840227952575058532573481362018209549618171507409868944844151788501971879182863131796840706174575293295521871828600956334232078988129706630669501368603874152408421843748102058226692023944204193019979261369815524510781511378940475053300989267635541712492738518094322692508316035528439894381488293834298763034839733248396188150712413177939851007213123819558760323026301182257704766686414415915193400302221559683328410847056768426953590254179122865234811352689355338166521137673364926800954615769591868264706109368172110081085870455729725898322876073473550235354779552768823144480548117929616033480579131360246252655552070806210315503124182198622374324404323055213913549176330521804472259039879187296395535791134105503047907545469879582505742404914456647851266773991335697633191818276034765369126277374115470743747491526785052528912139150988206476649393333114638684192678548271323021271962916048780877466178252962853526228519231898670019363701387501591447124169121554455524221486092386209804786347542665460435193748279687607654164787050140693919568395880147433010626199156602720843585059848021893621683200424345713367278223030656214854623146260935882133104423203730630445093341717749315265330066081708625965435342877720731814584053347718629506267535425134399898559847137993671151619444965239946194769053602834921019125470862813995618008803701708051591438254434120766068903463526394077504049680429254866279941606505745242531086978204785157982920632499440228912080745158913585331753445504970197270203045238394588531550119105980594168677527993901818690884819694192815989109501443278644107554569967693169645363361697676924751622986623860413964091925988992582233052812901229938688003693018268176005385272739295917260510164407276163445177006823944173141010216258128030578997076754558189196444036415571842342522852510430396641903282922515062738348230830571459390224692884651700874398852895029133953714079575633655177154658002061820942337543812039035687485414658256073252621140260742370382963867526528153072824324082366319530050945918228584085111005823112312827608635159767118022432532027649394772889793585165383210990752884566521426441412829190536059361327261397929195695442190462640061465940345076084383182871479624219376605619622313220666382127644258805959464301765583000791296685464091122973191090196616201151343704602312084588007898530210529018396133186573431624129937379372873049975432545182776525462431199281013668007314664540170629187356486282269737336190763106710623587978343984444384451136853694568738968372212107865945231388362642525397090051866948214563805646395654835406247827969707134817622596459423611548810793441316043738157548405971111522683257248231258519325970796442572876810124735127857675075293183582354410070621859100045534879320849092385728415290889418263017841810418794795125356946040398725569839796952638447796934695306752917503810939120654380067024820437095984302907286241201489972493873912668654781593628827008927517085621796658474176244203988970173624261161525091635227991382197048005527264446009100487981785884317279793332842806313657984241507692516140589994621208122658037877656706848561864686735040768437775854559383212919893924722979988876681436255675107007078826430865285918656550615052720880961589456781705837853932570728007929574269641309848463700642178424572500356013844491327312618116964846804020504146085934497056849830846281505610716574714900131867951203745949467789589764348316378495000396001673483961379411289249284417030660126211300771252296617066191703968001220503029966628571966585836468333622266828179872548907770767883000550336165133621100277433331962050022881964865367079741206700383384031926100586987960070447237266620662191526180301676204238551587374483893858223156341570655449070404345728197498464394813797212180742328018515858428437482860033088545754855733506279612717193958260059299923153964893553213659521287437386892320604782608499900120975123583566709260232451722196362319763668089504914724325333741577593080691965142750841398845466491719024095626367850209732872989783502574012097796990959733386990999400040848123709725251114896998259075466924576413711792595033310054260043529006620665385176294123254917809397961920317254213563345409197815579478182588543620201236718911370258332343963865799959004588074567931505039462717814160662448848994085415284463112684235397659294047711788907897036478002909179188475684674975781276977655550086199634246694637337198932806113762611441353840311029785842867557898170263964584886636070345717897592332966747740024463207633695805516045201875545791898329061136837496362351661541677693667037934989870695268711058401266497148450120377542494781087688864225202647914362186821684890539951335429997753493356939540362617293703081488593209188647549632594001695700477407909503137198383555915938204935759196489247612658374402152353011980043246882718244732960353386857101753154155437133178093117850128799870793509801041117989408264473624281981208746156240702533745538709582589186217758681746837670530912846773762063628246863740826670959150556023458081913247798978864442466726520236501278574808709049011434607200161291251022307560433431267999944446633835889541588028030386086138181065094328519163526077957249899992119072359944258320646045615348986912076179422723699849239678663546795329432205960928967885898309362237348877737021991776440131308426296635593305308263108688850144634495857450105090590007711521665972082185884015410869737065912222259609828516494343285249190495222696486217712218204922901300872972295495643619869668671829449333849568945177237425775173831010464415033100597527722416075692762356619210363210991498544851697284992757424327017254725605326136952980962922809419584161269493786472989040172307360227621196536247192625904270664018991708849407689394679989016011684893702427489933976468176816629017867338073309133689164863293840855966896374528643189976860269374065919574715004474257600388070116392367597331992950133944663999974526307439139005834488452375204214032109298293774090604731912711623987548240071474311210315652482533485535150098168767190228016798107293217410956314430380011848577465309268755258340946005070081556836685102602085082270531897604280271373535769057229278351669617704839823168770648700909947717683425795161136814383181987907723789854910501006585989601516568946808759004743666995408030003507272813954958008569703817776292582402459312239489044383724083983897412768092053007893182076833217605338226711051949781283704664160438157955429983516183556336020751061177213303047978698909195851073301168910282005223831023116946004611011736665466702205219845025136027839002607949820602063405448892520094016099095462031930044155127052442568275168566637928026433164710498921505483708588757513345440524237936990118235868332514541351061854881797350348362728966649132563584996005458077305988985103757347046989200065802243327582294567647438497562358001755901199735861936262274133502805153263300607551994469920286787270031156849150587769979122808497192982410969693645038273305738627653660909542171125885614397635908385841954455116128735826022738303412321824196854242970153080221192457572211269890741103151254187090181498217716999798492890155762133508114015688739490634811774975027686547363672290120623515446816740761386335048825992660740642522790590400979166627262624805925176038033180071892201032998914649419303073462161503557369566001080074139246569603386686809687398286538226051018256266809425221234688112018481853909187894112084223281497151392432166708922298499696829232878933907773190428453390652128339173740893947081607958351023045291953597141593676067554428268627764798020655705725579161179216154201812507411325283195937825213944922768199483588943551692410515570057655688620420212818420272087254339219800302162741421917334885436330570129196891155807999799850079837236165736671690758634599059898698371969731173723840423490889026060890278637215990939222098170960802712180143879023528549890573867445691401465766189614243498353173662039294679959896381928896333539753245711170580757934555348135432283328693140625053592181350979765224614170217876889085398132180995821858355819564036246970952086039746778396839962730424150190209065268734952871073682894544910308137094100360333327535521825369346526271942466050095072294007836169115470262520005524147817232937254829630576489330450302572085127766670871669641825177672917108262512290416915519660045779167484381736469883638776787696219837853945819874279482704693573825458634702720223790796532015588132842812309607554463640833645791361476395992243798695761355334556570222121901932511094092014044887778339905875612534684671379104589559713279110695890616390883665968880219179232407396175467529716350931382367099643238572914145294264720628210809446483843879821448431423180541780413612669500805722917850961790721002892666946003514828050316544885724440560590696181624088976899186648735877000859079425661243777756911640732819628323823537537817508805088253621138581976804219470987184206435827894731223945881353802429410949170392002263659902033929419424792324572097235501818924046305582990415752942994457202350954804187864781708882007097903640038112423747452522931879000247401242730632448619157945772422508718278529259293110832666591974015894580991108143144156272246037056961946050503188932698900385584105440756869681071737346399698723279630767060520368533622639443162096453398774102605327474838557859297782218299602579034545475955570446316121137202573364099301126578878289792141163837842316921055731713409749285804428389819135610091082974988557807113081346819644119297799233170493316615750343382301280107245538503730198203467502768264079286263563625308248909484783821793573871162761043659429442683394686417801891789753064382207940942992067221632668760747437286442302136257156192028299507366843131339089601579376639686180417661314081847044582855905500568411147263351259683988337864388237490826133300523909813234095210284558873796699040838707485656732843708875828425699126301640391326547503138585688417142947393625244313001004160168368303360853052133450150242693168738176031969963932148725187699601905217678255077774008628602186726151814759763275828133101620202014616188982906714046716092883235946686089483902681914562323408700575788058823387200028573679948988794846901776839777393252039033898738707144244332952527535837533480783921586402829024916337986343411385727701493611071423285357068195224533306253721912378083775356179697038217341195096290852670162785126715859781607818559926784050531491958415359122303229223678890467888545329261803653193359090407261352827163472150418508010624911122761282635042395648073263988773507183865474064185167875537588098044141408196725603967735066347974820264147559123267722910075409663468484954843724658922808057003289476834371132328363572179562084122925585710419202798459559688534244336364383819075688660789775681509891118540754135486236960947174157702677738242860374208947669083390220232340135682436911455303716622585703599939964296033430423939286205365419062902559786961109230622025365719932141375450215700190503081470750640852446080388801135548471286544917673378503095359688172084115950337067335739679617615878460693602138710910658001491907712704384327157525729449461317474945478163347569672045112072720671165622748603756833398528833668982422440423463206548076857280922448980166889564404983059498009642921780752666769531829331909423239957055415313586322322607092571238645925223921937748921248300198327163658973149928706894303394023620795412876410721388717239865040159010253656801307832996485589871399416137350807420489811926900341574332406488462179175986118688894379191044397011955392864187651681751907699839329979710469742886631626911769716836076331898734566765694785552297913917839914920680009435100219762219836389436700301552986834598797700799547460957327839370261341659954358073615121144466803149263102958624947917460601875729106232669713267890663175592592314567932447095490122963810556044747183718145492615685001307292898389227944783663225961778512099026547009913730889973645693036924368434618962753596414384738908984411722116377287934333116639965394419910694239917733540179886060283027431814924690325737503412929139202809114136463813149186868227191466336304144258305597764837326198392119770722430435580553355028214818700673085582680427351430825098189618119327628918940655498793619938842557227895494740258231172846564991005735558375650195115852443770810466363570282311932672580751532590920815427132391898315234216421572876385220037605924797103900805055031144046312925914028154246679383156178566213354471987528886095235400586229615159859621201046338350433281501045698908537935647191969234954124055962845817957295866064373731805174817618816467505941901425887509409787246075507083557131949948101658380779430123881751118675232895176640866350441091833757961862764996171545963233420036086660976207530903242364602227486220585015413272727830603160991792208013128242542978635756225573208082608110734009370973212459900292869310343088361040877437966631314487118380344786877787361510362396755378379743604744215283627562281120565857652110492028118378740361054148216098739078296584769891822390098084661316314482871212756675965168974231132053674114723293243203847058721789431847503054898015232787123198883588133463647329891947820063962392656517496450064946935290402128060664604978634231771616710756150774616219458751887481426733043526562246175132447845276278476399475565116370829985515193962713653299449238895674389099631430795302417288232127789240931248582290761634853082740301675228899658278948553471517454479106086396487409484880018622495015570720603314619220592167365471318571524152830003016546410963505067323555981153823249107171878099881357400230689701974946065288853763146340576382482525704710643092198375848657272092840417025203014812202963861910725395853024268738737614889791112085692376907627926865820598786178844985306468516854184143957195772874612654048694811389462486594822385731012201181830867609609104307594023805226942754163294324204396085455203505470378995891978189521157587972524157790127506984777465357834711231609652126118909964280922274156914167438874761219615092097427221437878151511262701242750504415517184577299016159403453274868192150219671117721275589032089777061401281006084759144038146606649028289005119016103627516009247669188032430864423680396626996621556532350663139981414883546844207589359470866839607158472624376306421900412440912391751817206335268829413324067149466572683151129939988378664758863208297378314136866907019256689829977475434299593551712968598446030170250722700658848813207164012200433427510978393222441763049267157634935887465044699057996175054055660498308146401648343473040688248683517227879909408752342680777603000501840473510962705562444783537475938394620972378826055491320300788716213654273269843063092268039620380112289394458739711096558163833109486063276999527522196916148677702197026753634486913634618233306226610984783742941440649543190276980495675231428098109014903566545279167182295523413668165342701081877092271397166353842057644315797922970612826947221693380356906806494959661579889730482550254877033881052016584651708513026964683278440534091984613131962360376088457344381799632909699216791648776807383396028688444876062972049914666447592205726679319545938562100923613708790890891512421440321122832362832059941470074190107027031689754456085746956680974861481522046213023498714488680437484988396402065654930507702514117130309605381708427761957256169747238873295708575039994738422918072604077889722314821979534433502061186214033629952933111835532332847183963462572982737197159878233522466921537274454350027997545992606753367841730517956844241179049521623413077750472678055864223316321595290018947777302115060059298046139603045971526461749398910624607469194893994230176453233893835887281954880442683874537472723697063057303106800440744088997199695367368056332925304874736331361679203625501687890393363834922036247673755317210740602485479848947878278352077281667456233294465032197070246932741170643497689094460812413708349313219911391613432567139990910820298256876020121368484015120416522539012550157611638970235676410943360982445557574526810018890793709771516619516202124809832024914751389545514951945582717528083356785736963570467321917288333195615216770848401074420203584182439754914780560221240440589204655751528937293632725127541145390928843187565144691280567213948297060198172930999588075386876594122185703992120262939023993791271154343984427601565037956946989338165885282148748423672421180277014689458918354055829877763756154671932692822514234273461924751137802839627765784261186049221131334701514520332075003434480872919836840287264721799475045750260015531179171149077568342318552063376280908115246550731111654184884677262918386908965837995595836422829252841774465276238394956693687901902304903872587418987692661907847273259251530717697612326033572706665199935906796269142662378949801119240123850857171797317455904020773856465176222552677544175176605609754926636534183388404447224956680588797550401711337636384342192552315635324627114103061247694675106189187369622598532587548787874769011245152011036120741291989709682442763358710223341271831266818702549505490714603251434505477002625507732888095565331699946185239878620260278564716448391848926164791326903967077707639550941043564772921212782603991946788290958395107839590052928725491862289501701861979227355678887203413662404267408984957546093152796611636031928563526935926280212640870122515925564725787898208780445722331722804597917030700677511666268828877776751736616357548005929298790370944437788989066600894036067870657876747181500069221971447003636638127452631952513139928616434535039104304365907164404460767483078222155030309448376404243171377989530516894776843432205965134874660081887715398406720058801032216917171177066618997863317981537508835157706843462951099395317932151866020083298816313385677571464283185918585207812578820979925220838753619477056739014607433104184368277394304130964619869192029533039320103819873937667325377801591707914326736802917501388664888743253106628445300882143689778772740682862383158930380926546206875330575226407337683071790868911321282576416451924285178735710274397450139372884640621654357837646847545156168380871358539436375637275978500992806932918677904417310386755780511695524255520574407681226631190847084237208525629633348856123115944270792412657401677387209485545866805609360411703998165816928912241409873218280597760785554167258363386934655483829707268902926283449720982378946003612873468229401973460798076841358935450757799316994757222547669708746220861580764523267150934296259572472865461796387487238036603687395161272705039379332332750674769298561271440412302600401581504676725529001083245000405686440338876745128588786035869506877204655731515582224994285896561607924339879041580386406844569064448707943286982895677010382233848986617452045908770985007559968172940313599763653228025323474394644080917952127585290361661459717296459037465567909242708803530133955524621927015957263875089489335560261860973011914827840783813887673734440397140496707456876209466899999142674094921492229600519630451462760618248277932537251023690785028851909601505856188148604676559546626692563940592997833528408378007900887761363566860983795148756912677732324073130788687148915299924829722440036110858416945338605085012309219264615746741999580031950369414334737228657863453026632069221140474635148874702268827351984233321242662371926942938053112855950054373010476403163614045526455772079718666176020455244676074304524256795013551243962341892349807917615243303463781060865567898807095378309728203682460707442489998422675357401190341026185261726781989114190025288039168396342737034499333663760299408180934537427780915664717785096930990104476218362588398602138243183012584354813297706956569678416888994333274803687760564641820675398659898368025957989660782330675707920599457083913300367357976021649996606709483940641809580417650434478273230749092972941909346016146827864425894478090001962530486790334129839008201210912828269945070351990450121850566181470999676836875402038010065337714303201983600808181237338079747004920880560007373983786271643963034643054958503067532864095589738779485467261840959023112825375858513329243348373791807856439906559859420728401844373681632750002998851333727660478904183204676188078691006176255027305416761098350610598260001523113737528942218784942264051256443005929716270932764760810817671739140640721469050319004444663610831140084984900680274321793335439174326507876378528100144526385793414681973650497715506640216562234241962670965006396987855574509487741576448343777196389422538432424565975969843645421097806610825826438809050810406734294638907662662434385760005536977183229721929336701472299636860414688172976502061013214151037192430549083890985688764341076417579046603083791951628682121708313554122061643883709594403199850446525545170236031479056818508363117578315495718227217654625119349115596423832638037324100238908672455328296743934807330479793773761694112121439718640417894860277835795435812035390856419234072367810465511155450838058885457046151895662930236094503923235083377664980124267832438031401574395890656623195600378817616807092815924764923406255281944815143578709463034915011363528451123538543806332480185120667408123891352688261645480556765557371038256056334364907942135893120779847942714076382768273987354469182159350149527410756188595628994205097045613098322108311068500355511938111889863259567813176372524631714495240829267993077264218555117348676186869332121689940851082802832369936384311616668595777759450318135753524129143459095365448076045365765698621540138493089828096624018436848351162164061976252115305236865553952765507373361906020408127652054154467729014873442804042544749353642246256397998816594999980168924092479236602086163028568877870821316362882846185780280817902435430452491570666733191081888429208465290795622628341829724695404586902079702183267773054594560119340742907016309761015435471455435932003828166142761922270486583965018577487512697692934502332125087675393473790159108398938991470399725854682083849376374435745408069279694490058755260046753035628843380395472207756042436090624851558281888202848430970128394627336702123183608937347127652587864873392969083423202943873745668429152650954760994291879513286015496237855864982042185222743779783344525964170405646840180154811138341040943021478034964945708022548334947496863104885257767378213711724476268059430527592857779184013667462316688444541319051724878400558760490849972398151186909886433112938880679534820787305112379666877303240311191468014804940972256604822545191303524619332627642105797532582567341215676508337342836966539808703898519652553971725760279405114341719321966869578984195811513973154960177021390721090433747570172361597622498616045258524136754228534611068573173996930509691358997253437382769665569427649198106896160280994769369368492699022342742085560292282354838556294220903972777337617191725680516997479048533437049643145619917691963781958744251728505532925732549555692531630943407115708217837250851779929293402019142289902692024961251885258275955206676339571318893903544107020470173546911188519194446697024163637253195770918148126235741423420287629673675289236434062677054586273444765966911595831572998856633817858077735503706754327164400499489520641249573655086334370987105437426430845691971264336760428784477755243345788625458970616275670592329807178657459894409991518537434039897314333406710694600224109958291515121141384774375636931743459799754598339606160077032305472995740193102040289098123824914201548507244157252894181856715727481792980471978294313717042725433105654008647221014379121468168201214143743741898763417571572027235343544084558141099139935569031526946442210076081118991099265706794964494451440113105137706870254713883514278560819967374994076075029445770218504297031994588140190156975156281111052381344179299087925183268695323420705775987374354810657874923530133501048424189924195204209037889368159397356962803225559008148919671094224343609323525234361407723114395936091428638390049103551243996204522042913073949160749407058174264427085135905780722980752801337494707070779785366282116361211031318834699065649289740915770390482853038862211460280444678945276295440589260019103640020035854069725330937539146728372004143310748241040148316561816906871407838229982172032726753732390975864738523006465135340293640962944646272167405968570359242159364169292528565981164528385843911714469427024133646900717194358414002443302495878173359946750781789540993175326054544178150820892091234479853975665769886046615093008430368533461687513583878809494446588397761198618969236693631021798796029110955109695365268295384580904446012174736902315730541885801093819416801341996427592029467074096070050332492271808200891077688084719415260123367726588529592452245997059681255521373065110102255866278477133413951529924767464301125499740603905102768932178176941338258737860140208251537056366891893456054269114485785529096137544296286271562630477925157392571983475232957500074087462535055746910600762078835694955156754460405956810640439773411893106644163990404041942168796486223269403792234876387176933816242471395404271516256840591848889629839917054821865286261207732568372501509640083390329020085349523539489013197570065506710005988481437353461694453398902927342198107167472947739813559321458907179388451842527649514308869605535344905710657743821618598777343460222482727651636348092640738531945524549006317719535275272557197354807556661407886030203355069074870979992706929732567354820345626828767519503322211797118952145236647071830820777878647497971417380132176230431171462821879893589693254550954624819123608240560634579839154887154644641801217576865898938467050468980872395767173102420309397529243887762868648516748564199031968318252061851605303941807344266897102310528935497183352272797495131837291924514291679247158433261252123371640093173661284405733819356697344612848994340990698334098405280450047089741690436269998174600177878034746025155877033729562096764081021849533168058426341571684069981159899189779967895482579342507487148738433981100626605927511514904257576971961520078962806169544572789588029839729677439026888635844652692666542249381138177411389674453566573260013834339187442994624175831717129344832495559308838014245711121412724108532029613715230653267904366322728716374371819534347803090107262904520191374977806312894087747237232577881834101134365547744842068031283843113775748515697053967593372702215740393372347796997646566541291161927062780328349632031219471468787662953771968120653084427022099433596848962455775393272397209917330591367448171244944791700151625553846885850571532171931313077881696371548211038845132561281525569370913059329959344785810753543156725708201474202485617689152143234949721729168182272264022831571827002488197556511857224261603495268410186736274712832469649228705021979525634752644966965119040880119136167894361894583935574607468443974555986123235137722083849987547524727918127609058457210685328330101893831594703347276925681954210158083071583139927332274059257784589794971139620991584638947833710921449205984204200105890960660875011419220275663637953930429356456795175086067882542754315715169091571249756877260854280418911520485072014035739456929549329385759423109290083265770163453724519501884419220594586705978391047371011153589207486056373965003997852271333005756843956869636674969046755204787844501540281521453244928386777645861918756406610350801035348521875457413761356285393600931537413893014719211090254013686701617481015581166563655651836783744546825012372345979360028636642893006085091972075931265442654012380930060456585001506773916535068804676297208602069721976851741976990566410049155651899682775275634544212327687970015015785998389099450844719614099363738289074044123398799365555637299963428482820114114237815786114471791800168016092257867398788131497795008554321847472208880206922805858845462845882483895688914868554059168535492280983078731949987248020840937425940255602357999893592922045933787216323421622287233343133497984310508088362369467242373322081061970841102426301420398728247022288268635081853340920488106297205522359397695239047618329339275731658249622368513686609159227734661659780778455301856378207050255958532070725955375858950711711860209689516896152367059450857496941155909460619379274100145439592039301333506000053592529514029160106122444031798625347986161029823312016318552722827638721005577662340556744781030044968966229620502262218740600557680168724065088337630283494649770469163973674699465729875747617592952057434406086152514210091072250064810101724500059847186273117875515718397324628128474582885121637984271923246877032797203615862917544990528937853520958454530095214134608068496477894089569838590060596084645369982372659738361056077298447180226626784293731137311793675172806796917973237413876461662188774868171183704111525740952249057311791926489260268211280754967148973076278692796307147934052811819710984713115751816343564921866589511372421084608652081206812531051828464431067987091927600515284272532000641504190985392081733425647334709267685529109316919052062930583866140496801968670623704218638268245866518668327133839013465097864447886205401677199065789557074063586896945319801216747713601465305404953266927637925097380903125141037403356988686320912076550767542867929212616009267678263859533900758357405716332821793856212748738694841877452320981032554485406683607840926395288834459364271320052145127411174251404818629208532413541566291995539898659022682550023077298758616117982576987032485510780387208063750801197682988001181379530180647257971252533158748686379214407060421088237584825629607815987435773495204803693802060691515260825749875127687844108410489073080075147583998255364250286246655603638489994997394032222731394758227839825996324857303377641227771981324302376511266162819187392264301565341693397024786757763640247376894797847881548718636129147361621794819465225577543071761132017049299730984717061212547657622342387183994624981828789290588504158038155122461389218826701532677035591369808049993906718901287408787401662655399135056051575653899807012154622817561955798101894102409311518184866462373854749000513648801801488010097734015937543692247735576116910080025839576746545744118205105071835188222702906917990521979025655910486634117608888367261499065424914831690182469008028313832535107867516160899573466797600664537549820188456714644661802282559340298750647701916634513414830609068486904779110352052862254207462857166482501859598350774310617995371033783540682020204810815487512730105124978395164502875174129686823121513081745688681604926091856550970403064947149434763915044866621678854503318505083779357667317513230268012155137060626385952158596213969854233295393477448732833668923184648783102355175943655939739617103841863837399267489641733220894884066558854652193400627198257790353500567074026196226270634829466453433425005808673729211835274815095235658928949109593034848509567259588223270075472092935779652959583867427165719875241745436552878864418841874255412635634631291872042028244886838826335425361098760864551261921177574573605619660887978508256755724442030664203299500835749685426459847693182232352895583340566679401292850839439422022836433484133698824788727189339380781423881704247930695813895668484974377450004197852424821143220384361080497637127277267884247252950727839816161370570669388317035008306051504109986033611277624191852218076886120911781583617820450060101032661000350666927227351080209121222496549453898181186550414176324057853352758899174248828568032223304268550444322538830423836149881298360516014744078244079710948508541107999368538313309191865187163187920458819131962588680715739209105048689980858121632720421423232597723386445265596835356394376908766503845019041267484494359654627206599637512253519080793397813672491490173212926818656364778239308672133617073289159734686029755170668345082749143254525763179258853689494660191838408230951995557695066771997645057403315857742805110064669847487696462333845857063232110230047328875342850514648172014126521709287866300370295548964855360231000409885433603296513588907608596116840326049136945182331640991610802453007114590523207346708780767405739842245975455039748219014744982674971396567286095347786329553951261526977055582003355951282621755287816350435578048333674186070774286913384425811335963458131599011130239919241749721076674170316256116295768058169894319003975616106024108713098991061133436442657675530895812920222998891739616439644319342706618883189905175327558233041510716463641029398332241899008948741284633498399223695308310780797210500001077026615092020593425127393741388821145377698520617966800695517611118692789957843362099600936625100614815568078361803052509171653705877102850579653543373459687331771129163696979029741141857822166672421946437810421153652036611603837502190781697895755901381282419282764284915651126708188516118013727099462853486391264686466793088788360599655347672654018653991232263179989369463246542803317429442525182286268269985787692973509032084948680189167689939767703182180167103229001120532557734633376077685652929224913358850115008040494241223753493758430742663184844216680655221509373010258226210013139234968170833235315101256294130447677898433357589439825848129067773371410684844837673197200013861497473037348523213553872619687347433553253342014849525749240254467880669299276777941331970784922814833626980918182719840035485516556956317012893207974039701279866466379133265360344604418474072979657498948000348759696578765494095313969843555618556615983242499770362119902563912604048037739211780460159117015533791130038147849202493309406364781006375044052876510811838327700568467806178946084978688833585552077757920897462591169434754282468148727845155965941549233487935673450350621275411920360119052628337931124986479290517910741643870015409370293910650142595930797463292602916864438792506226821983818070584503062963203559061850488638787463064807977382316069240306132208463256795178497357088290830451387655535939705316399771851976793285597088016374211124984506575950444623578904415245124775675022834149705775409866913069853665374703601142881062397808792095499069446692613574174081668863608866003462225673651459019233378508075535244073108035433841597699054480876777210276608616908676691328286067025917337673488381470076572709473936724415299141107099900078308291327856441614911968930837318012670542163918958265559512384737958960274560052437052405834888167202468818924278644030371638191506538267583399946845906903421196820618686412025760674822175924560835204820491293730754323763084040470248083304089918977645558843381790441877867891123864801482853664828955259343878395145935619453704448216730422659671531830300842536737919682354602515037258281846015582338654174709570653873510266969624819959243219549877830299264729112879856505113215906415205109682433659439228823823309298058306837039287108414603870111037949504244061835750972349411895269193387313445724796511085281108550638849322764406748639593010597415080796530350184166468244638815763836391044954825854443073395983108516228053742275962322570925643643137847138064295441882753990507199187801322513336203999973815168650192520151181398990128074598064903469604693686524185564756230234169605886274700825272890648506752505322554231232401000175671635855533934082255891581225836386640402431332821444623131628070714295479268822807971151620225206633728464531841238349732611425153218689032632077843906413893339897887941355323277377451081887638817967121183173292491280683038281590402606418855090764343291095637062517722180034690246604581066714257995766214680758021720918852861663012021164345832392520331939813484210328446370879197632494857091652958093934214301880842427879686886388255338598923974543006756157642867556289540572241929225845264134593428761823319780848642979614008495276262003786297282536340914057783579602179785134323921270599478115681802115350861270532765110521340323950937269367890253470351535962245200686924824444482574910188409399677033139203026333390013937489830200091759996433659408309016107436517619039144766701510814817999649907081517855989963679811475569893070284994256128190267839913920667937458767155888715110661147332781774486861351872105958894949354099282761151361444548474245807575944021692834833439688706877520691237739860022875819382252239968418158623599111640608564710541599123321110190722906724329080431224661893043397313052009628253008382270164973236717274206237706161557438963694115521432766873321067050734300800381345938350789979480944290279569816785403413985313859174142856857743551072013392090178787066155537206588519606655720689306291444975437999128578883125699613176805495163616420350371066761539684105579962039670986806221947148383227863580807950473864181197851174502628002320848155569880225234376773778369393005022462879605102746109129513590097075675398455705854254917386951206253053291922303370519059991509021779901189754801914720928612450646215646360254080117697742756410125837851613470246538703692772942240583187372752460263195019065577375800283444843186069203517605612332044484814344703017115887413133280294180972050218158768436556205207436302522435486165958462017926558258063436867590282490714316914532718455963185026019223350183385282298143687429535121924728817454105724626706052286158744374812149037597639010904221394953460492495752259001487372846512569453485092626929470335384171446032997903627843421618627355296144095796866092599900607869071353624652207890304927006538430771484569912045264941238984888642189838878312575784469325236488525942578581623638489995320108624860547705845935464557576150021356552899563620126246031109315658095038838771774809989709068929461914659603068183616732434217669600919268088478656259370856934529039332214275645548378255813702926697260830717706975486662241666801879612189824273046195603141955780636359957504913527016537452399665439703117170493014940968256922362265785937073358825399155142001267197778993054790813430534910850081639777687615008068151141681355731677669467654211732807472471651804734233405870308363299178397615405973758209388016845540773135280753132908728556815632913779766764251729377454601833245256816501394143462495322346693530156964579891912013173642836317187465150404211507219299678125570526904353456162534889828512373683590010230219257187545538337437253162565165293241297754752477708148801029083690767080861297662296927173455607549591120156217617807835767152268102118140857178210177801717302974183849746494770038473431969691387507951676292311152005293014830704765884168151453998736951267866773296894391995509525113809708864571553911584080342487905563054474282775032773207096287177452491641132131258857137714305406260157006750782377241370225556667354112786320757892407159277156784283379458778063056060799613537687974714995189949517975036019019415285041238221683316319809526610111089928403539796514189992799169633429400062468453383523152652235944488874729604008048852751817102201329245407762674492948712711081698194821475702155698430005328298276621030091559258929042359663293935810859816757116245043868028547963527273469574167947244012193701403510049687812014809282346507712445581693642973140744730338511512299622702983096340416074870669899443375479488841712206933892976111233805314624808872417244156569106346085227992359303711027110918680573778447551675320759826969981957940577007844196437747633758801089379240198841297025482400345852868096430695695711448830413587189625442844305411973334797379924060673037437453473288084754082655799305110485075990083615031727442692904295733866571742578955173929481933249406086035158551742560382434123498510006311512213866972578555189979217029037405075561558724864617640780740305160026627828747238933613346559156033341208859765648267992392426620822686412861839742433349079110143868613606381291693185680556103105099798093534270693595455862964670869026716253887273175020216970512090844420829098076211984826732317403772370887517149826831419107950419970423939030329669851223839601627355551424866045859360806324293064590024520190610531887807530634071864150042221164809670621270674286789717166131920197473285014781069322224241198557168775997390102752966331435504859882849946541989458272498817851863200083648390677734017414264911933494146089043491766646953445378687350216262842366410665468473670634725214017823852135647402781650841420384242646200609578044689899333228693077888719128116055946405689257776416034402450763148031344392642539185213188341800137623889849461476065343688922756431419354182285829277340695794739266743814104781593899404812834810728061934207333493170153645967887356431806520794363770816199618690098226491125451379598540749287665146081659849622534829255719172915970363402902472202865352411278130371087505941590299167839178616994686018466873498546641254500172010777620974974520416226705566470948858355487732299491909799909513302089470708910978367724571316574745588781588503591710258383496349455803390293398325295418155290458062480903020751143714491061075436640374842331983254448850610980487323802051286344277374645406701818536282261225835193651203856701009962792417567521712176592605414965953475793066001301531495673873205607240502229039221327863743792525332945886532749870155028919390905028567248097358661126968397902089848670850104552380379616447181320869022955721387132975467242423513465627249541516739371416682832423274094303988073540830852885770061972405721106035481385274990858146246233287067483460204514980812884549819061001962724725543436393143613857627368699891242851485667020595436140712846236964883780308759625921175114673991712083093861596555528301206933667559960956724807870407603113292999079667208464349354476850375278588194504733853839540448678699845824176838329152272812159915079190840137123683103479386367009419770210217633332902648526594667029449074636723266317902830527091643050046931469966774484456163495166200573123489144555426986499975223449285713282738789787523739665910352433528021524791262712795606824677146433526726137288950858966836913982882953879498406197201789882197733567027472320696049207181899815225375820970145548239118734860899358378095601846538736542068751454971135471097090507572317184731538125225870964741562660350003890619372047141808030943631029626655575059049110306971357760798468983248440042656459227244216267412706632740563058973939880209978614930898537445479928666339321058007843782148395039827279169513072461657448257495147403989981173570372576049092806391838532243258301310233468074329771317470246393761134119420325691986104308949933243632543944357561014573168730779220281068680934396396051973304264251848072155272047326255522226110345222584475373968935782816428484167137084768074446500319065637792509159764104090681381664277525128350566823330411917463958018214144853096169972886839448492853967714879363498495087634111076456122215804857522317041553390855739267539716849832228805343733158630079366903131818034610201124241897749551641528962711835153113043241569613134302190785370360506719459145426799415540926867589854549492697248875725274009144575743494288636184396273737151294904035320672569200426571458322207671881208758720836645545344564179720218349523573903340898359551545708495907351676191642861596857139285671222376541449882558877283299072599494294287386884910989131121202704881151737833664528930486841361484267844476028552011990780475332612942396539500091645850556768201664510186207762236599751202863872194896722544512729087861872526467894617543022980561693259680154966916368162828337037197014030638049799702620471271563947757816708119836001564543468005970012791912670278945599900545009254539432223595606404452734072192668416484366183393607831278266828980979291501389888386250755826882903602967809911940735580052033628298478348991499398314178934289295420867381975507048505582789149640148573062119006548560602213730718214197114679220850842968541786090312168059476002060175226240473620394647712303948524201557336195287415093825667239826328347926951581048997674585198484211154080878285003315238027156333181272464134969479128349291498882163254504021114214888939675709907185647503890468621596945682852932846563715665396362357107430834454725090050772162255070995229142810029283410475092864678570812688260359226020521132644499593778273168458145942125982899687928648910238242059174544537540882269289386619630401332890652179757702264393522373131145088701004297668846189884591087582920847438356844253489841159777932798756100867859831288631053390075680361153299538388646801269558342201618689889209964865344781888689159196995791546043357063966134285975645547051704963519302575494816459415094477178359233210976631664202657279571262419585638689261802129677541372874522161694870220677759456220044766753497566219044471638232929593669477582938705514876113528698475115175398492881997679013770108717813883793015545231883166928882407441612998078485684217715912224237158745907381287729741679303385048639578220345995487499740526084792984816656906958157276232852327070756436666139089719586609607132253869071076441103515142300192851861317822254937038896989985710434997027412432757231471831837362470166140233607943401483495606543821115925909191386608812944537561368372918368542937712699425227029819958758287764657759835784695577943965511432679214312739965412832655507244053873880871636178943314814136933497788604168888649387709899581289619580338970911475298905053490457418520551458765458725131110189939196695807790703095234804659118932901180858179532652112047706222611435968587937833185502283391942703278131338374073342460380767745269582014139959903777486322682187855620768931937060099861724627431406979147170313666957369065475492873259973033361926398362356330958054356418091771482902920613883404341962007819611603578254122504033723070590272433345408941796657528277529660415782948981445678440782633044140711846515462814979027490403099903456896344260556075819321206916084252881616668768716292772630364919382135606667602914807356649514141540174048531989640920265990195419682659962128213594728476035351182361171014013711182001052168185950183833952700170593848662912397989091745250410610204354864694614672906841866049789771685363413712722549261217711237406755135095126165088019455222247656884214805555194135409231251459779658042280280755290992946873311729089088207089972599713457911819404874439156877356378657123871172777081761699921524834778742617396738760661855513594567839756028193189079496852277938796235774959913266816142189789440080436685508626544512089044247427613551661961659543877214729985329045281848395106706690843250160540421694319792660989515328455721780569382877431013637056439547674512255904859561216758679458930934355661017805555487339922026715164878815374100089582291793423503887644992557038328180645760016171558816993740940838619073188657869379540456039151580689466210857481202252205151542059773989637049734359484298561716499926172759976160443771454127132358562412348773744738935642608007341475928558586234035562106075816365131938552736809901467740497716574299258876579286433399910046127685679300490247422141339595862116812661480187885018578324227296032932103549098439425209183580002370866862137563931810810788671022846515209016241094842090077575405735982779794495338072441244967898863063335892547413265232123621482284194816110467787257584437813557559021430641279340607393826872635542852452798352654654393632825662362242303090030177389949427695323560563519140560103282583507097756808040026981156401970404206210831534028652412054286275175113630113637745509052938752996357275010065690001749436210857276366853404937830999897791694911698414084493816260335887802364594529050438742175374685909146493608709311626458030401671422466564640033186555823726281043296598891654183862687891074349469609413500306250909324263653220649644843354737850988976535688924149076684289464167264647352159919923385877652118748368674346534319147876008220995370207378422272236293193927364588390025522194182216108535153030407780357531886226981271901707007835532689998413084248699602004745190691509816192054325585195969664517634783827222817107989062011089128522577813682208425154707599702140052818686411472262469546929151863893002021713520690625181220665768331808052224187856654529174861887446193121802480466197521303768204827106193884575088343785577924180945334647499541589046476514097236939768742539006079972803235288768739321498331187450903254375313483857951629697680061068438570007911124769918744253334681934444801516234987643330359196506069716844048076145655379076122213088893529191600459027173814895092258886283716211511708119217181962654340177414757271886861657692614411367334316327646543273112728073848275488981632972843159607506097080802717307139536860498134357341727117179146721237951263860491383276619035670775050228166590763336887921485030309652398805079080847502043404372292033321466402265964901412925729965725982643206385187768879928985776168817449653519252542904594648902572632765173398466954300525886837553318285250191586861210835197635004559980332884491959859529259160197943323860564127384481434167510282482490004175867155141886988659879292303657188105078019757584394561532360119180851988898680390614424021099001673451273342442019810993502146974441902916830431464428294482552209355216974344017556436119598037127539549828102852328383092444301835987320446465919030296041725894868235378489079923144446002317520169073232406963983227080835780840540552748797436157502479092919094426978215762231083384265914739504577899026606064911509580858057718749010703583313275359833083733793418064764212561861548038756816117754337451294228760810945116699691603059262160656917193264647993181198751870959085186359032683188592574381823805255721495519964967744669255829557632539324056881541962663760118249409952752217191405178090692434737089211668986536802558380127437275407600870890216906692532213053507970554997629911447509717369843257834185835085713824302617035114914904316318834493100975129034416480982359609028391189830284036977893398876767793224027874567626766875005174959610306136872050225182785954467290429178965199498774359100796650413539969034651306306382691235847351605914168648371194525093004506377033492476726248831813700805056998160156341727261049168452821189961300418524138902778279246565027167972798652138862090080762964420196559267947989973024176110763393412669702191102135854212165581806102909184614298035437114896067804272620573328487299437817990785592474353189581573601939543096175729871424437665835964935544299832974597010245914533353198835646262714241409180000118847429941334851964360086162398798413889603514653820309810361803773600459788553791367371974960518989386727200642979086730632548259705665339917375546854755303627512784960705564695235280446165389070320640559631273953604293067888316687604810028576636443981682685482214370916871043080919054302320569623620780871255506108123596040853012509683021923918499231542523089387939670012180961145716707876114151060591817420130860954160635092454123676584088056972666277705852348253010280257030574556906270205937254336256698841846571151641955336777749890117751628725116820861596209934796004222593023334529499212877757367742247269361658991216622630082471248695736857510054973280237000883494430049205947823667359303601037220638757189826334608425559235558285378452568731814636325828950215958127881248278937208468352763023024839369768775212951201978144819285612311660121934402309498516958087675368420583876684665052633002974250959655177116247851682221571470905501357568218024500904602183653832539206428233229178900178987063985951971505575562332989726052271093351969545129159685655759104434827204777842084504442130173118970336554804339418685166555472805076865089147923508291475742237453818890466943911718735082209480198179399965065048847613572858284724057773356965007468736918266198814082218385501497832039895456166216769726434181487494487269169772842433648466586905887214698608499014528787262845693380491894108290041124215877398934549351154015685606120254141127956265822228786068783902524885350228979841768846605600104943136373335986151920779417200030689163015050256682571330116570551977108903112223585289013293560995514904870080454627436776724515305224154546158603181101842845868790326707301099629758974541985199877609916946167876674256105936200476518836082465424649713859556478202685792446524581368946200121193070522751775923504577821279709619312419342008443529361866876367878392706804834918285779976473818986794312579001505742901545293465268737723795781728043561468956923321236732205807699941238826794979228323347876496649880425351147662699931526297838480307594288338571067472897323201168883083562864662295137980540857596008024801024359088152592097201874247859928821943902352517618145914589821095544915403561460546601024080086065373787036037708062675686301347308211637624667574933291427235877921884298343743774098979588646252946872819344134467227130460833888749436592988654064364771681639934017846003075045126712244299584724638360329263318231410001226730787164394678042756627488257568061865490017508572878162819661543408270081843704331146896603101848852878529826343272359599955870546370694964775736777028443614367461571644753876400197424464828321646094945900041852319704087555503314330231536408583432707991104305599911613222503193823555865148648358663432976161733726209347005001191841383723592799856373533270290929961626285832440339376806868701771549442992297237991151593667019881266846305344483977977233438434918507252693573840161188229604524240935184692084500386634309970871178831543027785720988140554069313024206092682258424079661082948888053546906044528977626258162278405330033130529420202703176239702865971957597780986827468798414269143920060272065811114032134737620369098766019956405749381093034224858296969950809643302786016426228928214401047005477931477287535724501111307581626847321011840177731979562907073902125817655187593839100129453380278693844368869074570874704788240771300427328954359611758404750801551748668099255786351311846133505178453563045194962458850184770739739939512338184570320232993329277777696477519039650028758326224767361499298112404885005833221673438360338163243738498954760951335188318529135433731318200595002224659518665113781716077780128596791163290725357439682951551096252316998363136264593715077630099379942414108182603549978466445149860250930466261317250554689752508203999328886461523154857726786191873031479089763563104997111901728621974580965348297979837307124902302244930276874338134005610726479555338992056839836412240481692328297642687098063006186158013449389882115577501858107191735349185629004602441216349435953097731242769305220542430165938486608920547645247490774795583177616891608692601511794450716538254013155879296887988472717620602697249432776218011488137025812923950944505387529655863206766254362798771063865815423110739295114021530274881230137865741985144474984070869423278934360945183973308691877681079871435471193996964640721330643253380574107006220629857407330906908752231107135725336363164504914388255727934443211137962590633949119285497477146420745202911237053839444499026804736541197284180243700745565544292585643171407846862494283169584345009648873795879283223716132179232471032179904136036503598687614549399250807611151093721385276160799186783276871929687714398507532037886982931536996472800210163626385281267836704397124935090901842740818921718916858034537505798059354443103862757589741561982905501859693080012698086951708393199724402836409461720112172739961188245429962769527471328517227567234188679370773174633912789254865949674290695873785946979683542837991927668326648236994285890217081154739202212209219400747365756892665576566943644717006041454451486764053030157132485209974783840947549361729436420857026174460017931227102622588593543007440367212057780519918645359270804225146144387209094388176462372664277662589155105049737791082751494464459625635729460444388320309095007538824549412230436347206544958219060596695845627258183330951326220995150426902926919676025616959349037166689555645922803882205098211939227264830500599937230755488159344585693781765219021288975744260495739897083966820461238179232379438378868497770155042672841905866728418943730228316519083233168158797703655316640787487483446304732827764245916338865571684750378388252423379530555968320126279145949357021255115698772300164936774674559665019682356373783360227535564141040412607281969784306870452364527555024097499847345438563347335569359032193117506917981001790581140191463987651477352706690294034436821223097647508151978987891884617894934735990720734565046860766929795001245270743434783240923917173978974913647182354094968972071372250400950454202715192824044142580264357746104722108884469668211944049148797842520372754033427288524203120163586776980432380735979154382252517522489734502706505454513828873447505913066002091418518579889967845641482614896497501021596578306549558397758002508020570678220224176755055348423458428103323155839557466328278403910030707125713526398625389650000188657981603735702185614030063721134099581853176934489862291222013917682627010603026387891097105940453607244624141777249039674309086539023799294581246167392899515704220260590471240451588464474292685959414465615998876460659362520089752098895878851568193899847595380226926054047550121978310491926503873539883561229331007435508588397571515576870552168896647070040152188504349073998145043832673781337204904965938642605749954227564841196366128600461767872162374479679403824861024447692753933840799457145072427289164108593281934463204744308630469590862128025085905798397478157929786163622157348550334287035476505399219742467040270325510182581172719532554732276693620760832821815847490705664012473389121052210507280929088602003131127399609390359407339002043226600014560569522300924836777791911071595622021909599842630016023747640868150970362226169316233175878796894831051814465098809938416862505336743969955074164664883236266317730577687789893337208566156023708458277520588350543335892944863674605855026651539257092417974382124102121558883637700267041110472814024977240247379256002366531038895815007780695640922860303848650601937204041932982673068621703955224939693796046227162378946255419634508757035702452184244760728122963023532478264888423919439546834453230740796648257165845027453736622881631873687533266411913569125928803723652520629632681053219625653706111893499859004146430579310108196180877723636597673806932826953234716986187181005666795345326774114619314511496502383022394640052732028134792830571987918331383507669090210799933589143477300370351563038761037482403519497910960675452604333799638591921555981036155948013107681607382085374996544464532481493214861154883177792143587754016047310988833418639373554151505605680691169128185992484648096474644167014079344503611223653013103853883642142454168284733102545554891158080200574910646216029589452258558991095634534941939952060170556938312881088565060815372003562352742078703307572615109178779405878980174538929501555491481453295274672573576817016963292370403198771539570475917939597322929170986988135941296444943625677334470021073996695805425092467114759446255360648848487680933881426417471430293013773440719469330054384557830226555168860186017962897763563870835092387762786151037973211418209293151152406942745154596605925482868024349667696048325947565910250028439017050613752969825731240059085161980341153751915311473524803879851657838902251806815437905795155349842246320743407276556937588998823154380394479467885207015180711842818133779002041376622360429026090747767170766445092447258237654760050187653998968380705733902032794684034187541524353048751503590077542934806170721866864459354783901704902230890957025705644270337147740556527535662112507598216615766956120132708293882744525551025202244440823102448895510570477672930411038819011368743713709319350981708397951234450797002495711073656825049863536834365189958939825516368383345411846344226008987194121597452848185771526559472038692871149457970132907040742446275444529235198257677161931409220384634254555331256719899453082709838181933876429194731806903769843726919242835305192376605592051602366697899229239400172953816869362413947321085311089482538684355185514651730243112165325181743745614356329230421959695634736126272402153093030697469678219434820768514888105599591453889137513998241764202559170732224007433495377680249790719873932844286217802323546396280987283270817648073416416694263544715273254382089744584727788035827236155691739139346188406403875008876146327373607475457983942124387752931094319988126296306928891280895591972702701617155424811383288151654602399033169575559833125563431448142867367934867563623276615612598509400750858039361824874337605213757544422349368877633059338100595816447448358351769411187020873157084612340886418468914514900498884565277711960057888188768912184371489512201797771769626498721263661387000301822902494978851183894136119560584595439549748223599636706431950022167029627472665683747274227911875438177709193375687660407881979961084948562156019502272474618710684782444532086168140576594549113925703049843888055726546076291978571179581068897146422801091678707726168669955218540561495126960995677967619391662683835035773161867900895020472066963732336273900058141908706928996288788812868248280691330933738240444486593262991863358237240847217986245096993324845132198253719506268533896615992511321005233353225363152106545471924854056994262133366993331751633459847210244710364391820698422418843502373332601366176043400986493756680439874883311008867970733007136044499233423374477334306846937875403609936767271355165539540489704346893291097289115873569658184535298319032911247535470396831580618134377656405088514144541413873885078491150280703627635271322990368240042823030249844381793322216630021592040966689906682909891760821395449219269473681325213297940971820323770770569175252212501196937581088313008414979217886798052667416231526216003228989996342794458157503725615344983311511391437046412928471802895718370485205673889044495626605600378599497357453611715727409829245330907239223800995075165695831017618466463335320001911103430449267987958679857770210942636275845836752187379860124725812985032933537755004609741848024405251548459698832359991402865768503370660373651105610627704219573365346961824046401524124776907346676252715090560867996208662829327291937687029520713187121829581667366871499876121442676466071334438855832731050514556633121178659187663433586695255683699380024440289416039828905520709546752021615165602058933728540039596826525056899663680506861763109253012799313024434759021412155822091205390339264960756369164748186516152439286281051140789421834909997209880584529040750606983330996074412757284377077799125237366583495696246996313084586849513435274896894007633420108262694058882581840823045969897054425666008457371719271530107160394846615110252353785971969111751404038613100009277800677363827729162810307671990051887827181876128928680882542573658720685307485013681679617826465054243592305820074396743687126842972302406742788935927435494788953230240836473984946416625386973348862313911812300082930025385987710829861900457288827452786962974651768126152205828758695212894046536085893229156790646636943216516754894002533639601821174159473890090129511074263281174177282444828907815336996104903973315146799457231765817585377394853362862378205745804045268669505111609682295404402094016351843092175315478259304189915299097179549128819192160745818787033253983151884772039827549994540648562129655883669344683336960212050790052939269420904708082005776724523321641822090113758903100500930324586432611635855793624041290651276820444502797686855334455818542337076146065891048178032191494897606531116701506398250691750537463246106824870527737814588551108080846791814480737001394938752991269226458543509022472976036132574086777243497378044464438450604499315318565359950367920929666113332565117655176106374597056556113698985198333685800224205284800052471940635593291998741152691607919916962835001120087980916358078660383781661512735712875310903558938067359137657026643377724788843761355390384967012813116665582733752673498809199021898173670089794388949474619283192764332467957201901164196479664652175727163711708433009128231812654811214813185406977137807474793449585874016312318125278777301451657751965282763350698485343687185619246230961565483222706242090210766502397101658734972590367312228299084655813159052008637395351546715926224258995911755613467166940767237421473920919552055790685416718305820761760730434295356301674338845288024054417709417950152844630778241365417545074088365498764901624119268435213853927812541419784671027946862697550887389350987182038630334840668706883141698572499077821898989093236753742289167645316487053044478371131881691852209639691375695173604053769366379877640877890791753263386767787284748887354786482836762788055141066173197228233509491323371016247049012828249300149210863157409683797872233627254370815625446033812570544889959780850854909554775702049293790937003165761698383887979038076027325681469592815892668191605821958803204364111038467701609959228331129646164222114282181151561814976317696570356505332930616681022057939886294895182318440212944644608589987861692307671187278408223354293359209159297535217564273967867679353883156733806225532860253404315606829581523839160108964640019483525739430260136737904790497646424397696118485006343236584468178425075674151960607422942808103179238648201606036969675843944728778809596272814558624138820565569498820807345117216302759400014269187804719157356107277409542962234968017790980639923698680715243972505147776540783067269789097837715218069431399448569869411503965205493081180356754648727943645673952120933956181127892588630706905616696388518166750441234272195983577074668029397572376377617690856569307021962978993220085777997696521110757315723955098224691471115920084208291047399955929883166694956534816076144950124920919646568345046237753161301201171330812586069381628630607119901343402785263779919287714612542356853846988421896353685961391302938527470808815339553717358172844016980862481596478878388012746671075994812658228786247762466613348381247285294863633590986576399808935028007257504315233912099710911624799610355986616806318125757917285547976709679077949837998492676015834800030275485582930731591541005438030566215705584500954477503148578414471419768494772813021706450413194710145114366373336469542020688697956711300099263004875929185114730145995533564032782733547640083650781072705935615105028097149005325514267958795402101760421640758624832648911995705715863182097475109237697543169172106070909187736009462296574846328286281384462507521814674637844992445735369773333535997115058426305936853841622922132403327488076690748299453326897643450436000519742353669706088565155199045715771799329915347768842050084982369781297661019918123234954381888414778545748576788389628984164547818272876675508756280590174976284716803274746938668758258940957656019704200463392189636792495573741812803064737001600356793067800388408944287376086452169338673288843945255184967898307891643158573388944161784932467638220374171168410422516309710079703978869875789419151146256871316926628326061715161978023226331957646604825599870733238285006104528866035738345453366907746907438434903256474077794135908791269755629371139270719524493459434782476130148997688262148660838221273863162376260542569199080350218598467637272372872210961043604860565367503200082925347624338926561436267209265142483858147126955249555505538637359893208367290607791427444930765184151190252811870901937594548790776018229853225524301059364030133677388881547872066144990522192008684365961498533798409681551859344712427995327587894441554299373411498066336261356162682573459146758306262333989239044376429129406831311813880754020427139385434792973977138961119675236199582901929761510543975533749326153814637752126323990728068248254709680958990860189460995626358022007189042911246840987864684965142511458294368093067363289973330704575090712626572892973229859420748031116531515806621101198541461407185101236306645264452850316171460038820672647491947621053840494011302262844456701920809861260875411973539562074262542568698582368260358903553574206000723229172832145305791141731100072506975734683011633552197748892677918825515282960621007135863425320542331490331676489142843941220437218136154448092090349865334698145801581016850702255232306555681019748980347427489318990279337531594981413930650830061014388415284612063317594904480271716765767812813237296294136034064277160894332913680563197899942318560952154491282389536982768533934748712118248564714000134139741272807333066574187546081308678932096288036487568911244769506909918777409778304646588394325354282688690202904211440591418214175103837715735277061567505837399617947527685093342502334142747710095782811617707687075679952182257793532280882851987232325159294897678420028712929877267920305944073375739105407552341122265581683497863199690893600425059221314358228064370346047336614315703602025416100712422859599707300328296307623784766122702375584265283456233505508458033614807001591831972322514003703965554563910934622995390941579254881682869373106382112224840346068921099013699713228726499882151077543834360909011387562557506685554825439350405250326161303799378455994758441119882326141678439625622393165001542584198597961386578809888615043584165185373732462966452855289707293151217393381459543530656991200828599339011648480689500570106121010982701502766166495986184511814741975180787591756377179007525622206603177548921430247705573285035488542698202594773959500952302526907131933623662831562919799821366828927230882654385007407894341180706494727696209563443565916999448240223055217765585050603840766003472701095903878679988843542077571287783266335960373787569492744624055623214315030261170088097046916224448678106213619767750872054325502746010329843900754691007726551224594824012720670858561672078472483422597044387816146581630952576391564402824805990865910010346503073033764363952599006268150528599675808705731921318069461434014822162690654443865417759535963248521537607408869758665789951093128607428540197288686286011645793881629622752388845464807784380354106440828423561318863517315200406760396519757427987313775303613460116816161012933023588533366228863839575218547486565664158230562614587881572460110709548179383801781712187823939102434772597536090026799254556496308761980482757681381027412129201798918054285846943937654050797053592644134216469255700998660042743475012747085561273329642978221326187924547726081232698654281514376263042060267407103136916650127665132620739943782356981921298918115190535290539551321146187340325777281369236515984770567576047733450285792905981027804562293296101201973868362159571255260545288794335544816948757010510730319145722252427462819797806374824299057867201579129600405584917336464997176459937476500269302940364151727888511372958307711464405996110323020823247560341248799726473216962476907630746409156470911109110513901718029913587830031516211963416015455916370986094832353643607831943418169630737606024821593275099150879138733120211311498726786097804120475170290981174925388066745932031320969924832850156971831755366932816443886572950415867081912969834253300261132569624647117219344228830694336278905001737045775956000929934423459379620967339704190934917645316990901473765094640904943019873160570648400690883806726610653399011383733989594009011841216120477053469265902672966271686708623616295052846083256034592969741217308193493925374965638000445990103883681030781443697601218896924454152050020972643356553516386002022933504690346634091242910883129313893448585517584347499128792616255906432992628012104440510677162830298091335960882701161415943632869680220436950889733108010705661856623710537427171526815878057303241961660886726694857795768839374057888069127264794609332669575438802433275392907324498235964203578145153661935560818489834276161682350028240663674158637194587105526982990541490339633297780205298407359737663299263325340391907750232828068133746132920062975809928110172525080953536081180285119059704810803032813638185222340103316729754677270373372076560448743858874045049090931986391943827755588110364258814240334878359454278315501714967763241513061581244605891850445427571135430339914492142320317581793424958601730422664069015871798430755716105679604721687714957613620209962942934336107616559243572334405083792681782415004036550224238483088277882283112329781670469611315664577732668549103581108478220475289765570928414009204164351064828748908534530003400348128600903870886123586805029026577618608532125456275803559307558263513137235546995895924117630651099207495467168979761316132504380499859467881484342741307686936636982207193509191260539448290500115140757442698951298091004374835048511619025099544903867346482522857504729353546144055568966111004485151015240585038804423590504354303202787055411103189061251816118943515629107249359939098379907014245775868440043115846199107595926046412702137847518412742424119096194468423757505631155294960592269064584893179189579755513227793353490305823809042166747022278941776380389491216718747749467373309995392426805191452585507579180626443322358255509521992660375514740391781999303156724512466083507296052225791343486652288347730983033204495420610507828264519411428540436817937639332436719656295223777023900239217036084521472206066389599709235288715404662228739801153841795170336532037026598578731960540599893428036739840805934769753896553717540071246037750438885399815595239678215470581800397851041206737546752946413154388095177198664041399593492286293633903114700522505357891552850426643852800643081234798220188983311522967033277488317599623189830768497301920898077250903980065196769242526599183149184229233700352158118615505729038642401072231585159170512791610373751785603465584863376164576198293262147353845832176620671646699996507692807627805445764481342655073604159594417465856690389905165985111906555887997362943869520186977821250377516412178578636968175428647648350058370105967297093970699847768550898688041830142904709429064837509931881296026369643385108798040820040058766613871764120321561113796731079254600150894418389014125594561811841874476704295856407993976541175401672990488666236883881578459872067483839150291144609960617364369406939882580699995506251565660316483764398858943898696866149271039782028822418345565923265514467971049018236358591094804380895270369919944832211804135505515373527874559606383477866872814457947755952020454161203198488640475062573692652334910487006667400091137839435987645406976130430634954362034867065643174394106844362563903523383476793188493267811498883833564047932194104251262610776918036555174166083942897949571675785209559577825687855853439727242543326856323253718843529083048697198016825421294066439510172826103827488762807404725145028473224254085869478271605127065988271812433196514995263801908179767806003767298405178291372530725735394001943583834982749484742220103104826957455781401095590451853846667893090386969633667527413423457071587570824926582295774222364686528798418148044996367566368690067509257950860093393603266481286482540639698772546837280805310994860054829125942958848058338486763224556095518207853517646113715355601939188783627722963950080503830729519255334722246052696469084733199709009902502028923585789811807505808833721141691193519761613153484219534518266383818261265358502932887898279096452989620644981743871721293675466364894930904918105076786078189828323102071646815169139032914862408152800451824281738008561177657581788628415648469057151534172738406230769004353126792420193915510424544903355146041664872177033409865307610999554698933923412901798908923672472651744139499879403413430022580107343802602336044818945454864511014783293519562822372492778850898074113491166014200809137254151207827132188311796060991654484536739005119144076048041449027603756421315405015989548430365166594745898369100554643484754325497438696704030346505588345336728980059724314939513588152196008037681194863428213012299205867120964502102121902204414534172082763921026154400861681884500934883422895172686340560207087947525680536279419825034767932787763160355111252308896546960504985126500746474911197601215209005821005881020082649893495125402459511024365215582713915133483412305313153518566832188713169595371466035061517843710374102575715747015013711241167695036465459156265690183687602802522990937874389691876287862638356130712689820536274195417644666979052291855365749141338229528969316227618948584361302241871062789185619634374057495879166808764822849399454446061392842061542848861180812176046584514776035803643122523871130725935750198228894608595893171258536000978982643553769367645082017780065705885125705006786286250158970223044237894899118721764920826792347869391751207367004475281192621453284007294928182864881646470131944815729797304323258244966361802518642738002673601214181948481271271940576845091024735979418104648603488853222858775762361759478110101466258547084743683424982549928330971949969802558559162028057531368594747963135594255857596900620940393547723622984097405828077171365306897141863286875607448227185221770803381538427792784735325871032859368062801949511529409710834396772478627880115554555880866914318207686774688990501428990572947411427392946583657114098258312336702659694919882661863604885285641162721093758321928739588501117591983964097892117004293507728301680025812666699867500781394429506497015741448409658991135256671845865624147147448940433386248397623798652174038094349460748652190528162849434970615165234398232391742578557792143045916097950551450147546762156711242857120638662389294436848538287147711088039043332973838565856751243225833002856080918432923055180411863048550878118065339708647514305282258147536110474870105213957903622836094459075305234833429186833821387092513716533283781940864778462769765569180461707853866304584738513160409506808212306176406952080754949580864050944756610182109718873621979427718149947198796740948602494686556366333580557898828567967175504652438047698896812734504100569038552120325119114325280353488740263677008023332863549065086138517191932216239116843432704991194195054522675664723993479231293516545017137608283367522019997658473846018737357461455669920594273017360781531928501523543250503745864960661238894276467598318126877525691514822459201983584416886311095910801875056855680111515528430406621175591367797151608343025125759547490404645723253205148615738559307774557470464041715045816531701926644123634818675866213505502539070241467513790134498704618561081523356091917036490473283937931615084854359462404809304299134762579437953729190838420688859013919277362360269802289461338150230869726795730831198362378701905920340985435465213254472988527502050192465736051498486197649851162179134860104457390643944675649880945248741983317608698302754646856539175923013072446907294366041215303446206805298355734041722515350534624140880310056412512055351132029582410086275024591898905201619047193677646606115018491606782395609467456909740564651034399311563750565661702320990297488024978068361687489784677059471559305358376192380720724878302262589662508878211833065542051328044162751549350936538732979807404343335279442198794131112461014316263852061280036389371076188090298027161265602392336093154553466080423318824882601686302418411135910796505014091393071173683265165230429613312331232290321690539470084905495756527210800784382300067913205819403612107372687638994896485993832170029773271778112411681254094241949120419631432066897607235169337885250788152372664117350415802239011766859070928392883848450075766823783934510543306720927114302084757121407993806444683435719646043470874995994124930963448966072175420392109317674767901940006481883357966839813102284603728314572490416555758846962565999001825204795274999225033539763258055114787147234131602832365089087753899976530886468604579980088206683210309793465326734447543979172856860139133049548303979042991023877758481433860503573126585798423244827517154770670625161127346922498225735449316602933098194718190033954723901720727708930495895415073477189437711710882867250909060647687851251181039752551994454400833566354920609985751379261822019634600578870851448568931790978149113099965478926763781286991628914579982327163132468143104779600462044191284224699668332835097569954246404466312310693325559968158321299604190113056787340407839033743752647076436808886481962240575180369089630043881536821014130095860081666338683934487027152116048044404472488416562689237109261128955033983892925869792876077906873355683370350119597019882965294538476292322405259758769867555471835160769717350060817351992262049086059767833809920733896907010037049382191723038181871075374730729644556568711478155397321006873816849824441220683450162059156712867898630405317461230737206462941050004826409291995550139556954163154660435428940022271846067006210835287516777276135203327081200180314006208177859952318046269098022254999849914906253489863423218910923057184674226622570399629375386627690533756177600322678557306012707666651479750449605957195962518637503026970772027440128743263592288557818159378704567742884957092451724908601596059274338233638230205894119869708489253436007904052386457861897554604114829522299559414693666575385665124810450891762860498461951393777732760650342564517388261214549303451099312844758111764450952470291425061478117068085793047391425863223679402006019244432542870368540867866764016002597970261692302750457184659250690454011100665594561103138238062308503123697538619197460584801508150033045427924166846387810039629712239029171143946424633644190395412803960263427814976614975805029727715109548056204477174303010038787912876951057615456756086635112116823788415425498627216962277092463366079813164915922040534140304670226021264115488505259466803377972977064143800975346568494823500968191019850423425517535030458946578900239558850774501455005019766256879728241292091563614583479602075377994398771708074104772137570951631020204441290837260494134309884973781185545100184124822282282305107658535153416667349560267226282224697573288486143698278495476774168415514437845907915960665149145227637621101655432276200248794072525790680436238786959361837905132858431659907217074967762488980530207905520342915814721523522041877798921459796188912864580345394709728713863378363366955224229389964940809659574889837257867429859790276117530842904070499418952335653808099106006116326065084760197772761385324558829578531362317641606161940861367840927492253812548148180063489464610066716132596579954780215176631146435692837526203682621646763528042421825587595277339007710718167062432646703651659057023139769021704284405541800760508449443941779883877036081025517541730156418232758890716586432058900666840844012821089556243622266561201746801260861389921765591373795647018716986752534710151967452657124753872558681849055978194448370687601550850859783101996829534560983358245347903388563772511806156377917470604128984934611454147995926434067716467266082973626253323478484290454017661375275867874963962479193552361109496082386481627281312958768443734692564210224735497559028387308763916677463592123205978743111094459047627013018266433048752752965770882929646239123190516801214255473858551877757234968744044707907015899322029897165535051113041136462950443873750678737195993609066838969193112589052817025323490229957856406936648147621597717744779458536322640338871098048751652980339400305537224055326421337608814270045679147166487462294761908779155609773031233827021099657291726961419515069589992682470300983700234383482313929750736567059427059544610310471612800798938183315426003764767111644777166943434413439774164531952354974760178598114335592407751798759808613581921693900629171815550524562627923273263247996329390345264033822353972831329808285247209061821188591689700328211514293751415244133186674220884171943607275277222411976225740088169494205928605967685493515257287555848068639324626041935266580683344567961992078753861239599229525421203214415080451694761299702940142428309649953105807397931910737477572236669468596160960944571953706584724913543328482947223038144236778915555429139409192135559448405249710661836392200208919114325040758769537523251213183257847189964117256604804734784679720421811529789083910531172360418596277317398587424968522339281992965367873378546886821163853349454268859916384403833308742252763521871897044665559339131067958141265819009029586824966420455936774631090566579821799033714838446361317761276048400983829403847743625913193376324173509814214226899289848786884766142763525056007907655421238189792551975029209918505153378981651060079194449789281368754517291510175373841894173727261234742194930564494469765302384083114888312587558025536404294144070972235359393665113106583670804825011167096607968747500395969325051583524079139112805917990771281435014511584193260158778356813940998926658077712742170372762745022275301530224893125278410875217238335406686373990112752662030905135535685694983764537668448911966487216440535206031047929867968449032482051842508262342145554375087456262577951707603133180569296391988213777393586953971853124131946117069973000430776934450412375992026830543856481490114497075112988972507972965490024377457996684442861210437424472951154850616392245516000922976999539102736207762142065097113117246042317998990931037656089459630064969177358611984228571044949664870996284993006893302792109101551361627243376556884130357709227297246882765189094098331210069300217259880425477374294817808706354537707215698970502073179218279079243309134016934509669666529530798940310546646919164990262774246549230607558837186394105595412095458589243961010346994881074793545143750257187461800231395978038937463263340444669301917695628402078870047697423702926293550427264127764805551786111314148579240285741670019121979598531830684313895009642765612941631615037475991549831843131906264902272654652449545496895268259940441056491520392549825893874375485920138483784746879254124688957143243586749510442935618878322181574291888246279861064791056518702032064066161012674880934018299401416199676232157091819332941240953556611259738456412420530870859137004124497848219000214762219619579572854413522833011423179775600510516190580360590384912551174164025573544621921160420385555413538728962476934438229162668546623594283235895908894198120724874251548276850726846860937112361061390599033744471578496539668384361565658344445662357291172798523704525891690472846578202861600766237804937658209420778905715821084908913710054176018911885772823808851446311864300785825197775714558713774485619347136193322821093451871925091447289603970549254974741828468601416239907455428518171394930260695728496450072445851133852596607569654157962995418401735434159194965587949566220751322912186678456908874337952563023817802627606076852120078115421304409764242669050214941906585391461958061654352623706024820712007607438491091537532197083093046358747923880073383043733501180898522537004641296707983083323854602066715098636121786697643792306517789144351266973572791063725933709877922109764715069719770916775012145217056918129544991191138222477998159276590783920760173523454964441566096991417786114663257449848682173568006984424665624603668812872234773490802291841630643295339732853400879069699370639628036054506005636855892826604589905604682926582893649257574419671721056599698914647831766582832136024491517203308671638061329517645022703670741201785334731135043288753510948720866541587534362885144213205404025748057133920622245304222199129561359432068541385893216638076589872554671213644418641785267508486408684530040318671617681613889336228027648282796210141624889460783402995942522310399480081833026340122931784464829977846582257620012336513877111193826555604675247250404364332870635209145527805523142709407995408763706107550821147408347849762207020857795488136818507849078457225452280887982091454007665612795088431084571189277666344572123957634955264186179536915304953190861870683719820050929875629216116374002880065588903120506985056320945363673045057787680969290787408829236477738265768884757091586648860467612904110924115553518910950992541127824853007605563181117361770427356162720080772816100466353559208446885095486608540763759053725420857618968654546795874645197944640169533181636649839905194864380372179785506182868503998757680178958701013762030009529535439007027172376530517994313825998843175018713645219842570242956681702622913085797636216850408104901442626924430921387352055046984912298150210039651310833107635010208711757208213250416036907962268501205017125438936897554051308093523820590583954547014072943778291998465471542236374719765875986669348046654171229341701078274196975691289336828916807885256376514552991927435251787557916521024647347234347153620095397426514422435486050494686315129793169640555939129231703166182630337296405307983782832559124696573886690698194121305574506339965014622869186165138276331919515466580825283916822698692898403749249206456208219623843121962198265939896883617696108300345488697831656215329567233743805304996096742136790395839449623025088183382693575869918837137478499487856109035608767832971566301447708784897351163026198730948049303842624066202008251403355017762531293802655468620014433242128294380327660837525940462993913682522576559458463938481801372181484566959537388770288882343505646457999016419489071100267228758720981572581480989167860211514872359861964325891184229488334042545172394962646948202568469129682934250626452068839223674481572368938282551542987316964936962697846399313240801571784669104220314687117549881190454845549225470986592747497183408019960299711368819833892273165481095352398298897110277249769291030628228000061457273040008096904348287648111083305979479475953973609804156907625606977168940583984512541856434507919822453033339140070027992974960792243306808539131277175251913041721825114029571528485128850533473370982704686182767652195756647807440721208960519720813763015344458216210299983291362092011129614872445335512420059200722322637474782796730861505125899040250835609742380596274863123998402782636619861857975553289658135236174210118427622023139975049914818232585277877660827677695738535546117104185157225775644141151764832159536790639476168720827263281147448985597049284132909001438617798450109321779158038706136025528835740184334628190804686608151881020270629852858578350076927173781089493733093246023389055550929305191260960957513834115324180046293965840121260421996166094257859476976180074106211540032609969829753081278560467509922718941287600222602671120865214017040444591029272543454124370305659146269280177932136862262191285016204332729612237739441491146523289281703700685920421100640368950146030032089444016536607089510382304412730770910694657192965649756571803452648321064970715358915380646412226815640266179648296157766788513224966072927301258938507278492618142580906609262656036274696058383116566807416620743191588828375738668440760566646403060525567945978494555992753493209007529204482138854407133613323589709343646266057796650729703440680393150276533717220218617710402983682944977431233605774918129198112705397468928543420227710679076118862848864139484993230538900817549016248924965984388141789296959761167676059211981672601624664882285139486695580604344979577697279686421370728696425649715250371642216184168170335185627993903467393696650424836096542938302867579207056609578700579916419498193488798850634040210215690199330798350191847849976865985469124641059914627685670183321324607032251020463394838258108031183460591384296318613330000717526694549877286759595408307242115638390320838795166376439834778895688709286564509484360941798268981932891601653173990449781392616292901157770412063489582471243972021022946289602119991529040144202879246644845605878105893915501584633712797933481945205438129776710863641556544566010104307334030599545145346480519374681754779148859033788497428358949079472688646315554813387010751183073126218133730239269029936372113155517403076290663969424516335546317412713081086952684267096221330078272074768371979446831537131584642220233702825596688357745514145633760639950618584538979663515451546099762754755389140479758783093802961627495345059663144206120359046001720556515881874267730781835914225354014895725310789318402066227540803905487217434869163689826493420167166694001722227844116927629007590583048842063582289705525068024165639302492102391181179749617223665859830375461748921427405511745034258173077810007524352925892474912398625231823878958550161657275772737963696756015247049693125879189961192286360112467474763187075233692384993673720026232835793131569525806910210396137234496608946959970959826467222670469774655782477818327689559526445103575214388150411633718257060897484991981400056487243112059118519249059174885502780714108704497717660865350540286793969403438285668003942534314514445049328759284761386271997378541027165970008310623386216247235675913301849101697513972034974697860528901195596255548485991882114002727882312274256131578965119005697595834915609784959873776140723798918080469213103924198124753196405669619671838889680557172347148054540075257717339135695386073483469720298613668796745208193524892525988364351452357980253914809137899375114449053840614303958465027400323961188949806367372341556212569435785032488346379022041424249225709826419115513934502873591699722796571447138242562429292457322007761229216506899947745567713232717688977801504960259084927856749807237941085367331144430797115015550738835329386567056451316724029355728852731175468610608144640208992254612010236144762896699015911826013355399442621383312000494224663557560198285569814532874716310763701713821484287553050797812951871560848287956119034373444177993793854122187588708580728454100655079275446220030850685877958771686996121484487287239517626667191509590854469611694710650295711365665972784026551193350063948305012787847268877428183501895322895035767776179035108485552790191767038500107997531988811356655233288679206170906888505637065571114914673430027605262250168148049979488822977591780748211910629731824427405851322657765426339654438937342667140404465379292418152939435475609439531307347802403833371492832463217991931284631317155267083817462579980996114501769314438423412611664934849806361463827629957432493877436103413095226973495957940579894733074621176084313206276509075747864679967153793450583061891123816843513735204234122008975105312678101727409692224073547880960042849655814062870272093968832591387947836663790197707272107287410355430895838340788212116037348934271532374634905358070967720884091741668834566832968209801140164742952265847332173912833377261368276313837542665524718308260163327512919793485977725974074254680290432855020483228100350850622742618600601031151321716120969809043475067416203561720864558246140781610121920420481983868420081209010125829870900665858293306150896644402055170605422726921103603580315917478266086489493278406267397125395351156245699753802999048656673813636598662135376193969173426522040109007173991010969945825226193790964662480943159331474156816504142852648850135991912080965562205519262534884495501751537018726753107081273391822653952146449528991251572016515368019837015492049092325784878016117666609082901310954279377524611932370021568463810031723451689554703560032966255827522670644721211688052080480598449876573263028459821615668433011150612958629060079329419864277340522866460744663882737513477628080652312429435832068772072106821447089465772838895288457865519131318234887736342144035615931364133093731092368737913750002314322367712670702871763591538652183785972736805177266736279027904423051676262488901241043157799932661894271964422126077215490444326394386110827174830279138729293913374583742917211201994942002369119218012421151943366025608822496459564321779709454455089971278004537097753408995769756075123904960293835685638522636511385441811888090666508177916113168681989914529989101831928847666290268929366099564488083351731496046407457134880623162912843378613200214045925226652540677762978200624251418820363111522035279196207933900322134483982432943111670384482368704468790811315470453149893335485842855195048544042140016999033107097891953076978660373900475145831486070480363667317853145417442001085793748249604388594221358282302323170324875308939163966446852819412067183988844440627241295453364626365648718006171475106747443523930605680784327559497675041014768112138569408116086990619934414127338950044182856955124905469096183368942534562382369343584155572153376945562392860513419830696791976150991143320545187110203362019857087131365060500677372472772198776881938569857223401512062224047056410372016043862265966573997837718500283232606230533715132986497829694641072634458420285025949585607305960004628554253090425126226016084268980277430087114702032055946887731555540461219171406618723701889578331290998019055809311245215506827147243104304700490830296972570776976641601756341315864318139861560277965300090560672909899247711774457990810579304745742976772323446618479079264591847766400197261812879649598652825416141417512033773989873682745395178303367518344618512690819186762771384596308931035475076719546809826372455121659873154576672736441638236387497763972838063771022780702709344594872527174320082199615330791603866764256924130368032087872333617303461784695946055538216634161086828321861691167492969095809590586307289938813329297728415927725474578287709881141702200887010353220274252464409487333821384542123294161985040113955812559378552294665971646374554908788167300123749245420881137714874029868403114929959527019555295538893260697813593111583744567618974457697198250737716568291853833403846245705536506858153927003795343153286921038037645467355872190594928016775373123136096253071619855800551098782465700134905767921095069254268576261987515617665403462585017242648494154304915887731359332286741529444753306571988104495917625660258629247190998539721886390973659183532290522239616336234024011698662919078536995813226334707334542640624570659430260008003397247257963877167256721596437381385767522233883380415075201091104136528120163869586259357892278965554473391718852660601468538007702271859831092900401776419022235968457287584273023029466874420683439284770662787895782843919345788044682583186527256478318899907597752393009378985869210233528992962113192023165799580541634472702712893972087100212780101649601504410543325232911585552915690170229226509717742910445456995350573508614530533084518450333878937758625583224340118504332840987082217999805720517311236807726975183637880181564076416476547060433915357535552221372812153003914901238706359795178784926518545862186472985961734702469382800683743194464706422435251713105267626162894079266454199395840680059502051712035194636672968472631827492329418573504717663898902152906138690539266608396297671760926334979764548213435748091561835061071830062646370177718792956322144133356413264082155286738026625473096118149082787744004057158042701467874002493623860019082092720057110117413958120761941581870673969901059436654166690572725424487066026691983324426282105134348356760280971265315783396482666048282686256129065260219514018482825223304735020049301436116855682658592149940685436602352343118742198062233309371266381821011271023585373506108001902077793023628647737854474264883735563545436286493554122340847306653319152705679616321807454954430712748682988679587171627248294546139624603627992264271533253153701126639802026320933056687707350397611608946254968188990252272992019786759061896277115702426979663231955292248981448492632662244292733533496072000589020683950278470870881077768861557127050994879756035550803772045407674296798090181121268422635711671571095504823348205108409552645127749014352674584146331892962114032353990115354470528175315685140337892194572128607967444424508595759392473207008750171233630720657142082624528097039346288154558132567698213606418877990027474344765494212368839419819659265793806582453207121876494040843246638725549605521764716838807866559130263353749345687781497082977452675060983500555812712224388461276145551265273534375137780782419524004580880231826000758062389062777270143781462641042199118962406029394446583639431382728051376344617628461576844567821512307032225156486552668479869692939887381301668391231937846985519781375362357645650107294851154611391492796361153851634787967457909360805670680558971269596118249121642836610244660106253846386676045421996577170345448950092802038072722864810509613445025149659648315701936740330943588756046956001968397504195077733715239858503555429169901278382436719887334791166294662972962100449826464025918419885743040594250802737116778085277290067001144142197483289430757050904386598243635941899033404628694095388252360024890652493259214381248218189907259713607914610655312581928237787421238677503052893301655637596007333877884979853463227451095252469484545537650011230595906679970536102364226680767599811348272244854879332405512475107653150247712129203634016318489931896853551156103026777645688297867160521940270569024337019660839825696547664552320287950160259856209160971024899559175471867256688445001748810821340697565145483667323982435191424416416066502546056275806315050789370221238155240330458568461003280101828383859049234819390079828018430193578351851531213199393456354408076665765981832506258062954896218296716199710062905183302175942154823908776848319739103005181880107027435779333472647074336274318201825228413138731280589086529531988839989373024346119375598016588962861719803302279618829627914605682125484825501641391019144391874040940160379374026871658638632235151644719789932315015421831227840604378836547861927451531110307459641440153979028874472168127805569148640534941903497246134657025391825551311872704456006728541145517266686007001937355852179186790128975446397454368411388232548126844606306064444785547045243441683156535602272169224551801113539112863934785250186617168708444214372161269145311745469025604212720479731986391324121843486603074349914681570753503962448752646664382079927507082027811605163509263460243666162237945095310056666204736281179147180359170137710424155318709471180291397537853978462177590300595142793101611019229954137527664510868008920527585508573988726357659658725924502539888538064679957452963017508992023289558424167133013955973741023057112560501507761175055607864534134975333680171838919655239216097867318750622962078688533530806800495964456293494887063337004155500698624872213418371613735577645086389955683591150344469567034989407270933334117491973780511467141210378932582921983351754284459227970443296339002150789404356082025575888404930867295173506000982922290299195326737047636535432175626928939955854310471644974298817951638873758356907540069311819797627979752710852255826611536252818156350492467887280710249824797371583836545674072843411502347589281183858644190031953037047965940398925730582591504997394977399196597395402443796787546283810150211347606295274042413899022324672884584475096507120706673011955511272675296899770825620930651258669174395021679837710096381393525358482438195134752955551612540885422170131564377080483843067341192706947403080431281713030144274933708231953030476365193274629731845422337279297303251474775777865709719365140632192079346603945437030754296375123943305664982840733628427553987231204946365606811354228061419354051713682229120411775961320831522677688406746331242742058568097284016930855637385571050936998840409774230519447547152689861763641180347273120693453292290413014650239139691558098835199788800617136823809346971132423557908405340535950376279158360319506523003447402500626725320648999393233369512303330570091797458337817138154271553979384019261641104630350597012219511669767457352244084359316660793167574075059333872733524415113221615307556459638016953137652853495315822572285995130306237248082451701440246356366914114145259222926282113716040111990818019117170487832862901078489837720981850345073042012357406084740784438833774543327969976037607256480146996229844480194654574339425364650723956893224742894716928205032718845888558897945555302993703718408486877614953239500130073546339942986037742575680828171592333888214980587975947259660447703970238462861590483377234132403125073348916331869811993477451667147605842404537670625662548295292571766728751433526262768427566374266463513410140571340359202291513471245007487311630098332752115778302677200671085794860534604189410385087983822839016682016178006802938804805743401497889137701289767614134366754162706147467900377258043689010140200113728268609092180664080317614023085597131747575954203646221883246036217336920758747233565026104263607454119599920337002055993467481524451581842786205583266422850531035513528999189429689585099384505577733880273405968864998960917083941784775921637686927022348681795710941522622058626369417159260834463379684862262004696885792826705276995531834628640374951678236264788058498231357720398525528434607278285049410553796364063877491091421780393151353827277142073722140382145292026519271370373337434029280279597341837434334384541284337761370573152824036014198313070250990840502982390066575013979272527216406707584375029653157009318684305894215508626899910476755216064929926643018359447492611836806692850259247607817107119758266111127427791002419418570759844025216009899342802715026144572357463623013090876452907034436592933658762358958394616564374492221846873770203126158919681064385160613594725544292144610591187477182908947754562667006935437864149659573603061747395107913269632722820411219179888244918451588747209373371166648869434484904828466656351523651755407614262865164814281485614740389756535262275539647537785303497694321635315333770111987396147150930879108924109272422986138772294541835246783162730496911468047004728923439827328442490731059846745518277937645640560478498316923237834216579294305204912261831879460628212609655071582946089069191738016871680613235295661527205541643088832300259283957077002176139389165055074495566443157064341958420704843485413506932034203102299216460052299980144206391046370575785084801891565253434377864892902463269227590720839234126891612012730443256554703178212128113591101580867548738114479438151280445781189784817432730120128842698955768145162672007580809209889484172373471928810034391739898242586943132448242142162107247248974098327849856106151200864967610750562312565511869051359547172279114058577389767275514424330805012545444596356709036477374516917778215759412477752157368830532466426185432639772589263628054892076593521674142251719245550955718493918582043923407594140324621783999682242635038309429430193302061798125248441738522589738395012776921460117635243093702814249589491783440129045028409204075694336646490024064360040425634815778677243540549053024857522057201361874857638397661017557327605098101424984310237310537763965397662940649280917607723060863120974430656114306206634637351720890864335267456756546398743476422805631677824196541766590551789083008071026706045056312407013288664559171942335828934000852138847906386918350890494266787879045598465825847393292440968955605612113806894838855906708966364865208389819529049333284562548869492559715587751532292548496618049275654206460262705151497236575971972926201900812040346774735930128696338420795757822210206277345336056495617237465757354304843084642572576181122121243075898262232158574834353180856120059211162861738683254518925841504195674696581211962790768985258853550958681801501981798428697378690078217174494708079646468425883028855881386532721266884898637735757702163022887554211808949978537611082601630625624043517667467869020999428217974915476358286232641088441242005543719801781413606296414253603167987455107746243818978107684091871729386676671854960462011384195875622371616613891003671120898381651442106312233590390742021058170886814112214877130916607983643286435873930690079149071349573034582598629829294022107551499618096631241197104699422383848498761250660142172766831613535737811608064899563916956569200817344875433013233767543701393751188853894108484294114640396035975854674158940113332002699451154127069763853796644429304587730120341109084706610712950414668494069119779019782244114443290511531913968805803747686748911463077772629664841200828225832861579147114797691090335334634004264968771113449458907585172755444966946493275341437164566840025128873017616234448385856295233501272497248400952741615733696544221223860724074061035677383283857420203194761429181148444093330384163019704831436064734722872837303879555692577337132143782492669899922299233169279405762000181692672316004334898908986238075089905748104207826667688813580562096574763876642501411044106613881825817598341410242847983968389635118662130484859368859196828533251831013912113778535478482203784770123714079067343814914665957194221001694635993290195743198915862449199009301664292957046657597501688633090452448393549672503997344287097454756351548838274959578459364634323462301080821019477911057357000325715798946219007988399958890040375300302688461167320087143570709867048840519438382413104199886275250403174754835749521007817880245103522044099961990460196545258684452673674346556212082642384222449346082375680130022901401683855524768536216432723078799400622948340767831280304178905591637160203603001943369671874339485119244127181352386189627024692909298205599080575379359526649652727405560810469572223180782177415979937687232374398427165302867969954913529989241581972847422648613020573221582240652560029269140729670155862943421171325849419772337578345731514293294286208361424201781910210060447099319380593218794180794974371035453044883966649009565927355473663503851856775985792469385140604212347398911893643647125410589093362528555707850751624104376947089466871429639513916479995709900782729091799368611141010303539805052115848358671736912238840247737317784318094102536808164333119520077230908163139458622396248178676214711309242295694794608447903333999326456741752522519022021663963224548506921972421370163869616429020512170712896257241879837759198337722259640802112643524373346639157119465707177142406593710402392350102416693983090148270661047619519475827541500919624857091777390089053361874162733710442783814971326356728010354802391769296454939996763757886538456581666202768219677251016895443476549491995101771630147483531121764572019665207219781975057426396264088113821676503136505595443665832505228646489416285689998309222016061221697610530448138266663956162374443657762750670147393093550712572000909290266356887675510241610288746375609886396102166251607187842757246137467619550790952631425234805887613771978720662251329721321488705276235291219058164133783599565448798715349876637078717338690652373394551298767749198925129294768448734152968020483489208536991164983996475500927427172355027374602834675759098643966141721621767735213748748768375537751852567668844519418815439077021127348385442981066534470069182610492716996928302152370446848362825438295253085587053002982268703370778144098648379028797601990860148556740190301455653439489408717187835100218336084872714202096261398404738794530751439210600039424564921181784874248249706889367854347249459301596052472309731577201990590339801703711513829554655896834897208565464822593499381142234101541959571060771193349905103759303469788979003845449311030078945656171801555559559758157863998775420347010877769363682832664260311103295416396204368757876637205110691155395413561331635493775039346319155613052138965201135796119036881868289995155922900129339040433870504494746121627067649175764378376062117799216626005985590125449119734614733005112754198815753416727748476077963135911410017855766134111977681975456980921896177747963330152275380570103333296350739146521736318514817278233800054161316807502217937688091553097146321603814665141651453203125481899058201420005627952085673550365809446056933649376121718859062466149864515025705804587825975899177444300911065612774760154676465505040754189517094503177817610193808344280200549510519688102139651966759192938232561943186044916793475849700075436656909856830147708788734599478912830155680386515275765563154234775908048357774022387476411226122740616981961619047367971123913210184772782181770860666335350738252438681049822540014497266311170762667836947483477424669218477482736539458362492404353591363160034993615328057683030937616721765516735328878348406066812525302155212813801765911419889788637730725284331951528842180095056629161635159618607903814674265203198727965449496150447254710763195620014183800968350134464856022277878575232410139142454325081045717668282519450683670844176130390050799960491892137782427091065607623229802846658654321167724723336573628996861952106053530420724617471403002914751946659312940895902686736764014484441886383570398059472911680665802119722018640469751791404046412201984815433882495126477910453548441048882533748064586085527937887807536983832179686781762042232840887568470387404589932493819555827843126597826407207083236140342526641969497358193239470543619212741517866940726785756938137476325456046614994191709095509409582952708091468786489134999276192710564826669001154299087841176698174587457829605122251909533353653266811954253610198307346569817258468945140134091567603555232720651716982340791487534408602691684276504702984907829805590140714681413163703282685371577413205726662229797858184212901224927808026699474559212443847820837651761629658271264542573013893732079315921659602328505858878232335778639909709925585629479736736049467605012948853311482721310702801235168652949086166689427325851799339457241981627113256744444763778598975162831708925000505501041689107610871003690374861575310193261773628711119267936968162901426089582837376414515870910666705202225661366799536203301352931363624940123798469449582582091854755632374885990945615749969047968916480263484058894304263583259302973558571396651327684520319527673679498865430733343269432302214892049353327100209014725643382697219229315285892837334829607262279772738508306691125012089359844005769358802990994822675342987000691864826931165055733351824058479116117052438234789394215577788827985187016274806185364771267169803609344929666979548344306231636536156696313807794941686348367402525578983462795136127672180421462027040273870899093724441222050789873639345934862831951313694249146912834270936015340925508460962990647021117507298583854407252057637456257234822276580974342446976949497511465476270775019655998490124474082214619224236804831456110494985197196713752067991347434399577759557651513496307580358064523482945833860469173657112795826787023977570009518609235223588165294106582230316031610985411826207535017049319760545749591045514135856230256919675650083166484619084257338379145957441735370943726941055216152608134037855029651481408830497027596917750637203069951103474279962289995645270378288636724128714920830011249606987479868415774613621642238762632746523045631758022509616307046662118019553655170300172136375957520577801123305437786877294762409538545868356294204457470947643685350666523438395646895354460504322975089241708560567313819839347819464528877410945531025351417324647572108546739176113053792602095809821753661545320725512760547827987755652440594887761351203844878157978608959833007949597262621349120771652168234699086449757542538369621258756985388682406493401694387332453325279439286556216153324460488387435419118436468211143636572566428539916074426444818352022590368915430232928066721493035161295294419024288656136227226666786729747814433844434560699282594274582740957557440749215277327268840264000216445725952458502211212152242886771431453894177248128213476648857058076110675430607132583961440534575587825788382274116810231992849691728045213428874061581395030962647753195792172447943770426291405113503874166314637583528607908311889199420689209509803462522809705980804941659989086677875036343194368826960626993144334763280994645443276422811485261082439176565652381727641405048505880934491701928760053561862488468869555199448252191958731373180450775490657209785162266922985858640740713727832480782761903306892569514989545376812313902449717523555240001270074526861717941088281182008814607294984802982547766694799634933971151259111367669489934643797148952944086339871874964728558236550109135984584076823258574411785992909100486628266282092742039707880174084860912196947175595571905774797376279404800267071364508288917973174482941349311292497193674369009762131751081516914761837215499318817462032355331518740788002053143062774054092176650422982249065741959857655920175253639819800689828079547666512016765575970621408913228619458027543761150874332691268998050946878054731236401593937625809548992799950178064383739757678350414950361058683949524228885211570496697468605248682073842804766127036919473385642606807681842348618565851652853691627485815811981555711194569259767312120089777393083257856529640302991434032872530607712954487697031217566341470673391527541674896053651244366135351736923797233204394647950904821476343364750007068438056904346482497451106153366074255618715301538350290676543709862646031027095705111228640249322855323378821120528864132072033058887334525343372440356196483738412541302858040550246156292650590197368621309233852810957527287831645078259897135599075019543200420002244050853515564112974401810217716449123281614484048122512329666018632397801974370598454538214410288635406015924043277613780837403369292650174628504508273427738578999097745714804075973272584460971161393357681654617752901232458368597437080946226013119593281107943387911394933136224970692122007796255623094855859011082448396692205261453562301011882485115048141186109563558859686697482556018284670964969663239924065193155777506999204436670875455141171261412779520227574712916366648698126273664966889357027731985032794057944321982891181214603264218463273543851369472727871084503220036788206417602264097096190682408675599829074647379730511480550256110639014682571540850551432381918520631180948817163626022510157746412285517797083217755867817884882660940132886735371998262026285283815494834311410592311235302488150346925893168203973215173393953424622408635403438609537514036369565925104874535784747150841714281963881535239361811126308449772818219312200530839185369604253541578706277981234334197907960383077929794809649952880021223412590280175438261936870518538693250425778251474303568069807692239931409928282461257663158646233769451607047466570202849034483416723307673106516278653210735529001598085471397730242318704216952749003854309751996643614156690801840150693723012923726280468397852336270769889411077478180190931267330313840024825125833371013230606082812385482781683715757885949597473350292990930559945313828644311988380399747062527925951447170260620893480410566186101420280231234997108019131638518485139481892278805205693926224984532684262495280362242217653008668582586205096655547730643681318848629387542604474145260627607854368896286426753660202281071419315274741420471017017418713678829983258350172488218537937083044391638606954155875041698585546063260270021664571701464151940597568147276794445617179798881364278608589307697484979698775189588125031072146944242848394167193635304775778509381584635873276919414492566566528816084761089732901219983234468469643152303827637901251456106401309062487540605941894583372535349103409585285380091930776354719078317438728503661149578512082673674600181318923479412469299919498114929222453255960183685094684459447503052822495826267114739769712238203115135220310937954107881970440240156249188619414034660882465040383393826820956967026540995120252295648008619070039704489784005335546969187720721229198563689856683233708760622530591717689177420669731111722127459283425891428447119318198695997337347055268290216111907862789858320621164653023499634867621920303376545758956492397659587945780417467660889716614154630423858828788040484048825624195279102350587946893580704372815646231627307816775723306628606298779739618591770715867767179022678421739215694669513015007698493924729027372984520944744934091225869163011302567805616026119157417361900851477312901442545288378096221325562664761485519043859739953789984415689153324557354140342979273509356474094524444251012693760068455000746925310897326770394954880942161255256918830538103205538542677488678213201721864822024417268557079012904883392116133457837661738827365049995444864449426947458576384997712788496762732377812817129505758427954829477921050560105811561023617716197987068587781332290833086127455703834427816955240890775665721672888512057142380163936688207095365919696463068018881164348330995896204283915221841538477954588981399044203292925265981252558775509172262081369479340803709769643535366620419552408541824368109093334419113840511050693336585234661142956164981368883749851059168500668655164815597055620560092310062939905059140099723756687297341577134680406606183342658650020807958284837755915125350841883513543403225246327384368321638069245367842318066451871185958419700279617578034655868106557584999087005724651061398566350579503262170820223961617429219254844835580098853552297905057587496414674211339855719054618854667555284009605484457585566653933614048573415737340679621733767916263220104072810181723930338782672090810202665964587581737541378154690574716873000142252209331573371312304391918727913838399642910479663423063583494956660308259936255832373774880291133335107330507323519314037313302134260282399668094877867531570275219172532155697601073020843573001776268564315579223222263555775666123189213219320839518246599948428915970566634220832015466664815699380326202605129646079707838072606381316505350060169948805415965114042592387677461706807554816205111995749400092934894079921899903985426462241208641709094344891166149846817852391239544318712104449573765727748437475463816625835407797618435153043005630050406404183354360314180589026622530384597774084244217165350863069544057429321873275763183683849128438838317590301525872132484826555617421388846826469163278942979977701372881149226075084655829672256991048182330228206891619797941801126654561438195409593678386398021438058451015888738505137921325229141905010141181034622203113941691659006248038186118533988388441949645489719555037701527585176166155337883020958424876463540524474935193856840104807509335966572336474520954060713657971097889903262259270827510119051529089661734926680034131312852594270087183595163893194046851862381655351951391893722746014851095166579648206720256259950360872637215297845663241589602925138642904690891572289021889105786854317675980681428209791503167383881259070566909394093607760165068893417352241203421022991157493974265995307983473554995773005086669304297911988278846519929955258140577577253972875929071830016373125125960320115406307923987224555822960452019010683730042168371848138809041604389009321553733771309873232052745671480343679869066031650265964924039736497731605159320337618946328611671566798869567127685467015798613724480814480834286573499409714739112361465727576655849586077696846230941536898663182371249346020094527384276728230700334676369876073586079613162861552970066737269198632465781750989834283984159230772288103065836229932472485506631590662546915156945236468909316130055436983687382867870426113524730277185929110529565085560207161073410236426701897471322906616843393964064475788713334424925712564225070564799936570574089900619369092283946658515902739098656413759127654335546755665272151497535181278614529431807336458291042072907623607514928534348251604521100419672404473590282695248861410235353447908852772882800325693784100078860321332404764260850524903271230969548405076837906052587593049995832901814999445475257487438137349813331504727858128553444275579313715072191899500458178327622249846832863988585352134945899033477236230874617473164462047763884336063689368712101533113289053276933370044412972863212876737242262890034471815036072295429433578054084610579721861151781346019332368726885841775188921969428739591595158525274128377594961384986043115369398274131155370350636065023234334212324906772036022604234756303638828839984955728095304083216651598394912642470282686389892044603149761349749555869614138289473791854454721275054503067106817374333421178353277438038134761317138698203939260982414284117959192203066844375876482198590683884594459245407922130270894677066588236875013372573163015052957946608466815796600538684529275959991252681354704186286600165860668052550667717522165131453216518326809374841168307290114229906940765089649693033928585507307852753342865169216053581500407040317053004548928401792946563538395820343134834558630700660027910659562838481740197922876469711828420943990742200361613371077611517966072852460532799800127056710779768485986213137980858521809429825380754183866187240125300225806262588904718623701963958258000141841367600746916208144731827146263932719761361664200439385352248374386730803425048220808678898924697854936486095832753020335716478367928758591521089428247658259730279935188195563859406750585410450989777439646092412787478001883073352927996850307972986855061838125945930976892295207849035163830859089112629038196984591986374386608547379825410344176569126528221706783273350845715127939980217322440840643032593889283594720201696685380859203324090242373938237944187423416368159914495324077680064438471204126626397867037025476437781431101645799741556674765831548366623643667995689229399156713297505334871577904652036513167420912311811575851243974383645391869876611479419191412019733798215033163445468069881996125542190976589932919132658954134444768252262389709821680704588799702326489167423313867375033737205297979632811146598982272360746488129565475301469106252043723755707988289412517669449759644933678193208011016168702197277270412364290354258376606045860975299966032013033406020498280959540782399895574580917071968818600944571531684410116617428745557479809453325513226511372121535923082036663048109843757619581108939792562572279287986669143824763134022501703216078949410493974211942525137543025452443654869968732907975328425806372231511442029357632023514775181270580801401326975220067824841211837516375743937989038292039283373960709435453059407523340547440844519955106644725622238323301628539393905803146001671376022807749549215295573666053910361159015779371653432108436965849740241971261172047697730643215604480069227173336687552935560494093154941858674951139148140803105452102389492659829757401425599851636208957323993107719147796018549593804699540810522239675097340366375139149107864298342078381304727916912680750589648551968043237578592684447465543881503105648538838668705676570687046172208422419498700001858092293703084026244346523463872296014166575236506093000043423128368845752454430429096166590376602980747085595098744847039849712310773024956113820927769103348241547529071178766254966445390535988323039820743800768609499509568509533218990952441780718536495231107159657335857610193898840810327856581648568228138929464156498197294820056555942954954711060009166639103804192633956532379683118455446276750238248575893689500638821719006167895584680720170872097213879903598668576037845467974172576769296491083867267960755004804328036386725569925708012510348585626566128703734776212389285987379759792314123870392092966583324401552739839398230780755979037136099878167755057336064590941960792901931811449060489588259604562779129258723594710466907233716910023605216457774037606041494071925671266905720478772467315528329526193408029386507199879639421310161092162212824763745395047128295561914504998531790225553599052681817414724889169040040750521163160613529500726125266567093311488038899968778868753051048772136377531155015285734476793657832796614219244336890565566054505752512690575416922523825814490419513605499272635081601060691561902100615777120774398721290929837148087044832351121472390380361607195715760728837296144389523321961564550480262644852702740996480773390852992446017336796937114185548416392436485780152972571667994646901084521631924385733496364816836492243616287235922872035438884180922595559579436320507600960509931103208104532615979270655334780824873982482462804790261970527488533314563032648657156122250044079132906367913563349978320268079242408146607051228003081975656280103044955583638959607105556284501033479201230287353768228346865979809227782419842675425418066039770525069779017619142088784200330039907480371168846522836852414184172423597069224356739163887392722879524222286112803188229547496105564216582198256578114825469457483577827493539232108722911996460278226369303375442602827023161490531828901895667137608459640563444658114203493903775908662164382845489995017638769269001254431864526834775044790151894752767550937723542848780467074866739879701867964117901006850532093446517518287679677130802581263504946614412899119591438667893245465544803975127041020805760184169939942144763559119857988567400424579977035714590773521370259279685435471821444441336505935203970316248712402620075586738830015138743740678805984331543547936831057944148118634679319029760999671137398746873090031524890968179578573690128464291947707015808001716696069216125603590036647585135842506342708236864304408099027677545500964082938299521349775407228787603848020633019337092755930273841668106231111117044387482006945451616894651901487723674147468539930949160184559569074621446265179471850466165859966753789799294853399826378850899341342010202698511160419650663628782763685695431914805242790243672583717438661712032104468032320301134770200011308878273122972341214711562924717498361988765666163686518906007090935914614894446237667178156505663611040525821761441780502645296729895557340952312396435131411090616724687662916345924346572356401683936996758766376500251668210378451488531090763702011753276005482382623034399255137380084446486252030108023197495955703168120909362139868577852186874578569321284462988944909801368118836769975114820825067926843073749234919611285320567305245590591889704710454444378871089340213278163100701677127933824273881067443825266657588226703546304510664626738811179955486453165619380842737944556091086337293162579629537422440727356315750801950411503361005380350205296266508212468494546755390908178787627008294973668156933596611398259782759953175749344555374444947079921573129972404099595203486115501075748326145537397339216422741525829218653352114367271081467050975475637197596656798123185800487855051834878990373720060002572136288758007727043023948551119380634273008744964212027678927500362907180305970006886829967457082755134584459957941803828998775742621437679091722249142611647872319976954182658477059257731364579466783894735629799753018224457348025873254460125977558472629130397779726395391541987685368060461502914668649251205977050699312870655523619222109847728510607855205127639231192482272752080665444563554516967824122114542695548748147369626374529779362992915786978809820187078332274144205123057970451894006096451181837027664619654475916156275831924734862954598621215336856398161181515577575586322780747058062724736906247449592637678756624962408763129839402133821413552410648093554876088895344228936214917687082952226905061838289198953843085068723313396563857064955577802074139144744324123658236556927036518904451904371385960503786416609397204813354826349309906901188795326906960549526185059247638952508284917920889877427357302447282513388826610978257731611602867004285001061732194878788817601654724747803176016655498073888060216213650482502415370095069605246849011292359245870481633320054803006706380648263734339480162586617625761580423031158150588572874563995088783782595139332085660288156838432969049389894726716228233026073762935912655234811076000504048296309265527891350406508211880723171372353237363816414775229028681282856018681176162666986498841947783829206902384126654347296902427358161122291152418658720681305119209032561469579640182459974494739193032502463568453127888913230841762559368213359318792268554394553268949211005383494608920015021616917533066107103722391127738273672092838809514383352448795800307040846750263764040641448285925546885996791141274256089934564378201019707377774007179058645267649263869377692935581072203456013311190238729498033693009728925040259882742615967179329873151142748137391066565256435431203403504126356171184861998308978381432068758235455528324502786062535771719655698052870768117842540331726678824007095357863564131602287281651578535240236301511846115641324519226701760301252391239618059000655258661361783089459919585341382548097765397012414529898214587505496806772315165732944529271008823794325583984428405117901748369756990435581285976220478216399142651853413804936904533627615196160037873654450357614824795306598533736883914300462022886336887412794575845470426287758967318919535079102496298320389385535262217194606229368579163641298192293945901240516698549697402093159565425602965127131946135725653421602142285205931981002317143393888485922168685971733502200903781422365887428493156299418143767859031246303766178736797793409435383622498592014026897022434824912742786831378575229367100705514693240719621965816709353106113851888821257773409826751474274583344941061497479412643517776779648910039297817425080554455749101597249718843099467540316211241133017837056297285046330651927512989032103796253715058758403243486702774994178042915857469636600105805571509283435998376226814508880502546707082562696279702512853625555401586419536817634353380069116944362543860477469935009049722122661152219489024717010241410976402416476526558784593751404596979451660536438258680676653031148676383916450978563388617113776762628853295277872644790929065512806994025506378877647913644515375353669810773327186393336570859327810360675528927142868934975041986809902982480443508709937787187620123541325592176872999760103488874285727708533860941035100542686643861768269206871664857135631770155979590306060972229269688934317824648349154435503538857346178632100583068747374187730867269563030958263473357132445739696272126280397383606122389794040286537108912050887321642533107815077300352750746694882013295912171047711163654063145861440290535016535344667084880279485572643194141484121677090128300579776310129128894479003934665161995243888976438289803827506958054963318648674397888481279377489641331691373772733438581316743464668095726892577317345140920954140389238124015006734540964877196856319858322195317611520776979742926382214474683498106834470646848998500467994811129922919100790402200261505885672921798994187317122330183280271964594559574907429189817250934825769011534485983200636996055122498924688826446908145473955281964445026951858439694688948879152758287619465202129853856228986050580014704289601727539295047167781529436483537982669463451080382439060271280178840964762381275480259177734874161319827747179629511968276178173563522178292816134986873645386728460331688253937688177013209018141890182390001237905383628799026434168664831328258821111276902040753986983127511932595186806295859940828590005102602900334827618072979104687420799375332850017756112236590270679350351759182741176861714618259956263091509978371996994274728404055779486794983549448404358899837450013085687448352791415176411784200850584189988375704884271820148341668131646605060071915092491641036246831535446544658163759709326147468153409835961722411010583486669995814334063092452422662020012380519400290183725342555712997164307542159799939360464743762798602204731210170400401189817907716863361278341552315594673183143784900026861792580846822668954110747339933787668535861716884561691076450872706604353255567241660314264960541887250923269638654845426786490483318690102496477563650022394332437135198199437227359918507911566043815039429535033148114699183315015410615307498574543912014446254161506237888574716712791624539806162770240462665014615571152434384572523260523140273019051773908456158039047822922141339132309408897563065549531530901260060625355531408547264886525303288356457859147242220802283749573366839077380237827712839688223294057600169186036107314282179488320795979733107925077649711927118298148782370603830268599414353039643212813815772898587980872748856587168499222584132048155145890082171498092048867429845274888653928294920063606852132550038314378826524468661215480790721908877505764866508529293688514956429656655570100785942945410021181371614122356796608814835904191935987767744656605627781288187672793431091071786138669056058464791965967680421667488563705088056114814933394137127058774388823280431534693370256303825666630514976829693516596675917220843574854768719461537568646355563844582594988557054031712404586339124009143756186455383400539135319262198759444562272490095933624987437103975932028467150243673097338836567605490530820581518371149124299398909234778896030055614330006241178382167628157006480917361033545426355266686589423879957958493375268784593009760474208892299311069082949526784426136272282263713202366422724059048026791093781453766183028413250184961187791607760218707805597245555819355874582597924229548654627384617684936015405477680816751549747801675249709445576601951623156684987605837903969410456646215328227421163656395569976568484980721952274368493490905390100219306919643505236170104225766084427825724317832150026379541693078611701030061961993695125441120200340694111177407070171199649725197089510402150199871440240298429293053902021277940794314709234936632213191433362560301390708531744108742985264943278916195816262660604897112345693416507943010742893986935380594339234805130662154161490941206731196064148130679160554959215420729947373859273401592237075823846897928463213508865173330012590369481538092105451412522769504257228616547983302640671220495054912389296250459659749718869649350184024776628554742432174093466946169802084875782104190176529055417472409584082536459789437678750500913406063427888702324290268018199467035401822438283272457697100908248534124545579451843573324990380286367730757173001386697697202303139235320018570388431155324427749554336291523904497290920244644700854573183143633997395201893748382845541729221592607402477892320974243163031790826817895769755807163725119078169905810301705441841003449828137015528568632460721967486034979104925459018154092910368889997541302687808451592952284461369460342074859176512585984416993768056686529723542715482340251202855050610230246206121035589712940990648617466579585751092925208458663755910322862210383353838829503513872319828016496373287760718882453694759406056985461500961854110368228093572431003256451086888557206923058301062336665329591219102584531892782324443556313589103899886235540458879971860986833277402482359609210799886668167088115761723411049334095965134456400562678893092030631437727182495157196246983578040973335329159067567862047079480117138681354280660274071056426264991605603635564863341579308066642733344569165336875596557367627793382346583725520618145626561193813467197633114605565566617561050361825066890263593549308993693606312501099362779953213903120787699562032795663824998678906921736033056546017847230281762437507112329516381562273542406471459571630911411993551341022608087856326543287852376502334675126418399386050088717611930199292351024840992136024503803444317032832961178788945158853278107991927718684943268458608233415207445952140253568410611097437124193463461024648167374214362183361864582314028036195200812386703495590090135768333087775300819658992475945583308062821190640816839936475235321663019324607948210349264339715473646821192598948367308735789199969640535195776021560641425239447588718668522092930709541766129022107637796042503490572764475786974080542442147099099161987827555369190528974824943890307407586205988920713722837497590649482347499508455631889032022402509338591947028352505408178879679005820990713149030867309967843492489338949135641310435670928147172703069570109305101131755260974641747518773350108256521232494039230412572832814439297565044670712490077612098410245526126075652227806857738969777625333749879641637676040187021801715573785564218439589083513265850782387758945001200962149311957629448265366910339016251139261169807810466329006647503083058427288860717241355232296620544881131457953701639403730605346948600253974472732534714546849503187403061672635406130790900942893762931311458807088521813034323968844765976854805938851015174860870467509981017692225436876044829968252172544019526636471161378346756051418399590654865395811108804808127325310129367892909487925611326731794659653406223282791967775807237911239800013487764019262611170408414210449247556163256286216666983509371019523966535155688986348455021492120206513332188741551519817361359862399349223675329811319516787091793427885226398942055588313030512724260872726702420467862874801143212975400327393277498316726068808916915089259630940866415860185256271233490117146150461064111841640514816543947422986511713220784003530044817106464991558464350004121371727574818527880961583798503483752714882797118375329962731772641042646312208010755468586085477035466369960062703999847119747986646535807632666746990219678268525289559017418678101934367269614970802671573096973841305420187945405717926542378774763672410445463021454332926248343036217410610273100567595705588941988040158978560325645058744424229628232938054962794185998990947176963851494489218075325079510474332122134306282914255945984847003214885260119228126101197485142498702808589246074225918059982990454193649314704888713091804276616001217722320839213076957138123719976030848118890520504753840257880035134702342756956133752268931282229419114557943415068828010435578945182304580687866047048161396294451759274598170831443529681742107232492210478231598734053978845361063717379644850947197290803825979969643640953803149131620093811120489955662104012749106860498670630722434021287244417084921133854145498014276602275263473193036067088124084437851601868319224473410268162763720672880532261896991292898725253825627256727293058653494985450107893645331715900297210115176643891845608117809112392521166111903616900926359194886155917348382089661940115766061284156648663203810776341977533903697065078901157704326175278091746917104040924326345842632463443693300547876978197301042210029013369448633622735932466722825677604385749834526915344491340808276358642449527337199987646186030358631252655610794938811113575677173526835270457333123139154114733050066962026385319622023312083520320469253708739258723788329272824305547746318437713803221119153962204582530631253511732464741434468915551000884275213520587211607667666774223344780593728909728267863758716139297436605525593381502741283300456391860310960716738123489550363215625583240910685333672147925083219330265815771674777187669886253580987896671713398204504401507793931421758128440770648754487264887700771241761406013707021866978335584300393193084462116057592096403824439640448079271922262250992124919157513943648507282721068013661952700773021804358317430016414493950448119633879237441024226148734314939179053527542027164526645831551597969314754331446611707046288538538476089701531919188403856131850671345473549076182424309581516800708488682271532216853356089526865894501481864813712004604169432123386169404448864913201831969784271525219549799210168658893743100028358074310817884525875171578887869439249466335359606717370769836924195725181949697068552065380179216811590731937891538837027446659124158468518671124083041075946350821615437359763818084536161353119942858036002606161704293044418971066356725200739029466885357534021121825949384494058453775505229333402976069095329620677842029383518310761678703819630215482987657951953924532194872341129360750570632874511148488852691716664551124887082282350750287091122926301854247917075054732129355325187682015529059350011977645304250552242049742721224741811290626947381831753168104014928735664428312265373973875977128274413507490246214082470334245842835566621086218718691843818991677075436572679729247482079904776170697635876881022284498466685268325498581678732761284114521607453286413479052374238883523388867164625824014248150593152146128778932703468390891193168582930783009282306770019104435658341961432067394546818199434562328295056962918924373189044422428699665549408850570936460312189015122021138013855219383142852077089187937948539471610682152929604057952247292783390251161241985314282272908325500923544105045656954569589847381074706032274260954045527187800350766577039303628480510315302064305140123033287453665148900935466547138612400558219029286814608608335446006595706630034403129127191677383047259432737244448228835261701811492298227361508474389268301951051556363264285034723713918454668924694796059367509739955992716235433010267222658016956966175264079442919544192150893903319371155092454145956742311029730435993355515869757794371956528838114669265150684054961752267108916214868864125589832744192795248662802017277662303694987219283848056512416004773106298281331266043406668883188355408267640861038435299864870922188673609762802772765250339713498444683538016812535603133856184208671874740297200062228503327632205696733827698821619640807879028877706277911100918883295512812683107019734785705832961313876145730753749315509104423469032313252445960796194562257844566102643134103587843261209307959548359848730245317250698842024973838647590122663923565701003713424235883226195762882620876500916755477304265685334085937722154518720766906530014536711973261916364288632902785896275314292079579827168021204968452830270705576980189180747990138458185380664154817715326205679135910647394419582386690282135356722110822776739971850872840368492714400136596802854359608278706436266912587289410917580917188287255695395017893352449219693824745475587735361591765147265415153372914111609811489966277681113624849354384677439789011953762902452320798309748818877059749004117138931027480924832633351549235541182328904704789492143792121967343555589693928856269182064816940661066042255909817278315785729766033876026794270051499988678144003351671466774003069885413064341123667203759264587654565343242579642360074448103886851145174634586960883738398790298139215861032830045966024157456878903799503879289047520898955526669082786142440896330884718583648204787898402903875105790141345020429419063790774792539903954239697923977383769741983111092754236237299360729094902443678910142537010679229310018232367073528950197112125918450333609454423283543718998687770756815771250635114193378037252437808744010215931202310148708668138567623767744015682283607898663316693025948156593629817040295386329308526197917524117213278593559353694164963968711493971092080407152146812493077144529918872845326356667775701378790376608118862799629365915160707985164585084484594499204230879282080486455460131489368926735347253500587162875536610227069767287037366229408176499250896731678561110665852791995862513451103997071647004798188602707217644702847439616606155860599204913063579058399722120787958966014854880500161524971976463086876444205235235607261875698231354910157613474676789945959410164915670109585472708003420696315536246237230139475949483923637800692377189735268721478881547206926644240017621393194778155481584187859220712811012028582288796476570604637499972956095308469046907473213119522372097861102460936305307238495657148073406183154867420402217927289664856488867400796226721343765503504983534726086723681549647799321167501107976614858096759868574714597877898680299418102717567122472616170687109572016099064995256775330292220328202212601732044716039627792023085814483446039532686099479823535160115317236318939262761594483306625199294745297804832533010485159137885604203674932832890648521687918655125323055613061856479138050268701606479601540887277608685187337894520097888006254501061002380070227893371881010897176910272875005121437589663108307426740916059568126408278420217307612890921822672151736328093186380250400617586356495799966578131201161490448034301356364903846910900139493572108333717787524487820978801827591304652412734634108919565823516547810723199419019478390094116480501976718938034961197211754548557304773551439505816390075442816809333736319660205614194701818795319980429998102233879824234524494813923311045032113335031273316377105997611131420366075933842222899388663393072679335546600803946219118655183668586339263346766438901254802040549311132295351949725512091106832499232130912699346204927827515206962046955285679293953282254265799290037080600646327476283268106208312827398988240484717545324682447127602386350404409294426419579089980279759822010595775638774209086125933961846138211739320183483108083942857395295477630526850682322757874106323978897409646518784842869258377112098530091245094561704653100779241875572548978443604251111470588827964311157971412529138963192922335334136100948040600511703628040933138884683370960322807358829869630417035044947842320829818535007087128083635906572350844718776023022251336990683652916373577109149501337085504182524576968760041649827569885851828112670522810967997845302127019066144257516223361320976638818102150497668436737944276490717046035937800458307302878291962230794187762998757522137124046401438923743135913228746723131521333752305603099338881978642658525887946364841972176138358110320654335317109001691115136492051232380676781532247788278910372494410428840241536351212217416592799723045268803626164847705238887640603291266526273459144556705721088161937142289642715296677742838295303309777308417452628007786921757083259988299867459317580997893381295680863867566570108270665166570268496475054408207982655178230789395085106239642942094777369402324294427123916301111080472866860260576738263655867426799586212174068935563038923985031287388914115428764007967466825615469105800372899321615886248881228077467827672500553664206594010289092104701054680222351441954455409052838650890253981465731634999241148348331331323272374379607343417362668962767477190865432522417646214884118904179191121985196984649481352778291716536977915856332938154645329670551592936084894029573641968799907985326028974627486041144148334689071510526167790148631424994659117533592754706773756375831717519202450369348937193822971317101848118102580443409486660497394195972399739272276259521979036745384858184394449821270886264634469201131221352847604024996075650571994437130671463832885787765924398304301126844707702795515972113891268481973291421250064067050053907467715320684166249785492307440753342159670869490721452648560868128808475240840212658601757356714861336342892442084608131103880059274190929305078951924623335651142125208872298094876664387815031003256333118430621307516811477295705671490153363817537599041793095627799558661589792923995613171230364731836726851106824423167566629071278292098566010286800893534070862030294697157011424078979992401166186243399697358090891265529285602418346452791736450132280350150614531088279389746443798014866291803435194782911508020959111672929104738743141498063311262145776091168728124519873551329069491848908215205701927172166658040620813821382518996022944034800674563893364204302982636118720215895365262173754632802436308176968508665361419040003386028806229809020742794068844743672360702521798989350172048272543043422783757684451915707653676946807889709758847146243542230469670259286997716470433355747514757606210793447500772438527219546517868824630865419433021893619532021645705807127046203181408999324917561381736839050846864610763413202527069723333648685730826850857443102385308163498274584808832605661322803372591532546093572488138021803338776220320242466980562023150296457392820930146782399755829376285066242580470206459614570584191726476421532736353407464876780791341704534479622062416797545189308670584106897935430453678505823996607036141331092725937854980661953883309849447378175349346936994331836703819670716770811848122284709116004786168668337184227956185525150666310538564441311449968303446134977675217751941793188742521029383176692346299575362604316762222656260841009775265405864198840900775798083060532490347879787800249952397158497535607376332056555183088484152530431759254930575883650342926062014071274709546969796513523701975975498823287055742569910514978854299639128614529543856592836397400641826054035613420529696258833144802630133793723654776431302895449838339454350978951453773182153032753873574589489110696563084986819240073846778669887863844385332788319379676473719927202388414000544211690788355698412226929054501000655277482911604884767574894024429226151156294525674138032949447488342392653633577458497130856907516787112271416635791529196797290533888002002691458818214924059283192794581471226787639967853530909820523158181206019311633275590805336588323412915886623988931178059017125113465455878244490498815579804734165658771239313429269796940836000945642047446091609721295691794843177952639682145190988212186544963982559700362753166824725865114932855414150618232903339808618705822517830294567813555554524596006559162316385269047567421220045525584621434431809556482850002486352222499001736304041588061280160945930164128413092560161300766277089379960166653108045631117950470210159994426283391983090534707627280805641583186405530847458395377188230719901755035096382694853044193797666386291673906264091270252153470659238543104487846031177514688403728512000151866178146343800491251637099624266590062560787240852225688245322705723885750621026844310531582329513673866465273894175089535284780328483027151470042186647505497270043705176405268104254139147869415858261382002282067843911418022906107656192963629202143313791417275119061413739927369895475242280858648720276129190259806525063746374430347709526435111127045681096454289468948466970821823596323943745094864549634697372323241189497176269893362348572045535556552010154722318365570618479655198273056084916887523245779303927949208989623028343131237697108643942323328694117915695942164494014763310848264851599197235605783400686058174770216286033212745541112641476159858819817066791364183111544972502789065582104391825006833226900812790746749722118238765553851422486868913431836230720015377884282080346686939081666423403738759693802007038818668633411069705616663192380094598007824045939227530407618910925895880402961352300522691720158127705683140354055646235682725171636364093038164982036340858413497766660434301681409587269469712378653816323094409685660705721653145719321487125842995420259635738647516616178932879969490141169165604865183750551816369440202359068123662455702329073313137285082656077981375791555898749728551313055645703676968268340233104310332640557304946561812435267088072119649596861730660530878850660935543274974084112995284787469350815466588284857054138514246895222842472504434581895900762561598105302071068384038176974269184806113741809282039570335242849663218796497000595648545371955960754289121802786323023948000914588748184458050028948969146478528735229014962369887876007395501759076224134587728194640101338674760073350717537092021677660931524146952439904948191490201944356222359991081760414279710357486329847618604094231812376652488114687044657294773460477047318502470217910130198649463539309458134561986626328813133154849828061833080215442438770755740505397991814928624208966304081976341286131282653522382288610197670292187236961069553556008884482840682308148310874126658812293535451571389774885586340420563304854128260474778580355333843798341409384359358828892457202242160463776080070742424196853619667007466549281292609367100883440059749870720690480014428956559824444628050870636284583182734579445697927515305930491533738698115590648214720277531028010699367899682808371755153472277433872047719399792092804148895295660849625658316970382425162494587746074068005414238461348666390166988910125427056852015482280518395074747390047511146520543965384957278940655179073877276345904823973646966542053987047494210364888911793711671238440199863343107962464202787756362154466098540911492997562133918012592568697465611772681722118807499119760862309695652385645252158983495544592392963121137527915936207649730802921653836303767970478759718284852826293923873253710093874626515702673929789347438633226085670526679158011103029312821464824524596667255229736781304357127121038465933751995696994441098868164463074723991838075041996572932878370666021803058953770773676925579874602744253225742364653212855277950912120583617269921493663699972394131204668311962877803131902461628239730909496542559704628950261113349576209082811107441442803564380359888826158146298471564997756996421022996081766331412099827744678519083794378744766241662528891563411723159945616647590196161848581132611496777190142913627365064088919561950533767979544751309049917827575200495206870026019105990687878003613485825103376266314781654361689521357247607561850869389534574751664205727828674959636059585655517431268810941542663214890976736171089963714519923792990962608042826062443135748131200871880059531136265738185424751106735572126880522798185436942412878021828895158077457044849055242391674723684290639273844587794436432095788614008881505445205824715271178102973267054358182572543705494864721748598080801094933950709677128139175595178710901556425779029185690581400584848911428114562982862475467382353893229749561904799102199097413082935208481410637918432073855173944538143220610111034511047293174059583586962060544942348106564491578099145345670119610302482193541045234976628551875945842091823841597496279602218913975951517159380773235297858569552395203646693269122093514135243824940842459465260987112467420142319513132152000781247997754732849290843436210249083501102725343450880336608139622738621382649740022575112531044429206792494898610427779683204759636786759428988284626715643714177483737054668627496538001820185492285049884965217633920391985294239507234586742226412549970459073741901179986030977123345139057069132989407567913322206191444249726274509853601724508858334426008964055854971604694270943484377159576246697011171372197258330000329495222881745246883995313051663713131517104439813580541948457814628428968558559482160109863685217563147059096649225621703491894020111574592005968180439129640195953725028571286686451419615401709644067535910645058840642946521416360826084459209345960137500034507251357592767909660069202179556467606724325331743944588986674358884493339458674626077661508037457419057465745897560940505602995122573912429076210193847682843032279701687529985764096865561437652907301140938971419934766991378998164825304476368051718594274327811760840901967547848516690659060582033912264976104101292037703176646248461709797819010638284251348707017889098279060643001955663760596093910982617010610735988475323041998711303690147467102094515766287441805543226707236575852466962614263650081582285235095535122855092080123067959896693629650410695730396088448267068436270532259655322202322736278403516128043649385788666687640342648232766081838248765918735913164736612966401203227441180907017523316377311925959316693711138400571333776473357050867901066045775654009865566766756791181043085203474370765511209272448458653556731525314231508166051485599337920480199463161348995958993706819823852821375507572760795892271412892735170054765974451076875294881961623278285802416704484046704772667344586292235058609938539614813051838761892070755826041640399365055241458982527441306909233435422635516192283870025646969034527848663576766196514826449482130555556153309222457430912754280635807400490276664394804664173919181407479322693306969634511957052775286526439104332271458645150995227018498285377882489390147518504411581769557320051159619754591900591593398795534810696840934919960192233958934320303302033477595851854442025572209232436714591084725949679011366403853009682565320733840828559607202040758048874541065585825185877361031604541681621140457699044098095701635784364349361320812412677758753613061439886168421679047796960774830056187212868931582056510567729156256866957414004608224017688821736102800307491767887200537076728303648325019259798953499237149836717308637184148087536927055863987196531158223527868808362415054947644522017686421986046079988499461798664496251215467168968018608149916323213337421608494617080068446270611688807259190964532898571521312416819520812176051798126734501783619380292185639877668831669293574737267335205903617922915888552711112845130266565020284826557166797779304834173407417550610045258553052527424240681374592582640588303186605006743883185251601288684598350278379867305739274529579234077713278054532218631216534111484335204091019270242791917844575424005621216709187886567785879198904784504560593775363755646051395131341396715530475092786565393375957673319306924569922094793775335859157047418355967567722138130319788205991569629783012016486501297176026054094257611380575792180740070093920354077260826627832066041889644903625702890467169470991199203938094481974198572873190384951518247439866280246255486544308344501300776620281919970190035361022840581734469734364637441710018373165577209701754762171995522758267663692381773581126145916595284407923414591471107972726057328997424795285794656015363472727125231963257943128451389385031338190649443199017120515462014109068400232091692915159231104622755078408490905419020703081479206344822792830226948162143955827020877320971205691862804795366062426450838970205596236254548577858613442148411748773557045419744708511708385806347290692217373520899086726272263419950146149958122781414149623243056486502626377965884978211527114430808625267648374209100660722068748469565937987738312644654450273912918841956265848103342688606498275456665481078784720592100271455408549426291543738311290596397046263662064416818292200977804835827798619006200412557273001314070235335127938814872793568189926991206710520387608013755271837122341756745742307336477061908882868285712488833318610203926444234598364548884988497120329374108310184871061102968935667093728896958091579159102587582148312509346052406548494732765555806875744134921144333635603220217890105942970505398219859384990617802422587722848368865414272920640935114770550783063732701102543250432539007134654678037972808633672094492807607798007441517867473164021353346162926532753152011865484546887085000277231367021468216610010938855908029616162094340837495845580618171442210487689563284606243294591088266693350459835365506835132135828819704838339816871939979248903467791165641643315179110668487512783902801408666073070593150435765498508893812075781641223261842924324595508106437323182228358245322917046910078375118858500434748100179630169894674522124657382432368505051971038780320437923139725233322083012121485395799683900922880051291869264465698787962937443573469845393746168657732553008778822064588093799525899890748344495998904141501215856896702429035477471843139261900682795424412119397168534596899251935138783607746839609671283433032860021195587364951698508990266184459341070061222178387543028404377311993801722302323377630702320308275828699170849608248294828804035588265800865476312266457107145163166736120140652728299709077682930470678037324935413300652874032806532903538141736185272593711387115450670862743081795966412617378468726202548732315418968511098204318695210670396915397923338285330952255661569152539331066586103403512954738260895907029127426443773266421469612896886612493026410886532374906208026955931402767846779971547150918998346911628776046040577744304481903879548539226994981880225349127394540565694944358584623365414838902028491960129110499188340176879669171158600214775520631255687912926485701345690756978969004463523509525392379941025953204210132225418544310054918298293814868945260904056279624726655126241804722991927147904768599394149523752531485375060813716945642174420982371495139703495910031157818782236632456250258967815775417034446664035365952748924655457885915291700840991580814526568796422423431349439114624108044169675956768682786736315875617531910905692451517435221543755660418000213561659357813820289066367921068390926054506325503606606312444782698203233266691836421791355480465442294595686585765187748723875271085275516810226639689293746882983681914341410407099515137556422301644712558121431731802442942227919267306629951186420104460004260375737687374778272555481973454573688422356153169899666013953024817968666662688224560812133431164632177536113372686458724342661969646609699246287331261116895914486736008198783421729302945228864455435618344284567482136943677037080006428563659581904824548971836898020299759817724174527032478186503328528834964554193056000986396809575338034277308405357466902849849875825901831213363765678671124155683519199994728342695130787227519774778261172073798388739127608683350893465708761022855213628766747191584171545549459996589606711889633751032580971977896123729310161186852604292638083812116456926456438052853243665891813036524665420281945646848563191731036259292266385180709489575536795636499773092281007024765807908540486823724627927656506213878391264051344741614711089133410303090440148798069003265710630776337028331651077424335103644826238974141617166221468657398474008065624590756298205091865959800526143061372870417348240141988083782085067038691673203122326999234427584577595344701986303381444250115310427365707315110428947432051967646304565346611955890030491613933010929756810137571243816521454037455017829715829209067516514754351726888444929917531208572608447486306135501589002483676773583200112320138248319770112864760466248315053437475044360945688616579432102195340918605405248567319228126311570960035270314865366422330827701032936461065927828835356196962833267385119782083399986330862403346794470423058781794301113114897350110308203212308519204121695911097330859686463390636818481909227075502924222624152667978097164530658973298644688783560386066966067033653814142949795629027985578622248649555317396767109988985325809620066455048830560815812198873003084110712444533640951426417113155510005566573260808387229377676601546742865847687062029252991791971244178214075581587022930920759531378802416383941670153792308362134014679615620847813527993604444289941784081106684328557496954758167240986890629170223598051404663389564571470055232140362622051794471568517729795579313374332743784481867317332417283124109916715361595491742849827502546154541476806395658012387736899175549612623695532166587100084634209752185697445227337200384093746533352732681944102184337538156699030327253539393107195819249619012595281477738183045163785037804710105020397831279376371906990088146210998417046469206124134799580073553686573145662225106061647356610554387858170574638472732985074637841977413035545437579500813317471766138579659791387979249029289630441485799324135087005918443950027819737984934391241741643375596890722284859610587757823210412647706924620185391014505735774996244389836646170703967831382376835075353466165375285581508463875197880430173220617118869491037575840756967013802756088119312536009120659812573683862596556542261308541629004628221620801335949331998484779749504564034793329686571642380656247464567898074752549463477601419047134345918957806963903169117511828693365906561953380879808618068147623021845777635951125377730428208543877440577719246336493441377331394285622130401233784052362842145092998973339131789057378737384262708016278489933908543635992870555734659978947041754171350657699546655461090527647585309131357693356540833835651932477200175988881885141349746695157863434511467425371044208344677208646114260520372477492645835607108780555429025993079780760952222405676124911888160283842386406489623319000307384277789698568396494136389587257428055758447031298357039852817312150094444414490357768291092706980604503593674875809318092729263630605924978444174167202394982874802203009421892347444175198035404195818556688848384910622475966651577398983272391691703644662026538143705139948822382904195688933956581910891379689996231209167550489997797389124788360418981791238071468030235213924630307366008832030279137053599197453808432105467525307243838588680899606407366033398624654621448962072977460427044857229628134496061169152584042086146514351183929984200685983833150743389385009093119791165034139992256566581480752679580614587537178033376255070683509632270218071686117208203073283790538350874286612098288666268986812847718451570330046443365930759159395622970543877204256962464778125112199153146423349280186505390449170055145123152702134577179385627487667513949386946045546879029886757114089600959170352991678104987378757298930985003426029395776843162435417485409359075505558749292710204631037367893747549624581349194288953296399511099799157666847244664459810697937998431608653507252491822027835879616508681683176203105379704748799934731162877617457182934276748676920546764552350922569095895182024078099705816221119698513576766642557079344400472238228868264026869525030816422278673479327211015176255402006643398969204839102240315899581803007081125876076375948443044349940871904502484615068351535570365836650839716990103406972749531215019300625100654287789936580497685608087034035457705920549698813513578899318880856226980024129918386604675728263109799151413552312587038849030648519454494353731085231332572164214910945976805170314688579350959187936736317368812571699311337831931282650843840963253565407399036038244300886257358949321946919772586148715968997008030595971262319305670709001525857723191147412050398938695257563414548284529125077402478381431501769490964675218263598686687536105952471818012456948456074128282136294416221092753906508904481703343772026080398949359345721349304339455961307103781644234594275623475133734944907068853095492263828873223750571497130123638318721276189653095125378317717999218892774181732423935759634546506748998430942963600393428443131976926878533524497113056892085315729990915553275842724972684556368512255699080576879428635283005703746627710332242534400670724836711646184251857640986841833709218915991597631818279473796587711070693088516219529814786521759990842401228303485538291151060301433620311438968423977106831688586186922788330818240480901672023829168962374380001071123389014952505152695375805431932633449661120118015334746517591484553868249265012056377835608223423430091716723757731500295242748997667998942056624565283850459625583412083335097236302990435056841697501386117030061396473305843583674148997332476505626539676090487859012287124937640331094908716026531005818657376048778431521321148629865593256406353390679862478469076673495092979958133757686149349352319106553218307343892572950287246033223711975051439974166015541713988486794716883361676984177836447012421830958490210532038703415213650203404110888102989497966357684034768889353081528307802576824409954976336078188449128558329480171448696250952691610655217981816696496004661412861900661617307305962633773345437300457657311693814309337431918419042565899137638573638863499717500688298488130276459614785112591507775158410602266683838707588869105295361859953143496457608385256742481531039995089728454740413643781147365043475045504604563571412622001475551338180202535120769930096216928821262535050322361363561646053114801240379123301943565962846389555871882399645983018184514330025549823728098363136288396232630309599370930990433036205599014848087528964196493590802847956303784749348303956160050111369314816350657259205789346416465287424307041580025572461475032584365330875224858928131292436516458053906898203102995614304935025814810378226323468037856866491351451254196112228838596123204443512681683249579757903646868479930015496325832460401982556996069396400441440120452980427740445390351043803467663857023241996597941111060788236668007175611725826956591723837256674589652063963621425210775907558894503891018654041686394519533034685043114337736097032001788376573226181542880672797834364195642068779922787395386639540891551074843795633883424959510926569164832146555730492490452436153695133626098162212035627196255152900300936653117456189107702289390519463323124104097952844788662474313759236175241176256291219887443019422849037525505979577783206706665519549035009160977621539353699116476768730952947390074598837328848435253275708936423372118506401128578635428927305706232256792079589016610694960806558356924815310011677342787041594502097165118161117548558195107476993060173680734234882828034047383361457329026433681068851645067354486607130440223158169486172802135101937004223315344790699101352444351590923266727018350419327727185048385172059866115792806343571426839552956135953166817522741657571353518896911387236049874731508246248190414250610344525184453929060950198653069044302307716262078772843389711246675102372552454488259860256991033879837647313466251795030730150690384123484928448617310325247571157962360945794090561609509437535441399572391788257463973155245086512306851605196251297004553486193478530518927411470148732341929688098326011862447718188764193106300294248387340937834528483305184660715363929151217238382268121769126370728769774747410424443612203106591600797341047777630479028651991834993321810279219364799211188987169802789009861986177232622451513629577958333417834380557602809067855098823385686309601904523870927129071237013744410117558282621609995995234355136998169629735319792541595945368219418637613616477424741610087280866945615471284030893085480320972170513365692893215058407165755985229087079259852521012554863196173447605157942673371523836195853871678579344896696989208916841553459405013531403842563917346200730342752717329205456609171785512715037318279023797137932118892595137851616681008018311231956877041721276739613268513379056810688437440656984070428077798492662755495766767578252716961547298878357954918933942634379918949052729524066402044553764443829792837414914969586757577839182382560093589919047180050923905649422962576144586241998156990986526796099322408087518278284628424621390857074440461948994826041101788728006647412312444384102922922397380137228521665037767084543002867712519012448843777317284266613741252042522787758982005714236913018080845838809599640477624728492487029950804728552755257305228433715631486070215878860398079970340803329124861762233605216149840392513881762545312360504250513328471437465273174485412462016021281919513233161994887546340831883600940729011532334940711041535307975661170662396520774462470003702604784091786921668589405884059702118099346151482303516273810701760119910276778711974301128414792573611486333015901524682799229112540280808397958027703344889797745386426979423261695000853128446046447820814576851087478266435236074623480180267564835465063792474490215195895042238129256576851450930344809757918498298474829407066147683091386224256247814858753163917246728483283582266239610793695270662928803267754717673626721014856753435659075818373092991443585588982535890304403579148716916855673434139622489968498965710988490243208297994847630641438233735456433831821367144351097388505552843488046717813547269007174969110945318850418184884852109542653488176244996448249171133733980299037447781899821599089545537087208291249780832946634962180208940483363023734131412613433931895614823009753556371210707072924406441357835645580923855093810905723495036050239728462198029458931796056665905801767193986310806962453454613169076255918916923787626162422911489787325465823591127906916399586362392758336479244599896865578158759450579121408410823546445393092493135286132784855139201757707095185114253704671643404635222871966262239214998725225333982544255751488519553266867159703716706472288329312031681364743611343631361406398793573451088896345523609136305553541495404301933618861172793096404558956999064631086837708793480241299079793997015884385148326976226309315942269841623883976820799387626099754565453328900580850716951206903286188013746070271267235067386562370361489836190789870989045550069209094098240298151615732174657510551772832138580277116490021354957340852584183686135296507607624413245245447360049337603699135351555818322678053663616918964817266010574476976053082060360053911543787170236515735180764583929275497288976227379903622842745430509891900977193201286251651375376483909999207950309899782510964446469516944693277837320179873288075949032457372306101861795140808922901747684751892295177689771599929234141507747828440114853784281079519392491285567775533405387715832299058923676493697752785607029750270992216153444885691568070308202819621735852562255132391337831814861026210165132984705487684036037682960912705191577641413009469380034896506430277863274746070752709553919872960522819968591068750521150315640253357015286471643966196443175817016049121943662075303061308453954697699615445530695143798534433864764204804419180891922682558062182593376432375655802312897252115012938801968271013166013760784785570757058052350155475136727937957080406738352510061357518537284284201052145670377657489548150998142054890440913352618330810949803019003018296022063050445119427165657702027148800394492010447293749017541539602717809689916868915618164545798026390083213405056109294168052762858870137360691392789093784271351551148349909591028572258499143599760694584897398993118392479208509779669067732019298915357998399146913828559148087115470946114567682704036904220001900578428982229746132572128633336986232017697514852627629620096311871654152664890742588262886134009166686221254610225590911361289880563172202608258292627550715839342386763219381430716032070238223235175021351764975227908412135306050877805060751807892479546079116817287013837518770139404951216109133689850404365773484976130537545373349988873326666031943513594273652525231499796583030498684947043407320666457913524746659316455863223717676736039541181567374981957020353975442489415307663149510946324980538578073497903089376078079692763534684104032900826313101976688530619945984502723468450875424990840048506294151471636753676400653009196367398105487063233045508344300639327958075356207946638003716809029516545743555525076288806003576062001305519242206716597237895363793892541411816904021283620597581341286455192771597526298721596970535675498971587322529796849743112793300069766309996223737521545012636435047671793379700242052821980436224192538377138600556301980022047348543773506832635366651028222039615410730129431741068606170992152022551645716960119744769650179770331573543827881881651889780765539712982465295112394780128119042585581881830209054551704340686292826399070132151159019680345257873015932429225388249201617484015788481302392599257558731104644781184748760967674679642400386521563413204736940139546985695036444625519203747729676990937562096107309978749448575130686092251882629411997257494678772330745880167725938190449506509990137598412444123266659250213718254822181353990483817229352254472578010655726827116627422841493257279752569676744348513085570458105088577573857722572310515694232084476073183951745349324658579698900687553385843380164288935028322571169014401192058769913061049525876161856630861617362319701570684109448849988419743770127194632552838022026031083807975994043807781399469132502568702093299077481308582727136903561063612906535816808417267145556004488160019409703180729931111596080373796444825384816633411601425682536594422689935799814230866613656373390822894546751327563567828046154027431175173873298623720256442110077616602939726891598750502337178522013315026167483365705792964042025407034998022860917740828903646688288386417599531975756306555563208207252323055655907459719441170989139109389873303188002346330189943065833268143239604880739762306261790071261397972653772509077608047785646690596714926340449083843310261197990873300456715759095245567635943680311076775348486731203103873312399296261123776764742214892305005738372320107322263941580072248814052491247654504574393194835919274902418307284979251244689812250347993172365729363960507688136344557475560681615149179555010107676044172883548449323861177370558697040002542705737633148441495473412379884664106997896158987566224877207253354123865367702357653554324680582944722456822658478203586137360364477445475255089893513810721784548729963688233555400029791620799306048941967002647994164621501490471377059816908209783831645393993496788728506493554774384120407762876213330725919502944396514466996199050129691055343790687767978209720718421285806682551319203913519090540231819637240158176690433314195327911677929284731099136538890378879738123724154205862904778718546058998065642542038344533836341028610881846156820304051071206366441179991076045614509049465830173192640349147530789188992358583305565460272054924123945454703166951461260637827184862141589785615762565671199500581935954182462407412954961419515173283932977573540088667434281889197751825304927931489631055928739979031288093292817670283532922078081584934622952579645737504142826255133849578055833692330195887909263973591645656905418230233454492011012697563283451476834418744671985524377735625790371099237337389688730044527377301966658958178318489274478254560932540408242711715745679405962167928156714335300897011059990005423011977810976230066212082238192334819784873559026482303720086703621667056469230496545521602633174061939426101510270962065322491421065533758801836124987686659412491216276532213876799409861375590243510186918961648175935230539190347596428200394538762333311558121072218804870397427458917471185128619048328943759420329676039566087551485317237297511047068190742123639885100852409976178194915791107031489171061656654623301338029036657297619524570913236971766609850666978309854761655933912513446221871397785429841688070208451003402955520410666984105406944092029956731435173921210951134128505859468123329612517983847638564891170453199093162528041793237819729598658457375559242128917202736254859022399210653993837945082089619426737329636639238568694660395535874449494596896901516619201453566921676751185753984290835432284281149127425161969649667685335432847559529107874438034044215016953182402008541109673668029901068361330783630894539811047438229974720620497005481688473778384246584446563836817946513578563082527486165709038568299277039663859091912553457063936017471697171486016465163090414223971584682328034359585162915473143558265805416202364460371124907122115545278862192834846052159091766019738630213983451809248325421121844771078976793966576029079703821356846730613516562003955131035053841823616858946091695832033181197150687385871186971642376826714606316504607757068638163234885956225725575179572819167150827834726169922592186594921782065878448840414150013028445164075124561778710468555699048080561467793413763745598996253620987397670726796758209928946895817355806660654000690952867372688121552806886575599652288868094211384717853819183563657593575865097202253034164977209873652274308259846719310083239834637768598867657158967222849805307145798531023531486691628946344479157581750214490234034658220696522013455925047326979628831299738425888656014001477700165749753862025109632107965085135855133343618568300855407089656705571517842171501919403563676515470693624913850255865395758695126903450408494616512294071803825562523145611569486778995055372228109815492660300424838242090616428790641861663895539741050816078894981497299780394656556717945801379101205372764578815734864324520396170553816862537374002097179859832630726020797462350053456610683489011466542228874335043337606295203662952175404618387088593741423191296900307845274089913402520005341396595383033212865094617064261665415526984745100305165740000408752164587471618279726271134981829851184026462167076936256984756043457693654577815099441704072261782441570285783324728799163264607723635247048948559472493807575512407982162112441529848646310205556834172920329174562062344807332264634870069886991918827814339828468602536054032389061240043279639125503233274176015190494481268575460839283411488832276696531477900480677717111677431533764202388819446812724322869655789714226057433838522760010343272743265917683792945171962554204290749570250854006973825716377652906837553840473151358355656270749260045240992003284060663890883888035880021293906853340300958337034889481567237381818495186434989263511155196909682205109662981225006362953127519285369860513312278431923124169983341371402203388961971355123287070683532447686218425042470944418271155748882776327699397342826882152126746671895702213707069643911402194570883768636401644725178467065956229134997486784241065043242416198265452546887963122449542917467347165429307328482349488188613944645757361781163783915039960377909578717383882305049283299018790582302985211329381109693573673547611575292628539965316552954196915324070955983674729650991207049311241781679317845363303983194308420848934913948250685508420473964327647997297182755887118446775136228938575689756661627551214494774064442265909409126063809211268048462696968318837814727324669619987906982980778812396811253032614717904274497799164052538369948097022656150463489576483629512745295963952096126867011191224210008248655826967217941945673070377214893386995498274101094994668107323089237742984397366022647390896437677528809846646629237352706609489955704780331143141698590899758732211925800171305670581777943594249910235057382202354184081369288663536696863730949775599756787630197843834282030736126338547774432126345558242213343444344690172452451093525300775900573133530691423377723118234967685371138850064698279539024356826611447955699946324402966074325977742153947943477134094493145343412784181205139786324535535403505784616282524378972051017300937738622665892708843628620288688357872644751142300646935028244529730965130551279371664018594265345051735810350416900961783699097951203109213691809571542640829519419970084218371067008515072536720576715396121343192587630558222690369718698383326078575953712295074936917925088518138017915657274551390046422656562128671158586274560320946482306505752850357210408412931992096742382008454099345672715719093458480956823041254912736116386936162883595840733063600794140755558491378398832718961078360104754721699733173813877545587811219662259676586075521528868211628242745444196832638743163472386097374021132233524770522969846827526188826567331077981487095836222361472376235279557884325865775733672611806706683743492008984163568932300475335383676817175058803901598824993009440671826099283527637103324832364465493962908843466473116200383973273712798818728033952482237431074107309023567573546340523508614579139803454731818959571796507976175354318833674383573294661994661045610439577433338862304571764624582715637843828788521983162658364128565646585568709191262437934331876770611931928843532019760666034742208729701831773080790706311272889660954106847303427067940471043077363589004957390945780962259251629590312248085752918515460778781535250521472528920982115248477328446966328684559239532462329116111822486394695349920386817892766823819015672010016270254249379274276721757521043327486125457457296485782441315009903802007468468823444603223306408657031510472742746264222182897250546318597789676241464341964563230816037758319887043101869656181110286900863284528419675253200274615622913531315636934631465240002896754203075587773626307372271804536008198732991059685738014894558695214482259721296782558362111682058484420654000801607981765897238559338744602926013160666108697392515364957236591264477754091335740536665889648567286883058204894838086261387499959373225672117761983912291797621289635821279899038503629934127648229039664214377832775980165293708715787263882754543507748274834844507881472226239655208608127447133121879177958692031759397633388546143980232136991915507773925732200463782545217909785537883571448319279379976434463154808707576607767795252915144595708544060263214885550006912197326166889342054772255503441802759245687926453218285082140652760893323554102427369362775974648811112841280212343905563248078078959002279392199801693737027226699387289473961118943058252835556257653355497676862573620547373537166418661321727796997628394935989243230646053917815153288643098337371348080411316036612060236207586717211679644753102792157966524255922145498560527976877796173256315493986022684335786635257739474851201113743830854536953188258462569378133447374436040882601663005512973821518275380092856245782004523108953262673660574246711449394234540776867311617263928969090507133046985847141209961998208522970904957691221357551732247401699341333911676794239231196672272888008553364998110789436236567200468686344745341025219401516522104090087655866203487693633216419107396862657251467812878169263174592111701396211272480659546821069687652340872804289207139338273788039945126799164405636661827007946017488000512952844064967727347238638142169976102491793608812990122344207349241637476765285085133531191096246742907227168379392403088726071138350354954574453531018733452421484547318662518651136846403576529397105565789958238039452029556044480572771958377479391219632376587648849635696556484626631896150400033293142137285578530094226460812394128070048891763508147640507222365095178280265674840195112998247565917696210104858305541020021523885791332883139712704911328872261062634032540065687857436872206140896567094267492748929630361868197232464383438930395624156867785659884580465150524875854218313601413120010168351445423624573753391133851788863316379104239049822752182237839857852619970774512101529594300646578639149358952026606080022249354548868853881307272226893069449798355855700445388072309164846083998394378957504588887524576598867077856361893899588088904917603647647168847229440489122132609732821694827202326776387502984761484270510064184709555635249976708122438082301406639108658471087616943737603341919630154933994925621854797865696957558225176215076405673634314551301573856313230089687065112143547623329934140974723022008446449496982751465634464378515426873785504246363105907002038889097943873149749249502836560376061355084945196012814198785186346865952996713337397760702368377674513324634150140713670052944656049354700714156074001209934011237906009380855397497571910267770094499486003680099308348839308964862086255821081330227418449359578813333229737997411025714456100153270430708881368436380537970275948953788319223577552203609703102603862702231284009697014949908978397320877066565595884151314898771153783011649776292476952273231227375293994847147135444381909178649267829603553483544412469290645647263447816317087709709486285814786674013555264213577939816120777466936118513674186901918640565784330766313654216983778147620482292410992470453661490549527834676679612248016337523059332734487846725568088802204796081576761973589791684954879567041692369403053086842074972101123579137453638851745097962422959878721825872142078645986681653511439026792777292495474611619874640913511221205330884937623743430544848777157473346577475262779399063218503050460435873812262449171713138189951430581935612074766641705147750077671961677737486071333222319389463541506094362074107250924019748105054508159174935649808937690181497558208313637848147032184181471436845276383351103457238716728605130298284966755243560896511862663417213504259128300941320434099020000726719417970483556233291839962428290135857131827927028143733827027523297444660161596480718751268686787897158578053990689606073444509646052286956987563321210326785639173537079761740353724144803557762964252392688558459525852633908294959035784711092120019383477221312176540525710310967870762185316379235179643832272234010902867735430648884327728357793676811634458215746930411279056936946683691425702579861482102803242092843088036413258774128639850421653581030905681862489141142764904301074109307151918750299348606956247996503219474976127324907601322009148943379271195697492351928216351308323268958308640648633522310392587447850978552453715393369393731107856565032078877880116834809954134442449967901679831604642248526484603668793920979884818619064836883961820120093934402424100252941353022721334843618381226115062860720214330350866681096853503761985548336272310236452313855431437772827688345917952002795359395700669751389791052134074732144315089841706520076442796287098734542084910944279078037319416293683435071937446453434995038096984072007800529128112420862851429174035300132826245509079848938883704415559886003921448658027038065712096945628268801474120823548719412268540896977909512196059839545526909325154986454089823898831283569411700450547619778382824209384325821047207028089727679305049490431568758511992493724540136607733489294433523691785706587012599085328657733199304976059815702791265982274864818651178082795432962858771626646677814661861392996647816065840164202216410204883184485873983870311831077035587264015936498994229821314944670269154584245729050252243994771683485629938431089696140766712918135271457335973134525909943582946062793182915208887828407125092341299098473644290655415044463117756378640384558866914295051272153096110011499616721954767887277639699247553932674769220471019487133815449776647972410350897523882155299828271480179274137848286673749410076372421216737729993602157894616572361557364764698995542857907479341215897540599698273990843729029345806987973220588968945874850435568727583171536938482031798015735477227173631507435257561094563969105270546872164664907902878849414853066354444621440482661843263841262704679706642342390106171061378003721637664954318529389078748570891852941505256138978071771078531468250115765295874499712891123436279962648345429735836554108307968468296042232308196566683250746910694922195507318126012100582181587844982874323374133841287557088424201242615252682492231666506911076459790114157769817853625360423352691320518648269813334440710726598792246528910954389515253313374521425490062582169839100178862644912740220008358187773271885410205636120998272419739985849217572228833035937830292703892873139123189987590303602300850020565339052522700618019508199552875140941582707620021939838484312119117794054335003623326214696205803183471576845364588249007211810467098187969078069079867768130778682590959381376947499533027474613792584118039066973905524859788593949679384591137161184277056183726862448730488959013970334272538388556088686299661473821001998383557559836484568909616059283652875791418240035516755030497298898051707599415434484173790322385496066984028027175782903544536541353732845781436727856754924251058652774886632599644860362765707879087634624726559344258371529745159533186317935960010852569512725465577981437382651836307292366036894710576289278851671772084936785622811486109201564983973380381940121074810584106690023523009393663646787489396126212297451812001711897100725598982207239964741424396357934002187369941770339859951174411229337865992409120321862016240991352885449722511437988667499171820023741458338782984609958079912360420979865976943931794057431119995325983059113637594482766666948653908596440252850335162150854222824457846774448996144135846777014515749393091781666125244051296062197866118593300848759695655160520718882066245689675295464070906198065608008050820898968428135597335514563674760508701972554732413524335690513206350776629715421007045035670409003432205285452981394052888023165905591315307422637117667313224142941350495663853155583785715044799589728933452079715102127007027285417333913126835536439136298243496398273135393994708440823204671391980178885546979881875719062237548556627912623674068616900377401215696465240182520830594215437025396783063822020423118401402610299840733910641645327023159335208541248188518467679631123051300227810359801924528331211958122796852053754073479684606898724204976252964833866121794404399400945037242396031372530198317866030781694811029175174263445717825741481772126263204170123373791672899029000012098585585271726350939259705730626379693124198542190789360179623237225743225792288091579628169689984814947007406040246305727838471774683934151976732635501141510112862642539165824521712468138726844396549600153457641044669620205836772989063460648070840892495187719265420088835155651332143981292911386179293580595433362723771087942131393283616308860916495394231288754820768622843754170805079774204951643220927297637476292698180567745349623012458763324645504937052621798338608946787985639071049900083231282161144396847604784257423894766379845441853837102667566851599471862351821657414580106251849865353565482129137520624707266941517040376090457339177423482907967349034426124465463146600438446296155325304773072220375537052836895831967610817215906912357859350186858785658273671242898521504285062904845650912968223288573113891925404216043923193187559087611722802249629974254850160966127877456443669164362718753062928496687416167410942241718499246737444994952450359859384512103942838867216513695730811631108045306608278798338789339951094055259798190280750566358915975048326372027910042045118868552140089845081349396573041234340616265582502871434860575271601894301693538806866850133664968821424755521875710854279566607987891405383168322370124355799811386423055192783001067033309148777255469012985777074610748559998826535127545203496058874046271967975065436880746003702780540872088592193096735479195284245229346306287814096104704594268520480036730895321557787786941712715915424913433007360014929126405010097351518189337868924607300345755096902077566963843803544108719097424610620275588486436199492734886775421951559663406275509668143202719990278898233155049438169681604740916372050314872469931185089020605966425001463042638035756574501103504747729770394185480624183315560638965365961922631459905224816137731739447463991220786643425856146521626714939090275408562030661066518202932013413469344556712470649232757874783971096141472367277438286667668342545638551252650986160340668333333043333115324259333937784827825038289752002156928547062870846268240466543496000920998864692037575543937923273720429807767689128992363956542602188739340540280021616636511746246201428741292336425110442468198040690697868915832450046902614004615806063613750697476135704720843043655791208817719401216566345440331302118329106894610779079632649945921676247347211423136446385334196975852892006543447556322452436024804457948053123847104123114837393206875522243720921198059180704508187074660409752050061997008005221271794086883733912342162629559182551642384754383556638926097868655401053845635861450148913717941227231087303457164472010430306081951673882046772805530784356569719666568164878545355309627028619929408645310098144680603095612412559632612149538435457858202894539601369988043936693778840538331633075343609351231895638100655978497095282675971647018331335509293952221596009243679421776706292181392305185982105373505635733611506522122301516949395387906092714030856431778034341487850201727548192791057159122827024581382748614420083747842372476312732004590333939483917716675866736511736624661608214838151419484375640092804399629677517011763752406585024673554953190422237005703749585618766601871877663515590176137904076699242213899643427235793365860624561236712645869229253513040780839073040150832930497404755297139874676203671332470183508137808530184788984215232951607776244817790117004083932843845809774680850957509294326618934775512542667732161866269544148593313030672545384675034209327088244753044849903491764214699306821588503024175552670965546552333995183942375149420341889381069427329849168176701319442954910766119966802879813496659338012702744695632956888835344862570805922247956684121576845865199723119922217961628663997330381282260402705887109604659206011901268748607277974402396459609650989084025994084171024476620944880818070133421398212324386795108821899313930103933354165244582181121320765216820551406150505709530153652639831976167554528797600246368712344977541064404502262359104112525543787299453999274227450475015921974453293166247229028553638164460566375206199696974953162491776433083684257800336804378382204957804398172240468184968076565905667830889564034680666646313808198114399928678497328001959926474489090831742396676757972490473435380511865463840281759166602928471066117735060013262041696043673521572927639305407751794336649253051697692299084987250920079073519552849415061692409228873881234243175951011985384391615855205104454321282334476778201517467229757474455377327386687211618373475967750572903709041692811339490945994195875201229155641868919353050997602314685341683029477061997162168256788084861192439531784829250636746273081117116738173563829970972846198882593594267689320166982845769065633425082205682519352874255035082163649543650864000786917683106151647034933163269054589908310005662589579315685904722586231562174087854824084135526456013750725487512092048900259793283377123261140220399026553583502398493317454043292947365462144752076802174224920308063800664913712958419727201136644937126993233294961297948271646906362202817619938224084563586216823092273091622984701992820781512979484992049877844612660123597173236471774891645411783910762321846624731067881708046797094905684293537104336404384046003615460086556730195137514176737802736740643762320167514558026477730036458644454130523699248744798851794649810484597129553299935417600126726521812478932797065322635675603180309270700661603930374139358913766027712458625125936090773600183403458390544406815873465923937957092839945307692562839327605602346961107708643770446878728876122905652804184937229355496122764771719558135499234575402124592566043678699818368154661909087699845962942664561852872847925014330152355295376202527222036338662138718862011084914393365033817742248754851317319531722560857354269468811904632896034687539022698991648192546226268134727174477435414073498896872670897877357147924630810834311354880806187888083364099090468461654998353585535325646180659553963230967656179761689287553610189322016189726949827872490377201812384634753833111932650755281619222462289095464248614849732242175518938655223121811724710383638058331452292292985861799957714727418522924462012306809330352267996029953412437902330352263067765381693173188333365402544365234531886790398959625797780179844520432182483391857622706341641502468539648893257054918347757774307669906404265410301737225312579243475073262839014337308150366751981886329541037790995024577810574692442639173612956944461536337191812129118415097428985640942436894550209497398945727468091464615125214739056420661479111357811052510104910594810666937028625584477523277235385460104986109150208380170454477618877085496851720527517817331665570726038280786797296091696235443612951555246219417223393921384085796299946319593888750987029628778700061650699805361089044744455393484830562844516340379018810872411417345996516188923821283710596014772314019289860469028863584673518947693565094927622544851507361941185344943849466071028150958299628809726154247719321111249136417135895252142470749650166776041235139638638360942060395131441772713632301507075988937768319552250271276059410886024150287571263648861659426228597726770814780099242986338898183667818301327573752784500828412451191887024092833329227249287275547110286930733678051648924850137029947680886694123830217635459886066537676835653309226952958157865990930083891376830095605820270566820317345915290389922702283909193198349603743543786104464279731600780119339244564640583014565927671648975963951940087793619513729882251969782602148176603900418726478517790114077369719381202866328164209376624860543824700400644809462685912048297315538586081656383893541495890820520783359467223254149875634049835036455226484101989148334843540125185647120058330598833677668540049706377071931746826013609698338686824812954993028001277545220372368298412460129355151846433548244797185606063963136841871070671928815499574687153292562837498285524897959403495746593544855247384418745740113449969836765087618245226791174923916095474856503891204272460970265036896274474790702006104536754012814869057004078618704388728483589652285910400941210289825464024426189256741758541075666452633806922609492279947030805694421090012402573482638043228400908838746838104547640551318271744504176031825494357599484336095465424271811024778892964504834073461859745117858768692161806138072636692114579223564842680769501706759734739240085047641750703703120376354755816096065939755686558419204011334349740745880389823397668300686282030215138705636667531012364498149777033127454934730749740825245589490867876263531653178107253733676335959328814368652179153696072935497138368343215402892293173237791415562455807488832885322879048777270157130912815864469374693433727750225613710442501875744436993014591672784488488916161033395843345180513759528559139755522102715543842809274415201601227564174390719488611568952826691365211428109030311692199531945621365222418725360214630746100845031665813560387882245817838993823722685138581974045469949003148949847433580439912368750039716564698469702312072819349751557617527986921392093815149839312151367460710290631248894057017936445963588392501252650599755075012995404234537208312288662244841942950137503797938410398670137077691352946160893303366892797026047666709853355619795051985890504608676341085913292357272184646242335013824149726317443063727956632985919384535121322216287067123899061925682577252569431992440437559915190761562323241897741823340608724622988649346064642704642681360378152369406311187862674408266607892388528286933544578885251492582500570775748526560501342586354811435040728937915534515959421815286476774764981986307689960633571951111796758890629433438817303227848293255857270434045350686955216318078153447547336964679493366284307176509208946384180502776553482716355813005382933255829706462698038477481805949599490143375819929154486607336381487043810255204974458041233844876253084346801448031845692171934164909685126064283080834552614124645527597920098096688385828081871621816996080847989700902303418861483126317630435259235707666145849317383182436732021062932062988110480155224241229427781714430823752176472466524854917582388970305317744837922283860877440489786851215154015670749694395341111766321838330635723269547362284486495453516263800259403042113058635992489248442455464684162608491154275191507047805083695627675733089645061441865439359206719017826877723223934486446139938185212733793891252235731060500325694617239489359194729780652460198673473055408270648413108559604549835622396985240017032614554250575509133686826004578440139544271994118639780159654637311269359594240468880293621336451816145597901983236533324751183854290795869018303882252958156994416197282517061306886362654313253395599557262959434364440225525926142720532921630999435111781612386648032317870711315469907046046062029174994133035609664031695967815157740852423989245037613899760295388360105663465563441129372046909674986927975053815314585710251982833667937052312028260453842907112386889622241903635069604389518673388339255447195414081936949191977738232159016378056354869216010081504413263233741297387713974707744487579747081491765836203278693424067711978041499628468747103191273792765351333233600537500594171444759679009922097329193095335076720800458043919560056472615161775903204318204650668922950742246482880533381061856216378193712293546885355409089958159786823346208242290651677243545733971800608177655149303324129020669204909208434298219206870956785241957573378436944384744097386572563037391685347518201488985272507928106904036925518505676631973963625383844507343949214436476839237065659944493212527095045539715377960230197396063540484663242749504695672033626602984241838204361971630535757209544161615936624704208685876761695849984618927469284669541100020350204501622259482022076882167735843840855523670459399339704342258016022212695967023345136782774053730818196208885780741262221885352060377339601730075427893524870482547499881337332369183580230848645979506287080120329306198322439098371606769618676526891021927952260490555384425890840085764884780001729687398694730108664634084379171444044389658347544496805507851107259326429636960715582419976987881045153176213749334333031314470364172667620516204379415514636471527579221342077957237791105419778408801551874469877140779305674157609650706440751504831664977392571535336103447295749111269862579177516652724604411689223775467044162851896299241685951401070182035280411218024086515612187987357425148637117154808936858946148892331044370623179344644328637897772307700435004587183522709425886970416342968165745276328457899846677726371950555537987906056993088233090436483509687362163825830555293462647018611648232306052657878180094143515666370673745486057068966800610786137284760003048461687062128206647957718334544687810935140322097812223423380005225742444114608916065421200753268328358649243179650053297471214424361982860568844105332502776415261356622410971650950277795112609679958579306873635907692268951560199498801455535806249584732791393759150531634746492755455574506744972889037097325848125041614626741922536704045830928806532386274665465970690727725004275582440377651658036351515735363995157295892987478825691762892925472077574231370802397455243718059610873279964182235486238614579612859684579623628257427608038676585370350633709086026866743565325675428584607189946438860389844728979308995056481217354859355262836065106859824656099206125703013778121890259640488934325377353542089196052034572026343692366159480295686388969444374797746753871421656829625988817201843875718724452898324909693834214290527781114738926266909066698355756114221677747156983629358000964167079099845875818809845336637923510385307559069589072634526238282629775615511540400309504896252191666859386825307125944848109223533758587028873993476739674312175678176344760967217120058183978683990644616703260480221465011223675944630118304108550097925110757905272787888753430154219289759017593560173950358159628874257450500420502771566150272335307109885926151329943617277903016660470153153109566250452829180192220543098994953866346228481742083105489360575030290829535152318671805322914739288172437110791418097721396646351694941268138040173592502703783209719260807912957358118736256324102705670775475950260198518399559841853323539820134407151431245304156350985574880768707097761359217826283763548889713032035010097085774070418587630751313619558354714154909591430760617964091962115077063717964611497411640592528182666912219216017514006844149534318527918769152754167165843960813657470626174322942542753699289509282300088529732756146590759596697116913901112963267940490537582144347040233286598770946497227958719520899712322566794521480211260727495274023029579447613671810699378423737602006570807627568731098403053555922465255627087963424204701134689662821719561912399068139479054453426777483329640116090570315396048556530699678619145271037206171558063661836912724038705314719890201875411626401734825840578197762140122884310685266675758465663157780146520665106769236428479570103685158855151427750449466765715719280438388083911827791733387514426323768581708245727313225313460909833260824990080918833886892685165641386511585172208416555851721340278048548515354503848010789924289425724506616181964867460585868302562735483627807383863733904183167673674685980039563206359179715709806875495371175837277147879386347432682430049386672034657562247064504898398920764575486292157985576473345289220579376089831730377844897996373958523724998859136996654044259039117255163124331310239519370363140199248072332209305086878236493915063362723070708512909788755594630687294358233711180146739898841042055749515093182643125368639776596641557027341918945656682512542964075433377673339272030742922101097889709741448183932425930478082922289186556239842292597918534636245380305199912321794559209600189988916327054558502420642137422946852522067543388937891892056475438262350961756632183749143766800165317114435310883053822631458407173679729274783409777401104301585533441912586792175136862495586689405086901498562449683005028487059799009572184558077483147193179694035006756325387287816052213904885442565781435791619713438289414049142840503438871830930032436146750067708187491751341602652736271843447981086700874104672441120024734554580452636513496933334136653002742483521043088427355276897102813089323713962827418415045242612934174226813041366606489924892712983501484010120075244123705547285405842438812482478360118494773430512334042747187257517991887494144006096073498450757172699800529686864983645131295053921273666157249015088375554109488048889452296006329311830944023851805523449270730154142202313912670598666442745864282021770897547452178319505354550462176244710649582893724999323010250196621292236710605446503339762917378455429211911425021058282087078659287360210687728155329146730102398089368977963986200414571062892281690224681871199459511819961030542277028787370969973076686864649947439314979022684142118122141912384506484817502531325339477513471858753662948414175979815753416721382713459396541855544240293711432748150210261772177343279239894987840430278745248208142588616736798042814951781902427608689969188490493827975656075201256240958334426744080029872180722915019411992780320509460238417591870878973764867210584321125150230051056475628850533228832599349291160208898719873510320425042414297118425087361792189613673740447556497446317813115756368909493105036726611279758910024836442429869840352523802033374366537171115762545213861038783497419385697992773572044984804791572459233341523832523858804108677978866864098516745516012847570385949576586603315335770515038913317966484856672324995470935000114001457044907627262090128009219209824603513686301597259265309118119541133037668670525062917173875303882144231470234366896896338995876125363505211187351259254061458961817173334890541344383022382155962623894759122260827733383404325463411677882737058500352903272473235545574314745491314119211596628067176845118015182684442909356967414542206427055845400237761445445634619992001674698555420309026741378449067181043302889107050035003103374163339747969234360466538327171244151343485688738899498974935543041439497475726978231134823268683806731607905642523836438526673402934980564880563578906668040311801850435596079494260060215736765310635864060679022391082494988640715044249630379274995595152830291313529424563558865349353370644508308677618774619426623493272236805967337267920141348677716656270486574168953921813595394148597856540816834283295843496237712875505509141418041727008439663096392802893484592410131952960951297278818464989753362723119803112411361986894885639180850132132464675020154647903243321727745491710256812932769349664899464711821193020062905336635176977557545611241425356960685515559647359056353834179769161958577298033829807778184507566599354548257116475549275340130012544554861161444780835587394765518314602405266114208742266408342207607793301898909364510152665573846610088943189079201309847612672308966508571620149988944982236029743443503981081874719867752537705083891897075895512268582284247710362758362333269488109939539625694986095833711729226850827196834349743989627911136729140342157268034866738564839260634108551147419128162745695071398574349642126528289553322277463838096725686028098937715873086875674656414338037285474469930704356110954054915818092802448021946371573293710501660849996570642999988764126312598537426019640240079651738412609331408188945879334834768453330084523659434764105955546639881908546330029253301805880529935301301821691100671196522148549715708362095114651713034891662914992921878893124488699562633686850875746183360454120376372963379937217019927100771192935660306825639170487791621281807540389009874652423381462939023049363459922711265307087501534475063040257063094798123648114285614700143596730792342386052794373883149018890679808995792169905808045749430250367820168785185063505799650642162888759386642981493951498685663368657476267090974481080493460923733041533772708099012225008006632155628249711580845049617883445355864313217910419386594217963274684076978202228792631533722489438060257237633640635921301502625781186776999344157834873449587741687337437820151240244959731040346549019127235808346961207924867930624845095031029157861938040876353118205675831161042559091219885352351970093658781287979201267641253574832845076067338173277016311188184188234499058835289924195514523726670944583329885842346922033713786727278587443569604968692909676742885228749255202278626421617228285965397626233916329838359120585449544601292202215337362114652139189503774736119862857386083257709007830201973379235278989671617050146247267683713569524868652936099299862761548342513020114137686523794473266092442462105638794980353444029760219010993943311894216901807629618123037872411985606180318269017554506395036813663895860457508932479043299642003754286064928719601458295887981326992359299191843593223400329231721520423317291766644554013844492999015824439723445409791739092008383813642963790888965684233018122667510699699629242842104793336651574790575894358292973176522828572994752034002457697062950739738260993201487310017598340915651758445785209973218849582468788300368474949991930979310408232199430158701100418733042459900076495437338823276560029667566516260963318479628122403927999472073468226513432604198145174988237053588770136357537642293087493000238838956008621113997621706937896312936867108391855856238265125417949163904605890077738189300502303222378255705782313698528841116137528811826324750086312318307730262332529509882618992208836820463231727330698699811896291634474281280248998313098619041759275866543919411644930653472979662108523491488028620576353524575985713944669114611008442021565736601289329670545673001930398914558679226790550868437870501909704559385464615117466415715199839742563919495820400232026809443806157577628012520107785074837776337811204515722467136630654571313600695078107403301036703208337434666450589230794565262311583984270627088158053153565216959760121279648659202452930145245352051800584345176828489167407315628367530165206754025035076654593988936967662641784253983412942974838740588370893441965576870489060017543407039622135520936000062478336682792979209073438131862376532663417939742229165263580645014949576743535040733454044109409332729025811547108564835667649009869939310900598215072041969653793387787105080779015687203032089667605018232522369731031100895431909670185775565124479704769564599638756805676195825930419971571543732158799867030841982356081495905130323561952931364930445931032631393871882230256953275041382038858477419599597746379041250002612380451294347712057717102006343283525549187096899233442820019620482926667671279795649664197678945545324574925272171219320235713033162671892411701938926277210682241551597367198721344083559155114472855610448877536805569968215189561971388551034913679343750432534079898875115427276030682307227142873440941243847664610663606985820862366681150613721479307839705305337087858325193272344196074183286112047851602642986031079136095259738780528947272319299089017806635191220589285046732551955498745588309244099421879779029169016409829394644437226844933387351805881175342051238905636613743229488020859509913054922406731183603335581637650863560580653512821071159493771816718819985146456956567272451835697031748351797766469369231416670991925603530620017777043093230821399089192510477820346614065482950336078052264670405856126817269170102831582955339063425117800630627817088590343718108652883433603960169678673437361449069341529102145635436832763761843279574732381641011304850293841037293481016214507922016993621150330482701443535411416341260804886297332578860750136530855702976623352021004575604805897411136489530625635767138142494520273756370988944990443048825006614099442233080323929029221382164017861837336167499133722009122044222119953239739299227860943087455082731348690930142514648282696166710206049242382154811270886565035812958542134866570216892713280749734787747086180162885927389382322758929658012246115431381985762232687176399051604966183278797726892545873950339907192130710442743127772604966970451842828288114214508838832066353737281506665003851335533367477884649832096782087115912482487144941996252227207285157255234380198983229278772623959345669516422352752843089577613955123570385436424755139777181145483008727611264473095454377540650965270930856144440288190620275683506226202611088546804212449712054575292975847881589250318121889790678360468781510507870285734274500954671037181667449058572290842312806854654918189111509261703821341480423219502442547544198561295576416799950459369060808129709685494615977964611675874785410835098425907485750707822178585570330701527638237841740800300391928844200258864516964458778164441824964136553220900331698714362295753063322629410578043537187222244339614615745668718258996726893546017297111129167547445197795986789064313075745847849620607652241129759507237459556854737753598786599807357406780723107329398509346647105357180384141622902891073737215400422318468393636150464707788001678250012497253506862848342407730336909958118585129711918555655703801895577901983312341583382170752578400576626653518157397461888266336802901741901699783863566207230260619266995118887674919659036024597334421314662960883511185622348925026194752854851513903661801329373987599934609948006514176141773770338485539075267925312571215988995903357831063660311593998556659327452079692210849101552600383869624730573418282632365303310521385489879640097442928710173486911955364818287046744621365034388128939721907610913313239077890000438773428854259305066435246282154233828994179346561790865028894299759770626673456744631662921033880474832563097782310717893014318304899567515407722528066938810682499784426524081272258043788052708905684930691490862561116779042685622716814887969487103800016838359702403651233466524004693334863411072236851108369129863379572774528274639047362819022394577575883718547024804417396172065539413209937291120983006586781825691449834225040179088219630552544767399858637495228099073038921491288979114991625028317743055309390872606858133880264835826659209213183869988136783452577298620984751477450409676110646916860470344495283454761052158768877079118114453953932926712883477933212779902159159930142183347587163697638398302308730941994544603765760694414143714477214767276392239828482240210657255031480572129078691613940950155875011902417332718939520550473138028194847395120755793505273092015495978188879013807852304946872591316354154235671756037460067608471068561411917941155418591489809480563298092151037577059427428058555860809341043508829924077773737983668983971631681912441473755170130586900149366908743218731801151476616619919155790286223734752225505111083514902461676996241981323239018233260401032059443646919069619503505609274136004879888573483999814206409617335001966152720665117124167537659008790011035613016223712380137139680483491090174009195970149956214004748955586617629084931341537731379521898426437970630324960643678113126431177177969314723163134827201039863837726356210163511576434753396338286282197374968511876103759603393302294457745336022593568023006629106975416749010533867507498847721209516349498404782530251722175267026278346327833680695665592062103821053692465843907144169250904547245430302514534282012887165001102535228004774108681728760162206564721361679537086863508643180651209687766986611347297651715613695541234177318301481579246591870385280665740042521154739061898260636066738741438673092723215903760151313346639206334481071064747386770529186315946318894996758918377660625968861057572769576175309022044306930537572748054022192053530572973600182327168586977388344484106005574820439735714617777916455279671580219954961775463722613746539925800348094027564650009119031912526673237529999414768226229756043936889327467903401034771484617966622343632770933723356269440643205521045271066556350522380723351500922084997580527847035426266133416857617462511435301310149907507322941729486467331574236505043037708868846577860907684919128562149025727362516594562718804437693211544374003905427364664372562871699734911006535477620545849872166444182473679483966505788033436489014049162817954585625812660623027503246423849116531044600174229839713964909156664759313857218381946118091465277699698766259614823325018556910599622966494356264319364263157343296854787996409077691774827275180125220611060284572696883947805829585405053029644755813230978792758616208899868724776926881026641998250211478836805082000173747707057759661164442148164016897990105674495365995370971490548680142859500964264232997762803080670934858735514052781499487814779004801605182020340524120188741709146107782942560722507513964926853180751433750958752976134188824905236603453404227810680382816334339389309692103644343561166818093715252001988724465430798771361673907670783827109934652924743494326192444444419514563771919067366460791083289490169942278731575653896322498207543877821037761935556165337722748452404484286787950347733635010049401703423704168324836341266084563511027146843382736802427822816139263222702351494838368426946800360410198805922293327608844841397865261547547388420635527311899246860960874150503912014143229415898700743716405146392695333203889951034534316078936611423416123550101441897070824704538690846579562870517001871652344345787532460731844610197759024845002622826268200112737718125529446311450227677277220019068603076265892265497076745451114233440351381727614835061033852561884858926816810867225860087445613195677945035230057206027504753602028653043073603483736001165001187589526672277618054521084113918719375514930334164340931250401336334059250351061239471170348988139745104270919456769446815548685940265636099675142469951362834137895680168730568340798609600098655541847994014203102056560337854970615345348700309781802003980094062197854239055088894915360569989635760170082182747754101530598420770999950078146339558007309168521022803905319816269075279750314249598539299845090207943160853471716313350337865665138350962276767299412240132494534826547601022166311296390400322778849240053951743625559583383425735770137428464172586530703345437631023748628713315345756215631499974262681474085026574475559708339894043093923142883248894983726615269322463132964177757294219778353969836297308305833963426160674945594204156179965566433578549592314709928790286399391722273056385054091182205495616830864153566815658860644844629835792291243455856157617483664754869892985037334677273958969772818553213184055268364014139944182128001909157539006931352677296167294352135301942784417331300873466909871350879077155043027421488649894187163341030448867920160074793134534328610734504364837998689700176242644744001470478336126949102799129391889308768282154808423188795765721525837254303746961366706892889097136949910115082642721075091396257232321852822989210637966357910438213340185557187801852280648870264228851977379662048007380621908806461059438864733147827831768170681304119817574262519222934303790500386779460323057808038340719063098581483028164657199736743810353819385133816588458510128542219124567612437904018613803226279759810087185856563489513635232400502069460968250609084620625110250388637933412928972551732418558366253241121716048963178484704199205656010065552356122216959822684228459045149125807275490471965677344948240742258695097651042809055069200821946360506546471045144999344438903223893282174711664712406148287667292300996528438927035258001872057727333496090478902473138338463037774113972691963327993342669518938456211728204882744748544806902797204412472654391454970422939525920603099051900108884800785539911306463567261261608247007364449110516203349158768162315372421792960766514584280754926638083960731826540303544652614073286446615653141719265030279087131793517421186512795443182780446205085123267177684388145625603156948202889650913669033150501897116415087045820764139218340154635313152525324084323455381011440701633189247729923118198321050508346482637074202446902545325001246619611800793332535185450045707335948821641384441031083738384826870248053170499973613453365935658201662565038759606229078887715180899121638062936411787927709374925348326277621554090407988372584479802526127916358655295739761778588357671840312081313449942165381275681088133703278138224334408153831172713570252039171381378438402903449139133996310672936364450429840942825419108286514012798137773227322004400751502903194006311143507105531027133255867115926041737239194065545701479872592675683378789617621090540076331589482511823392985620597477346313534538901735720300541782094547299773226120687776019886269568439238614018400319520366718203149212861487659361474918971057944956785735289184195815026140574435354140197502742829235741463985682421748862229864794356477522069153436085923122123322974753370726153452907403438133716783862536446974836366041406843831994461149146114768097815458902594897724479926349987904716860020846736388865066317484896540129998263964619500731757652605414316907038793711162434312085512295351882075356749641978456482634699512054134073168068064407735552875856181434385497462598188461288561644607420204830162863929158483463163455764103221574855677092674505812324294618138417704751855051976889657005885690823732126452496822492389046648438269829558486263500736510714534909853336529974195422538233142680055931309369319725132895539794206109453205447935931446662548442789612467803900741170900089085253010068259409610701277912948819562365661066437199529898484761824453641329588280911233887987682995512069435751270276284776755256596050668812585331838073190919816492879989481228341660237645125724781090514095609279586397806515960256482069921628073874934151558152017438390918522331632901426276865412636388133786636192081048712003726891620369734245917106920684853381604933973184918587784761062222823855288482420012036071488579785643898878024077782552847684013008224163983512459676517945458064834673627341498552362208347637076910770392024793807088228289099591212437241714344604758670835236526538238065019183705900856545960575312554138502933598372782577215668876392341782589221106961252761251315900011390274185989629518936176376682292203575275499422368329116626184545425513058558654745573170013387801827944814333763465517285728269639158166849267123107924469247077618186644610529998043135752816461940698199196725015222222113199178716604748810642481602347866866414225331922061173809059697185493149124067495428616226688311700246539822096819145923996693515680218009755390929529062691436954584738529356850447281127143842605687978994768128692655373681166410443796169989559678822196686947309062926850144277744046101834581951087127972919411390065896420174975173246760333502283196197906154350281105822475689636815499822271063799099057853395898553387485933695015196329092295447161730530869519101978454781050693022215974150150805957590157361305082343484748267067172814998255887830310588675075435873847220348883825182844143155434219094426868035269531552559577111102982043265176154681501429776445375463326606678218665325632973343774421753913809992967607280351946214722470090381787424066068917331757335276590199376717891738267710327711645893827465644724120216276194098224493634124217139810007135525023930952210695741756516349195634554040860631019306601986663767293315326129894700627449194838551054164189661008173278441619367934808940820791744507680338725473858157813712732904663289759985345636945588052321318134343504628971340499164865912625319164325054482957848647469547602356126456532796739605616315427705601891173608992268411958107376241301028929538418784326678201468109007258764619448860131375843848218562412675012517549230192313244493387951995267029667889227408225329740979014217309939877096708012111850488008639446236319091189119269562919787813471730653773054152304439586216985746106789770383140870253050826040831395614552161465252873732086108220614568733869310295203658161628576470584596300093301172346907354072358040712715560328293296697291116140339732798194006513318226795222078747385900159696742247038787097782720562965123090332687543828303067519274534885749068734177263642878170263290261589323677452989033897808710987055532839666705639506312932328511132556570739939934294363723557835294116751105770784234718795323734829007733881963302319929137778088728133848659214993500181687400487179741152511681036810585483668384731354246130105983330204678452853802567528803530059269945241391785486377529023703247455810924257675283558146811463179202902513803567802358145886626434366314692392010705092248752037147958689512350447713328946374498408569490919530745105858136070295707930211511339103680876549916722603105547848514027544173805354282865850028358479440564133933725403368245268041189962916382820175395771539642448063122392071984789245178053836650482955054015624899092009870874128843012342738987683083545005823194508906511588944497007678157716796711996145814525186754318633708552848891202427451641703018947669512525809204066718470951974475019765529797322991244671054828895704052617906982362106150455653978968552501085669935622826274745430516242395160157640035693290799171736965241590768361970721467077637854136314368065742376034255716851667203174341250530780875819263356901096306316217906182591058684035776086627196884639734463407026586107958701492379993169595626132930768173854001014735387617539852012129211168681370633995550517107742570740256314680076554590431984993506825646084662225074684788143726035691760358006794126800288012509456291933270461208992748396124880239594996248232821632577531833179253843447756202435290307874913698434906156596721260318791515095194987895177512098005753236218824989840474719148237164621326554451485781156424089886678497855599816488048500997570368736661511764958768632954920905845443909241050706220666538899334305918000863680054493561551279417480156706663975906741941357931499709410919259546800782144714263996604214698440805851138024752220604570965925794138899334465989189340759238137690181957851550910002139488571819024971676706644972648579573705794157065863219739918075149952063135129592688037720502457941376472127441347432007536700950710813344251609063672819407746189138362935816724483589836222959070229000649691401359654150448188254839217793681815365158967540795607866125184053167792646798500557710086658678682475541804462598006212026449967845525135561815607170752270782515822146778774431637492879030762171170119149904963825407956855340430843105003263140833033368509363925252500135333932889877192361670948199482320972219441801169705331021073154549072840891873395889618903097043980888960333507269644199738708828442215805421003784635408337814696977715013527867369346001263316108411946226993269476200134572004812782148608235005440488925294380585448519282918739024578414695136979744635476122821815423693275991723187276884292130383850740123107116593322195197403343950307904363979908613146869373812042361916656489154996960823605656785659563853158132701665549114367960990970622486692366534652898914569811957675885915216720099372509992494633313024761479427077047700387986196957719966158780604278650328602254077368690701877986562860069253479928648640462177445532804389087852596176090018182222975267144649734905096796567443894373330483488206467067418781288074975171592729914886130889578121029360594384150817629783751849186014204454768354653554105357205397763746138276963434201819866429309621105662868899544717829098931693685705250926262186509742743185670590033225046858469998429247063604640299160534086865523577033149957277275103295985479096365306488993398461945394838658428135537487013794699293991200390087218240501019609080129772816663026101263444301085281270240231570350538543481130723392488166615148741776596780894806573908161288127789993337958550568635464406811827822429502093584890273299684046728477996877620221485223870858334713378687222461316763602947636775154028279057657794591720398587239641796787479712231932607997083511292073898989770268200664857877652959265261319163353531864853283360128694716284714013308988137199535891516436753441426967943151560974216553274094998182502834537646629070822605743214854315648734076400507988493633138998019750312821886255358835481274753143467630028469402823211465697073513469947252097792046848294814035000043276420999059806831629222804976915565554461973192708285367635808019370875755860862584850634144529403513612916179810887308375061867828003552174752002644935242260563609572679488923283095893739985879626157552804837427359133702041555626564173318668694510332169683391459571169403929783317796213624038324173065901957375845517432016262947940616606458187515624991612514217700768820674112674983470147473085198548403193841363156081465756030703172846055822222606438336760824720483329235428734020610617510782632198502522207647076993714792706838986401465067570036289181186248971984849737545665487278062095302684043035064983272337257210827802537826806532528034855927532450822253591682036764660178396237561930666743753314585323450886688638234134740629003105039345519707448637421021078469632321729243315548703217304227842061170126500399344678892103486376392645833474663015056022575633627005685467613513976089589962931111377865471689692825935408345439037962161542391451960374467571188297570016113214532857409819826294438106317189002538271019165201437301052749360342535565057116376895106736624841795227387586565405972357319426699188915924598410216067967884850573983817958664089948857214161613062836658477232411911973863624634184369964284089388375668213027599148520865479378784430258028676429678529336307226332165009257906934672632218359335145288026893098545595551561277502869932136362342321981497515603430791586746056613591836294815550291227208010437510369553707903726517327665035469801078425124433001501708535800499839664455383932679534906343681356520584385818343423535500746438327431399632489887044819729733787344957764546002249966054024676406953827119335869927620066249208315300172632974984480760017209885278325773130582254139786034193659473093226392794656773664473632357890669010038155048924541270243977931734134304340553519557973302671503840101203615668003673215735108176620605400479920967590877733129637339845037340747364541153805634149036271363977679569187258898833739953170513646963532854579067799945070472888500803108965383974898663297199196690544497371642054578257143303246307948004307448226422462044573659041012455718555148178736576643787511072630643216139733364079000506891996180902272966074940108274006807087933727070563970908758960500225658990638865077050825850704023825977867599109136391784552918106450081766035254502758819161286075832382281338830136520697955074323388382036273069475841069214848791308994073925413761493912950945931745751274229944716105263372366307707401553409944923844888678504362508561334646246003687416748473873977695955650795732185053939840988681764983572207381668607605959307788757586579675862172252230863819362488232208201017499628412672670739378110763524511913311897514023424731016715350687838036170912938998215241927196651189151828277233052939635536167583998029804360983904956423679336819523110362744430412484602326035229317333222773929885543304134497847607704809397727636280140755389260385413344492744965838123501471241099107656425752485094848565613461685065595405258532878011473080306851537779513115387852008695717387497150585744495427738731581487476766601551586856118379373550325741111807153290868829353767356503917863367695150713138697530333367940118913842746604251740700183291495460903832519349533246303777584360684560026810727044031731708661509919412569788351942069665326772338114557575550009931857674387918384921655125690537961314077862695234094084512193802818869889431272610858874508726038637000805332509864433940408770406300331922690927718263760884739343604077234904467973837504501097317866518119879904089045022376864095845879476530391273593855024354467725497904258313810787931445866476678098162576666952741114903703357726956252099854944078446325054397760279671222051968225820165090096808896444547909704337219526981564695762702886189739048160313754453189274746885377974430245171555368660860785674485604672744679312838804857840193604669256883747011952253951560403689506300747623101659876695969730014509853891726821006730426749905054325849308777901185714310185375310937618648608837112467940344780464572606925304899279598558898843118860279179243128874575649292832193148038291641380329665286627142553161927149395240090615135670842735156789393001277689461225861215548973654643810633591841751406896650210225792329230434474457609306645442329395015862854312503027206376725738306319468700345208307813208385497990014873550534912906163330386758574379609253622150723405768636299111990883311785064450101965441357230781530223469713108839965585652961002099678058426929906138152693870456032029296304713661797740560710532859084484914386933147903785676973942858747049007643994483387096864292910519694653075733773681671276170902837835361236840643183623853956512026392525794676534251806688602637233537259472020167745331108931088139700710954828270542866863159873296170861730801128907885388257499464763843555583760303403037274434548857730240945546911737673968473662294419544691304050220103924862885289947995015858584404592431706951075728569857015486659327078681503885461297998276253120721506499595561477336550735941398830868571967887274914174631318654465995615204323423777854229450969379217196147083374485705461616706258478236501190751621372234938468147871944002095289986165822697903988739163354542683736505181110576940770815526385761583536583972103219692445097146850503358765949467261822700425431758457426755779956291129555772828779800394370612161806035263521568780930331878734318104876909470600746954903814928609327039795246995846186402487154426519717702384697174682646219649904397569372906324420607567993662848297814468131297795806329932884255374452752220421372132639023733712972276925753448304379108703280346490353957433704029819729793762132812367800369149351268277784988844533789682426661891889185513983217605665496707843108627703335918184241963894523452282523901165539340580918546537037635491733215198195836383263465934538950602289095321973050131534282514601019371222122178147169647092465495973917391425184549175782876365897477348709385135338702211594845560327431986426395007362512577091315929428077045110972113387865514943058106918658839047009278025460475213057096737767313241573257502174249717576477260194904650496308130765046755176556080319679701942443895703205047462652396798425507147938609437888745418297956775331181277538166605751129448207864737473903318988131111830715269405640811882946137392226282578710820389404430895106994537512309674443179045877545492035084583179360263622089613621766414739623166846761447296416287987160521804491059573225750728521041120404220537738484260859303372007343518904205706067636657900134557156819929433759790841186235564319831706064333664332158160206066415795300673290344666785157599677986434552912017813906608687632405449815186007827601757712235353842086039050382416486679355059409865535435040042493521991610470998814532845654872028402939019238620168090321831396338572588971361162771358915260865961457443610490791098469645155440334949535793985181116763372439269003712006225657930408356870506753716205278884062079204157478280978970177695126520225008489141781856960624541979900632793415525997651448030746857808063052028088906200521726540010745501473005657028687621340535104748048519954663235958430857309562897126863521942721896985573443416766265361682213345218795844366225443126094527819907750044845976781406494427719481301927276156954193655085558872449845122502907915980093953929356024114921899355247563881584288657106904257035394357367882277896267921623327872439089576385249922033362627118271115808768756690722199915604625316078669732059116350628101218881023249990923102835762441789060249847597348502344473431142309967748813480902340414897524136197636435574504017781771755182119981748824605874812976226220905592277535739426014662860583331113043397970139412004105698365263764319128916028144735819713361482428462910263250391999301202648064430491766856416531546912976974011994254470512161123467478945793985232755755896431775712303656881650824796875817039902146074276399567456614683494052552763845258979752403366563891611939598314270383567293889930030439736271023753637651081031401038710507561989385662294467527667304752426062775546487945271654230755147536447177736820377176691267684969775652904508851799875041233003809478399921426556133632187226360994484137115523501447609806235376648739852033702077655380813671825044674464318741737209384111621315621683090151953293259598972982009471893391974846906982452412920804620360637304548475198374391313830774900273435370812871444465039481275643433947489447194896141601733356401429285748854066056563313353435661879288192562244391327431088424450824312559594730081573168766515129265325708216963647382815134389317851128473221138148430838602724048907551964912746387923793672844605952082126302559193895530313269579181484109508475085738062359566103125734951753300836999830309769873767518919541251089235492177238476833945252731483615356702117123259680567594178572357547758348163662132398213745185227289626411598523222185809062226822552818046120364900828181423889664961527053078452677056717350641803613884110172248781314766807659753323877665733658049599803310615427524388271391138607852738280433273571362945978480676584162516919882795327079525831899088034019600642672568650349278626111636169383080218305484221850230507124735055721943430214531231399783184136174046052590309893993445053360770715252467695096843056698745211157969235853407444977089659945890124547419684496829654307433227247453623962763408942477836886173703452013996775157993440573048489062638191590181228771728510502835229874521819771750965053951387239698807583554120014217996658742436062586420174041592540530390877298962590857444457283075065495176409204333078027144763407238992200423890280468779229403222842962215541183539986515512307781691334767898074499409086869832656322324183262901969501139334563074832256784609014428376960968939850490396284819289072416491932125102300228055853246302629295152860217971446901267470556913093133318960228600237904370766332065943936598650337059693256346935598925051707272506471797985353581614789036098870647650409865070019296750466196924608574694429769881695427346435373083858023963306456947698290626548080357598289137117021465160957340907574596801389991054000211730984542877225251808636978239772727635591489962631887205717694260439201723700461325610975434912759713894852297601308616086275820487365243782894492246380620537626764839211793557076855426159898297271563001577870857333717973752455290972752131083532022394643852326284681503178237503598195755725550538682684923033997303256771077350507751719178614470580508666773586656718260296793215642613339311753003423811825632610929351447746585266445448098489628622861212304244231873052666612273679743166465609525278479330304247153895367274523993249275700827689522331004631309951332818856601416996578606417876147526154751471700669686081103088425642483379365973446421149014283504755186563914693933198727709768518705495283653974874903375731796264737368261148402315976533907089193300068288089531978450986049295418185389666496868221129821753272277528065696765473132399047506711149212319189683027010011434020264039163511854158997534765754836700085603032230803482389697275085365147762415618932729085479503797970218255426647687538889194634111164384783985313809021990726854881408763462421365500545326580532816153139117152479878285760204862103303661095027139424934474105419647416409673485979556522777194879989424734599317786448461119789084284982108995265614448030406237521830688941950920570338319298728916401432119249856994738591037974529840696214780649755616185888350035259218082848172082769301442347978957545150904340122341712269814764453993159861005097234427703479628972301921825590754571047496960393004558082108874955360291156114550459553651969663583975411373777903796356778203497776161710761243806107040076823352802668288610515927478342518722284099768214564205111327558075113029016967734535123245375745978872166441537088439176940830679434509005881470455097153712700815160318782184183492865962928770253039939232887445917286206190598137832539534374787229659043006012956425146225139739376963960563615096827617562453654572042337006386811649022279949784690158456524234257405834970682804573235861605704051985519500833998840288839943865558887587401564152673449186243168987684794889189643535029181798406915409356125947232530141476627686053298616217070467152897180982114627828481437298883906054982937037673087464907959035402647593929339847972634230924360762535153944276041569056818165415678095354092689028429149322100631631470315521569376597929741277312337051705453092495840977874111179821043471314301120211540266875572620185731081568352850034075557347935971775627853111910285756891431673055764900526648902542745227110383180116754716032928650866430548412353188593605577625883725372250409187313242889311876253474256505664232848315292917066071539703053525981932011204443953153011889014415687236284709920264743333999646245829383111159631113444138189022810505476801662151773691793571873832557373522167202769119023512897096399431089474529756005191374781612012840706117205642905287766030286270637549133168490117588024938418030837628445316330346246156163983379473776933778055552482591224852018374192406015376057014809930999389825493755726332716140748589303693566425911293399520062556089776471887699660154920132916035212295262037809172731643166584476164779565670412458727260420255614808111376358854083284523615666171362491273030294781626315688769112615363784844612093892102667512591057986025335433097562673461529177982449314638930062479355990162875782193126052040177262400824203269777947053998058727435173970146357846217688835300473008196954560853566517287462360271335691659854656899095613446081399238292518369845284042949930091332294698738795269179040819853213933848944484420028262758890997028214648054304949055715357459190530979470203131494600869886094410339692505333241006016847336781776312558473348871180153044692531567832336426528604495414991029107356744632731869703929841698430521715119226506890730350720069102085204776384722440562962628078125081601447168589046947541512599461949480458074839497810063751456016631680604641003921327285703331878994027362088402466735033558835396249785716798669827358735866276150296534529837129312539166140919296917679212838448369149430481125939331150710588202903292850582873492133172498067342428113866076908765626049362213199941711689053361496063962487115022605335772867398041975903944359647703223495670827863710665043991327928885190132105684987038299931146044121788082138358847187442641764786703936011635899883334162978176979309943056567038429937577227294152479441536481160767589456305516878109981220743725723545052013693432035497748694470874531817261402957920739722518197122780675613001857349638422170322714710446305569694674301088141282030438921836319868889506308849878144297944282781162028807630554826500530988125732480817448734847856672158119713674118467093871389252223061698480872325366726539502485279807218621360241947100536674991251952548470779980650778780693440206646117305906254636464630220019393948368325949512462444455593639089819226834874175795767873082357286905236981665160242742698523031659813192669909212337321227302962308500493441663255890620854528680543559469848569120932313648101098069348193959615365382692042284817720035347840689385783074377917274664982104848734189746638676020020558123820014311599594926348269499460372355965498212996016385358189302515385547454362927703918844409771298379996823464216543495023847620072716600771246908313363538481985754025603555314069736569298354363740195343383352217390331542478595812342721872152543036557774934117378339308322137505507423909921984166415831351487407412647047865503569900642051003224075084231894305968668423757228661970866708417662500294683564839440951186251537958195242515317843697912762571365931225519501902037878443421467207310416407902905301626289022415055166711939383167510670723207043681110526640506686778916855687756939089403573560388560387812291938422008739167135532289562885313527974565910694504854695536566046270459945794262043937845686844540208080476956274224578370306855143155812994545527201552757588151395655070173329679303974620743730569569208466565424233682564724735583100178259740598891487849575033260366501286559522624884685075149362283582166815331981510012494917444770809721793025209021326032117201441113713820919664349725499330707098302509168500286347480739711844296468826301543483520130015998450415519118479666470909431730112496969976404796201786854824968505848945755672745664556661592476499372692496571272723973930441749420434680481078259630787170320845589382214430540609791669796122200290849649320219107016061621752271612546567111300471641512508517444201808710031728144389535509430568012814821107542475380358712278669593400211969939997696211231070918643756070383872113302117475326294207691672969506384086486786930569126357031724570445403553661901254609023319664341557927091591152076281619184520087917143759026452212556241044555061706931794449911842102618965278164221258743235753322259072871625863571728141757427422951115318417335798276315418126274608268354455408644819743819239515043712395708841151400286587798857884970010519438291006754072980144766870607452598850878827793131981583404994477185735111870535018256374101829426454400470180296414262492020747369438019096230254621482359223413586051479041314589149348668394086875374041287034975458609088324128783543525293190880181371795108540338150258637162264588489667850596536579381359956356791229353130040944395912663938615915752460322153331402571420497642888256131020317021022979220512608077769943584248165744474328941781757625801258927094813679649177301908307254204294783285076336748323361921853296686788667259700300890792696280292763501822849312832451168765278922797860275446138755713316880094832473426747903397218706131254574376504908234667161056621415607239077348933017108981660723071731247322283484015213699009003087524159754280753436582257794953585471758158033245248679767424246436972442440526450728842307782446978725494403699349863530585630730867827886421092193945870274216837465463786705536625514497923249223465908693449677493518136090843619995563053583201627817490605927387122380649374356681780872845477808103527580738969935927271276227141422878513238718416365192803214250098192401719948349760796161897572719864550662144655635752071097327384192540035439838578936368943384553992347471846478655793719052039363104659953393191038045942151936123592805171618707356998103149430469466610295225018272939537890954725217468349148964383569950699216127463389529142185995652595191662232444897736965573194393359618808107825283265340863294339975044986482258881159703497379967555331467863495942362297717468391712457020341895773435746508607143338694773760649224015018664112798954578418771531053445636763215426601500253846676796087918801320214643202959493142950689672327464080918942447971642391753106091781138111668661647531292427923020848966493296311791573070806283278426037811557172218489681741836832688443778373214238767465566105835970966131711227455577208596720097642838338090850532540374821134175529003943007250682986324569274920755148836884666389069610583198698579394286227712832327901032525515461204031434103475340784448871368114169612336657250895770870987251231887335922599496098011411339169992085820210605143181642128811926049457654381132742772042638846835926044070924812653479982570563401398103761693214464172213850339586535557554942278177535501250252512756500427849242540674506889638398660580231989239524095989071235122362899392045402165994485316826585127880875767392514616162296206500185666650436936543550491265967009644017294394305581001045049783717628795297823062474975852166315114391232625189607318829495724209988923526334795363614313800765881557009453736309099000859613957438502436325654462616812717566878975965528752481740768707024351023387692902488218813325282537895130578500056605549707976870652443995236982852870697176308161950390006364656877568316372018863676545492440459971297182591754181413988810960093356443219721899826853016025884530140605244675003684873392984319761613031602555204518548772257810821918217066349112995081184446461909282204793453095804374693204175629619156339268542794102965375917696182125617355008186141352104993619538110636849147091019995813513101306781777350810740900265881058110803922272986093456029725010286792374853771577517997906439497795907213919777310384934492322816068822882110480427439566747019481587066403593071056591119709586950593401166757390332044445888854307627797779256656501050618480020964102111416067907902052482414842601477180434733644060688630410484516861724035227729813127201523907407868853218181296639952039154494526471665141429593126998972448559632448940793619889090760663178791268806973597970802595009716625606868828413349657631123214566978422303993970611188741768556310334575082566592040828439343464685620365463485816268057744106535448726290711330135676561711506121059063670735535166359295933731826771496836258759554999859516019255874660811347683824353909322433348367220943095901062388307159119940810589122721533342284348921336906961978848824739240816662199888893547926957225505483948267039352918624622669199014651291004992534731639371143424592455009184669364423163216272886377608188018847870883291758592156648787725693023250701459918877107822474986459757919212311297789874314701683238011311910745852729267272848623935041860164909293184278769338825847143374301061406323450623846586057213433279630894035956194995835092778652947368977080671372915485688840323116783107784894936266368540685383059423250905114339574834306910435348960206063458646300295516033395852859012383307020456653873056975570836806919295185062256839407152521697904910108399954049130028356187754532805684485749362054883141987691628223000988282843364868253190007365925840110266699686841559349704864936176188045760136795415716179566174361258700483303718229544736651771434201952780461916580998775890559504381206313748330239389424299849967474839588391333293841262166478552505233878355709319799963547243413891177028292534003972158713717883074953958156058498722662870094961496425860477950311662884735881215098840339465850978872935892108241096184110943047958035745376281221989130144411725678400672876162876610824290717024687031906153716563554395140181819992573340911012618313838108786401556006810247197820668967038188693205952844394118057929247201749451319202517420609360460406427105500149369835782604269833486479828833499608701989651118454058815290382567904588822604780644001536903332458042725073517028260826669288256532128610174261480607676848787713524281517111782519975825219367504074687821952939487748647630135107450738364553137528286168616287936432554636302067727589194922944481676551235189515141313436220646589183434174185635802694829024500594895367089881750264766712776012362322636673062911002251633156626321101827762987554787538179272125994629283806315467496652186545499079628163514658658605880177524593044825209490392529617124264482809319482320740655212681519007582320018905305246172043695905622835296936762706375091693223630727620801716767462314134551036027734708895863324169352053830650108138590111553798515478531226543281177345757234086105124098323931577993369699374090214433090759383269035503212442301051872562865402552478224825476739834304844877252345778959840237803114614677817105160919841538428277724046155137940012899057895632963864244970120505961156102323463393095043903572372573575932512879270797397176182271579725161608031557288839506335329072337108686137702395385690472042433735125445438391661928234049262492787689912723741878051573997033431337045711111247034971083359721101174588301586179082546486366319990230069617598945195722943862858827749747656691814205053291517039297679122168665651904277950998801913193403148257097319490425600644643081875301131640801735519671303825522433588377543857521997354500004821339440904802994966538616313551542979818307478592772829167496773252976493182034502762266857109731999777293198194118499870730396060220568386079855486859138167430164570819220226563695791413377041797627490721620884897773109883721380551486670870295923871849333030017852705392735830878528851266868504696466746160895390729431471225109790526196835467388806410738549406136244892100003702480935913893590713655472020666687766896385284695634551945329622179144328816896018704651853250262165357174522804306808711727832458866942751030518598047672113928042336009722965252270569082400425405928346048708738570971692780380903287634554372749879089378923813584154898867814095721674196180124576066360489871885795394090060939571718535179215753705215053186252407232423448095721984190499928792078786878764154619495144677146299534533761135610770223058636305722564002755425562184454544198125406921464253353148074100393032127515969710156231892486370751433853871586621875925283049347592159368637337697448978849315512387842825116920840316429512687665339469975479619853313733749319911613027142058073831687199833642285339339604748377325118069816621594348492303642627470771783256826602362411308002860143681709993504410514008335834907011445070587588972844067993316861772118374750150486969748256816249346967897463763283363968439039726522696339406276244576095332266794622573857243055503042748739150897808061903979176545115300592293721114555116511680946123971778966555992585007670190159572811869433333050349502600329443194100992728387552698509950683603694313890580345656570315432294865181222146074031424267964110292263030128069033142792783203765234549587584819179640438910229287485177855904469450792532275231507780817010260751598138406545192256169577174586044314482591920507018291746226323355155639659445153566601018885853983818407041703147989046644596590750800416908254261710558352910527815174014380861508293514207451751622309110847246890499612818025210119607856300016227007613154190639385837345247789196133532509711960412179944980177174517274513617177975253244525813386997162297399369490275471128150223298724870663371844942915216692706293979328647341431085483030527273176448318901284619586462537087101167957205747849476949163349648200108959366427215277365348631176806798444590976598986524247491190414977820333112963874733618118030883939589924773883107731419354104011981741891418843903068037726630760936556641586793891618821247591144823909399183296098415699849848564784601726946538049952125854200269942561941571650132567851835006327383423350923003127345245322573069732384563138965614304396851555904420837505028377062284126064423093668709067290457493316041644232823188691179432917530509555288401549966469699108435807856030483992687302804600719197171748405091410859679431569944754341540218580376293366102851800533712080865285878981312615421656721884961723635582126940409924460700769094258183422882729538583220863629075427912365935882091329558709572285962653369918524076744846269392721584184126283217429168644652628633592347914792331241332493867191798263778449447645577085320352690999289239040827142158007709909114276939030554406527357453932627885175778126962299220078102705807246526680574130940537444615373848914778321124672932021600073139749616890552519608910266300282480531435494965133481004353997671031675027452551932425838593558012424133482495734853700443655660838785333708298420683296230052176572741764731679627858574298358531037057706674012198028430510696351706708879566818114189590744653264708915232698062830540645582615731251905702337609418160846955485587185011247057607129992661292462954200009541109550926971878777507294392577661442138982435862100874429558895244889566361846411099414625069805462656799326201532708224024078434574861993284523390291263595276800403911350736639709162183210184017842665254471610243310759964816338585527029178181917922038778526497249709096432748522012231741345791513959087170310820166513658543350825612598139076606052751020088081898507369432520174508001187745648809024454131760790785936471481945650377143407540234525304412361982418901935479545755105840298489933269172176478097121924333255307778374657618374737527981894429628614551213920885976636724708113378889207784676041876408968771319654205645547677039124609009043579148282656033671683715263736014514588611190177546893540822260707239366679458560093613438972387399192155409122450407978371892758888263397482447628709123575375090508963714516229267351573625762551650035599156504470951364358723423494503337813065782432536925186860809532588086003049043585609885478694616885906985855824619316352119075813793913426706109573695622415383307668222736952563943002779454744194180334578240569759185040796335652666635521758750380688475392398368138892536832729674119406580578273310439166533159808803905733266590933216030750616323884813515760975442242798002594419483983411278879743709586284377047263679309350080446501343930148838061097463135581214620723189074090527989813963625014765052199050400422339564651921990710138256215019939768578190614918460268136246833532646279991158262303697776363025924941357499821755851348497598515103979410719260231764323168806302766760208892448307613300752579618045672345720937015521352976170604921773289113875989804559035243799057069747142290514486643942538305628982441240987414516014930040622338270283673605701770301422757615078118030951896769733768537994335378919196657582306951076544712776571885494807957247864124489296391292712483011792258571531585481425797128022940462132395894107074276548283398896431668850345036860409104079105655114431887840625992635230366790604983096361114378018228675405843255005627001210441798706060686083898344055405151634002030149296730579346373602272741766143586563529496692372482482261407084116514000327937771835057469289424688435349771193191853199895845154850995741905014933277458955098156617475903960207035297725223685018441590137866648135169629730872368262836099924360887851724858545150303434080650237062788767492781319748158149083567754205681042355022019078686982108984674769505842851989663994314767415358689740918844956135635064677954840175753164936201515160963125690298022155292042285425558424984276557068505546081806085033021825501444753998601263492981019099645979183269944996699573082889911190641767161005984845954709319111069336587274028613293469190798483197546968789753379280646889040144103426933373839825232675806365439288152441637741563042472998176768696770024703236638150629401918718301847015279924082215230908306747518557684042090481180183318057389747996418105113865300561604215491229769531108406442432602060327611094368237200163143255457368281636642522145077836875161595524994582747508354130283982013293944274522478418346939056793982478545927920933776420958725002713929453960604691400088569158373962759138457075323148974127842377946699227916164584514984128056685679648035858437448071128282377321697020913039761371485429244941321128966789504909887437554656908628429477479734094267030327196706313326224259969002958210134350747673970649261707711724031454554871428887699399003715831313177909582616372938417559605826224639882924377049743242166820445350334848857803128313103215846727730179497262934610548489596004601964644924454680100226415494851218829061079417291561314913721783315493820449218263693688572338901748524874583477170661499476528998841059050300434016593220241730558575069558765253875902339123529883266247334003951370496436539460671579149347542083319311318449525213989263171299410280914691312531307400839398210973042528042577696225359453123684142563108407358071294223308107809728474163121611204970894987030831157479464557147365595575081487314840621004414720617254751882331943648229348806488680081403376648627903772818967567854346328547082557542401993234802732594957048012140359564949991623590856324605511962471668838465013603477145590022096220935949766856020876486221066629655836019508355558680069294055358573191663174862968249371591982022375714214858728256590701826068001472535094436827993286418842633730053338953005153709184776162250027769324244153649256956703126378950200145237241670168274071775656693023850510814687069020737563873329815374255632199697187183219017503679310450261137717891063050911439673981389926222393762273731611573815644422446881610035264050777781801329867287176246449466717079234839897969924038375769249641362338730400400445921832806339710518031684297807136466158411510376509652231398615233071619367138490870106970558181163485591383382556076884163798455152014959643287498247769326110920120866875669961510929083895261693676400996778532925473236482527162276451633956668536231179176208946415948371728955472400705454135463044910145658029875135788403480662023386366601211853030879532119658020467164920354806036142398302321329976943177144765228857743033009622169302689760053902448341396748759842098871860861243500596875489913515653643058557527344181887172774489696118280254702667361778092826866811174110152546598634562535812903543742750758691825595921897610265004726669742648882891681934509056820529630110306176268645335931011095986711985928185209537663492565061890570979629618037179257452698438333329738133965584890705844893310792095363827627821805199807386356243575168418787439554548981273825311642421878803809316994630531907816850417624724866923721017752722823055660555151308884421959202272565262261401453764454577764258501665713471407940832180552327141325966041853590362550547511649706757492015773090195236107850671807347381795467102755782782985632446008345481034809844677996494990208275536666607560883180682219196748563786497660669539111178993322179237333216541577214053774585275536209965295769696290677744232113664794049302938460867970701004240452758248688859927907098915472583379816012022268797986018724973783609702770693512067364572408630256929624628696986909138210485391392674617671088284926594200427897542338001922066867519262849488960886086868062782787030998104248265370768569198456377971358491898295080035308468304282878537782472990592536972183730148017252481023503267291401727035155878899054807423087511601390087266640753747074946869316911089545230179509133987452496797035234445643085164977456246698553849395237606821655891464567107099205121495078002745427537928587327981402948382639017352833109946723488414919003712472980153497587732631295236925245186717927060246887291954177713644506375935875634934580533390651933322922122438220871521365481827094157737930006154313112927583623257308064245522026434902646433881740455674952773219767111083254908235500790765483896958646992167437839211434599195794069618644339026534881649634884812085011148713352526048306584139097134889563608438998481164105383142176119945176804462420523604240249212412196622904570379299425947148193197886000517011412687303252853464635725661765313126970979950013141693587745811690350018002333708711519062817219217261163650735008325486472391915751454848507266201769468184665535863981471196999463230647171755593314497576706885994644886858232264173529445185271688444202853872827718853924904157483655028912679744532875142047261122776862808447421201329797419040184364701056626755450585383356153072236170254373089540528537464273426294693386427044361750269902273089307834172607563290667696750958445095215906691591222986975886720041884619584890254237424868084306221820628220701317625708362454947234950903661386063119708932836035764556366176627226681576830623292043765868512058738756121162291101635251459645352780298775522232364237419822146885048411907375173818944380182784269971704772001233240380169074470583229092940368272538392886154660140249286283672220761102052576949943108473349419095906521357877741989047047388524238164614340765441443638547771769657610391181874495098916553447696442675651580750062435965667980811708393403772460324504335939480443315273835394975294053544512152669105582476641319900611884382859130040117898698761117400526877722390971746037426396257500694100890937849429739780356013026001896911561694419385252339844192059084204721949774683091931637522077920180955576366686272156698954425060613688264832177819377548819479543597829988911674149247317848547925192025141593132860261362582074401538094333620616284578737024483017752822319679030606472271338898453353731635447729238937124110148321663648978030877405103163923796764015061565550104684591083109260318496001885565660179642766108384140069834593625436561793658951672938156849940056812771119526672086242623803784717730539856603542556332587351578923686454890400414455953327319177767186079828589102842369035965362254516323646479875798274103583366357944949462442176777960055882028590703441514568680406859013043531449296243599751721240389556847587779340251027390832889625852486242162373015689486893576652653515470039385817231315462239312814272335178299419326827381739049414375957045089296404974705182588812365590973025289828525785609908879734328410319529895197582288273298872536235869367058955814535767399066986207721748812822570874512592439268413900011795657470161573318627917825174015325330540562430376145443105398671992723681005566021278009600798457005885856986866746080115200015005893038043667216052020631426308769966155484255924247256511831322457924162477524861569107164530839870228275388772532760941324223757570392678102962802637145671584673316846034414094297902955179538115263473080403234007388708953654136247050821467156980437532120769909536599686914564836201741917937819342224259003468553057100402064891537560215932327094668204495034155091209704374626266162269851066988219002898212863238369919391715985369789420674234530352428711879268381590538045381926929885343040236998833468918421397422006745649810125494456855377705454023546067195892585383139134354138015179595585646173904652137516784587406350523849456532049220464919708163364198561603458508998587124898874811092819758426168586143802473229273088578625683809035508267079103894173856523737546535610864660205432405713474814346222739582934191132635134682501925864316943029686200113184756563360221611041592735420622685614758831187167448728420766376761327575744876682996764598657042915690486535792951621553680658834906613766253418688502156729598827302539934544685235462187890166133298567578578216393145867753643956182066769062921140498998287097025663444086681459534850593789922926744161478109505356313049747655587506101703003135304091987552349661496681842260580377023800253878687645061733612438688056604636774267253188501333923384758310209504079638766001851427948889956602700129441539250966730213956811487888334668790682373344211491218739653005127489346042814698647201289772763454281032500283051308575966592975179365254756228609747289682140188067045374465049768654269322757502136083747542142020637524928928099060879117516659914482761298187800389431763990597361032986435009596366066648694163641716354717726530838726771020024775252760620548705803426260403587367022821729101353567903855942031898307381678725181357199259113522886675897472549701842159936800408756860166393682165784097702885798689287453016043526831543718041656231178721129209685164394537888721701337687404527979498291058317305948154217671955704500905396931226019351850974262377841026700507819895135202945022271376197537325785734207372206251950821778972529625030190952569792351948143454177993207159585588902524525995050885628611738569999456394525377964361760251145287024788574368581460461237930394209342044865438347204003169637517559008763765248126591292822542675334225625491449785812630260673422087071520646378515063223910904575223652739167648985997608742397701729500993475064445820205741857727172084420524938744234278583047002350465287534748652822787148073382051949081298320968025923495119597269833085654474393044315806298415684033583802510868743508801685905604512196887139266131790650648961540222423861220060327026169548225842809614376688024353371290080676913623800784349990919754018999095240970551131572042980044146973622713366568220943162718546417706717565403164991914934693922207631395195338146926991075902611535488699251813774502224581340209892093918064420049068888055840101208402884558864708791094645207467727340073378338728527098175385401069487877823187607859412405110636248517360818558241151181570360479840007452056440487740746359493144415750218051834081105955408798515581243570193780020329657790660129408717422375286809894832709601662122170326159352717937907621989072237570993068143934705343844471200674775635482334972110237792850306527166957896434868054025875329825014440587041331090911883883920135124893898962700318779214467624327643645276970732170969888928880478803920049398138323000879250177979328136354772951767923760661855485096923868820387712776890754358712300504509103414962872259061849385675392515966363633013625726876385872505190151937952613886254050589144644645947605191752591970121201702944216828365795121972664813433096490662840811648287020699310945304841043115286772305330599834442225694036468881470972021473876648470142026303828784238853394395649161530484551150675558269200099779531954793703814327290401598675522021014342389630159855410284252590542859124790010112196026307952782806948745047900536198249541765462705295262242190993165140220325467045683440291820878255295447803781008032176190282545406953791570578197717072874610735135498846718682259400356260717980262940012711648233163335764810422448446305546048707851993170452625732296633167570556727423850288438516864518077601191002833179054352122167642313928475545051211146213725339007111264866022428154640322513829674371352960054783022337356153836664812543258254422873189779255036201287766195132296668507629032455490911425773355328669686077357484149369837295627223807169553077548607911904943275551961168141993643144934205968281091368007115484470984738483636951541963693626559379102758399997800809089149237910919309552069508450018444267650050137429656119978676522403971269950194615871235256644578081987925519519966385544318142297321870414900835822988705582783034868970911824848546637148129816160907752597184806855615691114470104531009215915510260664052138927071916754645218667335690381508865438416728148237037917913205094686934726000558298333576691645742183546669834060514337102901567877891955735020001266013443298726408990451164945365828004868078724887311328269447681298311119437463020001234406050749300055185141861340381189477343746534125312137418898762370824568286300917574453902986463987588594146989677451878100459138923170620225139243926153097881905329875075881642438081368751743775965600867405309522012533417040944811950092100025514195430814183431898742400016456344540550638957555947045657795475927663802520155150249149255294311917548609205694696899348480752626342610845942028824978991662504707183405971351585920722849941501815577854532682505163611979559574922528360844685960012891539373677756728687660642281993792641419731568940667333878049865842768887862201528111079224882751211705713482305179176713224650649060584121455433247915850993935263578709117509011291010342887221618510435283520216976079158881330283418746055909073941223691387694206108848165782605289902129794799179950093089790352483909576293956152654296856918236184201627132147835716307047913948645952690930848781516806261604407067655163921866432271588844371182705698309082530345478535902678033720419946732546457451018227278515955162887867040835774051021316100393390709778182328011134362303950235206527550606208891384899716013458148698636539247496137369463453771689880148306252397510166189332549726832473602067604501085827092012314197869262553670275675408280104263016519891201923080009919825760619704094784007394485746619583561112741821674063585970483186582731786370890226239045114209222928718157508993070345864039921678408879093453318177995789631409473103873203576713213785475002886733795324428869399962739630216197796137453801712076893060986195249747497424691302159099039823895176706655886060077358806357871122764668242454471841043772733709842156718133836227805498272405609566421178776039091154899798561595711264985532721532233507714387578542534268175891831689813769020814141102344961486260152745772466542778599336578145562667505123402692780294825996818006860933383299312487301725558277903936955710388562562611050826834793201894876897220337507134849517653786804667907429421368341826160078028599824670296706719853122150520172342648349169939357615527641435543412581437373420998078785805722917795013237592868296406941737111915137215337853737705577890391870536580581925755269239392854723399260440109619045232561731859706138070385558509685546455144582347163935656955336466441318054008045885553905409308732228763634734829173415718196279418044373245237414297846378985719991945978735661140904690792579132094850131482670019639350865485759763050725927489648192398758602236191631717473277726350995087792160068555447084241358241989117762663410733701788377191300890504160463898531597496680021961794281898037449162792842865970120083751962901908280297448631418719032397454326806052174503512233393135789593019863503319336861704056061395290974617757466217838857080618968294528078807290344373547477853841239965815922878298403853391765735212348897864253167260543054318758188761303838930924178231441419903741103506035081654426247030123667756852614341192670265929673137067940561360161034596696334735442430540852367220797244243308894670793281655778088701765801633776302109149183939286374471419029317378576289681595648375949268802182571077002369965285812776537481642702046857072995268333651621887750255268765894814097105988499787599159247221805943450444865252595541661759106456989355614270683348018800196116797934165383894676009175294449018278606939582371676011492012717630094697943752362519650872092879897505205095527617574544597602017603221894502108537327768776307665699832353387886878818218443938165671788051853854415363254274429082170526254680576156180362884303306762725463119419062077642369330181913660780662782858121436587643057728657798249315401650542556461283394187376140154778430755023070574997942248724607247638470108735976878785385633778314185799295435085064832844205755414051131325909084300145961968713130188618481984105338530702642999833289369668909555599944132426203001115685586196070360010433434704517173349458766826505446737788571787871688959751918483440601739341209090295920413604256116078583727976894029295729107461953886343146400360229498882088577258019213199440211919570277440298118254416088776419027315900669199315596507464072164780543423482369935859861968324583399479749291317941296990058756546918969115006677625799845547966344997156205063307306537341448476930680577780369409034120377425703795217297944343649679891025699489041823437998971338055286068998730525467492423182809209991708913958259969332530089408181225670775153640470115914744910480028045666654844998297335877749868654960881887624224795365136695973831251380620882685841346541464446488347609825445152700612632409714043394203978154941949560719726310097961520468887578547562925407446979088027107082815118299198458453676874613075702846414723974428810738522046663200829195906099745378585450624586406042289674203160222309114869214520470196844842309425055268374967116493828870354100022169966627475731276812859770536409567024120657211220824784457992303829569940340685058041070046637461945902784436382449294183877445838511963548861229413296256716546430039375580084402163901861331998143912355167682504227203302564743687447360075273720401952609242756281839441826016289323217998308574036559720778256090254028717764985455682586774453613972974239212206882520897570299212378664342694192413563646197200703935406065208800014141374545069854432485327381867364490398457440653501591298423296655262988852852878191923138392503830712461749170424851053230428903406533790120810896691536219888773528974911358807738138757493632250199106809326134621435672304647089518512307103915189549641989833876625837246548274112875367600635253342303448558695174634471944614560394848126422601946505317433253345813410098774325656501533786151326657477917346464609788187471079954724435142359638183045328552715971471971576678125136554806696663649164544089776125779403137744379887426739714949237811637672231313390222580407518510871827587801133571287956121210691821930003852943938234362820385903155789713809768037951761868681350414004523529876413369434927279085607140289277546779698599507707844709849296005692659331345545986455802307587610692238609366026728293555620992904723569741474660871783197235753883044246526408932039486433551558167073988816314179450983184087499004011678410154850266569020315335209043432889754664138833244739314301125052674957451723845320455238217451489321829843937357730735660503834115406273382312665923090725191829417994976229132543614731186753410987287366737554108254896795304558642454815051173687326430534068857564477795523717913461886731748861428694989552339405093185629709064605321881372504055518863320025105709911441002275708826685319965198863297031093291723445884003856024790462349478291540294032476439133886928345544779458185044527858490786332608407803034554697517545275649306564515980045136072292306830134277499166032419164386712414900490677229432671771592799128942946111420896806250908659697550792598161879127776688764887021049734208556716436086849097859668200310604843463184261678772973234087949384926988164996801783934406105617802897228889709933761506693703170110289029513525968327025664227000371479135605882781639669314430743537422468743776833964672392582154539241980162457288226229591831951671078556879748162203700168452637323512669308410682031587667981099368955590091385974799849421781767918770905570467661643350029948085366368623702052343053648133677809297015503831951217304425371974787734748083239277846947749325598094047607731192808929018805928860345526017770192683572877430849103993645750710275349659637988727714598206837094372485812284100229508831850622275372777480883202147655901993271075264394529813261911648674536111389599453733018796260860909728488017245974207991632285180922558727412506102797496257155986297826206312130932784376540989091687699287468068073905393528640342741312078644586969277732771527834411909954479627427135348308247986411603401779272825013064044284103418511423850798679370823669357237502388027100149561177181253320072849334951898430893931559346949442559548503168307485198055731794051987939679277608183810837415797239103717496726822422361117753408868589863835897689507741040234317525187998812062422735279465437464789997026106571070294870603745932909059280088728464987293420314999418626454761263453881609599659818228193887611773440412400915662782617108336643577499110072715742310596409855092469720956523739999053257797407707054580247340913346922287593772852473744908891296587276332306877459115919451413191915354089719364994975055062883795312171214894213876560969307750761275374874655668013839629846942526486964558282566328484498362476489812246476054062899796366023224524292517682130891444553186624358087775661368434304143238019550594847306533072331728768673427089931972413525797076832640121685164109238342073615317910653883671644200465541866287219861512988926482068941229559661342383473382194394137574993564971287166588517326505524741669827357853133340579244742920535780579407754818252288475024324026665724302211431948890480334166162325956206241946880422703164276845289707026225650871944473050167155068630302369512176367621895587562676901459817112544966576536510309385343349035330508269418257243045035442908201245892487223533664965604518163555016629466072024335492313260142710886400095539290388854518841647869881379522817663980317558448152438551282955012861141821553440971204116457210812905460634459449748686547615922004493553346880615731982712358862025386646662977681399899018968448526994971583425257906155480856980906579966394869647121138800669501749930857142209236367068119246568467422946969299696572099128522771612680808861253948487852414454450333735983674341006661048281820013830334149265132127609785119365934821365496029988383371956312933080120127402114834675924916813048323563826354049066684742476938958018842515390810898740986306709919345411870110396643183630601326823977420453078778308995076544098234763802277618224793416401628213168642417776776201960169133331486934830616566216309282408830212866582526930014944479346704275574348101259891765337290814419337600063199104541785116710537141641574702687743468789064762215368431479609147095213328863371994699893364262918053957055232216993761331454625849044650118244209463841561256506698134606313790290230031107048176499332264691838533650740502259655158713853081245604227275407463514522108122174291360707104396874733213742393058718025557038189097214344815060344308691479033282937017162843082257704657197533977906780611744637257793895518186635243670137803864929120183218583466185987917303361302018638445360512791747687769775647327432595010903869758519878778015149835414050143177837195122313597482580760816688331814643391501445330658818540843301118490399233588722753855445347428448342920954817483807079157268026233861277656036634506225407694294484908401283029495001294199169794555600133662379069285383534783617330082882238008137603387385950913989232209154204606162185872516351100239280510625703837650117388013526145688519464841250922857936461821867416148336160882836822932946173866469356312240564359994714204287255531271647045782783048884046698937473191869796072214926835750842053795025213924661923398459151314554841269286344785046077741996006547758470080378530360626707320416424706170389334244841715946170967709119998698840772968649419398393265639949174373340783513879824055325137332391867301534800739514273948788340112809449716186732210251695555838494311636946670131913080080161582425462341363067377524245855479117433403606858646463536604422120294434595351026240289065908128257972626081501663495109150662130940233606287695388756837480924207833775677346324250585509145346822087525220092192531492049433567046372890485973512939904433840014301690110585611929198316545823717935630671046151949524410173322972940378620480390162273323659602727470338561029889398467578118311574797189774190245790082529604361741177726510587708896451697204648368140424810609773548057064869775286595920453707744793815716996884825464375012377004153788108719742682731872704343861109467593967041469081305929942070675200605471001130906040825821242158415738094581494388852049108832124683319069175664184215157208348112314396786046102129760718787230935586461603415605363817995216141608906772582592297080058412045210151839340518758529617534682398921239337439823210027680550826123312339135594718905168259936984163733026271139494637632854885023506943074211890378742337570820082361224970332013128565929387177855401951271862797089832638027012759541693790932463095710801006261868972559710834181074847335473975401762666581210178712449771397953297631200576572246085453501931240499570541054726666137741000514945515247493259218215669876286508776270184298167804348592001775088157709207283766699080274360769014082636916946214500351006615259350914163039451732300802363758970374677742685625749697799180629234761978043486048649749090318691169394658523809917290604608664279959527616214987771185198800700764042218078880124855368139473447309411899972732008640951773366735090543264960220647545791213121169734434640320881231445727452543536685362587007891913242408278041205633260124309341565572284222949378035248639990984809801044666318436093035419581583377044012195275324077241682931351455413765641056806353636267545917023815361223736495777357548040146955133136313123186021196189329190589658272543029177829468960527823887370463059372887514801264889484837670252701913886466103348586366181103559801631282422729942015457378796004666571664116214838264079755899277254129576318986714641984026878773038527339812447265916614568419458688415417324840349591077322292507702148401214795580515761708498022603904274629105126731446969615603549668580885960025185096197969060334801705253931295665344941296166148246216278692252533762077454804595657151240897528308149614415245112494057241855738844643987595010139303976411630562112429473061432678172759829734871546771957536859607360706599348855131072743807208088366230579844765980624063295588252585567605734572191271994629547529933013708186001945122041363584782472052357637201238287389282734708303045703117582539472340378504690880769117841128814877251991719481366491495295914001747630589955696302195454405249279317474283439794409178371049557402634943394642977375315640119274723443195075661085989075075246929599582838249453961003957442847005688816628881951938696836795548631633598364788700630137206676499041514012071491847840550038281448862128524327924281881620529381717454129788599735809452367380759497830295500426232821275184980037471111996076106988696086899638059735687910379175295463822292274467142178082499075336373094537353266138741614298465866366786064027042803881260174164630729537118990125076175191452776581634086108104605213487536430082219225705687360022937880570638011021320553068132377129681069670563631840759203717859586784430864613194773545600495639182193846192731392450478291973530676021120272347964530510721162297676897536534908086182017041174748226024019495173311348996061492979131839011678871207053371742924305081275507410637622892024492603683623754768613153009602477146591647946052840589367754686172708504915197176658373619280551645676241394718055605133959119993996527005224275884420226999897316504520271826619835450583355700134838230075172419018118606797832196915439947769958674240644310353941895241116365032156637084468114124096431660111667033351526633127084089662939208314537813779057123271730374168866393614906827683074226909709042024905832834286206283602897769764120013532916807946898993312246225890729511304650870022081689750336794442867806901253175362470887601852662585908706496205417283602581552345881738064560594770230700074442341285783767288067751553807322199448885632750230878935714818761313020170746054150696602041933710259497766792142799757087882048704031714281331610785277376870337991944877203413967828917558628435417921166464922565738062351824494838421926975987256308696921505909586890763335036943900997817484584299468024405568596023018808271016665001019342082051588731493771090380070114898039885383190215031613963816639536094337696537615934941895558547723187629853824395517486069159794822086478067370670800173262576795460309073332852787034417729784492194568515232482784406013806367660033293397023087014147658701711053823610558306951390765219196270055529997303039016839362198630274398900511095012069491268748198448499642900988565019800933986480942414987744785816616800345491537476634745383250532414971703151947707097352425992529344154820369438091065728645876479827621879237566631309281514721360376541380459749048034380296668924144895461715594848857547420338554469413357590577015618925259784317601856629854198726534017866129448068392434334105716990349521686806950683162479765197468454806582585006736987025619721116369127636390518413194913754294935277962154490510262036453531212017265039491429423679874567107233672437558652579991108465858725472836537234933513096567731122219153249072939861827115608385890718526856472621190287117566582438078588185130641595185947360359660164811432482872358581830882885667266464673978618214195633626729459452594090936994128156424566295478314201074727373330900248461113733517843141458339316370699711120253444627419897381792331491823753632545691072137154395977823657535813248458257590091664217948875803613414911357638221743662772714005386025296857480369000061889505041649987456606476761623421815863803924872699255248266500141231494084344300995431306269674702115798316025617803199651282806866777841837397292896663120566968723812595146011636691090523590063366505347037645992554567640662681698709672324945017595970276283119838677645707803424650896675041054169791978346393470921647555227597531709331591576110255770199981412129659557384181895641730825560691719092971404934118783016661872213663648520115688956812997520170788944293319677667107533832238658292351128646050368155039054390015835803254860239259357066190913438979116638931274040355177836675734553548668571606170924742746360854484694189976795372506042398153159464191582002835459597949250024049881034183997848358131710368262512008263475919384789153365737837446993323642985551814681793038403452264859688671599981299632682731353562813426760639544763191583954852515679266365260819811438340952619718290238591118613157443090286251059916344164757551272657607882767332062863196135193890679898930802202592105322503900424738054242945083795984247942563725195865491381701513959161853852365306537030277867228630787281869448066292301978927633643168917356774573807648042215604444996714247110069119551681463716076032344377098390392798197891046627018526386117140491337676888439805562466123361616743559463978160118434883822514327598055070115666779469056887169060445688085481543766532727573976774838659552422558346737260722354113330187449368272881039491283542162397619546605516512774904671799522060327723824442875774041616516423894969403671542588459655058038589308831405124504697546993054869417503233051504326323575513011497396644644627166527625167200294285556783558376628364998736397271243771197224283016300351717464035661029179562512565833148148094317745303147849189803134022153312024062222611132139151453352929890258846958995621919392408683386598848185356905131552917098981250804537590348718187713210583786439788004416717323256956853316322647494726708899785596246247980854544565468435424202469410453173577193144805865576203219707740631857791959931221784590631596220434561496603527605097190995164132009796555381816385455978459046427292448406378830076323025766130818406201729942801485225706057733509735323599503305838139916431653502740706413126026807939019335954212076775628856395203352086898782151519179671757635331123222664252204704731334543756854242310288842241854860950325501601365245238285938943131232987218431826779635966466421718858115984914254278740251308581423579822216618103733770068024719836346318768695376651924501160248133902931696695944234184956512163134600935236096215309128957680645732737619908142357138573099315555053852177030998163461489988985485130449090596648907882045582420494473871487151235781067717511232212348289268015658273540382410399487464158617298645870507691742109467225018595577513063076529207662730555946342680317311503647968564967157294708425066768036147260069669333961117200322706475256915215365745938222303840416473592793968500504176415355056322977158624828770718220591506510177700436727274844965339217578337605855906961642335998631377306503392560299978478809852634103782692129023553905223329965920652403260971641962677523538214209485912505878927647484284192447952017631264488649845434589702548112701585994405574387467115145520364995560433148151407972532808266170982766829827155866184751515495833025422889698314304869128331120815099012793233828247450242273513055760489451164657810092346212264858768885650330058090758483819945382941455507475752000150861578233101637262148707842543014617024458696890724463516289546979157652702401458299273549638756180289078313005825785444045508817445935825517122217213789711493456281918491486870492479004306832819347903018353269338539123866585798635818035526131888619899912941486317465477734213666439097925796580180501540102168014658502167142139319873669921182099401355260864880393817162517831662368045311482011132058453594563745218750474355012585330609072795540462425242903645494456217704018056600071651474305383134148154134677280790106897137444110480789222610236816901044446271403424585383086669194322751053761981515261935951758374907479560884311155446411149220162050323711201088579543868091030315651361968336027676240505461062847685675915769951365683816264061669871991301024648130301886235173946857827496332347422627518972944292225731508211648665692963419625554263476370121883812778381321899737307317718742739071947338798453169481036314389874588261930059193054074252426904442778363517432654588153980416987836676200056374480606792064573273794227327966923276392290802320118696502311144903552722564686384463017150064579746475947197302698787036198314456814282562531315618852763887839769217118839701280763257836950970946984556576540548421940669991499928106095960272176968341202719893402932081390351313736923752477115212380078182064303664714330683109243861576706098366060790847125450160507711464469798901950521007830380760411140551293512719748075027958449370778874912394686318131376407417847562375577088349098752744476605606853683284463399867453684650696770278804094622937657424553034760286969064561963236666172132112766782206041392490946662845070288441943123299409908492978663754599154953121100008725864773126804452165831064440462711134158811949371512431536656174271496978973395476909959309750882541147831613460479802116178281058514257078128448834878357055370125883257575592968903738107623849850887421214918266075806219538585362833576739997806090290988303287405041899153504261009121355961161132305918760198922082020003982821776583559444637299967736791176843340933529421644817718138400020325304393108848986438653253186083859911209132619001518966295631708249848002789272945409763443783434642193846751911492557754773580392915762702201905045152962883995535411620028063959503157736740376351497536393639872392940589666154802076347576986873934022340060500406752331921763513557940198400496229950402264080920808749834425726364575630651005459837116191677187139853275931997157009293531069359073544596193237420856910090334899458749004888323825329770252084142933281133930526249264641602558409365872618258457511122294933762618174528103695156310870410136668619087476294678444777172192043586616163210805409061001348517989268109307509920693187443196608477279779202481882646284727363551102135063663920347562488176888084578658618281548076225043344603264004470692380026601602921575320012967354086158910326076133042195934487646227457680051136800826086016729071796732299218703189249722123851401698811629879197267397257898366153046088559749601249992692439940225802851113182538755066497818368334631837070721881030245271592664558522072750995291090048876306158529990383450799183494085016022147701651851655135170022436026835896122793654621603634882347619998793559062047127215009608372663122470556174418092708425462879026250249540410196570431218837046560628007189498380064187417311039558082910368101146035322417984634720941435548516725744746388863862737437401517541195802997066254535301824893461987032973933499588423900007606431655538728096968027018796387983991943905829877049372298469023779291380182657268249518905066032824507435455815239465615581034549014566339542722260249214920427402294278017773932285146286187988891081433481156521584289446904835734402369508238189390115790818975834769319690947225854956926225283952341917462692397066748577978877554050773138148211140205550033787264853846381929742832887065684781871432428202934474077685854263362309784383041964284388073681286222922202336269171233054514846716841155948856119927230431174178121210932331847083377411979677038463542600155114614790944921503148534240517346805756066447473743658658844841670588059738684204858588900229016512966698165080068671281707580082133737072218986726304596738788679178586050448382644090129829432740508443923006674356506195928437696306306025179107161983662804719284388062018479747994444811938560947327334718823123144156254268000586646811628689210068746811055586676408102936092289210086668837932667655932570108187800698883221195396639461854171383141260479443256014909735429984515810975244323557609755621595108462212128983936867920322393353495451444791333374917841042086397890127534297359636610919225812736038227626251272044603745009665738352072252891097045636566834829800691071366860981262748122705056710182771102932213682972008466599825534418343052380140557894967931641492123589310192954313400221179756330386341781248315232098330421266719806773392829649901553066011948922423440554271949770384079063196896408324741123838611381009165087485071334588164399785042118019074371383335629759571614517606411328454477001524198847714282417246348772574940713821597197908386263479333315476465443125724691981084476778148805891581255311026307747688142850233490862908126562215136112539108998500945465171624206475225538781534233962892195311055144379774804656590456581531760396946048689497194707741111055760069214315548839593385945546979493722049289104840561545939287996831929514399132507890561976082274131184484311659060400855980654349095512368737282867162104545779073038128465673666595347036252423058269631098596078457479246843313844055191624804771427630306536029693324077444256968595302901868661061481154377107958131595885716030431329821090023844073691833368995835478911102213665316879463569122460769487917967160092258874374420906878157129863101154785746313878712190568330596778685455162843036087074199080103633675455539631602332058566411415665957390145357488068769493143200042983565410945813349613041911317554516707053999228099090546097715860209506721065392944749122689346715685359522988935087435141694322024029341144887159935783661392371143586401404587136903013297867448529221339414888092676908670223501106465873498022722384954601085324005080669344308628535276387105059987401291459844230728000868564831799339922236855040885316219853061545450342728068854041392052084275639761050169103113223432099900062381206809840936620602461401083308403913055363462390137859047159991032918555202461434735196687922588926261239884392197344739136103293038891467351705963068788671208252242622056128901421793170241653141748691607938761404617222021915078861556541324849926069509628469686589821463272701885297036288119232898472463692482784177455791387125328206419763824398368094043552509868477489485888476173152384055764317543804743911320864462302624957901155191023966264757993220218275551927660743889681814720099869013762781709643598494045683306991316055531517307700548896481812382495419146234098288384320327129841583763683215265048997327714912922599963832989025594406264065587783644571959503719687965966896375632420301542522417245639637889499305011875802935115267639681253916596437229825769126425490336053635981120545386765154833468785900090999593269926871177943194419599321417976713407593943252046945296205282643452206565278679335215520413643612993730319436368800031200710998501751495521759760476081015402122633082024349504457049761428191201686317639866485196643530426404333396913480919373550257467659989447791806943877008457754610895574908509227461294651780128331144406583204653639686477680155396294562666314746750782128466189437201492142372149988670141092411315935922011757764023943466514960367170916591736500633098492764466975682137628753930641302728606928311229546146853668652217122286528331318645527341882763655280173998463395269331488562355894424330005805592163039427547826477204015042008242815200984385593433655935223672943359073705047354860514202416509258806046774226739551365994079909417031730738296365681508548307606206965832995635514446586759247497419415447792358589370722294881914032232780750478213717403662417132341867281024943062492771041000269690896313443867331571460781776345314426340497398239191158119172286441535666042948645339916254276481953308340119355664416891443876345342822710843371671385699813678380618089608991727835563649322181150884209616209110781016065217680928450632841160713656118971723779287610873669610686869225177696829489669115648374279237128231477434017523239091283831261030219235443408347263735932335131024226277410541898111075100181985908705587624485668029867647626632217697981487348758555057816154716020357312935970565510056122430266778377179350987940701011007285494744907599692894430856834687392312310198846434959935151382494200243182249384267000510766292468180790212806539587702118630599959079366026326009674661934169946083846491939132676181220562125756254426256599367903223262195619954197527841653411076192340345109010195003672268403308718093519936137107372005370630587652689525253978824003487473855421863099569060108887863341275239609190288373068431833343863803629037218294397164771224847139091556128988539228883591752577686336038716657105368716556398590400834247043376110804646679295828869106531891175502144173455734299611073284460841034285007022872539637902816560820278279793553437285586203879485419607402738000478171164879466438810040293150463264489366540071246419162389507488496691405939734573728201986027760216654571633560042709459570262459505123482343937249779142664416430147739606112983303908778299058277121745437375624794985296673511382982029329662120307520093261528721006257453867001065972573737357076789299833073863060346931885000823997911006929670312134351394140879131103087605635465986868820005381833935289075419128690962407211082520542116773604923779509993971869703874567717714904129224042168794822636450807128444552622530126177985966660812894025505620801525605416230899953536964879224730822968847677465753836187752542987743234391420257140105347062153318254736804458845934408917647767854972669175226215447499082836873178008029773235329102592453322263195324733680057242342857512412862953483281599502631669311369738849267216584285717599075504460306131127515867207843103404460379177295254644166377524831369158386826600746930551981379426874070621883115388039652542109885202480447298828970892713699916394912477419426319260602747855556924225068315646474713289623396270304155616414495916342078713805090109346457518102087125782098752567012443985287186613461281274764386087890938075244947654797416915668736781097550862328851167256650606403240944831839213701502203645375197676811220479588189323217440327951568080199190059166872243128419865716732059087988345185017310034269573547576401819354182067075614663419239362896852389355470693867190283378263977149867093925738296821468755824150921471759386100792731324970770276477347592870485024799919185267584322170158031472624649866083615284573855559892628888671390261041032448048155109114579508424022750826810782596017241510304514849540231670321730558234703371889867931071451589871107244061678421080405785307820996743328357154538251196589967874710025618083221323992885709727299797864352446598821361382821621661744346965536416411318009673735422417809559393980361948042304991442336155794622772954667735557534888205478558789575123198258824402073233529606839049099652581084179921397681495188377387218118136713199996880322049311639273516975960857436127004281103791217733055393014786415781463314922426494147749992843905096811704477656604060112233864470987721401507159007229849886489621283089825824095606364009201435543225111500790342221137482264458547341116164520171201754040037560611760588817988107019100443147077867454591885614352012795044557855048510754757516250209214791235663558269004987522899840191377314478327818615563333634289833240432168765836177078421253344218362523621267873252620573209274083548263049415483788804874536716856576450616431436651171793398260600681422731520937691483058705884184128617302113485465338252720889465815209082829664954727091629740255992114214982073696068196434894392547961594847578846558479802329638625934774438230875105045515883008893879702661387808767754878078980940108199759630140763226073617731126133686906983793619526554736349947477141553130166095656913237671579358558770447376196590787319773325687685042960626251916717347446517374203178524007142509160870251778842932424441430891741945580594699774237536373074725910454172359800557296872197154229051424548306376362210288727917071998699920395101591426072804112124883586418411244930150085084246057582494744568901664108757194998494529888127980232884758974513931082833102969954095700451712365148200660458642978745042231272813627216646791160956442725521913369597604634492241786866575368438516472409889599806027770486701478215841245658177390054236928729272523871255647140293925718946804979746052437564683853016339313506054404831721323256125334379220823348060503673411277686028180957876151836213115811671107465792294011460325919510170666029185081561140426333764235534048812502521399993461751480960890242479575098648769591351935214431244302052168312318936835290648338180149396299656700315157605989193379408833091308042486498307150486513310916082330475010141830977457586977243523253426710014174192295899653858905141952840303853506087155132912927179343852435330793280518720220467491700146666178096725878290996642313332143933285597030087766808222590318665390531040061840648408744734269089717043883354252412633872837222010117261969956560333061070695085295951268411569634715291541121002288857719750293820595660566289012140652380979368229650545798200314530518334657349672041280356346971471776335041091183282442113984224863799912926225721584028333868138908888343411200186238600329486622005877371554956359408004473469027467995221339759256581157666240662949718200271724656110028204225868861820452617295531018476130497733733401970156080236565272122829746653656008712796032884032758810051457048112673503323254015444021895674850398546650299417584711736580417695262101770653987154662588876361636592513747113729654984601643349519224756283792667668332369005631815567311640380596384289368971829894092561137202498310082670770427524656439366367246188615787474170486458804337038924718482018578118922566096931632616149665089155080708105680756716141801088005565169942455389335525882248377593052537127502946020582947990748141132410442868147798750010591670416283819411857609337717473788805105288737321983305829404924052786036035796246940123681363961505711462873784594061119617932647125062780983144609977690323967789807843156014964646756467715664437523622735256435693356573872829981439931702248643722712060687419032253977040763827537295907586980654153396424230444185699008066881645884952879165040021327239948559332266914488410099480371254389345976125990832482764897246391795467696141557133558998453629875715468342192606959414250616250851469905899131572521510716949267370276376663357677350174723272418063575129856174033124545082516596927311123890523159493394902668254329708195667315067717261125844241801173920485079097372314296395229642932379570992420796673067854818546147134529853514416787407559161148025792617093228984037203322762697431922647200717695785017251198753410121385069195695348449545113531917807084938599685966808643391565307702687775292482757577915541273636436925303227758307312024244856327971214939380840375869308326808153681372226347038922915549722780648157523375267203115487964858394419610143457697980845374116185617533756081537527268172156266040501758882668442768631713562481230068766622428425164011343507610785068831473807126501182954718411902878640646860603798191979343260739068739984979930515977503364334750665438512449215771871410119676595634115361000184144819100356195660397570255216652878783342833024317549076914226921702279360616132629774937030701712211166718060650755156492012075056325939824419673125941164020631041454318611964380516873046839425113089701025544789847162144797732232820391794442828076864377219257650169990900758997832859306741220457198899466651628687905030543730314956360461777170669297572879879345141706041731133945625539498347476752226122152265146945174484132614728367940929390053118278550013172019590156672535173701002649667157150823732553377133979082846300485466638859081248028282106449104565994663603144323921853094955212855759738728562764503787319168521699365722436173270113354925179240033147912851905221401493489141443115501722671504755332181815958476061039300370226993077461721180405674442403450379541905708921075752441630804347106033257268806728839125705381480845421365706813344333826030502747395328673867206968098326832105203638271706302469722522641417573550380670495923994475384118670970105465458067127313500618014250406238174551165190858889131865432726334815479591567471509390419858697793855204038374968281048971619125606891202795266556430046876039553439565104585860050553393182256012398969169562813445401844642048832769386162494057060264930548550764021541942633672991495638634533454625392577535296284847908942196770250046110133320650787671965582698652571286453731421125120191491315630474554738848357285628566601565518744102650374862791242895622853648145345653377833069598164662933683439267945377390262864249116558408803524341861224788952539889832823206362956998127509365152885839350809506353305970962383198727956329123282632734815959571833928795493333503682264123145961583558625961315499636661971783988730650802245620440818577610852220109091821812168957334404505310542054955928473843299672798993706088642732949095177265613378862268931957001794461366847003758734138433126877846299075245495555182274325674885514260010835610262787709223652280950443433989048006458079884083698427996598279469233888611578755602332642765763616421397413277779200851398614038877844022938163103912484310464627951455159631855383697261341732702827381244385011448034449784992055129598300101549956812117685414365751578257968651954319695011113593935288575250566984920741908559485869102223300180022960454847584562851867804359172996144185466979592582160859055730220806285958562007566535936072000894849464203785824834264100551199604771130573548684508428471883441134359924984269267335404320849100871480386734947479329161147977265568167149266239895297982993030611939339398738535943427332992732579868868423262018326192814770736752983138431393129284284079875846216720383762947514351909067848084057726695855276889887792448750656878686725021620462284639042315481305262516410994588223157173522951566328992337057195148374630637462096978676340567446335013471331410877794021464730470576134653952398982988164793041104924992713325267269075513926945356404976159817810088814909695223675540197684749061548801176767193219885811683510958223756012926085804352637100341778848689783672661294948636867588934145786318119612932126893171092993817976921924740152602570572941082833023748025100255855012095217267777829771338093565683308380130916617812309001897723889909515138134636470059341267157700854141470167879722041614250089242567215746719950461662378343319516408391406004240166642460949071636871494984337499062065821200382797242821857360231024248077275197643045602342394766137043912427901407264089176101437877990624377554222488451862378819425226493183836245464357780526436184601587222102727904727996794612719621863394476462129356879989278930310683433420092371532183200752462406762902825264918734944310079743186277905027447321256981930862937033218508259883935763530467976748115235441041212833207349278232384271220871630803536217450060313454968656917566112500997152756792534718926482164677167656202622213906425118301782862225215033170078836938635614899673112998745824968273903998949629027213039806133429303386899544880577362056130802831192010376862420576204606577467634387110592492399604869024034948159818363841153935249309952145830347097593921228093400600010307391070500010920920977607331022180730673020370392717060260984060564281820202579743066885269803381047645736785384210344631471121750061940696077718232137306958500735491238833525355570413727648064468315513466352195806839072104943629606752023419269448435494529787818516143971359853877392265328787928838743595486386363822339572696531192962612904187813891266374492850728960004797863821492177259271126108687936437141010727504752358300250291780027428221879266879898798047715430402509524027495853103661988272067075158345712536183847133454277291675825373734965325498810207971056084829342068352340194663953153118536396975466874468437411695695944211397350506840507094512170539510646447008081778025063802641400161956752058403285393781050837616474291526254004530886062442217939225813670422218839095017242671089861383767285094707514313265360239827726003894239112007652096816353475483789825926010042985842482515681685601788576570931892391783725028681403589776058089877979601019148790948810929545321057227225173649148446031004908627607016156536737629640187883182854108085697820730018626087327514270426508257480893414135001825428840343389583462557326776406341019273724464687980327778478040707560879409008615722866480215966582813324485619129062265512232962813792218978198100310650772058617176303972388008952807775011521006060808579400656575093015059781417166188994991749921949150363149349771870472052359561101443991579783378924844468961758736017042206836689223028107382947358580553243274954333485426632546891544553335758386237891196305655053995038215186489862930436364431224613114755577527541652663738706163487637531868523313645183846456293547488668383656581421937085694812776976205040183322123410572171362382088402528906360296761726700511430833297211958508819512389613179267630638515187592342364577778445337728130701812721302275036375633953194162284471364526020618910224818771567482996476997809435999494521912301430427374021455021334633203272859815131545462618660599294053000026628357872009500784523923753963373595650736709044091855436783683565256699657124945482622976390521570591554695888454122045820002991266150565333336191439876643855989043982813819206041083698567320494313318037148829982243018948216654076159442955911898979714869327275358174281570786422125467158811601178187499104955784748837984802688766586215003692905950189037995708066644590120203224569529293625268110580118229459917278932046998621523652475140264086824738732387040254158553216640757340533385526418335827575902530166774604919977178768129502010864802769264478029923949555515976928983276084321171691949354653384005828084884850162654874988109610842243638428115987025480358662056403569141755170585725959233965766968063885576324314555089718310074140631784628330696440270122289214013918053630288835466164938242966832740165262855120333549326488304504272931731534940840855281437694007611126045541615273718026357314360739684130206347136667057160272453417565110179944878059891002208844136226491524197848638137411284105547228537099974801093679244126900398226470666369471614918992423933840126438116102226179317796721090414555269695192263403865261612652461780380242388928072099968599925642441605335169963036577058014629571858500443355180291078062906393434802071689879639953134733665333498571775810704695025569954477675631298029891908600270936615461980172433966416661670022940157741307274395158004450008909414904114765404143858519527782789439205454170453071666472888158431695301665459212756730295240769332039980978850360503692484692359161864277268804852213741937861246546935224832712471437277761844598113719716306836233403130222912189717081632108366762233117809257663643959148606641233843476143661988517232063140750932549943453171608717788896121357460456458692426524606662279475175161709603447416615873776054729824164539558533251055995817810745152551896260500707671459307912414988915001923842795019789826085285708153324732152110127832628548367711847114621747483877325952319746946819656022869907407876439060910954288617882790075136569995895494985202605229893157475074810798985848414392583512906335977695970581404175997428057647376844862893388522518028259594040779844474998032404170549455102784435280046311013583631882305920283669454349085656329165407033620148178362003132939896344785019796561776040449854360752069901703012180118954176865412968286162032945196548407027383396823660742825211608165669997202346472160683780711901446568926943449947676385926025246095169748586246591988860491677851993069220260862973265672395113655440747770623981021647918103146514122291490897847050636317872656920578575762573917333588072429756760209677257815758663062661896383679055790917391637772089302267464918186855038120366319756720625632467323503012799864517263367893676203786062745158267777075330537394512840866218434492325252109908624018787817306948189379141010283459035922517314455975871806484743555635008767816444285265466453046464515170249612232737925325390158899211449075070178028597614728468404077304990104154069147325869831143968945583692315565504500267672216893706342687347183841198244420179934423531538546682908965045104816964065534532666214887885274587462117313307769570409180192124435269063047875964142704559324127046845632034248891755563564593729958693193147213571352914820583805726739469892570672347904027779535614850232190043328596417174841744724233168562575051350085185179477062612072607744773808126385008582525037705072392299341175093485927854155089723612503401853446105652836934842383035813878284816122732158155030027508032454837020388778149411521046292827314751334184006618918573026996736807014735770032091785332053395091649496447597461244903802877808438275073359164937959962862363673665690800472057969461403651059810889934638069341960543806104439446245336917033043101047645677916669146593826723377021717665262153821198255429235801518759299954454808368178573198714450278701694013666018580970945596369520418735088380375499337025595898808103989369312547089710152130972165479135450766042449122207613593899369407034674775660830593616010331432993511743082110597923786481158550108941389210526440880422166530537271385798400097764671145697843546701524791270668668454931159190502184104276757740807879478017934282656172334584326524593765199633538879445853331292562805749252415708210079573408356905765981672561587123470216757853394584421254897514826385830231719185376051739515608202023301017927471592618340388325575413128171295118230261169506946878479154258030294754522541432515089380596105684187942118552272311309019677660107093041918540144085445721642809433140765093413059570277560957551897016988772922811662271815118935425217915117460660589722900235572061231004751519951453315759058651608650542515286958560490964417819290082484048287062319098244033044692440457983497803038035280330249801735109151054044948848764930148420437647567020541099296691207064853227142815955969574521918564225993923996681743606805808846824984806681023727504866557350522568512918496655825998140434102649205087877673033393179686977083136094594382811301431980796368481240760221949462284866816355159740344967410311385383809888313430934540001807031215324948574773243920922374042883952192946994208898643067648310409638041450371535260818265456419091562548770099109524320015464168195186243893867148739123159507744508865469945130664206430846239601803793527363684499087465879961344344957801140900025391756436966397217711441471825127697457247666728760281593462004145045037923520900524786565205373213036514784933394469822387373643690334406700159290970241465809584315396371763307069876296627050624583165547660774264784557170084475595900534222543002048135290814591917272753288422457375846149898946677375611865866193962286319025486809503241247082983705838826991078262143356671198838720134455073644188604283060624205754575318831903578836051154522093333420046020474574357302646693100418267358713428381963437294729962845336188374489925801799795501583647381074446727572669820034553507652027442806847922899794549722577166827060818530107828321054630054566306417851913062832656783383183280014595655520164671212228526193336635765134294962776771818216269834829335666079356251432033758106912410838781053332869167045661836085419838901770541526289550742507748668509822452381675397398562091308275964312057136607316945420306731060174149788431672287982770026451809856250511205963238637432243728904958954833120856181637830545699985183425602608484677036924027797771404487322444409727396633496999372920325317570929750090504675655422193010466470707563596265314779024585284700718012477443093761790122842580165766683630401103367165150612323649039301059755699499116932773970312027999573324812873776701959489377230923565135138212663444317484177101226605886422429563100330037165244270671955963507824487721757191314584204331957511470689590532087139229487863102102238452278062480204317221728959779671149946051322807974444195519946336445554212926884950251455236064861727146395816302572056673648057624540503347659441906340157242213848496537867668838225302919854521508268822182040559078951116665504472949545465080998303001408945035044242972949748870584564512030038092439043157331074975056844032613069919871715450218612581696570444191215574614737693275768048102645565264832558400716248515345891384013516576171318249283877135178839841054678843402317659082328385592635770195888863006549487863648562231651726989307927242654484657406288436487590794351661099137318516227359286914370050134339036860703402272173496836796481535966890624640021976605911616666412428608128061862896052790487830647685871352521365648797373384372140769412320668266553692515548354154124375812494499761218823890109437520485617707100062552775087707858083344864351703825768228649763182642160235693818785840985259803383521247010959190981023717441531983472827141594901174274912904912114565444396545760183632824490916096976349797047120173423399118844967052007248434149406625544009148205684897989019402516435463076674007597517874508076872363787108862430752183932271665504988696081747370438707084479292993278930013307115512709357466752811173179564722398895202866368461988596876635031044504541015010126112822026058239476142329918606517410400861379955313231655902403143694166009373423351245299982131785498472867738136037416847263836295073460944770600648351325243883887008692742416352230793550407174234519274908227962243072983841460319914251741745449861269179221637935416778598417143120197539149245235601193573677294650195404019227645082496963493370857031488008733287982947052304659331815298943927808073411199545306606734500256991614472556810331992615020616410046378135439993859064291292777584326427667970048219811293330960441558062441557223608828163542394296875402146007828656991389238675203793262019491271723432234008418692761831559755766203072704069470256606355939329794638048974972040602538735625916387693633851012018192575974883795740223441749369227555835486087572084993753628883495559199300715118213669826130204010249470783979841256502623873940365087418523685846432087610624461628792887968188559146165765028574523456431017154437212801342566737300584694722016503917616056392381811237635357707251954526443626969765555230164460664077223412862128339046556360036114591706262082477794832559329010298905969842266384146670189439668797020864973208789464586535091195621634441751276220046086636191002609858991097492700397847538571253746869896168615429756146952077989365890042097575910923817764231962065227220058294956692620791438407155146819277335335061042641709238584713658220567499943771717194682836213152216521377180836669423141372310670383030897052893479789227352772146169300270119207541966931858895210864852721590717755024726729832114484450478960282054067863383540321550988910149515063537128296948763319295168367198924672197225479814420287609732448670690782782317047478745484473545995248554047967153675853542267771483806324993992040534759225375727126094518298396613830156506340973600824053254993682281992966260171850487185559120928422601448855160272954476470342967862502421591668065913923056860403980589142290186323949313479036619747306084846306075450937123788825915352162182586252270619004948574479427058669933051919050981202686908440380611595935879703569738997458538089527683023422404095623801781971308805939772832466534561036509816663366507393824536867904497001512831697278727128377539735048689831890955676428735299368023964795454602188841576637918661668160396446495155866535858986201686042686868032567982961864903163033822248761388945231967341569669780718851851587342970853384152350139647438971471732013271824533453341264447181341913904431116793924160048427524155132282004710394493111956460662557036059095045740100934685256732442810852546269296026925306124427544248331724498272108283334796324451073664456231428519547574280762586318344888210876027841260551879026306247838254432866619544520816755967523747724357348536696014509079537889914184140625249732307256292819270161206129447773444212873658580453604887148380781105473558754862944229267308004622083686583227194222295389170443135616052004150003450357071467360490183379744191614930763942906078700097773502131234996440812668444541364200611233111458144798600349796369657024783738981970713900291261260482503500349813373482668453400184817792381596142292480663668945536671791151085725602956769109901986199444926401405529610680890185303028904012573040960871506559074253123565057251456533008331475534615392652453821144444708391892596543378798528679745977193076196135908248734859369607260209006581396846701642626909186828852457658889676280704296663783403934800514132957051773683619342481393208655601720776755049271650082538931537163689078217869771615118324588327033562483683009974145632434647203328433811970215116661812617662316722179296744633029115338430115709898110595382422018485577719983907419626089060758322647074945009132950278154362795221051457484057515439635834991698422768387726071378299421185629685928077988533146006118351974859098838016232925185796742656821482824149018121641990718960231567140108760527334117798960536361076405548082101808507031693840716009970930389639306359748664441780189804689585633665259838634631263864710670716782628533597854897519963967227169255247670445898011427436018768483948127560903374216357974185490896307389301631193623587838227653517720031291915539510699364184523001037254400175385386467120106921750341982099874247706885925890773372101010896190270533694781819467507143837474960859332473541063253274176386847772900511205167353278305515877578037153581039072392986853420176393279084476665362532864456416289498521286989167401320320790665183758378500541781593001073379254649821292876731471720879456977485812003128997001565410346051750490511807124008795670034237296764021076865659501586105562160273113740451891244312673375043863745394251660185104200175761144206143760053296798905362015066129610517951370641240207642634419741377020596761797331063078887199103972336265846572812591351678713376731554698641658448227933563097881800167430411381110051226914176507991367857925941326239045425568243182374932857006330299351141772235930855084029080352256297912266898420116290366834435198378373859089349695792982681627159511141461464928751753479107477041931265159100888067703261143099327262675783782773065755546354152286087751550261028023714802631518325963251588486502474645752664522194053807173226983284106328448326092271486668838330443447847401104850404761763941104506794006018579716693958909214949703939752279611816071056567150890096190776484507108571936199635164088845217631343330811158531209014825399771708599880437978006511535565314876292176023169850971092227666702073447486340319225415346953388176860599300740033425668043352062389211626995927647609255267851109709554392877722742599318927161158686647971403159120979773897479767689134190852935021383198975190399687197457604128449714374340187911760646585302114181118126065588670339548887645797048239614705518639757220638936268917909102336541374723853321232140549348221183839994855532905149280267634315809689542579179960691912004816956230312652523674801912909067561898132064193638640397249037995951924316617241370423228180488969466764278729817650864839990211480122495903215872176714712326465632935898510951554227480840916053012981937537163640484870041568190418297969382131642238769541271152585343142787395891050562542236234645330150833226964302549041907800101921051785717712965673523578307493293293285711269948248047514989996058699664255133290974996223546851014844377332947827714554103821039959853909381388682947163372566478431028300900244740290007147640411096467330844126700598032618581821376357176147551265676591505609593862766579656670034078090331275434952289559662593315436052737710867298134968449163362140297915419860588972976145787361727690963371171153282189308873154874030647689832684445848700229985308714555979133800634298142238128731374043160813330525735313489220999083832365432788669822098385848084318464593227648755180186723054940443065068799636638610956253841537605812240376655327690339918059878849955389097507168742473898830520251034121132933553175954399388822208836400954085956902662086342883495205475290740549737235188580481416194405432014633298877760823773350860942443940014670230833896455272436294658862937159341459101964025494263477013860500953098229246975511884607713819990015998520222454856200047060345201450302457300213160676481859485791625447079513181220109666052033843897342376140485633087376073994865974924965476098833182045598982264250527354650251880643427869330341032557436767763988258022738872298326999139117886769011169244791884727052079437563988969589136138793989899860426119398959705642571966909454445017595908507601621024967004960259134355682821398961874890105003767253736426542891840116880781076673444158637505745803386314734792901831980383497886486554386633673198945124424125289993458205289839763598610506585719533033298955795531766165862998387436113082931356506772098604311209456482806354685170134540184426686150244568125415508295329993079054037134826566953867304017493246158311642893140888324914782719903977277089601592381575985013424694165740863502977396440047681203013516684133199204160429497996041672690994476049651467289954613566016742738684400648813001671482174257779258508624036584011122638495615168311747482728164749712029293644585963369545424074987161859646404950172865928216593510057731842866678498470448092310177579364308403173817390614097947052670892089256636333245593225460688115625320819224651058849424611130528386707998161572510159163051651036206824263397477112370114144940128520979849465526181571611557027371758955213559393223344966169805237612261280802798253908905836237377160254749949836898989655628999844715292063904328895713536877440136470405113473707069896779399824684182066894252408565273781435818138460809325537467104319683153105951501932968811574306381184448839294456503323676053442006634423722336829657451069952874341025217720720287759903021008984971079534897975886926441226301960085673785767681496464129832824140752440634938245422567270210297865816243144463501032806343541997019028615727015951344867613737338958717165992227605390942579909643595956277742827368453677005627760483805617077833755714973702241706393874751974767829686562428321334369696833227863522968788786221603433913903468512119850200512725341491606275876159914252236032099009533203813817243175128599983133169112087185362026904706293774072354243454118647005706017584090368357859975157800436386151731859989185006935560216615024637476144211347840432319820607356698676779858468301139146603969599444464641100310920814512983496392639556341060850882611228406491311399010949732713085874542162654086285814703012904645663767260363044272927068011273276104762852253532611417253419492042791888843075437255308769375414598373842744666823569028132876623777107696126252329747360908410356452572273818752158818150927980193673771600926238410580154963175820769763038848717601416681502543234399252270124050197920384542872639167559584726975763673874350689035421065970313418935348743149131965900813773181827239247548889257060629820951594240895157490642894634555574566567277837027079244357703545817436094035391934889423064862475747658739642928223197562549138307572783167660741634789592475975047838724808006817839161950050517849979209321924447141889224951810160495912113972472739832862303889732552638207143980295554503345598642657178920366260054742628047608751284244146307479125471474974629395690622778716393683925723401082264141450239542823264888507933183958020843354951297935631833882533843076508273704823531787238738473109153672531338139609880050738935791557693678210429141489484833567877639509197502757202382834623190364684955389532854200573499331049472702653424077789856720467989721513905918000530716093962324230956963661573550878187744985920444722565469378874694661861537480964637040673213044879127204489901722833305764366182427812883380876526879554968544546442268886726222544174160063237478761955839255853143653921110130148380553871344126542134868821637440230990101076216244647217013415366397872295496582635546055790233487898025404176051537003278886945193545334646554036723121054493541091124254180805171312894115086165076128376395106557696739036693208127716109447343403356215467105259434281862750123634222463029307709787789694743233774312785102734143171089384250087296812073565244514780145379774159951958752348824836921931790719545752500406820087037949782146588185531984499660530952781416575110349021390255847286489799372530730422736038583030672233688567052819301608378852165961400544874569029256162661471792165755508673212633284696095579303366269587437500776537430237354405546855191504902433031829974988275644140874590527961051097038953369424836539884999561415978530590803594205420808679318465551838353397160367524975315900592097934379974139227643643027438141250130032851992748067701237966574206839636836383648623653350603886332480346200690709703234497222754143045961685422795722824343646854540144911606679312596091148084622041434224918095961363204518913488555184987302484568493864884035267472801764617464470892844782091269247369503650296945585553862020356210173713563897595006068087385152677405744586442194028814162071836438035376785687122051882568451113578490959344689391185019506922655338477730046818904049935491694084046444805808632438699048437869262034125712305684621717248173174345580388904217461057957346574994958540500403111147302602354982165687917603111882626628852616590740439997258555092742203006002036704462632867524331432064802805819394621671754496231164076942446203365901988991664203761758625953300502339196692900527057022009050672537840353094429712302077343696797214066183222932153677842228165440147407496183453013694712979771508298402203225520847854208270724892587218599089839505514155766095725554527454302140691770897835175610201484450958277361416705139552497884909871517355272594496731760503954756877201948441947629935071148068785125324006445002248559760301230620865889332300804108595679809597560609977720886056022769915148841005482543234642334618384605292107377030518423209773289019418395057200446125268637733407063320550818413917947558193574058139750777216853093832990679393047828884232729767061469193566412766527275189328802225119158029063659941021933371342377394196601770272847437112427923657207772954172975953818120092554306036626275764937718343289656175512399364650698005838232310439063687606102005932733067673596895341780145812147848181289141571735898439990552307222880390050134983458027406210900046748783158266489126259466228254067187647928452541057550706875465202782657548054332548263071349308404635645344416646919841645327541090086764886602604717915595950882670604668694867115027707114740376587835863476682314848671908306860014766669803202334100314263116912702674150303395876068866323131071471604833500414423535293652583280048236362635857892520653449939226652849819241415870290393140736287565074240595166191065996745788431900233225539190576318659514016621815992648212937839470221148484359914448432244350573261993896427554923464307888655819335444519955790788686813493342922959886165154606685259700130106905468934309914376894826876113864861064271872736169639929790462978253331966762939580461787224356499666515433586985822496173343691540463536143583846558080162835170021003805188372724093113662365103221349808729677317704802605989012422678856837277575171682975641438998945578571423858389729167004094734682096329594670244645085038132756483695762344449320523703907707407704319674397145288698239225300524038392865540611263969713640602190374192574568763793045729596856293290047548773865154026374908437184798506144658211250547799714059472227405240304883837316893307062210299094340520659531366950707393672767297692487399399278210334380024915654978872130189533470990559678697796307288288023371363993997808588641679574382170719469176129533656898038666306439070720389265061189567934434276413310997840372911762748257080897558637563003649194817692173485698142065213930433029781971217589603170932953322562309988544234737024301750933174040535563152107891635204368686339596538226461152987654259083257460320219412894869381085838703677825124562026960158484648029752277839762972307208117567235274911636906877598653099518554301372269107301249571808715951760974144689225174945920866739391933340649417030581151621494310650615184449113030587217593383282673034726704147684786436346097721534875908987353929032927337718388528996688843395501126301392366469472323460367551101663850322602862977507858284844354357386990202118577440523690447700320220042192688409745833065544468334860336449410210930625996738472576531447955094867574856496579754542275129590086918649509284438998274454088956596143069553534407808747360221287538778484603730370225675422868645128359254925904099415846577454953107346437407966246366183192611407761044583073827403717519418457759616474253883642107468604202590306524610221816862251679538647548686111619876800094812250758397766703956180934389584619856235566672942319046641039096989213286909707481269949898517322862783541487196780572532088851206178797698037941578116457934941170317222429798113242395934363878696554451903511749502821778210491719268887113887292450399300383851056452276675855729980471684750636677248746023306054969833503352897645736067087537917515969563711265297108247454790418228245784808196698730738449889699752609920927967764375424263468926077338193415775800792257768791454170562408717965093390847038023865799825357960463214956236130538499310576774683367286313004496955096178424463770689211316943327341175985174405926445324163879782577354281497758598616864370201922712851131512452543969227194466251464589404745433828893111271096798855161783863194962277605924676288219419474461687011442577054723018778318708748835465785124265467039275408685184881074908756768773110919706225378245584673491439600095340077618776947846439707236653645934051545289870008404874243101131032756797735104567530127644316216119345465838527890501441651128261296506369532183776311118816521247238168670956090088751390760133852385036472479009824414868698904502417126810925580700768037566614459341402435035638355861995086314853685128037486309997034516560072836676791778775073062690321914232881735716109404692553559394409132990876809257583611611274959858639775438201122976367302826940396660912742445916350015236829077797043470049407374124613997924116396831932293686236931859156635811570466014004775976877324387032257727039748810125178042708015071505733425267831762821389342218324603179458163222762733601058655624939036806895145144119744795242423264773938492662626578278131656871684533746723897117040450457680942127883182025014083839409792004072869553993394135116733144626387477825650559904105848160367883467664926624783062601413563472834415078919981094097079334430080880234088024056274867889284070004862625545282255581103116018386503256582037698687643060895779656279195360740029501237627281486008246560315172206498999201240110978005908806413848964457859730091952422020920300433585042559830728618292513352516600053287032876836859943468857534495235111107271278819519631297178666023875681561013227675972414927041955810487283846883568650323370240565167483513315301681688175868341258229697125149906968957375347539732468078646595435463335577213548952946293818499009335681571803201673424135287893322653800746893811297046309477914541386938575964322748850757342709167438661458447842750670758964892076385737416471539438541191467052023254105139850682894763808563185152280581103161524534235089398026291607977122599767329637950343853988829593260137337497224491792243743849390838392476718489442101746962712769827482419122460079029089425891677036258570359626068525258519108949783502821170881136238699259965298261086637836458602654645710112309190576421437838084923439395845580705629851172908601848284603186934618078221688653729498933980386742081989916887729672812530445969184521425671695381283458087079182310361606412324899430792810565640007865833210753003934069508156433576809618217613177470522823894404975884273722389107666486370566428163185754554811811587087099197047797880842308179057502431402595007078217513406857617755110040494414690045923322238261170516254687663275484719630397951875305717567579473084703153169517170404763293774653926328399646019773486496443738048256367200060794322428298134898790405851717192537772014720612559878581429022774489351003690038399790729734196716259448469528065061948835048952398988704909316773691922085310275297926862918858412856944373284600569014733793034312875950404559190386916643824919600561265284342931737674150351505731912431378650880088605492004467724961927544825527412044652088295262646937895530380117097492524127367974093799944736684435609737516677198932418741673309141382626343930437278536860126017669288174963960337574249682218785587631151103220995459182963313658027470360036083063011447388938176294121107192374765620198802976048203744723127082513005572016490622152673267020906442030977232538801767284271708125291567859230249199226940469376857995301174892783493075017132995684107583300746067259347867013845418707253944141867654084583743913701374982611585092040974754023702905630176335443335872753346697610486315320526570693717881541634908634426759618183837588407195400666873643800304007034489564961057226723133172058577389331721764299936423864029079208676940386908629733134194300813493167074242991916833516909361503495069803515843586400772397497499193203367633741324915986618904243942233412013453477576933091834660683928208303815836267743719423651628741775392173651920424110862187336086116746240102494838703421762321030440103021589787208265884555353573248945464272985181539401355296471857609803540780413928646953940733882996758536241834043274190027317435853796872405301526342114037696158268682863102261578523898379181069168410515714516746461759747984244856890311912044230491041280419307067773974945579323879265623539464566244460949163801835638750266443085144881089583119789034562943471900021243580913778901993239133953260672055793546870732906699709253823791424133144995209571255733100271304531896943333752250978402544793406027047869580821858003453926572124548660309934466580747317660142476947767748871533894892697440031957014316080967635992527507027421497356394289286119163484680640618634144079308043351779890547424739224125221901986931296203793766331353230559346979053073868371831419991831239124474437456849795004707746103338203392191992015373758584641641000357041580280511646941724544747701055252940793960137572288947154046144067565227071651804481355590456747988861943082417162442528112761948171629446049962026718412624121574515713943943091954816731328793671855314864949484762858956151391078029734669172130025517384559296015842359300584533478836618414069333715442641958296469806905883944275297671393025734285535139249948120588748716179077305681935796514503927801962433549760575234956795529489047249025248126990008681209577798531170073452279076125710067381206568946641499899450560891517519599386908721906706181612536749673180070746454162780793596544152442567406649625128813372429785563848041505580676238525618209117008361630739993187277258144728082772864216518259657187549342276368763817557965917589778754517931436149129886790488721500908681566629869474740550528185993665211267714973037603830055837496532803089387000029452603098853442489695412618831437310757716258976942533794280139865880306237762683964722409357650995891848412587629877227165422896740997288198019463008046908506655248236376370259283974653173090725190553634611420627641818697591404529037307300868590746405874276626685856619138901631909707391780140944236714649758485586435366460351902564824978679306799041928378814726879801868266421509855462120704002878400914003833533705944914782853121942761801036543340693548569027462613843577919037228139689382563529276284406912565078194397142287660016703253091058966843661990869658165902042084385041223451679072921178310214395451344144500537548533142629082257826445727298397678647184252851366768680429392222097776807356836808264826970380017681203114207813637002867507947639974469248344412563346829164438108378825203589807371842874371130861781994667252802672229828835419027539261838686847420517273745980846206960759944571018484270710342838905706952868741826628129252167944397543576467302410180931672588782148249117760791138512499497744620615471061524937490467930985645227606180536019523891509339784834856335487662798774692484634327289060463954940150636497401962671021771495928597326850046091126356468124603853697025135740469109281362953991489414482464107789874352725798486221910524875255032402417276636166957783406091188205900181773264649422039832183389867408821748043350839668517129913193310638731782073488016103755387997657003665919463688507986245516031839420854814551100853502419425283945978763591380980197392505200563455324701025875481699642095751373220078385981811848540123911327805241780502683748166303313016977260917498866829755769249000466693713168880682788096080454279345424535838573926095131294312921793544524579562061585813965847178186800048984987858033440722872188675109167341062285151953160285082745420109436170203618796940270584267124908798364802018819092464606265527744347773782307073150665104268097153045337342563747604411698008708313572430671281224284173549503132062120045193566606479796340486696445277562716566881031290219075118868692215744266134116517038132135936882529511388728231443300699939063908037537245295555830569924170756568280253319341323742311350767812469650571611122185705948533759214482701520613250107190060713219890272743685943553724513759432824060033708955394825676083509995493028382851640382864991704252786944399615858985768153695763954049350033927190831500495217306183967513633937510437381035594689053956544497106506539115149147956491973825676093961718375003186731537068616803503284420991648674031657045793778373174087167249526524927387709098373136024271107001917339620339218254262708854217031699533164756742636588766558323076139385046328844320975620324709302481372777739723351676655268853263402145156417248293311961458639455917813236741679258402171248631823055697314368576072549231895544568503621487887470592213869636142935581006106689670866532100423325192562987933534480012297259769870846045327780274802118553791994627344319800425058002193157621314781713322429902019559538426476594070832823019360819248418863555627649285182575801793658448704287979591834707570107679254132633075249107977945986892491519137119745410629074892843227217754357008812331498116498551123803568441637984171125687471499901575559437953037698583026745794299585844071651371261554765276533026917243434280592034244961177376941472551206658848919158312441236485700524402091690803035172257295346768572069653488769088486811501372381947095929441828378276990800408252008936513761487233092248845267351066800960269028059886757814374008919893966734357260740367013656399153728407066675855887823951693535731566017691985449118455183299508593235480361696541197009977382968282020426503516966420538555912559897481948508828586059293538135896451053516675026311325623989356775780468067846169334686049231829384436158640543560638451265436134912263945378534392456207876958257722516358889022808846924561016659497142630048809557146658118855496323651039999795336432989811223418118606883053243362876362059556385943025290690624078271901040961690830720240024790252841432789831292564387550024911322123520749049004957023353131828351963257226545154501469996303583182989905180055681652339980240890507843846111554953729189959547943306807290501905783468896309198976002288056014205935188106592385888068014986090167718637335781104576624553259565470721226848419406104883473468579593415965601540052452535409684159063116189433354352782113930098858379731072764316294154851547874753334850247375490422881851122251277522965251886794664366996820901443083311399993952779857918441897197365842055691946278303463907086178455141155668336865590864398425632080399301533354568399260664121681810566947942760058207091481462767505588608307083865857370892629561244200133470019931871158039209700225967093238206452539470967023147710111819616801830421885032290690418805303128264286856621437450816447913397659987354930856508125277793464355155336424082076597649092816443721229044498740773813211461695945890272615733957960512570237701142447434104627683266738022452761459420891992498948057599512979945011087954976431599809563110445682101287026740154547296902681498846199419223005904728609477915622544737353101990433614463266852165946334716985316347196405344617180280665414454283543512310504848916231154553205020207373702356241504674824953077639788730112976971763090437969966584273294742894928971866437975654920399764124154644523063212167795407819660229410393407472841246874629733422231611648469919544872947361510054979000123492302179309355600364634814980662158061189996007976125992166508748090978974667481903767022458444879598413592592314940099179072667300553255750227364415337276857945212259978706998987972001208181988145363772041871794664319783399673055029929570208631025316933968242306238382162369083705775418918225253567463874647982668468582498434641880569799240319399424702978343889797736026459637800765443605825360005573346668088421052037111297943434432902859796634753741832722829773950798854912551092775002112971114637019782047417671375604009513467782296309554974539416826934325892894083894768412251162790479974773063148904596344537165840598505017250990798508649457214826174794071742134500267515229302558468727011333249746764486552565337903509822481804557641506726030765680375700312742751963415339412239827694747741590745108422212889638704483812145625847758678726308848740632045505053793188927466327722394973522332290588878593693654082394346116871364077476404316841190925224803920502138469956893221565367314558633582987603011180338950913800263238002849296039563585605135450668615489618828775480234454343857338186070644765498623563091195975975006484709009854601330268094998058238600487229118007120195832701808204091240357242964913257646346505646026185981926454504016486709385266062708611147866678908030743252270559724753439720364058792826144581259882994252576075856975233841674157987652414805804390676530276951858639318943201861023349030552413310143450057209767437361643598336402578264681484388127164684613436072329945184085944283820948524797479220428794078006653104018557002268906468845037490642210145538453294638553260346417076721355061164052336285432944192429999037820195460358122359995980368951664504914094435870638355048033652475539527427442567155338444678282054781237983101083280309007129588270979431083373790699667420607806605265458648135384568815711705760370755261760815653086992883155509084884758001833117982660764794566767099180874021071051221642220950965258736771381736773819623891105757968277749444283705388145471784540612107467477284181835286829436932622810839798770123190048327798318251825185275223058014144809194360663710637723075984431971011181914513808125210785181080260178587787537726336192126634564011883447747619554753381631032033239353831845073567729011483133290721883993357075444137080788691008610141169885518588790511006173234109437765935010754102332577805841997458076045210846586075125063258816181232632805585534153402877599285653467243676448637679996291160295797813090925047364477785550169167984263247881484525828561359152290870094537270576452813287660657864164846423154615818107826344976122631179189094624130716345061157325631542456225240886978504365348912821779690286303933196484860760779643052867596838416938653192054487903318291342324714428434660313357800805609057915214581508673087403700336519732935974211158930582563918407167558509749716423006631039528313644743308396504879203761401947202731573919722923758908076418382414925415052686804754682232605468818689740370766922429094134900017480763282145799678385356533738377096395176468062129321614325998819254595244291995252994014670818971674362327437800278420762303838996042281939016596332626762490152657506154438579952214847094715423432347059832561475789108981444510612054281765910347143640991236173609797072095016756709362774167793575390905439640040095000534662252208859348771052836218184775400997690036106298686772720712548531423567962177450045545469192154662990422327726196345171075486924591135515245907700248958973609567652473754776639949275644125649744737820490309963546781173354076983280472907623786417341853474154264291796238036671543418742365351631034642961633267351571060063136108575770773612159188669363094594204781974798142563563855032039494942521572932777933284366861836965034272610568726312251445311150891616519212313053343254860699982411928681681323624446445507033837176473317113281103117845445373976153058215927852537743478143494612416294175557321572384549612526326248602769959587610823161064676162880312003077229600017256807127661311828898174956280174228481353602299690286533991141024298798298980459614330320349482382437404067791696274578973749880303273794155616881344139869743971570700104727192911988541941320433786552966054193307615147268659701309304304349612057616893501397328689040145798177144893922327156499152869015199779539871461484343767896640323800272944972111289723862409458379507099928291222879252137205865867235448706795321817514670213959493844779034333277709881113267717182272149222025641844079988300588184167409887702674398698022189054705296685190315081405855837373480345315794479430977680734616972494416563765199326499674121495418244531713949154890466760131114133082509927599189146367446874828533302116254199972898828694890258843993809878387324480128412220697963176070735120519255215812214543138718164934411371735778075029306692089309480891413132393076190495305461407350287758221133331759885876930693962057347007372010339692306756124450526727282306520378428358259161518748822460378837290703176548579273779326699215070815761853929576409106124818235946702835042943799244179032197339054684798396580515261790851423871976745037740622585815698292695139720033864327680381397957628239560138334432344671292223704121491046720312011135289097889352494135795885234644974607200418748853634048546744723580405774001762439800073523806850267453646835640977914065429179444319833755332725363544424426768106451996580028089440164127745321114116585336278125806539283705279240528888372891881508271330513677363779500430353619235060948343612415905350403189457239580219370784673998623969333972610663701867691731569380324542548491190173817561002895915666959013312639662590577403898256622494214314633231725834520867598144829644257368095660411888441302623439506629968461744498124680510634993518883011450344161744565452452598146491487220244056474641745985649303321200989166170597122178767484718532967356624662410673102919386144060154261380160235969654591581326152892298615319979458647268838052118703331264596347474783752811184926620589622167188506712827198490174708342612060318634177940059458724701849604867757258089377400006831042567738259739275589742962782489197685726352581882400541804675457522383081658199209094628723588320839035015387421982553536428598034447495730218174635990958544681749884959090359653309046247750721336103235808465772217237344794087083880036002518580709175105646198836342911612100372332819119927320278831432633147591222543412192509302744342970678045470241166662316813808729115966737157745297829701367590974912494438465240380457568043315385302050250777272673879546243464685562973277125599311485368040934926143991768844993820301378145178676706272442834696403870945022489424873722669732033414436366671657881011564104487501781187132225811707774305475647556472681290746760354996089507134341063611907352429506334781304363551604876748415542078268473385666785700522595161213616664714840403115657086155002255885742725000127204751696442683846748533772762507640343223849557937167762358757391142181663447527882508233986138810286508510249794447132921694145792704579258347566366673458842495673719341161144955452405940852012385047684685635709871287270717998329675567704973055241413476642222580029467176727138587101073728763988572064992897230778417400828356901370144865221145266944302224453095572220028872902459494685141774788132305487285354263921596137398864173962244733736640885296134610714290978511756491279961894851878938142783982916241261245224706952083205127576695700147094877354118323868351517003118462649332358399661918341160610329938140121403166192731041042868405667161518534517817327343793281421430569689167730445547429087489381488498064197881487339344003308707698479417569980416799378135870942845810100445242082709136242674315854811625994311540365082067778748567039456903313391541703024931350970834305008232220652892457837731686553737933114875531470239724717626459710261818498020953064812825912006250694577077305915402858746427797823369997705134471414961118541974492996770543919357769709278892105153623477330453755330175067097218682939328963738734445925688218978136619592566532173454681993031938794480197696283778961732548103926360223584317957255473966493292604962833831179337521841126232471037778243933554487552469925796502823140912612147476226050359754747677358754308740216989366226749227742174987282767790454262873535242205560453979642455218309125487032253743650427357406872868954055178000845271940531350742467256441567444299354196108302222461831155179981182117045391115767872469746199879441156354383544363745161553335584932864704488659190118784543349509337031624323691504903393817016988087680704857418151522606062115825571183597420353461199377703268878129628910207247369858022181207998316479469363975748367876037971872279130838048383314312436531390996220732326266961118972482176223275424143700791325709612734988366213681269039343171231145515711347177576273137129515832540888105676714788259872462343874094040139317067324347470227522464980603767624857277544843248099041488372049841218099545939779725531056412116761936864979777883168170709451542378801681151764875703655242246218511913777738273625915074731702157127938520717248368076804020346713884053352247216269035145427788366034549889134503799929250637604311380381428697197888665257231627556012345669766647475705693964641837754206849443703021345972103399543092935999226272779580566883556403438459311526474588917942261287230690314382444278094653022447626519074007935416006579077596122599012257698821795354707799832669542978614267638499285362870373142464309331848387726379114075446272781545140293347452754558305534254878348247617001783889331338686862257974821154770194770447350782284153754599234570652658822587161645965987262121442437955021280419817257443265481005771747312588067320486083661985036944365053246239033201642583155166924442552134879072742271588760307699742080087541684923050423813841997382138756929045628078475771676873365294682164883162403287862275268896027826324539105465729737774625788434252265425926879687255516694697209459859231927776030936662996883299986544711778624743285849225387716638104301101413751089468176171495871418411214108919601785481216161338472666900294872336069973114595134241175490930711193001056721702733549102383763747803187954029589484901570019170967646363719744425335171854440503622153946736077533903305797431064821074464825376245198285738167751828888207287990457072698495795242329675331552155826214155701597270452140886392595652285063534292795111212036382361868291878733551504712029188561573376416814330945356609912508157655810025261865100492571513804877679187278928998666398847513602744455122216250379687495319522454105269938801744596874263271022522205560648115308351310156585504719389601863055278929906256836835319238071992331147183002282159833557986311571957176988972091276678775930753614598559627919666887777072288223197476518461492159794357821575684829959065671532244499054109461431674160899472005191557289029098831028122318076561064281914413498494696658440380361505885046401424227622659683615219464655992599954771513788034300713389124188190071502393953442242856152082705052614821493718736871383358597961365966429680780005373531539624925965203784951355348967968921029742649876107690890357164551618864566377476867568500798122946778639684177785778946013830527128654834876577059344576184324193368898271414304517522762608591948035652440268453379201167346342063482019193129918705493457864267974460286483354209285429320815519867523210764617926942703145955839014009885325614141320693354293970990251724127571728829969850853128334733364847643536336328970682684828772027472283171801832096671772846938644942853484619947968173153733931018177944873800848932431719906556393500788659170247825787631366947227117942048623591543903392567615519279571552498196115105507666169656051488583944055476326679016579685473022647025968033616619178755247688829202790740907272079434521767233606411808597650313697924042596386286085886572445376269785575312255539250238792856804565049981536508877717635938254227567001416170298824274744981973142107098323965988529656485348456909858268398403351881149895186928657530748936183970625875390264667357540937224193787716200830448859896913004655354352584454485300709350093936458021809292744526589896956059859337650886820071461334172753955908697221984699840038369372216946491926464874064925611116598663374257680667815555205276537168145246417210785854399517253673937097510957063381540233846869861613534065662414192177133458812870639941592729711374713862973791334535991084199401600373814768173657219779185314084181117109436876997223080253373889900113640901470206927994526476953382027922255542182561960516836878436527898748765709444259195654664286516666231203203305564132714302191090670809494929458453188047851275502883025354781515135973044512559369407332654611054438424620016151834179470620721083585665949878572008009087837967666250438207988878670242300864688561825862119630574515328923773543704678786715700323551200789319530238595272892312015101339271393268695948034338166908980981038542553355013794198605056980340804118018333687866364267226892976122558917931703168882672454111788068365648896187601171986488660183692107404474901032542286123275671587230261516044997644755244013421561244440278592316794143070439574932514345339593267050571153050768482346242022074493839539306029344700884490686853335572736161286860448186460184510816353980417294097029044172597463056173665013600158050444763066450559846087958935045097812654597001433770314400208151919074546840060554197610229722237924578860564221974634397354186162923872081661201903589030353922163502289180973618952295609558551785697169673160992531866672767274778622074765556332761764446433616705610788672815777300505300900499258997385514651477650394338601658057477701831395750384818998097369077737802471584649727837357417138441702116854294217190882338695495439186548260213947925141371571333425295922787679806188225760265511230038829607180788192865386908711432696504790294567260579825831902295554280448166761444019860265374037580456880162957715136954910608547640155974620747211681308439688471955690057280906069642384865563505831960215679150612444918802384480327903937713021561036460404240531376741722093909092885199122069058879012608933638673228947789086929924167784368074472808752167382775761968366757685487144665984656692245086811480490103099822109626652173426866827712581898625703257833355659214556436703824281661977103874850763558532146786846983209403994688711636269156883824137528665731135849174617112284719766149428085418087350585202805054454658169000389953561128606290150557705704360755598275597349757500105803843041180228131992048739118762914094284465268210103518309024696786683625372358133020312597545812687599644785366598028018551758814384611841592778832767404322279178527749799576310700487671460726427929142186375254814937745025736986998218994113255910125124074773987067078941217250881932683697854528417550089046829245150579569508468575264652841891253643967332632277266744245347025300013952867334390318269984084985420689065918533304504041376337703599199105829062671917768521077097054778460851934266980003037154200267268967561739539819608364297601604298030252661946573680705754275537850393351518523882062542246386676342706404108011349516835565960890257490952278071043617866742793691045167472147040207084078509194404121091730978483096771782393491181425579869987844588441436004979999065191338340348912387737076735001544309377376855119263034876944139291242092662154673463911909061816034984314016274165255046890684191149006044372138314691069687156866395579211698510041792294176940968521335546289067379944654076521912187685881193255294247000160214790638425007246874809510050864559057863396830444068699988886078490766699139154723089185041563144878636373013686830398141140254170703921965581078076704036157585883952671851528415501819729095651098952717121891961770881534726107826988079505979116519281385592275250792434185777034843750422957076295346960754657950701221654851758908296313659428204531995909904702537273955775495358001975851674050039153049688541904901350843331785272707228869883667657127110313726181591313953996551762415990358375091729829479894858319095986959239732167872984227243397255484621716208953084083309593990660086267799733175365277274278508845569330513924802499026931049424725739621469443834116632541114243868651577353153419491577434024272233341608139634779500309638361585658156417978994470394126118598561221096707917624497166445970018752003013603073787142446060172734708019370239774984649977561003460488388314832361591624120749592688024072459825550528207277020395525899942056659910482174897633535638595481614924122550953220077275937212680690150633335448869233175808018991710193635109798744577921785534524611773836190219895589324331259850773949612385627785697166734261333886486555448865069751061845733897662392885789668029806346145458453057641965323248938566920764555166263142991403023803915430630664742747932346660184835846347047568900144163803869907294048378114548257687461352943388258174245268733515681225918318236969766323563123201561845125025967950527603396731683858182116952550389624806332567731882740461432640902979037168773226686139352935685435753939491484513904883458641407151925051678304012776172417806371637660726430184481214053033407506642175977667679845902448638170640850865200261299336095680234928222173648090036005579204092421327724215593474038023606281159616433712328710739379542662036964888273451389617893941188685176792333014025216213301015560256022343366555075496815383665776812357681577058566073903485981023518391862606336029395849492265241482764428499815102140535721802058666830626249973640619031630193579250220548937645682863619811669186624545901270879173777906911902883191593484817276978662669032083223119090332355576231191826450679583048342958588503666195180589033010224810780555723498715641657029381576624622988170612467434620364176262577205301939441309277381620425404734745438277963902638715891655584178425436412634072955674617433120459727916783591744586205129022782997105794423897095635297722547068684999671505240685680424307876560275000301249288123301711514964487725427965297664375806479483736539009573891528720475565240945824307940533231212161635747231884724469789003395426650028215830697408882863799201920785230674079251787350061092944917880368660050810690304446486847533987133327904522419103415887941689838465865241741689762345323183233970608013738688903306839867371368410137615141994272825787738620909409003169774126422360752355474962378833526344334776272613601404519119023193991192425515212586339290781533430082811140768779656118004460683141313862322484052336792807002086513904337456613143669858518324943308436687480427141639535650144789286080182076176826171161668539220927459104716361783923608775708750265443534590177963680266243746728140423398458421211494193789586130942829935146898593404891991298392115548293140167227025135687212281429862206341637890750152884543802712906813700123017919787355154496031758660263652046011332428888451199698475362055263156778995350884888140256216423544379567490796221413010583083483007153849817113048026048035660442906939170951824501828714879175106149261178937437466514259164750042561562042349032638247737389487578002587660602259250119462968910854231655639643214066888218016944184259499599718533859634987688872840093072187104121229644157254052240838128385469711544833493894453498384147678314611952972636817156919104876580177971549457909815357763788517422242126963554266110055409722852219093930045183020978641364453946771925657280390647991689576367386533466558896395404720203460613351798632290316240437163862308608979099907499070998851023379568434598952302865834490820395610700445576339128496983228980026630391669603145913900630344340686617017849779788105110473888653038336056783771930053342482126989660389800645911679636789289812243184037208182965875604822650843915621843885374177848970550769524854565791046407164817292814774215112705270144435146743295667642712853750548392996158032907539532527833115742385232967237767429042946118956935037157982107257526775085392006994495609275126074833799565276740579907552667448522068941486004630887849320651570317890960559505654136713087954889165156256213070342935623455949593244508880263144879939447924961535214745116953988208606175529552152777805844644906551272196475685325334499950815444066584774407679091337168751889074569049632999218423202556653590152836540378117713064407680671696385532927913919818951880528870832605425326469302692649099600405604515404647622421269533352208549937708730164052370239041161595771423195629718594540496085210334045536402253227547072175366900127829239024342280171329662872247298712043033381160345686095507939350723819005248197107589874385304598959454958245010998927337228028328566507522173204676422484125410030060879209732523749321363094731320710376553314080875836431682725036087999901404398099295147325620258882955764059663753509278359747554245004677815036719648710245191270843995784944338535618391539490868730860398141122196847455018139209300256399030650991362554059797426926189338591346432461307353424860021067925867461574345795159873241056530253979879668986769227178224069847343606074946820440226437770761838999663823398055252237915820255545590220329519379075055251863371620939669398500033283979877409325284175042872873176557752930556549171418024681861381942380782961336155051774633075880390591568975180055958992117242539997938478852533397454452575735424115669779769621026397136124208846205578225470906960263176385946538707857246088452607615387971662234588333852461008767093104735698336949950710001920539100871388560919847120094918837587441051601092848292652696314271512467801763926255725130617459213541733162124561546053328635415103381337286068232038867388307457628825963098383971411531066474077640175810003279437473429812111125332902674011949361248126627096357377673300069387862900352374301553945902687812675626124758086559112504250330806055473613595635967823573383191104956862991736720500639241812424883690186745353460384232878948152465096811901486408599558404962596019231724978371463334269400680960130642465645131690579551540120667315462540998351664042835752310352554596931356206727896506629511868027353864996912598266160790381201233787169585262762822481950538720800576608171999236318049500657669515130484455204016843625466423655122166379007499341143913517168070444586795151750099564557944600441058373991072248760874409631031487478658115826903516299193486019124132418475596276889305795427800711139853907192483352951646047664975827534606816831446004627563267597364134284106298597792074616793447399051036262079086888996410183511157003508099218640239915759285444103360464675810137065074045175880588763137709364343320691551147279566724254302120055027868773378540149548919812371715536869823800323794332339610604257459460838308333426591179525612765503826358525588546613253796267935824827605682687342513450994776415732251477839095476655644905371141976526774758047820430150013370927731208185214375555276494557393559321422259773430232298272151431057622364510038484621470856603060807130264668830675762779255789736529184276340130739464845432932373956979476401678870476349211223032419762366577102250291803926255483260984387179412595105834286743215843166194739540435845206742078829725909873238471216491226845231083742252621129019186635108138697288896396169725748623600217400925195637396288839208695646731287522697449253004968137195979615248636408194209567745391670529587293474396686269833650429439468350304422305414587050503451305263294106709702861826468186445148486721094791624712452542564810868198745692250689891873184375858608985876490022049093191153336207602209896093150041099933902276956621945651879646575039963211518649334343733438202874232902457597385105736483511253416041485957599385651351550097267305446543228943596828432249008749633982409061507971217275602414741815069693462190073547237580809172601639185509099130022581961093093321384235321915509087821873626847879260392346786396157669567560480056757668666640368403985126603316055999338874137118417492151029247697372449412790531105128256407391616985763532772548566226009088499542710661744777590084202264012081652066231583211032404269652624736115331008277776609820626242386398378852551722809938833402943660257733542365163192394749180334112247738901046144439479862662580372228285736233146055247017477262376682404241897445511274610400875162070605218790165564392720881857408630496654834208095587333902157234491070901248300977913442180153515682581285606348317111759326843075185903023708087150137361639933088090942259236153085408513593716710998109527383284838540850469322747342023501093753553775161143082588532735721429416987257046330605981035983269581284727722915088311589691105053131087438287837877854681229381003890466089760242710129281360487465550168923150359720659882030055445437752661965177540505187611862988170438574161582292474768958849313937931132729862265480377741413414384391113080434717610695475755873855786113774793186995725898068614090462048554526124997512359764848710197568936798366272361827354757407683353075347183040307548343417692429271986375001110263746691754215395840714495921389360311127118934806589016498865909999252309663924006999245321121290388359545021532582146289318052831686398479541817524190024496977190720327240591008165223790706924225875542924780361342801368036482263720983502865028208957918110532873260712426496399993459308264800134178043818175547638224535603357936133250484213402669351318719038487662074819860003037693167577167029900390843202432122837909105352313688265627141326636316448925096538636019161854368113966340286380677425445237701268851082169765286829597683284734422767566634892781128581616906687493846388460716977095594157485392650394425773260589001296914022050254559002870725790179895761924846353071212991129408145738668489456077541747951886192770092912508558271636891194330110412556150668145053568833969121086155058471722524477797234650087992323831097069863064142650167475583905750443340590016112294519327764809937918176848799772142279357656410027607717531143096236923853582374285436350725460576241034600749163289039678834340094588448510072928555319266020305022912169434117021049943893730959941026651425682680552576413239908180309862384826907309793364963745281914922229093122036257958844941599803855410178424665280759843137376241575213496127810382421996551663585295050144792384053662192450463335877772263794089278775158162530582295798410448109314212640677509967408647748569105438665401822574899273960850313714612040944168987861632704474879516060150287280974197093227575779595307872817859331482472693061166946119841664911106148161590297246187999882926143125271476319196216275872542048975610219430733536745854655838709535245111445676641636775928609004735152375003833830999588848661786854494247157284281265732621172937813662545297693000174421679038037618193810003022796857818897993947941273698646191238552105799661452076543731308494615173236087856840759920327997032759316238452804396312361477771949799903062317848583540293290056443575221108693453387343161876679703830671382496260225510824740403669571528504894066551435849819045304011961434225195901543235136787077309258400190964283740528441830635037607073294221561463475456067784691574002968750230164650073313775653771088099066579156892187416143910410190394190558686601433175953688258643987196664144781764357362203386166413043426039927180708762753189409235705775869762415850248708803733017281535449729395285393994126339464704918385645167783960745587224475365201677585913639964847817767142914472185381743252829913118862554756269017630221535502263231867235284468935294679962775792687000158114323289259329380852439091406282661873814138034862733238669359706713979135517721408770734253452584404797899836703610159335708216904981680691684637161651906573140828834863964565808068497272279915580673551470138010730284374391644349594139172113388830598432787956799659641874281114653450004532128097443688482886944056634924398125135208687379238568809828985352923710103646499819760675747796988697140740514956782407559380582964753567634837211218400751319168038380220087014178684622900833753169108123742025377715862289179380860332491819832104483892633163457234390395119919918988018868002572505190671091726321077541720967831364688692623331161962255857710017122470141780228207195863698572252002405545622999477322304819743176521528327943350176748787487307011985871527835583073378282660280081627557150262489268313861857951678464279444564354282803204458981403640979542165001406479555727413138554365732078808609769601517578542676621898248892926461472944448798410820887796824209358445683613023734036445904430888889319253332991828201385049754881507800216965806827695316351709418445851233602085334713419873084258194988294000120919312177600368654354056438668336890075741311090189878634762775352513357138886268923409706080002746587522266567962121933594764600971834395695401334325350966236283823350556428974329476328109688770100751516975773623879950594956994870986331619133913716069674799706112761595526933729639310595930796979219284417095780691007401649765798737785817138400957420610288878822358310918686863620987106964442782388576361070437357991431874842855972164981117366745670966377876049856050724602372392261872436758258893607365641825478685683334412753526246746889463350923955971060674169333609184698801300218111248215456762906244571879792422294413644981855680590180194870409830788650196301338439873742922996636580557173663301343259691459170584907279040266010622036113844824186730254424956473199324970693697530921257549928639867290937970739225952656155035445920283467535185882785009936107378291679252436785256259372721705521172325404385274987512121855380603057531162162228706823784133237232049485094431401137831060141498728207028024020437168824084848325721000891602935350995384939040393913574392355645495560049840841633798029685252464370922512665819524309378848631634657316322527175262457450768896023915986098515067225790466075209447714720771434627439038370487377871750909207720292437236178340354902264722568738787187172502269694725134682392356573497142143158053188750898969345561191706860627735963361129835054432572338497727783080544369687817777378590213755660257496007757033913805932985236208281477516883720599334949242482566909406687193275376676133511735856924010599142603791335069388960850639258422693399659413797243251593091935809239207070520823625810575970079949361986243479838133881145451654146400001157314191435456680736247391860125686685203011595736618742143322158315362670261033346720595398776037808563189873588041121947863607490287046126003081894414394920325589573256874328138499380721391634773707059945243206337736599236207470755485145127092493727285306014789782998694781571293235228685841480809062759138971837643342220682727809835906228804390263861233684209601602355990482180154692915936078644648344258013464839457852817612780957616513146979602624740755286539477372870872915929737185313431586491517160725212799643674629439464587104303992679447525304665266791275991354072590774570595203363436763096262518677053020869769917997777515370288097106096471270567557083488227893866666853436456319196979716077811766398752024861645638992524077150766279414614502155083026444815192107989426339919707945019133071774452733898688737835199642937189169024190243806016153227041654396962418754790667846088534820862996221629938279143936480717748779270306083651231504127620474032074992082754960763894908662336827649926764488259513773669406499456359665692198902474427429752199031000912002885245172794307422330298658740897258006808208881630829677441019215933892390879716218359660545554401738923105569832609389861401929825036181992836365207457889230961786664578553334257300586513586768681226228571380698602497884813503708261990597111814859541027694854955514113949261828840537069300193814241480186635187705650113741800002709339528771290498314860705994145613724521212086153704237605539740663788884318341111692439302680964457822230868009788138860287134176046865030723389376725980493392948422373486736013712426217188694988278302874686995673730779162385808318426091272639731096167257397811615910453058014754863250296894114945816096396180649233355625646162911748610414464883276149912088082565903141970182766820717722710663168204794706943631754903945782746282609817047838927082170436997465935097072232138533672736375346946533176156250072706662640062761787604211161531613147867438902663492091271516173272749039870227916596852039822823345539651961762200396019009118425435404726549135575087099313744891616876775743148862192633709462971022179142423113265788010947333926422072181531980487556198138591156094876784127679815376039967805446282827822471020614644527864004993562709177054711977719278540174795737377822933740604641224674988122665324756454551832288814070959035867819185049730114141632539698074882234658654044886424001286905300768176121412697557981939042221727677852728372270631682241531441079170286255052627827578264506874941728337419555582471544904527335692072113904806351422788803460831763400246135452379649186903656039078913477352038621989808978170584899833395994497564795838525706110617283764884222599754445295772109257016982892886820832958178312697297606008700164482170822935112758928872333328180774469724920034491095144261955828793558517791607835075900812410665256353405712694266458156267976461743322650449685640191165870192475695338477726447426836926960611954994984136598317715405032694899536365827658917779643017517536637494031732446734766852359143659079208304378277089197720988579446594943562877715015191338911746788652713548152078645549416701834767745096495238201459952316470571802441290586246686095287332458070011253989139232297708611600193095180740153345887686627005751852803067850890038742045508454743351995590067133758675142491564022958797707502042585656409046262196441402933770497671427803822383846154737853551717554323735402887611150951752370442384347288710126531762947500137954860008983986217396146599109581081073475631724083048380200941642089727960998967760798597140267626868555013165682744277890148357671692310418607505393281902492164470288463944095925815500468115188697103670716331387328862612266972518758070109687318581423834997885779729971027125588387920411060758168278581428239657987597092345522115425662800991167780160304639158917787234780043247516931624176434899038358117311770014024303212067127756649196675184127939391648775932328637626693402378209753500721557235109705759025631313113235426478661590104281897242241919614527139228022399294849473529879121541968096565815921300523891174260797538956537403632436833267735944328570389342796249901541734704810749692851839632791674036601570440254640027233857055762187389875579854189653933983392376382715027684055287128723342847836958975721104624346118436822064124735316820434050069946764563962845367483431002753573292963776573834554710086590743239267716906310729254435761731540389018117017255664999422852247450649354554907559260565626623095007740749657514764343367585523976875409779655326827766179282764800355686487910259354231074861303252297516327497926003150462107002005335967022882900758027813394631171280859823374980773314597648900400764457042569896713674239774122127333330298434974608974177796885891539429676290033405159075309719965495844238585979673567775104597429118713827277385371139007229640842203127175113349504971353133790838013140221531183601693264188876300469108006216799895512063402151952930443886166700257121793482404828701083980050375963423478589976447612480151468628476201948027217068039871305507523811360880658287981795810575356807567120884207018953548472996626126791501307649154878277212742055657774906161898659129285834795770638471974068547385415758023034597677426669739482562075735715848160159248564443433625005169598587192354216814443142328214182695475042293728543336658033448514676103539662668539502408118889244433136210105470799670278135692903929838241944103078808719689398771556234551542383207436277714502646287428533236586275572474901745677908799001749671236472161860580993458498000061258843489957644690134457581526066051027635734743178142756610471776749658463087828052232380618259520160399337155154875467309119430289949258137542528491559341252169868002602906416651995128516695859760077025927395366328459989843991084037135727228479438651214350584389751323303063235956417213036736214616233327635531843677235829549752674074242454083906335155588722914607404048620576714851178927754905668119391702070742670438513788141421630837498371831416592925433827525313839913174183372265716898532806664565287082646331241238267613295535919482108732491540197193433023840622196227287385101055773900837197703050270603580801949547695035163273769455461974459814164146667942120345804013942674910016037243661661779654054537901936497382923063463301376208805270739998623221821794675014255943597622528665990794416306320058699457882540482874526647221096051028874864864001995727697600697901169865113800362063950320456854965357521732470887240895262488321707397810991200326574966621507193145599830857212417916603272178241257063801075699949141966365137835936673631326816397009350554390723832752061139096676180782825369550768638183926083899558000505779468753959411038537880146435175145415965539117987628076614126443741975172213403930848772287756529350102107818357497600847924565607211664241952565624700631765736424447415086500691321975739874287472248892281640979152415605555674975365454747998811311313267423581063613380483041508534764913933021956801811176746636987575336582269238047528084507134108375055009524598831874584911742858124093308140212733854156690585914015234053681250088076927247978820433142746301256350933441328741586735273574523634804068546407796128804086726765180817829665990254748100749339908867327563742189129101025962111424085996866452047792998593968287952506606585896930761665424086072351819502127979982230174927177016572791598884348322002595478654790971080025187789062818043121087521387974709115404909739634713633193292332508824053269381892660883556796695358659511580162125643516413766818598595059288104685709561278440507264134962476563037965449393297594032921305372412683113099607670280830507300831112049463795977343828877594435296170607056548884468688177428942093210546707294285561907609947454100164664388134058719717435214476195106877191038663835961040351413840953424316463256521266357917384014640635335657694123316386961236743141473819662723654513667454482540334620363356815899338300123294500221970084817223242258513033031292711996276382861616326884729185930032618942529413910489701216198029188815405329606748212231204811262827503723754438069598682223953678122204196983227248842567393105852362595360697392659586980753096175292821110255530856935917173301393624640266744941890990021820745750856865594943149891126166596215978342864525462649782140711575649134105989797257092996249341217573219306783899155453061507565768073061056026466035480830374946582285471629782802059801900493116789432292668746236646489627321114822522546781361990069561743811041486384807874369400094214485099231791367160599384243078436946454099512974236947604261582646624219307406642519776703629800675391563683232465040502924503677973130680872894055626091529220486979673934315759481125395113791226536082975890456402472338225287520529894480451537964784467993591333428168941016678022792867733569309740050434177804233864986654889171642950699197497386569511916524449861488559411434570204606510537509495353677525719617855332095589872910534735794836540887838793514951854518765757001464797292685403233508956577790135657717243986130354090410913750163498079445177311631036639022547606048413502470467623133614436357461020550427102843340465193671060032090885304149743114345361549228136393582459403615964449392904180112525177349167379667448590626536811201548441428200259849970592686449483011716713234172236331163134795348997152335857553807138462681062242604980735281236927425132749651276376471680585149767831781611410519170101886941350760208854024926041963180621130494934782743182731585871561494053092324000111702820080152460312315472599980571356902622612195218976735205802438563827499890291368953927681523050985772052504940033487275322137356782782310289638049766637453126760362123035880754650926788410874521681235243150468809202992070011274616311842402969419869916004041679298541117838426775619958043403936349245298124829807027755205690296904296541764708712447162905742145788271598326758540054735852895985540855185463392444380039074771834363294238222031664188742530666377092645745363013633195178915150466757167301680863442500419113570061263041039611468710786608223120475432614364052319053122021779209208151815750290714864519336227379462046587666857018503659694951075615272494321902800032932032805383543966698621823825792214728503773277770972126676060118305829810824940039496829053816615654753628351044687565575741055605298760924256288282847512127160352077554554466500174327871138330429937016952290105203739279954792201238439667223877852944473311464577245767417600157273133535316062215530542608543866626376060267535419281211609392260559303175971865395413333842758400522890688161498678037917942945544888363666547942372998916476808124329166922564001032081941125917397064808241127685221981235292173941123948218742953942503185953193268739437805835215158132850970465035340137274979931466735771312269793820711142227849991840934227563087505702909350175029486958790830876447544237281621441848319252732101673202990041099190303343698393034729014728257379554856288417100191553475377980793150850606177049791328551893526960598254963456202744259967634449024795459962677554708295755065936950598552667591589328186791459864617438048861260310741769647992181589504423635951853178413986030992224348422841252983871020993095776607525672529265149107428733379596189067366186392922810763956285436295438417467394237146235888968200984005408923308999332570571461072749069565049964261514994371347484045008298488872160976657127509747230665342394205045650322377521018339783503341691367629854512927403035914679857445195295469180789729910391754122939335924412730239668426770655917968903678208063587334728081207904847616164208025169615073161795719294486867401313429631695541406203204805038462371704217409371449967436586882659939880203069106192292545750173925403829608837547307083607094128154168991243037962004261807493599051319347996647959812406568477539124154971373232537954172583279412259043659753033098767418621226985655339071649380576778748621826392605787232655365330993456892098775134739951944641755075883080389675725135763418650949203310830679526845392888712371343068118851880897688604831689656228593662291287224621712070332488315910801696471942996380394573192103553688644860834262742941582872468677977696653578147157618122818294123500872198562704901182950233583482700507676610211720486644046136420338616198435465369533206351778053226446281422162042300210854900209516789372974284208303071140620435797970295741449400607862347240065875351084469481282956594772914933366681806585789381338483960022106404800905064125385219222843489570078984245086404811417641351735412116439918905512658345236966230529659208743797715020686510535263557858246119370479813801982755030585164167815136170031804564820042735237225862658979490523517081417788078834374261690377831322562859335119191832435604169193913325777854198642587491428837867135221226395989117783161904386263907301092210488512625133040512429977519472056571349175229067593107604442444087727138215166188242548919782491555281122086370773273275606949205935304129888200935694748423143897555036478870370462698564107651581798825367704892804410166218004023225468515204347569688539899271162947154232538339468650347533165973150233532323562632535708255036196619911708529670222856443844779121092493562717986605838286003192739260001376992929258688381787045321793482651623699542324712595579486760277043989064601320628174189037936440480852208959122684810412461995139522444240170811454825224416449836073207898637008346673663516573452140549325142193980160342562703789538312173231403328915858800040308233087947407130548121048465118427077011054306358528725874045046396979366043993544673373745404934648024577745561433857936521448294433751965612689137813584649156693732076592869989331176897588740251614263425478183343418102057660518685562639767705161369866141177908559320504646188981057990685728685044912423303963403214751865553828500897665307597764795399968443280420424272036362881741424966355769035329269417998271200117675434275185941998872133290683346387946130176938322484924170202353835341037960042634051274017975665107706877460917203360779528934474511161240844605952571847144630229149617144894468702946716205441678394962101805057562179443554278168987888242403992032135803849758935897283211969678482294367647532469917037149329115196787565108927017450965159484153951056569791790899351254639104487439930287328565826580939211857825831390042082117313021137009318373941718035819583621186112657373103902637389866072211778170834811452189475850583590075207725576238090003215529281195978367857714438262995746248196104248848564949190401835819981422525867904556310166279729952085413740833269288518619564780816359654112598396997985923946278422329107128180429017583477885395010994879343979944452829529925109387192988976030598186602078205398994562270610903632760223399456027923021748024248944699208159088965980613776835190120887911548497619096173419841190137793114518923145446658035154590195427016771887685410342242292284243227874723217510147042641997248106842980620185631578925425478244557679817475800052184716560868146330153921004157453892159372503196185729563690501673601976768229097946241815869865070723313066498204265898031170248262623250744806193319918914128488900845863296509171719840437886120698869395360005658019498375896001138412814435546947121524838377383132900140135497346806979472861537397218496550346595321482383499996431148156865405805108128300131847042811475254274377518979437565242088453938186594223736547851501374505646807367712180057016010840214626798153000298480559112173502571255028004895380607322871938346200345144121155231425137703200731100790759515215079194113459096516584489599772386516436948578689171487786568851486296768060023341409783818422641408181290778855229840770283359975027309065430292734995141577305371647859731238792088475630542580522086110597724749634324178452555108906232476248237008060678986183808475800137535887792381731343139656343162491482614130885352048868271565397325080753141960142102715888364437551065119919294777822396771316464741913016675564989695311613739931327044344204934678105577386881803144193883558257515310377190131084461948192327382536538174702968090793783235524931943607851813381760726903832863241085330979130069816120331623150131443724912207384490966666702223847146720849987648375500391226512821192042294664720992260049871579172277243892605299985793978659159347574651676397954576201689162097432063308767485856184540097086550788689757209796687335477441127430204545827107359783799624813352927574402674320091551659401100322545089853187844116981218326664845743916663428143650790839349355149111945351281126931846848815906816906744600896474154607997767962954506837763371674004779368147490687199009718788242877937361063408787383430695075752713444267770913893390421469866168381421770321276401258145037508803780964752123549871699276120783919385034871669025916237308202050872674854970746956838603527836373792376912887222283880866304460516307622919749964538591279918538264453785512957850532242969154444509905526280154588422981535822698668440092139741706486500551380999733797498495468061255074930162004855287671243497225742084496603236040418082166329866104542743635378247977081089040024759654806560670715683399949797223863996987030576577040195846903251107203910748229812747940164941184302979063157154521721019272217432409613236378943798752195848251115206607330188816441054190158622968246776766893900676272119108324986716703569237392332984971578893750962897879739457210572448075700929338240331154327238868287158799996397537719633870961343059999549628819891128350878675953412818749898405684478574741439920435771490574303601842781654559823401217916677454995251811781440807277130421979488801268203009948268517478240212354135449358778282283605251191875934465485912952264258644759828611276783688085521457974736232893521549181363975202579985545334193394670619515063477815069420806167932580536332571788079298268518925141825236375959177104935128184772119003218810154242357315854594538054843386999632959261186783997630398470183789941305192957286215372341126011992576007878358522917156777580689087617639346939063787051477583621178812188981294505060503549802233375579689263356977955297020743942365319067409045018756667191162828824144468473579543375725833594610700131090712301440509160536273846564634759535769273694934358245040189117794805916871438542560605703419229454717344165535446934947505975974881108667797909309910206108939698878591250043118198340583948077803668805098720749313248605791243142079230326567717944731930560453854598396905572145991369662700796331751451467151101718380553222366190112103445664424143173554849047283451379325066455485256386078898808363346388476846887179827126306522242801977148456983572286340077310356547152149697317816966755737769318917379841889635588670635658003494338943475137150542818682524663135362433634043198846747062950537837686135614885610839540571680802452948591217474582313387948587622647148927910190918532712061479747397742229847828134162306117107730426183479159341789627682007644146958964840549812373216070977460378678598608091267712054888268863113866993270567999255911413757015275300014703809308688757742323907702078307084987302470256675671374802936907223688195466670882055747211401424088093038718188997755966700245448907743180981427742254687949883032915368414171866982106642513485846876169557617311549727144235797389131466344702065771892192655074482594489246713866852654494703586187513009599920031840406464011049210368906277825584130237901727523558388905013296300056022355208433733701347197861708803416748193700619457504872418698828457207449368901013803000721658160452836582407875642497628141434360120102329921382085397938079284096296029274189710821474168481833840039552807595297447883363923454950479971531495901605103664328848578294259682836703323997261755631325035366954017690427439249311744101053933953725109286709143483085757652339913438397779740886296498219315908580902540334645002297086140833319798164452172437994715290843870973199787599038382552782613414883244154147884355170863000541041622940030892462344862758473352601704748619764346847255252762927675836094994213336638364842103273338137561869432693251854718740515891442528790474725097507384909712353319189571915288811194061656624048148794916219454749651682145393502412124179013187095575289492491334087353807912269162834708046447961973747006847571992637121509748556324249167958441728094275480323969672082247165908495998474298910971819588178170668711800135608607167892809663327306467600520075691195303867668660244880115596688387185271411855282874127664673334728918428803420654026760836446828844518749413486558869779589777677545674392268535575952619941326798628111472419352094384231584113043182649960136730369976738970267847558035274550987404784158869855296725277552448426751223075630422176053049963035605458667821383040141696459415854657138521586674966417006805404228859448589887649463508853366113563716087001403813341988135955208696713630391519003655163662121485536533998862456077173514046873643674447969797071851516439928162807759024457302037611694567556030041111712773074789659402385689176605058555844304469729533272140289187528135067703405285803596915994538971601345092714339282107852221646965730447179236163995495461135022655488349819295825770140934666101466532640337723133029987380925665736640853266232308962888138537623748760709697937846152827986452609266864627953163365895156782371565927412014386155205089039986992998271741992685677025343659370535803584602396329128220334539057170061787104509744546862992038210019705635994934298848519910603643170997660459323452116593968603661441305803761352999044361554841108988960921378014390896104439160927697153829708184227526313478113641601329253143878446743346474461925498115857673019836713634486829693064168793135133132326429931808320407791551146977563924733433724941097762083895070417878413628229141679241337563310085872855885402496606317885587738905277498243457683886499059514554493699278237078338559081281737454032780991102510792852036783616801909042710249056046314124838356918121210236423797138911438726684056052921555278915926024411788054918909642900433626383199581014564767565601887557473664498541728246533200745602071874061394177877707347224491501818416083571259666729512971349979699032251596974074465663582364716771387587671881645290126326747200861508532353220062984589893164652865995053419928961037382766919815918976911620327741887533587467709205226715264635234114130043604746610042750881359962727382068052376908112935090121460311592581814610496273405514899548265847451227236406905976596103228575084651200466419854379229427816487372806701712071320638018334903016211708822201394874375734619592848231718431239232525233054825629981849995412116880330213053958195132739634129382328316445942600537663135249991936262832174813905114444692830907938829952007638917664778601918035010242173961628599768626016831308470257077105889435284309877362854686987257654618244981555002374327880879328738608175519373950816716530320229711052694615360379002093333400217839835929400469825153623116254877696161388057844750577866346499394457952004075604404843053152770356097244920481545921720848881045437074483924585848773760157124189181646941294035550686472193903173093731699795882518089084501730237429075514548097218291791210199108946811001217330137735032304584327650293937433248665291281820028997877231507112880949922422625380180050972524339992313609517408896178123985377211523534381311235274522727967736913942126845505292191063245432819704194508109408422475680429549734750665519301859592207059934643025026465858197952181077580241278871786805953364782246030973068387383777527876668524743998589450916543199687093065513495242078461083933151197378983060848218342841366271791942806319104168112853421198564719844275190854323021146918767699143037138418853337402669700635723580055991621371055151373220474074407268415336201341142652359941717370926238266404377884363731225239800330526223779183289279477058041199334181757524559941328355867576355074747056304811329962683974129986495118686618713355026981091609230347022117231112305707100339393218655297519608394309947503309963257914506206910055163637713475180734166565767571351205426039007670453275602739522908561594874763512852193566682225649624266481304269324886570787678940530452266268486386068286233038299795105173692166318530769584389371125569584185991700478948068615677312836031330266369648138172213742048011099954267292532783287897596663941680218842394837690905671696696653920824936486640302504941982202532403191299775291121103670290012412129111929559312469603831648365598181029778247473497814150853275814080498434250520045077223195002546788994906051558526330912237434460351637440727387751231533135923861921029789794425781855129040150169374743945334246680757418413122759146087768189500240817657152894298852300333224519491150775022674501809418485972923080674931697018365243261872312578117792228361632798167909482511234389148206337833753074832341873505493315404912755145154926403435999434911221664360984672534270838496651988341923340589780917501881428435819857203097894992768071059908218874708907311544425561130618424981958893878677318505040935445097545606394559202704165148817744675811915056610116831464871072532846538337503386405639792225639317001719463284040031833291970854002607367005492578962338510994299433709069604469666584649283840791929713894356674268341524055404705375228192963240850388403580599982637582605466057859136782076730121769256534017009742995472152659111177858578122135062432073876728255134010572774588160461329431026344543522931932132474656749638884120562791380137709096629481316237302560362988340432179793435685125221157557429953478675238009761682349561767522672325451661506067201215506370448076222797620492389395470948651767056691084566467033206432285301155403492452483035436031036752514745978869735615708617194347557399170574027429406471892837305167957052792149156125351902900287403148859063055789772560433937884928859700849509260189981207321501099500495807735383704812223305471958869343207808245891581506271845353889896427172280199122895197252776878523921905035248539674801616282891460482608159111386569730781129677733824109291108295531700422467630093505505629801208110019003586088686980185117563191883536631414560156284491869079120283456509314101064050924259010154612619956925611487577175434786793716940719465401068012244934019920126190630518533798123645816660254322599355774876030129439818326221681337738699078827232597597496563680773589581900469823483498257087090104866546545639922534168615005512270415420392372609693025861709792856874919214758044665964763124911485637166663746079751214111412586951163138856291351328409821671989620775410004965561161497959151478491347796912758928194675507438753117328609981085812651874383791731547238842105205263970263110819861638139186601777751949847660501036634235726799388770807956378899671395799324089391058437593918729862177365335239123474724038798232573038450560868409060559969300814829087421962437212147205172504543158278268859018015606632982249355072185513537451216605731914160979510411442516151307764243604932554147505411660242867849572572166388029775845390569995592033742718989122553564899125095582820930469715906696932185235987267083580609719372686309329121314338707255325483077435835465545429073272314347661844505913694544397531509431244918465007079963930815107163235791668854844756736714275790370828138504959850389868231066411289730298750190217136758734098123278413018298786830061638210751758262689422766394435883640947421895988151624860444296006337948737330141617405216570393205615775896224069044821234297251250742562751341467087233811071810750888397150919171189723510140073846738604301362896104816570945459722732231675714415092380580316093614185035436181970276048880984894748942422296274322795742915861400595339320351342936236665941872298715800946196502778950671712499850956007153039220106401576394374184374509937353141030404481340584926156814811118378565937547350537175941286595521374081542687444975445195674810096954471600724437137153318844426158299427831585737497963100829354281091860097500378106494910115363772710446447032634682502266260740107459314430449215182144101762591211284215602673543944942629472357817623503469616038941999346657516619354244860172701960323656613040946075088669517222466654934745483841707843634619644755314120700405371766118647460145279895420071167656563989632451123115840535131525516067205694797431662863699369477951390990599749178035527408063334524567499162175486623316308932042451713514820226584870041789273222386206028278762197429260261480186964764561337364721800009642335242027315937987061170580981793704746553703234689240424550449879311366541592522353738667147412497187183934380911869583723231846052068744396321090154025520834033875310646411518776922441368004005514504994178045238734645805365802268604352234565916049508592320275708351131459218548851972730496556847105329524426530600491075061220488535347288469461991366184194857416723633840808859497752563399072925578497461741305354976204214119838879374672992285005531655851653321754223861803287527872610377575001968726110450351397671550803858852104604600582117950533996584290767572781806111934345442956850245313647617990329922204021712474735726190358745041383850427687265308502866533757294139417463121529047312002735480074579960153619884666821849650113482564118200491397262839643644354943660434123930918349553349344144784447407256602586748453302108638396635636177790284434738717628003426417634050947986117193910640420220121866766750302453506226613298944716806846008203052816519628250988318065880330209062199510068031678463742714413772126093069823340979396674571740219532806811522322380541185191372326765219741411382481467092223229963180282275747066878852606378825723329875694471954678286581847899010904468230498756129012232099801949942377437236261817098763629763136849613677753507542647913924482371240398510364750570367532556860101440168644087193874785046509484777380374224574121459322714172927800920453746822565721762976280764732535792133562215825941327392790479348298829663984075780789747836508266569294618951147029211249407322260531588373160955709543066020732857926704896013152447744285114594204030598256619643076920298065998231095996685857571068965854542701728442118303903011821153009570122965419498530645458967774688840152878932975352109221846486151611629011736931703551397047217569568180268117789679860512665336775722077404078622003542756031950201248182053066598528852826913305466655802472228548401071159099182260424556030286575723752220482133386974923059448167732789378093330111179787040664211939595486699553830003139773961346308347663283413956864245601260640724152168010793090557700839546122165871661114070181608270778019667564055774014646122317158479081694375666346785605262828440587137941526994202920647750556601455912638296281247565982707055371441387708220722133710304221753384239404007130722052418366567816512866221808436908155653018213274518034423000443047718468087454401363027280696176913307163037761323438901074384791243008799092720243264211012714546046471052086071694965950274866033150964991235713201680938420591971253898859841551668510184512050984086243338032870463653669360323019483827815206758272137065443568115926505946589986595066516375919670233259578661708102490495890155639654535428349310124660936727671521154328554692936015346674911147020203716489212566104875312529247935807437694132671474308040118659246682763911157556723778562555165627871791916029537722707577281676789098944995260666992796600541167065609741679489099179753443692969375740648440693235519016611486355268147102932998096346392206845282168033723890970395372860378473516675424796754765464404421195057059079206786389245142390410484782982123672455830765783719438374140753855448042466693278148753965274817210855832490861523422224518630256153718281996908550536477965656377501862719365979693660793743808967635475204847765328755674639631711572433194262564352678743476010546764980639866317082216313962891548979949157370859787297910915324074785569977940125986726415373975090410616540883265560763915568648630695891466503125541674524432933810790214983231150270967932255479017164475918685788878127961551623033152871648153232067469023667938921075802874433850102355799042162439349536346625845074992187653633519465212127839389535994132407572548849661015061386973183291472502950969074892043236386533899964359944405672062165817496841714775643082237612745688772263223121543662131477705409909682769710488286916290722663660074215126584569845472373637932451877073324011670867601740569926273248404974198751102500834023531418374334049970394436402212477195426149427651088009642620355783363362488420104501888222817215413403652192354124174511399468057722963163905190826798290247620999347849913163797382599829155945609324475295650540705636397440997270597792146707057583082626871829265096240092591330671681395125762081210700957921839238404624481750738081450038529680728895613844453693569698165004152929482706932985650907644077209900752609007075523971936362585986053461894396412914067431230791457179269553591437778864144220601016436256883577008251493378090144840328260409701832276137674063075770463936328413200356885598060560981563739321979646199024746552675252280383320697977127609181222591854976166599064324286725624363422612344256302823368423220210784508549521654355707080604004404845490053072975230354206381151769200972186454125556341411509500855873661604864434122099713944661430256334036801440164406922457894207765698262764950573159802100952421164298845254227282695262729916977496366266933172509306117328852994281620492137853477521647781948169853898282533931423928793807357427948563104193871449338088242226235669725846415511738045098841312747451228629953537081446850536103866908345676998269389710218535467341822197074746613467460170176636289984707746433969445830496789829343870575989539908627583060733906158796674528534329633884154590391821300294817060904600146099249150550002741567700391639006340991384141773450961059966811072905868012885072777589939215066122454955888101058042727251927321888586887044513441218523267474743181342625237261455893892211849133003325660716692288206677753563353604202232754654866211613331706409683628107184050838654147094601658763628086233324650193269182616337070699230956614923710044959909263777987591012713493414280981770539571823132049586973195057252865590730743375078073653337070792497138249771045285991481038712686649701065133848910422155058459136703782112666124307507600118593676111954877791419895431526951856245002451365216849036065534880961799393676385849131607722706833611566136948648862792859660905842863458804218574400641643291594489000778914894340913616613500300876474130404889738483954793309383128070517095880219936730461752425584372129793468524836489161407171403998409911370188306051662720260968575013583554183378241473486691546987002166727651221001043569172753459846207709302762893468949477829757006785228915489315802214416652523365497797384237868642376712663244770750396910057463850087064424001607779155411300364486268574034531622983350543996104018969254578117731802847176660880321464550970093229241741740997749618187776059454853343390689670736140555016538653284466687076748674718139812183546527469799709377882065800622409583431960260384168893661758393327166929734992746710830044584539020391490806651688617432208463937620186932508636734229778524140681883901993243302510321560043843111246968769816028997805919194875896999763976518660776186003110342908807428020022272911312722381354284527157354558238420455307718780172138992605664805648494998767137834119756039353255781217998359922544486875662502844920442527543030979148235383160872346989426874165549014075227465162533376542903810790304461045986241781338586154553934719985116737378190359414837114232145193553371217386864541124314476896896311315115075285075653206706900221979362091790049992570645926140200876297824880889230341980478808548748530845202600483542521641996725820374176133435866095490579028993782086756621314532809792333284212627014766408805635010201086343958039660409178031256286862316738521333151927953679371889043484541671299319509565157407535760901448401015957788417611236788268333282047548344150466659474673628784108437535812924736408856720378070235036255791791735574307551742209224404277142240353505817619312613117741108484973034608709167702195171475072488257192993526199888559391068142368088845096214084458165362637800429866358250039513296089031132003641567216844293981325311883707175993947625590141231069788640353219812000609578565975393814054536448054642325425102890753416069220609099868036494289282558211742910948754879890385157188642184202600409767356423316522208810631661504156413275961928741754621414665281356908199125520314373327850204671821019667182329277483445444367132497781037670466610957604944783819265549052261556230565091299429970584163954291124519608372343458724591532257249124995200548803585818236456113254601741386654582622070313974344211391806459063150284488108015341677798662315029660863771346222353138207269865293446103788696846076949473953315006662190339792734952097142835007122154979872518508767573981227190978804647910498911648591902952280183346232622557549137588849819060152463402638255928699306685271448544984788161788030266104731411338231312786858782461186619573522155778417410086383791350946870760789314738408925891959568352764765154451129072108907263239627965709147288602213489500249363585111355523172874142873940262077402789967596598339140433023266192907787474736757365963561044975422896206949291896795033250954762028442272480208717290138262905776729340392707158396096002321184091747201541510627812584101186018048768467439284175625450726753024047098000992606628534550555548799249596067710944612298323113698123032320814417712987130700011908727117410051414496797262321736828101480481539849406812650232331382576995590010824421230904768379318790923044243418147797797088764029651455280956845757344630271644863940127812662566483467773075461685035791545142182195927644554949518289311972971148915871043702391613615237849805001249734559154399403982257567229367685965335315395483111854807773183639135637713200364653753359492690321532701358704739384728469719617280422377524545621468524433252818182095624693586352116982526716854803129055024805484750693703990971438495172750145451049475229345649359205304405343866874400648915962717899694714395344459495139952865405925089141363099078483487490031809450369613758320815783729171783172054781984017153965388750404909190502693449034193415891385660072429586871444147141532599079816549578929118554641177033555516062384662079592585811688297376576288214135258448264760791293752631662214826633137963207373388714224808903254942106404648423764038897468266569623483202249328876876277023331825088647931592713240744133711487294234186278380456090377360876530813586004699469796720918695168347534164807790724594048401005002687593898123608692369545585665458779700442327958243795658465734555885625690224279941154014216490961366161368897099320554984204289150808226387491755187374141742104826122827731283647733661059151712400757027675972835973037963479353756267996945289044019108586157486635030019578117795883528542553791035505586520184680482933475939075068873379818129022603153815707511501990362372404383532877238502893915214133498785053630570194340973045233635210463302750570604740663589060841386419431109632095447696819860775957637426851249076453419722158963307859165962835945126571015231636723875927529406700536165636893440492937842660828870129196983366182731989908149823158490685145199144814300501716733425664483351575831873430566113720602437590585287791558052772950003228578138803573502859899007612235308999034653487313620376096727170452804761686765816592596454357654791877393836240096462156211446760479314898050644401601090398815159919036285508544282430734246417238190378912582903851675244358938722427643260968268516619516520290838043041193651339908609639335928141661846419481220040752253201665961021409800307568812018704146821758611252959536814414179299970201927549916328456549340714958166618472714918307953649193481447095761133077633247432434310267257325485728238968688739133397261716489516389699168714107786077302173045278947761620787562846450837219728226320288892898200697470126303604652782934799979908333850404518028029312996511749617109824450732339828937423501550877448483139539755821755942867338676867921765914066197222882927862098373217785108787146589648486079290197441348187177874603105937842594767057973908225331877295324382491290174686494938231416012156108395324203287780512388814787383052036581140421282191831872065411590377143255280003547432371001890932291514293313238189074951751226533041837571631131839469973146069007089501113480802855254323510065612503178313742065553527619808600660079486074781685127673053035565475244089760032199465563184055761870011032411665187744552266106830233640123836101013090614271161219177770091473136332614210459002529779181783500097742480480858023375176816680132782434390325073109463503595700766113659863046500136384420948479614210209628911367668311343592847818883112710905825144179385279536153016116316297534347118762181520465837005635689206658686512882149483837541040733091982111173080737511228408877945753115640169686769215766855888647849651979629950556307022156196411055285951321073523851100613660187611279711706718130353880836475966617832460552716065822428982938750218305527630101577694094365982269332050787484405588728290784226638152092652596125477373186403263648036224489089564775342202126818646601198235784698631927081678436033748505490028149188310796794521816074736737610290939480970774526779525577258756100054243096295052112347382461356090215065315017492606849351585074442796319180398535170404392611682241144373041759544647835564375541258757739942065881888399903529481627359071445677510958818378571891406246803881413733475189461082861975984582279834985542804237827006468112842990221887343814686051463566910618840015280160899058991811636040861911078801704578706033121115892291842873814678685511010855795141482798362782713626584222080546685511840163635576573753510030384323534883573037643621527035939791579936515677576659743566544016859827521254634105276225741627505274227576639265455162154461336708007422623294637265357757966356648119444018576890594402878886337196532820531681279585607400887548009464174453302811990066424889646185222686144580738555666040097292079630182853601699757628706319908986393588897772789841087961028885638054289613402858452638268606804523162779987157485599114603055569633609230313195109528624737836229593024492694959092059447462601134751389179615977533448354843994435159939345211066238694949341948087458973105249559635005243000224044090879255309700020703690855963026910689947430139232293929143048239439041744883735257400922564438048809138868136130086986504127060344587227908832413533461943591359665194693617427853189303441824641737932792386692398977895779771941149759507135494255169103668214571128810725177817352666311664242154028283817352519416463813970834803903111003037285287848453118553450537614742960435724291168439379955976641907822590789203060370822945538546885778796067128973701053240445264723487867264339986053850265279445546036001222907556388591405627494034117702462258543236734309430475727897579384063016978338828956143620082137514781239535362017095360954339505984864786680718249383876981085247105822540710315108104791215412505099068613738815288934512354311002598472475211914313580176172052107682561709033161405340971973800549538014793083529285525647812454329044623917928907426925439644915252027811410308376086583364584516837022587694049027371777801917164619929284885214615561447434427099303496230663263843694599215994780094091979733177102915354526757359987421146310373351659964741760286204429183131747120947099602658597474740088979612930267440092179486456127927030999988968985135451245660880029905984807391501099234868506224929551362593783193877003503475789602452715243240373295703054329820141944417083754975027491964328060220458990551991120708508254257193058728622928045585335972695234915383999859682368638498781183167401970459208851933784922394602967791828858855705434006099807683044531738740698217217847125389829794124227053247510332714966774741499404460629904628647077510266088776480942055817436497175628435460820225927977353368321955144740452263514572832171808536086738249587075747196864373715780522509152525843506100407805706117354362342480553084983972110380968965320332463486843758535340679818764642805742043213710857055233453460646056296574479932572847346022957993192045150746413379704105641681840135642657423226161891065294532212247849262073646488581790638302186505025587539856883267532698889655744283894882077227553252816504194388814508268123336476100393286839793444407076467864425976042797678870141456953887346382008943141268435356682437300835590170632530390663795043375277067168044932360287772892390675970820797931022799990153743098222657105854441841150785004750653968244696291603957736030739926475324791688352299546863579831468142947282653539548084458439012854211386974853347555594175759288987713229489014844843407230465044705936667562162791008994294153776975397034009133217107200225527861125157219899314689825020537173366232703354510199226640315908221636248979828695836670433459865768845099026477960799153791057130620886852101421662819948826612835403188438210135715005933152099954487781633846020593865838844825888262855481561132355756180833731589662331681374570143100136073187192412577415899394687688025142558595570945075788909832275916408243251141854973368277013807563499023809405435615182050541927048042186393954483419942719400156858961676902579652083152475448469731990505950766445555668638281377010120128844264207177514323888851652111036325260356008616525542057183402372383574788504469607140973279772986505630382758748131967872479484910798452976529850058166386461553333314694191600204855810464013095032107917281579964856891500155295766384514532347886202038769740603419610516504150451737087367392721843202804898744679544747402376653721137400089678221039441935183110230712234008447365800475650874250808421886152989987636264955308337153542619380328829727195683700966338017406025057280257632413963390556023986347949265736570078324424376425952156774742984479092506786977956687966900486691942995491288930067580641470371657144232974792532033374921186550129751015529836126064207023335620186122663146735061260556635466718557762505154954877045271848480589310726512255130655003091172866926145516703210839271952063934560336202702137118579663952832308648173613129988254784532572120639952792185093101190088921805974768273189800770390516212784123002998010144757679019079554658084507513489575932675825497436308749621210204764306598095248464736743762843608685887336407238407840270476037406009238390342120354318006862423095059740931912052287292499697376101324198171654439559811866561642666700101204588276232482528794497701310933791636889599607705225487811995833108276416110282796208979844792318011336392378454640308851715475213436213099289457191634924382485861290044808057127140204582438343310949459519751147795200990261169409810263145135626619771956899364492610839005650356108998927707182852840775386622595806926507409503121276621182551777914122738882768900286115139705656511424107067930136541795871076191781430062461238364035616199958553813336849999645561040035359499290181187337537048672225280304925436197167049138108268604893828628778862860355593064850307748569587800820915017063207123472746045450769121111229660769329524101807889335942484814267725901784260681694346181050485708092981340143139066493405931275705846274286790553457652891638193514767447816586710093837296195303880939746132407417923110179036007575364947144308849097344398442443982876846722957772237867655141623981688013584047652622187780046177172427708761075264841183771271910306902769598486221485063026314613871294770256133013700102770219774847354697938184761439945884850521023257491754981232456327176896107460260753399821282711220962400413169028704220938250954779459983482543979260909426443150909607040070122481040639792079284723558379051104610155114972445824022840803893894691518567380337059998242550533243108194732238945078795122446140268483552705446305063513653084835574716152237210943071884393208429391659733597830773435907273301119872501423714896136589831464380991750491940430184966812124232242154284397996236954130990085032251513707364743760161035813307140827997030949093974449569976163941455011172616278701142294819182596116922239924599223851125662977669528685397378754942479558899148363473155964593179235718152054673851187931817794094726612252837821122678733520686798792891600753303806154342219898415054371198884220547502440266463852993306849301618857703383916997886821003870031460788463743605547719551489116396066826172197274666273035815781571471107226115356563976557237545785453372366459962995073792101142006974202938878998661888428613731028908756028369364551888922371706152228098642052557705368890849481620053027655641625249174415944278375732423304636417409363188498171841562202240626670437603775978294818883199916771295916658614906743258083573730304880044817923630343323805574764424271963446636973459553238589483539314357679675166008797524418010518447041835985407653472216364098743682588981800527580106273018189589531112653488378985934243077108743285710150042056435922404476030986645875616257151184869603854129664113117998669222289490469549049921469977791246652978233201589063893121945250205178565823305468742935491644929403139597710255056002580396456238509512396423445888698842094145945029531578124403374296522976023591735059805493750788593008450051000175406968481519929306544895245257756344369045458858514057470589218503786412200648801645416402595360770662399882676286017333894179347160338051987106206387536809211246430872817297835629801813797454752330668550045931832121538788684053438381793740435363011365358363404093094376441824207204479816887774804941235257683082073763451126360419692499392568722756745905076260408032263132962141860128696903381382987530182556599699038208089282931880438461045254193440994134862060017005152490061078788168191213294222125241486053917943998417152239088220377133138021686260022462174662215890138031563871788469730259573170049182824638280630415926773766285359320768466554573272439606958818190076951043077994144798876913318424856280219109762336836736789653926039961789366817351225329379588512614582682308560440961721526077289688112229436091654945402831224456545777034713945582235281970873826675476298116668437692982108710906019914034569383433462300551819549422411711233747517854037173873458870937287958572227514186553152831571098433508171808899711821433775884669553536942319206942449661329896034972180572639253850333778965048700026676382540108466345181553182928940665445145899498955434680482908128105717998775086194987249639517839558928526081755911764742525091044099561042747592012536518618746646194334112865984473094709784523394217975535586716523309960364090803372795155584569546840851334159830551659151560657251740496159985626327877621528438587052454776310160803233745802201464768958213478612885139789171784857610793734264572337776476647085341814408384758139854202005028393354979257488694021053322973022119392407198232682269048741661108798097936505704409004016211527286958145152236880290093217025768842134924207863524465956289535660333992465328269390684698197165508476950182642773158807910360026985486757590080431355670133810873289125937608913980891590742032362288202275257342298638439440006174904864875360597640722106280344022285645861383054749760529326899456609810462588294073564754117073271518969967231236892755530962744561862323915431372818200597396428963701859144725126104898240697288627764429198814235430041005127837729548118736539530582798808672337410352062901038650830706114002788767569658389530365189035595819462698589608068380879240174949082466532939546534052359638459201210294700961020929865119610146893831244648639643460134051405219537962954451889736385746785176084444547625755492811886841735360448304562350505209564203747470969108861458941713409357117758207404716743404147017219529194135138585195185245385928449642345074986279566009890716466320396608276967980261479953468292054296742291430198560311081397366735563207012133389794071117660378828884442082976754142298284903412379522200265025902516694469579012464058885784607323743892675604604555363962426414687501776221828337002422050307985724119836505868981682886963561041012546688421399555791836535322306017398420300212483007979706985375838975055124402705779415797527360886336886206714009680961154870001287794033697488889361555390522601648437871392640975697645169401206339997002459367842961662369985545512136585479393287491576237298508927543564554983883263647400748591170796203237134995066124711226228083805784539240334363520157039214859033202248622617645970152087942971464391667118678880493876082333646365788797960139419199899321773979935235050118687049481170181460161935938795311156656478783644991582100116350843013006887017110998684129017165592546821344527076152617044467835500549455611594492685390585701677904250272860129557507047118045488788665767133619046469490996238762561339687937764813607306681247841709564971391786977303169286527066755536098259796634478972807375152748025345892988738154901246248962584478227468340573200322581064549626855470057469657228516902049529467543952762835410884060243414510030047738226553026171177667464542704454276745516419074873011154792839618679134828462547881993713797761667162906225022551098188050906012119818559219343632205448192182551499551859802335886080537056611109907245758923859399411598856887102895678343731074723105611311143329342484633599943050782971986009282660688722633053630331613445803524396719781402406474331053804784369746822700328044576661919012596628610592064459485840410663737014858444216015929624309437007234424598747295721349354850051125998221422746489486556926196314436643643773203929763869818857946138518412020883529550760157538615546386318023908681758647675724422931241199222384597827280076843741198567591570911531067576110884094369886843537457718965834278817328267085739883862023359879781807840614528890589674367970301098279479262800047534893442902044572636610751144237173195456343662980390901759082419142128139084055025574235762872422313472551981641494602604275728056883313353322576135962326710637823699900310030814540149295390704504069325172467340545618050500688207928117515624235447041639826216818543882998826776114278059221977000710622591776802248146114308357001031330124177784920346721450091239263386462483867600050729626552029377467653639085089202550430385005820737126372059621790500948653045087705524933855860618386641936477114523973955881664296383288690575646256613280774586465026290591193496567580025112208316699525670109359862940832317573749665597833667716489953832668375401486647842978097722394188963773937211891875326687291398190855989732029410848565475616730836841132044698215121476987488034444093619103627673882667815632866516161093625750534636076547596245954754145690374618745127585600654151265493332544533364171159889643451019911848829352898365899797271372784000450639303675235879984779628146947815954982161340835442225904857078389621093692276196567612664161598296128593885852158466012093464190258022663961237441406230370042506097868156900739079950930872643156578905442579994367033369079502495435890613636808986470585108611498672396922331899804326000905077345879382345922875376096535263680874631697157398263494735063775544599668048461577634426078367625344854000510145808766986944722736304705120940013366735020964328345848627925426019464074630445849533787122067294143923090854245476422812689874165336264183752116882099681154970518988065789148420462094563725179661116658811496135461139745566384426767608028661414856116606639691708057481381115674909842607105179995368005620801933474662630674135297188621846811230247788142082781042408494555869474557299244290385597514292187090201685003230707915794022867962510643713032112403161857856541713148241894780787153699501762409329889775231573867009956625284037759749158017908091548545754478913379359852835955335709843812631166410238710846531387476308573215673118593558863893516938617581626091940486080158832874396076645456444698538045270486683671557630365650351329838966479938716899566548801261392678646796796616563446991123312403969079567355992433924543352515397865580600980981082160523050712625083418242963965247241652108583119732826470327146963719809298966105328461697220471517503083279080578527960859870903980508656022369781516498712570691818235621877103582538463018745129400343586379245126313042054973274477204887548838929458553872520720381036260511655209801868944342533367084747859344147929641389388523126580639097328111852266689877549073097559897287318594975510245637580977161561872755551559289747293629880776371504145911322292959381845156708760662800292292559640104185601906795663366628307802602339304142971078169095741464731020014267957135934971109620737076426372991804381994751586137558087264101034554286840805257645575090017005693212548909008300087596501742432005662744361761572885498951472989086424313702938942256697474555018667875399257534848416668762530995515050580357546170488983257071391076150870509014464937122566979361780154401682999796645548015121489059214934761687160926595573417125476813439062330675372917751462596982603007545109946257179103563030727287987953489278347135182377169569084322618602947186010667355355962461084637419168387445868726812725519777154137884581683621903487339396026683599618144385071453284205388703137585092692118655666585637777036333116276310276727973140540892121707290922920857169742197963843279729716430348669324484957480645309253297481068478800743097157585456190334324864755358770186891751977235812099439745603538969131062996404482395935913743437824009631869687693393288912874906923967660764550220627411438791458427728090394798351150725857463888641518288974938740989378470030640638826791111515575797812205765125457431618607155516304741252859277026820479854830847987936034765814120992499501953272943178899957629578593020591211906330851384040852005480169672899546894094743048134637053188747362805453574147894527313202205120983129533909578460687585737332712834349372883426739082836040955069030281872440896629543349317050880713611760971550871637211588755944569919060835140892451389435254000120744773713456253940107882447331708082652500488814908165043577044871770350901498603412280671508477126104565574060326613317899929899666506305059306573054145595564473864070314226718690319238190253437214057964950190014620937955124357477544131761102311543518873257873768912015599173058296680409982752473342669155702408615036336327680153399242971076655047460686870551911892310350700663352096889028614796502921086152066814997094368872327132152474444695536698939303977196452844933185932075076188369195463469913928162319828089999973631422864632383194461756397171261997077873952763779118060196020568038060921625219157203036400581521848575544290812431308827742019178462222183175852899992889959479179122527490802115791094561796468385045895187017754154353317877733484108505913273028879381076642157338854145720937443575953460516477705147039636016009783648397575087375997007780057895461507212551122281664275375807402855162437018193789763361144280388189309527159720544930595840730097599813373481596317434544964448629070864941618127665763001263249513459662373006419644192229973859826769471610124639622749280338706259700782138906717586147404747944347420409104904711357144514526715276074783277413134724268107072848621719196711314221984100248472643867096770300678838292857633307534448195119593773135506418128175367505523809081018722746431313642667668200256766332897077627939726120164326208422016899253765628903926678788061927252614406594258306224065308565541019028178900157549464998478439076231375128091878993299416222804364753186887543492908646214039381265058048077210058078358550781506668869044010851597782750002359214139550094949677508338849018614325227103883063255223430644359654606861674989198147905163192581895578905436399635186474917421944835112635016765982059212613938924060548016344612745272633957896449843528763398924812307235026500993563136088271405344252149735087594864872934508980190696556014350338380220282498717131801206096456530296313214963341666820737930481785395377106333047889429258946241267952657273254797730310613432232623844343293467928858390440049452713756842552406417837675373475449649154984717319764544558612654873242870095719139420442916187314192768631666830733593500836497981043260150391013219412916762130286550436956380066545063901018177061183116861399559755816976525161737133657888024955725772208989943247465800882597915754937252594570818090795047569087439787282127556046435295580977350885713608623582434039708370245880359647457679878590144674433738957126136169420346427954992931477720134700879152256016487350474440012901108144396125536168957768085152094581037294954025764643696047632964656250854284779991067880895662174380684044473765518994620365445419018011748039778166369203067451530028900583941936201443175906523055584262414651993579775053001878201826230448716821622414810404854148124878680757040964553210672614028747140257270473371051389462497216130430640779778971809085318377647095256618992742252414086143381429447534019455874418973086439222115260158550152090886834235042951932687384653142711648073568010006238188705014433722608239716845390003319285980951709147828816482289347564584602150884157489004103649400751873638488816990306274384578713483712812586545982904801188054110849714045567279846911411953730885850684290865840265493118107111554835074918834449043134556526885373392096163443490258976322323199595604367418001171817863575921973823546103992586711819935401455684596701173598264717343842847031823998707035794064008420668295600943335721119970610877201409965463173959613951281577003483588773825728947599392477101877417631784937222464262388002404433225580091233373252417855393734635131808685760374108640231239813035278929074203341432939325476204826911988117541647628260686307367564439618673491637260024783709670953256335926138635542654269792255488550146299963918303764758726988368275257885891899262387767892388939070103242753220409150906189711272436235802846426957755635436092882122167682219491106406531298291557119443838763687486693016198094228464466078341502389866936508595418885946512471599285011604136598108011935706826183807384860499513936333423587885290578165724940452741862695499436218353646100838432711602851574756161008469122754291893780834959621030452386324011555443501069977920055864208307588602021315927955470806448577192880916130829044709715911472390141955426131493148529661477630257994586333611544805745524668324963005169911117551812911419436434595887307564470931785735812555479017051559680090993516997755335475663472206950081538655489033628631005665127944374939459714147068483980858633925620644068952844147740216992373139894685453221183410643648517181010203533040027129447189991961876598197359330104117492392076481757080153622991005784309623223781087950783117640534468355056286776885265932098563369171967499098712633869688601557790519359765205473826176176752250453700369975874366710421485775891212116863440894219284077070081103519641746021443316787276816945446175383643360478922411661944788263160530505199397206260213265926951884396665226399468977746242488746394061911306444309747742974068666286502698371061003400620788736226810711718299413025180110042553963077253725432025802419514684207757375954902747496351337906504687376252944884905468945234595164449137841341436481291206797569828390535918015592214139434255167671162642381558225778354252435775101901122174929367291315159569774646549550705847600755359995136155006580450470108264386588908273892279555090068628821384858255398046313599988404152789639178948543350469707494005581584220824533741674056792022214728328589757628115288712071866846862536584800275621257660732500554360662000384368567058098259403533894668542724178046919541953190998161626798622218537491268123498718671205567311816262485575788404619080021238791405838134963752977039604322925642346891374805781810859573096938323497547560813821632104859890351466861213730190235620972355287847444961297851285424968307045062882337997664414218847741900991391136210671334927162460991813622892723467934006933801514408866777540737111158215304040703339080678491081733974935313995288548001584806937208426553717451666735023287958020102614204115859688301303710531022034486093365722278373254526133882045905790257274597924185179469802647447358427348776474670636835080727986826228558349476369024724478655204389942133560306016366561786443959426914235699899528980473099743529988012725177421397207313098476867259099749889707762493199597900735188504445860321243030697043690976423656280415361362905448381957429323595858953729442272375297425138635587581205001275475484542863840796316103429943012424127265890268418653293415143431435252061414357501750593517599690744230606546758881176861439246536012916616225378536652189794807916320330460845549836554257984994477076294616321820802032253573942711942539005850836753419387914716879572778663379535903634635436190069655976857365869436198438947608569468117313041570730179670137567988838424693034932784031507395316486880495183456575032253413679731877717170891493482911309698305588516536916343915497890286303718891612182351376511067056541534185907222361311259645418826327797252348693624726241773301910961306795099819258422294720406355274676824307539431719949755197083843074569083163037423792056776083891404534269452837397643491924262060968220065871423729335978477353314792838490990968104447720791000930090411874870276040104034191725241336783673334136131539772589000075389692301252296409277469734631074129987906787586390947355594326495647848099078788338233331265250029535499414093806557477615778482127773701813434029864983660483703240541739580461293863031477099795871213260095388687419533945307150786943065437327699180980515187310199516952999686646235816042801756779652699886998888640149532054592808028971956429302489988303458859110776715329843922943320507915710641858753362354098533428958384849110766462902000406997618174712993645532597013813250602308313075664871758045332150336065769099039308807087723135999937655250885372511792302987980447440868209516115565044153548780863729716637597359248656268721466480506602130773111183809795247693524142654435195103008972768565337772818532731731357549569528968232945360397826992739527020248136211815920640454892096703788156104165318813350989440002848115425066084453416945520028773786424513668851201616707766530316246960368131776246307970859971473228538659629287642813259530877578423307235936131720259199386603334878901304788566323294381496974811001760663346802247237402811266214103639695353583405653892180048817519723247213684933416093668593203023643753562977794190536674424104057865747995596764988765248021796224814395982200454249515868338136345402256465386846194698574167083654776717368683116256167377022094456274057163496515563477720678940427590474467242600844188813602138276925486359816639899813526794401458476435156240422440203658983301574955332577670845095316997887457333773518928860591535218048142682245640596462702335091838583909774825159858733478127711861978473492052273852467947620069850306261187682806817698568062607758162931156008043734325932042937253330878611389057120008226807599516312197052135754330295127144313304553302842885723306563490303081162496085132210180282018706492603737894413153640220018537887677205424424077478575344586761250363526571735843096986120608421248736479722850283150684287669102666676330105016941915698452360067786047639954752797626160156175521460634341067211417340960675765263817063952827558031311860637299062958449930441831485349713478546771659283790058016012325421060395368863220414005943110043876313219163615425821770775288639857358377380924040764553452251897582508592394724908157340869670105881922084822246852567430129575252586989502981647979811753832666393621664727890754370518418359475509666947968009658887624344055295329260167760109097504823145708911825148000858027775999258721830188445019912110639539027036047816233169612514225834391508482455612255440839640410397853738107887349872303923076703576129734213600145230726306991261499167661627740344603376456023309379867070247398037013821173152048331795852896934281861995376038985250821507601023340106032588959597552929285825663230496514523978390016762192750812166976207359456183108689834275140828375780952321940747913933089000095880184211392350239013877609807210071950638502580857026216429748960559976845761027645376229889621328164414695273977080317646056290843762347999267666548936686958619469459444612761596074406291930968960656742474026335857461075462839748231162347152013516710484606404094891187234967898712496237845225700530385716695131821527969760788225359154973571585652684946545284936293418783936283320147611985582315502793554817542846698445973634277194471803634752194192691317069644010765588692866255477554417893606368635358686426071253584535367886265901511532683740124821460020608818391136875332971219829428848662921501357416372885576756082511561708162051955585258760230749984997258227701807145102488462733502676407687907832183775108360712765485920554395129315835393028581587318129041489378144646439080199128599248697099191982672591418197386219779653111275643048032464591718642904425164301671994351843234049337056647290654863261866400980190382401914263701696880412929980726782430005516661074602635008497551122669822401712274062681862921635223709336122199020026055604823267928277526275459073272534364303090246243951795826440210647269691373018385150119920277972731399400277507629615278073994215557769522257149102518901142818806817169397329361497730556920088040291658926703927269804580113062918343851056580451046328560642038464447437305588906755646893824060817194283984246312032689592875973151152737104698870547104754847414299753555782322661531813663498446026844799371719150961461209087446501323618984653909504287511008737300136298006023174069596822891399374121068366980008294174393639530036548303565837470063875535473703799193973857733051064382469264023037136021241357290090589256807021867690213679755498561520857920289497541202696130051268598156671844640331319834323174785582332901320594753904100913617676730088548379310671041603646595618077203486459794720102349087129996173870231631254164849958991468058920407790011656528082632900685878919251163823350370319700514700654524832992908706869835760783375776892090612765800575800372352891789686857766025021025770673802601632774396798991041017646082120238374326375005563483272516763905758978561135955501577484613221889867578780596797121162846338290119831560341318963395303715688116009715310207590998119583287495836097876241612090470729041291686283852858942358727348227674997697263425409566136552036250729279624068579652848332324622063047191827302029402964330319939596384781881689801469795578589421238399340922098774770717363121492241600521204662432027968564516294650697839395071015737040041394241219136707527285714519901519306692968814809388101819533669982268425471262018717558374769365154715324226496921669953711823538503045420517040612550727186816916928303667620238968517410437406618323569464010756400156875173485512977889335820606884521249111624134333125953563485554940292318303396737953491456042612273898124913549568784079359924601642076085264048212498442479253509671507790590263344305414801505457546976476700732787051630033345769236807893361321722733357768675607611869654518047471005574026617502836713445499036925454621946407363886404777652567196795210866368790950678861204786366219327818177725978123499889123127480703037217462485874015513426358857202791054192093610463238993989529874424021619119873912840903779089541047273770299840039243009751570467332942011791045985288093596447824050975431090007418156917297792689462069773935776038590549723484728374176098487633646068542198929166820632961517079983743019622407401887267176531562326242746349989493474215374076960820710925336462789767914074789730524035717062823393617023075725458505030664629269313360906954442063292893184318538829151233153489746090554413854168658886118194614565421942646514039019972972390954337456215953519354885508318010911919282152385072165739324324658897693709465201951057792588389247518212843326509570751959976600954728717867643715225344198371918815083826652049922447392578050937815117536725916737218661653354561820975063569049305799763631768603389497333447421388710140684130836573588375233733954349330045320484483781504760856854495493328904241191001226425225260165126182300289590835380401706201957145977404143528167946117355951151555347312648897709997711429042973644686067891875528950630841659051382032855479547891863997247673914527390288308203330317446715839988548445800602406446764155263726710598100474041757941321884939337860498739495382145484819480617839320565146076154325046855640707484695520248071891995593230090870855021926879715837338371905237711290536502234785939935559080188113531008693951971561391037649445298350557924302841295545806558640569403984852241326478082829194562758011047865390397713798632583211821793897976151771140567275761794682691500380978482484693711552175073836196017690381112039826809459341411677207547140982733221050009568176248677016694779579577950787644961317021521737724594693514153274131272987248360114968596753535116737434600031950559353419752608531765298263844953730977903567729951442698566516990818653219037635136952015828070432694667977693593505600881964747391060687597363052933707179706512513380421557099967903733603177442392507678714012445198723856392025176757289586629783050174965611430016121307758468102054009879971891631053828066591143250309449526318899532047469281033378076852112487701911818667257754589001973440555655606662161737770311880310250412287673150538608960783536763564974822744822659105165574494232123752229589185038703232975098788067196776215596857112487342007221997710255758037681205656552080490459758562436768004647155060751105611871611205205668648931313577524201505075348350430342138318399145151926361111674802839718426654148114071429311131230180758143648357256624621775178263721323908142484064217020779514501737985914176545044034249335402245856060877229084505069701711849000764283878836435658869074147948258666385654531653047922003702329337470434376133636876990866741944449737100746570257200510974996446632816560102800247136355770113641078219825888716620342759250803456034033804766976879306208748523422880394709709732167707513244695386432231036650431832712209473335343009982562210915557924446207035999629483564756633122135775971735430312848208350516670082483913323170174466383067641542591056060854136213121616828831607469598307703780117271818861829741579364318396179750064011954494295042364162251974035748650077551571703396669399014807294318451712912229955153616827462837445425469045623540534365351637095084308031545138120586583301615103799229954364030152099438993252763362624659132874934241894634637236272984439839878771121622674399385076080090449458989977938694433114611432503884660382851222617190033664597471462114191880993730592025927599436850372644462002671902364316714697440753317522425625264804144739146092088057364685666426696541018814688085734545759881715603539476464701235957346189311910403020413301707665975272070161443794486374856473641142236635078992932482810111228599709317699010433960152279876708083563384915780598658148178950571676062270775400783992768272363197823873391679039044184085498271113101809012353485453101881060784354963082243739711171591032761293843009631767910057396358430657458206625802115108059687893546668749655608503323011932436417593675987472604508813088259590623570215681872564261345450433990960722410543798955990004384600904133407991675120418958124658370326607823934137056578732914136482005171629788282836501262227696220209020758456696393075276242469223046068601353127531723686442341410063321078131143974147888644835392065733468766230674757635407235821191449487361425590184712966940843514038036460303555841684620971001623270547825049201305091321213062065287191701811949677157123602028083827255247899301581285031572494176427631432250367929383246676745237530731825409746007069547954031652534756798336066790516076634154485744432864504291951987797281449303212173541985849792369346693786389383079245798367356985416075357206331353318011880329112156227127363025272423685642044885967894042752119384463984043713605680104804892939473219500565914561701366021510216752515389065473431831808816981465050939289167220188743934371879688054097806221364364649196480487849540783109249233306244500476735999574339906924499555975440808102100868493208211177307725678707560481672892579396830851880162908666310665577743335676091804416277197785240885211879042510611425132400113614801160863652429080732281298501504745672589746121374692498439375115623107776304428673224686981345961011668924200311757997336541572907330764187804646642681371882204578802823447665232457310190068964573529150973686155424924442536857024498608840654291493992382400205131033346188552663503984703196692857505759751090449799195888256941985217708907714261535315699068160587998642552366031524471118733388915892505496485808474740719820513910715724796919855942015330119049406790120512888367088649611888438808810071284588833184327539263223223779434914323169020605799402481491127141661070680443568102766544772171384874333419078190437410626636290859651733453394538296021631828687988297478604937259090863931211579741832068274214465285173847830205434556805693635597342127148569522668654861372105936186435420998013066834264203075334132100234143879745324984530419261383956131955614483985103665875762319282705787266891354491680877380889312122787342189188418021962718664009532488959924576871674789420002534040601698349287848651968189968639564529651785060751174753270397374493903222197917202314638028190927913655736107580911120787994855183463042770903500531023760037576742933276730093510211847078480012895454486349014228468545966636043625154533420452721234696506345658007461705392156192460462205133133533578862828919580130866134159930166934793318856608584443091465419203455639315076520423888940578260620671225895131153123918786295648049586951024543548758487887479959284988715778612286266048898553926780793336862365194508575284566128304233550581996186447420618318913196378994631123584740068753240290300123295671723401626466188134117103374243751199572261204308361817612060884043449304942694449751851930420244249005088061720259781250222735197031274486693787712574979962416404509900235772992541089417163478281832851928894616699961007089831780183670333521594511519778456750842029320696819101412156720330836479430698780187117103669471808391122581357823033642316369862191345751693316969281086065787054745533608830847674957582557182749909351417148508728909378674503217840803726794824057614242958866472901816981948300103457714803132978455813600156502004984938786909662567421547397955233441689196462364474731006859308101881589311085836687266177821184857897983861842318443606294016009217343488836049612982749657980584927191070478399368555386218704808116475733669419263726924447979098869288355573998568587591937194654836147093867840434711852696442516947686710592099188477036561278408543253115858430392374591461966202131672888086926906797990935299526498292399119156499517280026233034177100897899329941106543159255866637060244467944303830263717085639227560281260599017511648968622451781243947263142777187512970121976458970077065802487333392005927273886493489160328721631099361456804207989868225232919430366107371581561748539713881271315012694170549504993285363187679575076129136032338455920440173957412387570611089226207651169480404979182179729473816840456887067686645555054096440994168883761733657600463181508957482301144227991829318085209481684061367753900173599532001918930439197281684258297949560476519345342843825855596160935919083568970354533593372019822463581550819780581545339273134099855110018151299807308202295659377225065262470927187136181993986590865255168087785685386100167171291082341825984552073684907564757466893626686035691637078837839416849910762374089104920799820683314908648349732589959582999515722747724324265409643211562835452002254621052815756798034107785636486292016141091078026141194391192700015354215787437168163598188782261141502850116476922600644107598980038940952002091817295767524826349688053714492240404514754162821663343150735289381622958801608498527689517226653175501328327920451245837956944674963604365366928787378170890758635339488952753636819448466373100868919795019131102528790171879473123023889209380867650553127281294514125534856260362718689189656884804298921228828306120789485787653671725748746576755876557554424593461968479030461909590027249007142711511241025137840819098987681644444119942900117840035697915441347859494430777784753738910216338509239475450036174875111987222165862029309678193370803846479232820334591959331432113794048272592560448910100200404582300097413447770151996841581146159302932080227849586970105952295398297187149125046349125469015670083215454272400839860661439649719857483082462395139431498543925079474942104642318381009898064985745928000325010203134137764560842274079300243740860075481637674207683579771302771552781525226079515434073357169256808038412709973045704892381597691206423247878496049516872148067773034926618290220404272852952079557996401614012127655254621731729761817872542782647016266277051136742691307270681473272326606324692096700032721555893221080194673666647843812861745799423135769311275207619843823747858680232725613002864883195009840418640181941237008689573706364242519956186098521957065000898416096342525439265506719665689936037545684829731879694393018777872626054607765064825991650842322667994655154635549201759764795433265205634340773183988825758072814551235018644478235832688281344289883707772831818832419410780994879882287001600028102631510941954817001409742106772953249690215642252024389851395005807306317702593344408151645643743506363071506456812345123474260834163047700381980803022612681312905247464017133082086421844404801921586398218636059909934680746980267765196933892649996911983685953492955641824428204780877195631630031453516270600744268201273109203648625789542479915668700289891586802813238557820306353559158075093723088319845605487036492898700465332146713396650634396374610048460523065504150880683897818237656461352786760816084071832245394634724865486730945886603978229317226090518583191531180063939915001761154205009766253667459354957101619401106411931553730786031633843478059362193057497570864948233941458218137222850380194795713564536370853447247521466826503299644851223083994791723321178818872072296648464728050653585414702943391790896977105380557218857754684879290661014864579908989118152183408953435162156872039858333770401750476283520586932506812489441885953136063106331120674546187794627095281243380447542486567244806183938535237183746103174761089501547635941671393872454981852386432043976569197398545987757593853162872430487839356033348638983515896636207123669566839536285263602195491120875482977421101013153772193527442092105520854678104950857906848822107092259284165461636141079611992832742439706637664243888157315150633289838422237939203094604725205700220271236819373038153908199477701294678048148998438803196217246807050607633074686736907118685316276659926982352420895394893658924452405202563535974975210981846395514274860721349006295184398180605572248667777836560984010606901528974853511980104182608837323413613391155603747997662041076626855063943584719205560592111535209927008188437547941918799296464463678317689654341372715796207672397862682201239825092055977240575463683883408466937890019900781677964046269888895554416954155024743068101181251051389022416304903930452143081773135624567516995805113641263317868932305178502842695032415758707413846594521369271752905296386688551494302743658240709289246413058081326203594607827563209590734322127477216388367921054799482795482631198373451063222563928110118607650186667384636663854297181578110634119641067328096982753554349142335737800064985800149864882758840688879911572792392959902633627109230914234803413451409328416183134765436372927913813151776287649033061436133278381419265735313887990681807753514636630195814559745280648381353755323638214117576907516892887606039059027546818916730527968918153487163238325816886547360210798720743607373344746141098987369008546814596586966377203659614359179020477737374114385258918508149184346587046055018644526292991267588615449980973656151375988233451990377323434752231054862337441167049947443415547152057742982939122933165669577418568131259220999985108167235537616859816942313496185857733424048162005131857416001402077167587226160307510627148200329982482598936180307046224814944674225623518938456320474729275282399860813687155148027595391109967425244793873043785249661002035794094296095458554510281060492575487382918091088475743603038365874248240724613612455644699552120346060075686397288314238701200957617661623082616465736391571176886978640724200220899559889607650721659253611448172405606012913246820589635871159991030042216721452345001132990248183237263151668078465780253236576057574392720823075848391975444973289871956802810320056861602501216896079968379749859688003519223458294731792754234140169087074612165144931695316831821143024080192146323602518081278981624290987108273554157439659909385913386207845084370457106764554125496024992429319072593962071034409263816682397182889226357562124662559345104435346636536554745720380785409578560832167382523384113987037385775799538196768906109921854197826358325942540687742569019090127923312308581555778900813134251789443350923766218709174643409363671470130724017914716462713226784795266371472207852554339796281862946859208460859650262565201113838154838910210133943102290313647243256794453886845956035340065751781856088370706993440371825895743758808939585403635934308447215727499904508181251835785062012677981102176497974434450924793167709932501404894922277073044226209037218690491500878300629216268233614053170783108334423413601941493692380241171212743012298748530192918802787590728625492788572898029622089751601999373092236671993509361787342408177772935170904761255829986489238619159782177576902572785800538877813161218778268579896026211401269877243057673630974203486328020556996303780496176420398943272685130946705255436529123041156874840248153002166782254353713553591383194977662104223775537887065058242609919730884296508530246552363570230370698871927081269871422030140898222478955396347768158535273114776950696921487272527509115156636014685449318258177615076054689913968668270262129395639291393415996457235177431611878016654728969033078742336618764951565308829816376368542076158325807930586023592047118995341327652172227834422689224116005636271193332051738515958663641246994638769529832920544813815415016701406705676713317662722046028045392126774376062982125841662031313767254282984783138571259967534428586142942916271076182223074826107111856625014272284700841486468218716477906099969521763650573715509010565544645456956418824972642185477924637443201267531372869859960347455734492047599560959042251973874647422130618281879626950176834372290441029196075886488179237386821667629436191628842118319321900623935390615987108415541058202206067548434079208397720767270280019309727377850610048170738582835185126901107978184545725874142562450035675830066572594769701483960444274784900306237247705715579178710978151962192507694895753752591436504993622712596058637012221802709543799320454934866902803640564389087862918967811150123867066143164556910707183766135389232111316232672063872560361422289953378235536805574385120232201395971943616153051287484228208345655421462976832614552988532410046268224992955292707371333107646742398820859991449102763801909361020910487720639014140158378127082352321620113578178527306701445375051420189944271519137040741708610852556550550858011091049909623318009065113728167069990958485965405843134914219265809488633815295309202126960531884093901786668246077421024595018429119103321224729409632887696936557774397047980154478252534874576801571033222287567444746718878374042994233122341905856094791960561562000280194515103421335378891628537614768948577887278881085636984470847218848030529754663400376756915834818361802992096559210516839735557466056963146808148693223367639681723514597478425170784676132752695969595213392068702539203273448914364583877722452981106872532292161962883324091464502761000652352303794655782709994869251193466392731250403795948180654931531327264933499226106650425792607801165903581772297557252730237789766425364093256857432786551793271752564044765056317926434212399848404348748157426336789892893783342023570454264134333367946572468654216521958552719438015261193887498166197710262587242155606102748901795935759767268567672583350963581203227403531801296019965160033415186064410214997456500485040048189113583640246043882631665568835181547059081530162977903377356208129007639646943526840811423806522910265846513000318519704438601712553338230468265462716332346708782562894274993825045424437326416289400488754997802397098477732276813674305933035533563075016562858667734493670364629465792474817046592292999885249635838535206893567317649748186655532008322425639643865333410089928841135757043786680234030386348294027631834321370939762320279356911161276508342112422459463363017104916882705868573860882100806560126329978308822503641926203994153132565382192508619562766554337321087227036636762171145709597437054023934971679633369752583111602829735899553266591181949955640374794999730342649211545885094123015669556777719271420050272726302240782600366966342560289200429344432257617736127086563600436526755031249149708175602982825737328191153485152285656261773653027947916759279726079002630691340634219596188355306645498055433773909817133988098870441560823708150514598595421970571542009754967523068904527932022430561040801931949117921270366652716872718064732371603838264256636866307947565287938921583849792014083361716939172369626620922398487398455443596744261084442171436829950166806619056353005083693072917862215038623218978069776849376561320088005187163856975639376584844480492166615096867097427082703252695572255275909337651581187130270342364097003222713819970460255146987846478269937336552347395294606556361997983783148511175137113738286239480896954524190144678873258407176007687608594882761416481542157831333171559684735591602184225519778767161524051144050715783038015412864654661810552942999072694380435682545371796136692232140073747093467227133177140838738526190222180643097123148261947114522073211104236909844685524322957537856667735577837848849564164742583255786809479914531613187167003456586375984281800493865932771100309178755996207020581708462567071490532053981746502630096995464722313793166144149576078749869465434499444455632731557537317079349270374976848689929701655372886055360181178868645302331149394049270609791135198363657320308087063419392941408013797628485004584935149981233165822067736532521242040428127136068440461536756417214424839149729986251113679440276593145576833021050566926709021092420818395478231785309849416469164972704821906710655404655497400539497071797403820442538763285084312696885011123667543658065820268802609166772014488443109856216851312883510887934614463233062723482417123267987905464237013591037997909336922605514055895377046224097975759934097844767702726360704748770992085036836880226426826393532471433975086619074336414441324115364680621427910693839030308322720384419080791950352604942492356847683181100682700851299708318682807853708008839328580509370113947569970624556442733348084467915002124375831554401546777525870100397754246670914762840846709863918664272266282997402775538759725009352022544354887606650335389093596496840453697102519959029495680720050967565883895265622516417767642401349221832247080951928262969544675587217220488440917194641496694042916362768092492094030420601891046306404757873964913338131346200306084803614858938682355679033174048939436673078403563735595955467810425919085176004629196742598796677453103658814170618422765793447834672742215097180546407932227975187862443555501498887440542758270532590268433581443829325863853274897833300885480018560966789578454484458400075342878800228553269165088610709567466479606107020323886846547168751078464877713290331921367045984060732274241128394366536682935929221545606624201464658087755444238308596474648764284409114532775746391684670980119236698508154107071286990747681701676119079478143543020879542520006283504272590728759331534645128010855396130929821380757363622374686139983058258794464752475752296960932048061622751764835403694498491256610838215187462977179153595930130136066345178313329165911127411478780278681167814606035642740693866830932999902606112883346939098487329664630703133229295899631977119860164077585699563914805355477603806782771303086522017407179528888463488485205600160233784741201929494936638599579954398413871518055651093323359075092492471781808041230649406455890607098310363600849818993829124280822306457951551894326299396331991895379671884700122660306459441243188547856778371810269711783755869340906922778247850100385366228931085747764174444395182556544417479868413917926534135509459267978797766674780041077355870038747999786814314092408706635841730705441971720094922959106600522818300114033893118515700146742949907884985738943319005299115360750087511177354612128906221618359768763824755808875067484263051941762645917149362828304566977533774264094754187568420983413960244251131027706290437706065429933186811969441937610343201259549658207138447472766633186116653686696166990583554195110387916746171766810901255542623919300759797265400923938125393346286333610967177521340717381506476452499417930645714831961852885856087602313674491255566352536357034052325593672385174269657250676993408933662345868050476191434704550455822249919637785898774533086728148709432370553035753761418831792563239654769948942387667562778292269996248442637407086935955792639645189912662724401132326884725820829752373467827140508199786216644891444569864583955911447468885028081978318716239246629033349789685499304330686574069309295949481387446934262636496447481081489911022792942908502428124605442993668993079584200647388988883890762416344239558749484601823879282717598464519967372394509083786655235394164680544147886921853310131020729545095988300125081612375359910276598916293839286133559249184941325133228923994997537421806626186871978595069435252555130954922635711479299455380851015724848151757240328407929794106492839727536663057251669325983931248415874390751065034119801793157407128856291010958455996394318920497144577899892142497166732068500725877755449422280485566296978989250973352253461187776638140714880243327406066778144808248379191805318082267683466705867284563448100552492028440306262698191304931883489880105819985275069090999976580106736176260622713286747763647190739193150263089131863803434338211315303149949943259653567472878273412055862873086064955990514982688083641386284496364461181380854311265734268867499061645535818955104869913495275667675601076296669424141358651766842100137065318975263549094798162491388348615769797038962174731164428350260660770210142931388074299928392390588690394154065593451262098988506067853196343956336904356200839614531673141264892260424989278812864775440762410426115124639278353253762208316011488871893525568260474992273974878840882971837935202519120836653167654356913760489888851169931953218647298994233567129280806528715546872763256428044156376340911422080910556282738819960916857680410204640689020911445771355656061418673286433661662750058616971122608429667567079870140007340031202758590361589129356952282519034505474222218631662833095214118194154078363393183112341060912484974080704662577777986069492259576109962825551848774692944103288621641342171800323055096692682495387788375217804736384331673860036469757697693908272056975563044115267496046966202565875475119864618387497371652693830928009437483620518613304316574030659691051563514662831515855408028785077842636877781072329419328749181711788798349137059047412934659553231042384220204680983244317838968969669130413206718568103859285874936194598770702803023546588629767705207375784827976148000681084507826664284183097671460725716687648218370759450756528281166419082299898151839171845351505202314587005020823827204479505364986784337393515775786356351939433148113313970445462123193780215904976221588109240913134755909529043697676797468524441813002633630913522318204508272053485673735714478626517591529404885482922252841968938120968907192449404178816853196681812489587643939234794791664126058722709482244132640250129861101068616778160825062803065463601225497859691210843003527899233924409309527599018470825261630908107750502436115713813074886528781504011693186057525702260452171328153111135599685674076205371702111135369373023630337318946542155129798580296097591018042619579542272343200436673291381338431962902149988500700966401947446181096903851108629345918575917168860706123510175349813810685277249431228882392199712198823808214975766795365446617166573539880038957323382900715353361137740390873630434891431282423484200223067129807846208401689147839168019359383997671181070847751384936868051588627952427651754343637899631077547939722706702363187999571544629555450482570411270194018870994034778773445594231452345807671175136463409450759073085765852220227241984838478731697809603845732102066414268183065576249697017371335212469952030318147640886512554683445339378741953980380786019373280063551547203941554097982467152569395426062641755214407218629331052635350291095756732331864030414614926376803676494953041882362837536742396853555374867027701148123266183230486507301512018082592766060966086053469308092127446768215704345203507209687486893481913333169913833069802399500620765055620505834243140678507412259446112566353043103619407413506078537561288245190860804995854971966822677320668881748812418246449858392661504773796086917481101855803446648824840666272566262332757277507140780248540276714798465012430438463153607236486312306205701089294442619349470423981270692390796944338978027104767752934817212047002093225134433963652922409843957791298230946706739432160405305036113156251253372167318932244667576645945148259248992768303751474608420711452741068702060963265328084234596834910338928594320922375411979542503230001238097149512291331169313410177682873368144502342550597036903789080078475096256569575542343281119470222724254754069976445514549794847595162294284572969041589306166668606486977677581866027713621101176505600057145052869471448603995772211557966092404009779879162524576264542019343054427777809026881462161187956645113887683821183789945661334693099526336608539495494457598831363589501859972493216296166402616140969369580993587155465064049113406538211022389618838051983572407495458812967533249891600189392905129322143476685968241925427721824456383318636368786452658093346553832249865392192927840826787175403238983094931621082636375476262407770413221996136178721705523831618952204874288110605611668050024434916935180131575849607117856728246768515601581467515284338731353165812103025929248786573007088970138421276253870619159648572144230731277741502471993507156579398103105744458643127339251534126413099613259419729165623308343642116445895931926830134332943750205537525452330515720756123799023430894967265324039861715295442860498096700807030173106006480535092156376247664421356176479864127615821710161704458403484502033923726689477632517081414155268815581768343045573630757228255805908793927495231302412002488300389171755404484514784608673948114624022359282174884073692107601361803174856025354171559739865388896232943093100886218792706517335956728171351793149925314361074779808660624191051772605113271561156766983119757306636874039479623917119177282768708306573017241860469682959396428884083549023535898499736384710127673992494498868975129392040259760047503540257315355744031456293435204529394962970770972561967496108799408661190367955697568993741728255128007772711331423447840626942283771428686193704495559052643238243421057932191641589311789161118559271540688206992477298092061805384085037348302836622416057627771490488542142876958691758788469087908769653063940238471556464570005683664312350055467881893086865723637502758819615719675277406219135878483983833105316308044053126622823181684861947759958857775169914611467162283357846732484812566209687523871070209355320759609431145075878194532422906769185677185120926023163960821527877587459126127870401962087269279006895918825900272926521649069032025232608558746527932653350548827010574586026978055525258480427470860187667782965727111611533465525169786201655242223701555755034279896354767605460715323341017920541022571597644711443461206114413782638913044896794944229973922862109786404736985025175020416921245542178716990509715498438371543643360901901054759456301232397781979843576382478699537840635506890503580547632692049446005662755679243874743674795064757313765638092691654164924975161251953229899105415463815138822982674963196928467907481682586558955278529661557772607508762064081592015871747936922185871684314984627006879831791090402896341232406294160296407124936900201527754803926762357237727257901414936082826980668373717437788224607166300439384616256904013870228138246116106540332835554183743378844901944886961609243891450068830695719334430522201822334906827360265836290311974260456859623387195773534153041951369403119151879915805123020957584578875989128869491118114579657512331362334431034797910240745482143761686895724081711271631182423001150985817506853388062219870253081104906938290341147352883854668161012798805661915287659772669084198611663336198827313111981806200921161120845416866878178803157487949326507423969678118706026985854124574084018222320217315410085965569996143426985723348858456241254658905773059492781221351830841984971427847442855516545494635840714369686147124174636918319765416954446391779714732011711131535449873606633251565774854926995662796437106255315777777314527622223111698894414852408565596722599691262350591968584714419307359665578701500713009567837672499986516124584152317776512421214574373853616723519962230094216884948060121522135540948073904908174761279911550902510767709594807259690254655987987304351047711310612350456791007781162140960661008060596924613880326196846775900293822913584177090507901006737233418764938744477091885206615141982009906566039944436812152008229912831987040854279127928988818449779466086796499826712525774559017744311036546134196294256516803988782574855706371592357064256094862068390325973150314241112814427409646068676145870576362121905945079394985784207519098740486076793170819219305431398149987812227667411197917878372870349059092506372178029261486783670560305247021782609436433073958560504627419600201657499343587182328483154109494912874089174942597470909900205078652712289260044832576734749316642172942411648069110370447451434992147201267867769408465049925409296756025276331985496888861471045475507510715146725006318767444861831212472754993952052902343941273041643473156766322836157814418217208143220585467570749064206999075184280666569620798495513085908116273469871047998696294718116963107550001129202469805452480537405304554005914222303339113213254855523088423264719084225591360889534369446722689494269561254815807254165952985649377022379924469126682389656277886434024318450597056307618619251233245135233098938465662948185219989306647197120157818613133263493108825906107588787197299839777347085578957655778001018131829838916787858330242102250046496296612500293854356283865423098932862079541603785108031864479255440431364337137752866085446233747199597217364370695238849769252772509277342470815420511859776993039409703560042932503922280779591592107483057078910042725104259821558842239781606817909559429715487848437595657146928298136748074765288354661465289589935016115678685428365109519995247487472608848036691797031801716807309113532942366986546629469916062597257718406564833824953309812459567504802635564177222136356397809031782233378309065752160481597104386086139555299964152958467141263630112919583682673204731407546351837303910709957188115465508101066873157609521288702965420790085911502549613716730599903957213835712882218438738955519784905705247064839759190965180177911895163548040325856378014178274669777438125091515374110193672092675935087021049967536468326013659302481807599503908137761867496704557484802428463241514022801881946494427876537069944296352521011093736578253627730491687121985820909184209593059826733742443268712651229249761811823095048065868005473839919540480395825629950104756715005187381714948786068001371208117966828575716206728191427731483287594400406394239539589078925440523909888583232517146436597885981525661662928787710941994844788810692272579450004107201773174976532967061102947320616832538727535381975402356966561153062564711910859317554927982525233979035035520355681998657519617742532259597261577651816210152922107952612353015083036986964027139002629990210211083611728585273733372874325086287409656729287155557921019928083186192232180111226162401774066693170862974368429082838038581797033779575252440699242491273037799099333583171108041683928416056322696134795033185240349560710651374022627320398131040955206240518975334025320876947465131525653441516810583002360190396163035481197568674929447844696457562088793492433323653619720856503147200573365831724750470198390203667712989339812851790116992238596584303084131852896592555987703283218302363779154734923686934852744741430885523792415394436421707439474077563959534692931497482449054035154097907700683627824271109522278646764567215870196127501965839791939966618776163094771629685008534351396814152757025380088435448287617360720862284461270761450287161536803917275665282408268381659122928368891590447565868063767792692764118263653032644535981939400990504354663466041894545060828204330829088612252016267668395031818672999862245948533042420719372965056085956386268609940257614590192713979272821158727241302951025519453659268540272699976802131714161067907427717367657782052338632741362861946293702226941358405239456012429527930189961150375306283243629998300079931463303692049935955718003587299477055182703783324328051323243757657716151890136848795642343111741463732940705828173471253983823407946780832213585171872273279655480277143456394552188130698199855783951336552172162873154496193574466770977717111578662774148911678026808112961321821803056339347679947128024135675852780176179361956547292107612454918734492292491189135607213165530022212739827057118098050364615433439130123954097506752654073069724839738951497255794974913780053567659095566715727908769594911527532386298433895897513866983119110198289249991009889463097005817811606228240314004554509852138357917395173782983803051438206289710263988499924178926395013086440867336108804175211498867127308902875374190433714043320202469228613517397537096308747181681457907337596968200646127038563484959745703296702197102677732508328956700098517069891395971294429489015867981710923128343860431860153249145796268571388738033235142481064863626376037038849745279659988059294614105111729338390003456254018539815980939393932345905106424551451879340098261713203857865557812850573176384001302667322199866968953254999334587946146849437247296936324300295001342759420744419499278656599997406539163513804472489838479029403255145650919163075493968831797428889215994168932725625080873396953408385963116394001602504801268311331597502660388059425181830742241086801730870489039928561616066124659982502901188355395756883242511204765159353948335295472490274138871808561112067836282068339407741013009910165865825915680099263200754460724856472311668477117248173109947147609137821197653888018605691959028911555015663365820446132926385528371553132800709624429044022625124216932141030096155891480967200734125021798410013463746205917696450765119887542706660375421012126966436786711684387942946560584337901240355652620532553834543678878438030417601175579827273250647213846392337492845616914646636076097650920794159229472649106361894356763934748117154963488222196103165415648159852501676434299799610874452558829383027480237625120797578614828902591780981918630060338092378116375464836873239475236454966038671905485319781152755709556951113432213765951300840945515569296411546193862800080329905997210141713439678931289111987416153210646336477349352392199452420150745020309491086416988522371281067695392008048347132046103691625974113720536160886502130690630193134425250237050568326517130428625738129845380494361704863112791070130941438499044778202807345528572330371530447295570924616858393665493176034958697947022315512942219699833483047745271308991791532978875163134864193483237702075371332877810322408837082918273696980166837072800282844587771549234971408094003962372888654852463253053083991355993291134979183745301205358041626891540155284942886098537382237229831381320513427456810423287144251010394829883407167425144230588802398901208370318618104384426489643964764858557522868509634291837824136196430783163629606699791852925279158399431915366353604145848109730726360094184662614062037102173304281728257739328771224565156825693622597628115481108895314198042710148300151794833253295807637212382893029827331802536597930431183724477626480121026348768581057829537672792095637432409101332307660228785207788188699454166457587378590904948991917558187972834814090575046878083153093845277871993748651428918153266509529417192266688191189784045450936994052843011473087821387587301505200775281347289936239678064389146422915616674400669839519380903482966908652718364210241894464022368400514960268375623896921071792469563184336636870754999624382013267336577067352152711103380282252576509570570012465603181639343951689423576671041062587951425173904822065262223304702838276582237350248286800794749138421691681500050670473813353623497392981620940906672977444658645193524206308200350479879702692886849498190686824160520904880014411035965357547924700397170424800785697524430815278986910481886731128028553570942803819845830046184031635975326986842348584201265133844730457600597988079006714441900847621955865829864155363630708802969875719071924685526407161601617382779760915839892716948859221140966586446887926153072341772612653318669356915578838555649820425518529236953328315615506888910509059236525217175682713869157338437716508835676093958938130169473003387524297304556486756797464553404834952793437800021825147849150370361310440915277121779974283633031592152452312982154478797287810055384746879888280703254473134458237787006629512938019635148794866382569206240698548365261794752759639821543197100198670541283738284909664952177239084702786332577956849853714807684546397730747451648952449446305698022904137264356732499966691285428401790010818898706938351094887101884132366863133408321712125089079164195690175010841472229377015091304537442261758440774395651788253470249107223256623835430584452754017381576358148888182512687738368284765929445066016150376048997211627376521572958489288745140900114194313361472245415917356659943170810365620058616290034035783531855984464447872928351377557724618807766617060305624741109234310054394843896341132594129206316615653785554941551247972545020375474756310439337392158272937869726683368989238835043546899053048537024867763735065997741729267994803909157773749035283866260948332290074567959041827346843295730057549017192252222652394810141240760273770393830157703917871283596402934918694153261678721976150318325085764275200293640294524966483686191586126809254751013920024027384368499259330054268440049705863121455030632154932227561981878948824224059771276103000051815745051066755013729135630895757268823995156282336215655166573849885517888413281468584821976991009027037169342915421741705954833741864106276590258629812180837686735390358307062326447644225574920732116821467445905392547076298448255721119490723373323123671507004164659437865546585484871971324584583073266446688072761866068100266704883763617102190383066219247585425670149764303167391559073419164912532184454611030753716659044219248325595207264519734818471809193487367848975050864888728472178070445781612001381731535956972390836586379137460208093971250380533789261727476148332332206791440805837814790055614713983709672734579357042307821121680725129569173659544270662193465770777308645496350789666072275018484067181434251516101147089977656642142228339513624994730573936971839187706367085629393524813772519789572731335167701953359989982325585686766472862507427918288784105447398182972160960548883087665110172742172608917220371196861955936334969554520156890374051735671893030565504839327352232502974627741979559879526941509817226475779691795359535130093526821214813970514655558385995649562963410233437139614786210172643642067821519067296565233487155414174560456594066574856538782770261257398921523594026057552312731782220048433437250217443406904407646413433093413795315243237805342557126005757296102261896566369440590690067529155095766094458161774178250480081265528199442517200088250165132256211198197273701944092370826577348933228708268438917722295559467612171390825550657864548952232599542362310227184414836152233188420573137271782058768805508236651781230150170399081699871132935467048663108146379772021482155835131588498640296022245917748314425554175427312313112104953449238830274969925897986896134883253440590675389221413054037630642911301101072865195679369356033407423597522838532046541920553440501624305706157707781976376335344853951772125806125629954416247311000226954472598977025296116922251942698107824779175654049669715727482605451882735537477996708042097572381098401790824169497242022476575293286182663127179318122420111805257660062791037796223346265803362080231689765538183910170892563930366307141084712531022169308417193370484429864109028499407673667103418531921902473977335658158160827975353608774778569244611544227130357467084124352031457603521872693005622674340302009826756859257096468855024271531236633776098741137965625438075778382845063138591321084770304754465673348442101114427529059362718903505278343512956740883151978092634264747554722182879215956254859184101581614465564031841258088219746175786946444845118842824683299907966082067332334871750526983360987274457222738154523432580171293613514549477396499703034446472399774086037624955522080907528192207863560176745272802702924217045867709765359187649951986102840382277450598556775388697794150695777741492187033917405007744953025452967263736121267280223805875678774364697748566240087650843912228567521670476592015872517855917900437713828147462474122635713863133492459313619298240241090214779664629204401570929480323492679625526661990761831599403645986517139633226615316116748175241860634629453354017645659017283585383367897942299250312843951720159091761310656192954461854775665216600096691671444133006375491370851751263581997807062025933234192020319801816356060086990471000577674879238133623154431279407773064807330444720201194188802976831881493269690946315145897556716135723168488531071858703789968191577043242972827380782661478080571774873403753071008822999790864809637335091136227842890139693243696383188898854052072644676256022509060883643028440023289483378984797184700467541546787086800519959592457730969814945139507641500397308128371606927737016166885765555242847033758307451829692709408425806563443350465808190132721264712010417877561712879215467644262348302115053687615252541510790204349107316950653226331880601152833972392918256036120464018392972063470917766163497487526937204293914411505174519076364582994898405713293699312696366714506879050110598485710347403966719759444178822315350765433633471406507831175030910779595018083960033636640935560967332686043939794513142138724394740074280975023377700845680485397238645884634451937661920477030064800568714674927816161897128181520673538259365625467103696254437410084230155606669819284321965459789651674159503607352229660794794656140902498867717883080427017178308182923968071221863210063346354584434988361610109838851242699189601849242953722089822385065229220933943191063444246663455292519036076680976056533581159548828666700512575919855853546677728512748289184515996277220135595628587954004966696703107485554734402341675293087123532424873392522544832571657461369565097658654644371270639644766851511996191670447722344222604320072286233765253437440051984635511453138261251296337679717403669101951069269087255451559953942872173579652246103244825184827009651057300127077690045807225633836480728858233928827761379286910165873222637141311745948865279087225613528302281081917831830895651231485512313144184367841887197348417791533761676726006166641187715938569227138118088628066378411799258952399863267426032691468526919653199316959442482159035702891636157088642877000350922244394768651495970860887193335739045882774559388318138430697488489928648465667022695389290809668318734854968486037428227758560597478770574571863668596734445185031536877545857046531808737168353426409469893798647899887793449019341299367029045217006000013302458134580572801285713226300913176891996881573997346023246464443244000105379767730811378540160450311219025787922829190336575336787927519600516963583107028333423923597676916569894545220155144439963200764569120088743036519187752054858722755573686900493415580301935680469777239762282131008093381048105715655995196392872726486747428362612750009747154892168126320002289367315511850064128691524583342586505968930969639448483636520149417224576385142841958525054219226592756946814678276375248971791455884911805436449159876036369520842009035186003675900846621931438817126384195201337823573460760578788559204119097850948080560034483221684440606265775143506806588578872971103682583246484200627483421891951586524571516185662728444624473802629826242662480105423802844318309236810386910862469364765276440221713287734650334710505458036317052251149001640308614854377285234362669716582722657672424337237022308536782583989936361086579349653297496614821499543781045226527249000844025086205762845358807862023646866157963319573224749844360007115617167079544347767003417308463175946287218413014629081428958469478438105662130702602060226230422637400320387741789958518948161102329142585704410216911844860342485701061333060877342052955109349412243914225061416875071104654331733153184512763911744572501475005587698003410530934792229453475855036155374175596832424978796234900852088517424543917540310770163986704860990283710707776315369287061183909599604894604691079653355771106852073032713420809595102060776620850389035167019373546506606372294392589414872901326772699882427037486845873168845770569467677416373166223253184649348557200704840307185169414074454593181047857980866726224390298397459475512520069259573748323454272631763146042459171806550395797674686239177708598661319533662147340738613726623411116094490628360294003877749184434492319994944820474399788382040360616459695078586223437525776782603534283883517792654617726507763841350133596966397975861499245672950199795233580538906291922092259412529546201817039552790481948570495295597517508996778854201218916291553904846634109908592693358478510597634271388678831065563911348218282669709718019982419092663453198997218299005146396880732045183269469344846183933532187953998272710972920062356417241422376254958541154715295246656567503748942504498314026575687425243071074197314683318689370507535662401210646729417478219566526372045318463521102836842827435449309956554435502117291753579092368479911816650493231380813547316629964168954280390858921248612017796228903925405801743490751866936610295562609192689986143348947573074882340404948382779888463083421305394572968890727465063862289988906038078472519877673950427784362738724401690691750321548277829929594925738413368547489082368477745397788251331674351649186843213535380231636070509460079155545679844893866755958431434069249981085802588677766275046523962120430689922355812635266716582836457862265972276582852060219373301895780373776239698462937724663520682765281797457756523844171165593485240052896544517279173517680855736587225455071419604624893175982380614391392891681817131588746258050973859961502244488189793022083926103615849200281012135134610960043381948509763311154776399633901532030187114648421623660212629292578625889496936488243758367493174348188107101596806908533154975137590443637405260150958764349948161761672178130718433594537916614491999304330734810000263767270094936710349527073800608296331478415737178771873182883561572706137530273325497331606721235294840979111329175252043688385641565905982377325850610355603098203786524121089704243195106107079241767109042485783451177733569678363846755762232880670532457517821205486358971875395673353103512191623793950681499460282369987677465117081676907994118943480724926045361853128340970162970336848444858045212720853397409035536254438147552879202464181854977986935171376746977203199625133048654598171340643373513916943296590182595221145959000703582501228071940530663808507530690139113111358485403643945145084384655857126731815269485337795139753196733291165115610306979366798528644291950018551065314407965753570111943491697064876429778389995007829166564191027190329306379096510492203886520588810842486744539933300996816804775055914411870741577914496823798462185459847531961305761101739284493769311155668018834639465946236664873218544686747212254927697787829479683673401448140350288832795726785374969870830611349146622444758273735918747096917664257172609204540213700717059629264216157689889737250275752066761164518201410879984000889978697031305037283693940499312165719354084430136441279981197917538873732071543871739234015878275232781238416852241084322245652352527565175145447647510095364815512137519822929239427783028414692313897776184308255299439367249320792263395602483062275563633360551426302150422152212241349961119024327525157276674029678589463400287158746083811411574897515154814955927221603329631743894540926167003436451478405896334519540785997442686038310088918209241597984668690175884049901462216771002125061875453980129130122228406489868929914210558186113098184364954623178852389399979256648683289491596467017115348641792442883790501840218343908910754721334918617557674917348249119854447742524210633090911889668824014628445441806631410853254838629062286261715182004718754946093368569151322134563135038395994593808316921476298908201046403661121695626715093246951090653965741422250950218102102244905540890961329098130700099066018837532081269353914202321493879982289117349117291800730333156316799621579888335968921907595404930973576972801318110192182539551333785414823907216826555900957877061557032776314599940131408352728906131984164209115596696158044076575098967361136440545210226173237749762121692969170447323076025145402496779651773712881405780934562784411880444038626051162737432078792406519610273559612160091666483080255642156471442366053376240224220324996206972135412675946034284390499480972619030234701915621803575257903272761062319581564613056037495966030607957146871918607744452503984540941906549276579866017441717068006149405813905077803047876295215777782449295127193702432135615063592610152823720061548606925171342359496111228869250186048735510295060095324070436561689355009598729676905781000661442142396287060928166209853232147188651873762205865298399734387819688602674257637467902885983542032534486008283619293314112987323217196697158637199778415857936501294787483621898226614957847685620635979314426569393607315328600170761029135121654111530013957423314848536177880683313829996609317718667086371557132682009340674019498774852770311203679115199117408133381072073896559479454577549434610925019465317037321577268747279450271724341905207938632150813544665382813174807050793147901180247903479443862638511797909640615992475561747329217678720063776527152469102379206924475537496319789723621191052956652124782741233990553882713852624126383290244526495667532769516514221494909461891556600955622834487359879365227773134194117369097560959548815006731954798065759295802937358742094627610153379588989712394194867078017739728885591694338956000642121759863744274378881371423730716025724970939046796474802450387418086789239893556394644591517714859665611088074543678450561395307535017378012557370552447728636159756760947604776911362659702856076972210140765474562180773066795045168502464754751066660617844203814286332230714177103498486376523919076076197241324755209498935025272980113636282297348886246002213555244501483928203439632108606878751579113483465966006086646589651789438310890378903678225646184977104355715127149518489200004884319746742117631168231240381953512861274658041925039837561175385885192079831755972174442677414480621198299469884048117934063406374455317668728157417580658787814127025642170833388366847528765437151782464562678906517657826436051627459301243424320231505208769803857119763200626934256963247221958789984736108409276325402062105382857897949647724973541321002343725749565532885353502773396668665007238685047425202511307336387188925118146739473796191857084129146304783269094321260671760497072836389857477690845749064371060493076919203599384466868111899755664266358613334033028545697976329781364639426787512392004844848033506525427733483305868753846785385985907881075786236432364854678464814456667357360028807741762320789805908992896832392652610064560851753751994871667039274234847269187364890746425923201361679534048896221656952027902376784300268195977125069668666441066864813181619726302618791607087491428513222777822069656200306013947019904782975101635833276955023907951279392429469766856452298072867589771333144336834744819156188965066942509518423150502756954407732891459036994429436368478931008237242455395018623657738687705971183453193872697740755434320320883830152933303067797823069783783971028842862950209422497759749770335596179308752804329726334845961040923002059055547831265048091536486636735822553074325822719649358922034385329791567283191673205856345297872824729747665531698524530470002472447547897879410747969054795473397881358969817189163349702123556709971702622124491271237394110600036733691958922869836910709741999932833000084041650172348812847101137506589000300347199960730909748207845870867868884268904821800162381345880566811498732413615988991307620681741501037202394082525176794385021579161766888340582792672061473096084649066021672029841410109008212068087266970611947372657626994251007293819333550406703739948234848841763372347195072433024398833113193099373868229771957951235615063849587734141757909793073181097650057030073427937757506271198374968785002110244781748043028945728061551085242775016657746783152282787936958925751780332319347774069811154142373142724661589724796602401408712596255372887015665395548272986251105940754897989997081873435841301927647264943040598287161725218394377007329848013454061023796888873529589035807104210940864754658896858621002363281028510934539011859738544096311226459962531123417393666729249099633556731898537895995338414997220825860151245414916784102494378946032448363612658780001773404897003877436997719278038870947136418359811382189145680641487302152047441639914479774431122175310067201819425777733705844780363702624717686636317863606063341240178374950829915010330932817540687903678754808403596524104922326386144790470565586867571651818790806219690813724206258266556929767596714869495875707722299297748974708557603078195592183766863155424552062495668356839944443985573012974745054742963975817165548752463376321860969087744681009138315722208244081396177179305795424768871010854168828919039738097791034568573280650576388415585612287733985128676381026369130885561897718350672548005182582921340596941839274623080768469654607110676678507953001428455518939754939794192802272464724495940359748852173956785399615490488016336035539948270503528535640178512088749900922129465601103891079430998098102963840627989092830056781647611061503049707190275411430824122944851483234481563523415233756246293516484757550032715649685319156564328650454326174736996731798421588299560617699242104079395465952828746685143827539865771570012862277713885065402282562048199169855525739838819344724449598232883580918769353905562292232789532913099019498984032585603063142518878489679082863323623794182286230446225369091130218364269389933293406331488856929399322338951777717521036168042873468945385559432882555422061668185401342913957812721600518068602068899796335528009265102559408994325772073636841920159511661130520369012073463606899182199859907845597136485506833044972379687141454810860016320202826122774384217160836301040786377205636531640148417945469363670564815554333050617086337868645188075783363893398827675888529775536276810675348082835728026806583390920043893069806590563372844265692754792621660437621317894895225157700930001323027564569784823763738076758731041697762037608555061185179828057656419270957734388493743477429527751045155466955417983572106173716635620222677354949580530852971060092009692155305978255801255327160600904304002928694355390869873149238699400079521716094462820214905789133549591333687775163273075683105521579151256062794633708705286280069292241082372803781659688702670822634556965364262976031448244541532212092558319365236977940790212644605643526871784737337048593127681414454675701207298321047853855896068931458757143776808603889283681823750883483279600919212097522061430522142722296107922991507837631127264560858009952386595439437500411027563979795876560487842731495776147968333059724321829970711524735790103228493320590044982080768133164510055737124429227696216644468484166873830816481026455922333530030707044198792313803277740972956772541883364836394305538126886879560252351884938388033189042764889433386602011690808424780972550796529556065548382150452423069832329595113397929684861487357659750221862925405643627320093834137565743670235174438525115750007465263307901849131695648431089570811597451350940075284508891261949161241227868805543845160437547060924884872467401143952688655524574395524611544286943882639388612733312473528436530841152874347998751253720800176323190737222974010806008768077621600029676300732247907723246825320183608002266859527504380933085299501104115975314016502596371250835707876679965438866667479428408420921595155778668658200218446008126044297983235948919449467896400012163311919524524514623066945688360149048989639027987539526462487359871499289921437637315069196722591362776635521252543605764702730647787944989285896810622638028202624106240537740375863761081094476076396516818953571046174890295493088766349558403930613933090674492921644848791241373594681534393841659557615246015238877005639253754257915600975986460667831992677914597441694943248031421177817685103980978038233552277688163482737562863100245330046370346172407921619661302675202082919588963648635776599685901030874959025303761363727668506062124282465993307983660939318794938666187969829239507183576847120937670244546766776118711365031002477094811371128677925825576037515176478147705519554590804178499250889275635872818177455116800619458238613362969813869140698588941348049243836772651572064506030133716611932730754152789285570044576014663489879867914659856005361391678593299964433503695120230694227864601600454606326686412276006607513512831631582174444107799899187294529172051867229069778510193028100847736403896050443468827169948977492125574945372367001747892891598628179433252654010710104924185726398402884607385681294184572923419098237738409476148625669245093761537450010839749412638007916332871419266330212897849020355413814227308358211974282834810275942847793293548023686088623214239769348484121131986622554943220760853955299873446889789718279832848432884019868914523521437344853311712059952930297864590599268026885296654461510067286825217958214135227108310068261964440737405946535278796296511968581393310361104768045179997524893331734144862196538190942777633455992637585719894867641122248977734796929013883442017689183698980162569400145586227524007085488986024365676886698837942964425906811034891940447569950120817913320188154692195543381608771761494539414959759826793579938861865731045945404606695195731771754970503568349607963466481355447332125179041014082560956170683380062267671793054124767730513925983148940586784850606867830000046882397895595031828878439400567918144335040753717060826251324297607747650834848773736804435862358501994016556701217516413245250250728828814796450423830327831722563290083666058501047016287738716764509888414202041475310207833036743825915745993065169072345100047569276935124734686909210811048981976870350944077445301154613415280009766539013511815333071428344335465420231455415689301040336464249475412561855575134055286552027138519078502954120584088327922076261859589449982505181654070782016350330415427775715856564641681390391751849263114691699298981941290069673713520222945231762485567063715406369326872160505894067834173209349585330278690840113900505843820814804489654760094900934029562366322715166232917811736035179446183962670176468505880505162989870719877713670303600414118233974431047918225184227268316225725254113030252773734529859155886980854819014276937570682161250440095395759203506167412891435415214889705218490794211270023210900909888353336292446137498918115712202004733007770011752003326110382563377826662174673825352436009645353864946127116825310464519048503935258508747697166486958234910093748350377502486513932102830087898596839260133604450397108638766011503386099992804313814382013620301992673394693603991801332109420273006334468734309675483094389392769114439981992950087375562677333329872151853561923471872332477992895947664096341461919285674190764366641345249173085703115142425025764441631703327979046148718258287192405194585711553053782615841715907351432159477388545968975839823041404496856877964563460378470256009804311143427573450008441980657792698553227493625146594623870953167119053003590524565536022928085562244787961788070238536495695232013732640386272351505650984554634017496229515843679142524506717111157969209131730924597429236820965679199741770519664889918862980364805773736798020587807281416342062493539796567897729001173744950177099192426663526585029295030794838836334945741320030866220010676624477711116876746600143910539540837860940879539875050289748795308680991335212862015084497660115846511361147953051308413986565251156143326803195143331120845336557124329544666409690985347667445271746401134871112078823345592438589805492119196664598165649516445666611459216061333811779979844054500488270318896089303255247744006825070957667950068257711147436268735525258158640716897768489417345232393158386699627564032605223174566876299258152751232357327649026880315897746200520524512891282954714299222478226865473464858072357820602236679035382638940514933608583993745633440263996006421529352577395238462853756720368334815899875777860289553652706745904974533731400814963768998865759044706996309895083879797522030892929987254018514834046853877648456689268473777616460868218935193713400686579981795245952775879424205110750258502857284265282604462797236815258422051328157494921437982693060341027488527563014400648347389630816181877193778547035427078424295606392940384505767983308369140060150207118867364545701989792592087590602765974278819464164760643307154267033439495548405039896593004466489827263136761955301194216115998754838092315101317412051979858044619957123798307582643784378991092954072295504596001560826529064315983203015794973772610387149206145984676939969356198841682371465346048497721692958910716575123869696128327648264234660103488508920566392271895201896589593003270739963180390868824431136479983453121876734281054368626921961204380305538453552764144001815968117646792782054316962861839512410825575010497941819329956762079704349016421236634943299999094832938208726679431457475400879451836926267607440889295984739275497814905554811374923378484931108748775824500291052181880311078517378249177618976736595671185153781600153897676165403605341461130221114403554758258251083369250368145467563240525251811376769575173160377185413320375882396794253231242673890967202050620811870320791665258791338676313469304815980182225943996595869961146055028059057877050855657253747716869242137254318917000869894059045325955182756666957877644551646867579852557828797313391789076756775926635476192407232357827865022262197988840482486122205722005369449413901658854541878147845485440940720001163060110668030315253163065857443725677891472276596783219276887725549244108355392608117692289326566428451139259357000211170800678286749689772429399649482509207748647470399370872550057523554911389119187816006076312354122845047856797507623555304828939476768871378573716917891976831288942268718782150955037250532600126748866981110221684819823443038159441148919972795414311164052606093897204773446944136349874184879889745906677162448639411608891202409388588046039534078228766791369808089574115652716288076689170541041733656953192620493713805187920370928381610737063266433737672230761617221781870027564603406487878227020838389269276484398646205313994212078605262593571685418839607271218664225911983358643200017172215371308757548909852590944379612631641067827179186607882780498631092112798633422138749603620020244558218082482034277612102118109484823754886735699053076110391033915354710676843156083026509813009639607496577951332608987070590272495660093109289383587956942920325294682706592133865619192862419303906758375408094593317007368785642025503397351273795324874152152662927964072118968232430395043272015958393720161771906876152961093649988702418091011306384108171120159985241810549657471140146877691107622312993649778611971018927545290888276921392148678095779496161543001215495678362497411789772288900494108748566448354875568315246043806765607296701130059093539725561446196532771595908010812187853595602807083029268887826865793517056844259434468725459391182866309274662430453166073976406175786974704775516298220070719658986885098382720240536514371783916243850065548995988376650090476776483857601072009488024130846706776895210463794071599641318409461263885333860037914425598644127455411863897755022097995029572159323355942728090877654076792478705880769854937628768211742454011922218106067645805647160200503672122739155822892726133105038445069585163834318269185393863281315011838314485262181480467162902742101506500609200577931436262965437351863919083929162391719123917107095052010895938192208403943499699872441736041980362506281206741518682535752579546797624811668657212780871680479164250424075809427328317373719967471112314779688451945514832761312939274286405607393947953642977479157314867120213905064129866954493109636403627412269956359804186692708719042044159657355261829660657685794214350547999057547697053553992356422390439324889254966637146511067191476277255682556941070439733252721332712626635629038421527540360785460967032347041874375273114669911295050263351749289045336036615615168085057893263772760486213125726081062333823002549190731885737285962068001744893570415855828382436038668897484679493593951757047330922083837680977091735668301793151264378038724352494515555657546630753219021538026999612624416063270159806767857030692394346799868465090103881865446348442253758660621139758760021757907229723032055761682121101597813516251283894789145839046298619894574477226885168922722105028389515301360046685250553126100039908876398110151826227680160408589579933273327036842809492926005737566606659727593108045018608155189219240911907424967009653618810961135540981988002703797202084240218437631746334201555236439124774123970125202062698791642211158306242177753877287866693594909156844923926769764029640163915211343256957142709177732573650503972803751389104426449707065551994619157621054519455672716555506154961623949066221289474230927406814297166511029481322280277875869974605926739925333204452449908259824841827297126806966289867036227441121098717963483172739490645075718240518985973454096954913547364784978041894301855214954415904632088457627203249152870492075835740079707879349025153982608629352637555186732926357519995766151252342016996174231380742777967341456483883665870730036709034132162283381156061624084104647199170991516767390730010746108377044073377977105001562831896713156352230758510034269554055595783140604234330255603251955641988854810791878796860760214949960731063062468855253843575468074236748296717884834533837840908809140845808469641292490141368963160011669365915869399817670114213662722184762920534662941942985948489748032787728414577519916001447548155687145425970177480370183550336961027895661439186676689357276191266784500571681586209578167160217983771340243469387386639177045261558728254307637143279058029525947118577990884419887008531032173784301446464715252365344783545550831141322415134978757477395330770398794577326301619056655135723019122270742542299475026071063623703405366339429050580026438928510753518442030152828969356715157769215979518991888634920052543942784803634910016969526354350423734432157651175272387074604663707101007971509288061703739306855558439058447192286908863556797937987112842821052877235204123291390964284336532267487844753149532059750759408995083735459888816014977008191632820125976602926021900939129370341693270253648762217963726609988343574998727644805212038505983094924703846664841906502402599295564047411661993853454630924148118132768112215841906114919087854479926245199569948920962578489687465016463384153403586034798445693808979990590342279944970546831183284652869740940024306668944588074358603117263119988151777296636673217007761971336432603717873690366986635057557876726169697961993878732916002649662282969226278451024012033921266917786110904516923444937638917621333135107150430911823367193075693786482297309955662621303557652473762496313491188468425799979286997930821023032057323482919822465153192560413701445461659370993866476828559202745817046306446285239499307900351507071863142062846730730083703917077245498551687065856249735674827838877893853783518641486841727344724191261940298344135144605435955639136704208105119614754594956446361184758349602339451361342767666326841050634266411375930391880357021499040087760949832153749017239186288707339441128696024942502646062241495240794340589812772699987048130230954181469381496769042885324211024207111142294286963918541205558615425960308224374640265708932546093398150002000261732954696903515550764999975703731926042756746532847783011632642281841935383379631924145591742344455093481515325889734736658946074457571767420294876111994730843375347640804235870468723562684191279526792790972293893943583935223652451391633029581071012014298885190938737974343100634156065511011301470278643709869345214281008558297451484827100304554519763558009584887329270675015178384816384697276822144182752872201519459200414828955513487800529451821819862706472649173374853639038905280371352017734260815445819613578358867226213147965427828659205136198394897093185988636683218354361620945855597125332110499983231794395817139670444607611368825855592891767121051473129112096575462804562474855448220390385306871651359874411777135887703959863838529921711325429834081498692307432101807088449317828024044090440719175918810953670712091724450058574772083910328740731752108160577013932019188055310850444829293686637622690861086031986238718710505522586138648399947238501105531719817070152209749727723352609438871708104855903824389263986410139602518463467349852854785964843917273805869980281993284959568768735571290911315960368556583335173653572544310986997818689956100652373806956475665436648262335117897331050990688640920952537674832794234750235262716476297780263463893468327550272232608935191449368508646826329213088603579190241341644227218866816303477968924658072695476002243730403010719164395885081905855690018348805502262388100526402497004565676589671712551174130662704722214176107690846546880842292771471390543708724546762816013980170485478096805110254494348306733984307858845386774422254146361397348896647586724160749549268485310302685159947279610794002668142840144278167033210210937780052474938434035634792576173052579516020201706280828955640737885926472994298556612719836562472218051378248261814442499146442397271153411374112452258664562196457571108338974611856066698767268186795005605478833922830079013714187891900028486350135319697257350573777620643295628913722665551026001918753179844370671727248710195622925799287860899597138971748680732074884948238381675689131543380841106855126793469690709100082743878279514236144655058622447771044287297476663957377138416065643106064787155179430209268163960562351187810217891088030304370622015900208071856522192511443219112464813813063528756270370874059444481119320401879341030470531438095069614564367891562668034011443285518176327802100014292622344031835756579076672641160360901146300886453131638728910784398653596376561097040670458004791264156860753246158004610814822347657782324635528226840934885694294166510313313633911829166237826675491346633650218653224432359237041842592412222764289206813668190105543022181069516842875627909237155385413626741469348409606826552683025285230405125821122365279093311789748614496930219458318331493070845559803406311782445251383276758088603670629699955927110530060828925813472187292134328640675053610401092726185636540179892736424141590735011568653257868777359163926207042946440137382273885979499736092689765628131837578488823433313971459297611417212046446547960088884980999817506121180137633512067573041486405590979049434398793238547182994666987629041923066156060586466131885685613215993392413457272352349920093382857334299170135486520529648527013988717549762754037016697888708572199896644244089032258029703514167155323992730403980246406948321850041209338474572401778448766696421743786337988243296704820684100843735527660818686503239177846275514071626872628310307981179803103912383803332366815858620030155986993007663426505952060529916538402117573014093076560367227717159605353549136611427055975198232909513657934676154369841683198673525412538527674527347573223774952217705643581870892574164498406559044947860168461584507194051839593723017335677372961949127752033061394782800008761771316468782091254761740305538817777256146538510409310555081838535273781866004328093777972115040929709220555581837241400123398471599931015887751718184513719173553132567132997014080760444857443643106060489025542158406768846624366134726243667091627562418915776054555079600666799962892084430841851715731380048313778769713477375422480868097277263188072843529645534293723737852071622469105338700377644980572086462217740831066773684328240622142179962899355376994201978913649444174501458804002949893737748303772176789680859996667596999267279485044353567524622552601868236764844770940191161455164370271379463951818091181403007818884225053694843889485051067566979667891910246775562689955749506582541611737051383283054539648136943207681357344635807742950431652184114840537882328634460387142247431027900032056354725061945845838319334359649252635149731043306420560813404236884522618501884572464740420309994476163701272233597862075792590867846173582065995477106803894595831510334319512796615007921151598058670534969786870588405540038481569433944105029226652873508462188910126210816276603011078158772962200621828516756481825025767541498991317521401448600071889961274166424773894378091994145656590381428063427304983743464656654041569730092420192370260759297688444006637321628040682581468900829498861274153184090354159478441831295613414765920227438779178563348529507062213704789530628253833305281363747875434751790360738606167493366450451124174435538697334528324790553848751065725455768592634468438317698993536822944807799375162987317834514726112024778156273221032640869667709319551376967365554327676527384014480453855460465888094436507448426079203086485491942746432217150977572537625354439003711082615591016613452940180686843314022028227009956825512139546971947825736763765417540620881925950808442379724381111129906948188776420062920878985633979843114214933787713251160766191413299407286019296068632645858783960087618653222990897217695653171771540820878184028726899954837290935921328504954202387284046716636569848966605407059058504547124823848920350619608925772197316668713658327329799080544437579530534531939996101480439074348158912187080939359328624551246860556303553119645346867056657141331386480501311533857236191507576850024981942029350568467642470156824378455947565976447261240098325875817791020217365412437484437694958678199048673270058449524419558762097533870116704714007572288070773924863840686696319755176459284684350395489231257944717694699951423539718950157532090708768503128956454656021870622000672698153930453202842300489632708844721518208691432603773423403455174439723869056366294491839343551559725533339698617135729269967928640177835175541145027247956813930953261105299063627305608596184995312233553760389036625933187955047902259428268446062635356069552546021874671304692168038765851678449016638392447585131439746804436896118561467356348587634884787934301495347243555040071193232594071632825443057717847271315753548345878240493849982058705631564479717688333271900646776147078699705889630238655668291897691240064528454490320053523923485811245596022343515165268301548437345943436132066088918341065029919612520694376213834605646383388039083849928469685662405468492909637097449499954174661550282021979488077366820022535940990039012088859204408677159610501967295643049047073721429790864973786248537794332323259646311431010769035868937457415183070907689603961471186237916744715708323402072678082254865324236070534055350356127931471494626893037422755722728581307714974447499307077317759829859884578527869480174072162750187283939168846821523839664207072012147867320500782033970405970681010627998893697846126940231626205152247358838675220641351410346550246722489699823481868711076184987065006217028879507414014695704086188039401656480905384883217428417497999067585776353976433296274416124924164598363936505848707041094784884582888144068113545843059136351145665152759794842424241014609424599590343079447878520297819482777075121998518555396995775476981113792287220737366753310618323317019020958795443813772363190225546815672793501564684557708273194278841563536285654276058070955758873049402687973011745178085792716303935269086631721632486167881642474769280725003224958522092727650450157703961758360982393117782826861738915593997979297578523964266748223712534745908344871832560292365847439839601658633107448375630703419492680199001836001037966435424626687375129154853759813825087545432035532124232339491362533883627880488482573263090653793992268560417391257166000443322913701060757179543695196173650346896342860517372159062928470987460463053003792496362899760792717880622169802855376154184654749549637086564330819362061099934654424995206671467530989095789093410461267804970200296362895329122264248002498287087026446730802525281388871691158441364830390435927735246189268584183698990611422681927282244045659869471730605262056269554201296395741316538814765247565304011365842770746122571576579711275507817556869756874226435294586846012236324506682339540747560044510989566264981891457747484442074486745380225016767253450401007075752629146679416013630512419737809369602062754749249287748143743147585585925610565498213255023725408693346668899086465972996532900578810676813791214087118931760928666869316780379990162129153475978278900685910990147872321938250770051872603651429449648669839180107004826784073747306375529293848556586687240605778951265474411347025536409922404626467876272186896009090697830640329215724698328887261335789959325920672919877958559681933728378560872072082685208284309397590192352692252126791384959021390828360782144914344440610680725590010330803533311854698801444935865360498748482906356396872902115650599500362501266675854611794485166582875291309651260955812176327865649139046429303573236980955590666637476668509900611484744137395391104591102501006594838378503781215582770679538931715852417474617149449992589100075720222233888717950618921995021154323927100430221094681400624131539171859690661103192343506148190371447144038209000326697264992939442409711220858123389469578471332180142416330282278705866886439439894786439196286897381979269796808055740995266301090936708762419251439013513819859236724580056542074336822831131981512787925681590700055557109756161437412722436280952907560287754762561715781535200179792417913808015311792822627338553943348223325113293847809819037899081884010483595777477968745679375363045793884726747411821618824647558290336774171928981425050796920481408095670079482692786227437584494350773765655334484630124655916089589719666259645375409372902417150557125207482784987949345396035622209360921957443299523153334386206847058331851351455991954506512320105558204242755393708745610303140714630062135114508662936288174422096727902706734774728319052803830580572598726677939958855258118968815213702949512904878074436782340798856200905170386065257199839824219676413658497523405133607152910239766989354876607982355954743854227074472348263586927611029282577433469360503273881168505772255494916352289897899707171347217498914471706459666463524780015598271147589427250615922657213497152910822813720026205827767437397559715948742039472129421940854857836012229370921765789577927245781004757919564097340427688610738768125253420781547146558859725504791715937862303712796420912434766980520443459149297339174856299145907859010318317193431688108546553362151281689363927694552583771506626624193429083872114397065951864541264364856467862361921973424849976812468779686251168451179641930238070840613907586332038645327749422327254876540259586682169229658608573913657528686614308739836098948338709674881374610308727303964650512751657224925204660034363580280501312402349133530878371195451191926459902420955949680061582291051822698979796310059331937861043133888053103652203131367952465387177196187466244022222189943212948597662082872311300857773615362797521677947968986859694415642026199356893161361158001085742134387669427270872044721075426928171331340199848614966812664458844624938223293422306877334648425564807578363721713812096272474351131398968138137313216765834711902768939831771619050307347588663374120053170269601306952552909216780358482291948865054728049950089382367974800098124138761063163988976859350551727581124541988131656437341454320711349418333832204447920359371187375247451163328086506751220508291017247895220779679205852665791778923076273577708033697001395294387590336333734206049991984168745200498256157644428269945335213938822647433524541441881947722721372352864275932517286825076922506789003580734581846796744718544533465197902953818302693368540356238038673728797534447833755618467215419736692117452604695259625200874447179391467112336430426473312925421164474072922569520294575233282794705923859116795472665884854114620175934174849663500541168345410446814782485047634726307807950641578206774887585541184455549992527763715967480298270635257337003502390161868162421160964211295169934960463204912111044486613133968446761209528939943481174550326632384284318858949259517967394369271830028393267421272974385085164708608597643363487279393396997916292232259829818560114784927442227407484285924103369964032959225596297159443502808240459875295266595665201775212203449522100293023008414042569135949739310407128775873440193120692327163388785487285692923114903311308954334767467134230675979645506051302864722636811660813402594098488986428158470468203785920252091277177421219656112682443654098336804955356895771915162243683413390481517737955762398920130277263492785145889594328357866838766921041186263060360474076390664133082597343393032268070546139917080684142941280608433936051459829876302237010820512144748664687401093728827518542923138564995198219081448912543018727788189069375205863854111788884095423847316991248552232526456420033623170210131695748795653585130665796418387821106454726090375051091930309718795554656987122336651393645306148116736860737994466281779719739831019641993987490793830338331389224349048752936685353809517236473078570149743477234140689846855859348715345073963239627959831324391822780091821655739427401468650816768594653675987967226493560210736501543383219707101802412699011655047082264250528250655471136025737383677528394063260557138125742963093659101158873885596480363086132440201767442477899983004079482084339021115971017323142575455633515930464196099739220977318750261659471026249577150223088987244864410579017285033492574932575004518919171138838588268898555977116680541213764372396725205484922396243990602987727122947371476284702820374597450390982421893666469751422366896486539168903519145968654195602674508120926666334612912431304064008715925755544653195139128413749882163408559625876926405307022978426988858487068206624332704837288577505598392241495527169661084320802725374924286180807775741509686224341487116029429358218144590759632654239102248533956125123940657515473683982538734789884890226977898379150637397460645229346518140423989354448715556976393052118952428317985731379168679270104959588550703859541558473840342006331210648747345343473800684164065285402375347105531416166744551084025465672913088511931413970720355455940671695919903898341459406101780712583238414749952199004247894319264688347148690094064000314524002715232585981895965993261319406972714651799505194056901921219946125546069352912195539890204807178312383107195755222547947219624093757454094311615098648318834998469243100651247118648630871894273231329698382107287663170097053785206578704201140219739973834254877821403786905814093927825550251584080372883059067588603354202369182504836327158331036236871339722310715593863157189780212940381482581558526826546514968472112117941740711908873111961527904597386035280057515924247697778224752355054615057522836995143968237364604167346132864291183629257668177844472600866504813442794951212545089642166209291438473848230103150722370456602334393006422548349268382496611525437352686679725408654350679541330475377468842103970942470078456374227091324547913468130120516171121460305484420094484997136904097189048821257650983294878728289739214217833498671996330177497293001259426895152631079206738384609315264847563691898953058297700368988275227556256474716148172542737420436372496260045428007385566881997267958831512931784631958658637290802827839475046356675937488695651719020262186454097368587426562010149203980368215503314551785848892488003649119803755644277153989321594075891962445318126892213321357211599930589603833400557341194298190274645660544613256820864866784839106041521563395776659258043106918341043205868227874318330545582107288537240068750408916674612629689090863623484114723421146642000559239274251323766138434979497940567012458368548430535252350544200868162902346186922077362758308915472974192041258984092095643044935133435470770501816946335523469786635275170996896412365699977511377522990862497311535602509055661232517336304240575224336736510351324537365750408531023834226297155140627100430309342365339681476724068404764351224492446460610305367155395480797682267920201838424880404144794559589205985063664220668035163247344706416189610042476652640205165066896923331662714548162434674265034760523573797242377722254108233563016166553553907275150958691921965280966600404301848963697614791918963242413330845269671215183164648497684949036295961770667965747666704852429320916349480377159727281763929623505812443385925135170933802571091640165298827454702672010493446819179619462911546673478911578721171875577237874607618090768139171717910954398197905716951878395934450696003208918180652841229669320450909131024643422411083595483746126239921148315069092368778559367158172631990558261584252653994012903574220818129861337270867880544359691214304533127261593570339501054727252166529535524502396562555538850249404335576713732951941963323879818172909675296067607131123175588416354817718367489214144179065622081038814083990594036147377835470910164471781409010515980319144827597080645710706014508081484341371815344218028101731924695329433819874789016131145630293361006993653130660178918608298625406414561265986762401483797068118547344890862038277034766351991276873490361249588412220168937199248719746098855431497838614834530105283898772000571683034387722464049848475771810969902141653320776311944957971703226723984848728923498294257428896154497017268607656240807577137057279850394900025334266091676951360760574290016666886134304686212094734253228640036175079679166846214197545757679420255932897439516938287920337072973385385721365772716284200945423238489879714017255844975957808084679219583395345465883338600088198994024931537960280609631596052493831655760308410309575325132078273513845252119881015788153442459421971622600686161409788677003867122881786389318511666620746322358707297412312456432469503614764142967306798776414467704201125420859122217583327773063364181325730699860726499704120467866684639040394671777597311538301934336280940548466470778661805883352622303230232271607339852130068527630350473045178129621390517085284747394754288900307548118540088798120497618285674562091825256431921009251187270882107186849087374858670604403252265627062824792621576079470077561981789150453649396181181772003075777629959755957718734758625587080337346351833658087523131060824583496152861705954009910861495839928676787532846537311605214733296375145055148698383097369564535807730926314851366828753883950638980843882751135314574324347751823109793988841530624511570636851361628312781202327343399838720114649055125815839748920202863941021362912338259543348281507067210893408618396026796467116035183267477032695624852207292605656416756040539840171235381244538228440768981562418385178668669506659862708565286875878057233487503533167196233288123959336375856406254559917851207437416484302387942005278236333503726112319767304071867310784352514896997094057981509540389781727930333958440783015520987742124105850735028666415462874468299307949780344055607062779129992466771300546706955803294001268352423622226235617153630346576385006140613034571549241867253972341537906952833723608499516336642516382368042628427305105528027332538445614456071485361435617596884018646871359815401436556499948509558084082414697460099897821444895551616371703650021207995494734685446320967912140224944060565596122021536345690258580577997149043865693581917499867326759554802670994091702597102851597954844782838507746596677433097666628903949803995678585122415678866328698934087739383594798371325279681977862898592228325095255341075119482197005930074718268645758467754045512004144276965245770596227173562018732169457259415282619113895267000675058433082580101769259540058766716237581612985501911256668973098725282401024908646848175739695213352734418669770118191162747625008636827930506611405223411922870822566097534662407988107218658505261823256942704941787403394909606129470871972305634327350226415055018498903546673833710413173144482636788184428513335266821450698555767966328263276260468473118650034242956728724953612711287665870559251292196151073037571513068832884497111647006156217151332343202023904673804930991703526896472687331750954394398378531025187931921600325938542822943699359162781745431700337469474952262786016321598582340916527684274453279628343901334331994899952989085580331644306537753557407747580573115382106780176473126892664941867588801282603470612894057100779805466024171804962734706339428996879118615452610590357079305999633842882717693267549294362895699709707389635613121876350756886340515384942695115914598491958021699745053775424195428827292223350475284884645740413652841237042024603132880463715412565314258296235665959436249913898147049926595077097977603533694846381754081394620064838774266859969371001948091034738958637138389629982583728790318343578207611375167577432765789719297453447641526194891698850499707662308167763770358349288870583873800416492542362462522749557434848715054266782783421411347027934498787323580964984204659090726067660918988054814351173904547462989939057643007502248986434810721272547309138511307903688147680157097801322191596482346205264532896922556204280628191446218112914346231672025189180041714746949104849792154998872673285628898616820755960475490468235124455190956997205526879608024109129637404728562585004570601898026723044631674906528634862268728889248210937850678501386979420331793009878189684278712167152910320758750890396172856410825735987597936359423024235770716978116516616770477403680124255469055279751709494086377098885016962459033126799283714865445557807544898251298611809779890691899618771734122377619899179509370083192934050586083048674594157015703380815008603342403159880315279687789118161859451577460829993538255540258900066255391055520066460206524431746213046388089929889105937575996331833446472569003735918767864077403955184465357208987008667320867200221154606383503700987229392888267629341997874811625839276255362272933890679401351025267504552878641575133253627122376442322346319793448533334419853041325884196444503689014358984377570910342826643403187940226465849523069523800636830284684686203800968605306231085247469434887027063440675701527147027464005745442585184719655160182212508304411232832715332276046037578304511020798049969631492535809165280610092390797889230720993793443670842022287293193283602871537976349998266127939598276047205281483874715676755254845101737623525148058704975834906842289476321966894006539563122888989617856500581586375961486951978345720432939408039003960145689729069103802907688220922169365688412784971435192106857297636255169886616667569371676646638199993325640135999026175286731440047940207745398742937069790384889881787478353318218006598309594987717699452699960193071074582156231929293329318264044806199137703144480730129519127631256957545878778829031084049430516274569539206831711083645273999694490963376729275831012729929464291514309339126760369708404425216473969648380528570351713982182967888204008560365439850413751781067395499067590598197706121351732650099717199699162487522682603452695483059119254509326595562324916616518155412453779678320403824524384075448458563207743998288528207008347549910306263717539987263555943638339068366984890310130793224692752260712246831770014323312164610554950296635295046043870098399767013020030919329130756478135470177885491014928185183069390344173965909519962968807309207241056710243733776867759046904205500798717560322977329688390077879253041928505219839651800808933189078421481312057938088199160895845344757562117997532617027649351578267482189523666493312846181689858455860989767801229677640470465870484044482404158129207532109717478851484182296927737270138928783134245292553580096023698883754346342892921711139138062800960412423670155263121383984170762764874993150887879373756867092896695793976463731494258194010868958608217137710629079407264908702351640313525898897690747258233586536026877963258443719419001149434717833643691934196721566530930999134217768035119275834304684591861378326688417387904310553243884615052213714744603006508348881465628225483480156287401190944216989958008692009839297592120563754719695368925655052316380474423418017894336707758373060072275719103245307515870665852053150618679556927917156026551031961458620321838607464312546648087026698226483952149370675345554065011854131470334449768174332803211377321518536744969438851086220325574165531674942792249695597511971604773542465603650586300316386739480134447837689785910196727069660324063226695648145586560264504998918933953975977821269465314090897598396902717254160097486105864814574049398004314080411095260424607194378984320059580429342745909646050322340836669403371598542880331698518032878897598920318215564207864367688684369405824623371847048817184538105220188379632258562723505844440598687828254421568863913210102975144692508960997055704605847733131314688691358779823360629642818804267463909276053291634860637762701399662426843876096437707819885895586699992345106154243638157564451584227730463265602787762911319323608811393566036265889758322146663522362039577247872372637999449573597835787781946974051224219884209518745758840974224754929421194288548723137124652792950336663387153859461390399335371282380870293180295668019044683401095983147426273117513545222733797980581876746052110012333930244631738454662133578452604873236323951726311788639786529094366384524807825156016426737063514054640651932677049761963102563270007440427662832425205236957988041315842466196285470604116907340413730142128532319741945050063886779745597778629050969737360904322848118914340041524647310762741657222450434233722436373645150231241329209800723207899534109956314645156844301416529255656871868679453169892031066502355010608170829039620303762137290767632590450052785475047415189957187355087778924671612757054275450835156659801292108126567255170944149103162803550558878158019737440264440047344258011735943266476344554344615221044350258053080709616847760300898770881384430052540863901899258018292718548827023225094235798869144658887841553943397366776415776234333547241760109825768634279666223147431013786722102854725808202786821146932550268812538105172066043570031218493285687526871769166661089769290507363050564695578995330990656256975158577182771681772975089666835706715691739468162814505339993135775909738594117250976584674200017448708406510059180906476398824128867589376842410732742502582289212229536911687459512444790129379993291423412190179205034434591914776486513276986199574242674870557885919341612457215119735269122431377676796617174597234547848220281438251333364464831439946928317090607945113315411639185773042832869393040735986187787856647640359249071104545038338321669160033090282832630750380137681016212455468799507565651193545266163152697539119804561737015373094485127279321184620851699250696060259295521635270027903756284588287766933302252683766499704448474747450240212291116252390601284503960322482096352907043676006445047165699461604199284665520449975408631408330712542155499397069519452125139503729559079933841365166499906680687026037175334789281522553999196784924704788559258737746249223249758127649077615951569420759841973553716799007086475596509584676692213584399691274246722153752815367651891898489680054925173608463841021326738522430922745476026236288639480142022557768131255012225311204778588454172210803270510374914696522491590929143661426125916707079360419373098046891831873957175223555239885177524810298806471223863795199738723420966824288758872904724873353931239270763456473370674236443522019451674055403107407333561860060669114559128272414708891629659700339278897829245515640162113988444150996616350386840394958977165607053178264824832253958622362844580421381218002349932251880111883604176265051144226726534336700262808919965938019348750821520245777681834699748398244628535661256884020340529223902266132789110921700712952684091914062051622653778160232643653844116164194121136887033847410147588255484225150580333393356606617788646310477716254703567896676016662184077509309539767476768841147034965853479180738339789023156296020082112948937591254628561176993167531516686687495748621582457764353886366447620605300147470060282680047861694596968046160925136182114708811553380033838062446871315037792345233080864328058830060944024312785676539445539614003191640737158230654533634958032842258633582819404011521152066447482071289210692109134352547459266037839101266282272212642405418698733817173069185647782082912521026065207632254549872393628480841199732083585596865549726891605301124197637617135234460835754836669947344862723593713289125283849558567396555103247653767214934621053717051846253995281789031830104136078507112285137645920827055045528264323770975842452624498217381870888511606300202482177897080806150234964278985254932871089662364611494415514502479541438431889492280081691046463587456883800163696052046572091573817882420828197550896241826221026904051247503131704442476461105833675472401957315796620848172301634663285717534239751420519799854920279757114364282851790962233946693056868139028639199604968761995708688039374860281880585646842039086717030888894318425227404949759107118999216192648939635722619859283121155733268976281275596879980586306930694670599694790325639041306505831296407992758328063828877961057509870567514018658388307297569641803570775756485313054188846864330160387566340909195400064645710805797725464029741191335912612298513987585896064041815999879030285228962797914286992206411281315930332276697661333428591307952845189315188526821474541164548966998583162818674817750493085685956724687307329623458420682755087266774185887273976435862701113546629869762084334438458506862370150751379591095770741810866719979186291563054489716808478326403633056250399722364561636802612702507504298765831767676131946306617320787423179203338778721797787996086406885896618784698577261147503409519261679918098757862568662648638250078276741291004518640169844080627297799266613435963578798513520899000753025190767476411464620684154800410663754973561303671538775067753475186162167537637493823182815663701685353430303068453346427099636858485564598522262015134255449523213832173939828335212018444248333611313187807863160062005129516952642509982773282573958750576822723609526771747844302979238472356595310154182102849517840578114832577404163964452915962604637267655306032809084854775527065162850624709281583500358588901409555911845457666536070511325957335853904198409784821361755602664548869120131001435037735302883559638429448457503395762426374071208845954338071856920904009497607959859713629217730464416646450402060187132135325835344452203322510467041436315281478840937925380147885113156067307834821087290666467477278689950027724078446817100472219186787620387176560356633182672621883779038089259725948861602497518822551904291718526752598990600697249856764303883097562135275355293808579716781826025733538844260739175065094042879985642537835189609503361791351268930375703869190877928510165164392685306954260320201522970373318441892035834506049056680224880821242775488433020175157765160822764427208723766258919255365500910516621856532898658210057973344685351084791096111456041677708656627126966323136843324472647359761121086051893893144591879074772565502180009885014157413439592819225789937775150448200237737641790301627078815761860743990689031775021821053277128701513825432166825327742026397093624312473576057661084301620082722617180567576078437895558851357008716270402725940404626603870483749290504202786518422325399371282155948116015048318068824090898241177667113843084216734427137760869976321792646166757586762959562042406218082901002473662373662872718173070278311567800465454520595200455936233120315812072062443890929054180680112589389895492318952909416179522557526640785362579326121519729597487961101328477140490521053039191418435218698720560198341664628964594763742681784289147229225537398264970172943130738263496717098828902631122493054617550477481146085632394654048895441901626276605972618644571442214434534669338552883104274267359564234865895749136411489328152555181929783125528829023134674920155869855010404347410874048451564105973909511412696284705818735899900134096409989058844862473162905811023607297415812142202189145935453954555712724615868283773441386359247385721444094781905752236309309496022264392231017103805334822726360129391876500784248768500687195008567791800763347555757398051404838116982896203896650876681581016361280256694622313755649119400787044027541160287252830508477221517326181746867521517313121126424574850356268427443497204017349435368630802427976400842715948113413546613775035409808978323461064157264280653666627252941986160977452190694348154185138534712759322017193783790612380709021637660259784349802103892529790332714104646565588160529395427279444471876530452358269844116541315650392597481623991319377836568239092200425775969678857027846303819949510313404033763239378507318669002869202326340531158671325828112715970120238104155810734025773905498764608907802275282012477605172181757388431200238109470090497193816874533271179195068036705809891851255928657006378882808116736112124336956334504402809843788901970696691987565725661462806339360594429229187300349756838559449676117989622536342711273297519625132265751030533236441167444555570971845162623097963589091279440101138215418959104780267310069376328873673414623766841519253826061542262740153413789155220462848514396867645150695315550090697285281451554019083050614201631690509760520754452928030362455557750914580374711215701822721403292522197227127639153377851742193158861497734172438586578072881593070377709502027645886764779262194370989062610689900491650404751496562347316920224256682359394660416058957836652407218627549932104279351655614468569344342899242545497192663148334141721177172557344714960513396568125182189533376096058225507385639717635134406071198904158616928709054535919946650095298218224414203328087255488710649312474817940283573498319050588162503409747644068049827082998828709602051848634080594394146465216000929894516569714984151137596960572443333667272089644292611284020512793628919403886088755503996024136324990459700099811175002327660708638879957877777859576289992360096262593469099297922448458877658196700531280743739749966304065778601231692408490328195705618881216006394705315085767695212666405331062706180566523542746560938798246273443587592573488876120917859142582298692892618699662101752004172096043276204158619052845325280070012121558379944206653175836894396422441567844281364207616560671517405209644887875086854641544805121131286383367606120334050333497328093116237104541426262475007700950100078810049283583537289254523622140687375070616574770577309659303926983492847644672488473106436848787416534140233729793643364426452902653106428627675129553056126729519785969879768940554052966163045785096178838731199621115608688486334996499292971232600963295242136686037011468342965516164851763996551198872639355348315989051324967227509739129426090115724631627966944533666614051719344142390781948672639194163302429936420391630946876568233564915566940315294675108978900773164671848911270408480163860492341387696155583760725244367385357883014732033392327875066042242860927042649334718766339049540864215982047351888170692618394185404979400076578639049364670784263316198585065033341017898799387087476543455446704168910697777870260826289734236268019347018088104711720406222839934100114143409927711675805833552850925837649783423419640099749313252618401580288965460195263872017351629564056630295697567585517578888468967326331930065993641282764733829322969563921785664240426699226878712077093360596516435346721074288750589974110871545288276913538769153218445726941231000006692971324903328619025386129499970260603687760673252993576982786135812877414810536014805392907224761777409270846519410032426705481662637453224261688899007711891144255627938347692721253441310935416467929938726330356547372811070275355242078771973029206758939336858898313160038436309440656320111239193767991076195628198621478994550386867411076900065582343220255506191050048322038989326389807817431760587725780107773429188714500389668439231978782502678978880075069594554131621109103388909072285812129867087585820544286977575264728842975798808498109036619768383164889407064260221746885643182827622413760676048944032795950510916350009891421942900629959071150954010016870048635763569465110641334275483180906015046522104568839246404730170424272754113439385078936765086653036075707911285408293814208852943315488138615578893064788461024657056678268645027643212560512173696238483039535358863465674085561033344326954713933446945002416941294169061525842475549418489015583691058998618107816148470058195827777842374673095096181606773200331025065813299646658003502344630417471288177589325522582349478232282623895854574181160834567674091103975792829509814613874074838883259150883244221249152372070775796714688268164851486779002553259686291262548303764291177522390192966837308231740215803362883371172872783657275271978182082448454071293879687533362612241039764070852571236596613994822521579340029646566348737706642743822956785037986098770176126962706548678368956284241905358189994604383041152861398423549804248896607559858756799021631880467426267841740576203831283491015022892254914962560744210089264867389032351825376435885922330786990427443507587580653846493889697622988900355116236358491419682575200186760146478248576567275953304835050253589573962510784988081059818529619143589243337269766993160379619385020812230894074194689154484217471314385986910869778430635161239219080641455993932589522577144068646453099676588749780274397371773917941719967199117319784878762404125317409866552412442421340394459492604964295240198078439366826102134248616986217825924728014875999270953847171730482396714679646459783669230847196330748547452058311629980952892824792852881632343024774801605261656143898750067818285255394790127019421619393991818442827740853704872804032579833118766146557347494704482626637352014767050804176815039675458453777248198105310749236714479239300646587763248210486541121476400395613325312439374242576933625659693203337309798871318962462709702891180765360605949766479814766918141244480422183409387003429618873515893680167737633340287979439597932869014586197714675066796284830416265245578938552914737721153108942858359836777704668615872842487821923884248219870202848930139234272834412501689609498696229612384489223466334009002937759133436893120218953324502887667154777447227102919045692348779914685787398236315981393296762349617238921208634648414274984731450045748133134856991786837811507578317242000486526753342483863212948492294146827387045786334581116691782116187082020408608619354887867173961670028660354344652483700049357348839581458328094373029357376127933003616088812635680230525595885575481691919264360627370013856495344871042154942605721725734233276766043550024566415611349485125268646963875826622809027177102870644994083051789854783171406165828240005557562666456547048418837375752046471330607192557657336371179086717165858061503714134623790334442382295033163708341933514258592302999742700864331247657802146774189822460091430965728774175370585304398581254018209484296073694077771368600167664914335476232586885515759639168630476393022218832399595026430492800999802669861122258292681875072100243187421206122700176353006815722878624528233669995260338283539913830583022207683685767764170787484748385196899313438294848315833547688073398772781068969173415000556723849782779022112606094803897948573661969229857297440609220198171208222748012316684424107378010760701371076672168679958930878939134979026321842022864234664119269894284343448288761534456269234521727548793840375792438987278857252185032415200798109018464110858175111856791783946986090297626641456055876371703503670297345082946451548128487370562735047579288012657848895433911638884230423589182792066372105349696193512606295579760851610112969890575808369070885055106073625715615332255839681264783243940892133650135914788197958672956616890039335318245751953256314661498044410443843402268902183821835745805901535132921510776484412365323723248550236774791203039756455209742451504749929659272147027792008747531313686790425602510954160604669292334331733220085289299157979725403279807403976796117982072958419388151871047676558494299510536269108590466841228001481633589479735020115734819670731919591283154934025886417943722039603532080777357784361063368577516713998634946086696360119618735137945311934097797640104212190343701061065195552838993555091699351621775340935274774209386092616352829660507339176590841588268521242206586075307488839687336126830311823011712190907135467593480721117915273198463172399562325627449992400291614393062401484303396502155644328870665245250241668268420011247660831679678233470485675123125779045726507853120592731135933273102282274520543006359327820497049555440386818622515836237154875601003440444942880332811280427085461670865234456411975812977108268482110485600695998292052084052290169082560667825105986016671194548162163855538502046404935004360651485128868733168248819096468675394876131968229827329092294985844470598371580370475890019813139021402399113496957219456474650218652926871007223244536100270207611407739727380280666463495642686784336970530645924082080306319282473646002377579692702911599856976523705689893180054490740429469691764337629119374953499324012226806238028822708261086287123243821790326383560751725485976476454547654024896729680525195660905253112580590539157378920073597676952833470778519063780638877026683090126385336603547066410541337910872842647866649325145370285215006366770840633513577437313672665564085439832511685165438604511712492741173384791815707148568980224754370578261746414496431389874217081364720673709526141109884730092132399315239276578999457430775859163734098154147247826428744500670999547366900507874508792823915572634466482093041276254516792069715550742063177062456625041079170144566185461074550530687844397510478083925810865778073929724151304917418820516026442890167418271216366077457756403612960898121751685215901057827691975301937472728848170875834918628902807204423633437242274196750857600181945013707366461035053470939623389556355310872346029203411652670627311169150910610126883952371526708661860460525454514606787830414423801989932865670338080269672572419185574142712411190061501845929609217221857655788931253121561966227640729032659269668455100700588003331102020967017040324826228526584891238694088479861702153070419717077878419744308344487289774281517178303853394789999598825127546692175782641374594017451340516288017505096495038815270664257243016027665860874998162223522924014950630036551974776835700433540690791335333362096525300458324237223197391861642877533035360853342231446415920223003030992208376750321701531548974179378672157638898125681390126299668064052129190685262402449901498870200569574789476296682717747987985181007275233913482086687388058699367178159825498065936065591573745545463265062164795203737351460201498111847860278421581680991035176893356179844677308779908286554258978959827753173747923870039041666692180320463849355905336599770504340710690790402813590664342048307444038884434998293718872152758948900046016062228944175414701329410230019414270386180755753109009983145456709405407571960584048885856757262698163212221684177554737612549588964080398887621484670483065695871120497219010722494744811329412887294813348186218135284688776556729656096773555966734621471660001083309443949897734377464825172739632744401900538472874554225809558670426046710584201496088415607827828950747297802672765089302757293441703370373466075426121536962226368226311708724540879682538076667535839984942289508207071049948825151421383553999918938031711607050906317512686306878869755224413453730988159395213410255098095822934831445472807998666791989105233159228881060764083921578803559180942485158628785801321172073773532864715487151009919317636817114764765826093052380015710820009408521642563642319394347092475986798990665695028965199877260577336888704523816453739312928069264512304045673911160872216353515524131055421930794542320862554014160553300301298275211498372269378257244587220865127772537102801386035305130620698694744346141239678727478870636823200582895432809763684435123000351652880572997297507089600685407779954363690744275819701156965079352670386965801344406665512683663768677630094605431128594303096412106110295159584586895917046203234418185309029937027521122658772046963692826375603096530983502456046500615261853910567521090258002461837173332283588780613224262425933137163572351757902902667935712272440760430336306149414787803861587974119589312987042206100575740096473256276824584427044746611560526222484578737400916176684374348698523848348773609422223343665633414712403439672320910203493197736475099743455612366488717820223893878618373571858099170604865972211561829668853137382159246693806687165363479032483072151717829268652323889335458577819415756580456640766877648461230604866723885405643726499718749296017400606071331026748507853569553124480491131649665144521174859954412616543930989029755213267140296293811782790027017429830550282038653791330845940545247105362764769559329060706984511835215527024895753078202163350429545246213220745700160606571902301415811737810924653953937251511750986265940240587019768919848452497703033797402411176078869546432531738648433647861232566594762825512888053759530533480057314644313282545991163292514050139468142441924492188006149481363389441952528090026759480068157716002891614045138095908750741008866052723790121286847234573670733107272442384423942581315296809858931380363949896811738472898388622659271992768135370363667084235960896660188035499116068504740226400637643644427659325443917265650217753743387967503831771906506946462728439945477737816397316259206565138739551563777386094782270677221603589582745938642877297979614804783091980055273438169202288486752816575379550846563358578326816101011545473300056748442309895771314117473730442837939143468407899212859184470894192499409942082293408928462790751733969923710706914697967666627170007729659038410422408570286322412102705876431063903815529584383731563959193562684232304233273634268389761661409920699118924937615076923689437244142830254004780571676577999913721690207779271806809623621653322829687540015117120227867131673173857384352687572334963648282155205759581354001773925150043546756765814874685626264966929499176502967842347145872998264641182336025243956277097312061392003296118174425332148340052241342702615469178145018634204539946358029793349391646283424293785184056470021449184276752928885611600350771766721820680342024327921124006847811199578116709505886633797358804508165977529022073547379427309100740053664003994070359605954633040057240067867147295038084411449966639880325793290988993926619574923386296746883706889510741494575852307020410926406418197611067905165227963825878929670730971168172359684266596203464743069230691985952025886682374761541119271907550272344965872981118253290448258701464839673459718911536495899218260020919723518322467606832055271205578944405850464193290269781824978951753571593610935001573444178008130359178505455269023805320527836867163872324383216391619201355874886296720745033858393248896943630951745648744204214318798044388188385927996214530164917027334672073334281727891082807135844900291834236068094095836709437055206686541785536399043741187061161985355853339939186968789031661016382898521026776773870932616651642813791688105609833886329902402647474864858736928352947450133728601255760772301102929659653273034613112819050779186989810712838818929284795277288853322495954465148492315668302437002118371520915177415527202228307527738963358713888508677322286993586138488512186315712845898316177518775502482949407937538624872394351793686708168891933725296597015448399309192643646965911254430244885160336153538538421311500004534809741921052433640969764188356526657030609396119455523124234487297581878057637759250235893809425750077328253692567503418979806137049819600540871076428349538018573078555450123794512244420325177588350017295702082569164620396883302613806954532559224747334339124412564385264649124824020593700277082490308290251766455860132883239016453503258755820160117420363125143802331578627654086242718496032490949122557503370439713756558822332591836323444529524773967610440647091422046487699022552620449731406806185626430804489751379162817101615982570956347091357288476167364386784115278271431758087053503885588678892148109810330330433891366627311749831055241584752897193866772291184290778488108466338386169947938083032757070174160033607433527123420766226582176062384223923435995092372902782534401133605139694849869947343096387088549385125791042207930636885009898111173768866015248950214130911875819086991208592103998347082637017460689256728432889460624100936000708987921053599712671289876660176526180335908332701728490439041016811999973638159061063560913254728101752967557586537535578937758947836052075491435930081900404729681255404071312920479057466714026843894488457545499714247813125430885680318770337749444348903488917908204961851127184244275624308940079738338623032115167221483159171676877745874634095846516207579685521762870381723173067246971317931764635608010155544384023349845472006923318170228283807222024203605978249162460652207511788094200878512924516289951151438429854547919753060677318884983681915864758582078534827966952275012864140739699756186253741674850367647658219727538853276868555825389025950412669830040682171717174951118001180663126991776436184035239047611210864723154736830016073781230338385724429705728057364206379647117241293921196980486005296201311602032894020016870244638540791870220617439531228593073566701322986552859375166129639611714075886190354461670061350780566927797524867398872817577866353226800386987681272378077752690963228728994622009526990266172244203601137616232946945913358051375270929528990910526895674904263718629852904806310085962851186051017384282205415882962351598331794542472920226513764082781912245067070079636942566042450366736213326565518566969326512067897789772271034117228572020440260690046604123707617770218358044536154285860748687676197764453069806331841450649687154383335327733642287976933857925593048936509307833142700173154918403466511846582924284930429287174670378754282267931587675006912829011972262372441563654929257719366280493125035560813640301824161581964239865978128682249172998686987204017550511551343234401678078553166432327947282726863668813255722625899135741537005432925405783426913074767473063578364486265700675090339047675262865790863504492242544739386076931854392179405482021207643427206016467758751280671411991261823623263577604758181583542820499640786536968116550798147494818297920459393595192460620181361905383842803450155188935829435283562398722453834415787647858921094022988490512268699189580475600649632818973604854992282435527073112309551450695502903716213889983927017738026853161352391682812621014539653060498370529799187755598731433744137667028480447243896519413365957850982417903047097606385439539733018759565914491314017795566328363473774176999967835560276072349521459723938661401745388380499211706966196797646879294493381572872872199509821573273471595723019002068730104707870666199851337861076495065347818315472408364056713889010119338442903142690958807753713005693172613832544986494109222069926185165448680324685956463888910186403144805021074159452148525456503108011526580675145037970969351339113705403563551150943674725149528288015832366564509748337117204498557271280911894054982550892910944760971586287743857230937303668812298707259773715940693447628900597026762045292602245810320109374227257744172553590415587943525909323229796922516289479526663864537992130051876839252456175574153154906922607540639190294165851047425848082546844289709914999414843975675052189425176905835502693645627628584094405209722345346533082059968841028390915575719875114093583903826897847166244806417139195436165267922625432992401785764967180396873117319252653208096187086278440522677696459959779652651100843121874188436885016708073491469466818298292101429365847178362097913900632623197914460075147113738033993898937323958416143448124115657758643974181961520938800226313404648710609439248221277269293670030178727441061764904124113378977414530526471124275383958105050184092793126660037556433599970068748638859965328101918643672935553090728266237390746525548568449918812146914176271409112637869492569861103523234996987689501456300682621362163268546561783186667115667516088604118215179496201296566834795107116105243663476251966219805941637447452785381407587671111357575086027470803023890481257426203914753023122276260249782724603520208751758472924772339737445871404584218963360118643976223465563030328230308959208115784394499027706112032347992593208572171121731948249336245393255520217584733805605338471661907495817777935915815352780827571356009052884034955324490036666932253855848553602265426301220240583579372341522089911387617211375967235800803491920677782734458430149553644818254038482529518886875799901690119473937937715129942133849197609554404686428659039537779362345902904968923998370262810524252632433795549731679768160547532255095588075490737204745720180256901408004309545657350068833920206158522669159153241237752922310705800663456926664237692336223132117765606542464927974259231887998244311023255495769862010688565705999091798477606619906283566110870827513080198000411219069671388738911526683511758475848576190187263525471557231008710388229664382457376812605644972452671143783990356046889041666611188522891256949310798373107283126754628464235333102637988171576908028078176810334679653491242153772713610532472697805705404527219562489019728053841195824295106006104804367547039020811324969769403511526505576366658711428974598042100356500226987389793939136121748100486320756203025515120911622871208468551623314357413427372895773862057040251855282737553859548280917301455899747882931614653627386092644189631251346215330950328073327739323468297743495317307900938167545504827664435677084765847281499928963493812989057605150152722118680744545700604805937167439210211042901932782818378296383684807789492911731809820883165449904958980104943128424336564948755151016649460320689887208743489075870704842446663395521677741115318524532375797567340061215486741095347669389969947221122048561284308265917524049467370928745083294238951599925432181104419101948051255330717829656859110606262192151750494894541972427329033354577174247395637379163602497748230764070244535182169015869316879840973274641499521369238344435309583780790457264451029120532305060885104384881441980958526351358988582039625340860286774929430045664267486151944810220623203217194199268888675530660797571400251178668964061127749586747775017727676610584807166639084819292538336154258094757927144507828881166357126268377586757439918911714137866978998202623368446120683390147988763786729977647191332061883825981399000709851927745974622460317935515726722820761493012455359436591131571430131359877796171559976358815658544202524313356812162349149020375142272785917015322539483362812063471177406527346335228940318506127763804339999040927073480670287705404688373430857571349128194583472096176631470642919823915495088906081464647877975998233648030501203186279779340774253485657901770040476423677532930960180961516903108870141175540761108998766922379023562264292393543992219737930962242263028623044207781256144270334581446938760093102030891314345333607117612741657871580322685638072418614739264562885260796769187184702839618549578245794915085916014411781871885252689466454606107002002936702864391752227666337437508983330579867174966494893992292205817617002345790023870854371130143240891187784513078237148587952379020942849272400140137888614919773159154204395563070936764807073135452878800081727234230443184279601931126909510810750579527226698489996934688091175094002393259371100439313977397591932156091528116879812726679003457738108530231901266289745312092856669878578271712953787889289546315962569977226455493381389089993224308481633567159108712010253260981413044990694768694010971684015290312602789256315765618322355764765315446955809572935832627487929960523977208251446016524714976833382472119643969866612907693162824743916242008099905659797370698897019797865514974011763834878067970998189308256376117833685991505076516549794939497123050937236135819273218638663098935174882433348541915736878129465624451440962594704410856832902008142970907354343932410755686102714798205595575453014728541607379142364390117669690965664361171111655716065106530110557116169892658495690748060972189003256398844866032341800269940688050058369349585862498458781963313315969115635133589624554845223619593458459796025882340754922340163367730440003238479325257990899972811940189235420684917640439216385364631574916135699496331100148158313871623473930366613520288152577176241073224304355365805472690220682438605520287927092463779879172138279451607895565987223157718190078083421951940030105501206779662296287759468083775803341776883110965960420566048517456411419007740947091592758192775894555235987007345103048041639741822326033235932232796449189910069101745754843832878726344204951217667555240882290293060891583056331384399223815643613552745977668123650728492110996774532847228643325950675961310067569696530771117189380449779638391003838293915604260028491914871860875008035636013027772800169165242748963165529582888657306858161067690274543304772178917738201032443299027878651931711516690750367723093625196603874764262295843990817547982182617930194460942030484944389675033643216006444941733963017104620872328415495492774894170452161545695452363595432752620520729440489190714141979004511778491170612881412386389640705103303161992346241090088036399351459263359980522821962579152280368451412232023047258284198571627641694055355896236200833582096545458682131973763241395600296998289937869928011222109815645801430887191617843440573047253174430334911561059466755785586315759970620047983432591714700349171208002561734005047671869779851124626221129026543861358401130495281369536579073507678441965135076426704675974033069537951164473220272556758790786580980913324812591364920466421062289320448604897862383640655237974843997684681897597710544738888999740651288438233748387065475164653078500999341617368721729831277627013473306342173692204111934558169635958844717954338486158874228107214534357232882550046996819840162099584373707345323807886907039570213607594238460320315583065410086319812323702327170775185997322062519035565928699494633791777016281945368075800399314049236101226192695824172204353674450055107877912189095080160479275934422817543605242293656713170637920233362101806810823924338316536328607984715068512232501039408194686097859100963360473225471057369992513123960681051447083034345736137055282766107762860348888267716181881822203563814540756032519872055184985222818047828880968622052591533352013755452431830860272647695994038384873500251076201388245050451344870450695072638748667767898290397475783371226874326184749433980812558707542580447126563885629787735018706359608269973274476857244961649833271004316078188591251780500508769444630031023778674417559488866351950294047136169067821129232314328549072291296426146097856407372479750523488488393495432189495828139401662901481310340714643837809963155178481954935379880655376017805334930154376115209850795953361877953098416476784233224296867825042845545468581486534503589822874146708308466783815079904831171776205114447958924692010514426754572781011081108602219010315738021126644087024603959774886238995533523149052829882689835587933724653412917297631527554910198876469249335526324694371173407002542228703297979377151388029526925003899377752917269130714062520369750391474458056472167332973929782660374507763277329240451307195612844227534019045535337188407961473059004937173267686564938978999227315884381508758309416710929115242163522197245249808136020058413789461949403976671189043985819752945481584660500325964569011223253847522232462912187913288577291809194096947757269715395784681493171361501026357272877000371272479254097382651225620150755419350635443023279436582683830780846518592777139872352370979057333176559352115261965699758416647887094945589119823226232654760533271334595297584024773205836067846646958146486383199203822492057434608351147468215139269336051132113852174338650553656314656181932641352612727421990393455586973109170824907866560949491003960428569704479473262829809836108128103929724548948331460091425343172642939284874622837747207881250907311618136427512367929588097790781005122360904718013655443484068144421571428508423484538690798280308163773143517228749624508997203709394323879623769243356555416264807315224683114225550457553669476976976379878599423392145421586822049659127397011000076205427388213819766832305157465214103058733336844241480263432564087399908485665937475112730812756402431000530798890817231791594247957452651884476287258904524964972949076372603438620042179439335436292212375784486804351068440515926961035324055717254336551263224992048688266548466772832436073875996917285088273980008514328382640533781292021501332269588866885445143978870882730650500502832664589302399891762216384853338857722265503078871433706593344142830071426378863391848946500148614978815496552598346799019215048379370201962759415309023298953330650731023079972784636724059642629645568606535218788806660162908939352059482524814663399373025513802664140137642711353731755621784741750226362640704733235956739598546685089888705111545804466845257616797057729995430583046552911145573651289930899399597813889871255713567442273169200747468565583285930703014677165772185619986209553878526781738943735264302381728594227433501978263217194178025883032858540593950586896764832513115784430819261946308623797766984706480679183544352273582202373385584496377089702049149343803451685982169970679670656141508729067544263172046853304402484109754604591105821543572298429024398219869321792635791698213588036615989776338097491284770360740059963864198059702830106076079132031925327752297044702908791938634451100087801131159455292333407143086342282264316628339446146611415148280732186666137802782585440854230853193663806627488237791547530906374784657776967339504217727156671636368246462416567610021874738441318564910573714514814491593222592426903349902653897049473195094282464154290671055899428597519816357506594555875410693096058274947831356823498271190348237446830570229666427483832912220509536601397706882271392702043189686408925385150653162599155291061720939482315494570846563035418632948401168006500042042737316450235254118454058840922159343282703551660648909864328735141067338674209709692308228841612493999293725769057656438315218349726303119753209153389578613746975826283988463320728655925863634820536853950807411021947526553791822668722051533298508341258174709561751562569204704627348900837696306185198297259708294532727618271278597085448887702446419422936408078334482975324189029405151931827150886581398750757011918381422013034303761312706390958769532850249253703825527557817790496104920141201030027098864560865698385813656078487675950522456135839556676280681216554227740636382418913007534883405455171491991992370803572704067982643944437442491518288942964455103388100098758970616231125743778132791986670672749558260251907866831785426684268961271790263948191791191203193034216112293204452352573927243363141623073749554003305292173648791104961900166997227361917802219379880243406010621708573861681138990162138794797035526547615001399311186995628509048473488336673374091902403697411538446519897065371995139249013941726186587752054269706448657033556006316106421135565274751448879545140505433745622149987501931239712131991231793221445646966005972665132384933485669856291375692456567199820684661565585549645061178005157056272391491939709746226469942099872928015639779448228985501347921738565097554512128863659121190564872825550285848393984431944296704341210857769989116487730228188967758831038663922354839592520298266957985769451052780827014300456236021502426469537291883591709073999231863646638696065221764343240121356286404808747249689483720380641743031325111311180623062069020868929414115902347535469631386204769763288340491128426226910853298602184297255595511389952179619340467139451291218143121320471857306970369637927743129206621582170341890108875644629249363377792641628680393462650059446467919838276777585918112691570637716999383732488979774691250665714942138862045534917714953272847860660381396443411072791285443083738765190173063892341912865973833973895356523159579563435132652786796537223934646456123889096161905672887116917312890976695673904602581787384538748683315530455681416654304904386399201896743797510451838820956208306432974149643777896860071705254549229672582653143196702809624672308775729501830551013615821554072633657582706118050586267032734567553162798013979888579321938064259330688187025886546093403540948364433676981451802290925326438377959563095816791372820534133115310058644376717730004552193686261607591510306680280382027997922147674003712866362992819535901805706519194957763530587698425715164668133881007385962956872965074228062650968665043009213210437555053123516002292501053595611143344904876091532133366552107462164355717183406074335111803436975011263729374581505477279209944932781972413072819906118056313183219746243074814799212331507754737189392179887912653628092380214410548848278605068513794829695108757448830016952740832697019706027690389335975334016417802861023665290073080876097388193116659321073647873635304148011134047160246397941032286207170310979160275249273372998674733362099533437400399717751627939256001419996870290854233989536725120965821525903751694395529558862861812723026548973889421053160493542136077416373783277987856095633582310967374490704259087721549664980392432322965817677237437297451444029672125724369988320291679728014827147934600944123508604683199119729855132296190591852056669185936019651939012115124704198912154108021098987667579591536652339206223212314399475837157857905209870693761910821228149442713170343442995146864514273196417959146996606938054735591499697459608642585933401567466370517386011944219707686705514860641899076921450654357243201201645049586076015377350604173301637733047771979069504647789766875255310037201451532974904471603615132431819734630734143850328178891762818598971468309197938313619104022956343963669225039556333034356245134875312391388429722097059572730468625665124377096423295863280918952052685734425865951672142310484901166004316966185879915543868216854707255186391018795614742170351775409797941421646608254265780434429031407331653346143705436340696737652435236775492502378049288064479079428321064571617405049354150498883685649533800577777365896354347569195331382624767852849226723816604909949946725031768864415197498836830937887999327203555364938844490124253586317632463665238802155348605226590889756662750196452344037600163351148387886047162710626940363274261215417447289079763477612189059854448655912017348249629027063699103298085715788210448283938632134744169980079770656169024543014179819828193773468479509182293178014513374561624985748501957425283724451586170240374694558094401628262913728457790622121984358250811868989376802631627347745020838770294263288026398491450413757005833804758616325737747445940506842683219643493158609454796216923966804150238589346428407874560163994119752802381344865907063927664030456112274350579257976605835852756058912832296205743687627397858418772722692435434770528533976738683889410765102638628414334978878281008855112637096759432557787832624290279831964928317162993330410410689498633202279984704643769704417180922214728550402655683230886876218806800473185822754790148853636819189219472496625309903069701897635253078897356569655562671967456202233450118227114860406398680479617874182241062160673434485106072995865004964636686430359038133755570668642175812900474561863933305508296606608941183475974427524444301516765564167289647878900702053584676938151413194142842084841425690825985108771908373327654867857198107774590619946278310278022982066300437551836992969960538469935761377394433187644507535249184987995456061626947401991919071172870529047245746219885556957041191519105174972425381765449393294912015261088381286156238534785601373089761994456982664406884234675081249405986641173657074095280558053169030664434949843440014697524419506732468216268781207732462765616935066969377877825933243061997884292882777620698655456212037058632932382860023034912868895621526499739519741193976506277970484880328706767834730864111107247428692533634845655394603011104778545495286313676408449039515146726661278177854037473861428747782649751914466893697239619963103975246674884613373200369046400544808640364079217381715600167458811644386872693677479900044012806926301422129188487140770402214206402083682844853155580919673848558965954953972159123287368298161321879118177970577579538000048719500095918845087125914575038924696362682716359963171944952967139740935020449694093926262876508380618912861423373006367862877701986265450788379255964323627707127774593466708564200646544883771319494663436283061369705396998922904985721072172692409827774579400353151468617870404998286244833130732824787313271896513701468915091974282697585883015758140951301577129803052425261515214175525463257967369926602111491548214222769727902645397111624639326776570756777556599110730455330884045311024686002327719790204048693362763305058841460423034193635797600697044371816373957028233154275771468013207703072881263176600077928979103630178010486214471681244142753952151166048728684558882199044535191341787599715668264327022103709062038866903619763697353567683017838724345970254622324322914112947508867947882385457562459109177083738590210667389604750043464255369959811457862888718499758795883202481811209644629878085668010744441572403796561394590671563892222083755084661387684981980257475940428872687390804467943000048102065925761166823209851849054773035545224943506473367051545906089173673269329280900432400701933332193874790098088160621363433577677599120156894452756514009492374125691034316609398998206348209413702383893900397939123162795110293196349366732204680422378128804282168369805190011135820940582140256751008627010862246367205050496660113563967506837048212435842438447078836530289619314413806634017786043048509448931487914989690047250376486454617578965703179689633006594416136468517626192913222250119074624552760305547133191454890139182884554620982695377876495478566420580964364183244583712916361264412686627359288090170944584586438322379240311844785861408041777179334599174897045778580896400280847365805067814047977363848711566620662550030162672997776300445084481291975566613830836747004664640084855131134858778424938916396721137476079088218859565414666302711764500711334279048586220188137771275495310581101586378113069017465153704214749201140009144090542872552996164198243275584211309250111908847075043674197565438779960722448871083442700437382730525769421064348405399429059410034230012914341773456177045839658198616235257027084166620759925457906883525544576214405506460710524456369101319996750690244600450056933065646137340387237825236100269781846005365526004289013925052696615609875773185418640290535753602262679514273708968136062459330657594452813466335508971070942255830783612320596457296494547063219284882802999392928832515094850365994414876794471946180914644861581610760155950364711649970037712876835417435220110619517920232254699221716009920763750175182354713347055084469006860391750535625533392526848111721471696056806778842718942857032722599973403683097820963442188469147495792235995200795641524844009106951124540196892481767159886086131255704556414972589091139321566532241867471126310851900772523764982990651195902491937128680059637864236189448671575378147996500019633570746430934163465024361104982382446221877023592972057492544065802467635563979014627387536627794084926697835726434852982442027721885616652594227002522491455815586084035625960281815767525277206667620846681519621262931280929174889834922504905784947092783423774318768289774797066887304810576623214206132057720613818761609956226593703587287555102377852538764932762044352090316654478036159932816845670961095169765618893157406257553114193523219719515894917168268754747346229025008195550682883837052298508246803389207276871599840968955778662441432500364762250925854779363388736450169990203985391501686886121979352708023404262475824198084106807801875765749607395148011308672003975001516649164108200275358908936626349703216838152407745722104951935881064527567446569512559293136622627613923279320780288793627934408497667650443956691731356217034544818439561644727854158269117662620305981464877338253767596076084001337920774485448135649576872671085312890658177847450532558793596728713292316320635831900124021302339654519575832489479257010778756696913549027324630488460394568283079663561614294094596996662253211604737462099978113533798396320851483536656084557320359330906650835264038250953977185766161811960616533098630652281624412721195584837653843474849848051851486365757013124183052509508052771489023576645591847294829247962528353047198331130770163600196715311110623212436262349994579436691981733984302948282830137547310811748773855127917025323033603548358263141998726572602267409091264501992192494887351857857599101292255984115278559776456090627846604626150701268944809488208006567074883111549976619115892945183712669544903445567212229536598863576000559511524657981608686795539617380102319901913621727938397147498571661437954547663435429866438958995184247925328999902637478677617847048515076970368965559885773473249317519477718895890226784180395966659251339647140891527646313441344630828609244674812072271571541839253449553242079802250426840350931511108377920202182076601294890905180728443597502213829123764382480770494362576648298932628530080092153861753253105473249443943571163357343596407065483074779289219851480572147438412378504080433788015994401216962354903482434019548302329831534693317308606395991819939535949778826185013221219516764867232464544651515999505949669241606249119931840386732933056972783976786300188496662041057256471128645211406739743567487261387722551579854158981188750197866263040276588156932712381494254099162401739935018444325448260921552908886589975380262409609479205647251789018905242885706165807210953508883106474802514296891693215304719502017160424260806851007740973342191603986099249164698610395245348554934751167536853177803093767607308926509506743887385819400995954322371791722082674038541843733037905435475691516121777349852009036270820562660772395939426532043856617943529296005511938147670865624305299548982782049065219803509154084149110483466269580973533262738384299892546723077187719356148954562460499630873897197212778050303896698272237713869144278425501792284517013719612601108509738052646525375640436732865582229157642509000018890016847051128356909967238644616789350188114737065487945086306413964123084827020085781279882010363980643725179750200706829260903731189139171093423819746962005693377990975999787518055742317104112016233023125740220893145651093231917468110380310865911519700446841522562792119504837950541235189246384562370979003302830052278948556902502819436760954744753572818489116562808612279538177195704645281451257564186059470155811053531787610661309120502289587712247474349090880982095054248369387257773627230303082321658150300869027675350800555889815024526346882872315299693683475932719853320974700775820261565710726044960447732280573115640945728002656474827524771311983926138393774575795108663208433370683859774762616865140090159818777488253898036187566726290539466664785176705011798947728273401709834529803636019955822463723881625936232530180311334531367551167697765131091623437454771567608051867953941991270928436147864636259839650408992846153439519002802966647413063831406004420663425406270695113447256961896075767079934318078387984777514789625766145594757068161568294774711436984309241181061969461493036119749578649381324522996561662793985508183662154242834623910624622080889742306382459785694949047549480467060920184631345999921902319073915827473517586170431080370354102839640849334840566737727290196377139005616135518219631369039556796882732460330642381051233685954689897055074742981400004980137896154078957578263752485250747212365837320189712910928595873974241307666620994359294101900351148705494004644842388969265292185810132955532625294339856736562751899827999899271589789581252402942400871580664012572711393403301521707614062837902689902956312449270724038048215594120055837056306176356686137512301847030283624014707366411192014438217627951852612923693823925107549752949320380807087695253693441615389112740018561371729565193280053186045678790815749124042349980839168879862391972660760848926157596749537926774567207879651162192280083150266534169296832240072055205094710919655035252692033635766789403395079903493760769328955244737584512467266868547323766779295353583323286178245603518831865387045569446181869793415764560005128691336527296048296618588834529657525565478298297194878747684630696766380660618815524682402377134934985634727406919487536604739944218661529042379021977017226546390741930634988525105686859062343352359194397726692317755271689495565768815090301479368800546987916598946913866972257397290587079609688672940484760619229545928259584866306843423044173691505709050912068110207853734539996708711926067120973852072624371706382878212159548045745280637413670545801495497374013437865791079323198845290403935779549734236648564590500101778917076282210418455773623759524363794820016088832730927696646883988140766058558260242221812629246569985476407648813030638117566557003171372864642088328065023937978615547041755242897025384599772576769974338687510036144697414063610689472734822970862742527130260699458341460479744730521680939309814553201610351699125588406131293006398331959211906471370730322050396509417894431820672440758039447234254369545264387888993404853293493930446669133135914751742136586158471067460744997467867590553931873164882035998523513041630096679554404283098462902790992997810954552158846194366483892947098177281339571182386865486662503368658128868311704881495286079528125668433497624580060433095540357905230788718485012884672170606896658105772138814536368570842408275530034935311311982429091346510059958737598116893604628760476274148400066715002970612601260675392153181735470263194429633409530614729364117659623921813441516603213543185001929633510312170088944944309708800683519478491856514011391881969257855559456701590642819601356004179561798419481497908606793337453902195246895339289786036630363035283374098667321322290683434611951291213617419927548367397370731297143623154991856996589215937095033677679164133621690374739478463217092146654628580448169302117024740923290967992829818466794139404293684051737254311564409812995493954338643448930524644790091971340069870671210845040950023617615093500421075744484659493591586366583805110674859461365624416187172433090758009267775535883468016137818794023670861108300380581184286496118704439313491659281520590948098980763975046946202295757701140534724464456779293959747417365877881016951711141531646091647641580340780491135797929634402091843623484637449858861080676810379878842661855524837145334449822884005404961123592605517476435393574784514590215282581973855865831327607138351454707272164431188922971073743553824072594307047767907138138194267098791170985817262376391947762996870902537387102791634408383476698621955458873840329940881943028132738711247712798128051751109745833125698134165413090809881785945265475066516615781980729374003256946453040745449420447468470885544681065473025746019203873619615811853187025483015472888692121222561349352001500661985240958000403588246471128125489715528727243149547207606906067408231860800195038826584817828695730722210368866571280106635918861408890683257957191153669980084986253636965199575289905792045566078793938182162709609625090225521456338382984685006201454817530122064065679522693626234408509191014207013298412180077896084527096795611380464915894259411775216174480707401616933991866069868109425486753387467315013250844181522417019411847432601893198034779462477031746797438143294180856664049453608502472513414874972839715076382233835387906200258902303127296245576461324840324685515092028497403883093780277979832525593739378649383693634073599340525389920786864220478993589969632699986438744935397032123466047448587848333435825147739126554584132907687417903841230598223840653656459872338190571961180729194129088743413296026651982993671849774823546644965311555231372980115188881654956222346150576140034792589544246150776210857472416004887706652061045210921940965931271625108229535167174422752682460440246540579065002144079651394449314784761490492141024077976837689234893050226925881047934120151189686759418030762211913042208533609147273732507232046631241491145320935599327108425546493956091109038822161722538012865268480809812722852876512489779126985088769022875310106004169049611132707768000607252756056340190176482546000543371584586434459844716965372444285722223075578414593083732809747011296133487613671210617950991002601582045503187486460656552370489290370703896059696801776906818227481967465949470621643942401825662931295737195530237702567504765454939240075618187280418641597775129626889052242529229852930522793317266320078036475102180572098070781621551672141169187451437362018115515589542664980472339494535513163549329727448662868257696873808773176598054724808906912024670442186583561770299172633999881325563690937483877561322508807219650080755590254352586689672836605203841302509746663097543338981005830154751366445379946952421981643798579602858801349434364936022636075216313552593028118677552477220935355274321937280455944875661130908784521241932138787699221787287662343009543960728248977854636681213939257200564398666291757469995926393279486111402846719658157406148660579477775385140251756388987343064403938966409682597417261414581013145978048757893475069847755587918470259907752508416695647685902470662806933026584481119916132520569784923678169856047339138222315470327621017490368781230100066526167934210430694617156757419704663115655114263144877375071821394387812182619584797179252322212610187802303859912225773416721226384879365536797056124694939282563010710911915482343851826889932952812384410385183603419675234946773350594252326198684698355830479619330674607688763153113738750970024542830700955927634914744813464868722465934874538604104516784954387736154236688536564422714744131731491648573384326256898326423080414422866057521169675601621390871047433280834425950244792398162456927801371594475271838403102066126336675769655679200487931696898329540034092671433560222224635809961638438255405880490035457237126406363535288603675097288751334838002439954364650825192170446881334520516006435908161566941509329848361665968896290153625543267840159871448057809656463314892227625468673468973208303367223057881562323376041089069530089377815921375395803462917483013105285042912652146966224421964703926612865069653945960094642733167996727959443524495891990315100805461724702262389535635378823000798767613663192021600084377276927661523631533834422820164026677984016019830269085673920733734294515676604385736446029518456536171307602614298249916619831947127807179174319966490275021530552950562552082966680803423421675905423189319504121145811191937492036932801437135289453731490664828546867764251515191324168212344558058470544883572322414508600000205270888679562698358101723854511120529438991531709514180562107488148574864972302226242303117033115520527465282252484998424703387675734218454145796547508042720018011102859626738735198920565280868687817233594519355136881193603073438348829635634792145550736770187600542942452967400366234512636488823497087353381013557794486091863481727680682758439101357971961088640409140161404731814677083939189230411599934056462325915237821044242728418245901047259918961409514499062309822077967398387317149657041729368849699636535826061906746443099814546813594969592523519751264634410776698776377305521289892829599847008269076098933197836227851013385745320170483972510880897281113980439017106822251669841724848267041812780185569763527196737394152710942603674760814568282045259005731853958192567547982797371991574160842094074931920565735237739096506816482765921071371651117931981888618588243756792841664220721811882170373068957176029131225222558664404972064821248328155585472849563383630260889726844435751875986951149884296146648337486878049876664235386845340774515791354267922698788111583582115395557344260899054229321079600867557814914607133098936548324287627873982887801815006208063335599413261698621567491449438029964681806089685144957558197722789598298839801296708870711785306850545684608688648225100584915405987722819672214316510149479736366982986681775584481692792950332907209908199254073370820539773226963110648017512917433344103451825306918871988883315104433159428544610943560117980829711478651898764929536031578896158163631581154378100080229809919674677431758774488374241653235006884450666480860498237913733592004460598594582785433315352247105572641201543906288390140659299728009902865934861092889121831118669624002522317574667004408509792294665122733264001741869044942156759433376063417689098162126932911886217112499592139709159597720612153589982908501370135789390598516235719480819728311348000526305574970103922931583999482298333575024376636323398597704818236051420125614468358508957334108119957154846349678867046104887288105027397745388768267904917654271410108491916392132552663206915542765603430208405261809446738961093064989607883057958477312401397406895961419340358837075655021929222256258046205770867890516149084012782543433915391980974065807331201538866800233086270727098143772876376031034084050865780270743193608228556146873559209022304572662823030595521994141724421473034911453175234632365516549558456185901795876960191037821156210042885034217803895711652863130764264008272680427386403905647526756535102616408648767960544467599975020522080396364180416307880743243425254675098843285914997308814840471960585834043007506098060570753371061577075416418434562287045267542385414586778543277554060025079820513586630520915027328999802010511594464926046917850953386192318738575990091532020950317903940290492266215530001297763070153950990904812858465981852591033061199345849520103877618080271255730876325595300533761320962844698105790196758616530932045834339804194371486008540677714425636755748186592059261937514438980801600634898534086921467324093986228646451638873325507464905853555779364136750532821383829436711195652457467529334406220224237755717955470005083541595498566895669795729773907881393753330984945332027698283509421736872611818215792317599061783349289742272382796163116758232953461978161708278977436604377327180982523650656172427502127078415260835813215704121822080801631123432470532823740922059463594406625784276706075152172045965874466750857343045293272747601652341850586594307040830941702456435123062927228091040219369439664748002714624013910929977880231512898185755919594100409955246244001985217926693516287886038181729079981280656351634967980546274365739721088680169705260697496618673129036251741891880921106411557044277750299830873711738083628142743577279385869158317162044929722236398561786219534308724636915234554834488165247001144980718543861736769300130877454181717299164292496686182441667029239305624893528062329906032637308160275238332288940773138733280611242985836413160516530954700954747579951929795499889898819932401171337696700919365647824139538378989488533153059552333335648437296955166087878091354937107660299909730421539123717280215947273415435369973783904551468467964265690108241206315401947000015348679279139543217017656604561514082933317600281611995426178432614282710094586126627331778332568840061835913377738621525486054641268209746378397568597218163858968296164149183919452287709392889825317252203813646880915190126246602998739638689124822350382838830059117988768438081459922265111435523932430179816939794861627776299749019374933643858496500733823208321875431236591084793954854616063127930533851411671670292984662959053308850296235251369894043168074737519285576483266402243620995307719494681534267931548916828594845838222087553260325511469107423783201687199553199487896292232397489720624747514406881201849859385833764839988954829935650663627544197769427482121584202906272217696807719271523557461910376617881927184972536036742856892975005411498005134983963987397139107533090729838149684941662116690949892838736409694052185483054953435562809372432902011107727093294630818199578074991211902109914987459589737849293585334046464061178230244690057083655134744319824990407424763826201631674226947713390823722017177219990411011239829597321178680602541687998116131069069347982936960887843299388955284926058376251129619382110060229868945587964354319896887387048278639260044013921103187950970617479607411870963991386839716725952339236517256848544579543047632929968540366034960032895457217550402399496715257858832473939152897045584636401156513217057521999468418631749333132211682817407356698844446964941364061613663640227756195892465110330549896682440249768353414449766825143896090903134199042625388298681866546961672710155059182570347127953920846811611232207889399965335334631482618681650870989881973829880587334834833167401750792357497243293503011202403881123873352865808045003666546195872849684959131997754726256284956328238188508878452823512498153112233091325739951651760400819104732955908528939600329440344868553838515585672376867984778147380234890276866010875248047229094534606893838922540124507902438699431710645873781324483340655080170597793203732713497828038609268087532197700198659265357468660169103989172737968562412016668527550404204513235564579183286855479276943113835463252100353357029921516597614904678649141778339273585829940878587834814637358730636151375904265915051939540660824557052020001264571652808642640639878025648716950320557126935841437532437974871188005151271109322902581348487151629129881262757177799776814978957896800276563811112296232672599846587822182271756724659550260392411171701034253208991303385870931923504566469723398431441169854149530235131426200792101616338831380955278562894360072204235015600067174090711428583759269580055798046643952503940354652365798454475967327470676747969598456341574146921963223970649407607368596552431837576940862957794660017397073199010887336075401943395334653219203057503750012884346835062096012056916380585021834385231745277561651848506285472615376704161535431617157967495596288015246068586908992896654857853582242014081358769919132933142504057109868123468867249563300161274775257868926979415848391714834213920520720355465825809694202555942019799707006278528176042755549258025529393602175114141554232828135884949191909634066626616594361480135523277594015909983407653084052339628468588409536970091316633837085110590730969300262928719561555548323117626864131894664792063058956273579366363808115297485978727781615275051821626487424959526305429949012198499707324661876573025340547218090285191774975763483965792786537903582736382712579653988181659432220545954761472063325546650598925416705243797692363590839795097013261239060151552675511682352802675927961136867273868392796922031716706912283669481507514265518898790601895847432169295396973393041194543441658426745025662623091627294378953895381725410645192085193721343369719534610040080645795057419961593590422026199083401515747498503837386325656919407266709609816752585158963381145803132464120973655858517846684467831135084234767537990047380809246332614392688557747238919971145368002384258505574147458277743030458094386348261391262192324795013458882448556306227150027990079652063672735358383105698763227127747418668077079874894526952912410237365113026322478505681413544284985942038121180460585094702611720237389219857790349368697311999596988100779945767310950700974165721543385567530070761725624958762235170058135186209413429715938947377448543642300271960679551625191656394779769535613090791328516732531067429716003873521228932868987770485237532065327172322840179227655218413840597227948284705822888054154252037454777220377504589160418615720986047050963694834302265555095045611375154979406148745271963236379890537408169099139684932381524272804189767549380138850657054429396682887958520405351687399153692713952991104209081868007093049178666874660463045454040166410566964468875166402555158229170211047060579571188295512338262405839333178572668448077443079854439336325596859186632676329038731661755653702423534412538978035747848169829816649988777425583397562198745987748606097371161165951249095629123919774055491810624280104227416502629579945844094795025117985463241300855243467772109519396561079632751383214721774660304806701785582089620264429064633873832208819079835213814348223184646384847863488663974978991600887303205435077219496921842231483091904899141494887881168362033466258854393593505936429635671147254269083395500313096827793699163039080586584780927620439933393528683604712751509024720965530523979330099383672209316018867775982604965855826790618063045218232681168628650016072407514504871873212378035680928521368281140803394662296929947901519810896647562644554627230153119210218638078818768834888496765603671464435350958419987593238540831902915036737728178671494898250584740793923410170692660896379931604599712310054876702752191899660392838674522498720093194062905322658965721102552253408605014034184052192084748116602090597534276870969022980040858691548507413875237640592363938568800948470282632997959877470421550208505535224169499879858705655805424034862532104975543318209250199249849064490252327783859220397371720027277031129838203455743831408221742805140264350242198085463799888454277315813545331685279601490207262685063269951720848373461259765270689800331247881841913088896529192834930625204754299788677757239369131534293697142864806054525048477117556021132559115897644149036710767140918319799323216175962588159646053142872083307810791236023888019804321718369998872772883852046682887541658851168506137853826610766948048334506689727311156678238850361950527465957543471181132129707952499902238043785822222201900236087782424852818651587193924893855600075207946205295027981848803708886300446583476791520259016994971971048923152658195781188970617619041584867520550336107225551814158394505987346271552270197925096327529706763151059358523733119623232275379695070928343948226157461077709278505033210271765971867819994276308027188761811433095940727334759310914200868335297994967887698092641396436468659461144635848902746796236598076226215672165890782266542465748362168339772403352738271138100235160924496569307886257184980256933915344347920932445514343265987987844217714288026992802426310430094515341303332643163422932152492031048493387169992067190613367185746219479464367426128162056415016723523522823939457422400953654253671690408214709404243150906569332474250102043635209213191885772482904313802983691586083546085330514303837135660651591965075244258065196194623691394105700452834112164133465906045032593790826578140769502856040823530851502519242040337615583230840718943718097001539954433784366575700626307951205953938584330758839295892954567758657151462243462220867488348598377663390317327016567714140848309463016890774819024566365796731433042980919307790657204521882712327472515140858756199424734135002921802136356063668596702243623032333596220335139113148831213385365471666589143504207542537312290397095258107732173564036794695006483433064760497562276133835671313278231176387643512745867488735716324434660351395808171336575369720935097120167831429440345789887147992314838763949055111258259744651708416235757893365387541035627434471239717295049407615788902116470978083682496306742685547760577128296511269088522468405979730901316169594366211704025667631974393904775384215348250763717036120798001143159528640744901403328065561278782208897782794871161513309886348141113485150842004304877452907959892456579482670570823521017628372374687904188020860703444435123269701138073632361416349728515376304104886303230067547014410225408823696211927003515681333605423821921671817562300850949512412328459279962600552185518915457168020657858978667547327299526906460169422050926026608316811517518464704048889310976333951249063387650993164671652696899178127207434759069952719100766522137020896550583214604864767280733051900954831994816577883557234517513392038182331806862215635008329211424918620312045476405361468633410134303834196110324687810300295669931172789813755623982950070969454958391776820824891211324171270941262538302475505035052550945585686132040687430720610015783433569498486380553027187774213457225040107260917221326107356922968568763622595876547794387842227247971516910905834420117125647720990065398766484038235507755558134674722614167294846099367128416234975892099421927784414860255847637091896815766194207857166944522051859745303169137166719963381325257297032048479208088201522027884709366472508644705946137282294117564224479930095136470077673318175184071421710161034117925194789462333363974511486618069564308392538067175470980862896283336376477652940505944367484545237703926123648262715951790038864370207654562091111865424317689102114172495117128824930033487669680320900328389193265194928978974638353524549796605462777480055054293085161492192768867674080040533546438035276616115296145981255078403158331411975216477525837785002866839027461664806178800202130934143903254426957886963105108753109656431150429227334168316142837539874168202466138779993573851615478699433688081863250325500934857558178702186187278266271693925831187802444650520944577023590962346596225106756944782947226007896878169104385108943474140090795684111135855598957876557040087200700996841137961098741411882771471096136662897272758347981694387801755674586089211487017937586311789191301692937624226421250587643304490765855613759511895993128386227449151672410521942148208531544854944105800536504271780944410800805607787602951316738220535588935466714800792741671230892816742199996563247986130575253055989589132369650611410039561161947373469932163644447004217037310530676057857648103169305992213772451978381987416010834276212033788073542389280968091107840022736538979656722020760714248936155422343951877065892636358129803044642938343697970016474879122679965207207268674794908649909417468439365019932415122414747947733316274361366142126943179568002205787008848317973525486908220865763790033118510446728585491387473917268821609368871773625320522485568537852219180202846335132770138515913337332469436650600946843137448059318775094875554525981696239498958814067100480378664818278313624547517112101599873538753841909629710650448424892015430213837856424887081217994693760302845171473545424692817645556302367513308769186271975095039645847756313246100241854455586109532481397134454663952297390895569855369283579070284230261470036163081654448670069675310963546239514537311050885767352186443876311143404893833036827110753236356356938982372579316873419195117936498256837843359886069650555222344886494482864328894534409550867055983885387878500833893293660899254258555347663214676383140721384031263364095687809562558958414435351136087632934100302431737261335569682839391905194950188891929255822055108338821129373603056679913238099632616359359301200395300087920943639948306264493586560562233344907532359845972736228118491672723144425479177659286056436151869766454534287422786865435368769138623224315903673960727339583424185595118737415155505452251203569830659718013514379985273206424974461307017105828397745079525759376009577319985498286390165667303029254417502981380932959397232069031733012369206266947534866432219110196665704166418585480224638614554781457253214115973524475248898876582309319123028103036015711293651224401105761256338286232468898730477701665502358485794507618306369472382170485013876612817076139592702979779517052853906911266887223421900315205177232654626199463990116899246523170154502269023654532237674641488951927769545688442604160155743657511875561791349436676277269786666459844725480227680721066063973138685783071049263147390363724715609392327873413139838417859478831468784646090799178714838628253861030549307292832878544497184455034977706129100557273007847232829819980698269939702090146055011112008094743309590706835354076350535303887445244133263457020441180964717473522976930054675856447702229730342262131681650776035595165927225085974335058667154247802071199308901948270098554360632783776342021238665196781999009464844686191932800147278134317126977985765952793672423053329407523958403062992251053110497345793797976313672572422900724680724363141035062741638569859945513504418502916063581679130084137473362176901452479952625411872515800125263139622552984282121040657202856991793245176355668310250815871523131990069492175558034802899530525732163742870907129323838499626120480764883514630730426582584602274549496246548409092109817758869823902529507963260128708134402120320543665923108972882175672532450646965658594748602646927381016917900379767549431533484361854098667236508111270702749887931044451641375425746689979756276831183551726799696835965050366534058316417508750089453670314057570722157735624030380274341682117446191172300015349194787619512741451937601207481329153735151656322401128512528868938295944624338643209952139808821345984029928688742514808655022978386000550025666269836763928654553805772938844488600841920792600933142863327320744217659306401802924482415459474858773995622071260775082217211041803561974712769866894248627078676054601320637005695687409760580512688771687300008938755203910215046799784798437622077164633170768287354283661063486850892661851981895126472796011493460035411277902984180770223777437973787786756633676501772605055056539006868533764705037716566236752793472307118398169187164138048968142389197707326028369748952031691388389754911147628858013244265021124510830208846937176800866217602680959527403092985867012607897924238361375416465936460579994608364937217730270288114663566640929668234584400891133023426910179927014669778914916200961368640029007332094232281058700068116382820561647795698979467262416336057872981797220938809310047557100082892645418535604464625378338801700547733043116789382556044611143373678525508683438506167305799532012626648835145393497091877427398874590605404859314683022323714150288344111618798421484224984203216991371831306787107364415365852567004142583582267574642037658193668558727415390327485166381055109205206804737384037830271331570391844329610372233188832847471352010996152736797207649190916842849967539649077670634600641727496887756971525436155520997403209833406790077639502868824178399349973529998642998249607842685008639136459049779269205268926988169624485851365113405991531173050045296632068389714012225763741475692942657671744149701731933005734106367211052519616875108404245422395270253488742157531220408004436538501270059448542459706857956451455634985272586133800794542516598379622574028969940304323553034906620741887033007769798512793871640654217660531040565162019740602991269065621844595295626987724386438608386970260913225801970181157223695239850325104972531266358527816892883287026353586703440204339897398584402436900695572118993957056213168350790768799540333668563052976289846308665960162510016683469183035138682376530467346939475613046950529599215218213392296941608194150417533126663905344514111772053040357447994213599885760143040355720332054104721295380517690845802984165825978208073302659620364519231427690279573039639009689172708345379098754061468052395889388359811716813174794313921992972134518787726079431318613368011814615826304004938181512567901871807847587980428866026333034002538557587826328248654602517841102267866295086148132247886835373390168952737706625287381838080546517609215637602654398906600556217012851803512565268648457402816012567293960007649970810793467178623530106164084392292730820508965462880405515711755433269554215009064044689990018395979824377251244124389999171097262624402610423528562729454717223798557905312674939897641704451331643309009718880525410888333775653686785834150441959519818772310896483341364917099991828909954969053198491807329190340167443438477196347112507892457998730639789546436044741430958209250035110143253898434739070847889227633553655091986674328501057084475198267731089838279150798463818496163170663806544751589960067918971295685293939231810721707127801188482297731606726919139848991052227685904970933394036262433831194622632136122283016056930258541238686339767151569202520860749251794209366245242691808919740435495226553505566968805319324254516077938311459073146800730471026492448874598323724493420637000365870820448659691228388692002402327918934401306945804395580728511710372375832355927539515002617430400094556654787411299148763970287366874075591169746648813391354738900817201458746329424139495159117758752015949616903029768577135137452492747277985695107517960863575384250956691889298611553083980046173251449129541923206200592804829522654151793161561480886704630573455440589507858667824675927890108901573260403640307131490784554057048635675977467975294361499124475753954070451862320514538897171836028720791558168629972176458174130040358484481448463902562727306551525125598852536768286733567599465089812158828421575467993932160305162801623948997571594716894330058444185513187292706163030594849487427034504809935263171428950009604028419487867052337533222038027940841880765636072750951179805154598012059484588262981764883868514410989037758943205769206510348226376680844128144241320160494927693105443272420103482797093529558089517914890219553487000406438669458912788755656270619824356220220657774777290112295645196799861204089411571774561407257266872088328157440501758758415887999497802013638959857070819545212451698056986481136349850126111906400284055410317278890575123974223860390939085810712397886527196081086116716617231274091080586380305101786235468345458848783873611843286217222345906214043004303930810649616871590613412054690052604636896855195396047179445591198445829470871012984732360595961069875836702926360757923226874165517844790650824661887072941589344395912496511870850526967064088531819536686146955279575645694224883541697862591310720617084462434174447254885765383251283279452877397952616591308064755006304271037706025807708836815129249175065166103272772762489798514947816065950055025664688881568988561153947799297968646726038743970100621160423687760129851709830029111531884701362200720064920445182828633527021204095335374193582964835875446876620314962475455657871829352639534104033401016611300659989932392361660667178033398066480020754340594072908740671007765461172998292764380051870376514464633143605177893935229838973101755412601852413676996398630918451102012780436527765205061754547280536369156643528631089343059147448035672714191811452783961490008471354220321519118895607651766508378043481992086996292889911142071668301260507875891264292126754083600574229851270750406751189985866115910443173707462199008005436263755365408659106571564680396744208843322371778367140349860549108379770020800751535287085191811774755461642656042735183915562702479784679439558835208176667246627422816202907800873519026806051293380086568114753122516282386409697479161719302564411005451917153570936652850629873571612375713999205996228443325967392588106457918138757163156192380413996847824126613235431456508949711629267197357635887941635647075313350883992132673877080542626269302528226940632179754375552484275887785992310619176239576096552036188777705441417139892885676643205875926329997556766212945373097441797947462542381165206534285211769558623611352330016012184377870503693845757597601820470966872490885873599936443852690676277895435419522480820959638377016459664537245014072499112313571637644936069953822812656611695947614033757560147545305768112347115774570529117371038615888890708870425383338547541936916292335525010824536730466271336791163866103054995372739108934973856485034357488854892413577989085541706597872727489153257096256080175018908557589132223087008039418458305392322222600420134158871072426657111746795753510353463878686221265944508625473938504914438069000550143259735467636057631017583604836869438655399730289379518859453746183958296171052681029841852947474350567313692088123898438684498083187087392719490540994886653634518317915375205423360075127298046830608045125507467477676661156691358781044622703282569348124576199700159307706061215656426799956701485530852827448672194145481738775219917427963271956352594674169735292738290596581615717070073068014064704290143864724306218190273335710919459594491782170244936226568782344381209333463939408637382608709439650371446010728975893981245865910957034301906426786647963868692499996942871797225128600970956328988637967028668006538702613632249529459036957784674088582950376893840248171152627568857020238502234056052744042418084971014366353682153368830396590279464504635002552865316943824956745636304047012663212043770788102391896141418302071789274652294828125290170946756831116247820290216412625571860289330742550686094493254514903696626292577370294927279370526415797446087062356553361750981180492756499080007935551124765615950578566533028082981168626022084136386798142135042983109325810768970167157397053870237619421718743228808871944316874965005653224124985010192743731719758982932682859999311125443560063506481349828439220497352839449188767947135512747150324141030306058091843399252945814197806909542721830379795325018311393454069615284218157414172338377991134261829120659446478942611795083517451414632159326347724910169464192673500577523144263614244226123655794898308302326801409177351063550010141570870387073073848943363921540929328706067645952870983252343215152621496434605583839367151239822673139475622279509471853757922446927644996478756377438234870134848703761276149467189813177528961737838900012080715553843540384130153314257840718536314145260970308684980061434786925945312082567599184581874898198133677047798232506349896323755442498375544890397449941143965645294717854248573694281373224247519173639472332927525047453437745452819457950533920326357174776169977275917826844157971890897436629554524120625463451520155479232469506411677175018873056200294416614107732079348657667653948961640225219045709726343863827697145636125133431120268455689549876729245946023820422297354748009846199599187019636578155233752792453031806774178058847859625032446569403604183602759318322130147144171169041055149970944857291929097382056627203404504876591834892080946695401393758259844585529629300527314273795491709744529126702948005797227836504972831508386328649098387445327188234117113715243157218122060658812695813564760405877441395907494514601908710350381779362319772005926884612309903220055690421381592295893881435888248286357412073473381908806159751011374746105295103433329229245859437526084923254842451587152190025725800075246308379315884252518044164524088541529160657813067668155379645629250754778003918615898545319622807768863565925647290468242972636287644859594697883427445957986989545261318455323531096422814057130625925003859124206494337271950906442523325811197893005788905967910713706796464771580510946156498924622926504990913451817404771209745769992833657625701694430532537240223688930251952875194558227119134761658278802709913335036171640512213921939378242911914489269071747378930650952369578159967815577898578035417067793657843581009987425905256115393915520066116822173870252146061880660147087834693736439567602659471678367542418214928016334697014521386988137334992478643363708432435869325665850511727824766088741921771489821128090727291661138823415026636034155142869569450344725985390246856910946533149048126797056363965648148671180568464955827813421953956348331090558321789105257388705725596877260876808166624685557269730282724313726188148709150443317646187922437914756283141882804472801068397290891829866541853425508970267911467146408859500000353731548685826608161507299405113400684413528769724149023717714957235402300770453766572295634090442941504480110702996784575695439270193808602656959534423846747647024797799155709764143940587965222407256256447009032771408348096210086794933236493312759526658234227754222339644382719232570333406775691874380814348660571089123454350891717074635382559473323863526997592193874101477852721497159378953907283661450323788395588693702882861152703054097591896365798836056768583611424027215343536022606311662705654731044167248739055943791498123768161591631150542979546245071900010074984238065493254063265404261889333980424443087703698574122404297447688865424949290265454708830082815581968930552926350933348133497156685138197882181650254887390807642245787152997548101013664176650672878531143595749326418769820605902399443940116628652846450144799853427398579373318625847679591452091465109848435558474280318252301381469164697228935615623970302637443108860500287964737983583953421635841896978735407963402078899469580227210123390080088126363344455511015324699240816972309223964875983776805679031457301808227591421569800644436583981250042108699273312379071660220817538670473640916285552645088778453277939032764410507060331565523217305249716930876646409580358158583316823271833003839978058479754780970243648348800726022364929798290596774254094436390625969413582426801347027176569496258533230314003757449143623450334873017687290091258817209114007869803523204112373421436830768652864982403450735216437032419809765173058053900519042186435195594821925405354438761814985014447381406500720125830692360472714173476914541149991762275691334699730149815096351078990211565423706953949058704153604414787593209720772958640154650019729974955359424722861762306885633897123478420039244182768651940261083043555732292703477455887146647626391427443949876572615433247605370429360248919849605826828265409595433449407568498162688754037945330959961734701988575471653275852272099627861694988075228958322499668707277708911870369443147487471811365938018600754167204246261053122806984512850153950713187729421748976064199792968948957679830199275266024604755191796979377642601086145581148618143506568794677946713052991122278985470686978191129502335377316199432746046240676332372918493364534127349044037088775805071561228089197285291011416367861586639233209562421183261738405245303216606395635149355549070098157779730617686827960846763573067129281513987246410929299490685786474715749829841065705662643583248632677675614743233760475510904028638764757367260234186718109334217758030472145557214333661618647034156555758909168459070174127854433031868800896284712523555927374903528202552184804623526092679033546223242646605520107716950115719111828433642287084557160624546582927136476327062514800916253055549196266726843804367964416899578182888244176083530313647893451307709787232017055725362651633387622428435496105691931241627694413584864883807881853554967226436053452748195051187456595240763754638441953579962276755538122681957069739127331316227857174344909052747746701770427190133539061158254789360149441548075344390584640608664157888238668468290629884778001431101224260614175269557522052261282472248745714266575108916103097788806125358322578762114991783382977336226272244711593137032915055217099848998163164639638052500372755988016888130908261877965550223834604178282452172310823669733432618344251416083496182008041890335339907074363104616374870648756098945167300472420792873528491881811298991554394714680287115148266474571258342281208114180858172109392524437338747970981396487165683304567663119535469409505323576678325770879671808516651149413986582194648843429825440205108319854364718065004302169593215477208727083981289672209600326763584856235112184811838940578702212139988256753749565921067842367067945583862480584704649492608031683964765931526122560554806698456465757671547046776000422318901480780322577574440296999926909637181208342212405017789910797853655375316168878806549744398263886290236428069134309132570302414087184952952985959689842948013166924541580935951179376786979825808555192950211682282743418057888737237004751699213237059929259560319806617605993956473767076942751421946359473678565097141031011322928134086959071424901751151420611001258058042433058732810075591773687143096111343133646182789849169004419382728893210821877335153117198597166645052326372152764050452873789333286576346101356077103843612540789251713760936922680173959113354382127220467639484286612054264330219032208608161663260211717565730109353352672236559762531410376787835494045259399781589572855032250535531008023747309519555715626668984959093265814144800101095231996970747016011575938831517902861477546615010042732231058772406808065352362057576122165257915108439734513596741300056442789363353155994647532266242751766087533267896748474439594677633887884832933973534429349229438657977125174238013617330156789174938236831591837020351963562451861309739674482803076316269499643237414479427589849656363563687852424792280850050144977371160243715853588224636390013171500530033132292045896712110235042587773233418692829098143645926467014588578227316363763951376288731684368672640861868711251817801550511382948877753265034210813128343467285321970717211521291294331526496576921629117085093672578701949077294510700658600560038649454152981249480713846850096024590326670890133839555175716046824207632414322321501530313060313286058561548509919433644356686990706531288772963195247915645512470516726023134001067766914227022996982308950886891300205392783979946225959903616682597108924795811960494593423123790396076538101173768425396794323228474451294698056365715268479475800114168766805563805744222088737578018562905112590185563163671570254627580582945653666722061080373056950174431389765159806745109443519471430284009254657321584699271111691718568615102371931763692103696975903086217238719631265372118358172003330448468185086304436929341244564049528453889357914353499110460781364966354045840931302513615112998277510773027952714646420938264846570147562126791785282254285117904411961381493670265605618158877239342011750450875643835059313415303408589693154452768580929211370570110663178475387581032496351444564805269266930577407577671642827862950299229210675567452014746849911853317568200370927733394259341693149138758133824785993745579848331921136590462115942113902155820444353666454531057060503669691757897703946035265645834771378078903022333006538003157909433617068329989787343820977288842925148892790686400477957782085152265794419421977675138636930890307863519518719256883080479244313370581117522787397365481912076846010715591859966474837075662030853613102719920269123322870334335971603136377573695751321175647237650815775586444911506892797659335191890132019097755755379987294839510223752018519675570831604011573404033077239482912200924934979859087229720783290663956712433482122440119782671393459912676500249411320135672120803907113912726722925038796755369759829576540181533292456650259286414741023870851669798844937907661346372296040905152088119533550545548952239088429044681345538381579770780410426703516684240157778782680233997419405474215661070143147416762865033803009253917909682430018494523005384610302060643767431611892136427435488762138412318762224773966488305706616762607525436719506183958413271357551019069389820299886361068261590759364382621183741271754144351133221309412012635124246731695406002762957497127408229607430357167287094248845949196713896582064320610108208584338304890370730680247322290947364466128338448363142939377981037007815464850165735589769614353424379044754837497827582053572520269989253879071589706592666156933462139026463824097996611338386508601176450131935392393298719133200944110828283932647905829075679359470564250631561207954134148611718925449864801190700940781945728065355502405348511453022679162939307943751837080365433431841817067197657451546611866552810973314708832291887507030272916327444145946883367231999011365567958323983826114551955971610018979494148257940201000168917551616503161614318746697886460616251446548230874850421533598909792538144394461680107387295398841709911086970311087944839847223078793422426371453040815663787013879984788175586495847834430925029977594982384926086139567308754453133472796076250227946828714640557252933507444998508603218210952728914809828340323663284248279359276956037213242130642548594881812740050283774563276010341424133440296636637280702736722690459672636569620980576544419651539201821783120754781148795339746087082454052461025516709301233364303417547406430288538549257810512641457397801239009809853673166497229825246237617078773069894849031530652237689898018703952572681898274439075208287102219569888460516653040052836469260798070619489633439334314168703738282435392324172053177500495420033419720194531025633875146625217611798809935130092370060063479520884467107768440815324599052702981321808360392062241468699835088662092085240185749957892643943197661246692828792524060353088117026247325983168234220868151146653441455864592541749432797838987349824283852203091552506024293393145253035028727345049198976311538085781378036791604286517222073045975661485311284619176497102687753965105328374984538494183926996069231599510118870923849427744605743653614279668044684680269249211117291892898377227669624991480801036853441913923717904649113136131614740100338025173852406576443766247433702037588615955897946026566903420512749255799657660566220150871850489144934664906112699333643978992224976722718562319276300433682425237703471308599980638950658163408073740063780264580753210740950999598090582106545914359984177519170277471248038519204723784829534906001607747934679432460577374651443634295176539644831064288138336692532951412487010297495304961351757783097499299602626375839923407389088156773783678021499477633391968699168444192440665954410381713502737688846566990834358750021038999147827524793710900210274218232370151544929743126285098233303658131672710849450606651406986230067825525967273987070707818133586355116897216666508656429685214182439962433011491084189400276473045691209227096884668393222819773697591448420809544397936614550058383327521052688429696865212866844835970604872630451082201128003972785896132630216486474923687924814291955235731199598314748848932288124054422683654214762270603469425097638037335300092436272967712365166480285705180441214581436041993459143560425043074440817112786314706090402292703250113013205412585068161400804857175688710195007099921313047196879594768129339783728151013538606171529527611419746791815562788030285047149474446339490618633387373520361380278475972092575359247475724008748694104315011724369333155652398324938313704626100372914042338415748948034513489339556877470821837828081083740011732241700454118677593153928519512573516549276053879079062839466879563864005563954911591625122622922360043950692367714017985045920255490738363822167102812315513242169535944220400644892558963489732600519348979500110730936191995161382059657471370762825931734337491622480537874907226764332457048210885149030229574187016189520132092464860862483214435225584509977130878889511383343335307201470776336318140282972589022680179451175273291247777184748598578886965019290897227517308984864743998431715051102539144751152297558922590596647642176913082101568400283739102884858331645975275008265387187373978718584619086174127986966314388399782127638109537295385557370147111219718251933181486509716550908509727967569267176974450399830460859451758388983176644532799953468650169118321002208837924171051695471273932640404815564192782004242174412976494503370929346555250468568324656520967218709464078608677313405920149880754410274245161071197776720309975144186334582637491814853388959879834179869763144658765331311661489763591405636338569648841303956324524836398318838765152890475081277397359090736730641965056466529339880418243888990313671303843769854346074198850430510128828704432781976117873510336999056833720725045583001030389557367890262490167497460691578669450347624549671883844247775639213280849120750600867337225321228854741376131649642096893896037152333966185633625483323486916831675492533670774018075759091029909253527223841026866722303746805016525101493490621026690390736636394085631059244059438907601617105750245865551497661851187420324356058924455746604696731956200388515822287819358122323226158507623983505770002022756828446290330918062196990191623763738971974070069537682384812523741608803757323893923615740139987544451203834327966294367009808991130797542778277952058330879450883894863847211516659044695674576271137500007185308329569874245995473646835498429665335061760868593063976313855521292100023705911469431265121910517589002106034608287913323077204023433315606346014594313735495064868560876264829470399302623199873967059818106977856234197611200974973433317766301476753852022390024898269823953981240423024512532285260557037180760543933390370472925322580995504180202445522471688734330785521028047498774624666539225241679734691179523401515672283946210904284250496466895214923206765048810898203254376222998853937839436450655160576439388011323883248504430000749893757646284169567495979179812039886396094630326937519368493626619608190917917338274480036756526779533321690044351252034804334298198961847322916407699709502360062984318640243313769224977916780243030698653625436614930738975721103651073422214244257910596049767173761420059191703552407632742776190300159953737370215299630773619727455940344726185988476033850252350481910290272867472957663595085136024470561274516347994890364688584640108725101142370453890950746008966485018650673529038021284817307146822615835760178420191428523794474169711750829919966456765248790751717788643253917870194776350013843255501120288774637075468071599422548303113382775180555914265566089726214836638492454697272784645904490152775368847508282878308248422460647165179610424767241151243287453690490108035875888287602386149748543034862970855486879109213785280867046639858668231895435555630025857058722483742148146901689427087358145323473584803755673629605300432556329269723510329407839586523953585510041235168260653750282147906843033360282982325526713824359145364173008385487240243565235601868162163928983846951085632291921068143982067042673314455945560365671245436401030640939428342600895555419861315379074209720297775775566449052001428045160774232199143674534851042312847974234767825927159591624176395463820876834094769206847333635277564787741332399803201265254805750826410151855577048264622133953918224220697249068447217669143023656678161716129294579910197910332196456498456101733899722876755794616531657751014547638035190242337756296552901523367991349689929860186982681999845199769570287949952220424043297685279503707061255221602633029082572599031795913698488796037090831141795031596644245252882518320665064389497100306391933617641945182515545196668166679070883669112011870239726455518138141176476120259091877736217078090184976346720673418006564898367065820108611528888721764060224507316976896039079827490961027026624238029088603418409371483375886077775718001229639820924351011782930802166243173277755145436803938953693475896332696780696310359658140092557248596700687917273999789659785852216447526758389196661565801608561443656640745846976970456617242399413365504230552940365176348580561351427098505534386494162739419501557795747652336509066654613206980732035182580108248423119820859742032660838063489892552119453826479829305376650520374666688004140722993515628181733648771511315708639005204446041971171549269090666187873296073781603336819281879667704944291239640415598778521084698826220741725197386586812398374091958931839452323231988365603076534881663886515577628819475561868833858128697393969380764704901276456576543971936524992810116184316630789760050104167209883916129747528071326939856148978822962884174199324330003305549478249733703653041104310400220764981941056013707826473983069039450021649574290084735840917041995537824184159047056742819675759902275014093485234662821672207473069754684353022461825501070604976200388048171885619912714124519311969485918129418794220345446197969928243027019699323038578285568118022093893953472188309352823958676002775493530952190111783316161543914196875512082836486103927157814593214607899663399476729607112661525745338400299866852717826942449640181914342273477158978058102457728062349525766143330357986947047431786850006811067684795812961464309511488528561121480327643775670403392469294820759874938346130848650197410855493348390496825160027959450048037010918571649870575936210084765276168856421769149687534979401859826624125144931379397324046282481012256646888778784171757650602775907129290636308725105621023152981639758598610495638406222795003694127911765692083819294445920932762076817252094535854373272473402851201615144148878546845073275911492817674189623232103031564397982328921636611197275972623627006672064310371589566377581786880074155667692840101824781774824113821807766213104898294863589341562074947601920383750565570025742315193944125480511646230796347305855236265618036189012578632406549270578526802897652188907371224091688638683958474692635155561964913103654005314542630695669715559376226939986207677125301921289445458730915728617551061814753499585245213520801001334713115811621492304493380096237023229385159847374757588179090754677026088795405982995004302070641329172566147700912127048622076398378262951796386804900947282424358758158951475179510284883427996202562852624283097420421805828364695744926680348334530868995665616317081925320334061375427155611830209723208722990176449669278386344661464262418921362274368313966846458324762599746193667828823705916813388700422873464819495826744967051991135996227302043981447269812215859297223919846042859816075096705389178806826597471665180579783193981634929227507903564103171389218639212351075363129132944494115683128755015793946247022454130417547938469508172541783493864250441669029384678815052436325516362336969028346644564566388419348850292927096571574437314086003589132748243773088480569202495050695232264609316360672914187571061334254632996204504581401088534332836974240338441334055652721564515200968229992713858687228185285817532821078049462411142752029830444638650431847092222621540860603632874757409031247989648259664944239820962520969385086038048753610047970797215448369920709643762546369786734301589239640976568759492960720301711856201723134809596432758961831335106991966483197525048969660758476235106807704460653512613816740616241812216101938882750405449527905212810185969722706464963411037319506487092338982400443047734038060603544980805807135650790902358644018425683850681545600100701362299378455747983992209708301019715981563836622971345124775874776235354437917764001330104301825698306877953000696505400608613147236927316982319307479080322134635793421760024828584032514585748091702314082793001109320350946869984417997583230866446355989091192845878375447489477407001996070827437328144972715121350312718885348597178622304407878725256402509950060948040144973815186894688024255403815004543671575540937576110256838348782145619639174336984781601826392883583136414567582659145590301556704499050743231781322953480336287366636804642041135520204387960014072472217281618735155265731788582011211431059479948484975235771312147019018733313541069906318037097432114502495432652441057303443771019430803988355622587055277650630827050465270387391323519679148509936980854065140559994689649988169068556488848603309123002571678159143789262961746147726973225446081888323140454943491612487518219848280033571979315902484059664795710756032444637048398942682049760458931088867718767233747557979099001690399546790779695426634383898749769717048596688912444820770448147504435466955853300151217341129594875670873968486599812887935602846930979782971393489989011800888279591631741215471202324269006950531993806023384528010050884904732016192406735750827435885201003707857928136251652932814580823747026651915366083731399028177526149972309531239297328017496741680810027841071818217842555469074755234990996505831068822146571296437391214487011953660840256764503338975946235118116579384954772841054393444845009450129256183529229269102839239565359273516358917875119074417568464510767168251753205622500121946137559146288299337239588252174955205866103405306607463966598318993149311869632693616843970815871261666609014845394711850790447760554580393394098500531298071171144449860501975531041127951275412059425704794363034738605369685188824642860992482148755360883854309554127154030963681263839031238065365611060242338464366437478788028971504280286998896735690612063238702995707247048450961857993321774671847124895785837646844028758577748933920886888396777223752764513752510838919235127543402473885429188633484731492176587119123231469465798805209109659101689880749463063578093265991914604444139778234901238689374923085624226786780985349668705654033407083186138351170526271806130767166499742491259499056027237243563189608214507989751285910578514977000645818464649145399016168338980559158839139164519260200747666729482291687347871623928824867165462598965696719011525918759080670658923402622881521195770209813779072538255370313707608763771485101964268444274895779676466556620769559175768703598598543328951518741512169902036969044602817166781976658890028858117484284241707782409766230561685048518065433053648595641256590840381563764703393034775989189707551181856719346650529622416776677647381395735407347804518526807017780775874262026388804805929483116496929744644387271138176648808702963169062952667571153071077167757197556821912974996980857115716025960898360602405678467403354505663055276012335489566347821036772433871818513330285936675558107139326184974945509713853827294623721613501451379284731957315058052632335669975432019578156971047578766544041681756630322998686613977406694636072718708942218768290503544286985186028091376508619125867349581871599094575725775604877227385976390949822768664665692117133459553497341801641568580986291623664202237757753220326656393514536004247712350854154055345876762113275007937574831760519448053981662180701788444364937419248346198783679521106236512950543274535584722916649466182121325098404267407824098227021624239304782149481092800697995941816504186644059251771784498819388217469929063881825212984880085827355023126311923763762621853762353230302048638880152466566940854207408324241728611910802473434967964833899741559949030838692880112402122613489591894214431195979400100880726289449518572527079406656603894457762025020487575838218995701741235969586258111546315561820144070467936641177438048216752852698053624556348240345882523003288384603714712305008201352674557884808854411203360806812879907313918147064140751602761953816238447419928015712898804750042028413984677690159107305904923807786517318502566345788569473234233246037668833916176454950706589026872463237756649415224144131565645639730105653660811256450679177586677125810752566411925087935885245693401031620512442068316360415371900294093669541780324500367723123339581033019390699950323004396968975112197729782069964005216137253262003745920289190321405827773905350191609181418673833977706568166618176459277059607044449861541495598463511620088395113036047276163420427956781545597783850332829199533287950982728637934455466575240639611971437993699673142250593979045037780877476787038922447725427871414727256852386464531895460738094108310334196719063115727246626184001133292975420541471588669571025600000573995244961301252309386839488108654572039170171836969977154579830123720013161496699705826890125102123013529161567247543937677154593552808640118928234342672386758636528939829175892977465373368900263271101490456386077513449272692219498077172703576325513517206287903555896243124523637401049090467309164440851001234882641456123313157283360747789372156393279735098405578490124635374808163616840634576124980893039613619675054832546864577692406341662152061982888143102454665017393227292618819318243908003977399791670988459477434728317181882201628572206079496410966822054114005482295606606716836205750858143236624655694324843638488578702377930322252930623538118293186466148875403776698697384996445584527278733871550258235282477769596357128377143918502868890024849530463572055783737820093828939469469931390349120683240896133825264712034663440595306288371715763520929017912748362444765656141553428834406451230569761456962713929811184361197743480219946553494315212307852693931821812513617752012749188918985799415566776594833198548808980757048193432640759994584112072984288802873179597976506247800431421063260449171418663608732533533353456145388469585205839762745384335543728553227550667600502635254045844724155840816906531417160300981611024625335472194197695199753262683301322367476403361514150523504185029030241560679316601860756817223350887898936283420370472328706827579986390848095600070664833008733285633494509268163781984378009221642172036402960320441300032041029577881795258224719645041753367645752832848675375290893609314941489699888339958701747985062695546212984409821428530451098739503487016708790779929438153871164928800250205063072927903896493261881964827670906619840972952547061942001736608307515207557298452020486909289479423383820376565196953382401500735109466810946652447381122141950550920969486777828255278218702096753356006918132073055758679032353322826472138337775057416282191259359705150849293328059280082517857751507572626701634729049197919569862106887696502061358622868843174731230978056074603412231629432345845855107264705548850885576358140252566191903742698423419221909256020819811550654858481156363319120165485851419614949892410269969488649004247202692155149003440584200503339877665191327283716925176237647143689141458558529192313145620943008275042294954263275719209490410865980211468954002453865633509174282716625035595403522768909272453156440132788839456414278230206695308459026084381939485920818010784358848810698960402405901855687139690719659758113921330307497102268858608960222615828150580579972188800038742319575920250459214375182486102168535453282229819858024008001009088326045737175309435981831559648219454592847707836675485164821902425207046867848994238361791716981391568797038217028074187618150933713680826758160183676690684181591175499401906084038157128959814128079973916830119803658059371786837428223925566384346923139376420739870011497770473726006465575210006670618878074635639823648354563984255637664673696925052125197152392498139206642732796105415357304848110198578200661158568988012100110022637664500839524952300304932018390621803819971786856004703572286997644793348560606504374998180121816423288563979744800216107551336258762638143233547598231915493434727189273278396259518346571601198287473173305978408485040784309764439338533905856876385767490917987536213426318355790817161274382343336385811192918542569931379597028723725782325669707223362874454216337469617181532216216737129203349518742178092071073738224410570949335002359845297977445715829355524722214114763389367141569841262103194106141993399755451992428376272755879373741933205386679718008863138538887880325701045866903919355513921046571649345093547504066551878503329645870903590816602312088239807707353705049305984666249329279885158200118510945947708409630677033115656789170391837251173637564648386101884700595014274551573262917308723683272506097021224212705748868310927822837824074272635000944783412462773803415392752631838322579630740333427990045647512550900651784311153192255707712720397447015911137202530111563361889357109546756035918624884145274990498319039751887352973946855783454778204623829583810795717383763919035705560998336286932199424818961831547150985912069437985179554722158292813400281164142759869715554876203138271212614432161025109926868247589096171125042409684312820253165794854457791701437917043876915755485390091463726536705095803148060610607638649743904071271564002439118452732795955955737118438963378784554043105265317142043678756395453049966428108436846419029865749734526276434712949039268955591676107376738048373897042823400119563407210928587119624321046996012134406539984312756252384423160338367880434838448446088355760975763627568557131592439191934746123177229563841213307766786319941956346124115497457773343656481340861300460716772860839928863845675616995923919662176500548069884789937930711592782098016497289415450946621038621253641313482063163424699947551901524039046531510899302549907170751458556248838058220816150425294473741494239157472625758183752612358328045568498344533713059965138522603320370580189369050092049522406739255220751140721824176337055927959434389975452426706753419412710505357820992823389816018126804580495534105186356452074132630116553201402435222317539601750112100571278344395013339725978340838541886176134641840529207575517182088262005453572368046367359651044917294007582566085673398898162959587531107324788629794252215707380046256447456580577200494485414984355217343188085110590446430309936181924345442451910677299997355452278181204209509265077436143620009667300433457749874612271124532438026927605119677374685100318490429873324009636932155013215344168452828499942356281128128681269834621873201812667211674545639959339077015813956210699657440523363878073624187929574595047248149565915374605071705847252231800395454150548546989228326973264780024259298110646180791485877107623539594658370188310011939811865496137588227332613807271180746099126244699274295031778998961230594538074822007538271955834956795592402289233086874100305007427988231129202482125533562997598391438350134688775105277440306556518623315789519391784181466854474904354583471967530014707760088624169197171732211880053461572199490183896249158980479016854887289100163882042618688768017961376966862834881546664538500858008176441331682106962454197740345614739985772857422495287381523263653191605893279391854503566717005450609576320937640756656581927044154715858962233227618810143410290531320679990696320316353653077786265367095524573258555839402860064028019581135470765294622629727409068065728210158246870779359683986937159714156500425232291323848059362546392969226755122072461958235207137600053670177836941971750334564040708484444847143364385464331349816520549950876345808934258244335236391912949608271430900194872303462262184069284404691534361055061533156874934780206831442857655729231618649882596501385292645806322162352372701515209463036988293043679290637616825003474908494307133059314719301003890808815769550162529398439140024672023588101737897822740331952497288362260447455468010639276290901781737286612106796253670791090769413340087313102249482671340362710475836589625528536222255117343922268330164954734597740395604666220604916241499367095991464713771757433308525141909370214489501808918069279120985695443148466498308897469742616333931908080358480820089243302942441326328307980283989041032344157409450217757659077951866719916006451708816244079293902584909574796990904499732633114804889679780387546573210193642379481005637806954471357402994192776728926083691160989032399554561224395871146416296407146408433441482676292789678163452634635965739769169750327965016598157397286897310587233937091758972798199638434015506321723550839305411818989666977715712504888339305942841212147863592987548024825006435587170379844539908549243308024587134689303403865512927497008529148592808416116215140979040144543855234064209488747045515539202846230009196547371011581760403333999474946856347691517887993955382637076578411227292321037618067618621347926318548737363989654832553192389517703578190223377022386433328824900247048898526981534925882120799365056358673518543871592199258434678291517622582473433342736534987336231947812242442927950218471683593640506056414785687575237120231084466353935995007263650914689516646624924561377275674934921698455955313770192627178546048856223326518821376806912372373896109925142176865074249239848721929797649545993360793616469920311617937518603381503048395320800722178308657355054988132430026252016412559278677114468256366689970599225982344206507713923970044811570303956181637506198979630331297842916505890798156087642454709594178505612841898035391905973835331359756631540464058332258538458445458356455727415894279531756748262586822180517341851864481889895128441600877104266055682669924725337714767519878257964341541646172513040114342580892611173724684508142425423433273971660511854029730036900009534745759192884600082825819578779336106047888549315172593990016974867795326676361872610990141949970156496595211588086273203800047518394887861574489399038995418284142494083508372527101086397726372484854065638580548840659801212551712337931051137245267179241005750686795581578810570692708637045072870572747733712547765868605538998308328661145436248642711017955805166405391153508681631937244843097194735658969359601198807201111295833215528837020439657807763685794028817592701213196251143586273045404020888525619783357721182419787300887611952344180635360049268243164529296581894737410085944193770029773063519944427904574549473873459272692053060564797686929709335890721415884289598838800797939587894557073576937268050896437676749126883227045538040601500931517440556294488092656113598647282906754764557788388328197168860215142489918290644044604257067601735775789936125765157525068149235579994360930011240590607456779428870976521106511416175579801774668485548967352928626798371783732007148145829497714873518652230743487119343620799995853269171449162178254676009791619194944920682895430062980259688944377325899610964650871211302343270755294365555896908539392391855641251611726335402092418171934442425191890893662802636856426205755587872367892500890944251027449594679627782460184091848471283953596824828501391730183768717447625218511880523837657499438066741894358193107877955052046179122136841219043158183070686234181422083492723251892307232691115804455331287407699280726057932662627459060532184650775106072102190683296047335061730780280990654451972849583140823611545954108515809761767249383811468050265264262057009873344064274406545127810176830982988080802976139952515399931588685895142788697595156772946632776709546436329579766591641269712819358396715501160300281747993591871831179536002335973737259599513593765336449480189254704814060545569677570227842161377780132509389144700830464534365105932928838037162798398869168448315299316927084965821813676640080965009549471567532749261199351429883941474477495421081797676504355916373183727353007503273360607269203324234270207910320676149956139007598690555453028582904571712783954481166073246365086888541651459470980502337976109296868932305552054777463880083425995883770849016428860596314112782802540853997676477401603155812896341611133238792981366687773423594948998772343270516581822415005990382283950011497807539043930143628557441494500041267006336021545697483322872888095358969197590466303081008874678202720025855198423736381955490121199772881256719549656051539857506668525257231216443519578670395866256525292142084293362179197201209109463184249156883215350025694313320650687337217913167598781768736299480600056024789419686350975678863810738866240074167830376800832953134650365560610229253196751148670502377354317257940738875112303990056494822099459626046954380815760723012488604349011874707305702987025417272252102806765853672963457002286991787104335693922060465930922008457266810825927556538906502892308653219078102393016429704379081551660566341871817192391920425698248887873762168112330073730113870867954606032090635644398302697817158414086685316231383520896967034170365678604753349445857548560249396661756920947669775131692040005134037196845131365145554077454912416249173854592160597939901796022414540362313140901696089459127825050776208344972574093878100842249846854478188340173766438759354866763608669390301232973660542420533194995138854851898225761928014800285422230517907347290245301108353432725268418120663439255649853486603270126418366063299941826249290885727798921530710474367332920516583733992955662739233499460874480859260034173188070180162204605189163959464964152726782022282344381109434100988461712128966102944138975241158167775253932744006893881955605938685573845883400881890801751467919475257686559738917079058954133265169059858140781951683032923639347651873182241419276336676106495461577192211789005315267288389931452883046102167443124507229001797163647534615424209706823796272163559465570455224866414521255108562818374381085081356626484655234567739365618123627563692828162494014281930506534563447560262915974612754569586902232896498354948775522568603978079465141670944597783330984243848027863194282614887378849249170370025759435850833147465747621518328593938628355290529883723049349104401197614480072723905955086955298504935378798172386475732064838152040244510421180415116674084930205966527490056725256089393557860654711423616653619404773777778366617137884590200144665815895423790471033329463228955170900619783455384319942171444219101713737394733832718652983435462982575818704247517354336183860155666038238501284792547492214084826266825077623753726925233867899327070964373602734356775545047423754957507271406323698816991362875373580961195041466797294076092335663474599680862839299305442698418783755294326360025300853899023355401229716188813461259090663605306006271170373656840979854941666696062712289120764304230221682031389000625741187766042414361362084937175138424097488992759978504847909823081389299425589364932360995789236740215245297235927763396514561422651972342081601554593258363267111924338915080977617240416097872626717520690836141772893947606091861992572019783105934306679799623915671432800935225126232673795735192509726054768034562903463392777889691094858396598133911265761927582402308728459710791506838320910293513476074250082831311614989742135716220754760288598916151540419882877033066649660402535935001541973037687124898787928023807377695705842619344347976212373526765290661857751036970777909914842570771108210783173882843454494198606491598843634075827041181926026606550449536756453969187066935105138565580265186356289476921681230780618834122223614162085697471845875873550275804764373913042710715728739892012946473558770718100485194128104319187917651185114099019300369267738743492123141026490468219046657098614371655895529499392858811292947819794127476638014094785018841597594931535992460404599951474170071105331518560684101306830171788463427578634127625936489018507462880941269713340370719531213136805319697964173644096845325697301549491854324760854799156475584744437402339440269718883542920315218931536770503136082901919368503647468851214861131920067648218603792034187234242207254244339000557894484831902657826854446673571296927294233203109153347121566954666151981303612939554000112926588547405146402257449116340164286605045668363307712383860780619218979885883185976464804558667301611252167643716202668651379303029259594657888755953644812573875709054458302732370369200224163726068334016687198394717468988808772648793659923018067881684116609552744631330314311889179970828659959373189935607303505820116388830084185597778921883762303268046102704092384639828122818164961050033047301674845278878050035807828795181236248711416896260730361384715222366833393390544194887908302503027333630185993676513760424036220180766744316325662173463214860744358952573422383226797509616541852544636607788627563306007677680668000578535980952330909399983271731532620653963547802434278757461329741147717321596586550457853730289110143673238912421919392000106547591831882407627359937312979535268185402940679000168859701471722739887183536719647355441490299048497552410858689826438092378652942331253468300319595156504635110483587813048864029078056323378730562983159919679665145293477106967792679717957659625424189635105888390972522766523229281917033241855429637720520013531702029546622766533953806654929684496573937303106191191743254636322270121795323943027592831429775165552523453282665602898834486952441389777462608110739504019865637943684963943747865379849415936067861252415384580737791395207151141189113528341869666015574012146513907888890635065588079094121901815039031360634843445710415067225829519695198786013016998510765398970066356441729245320640050998421003129421106402557629766246814553870081979450489622292212235604541457462546485356716424667149967320876525298898503600520858601048586487612673142957401261199393557874926892490163430111759823020745220624440802999271872827305445944626200109877054791895322079603456535288049261967183721340285712352305515992856970511361502477214341022373679190081434247572271496368592084642941729911200310282673807040808106351661956934347094147734108981968530314540991700842180251794008794687515294711152408006747624821029016477376199466160928881941072683864783029986344185257720713699432010463918784555979320147687234771844680991144279314885817075243101989796063922260030168147923538185972831119622823505606530386645405073038039266292588053815659755491569333072773492761780664849761584507621638314081281289876663284925298728698181023929563086825911976356942220777943530494965330203411743070160430124437331266121498629320464937952423959733938488225529788783486147966946071578200499701305343095289938016466540939673621317316189636134544082125224134581217413476003080014813734140143870387205722553367375496660748967383353263337894809947070967075346809461338175153333619710494606534274563830085122737262488621040472683410362986321053612626004004869063759264795081165475131063904100414070144132910100479949406683913490333625458546211351079309392843862360892777278393608636734095225028159975282177202798441563222712389201804158507245235326721611726898825160069413730724169440668817407467934747724418787272001496181320872157842888924490363837422663890179196806164445635734423734868399171922561808113978283664934582168356059097397601752045174892705938851922993963128224577175137758186610353978489518201869393273652188304601465177572712012803325558459733276607174127359459389597157615770150781031601054119612426687815629651661441183348602447357158026454954845018126867430504367757322355390258842715860886248627028212296664681821844263010420531876285549036556315882974030188234785589971898382081776967378884549404560273576467349366934098015594275131078051768518867916505738169266326046115837756548943348546338920533296007922641776654698293256244735344747946771043406326057270171075200195110844107425641051171336711717018625811099372619986643939312602896915067103683108727711192953817014525117437117456175274283939024686019317814077542413422298216614404852570495081938268548468860624637497978590722540286363486796328902189863497380709272591657669475283282752426088356048690585878293717031754273149684719569557233823900096430333532202935689508355338960769631902075017053477140511349631033977750912052511048830389692198977661264115240789489487385113307447563713804744801665718956148804936353872912100504856339108652948889417365957319597222174035096983380031565154300457427503796727163185275703766369206146862215604132944001058558334505678570968248211757032882466942626743493718052169044082928509029259294344470699129297361427954871716776162892951784560689691854380171777475183717027860309369838016136501173928486948005171531196142924682829061148527727892829132374821059198007736414296813292536876111730338351201191027375266326648227674809444303350559143653874317366491438223205455599900655802100877263907964529936365607277124097981491286084268382674080317853706643655598744018605123402194627148767841733087738149422381181285091454501359391929363386669442667847605764799988627358589001039518538240536566244184712411258790819239443907252908324412062389772853684803172499770972965080822796287281570009025021214345058332492913988273990280286814489240788397419908832224871340163314494174165330256510596130077284335940835095655382151664301100499244685269028675546607133957249992884015373389927970352898586480434292089012726328905905563047621665964420040897627182888732887640513098217030645755501653332028482066302539370548766092258217633792488232985286717065978052753104196195822864468892207486155735465629845865569628578664709517108611142635221092958734545999095044757966877263230044433042605780609845175907338382279882276681365326010521790875189988395633405997943066668503106598874632686370994228981441439048831537510644202421729706833404829866974873578583170299046063140073442211538560980727327490565652597782539227717193695683448599840266777478552896722420880531995948649767754211758349627527991380585638830059569625829585483306107155449797382848671836333350770870676453652108757330798684000805320425012270857491726881579789431147873848071440729045667899356557445409566204206601219698671538836893592287927748847997137760932305840533214023562452532812515444747059846429552325636669639083545737076924072439237612743257900252344956167442991284556694612760655980528799315037066321144344811387359037777927634460027995334983239421391259232992913141916038103058264550060302452446788484677387156899516024795470708096175374148178455314007410125750805058149085752979319276168867272813331041839273143485312275204064969989020063731513619237649396037086577940711709633770357637094575998799276341414831945624078272057632571851548841821003107637816087402763445034302030071368780743770760469737590785462224853180356749044574636986323514809441703698454173271173285976177473299522943615277017294371651893595881272279823227643337819984688642232648986099836622513998047811759643169255160886068799738727618595229918617303990155919770273262584122445871018357977594055622503407210967150461074544436167458638413893737773141582557953032086318696585991388174550300416641862174295667751065810266012656368396802831180357331586295176124189395224240179601178297179686046270289189244295142875519343967639388456516154333967284687286152957932600937696082838454791133223469362898459391044172817380590349502560155232052379056901815177997692873988738436004795459631169887382266323257719411191552539801157089434720047806564388048583244862284545973492070462713455440326970789478833585429408673837412513683466862690843626096228794562691853748462945982681856865693764694092716679173952494053509286967643521562342784298250214624886983725986051104958472037920764133353153460206295693458798311837674170478539016866724446201611064225682778441773371755058788636469721031653470347300339767110802975791226063081028180076881237392365938044040335233726100785777838417315808265237905180646612003059734243300493257822979259738333559422797195436838508854996472955611948644626451814324555145920412625487057165885682998377028067255717594932491454559288895660461899406707484333029668788971028302456709107585583372160362897617732943035027066206441405849089524742029985187933031007478871321557951027777728039481309572168062758080612322012909033009676703783923968269008564140904878526900051821647478511745130319858172380529712996786168387813354031005569372350045224126051201544535471495691252123971028581318300805479267583581029122039536596276004391363246982063606174284195928989110759379150731869499496304420734990766411617310198478946449658348426708959981523087816214344169994073044352838060600471079551393989804501814309483466439051269498030266751328652260511134291057520277367158368353703616148962791565204635735023019593580558047515138359666793231771119072361069291281840589026828820336160457811125037031617160629035289542983810539085954838009466694376943462429953916602247737222773510993827992896608716193221327904325596852314837379378331758049071989342391248633720544849427486523185264191217676544498111141168162890899787284569936347491458076870878299500088137907256003238126357582914412012055104049127469227587677656921285406237294765552478370545066952826202505124794147646864465785094547244545693292972281021309028167435118877667857054083904642616518454016264322195941127245218864052333440074971616957072853870318300630896895524943577347042760464224779048754673822983201649254186232758518388189784147848270573980648021903890161938636969567322201220976202995656260998610060194088530467658920302717435075103836608753260210412399984810334400237343910331113145730955520842134621886349921167270145333118800420712637794193080134629422539117334078794778959028796746775084801815943903012448725780429577806452082281949240740208081082560719412265582269135264698701474061453501355693669999222292179838612903439879373837788976310356553592134699435259842048252684329568194663556590384581590230399656032399864613676218081512704691007683271819920305710619218008695050574351686610623861794496921292105686992422622972124434217439717739423524296469778540002646433845935452999765206749729952081146757937340512429015915793437360243988468716927137566684227746394133933851241519321117566868763357596606574835465267970991233710954601031327298205190611518570740488562721823793488289719112366304030385507684015408152821814053547823787132077588312629989978355828274575467045346925860604859456469432127907072628592804762047490152878556279889812879422979032366359148512956145046519588943875911896051755974023393621869785963837138950514466187130001962510102086592897739871843765384020767297619980760971200189118983421519039338952018740483351539599023324642344856373135311126512355561477401344271034499466164553170704914905244008077338402202471418076075497318940143183947086358801582715880774522327380929952729062363693966198539238315524758607474319603343839980610092326421510192749408030965796140965467033364795863971719067676375894554967114062312771916517934548449791875820064993722854443063769034451729579961152844496416867335390583158088673719514298599112929455435229879124720939823769686760057698915778791789674758384259039137062649403643652333183763077746572625799125101701294572350373541581777020335804175496435142900337836823378090748858675482014121223806841649073040655211582757806502320081564234329360859473990484072473365685479725468597609056571160875648400553718407842656458659621791666223369203050878091094298741675836667678625010113106137379650871568735336081596337122364336527125880140766509777256915498911162313537783783791452943851113706209069341073725145717811332576718720733487041454889559506206944745469371764946343460945643740242569041770115068475471661104027723941737593546463919022901251396820903951672235576022953647069265086762937458447471042467601409718851799083888714196310964288494367734781230065716842882799334351709280622358968534349491000462243430690177556590681196227827463372722601046385363719993040960381820162945632104496351658764440862722681617843584076843762735495202318744374416909321079659843450925357712425881990133735660564003935078183609442873278412990357922293199819301154867204030648947029705461535422233624743180583627290431230151578491611775093818507908583003722723644978521632274298657074633065930615798205579685807370335671511916223615699222138076066074233052675891656608003722087487448381362159740404279392697879641035520498924867306175668612443727901084280017637046602312984380243541040472809678167300776368548632241643789868920597055733188122397745261531654959658575799512952394674718364047570194353807438647282823980549644370536463387082236605513096538437681040293999036941258260540598834127169161215021778410738465913734122522085968186707821874745919025987834805806975249432050048115262787125133512832912208038743294580357761847243644689493885483642715590597340637483548272937144769646634659640383512353571811401546317862222687908197674382320170441444876418163431783667099774310354533250910830799443862064465933714580197995819250833023067705386592573175789535172619496933481543114664092179386831317577468120129013032796145509838735203957333974866498176048600945599153910150078882705242440470751455346127319312814582758730248464317990691304566721472121091285635757746880040056254394584838344947857228874310587089052905602034955078435142721475587312180598463871503282125598952328670335761705318123021223733583351117786003619795088842324148245197280492084892157033284359901984487945861739760528423477460409485874541658013018495705535788789218940994907162541699786372393149418720014341497507927699464983739286346017645296215843462186277734667936049196591946222012802853401232103842593718137664859846594177159240352355347409577084220090135114672195209034019764284604938409302831847768487594405791708866590695354677478912907590223250754795683677472641242337917990240357434249666996575536344627024299997253750153673959928661498432214873452122393015535489504890422280819509031419825442873467539379434225889085666105396714677645088791642299705197288250489523673764019431372090674550291435568147358189547266126936239049327311857927358380541231443585610327418371174449149304180215979130173513480143502709649623024929206213359608975734952194679899648484933412897972557004773340960955425354081044649356291887601470827288372875504108210765403147720902210586789956968727492343374296669822786766271083816592085737833821779482873762419231217659378928657476506106715186497606145415779453855845136548000507397518790906504768987990542667597323545977067660402719808798355400774607356527353814029145920650446876344846412038221516690147940520353086576607767152346092540941899924961901800136229368065271967708833142580683149258830386898759261888314606087993051279985664288395459498793068256748116119188635629261421735756910390060461376446566821053121948003158501850251102879946378658925890713650911031364258682404089503624645281203373010201308075164361225065913837650810278529591963682605219410509699561844322434214397035956325418101109554176039102915458258239204415027105017419359988932446961319925657444671319832283693282153814672775985158450108634475585505175710091912181700002862403399544749382752338363198136569675912568049710304556224724548262751155950010710193431602278099532679915506691092869805929914452063867214054567488979405526414252185105127833684871511440831974524857130001800182682544032935402904513843590872976438862454089408883852546630874886626842229950997455352948500015383176921918756369863169029408053910623287915817725981424942102611159855144589436870778531126939188407600125858621130578758142209387099446973369673468607968180011314461080795264496761213079619710521318822278700092882097056134235350450073848912133069645157454215307407534909303496420033400870919684215666579763190475976086153486832427365723509636585745398595991091200761199600887585876547999702869229864373905352882591911633008091638492462978387837690140017166695653855505915339433531883091033292752687493395168502112985087976638141433815055722514340047868195789436110613175394508204702986470851541923996050289707969896624610010597640060857502182678480845544202910981338044987455675658859717489703814405214195778453145498431586835621034757851874234869479639621042342260989731074033698120931590982610724155325217695847534321103624554846202063883935635161181814645088123976583837007592719266793643025676101535767081841105911800343115293919609331061370337655132636193494880928039165893064435324202719013793919775297243854431133043087015884223637194995365719526935657365494722944996286747794810837340558121664229982350645968494260533179928503288184790968320087468542145346311347850373980335667830259252976157112989589390507389723284568041046058155003782306699646273689475726725856058010169935009322815536531387865426785685062661332568266662407990922608166404096519435208541256486129571311255726855658458511009918279019428421429755712193638999861367525618391101150823288206716626902585849417429819413510567125724980278544817000243904611365458768761196770467285771641087252085348210240196054933887072666716597877408868974443594834887599666625778609881586383845661430990888185996412856307444002582541919867812396497291841661502695164426605572296758978703178367731031600507403213618309225637823068988128971655205187497433502893610872362198211223244649416956747200598635592228496943084965443626455430756151969988108844544853078046476775559897964583869078606357132508773766507531765643278288561830801469628294607540961588867413450182677843966977331739615340043399330782575901122446594235043950441232565366897800493505960273182178781563766941253949222168854204649513192524322559866233161199928949348113104236038093976173949767974247162317411848132253030710864717696641156030198322394639565776802396109261815886100959956819229902577416752481281683655501336296696418866919222624206900100077899713876016883184372520922543847801507141334635275840241898247935314216272184757347127001396497771811472718176313047539072695113427947935173049085506086116421064619724791873477001509120938004103791106209515543312968790097082766355185328378006704840795862770085640250371292094383295888503413739190108289472401174692356905028297572509672066618142159625490064326700246560300724384028286512848099826675436429392380874044146576118663834327717990305073208915262365711045843466004770626033750712136309648564507409606439642130750019138283764816488922196217813897292943599592936445842410756161078455818681027696627125438068929682460958305174548523043620117546693131894814566915192450985773614842206827280916750984258401427496223336477312583653174185381430474148024784535471700506781967576267429349079271380705406523481918843057536816567973020639709135541048160723701211382614946857683578447865968594216389630977548084129318605951170121016840775399505571544659513765780937680630095017963400840189958056619005697085939686141398673181404174907272226192247981212098248682385251347368507501289803865658898277886761183888356021506394936416377635123495854493146298854116298878706824934050522985388267304708179938824420264260037668803394135256095559321286697440387854044372546916009499217632702155533424077801898130716689637586934871215711611151763033053001518247771883974208336790239887361425061619630487111403619090193481084989704918101532753024163129755475904539681402328742208295849188631970483229283823982423269393207517050181681896941416832376540706037921880278876834845964552767428491596301580806434594240430918177108143766782687652755531637753139367387312672722889052568815949841660502994385077713707764023746924025380893866642849563246353801631645000613906595565114259391285600276391792594755102144957393990300634360258024044537986642788645879033737961474657868894245821138888617093765865589223367881737850249520850858549107051241351452948548887744560110930922104138110163707680737569910227561252082071392288784174685244236605649123830133943332505124354463118432582253338230773911044501034471501617416023648341134117873220500128604875384817395019048033276842095746306001276924403123503854110939612128484649339517037579991191528605159476507420339826080933024337027011636665598468087593821673882087089868571774516384291624372820353566675189846654930717919021013801299301702763823159318124973159287238434863717795635612517031778522288012568236440841184818548662801730439009944889174666367737293978922219897310165135650363103221138563350186707528732938266969836099562326147489528714965599675641441068400259593114848111845298682855301108602381990888899668496462153703980523757478100285233452982225251785355793316577034764485765922565056128389483768403963010151426532522682636566404645963899500220935395296088515022590213372711407839787080524462950625299839973922036212315032980968823212599858444710081341031601944190576862005142969842686276964738584330481210444255535990849542273154543495795376059605055344669495151778742454751662403256792586660179568312187596756326495277116787688520622200036832398910481981066539554839514401057342426222959297145810219683989349770813195660929597893833128204225481434645510477712360694739774598850391385311662994638627929682310837478145076312569987403696511635965450321526174364410592206008550859033776728465223112389471583399719378317602292034194070930559064242162598591323835342842417911904645154230875489240606577865191142624643838387025632697725556058912092571487988581465480373873542844214730093238154880014064270805615897327124109923688685265820695551021081321661093966468288912506285816504633572936675255172004260939417231580699846815098152300023738916934838756739952181510589717752685580855667200439852755012554321639441340806809215883876977720000475803098589097450090602843102792423116682442127960829883787105129745905523891659351677576964117903830786700718660360018449590261529404995963344057007564546294519646470652402231797827129457096328472965448178341914018490837473288593249037568851231507600905106197939746702209838226098080943046234585423480476410981336881428673982005476075245928470589919230845596928929080320111236439124558052031716203134845491127912490616486910481454126031182788337151715335767788357659755819177853494370032246391475485228884683727998467440861806749698350255882875998025095068397888652810458054997839254514947547166872124145374673245376379709822273865736701481128412007220212524466849725757004224120856261129526576295652474929453616281279410709701839143941304034011828192024259398029091771503884513917829765602061248863520887893445278970084985953765276477070611924526766208685007808874325807666673215996650072557532084444205909524525946846996426188897115030866024012154874705997030146011066494550548000029857378940639343321255099649709678510803040848574175514015230835610398591605610337135038619433492550512796802004370793052019521112468632359573671024495852397261282642378698758889814516305884194250604444156612234703526447048793662588216136563829026851924948149881670754263437119096224716171077197321024670420505649326230773687845432007203579227491023939007985305824745977951218300996704877086997328438111049984838775295230911265384706841968511588274372995430321329026101618131883690677850225001987494840839827373925645922158402384335192016033726103584780169340745214209284477105398454924734747204671654681291381147176701353593195747409488315436359937365703419256350886624411153437498474607552617521081771857409381453176338249108422961058728761492747107570272709136874560088141358668043650406000203732384707083040386797602014576699606082184877219645373558962438138736622325476469869860084873754177277211460694683327805105864998274032223365709888466758517662495093884798990933230186204144806209225232719827929829626228249381233260862435085224533244987599544085163245248554091873617782374387845723629596188825466710537016957293525141638455266645771671815618726987730793096076849247625544773082863842301480905151514604100476821195575516582214581981353006060874879389520783188404438825799252520614560885481450390796085348747815145626053132311402904403363802568965783669250724541650215897757901003477135125485021652889660607463435672860991845542027984432212091034815092157920253707621492075045990257701197045644159137659417369800604545098225542277624905081958165238208429329178569060261978013924063991123630101095980246800881303855104218208080873506302804715336617055228415074627194208612720677695338021587128861195667463216110260671482719982497065606409186677151679543599753142755141509553928496908545411820191058244748602586265308299078529369283154112123803990616573344022830048290774106365968019229813467645913244378335742523142578178052927157043532616142960038714872199122266720391575291757921351459376929322478494228044485784942831526371219938485756207999678220112733283518714417849013005952423976295752511417600337923015798041469097792701237968740335465685694594324765426571403808264838578225674010975528352640521479766319044490366572297740082014869103013204814796826916149593871231064188874278237604476174226537853385291252477868403675947907036921760173074646506375919431925457266719676004851306602304415736523078977508512279288423572219227472690057896463008638454455002764054359620550900207346860475553791478775302882288045208437905602568910516785081874907525181962531275073657326435619479333141183877116366117930027408289221419533239442108965987990722793562731933931834814174706487549221668063237552956493469672676734715182759855115794361162151346554602552713210135630107794252795791718812750683028193453878164279714982997379244275633975223516122164437231756466778285370544271510643175600268793419728444141036105820206675875974895965542992991583850429477426007199474113688627849996005416394717313975397141809309988324233189939044895563453327767985233463376372652060588562449263552670689064800174062058405803165331814339277695506004193227581529156589659155414533622020355947840626196177492708454740256365581147642493314981304183509726766323385274191211026344646873692527853200347219439941186508903606049016789409395559181114092994497417471585376834859248364945094187765824998992381326286639822899002669847756233883120558564030696351979392726487412027733233506283055697114314205302433112256025470391341749195949409970417040918136699460220954000625403368963427603103010903408325108511119783744437573941356562745739849890040726624618811485379900637070697969237231131187325112920106413072567077985467419711590813879321494848262265279045274545299737250776130167644572884617481547209508748640730108910187728857643754118031844148164612577096690171442182200075661516778269499322272056586344996717929065147465084429890583051947362169573282182639224061688483135202447012697678191350826935527188966964035304338607394504474992930962770298468203040497858266331876581059157866248169727272773692822646348313040557263638699031340100047399071826554787338969221621236495134280680091218587212611432759220534158351518073852947696616134343475310827936936503769103901736738453719549025201268271981110589342901471801765995197620748495206431387640226680017476911482540290325059922536215346014815669323601107393989523953211775835845194758743326345371736517362997791970411429529287032481392942443363486289945302498392803504312184284849026852950245477778669951397666667363450776776275135379507475712219537060561534888975406590844022496644398242570936325501513543271975699451675785693813318947965437967422658972540775363328569232455265925923369451225686556141425852638987512418508705562646389264040303369184815755035081276696276537278481447710961072260156302191036720272440424246576442808226087100869856455701785115294850703207987700291440863686364745367308398621218764131764028936852790904034689627548564035060721326614025520182361666937937177368585244396649927993779810951983851352960632391238808424080851453775179936865866026394896268063535638663895432104712705695738507817669751674464934909696024023763056872450210438389731835344763097274721550538420522917189353136612358024136885581501432921819446326128035907602855947271487970966153908240292731022855803730074823981536977067432562594467427331337190119910503680418136031802931179050103632180009951929943473348856971428681618620484769850687414679906164137547088477049482997196061745909045504931371645010220748454974187482838797925289628482670775026177048808520318405391489410630072936856162558593316342144161603895743720522517498272822746215346634286233715052968345389568175237918699422132223906891697307718567551076843525801459895328765268805775862944125048700474067678460289866591365358237524045940609058461484644782347757941466903664596161361601994854439541532039491453276887858110625233868080263598349950022377326419501617666452149599696529851565626302390461388401119706600914641489511659263772451588320693612919474266765362654458849825248756281576421185276314586162815303956486275254189631105155524710059268916494907128952356848734004479886421990206648799348931116487213068778628404021173502865245338060936159351568688308939958365741512222780660094109528283516796212282667569889295654230517034931598087361291520559357592031861861227894517055560675616438241685263545721717761772595970574782315756599454837534471661295904800395968770156027638584533865213439504208742556437124995422440408625701892277754884634041977747837226871705369750438060490757501198370745256435543092023626147423965694341931521929584565016684170992155787126102584667431787324327151159672918818246418502558213292151411703803316221621841394790214649989958801011382530767578690648575525289729173427271544229346608577501959432323563815876490102681941870782380241180129496016085103513265162513233400442962385082640873913215230871040382576172313447345392518879927702643093066805747504801606199842136452585643315481043306126287506706011746011520011928305820704594516275470043099864997001484004256133156879969807898955723645102353325506080297880019472117493966286577299069547023560386321480571143014397730913016530112455516013365058353399332760393002306933621737066366709174156736166393825923711685583147913564773749855754312177485564083538950373882068242274827013379371283367169996462563680836490635216245400127100825037642002113367349727625889387908133565427659618185582110898092730121123548131485892203996651577737088447461666096309613183508439562591113290357859723231147071683509719581515227018972663238998798290021156833620206413391176804629680544108916900267579034740688161142728833173348759277231938132755911284593201305257587497703995242596204013502399755903486823171311082716915286421568551169496097469064903514160633326734892377069047292419203081487124701130569955188139214620487875249526187133787585800239056350568310010617870107137928114280730298660353554497593617083452417860275639425460865538498873196688199032177594618655030685467864987296149263707877067217340631327229724827957897336209084886032316990092305091042211688792951433476270705318251540160477310277084547846315834606568351957053087450828053732966439484572002093481208806062572583384163545419826204581780683537189419427878254202158544137784418532381085453284490435474645788220969259648966886940447319034429653116807000005847441864164326969031548250029505751903395322752367619106603036377156047957169969835695144088571904317165020277604599563612234554573892158477553839397608379557932550266018096050258458001258947617862505718200976062991660489534988784968180518960436780033473748643917638588427066309937841151769138764177361582903149041910659164950552005861746562443821105571541618939691012404841643618016583085920201522743036247256350980515949458857281421427496602055636006712817485237347609564795411369308450420782364212528689192014917147778741336048517596282799153525395822229405623958637230491889040692818192421695305124192644129810268443343290442666308928246734174568133907560025642891620396605363744432036231619510067877378013131049222012893759823617310983164468564924266670558061945084152607887075262616628121835290153521004497718727377493824056785354473786709380008228572556846590070816178162020452753968013984966720401700460539319356788923474605287578724158983475493736144673101032639444091197599961317001175207714826576464487427034939051498506688031318524725761572153933492420694956623675382043671244801189585521300157287566206919568572440557453342973298127400174508070068659730697901658780736523045739540402296485439445853607900549563144916316926270479803083414667157450132149509055652385558901508684956057922292831693534167303569927600357738282131684288131099884221595958328679975857179676701542995447802253646679663189941012529399683657624091914736836039700788292419667520268263628820152468467115934231091932102672327990406276130795915683279999879487239270386554882679758644439892977938267050348367525266433979995375856439019362732848322645343088287396991164843663605278686190680559454075465196588271409329354260824351118337114738294523135622952002868615992461675270184950364651101712400118400671575369222241219973226826889098875720179838472262772552350283097273933271857897829171049977200717670276686587927897855718201185410115837080031721775137053399417563902458498595611945899781200520136524735983703663785940448147627110943307731610655394340501392562322964496614596329511732460720172375824087356595859468140987719016497077203675129435301410929931619237791042697616240430007013639536368106275247256796587021864987514723764727663104741163929661731680068552594741023955690861766308875539978687064097214411879892368381231711944619933773264541085536113199336949315963887116009407202670696625376135303255425367421676644100390251418491475624625845048796652105041382077387122039263895058911852737467411357266744982687178363299952175009793860628155743362519695001812651215246250012818261730884067879020772434755769446179189394547304114724677906185057266627751951103488185804468430678671161262018774087466059421501730740580118551444066626346691921080735635929750936325350740335708331105176268725992181892272539202624541381559761467049296468441641831635042342849694122113071564881307117078713893821771809575490168635368813668132740985482485273060939507378004296731125874412532804927421548833075320303022838790554625803491301380381730926527231690337792564199647404050486737311352228490600263776141784334366518713907651795785321248018263403502691795494512715214627871202915534783586762855050697493524635672619554533282446738730896341908595769226959625280517221861292020336894244688397920937939662284988336910480149211759393470999868727134347641897897343358531175112539094495558998106993443952921306793268811678574843567791749275426508061227166540354347245088980186607484000397472356983102764257375498582678538683660367634742846232913132670486856573524164477903646139464382616000070259428331169403550576101126071628937479103335901747509473419386660877959074076724425282001687744115288534706462779774193058811101805417465058534753664795650334740594822471109219040038234595457543362488482600293252234986313059425210789191295245461560130087865464415688800808705414438461503751578091805743931418055418441231352695051540309476057258399824869940898163540472730965605951601833681805139867757008288952857549515454234051710861628228042412606860852073327734909600395745613972221316626794359132223214732536124912711282737374391232995487090664789340386365167560607765206429868700177002239276978611232245506973743617022815500813781135782989651652432571778498033267014644062053002199633012839647319817575152857731460745165752927831228415250939282638828683001009200837776680705239080929165058519382742912656131684530360430533823693355691061590245041549898805139417604428079633984360422318478773821309046493896075909575147284227745925260638797672356465304185708804397597006175940552212935048459608308999713826561673633116938301114047244656609040482064139773705074175455893985514935508110961090678181317345460513719452574454493706781792117620294204192715423809248414138775210757343249484609251657955513583503753054548979037020113153054622809083248267352496192725576997688992293043026670806276841486860985615004120684260195747787709232484389253798546328863094480824246512313274055718306852532761535876038367355474936418752058989401151612732956989993073576177314865687261729854053256617432792104225001752526997587073629327276170355860321634255110416505212553967795218334389602104394200999519766819531046383474270448106133485501112586959735038602487151740554016643942858114884853891298889062977220269066159669406740441031910489846717410187554365613673218260280326437133784995678664740567899996300032160242645022628251508452074192694569098628571250454592951115012751661303957513437383037461739240100575909570037581111688997496067381795575137503321352455487752820753063652170567800417649203078005503412474547835069841521366274367915042407701295221632519541517257008677666289954078277157569030808084259680829795780578135716029613091558616117090744743989900161142490955209954270569803366810603271396086793272604084182976425675360021991243761513359533538820029851030303102716282519471038960870225486143943796070378054131163451640003162928124460697728520901802302335255512970227370217672010100079591905959515023712463055980464424070652993243728075854828865535692383708103094592694617991577711649534667554416249628169271022578046485597586658696606845679863246927074833312410168643153296447242482469401598311227952723048627976414767822144846444984057811934571278267994381497003383238746979693158906567258630728764584864818600378533343510653420807241760544029220765419745835863996340514635062364047898723227671612647883382468414091751734548851033877428889408976125554836889114523829622183305440330193573910483475471125276342127314742567115235122256762521786275172541144860290730718751452147050375076124133966591987547348231679297107573853113439138896149596134910910242961361899110120309272031680518354808965745164273776504573867191714012863876479644975450487554872639510921237455740173378457248415090230347959238924849262461483857299904675205873805000728480436568866133560926390422466001777043095947122501168753408292418795651807725473778530372605347180266414825345271247599915496755696371101006610850086097171532632347141801916739403728400457240546126675305112937601716142017292494945058607363499026235261176450824154734337343715765133381660115593072572799188627385179073882094134829073797280506403681363691889737789899888131303933858498348327353716800604298266591292753908336874502212645934779613044073235171793524466989939423520549738708080263901308165116134479417205488953834426911474575130632129129542701824258534787426597544401889617569678109555123161712100467923243225969545496126300398968630973093820516360802558072870543806283172612467476202814955344925935788459737335253907811671492741406741715046202673927818317048453824000679161451813303416980031458697184772655986179184029562530689237171602760829619548914428526329449993913828336491056497043107537081588742169895060653269564912054885497042962427852638266377890584894961043772521104055001244157786608828924021137628945427894817085076930407987955714675255704040900471986497761685041399580319722123163903697633867041618171725018840989568512350620294881372896461318101429565969748072762971002767240111441341051043605406005915478766169321848783833797120127627440096930709888074177190031718911764187312437598842387000606887005767145995918275850633644677339445661296187272009684012187675041784331106412519707312912556918675366671234405384442353852599770413918175857092697062413280429999814224379171500471273435493151886550958018186316499584521002915376669513234510936709105858890976051935763489982323318302117560258393936663707563369315646261468338770652970943170731392905416956459962941673024819046542994758898090323813804987966487271730150407462833357408794960995607480475436154416234537754681879642674256730362481085773637951390658154507392449956434173364483086536944750084406234946954647670389497441684680159906720892191689213505214946189107920063793795587825684968605137174731946713841365621297670195075801262851145752534213296942065147314905943318262219116688682328133419546333448534934501452448845049647031611468128729623841474522771876406502843548308867449952727375634254853057965477389629607974594153224459392381532618548448997860334517087743886740905289980445242652562181185359993045399492653275290724299900975269603403417964810927982493735376815167022092935983661009702729539163490626224012007917701963499668202413433160477147409835521589312989242631134568117079846236561783873331477302633211109923529145905899182842322329951868100710914251930126796552156195783294520201625014359224485768755982895738438124656286706226028035232122681226412705971104028031114064871823313967597068632166529176386080311943361328255346074610099000960914519599931865520911943696726480669440186072334266866968757917777302281960028177918035095382355501088248257267598613416309021000258330197490622679073583747262545087396333559567826917867836650767374060838991540349943345931772479767400749408070353147722227660776228951979011328781961513542697936649524830933332224255171235524622045290547543597282914225063939546756631807089429269963349440035611785993480384581659172416207940308808776394715120681708643943928411835569640036911873408163810950693214395274982015034153352453785919121831418114042477296867173314499225769570411482408430375089102445103631697588866901451307384527738505338981943230170157014772664049487965874535614638961700058851034658701236988107803549451724913433359530084956802357019648530905778389539576479266771778040657132871840724156966131520332285601000001507649178133012016741981582077762101716707404800405063093036459286679685388205006037598072187612335653669366761563671632508231089844961074313303514936737250641641480985181529017259638650802402811522983042837861739463097759848665191209210093485962450920237499846261367826661278019389489991397662162068133952776639961758718836654014166284535061878647016492153717688697938666235071424513632904573261111149675667456271960783056136274898651932322707053881928710677148684731803888131318925800654171907599351799260544743988959443090889114851979731101492384515118729346855944550538135311166479128425365278852126680272762495365058060412130570594787635979545871063172434065357476834337781296388319845834985363563497422552847911110137847412586254847535286675241063164068557257635660123039878217140958124763402433706086532815393626517930179425292934111875638426205871195251643508697542345803109308363521230321029539403066959471610087159048041638972510084705589977096132078945984516544318155359381979343408623119068162985395504543750391798757198386891378716538654555889627901051267458581161573216697468954781681015492201549651334032408458691153611729979014672254742664552885690885304257040918092697900685607882245231327468061809970225175634573508359032215474786583011171929164567581048996882942025403264502898538891065610248369446636811428546593545238102565740635457240947096163360972519474582151000907037494473004457913424044748499534026693513595488425355435635890962792164912806102389069353919397034269145153799504313399492064411142014567726444034910960069323047501055477402695192217741072236909368741968391396232079305478785359281122832342963226154603213492010219350703865397008662202548222296279065225368723936879863509118171053338454887935490190935523609906606810159650016734314459046578229466801517248140972554413657976307854940532524016490774212761898459741951992155573791277998922321939735464624902180612622879366132406402142890353463507990574752826924352101331309971140307741415275091353733284765576409532335548969903660284017041199401086672025502613199284315882404485534160365837910047675432767233498157198362934875604759391823584745888980991661630250786412532955395510392847651144112073201345334453805827734371272537569816929528920768001422896106968038098021413816245341079048106121464588380231208677093593924525180846388047642751912963048302077236814242347702838387889130663497220800687478998049410768052932010636759835555507739687892981551160181925280770195342475863383064287126789385478837715974888280524995717120675563122909570503578870740092066832436794868718948359402311123337586099816960507333994919317397773405433069591653367359452830429245400095998218954200356290566036953704435770404212720845188544852412502781708772944368853151916162208980273943686796463619149234208656786438092689736848721590434884713217950198809216871554406131054929848162032365261759166925375408076850714101441530585483833172730561889411333080522863927381531578704655270936898636809691882376196174712884660064728289358164569178206311092658997366885292294379971103103493715098238015750194879606254277958332899606295901589082779114330715813234116548807670446417066860292783098558583096961880369343877713477046682586042497521213267509942853780312420059384442502722017110749329125870582630819572429167003624370787274940587875016950887416719662106466630422587832488571704464857021292804947701793870165354827792136355756533445383170114508576461820665697222062112305097589512888923031734048508007388778262271529172885035884888996391443274901538308649608701488562523803577843199811498835986183317499065904083705508475460265766099804776620448867666915174688724886997371888251615115826033828508172005619661960632989042050559215795994014498039317585685487406479423109978025843396126206086468081598743152300172035038364633584528269520812463434308959433756945856127713942735880201856262893876279792427851847162496663076368038291582416856851434464916215270418888538924667099883287546880741362599538033133126712608111614875344860954963639919700798334057187306153234676307661064402385008743291013909390906911053547578379510664037748398381118794351059178299545979334548565140737586895364301430989726729384975347815067153868838833372243231296369927740254941359959486452536258785206225472736591174098466912586591583731687281103851557368101781134137259390525090484162131495273542380829398533419531995749421712811171550054896812792372894194933718969972967352688646008577690959809848411565062371926877492273319291755910715022443209603438932705171217954147381710127573922133949542433886347902176730706449380613499871811385113058610514496982413046934819040212077117460760729318303034391051298689153741139957115746832240174620840687612104940073285564567618493625168488852522204913651477663782239685738296092786675051067179060842543905161248577477515538636375552539098156002245599958769703761653726118867492800607216228726376220628076767204814148630821314721515500814968257132286901848574224932056110988113954393473080696089988961443994010753040109456102668187380703319891840627779283073321881570143693479929998816602382744792747378776504825805452479044402973042730319108343424767467754170691130186200393706163702350610620226007028432406550990890391119936753657135618350326713536707182989526256006680799556051047168976292178107333469817874980843227366226847382420752891164660957317971669504578022363006444167576154447185264933515489592965765112113009170717512433055390620979169586641089982012303231890383503508353242175150402158159076529809675837878197470560649531401943662321140623537859436476073951883858510141591627119972648551262452226058522607732452543582635624991830161541890188551853454293398191248212100330040280155996345485560815104840755734268594674279016993502270585237840442169211094021147069980276098978591962785946630870048034724315863871552976521075827509341080914058772490540873445682467481832875349497983555437391671172617614092344404157614497833982165459115951426798839648160111752955411456154638946564475242937678075452067507952877519052364585522620475676769969063020285799613686141122836342484948570412083667506228268235678136754940021649599871897350970415236013129682111362946534252026143690747149792017470286163853290659806247418211038712533611212567296970984966866465007757690475965252823950284357553235598846216490372556757890799882262768508196420180824953929528171521725995682425813413889707097226974991125253126250644596890565926195087056588216027730096691114570818911449398558670851695861105726817268757105331965947968179017552378789247938041887709359085820288291558218974872172228977440072614920294278649507349706505592544714933752290774771422867770751922414290655402323235904242469739737616819763324471608769941580488080376690079010225662520098172052128576078401200301218465690510405274179627362294949420585481096870524880742438777016175317585415325985907350539058185183644421869633748603672066658527459287220174063520738965125571586194283039471894359266544486282965092755188664019708061417206470451943369491737917468097641436315060465603318887506180858420642000011768874799443131152285984469227976647234554548967669159847741481575033752231142654653288520249126546624172326556142299062927185681731065773580857984814849618100156196093604288710305577362750536764684987174631525828054377034137396585184849905526207011257821785182996971794141252487340647190389303003747216675720159206211984000491991557084267462854235605363413647710713982025371168539304696713523608286681675311199860818019160731372421403844779000603784645825116732217236301244148878374590646859424942146847393483212343807361808762969842591878070151133582010244991485488764068378936290172401063091458125643126602157216201756728014786812574964746554390082058215042301713874183969130458268799460913483432847287274796488563403967518318744886343246506980976150195492234571921117226906960528402799022799058517791378104867521096741496672691866182020207325820265478607046264586295097211417227116862843682741166670847700927853730810369148085301321230421129852712904272580958626900068810441370338664702251275892684307829473453490444414786940209868287701097274137574047538282328606284623303987266811869202053775949564058404512716881909210372456437891498811602012926411545575207913493019555047094456193026673835969385999569696740886613239830575919866166972954985601448229408204009388735128345663446081263045853812857172034290447782944590658542373786426959846040140877291227520430135669958706438324895007879360964338619341016929745815309275072664637051614557269086207815132064492044096637513435907464425163346032265497786104044362450029114390704394917926180780552484282209824225041486660551071630833190876678459786656872827857751658743569822869660799095288273915957640733472272459194090396006942757819853000540195402503529312327804789598240120772606603581722880136656711801746502852338957029492227615259799735575311881634172073428177579903272117621306570702065467009658839878608126315374058018386732674462565091323041133930970921910114029332386128515370015124081478193822464502811403417789863447302037040060232101735469697360297491707524074257236835023808804016721130282415715562484333889931311666279869123327440151275975076891980685177422336489385335198104279558214528073127419955672426695126532972835091915939810232528823416598554616912281085227485314796257298373045807284883942552870957743329844231344998417486487768407509605831795287769996204958643104412559031112947061146184216170468061049791284810195261001661682662666682734367769012272399426738775607176564666443880415078028129377242024465038215953500467975368891103074306163378177806338609514413892161527178780422814338081575611527822007909948114364958812507194141790007755093823933401442565240056152835779009293020873804209157869309040199832455114357947817662953645049259095917222756561944752769475662315366900115448476741582613554521225878766745055568324708680692557383720678978680476611212265388087787585278425081894395346416986104291623765302009419651245743266134476294995852813533363455147600662777123303021936422067484185937632216697710010233045714144706008886332041876669542963761451898176501765409581340185459825107054357844177993520153198138388234034856536325737306432838253165296967895815064235320682266005097003310827839208109142321104366210477445581548523659019397718457939644839266178723656505262974960064132420684751565945587130115552658930532399558900808349475104416806829879441079928386299561099996422886403436209700758949471350976113490921076378618307015909616402520485958574279797700700622715841170479944567907448387576759154110070672668116056792682167433566447983810971700427994932853050605465268798563677654829712252819593043520639574567264447032102670981172336240594972289363228746171875524989689636028343918843308509818036634907827121970237132210828371500860256296216013653812476083264995890226750195780635334202434258917999651205805670849247617772680822151988671428819858103522054103602265046927138030847003478507726288768470254703159551993616027857393023469724484628389881859698733133941410754769861484258944660781505244916236733053790948184317675328576050059451390572269999414109875127931682114044295782830908292344183992507320339230717420027096716106602235880836950869586126207418507963474059975167322605535454001112519310954611350199559171325449147938794555814326070858888251988964856048685491193991590844951899563415829081902508083787625572769623822057820960534745326806527545622146252148838125215616718218573191799385598913377735697617970131856220290865898640863749827143170023582880068284289785592839315451455140621269801865411856999404635804189481366593773440913286262794032302825311800197014361104636466269504517748916142000527187535882779670465645276842282972525680550339542797000094325072933408963866310791713793506562368676935539512779907871433887296442886732683637933312960676789290782188702647846065967089994902215149302590227488946051671562627462179700263807046519197644409697245050010511035654947066621599343875356291631933944479258699685266997033037764575118417906355067946070055266326627747936985706924567818596408937839809923854092585551868705649694087596254966489314502167905078095724536486499209759210803686726872298397246194205268381656350380573764926117811728919002657834383708847500885411767517887717275209898439558940102841571423249153204744449051130690719422288510895462238238805314629976136264701990441705111600542688292468315428827361136255192737712054058994080823640569489881197791060633236215589579342461586387669360213458053931359562404544097654931996994263343896096311854439599879102316130686661896740656849445301551172953629233970463475993172505083075313091839385365362583087074792720527946366287865348756276249817299872782567635103335174167540375530672176008306486870474619222511197184082099325630969955418344224758097198647929101718333908387855415341800663332211429927601635964057558850921794813059772064674964862049221640496846327168066467470621306944750398593567365964364219039667895607139056429011416702527001604667095419089603008393586632353413952050882937826979401874838122376961425994342258106963802708218108321084607818854444360492187079237112411996038276971530093496783968153664552883805152484446233831147902114081097635553259384599066276266441588244859463698659015782442415810000948073720232418146529866656941374165437276354093176843997741765515537513312767376233952424940617242009937934856238980511434955934380503048537638098014920683481320034809813832209419529647234811470930188479430107698205733677903298211668483121925729001816766395408371013485798190860431769402460987763912281291724658843765224951891778717232184912790046960357388903467927140857241702011025031587877404326401678602956712188579859156461840114934027695035024564687859851454327495495135731564866302396849905491605783213823002157521814654417657484223620693273679015218872999389860495727227874041677010020479161627288955302643149335840231127520673965372607466264906705838040613984371365404185387019117760630929727735515942066794441167033603514664510197924595613008654341393026432572734299609082567373221286275355698845921829009333232576294296775410349646246764087001026961241302053300541265520400321671909282216819100825756332168486008008611440027668341355891640945353275924128092587138131717926347036512725658778877791087424807048873469973056081845501322593447411312747055009156379293019852801795777979462689043926255347471251175884183506445990843776500483257433411074959937118972295072034148082801754697761976453415223927129129499920297615011312806044555806182735956971634268735285391817557281869548324797829608006673347201439927857756455576563817157693423212085649755252135768258243301436912339963144931276617811843797508488376478427518200707085279915338286158250839113219078322712970825724925473997041335894624116186280437300830124860524843173227885869603598801537330327918160454587671820836343662229075864585831525273244350685177562655578312276526072897540288107932309469624532944441021515712791909785888036761026513526060057438630022449421388541138382437638600972210153964163511561492845401974561946858699458324857825685073566199876205555170147443738321816579265829975163689430915026688535350067622855005550805424239275817572982885676164192439813364695855110949594783763819304013780095250911591305054048456658136720426235901608663066054220915840509153269217350961592526443100544726458944920507356051859914208404873426122659845955652240032101967299309534147040000495674418150416962419288042371223546278391233719753580157834118828126858726357838197950973240713353477489539767275265908341016133450190999335800736601962336275260759420020491832030926269236895691206865773419298663943158257386418679624490383365849594905442786976147730416696661548769609535650887526889841796249836904730992635876807454680267367311952543877285201209644659559790386556368881597999380411918986096617459704440943160025474475130880963753296105163335056189894618191635127842428368883757814061560343130254498712237564365706207901102049430731154326030244576765964658107452742182581860038469405305435635642630410791830087915966112484781017994409790677885518585058107608585528998300133126567064801532976267704763686189965984762868966177738130974733219731238145432024919143711772895498543200036989055216688119181367733580681437106746127285150470884306694216747028537216766303438554929941782330369173046021467533498570443667164647931475440277767667496508211163652218027115422177640441396199039874577818017903645837571354013546957965110464369923417852532934666692664712078447717206835978754626126725002405797532619890909202392620876978545321326746707715194832681841442577582845968029972882791032974259495952368888011518892040058397389588671408053434474633998766225126478655387482349176413522060282494534837983964819505293157305758584068136975775191101349649996111499517863970349323279698072787716233269856789052318649116947467149900491220081370385046939084287639736532740768990349404783614991083305008121364873476833838233985922534238541388369678546330177328802768584564719983819003243292244947857632261636254427139468620929902461609942354739954429869563953959178348022354232790775612941659926992775836742848239747100350822278513036170051659437490378503214195064516784920821436833584939096369680312100303014497040480354537038919361939512034636099040573276733733821274972460980089499055595603080420398576482034571244921756524291239242775348995850182619988617175626217440653969765492383823666673790156204125693813865691916464049634496826716236589130349541071542083482298409412804435848509186110288645657602317755833341220386466096350581751459023289213166512055957508272238780885198489432052151260692934977804651475755414729030361551504236223022997632130919347431145215973617230199719850862525365028089287347712638334010555962452190891354796539476962058544583123636701757346086601677795832799715223771107812832872844247072279558756274575656023828345820774019910051829399488860260435108366099304619177521635501120140648106351349934515894672682948060970849554558154981312412907417636223672262968210576690737552771056571512470056484526661969770491195772613543420344935638863861144777039071262550371438967798447472046680104593924934568939083179665786579924502095229058088873614444096904000471495057118755244302125307437822857609136557240267869893532708307112819325910169162667288279838036992380742747374275031654586371335062639333879564593931031463280748586577786136131924104871022043728869682909258426541121975171020590475351567464631546296774497362462416940764555897502834756536267947178662635507987591714560673083536663815430109269408654053245972970298109070629447359574128004160839565281300417553387692983482791351979157381406667475484418055789879924593252830534328823040034170040319676183100619918775897811193394281905347550703134720769580752231468593211816698988956299304224370170429137935129635536428396453657934979060179504882830114468648912961999018744699573225048889587423281328650366793517216744053421034602891012543368968628078497115012580120940236359515179868178697969306199844783557000446016567760687540338868041989294982342917493783602270840335602980111499390239474039630139040728032124551477979488437044894715695240914251353930157643142201777123719509465241953703488471792434111770447099613589940896239182978990607021166061468114196745835495905878632584552289143920751458992652184449399562012441402808367832399501085355127392817665079315690630130889291568149252360263107384185464570812722456007925111672331947128699675670501336119533983892413015947018521152642219190338945737526159214851196200033390893392781306556833561071243275987391065756148356959744907608100991248957427535668739792841844968197915121064600077936832453396241736522445099487927280201611032958417322503355206427156309260463095960080304446338466852662455800670392801890097372047745234599158712592470713492387442062801453164569831319993269266373515584247477342361527831019212307417287002720330591602309916385721612229890149761199342126223696810487810230094196706805338879793418197776471473458414714799808818165038869608744481315294188424581093812045070855484197791816410645355059853774789096007165563517165967606358038679928254853681334483393440463469159839097893539298591460964103439559240253611459646707108278258304411469397943097427245075071283959981232581722327385675521371714774894096233762153806552337732708723191912638353826945734671820229648531315852772705539041408010997912436410293731488038395913166047626999703080388892648810168110270181925931607773699897747737226229903126514870563760893865905350799228064252684820282492137415201819199291721669228666442313220837401234958593686500767919944053135283175561271868820538377982776389246191122044814149532423752152738406155077634549598148256281504155356143182930446512083174833207550729154322580501450228987741162139268336719632252086877746249559535493355625926852227576766257462568431508874711155734610102307467649445469209278945805042201589061619805121335834152135564583978065273188926691653151085970257843106841802652171801189117698877658164288368000768957777151169834079077709256197894119121361652241058620258839012002220027541613922537878329989104350061741092896341208247198558110936914771245819741988872779658673514999106719014370056324787970637806037798476783800451024578723059233873389382070232781268597874246159169055749684627997394321974158311578726919930695020371014819814892262407592596961375852639048191730552419370888618630035113796033615650173837721242925035132098916992881409525185275398376431843501125638297826952533024567820236812843750127253299314544794660628789649523281117181391732299909852472608072037730390810618433072239930687419107406494016673192736664325601527301954343110436744029366379068421412834621876255212200805197416356837536124606813908583476993245490118893397417630527786254657761876933282655167109657174776479903854685000397023744077176640655067720171104949480172863175583141687760735368210563500022831802441240001262631163336648831460703408857923624761140259737566683931519886489828433309689751849776114346561393240429970040825690856957807053549192005955105260251524874617326896153664206864676590407752743586696249171750125296081741209565958994897577540113362380708308068255307434941235221113147071074426928946875511402765009012247587307656368301605844776173132881835615925228450249848276858092961123554327174202140920152221583780402023917110356789083784537794276927969769148629607496666952921333180456935235544427535229613015210016278761376165095267349642429892312672811694693384674590995519805532353814893456600358680201580675950214617561727189538499915283314293438364987006648246751264211289840867395604105333934076768032360621072487947964252974531619932519563331311728477533854322014337874553075654921851068874310213285609195408086791221059811043147804766292973970644876333959288543975453285982402456876234550690119890092778690052356812160961651825499896137539418780691628179960267254486675056439002485111248553544742778457230036947479717823107488792850522637097004246819895559808765559614953542367816564167560053750612456105471085639164414268765838850478276437357205601985142483339946969578724032564780756925104683457926692986155799646453980198462965840278781356147714338644058536944239527115273533111455860933113088823916232569841844290284891079928334482669737800239118645543885479085391911102655808169578062224524209791042465633034973041720112727311556076596002865470927078541357476506090298232951746735279488442018709263681613486420914302742657697492237871731052390836125860352050374193811806090450679423723207695849679990471583519021912867896727420884060910136418978968868571842562247611314499049866928030024192777556284359944037434416223672780673465813031889971250714645556187620967592830559041862967102245224870067130816828159773415432640330145206791977437534542607959052702006897671506782868293193676466052576110760929035503359492883558588146173117802680712374839930590327325832936329941787577806033963209457096861198967902005580398596546510594363313629441242911547103733813290923428814033481292776862909084353653028878588828074703859685920223972755658155325998453505643620841506048344774067629586029793260637701874160180737982456760785675239835750265296918125630056787458327817284417377569132906121828506989044952885641279586110983797875280358148733313452463445669348825291880445501808811242001852609535467249042949969278224622521561869871339860158550034072327386377552169388882438713535935572938534205746897740086888120990546986550418837140885822891504063645644464710192609556765408220059813956482338446248344548445144758463318592857504164331271134270566007774261108590824896086999372841634949506585712831036519576161692831918608193461376971137203505668049985053624271679773752406070967299582020004065169467100184521545055111501438551585008803176728529211790459105977599971451263104335366608937918062210476001707102075814156860622483405058749599107234386938074609187985979344885251926528476203012083638566320932819056764295473927716721981623157011265320753269019706611567397317444054254638163642076477698785604546207544207021795256372452869943451070650730434737449820775095656396881199085864310850356940584276555343013168622289708463215889995197670018286995744047283901131281884820448987547659570842412755317737575193661242896025894795834729774027396060940073490347331303469556186998815687863221154750436652812776755032251314732114841968627309230243223609308357350467646442456839357484681401918106878919112568660526010862116097098505041542858734934772571979254973875489841753551177700489626184140062570116772233061270184471913902058103700875347391729901108369048790236302235976241047371901113181556162148789751451722242232666051585361566565212744092281307515099112228354646891470243621017675129025244328524683854054869230266246750623349455741125429382770086495881159472307325852290016520723808768579546206874167325615715506232925490278774503360039751717305831474352353915570985353102215656256455072904231604918652706915705136594974921762023826236686363940822221241364195086820729835108866707089316911800302915910137333460830208334198705861007044626695717321217728680895876422200769444940819094171540678480431297867754132806044897772729829682260953703893286389542577629007090430315652578922984319484112827127671203725630159395213668518169027008212169463044667199065029719062112154287510612375449265178339379213430662850068000806104780042903273875299859644630755957150972224387165063810814454787826424372153111856596950349509130637175000245012733845207089782720879261550908751210437176718679426516067721557551414484398992732323840427711146772159060417684892912749552814387997289101370138171127569751375418482391008340664951592741559119949850343586913750384270963762611354206874283643787357670668311469051966077821874623046364865531547568321542600691565070863360860133473889404357406719904580483455477936441148936167518629795108289195329947260723444267153141416993443284380511663298617752404732146309238172068665915431020116175480576926060691110514835959152029382294605017036842124276839213529227778818862934280024648158996419654235053980686986457073666149696162011508761175343331688279768852228538919890486090078699283241020767744911840528288524210947640082607520242248851661213988789984046744977139742992072907323872535439567622834943481753735563755667774816710239557237930718474635668772294437297939627674200230952339196321547515352877054094826417607624871684839024865519947394046248112362181730167055235672834677341161557761327686778188330616946785514229645591032471783398997225118370584378894713609973616611962159228651402798984316843536734901116013551662613332273655010947819458183106975397692183516194844989638637423538529045666177280503146363733006655013201620437849810608021168878753980383335853545417325372900317291416621668035280335462057762471979424112309012849765637742189695807250302654921755894996229207515486441070955044626806570916791874577095686831530876210197080765485717861103373246014729609803848751844917678943541027475723175851254365576306901930187966216659910467930931446929954249980776629999137710517690100058579751986672076493254062318146769779069277067975012088032889362730802823276288978810467296440504520418089027185845583726216113202862648989616539990427578673656353663073877592105085535223213740121491742291730873832628872488842022276107169857034174809609520671835498600296220335206780843893042233315910699203114603512590491768681731401459541963499082272028972661901108366999469823684599968191075868796888645093858089129292702821789883013178100503061773893275196790240942539856241271574396489189883763859645791289375984419319551951792935816409636976431178874131984650699473928718440904513890598721650005777047908603892711271746262075519722144856109850848350441391886259458702047884925585602104259257462217442770049387315105766548559426071161245265379635085810810613760896434436236890369878760224180486096990301641106936761525755862203743849613461355039871557817222143151406623693272486288374934261148422059688418490045977319085273155199834735572197285058773491165818799777214368460735003769543220559959092706459734978961222948821592009600689645439254223500269516450289884752812336768649982497397275312275512783651589100115224447668502652414578770089891952851760874941032340720955778972810740954837426820002346338662693147090095033008021883464078556049741982046162443789679622118478580474218050525418311284861328462517805391174216911381035569551497311377965341181675829007211469398260422666739302601654190699761965861512531948572540520149692316378494173856006136528876164075189460445883168906951199571398329024576629683549055928418195862361178813458536585463457661089653772823390335556433940873976080947762198004152625398965966415265174696967360602382605932518172232664017334730867428447863004339969497349363964712573575738262878287753842293053882474156077315404791822815381253663283110075198182677258927718814115447196037356797700128974515519422653968734234250221121681072919817113243246207546908327582089055045315466015866901533096691009736302729793021346843185277388260440840442203037179431873919522536638876321858657761450224190516202342261729328380456156708615039321907195756239422580519230051686760460148418735693224609177630628616503540312135441382890348226007075065564159441887588863641028793936305700785438508495000794189247505424633382068651692948795852838835346230933430950420720860289589679879787481915865312287577632068854162340891876010085898064976548583211778498069398559871236045480754428176378711886266654611125641346325352182285057574829535762598628168744058574128956206157474237701387759502296505511699012318344306198987093679901452790066946031388816321443717806412181919769829447266396662412397452861302946098477067418407330577887190546964648275698218813197880113136903996867976270594768337700207632650383804052897467256478797501930198935599118815693615243165612380138724173010270592296177708091203242836230640673340229042478975320369275759604691332825549042519934337033997944883882011210975562545524713422336136088509516528139332152240551874428955177559457013848109760555461873038918679113374618348919037623096890484750474222908587534514999628454545307941950360289705614236301908186553915788072894012762969484076278369140320943488705657817829595416065676108911536764909396178978983293054797959069846023127662208518484402090636896829055311372869384970880458097769979290572394443555540124338582418756027458449150556747270563514954506646358399305341092251994109172958744906535567848776404358021708096071848904697173578649091910666549261868267160004656835543052364529755207355786287594540729410214092962709197469369983920538953701434847913466776827257618364599557355710533303567625944036260553259722241644264426569036447409838881008921696491223967257706553172518204692186658218810259456227631275727091809940825798212207345572751073190029837473455548947871939281749758245601510198344818843691968256985332829444806346423602004619705587832349130190851693559104937856097908920859480753264670318787612021656868234917461610747537927802284150717313588777178342105641072211580170213362464042462771032854537568914370202128187975830282830889503709584245579684238041659205590993542645126346348329674834938193347761420969387586838921333865164341667863934143761421388809193556455589501402351567239207765997162864499263015705618558771766903176296359741914090357250675762970966222426898029167013553999402413714369607867910393512647609315751673272589336948099074368506709183572721905650042568787169175220532463164083784271569679789204225731554960630910338902178728910998298698783496518019602295117519006747598477255952756238590362260565045937397173320628701814317445075196478318451742853033658512499138100450454150481500884121402606416096189537566183926002315698645536342088683205034949065336736039990881407834373282158835778055731192146754752625519877124907854043753119914948136992647305793618177522425259743865185373702648280658184834366752292536891700133109440473024846387978855951106883805684604965420175279796273147465344528562745952504136154950505659560291298969817632981360707092830989499540282747242573649945073047300301353812920363994291735284251370549611454967961459905716537088067434493142621373254498947175496344672286951665947167744316320932580046477942556499754897239812278554661319284451804481059394723701591134341759747460161661693312270232082839693282683874918319538020698516413544121927834564021102103731164960473464935647027617983904651824551131501393619476741400351578076288038077476352024267616430858359972492902212308830152468900452448355660053802876736508997692439074269251007068823650793294297230924390033375723693285866676176478272387660969090488845192357418189487039421068692792225927792038416040470980131485633722754291064620199102965207169312588588807472246480885117656371318505475108130649451375048698209014020594880324306778227756166761259939108986336927472716935224275394447135966891084880887975393468809840681577511953324689611073938100307192611834425580087362683293777964141389547288972972370675430777032977162781799095160678710394178103569681440903053608542716246127639650889707186178416615742557422360919920606847691774937565033804638039507119343608471849840849313545690423017668880090130613597556111543369775111380624953836213509833787095786114846170181543827401029765998980467673661477391418684923757548065024446871254511531489370412703894721395182453071484127357214512488724246624898067850041399873543054762088980005354376375565050490597520505657666330671870572630739592499433134282079635197037560364614249821897885361587515614763721283041169280927158431612331746286508647355152516527346078357812345160577719722459102387630632155394218574869181338870905970380665806995159291010070458425121345268094831099563623316764837740600031423987702350204217153526460134658111804273940828873701130437613389486160583395345398285663060163278053981548400798508578181572490251676699011468373146348693798795342691265468469250346184353826582966749383324709068137300917265401337424674541979347534124434937345629567188391958796593063534821279003353516833154672958758199233501017991294461513876133281041570230524385484984794300968342973269007804222855007965591761581299921779807991027314655985002254949030869292576785268097430192453423215101791776033572649145503269308753352365840387365260784890985295563484245295208092030290919520087744918547516930868215554446283622498195464811723576567248062698803648066062082904332798616084058279080282035187409093363928379529149992021386219032692169060753437540612312530456142438904382917733459182968019345786119093161637026125999719263278390875553532445225489606168371181658832163612936541968456669727244740570202684487010068089831929282586762663099027337821677097682555906609742321494545746222668000253986518306140177980348531651887816500930899625119450956221970397174338422280965851615624038123028701737203293269326809094728124823518100031691189687394017814712037976617779468049756649106019995553047180776045141126724898481862579082097621840294760647512737702665354036545134117233462967839416597182059168786380430819183553018784882343191893904846539879156220391077669748388831948080866584552280240436188710297265725482575276514014904533365469061611451953198631606481922599893230504357997399933394908782587776486832883910353483201607339198328832059933274321795944800082263303196945391154795302833153969510924294840441351401572578807613805805693829147295669726090168915035354996761820453059989442124038346721259362793411559996595481614562752198560760092700273423249063919544015432103814102117268488751709336975714815161889566077518512630569819974633073301811354609939342588046300562201992575426198619928697690270898659891715299574539794411057497295709358938611584750510931309836981258449951892945547815398720620124838505986774908684658776528856280988545512139341750400345462375345204707275159823818326933397814710816278463410277879936719159490864578792857389194501803312354771220020176259529650779553224743516635518774132176388498762664417771488956840596329260489039534563261356375852976779921800855133247811548346239983039388646686459444503665305476047419567305738348489195598025791257563284924975707301495834436769078251240802247368456776558861547144287184475348237230006884753533001069811689824789974425243171585023709295509201406209813719427651880157923606496167467942182978539480723499600874368909759778712064579445958375365074431761082020387385062365665843656137392169481537054960918132182197062274909905926329424500833005948539564431577374610436496055427455023207165985414677133518694821422958721898111409906071047123613481422079801637931492182146519951622215009426891858972290035628124851239074117305716507138706876054281487550944651220167254548433326540261986234322232539545280559221931190400930529980190286501694024732821882302315299664874397983427714348464004040480630966047871420792366953945749673101217380216268206471861645793132906694007939934523651194440572753415300982589503425523900004354700894371168676814775710754049970907158664188605102442260473902752900018899337930749065438302342665017963951359775527853865400251567457505877977354438324759030162836758171081779685727749636191211386544377845509562164576645407380912235086601554258838255578220916080341785393061612118075623865037025391865393612512630510178200766274128729378109106993479273085150543359830558114376400400852750284788255581002435019979509678512064677659132140879635774851634748875026180978242991951218096942184887599033129580739381618290435100000495430097337361256326784851901735457825643055714257160946856930930924071687957750959982036774056401814722750864729213528705691446376132883617306604343142997052291019134640628567672825304072302275025560867169695236658847674121687632007734609020294616206508255207488953959414445806919454867824118393705350644634183414126795860883193038148632457226830982576946300347944865346730873501086796871674542250157193407844126267569920184050532826742730535540239075711649218849083574138049569506282841352319174788533436270401285750707522194357094769419712174229876953068103472053746228590735576152349068793745368148137615904458097080573297700617055165539615516163568415245796052444934092640105484169669377589608326372201409766618114555416391812152435501367128259615562941146653387435828824121525952089860869662285654833562756016283467124911692062231619469297042584241711237425959211972870910707136997593302368010719352119591997035827923242213722044109895104688422351523912424474954085444523093112768518677248372204650324554591885537373647316115067729048428913063992033428898628973184125209464437597079109933099638032061661824733545497773452538878888750985204462218272854472334009506156225812691865072713515747159255313913010221231814885530949172759529168399955514460097302073801141555479856414194965287498941186989791154789802444762139049344565727948757976944520065682214347504015445619955149793898710785822998839795322749999357565617802599960067581989585651614868897979352023731427519117986765759028944932519139207471932049682186037189795595993049113592063815071791524397333587734939951817756436243218289580414696283385373044822343099679855081177181131427459642305471928320166988441027808439894060317497660144252353552977604899087659504998417858121414513478928091637816516037469958529442061864277317191177713050827366062877486140978281271154390163004672824890103730031169015254481616456213092509002880937249351915749383987035821074064700070322713180036399418765229155847533725966088770789291769991009218384874603512787151991355692470393766242649776370993884037409675368369475111942403825706610201678330423447791468938107687775610959376999864000791723100246138305848712679809131365658688048244791769650251045431288086433493557177437082057938230556100714205331235683332977652558969475477733110771773140193439103146048190232594450255895518666154652851768680960352877680944605640336253992047361032000125405569446756661722279684141300979560373125959581034444242478990307293350534932869938469486167627448576426539073259529156215672377557590097537799597321672619349801396770708690342268136283064080754025935666728796281347353573656353124929178769280434330733461842206974592468859058489384002834903185213935148643949607972347811114396961877076165184234946181674754865272890450329494884884920135735635295071315852317556525829016622346983927999215247000401203867959528943642314406552129146044918459293953475421297805301485842330302221781007950210113677579888602112742158043963150079655400781465115433924657227485820058470785633702304488921819539976572813097438983934030681249007470112999846602250812314711895375243972181260708682681803993122247098166529172836131439393044582898595113474379825522336239240100924876452426184199797451090307729901102696048885553335676994474958570513555248731007933960388778798434535559218590198180827557366388111152559872256812589883274127552650605840292899275817746322514990371005112945786337308778198904249295852744685119134088055628649567298312606819335065674458209993944533839461542817278594564288534242323236777673008760548177825530281311271082299710958278465913900923321981622985057603103560804313437247198883808323292877589284127167095088730033121489262661207399888420624928285096771871552437511372399779638792364145596846223609898686341962396653681765618921085781808250897578719185849386096208745781807329611451642281521017332902671915209190147796651685824529747199676217477800225271367738945625051683985448314065309811819359065976698644623813438861909017465267073087127812994102841880913981239635480749597906566146462226971834669819496034477243178167388133440784104294034038829650165911547868946027675072551205097124689421533213443370807665991224514068789102354930112634834499804765440122822402195748913444561374351370208973446635437895257608221776650225673068228689430235759125000253822986026150155816713143377803953979486815190190481610595905198023127856912670110030323286031424125960792721033314172458615144525424452267048071385084676483788331347962673911548428889486019475948124354687747223802717447701465077733220253521573704050773763332890852661304591925639482884358596235914683367300333444204732471930289813476584078682064366126652255673974586937433273056986131537853350728359674005594014631853451490931983334650261465855314568552783662606792682694587035366169773520724244138235558054578628417608569899563962221546846234299467070417186151140160593787103631352575432299029445855797966910895359394826742972556242238307716807425743583678397666755917679759715818044281630429442273470705198413529630053328923477982526232883719311120048794695239378038663257063882597829459552782695484180838079285052513838634250256455123511726421539413816546147482642338539149132127828855901145656190317115169687114231399494826527851314856499213708757463398021330350725644019553912896421509292103695523053138595900705327293388983816580294173371621307867366134105434408508677522295440102821588274785542080977461470935342015677331840172339302635816555674086721604748175541023008094473597620629722144367846357977669907998252051128540071444074868372839574867082442042852347355803494647639921325647044151625873545466909218598156641862354988098648916328797205224714505629401797637253128265912113771398678398952177001375644593424863501083999689903093831358726892676382294696417867708158035732531433935351326068523678951655859218474966802760702368228117942640234786495977716114600978129553809364216889997809799200421672734413444717499636024956654476503092542104997739855667055373709720089654482404087534125334486659068226854502839075361136258438478683416908791402577186358584632161115551053929513322968304117465097785742096413318372531691169500175260593586059845021643055518184723144094753356407241078065594630247485447236618812760469790781358408930978882010093221786762459750465130705986945175323833335939936789172888332370472289681471347761804234870227237423652867520191544416327293967601259163581627789060436798133268765332347238004242294050244702866997838739202067269725742277856239768174961322522401470943285061277420372109749330239397369486602156054549243950945450068409613513641366186157265651985998687733727809193326268666471336791913541105633958109455168354370293149332635082007093530726936160809890703448424733317280519452038009540520333731166182215719672102599468786872218812911491197493770885434432839113709128674287008404955469399397069882112251055992635107148907357872282243330097445405738552988957916120799079873089537298157400093523565985751438125109670073334297744806064103831233759662810052806893063993759611859523167872922252891091630468972424563588982128756443968938290969983138446100210606659842031703652781347976265550718692456360728053702371675488011183082713940679728038407352596212410720968439733527193805795105891148102841969649066142187833224518353598760928052768767724827616351993693088401335548357919193270317784137636591521780502943616444277150146412236241321968705627311391642952026339365618726318511813092323013805254349409878381999977840328156420718746416240076857731226571275562543489755402770763799693450349221461980447797438615020178115052856107969540789735149934236507902013240620799137920910866661737593952243386352850799635158878291350161894994837197385486187274982019178185438337040203207931392593764229069783871484147469149232670287328046821936618482505417464828706893649065133788858107089586475074751380482199295876200454391825768078552762886747849990119700266539730265908480783069400394231082647272445269958079220676745774954177244783595341628546469100185108890291129819730349521894333579399161528326519644704724745208730026103779874739256207633031919713219609619173163205354538179347208207744327510148930293093292345039787715591034155486452254955208318705681786797120018075950411258043977864578948082402538624668097471468683676487620096764022963202245366960215442132234915437412169920787057142130942502770956866046103535505400221014682594723248626949505079022894314447463138623898268027194887259881706463378250932705351860065209045997564354813632492116000421110313758097705655543314261140479128675401587101332358005674376847695970270393084452769862171968948350936199897324521170236673175552703314680513950293382533255717106803115496015279996060829889493210530906171257420822153316220598061893679981654782638108295845520032076622559307096786719265395534679370178873984225570115420817066283816442607637523826557345219472574356768510674912913438957390080799718515538317602364583482232010983081033114134232065226015812629408216246855590664515482219995922685980737044816309211779524563421614987853568210136913872341719325074368207324280325409116591812862225729676694807695034412935354971273192138130393635056707492205272037693930777622697360050605262886950596901379292132811534977602087073268608565939856290978034715764260398031461015269378261729417462046573526696510990941012968925053020594388613040031325066145078710656690655474513884250419904521124498332674849327070194734357461716640675569714951244814227949332230702931590589169256698495859015183549050114703882846432078253291135474005925540311273825790968187790983348172071382789476815194260243367404763531625063397793718760577219465483621797178539792335835179359153082845941795267803428223209981742187332435705419231035870736640798451033148506352830060791652413340081978544863132573628415359142009569872290310044252538117809568952679864094757855606213722374633371672714640069990815838014950761993773266760223569346604537731957811300307226405699236978107202924846135847520584286232956162613423511029442482264517402236442504864715573920014286528472504146071545927539794177950516359262148320875113014054775604796118278610518214025347416793041413923544485394737986166050456406405617163341269208456915810346995252247821204375071169567841217627257392333687530458246258277834615797082168962983629992182187994228513202723045906664552757312527775872912491812146254324990289084687669511751558356278299322178069752895527428765224055503806980274242346156542453661015980306390361991736822502381092153530505745676696981185141470934195663330394218779659512274383733555720866096495073944604578487403095554567325316743721013125168461324266647871947648551792306287594568053792215081601434894118355718931742937104660202628653464655542030252195302466317345881361446120503063481113813910351838891259369792003922572054911193750191029980857187824956973425072844333773815967154026616389751807282993504343064341076573394680554168986201437546284446560534132614007500280045681296223095049487698755423348126979861767831148737242596799950958829262992054416246284172750600101633964687949108708766545410308367104385431929958549631071064506614657629618229556339699541052845975795604162924947936792396082296824099713459573371285508108997431874825400638874855089513760620427228325463865334111305553515154984658624795362082229429930188836630688419261847513705593684314072852662146832229059737309319857010333083943301187200394257423177600336310265075894295246673512665362734926148332960541131138491368290724775735177620527609316173206141408687834906795008853159484193792035113129311663531375431711343455278511643475315928193197076233959603147500054453171799002536827919317360690599861349908707713747216552711969336687884517698813340686204004127823317078696212787295370905545736605065538171732608814835077872109876586072878642435523461758792897450396383688324463242122410603418557522496724194978203282047113800493757812139614699374882273752600207514941649147457493021479789918896154587631319572309083729516691722498598277914598132164408944162886513973652973959843378442604033498615696187111080852554333730280023561148448587236328776209318932693748457119732889033393731617020771779818203986566908755414500554641235061876284759275431059925185979117633344364677199114937339258368109611023213912841923076100629414911027387568270267407690591009996202252067252520450654207154491958985080611263637810414034869120917551730965332507259239899464856955713141711644568130346488060758680630060498838955611622756164607987700959971467118177184789761844600986958381280181136794895184577654824615284029061454946258058968966331261555034322099320167733653175833400147054697678253706697716789304624077030602743736004394378364154203759561385141920246218335044695570179962210398764234829976828055323976267774549949600171073621304594966851875553652764190564094623112386280961656125794229728043253412348208195064733910151325066564503729724425506181338081557970515970195755209819526505842404618168631223330404376956841223903912085582770093637271107761884065776370179687669464322908836533582478250504408059495457193778312372863384459052489081081501082521397253738299469546181354989728802016802421660677211638246698052700378196287976040801359975282521702845246498726633442756570466247526907718976431293372036764749287486820668739707370247435467695863993093140773887996318286214163302786862333607053511950697682025689438504022072907657473107926523432000646242878396405347756555754215901547185385240504289123656717485958968611681323961864728216894839918808220460356981591098390389037910083979306056681310256447643507109700978843245245179328810764187537346331294251763079419883870767345338422728279342137491915818829982348842468502110134942975431010866797938594632867951530035623599600887757339574472519243122527451398412309444098166807114231539671277663110934399858005087559785838051234578233050924819679521901336817445783584542251087385850297730912303127811642317224438443946372624696589023085272431221011156047547546081301834257502897764436946380607550171457101282220552240593708251457314607696168556364498472487105028176406362242705234064945989959830737034708092936189607088640116873033686885621850812831315070169918828235748504060220605674851884526829088760443854036538262818881623726683175078737464503762693404249526070896971602974508747392051859307913500506603849361245728243849005034773423686387397239481470335446678780663643089914371345116358275253606289675172090813936897134064447154562790334666277431977569218222380453743853224242642808416529255972836242119035824239889214554896991915143525005619755479734792603969499858306356808871223293292168466778280391645172418824947171406261660707819831820272142162417101852741187441555977168776322378741170526746811596321883990654459168727875434630072782070516474889429417593857893495582652778687143213332379171688285609219814870227859760671962289252952721554650326966729878917081378903086692334344323472170665421483036176499604953664249745960449941805813239269780786232871775041900357910075911286258312687670698256903662613919996973355015720326310669867432259394417866171376116905711756982439530548940751180686602531036866479009771464097522057195120120402189034626664236970230462890504718002089763265663447894109540822773301702262818079973119772526580485670683035779908608933797185038419151563426136647749659812717052153312251858035408865259727928124779845921090980255550420661900634536969108826669592380929976790581323001064272064277024065186002810619719624780612257730426710562729314415277305696876297033559550812485778114076109640716429119828715524801165014370410070439587595470825607028986066110911762436807421074905889113368876255719472329410862811972047616307315584447572582396873681090490308351102481012699693805268904509454996369938403843383306152575930532679197655665354809139392297069681249426576363210986020295790210444437633862954023372337337626787040793916442066764291799466528210532255256464208719066986544207636664070985340358704554819763122721189670734113587152841349886863667278288759084109605785686185581639737764240647000094529308282082106580009571334401169999766494765686240110290194216960814727983348118276024200338837757744369765645116378852870059629619182399947295145915743447642813883117669207411803403259908258913852865561365164853806568283720395299167454385569764401301275535428138603217455392908121040735589013091947146545540008831037476552811357764907159337746724298010863106460640253770830880700803223654451040549882480950023196231807442530147368885218438809035786007810111914810492795844541861870219787589471095988232235706354086059521737790628043194134762881470223014768047179532639315217560094741916465264017452829274804617088463425262916744929967413651361306070743916579339259123265444783232838388946024969027602661559707760728432616634089826805305916155250716610473897402706067508421319462028623333247716300092441905828904004915255969102444527245783101257193222149162285012074192877552602906852030276799849306382445803347305436988555729381824888818242963349329288244175295734267427322353193396524334923857846010413822379962924394621367648281325782910069487788157215657725734305909743940402883841276181742444309797694283612158135637737418388368608812114173664541677230277739735426985804997695858353715127590515351464084016285007027680263553374422724247401258259282408599874356282982399631612458303310340859714530024374333863472344801075538438193464848907175146417033075423330578048320086719721097072932846261378934195939365777443329995831597056604189090869148511086174356445091822932972363837936543383844238972967282693623942959966756142645329679668635717375758511895684965262780097855758308148239702418618706325203485803397026206130103222815002043902755047168712915832295841189783218909009432916211776280367502937673548846917071137090417942620187063161446290191888045892673902305942635814155416600169691531526613560470995883459455903322713624732467701150121633670524000571977291954674983915555145722333017571680405757891476922436640201122877366594005443071075042257148902992096771889578709822727373198453872310286260369731903043560720989609983442532668914422243542682668389695812838461047172142821341921811645559004851935565092754510921417540167789272982134509956759032691001576970079407290279305479699196240336892720192599614657750102065083418546473821196649931085484690733386476746079387736109271985612903141429554731629188979044425029350367813445258155102955154422835007051719761983418187579460437427990653137105037181060633168631169093383883626409572698072927345135984855957861859420303868148582039659255853922149977323202184116121048961072089994167433013669213080018256317233648841997440757734537855598830266445707901527888530472637115785749058474787650512587145212871398602246113653542014140782655172894964057352408349871221859336096599221034603385150939375185680377292602606214790464567961411125919301360830061327433514626841107883091041703485518880436949103186876903438377859077074594214797339741792205302563487601397452840088106706040259308592305935748375663461294079872169967697290696599763155444485944645521306019343629986676881613262475454462526194966527002546347873216100470912499462976337284148576757173479913844764101818547424543831486945451118269431733573491207364089224381197302055673086382152904210493032831158938402007696504392344409821275247648262442727365119948064964361070451585744839738993688580935136060878269330198607202316951953408338997896010606415291594165811892027380176440044816170792241503062739861217617579019127177253523350581514265634427427010242604931358272674988039740295441437073393349094380576710226678559298308485581859002857168685639204809455167072127689212403496405855770065933076422433910386644114340494757390936251449201391718070519156447611627045485076493192876465611292206033799447906421293024999594520149460526919188562254971323783735120183308021610176281149742439009646469759947753231868437064058020351356953913185884363298458069376815223704902704613375404074882023621463224125967040438279796642289751526509179888344009888231280315166578643982455990476539390490978326063041730460847771368288951046392032086719563941434303551760259881633513121500972147598252180122059582793696560195329068787615099966668315362976031895158224308986434864478424599663910587743933757478702486446715264389776844829756533153132315530667604567354291433721154265429144136225980308982382323540648785233818815146634168466748937494201824379561473021185574651203928040195247657010235613022158300637563739812403702740739246740997938217239207388196474839874415492652645300368281790212089220936140369501875022222167700611298018128700390818547856529610315932590647448539624314315729330395537775894010092968551114701442085226198449467170291340801634676667246290516608802458237307095178423979660779244418350042962890306014282514899962276220996812399332711357591947766158799376102556721024871202583184293483686456128447413084425120307107322622888127568148054122070288544073920146394233897774836418979566129126548476727913246732171747000120550081945353593961938233695366578690746694789463612474954403386177699297622238739885521458163216286660342848532284667215135134489374572480864630943013556262895139077595139575466772058021704299440892604752660988520461124682109080994504830493823808589285189546784862832312796470131632968293845550032206425012495541716202302183105877603403321428879583029711947135680123012118615393248305013705723516508001804574878515932444630712970055161021063462936045430385758696286681562098626765487332543876227108410194209990576121692615023437344988294678471813964755313848468971588757184816816421676194375634136634822340874452270204323276095068749477302158162305669636399603249267575357177737059686262041271284569373970897847248926015143672128079153795743097992270433157034587801533382372281489831516561882043026422292479391758092210840992129891068991828323058755899236791619236483743191890408478453384812900751562171934857774614265568551374226260027953452798356792439349189394724927669651451625686369032800595194904517817828357062041833326426334574015468779064677462518809448844849517155158856032409454395133435527295988388732334715103413137148181355974982578323463065401825033830391441139115826968276417550403065641836328389241737009794147421929290482760096021097131654250150074903499365911344408784053353915976010093288034914310022727062410430098589341138001571457457519031865402019040345771286894956122433094354477431575503108273869423151364802545936377676057332493006857166208444242688522956354073540524061874610481578850507598805931898597298048638415968511613405874836040094851668301908497169345497950081002678430061837196286593491109396610204834897597674452993253118618131947363675056291614534311620320711922700461741620299988750418384034943128306082498096465080070571902412923374376426179786028312061937807902017282578125737331276915730646698318847740858709699772024553438963098538288637457565858523200159011931463880499962182215804236077531817890371965668371665457528819522314830529038939685382658617933539828591430829131146816690659292104729412497017435505156533288449980500557224878901480795392077954711440612086082473996374610036401230927948709503119534474740617844985645273548154723933556130070301881991568969218180286712162079528151758221397568894778681688215134530625634648701534651390771558480681546946014063487859293374590834870362497320871950851919129986041210313815698957678794354492670643826244445040432134843281854065115647514645917379258413697806273728582195163438836507798249474790234091153039121469870286057495244833965495303222413658906160653620767667213913147680796910423091191092872171280088238676675386432403413627535413339918003122799129317518591550681814958344779384762855088457091190691388952413886545901542900300472164932160235723416106530735324579802036807331277417911285060107053477426544550218642658384998139187368671729332015642578074802549476218228266778847392915602624973907167135046442922891374145377528476505932532040710297637128700529298331490324348725232743716001675486878743153180223099529226478518277083464689092516940187160999708715999799678899167852585674937599111813059321413638340538723871267150522112807422000342679315242181674249895931742315564732924293166984109953578867243569405146620376158409689559984033304018410226332833237272703021021855530150393027914085446408929874405032915874383397884287276764803019649451743694210153597825598569777361461273566412544533027056193873036053102735597962525943880274620121986678929670375530614415144355499786230410999074626730874803146258114783545643554778785398352363822269388131294776103997205248844897731563165204123366287359067533035501703326416772923306107202757788046559025229752650023541511911057551396868854372421551261314810451755604309973022614662420484938029618682797445883869050110712173852328686838684865593944808273566044894993553312711596416947878227637563146310976898537657145566889741667827856221113427333650582103845186557104954199893530841373438284148608058502252822915959013336891138307755592828954231315319133216039790734041780670908182699555928604205707490733156152916775316251835230414753584120648998278072452061012615582225772805158867305067396099399649552038255268888086627421401218556084553048113678049537327784268005565956447631078173061599099179124509469389728298924634337544481818695977854965634789526917644823217360708875633253400447431858844172727176695879297894819747401735856331762619182985879430875053783689145306799870810588204617769393930603691853926326385781544255598538027601011658796688081525674768375092936580120334239227153217173898374084580280744443161957439707930452794467938316970238961315083761337641385119141103795036712035551760645272259496276427721500137456040226316326824371445725271115805011101626459313443303888045978006836901423182417952381897592128661607005273253659111647558277357268920581089873640418584260314504456503411780461428409482784307638304740505342923021664138818353633595821352325900490419658543834790973946673054257512976126974611514299779780533571542894097627846987446783759176236430601141427884893494216075258067815885017075502195778671769368767820562967349022937472040527235530989327687234185279949632107714000509966477320416123045059754202866870301249459707789709892213671803363492551714728041159147668669235149145438670965584446687361466408014205642447291645926279879363854833469557582773555264755747084737201335607595137440667853957309713398960122609732773969977774667868353756632585579663017801582915522695003570336883092287704402427123025886384625572385860897663846022188709229901913657686106182337266679616650857818448548097599697525777533761987974043615745842626848563126270944252288721509302123581851407780167074186157121437564506197204966242290891497780817813926372665257146074477508180560728629123745859704063976012206445094915202871355697210433004344704032587784919003791740681984033532407489660066758047558061816685767425590008840015481640258087759309667585978385230319339148054008712684662426742981492903159385418819386262931973436453237612289192318474397373019260413933331281713625269007752415078938065167247459937451596749972668342731027943984528281352809014478423390358921466631275667346749694538689863176909075490708379854625279200635621372486064879095197153367436120735956233447179074489606620167213335860865794826601177313980249802215801283798130704053509481802910444843638157329054543657888002825258013471280414473979894154044793419212495437383224031341116051662895903332274378204008586084511036935271930630304743522384070764207809563228875025400475417526683029171283110065467356199091150279471909205715550681808589796550181010913281308337776384345896221897513725997386260215377224577550173206390513120951484479562596293863221704347514514408793153215919846058721252313672975983814589651062460106300764454819912205795981608762823851498592765055001916317363382223340584504548503949643865211972291216360583855970192219867279977151468989600497126871244353449407180047110216270863888321114598532885531631538309594877123367982796160655072487422740356054627200389600017260988204983374412970257937117586760997576845459033109905537795972716335951403433829394280229728775831805550239510538217637883685419470758255464515903301904943584886249493802988546509594068465263262862500455008473918280168947849999555883886092166035082363816051935271197727332094768216351167926368226029032424761461834206252066021710843356086575331113240766357307626298652218570974866403877851071745436468052005537918437445898025555192700392678747592477631329839479716343083764780479463304077092156816418541370429764322664115699117382965639175950742867094883852093381997855670763921537002907972465161676878957467271850762758944989584101909987679707401555984905837011662488253835159078891326551660588418106599337786518161425067065107807148665546705021590946616775247300383674159794671071072243588249605571548990818289949728539864405084566507642035978976599151071419556976134239364210645225472472715840669487735430777070924394025434240801048263360629078941124423289423815477329917948302306981454202944505053269317084720263745562669633144265675277155861124055739376490723284570925875131157608477521392328681069600960655883505467820444870475086049275110523930602461522679896722530713606122624644032347811173691970217858700316676558844764819488111808311394994755241639258441897409058893201988907348310799482784157456189098405530429500392206988772173250195025239085206316654171977697622600532324482477686678185883978393634366088206570289586126673176149396317109661548856249573688021665350122711265433000103688985526377677556921082164768591128824839297986935819575979274102778143356220878093903192691643760016348714407604614956232093678193119782937445869182259535894019270543930556561033016740192038655862630409663666443120211947836762314843479250467681139933077565469315540668797775663276746640152033450782727806764458979147792352425216034493623500659119342497943432441539147736636471494431919916193600461031042247968355564631559503269805408846967523697951415290883737486294212399156170641849033606298754282619750851140720093681397045712322761652326287605119023248120200748906424069631121141779618126983112877916841079951680146916286353246699941189429304565719610783333788416750500790986146444106853098111694920978090837880698225329531551132866312833667989945013439754816410656308300025381955802974419120554538393503174220751860671770309623041578661857876288902467313074873265015182042275926899344085712790182261755483206055140386977929036180957100801204588143622831191404515426577443264577852388151622189154870367100469067601516607486343531110221640198072531868613206705097323564226313883287477637146288459459883262984101884314570964828338837309626892103059110506093523782566320671290851702636974444964490475263145757915915380249499494506266764504701895125889413416785155998461583834241724791881247363952731036022464963923498386147315588976667918722559556629850036123468769333228267358467184041533707610393051090909166089484191546324773543765312629500380999477547693655897670253254625021783403247196303037315989752243161253123107873571281459652161119614122971750564435429653182147732040345676171739510432086463245700679394742923572314553390510281882242010475184617652748546219175543823386081107466818480556277710462401395328790923932519806472050863419151375021189345549452528873665078541023563125143743068526621575576113565087431580561904851252315973989411563159094884092614392408789959028036941055229760647331573834478095331677901610480259465354002144417830706178050573386237464165771906355182039136884003879968894220048645523918228828135956908783697545664644344766980110183132227444110003684580779765498990264871008624716260782892288083694628925464631240724097392996886257977605039574512513500142644166218125372630618962054561500735289313626056698573647685894499988457614583444541559680113179200227404415604199024561677434800685165915882285269045463000260881655730904927306174397913296756881474126186703813597280651082900284468269607446826840788625000530206469281478522407025004112683787936173713356316135774582638121871565703410836154147327021726201081048402137177821177265994947214151232818678477490243848117686342453364722927868382707073144905271782502206503134118692507309991932250604795295190656851631150268142944463611199624285542050379705117986468994453580713874604043875725677154173164432761131931854836386732552444151278283569352952898383405842814945688520975626179093818002579550010009976630954361112710944765952908622494238341307809744606239626712687294184404337360752903240574099625614791722253012547124274599491717784111356746454148731992587502763989844946884711646973893420599958774498393325429949127938779338428571182880468098734083059364337441382599795427189601586624689920511407681559489135431162556138819285885074879472116180809810125148426839668537241358787886269435193881943626409187258842252545557974868202261773609275719719503648759478707249811162609842287137776825410385372386108314569837884172159995921774598366834309885000925911366459604814042256053964126222554708692812000872397725414765321807303267196191525785799015029483921098091752920261488424455747355647605907278984961471736905459257441698385954752643866102139150852598245019359267107503458604680168640453204790966179318271450837492605022429813335422676760198937648140479547298096922674162027519586708252459742864110265180771671068490647761454678035080069934833258746520460269097141379836912863110311334767552332358610684492444356656349570391504004727524452396163629336990840563081268330496415167479857790004391229912894303089559977053941407470298476843089584138792539527841546206463063263009723391485745780906605171134827962189225394237359161505430607272791888238329619699400047450258051759763712289469135448500859228673711310494983290945918079741040624715041753893220992621004187578428243533701069386586826462233519197829897609733924962010627562794798425047684160141898537149483453455681077039655061549059313055458883044361308109005475758974005214459248031329630018728043423064670228056703911256624147412921735717575377687775124174850386545424709340215116867784312106726783726571814868634834403698390924686789301286653496585788777150853069678141532392968640201238137341690631590131630399971537690821091150409991539109661622999778707745647454726449505756141187798655325979196217651485630573532351188005534307196254709699723816433157016531740589212502805830910766218028375114167137855316265074403561264875490029009488587754325910623604313285070012815511212924936538137163699210173946148396376302430462701407441801646606027647668766158889877462590066923355065571406327451672809370519404490363860930305182768755244767620029344663718992641919285171453020778897749010470802467031595169157983552916201086204256399246414252960059878699174251518496627958647395609315146202719023884611290962568154143357837241584649433601495975705478391153773738815604365549087827050206310149181349552180351682287083619434327097728450132170454128097701362026269936788528305461233902329290283289454306211017654157146828682814878160770649842956160147360840179081590659689872768714509681018343669844122887717547070324457042559427620239660431891451239226465989983741948905755130227234200836029682758544718049568576196057274510568935602191411727496575327608874926123294924680728396858020712252515888083505235739429301931527014794484441033701416768058529830165858887965003193493463651529450443678024398162321319116788084430749886818244898841876868399156180922263347918516057863914542417008266028948451673462410325649411107715471498504626562073285974237493784020374037854441586899843740412983296684296539723565621639998219650056455174522438990862738210454800123243523280249283181438836026231520417707334683992603009454859194459812758086726554209464181856490050293226102177737543923474339895525516073987128215437728608240925412433756275075762969680374437030695512779153188244650494029240438566600316903314659766445517400119218255188946564384107406793235632165657202218549476213715372295814695478383109650888015977410172390311915676145516613731412228448372604738890766351065715165055556598711066345861238386809604515086070449938018821086743007724952214999863285557326918895051095782388651687276117157209430785208929231494956206518421342964714093386033630166616283653258091652712786475389976072649902762883333319373466223884337998032738526074905789410211255998720677538246350786507374406604922634808565064798514755902194975224048870158752191182058785403807080001564574027035151393291918032350799908304514872613306825121913557666016691438452481989552491175563715938782082530898107265030287856913250969787685181566556335608933930483334501428252004031818643962546904111636535659465682695815296636504295516960694599211916142197668033511482917010758738336455352479405423071125349386085975721927559099193157515973451929607181030958002486456882951025155147423253434962032187812162873260527234887938060690445141868942340873598531827656067140380247177867355114489298765658480683798603152135439593257485507241332728709199482961777683076916930957797244799639525296091368895556864035937812979233816626662127184056533565462999746112833591886314998808046377993095291725172166401151082189546509260411163954546069316239523106662932316411634490078701672462627215992806636925865790531110234057742668509414702094732098091528740612539427124372270281902371867231147233077704666592543653772331961536280871860298236378729782566020980711876681400127073531979290397674474655217907777693716754500735969134808606147441298183929463475007387083434689846292580981401270686321264975724727066681265797636487888956315542952959857697012559670720152665563978254672900245537659015050320636466152117804094435130033286110834045190139620132059942847999283206904241384038211152003683017476363953684039872568519880106819082679211537748085542456441056592858443901872642217980179882296883513403815556101590459115539062739777463951367758292109128219281815818721610457358376052982665071754388390855442835141393543658873017635839655465819771608387671187047634731723709785205541512083476424304117774339654200108025800078324860245902562122495308297430313514311680774925037935347324435800223305277197437422013989853295904970289360756264745480745562439261883662071714798974769847097793013127831501274265987625530100910582614596921619046290394531582377771542906346065955188536785723124775066953293751590447550325405775737507696288273250113707123529610813664230120918772583375083349461685806994251742035697569731919614713184627828004239786153072301557186467263091517224898080343134254249077603507013798426502550272787633226350474900309305846690993206765994054415785351249719383614522298735182460722692358185544452967712580575843830509086262697628974222767870184887874306803949314297443827689554480225059353339929904676856624608982439349762392880500291214836642579850563763676503087070474125566209273829837145358178497913303000128266131704759858113691362759037214191848323067704734934594497410610412241706447570595281733954948876210142028282085255343716711460060337989743726272070815850557163245402105965675561797208852697631592990824083283703982855729480898411675601558150450779621059484970898172239650830627714965828861026490084497297191691304343241084954269188483404191273402836326396585179135846043731383472276492611621613768696239668499534037060640133632606161843964059692661420190296832982142863937826550608258228566146387324852396982917484206730192604564240243808287126378303298121000631936631196938739263055816746625833775094266833151123313891394441583021782200014913512074587856601868849030155608936796972257110503057765712848308622833853840137633605236658517910278862090094786612129754424364458188854396873432805363584864448405003604629097571660957856704181856479809727784373966026751371704918551935017177197690218057203727723430035432987030408136658950117167996463743509380965649101844261210460853381392073981580282268005548714942271552605522366630028308258724428249635789300681682913294847700282691669681723808152885209550566542719454770746189096068630501354141801867775636795960237252564281412037370711167082062200720136724551987332053618098697413501262623813442389335378828306754449028302934961769617978939237119546855832420863027700210389684529378281275425390499965847442267961300554183759818537730601347865741984331465992903352101967458327964785309666132436262507323550331784131221660954509961250772571033795636486347597018518288432886868523472599047823507172711549555366219123308842583020531633073545585353033235447702106271797388442516934762276621451648986039301083767568406447722998438048828580472338989463220149722979161940685507947444747167981950254401937209398132954777815847730870521473123658962534382056670993054353961672411445457482592885688929609569747063554910336772077944692074196215135188661590912237272577568503438409538304182921497298513613324410555885397313422182236304857982556933990277490685798240644952317926615303622068374672483544216451612241203373979577549525290583041904007886876219060568263478288216356748676452590923044467576318472191196845909526644526317275783773851600989311528861986317224707157352375389389466737918636996466818484700028896867168232407804129142998310623081547561536100565754401110761294117054575752147708354025990199384376733600471926391250918004792970460006753895501785648414385855051970754523108684991514608632221500986543245347184555548524281747122161385649311484671347322552780477885681302873712283647854233009450644855446652668294683813747687981858564740236537551798267410750682538805291140921036932986200013785828443421592203848717663857965984654755416516606657848048404117019126734614515757959096228249319706522823499086585690298505710768198393228981523606763732271690422590138234370306522682040314534575362003412654454309286185408448496938823964258291984932232358895625565174096196018139731085200535423036578587223420972919832257072468287070832463985097169075332623712672776653722731765443664397196309065988908265619894886491339849446239208967920903693289603859982110834292701281234367907435612177584847436657053087901850395831721013763701559223816657500040418816559131751595979003924057066529695005967347738251860499374844866139490460758996570187149057298401596535595629263266866136417044322774221855495196392139388970828559499896836786893444399689394538893189884236670525683741032960345819077294336943608414114307738928734312561999526630105560920042763060990609024898377993253321455950422847371482881032419064268184922168363050142122957324594921199906843584646094389339204233935073855405961740262851339160912140923725621689917436262794343621913113732301983577912474943932367839009760771420240871472932330752183725249536867125276674137160633970110985443200744628502854675857107963317928174687243442224578602591715521534015975840395202738843149400401224682334061439241466884302479845966870592601815066148346244145469067759107355678827676063277261145961776887116743039785777442956638682528077602405248846838443404686960764247730666119985173464351148936819440825242769996795124016588491253833993408431254818597603681089823171518483472145112234261922827111765757339905293054810340362306237831196456257798432930399640579215879636661065021611957438851485933040020848070491542081606634135571634599081793797975707575315098969618216554022864657883318601575526189632391500378721175763441465242394623159560612885584409872461253799707905879955205695370116480219245695036096367960054462421852712114195041036296574293167973397750905810346243095505983354488328299962586507947083903680040340345157120374685338631519438002410634870427930423665528978701937728925998402348626908996590093220555737857130917598747162915925986912772298853744451158145310364410342006336931594653496080946072351644769025157513820197277351228349917595085371959534368094313259380355123940089410146726395172653316198431405394864063255296261559244931643933214528357411221423227649478757974270947428322944799323825338830135278572323664659838640979749880673844214784169073404832738482647544279185534424533495310934113118811728413537886407055277526007524226393971105123231449641345883838992415441687830422940708085443194728546450537666917677244886295358276421236964408469412467614182536179265706221462394708543677440127223585068352947255996657482550193964772005619508987557883439985467447838350944475222184766148345956217989790183274440212664967317012495633597497926448143099826226685748247220992339073776366520703684217289507675292099890779729547451406845460294524795740468061766040216913171892122297698239754111989292697220388900008077277931882835333217757000038205499467151354212813399562735185693887786783691818380474716092231611278665888895616109129354143979572356080171112563295437950468982860061692656524983945110681841074551441587136397786438571217322137407632212233913385607836713388235791877253166481696174101073015145734882255879657133257078936401384525756601188543029473882587897071281705714554241797801335889867968507713472064761553343238280163620599436148585412626036694614124406553799153970513273698027050360072841181188217973681290137939282311029473086913081848792931027714397875703682203176957371353840008272650978305202334086426286638056037731949143380199221590091918725521679268556356970310156368021619516398738586364315005986191400655883400489377212501993166366916658419188924941512398871398785753908624635236690530588596935292639841227950923040129000605711795435854707440289380990760492779325861147648170595118012347255117629754595837319403812089304615644998628848327461728295633630941402591570824101618911499242514536223023417464121619198661260545343014601917183017094565977863259597385072847867152064763060278797861907071884491950445151528587229293123956033256603953407945623646224486934002420632466351927820328856706716914376041420638553845107022697715770418831596233231301043589068617224750579159042624489037927143630816566787202552245256623060854609025067111082855883414740892767971713907387493384205885207495968179517500432389119753087720878336429944798516707340678112616347981999390109729282492434520755441513473614358859813503828824665633634242924906910828797600689797162015711949524137839651242032383161456667189388862484428957530986666621207538820914847562428884054799181876859576495086693401528612500705728714521660619081536616415810722554862817775889829025467913656332932532922054248470134761240410994121982802085902474770079337593052467202648125692985179416962789337484027257404962752683089267350799467451407530430741012293106186413400474099191263526067853244040793927489029605499781315548895520779094532816062847908483562832638042639837681082075318077169105171243200209322641696790480407973655451070715611369292002409225061328355890541598490041937780547240930215105564689357405098043170435150422633394727699358518429833116444816620189348030853408644149708460346100468756185824175209378424072423314911234906479499237380029400817103067290510429139589448383038478159215271051344066397429247738990411592006764773429161137214534953704048906493898283650552657466990498393895115003142012380316198454868954250464242748361635627579980654159520167721099953409601759752468320132473099942233183091391883614705064666857480167961123460933365002022878834101110595771203174655251634773698282752784770358813363339237297814693557677976113875887749224117570983052957768492837467011007714862442186630919684349291346284505707112260690621322727418288346239222001518771953636073360213553662794320114359387653279767549923248768298208953681168968483470016699850888054281868976453880368331707050642357790248103960740806393979103395461982951096794164832016574107375547084401662136555588798733059217377047634509875181354460697954341954982774531935871339221471848650697710752604496306921824669649528653538817311163604828676088898707867769513082226048035504399067291064121922461705742442578731282342692669590713106920509175710888837883384528353212810882357581941856140810664853745948655704198306775391188000734123744112254648561072892120472619823016516075208711819606784018524708797076678092517106281838924275871143449852922966546240181424156200476764964921385678204139272460514025191110006758248370073955974650801330746957772429911250216634592612530804283972649893644016690008677684078756378296759886910404438939493048937003616164941598457743023645955956579431939267229175407276752910488146061423657208253584236873505619252151870285037123795148606381841802110169091425675507797391316190442692826166402282005755408014370531925627095086498971283858539983734506974080765956782335926564512636906703802466582289369206672555178921785761211632743216539225664504518175975557377255012544732775063199899586662589318129287317875461924635688650708415366255713650135414175967746937676675501758133943126236059587730859003795092758460386164334665764562938642571251676187626176920237913266245927993949179748137447598022838569639548155162792140086974714994306964587135416223388662543983924118621980050518869270305607984757802508243731435003045897303844191729891979309493783392559670154098047147826191090707449604725716883379406415617391739683705344531779214424462739078193869091290942587516191741193509576409516817106043430109310538575024080816759275136854961288310270128043957954952996335204678542173856180630181938269113773619875087286773165932426749773343681108075255413686130185762012563604340576421099990360222837123385389562557698924977844829944242067042609368194676708260249986576287992677913554869804896935003930566849786145615419000276225388954776340259074152603895418630523085334366378087685492918424539711514999034945014038610121237588235564854667820662648831994762409569061962975166010067154776180198626409745224699291375718455589233505238351912509668378780030578989238504275367759035103473314380749406594955992563946452213595968402555485918731779882030420834610670804970995379455283333969522317620795700355567709035945382284670135337170153731186047298835895009092858934691623772770107195568925318205556715962891686767034347766936706512504666683279828075918652056781212495788018922521372546393345786098969366315345117402349284348250961275250517997575113375412235045058631074590944115795907293414993297208521664336703803087955626254187578659248940840427003490271566214857487512436756296194632721193076891086204027215590739965270919833384474204719825219554427796689440952244971235321357237933221176307814965892723233079363700553014298127444840916133408591183270829956242304768754718610173768365296008289114878239695061917916128730293712683926965214224053766739407868374649449054464065288342034027149238055795342876062976641818860816522554319794414723461905083093195458532421185530526742559514464173822388116707247568123281512524551351816943042989973728560263849914597687936561627922010765027919438011891731625367302403124316979828826571643216587792755487589767476460032730466061122548228920655608321417747662510220880894540296660641749780233820750727370575157742240404680807273914461432812056451264163701837317239326430171737193073010647328042685699850083376557949324963787860105570892899470223654755300536166512155940234023338536746112128488549927581673775189570369849022158673947404861763878391864540183023852148039455761290777880103493586432935608569338151673469941175366434478040950161194028910503255113972492613811557293826246354671495781512820186962081224118866231659945751622626512660288957293442839263372239890823046534492223875643587240350319148547427453676388370746994922173029231612436932006470158612198212634164871924937303322425887734298589552854025500325537319438765819082735313818713856844348713927799732682519639344944749690159902910183934508898715379267245652965358401589613759177848330427279946705139889665601548777054043632091286811794898768229488215418749080298043745039840717693005426182856259754625584523401236514598050221667581108613789734429862127875966649376464418523388366134470198682510031682094061029136146846683776714422151060682528973635894449592005082332335878663159385940310814575903227336290356480862073563364172240478576004040794232226137355622926256104516029918284644832325688120631960417427064170781225898518194296736433066909265384521398496845905299801339069246926154758142088788143557093418371617389215844349183606434333352562249531285553744523698614606649352387260435296690060219564835414862072035014591904358037721214403249134470562151575945413253922408347311382296510518700399429775153739392750977815050097395128514044812681539676102408440614856252656691907199567933551945289874275462454611476883816603264061601751936782797822114804156277990872033084702423870187107591508933917837985849128202522627790584656462681975227100213444485545255753772287765909280562265497378914516414153769524442211570795085981595482813875363116955770311061770231537343754106454400455679675056659919765610633588382561135290021274981746962531047836737118624777835726738667967234043653785980568025697966784089320792809411334122377182267489514885704328949344179747910862844188098607848437751855815866131332315716949218817355211461331605933514234129327066629793373048812333479578851954079024810929044758593748299016283905330807133511747386172408271674899535936468273613034481594740966910907940798085147221165302678387864636472637952888431484365880379683762011020057328033450350958793587703108485955199513652900536943957645599939699388667846689921300664437035111934796309689436754689009905366438013594626113257266692820450312415160615113981095262079131759686983107810633023551493792214010714604665321747093881616017899431934660039950534346350242572772797702724287347515907098021111644069634200343601365330374504211194970362363356819752713358060090843770267268742420543376701071849301131634787251045953285459089262093732523331928869363198500549788818772244830370196347919353997781040644404405122623719273139304168500750803924773339356827509968143651890182344609767403407914327315655522664356613141205880711059463217053797491017858837500293142767524304022430214964276058314710851166780531316269317697702695245071716620516826795819212959007170890722816766020352081646064938886596060640901843190962035597244732715327077989026086539355113521388297760194016104629749437426211430256576407636553892033656871945100016523035359265251753898529805591323565814993636423024740134527176096993549723825973819250197902101096156093189897874870419949792734594827359588095936058218317020350142100684513443415420295540377776962469687172262038252418811575794387901860113441573984331584366181326107065752905113635896260674226692686684806885464424866520282295076919050579086696484316861366807850943632015280968360816930128408772876654224503006852428798157999714019515239424098533950409789595416284906133516588368898548211480515738020829357212492068861802104714036043237910614835381972370463840275441626265620540573281866592378442581418119362730201714931463386711600248094933240349039436204386353004569200680233826397788838845317627281786001472818043712455966085409653743261238385496115553513913271383524134184614042123392281402241007113333247618663887264046411364186859345732466767129649733095536433982179471621631834561192656727856037315472174636793403522208656199957074830970509027278415471139688951144479452950498966960282794913775790006253454114085390222779138663370762087717411220855510503003259888731324479152918502757054430078403551937598932935017935768880945553266138274856213644751870071327453460938561491546925296488147811310719131422794007201137062886853837226593201935442421524236942744406510754247852759625654130126058593368760839256594300588303644095103831158857033370293065877789717827674136650340999381030670154055901933151960908822142317276154011137379334176873120510751779578771068463019984519740714400671944828315144816010417017000988455368654546821237346536039641273237442735611020018337297762699667373995629620639555455799420305235851197587240619021582522621357211169285722566041729131612500058821352063033578433492645098857772092388025929240479703776198969378758448033368632109929593237952455754184406357246569524270683574850496935638551333314909166561544265200905830547791320083056907239102948532276817229388789996881305020988703890522927161311425432857638022702103434818624091911801747576401284810024258495435838887108151657495826536515074329319480169485395932497963354120496224534045763918635732858201269091290036352600910837706340754677135651742646545116081162666579402266572635128419708490312345595380350985928200109167670663163025324070538235493415253080104748593902431834753206300365401686540765285047481239322687843462386327283631318741998428055454993302875050020705619809636262184938641833605064058331526270366271542928715255925385440084103038612864510780360151798930195957848397550658032268957728277083169620908088992311425366761784628101189492193837781770879182516607990719777267139551022111124382274501735888393794354295844413136052305616312492976408824013604734987397166093342759345847973733383795949675805839758237296657051526268291169380371011361350527647891280959621007059138022387461032725598206294921538412409076436418470134737230180287336754822500289775054307372875361086871770949179297282761232224867756925965741361546536386636767278980106865154341412779343225394303588284020089133049723632711238920683167155054037778118008393909346533694541931903450734886641940042135280436035364047565563137683234174690644372759364828283015355524990291351193019639558342575915765749587504847848309414903838714747872586233067994047615450795139596756761186966912049517031736158247222877205252957013350206562040113564487103618579396222651996959923209067727174560921160326309710672940738057192954263642202627199891426824945542620980886333646155161459703877286029151658073900952015028712325148758089939708301251869402379125628883050223285340459665799089152374306763109540429215860745921340682909155212812425782897097576141020134427787559452467893169475393476571086273286345805204091526965408583114221033041498251473416701913250786912889301018183441999882391984750470693854636678792237007150768295080258970150722561515562805696412643936411410360460749119890501811974245627850449073230794071753422100705852258377918132027504514299603538486629927714010377509652413171853516293858853796933627244202112843835896682119888888507341302124497420765303985328953069940127251799497617410103811357033985031600341381709273005936799762039828349874693341906590152259151857964855764938885127048031212939542876440278380700856953501470911737215041364811594286813490707665504389975787896909087115011033627487224538991519946467926136808365552440418496363266628306353453777059468855377177795808870750748376978956503431810435893641566294538273371803934927143688603947506203698371674851671374199712101242318735383477789746646627604602175199705851562890312029909650000266301931723782317083856644508851165360296716398639413963444075580587912350666057819385758287019157748999544894568378806652185792415783859189851521119394217441732815032340176205594650312869665259670476092992302521835149615361085571183637035677777083709578327996631341126559167781750918582767539068767229449545472277362508567097842981427831822529421610910640678243224450039871349269009283342934018460557258724884123403893410864475869074341436475842351716727751800975875113125259241653186819975510761287907440093637523901911200314680536265530062644701209674951483371915593383843342575551167082765521930286050238253939276773485437959333962812266504116855237676598279572514597562004661135185283168628935749489226715894727107690223955436701822472558166007246871368970533023399389974462617394929267243126369252159022166912313633812222053323939684668521005705708205569617016327882885808321570210022428899504237782765069269864842331992118385080686419310517828076056429093584134349382579885093942739028711148206846761620290879864295366055217347829932598402400580154542165580960774857795208915226857068178581567466873461976384225777911301321385403014097115838318190428769313291664951984219486788450035348034732011400935834403787261223931642675650808741368099172533221043642018662628284838950160358407712295997038723546353583385175868093100914495468290702358408959560731401531862413801263993517894777059194205590248063796770890459748185989630899240250786591811943260398017480243057488163836877010109789518030491089922168147457302026181248460919015781682339800957049358331396822104314850422301004983682733393944850612795572057153998912369931032199716170270304233775150617777092546271334123097823935022892677635499435393792537123922214838578277595139622638903551303029321979246347824296387010265053798656686289141032321724950003558212587803051605717046199573884129710636920849364446834569473499383239463162070653472608024045033507256691642665783463340168661394186754942597086610808898136693796190325714886713878003411626800707811453225774666585337715262778630415604202313791144102818978344630850886710932505763904352756360794254290647046610361521426721704985419961258756531219351358767760901947907605360078598739188388355936973225537746706744537216624873070091586670651966895525549230527118375288413780333314261188262404894568597775323165771879938072476733751704897036850790202699667336632008053539497320990360155708476739214204795562307545545858055316469619338296781812546151309735492442590572416144542897101470416782719041415544498656179678779524394400388371014652478331187419996053495035491797676201411941908520172301837074194065003510224457469804983514547315617561255028222702552441315541958169659096604618983660288828178053712028698546308939576029202884396885332322233412671711750379701341491405698525372750554755944467822678976846908416025217835384279563234754783685444192512393244732305560407078049475116878145046499843761824903874695071336063132105542558746531893163970380055545944715339749979381494760104986933250555157500356847539392096374768642816622573854442978814558914664801101738808848293988309338091059183855854524007715839858159931474358853046617202231361448778672930256240086922575328946677693680756530181789963115264878573043083436850007779331862011223671720652517401655705979984353020089035835969067782299745649241456448240946900636866804028971837602329720279823083032281336634321824909812140522765965200404826485388083521266114825436434756875224025212451625183136523626237283015428669840670018484394039579149505924880328442714966675815166002431041417908474234915466905801175281964352825848206223161126769771135747145749782523586183239497308022367163421978600840971901733404397521013696039380708184861386542635209149204075873639977935057460778030782998164849101945674304017594935267477481320850663717777453677509327033016334604687314985975764167142212858766960498447396337121178807788687037836424406321456028063853876946572942415216529817190667926233925274855727509730180023349076597653258922443572259880522701205930004589125425225092264173089943425993733088809536984467587382498039343713397612340355393646827213650802481757055461465203937764306920983819363960990265758690084391378884325542797925857451421136899393486675371294403616772663658359279484092377015234843728865297357919727739061149613650856286408693287211573456518439985791695160498085324201062553570900282555198632554571039734981441516102857618142156517056087747159461517098966067300349348856728512190978244671374055485214064402484765703786491459684476441432634392121480005216071108830998299523681182504071016713690784193232898475710795929205448158188535559957587839507248894872458899928653677065943351263486238007580215677919195899791513915105522405215802815499364781239227564843563971272315795338225874304202435000923790641545396611312184218978809501331385188032214367755124754929359581825591532325984987817691383061432971708549519893659084943305327063814622430340398646755287934229416975625006938807879259600000631954260169504659477090883378816222356451231093833269369565996549931336836470027212520787634018472487725553349638380459885815905795567641172823362120353100602174251900271739351558691025417863073473079362479211214913652134864972761327818410140817699889965931701253491440201509360480434980611154625456252718221261747156261236016447848992507586416146332447315751500648922604318912481414314580403649254105653133503808177638473925805533770629969297207954077915853678039581597741066936833746574977988280131067218992878545125946409284328771834708583196212207341508991324544791074394464081651634127931226310913341065762287657334149584116813970868621951904893490680330765489259998519444942523438314755246739857975611459244771352279131992342089644063676598793467346138820136947029908778632113813576354730424787482342497985902909094746938840319873889663591402398376182726853636692860624514086050480093901294123515342103626215800896974555358646323246632202367500248445047765538691616277059386628732475178328001939080321162586760184151851403819982186250753866153899237492225434401798015194987912699806222286644240928178534441010170662573644419432313829666985229788045896728656227504590077377462525932129739872322873831156611317511704841149353376737000408185037041119457028200085324255624349190588017699863316814642342405419518300918209354038207361440608427553018980686128350215893049968731411505009363921541291492428544353568978660047667695647637475011944833030974107685824599644447041289915403489892548291870749886384468245697914945288633966392937272595829411455155836526791166549708581421814731630372694874875738251467949747979767843774809190276113495697876053110648270326611823715868209921464573739280080574028092349919790772277880370249699585029539960954748430566989780719749130795790298967126873116636467810698001862934029152403753110661075550687142824232599374063214434347771900041089511601561487312559403270868664327658573964477815874501636951144205491955895311531469322253588106592517570091483369622789645113727463390487883881517845159010977072505826883550575256507891880965855079207054684458959308173928762775254442127615655382712958927294140432575493114256019984754492170883504166786475792650561449476799642345048220041783409183036544749005088389011337728539062010726029415370396884221709728769551101182927044376690873889693978818710850282573482651707920369804551918018033530272828295452523296882568376713815715423758453459129748032970979260318763696992648456956513064231573722903204093465492403581646041496685418460883216107249264483256619779640932786245185597033448321662972983755593301489889334383697331869729155840721961897293759396233171413673632033096008258435091491439433568058621967521634895700384611227960955238589590574930481082765346409331105592154173318148853824736433250393185660167064498428948376119512419314203648255916583230472128348480650225440432368104802187000057067896611268306813394683988105744146621782283038724110792270411404226248047227039078460305724295271963874507140491306164015661666044595652425681269927994799919340054513963737063197097188742057396107765137559519433058243628883649623364617963178220458493060087355383654789037766074842677805937399841312577926972895710099495674544855224488373498884869160944708763705227525704568173592345943567450642404894496973648383875073294599409540503111006589336876824249702883299110951913471148750207104274652724591366603717227413454408544058622593966434576867546801324465368993345264858001696264724992895263595296702977141680966962664872691845319476674308398633603331253818079300608801545820200628725003546430536096939036450066674213760782384436965794159887797870218592700737741246476421835472042038338122810551128155554853123994594742228127673158587016666156863603090944140430744542452971078292529129275055793956058473904928794992156702573642260467874904852841730890188982390520598139397173453868346732558670845332252959127603144257458260137473981679922302590118887548388429148856686245366940344384257993420451077312824824689377653542271496651095852484294434925815347927292767707821884887756223212033075053161293848267901907738631221123521342105619508496801790572728827031661296176004139195570535489274721598818601429234246351722588079723921438680557273180259056157602319589805741311257917156181393142917149054800023730702994454214489710817496074732687682968610300584060978683053192212218752210409059672530270515316020184286550064087725771247759963349721593968337332700101785738921855642432913864560658570087792353365391098067882320760714948834184298665601142131382491704082269161079478179448487778562872356523421382444680584192929891362582030979038253744924901824987753938273244427712517305320217766165923198846341609388877165991977121218704410139130271197306145881770975222109936444300487342287964157592158508739659973626096185765654449688224867908564875358502449953266154671709567397382551887840041446424401770948586514585782532503397116929521389264713992660736731607170423600593501477671192393705345545773545766519436025172737840507170210875981722384137484696850337000248974845602568521742844352380965625083129228742562096820602951315150142912791181815509897338700311808126256210366534132173006669870281279915712708816669599318320086281469888939522712071366805127331696319667250910266679297007166235511173007135074319835304040703589863370494375594200754587733687425659290296587004163067076135006316209950561468616746135325191004350825507079501785106401698880900650329334690759851978804562130100186265073602019019151740554940689808130577969630869874487165560621250148015406159215777825176287255753364078620080049705014082056453063688403182653106819217831943950084981288621572564791271736941465598446412273486440964101605123780446859055911822215458553456525279945084384362195136164355578864684162205516964631817858050273523054771442737665191561568365055393612281641361031233816517313113914897916825723279199062965398562990927879244676995274222061026089300243223708540379186243353932361336918121569409916704995914117823745570532197890540362297241505725527838182424421029374366348357875786359708993387742109943713551600144475762285149577957498281857472217316467628969764334282689292200352032309664007968982756775916653757229633034746168694890429007211314526910641924763899169525213523514933262736917894479909639975645472527104934568701148618137655881312049659347818301346749488830105315878402977192242599060303201705707644683168229440270261097144141115812973788819513998390632294535992996441787796925428962443151773151905986822910118878885049478471270450019872284046148761124016201891528682118840655059414264854496070842340809800492950866848230257208354306482869223423295551510858551884130651181495348979718775497249684701512325760343901355972342100821885962051456260369913437235043033077853147513661969114648589455516068068229853424085127695851423864796758619587776917999416476545663043783373848649135993345472733632825853532869921288513919664619717235063601973396468654945381042047859148165150175547772795760933244087378770390929671697259443958044317292686663770495234792845942176421537089319103047100177548430635256955741601839187920685774051215727185734365757624925196861608470105996938834960062411117022186712944422238969170230063371326106893712113024362466656223860249706917966771118392297557321142602411656859389058275321079546697117188559013164116755869412534049876438924160750280328087196493415685657621532133176206178864566217092872249443683552332073549110644807983870655390133370136642790712656248278834886657201216288572289915726628209916635337863992140463957960134970337553553087603849430778944326103010166057419407264053713144929889636824486405962599145056175209972929324044630502801245724336117556464716029396079464351048168713870607815380961747644640333410939461823565315435459649043675906095569542811803312801090537647204041017689721630673382683062241338344295404958997669454367801025882013874706352693648078972215948456425324427262706021542980182750667536847675583521955968693627583637369056833524109319105448627952933855068513866821941676098246986209602114394100362631064183974285661692622578185318590027280848448116552391029421946627224207382873591253694680179537414957279268236713459267996369254786433087484211516979661007551652253957137148202099561443883062656619020804899907211753779984309205309242934501334878650728457084034213837879608339221754338390027001514087746396003090993703218061508282279763990321409509789569020109943341715002143612970538968781580246119390218240818768606795192146482509970058318663306515597297897015786016851389125220605615502012689542833131109535873844659237328934988688201452267570815997085767163978971380979931205513134887359732270953540879938773872382687978121392503763849121947202041845638184012197931575952639206740249528685526935970400816009763245377894969261393676894209924934163757223999233673285921336752223066208237262458846913683352595846433720978320605945434287386405494831323930754503038482971903650246991857555729664319358059930823969923018046009405594295349568905742797895033098248259222497414473875685526916894701570117112201298853129455870352745305225383368689970833921190556500300410769749589959747229430032777517965174970475603949156345389953092156061667176469261898718225619504028291405217681386806657563260919069306825414934066532824136559553432240358645288233336137980553117353818049830414009683524856319558748610928807617185468902494835366006193619003649156058997527299984449358175051505749290351248661182197133569512979182944061016413860651938753003169215100588172908194583434582311780215444445235269491747948495864874017220191465335142490393341340042138843833979315925846678528796197911675618235638996591330472991209413451272552802897549153603499887122790460893197433897544201382308373031194992536899233693215644861709735618425448771790925994365466501901518074741512308013912372165262630366211862835301081221236160782649712310293739447878395527079622241481460378918925343746097345472595234103894314103929858241970381462280942834387802330388342463156125556543993334975403665002023436754809540713055652112395679760312396471720851999323533943383988285868731845166487106563848393393794838145344180143157185147355256396999598965112144181678339093852434983686638696263742231456532154968223640659703952046638965763923121174946840032685968586568180564529731583066681286351344527676163432222507545556269670680399822106210087393562104224252235421406842378174684885685169385825122142071267802283708516066109500981470397359627856920350368231613073303710337364917048567761139727140424364111231677108346170471947314215634948482935069166649311150149723380798073425000826989040491126720371541673445629441813565422815241465819712344891006121796873689018450616732072153737231121128429305299997262442806500141366294078675924755599050397741455622632597248722890041720612542843951012428354344213390816523334638110327298194999716407120530751279501670369538845397095376647893624314369905690261892866505668617754186672175297311540468954522360033271304932246139212541317340784805239593696922804774911435118236729095678918369675605958637976007740896735993034469628645165014609085384570203224046020651986965008546304601089717120744291464859024587616402921787702005677619335354263490237080060987853018734403359865337070345459783396359259927809678515615093863603899277469444460300713232296827962251427777147608478265046810461036269607774704480893719670954908755316621233351947064844934139849919268582968133797580854624479657290437064415718386114935019550561388492749651851641080278895910911086133943623062134921903715512005116969612642296898407498831078156559144155595178817253797378156665864247744935483372416897906388359876655969559516085902520473440320924920787158370781845008522331052024852121334205318901558709186468539702888260118919248051853865392052816441547062258891906861577777060098431930735970614798110222533581230298669090302455932260008592462598436737796887818026573463064462802432191455554478105915780404857330373728316269920530360914907352261659522762554890044002694447257812124511794755884775336171567394405301889693610779148789507184989954223981221443577738393361290098718516296454387491713502570718818469488329549117963509921285274829387043099582906731072539033085772569311448226444220328515863594654033648751291570279189928622548704773771904280617107038279943300327436386540157738499389125717557464734395394455403272824890855242559490102046741179698429606158052352205438552488405689624615839234235010747037278594037808798941839638079019183042894340139426137913648367776660107402738409497312288225155735274606920565977188124252773191876121467979963434875716981070362191433197597119603068387605444606950485007645200386258220650260871855385004668426578744673972200754526343270765391106389579164752111452392270882816069284434629772266545071243507266764734482999702614252411816166551438433738540698275257071803291237796320842442161070952739929350036348162897648412982170434592002499873575003533788523948556763229920303756868476081373684979628453623175057853787912842720824035172255158101554422524120410929900441870017631314619725647977793843617831640999387714884054270348512200088180929704186170761284321372678546972337455157198458978293496713292037380708577650241978972998370740308235856364067233014352379192117601317012313480927844515850531887898135672460049006986241971982713239984407804540548205879467246590712879897540207399551520134195955657142106676556710086032210968460595781849327317377172762202410701996344926078339540711385867927554800845189201415268153606009289860151546552176901859815701316074185668024930500868645620817882676168079627115753724910695138931984173401202113940322733310534921943344866827580803753009265218859305940091170817290847917265523857399254030326507753674575136961825490004500530974059507801880224280166202637551127078359349291213358113864387797937139147940574398183037988771462554571176983749912132580955865353823284898387799988095436802340448532800019937108861009870636251559828475408281631017508996407254307327938661252710627906881384208232017521512695184845281936593214732522127935057178358829046789195758798515615623986255426128652668240641672661278371975674845799882463031359296129238637814480429786804351445283487280689562427863621608614063543229153693644234715251902023829514161443990869905575992036084482718519333058790417584348811670464700740614955616343036334478795123016132700972781445877697879834210711784788868014353530538459501046992375689062467595484246976629195726597730685584605393941429858738946190998639905716502141968016465081395744845937227751665833710261894715931439404626530220972817340124586792506809626733388366024657080922794501568163852967418366537652190616350167734971268011590683891720090342287511461795650083312599702067600034361590350381096150383736044792663132262593482915894001612249267203102199219786846330971615861641476230620803604894224022474935540906558841996184512081860819270486708550214668761797790996841979473935516920752135905354583589882040886116521025274579028719493359433160112741943414442764739002729801811967839254849642062744623452692315717588374240007263452784033757966872081358433167021862460463126498641439457318694799292667292799774579880282891664517349149075507665046865752764233723560281955169197776188787860054910116813785961506348780997393961375661316947690624689799500760714447375510737339809843969707568045430324016743114015705585087576576027094662558873025059138856417727903551470139333544257653908550740896603297821357377559133171996346593833304821904249009438907098044613703367734411049465020040088468880951718190055542308108790197323934670617752603532798357730945079864016583376047851893955173063448556864801892118457605580569438282891694687206572624416213917577408535641985987247252847119207775738179602925313802093707921323434150256154143674959138990308368657123463759807408888522542557910916549676276325439083941102937305615621067903997651669065606628277553879799003751319020667722777139986549935325071105758824995383388079159887734376816932548921927321460562703931999830311680581373015946275728809930647624804135716577149748373576901850993238806857018853808423297482385562876194020238936088119507472499544965478309602599101804815458269972166487071736798104861036262242599369991132765979688970321065839472440813923271747894814443750186139775439589748204258895004567351172192309468566345292497786196524815583100151469649858811487881848437358580176205535903503661250739894912541343550804412837344011038582531285093210008629301394880500733931375528028123605677794362645428872969351886562905923432923453261802405721751282768795127318031105723105948254291512596656812332249053763442689663230231945256322742281386861266342620640324262312891527945588425892607709299483691130306240466561609060033888714373832659041663706239795694178553503931485217209663614982162976142033907986452174316454643181068237025302123126747463198729276033593260327428251105291785733660566961693944655566852287811487492503681037201655273533793831137593921335021290838863111397283363831611478358017091937687096520617544974940452307197499036893680326558894127890556092714263994058982042661299646035261392249620773430182192700135879450365046312060589782833564908356908909970101894031115589851575647716661912552609085983984659596393087459551886613647627292663293763310131882579036684392275268455722582642905448438529089596478314857714627210135365006820071606763860969981046017519354146395994050304286138387477172978383005531944672962830307944282521967787981789175443840665796237055495002763883337931385761304915949413846919321453981495803242441868485228294050610806196981270564999931805040197036215522574776064173841910429098492537068328288101107348072012602170489184752611380640420349203061706078736346078162747547708384620123217749484114624219322875410285798186691839860994098968743603670150294351058071052810460307614172755097251076392689745658031325171949174083485992310456700596097998584675806625674971321819241628869677681139422910921405643010176391010829196581996552230188578746688287592294969161269154270051021894713963917473086866871471380307449823115506941578308204509637874747509589031488131304341046155323549535124507090858983284400921487955945901097951726880768888835880089948690972776047270040873834745637222077295524832400241967756123627544955283793796800883221724702144007131441377665168450654214703353732771816204220753508292942965637506445193900406839285736350508911601068611079511108536763190918683041124192855808884164677404130245685323914555030774002451479538056640545650791963553716846438998083561011303526239487469182100091511043933091826765502872576352982732914921744983410063090450022813865353420415697556569855001519152926196195543915908312287268983974221383766785648132813826170083839193220928058941778763150787700162313404257669093654157922031286078634594832136759428631325818831860929584039054291874568022939299225893010234119940011353642572866115065204076301971994039286438535227190704480468957099539991896310126605132294113344270825517394331282321677144439060406492582095280269842983350414139704968464627730401780267248506992597052579618731554560572655218520779046340151566246257747868847559626561598548760881706970757748466664343073249348800130198462310152022971595601425057637396909409036451439720259301748193898476785834737557038748386051802136494756171315185377787196472818335165654300608141308420516282966353889270321287745845615446944727752290894374034224072921511732716687276882135604386371346232814505377914310495699143652656317775596949009391774230853872147318103338407584251759665061708385091196481196823383482576580927298005536318914995075665565253071448562995376982435329498678755029538803824952039630879191816791660554061025033589464312589602135893946547762701926162168539665230861222808979930048722430259159246982728745695708917348248420640243838944776968398756800518403712604971524397314101909737191499379025518667208713118230769547362065523435845899917790427908400311477615148655438620843450729039671917454202606632793605339930334986269778195012260537786263506556965327450280806245218230025317601085549270848559807118036738619058418289309192148811889006331050694992715911235342815870738689202879392840451911535908264618538848836970360973523384915405454849436040071033011214334828729935012484651455423597445143798828740877739752048394359944453178991482075308269053377247756602337321305801116510893420113355181685837553281580316301127646320554277444698499202755880877998308902460086453487067179451860861939167027762846557662601669707004564484886048682112098407284559586662097404200791286612615731143584610105375077073691812262213743776920677934894561092560996956049925278123342416604631605188149995553905531670628365431547402083036539329372120662721299358898930215076823092464227735481071030343497725793119849740391652843711138110838268596683484758337325141402947126898462448203877760867686861194203704481421853357114348264150868069544427332395061914376596796748020579404794138197496193297266611749652833397054294190343881350775926080791936147763924942269058154167103990407893565818651527001672810476610903426745367476063877462418789831288910724044533134699857841777290575756518514901644735587176256338750107218544495191583344337860098771180237024379803638946653270701542518686798138746428040620413067572398020370568063976180165741432283804706155789219531632525940648791620209684815406580672512908664973251728818732286131852168066743290758493166042548904685223896645960268783016180893089081718703036948251931238487579358460438606475993189148754039485307255479020809425772188410099450391265124416224943242998929599376244627457203117708943051212517428093265315881513042251996164021342659913240042324003714344106178459843418508917113440715829462465619094009015515540746474325791253722691969791187708565119451539654573167608336746551388926549333596842508088070196176410163698101282258379499220952580092217718515013317357104502433600726266295854836698059335975891782795762871632547508947106966980427074796729612209661649071668533526951579172739017936710440554793587288948020885307303714005291436874399072390277411881778126659952209782240151386557723288696668572813195888805375258311357888124592726730326341760604967679634938975829238836078707259953642646925655443607334844808785742280617918319139434960013233361625917194825775531873284374628214407542951607257187179792389522673359425953131524044953422960405512000808732787336679415239532209715699167137745213646837314150131400692991972012205565006819800708336260247471200742762728223096736418389528121131056574193264281163266545864142692309302430283740339655948035331146334242045704514125920129116235002660119258585207362161297084943983712098484293674290049994563145427117669930806931076627056855731877273388897351750117148405534373005014685070960309853823213475524514532552516604350689478169565294643672217606445394859007999938797789275957362172554277214339137365712608616469176015436322423669304394320577405823895279640148085420518516928768778582252573470420437646587448395072306651770230901152168127732472359140335942843869231256363013899289727288507124032621923666997685853525469934499139150097797169292860343440522290612406127204820721783002489111441698984300626711731980540639287194665282195076682285534650141154896331784461165360396787623122398620834364672099965089399515919299297307401767512006661811048043530638510133521833676472522482517445269804920424064718390733034404697375112777208771109182376430916330372524151433266881617809780605143686008287239131307473086983192019380662167216580940537954066587297695634843744106435906573726355087286689477132638556890832612327879803489476929562926548373137898555527609878753540944457795352233566689842158293578360180325810731022029778586730506034274729974108381416656922468983001203526599011088954682098724496272694802709197529058883326231679502348732108202499656282972207140987832699479576307462993585443451591159879726831576073359919033229505405397325710961013378166035218241763144043361790331281773271090544872307661320488756351092699685620994319056991697774235858125999605740398908081419258430486619035114247725246201235824602783648733631905777178177937608085440867236724981603945985878954953335580007600075368786581263164586674958826956103879671123273565392850764979477425424038441207971263995048811903213050681699146784395364678688565537828836741806087677002146782977960763513037356076116747801443273129783985856940492108788875783169179156633302486671216147217765147953698885796435524771415667471096727640916799141252141410185508758062758840366366889789209315711544550640712269287396178717540700993559003940158190262618215323627595645242654874865900693243392003472817555405006686684012213821910019457866592224332087935005920877638713856010982508013765994743679139366950949708263727001636172216832794089945463691273348806558826970188443379061304672661128835396331680263571749432052389427822620712504463593698945517919883916177065682772212540457313439640675124934694809140747922947384543724857521273231817421891904292646037463149182675116509322812688602831327045694658206656658620843383105450885129243339250926182211591750020713424720005635849834227279599558882817215263117448448991594025272059979406353154890705857910816244895343709771999274185371209485415712596713752839441353710214109607268048764861511988055282577988344808541603087427375981208356989609121756988335228678080053252653764875707324769159139957066907894634427034767705069667430129615110294397745710653285951821083716250951874401437031972951750007902744480237576067889182060434257115132890103798720310557585790266960854295144053015653362422299236186614117410962715374145479222835597755525542738974462877689762459498957111592042008422419143624048357706293361131937463200327754586398232704618633375882986889628070424574640473933528368877907609108960590055022545612723927025059826578936931436163265957141375632031860362850095946944593696187723170881559626868306261918370736520085152426765437399845411161155749169601644634272231077464473790173346008198221267830904248249856008289336532886389214953874035196456604411966044443954573378299965509325296817727150756914754428367451100783670517241992480199220008083237692013224738169319945917140547262800076679281054570317353929125057188384196862126233781597619918909177451195915102162034998981917912039025980168219493011765244892605025420223674047866196775636428297918973810511726378453420597746928688746315304838884626799695790998114750335203509832081542611171510759162423467004058345603023535440470412573726056189047536188903299131228756694098562921583577477014584448370779565151053289417520002428181508125727135911262574852862934227792570999271185634402458526859656847682786402420430266919228833375770350728865840427391526347685454110551661772174338095501677545785242956792163510892169865670262314397856671271883895325948371825763783052060146291422689766883693876795442789331594171281270794857945680559121400628999114358766352493853467088004200601924497754303916665414841584175843809621153739129569393122276795104528632646820288851725763585305814523806242708819051502143271475160119457545836695771674587218305914911128802690892189676398805608312884346704767990469871710877994804806897253054346493968234201703501487504453423305137498725354542552143548829528543216083889606623944897778088340512924183979417601770188583489072138555453061172580797011246755319682759354236099917743007076687785448094575550030693329449396880889629167080991508584410437363223934874039322154225806504169782322307463323700289627345483844459159521726078431310693296025920039647948488566132244016162428634504766457289460765073654836554765755879772840553440619129470856628673509190834198882597934628890788879704071948656312684244354908812097011184247558051289642143316264054122286236304241327598033155332708706554294612845399934661923423953594105613867980735410306025677011747638967252175981732836230458857762499496868358307331824062301499003187852426857133757469874141812345071125634684604458194616278268617570448482310845211671733519582981791912610437467748179564435101707601751125523240366520441036842782985616230313016082568560674570441368450667563940031465906071407357409946105507224384053181162703097260813535980316736770463062072140010887084493453608814859445405288569258202593665598410467048801432759628460480585416973370067755688052676948162248245141841993269167336392176994098176109284506236354731262619789385657023572097429755071656931918488518087761461123967397132857503493573521951692498737922973519550647604119368713260100250363234292614703802829459097867519688783584799641552547438115396579594716054123228997128156622971503453736100987937548210752617587590421845878830313203283622773929360055062463195982874424230789363336529168044450295581033764659103489302475343863783455400160309980035757831311895465020064158609428201955255716978952445253355841750549208067814552181628551568735285191091830721866537348925741015582165637253336584171083483504371636345016113726261407987402745681605882458936486019926856869594904456701339134930239634923123918933257324367912674776270259629627563921226386673718833798527608156698852600550506298569468774053537954746924391652929940521642556303524904370588624188746544516914770028110552548379271254474633526414151401277961525008125950862815958694410159155531863552796154135791212488358920318293753008417585447093123709893724742394291757272065255261377964747576655616225517562752125380291066419259036991894683128515853903588373603705688810480797291290911537595514162526643845215489847332111012961918624294073275882927398168934061625337994249199132315533305198752148520192737959224416820722352188578403570993409379365694703492244908158130846442670520816036291357677801793214745994370572925147147834605335925774214161576811485695675270861352536634150356539085617505494685023653998180626192336466157892180186580045013955281007021794400867193348791340332917653410459706780262394934252933630392720226141895055617174939895226722398927584996238836221323192315098015261087055313641679472825477390011632936466604708217612075008152736017668039535046903487162682746609587005993989650524704617730640400439182409256080448072040462545662240316262474305456175441523944674768585227107134977228190494043983964540146949719861976013106217725546037226698098033787131369470560958296693631601365975270748301880133220225942580719270054588515026547687891392014056995249206050810957708937606633624414500349349682781756389466464246571339368340996475949964077830725287453894829538872973791239057533528861357402453303359951298537090901801079327787042747650641184642975332714889074011303877361102058538737323553831733349374825103898845150599181263105488178614853515877915691839271828224549583397309730711428435857738541484264645674620386039381469141878568766222467332008921397739981053518722674583962198833237136068224465393830010181672739116258681403550552291315304032616567021159082334793006154254640722172959540314326815099360768629090060745703898762509818014841128483139897238975586625995796258490351776726673138180347466488830688579591276095077831359126223514791921230731626714764448047755444588208332528937840970622820767001891746429405090746753060381167173969476007838629445237076135761053514444237490028544395548764394317948405542163592038397618000537177398513183175491176720193292909680904335707785914725355542922227687308948538771728916129801918335297047904355395499232731815793162613582827920360831258067436034156311342749070858989028064618639830579549450216254234266897020047952201694993456857043529531572872465356838045381745347889894794219197984707306091995283973719246790492000452662652660870825285592906966171931765784985179707355479407937108224340420296287883449609031929903344680045220548254171047156122583885632417620472275557251160849763068347994109303347808885973250757084480931642353589515413676018437935045143568854806294482871404512801523204500352729552950271792269719551380889826374993757123922701602180850712077805987394829551082388240746674293749195373747592658768892740381414958237137162076139980596969349626209467398227225862349928346678177509250478746403000365564331541388060631538737505933745373594632738290004977607080799350124024347067066982540965419599476063597348171915727941982775844619451427324255103477635934154297268416414210090670949156549888178499921060501308655087380648531177836820741892024055579090321755934803421440762152948101354146169302560186705317799661137338570886881488769103574623786799914445127449231878782186114142995854713363324032682227463994499198262684684879536874454781497892564410483460197949887841332600456954992973343492662436226529070585499938583664169210586995910743619086487424867183050796560059819961280840671912013410784069706369499128867742126119051620499020298474895708591237147323539644655803899213761422580445591021644876958043702836481642787382564264246724888240898163268395569016489061985557226022910586306894430323691453812856204358596477655526393532836635647479988402759638909438280436905165707676993660581343895177340064775894238610522125782260183847879055653738994336494103540514589022082255424319672415058187282928419165091027151406508407407654165857637729015111667240022442127462781461761719241707693669734979482546836159787389235839581777885233672909778110640436773932994094992420772051010117042738625770889802512389723866602365394252867340698717489246834932134065087143355664887664978757164651164574787375915473472650434613696761299334299599791363555018081887406468991378092555730421394279426661917218704152838023967635136079343700778278349340540086854606322260446278480868214058787258853669883207798183294474211407870754163635409979643641557409802719269071497995640341682467329055082864439021645825537681716254050948268653205078977056544464490378629669345112039693988673886149171363488694818425761412922173699818721006469866075733330674446244177852849227114877584593282400773708798460797539856009302186356396614770286488842755535070501894695005828174089266718820259625336077564559084442237371997488937247461207761614585552563619209458647863567446583793468571402412688669991548637524798022146203764588374267129355705353314468541681136392832224751623740391971200861505384003634178946832724525212151257761167790849638621906628118257268208322668213784180383227858573412933749911728287660570882125812182179767137765055587598656550093559887935801781016347006658157864610608427761990073365907239544729798381250089193681462102799389289405315405952407161536109916687578952674017832069149401735964199496963112333355186983893669587444116237884792485679965186908096630590015101978212972334523188545314533089060178922532660791668232537450394145253758274922498246951366256125419113720927005842138586669835121572765277395511189334688890043502138373946160340212394782934594707877083422072295770923329219121051370883817639922643824515578259114057546253723616783816799158600585448837699766964907291779604704119896922070597271602629445399473082520129612257719412193382298490892346871410049146674677018411211312411363894875088842355153617940805775202722892564035787625946190437871708393649073311280363314104470770895984985713747496106665329376637781105014474094911296054364823384939779615363185972589941610012962548110812380513221775379542172752859942953342109145077028549505685772064727916963974730589468216777165031475055853462435163259914926028785236802853892514496702621735727864780390857866768476201700087873173465286021164717713040641900003773590982606266848280584625636678314256362680172748850745246572514838640065656229903318097149563584781836794853159305320463394102803894573110855347484712325504894857799160628268940664891035277696184039894968807938961549547578977177467719227102779655795896799594963720946781884616515981634048845700609962317646734994324198638597175962510099067507669491795042055135817483246391208398804115501791390031595185517188679244704967269367711017392466742793176938716622121458626569524812936163536181142740670714094409796090300786915375754035704086170191677882999301146068285659640516946833676989722220193280603252720241292927732163880851177161747173604326071282455074486632233256837653469637351481483428044432558603154774530587767092895708796204980192694848114370963732994793030340841015984003796882782924518857845784982665486896239382495581741743932508738565314180487921254696364238205660167269025206141311240231229279064072947205331685659992938902168354441713235416304943672447801252872236880267445331624381177323641339724117858829566127516263108423991612720290655605278115770087348028693829261960020610487666072468412856573690195699355958365572219408909579653703655789317231968602942676968318554034092494786458698100856519889304855796043989394844610650383720233025261932527927215901717834900920705864554438565972280742264416012351615083943839803312733502798997702846394457084662955981489447524902891536716483033193776048436089739730804188127625771094137827911498343148519293321584848870789008716957135101097346655278887759029752103104009779806120312395979354393343154829513072750642362168603913115700526066798483882785804294567892215356987850698724352003178813282847398846808087127613961679180105806622224554026579262154938008019336491925930644479954523524911003600299138688027216516975774023157339603113595629055885533976773836116059556020879329633440834853465462150919000630485451459403785106334385359514799680729301003920265679631801101190943936203865790575487588414964896116378513622581593578806750694533184087352607873951590274601139037056467615844721324377761419298478186022274707834442354875894352081577634578800232957120178010372135543877733440258232700147982357972464659959396794476407853072339116426315385404923219384401400709301797730031251779806363498794553749172978303708875303673636305796103734829957562385087741916430950824098145996143696538694186901051148838848094973539704477867185939919250170717946112332175928049032581686873254392222656009813527250259891872082224548013448862267897180178083920757966483976708743130246426718631583610869157437678460730519030332733049080898030514792732750611319476793757629376065152823835794178499029487299633613808623490869337889270002135625047036235279154830408265629130104591594194863925610770702359391561014022753038716533670137131814945631904499551092041789191666023955412624111040475498584447251372142581127811461350106081725670146643373953361704212345481646232780920193736390989083142010075586997636440427378932982580827751331566584325260897777418907075029887941463485975396189344523985522395189405558979919041812230211174408224390823876670040793806735892897485096093899169891401668984270407500247337508443998827375569089601136089700114957687755935535602838962431578296801535013260962065981855344093575490837473244134644091910722664327240768287822993417543229966212053170839619895509918731391826889918777483348517578151888862054572909117348551432123879193043950472726744947648490090741138477366428502213581573037926446991610859025095671780432985691078926328038790328110648186108972369178717189646427750261852185495994718042992652164549424056561949673990305548165159692963641668287306456129218182053335068849432525936103655505522988042802352467846240017724108445224602818544934747766757538803583671734577802722185479147107930904642577232013345085258031329405297352122520744348108723481126430540446567579347352741143836273740900583879212147556677885731212407044035784979090280899526436300490878455892895422545836238726817380576480864046882594020546071806017038552995330828448415465387787698884977150369937029449305861160582664889091884142312278827946978158263319615328303257435070582984208734137759848671647721130943167678758383488791861872781052273156078185516357575151405957115104690028856640115290946930407381753655220530483821975283045638236479063535910033622526565439392823045244925195989896176478019669869984459292307436384786163599245836800270744725645308579386951946857461583142063274860996771658924260720953416832314811952468407775865134909559018563589072691267200006435000130581729701806937597384747727806437326881640095177267329970728467824190249575838745677552368862341304614556869046212072092458157383744427038541356523809183912940850793608559770983080569178372242865262067142142704691840945973776776981609723642857431826463450661606288687551378379286046417899482520407230663884266499672581632978505398176023489499874270179523549188280619760785115280936333701815741438932779713248045097090083017362750377698899244836733425528276893504430697101476479209644148703250796758422706830001106245604558706150372654278819191587118323638230174039314996235755591789046538767894508818847788654274524832801010543241913018455788705932926007029078092229345526819085100163881795961027694268046742386068021210654836790300928301061136465992555159688207793424167417281091739684822982724329780743653007914599115156303399844026708830727684910758567997562861659712460291908663050588135662855456851716028933629266624734285925401552184408941710986824827195651379524989317516036045749119450394175317363224432803928055024299541808923727530273281636039986549867254019327354938518814086839904176757056872679998685878338706687216254901538538607984940679417270329349523941539922590894733913773004334007011988514768271501168641673427011759813239368745645405309714959805017477174667063835058350859723394694412921013205012797964582273709780939162352054110963275557054085618676381750547755757271552180745790678222525187037349825340896753731045419660016595051601942154079553233223208668646885928936644203154947573438825683656577992467808575150185400215896106927268128058358900143651830204512394326114921839759443228683458537764071132037250567454916940940998447236041987436372555532055166930368479795670965664875330518086568815525146205954262963326840848014973057045783915166572887289876892753563690971847976588059814215705856444450254604488883244161308825888513519288316696898697841071067646192199088543427131427592526999037744453423406827388555669894887846294989812694029984313560664504104079026008398803677582486017618564593073985130344197368615531753071218119891261034482555340257226046438189605277448994992083475876319822400992953052846540273687450023016450324436545306631505832510336019504672814614704966149392824412928163113225063523877088736543985530811107519979091146824391850801852652078349261718567580996942190096433454991980871879010303979636373018836636465882632059978123545176395188913485758948547404444421833558040772386440771719359759785205210395791788128828044372980269405242027074799479003197500634079668662755101245987628683586349128467814814389709998233746749330348294854998709531866864626994503540863391773013476502502067492752091658940395209119423121209729784496492358291493046823359151476184492780401265939433006830275989813922931691862663593663425138708710167626291964322326089237652743669379521758796549799044304983838084705159952253721151056276135409212103749133282874717523868901187126765073610107537732771380736635183026327301479609571505962915784966287702755154190040766820871821436462210466254663970864296464635909623295776923781074158617999842800568933638478860533963923655391236618001229348938362041556132392571872298785878194531634561579450773651940487233781032408373048972636626088121334944843962883398855621665038394188433853831960584588787616807850853429736585259611160103637879561231877029319681833516713941535646399592006942490669899343314213210211421390450311306293777011366784593295570686722548364742489119789230583006995502486333079521580977175330643359480493909038725548442707128737090339323451416933369490124992067048669775067732995869540275190397513343983276108234534925258769342832993506125696649777217907978307619127371500653946807278226844249410343746149245273019493646012078141350067866727415160379832829555244739809573229846762612303005521991791747286183194235738030470633692127560695451114362127528346284562499479597156128904036224294515066723111674622487873092025968882303306696913229940807400892051294048919683735442671465785530004945377468067445531596318156133511986715839722349795797990214218433816511391332562954367096052891923627111917124741552776671020623146388888376429792485530997610283723294218929360501141566357606050897196908490617691777164623788371676567214670191607386227343895071022606432547862044819368329880937579352453214450579101203640595854730036054687764120574329719012667838763872271764481772101232576296037276687292245405269758612345410752403235555066816916878529044234063449780185309677585800301825225474955490129028333923790943564653830861283273884010635294853512905143093893846796137405783798220932339016973623672877973293029469459733432905081121733889043431108042282353826959769394299358289562002821073459727712753835773187789925245916294091307778147578882102426813248014847561512969689860649849313904697009739893585034029840837881625734182021654075551732648115785165714857403503357786703754062342212513054812788849149755550113717122609570474195882195337870159462098817875037856221944205444946595879107614916611506367441165589285949067603610915751119395670445457684944144149034353210585849906895105405072169057256093972003932874221472570893725649360295766131069057789695781611306425699158220901321035330894754063890920717856774049617259510797692368743216666973241141454815998668769899349166286721543502936360577015517770192036472042887183744483528925057743434728661615195604606304251374358856821797975715995651824248924756484178656985283978329258881650295128689595392236813362695191851592560259590183654522204971177390435096971672905770678329073768524822232671436511654432859607100023904204170027901766261694514280607283721514961624571969023480470194263817376931847118787469560848176607617781056060219119160041354046906782452488608501954910663269504481686296382609662906190225973191957383856426793289507829447442501927737407075621734951561253159936419853668412116530857536558462646285578601470268736220414326629996386094911393837821094529683514924868927064902848266812399641667901618946877160287585741862790651798279219901561502915594523964572410133340961563375738760786879582282360727368338629488148301301391843380209398138738001656047309185517144499898105139408561207843776121364804439436453748093218761477161809846110777818186143478266589759139693375072348862088563143124911468359751000706292918197040839827890773847001416386248515368798139811964215578611336304179017504672964841604448454970574501373759979290085158490557551216906029301727918811036181822420524188389673155694926966369120792302758035711764194879466003080138304917168325998593654283163018968317740526338508914310879761870978400706882726926792885301261544412282011743749799500950037247632812652502753786029624057733335697807237996263662321943433281849632132143091427255384283758808833650357845056044097913621637973039111366349566877549091953401679967230968223149320482051645689819198027755431442272057478417061283322089377730972904247860195902554207620880161132984478826473893887353312703854484096755551741820608012509305313619242137382152866712544739477242985742776239687314260638900908540648580500499950370649887908650170719835883889889216712663002397533097030090700081346220171142657634873766492752774631071016535817840407826409542498055453743613074197902757666304927373695441960073083458231092840739347402367894591259273319252848540704553231183857366768796162032292183167157359068445129820652775097133918151498690623348315766354254443189027696636784376199825807573253601677779297651628333719295704844693992559558916143019849083695497939869054649231634995142535242161053847467533654045760727027196213658019831549106737502172579164628971984061767931583009024912554226158076888522981274784677795374590697452032100572582196298993017843328781811885986474700480799750174377124132258944322877894226686516218769278858713435664810803254790450856516484670723338016011130061098053361773919298475021072309387706916091880743652270732517810186350868755699491833358142526952123677782275360944320488184703337441256036511533178724443587982764413845987678521547994462217553006562728411786863287520893684755360074217211041683579110800029698489101369108824206898706312168011467428377140289084720916688984699149925048693970396007983166175397832475251315349640510637758450895166382853245979609141424280899170047130769758480710003524237971882229532759420417548877169551718568670727217957610600341773160536523914697288428851778387894811239689830507592684896354321538810202317693945082360532900442657764392584815588100369084273182082370666965910349306318248909000493056262533465483702183568070834171174536154278071610768886824748006739333031135573115444009403434600973136000983588908398434864250533150407422243303998679532319326807256132850870650401301102714543553298665502085338569038620884061258280233010842394721929682540474890247406312028177617163848758101705321823646062274075418573759899098206228638087912105995146811957950211491661105482043534816689992826164693811355754345562451370045603972342874205995995878982357351149014180815824910651623359834545191854048563998836727999691174722846605768949871126522144293738914366439701794780609843902303734312239432442413960759137238649773694706150592682419898100711489323645907938294372477906391110769871940950005781846364812826998827598726230683949710371541310481665872630758166315521987232106494668426234263620609424585173711264411705743688859949351730148135294520851666113252726531314922949690401374495754178443434192999848737804993940701800709892376432541225207907402239553928156481536005234185022394245777119081076792829637429731660545688079562917917734777185139023282704203905567354505046532620773114702461069130813372945340715900022842769444118979961386334553060840630909759054212400176855388476710078251867897608746401381861263149711815612913009554485799803557757146378475530308971770462673207323375544841005499293739056360216314036870326390995923815290121177922233133127855609080749939701726253368872282107734841971236460419785881130424692801514705626155062506790802389530492430755620542810914619190348685626908885500671233331257958791354336127620514831300966339713513007709387062472662745129334534100581024796563127768514416157397979547076355644908839547722840996244803263007139718583646697455437714685372516395741559612240428531440406348661129430460644020358003410764823690287168018621921896541458511634486434381636747663801299945405995648342816079641728803702313383365676223385347318164275118997483697803489522876189332213228704555703465460054098206387858237826546832192541475566055041344880933817954388495392351883431690435798850861127264808431904488628193594930574739631076095826587716291844515038768142746648519036889395516319181737917705666106285862850320673741966350670267131178139488156662707190511329550400672813497673801466829815625929149420920479170183640176989781650913434257751593859533656278133289395431136932652226321889509071102124492918807196694359322801363716572247836535801467680178418395731123166405451316178758323406078196204985879908644722626569843570164323275283066394377451766466962719182294940882135138628976704785968412810689431584131639480776377095215685194561781610669095503516436514722999081751250676294582862507387515191623536521446053366491860044686845446030691287883417981350112594673151595309733589828237339201553181134322584270258027699831502627469379088034218379807124763254200798890833485769641040942468870049576960876567382987755559809390750053433210443656296405917058318185049772184143769942727394248923297205043928505772396536282675955618608564322755327319305478426975004804195514718285846507847195329897320851685417964558544893386959613669764195249119130320132589069975728390329735922410728985529097204875300808958946054008874762914581633313859408950384383712418112670209444834372005635408599186117282144183181595508799556709584181678390030279853599828597406892555002307226283114450942407601203786307619981682138311924593042275172250445927625384009032049263308725736422870585531572186610194691512786406025648302830824504042629419109834879016671769066774772701072148835253734551366251465195164313778283087139204240426645787186356102361520787281072562085502073007138647579447544226575855238728578054490693552765632355590075947822711843096875691612260254355909000249965686593041601879542838987964806310047205059688994288887765306895859045038233090040681439068147308010336857842375951695421426739214759682964395438997806656967997221579379990303366943919849022007337814394131806576176497764723919244061129573384220535495903980463715303903019416618046932453136156731060131058075952003572201947052000104025689456118979612218581018867341952411601946500991631625534660603554743967302466884303949708713190477337555936985776242722906941446512735190436460076678732021899686188876333271189715614546091318419368174803946387284185657977325477099742899715621805592859995018472618008665408270532334873652558651141602434152308233794675692961303792302570457375206921206332522659732464745292421184883756904365662764966802960091200526606717022721195159472926205256870191802217794002977543246366986091182342881847339154818168511969964440803684719210489979917209386882150058362339787430215282112376237887325803074319556303042544828050382119068183121906334598401495731040672423495831490677771776753022030087985556955583384833178126016610831649553516842297436339797528792732925865900990028023972087387166105350146874380380213638308474276254676748020836456781725040359328419573759891415226856721642283488637244531676843863016126226922597523135591031152693011043917254541200595098515438123255744573699355938761647939048712190470046850363166024433240007805682388757235603973447921143287202854947306519316274084725567925962702976278939708035698153518751065600316148373568000193155484417497737573232167304711229176201081876212754778050398042877874971151597741081906096995594580169554006909452413522762208701906691120427385524290425746882482934615093585347305741869662519749498649361286723359233297147837590256270990301524563244457093647272704709527917438230064117804516701130470942425899423969759330705878083234461409097743465117470649671942425773366211864031933552816717860056784090663022854421105509297055000175532525104060220298092730423621367411963551044998179546651970931031261573817027406564988281607799700517020099944133875345311214246769490697694474364378352384137731102541762431225588398488960551136423287616960821925594812359822890897170802234413087010579795211738611821301564288015805018461774440476110935027224948335387000311754344747231966679448054223094982402517785178573523098804801979451104999577566754805051199157275762668327116074702585108903433044430176652832076756065292027922109086941821361790345428958597789964393204220206492040425008163637458874709345481466041210088196371119861291327344252854325417557103352219982598876583590182136992138157140811837071305629004231942587405007390347871701404543283056488368497269134014160322977294094138939559206154082232501288387727285754154546727849038228503621452573824750182345925149541241030412601829130408871919799097818770606240842155363732468415644622988833225092665970479371423007608932931762435972312734430050606164760678006569640663756809733453787067885725796245551476410051264985833530016007029616943315688969823443360976448614160362178596452499534166282402496831761762730518676321557717343072583142930670681000298122614116213891100591829077098851894924659738012721563001442017919502290585127666348797526326425273562832281947782570179073942364690999672111916492364446313373865202424268409648000607111676871299019064194629588214745164199692558404367237483975970485195673800039442294769548951321490852539021283757532295207554608724983721277122835627278769805863450505136914225970710050024918081459668164679698195393023936593872568763071718688670405439343076854660051208543655634755521542741988520834365988852772869356027378230545724316694385860015800090902770598686005694870096191780401619976443599389360093350829749478927364102634119526923569777378917416977138827088773769510813933420319996457331031306835925162808356109613734795605832077609221123054934687151955199309654021452753041711750775374510517724269215160786437272100231032327861971929301266154406847311653385210025016956545886212716274196950896642786497645418047073050133175388322043915732176374886616518140402517469681961198132266895617781529508697706300278779518262527441712579003411349982628251625018258926022465126768877300356698372966097425492631398417854867451632068864964057201392022678772782843133405985800727800754225050032755239550296211008856656708418212591422930448781048253391998111141044586105400767215205096671718702906598724323590889536178651575062646149715308472924694331713997044597236034837592775733598122331685388354243991421929774168543232693018099034927854606862359378767819054901996687903761943730294745401190320808046592871567282849499647113487000959977459998644517872381745660200771347882813556295633736691859604231648544982124698454195320949473212221433386585348420820475184604748369238404308565913026854635431402873405282334986017125655468387999049526255945690544300350449797797788469586733554071777822084547002727174136548160411578434110320754624046704764293816919448985642176796757468328194583749285029689973136458471069274004269553697773915137592046378904606141443845504674494283844204874796795008735216574960048261118924732212606286405586822704250827696043625457966746948452194204071662894565630274020500933372420085873049576906501480302823278744561171948683476894230318016042463683836146690546064758969080887501284941185341701401924837240715759202144674264906557544872578835242178124130593989575653117365105747492937035399547466143230788460159151117327526032026430011225459750595853060518306288908072416051204454099121875902430065075997904906387208543168948848391385269658751040606173264883654574505769723946406927224952312515408610472628257452145803864148235097034631711928441207300172091580688146503752413059875709025118508008998584485560587012526204046315651597939207302192732197225586645957918023314806928953459210587149770746789184630336701510576348258456085572233151019374960996142638105078073349981466082120433142468493606370167161305273992051215622445589985303591229685259689683196353518405794118500484222115147551767511804961350183355013412699853760380290316877162799754041429839033842379777644512121696236192248591108771611394289746461173558076677361649634292558040707446369983361698215168350865190450178997843860852903994057317365771164623389910469583748137490815347187693480527166530186948375618206268777126912740692848308159692600504545753782806701119402707156635307393352829614290387796048940579023263312764445747938844503606248760761229530962190325738002930291593790872784154399883832251651073016472769866872614248223332536164124105294991360691445574680856142964547434303841712788457067179142414307839846026201478512218304681017116347147545304312938277980850287167029112046401719492084655862706304988973651171867299699758798401171328114920729554422210388117181277256556465904949646622113537884509075096744189399718128234269636409788769265598309886027148371520315824827074799206246192557094080051376078582190142554645664143951242974960658480399157070539985993876712318515424059496504315193832563038169302198967170751527123974128090522354370919716990928607436283402029292566962117542822859046906831504226070604278896479737975334364998102288798233844912535311476005325615756061718344039279773709313056145301370704347305804408802012731015259726425679719726488422470076627253751567219318124929823334271697232656800689063057681017711149783068225682351347079388299568263200572561940102056955433259939626079235528775334352737310384672289421109434747906860516996515127194173664016764011153796503375712517097240825634810437228698545159839187412607456076034161855506125328013606537940923427268934746847112194997778963646973646034357349651534656558200964868281207298297250479486744638263232845485690001764058999864519156385598047519829189668326113864902082415000793458295543061203146650466822422253892283904679095013265110181419758422881764568694428231554480234707795758594688707028749679805812235833453724661896907710081734663615187864378186960863300083401164297597614284179519026889835329617026474479504924244422540744101938374941779789018389348273171157191959107438577030750228861320374449254008750015508869332703541290193580244275522025596649365020948512359963962184664828321931845242816227469804932086267110924211718642223637048266328918090782198310843962581436848947210531440303286043889907398807316854818833112413771755509751636009653765906888282311835917804573860769055191526207133845993603356683251873555343813975635750788212591844568571755551525126187346433236228741628182298555589705249815949246465785431165002308831456222786394294692398059097447712922470019826211372762717823346420980878474482420398033375587073784692206991940520940649950644792151718485875004609851669064542479180853715597144007264636162072459197432290741263434349564141357036633083943553269771521691540429473284294122484712737200698783702663785919556477563363718858845661469897575329623587995793364982512077604575965292131874117275851962499212247767912011834656986447618562698375592348765595437127366281817187264562212849523424355285544959776375453657735119819100725345403412163347309165516494986751534407799681842008984390513373172362763814032995591610045383425537783523824919100422945417912755995451746567272772172773634697501519051178211949016762978335654637880655357862570241655951732658466113657214554724220946427025559222051239662675113358464008864119072264114419595217233132128824059012605005368891282548328568104951002657171820602705155047477629177905741892724033354595511443534363117476233673098511806082745645699221018683163795908939682330571334686936351962787708038439501068806742523964265369688883844070674532883948254080678740421023157881892362703627034571774009683219120098579044590840301277721320199208106332048618236500055117275040535266260923286985369434660153046318994645897359398000968532056131657914409725554127406117454611956103113370957779317334499996967002998737426378996946815482887983325904523234180770331688004339584765171670341325915964669528942076102142459888617082406421441069151819771015877776483065384048083488483658297834115066790492294579085471927014264796651690169883610783384440465453622022650485933603120968048845287917175567965832617074193424425127204308326055862747084771407613497915119613437287601095241718438578516605143784359350260850516170792726516178254055273776476832750495106158502893245353737833190381829175347452240642445708740721353594519523307015282302234619427331830500265203428962285149611713075873494084120361996499303863845228666601476234332242176134854385660065355179839624851129123208179124204890094037946637593527121233230480860018393821691174913836256698016125434023635887075767134407710659270815096593226898527881909954970143436214019150391234060623267746980029659223079089277541687045694036781598638920139450414537203306004099765180400739025008081039535680108444191440109190915548606787420805916209200174187862806472176575590660775203099405099854899559624307388709461038214965270685237367295054502344802042091214097758343979819961382154265799468968790561973785107635285255610156816800833275396959389562805873454799247523104093110357539274757912624618116699356009944504419778957106339744429896195415410295752339946046887825299423777874081608841981057393595504226074611771354022041799360273692746073127748481480135504160909405829884003708142701367830586706745347959061938488626409706747792910090434167962084631723239251367441314973159041370101700383876623223375183341589439883290819744082478822182357886856667619665877251529473215385796021309117636648543162762375143098122882190924263094983917889760648771466994450497873499280861154404856806838268110115806023224095831801608312045560748449399501277995375520613200184578309693621867936154872335646328972447889261750672375044765020949313189346832991229873729158732357206929376707465213721494527611452159328793112288861487959533732772249474147074451215026188536887126650516276280797231755695022519417661810998494642068861178083703346061180397420307038046875388173423633060926672888556899364550476671065302859409684200635158316086592722690537935108491811462497623398469567724113316550147103715595617315870260209115964419203057703534883549966652423963913996512264297535694349285651768704390685125957683456637529474118622658822207716772897686418307650361493231283123100829780422467152440187987484938125469058604584666404339804586090814877746050826679871075994715438343491799524839276741278680388769529421906320457879323774597082367822052419751086081835373425261331534032968351798578045128393414003324277268524796968931065899903346600721027783056448187668809903934623150839007841199975257294377645596710394715897437913943900561356935552279153838297512805488671433280118306728018854799479934835323809958012746967098825650659119327005570961560505697091145372986961478182396450812379788127947457809635398711899867781227785967180085910650817085894311651574929708243734590257886997771502493579319905664315329452821324630210166810725936091899575250884545390328057074538487884964686458214386301840235954097926748081276802222183912125299473980575062183803006502020757620566737855244552781008099950582659620218110640799720125916238719715876708879122104131246389409895073867371220591762608806514207479919751307392352707292115039243671543389209049661397517833189231436101336270432640391143461628967359310656818152613787750417147810997059591350300169933085260583730513757105242464657425980575738386211315573982023301092518388783987540468807384589655485167149372463693119209061371779742663339360329292990825771850980292345252011142529953662949426950734532194090417055185742667983866637652989414847436955882208967384808510885279278790603349166523783631410184094945991804965624364404971330879882608549570612300595701264889659218411523818355331032273046603545828245771615622355868860167734008100925326959697222107605301116297515008258765958415930808376019811130392014957417376237555317413045064853195190790489857369154729110359657298202172140043890847943575980371655757325425811332410355444523650496478040281491909539715217347670646597075760662976159539127886272767578737532626693122514786489221687832967393860501606070656406940429031029536179777937965149801157519141436704555308730673899281338106832864111568989250118150538326777748833405406143561688658715104204245695427626723511953500070913638031473098102488112677520608673758090045811637025272160271492659268283400362958913401615099892536932200912927834712788205688732840488402437347898387341710011769375611488367236276092543844706328041547201897562842210159669168582501992694027566750490376617611144949516144041834801226096780103937370259623763726997398518601388993872756529887198838972285021838106391250815638890172455358405185282575363142101080360433182359656727308372609851153217879743451853561423867329848554332040862951875347557684456572605007063019522184886128719688780862403831561080425469492503447230661143955066750154591480305236598653224743581662130502488075556910374250101430258802582907482465669901768238947005753874117897054301567995298127288885211188686688337318338319151483667796492167598594836500541264431564217862429167485464482834668320572767220254615535640418397290414970788586101973398085704250106790436707609548632258080689417459757193894987426182232211355014724602175076948075487152041794832305398259523587846647234132610346600534678829584657971299301153722897165048297470407080958219534311618379350281627399941972141423793423749330296315244052045505485440428039137921435247608791226488941968415259143215478563236010821241422793733636136963173264394845704882241008656723458621582503567473050075293141193764008342918023940823629673969486612431476681001965554852333452210828195563376554073561422532094863211883260315252820573778712851674514444006753000580472258535574257809027317399356989854004768947406629214082410864447870310581571565042418745949311767995114438650114980250803807104127749341804165653450079182214760445861537049305588014928749565811411257555840885098570918524864228485560482689497843187872509673462546910373736030064806445652845132493487642430060766894182428690489440705328471509540727232277825019615361211915714353858412090827282810357660106880413351753148732037793841834274152942991065085366667782881337466667632934821426756301337277101860632815008229220952098940117244785185554222823963329767264195350139969768113253401728863499870884845252594736124078118924658853913094508797933678128450081997423945039740795154114691803709770364200448140096758206397238505035922170008658074057629290700342077626263840979247233891785550231332831665520320138312516545028624794832709817502560135208550063594284566121482749269032227456832902701455060948833101493066157218760121807427977689876610847231237714994889475969001309328010751667918074180794360114070063763932183095123670069713037660362070109728765813948390511130326146996031311421329602893409795223716569500937934921965506123782640634142052198279630009347179064028131996369881038616975390611301530237335984796196902326931746888198498190291156143932257673448308948069996499646788011501539692895374326696121376780703262677868908273890440980406526262001856750697361436776237922086312245588093585337145807626847952833078264791470830580430498556379260697633197627778974208440448764878181496679832907498275560220204492020063945316487278043667722016690910367252495844944062146789711088597958461457753260069821510007289489440001094673086708064378754607478262838662320846692966435163768750971770458550989259943369587140088606246161376684888196911405839322261146476553510124089040037862643262989302943222778951384650112134541861463219129928159659710297927103444013069163699675813781077054025577841692475020612559874078915932680563373913519876699806166985443523428333487621077637524793801972731504920171891390735015650313200207259984975496622722900050289298597122477771886755708279822625435021256843136784306697189900274764226237120709532064455578216306668285204385836938009251619218807823571603341814988166498224775423306114368591478585419328050995597434452126855919429834194273866914258566319935075817733945011720998496512205511380465010622844137635730649817828673674259916176562633224071541297365092581665162884036680829050319695516866364026856715994450347227803201147298737344972016022220020626210319926437762153414600038928376789940130917497083159454592069140912150883582576574091210692528181903747909723977130733179645484720439705759203536520739135302809092920882792984548537012746431914345878785204858843695382362829300984140243213406731436427035010509356721086118600281134813098792602834022440556675423945316985118372116710032229360317496118983642207773151548841276055525135063429485730684300237006561288319393164279097599638488123297077623215496617565258346503670176453831799870950832362260173899212784594434352854305827482716771478027515795488028303964388962177144325811338354500778954738902565517125865147986858849464207464453641381588916237829634769520541720893130486287663092805497576709613382409408159530912398043820926129915526578518015363078540144083266139620739974222523590650938331344890305138467426840623673384012616081533441534584731999480370669074287047308110522489508345763850592111102248556005595942503065153376208093156129828028645519373794926788213946754048894486012431130342772030041070326422404663879717307090595596511651580966513119685130429237614241403373210482444178500606255993661158917862337576934080177334906663261987736876770894173365344001290045634986641548316968496672849623134966543311984799603872676654230540595890364326259892137216357934333685482757916901433613239146750942339231318011960436473080347492296467811957641288852779413302402754330783597024251219499638638183269992801535771862114365990108695989928962929361004653284552416853217988263528393860241824494342345816618808710842940987512454615624756614425387756914742995382903354215113851411704286155757281223491536712478712371774685343253510677155661478125319621984430015784459659581131709087354378097054002160432278682001676790694753562680608194312685597383596793407149095260499773799067959673424442153009442293595894188087741967356596997766216684368891744274909224179505393553143418622684148971533270464734661849352516165546630170912907915275592254667882468330976890375519000901623284167883054757021910571264651337303209028636835354298483237096688025388014908244656310869860597759658009504409902353307151083265032075095283902302019560159962253946682137821091461984316381294066608280373443388513215765148962523206326721539732869994029782345918540571304655620653358785831877467779389309153553207847960185817721322916644678875262922788271439168373620310728676211310570064771907151531065200053502273402820581247966471101011442568703686680181650816523336294344448448756032282528325422294461355067056082547682836340535143913745500023402969753626343609587896600947552892144415505610462117927976408782014864732664120896756279254694325334762591242399251486020001601282525111248684453059531503391529783303843323468068064303189239851569652446233596816975291647874919366731517474198488563004087708841059140544226732210012377034308508278200416774178363766528974864087925258334929060240054207093265831266610421257355959315181540707225638506387279222644458901299101647764949710536660361087293997054371498619029528034784810773805939342899930073650964751132222761207509503403448467419625260131085108635058487244150309769275073452979391414320321388773105782579654592184174689895610085754201464252004454752300367173264031446308739061380993152222470528490011312454733572392595262507831870178975886993044040017234985495112093040568534956678833893092571998993754737945651765443131340204293687318385693472378261127012690288604310095551472561091856214801357167116045826629128173085524444659150041625630070695223561011232896774638891722361288596816209757139489167928281883852519554275713614325203182959462709456762566839684040116985164158298317143407678983420381184906214724385008266321962743558136117508856124568442601698677397639070594715251287387112770705389487421370109667894153003786892118621858763946936683552908201103121067134633637392740820687016108933008919502893993265817800832031152211974122997284643126806970370496422316885620152516172174869726232270578122365141048757335466937799231253091803354460654588181670536439761997404219605281214292035449392451717652029919937440884871433650998493765193078397824840032178250968016745927999818794991315745742774870631816749359329983742489507320112562925886821803892137220388329490026843855503999340767884350108591073842142990588420896117786573385583661247857289424393647776382415575568165954272364590043172071706451820849543342850487303346031873881000564275783540512238760809812078031344805727441483345981408029269725816793964260048786296047594529195754591783298685591731232825050533453344005676162067586262033512025088962696333390029586245844335552544114966916026743216302883899590634237524732562624098183033295529619659937108838970094603330257120180838135045035145744208508282479977922756506507000027236000583003236097746406490243024586760434064903903634001119166017779189894830223741997296934939802499569243014176848079805501275945968132919908164187077143365177045506786977591871882449700244455745930127839560220767645739239109067252973150095218216492188676917014392490707317116816173786883914115571122457854154733268799052831124041956981867192655764315792556953314569334165552590941446850794891135532224554506092751282939130888255049065575908014284342151621321935727743359839553510819010253941029542245589840031829035880900772259993030598880626857749279608393482345101105538819211624724858686428148214857326018628024901969838850450398678796010299247218768461863963096805840774690033336308578905108940711265431195172978795010767950701875986807961412657996197162715367271862009289837629195998102237287448496828223407070198938761265565263372279535341546231227043419524088105422452007011768809650705217477738718441888912642094400992383631141304087715250866939825483655276911730452678375490815368345380060718219193100343074063335784911587910825327229909109054039206953705316267405245692236170279211986188434369768550144729971573539253119060481994431950154716623106304571569402842723579187628195377847651742848784402262222533958559166172569370572511899039804906883338376083746284687607861046346081807016374468017930918956406040504531397916936395555995319049753367826393403919574522420452480546389538979513151040756408166322937046088659325545959993216073294487622070186087462360521848408017169971657529998449013068602060767264107657341990396371834816323965915337061296066883104598618518193683806945018040082737845941518213066608057810429085981598522366491362288030531609575431332187172063274792222912026313065995947459118991376958545819201339757100733949750952567855770980006494603870171948297251423593636165748690174190978175264923292739570749182395082747116440689848187190577405540188577218435808028815358246382240358390858433599576123235386029415580207696269389921231721039805396887459812562447117189031237042802040001611491262665128868011443385453994324141677185388927456587235574012267745717692023317478552362963631032132674234596591476213466004787791146151653237236002276848251167996123836731642096724225470475370052833418752683000032899735636433708465489090576189045805306558933674081108627400821048103250911161649948496519881071582273034319053412090494008649026411577791683208535314939895091287346527304766271336553642111384853228375698913397123922721405265842958496226770003598735929019161219577695878297004113795335244087908158835970975123189927193675388127641043994949543588094347842290437176676117570504869430215924411600272794734306163324429846931766629141743244526729640410796270654011037007711939871603792032161049446319979472546576545259309100182420421429682071116521272838443753810789471751068466191082992905270074635822560941622024484537843106626743828887055344681785515206430979770544132293582366294414720015903930592504967453984530707461681551727120835484606630909240273074597300665114347876800193329672797760518065497935103969360956806164050483332390919714065926208805062924027821952207102110793962025940349889150012144266067213676572374540485317588064886975964963308748108097280941574634357040070626699142518732749824140809596167407782486814018978354207004327538534121864130385345446801176352595107256025116990725033632135899777441351690151895804702989723021202219918814056491974635495175515355203881992453118571531478216631805907554747676756724622840630188322985322050389335763341779565699550890134620859452067733622295374569522281416656169584267126593459527899292255717301127549179642652406172927848208934339752915209324637591392442075124892525823890999936742859380736603685560372273800835436489776633267314070596083290594288967098259756208329912221397074094416544877439614472101181482586433080686078750653939057408733154705881192684688759076968263218956360442928327068137754715782802177584998123618031668441252470483976523316456941845676778817001368056542523693332689638039252535522946666197373093624941655473669582390314872625834695943340885481075950946859554734579633607075323132141419389463644050509891798261816813911219076777240868430417991493223537578506484815386689654322101451790921284451792965090889863425054162455368304862909475837958372603917593036939648512699198428905791548218529708400487257561296499055737001370763510701134483235399954051641267454169696004204614975354174120203548559373193671731655405177211770562050251359731048678824143491745564918623067262633365773134548929155029842900844290709866165360596604052801232797015718370455667086437496932242807621710448190864094064095400813393391893887405406785021263415226567598640390136295445000545661350155677845499590101574741269453321980656277944719701282517951860180261846027533990232274644997762579255284976940491174109381569280420478383000912850422618208777462622806629446385569006924530915757557527946524561640207108271520751154635610707370803916223579713547658115102991599135973631161488795605093084930318410979314195223394334806671392342979996300690899884313735325705656279804525083155824546873698673933811804611690899177776265722126405948810465674350026888066682702699901235236777180867652613885356605760283375263904968520473827006232170990660191857387059943062941009177246134243112587265184856884944562579518927506747982522125030932555055683578031285234124590015652123135723354348899207394488182465113137312248381457626010010611027739937416961651742740586537117149054521719307551137385342824614113153269196227850990901315475565198147358458018883958823996135001498301619769969641360215687062064572452914206716516175227902369293331185753067126934907424172554824886348133310906149006730892119222685507324260354220071483534979853759951277552933710164785426033219688139617167781481850157518859225690770727234456326696258212240728283180730342261437879033713539467572720967701909058924056409282167707424515604029458471117099686208096972985904745517305869688418901455019380963634664338659588960924194479072805233617855536135554520738411929762460932246312821577556976589516175159844107488180945234096916605467888535764295078465186939931448152658452665901498596456550224083861836082758480667174643923832237376085672638187902833224082441221953035597723278035492936507002255860187836951826620738627190843670920003267651719535553948871697859080626376675728876580188577577819119671811467974342032692826080000912950230977035359908716464982090401457947777677414474061514865964851224371131908196992493135465455525090083434540360406488951682272331087959501632663243072266505274326102232046114473880896634373951495306739635418136733050243652785409375149869161686706988086467326244856253607995781383448898351672149412869488008628745411532437334290783757410646692780445421278484149090993095086542417592335159364095948026172149823961809698026618342661556469999757343658737138605212971368688377692568024725843076439439029499510120728513435631238429809210743593102639526312627431965985915443915426704771976838520470208706698182763992800841843520031569450802081475384594782372930994378390595906269371719063579807497139102668762606987319844751040221923273651040059060580203297260830936704338405172232449874162250570579070583463124257598769276922237340662195808574324827353761012478618832858879041484893949863476720170335743403252023375191473950083981670043464910906423661696654710297198352464867465925989593271405010962154665247656935469400473651661295851292069333696677141442388578268032863107039245063504290498263576635079872912678103424253853897789153776115280053897699443345339615411604816059619576232771090256741123656149249536938683741397045569219810534526426420019076639861455785661112599894522242456111005136967800994642372167917814283864649972606074564286627628564858873634456668992447359717480228759499859204124127501128372472720434706666875531127725575215242810016906098661770966912748832662822059717307203302491036506278026778630113823157572266582680673373086766395892678111250024346193096392911470504441544142103259745938237092880691229704713166374794656594520250519615906792914667678638912530186709262643575130374174419701706625739071306226689598254033463871386921067341862909634294258896317085264613759525772475447159874413914605205934621312414642332549142892798180475276952665788092854493939511654961044027289754344499477592623622426521950675722851466873990037900196874290454201364906815550976125189868997232671796505358059181866054611588202509926335504864344240970273943179193236353508324374318586160531695546945216068111978348941462574243368800968165341001074716996678366839922567588203486334201800437159312317498967358491338363036314112706200637744314330853320768147443683085144090233132636988291654981998869492590330617384390933253045668757796091195555954627996689118295359799535829770174670015434579233479830341521114265476911218649592428843314970510160424154214966764497881148190760563091212665213047546144275329578661643881703790037261604109647443745765470142865469409365605180505452207814376516331719257732422075076077214146788190786556430327421687245718955902995090790680108486313943601923812640816897575171008088395197466020213640149211816560017061696633083959595787765079248701124132532711421736643813803255731214621190498447445068799902770968014127318157926323936232815218859286020321825942269484299154495448619360702186550787175048148757412540216681943772551162363832544303118430221526124152949450360086072452962056869296267090363176975429770012949919783887658386679509645124723750621465977859979908849645778303554341918638014445560807139294138282626103035460973519138391077047045940701999738544667549711225046022047517552970359239678116055472213927988569020677977217213330012538580098592520443093440897322877482456161631486562677615556626243738437385407410406902073367953993251540210031082776560211786588655305233734995999463133453020318095242213529086850326700712003205542613992976864697923702278501513195263475579759245352817332779511257254009288498064917740600351082316062985683994607068580024826327186080242829071579574337242079101605033109161516382421494436192273953695813608860599921339715698114920693271603629000157503763917632787145611401205860120768775121536209155076942663345894845044827527795892034380127383263269658343867388850687486824138355107732521322284152103653714813704974471058267814386926846808350824621080261898906432277117652826540690901132576045440433951767995020240263523901217082172306318693808667819730707393340755283950003805961183834952746460589512529703611804933631926058596469088085602748593698104505593646153843720220139996188520396241165364609292834544540429623263567440468158607354988998599416030591629083344479385384019095370280855613317150039979558115480057144000251894101987589880051861692211577512439153465877553595256704881993232535887801656280777528286296373950474438366868144403476595164821792084805490214871727449499682380249948018821510805428822609528467350189397465497439634629947020033598937816099009018109029980649968761120870357464608836511907602524840210421726624482003555807863300798099479323202277838044255248607273049591819341576107284145513394023091776279367125685703678780299083514885462948285804550013926262171557396405619643584879789650799171167958852862227431587620473090021470920498723888825327434058380098422768946043174058713560592273847654833413399122091055508348285263857602925106998556683735676313327179218014633457708897668889496558879612810081187006327649482953066235950671713366045603746964004863605783812015570734063389900661356648776536588337484070645082552466825738721510855176886194341178120511642505161233292208777077130284108005150109258309547206037338548264870999107307981201885280287105537352855487730018614506187591443705518484433945917894574709395012228030347801067407989827973224734273774952668040058921594938984233071010316615218611412467653212253855987467103918335573270737232218441028813635750978228562293244898697474787465711683554026553652291956530803294297951738009975665550185296416032652506543663663245241743603015914420041511198841618935584562108633403379508379111839974558506101920036148743674298199390265796700394552651806706294841311944093591743684005666516930256701713637789996675116827729721793560366238232671193945865018840884940660483914277211819014828227625322923251253803844527641296138900093837539856222351378577196470478449763144736806108469698196550207319365698572936164677718404891609326335921797501404167096203523027901361713114887429229980413016921739353789843123883059088954210581769884435025664465860536122288946811474538111799209875798756429984849652938041566834546205119548307963800585582562218598691316398456259976913066337117132429934271555393975809640128076301011314601613133541662758427799134255510150984368477269563085007842939382931935354451360075855601741181055414930881801192976480430144090010154779819205926449150271177133165162688976740961255526574186174875426768630859396175568325943403459830744474749241237487688485479997630354193149760875245675133402695894129479648572988580632381631590593256490971387396020690446068427809229156235807146379178616015329668064572395313919698913167082998536822491021161178461270595184813966736079235142730045191491282638418432729045050442659000166047632243137155130320610038218686748983568338704377094230340528844625151330634536290751879478865965178775598664072387108309321680721808623735775471133089734489099119168215890055955045440599685124575392952605424443829387346353423447607152851576302325116371725883926471536939465913628687580404073698338546068598948205309359586839765419808901192716497959720462846059781062756158186116812943384581874607623088628538708760673127458218629032856800426769937982790025040917158126645622660318519596826794362182530018524200173652124132393330429618938058568240896422294120912572862172200333165149372980052034247512612189636569236823908418571103853808413181930508742464179710559230987237052207576171237261434681441767900022626570233353185211894198697944273106133685930179007092117099780478110462438878081752734886753360697895995768815786525765287043628513564081304769151709239466726008256827408369954601675966719316319354907100777971468155446393099167290636351319955594528536155950613035347646454458020651859049576301318119536835904787515000287851259858612026696683533291222863636607658283933574206095261950797753072281642529737270942911401448902092163962161624587342075468492808532294124085380948498798129026865250339031065984168428387855856552124789820169557063340616232876667914658616427523526382262259240201404540549191210481332597028262893827016795962514307952101997918554286267196500752368940070801490751653045883538465294334917225152196330861239289820840076692609322588045378789397052269517655935719782526411157340045109912111256493906748901503307454685154866447585882062910293661852535780745740750060027098196241591614057333724429551177321572585489857556133220437297140730230386257021996525980098125881035252827037455282032888958469296423477635978077495241305135157684888893308975435591294744408488601267732541290163649830822821777944416237191140817858112679349274689909033721462385900292584137641861776724325250281258412565789433328930797614948418998624579871313789762704776273198162369461850577479924616351488439215836796492930904707901250600625260403269033597778505341004828303697388391780829863844693588209418496986302094464239128678087160202942196635390305340282318313314644282028745194574791731556375002424920675016144536797277996414992476852070892476571442246250212074466643535816698005844802849472036511896031054381814453404001963282565248632081607803650037674139142645382202920749548560880311160656992372083287496060571509916525859087014006062598283348906171876504022746586189555286336622514356110709988132166445005960482825151419027116540989424891283731148293941681614273572830487183926914801247315611168224861140535899594146491992645007212526677334028974712732841538787486233840712582884973788370889455269702594419047907301504376143496814562408982093956872300993515381761457265644272830812969206371609853303423448749861921280645993291899781241322837618035948496414042570750008375484810996651161881271803731569740030985582897477144357878368899337458303510024897899833916876496073870805278630599517858942475570029672507367639403405688537059454660187288028046276767977431853564720415128091555509150408906325313488002885324474982112953411430517270988280119494975284148029626414811529909832356635249876590253776212323318210735640194943164104445903631557999709644143355982405146087739169650197622190990468027392379956017881194983667242100837448425767704361691201830120924902197245080790187428297932214423460277931192545264674829357834866923278393573022219933989177182038701219177774156636705370216118924200761526602917278604506860435131826703963625683346634344622912988344877387238543580337881387798441035655300070363180375237962629147676306170617657248895347843424102945320320581380484042454376296052054126820325834721032312827288228039013246290128668037490590806812813192369620635635443365405177295666638927264161666978277685097307856897024160827336534847040117580112839851243072216025606393756502954922372135258088420556538589879045375535016765743251460964357822199933698723272210115873136780818875128340255414428136274031329614221838494166409808766343122808003734435172965124320516468918499578138377248512921471723809180915222651063080020320071024517170156334519627877231309138466459755462531019155798437594947483111392853754574255743343468062925222447886448881463429261212514780893536760639022487824401184635140463197593006772969905380402266071021028426191573030262293996327537442882741784689334118712919527342063226792590819830050711153613384313203260989423240728167132946786231570576034369568058205805181056251349686528096097361670164038609807594106684958484479113918970838651861898745164582659484387831703458283670257437992335850327733745668637175391142323470399615156387138683227085400121672124324663099848546193719336336566199709839449898673295974624019380384604387005635602493550168512081431465169037740290924565776128600910161920248122401792315267854021501612050010530991650827840040545492673997645839206935584918509046834286102980700934317947771428237226361501891022493561989010074266594461394343864092883939424125623542731062575002773505303562658393091586740449632887793109235766804519692374624289307349943719320965754310509549002414259794457158065314488148973650751567883232341640137405840016604544239372840470053863985970474295983814001952932048652594661493314291611640353692834838361346350026332225656906254337209068159622852687313799803117958256047464936852475138886477471418593470643522711243024315366832345259404494486110169774354533788187712703675873466102631037956516628539006164675162659420923184220399041437218341950952165977499328246954305058848300287631116036907075965292295221715376034223048933637712088326785983814216447067654334243943383626873640193231698850165405450329012241106950172097891919205260672974211961725953921982955343386988532370123893804693997520956795730766495841530807900977312553699401266589951225452928462370625713621508598902237937660921909813171873126531303857021346866221617450628454490916572639236650222828705504051671592014782167605400115846841245615963307342391029550055822963786090910538590445158691857306284927474669849838022207385810780455526638460089466476791184914615919012418844464289945731648273555498934759616935625537753559721914796702074011547922074383380804339667285214416710271749105540521658746287681810647085906394078942523240371637275353935329704314062208049142685920190849431879155932189352952951244586821762552028088728499370836409418693595771319892562209510941395266152679184823159284687278288130448438100496956689811804395286367389768420140723184881334406997167858501709173857226307484435426542974701449772996302315708663082882146825883109773838938716450526512192148661214656550399486448835399498648533661788477611652344710357794093992753380048431412174921046807777647349094424524931739088215578201766474104582068558957721832298666827630760929460544838268058861036441828541485071981813061452529012047546448181404062241634303557491790175074464035769974003363871030925695158298959190719687827984312564201578961175972413120435992133838389956122385274376541797016768491151566100911091470702365168746075420053205275978179969087794411600795300222573534790381996243686674587703782120786460608911057472757698423341064057206060955987100544863164790796178408181454045097377523582552465676395668261434325862555322609829421995965309226213410433887330947930300728409904282662351171737523231820506732078951198269039290830945969177695142762348323432673409213723009986489950670825458133491344247483996149500415094271420747259645605745884035252603174209405290930713092528970674383147349986038974400468699998212927910196697600001795684273235545291336676254959558619696514566142645673768477459952202281874343964636512036110677829693654664390736565441685666849319768134767031875128055260870981932283781527492509243213092264850625494145930249047204565634073177923875321113769708030380858167253347671210534004265233585286615012465684032987508557336602835571932409134798857452114608862352065864490966494023932542932819623961724703097937634700618983441569931117040847884204851610779086246993087623860392782601942086322219017517942315900554293730879080146559614747603658245115698224882116421725744232606547972225450550010139715525824963514402837927556200069969520573489221938121651270885028175170322647002971759717040168380212433534781430422286274372335997609187522716566720712683497603948900913589527260869626394274225408687830440078558664567141827530532200992506160529838538103833019950718022984255467644214333623086402507593917898541290350122762732551867979578065869049717550919007013822308273124291282054140578714454573204493296003021490577944131800036396799949148927307861774247280858196302129340648605433495326771365929969074674173378284321209334056902916163298150599007862850145852265493699755560743567207637543943155383412140610231179543120886341698103127413927989651532596781161067768352753809404513004741564230622901609058179176794151022801654479003752401927678270210196178523706101546170351035636035828007723653437556708436344846439058814983792243621972206075272544090229909541776432388151137839706987788995518512907895116223457119041467748945930895163007264210631854243330376213819815341821090127199211996424763710723379589994973048435888627519394457572836411601931384607686198398660658858453380298459379606124349711730984488290972889513980617084531259028403161363620677939264964425771624390611353634029889080464691558047239194125867756669123366309172781676612498666706876660844886433655226409603115696138423804207999978285038529455077836365972013287720603867803800558056435939907123660058547308037897503257015822912113395164919594452938116789682434467690625367015490540057731337694498760642279425062332316353702005568269177335881278148678643028402059047985518060008897842810193177600812080517661255831005106914328121257247301602380703178471583014810381327495026727223829689406434376227343140861704802571577021893008381960694038832313336679169926380732902624107404822720691194596320613989893851270597143293789127271102133984467676923730608802166457811816365919480992412663849456428517590029018271760727276558822334936148836092526684153921989208902707563087255733937150857964552852554028968388208083407545119017963315880199596518885918485035036434710863347555030387785159432274015372930260669728919122500692044760202490114216010471613943156108577105159929340068821041701545238337275618706930347736016502523755667326939950395609766829924573580088143966402515634930756077011293610183983641474105435987410635806074762093718460109214615920357162071797363775034862997792701218750280252772652731543615689069894316521903041183875632373223894524082580626517750357992792789352943861175527402703885494401637831413958755831992592087501879147306084500194939018219455203838846658989059170068934380059062185684855783771737533805599666557765038186104231896665682118815990832682719370913338076742588196360980496692836239461708796030899227986287554261924224628585603807333484527131883461315129730845837470952869289404360634082111591929703794366947160277014957750029930187542846694465187849843255951369626645831954173348498953760919504595789813413818984065695921456577636455181325596805796466660741487272971998463400539270590466854605609131465382676262532510157597379444519510769480458161137496227608510947663326136228420514576348991856534168019580063106584819354134876955290194352380841778683186787685676513612009495030415399956423393041931036153348723269380023910777985102540698252957802600214845015755383902228196993578421935939717297637713043993354818379508526973567404305530719886404909552606241243443530661927316284371761160552297243942733944129805377557689826280732732347530176815646628763978451343917129223064271582677245635286358412184928809481376699746146292254718336153665413900432455620577704347840305367239973624755022922635806738984729191117827881245705385708403253788344829789982032044711773864745804975521641459005559438290378703417997173957050615807386050929060852248163370644742347705915276462892046625309221767801984603244326158817048312311938703101604986908273117061597650757211774973154255327196924953293861857325229539167525969683380843364596106747059916309927730109074595685832098529708266916919593649453875249962929542447920694583637349380597548829679623971522392609430026156117791206491905043714257180346179202462386054750987825132720955140041740027432392085952885911394060468506034257667908546704485428044656334730567896417018425196039188142378877000118263516680506088360684519975709308990889946969744538694259133745078892466148651786502779243669100288184499481541602668450718845004996673299660209534827689129803670573151147151175355446327646964973288175196063509472780760200688728592057411816585603560129429476361738188672634556562350571850352856277128794847569556951938373423368705565418090683953473203777020162504892057720578715307396792791881243440584096447508182821918266679712544329573987278621733028987443659729279182594373074264988574658825412750044343633030624816468681179266852457422208978457018502089581630673803536370082069526693950304709086361350166629437112800547859634184188123008119599252680222605858462116830546317933953149039248548966980734522079330725579276901573665581639400221144175729283968743361241213239518700163702795189021222356773780708344685712332837329515052289078767354152186309742540864454150935172807150030380735294035843513634646120821085199287613366203774979020404824015817632471903531631364438813167244876494408911137755144023508605230518172260679096173130104996862242577600070555259682306986823189896447263007401455044174903750629970397706454586884649132895000704004603698076504422944799169234435772208257774414366872031363387110190905561314814878999536463437133632460306552926725105505398061909615642145797308084418768729377288352978229054909705478702699014222907332133729082057968271775219273690702977967424917713106360744896172165245502504888913582216492096396880390855470142666841519445380301874152690599684854506321584451580854916722252810162307218809391884962790227746506418802557701590804290046924087984492003487914675438479163344885696116099875376778786156722685108445689911094414781818252724067200585001086777714198140889848182338071663375641958705665770374245042062442645074360175413998619337808245407171723276210053573773653888929669965247778118129215464067266303854129870992769532371238340228846213232602154434328030976679230788405058074838680981313674892873739562572339472903868669017918577242924248219385986510898455180796812955456335555749904664199814128665858020773551822801257392780612042624705909884337983268643909443345347525580496157525213061747178261452421114382180088685758953959322268576792048734432892136014145541251221149501980749543756073174068201744815772342698719016150349576340559022259465233130559927627940139308149951006293066283514570732031985673608505954382005287092443429447522875166637187869051792192187599905430449634401769029468912266069368515915707628487559135663375092742567784193306311458219443111846502820724880265294328709538324142104697186843392804102409020867996066563645078635578966783395210805755300744680633979749843119688645888985448324603097976927699258548260145452438917249163387109172691068778214643963836323271822394068991516073217182190598257985614344857596504130354755674611590815998126969942044824469042996016887136945255519775203099724825452663815229632329564134009970581559032306846591752620060595351327977465178406304461672551544832367819322780959878379127187425764948341699624384188006237625373051643999334577333854792383615042138536878065608686510625957072870526425663274304172480896636716977745918312123798548421510477949091408778793748948066740347693971727476338636504357893676300661663508326853633014449985752456164656197083945784375100358529620697624404235488672510427026622775781668921592673095518312556090636887220737555182498588781256745735713181615832569133716491807114011261100953100956701936163799740798469567582822259190911618849275276775054775840860324992251328082247472239949184534728563025538329948893864484448331431593389629531313389425079169919555360854981608732148016439531086417414978934355691856835436742635562384931682607699450217010722325265907994244482397228291037588445032557304363819119262779059192911568690253002853491800641523344376727127419300326924658954153575597037031474265014519444861910742242815917337107575492587902785049682480199210735834914775743489372518233675873050884981916658016091518665415377040233527970363177935716922379615977123269009679403008931082228380620165037751613358758868786365418094345141877547088894126545399444175320607014251228068438691110704392778270640370767142908752401677950395422325752072992326388848200230281721587461432301030853376449406647580583893376882454394447350272652755913658066191150451357273143309147905687669203033350865929016017707844384397122652893037394380817444302545978107624271133478438441443727580048796046951142068657128001258839212746254317558680410255393781972626358497675296830922661834781834726241559036462563772027852661085301868874021260601276450078758386431659057097934654221295722119139129324241055684927648849808204494780636479606385641625576682741046635370404166315334255526024025598790673067983599966661466393882184099193402784926648538296421330352799908256085539040316630843060699773231467292513662492530716566033620037155324440557702560899344913749044592187776660766848648756272528672741061779301469180369468242580257109919576589685027419327276329256734765821462700540342167408783789716666322421965585539373276770165709726124336550467938624658991009704738535804157711457300599241457176982561269393914017828221070034776328409245746792458594654042605339300369871285809292001886891149650057763431644926627667580341916887227749277381608639910979264475370437423697327300689868779207881358176724761744337092399476395820584747846889356439452561907064340561353941536127612938581137371386186826451192946327122679285229684002530724069599325705598918354361963637967220269817968245892613806487323223320308309070571223444191745171269300569445454399170247627646971727880149388875943394445940954311417544818315251980237902077130509328432899048583865977330311873383457333067395873987882787151740228258843120017447607921711831553057777015343253823248885376515403655186366244315527728766541176834756493435365329640754330950529263129134037175718720434096658495638830337294178486196641066734840500903492211666547047623735013768811890052403400300860196396274144787909023372061473051319712468248008622522019875657679674958504624891117306154819159914684853953806041743767539296442851150461169163876002711765805874616463044006473837625109036530520674272725371715557631700185836107803743868921544853589208965206801774435835253273155021619920124469713305238390059314224839363958120726401260195086118291253739464507011396239567397630782560311760169754487987804908069980144048754408135629816227729427811393134428744728726842397254865351891251252753228787758653974155322896710586138398360660641355687742521475228228290862013772417643472598880288678272380547538439267948255370222081139210593149451456765326793377097050167121784850945750520623541829885522512693160855063219260378468732416351422325686892407335729182251865116771339115973834950446289516715703840532858783907176044069536398116181121394847304606623219130723406409009293720554059636618565969544145818314889074163921755048984014013571825430214567160684606045906589659037720964533028198908516878193378817255689890356209392543856320541261208268562517628135932010874772072645222511233540714401203474104839622411702737994157657889748689880952274042681743432672270878128012123861436873969192440840635318227640220414012327299990546956813124288128143983276647637202366360621309605155344053506030111276730448929818008680282309069007103287159290293843712500234554048535561298518986934587013067095750735608857179416664638734369328983189168962718287167338193916021096334937097440748622064789562089455671016426849070017217898396984632428473047460165919304896813876061699715208064018564053774007557152424842486873656434173066356879596286420785763717353957818971448771397238176068722559234487282683337545073098320736080246772887962106292934964128085308333042654530727761110450971783005784503880005359580028484054244444502299665436130037045030109745168665162401161093542834002288335412419176740299724061262968692229090223075655484351868434696722066897096518629536400863622701214244123469034220003634883623797331448493029176198979785621465076363618746391768470180474585727427411551040148649861531280494816328427029712739261001368363209606635140299359544856514741814208460437096396760756978226946541673638416712407886173210321916985853282494825529338884067127070494916830810149583634537443449963402331504231884771477177334660806704266542237062323824228041898994213053094396800320124086855339126656909605793725475907918592622764766543213164711327866021723641319125491758752483057518006049929456381042461525291587880064121477832818727893926389545543975567952990543182518871414711170073587924178755452974196684776516619353390085103333386070394721639677639438185934190283644091316741426976732678614501770008690579304964451289291982541653741585660452421819239099016603141856613788205429074356180386671169938179306173667665879150671315122558742120365409103063047412628902584242367953615278014049370320086578727069393818578401169276470033141534187846568323086148119014316055696703582559487836451829205840505122356275538423053953111495933287308340876898717188719377194826351383414613475314869787813824665737921489093059109295356581516414768460311400867670470438945418660614289022406223260179931203704972870819798095084604036833940078807464027037223256461590507324131650756973546080067402479078947591343197843486560609141880164569592571883447245065779815475259835587767337557350768138471175479204228182217441245883142062113011123919551853326383281713969691248820902917818100809747091532423681930207010478161788631879541752279109404196916608908473581171998422337548795837001557411760925517236281672371755101062232983030935262656839234058952129075874634733823500495644291187757710937467221553422659378539693839864381184949657748704297328734396071970994410918413076179809932168877552183312422652586269392324547552650548821124043110484492897006454094196923758945380211296249074220696519671478656460671162078748480447539677535714857148134200664025620543014719875590915790443808335961643109998836690989465269121404315569993735183426754195752368298440870326803152760439131932514616656939919430475045424795104645935232776113768144284165379596968402843811592714755720001376365027089513880991151926510799555381105496460042677696107645625427297338276577472555744179565621887809972922859675177067563492808457113415849926378030743507526835582637902336121834805270766228472225558830906059651896479756193099467665112028271945138647714811300968617626235379015073771258511150048184748726276573622120126541031093847453190517851711934149180214187380311812374936539732486639290208373292888380721305104767240178355640137609669614073594843530420236418194922065577171163008829295022031262836863651983437854141405119975672722008503898306921368549434729807098854363022209697657305006994927137242432961765116109178380153473781981294841283966012819700926784148618301750404085406385134887849873790738916724304789383366716219828222529905429966469743435607708599572553040511465699654331732280934961739437204201770661387985019732850070848324726796333380289611964170633997357301604609673770429526950695947456079765491303825108787914920660810925921228092994895868782889219433891448102617610828398484370874030315506657319658074841636334030956508957136076172837388713776312669695223264423928089692916913786442641677791620058242965726680765039452247801460243582933263343349004172777474768006838667579431368130652402473887453876803521157421717409260514496178807615874363835110987004560871202073829981103633103769802612581363649372080335667735027060213200218980720631131257926453526283556140643946084137344820191585972418134256502313197501926832372947996192566665991713648220220844742418082701740104699882804760787232358591936573659883381186164415234798108531374679462663129670205859890334420356339301626579206091742325498805115558761738920405083683845734554785628250671433502079700866856724704011667375876702934464378835654423301111729518997787708950013073690078407410080625549874021474606586448497514943743399848216164931548264945732730509297207245751554407984847497569882866570213239072319272098987263431976095179327277863504458935675719476048838435060592760147231157317973368794692111236297177697808598684390861188840945053915488115246249350950057996024065641087893282658918168235423186204444596148754770737553558645826587824162809634459429375845881026131679119804211052238140863284921253763471572083294490520768050276251613594842796363912114023896689036753237959261691385812005575932021913724848226827353979471485816327196152517115829896746517732681156161082928267249266047651497429257230277550716111849677565520726894440307469678158243620595947253120929630616680893826438756258145681265144404471665195401227099371227744355962312536881147311636417898143589515513603819886410626863512401210138916599101353655740764908113595153556738161247803773866026895868965679142085538433449783034521749309519251956087760541474023549559416152929157913943601839761982609528233839759091159336961084555462912906900756437860261179599196818582199484548720931823093290263915980944408021985041770521850728800632627445530223599700112641556711192736771559473811598579815120443240147869864901140642309057644502603348452576343952197338792917061374205227981833627982574099058230362587954992168779098719038801752072912830737502793818939728962598078983517760546890782426534434843543652229668431659102733124581075741716648043315379014088694409574303179129456270289827991165743046074323400591999948956640690644660012285892645228231655266264606669352443591171482696179922167985321164852527495922206580670659191465499480108998841183646907469223861656539012506424971452103324122504155308285546691521275306790642328224160358521659070030668135126606084837273092456574264945754716201326406099420738851059424883121135727914569485057208071401420495851799041665319606089640631461079411062159525340714618830283422569720826415419786504269601171844319318348953199883556645414309295564995494426232928680787053316720999284221356569982281846342179368396125002154349135420394965600054597896750580279716448662903076369426909959586122977939999988901740721873284685834317737923651443210128241044335428279736944727331367294634336192013311961092004768530509827741474953619553656803979873153567525411293552548303340901641527075868961990287447403746591732710015695654535483099222593776754335254353752006984318483469015716623334808536006961402578908601510956804056608313887349537079694653030005809568511130671206417242798535361142356961808204803582808659743799945875372706843926977747326740271562935550446253483556758775250357966049525576482170200073557384548945288389001574519393848956854137011569451887386702781933038941483896310321584168917642428669966460707885243361965392694537449822762580687965534111126552117228015277474294058720247261682876950196709508187651551705283580422772793356923125604504874068962646207937286641104669045046118831341145700925312372594328295385997915724341545525884557740136021557188975345654835214451317219046451619201826199459527159586894362182304706994148008282606353111727654847197068951210508095856769411456939404066511946584333367338993382274773637324792578298976289261090433383000806289136969086816890838515562461832314284256895955794201309637531035967357289287746805879730330597077327463618039533932608593592798008186156174069846083263839411842617056971417038502534407851271644035653524146322890494645301848693506302493379030527067748551695137774946133413517334516649676734871725058963152185344089184367266309596846698600038838468274515288012734707875649814858632996050688040054437140706908386030067377861233429155589361557014158091899100476236965992666900561534187600515244553983403124196183660214897751851762686261037078258781507294863217712886581807269866095422535228308461216879277582908904784346016261318552078675297935051185859491796419870718451697272531024797710704085511208443792907852235726300433083837417800335675627911196451726904329993504593242864914604941338268274252323616359195164656152398134323463764056699939063191793945791711955352453854514147417800714333406097143497793298632721121127947312018669402667056968111351903802579260236953989000297517204434051752195161410487469814319606633626224056429869893341853341566670016551348117420065352620184450846989904935234877669816637312538951210625711394352696864163164510456361190728643163266655078037251024246042517747842266851671345616596847931482854756812777607234711881528747597859741401747026334220919528541780062178387004423214875258878979542938669658309172837354042910745885181414224580291347288667687930062258354773647009369704090699519169556781640229971339293289716999073037746642733326145175927609593871300640063736311422731887262056126603300671836942089890376638104174297669865585562636104839408288978563049497642614154979667874120058953525117444378491850211376883562239050184089623732519665470517249851830140095382288257625007218025716203673305619848172600087799501658619504562005885416927015649613595584215060124822823356615015934251853567151316197466456412877885536288231405625482442386589303997823896469107279490463353744937515051403569802862783216990735317065418863919286678341294804915417981372650578835692399686286421591660404329175063561168612088505660765904753448818214626288044526852710644434200257326517739587337183025773239990320921039490550158064205070140346282652867070698243142071233682371547110244634262339834657580305008986535476042890963574862597023924337330433240743661511137192840525411367170783294896978483885683783872345020210660064346232478382668617800040617358354526026283454963938151973066097070649667865763515418830463537838055089036766437821808893233483239037740222627759336625217557053539899204164241166847660194234989335540664693628762404748821031436984763667695999907932410290849235168279303932795369974667905699893067335809595029194124700232127403223973442780692660598633810049319139767998178310278084963869614556252087475870850721351384736140542495107938180434685080816905311935322216460207684716502613200112791809795793124118462033951295994853355574658755196577175313549563134169885622944123852702280433830049243449708446971320159388103228695968844516972908651223920960650008370247332388595692714709834391845258971094061934297587543626124403396959243631621986987650446440375313332894968726552248408677688122703071460534618805554444099897708279125135141356442780018382248432541866611098968435934769993085223818334730351874288606228065510550268646429472211604040813258937802385785954793106772717529862215743537700735064966208301928237211969600614918085925504188870119370180789735623309092803520057820823206089857885365742091237990444258234132214732891747711710197266655218969653850993736142775827195075332752599349115508342760134819126084881363280873263385237461122864732286124839395865295170380951534769401760254509820649949969440104277592118845887382109244260687785528475558078229628417380601371231137127366246625848472126174202727255961901602269741887588227638157102062160979543951577773528134178505533257880912847097286574515534831120889768687527715300624839953171550434578966395299315630594933020727675167411027085838527222071008850242853484206292729667932598013258261492707175698390082088670837138009581113230765157332497547470814040329200418917690803425146274906111115054288739813414071400459789861206053908805499616850795220889492765021951191910969436769620205021517021245315468704295026775382545673769553500705426043345774961736295824535133022142492415462235950290242236712118595219693066708848740896943354866007202761918475296671524696774110211722237052225164305610257766629579927141436496851078468102984477069693710455884603152059816471382634647182809847965002436467128194564960107970915212545845190605191458438985941382290549918393982514133692614866607843907881711370572926796649118547754111597011268885923318104023608365858738067863017932975240961200148522504523397316699978526767712652985894210601586321787399696138574425693334751505255935588435613477481745450327819313588176760600615798985832063477781240325314175027160644112061085785018540832723905167767523795845033713623200791941585603982044355388126260352849380950117592990559975579048008841704097219678033397336590804903139491910120279720245123811187825555650376438967512338452823398390773202540604732180233487550336575249092795082478016051993707645027009564911265088744215381598611683929131147706489063366930917171688000889494590611249269891475400968304692004720026186422475195407261039512461618630024794268784555998108744305160102922359131115429224976774076980877314646904967793966312346400112130510872655997323863227206111266535184833367483440255037108233862309761311013123858050288297087912609814821205090709430028941229710696934739530027914845609098961325839930578133374708029115452300607557910102264854897290378088435067288075710734871577705236213825074442254191193846169382714647235752539702131785303180658992278658257823130276777217777881376824523959417279716617389902740581933117400393078583176629892778061031239194662164216105148679267116811684517166568395719363495778289748416186379158572785342419073778795960298233127586983899876026740235543792573828096081646574537958324763752563854612719563591228086383959428488525623944861235882967864497880668779740997184099928973245412225997952789033369233260459753358608441373258775461657554374060531888170858047187432090911207818953937921398955090800103202540558412900696726769188981581202012103050056991636111835973755923975701941426578287317094119496424228428988783422518491106692292737787834122465237308602543964751423597591104576807704084506697277122021263473996014227600165041367579471229565733229869685730173761715668420379242861351881913433750544255764333230380337602829771237301003028274201424337843669673978901527380523231782746131325622830771431475281686402595937929274960829423629108829944850671385449853019905992139283278465606469966043699047522695427570135832362569258059659732938881692751305544257976172089918355713216981825233088989216505675440427707823741972695970145817964302814314317124394840079523555409031618719087069039698175618612614006423824653691382263086402560263657420362606577405355077275379059995343879792919298272054769023935433458305700846761590584191301356636244386319168825153347723359394422905066764226962728466427543965221926544231439854492197305487931532908351109985069611046807668233364938835932479745795203999075600974825709891385266578310658776203694083533779853689549741911062460136003355000618787425317142672993953773484678848727390045371432784797729568638461932496327783545051781180311311486219967676611180078814531455259074349365704417625642483526487359647946828760034122681257365475578893160397349296845716300441935319189719020592925249860841834321902098284574746580784968858573926552054118602015678682228212738154726556085003752696132312173413654826348258652331538213193177075150445289701880930706632542127070289365143735167257518364347455768435711283029336419758340277596689812638183486602282657637691728865141408585442503127570299442355957387762281894162876725154642969366168941231125943709886439597488801217547791896649501769555864278571058514351536564707289383243281071550189045489692250351554651391484838418445509157390039782301348721464561661161142218650272010319627446887061018071273592960989039451248189266422345716482458656323883183809949173639064446613712424038293265560410146798847581966010513864045907297032071217314152502980633967904459491933364132368249077571444576846631814382271225497783098663752845085475177870440268319723082597596502121452880130167237785997922222720493238588874411942486402817835764414362037589174698265058921583925326388426643277415839132610653984880174335222287407323355427770782920755694675637120924760764478871247276269499587425818700488916217386812385497667555601162453666543734532012869336625385722911095598505398883855846757637397580553533730138706297145285912973154328699133478477116587630689440795345324473480338851311416478441131708423223688144610610978920085571659123798622280740982598411692614141104116503998750385590550991007971563836645546661541838549372625420973623494795865973571849479512377514053617714631678272972739284923228066473575558174286298725027574427012503024904097089603502615306851091174143870653585872729306878665010457600365895167960140161689063024359178257010416402925717647697352673886563936239324957623966703818251911485635186469693350452342825192558130419444417679631943802519184987462104783223679344643668174676820682142195438653620987816164262951772692305406830178431901856191584654920338531832685098156973802911426958306923536184903035781503591643031320414676275899860074883658622896619333392519373521358435902032509739081131722645691699738537277576228827051239013415373631770155968304252886012853205506814910625054692645188275523885190104963962743034664966489216902222734238216349477042119249757270801087467284984426353311569091299615862729199364878022715608734153516924803305139502411208277618647300529568688763573441571679944057884809964672494671750615606401182830402087610076237367158541104741132499150550037486106289818850868483068951860419909227910284371418508678486788916107601092582459312813124234855321137617813148489743970174196569550374630183077813790797603793617834316330115485453889380441858944565159379504792622200770307251796534928093073704380616646684233809728875528438273530469799224790478882294833765966769622193228159900003506611528269126833031428408897881144238344354362202881224081735263335490302090959521100837245440854641613281638867511045520619958014294605615940022391925819638198473234154398810667979890833978411511800201603836904743132326830206425689857012402581265750182099000153862336999024764699582506882330340213274876520461413677163128579085723541088088795483064737382313604219191381955367962235980263047762890386387216363754463425312448549812511326259894838295866928920950250476372199527694845083460212892532373333187310313928198826798339868985823724665282618575601579156115236691698840831291375414408285406491516084060578746430468858952028113038856937648098726193165159516114877123676468915618507420113141542702161449242226571747079524260033123052907090003129118846472208084803038925072364619981186156856398879744823275674957856093216800267781122205041880451885153372997493974753678039778170575595380466026230381901891503954993117589284540796576003140851934106851695468312874292840515580127940387084121915876586820259744673490969424922355504364311146892874473727943819941870098884301113928707431140134714331435991822414995163610967825303831218495049221164956028875790480563936844370302212403580866008023681127255178983608899465879550687989582530416584173110237910522542840237429315196919909262384130129871025858954978482152945888314726312339784144901297423887315990961264318390266245415188948479419537050218472088524534113848447434316569516341848342698674883968958801657216511754759309091583851131649550504540451182184009664605512551545301215829705948749723873588762999897382626688874816541226242744307079098989836613390952566701535884732731977485567267181329834772597025229105098202144751764707494470924975226331651966125338848976365869078142543615048174832801574828391857171126789284329333529237671216189178918524391131885132145272341537588764330044302983238842311080114078578559277476206441524262472386432119112373362474520549130983078197665245304143482430941477583863229297063449950798046456123452219316441953964264387541181094428749399851156725516749455558313152159155728776766519554313109703975120192389492623690873279239401357901960390120657342602149676416340643423831963349718172147103161047828962137554905062130575392410626483608834276351238855873891334952901080991255384712217967061500911556286187797976878809510802101509161664208863638088753380779235153425433151268002167216101920725594685808936985089483055935304478605992463846261014431572455343281788733276520291169997269034973211445179490040931910934235145245727052558903553746165940738097275060491022684512731010814567250947647518514528535779100350749884726344738753358073631466337410806408126973194677283275510929871801585714597592563596328301650101492007338422313033357191877930319773040997980584843961582712590443410790847277619980987878582003009326531021772722350408132696045977472631878559668008354746941268629810130417223440895639388833245033168311119376676129648362001144939491258922299174817273377814827162701921613899011455959512540895984761644188291780453145936927007701588790077333022540564992045258954018297559987743898610602934636618148512312607368132060071131969729848074300362587813167199530139880533702213336883915177805868991054081798444018014908540979083813839905120716093940243523104852549172209891430204262478535265055948189622133467968512540809846281284778962879904638128147595223342574597227693613816416513107819619190449746801335188903895745285052989144311669712193194978551962169412131021262761198581856734805728540208253688604071636379671985315197276868909267891003360908297479468834844756136634780360061654784775429043783060091070040145200713992756683704987875955109540613678366088457099204420138181530594357429751862966578969504924744747228187728890602026051016006080368297853955942160200458565207117502621350032306605333812194381099857339079531778166425633978910080604248617209614760687591796112553018635231664100529946374578668493263905350658499380432199634503249286687074941899945974223491135836858084626145871927308416784435434609553947766731603157779609964184536361325698426903395854954282514014375082762732302741105579533848595786675157404319881326406346797006330094460668099371462924251561607710764932330853477216866976287806072762038472015280143583548493992880861296361270047933035780905752593873668199206950632285066861605106894201308467532336571238046871250389558178805062464551613192743111686430572995747104805029247948566192084238684592964199660859896017949723963521721868353886856120467711207512290254243180295355508999521537601138965545472723113441372258338341582514978014687797621598749949395656325337969660165580521624239018203528376811285731653563742441711470333797614521896612039405147835926492036344059449931261754867044876482217182158463888159471161743520259340308764952921705100237756660174730165718409699269983270572227949716379204709883433006911849582670325595988363473753493549980153003766251865701420410522283297139276600065801220302616791846650381660763741730476844558472493046351410587945814785276980887682837291361148682485863923637697015558846325904269124476825202564197806772929482371311021621508484242210306948862916674023077424691069693276321486723179589592271337607481311269820338943281812903468506306687139883131897432968312871538702833401075113171230198604712627402347568987017625632839479649672478448786980472739604256201402341490674615340371236138071188559548676694120970931470236174389295912503078972159378986152973468615833816944629761493911835234521960232928850073822420049392873204997616752725048250934864544379326561154731250334633575206181741516822537500806538815804990462517081046456409094776623638114584990759242413495307037582935046513917940839075614654314661647387661254647523444521135675916041962175015800751596928459680228454560211309340233487515514783850413288430540368876058895066434702545629739462310308137541241409083732608760906218722045076568205859918892888722432584995520515487061977164125624747964832751234337283018596337538064015334604656783574855301777109146197798316379424151676974088406362054570350448468322395484742528726700593599959332218721758486328352214315362126325254292641552251385577493776236741352067174398938652100082726665434040419276604942891077909634881860229687584367207961255478708156449492023612785368652006230178348549685958659338774626769936855700871093753236774845951707777120659203990102312821660170357665867308176305194750887285434735032326591861297354393284703167238981029403821860546356987510273836285913161735905543385726469284942238386606445252949734532146279444357504999766972390853268798327508130012800583446623425635905098343269304538262092736379458612061431441969006588591988192878289862368993728146886171388080545986084985135042392427382387723250909502345493270854061723356820487998618654173458501650396938160833215191057654825009648454319501914371344084692569164870167525455791478812878651679488893510306214524632469509653284534455822823324438233431177152810507251359632939891281534494446516756077776038258297208983893304576398345713520458342938048544031954425067993909034344875243759320782328151058608678265374399263492609474619868778756785422350457620029279555023484110627486473720404832873333369998605509232608026195453034347232705983382282874439344568359235894659308586587904345180740367531447615698849432497513593235765260924434121012274552595758193644398649535506449173790706133849918364364630642900381844414688578220688399322177088716663887662250836716055755277815620343835386926599129149461375166964226671469569041372978195721448103980926170305765965025296164644326454757952239399344974812734973346440132044348163260802932812152337375631265812693339628111803049747743768746136126584350928367062712822802430578073804063985360154025643870267503515087605445894789468615413848000175711875830991311367277585335585612081659491351246058962295243530356965898961419218956842612340516234674761833208704487941573550660983312514943202029843755048922706710690138569688534782827373097117274809954719019112940835001360860166331418271569025231745194822542980797521629652661017480467357409484730121925439969911712136202475482623219860198892027046104619380021775547319500967784115109741416700156784183189442339186589739019077627330442539547823480657137878822044999212237457195427110317101889654992584055925313546397950296283982982157037731590623577838231909037791892089697287954936920845419376203273075665926285954762390444158413076338322994111916258960437310957931866198360132672990685091617072340285544979698640021151613976682757604967171855020320769899636080480847642096985564221900927978218731772378206285016241564319532245175995727519664275751907095013114415076163987122866485160432540022336039679123879755597325845672071246273598969157916788261780540695413318125098265062562834509167218995307476555546007360949969425126176946961817469659496170324888599723430884904705477011584854261914665197223166887201236220992914170928264883200345603430288552450318545479049358654812225400643698512517930287978647342934813401260555996934738195169893889168375175723079278561606625308740625957035969255184562807418941933691017570130445926020731106128261098381926080966472317326180112354279449388129300393695634975556513402253819742882491685158287014320548712488996298429013496577745774411213982113173647825303706611922323176747704349867616716270777097373832499062324993783261412285333837024079843270777616168160269239668919500655761461651505055043428136709324876952284746888605599677290819976915106849001144081091244727495066837819045992499598908609013139120420759489290963339971531382427870090198302324692306094232398755739172097263969339917634932916346803832775642534834573377688096641937831546575179922651828964268729664739083574530857695963714146109683929625355977281721014012969125152414962865470693577871494495871881946092332307589102817478398324119884941246232280965832673674130619530564867279962652532972104605664418793082356801643738264358984161562457567921872393364795606113225852341302640739348451015575381382646568992483692381507101048863881012628930291834779465531633261670906224687144825262562239916859733811034898268907790901744576003047656782371289448703763147140046836941335664416871929520069799914609318686965924768528856378909306253575081860414467842414046900733025607259879979129230156415841003369753327267456880943035485228721275573708640721998167932359821497197017852144948376905894718714659296956019601078559941435415930377890196024188208945590784065156748769964065286620193993595283086113323956273148188047314019148905323075699182681800246306812309526612816827024505570596762123411691762148889275275814986388521239832787181287276612814340446865559699663660392305729275743320047964803463982428546743212643025373740691281022051657688846121182723165667170451516267988340089903253059518997015679492206330659523604188168202718356114482293690132270081342118532614670472051341082573002681884246083422450460584272166102682158253522972805939495531179581714398924926628895004221291857921041677915686830711692637323412759661011087377488768078688538081407540575359977444145792894650010943948437108493487648035975836008186361957972478212995718551231081359165985861675821766792124978580004948866410947577387888929813213954416981252641300449079122221232986632159374075235127468700383611677866996836508142439435161279762985342679356050143347459171916386450941364602266653801119491855602070015203989246164480406364797102299027704828240402730229677386940826666395502313715796751790130775967279335111600844216857383145062687081377045742906682702730950445404607608840809311620627603646784930506533789733818693240425665050732114920669308076674003590028746929939319014986532230691533073606665553667481132869130426655729758145619072493039071287046371906467678168411370714073695705224398709080918899944169558743165563401404111681497476814471616043240255312627610097625562263769505131340161007458337571071824412077498469708415955417396300107475001256269528594388372155170157942352635682865520736803752354170452525385160510569861482435827476272310765742430398452896673099753627949148129807112544819522117305118950450764200249762982266313560537437347537934746041750466953921325208293628451912704263668056948398181241054760555764174677201476886511146553645559759968448567176494964315075149512478476557480181414714053980342184474060539901258083744475677416706097576579973205714364704800091955348223004177552456311813255822672867038857941081910508592408732808208156496247670056771168242280798825633328644962736862063746937364300639680456501615498765900027295316333043595048747138562367158049159262951432400638104072053242466890367603852529281912543023862349427381237448115894462071225535474524112857937708551654432819436938588964811526865796019390571493845107933275811638245446750125865466991894503845601184812903937811547529194280752532354541894247491183003792593069066011021253510266357988439592051622392920701303693987106909264217149017071677261240635137407038704769442327250814802517947732582401370201265703367908885412981395328847126513199314916687215739125503402514070353022246208615905940933469455539070279356835783158031880486488511332945149984458320720487613787468981845813205687480621151629785298334514577773289223648566318023738825609578250098748229075156328740995961677351027260940899416161310004334329486460131025808379776898275978545368232882175438033947859933336846293461137390772822354711280986601977955871674994483939229742989413662491829317809770152615741142000277024327373837348532556722617131423613037719709360567533723826390375736591709602589169533293286183767450844581374443602123093307060245581464083012193145597973732151475480834503041131458556676547400685460670088576604829779429541698404805845130979787469505428217858908962760587606916705960654922269424938671168429612813522873811652598804132537394886810366501084160692449072050816709596757811936457466595906187811639857967556524688313780015465839130511298847858682702267476266123185656076524978876119754157600451712269015101882436802035930801340627435461257415037819459334900465918504756213878631556680088323175426248374464139012487155901323163759032246260587540253614782161904423908388652302989914163656743546522581974165564252608723407999615110996895445445665650551563445484971090388161944889209070990859482545387965541149914192157408375920229557759294164058960828928598419614553372977160895220983763448710174138491555964847312591172952336814148552085586998623299862245434469453688725494449292863650300094689551217039980806951189013652748373880990684036711101325949459466938562170746589491567355585305862001200347309435104914285781979496103339005834365636347517458463548215123249061694944873468117197555880251735464262609836779431515000778779215807217804339024957073964009347444805218359443565431176832344575951681473741416672095671472935435798531546194629887570383966453338873133245456898944515536266001789236648621773129131010860282668709860279016748983995002709415279787823507324868113657764379381321664903685184005694264097652939028607509201748326385151482534764215975133693267998714266881011789494048574747756314068448257308035484429549653451344090306130113657408048066189703051751973247529581708551499323746747972646922934917531055148617419742295063456071531470194057890666623141138948022696539869510897831368772801997470337336124666236202656493896854277385300528274111154439742591595644457447301667499116488171425022452919126548224132617103956991730550769689097443897198649746074341852808113778512114651236754841208041455085887976003651637947839312224216163240955347175378053595891146325416555412483036822961360176343961743281642870833305065491578859786754631078772258064724419451555418288671184128891806707452561157419374881414990680028545041231323949623375281671066317708226805251147815069949539989363618187749372070222967866583686454192480703272381807378566831652586725568118230488627520037843496284204765554773566771856289766510980900325006289297877600720369126337786916467510008599914646444711289849973333375795622059497472227646163963939700024562435560344441135836294050617483967801785257488104569075491428083642666847346507789969074824885427279112666024872009499004472613769072255843182613968582873722471552305484353997700402729828992482372929091306155017298769506148925340879163986069340489795186926945154053915303672357436727513010274030329756700766335627780825809580054063127440679899522659056350804436296616686900892943179830047831935538977849491455714240596815155770208424978100305048976083005243233926023836094315947657651219422795604245567895549728205457042208806926829473614983065235645877823963715007290569592579962870054686203109435683715131540090531378395529584891844332156217105935071555032650291994368005553349424939600002933274653089726832084483992328102887595656562620322433706871791282735133513176439028084784484878080198972092299055606953774429956206673686293372484867884833232811050409496600053260221587822230830797681012352492638507202735606474389882954193888320420310468729553169186926182411128846529302505125465357524852816552264627169718891762866444689462982561526350095284819255404850011780986846932548030979016492663296901006198572006437973206880091836023932692705167065113130017965019374191990920170792908447081902830857460531683817291326392202225166879730814785901142594595425596438112227977700319374009876868468224542055267459369706896640666929319935890187663379702913413213799490357853508937083067537669748136807060246033990747389125801678137241184827004890387291802440064917047547351430754726751979343707303005793216075696636110202498010674959561533632683898152625535369034180898902683207029798147729431368722778777698078234095210296924134076384105508448412852857152974361218246507734324942322967072006411610749171566047984610503778937530267102274228050870672636831518428670498385610959913441527056101634364397280838700518457060576426657316430199016367341590145096178118716526832807816837467850008914294334463019413786165562090351021735088540610147761004409679502760012244368297088379124814815820897910945461778977126161116011023742542162766232173030274801390322466375751183785752511135771463470665732741883528340452303546917092745638992556531526614606293050306400916885625457624419067114337146378832937830375135464342724851236293731060068747466195115434219152234074806628946291919144640435990023720543004119254925886339949205223238575615365480295133293601225861920472206470350449908398989503149439611610654383704095751115341676753524198724359806022060687674973437970197153504183586142606638658666168648211106900297647906467179481665925585317390060092883037853222698532918342553547504898729602702511010174990712367770187794893728755952364324903482708723265672953123504199249860507949227986740874252202869420118989742335130550376425981712186380540446755903972931018274108298816406592378273878355951924422956935708909881619937514086669191372105375275779843563156429392154345814600613574844151714063321860722831106922762011699180222844738500132503008398391783412268543597017739096160183658045808873534244220966637026364766548309498306673195770134931452069165858574756738659870733966005792781794555571802939416628587166644345771560382257660037156475156401606990966066440835293238458995686620086172812699795952682036939270750897239017133360581803579261360261687102414030324687759585572148584798688134749672027638330286844565037585731157987593238937347382526328647109879576371908761574330416265724880923013108099065717422541558029918340219366151982989635046343920383303528217962770657912631365821388515026401198007196485407853226280390793055632485801616225530127098768184236769682400285533486308812788298590105252633952232813354243637508851863315943211417410417760929861308346113015356417997568068199871341154902112226528947656047255505207344029617681585627082303688083751093417751217118939502571347433215422550156706584291465853891453557593421080547618854337472033495407564530193045379428069347432911232816436401077634297849689672899537994541968439888839739883933058003707936105103371335096988554408519346916894733327283157890611768544161469597849168637027922269069307520077248325880973455068165105965389842977568110312318843089072759990381022076565610712142860884947081312258434706595673313817456501198885566214799938887030861308009642047497970030513720511457186777093315704179479548404044024440037012358970727589747957152778753618363285183058599823750311575864842317875669118301515253175286382747078176428908026493241724217674188617059831350751665589257853956542951447215844193688292829815883324469626471829177345839833001563997168055597249107537528329759966358428136446251948856395578922274998638861922973476673359127235745163967825543903603577269464123587851212809027502193102356020925657035569973688843749539046618561964626232329956914675646892420719605280820159403058511889240008707962048855767879999170412371324849850436274727250504787254067702230323445907796379530819021528526481561072414238152033066361453287609410519023621262777874068846095383675928889502761900318057454052196194806720646630251053998249701528371168531580419984510069306262248363216986463148314077800792248947780904719174700714506813954679172855129607523939403166649014205844118579644032477261706795015030914051809605056627424789467799896405914413088394461812413587496862376671861841789365418155789041109867710346547740130905042546192642046326189728756159178858419497320531883503163269798898868280155968807335750646174896394244483157245350298348171853496625523704443399442846811972183364222665220500505548363358961484106302678603352964213500355774047095120723898920966700438677881732264960941537570768238374389294678489888508554998513323245570812426446583379455351096328764667762917314711721603767809595514517475576052905437752871717528001974157823339588501870800505456285680437023064679025030660668971003137262240903710759928704316206819551444102917162345564358679846884668853013612005242377079974622329566187885619006356062466412135889185429617720520767972057760897170880060555429951388446010916534110215002097966741748458550528776158054803219591474930314620363781469443952434826975652155294871184644936319827963501237845796001879921891348649769664007740269675492079966210178784007453562787316428153549535283281368455744827206293853108364251319747474012003690193786040303488289687454471330435394404686845523215710004869099524152778110458570893387521700124658604357110546679131152378374218688857561631533387956157181138662957976235598584848102459121532454395546933845975464193899038510136686543267470599055547232538964023274468944052751544239343596891137739576754657903893244640609614668494999307764684863501964025199244245023786791917452426431036279357928872346107889823606434843450078790816641737002697283458903114984084421851057157900111338208439334537721601444007207516528431771203290792836434138831924272360816303851325044610093339347282470731223293838777577815580163985705584402936890505757543932454724777661442954112717776291572071382858858077792280491089548223383097891502561505997616649888969178613699518033991118366602118488583119950382627023731948638079412491993712845471816096027877401779910908984781267052226371962637935502102350504067727259957993424076455415391165486354804662497542135715126405720920829947657947505872917478392089105577875435128306401394947741990712018282025121340283100287054146909135544333265850449576639918156475994521039482498928502299940897209211139720822684594344722254465251547942647183077238711108366158793067728985261324335324678477375852887230631994935695932363350204630866489526866690767030901274150519669573185529184687305715065891027112411974895301889684409855252412747553203926510274033518194735580676075751922906877932089315996633283617958766515719380430214866684228695246985654505841340448704417902524434590236308596535006253186710000206813384713666614683733889887421918388092365813136645289187191266489309599850680798232434218058890946223200463604662107363766157644623776353763706067873812300396907667662725936709379598197987797134250506134966868704199077155138059373913107817710514671124933114131557126410074125799700040602764843779121729919627650395130947950365905401695377349255832510415259845140039912364556546916681020218215532447737302945546318525055612985862240773860095419822363551782324677959062357182682169383814789110659673950647815234579362993278658367651613405793120864192384456638126735223444374717882710651316186620658063248148162367124857061696218532041365084623500086996766378187718391440499258737764942120326249811521238868967849882013431730675910980060216914841135084420201141843656559563076686859442695061753860087323723282860312715203564271938825457188109324933687053164721206541460797905071939589745923398777388674380483535031531457531912727799286000985895909739398009931355094217600909991257063804911463652659123205501737331264264000768745142913639463397097839955741496033941635625458770492473258839051835477167624372336196501781087872597188909381075506373471974324600900195631012777642970195895607052540017724861661014818089399822076920446538598147338736946047825977543472833916635840266390719769388032851116455150206717486828296692709131073755738487588120965722580988568722777178123110335469252252110824415429270555100756961000680237270287830927313750358736838174997487412936531757427526384917458341825462500902265466040215740707732163688718920057613641848360379449875736257202006652692477588887094486170680649653574423212870677562666993302418345921582641583970610687989938403142267059433115685248521624309907486809401319530195158793782792466191722495149067161390190964211189946317263187572178450495190151238061194557857869540492936828142820672340784778098757410165585512108597112532217581256276258979510468338143637989247642967320062551856214747895673626189651741805817491244457869996263927136618014904178433127500630288579136796483949705527397946088744609429441588774486721285444492953834386489513141930030043289033651860845021014792804894910713908275289233505485890868318982714928614817656654088364537101773599436099395290431833371701169332111239222196685344885878910036568893372010106890904179313406449825537755477414418606817041284606002304476697514574012649265883069633315318691432156510136139860614250359116121638392674939328614340720075112021497071678800836343921483855599481299686489412342696537370330438220850107920599894380492790376143636036847351505578473466531451586513183926213189143086023781331263853780503897096037571973602862449590081568637778579772188683371889605171102499361205512276431747400649658011319246534896520058145611237215797765827510317485757394605461060026638121193528818788917453961715951663309385768448703480465080938406667738622890595636611200712095904710956262946739994937314304181719317065030914914498121291510815823016956698368325701998099244063753090544974527893627979277356123170879485915376392660459082234662491345503846340770843597995550596730601770454625940023951023741747369212443614928279457116262883378873324371596043367039171210087370861094209583785236784958656970151816467746702349236063884687424123069391290661425360573235538395925721312845628574747698135090489057141166323915232802755827147750828059387239474828099726925053373781459055576386857897492824831434668071246679118009628355532986652903059626280731343989365704351366197339335896177377541946543137007570283638214411176160650533315727960319700332280715953219788677474671123526418281440681621548741305411720323907025340171441724096330370358146004098424347022650586011046996442611736105393944879659282976039432947241084572583486381386613104269576778184375441763394697635787697579927768976298144654769985886082844884125513669983584422272306470385965846188395708472693222655001074914212940603025880270782078642356665006613572168765951093308066520483046062624678964633207153652942804805733890695382677900937822046160269608542149694985797170123720469169420279797363561681321423503790712150012670211184680531698119474900081429632875579481823482642210582208367295829712620933572844604356513692951920879192857136191863262240743269379791262567946368800068943412121099975061664733071810558038816064030854811422466745385882322228947759733621205335659418443906451107179043509998357879461620228297091365695744527703955468036827244143619402892306938658920932152365285415001729878717309708049709547293895654961977224759610592594295072616363238411085606456937054776836836916938383288294776064883946842168617094242916062696773858686437503924900974406486633998409692123611833062362908421299416873132692431730499239042635495900972548774487549629545573030285447982824174941164696949502198416866786225515169283090498893572606261407699126734926960920774651787211360107376561179312291628498515877733755130322124090043631312130629776965455759971800296448427825846862347436750124349599993142943746887651506183325814337096504781434939176412913700742518000487900088794779585206162785304143174334214243865412400901957695978961065099520599782220773719571360117474816324998945423367778880204276965049155003901243716924976364304772366884318543732827522042242441985306407779995033931554505169864758844224751785425362477050055238716862038115452891486598477429918909528105990173750315781441380765479104243544450250592332650656433666631709471633949151953578361358383875600871575929177195139173911024867931601964283776108609380997191741455211908493553924680577818641425971903040694376571391699871319920496310821016713241286481597310016433736290515334147841283885623233863881031459062373044641490472643946049929295241700642003959571532658626645515645787423883659400295043786851044190227271960658035317857534175917559370728156048691042427422866319696695324342348739567361742094424401548544950917940104651938219237597672785772874454086312287070672568386519545598494050444748912950839602475895792483964399180179167919573496771665658230632238445591337416420103676425748438752059951471708759159334487181043754979560668519446838280537048111005671163687829393185064172137355659212073617970920998021966824585225241940954167150568135630469915386978972836756548296989441669507806575743095026382249703199812115479550913601384580722813762553607589183684777103232957349653669638014404024497717242541901096629770641366791887842083929386472092118791341353934992453063786513831930200408389834918383129445008544207868990579591444502140024530328653152883852088406442639916694236293055287172324363452145511598579497393797203147090868696113833862656261431186072856034619679722538642020953078635639337733313296748592131082635247693637610992082614662777116032364733990388909994055920376978496580715660519337402309797960631214207282819053856161527123587775896067383701130332247849525040926386343187690185872186813711103093550696495800596357034554707597368529760757870416843919506512149025177507313491174293053038659120841548267272787257962582268251187824519852746727718243326071363299900194642663795498377721761159141542907637600783742296318130085632146364343507668536466069850426310009537741294120305086499007191099837243418171958301993767890778517901541500554185748105653907026316113783113729330895393255701235395292155884834362657593134761765894246509181616711414680763127901071227116470715484641100889580292745000721308866305476404498918014676108871706004225424459320487037011067634225058429277182136357881864821182633577360673906710696778460474344104477471299104256564749757674923376597620682359809122436523464485160321485276090018990699685861716709054800047158609076775110871313887833708514578604334179258496682882516786214294552752957000404569965022572699759383722853231271894243120562516076305313780720462536715159046862344856884266226824135660548355754884895553842658759364134403982130316272803251429451385743517508264409419527407798575805324122421225459854465713182337988343712485858389185376866956132634783905912292271796474145363058559980752217132291327177902051133861155381927938709637405604622998057486858222314596970209237536472316302773598416427590285881113680859442578268413697684070829586414462267334314540569786919210867690303044468741321474819697860768704806271531923966563070876663992730841545787181138481802659890001327726459821189039740977995664821038324782564826228402294127111697410400434408298416285971408807466008223080835388448615655133033368113508989087902650858495749590038086186794677594802306882933631874983388332332211729021721001496259333991587297511052587494005029160689561927019523044577340547685301916752121547363412576213450814775327950838806987945835761952050428209262797025189970325159084991241143858979205376215294811503594168926709805838688906161745433517564591877541902054537735246355029218449552151909801084529594026951442840497032808215528519253997574171965409029537510970039185391457226586411745759511168583863786659477364490758486587909753351977373675208758365668086756575366347648632643981046499015909244668983899092966491599692648512023672585447732180948239553962286725536685225468326629811951949285442596864817986836872677116225517657327306688587200158427850357617530056806099725136780551324056489660344872575345873067808373400147448657446592861406795487181671904117288911033520316968201312873615505529169696829699397694315110378827602704412217451982389534333063517567614853130876447105125750993620433690395754941881194619761869975432746011608161091095265722862353997506718730987768998162574965536801845232708103311962989047694796229404408125436941904228905274838592558039282246947168315806138512744988830105766117646172503254789903380588950960256861254306515255907569788977219961967770499275842195939037982642438194875222618794873026960463829025581060671704420561916738362234836786061026950045926260867966516259460999157872956467204744188720975191559014415684788591589511393590975828782095655403490161045527151083404141333394931005816582588027614898329100304550584218874866988966027098636201265519023328187921562839899115576050590745723359976783456530878417975852091085304570800696471851558802516240201693514082838855604952223036281919163593101428799681866382953548900872416396026878516939349625704385488961314134563223497246572433405188446598350765493718635341891385606402855938576376349748350243027753285302642660990037079729833894603050366930604511700292932177633267191505689606369203515269635142169036136083095952245768352031442472885223866087391108267053936016358022327176705066232818387358114948042150576745850381598245778802832285942970828583991381979744843307281806150314839410794704130197033696351262096287401682884442823989241393548645701564321110511110455235916704343984774933197993929926206555178093803468089397599016556814491116439718741105203446805253815930481153098206650527280860065173853484832257821034367548360460586483947967705081425757231218506053578579664768488470765510756321181876033736109868862102102771434403400019758747202343440492928254970016708035803654599735340624757915373442187841982800562900455817355477980556078815508289133434273297657323625875400320897947658448968494738270673278423963470457552438767783169279903770673632502561122043499474985437131033554947150095713730294753964403428410538193483218180483034786853508692558926842171844206939774273769741289522236148392303406581393298679851653536988088602768448896984520789525105205575480636226669962202941127447077283953929710459913862109429881509087985138883060939806213028821242150900640266706365658260932388203562379086412369759300557824605825637171734385642754666098303370922080793924734553449471545132511521693053615192082234320921223506424526272463680187625342240033633109807132645065559277013618674339726276171997705693037994341357064098059936516926104430328687127107621434946890120081249334246953146587988434817061358175958816272906262812186445407805264135087410528161673017696823804043962821917653941971087453964888452974368114107655780531942666119749651035165463685309365396594872461937936895375614580414609257966787308045731772389180987096175018952488006833382970584536443196389768834862904770753312389846864900210035377667273339438373059051473758939707505923449345733206266188420771258626880634189636921590532508574239865954088626415981813812714608564043982762926877295205413509284763797685893462883938410836657476321688476931394873494479416633248845162960454535435254530384835147942026896366142154870077939450756275420568665075137723894659751178139993008262222681232905520842695464722601720632150601522372938571003329300660459189801192088728715719039985951556694020492759873539804562276238870092121862920448575578502991395274884029702537994269443797253300221512436274793794894055413314459934771141003952517730565755853991634530952208761331222329372892234153378955733129657087941837590769742165539140334419895032098320793206915988506444492015698089378435409669055057403135490951104399522355018842043437083901516769158996405683706847117472032415622721291745412209298012216414917901090116558711567415575692127796353046407358429575552453567815352921605753525549999540624303885166384642488796851905015967305593398918112242106050280529411198294896815121596424907001791634147612301893466409438064427398325009304991844403387466446831938485932083767796937307890132378566328366178257876628300247427758247520438273035175747933972913372444937386090725728937776066315379088322223538842696634418493745285992018348369514158244584928479301816952325823580906851768826559547845943435910351287226510210200682222817714390875419178991689947586623640188539666020597603191528022041457893037850884829021247808521427356995006023366653705670878505247855742498755531746347668795107093966250292635164791441381994727104593008879571214811333430342898155833986238069356283207229162563608295961923160065297059739283425504642388795384495736966333338548582795183474203703046725134916236302975618661259831825821879478407304124819688027690654107134737456773789506741855734583280310288291803017977146887651097474864599886520179136488687315620560469065355781010446356946323853256905643139687168650255685406812016118075918902146483635432687351458149865213772161321705559070935204911593403767831231369382732168960487144927328793406247387617457183275553493850185851191704631114357511831809190760573708287792103485272170436340662372341626060088154159810522568999493069535149997248340693116891334449482158102280269677537112704502227771496244797056689315829523614712795768475720321851351847809934367030283321563831748319594708125717108235243311733137964115095795052539749376566432222590932016711600042681889668959490081055062046582627593276897328276600188615731620364709935723451223223793069142740745197121387422233237443516714566974321125633007942330268861109102315600793370389166810711669679218930777808487201201785800339725979079032404647306701564875875412716793136496523464392074930095897094549072861298175025467694486406360493284072373128430200239786027290995015511390604826958596463484382516720335676424336815509412142182991110948204613649594891623125973418746025035335367827377276756180002600011874123290102111799174657474865919971970953749563818124934356358798686210021505315545489070546871354178542094131034097015748291386492423131120446005044714929815182725562284102223840995810245475550321516458881366958481819759154791039081066232380504546674078197658161523038873016447332288530735150384573031777034257664773433566348057821531240570099349695315050108547532075380988347922046551078613254715968021032232256869846559444152602094038309643097448426136701966757996845516665518944972018312437430187161451279556744274587819599356448407459274295933922779461343804213867189724665420238966517025957776277114309602719384578704385978244508066788960306231738469429394806920267281094226613151112149413201222487961523289388092217426344868324509640125016810458107199239801008757538099019076498734059838085958656751594418376974358672577645462483501718000906155576029171070599944618054336173122104409357968573753645276196499388280147832259978310283591227346022272849492726091087616425540439687708649373215075992122860990201295566904441403657830142328666618672682231826354530857484282207938981541269589603944623595430840878991472420054520611078084012901469368528511262778915508456613491995878050500516532489382401138993999168379556758332209269952710735734389138469398705228184425251705731293450581562245872069434555057786345707153402331194045828281224658488424963299470124186087218856031564193152874344079711209211687823190881026413490584248977851427266865635744507090199856697803176835657552505874460158579526390514974673161997244356245074700511867478276251248936726870042702089591062009755773321776479520975858597862945541576822976513622796838432054546921296151886519623514425653411766559007274382679076483315794610161999985215048768176509750328369559030486260605031518127927109305755090212860356150573307788562879037709818380873522959842723910163148649262114549445167953681204472408522044110269158520643920559513590305611907088910109986479969323575820911160994985445970422123548014163371883026873701450925582183160295473862404763401580419788765335447352553506668465248419293408180982615563551847734578854076958182924593779499769029521177159469491720673565719021759725915062569016864727772126077396549872890257161879755402957614193645209008401425850510026642869861091960496813588774900942239590801885016751240647080173720940578001577193578396748375334230942479101875834885033704939808473398883009477568914572289197379146883094500968006330400102000738026467056305379510251815611754655974537571607553697627661523142771673460156271558164533172792497907302050612899328791866435130560005730804391145183108417598046241099021592313421879189482023152350989687413375215820006641593137545926227693900464706041534471130327872276789502099649813589865626869614062287306992852357708814642343088619261872115051421011070967792863109402577540400404793258716656167430629295433078276162338188388680190902839087836967735364732833392028964208386796006170663172486574672588856150531143003532455503058402620964671152329997453202230036939148681923295891321712054342873074561393059937886672317586967750447519324892142306972911099825223106377340497796538769490112316296710903615741358362821512189484254159416641809481511365873751742788091571429322299269065295721441622802143955957101964165849902694510406284662935391678839051332623497395944609914137305024941804653017339934007700866607703577578033363060763679143710096109832637083381080412014822764799392242009181187146379127117177289426325545934712682097284539209744339654014720878068216957435575617287325368919149459323892993041505869807807454002535009539926114512298858122607212491433049688220026073172288657820198363957036816267187040525441195058565698911836944150620146422817778487334977193542378268782936635267756949157265938611885342542913793388181237552105453804283745159071363201336109444527422185086936425680081862393174664057184242011842877147397349074204121596796242671235857263811765369890653894407339543031636331334429329061092186101707755324297452473007933920842271831361417849872634982450519209845043018941444332817352854351361066263390766906644031920628874787209182771462879072718657435749535675243650920400989975226950922244853812873039887571965740738164633304722901006625483395430728769791612458045509435185228461870991833756453789363103792571272959755988870231798664087955086030584351972326559849380195303056509556120165508715720701925354277059696054425528527925798787925564722423963950913417027045594809968295741064198698148635400715187416117435040166891702358923190289330587184963053500483373132782967362517439520241941193614579170238240711405798043722576120180901797533516454321903249213956104557654034474757972336812205216756632222852471558093238554919670302268750826956879741063406320473958173284772102991381610045162013772247415328222464112834307111511728761524905117264654537575198501180361045995154648404730905245639011917886270375567552274145061043130340482843416970494007362792169664188470993788536364771071319052805493028569628247686824430409400982731268148053057261774293112475480944776715054937351001760833313736312737333532869396151909849093358937314185503281031903688834972793855907585688828299751780946789282682003216022409396267615035234479718158391315342444856384559244324153734451380892697274089513617348524027432911613480254585436793637340578869819007780397944499755753062544385547069917339109006682765583738261194873559705086090375797047448615825814578992634809914976905559591913434617619542297502099536357466450365079388602897571825451388898769664334267999782251918472902511195763930767792778203069465101378192180470071926655180762342861693956168533566931677392832360082802957601503825724651598266976466365312406911439182040931050948576697214163455085938403885604334121317744562502551135834471056972062356506704588426215012765423033495163892106783277699768828942057282012464913224812516363446164836659615398145684331661889036341931676811747308940886067294665458692821155304255027180629060453404998712417390502920295579489273552653935382083104051690221934273834962043390106521735763899120577450001484444115892431623789381764359637274856308459309055518970182747034746722746317354476981211217886768411409308373179954427649909801882553900177153885516485086090496604706142805002254507718143447533788388816399259104789338890081153189612650703920910784800230091570352171556238437042003794006416948613890912219665572531512877812477224003118369545141479095712883494110613783464437833013203684155186873766198431760629801698377326676770908189185472851242835956479588713707250382107012817116158612284123643500963503749690610738246765769725260571380148149660281911018443004605085032134668594235541347859083115034849629573650751478300855739699151888470859902874358942502184718002058583331032681284887025577256613158142161256846171542193093061288539689376313660353767284765053021003795737424123622559355745826218696477607370782390450949419068494332989654485987657085775515168635149461498258280610689568457212232113558882424399839868800432414009326084110104608637342001402560529468174377320874604092382450719085991024672261871035029431390967516879143960150332290529462585599120866502160504988536517450610089492091415584943997594741242836295351467278700207352732647033211946599425327507678539364490920515643825319334350518081517123417964954795177675285669062004768497828763482469849997368528171489363826922761269878713319270196754609772304077496599048487939868331997480602817711577992333216680957390455734266821814954320492616316407733554172526018028595410955169137552150826814000319247628499616047379861387196218098025428915338000700717886651624265479478564322580180523764669844125157987105475928193423622652405392135557303889070591649965865543689430434910972006370298610882134364990393730982857798901842908327830809849438119759885684095853916014867586276159012193090940360321298446558241416278437348619427236196806869246676406427310301544148320455954473307500125480495905439007022404817029527830818533633287824964410314702576950964682853401136224265177860103716262041931195905992599706236292246705652641115119218360047736014455590934566409382895138330214812760274878583069468610947696651914076496871037316457551669882991363671810845449519523929007711602543261093114908362764777641613153706815274263330943735869860554844980392940711084184574141605470942848443165279877449591915926003428090586156752462887602254859549200037797076906468128129089306261410340590984389332078310655604860681546543901484235772227677819755678731656035234788483577523423936826809539548204130456258449246291588826040558720858437668381135780674792952910814886196486384885749885048021168219172061189130390669346350221134019265178735592997006023026470719788161479560765931662426611834871873631852391246027493937231661275685613413709300312581428094332212165631406019028322085504591593751602455097740196031882948244341265805439324672664303197971674232364554169071286205968143248815938473372741984126235219938084871007107274699337490302952832107051492351233047672787108862291068752662413765523697709591210096219633437231066368032478999045515305687197849191274228540853236848419585134438508886535965794345026119280269134894419185894819276175337408147215788011980606512077673596787908872740585551518556540977714085637262733378027828549187091664801528283450086517251950758981699586917380412444314012834475265927062274618888475863946341225810645130506196261262756878204937461549245127313815183363296424780976650887200453848918508135335635659010501995335739428542194652358891423887524365250500919768260224981405167462796250332091204922824848626379554689739401124496185398300409745080121035655743047925275186368694629832798403289581382045273753490690715597006655182945403530605700099003871564675094734819657528610097924536433952976521955663820102631270631589571264740691571106605647033229934422083446618337520020576459253457661531484381021706207394522341139530913906104576154521124773480273788342918453825634805351966609577872720533114793952957858354123451724401345910835276114205837667396384030915217560036809799107408290601688973224953936635752408395118971036800630081041432188861330312563934514874397479098712089575172608426554135152383490898974027643017182583406512458902128308108208360061998920876809840522010907437914865415916550414715950830303479699360045006447390467060031001942568857920699212245403521652949169712074129657853062205718718912312597725793625803791727580662957365397642231276459307960466340608020744747911203031729720774951361400415887112363841006133065942630108234355407271920309472942932918655533993460270501856190937193223593978001143429239374733930256616168845178930017694815756749198935390046113921631648097629864695995383459467592714909287076252825446214614169195122571295001246387421928483767613661671670209157639231995614109698199652298974129378527247380431371366953414483754841157446716701637746289793323097718496639078575213661616367562848143340410314980680843114817596027755815882629344949061506222307585541664178052703115960127672016505471437274417347424881360618265898890603199512109663791696222763814204954789055118848415574862432236562670081299645001565518749890331790355690168788324822250048166912209780904924605542724106228234469631382914782622002452425285606738392404607339435937467631213764605132754804110001849610853223926694024448481314012806866032468469298866600294434067208977945287522453486637038016130164950325783379965313004550949901549272310740939994361350839542439036443393761217076696107654738342862278120209817984619679407711805230642187236799761065878634160429141875797458999098927306877311913019452911632392305990136907643103600161338674266300906250749529928521040157809444697405608096139569401946058542893758814138797239656062164158170732570248880191623372396864708248147793309611806963746499104465614934856469572282834976129094826611769281387572354029230958738727037916617645499937185299266702657228378523179050309761542144628280412200157540652776173115359476820210312376662811564662680659981876734866140533759975044975755637125369272760421445217753988020379579152127383723583860499595475710397192400491624031279724800928013675562864838799493653909895257287616080650661996273818888925986929888091390379805281427073414208934199748089048906705328475209026484367239963845300422691160863230495117142545337059034020921792141985818450508514025863675871734460586941235057736292402316327770182742973397102118241131568753972090985669604889297007940901901756907146119111430362641045580374161658886932166176853203614172847381728342866118158431794470306294570972722823300059900175110935216066973345136856348128442041759921208763624249717775203793273194471874489731419694715174948162080794609180637811814920022994242809951215323922768275646452129659461990464081854156568608387787691124919750392622795102009488966725119704654207737286136460340701170629038281672672202604222005044268993263269428760751378684666991490940243630398177001558587650672005887602532027375076987115090642757256533667639191277709240937625523758868315743952198498146582569407181196810629511407312836716702921178068469183293148671348273680865629640494203380380503117529070692584279291166446727664970587454793684657968898196786265670579437056065113568530680722586065044680437244871802698164599122237402699412386312462637028440241176327100138146517005544758590748815800497956643307957871873368284130610438713763858618085284035557633812952414998032656819487215129751242027195248140843644349491660410731140043630115672213162450682506218073711271878872788368562706650220185817596804676246300806633272312056383677701199934379081680247615792183634961211802136419239143727666115038333612912464508296371705900339826490073210016475004290439959145666489636482212269338156200475555724541497094732351032322038536984345893280306597841823171479120227883991274818887044634814295931602680044046123375387779862262634876650133823784068312887806490422187503380894234554791005707419447832663088162686867265820423507519380139587505819356576036901265381620593638156867798252734463149021580856698819787614636708840748438201620881764511730349414668042277315660413837028051035776843716040081985414758122378524119709480972207024856127851204697447261264220315205762225621234321463036063853917035796296512878059151116970456669601619500988372787987819940783646378313147722555217560925886718596921716018184783131199954938140097727833795916758814018719974506638882379200617265428368292357477042132066545821838674037584058549935769845177790986470935388526193366770550021808848426319383485258794307061925408195291625705150538309202370538989622668886207110606708299368960054133701155707704473793136552207768396116130536100586556590275746602533498620213943466546659439840414166165799937609828779565756093013224630875303340366537232438747397087706050777211366893098730493764289070802609670149990968264650409196328857332368724951228349346877973389799019270205460558788754530720767270498930991567133064802492268815805306887049389481752956955187849872709543530430469160765202912541048047671722061550561870018660993780252903740722129260638779060287507366464016470953530829525455521188885329095352734028562939670503404339734087940812185294039227376133294771800388244152012192053686402753250332792715258333502442777698860617070346801758791879917125076704491576679744896471125186036759268997623473001101191275430341247712157833228247228053667419484940417611011981665932969545004808319386144172053189450522008217949980432069219562296929527495133714424228787546681302317448155233108817401669455845243650271282960407633791988183876603594839708638551960773534920126966765665938872421940756800887809401964108532199977332147421219826059914526072955901049496096287134805966386524445140414395933433444116160530435643154018216485470810832146335950068041531363460573848026981595393674140234082882938579044085948080039665530996923909268706855310085609070242898683263047140387164455950920174563528135535050771954215779036254355273939294217332426770796148156767579181287930352604488108152304292531411235437726667247504107023283200018128895000410818905949118100157808646375148767581514526415478040814141301924937762387247204541818889011787756721678990906767856186186620128883560592848942199800353537314827193956280778193064664571416004197974167727266064847141251508369895901206187081914054155736153670637005103395241084399898647708330819999506109139051950400599642148588685602981363659277073029242272101313781147821031374542890339722342046048235110220848204684369772090622437363961724600792059015354406702263015557053878496003146219663816272342015348251382946807398823514976293427435232300945994915916358240162599859851600443800948164828075235948616602963539957386083244918385803959595386832267413179023490637698709653141434263085171733083399428836784906108009775416538987531198978954201512278264126310441069684250914989182566732650529819294615755691862979243523601726966653853259364785916949455943390418671058346393935786277293992046208836003830596925558035427636190795342120784497108939812292434107444840377281442062971348707902419956652036064749218986761536662764148886626439641045283280868755232584560547744558376971853699107668824089901315975748817178951919137271781568368677377080858442195835827114813399726846332005433911130081758792044345898303509489874090415093465169516837026260532389284808373091621759897473730603877387819695115399445761948603124122761637811443965558905967058194755564732395710203605490721934543848260232727006717673391456551372361330265341630833584397869488944375226019979512058837660176862359858645966592447680540627088795262461464249822745158971357076155489064900069666840048913249034480639140778346590295675640272144225711001759751533766644116903949717606204048912561949274679965861471217932123065119863301486954325757870548739661759449420552792625309644082254891132448293237395254118502834183316338523929930051441371124000503170986186392515494374618973732877571058201392353648125460294396120852662110717980353499456934321295783454986391631699173163581706234984479244602997556240642840022149865457364050636725861107921980407496530225178293259257444652042565094493438300343934919314212873739268873501293614599792447513138579214299343010584606854936090844116061732206034655901678795244653597745907727989122712967708431823613786340327523996763057461861544196806187738751180803793270121389580560241758120057883574195466516008254126467508512849426347139385091389293636904055837289412022953541662977637391889724001323794999447245601907032870087912702004904079149972702103160530060832719486615142016809411374752616424102227847937861038924404319749971857867292318937510095484925638317987187637133475673384272378445269983320911165004080154908142035451405461640486831551178473810016662800378721954197999070792745083904218539000471082349246522031739993170307199831912932409788268111617213313185006652558046971064127520877262324341823903147663071389789289378066651913350799716099775672905933665059133668721942988744251019783810688325223173537244024662761517388563623841933344551679236986429062198978402841639286952382801536251560215168849598586530543361699288101729050651555199525547369127155464257183569081009345064033790032508403296006661375138514589409761637174053545175832803163294401339616193059120004622598870600833179595552495371413778156206136325793086420642450898564528856899254717681629826196417399112627694651264215577335240490646304761271017060357754521676570273479437202424904309886047909890649384804277222941915673810945479261843639686217390782150657373691941071740670807711351590702059096712336171073357012166518271147316863482048169214064222455310062131781197185123468154120235324938279966570225666816631044160800025355329398853944349252561015853294850372814431962412854995692798712338725273815491915996430125671389999829435077426146131979111407378178216905123137387729878911440681317800905450551257299582411085750139930646657213288513408635764962511488696994778326845384002983933073753436024677711056381390803950714401744519362998502339816345133468225218209445534730123635516337239412184451789779600703309765787972481755418587351392008733885261150293765611580264171482448807294111558467067278535993208148237873245303685987737051234582296704733600399157640192738543765752099556564594845243078926319663810914522916596979047019427663035717722739280567432261352749805643132841535766437390762110132018406186724130319494678740384233213420617537151939364374288155588327545109777066049475322063771879677168022067317775428116332429115411765323512958803917957593727581822557436059947092206219149335587259086007651587965930340327759486335587506955430331632203556367966847642044085075357849205049460530463707494993911566336896452543749657550747216529336567350477802794193880983793851601381657036217587668435796093107820137496974384466254539022223272002082323024387946715356100811970549297276920360177860069845093980672482402753773250339931627031312044621001597363029793451942620260369584211711237180431895953888571026980774572260619280010584488788330693324092696767285091778027841042932165670258859494127680635650882420357243536066499085092050917477310592238661645363250282700525310439332733233909580588938258286684631602974277726462681917668383221693470320871749442234097864023602555554583255429466387556855301701847418900484087135151048060013753445788204182803514700685561443588296176388392594707625386898059349424960022840182040121068980709129314995733660361187550201525153710606728546984854784403904535389883747026105250316485489852303313311309044144079946210822831700257645212623010201610219137926566998744121284121549074979322133211604992184078624696599437311261513938151634606117050541791949059255539792022996016325960764151577237620491665578093746449011592149849777426829189574520002622889858192430183841551798319839546639107011033159502974581613748097595391352775657315875530875692825426419945475995687382410486213517470537463526247239383598729321978303860062188502043918346457739919964793165954535213920737486918133537514787713321928900822573430041485320111318465591531081247088197989592595601249877279672849394520389716009897158052360348532500727977219721300373918481681158047742122584440652534362983851375252391718974059968875982601621182575085206829743286425623382808866286672012715645059426172137645528655378290324322825691833788438277123380450023336286037645239147547742304263650073937594444822981003522716106179588427033261010868424180393145254661150044781594644310151721042059149316296738739595178694352949836449736890963824464554367756412414067554266771443306592866370855220786004747227225703917679140659943783136517073485025752124352164902500025119249648872331684662563738204891803550252313153079066232074543761879810588958087869564933785872531957570336906223066402279562280463230585566812763240018982712155995879984330528559106122547837600248167142191246897115670743344723153523046623936209300678368046976102094917509895975028982676666474069782587449356309368177082629744545519436584566767237692380184144422729006461461577857316519858806800383788151109023971130168082923190178195409583349745178833749410876499347525681102727224777160286643820037976093321166063997649813673423359484266676131980797241676278239773096538487160121434406149727792824018948678037501229922557294668212455349465846678326897386113772409549094443005881905164291182596531080133946669284132812743951734780009495073938901088232367930199767431215966753510578180033644314382165885658879264121471283362698718131555616927198659650652755831674584748249477732992590595491439254231675602150837866662942366839704125778095870640866194749512624616322185677051835782106582787197145936356323395853103785008974532215493268733921742044791873508661491273972209310788174731103416282020736741978128645417624672152101320511177410991955894572631990045531874692049739390160986257234866105687342444855012201697983449431065555559641609180811270516929279443406590317065525588799881475922654435347479128761722261313772642788681524484927519275907369011882500257031408655705979939620827677490024587581590472735872580371309623040896725519338438623291377300223962344138899894275711443049242235609466871362917684847989026314341736578387108829594447022201848786847079689303667281060559384938697601891485116990233273221447544864279051675415013169568645479292338139589312868259334690429311926140520877804512947688575713079985362278920295832408374486837260754463002936725914615872694082676126423655099797362243709385106833026128686939716072694320372755090744210183549227793925969827830593741977557301890044892171180368242773495268987425361733297425203544218602727740318623324976390445475990994437342912989836949114468582554443412789788673015308650445601170541799410603041427219013112659790138723209257220844760471324046751019197177784100019574962558681593985977020500101397213855902939276588938797416775568462287091178474346138280419317204711264374866941901448243595639007118595181544783158459695765863592741278055710081027814875085964274395843482820349141639335855303544646708522079502725862750116429239565985811460240543186643986276417162419762800834337079283598921805815694931926447579998764323420597553387635247796372170922389325613309050560042920633928283363720349264663013966775474057450730743162840688508515464316462895612563197048824667977520507217825510764532860176923456797340614821932070042020513532199756692475334623746302391780442799378897393573063732940692589491307480494710305361303875092229831243782532200967382457132823947220241505426468559351653991344909394893040215323422978706648386812176581903745933812030685221503450696041069369965123230625937680992540293384269719248665948261022461665712269726758133704276159545537536727067400370667569526891822026681197607990554469669931377835938299652702711192390103633996641523768268341577145954640208185837961335669998397973516593650767769260578464247059386672953788478031499744223294220890457306700155969301220060157722207834781076547943755297433294662995210125837941962614950349479342780374846101839725076072580483643994819305916855232913248045630519686292486123121165420685633412989919247080684849384039011991740799208345388917026029311181811144360362081489016062460625906535889146111545829960049442359567177083968683407109269621507585628867793335367189913001208566180983417023327310943238029824027039486199173890705992862196809117566682290294081669065333929713503521954720855993856969895249898240358262465981672843753596635699612609093276273616094583573623218311997990223464873308709936015518972461726588756135277745132658312703268069556261130640036136083174079550504729959689318295428103470899195843252544169738429062289246067058681831492344706817017011007773867348349038130479603810387677475437519112153269781865727666558624552546406649141680531775701642495099736301877676630540203072410532571550091201579066683941785625989423795598948018988849933359140697095024758767101533350408191963618281920776825956409091222414998623650927959117024149327067549173739692928999739454071017292971705046495041171016772221291601163508621785359880554482848099658540682740183031134519877136672258698949513081486633979148986646679315896794193755625406904698852085803810240225281528793436457351466003561721455569879981481063806613699049847620072725957111763216777636769643238989857649624254433127985485977338564093528046758734885998264445685593737621631903157171929744150771671001305987930839395006217553114360847051693175218157392967862354193917142369362284624964648935818072061715631096825773197632573102087933909069995653843653984637523672471818833319271533796444626591972783514093386666476010316688608536382228266335993671336566549321016230471831670385684816684138305004159272662590267327675881152760721209399762894181485950474119868471077258693529952707100018524888999708156509201252592873543204235240423915271872819631095699873647011444405266734065751590966963607328030732200146520965802150093313226772282182880314584394452557009825043044119927018028754752419922473451317316389246523199939057987882884757638835882623005289278292461146381719824392393914369120352549448753582060986028144444730021111285244608257506437160181545203693742747318433447571457310480194794023094430574095908714929433423089340559546381701474773592953630153309340453964612101938228827958721322058032607309585021468288696751442624270661562868327808446179451020737501885479552011728731433847726140633005356656153237339223659926846556633365955886915201068894950277040094091307070946168055051028458044260743572715074814205157295736722547670341359022923274623395064827710337432145035319237710928732125082723895446067452750478156466976352372873663662911088964713145246004715241262552760579536205452694457847919198625308100749229340852531069804970222047050939506994830859246769331546958705065233202199587560682526085680228144554198570348577308419340850841421395881566560488437132415084960307245263026750427895515256831280224256874108613767030114312285876210910770316651067218528871093483172166793199934191069815741585733477616436132832504365678272434143726871434044918012754715821687861537813021003567056585517382272599767941139929999918449442777771775013163809203450957515690424551967280088860050325193131062738777994751249530310284043909808135363830981792571072005739588093336530456971341419106184290842153325287318424913607412749411826652053498878697797765215498072590484447830878071663828398373409308773869483566707710598926268915183968716270884380506539306826342539120884113617151694136821368113828984245909674562348649502434191869282303021977060270184793013170590585131958858275791642354781038291520149304665971282211623114106616113543600989693345790715279499932206593074940662557435411092306425651704790859937374801470088606782242058348248782705290238257168188037729978894503555031292269172972882429106970335420788510830236134183573115296501434125681879337081345841615499591467097080513710626345842731611804863503078924804017468433906013509203425082879150706709246508007595490375679957215647578250287280557979994211121457932059126840212837670513667619129431277879487873799741722935092791289055810571486784675342009510974533850088310361102312743848815942651752717251440754479026376323064132048624251965749517689718865061116822077558768532889317156111259972652764702043145587397394419429284138511526851369889128988208469756630111521063385436067349889131757038986831464589403912055554189336490877090878369481767361461362765463910846357730190067426414073743214950410143906260809693336316740899195832541531757312606714503931202216444608255401789862389696817398464232946543666367212955641799542348464704509643425508779401829835900954638856328659042799986846535886569982831093268070457325459568518066074516904143855114390985596833887323614210352272833754685844127669953602213175946283693340257164271388388429953072435979319334584785446111586928030756352454419195065941431423978208426011280771449343827385789394483925189114376537420065014951558423512175722562507667309500183215608306965439932649180244092351340255839114336313242505419051944949052804489491670115689513582357400883718844597238378470358873119691424730865322680117974191954817906156128369742180736707165544381625763812460161506745735327334958989603644483436608315168747442892928577282455400568177770306966691551998974640960206056150077940405943199149026719019085979897796100284732697735910035988973486980183565817949715052185932009914017166492248420158430442882037089878778414651389491030196980655054678695175107013426827311618775517341532490841384689412170435567026857167737987956875318573700982833592020857585967661505859409476434929848473472224146439116706015330151253203590557360201865083257619947514705360824340478879953202281761909677775438823549295709028604582082023643122588120278941428082803711561406144354437585545446489479666450973768565140511267832492811554836561850387167899121885224379424163280584729458988719073286459487844391574255784682860853880796725115766600294807446590877191067945224807996727593590292805264053971103409418099896152501085523181903021327084699180767972295930845899523677954622752487866035113578258789480887309372855568289643230478176459880478819228139299412495050389260782481071945544644103788332805100687759236692559821719389457152244035996444511597437945834260367573674374367685945387823870887886457862915233826620489547894941902785145035094801017407559209327113393258302480767579471071313364522548038617760410017624919476567968298323506288189525882405808342098700707694198055497499067087820245111318202134067362375373347933040195582973075018276518440071263028449910325877605762798162721443382791295157184131263783656436931887414062343562811563307718879981242684071708281578801823361227886290816940008199339742469194408935772554925825138285203254489282992264010337647616951257007411146124744465336299553509454015884327579414877141066844458634250941281850383560243958532639586712142744891051019674897720215670040857867200820579251880046477393257711015815337005340719897481330176013856149831061959467501268555957549362167374331527479836460458273113457609466835930954143056052488177833281675027450536366671410244328497174501214050879180487106843250424997173931167126705400661134194154788196061932509734198404176052332317827433467991768149374168018960084678096678945721400167683043207499899254424633424611100944599407589915831817753936772208118457834183474617160848971322188702029233775185636457513755583567783251219471372660351390703466018360560685432584575887129838776354774035005240951149143635815716730992178955639995899135067417001695456889504039827843566238966279299079834685152715358216147596971652887459714484832850999457098860210804322476272499226961949215746427214634400804762370548746024799998824613993569927781563569431788042092258298171424180301535958327320781387954987121510481655888241626804603234323272655287861188677971241970907807022282821768167649953548631937518469950073889350377000011309469346555851456283668722146452110936104239690950433880345922590903136377447459479559390654298230396176156486146908122899041592389367959659184497372674746079503904651077986006770085681835315528303995424715867226883965966296123796284392509735045185926289903580582577204637019679797236971983607276538723199227822126312545320417810597757829583117283029456869906888845314872741956536778824719874227967770135509302336356304625951081868123105931375669240773641441842967631034406000858102352495632841874934868141014059621017160761112173334526876209123872484018334135011586511417571647162972961683323085214553659126864382213255062030650914382902147173609922234479733560246970823407407171204004680599655826239603249759319987462789944740400510428464014008340843259224236580960882845745760297498957308632330425154869723956171176313821038962840007068384621641407960509771948106798983389573346109914974750353927091832582795528088100505957170032124545991179732765755868590800795399812647027514940337323064957059369379112761733384984109023169753922090992256176724084217771930236721315862899933753852861796075750296378316876047116494497440317390020685404790604605462839904888616356445534206410282480936052692193778391238553024785555366515211393121801603367093601175157171926105618666996416809384868395262601702073791242803962386881970624139352318481192856509651292879461639373945383534883369649746486487285531832465771508897222990884353915883983583557096854623725678008724465502191114492797592018844329168098224308560590974809311351945259009159695657821361775186768963271120517894970950616886715546142128844888380534069795267561808938451721746045053255762921312043205810261414951741096495181465894799971470269495201505880534740490544954973081637684023053730576578115407344484253039086389160136341320916205923998781185513850104145844243466036625312837869574055965013983488088594432614332185819505818032287115925529713954364771717150503088808989480105296787934111912305990315041631304480815064566757641271417637060327366695920060339463298252084097202621203917808911844429798810188952556557937096610745598000317822394589052388212432792121608793053930451334990679435762074320175333181335956905208358809133739687622640580909716993981109827182788709322236447013387669090529703504859538691894460495411374007060274887096439896191973473039266133671553439212440544257020099020176794734055960451078119547643497324548118754500079084544758167402002575056412754873310651044775861145347300173821258461749001688313328284749254607735327156361430603516757096552111027271307392463819801075708489689411301382552015332637266853574099971109160562805762698874169405277916291789888018556939326897719477114789156295148484573153253232638541896237388734312439991773573423747138607926908820294356728602089618549237187111540824574816153296072997420376543203264347351821578133242734837302172344130938295315994982025132031819724871665272045928246360370195574306577938446657195608195891044165727050580413907720065735148792966281419101883262121280935345172392237631921650814350698797743956532999405985888470410214373303544284092684647279116595968985407042065660078929302058398078716266090891186245248754638169202005641108277548736488903270744065848743543006339997605464994322758520870720424950956373293761879648371668382559951028828705874101299830436712696434705904411543074844361623419071591499852519484449981562471649252619830547507585758086818215677093225444317379997583873244595428832234959971956606810122036060729088275012413419209057336270238596595747302424798421847143889933354995945719015546975357353514920409393174190260393021882127309578542715782794984539152558415990726985717918784404539964591725515251123859217808146459778636485173926613714733979723093471984295525688804854808458284521800477583938714660882203875869102133568273322180163140031164247782372202083681369699496141563436266106341865330973170608097776744034370080830132051016242034195074419281964758099103032874233219734361996480161517921435626007799625640545363651109100218414501117190875064761698795134677504088702894235525862886269007796646145758820489663410965901303984669790269809678709236818214844548856028954333508613579312979786449194979681917108029435749047728400978272034368006396948921448913555982206959733074258415776788951817390593573393847541842510051969822534636190633434132500540139914294252923050698020438332501187896011130949846911081774005480919635800296459832679335583083325962429807920171329449673707456264466296436870503494096307354481872797005191848329391075840892960937122451240834621897887251473782386245583229387147458756774325995347366540925742447485574748197794446494658511280365418096366384628724776010678918571906666123650015763986142136142411375935716152633834078674552231564104068903224303202139242889582533024874641939111281021406904563227319079701738283191469406166071048756917378425221346924402587572611618561498589961873193504722169238537451380251876311204874805371419137483519242320846036511932427976523548531684081272869793562484297118330832468302398459299208747796892073285743730088791437225426597547328956075417097250362658429751622655946064727338245843263455786089569885569969754422068500489326450993353793150984839199389194426909152012805821355705632129178865363199756769464395113261046880636336522762985824393422876788451974824977685294421221560918609081302128125491225220249983945240866261912049589763333023803075974874302760615490546010010094905762853958346774467441786619166619383006022061473397529986089980904037875795635082428605742104622230224872036259384040578778412885197623883233870622462732397822740433182808926000832100180802031597112218418434234101908497489042233669931266893270588518190412932517851570817017146073988078493111384797446983599624699338894143849135248150601097129467885318323640106848668426509281356179201285394166179846865256943628799100184235751213554297123073982133554732487592438996981269509236601577952848515225504556523715974552092474026669921002929505376139047138374584392699720426712296525768643663546554382922161422194402194631652450436116735707501364344726609243526635786011571693992913229764897047687154170789669062313628814959961091412524023852737122808649376872216040873419693155753359011009228268245609679991796951059436524779554384634066393395314664173384226321102917250030726212730372818410626506523385504011207437066516746148363696776630572659627618306857908730932017010097957763383547104150902371293178029082492105969222874440615814496849214138447133098071499978102429539422322125678447491453296932550440165468011403541264057074939216651283934712032994337710526638737161455833010094464395743038812192497383337967283761718433466257441676285719465388242382983232712383244198703905223308526660054714293014180105218598301823479574996524801671467224909929373032420225943171061202584503526409335572914539149398196900930887083799593607934015507762259834380301323635251339134660839883264062336761420722859675744145056851160413587270992622124617666614237562569363569639170426536595797861063830429445226896520421212062720729362141236237120175861643220642161330394027408825913798513437950138405965952266842729143862137116570540307586259639489723619852901726437877378194351695680428908524082837523902770983497017697247884112388562090988706500129670556558489253725370501391151890183394117325077222414848904126492878850487308422346499815035195901015921700745589746778789413873378376288376212984517282587511881566574081668766114626587196985631526038575967150534555378816068947725404996765811041450261782219260379534830194023187867916839802824554856283978992437006507952052587340710785907032120957881753305963866914007265888231634058136539620923853563320037308903785317205300134984388007210742358017256443022807562170262231771571389534297630911373328385917610473724181570254489966312612613966357145053653345294706263350539091461479075925777060053165528442184490320442415740090453464571419602156635986502059421620401373366516914726862082653274172708404350037149162103222028196065329444768663424749024927071216337629344155010571491509307173859930899044699804757932310431708661216940378471667765408664348239517484207343291742297600128895914138656730141657275847472721405516441235221010006829185207797451709550145277668255984345584609897070827400366274034098926132623898638737293557942122757974821651585690392537813424535672312129821724925518012876203727209763905225325709705119775163806697353277756221469974289349784456118495776319173376898970732946613601327866098375659077252763067272128764757856400062293453644129240875005083739184270594206165457259321807129929226612631683577952624689646381310014484502301087123561848201969234281117381836329774230227375976220117308724707938436526979269061256130030211692460690310664302015135188040409605128724353873974155011582921608330557893982515255604796660172008807786676852693583149293139087878207583814591891759807030898706563033883862516870250226726322852903457160315645460264312359152937393790489196214326353058555032211192151294713672868818272665123347157060775436380994053499780269394199853186611333964547718059419140653636510414268543983242875106064574107415595939908671298619349587645747450429693869153938780029972066883028499495331177129112076946026564258963146831053824795778233535475220297381813895300304702891018684767046255160075943959277321535906245819536309563640090974042302058871601968906029946632569468585994641184832790729761448462410700098687134385163966487244891532982828777090684146452928189049731157451487738258569098092697332552630168022156855096333859872452623360342479433826591376535613001752504055654011854517616944160551635256680854264936764755442554144821277120500379479262786466169473959612875907519372509580190909698142704126262861705299991157339233949484056098568538623075504238630593012380198968554702979133418463202784567476785273871026820570805049604875006206365963969983969639803715187480313140224517342961089737106407979485838062498345647758943043218844916341280709938912865935479134715097413542092816301009603371766650996394846974955289319078508546510044038544580298692542110257714145476904495992189150969806280026320967859098467375086188362571778443578904100352425008747397722454489021084919620426020868577346201882158947423539423141346877769777020771403463901587142058514538667579311500847523457723864229029377346472305065988082712745907243692349047002440078277094370481147485354099075666628326406545483010370993458411868759598091935673354747789775157964661383529059501988322264039227526360159035343963010775231993834334254401772543412722165240265624525138861080225411876811799710443113811225901050029288469758517201273831515613208029887102146003851770703916994462253750237302705664741983564295022012302524501791228272375635873387198295845337850090390051717317896407486708969863980268467781217973902757853032365112214958705895390940111821865602276728003492219250421999985025565708213215188693166879761409691188615437639566283478305538773913794601734741320357617236140520838325550396472383632527832618088514275591230019974596029882242869460424115166199328492644973793070319836517134568721507615529884380307950213389790165947898496440072822157836497467915152557401194877536140365853882624678630781108024401902290146807476786613649833895469402955526308324344056564413863283778886459885135840271627304937302170364825070568085558101138735890440514217246552308751906340471328144488370550840763066311435923198184462590879781436420057365921183994783030516059753107965380373371671901809322257105422112411158578313869854754391132952549221772527506098340648555370275798772718159104128793679810699892823304213581335058715111520712601959182003074052679452772806871040027733437118006473698875930854731314495151111506408422326926372320025735626260460561793645687112239608512564267170050658507446087190788696415881714526334788088045862384095824159786135719631792510353369795501908160286755052250595326687059184427744132221904413483719170200087587800458170782456669503078854253773232789059254203857280084896237734608398587124803312169566248634634244246131873790438155726388106794992536374708311681325204616438476436309554620634296186575415385224712890936169919668347398124551982043719664474173035120874274320186004812337552845203044977186248120098514910445259296192037341256147239129484129745287461148015824880656765670873442766727464608069734341790529329400874657620991261463764091524833912197535328435519866236564996479206030505925238349079246844608673643629294976734314460554715302269588219149937149507239193260346420736271146047211762811325694494956187009421018125516875970757784217641139057840580939219091514914451777189076528434821193057353496753309380048068659362598228490591884144538808227976864156652543438842364075385299654242922069999599101673077534589724051846788288074421268169216456217466840212773862441119216994963696160237535369898432513276613740551564995665527860965707496000507455933163269739805576370184773807298092149461615821823619335920606181212542268705419834207843733265575436954164232828568220142745927378550725006213236461151645304930304732099841211613109289321355744444896261030970600418249212537963425005856889025585979555485308098543028546152183880034133215694755986915209473828854553999138673154404347314747313687444147386375482255494149088360260021421476097376495959653562091104293546550102505843072245447934946101824031400529950385106831745628017152710575761438462691217208112942328136046582432879177646557892852415686897164477443728994027804578139769941257040667016566222912018003205304128740766767775328780987013738963775500839170173256821178946081172673293468904882174761016527807679815892325690045258629322103266202158925372625874655945693707528979805026446069194239866675287235564349665279590876740993925010570131639232795394300852755128192359760986001566505968231364234015246480910081636988332429663449263691109534370310018335823001699006219487453316039263383923392083155807530257007319837332630091880921941717891939191868765513892134042439197322518432835376245674772621920772028844365915261154445597788206985496860646447715380264893752104501137165526751905251016491271795254327323765650375551910212151494280335185726599101419035552459575835042919270985698082199680672607508636992819518728035001344562320165944555179299350915173969492172305035207783695359262138180362002562357103296256193903129716764640809555596076900895120677871046460768380995108273173012744024012953580132439117446020067981861237281709412744846976936354990226660214899119375766859945380856855205310505932079775627885651235330819499695232729311412776876794199209547291376337603588273521396354116066445983348829582367717878841542748601152132254949162133617620895957218766420411729829618655151206853215392986378335807528684990020193795222664431364049216384218012051665250886923659893217549398280238753394032570803373665218009836892916765798968634918654303412724407628551849529721659709731374036052772735625517832440863015919637495655971667329223931021860300871287815776974916112499565639578295198342013412592929818259642196589562432849933979679818383255627328248027358781019513216760760728407903430319848939801868210695291217781694744843412586672229477293375944799320790989494707009787116441584405737124530378798822586483229577171560529530995168840901041141718122696523395642777022022468817982721251979647589881848259982427756527421183533943982065630115071734269955354290430884683381364681867163056130677825103306127170734965035802008026712714590588288264987009260952954896841392137778744390225366877356678382519527897175306137442192507763300931925480332245852736708215929340031295864789188241483455244507249861597983978943980573696235768467770220283266145356076245775324986608715644570291162175744500882712127141263691078118572797202761974337906019822843272136894993738370803356485770568621217333085903750020188545450871779022842983021817345007258117967784771745030947087298379787836067168349940968938522517612486468741026600150417916385067314726516167815901488687234971026054241704396341471954557951960993955283761656095003555998768506269840452115081775965685688684213927780530507719554162277963184303336415110964870526343276180912959482512587447932155984107304361342348376928451206529852296294910327437323552743134960906578625862639812426401508845597635889239380846354988293268264730475139945995867226700403933996783762666143286106160998218167016883527827485491235793057813505376616680775866771077660106841016091602039640292238624488061916873775435675671116204535098346748045426530118071289342186425424323504160167355025428479509352673200593185121839840358572274401890887133749955567050287115080752540030595523270914021778961334308866849100965693719279482100502517657548101965598902877363946919450399355263786624808173300021497597452400657594134852990398889348049962189130279398838519195457656264084862011449825204427687999305724887036601808747719688326389389787598954054783950577677085181294796293839317946651855685926760681564437285360805028543119591924987946876488357532134008177124968871780798813658618436093828474029139622634890540093397529788662096440454806717570615167670249631107970935238830737598860180374152384583002502469485857980386929312987855420518337908461689705116042422613638453628099472631241903335225964880722577569330210196885054815950931400976892523266608865867655546905150635526328535108289552546444530268345851382507463662676159207168500504045045700920110105061727402292156700503934719140693097629459118031704933685006610611908018446304651555032765928363017740001024011919206027194131834808999140552087298921181440345625561188560632892088227141155954128202657479291119604179578206877945520425155647528482109942894806700404368439646644265804244823247250464321418627967408570589674267282282103486602401182680594393302162827757682551002261784859183175356840622127559258076619122392879522731257051955399480311631716517188323607692015572868452151229006308987753582346348957200292960897053590253526155081331280876949342590580845472583506871515844456750627650707749033248522191617135883511742445712538139643784455061133763477845916155253381987908849367172183913723294596798465987334685236541653618464050156815993801300131210016610813341798811989043849371489866838224953584520171869089347575964394493051858826087947988238686019908429799321257543499814396716645935804048386521771320364182159719252636066265940270998306489604672055420809005879870182320601130056823099241141902667485515293212034857837466572245365900706668903100772867334426254715024345142880138077775200619181394981813548601029899640684004283279262625935823436715242681441881011857665814821832993967537794316516930401386539122964385238345792955623119835186344816480205351809119736585853035409483909909121316490547218707989751880791793282024964173258810860028685415633571954477948313101447992840849678836460210214787875219123028096946329058255134457618775938754563547024913903622372289581158607116930234729495509004581105496267626515940588924978001520118607661805709567114737626060370724080932758318371296370205683802125417049285444088823439788585313937428364320918905215131807842824945116843004713804906056376368935077524790093752070277351938378908995922599174959862575206955952415416019877430505943216984601285806926087682846080451863552674152746316224023190034218097096648053182444535204639073658702002989544377559513745430196291687648645075741311124290722596113760870572307969312405144558490765253225744128072404638387822197914446192320102722223182283059649660635916072559800435206265807142256769565537762769736435321913802966934215120090735187825553390474822818262993512918065894777082528186438629402812271616855640867840628702104942262530754845532317198301099367589697858551277912013930237334236065109714592955211918147892362166209622150199544357886575345418874096247093695980510380700834298350421281986006317996934061306466027351624814993702390593655194015995761920557986331957634368105577468297809337120328484605493548244105458463079218162780506281010000928973429293606224535392482868548671702780450547739996772260942728715826950585182286899572385116513148507261780972070124383707649861254113284255522559245896037741371932841063238150994375682311668813618806568762032951744075556017364973645056604292411873241698286258620405475133673173558979995664026269588302611468224853913801762169881239466445760938468515599283911477251563245583309006360820100705413517446298264964571992816144317477426645024494428025733239298839834340451945266481072379353022274592943595641500180893823814940444413195258523738866984028310202071689605446623206214884743408524129135913468298812924827639041166444043755141216801968929244644104730440225012383901891594152115190680305165494961654664711849978821126762405868652973184458208487545614048268615627795970271390310336414494177094436738712454852198493671456268473824848738183653259195890798080527282855705345229880026354251174733544351784633546053943445040748345613751396767297355223546796222135642328111990509774538742997482188008708716330141373631875335491348116384383125871041711801475580431861349545608583176978761254594003819619927690032546652941737841574161915576346269129392600956555196640998999302157276626303317716260444605232579162214386451654705600893718388831340498954881167648538538674122140158243974632725552348728876996802536594747413437993803592772998545239692348017416282906316346321796358812704441886112045950318798217359245520571305747142872409337064424237447476290901788100996812021843151914112367840393985533127531193120927784829346314557066775984977532727993652086444113528493611912087984460007972769336114075044237564500298275880385301876468067706380194488056645493719894927357480720580214106856506832386287386831873649136256534447555271458802891756039600438522166859966028464699780775014908428124882132368453278846059211768533687671203186865537562507430064593359395159737178579278197465336777270800882119148402707680038224092882422682959726947485767474370967148015834529270071234047375969208853710247363754523409458452199196914990134432446187018087533354085283262869579054544048010273654281258139741062550263768150004614137088858172973474102379867306155908680764961609003191989654012716426612411930542001293942979150525438688163669740555268045616685413703408020709525378115655639667169597706604660786608510220565664611528428425321026108446971656714098612500548098938364610766125315238806821673321721666545943347885656203972331557466810948963097191152096339616716973127977441413948242252127810761988672619039263438534399054853982801373579926412314020925020497781546174401939141052785740813180380890236299326692300950968155817464668309001083531608226504309170926444432448365093982226272087956086611793714793459462843341937901468781085465425411353993972744739009634395841748688412782989620199598072134806091819268099215085412432287680206085453006315527399885981664658623372251408846738455734732056882663951391154658612726936505176714082905208363507783611744337924880105859961494532738162013955020741876345216505952933380907401815009154523126830053255233086668541429565802361872215662774040831981142854565450475336353218978968408699625915776179476975485868410474012263778113726210226247483936711567156733026906605120506507398069591378851075203199200527611242038086929356288944689889475944496701416940853928329665721721255327553820807705298894095196305416870593173360564443690282682434646529823431978965207344403481007881587011676692784294306265228131633752276551650518749871930407315995196799755324662091227944391456495600571861066602152464480808061435518513440935797066113775575165476711714095625988515295543685938248670940298199569320536028774766637106226453842193996894304077680999540921580060771390995673601397782007338648778348368767919809068804611001173562064200086460648778191273183850674673746803562319532289045595093180973909056969033392223281845189621807984509742198062578833692044074803010099663375725693219494278598552442497679803467940264560530778968641328744337870539996877809177665238153173204165899637731282193516205808918744034484994985798098978709432078007247087740393625986090773353974514535434307714473195454518983423957959605388328905121842036931355058292082609234365936186096002987147336792986633688298333361038883485434804770519589991861130913118892142900990778578317851703774757962994979425245166727619764201602578612182364887265416273619509517577755812569820312212601586393623853959151932163636314035335110675386004611386074922200430797457306866626883753050079274912763983670758295776712077777039329014495056017643213792125370552405088434976286779063107439936768320649772289649224611322671093341142749056311172574900877907523004980376535379653042414535020232266777299222113389617489295617135987518359912621057803928164366344682304857805381787832346461983540493612736285771128395533559576570143660126194201673530094003146661320484476578718804377667341754926557082846195330907639652476243799810673669573683984232186656332540048641788810129844948596275596061760811487035890693630293882430154168436216659911454166879247265888722677127225871240630473650759607729221405133203461413551974194187705131461063225200196600354084238768254018477161742152017186796681351496195208356194399766807785688322896358056042160516945311829426520339637790851590476650397016682407567788564073177705382431938884875710848125145625359553410280217914792273279321879655005057980366527753807318166176808460831860422116593859489789746952989807139356234213461860911248315725878849403898837800376858188778080583894794081897096170673261587779150190655342551181116091893091607317496393047627666068463783278422111048660477901115195347240906395170164918891382458868235982865111068542279408282943067598270426855049592726530073606161787821306490428112331464369167260477931574128060522683399779120553910707552536807684560822238823626252739537712360700872899943803184859416874138764907399023145814466739565547043430957096507809384972858443063193322269039134087248139397489215617098356298134497775410838410013442088545966935875183063404201268805078389204947103005301207438032187394154541429928228210048275507911471134293606809748776299926158527926182297449002882405125384329389529842816058434463656356343155122116257836940152579019680539600555390077943959766263820278473734976271011489612122403759044241720212386792221968728793104593632439478816238535499312796341393204643756862794855346877052664947513073916244114959460676321919614989737170541645815558861493824292231297648279212134965618088022046981811220038809741147726735128696096089816977446536064421738931541945734389879925577323474821090222955389411159799846151289435429728112530695116629607178235797659654347421987079682423275814305620802540267801302353513089449847328432851223358389026693166485203948785510273956703647575759393337756338893978963382117821060822140183321950732008765362561909491683494294669594549691785764637476765659568003247334198922235236890823798034196985514258427997996178606159587356590808939157135463344460366422590775753353497811676344704585839095997797456692941439681417531819328966597549495265631934184344795092680314892569453564145010477645981689409947212089019472151430597747306637220671447131662158587823312798984435953015614293138741211329959885560030007261152944869096569145354447477911397456351391253942588681355702277584007477463131400210093314557178731644763393296878355477461527695699326540865089423938645269544787030085969630270177717157633559910128670552004475994611667225680292987109645003638590785386740266259828850791049209223313168297102244637770616837113194932942765518512662362045954087061779458281345315268311478041610957046922791000015706770909779690184775655228559657886709554561154890232459122943205133283115781147919459279414236476073471043533619930675153969759924628737289248127990984208757037074290617907185028889898337719662896441989553712795284286565693474986752549829164268153232767775300374430207433290336488705424229343117649451755551333089619364916149441954169269017104235623943601586977859555154213889723950889687746077752597473228491637662074392228796326873785649983488687528437083583594162271037181460372300538008745178997304522650075045858145542480720417564454243157489288833203504233187224975957276629995281404696939545290524001547647004461251188699052766142994422961823153194938093528832514092183985359399557318043638322583710897663587592128075020411020213810987056350409044374139195113730639686581011519606739190254353928912267644283139320689656255071783559363540777076311958913209882064103778597515815722916540252945350372014048135292676529261524559706404370478014487397455489919033493846124490271398439291246045292955887956934135285538547792608322187966452458536689878320176776331024828542983311567090976654484135188450620432195591868905084813160587656584567808570740452793052855379455746681692480323554384744715145390636232890069641912058846788893846849515080903981793462349333524225092781667287039427913723269798346601046576343281232877246492928840315603388757205512501403110701724736883363520857740516700090447253334590597567104577528875793099353695227803973903814463444899815023982898511335434097282333244909630507906859860053771568545389055539486231032945974410988808073487238836436836358130947928704274442872265564567352466099770810653672162086658390564962714755162313434738286651347208867918174408541947539927818340737460918952139768675822547464857581111889221520855595325940875240527242944489035216030018976525693941509012115632369783300908640014639609260377832632360884623692029349610854542746647876050110084845406306800044039373050054118915470307109333574445042089854266150491876706234687266198168935128424061036107030908742602500852639086055142787358309949711310576263161349089624886941157147630036010951538323808552298672771354398875513637817100255944273968164121104303156864062479011361558206415509761340175562380540621583383501241004504798912514921058528609160666735470080020852722390106124182443430991588658158008663249405301362761488738903107822009015916690572351668327682192317454344891431754468116650906905225968662153034878040368742667223056750926165748153877034067337984854678327146425514559471152795016307364222300608979337691246757073705117391055214999916498208789270565977741092985832017500951643561772183973505203929282460592524351679632891537461601805755979146362265925769872656104570168318711591747689782030727544501751903612001756009806091415681218780256141303605635805816893643040608150690914121205515815932503851440430654790740499129451785708780647395389657565568065763587398080002546122280654737735686186162943163407468370020941592000762768087391580649746919214467708622499526721156397220360561201543654073041266933652037343238659181583464814726206192613697736244287051914047864976617770497712785848278086864098074420181746419937025053532115169644985625585665565850783586372923584266073794721422115820590867100247042628456131623497802760720236925907750036508812850690554768823886587311298819212025619460968405286632459906753833936407504840248979186669340590147882920030152189556083212371404578075084532866805833213962469423478076496012907530359694083173937810752652214765200914339869554394308988687175671966691039227645826385046878319553990729603675478972953886653892665535460978878721758893318747543750241628067350584175596952748396367651838908036061261640071789610495704322763318359887561517401598778800450093210611194070870848152069131154642376895797842365808530834815931520381540804369713902076876864835539498973465539191194400481597437098130256465744394103708560783565240210771354977056298505714674848693201079013251742050828514499304706654125939425813878829844030096006031693272909832718956392104174464037744074062483992224059218681046140735780926732121091730992682245373893693570717629021268657611676889143250545440982038253728408866431236440296514246791633047964237318068331920642744122478671189918267450894937329571897455485703473158883553223716729618396249810558099058404055227465046063440603863988707267620877552669678025519290142357939527580908034375077069498896427193572721535288975848573609514350908509240673133570206201899067128551423457386141434464694816612238733703000937651961810017356621804995800728978035111023293939924545806319793067843889504573053573407716337630177842766385336029859952925489604375043979176806312429163576363712563777223915909585465390880890300127705376320698431786479228355382508840218690412636673843218167439647091028688687892665831336976124379001152707933010389113869216091148715562540467249918239678942577632815966809861976436476964167583551913840674145756034056178947188197914935127429667474359940686923244872459623645972472021466280563068452854472325727394619900367045539408299241123913616630671531790537372230822679842316602722282609518513279235256387518466305834936129205783499562121593902005377925258889355720442160720886271105734187653830019365921857393815664394011640597150226300988294365898474685926819068261750014349403054071911744605333767021098479040851377131479875285867795076331579170199127781120113587046932210997378599174282514325744615086731232878626614252753986215390918398358101113084738675247016958000142849611568876482720169320030449375515272428984664782787720422745192499274037629102492839806231371742222417291959993996254938097376091208005655865989408317928594308570399487478480700277816247722040910896548575422110535615652921387593069865473176842721259664311850928016727283748581448309387098735993742153888919630091685011411851395509784839946602790186594117360001653731135283293401918427924429266660910449728282032580608724969136488155052843875561709336505916066612425223431238447530273415220094676367541056494416235907684624997383668828761022817057135229635383080637710605410293729442376852242661011544908430025115509683708032549683130834666968435856300360604235843465846983453288412792257043431225980174685417250421934917737842364067691648487856208735646286966235682469782643326546721673795108266099240121983981861591788992398634640798855291740286324165207495142817653213822520343873416443346620653725821697719752166538741173137701011879432229955710010927664754398972540257753132038206968029600389522253383952765160572184526417984557359109564538884918371125811082670230453168624981516890141887571990552605658521861517059432995181930581975791015392026712831064806673928969150513494058133432642238527630513265264129795146216565224568915270483448881499575437353776752646986403720312754813971121062704784981720643587141389168539456302395814927359995740341339156836280998651630048512118805906123890456014729066810064755622417106243771177286560603771466681723476665168727823462336069006541572459706604337658517195599760973734282519394923789879544854025316292711086025082578055039065553785680851958358526371264073912190968536210689085697143820987549607993878211104691528459301165076305631408904410576236695861735261469560157703518157531628570896892449016873424888459546164422912815083749054414671646286789492639579385300846200513756907352972976966966520059270783106116601267299196773803851818792288539276072038819454588449506095245703682457838736077362449173514633062285689587259701669978191175404416723889571338523283541519704089125695229508482874115002117195666103571668958776154670011215367498177714466683028113692335417920683945253792339172910469682243012138940954980035772406999796703351521667234303322866297626551874362610367861499424561444932987443550946056059645428269134632308113553233307375783905129730285076129963512310440122113040661439604687883017598726763029519683427686003117043978712873000594559331931755449391835103346035610532807108440643809889686657636047904554862547197379298898894762862026184010818336729637557277631069436025013545114689199182990883253761330343107011595902780336811899306753121559125477713008285676289288030298714415612663804390626075215193961066523716644359348108997866627449813664388877417564707370875013911717192590961684750306039832218120069417545770133474638055906203202791136184919488164821546553599275143409639199459764275527946174459541276614600285876655602068612048849044807102621263477427540202390321699139947967013091859529098856827244163031552851326721767855797809712321778047297664708184746051192598319244108439964566016782765441936105989853406897246148140833223995520917818734659060378693963854745945292405331583684963043554321469593573410454044257748364218899064016894174106280209211038177784607953825850045235322525723745468313223492358583455005915371664367547207097781218732085228623240566685573473924362933446170550005434643751832775104826974975891242855206470452796977903052641143988838636380882467507804670138590754211158414773610810012775750007704292366702674892532738484637980989201425492882372148048364369920111587888225606064621349876252895764804428572182939162022441509416787632096866270474449505184299834293572576915392320773525719749930227968894010634464180911116944140939834443653357740764845686910439203294702926119107080707204278752657129172174289878956737140730600330337656555949250410840493778522781935775900814294244533579877275077408840441466876280784483839477270115613269514613695553565115566824990622283636211169086081742054063411273964403265273000117499226343859290898312453057562880214961202373851976312438262865191307885686889774558437923090171512753601486216218667276178429361515567385129789502760402898854600180292165558074719300631008737211910679750149716486714305118555029503519076690979997649452830322506186371816411569370893274859292196502113447151818485270798023325557169942946937499829383114739134165496900074813176332012624387587298162132245963760952171458905686392920068615603921619177959152322533934068827839197924146405712967916728729879859580984202158103933265899317272917298834310862895661392907887770229499627387245653608290375192370068199286981327081946010512414953064395535015530895277162189046990352540131731025233294744949476671645525397753596016614705988888861411726269130135417448733431027827658663610508385669961561401473354810355818039499489717099319897020240832840886848221721313086531767972805068205759525116856176405460122135292284927129671253528140259370573970168823545307082325008404321128399982501580783335380344226249449248894646838823101527064888709824653412299288208973723591368131142785961344243575787845713183108044885553171435138793587401660486154077388603359715899947419825938199642552031638192616747728112616781320970161529696649679041594939438445358136069094063489415303847671539007289010681772728189933130137597228333212763031531562994294836577375922387464228965205985755640047965239912147994774876874606103472497855766646666778506307669298273272703450887735513858163596049561319215464553035219002714364601671655650477035073988192321156960277219875708299298394303316277455001673273038674532409875325555792257922099534934909748306274895962108329335193715614966819439877311824663433488267917914739978370018897639701811171695564880359187220683198382215148489459704611255447381662386409390046312986462939521047753058581109110119417612621533982975609188686596656949492373483049591971216019564575070646210562448928270559423253473642217999448469750167366213852393472127799972125638843453533084278181009925113959906609009343349214919015004220732365829410427148599754391607215218733480658019592181000084306421930975767836748133135976335368603649213411500447222308497481165026115661753949927881044907723762361412959815770247261933430853164042198792867416408032848260517820898158722844729497993352056109255895257413545394433033404782950594555852328797495455109628340967924407435296195274030211922226285794004050740153249068496298126094931310416542183302903279964979165487659354099910888151050333160262406386875076516907648093539201302041439105760549662412149939428254997021687993649319583969338153620037250241795654392581938800643450717158688958824790384878933762666959911459598491561184750009118217214273733972786109574814588596388409661130529488999570940016760698101222028482819153205728978528973987404449857455048849050907433112192672204186700176418746078753940344810823925700266776263790321625705415405692180679339022236671447623731638256842366562567986677584437369204547947897597441206603843697983782519185899688076583076749664668988951108048537590256103525626716346887063372015053431050035340727190271164263432255820201892781647501128440918650635001695739791941774114929005435714587349245203414005214107207026991960314024026096413531404347393832584205719353235269341066915043093530914729891541353680897406105578046564925536717985143647297927623880578076488248208691196505351800192323572479668122524426960441906591198655453543845771790227262941752215965372465308750044793674122497850045251624859956752630919867983536543275861611499895341867928371041967495739009541664775491546945824531129106705761842990354810470502624150487904725719031987622187525632027725520296101164844135452666765363731072221315938519907432263494683754094114850251961511711609735098438259273347216900492569918639441795132584577531049359104890177308426183694151706092784887600569878282032184281098963714876480871467192980689404375031958004586812023753845934983574627967692663095176217708462874463060857701596091107482226077882730225373780830770750718354397625451850468786209486406299684892802708290863150847454020631597183122104662810233807368081761675472451332795212547253598589118668176485373280795910456793104375605532699814830019679741575946585666298101998242415846826470915729507308869002459100736831612411315386951032750999917918645337414141231312511954891947167462722269414900047240939771240386379022940965349966698671121122232881668504836329950627250659120897157510056635041406498302217511335268624304340341625367252415393351394120897352793484546993747641045000416440230136094080426237230689354981185585531655838958795185466607010307300910047295683958889651317483959881527468303295985473698133062273799888409883015396685109563327604789875568235207800878104438610011273624003706269328203900721310180110278593022701804844072804197198248613845065960164245163459139472757432817018895737686790588061498348635811758026818011299852096903916332644956018272447163403122067636152544190837676233381016298675749276053057034376705600878636223398774625974176990767392614780125300029796387495847346626845071735235792050566691753184258834896971205795723813493035995348846474699014445317796999436579967397656926259754399694381914874031145770988373976900879088210330813865416357165987917588640560299862255793369370466343371161777805426398756621980321228242958518159162493355583745916238896372016537487518447781403198586541678997692938248789711667475396025602149437479508791184090716603853386178300783485566199383093006553354027382428617300073085782162526421912184831179175692308142468036337579742210036618369683447850701241405544009700626834354497475630606352075199856193824666496962024991252120904131627185889477381829132565209017053372307577060247956542425257490465665274771269578718772964344944904091989241662977155966246166441858562888518377275143328953454642313611515802421867792383280734137017513798814217062699167480691474485354577986583713978410027200197254566539620822595975269532322288467480209039910843115285162882721134413054725181808420932922799988590096397036900821567879225095444591816015542750204539094372497712921504076726250296789895903733701168206356803560686023711330388061707838366659766099170701496572110557310828552493686104454423606836911397150735810775273808558716583627017188856537229267572284265852646993311468782842597732307975180699381231737435206019275138590085843484107915428696908100181473765469849846037361690726246337160287525127012816480690914135706579933763142330039666363882284612282254474202650099908166311323488741635153015362100350916095890379710016254630964856381773713805259444073602782337000238049070238538209991338414098689483765055793432105624414290196134374267176194604404893719007425206946009564354909578555099029686806576047474487492269579552266807653787925481669664419042743528187007869417588188795503216576952013543485511943606194256283019837549762664547613816891242386076491649727726621504982376607542313286917121390571918880167023430449393493860909712262494899674312823915918307038241350421442004246231753596162330072207816395396316635839534400766013344557650514430401499395640428760683547583769881174920864799028016939824689347686161755444150980671187543731696909260503332520480049436900545948740316869626528562948105621323715540775746685961662194824647189001852978843261875146256530475668359480649919400744871346521271263057422187039368378854451502226239419925695072735381322043919092938327068218576715528729802653414644424583620560227198314012139918055115838079929135484208665339880079291282148265591656292696034927923603423976094254397358032325528766254065184957248632165245011832735206752421445540652696612913784909311359643799421670300788629952761179882934658801373913340332584711885963506613877998475195724231210089939331702834670502733730658264711093502564211362451596674214704594906792022818365864922528543568409417982905571265352226803948577196726425068052640484393497234698864459932425503976870601679048383681862470469646596745279473969578937754908779099448586778362606484438014719857236284834968992452488509586092819146887127055217203078070362373853027327829803336411607528288094387017569255720394002734872893786515799919798658302716287217176629236953086526273415551305495387151483418147536282948856884996809983181603108664919186096866384634644293237407307894162042845986496897307506113655780268911054483054999874592547565367446248527850078477284476351886067696825624232593397737092694074974381086436681175398036778562603131960403913891679288631485908669204562933194594268341755162840286618896159619463203322333963455848424359342774592291378041319253690138951092250183575330000139587451569935353754234663396120932182267156317478793654673768963483982776541068918090057423695830293868961858542356282542232893360484483964444652072956544507348606605833465526216680400388384561920553258208173272440053586377481886318919424644415700112912167482752117016887584211659713686493521838918440017499833847018382472134822404259954017925269017082692937686476889216671335376906930923035493142472567409823613432126794906413908153674212273063658612500226070365564307967505023322706463698978642914842431805891011387903508689898685286915195304957350613592810962516424917353170406240308374834590021446915555798418426200898677138425454882893745155493416604363441837099970783132332405419168375919097913355039266613424285006777866367851498290787644404191158886724049560181741388518418513306260067476651142187735399531038500448657211701589872472995556367671926458494966811382072119956772275048775861608029187164363188434586512833770247749813535932779645227176695463926237053327470279863425981611296394883827048649354553698639941748315134472226981290543689484054233472614531053352219660086526831230926454269443599171254352369431197575584169780211683721757841850763788043136360191810086724875150231884370514243064739742972804357413844375394647751408827963561790064457025931624024321785244743923908167363997617469533021968470233825689483181830364254923509078446525607003599081391650966233697388057277656921513238570390648042177469630544356795205101531684892195667962909266094843151074998538273737946811221501244905184592148928977081168297797649582492675471950102037320076744386630344864085591998093455781296101515510647844076340496908389258126930672958380680332758369216785435783149144968069717680100565763206246816125851343496981399264621780441628258687762685198518876566490221740854467156400700044061727487328037813889242794851472822500315116807121081777886850918666221009183147704616983882531737402190608292603912742442170288864998575258477676586411826303737905068178349207481431846217875826103253383059398926352439625222661414107912897437348387082835342670086744335235578152642272322225974620544291581559447045704740473734742608905663563729792548821261138302334402535931304104244793539813195613383371108646015414853735100106237130582418414687175693151170188072716341877605506221416724270941767788627182971158795367469147246930247194159566188516758147825123887823478805017841206138854966272951368086227640058112971273925917947726553763932661494298906844745698966467687355619311974598176425793525045275609815738308879019411511970350701283180239688088459540887995649297053048335228977599272785288825659188857741157368124965020044347975215709545952449650812943224548568227010743207545812358025643498142119079203798435831861721078102830491016806948621182761622195340007443760446381504611121729025171844353563509141216718814771482673104403303636268083883293199556525172414799801070258583320609379081647584893221836264722982166571982959137052511388219551796042471452233362227271388052555028952206222428913533639076760703482218527062533365660517588358273472482897664098932365465734684567447612452789653655888027877246753503521452401538644746323462045058932534673626255594625013697352914557987945083742382348319164042600533547753949960761415692517626746796599130841467693229426760740899585195473702295796068902952902183737907427368577518334254198553939997956569666142302723065928677731641333435316415052184482677977204297840839596110881030098738987291536330387449589293838984024336153924587969687051426507899821608900270738184602996708500938379692932090142741892367105221314738784887483220772688948017553641445459211803062106665981952558315588625637192781945107639780009956470105131039280873347620899331850301501422192154375792559033407951394048184424300481566143282527986016333399051727954444613772195427963392186296202600236892940666174676990317491224342708778737974560686135870424202765116574773193762680919838723980227680563464233898366847546567019819750534692771129066196171577771981566862808959196223985464318894162626675974046575499427863228159908221278324908509211183048184655891403746887795763307752530066819449937214590508053906558232198548184445958526319124622124213957504322475164289703508721584525727016909394293128603674542399093690371004776765709858723488791819829208534285131112246806210340655330949617011990233252289303697601308452372395050535708450416484699326637585841421417119204602498011586424087408049119390467804286339077204363950108007608921949765655187034475124091031491287762407518656816645195843020265481859240422276418146773381196339128235621246438317573134461923043188822451737406318808643557163035307930793107732662450316323274215962392859845148511738855232747149940872355076959592883354430873127648028116774590880108906780742602697032991798696560564819710553097407559771312612049837192611620805592561955697590745248968605088478532919815276732437245492726219385272459557672110971153669368848850197412121424525959262178711160196382015439283661440157936216726174620947825904135891572629599238110528161805409971348504937689960564455645932438355180708837544213809579102329264173603207454931102317128921794970865175867932664635825800744409152132478258231562029547349325382441207483344251812521521808889716218243525951338044376404005161983390719263291929964021545285651469548570855951517501140576301338609794352130517283366994969845794434017809789231214730057996372916105839865535218378381578813773265015232011058549377931952560786595099977105032882548909402224224225947059905933504190040301622767227341144225853989837635227417342431564278850863719842213928160109815575589329884743331140265092148187025693744898450408307078014187266641363750595878983365635825753323319142135571804096257183980132555249459621862511971074125200372797472974509290656828863265093333176037125893687504687061357734298393948276569261393837095223233979623480630585462477662122396505946738245944715263724257463035474353481725737568035403650446845553555168872223215670343165856688356116998729686926564870256260782363573946896892824089305833985652336646045537948916023257516247120672203785984566291147354612378595637506994374507997503873211640665216111870989075808616721306605791011184763704822073109543964877804056036089778103341467542096008907156771570243775387322233825957374655009602169385958402900963574884578785737231833065178897067189528374422935310340663118083286587965810174682330055331372680427082624420469874456541993377291903659301913706236262868518038375002434119943687830568212517072309109595048305284011211193599803885174468592492993542306784031977464410037199221811343674658454656634431044998942632995483688240983425422726766528681147954741934104918443383534129739933580418621782675167827499461586309839456423005424136917600392027607453922274130398310964247574307324485563090230677353287473458263785826374189038902356712693846371126133166950352737871461030101102323957722327379150431166502883325481085629175923128514961993865504189243306162497389430286925479850321284212464183341704812820885475259442372573177304253549778099578059991574204979044511995759997391171048647832174895847136219122102178136381460758875998554152078846232035692765719362752364448621693578822622585152455026081386611066713220699572798391690421093192867459337762225668253140391332275829294307785342879507728735674001858145116918077390384158841865021930363798563432360319955723308506599198635077066607068382069778856507281434610934471178996225396084267044420045939675170197639607555337798899559084622996150197887090985697793899669573866446071907475565085089834274872025603287274902278823852138762894655433042704392610800824308428376262777638665088270820586627423302544084291423238754627797532478882759668232384774776055417897080358698991947055044142280378560252579630219907020383827483427031031657466620633470214142338505336589937562019250310143122045997745449214647959382834490631772751067914447947962044762562314362519740126829936261597778747792196452253079503143786306520302848924108338181837379071812188906583976172652502622846417213740408395339439031476363500690917501795246293175600661230521136042795948942819535555447871203631014391576363460683095871190369786095608682627094252654064236545842164084964921220471469312102499131391971432917966209402599273009361602435432724862090748602150476654708076274280712791690921053213721683083655455566924844331648986454998829300619370221383910406092090707690095633576650822019907607491480606125482387563601937778781137712334303732564749783207856540715925578450350455099683494069315799771352526258300734404006849316939267722530824401527804873846852683879967623778061853822828118720290300713949534796019834181557797581162864829634222957920816937959478471952280414323164359863800694448478605035332961951171954776518315885991621267206671109608340540812051499283959049760335035265427739322721494254130542893667264414185808429636026603561235879074116043981830383564329458743762723382063121957913281779106736605056342028905129571587531165329794704159409235732956154457446365810834998269004327850688226522132452530033308651942284569198255493134177962940406151265688833346624057235606114401971708314273872087811819823773189087137320128982472494649502712927102922359204845687667214285466107685051909309057510588046855180573854100549642499845501089512620972294527438377517764350600643811749935664898551888104671636480005190471871636983144813076193454828609131218348351384503612983196338592225231697978145999066708016457872679931427378207112773934749643151815930893247496826070328712200418494865621714871306013131436122810280733075208024892315214806334750243280943694337882476114835305295976663314824401468724239156101829015657190890797961829807460773934262080161800079834562061479311575229696276038634965811941074216430695444064687503642978088700467582956113844398425528355052587615210888166260780673228583082478097244009351096701910875823356238993351472468165309314385889964591620521029193541154740941741171386938367226467463543385505555802497246007701820985896647331311296648356830949562719642085380158608150774319079355209291946175419709135865937076746244381389255941981839099691040026334078002631713252139027119596478364738903924620734828507706914328501835098173607505241580163958768521484228029783274313179544897392140017695145906474384232338890846562624740104877089746384931429270395180409279337022595342768706135631782827783611154787422301812866421113872756801724225751004320130712020208336605720427605599626731135072509653481125779610825540902746524903903775573182220209709359890872201838448255587446977270630577514948072266587009659886064530836847105215606678594210403857439502754854531048847733005754000918992455264824301844730078647012557651377514927353281166874894865122705163549109377677973375966782101830185107663246459100466344677552474042776803314540480781838342709087789468782496513425583298753714922535340060638884686602989139182093262905697215181183542343336498589816482724907567217444062417866618792798750810935940801916151198398796836123795226503387870116349163074218153886133300142357558618379958160104892330660282142064175323999422734300539649119209384643913727130075988249833968207074890843166680913939139980083406344846709100027020927465634786996259379829177110786130981391338007517436793972633707322901643735187411302220025667482025530941059354117612890777550854587021306907220969848260657445072652607289274616203336265986955275016190510797029685459970623173966176670194614094658986393963840278655527912039526086941289600980369219325106219779907362806202568831519484091000493340545599410817197748226063992647482416937674156529059516631101991324374151227911281735222058925404108595061360747010027751372532976091764293344804583215472790920472594642396310583466913064221466883467311588273854286405297322036419091468482437574261967683864734508582685120503879119608833619206020928561358849463985406457609831650875709283955155884126247838111341947478127957178417878878637247112333263743632268870053559414373886538322721788686410058459907931643679489880258024235378233985613322892560395413170907437891731480706518497893329777106539161972832393605674832567159849282115183134858187786827919446860797057252742229541675339942113283159194203484843097102283676207300569132750526692697572510731149242341176928047156342392659768098501011192326357249279530021302312789431810893324470497445178949463072527917556112501913402816323995753588720028472995358550761140330260739178307519203630561286105699165071110619788202014436213013876257819976968913476012019599413208635746232721302747153925407645514145984738659769279530658723593641114517114444256301885311597430452908910844455972786810868880442611715837161209196828652857064868417107458803624144826437556073906924364422566268813174027945661224789922245361249446537796054286458446107848541137778915637928734310662020462854080484535260643253927073820636699757408818479988702587244799871852009766616262369983018222073475649682553668281715850622596366044872438052304234542258799418042060941663814320116363319750663604738959005442139000683348954912771521146145582244386565380112647137298837058690718047486228664067714480997066369061303282382260746513097507394513595183000781268142169522607834373283903227685737490828990646008140166810529631219578845877915097937926272957561390761801216422105040342515715246510335010581038610380713972453116632838683498567896711767423910402159599526920777813210840421569541193118319083843760265020146256692542718870431953416402626311068319757480243044589743761199665366590840971972731406161403649077098417724856386490703776061284307899032659508190122714854994027868151495833095419882835308644902725488684518346422752811397764251721854110664205972913466884342429886547550979153434077656371453515355679137898588507343833137237648751046096920314588615354461601726495749470725183020569503851897201670936114274890097747350939364274378566952356552538488272756244327818102163486550658461336162671265532719483603845545968124202443964178247720329639342208693114392432719243185755352185935264215307680770783908313977223807959504104509094728322439739106375769059194890457331075412922236546658481077664798616619172362721951755737682853044272798372478283565190914712262723601164573597252135433817524640109402605429502665146694975916743738139571694664226906181830867384138735714685064615781337413262060356628878149185023527740149395435154436356963719133195978009280244284547338456079875498450823574190351966377353458520117020861553498863645558928597579427459626463730938324211104930004883052020676885733431870911533605776706813657518560250824832171607303089665312848815557552886422765928907342633940983354826674886694244539951160983973734905647619640028183281551850619197917014947526250476099532616183402677707840586569956660847515253682747804950226265504106656841844243390289084721062686576062163149605573651151419535696575857600908990525975393241886927328127222099026253466759698797486465923609485319455542886300051636266670133487384512304858081902462605137902733449163175948800252932981835688466863441944247952234497133522764140923750580407659074356976362209593226865544779059858152305571533310897917230283121841370654436458388491177521332234487700417916199484731590703391883638931514689033078510283559165295263249106909346194629439214474880289420702578437328264598896271844444899364456330751805449580043867299273148190140572313265884263448383414266617179808142237216858469767974162051705969863417143602266211831465620335720264549034840639273721856782330071834165872128657664912620611518648400913145451202754943505473645564241680748546900833623981288765572703207593696517411631924060807030507428001678748946577636542991625524686448289104468238708287904835023017714468729278751360522594093700867509130648160140121536611750121576728344325990193907328083930862569641557923515876878749913960829152593657643547880240500720788355810114226344664652903927855640223428180104491841796202192727379453698488787430215198997364508678367440684338463858299403001303520999966109378375969573986671891734397915431647999687407883764191134176105976652009524936221396957392815471513729207320442697479549202546133560100028290858012177352422504107531844356313164260404499370035200268673403426073406626085326059406465093037887090416930179084878834650830113042324262354396322247137878629130599013343896219949592664757451699071597998707480573519694026044064322547106116489966340966409567900233003132679029609296832779217773711209105786852727052177678652212920504673265056313029615469204262911974296856450195425864236610080025557440965308583710664231300386616703301913869363106528057341644527913204542820100726161994728978555296200638629161058699611457651146810439913398502293574566757642400523101836445397994668239791356307791144361958593884123758077082685735780910122495111501023646143490768684264518442904739269571346575417284565235508429265324365600016787010191029759180235457864664033237111594382343262656468501065338650034244114564550729165468997249052646328102515386285883338671938747712834740545209667071284732379446433623517902583658823372223826484699394519013248386505718111611415756567105002417315293396262745750417031825439390809488797045309040105586594586533661342046541843898157912674852545043913797136212259647020113727383805253097921575710996130908430640217198311758420748732502378552581445453396681369387693496187794418625945063985425489504236704147161608774607887803895198256756588333352273355359264047510389536469309124212139850808380004049936920247437143295457869675585220634725487106647012737068502351004195912743240062495897242583232019298689923543619957519016614431700663905936992164152285045898846334024452366003308767375138813948110038438297695033211227156973027020967039640696983179956193808886466217924673157708942923562904706300182282977662433781436849051264303990293892267573028689684494429108676480930848172149958849097085774876118441162657756778272672672048896254369933479608019971994011472031320323731776171387457625080478610100686750924399057552529956331900970035034069627560708660324545453649723044466938147625264357858658361530256380851286813890091566838272967953537424869735198365521104967569341244499327406869045250332598206518218678378423423321454663362294065432644606928150553813498707214496663769084284675256813564410923479825428592178329549653091145753494348226926508803606248112443916991940338106508236603761480018480619162484334772153204715323960291263853502110251514636902839615285200997960446582775261461556696452655379694334624996751700591791380833135114184036429535570821849541846467679899684867086829717212405739296329808022807923525377372099645734595645542531628026100008527591389537393096776503782151549613015488552939330765482351182568199082300524342594317408429146223540363128521278556170484303562087424890131615462594475340025873233887663746861739217745622953219788757754138420206258716083606404408569669740299976061964819434229665984953556524931027318736836078379292009258988331499755578375740087251013614622398669727000970827864425533726186249676899734775913448990256945328128341259581184747635464465098843364056033594832469255187620776973930313460236735643655235194821025050597433522004877250180227347587270518261812091038094332859071133503894841151054763092760702221616272843830093823472801788775826536860543368583295127867658238918890000583307135322512509268713145797421739360446728363487180285050307830540843456845987847912247571631893261445516849930047581692741814835920058144125592729542688550397734923246571058379673522176730430791773891515463987683616880217181771841994715289594789217983083262397232601158839744182373441592064041371695499921134078238361206445608032099446800697393886575490689390533825703534765200407582273396020560980279465837046243050060640072536775297267968856621982059362019253656512869930951180285934676481463261568995038935715114842529835675653564512830677532409737116726299338241264748590218811245792457567643763479040794427624358331285728924553498501821583638229267752178740042769792279412951674894100649478800759764440711478892348758765731564106411655582106116387334334766294366669959497282685013517981256540252129804915883589384413613719472833182774795767278608532616181268351911952373294947576948437237727210368926189621426973789433677377705206241677734187148961082934997353411593563010967419911248474711678405806636763169472653804769882634504834474194104145387063434727514454382429967802143325194600685046426629499972885660191600395406047658152427760359540390905505866659213969748446034499545996533654576245597515084615076740977508643494192261809945028293775057496031896726657636276506447784544528313025191529112976615345146778385696383948542287004347872261764303992822460011707480037769412453049821587505685659385196869760771549049383024732177732789299978834022117749697917292290064171706697957745319187970822710404045623285249090918106587180478354951319447694874198985057137026360727884175306054805020119318277291939654250039653875229642717781538196859836889950111719676469695358373960544936867416425789048103000340897518578792017138324520694015469115412543665917152706682717234938985643910987235694786655331157888946546884088292948600037273717003489106225518143788542900622605556888958984969651139461466277212013510964619398390809754900517473878617486855250637646158573995641038918732288065259808698179526535513929560754801145369764543050659145249879353219359986315402081132319739371125900486081455199722194087959600260570966702858394561310505524029735456429545548930728247829290860723103892563519703923877691129177798063965733216764677441064168171702740333702785548374772803788040649714930497711411402899802053166777189575673040828755103867232627108639831986060980435141760687053102563188322064242124221677070199466359958636043771830830189168595372119941941705048383546993652745703007500495901705019865202700941599130112267500495409386215547707876306399797085662572617601397885306502681807300657153447933638264440015472799377646662984948468008388512954398889007297768634458769024275532415689201072774017433891968696026014693385926603577932489683479438308873770591031542459868679959352294634837576237422674496154240381492808668402544617951130233026034842267971397154313471738044795878308294466020700586702753601495576000738134790923874790525896144018631183553971084992813538863966237201045926792188234396544763112365801864032844236785288440923956683152348383410777836485317973703176626900175265528322849130764847562883934639253054521184655762145196069281616494784059157561197377966466063025734508011513135969315605767733215164901332963766907769495359093252228941299760402990103166313480984492459492972242916614563079986362431025312440345546493708358639279401270050297825949388022701672711552877486382499816049468306539591780068521190737812604684894818280677677274269798732958304332174923680952848576307327858222344844798930826529602754626671738342790074632174303755463915559028524933901417011783059861528348887282341340551362007584298370649049417947470964266870725679014166279919660094659073418953068825495094368164036675908695621045700667260814636805157930321041610908241489534362365842512324843284646377509021731845849965127933148965765334970852173803755304799019525990297759880916917008472824059360588915784406857518753623278112420451015631724781375827911094066865010908857815631146649593591801755349040524393535072948234302631119336730953099776517438813925099425706500569479507464318833546994400010621796011461188579243022293333162689893462331137243064204647563265321016715924536887723480276760745588521683241390991245384539219764377193769700461584677909442984229934231222249811973655758768942389170983130542708427315507933748047791185142125885511137358327382955389495570370842169331028043975494166160820740514190753480051949766468258728795408344235458438319588155023180153985780355919193525971588524926434575025916676454186653091155343681076626669126790991753354206107848754491907435067792822488468758784283143830818270301047646158427985485520337211635309691772484015168887863519794795786888574432175946668727276256151657783864419702949385110024404975775652439855282407628533143477498672621661817951405073827135256149734646673971131762397439463190612931968892868083587486115949106106869540515334890971498624519660256404529219802703070125071105692509899003572731823468100779341152903792234312081911532107707326435141659983681244398789244893094995020995400615803591876887175490249718903473825722701035152182147037328814720630136368157565500107678326822388290414794819990126785274196085418192140910618499950667477226477166935116677201906429464002995661345050423045373091457830358631271545510048144182506130582642166435626027005150380460478585604300456786982899356099480359523474940757593001284606582417298356583689854404972373468881494116910613939511752759360442374831364669016096728522983522500487438990687313300909474679145113629463326693335635091819496384740449712315395681993353245337576224631481814706975183667955122505691612627644080008327640232708294955877631450605288709962692745072572435134636653119157460034652754470608306676475616197562506343068594855975606689661634848884321310420703150631617326819181516136002422514682149801605542949415219676796504999402067308646434588363856943964889443407012495179866084849111242297327382862854579897959696446812560450667807442379731952498289073219573510091346137296684572521053544105031692367612508170963287116688899476709279790806889384601615453869029669709437522881671703512607206762008537620516152350644190478802366971329303064919502847141202254021459623621237948822489916779709576822725945069884708030477916011261637135685578745313104370950805362352477553563756009482119399866978703668317675918697746773398710062354408378814011339119161426171688308079763275692875409712913962631378780984844976046121624494582834110677009820347911787282719277810436648291770395914335088744786055876571858807617798142491735814705662056073121647615571392197822274584491469597009532640533175122066724682712294050420645689053714507042570031621924181275892096734945860468133424308715934679124108201416107255880762410180493995061402510038641847274801099022537466522246924116792716535855568482584204060269460566969201728554511351799818555746350104268588237130921425938893717159623875808569145173355374068887825352026601394562516326213511626781984556379216983524067800478015186079942581779928719735090354758996119135371645435036683997808629664027181769793349473088840897547203651794873950080484335396940634419619704885486769623073740703558587533478001377581202520649722588559705678507658876259762537334701979532032466965127449891115850362636364507479828828505917129913466302781505188064858085623742494022087397746161300981850175789735295183371923269122776689044452550576145370954689285089962481932002323924581570899416859410022303942662900994710719166098027466928325793580157691993697066569311532067606640448889297745086012977682935584302298592178433918131871740306693658858334964940915881718120769809608346829847022201613721136383689045422351660824273458420590030270690213692122916251795271889558026806017109709260849932140074775785363691884254974307688296379188854567254298283309790074976248516181730056999897957147958861127089893210306878246169849155454422077729087464446521170664661788162349516483427291737004011842396443862633366608456346527059397803215589872024335104826059896071252050451380413698180922641351662831697057825772567241731413582541810447328249832155584572191032200681070724410386717713377800214749425523845929768422901497262704353274130060348963184368877609532242628770736562944413465488058018754447703664561702846570295193079553577483834929310653257149167675539478201184761847303775417843718729132311487656780577530834078308584310148015432937858513325460178852042707858784202381199365466248267237559488544808130873416955771272012947436352675300030070103777362856491693780286363521986368520292357361452178402645281863143432040526971228890585980309349291637375548979375030397707067429314565976291634025166782779554281697529006318188495856801687636674369475680874199424708807498122554125296623662484645047675410200394995119324303737769344548313525545140488142291720375700064113898645809143893223889858921708989998050140109703866225508143577580827168242103472448323664650099117711877976307567836988799948216209634002048800553150934261104129903488349377034068437115648601801285152270370961720174578530508801596763228267932993337791520399025990177558259825779738886976634286918754150993782823254707958247048757847039088581653159041634202538976147570250642471867547677555530423154395367398435820288532786369669390847979707178634919073950089448884481296312888542819833355387861337451491851452692533432449480482857549770798248518057645249776372341971909118474938966659609475769338159088359030036865828686781319657958374758573095858683304752919005727636360722994880002749053024817522261329679429949761921699189882693292367540649966745061430569491050417641106488032254238861838959220495333053719546137793243156930277351044643641279180463052214032094578811831592346522069306527350861179756392925139102473672584996030183453265578905425464435259844837992222318419866404652016114685901789642914260978673203308149176721215430591228106995721463143011872412870859939883016018380943013934376724839137068814433314252762437642137300020118169726303378310058178983462486223579276574904156715169943270503689483554170869163129591147762372516962580769869462287396794701224718227368750629494799367045566857300044776958821821473828335750794002683253911363053553447330845135675049430905312346687669288102909198710141225408478456362763686120086803561239911157640783503005772318758404689088253459378420778895500949025470192192497530193758725884944584402681746083232862472973757144494244400422686255374519199375132836253687502264369179854910670314169972551909871062196883335689943264805707600757856375426197665043504757523645646556429341903484593920307411088915017800127375219318969684795039523512574148097509682101752314461074561166088060527758434909820151063963884060367611177699094007432709758680295072694391965052548687104442915985563989075260387772137998750090178589566332650557629646349927177495930746178745699815957146524592960044994176817579282870294341757956682273785688365221678763766413468926230604071156023202925116431915633640516379905428201653425304554084390016858232649986495027027966485015180697507727782595268981232404054470574364264205005910186777188283953027790931359047809469999103081289228471114608335847793740776016893757189634187107829731576138913797967498733380495476691900577069264167535321400437315587963682129779839021952571413573924018279158693141277344739120209423498935901393843005540869238133669475946286435124421661140000237524962998764196296649881820738445020502086532881258770291327733900545142316951735373415420183780818306244340426194875045205897754473714280398337616086034991880020382982775065572977409930337522468910195981884341291482722791765294134577081184920590832960001494463903121431034765351160106993540804411371062572676261924517373121695795417770544188502121309728426647621389844551420306137742736993361859975000274594789410157582643030064222659103663399585928365784471071981202115723415497004603514944815037484472253397906084757560063972616783019389218005646865190586497997409918254155824157072154619959080136354809556675984882867293525138455066034003865483629304125371521300017128918229807616414982116217859753390523052520405263275272100249878285089589286802696780270403501636824943347408578358663619373126007898508393515717419846867598585363369340685684298620513985407619699040766711689905905555673885378335996055920716699030698639043818561079300138685954382295790265221275198414163722548675622360449333487160428718099429566628314408399758579155020172774491296009323042973146741727379022306839079632369327379313244558207474949166869720862919424472516370333454020782859962953138049415911004299202777942139649781009842174421300358100993801844427984628310415305607870182608173687394452697766886571734634915058860844150676956155558971689624251125470894361363719018975310830719667033893483172116205300595659862773616394894201605565437377240657016523608116612917619374961247897299859088481722236256179359376562107144907732433708445397313443123891995082518654019579260835639151597480441008103680119755987518001773536555832206811335968960304308159653809642243906984227708134799544742981081877353593286766315541417563955637890708658052068513253627688697308798625441625098262929880031681598237179480979638294629493224078612707357622708448385105436178535291193727961383819108626453049065281993066944732812332749154470016514270741022950115823909418694818200366441721115948096305198576098296658066407849806319869713721116914957862387248343135255463956976282326662254590329952766083648111930007904975544809909268800978407821749506688604350156438649326739031784837529444556972252025828575168183252634721482188169422264387046815560057211559580511247246439727199068135884088878649276447338905614992957024962476585815366969232577741538735433452091083270504176474028186713840656716464818950392435862790565042103338437556419403227369598570747569657440483273901706960532211393514122502077825455406639143923634856423889479896789015822713363488852346468332310280464409943491902867967209360020740821000564079811754600913357712262264414670191583803157299582259203983271890995534947506775377312732815525436189169049609131235699424030624044688808251603536034688699676949318448707118715443695849774286354434597298963350659604974235623884342557793182958386281273687884274393614885401297229255783873781314006531828833082469341336062245635885266735269815632713411099216046617166776496454969495927106390633629386598383366731092116607002536979964089563819044150134112933746264576717150621374893543227055681656202719731354105291112978717603709584369750747891509718568393656093771382007966020628373491310770450893935082079963728359857214533864706509557489398252021959418031504164839780109629280017109213122407761936750515520678327301114045610784396437285830337374026128689271634045856150791566013625489404945573766751498475811112611944206268240974962432642166561036619854564478346248277927773929783398200611186732357419068574008975850905035087430531740184726890521065055880340148389666035813662016128533595452994096961500231084731970623107997046313371165065007460777695482202524491657890781218175129921838248438489462090407493180523733318637668854325991815044209742920612163702812212931000130047259768435439983469496907685381796785355997839631981684876313827886417407763307890067895496601587397080461505417296117930181448880611092305537067020763391340168359999312501942747997447444286441789648653040477423785718568360606609256331276853054420297608015991086609068441912072061027688692090962929181415942833365878576173433957419748222320191632700738336501418537154013848725258050676642483843927709313706618374322897075256672641461176965617868321436601890821234632909274288306341411564719774527625632732804637191835586613094057015074080306118876130093593578086722334857948978495006389933921151218343541236878051217669900827708691168665903661304056607071325718177778367662371799949496486633569018943513579048338901740558679217539403229248841265720108583384560245460229283276377343398232511212639891695410184129574325120401469350761224514403587921493834475195654468437756318809212033707699603277305752730070758331098364965836375897589263680955156514417412997638599754350267979706853383772082027595617802512683038878035162420226345129198209377719190347725543667917978963927532936178970161653282489688500169317382989423116408201835103091788096241567611867323420792927052616162569841277074685387646700087740466069514377608883882274890968175571479148440265072330075235381691284481744241307002786475355518706521798854580589369566520997375426917353831442970349919905375999592792687038532507176401360301259464624006442831976992439570973530659140110335982881705781167372932006816988898508939895979042262500611451808342291762547065199163328551906720957215027634392733441042490091543888079400021613898838807859179557431198640611811799435880846748154614379235500383599122413265078068793249373321509757126791801907455621153546593731791165544147750352025843373796778988167363369047917892575824956307447624498632560975667881295985646090070000210828732989813962504118269122934130341955132561590869213898720847776183326916986330396127553851460174846579951625477109507965150333883697900970258736157525197860211061536180690732942700299170905581496174664178440479845777546030114812304501361219223673688211416129346864461207864680810391195798070851115839791340204349422456623428258454660393821525407338591188560019143207328251485678213467049816425381007033347924045104793206808988885904868093818798324863290352382437545832091223578995983380704283958735795684773417690136313440662941141560011478845667350947607990286566272801056331593605818819153828541593257985680382129088617557585377225424670269910503135051496049927986671986044338908538816422782724048602668421538141047285416674582505894010233531394179494456193160939489535920652012347065293426755143248233894962381038712058816204770894617239209299217230485371921192334178319682924568187346019923860823651884856654013525029207582240448076433023049392150206954318818958533937237775858145810724796540955395005871559653591698519190561074050758705088172232493671413794192236431089119574281971926044635942016275569023918423124140505261162954159458447432476395918431388426369903843879992452074742578116386971556841668627905604073778324258109157211464544623588304885706405727480035672059732395693821015897575711716144539111659345127352748382115203936043578134141077745429201230689053916471677656637058083019243493750736548786315324533871501734566639067848798507531559204313496934613983333568640206306691722644153532286952113228401059095471519575533058230387814114588989123744709493898914598963098857238767027875404245502745828423444875459255411074565751190631227988128523077622813855252945502687559056950804462184437862597369470618186470463578279890171647974554330499261793514995278582224182027610632799341201529540127289517341479750158629277770054670310023774555238614947493500379558508898416178904262192071842372473691548879110926102194167565703371726123888275857458164183665024532767374173550617714519394173811473990897940970487985681922795477225650559551932728433798870480406462193338888960684547388144792579787432330233707116669617103180323054678424810330489763539571869342239904639339863597264191552494063262441694488266227482841574217503742748175536536976112492087868580020488005326625593420935312447654918719938818792448106109581790317453376864609594094121654302356089573873788853386529561169176780358959721091752613698458928867875655718289316974267534122548483310594303714199518824806261751710022966491267821745178654697658559976062009601274074113477195291284416169614513317528574614950617745939218255701421578242210065816363585142373448838908615700240109033024763670210640219588883742289904997326464252605028854003958533521439960113170241484987870044173626314969031211746426486367602154089906785831693162523839582099961311184574256523677991425830697971552971978100701802174388406380068604510600662354674232954677773813696989356761706348801974437693358958404673579714476488638694300416354260381804750810931942800874934726569541793659042694219719557824179120548629283934753076028250940359494531719139410457147142772331827864575130795974310088456892820986518609440506461883931410275392770353525343823281420450562910201838258987049140250301746783251303679718683003098923662760963422837012839061763465673405070565116870115018539444919246199642609474450853508684950464982786336925009919606893151209456842553728243091921127873683463656212374763248698820634120634599634564840546888493216116250472719635615234513945304278640575547387328444013010754230676450785614638282398390993181263688977300557238173669046069630993873502077861763814062190866510710961629506056401107460208811786410040188007025664507664962306509967425766638600978278739562415482571313288277903077214465502042107312133249398810197558088403819631095352894672797278432570163755516989901197394338780663123277727367723270969107320972143262475545685751221147722178520338623656243862147671155184781720061711186490239959010349803839989799851734213629180989818898624590301656006857128269756625274611044717896779390468346812439797693700218395902167026277540185104173008067295961963666855458270106804508707769243033443616192680479785590363738827274419287337174131652488276712386313675632532415867471439779028994414581108429048693821088104739593751942594618026961802456150861296067055828839603951278178931426541280454772394932943395626199447763049354297519676230483074220618031729059041547967438439055224980534807127287280809732361126666155488288537155022403395830066839235540425916060310098101018011098276777254117845024345441699482201066385353219039298223468514811053585062056115766738479807058587283157461296065354370077748973488733428299837302308433391777129821010757443511727258514892326152199829476300546757327167993745289569273698143922312943059366466167785593934937494098667357363992838212328484959629707420202621769404104515119559347431592183003173399540604168058186852876167975791554335917647766031251431797291099613104429249994685273040786723395727373303908789974466377178774294843246184980429257023640089335454212809211483973913253811711513401468946798954275627099655681571705202886583482613701152727861543752028443006244313391834034787371755304860410695925251556352233410654560958603282792245261656423522721250462007311089920681711839896676402041454664426906882430018267901481115165521592517842087916233075023091132246548406673157473762972974511328894621522510930215057395213187985267471226557770324288986051319929652126843419399019764171376783191002213674698830101927340284644361923560071607452903870760084781893940710004852783217404956236145525212496922023010138961288640617682110870238814041798429065607887364208152255458500982638935006643876326215547766461167695358415412630728431616474669108421264802359850992525283252227854060031501284982506920400741716053192166172042702287641745637949750784935889736487555355047674508344795871794672782630051829179901479248234357199530104860206236615404230275747767061387012917640610436876009553493147774415929712458679956347300889604429726361723066800339023938463159809670433088515615561053694402074540188746284254339607341609412197100766556469548837068179311521534360600893728371335335691503111154546045799537842659399462467556627976298182704679796954075679483601337906667601516409260523603019966205379292937569825794294040859033692679115857587686218144299389623200324848820863655309816865199272674446297444367141691381208894235531303089779778381636581163858507281488609468174523500805879688140022864756825670957265474220284837227566493808990827703281891717223738704368529487208278705519144498738230113033379369247273827124200099088561940667336057662759589343872216888130020088041395477630605688562967435853972141779573560300046482907546591048808850142143110821484743313501049917731932424943984704802341653595407385029514388995767947552613450923046283910876899377253017604993220111271812231344772234918810106412087008349002080397480585320095356373088636813623676279217748927858271285391078176352040371297894877614186435562504780378874491477043769067373474732793289216691971267338138077172858285680089630567219091367702920268963791301003430795640026493158542556751091388772940695758519756705756055460206593124272687514855677083440092404310888346052334056773772057017974645223038971754407986363624305293911175306334854601890620220469837297966991257618302040142685888523275604450961388955452095947711050137519809255339116921067419487481371287307974279378064725149443376057512365133861596415918409025169510317261483808792913930818744939174417103715218392600276582869430997642452447971072739230072697118844850980807772510199029668790394232514314727169770401722078059618397022849053399613551855379431396013406217982790893998994741055410119990389167694687672000309801676995227125864259551499896710586726990989741092492652373219058293851862366323787700032727402373438764012081715338235857933875213672533677993931078875830454785345833671335708070272214988538949899915436357154587255788959358871797723696389527715022627742278085166954454696776690353776542632857736637924057797064796009741234097570889113440268439616703410240119155260537202360178258893376023377735539214673115156424093984443507518602599407243903410619443676735985924852824548259164865652717754555335590797475717771366530007269205266877865866724258243374181520893777349508497822459697380308371777410062257612734019695713173562219288569979350386153790508018292716816455742319197867442107526183762661230870129094949919720619129216643067028286081649518883810720403838830106151479480090141799737234950290966636098988187365678737375691080503067353210251167050558229557601378896668145153828797484850453742070478496084942211405754190535420113278559743098081492682170316120114564871817416990365847770669130694038749193748557449958228878905230194283112587824222074641417566619697319921416475015437830731449630028973167801285090277613828249942206004145553108797249449068607932768345035331472553423496374427451849152765332042009780167245057981898836275477236293994094152575937007457795976978158233238566061945562521808933401368808712372139485199948122974029592667502291674192614627634241528229231506236636530098219206923054901317668770319748742831592339812780543635080475754452033630397575615588896580540767192894807109195244120749095183241785321196683985574539059691118607240683748815871135927352762763586899992184350451362657532589405043370597698022018821351831496270632302401244055200868514758610057401855011672368722898054938920278893388979247805213680141421443950986886269891723546490746740412722117783276040960274908680787678328407250118699588659872446090421020410716846992710378334638061256092409495580022274331537116451038437461081338967916065654948354376422941621729118875079562065152902812996713888399981581918954879121452404047434648766417926447022988284615105770551382656173241844592946448250417021709685622472899378243237162727042253367559815830764250673028697745560493126611252513660837718056643835217100615173501672840704899822051359649617176116461007061261057994077488056583412391367409641287814607922637185366198194949351287529097260083255074663718009923439253211215463160087804787609605407515298951673579376708786476383967093744607089103379207880007446658623454230760517655581882335409342623752411807663124395899868527508713193294258266994474652314538493503999036385288673574239566378650149139520095964806125671289127814058857219948343864415663370586004344456600939592491563279377914941818683071057263409902350761816668663370788012491395777832352766726035997371647239021481193456231785815247950522663380128666872633738945879938307314312479891002033292903274875421192811360312836817573300916776615847060727435968632354750478206610464011735882131481052750673355180759011704121831287956223032586516793400431662417166783232684202430964580628954699326465839258460446565177583558088426638421757470966773278294118336096307806529139298823615489415025456243352856108898780067697811564181268659228234659989317220518355224332675322819211735831828609749477244191215635543697417310048691250562080555025483961287484732310004998235689564143023471994553174422401852690617147481612311820491084706341480555450939421743212188450616266189522044371396068063960193147043970865491027445066373776310573880841358982518483749840689299414378700124573631535494586891129028675023184741938875028203628202259256928229512007285799108515195358973416352620876717265191424371118088722591320848502767539847182517188966967725420125518309664488352708043683640969943284490356106031435624978207492781557835164641595478944916402638287078957512662467981910101608417117715126278625905049788955447219419462618499390490711812695739775565661525527920143798996163120228398621665807562597048874215917001333234079857411707008259978067266667537284089363205259787276607976343177200966203842304862722540306638577908160165132417305267239039808644001158856905789372688886691571148189630665776218177987117743217023908446724046801558609789155125169953977051204230025494196756917247144413139958902668776078808846054823736849330931680284302250428024190398345081760500996783291971234613752839738903505819736971105527899541819550477945493724351438113917365321784262333137350603698668761411049722147841201924962741017568563947763407571957694480482622077402090993263594189705545424557947848320991157527644195954011914047366352589929068798604034096489578039536795306917158056529451261368139175749801362959918720629905800019124448744897737992073087796978622873679735122408230665228295243147920126750785194261723878897872675994768707556697593053085313472887801843124858529630722303636324621333571910525801699830741467958383982124060185767357599773118871602098413739048279493737660252023667094838002910438333511390520484325025002562610944062235485347526619842294685246269591344999779362471922099104998183315722286122869324004089730004252318437539786934626888080905683557358979955983876728040920416655241322699980718151793184113212109228956633911246815215850003545750493427308623519330902464946550567589643078116923009594443603197115795898837066931038275937648412372974745063868030575628062606876105377139314153047910159861784623544775337174377561189635717319254424980250670375764836015176718834479149973413308027047631244548794131066462255694364213403550325869081046745490736336467499212987523639921066491990316888396432309541554902386153966656989565351951139536268783049994809454000760174134654587247658201797746825804493887548910101346648578569355627327364159607987192201168317662831201812666882957011236678588187753074841815329575422167572886771231905263363103454356695636283451609013027913431214443815473738428813710626343147503359372479907879975798664546230149056569140389536083262882853045498214792863073159997417633208932770956888330744730024949929107448262886596770040777784319167684488526367457144896925006387175258048173947062295611211734946638899099395294431759219550286703354923808412404807823372780705061825614143024621415364606764238602207972274169732641629290754302055074347048523830063162359061376734550575876923917763528105060527209674473664990686493940066465122272614367883322921370741784129165290031915620009765247211726162802201679762546626619806764032579151814999996780061896067741197750266755433327543146138571155748586065034598940154407049114768093379821600865442352637487141763239911819126509458808027789234378695084772699818249511491530242736915203497777347373218033597423730953111025830853577932078206321048776883655564756711639724833708419951814585378278982022552158779807343469551077201377553528297034149820769694742615955725931174197150040849690902873908701947425627295371067857045221073510153171730902321756038187520531516440102624722878638720294141668159664640621158576520487761534741951299741908653599548141604197718799959741506233937926267989141333779351381781318197535322664969264871883534772915707295542580307980687400946181907085820056222212446713398246782089729697462055817682526651841322376416287626712463918652853162317503572015091985520458366302329955925845691175670798257350495869025555186074562269011469150820963565149216564069818792876910446178625042238118515906565890026648885000119377365589732370544559133806734557270272131171785548431681367240390760727200439499846597806419805000283116653724474086523401714452827082813610312544075601680819373847837104985645637348749094488941203440004970897260303585526033429394839521089718616330075938357616391144290274287226705919575770214724935899639824547600692511927633332233227339235975561283295365063524989524941360497970978798921040443177228966434849832851777775093806892570091954168595266252830012369716568007397796447325008200703639971088716375897783319755485928151256973047867080323331548908519732351730241015179117993515481671297409499856240109236576660180746929151989597495186246112772160510701848271067405338818294226490345975272345892123458030559842994286462737069014423926363360414750401890586431281246175853025459158534696847892659697665706882266471316543014200086330845102346636519944100628222298516423379152549715500511382765138831671424172043517689949740610688834892322045861930276747466107588974536078465656078935661586427809185337282191174360537495489107925530520025536305564860638790861319988773442117358546375396524238683278444061744291214201328217263418657268168472864878157930795561012557432991223476796307234775095647022678382866138349569417399232736479839793953099961613097464296998122114344605538502952900263648375643287758380103744976432566086708518859632776056354132877987439767552307823879952354091085631722683874764863344738331357910656249579863081733942883892327600816670977460805964551987261776131556245833405400677636447723264231751687104997552529345734026380286403669759798833156696291000463570636951207842372784166925563819441710581654446250563367928620029758264964405429365223305995926635955726332327293982716733534227903986346622748672686750710242686650024047248260153648934596405606384367420327785209820866892528954165505104177354512581192765471804601460964738541676115022617297158113299822844836486213440682611595846254244480513818443811797045609201996307559093348562626065344023593080730488324343741734593105096304220668354191068071497442839301248880017365433076915090431854119751075462279489615602739951062432460066348705339993168085072877079028652751544221564849417094687916970583185136333458474820073699363796883688866395417666568949693707137713005840824024827381048656346323320292399129368766638232581881797422827033063217879420721019272478427207360729105011509315031357327497457656942879792675653643387061141480141294518389118052910529968817928280889419435324954206864641390721846765078813569138771872138585625170970698276273384946036815400080150794889681910792394400285180974614947264764921814039053842299392787053943085535478626699615919018715000121762323018390459072566706248227101657433473851517395975415790757850873734636669263439226659453950828863148824836795372045983880104312708308181967369357974739000311829984542021171464744474732143031290251533706683443318583414231190493909629218523854790911085657661163495838908366544424116652913558154416744580020109650197501822421561428810470272360495254980313524373622093144647271376566448790434519696854274701742215047434183428845771083440207621882884913497015977713929831710293025322453424789841346215647524125222760045441292353222002043060842421231460288089429600031100881229877874144386536370196726723917377940066381596051758111807730460320407359481616205857494684591460569937502824145690179733264580983851473067953359717483784622393992234277336404805755602349530360381566640721870116737469638930478209168412166854998000041123315756226794891379256959597876770600579212451012843280191501539558852931975718679880626532985494342201109007594612692908318045187362913392850405082172957312470121335212090893562143351529861985598113611036090576912908699043095805788623799049192756663408377319296020703770392562725606911822461920688208234653398239915287760136372127710986359529421157622084033888312391932774736533055551003721407773677372408753851947963389233457773593914263085385212197669572497767557687740130083645425034025476792006191015906541759282385569614271509140974848962217392622091939680468045217521645630871669656440302961751336383475421968300645869894319739549495433337929690835001784296608152550375316936754522967204299408455012781999728770074704143145944232587989527718976998840149447716868743303683191655950753759984234427814491252383035983496103201515417383548129168347995857084268152579242349723330051054895758169808518474696713595896489891872169256235999895856429463693194920404180680814260015241128028990537037410182703392013844028290757256898124305460142807587466751061059157877390866938068898406373282118787171761976963812583920304413755474952355676402460553610818193990371224761781395546800072914963385865250245717878806433887085395704370233987425065124733911259249000797814356300116577389848258759089472854076427887796382523131444184785394073821388591132062281302277563784707442964181492424318881996359589165464028816673547625009103923023835422737161049232914245922497763832146814304226464916170988768477243580069700874067427591989376626661580984748385000743067461305059397957847956589508628538475574025184024817892459669373700405718358490488553518673028126637605102071702707140292588178441626922466988255414107623312405569125073444194726375722937325059830013624367449883903449830038333257485999869449784411804288407862530806254381659750326833774013219380080122545882715968969229905947017349655476068909212731705905528952433018675469789940177285852887781510481448307669532749431754558502397459929967456987438334574399360820574760329234835603041315510133201884181905807803426375047188995596849698067860928713386638968985134039926948923496309517034670063204948315715562778199627600120992139348118089101796854895743699218156408992153652601639785606429275235150142106430670704147574565471228494007636566036112061873410144491148093987131311875838248019257522458753636797120433362681671008213769063861345588169099314492678612906642807310229639017256670225735709409586776441704707949238501190783218667606666533234853149812132636247435299359144348016711196064490452477980348296298619036063759475598883736870006163073755405573767942832424967513232026170884383302888848226382419463008622588084756629619760888904017792657916200424572094256266882631390985424359638801301279154594148779970156435495060913477320879192953612637928496124804422222303094419858597195539453554007400017129373154928498503999065840060999766904789292094020067558033208772991420315156522040013981292229702057748888748066453007697253857747946079151518647599344585483727902643670544573603100935306013797770103603133924105702373246237245278045676179669620146575578210940027972236251200022377577102799628346361286519413297455444183653089015290351524063407624759082651237879839448599206826547743843843028412391343762118936242155827602985303984829477696507604063954671907996296361474046131820371439314599028573290752772351103248415809121934315017497687547316923621531010483283362523447490293508934931440844200507357785308331243000445739414688440901431507869027490412216370384700980315856601792238106579837656133251346506179725251292395752262683396235735237757534045795675548680903064590135871461386148687949270731252816090311109878043049592495837279565166772261015310687272501982300425797833280289208565776980084484509094631368536511130019554795575228718195402215178728690177931309097397426081357248507943676845341722752657092319836944223830145830480261411023606361197806788549680149599645685703760361567732574962184586631840481027400718296195585594987139104979988181637146947526987877808130476279164778433818362681651456934468281907105283448754709470512140641991880468915455108918903942770885360115635186979856859137723638363960332711292879582472982958349705767282575111044482899222400951783033030738556294337527469279303934059439137959077136350061710130516780570126948080236167449935145744988152537596776570961194431650608076068639615563397494507875131430098401798394859574047968728550879485514145756491889640577859805853880073379785925763260927090483654344354362636092748944375707254993507005688084384579192769443070790346367830925612260019164102931669900498615594667829573330046586350803980377376877658746816238021214560307088068469266235974202704426016796347746476740704467057105867616685320227415773222562925515458567390249840356301249721436558295531566741167648555256794379487286247727838256613409833806692596495444384894638104334217585438145757194470560604991738725557014677138105519258790204565674521766016698610449200529558151439647820177234746547488628976135107134679785726953790733763556467176852185864089782000773325692512755110519828466432759988686659617483492246725315485182705583146888692044896371504429010409416650304576130477900039220865484133743078854154133574112658203407348244094029118056525716150201238644003456502333202453399645940623013191427150537236539708032859159452384872409370840691486951092544041562687122911740000893356917240255985579594713719345136917866424661950496648701736617354278705408367637893224221248305081585358485715550392280791420165588786386905364148598289965570359516953234103430891242443510504260853421209444136655352069142454348194151740535321921002389439851494545130065747415190266011477449033962652247323965800469844711306644010456566511039033105658759739303853082238274964193492570936778320455934663171428421730441814678134158087372479333373599871911837790737583254338956358288922346748058021046081409253464605440256365243334700852757593630787860572630078252514526927115751903164097667181575025804406777068909670921230297533413822874861530498507600219938339286151103899893880398522230889771019878648892376615572044073422093940922143267140757532146794473421892495853039119214079137043544915812869040831362611203027997764668498103277761571070595702688000997283575967633738944595820165953956674511790135263387534538756128119974185128872588195213237234268772779893649498981853470663863139631321598991802585153272911873016740545595560338105077927304063913732759750397313008081121590819803794795261326360289216575185240247811363135102749033773661391943861508415523382031894524743939803252434544208009084818912544857988677433062183643465824117224102182137129432851947757684794355583700438225388549373110625300951612459653099933249334720615345991412576738113982457727694491941955753105537412025016822986326806318350204467739340443459701228263167231450602112523634343241626143174592338533132523633136526733575211184431694025977516212704763232444474807575613746237429890714081512858175080576131996233270833382410790297227006167089124769798096943676831126273902518990204535585777582644672922761440406389357455245939589299862975321393536503130288724966235999575205311424730289564667107898248034592184226238369644568909110779255409254078428493648417132843920243530687151750350454370768156438085712831565348862419325453483695998328647143499733550006642741598527169223827749064780186317567264104261439516993850800253102816664239922599761348401972404991572738519220090683489057106950358679975894611797114738329680460885257570437243204125381496874938104478472163372770064921612138700857342549731614634725806513500564892631594015815329783725709642996348459857474989235259765076335856236235462842682382760821009068770798881921755456748321764925466516994695489548589057345876654433786350940632518619576566558846333215963081276534799963823100081599510455451343816592321542188309302046432568426238547947501183928899486541618380769141657538403590643052983960460398620826908220113794297290529410901817880001694993016735775409565945934970302218179268797829129082971046920336439310119038828544276974450924272329953274987325055184995171068946824763664462830360303666615193113427214805378171916345771945138798002745509069012319397174152824046270720561203613028966805572471041382624308008241653879057501318837693304240876336492229639979303464303525172639289942814030321487358060152992062958658572921686040398562463165240794916287726919970351913092277366225593135724016986824052893897723618080027068105471138205656877368318478462128168382401313386885503422185189455821986682732119663710450355551441347538119864943202582301045921517975175126215303528617297115940163858948932597521980719721399740314227663661187030062750883553215399162138400341963371484267968999104909910324266447317244536694694081716035220203270948437675916580249517055402418936030207587450279589175590254878514740324252878015982918520285892163576993401545254429932183086850040328754370695167654923709667241681342355764828211155073619853161151487897430237825258620105494429667353691863419378981378828634638811617242746741760064806644709900456919815922004546776341657846435356441505490876340979296127788030859044860576133737931982071258198860931657135006433394466727933106020728499663024062266183252180255662249799677319882198392067938971271068397394617859799194647096906937930253681470118858562831221018660165269309850255682527237442698072284056425317393751031436784568451338060434856551851062676242324955135274948375785802233343733726031708032705407783148556689012154867934081309730657094991901757581211423961074691438820547322762870462000786490005184224869441586855954378463326072751294285743924786643763004805629479647159809116477101190849963433242102136426121192875071615146406674180773971527127693326005068085559620457159257211553425866131457249512926587716172708191972892492716905313483083512038171062105496641411269813949008891669844738267746598493482808720425134537729425063991204211223278973806034242032776983118733147707887367073644055507715874283809827848409414391988433779454500017455530545623401079740158875332347670371252705559264165125616173196926413360435358084021290663226409983381737512090226051318266796934284657701989047217697754486702143126147002120040094757157457871914494776978196986230700281873988240997372236905767255472846139980776888061051675114484595940950088454728080333451823918806222457695731752409309071810641280671397452236666218555402488897235266831330457526942388462532829661466994962139783603814677582514828412410145643975142230707490716787319641429462641336853179794597961758458796910083371510805905561850089698849087129197474216609440777924267794619454344491515936752205026266436457096243705971243046567969787580814093810498282576405669592303899886951644888994389175267228169559128362911702244578469903486644821568079195686432626175365400359042732683533152229447931966776768868516773972835175647526943476692998439386314290536145183651966803721096707671111642857223250878262052864508626123035660563230989177704850561004171418956576773462102465340868177467875526703735440102315501985019538122648493981201874405560420486372455246503025826831046239889393153870737393398704600304873456264936197967664350930628590874403134246929114627371980412411111034078659679015592317487069861892392286715272687069120822348697111533786065273325782174101137620733296321646233028005952988884106372019189741678052425683382704206814723472236493511327367310864677788215136100314082039411445113094624762787687147320982884399755013627820999760165605684858836519688990747031324337265096528239638011073206897676605007617286624975250566884464281831040087285477627006733776223259040507792410537467416867750685412320486433618751518561988698639328845531320221328338899566395374293013895186591214458792688598962399020592563020605850705177400472386796629272917312000009009259243925695930769501046346950156708321133540025720002970071539217140861968704286958278063575231431717124600984539256494285842360854794448436247918802988522033238233227063816631624304066691360509623271018136357062208723233481489489955616126391389530386991359541482830830705116279015820979148373108596504106375472954696916421738085455342537691548978281542708387722945747848078309305792274236185924186032450245930789956993134625430438676603761812175644613831854779132400150421699297807937952580702605097128439200174018498547587406610293629618992205197161705298723162338862059795453485977637767898732059023929568805375899135273153904113911504977063547231553407005653321485828218737443284976756250208513728866349786597569789450961814595350641511000779264074624976698680861767754230387940905257621782634080243409292350057554967755933639483455232039596261425704145582596823908275218396179672569766171125332602442411052183958388624129569467245523627548790074131074336993226233725209588997905536080371062579644583601231029261072299744973439547136441365595282749134972711485352764027573647333196813053294769992606287093086982600123057250160662940124401878175281291315717562360037197719226062302390302568350973892501060523390527665334947413420788938982506805728386359171328861287202179367279764695625161399575182999764165872165203213634412118491155607067169948345468095689577615533710718498747794886889706251124528092190035090829397598855459547598833354162697720267808986383948359028152500088577645028323236582925190092779683049671010273701849951746955223394805408253586593843940418748678995853817105085847449027408591176621170778989048283430341060258828578844268140655148240793466998766323062060462128666885147671376810524552201262431590487185165810163264644323560675833100985593316606715446799657386166210176216963384558657737101058011183481370572099183219933692509446794285552254351908550201337379425752084942446591349949699377867975880194171615017396233099701530577526820655364411484967817618876250196249073594352003426556747343491514638570902180303407864241962932143298178186085329584979996060734079707104419623787040173365101717459461571903618582576309494748165325940688161610695509635982693686820954269761873615631265306682806509998793030721556562672416324224726667486833911876764313616574176014521258622870709850843372292890401894531599082951594919432276825648027971943913023950500546073369048024913723699253905714341815241136552770693833489492191654922829169946099154684972025206762617536349653816898753798391293461999072380710704139105541626074512741821388164572547930347149757469890033880209863054846571605632738886084427706333364889710557514890357690512224654743641402643642628720161079170667637769454623938564832504124410486001693776202976654329776574796916515246480218798357128421539298413232306550952502758233964246959094455439503718809038972993141181650132994537154180441368320656086794540247397753070397798744971064723536622760958892464994742589932733097331042848941638970863364107556614811881389568394169092596106710762639417883017244742134098326412416095454354047794627663472799910312814618034221522866704156831680025860298616828878471231063740739362485044855629604352114951535004536419739113705794371201900927842863023103783172878602809051910186032093488284313469547399655299770440467260059165493990875718833920637194271157788316965794829404752906997015525177696310891296910453938175071557570312195143180160432705766999403625238789854130962410409963366747508090710610504095068245845208866531952117561868562203023977601145923097695898956490675812445907104491304979822900286095398655947806363997427876801318703209834494913013053003035443016793767933935811234121843159135085139281265477809531273194475259560752434810177447870177896489867419192390436993577474190494750748330465874181077717248880164549213161176894473964593620885450197553839387419456873164817413598776000635657052009497125107914763752759163090484357369818609180457926653127586481902798548048256194362716403078559675261006181962614411970646033354182738554605317177666510892707946275058265474292803008199016479386530194947268141551910616796991863573746483898949594787637274292411619703808905483039419056125821801830620367958660005559030966306674324052362944798782807024261308775535681194394424910902003343460991093320819659302050726770233626358200824469138162868367761492903942886194578905214245158050674271516641142320495551483911589261349651729182391068526520786098487270422992396428900915666351480833327279636237708841406216738412487634173033642599058728402782985138878331772647254376241484976193405075179561661534944757208836191383873090916509937870212855352919988638160443349944333502120654111136947606428388263755360512787009681378458990963450094259237015257624300568504972284790272101157812796145383532870420962722660499743651346246002755638297469742074990529169831799758899704268622594346385047151090946508283578111036902101861210811007681562162411972901178884311819727413210048900488472751586658846622832648553770516120311118837873829888008038703957332071805357243008789533275541159207846762725589367069555346644150801861678471458640943902411184800190290275264859324374630275689316449596513525948449441904887354285878063750967439941416871138752787071887042064289517213984069758512982618690918545874036334060046680745204631059257675192619416333905133506992630791380227096071914644810332161051860993552047938000288244261146073778947276330839477231221170999670741866067256398841730809355398952247457616239904386649352862064718821633715739404715676614742387175190762803821676373770513564162926504906468629236686884782692020409148625015872758950187761211795670612225856631435497728734071031490640838426489992635299345157054821773333152786764831610144347390134098939771593587777692283714352572556313416103747201331953081811909776234000705484812604778512127807063745032966018708927698658194935771019259435774625220875196564403044560803183706651808342795666301333392763463566394038430793340357940218323503333124616624238805434966762321531877993406771573391377489248076962266693572542580005437877075528973379589699423927239569183462551517036043379086388339037511592310387445012266559699846907203597804881638911979352775574238633048598468414830680960845613373725781312052946303962984364928187044227735146982708665059653132501637291588043138721241885518499597930489340495149776724597288592581392014498950306390114060139552957997654710110854269762647969467564821579066895260871057600295599288513835280187900649011780809120837816522430425422405534688247166921803191202608977399528738210824261800047685791921420027865180767398331259522452249650843864099456836865938808342651999394350712464123409748122348254579267743097506050497769445229927329894480041561304022833408547824526180957095521518040351672639872709666006790561540152616291274342957358553072260505475346144529060933403335463189455123929088727673244658242687365465775478052786817550201496182819524008479793296126315048227355784101265328774613343119934459623525063550403331322923385330462409265146496749677727833510015669023194169247517087957199723851073523445653492598284290350714290821194902181214010367402801539932793589209568836743417653299823670869795984985084416909160225507191061927138672608760960407209516645835587055299767387074317404740915418055342553314344027409369210036089212228186430503781290448006503310614010228969798658733972577554902321107712762475328399702359222511230929638401684431879057290981581470793925132253065632192483314509956151094704954327187113492965474102376644180006088922872671184782261485446729968381118524433985007978666983040495642768579235935836028623924194874760712668578976710202286736788533356481015350550875824362240908477077714005718946067576151131650039538766114303118857796468513686835186601476220859635628587966826017821659303076516737218153874319604972337996650483528300843018711931180376024048325859404514139078052829173166355120127337000240022471864913011328178482411170072319985368080480154749396949049820222333812294434625570016439604119242226329106051523317092577074012891434796253792547698435914674838561931195525026890743657270875984878751934834944964059503419450192998103622054293695328164138514629655288666778863355746989818703976261746815481946931339503691066264211827633129234352863497004430107689972126183051477142754285979391561566239569237919511224717268163870246722769153050954486852268254108766669382804137581695569107594837458039437326369151795723967579120458278696157010951455772953892760524215913181566889112790061600392311476484154743215066419072803841209231722353777763605569454589885273203545931946332033974925480053721367448281884091493782363907132977161895234582485698092308632239113468723479104757803709281748040554112663973275717265182994150962343511535806997957181268077590652838925053229953211625312375887420284773222679280466242867215003061536281266569407172337689835931716590727232790062104930713856957750287927486776742285047890374786995468301835796242179623934589268605492099987071706059370636803938255166989216110264321739162758312747322555598765243399242030568957976401708909442461433838546072405832731435390962146396285611594350708415052538492929986018377407401915274731842675028403511253397788096927308515129547433436625067615731929508809082092314778041438813168667578998136910762545903441875852538882610213013805476481598175499586046503978309395572643695158050468679121203369717712922947850235612591827411457731577571205654947211233016299539821912089640764586064082941642034825138230549692848274740251312610263152442292442962301090064780175339200060342932672743258259699084240799688480387222418715588388613609962245497926281147815646093236744170744356768393818113075164815065923004250113273243229140365027717172488750271583940175777215542697552810218911146572175617416174723185423963267256135354684474767114753528058519089208058332881266374152616275760879464907172010195018358996488400156044624931710485086404833927727617225593281494911236144370503832093523794489337867441084599832360439148806020204623435173693902733512903999476977083126101687697168631967193893952276157496296844899447431410640045939683962754295721484465427720558173717411691142548277792932343890739593146190903529772700432627931172885232274186617335736025458211908286067114644908656792419939332866581022264170389605157864613707077676118047078219839382685387283376291015343206653694559038621701377013262484907226451437708376660213433612456489294874871226440470018987233743573969850177132635691350185181221602736165320082468165711754904889376165265984754463126806662676372673900060361010081948922077077897538498032511886858588368856745170391316512038164427956000732744559613292337125442878652859141333436498524583087899984335524484950833267000713451139002172799210635976535905529746448236026571824588766826482960158559039501363021832559525557164003285188900548378813931153951583355656674227130954162226518253020436113132782881354167359865316162116137048680698645832103575945651794001311981387443657183660342574152755405818740349556739561213658463286154075493518606640634798997497151073715978671189712465771327820296221143474796190830658196738474876374370071408682836753458963832185686944732219950353712930633201971355871520388472622654940545311137101939224002453341117795863776805903801857956432925055533104713339005022744230511566340605879665103213340326902618689582945265734028063005942594157943041088726443145030460411081795304303287056964873594505984130552227622433967077726273989349612578383531088109984020146840987419277692283993718897319398522077533058691433826290229410823316271271225912759858042801876150355091937458217424646402521645437448903826084332672141511452844354816891750430490140244613197289544297242831004134287766269353393632766199096929792024420380031872821054415266339351190139648548107031464381934810456232198279875679114180851110647386966820161826066987782420553502770266758011919597206682482834126593207811607088856233675183319050020467408799934601348742303982425518163560938452209325619118506470302696755408912047125254838718445902488871641001191060845056093595991608665512438738945408711937487074689471996199088460190450795096713448510381089020803070935728585754233971123839118361130298697982199538036405606802786256260525025157367966028478960797354750055626885454971243394033540188070166915600238565646300401141711987109134382259549345941177168464431543297768056065149729042900534187202215074331543776490596998201935755994307871749396336982202036686237430742837022149733618946273413832484214074438165981842395499544289393844399630073927900398095122867957775485484363450425300740184211292082498251412643362373253398656172117226063713318084794059294582616739557524916223311553438132443856424978905556577115898809096522395994561959149541178142126763497778479645963694080332052202807810937864759402980821684864894320084392028216281123359630753339662291202799149586977989459755470565630284632412316820790332726860563537025455420127632760250132728615177381226398223080577540868143470756674087136651627566239427693761201103174660399116776304273544826835811040233878420518505374848183028868292347633163439793394520862612399328446188567205849510665815571053538488520000075224693543683205578154119898034734096130157406749993516274098088900265383844736817605147390168089831486805703995080121048654397299477814089366301100789137965766064358250574900635666830657791814215896407795645936379280832173339674564807487719224198135033100998122929059725049644967533173980155683181469946057511000835313237096281010751126091760418421809575792953981251464594772608572481999568126766186556746619551592579284710340596119337448768642640546610350929859229809833811469828421328175316881756892373122552825709041679427523447482869417383441015442798041536816528962096642318433990330868675774923118623063416512603271006094331540075039092607392319982829785076209581367344222404732415810734578655345844534299615235817755553971272447328361904004009995501563439268092636780689599844716024815068418562143177069843885189195704840879939605612422618037044939947939185554795523534622438925145712728958270985594605706013226109952878520197114214292319998229110632615045580518603135201462465305039197022645425120814242431108101347593672854147857274310806205615057892305121957585332005157538626143764372532779592062644505511055829845260981377186695037826541004388029008481558546629779919168153128729157407770860866587655160512332850312536336301920180180945001992554121350751183540131818263965604634482343292713907405089743568023508711314506025641241199661850224690385690717096330823273259470861176252236249872599888113338234641394479018347834431304005516049954071983636928086488897158092950709870414718833538016000416094371501364562238731720192186247609606146854972997905844972674017467650914309900392581480293150658468708998437753174593271158044719832437219434265797030231080940373931702732309202410481796163500696939253629126613337932398205626507388537248960842007475576194464697312982105577155722560508175522967789085272127977241138333980009628595306169764205144354273149447270166203163325413482428146645275257416919592077912489855133605433823344235006126887396886882260718402328501301315748569106689911875655960987809414627373768467126399430663185187270987599730593903486931991924170736963294570951118978084450469422658665805046314284052616677690020747866292295003501372650385006652294564908739740707656078452571026902186597395412363035194501178116452269657602144483435389666992595526120772949593845832434422471946893877505034978574030477754644675868217502263313719834257255355726524741239163856152809352784915876227678109613728029129988300261089072856890473564492722947653651055335125481288471289654856799344796170355776461479271572499475666176648836045411440349590800361034114376358300740726052196796541284306477126504195161298722224992835736302833875087665736535716209104201599634997228719455231889292575756140934240193406751798858486619930891820168489399978165910929527351796106489519288201987575450025399600720770739502608866064391265001667402595513570749141642201508011837463306935964114249909040271599673346682975239116416171973217766512082001223954734305913568774007065992037091934537372498427478918555110706700709153615850031164664735462366920444206327192612192438978322740798851237547465502981764377797093147154264942212178131872600602926546042472484805701846059055900552121771340773514942954634280070401419168346411295380994854474081089615289184114842543253908007536778502029844361308592009303927108087187279453201010279396453117686891239751599888859550949000124209706370782157151811276261543224232230583957677224447214617874483885503050616884405230786224750543004255030643272865236254328779534421463719203913491202457062526206398995100262532244630238239005092080225555980980693428672333715135586020073925327713284173669667582146251766377230696653524388817207856026768414637152602870824490315530743619915032502566126164674544779699820659050185867396159038742162167164815412841997987658499612335895608385525762640063189696627043519297518211796965063813846676984189316039946624474220552406249344827228620701122373070192746997073498279115634955703242848160598852060421741755545287875202128302276054534220089117586960168123751373036091504861124092766116758350356730655984017622029998051288056684113450538479156120723819017609325187278480646946684493041875643177696914706727177441719909485705822583383586458004923314573465413190669929900684200352597946540030131904299616045497983431302763887393633293672066425764044665140188751976442036522190103340012873795359665956702687330151755180148741165092228456411749040036984069226357215620530810169669409948468086885102167198377340311535394020861849048520657247841716789146238787189103570289952243711045708163784242136743967722148041029157670466371119396085866523242460923390762238483127581431265455678297869441057357723713002998942681147985633175251781214327982371366390103146310918869134360758306223150011788115825855523829530236109259055322166844777354338716507824460559256797725778358207355378531903656150197375775822205481827831141539007639150613680653713352803316907764423053784222384472419566513356139307401554565990833771514448900396720211686470923669378697423557902265387489659878013572911470361562427664564816489380340603057172482760904437523086458589753914340296761394423692231308307587275825268182871086298039466396134301341222621257056989333424377370175241596425024527603964955827735711341673771937374053614293588609092593725232679819658929272104740693904606351909341577485985734602596314462732979974340384247057299406844126480624683117115976152504400580770112407107835738962147352444522886453369855600896405547682063088257411550918582085634207328281994974628898015846520046873128845894541183807399533315056536355056439672458943879616610547955651637512047791563628121223169827173109282680026756786075203961040345448955179203538527180624954549778730712310396555305523958069183192189382063371701433845681706197178123008872561769654564616048299469568165495862624878666720175193806468439693841947655610800141635886482071717342245536273622706682413347962577717525540810520601242164544807661218595447233611155762192235846168816779201575863207089340595928919890113675401742931456378159624826447303996627376137104977528392692721489165898065906537175093012063739973603445777960824241293706888389608623826765264391458119179376514228222465070095585250119871120148431843243407269304730447982145002770373881681681363828829408934962193682720034843978418672033764409990748584910337893177516733663994741047559960655503267276466648520635139334612849145087984470184985930020233849784900660826909078028048366086456546594269316319019749655226505268279547470728091791225432699890059854515192566018633466571621598624556985832083411746236442408891484714224048670459591700196438980293868065899865583386434063566872549347256695716659327250972796156660353899880428820214861439642827815981487379309725728605111065284235262373508899659349644858175763810342073619154323265135533365963200998046553762949344034144006982901795226426203587846056747974238198130411550375520568861533710012028309747705523061732053739320070130218989974932425129824525672469836313241766102529262107605058649744234861409663006300552774030119024919992131837172790974052706239311136377111489216988569702940888931358958579812026351729275497840262815504880523004864692925254755946222546796024959639247556892354583686561535793814250151293458972815806880704790767813346920981930046765903249038188454614566177311584721708675374171084661431861962625582819626300353274742785113084746427600837042880914804575590669357746204972608012817326821014237915460781631105972334416706841654957301525399851977767360958624094359941198274825253851229245728204424910655723151438206112421608774664569728324708717574912980799578505963941095539329317915735379113321010096804118021715573524451945662227869885431543572019562080887608072258198307991853381410077313440288706549141928290448700362789372473220510948090391744851099969512075377091830923997216394372876268622346808149965243447551285987228180570762433198718345637870558641533630619298894243456626403607222522708105312575040171740694163868025866575784638861755960673181934245982296440784740926847651177797812706377302651468452535145254744143714145542541067544656294264447677233716161664252278771191261155037278845130802264892588007550498901674094497196431982590791851500022191058687856229212292412293151983520721843568339284778990129508354423387948336404079604171425968967382425205854420484737964135649267801536761652805839414047458518083039268877794610464441822781090207216344053127662652959905063385525153706152594893864487921239993910685760998338866047987451984421652309158169538733715196760182774876529702174903968181128718215544498733953183056990395019482517131995081098634772789404376544481007514726750622630499168713134475307055731735757975890576062303437404624155995863365086364877039916358856299208126545026769038820745417781470224263352804365502448307117312325802893232152962744216402544443071127748198998686844531457888168381517803430807657633017056793700821985049563137210783581666013078830871310859032870481855123449927735071716569321034433338620200132351685122747865190464406314046785982658526676359802846245573840564421794172982444190500787264108118062371191844962767801858686402605479391668288135452044366543163128554677532182255264018220307813418588725176504138612259135824524942845688151017185617911432818805883834947777038211558484815523324333272236395852061750924933632418286666622289743709877973035871150032824501121539231698826102985130778134889900163594609146885715457538594826898269069706802771585823931052959610203332566589250799323133252299539553703368563876679681956029240719193329051644299917093254753268925066186841436172274700102876359576040954822327170529812943961347426441182354395614809020102877679522557475097197984117560874414598742881501873245191453540898701776206878245900472565497571145724656783593895009774504172212028507786754727628245150763717576375602037356469759520072909029071438482332865112336641742500117908290947377681559983738775734970972151516297823714139736589320437136835761288628967624794609216810517317966754541453282560442453197545634181047888668155483010775943357203698072323120021419864097697198797817198502909559683767280657225543048196656919007954662746924261687044220656002926181487439379227268300969842699834462964154350337734746303628954946047079701874255290212410459699401165314266965435476487029628735785933997721730192858773536668521590572248945344359457181540059865690881454546643592418805766072295821459635573793500684341035030455338039578012021875003782664308897871677998383611316468695432784937317737694489557646600416467692135471381334198587604920984088720056582566521281211571639704398709097638149803928192870033636832872263361597143779646593860434679462062649236676607304591702426627631449060791297680388382378159988051560708201046063842720322359156479167896199493308948124865774722031612319332970656553722773522161899785690054648261621593320445532713117451307758790468306919645851768622888442402147132604034276575672601350137703820274583520134306717305686291121839821786258405725630969837860080347230368399391068943528868052192867807161537400842067124277011674717242644368952524543422514058418274706214747111880613221657188045302389448743841655442865177943447660772092297158545828047696052970973034722139557272549306150735762000037828033696457181378419641289063623604876245023337558593643583777710125545309434330920983395103101888413307472440675388810861531574013877845356335920396253750738567736652453426388028709178807991307519578695309555563735748148309500328321689016451317682971141219501407950149777459227914660296306908506398615268072161145806675130617501882188680989452168621712555188488451037885970621668831215676416415119845960031216081089269563516051414418149775260959996692661036567961865211315077378893567780044480292802483675136084497127521678921075044911034589541202180285064464126890531619699913040611718171843192682661597650922086347030873177000101591056580379561634549501250892290376684505683587756951711999319152412660541406231946000929207722307060069086177709845723324223753690620404175653825558142017849863853495559097542345692794609700225680195341315444237417000549637273724366610336663887828057399409159683970660716532308741087407423568009775052456166328174955198932269966460511980128469217198484580027559544979163190231968051695087398195859694884260701480203887050551213348282631618975393630838490559804788036243571231622729214393747755810310320579100069079228160113132875596346454360216948198049527385604778524995472021990681061412559530334028903464351041326472721114897425791971815883565989141703355593751706866331801246371786998742165879612581098345962014649243845973643951377849268858602346999953252819083836033096040622726921509494719340429623530206754047336265761870827237059762963398053000748143973411253805356209982844369921150110841675891146581692680696056723650588354581436259101787931468082844971639157425628629535451905676434487154086900584230276797436566239878545513059549021492474027962557156695468857028646308477399220108799017709763766205779141111154191900760848210421803789027723901848993910899777994347899375821969993094875398730883583987711524112179572933434200845114552810185801698736273085464873495113385486663264290060590269988186497071825479746495934857356878544977710970431970664801357544398793777169897645897767573853305675649023569717031700225485267827911304502945180035359602735154745049308226538641741211392424476293883536566523524698415976430215350631518964540540137325130229637942678123126914370714118443385226157689398882120597210468206202845996847777608427452640163337702992049262904571742366172438640063882666756869032798090128078132235461842136107466283386366674968425244508150333957412975651838264252522213209236995478922902183626007908958871552786971512069600122677439267353100811215395587990747717006820316935987911454574458565960759806147331526587358425825110085890694014335407837979411587401479619645068594334884579889546604865653393262312429896722906148039487103366685841499313917395641437989903682677712898455938287367293702037616637939651456850179606707692112998640584472036329342462086004366092009474561890007998834683894584360989850386067347605596761659158418379529338889105711668803856771612811817554684266112012717096180273463128086469101201731758747186886501850014173193905450214597599795833313582497446787712306590424378363148119860094119827418517465766584876774887123571015496638026457237979077145080064631003357295458304618963041071718723473876058286149546663642405400147379298348107521150619699170572575142748145705428469818902478903743194305278522379052369471522689802694714173847706411580490651003802502037168845306926076230022733302501987981961314552365381438484826455307430209608159618504877023673969132526327002366709909191547533742224696440188037103890373928546011593707278489085045603349281952706941665313575131430275118394986419105106463874653390851184752823731407789727355145078240691510657793479359754744898943796200871964759998057300378156411207953199503763104261557190183678452026374040276036416202298534332417169940197660114475850287466104322470627319865048363173788842092025636777857991197643107172569776781058886311017901093574398093144122522446160706750360843390956179235446382493899445576404011877632127147777616446708697964190229130596985011724558439560507197772813187320853254780595979028375072951273205182122839546332549469586673759319123930800601124982832573050543269035595394818173499682997302959192532830429370841780836861358459923898764276830255610053009975957426495508604847465279409524741703613780566635912206149899535620961893551063669391640170296903312514408666488498921838684794300592156456279403083017702886688907900401026029654988253450571617616871864949545178847285530627115317750250949928465518162664481486497653953548298581259327638085550743047345073667215905081740699373770540341808396605173112239965092076179318984307128867263688448518381801581950869886107553772087333675039911760334030900387210825874834760758113452814693941196574686699209567632036665349014418129431531772021986726037143522276236762003019820560776994933777489864926867445314301018404315770794940924014812383132262545098506991039531251675090078963279981677879249915041051698491401598308082960058370675263329075628173711618369021899132277483391819413441708074167899028476975592007908958173620464756690926688222015791056881063753532740070096948580925750734880606672117964441932750383089312041987673537049042914970535493453837895044600183198122485060512915536535701936009557996298265789100590365481516151393579466049202405238581938958376817111972215409745321757545365707577362282928625002380703492943362548055778746271170792205767603039757614611439318871426640090027888501869103553267804357891930212017810446134119314063107562225440306490938057809953483341303662246254541601343936385252345366606630105131591358615545153049665403365824026649743524976650394465922649609631073683844386318553554481319627402377487035519562520717080086983521040074722244316208633723278791389278692922128957191491361870362969104636992437000741118438462060093916397904808975774635791489811798289918046386902910624002034206373573542134869149851851384884665553594145181757396159628434022296192503957559864157298653553868077462908540497363302785991610324279422946209201502272339191817723185751087250273639074414512638159206352352789837139932744311714722479148279907866252071039859711963307097807572252272082512080465830028936070085498928915898552121021891291376508789822247801302325342799765897885130623211537394427773342719902918911719700013670141252349982488197014703895991116530321062335245960543554898349030231992297906683386620070809283718680668010467500843493459833130001198462459620776996624728549514310432166305332677018289101852377191095391559289628755915205088856919042171184748101641651645412262533839843518827347868541374830961327331405227806007166395862837342830879276480405124407687538697642965094700862838123923548558517067162492344142362457748243466126711749477745204231555413752227385770165028329070609104927133516061935185512882686281908315843900103591972968461736089200737838348024024570773519426604869581024629132952410808119764598785639871355596269583700472276837053871817669673463431668068478279241358929652754125443176782584026406795209127346052656905976979094950022179331578230185974795908403798996014295241790546505981467671274669279300519790376977321379956964608150667654325508232756636289076347262289694133068099593777691324444536571810508822166608084168407089036059325492970797177102596087094329735690925397031129594881928888726941329740077691860892416671558892167519937226112914398774539008755809510776090202106464574732782137651363930916526834917183655671094776665142806935343746232528911047735344974680426828810226613925365640410712030828372495653728798715087920459030786599622568317204486066979268382106467217636986485661361654051167635142101486622627390902783989100863281177686294523735044127105552738082796837522947452115132434996820198846886012122237588997661138044740603979047886672052189424697128760136080360659567665177436031906910513591990667884213445262803821923838094107677175178042313784875949741100704748486522198571841707383321644686909275935120406694701992182853161147287040605984585455181083487200035939081770044042483468652902965840348864061160085950140769316230848835185024060255937247957991949635332057717028342334405276922566517015291532069548789155410317365255310277493220920907264665252826989734117512771462254603655785462740700018097163528508579520826821391465358498749677626670419533440429140524507770963661943937543478694775340509226981519331979894837946446526401041052155565970393633560018384326434013005453221223073041584415127844679932216229087443963748608656119947279444258762261498484427396561310365350799004344124779748977499426706660899843302315169500579174915824280022144007661238859240330535900729572642287037191211491592976813290465243550192767045474156594205302494120734388187756625402107622701684493138088956228877378509184432572870562992518262453100500811497458367799336886768429458033418853300312027778377280154995580503214444751650951070878009500225393093822680263175919297070814486657391218283355447335608212448437813948145735614141444991078834008687831980517794135653709282361418743133318857290872096617380890526530892540028813357473767546302697617925955261865947496216921877961278863553189128735518718553298176896683513336861179139656307102229251517915921052863858629441691183976830539954197126733687399580585963116281752509880951573900478038137516186872546065415986864131857253769995896185540787207960575708575002544907278419985538097507955448593374723818929193128472966323132144473730990038430084394771994886752352465100290010239762948044550307397995658179343455107705738833841231794951378326501992291729929530763551252619260950413473706291831353976551772552286014044893016523141244459226401972531347863935438334918803555851394735219915791039884072559843492620805753925734921519589527251667060109338014555102809929189891477352701500361959970778481444657131132598791550450021033032251345548506723022913557661229962785678988748567238658579154471621559558582256220712442316076515869421485611278430638546499775164586270918329312716364010130923735794973271999744441258407454665229782722713777490429064201154018985675766126015435930517041334177270635336036217976464159840244113990537845961282981001408840701579665678175605913593018612228229754015394684127717044003772419375184116138268332722621293403253054949099070442785933843847850196624070112993844129848705599273255416209260556234753439316595372153477104186718505179228816123090295840149957018889639947271380346898599289962023281279660057828590517971633714609189316942848346497798439407610698918301271388328144939077237739695749846576729103508578428066588492215201228044255884472882846510704762345420850684022739995277102430262077960679587198110829794250079152992692835134796597874297528165692831305893245817275448755188714914448034521327497285716233978384548091609880340579048073033954039850715796595677883306875299458309642642235990244118485695463309435897347793768260568822917501885120971152868728946316932025883754990026846582953144162649554575862715944411050634786842607777912169944095601552872258555643124865657799899864903515062630791199783688586363878735256958004579265063631614868177900091992645422986618735135277784934501252476024399156498485171565661535333612071111785966480175772217883459546931423154327831899547032588762067684311975566349346490862156675400270185848535319244606774508817880577697444257214047858494053517441951766505783454678545444918398794724566052872861229942781546492208650035586388525769981670583427742036501230086697453601195835320221476741688479076066894813184839346085678825182124639261653699727600127679838026874859178679420033786757985858421770714172390878297361348126805400841332059849942314753017363166146388330375198635022109961729006328547245628405044483038725758188187768233118529971266805164233139284101570272720890707417647041850877095639209186969930755402894316989761842091635563468877833813721195136858250790172415462371389600152981639411426262789108921312456409593318925602347579100545179056315353818681826847747976611010464785207430901060164786546397459418524101395690582579540430531912902726648571025440805410650570395417886470646205736821823417852041293951752965909724050515069875917780689225003881343027498484036734478497792688457583965967800699905802818984369246010012015348742565220898854464212617273204103959989916612635376644170789613766403760989853063634517276818314810967511870706864755912273491216929953223596665880483215993347650782556427673900064441388128658997104249575875779302255484607577103727234693457598581467681774012422865874935721239196552551933369152371589808093539770079609574866597426422558720939964963666903473928622004936103792398009296669802917987229583290307957239711843900216589269651248347440316753631379110641194132745197238756437024068512228536658489132922404151085298491653898154826053468443937529733597860444425480713434338710383079362712658437075310024831467294532913675437518819613695561022609810563242373848396776636089412766989276067120209759729130725616843621156935276547262747207114597584962717436834551681730716645936320932498661309428562496816987024095634393888827889414665892174455718280478474043361343054063293472534410392041201263684537916228476562871933011397599202381332258004596806576732605785531160331568929604645456293392753333432923819312348371927806805050918920338662994055401880052819160128767204896748809625595893497286369823254208047942183657924579770576094494511912482163652656570719188290182731734907183987378251550731284269426564264905015372686058646780710677082884632439138934157006381893102704303995951648770813963327521645186282551719300694736398168839079651686819400689735920357626714360309554682491042711294421572321825159796917762342918627387033122866469966361694966489213599348022872841302749657069442574151670568644170630257008322636730662598927192796078135971115442382676360489560617493586985533886171985461307612698637808649496645300026775582946083964611387901770537575544909229779181458392158188695781611955481247966414978560920610330284312808370286059979929551521043257285204391053751483649566474776452358406117822743357804834932932742548625713662504526090108259268291454561810562778754246551245630182142387411707697101828598609835258096718305087690962392388169445307536781645907782416558317204254101200854044414615911305874980017722460622011551894047074975535428708917596962580456285241667446211177571142141012203702444044939800335668670030062641192558284428373738378344516560796833995665000895546296643562556900089418149619141217163456530247926438072929572165807901395546209907053310730161202913149802686138425303593776372229819735544636132938637159528524434122527428027538001039672687339584974769444173882881857149631134847456058578699582889378777350605528109149470275110359237716737594817372597655589906037922637942133906399645475560387764431542350491898773514413652838154336041224799801221428469692036565757309048145245532278880407872997122949359732483679905368992876750291882222524054919880068115854878213641410020883791864456839543277349725315662160991115491190223108001126543449841417435485952862031955817620309318300774930026662304521023801693193118619352731401453377653301973286834696078229623333849036928538674724502937717128063288908769977520043489712751126340439642375418994414473403900920447858172184588001921281827258380145477439762366504045455708572177599796557020103319224254563906324085047735990812663221830657122479018975615288659715833073924308921501200147682467678846291481810539702185225896976690947289400949677045192554031635834250197441338601073105983320288562238089389378552261354152348833739103851867693098757592764321182835834183595833515730378340656383332129656590329177201942760651519728835959678021559032226343533223899487607345265646870183863152461609529391983508006740123767895073544526622255947838704492108323126766079644384653622315583269840865937659306131422805041378950471156118810844462108251145253280432259420064962638824011617077603827070096957459736441195966041001273605950175728452513540543380358022945592934128441855774392056896307366899127947181011709964343883042760866435499081827362932442756553962808624699044734157782209217268797104336213488977746441961992921009231042002431408935414325678137034567355683665167185306324743310432453279027444620710686906130242126370633010467972171990279466526886818325367564266351105198996441808328792789328963414398645661085923456614676852715013472630878711582303875618340183715058390341605204983406733736790612733775830736420470658032845283430482301573764634278517551464727547307278547184365628203566353629101235824057421010504266344950851350287175517047855543928218122056976260556663174613569564071063747062198051558646167473134708865185838706876157409337109995309023531476309053205939217192392133323703234257095389985373473450172193061018594027678104000534417980548182069742040153147622424719244200986443424940785362392003350463519025595144540670061186156772932605501000960912638957543603439472063269796903730001443362333938203967400416078057395407219592422221602348434129429544020410060011972342301342515605918669201854767820304218723218243182424179356116086033705733877282624810619716107879284173897195770232376072116804071590106226306738098684862970686585072427810504568999834133591606010100729138085630463915360396393336723055991388283327403151006550145184507600730951892931239867067760044705915093527359647080656143393414940763685629747084504080189136667548062160834986075480568149552219157955584696663646574947283334974174958317178085923466571866131453781381273465382813622147788576036003666613046687724807128752105072437294124434657571874182975018502623177814363201207718532476746136937667342268672090885672700532551147611053039607821003001517508451081647314497124686643939967985457411490509697659105331269843363579234293201397448693965901696128912367437485433879565928396678109319219263540248110156435463880846316108639266679509901873500180290112813549482494809769264095370372644860231355168511127054733824847172629775580660058608533936822774719619830725151043519033029105687144810573183353053348116019370758766151820952553190679949472825980262283993458375784528886270536036206657790303891983250167510055365583798417083317857246454571589931366972513356311562197877825369901208759290819769371996047357185693622968513771390252299977704240800705991631330273725795787946377011684084662047052412468108959982028559062237050647636190744010145757485154147852939080231228619144930096256987212303197289985165515290087024880919974623396808612800771049832309853694083977948084243838180415748071778378121332437916809597440742832613913680170346032604909208503546098962302630463111359936896912876126473370430120010585426781997878657247464568996964207669478064947109151454981426422248006727974084667155893945471692299411078359956731617621351748325049702684597597702100194649907406038972992566991131362213615000756350545787363002719065142627375476139252669006906120694453449865169911084929559334961776377367894269648959793074066893409837642671859768676765186523006308592498067398645360269656720723380547775957334502883665600236895868131516134655343972882762799463370246077185249313039947984983041908429474241879888727799352730562482677346581319802941117884509161981262425300593447539177138165142664315186990535031645744241236708509187766617403456836082920484238803994337543771087292942118403829491888641733346773757997966693464679830451169163528931605092686544530180890985861880848487513134200654438752723029210185767691417559203200752611815375140989535413690434743850315103429737277007681530675124084207237010891423379247110303773910405618456075062997993441576745217440785409624002707737921945867157209109324875827355610496632317450007662167947722299234770944486652875152675582105127165570001320093461543691246780184389164849667563287638399243565625575701732745962448124934597622149232334030445316475866366328673907761622423400880732856419537487977042451601138976985925718253458643380015408325655106073648071678731011180317347780891341396115003881741516983381037192481856315798331355497098602703310945290076078316496010831563058210599189833579162191792559524548605523826094421313043591800818656288227802608400007021835692957513816598684262014381645143284085473928323077938254870397745017678750986575793699973911352762194580277370218656002565752756339242713907794956066600477100998513410459166837957884641004473356155643860474183660920432438140834849067499668734680855898020661185496689519190497858705382937047206829709026711035214713484461751893491979360575745320088024575057954684054846383807526036061101597494833626201969270236845219339338061949436469938011370259796449338028319841296568445765192247937138355520489385026284591927080555216519780139290392298616429149249991618697320535101052013129336226521528801548036176323074144716895554407301919679173114919293161597080734056301059265173625479000542184864313625181750301562077104210179937099510093766783659660668825660336039835572544109202098178369993339441849210497334557206772049767928082084901694654637132138105607378599063276003999948384377716392508270009114715958234384127900397522821640398984682583794373074388986923922539293575634027719961646093430167130771678044862637465352520429037813597154958810220292552129264714474362202233287887583302820250097106750303753270627148665328779896953707744679171798398809905680550262119913813964663226971540902421768622075818205978900640731514856957869539226595458635666885259338307764419574679677444842724389347018308020928501167460014152905523860683045034594066550233897006152338732039640889008758444816107457316762926346758218976787784978617994729197094012064938028207002383130191489872853434441625520871117245012675064547600215247985459321516947439183229281309054905378597302763412456725002438728834349350466808077338777160641738050651000469971637968443133241723311914585760885165005588399199385822719570099712018118208500806188165190909117486328485819798472152355163759179614620548031518053834993366039806408385548050698589434064592508141266395072540438058598451834421428426211275370086662110686442479412088798928275538252189975133102393351065892922500454849414675249950229601410363023711852557041297474500309182997173077379959937675347204350258960164869782073449872714152290807374926060169804443453979322620694730163834796656698891987361472566493496286677475181686230415242892684036155550460013293798484726602836606418215677375865229564805248353850282249804426581620669527058799946561319418146712176590523040184225598326733274618250394367611423803286926414720973692100547683457998295968328902146445655261592159089070589636948209189263151714726807588314223255881367676823175965909150807793375087697075249521409185679041937129478516642818345274652683535256894685647098138818814355734294876751692798893741861646351505704313637161466080876722791622069037536586006222474694055239487040638664507524895617250499284297897381949103585225374766585712593855383314503735261626637580253266443068550025131270261759080606397178915590952560905580708099538201577627499351141501993257266100486628853516500610201957841279148781103020140426846058638378026899346225111111110975140780153584223511794684229225989590914934519763015662289508346930372362852393167794166049099771465146761058687679542243038158130694773823089241071027661488603234864581291914638765455895950608908733911280543087142869301155675884230570307099549303245817244273019421133209193583875369679371330136100437805671126571215363194244331396159831051021555030644319834979768196120533938697182604877719720962298378855707086261727202188765464734551982042896546037172196840938416457129009953626844680196873671412207149679000449321382091367746628636220550231190379886180418943368054745958836301018729540549732048112148233932678594521500430851364821088539673011692393104356424729197039756177263834621500712932070505384130628799591301273002450532302453789215762346854019898623996496539735879284871449624559209985610346367069916788950400300054299399049678506890128725309044331042030161612465534388713311660523755761292798676057517652244893674293768342361745989791574165290212183207656437092401907015696972349779113344506235190588533498205921452293565624082899383565857246658476867502826484976374497114164661519931615452533987500109448156657173043600518191145238438762466396109767806183411353077893325767911043161071897185779556472852251667026866085662050749552757248282073674349223023724988066556504197971235448153505428321064166233501754605270448707244715862921922122084102371406310647253318473966930730272645940711891769756605597712948030600327176124607232956056175225298294848827893543777204255398758674226210580889472929766811903408376835444589502956550718580918341917214943948982374888629613871354346726977670305685875522823125967723757866614986715150585117990107925510046199593616957016789965981032704230203984285739140956133376811648036635613582356215573791908833833784919782631425579892612846876878508616988992783559199100874826466516468365522830018815046630298105468526754252070820052631153478909782576556627086966598041456103332869460036436370110251048790243276035132337203105227330187477758299723172789030783685957235426257763672680491188920844621688048037209966821370050400688672114533607654197614949459764773085897249028572840762569625883408912646207769763857892075439249472492670208594200945685118145513112623533171776289705673691430159650767871299693471980798098690312934202463011011332275715970083366010063827944437277679306669503248734441469874894274322508628907492140689382464654312926816894937276658918151067756224091349339315161468216830971957325847724742848390276155012828658806832946650861725403093258771585373025054046708185523210751825204437970988251541962215236089041555828555388868734080314470545039978003879720857318143452939004356745697885078041440843086392878082818657814731985197241397250562392903695139131384382975836231626808506075486141474398827915402471320789705376531102589395903419702739556518712259092785126513500974332875579459345639086688120307210775276169470826613039437877536017800289810713770393325657330601011536171003786940273677741725719339691417713237999703251139690352244267066390678089364161883939761765695249667644009830669072948784286261608285841706585581393969811909597921354834496420249616218627770010179877039919884815211672522781365211966887310733115520566337451790735962016381325085502242783826741833781643592351705824736534330306327339082921027627172764079359512575066882311250374263142378822035873660736491989625807471113931335167962408151715308792611455747186980993567270830857719444427860602557333398289984946162414408571833496070734567067768990650148992745899099413265672050313881521703078494158335594150949709645053247692263921292694061639976698326075094860152919147795775791523581017578994644202236480156969350115773424133032558004820263838458858290186533969805405866487167459188875551302767182169640129309027398417037561812110999732925008035419552111008263974588220716419273760048312146479120293509279508881961546673244626858671688288376912768817179126530171373043946972258604407829560499385734016383315603976470764573270933791535488500055710752439767524667537233519907314525217422165110348357923129542846301786415879028850755306520701760739287000213372163360031308905030049434967703882079209624665455292416630028730904381239043000002032349773563831268478271737992076918861495564573931781879793429373447546944666541630104065488538734789824504585233431190868681053810937797443277817653992060349575117786486283199631579985666064006206328033569191248254368853447945900286829172821015105393604785646885189413840040513325865243527831146024149130129288823624266426643890093685590962104972612726618255127971425026105394423740085789819632939371475546033071821255045096713232089875197177045266098048841490381386659605163858432762624502407997329616505747855855744896992784341155651286797357843854079427129308221078976369207807207086453377715999756829536450449443430029702820687739171473235309533978016246730317133668101923918561538687190130931746439957851290668060375403701283092493316642732975427659798259775304137392418347376385457991949416528793276168633742113678808308861964830283785244712269263965164623876798440152697689546446928546646507907976669069341317578664256674413416128159040786578223286347097994922288042928409131612807216177149543423797316843911135004516256547585236129720222214674533927038743492452556248408208037628827344803475325652945607759794701759642843221580092296474645486836666031278535678491038882699974675013309320802999079357110795756559378171700766984972267715038272492079576258440816760565384271104511812326481329922535277200783292937591077008483456824679695141469692474600918438948204633919715893994250529912076929811578892278638936697960839061872456449499179204175546054967612002696411163688703272164663223464380413202649683732306964014420776340888166887134103012749636052914663046795229821631663657438456671329251858146193571518625978961067171889992301233024563998592971402119036880706320414622576121969964337886997812705162097240138037753527279104449631115972580840826986937081457247117773502012017715202868121184783285462639563571542982302111047504852013606541547741099794607049814909782047682418576428428023159754188293053205739905985769699848630664262071476430016371580501032019927509404325097877878416181770882337218074613122487042936359989984617736206127803234291974830813695541209761346313059118758580005378591763064618484197317759253903708450253539620810686241276796864505911225787304669817388317746229718368977201748692246437064984405671458047925141298932682855085798289149763617793805879395797928069830359798217467733798327316985991416250887922778656276353469662304281839440433170780213174527235473647325797735808439992903403468884246200619617788248619088267404246043571512369531772693516808874160275735468499446592429921297679267850276642103850730525449514599038269963323601163191392221196241183027997868485106693584493572053532118049197196267583837285618040298259209115204199555180829825778402318161323496546445452089322417477189883508200777038738523667836170985042498013644984937701979553884990781184060468490631750495232760870030787228488043614079641276150765178774585934462701527980869127129586894854270124807099438351793021358785294768936990306292843175055199290279089465387426893148375827744273428999333646593927521680952939472761414761602344302556929093036000163841323521738697282831896375679352831470139994006579134797692466005130772456252626908231849161402689903290171101397959514983540573999349342848553508049917342926230155542097730015642504997574714224470056359744651675356466512044456209498709159700564219404513350626326036073683671027030338296761527307211055721586703521169976721149919996186781232099876275906008806598623313340449950330557934797760079799474390881328878952018266293844023550558961588821398034105360869669271415704863207085860496702424331676105320134585513631250303771778385796415045407803815741413952532029375767451502697970893176829271207212038386137507992392734222135511854476515367701102708846436655877404944708047504673649054529187530394210514787247327622990739266237909632510938421092034258098254059596398765759439539441122641304098165366743543384892257450072325836981442504284730180167777448766608960619592728487122502256146622428580426160201366585522328425954489190283497240836616856238518830898067180061315501354895225003498214924729888741641144743931165736036463163404165890344009651412586102813733424891749062266059998283454257501332373649911672723484018200500442698110585754618175456724878886174648280889923259921766001295123799350646944689976907021059304022913271940842014816860335485018928231058780943499705797179385429722569648355710232476239810428379115909274063004294791227640644118656992364625134442431429179373179646853904709849291400464349452211287319523604458252195996342761646555637617197595357382160360618732097646650123551992438841210383612394006227484198536950381743670342818516386546918966118144989573057363818970433608442543859022301965507424343212041507601413209415709377549773296402763808952968436285406221225594523528711550801499848787291328620701449704915123412133626470247687540105444197389186534434254340513496718095642639797866624619231624242545939885714210360693133218717913042059631959802135233728712639681049099340386383082066134886205554715124301833335462834814067837997051836624404099080255474059281699804136290035863263337672247322667329852547400347242688156650869476506139554225350308602805833125296499458350328836532384496872639396903977289162066152562376257823060206597178986203880687753582946053928511680927682746956434414530067992478655602162639382145260795347407825516591472577728748655083719244788019530752911661701235814177644633888878822031313443380918049874406515095199072364888651808519583578468207218840771707491120298277343337093028270829123370906733294155240768479434330846788373900874395304481916868413823083682475196611790086150109448510018934862775161359410397715681766491464285701506381654178321415120837754636016416574076858750988750182388333061819131215546581107176475925835091960497294076448923893181180625195112268807118658942900376634089749837426113758282895021727568686363342170485932032243212313176778875843610537582305218699215569261632883794526392019273949813301609903234527792942732153381659982337697584374178667046374582352788562194879533582593938031258669991807659067345416992252671299549803139659911984685768321832347403001546237403916372412779587223588250575322794017701275925886781558667455039179513204938778995455895779131571240557417051028181828277845818124209902946264543009100847212436879698016124764472416570528983553210462620618092849710473124877050765750551977729635756677775442334543948373829270824484793498436172478988254329536992342915643503749303938917367740569028627553709522772959738872584246919667359362581938360960278429622035021060479374815439868651049110707039847418437769921816199474193796643194784356205930428616884610125986165071430305465508723896081175686862150973151496267932158924597870727200968626023685697406716509892540958731750955653826965698725641691772314164255706890708740925056627297384128944721390064643205365031586328200249506889168810181820822943883435699930239892274381044004074542938443220531692606501506076510617557668498816314557307120269170573801250695496954116420381541429576288728895127995879651944269851867084192737739417597742362834993771958576829192216865112612362266190187436537335978866536212230785654165174285206945542864693456472232604935910464301526049227979635481124825447666773479555342356815792246991201875963502713497913315143452324178846538194544377587013206462968657018481067614558503056135898269768412159911733558378570505785162903685039913028399342059942230738325626156969126315640762665306257116597211729189406591542030622687098237839984110272600018591758789724388335984818832580780967558295210537897791682238465187410324877721123141476410446812547866987815959299579134731066878652087979972023268203919750518582251381496467868044752241629236285881078083410034038718508681026914272542244865578033038578053783256869528653054055479954718901129461064571748291130991491691124037329440650325339037171069827037800472275155460585240577977698729631575419565903401807457073027869226463578621706333432788465672517327994116187121716988811526384554443404478544075486062380250439579445618127129269763282207547478741656838883075247462611024065279112863182846153439050627584687846822953562180586874370073759736070620341248718401696025195245324380637364760678212337252937209942564727744604233079958945244558885017834958177468846450965625276198026167910108021030697740572219126292041696171112426509503233777366329570279355265302726739018805869462732468895252212673046064055199960636621586613616382263147095483976308247612822937217097238928067207532259359445193901928270707117854709671786961584653392293344879214671139226607307910014529805710973426649177829211458956019735029310652132256418645921575402908573685487459915186991923448438970638114161713437298061158002527403767607085352142143295688610639223355557086274844966741025379377146383409414677342572580266922645572724454587579129947728885396743629866741795858639794019357222639589235820103813640156469969767756264148877774072835342262152925882656656467714340533235281907385960201900093485723128504830660916167614706795163707030972905620186292576653246964740987920192326833078580004224619898150846820175292917761018464277455489409731985566658539010089770270524832812429288613111465986070168639981149462053708393617907816787988592399195972483741774262733585621911069608953248440666967962721710649195625046998044058429045806985664221274626636101436768704344266311507758086608120654879686693262241597999238897143708581165117820755118808439189952636004062711585710229899790428517757532919259522629473503737464151331780901856389401177559397585174328096997367694301508516265886384204207642024723890254902829494639067097404919463591111535647489962234341764025951486244149831522935239518353237843457197930744383293129847556228403677663589659041792576035991209744875175502410848233576458640710156116969975933774303586374235343072592633857770192451099271464629787445650817610973327802539067436147002820733557283298675770957364314885543739229900320662543933970241702991478409567532332097115077380255338797640697651548419607215162455460627266251334447092955851674474397773484653078115225507841236302378067069285490623956088342491593589741089814030818612691350841061022822310787317272254479229389487910723057411640827215042396052321116809423997023682450719200813806954610874597913355232707519862437983345604549543137496858866494825399365718218003718769796553451796317649489680099677714136582526734383168950781572067887825612441304684908813716454363149963027995373988828262637887066616216517686250989558282409246609040367666840108981379751852187553799225926828356969483338051281692474554820655059407571656878740826634963696592834473151688958951523653767084004334092328159218951836723446105470790576110267621348281559968822452578626332586763570238522471928575000514172233919284149058356676491909994621072426328125146109229400095518292957231202101123621603565649691885163190104346605942504401341200759950005102494118085258260616651568382301970462992636640300996777543787361488735755243535266606178908759174628051170725928649594377915378487950105529743372135527864957662543550175566936146045883680384774631287321216097683204911464882216056786850954009992294709416602259421396618352974719602788915679876104389976736061974289717500558653511790296023004631322238525527994811345348665756619885432626729596674941396535035967820397117212904842642942873940203991615528347347138397923108165472854965905924671077612347497637203659084666956230124249172249250776741546690317954394384209098089890320927201902992565877685260094137965861070600634814130012705996641534903599012071262883309752769215353386012821306715073335108674146482388809534780712523638640278649174306973253643915677573546316437940568082211256772486923167831265476275695999433795165512212836621187564595024639813669080004353502034096505482449433540129684168151063643311408379274936898900129951782465362155384595073341633794383867417511842012802369890953598112740146387362241621023323281722589450025884138322823975754171195985043089415320564073938667939355936278248867526905552142357749400383150168423776856406528150144656710612879191444491579635042473984444192384610573319116727377916716836817682640165701383790831666043039403738254374904100209158985937887434923471089823421692789636054446459423663244577136995517652981623099464704901614798487520261666712272654845574017839114561986966084901677587829005195355011891323263867277720035788528824686172638870518960682237282950450956039483176623704199733421522137145110679927376024789306421686951433177753229830843499046911223359209335808036225501073072988263783803476836499332673104088342359802739918499817620604329334537459618294379669904460803092172685589475136464832055706386446123830018869203609624467827838402122578765444839120933704803741160531500432198563424769617212836887524463727528045735668429856836250113930079957173187262281056995685557317981065060717920265122041632516199901480230247344491781917951520089938967096309910166195293673745522074004645958211855397635283509881786439191539028772958629041904461219506233441626026877180761128088189586226383260185947203910329960905564783740430187040045379011179800748178298402079621547454507808098952447151198577635890528383781544475729506220270318493778341756217113252946559710582698799291824641656327488739293292284957842405839771140441169441288508111161892555640979106465061763726158367724293279088245170634566695374830449306436705145723071131949728556806794838679719337155447927416975402010706312040777048851384544915399279889645074360986846483300998487190919820498869326192941801995240169478753127805051627835521068645187892472168825372030505338778868250971757307823022595386299553525927035826604168424872711126999666729092707789854206710228006850659594563351766414056528529208977631837600565126587241063416157985978377454543052035174891509952525217825723778817943285540586387602893339341798966195437712652797429684741868795552805856451641647462247900833164469763889722125504455973571484628639901980164349328385540588974628275503236928115055798557557940104257813811689948199898635827040786292933548059238801859471768251220265060882520118779812973255138904745162425461358993763529985194681035733026180621545627836192426044596593672425238792266336583855886275664782717280214966439743323425158253710556494684930002178747012355341040034982245094065545324219686881403102037906128981764697201024659630192708619379092210039050464029344784441556525850381710356747202094425480367174669893858335433878511861049047244031819353022031751145309002342976737848667752444247642705042541580597468824276494196465192868644782109438017105886976468325877348652252440197888879484732493521131663383596980485520857184267069745559221195052332557604385019303211086358443495353072500591000062558151638532901747342937565991940531252877442765255491725437120579248783720299122194808578444663913008518432883681275821982733141169152512520422315134732047158123051356592689219684446139719354068911845082748835966200807840293717038592150892405890372539683757588609867071824437980749219006018451639715654733640754301730319365768088776685070807695446869149517178473149104402766899873599350462250041473589446406042700526201418783724144671050507277275326034388505881415880599780539480351210151770144206231603965571093932507670020107449830583956744708690317107810135751908646493170331503223247766064525234985912462817432270209777174203837172319005520382283144254537301329429047094926047674962909537447161547342712031456093838321860399341422202365103296550339997027525282697029456826947314042041550355889368600238328055026733926399877869553848449120292274606215342611904578028681958604337292795900230196481097658487292626288617127768166682212138045057393752318336075797220651956770675233886080630990584502262484563801963415978804404736913917203260791148141011685798082741555869934646599134570739667034724789292963727108491960180851168097242341247456924757476542711311599706944734002770716742682061971714116717236470200753383716101135740358078952270928502802269931434584354461975653425712359710333200814784618258115539535712399700706651638215315459828838397872441513655119615958259910952171486080516027825219648577890908968309315334096839407723171088394597476446612028008498573632212500453753845518352305830974486772270825696038650878190885682557552308067271905487361391139178122324695878804717168746637094972488002262718383030996566942975949896734133187915911483567555975439947973533802314327238514441857158573169259236228231069365398130887425096959111475313290428119728278206863448856787583005298712731101459551733167153699862660726704880261474752043994516116891519150879659669634434845759703178059499761958556299347424907057554525146648601820867442144511022260726308044110540011408859752956190871110490722702822641343515871307487592344561192662767255262310654881991564585265397644799872637708048896502424942828207560450238642905291224483407212263376764963225505161915435385552602119500176778692932006849391526056161545065319044457330684882885960782846989982257756380385548028907400208487558027493451224183489918977699306535666010231564083049392878982464438545619746746544449516919909294402281004474955611137516189462429240297417909068657745572591987005735235806375422136990469377099808978786719887133902734290410382694499404353516997456374863147498980068317871563804973287315571811553501353832882169089637064446996042680747838909498547759586624612770075867450659187788229805060798345478221765597938429657787632086513266374688633084030356276839429134352431654224643486227010005729926091055882057357303538473756017095449947486638134693765691238175897667182722732080138047477422830538850128654604236911846316041383058468778219909478007241275137874337869701516980788602013228509852048154488564088224348963561272065912987473870016754834200032417703588708458268386314149358624201399230525994252188199370447918447801920940747300992407001923507865948621989754123560580217366429041182053115700410975590876170022540806881414757020788924529113575375028710804216971494041746700008841481669504493440453771069001284476845682906203415119272436558051061100364793556572815690009358788777390640903166421220917231092319810811283379030089815917025556232959278863622373528787811474001505894300127647486295875978211342236052365313402588187131427926252935319806514959244829402257543147811026268025068974071316292751238496747918747280099332294913613552706543002223091482698860674747706436623410724167804042763121978560801832737217660969283627488934870508473278198083803657305966871078202899508618693388994962988068899885549891640642014635547040302670421376280657876073956082324896416160346921890529730414290755690830515580812905404880680212432745291542218520595762440809685575299456225991858165319334647100031123063830766402911471575725360239458322019040576120617306086473907659738626860629220777117917797900729280730848136853972320810911518633126409301241599872551517147225156761625893593314639371800105764981236642627263256485961155775346328417929972403517264250836458659306767539570368020806056378129262943880184278562963457389192284478931473915623218632435416002207389638932951782184485537648698176995454010101561351103444254515419765563753231455148057915805473565358157506707331877399609564237679354573594356280895453539303656086576902140808856483403624547022624386992857032854794105489505725646629193669127785617098193534623710810584966628337728948597099892921760763613971539843338042109935428425563678151508325196872575844761817163419017786624921659149281244552901353879272142084674702187889366480928617575372404467092818165496679872029635270905984957570622625939780066731869415605807187490446450220638055336389463358962617779444967936761667476383746553456130479192684313019139714584058263497412756374443871659323840599765413544139103078685997955166120346740819821481368865746411971312545492070280641738669283514091366393598030953905055323027019915207830651144403101379839955437473794524391400101317314216265673838651935387546466174034684136000825521535449586863725282038281746825590569111268141017314745025265403090177441125899690032316173824273352752110177143232537577871460056788799256967040732232439272370075394820217587230716938089764632420903634972483830865152971863961220856136754626667183354891561472207268894738775562708981425528988126402440041175378335253959754049939030095165570232998748641758785603222308632736787453456214798496786037203761749012292080175148817967172156901200698911476755484149849705577491763508630990892564318967206222594067982405808518666677760939968157106278250907324466953712512512593183547897342626937780770080107734214507447879769138463989771955772342642151436002541408820977138938198356884218945827437687538654631056997777565254307251384721000666050499535543163928938160529663981701439857654571164693079417472533326880220035577246241063186772551685545397161881701169552373329561402457709352722849264018396672763803752974127947971316178674772926653477147284900627417480854039176894747476633668307362491657616750256464931511001370433159364417666280451269053303323236446171192113128526791228264399303974471436105581221345969395213493237207643093619013545721917796641362191446270112274517294880221918470027369319553582530019604180315362249196629923185828376162154891370116428330440579464887379429062218419885425811172699890385054109385064332738551164792652543272205128192723396984850072419448011738588958607004628048835619901505340948590218912239440829854507219766058832228412823262966433629790338966493677495302163936673590379705505117217416596929389915003388518215776166493336687820627289816054584916858692529456414070556139101388646459949684586432660282779239530728690321907365841453338207119404793245628589388320426597764674407752126654959248189539807850633253988735493288138722575428191215365506080259974958532577561198023101689500461887197638111635954205927210765546355637499252157502355447344020586994850328388472317795298406967432858206242574536469226154714295563666580284144853614241909863837327904969391232033067529465127261721244803467405015511834454046258637093438150019321212413371251885978073617708026779361757567696656707928102932295609282414883165906954590479270000262681949443382909648164368623661551826326117673674299850186384795979123723645302159975599670960457179015633747237720056406558044901411675955251431709686128507094231986363193636532086601167975586692427483456912986578276883593095001329181499126203083263441968288497854578339819272297439478008459829094758424645395219118083475647085187231866898812372527809122145354715765798107344072032713713440209988243241580411038746233238829094314288247975390635079882855860353629614145585917941358116401668185963319932156005659032444185759708374445901953382388379249914901776290714715306995744279244334227368431898317396505753276529331497173445217006572007988628284643132123971479542692361010647609500528308298419182622699399039089285912035973819417190727863605238547056150688407923401776256617452184179380219853545133984260920292815986473957383629800360415717191440250165643506898344365778274986561840930126374368074477349494749597716897920699980238686666025852546899625948171960811964449151619424019209080111208735803763718574302909849271443629614802584854231794752752437128538292619859251096480964622860583370523050121046164851256901826110334272992544504180186184094052759989011694840593016174488259753011361502458827662130678840483139166388366777607659462373352088695614367888778327787424056530781570507674132128881558039442658568252084425251168577592198404273034141298825795291911736287638145217632603363107820258487837272910005161180187995545255538352237421166075305643002572252128950993132515234490531469468098362892569757826698716076828593061152362315288707624861035966844397419809068608348753922693982701005299168161260172837538477284907403214244736736267180995490328875134590747984057377952605502069341760437714899840074158706424913539319576308230176559190475753832565599519631682703777313229366878507568001732112087485673009984554658518240336787935228417449444503228964995197405429329098687514455358428838473877222374640217926047462229153231530083675513344524335219365793064740351686927969199765151562103016435095573831407533739452852486444900270855868811191853739659818299846874858778685164367635883103019743120380064836960629025477575438162103774292315739483577029915493523861566224432361729343865048274241284670172087194601274339470067370361907287949834560514103722498069123027760595964817254923319376497116812749223431227870191908336514617165487344551580550306533085822971065527465841624918272010002704616497202949653449527353814518380886944684217130477607776461025536143822601600676147918212052751285624860649042640165770680433399508932215739975114412245566788395886686954650124593335723439403932649336994247238806027732479169166252439336190574100785828897361252462640915757535744562964870593394644352120526393878889281440801832778596554056112490404700143237277185555417255768345846371028821509742028755015060475872238924642640748260486562121376654295196469521221368434512476768376395712690333953711589986671675502970889035648588724231357114544387065003521963492703100837549545765233908960085166388112876000107077917676136897291341535851502719958283076732369687596180521654119903364318763255180545229684089168009646220927150993509018381589926540407050038840518449039824106879406396073584158297012537903305864325942185255901516251315748134934635934592770110065685433382737916376996464389702910671402897261603542095701395025792352030093797159926251137389043930952533261214012405781226721138262160262643699888226287642441591634054057025925833378253532084966010841383460070928272142185612751027890901604223834261040939755080303161156038438162620098536115519482745020027458227927433022682247981044352466349651316553408360337921843782529921138866641363064133462974766514621448028923946421406257075107606471577549260946766827368264706695968558440640655684425487175957567548305792112136116374261018901477066357118316380873189882173201330910543563897674884117370545434588604315350132793608611564187133045230613853099248875450732508049660495215528463997882852021628533530132346186015053502118192890665506947591168162063858546081588495061253515994571898200807481133946729777300126309580184659824141302731757188765200046183129067812445458714266072057277338350328187801543955749916565971565907399835737788302217651591089037648889483837832707569591412467862509583592158086726822382264308032819451641410537919906066831011073094173069485704020611725677533506869859314191573012011103088602729962457171792750791551941960890759699218323268013297865391871214861675992503062457475010936585132967361472526098197030834122330052752812026294172106183752315930772734350801521382131838786898825910240152786824573441977235646221208559687559000231372308701954731467478442971532039536818240906338214970508107124588530771967407453126102871667375989422021005262872243996796110509206197627077076739596439967758425993684748923643728844608076534770620101312952466842262693084260273901108469647581885691025945735680555386784273735236476236039211284422728740529492764174560877504782649114812199907997449139337633997940080608533414027779650235361768524983547745883159558654482396230265410359996754804571598449580780116023271529158780269336356526547173517528190329227161355614343615491158785543323607787258646248749170831563513927972248230058451746994923692706769041198212419792665897470524091661520312907263364701669863165404103860169784186135818029596185713518625876002289375781680764024380409625594562699695438110037835925232237491018550350227604421743967877243928054460018583207105390222158588064765432567790195766812606056708631136560778960239103119445889597365813277126144322385478153666856522306855502162245886754206270697415130676807845904181775169085974323235917527999938627174473585601959039688964229124723134430203985672600736923916020958445967545735217242029163042311022295935410445843306582184363259362406307214561363410145458905110082634663783285402534109153956996392582486483457996966908149187621003686094071651759079453144602157347849561227733063327470044678993669713216497207258472320587186219185071729591992782674631553579293046585547457938921767014039984844668088771881954058845276047484167988857220396251458762275342614777727312243630542190571260958630946672265252505303488795122185210996089683946578337776116647078902901173189417779677808125016342154103705178539190996871299897701580311978440534923400284244061136597511658411333947855968551402434127049995383417739519178448622115788071482541882935847429890163247842765591748395718323493996290962880948947235532292592697695336198712757759840906473188285118107951061016355931524325971135897521982387337092368740229544720986962694454641516360060981699184233740384203691147171357279578556017554125136128514971124332813763976002151688689581044707731243786011972935726046224459810385080329007630356048443563034331556286572387583363443777609815996126125992819933328289320242690882326384343498188384573966914731598703625256202851224697054572740714335597421037402193919043384316989406924701230727796945327787766870927432414504776353918907250674888112688572698877531449267931476530129714911866675121073277369321004310301902669227143630333459893683306844413532706784894609735723034156710433382907361363629237821341376086100911220029308714926776161172452175874498621337462852421865475869834001528970318272074752254767321223967166046822109157396166936400651154459001905154981840043496603588474135277949732232316139149669486104032794520845699102366551420018835545561651473077598765623409084657936564016656747429547437985568671816094852519586054446293035129611208948427303618515776715333638254213015534226563749452651405690078642741560579231940174714529787518107706222068162133687365561874191167620284940781396382565353355628385399378291157640831468564616659422880968834822429817377414680241526370104436595956615552316746279771164434027484966726636476130169645574390099207560010826784828954915367234897766905566843173681146807932258687831371828763707209669163581262506199693639221743755601228288388987326021753309522403883824327502170324842887482950500610585955391560459629387156112381711057290806000776565182294858014959876017977944452003861743701136325448037452502855448122725095500075838346660591372199377975336256886759079634643341440255540207254818235752615532987236261794555823311353667567642568297387345950709302774346656517092273389719183627370097873429038628587610052206727479521131462236375922384467898896116620417761223853357919511908805490705073382856528957990004232698181966344145765404621268927422792876344396506319756059062260490399663028936616795832662104473543552763109959454436862498763799498017165335854618146997344823191174587101018301269588496005768610073375084861643945381470756640378437459648642347196687070416257457418671281122022553743538940677042302030596382355300915749513008129648602659161069894447642996484106524723335426541095959197936684370407352999466265972131465196990051026184279493103693486614188233139378946624417897164038464136720846803993956011362289878148727002937822394812133719402245749085657287964510138584880507527283629653065369107648017977535614045106835307287762707428026374231060799193724594480673123233512825554370637316169496127131853908642056512357648704429962504618755013920145568543143746999006217817599757857932491617998176038794867368269908573824333807192390318076437727773768748785941836222312086607000574771694957060212391332521919472922948306398187485561491562482219909889222547956333878050422519585865743867716710906787918543474280324933677452156856955601742129490112190713789063616524229766170340014294128069666318766258796245909697945306781634336097504589269289742067747918439205789063571630083877069680494642098303836312890682688850023558488388353282159726522719154767981294955998833268130924412339041949685511475941329546338406120860346041787021588308691745263615026755767823865682989610821333465409183219208184905600786198522876422989443009204982662333077978861382978766698320287810732172635648336211574666591664334261723199179475417883415175368027034787846569002780047308587854536745689624551621344945834547062455823021619544145290343697814242040100760375746271271346064397354316583934240334639259899208116727933397376261962959507077344690910188022156448276261150775801636452195852042543555532160501058895590741176454009719197545009338383843683093817001681614621575043705750318268403368502734503504062593352278151067375356382278389109062788016618475403666526739397058015603457683607082277631843528352231176120046479633286273497232625213167349658430741479817723454304787351302908230720166206797711343776497140437346400830334330738682741681469376910729564053666499490455915757406218944274308777032201954607070123921386713473784855642791398208547832166852616697125836545673564458662688164281642987133025429672434577735368879279819838930021700200195213856283528797697018053473349439016217512941282457310137180145437180941702123068894876359825084925943382330995430139680631370070873978278377800952566534406795613446057258104110313054922462507497966251131516392903677227913979956551448574443569853784358280565634164624144364184083031462759566228676540532461130091324954439310820437487725433176456814016255573141126226938235141228656596516347773823943348098462881100789470586039528282945266136453576359434964853919437051503370834574500665672636671811955416556049751452394549020308615200333950367598585752993457740156929607257689994855157285383102895119838210219696385513085841056875982867206018132662069952203581732251619369821441269417947078002040708363202223243209439489401140474140089581486766538438651548550992614906767261760607686480765949396509830559525330709846138082796535321185868629900854649218300187973457703793616407668543458465378122127114895732468150199597315925534244436698558580247889400934209627319346718184564882055465967540969595730475440278009564906181601724816216743850405888571591690772006295221441575045143770380417447736925931249444945102426686341560329589357961523399539315450294752024583116863753242892007214677257813563927698461303767893512881068186131917478577718045331669545577374068561634411009986083961839211363149024390170283608732210024996820846062566710687436941407916039823321186771258799779785645567979816119668959010750386663957104864952578816416413769313810311061832650363760656168918908075350404177357916441050686388811381007327551367032829665266373885387727107114430860827327920753345681648690649178297775622927858874727390146146237209526705563727164967017285514798556455367452685303680166399319553045200367114559538294543674854917762417367373765216932665166368252051145832777379171455283071825424630388873903215569011506645858872053358955116133899229000179806605890465169429149416633628522427209715255123332137173720757070507637914179903365859967225580948434527909577523661596025936222119385925949450543956088211145309265242879452137356267532518328890458088717011213500834573400280647414112406377141042507396950089051019736963500238853388114214591148448656341205254092465916143886010381603147691933626787331526457598123438479005964432165517519840071174189023224220622539974651272513168073703954988803804816790968499462109632178872144933740420309463925256065357015512825769755257101724371045094375672238766000181114763807662007418054347331315826649285387854853803912207016945205528742685998752378901218011127914965771685685678802816463725045128966050126824750743451139197036382396073206894172421118503958682523240982698221207518393035406823143229770281038671607961085557860548534514958910944042023283805980865803278372305774408098994253635885938694947910787405879232003290203375735859455146036152836499882173595455940905190436333165665219864390194277255792220324793746211724335960654944975890971076022787821467795149224809472426322601747134586891913518886225558112164595720617986696370000805499586938840119584134386364084595356273224784317572293145804351012884642692759038683390372088933055165619971210890456341401453674031761565089295786079380166820614849548315137905332920980062689037210065322147113800328681598731052021505926493947940648733204263382659291592414069984713517933365800519260560555664742889607140929416994107832568835389827885522896237630763577590639989426803516095935155178610451617507377901540222790061506762996483053483335158054427527967108099578582341735482190110525341507780661943365617516035747448428033064280049151815442320402344605030861888934476639276102285321475556214951689627714129454480078470958463896418870004062498280021678334367367779233579619722715407387451218132064108150580181577438953202588461473410187126015453652694576922229336201699322295883363249884865358219551398128074278136786724670842874400876228731040393266515475433808476060891799980926573957241118525247515276028629203493803653350141400318942106466447408807336970932977593162843820320397910664802480194898782351584257706802261929348823068424260802109244500074764217981453856512735805574444581402097782811058936232730925523059845959449267337566243268646172463781642461514839659112781598912854820532395894045017080662233071489294870383410517459455907570889917767300177423212760671988639237239868170156066634020802890588913634503228412182829658764518195587190169177818236831479792303451347325129384659179267499018865838836757885861586593551046010922111703001391929467528108093841647025753884625573558227720516854876563960201519970653920482188975612335037457610464449802952052203768012277380173691313954656022536030309490024698322795799605639226156056045346104611158000985469132740921992155990110036805782518414206438821417900827168109792224250863857898022852785263368093263274935450328890409489821549422127384527222834603068082661691598135475345121917244161097565243630958423761224860119004315588506449985136523677021088638402268414875261213946693628234163736720380764712841780640066247525773706626689480314604221416532653643131675929273297555217166584474546718859060044539054545310198915505398083446600351386220838881919070514077431953452934877817942427513085649385182762140519913747040272332479336209823704078055517999144987737601047860281859080232085876528702726684736327836250477307075526288776984777026670166224351231152583644834362571941924282174981525957546667294166341102196350743510757469440187858568930767994605691533451952340095375470660380226782459239061993252130246192743966267605704012674153540041100859349101732656650583003857549643339899374895906167999186811832164968171156306672213909025594218215999422920527444093572928334337228464849598110095887831420480706810755136496078537729281666911683582517180305360032576129255301406310750986144578424151930060151177591546393403488969675850700869766623268815442786880600092911065022011175569521168084893537307058540625161045320594889654214155728248076987540800625597065000539809516383993144929703072138648807412959291009107431624649676957555613819772840667241446864384729894533070622326200454996047554957533180384268107701024859861947679413523739244683209560017619089072566180352344831715578359714087564346099056410864880332355364361969749416921098845895649072920952768527206044664576944559931827980252685211964531903096343300860687186346111532307703994242339765477409446916038227486998239087576953251837442263685233969622341572761555890369711646083785743519097258551144299000868818317516952883017359156545132007128582373648357035246956478546340653049067631735395934604504076970774382886089973211624085229855333530417854354687715492131385466537649602364318809358409414356552802374472030275858354365345495983412319274065413525523745311518201368194718994145548566474771556545194238938897605358020645580535473670529824102178937634425652823226792039249773827601369791346470253419945134233036221586298864829078198676274111184196114449941966627460992722195382101219974892651714152863593754427368771968641914507110430918049430893968931427486794494236210171487052255540813943037052661071066615609083415858167238207468639337958395550519231111479827451568983434278867265015594392242194580229612733525856743700371411915697125495957185776734406839419620497730372180904056552167087334511818501766090472789146590539851060928919160310128286681936714038508264022172376921745594673027455458788776341416856710508589716633965634659639803288581630116020552935853562352154679932840404266988304758081086595463997202900938609818262099194602215844984109521462905532810992804504253985288271628625539383188440348985894258952200587298520496552922957041394406277621595576653470480732802722366327098496067123679693302683528848915385217749411535545337908015087639885731384105914108660681467930315827107818944162109431661775597280472514390199680186356998472144424633221595635339049901312071173976445117228925223832019113786520943075443106795939351234485550588046394247066438858123058568698937190130187738104954728863328657679035293645679731424259634541683413377235645568867938830752073322951458240031136135964379245634575528110160987090935394105756876068595251476768848221754756382561260696430266939366220086920524136175102638059234277208174242172456632061352578529307602620554487134774429669457011237671229165951253786047036497099856542282730856494834779398306779227088027207669601535534614176483576623361550305130389791761371590291417049798752321270195004028204367267882711341910905911331286571956631789949770915989405793554046104908638403409187312570028395260298127216349493347433922472229683085897868592829827145704494336686151533637166398634755264301051028144333346457237348842382022359900268789664218112698445108952176261615748840210891011925303224880061896270344762963377629168877124328375587445498452500239822492009021785519011036918291086196275281643208768194052935393039445832359029230831701639564360249099605205187446360225965859728070322225352339237249634749197289349703947618465845011801341584707886787055004595066231828873835889678573543062814243532811948634952404759283208422795335982055097604586464893726366247033708745494406097955638693369460267864596202646617359357499288284931688889920108706959956105471500351818491638619277105868824990292155548664188086571465498141761259552969163828038007621015892622862670614044938993380755596049941712382353168773080374744232970951864465471671607098547725179079359851057579919523221995649038413423312523804539792757087629775869646263729203247495432118404616252654241299659315147889727560306098921921875542093310253743307760600961736000042899183474576559562311406167098442218632630116404463116942682101214000219387014729767888789380054807732480662632486482951201529832112621003284240251152676310247597636049914197991171393440089305336971613898854983529702859178558326349391826560871939895750729174832973727027814642719307108440906204002296024351476572191572809134651154760781154547946230961841736003463944695111855395186520775785983744265864501720712310798098278000363032815407101413306921022871270093131677919501335114872532347812485107608439778074641050651943164614760593885246227438605727836118335251614961492894387167483922454120733304605268270243115246367297200677952598464334151198251886847525689221315553579697428573857556680175765072129738454942624487523460494346669894735473603203263264646385237838932549834219753920446470663445080792810968904348843918694224392669973597076835297596991886968436159146375067111789080256083509983860176544711653081569212096137304661248975151430187701872196586546293841173650614185182577725739203921478494810787713979415998410387043334730918731409300558748934943604681437210467459096428154508061328185034209176915331387003499966914697327294491778977751585527398298855096250856668909030443015335329208782420471015353847152837027471190870296538436060307387639121784019276637406632399894288665954728944682407729117568998220477237008723957831618882137981089954456442756686716581037620672751077316369907231512457034361876319226846061678143026513752889615209222785560126752899580647024722853080524245335532701187882120934177552875647415818068878773098493436441203143380974837271336933827343938620930249233462714416557107794206049332850611620816691419450388827647542493027447260355936674196384735990202885144621718944891606940841701130041020031733322500228443182185376174556513941985692936869215692150249266513975728181209561967242456740563663645915137821626311208177280883586447656626368686599998003849134095440592095110740577421034947224600866157180124641889015497960571355368432501004434043570367156414053626095075056908020928984791797505286450495467890789615703423459622146741031616004460190206162939797921485315663312033891611121136226763464252483700478332001326087139557787323679219946456905987470860217338462039304800475733583937621409929996495110058423874357488421557125344201547717747926815822343688350295524319988636774264877911525134053993531798618415087532634580105225283004429318592829672201429973055595815477888388984892295425172338734182048511228825339229105360806620332560448106453829897705581495489899344392801709475166335932074683345121071894283289211094701921285021863779307526247234577126217283842681738369123457546321397433137054612922455840563542539010596912037889072962096031205223850826016627903620523986633539332996675227454896762688079486014217203896581248034306648048571953328918238259842612482563467880833207645057727128366620003100455441352526311224884367979764104048021520555860688425241662159429023613249966244049283732329231383064469819415795123032433259201255097329494646911396626515267008005841470972569522530543078631636889864786855237739518756420279966196530291252639415153282930374480259842833122017410743179071207998899946688747415912458174908126088520370367416022098856119750307749842859328576804424460491370901306764472829944919262881037390062820531169605435154056213940823207767437164866151848204737487967865370757355971559167175833476436716005787087185909520921237807778666128932516629505576575776409139278345659121189892743408968327303576983088605183532433353960830247759661893049739336083083962333626296876848799197527056952135391156430754305163167684028814255671730619235469004779886071449203500276773308699663109102857533767958971691779886844261560185010221166624045566686086067283588670965521435479869473339405437336424473039512846550580867971737635350290809143692150758972356989886394088162092249742390842360889719992462145534868837413775232858069587398595410468637135023065900370641911064496635397789025482259334643073300435103905032075143403841553753793063496592096860149167651493063028937570697382843770111969664005707524197329194945366906714631117394254350272431192867314043899070059712508375282799808101929418815838197772725523645676450272210640972769892375867133025402624695234241997509137646094895543387041953803167368651982628705986460364213285565627336049078942671593710801137164341598129302650299302570550331001242485320798391683998586839947528540133619283081452864384505762320022454182535467608135489247636363615063681464141217072278165683333338108991413578448334337368036158390953743578941345699147715658627133871088675539384485453256712338056680588873651787738882463113804813198711970265171142550694885798388180548823058605602130366332435236118358589704040168653472735217761049417042479654333611934464370456344249042938529336904584271868209559618518092756306540381144594402742954042755401153726675701658222271168616849640039927850662240126678945133216373506759292971380606225099134909695025870677208983430197870947577903336399807988154741852517101325706504130914878792900542152822137787129975322132948085198929152709941075896575546775719321929105632873869953453080044629334613917406602931871923645588150678849773027096583244865215131521490670416312179442482156511664996787523055211996809137217642340882520268862245939308836333260623173965018765696839669266234705533624508160072044134588826082757641912835922347061590861781890247495922190519989639869496763795555408808746844637113607700944251307606195410968220131454214583215111659581028937700395685349691696223128669209986818434336307828608784246338592461153548983789570404510210208716851996949833696888977029937389776692468876110112137434478890053309538740326488032823396018090085175107751634973745723203293534093001783578200520077200729159292127342944137723033678095823887112268709546175253750452698671784652508103737616829130908704463985688012352173491977440854180255962593498431061475622938945979703946203083210013645239137116304443358141414963873483847113352855337268654496092790058484793005666394634327012226460856365425635112265101566480666486676469118301035255076895181753670715713666163579664350744329980472094385210850128452867829834641271071505224605459135983989325980978469516244238195041324656743779270750679795805401368616613081668827027078536379196507380834469679507229677620782162566642071460857661989932118241613004987465057329235706422853728695187432237941461592243296712079455948722539482635564157896153946227949434439422903103241838143746742388407688493661427486083323609258893056955272864616863356712172880908025232228108689781622800624862187149433698008364780892986233858398571876259755030519274566706657461593213460720861327541583443333085041831117399931216458670149684094616264169928447238045404627996422339072378876484992499501818294665141706892314439719675602891061286386586084555110025728424246650816481658430697460756805388607319083554406790778180222471006517652782850576232021487605897062499621411157882310503247457279250480613022425676458315291200015516856621169496190747805811387405582255681064984407988495737231200179713693740168331463953944396499835260073868238683127832765510815207938210476232872369503844885491518364262093435496225063970667113641041563418499788151338973865241647959847846601557766327406675996502994442018772554365127060261963963031095118627801280204357689537139230183854119749451049817496654606886529471873869390064350252213389952735924965450808554059971823748414847116885205431690963113514164576739432059061434072858025016863232333160288615465584263367799390281288082097787606241335682537759145699214023114148607692154985090421660032148898530805230642613758148229651406577107633737533956176800610282076417218661469330846188122948721381975278894494667889862901476852889933784429565136930167774328913255893662906738467544295441645824103438330404125781710596930557004300286873570601072382495645128245744498691877348937685389605271251909425925323431235483519926498239006348080835356280956469619204786381260952435761593824548810811845342670337929390016997068801218810474352664705113899552194136005025624716932448623447406861317841373949377367234533092588702141301898746180205195413180416330571583764220604317281119886189069129000377058468269617760932121682142406853342420039752352959617784610023706841680590243402618542243177689690365439174332532202261510651362963365099298055941516774501520185995126670945971429009760790972966620391900107301572880797485891412857717503752124005010423066951989731002078081078999998301993938379987220840848600956815943053466551643692921239570225820188462014082985586767747340876196479430910479260754667138125898609306964665750016694594887728227952364741515401250647343987950843975505962710236218439490701474861960971722430147183531267352286339102226559922540718490012652019311661275690073284802633318182835097266051361584928234817677528065227335525876455712171766044652008612070103312069207156486488032042085613317225933984123698533609855298452389688940517316774145349617956863560337875676189738436521480336755798224423868463184494218629490755816464511255061671069253878726541159844786958447259063856803583013644839523666680280282081317965113215248700576598234222531981688521738511532839382775911265571149236597632724039700392773055371998369666469912437100118810395836152915022618642694622961487881795777922543369170237997058848966118564237831045358836122199039143947795888425475348858509925982138176992501813409841035120245157947501744815647171292975403150220722963106580979880746712065108575165344712354563720865899138265947865362140629279920981034348155681014563140322553097670651380645925804256824912199581333248168686366232973462130191466206478260581570006629440012725062271006752737231877844324274202537550385546055012312488049065557795964024610456393424117636433043562808141651329519100376842551825547039498116423220782747505580833482492770265352069246468032278183679848140301023372625368050736521141887827085807054010612432828194354133186232513373117184460699123952530056822941447596991894879810011048720173582582207096002941668885533017065779056454466131862912741127757813436303101403660061427263087759337706342674084534344073219730298744681572111865480438850703413109883362167705806911414864379509288472136942701323248053947149074017826311940465655141794294474716365054662362263661195997414577050850414270265225394383757292856180761302310307756939544655953468585292101615071319234658441342438040953192547278550244752222001847538034283974767040944826238039062103918675562522287386436313600176419908321047102877540881013843455606578410462869103330680326212632067157225521336441303044751681527749100556058596221752250123590151410072391385466951686839158592896125617954040471059238713245404504717948132982750689228322147949281296341950315272435841227026582455818171016874344457643298476366887180960791784543629685029403834887183798637756882828435668869009686700009201187986975670997928610414537677556356101417572067783752131943741361681026661027463175823892690054622230756369758563291608044317103177787239491003054544043648138328509741476118474807254310587599189882098857936975161292586456167930745515350982069158453251526871011435370938076697267543942476365688399332703458568249511991089808875918878614022334005081506508927134158549058483911212879636064010728834099692851962950636297612485805503302643001266344653017168350505297492912296936549331725132140645053610466904772533615902724685401366808768143782476309012558462990537030377751283084885489361069616767115993044780115342748406490367292056430151372081797463724549279762538164618077249029927158345666404563573013846246643271105480116893117495948349905097497925435987388501840643397302759941757246069610477118780451892085988104794344655887985587960214831792710017276515957842711745599055176679118751685075362182550931419269380605714603777777325285903639081923492773592800770304104252520094359688739830807634796944442392424992881542920993500354396935671734772176859197735904168544896740208798157388603735365407728596137585636130106384894778469896143482865609523316568025391449524501095520421762568860536811180631380782173811526664361308686975171011634486356329676287283215635092825246274731545985601426693639917451751214963907356141678989255220147413820226381465333407883042836513171919322564483130492658168278446026747235018441713314534708992121014546648973592077297975372465497778744890337188145553726787973911834299356942968932180154919712057751704979374172260787047195110651944816913534294746135502809076973522448808465958747391766526075448086172131136455000278293657404953486533398269089649686323071686763990161403914977502804585083740454349406056564627934683960718537500177452247995393859604575144273306078847558947176157844846845561910871839281554425876843141907739684998428445008937314078558142606908904106244931133941437769346407148424729028289511897478366841001344490907164133626027891392848087252903698404116126134949072275318819882899200754737894553088228927244570463515879696567022007337434400615873392871060078775119193237899930646307647931972717711298001654049417836657991648725853848791553276883524159597567985458252468686345216915146549110319756343707433356200096911431361217087094887725818351190880924872063532320747293356548664988135069843351231640044428322729524100042530219181773697775738446610681601935253943465919936353464737995337484989885254660993373123185861427292964365520941888750100295861570296169378841250084566441484432714346822656324566344714421605584564731052210261800878632424045837969723842216419613909801941696418931634633956724026162051092717612477215334567337101111073110601039995798077179623490458873386660909219072100538530510507757615935393998121725077919284867292148212985751165420321610638677431081778847689568040742282166060952999117017757910671557421595936125178935692413085775461108440439428996322333624668281807852546723536670397091125152638793636260735455326594081136150795125539671190033260073461436483644782875651726663482461983617671488274068444213510940600214333773097278637175453080990772374774513984343728204854376606350247414991630751071353450191492946657358411434021801730840174329288666710184823756074177426684856286852491747344767567523096568056531964508195685734152721054291946056708154697080942501719163124379048092366060084152310717982633643059507526387591056976291314328602717407605649838261894066522861763293046419531903208406390115487869915845146056733350114370779727253274371442793185890463290573667757372344745154587103279692519390101009996515688200598012167357792127582114988129560869538087445373928129059445749730897126504991698332597022881365520841875696715539132922505099227474902953091802039577348430210982044716004132580969598570178075802203189287104199118272950596933517372525518764356172534154882554942440550115509798062245216658924301219461461194049441510726029665524357557534053419555403039874116964823747644896797313632290734197989487275104630561272201884641252543838062719940264598361215195093387357541216895222987988580153917350774671585831797426767509791398446831559704916110222546385319319055408408468468180015188949978960073460918386200859197627854123458202748072004457623315026485532256890396065343903165946691946316573176591475117109509224772221998192988963189624952380536156881865969626965077912956978490924770009421395993972520420385597612802091325977078701767822430029140330439581474391766296561177208932108426761858028744532824131271477609603880209940697119528105463198391366900678185962976366773570095487190720020541628101125858315613149745552976874320521692427879115625095936195416839553713067530854222743590700093833736564201279126188255248551943618578997244926855676787232726101593791972794933978099258155687109744646230291872104804149360225069045556451814406806639963487792320898117729276089927227316601908750825563338872135424992742591039973096522847300872593804640766983175076576727239077924121553350098122999218804404280316484014145648309446648232309858706403568591296826973938833852669068160719515962894895690146174138080007640423223948740898092775907076386439374173325578147344908998328265671929420008192952771797559449092919428476052600225946544374527207312294660095809740069208425256700732079985457881740924701407893367608782129561600367888832494862472885375219797287655750281784561501271926964740662723952625935138514875835884170810091384711987005274857917469219454284594291748002765553050567550726023201397546161821382868044938418156855860308226000089296398332473152107084329460175539862574268401626655922840937104650422480268130133097284778533835646943427691609555426820370935094915101758316996082883869973377945682326850994009773520317419736066479830706659574674353339884395647187791928492015526230306561988874835251530891514308813989633822330865003321847230263319973874050110336093598627604082161133099031688191780945895893951225704415663962256446370943838881056351732040629410401934760294081519740165262709157515175626636129239540822291142281273844108012784340325642915565570109587543005033854956642674928878205978165972825684951410225432197708393309752210036949741991826438774387312322534712851675015925960118186483318998496919939299033073431733823788337712014707441423088390121568126979614710882191140290614102116989717286487664195449211507950894928375374410742320593194138263915407968260432707285800647098474942313634000378300723631647633325282401871727046321896190189446965029323480998743325054685000080090588277253100893782459914967888757442865201779645712400755490857902266852547675232806435042581064113273339775003366017032195430251120815700459346930818926732079832828402830459920676478254323670757201969448809651633409161426421068491299785847702819321444159556565492221693008740052739682724897552151178658203647413298137252819279085796996124438209270860502438144461711964894847039087510625474134906836956557644705286916194650525183979344413387176466719357833440422869777293018119643336378460899004119893052424022017710319299915930278336426472395159971603927615843342825068814884761182677291208294002863452805821772042910566368204947806320191448604131828565445799837588535495842793470857658607315729141669808964715679707956937025458937792506292701464904098665055308305740967836010381657396197366723481644674631479371562612790831231167483252724064944678605177292172299139008250129228093791826488633089674971059968505319055602473040125507309874361061215002013861114879422720116213145228302100052607737334350954692507637240062679205539797635102105526080810283186278146374448827706408191613017160724322063799560578532633914036570357906059406940224106950487979157536766565682589873548534637720972534770843013943053526167207407262327900689578423569719519273805286940115074124447497943204626766434862224179680036436737447725114935122070228205972709849706726684668565726245928086768433873562668903192127085002584881188273919830805615465789578027966406898953369085602224422662166970081446608406969211345638783053655593356128566351457007389295394063368850727510267407400902420060776428007661227030509421993556620374069295271667004391667647847571514719891525234174891460642378940594163163873694796195576004048995549483209575971577220642772516199417329931589536309545454709263966020277320095147395176811233865289567925876009360697814709028069506635080469330529231075364289397384175389145636693981313702713473000185353986269089909329149608533738381736295435374861000451088452404686508323863052215640960844188807075865319070386567194178921697644226032876715164090802228198730580255304021694559204894529246767098841102877178092823373614239347638012789163664134502884303946950293906966804964418896098605372030006474811851275224531263121751494263554151579395115719630665574390835049202653458539741308670365061888677530844325442533459326787228362952604126549474394913761384849529226954211371531687692221211274694484927960775158659653479876261506511221504316826644986355093847898801729929584686584061380497461444734811304637516626094653953065702951159777259930027055589923899465640009477532595473113705657381907721110836125188550040008664328855524790409770791884840228142293602785328112173356445733493517188477756252752272382059646670878959230866088220768276298500962394031812717780571437459873268521818995081111084075552276662114509680778136747864376801446504822572430672556788678188984265230638900465612452104815334558627881165900662865667382463634525426580029943734916013390862848147880287255537921354036257856447522919091311659902796651510308025801694797359588686412833822941743499756469620626258947949643020617615795597060980685169278854137782942468927711550809544807414755503038391397709912952829334753424549342975386753182113916424477184513266218783395139417967177400479912348835620235787874384932398847164556511897576791347363328355100482991290223522853355409885145765648102463079700286893614236190850693451693688025976625360742637509220857456264869015331795864510649064533289785926554510449103731729498663521122662837528059987342955693254275283593390789542342801606382172915487331047904091718105808100586316491372354475953686699256345690713478165300541165140160287634903845356159658602007120333309229436392212306727451948370299925091491379840745740209436583617925032802593368828776473738378651477424500913752828856687031428562244105922521166540441879855196162127125698042127520393904969155842905266813802716483438498877370493232662973068758102622121833231420532287515379496574799973680999997820908162336376091392896936588051130272555943470447635555214856424991301763044472135980354097157344341782147826771017651099065810595169962100394239030127895338811114523798951514293244361939590592949622030356847824000727712270023514948639936111859542737092204073820071392096483321470705513779083623877967670752130949172232277541281446378619668533411905813607171759129739866358767370748284790927700361477737161110242984347930044088329544733596358320687363216688772536857616763046472692134157688471734470632643051997129105722511082791753622667974546756671721764510229545041132813691702484859160086725192798886937849571674172974548506636181078292192115323982680650649780343627541502339836974702171073311596245272256954543744325452595653341644697979343935649397341781225691813444634176925227627949941834921588735109331791112206646858404118566423448171251175549597629531619699147352204109685842014562476527809261808086127788836292869571940650417788036316053820967297666833003874335053310959298005296788787773005732224822999381700584198389820424142365907186705779645655326238924976939241642343704398076532892986477495449051014137365431336441198927274977810565708607478740020797241734444558855882437617380922807600781436729705939519386988282092389583749270168714541161953332106323631246381699982464250495319465260431114906636284370151942942945746605046065287874202334173300413928728537135647887750522231091954080816776933888002224036785761073705167315286213523959609426467470212411411587702225437505841675327939847426307969039683409591693243854447120112796057737499895603603454374363865921587112366070557729716263825496566527080715855740114313400934391550921512392393549380687450688317851110702038074239656007531705387283845082838646634776935362612254538478173059666364708168924211553496466179448958163918509326132789822332297108572650524622169238522301807094345690369533960394594721484021050856473931401581609460821418832284606407638758904384049240134411598564527578484344699971147968604236696210348261422933778236820507546517631645799338916309160881232188220245784202021908125425058722750814212332602452603899473840269829325693182716291649338015500794553581594780863013694537343289502513729735468115889820757003976731374748360251873288228121059921755116571345976626374084730193664989154403818660377322428298224288333916600964738278070883067973373789396822754054264133751313727629814518457059569741111604203616336096270551395863016235572055066643476624845768346268673016010148473082588782601073251698124454375360402022370103691831363149113794303077819364004505763090962748829938311315576944719834630799543672951412716972137062647765991829098677210266905663301832860229645764690650009790905403506016560278345032933157722398455629718864043656840567950981665661440116276387937088465490643177241160472292230666222295818269708025663655111809397104178095200692263876986184738646713721829458606556950216304397475030257297300575660035613435177060244365233068413043043980279509405027616757624464707610050573595422046088972592571240792964425384821858204489014783960260123071090614417446251840815648114600941583318242509543440778218897437508511950157466658705528146188686189432326616203080275376881349009733141995970531275856623560341604566780455992931100780766488647297956556286151240738624256995989766699210824290102654217424157790423664414079648725233242820330622472739234615579455358865144112362843577481873751145146646225251881465293735766923359695276703589662323420570511005034762297218731981567934089620419504276797557423290108544761642063467875703472594809326194709593751495796429859689060197783756649364916613909080450433803349917441359062745543307559331768466707034634985610855824786204872514896252496154626405498668405403532502401731223515278178494782627577105070583352753290798826422515667451390751636010455765091829938914189425561509740464392886265168654831287909759651992605460459793495344132131144971365505566787649769577101994637599553789971987546502510447489145111004698848194126299156422304724529169045790320454459559854140367818318590046312797807069417068229006864180588801851833794463308684620665395155540827064776550557407444082054645639587410970906372350080218840631007944022945444266928544955363912227769165380774603531441710437259896459109016753790143001172057051422755921263751905842648103835020063574817931941948161186070023629428068031102606023904298165182833458358832501370876066999914866458650981066976382462161287133059332032387937897747719749006619939266342691311873221693474749154752907735250931253918185260063003139214289757876113173334178390417867217592957841074393185765649023936105933710136176746338779037975673412694701347256745446989851720424254403179000735322142703417703111597991001629440499818410723718325378884543272772289507974520633130592261985486380895006158642088447020226230143974865830961407957391163882902310422578945736388545366923035794595063539476874580998971478032685131869685151279264983685264210511176178783116029068494686715888661417315228386263522066341180392111388439769847350553548595357735451259795328546249994408300394402908098778621308318205686762137549032878436172955866158697411316709714217964732760933749170407059183484222557056435210764624178489540858354637737969069835970589323833158861876142206431431279340789287756100161944963009137701887157976877440751947717555827225524034087735862272011498703094087995793826749039495042164320880294358222628245488605101187410591540253645402397890829768421169405556349637078303287970979748917811907894274372078570262530587827946412246763877918342728566320741563600434514401005247322206303866493644007854256472232077085978523157462630063028657274758644156919572293322107843777027301473834845303780326077914819180244688609160441342725837697908070811545236099563389712790641232826274783182638247269621260244489438272635399869797637740621683055972114474600976141134725893107505764485738322040400098893182987410155941900136725736453652903975436833257694145573083573076304879674685649431799067835795865866284140742720936758042217780733332969579246878432696670485500743642671354531339176676775931887102795566594999141195979123652495615510292286008598825906040790948844849863107301196961416562565861415278122240937128816243463838924732829209465148374978718689007482984793414400324146479493297776749709002635841611987241616612792193314799879666594911998028062364063197349121154883005787953563462938472168003678695733213763997569611533772843765883283579905035167347060464329552662168633636607896106264723138920678463308094088395959025810092338447061618658810720864435941885783430486118680012035611302479868956340106574287281365636088401210124298398406426877192200641314425785281419786954209845686694596470789201198184463986867034087019563949509192613369557264110119065015278656902247856888423247172188210677635029965164637410328565246440575404937073068433569048330704338197585836932201535122302327597931347220077344956374869217896041718544836596405808082328326195360775817387363398916203956632643850941967809952950060797517437736864882054706364913851944852582830270626151938222195530903069102418737021495224653111245491356678010893043305115688285506422092551582446084821046218742967530444828376174518846984677598092472048386886657157716676941438554428910330655701052315878603497839947826326886885157456848451348998012797580192487995694480146962537490736794129761903397560411757721831323077806760641781336237857016347856130190961206385061268933696150598719449120673574350842239159008671993631094788119475089969297957684838586048011591265432568479678816220420010564000189911660550454546650893066687005775515978743199075170413063370379564072475558718382045589524973175000187971578379903365984732053300089590834934520075040326309067816667169602024852923635093021792184449434830943690496719715433166998011100907521835498990220750541853970284673540027292632520854455920012258187026817870008457745675258126762190591205685393595099841917837026906501986721114509579879512030803337707636762682330643690461995943972677273290106726588193234042668819823486909876293531108643698504450210735694405191595593998600466451922046422362552418353313096954947564976375820380007378576435678821933088468796695707128530753817216327523020086212997456091688729170207202690547578958482294846919096300570257711456126023397214604081581267390665143331163610358348819488756964639720096624049208849838264160712706961554970603763997659064861465560755662327878687029780783641571999047778490351071392684805049815870175261615143290761338104902124689370629948881109698159819764294650832883559742177928046315834469349016800685804043643338441918348983492059776966842637878525279295090168574993299078997463508954854524828903164099726059828543481931626176837367991768951149903829110978054095331990194114301457340738990767736743079370372665988522899448442919742500135129172468051858908870592275733875475249797899174368378113804879344768428307251811487305780595385727955803297080756225387406805956030044168210767959164520482324729787585126091603334515497874523021651782040241018278623725807571755097224105212943579552177251512360850974131817712555825160857985128265728331692749436933755701849735641492363899477017265074706964408756305989082227459615057987926863524198616572256670427069420607664723058698652795389818072193642589382273372370942373905008723050488609791516080339421236539835129536547487421303440657604707949568154042929049250481513519146265640688904070570215887834639158188971543209155701104977196479392720521894374587489089336163656695513096922776736004068533005727310048258275915345042080777309869082514802664386298306976217960077533970213366913670389364215781159503784207693017336215083717233193449948970074313101353500077460174218032811986115450641642548624745148477545390840696986731567344528457375296049684735154708535014796503553232782538762595074698647113628432048057098193309935788628918891007318583054506938512115638514780893870560211846013088838846553802931515434571417877577901600235484454512336377545846472789522804432480615839367047842135075158952381140427285537083828602386264543435985742782033815269831777711637244525144962751502538188813865823406722150221516436808744181007442053445629348082022798850643163882302542740157628568018492143536443807043975657586326323801916090350598976117454802937498287088193977521517031399476589330135489129099627432709746942262160764606352952491385281628217477885619273442830444151750982207707670636640908184463108867909715615138444088697430119199677848702909802521774755725825104133608675616035396006520504982225922020243573258432577303739377817094528151359547955714231495137425453556359304065844016257018253903326087993290303462167503511008733135701737705226704053488618617399822131533553805387830283521124307180155307395627484169754430252803936497367229285263994297510372953175900141059781778848464884881852343164318634696078878287713968258662090309437048776849227854661635653604767850561988097242247366636690707493393638121679558848423977949458308510147531257788031294720782422622030343235577443470519671338706503146277493420209700732386631366088928527231110124894922451448028755777362940841595720721528919924562089859663543542684173960612848098113647306706380454811146695483332562005274290901078350848619730510408980398653467241324185661729125750872964966894572576360330422860427082979469323729258601304436428824752368399423197657411579749576116449782040260702137953973069947531241640566397120877697489475412806158769179715730785339483499903112947766767430206306868606375397888069558927241564399563071571931519531395378659831537902933133799503040397931529047711543822197831407208224559423184892682434899064449169825152716610663404370032191112160663123504619488425880837642019674423622261760467417539801534957514401471155461397994583722795859976044761285089610892635605058797252170874656035653578732442106833288659224084252721607393146158633342668329365908491429803386758537292628587857282201322435386790084331145246280763705777536551212590259557625767750951881368222035419102079223170802448683302368851110638697688021379764423132138137529422513769223166442376100001579848011524547907574928592097386700053526676776968723974494784941027629146176229714493338169000431940406179212426472248810851948987212857022272012662609313540419082107061617082669888740210149862887002672441441348596481143339577487934884066923144870866425722230707824234833423849051301910165306802311740077921634739386943033432932329963836467253774895421835244255116860378593789748708501850233586400818899790239285658085053716221279237235644016477430194622341906232595292903559179404957670719010274456992915627720528676293121759850102577847072095700430278641162831795217841058330715053343949222212839345097444833332281756123129315713281577749679218014838070832674596256715673671884807889603910644116673026590845229423629804410940580869669524909995827824921349199041312298078991790340083042152762521531467537155257057866874085031594291463203343560448350763492318832936723154407453176080851073918064040914702331542424318933608416288976060039721500634528544075112156293646560938734665866036204386584328985838039921461710056604130211210419986035905450971049095436877445889646302199716207551039960797659400441931802623721212941685810803804538786984744129176130199382353212723372628871266608674357375579385528355339531478906410184347830222013884878937128927073562868298629335581627232601837319516340994913251723843774921920445428715710092751874426592093603784550579569776499752148353163483684090924433002305011547327991446193864091583587877622909647661107157346087194799369569154245252763599787147377904376125016885144669748221972650692212244479461211535233183329062561830365700777131943148272444208647156591555629869826821866339845371841573601946230811573458875809148081559197615119529965558329259099241767177690271318246365240486005965611755527957997858326868781769421831973947594964835286533778241006301514520306258320183764983019121609566666775785404936364234790176853142490582387756193122346373038207064711734597478992330958609643584654386388469500553791523396030153262953937949158027830842804572998926982341014315974579413048774273761642319232279707945456008526586051649887523971770899100902060655900286397445921184605390396127172336815621243964276855408143398934555774375619024820856593598241243940025015660119634736939075841986058224909749644275246273908798386388573635794924832765972843634449420260160558658422231730650539062786949083763945374775714792884023645784839730706404255131766372603599931871517716307206397222866842837738358001326739389090103596883073656396618577443956711867986065491555421300803798909789901112723363948773860005508142666629590175733893006047672928066300230057832780630707858858134868578268131310300306610376153108164910062117477476264585936758701501409565993693650798131380624765254025011313879602689146650294754452781988977219685750960989865038916304011452454886507417320050365857819214282715504153336041125446762060052801204032885137274192642679976554303668239349183219602310718738362413504737684206407759665453654838598029026873900270061706168188577230485462020344526549415728919337428228040459105129376524756769847405592349620328750331909447916481820182713045255327901508939436505188549586111593164517035372994026024857034814456000985104387085488439275166128847477079581210900207395624258144682898098885969463413556597922426253551589367941126965895296439940069765181364089365787921324727164953823937808298952508199496046818577652353607648958814795530848765963765270743232525453220763708868925779585440335366871839672627519142897004148537665262405763331576425353872707700820989426137287577001772069586679440990883890487827875846308230284376151443576807375469648815479325300774373059745597209775678491182988845918967910292790158166603598775065821669764079285631484270991252887010102851632028696149440821847357009400497624380184473707005958050958493348971989167617205072795512511362771625785739441101277083042286813474541999844129661226832972400243763714726412072975658802250094303010503038273594343534916359135513264150414951473886501458009051861208528559683489556914580816085609248203279959994939601017278218134310370826971575528605714047152467578203013476942887662844963311950995835075112921915731768687720073270803600964925758236011731275486495461712023890551994400276658911287056836716065284190806786337424326698006155571099502223465170132626737802534988036234750474724691208636309003512181013944145370257497672925013087386006343473105032832861899517621572080561758781217041193708856102664415954371674851356210142288544525951414306112573671803164669759184313127234899480773148609880492268678818226772370882104635489342199615337602440576177457726217845562784772329506575856137190549572905730573252700810991241152689259115455821421722165845688934614230347009710118673756827704262409309901721728247378872861317844201347393164339805671749456441093534842015732372616237062290712171653723644633329467480867636528878489240086867957233156715213536443004363370097343310396914757264688835919547031899054524457485181779091461955144374994893169937774904888060147124558035260363886542965950283016079079054763005268809073431489627171719944561777913271087058201155396338208641847564997868865757305814235461408927636404569436909152450163109688027335812341197783371011939785195428945030653514426485824283176217598060654615812199530818870013243012972062646276254352038624482371131569836256379256148008823348047399479919947520350500747190639595240300691352530309391513888450428550828213105001474593671667013360726230435711834220631981616023579318913777621776653982589168686512452291443492090364463804600722720155634253096449107681408288504912466457209955838260959190024068486961166286904161698671915492408538390919128403128576793839559700442674123497929626259530029564692150667284568248158530733383627639350494841178808022749420507249606765383454038394768311559052312396824655399652074282102152793652157946782158988699159090958562265917513083547870108858121295617478164638064065539563681607512503853225389932424900091936847383097096856427207413210887686130623140826616549836268537426505641594732768095015631125560470173859552827172767268386976603867009490943710346980917810047193272735255284410429594077904140122183442216103752637541928013017267808116346885437634813476852151737090589614261629729082279733444160503968686338617011974931819075446534753396319071518850768529320120109627702296963440623188584720859125961801671808505953862938515184008085854721578170150166978355170526830318787398378473011170391232364190720906602011378707577540719607424404019955565659589222340550384013999741231479057757149307411759305344529971228759191197362193956767907566709944311867619447418970746547507502007848242066026164086012844974944936331951556344971810879782043975709354068249385041871267277261536552618426771320913903830833840235824224743978061608395094790154089482454262710814874638476967552772589246241576871127064820331934515270347789079507450726729845734116469033627570950018379661268431393784671040129149886288413405117818539835704378071595796407124681622976885658567742267930663983413894505330944562118550424998903994986330864095605016037142251244562467497703390553695515043179061092274983009422391685784963689019289870444422025996492343055720337842991879193999225428107472767525755243286075827047098858931653101606830521941193434037874364585236467306013150584827090700737118995750361747802734574928561987405448873809996935026234336548197862128667842546913682230867889862669788921447489030282429948524573696886949086751033415237445563704390804689037649742181553001077898676897166297808419592507912876915924806086871724715532502263765119588358791105568935136555280638441939117967707253112154119233718972587772311991273363856073038250480166022929547078187755841901246650114267434875060770120512458164419466726150139072658889141357280087085659428459551413476127343188128308227562326079967856034740035270551312051161401357915730574147723630547383507733522071412353652877331504513624104485471709983922210918702485795155928124889663862175119984372761144401588545939442606290866328347956091229479420537983217659135925588432904729252683225533817382175994446049075200192114116323913295915589448367151181480441056250310663573109574638136249093017005295346639740909537817895792000169540164489362210360019256693020940591805797789284081069806641088416526517380439977394538320728371929957037828896712207243454987392897779918184665601859187092510384146165365895680982917493295079271299011195479730363376723365827221730501118959714277485149376091519384056422273691259417362580804838960831822447956403788492689421541622263433542332467200974649734155265685268121091467792617593417622585372370539071404425184506101803511822171283147347820743300234825686055548511213564292597872886779068412223292553856145256186744836653822921348261155211176903626241185439786946652656353792612375392717779994789264108054451968651892716427551342161012810254334070445540682751719918259859936932691743280773310221979472374243677324711099316737949144229656392620123412058994007584875789986862246496539254036463807070612056727773215130789226426061788602317898045395691210617181044781498890093915830803104453972809657180442736147161076864222102397803028312760400643148380347000110309436248364792885533365427278726039194485526288897365865377572754643869837054684146183133602608784277132348530508105979149602667091931209004606011861595594662732786166589447817884310706117166471259930094487030049152592683710594317049923196303092362905454679625105115308788119148635633068943163890618271074287230866999392696670343351277371526671362658987995803155790781327489588047207114746855103825635942287403676292213066549330789982374077569837353758912330257447863114150199660274324032201116271657401556028435917011142540243772383344919758166525974328055674385989916085576508889720879944446145423800272159259556495119595401413422913818902256287507603656859873641744218505212731814034868418709236883873092712142278204231863206289527694033531443085630629436438621799771729532605894168770554161360977549178574028357067513860846767156219708675519658016768580712010886787446612228592486805941995056217609055677812446019342631865270646679652325031128372270942591100395366086025807879231140140226409614596645333028163097219021919164578197100144157465244186276042331299649920642319915957752014405864468626300442568386104299532625099771156807661218827395646443058889866576960374993450991841770058692125824674921579989194968754319622784178096924822094380207957526049833939725345399778855407864004630642982696323341077128748360037709441396689600467700531912129411431381507435425373703325257721832945340286150564612311230742578921186192789724842172823519902368357415232409240208522472475488830560537070186749921291693972126312367011952038523691062826708088623123147115654591922685137068245077503476867199176674761179914986048935644769856704194623919293341113391445808429828577375007092453080697120389707318407502736740938505413601728816381425617929248923800750652981872646361329640529289514083528719738927797941376373785600047049889743755482269486325355913566342379743129990701389167159267222722553163015178501668496859446026343826531933223527574450369747758937780400790156283781740340053640861719008396337643984901667749557611916969142390012473062539805163028697121417219849023223876627303459903755523048455046941439421283881742745876595554713858503228717605908765748766063319398678032539916842908868952331423637304196293828041931078852361056718106957610874453213888461080665854523064376363679957365117442990201176447170326235741238980437297176187128090269020761697865516803439436960186482657595744489946961410306992837185026507246069378958627915016307891804172208900829526074781825513852721140501105212473490647075786677404420299875213221850824582836726018640919487529756759901408423957270739028481600785988062033245817780978020143138100517627120636335128392567401408769036995014948257607712227769754324637943293087047618781533340024213860924009323646591931456761092770286536706270050257134539566801463283649664876890594121603220285753698088636211293129478599332014042294850607161494594808182359102844625041267207536599310266252328463742380622249099683135516681457673433170724858110837362130002221954113615756095254005548697110164400184492833801624865036858002497081235145672423833869075531493152039040847000729302746823057351592378667868605033221785831843711045204652180165131354563011033524167539001797670598749358277094495782215605421662033979088127646653656933807112789523071193506046281405461473717218071512462998948959883845733641579259014920844254987824772797959210443362748701171795074053902302692556072432336920486501702624463875093006063978575564067784100970463668300663702525220202532658712880671122932037971246307920122789061316078828165959334704382753865829727081681022171949901037879141480066986032324757390101637761332954304467483177468434720670913982193922047051562732162309916712010902342390813011920287827518804560924583552715945651626469535473727516416550975318440081818444526906782769247202594637187630434449131862668972059527912820996169605241805735870118563622787180300823371254854155434178868851803049031160052549324716109668205731571050080049980343216967494101225762006089885035084207436204316958646438986837576629652319995225538245530061296011081466752498443889955988049320811272771894714087377663344311233333159470951190920907739171855646398177524397367449620858290693078116398556654142065372172631653616513785293130200864867301739675946511616074039231545785786822773335975076107530980630524417096999169978275898152657967850319507685222084481174069456972616300519492272129427209079795618182014335432200968520360568327017917086170645810078304024723888430283249087930128791609525466965400524366378399182161294102759873848257131055468169632165289745895797350656975907194487677617115514148157615587753317886797655500386935000429425574046303167007286792887560559483363214134996211744965405520165654327594235206631593538114358360525175355946467163728697760936399342711518608439871655044564870820935630173238466185523659672984406000332780094015066009555154988616172503034279039372730872900633726992295299200647612841547757776928526563030777419206070646183931174481516555092871323507196533589841525843351455838397977741497671083016522327616535082670260373650390904110342934351282547246601444187488563987732518163556438586743185180106710112093557158368616890311122896625226096069038880621927118306422012466088478630288097305169737989769797366667979598700830728789366977528286880821207643160864984471442368799202149773820342987810575928123745617650529747661352447145001347864459610273420967069495781704768181734466149444379503608182897753954598381208279208339232420968449563702816291705316208175371370920460682040727467170223991072826830423949625257498213500994012329211608696058451258698228609602956248506752243385168370061304296609869852182106125386155124968186748786105573652161519001934613521992028963471950691409974466663921131492697184917748859045185506149900892708694994038946614411726928958684393300668929695578745807099596885370095966173919405578137392416385566236449381993625328976229945931428180487200776853413135323997401652835792763314955763795060769272200348787014238721859389129660355829655702861826957885902310040877563509085928868136913771685478431228046601467763566128388966950546521316739911765281828440386887443633303296758823236807300588526482426074622038912091068892213183790488851541204016523421758051770191422014710394085222106100816626188788641253199689632488477397340621845509886017548552166916106949321217177158649109117296098166124404427096913678851990429428863062819811604753377986412259946485333371117698474358467037192305367124631246619079780105543390993236157786916440560464598808780618208717962024091229716147755084056786367769408329779008802410418826138490298169904033758363822171042284262000579973355365698433027485673855739968504156602575178543327562301650881477990514162260869561951985565150706465805729974304780475175303689552906845700865986588363041616930601056677723191111102294684914187912330351865050154156400623199630957247262343124947569458938532041837007677090641313200465400101473409622194872139110628983610349140625302742285299274136111679826120732978193122016999246845463430677662613516246114534803733495514966173470551627962130770239410322573323737399425849817424161649563105962163874267179330982176248494771252687107555807582120742580502860465212027473108176598157187653500004306928110745882500063621575765149886514997174675101476085241154054941299516824332695563553123170881119276778655700038908297560132523372736814973663193947264011303359179098443407488485174838892895569308140457925651375432931051248572068738987684859340898834852855243010632443798321062170765991716783219931884383187783606339699429561829762188500908122547487462481954135542325185251949423272531110492566021374509508364152804109170198125187147791072604012241775844403807500245287127887573686158963855943565370145992422218632684158384728676643325727876184703577441534594150650824718643417526366235277285990706830512164278245741309082620817704768252281892041646486466779982688039679892781760923776066682997085139538781781092513731318155008730764273238326949283117014185907378563719765798063839116971441745741977027104983734990628032655500196628121279074840406079449380651806194313161995479178925071747611752596371175918777587131765205560598453598070021662430849669630725408575684905584739481699087667420665896494902249096925798802277512508656948312357310175093422835744530139803377446007110939935667149645497204547643924263856923100669773820469917915732788125714890922515395531682677353239292532345786986084604946860952744101558437649282441786755998913968607742896392187884928952894478845568580932009299936321025787463807178186179468665318284849051952535003621632398382668852014984652599575123363245856789924989126110666944418045924912465840676244705351657199294206655655942222130729324100845631092033907496884568057805447727389385989627633459317068459668925732928830032808677929973472091926821718871699482196031951919258726298872049265095103823385063506752782125806993798853520121422169433686365412098081130027409109003469208713143625802626867695987380912057940204890210455426906766524732293413551649450439302750030130237851866049484547208327795029409503578875208733476328379075890708595410364149508981428820724973600708816635919611905287956211029683483579544961418309832922245000879024956933797970289651754345380957485344535871167823938862322965292759379838072843629673809440035799846035068037453124768684815297427077100698383548088336266812327523093004842164707803087834161897175967578658603734767719005860347493750045025042622141601759808352080775669928791994907872110280002149760211616524268671541717660177959358698232731139828828564223489197369227636706614519956434304217917097607914396551650668984402299345222835381686183618811206303444238368625247430304205572937314271726629237972167552982642562486689904064371222089617040097296770101410309718775231115696942798423962924495111570349701005320758591742561182171126092462816845113828623079379216735571981793496473661341319778352987376246285683549373790062183541803648321067680953451191718483138789052756458853975507444665644860963977044903767191002309236090052389010990564651356308060608712758118984009562764454620596334188974152421674238805587896392739801195617201866572330650215053281347898001381228649014492229769380903457136690019388223649307295007866922700607000512028229514694803016760192741616801850712193448934414868821235611798614406006083091882314758002611847443043377193538025637434778450974117793352246436103057035659578236015655601626449299850909497035115800024289398278256582822871585982311615722615702964013845066342380218798558062891078271572280953442712386155185744832370036287662233666259052935629578628264652433739813574030675064059010456161648947874508508253638463055285412284573493744216870997087601825698660206017155386181167764752593645492892761204400632787413300037591006418563339980390954526514866461410630781439264999645984599874079467368211201752152829640980840117880156521803106813002916736087413725204497182216774829542835836433283440303810070271617197249171284983731882424372559212647804107813291800336259750611585631752448024164265432951984674463841495805234778251365445078115925500946825057806577285984783056469083114884417239681146487364722403633460881853536697696766513454344431545138552326812625018380377234057353393462826631471827628321092748645071483058693847594645306538565254723745962456780701363280362574891041823552158614492459819167336637095202102257860005662680145821497532992711748729686348742061935771967860173846853258730641384779637182876625964269439623741655476119094863716005307058862026767997684306772265255208820364625142742681760784514937017669261119516318253701294723612751111386897681854851835009882930266732393698322155842145064327227507552603239222909312455297197162490750195476521103446453659594835221426044468749011105037344395754503246725989401378565082441793565157526650309631154026057153268701066423206765333596971784866772490514341387890326198471867888802483651654958912048998993286825351209733419703686706694662808845803999696231205168474850197016173077509724422497007639567004637212484487185252044718689731951194512352672915593779067523148519580800409961036909840754780475275274916028716597342329445285384687044673450804257737903804731546454464561195696845695301275435619225150216408464898334826617949024081695608502543470492504645079116052106916193725852057006685092098152986805178854183053858710233259638154207159451323213486610948245786435273468512532363713158193420726379354593731382435010713755422210539171660114380224908040307710685095317149599557118299935800035038424917194485185850126387167090457309080560570885314728373186463441792318915270615266681825044174586190142141297865175278640019388365399422685420223722430443671905157639894565373769995051343092912325678760409786826349930454542891086968600615448990302763330727681813082703221459882107756475540291283754041468359763775961840967190023872081102476213981423926929050000035901114520241809042210038714521052830245534503185796549137467305339767133647922713610737954746547441936074526813619360064042191654546608987560576867079376883840397072100584283288796813156726446698056725684404648086058952181581589856015836387100738530772604953739298825888958286680743875293288459993875971197838364379348581207049282541030745170937817218903127608122663931532589646553147225921861843689866134604139523237004594681877183062407327247694735345254580876496198912391910077111297264490296591040822225304845126274394821154139780488848178226563876758088542336695264514229139918803787357073079615636620918720449089893270650824476225225625834780681674193836341802381219766476425282711420706072346092542986839724921164267812036123372164523372475337080560854232990774113132715207547141297507575678099899739188151246471053940922964608074614018388318431562895358630541338019935634786746611802515646628179157341092137839744911368050496863142016905474210581738829947237051318030790440223078310758397612596365927362840133706385781616664919905455103433140581921271768597486288847231565107924218988540041397057677820625733048107980552654265925597663558892460458195125918062929743200936915359651417103738040412985286003097241896411207171923886412865911489725349033234637532148118457038248095268826637616942838865960924204949069533145495887968066371595989918190781769227370515866950112616019641086765338875810783598241475467565391945372903243425590425769008806703730086251608926540014102459946253657151210844618244280063710962149393108172639991458687883551398578136933447690801288416355027614460516057311650357680938608037126895143407893068531188857515182439911814182269576122185585108199131892262643057691016165382887971168432011516290407350886048835845775156948025496830592562155411964418690207456608137467976021334551638803251656474216910887240918303367529458466007359636642722952366750066045689495820616385992902483818041928205526651923499231441431801636022241472778922330317083037647847467041222620226804979682410187150730096087232866843540987234088723598654069728528041838006118167857825804751221402791137541749733951429534575712865681218158490499535762795545348051216935019675394581869204503345542029439718347301738387097754998824276239775423416257862084939253745223523307133708771649223303306579822195720994106346777376959825132640672625872747553554157218444346084258296703893611029454567414616634153987994998605056417818111290139142987255880956459595121042296007542877826436531603400744792798256331314015014383949249116246842913155622612770650495644683915444363503634092408320262187414734774103441794550414954558236846385765648324682875056592649134221819792799168690840142125807693068186013679457480583846472160687642146135244684441020448028987997013528979927708697058034369134705133985310686245783102045968755597153465451124696498558461962685949689345522271939818038744457119811871523301683589796393559374349033451565690491733555820322995487762219601756006312282605910941878065925054626352626514580874444478286599871773268554219058621375264683297536980605226539620069957319192753013993928931793465426684000473003376246867529821892681788365285944403478661114630137973608557159242269215799532142826041389887527703014290762238326910143890858503957198840790985070138318483671368395167773091380485521508371363856622249464359982072317537746865312820655543172713367799792649257859875580736627303641917012420417651295233507836383333897285144778922067691995198863294426853960778755935338984906100398815882845927080598006926476774138916462234115822204267496736828722834702998376276519784766895996984165462337114380546233043848490354276631928312149396417939836784605406295824210669021156964109092723585049003149076033355776188334426577019984461420274963438760230527175806222046503929528783729008950238045656605188548088085720927974682261372445472759136220665737802890287696279577616496684120274072001877244737081345420327689953975096999443507701203639394916684171376633462503972309136997761833033752479531302049238612120431445702188050996493613544132785698689878413319033363083145111177058039936106926697187632846577473061887190110266645335403874018141693589794914359390609543483491911981798250532086851790602090031800311101591560568720374847700293712085416046038839923409685480171670950880177111265597773159462475668395641012865499004189854145211170975956882307437585196817696716128782577317104936530278504266956254199426826162516626088652028110310765254853313928980935056399225602268513961698321130507293531410350528641145077531058420135782972849907407603461121694177249291037663413375396468440079559045549818699753796560568384117920200071844197715913321458959922813615645217653245263705951280464697495731407112473221426065929245835667275694382906576326654198540420250950156067421328378080227289567674056929194549151371271029538690230197071477449244891999010741195160933553879554972281990959636643648330963193741118332412193230088931795275552569549575708252019971372503844854571189948752945476593512704671623535201234840118929582746891034175801419333767935785750831413070312761437383984087641022619208709873162514889806117889490234036888944350519672436306418388079576547348569270023360903170913931994043519510376892556693483228391764152101418393201195334156834174854544426609802408441184783062761400699390086162135201527451764242250365225492118285285120628748276057619337941007218132636848926304233802796603052866478611109424402662725115032863160278258167833137398011765923731986457223767828034119841163107101655491484137692133320373294095501386409786876594235881689938624128496854506194313605312294306394955796396213510328540642944974836670253028166830299189943309573265094860023422385215156483062011276359684055291754754291581091733160469535546186002891914292282460051683242246425615975089251803589040991635661337829681104647185984187382475592207944647355867658864039070134408649254320346477361699979886243187578143980435743500217877912311074623888530835674623972811972706656866991356547216806285135394098244686314055172603276733280000427588273084329610040834897026000707252039026801257655461570506106439117471268051503648898963606291025458922560246194722738830839946662191064780345687663209008688225470330811623478495997748401144064790663693689423604943150811302357124394269516280633163681783256948294032336443303331356689459527261208938645130497229708566056648917621563629340044422422134894275361754296119134039984006389803744208495101241276910468501745035345529267612503127424232164735216204099049241253317951097410124764724804072481546836266340195822227862678006671176932580482779376504671020683078510665364202648476341731350928230009476661585142497542231899126258801032786826524302007101337696529372777159794212207343544330667639576210900295345154549584774310682754351093142089573647856179857531999521906841319369895446694179143258477232416266673254537892470620800714449277724910766062179928315707342302490283470520540050787807577478591846115091271422031447725011410064177752821848193737676270167246385095327805347493716130939740472593472759143230659569546210705078838698303261670873299641983130334225951389634002148257464525512768353933924187107059977266022518087093812610408912350463292348218496503102187845777649049322957905962344902763739222665319265336933607042188270240969738343072030565944348118227687411046496550013456085998405264739700683247196608526029181384129533752614897124219964673466561862102948764019109276624266066001952202798718815400470025709232796482568663016605852687316263108252904675884158675892882731647168548835613733584272785738112394194703822368395944621830889303585463437622597819866991526822138730126216701624590079422539062789585057608965904149314803752149535533593355179424274410371480684991014477616322951241522659247589393180056730234363567453638300532069697757131165074671621626161977508649306120126160855148211661708758154446019279642881036598447622977030971314772933359214197445917973256149932021901386946711189185833060889647879168664208413836644704134941482194755875850130319608715641582984784177717633396081909800108698054968273104431666148489117269412724382318608115173950866849338495962997598333280061849449981494315643528381850068141948848419920888567144500818749041541183829850644431515997555471465710216954606368638999910544090878254024973090253938959511403218020871442504788550436031563581460842792689828279513485473195562741355111890381237299972969361766724067691701792234012751839050677311698190249314792546415810235256682115807266752753833915882455162299979310078682332581960055019816642458663108829445748715247441445606723258316516694216287993347138862000819777081901309966764534800556213696347017780731890166754478225897302087975572246845226263028105974677964722113218264772523505503706334927815820458881466370408203955891101562666944780641537517691391237772562765725883223881543059783202900320904728014185073499443361915261336735919977914590039957885154868794136417913348509097090376590414336119225458732775845687550151199752793838724772525521325362130868417524312502708958924227354080818323689850516959585892100828935056849716551848915277561745425449502138373073680408770098078507381317543855980385594923275444017453415166096433729643075699013052531840338167236729995367283035443703402186049850197873632493058582905044429258887778582929373737039234339704906227498210358219867603217958549133056956491029227662166392619133107490041848461783357582164507020558491725018724335970678922944604916506308924360593579340194036309374847896313262845648625780904547612852420815792890468897419884792667467917443651654474388779333126499061978767478224243551527982401876164486508707212659034094666772021371790339517830706608160160035029868865050033171030151487038173049821896397784754787241872668163455321436118955397876927818580884255520634130473988007340923966475146698091816624446125978618948493026807991964094717116124081273259281541785041745739361014564002798006693660239883470204884877298100812183143790248879259462647488169603786876176187872070506347795277679602603401709882052420032141079243917544620913258031463517129627267521084092812914741479165261785016605653745596619384354188242462829004777578495755290074255610009554281679103130529129436103504500598924700961501216340439049806309364351688005529535811570602691030956145413266979594670777478349940177828058982709916988859617323837712910469394393960675481816541318544645622113978645160347218863456907284446337278678691941697838121908036208517737579561830715225505446801219274628645813102100231790603263518990693028824173211038812573777346962544884833417823147934114449653466406093205449207711351409523308044605263431984207223926237924260368146345550137091640240791658314050846909395101104947383013008913892402459047222849297408139211920510083424868412220155655806781132505853192028560442530250900480667401615287622488737429395699645991967355770543555216448399253329545345977815386141873896420457434563045948102081170638322463180361769038254771611461652292216142521634711216058925332484264696591646997224811108986874373731211591516130465796889394874217114283112104847562449805192149654532363933096099349609327637587101294825932652228944777707559853476067858353777403474941576988361128288017478930188984313217132724186786715181985760491227409213608761481903004399414806704558970985249873559646828158160529388204098806409514659693510399743731687124546002343812180956680491200181425698992522106012917288504039266175343866183929352906370322436635133047636756134199350840882596403056330803295860173686971022051615677920060111819990990723586525616072035682887410161056394952481974017986121135998666226486617055642327644500863883466676049532850204970027606602175794741905376104420980178772563062163294367656615260274338106943797384436444147896356719178325286326767527213923970848004478630508117472183392789646830101579575134428120757570805378592852228544666461205021589838032560495319068263290237661421756685468632588113115686315150014470954038913986259218536457345350731211701253884049517171413681029510328161903380468808231131460104237262704750191690526778527034977370519148101940624702328030453142054876879103686730087776594184541559070651634322403830113401912576182426970423762064139347902199629156752486480897837335164344440269123002919051209252516568940284874973086868483358414788651211690821133837071069759625343546618985051045939171120957810050069865715612533338153903186882879658826321981779622323692322541877129843487194454393218907617988986117636182005953187377855607509491357326816470189525996408597194676948002407293928167546781901304979677427180722834729620998639206551697003312244447309873847737950254316366980947746181803864067335463196367579584772850708119101146773072656155142152376345154004134813320974853155198008898803421893187085618763960598866976923724209223912824479516898558573650732361791357174536774203584221485581272099957173675886484348918538733377759018662589655327764009374639305553038670465060681283564436639002882000650840025083365234116601107025148742712590219796519679553433005800009822581597338288825587926873190877899346223999633257384665411992367332055353889843537787914016864047926957393997121845298999191376244927670288583722518593607295481574843121891817278079173373721419706249112289838613368311599890450718945333237296463475592323845461063503021852659542877671099296868071596615903369301490718407634733723832128971231107701243695800166299536236311392891152444785583158804683514143461851940056871727332152929358300279155224639640446705335736141307511876114989167153392927826984636366876435396873692875239444350918081719930900883248320295592245944538106063100031606503058093063074274336146475599950809051371595924865179051508505124101863371229521405351557462574883459814629958557241447064062480953649034738222420945732953168051015249407243861039119723402254827249050376916932403080196270907895553650429724773105505535626285440549134391454343069475291586639657557844069404201978519769810089693355439388329597533748306080139950617298604210906546797944557869118923904902492786049047436148601448591432647623144635474820171742941994512914307413471120088486661134793379946441315029078413153317416472169592147753092425295601868433452336632534167429169088182140710207884678185778839513389316564413268580317988484939471602861394302271125933241961241422983984199652493469975328017141232627980411088157653377111782989792068027147307639137478124938252944725828409995352896912218402362943153606542151561012048928418097901299609745959849130887200387452420205660821511308880377322750044119627613636693363126376178507423802034342710968710759056946576212411142875373473656477780175116469041975260264034677201464861942132135342634951884047466387621549250377101096858841427773827214112995376940499208171829492591223873627645493226646859273947170241240711190472742650412378917390814936835842297173643747127671363942622247308369141906229923391784027524874372416412088828780487062964460532223829175473069488349758005706776784798637938041734134954584793999061630796346079156651494194242625232608700920967659799438433481270978056250463212715428758784196260434980545984407027732971717686428157555883503285826876750349784779878034014257333806174046696093099022470272212195491334443391408498671673306600431827105404277062583711228461879091889248670190926531222441945750414652084745379607886694861779582932265630617004212886388802889346039867019393772977431511634633766368877905292161518508042155262227218113708297916675839544060335303163267903334453066668539341454422547199643848911913248691653807092760312559177489273776454544030733750349622682928116028631042235144846202192537208603928860658759409400223878538006757974485376407999482581604150358103447904753276231335054470327591317987904541249819220717920320507014449533755709208858586205587985628680184589766681781473722629240790288850779149915365925996731418491499948139899725615446676563489992169931811409387931362171989175470441861008590321503478546308032188549293616039221333363182056532967328264456170994780671119852959386253126875963357887757661211285648544143302517098780430360745266926494886879118433144361924198689717864933682376611705796351219522624172195800579998313811141784025867251977964897081987080956453222184411790540641615134175644555400880138990466360993487339272429774228627316306725373036573441031715245869004742063653856745129040694465711682081995584246923625412404541227126700773600530180295329134867157036131004163415547080539830771546277108226512732032383543139350197119150566695284730452778135067089307470257144106731229574971909643896945910014399247804527094967289290144478561135682656235633085370450027352893248790848011762868664369408988380231449295640160680023706745288705431395767558521639160460531212666467068560651564149950296410772085842020846811758793378193683724028661980907329767016511620338630380992055073704513646493109767509815854155079538475710727354885705973054808471410609867722897197542895989622649946309701538652683372531868651327968525262480614413429002355275034869906744431166666063517636551115890563977634344227571065102875922463048456808533699878948134639214328445461357354990527404197514343481441632383281055136299552260129734388726365263086837626606105210358162303124406822763952772847999703276475983004780714395501162982430217633355373135781798025151392652615522008311701382843456263989131244214370126537644267941786813709087863931996304616732674382049797441420563442373234729432598689812070041886513143890384977672425365021695291139383586693191854463414997855982133112577331389380262244802984105025419688447369714296907756844834461528023612032676505045024763915442900158573278375693252630075661164169733001451266545403908815502747237698816060937315506950638139687991777379394674441479685946473977263099351863105414537982209882633464851942952893103467877026004185664262531392027939354359145950538437011614764212473805163451954219470884890393431467018066451755768848630680220353046732200428609284506198314018210879104480119261473225266333165881130603440684569777333923564827616724901256444965097187049591368041372818434773557008685440280060150315728396889912242705057597259527138219028138618365115386116796795252480710907280086954357199888253663851785329101326757167474205830845780873413456150104618806770235035657593591706803215973422567885241784407378799322813422524355265884681051309488398097752355228691810022210995608326307602920107024399280686967150262378724632397554501876932936415332108855378694605357082935580136640577123408216533365726152553908279982704935317130104196540847943654172115058458006350994568767452620285004193595973309679508366852265387316650945170691711323600639952120982318130224254164139660331951361400440676106488009257984812528285043312198527516670826034525922061927188309253212688308612347617613685466991522734819688337832984351864440490818082019153451769091381516143738794593735740948429698224721324457122912348233191219784345612987124102652838732927977099040160749378493382776936056232062039260365908212106085571627797722491888658375714762684819232242633503263789845465848563029456252878107350588316041929350126732358083266394241843993091569392169221139187564539212534213696565492651543143949419994883362657527341042450676543929080344976595646844057356537717002501964694848449862485191733285800856034031866080357700950351475466707324680968631408767859935613482710844077658299335221185510168097182987530361851294292673597048268190101446978436615217800211433702910679560880587778793551076840886171694085427329318090032444174646262004083164606923909288880893499674912110956060002026157470760046515243584455739634078141188201355463165677890223856532741008111191871236993012439410667769866160787793236831432521551788437310160263235044750680407240806273696654281151073188618404095914205900837040289763874525351735853831751778348859531587882241372807175930595083421329579872416553966515074700620064344654093271033458037775275771541088508052415173664066609209407473797117443985980678680667061370617317762437325425448679639418553290782035814371440581814082169320753522839962353628589549990568798859957652112870668172090672974365009795309918482752382646393845479211861701277841968372701195525668160852206218075563645687304374358102378998457390214057483982202253444071851143543221630232322122598497982692264708059094752175915448234192385746717926235379603806341339590871492719183800776206832006132146343529582827333398832037246597094729613070788495889989936430183689752988276365958614138191888183998912249033381880848972615730346863409863873850954494519488548702651981148355679515290227776081833316574717558668303215570172546209561621612155828885441923144441508994588219782867352418913642945859108763223747188138844130187126318263659994722362823094705703090968790060449436072328958499930414910109124998742427202642089306690891393102996774030401061180108448349601449711607208011931558759336986572396651179071237681020491582237077843278078354672387026829124442208810670831072550905605492643767147340064896603876708517243158923180609003514423328975111451387815231493128133926893937782168171293305670595728618575343315763273131621963710089682260612676972900743784075328773349698925075377576461188600637170313751278745007205615277362795058597816674939452417919116083907643764792039139873385978093811408560316584451624134781510873803934366609568452467540475614561699931239720553588753908264663174712821000375895577049645763950874436115328506254578367622961433695251932761339045291220163545101827076422848603544320331778076386358739472355506174859180599928589379145160294061015870700161509125545581800731578073606047882449842570045091416825123411185576110149969471035916404408705674879164700538544850560552210666387059941942801780836385100578591926267354555878395107221113188407990951605029269162036884173446498138212786616830263029095333725243083831448930304894421584751706596392861616878606755683160412646374793126970501692745853152739547962088807417157167645656722471510730755646493623143329054503901441212187890954299435606279430428108026788937705522145760720275595204928177516475655293409631938775152127235515988549708224752840137613364445156880697819318443180099405125300728131841143517059286231649114477775913113766077977380230841204299593377756806026031677249282484294836237112662671853900852826099127158067395016591089207618579539991326566578856000425916087372455955203478778774087554655686547666525923945125688487013748586057261299694112633594616302410511517163241115058529177339713626298027627773145118412409982968377042466283612698016677187772903665053949234038430787249729762871937266516998177229981648889262058320366718194546307540117303505958288356316118861109887091945791650825756968490601712107145046667028976278874827515810492308371554674244940127981442361689478205435742220213231312147795380550461065610570570925652065398208257045849470751754183919925835686014354418800220439249893802396565069594923921989473024910893269753082183959119544143385126338284524932752402787384150470739808406451298039782218577752864364159466004749362626286514911069181003453386480205973835811871872100234381532099411823558573370839476610160863361675084849975466313316688971054333939374032286722560955318492427139411592299864081759025969640189349332635913705062684394115943755101852246874566727024851973424335915508122354118938094319587317372229325045234364776354732691327479831461330662616783774881178722412780134485913479885287665807288870089115382984132280255201296002827267166582658363148053795565680716782668132209806156501857377149407011030800514886706713636427894965984937893108972992118834991797265640598927690832715193272747025207165804623917937721027229437333776953892843933074315613033839846827727637120704687072375583335490049251852283111112479604576622443227016529296022956605033940639119224899292764602266603808561352925618442865489060013073385992525732739917149549742915193338826112932806721555502825874009104970706482531844084418217688645796722895853799413477321347069688362314544064574352618515422921897131875953202012231460996221388926460106558993399395347251103831175461560258127495286693143313159983089489070828490979957198345760252686698536903282033937412355098579569869710822452922954944202218622402979118751029752444358118359805141675595803604845594769375751555073184854734077895110547519428850525513166470674949214773267370890551151101534001610710803047063583335574968240328300919952909057760325308001828397577258813292194448727336433213521230246918759273298141390358684014487800012899413646125867719078917350695223009567913316413073995016096749036576306740841740723171713589475071874787831526564731538111620967273827128252063163070264422177717362909185173495512314075957864353553747383022587242533799128647269791890115388434073751531329956238138993731732095452170264141766852338397339214906956302415079888086240062330741446347879056110100742941279939222281226994821341558165100855881077880164165697166438911537302016064435185753009037733046833628089875913771071779380116396698658364266885788768047611859069900091185080691908132667015151524211353638862496674025514191804865463987417260585029164400838797450447960523390251489524724896820968049438321915065283857972934154766628730355984032017726384779959787147428299379865727493744875961691658706527451481996361867073715211101283783040763473287886493745738258881502269788430598336973699011490264174905056141543322584585005776129987999254455689264345299558864877745648911951131359660904430304551237557434125989364368299107103282170807874154526701809330432751488937862591941398724503978901721987145886676982250141361939278873982137302807356262710115449487393504983177197804313296027854668605792846620891014798743240064580984677209054690463110827272484333760539694843543175897987791300369549965432247401935419073170343327296833054362697441493113835691313148958565245078634196506788250215210628767045516858547365171065964369061225672397145588639505580078318239096556005114242484732416095905322248026927009596701803316362003795224628947606410078065320726611737645698946993440610171232563313091419016850737562946771788827152694633027730137927581243123405478068960711178294245814644009011082640604706898801901844893730399478400775792770482662460455624836301624390681909139420707405122681196003315404518697589587105796199868624416191052004976056553658594014435634429592540175069309076501024816084338226237396881860736755878714110420382839717126279487804749653447412038505310314576828521545743115670175743270357668687934043427842633862329552494913788877421048895334214615613054489036751605245076433358046710567330091572281743301727105596329461784116727820170585033886405349504477917127634884233031959409801522086641962742674693710657297675567071019131438230512874330250287547051968163797644893178756114469748669920995087159916566804020175230803218885323698521434486956157762948829194002340470401649898148883370144099538010788633628255667302702888424959973993789587767972931646449708219029120917491535598619078296511436994009955293975535908002311563695815649213195317876182127239092719640418809411325834918059328376983590549549429857384435669409872308635001301016340327353800734544605060976978269710147167224925765151573472760447530097018759979155945728216753537480681870528565670719714550533070264668448793074838807047471725117926255751756624328050529195083681468721907562142830106664500414328462335385032404961926614160230349107521393895038065518596473660021970039655013201718168923108002089074597138618476730669252945670024483783733077207635587277177052918964242946964204381741053092655214611281773460438760442426915404108118013014307418925361673188094156206639378092626362578548342713334142681451066789523761053513189311283135928534118276415056970187599374144014322218185401104586105308829070455860598696965888215199192110309261762597383600148432985163904938973773142909491197561993124107877255194533034879199358650814591528740623001498578307015073523098705767265927036606785422420552694638396703449113764555023519096959288835303871724684210659002615443802280294647693432431426444332760638756875680844092371689296167320292810247984858426499066544764326907826303738026043452882086373475359148005040899297871836766017623436199012148494638836060174996441795256273220564445803762846913637746169674513167033626252175267328176831847592723060770801936073127628745819482556849171377089814302576934047398512998964706964739733636805056080518235104585084199047893311077103650425640566396213053746988871229876085914272634665346072306505766547745704845623472379143454598014846919723346478369010412129393473888264257995130854584207364069653091723676523392417198591683230125590427198711042630162434861897322698238433696365741015603894832049370523838548554858652797094609755228077711894794052108092249339833861923684163801817240439808419591297482753678376378390139080764418918181833067365483335519713863730744925383582727046394608390403201898967575052124704037499892008295791754234837647351331026166673211818193657468451368029947156776267114708885370090645955536782774349613720374205062316704277481604326628363626264889730417337488600674036541246487830799022672244318740383364389039296341024371053481534601087721437486050785880385916934660281833272545520565205647042941913788543483312691116038318694140833759708440244851656140741155644197157701857359224844036895423689314362341585920949577179752925078447912341345789837651952940889693374065251973791393093298815235435138058992364334576260808806955741904202528123385491600324657350926497260390323880994640808266517898782603884562411894894064378797659503960955552185949640168762538481157719328283315355991808640771822601673178238279529612536900726516870775749564190235374827108738469437934560186661114113159802375541006080710494921549427254704372943595202116005871475607710408797576787775792361558732585766786416690923783509318587046268986271943495894379259131808637730216975305179979510999133604668434940224273517552680824947583054192862652259908639703584820982912125623121041521070409267296432474654668010777379712675952807646032717635309603955970412141951142605566651322521638221818535822078817172912620569572296395727041784637599992727856528174695146936530158452314914902708595464146095321493732899273043776732787192675372713437434104799489722411177377347253633267322024574711967257164982825231970878220607713688729090891508450650264727844084596170856548850707508313779666485296241258812394127680287608338826871330308832236454792458867005669869015622274009826661885537217975896572019871333501435571863238510810348279519640975539715001117238601836631100463216436979617731524366819455366593060141926857652171192286332879490486452027238220022677331023980159222676463840018551281388131584381780940919475690151486650422060437436518196810128822410936393020790937094794754141136262803872095684585892873575956528140471210013594496403613927440123154660374040393553542044874166503171905519780285871838375408872787267530644558387051319445873363965328740482084805442586044860632983241087728877465753175712671779406723299113029221230258169503668214303264148499768606399489760914718172788612896416447123899004274784364347151728939389441465407499333337586850707046332635211256632338377381012741970211143576910445797073678100826964899041299710933893851988276938041881935369694368057962496502124562260561080341657869379642312115653343653715152829001135006154964654871938999590473985788278202553688204720722443153255108058230927826684435421353683556281801507556513080417542562364771660712166668705232877232104930591546413068271057765876284623825971664674616397572415458291569147620151389975863590826625231478814668158934921024944390692594510138651319924411258496993010261045053752818004355466818319085730748782543581201068466230721798315972286381758359413834962411338249498777495144172089531650839155241197332922920236736192260851378808026379827672485147122743371606051061316252300568378807871007658011092984607008595991558443119136379904603610273288357868151513206350705057615281084410772944938036984399176384488251199184862839794104380121150839998804357978320036209891507485890845877404903056342127447504566682902126966021032722096995736868636216335611012200431196954486457541172753058916380608060695030104845044162389199348916929994601521491076153974757316394609194738949737074395919030954686091446460140737022060101223061149109097289928699718543040174051986865961147116842287769933438401825653652143466057684163503877445137632851017132044739684780497254147483013992045135964487877285319485664104226013121294703242583881157199754429684482811528386003321914788540107868465723206845945366917930372000271851263940663902676355165109022300265988073237382949852301218600544392380032187764956475781770958829878975890000744070870579900260838295245943958962279240555136590976496972432177232011459087319271608589845847989786525246489741233865663869373292426511604598012839227061210025263614915243912051820168574388112822384105596255415334356996100973373778986931547094249649555037073215921416056581863763343728775312255683867043309379928407421542412723903940206503283479464896287940232982657555306107230947242073043677596683875362605370850104612526991475567332747054918691961997753213257678086757774942169027702249310114607081322267660383584115532390304710940590457838254199211982780297698158823451249629257111411286160981674168244278816131114442724383516538138952130919006051155799585403279549954728611262487353987323386828222510219756663605658474922468048251691609210291356914539535761560374052664658877956909745310873949706504151898408394420982463964617940851091496837567390786478090779265846454109967508997894299554638731767310842249117777164117504916419628316068505543699356472878982044165075791862084134725248706220569002724223086837588845800028973639819334882501641022357431427902075208895385864551980764497220595933574980209667326071989864083176712840193573671683391550505285328034863201426491009242718139641212814910841431199970478477626345100195478217174374948387882315840235296926585872129600089534848768704091440504874089429986995812786772980111484677912414746039133475946563104417313080465832450937696655725692300794546853921236514161188792741151738966865832570685414191323888090819514200298788555250122680756828965896525134841633875919954877102057831342814846255817066211012304724620706996997173347624123816941787704778468370621525541309331923208641924342969489757986081074207731243410555966924877727720206076471680320418314214409027735311540998509291670097908973214348360955240430818274071847663170915049712057419010133823167128141976145951565024138356933462154129144422604382463835794205132646395890667463052447671378635490926653232481065818512639613677114020157720437220028806079896550367905589699066838057319761774917987449254899488365257919965240449805539615733353826233226400674924950775181913864958426041891958652603339955839193391875724132415670695791344870525800926015665185038364469754442055619940184235596076591029305217036122614615893847534466813146811205853472950595961777180888071395763534923744823560969769693089462089220045560562300059490595136142255486619611756346422334465274434928781821857430028305667258800604938337496617264360305151252573415558340179301445858000458181304550267463596023112118573862851672798559781171156374412940128293215841698592541040388299334610517592121977209840450432088430155461401993809786443577002612919787234273442491108446605664859567948697649104709756730575032661714218501009625816377170250129553165453918347866669201280210566352185943960162493490532450344920886667366151177844432017847304970129122421482684208704323053143087270427120387369636624033903553409275009592918185087664038706746592339250970562384665571572837632262447657525476472810341195990244793847253605773499420068175256463834176389139056824370949336455756928123328585319997660515978506337739940822072459869196249403378771168867025630883886786211973857666805923419707225006744509951332136978578674848715307658429404367928368437031761596658632169245824527259299900350626098572490763566507552855869339606767338972594671007327610290761287427669347652541990011223925925348690769963206433432188556845762492416047779826653996384779749046411590663356178164091176497011488812032767282384359214157913552909382746696854504153573963628260267794789083252977470383273892017844114328701826393746065705002826816620591350309174112403352947047880291549394308339950153951811684589026398602328453395912160959214817191720492414948140554018196571233438850351364574733842240929091355558664574814851014355408063395731801819472574670809320479694646847500066766466740130990605141325396723811670529438618260839633120216662608736903893908893964268239158125622975671002357370055367392874078134783278115027521981813419822619635432334043932036304695818824759942891986589417032159307376684752055724535274526595488901810182741086522110480202639439612796278688821439678800653717437467525074185749122100993468870906480301665158597679767381115868988214516141844572813867872409770497321143169862048446708745512829816365245634263214004142970929365032324703981832737698137166308115416122317971050292175277118209525910170901994385720424045895105895990475197990625297369937687479413681923077534411359920928655274031424473236894682735702128027478643747699771495328133983961672017594222907284315262190057873125899907769122278582427754457017866412538452522865107717767768597704543745387343931358342822557308438662270088465792131747095052031430462700481494410675518818115370230010327762243381631064607726817902841106458864491203496387288730342243533439558330133479596392093485862520211950027523873570676310450381135635684471856532975725002710283869617011467874581033865080505561817257730399830242087995948882957202320515200769149662541166533946128531055494291313038668407220342411613116664668343481921459255191433183063419823106720292625008492245965872526295092349587463300937487060470822443625465486016371455097480673528738894282070451181609117535045103197488502467465291691908233756988725841048412788730387594519057309951877038644891948252875896222831840378445215794657664403856592546820683524642311184658107079704501630175218334240717466322826628196327941762335976327211105702762984991810429077594782695007030655285569351425493418621561456573514980202692433314523573789059977729497197587645904819700640351257759358271607002147241472164491199097574365460096011978904560194867872708154411097889428207838330969739601635561561636584764272763220702160668217292665737894077021647380391338550807711460759365519938255655048486075896919395090269314990755359145728186846946135841261978713951842002902999558838743078852915602546092400655001138296893741646029228895596158570217767078387806615494546521920410045388640697159407682668059477752895472798253384418803574949571364370755170183026065802029066226140497394540849150761265909999051365397502578940121497047060054264922884633128792223075449131793688192560412133748219995021668423263230328623794420454401998941530104992533267344883359402924205770455835402733772904194251863419679582437616602279408376850623938485091776695341421011726003586787782162264078329571848652076970305920164012103470513031709705544025266297204492825204568736776623696429065890782632921691741065670537831681514357690600261640054387033711427202634449862575458050753686680160922214270987549919632709582615627804281008471562120476606774187990169583299524542459842807677568586934274852393202606284819148444014505992190103672059518385084583654955301135903467994771922387056054628943001247028803048735351996683781814543045739907355329126697087854192589922699872036038461717467847610433081217453133265815810387497722392295944740187432262340848571129046614349141068659716993434283175839615327350375260795036071126666827721378455938204764737801033299226995713876115056466112330734433454116435866328497672026885557191756191158212269034584210782327406989441564649188391701044687024500002989574909920622439348609662877809429680468748573265436413115821803019961771268253719111697234862462218241972367662723910430167181029890560428829938202062283025939993819803368463554139773560002890608620568453470721307539909653300449804700438718635594729506254718281408866218505831109711340528497472156836785521792014713604883484591365449879930073044563172693159358355879545305962129117311654364878044056496210896279391522249189761275579485036711197398800650665451377739334643093943392503684443201217166701285535371555317412045883228584763235370809961534367067696992940020814746426506293385705533068441754184601756459598768208200350369740604511817011137183248359243275921936129737082993453653345586249821003202027310193334653372210131234363923217304617111204576919947891850372780488083069289409431887508985660506269568174966326547306330181716552238515695341898258672627013218685955698058976860320057997427390771492419716292521025828915308078820035380704142593713238262822397073032053155655280449501646736276379432339067190796619265448176538541714403068600694901200416117349133793695410277462472160510458551096611974519755862133129406361016156637086164822592270374976780479191018521184229656015256268801941536983591822400723743434746156215242084197179953002890136642817539858285797939056800813722608538248980455846504103761358310288616748570905580820956811669847000708844849803221723504170098582908939215721784960432369699370322700962864099567103876608015210382271590876500304768172618980668663167746202345884125185223718093118609968102183070159486411016303494828145397134516610635900307617246082605238620836407341819769309113938082417168658868779956319437776160253006062750397396362240818036465782183139494012142100182018804744361348920280974287330542719164223490597703392075689217997174456828109558014529078577809315966652580749894120187322615705471201315972875089904742421264548454154388762680451758182864255199135551027190527668190563280374604293049667964479706172625617443756605341716493677224383755437678946513441779368823263993741625162105643744437174769134329343370439909939914242856721923236612066530029896491550443992386378453368753517221908177657928760390041602461922144935032783258491099575245460843318179877805528959025515010212065938930943210621455967857489586180281146408978247502102204492633572827233254277995900038649724229189382897874300766911879643659966177401272606159749191635390445906925766938358849341135928454934972195111519886881577451684378775724855737183403541671155368479417737865952511576558637045073152459178150055611861561357574887998559062930688168884921606230937690722363983028287099248645498550538177335835031196989886508608830888292388057348981628318018578384398422628400089543918687062531336391981937516071556645929627568857566621132071325300528980116697780715880177092718478775460268709741352982442592844319733026205271738092993543432799811905133506213369337717317263534673539831602586158074166217066166661322579269136215467063012225388884316290882757784688862654823730730642467611130270107672492870961716845185417938003349925352572012715404806929008569941046028160393502262090025060080174753770305700485050849684278757414106537286920193429285157823012376441937131463860981813511663668980154350396695031279589833120967730084935561361387632140281233962817934002693794105219799753035699396851613413358597070763366891234561451588814997885790641234685234820927505888067431346917551896842829479681052738423318681134649748522037965477108684654400362748094709838883466403272816044232088362114133721835017336051324842015375110147498119941428629198946755956312647820398675026510190260629978079066616472358895326053911485774578978082018358282302862900323532780878372043549181187233319856627356177751029414393073315930240284252673028819510484670196241647681032529697097012618792737343702816739423190164951297694206065321886427218138026230948227079186461450781904399770645236464607815420903123484099175431152239548390988379842130273325253904998481020235934996112537164181149259003094091492918325854014301049415723403517438713650944274345065307387595251741575729555728901900006692648636321345483676213030807614010957798274417169726963691300992058209336792220899042730200574592680458345850475576998884272138738747646049581986950095870399180018112100498728380172221836473663145098560122984290371284113717807561265074342384601470301916718003338529741597072232049599809703170439716292873129707256758810878649958189822694407717432326225543292454569298232678693517501618934663205419868079594828460081394543548492836838380711460819508241282646119509669481141480044063346045645218242344225400717404369594739739726697716946692701871087878652068937602583059078470884523585231588362401932803445505595570464239359418328016859022204653004124639705741068246791492179966720768584157306605102750211948974732203976508270658393171214530097043074335323503098828267553851727345819853343869052701613529551428067886091221412453917491496349411597528409197654341560914893272085357998900494857583555231161947279131211541709814861512576477277136770121371308218238282788904410236730374529698753717165887897956462575199145511036157398738189722694771976367592694395848904078544198490566318637125496597808280815690049051896957689872374786707001468696949434602256388084349332298945870988275236823152793513730847316802370679423811752898981946034148169965604069661567260091566098033648351681198052433364594559052586261485165190384439213753591311816577451409923904576176591436566600014515661771068683995342843334832034587120212723921543257374039819123998263491096659515382039208592512338078747903787669215631491999887116831264351536829501615475579397947602584393476186712571694878093492198629914683257573635614002584833754439124064049196403441362042933636440556883919702067263362669649365117072445774838951710730014182632951884121112873364862542661070888145638698737438586551347896825660366466180062461204995536425188946892676662027757550063529625621981050389211762590231400880974657897158193526084246021073631821889148576580225359299752988248001850677068163778906664171142710751007887370706898080255069702018949494269293806550781133197347617289517154060995668697582014861027142200903396405848786122690062582112710786478111103139427716395187713779870682628945266755627893127996181016729776135357050377518344526127463729170325118147083212963374334242916335357025816928422702678160831744352456960657621956505772659153530376990720771383494691310993165310490401106694071008868328173587448215332620617357043750305292169108671280653072309911448393350749314445573749396746513485437579562747665241509224854775626702407129372630970901736582280635336852170513840149789974129385343367596282637895381574406533130609876421640486650795612046620778469550616655530730049414576975456644182091840286059976816608240964710391741291235108580142575941663386338011152628002893442490621721302211077809737455518860939392044600292361004022880466889266898074337845907233493704171885761369537932377879322518798473294198435324132748246061090119723020710672963371925732810121413877853065598181881186361491400675384133698069179498466019135563377222271630592912139702599199963024800397476015844926878942490200075679215837363804884654113931032863019754436120801912736406126778319284759646106684749616794320334039396716872331855419459417932499332788102734881425732235084146777661264444467158115346699716210745571401849382618289748115393373637667550726665484182644022574285029111564066073448794782135270162653722059881238084238594662522692358907607928336004300166114067061157569874308812954674658215864043714093551567363524124526829721244631569051081038060393360227953121475113408881143404890381020134938468831240937066772006489292249804697683780605011716295071926366305481610940806598116214524635739845681996739814301528038577230608162923043995591377137080801550710023168345718192894175790443722457966281647785643141898121542886001501614150072760846747218742129713190851543705020871741442798132148075545379803044587913513309527486299534102722257828950140312948594133209599233147218706828164551096810508509802710171955663929496955036067376249712904187977901110650142774744830691249669942449151336845818235668664556208019400147807318439154357638687717310561515557913909691532288346635976705127262729884440242348062516601678549110533086773295394744547523422442753890974008937684363786738344525498260074432666830459492522346461906702875934878251451368135308529718548492436284458352537450858276364369854406253273146919853228630972928011605880461570379568055541126136119708635603798914567001703931909538686277294500382215851681722415280471673798642411203228645010436603522484310373170213050292119651591522710799905354287967400099285549887470352362214485299001036760113166669092893807980787649077118569244084088672929569960634772718300344792841259898756468066628425731411238064722761866207888912565204932101062136541702687106922621350774438098403914609314094623636426868268987082875658116519144410879391856730011387386618860805154075759653932278692654385985073259233662035223530088945422466619681095060065653584727219696259741964966995347779109975055043005401296927781558024468827986091492416301391279802716441018811258210081858876428641781706998344538276798040623740657659693273433856078594613943603072970754213229576577971240077470112089378246465163207518472184966154203544857497364729066695541025543993302725546126489252335459974409754905143789759014223085874142919849232320484699177514631477187224761191908729116525671307497447950036066325522566614438953184258665965853713738843936245206293838252743716565939011429147260182272806250146840981590472054016685322804616603128512801878378149745927908351530850698442589468551208653862610028608123021933973403104500664508138782140456835081221167746169657245148417445640567241257139087483034137979106941838685534386691549056432647518309038782282894615789923970060211454246320853209514869435791198778232773462159334810953935999801224770807490155032469915010921219334381033217371391414581602925878025189020253934563495177338334037809118555911463094794413721711260165542472560765994682906932264391203609737412076440369968796876893884977304304543454834601738770408196393681805050367258539350742439804034027588128071973354061471667536034777478353759210468692659611398884953046557992597037710750900125831907615195402955148606009980105525798808648688675091821843578162486958696516477165746582882318287796245026965277827716078176579781112846319088623396102966470465286006674002678092560845887729085208489652464819193678063181624410942679847999049888348581631109883400031781115961723240157031053404287039607653373473656065188453863084763829937670426118806089943820091949111573350750181537469227390920447405529823232895801727976879169420845525029424259891782604888786930281373162489232971010209933440771216717123495858304367720421645282802825211557235969187404939146434720015475092059282165795524617756638646351193147599156014207989333832334853448630399861180699553256241668573819897402563962402303265822690011824522301358589339259290935010582840301002816017546390060237516365297470573745537484371065097335429474432264572524768272033668279613876308491782107061155434723230165693105833389224678377803084373305217552304734615688163269046650672138823219926474667894794041324512958740218446327028640651977274161047528068857050114357028314527441376914267784256504213412693547663309074903658766755367616867502833059055227762984413842477538214776051530119781128124555781761486838771895456750151181396269132138819240354904405532932840246384954208629545705822804840681403269274861144590951997967079558073482164225019174156598121521466083651216031451567196532017265901625059923406968831337651305297238121587951812926150884526976917308201708705912314982541543842033709134315078645113692922191319172736122499556291881076776364497860481707825686185023201983589559876759166886322886957163527966249653546432562514079440193682039163563521120854118542292754941333249275644257647427907216835980236192354889322181242901335989833013247438587806354299828079729271056259508470843995941572280997545070146322398994579568091868451914317564135842396865881152287842976475688547136141238827377996595330628163222359354595307004292922923856355023807914140348977636364863784330001831888164203022072287254980325528245023225728834992805316459443935468280849086970291453606486879077414035074601323721691302450878296369326361465652216950172067366236413609613834736890336342008594085058970126763684239558879291274131868557812638804688429090749547517086309949303318359175863751645163491670554717743723808050454067369800951831899485269902375606612724118169666688022669187442871727112387151828967481022235946679774324500392226023018109404581098043094391400474166503914767657069074927558310881893970616404828642164182602401567401701610128704322397436554083729081466141336824774351584916884609720173016530775815221208456186352407503670914509177147337519865029791060873002577123952567644671130927311942106758965724084287927109360880639027912238223267731286417497695646731668842503073347384307683397517634219510285720888457942896379200372226642944183901999527196827756798560080455938237465187165493614393522261993680383609806240369504165659655951755402827105725295692574494149072915664089265024847224476700600282649862586769521101365297452710890911582927739322224802021559767235455510853608312371736714245711856382489435990795525193924790049437359955422346247008507547545292633114155584150383674294450341525029853421902341945616758451322072242183787483599459901479414027629819659954442097625788904337184474048284720797490362891646587009215307535093356759617868984929796098743381337480209821843377393433557545682033422248766760735236966839059969969987752164056923209394278096924835142596560430311066054392323086826752654536010788981723294893780432539463071795224130042855028826144447745694481228081902062657967082826606316276504901453233265208628264998570569192782090227416578482540537736590423294631049465198198134700405667538987468815203609626426496848995885580619109811086553694251134934590936152103336006608439254648284201309347853287905413839805308138261098450214026290490445043260030284425874186291601445057470566355616474076314526936836346125033770845550269155220982445519721408342754347562812131562997468131107424477972242170979726205810674948819285670281165347335701654532785586894525195319588650874760713939412402973103416480220512533131570025079333915639371427464956758835153738236973864391693429199305312885482242930057008652476949414442955333421860150281363879966506557160222581495815120980611375873950796949452230904726767703855369004572259326300334624670712636533543600993935323791912130475915156266721623964674687029761446882198418013359014585016262404949906917402653102574823666790278456092158232579545318641211313818216692582141513577368753734432423829660887602624987324187843409439511534584395090204165562971374923605800324842267048220428450773889162528693666014933155755225119130702120046016712495299512425611723376555276570647728423980443295448072967301205112535701743290422107024853535178930573865058995746715028052155751057719254076973209630287572154855014830951300522423387779432648016843656565649759831991574287122691693539932113067986235663416174452777664214322427377216549713927834697251317200845556199356637238878857316533121371708967692512711951169828454103703360543448380811284107795477062215566064952358354652855686430828314801017604207133835442461319504625627881420261373037665257605365095713536337384085946986898524037266614878593639221336587065494687044000123693974816769204597146054773605301648098205042357622371126241111741767916871058117217853413836995947041240251507097911191160659457268282468294675867569192631082980998287014453643316625223245771609626264287701291249693862346716301035315158283429031225093925920249348528923272353996809700969459889986431575857314170516171506317448521041912035382230010119135548516884608423098737698003569640451000672225216539027275983206781338878245262422672403125132755240591679985380793871666474026815565553047879904655281157728337574447255903343233779477759615047065704262198825964954035922530290023243653843962370934720631334468877119615865821749916372508631679511788647551879695535595472479756175534247196120483738778034555394446748601392663033498090584789254749331061820294263182293581520265056420936021772368103995712931414447278647873512569671020276242560600544641584156549707033722986219697555237914328387397324077604838127868844600145725007856626570046338037831407326431823099967118066576862577573781030680097450322969523726671446186655631028286470111014603565483194026649686273872665213818336781514169523293255906044379228699870304036870389545118392219842516695524632657570386088257793204341939210851241115335430607557555770632142217724362813927371536630824794987316331506210116318197956725623637374071699529121209802015139781104078276595232496200993636771542188896564853284621371828937690616866479053060130480879018637567469520341376646957385501567368192307612807739990529055686921316810501305275236978429432331116718386301708718618456861449641367448629572648441998100635559370499625942847429890394741162328769849920816468863350461910212258131484380055963941397012323254883197754335401643628346188811252509689390509979644082171364827079836189313311142292719316603254800137878629040114855680562544343296813314998981370461169559700491271141839252298971449621263262408529718590929382779676110617037577334287636224979845825182181067987177900717043236858709692105645085405842504885276238475099689976245081739333913730428866050854872609903055703723944174022230967992369119137527579243642059592007945979476998139573255634302448902494581120305822918575123617750961474876573096145414932195868715545375859993740598378862907225696076712270960281534116535989113807911456220849214540759519909346557191303794429631075744596214674050627364573867214325052986282731407772962569901095364712463469785197574387429841592999708022804382904121259045149333754384768526377505567967217720018623281135201817110063444873862298711150649494530566976118184490526092373503736650634557420100938576500858414965678082800935279063896681960155017404082406475137847517618261909499504285242964341742830083019739842255755313346076426357986320063633702933949216144292719669326545782337992531625393832595183605870950590376506149209576733243074327023580690771618768267097132872776639477718151108843024640342203418242551274932019334796709885506496437485241534192714758408883018358528798360215728623128744737844633345725689135745679472762178967508658891208318113207005994263658207939798767150938167975042989793803665760113779917444300703142953651446899776104801014823135467354482872109490114771305007013445196581581389349756765356049257955228528892724869256373852393907910223272192842971794099096144106611832370046664621505566343951847906472672936205055216699078974250276413570660483855733595125513719575055335236435846364219207019924050795161709393099564768718103940369318570243982068016197798678457012031192998305740986579089533808129582418580265671586810265548149228586866264725777996039991429816060765988585887171439572216952150661157727873942184188772747177908882072236260044379915177533117664669510843715202269092705156946810043825418579961892708832053616316082341585553141634569981862909527521608893158053727897664931070700956426866268053132686586599261105542003109145412571199824171480847075280212928077157278367197777646883914408197662419818770380767120478039864094377092965030827227740594822454517526805028074794387182784170515269444877558594641498513206964921307884984166415948739665919209113184579681519895381770501458944976360208204065049572288058694556543978377425784616404925720897792433064663961891895533719939711677548182377222603498439063963758301656654582126539386361253527329875967532846313149216361155781727224208845245527816069912872840160556927342803180956741200493162980968995483167907894324299104087015730995733812354903748997085575151490668700292666054073919575961296398724110791011945828069753891581841631944898890969659600448309471885884749354004282461451135569366983170532597916910680749437498034779511444794844938748420120881879495977826628887167087828447448207032189639310997174974628807046517697514970535701309516885666314729533582341767160390837091137881840515763706571848396256210117976440796593788572722834105031434058244943859389446896040130337986700195319110261450295644777669719618702834570112871118785439164994658760119457546153582464087766373739334535128619769669266724056243140486425204850051926069177466350517890009405046754207573420941815467235895074560014949553895170957636638388989123362813384796610164030529685552285658051153995206270330980095157466920654586632009688868968262041325667932934670210801798347975945182174140376677081992947491288050518249940065731476212335009558704633929454770380652764857479507478616172043495839995791783255264909898783428983815764655821995215997484427353384921830575885315452164723181920609433872285400308946704577326912730769315035877235638477014181482687356291440360376282700410725612279795438853241992687418350325333897715416146643814797004430029339042762165535256912240892062737298336992668996171252414783522775713846888800801699683798159040133683422162820117578656368061228046483961195449240152516642021200797611159394114863949902369602789779460487609295563152233918388453205322177151370090384925328275206488564504834683594707787331910032217605892065556815815562090245986277216659035326649969736555439213627653762314891127540599864852175887011981059840544420726542737431492174864099818836228954197458406376341248231116172916095064025802779877892031384403757337609914578268088535201620558106988295449436948241922201042091765283785156436080651839409299155275609002048911366874830940740135245645958447236628223437964027397190725574687994971239511007030670893452368779839409012732410506090571316836636744359810183764493070985470465827003535360901981025054372433094884617731903059894762354892472308092600303810277077761163841001563587604251465379759506391979839844567523490216984737942444291988946512358258091876389907553991802557998637214618111925319764110188350989531136846738496783290095546414857375616550179180006315663698566747804014573820431544138147610988742997072218233762638222686218959676589077486817187911179205906076049781261966775541883160056321422708218624031018723281127757870715733590234767848307580202727879344612281850905910764540023426458627811918052403277866300470505869567992001907390202076133204578247481419433120510406865413575781514843816035330707037139845758075824741157003221369784040268741910478383583544738905319434448679803095606637069381480347938362001011864190116695685584467450694120981200770521420795947836897816656159070481828123983650788676754179220340905848708172105955445873701387474080713829793571111434890409138808475639388899322594669521968287345350220631376961601528966026810515447191375326360391998293320074735194005639823774428080577463564949577961803309690411395205048630233357746472245614892693017044598439447130825911354331278585403514139389882551107745107865704021655717298406289909514308359506302812430454731657374758559415163918938522811711692872256469285404656352589619031890577387754688021100885501337127975630608433507780756203033428164242833607546786075806954078849626316535313940636960021118758798844193928681811232225111358036793243879762947537146178072628198959655059849371758134971209824025088355601366185765227957358003074209143918256943416905993496607786670105911234153088559785544406015274462322331453509126228004861466695880581587140999486011117726974340004143539960998993930079238187741324755325487179700515021753703368467525728968811778660354797505078161190071994519940259507418302459870961820372063721333051465374659449449246281143019426333433157328456862791312951140612694470405384321890063753488147517719897744095247877177765701661579186394562105994493254303893779342421783239680250946584715271083022889867247110914480197868648787445985697668458490376683739810090057318139093185441005177770215649549302181291537181859080159144437035048336355858272628893566218086276272558589239064980573140437068799550111728763550457270415803894219232699859150283839737094061569509701106473423066163835299161547825484924895807003054919640456745425630414471993999365694581035130244885873783131488416544026044293456941354039122262054837990328767774827083490718602880343396541208895754935562670134261862818891725356250189398460968084587114501595875480849745701037538100016123845411668492761888146498249535734443961064882421920839020378662152775068846227009196980083589244736683019189436758030647514317285319688125579359657466185170582937361748862686683906253325633253953449993253779187954049359876311794065826148254078748686656801192188385246773558553383198288630110177556075133128697616127319906418559685730219156976359984862047607667598577756770430367189250898318279376368609602730100317025920709250040145242639496857995965276281947801277585928901713293777013317263762673680516437860017617780940897612011332216534492217427921740037818979247826613007477179475125910535643639775616480289147422513535113542207854924355112623260944861604486147875435306499563292217430773542298971356256435903353069901181653261987110450242746200330310219267841330870244065777170352603429911636247290466951835930916076499667527180953886621079442238236426361537550939985835908815931131118730136877822684719886222916061729004715679735136452214052035632265777638992447803131437814362391911694104635434314103417164949545496226361968808358302282466520866393832434422329630626068061796607115760604677828511832758513558565207557173733743414371660404480831430121626360310695307883400295265356348253561350185440904516905621272827941826336393040677391876085646350474383285731000249235435153124697950925291003033319314216132860137066948689658259951147012566051866991417989475531506987220611033954342187547836640009921272947442091101695627338205590798073135958821487473912636357152575033490799661902119342770597052493341771178060359465378602158480791657602391292565893800411206917375493222476906310574600182437493122938310486723598949504161442927523725876948592816991636725303369599400753081967345830559166674633140717601727615347840204250064351871053147774643826422405505377098264773702305668656842133817039612815424550040463679683330520311033377736240205062088384576680036085371595784460347625263702260519595995036046630227123177968433227643196579915292567689920453904215837810451994390636617530400471492408718901505153530856846608945302987351914032060106374434310126272528467241065760132545293625389207375056776444394922102851099963804383590498889754638459472036119231271670874728750568859011599435048269280257550673050189833897961895727808428817529201474307937661617964974771236204470315303291820194032474208568337774932972883278069185024305003208253372746603203725036719896563017832529985042452678151686402460084571230033780640474693449184768357049663233479145037238516713317992644140230572068869650750601799800131484751905953864793344203594155925918905462736365904533737997871666793487778653694067506073553578546002974547358773439275211548745342768343342758718830102656237095779675182696480387552411417119739815005827914272813981204029471774169796582597281766233951212372236528042783087273796006501629436535874037610948684006837910751844108024190543079591643815689400971985056472480220696049722449857343679582750466449857424663477718730164881110921528528700010518712451222648632107624869123464295045224786486021363019454624959261856581225860359053412386954654735420587089407656040657612956979051074525901538747100356458654453489300450092131959157285890547886788474264684813551490078285674283787737061534146241999621258528140881744998647461667691087251414876933373072325431298035836593693419371469088822329670419625010481234853594560544778944264796844101273115340011286689092409163497013455573545650470192972442500425879055705167363159575841491583983355996249442838892136972531205070542668974255383037942786744940808853402590905374302668929921508835099909411802593039878254943368665656134811967420558929115485822656089946750444509156045423170712185889562968816921900235806531469827954505522699794171024083167651225260674007851764684054749474826320274286309722114421030190248499777444535501981514918688596962059104393548228180885785233395546276433459554680515537259139205850867566487344993326392264233743293735409380931668049161385482888509919716087780165275932372208795787731608231787664945390358663456313664629531063284821686048346038662510869614935021705059491465241352589071157685707436537383927327838411951693074684244025947830457120818419833605533450511757394182624590171839349051546844665503170096137608003200811933704531037331782474642962377585831051606312699442808828941321689946040746843913089872749152829595821204008775677448753754072804839658287417536942334792851414275846144134777590047437959771255755111539217175436586598395270362703820378341265258030439718678182793219542201221289705792804507576002232523457809771869590440429301108014297936979060003091410999795594516606784153684903288071349533839238326137257092056729107545664858324143500686805084544312378965478996582844615776178535421629340247508200248951592864772415158924152141412706879208544408122011984205067055908325351836741567921509789361698901182388863938928898067846369772349248005182448518111754751061633441000262608599522305093594167650601502835633222244152734894155023920368717521762301342340612192834593075388425553041786051230859604735239482390046794209628340158770338491156213163545326355950473487469594265147070294511685310996041251722763432694675162362273752833453441494960307163941820449999834544891964159524347314271508001398306153547062505631618459473800701580449123121371703278883858580691696778578867987733343239124877576061249746070116072664931161407652463209683023160234573395140675235156072608128654483244349253610661463377819213282438277203429878733850405208592285664456936889227845167683778878659376249388108066099118688263730113264044148959666325287728654065079804278833010566443381691976545002270674049975087455632948538253643878081196087674632133496722969602263109283725847247910073415327525513186398335440474956108761694179644915108962065498479363749880244793635117042282029076401934722593261645866039338970783531152702361897353974284908784044584147693494322101430423025791497541762690316643302456138962319870212471911003030393282405608373792061150723594979623038900522531888985344776402517500577853520629148593621427431993829095842304931723393947759467511873313467653107664978475361623833179373544287475811536515679127975384916728274804458855787419134719242419691493375041875464956759723653962788254416380554316696714017377670704787381248215805053586206140697091551328936378027229306177221982592921307436060282778009273539313582790059573260724271802152045181913931951175164380441522021646688853471509942528525671000578387592040305819066138424102284968041735070792360601496337137718395574082899089751664409463422927074583052276898923584208181519719524106881152448056519639338889837635707967672543053159874211794522635938636457903509356513813673851726360145741905146302009658806552903743398793785192750472529329732509023741476403726662955396048194303506075589601125491184625150726757719820608820745399290829390324945839887547196287504787556519662724521906341264569606988336824336099904670028243040222900220146299979907182156011401262167238929940198541940530147934914826676893994142283363322848401786294243235765285179290212752318590455674806195074416346733113768895029044429873946012073539491358645392854489421113157825441114295358972113601908886003672647137578314101323602702588191010895391459448520198078780179798665612278892977347837340519829908955931526870854139086920925772758251913791041830017916355178163637823788868878674025462960516704569641436276740855074628936327913417513663328558774251466071432006139362222138298269572773492248364290571742021234474357074658532454124129608052305845266447706374950319575682287001793333026656406021758779959772330658415259297769080126821897733338907894131817081622607144289008218143029128826370542747287449057612978987360099143370180899686715544466382950455284699997524501515815753818604213538452075763730370627627083931747864008130191985560995963377560846690878570426863551840797103153508953273323428053688749603211626429023679322324596931574530823706483497210602802729169866305462623575321280436155249490879584416409879857119351078038105523008240348520917868727293296754463748974642998354148499310602623033792963171468669139848310574155792390457154336995497697251908625368209583756302242303312930540071145044141960090283894485262647159285590448090473596642547071950288867981999434540719843429022397072743460893605104887042692513359176272012351251438866873856299854438915475819644691406735799369891593008462453605412939634324255081704749709822556425769375586000307742551883508842919401405989550104491007698582082028115669155255287648050711519716547422084180047557883604241522364909169910789339630483070306784292086077056958420924570199772725170902460982246491249818883457207577060191849938632165537521777499732511587213685677111159851643778383449023686883359183781794414573081021686252101461280855832335669227729810365583061339066725161543057922351284510587256704595824431982172402307434904820312417317095077383443513584456270873548876870818568728652753638355280150705821955948732482619452143584095805590581094963662707959839658664625101928026660613144241809500323996289930730934898793232751113369225489321854974902658179270487543023273779966269947908903554989146147071215666572135315637861314686174775423108741416387400880680922155739537411640747417032907241496834147668860152201472915585037737335891100566474651407727507684582083256199921322757434448337555269329793796002247398697141790661641414278756505540208451893239746659371723373145627525854451016625806740994186231523476209476319044331444719286953337824969385719893055720592715357420734283085204403370447355346235619322177977600500076160310978227894284681120259323043032523454266701982505202001521880711081991956849536656297699534065266216313288534031249091429270438342102111244968519694563860989582977657364994262892096853995186408240528165992724596663062150973058481387077888894022911146950231085974876581399217471891979583727599936193082971136646110893509537047519034676224366042831649135437206453240881348061467083565694339728577654679572468179200367663069762994444834851241607993775800009157083268250379171245589134721229693826717116953103445781183840347324436665809911366766323840922992043570942794365085085629406732921599012666844613725515875374126527192985089664411315356226927735153474249594794755092893313321230193575196015184431573692797958411103711945616238463197601802385231052475539772215755602884782293614011442878966804673448984917629892714410055634814629392327276002240048081800908754142770368827569509631869642056820335539109618438642557911832783073396923539133258627136809641890446741716834994182787939591974225574908209439095422872930438240921320913665321590535607124353090632613148861178112410779471993044540310221880092740278944319124708762752162873278195837668446544823675321317271909896070098639294974091554939030486643102564427761342528406683871522854836817643935978301272587130103545959794584237054536773207562431078552513416501809049985630628174827116285661886267649972041244834044122454677087251062349851297554090542243240198448268306856601794074066804908080946601034691166411913119745939175691723492417733181092529552641303666605202518930574387200553629808911607990502552033384617304472622775679763036447120198987893872052525616271295037666308484599340488030305662117777383833292717407487239715125750443174496885953846323808470041599774161740738578843223852104255771707629772976393428861602751997356437844459246966601497078566701045208500529004182728097939148817526924513113409294546803831460053617552510321183278295902836421610208357671399725810350149197450423348346980480510838740828253053492435989132354263641539501215712276527699594463274116471830983893572234941792888855664622378246101725134519535345575318124068735312655854244967307234851461812268846992817647962808156018136981534672382219209274698920899561379939761784517727688651760072488021727079905920603036649490992162214679413025589024600626259246307218372049923952479321007246787831647114742346740961869847319293940712077172309120145814100643201965384049664422756948642085121446881706249314482146496581620696536250540624719330137833281481344651107216057931491440973715732216997747399501318384694490612102466290552561871751803290856288047813890590181999069127772921868565107519524772467643657908471611394895049288589693204246539315225692039180447917496358325572070276717439894583262068490639961197141593569238271730697706019636474736964060233152001246680634968056049363471772994661346756461052972470667352688601439720268676964307657325863638456666783234824430558779033734236755150287884038130567671415539727439222948681120772284989674368172210707702677277309144837965098898588871396911950173398093663824088787116565627745042922713961697463578897614702470786412647051694417251949860194623926641976116758661563588121343496008144793182397496809460188816691623935299956979468035553210719971191012484925859944230914379704744494412090770088478834469889834922755010509581984404321172754922802111404039146778950512327273960983883438492197052196607320120892399714258064337426403736542504531722763748926338884316936811000610255457996916904775196200537485728525891916794426567343411822468749921860949892723342559541188414786095858061893829130100418600642153826880898687618170032097258588116770434379092500916204245060782556410890338271104401841999301291884362110260547437296575136722294757265646003257886270633716625936795854906434472817336607384822041655066357397897918405934731557443332111406916485263615222332894818252446948551893073967496779622764130095250564108173275221752203826946334138984188967970123283858802743889396777943305278287132582262189282061219587709783442206971523680478740402058396753028612568750135398704651209626398060397836196089381319843687306452689871180856410197659932550846257141866487604993406864626294728682490235537412346033254110923317648891607529092634492438519108442904547812369848110420914659736692288023954336360439283008050352326739689842572279104690101748929324229797752317866954401024176241953817720538898706480971336403734617397105120412248709605176620180371667045720658271674111473801637669498362367586318826255855259663652848821234927200333936763208846194562264500724563401969560703110283655161168126304151402252085295279264145024503600252337110002436499706423048497763294295741117567001498026320277995089841996304320420330110342232169994552539805415700570005564029605113548533302125608856783340315280732787835558433100298766885324987940840120425633648154084951935839379282529395972785937013124536613156030436668719193427142255575639690314571351087417552675179809593935775221029342288958717705294933062208607112439113503938773616798228236230465511138622748478961352585611960977302120380468618888487043674959776889943832833287842404545617793293295693090487928034054170734332129215748409654819537906562751635758354669752350784636591396096172613398438478108219325023946552987315434773567285796891200807159742269100010129734860429449798794538606218926687040130606343361884299749494601639616744448934891230738058849538469576915540851184517692732551775851782335903916123993459245563267491912492304217262323022783290766587125133308369613946777857348710767878086190139286186346910343923982240228108010448229540523675931616343436614299636565472705084806506083126011863515087211679105007864155938311805784140533938669286977446890437206195398914392594145417894290226410324809523433320457958924685539261620122380428339853199726659256887113900907939258071440686741253003047117046414171519834289590950059624530375204658568856722823151724100039341817617061550728381576112319492755032108502198175181669908435583226272105561804090160331284563994693408913901862496738992539234307219415409162378094830382284560510983904082039766801566364859517123174554743770699402572247439380409504115670676436489860880126459946261624560057964766223642774700873236004459462933477315124630633879308812996217313577957759613624998517684168071403157305371898149733790962245532666643807106132115230909413724632776828370736897188014495033779658297213582759920287097284797300287067045472521638746643273897847527109737596995502727712518237543992334134712455738270354098502690529976680745137809736645869820386879658688554003236478337836628505617936097578631855439750762113783799226455450291185908792917971622572649678157279891672387646836526556710598598601623272625527026156711383443203374308853375994398685544785116849447246837655521419426262406289870669515092656014514937266951452506380321979967201666528361469573255688928611149069035941469948766155260690367127810068096238359761204438567647239108639169969047674383219149627466874316739678172963918156193951923986189180449771491368610940188049168042425513016728687027049942624185744755313148208768942935959348774545798243607523116474091639561560954189083992494920595664166638154153202569340032409299736150777849245654033471245472502527821050341780517562015007698309994015648050874071669463740969233230003661646164131960052732367638209311699208085741943312189362137872511552989437151123442763987403517943524173934308533801944909882943769723011924862962152970399046623480710089666580282287719224814753489660897817624720340934389543494774444588497060552879426785421129050114919300808039373295201580109835911039075462890076347347132763675832726600217156708106177031124631685084319076276149547219358186050019448531200102550690930686493427455774415631104345478200487246472451592708416853113114642516374443739593360394868466596697606074394613203043980171410926258695653744411403979188157246104988430797111131916482246743251050959001213589392554231533037602175145847394475197524027353744757966368384702260954179708712387060210969653451065117238242083699809773676930446023101781393545119753874886886478507533083072244117827189305069603164069383301415999376067342874368216668700217349008762858513887116450155311654707992297436418221106128710536751211566643067146557960477382877063076611089678725654896612385810770059423088189209126844262455153295605317509663030487812871265775004483631398758719527856517310303370768323195215031237330184095507544994844664115915740833221425182603613323105677316022055207722339450539037682010076846515091782825170134149178996259817769968419234262405181101740333887351312194414512655263515110148365364790168421828031772143233923873997840563912756478752406968962381036808704418395321725522471276977735935617669668846858047085412182963352599186969261903235376431466174495416217407847132092723148775533017202434028620620257038183030668778206421419835657559007245944128545459070498009880223968019921122033031721512132580996823019877314863275688154527198369115451395065554946046887421080616012982117369262921563714037349013677770699344738939537830169644150401226723073843162368461484834993772464275151420633226049929837240700970144919892965301010170832155967003072516925746047427356551526526382353452798769990381307838655103814783547889153233766049418297144034992596287852811147860976750975761411411210341739908617930930076662735089468365469714363904600392415868837226077731338508607394880114440152384004896356338088716972399481845918861687709733460671379734363192948595107938930522886058032130783416927626362946623873242285807622445775384838576252082073766524126263087387856682886803034931050218375207142189057684577258611023554076258218535922401930572242952184180643431359674503128316822098371525207383935623912217787055328319839274131418398892523545589603803409661183971773523935848176874440124597869123920367335731786855647127969738034016489830650723766959158830561936916095335257320629314852387425467841635813019810789761593325837846205656707819263461278904351752032777093536524103582567588642957346212575932561488768300576169578703085246398578577205638004576851009618015051908192423935473881134316697446761452227831280376259486551932143105252365302399445378782227618867590174299336358814151802641775943035583539893258964764584722045392655402687245853040736048762648998984318176957307314800634435176909614383960349970536511530658867758302240364291053440823785447255764789704497338743207488037274617231905785618494996344481848616268432037232635662200995289091242805421212959609336257501022941782070450187273262870843885871531634004683027360130295213565115104037120913379558185446345251133881739741529609670153783095319593184281117385160481102086698633815246102296006128714824013903045670306886836174824005497061763337069930786955653924350946148002606338814307006091226902357000481792478527591803511291462032217310666597533131638064316619528183100515378338007211982104091352274768990348702329076273436992898238036616984552008754653570793238790212901448818692076551385899050097722432191218505897507852658869912462262210418144893611287031820489004228557778957097843802236850583209914363091521383338968508050958362671575288536330885058690470916952612737579516557693363115293298092810140908290262136070044202188200901140474111285497514013315304842059232388718135331801856676133031143040788495924211932824241758422030529494124999312408785943524068942568572200429017988741110725904266239324171533874282944806263874084837257558495522937490982754032357712386066680680256088468630426752396626341258592981230349896063463701143030625339803655622201980938650417986023100135347150783029414199711537637294136909247500974214630487954951660713116735367478463227428450527278910582299618668938210863709032960260395958894807232253429313778911590713028254773441846358824326040696138005399254225098776884259712680574116336065273239266376380161746279267890000518368097844103583980562419509582307879920864574235764988591504563203301864438759899293072839662358141726352586581041104899550441384577112180002981722948851706005122250306607472955563322448629745752540382240368747172859236566700511225934452145029226228772583879408774244045154564979710076821439221570801996665927589933139596014991825137907304813588643482661922476419653408042344235568861645930532187184155145914198579889994280390807812857083596690523540314640796905430663065445268413662204561602618689571153959829669242014713466471015338540835706777875047247158100455091729137996455168675051519117616263611316122672633408920965389385956934320737956982882628238521036604034111170898330095352516507645521255692318388122988352167532688640991888938588024859366968163068214343260869086862137152338403401477488493877381771221012000430544876808063648534476553594396568992594326856745250355704507088856666750403708302332855749473412498169251030936969346510601805384592496366646985609719077493032307491283244786331458775194872186850573554378614604309078565112256967338529275159341260852338437475588386421102765349103860315104762523836821120571405996960877970129734065804003520981938546865374498644156338865243397856271468395643774066805399851905761973347233536560254531021641188611532236922083230489895307063479360012152008945210623163450358728195565548765958031914178723940148359470580675371788942395768474621421010683444424857753591466716632852590470629088196827954035857622496142109223553576657859893433830736262294767581017661613275476481259146139650214783497571500873847208320464956342870433886187507455855694743219777262001987568827949510028638200730557329989398827904591803870194056352856193834924234341544480386331888222548655715583625605075591008260582926504656093314699380250933687934233619339809800338460057541420340514330897343948149581468155657690710659407923368973746241822077469889352664810468557128706921074438205473918524440858478122224558168421864644935962529394480812254670417192907841898586715661344369757286467890455034568744819088388286249941351918467896620760431527340543254309253249168679089845252816567746145815818987703035401789926365484843575997861239939608115174537291863082948171857577067140366424526060765263831927351713288699055527795794799318177585865632454858822047337941658101253776074263347423179666846316448411701349096430860392513023464482127152426980323192932326182401317333520045815319113872736149708290809753038353916326095522296512691021202218952452963152054162211990484067501577109993073898665355429839005417165906704697237891068887180694367990291462314475655767931875853276626264188421433414553346172409330404216968372177764940634900963378347734702828225423012911528929895349357088934312914859441870719164841466241381410282602855620555647451212216384687349084529716415829639150197883005088220013914788116702485726895560440935451905914292296832607364954263997170508761251792383136157788803234771048863180594992073464903663605599736540862557534341154581697055096287400983104316067793596738613843553355345737792363040792103075768286736837417838808722505024866292550541582403350928146697323601922731648720643523309604218177314322786577351975032404534465950003652388710309722802580299969134246144285089214048832088866317247976519679142863493930540376792780199045634222517412450330539505045565273592916586757950273686458296331346056167328497749905643871948127167948607190598767709146742422404546125817858304666773226128489777596996830123781136659205901177076216721300910400693085823062304799099678881852676626143203379027592776546615523137191757513301393172564520595687106957997039593076554017157666191729509806838817160128094744685152930052166700246528469479148700290141384160772072852585364982315126356299439869915949707602651914854760104605505375869512953390788677077101735482086985827010171072838895289050276260297245588840435121806110544744158805102853024303716149833734594283276640215790159828032999931888441268323309362618277600131114671025306872123283525398923624203534432294036707188673994967161316157451933438528612278344535322497408662054965451601200893487442690070931450543906397558437017938793800224084624168358688971021164644980318351271658521921122366050845481077848691059349711779741523292545676973707452964121801862538853657026527574518283956030405402567274803654925182350827827386483009292561926763055614583438645531395994068825831983614379544827172347744608268187523658406809012065248753650674395547815221442930497509184114953883664732483327405966087855086206093646307483772016026303980412361434516157785490617149900357736982523537047200814374262235787102936484037598832343391997775114765372486153683828550047427007048971849729454490208604966865778636348862327289304916692951714082483153861630552508126502050585828070204726701099342178450239200791601797514317357057426252703784648840660027572517556067580008819186356517604387240484144720235478974528743738118373212940121264051543483874489805618499595910199676612420362598463139337831472499973031715395054354094055368143312128722946695883346406044695394166796173020184859071811061583893558139694831893327119815472705192067297851569801343063206661496624860583300233000229036709214754510428939548666182359813596584894284245661903285782264865393380653258066831413205107203166058954776778043426271638961200976498930940122730403154923889006142732967244248940283364822992835197871054209269758972267224752389514648219745818291997545305586401869942459791474082755145195838305969075644571183427304252128743913906087204583694040998758921473228613167822055280661818818512481122576568288431353625844923424428866805868551193213731287293220074792173101596981230400757901587756162270294608319188805432455679331490115051545860865368367742215656481992026811718694462741698108333446030443867888777784561210787628851412615459277076309206158174558656046827936196611967723227531047782894383121522980850528186231994294095026404510337016323237248588249709722968192406206054852893668392152151608947758700181868690441331112359085497454060840899827130292188718035318691361988949287419058202935286295499897731540677637111570903412309592381307093164487204118428201841317440940688107159339287316782034948461965568769535798506059925770525270628895296012147192000671665386560593629167649127434400652935088425630689241190884316223737057214035661863053166627224252325239261050922941074896135576668851331871442214596197031498597129011459974650370422921270984193493202891018227492158782187923946748608477271566242478864498639006779831153548258994189702827924864453396626222470846522220037201297095474617251730034117483746739759013533975028684103616500122097647119459345329270508600663267147826346501681451627265895791160651380201907482166866392063959926890697852362441995238035342464508974414032119325732633196802919233805577994201587062973900287389151050405939659239247532169096696488486437335338216604829513559819418789654643896725654868784524820792986855580205383710136002867391144145685949763150864697426294439139438108204876523331724381883734825105988079461424794930960008726518702948919603357764025159630919597143307731026877678111626116926086275976995533279516484229228106621313363056675566041077357008209650089260016307971777682327930010344569660312719541696056781525724674706299690465671241792114290250215589646350762652198237631054224105700985392557306949442042654726756795841467430435022112151636505509601529853526648617360184850024255304970484527564472974525206118772252068937098824242483798730183930163954174724528962597916920077340450981686575326756526442100977113551313328452367847825006684389118787094977705623848539242331766401019319470173121097208032719476919096454505806011729537927783545162198717981364593151723635725896692931640676506111438609541610286573354119756268929673085405827273897315597267934578600932422004877628585933818956874453012559175602883938635140711930029628060167258931048807914227357832244972688663833866705610243559736860610822218516924381488902408009717870093006792749667986179975093347528577267996341116450725354661053007504367324305581184849190130417790408020957596203693689729292204059089640035895776831093825254544804365685082027880075452640230396899215678654497747071500663502113909022028430314505117283771119316852281351383220784291684994810862098754993248149011598120765179079426910376418870984156755337609415662338578504744465847370063833378427403763882891117046274588128193069368265031770433679463313557373009299316264381256807341923819605372665068040673450168846726336279199246872152882117069885143386512679386176572226935436129368108963344216345793734340702898379877699427250411920209268785250207777204928751927016665766668012435296106962525140540929418555879706689456743868937961871259157055087656322111300015407099666172244737835954322563788686662489962201962087200814297038736529437132826942050275630106563793981302046501419039317219053328328507087713529731257289492148265081241269362875274400001441580994477627345392296335707112928882804343484121231182602187574683106553337608573101006421055997821049598156409954069308450316883998085124346408428579009760725106954928220082577293103722775870895262051225175370831614297032542317087983422697063194332105937226006127964785457268646283669234490557800516793788002562560761567016694850350435401132579243823130531066774835034345346065742396685727385393599161452090284895340526245425771389212246443819508287429017718271958270792808531390403283359131839285220669162587614849949997261693867116298188968993746556083276374021792265077483816620858937178052230537281732708355254124059449522158734308687398733258322500041354611387736528039299603950240091758794494777083109181297586505758080825044719688681130302223631525759125939348866728684855934037689477333798591507804692159513142500084122763442672055442758220633833660211802124118013402304535586438786642663626550167990922211567188471245319252298891122443164667835344641514261214618365486000725767478761819771568388606268332926966892930438153173606319651211940194208976143960788240231477156070120548827103063534079884993219429122505005784478962429488398947040848610746043155194588751417968218801731705722139914476340354175624638455257956534410457972869144944128847468176899748277568200517340753273500015953254214059209026870892291133370725980831285869250560545760112448743719145756162384887434238412095981666739255848639863601945568337452236342309583681108220484861207714408921852761872648755576845937480871133120357140681766388192482770259390687804042906361727831040898852766591404315478000825356437699708970674269353847239303562071642095427208978255984096566613183653743480942741691946704123291906681134079803617010258014049791413470366134759355592429558883489427605628175034973708273548694316043058829241031995513451040830603466766324046833263923439228593288546986475933087497734059355072245797140812793823641583603314552086798416162866120275746214997998263530217310244972234024954535274987805632442765323570684789831874158122370022158671572678575145973356847066069992496812317322071170626484922583487988174227523587412687941250419681755471215967223315727290454676793922608835057903192554689576308526499120662464349006324758126748391721317181142976850808642005007175401630221823076481971449758838027066914836233248878963876735026604624358215162766414896492929275274751007115327752935906507199467059343520887470982756411002192685496013337648335520871860991953128254505977108225079838137734057275472614374785546273805259405404180299208249861298777289730078769042982311156571186110096839668637942943438590233319056401433748564018958312828408251647676722128034592054364458379507776423089307296830752719704245124946492494216142700705296346986667723921671519246601765057682587367753512862822975124187833415080629425076597138482666994748361619039541931625838233191903025011002016567584335150463424201728456493255243732109224550772388173652684354821043538568154990592215045804564843736347153405025877679167684186290134591799680315800061756718412401007313379585879168782867735966990190629922112268891569519422912998751476620006646443900723119615132841881180406014415446138186795648168830747211021269191929898819758643778521849346661212244547727637508791210443204963688516855095853429578990068613408566333265296936438720166727475473709437405086962476600776545447773626832660015001281683093196629334160919826809622539758075538939220470733759952438226153792695904464132648482716689554330953451077350615904526852450289161414056753420115689070538031901224022234156815550276354852077053168646499510799503109002582685276987817149686525549866265688175571716494801139284373502280801427468325380761836153729555970719074366002614315549651675804586444987349771427314268095151168283033690220951365259026377181203654215357692663879627869380661524084293658914031756463460312974481945471656519438676600098990118025666301641971226330210114057265930039849887741984696121905600033299563655236049975435927835766118209908627927587573376154994888636627752817688925855328200913031847786899022861884072310016835236710972503276100122088730165855920472853702515963640714066841942451373116860129723464941785155541854587429337961520069410134438737524513600999973109024391244847333372906009107953054573292410100542518507660095593760127686339765565733424517438217803179457042959915595801426431882848556800900254528457867595707052084871499686650283490392135554573805981351800965661415750099135883267033019687748238509955033675663429013259902748343928764832068848970795076181296827276301694847453122771634392930083548079198075287242439110635610478911592022211601688612930124159866308806497564545012574985118562934093801996329081542004642388672835968967184480167395120733152797923572147008261671538956844837094014655253498283642565938678978105889377240735815501741196702891938139160966599401897072462712605139480054467208716887775615992862716780752678884542519172515482842641384300473909965709799661098248373537562049026237537346498631627823241171481265190789709524235786205370933998827375858267507038936095233928757028078477930821739939891540071569950972676720316504334565512054116973367732011259620769810874983482637236112627459702937777699864849306700218542822408101699393735431623422698533748936583840583571568497974278609800582972882094636533958248864200069738670211091937305096406203255103021708940676767549940428920875391396267513187853908275354307050369000189494214553498654263728607753738024767186386896418409105270748439768173835281317419597399660112980092096787035047793148027489244805868098054792194797564555125490292191590872435208441823059006063146857874540713356872583588532001512133862580144158511417176797626919888340650252485487276250283622306818476603575271771221982496971833364811553475933047450838564507522796563000502765823810234867203734258074420726156658736710455989411761583165838840903544742739453892354810139816393089405192442158010248033368839496177948171029910629191426887270331262423122296312974161752994179949268206054594763764523179879834878667618143375822875583269019232594817043676322523974852546125901989501427330529351684124598893964729721435117597891117976233405665881682067470733102665241792153979517720670834325375289821292819961356836759713549446717755115925098619295382995675570531899861397157083074297562208836393870603851259388589907661631964625756524384374955786639493577332879384404301266346715583534346074663836338264819002325004673193729295078199241626555163420193130529031602233773430445903853528543590888051947355824217902388067325057900581106619942390373146663548723663977937781969501147923797513715801127033461678553763451432292922747930916772913022339763574858715800246984086991182964041828831628702001597533040003788537693129608363879573783018076375315185351113200049172821791838744417746198651831513171788764016515932151671657513765843926003173545501796290790654415159548313493535220111251753047860608959719662289454216580526384239072921486521339401583894271239388529344370410768776543390663000956707057650862610764026646950684656423022654716002433087265546255027037629652703841102425625988094898626713761909317866466382620208879665346125765168262147300556270314087544984792696168949844671982803578778536521679988447109877313997064322104563579450322157516491803059072070977198418740921285322280501230869029006134814582079783766208688218033945005218844599347004448182404198808045935168316004509843260150786311019221997864077551830095287112511631185964852464818113224049240134309943724637029301435947937463153612599791465155243849968109133019950872568173192365374367875781389611451377537536199486334821220801791974163215754776787699672129361099522940238773687808469408456203794578976671635461825524341008770465110010723849979259052778760711056988725322276050621736442163072377519944285561125572276107835734972569114465329291284421939578941279702510383010012050121308864480090360707010053131988488435981627400997310332913361017104775152789464129235535082965482174247082769198325042614326845467916097467420013165087886461567370155881887126373706842579838547387916483950327734523554404832346315146522488758676786218693561458756158189367491559362225676519172900891092803911078820024543190860462166641318855406372889294166422466188407013884759409045244069412984911785176074578345329448623132625481547487778231687902706208160005099654659224555355668657401527570565691599396870531521496963723236637892890539255865447592181006883916513733101001194438747265336134907142845431905800276929693609532667981782904048573918921594272521340404828775772889415326897742188084554197348572640175864591277990564782714371898429330949910168337940822905342226960985905830993742838020774372823771285614540010605998527003175646592000988706689090189465604786146386686497590274509811122258260103784192441305496091016493726632155384947737859854150228911818572464621309293356860848765378225194821582586509694657791532812121486222827340895436542173654314470227804389844013129162457663185808490880327632585952558771150277857921808277486504932866262718532166848975439632656095760550059432754279151281754563024220809768152927625444905554620371509306708453242037491860866117603333766924820564735796002745835340393150489653308761793828621045967892190244021615415981088314442439580227173146578943473330483963628445111406218258175737626593075717314628853123909103933012703820165039958725130488826061245105450456502357072179032030435984715906335055343232855222072776453741683231534298308151615250978267732212000447388139353425256274768204102727553689209969144916666178681289533491023259852884531649721221806858756855276330763872547762862660001830310817825616567703120111126656274051032153344364106769727940583881653566157676212540831327914808513137564730829486232814672767630802924802101078263760807856932316856768768477278243286485159157668368926646414566765406163168421280034014366205582215772448180302498445041617869433025856293020169509753709340329969885165360413852131614357779641314400591221268504783322898798206116535921189412931747261401427637720083666392240370902644282595868358361688312575260839516345230624326596311075971462280470756762990215672023252804068905324838705151111874526902120856473818455470220650270950750563838147790105073002578226166435090011596498561778409996571250672797732366111443934325488743912873288195203746604332446736288719873414992512737886892328047255705368124767955479621509935444843100063572273662655736492214038624812470607652573589846576572492747381640005055775544808539380584011399861587935963945851385423611787829299960285832726362460356363701814263026117683832383785840220624444059454559856429106665026794738497864630121311759039863105724487328995839332019099587497434198545750543535282729233212960425192985980481357183076815535140135003068773138354987812915441492901378461200130721705887930898080275027057859589263666266511474434869443524470543469664138321624015036069485892849026356938212118247231716940048990821096278646182322061030018815198290913505059487405855194023299623308086861009305159890541345449665380048943383417525665482655425736680456900297785266023165696471647244934413390174387581608227890564642668957286285144195684124949818622031417444558035638215123771612586147969889867605588555715164970731739439739378675175037821001136631742200736095503680869908829906233551619426135721438727982948622851257848239809052796646098494297275390802388265004459486381391457495131624617413068326306243564026607149564345539239671811389266702970973729851946231922306349747166727417392853134196848757782752472227594104274152923278177105929319822814917938584320226003787052413813697171678829530844319385855148733277051249339237015646053996457925793078401923637800539058401597509002444234510039396429681059747474570534545241968301106291059753450898472105605625484766553875137626939005916881242502019323445033765930734073692755042606746788819653348174276315670938502880802072767967350046378879882443774376616940165965594010821460823125014408586144462942408844744746668577293406024691540097445467691625046982115958735182079797215172671189351832779125368466433016099667289811735510564589497054539811804702014071029894677233717178795101145965514353485950000910511488368785771729892808714055538373645892237708889537634118608687672667622481399810992505003361090197346341960747454885791062287000163400494530170898485383287380749666258470689655539917983263959808114932114931002154070734653732011212816152760862667062885494441857093106268225513772820100912255405821853757504195760841606951857420964209206179681414402674728602892121117248514485754917283872047768581019027144220322920793541752829993201502139824690023518403882465584925499174953546705714297186206949370796544200073451248799424768614210573964424929485433362505240027906329789335817034658751045906946675236000530747633013729950740418686510056073756554937632994761400637734107203329453887981519998827052183631676363520624391893462059093724548033209535602890112915090762928845165681603553565842467213410556731509235588986231129502570269677074553642071356930015259509786468307745955173570550219013159995513574157804366790657397524498485491188318782806404685378960497161743536852395434370724809615197436024961110837216898087129188760785482635196658189795927847521266779692352514392119874972483807276146207780742870625062335886580210738867378032415157282215830806792965876151139204822297438026236573129359488513955500842530796708291279795631827305327523473135521754863823086207875424196247424780432655565022157537202409683570007442620384975462309489178851138502711831162401364103440075595919302044321609559514682306693426032859263390816632739188009248880695333674894429037523003548977672356604692999715973134059687248693874997337390732638828259748748702908444466846025273572189474679571114974904486861221532352412861936835837478187597503031579156045307086896100637545799621886692437108332244197407607275447883476661166871133661471400019629409464181980309014926712664933793625213649525835168047274652385904330235290620555242804770257252385809278009324169163337717433510409768162008888607522706067695606452110769800466504896057713172595218796419382079460053584669829477759465631271614984210278076658858279616391330393612172435912417965153063606850414335310783595183551101756302798077211995351433437278115875134322943812914925339694920106295511723880629140582086486765961238933911935254512968391769300739860669634380916009811048426960001226341056321710037178744692557505661264631071189977673951159812241116681547579825732115562026864550793823109861391916221988593423177838604508897990540971542641563840823569598705479801108777465839433353769484213957768830508307489824209227340399282626634329028987791859501337601755082195328927632703305252248569035494070999374433325051996187452017874902198364899618392203516041408087674026228691232263536073029256963035352546470112090790807392322598811079841863828643188503576101153921281347491021973188882922804735726247813712995186042818643345252000879222129800143436346391557503296792138561173393603285713886835564958100239896790249466823808759141414573583924922394294218086032570439394330167173319226300000178497868081545242762606460222154666055277687514120097350402066820661989644783731545543182976668271110830231339246925829987790009637377333236826361398010632560265559453183853215274489445909203109251206010105094098719373224153170023167523394272366856301476194009771710458001946465672666046431181846512993839773027379146095393513005369788364004351032493043891267421686960771537929005277756506835257930430346424006990505530317825034823779180268117320374909017610158265811087634445826681755224198404820379838557527067095957241801784851640863513660314343511133594004696860545273298223836625673503846150218276234938246495891325024490049158390789574150720582642187752434343579373544098905429279777713885412156334840218342618500767513637610649099410506630380974353698003249112281339811797381224637977228075026629314891113376796731147138997365923933638747538512886864797811058273087878140587247840217266642350922448029944647045351011345284372689397557403791383997919086333927845445537698510735390459637883660921851701732789566786221660429803366229249922599834739627805398577753281853542395091214981406215384028382228342575610774955125126997237339938028047829853596857898366853127824263348260615220091563587175055799080548657386140979846373264183293503148094882901224238035511273735052893321595346523056997218543804368583700383743776865823882592971148586344199447022278263306598533048414402944797119544656899873948826741591361207262879214668665049182700640397062990535320973944233782957018465731509274969519879685617236247104373272849837516494530901980514687536618133824677124600337670185836790555987327676572760001168348367003999014570948384556541657940711381981657303560544105752702170620045141544114171475013649021955865097485953905474006746869419649123559381689729961024035432087497219500327731946244779130632204950672344432990627035989645889782669097818325618449886667417427622019242156197898522358765250934889068109286389213610206023919741159697598468073935394373173398670054660149401321632612191828667435057744451109394324977018877190666875397391735262240190380441176188401654955083232475185097280649602527831999138040901026529206131143874227640120158029490479216974346329475464687029115562725659709865163414437987970593234512529873114522922442119584194175805252820615720257714641779535794174333433722041373047429062488795425670716470152323410532817285025179624479744566219302655992550596831783332310327423764175199422135779365068608936713429216925768418223183813497075068886355981762216392278445405683925209333459254036741460709100844887472310157300376565039951475493698325035530501627349574276404556567617495108615064708844516628932225025881734339659803199350263343334900913099004675784316222690563793607172862579039399022121400143989268718970494700963627116664054263726439729265272432503930199361017197191458721191545943931756684110877254178115589487227657412738021370776999855175146889585257286970790525697172008222168234735283861246109031696583589278832747272218553512221953089201226957885846240567646770016105830752033178190587486883536365956679553212482590237994054554513644382379061680487423254387749730690714864809966843127011962761257861082198452181391329526242962723196645380563298290054740172677064152762091112353940372763223168006734784897838925136559933032145273889894380142974094757483199137331781859242862786016053461835679707421861942130676847021468675331326188529803529861542905301328379396972320388320871938195647502654768814510081469254990625226048737236342474299105693262054487512746420065365804401140623962073988927144386026415119497954543521405938941592727137947461151933438763588797659487706139110092169243993458816997599992731253883970718749722769346422487144384967413840680372278996142856829104801759461084872742276374538997237829605836165303629159521263971359547392422098484100670671481448564096983253386332587587703849843811825820748721683430407413161839315882873778877127462154463407844326971552700251118667413195312445309851987670247145906220110509105499328205738075377713004475734724476065156226782296929570192341388196744875247166145243831683210313214418899736129809513231475182489274191785405535915601977490609819363825376230387959939263274129019105563538158471259463695303690954378053653179555807323864315050477005926808654434696233903608640427818436904418956526934068396527851638770638810665633650761553598064975527002583550939487907851978423213009993289522667288739310645860265625625357368958400089900490303602377596804427684100348314816183318390355566266113135239383034443032192171540633241690499348121170085040145171117784339746662716344175347561257078203876562616798004538587710548270176928073984646624832799204947551473849060588698620647317804553643263537448870120502866042684406813420046612217308918824245147764504186659985713362418306025361592744101457387203385366965554672689211055064704415678176312566755243844034178541619906798309617778274403026596561684574601451944283213537073485254432098972942983376002597323985436292179882259027752235948311426543783895456457509826641220844901397420459716203434843782382086660496544578682710472223501960029764490620338742171020094983925939090631194305217341123194068201639944980000656253198460224787589243201985649269720905958505103781362572841948792132722923077285885591782029881820607595019926761468765956077706749752205153200432536939920758034087325990322102520077721765428728533851505606071972298749721715477681597117771028636355030390395888234469929375964720446513024336665938527141655409853101124757434844093254192603068587216936184253307292976016146090432226661473203601184682525318788288361245709775826906775763060824173556179328180776355635044739256731812128208014083419825665903027064214052537295419474059300114061491676410650521099685485447405539462256474470631101363717347287324697204466651118322524295638012155930965167355662863229250852168590122555644225859280572602541375344133330048730972886406915401303792020486144471884118810660752657758792347103219878045435940822326468451510115422118373356484157697699374756079680834699409986754732262820437787028859656898806960759536340836082474368109557051011271921055566650853179599702300143324219940167008534881638079157383103198550024387845155943291697278354830954614501851767193305665458934066569986172559847506786231045446336519680250909638310909305688868722938717495769334050415174191983239215955843419194715232529376178879651360437610083750783163437519553842715313034440008173505536040213761458831005742699239205682249095952126091236386164134392606188829716553656480735455326101753468147829376294056166948312517791894743393391743590093822373621269660718902580348112965914679100006185433216917419583335941052646470606520360909708676915224830297614670359510290743234295953473182295525209134082576977468296677223913410459749883932055325807800759178836693886580192305556443952793876495711853243567917417406639014218780370927891290215308227888074648622992668088687212026715807125156583710416185340642141923863943177923825318912253065979373787391128239670621152905527182152123351139307183414165768847369838928677821479148216766981279579498346848078961311517372217520364723334290628411411174798503339930744284376064562256914218948232379991150576179593032589062830487500677528907293909960732479237612132943130838289683708521194963546343308088638505057227727622864851016731315414816149937181465945179392887510709630419620957711939044458744331785738505374364734431572628300990950427147837993336193344228446816657752518394692966877061613407207943096901775635938267170425893831487732147105263660081499373906506369113706550073186400095121069255467853030747021823859998645802537175428503549785277146012343675916947624190799029383443277917957601022088220127128472636921109513338698707927564148067767557853819574718108792435153744549573749503048185048070810397613724271602545662237116970857615131039370253562711478988513186449706441558289083514860117152477366547150439725265666695159431123989020114349890231221045910099209994290545534761795628051214612482501202059456457969843247650674933119975223458443073139443085764620304179474008044414192469814263981443905149905519695084176976718212074721699148343237883146711082173642821836471731087799101584535375864315664373962122693941625017253961051071804536626467984368957010324657609081923649973620779067107131862637514016048751611217184536452524856715572482127969058833024973492546948148300494126541371588111777294273140196702695052553082840980897696224537520046961314999191888338728004642434270627406165313585269976092798762430960417301399155419968986491846282435445443625469205366367102796320197715138504155720383000357014824457569296101848601516815077241306081089339584504812205679548173331252377191304957888940537316642054122930404472061866460911054564731418106958926374497223075418593382588879943939799328138160408981137309704336903907418749128845929533441175185716384556404452147323190713446593234794909594413485082081496048152622098893068078784688769944355604403219708409832469303268688808447763499020977626836486470151039037577907033559569749719411983708886523632525365048128900000860956031797236655824295845932648491500979223547202983978764974292867764740761281737654003198443729984328399412841057844997945087294343710562141686242213038416307824213080890290099468703150790277597175319804905967132791350486207497096038186701153209281497915128447966098747504207648767911023426930365515894334568734197127331358856059704865071053038470378619761356852838066492058606388803525350478197776405985398651581750030596450636142663232527542510513182014317512333640750500197756665368602284583401282424590927238339110743719318702515116165004319109891214822022572483899023302664494982707573438869018801452222396829364055787080827044436766291039667253568827251117330691847205095033196309930145062829675390400185388476176119996736559207543548363506991201846162330331085557374066366047480724608773943332739007482449171016382555087628726546278415915221139268761429425116110300710308339689503853991571394895546884614504654054232439732527048583034575931038262973923565561913345027024540975570802491875017518450956226209703817776306535386972157989588232600929020408211274647441702934331384712583546954890560184345236295149561559680311030712217067009417685110562890455635885717521789918766231620419454497518566200983951647512040234237779608648548736695428165138983121724379021635164982626652096425102053150447956494195836386100476901998920191193303073474297994279202303327319513616211708519505348255833446744538940331724611356511602488192694778979712222574072411972789265612811722093980933834752936852984473251708767865315554938185775511081125186444515690118218878394644363442041358498237459992480417307690368131935410064603531422929329882841084780730888041731793005705704203101091616967072844910732686544797066962987235391945036397378271532482539842109534454520557840368667192887599350767704712628927309506060690617719313645734381435496766949460676943432375229428993630964553185145305290142648041543475760808675086151282397659708387307352346106837462874331325626904536195775724412147430902114633726534285380514509555506101210829421610081926327207170324361679682296261793127576597207555587832588474532259247368403700358663067034723729189445784438104368360660381699292162080874868978682865940457074713144764503573016811909813664180451092125924656145805349721129429238493699377593103427848253699804900104165522019631779292042449798913983468785003465757909236030872652175647868735127478006613091853717215717236307644524069114842267513192377888776361386918929897402481321103466832108101577712635477366152228632850667314147451879690729884276089466471821843422278368853528735207520272505803384700295236133390620089314452809887261651643641473307644366815136194381046204917441570603632696824840627802489702380898125865190064581245624425011222529687946365686987280940424867086321316631971982284277125743323225601040020721287400820324287840687707198364434823295999907175620779794718833692833632897264861309293266556896354174235745382158449883259174128432477454915903233881319180317157947217235332162226923212497172721469533348637967503061138549045064608669188237228062213334674206383083004026494733199648345315302303314547210850720886415444336965469724086451845448203741170247987452034450503093843828575196824085528862451156815819380117074752598353026291427124311980334676745711172137051133866416067217242151728258218240361098711426356601791545091361774061823115159918803840474035331156892316111100949260032118374445351066134276803147786869641379080640064165740185193105179169746468040260462709278568252156768508090516789446846410558185054515694507635994310334053420586980569641161846462391350903635691988629026122085793561096964677193868126303108060319777328425636886698054530539443483597122639746773263439950830432515559553878955181775992893302210604569513677282241918776375323589722228015354755425661021877768678727973021119163055826668793782462884566222858970917335240449983936454620081108539503071438489855056426755077379607446448865492104394568717389309985525291282707463687679213135508481770194370802911415175674362539499542096567065442712693764943369508630173498488177010133184994436930145559752720780906776918820189862187804378472313423101940959038793788465584078930620568926289093864599770036877725233199103792788462283221857597693631068938218441583354475796612374063077078944499138769904866226567752270236924069039249622795048615520267984922261821918027686978948085850414416007912919952893439188344433933480911893121394803823152445593091990287181479555677428526351305270822728007534685990891991599685342631138278951004251392306649800518354370541217382693269376510477569846103546314267617947987096559963584622907432771695896342003289329610184251199488438895087718026562296529755680079904321417430292375908227227254541845574113228261469722295628280152958659545715975280706153707045209450765254388016884110337756494999993092993083210744013376807038872190647593946788974064149901042954305776677360843893331027004055970486840276505129089624758707781162338426062231061334362524614993360691151146904803159085258214082981977706423768335933542812992266925008369950392382682091308292846940685348858741377060169185500675328862357666538911435173531316493687740163613724743248338145599013671556744657153854868683127527275848960264586513586996869690943235946090231495595908046487582136605823418954578913911561752414047962230039367560675920359888261546603325506745575173552831727797623580177664984914461099713779084258295932239469922792396793948693568438473328977745406287636032950569077323429851028197228576384851765219719541447475150556130543629812251818557164230426721471560882368024846582387047420471078964954071942103255707873335047234902215703120211299460601430860682846720388526098419170653856092884127292210677219216700725403092133321540560961340173943213706847573212064775705761491922145000709752248286793310082431598665193803205795533210852912248053128540135681589096049729412201262672459409287681959708890407930994288620862496064899315757664213500288854381995311463368192049621633898697309363970915667914817096964401754070572599854954908036899691323512704635882660178948573036971159557541567526808778140081441276303241541822860751858371296286772009723467986203172126122700570174163628349350280009190565152525179300417106125969376261481538600814781646349194774819570433844302455195045479614303687680469960264971978872766027976388216529988234777544531007783096573942137684599232732221859285962063464829833026472809244906167484894014165775538309796290731513591630112827852858257128334040772079219834394872040676813851727734123084582855275074433470471878206457279804325540774948936012777891211878131317465798993307598053109813862786776783497478668246757024004074976477415026863116138420330503290168543987142760077341380017707144316146114566359378169160440693002241489504682982241817094921254652418021953035261213012915650530008167332141341969597740356057644127093526247567574756008580625707459051634385755329034591345273363169817098425875423645003475781911847371892360356090884413750581567492385776032356509487697707255759806283168507206201682339149109500902194632103729411705610601258848636408725679562578774378930379297661919217083820117038660855631230305769314104223459188153176964525449147323826069698160215881005314537615567583658226289525645422499473038052158939037808769420557118896640479015553690588771799975513777859984579807755996947937177781833753579370877154838371163176457330742624347763567840796192318690192563106343835702690029205161113721086297693858365517029339309191050523087897775574219855434972887668390782016292720210107322201417087140133329852962999171184466776023498167382863706530814357321069898376212701890670488079102859795212281871985646052793763058595790107613666433788190191460142014527522462807236477936232808731241151322535472444484000892629419213768008418388083937807874370449564736795354108513795259321459488896352332564371448723383414517747943601603710266028995644378801347234937893579354565539870384309459042076774152485571899218726579782771069626577798890366423274482783165474621964318302294090019531504670489112062360541390906628152025235206048257385346324382049762127596453601697859321857981293053486266026706000268381084737748783896946053372021827904496055718849739742790700338669807851824295924819165647784961161281498096800406117767820719203511233269555428144894111883226289197364351559813339856167300841386897647451715547554366128395989647071437306620978807685877810773428622127055985506476975098637552191156784023958421504772983889706419057937309956506512925376081633776517309832601035347904544528505870590155504939281811433758602518606768433155839595844761421772840844247089100517708919424203607431888723114742664102281706125749845792861703648584602115474062239310129936737976663394242378643092512168132309018000621899902398962591397701173217396911316151554664786368176162006239251681595539280708063004933120784283984858272525615200689588330958227830606140670328415631106993231089917311941615778722764865731357910993065448437075802185062915775855548594478358139287495380911803181990330630464246129955508342865426192272018480267908494756368341770577844233542684265820551598408198709315627955453774590493571180036331903628524675081095571165264211372367211004726166484727975358178562327618079916906376672642749645771667999135221617353002272558148103326040912560897022161999168057122746930624025899399111051361370279849103452121868095708715951469391129225740181527465732909302151978231143713511417577757260755855290086570422466978346096814600872243611354559771907138364519818995487312391018859256060205926993129779043655843058431987045517366533661861673390730393003943645538933989946504069059276379238388843594517054023038510184400568566395740703129182532326647889755902567054712691860003608473954559134614014130451320214779305244753140137234223025117880119655968907499203698703682166095222987609959623014546616153976625672179451919102114534606308799267498032863387198975281099324913580292093656859835405469802498711067976663034880436608530624932292141434927956072755200547272156076857980767404190382125244242122095549083109273258952635323281172866930080148454032120231105143174385774752760980688947249690702921526876434653469854273873624944024877306102152911404518814109567143357311067778496398730360050166072859344449452914583890394218665323363472991298650898121852640986841580592401040651351370110045676941208463240337844777062065778982412810606827715151940350154409097290548472640803452588869849348119616694900628246100643397629331074576417962540680461445062461490007900684793073249991598078329891437450146636357136315933922591153477685561372718300760850307923937278290280192961569913810740228893951700197718668211058512004826054286806182264173496151267260503767659717531478192691807751662444305367254182441447529242095522536796816229124450899309644640435599989088771331168143588259191484884845282444855654349992792228294437027610026947934340560590813050673605715359686968988729807311803017910318314544722702694001256888157440092857656750100585941748030317178714043949658646075515234881066495373297614420433006965290576689370240755065438934184494494779358489800947619415528299849416150706255848910361072230330913274261772079596686533592209854357625109566491543600029749440103710314727527633090598253217829473311903131158003459406370538286807667434847810815812278515851504273732289073689730413488377993799818316225335747767110051066086243300594952080321864165926522228915673492226584071438646964253954605939815726354483170408762030423897141829215833928248718300267806242398146312908451882536412922498320476339371472010311255822111737493295021368528984416874698491418936663520583193800155686916605816888183674816655410442360851868813637107436119172704109207893425875315872577120787002995110487920268930531618926548613922228784793973008571712184993126567679206565418456843769839796477476351284477962347995707435172826461442232576063531625261611066340327134112570613179206779585020430947669220921266023794056690282351139798071805207442267312104079862532494408655791376350466412187327962164763107699967628091857046941907572192710995480909106432359237073446238196958043053984895397509973622695759062664537370094544830418649889599224696725165942103235421126537307907564862715331063321469718207017542012195444584588702315314146833180707663048284897858114947788847072561836035335644650377795324534852352462360044526663138547185557491976161923042105730772200454699436971368965674376423496966267082220137769742031173030123331359087667824776029204178885716464790667602765849461994938293475485084781809879052218119965928834825940226299386270729115065684817718151729561624960164151707856039250142653038666013932019476773700424345290367932940404749019896776083550680074282062335290173543077814802091305222001163793597359646870551689777516813397190946766117986618210332437835613117098512502490182135721954988703354041530612090379780849158330784221516779224161356027030961677321149928971861651239495994379380787634497886511449391860126600317870065627715148884920239307550753537635389266247365669510505401605538677059718260526749194323358626423257969951766223747460636133142416351486919197806167509252016937048120826056998911245835381900608293116578852510232991299416083636635374483354776858631298695030988707438333736718014813812597204010255983636508562460686471248745539207978413833697744931722996593989121598060385420441934863847963048916574565299770737050709474160425940368764876107986169923550502804614198110356919467597603904886392592098107477051859685135552316350076763495431875851538340999815717985306864566508474013951110797440700181656111565487494917503814987585394831074816496579548239057980707793474372237614229938664759969652810613558856518776796098037823802254248855208363612253118167272595274945374850841821082825596248745905994162723180073975020837498220174438592490945310097684539450520480496890555086408294674837954156396235170106164177505501079313486933253188474731817855175076287506869519338840239713537716983785959240621118738089210486470541640244251005252737969063424993688079470082091816154461544364161590884534879856402106196879706580674409430515891252727931381598043400899751773624839016770681425071680389892327958131444839604982710293604488640238844652017523693517605449483213233444774714086944926471388082784900554840991314973071836628214559849260716608513047433773859493164024360322586173024557455472868923793068465818339886872281135200830704290447966721833199215686815088313208776301388680640235687211780274981055156536960892815867989171548608681692498471164798610145682456868793887182935279190249860674568834198329515104172153412653058658144634534846433074809711087702621871332844192705501079658729967839576033435324579744847259733307690783024188486366426489186594191517033814822250909115264893722042286347247173386906645127357224948492869957532209889675922581667656133019608779568400055690070713387409669528221087736740030646584259054079956009043471331675127227258811849626914938170099993936936459527860188977019721694037179241225192909634098050597121312236535210113857647270068657639282867270075977114702140935849500249160463227723732602531757031439074454355876405136552681359063252607622829730928327887301170636872900410145060156841810952813960192945407449918137113167146334236273997672822087907746153248524671773571212625974806935833178698208350477647678146897668548710963370190351322708128016572836201913454160816341391027887703303015717529025232216183335821638517243932116994347793629163601741193288066882202994882486268505971939372606870255635949838400687570955111834886542885384848753938397338138983181293129206495093641753588397284987455430979720783046030165604661900925984230566668026272644077272436342759487841586333714813086735603497416900447314876760128380606376076973173961424141914874072438649407730741672270519251377160180169020765976066868914390333187901717486258681404169707290018177995744823165308761493548357796959911427569707809246428780192557765164936850267312587432137730859210829300593595917078526988650854572285485768899217194784290698069153219807823083351370533860651352700880353684020672437714065194099190450560572099009348528227692672397443908174020166649438728611176873377038303870100036161036601374175111117157720700873773976415074482718472491797086780611355984769302511416299248688758522904917633484268510413383345766942624685881164662383453568300045361401872862806126749169250886010946132319247935236509660632102372590474346620347186433501734288264623349899210109199988469140222029076272890019219089983629128216185474474761567077800751594363213196107622422222238289842852818068854302457704536956532661581173670769307098702642228029434884038369647897055559128269079921626105338265983345474148714480999720737817941742926292800518413369427919226177841630680692388207896807027825128581430147707844442626509030403808052727816825971659734713700162649481012610932495387630076620068854237636773281656822651613213711969419118863485792879278679868014734026325282523510105736973757017506469667150166780151805309575366683871504249096822598878567427362481288516124363237503251027675524834727888602807560769395537838877742184121170593376237352635006496150832405965910118137564641365232393894527558328502693847500117073598796180424769904006075228339094742211043918427608624349548843380056654170194671054559061503149204771247387823987648520877525957776914561155883250829975369612349875250820119944148456665455225593245085329122447273594022912158897577716330860838550608052194240515791696793382039302840244528179986074554566145993559626723465142700373481597032135596415056445589541464117714553202852352426463739325589582677120093522820659465257024322527597222121983854405205933778623000573659650464521574297611690084987219608326637725932917171379391086168807354450478686414535389490124360522295518566835515623575716368177061413705969404809637709493267675612268336339734629060896338962770620925400158486563673643687639376513530175019211880603578233087965107191032681754470585371697121548317313209674017698727475998546336023880227142100929235994177550363663438847507666588352118629096651683573451585708287244734825264808611855516791865877865238227121288157079044559593039943874120325376737485638406963224587833668271773830513272256895151200578751230554658801412858572066405682020871324088858412573918327128106030543692975982453686449377204121205156056228483364616504918246691936273406840063335100726950261366354002298886822809915139405637057835156396956689310000849317806200923223704380842883868323653076213666941432993856823661145537307513263098331593963464862361253884249868035332091268338507448599781367739686054787509803217494551347776886273479331479167393343384187125590180192770377992425838652539634546613174251027842672176462564587038164156371288855365405940873112262456267211682053162321710248059820260317938569998606648838494750773854764227724388872734911207944853142445237482501227978842811408111462847059987090430023349175193202821987740928373668492455982048808067582136768260775048046755709735324523842226717367499074386847467226771461836590978807447721010811309684468769568583807957113984826020749953544000993758044882973969179775618675337134950846215794788368023300843304648131265843098629968821374660991486039223558587786517016241067422852181230264033760344214201376645148738764176203889390686298862311038391670651169658415078074221582371124127526875062663749827545216790408249898862388754913664811925129477967527715447198895230501832815710403406264639155824573042483510388765798452283732347997132288161049033285753981625880093643936550551578001907548484097929312623945942471320389662936666325934685719172210321596368452342168429290715530057810235254364996026071623105650056999543746907445218781944527579283762788587025931756745625574176549061114529691832687885899388568179542037277439730661616472555530869034658355383622238086466418322859783121243053887629015821673776629701669702759103051770774330274672928390066969656253238823585777993364689381980909806779758913651047668608364553200486777244598537366944693708180106193766517858320447515480878319619724124807013005080732236106375929055287220423474173956740630769706724196764082523242562160004248700190860422246528400558268712246544331771292576985752300288871657204949907921610036881204310425077505420555227382457776438422643468846727458445409182343342071697013958435217024700305492753627136020961724033064890718759487830431778124981371852906102923221105411017619011361320803899695399294928264195600973554856927116360592452647935039278510296519420451391047225779126480572794362126658825188574521026032446595113787816354467312827931078122813290973039462368751138775520891962360815573629504047974678099013798133477701336481220770392961137342419762257481413083857829994174572555393555806616207050733804247793513994935681883324397171961150770157522831972808853664032456067253068073474296619331276056261377396534103815712838151797651781904728738059144708008763308094819717303050156305782385073399995358837967721722573014021702881615609323484214137458664476337220332798040475568718869853386909405188677393376690466444371710498906433641602193429394467987639799759236173865728105692055642347846622087543058831607197148741575551541463231551319286118069084785570121742527320129543426333721267323142565699761701325966388105630516465387634667662382344852781700422917474811696383302162054534637044416047135044809061354779592699056452429996150791536080702229363935397005938996336172139058057149111518450498095111595229378329977146292624177283471704750183329062899073219216753063401692480604426844286605719723897501913622249386176644530205454951495918016652210713093270161314578521073215027669949123327816682202390227359613013866562056400034987919155970263249420916577157371549676174044622952689342763478490103607922337429060413111565277612783843873683009864143858403208338294137626316489218797221666092902719968227192135344163528936651415447061307046825811372843316482364663021797790860624668312395264927354423058942792803008904554186365338777431633039584936586784287209674449360728408345077969391972575491623588874568169404194043630293089820094739622568247199820716457449915195811780583836580343928537543605120541617051437459041823790439005910427749843589684237628196862089545534478448417721685336670302778454222839637990651264282779833049979627628460650797653244938604624713128678161089339480872888831248166710466076067782784459783027663393476255085121925964141831557176220879909710927616103260500622252240857959031064294388536297062293697511845456798307299688901463980418070373256905295247164530661417595628129077291664518956453794698453391299152409691049345512213879417958942207098000070350782992393615122295747676939334922783478270446623645397759339461097998558974866192459354376758500262971052221675383338860129052334520811540626725634140727804407323583809189668644351843602361227701768612926652920928340053697678954116281840604685831302135143900157210739983400164982349942335281316790737641083154546569305377352353402331310271739352461964777228492036742753023070578775979643598505213129400768058621537413613278087134491361854564264519884157289402328658186668321759050352940126122950295955686786609444438644903525904169661648469414001677649824110048114962222932019145260870308775629351135305448836967269964710483436958999174478135277705762279413504833386533891085692649412342208448321159825552214005400902125059685271407909293201351312314907726336551574586043914320816658751743321385576379204776045654969569625992068318624063395773474174877668140562773649284553440882215084824043963589140966318271820909908249227652943252744042008346422973725267334576598559897361216825063642566334121591285064601669004105463656311803512492896510233329991798571912839325395996052485717095384336483238095043858242047366043681676187669149664406880505148128918075781077173313493077155400253143475058751503543569909042448151645234126729540039323445581855856092337998745363195115557230213752271567862015919725651402334758800780927739920638953814058404582544078443444743079184193008362241116788713257652596444321121360841590879946017720051815773812789260625409929549209812316580612623377383385750793992736080168402127319193708292516362786197925886370301918088350263681811150227878825778223958046289631369329555115417269252416830348969346882920534946004002641902813479787357176052983562931616069191046292569711806359527278424426758998918773699517133642821618736316755000549647789616162425155729989528222142575859790758747546755022578920460646824995973982791729459488523481977236847333516922228543184477847219867282581112874015178457194236693955778671607585177323125438838854243495230837893756053072973010988143474283064531739249766087137608918086962626926346418222015586441548405482492765992036304130082905660755538019414389087780507137615719881110698298649258118987399185769443044039831099094844895271304374092135492969836141440216510839783877225702746481325205807834061994362006945648003057891463687098842276877563305427411716800157794688566953559237669865404444578775762143642546302014438206385065817873799075050698408397129362305308257387054893505005268905389543625989053690748569412847436570071058432173544921207302895886399829947099388543897635295342853703424758665386150663942323019844875763835563340286911768166653347126507569602423192268624901919804616780737623737102068716533511046337988698573849576248429629374601189047177833674850784195012293893270089317532719968898027062025686516624823676804609233482021332703748419720678869235742524389937894550635883842617027231734321636292511419713456736551971948765882701546910695206276198599097950840493125708751071093374696702887406881299540559988438914804063202244592389196550773532259403420748005546869883055541977743252473150879312494460402518660065218248183729224764308945183841617298028298124668010622345536829541241040398568513215257114066162931551489151825078745213401762543840260260711616215675394490479916739882232814552411175778192798921474858270601908407821211364774091048815287356142932674021417962388606212163822872094339093707766761443969322164004309990601200833784296764065720942751013560622031374224432741871301632148968574830355505899422459687169625164039017149027645073807450964635114074153708181694401037036423720203663768177073781316091516090000096518494308673453127463306252898164039085319944071876650777011404377138963871609621739658064366227597568893400723955219280476971337527080461413263302157491448192841155802613047180187538636013841280528563027674204619892905795646331098546988241343402602336160900314803708255653455779782269854772659047175103934968789021145285846074068598404364892720067161059896112335710197459665047257954279729095995497225629322592896607672622858183627205746762138325191458232334660781555806328611061248341814508438142352571220626538824335080784821454305530058823803425218543681635290064070084205852928763887214150002447639768687893644975616294383109805833283071625564059934127843597814742078262751663061918399476378382782143459303634488942206186790352175672152186897080283896252693515376311285893211877451940801184393845184895773223571694972260550882194841084069049363501411893830983378450239951690145477860185035722468791240834020291534234998139340379825980665281609641819186160705547313109100300418453977529592196944098469324596032923446749194024856392314516121290757368416406349713044897221345851831177175708852804456807838889184680754019908391657266606833544889414391166461933776052615689555511284974018485253602176806166777045249188120026299060343500340312528133775712530348183024465365277672200625000745119808251008707036916322961315050494422236764193470550049200726875976168712658099118534180443685360686957902005358998297253376281837982733194397277507417613159690953110731147294129586082730352581254777231634970018981104013941326132545986141357662772900456743160753322157958682583134462559721346510212764064188468571242557779215879176761160312135654151258178746864233789523622732180683974306065067885061599931469652740841752736060760787107125614565698584832627091565557408642799206847825560777065263920584448231297981166903641897758522134033241792933749089046302765437956048143932798865616581642896443330014653451872498376307608478100523273526175447938981015994748312478410188489713736551974413951547835798535744113605178344512421529494537508761103972261610577591437926712330511378056993787585179456531804245363519956562512394165293184482553148550983229861000517267177190791124837533266428741531739557438758589685169361297071369685599026635375440443218725324930627717286446154903518780494983516007313062470241387874991618834689017194149661851520350003493187245342661840849387326724431400573840586546657127193207957990065998757077633354305626102779360376611569739616866985677464261604167393928261454898959120662499279589304032939681506838191677369801787009597485654255413485926563806975194454053154757345502167726485595611122539331467922085984259671375498239304456412108822041550550137887025791949326640891467597782257423761925704670018047264223872562371891109260038122032798634226528950017346493206375172325778895312758662569326434461734929188988414495206500050132499178434846321538846250885093956742356095150812618946707279427324113309972074031807583140659959714534554733064311081149954793540771308900164299968362388025754089244752282554175895807299563391324021502663219130209760218246026645856474675245729820098409288311466821826777790812622923945189391492405516517467471008674234812398149700840998888041283746536493617543620599481336874750372843619553299630250851122829726318235509518886447506326112946854945969064331892811747268079874923710548253173717534052137085655413673836478480692009086763100814402123167725158856621715795781534415599137010152158853161994276659029086440922579374379860536691974849567953941176683868606806038121439509647794892279334929239060780835979876027106682150050062648862787066888902561471487011820337733638518776230519620764260401967601993348858665495064022328779971785503249379009028282801566579460664209607850190608782704465802699420937429005673298031937588804598147498579701543402670090426657467584524142441444712390707809862340843464708924881085656482281504613661485677961268760341240348728726608893696174111078411998685700579946548194090210645499445135282247145881309398189139552772834436950743631958240691028873182400958894667999779638494287404320425834343744471617103864247967523365975582430914227168913400069321474871903635622261420273555545769704885689960420650274715004626982976916168679236067328049003117823550559476551812363728461554948102449418672462320325862025130218602331769122904013315749079707382114567434620340490557530917018590779157799872902136530856129262960753919539910630271422369976227220666634415250471983241898776231569964766934636157152877717008835711637589252675469140717273285681236829453969893463045492718226236859037930836265035808553325276394129414570759510988948360855940670133853251566105366627169237247652493706611220036856708594600769390125429303435861863584451880971596906983369563345861240428176397675282387866558537583491742630371781852072387108238325965129474909643530315827252955283277204366745004257865857533223747941395095424956982654373271016759109394434454717258658564645993086696594435306324080442828128907697465900830614816283509377256098376248128734279923885130295753887598669992584567681117839765955038405968973557148655574642475216174487243899060398213238084781078497440116547334806166524144262500725472852509357578247516371390887061148668799176066295510931359412861717956942527373362760563750654669425371227896853671209715740634863492575360586636934808343467093943029419197155932816463556650728612187444429766933251043681211500659750424118486222853501213306172688194152728835187705550276214610599836221799862582673705330921200752234633627674464959665215678564202007346961701483126411395367442793788300836380725942609475631287208188035286791498303699075908490346575210068536791446305489419208549533308881411061767571994384140827595691620803511111758597722093808720104419923914185571134486501665943692662351101746574933480873948366838005361245962829253566292355063695114043794506091785865889802801456059439111242945323788490776538647983546171814062848278376629311315996918761287519886239234566042351440938489660757570148342072554226502123960017425049323982297568519518406453824456528125906854080337308109086146809490460248838750163759058793393445003138696963709673647277417475989547324776719560736505944093017230682672971323673286746447502355265500793627182907685524152388027031350335788262671197501192803754393494238325799852089670629508559747535158748417884117612500118414943200777677370570280355222846788585883913156171666058110239654546302299334479856286218156576375223951797974277185527754505476083624627075416875634965959665322500973629819284586414946340046531836531633158132195751829735351902675017668348791816544328903476679773353025786904525055218676414565683104013721397586842780204092941418657337376046849610673006946105874635480771024651094599996955613300346334569507628663243503852900249755195332958103786940432387732976455700570775641180675571711803909138817122703746409446154107688974470158228891504150504778961923316902232462459738733495287211315850032295783019216128081763562536272695379036263621315318388299633295704759041387303792239413062589685708942025782688978470391889429654147788415190129403023471258344849683558524069564842955257664588478343228494881460780389324862454972861292789338045640962590099858971897331575643789572513184283919865841466214991650529883383133339721753183079046030365114379131971213540916738838273461936212276094485781505685716884359159876303998966630100728827669032797077085590318492573990568432788998088763712345793942317486795900539709353845042754357906187555328547226814297641195207842558904458632509115896168021936761592771262814331107155342590025290966748924894212041515782649999079487200249352107327314459837589607146234378062315278062021392303619181186221173464985785856006693022748790957414448516657465910194244316520592766320964577792965016339712472427966600029449293753555649042944121037263902821828995345715179108424858784837235729162005489059014140443589758730608445935600624131102336292927983724028289412028106076754334226522033239259778280080698397614982423361944934874399676672599881230126358895694691620759679915266193112838715112357872354743795460208058587692721729064672040475759688196146431583980746181091167617750286374880519771625347976007884324950813576379466083217726008431982346924582331918052153543333068576037914995174144379058763385273341014759405131710764628503679015307821373079791698600403253499293862477923878494527615977316462194011891384642589501409871491113373562761686907305661037148750897890983266992894189216774549634347361231335727853765576656768819158496007798487009155171336675533184157445176923539260594744285202138162371070123413892639800710364948539111363227938777838151027892207659319822754213658806029522376969734737539916675888811682860707226607844543110349991316342014205391160294002756142699006659964533723689672301648516269067433430304960973947747526925029383607728486627839878620963389624423926217877428330704329148201715097749450575458212173357817889620734310851949019801181925385463070284404877239157543064886052940983099551461595702347432634242670208820332084131316557139081828664744973243265787202503565160760291607846724009774644319589546904572324442304590043869056365239692096528375873378115790436729324817101722076482432755924300654189647795053431990669694025673426942991583150040723879989837405825001560863783441893291438598715560650233853861757611902765007847776093213538714457436438445129765160496084334883195270005574524147528694460029056401775658639151526245855731506196962540279109044181659600699562854911392309212672239877063621617271276730081742142746092740536751041065140298043398504594073154285067804203049909007661625548048278814044101041553839985663732022752171524876393978701192179627872416165976508828785362384491930356174276886836991906329807079709159760994718609155799101102958143332781308846328479207214619529040213999578347065988751684186857433234854947194070750351074453102167894902197381787070364641485732571639678819992291238225969054752467442815616768810809342367345686633172498097001170341108059204473455326634241490391864134742247854367342741627651536886052144490568396193027924070934911696988975049692718660914646289428879661904991440594897000346168020825922490171103503113817090652009846213224767680848566358437909739924093622664063146242073433919776764288136541908343517224789276816087605405540032084167124190991695034940878342741882813833228825039532570177975976732360610676815572029005962398901665209890954706149276529465249034038055161351266582911543890213382673737724844545479086524083455958873619621898401126808648806862796542805811547713837211319508076744405734857210021421404429284567270640077931275821685074747039775980031172338041557032177570891256979114928506069722338476554566372771875520778795310672878003342406312745551450319420244506242425160982595802196742570381382456142748371836931067685298334869711221080820276197532979958265488909041515269909095498926036643091410987845090222906836297967160492072290573420845263966754432138234023527558728670415347803720568440355359006216244166511563583992862841681829068010950413606418313476414776751194973954103596602002704936456435504515530956909785778232588175374184866870953483684339977496930084690993476915625165247372906782039961760493335192716950073761485765758934691302097116495727866306070398066409842875270533776756522412313563058591314032228507007158990325773461480221841965735673117391226917793316983876568657596277784608067433021426370745957865126943220555654046683350787904195510160218880624801303465119584835120208038123388565944599868035024020395433802559546009355418611271010855299998403828795834007307772689605336285503584305782557175079570844880249300733508115678602582716362264092208271726308114830938016843197517303707073119413993246786747994048529188927687118500951726351383670092232448299742295961228727592060791846126408873870306365952927555561446206430082450034767323496514356978949339859778963290615080090938824546113139352132100906763460848473219803388292137212076984274515510020224534372503919419157777675449871383967469966066702647570209715396172845258887853023316085861641914980194486864150355964702637845545217263404782386879352549826439719666932507007351192869753006925808348018050103834487283852148420113217197481622131029814485418165342547686021007559626482962120696124023584537666288830663716890137824495303947092845886586183786254028165395039966497192523236344530020896598163970595925524618621857926311323074900023660422722047419306541832545086431840709153759367565864581082288415676582005474039317621114959808252949418082513654485711108689185964696648917788530506265339123790197489128018930027121615982948976450374830671216441943820888845422266520920447497218167065949640884872260240162885029389439119456758858376323309487265974813256402764870120975991884904112799009504830063684894863399715145081579740570325784647903199371073951744981380973241389073347457695035822745132401076604368123097171146879319276979519110337803791460315687271674238643172192460014541381050872584061757874601395154157635344542446064380979920302320625703233025747632112636623242314211883685591553287469195193467700182440458005410182829539804831481488876842325982745376020857590687387283586379893571338705433434930977480355345388447628535533666139191450679335704685462426212263397242572966651621591352370250616638426689538781215410223914693111271976680559588633180823566328052656279398230324349615694159107510467248761352058049769208526371511703378374912194162100075356655245879032913717077055209976318584094295763514510326035706589963710039100705179428012816229857948756712616401354646606753809330151050588494263869917238227751804842289266002308198020316386144671983092484644648510589546637721979094452025766596226508491552691492768477612576433955695917656597510895448971334500752810541031026977282240171168569855706337288386930223716248201598548331815609564108744666819843208188141807230710979146185192573664450154174138855992685092935035546738629503192509707731060228385697057055896714481000728480147330336825275022472929988981233906780731143317955292820173305173327529464675280472021168949028259066851073110599747737509106139672274158022387686236163296701557302634057356853625836006299449893061884213152140600577102596517434794386321900417785534200484994731608311217215944397891920720440750515329957515542940068863081297158004932795348036832077455436410105202648050061987377813666846615995139643106717952952157016371824444952299890315390985735182819781156602969996897781138669593489793237196988793062343477690255910248651095523895228026437129036418860536592056300038698843284156077421128535233705462520162129275448104782081947632078550295221158212944365126139174233608580532250330671084051034008835574024563469744598844195723304151776778643218603859485607126750949683855730233189223921141439150461917744315726915829444030344568444119958496587012601773356127035621280383717674673439799573292515101639373946345095513915551576084830946404505447740140568761322077507292044046393325520679519939729698874057683892862444343300893615344500239641017059780184758581751634375103885204581628908109819285479796738822937222730796375693026800678084919511846361457606850818048937780305946198103246583558404451482280778610763762654110970410915224586973219403655590598744098400690055310318609781093860324948838890602886362673906712505416298583795816229998137276129087590665534008281004463774837944359751670182065979275733999527647042747666395021133646940241670843757607056650135321898516369471159636934536294167024072705996831869199744707588424824775220460790998190651167364509031359416667095339099100921175479529842314750422884016704384039239975877209186676155906030829528775924743625645864597061188803600477183631547017819622341072662072869173533403815630388116876430656715680268434837727271904587400174931606685221812834164552253636386669752384835684112962801214978511459489294140115640094394134213846722153348104182302783319909034362555968916138657282976641772263971039302491999007653265591193591757229486038173149634713927955526938325710984957312016181998418072850237891055790219922597987814269907867669805900807552234742065772911243038412950428449710343497511613121334088176131607820076810169360012102786291248572960515934439295578761874672787175458135782121957731026170322479657469633212667712952879996932053615970735344696753629711091479318993677057803592603645038668519457255794397424159474971390307534035261978411727830079666416321723254497949448519387041572627465018289877999420721638165894536433321005585901501695151086492091865054439368505843758514873531673321283077688068128723810741032953234376970148488495605457447553654373416775256037277062952847548069638901866296174682361701016329226262830604649792331957457591433788771401018235222017069934855161064533459812208859439057272665782575892658511897888881195123449142006771188325291408988048694525044675646001769994238817556309573802906658035804843355497073698145293100472312772296508421834254632878312092684809422417938488629099808423883202322442656728877522595978577268573770751620539286961179411041671575013134600890535778178782367943469599464859515598867653509488831269786350190695702838566373485766456190568252181303577638184381328771980849099832334642533497366416849660544091029370738698949281713143027493993718214900864119244818351527189134297144725503845307829055186124636994490596401464814513009293486422751024834529010973038921171359824559913164196498215377280058733930872587989524680363684943856289785232589047487712749772670659986415064349272395058122466445967173985485714862625469749031028063011191154074316148064218064419579232703820868419761955432795545488065010014449730587118260922020672112784802402446480631191410450861702487090563622991467372721529478556753904138449246686226795139483380343559690462902116570749485751538445936811389067715619322123674567788173444400834122428742358399187584430482505591236160624155752167972196123061841952442683678458362961457748141183631334322930579738698043552370366712854864154643867646368085805478873667095643585401521492640069950878586810129357934318488612460378755933772865909404241538041816696689134903954890547767899327012623304055348261808996664443233603410511464902113795267950190565403179302914125415688537697125311042340936121636219452768004805937991683352225151875721842857407671971436072654796723533591229541879685370271876614621694932749670075576861603183800889276841653274371391850323153785185773135497892535250117692631468020377621723266841891445767033532513161724094006487077622974950780112915610416859293097350519625390047453691783783983648638442071553386522828116726692794727150221390026892049505828416432230394399219206867555818835454533874780996944856105336484173334286431419046157993493319675947353674276868780831423216847595094359412354762194870455630788767508631219374489410932011007272622669993651832942580216206687394502744451469958086189075763135791866283612667039410594194039586069058756046878787942251287583318904130540428871984732897423735220245448708174484322435167725969601891125320561701228989779488284482645844992175843570656606686798613110836337540717459371871460634445054191357176614389362753476662061919448711104119588782246489193168084381780009611796229526284517826833915567381338674077683225177005493834093080706251057508650515290666801208563903316594961130679867932197074781488190730996761956959785438509910981613380439482962227744445504985246301121935481995130232943728046438977739801387369391282078161511508507255262541010699054579074534689462935189031032470311519899193234595322219801190629240897132909580927770780601409591134653290307049662184393733377903312601264641707337313572119101027194760755893324319019749080349459107906977383293116781964027219786312377729436780658935099810533637474110388756568150843516815990514897862934806001323080705085741562629931579076601511944123442721079335393800343546476471668029248035446362238841429848475298959789266656340011882258428936429442870802217190978317685847865436721740371032064809814053236752235520280912246973788568914767177617077390766507249064183883172208500454521568266166373807085752911786204330580851764356933307675109523625683049173561317299858427461207907923787962000408342014039610380044406162366863326947449966569534358228498097057731059438886680394828666245787374796673467099834369861140084908949379611228264749814418348002137034090243830632366836003735311110593150101612341675515352284130695015458203380958191009789817501257234212267566264345257912340580906042999565749221265150442615166039568663302158499361547617506368520872009571773123944933759540997302610529470186541707030117029349112843085706154190773205788143159838360480178625317676902398962370150027174488882992501400538862067019095144410854936463199533874939897021432790729998044883671011716312019236884628970065574183215731290646762332121898807303528715689801245759951141265526814848413616489817655386916908567927347525893585540485514920743839471900208361466912313198384218156397160924980557260988255649472546424369116904031884591859733328758065050320831855090358410434412664424109465497800073709751810303727036691804044924027858645017899551260283844373324505042688375818644124011565047692003803834165118704451725134967232777343666993404761791895366594510939897899928291255831550690485875234325060663769025979574546547925258797633145532326091694445832328264502816937604027980648411797059486875836304147768229927894142943453895014185151977575494135935240006800195336711189893490458560004314799463705508878555674641423054046309478263811607172013045533448393718350727536673587899515768571434053650401969544213896496374945953497118159873657852073766376812310066242568472472069259208872539618685566982467521975529408220637700129328160642922595230130221143358096586208000232213185513264482892763378602235404363563594980583904415028102687485695735298140040497653596700575210907253953880040972374780202154719806543966530932877418368779928706248639770141988424383395442245391751352203104282715915020112784466147555527485409291160442460571954322505072682966324151285502340039936617939218782624059986710924844107934653922974441919768971299247821792103232222315176654761753240936560177277933712503540678195490534553929265398608440729521427811485027867327154548120514146968529817599142111818610122168330465308244031437416058074289002113887802978688521816011107499328801038046263826695015178750563221516154725436720627926838473819948525972266600595804957232164696822194265771986091982336060630479484239787468070874434944126592292841351746508779935668177086563937606119534584410735486364173879184888052009749000738306264745582524927153701468554617342078539894964588432787447411309198349057997575793941387820194337948808315729833768403414490462743956823451314396224550126394979643306819347460228816848658396089955868065930647755392331322743040983480215202257121070786718149047899533879871868033541629604937467704549748517902760733954538330862495108888404359178705070707318947577899489218572511492932858331110924527073266976643384681431715145204543894507566712194017595690113241012479664531146984423633199453622725895984818409618620615245356410117632337917199711624484653281978006530367279544748839503969661009897584177449160963588813422473119123259810432297766496933912906201854739436670506596424164495786980591764615968154462574348556711094250432084929181973935525907390938002596520807314231185219763737461644991732447259178660188868578185736416256150112362246961725363558816053222627092649478153505102983042884901926321574325059499820633345403541954461197187058560933480848235935780034990016283110845338076766433789999882326170441690378042127923594332632579310821647586060796291296998956963668013602890397626197525070170628839927417453785202343097615244952066768514745773937740272282383700687323501301342893745106766797718360973530574906201747189792823178004393387631393476058472330983715449753973572683180600181417723529600739124913910312052899467186900434870272415060834598864492349212795289385836826120272907224474702612946228207813029254314536662049595922992600280620137033726222696738425157579131290937187459977495866964163395596672524054485925555974871278336776730326104592555426707395137938379943598237550136509173166706271836834851879253473962825803243856092592332338155076781381762974860362790231929983993938277744502030491887772466061547842685694679661574138347994618643629267645841838567926940831062920207734179501137442637362242031160399809445193880562613988631444811068772735835037884925070665528092808465376001252924916233844898968083845822557162103737783845135193506042430847193818488042246720108871462423027153337614156719585342732499723214966625848596934258996752535272381293573701554056057032815790861853805220109155884484027522147644441445671261182296614247070708960553025507905771346804160768710049709025536060584287457410265525226291902656229083517780934919022385131669883094560574581068516044782989736054765599464677721001320660585386268475903848222438300191523872608620348312448749106930270340910937774622155074572098553411990984927038000830445710271265690279273189265046946018877023252157558772581907535707231310436287772452207849718911072539611453277015830045161377500416503415008897358106935775271511009153081056428597068745562036377878311057398657892104076574129112319689589419085855327122502789372511320926711371381831039143804291614425982408617897150813736024985650380544956425272396580437414412890841752263744560880374786958660722948271947694947635394201133316520395175063627591657976873166284257649640553762008187099259033491709948909745634585684350061872783190097687522510190730237008806773280475273001044253784216294970140182176185852271725553672873734795384745315964186802156967582704190247698863669227744507110077215638042517265343022163565871861179484614985426015388523662030731024506143787892903275255543358742805183701611157798621315930852691955666580611342052802389896553776169611948962547689888418519590521977923475086699278942263431894571589291893237233072122262418673208112255947541174722200163737900566699480164280715293371559035973290783036714504514733897463460904101713453082634852232186003412407791364738603780460862323592999678112922147610367727677272313061769353350721059907187318520632244360913258136698049403942182997202040299037859167177837292255384211732256442465858692996833651302712900401066052341884418021094025921229057695289008859593123571491172036012422288531410945246432917147222917105792292946482852236649421072260175250520203533436760953173597809949630393203596739023744190711816677457096372448024937620396490304483796569315351868197191733154120012700592352510282664320952152639997069320393297188346982854719796961555596832965971677935010720865520157381751672933594493004424186646846486210173531237926698769261602853193794002300097338547868750869949290446276081697437398016192631462297375387197186954781283963530306151421765124703127808650119641462868720514555270990154697381016109326007146246452779350888711958958266690527556238083613658870277608094110084884122460942918652156928101337773497720660143516389346082647462564696140527057668218101028474219167179566082792989097386950536051457091411862992465844793316032558254339051967448012323866038887413562173349528317713119574913866133322048643136257773174253690091659526541021923353502511055015761934539429962034391227864075992919349392059200998277305010536526255237074920375194310995055283932105968459335832299215632891412969366745199939946719419576591961612325360683091898535230189772979194869016799753539012103530154511738217871671807398618310628401390741795601637669215448593056651704302773985618611201577939070906007311038171738190469298318707803584036837548065619330490440224616617763626273059359593477114142991683176314341043482785128951423542182452639160865219810964690350876164406284639146155030909027191072367877098944408474448617213925752555816589111685207180757940720239225415305522701294153470596239674202080355364441905173045280400286422048382115273151805796925870971789999865865373090271659913564726487825454990131138863337431408863562035228170835190668299378793572379447337975026812475703859890542249922960013096819623709389749856619642846599472644759966551982725555325955627412758466121777899310157298247580779680852626777376983010727478028025631179348484723971001762295162328586081641875960741500247275742097893365561788442451513830756702385231018845015790566307619425118639967172582513789268834207694309077440491718780995771192896782600228996128554055284652924724344934419361242430277521531734374944976059619091724463209838902301941686685004588157789053680263495229862250764475709360680095598235727153357501248650557132207742564037917032766377009645674959002891429889347024699446855449939729078620904856586717967261723960639855439845156328187883596692216256531241452016959683895149203583737012559645296933020076587471380151715239564807887849654549923088635133773078544380042837459443205250772653915423035707455470646405092002284121803723622827175956964775870445798817414724603767353823189962440903383605385843137014150339821540087009213755712176089356356776542689093081383959101454522564000810341688542362875871319376154683542451104949221166881366919749972032479160291582444669027353829888748220426126876752324913091438870140365222448469354958520294739602806874385884136865019203427540650221207086481031523401083556710269383167421356847749031019912072142837631233100624557343014861333243577653434096996484327457647787277992270494840838823255981928722535823595621166254036330179620909348450268052503522418383247695559136102367920546780309219995563339198863549605292003523795425911653149752268495434994698675358104245471050981561152895655873048575707566578566875507195272975318523177412808067332243948661383535813208204716091266706550589044131541032318089429421585851295765797558242279884396658534109507774004101985796436133067262378112882424767871957354022578732275657574211673778361241541529869938531010780991227641815592301906471317833732199396041445383144851200720222266870024995999471958640712810327812001910568352161052602928393846154392123436347469736059011847698593528777812448114942473328924286818445095642503489340542158408408460384208160941555979282866947172361891585689345655314084193632708286962266135400287198559322084459262397267346519823111453812968448885553612347522121236915237005067605952459394006454626180640046809615283185434731924373630713581966216377142700389831901630978512593664046683084898847647941884809080591585108886505269256696287933669803821576057290207007703436355163022363532918128744075830145920214051705264469243479391636079268280655952592304780595188212128885352850379692831890655665179221300556197218417088350181542747279518873231838243592551632021154578141023957434500433966453574838644187975946417027413648004361715025963286787787660607149079141920488060084735909695426929673966407323819970827121557375988591414314215981625574743136470026174828721738439496221185518368538516799870412933311091541506035502069267880225509104696509121397134193973802598082930937049317466051273437186168482293867030705301144786778790083297744124569339559466813108721596313800616049800046527704716721119244933375932449209159168446993880887964550764709197376684960339904033958108989382527328594533257423525165768024349358911473374102793223435519119346033585592907594746290060102553592830317194228697603766094536373572271142056078111018623280415716322404348077440612229129217280135843321451409121346361734796307931641287601957831962015864878951197372948802771319182754170818757254871588583211873085350952113398632848389887907404008607785118243163220001683606622065231978315649809519913696613100722935457291241978538872711730834593481504363668812945449146772348267806169932892181024938419293243103051747403867771074681193319773594141339650912282300671231698205776507981200695215726366902941008737605885451779730194482203028644485440383303832640261087351965423514752256170559753825939132406857502724057412289973187456378281557568472412390387554956477063643640829286056375104714940316429150792903135391361293384011402387247010533700720238454642069877287373347502421882595365101047856252912223823352416934843925695843444674591782185653107429291570180061983830728666697708013232821135075014995206909651307051370462194038299851434419997952386396904221048663721289003589215590683169382524402391308646969439833559755249716816492483527741033498403699744006974620296552130260135532953396522323712891297236533713997377808865757205112758582303472361779886585390385094710949063605730625126654909193228092710983665157816255392023837727267090408935673553191634416916870424947838295936758367824586090474199345799217499661762866046009646271724756740148623913618981053029216908230466400196481124044635005573176036462539926766014958353469152167521245642652495507539921920107463399443895457223809566415505968386405606088996837955963609964599093042226427989233494710465287500950659659473069084719982566101585670567476780862684063590705767725937466787068482502922941955758312000284939762174238929557177962106802126267238352464465195024672466335097810826854697574756502935158945522500766609495617155801763356545935938045457926516070176439318181746159916293557774807682979617561011718152443823913508401031223487061720892307445709020529226831619960830208220457824560018016590723570345249192529410752639050877441572616546058139143438929505704676106449677831254872867091972987460292626731201812434069198600683239670889288757280669849353273610302173892004389120364440790432682189413951894591263482011983610212271042416452259049693954179465258333968110104635204789295324164106169293185240110795476651139816727956779488107208306136109813762701192996478332616447098164898040310305013650481949450453444594583982498436419793959602280862833219208505725794979275938001639153472289678295006030199410284719419964502504153012807521529581913455846581907965258197062580590454261539595020898482057174640279554181170022783322842948060843853204416513888303274517128801342696250818057318643264049935944249541230714130830885573549882627902894792737784513725029268479804825540014705898225229430837944692477984471060147036920851680669129131765758403441090115233171122311005278567026351904539043992142666327094885857752568802926005665210324944700414480541459395684410640608630645311380885485775076525193956082399295809885622945599905948707602801566831290258746437485087776357213187829787223219066294226058498271741698250771562650388491660235241873453533200401318778730300069177036479546798687490653440735617193342879864337718791497889435851786165145460276658795061819108819204961756560017223498873395755985807808435789488511483471701793113289132327934029564974965804835506770594444976669820198364997677878292060133775983378651539954051131595977829339504475681852091850497079000062008775588091096841527774878198090988463037783732490627827621087466285563923580215030629445404455163866902135100594952381128444306809726351319807974349403514173415121448203399293031374619120688114035645027386474859660987419792648446500889806913698547603145295858598011386527129982587100083113072291346478508022098335039091365908228037107731125680641305537594362271114809830781248767770896338556522664996398703882820481136047775846354336956257521273055751570819275525684641871547739490018606178912838235752587689641702857978484652563710220137761227083163459087514444174275369899565833948122203745810130641516170983596203242651557861623792337431204768401762710636000441869493171910193420711682280701579730927492158501293570587637573886630978039436476827611735003988774223075275503039646150750233658459728142585143186629579827305493545518825205760493449370014843906096574543921155377956167322572494717508128012872447731737426654719808276604569303827079993893205310969103674870573220084503772823153743713383806811599106939489787459982027722469395821040852460693236934677265999656322236564389941511998239744829521177681929690309221415546138390930382349528636620002704681506746556781746344459044384776398408103132795973002291743442234426612575828144233270632907237980310679588812104050142609231844677497813597537930273643146174662109837823572739228975526170085686078969534374539459113402062005089978075453244377341821150476490350576226434620780001271900864180793634254434108759430199245085104047119995930040534260894980741914093143911423676347802053791575553556038773459878443946144437541060920264481506880050155408830534269993698732362466924901614899498525402348520771262840546701414058947608315569361814129826776311483990774390833628957826260125636415180791886433285425300489990313499387269592114528353211346280035234958782615445598387264077052502676247641287749547201015773893517792602386417527042317371741321300221636489118697787189925703612196212897253350201756435290040951915108120160290863810990925286798951137125362758873726014735036572210961060925431783363934825733658829362699380857655376257953348156628062963966247038814202102409343591424260743377889037267122160384714532173142823196882378799674325978448541819535394998796421834680042920972836266774702223765582231316895639335385154711004841735616523109306117643426868215609413233658275084835389223441806554485742265248434129973138070053443780829026749158152951830880581775403455062433705530384982213614979750184706090470605182628838351036576935666215161653789788698450106390357574811978500188650077986888704861252235323374431313727740030221757231795625411728538851181507370582796113110040182303759446421565331978244952142584029254539069016961492751478104939461508021381051215094063192563477403563907605786645081967581242130087780846844923835778879105215632774154771551793072428522447043408862587398723057644622668379693299706024750684101993329691350052492545759922984848295792962600637670390054284731704274622169057183383540647664229214736735007298581475934124414770293307326296208688012582767252757684364917970790781658489388535528411441325015157466815334276495915217376254978022505938722890503518946809964085681158239722392316223475317435907294284966463126412198388061705747882247358666785585431113833901393060082827597292814714254281988323781227498943996068204651065717855643321984149481730669050078432252094707112759494187440645366372894283963671603700351029960220745965558089627966750045068014137281771602899830995439646294705981934392690717018160078950862000764442419848417672337200677870241520347082482400550326712021819091372315667880712140066099723072385401450098784634801011691630334721120991353781702696984523192625969158302775335776789989848252743815039669948999118481254800965436692976514978437158804566833012325097762162140399821170599808211081458999092516050335774956640132947651910976465439613582686654559875464343604624388545369584411389282585057465514714270351978805676519519040411601637090115014831011520285471339165672706825786445310994341223114656602407557990308068170343142207185541738593862390505490666888425971434526177958298051288975539553613681155568115329242528642702441506816200503370292823646682955877377224514672816254356183419559513918674457702658845950315322853909256779441094955162348719365873956573792048598121421332142591583233130861106981237920106684801803386161030532967216836011814835085781088263471747042239077582528547421835043338602851675247611202308223311129397765381096558681766405904570538674534199186907365675192663965473958461192539691078117483074398990917174147966513403685127131177991529755013960204084765150808664475831382059791343656696014019610990727101413242612895895094850820815902124577877771746528193629791660565408198251324657359930623025325978073463934547378325919641696268707026988846899777252574004983581352030589377923243911255598437373209877483013398717451117543553417854748100543636893966064832100563738197069422297525780669540748603230438601559641815180042893080749501990777728982916776810556096805789909440344029761186163443701194265526246517148289733831239174817744031389234916224732445993087804346156691342756641075343763518650447498304837012124708973214306735319312994876302669634714433762992734989860561460096506387307943635734563205071546381443400708951927151686080622647697907038966618580625367868635112893456626794190001179517716244311807004620874882082638600267655703476290927747174491516742246373713195630809055541354060335445267128285131448042558350277260788853220054254251219592698571089952750460479905328138567341576548054787902041339857028770276328215766241649784814516767703106661659315142080937747228618462983154193274220396072505878347355488978275848883457166550832459450339252224585331152825254193240093012058777207840817708881574147808960054941945263942163632905213148382713963046081440962087337577590958568421401199557608313111805328154712242672069184054921539177111148292169671938033623630385119887220159313914589011134538955590213537419104781239944899190569245812705012326486001344810267842882793549732558233873671554140375453156682323501318735972747184087136235799865980206789703322722818140449093128482844464788325447382723375095132905231142398006527763129323022519137365093770106422824594621597156611913307090762336280903539327446887452869533292401098555331055374707998639136753814687093669462575497697962358800760184657707369702074810554494831059747657924367600644583297341081338650814188530996584624975879044618636007768270830434197363740194096616178879551002988081596006917198556900500091985745853157412965879682557136700892919565991285876733859805940484865392116957043329113434394666320729784123949375429862601179801308472321180215966251307315653720750630943828567624273166354806892083782512944836041656146747097506106235402717811558247204651335535908920857797515883312049866919071904357631221600348657199297477131205276254295922963685554320362375446510416650668046982464638542114281831434235300514019506107512622967231482026581995231071558084360799272250658921380851152522036973796117726256005912667053256263082002376583643293187973953776835705888414831597945708739051240889362313995022088266131229413817883023425646998394949311436135616314614793917031646188492746342688039596570820991278457424099281996946983486227241543065191804802754203824301801752221290123603549892544380156931448418095106950614524533337738632702751289562361839509731054720862178800398471770794580267016790001490302070148299497885915280876116574973756413048078374484391600686529561577208239375487144281694371778966789054874739422405957190249309559419207677715913310736580836996804316096346276905383657230098959925813625439418764980369913737818386480769632325726236981131442226822645308003407636286148112056002189213234010209771094133827625127356540774166840016429908732232323439755827209890484051348449052786242049547290297510088668655333482929255560306766738307253844943003445912450155258629354635173859441863922867335188992427755000647456550686556914905434744434834494272131468843873684593114341371583814257610130044195943831321706933181444576331202794878290151520385321980223845497744076032092404284298333421588382108420056497160783852378762045124803540979176861235914374949017932052996650232486818062150305519769377174874770801995375585618700892386826984976664835095864133080411572683859225182989948328195062659369584621680391585101173088597280357414325115213704278972387265385267171658412686257589697044251761701878816669013499747032282393323904125541979883359346495563950887217006728776160588663002844162922776808833762301842207813386525971120833173493082682616282121590820184066197268819325856918931428627686017768545856378279949066018161673347878724907776687483652765732067958614253432814923780243063350982933815684255242838490577151703606712780108434029217369542473429232195886236583638222299434242534397211283185532605267882187379242074952344734049998708175791439012363542842969750260518128051260971454728091484237532904890207571224611423752497193109138554623084549376621057772490339542909993991156769467490428522467548679282413987132147459810785554939239448519182779560785142938909668393922194974403275924256652112756431404096870060983458973585318865134813727911853401448626372559733777811165080294177957506901468207188091030072134637880316282929356838869727445567567495273586422674650273945852932785246457895756777254289133756797626844697421899908920781798446009339273051201491595065347460987865107632941726058728027527621610135621972912960579785966929409241694209065934239893830253450470108447643447649652328593971095747365198392192682284995119450235707613549589462240408493679549208572220355229579067137990426494747491252781895730786867938447247533251164874465417672620103752745981856259489441265396813784858609861380107280232891507198482966800541963484713501872155723466967792496920459955884241635911162434899959250074123516434542932843460884247013729891263941038469307349279972547905224060615561456651429996796861401909343427328622565267576511315853788921901505432020495847204335739576570860088433689114996541363279706974333127898783182271809573556841367649588960861104430050361322339663535133324223284434315239465632221786160791898480163832485852963847079722386898410043999259915675125437850846308740135839008432966745562338047347861641148671589618247274283974883160130193329227054641686488595856401740898907075393006836962284206285391167756374947181912147829772572237144205947631816424208456407758280901901750960871882326139846170336748651251445389584448055748419213717715398875522224348373871384746513127661443758297486222592147744738603989673416936976905857230887446243729636832411932002203543676238584833585318725275087610902799434175942934312939518598134963022999210782306255410590189400162523775479509489553967485341556578412613271782122068420847350250592263567821077539692104803417654540488300697594907590370819020035518777436324198565282005914942208103516000869274516463022780155741170278344012841346398741604094474106991917524248686497598398095616831480955582377797842155887530060268372502518090373854106711478466027310269820197025067594987704493481549934886322642252567911159327013726534704294473329583734391312232284117384403574209412513657557527824766743644335727147065697243905122697709573641263269619904097773224281721546209079279088430220361261645334828859882479859463539887096666394805752897018927616706734447883472704874939296487884206922154520402928323671071383676883308811040870812381719941743310055534307103802435282126079952198351221943128388931765215057361953981805770769025757986282402015410842242548578317636679652742185632763251712698718254993874246384239200310576290569955884445901604736693242040464977710680364140773836314334199387996623267645022288205700509805090697484586369569464258770724041329489440642764530814403029921057414769398668340321532364551168428170219251647700517441956653791928061611164304768029608162008399094350493762399778830598728091848005003021605768190406715120499478684576390078217155105108759469512085232238529942529583035722385810881012167031114242343556567585516329393220261740154703355453409851416139133026376933793373112604094405582462658896429534729059691223925234913615288288151928943906674462792350468769123537782279993614601338094327998992531681045347374348468791770513730956761940327434840588627224547080337657596417837599261993001012120324951154859057986943724484041410863472361397872581225921432844934615908786759895761337831704608491408888756191933986728072005554408541993064697716550359123636392503091788324669621505474799283911991090425159755832991728658880149753848724592425903836189914524896929667596055899858139574393635023237857732774334604368393638347728989111001792287273772251743541258421288551014153378626713289214397730285754168337839167690015963123052951153990192451194976051220508198020552368489175283779508161108897839210027415723889580335746954893318665411776157357075860686446867525720022550572227866364263503474555442716263250739143702522363560286636409316845454408030702413281401454898065416006166288501554375943489363183752148120355302393174163373323983115718534683123724216624775830463438775594615806333557021351258724062949508267434361346211121055229803985768614521221069388683961400126579680258423598906822993081339957298141923305972988089451725796971698182718604187008334010519835013647572930624301003551482688613005300458417412312885025743697056322570353438379676520412995345972274748480551620286084458075268021269604082383775848090701553374798165512637435295767522917346497910477132051775056345248653728195218134086408087199295002313527124537047633498660745369496356794220571424903142109332278164326973653399323846986933529417465916125865910406582942296260740203809345155774731389930481749715877349326422781413233018312185739532019337766168130622282843052178131429714310832128999875973779920729936778045017963788462281247636404919706137508230029039682679180754033792514478465755488957786612039436569106993993465510547994192344784137522461706847408322247139439067334845456554888156237361535966388523410443527461990770545911993818720200722035441540221680928178005504754650063076641579392103315210730291613629271916534332211843123305950731679847199329430794802073306730209124015539750896087190906143232032196872159195771451615836832633190144967307224841880107570529867727738891555127927051632473740037143963683904040656839783163405875980838568499491886493704993767238936093034149393105302154031982367451299914308017728221359446980490611044172643483196716723392430906997294523998194983245341742980529506424617743312095140340172877190767759874956773220501043226495116832891582227180488995360422002478174881029074184139506514297468248446963828292189596406179361018730642786373138691844102952515233727589488429563883746505007457005097098134911434722180529427154879360704686232739690660681176102104257670778006197169688716431217911767849719504341463780445105936827424857538696941227023156559546105133834829503853533901246631178601463039245001512302973432107156312020683271122395977675968279856898439397432993038825154539316416472556544609193037002610615019365133714177499414289782254870280128007118621827899777124279772739911874077768854880851471214483247850680409176351916558160764759496914022543055136955640316268527457291831081261031614379679698630443835346161052687780546198778580648336821506280757500230843973557923401865681478702964471734650525213441603432314277758129771917280929031161900267764535235888103955174140393985970642675062714246658040111552141314166525620511622112688323577308452140699953682196635233455237678777236651373673090641548131774941993637414375255976763330180406598571985184995780194949713338490888399968848340050726939166735588097071157422927795486438361727820552803630734367819823951671270125898095764423257450902430947878246684256921995823224742183211973905877719918590768023388018014794631264697205062764460695101781739767039295308295248054666184487444431332683687192211055762041848764194670609506632654950942579871693478089647337029561925094130577753942994422720243916533680014172436236685936467339085876053280899778878902874215125115437859568299635600526025645019742334681758043049507755340353980775992115806781271731363809430192820542369037869760780268996776212174636618533076806308177113619933224466859001134358418538598421229089424402235828043417526025244062392901749341147205095083671709829278532938974570623660773222602610750493291807866087749848058269167290133454989154845686121315206872301371936967967583816732469646018421302800591865909405200088091802749439929816713108837003290082531052808353945778817011627537536689181928482898834454543715318170032331277602366142086186401781497598090959880054747092577825143900229255518294588179695299926798005448935439460434202049924157495107974259944889371553261604343846186412974821957772585248715668708375724909727722153516547659513130039728657995920530700501132441528236405908633234462732930497907862796640214395284945552470697560189563310287601009204289414852830994946693220901899475503899830629299970687382880032600970166604003049844446357896665983588242293049932019075638459231474244618681455543218801559510142777553718615331936798958640374970020228652762835033625062566381658961781239273025919238633451025568789879191859185153299282910979959321866763148188167870216236058007168079428747233155274936466629887097219979099454204369611018463883381920206762258833643502399324250518235343125657669922926882675491432760000221633761135319980588092311773353192034674877312085398557325872877872309154862170325564795828632430472541197674118108041743883908215788631027402440297643914921567967678532422441418215531318205502732821701530043276252815547691944145926225576992789517757569138615012281529372629272747882487609726121757969644822320123749470925389788780016026968781530039511694316463642221505324311533840159874326802627755040466947470597222249410341881915321490930518056817606374004236037566306386243086968324521635768858214438184161564543430486275677842954509717962319847487007716389970494933820523748834140041938552248870455040929980348323441193924260564629376430882633789198070360378211210685313159509853744178171477799438847834980240650266175008465125156257982510921223845288461238218464054916954339166973167012537643384525647637794106245028894738436232428441397441321950571585356734905474999612566993562015204281890495819985642883992712257387764613526569649024790908850176395424554940000154584544217729406979788898720859345196080767083933711896410647502867951263372245586054797295180203360192544208265128032360849923445689656627737747182178809422230074144925484193732333627147928979841117346018282706977036400706563858314500068689403979275764062211166285986737755647025126339738580823627571216665252837884254989013737071850036894798186305348511307062850458109241439879609534484167593940712249060881518619445089537715566000714541442970699613639206793108206186857726208629664062036197958669673181121338310836848215156966418247478618140937627430323400546201212437980552559694785343654701141294904055688827015415535703175292999647008937554803638614937000719543659719479147279698185552277065946553598793980250124730638417536413572775994408366261163132241316852698892643879845815367134646846240935101498635582592446926250577757973108960750053220678992363415427284417099349548129134913321244987302456370772162286735881464503766788774835339939196104481493621087079230966459856763959440426742577908270103757580806828565168334275686587279117778112113613600395718238338665332762846334271656976537521993122017757076965365638010771261969154654446827916077526396820005532066353594732269894441358074264761040701071475009403636769729216356367760888442811597782713257254662678991873743225404501556151402196249363431681070320427139788101490717895910591625712261470202854434987559521526670345440464475690570917938679190068607798062122225999612235733687792330378605570001930728329809152650850337979065165290363823323927637923869992875551728532748695002367397980337914438004770947118438028117037772569402450121589181373982731306868863712642994172056043709598984780218989867160387634769812166598308648373721251215045670052892741752000972894803581086914303372719310871742730938218229096395398652389576510390721754389605881904663060034677790813171205527505337156044752425376141385963645124995901764268116268685910605141383232559740862633389423176337735906612930534015719973634067360867750557114591350957104733569737123018675839800553997294719350424249358150650386622959662337699343521347829358613838014841736299878898987321348068294357376723329978981113038658356042096960744796454797491734412106705998024664017137778514989385049260898435189760136931781357329161118022592573185334888797097836127345156426323896590852473205193087113594708137935432530670382608631066761576775355057721600209892444830258370288282302269973865004359090159947373614011502705199936695840451526534026678899718998311722995658484173334112302911738529955790989395671574010932054844982408861404636998333065783198996234845692052100738416719481686529896170242372428142374207408441192788887077625267346977038153619011856884542486942080307242733558226102958990029376432169797440726352957900757842666372738489765935325910281901070578051330749324587912271333247053046332622317643468113353389465591429490816408738577202919250198812428071641005389596822966715881725778242195672698574143275774168289443391342506701629785360927332038530990244958681199879581203600760239585695518820416939167422454241190301136569695703903523410858152469678421871999831573620679608507620184730395187504960790037896689670784673691000627509413601606810996641343476927634625645149813854621860563585148047019785527082060873176966163626779660396014666599822769916203004890309193010096536821502903217833707418086769061820040289319706266963373645932738047990717431048591664089358726250117914195308853422619621421646424141621092362450210858028170979130988784024891732754937800916923645469958856362113703844498563721341358419474514226500685495606246429074655916702854073811252243756803544352144855054728384181170668483948556605182278261226548017938679122240573456764981685753961411301251838377485890510320175490653916557698090567111392137990089491083409213636656686680938182902854225383419415567124558760430643928158486592487883820417852106683515585493878628599480185690241665381094433070441400171689921831328528182314227130558051002971324394901268301859942885637078604225795713641741042927433208592681829167915341040178808150765534907306839790532031744908288134730734111175339473255776369940641747425731599965755850461950330902990001696248485523303634274658053162876769579279110127795040918946985514909772243602655398028362637541583908953889813141639627022566282545831990478106178134078928668872817192217079396792868236196105919057591087561453911406014014778746552613220693585083301187791983955808801754585337179387598637154737910500647999788793199882324288390671829640629643817252982070533987339039699472408508657886762210823379390063498847914263918214223055146777570464614419675028680973416284456713259646487243979946966263136703894719494111444928090124532379989801927315845990676486853722594886508619225079996197809624298037880080285915716216654646832069150767519993496617926009671315767371403397140675466231755062587557500659853251620190574833604706036640881915601436504821960605050008364526387761816388534081997264130904186189783976974762578125154232563101555368911522138254572631642909839549344092590631558121985193260907408847135185201348514733304340827334118270002494838802180014619082566666791925890579080487457509933650205500500485405327947139880066541366587861005805897636311042427779211326768426892044360186515401768001727391507799427985340016446780727263418761181886802113901345311171433455072285976081279763680460401145194761877545246715735720296469401147739371017019609008903252283812488382194533013736028405799973148363987832959295350339865150023646980212821569338775449642803899460196999037544535176698546797210402729504482329120728679818374041184959729065442077516125406276596230480468125152262515516275514088251401328626840872823250695112165172305965394585220287690191201317845024000737604486338374750967023575932127226556319314842911524002755055820325120782161260225190570453742626411471166033836824052893596756744678438936991399458993510636851805245551298758609752842528155110045851170649686616699011708386486509017759164921430974654107491148338667324346913497296747132337512959941969229128304780302870391268300445403779895096159369326294893148910141626182236367350045525765212701517821277627056672243540156708923156500961363014372312024025060400281755514119544508320756673565621789313355276599840953894634448528349119188370499777009511070044714220267439694840449748200742120512433487541399211117273565269318830031275951886108183492308068774002132939516629868323968392804352512305798227444226887051373155952137156212451823506498293867426289588935650508715759828445721651031562968770304533706158660011874358504225231405709537533550598986378402232751307349740217378820451772974200311625188607746338821453144543855484023463053332280114762702972131527990480505075272257944644482457069404225553724273024816249952761274115532732800315639759057919612765325046468080458678694679458288397448083724718422634777426813288980734801045560970860409259660876289379764172064114113480259274997194832104536418984852959567457988436410711857329329356973224158578554533217014132422440728193266090299551969737733774919494507430415592330733547795325843579646308936533667754957593218524267308418472944994039384916883320577700013195865891873659899981587242825173714245020282373181590691432501327487321487085734759633422962751786595724018374394707512949691450861195809128411752225284426414183060091065013006721846846068817983345726967009336187247578900617041525223901084520655423432551543114718913279798782743262881374929627815134392361676935360221926734275994768841728095699413587268315123648337553884867230769061271595857449754608553484471175701586046034551142549818956648012548189490879305985847661372639415303650913552851713551468989602242089247705765827556901156395942898915234126252400819030557597028323781457828020425994062006882069455577436252009097341388466848118823316043223383236540036857092133637058627351412252042409073073143674972671167127951746214479409031034020187300759321647652815082373034125725930808638092754653288977317157156806215524606400437251814324187269564254972179279137679147499430825256876889056719750615586968014902261291787347999971166427399929906744763362247877306613526280816377927790350110478266648096249088252949430714440428247079772267575019131264556001694917821259727989194461777589815993763386041048784548893974633876287131726822875913618290008836958616015143201357597001892705342644697263711350781470177921243219221224767367107447356757143007620123787869804205238649252125449925179627012824257463465689907743531495192988514747354722348502740367392039007443736037854430079219205839361305593837242815049798523800028963628889636251817556789184795986926117230844356225327335610183686493715294321975042217636439633982391905392113892814560966014259399979877734759672095634489700539242927566580347909074138829552922553819632860377649421454197179447908279627740392257950549552192112414430413593335884223512625913466072269514474367243983979272500547040662244474335777744117257900574900836650869720420940432637681563202176102033581942545310426121272685499523727918587437804111114547102716095335425366371765672944396571115682396628308762664489117273307458389045997571970288792582402500593557444101389971002396732866934344143777948849094431181007215144997078215332426001183743420256148900815790167236061953582325985452872438220367935247055119166380825321666054994815918255023790445498199211652674370535483529909615744038345329642084881689722310167933547588534985688710896822362424640243333693540142899996644823826893581712743289768314956361956992352879497663391600921288596525531557453533769972856862704252871623086987096733242676212565486660298381537096870942967669033770918112412846217580832580073295853719088323400132626044955251555757924628359696080971392236308268854256060098693745079444696009797852322511161480026541578055878897575769879381116307552857804336443969897262834321745590977919608111435648251412499458058387986055826533256246897313364739107485267430249447160151262010182151472289261224366635817920353528993229865668287955712576536632090658603527779126950039776850554339377092541749737731811820837599091096337921563507873537329791984994267953864734049838128031312145036175516378215709875806202358074969325787554133716770966829544004175722821213485570649199916448807782373144555508036579626179601750487305661823219829371176960927185486276365813669807046909867836040681523591584883494134222447685059124486825756588846013022996123115151452650797503397827811380328972668826587717487466215063210349304808455516454036925144028766155276741086978251335535740853493819196240550600444297457606026658269598916805687198878627650820470960167328548098449946290996791517652367917959172348967494437819283853678255759264847309049898579743312847557310112172655668183996177671447743304768932058559979946275932768482790533670502919994915458535580308301482817735773517918285277051192211570444855893878608328331549147814389241337864297684901296087746233266477834424474990138543823387312315730271168148613825530185601268752710144112510031883650469234944875015947258545949252832037406771002908110334017936715686714903840483546456457970469208608131818837743279151848677962704867601543414790152262614800656989670867479247259305846087225885478468879085383256395170498564582771426114474373932922596189397341057895604810079827851258550298655720739952475724754204075106171268484890471919589133417317576920168324524979681544745508187539911232270539031652140624322721875947471567006946377431165875447055736923811853157325284669950086233355566432701689699580678183087551620590883632107687583602310652929942689897178410877485491125715129008667574452439226619626318974518695583455367559096586023145268287884663838838078684089341508021685792698225921735310736336896864204689613705999915188705834243211106284731273909532151094766550481254878232508337379596617685116674231335575753373496990714713833666218531307076354015168792358487723232582350458870012496622140980780736359700206472969032926067057971632417354347563934979925485781706030936262217334001235349791745479573581379032936161929353819668558947834623234872083498829080009567500167896418389670643972783085489547167163170097205051360787367064535348501875405109243362787676186551466654035637605497990123704785227946810835357822635618308893784814404997447605625371287774826531448723193189534523398905440219995505835365281015050929079117977144058555109004356016410605168812797314065066967354401485568976773210531695992290983454130052141291838848139583817311865984839839824278749468974370218746810889328693535058862821398692503045237333917237580703810393916220044379611372874599006300651714615713867821204355020646253989547746112917641535834908150453984905388218535685466942464283189855382388845251491519284157636559222356688759991206923056236773326503423085485550534449834969370405953052327358892289621902118634028733889179126263145982299362824970236253313728166874117790325212052259592592172019345133753582231073699478984600122127258709445319125623041084803166678237525433058540910884710846438070108988440433358683588819123465542500186794067948109547750038884614085864626455646180558211841994874304160115122616839368980058839220656385949069689930522838763328884654921675423777685255402188770576011011042925202966856092289877189436726308251084202886068136138593957270092201215736153948741083382839876818979648238534896841812732300384003268585658816772888661910136666584072094204023913026938679303568841145671167991478497276382338621574536996198171570724888875405893152506934722435197389051945958531088719705162171744567923164007654341835542749358304764830224494410433967361826219830073136476534157329359606364005308709624972354069220888239816012286868872346184243538844620260143846562449315775993273763587412186548475503607099923305109409043015036870076508486182947760282495087631281957266874175578596113567203137337013817690884509191792575773011631121873919622323880447872406614683813906255474305139884779484590015265200047517652659860177599399003343242143725151617126275251727034095043705252342382688770218384353650982245314242194734346959057606916754802956263667265937005741035449263117206220767673523192734826238663236564285912503025239177793218550124144029513870625545398172366835548620452744130454220408631617166625738543450584820946077184958148473933527472868392440020759371061618565010794947519679049605608645815517717049926130221247556270074947785923015344894667685100821698069419783427412010081834333984053547130938220477283221854821652395974845377807301477149733104216980594674164190032047060031268086271106351982474445885038172737594672011659640333746981099143577762999789533089045866023903000859322222192632445738367637078984116908622901369488536719593554172463504267547474797648214482644273573677954839805465203342583192155546918812056278028833163823066518213238804476051267613275569116363543060603730631626897934355333586310738415477307405798795260138764267689833975663496557311964927079552900105670520234064570966467300504690657267914818515066107403392449439143134623611045774536003284664519658756713367232946548731831574006445293468613732160387633636160946078888468682351890412448677984217567668368020050041938801077868974133910298960755481896039936308644612759845406427712517010363924186213155628545384632993331883228387715627277762759792450794285150100259387718745825398953724489609200415073574387936310874432567802506443954642357269305087033045000920715222859372387701426599638243351728163757061765484153991048782511810172002541214957078163850077143226533711229552859484859615835274947098586651842392459536432587458918956836005535910226567839554504083442055035382712560523995667589932702082439536424654567413125846026105131298878383945725165831515379945842965210387947650302069402147272181585515876893001019623597749975406090997396547603792589364516200805762429046115436087145342158359828184175250311105906044519981737789472973786472972649319905804433930998144087436850391869983330999068248520982657734001267560276007252218681119812767228993744462061781027856130237808580951452974211362247476533422889242886093958112880170842445331821314838640304203214632439282397779067661548033958749109407522622305130818463782963497213162841800740351970929603551877700249815082093071047667931243536487802628568667214812264159310001215414963287189367790456818987269994953103745962321289343517988595480404649275199032638978189263685162261091506755907599434813861763449886719505965471842996388943767209095733862568605634779701971475877191310580330130423125236815324575892021082390136306152287148628552889515662924354478512223481180337999779913216341645462673168459180588291644861859860969263307625251697663925147688808038966584254847317695941035956466935407232528001288100448017549216808338629301491851598700234373495673369040501838026819006778538433485093546740382059341349008994291174235450210883794994028971737406158872769353370617390013129266984728774863172042741958764998019513679439238834136564067410714706072743905939639665653916939255591487975145277362695460095428888786734882909596629340102203676520851784154981791265200220707450184858459024673162930900018851765385451242576028442752084981993121508970866278464907347073990988797742525978189637777177780309534231647795434181684190394940044370544823477284685273156390383984815271334590923618870718609350257466538553003318656304011147475172813008876101946493745509232265441164029833902571086789184648648952956644444360355824840124728897895468173814527110217912862133506138922371283515203681024871371546524199139331431636975495575636457470239487942894363537513649579675738429075920525159202879325145348351955320448414292596073373416463082262248009436997618837384213095247465158276808144359988922760340455191697088707459327244168567807971027268619902689501018696632876884992926406313654776452966093207933999605432998013896959378320687486635071446375166750153110238173418115627578905915467120485460390337339096401651978650529036449968369698584449083956140212001968929828530772068011180771545680137339344305143548068374369535148878721730799283741486191401043768194921260803532291823719847939284498076415399532931946226227997663765398730526763376512875947860521540918605817598855181797012510945697863172809977090448355233857832988363963965006020237969121834954498717417277720070970191798009275337712326112863593312768652520994261761787113571915804547180129129314304237557267998593383218655925834220755369888297557873607828561390404705165431305558711442349041109391308176015703541803506361319350415188858421160441699551383979207895173749982239877081638914430606125385691126614764311662215902035646176353321824669523329605643716369625558479597346580287309026153754808607855537553701759217225262007476790178450951299345437177518565285015492267005101372737454456964303950606022279136378133498887818149416007308987342898745842620637932498009747466848849637327765775462486318961852896429365250830425371937921575780420855906419663042442006920136511431281943477461134890897965308910309555234788409575148996307366839137853655632754091841817693775309685059531491087113268913258591011152961879750015281751212688698630841416819946618991754054828523829821740662167146269258148499577617637533817279099798277602852400425022785270211044111275814550134452464859499742377108822416784796661998683578367014879549689886011375572203509023004964346000527357084679824872594337231067176350599543312766622534319467851951568286595920383171204373433508645707583052852786915296557572441660580570894842107838193035610073186835164306256851280083962064875919496753721960529523415195529043116942236390377117854177935242042215532064242848719097861858243537718723406519755482284756024383961634264014558453559699231824332564764576506378843541952755110370985252215157840493979397495918592260273648835177489335706149211191776357282670011897182213010407490917924125791223734978349705912389967395428770648279050961877270043475438381758618044500963514564325430076903425789832885286946485496167517708386746596372965922102118731657117787441394171993729716286887138168873062290061202492556666324638286605078256416500137190713670907180884669181487997054605138492659562557162975957449737248394212324555966180645493562920912723981238071442172922290682625906054061116550907763046803465714786146495484293590699245957967274706390173335164521653502299620594373499784170897389151654556185916192231616423693407682288507303353514741587169818314528523343115242905195162658294856586596677484018756735134724804406907014424828930668607906212714066288444056487229098267104218213884038132940624142677823853546779766836458178998714444660559896832777390359436431460987971158393392910828266242019241598254582882683136265354874258139226736320517455610374022262914602875767323326597699357951336089047952084504240361385787898985143093179537240936475284931141471411871277858827057540207657737548613790559549907464770636924947852018561235136982729746195058169023376079747771229405382279447031449204580501107420919337895031517963540620004024460233730092102564499505918320733394239418549302361979019465878739690026950998605071734190787252726533626195336070386339252725966601966311074645602965566288262724832037041466813931217486582576740022461233730211785994668772110600694586345289703114725009085983953262204030560609798846246547543640743210221091114636485182439570922615863091579844936800721863268040394283356137887251650996520381984112941853062520646206297369053774212042174762738038145939960417505388634605742567299944176423797326266806837021953059039008492320682796295538716828944074388093503441887630041419872215880412224021152615292796460279042748721255504721208414535718736478013139150805151805142777855177246840013522092530349434516594558351951117205952666793018786594362662318433766686315352053268634460768384967324897370294227168895137251736517372496779468227803372873506050250801948709640332775739888612080728493430327338112834299440956268093708083789110632880665578729224312402667919446788773236954920278390544274176978427301071855019910111829188241652876852597711449685727606694604459907938180877516477875046450176348204932648742599473295243408157280309677322560549560065519862300358408337240839693429641638354142705711314130433893275094027841453059734284189496553010349191984724624432859537087345817800770742140841954206276558910490817979208506248359146226689014828214036810248661822094766511774515618805723139702709018856231611818068917702993584369309790138263864991851656035399619900401672712829437506504752346231442202518609397684247062864850110651294888797272335244822412085747015159719383141558853692392377587666464254869218934879104716859443487557275066320171126907323665553132634887955814008709749061213046335286570028974528245136989963224338630504697936184398671448642539115595406683149045495549200642435256692385971797231718175520296562660682702612351246899558509070540430061043182560088927663907424335665783055508066946297839019164356297282716467555612392956634916821239152640334363754276069217730128043207076277949594440391480033935010127332502548673815973470460619234452961878088096118858581906533301391028301489480492099316440997441035168226269869574643995623182100409722146778922849739073660931710446970786235699914241009843207322717328362976609334412325220993402658318467791966521393664166772909933318049874403275488557593115595350136847343232021627003200699659897923744388685858705684527154665694191105459199089474040607092457371076082682758796669648381052540029468715140735446188452855915076699842870624189656829162601124320340973152315702870949090092755536144376790821242308543471179299542978811809153196456108022865907256991633402520464938200758493396148311425912405290701488990435801690446171574703626726954086013381859613603498385695035849739624367190150107906085831267630411362201610574478391207834105769986257326160680901764937691796053148546336582161869387009366505319916375194952511080865550588277791710185800964831049634238626978264028626027539120419741398330017274425444548110214687538707942233868643808640955492216867771590048773977733109196455681969003107055632663236179416414681168828371799281456282027565487948452966012635675870936120050395083364654804084778307321121668158642395596973794544405798624444361050892193530281679726089095947601307884738164287536300937969058866152905986954237398811503889676115939030922459972904958550740152017833759664658024446664749056503587587551579225153013367179763765863599312842420593102249796934866110602495255214263749807449145081040546714297856868722944833257491927716570333004242957068690322337262578258653768276288992657995833356413857924040795782070059678004546492650670850543764720349923117048460425748460436557374808374135568019473034014161252555557914166787921089654893236975147138914373996124346501997329294669338278321195402347858113883409833627541192878941190946252462180755228462847784518379872933660172585879355588163953121816245718328652413725619433285021323336819861746525320945402871323210547466163363766174307843356609928801897957319364133611884550118232807474487088594173950878111620706290455661097443449619626437678304764680304727364326885352046415341312827368766457977482717200788062703256476712470350257977105736612028780445741845100727947083206052972690156270816287553233763697519460235593157301306143499144687320045130546446497385838725761042628180844402657041949877951883463990771532930538283785971996439891159720463386887562459883347087303237667435343144556237260723409982646427335442084071325570797297621369128045395943739086797683968631499835686044226014237235231997875693847582633955368304153525380441470904997590751520090189517161688085866081094802880914427716193298173704258013709893538988427189593578345911883995908344524636962762055995209281871166972231414341917178547192867811203900618693688336550806908806739532851722393661500831118568955110862411929480132959682227238706788844563096576817776506508852831989395597912025294873056920618763947537053486997904658779058301746291438763346096087547438676994620685325355591627214643593272864731774863899457015136476993141930007629605679280293367882590801061513058175535886746764201498513456118175169061015043428838927927748154164331802254065211399654014462511393985624997954809502231478796310198312291953120235301833903578460279985837390944433046590571947681233624743695852269597085754820489243144100386253205785947818899551797096806953151909747991101051075431183180291038101458690396730084154026618186270498259054135517928270287668589710647156943782729273174781002457392619809208476009660482030196101140876978012216537812974218958164033022213119785332383627732647556570924806844662142434344202483166991177093883452819360617574199613417987572373688065026287898494811023400023322834012974038314295620605609898819241162794932898901670336529037000990969171425512646803930642370045942194802221559530705701402826958966838303122711281134961488007406680747145058578091561869222839207013301875525448646165914675250271576084577346688488409816360888599585149768076545090303723513391498898611251079448341141294155421189054192914145920423704135974304750809304071008246597178486399624286726434114303818181581377993027560123495483866954372613357610822626834535616345389076989645819424460870339473633740009799508824745114313600583107210669591875142352981938659486098854313684327488253075515449685264972755751341068647899304778311605556362997599676503168855928195562935653907736614165959688339439173891084104659403161821305855563303944170894202536167136168645203156190364733312536642356896345270254750893564775277074436597120025104615308718224368575324217688576278143345393705478689754530447323054395093393464459432038173208307217911135045923619713263832739522624667972914946190098880912476600092163395689765536616026932538085336209570351787638647004484621032061241874628500062386572812341211001154349820718934321612859548255659794288439111054759902605420463050586921706986059249445077348140230213123530186127455021427685247806615141402859138272019694520114122743045378611709303312763766515979503729784320299708196695209385117052375782219513444815014452646374585882392677620247728220604304192302868124178150915633225548456570472438329387233003358025843631413521874839983788537524210251334151922260750386805080784579820057902952131412206790104756069975389121234084228435214268743452106896649477415371572254675674265459053707444400163767452022761509330074499756387107478502332046786750794478189326830856575850121777243797161572959897171137595826552617810369775265890509947080901098797523024087628734318050966966901757857540142596249352085916632619111682102485073615806616000185877594681835660877380401933997757755744552067554000191898411143732538228326655823560398883966142545616074136396547855108357127793474442333076197042216629203021470169578257602156360294682641433923033310257475483611904284724515383910647780166104920867593261954016859489713278419099335781204576986792661920257936136806942538554420854461502497044371135973722915183564055394017650715031587928576835385233674571614157961829803838936243034193198719133887642120271126751755944413674698174121939460804839204791753529794874873210903025519372820257195731059261993020624065986114252141519043422511527356600186736568507938677331292954599890856677217982717233633606154618474205583860423507498150064801259579809108003694684809302309648248257958752949608912582833389157809225867742413065832464666535946835188097636021662299983951945577833833724895694777826582661743284346599140076382486678465706545897390279939703656126101714921143580483360659729250081504269082530203219048628784780653874189426142442181888873018758188931311600144602762656700063806418275562392180307280871387642744437512665788768821910443250141311392189002485631742545312068435601803295236382322839993183531231220185051392355711274063445998579158245616856767153159641695044185024138241527657053261761941099428705952880041082114537560532912684240428520417697376497194003497644014436442391015019368991142727652519343930944508340623522858204332432850305351637807322394339461981213633706358940835218783528598144506824066195872704056672179817101664503107608511046441915226589444164297642729285918483604915575881015783101234158375013799950300526051427087173395957708096690444910586447048275082618857310766997926181507855324130457442275074167481198536332639360656407762695712523347754755965945067158468888993682588343063372540896034488501415296836939300891536364343999523003936886703984785087398675949135754155229197915959328371324534227873880537342346333428413666372703360854525461258661984604344888317310058865585362068534826318820421458113181141871858768778153328856186971662991658419278539590546145054636969408333988948402524233423158754012602579949444642750366274239333789190562725840076074641085400000113331111501127124452931342271017466404735792494350175548120550417982441516939028587400185017840915169603397686345899385272176570786256112131050279009959457759992350734460817450027913139699919116343483051911456643659207119343250339934593210679711182830706036699014146787553802294130446841931354123662354639507509407086887079564836122433060805320975703536325173261577909468853619991640501564827512596639728492115580034823125882140093449998667891094166894710545331923945208843304832598745016168723920199384266685506169904193683945047173811094265544277045433170919628174748964103641892830117394974846773681250165802214619891296746099189213673218207109913896092572261527730663405023964527230509980577018871998298446491114733985943459077995516803646669927822084794563207100054816540171774799398189724967916594111803051895954233542567384967442398501787960823685009085569966944357215297553592059904089678061873157797927909272703130261118768157302671819477051649413635478775873458335806403412542768037253965182714706599668372912273471201482532708680170456716342525279799293285066195399210295044290219050863004762370586676663956454623203387835575464742942693117882298012504943062674811793172345925066540666570539328956687706894504171900316816355792710936715732075560823408621942852539980740153482117253082698966200638196083177935435504443953429819633719731222608682560152289726943940735627891234168149886425028060543610074193348663367466859806580030317364426644332588009980083608538976174628002134719059736972282662916178976191445305940334586251868838139237425767659280636367855255901246219307006017546895782229981408302003453987156109063505600848100542631431652312874920945850147824299997712243523205686294599334041045940114825936232231534999518448499127443439335649741160282191082031893860827810313395574666684092348787104631832872360640591296291373174496513530560577558721295779463670706780555884291740234836109708961238571438441746258578955518170738007170780506843445244549846511215040946062744809935200065321137988650073975479813191986797109962781371724640850266010681788218287799093223359623168097532803229013817949824654370338716345363118164383797217234348733193175972691595584622856196657524599290644626917404842843848319788976293332159965555940841322500715303947308944639442852283363650696904525065870314271664348745956302033167141294098487236928207312449740629562254221276223005862264941672459794799730211853958868972188839406962807176292614804593965844470005334963363770167619018393981214874447782358255879963585901711586187157744737780421931508286215395029189134191590047054082203256537892075104182745464499818893471146050507643814160004575990849890756756051183192503994246742246504849215174356671259814582449200710454953854686926602732813576229363298655538316017128324923632381451229360189909754224006044716772582171593720116100484104838349709602474282222725929282126747802322178596243096491617977946185080709154680614609133888969744189838585044184513339962058349884793622446357399274016145495582411489817674121409782060781861132141344391055936020927507504982096150965014040178799404308671868651902809820026926874274959251747801052563349075426674614507642512000798519023157854763971361067994367522262682163261591769908847982066199249346988262669792700551024444375701650052294427365573129104754288897916706575820170467903658990754355456722936714985181617305557852471776130964895740399170589119048948140287524540166982790383666781478998704000789719117041404337396461887172219871228367646907315720875673693971047847385111817048325793776696036875941311976780765915632506816770287414921798132205313717056025948689973740680739823891787077716283109818124616728529082227608343838990656357706066468183756542255335751395866786152591064089834044692077807940530716208385646222642566042696761835089905887803698342102339940948184054788670059435307762885230711477613680137883856498727758694875732752698406297169141051517663745239178460767368768641656954868132243933239163876075795492424603837298866764150932594668557836675183754661717112532285225557173384246533523539265017955954870482737086989831262470525371190519018781467086589228312536845647358701892351648480469762292212048197373391084437325853756872528102756699399690850133882786906072345895560124059985917251079550161645433154397786259755392283130558327683658387165004487261401528685769883405870736794541981953618534084295510268508293633126989063773485241163656777998826920632759110212825101510118058828844508971708005851888699804664979787947326444965960894565899583056772353986031460235773583587782901196847687223409196911515712864761273369491478459607735151646165224942049583099967367365378023034400671200596908780194529143998651598318919830709904993378271096893973051789708656190870819165500723179529689293625606725609459401588887800504558550443181406081839817721437854637358371517619578302796827608980779155702186808621385872189934074780036627318001193990562747361387386437758401815598897637281915830938293645242205222914157397508501690098024454852149100680300879492793078083703864782396833241931800447984691644011205490380757882994751327290279183910235166234141716573391469372647700212407187917248505052228959855182280588196220003980043763520245734234187208417850672649541810616858502902186245089321791749869318380348432078055609885222316103088823700388765693491980266202701822591705134232472594271945942353855473776142326549175430722707723722051132720723300956384282114162900365944040405776150125461298871046006833849988637213261667519563569998992138963996600798447244463826559664615138167252784879892058500487243171511582276315380141318843809695007656496424497361468510394542187874614388051785578300729467574233952197441598032884890563177582515444789613309192328361221163918325123457760334785038418874996518536979944210170982474205537875988279169612952005385896029446787385938285233701391111157830959946517913180925049542740620788752961241955463725153212329807022891521132757913346755964339912274314630344659588893781559317858827198435797455062249480210255890582229807821215523334296013794407364561911621060419541401268377154534095574255748196731427048905571325173100544840535286205912612351666211144389370322021470990909181507168472798721017812723051769944320887711076080679373947599115001638254737526839657191481511912975777496633240888224694718610278854449863463934085300826236480280854572164606354845573426848085969699798009803877230540491921361224359514298180845910887251083970202074428442632981699662798886417120631711536705113537294418033843562304566195516546571739990616844292151175366668489027128927442418794690461993511562533385336538252310919784214019932733436799112869638268907338978819410670880438294058119691140632315527696463516133794787955113139237750376419499009724588857738666403693213760871995961255636468498665434161674489988345586180005855767853168342611178755525187693541663314311209997935066711283511699867687114412242748161878516908196044444180236068507614666222538252473495255576242812787220938684025697108154508025291686566084553381567783371442302829913088680754462196614938110959660497718207699670370881339550728355565953548625072478436217047735796709807371427204499502228054313112670827958570634768073693853209306204351113168948978566600479538023555762121102020275371134428776604270957526759656616241466255923918537989727481575245153025236865478221321795769278531354820499396206192519034246032116720722633460961861356141704960060014570003523964661109976638779260694031899033180905868625683799198888343151163893195794864836585227971667331617886548323739524446163063649267579368523255853549303206181594564329663449455798353359743553252701775620630355619781749192200004813160255331188083362383725050808411981802644295865931327676756028623724962206404881971342103129144299389880758961269307144827474872370122039697548767019550081051350735157927232161587715320070464753795640709064802772073420491052365148899376976497611679735068603565649332159612884286647086297734544529517428953268958799912964002045859502235196784438965639886827313348738019312005053694378345879606424186485226211243818575979508436546653489234929284473100243453889458053987934047669041515541372243956148194240084007879411674752266714072132043591443203183397606006889651038598999180426378223719826607367833945747092963107502919034075435085824457184098756388901285998851484317431537185675733229928072746303708312376108601524498532998784068092251118858847227790738810267800154549389254553102039158614954630365915239846696927234027108806260965506258865602493650527185838972864741397239534329566362815458781786592383139502339583427484729903136359633274562690303378156421792535469160403565844633969355920757400233311856499049348865696447169433564980651198598645850717099789713909856907832224238032263595400542230289474107419197714252589123539148263104556543744302782123099666263532137696441419600551667491707394033186485584886058841736132032783176861613982456714190961654029903471691975151370156230925492345181431931039589506507616050302139625725800789573260460700847776030474635779779554840237820936646409363857438029749931388897347708051307414667757913381976451529661990405296045386583928318942350787509356090084723461276843157662322009181837979700066294579388534965955436131668683621978935476084065241519742831618160719591182846186697048792896564403891803835162289572695544742308181228179603426502504423651508144224498488755028271788393514499714350180562558635400825247141184091146291214150067563590585845741356599212136133401107856924737324241821253859126947627412610290348775232250819923913107637165437441252595191272694749809960908686222917178457642555338162108182616060461906314354910375818074177518984858935654714402230061447551203932470226180336304650318205302340742029661851803383790158426052440834317892980287123106426335070181523077314644496567991819462050903052097367155334358645395921421873798193219425774320486642475088347867994510951686661342834842767855554527210999271938190389390400758753193123275791953587845753761694153299222519896017970285021755552080224777493539338639522640317832019991964222330485343127721188602808735835534926647473587491605657342015545566545165769687865245507501244134167571870550518880225527099207203694894119090448527638191131149607336485371552824890061211635762016053967734251833363731931051154885009480027884492767666413388980598830324483432356500227569126145540486025509345389156729153078347768313903308668434129717229685605258388465499141376853521748935330433396249062068862407776850657884837128737931318314111294248398076826227487802893961679602512138784117860980441663187739152034325853718870739412104024355009637701764392749856524998271908900483471385879502185003208982175453714659620134633585738162011206258861692526684011412187743549376275980188193360788976600577516399696206628421574401603817354561584444448841587520598511990447997234518290437536898505915208409600919165000323168558447100569008941447047525925285358708064341630212233610556081853716819589061832813822241147148396593897758129281813925262057366333581699642484527230261922472027049886660327408664490304748450434700516572233116726638932234695997629403347124455106991674787308568927382123747671460959323171445603580181044367628078072394289551584402358334696750955101321493300809966915451958139483350773329786720024191494135081750911461880659721538811564735433292778812138583636699169898385767611403936969283873763352399126551969752140665003170961960447412724723394849065176291836366773813086729621769618363821217514293531324359811210578469844468739185129234519353664289289980468389972121192230706425928185528443572584267529375218995635671917207152867772797347481629158414336590536371982268558374197959624072742220761670701659154229957282428300834192712045131474538440360822405424721003216242353855375193167216947827657180467803003116716142187142870674188131230953812398223181846614275622225928970110300355342088424887680175128478648497528645809645792932665950055635314191153759982940381338385794645745394944402426377295496090201963493606606131361172616367500184967087047320086466707868944874676901500727560777371835655777376413821384666392898552426905717219083944574585861685202628044160311679378979544503027415805552528839755580263179662397641309187865692707987662494837002587488952564327312927720093326783370183554190534507093250026153536027743877928083813426946713098488036545911620491175882062002500256421909697937571577822856693618269510933638644280222355253740917356571206949075239842124567994575134164930206368643926595190557273564598049917374675316258951405999440941215711071905357340533572244915546925668949763807375527327169251489699444777338360075596581759459869238893508155664917525603904846778701870598714448831554675241773823774215575519480412236264528685023472000104327055316395218181817519383120922113572728195168574132259061212764459066668403094076570689453890390351421177091604351563783027142507845635959458093794965866428126740058607234686058018768872129186702891920148873579491945477520374195388829142371235321033584987014197730444377829594625949052566361553198170349069910968028525331159272845612103446802285319582607781046934017117439090731732603105758059858028578746044471882256684502578685501884471917798938462849649442927533863471442884177607060597795454885951347062476356043582445703632602637873537729819239738567545853504957672961134061550649479503100254246642826098814003690785772240095286119688846855806628689343221044089976972791949174925147145369266540513913499926865637090220901457934625096683894702864547911387371916418472986157173326173678260405123779446591619327868759615551036502916024845028279212207137748242456619475402041829704090653308004309503646471221856512464964743035750080811998628512680117859499324430403151868740784261311095300619382422152932218708783324617583709721812338894135821655992535481959262099484704741385752857614809063257120915103148837339841617997278054031298406360446028523995483501412469035872451633849746694781730917433485588203229020812059116488177176186237923736584833564381678772831434777472274945097281453657710574814695238337478881346447142681553636865981129165821483036697503957955166712597812806008325256001335554311737243587861908762888433121637163759437768135234490222658851156701372926925139575025727210194187260954809076025518784366113549876145105927464028749339198647372059782199799623576181781107465318321266345214745280331172884788785279976518565292234568153165839516836477134143466587437050175805015495384848122029472837075257459219095954705377369039269076913219095448266368000304123228684286771704128417772694247982421997484536471190445652334852553471642504038046897275204907080388684737545258616857479339895631872361202065256719648251226746247096796842858274991873260514602535724784435278447768868683190939251022721990928237506923534832024441854517093943844326832933058855463051516638492752297193619070895114324977502457956132823027316204867954593414661892840062642727463982693200940260836600166872693157502696149688814079314126379182204635416672324890228232693459328401251547629425796457993353799838798966163201180516500733992632658458821729440885000410638552395306993393930527500276626425846324498933862691261206863128620081817148024817619794941682171461890507901200649503420279927855792585163959977405176117879547288221849164546342796430222063972203884968697994188923954912455179117228862791436839711140684309213555567431380428790799663426445710868327053251364203073292358662707238122468746178842102842966629460277013471604227684570632030183550556933939781079116299833577926073434486601199738945221989066455467558036471259874919032074310285665997811443795782287293903969046889452190752321748086171954000204884355432968423718954398862232802874335668037285266004534409692592347664818805629828638404015610496114620464821125920766995282553753823027360114106267737064799421839290372818228448440749727841707075667089710634533324243242649158389127432801723928607168961917509844807575136628853650752562578674767251797383093257810757732590719870529582777017312201703447840946865180967804403114732543010764047771319710169718391140899613517109472690234094034502731026973249670980121028498039090534462124639109310168461895937551813913756330234810540548372689579566265752676865079429074953568046067969117753906961718027821661733520479334277318457086421712534061305925177376955230464742279654835143948407741361860849636497805753931946892618730590358397562981192022145134116645711439707560679863662995346439271306150301254652008295923818295186209384454603179645188937828792585272163798779639183850453403567413596159333409912475066037246644148973408187014706237581474981955158419232497423321698160316564425934677976002205574007936789153252761904029425145235439120812725345041628032915909952070861530223882275422422304103657147038457664852905126770693419587349281541295703070356348523452418962616617700202161919199256781615417086478787565800464717298448797222691714587754159670808258620994645498101551115289964841036531021600623394197371779319935237130518424803027275726288399412065999876728866640038410822880310200172992030304665869989735891902721256854645860832639261726966866318871171312691424043509848536260921366600741723159938579628543596286645549194616958290268110661206926263470146785252725559124031614342352968985771219301984843342767769233417722484404485572828625033535297390887151986462543672583221624125587245728046220407608643081174205203613296282516900013731176491808292065162762565943914407531176428791457936526694340603212298717330502294191191363505879441836797480729564942943305442023370150738774334768235511128218848085937050154194250922803311638570315949671075160982886451697334318829311673183525592230234077744081843189725480875977654890028605023247037649954159197224223921794318044810520982611200392607156448323421577458107359780133182702310219971603984460624450416240194567243696031232920600326581057631531653846810006559444871469158397904588600206996556893468186746698255368148017023512658535540745279923562408255618292916740326691405013176500015994597049869650613514175152611777413836990210748298505573679580356223806356813238363052167258060537396127678917944328107852181640453425143722858956616863670635452279282856100785018790098711484771988109170035907674602218493083252465724026452588356373801726740886380974062815848691949466502967882724786621096958522684133468396162196481695072913471077437441339100929700807872252439027391958729269311032170663195921896649003866048159770472926630659572207357776296358285633069645502757285203103929647389491055863589456438992585511517706699777454109530505586565131196102912283050647771635725569112441964160729556362378255459987816510676939232529024879857861734522344384614379154599404519378760805236348256471191105400011809740410427674637481451149051194603483992406544376324829612668189778860982601368101778875834970952491173438319043805495636415123215018418061927000935564226562818595624908850598220346206044356996735692774179368288866280554109659319668236784732744045271006827783618126798497629923271423327746582962570387911326337602591320871155742834463580358943572316965362148392674921342570990061097501770731685737801911288635823578275724520185380064010033012516041379985603099172878171183205155768716692367306358373118809022476700661972949736487058802832310669974130849511936900574388536280184792100928888061261716926359485986897684843904394119095983937707167382300682901381197854292036091889995442732084431478950680687152079187199080210192211884358751999701479464805458393106939087605419794651507351964855944817487273987381336684105184226858295987083949987518300503631942835816944564601745189459122613480471320286430382660916215424181639083894552565950669375680612866289951445002017882555018018890646108345784462949016618837389393615987016521690108293991953794743988907708208849266540751638308541355639154954217654515579021721630179718678237473178927042916565086714431198284829615735626376815141347806937084746209480413700653532259328058224608600992290820312901272834765642382652420313798755636203086612194814527008121198407193314498156733519940960615411214162458758573915464920790422076649368068292186720379490197138316053178974358396058817174994165954409314464541483388234414549943946208601559129645760547388582423986363708312852886557680568822494355507247703921278086572529454451215612067248966455323365710123924060250427829188185935994906180387904855835724641474508061280152795523414923688517477472301370007911290855467164727404004147607578088803216241543639724132639260732688860638305631945231931016789919054508178246201854632553598139187410335576252208236918044482658935043799963590791531262581357245884186940038192653983091448486330297468949385989948287294954959561876433819205635775776128470101218804846598028075464522545589914339613143891531471979565547179873402198230962294325184002670421231705813487795239480178361194946241214953971041834462468188811003365581053637838377464102242619672575389680821961848828529840412449779607943899770238655597122688233467806781041974987727866487682426245858838234448932385759372616080291661698576063442523021177850027471525176146513595071492960348605482368471520412185404591938656761988571842657269415823241518717278317829380416295199087558830013043832955798440397437557079218269488291247054370402774882566628330206891842570943875722651402461605889639566745237276073288612566064537939873321107642084391270499642649297791821821162410207537036063202294629233870239183673659081658690878811971767024099271840947389807006021383837277483617493054104163142692370874679674668320943965192361005420089671831880301899769844711930662362143283475931787751174615011347402964533920194874147257074954814594638863141689074678049466348011273386691017026346232823048886449654854728764111648555558804539908346330510588415724215346508317663872763883802119527541201365832321455554497241053544665708239578358279295462834487688945029343697030825281448779857569354825080612619100564437877692980819831199657388063373092576809141328340116806677939627251249933923881943178077402125056641431476741083938842819661488600766017582397470832690557796668183959221979508464183124689123782101697038955711011373332752517966177656793147631816317037234965657300858770005204887785377530091377839566832346138257857358856629066691020806995037070816700668274749805240856480847947195367801529712578548650384857835317114199075335605131604756778462950028275742454989083769320682571071538268158353762228728253266753225118375596014333502556329847492591655692098604388343094768996603447577998997788642195737195691701839274631026489255862126794770746067973938327349488969074448438941760124758916334460770631223322876155550742776160215060710256235916981416983630268254705515956979152895457680398579971895169957658466515258280859044506966514016393695425313695804099848811264656015340763076943773659473613481740860767255597410091623101299177980074707178714228052702184870570686975339656577832867388530644523578011020592805831364317581687828334155164122107504974329346371836047527464751686939194795062009564983260471459881794268760206355213381136571386256910203770881367635105752449144988295013508352549107078636067373622030464417433317898433109908071252600671414271959724998662219116468618130809233686172002156634621825229622288176596930125963646780739648357850790176647667283462522994126248616093231515537138333196418408243862516656880774372661292991935090335829528943234136811207636516977746342874310973072990990210835588367515869834980695820883975447552476009459557328454262389991421858980968867513627668628053516240276898093637881075979830180125802674752530097171491311703325096554845203684621465251958298911453432226588370349569882249475140690018995175714773094067313693188239331421801164966216667706278173540131594769491222210961642137928223086094166574786203338196056769602877758964769030639759305799357177408508283908550722895438667861808740822683611563926728824304179014340556029794642312122561519873979606649139526012180160339287782196013852763676222297402402618219780051166500315613554572613873188877619345688128443326484836423420982479761159807106862673439953662744389051293767921518772393194241609032951959568644306452765291535881768778349236814345816762907597762196726259851365845441560574970199815993341305815699146200305114615576053723888881531976793885528111353999819219832383263771407643747055188690290974939286846118783087978500599177352369580565183003043124905722429976580026963432448514644152711827074034769176580779839607165591499809316820728443102836049800540448199116949951486072937938777303352752190731349964323720332870959724644041812833439269660620592319636400983222063137900032035240695914834001339080779766872611158466751017466786262984967057077381953030543566329849209612776698441758127232597180604497250141612894895124496880141503434253821698991993787365594323948727001311502402487492446232138205124500377733177469356346701635039536203056025433654725972556735526107180668434878778143747792286641220313025899343636791354369684776974285331137748967821165061540542270748831557410172885293719846438425995164858918310780873344313693809086649096202659024147439472766286586194201072052091986286838881525678325405797754722368085950969825072906678272037442985875905015429425879584516647296087353577566048771532125912104786124205380809872108418331409549659323421897593588188679493496384032674130719612560111442681294738304527756121232366723921671008695334496378783501471506335826425715034044196931752087389702333689689380619158671347541080030502509446634163923981841681431233190991312463931777550731399287116408978855098562769849136275495852495339292290178728817487347069910311313568276791804488027165554168110315858594803075269116688407777516068009725932476810050027458488599229698705222338110908406645900211999009888218714686899351277223972383946472742290383201783134468781673641013227463524655014659807559707891622065000544907527317229926206975910668080330294058085293669364806348837065868138283077644437228911738358114349151388590038148669797492602075873325544494578808156098731860882792637943503965019222679620924905205302332021246077749029181986316578352377511270821757755853293357035798713106602055519318114832734405930905069814759744115401370899774387570736326406348116814955846426654831627127396223846337157792335806836404936213373968243805429499272276851682582328694530354830023569854252715115512997670275930005361254733880356312365178457122725238083503822378548994128380732057769428165912311109243163088215358370209732266660243655166452580978919848950675505084397903921339999172517584673126724992103369013703446279657098967665121248509736170986118915321551478654527660662511555278741948613567522478972710294456389573974167287431378470193290248424860241066098073722028222972133562313791665524425996568900742538839330105204179153734320283221460832117782134455997052879832574934862250100749086792150532473519011331785858499496971496071954598014081901809911138532481076112735259537874328756041940901310422655623530715138230899354796201707461438137709046702590971251395225288403383127061094254454233206270494510242696834708058394357034929462647334865678235432012015695466183488228290143074015037521280060458612514132021282053070969113009985585958679872926284894572069653458288169214326533100270157638245123573386271393143992779076991369069620774784883837938170176684337931014256903158760675905467076108195140818618076421252119755581902924380916382559920122450544188862286932866373008767012943187396367063093101378060154963884168578477053079109131689606972194006331367126782990626081286079918824087947272100979022108259725359103385597617581409947866146594432462339459081277185739005989775864506589568666191183790057519352254821332835256831716244575624964229995850227228185307762843535792679518721128385965064849431044183717616701684543958012299070599881003166791552538496408170945067279973418160542485748339318010781667230524796731546653679135977646722714238236752418801028462397520838848056225349632316333521807654860758491199768780050517132775147376776836759166247070643236710891015821644321483040134143934215984182210514908296872389324327804736006577825797493916448174613511256320384508706622001186794263947999046995728719293263248635684698496373014726248175683806770952708483080607251037350113554986726745810017562477456060370801081166362862586231248039198374824253999024759599558974164109020636803495048667910879063307270729488976900005437389803381778828097037398393450794807775571186421520256133498175546931366264461141976176947425241067614279076490235562414544455361260024668003416960993450689755517104982443303826268103496674491303699880646934087314466387110297700201408313853963227748414568119804540912495721641680026697869211167189515281264689664504636585620134393861293531207156943687267212485271937268451506847768115700478418333309011509240477830392536284473400927306031104535988176465356797740972086368078131040829290518156333337548419395404479277362413491490924257949218344001749675896276997037050388856830737543018758672455367416591783859369293862103161454568334792108952239315471878780955410801794448464757203577823739404804784250222210898433240779056770488809551574901786285033272063735746266337409290729250111907844397785391959246376089974746805460727484392818356950770897806297485707527967798028788770565226830263840722246803172817152706863877426671740982578684237500010450893767015184179061959122273313133348996873519960661062597755596247774102845903534984741726324829167723655645555321841635177828272907621228396728470404085612788721720466982576388146929719541788906940079341696472888156069153480424430909355708202613911870199306654414740530059234070140158344789429769432981900440798636660311330749524431370315829027078427660064166498628153334524739546759828953369341183526374863794573037248088782642599265369155194447664407160310217656662647490409903337958015763689085563343882946250758126451818966186567612063294940732081747670361744243029545531296522521100830696144558290474342829082602917502578226229019598603543915568213056437913036733002795774081284454598635909617767853012614952883957768096268538703173974877001474292565451318089291049925991447115091425218927207493176911820464345261050226117972335235746533090670173086526742205183678233388528589359632610300753859594074046894213463131423469419915872677587642129305285667693144388828503342121394153311403879556387788337711808956992149320235472530564542719861966960360287456528439651942062807058936249333831373285216349586501457534805520879532824492133518888950145192758559286393212683259249660046453240853817940541990714866217407279746019540199015740863986524495398554848039080337607167733577474909117009700215112566601980272726942234105949692252947354409639504544797402884665239726006148875222094204428788314924926901392744671111045092421775722056877820814226299336678549826119581655992479112173191701727170475804872339424136532800983894192495391873435513514087449466873996129852920137850324906292398962774419064944297723801493172207781630386177783279327232272061015824508501978782190785432359684767400939375867534358888094095749798540847042618083408538121340270963081164421176299893125100321423199283848729921989212707362643977056259354856373801061185211198979232837600808457287777064434959094518081657317070285247214514430325744861951314685413015475904702189843759842369732922509583657400033981183691926862552455949914551603489263741698787256612404802012179404594596887417522396449323711081321619713506507809072809967750941322309599473468504793769831423127184109969474228210478569218410751345343955540112903643249413428526348788159633598670091707836614531466027226646589732985781177973673513898867156589783924861251190863919160897373588219062189782693578935183869785119274199158278901193245156663486010041693697951116671515725262899891131574671366620646229532798338528832058711092955386912091596663901735114149276121692902919745843639128538929175894656002720471257718437184533202240576777781214280127210488477235210051051068248688563206426764142503135345808804470851586936901222881357055574670500083573434401062502277803588066699882298223320238341629636275468797098141639607602878402777385713400943882172782427126686962441706802081298319104664217790128947903259078558539658746495406235666060980359874300770262394925210923774842584812208004662471176010057767609046710449765906798098968120550478323079015980298820886836248985825422920631961842994103804738969456643707215221344669272632658684131440102186002791741842532426916933756020848344539143087403473141548009741264201647871508572218627458053466702604100878886327295250628047600402082706601592953561760448614925272989854202316664474263724986406969627318890294227355857353983407328509271214817830672755485747848408037033611378441922434124241570419370609637057896751554003781824231719830936350806255362121331756391262959096429817454015137952822853860873847889177517095141887240462871713349657112641404547843552052847109550063583399557311304502123135490555789102214408258130129736481451540992794966157235892972433501839609788142802809852021747063640304461248311087451386791562019724730593986989312658713722165775572910413875336363107471770577612334644366640651886978782279652108045797505961063881240497418150920179260032118874628347845424990183103851774086530438400146512980838515078642467281548960385996208703589254669518456316834580413628913626043638854671429998565211123917310113375564428992326023121082429179370963797786599696279089177507833242378699385942177511270986354855085401146666031717299712756400592543511882036227093766724115069315414930280869253632567012783801679236496224977553504185811930277606692610215710927862286563680887912998859898517138816198752129885568198044193846466390658402458698542391056747229310530734422346548147778210758697529422911123162205461532304926297569641257265560470613799541597874205215947121596285746809117610606275848013311476839500562338543902680549989436167908866730939538153688637474701814771559036820540469859658021424092832081450807390770090669357032946670168185472583861724564425479488699190593191868490064640099943036543902947562291895991139384532892392859956118566256262584866044831488841260659027664087473443430721723791612125748857212376329949973202119461466347270659133127033244847145852612607043261531868421990018207198419597160057914604321595456711512548204090925923519293031023870491519516108642239048343445718735198411940759078207927727096510087889685311692413365109438666854860109376753217689867419682488445352906540047146610786224543528033609583801666224985124676311991774687716890354167156083646110591521442072271693451760172710686207727429119456032001918987395112220491376668953954633873407400689473157549213028090694038001963901064361295175527887996447301811576135462369516365656500922631596795016300650654482950075960014771288692488641594177510947612677042992796598905669290609434898432367068986053228053419680904215465284785930450124796009555520386727204738981277312303088114768067844677574951496257699214884846978997574386731664205833564919060753046984967904340934973189133020003953323892883981409607139778752193704824064024570218983562366989613011369199616934746412939064172474139048661921984184621372948934003273832341806024617839038398547400016524444655447009631953280515841226931542761590673325067591347487522256355534473613410737644770634372912032799956195455626254549266901457377412829544728524060342740844547738336079513621307209022160096247632722738602196033228714279855007730573576836584086461666067923635117375605917043116040358873929694523156611119589833666982021806546590944989831267097381264943606988702826177835301970897637953053846724003265048978196200180905432788545503315003941353761378308813096676715929613411270996969167987817721005411294777072949982047976978920650096892190421192125741638785340899502674623025690031572252214294627320629538300838651379313035452421410460267590264370831583435224776568067649432948493252008786401447602681597135494786865036780050303118589687755745895737032493567625782447158330703570362183989642487758519294873761022686863832513678815052628342563557124989444112894150665101185884899823056915531792635762538271569576630413938978793914038694226733297626866425733427196424251605804206110768378113698282590890429467805537739252089972948382340013649998100036474405187656876090552195910552580956983684985671309366919626651275569048187340888602259438103331707879693078257544286326929502834199649887403406268352025019516148800637278062967165538904700585749038780621691213685877999550548314831151910855781744084051230631183218589083148284326709268403711824805991853043003571335800031183126375002058767051817182239901566851960655858624673833794124212333151877253946600652006645926366786110003121244949889311985784533297702597323466435679736054513633563751377655145635042616032979282744591586348378013896658913687499148072835587766158812135935128696931876052969621817628023352519778106839940123838541211051099267537992576987802248980803161161111896541168643380569741070028404001397177030082439384699969223020926064452534400856069528369225294492839740810519942837870012732542849199860707269385196791223405900806385578838554697681987238474275219546691097042595930730782142547276861712980603741830805317659379758056858102801683998126883456279270633594982558608764719752147707511520105039714561687171185091053671418987569913258853810670857959278587814486184556712627150923354400509489322112535651006811144119730973697271402721660829669753199827237692823482548596914238024127960471408319484805677000368212955067917201632217221637922993444621608598020813848639350152393760477377537999946084564424742041135763004420841165132675227346410560106979116966566688835874912038070238999533417295581131285009806200795373164817531411371409447723472864327072767240508957019968669946376627541172504105051042643042532835683042192853929776107537805702130466135315751617258806392777859215741122772021304050380991401812819547901159644682737487482656568946206052517757907953808121468008037799903852300520355235563780949609897571694958833540991071340444565502492984541551336488003542035962879014238302682903926022594759021821443157047288987368215616592062433903250838142573586067849053705155957824379958726599774502897675621840332585943119809274795020827580584866401971201853566360396974566956797684029640861680262198342939224477960799029942686893649743655188566355217013079929404960561572743853995290415926863279676227070708394307466505086525133826678236079517928833575718674126803138041389417316480844089308562087615867731173874482290447492104920902190728488408294311787759183345052707117289917145656617445928914429773877664306739878387287386289144204756355830566262826010500149403042064439107626711546569825459842386528333889881960112469758941296099472508932034903261846532098081024305479552024927866193255387064849867576502203954045500025466012575880626607106476500122882275946861858539131276525003470651828312542916895766051270104903228987756069645347408716030804348682719259374400359860902443927234382164146388757062010671165204844131045187258271732356193653594865164002644942254101848529477910233863040894038886465903775223525672440060710775934676138499001684876302008621985948553447201068338294105763493156543196917037985879996091094238777413669096418720159975004281021454197246870596974256126448437658002177887080245383956831159888889516706765550480317815839531185990064379256311042795480737306945625698298385201507698660979182108514869664032557369819454735254455473244416280740821612278514896788518907046547711443892284292467766181785533861587932263165064720814586939211933160397050035189982531388829564547559768189715215253664744181629056121015107369580295719876405934129238765974089066131441535353031847578953537432959477220923231761440694906872588082408757512339569442250969438601357320483556061640552833421390539343249209589188358720917067618229230931014899481130901101625539775895996895047500859579806335479216834002801307868663445886100870298766348900114709637992984795257395039219974799248156629608074951799784386626943209643925477464720589084766485010607281985354559604294821126380791000048144215589344762790757799350737597327588343690546223809106792924308501801912606143725822137719077170681928325077996010606488940997840723875297741684572077835065435846403155406030628612761055334153895952610004442108014618388908976127771771475248826533222013220767369886463020560512653766012849587866236688093902051720363526689250330311031844913310600712752097066941258900875518507905796105634632176850882146194887699011459856377525269504180749972279737738143118191903850311509525504963985862664289308943563307677393802294132037496626741278969755120326166700542504068174256125157090953991078799940460201399034179718482840978876449854984851845763871108799295118304522686207484552558611540213793089254970897406717643819164247582382719314270547977629433618777226784758590025077398025280338113784432974687262786309740959209772474292897048533152112742391638898664248994961985516521849215857307762176320175325829004799787475555879105858311848199810997591873208258312676386061323753310345350782140474936622421456743447042687955232462335380643526566485446751304308024247760949294489115233867761076109444067022232708727510874623505929984269275376698489635870741881747001999206950884874730342800750376419501932998871096069003760937715410579518341507669837316636878514601933277703881373771757345348886822343289656260595075184353421584541175981769244794222694793116938946917943680427900895364714975613180944956102439235530565217080176739867615623119215148487705327338522844531560671259590942303441818014242104974134743950036149179726937138671546094461175883577719905671209944458677396314567828168013403450436256979373697996536693401643440997028343514030651583791265906421651385191263274481962382292225228738684338470820763741470959195881365740605638198090427120553111260944495709954664781433570525198214126954139087686580816587534673070721399633586918561971593920784637167732401782157310761207704367258504563180503736539587713826324900204397778769549842351248576619365543928905151767835861164379774770099365525439658400555834868826942140919992136513299432134593412003159246165626945625183701295878992219816647772722668935815137868455550410097279628948260742369104382465248626834596764603616100616772076951879328214715774407858979121193866320627972350888460307752825282230897734469755644390469529903469242694999668519410839836043325599212454040803547379872785812548144800136871343558839302284134229447042949478997759296011623779805952929859010088901454292692483098529378905615870186744077731403555702565850532108520207775489439029889644828919915372566077417720652315360354088072077843716301283389859379075977290799534770775429365869529721241122337734868704787156666370181923311862510254937229184973815888929919153716688423774254179746478584486866869325490723160046645572213641940478550472287542574463815844664104637858293865267405341793050020678248399410532805707465311261367918605922837306639417977848226459802306481110363703222638234556148884059482118408330757972670262864681755727098756789874533606532906721019258708063500536308304068097084858027752244724538462959387313150771238993810492049576460369254604802093395763154164092353564085806287585318111333481152216614077146826514424421716691257164135896103416509906193850813871068627963620459457945633540819508720069722785020365351513892580317731285305319566443022089830468297389180701150588607968255492820361258506640288794009280883806367455313267182675638545884942107150665558894003740359819927676626062888994952562589295837528127400996267729643626217139966125834390488050405348147995814302302825458165992601349931866324445825702127976550185395563032465881154449262402808205608207824326982328516741417116453202238237786479931542548803056348583666556010583786928167692808400460758957945182825288643324706796515402923494188857990810585536627320935030147282870529672052815437628922291880311693928619867924325781983781046002999735329973572085722950944467207427404233354235365310518771443546202608187145121347341681340607631502121082283447140147403830670573262302597401993573338764868573817335551015509483795820664632800239899190241997450586447853533280650955005958643224343437488685176397801162307532463764599496522869476957255535686994799596301218397729912917987906711787259112328873928199416601074350065539613278363868161362918502612250127980828628438518462365741922369099689982113311198341172689407581916212294228907067433890472174705927532379006190297390949405372219093632924568419414643456939814330213165515324314678313968654074421657877191223052208888246242661189563772533185815410269870768809819094560777260090728422688541418162397082021766102691574934625878062385533347717530710873250302484305475662011079223871681002948348081129928190454500120004365817095955326140993195342184268857756761248057862442815976917791174505059552434940306812578827281038070203130396967432206538003623119222382038948883729228586264822799156665909031404422500120013819022383225647772208834852407436044695529099389815123392609355927199312016393959921689420775382637702682900306926899823344625203965224665613491332629070836465560658503864123586797980650519717719311441890316115212162709758743108886356583333093600940774962687389263809950490145614569458867137297268967626197758181066514236017582360703690187363254105829521256832439855658575511879585445646615846613211204141092421318584868007517007527778201677468850283085301578170088955903265061925866497134252565373219809270640819473876044413583873366352393739692190546699572693122029687680846151910474501438123801203518448444772762451736315940884372200108588198627694001161179021432393521238501892279484618946988349208021598302097430502291205866352944829300098248289066638917786970841838087763065846821134204147749132715371588791598614639213309714742545181775306054709844192270776701585994888696825065346746110114982622230544266004833545128472494976337841975616410388416410738196218039132442032991664576356561760587063286909858176199112574864819585262111142787858249105398507112536413742500853972285924565430509127623583774979730484958494168197729276482491381808847775079844888375246319148689560425070832954908273164866245810229072055845531375575444822601271505506777254179262189746989018181093733320117912888878127942874759374154897506747214668449374185833023756951593455169591619440637547670949535584808394751389669213363855419377432470937697291401635663619103108842694135811349388710381626280894671808189850884177753930374451738215174489080880140965543497603015079245115923873289099824463011846608969423553236792349725854083373654209345548417539942339224963152970688648512635636784755512587145843885043919603605497881577828531507156060965343875780066361920640520512812304816429261433478573355989664605927527523626419154343129406939947471357762704455477955235952538645012535197260339655390126040697634586984090633934601155862446041301011988741396156784126544475892583434039658099047884708726655854263912741183331935891632081967841147303897610980334750921289339724899998443315556226452106940500198128412399852956865540374484670834114266546696698081924021438285912867110788101918785066929946911417659847910081305204663466569697436126442258879552888592430787807233466732416234405904832479159353200366418283738343242693676112958129796527108586120526023636392473233616428707039051417539179913844261543215265979394987104758359097415016564827789561376103593574245638816093596909459146407102888137660565013271743557332113162637097711973323198114766338257784750790948830692227593966620005660614183376792989697722015678420270435393516942571010440032977382786514555689794662995562404318161027743612398496974972100964099916566619081207996224537078289877872983417667514241380576467940524813031815756437772191309018130528088086436518461959466096120734950061617677979994117621741523881554242730707240291971015717147479877730881170014918224243539238815894711874458578473198116290378906006530608321897992674089531272957528698754625600028992016206099415846869374099478760843417787040483078617120040466780958458058992643012736632835500652710480800646370412624888770881716112760550861441253929060479915281871814200260866568662136605916031269502151836988131539203148112800975919856293715381259647288817163649825928563042717257627609786459715962203545419594253825725412488186908875203923442166234627133717954318389462939925376436752620520945302090924038576180734494710608021733402214488680205180068981477503225338692376610481081553230518326080801376041508942861596917008519825140743708560982098731524693315128569545915485593064778300824986168193201884733561428859304522496987036474133418089142629852645619034443016395899253345593135756213070940034998210774112040928604054203133167151699634535536903605724835282857181117696929076128597142934177737022971108134115101389797679317834615109599231734329497435042396034820131818654570493766405201798719717121984437881116510567650321149368042295441665959157520430672657763486523000740817778347042337640918380032201196027250543771260844980181574919892891073405957759075063562094024401839322977345923338367485549172369863545141610552831172696244799320854309640226197628277499486260942219471394605088512334326577934073595185239985181951968007883279692440248271120229824128888182627424292996329623246812671370661463474055530197785691706161579955673643523313155080070207284124079636454427377120840299878471115010372361379269753005593373189240346154615862417101835577647254108008287115912412334478867378527603333523648896845362506456198904526171930061529023178809254720113205524766359800932374984838788856765993619674360269017805072208150820300847044798626917743026498773696885757673382228017920328398149084952144149950976890336294113988089404576774163674178496261786371571593711733281901094478100315511628942431994700227443497661876184447525294207223955911950459756816959699072914412759115425072643083667979583932072994514818503412756120549482877351784793473715877495601315171608778956358192108642094381338279547921005947997274333133129659131140915962109018215624985194465212266180016251949525675378576416765263815894873940703068896645120379913740969340696561975764254194808287077498566065335887027104000684520904291922003624357524295438691867125481569456337279037469677976043051083249886301239107597222353784556266750684429359582852580430209927824139756145881671603462408126270731753960792466217444332382007943188497557381261907048991190742875712021027720039639833055750261134145003593544728167865650293812040973549025422416194310140478915670058454483001458979068579118678891016224749121391078505651392852181208464278088775079627700244699286374189401778691377204747553296113753054046959501566199358255204410610408570008188701757332254472904929412952281760860057914747074362528818498343135943711000423659192531849685421264987967302211294600918084751515274419643666493059541801325965472401112909189294566864196893819054880900012362216990104277471097253832845373928418283617754838919170956249853878608318908047325825555329253371163184086705797434564270991990715275063723635365348178067467784370376712664449303374117720999039956960120947516218580308816457889717931812439835616730045127090780525215480429911615488230934213741769015051337075408951779046260742429995231860269914735790433011434549331184528998396749397897362953091713069515604403315916516108799634017691152231279527376302168512436973055317295760718056879250217401461981411653625599659912417415657532913971215628759186885665921403886214842213716453996845179298045510878772093534231896723902498187559923185509805924907151298975845670905259537701699512726929101130540360965535917604734072035071371389622561748692074265121296040822889909742422111480732283033396099446586846105411349071580087255262397303777309489181799546922936602589250813986610580384732445062536910965172758571421039136104404597893731594106761755320456809086874233799153689726323856665646099145984969228366909291201021849796533194719711884079604397034679793121059310216516336954587547183787416339093986952764615852871236973446485092820983419082587337637254534786056126333348603994967504505344680613445976629935565018234344913360060979841072334368267691124788964753623999259343528331354392472068169794517267990542659076998431497417607049669005441871565032985175942927562018575930952836397716336183512689457892850091302003491034617837243523897181154304288366264482198538413337062921552656157397478232818410156116205213538490741794485275588949676345613208524819322000925266233810759870125737561962723842477964074820693305721793692258887260000774885437015223510811278677765835269334140617397542201229160224200195455202337434291074335670979718896237780269845561968847959478656066399932398114529650002464975974621614747379964005766027735268250018137807850157882839064214725681249521640972895432664869857958906966837546780820045670374771446210302565534282522502382475626861449419594684489007035797159966063870141134960913132541414181848526965515517903617813549373319378394765457402499664663952487159820931041160008945860314321044758082396057600860937016584127301427670560558184395980821500771933333510732380857835159943727167983618052208156195977715322478244445912632019139323719248066391747470866668265751004182860633481547415267891028904923954412144049883583631440974104784730705671812508500557653461568604085098743903232429723217538890588534851381717979049410017399920043955492380750352334197283379410450157403651829424755934728551097393717278151590124868362386485575659721403419085122170462315056803012074564438530237193630661350357804332620674466185285100699050062085351093730027705169177599886803362794499169491606727314688468747586038831868769761493367514850873510143232685141197976867424513662377458125416499171920718630027415613107640891036832123170780021378891092311530277910514572513756675608435976997805366679072725856806170033767645449716384855553160094080900485033268167534641602838270130953317338573375684172429878832785620720002940177164939800254384885798777274137990916580242010968586831104942719023880360736669527913815943751233334115148710910844453750226083504124035561218570051697948656893101678824647731790617594345999694054164254901893188387613201730775456681882003164114642197301220948996009189207184405191388159273645367836149044832460436409054325409820225762194305491169341967182497091692400369836172264742308735623809382736350362601760757221116465837269163869263396360166262506062877625549460418582641538111309631732904126168508337242420617600328941338646630464814527334564873320090136250711276928726357787548588141631748929181025033948582040225392396157920801697627527166082782105020496055997179934401105270557789885305110458235270906610779233276794554767227440591785773120332607112455198150404919612956474219277365436714082183970130676767627502603128091156864374141971380873034190985331524995286382618544562726489558513256157138414953969076773640576127347679364526534816813416149334804855518864105410522022413369345424247448533145927161739170205952681545511097596799848855708786497457811387911171326240412342150391337914347667494940900813996203409120923431186272242693649832506244283769032629723629703908937940839228979946636385803411783938448704010014665257187629403582565837995394265370028340498329374724439431114437610144197026949622224677944159171980881463291817289700061379798889300550040836641694310556633005045598797610840563551483103757177094426594454861851137535981215511823815651553083030557571706000142092632710084933417709412379211444911054697827497936939864643098016830884985184602993785562656183571745379907102236188251161977576288070793753927087340455652498101005741911971420770936953524756038872410848410130741214650983251804034245726064510781292264641075035887549003068269427235226300748603645184772341764050167588481569719437052038678335180300202430862086826723090088134188316032941800577299300514174874276232768884506271578101520274106574945913744104439016847485422387488033717495755097330439635214808694854148691549588263767987851021978700338220165057496158423554996415709437121454560363263374167866768351930700957198976523198559216327961767828761298810776200855740720702615013725128454509395954491686106415056531279213395848629826340469884448713256402009124301826348399716643681512739694611794952085663125467811884603914665328346178589178371184823438480552126694296937474602389978740180237485418847920828699104567434574382177272673359473753932872310229520942880146471091579958655449060604176997985886420425218717484663474867276989110090145655109532634388119081749463328659909046055918599277886665893034836865241574942708739518090908197233611114428602612335511963139500220477368523668109693370182724131729237845806154761462486662130938722915032541327605286476309794217361670712995658705055841018015773848830924120310194669647559618752941723364031288676399580734641381687767958546123447156840260823690186081006576338800346116059230157609270203027037937407638171956666464831378025569232468422138541037559107824610968090004317047435067597902787220316223402774058026862797711019470932107580584485612898550558577491808871672165440436158329972335618512653428713051460046052122086365754819803014827809969262524552215841216037069574287014664173680741767500393890906118791593295794635425320652013868011038226574104018949082662157497444500973952085212579702340446919476600338309595137001828578392961861004707187847858262513755180150065741167827490430727327105716087487093287001410982260373400483780795645802498228248344086636080324528570564967573831240573564559629969359280747391161693769453816650713988852519802617606344420226969244653351295275008068669624496881098841351767815468463054680005402987485411060707682496623028244241469151780929465895241802421947459829897206870972023865099325480259599676413644239886653906951126516460486687441097294860653759439830998316876980706137865319412530454225688940045275761501448249703819633509660820991494095188375139637187926882620263911902011282931491095254357486030057395747955921704520279841681007672776829625176354066281518282219370924936369284485055083795020846016076971616021819585622682354041879051818991514779264823046965625223035294177172564679936618734604480240600745747890708312179248010371067807457400941841434731952290179419415350774359603430656017117567802163342055516184070797891560113947377276411019026251424492444623027900703932680148656485738133620695999684004991975321759303634459866508990987079234415415233688065371568847350767692032278128488396371573669171406648123374745879349452027558794719413499486796366207826259889702658339297553787603476652922217224313944601078866060990739771779387606389378499980024456334660292169761660855473484403104687564951716235992762630794442127156266090746387892634943623204763458293990971836435395344894380893899786137756980023043359887097104035801584866858606208315758386657080202733651773013610356458026954930080036311696988175482522126783526995619863134323416813030233300892225893525719769260540443880278519282104927233772211880187690368129190761589878036376384081620692655438033134994961314020393427514011342736633868753918605581467786332860371259668560352431262549299548447293832077933296704002648389903217186719273193654603611470706045114779538306235934657283364004010703037087339858151711028009269775197510544302629622101076179741156642034345242187758835057122524139974194533491435592023954886047603375534020880916446149136162848801016615050677356280086360888850959479105280729454951463349320896043992752902445286810104854301976657524493691204301699938814455818884023296576181268293934578093893700281333545702923764978235386420828944626519004623523623511498637783161303739755223836921633054619027985377839247888697968492938553392606277160830209090467856093999694958736663805057822103732169865932063057824660704987867702203449620735209272732504541540103691828353908633258809655509439803179165894980029943616179964512196142778118989035768439021670830661097528242955722849048609268132339666678250217828149141971050448185050092762438944278389741794877130709228354573815110442443623200545163529880226387010446009787140426670739633962778969527200197161607070691363063232086417538314831313952790805822852338963151860240356563711034999467397490940169246876291782170693305216279912500547289535654865677145257683438230347185059016646167290684420898630105669715998444273710129808337966090423984774431456147824501239317975432520711825425380623919036329455885411371397467160001259556439585145231520477283812871299722160480283460042119995642929642449636078275109011731165414839884168944298220374184438303624608460581715149284636367770289770860033228934285192455678676980564166638770334847896680225210554998777416981156292809817172596728049365571252057959382490628731723896788763527845897407204544789300222570773864059490584496965406058836049930963155105253826055710212065758541959673727297363924986537095152337937509214084779803826316695398226181675451485475356058765831788079807318299166632312048590406831901612101232872716905134177940046549342207661398870830422569264451591290064206956190984259967342248884443236263793969313523141563162142075305367589593533363106596017021850482081560040988246969229150174831697662695494789486830233538948888557390866192409526721453384679796027283162877106728660971772993871126382388384465505522800339560879619973739481640391985719628618074633290426734056595873762568265232602224499289312978573133638837325206146731588963353592424276352588897758160277802525350244245491556635680869062931375456278509081169558697218686731575411324586353327389748994829967054575514838162086962403972038478698491470560752880225252097222749712327467754857632338330089474409723047728003562176506332124457173343876692793925397697336154254373164618622113153982415442919845260567775101683354633652816099053109257890333200054827307502825780419767815084643039599670636481805828169830112478891799880491970414863937046657276228285736669055010443480058254747987263512462884407115779171927619027572600087784281028289046766222990387822157760549149728946247446436710578296218751282413842202032924630828939526819879003119632572658245102614783492855971674976251254123718984987131694529286061264210170036510346772696716945208166505459108343817194401193740707788040335048032976296531672170384496031859357508019768939596155392556642633076700947295399819489465936834335025443648660706607055311654200478103964053665681773828736082586147225533339611718052324330504617636437375078132506775781681438285108373064342872028718617247554429066063911779819491008999202314734477173206992871357086218784084756862852952574407961270795071350004082813110140855218471580862499621633788288961879204477663169355247471925341993839802189860134738225268698030035189325349508615239774219815302146648523791234099331280878159176825703195187656561793780512518335286736403657283321151843544643652809090300871046661737713657192484079443376210717568979060936873374094861804074883877019490468141088165749824457807339083675215034328012591721155778209833431857460402647065077329034893655938757903311401010433609707774810835449489345034648088729934899171893421453367259580728769172427355687677313212748603743067357876903997970008912110216561877491419647390712124746372462613856636966152490748560121606845948871115539279401473123810090423220365031205440841938783713727226170439393097092579783508505194051946654858655874480534382940514676359507608268617262149714355819634193004874946088000456131858221203066811027127698798806000765690009492378262074341566511073566869849346552197034470390606323878546725222240246585182160416527448709731187293528864696607596230655854986034957502310712886233483348303209791799704755582298990299084836747347745435569602681981186552730216139846006572902532214051459214296548163779428842623240187037358864935090156156194414623085435200640440161764975787245245669653308659499040253762719286328926984503778397965136245438297818266773203147419726997999090497172850401289902661109049890350080365212301196559899118590149102501157036958130234648948858568260016541064951950467480362993544758698838814059924995125542293699638729252764889293567577697107492926884636231145966043250918928082733908848055384690201604263387829998509464020105970967637368804471912628685217582655026201670558042175711360884198608586544943867510919131111164133607342693541581237612276324089612745841940556943324534305859823919154693447476370806845327101201869958169982380393458418170609412088242549110670241047985710204512526821633833917060563175675671118245176504752596850687465454076801780755643164623807678355846605656116282879049148501883949209496310166023449565426433657963506616393500806279826031297872123518385439959282460397202601785391894118630634738670846561898651330915758898255952359885785324031735236018044148297210273183767458344690019435558061630165168238799179923644502774583485280032618644639248886135991285869519066491737815861335086082895620248679652918640733912034832191520698568994975522072746859367517529829434463169493041385549727094287262635919064267257760280459029182033665039315248666365972555732476801693505760527607843018487996357701159521299569362539343857769165799535964664400027753420797640068311170245076573604115362632142900637024571367155916606825458724794164184230111387359758307146847280034622611361965547302680446599581995175098520546107953325475831035994754170216011084392489460193931411812745215433755399744392276396113531304343820668095765714195255952469239135130825287138840611459467864236159364054407848525975045350665151630795952277111103574716886686255080996992736542125587134376581845487105859446702152831213562104453178498765620392873514992924690368278477777594812862370561660705419517620830945430644426196322582279818410613364266301968029975353010111285045619065830077890266134488264418325592923289236652360165309728397206753289787787590546548273650799615162756445675807448922504302943823547319816481918533805122046530749202214303786102814563916939919061474638216574288457565249959469781231771976571377071563395298196791153671996621847377419973600097683980523907622620063141507572614754563439411641244174795717561630407703500990923147172257895804446307255879526698671500008722587392637935121347721876447617968393725606185547672009281660528954812702922326786982753672200173187818341164552480926706170488614774613935443430292703632392173046055298274216058777580014117692023454795217135286209276591663474105513457490561646719626970749076591026701921653946056751567762782186435685936186333538022095207229672657753227260772973195687787289858341368407011184599301539553831452311963774580393611401033952522835757741374394657448050588788045446136243451079830961629317829018849959334225381207907211015108288524195077083479702554183471895400659763544127455754511009495249237357242284433712426058269930584448736961995384484859972480254412425950845339696464719695224838829682928274955317952692909039092173924318320622628691692335643858373553713200429780318531769103741978478755156858756630326617045403288253118615218932550896294889561200903589318675762715982993410484825162902792605061192674490205936998204594543582143283190847796522096111247096050873820295004423829765174777902175245285038051988006401392570415430234080672509095973760399013050373418318496400972924957104266399519523823679407479987043003533586781333079397733267368073818855797464962631179121541152498269987254266236536920068646552011775175673531674249532080500343222857568092013513159197914501619002148058649803860974132867881739542274894292392146533132411435792239088624889491201280090360566731727206231610601453620599459201521014070799424146961338043281028953204711637099613891783557466723797500182041852270599703917923083012951878679370542295842901513676273862153278283079672757560040841465575276301545680354707276581686019044399960795554242385317031637230807690932784552565546948607055659536677303725205868301045466557410914735979073246652770623016166763481634992201161461994458753119886666758555278095595162660952173034016757130485115418708649658516216126854711175440382974415165256604867895012271610259302036856596241240528879886679540206578939131644980803872154560253949874588166518992485082209588430596328951911190889514727803895070749889924975978657545317965787534852988376793136331579068528492621445045423173985630744412291970622949311832689003676962882652938184876071699712924543247471623302570108426258292101892344719081357006167635140162993686613447884523366863725694146291339255432821814047282517586198343885790088937312300927056167337901678649333813195837247931073528853218989464756020930693219939801390197438051226458839270050606807591675590092582856890536325896537927125092101367184463701864397784098242069993176064886110911283194580727947692194593085760951318677857253833362212889006105106106843890424363516583137384297561583696784296315341891334793127693306045182652967926633423110471793983129231334526407931491320881111864778511898864631307628925905466633082825022167792741201717105892767093059306523721079921761739588443129269273090722912882108741482562472401968287542122401647217553669774072759197021423129697093380041957047302530073593657843983645468627617903753787888904383605565527110854902690182091177513045000290431851761761112546891856028500244499972485260281772182542460911860909653331630312151601217489016360369345807221821313597636599586694651780620489494610499193405289234122549349169514527777509806243269004771889307421800461334471833402425092302417431622922647946634227618521215564128060964713692018064010483374540512183812605498422441020276271304793827247556171682032233338017676892543738581866065580485732205817034771741573504061826674672495583245727314095872447480613369809891891559588166314785779191070697254895132710185180234226797685528112662501996119315826483644191172727655745129954000862601360224793721568255791805937771534966206015098997739604318331714150219031512324714537408103420933687836069822270100566568507963352080175353535091406117697258423834303049850558555962127141422435587077619833519204563275400227073073228559349511976487787515637642630560547938991269554178282948538960188899533854566275129906133551079083411956270320438187465458889338389428607884004395919189853057716499709858475797248022983350210933748488995169906701958917970402643971923897188825672941983393528591107551521070701614594839613718811039528095794349631898540819083602805366192429363966311459350972564763015208880678615248572980338961957420486396928865035888286334140473402909717686105828044196370869470488840030441381619246537126243408209617826584529466735601553189916595678081720608128247418975691965413605536809917438011846916816515704862153162791711811927005413968397846760429286945812087185984392062023713418785978998887389203295554690969266052929782781591587853080478312891088016627407748566540651966935144153408423713841408029027873807028606084902761576691481080178468584051039583936453195310499387465538933992748819672640743085733376028231397478577252698013036851693800231626950128253665258900225987942154543662384462820707259921827234709213119253656959932482240996771194879059073248121717452683679616716830723724412936202725736559691436561162280534757005681680499842908275565772973912205699420895539418570378978353443612788589155327707668510936954570802671858641398824342641385339204809405322070238071492401848223792746282896556758981824768101215067370543867707626320516999754770139445059990260166000219464016741281906571464336872893827025554764869016651678099951848011667817780841861502616311974268408355550024010649177169551995353653589504614718288456673639207551436195033546176905613627803501156712526499089884731157389340058760472335883033432704183964273338469648878804745126330761674563170620513702757465833201862246907034394152725181678510302922308985388120695102513653118383153662397941873043288365258406421490899956321167535803497323778455496352493319225980337654276824748510656963504493112119547419384892586589842092351864649597212135197510477823538334875766336584963215351068041216911633427274677777964927015574873150147072627560662652448402658572314497546709756241362672765448249737758298902073428813025498314351250467856025276767450279846706232275332837346103063161907756636216871410149395666525714613234879837198677246894973443443422554162185048515008939973687549073728307245993912609673757089523408953630373163083758922566300002952062429002240648539553248916780714595270998157912836054796318834135565810298000970834826259638479112040841960456893632991050930313307424226157844761297085041634589610977935979227089067158026375003302007513458682880232293233437003155982415735110466382280560957622289836413191908430129195809721849627215830047079880103961476471780884693276942483209372560756473638112449824941698162984896391684586761664156473825797023548764847541007563866477810255413788225537836212458169078096231751968263838812738483994466446277346785513900535824775660193560110635594152693311230664035027934506274681757831206494214655288425209739610540312419709743415473100232397126017721053767876529829314894416347105354734762356082228649712611649480268312949279749571987898682883860248848069324465286909189434090528717188476366409394607168914620018734386808193839316363473563598971870081126378446593806952371034300537377766396336067188318149370027609618417177662880655813524045145068660239693187930654014282247119582392666731901984751296604429242881424625661884848420208837349130848826379129110696209520368869914404233524590157725787647172654585762415440384522357958655219658736310610370748229408343213753366228163274266622588010357860959000595044961866592823406543166100614006353579674796495221711049309975731056810336095673485830142442784591854699176688676193064814913444713254346959724678973295564349779785856844085558203803262213858379580843098646922793437527021486552465262942987510785828213961209568580862140013880204141030677336292618589138767841544191993719000642401522451423261879440377297134706376708946079639194579700131109073680912681814624838349487165735409616003187463186754608798307403465153805230280597308085649781662929566184697085320712336064660405032161994818671269499158398822420779987786107481011504142918719794086846040750500194297055065159763120110118528153294356011705714766535254090721856750344305157775344667035444024731492318873000225872518139789320908628601902996827016684290654802481655041092631401201900080442962288408713174949886331784058740928838212974265494981741876907984322960591415125214516710382190643202435209751440234777933443920345537246845895086423517934044252602741625968199708914450684519064088748436619621113945925176957841763941135146266826614009770077574808879698931305877256369261310180872945665915197566962235162560852701768197851714895244460796065783878664403894324216394888415689409954976854497070555199741639269524778551657768598972761346454952766402143856953901105582176860619676667522781895397367145480557172664397420158679433176232095731369130811564835375344105673656231828108232856018941628374723689900230097627340430092782398953716268584577108742691102394985460511588568744588335981738608165329276939128850885576874870793157018204341509614422438611643317349404510179495916265973531166496414214808567073757786310732498063393242304422245129878477549241398355877593595259142626689523435306834590036213044652415321429138819310592803444712536763760939010103667165094207117522967513695562900715397144389862994578075607449626095679477847874760032858941296691599191873504093466683879299199942315653098193735918556630574830934969604052403311488843127864726259245189920996944338606905976333165288981472537483850639291132683249517068640739836898533019665576008233940916901500931291668601711533548238501999734168685519217740990148664425326533388794160040546415206946960543188360213762083188613636117141813879541667407611342971421470422067274091819518586943593583203779052315137012065240713639650243229182656571754466272985752327114803841167315938288115189535960272071318683915868847485734790961950774555327755804391952338930753884988217292423711482304080168685986585900727833078964908498088901319244867780345133142659472854559691544364293399184169876685430099539604998397019557853338930137039910030010727778211662859406931958942340233388034376186058886034844146630448172500421761006111205173808106325803333391190639204367473712330033846767116853320790241928407637045936294359037213173301303504810523695456242540644209596816036825327055210420270610770298345327360486088089919428707983156748990855093291714127413436157314738925528832634316374569522253174510193584327005282381499734437775168096095590042239816878211204536592469586292201030215346016150291556071258356359803047394959870577357795040188747030950744841874611846415291285267578544128857044530769159791486879469126186932369986289161343661316109067069168883102550548959412103750125498436547005315536057924433477040526922863960372214959067306129388325138522828006790937503677441319036851150540159654173167845893526227179173668255404351767247380209376050961706430206576563331287406365211315286051220785138089509165463986496448754727278310704401952738465765629473582052413701644257704160963339894957108664585890590469568098768804331594620078462298166344368628397313194859444078376527033196596713419607120961864890918136246047682383309318128364974384654386222366206880843055391419232124906741254386425370436628878478977546072103774335365307371007630859863367325258446898476862959247056450525898636688176555335503158815509533995712679821265736219955593964180286393146385129170488015978835972724296553323857539333539081857807284567353226994065707957821827999382532163743744148383455870229851672147792293960770659479838894535932699335405459889933578447787589127905519693326426952039143430685303446746263551974951845299065843309175835173107146996901053162282770937656432477360896718969692004940526687530921355868666736447934751723104489933729622731065228803840119460119578399754402572919931139565412113713270209750388963984185990891318516912092789249084578776429659894830476659442364108889766722462026025076107971171467583164331020064006871175643318441420790996327037966783790842314224466411848202757373639058458761004352795754285483878073241527617515025921857391308956230539349331960131941426243130050924972971231171278536091184046211903186470673620865847721827129038774326139417846340794678613532769220639867234919779670444847525021995874276360673138057998000610088698031417022039276765840296367933571171186653539029667121524808974967754057720619880986427586052948918047512296704502723663618043327074703831148362099041695732337700334132865665781290528166134828084056885854138369503225387822737508937199573234578290453523415468387348054054814549864338811385996062548240472713478559307875101564827919168852894617068599694867446037762866375550303208593509400964335640635789593093385249876008817994143144044256586149958632332577547198529559519742715194743461670646643354345293506542769850725990318970986918254582564361104116457433694190630386572558987810837654017662730543966883594644236459303229193715661763834597160537033265307380629182925609650968556843165194602340892629269048572987936717874760548978405854571392336323505657599330332543471733913852763112330101133736193501756724945313831577330232801585207808853875565569692233261326361554038712007832837412707485205608406671474612715627265094366451974700876614712728460615863332762857152520745458175880841800846454428146154410599471952613093805240201438334211240568364198793924294945161954234695054350885535662016605964226887005602735932167324183774751392271849769881201323068377607385436396843552935438219407340314312975449510118614930656710477055595718049473616476909574115674331647841490359363614041459355990345992714033491907633763113936606103625135551524468862948297841427267904067034132222369867097870356634491930988466804399259065496012550738892452243981172913891150656607406457156143942217262037127865897145066945304843286756838660349069601682943270497816340078571878610158726201078089064358933657491224764057467688278076100416063047404516365271652479975011900478288393527275682541916827243163017561356606039694552291836817535566281668268440984497266735201475211982183602712416943080511968107999587236103883321020488150886481129142224687095014743945166296244180810344971357909864760881941047108585401984355538265682422458572073655828868860992763464013732034157288116753064696074070395055040788882749826603907299599031519179436448764071682801538813982351803921559703465848151158291855224200767522201881361803197988449983499702101387948534300745007615976931160732708646529282909175243095958365208918086774228835953872312027817589339886049415057389455354659699051201461880669965012171164000402550073908459145444699886492255585597421511232261434527472224173335596622767881540894506490510923234354726173143264380172337903485142825614744070313546041112939350707520562777917468069849425302883680670031617525402858998835400565774644150431501557551425437888330536756080045092610862164312958635053547258070841874718746282306486105061390702630161930313078129676225823121172346150849461477252387265044905619303507415241625725026331098387219321753028252964776782984527368128644960316160330661130038147808293915146879685283944127873132387975963970844522252275598059924074281861254515404951457142010682025042338038354219877694464505124853166428681460724810177233834465779465998021856022402966482323683982612936753034638888248248029067076084306143402802536497062270545759212260047713950513342582706346475203912556271940565645545824439656059442262774214829474874736381607297304554142106286287590117051204161222414292224424780369942186911346694389705522076827058291355204169459809166429103571023115371710721652583768231017050385185968368453954430596476744766746252351143273832709564680297006686182137634739623420384141555894116687917615305689850834812208397350331461622582190607804794530417642842506555233836908796820410378841722166619342633882915961991768047752138182247622675872013281057415412483034021435422843773031913457511721754672652614140821740814737656230753495869444170937179155516279349287889937632289516693934592616371931465256188305505417717510266573712049945893391487741973721156388281940375404706388603561981181441978487791458744491875488243713411918709537380904731291708891552725076309110496884251628494630050087937278104669229594527124732130009312874591930523950788704699002824311291597043734929708334694199590247191527228348989074509512872631635962439570134373438206201895047088088076330056696423427118988058739632577125372704990188002676880892889127202209847649243278022414620769334371948230331763589228888034698192106119993165936560007188830892248303655228003900567871284499194094514740185954489720170773400036893778450061816696274681913722022206524339875078550724454898417012008118035524432133610974585711261758006731149618058023475499402276087868743329453067808010027421522315625430164590699415400368738714732166761329410230038173138167947763873000398049497597752751270236500031761773980649235431282130059911132545782451559331250938685437622576571775355500958876438797508251648253386410670603539083178067438095156917198082020307275754199563331071963938739196652506066065990058878864299429900716792988293003003063679861952969232997185021352629148376110747555387427642765593977031219597331791265480282980020328421304113819899599595099588289540674475119426442730434173183256477971397032342828034641872928089678696356950917729365659545977004077615096813065953083536059986238318574279889750081015736738689775937485112387338999022171767602831224389088346242219054997392234479734031448988159280575242249970749782617357883144711668166818112244663519609348277338928914575312367428795737063138112543557677041928089903576096538324759639028225524761436870599795710847850176395883133383524308215278245399702622224600125142104647337188423910979770100858349048678847410041010008393101999877774033145283531118316197905617159629244920983714516489700500926301222869285803047732685834806847314383746315801503044306642956430766866139567899958241152943722037125790072069438292967026716741918484036680721382966923395874551715855080259224132024775281383519729743641168239607671583880158520859603773918270178869499998240506157623284220032246427372593052157293074863076178797938559204281870000899275588099412058330177450716157131193232343281415483464920580602406517917148816993605626741895860885331228615241070276532192493825397747798301537647660974783168473126904170471608504457007327990534028455757035213513258167032320958867658340951123632296221204633148404258189224198564461633428017912363352420747466612711683054349620329340382459354087348518361703336596754920491115340760116287613979149714793793534027223396623114510190343448391455802751233072192014026313717532815302738529372019398927245314661003189469236927449191562738112031381020802741762502162646864636766691153241308032174221444341822346626199472093162719522860906276960031391636715203585340012505666659276892112683233935971081504412152738511232158277791047576964769124518740284659999147402692294951867193004936951688929608005030569866014064291535135796998757986603779184428882819079654623114661798544105365020409776744989009603814361132867700494421139665545039944249901556171816014754907678419190448659175678963643258851829914029283340314367691284514876630655151112077140487107891602415469982341561909419199955117576019019509332594744498202329720234017854451360324780158673782663083588324344356600322550667547368941261245498027461355183337113374671366939352593448854013222873332176677409055727757542535985468866784506416010221003948114843120796808064362253299093311330361069612411020788740057744259004219097227651678718379293612569586308767844352420582640810291670818897908159995879864789721655815884872794692662238402588374609652370867922979045993562629647042010167000089343369395289061607875619023813095719171595939636619329391371029444400750922549501166605477543751476194027065835451765206873933054884461122764094486372298124737350216638163496071233638841240164057248923600435734520227157580882204852462835698816506401514263759654297207743900022724158889503004159082333198204770848310016715648851449037296259097177211376746314210076538999171936424977434545575686373736804156940263940417322848239684459335252272833418745340795914910819491804254259921589583172377736522109684347764081894338485511800940727100113482440702427686454801089067933316894956198296904803704181845406625710554590196980178814623399104632478128587617389542788229003745682845981311160328816874672836766884981491077148759547355873445356949089991022338358448992631888488593313772805734481564047248118684841340632377740649728874889545032698174503372962825269959175025254506301723089188387400310564088902139110911610798860095516276979179225675193608085027107805666551528311447804164033383553618327783609052604764230277560172448351473431372282849173900727744117620457489237271300162338632511271272956091196360141945640442338034823324146392167432628014688359402470024555132187046552935039402404994886796034533795141970002801973316654538937386094928308332651671410546178469484360838526019832739176965126157919975927008078968754296624140419496170158477829181585660874108949598853714903730836551704182473543836392305413743685618218150645136277385021757744826542342645944756930642644592876348079825961199452035042122960027988935527655858803586462788862551546639370731886608058607053517805323360721807412325921777993378701199887106159202966411764352163982565074111284313165448980281616548096993034122364881425208883890243992213378953142676103054165548685189363629184474443139183233541284313956354770757191725585338754444246425689916883032454605450683166093875222048952171607608704321262780598729101156673129756033576530377959957723673216916645605898407286358371529162805944103809098628166221991423123688186991083323120125320186388235611528602046980059121213341162384693918680375118365882585985894098509672246307554388412978764544040926349115153591383564524025187475412196352561427763403924811313179415324468607257303288113197564697944294119706390863718806355426308640352640803580488420865500258801141309840940384725856140105916587424566765401422559645646129637130454425937619821540527411959482084427597227748215823715478991477266609811854972191024778901133867929933471973125105631360162446863748112632232918446813333604418219205748188257588005893199847660182538585831712682876065825851904107928685416978617745801744663427611446154576476544108413205950802090260831830803327767507245070936991706027103008331979787760042739104743927815275870289677847724748363005612338859499193955832721244454948295595880434566537370562393996980482453183439632993786893609374450021097931096087618907831354280193212313138771335249726694484544638330528103969124841100786454416871732691870167053959450661944263677653676688399362795375379067990638795101697553022557845391413266318025198927404333119051099592948779978529292796609900272785156383848311484019895518066308848069388215537605868240331928315374186239499629561609357084817376285663778301830902842723973011818173832571207553828576925471619898890316378505094261800365588925457323109773224576457319324073310335849283109460690579810500075222367667410278018392059514631422428953575356508769350921599464264402959513291648398930619009810714023168207442849922357674193945032887434439530201786488059666482659168908125819362529479187550433657204331942668321742368961077373769837095437671980841066133515219176958609799528188428600407230473668152434006874319145326296451103106005329373482656809175722178685799529159626308746962187303332109173324536554192470993769250877176176479076431744485421183419659692600034368701147501592106282768191472170541611158164570143469564026697375581000713287781706932139612224440113196813486737567157287515272674060799882464053678335651145655717919249488735945669828594819461774042252095867290631058330074226237147420605963920004510163597320598261871176845450880552084807503957684979391662899784890435399189271900668009223209726363374830715475350693125626396774888772353301084886939410107215459061676548277098618205206182604681819897273472104839346079396158856495970675512928228612880305795460338414024237247258722658878459195563201641636000960842131574422079941423498090782304500721754451799282358245343317695549254884294167288792775817091843168195466853139206838523706994598472787442991187362504156794514850440529955728387034285389291014342217240719574506788197874314203157816999520997597972242064638641292531583129000224959341138943939065894313449929647280695572027479362063756920274193808461284037095097144255059113206498482452646340266027349177352335134872913333520474847568144741090946488156205782626020830346244475321845637966884139807307715211718932225270620538106892060900946348885449994806298702974575437088230070000853763280865180918497080745153983170047810601130024122084305531251983047500747617300957829912511978067262732632320081149003855841157836222682101856517728374955074192180992956925817809311756789376461175656920022331192739814451849741427084814962867377358326995620367880074738054283560472770818261190114051181730332152128174191896980285914916023212541655140350939606894129181166380280313098496298538731261448635649435430071387397375119468312121970355386837421751712900680572328439835672923882411473930287723114766240855454092334476978101727418920274929493579059998179528875903811766303134148475653654515564554210291259005022585517204891319693426185420431412096980656124524037472208362603779006172210229362125659502244223423780861495225150918134812369270911709710250870435899705209996872492069190478156889358099195701481806079681762582081894277605772441319403009393238757871187665070058103790009116366535552170551061359319751920347945815027578087121817357265775835031795808694639691319704359032120682551734829827457488799723251173987727203509399180309090386329217479269575696508202908263093654702152040219870473525850903709708313443369712404582243877364673322835087008456417894208986968612482265671262681485836722103279700054478169098758216844784335767735595505615635968455041764410296614074966745215537368978181317363568453227396997506706090483048532687267206160754660535023795765299602009800160278834142130667538611041316144070127950259486835190607874537111806325675866843875456593671616118929794213472628067054475736853768800382743779980432287936123244998199019826478655321997647387961515613947597935645535872835050472989462685480326210413108963794441161338688912991940229883870203124174314285859610566803526487110391753169027997036630184134076645947428839523586242838011559662478752397089585641476186284217794751532594171749716942090456908535625590374645939031106642824795231268720628500592201626811245879836704047756151428703418693789684696694468839164084785954715568122346532723975167155385763364853002246671985274882716192757367742285885147163447606796959819745214781779245310567630458991518201507506022977488081691438156013686728665190090689413447571394708306921455060412749003720870611120722303613224418744735503614460779269908075719156039322919166675675451294815584120805649480900130512996654930122343609877764876857466790511916149706753793902879528823991876878594339779112809994670634949657880722493877028547766333578768791683221920895305736657446564985105565547681404605283827673077341975726783042245847249182790564813995475373558298787100672594192403872483865793115422764573875954396188215353250612655075456606654711774740054115751514899942083201127763248281335366313300738378736529791786569248134715342357249018769124668651586356863794478939994492318541900419574951766750578555115182501204243333728911613427331538642913105024851685982829166344716872042337316179187450628558488040498449823361462399212985566320337643906629637282909761743252397846670835138781882751252747866685851424326586821464557159894254712694727247426349619396712778033992694730244262078933474897864183611985525621232066842670289931260731500555090678822301069271969341587145704952062633936347511328070744904544234569182500625312265911496468450621724213192107319227044224992754868819009835517813888836838040835750218818076190006529140218831916655486711672384458078860578082395970345470836111673941138724397394746280380153260754538544490833633131902425967540542143182556140041507350324525545802494833457020743713135943813936071836316467402632012086812508655594350672297632143933654245804229568536587481929088160434688914223747570939393289865701178945102612764188110371601687183171788664403686341551028332922801271714496960074146822750220962168413389928675708923298356816052527460361891981531782269755010591906885056719240880699080481675047785402875512689764600196191626483675985536196164780656706019590002709375498056627609367268671321128848300687957458575634242307619316040463950396138419616438078449345910312143127879955541085347014992055441589411620471935950494185155556728744750273205329080187049288276702924268525551964682848469508360847007415926697185558677787597245297116376639602181713152960739308657180520708360862932813161199034819779999169496730803164909971595203793350252832017832178161788778830469714841557662154917439697947315798081448522303730439909748890575900977279373528295524216384375885504618382091080132825433923061211495671428254063087677796836558516204307512315712927308779983967201200828726173757424478413192392215596124677686887295469114241051397354910142200378191876074497192912775752399039221892911741865023229025426159394932616088299450219768911680229043183648463643022119613779905178193210264481705399086623420216754963560108311603739362322979965108683172276403895754586784636011755955740750279415674865860700742654579301773108032313308552642286868710266821483718842064976167148656418955614379920698335753800524550482403882862993705288331364576973821800034735791280104561787786695696923008873614330959941728402007299846050448850226053033615492554311100452039699306232944312124078063159214431549356073096501941596487389275358832123274724792403817666605780344842844718239064096948340515859582568733493228334790202299917622078343306305139365688307867113345703541129502141597613004974855166663319879331517894669600675525652343448712204170087520078804566752900227209001496721473375224223213190248924794648442267621182017102897633699030737775147141196294549035788141684091943273073125739029147841780022015622245718365568709468733405605752883061085977510955550200470739482513144896688344001802105143643371752581443041244962353190114543403790649933676199514036437522429021828386133127378234813909281783547429550644815192753298679454526581263216607409844936916327062111488850780502433646924675887223655449219256653280184070671538741581496539139793702713588609515051589898422912672681615092759332477029145219493355537276202277729859555983374647684789148949704627271263108397673919583513239631106587231748297982927847031431081680354776369887546733014576273604280891881571752779671458877456745797816855491646935913907964911556038209645255482710527739632760209425142956797385039625509737405593933430300846787798540239157016616522920794203543566904168800292743865468824847328264050606741621817977101239020591817235784291749061173276411525069730451809444921151513992639353205744220609635972256482981467070712108293449082451909564176535266472926711153485787852558299511700476637055608729287597974006792320635872537012027067024310476890581080760472091214562200907806294542789667622236638097306291471146825401441598660548190216953559384313921900256898399420694225758887587139749360577698006521576255855234099239375642422984638982931774839017674724480997691966193219126731392920698562841824809318638458822728515679009870892448500061380810940297303149193086269657387023042950571457236918069107231260824676686006043086930954177646128108194454854964871131433324473128819249254833482486333658908669978341433036236076965374964933963110774274723154485094168218858967330282257605450216095513135128142040894373366546765379886855144821317744044715552150401444937005267494569179090501439656162567956960399634996043655320435820708074642189124340784022537625360683559378527924002795336544774522480697401419726193524616891003836184628786602388804288303617068910295137247466335869267078177685518985994986359592510637857803195935602300219229633558866837381674851411065942741802228527157134227806645864650735610405269292030578379702343698138883171436812367581950887140187134933597140369138432195017532281848152225237628259104194986675716690086178758716463301178059663676309631633893891796316311995426321122769374236522558006613069831879799840407884594998239691222989091553929292746331009913360267454635910323484746017710969927446630013960732750926729647488535562486001771785751820284994336730495847892219717427344203050981780342753256195214202300627076912541627291239396366269821075992014555351964172096577245613793461245063302687163974065671192213212876278777745284912938784059247665076314325631667914026818613690489901918333284438140154333478555653600259436068556025448000382666571882832607376749810465302767749141889306897698141710788187561424977086808198216647526120146034484347381673551493990198615058911069974530081119204511767916478522573146874933955904681908720792446411479915617100200035699173059119873235518766511200101460557808152216165662268306626917023160297219511635949942277127509394199450086158137864340166896243066180109687508651265190880828600805246401032314133833028025323466937808812575835134471082596330733677701489672608949521326158387423462960144424812769275642850275900002565889522040624387684012360639777389954797173379829317292572796277907080181935724159017847504963613890154237371825657762271688995118133846600667033225530200626607442300448251083037992445966625561038266794930488090517315168083259789463972957485346172157988066278106903473351502274113234131997705103922350183760751021903316506800203585456050887117739554992927075916854467203649683019688217401012777967514088876416054092749647720307005031753990707977400817844920877030719734161346513474651174400125394445951954618813816180039529860993841767549161577296868466883751410840860286191878777728175214564712489129133977700348980293306292541762829744337789354866670291887717242034313070388721881995193377506189463228716587850521382446818273690803237489142889332398496334491026775192963689266560213273522543231460697987414215705874240148298231674883670926645575689546625564827164298088440193182942635506178229016289260425549949398550838160464093446438536040787515223113945833186713195474652347015493512214458385321631768366979671626291961582537278787250681956918624668794708516055310248541384498108916874152287307187528261251027342065100050665611383905172352560912354917674123429839931728292039894196520236321909600549974839812542163038246743163579635516990708649688662211792792314740808293578595700351767310757475573238846158445062869900722670652140677514482519703964015411120708871220407671548422001903558181149152350602808625226068126660108131003391346115937893149962158562028437156032837742876143791086565427288659259438408133876183339085498523603898405589423411019794468366661311672425639792545368926519144938428978411109713688575110818645127318794336793201645571656182621724976400421308129865420111530151749746634631001160104384543741661243160768745869320261334358015820116191240641369771633930832462887066824465834275270670694822179969033810706608146416687797707516372620798051819045925386946409721313958076406137732683056385272657612164151331707876804946527997497395871878994440363847011641773150221418221496284957004284420000860246585303342338954191089905194027281279609599024089063628944056844647890668324828574526394854142389057376093421264141207123530881249162886984919473854605054493409758953672194755594275913210727354898486528274266365164030494820552862877216950675376819972398937263295726165365046808066703747059962934513555129163205242836157880338177220908593307768093951943849129871134801462090354303016801440367656161288212536872527271457997463049583937168960583590191137794848803172350449062975506475842269271178147106760983842205470171027032945615833671562222403755883135012087024878450630771732055987641006751176673063783421598615773412747878319890572069625560701157200545680120729129691259424311389931881996057695995832457236427601556307842785456863859517902253921303299504244904471439151812424363024325403405682536466876825976719401927449997465690937430190743076680101364890401740313766242779748166755623705663465361345967676863997926727029985554924810609552979020362367348501150583299097062227192209498154194805295599275104094449221989017737516840656770592177983856037144638296147196918969345671038875740642157272691526639505223110601937926040288735744942222571488124573493942398490869311498096959165770061120234671502092794509241975526339916061546780967995196590103450049672624184688780504600750457416757449023549444071316453878056516864891492472202861844350612603393952375104762015582970599700837012674560116045542747740649250468280390050078788343795719102978426820697286864799649290392454046663860275618964115349480439810634283647197575563918229044359125949584735643463441703003872512024802561127901078189917972095461821826413249894606311355205756073458166985296356778211219867240042905561946069819505796120894416276020962469647959699249670718162140595817438549545552970378812762256433189531321040525375274568051757870408491073692931596588351394313244864445048339324523579095263523197169233324588403752565527923076679330439699392822515683530824349266583483536126997254859727229383525602728280144390940882467737407746357336503870087474001589704588200622964962352933528435986804306860513791239850704499974418188729174276141047470772618368794649005647818870423002070021179879204465649811663747421173494693141581242314082637316970499535490797028755389959678106970678614411506773201022766802628983651230859811914929594769152208413262541774634407128659757131303761198115849605707171792201051826214679015919173366791884172357730155297692635473398905477917975920958500381938117663849800383065840089312940771857953719469088157450747894854932877201917850211276837662068846830301136758093343266003611243363926876048487119732077002966985327940003151518245436228045493830531967685088950642104989025426584998847285274416264612979731442082460409776442808187794399215026828630970318596686664776621673667165432634569340399747268179848702281024004047136707274036979945978269428089025491415222709606482438378458024100868994770725281072970226192065254448608317170885925858769490110285888355570620643515551513926486667394236140864596138561652384952409667099346104851858752822577222159217046244771359682265965919145830721544479986563711564463109778501236998862620416959778381216300432867258104653196577099343872856041580579481552129563921177006130212063584461853076233155634615038730931710704117470563662214855078924831680033750739632923755092283803491650117300945770946083111639410418503426198467939750819361177122934618983730388903272639874687213925539252334617667066307397190345443785797106200625200642644886416976140514097551526044405796950936485252428912383367112263153767330116545804278299593266177147379442118710772203364090208458866553744566347201863657236138778538855101853879882008710775715923018132667324974260275632801705376405830916797112969150821103255186169645330537243998812945270433814658541393162661751556133752541242382150032876579009803129886726166731611236162003879044737114857286651565968089272540993192961937918558878979608580809986105324597654675610421558866687814739830243481094420593039684428287482704579962043916455636236333792528058032549161564549544097502745413924514560743214270286332592275718734761361931698388361220316922156364599027703643728474631615506784477776604254694144136171735631732822369966991061889187242496197738947570184291683375391443888583185422907713742100136151584800537977971674186681923091962376007743822795732226409989736368834513640492601381200843673988715756809285136270593093391580966445541150517189194491285042476784141438224641935776434986452437135560546768482520764891582052764284700416484963729440221889786001317801495774462741374350351831501556417398736215145349266387196082996628085196217498630055671622267020086049913190956195563095632682132849556113638126386103631177767286883980062933446870496033188197843183443007754026004039780104262464911336006799567095667430995990340526898279983956305582453820072824923886821629393097637697645400931093568126500476291861583820649246430840802226030336636267561750147910466143330860819539031805743042908144931353099800390435978765597218843669349238559944444799254753796120346961424073492197104904075603105833230839572832320881308878652965852781698101570154071029912840518636257296854374290443951938111542816759967969232839806366592366335505611340701831112367302549650150800369282806054674548274916438965797890883058195243652757950930754396953360361552975489592439853657455833857741491478156984414244487285283893312066087076430165294597192931458163730281038800778968066220210470536941014347190637783721218878378850367900836293546078635751499311870092105397913328884362084347824746486130482912550084513214881570809610783935050840587466212741628484009039733036553328669967430205968782858185017238187655629014091502476544196946889334616680480857184916284144373260090582960525376607698742132490105119219957333704811206979152766434341787476807582304139421332570383130050486415010336454857455871977466843501356448546001216227709928314826885577786954249886594306740180849752958975066421570664412023090012896657244210335132871628120015730697089480492596703095787886144664944722545036249155113366736468184450764862291443000124510449059688522894386644484542429735775391548414016317950065104573622329916409300935041309058919904974926147071334654078556424054902344318215273921974677564090634251473317470424723638664382493458964534124505625714757926374458434541359559148967137420709433134880552565489421342876760219278873192352325360215837893020238132082235397501097092411387219590611124377288527924046453652165310391874769422450747187439690859189543976927700569035975644781274768018021102635381307177145809365233094454144469067808622468678400479587800619933966488679366899385215785863697184496463311229022875703697536426508491923062050816940565272606478758668846774610523790539232619776352032304565769332025672063967497614863318113221928301122805718554401445071798103279391456520127121829846626288278216098659555347009208386639892284477269387731852416024819240423064105098381640405032155388538608080302304957126698249171681305563782020481883774409088023117834329281491674175798409282092131373955299406010018004299520706478686020894540413759364139249137514343063689406702813757895147588180921896532082118703176273194543617872626200541537109813874945955453156306110786452344497018554194178510755283391475768179022627486711029880625131547073075229241821627642090760598291714036020492284759194044241831871882118012212698945164762855846607563117725821840657554981018391755342290611765409202999518413581582897606370742435623284605842066697420572542505719783532090856385635491428703027212944279323166231230116734050397279759016992213956274718795697880484356028815806454132449582701880485156642817773846345852723481389420952158869533925034923736559149179234489590415602797241476416455570302840956557381535064040796095566225418276285263195173476394259503853035567660966662443517921362622624137450038368544156133880527187360333577410993978285880202771735279379898035977663029790939208056584837634555681932803558321993860632905560068602851547798937037707562403430984631327194379107709644316916589120174206894080476377586558123041867765191152912588410460953127505887096430526888944996190468641551188241911035881971109122940646226978944654646105617313366378114904802820183992977460697635243357582928680307033598319687979122303898456028863008071793271370768312747383135627360999434733352506412215530369673417267041853427351775265619875782671362246753356190272083154527550079690767951907861086487463064795444273826507567647413985951865651125296900677825625942456090804113603655891860922341833214698885312182571974571872860296111582530628314179056364360085490548084620015376799060552072997648552896708071704809564223568900146704665526277413033598482770073637421278765359777669863565961394839959138300779142356171468600410808990852796512287228202113585705305884049440567432152601272040865440130925687789594014901788533538265788230786162601304434008899585307237200392976594322542998689201865515544118023065453206108548622335933043978330169245763502193718033644248176774077692568362154372074571186134379716177519877751133898934331731908665586878097366115255592791872873808279674814219254320230718984959947797765242536744290645780985225783041467082678060444730531265258747149582452782230528260520063766110510996051508177463511903939761410152269143029850501545176245571292935382652084298872122640956264572370565452856052613028680177130525808200072708161683893382455104475860850675008091413148450582330307724364888703724419842749613283252002600555446618116025700431690207686036300617243770395059685548049579887190688278745794996449993174427245869739591187790804933237522245604224585752746762560291295109886299953264650134967682897701609146492360948484225863487207907229646647166574783787487240272296452392396038835470762345307331938347776140402077075171310932522852773363054926137219920682776100429668131232583746470035563529249834582885661179202351171218903501575037897367447681462797552701433791286222683513723780342400520837047637470582111351852445653444616642079271169518055583942732020047718172984368984085694878572410088495012419716864134174608575245039798574934609005585716807494046929245311247024803610193274924887002024488999351010039540568710721509092744329417977752895432508812616404970206729815171856111597104291727749224292225760238041618145772428950238534536688228711148162808435073671574275185370914311041383261355300320655302662435098460101905558664170935653766847790016161776252405360002486279984546261419838715883141557974433504514436869694695879543552615483023897017670198041132772804356887654724956515970521891588423816222403086248015810225937780128114692348230288258307015119279228922658730812720267328605300700960864678562132669858698843037925253842791190921135219748896764913352350729884209303874506518243307203723909496326694577848819342304829780143530416654030143223099902720029423564659249475160399836283094332316762152710630649602691085411809050139077806066555556586439351290925515850969813647743554480129876715657467137666725984558663771816039381414486352263324053436393198642532014781435352648517010895741653560215052858769315915423660369961167878013900029587316990833695526463767633004805065531965104831209437902186198458057131850606743550687344316235292647539425770113894499686967366014787066808823902139496993794868226798307156327274280244155204277304897736899052045849899430419914629961181652702934940898849695569687794682069039920581836888011291708980709404367755730360215564134323855080874792382631626720832812312279439362143505694583524826557032429490030625082120895075117277312369115047533275733940351385031662891352288559703381203584069542317640361419540025482440438737165528317648188705903235998512705702167226313023552842884715327595671077678740297792701274453497609695115843917237403929045789973659875133603533580435913699766862477049563212837659830603310851142634445205367787342865794206210342911871312013711829490344779088571782893765283173203779260153170737795488019757550906342937958278687436910933111567428736923880585931681451054264827854475943389787130210674168495530480592543743491747004773376260539587694036482897116424638826327670259735433716805876361045742222819901251547787088193645765562060056527411734634849608961328531189299096362656518693003232864960440916322211246745019970715684729065393693654655945018368666868043601380306309658464336959207585373935304638671349326540295888213793962181879369314428925292074983316890387303409439337381942328486945761019756799066176779764378219869504809074378628172649215048143411264972057400899349291610939831550369473612740130217238870541369045514939624469687913603321999526736290215121229688097924895267033821936340429716033912616965859429975119127985113288694431359005519467500287604531930532037445809200904407098678078710462146716014960603442359271396522893336004237976957078772497351245698891224795809617003168913008366681003379928216603714303389665414386671712932695111032078849879430572238420044602316898036178677988105497036214092471778688394907515741799111468380642206512904918953952751866159835084623745680008200016273839014355239096974892148963493744628103372781202342160567159778967242698882549230047300078071359162466409800303029930058727645741898451415881186367177703707911758099724481530017730384477096268788370702382796694661301682086614114738486832911825521125349399596393987401634303991647847008995210597033525803728380094437596854012495041576345999033513934609847461981339377332062062607503009923684951920179580153257070000405531525845857446354985966060371330586284602751041734902730184759905314089520887681854050879640986862346907904268243423799435941705037248463817723906702908983007559332292307233427177697111868179764161700214874938910269962996698822192926612162879415594725958625770714804283126830590360183946970597643396424305655599748935723970255088673810498067806122401843369628673428668892326197813877463024338258891804626981777438313824650095160783479794101077457222353439166735583667109054875806169025557291886631777566289112472568942863797058109451251863023557618085266686051460218451108728583580325372531505553121756464146389272337382739550317433707005480419558506694888547324108020223017833733020823926421405619857041775633925809437965177378926880227571010182944186015786378375783279848968333739131786121975687256197022203554471315962019693222461410849634558508397502675638423635214047656962007890463066684392028250208015189746898535597268536172476095148202350991008626806582227700310946484402066793623178842411152145173437010528554018563079653448837160455742247505444638597669853552436524234466586873039610793788358901363789402909836996399746616564768749488626707491511567771988873171669169206798993722809859092533673574203369887198749624121212707178897309158849900352549881451353680015598487116143144172400212676140154432307335319902639132327435737255284214443891359085765764359940813907878180318271621226404512810567987347785139276482903256540889044139054612316927743228624525024956621664477805488004633383149311625431075658535542392493471251663392361108357891657877580878770893429034398699967442436608790225223196886068449822633327320357482868577323706960219141436781282542228411493979992698811085662706053010785359812732582068283995731617307943909638758540699515031378120801045955293862433718044871313244611975596994023242514967822114649829936599432288994244018382089491508126931232080908670000654123248235186131441384516156424222896623281890445912034660996126103195139036223730589708068014861924107659692353982760900962972014971639793104931509679719946563993266107190685713673109411039584693831711854581985045081233404714958356844067881766468059418592196673765807963835570383174157614717938892034599555150934766426255044682698349248477280231971653129249018286697923694918418740921382766222480436139120202935602456859911072539721124321283006575658176733523031383170558817986340265968855945894906832956282977531094003315723684903309016012259036424018245432484132535426206154746857840664343787585427622356750739710839499270359351826486353769525439193028227648773248188165613730770946235279592604509061523610345131859806939393552016440847422833607374822213574332715884678162152536568976513777558500927161366672126628018237591762350658191098021440198330388998417682667439194842371418394439265592834788992116635529537621131251985089558780209478054740021350426615980816169350839937783981791117542009405553483791747286893230396957064035857182893169531184933168178356637620346659263094458669514153234985718276752739336307843133355106937349234183451509607952906158704446426570269192094367769089381130032321880129361188964709397265065383923561647587829503933855317738539318104374521162620337113987810967841084072592439599054797493136752419163465177937232376900437233903024477799427550927575317616464252993613636342600800401399815168005090543812455216386702971568068025986381321867850817173832821699531810898502756854667167955336704940497722412744650653077279223527460965766777282061832503260969335751095590786733150137298693750886081393496800766928072648291793618440876128614816559128278747485755859729612055512428357714381706967553592837106130580358675291950398579765826671683110477861928899940179108740138586310078614794773395139576854819347029004832944263959372570295511664954260938023915031572698147322030040026718344288390896036501654708851553218842581409847637266801977976256068537843154927464556340814156497350475389181422289476259045967132480218014303200820195023276917625054594245433559180524481693211824223473882843552812857042799773947215076935882549942698142264387497297056664299617328663520798096624392185596839643706589727030697729029179525099537702118849417154366513847355886247711199362462451874562698139961143702179403496739842571271353597479483860689075461016292905195461929028976806201062798772101418462481125298356777697251483800538998429355629284363425801818624795811140450638295482921413374966644208160854655715146987514548209878541655790429171741238321812569116917719779725953008616528243664597811107365211817945578178270087679511201546152260478691568016401940685399066138042685361476593987639535250871304025660759077107053184806670817077570154733620971428108638919461437424957361632854316465862267478284431896659492433714005831405126605936026426234179545001106168584960847272837589498340101892423280152115917460935531137415431632223610357231542321193148710301123226335117083877841838612836964923458597713590881528124148041415779605556075064070703886868630491251585970855997784703716967953095732580501278324999517546696686224530953878639391945406407151455972228006966006514033473848892806150589201265076224375614423655427410034256697528344550171164318693423716321712474826859115351314567769224461009415628401503924413447280617367114159220335851344139902000760875458072286689237572851219756209739286797231569730472356179567321361844775229390101692421750153591802665031639427627371415908505341337826887427732678593803346198281980497433075586427581087633388916613864771562802449746472480249401702733870209779477573792912539910361129530292858937005081163652180853162125298361650177289518113034818114004739301391782941977653712541891678491032246283620203868268036004527272124779854539918217061798006632398139348445637358541283627755250935074180417331802504275926158548075600178421787811781877510826389311512649071758948773376558313842257543602702396655948942723958588756265941755730621993703248545652123234930402833777173412912311925545328818264378629144479131132545125275470035521660105566013935962068655354463870844791077762298121419002698831509941112767664637477129416775400230710675719158818908271796411579295438857927825265135878222021733779546680070882103026708306949573746137661737774920429689027088983318811125413266068289172177590342809351622591744710606897680929750371608437353742940910214688101242790200577704919120808642212866584889453978058154628777180528489764401893855106851280974817998628613192964992556654148366116367320123072280518340919789355877908483822692052382016895695701065405275462271688572043211016345936035433856070878911221733100594518245302614632834001032550676591318856912793041312813029004213052371077971524771385603775726837521450832693797778687527686166421424953233338378207112569170752242978623288156617571131134933977289995910336142100328916642978199186042926634219531072573992134015621300614585726044150150220946446710907650042589355755657442344915273330660184615372347303153653467262971422641148083931021463674374140271733541457471064046911037544504022522403888845665606553824498279827138566240634384539171495009623593806565704067666206607072629142858624750014482890111864392599888509848325859024024047749440885704640336160029977001672673033767045257190025994586942494486863254371413131268787207934969205155215227910867537868842100664120342327087199940486315880052937887598311337480376182607098241278304517825833959936375087928006212337077591300465149739729711894698013909574563278663657201168313904907583119488938877053165156679418275690207879767082377249156189782415487130940439497703564629794649440955560177574343521996260097648260554574749587885505889082805793362564645317488957739131979410110580982358546484380112768695950677604854804770339821837978983711043429563732685215690261651395580319338135989915241155117428032708287237245370208441429359600816901966959237280349222743025050166798404638099182874621903711098610601004122961745161729702902325664816251513623704052560644508322432191639879406176875483171400769610120835012176033918748763515304488571670091975647649489330052014768527704278327381788612407065214606238798126045175904431035184375223622137559775304964535041463695020354067436171285198522707953455645780161146642637104995844131975170853785352176036208855647566184474721936953649251286293646388656636883189866988556773737472797734648628602806298409137039491752281618082044607442219571701541709784166239734461585253357108693583121029930023059480744272805548990514714895185715529026615897724929125047263883059269873338697047701103868817606373863523594662230783662581376770779389524600599679503815213454946421826200834243707615707709620785826991352528777063249316611766675647491203564955569931928460296200624052250643834962587194595953169516480235492112860983282546758084064826503430122902010385754870102203236913048285562288632210669422418450509454613207153496837361057479544838829683037978055103470869231940131662328514601528440794779394034703263970050941120205149521728756158647912396331514215688306899990852556267610320307359507786691329882141804836807475120835467680745798031244968122975761142218475301819846696731035584507133001123056199858768052599548138563869926186537748901048619755775827158248479635915598186416597613868707509719493094893760904198813273749113438710565177185050722321125607646500991176841380761359485727212802288071063897278939367776371823968565834555838217441160969666446259758521214530491058043992094060683777197010693691094282231276882828928838673164369379301048399198061464372758985794281188812997578908906402007511261473426639737490365076002999454942296038999889693120634103174732248343209685526181877585491982882473260280795599847747998375705737646274272193719624380032944144782488419957047567899249218250076764055104581478673982301472842365524131996015998731090159053465039148513790806159743225369765542771384296869433413390437713642985912136243866274876330643245159200346656712678751320569569802731491250941166987032177699311879547877999947476632686279676160594000007779543022819673375037995997288039549679812660698573121052401558483083195763949636289265746426755962579928780477415050419390138305072832511868842085706697989896528934178591890561589979326713719747802312952379590046855386482010146083853747308903374811398849168346485648148921428985786327474992987065974442261345401669875721098489849058116323237040655638627981990007596412343260424409288811295463700358108844742309091803518797136892726749521120097922238290897801033480251896559381442245887968381040733863299079307312681099585356426264878104308321205434324095529442056783312249923321837533153855272576874551143268438747992206319682255842615845830714729298224661810371876743007765686653931812907054914483110478418649161013990590086791404992788020686615967553509638000939200536651417400023361720679545951770393212890682863316327299853612331506979748003607956837268666958492585654985928595934923759164386160994843770290226211172662916369550960042944796858375905824091678374829751947465646776851662155537974431702797559311590497743627069238072687470352512637433732104901534786502160548096871879901322063340354623653816426937977464792038202308195353835924195595349091704853155248521681709459096685143986478841102197702537862958017408323207468556960646080613804548554819559066624723377305852797680161812994605129718892292713893049519456616987635546514288059815327890391972527689763847591340900012422043603423181532849646920028894780085787405547166144975719908050140527863165537314421944185024268636576286189024293310490333651617021770148250882731813224051000577191899049338461674108205961844323166496869691998625141118399527759917913345631880229458500681749231591655147542346008371745325136599371486213163185141190687207579108103066541200358565948467545102988902166729510181390650762640108679318344519462433474509075368343459646688400139473472825365124886208672657823293037244427168591217997859101029767641831247993992833276983393487632535652676844878626406894009006433936188164190362279672136131606935400837607808748660866988812238367011364216017153448505088530577035036630130521732056356681242490702102595204118835980875247043368446204831561662329583492001699169608055401474351547798478211124757134267805123528139061423140941800663983870279551109698290983803225356239722323487303815274942526751650314546308387320097552912820278595541909460341568654290674961301264561810410197935503602945125091409532166247415680248577676741675745114018675107357540383865295564290352015691548316155280137964710018527329810334874836694304009112874690489616102041395359891133976065787734288432889303667384854175506106112718012838361339359531772700844551692267769478167892253467009837363934470663574087478504653026122298861748199498918740256671640140675703551432060079834144829989283789077766336632198734196458970186478411030493874980993844870050058956710167396276788601184888641052354784568397641041303512801914419929558418806475661499194190587478651777181166799121033403586370379092325624234376901027063406475579759948879623400439993146419958308151659914640067357462782673698065963192539433147679021761063421919261130980898279046514729286302863068515954490730559731742213478475240832942718828017575867292294012861252379445715394842798139962504841197249425360390593227167585542317186467287000033046666236241058643428868023269620218302861038752464676616752692871835288372796893552450104173232412775633480070029228834570221990335228869370727677076721492447705951122551090675731230807560356697826763949128318194840626550194241273967091455518365106496292279871099133355702030179044426217075477956159923328785727733666337445889183212465068287318645512851354808260527889993649067439411531330527977141990893891546404355673662603317309211890868660779205860220051656649273965988899168660876618348434444322713325866721117733499317661783081341024089490824217523557923513951992363924339091587750278095207738745470586161056649605512954810744157038569083260023555949009985226141235402422029521949807727635403577705629321836714379603414044179067837115085844049512045181520561606319931093945397477144209327088206369044282712127909448570410992105154830069974462746928253082334503280230492221669141903267336504507754419263616415275907382610896424614092808371093332917411693670186708883523786144974754910047699278314119762535065975284549408135107950952826691356717605887651452864381620225050564096358212463724304903551670108896258471862835607469466269022630920634023352196604721964127845084621662186440259472140810134203756688109998211040863003859479791979718408518167483686356916750308105228285114540866613685486693064329447716691200397565279313831525336894679781652132713360575490850380369502662412098196601899171889857763039950346407172504645276769699898921945985486143525019462677187274692237600250044217568271130096775431186980853870215588210793577724119809654532081390291843863332624449487734501258644851326304998548637012903397302123444002591182191380378996363936087749620493670709698198853455680987068252455498848082421149797006952767396437089295015504767502972678253985422970618586537935666206149027380897362034701282270135401805118938818560987324438410103201470850828270062399405414083845956162782409455516433454825596563458723202431458959748777345108968224346092819990381746844636536247213088848561004235679647368264373742024506689687682409811615439059840020811581495401530224718023511503755131459397422055472438835134164242213763609077421633071008053382056044578074488665654657500998864857417746184258885331968378811324992010424488107853025986175226941273712059840353394555794720912732172809373066187504524629594513152228073252055334510977507661382893791997816865982713927375120268874964697543721134006665401863554959332498568762660035988623883381934836731944304896120535357357977036425104485392117789881629987714260890218135103267546338519831595804703762874219516405925391113153646392388421130716851049223890959942384396916394129805886750943121519281617337104275430170076459638441575153792205703593276527496850576656213451679017880515688086842241830362263250090440184405721993826762428005693810528635720624037559393306942598214834734041922976074949898694673587402799692099229077542701201050419507839608794821397430258356051060993723151488505701541140052286310793234870803945885293201070489435295877448489879589500397871058086925166629723898508500260128636064622612739094651773934849732986048747305443262807255359507425081066070814496960245395597255963674072212783563690971297089127706981357483660790099931981868638124489214759605241254695988573548966659595439941324819685260535221051588213714853729194467398865705888559505987630210249583311444069379623870083397060697912132596931355941887829310992263045972751130560055611510117894076240430000276059505928639773051285892844015364081063105395888755670534230515409542272695521520504731772674591992172594915349126114235434333307792038621526852387704206215756383080962215526345134874399726383608942419993109322218222852378079780734188694901667107038044793330389491814228373978934213498244794190579375432943691135793001867514251551980413800402544086435617710558582312172861118044431469236880773990868259010946558322675606806611230007028095392291256233246112449866804718462321547974441497954611203663072711616244171755455009762410921401325446232478332328930356806396078325245395006808371300495690941909964846797018461422562569559463866600640232875059883311832482458208661082754394622572708506925710858894509879124956785831165553332130761460014049736909969283956936679444245694458520140358699682752314724388953394606730291709666624132688850438874376406090062909853289843413464230437773584749158539911055609564889190104051345147882720511001445933879399363989902905673977267545022414065194023118975637643578889107053094291076596699921983291555656103100898264146546991701456591261090519949759413752278218944132167986070661590469693739208786503023648814235936133948696569353016258401608914389365540895314444332938316733327954259285873802739795141566160603252654080051019251164571670092288062723390747393344729792093342802259454471475400391769359561516545901513951100160344131747924126922996953560487637973955959204861440740356391839133273282940580854426017211130763835160369772403937285350748284189019062329973007805080780906832044945473265344219141408101989248161549074587690488179786667530430465499659035033783387497946721948432629188206549356487138784037911584162510463396605306240493459295520677275946976659291792041109505974935871457816930404793134362765993873966770566913995816509724052714025563363046276283065885984287513645243348769293266123421619777836941467126186189141602679199805153333916036868367626095081783220771947030859917253530176138222026559858974597072657550785162420656844520489299860772371655695939064702349879603077335506398437048077305979554987087877178740729234985044179058320107687392891929449924248888060662175707877386494446323693856104659739556193163536410370413879349569333702889343943899930152475823797344627450499960451356186203400850475566693352151831311511958381565229897836988693597098543558607061886212162678873296861299179543702961782711448800522301031523718850269870930445295603221350675734069598650288136127999638235022205438655591226001165295707600767073041700434585126961921109871149749631275264957747210311685023522804458093100505730562651819694981330153036651177784034066397748542499586738708246159777642980333014038312589026556610119231229180521515193979495164359754937959393984337495947843909486643123537265907220394668623052116422992821272627461997998621582069135326700162346363149315397487219818305911642071827168352185226729190268525576592896726209404643982271704682099713517605831929795456477484384715854451359665611962145934966382627414872111886491858037874324042140431414279266313622293639916607745650924407784387789033536288895992667367234243718384383282797030526089037916846450810416189797764278350416310924583491115590380268442934654316368407065369391463275718018452416198671644413479104548719337964519053341746828554429222898621257925588960107220292998470675402966338751715094917619804000914203272137645007570098821988650576901970172909934479838306249606961354406645292491257931061613581945354090937467577660890517377628209863074721519564926226751554434565766445985024360839455268201411687665075968446950415748413966197317743604283366325484539004800271855859582797412264740907233109508264838201828020914862605434342460273864050930922926871343032320583539662733376547429773920104115806968038131433183005808434133121065369554102553465676140821801087131985536520155317183991340263111045562675759409925918733020974432829520291494988670650199394974086955616588268012535916854356036337253351734749496810402268425725903802729389599444631038102737240623446067011578514698843273058035187316801364493249996816030389534173539135163496356022996196154014068378222626229934936935273850136376834858496434893297119232825524112598409546032530208536769310047340608795009310483217280799365705430671868793563166435821287063539649830524783004541718717529107117595882342710775850075006538115467591163024940360990862103010655510604181592567521206197985314810137740508444951038441263757021882710226515279553303241084916479932672362222691316381815529207649090593572923287314646477647216012240513840895162766299906245361543450800771369429863027407226460127934307658143821663608290244916290083798601138850378962685331512865349236414029815365982003617556693539479565595630947836757484704740697587496591116940174547136164513157087908149332693352319521999766166126450508363368774488705401713516206112732684445673559528706209997755744875788018953730022149382474600607227532002847875222203773106231876954112416837404368884862395804899961268460688974837744415266110833394933918985002342997658913611958701891567169828696885687218404124240426360131636537619831970977030305787428995864932644037280355818743166990148825269682556501138070797400599223865735238791841760161555193840311200892625230186177489865343226330263969443615677337862431574907288279654121546611634400680324084085189299607910254739465826127968597382441191863445309442925357336337562315738912749572799874676570039403943641431612200415080987899351283136877114121675514316402036793400024470794627384180254837788552349931959101314827298854636479911798469703358069943334622185715309901791663633838125428317326844973688331752605176199444805625961841185614020437334742812620160543803882875052039438148425574303262661496316034877955618308015289650100275777937658676369375905496813831311700671840410997051772503320171930903037506693823742068034136383320316771886503460210448152434130074889433642320589389712320145711405535133923643304745765339905008107727468491407905202490924636842094963349097509698016211700433300751621408023179442511948697697744544916648058220601096803272941892151455155734755730447330210525038742525391592235915294297325577175409246564943465504582754395523185646020782037614863056905831959434649569055267811253324183925325673770082365897229713228533010703467706539430526956792764817019236406408832472367917941634765279036221138431731694650998624854410283259524976897842683976323968857141523673217676758574976276774720619369107483618263420345714707673485649213074248961362825075449130777230303376163593197508275129425288626973754947871208982681318220576931993170294081187115757072120044818231337518709851797025149403947092740803671620540474466961175911739413802916896796563798929470749114586002819932965436549361151711221682678433244921637201962603078973447660214227259036049473318716535986277772327305397110293408354711798759059696601012146021084838522454808844792304920816477698679358207094227901659489736425639725813482581309919871817564891516759619265200228144537255814636031576527847851960786545322563068084305314535901587619028284542083743082396849306900586649525670633489582432951394126296633813034224214371873523380892949196518620393770347166014149942331322209488298319029090736000107592931321923665561002978026071558146613254446724280327100374715371229194061554117570643136807932506106493979369401176750876499867616911991858640147952586712326617451747393057599153670474971805960610156447357642738007315919404114358695669614644193312003825513307086857777035151884826507287797362453196253621410202550957991424453946933389323888428189263319382629236099885635783839348995577418836249848121392925216740969225246292549081689916513158699381736346136187117366667596353358899820634563277177576769751401644530687408208144843217016457198043866077575430824179331691277888746941555367401078933512241581898161035754096234533009797228438263555602369457178708482938465217387787355338781094094788495713202349048008021805673558940325349855881760815703989475161460610604509205797686958601519488088120891725765988675196151590182821926289727665249464499931975144151130215352546852385745826136985851356913176430020787387906676971883274230427005691244653642528948614466773224863777849431393422678580876410293079000078025521520385199819769896590444769057486152176986138616507948417203248584865480216439087189403453469605504357076415110353157127282165650077938599984175836559035758454058288364830272074138600185594255391128606289564333204651464056338391950497011773247488120909965195472398075875201887651118916731386691577363644784682364123598684509063755421520178161055143085288823311742493243246082056726908894602632062297628195619469128566643381612974595137692536429969779965112316302147552989637091459382821656235753803565271138907405272464522835185297433441035923455619706180734170778736125672806072282967159558997086197770742199516131574242852831744734859035683753624945811963823617143498121077742164648157867619086601808211282939514359768107339304788047570646900383019595332546681394875358745336602564020208484313008182321204245921613380704717469335043771270614763819646164255591306798156941038489007270730798572773383526229730868622268982510240720040091867643307291608549783659953580514064468435841970814968979442890504193681566372637655495620807398987972546769711098185173702718095948034992366748742020607507104349680359427615124707123433048943015666902667441878242723978704192649014337886284559135680758319400438264266328284262127849554597010691033065937331525863418036744010029371232883955962522539986618093853019861448540805658398585258230528008180208550145542043081618624091343538698515154202000353716526352109569719110526181342564436798597369645605481674868532044180577507014273080655384119723263180737444727045260893231518974950083268622495686699053465619101294699265339505883993021081088990858597865933683971868978108383604644054207682828460616472603452998014192612547867763769522499981519248209307938786211013195563053174976793784704696231297940018144945577355120327123577292868839160019317063541191794580259411968165441952194227384797231181885973096108062528200244069063848790984187839353324878141335449238675002259992426593581006975961700628152168781126681244619725224722194841389707266821290189972470118768568663021106862665886860716051396866559010267955960523709156464038740397339557089845425560353847336756073770955705047870515902624778811947209730825866031606153225408439805946917907178195567805527545244286475710669068108171700938092466572030789474211709702704179210947088898038413793013392201222037426782911697879982061422119457393852775584413883128797578395661932901985807354501806609811592874579007425191364269311485208258122041698676611505755217842251992430579445986850450119720835451907357956882354399301477156921538786028405652531408366794405627015915585065695284115987686602134515173320629507326051960760413003131946122183750759059904032816037084001906110356929940720580336405301334646040104271482791229511396214220256574147987467034197751478046973771825775282147892518269674588289966340124811971075709386928931989169678124395929284957312285950860513734422431348544775913332945736879584253540451850526388878275587827127032518657944647446281215951948187918607173428778174037270283132373745652923645886353142571241564972559008486802089070891106492996884472190065777790469171395734284885751791448915847082898625798521281291870913968165270791208047801841705923230713048851450241881859912052721885154545507946722264454636850638457934131420658082275144674141782815685275003329470494016866605459994198123069448360267703378450543279768746656110805821143679140181272759373932881078089248233494466696832890315773658464548035293105577509518605724236169145746474197772100347545857627228021770669874433583738483848669356966160766925449093168375617073691580439578594793882975963219721065939130812299599110069596048830264733479813642321479729254241726151413048831851640466202202477234562282508609013820157195463989521277302951506624143440773604240251711310697753075719979057865058990300235682924445012224081996393064923728016094462127944468291647639705126442153777934376865833587246239094199194407285891705558892931900354578084252449661776097864621600751823554140603774502034157178808985379478485337243656568484694792381008788027220370211195022359006144255521980895365445485165836998668684836776093557410413388201925211008080100634351027241357641669616217516483624714393348830165529050819866381278365038377287212175524028574077357445250022008873869868960850448642384108081297634402360122013086685312008689539555830339170161051150798225996687674199709242864101029631460059215491351730622432045737804809656775964486096904143124368723276848278425257399913978502189095939967083239195717984739393374765236361978130522924175790502375924680977530382317988177916473426467268596750310437853480417658415822058964967347418140392016759727180776239828929929938536306283620874206436603892475776830922744021472826136724742350250119078744137651103860480206422517720122138724602619769116532244734447519031840651490978304399884748814295299843467365459976406616559541855655392583761425764846884677552449165727196032900677036379234024738831672210703865426752398639739784998619011562131482010801935995979405254331097690047186097353102378646338709959891926950020182656527750412956103852262508898117209206878229205091719274376089258947932950309567387976436601689947003914569583576107844931651383921702874353389801109941381176353414852356488591090239002204348045239753333748409871624104507615607166095462865028869653019475858195395794639748003505154175888502569485260688687812473025498953546527478645718703070171188588811092584299489642871731165293615685185816807090271889051447581721901635908762723277131411463162270438877760964329898036365304103682612759690317775936233342562804657211131109279532011417427700285930777632530261028162645880780050388701937363314730215084449413611930811165812956002749250265130978139183064317558474166781125445243809921639746348217715169921392609395741132688486074569829891597123419339376966253068420720136645939275551066454468926757508081019734928708316054628063801310535244237600623956104835053362386406309734300194884795569785790086323740365015688161565505703396365997950013562731769150992057930942731745309869951252221158327925832292655957346831011056508277229526023431224981793781492262013880624511083427971159855659251973426135061992827482220197784151568828973462976419975540269827696876355627913792484434031660665532135344713268862144620415876138370191759459857994676124762628348948163517802221860686111570579359950104992528020651858411728938782076709538735312560054208989775456490162114476716917721580815963075488270064753026744134425261136017224929163450181852498996872546267634912633306523689846018555483618228720754226727331706033207762739251930612007092974896943198206314015008405070228681308439360598962427796312986045999283606274064282739682406299080640456804297248773413440583680969770936131185466243912415799263484377921926200393235215797069495082714036594622908566891518576156324305942055916479800298162394459762192547175792740631508250872977513177421010687132476567824248236826788921351617237017313749314258165130408190556759152069806093065168000819795484177031689122027223857711452241050234265023778982248890564223418000776507491463016250820329655684790515910586226164229451454163680548573357695360110494944039682134929609958597910604913683495949609002848247684346243299180252014282199732837942172189640419235799215840901983412189257653404473186645393294172504153370358420455796156209819200900499415510959555124883297832656047796148955427975548785312522201017213674267889786032899238109814989223296953496779983725472772778181953868566866507098691209011369424751917715694706526630763652468265278642116335481081939299536220579228753336488064104375189485957620376931843379967148355075150341171412883391038075847552343784169377856351789034395047806215027659753302842831140710917183106511084900176927810989669901444807549099069248991838367289245116658406316848144048039592824160309411423139662640789989806142267129013677506246725491564514575474545416599024643410402814051175622949113460802342757399022586150557786209956068701494534929290187164392661063074129097139410866076491568780588503645462693939090011034542554716260313251802499481714169356781460007497075792790808098563344839429606507864900634563781090197402396133377073619612264459098358251214298123270635874389611469129456801575390557371958454364803059067251730208398225263088911249845577093621665173280410186547354042368245421668520457362334463962196819253732468194819148053370367086952283085679633999457634753630317281604450690536737676417303476152324387221741668562002765807863030449061311757221644394371614779705139044736024248238477391254730796850908248958674930006826355131585680766510031547867518743841394277597680618409423494023743013571886243317491138676767281949230229758438031712116914348264693758707987044251234871908559005567925317627795804552754849243782354723612214240266634239778634111591738515347260586380588741595076479315081680252759204652832789969944361370251850781239360946790917177994187729441603530291555925936678054201364779390202933253282140009389726302638927536577546418451523251411209800669048389144680324317184222336877116842184494281473050252136219821502959774741846460907130634800338154930300035053577652904408520137810492805639061290632778756555762929777973129100823893512931751979175518674205191568564960358078596918722096830839488923452915416154467698472755159057887299949318833472804234748892514931341323397061124158678484612728590440273731204543688745409007770013575337745772640605062085062403465828896071957538217284315310270352907883618337907285761059929614387345445886978287335653514037553930100284722594608598591361335084303173906630339435669870043021362016591225879054221165837458528165105202927675349451908313749637131237500274671127652088733707881464712953371044100052081713033416237534883409514938406104761783606583233321498212587246433476994933894863301427048880684722280125726361023054556903635594266542832608096357660383284251441948306527359763313612973924513285210152238784182972452989796793409727684804525999804184131459052227953573534947653943293310636725172479439184050373131486080887540777482057879067417071393469920429579730047549162140532369833103168887586932576367006458842066674410202066371120144466382310428048726874511014629585536245242624847942140573749962109692913915353812705296454878557890241111278427769998981152312019027582010590869638941355555204517426353118715275885902185597955872842174427503023688741765542158794735048588997359770994860731632741521794607171180586275208163641718365173438446340674286805855377150232751503982713417089363447356993890829319773805620207681620419031056644442821349957038869853299383657499846754539452797966670183105225431665655688541145421675575237400592069009588256404439463997645907785756775030705906288845318504171150170428973346461270298282970968976510673011736323326733588419108056552568420771233796615211508161844505809918559832909336342913645650925052546549286099678718894189629605346168286970473198569766168007083432051825488326342964753085362086031871017511046711650015358667328731216817648721409462507472625579035852901590509277399185317396463147875768905273562970681436314821606375423994565192718494054964906261916388174432439552733136352778364521510871183678117842573712535906061746360356823162477260135868123495145943117805309562143285157205716282846232953910067754167296296748545196901469695418575142805527692200109053419781134148123961857280004524266726876725976341205898262009364541098109848903084329143369856486380856644316570814023493447753253854323426950460096475993724832004354783152879186960188850583464015743148732899981075446421300232088133848413189096795558973241112347548484688373356787032506676266330366099239587358978777716754286907943758728683697379244697881631304947248937167165574667986229007202994101812078526666729993169561957434590163000663583499853194605252745767751627436180511535139452054812331248115807210363423377709949763596506165217585800086207342821687527310558917053282152451192138154208546145899217013547660766180697993836532826867623407688496274728852566737535484379509227567756290298379792584331896391462783744110161430540119507362849891283806457120113495579152730105812506323693590456728543187276757127164846140118892379557610590841270349824364336221766233782832494310439388795344807237375096398911703224657729036406685736635081580836231914018137852651235150426390436558447840102726741055902887951808896137677312267393952579755989138305557192104403920179583252205896646265758140717394946523423731614972919105267341749868168462624154075735509488699530054096149796331941383606603361608715114714791040093331161780790902025738045834014746094201833653401772081301086388004249391754033705204444778615202479901476370809566026744468030753507071295482396556306500178127345494891692646527455125794958715265950200572127011724467985288714040977485463954936695442369433210689875096385025323135683857832972670712464360298505048010076687291362190672361187025567703506216583826855353413774293393940827875871822083051462929709595265066046238555452080762317632356866645059180288728345184147865192421958797710341106680213244120645936013734462256729425918037827093924651879772639100601400352599560608498464401602427711581941179602164752631982668614297985686467828593696569198634649366405112302329315037478562832012679531406432964783815046919582155502683702754320002647717647585406081023339125391436349617464716715888294904813020923106901240236679602299490278615896927550551874479061470080710135354005483605769720609337513738635634274938115297949705535994237320651058546075645704679211669321332945762074861028067540728823212312554432361979969809062314899394178830452907404787771115700983146946983958978014589677899502549569362572764682908781645257805543023374903746312813336130129126902438586433333106478825957715942154832945786360727348190812634856326039134156471157876776661276923927539103939947340661059361760985126207004100321771555600393277667950801710021780430170758334291049437261443940341058467822356850465666933937244780591171623774736444838480679572974030303254427470246842628732501640971813548517831577840448905687512492620851006826252559622164099959814314901839619047377100876359332616475360059242162617714256265038209631392376853497556091893925340360144782603961950559889738331497216704186909006789656481006743373543568874798336828446433260861566208789969005491895256928809433503695529862377523682796460749408061145674709793519837252957911593086880697079864342785051425610147299478940244943577751870419413846196966843341881153829923669324276222442435213405938540262392763615380926463355416504582962273576226448948436436466303167888431555814955806258729108258949085855480920558106061381705292132854665333176225394026997642489719098922096835419490908037579287770137967749217369233543797110232638079964733406138750638037659913891169833144766904562757100154892309778831051710320913748556388646585391879288190827469119330249634513079996283984034328365587113779711432939183738087378183686087450346859570438091332109026526410966983150697656317937639931713105631874944031134416771967106290169822285750013119462715005883851721079303707665127347124579039946899515471362891208441382400117042431255278451509188374636441043311696611173982928319383256376410540433455401856625988263654839540753006726961692859537118976198678706736145232059983976937656258079292491467567672945402777758545001772575698528424821559673190966206476168223484847699915676350531180913783094018841541905033368785234137333457009340942461940456354705293075379239450684751235017274234151500353754987806603733860742980131883941586182677821974192821263365863037407479533175797148386186908198666648206746899085868602716323519042431001055902986993351378544040867346658635447370684797102569605543620058771100883766912599100295747545380997941055123248712035763471946339222535358794002541315441921557332810753263896172384326957144201258546965209921179097891712167266863099040259868923845622921274283142000097657197308365053316402972690197116834254083815674583690743450349909645311656088657076107606989724453018156214727164636611524779916199095948755678250769237934869186064385164568633025115184952063580059939204586348672908736855838204992132126185687811529241569270925196015339591779695576656975385802492517743987884884634118876563539996112321746603629254778936875222991051700246268236153534022810379002239410846212094353758800676823965645059034308017949897083843604189158031375368243688400069832260234213220142208897401526539828460528927306420297351542018583492489922856288779797012152698897138210607955377450891993388629725039259024094757130960686630386306420442744191784491955900994583451877804311075671551009886917297800230255587261804226589392242780718649249015508574356264968599178641826190779203660283622957037400088007644564179637571993319216243917669457795770277862023392470816245533596458631276138493227448344668369913607485828862542085278439285150229012036680003175526447534367790272074293624093807505129669445367151937076637934255976167347728349419661994376935525668066839462434027521296752917141283382062168951876168473238439878131940394963428446033527193759917439205242600311045192024682238418389323607023898125120690221847470699071892289223455754777713698497482785482713017686097953913776253069408568454389829661985910427623496948507356196778854941134258200829425179212174417783641617205936847953956480989997927303027910423077675899509176488381623727683888687654602222077657281316458773305450948485609804001295092038934369920821845004780160209502905135113735987678377090432758342015692737810050800254799265946489063992412148930384049226435399436622082526992424810941676565136131120205972258049809254280006249339809409518030765344558507592911070863833121572388804846507189759540122500118717416205528489995351573255350577021824944188459163989687101952451201450291760154097790611969853127598475217884708490446328991150414162215836571812611838069624119133530039932783152079843590135082386616673721008698317102741833062793381847871806400798429391953902768165343308931207790574305934993851132552278017503813175067231353934676476496176642332527101096000463097013622352214601795304053565904843476729622267919463123085792121923946699687631483470765484931896432505494664326167507429891236573318451322634041848765655262294350612621441800873322015057040009258283591003791130966813382046226664698415530205119631951412762937681857512985163655355750526755858735027599715867633000004850228349529104097294053455019431611878706646767049223130547775559862420640332830909746538246405489823939466632580057123917405498504568923998572716866307077522847400760842395291335250206420820556309726202447879817271020245636711856497801701631197547781349848197213611551012981400378166291138593449903658366302066965813802691809272745853627729912423431894131683515388939748747301996033243348866256300110437501564023561612583973484644361424048828672227800195166252331324724990226736910631555213097649619877898742951215893118718663081865720831060864435320981052323675121889134304925127222215118476029087208733024132965873330240587498878681748538274814202387789533815855033200524882372552898505836128015011140423699391325989745080406060214411300731174032630807756586358304987163279517137928447738935591385926056316681793477344301155978567066015225821205717470521626199946608589966437529803600081518657382520377122733087312342838802723056327266062955194746860383544292247798910234323498255142715262698333420786800395242850134389447129612571968017361492866772198812514670639717557193992701721946211279185256754086239037256944128264627308848166624938073096978533817532337436416909667230116154079404519418945544103054411027791897340405874058817240195721815604989801005707990696822206080211963895109043764374070853680153847818853120465577647832183500555489106369160879613430868277191419916745948383408545112879817204437153282303241434232492554775454970819139088858094966680579868460326429172394121464533627616500615247540772753079446995871525317738468107264451381229938252259866243840036981276238731843723894370588982882912505887549025326413673042616418210499012706164060004452578480983223769690564936556441684379030924415238713442920007114412972081148485894538698259701042029025316971577701923012252235774751296016376309124965127480294436462728269874684482830794216286617737944563260309757335641337458425261036124874696010945978598529997946019992882143048944511200313576280462236186919503109455200209256714535337876255440275556028347343024479612566764690754664339695489891381891960961830315089772226039419245583927618961807796741320896485207677494458677867461462381125012017548091872131409489581357155064838992482918674339377196021210369822183062701430964065576959274511100745154966373533786353882474700729792049909437153887860231886360628601346973320302793425066819120162470980198141448059802751243527019496184371195329807112476941296974771216095730517820584337976316874786942832081170069416111711879429900228054880160421311615176378743674745491167998675612740875889519913776971538929467613168362376769596919212382679175116014902089753647755283479905519895227777026715242099056932483066488283309860844376243663954830654396585795726159776683450773590229208437076401052578749417745527135483780449711069170195451260229347828982561352369252613807274380520502411995034175623513779171366203924984381687277759396351086360441352096939736264814779392801925273555089509402395133012343564424994256072284469463148446924485406874366063387823341799696734366111709674481746943296306916392018966511936842094654270412474808885723040131068295304930236518363480874464305994476604037868765656937683825874853304343172435820852178977778795620953216454065675217681745861598595689914098265839891417474202215323890073513118099247744987939797731339563373250212550578948774369709744635584691222805126449574110930612712670877012318115308997082746853707612271916717753458232753986226648599086048522867392353126913783227069466979383722532713729544315265654138963035931912232218555653254287830398548796647191417508373540190055418241117854032641705630502102402628277390986962292428359028166458402751792702645234719583427950508019086967932767598436516377631824834905065869972154548068463929477505540496215185400304160364632708136997645838516929550479955129560408870077320476955268133019920120241138722505611307546078446486595059365417707213982143284261375237596111250313412221508342058306010133848873390485676627997558200581680479808023117465962570270099353597467756199798357909364962046964479239693384805835252668779206285031658798098281848097387955797967985247802330751652574265991627973478610296906156895622117324863690329001746053407821186696959052969833748939692454722376749325443698961262433736040870793512845381129192560341927756584953241321860866470153064714204758291592683275185459102831982317802145206780284562098543066471164732703588979097669289444999159368159383331359242460241073133204675704933053085806144489021107810925677082175655055184208792992099720811082491532230241930953786364244308689988106457221918138169454587122395109466482038323559355003274285852237592137419699459592897705178446959817472319709168567973102848256216681746949474997327235637215294935348032920657252519422927769694193541793106719603797912876529672269799276408908749200778707297834155686831787736279635832513462425643009516664640993187661859654886628057146779245679522674873448062074737288371443096658772245670605066921640413855688033784471380285039950202647589319620133957224623212406645658114354368611279297060934463296010698666410937690591980051465222594201127502571147103353981839006846485519448477203144045134947670226848594177198753939719099023925636343398636240351636750921944262098701836313354465161296236572095802988807048827778401716678172258904971526186083265612657582636733828434936731382576757678592359697795027232429770895244774961297958837608421936494615742719713603847903255651000886748855109972793639237848115316461476906134952744130914439775491396770168376198798318345010677065279991306454731915496134663391827996679218942177823708829879960767630541658746209883898356410646846520794582959978286729027789737269142311908243424036377444492771816964912171678475727068233057625299138658204353175233854273444989403854366296364354823981887376002306138990707734468438770071901646056664952956569484901681451205141311574518560442438478100518477069211003751508406789449607449919050064281512941194337534115872619888007435384386091785258808944096013251086280341519832275208546617469997320251527359412565319637864467422755264666960910425078649618681855401870840293819511906362294813030870485178513148012421741960481876982683073242772938990482883598795454933696465780935121934186840442992860028872753516882108562199227394063588767365699208189840359069001131973405810747800228274891642812366733688537494754131565276695553804938079502609523336896319690681752392451446207107857517355717596269191689541843796982596103479269210761630622650431789504284763713313442072318688816047944436167840271660309704436405974339103309360727020782738630914679753112930307131897015531605018852385360139499854150894487237505165358642559862976546014650146705195288558100463380338334661786324943868829797814083835358301055408625958309918155231818314754511864254054612360754033705433324202551765264632461357165028064982763201039116377714910349946031670627844088967665411249893805262582393891176686010614369122231296428148416073675326236131792617494350559340853447114035360652123102038697364891373712159142500827510381266065806324083374843089586681700966633931087630974560195630892238977880253893358337392753835735738535238455138053317168991045285604380650947315599554636741544278876222943835154106203317818928748939886317580754742562481269345401264688416736050662160451729633649563755477181112955744974767705246079957567615967666611646717393619929005047755520161494711434181993660476722230174018669444027697321454994962087341004280336215548458328892549392239497652601483908601755946128907940786985120284450501887241273617623231132315863957757895646163194793515476333858827956283001909196927184522265493074908484118203928480657038900132117791407872748141271396720163347016440959231238631086649671942991765939258095501396176995146776313843164510887566399557689156965500241765799407976992967651947837360170646282619976537777875851234931465540243579185339176347871656682458161690136421563486238486928160038359175707323318927391700691857752697579775209047111966350155576392640033788932627036079099830678535542208482244038547432890285973897569517480964560513425120921107716904596115805970312449612105886858528711347443996711525606328187047546143854931205384832386811567439954187786132083668932045779335285490620563982806139762085733503085422249238502955584148969611162648329198794234815125415402307029663946483969900508073727511122798423274327623793804022164834201641198474646654446339619690222328331988697380847735420660843922500907291264868380920770689379093062438314631746626986937613860673799611809026820472136814585978959316154540904434576811925968402993666603784118937564862489140185166096663755433135297227021290776376794625436481005610119848249973330852088237883359677540634092506022741442976094719296878413566014280268654111252405806469547478522337832786927594092986747017812207904877236627678649636075834455365065792882275724377208844713414264886001081492427267232045545819014766112630985902369884783805919634830447020655816667000085493113831302041191532491753969133871200443797907141165571300022685044454772783163533638139559912053597415879900463418933724406384857735669872574844729516830213652104270265899673255799793144390866452154750428272471268060029468825727359050501883302572017083439220778084222739252761126659593661359496370909916186880045483096009086218582103761689738338588671353766180874970075781123051331463641861567508489002943722351501179573326997867728809399601816699801578364681365850402147193718852276258108241956794251448070075906968049131217993542010594238648457551623253878796389061043624580399031293682822882887921607618484307319400992454210208182815311056344696891034382115903207391463333851770196487884435056857288227572084844803995920107609902180791207796545437254271509412198603435108726945257692663663363840386308941415526344241237225349193380299834560857605888457599115651719620715463270428038963108467757441640474007596800529501682675673962270316886697324324106434719737294963256156022362212266457820000811330539092691896085041624037920768901949527442748046915444265070678402683056928709602830366695834109005046870026500850624849133804569268790114069200909186498901227818330129663328877689543776478532437721430290487541047247065934258561529294577391797752422406943125049182718315489649896131389696809586346077092510072067869144805084384428498016101491332919055893074747791764323272288471293801279454732698859518616442710367901193703388214308720909037967892625190499286382665453979524936368370385412701166856008757041901637584721887476070144100045583073064948376993519224406178888012347357784213999776555821129824477392223240552822750694813376297837670385007461093271939790308987315347306074818395411838639337657899571016746413845099078500529138869377299575059983388622175291704685404330318802739281148285570497208385826783679547169280212071556194395343069229492651729023569260887426475329190644162624881005927971288821615678204878352470672193236061128873039077214332647226653304137014779551951207859372316038005338040948405655046455176155597045112346481791467817948533191060324277579530357658453563803216258260963247980235046278709130305533092017407778279554304614383591716253098054227841300148024460718180521117724518832238061261501871126039797406810176922598095427644568562807321362174106603093598631684796916882872215935400548986347707412345460998438211023422770092098218489479102926435604635154959908722726038307347204291336517204801961372901196541072957895468611088263156344761627416770390096437908526996669174189141794167607117079275475632334983644056380084720905230140377919893444652264230120439490801327826130086640639657891934691341328294482659185268649814330561241697528342386565974192332598049000981614437347815859943579652952532419398547841171995895248449004619948461839584705140007298497310949835519139454012314170803314567178339313204869427005069984480337275736787256226092729677353929446299024314625111082208095389642018271294473135524422978918432331171310060116063419376402545170234136747839999873056889826782484825757266679178398832638348241258183719940272703001030252648091088315430970154149646076798850643213300844079098137848942882434473830286402284482466722600643127473073216465595447626407713400360207423711413146928592515722666232232831757767437858944513648213867189642658583872768253779952263016329423543150443940141616943981132967710275836496893578413049080266196600381720298957023936049596012429539325826625917055771034969108362302477594236079327781501229239771055951101881427461798042027144807090051336360091199014910159857599555284698502682111938840083582126295122109501447518895198614353856627813573356300693246461281882718239192477775958763464689952362387407756616301333085966725797177980676535441860213121196157487909488299012106209900858026403245237575580434125826354708913766730409244751201572963349279585142163775871190456242994556428460179285055471928277175170600564811339014387343300729035315702208511703096186927758038977394875368154092597184564579468732560018899459541643103432427136713523442257430976926264220591935445411303698315363491372783335141709702313897893119315500530286682127440268590940873107763250565479889427151099337817849216787338102875402093587702029047472654911914985008411036269132918847478529316384322691808990300456031046603113984576571793763004404785155678717771339151051032879204062067674531782366759997385079224352768430029697481310651447816649446583391472323823457045327384489611828858954940962076331559231611759499451266124074610656937012036248617153258273360471900469115532746555583420228185200780141619603957630170719224220380765766433705716843184556896079974888177770162487770577535959573894031397980382318512273659604134322571392254505952638990596601145018597615969058977816717547665170827084079939363444754067895989250576422531771264897883006972358458139782185266812632469803684272552811839602447941311938056046114359604174432500859921180025072382872729533272407041387435405124014416358943904816765281477513628634923014602031252740995969759784311962349341787185738732704142647098382722960713869230619744528250195078105774300049831062187660163154715994419578905473346012976685022100139870234497463962295537278231272161380209538555639252577543784280471638068179442447551799423753310482458513331492201822818867804725228974768688232392935640247046295736165382595660284075836566322162933192572160740338620247237117595005220863879799417096757192164950444483776390675309275117995442097939857763824282029318629274965585008875488910511959405891949097198928774928592833701610920038670963265486489063714922940916769895211938151986519094921846496390360280909946765016065267523324526160832268232648622834795157229473791895333827828340145153579476046359943364847616334821433614180887228968232280270295157729291219751979234733513738384284689051991432501469256495009870464307537209308739827668625043150329662505122306018342639146911033075714038867754073040201332248627387319869890681943277394615030679033632528214285327622630280650139761813545489095145040593947619972293081613625654863917448209160378376860238342670479548948582303683498103714766097471725180524306589961400726468202967472453431352961139719092395332234411721333627289958119451057478806623676785037677940253982566778376486946382558377643104250825481767507657520333402717638840127108050078175633416655073176460524812560235199349762640101443908891209068180477565553325920142708834217592985476510942485014551409875236766855185405548290621042023149191103293525210218799834475125918026845565778161479722158352220424213208811603354447676346183860067596000838000732673655874354005999424393460721221003083324435562367984291338111385983301095008992563105916394383595095132988935212346828863418681524179408365837422480378210375358102954250169246483357923583894483225068619891864846292910189648967347453691353840593456741391236358917930164154033475252104377043665412562135846284472487508242218104453105631789848537445820038695445179695698214603358314513756230796873998264264772782337197217108051702950868819010569369261935234795162518001949222792320471312755080331497240346361834164482049751522895630508310250301033349606383570122579940628236628672859962908709354692270009716177475476254585722158404539031623085365302337115892428410024541347932905389029035101420699066558127062275741999647340508635557738924808589440001132453827117566728811165567189624676721943115871839696914240800354540222585748108901134230825385268587269628890635602880789194847220957781540244030604998542817900606354083503688024651612133585771823039050545460013879698664983679201416616404182210422888031324531498718206676712507486528982674353155500694962920323821341083887892570135530828824010571422968641488007114452861128019707420667550189238141479248722703384792706835871752790343860708327038630844788664624006737474750765040689776018820513639563518795117674047307369994628940011839933090161288849629376618332112171022726795735536215272269539534585953269901179417173942807176323580385341413700105706048590510025779419354182212158923937175342420481928038055055879709924304902325064154723785801697889108444907501534426745675216961615896174024246902540941552118136816530488112859063860953530629025084345383451002688574282619451294897982378816494592968298853376416194821988731874544621182448463029141202659897576856322050813490015901228098269798235099012465039404307532984751882151328686339567546321858141973384426121953872304717503868041623756970387005521696134989905921918175897519071435953497969897835880897495078910281921387642655222202316485951030731303019464509464062608520486089494981747623379314270686483679981686263480795804678493791682215721066263585134186963771871619195714986982998764569763029034133177819296950667072369332561445619116264643303901193335480443253051170631311181095388362588432763390211662276360785430056544337537257127096985240775779637112710534730117946746177492958448213988468242759722319836857018201081450330690213115785020228632751547040282035925844090640478348655033951211301485827982637117095970392900930954236717759398538089650437610880254595413362214473462574013302201587800372916168534027486804026669652343337093818887859038920006304654543836226112265469155053815391445217176487931209621652554778912496260858955876472002674626187492132378790586791466389486824193454442518541359343080811668266156104099344769308172202308178394469529472542116641521894202519564647103993506178453276518214045925138764672680184910902821800709201181287107310942724911215974051304956426500649443543429369725992600301589504883811831742626189209523807237103146412420045831863156138195968265803364109073622781808952191320353241648730719318986927864208767022999820527214696434849036836456695407958995611115644161631456582843723568719558968556222588179617378250087668977007203414280661998857130689621585254414695866348268810525070649114147007898941028885824603115921732824335090231913660001982116212863605375364157813977519580790718531561604430919678525534085160932965855847659691744535677478122496425712482639784355659354961925441455947676844986690469618467466796714707518878406829891723747298965602078320776624451001233952859615607963009222209751801864057102822245463619430218495538243886365488916468812016806577867807710615072284143880166653997238011182494539751016255306432546745787267080353397772970380985171442570942882917923271276231771001487332360132056520553926103738629211753205362544493315064225601027384179444828653220215564842796560023152733159422775771897524644636744435858323705669629038761764363357181884068044474433826284757849079056999798290921088000169021962531923738391078892530393743894591366916031338598692039731254534226943135033532830216241195424847101951490663289088632711296681835295009149673142803092834812175431221441972332630622483043554383189879727624001257583763335955716228484316611638724197782479535230006438082278884322474252392177842952141399213156048637409018490381784606796495214769990652725849947689552529457949909899905902857179097403354089061737421690356436101602543430045568419687799612649072410017734757022974167090249598785982400536951819816956309690249890283201665825901525895815183999301007806041682797839167712037483295734343651527705997688111695548512930192883012710053391217948154748643907587848120909464076840331828150492438999818077374007374232324078831821558731564058699265513429809263328704716556496892289720722308861238883397235707768459414512754659942794254620389092589943268711884827854417476018073992809314870212596299966678340245812405910058444964053755534365705704875250871945505745063713526684942509170099572399789966143333582511725071751223009754055345571415561897481780371117795733635292855824212614468125931435573432769245954253285404371449462368351813988945979212132319829012653219331424455466940122342521637292499644973725165687085342803933107481562807984734891637950169757023007217715563731979819927118692969637708697955831073564668914146755100049836303019002355667025383841389244127976185363587681606927986271326277956586131010913482918189080622951371007112184621762767712410901395440866651908313095747138012501945609051214194300384267709322595001659745563217707181882707344391215829023381586211121965709123704283136494666326947534788187190263666076537665962780562215961657625299750827345541101272964297335184836181597802157249015258257951846058880585993285811947392738335432740623825251175288494187802119024734650550990797826855031459154896632231094203506800544974639097097241996948081099904780548474411877923531525482768158488190997574896659242503757510002371252681033291211442199045394399845794754874287402686290469622251813472975968761517668244234801545704372545312662094970240852471729402860460879721978470560899540721892976721115647957978903160178585871147794043440401025455330248722655051263485869387720736936575564675232982476893182171909636384257622216983571419766456324552548803676830443417849855936787244693798549969486357229598001558960700854812624384685094530100435338077913374807048443236862500479096298754045129063219414361298026070607570467809338628410154721478451596566408000587376540386318652640846567022048788455409893028797499529015291974085318764930751066819919814803935840876117847594124945238627334347600401219185767009479548822293979151181571253202283207445108207506110917781741541766006775966726828655510522533169798323422459051873228369042201598309394228456965732576252519440009858167810820135059475933857791967932756836391137852199093201140119257726970454390047003870086113047572202679840206934008956689668506746163151202136274872787340132826997981294663932771840073090830555484530961062467894450977118102672083647173160653306624533244425229722693996025330887590093654235060257785007211916256386714294453291767215017453293259618842925253563167890572350363140550863504518012691642816517121597921642790760085327534463378402574920364528725364744388410243519375862077263937146397162772844572370226156904813359268469011655033194091632198024107752274050107280907118846930556037648838352009360466473533990591028413087321333015977312024466925678894838274523646252855010791311831746867610337218821463848813850223635504498291344255846294337254793265490583252993322528169421890213012637465608547339922414767816036270423688581837677726549578622255151574806949418896604383073272785792455049233274149436483731689875770845637296377224517532630171339316198437805955813951880138159184859560936476534863808446372167437978946572743705635637257461744019592262397116316168450804806219080945543596142129931183613501253934106786585220661239886848123641000527420549295697802983963419218245501841874919170954557109206897137015608676748729819883137937198263020988593109232895805090148478937310420202538536934214450813787758967784309841070824480340332026825166875782385259072747580802254041434816317472737833049761957689148398469124675610805747318955270228554266498973664195600274980702965603682500462599435311080019533047926849044520673593839605161773681275089868502792000817185344081221026318235626076005708991631540563596310564645916880654915032774435309175338198950376718650312378055832992207456068838859667340866781516687893153967099395883703989726922285631297191624683118101160212488707057283226238275412383532252176029481103148994895844717734749279214315601477761631535449200984348577900605612075725798128568808228781157699610940637686273209363874011073163940155659530424035456178252394463328415918192049435618305552479402510107984508230741171698226006250579831421877408553539826862582234934785467143746611725890594513054886439619820251248992471971435324736256608475532339756816024854067620603033199641489899417523978325223407327920940065512658289588325902049269559350617083724452401285977970035127402871400224034090227231369577880773031051686055835561464952556345204316242185072406664414322711839168335084052433622491003742829740967127261040576943919887259596087440931953060746368798648015526493000605294445636503555695632802156290858349395706860711379672815927659187755834462009063424619369689930205172159006119347343256355701395526356396960140941313770778166033016020584295040113272602169461682936924848955311945803054459452680301614106888972485313690126494335930317592670198675271311853499385519808473277326716153471191471543184621365805625050331186184411288220261257406685182317494840865954543931725889317738787221402305430646385297563748804167320734122313291243293261383473448425642761680091022814348075845938181171410340053293323337794098723672648056301012455644029451341823044012686233643637997278880634261728708981493901923518213747405064517257216307019320450486578150180944897156239914246233218154816344434558147487724118050027257786655521729599450477859165647109203003927947959080962289503005047696076091301572688777868072192203985940048715154957090082129300792322279887618129046303062332203181720850772380759911323754131273156376386437104388918466980500166714176399546075521086794709942759136815167698342019463613280431387280351968108280889924371488451955800636506902668724485853612268568828260211201627452760275285602103781918483728413559698179844020164160120152548087011309771594348246407333470305795180507364584995473494871393353091185493441334154709074414337103245856983133062073367235226490589519363721058815867829022342535029635589347148842116516359201042987260700437133079350619372247788533009350695876271220649436284070089287894937697396326097219348136439159407902755565368770763225866846177198076107253032951961868538896197920591941655321082878980711276381795153679403937262063129788627230965680783012390588384178366641307882448020253682934687670170301440397095349972463633628096822784021994206771524762055649354841226877355231110214332218996510073546858883923613448438109027932403319693027519689658989583706598518568244400095049290508427974843834730294327992799802243334760659525310762543478505285980098022507026911832365040227257653199420102765626963806317188559931795180049178443179120269078712561798701263877326793458677755131798361294673440358445421839180665835324846617271942139432481381177546327854222059406059151202478076916606181376580241842065903499774010628994969208702113539514354455010172782399959580608427586241500720363947451088651472262575145496442761741130123672098220934960430815394941802258919817005676435308820020565300813964945180925079373180261957490516343919378872910345390984171916143737421661057178380078683213628687325002688501382220002816449842046951084443276008177023880186176876019831216032356147162019118312357642805329671907940655571320416796150541336317928348344800520821145124412290321216712065666729562504161246300263631734866790860739513295613834774361527779244776112879340255952375703241572662931457885588695156822984801760779101499001782756235332793290182055485559147070859626277558240123620303263526044134941150352782181758802794952871756570952189431793163528846189839415000787015764485171970058829543481535221904600130048614024985231204191653449130263993192976852508251792185055310432800066671373234022410287762620693486124934450659345836322442477381371529943158468420104033744175853419664666920845466088919586681548918866712357078008385961681133812322266153297170088801923907683070241661262467367325236691558209261228029321542029315767010391332629355356324204445185120996117581399306941825171898219121389272418438072015296241061401586356023056397359295660809966428002217752534480854085085416105815032678156562813695615580327949499218085620372313553210646127517083104140176921825774939300503532568377334258805674602220147809694702398833110977131871801216206480243396116389028134553962371455286149396534331278543665147469851090132792247245874349727398022809114786697075198503297281432582901671127678843148721196960433216898741771479495599120180861798437494242778687472519652260189215101708355673421045899095223298040532594020184775671969229413319022280158993930524653003696429881993465201746539386927892304813881697196296351502780504308319505592119097494084666514718456154212246404017971476009608371234238703235952942932565470365836844797602764333409712925395169930212026618261036627876124072493465321327782138061170441133352542773451328910232445334915688853310787490498648543735399426844268338132308409110078287383050869188621560969258464076929397863760229554004656074419774069739577918382918799699878260544873616813664623544674202943681772556911656705715135540637344514533273693747443251229834189829045841697982138468896505039647318972372499704525295589520951217364750029811472705142887933688766021838366154634401084915451880486859684067311276966436461097061239489132649206799384077707645597301508090418075454469455986174891687046366526028425323780032769455657949067913629084061854895111675977808278729707741229508638013134996699929170923978701805292064972632574821761211461755862124020399596377375905766708381302353038372984253529100021391555067711906389949471038374970220085992768572445037580821360966158569044270552894237934338247324647568846011007880581545270606520884052563825096344754069436747271635140093561206223537455649838248783725353054886326908611566574837286748177288061655458471563002788192236224339600716302161788642875622418287969367336869636325623470806225704038603760977501297584033189444812437876758022008078699349638279085598654070819429994627642213126252851316587976317864823981918963455446279701928474757704357739066469339853486864795400483229508696210016836735612926657050916133927639892510858749345807230840426653084888136486592335502840663831519187788206995946665198695880405995868688999749445878244787620196499294651758352973892189676721019293643210650567221939211476419987885577638962388177140184631151179691018753752089528918444080398404978070874467609983205794774691345358234743405221413428610759460479419430841933009547107635224150270729397832403540680825747881282740579508898673144671646375579151985639087378857669871240167658161807891473392421177767086156975732330176460829208019738253474811791454190987501965605021912386055752267078055404905705921253492640003441898375697827162970251608216193152153129957165304322974981181311004744677541247504773164149116747771326588124635619564798382517886935397395980933281773471861661402437137745281168552627947924375116955973109372219716852958086912326261605678004868110077008003125161833540378466240782198213995428917011435622735516387691536910173485095978494354850139449979303026934161674753890692494429903617365410180568113512212613638007429028979297493140087537988116582233395764590278040070327113393792844466985837663270411063732365916859056237419876450854241710969597423013268694743070985475171513226588949375822541354367260900249407851723450828807149749874208108733685361664900683397082237999234995996354172314007012894495282317394485625025311349423567748698476033269432506846091271289010561774121296941513529275236030762183564461826301073749623066412337954042834221383250072179190835175555796974058424940780855393313483348415343371552438924677471826219006395198853978507194335924268146281106725155575556085875088796540569399182046050291901275191832966600335605120120236625562692148149003650834310833897932410778116278201127114657956281241768992423047607313338957479497986905676115186742829716187641061985854370021181049839018507593806237040277511629508065000521885257944116982323081425186595210969170808431099211629701535170001335400243119217625149461485459617062262977150144051358352885395798573838395340162362150026970454281533516962688731020767846742684865952345785477603048436695084274777865967061714841044595859286618603043078377549811122101000588620170025718331935488464818792818677953059131429617960449308139277851499707921736393802712186419180300544610327641314322568388993924591014273118744378982032754215065597854885282230609987881824974866729385922442559821903773107880951525667882212205168141548624375362016737221639953860861493908231284793064865461579423964445191019741972237034811282492570363628962424934157794890549567683326867294847794871975706482384168845309040930981659466025768601695574526855258739498494581849648664853260292018840130688544717925977857628283736250587266692816614686482025934222216064961222537531837420021047155843090112534551115879467403812048993411519085695814137534886216768058269541401253545690886084162651260703319771309371323663823764414405863777149739951628954087465127362530382468316800776209566795733340106985218373339899511315402576130093834826156345357704550008912961748512407212754480578998369847810362203330563384164467172938336206507025997195939224352282624473680402824687095324997523651239618230129200497729461407783996369375069261403689390968137116930215064602375463136179549588510706449859984771374281484740159494101499890474360521013393170318955249966653831460980450196671432024532042077007621104368474377296796622140615846834927515718186479365364777590095168844111417862832514026425684166825458064796441092629010240666595761993736614015525583473076625961766544256306871245206022983987824378617229311720579092801191136726147292257449789484004808722497457191931269680843330439348501836977078588158924536283374332435029484423211720614830642103306936090353122648953235158531869584613763675785419718674804036126949192761223922984683657671768232686856316256029683719427338677024226869115444318016867612642016997198339495752225795180184156050545293950407631010866103402479131111857142391526686476239368581166384221382218456130644101586623616234355203561746872156588075796995230660989524429953355832131586947174080153535080186851092179163983543836128110110579302026398407423335646661326841977698398149587272090901305492927011047986271580421403737614158272282449040800225490394159473216895760520035843156152552210494983997080770456408888015352057941106013305373431459817135135915524822974952215881497507378590684740960391270912360653993357811957867385070365367789115570747615719333147426627677576645614105875260376160491115778973954378189137032202596011071041944043077209305920727817775636395341820754339387783449461984540272886296409238913736513859835983082082415367346548107071045917915480641708596852172752124028662881631233759945292617989816312741875292889578150100594839610681806782751099355225858433938298607698475955053416730321888835913610270034284514598906556348890194213288943085611749890391873873590838908436052246559069665807040193580141375212411079944711174806774096529603003051570427262430390815770051712472981697117634562322081315821063606035418267245386821535349207103712377491235910442759562551315258624424232504818727326755192883120928234580011018267452875641915334441726499910083650622849232134429520059540110728510745336624003955795215948804023506224445637917640919308170090918741053532270275904136263693453964156095313297199668499549141330186977999436815030265647776232333410932365677733469227907902356603850022115157978209181043210048113900169110476961278057234150815740969121272658465090075372251813081254172037883691569796517533314609747073096877716656715016021940442219788176690998045105471796416011753910190821651650350552087051951328717766822040902308875572909268652891952980235350312293412229255173624987852650735139356625263937438378960810804497356708455881968809469703638181399155932876502186123828859016971818699789080483715846876546111159611467100482138929269849001582050739618307924366281256352175410265860179578767912289830545459774791802521003024364120636656248630171404542928267396643518024430809032391026112178089948574186941549609669765973267686065622756642296378774011048618277168187725852067585055179029387975692159486507223245720370347041667763213845489596036266471407543233715225679871046114640023071282355245000916543951750019123710398976807604957728476162754042288741621415676211815313832092562789303372895358693214877040724808456006935697073463574764297218905172756250625051125210753502238748595628235516690744825215117723864180681331029809760542753818549857076372435226804515255802054756980678808373710068457507049030173057143647246803255518064155250881006888640582037211240897202355772001887590688907029574679426345936506305758008626220475875879889235684303295299631922730367906741396343993477807786509359131514674769266557688552871206929591655242362856605914968086879813021161519184553032869477647097926005930947025030030673650275698205757903545301079360648963677948252438272138250885589527045334403536636921292177293518023371533971979073346204227273997230870137654630387180787554506420079935943347480798143617202021639699142710856279928904621698132002447386190588341313622656076836785837996824070452790941002041322769043570590590022786511341607253933751875271097532633364211624172073517863402290450587787327801595546726674241060018571277211569285655093746302555617033348191244945738804676796808827899328651738619615805208881801859394931233849911769701519134027576083465604799188468199576845260283943697773202554020434297820229968069593280880841625275916889780982060736814711690667447197233270494483075116501719206427437797167607914277426521739928055869036123285638482312734090087126438023401901530109914932798308835461278896738416669988729049653510241300337562369536441827087708576004025194040719621095525174103295218080682636488072910971827453339496413466668148632465898974464234149032575043588452580407014973792825606065165364967326134428589738507625273190571550442396106225295823135683129253517968578079425121134035121027605540441714087958317589163870376757097170983155887286294041673436141444177209141715183330558005385347830121537195510606765722233765294315708410174882519839712613841082741313265590578919741396870075330670375465789813110180808544219112383206334989394060189879768371794405165185395616900948625279891309917815919115994706495314964328754489165126794019649473882826393936433747735049040642383523775610442496936920650828280372691313608415675622298963438046280290882706562719007533873313962665075040804270825600529419392517659325897369527302932266076770507246721819436404781482717407633823137830968738021612942167190504295285679841288198482976182980511306615014812352216500154974613358554595311558618691600526463470573433229977114778561981322397285787757241194698156601671423198089681481682119033018320247805893434506617890363446784397545563998587501707221554364029224159573204076821707611330533023976515496613114358025615478718875945500387124285498789934652791235623884664615632421204155067881164324039643844964480661410542182828314915088340721604561335937583335884071958114882583273030404025769479267288082452790231623542172593715022901429565372821442019647760843579679957705435597112360847213583164832965439307978328763845131942926974140722799186302565792017717945136119252886602007146246628756339515034874968642484275102930737013088585964822737757474091432821866568907935491316214781953273819768152494190612642792129409765602517423730933569893669148896352393593552773761047073551304287777591079291704357366134146004461494775409811237870974572566999499898190654767311353442874318256731727304246528270150509599063438658119766594900830354018543194765474189935610535767772277611184148022037831416332897938462861560987984594395128880606338970323345292340566948627233516574310344854545328919930329111323731706220512606596537393593762863475169524497839420726168788533967565857384625152060403432985875509063448078629351376024741418073924284669115972190364354969419770332572669106909823002430264074002851471169841880159073198192020059551010923947418436104225387671575028381509315547672948966904924116770717278447155617953575598484796014301063616177419362010452309577545276849018062884957295737952003909171124386824562252157092662128136414579424134866653565730910698463047077671009903601935438958464927002256151961148193047736768909773102771103349327267581316511531269953967783207779431148357507443655398388191925671414944756799717175976781194377321422307447304648669428332858995291420724720152533257061025168098530347876944090948417629353484969941429208820541698472388831488321013468397784713151838302538393166360981400140004800435558816948496192492408911435844325876701101107447271323758607517812915957282379992386049254322013682647264693223429690087993909039195772112830507139053483607558458466315040627555223265152772721279351911506539319787586331460510034971292888356117800199365083554366581703937120433491350605400518622757337987028938785952593822687006878816394458100653143470337704232067956548350772470203405449726348969625319543772200656652030533175393100296794913274031343199396023083175860974879287770769667416253638765124326954960288362330441890691578043498386634502006704631239164863539353882601206688621135441226371704302804776782653832456731637813678496434283515952992736645000177343440035149687441884411898252065956271934275546129106240551310249426901904690833402662094264198264968485350568807585354153498506571446191487625635210804730139929397845582881825861759980707330316702333063854006596615450200573978096412599773011022004788236288004731350503152280543658350502528427562812287424314938006006220484443270482775852789639483285700326066039111116751610765344086227847316323087470243270806114050271059396519812148873715800026710274343092315056280168195274407727255416346615053150783719238476305927239840002920586176631169326639563128673468527460828510754944409917438640018041238662074643589347330987390561364264538951904448525613649450488048423305437389694267516229890700249188373022898293952371808859424981001647377832156664524018949213352698946169074244951656887107793889462530725263580340834216394185808058413513619968400648037860839408768364874331837151874503109956954348823488243984929610539293090169514608732131045965577759961924696553878391803901795651651997808894174823227963092894709414370310598009907997942113029824817716423658348664357731817257086407802586413324314546537275572852807262641835373491505772173708402930257308398370071508445990240747795995294589818650849622100368343023742014805550437615535610350099453425933634030647844369066817232302437303217580381162148350212845589541893241040584411423855307350863679270479525826381477523878843770536507294340376069946868235289939093865006245648847535555495981584086196533536528526174343896501270094289026510690434966455109473792971283661445441809903039395421334847470878594921142929457712908263316820978226597421943883216426747292636491779968949378908752399667705702184498204283384157162732222828987579378496768754953452949248307499711250029559914463304018334727267681063400027517669648779010837660823268601552959184930463591930855908405029878439944250650072291268359195856683452257307793315791189407970547512493860658959298774780336227062720512974911268918042745951355591912800157005836397204583656088119534835148036862580893824413666883929991935307608937589347215483794245751624331518464834439553812239837212247839605181625203287084418032484028347501522651935293487379906170251809212589566105664175069756020984592053107924028254506901906324709221722318002821879933658362896507555070105529168105624597603988655538508726330371991492009453053049867608872431430095375839039048149497403176319779353876514058233181968165466535541763700200989467436745791577228871825067692894321436222151961782214410561106557841776631558365996897650936193410710746534976335156934517872683896128582974638866530638059748312853853399465488305331122319593000423367624635016533522379264308738619991943195472893557339595470018421706901438467509588035547124360970431890088900234960802355894976801373781385986529476959600784846283374403776201706638001895804510057786970369716742180056952944271074933329173534270697235699581306794270239298492510094614741118120824597928930694757125730656682611267724393340010643034345313118590858316110302842354975961154999520921382463932146861628856567076708940978214848309306058471888450107198917648350995158565264624317494356644242516912307555685992503695317717792304126501917390174616334743193675063358376964195404234116592606166292237089124924912906698097059798949037956793200478116542217224106363084574508348135156280086733615788326324116082130103503229034377802510852229413324946383105320125883439834516343997866671638687765181039516126453455361873095021629547816432050914990266855306203556640354832234599261739463078336761737333367770345739098993120673291546558422464599576355343553378430114545009400630512275259338611844586786048372733269435159883744553987617709238821609448969401516300605145873041359417711354219721586904696227399534148520924731986049052690493001405483688419893935310416684702216646064072851147347353984220150669526639589916368874694630980578424178103306972078503634457121287249752661870384117368348715857842778280278219478678717125133498827821647599833723657675645050140897879882288265219702418012404453696697047341979916540449565289094116178988624936537324264037731745189909557045142603854408675593033245526128021463115644557614372477552146268805004146178107690929979324944028937972361427872761147987628865880523531804942175427633171050584661504759853382176814468985654032279555291743569699406890075697139601046054341085484884181777659669639611132495485953232907798383855298239969585114774740209669728938858911438362472411747115288309902574304286077745805302269748668154036620631541020337276909856149724706989622740451235739629092701377157341241967499366070330099240599200746641677835211958483861523868975572908520077497148410662595764391857645194364668646929865078641213880410127948859828226369513364377001061176883656052499962474215366389499845651568178079985087602561705348730961478957982235032220111518019700508534395359849459608472357957786162548051063499430493865929104359971464226773841275758791582347548157387262590466030770587713064600791481456819305052519583424390951739629402479747841091616337248705979553699377873022342672309118272376192508699029051481292929822344039685235105764262894741695542016529450949589194598311118192108426750388723641782628383133004195936407501947684699943266602934276255844121825093065141446624284178690823507140908292714664148895436650450244445470985525782546000908505719519252126071285026847616146547985047369078470608897108240456047719820173382941462995480285214131162868798857449274469075583462609266639501148018666277426787510572461674800559191826443736729746935011411400080272390740211271084318087962968240782564963154446516037753812264996226781316328833560258811083953824253022436766662948648052179930023695449848306127466093364010090958219355581894020424147645990907600291451085805117086799092718387915285811978036883839447985622474916507385042372509402264661586883094290544284542017519959942099251997101347701070900825528225770888104451812301442496147697279763950305513866103429545074523189175174218870274577783730249952695743579197208675002658568020785388213704971309897127084603459110343125684590381631664117258596938185350695467391023059647778032697283645550154037197358333540318767496515845446329800736988710926026188542305706666524278582081444424159240417343455220851183562636682448175961475989104431899202416286410084210718601562566131152532644616966378060712402635295528624196354399196647544765476551176067440788749384320273162884296944560615072557706324173377926498682222041811287398076486184719328608335180650521816528691933353486632098103224832377723703477542868461287849800018968838274991338670748442930252913812680481579124646541274908513928729744924329978863864972564586561954623185791154890251725562179241079719673345055162656518176012093792244236014071776676824056655404277053422203004796133742485774161346344592075217936677945164545661810177556839235431699658812818562293640601332051554018290110820105283128396544355487879995168760077993649814969994408994758011429059495190888806027358280182535654436452278757699006379867653874799868154911912462690637903421375973012174637016416886225947225555294671820556858283188389878628475474898432227808604527505280569741680847191442962636596659608322572892965228897367264938551101819619513385572725045123117542404418428300778000324590088849479051210684547597279373638645698268478125934849095479452398988692488336341262661596750184658492523631321664881002611718780265443164556721876344777541269074145428579287057690522448606561972066690836339740970864893265614946623897991165033719352834815141019300939006840792355520173959094291232054666831418581336319763524544836754637054209412461123455203119219587411342588649062088972267314603536235027694024701130201731765227209853901800667840979776363898822301261706223535816309313682879946611456931095533146732578357049249056216357167650775541999198964429437812836406544392674467881077218579911251696141149724671702899294917204611377919660438462725372474285644254755842594144699812761296278031660215179806470049386116268338271579440922944203418383781805725676413397567535037493020143937403620715512337230659343443258308968155093029088223606623366397361782302278126590323532344745539534461310960305857816797177862442514932953915020197918272023082860933976428083631941999412626519622656261619568046433144844293491645377923148548296260140815350239621889656390343291852013374066955998428864543918690216835563653906544434099524642384821509290681829994082457637604879484257700427746874884893812167543662796299462519650492300306058644115870347196312614514283931225015695137578630908930774786113428653848223941231170830616678447941600102285242555626865326863516077200237553535740161991464747852177268492092650525922387427798029139463026946959428207677914846505149167151611973452051062466766518299171715549554450297392536911724107153663423466883329687200869340778617958210019954655362304128479476530707655263601509189929126740532461273671091246383941889460416069678531311329605542002427653386489152814334301256175154631809605375380556922698882835745852672542312661717737853867942929956375043989322130796146045206857376770656662729208275086992903705636146370755319656611916609181806099675470551703489868257646964570258423830525581533492188694398211728382568398809130368818148353075597156475550900313539723744598383661580762366873961729852470383508409687664372497579093211895708859283610036869431814122576626065704099224105020323932464438558937135264944795052545955434894088453380030443713752977684152728165910944670226375315809195233072243244595436508640022627805459738317111392011872625571593017356025847607284636948876488814266005187897144265841906460570658788234969617857283981985131746323771436156909776347424461892401833194456619892686596415170821868388721273760245835793377500614025474398488349334821154488812635834842916810395463710024071084798334771121575657841803855869879136978045828187087714466245491317760018807566737009703442900556719026661202325381099409984502460834404960028220630517691085926416279060816316560112574832694008152712532540939793713215208659107252104768976239587294764721694051695837734833113596320214188530311696518225374865755934222293859385358771542198727539778460585382787221020137365755347167080090360023790285411935837524954872361662750117887657410151004394926012631249010716170494445254875995383986827161656374320508093596233723211234611318011146899527880689702488136866634996993605433353093706748187875302935360298268132735376763996089671922381409254423979935959259878826612925211798276083157751653181553510143810804720760484081719639522966156356270643645061897175544945184192700960589423998033622954351199964709902187114812825476416534506625983326190178591380905498157650676888367868190567902469391557173332212361728932663870556335797527440474306727078084523092610397561876306776118073315227858499529219677848027389187698341408061503685450292969476931218235446849564387630660489689518367289465628629004238572333691796450597985638902351346496871179795040117424530033716495454321196213702672802401586971369768938016309061156726416483972391824978587973960077486876613673314126955033055798432420401353665412968947184897749857271799732874957176507258754987433327924978030774076290162765451026178105464129385956886697354722020749992759125140654578777709060079564726419002704103615033986862905520424062621439285327870477239495471647329478661557830311572380919554507957799979582237449078799202210079234973040406744185176375526876999141586109576521397032141578913300601408213062868650338082883745461412842625994115774198940852586760263612672900134913176530517553088037156336324185658461194887121213766415736506834188888864953617259890692521219701930205858848782693254933224618290750181668702829111486722378484101747503000434936430060572117565152790649829852359365996462413260585567862901870867764070773993989319834236696060900361867027065394435954718261245109169806427942957934218298945379884400973361773457427922579212643099290207832152837416789800103613759460264847412205137545713903716151545895772025076409154356554162572111738211105321699763130294195407223967428231394526898427055662855169149556226054443116702188755718840348605963831718577760918344569023896439611672010160698893126816006147108565038885818181224071523114046972255262463684848220371905760999156003903373053019476644823994153848937429239745593869354752082734703796439465174914321258777294105301686816786861106497889351365049736784034253214974999458894207137609179159816079806532638425691084523283298307451850311026536387474811988430341750461587905344714423722569741136865097667913953225476974211942006429919777644539686119094794057524167403891840611331710933272058535287894871966843071685003157884809455995793477885298937709896011008019687018984655749404654909610000607800365369769742551210440836696091759721947926988932261755687070296080135035019955497032686793903050812824358378740145524802247900473254324224285135105038847864279653199121179209617020993273591571750112544336142963189617096711119830939674342748443737103093212490410739448028680004760841374972731285282843893826332140369709008320670813846716399086206646646190092642107925159379060019850649237590930261446336401783062582535367486963138818511268547255384149435552827126376119647938816118439997287808591285695290246607252874832840943505133227541703365111701303330492833213123829378375024374738168457934344502844639293178245971789207430635057698462063178495513587296771951137777936363275472113854098976094347584128260219723865363598229831263011818859449588749126859896391243969223532877558995807954327903193889036644363880644482894661737412134579664988476960224690301719725538390684816859661896800868377948437911679080507503893958707541388048138709630382498022576352547820020941968966454343850754942206931913821958565960999547375306265506335364160748029109311948223402176371997689327220695568251208076462104231068763618880475318084605112586085679038904225974114517836542317455140442023672162685929492487510344765990963757062855949266949327080159486232125964387953401755866804699025644814482034857846425405690920537800697841626748788051388545688668514451683135191577971683164519036002272938707330877203636685790827001734381642211134504012434407769038891279498581398563977916142809334020433963546545316642717852884503020639048607966811539478928195709248594861289157466341099132455042453083281639193212009648745504554858307382994005289732632455234462533739330602913790596951598382489482261353131543538475185735302694182205657559267489106649505803439166679146349129404284105984255490848480340525017639245859187066498737673618658296025459583013878802078221332076600406916744517992347651892123598622463507431365927404138905166214680905898884350846706128468943838488589640982536424624495198539146910504763061420895302380433519730624597359827055272655222812644292437277938814585807059851532855066186064606142700369664534868790781957420958983388044784580246855375278012339481310847156290631231891436037463258517228866224355368670317534500503967050018888715769011998905348598548359932768470451439300478498946470326569470934285436347222960240740913134782621892049555589379980319655113773509790842972321797980163924918494018558042887354950669594361388399060806836221758304192766856559548831816678438207469026029286397826238074751727822626818162395004964731133755939144790628497888616353346364599079600282804190105652286467374882998403295816212281324233809727438839091556886492838283229759887220781582790816770479750143357043157319112123197094489458562400962003122304093008325178912612050660748921708345156039048975057359707684588036085447093142078279135234124880572804483304788108980917574998781305820011735084104495242008959865386906817764836582451113021577749063216612833125911208343895904039364390576509365912947227333735474781186086818904288100623471622537276587632284824497980606040461604599990431541225871511104365726068258515221067731334695136588824809103479510645493378464416443652081205278652402161913392335358137617178789436646237196326933695808178563126281877803041223032948773959980167692932143390295482327041155965120663449907145144755693923659209514781961732988421171074799260058588329846309294579665666062415133821988174492124463572518903265986400579478928390949244221703704789862550908784950080820777793293987089088515143473021155309077406094593740827083816131018653191856650942101256311992838806965693554447197983688034498793562627597766846950503828270349117457824549948498438331406861025617211272691030857190023483986197754939612873143686118249126566959104112969300135403806797671756122435130323469187300783901832985347542743927904308109486534156168223589554269860111307001089880960427246146124414417765482640590444565021339044797119338417986871085196790289793983661754995130673971993559463686809857282920986781967905089953005256161496605541396178776580409918726983320760399640305492074277154490078252766360858235069865214484658036093619442280477964775186510114472113856789294785446398290133370243318767558154148689318052969860406131662697744662771305705972514967708167136273431232394852431264992136213766517441586458171329614291578956036991057300397266545906584925398009847542465688748635242133344553091830098400217980722102294634732700916061724637511923547012914517229281883323408952235474456422229262271397221377772176969257243019703990322951727776745973977669904048534404917042718118495719404777540183682153228183695269771185306974520798490210938632638545539358615554566596689773518695276492970816195892295309317487294166237907403330623106330981892867039920735976573522658506715282949607882502966205844358661210147488104099252049332833187727854381341576599104602213040976928187460650585931766818497216216216650620762398775009078983959995227803277475214104330781713991056996917958662334321897647023410447180884101428474104004987957932816185535989522117968698336885238537250367171750224016179797732891304301586492586586225812991388791329294050308171101571186929512380836749084401905652359018363270382127072705198349354779436616892084665039097555889775259780351354327900431861372611854560932686262652335128661365834246245494314005211339410925169839881484864606175709166536233478547615346068746126908014311558142971980096178670472721141335411636123838462643971588514171328558274922065183192452935792888367943976392110144660788195137582323719852873129602694590814265256489388558398067267176733766234494047662720813264680884452368981754931172924245686077233600400997342332111770124866284987664982751823254767618569820330929809480491073653568869948662198291644043187979862304252960731281979532628724121047838226489133357616521171194096217629665237528539790943943293327648054279905083669804929613397835870887768240587400029045959257304302384896250982223139116391656700018650036068706223803495251237502024797383701354871983232083005783382102282543473186348034792877292412249677251904727755090986973662071047756351947408027108984837792340491335106161885695786624997660263586196624355172581988058294927714336401164181820809286417074017374814263002329556429171580861997960738580175043242286624605598972695253929544005231519883546274370248460769673873696196308792869483444280387490656346533736310314520820018202717494701361747582553833307885357580201960931820441289761643279444646817964789424203278920876757409635738234177698448047069254242004839501528819990610671189070560406932215940227551549475184566669844753354334207375703066366226918574889831842423645408424878451082781898124328817687657591749605660117439869510345797651856225720981247561110333928203503559539811986833598991085928793554800781848577191447950450539916712353131162931896412173781202971108003216382672306501532917671063042611708378533356589926811354389422520776085614240199946258883347857918001774417537677431621000512205430817668595391239884943830653775652577069214202373982984471616170871032091406820227029429718792761148374474974893323473828390559220013871781917103344071064470223397919607444553907686702588841776170743706638127060859419965041579210323522958710039329993443429068600146771786295043567282619737618114396137475291307655799813028322383005382951235655496660679301352751212106643562112778512219887980713397723286051908732541164188607157688571861354972559084562074961361473516092474287976779286139308458591670546890006334871608134147064474833422021165913006465298833199119606121532955221255700968336977466914005750947952928542671509438371020250722222773928281739896602045285343863820500423338944275344610789015200209188663656351924649006193754612662560242108033924363211705065224480143834561697347072497492301588817075255325165230617798223573681389501350020256886576402570292353101840542057542468955877897669912322086172574810486775471265365761704857579639756709956591419404685256054677644841438165603992603254141843748905577110055422356619384319982372459882373609234940635580037600987083445631800065635424289019093569255395522803878867227964249910658045253634361340393491336911094830064366167551978807835724250414703334244240317173748201515097913484751113692694187407391147792421122750103113538266134849669059907965880463514570212721354729318269974412341176504154767781986593165463383737148904208781979784602126689223524148776455317740591443368863598055630829322188841831732204682369574756016749846679802323462580848789262443749971396595666531860440233573170057683028329003201527837452743551617105141733136210589130793485762381363675666912876256637018652491758229276549541184906096874027322410672477363586638570945297221922796073743577593906410778443356211476451617784852863444723964946039292551241335245377003201047806646043669699728896776067482994361348367297690115893641366681373602697982400340942181600416614253753953216903755105393296785830405101141018964529916483134502795861939431331275132124036328801586512897615218358832990607566804278681290519442928391304705277595381544175808694681448516553800757657174809401630550012458652222915507672445578516606894638495999808277136141605592714353497688093853200706503540527106445993539990765593112663260157486358238864744678521161064582073386022979585212421263667546856238168574859358359816296890471141121713315223042420878962263470693153455888090301363136567324964233190909471788844997094716459485016880479231454350825462366575363962223907390997726347580318704117039651999526388688443636364928448869867394103360602610777718098386911071320773283381177311565849415017562120275453037001030037843971661024957267971360485798805581060890472877498231736177436076111126663026166945955569478683888373989097047872019612288003289989689144650127234394396577184697556416046467193047762813174972042159211837233258546373640390617045271969515243996855222451328767357078536842051636659766358256390907835153689024358151048844026119797916563822109640771707711364433895116667673572735992260992663612926630456010407992692986245998619389351354037154377061371074715343753691496713393381503033442376263095478986351219795314238894164212746590628049691073275389482875600890866959966154602409674826683213739931969471079278628543138529453566620567291234383455744006244791275406743628780636667016956834760422347747690227784683167991912086354977893199791246745371279870265495712026035219652781364248722623758128183241583018379294842502182788292906174719167118913941106646215148859560826736262002993490048691828322249301987718958008231783803255528961058499586644882179809645262939267328195700259938872659711192312671403419813254102295077271618458281713147246090621071915601332171141938136619044769005534780244364531178594656640145806124388778904127208010744449867180908878298516868377295541576186044560016301639503033452367026681578934031472882509272440837912535864568102228754263029823376405129623173726806615574000129621993620227869055165556611237308505547150243813676846304328682400423044723241948283698012692128597113080182130166432277665910625233910359218538638737350672203324558001116112818388287011115265780616599994977276567330525638663934632660600280230847807183986281205167992577919012162311441825794794065529056634120695359676058270079004564519003147171145241382966533124104919243792838715367014850482559096586122703872887031477379950286384523740238672130247032752314178116655072258471202568244135502612802579425930047696843806559867690402173229824735147751285366919934981464313050185581327244695588434780831225269341951434358485784411426523816683229719696725288868230335047078264658678911398986135129345169881903981841995484127827293021226123697026025311031821311445300223864818506409061100272374830770828456979445809788940485659279089968467297320909915637520634401868911863440990214193789318598956242237832560290815457423487847304752905713530755445693555998136875042559229574106660103265446535586754595532181483755366732909271586918553818400806961348437258522731688029340769354977622909180345246545016794367176738518219637832861702991845847862716509193757868981396036702880296042267189872429395074518360062055374031138712547612648477049499504715480148227716621210507391173622625070458037798182748017482601960061608615563812151889693749748181660239243942743246335967397950075797016900475494246747482799644869855348001437602982638255331887346594737215934686354382744696449004609791773594085096800811461736165488137029873997488035991635816772341307132703542573520545264103881450283218024634848974973328625078531948056038733941552969352032972814352134261510484976956533965760298337474274427625020830443827697909757167193616249903788075128859015995542403488427055206165582637846654634183360238028273868509612273762407035272911097225663999857245988455081393267204134757015230766243770559516042314663355404778125162720490059189150331372339812408984348645099018837000160935757561501017945479534373276208508745693927273076823860104573276753304049820906180261728574954734441219884077232525972610899036115002896210108277691832282466202921109433912967740571189993864795191078798550826169680969702016236491673344745383644039006108113724539684982112824015010478667996882005821976328343021853623729900666814120248588229007023044729828122144558514845751821348082071467143295091905053391385822754951511957518009197424469837759712367004535901539987399247309708397739161240104329560948246190806124794173450460838752123960707949170446039227512687680929553880759974235332449901150618900758005454598574295055554130499602523771995341762337789502075315332816035327184617220465363916423540639927468916204535603963747067266823370416950154536902187339274010585861095794689053407625233598645346006434248785160232699543764968313956270050552295784108340303748949538261963661462783098936632463902696334660010997486015893817680087023501410640890735713015233935487925626959617321259863902776518754532517192298942466819644165096361288969115626234368193328217059422652169924976757682444990189020802999941042843099176552243154084139497531531650656447107759990871697713555152951590562496327489851417651982425363724048363664824783561778630873487762244079872308325029134233859900252414813660454482976014586371445860985790865851059664287818098720672216519654736089993091892231063003766048815316434626520637784528670585493544310089096627450777269524372814170023302706589256720283876629624900249511660552698566212453108729894070904619298609127288778554009504379942341916610520781069294122836498902991212109191453630664420491849185866836981660559419026334732698983036300611216129457206432473910450623510499004562243022955601710667097713254332355822098679943759513990270869287858087841422073366852156937907837895897571233137530094953037106781543253928600819660667882004719626554320749571517632112619243579055030612431349897754506741559155972014276251078699495221877428742678567961740565172115317809903210972533848332820052222486761427650629165048992591166980255602917529928491234102803724778133631586330066307403521361245169518024707166171245657267115959607562236305705109128811986407751840948490316016700442888508361003542140774300478099397272966872746026027557479771374335834360464788153557337950661248505377006919829576492709091372583283932139532212667846153788926217942540545111830237925784946350103070994619255666055150032816067595956026193552459534299099100467457284249549307117412904381090438782781475868936950015016446885116150306980847851549873274149152684090364860195987914642602024915897752929343109899433657151378136116235931437138368045244978924570328333364405185280273978202703700023923543666110934296018098555440876535472432417904058650745441171912716180546435106084335328204760947676175280421621871949864973591403500931121230517430772580579473459630178603278750059652642742010440848552359308006765793834560123581020684109959866785277605481328549139162058742051023044279356461950721232994795004105349263400473147501536891685550188218234763945417564539765240530907655315494795914309769529001996405658561114538089007484059779025082811815063910488008765378073759210390169658093856712627847324635456518911019727586471904801707066155291563808508381218587640433429245479648009938317713032896767901598395917111437207369729428730545985904409550507665254780737376287810604903205738724895508977660276347737690142587666950790256910273394117551108921435595520262768719781467535442794204401636412610679099658740864211075804858141326211539430366381690191540490975469195755562436968701507585509940787066328068862460671885882952227228794313760065247239970602041888931310182420451955589478776028440956403360047861438411934156916846849046061155996281507914513539046266546737365596635546663871456971083486553382337052565520411556626127732917236269503984157274556483324674061570004735044128219710074648401979290251643600522236555584022112376052646394575139164314491558648317080708811010868520302523675624069580645389742462847693097011647535447621357505382538199801636554240437236873452571875001589042049784095124923045037439504296206081785223650936915725921188997427980836052460791027892409738119235159444912635152567860750258597391850452783238219480392265116572739801909531097433897697995022027522226861265894967351094955665013683020904362013860328983979737515163233215632161422490010997790819540588288096433961080317097119184003961214798652443749205484197387162712010421301116841352993740829485065516833260696068406661883604479896724306029240180481399959122053967837757711579639871210135094817358596812479239747522565100195019612279628070268662160082263004781325833810300352462840090821324870513672669534482809978025776168855406461613515356920714145407805697190287845119488574389529693091144743148320090440188814566208710172720966741857324803853961625055343974368765347911559657545730750347934993984531073126568101758754687247203709840058631847087985489442682498335168467243567575623004904691773123368535504077966384542104305507405891004591614469261854364576363380698823690884153849508833260387465053833560042213776772133686771789835677326050309358409896744441023179868040535380045687744967418465656147170580067029671791880906744453201829666255783139397492911937164958351420676484592157007184067325912855252284700374267712262542123013306471555611200595114735302767092319792827950665378298359061925972722063194504168021657518269920443050355684895319762773384224534846643118102397622966828676590890471456605104263435706550640828711069461062327702677360330484934597103379424038358908773972773483713715666066427313694218007722964197288392943724069927993303201009365521603468912794968146152726827520054639656797073690252683747516114501946951611065343016123696657480208241870719425296811759525022802718175850978187493866756883991338066933376170756813152284785280165703536308585147669295223651207844496572325647183990384111540537092715847123199784998026317988133869416264693641972853917578437553845065958473549812126593807921740218281480995672295115624335517089189809552357066764942306984501701538315425199365807712377790097998692622566999378631464414410771167857361851229223444529963876128839344022654705540481979820422124072806845630146340829193687457675185512217170690610758289962458251114990132484035588570199317397891232797065115633755541277933830199745485859981993929417569540881266706199296615215399339954319844661789984051765325910677652037116572479460124999941115579048783686902564067744990879440188375698639952694742866779312530787999397405703013463267075943081824019928634776035146682092710168052707038559361552451027020356452350418865159057762430215494708229697074818956644988111026746806347835633734382417606670910813747200458176963224212870126481791744286242849573238184535015778939947589397253376060538086192931392481959026804260000561593768054884026878830446522113689137902947644230150902063644845315446977899125041527988123753365493360617596104530451758490359740279094809675621033648211663749007307575774058197146237898098188781414150661160969892016238704067388192286638730763622690388767350897660401395169220751705238788394798949936884802477271078238423536399580794184631876699151304118693080221344223093164424809289823871616821624720483211432826187653507678991073359518143881116280406703939229335938476160727782476546953601580931160475137274826039547492766326134469904166272166011778461593845489824674414089262622162117329895036653060936159407979319507770885165931641365494393931318234591920845798552090809392994768332845682617026886531256905581269457932308672854150785825488168535226622720854653520766960713652525367506478681444165100002427046837331905560366240322389920454972476321393995862416574800838655249453063002221815356071430332686124229602169748006640597532835839883726623280311096961130503477713326040088137593030289329909228381247796469840324294658129762366609413357642272322258750405806173582245966551219569049286246292181545873863682812741813848689648712635236441314624991423875895310977802674457581776863745474710111988599711009950074320367633188095988967178372864539598183080496463752797902901097226247405643557908487162955062870304290733010117597634815864444436550881214449236111824534782630427560687858505891395799260921309378912611057564957862205083095321182499253897191645141789489805499113208193904372348625071251705766553251980145857225860007818359989153905898177826438545451223566583450946559882726390868673175835244436540449647600072829045550630070374085558425697370711510954982639707208626029132991591557915260142635979215726791857229526412050135612278000374170109579705596427417168750428295842975624866721759425276789114457613792640558182618595529677020053480836983678559689300036100112967074610820823335191937610564968153241605685563507649293725232265615484661905431265379883946021651791557709090565484547872262180557267448330338354107043514510567575558447200234156980522883820572231660604857961393337439007410545252555998947293794469202732631981229413224194501360220338087354535454197459564333577180831798502266977381680025027108748572503158428016678486587624533875457142285930044167693491945820007149676651610992383512004077423957566129216125302939723350181471567397205076861798633843684162024509010470828122028183035918627181831229130091214293825363803526359123077299815798833689861853093058138699881888272100892449859344633345543663230547201633721037332626085846015987201375570210767810368210086313358553747682418329701113241050305634534047243926454397021461352720273540408951631149023359021292379921738724708484295247647598406960710689831265059958731771281594728691606711580379756349726228472686606181167267788215280089730073553143806915368527428774534821362600223887127491891133953340653246434863221262698848078074623396076643705298003975276214307407352811443061968511156241420743625138842542965966449305218865690014371494716115036942201512385737919582908379966317997951358487972390747026116791825887552206238348140146940505186027448442048743984584299199436076710083855218436839798239898404373247801682274047370493588133701732593072385112415318946730495822264549252607374240913213324986115170369319746213294071642571425927720543221575367123179635756759314377104108718478277883143912052176012522383756372280255268360893248079637544734618634244134722461287478408704019855499561381197330433505074434520701921984874563532692933675979506410609962361970980575302317048364910011678991755018499208612473512477596998376230212839805123651798020988379098608482429237048173226264388764750494214682922105462043097430800043125955622969047606448396496853038154618902573137271732711563433949183609097315576509997696628408319127194770082527840491433615228689624434180449995030064359643111015623371968997082486117135034048271075400350185436259841607515263376906403869795237296327762244256052310618608409349141848487025050282532697416682557839538367761093940440132221610045472943462232982494060693176463324396750063875987060707186162076463076497815790613070287179851626677629357102563526592708066702426126334462321038546305617487467520284092573227607641097546763939421345703209628215415244336493583475525446695804963587926102595262997483501508050477042269924229734244103293085204126075712712086861494038845274839445520071103092092012972352687271990167385281674688725080501376712517329906475748102019489262955673227213280066426588753727985424127996943781322797807509964042209914400992028370725861586390305855137037322751280904162078873921121541206282104594367692190632055012702108000713109377150990800498616411193265425614337079179371855608874971292346404637997869618436594695965027656172000333586045631316524615086311059107266663581150770018147364482455750057724726751318572763651317226714704581721434431366335595519353476542651988347536145223369282233623125794772777046798495820712185381700684704382941349118464541880361325468027957536090067052438877201601717414845138650424599449668121179940982564922822994284608744070937927583117619095290798878041682664539378618363819771509786531323123803514280624046331382545692879971658626962607594790516891872770951803612535942123767737418009474577915088135396290992693547190154747846027878886805797235282564916660753343391854918907885472832260222290506617615031035042045795576977828040742282865321474031624071132385801007745695594471811551826917540463383209631904609680413326038983789660177252339496617518435664074979342315655572278837644504121726800594117445020318972813781197932287580874679464401142534647009392870035068665657758579166301346971982146042343686893146362831308775545143656570644268364277150600790576953961552843148982723072691146836198750619412367172063022952925639120259348244478906247992547819426301579054187903658828926126937012028453845916246865657480707455262192616529967545941165646697386816775075921362064006176281680844119243766136840477518990666810657280509349543621307137317282683254888139219484617005263377418777149740617104704765917003665282619454101793965936358465729264360279457071293304124098768545774432535848746900528961915460423383457533461138331677259367709087181810689426025203730068301744190657549300599657781505879329473313055735227577533206258158848088091821649691514452138597569759382712677753156537899846539255336819958432408520556710705296395178230935889275284887157552212155308646987251750954992994859599583284042794923150763290455530835940589810786400072908992640127429201871898157662704522625382855218455494966434987281925612229199631684476299524947272193943862020304966804294260933792043887869391825265441805011273523357429536975680166706899223146035476935004449793531460871509898083783495211758350640067003764939176598078978059032231782735467976102691833191705409037865330055324468361385591829599385301162616902816824167577777936546035971781951111836014034805642545583099331095347749391678550953742002388636790140567444474737860927222536357583856439174220617234062308131234313364603114081532461460945323092526815093074483896931135714267248550101417237265949464644507086122524083062111468420234329922878073525182458724409415317752662834208966998169249810835041432845417459131589308748100332955619533864659301378229053884731546628898550175457432737065793700372983763340634549205344780508330967410304235177259031875565010422795932034064699859227355955086683807246848238956579364008650668972752706131229847046663857015783251255756034057172662625730765273933791062302486609201464810848121564715897838003740957119584756205720380626821307920042518455455611979961695806144961527621863717122948690328322791870395655428636070883989045560954858022540234881355315477989943276481379194707073604129472082642758402584488983475341056948476610770458955391704173785057343172746507114904254222464379252092559734855464240974336632308020034577403217184392447974942831296425887953420619499315848054574667460032688432933085968736281552258274987443975432174227134858503314936737708714942936753576023891334374794993131067835494134905050281084350040400476455231248552582995723244967507458050860431637875229926935749304833376158482001398601684188814839499688272799899329374312926554251944163938811183104673629499994644652455350554408736386033455903272260006235701044452390329705379987402194734235300912025617482759191394431498592861599342208689314653599972762769290828446248468047691857632321545414962562264394109493492165216129800907276521468063300239535097009357577158672610303263898715494100695213281688999431092912367984835931242753281421694271075912594590681020885899272556900896938934646751848005608999000755970775026299179277676167181016428526972452211471163008739203654111148939441388606228414805311590305348490551265594535566799442396066285569364130472621148618161521888307359679586333434268521029986355569212688780501405283246596718927876943160504872493188723092421189830632401899328595268563955129151781092820892280059808507472098657820054370839895841523371486595188544008805749684317697658810438494780251319905129176977194965634251700925963335314575056890745755889387125479199764814339307931233221574082052732505709896629331602922716693914139560880338764915318630277406969421008626999265195156696215902532003832680920807939439229765806515646792316317985370121038185325606646661336733283385086587185636779910367882578597629544722872954992969681169106994006147981781639565518604348939707037593661812020663208159658226228301093292324228428438803166385657665413686338200288120292549866013392379135290919697373476200780287014033435043297561151287343945665737654230315400329233965442153003388273148359242017649300548941945015575373665143088016971752708599935496426696019984555960301765974726939934950020914988257275487042918173962598745486080466303071934622471883537806110681748828213241077786426015883977569521084845012416205476486119201977870003108319872481999923446233556988610440420950939424714930573008770549403826469382425512204440911101601543561787900361396385078156834066790991676067063188581555261606564155960847534609513133180707999708611139678725542743313384002327875772158297451757305733039109811452800336712409294722650822199635440963119739888755758090461163572124748539737339341401457178591108563024371976478478009040292073128982765279381201969470355394758318836421046626850918639066593031377636340586713728830287671343494595228740284879957111204502656468740687660210690482372568878123639297576686222649918349167958472307608085174678328474098219686933985306606931005583651852373612517649691626610264316650674501473489147507232120260863736534809643970131282860582712576040540816222870328379753447099512256797255520664315507903569555177286072687932262369055030055374077014045368127367149265868428515345390743089584699706212423454742766061035199324695708492001048304503803836501263454185671627145498633120174648608777762317321610769465635314457883396729056860852591893922131227757450100175531605994628912026565861598160711284034537526408958764076660516838410930755720533380289063588658724143878834763349075225413593761435910988251439070651425134225082411931259794501466497552777322179283867688308414537179539156307641026621029667990747063862560553566904532471394712102186894353585574542403561321342366584628471849665660389479949772293172447260069254425542473010013728419026935795957009558234492119110852507030523372000129301514411895242655431538163101158677994014572392379893372315640659667190849812412459736453726090887954102039539716471832796294886103679812404371384326304541406856383034764727971389953349734744724647314220017182758232143328028320987421674027053957802595335119108280142616858937922994599801908037656522322091818298178145877132953882356991735453390993236297806962904681064090404491021529255991704757173031973178721869715460034787865300981748606687084659610740153680549085873180639038004616245959317475108170584894904233933696943999642139993157974274914163669174506118439735479558695405208201009234709588990609103537521538420090392461593034348495342755749762815734591644341420941635579119047588965319970845658465665333926423535985025883967769553356726966204641620239189267213790493906213096803716419070527497719485213170454424018591864407983846744621568607119912456556505750580314747785297461067484058251568088141822728341333922087823710955466575875366579549297661945430805377833158998996808509509854178931102164390115454201120827201446879964850337493249155871655108190931967422119472424749144227558707375288401027631528900618412633101701646175036449624400287623988965965475152385581237925363143109847972670944898348323974920653361747889029977695859134373228865216641477678028778744319921065554457970957086139517811578272919606447027442626079313379498253900482836302712872627976251405736698411101267201249019295551864266408198320172708589422168103120737962243534903991185052549522237755684839481667165306627985220194546799093741542928024960403484089731604701123624599648119268072574359619873810354783368976163056387505074389252833402556308070403818193184587530086049522557107549801076688072377149352954314952719306136028811078107040203549416790923123440616250218171270762953991647727320742984425034037675926474923815251106500304339694909181935496641802919992542532295124724374781465356064757360561612183703654647517768356590133089462161231906597398989003023632684869270589982620880792335388359322306832010737914014235516504972717330617355904799651853105118195783495278726578268533691897365343617259465061966925846464637050509171269588458444907033413544241030662121871447595479141770980960914907044002835767132908350007813021919927734057539825498324696436959531331211718924483172890727433525873083455881889092647260851118515021453044533206714966786533748881730994436163413520713824955366831716655332585688297168353048242221619004352143008606661683423348073836764619937097580587880781784613198049205659643641053054165395294668112450684568876486076732443208212614145462255815901880397362282801883234499092745354709178058728722506275928857880294052668554400025084237984037405606139382022870444595625455416929114527997440961117855131073744290945194150682554658476954791447790744478655604131053479325189782226614828095540939440386881273980309728290331082058088112501907243799260094017908183031851492158049099051492671678482236844490708221505532671133479986213907113753664681523223848063106225773308995866211604904226083253040993346259865261464867312997347925162100093870676260250085584532317626571471611696094501904373875904384406549341488046485464715949322321836546562069283695293146391247071355562215374815351700118028657656722545323280897480677816335507875766666493197729772138704522379760368663838089395109842946692580308883515091451664957669572688261531029494245851360518500546777201392819769081241271187707050913269966992234627037960768832165572202673647455680685936470457600241489145797092266447291238834064710790042911153770824449718162079786835142741603823366563477121473481541616092621057709555055760641905961151980632992120381724878714521991627959200838575250936024850908707947097507580067316248860223814670158449704674618974177780683883385822886077770683073359314664061202004718642541366629431326101581271613103590479428376547531973153418352708309851073682960498109600606398558622405402415823345904341876319645676996578145352699285683767197634969582259617557755846628849257734870510852770167864307834908187369120740677723129170545306421351800245901855631542701569385353184361944835836640593635476925981560005222787498741294735047291488176034554366239131662588524715345138891768108351480952664633435053855344277904447852818288682230377914263912250965649258258274167187341461682918612615007821351885526315814146150900236843520167529161523095037497056455641348892876182455378440348522573334208659307947426455628993051539377079114298219221998520998541456961721701400740278122234557042125000747634640875790931916456476375050817329011953198020534023257038244949018860519693899326925483457715697414264363011751231886835130527699149777221286972336364871642630861829946688462809695049785775288404627739669928910562664864151276247913020721701876154875503114390345936551913725200382165458162424819001168868744637800537617683355385432916695020516624655218149638778478239094339241051576943018936420749144084501974567776317634187777426995654580565474858453889964100267835414647920601496079604540712846909046812280068450899053297105834068824130424984960878258551752523433223791097520729903145138733260197786338866676861330400952107752189362639507730603823205414194615610477578745177888110669796905724879070224016364844636141890250734753299924346449289095060743002184772463123803777487400664529685330580515130342731191823364882377550521342390532458091841741970902886946959722426667913807926643175278531375273375211278999105504692321783071488481426754879319763747043372392432161539698329275275729339611052930333522314447386910310892071323966412316727808794193800158871407428518924848649326592066582228119561257840243047312360444153006006793555357608389126071099823974805448596610819661294387261563840974780423902456455784240717935181214382049449314489707214167908738560818605940005653794742086016641068397040457921311858659954582598132493946692486900831541027125943105616625252317708582442048898688501961620764790129100123249787407056480625773128630672238633029237328108898481545071068503118934044890451976130253969463174575892098202863226090670495712242779895624868153270781134741982900469952897893907718046542955439193302739972680234657403215397781156065159285634232631926482864608521476514835027252470036626963679358769127102301931741747753463032317825714932481999326989014121055068835907661489023678514527680800276975007583611003678710179791771151289777506939631576613783548287600239652965835686072275989762656873359112743900398983663844992609402715248959627097438891864417981959868555794018409811490474158801447488759259448359634860811552031417381380696171619751734332785677796649526991623461970845062690265858879651868113438172953064189564505719252785128697889594663729550453161817629898255335259093313125767268757714724693324156102343103633260891852363585077009456690935984863242789014230244152902524869993682308335028147151894678833788115725726837522465213251467596421478919069871812639755829858382971067416692901982306252371279338185913151791301223044691018311565030223872531678695962670047600575537440270179963499972765452194771858375065047333879532825897037653108083744676109869971510127904576607902376354174844974884844305990600255188869532950886981508121932800038242724560817010550035132960818698909661988077268571146858497213374008200854874452915842723880888010267696484712145563102261425006902551850882792857001636218812445188763863058898791617495923625166452027966138881156075504473467713694071565210660139077099198424453779939280008161239557033812711112260184678756473388364218436273126087383858935051144138113019945850109251665699913236599852471200166154688151688999019748623703191271837787802319948433454745092677896989778267393586533622931918084599042414345833550025460112110869747076466208100378365601424449739713700838074185912000402173434282255907611474248975913206201826789019276209027866536314116895498269406664635467976218106883133007709989771893675368587741234347110082379234965159393625990534629400700272341107825506617332143710818307972852910133364829071493321093026270903470555640254048325328328064708327988557209603284864117971146408882417651461450966531068777998701522776089899236621030341848458162119031164664826152109085395593567197862448664452787175952318832225594230241470453006211331020373900526209849121664857832341793055195399723731919712905987812203474651911093485394022977430100164187759300386779078946243152437945588068102720556166581972439033329579601593539189581224178993543861457423738882382399298077643366986447972342034809937465290284012665154025327459876859502073551869331862778131604455518023085295241417213184834891988851289562719623398405808240107528050240362703301978770069634068251118610184809681952073247042156627292359293489283332344459189135182380988255185553639486310376063103543306622303052293468102951015015445763333560721425766516803441722635827663127372430573442378612767283838441565516725642486054820724374176034681253643835714221296915549251788461232097612585853138500773617130764094187351167134886547194628089534038807287187384465399846984480561947376482447352470862427318288131061877300716668626367171685551101885815385303544319099973685222065821897218028838841886103338281071538022691875894961002176491698909649201282089383776009276729602688679502406411787797394407673164079023152282488301949159716935271915372567318829305301885392784325631968731555042742765792161704905732280399695694913724191809699671518140516725383529888773121902926851542016066109446026369955021185588583225314786729209747846498057549925098063155892299782944643871545298201679728402192683448212306130992347599805691966700601372714955770165746389094370539544311527810682219524785286404350004986922067606264248011369129805691996175837485294859760947583281835953047833677453570462245925151410864532779205397939883185697439804795325521773365112703183212430962845640002849493032464428548215931808815469244293915499266213784125920635894737965956572258108602298850801353275218101532416935031601466386337741235157624403306722239799715060109354392124224542367645068049966982695676427743684203900901302740659204631814062221615913406703586294119251350348363475257138492265138477034651923254919931265555659040365556934906003577065497406550469255781336956043660353957182742910105800627414709439241762008921316253972839490888470822245396147608995216776171935079738226291082256883058890838048507216621663925913334253004720280935538832445751754836405447597322605895897266407911352698083052931402138360209466680744857627599692284377705932201905637097045067127006251883534976178019720419373119110898350127142593597507103599790330289041412237266970713398691732840802530021002675447996778670612948408645761504136923615851507817032013485310482802023494420400757631573896880037508997748217401232400780532576792138472617690347613146421513057234237346626945742894599292184874021910269038598933569820102530301184413935554468026596904258298018482840983777978966548766732214403121247276747836620634067600541286475431784163215914428999346700044546912336870018876062766646439807095124899968750940076189717490550934992931377413013024961890107478039383234308716289768502597104823548874982592650581565543684615172236652099600590201069990321900834838441684578122226051863903120174939956467200734654772496611556209149868516746643264645601531732916918948053191536854525073888742113047765029056489233355342914579397789525374905259541089266727041697642660333891923035724588380726564412863695313366646790681202897052265420981594768527243152896281903153262746319322852083240941387479060653123615303267217391439431028812013256295360470481165680950530718059374772514010511705176339206466340386859032050376728273839671592590446530827859555319336311732902573552783060552376638142469644469609919867344270726277257903981823924362489785447808807795156406680026757282625061912894715163048547165725927488004866363531964210708716681240618302652952089006401697144590279094143791513464146145644657121508178312690828066511016823519662849568480594963382284227370969988568430586927884481089191885871964784274433014644169975971861999880978690362062130120232931770445072530060394220365843343286080107986320390027314595355783128604402882302781901621818664657771939941582912036272057567808144963147943614803882804069643614379390127611705254696632767643703626919015738936606576082156630640224369795406689756559796158999836174475883613828807305515142869071930509335788271664554085456078134401504038601919952529341187201765024463085195137695004964478657524201725468659531268763779193772449631507786750163906576491258247673765339394704863928779271449348111998421025168253203491390242265866878973491836191490230884038247796603793592726240551466246371687639839778787169817805327596974561332115505434996459496879799397067030910079180846018567890436545833793640626574387802728714150594799852046914400538180523153911544250381068825035246064733423989752035953335197442454613347796858684855426852268571183851094350966308703733252897812708044854000982956434911546593685431681978580687738196817882634698754153977245788709295419544129639937172479871784577603268431252417960918780980110201452953789488195429934416770904446355915464499760716248640877190562500396047113575950046188699093749833484472718656856407884045807921878543907073300601255426449745711403507397676851509228612646789486331564327664250781148278506985539634179337172484963626395374342699043276163409665170738631443603463653260542779687565703782713114954415246032486200835102146248137073711614018577048877715859903546330756597240792322001560087988961615182133054775782407651893894683444907723269829494248283090670007777837913574069518457833690110157356758677421737981429231221230187722585310669937286459297726035607846011712588155732862997272744802018432095696964030493364599223384353600436425473725115901499506937678258924780075202127342671775224359360164056060918059258761567130319662425411262583436071072639364475782302712451682211234822109354739654089527375903926793941676638831643411430280882508993747913763286495407084557229215209170615672705944240686277792834248400262104054580347628415210545807092300567335118522134473548996133555470291966562231006273156403938265804318608785049142997239187928701000896557329441183255304032516944059868184415176096409661566398265044278711676805741876723616957927167613173123977817390430644753779543414198553618208384427781282932012916344798455240120574607274992550191047958560107781648140137917533130870690453121632170475297334431086442753167640259840283905175514632506153624700445296173456220832406528988799485284627853078819438519123608799101981116543819843939689334758145545605666546826399219323421770956864700204146057072707142214043716615894341627937357188485880668967939596402236086271816582547485791479797751738850794804121481919326365928870956314220406303707069039702110409529030639014840359740932921969554063312600272351455039932527092517926822648524226007633531476830271962799376045398134764219103635121947170111107349742719929657902913056771163441017853432922693277493501348830540823562383542425752601303483983832472108476309144874538437265210620781174560091870768334817756324853360256539782179259221049916110668728029147330964884822261337559494522699362945172026721871066725668290556934310413541745383530054867748435439084098833228392548728915429979519684095247722623853860961678626200415690340292290223020448687870178481066640554941979132384022989761268895571755965497171464658776178710668196203575454074379102361874732507770214515172712197379915241263282907383139143388340480690278926749043267800743046272244101111213704185999125308818694243165074604774741256189693805399181183993726598283613238810287561686560411201411773509716273928813695621105839192782982630358914098521929224578672039342817610759330865208673568180895002171008278623388304470810652029660229772204129576924481769842848145758846351144906860453984329958902973909102608115642225370289814860129531051561115794375790902114664138427706595502762699864955852228312605635654749505458745448572566243562957569927534036691116415441603116461180263341212656968742940169604902061816004233475800163448000183285649507369457076404614333394417103419449080372279268174622924967350881891422213941934867858323070493057290334310896490325577002991405402782519492542519717048877430744339325502948325409729473990663710008376094107554099864370045614255742411813077889490561601225939723466519822183173437240621532713453285866558854111332267506957346197558840112332478950961755526101320039850670970157594227726406456924718282463980670388005962514088226827198383465971434887696437325760864554993181479980012697709588345329029084820105062300203625365372544047739062494252503739180134303447021244808629208540522025747055879243039651383727534750937905101372220762882411490508863912370411081016996830819748464763407854206171612240923767491159378517107219114448020017144729585256656794193695995595149596037244441084997628371748080267087914084810375084814302619985398149713830367772396003691525941514355150621411894953331498604927244437783455996308275009221346049263444623940705438635628425812463424633199060702490908281879863664945643070976928026414835915054401475770140499096035221682770017181417094011824639505117344108227161725760002536219488720336148509351795585659623282597982956775681789954633132486783688505195029621659700666019630715551690453436305308640247506447743080667684361233494211669113218792794247518884925541677551943399941923962226539897656722214137369547867942109038235096680282975469839190488575221662604281670445680702386144730352605597442594459410105163010790239129537705636973433347101696000459299164355549662866951172323140482754851073124763580644584857802699529670665652473307430018388907687167891189675344472018509688208262865678502859167405701954469571092193678096314246684904813305139521774828060594793347408795266013383574929544113832503693571004537464415075945491033833993961217842050800503363187839798467205459031187302697146982674454461836626437060574966366899421938114260630229763985775105387080395586281276634396836634114658957871021158532131866788361738482786634538673926524889215575557136507476898943040242645422603282566012902751868360815695702136301323295196753369247324123704602905777115791676379980499946206441267375200959363462844761084934628304544472850739983539185751370220564347093287455162812877710840612025817337261373333034657804366536432078628938314377849837962976581986537101462281598501229994795997507386869236405441114039136082103712173205828679314401596578070251625983414355748687294460189427525747071391194674309881603998812620369886233730708224779183995418204773142623584783043449472098702698464166172770654574870201173757585961914234834625855512473895944490411771755695630498410552614611132346475671481842328087525200148132070294972537676073245914432619231937603629993248108544248132330271854815847568594445049312182578012796758970880908179663295696911297795945916934569125307652974225806988102570826515026069474349506604787194435243608259675670237163822386482775866232744669052668142828258639895609425846666231440556127377946687137939588287867768150964775134136873479045562727961914925548213317402754058754530215717540972420875631990547520933072905922304040523843204275845156726075544625431601166822024192009925240311671557338380618996195329796573198290092425291883040715215043690282071835745411593080588890713867653374826353820068236092642806949557998987360267390439698798795395286253900520678687342818128231320560571764583181242638213718427404894591412452234070336039478688589134639754494470383788754947547215708834994859986823718805828517302467328842974148104646711451925430664874671222568494407840383524986993999946399576443246603813014919496995757611308688305783767216413207595505742146730793486542000805151494617295934200582401396417805724690898248455425360326086759801719428797552998187484336839627686842352983680475253094088469267624410920295438304961622837571756887384825063190201078683803018454321999505598586357069039849334340636440509579250870677675327084121469677720859314721498214495229186670506611066242136463450699777483210750519905670192627922557880113381013995899465070036362686334134458242789252623330886722998569202275424929444078668223842148346922335555973227864032227169940285186458342908719545229603525660695196705133709582131749582310415438864445109263360201588932479707735747838770515357642401959462158411019612674774446147673302277204657779531285815715688758072865050929279215292631282406470458475912573716618019759707904599121909504710190747761729694570284121925709223488528918591564011457867543788215162991371368478655281812941839592498383992224257199636937077532177565777394867059269205038341808703811879138081419867760393801059722583156931272765371937422254099029392066232172115717693772917147920203641508096826479058998812478975639868914067122169028863183036773929622183155219166833769664129467271683483275598532890602456953820802908251620224802653458282282053354761117092736420980698533087558898500726886459006247942531205408209190685737609368965890676451244060038310814428486055304972817403270388630238824258878616589402588836097577422958097689867070195990389758947788441871770499193128604098401353068949130738094718113345951834008475351710050280700545805780623574348179752694509261999529640593758298682145218747560391806685005938398729618739872403407404899153953046916045641683082552888677833152591016506714436161565920012042207628583813476963477795023038997261276193286427489653976555403894290644966282522685631582541397278107512322139528910958119633165753060520470442660324513410510529360715053620936288727516219725394379899971329755438231755638196439699001376479671634299631977297726853181402538228058939560420743447201220410304060142264097784026914394467206811892078144859110333274114639763322069952932554338024649914652218517895340559947217710679621346944339505728361654044078273677590491894232611002674705414061892635084193397009696555097586095225252572635431782982210432031115101492347607174790515058840460861377927814061047091921628890525849076225326364709813909493449755953303994388291274432461640935547806542274192338762762756636016059411625565704432717833984960883167774364136719463554649659067217007958663416910579813483042575720174846640945158760973074401504298541609159948187728930473123964642664183689506014078747068826021700562504917037208002030697836221222549861831534746000772143709081688717988740882935201763748344186370419062434434946967498323966278732546897391296726921932959601962446919769533918282950933785520480882846595523453760237120186857894232659795596694150695623538620689385501533204270998659793978250714661985382034365783229745341300361823858299854160657658786667891220060417889770161341206132219445609733645800254603070853311476781697570490904828880270349257007051260173888323900513390058686293953805481998484236470210995139819133716680766057076449107025516232023548502359634195842731706440193235706492941602439022224140615070922789331724307769154087678220618104606746391022582765961844318962637959507990259954674888561774430321415671327031886527073780833332659233910506999698992652387595083221414173832381323134442804389584527896188966924977717430732925076147758229029167941116162525893327268605064517368983382361928135561220091430614553272945536432140158976105919972006949109887060095521786632605415506186744673427376503755635846656173252051418942534296665962803263271605146186801280077537180023243226583706912926704398953181171829235162303889104707201438770219690605811811364124818710689010217861329582425088932932603138378480739520138473113010882955651085226016391704590093809243071335196353735943040740311698694154725491165779931369626077940686955319715988797821503258564311906066399901019830779045591888758113001211043572056994750939817609209168312913826923323647282645931430369654746370315349294793393283591541707865375083975785205427785693679159199036466441364951750683780163327089220051217779904251982380185320305325730056085147563373579661478654745335012835420957930783210919045506629073858029205935828120276892853952046274894013709577285401379960555484899567078579218149107874983899291947349967101060846785187550152346514246260280800165657904333506093669549792998903066681812241108109177606665986102765587247546090510270570552037347039436204346416862447695232605290654753993533372640537308662759446508460922959045616494165498959344578702499619932394226967380158107101304908574402334970964265567701876812307570864597784721501881910544615457148195818986309155776538178225168149081723046693757044611683049688966573958708012046237636783532717840249749031557550582223861389580172934790253858003047521254018627904507060267756130224307831813499544782616282306559642935190404589683325052716529998872916208445715406664303817167817154272653094584736854666785021227196804906550634191078811187741831895512703512166634838514961907597606180074075419584457054876101882799687207307806882423763894452530314043066455568655472313524684936757384372965142165150857218298968720185904449294973948687753459514809265707984800854479903682269051622922046936539030546975300004552916482537140158835580149692618290626938066275542590333158673804865191512436334219172002869470795833093450775915507110713097536573039834859925309370621044326834813236556880845499843060862977675861886219574798913082269306928120419988206665345429791920071457861392778968702116839688030451900944502107350703488732838763030179428396376158120922937701797849650879629256423951270529180275470695518206340683862876150334239679765595867367472306245729087385094658337141233379941340218955398429181129457191697361923651376041876958061636985144165253321807955434642103532300307551530702322593387486041238990304450447176334788191977807917359261581942788407290500636643597175779291147549051972515628588900170039041386939724532059696072530794717816394960893323871820498052023431507039525792069206417653240702860152678826626176788866483666532386735515217879892591671956590945239624713703873777029827107619765852339271980045350401051264664989216872425189697663995923037042344670696835556227037930206262364696310302338724827802891679367626089490468893259784915300154621220554485879900826049097160399732151879684316159314407849489663400783260299292650796332816427146791978699214480044576170451892020654485170086254747063419785902934680378720962985292806186648317938078790349575459306996274179163368824825922448848351450619394238527500302969339639224862420931421852565003024670885004924588652656782270011148693675124648910222978799148185290726138481015728801259546918821658139821016231302583416416559115938754664793740005214603448368405098011937318846520425758906199819480672662107274194130744920721478609239558955805842929262248429673292184381655184295261530919902173092860722039893618221290091003809226256746181358504121527322772213138503810050915735449156128133145021184082495976413547758223604045531375376019594872524194180862693290293077301664674471788348370270115846112036552720761211223873261597756299585843608370908814366436864036569505653426496234335989227797367115594776482010879741017738614671498993653745049189987751183505660588057417585718197699745967849320412054559626879604207510628064167804698393158022752700635047010412547334492282348752821899553553167034722782251061634549498627688511224078721164930167551478963142863381682078517594977880995119252638727606976362129037155754394334105094252741902049928396123571021691458428675410281144714296740560633639418442259577211977858266238644031454910475298025485943491550484635652567800742142203017939812486074750458984193034950824950088282064581400291768263071642403969818704060049050049227845028244192265650114327252557975214621778255457280208675042906146310135271160757814514355711345648322184977021741529100533951385370826159169138910934598331512488106592050726322559158705517011287715188462235911751956176853383256037629240940443296477119287989072139487586198864365322356558530134934530242967854419504317231646404531301596893563797471941533983097159971386254292240696356269243580066760978182145351116938400817664435917081335466442556578761193037773698869080414169804665320173842242551795643602009080560417546304944103969646503111716554184811658500969333208330051907017453560166007303437781952600849269842468574240040538384657487871181656854149251932781323594922293705513051125615622978731458513486110282402429087418883719088903814726514785774536061588706004914943705512874787467183123327280554268018350702068851830494534814444158829488554250259737864133136553814672633789340266561038373062501114974922950232969043387089732588900852697949997016107273161593127810886441749937147429702069688535882014322416556128141735064793531031482147781863662576482565752734922914261255158654826805000437734144832126426088803276427392759092690913152862784727690215413551759996900003912729287106012254493072128404459775706850860125819546906661520952926756249858084928291775502735035319467104510684708376213967159501480730942033495120485778615350334606104557509295138227421908348838841200176200608383455402092885098716304650128406073137588045575121287621884760881787758923637548240695068338285320014057030605029107855557382648078653890452667886687403902926859229976926101745141371379717437613385341213126881776192889582595580119218398827688685866244332128653693696238505950098002663414143946202143729305560352092054494254815841989244120014708406679161013489005869561132608892179796732308256078402031147542584611252858554744455139336320148089377555127669465235712567460204016407543865182565591531751306616750312271334051548228911154178587724238639669452973950030866929406915059498890890131150442626653086257063219853186427618270122542265931789261703098080450663534895140029296485815666631588194863246809936382088995734365931175969811457325838929074490162759192637650448127834531861807914854381980788589261492116482253961544991327467700812338509767088029295837914798949726065787134920745130764719878730716291085933432292000274505484157403191151434407638109083294894682291475727199657847356679185107832799943566214554668443673655554591207386173296468786427330484573834774868879047927480883614349706379382031044321742837238949801655396787442039416122671235750372775187276712170144330206862087505937882238328751354790447198110855523355352868514026642693171876786902892532475683855520560669913331949978818087304787096170074671083541333772804694762261382052418720999682288294478145342722019452948678541971362679368528522482211813198832824225188005860259021261404210429894914679799374673618996950066299373838687096535062924776668559525574406615590097187132562884634364392689216680333497543480234184518112603926329833056474298350919159686014595905032778267036024833526904119567204855592821722646441457035062581929597618029403314035708524433972888375387519254781185091537783191494702192474769436609232057630509768870060355103029434024371910943864017492287526950214502665200767956747866701774654821152357600959273522324312716259426504785602979664002144799271492619022908591932186944690664300259357585236244517950300433840711351203459165521093576078302961430460551268232220300622360516485455042430716036461516213338095337394878845469548919660753603418244926377007692105453679415422081561718419791100501473938498006778330794462741984360564956104920293853966636203010191171140757593228972683738258607388081423660229820935666310873027910127927922179957501973908144841092571022634862766717429268323588485408945101093331951902760420516014883680132783997851959665498920545614314257928184693321553670034001157330819167861286779470217126358798066520225851815381551938146136359079652729033095679080573430332093891433137291834793287745924750991023944330464871572349462730896676257906395542714367830792943772435463559536201524115732891719431635475969004838441084625151187814570435158050051073544855583692384995797403473657260073189756103089453297745959083861412639703214195691426878744531691827772101515016433252456205012742730530368172228783407317715271049147546147475134627881127884768577295444297982715703875737512254980816995795747197261518538774564113111354438847082445305456666800405146379002253153986206251221745172884150251661488975556522023173406609561707312667576384963064951371915562785007888468846252807078025669873575573838177458175978460248996151503758181843653961708928950298836410054802655181411696058702369619228312300418876824349633807630818299922420702072691587211728639240301558981102073850666800423171195124013711022969699290913173973047488353860378991504772318841339943962034434499183954398014218303664738847184815463583759766541596684880700732730390815798714932845621231427032114956801857837504361309633806232116297826455590664701929245278265559559234251113665294981256204940282114726121792335534256826768655797915612711921732654105551633722186308811732789453221712033951286978149535252625120185588186874493402810595094174333249370947058308467147047337922646132053021900991121607674990155640346353414851925629741690518875681042762987030104523526724539745276920084068018830619693654097907575730746948324868458162741076819433318159789451321469267297869001439443080762625177251573075290650450646990534735100566219157136427046298839362228986618383379506673082130692801622580634874383263676485438515628499854918956168101181277909865368400912976875366629609989245207151461161827426603835367677957427734553523907515250280002598500853109403748064906776025334165070574493700239762327830056545730556476513202149857465964660044418818461732590483737466714252717715389440531118923914248886932581011121807913824787151594673820622139243055189772264012863026578359612243136011100875800953793193339270882932253311603013349077213460390739180228596899563900000408996279868892127138029809515058104762215518483699912370813080393579910080481447766687226071356032974525606671709304627322353300274155110398968648852736549503421299428591056439331605745127513202542039690792662752688632453386720149865810760021563658276882658609668378504971791986164738214206330341405948565242625156187144531525717714126094217964701861336566822640732142319142155903276538224417252884843092992102160019540663492883019372924369880692240124648077501674019819124990574347604751662517127448990064579123072620901719479461955684038575677979795255698170126346190593010606028500858004560769121782282427783434939085491721962340962595678312237045748695313142905250356010327345867191944943641385738307091135672222231580763470372896710181756632994614631256273410423219929990135596682542053603802893423284563095995087331667117799589537631502385315710494219775174684753684172939551163458862091947357009298422949272610230380180766477242273032279408300452759051045177026892727792481155522032261859049841006453860735891246607206003393815401568677763213519220988361668345445842061762495004861356241552579915467654881533433553159599399779780576407364575750403818866590634457279091203404742683539218257322199701875984162975775762611340957687865776146893170287402105281868320693309323588034874876259409327857408307830955740705203203913168724102177198952995095483873560217817697695085967506828764776462289923672420802417129288288565560023818479881165367647519617515510961470353321320361326110690398489605337002478327755295032842333999896921061773788247755409728889052913902169434440180964519661180823908530690328339776176274102560889164712962054371729968938337885239960744482613720663761802003442632617610605886382511405651661052583165440037103806810386252229786109842291733984117418038371883613041478341124529552871967471631744846213155923738102379102392246635916840523969694308988722398726730820050331113233283718427091168310287847109574540194035727392398710756974841990086362675506976426059603577850601645420726493457260652560167031652773576689139270165463528102915892210906809550936278427217835169771701090226748273448770316015424452119069628481166432571627796096327886713683206586001018563665678821122464015438553830434849570866356331499650114000357290084785218346445867960820298381282314872915980362670649722013357858580084587399501087550141136035949780981610249251179136288890547838982477792400702500854075994399979454094803005927853350046125447621143890007198476446124178229447702126445394189375324884335614739565781665314113943083149005383801738894859537778415328687951068220935584013669693542366627014338424570342550461461941275361685123880344336997734777309646474262860863916889244924965940230070363043633054945987831384898379973289740517378183817775823335248477324548634610536979335328796047381895912626898181002117548669667039561944641499869675746507447860864759931350438792886399950701133854035846831616811896304409731691616325787941463027095155057181054545918601970096015718818648353115660310207879783070625478876160127602413513130319227148142610516287052903223885720009209921203694234973933070196433608005044892325914953794967036910358954071303168410479545943195002640589773516860512004801468262469063945490291801036334057277193325332303285431858382450249169278883053837404239595190324319824069345773949420997011005631558592321294190017260977057351596622897950557615494863931835577166988433795191892118298019727999823951649102422798107672155958344861076263303230432442732198642933749482304152144536833085981161991978563558441617401283645779680696720072785422955070320810224468211249868190447473237460374921286955746703510897188348495750746760112091696184240499065432829740873195839606864402418732277534249614797287113991307153003448755626492359868302467185072294451308390973267880464805433150339500293596901551428625469754367095297076363264047306950570190603421414363008694005434239546860075157091489072916811705353908226690295507720505593400252476786139995842959471042777900459507163447373665952806486256655243631721449747112282636224853718404266065605609560861325231927511784406313574515499864954634136366973564608843614528103483134109802914078407919884197136663095997935728207800347577636964664174476799836801447319532863296338082614455211105835923912336031315190123809929877744893002048578225454081906336005301258685613165300666208239507033837916278240508513387551323738614226028376121156822518397036841939588013351836414454744995260605913065135599184970309440590673736320993451881689918661037194361688674543857650061597067730013480702969346169439808659080632047792427394687187075698055996950503105417538752677220249611973369400672110219715673549696856573713165683727163388815839291583106396242272547453230422418581039843053850165697784198257246599872399009586888597260491583991505286741156956313368227197571196024504942718064258792927309856376220717168345761127729888588337067768444026365499310815259526205912169105501681579167329702888299506536661966427100677814211173148189516517703979284463731585779264696709361895882482850459355365150578111391889712769677195022062951713452025845160623130259672786047175914878057010155570874731238460215519850027408231198593170593239167364668842796658787818752178441447852693406065663548375159247839237584692953676959162878337486870487979719030186663456967137873794350432178755692159608529995851212104905961961429094007622231264531115115866630364888403504406218139453297002552403436105995985038741636339242951671240168312069608694707609788449472908235087649962899481409883486039060659923308614651199003965720474308259360946898599695572883550750680356807695987336877979933470854405208976549502707514837778617964955216626736685258749836274114900265306846014236185119768488785153487820175586361285013833373450723177843960184786933794975071201640121070528365474818072674184088125886531896247155858300632852836519031372457089592181689115250601120284168248534554294711246831373671728423937459384023183058731507064066752524234506409996605407092114161042469181932268681592664062865067195468922087895745297616707021788272274867225844694434756798129988617279981972116514169121811563323222583272966462178329852322200851323033411949746562556159178894616536041194625826011546092925402378033515909574111967094126867237993465581048861403182160299488893474207736653650405178950075535324129773382594857074735878598733898508631229266363470211891447546143319367504976896226153901949195423769272276059367579176827580050444429884828516085964416704863395619130557662331639286124689129883058456992865076396843788447595658715420354620342638181510146612836207914698691275627437006431002743826608212914002854162713688294720037023706005719745839137515918918562313595826452275663134407404482130318393254761316453682472776024464908367750240566210429178713121107928115314498042524162508527733331816654349451571558165486391848253237613166052451926414443148097240517995214369218378220690233093013752493584538556394079726281361615962366937076773773197357106405820717336177029822187565178423177628524412140095656979995165317635506378230524386250471544931902200240467390000919559429872840570301830356679225703854527476757509116359077929061834849815185307912960558209895460376319148516786704016719017793283304362074016001234820469688789475345308137484088512715874712934581064459596077213355878845767073867715032515791904453935525986389057004835181912539328548224046230664340945571711750353863683768003041725010559332026575624598065714576526857495675239823643935241872297145089130777889910271365407759477630934422488068856361077486516076547610281710827308224423587504084892353686793282899054032494600111014784721714440298608014744239261118245347702425225326831150956870878023040554626148507860246923171219916158390095471249672873070189896753059438411798858779957978040320361302141906939775843616325524764464229011039206764337325260768039068444268470157985549327271033825860832760278133588039178668738706915750820869875226729099704515056333767649136640025129041020769120179343637545213732487126761815668367820229141139979113574769477880164845888178385298993117087815089131642527438084753074780539936401815405467789257625834206091523522298640002677463033170883487608051912960943916022467487413359667860613713751849006962332036939465361236152376098070712758351169681754620646264330441646825916674234675732066414335925911741265859979582115492396204641221584712271455219569637121033204444231821554557048417963862229185420607662110029858242732976761375248006678387284872876734274264817990666330733657614434739973935454722874724364953399658308684460901365355009916211666195046401265290607961918557951715011561167360968291185625463537172424781306677699194362827392630730642458889701692694721713784646274567006783703508141781340534395480966175675723445331530490808380024043052660629033707751397705879327244368937222686109715641054050186069734536077821538932647049772805476192826892281253965442869906458965018656556737404824149537041312608976907531453242975373970701534620058640006280722260205160608595397508500838476433779521608490113456016489266459477874558925559649607690572774671479003054386011181974536952227825423899408906508313168553757311954180105820362957431140884430243117147511291851988949513365276142602945876449872162609266930616622185902963002545895868851609403025759399694242703039931881522666762804500352900821514088692666005731779847778262841374638897845766120542768701407698930242758193141176531293955201731752919755955581852156501589897443926260451616354163649006325235113390638616289921513322032035210186288947742071774474612505080673272156868361767468124847291253809803605322177898925746624833091660334503302742591935559614254551891603234322038497597475769192702986946614792781228261672799865675511776677217891923562261054507813802092873556567242288908371211038881157056757792444294442875547720558308240255372798501618385950406092128311715739703943240150626239720213606878215673995280001674702716808071408140477184294392993334883950859009189430803310101153818716755155645631069579240145574065999521512306912160580242263885188294411457572523859008529471399150696012848371746015468668180341077575761812978077329040133859193190396538143032111884950121886797906086527371493643606770555561346583025245939362991147114791760616145302420794069221312526512617024890901215468719167181784126741611554601203156787228416340382920487085212743477531902045826492756369838515782822101919087169335196866639098146078702817018042120838360715456920214630164839798990455903331678631950446725577317745852010808789741749398511974854119163711517253945461754379248704787613504264500800265613780537645608308336036742168495520387926555085459744494850489132715122999301615243126303909290761357579360423760579768963206221058343984131640063511355104737151593773165382148925941279329500746545331403885680061818305371875712391129930119701825033094550337622289188970190168463710558911283770532314020547605937595231133487219670594435370083980163626994383815563854223073490244050203912708369972775114931716238493322859184652530294999513736278705734266515966773897352366567090220501430737504064805251074568157813353089800713311452130871618386488996059337244258825520858724044939452323848937402368575428912105034800560897275244442626900801209332985393214125857300364642676413516331913794976440917477806396598224698123579594536541482352103492043882529095092013871756477485985927537700473177608680033472984050461992688361973140731989784159975479276288219072591666109794630661101809445453080080191341036853377207673651473160246285769036190581470484718190128364452331762132163469361709913572897767456037128299028869523195871822410242265621757307828761912226900948263847039263924143765564601061775019103958462595390204597563525547276701875005304586827094219315446051240404309547791872779421513163852183423032754409584848377511010876082172060726698272877399713336679286806117103835719757372815727118454523599500033954901525324168481282048283618431497530321131288648876153350770830148569534899517673327345315596604448671934053390283369865406958720586407706416050501519058755934040140324663041600885168214221890461682580546051112179904457673976589197447913532306488923403121548925083428687881192961916460490657201739009542218498766648994243688799447917698647843180280315634322019155841942359473966891509978568374238991775900817127844364253265770753127739139637149238333464727318806339680651485698448053272480760991807404016924406151838821009839981947263182627856346565346636636773395663557935114587045962641609901500454670870857366724141481065891127886912625342593798972186698569445255059132517039916199915849331977560873344647048198693698954893085569936728080802887526585879124111669026461481340792623007317618215322165783015181020099364755040629594687213663087395067518996366009691621570968703156631273319256979059366760147053754174291691028693916832969077137836554395037714620926968303391040198256714094473667084569351531650776551010632333787664430461567133140734372984257131391387453151085433990142687060717770011746163221049122104471054168655239042783171159798537065147661401329007179591435297670642095194568148004257869166649757600150089526090899494377600975666262290470250154680422112608014714398340068857779848846789424831058432878865052005558040054191063878000339538628598139959801657561259003385842225779514789217267691630731248314667009448940860033090254473188496733415629605757743568318104808024505732526450679869780815533627769910969643956504365194077398070885481708189692477358367195768280188176119678940595883221649605994004479001832952543392863253322772767364921957467349949383020583011142030176166182838489481608745886629906668254056668156411093548554047419052067066227229130811534171920969910588743973519968220247503264612923108205842250055310846751669581233683790181175425041983850979986184439765266185071812273282906911168024182029914903469396787911826789405881786379839063285787432003510360305457071632319496311568853254893538580607195512774037935002347539736612264742907827729319249687828469792944611899259832886175789928682386060565975155998625926659341568058611596801935317902871533479666768580315587095065562781422559400794973583443544545672519146395747803361802304826485333857196385143855738995456698196358430681180862409791904575642085520229432471813513142360964747722518587570514878706279543007611237334079368036879117974429760768648051616746669415550508791041783443786616714252616398131315753483386894451890412202406147572293886351296276843963193314758853720671383173422851108316764235208139588499816450837616485357544299373316257275496778187329619713936720804433551372614965900221087559038746857435555858716887187359400788514854665811436850277656183484574107217411014940125370620831882847649731794438277618431113875657836247448417377019884814973934599973988037588913942344602033668116565933903855256111479927561955281799284271189139132731327393452499079028690949949502838605749251612464890301753583464875265833108879190011640381679669051184195095030840868201524978957725276648161744723314400052833341969155400757062267435806312550596459507067192013375336457774177134375073656945669772086290809752122808238997923564556909330625320899023823136175276516424580289694455664001845464742001593409885423427900770730091170619683457854157274382058121075382163516304372142649116784374420085638969772815932401645319610067537299054331164853155110000754177344555916206228897910290289054215266343060773182063473148982893276980368243182873507773315002882107403298095681164221284005167492504180417314412934384634541608334837926715049211429828011880498423001193531132458621732540611336189314375897099373061458736032289987666259126646363575605983257539393311627262733614949076598182447557614884851798441562825829030623636442926177362867889181884110344559462174267742579689168862523896140499345526493356827083867196244651363870635150857678093206926540433836207347316473767876802412324253266176040104756158733948597729992037493256587233186500516223471251904164253463370949824155510785056574387048010196389216736556454715210585976320331543117093341124200074206479267868264125877519519165829408161641192646054747564132879047702431907764748445284175066961538997529755386873487700858822722777873884129149246571293137136349693836536735337046801863334595185444202269936102826575512334693704303039086201550006524020623333058293612810898654697233568876026258426797655345160906291741759405869337769704703341067825221006103415098144094155547225553611792756013015210641519198778533671931803496729401419183062154748929491093669417206624163135054103082534990030811492936160263587104748584330761617695446019467651203483942333519753676092266909099756732199711912720018120894659880031429576833024332511561467687599473585226770565953875853564916422119038432817488837594880711140231113252728644191600858661835063343671518169452923693546614695344243701439426171178006040062196831371092002616138113197059248508937797965673006338155924213565932431977443381931694690497550020655786634632354406504708326106428337142433470156513894917450642491986820783350624703759117154506012249951345562937504949348079623015314208199917413846986711070314790785263889745596906028267192005575759296314583934154838802287275274311358610293572473417446444270257671206337045968070610032213058106895445306093860105013027808022398231321046645403471579966048756647786009119941767022507800848412309181972762769389398787144567662639398717283158302038667437597267542143238696675153525118331640143015491729700474685055695258249749890891350653164334319079359932372671845717356111063718800315339629701229329138316831511069836834436933632135371946806650877356195792603570134129152935944036569750415098060659950362139908779895773935645966242480924178653545046069253313017575595956813163690751337518306192350164852667924198767984594751199105570361044792146331468931720319957622357443337602303049042220351142948657958785639738865265346852368050618315812889132299640028410982915159315009430076139738308276663267600053523930257640143573788825392536577565602434823413389526619908466398656080536813067740309813497880611012550458941641410690551571735821916659795990394316668798520707143950879403876742139399340072162153726755389486358075471887669858382658977066332402773148041497283483103611003504480239825906068429506392038278175767168254022973486316785765942523651177563889734541357730631555548396513186500075650125241197519223844334358845121221899646241723019513832946347383978000904563057421674311735789585112693941934239819288527410647870028751358658698054652145169703032639378056455658159814825108042616744607543626882104412604803830652987569457557699432426734813167909985734017587572513604015187892676317307899140204163795923796358122350545773120269064672284928702023656154413849239636554152361886153236917235261038672619761493504721351293074974013712866396936440347382207417682261058270442011417208119039866969426797008273432455109536907740173736345578044342350818191250125914149509704368620226740970350459162514246446565394996105795748430503066957979176960515040227301450371590327028110494780664154979470181425024178973969527668204573994032503927492115528470142511943475854976850433172500055696315092728787811307123749777345579869701610716976601494078660576526613352494005214680163561965661507696728544372626489458367676672994736543237241580070060271434551789573839548831799689383217949043387588186974583529311925834580934662424766580964702336780725801700188322455340789037559236742514183678437223651257101282962014463595535306116922957968425629690797703531978990748059749481801445919794464183781915590853616298412457906722823214645048287801018593928124350790726951263517219113904809501166582031576394968545488684580598252456150282248107037067643689995680607889764166978694191143857430458207234793468567794397456899968368317440447520629842805838897837180993366470411320908231116265094719642796325465698840402246567138272974831687043402172457221025415059746196011165773559573834095542804179568942748216910398933097768814893409446810308741849174428417516210881005174297429999310160899018521736761392574278498733447102619976431729071733824752745174019305851129273415990037023911342627026700132720442492221412213283573904338398605678994780636264523700984149715558887636664381239258099523977645142188126968710653086854678474657195432103824546093093914966330898813771363440727136841576280910550433759425642469894108051885513808554903505284631785783418888236641984620784659571479249148165153279877580587677122601289731886380324581088305913733875247396640690487228447006975160288322410634178881051732649719642004555150794207467157807216308332015536419337261849314122352905511578094110285883434250275247918992205163716012728668194065731160651332388950582882998372210401095063113816478432119786600838197389957594621294425090506574266485233505813698959264262590498803890779474805596955412953712063820020953286139485221590169553475941723298618286534707518667319122565029016859609629787049134985815930373037963013335969560040556606509110037320580145072349671150207457656454886457287561962575774893798685351464916614970545948217429991484076448459649029357601009085886419388521586653409944515297890417413253953772768948559045820623636332569514480891381100095081656801734368958207856675984673128219269302066765958101808235281057563505541782553691070162582344601780689040065834531309626730179941852629001653200025246009482348288356746539043795928582382217848904683569832075115697067713142272598303057228851013635808620184488128713796383529269598574927996670930579507150511023912506061975149401621019562401926997862735896660939729952740737900570129173359657210236451854535516378240999383333706248904635447710199067777410936190918618326983827354654380376147994820543530756669141981510729526002906854578333102025483836801874843456490293982670969351366500603004177901895362092885866627447901660677998223792979423680696516108206841582032924548976219690692690966476500474177815019887973027416937355681536589298916032656743898186616793488985925207448974265431022081714631565515470684795703847766869164136446770812266524128941430421577380421403691555855720811391914390402607295488187287602290465076875030405228098807936378288489852257528900336833071202595788209421929886049036324448314482955064687625441934960220273165339877891390708159472990278610084764718048199136417906655384367348869993682244769074011414032051619893119231301862721269527083683099437857130603115614297514166769987171707852030189620351187531534046049982010022627022588597494702240395894497823621673217328625135078231208611129652479950356396518977186224637417597868773892531786116797785858973462981623825317082469387616305501451619647993605095793092777327565108857495809142359591310900650548880578873396134115142057313023742595881630036013147588638566820572321499686536273924379873043228605453989348233639662170047535955338922955254486488140793771582069150376428705596122076415651153209425142323254732340621422349599589514915588482362061079477029290184167825529346872002296080094235596859208602521793268424039824422995758746265209687754132717629779177710767938844217612547664855531396356988165353795983406444091565517347939509658480949152332909104449024403837500946452712939721147955309633427464633366281741755455351327717997639540956704154182671239366257522935965598567606921606178365604947910924883233238162179918193040140863262973953310765991339205089718870100545218154619906500687423170002424554459971338463021339668937764385913570952157341729865234964019511888528714352382562239291839692398243135727707503405938610217363869864252240611230979827505173891038099984113485891807315133379942058089596253402717220929565382685327046424776008202710952399449235474297988526888872675433115111271566039756103859258869871205832020392539022117457238893947198381275139203810010351349908044647804611374012782671505413736242135477317945184047782156883499963395927219861854536952871413469318348358455063395863727120582917697790203059522629070185014522627077300329677832416048828781325602872827514015596895959237717475881670954804043233706574223007592822847212343865523724139682151008278556843907296740518176563434426145035926515943034110226261183294658363336217929345835262207231560284637256706873708336590975165905107578763574595534921266343473154830405595767512364856354181246139923557642656167975299321802881765830204992581145078115357225858440149198607597521956057552265571114440452220706692444314258841237491685758875490558226684119848061849422342294769919666787802317310685683966542659624816955676561137083061891991002171831360051382095524415579259687400564803380524869250893529856566912963561064142049873999304364055221155758884430490341231100470197795489039932986101107445226224041334858646668611461558765707839187956686348599976391295374679695022031964883201879887237356973971592831490666078858615044738259295422525481287148773019205967295477114203192887265426636625260186355372897011497148395786893795077279855712690441020558284771167248147450262447588592477493827183352463574750082259713413404314629900104398834106785012970689199837171885009787194532300828005566114171293772265098766780728029570637367910956233846328803433916507203292325920640549890707986421253376410424040533368622303591881460079733280990016724513197415826944670707690373680356041281851236053479050013983385192231971570099676601935880202399492064685114848946285339071768226069174246662806090280964589108068650214122318652552344019756797401856874893634040575759182236179146719606666603730020756724191931251639922616228827051003568302152944099505846057927046568421861030822176799519333237823688007773448166982960508406502297160010446433780241133055070774991875352572938033831543629836710802688740577501888341087395447329026746391637076106428124529467404248157148001348477851815821975061901705569070977581067315069613373334467841781142047129469889727809426573981870167456340917121806747606951669178096352489069602970421045418470870842108059465017649369077416602509723371241712936584680830881101078765950562968068688296442946246849918759116169767459763329180082653842147741144380271183482017028117065466425070395119590104115462231891071189083458866592008266556869153376131408121428923024174373302972168241256241931819287769136022661669853329479498593499334820513104551955313524817296968329509868193246386889058593748083383823938840329683124556401078005745683184348482067031534076599080090563633196174553319312386576942247797644461039849130361980678104184375232122454496199711847304773301755335929059003396688733636150002047939398120783852148466256915522844479239888216041093245976435133194968373094869322031248922988970510882119217297948240852995174400116399086631031370626787293055337975089720016236536889085611454029644845604865186670488401529544559503666443227322528763163810262633764343923705704654627893028519460924880138310423438300929656816812056691648869205806753699394553595839649122453417407876656442770184847348120191142726091137481406327859979003639618184074455386637731177167288986106119175553193867335164474429877623290523620258250864964559193717957952762573667121812839537988474860806951895187799928194791860827758550823370586592334357943581450868273984770147137187666174751914257906155795303337790427750844742335117074364500146210549511195587782778870142946489624361954526955409805810283341048212143279777930848684264566969832942583315010108301158822495263165549270341507982888517558038406146146388435502559087395911536924288089001461519886232162301416608843169481446662894116719475527779286219429206528574066954878946766122882199267062229476725766644463194308509076517743182384425586923637986356912760100474650498797907321763365364746283817713368191438491987850507684976385202727419499257373598197021751040687925548036056942495824630792144285258078701234731895845349368679820516538588385991259150471858485192318129217132565947800584654928552924187744541239197869433047166376172562443947776836152782931583661498412498073418353482527302936019800907951462120662931340052898714083459592370824702338514779975874611888302733938716371254346430153104902478800961898870588825840424479590128019222623839111728624375632257426835470848852218277137304619690690657885515273811808565221406439256444525569573486962311782576079188053136779383766468299784618487352856414467013993143312628105735120899695483458490212414514987263625330823761330899467446267349727754544973927123091231316253375026898897609321158739019824798819040723009962856930127459579322945648870668418218686033817684965397401787696702747267169618642274481883539216897076598825721394768211861519310388388720052069015580333424096935680583591810684138518625124355636850954120980839147214830689438800188166192863354380293703378694392045123489105643097894703630536704731988896480245183766749508327757937668930144403472602269838031079784573227307461415566145921058441133089073395097475427838034854151261347606827429163304139250665340571394830872424185449421021266339563755882439066252362997951084963444083874502100938767222808683558217771521300420821580424106091949843760651123167474597303037107396640317875139233211559419137407573849003852939049156957091643211250803225307966708857497981957805824297576256776861842531323864636397441237398443847249918175182743696530853079847213326563597744351623932713016349357176545249679143387568813671535576913893207194356102985003783209508668303165484621040280079991104017509071254587971807529558879029977381607916124927230406224031330508158536251738077210131879682703842662685305723086171413304198588198579580098835502028898557440588025661042210436565844428943490248143669057460019939074326667563438870183767944783871364499975900540275478262255208809136994245456430793152593677964591485607789940425333242472051061931486878667988659885722618040901181188464683989795921602986332453828360377402018371504115421446972947940454189583954705653584740321784963024151100889103170149731988326142911590908504148226900889405042034648638280193805944514602843788608152219391840857493037751196272558580483234642049095253682391123726385507970413543629752337231933379391787728068998302882080778503307454724443296258596198810092473662084420653240024526335074117215820931352465480374720584765097326138310283547855466795219643488121855357477342312483831108625696679951731165630736630260950151385107053857567329912349122677615526320836538344973348131456717831805872713666413350670007702242250262387513628914868974357658671348531626598720098193204404751801534912660668932098363274240845132262346970062271803383328998027692965271941533854653172604116318859605680844853336005755029922426614988164128844610419851111632951460058831676949973755738325422225934787401868169605525847180272615136024184541399617456386233398084171997417323366570778955674491601235643719613185008404649879428243527995193672856429089311552210913404241339305723062263625811039725246308315535580406690499097891719350629881323227063210176973518839926129730008775113633462605590902690364476933978584693691760520720677360485639860673575219582186547029593217227074305797371872415475685178873366346139774088261802130879345391823529052459569568547630910943080520324965040599630135806987658102232796877669820570815278880619093306648061126892202225147381833539336181440044336594437586861178282535404785531757452195485837968134256436438414032767132273777912540736764285085597474531244218533259405091395114525879920518684164019270483838923460743727561835798394052028857860366496007711986026457550472573789310793910988100863056486345824818328934303011359361721311965574584359472515791036227290911651456392665640842697962856701390619550067717973357273377084378445070303438022016981378952772213805850208509523578928481728671249165366585975405431164445404683304089250010251176702454322043237291974853875273018831619115612181566690913108097792906780039904119222390097753418785400447224168013158784901898405591198508988713249865261562608054768404601936179035723639201893246416271869665963750374200481995908243848459202582715422366608949549479123763446743521930846756825219023404981285029591738147530105453443435530231786484222484689797397233863860957783164746838796719419825700408994677558430037674647803423226118666366410825797081027314312807834634784114084888451815164564535391290400981120514947342487943267395351191711219896448593815192608302471585805653903699909108229861988930865580769597282097668888435324609680491062104849697859843626101675011351303851341942177818280649497463282079759610985008557162830170236830116102299900429259906403141017912481789806017881167047516252068918775003413631889176775606979243804907486379800874732325438056094166824902362947224391860969724377987590324855461506802638819845473079152503605142074291396686634489679648967052645983584186367868943924443963727736931048306886093137128961130367694227130912461580296695623734031942142210454179058378148303185259175261301259296496317444345571607317351693998465897611353925686148538328221820742343392660478569639598010198146138655963310110949528555076900106951648582016798801489778079122545990286503896174104695576075959511384526028710105786052167747855151216644932019099619860764969462114607372239578141936536162448076340600537599542711316813954854372922195865407435541357558137693015265720670155437313722534392586702251281009915972556462719301067651195520489195956345576033873028679230184285503447436799202514044277893651026062384017558422445267632211920333552262886392494698499812939044595690317639042644232316370629190101719818654930839188625173294393722974531888454825176320123242544555773401890696413740815715898186177764837090987801870867701616700786212642937371592592960889584977568979637391533856770315982692255362186896263366277998602227113318403708693233585893591891181998348353657127594549627347975708509901363253182034040680251225324085693767931371849405896931578391230787632157825194811912874387273019156294513043497783974906562736540600824337690092995060174091560970235149273876977239322614009783392999455136568880710169901160479292219153682406731591956860044154726768660558690613769868953003944278867824803320590799071710443009508385741505270302582293424582813707249989011923316409741913192767104963756347966650988992947370751316909377199749386944938469110362753046279859727388448599587671625318398397007597462304506770110806260346037506983604404096992014503323049378688297640413631211743844973880065013344106873738153891439551840277924864128697484826769220473202474352534460291096092573173418415473667877551431888518105154904696308888765762922205826982695110705777097477025478674474989271342032105727871328601606435300318685245764614086036788669085414100975897558522415392855226157069629816686053466294052322655019770972994943351970657668064141001282159159775957354495842713822590568069674635576525503825396500051974569971407576367161989176861482795280052915222578660324792101731809321045126865153656363829051422864488205612243331218363002157747500277712446100726276221273810760121869786746962783508470491026097489348191525942144829213146606187785206132973405962863658675818126347587919821689492088869961443026372805524340436564532476132428351210636759765569287160668907911371044411844395890069229033326130555512767969232226612906537950279185492465062963389903878598338102935396051848432909477297306647341459872611215271605382321608432696695663311856163864653908402523683373547056841689195318914139772540006349104240853757925570436154062296749470337059926393766558036979818704478177289451226924672908654827615614669787234773972351525596318089040639533036958476397443129586863963478621181126608770223672643836321434492443886042953864994565737862489512839879688853633757644190761447607556586724528231251177433840655266434836870560348472042355045545900012552587645735623788391169613949450021889977038017891279470443108842282169392015723518536434070516424489572774821161074105487830866936502744239160108545036481093751225005656237529612633732361982780113514771301134742295432513052423281085578875755691392852987161202673995433060610077229620241940750912661719737529172867822633116170690261408537611040317758756459592928607698957703620216896682645112104336192614878592881756431243590724329184486306967250916832512551714154834573395917831108693365737847388710115371500125612428448231228860000437090322044081295750735200426502521219537101985374327822306301045073287698697055121558228981070040074906102017208028537015393496266643203200854334674484308493223959160658651948732467912375001008016850017233123310247782661355724101791784126947992850627646364563402067976540923482068734093463940117132259883780305656422228557964856259613118011622560812470027625058353669779174455884512040394640193939730877719174983226927669423890186362282514806438322966625845240251560344303799369433220246788443478349416892206214192362664439682820567563038186852498333826829056261624102717437170336895678637833909982317114550688988456631407802421752607473098717087624185934206896191714955526536233266703920023095400204268322629478726364871931715254231273761719636169427666074659334240266256514049367335147227190013813517056854197993093296844527061460439647442137096799196656787641111973955920514154182984293746637351539851952515534244067664199166738365723897471509472496870245371584514753616637607955139613675042593440772426770999668844074161247972294441449226693529825955730163444090048519136375003005855066081045828497717619309791033357386588412367040475759966541848697909664292748786057556560692419796974030282498153552963021163760364553879940765552553793105516119427920613677418182051435793912282178835051279667174384965653088756051719579733306574027786432744807918317801581135887308509664660057517790113577228758013213746404468811884271171286434852374943561142909884252845761019224894611621698981074443410935620300791923953642601208952176173099492861712843808447471828714616657350771267957666802154860826748598991330374674068954991338475757471560266238228155043044379127617986082571736123557889969711983237358548176084827160879079013283658209555869371684666689612375992833342725891479814601565031690233489316383530677192966233862426768152720863076939827212251086558946181869559171554423771186315180874134641887314699328214108161709126182624824257214528480483728658199185120237245302121238404600505269545195602537157331950620627276283723462274725377930060963983469238665052754161643686302606733977254535463147256089003890679789144345237560927959460727763842100836168047673830203420226288921110665695085792153354272744724106400069045977522658995915684803638309401870387287671785130521167377076835402509854546535145640009249694817798189129882874013828247069183062464256248077559350664080022079015048998728567903008136764506917582445220566477744207287123431843784148929551586710299529055791509776233004569481985527916459006698636360085683591671756533572537834827380103112972279224647055687191713380216477067738563218110461219896706864148640689837572070714785472396887579803239095484320095182768877836323499472229996504543237201029131633850664021970487763810299732835131653334921554939088503871279205111147134642819607042483046118704834123683882381356700895436754343459473550310088496692804969945392585366388209165266831410611307055576458567240225441160701262480730671799741517417278283749554609284582051733567790833635853656417889316721714191360928118035593153495899623367603430988945622392209384061751049516575683933211039299179517974268728899633532438277991361332714663390547962533785663507467342338295988848508919877998824332248910178985089468847526352056251885707015308340768045173846532120112378905091429646288343297496301064231655506266532272974177765916639612709828297131953999551101938049857664904636070092517694871347525281317462126568979694295230084596644049736456632946057386822575817937053631504496541630965450995361078342239225882971761794080047828607909937486044569224372768844699854399710771024238784799565579875152619869503379892005159097251704884730397327407286507404160395162455814471054328154588243845747389529080767256221388327540478791771069993615069987535634590227756773368216727576800331103509269158869804719053847976135402089294625156125585773509882243950329861761758100982942404690588922601895034021250985048035441262450684106424982629053922110780029457516012179991209958318729162322062594734157630950771569969352250169088460596066753227804176104814350831352689252225673103753091117562483469045428844642356657992376241164862819556160756894935170922835342906234508955138819375672299881964446880783719939000954884194184539635332214191629769909778514645309159018570543912365021702538404175948629049417698614595060353775722768664382255985565549649178779235563815299832688412815013601749580935713601355753250183643320613621062465146122775536515088262845998470734917642056765724754836567628107983229553166914371650016422248230193211440986265806523206091048978327379715707683957998509734007751176517519598705581749443867626837779655558008026280320771000824369031420558633603096432749169158725585592019730684023356160753919399201601286748661096435507257032326225790268507828031121460171203311968002458542736940474815616233529444948563619301575796639196088127080066418239240807335168787587931994869053920746445986354010946824269369210596472535562971184965997738281723580719567850831781728049844538155174537776339646529862526753037291488935388210241608680050844383049083399087794396544362093264159920220000971028139466969119884910779700856988061657188592217396561354655685413315837562130757597497973947495642884781519306293086322543525093953920318230314448124656684109637145787493868535714255298170253390944139366387345621795860143557572944548908752905231158127244803530195314545092581627095213357902096045655322766444446495007521131267593443111706356499769833908097025319394522411404150327693618508932370594532688475903015088035114415757211715781766080825963598316381848887444220228507592599609899049223882677450267790183696143751731287925964726852296688287484819195425714321713465816344272252395622821471458923098077141263105590291876513296603629082745251257624908313772614952473256073030017949340603017492211208766650560160848377043298608599780906766027466209504250541384845649632849843716516968448958886607934193957100785986697602180429372456533356758609437704068026953406910716154243407011141772051023988796136386925870107725787685253295525192303738723799589321183902913353501278501032424945029049638789723067302235238188321150105578997504992607095852203302294996699303535891683228836216157296160084315950301887184877367729787030775285421060659486560137289715826762565639362055880584836519317760515872672839548866975465823100344384983944569324771876481801947708857061512068513174973706159899428652604614249579958124383603137599737364210223930315314511527781469398594588442035124233691643177165976061516822948966169846245299077850165539298349334204010588193723242326971684184776479726781827964151937011395968021555808842858789923986523931962469233513714597311767996834600170230964302442568138823049724561058013605119898707344400677313459658669993435696428202737067771331505829433792464239572144160933493142446003835730538652925917173030650916191785859143660947385377832588159753655116027339402997150615067070568499954809198580785679869416326652809140756447390561042340972590999555359845381926702175938208819387447325749419544140770800193608341209765344164303637191199478921835070847696601556628376235695423747741935774505439280654627837033234774130392005499159482752332196026243504400698901528095938630090219001262142273904441023218315876816526752926247763998011494244833210893642342656924393416064923485260814236910421688245344665982870153050741239918768589664968144673754010467911841958782404556919586300477673501136345017645665153610984482244871225646044829677471423334708189113375486885755404543918779385729780752629874846361089117390983742429368240706566994954914731265022169461516572006925592464553529475821231889570808172552161402949826712924259335058517220039630621570162922064449529487213650905451593618855120062939428437660838177806861607311928791246509738147132861464947401643524095023321456047761372562366728700485937412245807764410606988253093101818285300300168327111271272757898367067523924643180634892518437975587897212586665844286419803251007573003906697274498266170780000884902451546851232287898551769489905031943020576361067326219486721460684827719701428323536563892026837745856254900799291611506801211199914161435281322184094894983482023662935543071518135546656736880945755040595249550441713755307545890824074460719115439402654119229172182955375522139953406701267633230494978702827172568572318135850113754609951273542957229998950482014832059466653936475669759564445054331517680986068286855013017450658988732111175026577843123797171547017069397289091349578204523520645146300874069631364440524201720389320455459837721228786980181323946642135147562259949089300289831289229274000713301055873356813969630754772556331019604616128034247263930192264849642048109287862557526090929599558646334577834810907531943288995955765176531981028287299237684318299610768277207312326979006674383480027116982171401198210307180859803369362521977951585421320736994542713121853965965820137960527326504265381937374172018921614198719952622310541282362615202151656654975721254689066260690264156822538903306456643267433260029731894451708473928516985650309470869239185072692770189602059182585539522344198262278773253586853012111765480761419166713810679110472815142451280994397712173874142011991067625611781298314662439998674256253393650788690149946302719414100971122090382309950574306685649575649730068350670735483881845301555901675621425764838642063343048018238973669778541206604782826757864909966805540978689971076009713213031783108030850877775082164820326115639325366793555247451706274818652072423605367996697029361047824710256895736306991152223845801982013240037168600306220310696520960957208763930907013819337075593457881011130275878820065472435201310367502547670649179724869351532718138448564820176312914964552484427357919596916938565485983570749899940395861285146809836759067510008645607837812960293838231003772687446965448977027504504545857455539334968951735600512027561825655623378137591070542090120371160655499532944657804344343269459029054294737902485441083314999940886066143901724793387211081099860771827615565847443581314424258365383164905284842090777550531016232418723755200706163565382905500622818521938880838781040220328385589174687446251555914444160810866753333640709957924637091340521169640607239230211841103432774042561907938724713248286631300196998172520161935431425427818347830816414901935311754821638526616250440558055349785651041399579739759707016671841062343852449061600416037866105407953850329865802534101541015109440945692043636512274239246735964310472586618469972380302398709017560921695457973743620065120531157663742725702145831144628614821985757548630870641470833465582540403096199993629332056683088971110295955722797142861213252250126744594509758514373369348700004362002284715099052474948378477292139172463189799047788173517630855325013177840035524870404351120002006797966785793690328984321125260029554309055517155525281275437115733952211119378916147798461262353354068890719781692410893506249450696220057364930175873540876186376343399573939624756431110600680310331199548586036750651962225349080226462909880765017660911106032632867371665235994524901984464030787095576285910524942731524116863782790344485412625191116767906108305462522344636725495683721688521346348930556102759648246164313059656482631522843958006222329619893964214396167776513958990334503291636095261503525313658675629517347430453925769578018919737469615650461601405336828710034145117158833595634023275402010865343429495749152359098358924525204741866373521115346988804265260742229951070703789599494275612311149986814654688957032111546687040220125406593347371160518428776562015755173633925822078605476008382709761732248662463626583283770566306695265632573346514563809900571386227059670795583840814456914624630733619452573893186894228088789958803392010000388986131387197294725262608524825876162413401701363821977904645263282361963602838759017203796472743801525012549056002801827770504908128361883629074863133399322058824045348870594227334547804096397864061441152179762973460591001632205676523273451973260019892754131993915957513995387289209589747061484338844825691071853569726678480589096940543628316113055322316603322597404693238592467808583939603090692751233444192662019235722875227194806729947895929703033935657682862918056194624171833813226213241003871915799746832428090183370953509662317293339409670174737473217314655057881089419411994077936319128258454629571927100087035612737631378110263969713230200752688123791110916799333719182003510158652226691564636803946575898063629670670915007773001666210587577121812541029240027277974003191831197364369359166795633792380435369400783707219174771523634624959338701792806878525853899648864042869111705329545902876246179161577070113291560226157994562660086995435711408198692823839305024795464478120016600336192144305131966037201976480180691601454568660586350669917970231731253554565625840950338689483292379207244775267440749313396720500971860573034325839825766919949774418878872783887439202894206237684903001818744154317608753548732629438724230955465355867248880514495007122362668760843361686882030812539879965212656178480345299601866692068348979270464353431824676242370823061525146531001322410535535443742145900841287767310065563040806213898958259132122178469713925824450343737539066854651925002228584080560045498997086770545411801594140695335764795279485746842073562757800138488561743820951412579540891171630590731812333651529454666226486682437847188929586618441903991776533620253976514963529636523976876143370852654661716269845535715432948489734973979659897099405027989650997079881821655283380739529718637296016293359107403821428797147721910582515818847086496395541950029131289107941394950412967582457665345113718523839061169636430758663125289086662123453836976493673734178485855388096794129292873421958170508063358087091809417755489564681663224034577471431583309128001257371680893131053361839435863088888849143476503748123177675333143947851193519895083283556433889430562642998603831528910262893006703589174208981802225579868457922517751586904809966955474789458697423238076843528448657584909250396201103072690677477801226266746509161284899105431580910602739443390800921709736132181729558302395682041614706237887111782124708543686949813657865219144095277791285739398582872994186464083972079568443771283872536568403444328917979537338510636068382784159227267308319032752059222206513298474793011309923644700645146348182678821984928168729023960061312475960751516779443441422920778940199795729226921288189984818565996057155043268815011024924163065620999718856198073951179762158771528289267651416642068488287866265836935875631616718946333139623784521926505480521680498014464289259756385570129025183995569834418009578337855394454403676872530363427063562020596361966958867116823555651554440940733653164171481352080816224986061166663316306784049802299487291331440190436909034148052302652374393463485426992595296814785820260500850126858178302404585195131621813604307153100109011369025348509106047726236663700191669648268830298942854585668994489959810924373815193579361137585309354490982108107016728426047430491399950177043614822935244637211855287309627158802809659540797386701110492315890631747184389432064509588769701841448045333051371336282434225005975836136721979395645982865671247537733225100209508090103591506241693736495928035167780754546800828837636166281937367850227024819169770803801511178474586604275979536991255228237296360137743226593606092773054370487967381930753794090829204040792468640409576422818586365800875290921214725966080734698434733583638180962432904536955723607466347043817664441784568453817696873039477748624695009644248260479220002654174461451747790976316093419659337648852462471153821928361986520889623334729824675221941490074946679250159309459822853889836470267913122370842769768228429155694301717732536078528097237156209127690504771687331740098120208853358780130694362675872160529157333272209501411758054126961704536381469484580287486298098813340645822407558322529244359973366401152708442704730645688662226271007509284312460336388948024529200635938763838735645837633696623134799264099450220658805642814877828895257175395934532540392148693147379303242031488971750875372921576966030430050591613567631135633905037445431003550260581448096620685684417927550589988095451638557139923483222858396578923415369840045381713732471156454749523019346249254087120906213984220157827935369082738458058509598516955971795239338323422629450183321415648114093169342263040524961727197815015556192853638512660014517051474244478028980939501235396495383183001349532067461826657391132724608951051414478353812960165829523475909293209516164330485472270376975154803454639433413882370765479332186104482855355215393808214630283131896758880416493396670488168285402092777578013852522047284933675999636045467671785834450793400117458966546483156368046739800696614858391435050769529929969672487138621452933724803808862835630582177174040363202239068353005950617506389474026179287235985763162368014998592591264938320322945147637593925800519698887079472232198143884158415789152310392861346609542509373051824275053048912802094408622698704247940266988735662734040558260588842966981464617503079989745423128975386203357273786872978115591586936413292368051140369236657331462858168392060565071558943906793709297453075415030816671651958219144763743773872201672615033933345857870963245231222579047699930870996465739155043867863322561213738272829108217924873189918738124599294437012862031747479698518380867315824994856974160451557838587245278179488362130001170075169372610703717357620683298144643957230243930564038193816342224845256604526492228708523897192213816835484294896659850234604256901489769664602302975371250798863972543482808772865503714060952532822721782104708924199376516250444425543067464283386264353295323097306946144661300753816941143959807473340868611315178599413157275513640832408864844576635665851157871396908171466675777607192949474477747592652563513140051768398299599730634745351546084654448252019879476752423617843624347593510406003692596797340097213838859837750060476667538715606178554940928050511392274227526244932623592159802063786276342091946391931063720460533715498974501869516977391994221907369698224859952015345904958008247787901951372601044219517222650611250108022978956206373775527828073394696754216725978537095477079256697821852221160764870178724237137567330855783304153406330578502521884250665668499386020806984400453353927566115214634719613279368740118808626116407827009395125558863496387453207325022447841505935381837110849168004491305899141853046427233797097041514968879667682726200730153167837152132687618887731668202567940538940605729959518616596424696969853608636372776987853782880105422554740788236551501690247105107598098072603150470545484317205149417994703056578890285668665006719619102979986514561010765942958322379096762370942117890799730330447471448775507814291965389655724267329859541759295310767362392596219987145040824184899566624253767920298840543855388298384408874389801984592735793619524901938124593172559545560018728577872128184739722976334788676460762748102631405924341706390026499799127347076673689261546298839634207816259714074961615318958767552954007227634213788487559014316468828635922884222648121350527349485102837223442972854230745616538440467847185784008213847793768545861554268447224897774793488760085738083041714913241936465326092289747861673585652534152311799625461266930165102973357430513208020455911020590606625668047725125324765788965368350031665134183530304167580364711303204471800021666016915209344038678231669294143845686301451272233517492085904443895376221818491180356662391583103563768735959229035179765284982304598487653467142938623740729464728579004843236237849629217898179936065693269769809405411527681039052617382966691396732183484151185261094551697907245108027119983234374653358942817136578709825793174924661824542864709423855107748324860466367512313224179163700467411429698477098198900422010018144125811033171728244869224383257106895963420036421799433075834162099224558565496414808971287090385637969239975589546955347903230379702551321360432216206603655464796061325282767788607112371317915455870325235618512269003189532536617259261690900070417815937240395254905093590543940686683976807935876226433891342503713158186319608868648934747083775826012485524759626347247826883860777208077804173560595565494667555993424633113348128525699122015881131689400610331153781576124643935860896015922972380715524176579482274013119038378879965273112734998567295859600592578138506312775718674948961653648714047657350184585646067293535867850899991256396796665178990943465692935836752503272119220162840448145370060538877282509558774985080572011981961429926394990526376711484264530644480318641670072376518793270172115987910628380634085099930953851820260086574937839916524489039249097214780655877700978999117582998759158269690623458912685618953750430150889688480939469089721911655688611426620202318125910965686065338026389924264579639273983325929531893892110319316651741327975533345496824372118096013896635289643824815377533853857088445155947569056809441825273494416088246982168726047666025868100184337958575542583602945847073268492399368600176191868505060475879153095014529542535115952110050277563650848732553073382373443003980806449267832631779999057858876529324822093933683566215627219588656715184909062923563683655485263231371590645477854364706874657003107464803955588178657326369211565013698331132212225026412019022276862155851202820639242770888297615032757621636254919300786184311807732933206345429836869986430563922758500293932896098244857318042221432003666062965222531323351842203624084181473455945695769312321406720096596146887267789692036728804226783770811524559199613072196768360840542792488189930815141461052122268117657036678039400636849894483721454225429563256381256594315429675433690978174272103259928696087268378585816712760384108868371202306316920046820771768549596268517210707841551287097985207115728045113410832553693425633949920703477474894345431466525099157368860258336089756893683681426069614236994465552313805199660518838043226803773901670268504400588601152901503967158208252094204514512894716014004741901193544353137321017312955272399058142809137615186937510489485035768300317200292839536644471976566870435663540587736134307824359964869940687869327051107501543982807130654899663443450738525297379169012430721716273771556603744010484270940497756794256500153208090849634870991078917874265350799805535857143382322086276717876454335496057226323516274323118375613715350426554764694103625608186934487198628088136756543416230959068965012181212528128889298429921628606358003751331070033594487880381137941596746103711893421516489646883262947269222755208724880349789614142576576025833837511109196506861788046652787695028084685269350560067336324341260457060637280913187175126083727526647487195136601891324404245204055434608054568098854362275312610695197906864988703393698792380197441028590735555909059628911046547962731334231001360843732655278598730035498615655735606554880249314362138861723345511194541456577690068671523498402410661279928667785159543894485309692360569407600677523068560994157852850923687458311100008005293460387220933966528180704569608757580983184415539499332365555603883532892721180103247097383282604698224867087876810676786618366408010660194267987593352562664381636004528120123248152037661271719582127466977102075349051069597455168146524018835523214911602715793547959703499716467008713586940354691200027432269852411850029997899910179883696474180078138116734335655059581281023232319386072864751060003141548637467001893609150609902289023136905954052979925073120289937314378421420046884688566345248463386429839165658861302947162030895494953496333943395069167149566830087817650814702628033288553761528979559832557390815551809534309033789238397346267912719665669451608123481966321253969179364802514744477150584467348604054699374676940427656378320482040025273961997921956413320593345511419093813619935565135749064257067002444701343360426703079072774338142535210282177761968508137477239969000563214659129566705519923633821354464923975360142684119095144447788750309393729639961934764708626398098817007971859510365973780360982529298980279554667812827188112887768032361784564304479168537690544950578809101582531124261843391749792580592214785633382508429403440951074905265803975164869007176851802650292470538509952656822338313509446556460302224558465453861594467195596870117876122947420308485802448403540894189067212672554812066938554280788989816726655183504877460488780531234511315904927605858300949433085902638894908559279849572786833586485733245905066916028696894356693911682492739221332081040701573515566650487298182936509135234184615865768452799238777503135048792576630189949933415057663774034091832559415207292848555913032278107334803107874701993462610898661465428411346019835132874834941745738793808846985533166192137890059917188317796739971781884738926725028744546914906263044973684820449030889025699285806576547369778316400196528991983818930608244972683451851571716120883127102197972899508225805678024391112749586990004298557578561285341628212376306310366637419770557530077619582742003111881412594414768357576350470290327734215607532023979920627856297109054900374650781227424837089297279865719954806034242433024544608879978309497294517779254186212237869157430130288797482243340290842366817777752011853422048998742002233482947023839382770952311938630284845690432073290834976934173354629993594362236119614503908781080245221779239489863058871389880511529641122788473316202192495757161472226605296598666867493524209823567120275052747321341937314235405003880221720913023200405915555524449777789246160752107857711766401869614714445285150734577430668768769069786036124163590106633947816988620074012030660286539294359893600714492043670411700347963648583040076657930337965080428961293423053637507890413139810961162697400815257910074608277048583491584161052317206463553956262063871966497406767592380538744938047163898892589797786371375874872526762191851604411085165613709390637570913519567868402910216083547248458133838801763652256112473445321055767262783298807735746558535013444773650697479008781670685437172313847249864739394944803809556643448887315981812264952965185706651456862296517277552786180506862313268669711457752934166257839225395596791319191644909347345230490250217779353820688572545082492679691335988390455431445078226840668993741654654611949994465732699823726777223025579580493719621887399881710233502810823150636513983781812533191602851256719839749669180447257596005893990818868930700930478425453855586526573435283805578698931051203993398694862565085721754702540209704774431157605322846046647876767062799217251229670859087814037550335991037019098426100094892342790111420513434296527637128502726877455994879828868997781695897516969004821718383740868096135101941291176752222764784441193199344011167976583183301195368112791797922993608660202730276599251620732884037367219781929405889069811396673404473987270622124959928914962504315721343977780374631351990849103845292338571500313793450486258315865203654408104347679530407955987030842005128149982641607837448282871787435492153298800467348944769302363722841499509379455653460638290936925528514767835449793256790141877201561706679937120672129507001287796977064208082925959827693014314489373629221700402184292638284264584743603229150165202088244575193683162777495947409231613352441903637255248317364121505851704891722345147866241667655988700811560016259465194951076238822414410511339121898396068165315108694882859334847709134065323504164734597527551517063202603080135952218366834588684498379514574265173829886223032005178791479583566219267173725591237890981648580430710729767896108196900491008759788947321500098050568345286252619916467311032946109703135692384658352737406710590407660717099965236120849369306561786954571400665352037749383102456932152569102936936758104957044337995577403987982947439254915799572929432220701009037712029418129037682572604531221905549906706066929355035369073195926924027279448779368308082516926279227417746583841631752834403777874642860482805059987477376516871343129981355561007205633172007206477365619205116791793759980455275495136541410947116684494795656977075502771992121686543312523747622337894822914921496494246936295017179253787409274886756696199814954234975529477228251723914558100518570207568417772020125840235786009014562397191366575679798537788253784408658808077869344115009770326665582544021200262217891640789597561811312278012449311405608381338200817501597205289329821621115772233572536588819346090832433075668249390503780782027701490669620663155976070614708299047064232151327882120904162926053062729238082798112013138618633144312682441167668448205550862934570869692338476215372162538972696940144943280465635795114074051820463824608715122819167943223490018315065475137384561272421200797280732578164890355394585384276421206414052146904002954959201340675967498072174566803533514843827460991874855826914515967268307911955026286002784302569156490205161572231009284200582767748080870176039148306066647684909808908391830411782316265664529094450362921656958682212349896636457544926202704075905071854018103205128270768116867403763832358186094372525460252675492264107485823013046870182088036804038932885369793062009223961910799342813432170010661559816678987712259084792790501010435991174898119464003491866049477217369306291000992901049495222200449709338374098407487357093792863615003060869596303448680108959711791892745606768379862183511188520524866622069668512599446470886001241882577919091961920057492493453865000685513369014473998487049036102001990373238993036713080157495589226115925875859495097813093785002863508131502283812451772042723123918798800248302742729054834039710671321347606377207245057281795646557349303726190350537307000157715716170847716824115774209008525674986731149044908307719196946162190021111701429265483062870445906798669367960105091755666335348474511976687482725308113546159964092588204803004406735312064512028376165128613868018676189479968680632298925122309157864840199258016100207368697442828402445126005047833183574556221765914360651385874677951258812786479155362782345752843816172203945517513724124627615445446859232911044078536220467665960745046776341839636530767001253105100047651182746636251256951091151468083196378890312453553186285990976730341629569632161258229113648730736456446278899455650631825755963881938912694136961257312993615961291893843075263712977278430555707882270688264138790942884154108851746071036723959544612487420123727888217422032313310538353641286750514473235796882448526482147082842598285115357897864110055024803277317330717571043279745233808336746972122275252706487556496912042154003547743381794162835311939606343476485975058639178279361693176741155071565746714729869386555811299771604873526349795008618438673904121263415667848798053881550759572587271826708930829524685869473562480835584450276701872535775076498118917163629093637651600533127098982151605853078245503599509596122469397467126778425824881463506728565942157814035507178153369271043922405892635638835384498004177510298239295756774063374056236344215308267139689729498632946952682968988292593867901486872855835385953700714842141673349093126152717380153918994305099225208716163399039722809578559983878966618722066282578528074798313415818379929520345847828076493923579275925248636634751668868684713812366629460199782861014264963636516675019601793994166264811594857306533987844713109535200232869455012595978015911423445691795399995366570730391681462519246598609793685730371501030941344602137230271922810252292796056620399501114783144021709207890253350956748491465755975569562291792208422905586876293096738268830794183502456108694651981111268927450170851258498717124011246925033630472245841380719716467794063863007404601016004672208647352808771733452279357514373294109837035270906874064908199391844436877680894218682661896371056743733717404646537478314321546823110919809159982345663925196017512859389060184085203079500402266468727561212201953053110018526468120542537780538896713551986307802701388926835663999641979637953555220032644495796617240649000442605085005867307227121142506473765691109358351377253922230496774905619731355158778009781598102982073492780351040701243972660496436109858889120684070841900852675831981003247931807467636845927336585477596239258616060932099985117924245494818921387654485372409348761283405391923782591593066056724767841616373869332648984147289255470190468749658758126593735779182591692411265008125951195743448161922432602608737233878855785743297968262826275938841938054789454956854742174891104004352386494212011584854659859078500762817450455836899358729445694648391556075865853994824750080309524860792647274629296316250755980712037211747167384378234696726738808121693729171815550496607673523334978038788794014400878512075980543302816590045093441645418999035933709713506545432807611004206214459935681413142373993059247303485801375982017839170315901636762240462550165630921912704251616432841621148016203963804162344338214728805420423631588964772087710983550248316903111140539723881775931513442801992570813722567138983168399141352212391292150888319271756171816953060430113706483270791164315093771064520135424837883305167830989591499109107975586164737173291041575110994268027581872897140269725390699779431132262021890110503502151352734977417871708583584003131073516827829270207144301660868000985889844446657242659578315800582132723679060506752664924557943874421060315708035396344635577139970372513911416622696752668338847737620619448310868165360635447722505553922627314963879144378263050010137852483465349096488742487070825085247234297685849118838684430300867780580744132777400404638465032947644415952102832169693548447920800129524780534149618403396737543756188500943188875610777671625327616581605090187041189327228389270695943688135468935187787304594210348888530816473983668681746798266829539424392315534232834291061762729217847121783969661084715275802238323393256932104847155380508453496843860420283353327432726150710374751044516709056011381145252148333296893656522256836673895938884275312235716918268188971864356326161061874641765684656143995425211311502958297246702303002458922816167558716909887614300824011025556380366385788008042899231953093483426194099217851059960332468110749763563082129923115848852006897276019752525270369029553292980827967850703447379642112327992271325954577745415470639175129703253377751430510982998425231965943636637635494385587864992804039993688953055009684268205726080466226710178774307371946254110656789040138293420698875083666830653336371438306126747761307771350530721073386674144881249974460106279043590645164078837640914413885809082648321401513189081761449686511994059009164442602516755009537668172178864715728672439970960148664520328746742983836560849635897001111628536341811578120495578527421143929994754386881389055408383906647665014542809664896509975665143343715791106352592769499940990569413677773937251381755394266966498714017699426071414898447327346810357701476514592250911062480597442409237698547570912260340139170047700233791088838320611783602835655747556865416506610121798512088936030870622443551417083479637951437865049258917582112816490603546833185706615891333962016511535623903979820317359734002023434491586616611939555973704358959909514981222608025068817969277769017125222748132591644718488853004625925522600733860081513015516188374694885964066536286384688374850416633447672562021673155947128468870896006571236270875150104041041505493766944683341420639856142022816253651139165773041189249136831166989889805130121487027372094037164529159993960042729538645409243334386072668608531911477404834672267645060174914237728749701016294573880764473727703757575214989766119023430640281703249688956583939528748109915009049116497045794086598879807289539110563027710162090082610998304338879165166960400443276040490123449128440920335526051685987043357482651110534928907773919684868545873107806222227160888873196189799516255644883193483882639457270731995284660193666083474396295499306437795781914599970722691651979213619599987042913087041807648941891431869746792080871373491154076411529428173647469204261228580582977222937719971854453757716296961750920592687246184867406502807851316100308298695204210616121717089159920726897069867693787069902217342206328163531512317845510798221624440176119940214662469491503383508976711719380298508615087209537645723218017081461567232208324025099302198401130605762129386830888452283211863458922730926697003804343400055600832899129852732560835873913456326146503705738193831306972888266168663248649368208063108654495021409002418915167876151186916324828223803081870843019898212413673094393142656492880843944455618126229992950118265633366492786411940133066805831247095629698255877756036422263464543577557209895458104206764912040043211172061107254605272437515572187589620088098111357921984337151574847074839019525036958299054002664661885471777969565256451613904432382350981136689901093113208307814103473696208527098652539999473672236372285350754927775540201254077385486293578376536248558991361824286745097857347336620141720672440188745195791048823234408157971894271170083984310408875305217522947909546239789096810580026822421328638214046793153972220198206773037008082680951629302505725423179398629425650001068514396594975099686742503871953048604659300596827614741886624334163085238331353433875973631190464850283683508796533110052377990037810474560087914418668981984323457833697347850080313440758217194989020575401923357848126139453965981698268062325622897993913754287580590739961757313043480947081624727593809979888129834611322467442297428016926133088663073769405442272555451748115494776469321101735826973934779899683775866772460019364901482116437098530613565231846210142306329491094541730694622627411518385214741523821516192853831355010836158572872681057124169803076703199727036248739345520688090084265269790981861970075717327124276632063225627348774977729864863234288192713396987787938075475025752499460416543986800279243296633044589707052229210656802214349897698923803620606763213658981138303123973989876779612942780437375714335314322521435492299924800795041274285135579340199200003724330564281709901871845557200994069741955279118520605309573018908995113012347180234135441780198584423784331101852243363793142267016499152963251838453130085524631328302194010966298854224681653029956291778409231800533623882219382348562764415316044753291612012771818302316730199359124602850097299832876683892225402542537167559639155601003664458682701068465334838788827128345049234045824268824384046533976511449215969514831717870618927139834426027783802845091004536002405565682820495026450972666829435231100107650566949539281274222775482784181144710589448295115348007648486125182012361236572724605165982035036823553548190112148063416279600944756545961144180961807619189662994000319606699025116906521901778371432902518558061168645629803108021118053598564835164538746459933497384589158286726905214934030515365302818778464543423886499639207735003455791472933470916887085889356306352138203470239723315250888641253963328989843251137715787516725533878343062879773272977780244719371038666840654954852817530929408192315084743006005526632549825158790030820273182407226573810872210637985604213660267955100284346712868576425048303700008233896990814851044594563368842540522125364820905278458277113785660825116199041610918698123030312169396848282226388375207448476635854967325023325001504228240036640636662379329902079347339905255468520572036043916455037984364070338713786553965929872625205533315198029554453005391624624781743048739771385510908188480471708470363787688112492515717475877772478737756098330023525761462142445242355193852772132511083765797146369703267472048962545762361263996187000955742997343067480042342546540760571987835964802849715678377990453661701869140142366101946491126481287576377217025940599686528946222007489561186791667324271926784537216145434541683437949968740892102646688747464921829820755101760347784566537789051772661122751624954826421259116434974617236035480301117901349641013792445911477924343016569576687686666183281473802449620185555116468846849921053475412493493485013331053759079485993214701446964569314488103914773792160880889768885798648039202367301220640270770945799241897211497298111270807790664696302845796667122807836134786800688282955749050674779828644372492984321182265848754974864510126887667197425158482452187263909552898497193447460926722714672992006250166247165703672867709825146283661641494746497411796315003285068127566207663201578237691037238731815491120232030155427264219979051006173296122697312726443409214957690112839381582470878060782855391314644772656052094140377303264538532672392625888849607444092581141752382622185477149130133190622736614029710710638980165639593046286361286962241370503374385218252756273762663216707037812788568106092786583807585190814219982679536712278569731120051256484225238626780851611279361281823153815518213042346929186514289204169975522378625243509887924175351171431917872204030131687576936400092371129845969404449607191965108486906928010880806513174692194049577821769754549028416456108856674175262719645083973721833023895353190774819244721418723064154763201766043075216133857490830945727917842135310899241073460953122281180075543730858949871960616672590409929995089621284276632215892045190083901714178846340123123749908522541316327089893135872384097772261573800177712524353383915300861204701813478432008025236490685026637748196028639762506742885377972163691581727681111581926731739133898235998002824419993717335134443630443180380156918763232811522739109295379226246191348995501339117486525919698627890728827462618181992008647862155429735490857365473930591268990821127332532565925071087108847009946681721143173236739762029643536976214022972695779294168554321183104392857604988497041629438060107861796910960360372850681058559121111915765428227341779845758784825539572652360365002006041310494081615166271981693486224226297597334992821482317279269120375713288686659696392053513645234119616408215298575840317765175973588186632396719027590883577115575382422751268394223737290683340054266391213756115318297307062759107253304304770710747471633352669045086603177642218280002329670284805464788151485068128272709069639951960167006942991627277110281776342190793244378778645684372823772496844875595717447446090970244608459283929662304742247785437310283170295106104905949728525587848554879788542346480179652731322031756000181497287063647031148475200637892714549898959198395509827878276686904182696506265028936183037379956748249117952089994476117415706192533708311392616810740209960456744005679451460218749260261562258872355261345227128416396596437899026454800361543046791033459900486701702762031404106578225099333281179998543185525505665457420034711175615578674172023110161507076405407257493370977523310080546815621157458973197587152180807913830253410034017277310689899215754121817087964826499950135244571505041162482127464166635760359809246986699698156969696757398368015093902670676802309429237409513969335057959756239653740876441052262318902426207273332773596040537439998357907605770633674338735397422034326472940201362320868248181471951754256230151209887646068317826693356568005880203916072180612734558826267160597874024405271443166232844418406820134273375193805599714129059299175415944539886136107491852920187586396381100687548044553523736763767113687895509966793335113329059188797489377804272568764091824007218629723752305913282281862483666544319417997414331416536294680697841679016765082242029217700867064144981980390473897616874916716194300992156973999062450243297526705433782251992966404285985888267971359799428214222114964364628800138906010415191996121034871893467640571371810430491542422809053661773530517173004754876600142350442459638713061299327813937150778430382732770112157537166232454385228523592667006539033702497601845223576764803213040933618444952908338008637886192182229003921158526811135468545753143893885299862759558930486656817352774524264600717741421809495940464882177090136606072127571168152992092922502509059791883854011276346840111374612741752469426424622938984705073608313991879945078144741628557208641541334277971610461081543558073707754103968724590179487271827771286631527502057148165003026830610581743150614341514060233202222375227331281677761893766861749538888504278943242091276335471142740090796783961132558030496141305678094940120135956585541781759072344063249393930915047170829432841345443562950778903293153657904124439777652292948879334915777478782917944322318068816260998180376943934476353722099759373034477123097217310832748597553848477850033956809360217373409512167989167256413028518382993335756419443701105322380522888262840396421269361183768069173729425617659478820851664017034442278103711958047224218892495536505310545510935432437953243888593044858777150255549620925263134451635692783383941924467202346888277724240561793667483134954964681149691606725507233400852259251911366194382671207621583804361119147088785730822920245450069770361514198627989052789882977109833619512546474760999503438763932673590829595439912312571823536371936733698313815919925516480104254706290735445215310621660655254995122005229591956563135321068625786042495228275263458548559121998257418584793937837339067699386981308935600362469106029839914722766930563588085544827276781279789562297851139858035430685842967889357736622967610929370747429359107474796931454667753240261662082190056620852909117912707938726994166340848729716096860824316767394713808285072440443147489053684153022370622497592635630376783926553648655058857197988650901107334837505063145405971402602809021299523323449923017119168636983972827327154177157089494445192439227779038174974205992987394076319264165026725866911580222031670081382047497357361648342692619946721271995257714551952314558608627654177037730581674025238969412041862939577745541254515353164366179181725498503928345158368790230099055476402644544030145238396021094815022664774669314109156358481143014518466695555365314639559871477420695487135824275311828888239644796034112395684379493488249822837950417408559849037043198506007263929726350945863295011535386250007459896833009098327603364422559758598469296799648178912626412791656861668005549939495436232452562344087383839710677655947173365365356914814870828930833346553250896272333503256211235805157905085155598643383262504353677777676659332311754768858474973121241531081621097257399902382245016273511563515022027401581570097690208144191821953900478053593351574914486457512658884438341356107458605203893142879801955082484966589457517005292455165046126426435887866239294142019528972384318034039303914136950525363218305352580854597630435339289582671994705146799202763990303282803224129820932583080834551938493098285272345510704779924267118013254354614285232284964800942768176160161156831042301379698860698781617514996871633110989352642765080922537814457605793882914950567398021477484267630482785786890298761609122567495914309752317749405242144466568283943960181778126705086525613422377866304327002488751802695781580654421449205900433928764186203524752339678939754964335300392176235150063439354445001562885797700718714495321868811158762892307975296413439043746865894538128791397271417155125869691819427497771955823128462490675181713736953248582662099307333154689861220948457028881547571251207374718642572471991941218999402761081420445861338829000314428172263704511189379402497804285316311851943831434262400558741351876543063236470916280674256339593279842461053449447655698910185448813435234462943119119823907652615778429810288920432597929989208621508354567386002046053275505056843427906909995460875126363165123122529711262194857681770351292351057831225094871897723716897994088378902585678983423350951663347043866809260597441698018361644774296972703898999564559434296524391284870694832364800899330591953411902336105012969926551109130582485042987425546827192628301296723661725183748275066998661769125446024698748511237533311190342870014677865036804171047608031764804629841951075931010449652199844748345138544742472076737638308141188639064389500447648426777475036379337857840890732777107776454937863097325037150044631056711772885980214423381254792788376763523949241263041257989474236743917703315763485921343908010519858415873281752303332597448673262526447194395596096306762641277693701526441575850809132290498447664700081613019426778301903241738919732015571702817592906438651142685101071127127601531411390075705333556307463044715789152037728667454439331654042014822909981984340708051077778132076897370442112806752428639453237273622923936056449707675315894869891514120595480998129507894956005474141024007565656577529554563171124458950779920320066013257106134810682035314747665350722254532903116330336969627039003248205383073249034629884726362674783009018757819320497692623702060619155361847474325845133644637592066506941833863527781738845938367908167302944228774363281716966324752174063491110636235808473754876206204050745194073442284263127193116382695858041230572876059737455075116572818243982296656349267853602715993825057957844185066079806969923167844950096410186039160220359036895753631614301904412303498081750692163820777647708698526889743399866446507873066961436597591830144731102691457870053360738994975458188744700522811294303541107766948759446865182469389727521367495144948707995571990176264353596864833156988074045524219226663527120943926242727577777419786944332627190136788125851946938928234636985001457757500857410386289445113599811673285240962021579108996985444400678180424402118501816911699874822134423288603273164313653465503943185487457403240438144871862346300341632088708175541488903996467043096123660476720023607780450033076394463407211221152124051891590996035081320968243083833589907877802337073317564932243128524363864799431025539652777947776736790586119058419987677341292699139523880051766409079580828041251916506162373319382511114884478209803452739455319290447324404896085079008399111190364938683191924381351184488042532857444740195928625732900132954233749815252190547336656423992278009887576545959352626681228693446697721815603069215807497581554305679621752776480926124980884599524295911241892133727396234903700347233864114609637523200885097063879746575641073577345018745461703851683493302506838528122606674946331335308467651682836526190664954597949285289202148261369340651583926370564426677275989544152888539620170289498441496351321216898106419427163811727709676478647339404625712648024156335863294252687692381807893160038823304008128034043308443250440628340818654745551948080527927908571365981960388545522242083532600661650609061222360248643762068889915828325164685772372726850191198577615370329900000616783895608978346920725297755372481816986825234259365009655445452431206195654434699680111549714408154083266093454263421694708488717446341045049138333513889783053177014226995316651038176732517223379145469268309677991440782138584065432372727732107530841066358991432763861664162927422818498140834424970714736618600026526763170377568860103689122405798219362479842596575112426064976943463582444722214069537593355129786802950048035784375242424018647065561499277066848459058436388968306718797079681248163531365154186770242939895578718916650405310550386259843380035480237282812431862650365724491655148036033450595144106670194223808508990190042021057210203264362427626995032081568383574773116432143890920136523783532105287465173656010129419059741377854338036042124056170257043775587206303185082969001421254549931655466720474670140816939871092953965363997179570953317750799936328571413924872860756934109066013558926133964168999565372831644694534331276429382746063252431980926950394444280102014521235240889091139852540190009064722598218581477836009306513507338680654376139115283966608377471907014913100516541364890234497501997566867701681307107124813353444901312346636246845785545261947459117347354865174216154083405924035989055197167711919152898798032889567578459687052774882095383814470574224231023186949763765937169225045927859411189398553778454482506614985369474648506678955174742169169805362937099613695466300713135781887712052165267619981932972771449144142591813334412128604019873611120787573328804385758192921966838453665065710350521806487444360553115955512883604558514700419979666864249468774583642012550708007195757187900189193201007334486819061877248675756979892789629426583161539883027552148701651085108107869684597680233821109913524267670600936964896298301626205663487539566792112133848744331013832155049149943871899788456028402499393609515630568833063243656669105165796384572676642058123362539752732689608912055777871752309162769407616771297714797378863991775027961372727029964897744956848490455764274831516887046577347173338317328144605916525328513934008043796929425114593955727666944576629008258429332341091887030705712770110992792246308673085758520291837752514393060365979062926345335935097488527820053542645419493203357429154091369635875877644202409322385596784302043053463980616249274226757909829060597534043762551281103325070681439729992126772840153036430844977537552897353584877339158694999360408565063984961900664968080065443623863430462238657497166617967482473239104484508617565085030199735940933724645183053337029432080709299475688556342783056473727990496311999878007760969099433195505517316144727868831864549300955286518841793247256500789235840820813045096306991364547214263866110762500187247268558663473691768504626540138657249155424591193884663762959944671847903371066323554424004781610922643130070099826825858119388554582134825236117968758552919967240097870887308913840589635600955733986484680137083950143194935642264327975506080515816648891341807902741048476785727831881633562030332912613044974350313389609878470373082658428045024433563698277485801464913498072267337744384884068125991381592345518993063312871346912897676707689305355591146691539315331379850013368266815361454729924270200014409150913936611598620581075032372807146715947028613041324773705960393372222477805290333515444995067114546742317967140178257616528202991990254942147052783016169728890180804232741879932242847519179273656389538305489751355086517150273593078455964456956003298634714489257535572564935549761804096381288010484345931939999632512968794266336734475028706347107532604878730386918667665453040624290308237666925399116009016448875817229347607917443217123094500239703398053291421878940271856469678483274413279841847000449095049848979312864158547271845988098276252408211715596349649744727798870849531931021182860891039804435709018441826513121964287438597049793884450567834357845123278616860567625036930664412999076604930342680333008213515896203842001450913474829008693278356452141919134031394083900139388088270624799303320240092343030757839596930173049730044087962229449229493086900846342653360206071531714162087898026095818545177261383424910734741520916222542019169955144350547584154208541102628014841434787784122369023303161279923227528452611905538234399378475918155862446827431888682578852949384798739220117936836277851894328948086688055513677798907352938337549875646206918425754541845492900768729221714323755775072414543841208650196709009821997746652656063969759303527459669286532587942720306866240491773628214496316847483780830465615175062229331709678941598110428944171008563792925063374477872661243946941283320448301316038243412793020670878588975341289050735816884097931211982059833772921816971793307454433142231777034248972665995899476654667066857081237844843525698241184785102122771034428350718452283785372855424579510963967784938350387576149849508426020930426179119092588345303238696259026300838637887624699343979999151989830181606946503303764168714983041810637534562197522549102405177064150954073255575650683079995071062800218727672030286138832367675834640791724231004995817502259232150898017224421200980645588754671582384477070217291882598288678081916071226945486179921929094373931529041676520465391953873305649887435668253002902474005126747299671542457005981058267037505669015870276814262690350323639004761711422057541028877128791394807454065954780784935197264944371798121305289701677194159707066964771298397044497080106579503622417635242203736023463537385508829306151030745193016006699704228798319236173215016824341958107935856398047143229354856807639533573930927782111363151579289003821142585338008596322032843844147384149779510736324424207296260052320499199024699332502809831878282373767356593086126664808328297781677408489431527450913381856589867362517204624466176805280941168931633505323880894376662533789881117266838929883494739572496210996760284025629510048471438415759947219741435032875708775308355069303782380152256621179726988831765884170152962729054926823896866795036923681312746179050879098556145749999886651770642610807709485070796422772169225053786374784734756239937876145372581982881612720964575648172516754150687596385147714900577141799627396133049373196669869786171594618138294802747794406722913882476764973795989915916167159599226508806993889224002927354106669056902276633343939513361379826715867012671135493219143326264724727505249762115358144382694554410166782950144273845506578142532607514346826228386800929748358377636311024637063105220638261342476533690613074134425096234667830308300992096861479820749465743464674285629166305509479743871016203146417465225615081574287414240181729172750024159174651930886792801749579479988520315854928263443552689505176140368950528646258254743490546803384794082526425980839716274401635065607132428470819466260268655918400229229592190536682131965376088936885671832648751472180631892545333222508092345352499853217245217487826358043900061359407530665181440826019708272025898887342513512129138879115845873881098112262145408428198045363227706474132621923963983868928358531123736151589623402181159435504647884090985963866458091701481475634540085227028845303983517772530456294269237698309646235199298118976206295897361998389070421296877374877360379327174891855127012002006174495145556771335613432821194783632071113933848663445631366466143856994190750492628817522378150491690674216042485209235041670698244240139038802750611575856710259688605816272970971712478835391719197773375781287176115276049169271328308868538659652013675301469581397511673689190578697284386527562612359617311462035573554183884742882384381916304661812068748480074919591970294281533300171937894460817714438820305502714111790506279811194026060533054322745976818541899357522495825110620317590672018728211853299578350250639384190688447820109858116712232264295998248600755373146702409624240758964427302195741133515573604108048351857007278666198458226665796121437369576830723040858485768689383865622970434103262938916876537659513316020935400004478087674868606627427885347274752045666734663006200780957650570188175433746714332218174942694889752865817670153715256004796385625974658651237291046219998812943799197198302587183423077028540689565944337467983914838879959909494252738854551282532899698790698214893348658726581107170313492830119000786862297352515304925954472306759801371857363563912528637986216294673852263787167351017077864141981246624315707299695211938562109898557303979131478253617808030993475259025429682990288361259247915327367927909095279015737565241434562005976052183759676339800009556061571614182346057513220133245443640681880314973314916567629983239568825464632251785398291597895640092256171139623987178442247406503090229798287489504496028143371815019454842214012869760231601391365974699108694954745442101295539326062486284343125294364620944698684287020667109089428743843924405767482934030811540119557164630735766417428433422776629550988635842432197306889989722175631210476160019680480818962909639946565601206147322283952819194699071679840013432659195871051561933244522299246574295036487392331009097505325328575120756174042304005084748065423499323314214672823727990143718286202505166815145810671448599477511036343077794750693761617393514752114768167913066680924594221352391946349662423519120108033373395472122342327003267093835294241705707230463251995861636390012036229790076786718615834106494200157251145869808227554511644077042063292473902047805849491158185974905730959580907103335742692314284080620507507945298938038303279815575103658303568590946385532945247922667517042210780121635899170590877806758788121645422892036577368061535355582376885589164026650887163754755451428837304913113860908779928876344655834047001121539931693743756649970719032125291974264105652438751553881576837029383516444717164862358635067836415497483686925510867812996535693471238463746441792537467070689724139218105433399968970410435078231009554165789805791304140177870374983517117189382214224094208122877940922065714489384919211968341120876508665734119077317555728648929573334010769446345106833787983064574564008106272008600663510582968083147229030151902573337980499506187597225854499571684955070150358878556662220051307484802094164240756841845245564550144294427538935383054547100692324115151814426635607746112937713957815496664341068522879405506141745409805659230317525228432488866257580212064002859418201350125262736947108728520010299152177034284579948288026012288317756494715579037195699853928847073077657660228804800608744655769766826757871932275701214462638458188686811461535758778257025564057701905119717536262313827541179775068513164479471003198963531869539680495781283015889693570452008712198585095554682355475214509603897633276609944869503037510624924755936133490893986785566822428769350402339082888699907374090872592682033883592103834453261255326214776537569636673277225706460424477493518539777682577659403337456791863393162250353874850643974031827725597600308231772326580964338398296914433395531529507807014314000091970861556775901825450822345765787884505253777664591087934691007919610617358671544251006050889528820365397989215908250520328451515558543938812677760641610270141283398309365475228205645024292906323932170068656952563335536626068556640476905599691797920785504363193566556936942590941951056509638865669537796049284201990934868374375500981664425332588022465007230879053023549174470292573046957091016421511919909643581110330084486149068964146819351190852719213058611839088260508326375541348146253289834636911057331996430476000723515740944155517259929649060941246686990021441012743940151230020146879142759940156253424275046881361518376074931255605599711696171187272944601189446685486191202609153249976270325129743755415103328732631476790423649990927596625796850647633989870312019171424374067028015251711750978962590876956164280980674499351361887301936995079876079694315251654923363282252036182565257407153158308125702986125835576580440315044660341503554515999895349149391342947558314887277765534713783239344744753551347143631353115004893800257295728524661561512199476648853906911035131478372484944441908594054588256332641152381643248067155212668403219034780559469978431768420012505646159549805663474925095399798233974733469035174424941561500902494254812800184241613297979080210317043694569258563661188680287283370900389762607979012411356104884615692419891736449084422288311040346562420676488517003680269389709383673500889481641196566902112232128300906561419607372741763104533132360879128006294003305714160330562137233091205331498076147439992905912504668231501402607274482830432099041126247591787282776904464432355601241509088048487910290069951945865149483347946804381486003058592055659431781292086825974583231973771796019106601429698360245881502537355458831590368827402963693914480070324950336116918169396459856379178315301697715370923224327693273642915944929488155035176490360626094685217326192579454535719690987820416179044049904905151971231984790816891578811832881055154209462295065519423154281236397692488724808370540401909009825083155685087037403923331429871371244406462886382118831658611764263515212408864696387954720296009905564072311465515554560757714575498597245698579285719226258757361788749536834064484315862364849606229110204345998161686027769890266433214036694320057970930160987655794851424477276014297806328531259723775301997617302699298773117907599361451982817084764816894882912678910135733460232963754811386399870423815451795574353211540782253794330943633164618030916502500296978873740663552016268655359025062131426565716670667889785754104004007066861130886612057077245213288407179465786159914589343172423913707433053095447794620670204113774014158938734412144927435912187252029045384570792019932390370373345844434623595437245743174889972447842229199125194816675945912526192363841373486631261579585237983219261050748927035561897194706350460147911039234633793660798085577124841767398083609815476852093432765432718649451167980242198948184435703581912634025309780949922037375389698379802162181489640482424525026710049980546383560213322882866948465044077056564480144561151368937103986232787162824109367423396747386009397142957361744343717445424729885788104230578247373961963218034716635537538446275634063072090133347706837581041917821066397011019707143338395617085082516169957159082400898559385017636337303165939028827721512805601876291115982763739218854702648736491835002028007678674354989830935023124964332103828586180298845917415245980781554420847745854579953260199502631653344431778735048981742319029246958853508406446769684171577959171787976866048837374268622600455260147847145727898502634798765137829214448577486607887454772128258085348970444268528788961340605444654542441970267847429469341398010851592473145704585573242763956938297002116210604986361422477555469810239453325782371407694512785033720197743253272499479933937835700684677829027878132019060525363277916309322539326223572324246809244069610105961501135821140635707089099686209561847908100893997656199849889204932779743660090727205110972697500812838468265372073614599305612061727367271459775682390248858783478297992889459337404302144925668137495362060123009896087254988854763787261776451814092511170893053971491101125045295692733585332655671843552747986540822260210667596677482458646523856134356537054900573659668917464818831487969390964926595710632395743394673158758708605719776441980857085676444964018695702643684573110966960053379330179872808071867257769870228420023048416336854874322682734516211985479583754949487563393951080715446015994450930490062525690916153853485686209440910644894363010862557258341176384452336066371878649866162640027355882102482120449102812556128578900701985259842785883928787245573875436911107340119376174049197894082020596302018577322809206465687215922255444623459280980024785832859915445077314511025016743225056275298915659776774640161558248720843416295480112583662035531011188722976605420487931104396542694223401810172822362467691789449158745021112629611628227786222699954586026200876279920417887706774431368673872064472675443503713391239111579094356031008308084251359159037800484054615847441252835345082995030543601327973011572487429063333046594303943879288240048670827649590980054837538817401403560563228545797610506035962127208612229783394162608241334549206846465993050366962741568149506056151161065874527991986639682103928349441040430671129170257504942899457052912370237801938518832830187041497438425167809008679053537341349720143765492800942581621707193210081221932654942511226908333106692025277727157298748314942429749765947873182941680008790992081246582672781712869967694748764845551722582979044750353193867799910685363906676722858769314061089538043887178433276795841822561624950196034523658969216839782958527070077675220955491454850843281954857957152570681182955766374517861014697624424624881720648796290916338062222088345263330793792895099764364674184958483448605803448526610988618971156063893657306222880695975958071191159987119853639886411331107496818002477460241407727459982203273278746494473314450958848642945753646169214624435587418438510646810604535199641613642357325998629169878791999722537139673786976392362654281983799897082782512855060957184010689798596467314139553554711359021697189976962295502152773792555218791163703367223970476987045813657696290446471122546717255683189030892133187876651524755776776137125093687447761821465050289374472277699847262347173090683304544650565858969565288732850312370242168424287384371311748944364356415046213746788365559435325886395081681449225022614326256037110508645506491751282500401877208499057694235010925275504754813924283810862995824983256001619960482982829615835254363358268437500071529273820948353314952367900366334909208532711397446267747146562572467510274289470983331596937717948057016387499059305817704059398087599143621826816196835767039042272561826631285691066610519785671188721107769510317208337261352868913239445409317386313289732574885030202920552117659060940840705536407479171471551940656333175522841226068891900710878059582336888733567148846949765464535576863965882297563854454794867456092490561279378844394265152639195547746000234676391339091154974149793668658291885144602803346785955613550362759711338421403872421781151917050491467759251313006820589895152651116901929906058279554407655093645771495206178684791338553892895820211419127566826247267494306074861133984387886517936928234477734483106857150703747715295925352062311126633151339969497612465656974156126034114512786884821018710344350158306865120182457712527984512835602507343747308130632645284797363855442013635463975217667183634725135059156553084747947897344336042371509105786137157464367232798999131381395703118026730712251317381376761259497926687693233833691191272302132084916192967011580890542197431372613485351736746349851072855945306661655281801615880026711713229438347787904273790336972281143621583437576974639280644466660732128119253980756126826252687804498233701406120063303692300219249128637456149747606753939285333472405489538942369310472597151530640343674619693554695468778415519078403488699709799118819515547074017678266496109956514766165114232660089125368343969592746091585328110863471373784413266038745550336169433211474838164646945109927717668570060592148005533633546197317263805828813317456680990386456120498957428063601198961397475456768085220145251824234373877189572874354352949696182070552927718414147410914776907532164629506499824747920559750489102050831537835943219093902943907313893493708477014840212883592411032153777806393990303178925241527407678983664594694249787183803895825478525466882214813748272371800053877250366572421706258106891209991779209458447024249463989061324257246617336350386073537380116781318868229321584116482451570195461995512379622510602296380829039625931589148982225923219869636814150558069217010867056611214221396836831312384205959536292236287820741568173732833316313455501068148142676847610795808451172674813947627965818510927032173138010929022471518185414261465074156603601174768333225666195294944978753777727936218707109201239837038096721064595339448473601680807710858590664961900041567832668439593363301375840211717734795213000030888861694356870044703076415481437095134736879997894075604383394806171326465294696596879994142905157689901287209959353308421825280878291661309042514965136283163892125449062409990593286331417316162260425080041709587352893322209426894805549201148649548447283245833200912594304362923402906326567122648457548453353628412434021917759094087522288668284385924377759331259806161748553997097618444144865004676187482887020992532545762100390097917089348201691036967222051389454946860778035964251749247045659211441007598149601897168949732406502389756306086812800384766595865443316182022355009642123372421222375470758062217084594231622011317198386067190737725539391337638698020789734532496635934454618204902241092181925015754048427980712275063743173641296734921058543258857702869178210878259404683595855000590481329778400712895998857784657665052056364945272722366557540149194352682064865314005247979794327469617391680250414967362479895012097646315932205839736858446089185089225776871710130335706418836877677342488635293000498287844339489856155396932357777662145910948333998672655953132339989510740394480435728687733782446677451444175577026834498347896976073463688767647288973142775889080235010418597101372288931719410935087941271243495751955097888290265016022549233211348108730469113209056572044088343278392839008912892390720905306088534298113946715187419011136932576541462993176894884006016047894858087564734354427302368294249044848932148614860950727073312561751576648016045614533732944286258004982553022293279368096753736884870803583247376181832828228568257937167963475770236405886052233437508991307191565634583826865850371297797063288579127077807851302720389618439638728830630309644370566339363545561795304544084243858266559220634305429265686585884203307749032434248289595655649554028193568241291093396706574819779949745087646587933577795663208303192781326489517904738167062811438966736748170735426870839040898821411153895448491775940393277165082953765361372045549023377538791047305572012856912700500989906134037911673549305854785478331461891859323440705530146164077905662794002122037431482252881311898027288798202149032719593996159258475324809753440648066867545426749137161535441582632872561892168296828109763299708275266566261793102968806379467156878018587022035464978245678890016155760635227484673349870939217981487612263427461666965428910189995979355761332159833064082800592897991026633933977824254841503337791390374612035575366675154382400808133553962414402495229665647663610087031658401372950303557507009549386748776771178437941916344274844560911589240533419832939923921783638948503349184148315325457224898156255912919528740600757369477049437821260949654421933134350253627994261379378496672361423397442099217301439278036801726275433798056261274011917876477161038364232627304344843808708981240550950747632627020474499602686221161125341706159013464304139424766119186745379036250424403129956161535886051018074011677725843662414879915822844269090988186625525332544535536894128754142448575972812728468109851070212028097595662695866189573774549733906493672462592251502335568625530071388932771950032566586352884501796462031207516783881065444209348903458842825886594778065968671404739229024691022155353465727519371454304173980253176983163125292820108115097878435320800056668836799560404187859620927598252777720041965308846205107023940673530248806703141026456662312758706734845634121195056946553479527503196069030198405358257840823376142448697469161731447983623280195015981714388370945092778251208667143554732733530654641080303550573852407183982814173805193110049320483642518914859635237528612753274381180955641787507142794350943702899582436877604035461647984627816444047491122010494377073436040483912628494111753795453259491618337344714530196167220371701811883277589973549070912056324804964740649686392094181338103004230121686309534363634317362822833641695159001867677585220888887939777210256073764539925788049466840709712493269866078699988197365953652249694394039756303428955515869931169558347211558496150398321861213350378471861530877039484069414767622918441370198515479781282374640324825286819361266631059901020936116848019692745074866608189038967473787511842528148506066988750215684756190224517004052227258268616697805145775795172585212996902430239997266306198494441671183068145950456582658895914195276722177387280875559362218690305870684388168696855467039311082057778336845122682788869498126420892650661003535474901374861103037018438323309072101864601226195702166149435940630388595674162666380210388305849038873698548167459967668958078100617329683854402430390059297527770516807353944658230599278841027930768242969106929590691795974870963949096484369690488966586612112568846647368091544761502439809979171626483668056415537191345589271115152443589725741601769441015262959163878450616611224009168849867278177586983140856454615910702467689494601054523897620088638265361239103519483968626386629910925268438250573069053936024566304547739597676048349953805001068710075210738257086474856036189250756491482753988038320780590962190374572207867542217023645973421083158736960478911943382115794075464598031516588434529965197405574478791798911013176409379363200233576339729197341259413027947853873154506441949026769054389282844683939826249865898910921081992613851468155161005855092317531850980065714208053195696491438560837122921904987442738240356460154760542251621861850007007679577404923082916468349572054953277611458994639096328767436159303565898362118713240712375780235687570303573170225458341216950303255338631283261928922722366508714711812880154939064027238256441433124896549674596585324259758953372557851668295420151453839790240415803642983065913211105649835000630746424590312683788695188100794155821558107863014820825660203264294759743628184874628833861739431312672586356470401770646223296166323038036210629490341349030298608262422652033702746293345618294929716331801572681119770545830921414921528347344566314098661774649434579722135245498315453741027262214470947857318737900199834136257788807815472481026994547509714562185886855270567103569107671771851914638947059733344617811302394551077461754313590219921186423258888794397085681520676976360838018020621488538652359257086093910513344475405291978711232080578202947216399889793130588382082961034852265241527989387236797540973091114349592069091670746470608208003114047618283279217772270157736800348192466071229377257823096562066396162397566307705853254824551212500588084621425426578635805743381499552038325295586049917331569145670678191690442154728303480186584176239577282935974441089975905042152690968566664363596668351428266332039466465224342663492471278557164535369779388045582246002619407543502887880596447594744122737376889286716202827641300421651017687042602694951358950098020162926001717304845077107105329940649790942635523006130823840765464618335628049244953534621424500416370751772320670719037900280504909164545171803968586075059815364935432465504198709782650363675279683601598202217116321931194292602343057771657150024841677053979798163982497432058915750878710719489336096880931614185604593017958518811329445928075809771693310168980668389418157141698832817099958888423076551167191451524240440610462548395748213877113207434342229295068835689009443882061683098612001346412561311912409927265596176834081640444049228453330812573716610136593464559732476055232794331108758839651780406733870829962274425198807262438353407780068575658695516360039161102420078804499033263396140649901003662084042054167986935128368910252982293220896536496717397447520335864826867853256181592785845582210340428077896599718092400887077326167399183393563827634771992929027539797578236669343541711903086824471580778216523085070073464947219043370430775956087621960878194653425155935928376073996983748419664859705669131770017331077578966403614541651805083008469437928269709816374468151283631809662531169102197109578790072690365204902290282419131586128731552668654824892376305970379557589346921899783804298241196665076382099265520246485572262261630378203394431937259863065948500245234482030799730075583245274640088291981482762504652000342645539865071149432070003952286317945692588110907232870382235720109173956660546293545533778312506897478356133619243028239792197205703397740231632105551867839818123604450235090214096805400917612400524905188791449967562163122980464119665510469858902509515303661284725957063389903088024963616015691800339540575803895347999436430536071791103979383540132629667326867793546994908398189291561486903460140609282346282345141235032522595341491758952945284577269874200644763140939518423858555162012011078806925525893957018731239548193704212487682554695333494147904673251595427153381387810502924145773401753736460506253641969371557771742393329608103502697074350612716979866883808252285276642481224676821990757290529640395180013468525187084944503371392569550064772992719670768435567736593577411690499335471400971352577307465753939491863993458065666757523482171532056743901301390357885288464954823675245691163012200193544462176991999338941717069150931011934411993147198856711788813685232349160629362940573202744010452900664294234254900582768496561926978913960909753912532719258275045905647843853606314697439291255151049899889419622987069828233377518544920497833537520657056399810642432717610310353588393351076909107562395604767668602931380492560336354732729089136547533700568957093825901054544008333329610884602967065599078093936929779817364092390394098971164174520901501798983880074418831616816464254617012563086145336216352112935746059389616908355175463130493218388538477259844095757262131272158962242164901355098688027906299706507809713152493538153720955075430412354441165943272656324578899817685015931115675708582985867900848683587726360186960782441758993322538507317442229324307578563655754724423881804744485276182552756091025456017727224496361777401949606180076513360516169492202652981269166856965068216449293533248060375118432686252248971355038129914891700037906318611458106666801492388349233792648192460358729342851381348358489316202582078641962593730752361492060841215540848459209525040506873779779862450779024363570823043955641841325102792019785782217243226438774288021726363477259596436734973338706018977872754824214809866613032951860366943178766092261777866387796708032631495176513959513339877656928070063620275004979562961912232187552959018025829827266427114192286840071455248054017982412584269623888399853629058815750364587510937613340396926058116375002815730720552585226063623554052632419548498748819013266708948101198507557364680971097407281428242494187871256116960436500889287187375083639796356464632608671229503521028019133262675173019768857594357805048376307901307879497637439108330139626688277040725281435347330423928085309715137795197048654267108891781669307709377798101958646807222687464804177969618595368432847694018519229523807188258594914341046170490473091287847422934660033381766227870331074929279493293465232433291622252376282408221520466804409762835703455096992630121572014682334896135340115373746986444780771605745173000383616494862271466824964167750946214296669683373240850682967576447939213563896498470873414416140081227439693527113573860162525799560289636232920929146218087193958268513065113388552000906082937735058379631851143097873481485912061346641729566761747268517493010796314378236532945210383490391008640806764987473760032674027498148714058093027327509579523675827786836599319930908012969339688423568513718602152738929165186946113976133109802829403835671037231311563385640594846160944229853141623327947156446480450563009624489021478525626266314634810919638007992075307698412402311282999310580011361103256040953154189039595181526299589995395443210713204032737216468078886192991716276636395547573900116214859467669628881272285673698254921715987828155361767979584559473693137036264439516485385216288169522790308876418609188379697126670187851283161323320728893136847237336982836567570817544916072460323765899556221954452886168094858112362468434521314139705009952093726113684757637775435968969730551975729029202702985625338813156489244823820204363373652202115078053909496242874585287492207050826571955940995256855229524294036348383950452006319689449828343832046696168377909301033506468088962381465020893304251415020293043689575623337440890208251836540409195220944516327626159580159883028568855285853534454175304937516882882324866035943769704443396522514924783096085144143625535812726154422777741892061551686327828764838626562003206933494865111523356861846581838780643244753192677737387511947469771360875700539483514315949903611939271721305976537001514200866095607108283797180548171208148009735887620196388442926487658658402517124649926454950888475341636278157882738273875192787127332372389892618545509541265477702373876657525795565484184737622383468585686892955763372487252538679159982235834832977242739150580595726139379353377830321090362869388532674820343392463913306955926291897606614610833006637482597796089778135221068390114669123895694275284940428933026770664792512523798058927288975382338690263911959614688029127430487100890083467983023136075407680032955514233322910810235950407122314895379888275357287799845178306240080016190257027058553404220326175977040564957043813360727666719955300975903750081279919876781033982229597964531471248757476982691361463338836123360529699548994536479110809423884686059193065602499532882317054923204495754717100419384590502154672042637679164958483354494143987818566241622674564113847911195851675294755461613148548629714308368519822451211842904621510517580018218754258606861397992504546906633886614907697369088174137845203413974834926289792297207183233160475084868289430858718340727922720000827038918614510725262438656756961198042496439826633602531982205160639761933273826749001135931475224195544981527344278957609898713173841045268636901669934673480877503278522070864019113776960717095775538719735934958834758443317287526189775879597258294804298712303653534441852961932215614539047476483034161930602510595514550216542032908170725240441624330946543144927501032341201508570025092906657923660945187727763205168034387259048884386852836923981126074276505921039427137213244412610214094670223608926844027339553303710044947077499088389211849774275723616362175366802953817788843293955694541151934924712220973828887672593927784600873812454293086240217313605906886241439856901931133574871162837108384445975523380026062364699431423268451320785700898246358909760594691810582417246518783515407931915212951459816104261978926796436887475964350980358115062970349863481252406111867094480387221579228593740191515332721639989217266445431294055202757388150075696394357489166373366649080215188463484978411183407666220778940858015950216207001087091736927379369165292236143641919583588506262972693970437483589762367758726952550301620547584576096842645456441971198923662972061811560870419044629532649664243834054535065795786368729087855007622397842266548843580280199620569127050804558623581262404688383986700783460785713065678796027246849080486042253362041507604097736311955740655113935997910144194271912155975622583718686638400965935102805328631971603501986909386448488700802720833458986628579701088995357477614291491037873922025563234106545724491719899459123437541234411430231125911723137903583551736484743548932979702581649975051036244295613903013694678885655362662898372718021910891075996862927672400168995982498236903861557746331518592082892440734563430219477990026623448958439615843906179301090406346486000194435960080790933008257787355555279841721318954297202900662673841150804796980787329843094261346744516137520061094907527589233184667950121602206344442303720487162555873167990690891937983778052591038479723988385333305226768980836537070098319495243348098713004849202613530040534061606655663840889636207058147985415584822079575102793069527508154796428130637595032085463090847130556146582052263378085373687225502079973394017292715061795643279324175779340228506816645629198350726745732299520059140776217854363468453463066446643044216526110858310393882654517388721257830278956382387823647835770281267830207862068394228944074228802120780866133032630472191116320332216031977544439411579349096428461791609532699445081281824401110544638565205005241443216229795740759695065011672418048303864833321211481679851765403829261568074095533167885174795771755090251888269177359625720656307157387293992096570122833232258019749222990949589323746601796833975647231420608759793508914012482398911189821449006153245801587373308094893710185133917864622020896797875786078483562679697339442011451358400159486655294587574739119268699700180073708085788798319806375530973914975856514330428561444351169404846545863000740492580818704213633041272154069554421168248533069781836194220859554537543810324411023573411827291883383915962330095413146206725649091411294038250815239673746758435513457712503427847672571481413781982907812188374204348402763377785289727383066521742735533943546676159144748603316510380634295643405132951254008409566996556830931495022480165394172449420631339793810266773556870882618542786492187793165678303524478351312029099483031273449548972113530743398325667484070026916969197146502263983954045151088621221425181765610677166794223366173446373231177679673780552810317812726014715457227478771951535815170184382154578769906578612864117734972953528471945954521144171970311690341894378801326376416010950872797610656978854516583586168226523072117275287949086169569929960133688912476755658623951376152912718127120212194509995844631361529359416163600617954190751133245496982589321459596579926187023401652482087030304288554425909048158265260213306587467365549864847363767525090261483497760857419783639060143955986542275824107177008508944581661215402627365222807205882971102907897616310226252108068399303507174237667729214429269917735061777928201593770914573812806629386212228136156910496002021803888745539212090293842376826038818844099603133555685098602762703745807040985202994081879072012081706886278753633930109142451386716388476105955469576280838252113640950423413535274556364457478066105284797475438903209672495663025288961902729613585438672289639634389449778941295481052210979724250476905957632748251256197493966046851313374269916057715850770917472687009609011272190864348407092967468531500423812876753054717119716836755598065440699257302181514676968745498582732009971396933555356242034155836635153288242458536772072594467560704479302185507145159283403573990677025978962954061391956922839207174784008705699568049428101193327238190606444828973773988106733431367468473224105346678412295687422820977407038463223240635093665358133229332809789136478458827288031915707056626229761336191710187307354872533179000935028916602696535317598337562309841656056309835119454612111429130077044924647313248868277226097002447295875436815745957273322949223507757239032755888749821211364362278290968467951704797768784237599838482084301624271095049345452092801115101275990073217341642768550619065318958221195585643298492785424572276855908522266819277319025108232774403607060588174234423838651922410816559433815726894671960310812575016440119824526285062310169993695998766175232253274805123225960530271407171490746817772615265753743142584096445529091282574627622931434498515856822680903134436199006755217254114037315408288542074995010022740050271161566233898352930754371683880795609419086540444268159290783065052432450709563500401868326832149712208046597090554436148482394687157800418684094950375062963381348304959581553167405723563737076815708034381746400154732946039874910842008637169846581454013896033590446507787529605916693907210990223462924686586525706378620254353333397504743505757473024923739429836022802362329801064625704527033251055428837759378618332488961827089013937988069407624450039778321064204075992650092686644342197738954889481331525319627239798301618166392322604078758273585128373517190560868761856963902154990922088015070924779000924117324288916467415391373597979623735637042668818859419306914805944682440170517710835458536456948276330669168435574507773837361522341705774613034930154923676267053283132245348885802396507013482856271785172319283957712014964655420937039911667132043041392501594058413630776303686331583459775173979883144822467722509170384362820990603397942566573878871918847576642615122866093208524261949800570392732483810118237962319193015179735641624529834702141576425310228364021393695681197707264111229101654267457170832688823777055535417502112675072891728976653249227780207206484600430439319763911927579513838352545847439602184318733777027774524936372588296579356866215596199726947604049055651343397362748791066387408011470673932930791675390102650939382409076196004304981451714644721021413344954097323177844307728302383926059657321600815994238151737140003116104491010371742299579162755023352263224779735898914695756383444685336792282401241755581524074832797379290014909197801964402762435348928180490666774443622333857449417045998289915096905817812641206614249294309032742896071111878798620476146189436632800198584740978137200492260265782976261425070273367241146372181449916970229359493062736756406709389062233113885970194615447258114556000356809046910075742872166973730711703553510771588813763631108227335816077473002164293487793365820646030686101750922719857251678961117472144407782595930092995722487870761088997462015599627024226587109271465884215684534341621272141750987374008059179255691626092448551766534651440145504896812191916564788788152527391212645562253297693305394614007603305423627825866264003597247780580110170205846701965966622764094762127576980978114781889748481895158269221983818474729842321844515944460998126838257422285806801140896895482586939553445368048279380544285187002866012622527000658184728527721432145650273603442524228095347732112853157407710803528246219059362936540592625739832483598598688677164283572268989832817209552535018726588355832141781672691306125391861557713793441343528997564362321887925655317851949655408260280792787088355898277789229835111186714226076254073812920696006142962414053642538026261432354465022147733915825293398322838005893756342608360877624038441697598301117923000461852565151543333955438121188554677204389105950564247764591516219340674784163728124938586825969413355207951249439358490649202610823795831024286748324395104064762500153549883789742224512484808648293088418358195836898333533388522429152144980566270386600363003848130380322986446106570134323007576342475252337974253302111806645160154105374368229103531712422934389508060504278097520220162367255127007208124531058392894444468031864035630038493005585139330851153151777509339873555934006673152010133626916507140961128538038875775523661474775789851334941957417174037757373905382560629902118633574228347858800168749214378277132868627435535777617304428557453699920751723441465272515279331341057738253168126692669614689483433335913089743179028483711384478420778019937871869683044220201107231239705695902239647507335983530056638299495686021001087153067796630339703397028539260939410961341019765720844644808465768836764390285080111405112483944656607037255340015804138851492952786470058488556406490334617446712206759936504080213327496747490266212442060724044786944822903989777909255763585528188153718558561407028174860588873063996888003848000076046722357864177527488163338702185322940404315785166346826484831339149212235110670453697555832740199873917070135845651508566806583982057304175257533386950906686605379412742016521971332055418897526813576291676940741979070174830432414924520170691297472177263152086900174869515573344922497101838280184618927003218633142575446517050790069863411544786128640553771739631458233287626050901287680909634013716995791997008109724394849064289354595571379784937878890066694905125152562533804617298114142196849790575779736178706734362618430635716290706420646913158711146965036833459862004136026586830245504534096550010767959941256242185009841535176523759354130747628788670173108139749672320745251155045503049703290876119788433367368754149910614592141049718089073374177802069762054484386786116884148204852637425995248661592693230629326706927699800649182594595724786647043599814579455241959825647943020907806086807163612202706317795612260253561739791380987674757296891349362679451157044623419778253360808808214717425286456652471798105609736298643211798668639707690296156155675605234600866271586107130613031251113953880710584000119111589159577265043477309686186467395081582448661441367605151890248575343706703793541290903997640792273729535043798980370643467658539685525062574725800899300100084891249332431175991046522794427275173780253959930352549234709502949463482163022261362223519606263897045295713366241337963472086089413960866251198466044282374784093971915557389654738668368461813825943090165279053752162315507603827586548901425350364049184466973722716846188539898323088301316622886643683727184082234245813688429708931663723611314420565334516562116742009461280631871904190776169627421783995221297752293658860639942280004715927386883854780905345052442981200438720206745133626556810357579245293995551671899909391395246614697839806511228746958160976845233059134842507069292038904176906364389831513165704209809048010790192080354803011159328479171209014226375039483881799623943006371638645126104930520913397817326807621964299849975867940078240081705768447325043904466398896635209033622303783175042803151776453853889656301049370447907512434935659370193921368879114422946743606583541710188482517193020961563958459308201608636672692675265046559636606933540748062797793353864766769067725848575590573812233490900034650853055119465156282314042235479429576882130696646245456095602938227548828096592055003618955232061895243584195921605976676642582350959697928557878331391105360138446358242657830521941459166536734765270453017221944506377299844638741848858752313684512526164966359211122804931067213132485336525461007876678835131808756240691863106928994622109516590577577593662310711849282205489710216724631644132032964523016881620735256357456422665212449389029590876923035378665147360442233643252484576181010487752003015268558421041605664206519224349051479135252939039278286823002969960165775599727003337482271758292682512631279173243225280209732148376743310056603386261226680992919288912329028157523292269172085330294283734579119167370146755679296872403258400096605575084923370071192592424603541256690951974619053738347482239016237777322181473398654563802162349314555111699307130611176997135578462525371879432419999143771776430682347749236927619228908854778855755215594489540985307116652965151758713084665952632434483425026575303164934269709569585157292835319977184256285278535430696775731972643219400924072128402066487992307934496550128300952671398691233361084014428299199501518072149392973616999687442709939515116256750973146259525178480221042914780419685204564095656909672944557907561482441835220393278625970507992605033298311899202832952013647559712371622827034654481263093247005191641094287353920318183678129896027785870425101269265653970678648905489888740358370251585065110918514357700882840888820009136243335503370014861166686991887443316303181796632605015775754513157962628736844615749783352363540107971630658213243531620547570783078929429958939049215790797391076690373046016244362242626703339210818511134091668122165069882582769076979557896762598929442517339587186996211190725480871840237365396279929600185838746796756635401228837857075522330281513180126463429214279883204154503191255753388438212482104763861365274324241081334979900133572940086676736646799051393796119307562157283385433173623258368319421467664423097695078682156277001338596993300086202857938116586991062955008869735918243085003493058498955307473108237935146670666894057896850985959442141405097450408321509656679174175333210743717282241049553308449928947263555882055476708070265929400599204499662049365494206486061529176450490402448850384213782031030442719128997731278356235035813204129925704184754423708311633926690446882555647559579769112730481660855281635205463961407213035417604811620231488676550538654456092624829481714138969189704416625527867891911908248371412185770517563652811920789137000260732148884502629207183618543525826599473966070581169695394821368358570711833766498408743038350629187424914920787934818392646545817808942026824546208056604542113850631131355601335306799051722985920450886254717441171397433929789591933326932620929912235085523510104214724609400933981338904238426862155812381561149062093425214043533675336208590923102666540822500627379858751472057387659661309811461468107781152482238045810897353480806264351097471268355680522919940447968709380926887622399230803757553951417401028388539882300457762071669759219935252657607346373991378013353852335358749874055252769498283338776497036530936655749204879104528569600330030825770561196260299749524672965145169457797342814343179626833920104614272934719898205958277024779919665701609260349415492314031137577069988949869430716910232365311875705165768840102279370943758653626455569873380101235770690791237868186018171010821821537212584115944906996519128784972163048010923821917218685691804467600771768686156079115005716591966462073421589121116221710901029442530668426171500740319956972968326331638965700496955186195020276894474558002328641639227249759249756219536330439625918634191187536552527817854500527920143810746678839125416817808750523088975406090238436198951421067724468189277883210893997020153031130804449830942409911123627803909912603123086518680285883181775129644682085056426496508027252936354898779380849110857216213923539847812953712824144404494623078479322809987395351487201238332646117519589556783834449955645858225331175291060040728482291088427924158419373650395182163140013931644953540194251230598131135213216600405544167084011708744780545176653252327076966848594408507820753167001308844292028358616379860750502240607173978826529197431821876047373686556089824248337261552898010830669627146110206244428538124424778822749999944006631736420991546949057680479030212796932232235632467059560281837926810406875586689363322441347940765337313095797549328433190002806405512634502764458641856097090435213308311171460801028763937337111365418599053254858758309175306062745352101973572056868158472313422512222764017933513494626690981638016790873888062344710707289677030524176007882999957066839917536086642896853018616194490367583033360709489093523674432202820824387022245996697730605690821194237922699528909990297170752909853717570246947380775708068761645602642439256955491119288613082778016540652038989082671423211835815371919524457862785413512096336815661693094540119334262302501903018941340325252290875734648516186288046174920244113793647278739223352684265614904457426548018402366832143307378529778523573085244190572419582090934253705681885649205398573455324106931810924680851125153520491465670809322168943812707631169807710731264378173830008726145765540354473619716562218754318550046836276984618594957586303870468127208646018028352031808655236463241791621134775377075437248192780834507048735837046419234201890133861187518825091582010881380430787943950428396835638504209384985140570542549721408269775128335300680758461126308083244019101768779723982034958085679574130568819072933554048973099157683936895749458939018214660054784865885311037349985575213438768070674848482545344056825694189045289704810090826894193909637544216740643754297929721427400640834854455602315116763304626359698285303730651175604287900172572585169265396685808147646984277560602690947779195900656185036797670348776112668779575399269126738975747975373644886121220258042712224288524124814020427216120333456449289325300036453712841573560962595345524167095620598704315789256515808553200772172764400012507540925880037048286096189802266600214421750763160440744617856025605784483187909356734682322252770868085298955436575506281545281699129947110752379306725083010914196134626609707148489306383995227635564787741270829052323794401599715279655155757863245993757538683987050257176236028612708018274076257388962735547101808346823498318572792606354695639184995038727692399948228089500689406393223796813896813194582826380636728248864701530341508463390898271622364288582680647146520610471349283410289075679024710059429884877499550469420508242886541082983669123008401526236041660138876869201395449071942372782318512440734605920719979840170424596506281168373234423929501681439570888236114865105256733087814536485819633722239728785712214031322887061530625652262233519856857856824524723177015505792010601591316698101404258377919682776472904427073376380561161663124757812689251751181280099800796825745058359179049436394721900420485016863508042404665553077519621455981506659636083764873214878717209736098372158977834751695177416503087502649047940535792382368338206235440689987346739136840537262107432972622668986329425236895406393280318887828858498816878710375044638467565570948580576678303750875928113423145037749193096172066458135548532539298398723781686077197951492674354788057175914914768923227389836190189146919692955758866104880039852212970347653169129604355139799282755924176971231293092819993030416037437126316370095966514851917770596799097080968229956676705423882041302492671598290981331685241783049220863599216968125226351427621236467065454213656469980111229809128338074508110910181949937134074780088128918520865446013946267502373002080814938696004488922972631026337776673353768606127705414818539505274974511679753315836665269144051611058729598445937514729962897606137016350773288633859177941138838365842055040991842994714108266929750405670806205775626577166969337722860522664790491629297566831511027889741017076584306699008450265159340641265394248680290096886426294710952837727605856866647174356997868123839300487464572281398028974445289212834305353306130716782531252500202371072229443287962461690057247725634314863525714229307662477565751806874589084410621490444874261775684417727318645272730142344914018964256049294430858167779354562161622438884806763779711473046138176072074890201575347338866143430922743535682620503243736003960021198490245600041141800296884766587639647572665568980707683108240974630510536316414273038463920936372496704618321580660294235305886362264290930437345802805323505996047043003020610009320256794323353380352856622976599105823104336092801883462862071169572085007484695574228088119240569630810179227568545156195656320595505760187240566834027706361275351833374196746220412057877562447408018921686903986968431170979783921662168461547744429331307115708090509645268205225662958237080063869025503074950424499575594951182998119315041755493931546818589717728865877736614195112386387947285391375490307152792006812698543058467551055465502406120416032210778657990482706934970165297175143637831750565327825389170938278979987404586072504860926723341474030382593461399536842250512505784716699374745524249663676911396311141674864642796140295406289033927009302640247946320516915230684067739335337793038090514124231570421224811442316539106085669594284464892887457580962338159234691450621474968344127177769966307749559282620639684028728975254215359844582786534584239652095352930159589253589701656677999432923235854074670763139979617892867590133610632474720152227710561387106156331305586223163782484721257877952545618059588842860179295633871903132853057317853158204331298917237350594471220070637765928631682262151057326296434436612108752624986808064067613208438284525521385416867108211288852902478836760859453040774219512008649774284007530597695014482138400885367379132785115677204873312942049096797796897069034387228843016842968064824409519028838510937807920281443893818069511249150444306579401053585058464151663336103011360640613414519583342029324058966821172923448893686912352791303326836989201036873627032003305822370688304428480322287569139866779002771693687465838339787526258110162102568517892114753708519080804264990008695232738012914647649629349428275763969494673061933278695120555226384279980533537597693910701846544644734108884190662780842464173759317466498130432346179692241527416484184589163961357658213847894803429389767668646994993689209050119057041790229018562504730831786902054039153803309034892926035205204628891742310462012104712360801938990702624220895023770594653000196689961947199315471922753957192022667848213947363115392940914344651485669926496453911016872238372379189923887269852565347196356211933249253169196059971698663589295216024488645163063148818173836517215080678083760277053233937118750450212416432186760554143069295544340529221805939948757029778783298965372731463144729259531677983423677583330280897600694007347162881389518398647350421847409608990461281557728324670147750034371178058387467479119094580613266477048863466735365447334495161087650707955785550157587755200890633733019370078045102796452237197006491587884031136921983149667306235249625125726733169932269908832449849995940585477767183659368182538758608246327413440005500359467704292100413744869838044481239397990297164479190326649198368727312748756375021443656165643579679035602566300785108171562448578932188930969944554710616650261573606701354999289073414892935506643166311586300951840226571681656514244090597152672264714444829218091482013382678816634702167283630416161172276681671784227556480452217556559132815740753108042044638495167858305026231765695581621434187907006395271722582972691377477096341859590489437575143887833340646546979609400492565196014817346407909767905036533939133927199470697243591217142644466786161383566044429305880593758295189268972126799815709816788454471098410141966036842006107237487524169844942994256584808133035380621351701459508290941008499022466673124031706927770236846661841391090958483167747686757773040932530003855547657824764907474213258936041134956118002580162430015700831453610415180973644312526694693575891966686136666264589565077328233209395109528387666795792434742680719952469345301909985484078952295293747823761064416587611478238514682066634966086070111478304856418670329270321587252593881407054497932269633393501384876348897315728368121099104867812906860570714686827743612109980802095268052128903679439302776870808127335522788904008924997082377170810086804925380159358796947150878178626631550956021427149202660238762669634419859067914319161807345073939378999522849009994465597085187558203027687065045739010350319172279401547421744931800139349194640931896754810822177693045541078281317400219149770294624790099986528317937915271275889157060870240580703009160101367082154414666031528415710061858525113785107057991009525158425646731909452385282832600161952055478110137734047211640470159127627778147814020434019554366302631363816013097129546750309781635063744818713912701610853337641158765035324379777263085103929699063274670866277750989087513421877010102372797037199558042705722113669739006613049769976295828444529609343884900782227498374438436562554865619190863608034469487083890151180740186006943128592111806882296087770928950974253840408044480494874409731930055972591807127821532834240453674503655159314335007814034691633506510119937774318772545117960831639969376633050506757747660835307284615385284173110705025764475261552647937994876108373067509479388121185413457711599200665968107280322450154273565725969100780022689498783812437967659695433695933206516851866003452516799218522138678469646971619229751192929657908992564560274424174698688272449340218111951709483242793044943976822814319022492276563205874046736023046440895103339453611799742550371653652662146019148233171859269775074287272817681545390733947072095560004128184320643841901483531839094866402699802500229736922781457956016679731572327640038265404480477280366757538230280549788314820148388494451930646792183786612838622327501623050736540958390705210080973891259969669550712990404905726457169399441706828721837851881470809679893721449550853155437675053034290075973447238638306843848842090135002666988531276236618857055817936539232925760504507193889283854163958632586911871669698668708478662868124441948907262235536923433470378330806858622335409103697065440045309686305589928530304683265737329928797165809054195067028805172028905875104077178414628782243044440100844635249451103788918353384621321123875060496794623832028141854043238926872091985294649036388244659098293821354817345750713632487772719195846120488027003929861856502754884407556520059161823864880835336595378777313429655543404035868045881583402983530155836759025206158856856659527196293614995199893407039453778797258455703772833061345867237313481638729299740502840122193017410763496768333352024709721145457142281229324530483149649792454649295493757365527016101323286247903920005755308438144705389996692809092136525286025205975306005662419905977869209016234459999088180150612249329965893501778405008302549827857465144339779042724077912067753690426020136778749377509855435901931562067528135950633621366738439913231984493986271580110543683850537711550005679951673560249343205691834531458615605046331666940247922519588922699818832552336806125118463216352500413321310824217302170994228119067356657512636180221770783761936398085676833407370221184263877332121369130260708663006104557045614105068196661392905340237622827175929588784740091969271031581690858702690969289170799870129614233004598680755146405845150665545946657192258555269873013406986993511791623156733081671104746604317116843320579945479024833872090696671081302444434323894004748601915134711830459338236175192336503174965138989932492092811941409040843708006610370474141054170966637019267282003230005799492697975299441826926835440063664949689863840764057183114805822626875382998556167947998019676716015333989552432160958305945163085181788100039895120711359931262815886788420827912402304424928572268701139382266515639440430123722242826980265650784336570189561721776323866093517793151689611325748860411557831706572339545349447741092776939608923232503122453362354039120242144367236405851722413649135017418152240754176653319796626149035217466729567191125938209348450628631809107872180990732360959370819892953493253711543795350687269655865366314390262710100585038307044763944630659915388408106707894969147942073343223578996066460995185266018154240322031345428594306122134478234841407012141274218152225014261591801530634938620689473750163495438903689218875087914334010382662111273154551201319415533042329070432008989979995438391256894990391327112082169968877883252095822998472310108793402566457328914615570185276612204667171238038222988801408188467818440854044910172424220099933875031425235031910189862044078283345202944215388688665065353416767994232310320293353091879576561236412547017763549636085593412835107171398660756176806696636866844580072738750414705382066216951214416565210021566345163728256314684779506192109633196978305570941714189454424217484167563362895225338521680588958670907061911457040712673131128449913432260041591315698093915952790544407753168421702655030922715122227849498852817300492880038179168900038354131662347209513000458931629107423440481378322723941274385604994556132545811853114194191663960467964027234869912061269661581736306265705370527314642504190237689929925632451270646347416190017307805619397029393906833248926447401910787949658397658525657907687081391587699928187729319021114288004886180145661711528784510107548560005855039651368016269163967437681708183475654342727409070808281703562450237886448026931350499843083356716604822857321331656581964371631826526270349244841694642708440722015611842651384485373638818704904067855712090776620034406333248405476533522841478394512262689661792133727548254781511471685283985967142465981840490325109480822934117156319719021882113519057621293729769384908647763872952293937007936597447394671088506255802932455038651021057425385561522356186697123826940760650855852139818169444112636081566949716075140393315935125685160912410290541615851273604178193689656587914772401882814913493981999079134611343823454071004025200888097460636987365114810990071422275782979754360512733279435082840704905992483095007694568046661741370913144197693328414041004829393997851860219750017840037096883917205353242651717238253387311567708016538339989111849257871595566128882450348073989904989508974624013897336704964353074740361843300487119509718286449815844362633285362739829376997671527914855545406195771118864760340960150731038337025008215265323701701116340011489308618296534940267621796694284136187930248174181806852032327604859598145159700688221194530647794539330214471706177906750588199803089581425288502785137771130333010382692029814365904182686492339102032319206135729178703071635518677817246897436439833923982363825143173270555994584002705832277118048466994325627568063821050148937554377987270564804246011206501267974554807286681636987376255310764319005206422941222391406382000485711803542280166798291426667593079138402347618795906703356135539068272370434083136131471821120576880745104458930947427186589296539152921188785783606170199918888276560813658428903525087326779698116768829320702748256678038925458296725382792435340324880984190406529027721500901708564192839995878731710792073462118963777596831651979686121392837388870692769877858310005196946069579939043649576411990588800268314019382956992500221473902107620708067339452582329709387076107104780833163977889201189977952076934393050988621838606381825071887898782854249760619470151548870402194207630018565262858920814185146849515335172571803417443424370718025864049529042337895537533496655670340174056654424173861923909406317642440677588792013809431561849877491869415271293173215707838429614971776669689768011508707249340960909990718475397754387125270314756676811441298884514067332243114241556441383614795509328377838843815196797582703565797192239002300432829729767757629505925555140840233833450446158572620414999445813639737037095224446112638439602141902984552112171562784178926059197096893347527625905108882201844333884621506125332462776300583780166953580846405255699515361152580973244658438235648384148011418867111308077283967962875687026483246067063789466793284938538990373936223453705080003676805388751275394329324287149575000382474179091279154582596342971106537133374010218606378291605448068770668273970546911117902240388983561609340883421710341577993911189059545270384071721865412494196744727578727326061707060716311229329516338752498175097916257701451049871430118803102423591488010919549791592474715376989659008322181106703286814246735794283067068756910041718542397338031016364540248937900266598985244556108488584357905974861932403718889609821254208233012310016694395176823963821271364897080898008070824222081589183391439411773108902172447254627151216932561753488991607629811648748678934847216176137410577228812855108834723644935223949518395272359558652317625806850640125333420746645510999055742537063632981195980934011414654924342738585669712278134126173893449382145287220159121652222793551586439392150529797095837459433551073956789572034030308387270141722412731762617778474604134571042810685085712528194790999714064408398330118032675007768485179908225218482477604006318147556003625970442941453688189002778247469700737650687772995320313291586502960743837189723171339005343685153381955457153096643913970167670246763773911548796131212357459769235546476804483289355528568725921382655072503802620639123156262638002024850826430112918385179134978864319076809052191955559287137284118567090424874850656268996253810556258400593307081776533914919984126323485453161192309004778253508329843462900751894689653204935104946728156089177522001203983002285582232688270297742542016254936826596135520403531874866026652705022278260730690608790445324128615544735493315242967406097308492304094565723196917259308163435265388319175748976353223956663914724835753609666160128631700132734029755236669227230425080763890442574683650954252766402540178619275331447393125953652133578761845328434633098728619476384893056635606406117193798714044969497300837293796580191960175038729079177321675616476594993905579494483451095699702491285584056691659512258868296371669075430918784744041489876483875162892532844970655403438068414058370064828254407899297001309062981090882263726216848129848883636960445630440085539864647066741742360640390506687722178512517449055879867005912938806316663722474767381632376339092491567532526026428057125738320871067742671386906479451193049068266166749701630793381722266375869828414671956927160324910363496378396813333469515544336888001141967258341992651557772061745767054139783749755157597981322212492427697450340640103954863040557500549795459960940007178290531761291792837535662839913324110831724094648898685520067268403701780614685687508882514915887636796386751269056247590451498975929258888419167095204111020751166246053767940409358055575957844172660034593654320055742569849511324810411032843615075992686874103390879875460472712194855765665747416295505179409119889358786366552881758109133161433514009312965610999247516729152028938972009705705150260414784981122087358000359736835902877597150661175092577080096535809099611136911486573729102119147499773080610978249106995178026805545319145759736384633574991856926391914550587859595467152704062038222236307844442496360780158952366506497446377170783722889307674435163506909477168872792249830325806203047004757070342796080648499572598604471043559515351569490814123880322495283763845949014464679275147901833818041905030148846024934081843411763957359099497318615862296324829192737215032439885888592285794154601143091465906951086615666651832392827065748195693425630135357497454317974241604785295783779029878669594613191214164505527885537200867462344783687375940087493346669681581066918976450137762641462739199741857388531583836741641367304579350654007040806173247982713253143675581515896109292707303596971126513421294869344547197460848790678674324002443665046777363533407284061632658120453055811343295535056209787791901089382774326443181706033564813103441424020001436371345033436189310129623650883975676837022258227990871632587946255056298298141776509699076983065908985988343408250780851461208752237734564334854306820296839328820799237994441971407628000716603833675678079690709457526356007701917029347001724052675236818998257243821835226408074988964841038951925444784880788906736340439066535888870247951129150825938799217658154037356714826276728162982063257945224604820004205377139287410114789439621383262528840438403651599210050825218883730425965368994525609092201237138068508323793009911847204309523805693956550316423995677010534012100805388197436254626998919735873128040727579325020480046237241235129457830834688978580585608680604756027131692595808409018042367018941681880519942058615855770143890571965974528262059204501797663198765803823813718707586474802664323116863544191016327847377353726847914167163920302108426387407364151148387992045376214462883914074574393753787553840459844226533206045257470441109464492283746645959645465985566984201618823709008266233996799070302945346308361654424675110264802833452131252992709328804750211834550054662859481586803771712697578725207459887427379452697762570975154038316435814585580377981691430025702801104021476476048833678402773903273457491388174951494883967494542780330993384341234128769933350977163815084374219209038343244534058211255722498860299083304264168879069917048220758282302188353337372192716873156524809833574401062695296611472992685606844589480806423860154554961307779979384352753115173550580055588331259123591243671337056897810217977509393774960274996465736961908326516070909202182736297773182800603165733098943743063803508682627926366327820167311464039010750774550888449208304456996419815824798873194334537287699381907748604029719068228771360171149313623511418986085199166640913235960245718137195757680717412462965097808739845949879347861852495687246352644879779667292856542642781739854784960400165293578737053818041646499711725117013219791431567277203804130863102031287287019341126932000075324878003462315789537778690116734364777895433470817912711313113567914978538106834864268044339880979788897825079721090240396118756380306130229891103830391021261463436928089662891066717291984604076964979992124488379793874896047777535504508482888556314013032949348064094521911039982415259708256959109679573183831148005343365932332324942750132507173737243379644059175947910203973217446244899180463390280853569607539862900584901709692074628358142165387104274211850171054697215681937933466248460585033863791039667140971235665183397586623147386822648858737637881373475738615605746344732894557765101874397851422863443814993291081191540688066271215093875892955915519529379687793164521319392765589884885482366708510320407394785239180554783486030160927494723335216681415274042082354203435994071001333300086311339424167787732824530977409065311803574366073261830469608104685842148322403950407403327478312120991222207984519456359999301173175372562093631077696250750963992434065308833404496880416509878900002500382458637006207562042418956051211749716960815231198335731122391119294198705989930939055552817298185907647450539294008342915554626836763822320856741992520098810438935705649709261294417038001226696895991873435642619250517634913558732347535302551125207358713847558177828615479150027481980044796443225335840683327795424628629857145859300449236396592921768691310588922758789348897063763608248235229253901493019364394277815603701866178083264460384788278866657565580970780895048746879541713736149872334022702912988187277123774965526092201722322710764562357416972165437061521749663677500250989988626449694787166661861530936481595639968153163165492431746319672203617995218865110603842352615947369242320980139315310562634605864339438720832828273120826233253145559621975038700604625879266188099542907694449539895676579267555617226324821369630565777458574688746250502970871990599906496471556909899261904759249091073759649949758977821811044903394038957199408077645909829630584302923640642317746240921507638882976993567444944308484840328240590677793813667730797967093429589846085364303553335300020720024519797977214220611114605295380559048022527495101603396356910346285019296092339508735234102528474193562433855969978515812889449235389644911684171049905316130071838101008447308863370690194169381980365522911008399850162115200947925918426664547270121206942925309422997928672163146154740724658996765796557190434808086052452559011666736852751513917808500395278188536779679157763686411412337149313324588308671679344367621693724660714221357509349046197275439021786919521277763188567641676732427454357563637306939057226871582653537569278962989468001779146811346773405950988471492471917926067888279856869864619832169221737528545887857920320490785052068092257430582563616006843314679629664027432107380746813891931182941032854144014444580382293687588432744490350037815948573110789159835556872348382947128736584351814691031904966045371467340062994505722228609076750952752024751432363921196531058473508918976504739940177421132171476553215993293232547566249504537271188290285569851837618713953502073174980271251728321501831076095742597426427991968265280569849719493202869106479323608870147488088053072338900323215796222562806618451125178479609707068726333425333805925486934707636322821872177132248162171142285046283517412939552839708913118707692414603753507027590114273371333749389289591178171667361420132337358335874802390833156990468529689139815041904109647572358856051216003225541031303389269203341685481597468193154304669926300245069745296827538345674010088596112981258407905278465786134247242753311872889677056853278160582768837185420620573197146676895980944611438393080212540048678963318334489647715635169988352370440990431025018046786263333611906689916483925508294800115262779442631285130718362539173921221058447499203340532657273395630316966315383002199176727741182034219307546644574532102526093924863646469273119704436963581470979157552480864436396726595767338328278168097248702846448698257889520443226932265462227749852348543869396973242792918351802689969914232280015798294706951447687224603824601166309833780475711859495425127846736067897961028357018207269823092220538503775149581109742314267090665582507124288713867630875479145997728248156505156216818740537811785248810875602808205816958458227783852136392767562533384448323720382795417137101385706689704049151542613918255389211600458359354973779290262505433418225347652795763611032928401325329700325753823513497024232275626198455305937948519313304623612859872499687602001856114173640000564348174900625897518167988200095898108260941207324971319381564377914062180953773742077554095633192969446921210197592054706467559843772277398660819230783590856690868375349688648052223949450830447846978346775655438973315608715981185916459256146895920256917188531601689894012893460317429791282581519582572748139001080513763587229113858505317042757914321846545748010968318211896732051149175443276224102131812003910971791945146560868931774630401729235830312452692136768096726376423885982503634694714017972953313948320632255376022306299875260803928296539670686444264875211568682359060832854137896224395281842780837286203167422368842449840698223630426301303401794773929081571808105112202018865910856314785577775874845254412792527821923180359243635106875108149911627531263076489849635243677740382734757145194720580566804911095682293103041673207604107252717110872814148230504550109667784314954474810305635489250175778395603709255059219624585034027446974612671843698984520055493810557698753470109427895051040212516081806694594568883973685209621549849615056911408977999180822049486676611285707265645115637520137145282598295960823473616847883768958483905210881178794230945269373717610213236928294808733138288713832043131269189784734848536854526785804710053044829996977784506748055614546275509859275785250447916028425304859313985985878711156349887232684207633195528043572400435495999293931212986090738603523506283701082551777938176368514030890430559594407697057596391502336502729408363572014345375876735463583743123018891276166959556495477724163732329660373392408439117188160827833307477943837222772273554093195086246428899773862803178507401372759320910617946586660127818487691032164552621968398691397800884675794541876927194027883601342445320846344677610590438686913292599129236064224117290380478509989788070447850485909656891878771267882153700981766127353852246279872312809550148901152677989818777437599426994738600952299447896010943213993306042576875556552706565461818406534054358690582617782083803498697141093523494433896640017133874145724515858741051079816733444980602268634194987795297114050623595710035372302496361984617275490525230137720588103100450973504497585493980428369414732922135348936111687480817842569111370043938886901771953342497912913854675549708653517118793811040738110729315830529510945335840430684202241888813276595227385459027189534530218473864477843678124858549858029089854380862974396960551689454735005835030494326108960663998038395337920272176336132132672530271947326663302199492573787376987934079800387890817691718443894429048996129045355263333326585716554932051946513764710198914255136158690902840614676708579975764862660294280623472807862278365979157930540319153421302609524585955716486438239305268200829888050517152421164191765208548998116025412932287385066831090286314670580136962717232532404077606266666661978353972017102780321316967634215839662773880481625221815147387027674939479587557673258723518624781143301410947019239265210850546983134629873867693217103416861485538599861259673271682671453510387093200884674324782511044603504973868832888825772827039516765675708615884915204035456427970701485853791033326307411043990473143459894739498828862737008118723729837243332854796970650196382191339666020259635218234283069127425510386563678873151158328512632549410828464465634506906224553517268798281707010181007341630559963513404514583813965385051830496471418621708307433445201862483270279472227840159814963980894795143006887348965443614304921128404358715398474640960504726484171974513577261664508638625180686674107998784275884476957862132675162462523280793854286257125191815628818767033398331363158106280535545845555381094343918988665794892020909606169358903282094442001718333868200975210377095259243740494247179447794855526484856331280858874489015095521859029574958023748436937664520751779061505722084457666474852131422892374139748626432574804789111047101979124412671203566813553094294993820898559868026656702918961614267203926484775273536758918089297380758715855166783717974544767796680600724245665733074222059780258039712065877764977961455521448361127609118749249909676904435587616466393371361134371442095367955095493739620461054196322633360247948571808516875549520803971393865402968449224641277843319660741660284264887278916972962501841757211512409249129390452813635818006201964321442111530376567608928127804263155621899829044256016520133711260445304829705403446808655903289275349471216660126681815570131693832067507439998396447217695503823620520539271822039103518113633936655534809150446009291498586371488332587994519566405861260629898554725808516198001130828223839175187061305643584495009835691623494142011503340489110948764768811973243060727378691774025136210866080803354694813925766910291090066129130207245518206789093418887396794492127360462468097273566296915368556698968689462174725105247368621689701077556722752674781721322412202836185460001307459142588836689845044778761297112868674103125235774132696892720496975701499482112765754695370213265127550534022383504165162427591664586082486212161337367187698149669492796984216190460032558372820582653919708649465559534273440454422716566460421783266806828294856322985891260726615497064298310662403454334955289660572326266889250885476205979956985896860654793736603949272433548940169059935776460243564713526703231401737150974421007397641733630574230609221126911985070061614398273187979489423987521464959733511156528251018692642018800163756870095196690230710542719505899835844795905559164624435737526614522176169742489344891680263352827543121467360355757883713232882280847827287751239097664278642356870478343614204513209138387977592905328508502950455424291682929308090586534338450136982267651062085495601795638405334408135681702414957058362317192762357923019002730444081844366774616523806790941729480224485132385078803161436970762200656314828963759661837293005393485720774786160667564493374535874198652259466843038307620279478675774128002277367952232359304337652267151341271182807317754262831709215233138294596657930880747561250704297030531415106176188736238702837811490667771700838827297609089156608732978942059087129133068283826780435086325948670120279992062716677470902635011537296965781184163026804339103314077044212216826376802943724956413886056549779771289281849361834098463536378502629106313314654125400829072233601572422485837778655733923002099313114586136577985495135132672449761021014186770386618318615968081052040140720921740633584268241819167446966319914564113287898470596337464490823840314062131032001931707958296269045108362482814917022456543283079057722133697948984292643232901763188576096146726060767072115018476516777097032103993252882736138233760729390776426177080817991887964543941085210943376473525268888544599716316245111935132244845717197949296487900140354253425004076096525575928602168921649727356916876011676724163982367295478090237034500792724261227058072321140000447266820097612023713014847348947765635908857082372536520120158851590751476177437222022986090860594146783288734040768775735530917753113093928928542929598880870607561037987936301680684117341823664013522518925009813589951523426210779247591751217387404963449731996714221916233505101848033266589446056709362571766172621202036324363047685644585768381508320889271555886358326953294270735706124639525573259177199895866052303446095807103279761443107855577014696447684526889064596827404385191757187543626985663962824452228297174067353921646518232882714327798655928816732529514890884996528998220771773503888693442105600310477567001260310159235162408139557538349307042662097159920674688733597538299530980823969336127466452417033247758840089094194961829858584702759735748019106374083391031885617787502654432637197224794831833428216630258942850231329966747546659652451407071963271207927207629294754990856338414001545492596012321677519362258641091026558485973814375877994735468559237597444557059228182449985547882981520945678309561211443736816928054926265659810861162229594329645667883175676802059453058723621629717510963764608213905224257092881317142917867194206597871555096061712644764219357462235866569549149611341409040941081913269033234403347756496233767767625318978440739701940547740306437954585063650434760765827452349054184023742495528583116352501676604293034347886659818182984429656547830214279864851626417376674419367118519343510212967030626338672239606653226705867997998302805844969915707515632531272449570851081329136215990802347012393958401263723495871499951468578446104355589584933559397505335422510037897035065906731666362805002691622593761995537887826186739122484379013343102031241729595733054614923931371951178323851673546199089569820695951418603487604913876637782891312595751638834629806586244361901692489458718689897180542407660221907188664719028427314340462215039092904909641239449125309723301477845828320104969699352395527694063279398949293439777116717291448024197648908652755831992199640415791005920904000355608702223809355502940314837919473762971716860371203487340582254629684193748740613424836056804671319775145449591552105392587653076656545980010354582043662132445224188966807335006864395049037324404681620184426166238070885543907097345997393309696582901328206126855922761511536775933350823530378901294362619445232777030494782616310887548943191588549558374190227819474392655936342065583378082462644199586442654421667857524714679030620946717926003930611383767731091566740268406630129252870851823364670204949550428463854022985903505789870488226938352574065870544226585626996260269544574876321339863613460167342098792239024868352588073622029746489118437028750185206714188068295069973084519887124984069245428255575712125999441667250606762536273238981346941967964260048417593363813942143057780299295259194005966759591670583493458404938944558954934314162736837995463840970868564051207200320363004152132671065730578851823285168872249761324650992234729217296875209632162709580806425309362617343136166683751308714170051709673726691789092775368132821912293782749604816990089871803934135438028933701695750117382482557046765328588951822549444267184085636217266425638411463072438079508743509059892789471725377805307262369602644483311461699768936595969233150443100677940430511814607439445679108325688149936826828308649417723525724314234189197556352881776714885299620880393383280523474490172131420390975935189488940922870097373932719867275710923750820794926204742574970702470399673189027269288993770686667955586684319166085340539434126366445336480634753229585314794185911263749209072442706113946540447587343649541171763114304780958223722349776462083595925230543248544278153081849844156612945022577820309622105103762984319345177000612374966560230268516959265089519012083392329352189385175308714235998244809377660604528441488498190761545909711658772934840160711879089562212810796522244185130423653350684899102224977031194345038398036818049614040980211650062720533802158545331960881548398929510462713305364536816389682095019061529985760373172314342862629127750778214309430496190983334668285037469870930647963728535335519868606440509708164791059736633997687327411576225369763032929395339475481178214453325159171818678409335761426400832373100311382289102177569382338428816893676776143518967114866436908728538574192764131204924413478413037451740700416536736375637034637339211897812638412761774460609456717164931545413933792993295514254025943866547000326762399712021427130323739792282517170463321812758305196249159820601171577855636792793016259342922211491629280917536658009593764780239678074008262159791343204823077591671648352517603057265618773603714154774864297174704090437313958940923661121145360006043352661646821018022099385017166591874335877435495265838112606234107929442155574299484273308262390475151319671729573153264422505624226319364434792590567204463206380804706229988334932300370270073488954013760797069094711798927180266574591828350666499188395638585320296244865372597555612834136257490780601167471944369633639592361294466561408560064340488540555984921732151438424841018724614533739577010630096928035765811368595672458782239096873783012489281274139613938820836184311655114796430963370624437172523550195533991804177841189415525519137917832216643009084833148183759342975335319093146531395678550546154037568601547454728658991957756037012695893256647800078635320011791403833430865288907178537965542526915041896984580503176103837302346015384233494245365217727530670011953756657129859779745017782645360975538047995954205179927687124695201390793958324686587326511897670535268097392330480864210447646171867963708556588955748918537371724052166878064695287951573956844946353650697949165313572051519374811055073154030763571685533470758415651214028703338276231488283700034011179539727527517274903641594280932833826567883656302286337144100251576170770553285719175918100338419223042660721370878706762442777118258883087935017643976897378794485538611136980008583596611100144027173056060373450324053409734085748677893235171118933977714838739886379923513933539550808501562222925880165474404677372071561820680353433229160810570100716825367950328907285114082368854648714441766136185475920089948906904848308269461084453028499875258863440097772717307843917639038851531709701796486659724505159115601945052721026455943740581132881100406703647210641025516213823026772068198456795540557283673583347451610392942855493891499699502014346112643806265829452882143903450143278464591109340591220985948604913706345901939393048085023026337171348709714663341068057196184034609271398346798616658677528751769466241522007887177824542434013037080229985163918117424795332140563377851100896245514369798346240674513498970565326592518793385888287234825572169380996705193562314892469351847809007458947905505921053139731972792996069999856267792528387087185789422368350453050066079450167357178066040871896791097976620850721883596179249105556031765771241773509050387719790905454019266035823874554413806656627580114825152211949210041276659138794771939491604582127634040157089114730930141411117401613802017457767960798132187517146881542916692930724257450296446730759620455751824273032373030778006005098284379480935020552134166883705579452096285041652398496023268435573653532043852796642808320757009538253080950063502493681049904126674441245930596708794415949829409171051027347714862104410531418745220588746545374812170698091975829526673210390414458205248972356548032603801121091378435002876097323018508415080953636351321792603156801832986743930660252805850967864203159679405822549849927063380494425360851291121382287295409399127977969395043031644242683892572684362648933038650155679995868518442058184477049011390659348318831503511002635851840039129871680515386004293023338310820855433502558689770721501836857997006732323108251673431918403207451161422590417627256336015624878238448510109152015549282542168340096603243585117580165397350154803161464888122684197528240909561257656881120736970768848401644433587551137736280784252304701160476499694365021135076412667038701742038664223621750602268208282608421811765073227854453132974045010139620026012406200193379236083837007602033634500500052585000256987341467147393022325571756384732744301644900182366191006270286229423712465613441143811673152620476782141055665287577992537614740520487233425886437684777561990930061723854711193391935515017441461467493786009537569882080280095631092683687284814138214224649085749677391799852157767012170865960591408874219206275253881542458542951715694921838808829896774000985272916783376156421496665730755945776021621415809411126755631550477818686719826899662988072753664463226111437750462179151219912056509078573765929389994618041335037898447581929442022701032826446814877408664500906538214033769850130150481984845204879346194321793056765814094962262860212998781918531635694080289614837347375905315938468061822880498128300801808053312182269031247526557936165328988307642644410233970707524188518740107736329467874341558563182390419344766844106872780426170959472012866013539915249473726345176517854610785718979626591666649061980429777247681119310204646022200259900378605377149385058423995867320136692709210948897682908410299183994318942054211358256626132168357823950188975455747232463756521532245434584226948006823591035113971728384772926898829917665262389770843883134555718873049515418989290595965572378667169248499095468957711178792423369345952718750392464061350179400149731544602799843789136703324821930882934256268375628148093422640067083753856742739092924009956950586865960631712894062870805598761675611990555785425475824335822259478182437262920207429245119062655732941760295795851710311096471119713788993960511568015412320672828861817657848000529640340533480254487589528823719536278576072280821150629359897843500757819961666676502935152717399036231258321503504839362789563190725805743959033989144139040849877616284392938604118274263336028621573831666120663084991542289357386243989631243343878057817593748210159860355927236753924269917104490646987683254565584605118435190822754981563371437189149339570989889345502429531748267847424966849603201011894529863462851332774704643148999496897916284967867127703599290352075695528288050371045059722464650439146508229251849318163890686722611206912903211829223286423736350605742236578272005645690693989593231640416676980644915878608767792708036897211942898901657712740165960876645539685989377828715425362382403413940757709090492029194605481311433371663073454181444594252717666572109168352376127448305520465729037815099102921550475944682089354059612630880349651273314801154028388446437153814702853734462067746484162967003439594775594330891648371669421078173375167589725532557765756567377135635771091180346015444846187333727431507430595673136625055671819986455992339038465920668424123323861618895032310232359200530896970502393557963657480916394082119396552491534769913476657701099276693347234532203821771869773747226403059348220471771669248393674128734081764336694137880614515824277156822698068663710292995737870773404528519274303675785376133468659513431016020188574967233624792195216731501155903177141375691350834903941661918250990247163835134593674310357852541899311731230863609120495238189879861936673668680037505376704357570431723790737216822423520762868188687802724805648821514305353863701633952015358731155221325867602649375391503201692682122153777888149516758654611157825698671111686674256663524821047899627104128880374997111609732820629717172210208318314441713546220223152749332539326861196054642457507660805507282212947737920679958203939969463051276552130882490603756712924388873969163848407349690415256532754970464608354502785448812858751086378431355300454658799300970711232702819331826336019312924369729644595109458831676183004265762917606160537270891028738981978416348701281594230641103700873043892718267056420298303173850313698095931725169717774105691921406478353324866689950316271730973556792733946499071233639083756651590125229970220969984424939519114126330159332869007286374738177704578024903923390120098120827679665791309925703393388438674503878164354105602762383000099248559551099436565051493164486131967732529310812269402288956408909437020840424871756075898577999680638199698266585674146246561749955790041651432386856458383163695490326588120421213713389469092830972551106676641494992065355503673824693782767001980769299301240867358084758595415810638606503274722921890626579049986559473075874295345160431187307273772709748445303935234820134831056021219528031513401877621693118359010760361672983370289397006397876386065788277635018851220988541408170347780065517661143757498652751340590238629703218389334571129761121263512714211119389551361028940542693503600649604270546404394344774698544960124066888059735447042763968868793417551905157418059059432761950506040486933917379636196996642504916052464944409715963983815879490003606101821551882162714569564535404145802978273543276404384194312609743555814762940867957282236241414141701438423101330544146985127919824484434328719741772811869511791868203098724416266071670684281123489373340699375644367147767858586910435268858857495921268287528699813705526210566708754769608365033243061344980183626869514241311971721851893598712411365994198545941241772064564195826706848592535134303132815634690592979733738194521935723135828018367352735042301563906710667736253815178820309622741992226697891294952072656309362179808355453841485457374817388047703617653220734544055903196399364863437554826098556425217330793097074556640940459494042092483363297317158675507178136997891940871514068221744342633274188522949693270740716264922883526560502101058276182360515753567788398635420591654692283374160164323918452196650201114241624943096241575525572072999817973192084767153735421885568131774760308006158681112933124324668593884609970196696419398328074900674003050993684817770912715003254444845705792380105267417870686590007304170505321700221666804067437597135540795716156252736521559174641540181042934229474636112198397940963196141011543970931887546286695846462164952196758418666701167767089268364423576940322547947380017282846221482983634984792462197168103353748333623369305151223502558929628022418610543626484936393913422775551811665395426164687909409643009201386160984296706499540189763030740353523695178212090186210242195625150824258386268351332968666734179482593495461757810103738809481606146383722884711652140051164543803587434658575461171647561386490400609709772113145026692418743918807897041040465665755246742341690194161393698472506630942620597569949936124347946761718246768371951105989391420245649564583278584136835237239485582918049317450531442805261232442167913416385337089646718657140017739806454111433252890450304626785856736296606561269112421684060477744953096912992327674135938903797832519876525503238370932555839194731025330568516025401974912101142888917577378143388736389949402072383141434412644177692405758640785876479400904362687552419507707893650460015195377884233137322258250472833436335481336408590127166292564286582677868718545677688017939258778597522831683984685398736219683884646384964089350657557127646448877850135043846841666307242613579116628952459116828137342358355415337909402946207701159849657178588721740966684292287215460925630631869563670204222956233383368814995316787557836389837395143831255587289160590468311863210642956911914931558058308912287456982745485866618657019205067498364297241418486673717633650402906658844350267525809738848219604115221477209259728131702062333191761102485030305654185634324515837935535645268361769514846360411727737865848791329018362062155755680493668343751374799653614203954802790807543426291941728070817144411111470546639740141848733418508363074198217623075043903950948534250904418156065546168888518191213614765672781998880497140696456116261010849721012581006455883748176647813473251823686049882796542540501401868868072688283436493015427376772134517983979111798326186716322625250112289143899937785928887236749195149594590719001966544212574582657685664168263765204174583615584452836448542431981247712901551319377002067484760560371492288588400774740056766280666055944799057920139394834835324448543019878318634393088095333145710891168829772508287826835783922025551723328464326130125135660724017405588274078131373992041433887121380129559582888208484075266519957009869183290898068966269863739198902936439915773357421427139408075637652459936971824589442492254925902640608740994584422724317277830169593876119211401025275940316241005847208706166438946286906081874776271310857890539460351349184963741430957432296393917400005686350434764061552057224501441533299435832558940175680701095284090399895875629045705159499137960400719644675922016362233698190468807214639222048915402248830009931029623830480234914789278532244408815340409914379986575048765261099812280989241322620540939236223330992630788398704864659870289008740271703784863123272352469632979203746582434164509084029304626396274766457301425234089267432355683987863126149576184885406180852555941487444513357674804761617510514166978912013449285363667112376798631977932243727976421003292817057465387045155912172944498649138905624354641765550481897162495381041759322180360541061930795080026390311475076371560325301481534748779113849382962854261544107643728763043995643295099902926376106410813938782727245120617355132960776505889946398775312067222012799502384605101252885202520610712567897744884073058316039441108722197687237243594284721262646475399760092027158859747575907028345457208914779114132489650811972017937444276720998366387110225653000798575037309070205482001043591095724507856767813852020283558079031632387957164170686316804787590032439313672793175134040635601828864808734534143763409966593441543438510433221555563929548366779111890353093795989160755693279677588497623604292908132942426789610849956561598878583129391763678698037852903521361005822891943332777629137475966641436830637572695537169098427772488877608934766497005980896689973182574709680961075516906418971199326416372539007012105495208306430769808899197152258989540695549272415215719360090243174247257266840722004346007029858474879323636903763925804181640388299159103906296377561426562447470431364838198404348628248781744671334631622935448067024681188074627780277787199153735718249109516438616609393284194641643986349653539304182086661658177074109547898474253096264496767730418640747948680638931670954647048383176361240347467038750040773900918533249783449488880662699308585634449018841252141432449222688656918518147953430937331229682239657659076290398860298576030853985114909880243432643518323894011433823199714083482757064348220643050989506587962972797371151831656454186763550075175577759097880909128598047207736105266610780647458554212260810378079771522938363438636582908787128118592217610872998694062431586060653781640751969510857812158145204111283819017640316324696078536387783944645045680140566517253625008059267521101197061096544936368949568322383204670958262757725460079842312685541101440572973988775688550492575128088494573660484352106505961545911102899431421679064224857337920016957620069370412637843070411748674872196454268668435248342494348579133404167328075533762980860227781172320603735777907105210291728532749707726314229552028040297658306150119056641509344748700755653008252443110576470876693929755936689759720641147739538103939087543719159338331544922486888638670844179268703816025034111457301617420649985038691327980979255086651991121919494614255572530125797488694879530129001644311390806617695310238778049006265369912331644415393635897036139919007914545441263853101497231986139803651146555194963823763721885172169198153593896711803388440317220344216713167504329939289979668608131740984301241522623749174574862992694826000262028651184178504978810472034545998756413908797548548806131301367022363343207487722411943165947977307380684138033098668474716802081756664706032506794346216024296837935262464366274859211594179355986226634528445255479759819677072690009949043178558970089032957749458904910885348667593706066607539683038099697892735738891314224819829558020489680728711571641422439165901058752915019410363237560890945774795312328209271949355220353727096623383152526185104900952996858506429050536793044465530901384412351296735146998370959531425480503994258317901398345058634376856126532266578754258281755865324070849557287938386555294558456511518417847181292448274613133121616107608837361731521185856763109509065368067169722956012735382290676577460865368286895441649582382959087630235169768595413676415158016833023448674187731634743124298028091047164094788676814883784578312722660537761970243998401413506299234281336755101586820116406929477898112090452363780086767161397290665923684515822825680963418719471949089225918120094447426815715281093411274292287461058056824758285293741630930027289968924142732930993440381010568758085092296701050280819726718839344452176526185780273416164346569607658332750114274397577027150847765906607472734296315722977382270184246941137199245583446294833013392362646606261184074662338696130316339924798313857207870474836162134776946002883613232462792000496088819147850183972565194456918309655066807136957778109052125957083208325758626298980047742796208967737819615606505752148332709076687658203910023798666789747334798738704555494416188111419340177232559789542987442771965691009301654692604311207740670878218837144058807344196183294093315473555520364464349041897070037424772655356559546333897181576844343236418962995800268844006206349879910902996227701764764373472615860713330067063633930746557078369014865793910492113447220960447986827817767725497991618592860529215797928626088405734894788930157277816923513388037286870349070247036103749134278014990045597791253486387429675633936566103967303820608076805050410243729620348173992541748509457377730630725922329308686014652064556300444286295286009881029299743895177321600224987789089318590457804167414069197135034537192353694524515045169575282910649902745101097692400228464591022660170615727378167872503427297179484449757249268220924778575669306612563955247755752065297913697614317858242865278751525697403624264856837334405159431623126163240038429798522293744489703044754970992642346367852354240684412988531309339604877206148903140009370008428102055698104961153272515081346166407364075144572675227797877089768597748364246719311372828492136402150240292450412543678192635391754267719232581964058589632966732831036802613469987223203181415373277680015541353991655335854905693391609675328133577253549436407567747120700734866512447479000242384991609187802539519545093840037119895961091327770722214010926261301940096754492050201644160732479101413740661116116748928412353476804346050695215160506814838962680348121680921039742995286317274872410998951106255809506145349777757064457615893489054419831150864774241053252242277513399998423488594139634406317957331306107233944193773677766320268432415996478403333351665946294940945706236844065521013836803300330165144519851884422528659846284476559583937905688853730860526225135402310856206754327505098679434584196123348830576757600767526642063679830576961313669413467837778527997645767137447532952366535978168644460200936201558709224544506212452265606593305900665886653483546158358871574773939230667064872927384999404526303538474637525625774451575676988947771611745330343298510445200851619989808133762018963787445149443681495401281369619054737686776620974656583205112747822974227082777896269140618923979053005703418327506490528531206663750666428061871448055564203078702067025276269060363619775946276974499445447990909565888245311737615548061213141733010258829259587911432866228838461733565222239636817244241608532197812640847843015925850523622609634103992958636767797565565560501164992987271412855892746845096899458977534024218887550199069842295399254468750949849734672961368217814531827977721410188783207977830981729823749403734082361025471990343364648302615452183794148234037689711689338491429029856342331126217443936766644695057414744498245098482093988104277014486240248840631694607375352183922280625107678449643453499515704069620297889482524917601826986780976611885807456223817946729109632264299408229273106302700144575249074565929577528038312650522448076207133076950563946161666800927501350246790265510991325202031227959982721839189431903394462413534581297293716073559797279909602796369937072509325275037490383908074384752677325084492350301142891791248444447781119302539561087196203635962338401083243631501694326087662934624718347265238837982286014012355084714449102128692876803934337860070112650087488240033164391949041912231657766379410796341117866882996257376052182996152506747330930401633289097228389152892432416274852491940184173688295088738874438478306140686960465415346729967424565996474269888245049340706846870275707153881784233147980818499771564317492479511008277741603746286984651779223088519226269894220506343638946674837985827640594120858694144902085578724163431436444761154997818728586619461313922181122372304239847609440012355270347261318324869351349593275938428537627226782028735851704808260585745433593258290363383962713296854447127934449131634324227101736559712891957425460932721155131154860610750616158425562542825315490887277778629726931707024195991763890304784974941137207446733910892565684084292267593533011521262591360110346720444712154059164117854225142613173292625357561094625088249834792302050932813500710894662407008052208266610124931335055144422075418546101522831786463578088690668317930434144679340009272442599145066832715724415897898327966454651801686260021957931740680781722263280689341909741661104623781427192977217802397554616591200785374767198821085432354314300154007370093840923329668411811320847759305164347862736976233405880545410982289400707128112962978925222209125545540353693960363747029551227977762139334517548888927465210749749944866686050960994797684492347354882751056123319835220343411163280715571587309812169370457639271617102626773083726447337797746891274740393644689040075156013553055944623037721407630212812655694116155707339367416366001300399946429692852883068713270706498034507501527094980558200436297404935730329765847204474134345064585459737674024835657117280908475341967952824326349348980719561564739380428759734464550068929199011867066404047063737617778558050390142329611893116016638794402916183565591218023319950136140486678802830394524674609719701859995077401918934628119528000477742588425979672757854797666474123377136387388432367978264982325913422609023187923352288521908134841548990522057355932608095583881601958167190531187841863370425873163089538965361087856733857315131895419871053338927281195096202405543838785472449254063852980269954573840374604033004170097175277678027788545625217432296739689690478375280097278599771151466121826205764609271550553148499728600092603682890118693651430626487639014867327005362487492803051712315991608103192111707313291475225627223341236854879689304608777412884566104603659619009061383342656841506443163742830770676445607014306437286045057909612588342444362123871367055022075785647337542519691392491638330661803123230170424365516159966437466948638122852604433622673977944784658068974727401211553268105160342375230381743902529399674755988980406094779963389227942439867184305598958254594964128331543721308279318518927520331349539287143328553479504950415136937255903742788432433480579757158905461347242362984210868107554188517216665628961145477081133431442521206445811925569447555341347620368302088592413626912681751597248347832459001438495547209136670898991063364154687466775287767233653676702119003789014213719738919280055343738554434416451421708861113123720947108404056892266564206617706029883083615150358035706878715923393964585718953621164394169802018800111522717659956284353267751151331976721002808306571644284285834440825525095284042944336021420115229715971065859331263325816717486871735397080312239293925551399334787882622628142578276999599495450196652103155736444070141753921714023595105623759397175314162851599221512014648555464162594273290196616361409340608064161293907331247653428077306495570796001437099099961373098025725267102648615412036030857289384041655512535239012194691566213802110747366424637504542594929869804493150348693140218109432762103641427093145118741020702849215598154504289466983717513583743211812193568896756439413650800942382667435327815608193158669699346186745769911970350530517046408140403328825178238792441810137856197698928937041381809639707479086964662748148250856871584438419826753106502998655779086482268264224377292488488389309043198164832786912306542271405790370856753703098094092309118064959439804544994195501985957374496705260190839879100290677887301754240777522151419443159510974855216132650872643534816834510675045503806043079601955432465100661296895584675131706927550131770755170930581017686403192122195260329019126895402504099867872362289870331999349044643960918663223144735556922550603091303667104155796447261844516368938501944441831790252236774622133433056380417804179740261416649502765149780792268654862846282311945222597124747300460387678641603275651785472641461055689337362991607819609311948781481033402640694831607541460308137532408060733859884171019428289657806350237026612384197532971483725671367933161754269105814273439451361149828978513114609817477703158189067688091369305238162053516831113431877918253420998473810630329153694295933112102292587685674326331314401903709674896385996362997654677052144934962064789069269988559908794117227633888897223263172030191659362382901921422883664255033031450922111849995508815500964463646019156935617189583139971798022669477020361506676425587212989455477364891265063137485788737211331768578036954386823611329894734099512824821457518876280104766956822302407584110517708029222530784355219552159969098717077035567751050957282336584088066979508041651247046214713016003507907440850344775203715679955892523997158607123207682702011460026325984991574799207381963242880704110410693775762797731847321160073708848858449905913306138215062851448515291639515537983617639462664024352998141759347601480498187968018207010067459685801469493555095615903641917267363078619722934710290942275849824331239417988287541956879386797379443128469396733305884089045992738378770312084876384801344003025635237587898286063765300964634057179561862694357336483538511362770665618512969207747415967744687270634102946748373031331635775837369896229227365786988367104537434839987243271482422386451942770869141564681718551057630819145554595822816223380019710993129679075405969242850743445263403068034554167034189341029207467332401255159614384564233364978451654945316535654422598209191675155175702846462145095440058003753271012150521784501614581045116594837277765004928591641173011367822431105644756124750087203776248719102913380584386464628912327269102537380314732615379688161552297334447111913942706527274820494093418258906485867329381976018362782047206487606024192790093957548735565696297890406138319543988163381270545412252851634781750182762098097333386698340360600623617660854577354714029166579373196603967515474541101806904144908808426115502099942281859300360740017245833380851033458921775683075854747782106959542743890547228610172618337336776782863192599405099313279644733799413657701296766398664727402967042035706568783173829189206619936143932267941732081685608996649931795874533698083771227677629489006422917794795664571334638096890141625870702520667587235827696913488189403438762887698196537017848810329786374503369727240786092326003731342862125834500658000555392100585827815844126147740943446232256583293497347909401878050361633228314650698732353197591824017469177183014956972204285011239748348471984857526174157945238201291327783674705092405275800751825413821674136767561875873457350925900788724678356164751526426168042910760163419331597782358118876921125932423932581343514261424783687687845198088280843997071916843290592071297930533177665191088002977177795819651782979524779910759652957932373063108169728416750782951241362025818323346681865984021725409110278447909606580770960777383424412349901341813556876986290021573154726351343707885262546219988387388076975994303191815633015113963385403609607954084400258163615237029075927344113779420950644233380763825427639428831760040718930873473112519373061027085719522275942622777007219402394937508380073404027588915721232286600478843469002483495507717150821205204687816309701480378102368873212156107040400230021379466868123596592250672388448645296133252359764397841847311532325374789540280700530588401376836113208281227007374746675464173631959724743110340772380083905620561653868561514534192936842093150777975296995202311573510583441013691583584718737648834297918057131858995266387690090434153320326724930877808085235597199433202652739888984867141499141752994432179449072945472196558975609426881924264992199743987006787759902743475868936035377438038933964266277070616478042481142708966532981654304176109733948429589702182782852027948923425924211093639862258586721553931483671130939271797131928533605313910574261454526309651224324068374992535464498016564003823949524076286547515472640353616257990332760524376019703935313790270737067032047613900291714594349321538724372087911770515962455739087216049895260019050540516203753413209160254822346631426988941703632905348449263375979885842117707056337033800898356185817074009004184075987839236882275548365616443758932004870975649806320879921815126108256808417379299415116938791337353193674271688374256118101112034373649055467032948384429730899238360106736668933829605497017696602207648838402747754591843051760075753065739261011418267799556581326515837533419881730380172846623081271538039097777415735913810083394383160897507882020470219357311847076046394406271025310377972780202249132180112876328026618470767716787660496995590699000846876344874774219900323767356406921202674481496591471145268528133648354720394401879839082820611830020365550918970777762191349044818227972767501318308428670292441958297397220355815951122176068713398216593537720035399837311682203221495281603813322495861816334585091910700413198262720730415175984337899357629879734617226624993426055133874738697887328092624815086988612603397350946059897820141439985361072369901819058920151798102805164375988849584198441864001233289941201701708683221304646930779623949347772001717368487836476395141814622825116890996800563699363122020735582169164803205826743915622917800967142461245415318095779097969308040096676678152790594688691090048373136736281848686216420207377538596149649621154353170994283717866392349854174412507069406223194039172290594888003900351298497052985271202793972540691393178622505961096867063857361911790782052498085458438487502339630638158203025744253994009852251668362557509637635640725889031913065887083854945690894287900727877733838571709518718030466175907191450277330743086372270029713530999957709597476299928693506759906750873173465554627361370898964459824647578197681736235675520399502515184172316981021655787123969353004948942629337453470879391187581612716292179182564966169965355885992093363850218162746809237117351014521289728132853365449309226507563122919120484456914078490876827914017751662535760139389485072452969776281021203821457136816455321409762371915322071899584650970204491373396963056962443753380760573896006518799744964968505232202880280939219283321441810551618062142694272792747762463008978991899599643326435138330730333209431210156146036663204971886918782534627431896090165097422093003996989245892700256660917243546119996975835331929235525915802022883665357108595693398755679748802546092900321044979732724271079515484226113981186155516136026146920752142389983792677367073906339832750278630394069176885550387110324964529653619005305136298414247281303395815938002861512041384390753165883789733466495538810867286922051999630816056052569845995571785869325698558236177929061891328477810801462369147856883919586071753250007125156624060846054274530803214574075183386506281672854313416382272257842151102206255722669441744354540534979789200405804379288005849327656167070727597891774414142576319252842094485022957266011042128798848506916287843515366503968514062061457861323735770209221764259811092744868806384812605757077615145248294904973870496136148406793767213056792715012219798358466052979930612490176184031634529932742648305403252009937428360404330716906074921973373270063543014408384533875617301756599444559712309624589988597030334585304898772146280721314377579624499378281579625965946430897171000141228902456547534404097809876904315310962263381094276034057015637805402574586866298707131639938373759711942175004750741749165054517399187580138644287256270533760203885503291263080519024254675858771190702513276082794244910308824995489032786051016414432069024213237091938613370267732754777170045161325257671498050523420282265603465172276718589348637210628366997685088300734515926349768366256064829400978712501069533618845217637392888314181051130622623606330426365437822708876118497251271433163054791313283144801912163207844951399321500842566492140313416381391240210811934344986891631158840809936437399178015717042843697403287637214271493487873264604803887371781813701413055221221450093320991406383376999835488514872310220784417155031594495801032661056475121626984250493008024355784816152919780990095189411433515078976028489392614038224510101168373957440005724745045482843880336407251563382308658035710038728346319232469490950667752400959226636659466024739251521844673682445578441393878474556626897212102150937547024906434416959073541598151538694500760069577490823733556161701277465008460010409497991656807369290231968348858458409968622751048859802171973447904546469028761145137823900573675457883515714940230862861348640643991793321444834543524587810403200635937474319363212056384943067332220630453326554796702629387336217316258533203079545289895562808195378192027921643293222441564253872983585857652895030238751798078578007267624441022732465470944858018867686071217531435977558095293763395096172321010997260314410590573572792070827620187807564805355346478546593160912892287460917624510049319113696268083783817356285148920351589621430142493154627178533448034939261427231578305499918651720614861733128300749546149570550753182861495196618431085211648262464920596160133126459310383073686505166481394922763510761811520037439032545067555436442452401960218461845462163987221566027420892070638598699062094888739257593196123307163461159656068963758115983708742040313577251213395447215476231644795553063566767423064873351688666886337403178075938620613141164247497910602930040991270147592403358311531845800026383685613915197846184226261643334995332162619389599431362227366783527677771194625254646323655859023446850756518420148279503158938009574950268433414971912247968638034543100639589620040934229788366071735673272478744765021170256196033026974048826028682782750096273706245647011666922655380888852000098917055821030958504000159914925675471469120645885192035817981360924206225838275329273873606678814117622619337374984106763155728950260742997874027669777011643292384338808132320647162190621214987697110497301155481433648367518205263919871531946040514083816010095854019226200297379517882947566151883054121641963264032939555095420320469562935364004209739742781068170417195900992867343996393540612215288235634709661948137836427347845821256062853919133484094575560052383820465443980886552908375887614442330254281898404729691353713477400492357227336848519628622581667981890735583189192924868682546519629634415504670205120804794662522875058260108592889497257904134922719519912356916688508144233960127576281347735178479979882063210488597007458112940626696253902086184694083638841814299073332408028287175268128548914035437829630651824726957979146109863762430275601746157860745214833017881241771460021402626529085824668322757923537194479846365304159369141818844849876402594354365188016713309391380412645542668774276093947587925746278408330204575980168984410965855203971458126559160214292061517954473937826944663706936974201657324884905514955389480478618995971864808041504442148453080662087944867956461496347309335598986931020518329100335876692160592554336313478056795344966809078363303904408940050925340843054772780501576770525358870449303332591704917189410248122776967699305149540187985168500516256607240680966594822527706452995090802404895348438001088911396368326202473799001035425681003216881813468324225121753996207057017857757964283647622194126672604281232223571605498219987798062162836044058143364145543229853742879922752004320155070859599591503829907826874803689847180114782975200082658684448626773023310539128940567029911335702285619941146924041145282172587604901790586585663168505202025382185962321583144274700184198406550060028474362774463479519263718873229033753236422777392833843202580420629330392762181242092811348766840537514828628715934284105816578467308434948398528480546291838350175321184818158913946017923104292545263920539747558887558481153260490326186721198664242062265448764965838771198601753985125902894321491405759313515818241161561684755689932433009866653368611905560790839324719634067729895876674301404701096306415419223260059547564781416875100556392170064352293039668613634392065388524617528902614804582168243158947890839388773397690135355230552326829488236621382732327553514835506588412477395525372805826068406858162925050542518319073503819246542342994133579164778403410156288690303473694812805500791432256528440976553527376971074208764358916979060455797156347586126075735621949816708241956992232612248775864427002273819746794777838539514928314265687111972487429557936101088762327773056317499869478434919470809863063067168057619932040103357940253038915981491290495788615988404751608410683048188388119030721620389134144628268178359189587510841148417468718381115524623164998270302792618806375077670275479906634869800261425884739068429735635924652629740780120935627812537115979259242841178242589081373411767965358580941601960926357290285442065385822338787895861475174359377466569248535286752622033366628886744802026647398977227924133285012293027549658376337041471753568796211244115141690751781581218384302787833298175477714598391864721355232727334879986770215526347665525065620307643992773327844482310988226364574750622866351473374448307865821351732984652681895739874446384551069767484486536403848843276573469079877783880472933867480952811224637607766964359264794287005885314916148223463019090963276106477152856409741359144959573529115002223777735282710352648363753568212053612343996275972363921673113302156884816564953310584904328730450821971377193401542492521979789090310602168493947691394628703223262263698089631853746739110196405385797720649945017685877964962761480095081792030912467346735760888106682405294784889889608649184809727602600279122667184184400478423354646361030659612186549647215151261411444217047209777085690698069842572070810755514481686809232259957097525439329353279589256688002010925481795361361947623754538707098039823055852737200034916646956318662729748042271800684302426237556258224315422553178615006893780665381350904893172176929443046519330382066285991728819569269303457615739741654376631744904682522624231588381922825901410124920938142835310642460112122056362249835434591547416988768054970455227015242149211917576179428333622903619441822591617900076153589974449936614799899199373050527132850383804169350651624916985921592663705745807502014565793384778652358450753445047573306369522574026002109711995147617256465600576508293950328433818918377451579781983114394452994978719335573715172262413380334713447174056972594594173055008389422190986193871655584731568568049564614475797110986557035676964003427789720186621185176464429769653614232965734836201148229742024746690000179864761963963681101571429972410898605914431923946726497436110679721371901425101817108626537064497858293268358283926163069047432606772509839983382468437397557915457473175320687235511005308013843386157776471314127608143676824328740767903764576997672660361289838167586100702117138404999414693129972621065722704447070873595975780850292334729252382014891689665211694810007952266957274105913866040951964046279025207181278217039609245266868989796825445670174755475543269915659209455781294403707723953056443893194190002267914011947993111464172339721126276578094029354924016052060723005187861480635950065725224407583953035876857326772289242561104657010842612180945502790373637481408151718072409166150997954610737330117425010117446005122000437327494401694938344385773832156035948626845467645657026051293970921198612758391511139707707417360974779679587732979818307396489993085463919136067652020038490086222270719939726923553793009512714478440576233064082280147653997684472105653610579936340418368509552510410201929849858782683063695584536145009570969757147716375944337485046475674485898244992879596654327294294895418063440436425967537648099082281315734933236877300965092141264860771671027271178417994775884583415205822807057152506520534460976179235026202888113514741676297419502452264831604496739848557974853985061782401179838981482925487268421825040485366711780910029047551470564655933903052320309144802546090119935610551723898944269197649219859999927011401429287210357616307359429189610042623996281340001422664982026437192737632442261806371391481387034328738589729379179064468997009014839982456075728343498178706751152754868294663798457338390759194415042738552728457542305605924724471884758640217614146244651674122703636783853501075651371040333272599677820638826764100356505351175471824496488409417364042118934331186581111419813022059857235745433287960011686631719993796262634935885205347436149697451835876744891588478327663842335120987152623062411698918269595614209833514511302864546414759602274288073687973716981173336872019953000921482189490784917003327833383703964851829349581697934378546401468113047736417597216766572747127694006142459854493603079111354931345832340328693453959330399454308434085329427733439346228206481402881371976789808503191284474058456261262852354765510730314579533136114299215317011349318458331625872400957998740996069779400910039231650326581427466327440732318466046347950075707564199314330918888672929426157867431887286549862610180345544982161642840355549629212659490187870890367220269659559763682734701402882771533782711074072284636331726207967318733591175219513140077730498993574821925984468989413377357871548361306628817769445355932978104613276052783978170216881416786975061452209173151052008525268999819453298423853962401436806930919695513167961666787215255267360631610103502002120994531433160555421402865811708743439359232763132682474540926450780159839770480924144369690647791163010124460197283598384120725463666964342884266200526386279063482346326229408395032902708665095412725631331149112358397483418316451117367355519479128819983390902517532418163726264856886858632473248737285871951335964127264694147512441080457764907573699284346945450338572581457511954772202396483636243495488217261940601159260979552529694147039799433590663090747246279131487066430243334448731193274723675172434700783862921509369111612228755665656991299639126803689362950309973037504358678705961450900940298662450913783013150940511039592367082223028750258078889706684030867862518654830344552149507650349817597985548797461721166988673652881967118437261467120728339080243989362452554773304439640914343504681705739375336764050640957376375070533323132716026544555632890054289993693622412182315328211252685316652183563331630115155051559951838713849459232195610239234949552584735513742029170152698213701880995788259110345202005016464744573529478474726388850184531197928097998578045947849926751949042465775175951986801818909886533562072464441214724221621850179782191659149563344537813967683588048836423151449299988357210265790678383246855134362969021460081040635324284051434111210311285568410455550254060239955220450676172845486008399387475812690375110688970036283931395873937348805053312561473572390543146105407051845918333536710438286949558239202771614349546007417964124828881360476081055855831457670868388585294335306506124420562091020188095246033998506143681412102488556894114018358488481731050509220146593854030550698046738398446143308056851920733150345755154319193366688676699567591171074129180311113381628995534896219138245090724492929467813737707918561769656406566530067771280735434304337656937226343582590275399482112788861596640710538812736873984747264012461149965511594782956840701252706040126415105156804930562665010765774401603172269886599961368773604940211499218282723112862192053319141583211904535485091229539392938474262573434524542788031631996987987513675080399012232351103028463770193996962718339805755135686765969072941664604862630719002290119032327704894423081204554515480846271701763503984146311684811896911662592284422831640793092292060993939943961822902880823719424945514459621212911967774110219865765165002020433462497279003470824618299025531557339142102791367768961114575945508968867004088879333553195219403026400380754334862746799216450725549563219766724485218405473870446724270536090302936543915557894819038129489473010634205873024780210643602702155008854101837825036192655058790009881251823475859884915438953871778007166327937129439027757775097539464897062342368075393235613775266082431467087852988266798564330914561318019650734442300148241593595078937202765356214872944103781472889568389952875215351731973545357346308363976522547581072676265603226027937189830745002622360548857245824694883018404960687396403716957643895573505424025013692156996494068447030131088674863512948648179685296084887530408888957929789729116461141246432186685988922905925466992132415472171604210411274713063765451104365185572595711471034234404902078214876402707972371083743827129355089266544259417760123523683286869717204795640536898976681101317402186103444335709675619364559384389152649092169382474254593257110888840204877386302256856197332628875964341426079877565365371461197349085393003591886337278298339969975298203108193825110690972449915244106732213288349267391832964701986665593265868042487290364407682214925193890542478626496055922884468833626063901461599740511657623978495153457033965001651217742119707826722002051016827268512192714699278710849467595788093958545821540432320594196107411578445521609764682956727820703221559198792872320778344378437798341659534981002995921446811619152469384268804849898438923012602199722969941731270103911776483448804303741013710396825115359471653480458338889413254660403792490325781445177344065287480277231072326964078372126981994492743720224653227732905712347496872247918104729921711526001971273809011111684452026026674314665400554291570918154625466805961112482640657302652469252529545142814748535585339725139442389263836796760753977875465223955051512436588119192663816040764717643042838059849979799825265931744101908478190344666143549166839751071310607082210642851219693257726258481114519044272228588560693464866676369407089373888969839191682193740777928507864842992997794147487907134413595980398602085296032615351683331002801473461525778356091702943913683343844866530864791687680226604323532356081589176392149812232963683426781377843153191189503543393066426117358728834123286985676505342189035327451331885785441566439172194151258558752396878955737439150296246578003804620149361949399516742010898593521330171131301810705310597685758450945837955839645431489094501442992029341206412841977939477337089774562609107121550137539042691169080996590623538646371790994050752097727839335856137469930044111294475138709775966614310013177538403151665829012531317095499796676991049088568864345333871346520676522915087125580304180237184630441091899553596532889271334385833998493640863880863538916604419389157517762466646063018878725064346087639274647187172814251185073237993135376084410027431189619113725304968153694139340367777221837785713481904605947125435490013250632827064151528925940713182792572739287378199284513018598700187258175805404458018361547456944406433743255050045791616683104572431939511911623396142048327706032467027335264432812224448635304639699612481235583171872431346625580560128475853754773695489938829326455321263740124334435627552970905424569337703112969022133942662852657354978963341688297193778930627876153705035142612082111567194401141410381473550998521096134005198110967297703927200590969644810754079914243137766268063609296188929028453618053052288797645021636131451728781155731085231098344889385304542724740745342162458196449092093287452382275750358000155934244701652785617061452683358831213344618213793388814470324476896134913662251854971977178339013797658001562313596206514089049146252874987491572062835503644965600584691095978039167200837068789707474013948164380650147610606474947480875732029360701175028708597435451281160541616093978236977028029925812386546434581485773758298417477526930513188008431073580216393422030799048231405486042514287255205901624581219877943987982408713306072527994636702474984926443484262352165273405113667406078145119474044750663505734785221860917082664053301592173679764590137691226873325731991859959026623536201691049352326061215615292919378946601754025258887823045610633933375717164520802486686659573695875958656418265590130198988162972789475614705148487549981738578604391608488804265116774635159117548790425501653402003152354515883040533731357730610855733145328599944143008815034146959210356344794543813609069377124513827576640701331284406772479021083286869256096515558286794515488608828179041911919902382313705979574496682251618271671268771218822583301511048398599765232525455359466812115401783474857324004741898369495774390805173793318976854393290854359416838723613006406682222991279770764170376417556877476468169139925142496956242091026938376096234837794113611789174243348043937765527221627487716590513491418784737831626378858130634754394932014021816629680106445442597453240704156914960055303164816859506013210405984109769632095914489041184511240326870158058945513270361456212546970630204968941778827404225141653417283969953580480438761337899249504734585657948300954680169971489392512200475698826058162147828310032606549002979092820727727515623938887463534530120924708142143219736925912794442465785043528488050265103408138814472249022755884185966062948254914610363453165771463190929657033382986411243332793746964274634209313321549504527768575715512683401626433624052777658173065831336228216379986397618846455823178974521755986968372965343849998966788164401323030652203580739763193217100400532814848758447052252445329243452376448492056035597459311489661259312620221179706632696153236314822718252239347948632923419878895138058725700707280424895573172417090059982381296390661683545335041996421112766352661112690781052143931544552383774724955156151757021213568638469290877501586758729157169643452939464016027773372056603281357829701456131914240292851269321125638043570805824766090411260187341764058842027254362529550037693627409183276737844531363451176361653235998026713373796165868603461906911938427651673592536245738869085352884479831868736865057189623818913866329577599167869822348354109473345313683721939459757166481515756277288621091377554171647786902571524800287570547025558747859889451808141073438068030166789880272205041869156068388139744756984234986600178075438590915201852797739242355349210724767429620053907540530368967287952312779766594896932608821237291316694713578675974568177158296289886588760202765967310690192303376732055120342500629001711569845383367391412635748316935422566717737911262234868435998115994038446429080969737135067130828493129572707936592385485152609513085098962195717032752445779488097124287212002311179470083718474393023973022698171843325917131132588815887277062947486719650270991250934702378308222286781696789914362230930976184749621521045045720032361210445206016741369204212684362748942768293699285251135190805451287767411572155312923383776695396885353094275589434262068511432474395642820966590995643170154046610983373502474828024312236292219606505216739764865150966495734280882510664423690414772986991378525669539511910775395531448482131912625136554606879876560994222388509581207897427274445046017486066257597436638688292953050225507257582245915756880044165576485688021050904986960361444008219438690058334513671004746509006706817155800885149884446228672406594365771077563416097707569400071431814095727688639454384875823374326187940331660850825002150596076310150956944658048424336479784531426009772613276708097255145049904365325348139109174836311024256790036642422163019266918509721677500532943191656868037557075170007768833095618134713551731321961344324701563269421935679502414638977133735988819501486194532635272763738364242826228186406358489291389939609768703093745983299877855275958237003272885171397070951776258918417219872575994256402826044334654260194079018818495524635481819921110329551491710275501636846616996942598993445642653149477271040113620997299099713245978988366472456550408072269926698655403415650714018611287584196059632045819337044592735678798928666357718063542179709304511719835352213260220158160801629514220937991682987646287649757484284032290185709781262420354799041873602975831795113424877202742272057327369420007116652806742122931109597143992529746356159526432424434095852059716590648284913994154175494565064138865414280939282955932750656143943001097651010795065394873029738234624644248715288638713562493988130977376364068205111466099072349385950803778587620327194934811082828287998754253309500639228382976269407311454560205224698544033248297345252569012792054730673389159698109375155728875757218561639328522222227229026942898112249807923131986084127519939280203587808762943505952846552351738079063853255417840400731126024886139750799142292380549933740286203839949220109669394348041293197059354607159140442550141560107171653356789540873021367313843429190986924056833380305295469057001411962410066668942311581787434929664818230371437349430215650184352550660734645639381152364439227274231569391379484292685619778809691439554348549959274593024258646767195360311262474607894230830975540186647818872054592163067718966733244108851285502102332261217215793514527992969848427289636203831686740582957464509736251546858208600889561508295926864990489284003796945157709184713809597798149160048990740186556093900850291001480997087363279128007954766161580081098054791985736829398713566960091786067658691665265970575789348337955148365349887848875019105287292439260240109350982242768861561988676216130898684577601315408640608945371142995255010761436884946670681183878590889522920349684609384968353248179621221340992333077886638724354795128045155911642277844088977569079024151616849189518286222586005513650857010252554358536298699455565123013834314821861461441305438820622717117677772785023683682307853563927912134946525807946983044033654508543363877454771988951856687075690565699020590832252477238528338090111565900021751889285571475076295862401461523795271035192949653249457014977484692981679186865688516641825918258166496544477543455742907808568321663992636412542112393447132700271327935724336979536748827823765840493554672320736744090349002945876595943780792188212332544312564864348143993444626709656075628116091780475787500907968026254407340190093444550426404390725667687127715770041802654008297600632926983871414978826119617397831206835691117784370171442726116233157941248910795003387526033702031004515489958117258399484210792512849623928213544538969514218746091704880455922503642847908189883227499913270386270288109113517847319105619424185006565087751081048425111375759032095926684280953751935293190391540440671024179785541446348157049793294596677359129928828802268054121142002339545033615812425121923694609631359806778557428405263770705128216971015239664820560527123566576314104388793430973383034789982488282453964778117024785887469156471624563711466182796481540702830268945738997032855261892536794523541119090999629919226902209909415095182329385526692105529486369509549509547386850083265138875512441435070425823865912000337574617065344665647907659635994262200754337847003823185753833568283858296075994021612900970282986197397347815977534957720004131472846400161471093415174387161271540084705061446074982250266122835271799949253031832546514577311398453628789419273379339322060368790794166148283934054745422423062526810380714645227388694473349580688348834523751051808461239735719168545250436840489581640776212656370238089977972646545706465506347774756018165731131850111603491519246528421664723878327585505460797787408772041794997298590627247601199145215624367956612262063636304612705519103534949798288016763989054657077540660394618328065338054953818573373663293972885074992028204789668281822829250084542247782199995927360433341896507277952281551008420773416225750655922596042314501048618059001178721635901061528767774790900647215329520192153123047100746230303660673954567152248220104625541401219947756483162360234083439117014062091123480828148458737941369733496976394109797511476500170864736915529069052765707606266928353772268782731752175738570284908465929901009974962693375672480771022433345405168779919062005046092074261791917408217669545651244783013692171917799517273675023576903762278320064866414443196718981709803169251601996648632472308130102960821521678125252539463247993405949624288702568709780380628724818800860284080782756534087921343874948268485425780918103623156188586622202319246578398119099224598077607645394400378340758269595926752057885046546380020132994563981441664521025970907594027448896120885048374863589059683634841068125924498062813262830753912954114591743602287224919494557655654396891734860787551887709869102859888521020468490735226893395327222844865442446772933350017871227069399104847605346034554336651666517710101689251433327260767590918193936191960360060860134007973136445565934377730156205798359272232531501361182992895778598830279757645427142489326942053516577041968518597149816368976460851069005452491662406908890224634200380437194817015443977035931416213867275400478363235915104183233136935010743706785501728842082908275324214118440894246554446810787247202297372729850001269323216592817326306747373985821109735095297391908590226947251385477897819435197966248522347007814935830963309429177757150898258602203023886591553268966976393356313373558340798160861121671917450926094974771179646307715961890070866445441405080375767220734019171370143407360673454451119380285090396409013568178293809848067924334732642027188213523293862320295665811964101678067769174894964891073493554899999580310005202748423364935385546632406560163140579695551019317010624664585937945060570533462946448772233607532855510916898272303685433003980433954392809160570223668058412643594683332199392110561414718070202324443755144425015332164043077929433785441071902708586079936647424580770920070589173983942163877859110605314738204923017358982179780931004594399316721135808854897071490348688473559826150436317010129134598273106294148854765053518128083985987344400515110853314063522385299886690881116086621081896713852567466360991885673312211704343391517475797213382031356168301595021840480961027637810055074433248202980073932627738290370862125289744124121855784530000271653571503890264143019974228176038286038082298026034873023437736326769723929112501503685958505747297918284136372612179474049329999675311482186567323255076979556476312546092003584529452789864579521702966337572826710385429677944321621585000037776608808106862783917823679438641212259557939917297248498062101475547249676825262051371136671563117190655225961738299009994909718430856936953599244415549525719099498934757058248081310065572571804993162813001929807822275800707154898179533774074040973196655677189009945675655308270791872834874029364841429051583048545276070858641459292112206182587958393591700785296410032402358102786896472611516478496135655863083261886716768472736348954848166251037446750310641364449343799346044367040014737625177910170703137047962087685412068141811699004754315688376731152511447555215123549366164027549625844566639820415046277973780463778868183702897017497486435960127508906250821054025690400573708063072281463292526850963762129947791477625576748008469691689944596226344196261249353935350470657107045472079062272174516895328508898862180692979412007354741053772454758157876697511070132307423012275199568781825908942977527470946840524401122176784798287904322142100193048108576534828137447138807029837584573413434949756148212872914561693581115343721049159851646963475071350497256547806809840498154202665132151138311619077857730675912014339487983002166174786395317505086286031043260560965835408602847359476546406966092722759127706621167370236782474900905124366613558265900371131929777137116205836995120401071561317511703896193984747347064721516682384676739452140815809090707480143013890583261233009438799850134740881888381460452408941943978550354600419345349152990921015000162553770030650841304846805105976965797041624642481674121980745003585232433206292308759564520138015848231286699956040763911372466765080189640075515015030561038266843743605429940098070986563995145447419611565808524612320275258912803038586059489631168361900693410611650299354135126784949063839995119769536318243893541486970143397991445288841070748961594681578502336581513044487221805001548946428475202226533114041050774950107340876329676963889064141586946056236005683914572965953237260460200166703930471464218837227263507089171716317564529149023227386529918816248156188779823191328150912197155244985820709559849515117032330661519005140144732836788588752020040734115580147046881618569150019611595797149753057754170641937017800309024485388656232430103271803449929289560737224729784326851578286127222211846635697858641318205053066474847723692264033527695722541475297945295398752833667010004939022927734263538607542046595586242057403629660157492785830438315165067920501015256246504636640542121507010902738468643408106014507162685143331983354302380553953759281451555377410273258817512163934081361624442145943837908024987154974814725179440349934600457080745914773230980375002084801979965035703438232294281261045820156853295843193143998669914953451897770621929088574570517294230197191599968257651494971498184411354596572847962692257755510296938467186037243140772666316508354913267223755617997845380593967824631749328602875644057359919207101980819383024085104832432724683043069365478355898575282510885589015126741114435797397991878713135150649052450694503929461412944370644326737095085407548762420147608864725930899225870847580693964175746933872753623094721590160591782115745263312361377757933890734736231895348751572274011193585403915050044459075772949112802684851976293886755685798328918133187277904696111037136019502450498130305932300525362996024393959993741956466514689223345270184335915357673260376614702945440003576908957732283480969255796272428128053751691697603273744169202975638301996194787923328240177628928244439763150946893528815512019533085426627576707523286014076240093590487193744729012200168278141720975541727961373282493677034238088817226296656444135567500068127302571445571416973529182949203976960376639892267281827421564912845829509401979669730732145612897078854452919417784953282182358196200954253235811551243682603294274691975161291042054349711352331411674107179447031496532019838241857342289635460405187247538504358203103801340000606331071228619476220542786538527702875773030597168392743556249687885782893026356386467165691089412875241128783837461128984459040747477948991121803094847324529547691831582469794714765682556380024253779256123842429545019721978369706059393183601853106840974695144639702095680529694096510261613731977907707180581773165860035979427429000962025374907998964165038776188581011643537887983304984328028750645909644033247990919484785809668641521658781830074550776106854964199950489788389498388812841945629608624343711577729459752204496321300845742482692475547086666225819909105108522383923634388052508623245677092540766744139406174772264530866278427907686858888668478485045774793352559429387035521347519547922019008791910162132556597118326779223000164701507404850946767205201430215252254215166600591082525362450324678621624071042073479972942355186857844136155177161788793471534898559781953817580414222940068816051525966657528199176907550431404696318444434071765561418871599185361507025391396719477891148718034006834399844345468017549968574450819754227077637363965699350046713105944153697879941618685488454204247047538089108574845021123732952696778866956356138692080473667952076473971471404211659481396040047072456847307077453282745767860128118032319879301054672435388462995239095603529356778706525784328557115758506387880921861075018285664467527053498288424216093460793816351952103787898318468188770983012893183796183336875870554426172288748937076937710073318771907209198843308947423183212337079538348198063384098146548708400619145114533333237256172534618427833610431323592809742361341642794095143529503958687240571877062702448632610058576406799945380507906817082551496326412244542665138229813642034317446361466047902814482270596219516504020042973567814655784687867685279310372427425292847846790575647506381533142381336611452536322846731866305532625502171631241148960123171890525313824051925457118526869255642056639883010040750384305485985364386966992286852656190878619048861678057604254286702295521441787904113677283434457490538899266541092071363772926236646943936702854006237920199643318275078645855904088967863435107918517981263229924460515139795709613562597648459758115870130944205448637114155861551122753424464602361781899539369780893493026861936607685155594318352726608972227532561901910919423406228763905213709020957700738454900628265361940701155534630602651712159689341323025504666063583013359636332131976807083871916357589302707335933530063789854362775371322497381524587192640841989343543378950739041182197299952893893073022535141589394318086073962908781281305772837760735723247391181316685353053264616010217484579021728434348698819962141343016098714436761034577874238914397789940986278962775317463397496574142706796164727592213945275505384286382019718920743735119308396309099798247955528142997724933877877091960112988846638073917036054367882748198838729360602171907345176736505823198533364743189844724414198312072332612707095225455600722074198521572547409097608008103638669626495459169066818482853873072196117282969238681774992700207417653717777669645723935548258095548685332661691291163128462427987535977165086145427672979530832469572292209581433454572381155860881583708008279032238835585349515443963098801457055109019499465579073949760011392593536626654868351366726012959228532498767943383986992828872793635398743533667400383133479915735857397617618074400905307820572078798164968770019741447502211486467636742546887723594973908676387872901240417907148089999573231146687672564728277153626550105515097153674687938654876487643095382458905069338155684755691871168209825367166643157302212216266882507962519605142641679033100485691556862057905339758093066165751998329412016041092577017018842390673130645847530673171642442457886493600538160940599284056245659449238887700941054428756211478468681237512362582712910748938104063825478108861755079651827738209838372745382284922977573808740305485644442129304259389874165497338587254531007544225139146145885466180358048368151611158703439562798450867188416065537317950029691891864097568303149368776634044549944289774542757120908944763137587285722741854602764030486264274882374250609663817602671288376199618310475060193519216184698631899319082524585359317206726932529353347547088894797370017084369548847017479914500964199473188724056930176915751009209627667658174924255994228991653103698571755478963116558333861870765028785099975866982708776037950242957925329164238844992469996674001650937597196586451561794246971448613677199811295589669180772827362655499452245899062832795477940512782653819465334409604091359371587511231407515082343383671884110262380623999824536291178547063075363338276604283112352106145344228549375146808231763634803102965061746096479225843506954452472853986492424796365720097507718588261018160457309768350426638855838097880674687098053775061560220805332450581386399949600255348763339120399482571973433779698816865092404237777241191973887164451461128372272042424515818429262886846752868914485824940690551254544906349402180538940668366771486959176532065037093426322095570937991501158844248523670129555895092039329032412856910409904189792386565583283873423598953351869791446402147001018309378353203515617788811180896005922334547955194277227209016430934388283272500174894770750749021630801671629926324872232938834802678986518214941592373730495867611480927507920169224585714676263742925486907731863301770129250824276354715644222354922320708349086982148353072802363983275154285159346668987025433710202166913809814698446377862309987360169912730406522862327888190983755878791191548514335011198089475012945447753249958428690966898747309935605413377735796999030048169034286050523673398853086154763890844775931668213592569874972698592198771519833020238404143492682698303071637975159245742247804805693543991804117294925196068093120695130941047599534180129735534179487081753353510306240867994163028781013609652169719054161878694518430574000744606616882764802117383817797020337080603721357835675336061449522689362543982312670511892030618985110722313604261008879056733551945000593022384448182574336610461064920112866005876186123777631110420510978210283218563748977548525385968509938303496005073733480938238519636223703275092206503829689389606040664669002666657159913420857264599459801591838592201426773302581327794132950790960852205398068226280795887458962174905122920267487459853751817431577341656109291590349328981603006601242380284909011794155776909498866690642564932739174169502132225049064824226139982706824849932874330878153936222168126771021357359532510950021056116743601931482479573784680861659429781736225384752119481199083165083526566377662867181890642866034248182538422586251854953048137840948760808877325096983246893682375276232475425124759178789694326346675442370945552690340753256376703218945120249729263077228584474821062803178484712897773004278963921806448943047008207541154011411417800945546574293688945774171235106806922717711635845016008726264519156962357347477944283649357898409814464190560584374716295151553398795604228453673213153161996256953199545302644402287420537768550005164007194804310524178402904799718409551604437168920792668496346148799339052270141867778924135161575463285581191276983741731652551541836207699303643698772458882123994648884800149830762030574750451558864854867099774548667726426527311250535022800696283313449595103295593720828161110519004336861059394755265320698164430910817935385022751290357814737537220599137189505999488561041553124583761948535751661590454354369988075389170902159561526944991461074525167981674793413744213177001660131003391979781120527808133157401084393608725444435546621792802610776692400587738390871086142931523081464474841900363627958886986453028108012192673263709196781530295989726774598542838179587811007550960632516705789195803106558704299913093382800698929768074877258056742330138823919519915820131893717704561945357871746116724197422382528178963815617381654603386534735575684501808440800587678162079906011555216821970601996593796604567809939507439932798474308169488041191033748860724795285657915998029059189902190294226461865976288348540562588343020455637503366037048649120726298711823761111343973858765952518741153123649321493727123147084051657528803644318938940801172576195620277137534530597148913401396466153505154214007975274330845759764824502797174376217170966839640959274838111699555605902428864823115918635001417197858846186267964781788227016419796413835178524859950210514722382371582496318674207654071432753113582456177071924862278626264154798263506219897139651228442499533446557058482238135670401403370808382693352701927235533213099985669034815467828391378335064635474461875979822026040117428630713970806213074577745916123034774661401893038904501264561713544979163475153304392652511343742385357979145849011870312717259098286734959967227342713295880957421035792004361760507018978057948777860983908497137811933832983185688181339310595968452427143745414965203083759235018164478339134583652096534297488980584783465421139069899079405040896563976343314921178550829200781984416540739342805297666482616365072896074645648977781125988561097255701222950303366030973192633531817054854603674757747065965993253587964049418436861346738102618726234252855757985422061545613677172074060122696011026209093285620444047007651743756403066795548229396227864955853138676269188912135584620755838408563130905346200780014047251936967518939072470051585361681862277372727117240683091238241477799033687571737770194437045206370942820210679605209652352377160562766229317874058546917171806136759910800722490267888967140788751268597561973848379958066644755176003354644219322792315541352402739487562469214547101927223957693950485615291934900818865601464030201865239208498295400933328601763978126766362864148103458095408070921887068724488530977766312280667392640555232294286893639561622282172840383096418460388582553622028147259877444468329872189586109269737871512135169926249127708672701459251245988858279128312181504068104716444268595358988034561416419364810916413681897214519335914460873914649789230403432278529746213175452759103239909728734125635166118750579704667295725348539153437295429610485758004370538415510213706682901791909589609110479595316242024750695629944411168391149689316743971175995166817096954282840737701595284403232799619925536582805049385934696561201533039015409195385921200138451904964235832672542742537061837288328733943252802430646428598136645490963610675658632823341736993132986071192033903666069520360162582210547244343113979887813852752553909119574599727542979480182266849194321351581347359526436137259549273279345494158004617800757452900215850471272564550253489101084860436525414481293545269930656758983084560871073365031035625898061049410789778947499899065015547599181619951818352921871408310242348455343889422517215705182446842789661020655189254046815605159575763354559057563012248565657198154255372716979458263706603138826295771817008501114557041039889357723707191354092021981335269970100881285671328208801223105528580915773420925175482047803153428092479126245002538175537862357599736455999559584041261901178747815177087861122782908919040822421672861198531374917788745329027371599718071034924745337051408526252698002729885283907991307728415881924989713758435110596582036996664578722323547464901254693967059010082602882247929147699663072835711472064605981604806950879915902652201788567893371615966596933644738970986832285716183083866681322784171947989962830376157777001680568994707270348105186378256451330630383810716876464056041656745651753744194812294143545369415670843205709326746005420846491312247531405130287344261455038376200271491327539742619564064890389752911685766724500059848290678615438049495059171864937392486410286118851529376707150007826198050990339425126280425699503883029108430838287786578056326543502298230088649333606519759711814050399152869794047283186958434857663046320561709681516047695026106945421456738377379219963103718858733009457574750008834805376418798615435919359546655319755632008115196476829658258195219481101917756372219518920084887995738844991642719497169785335108570692797316973574587754095713833134357430811074857589120354682131572933884936594510976051524361696525244348872718425264407909488335206710527883789298739646868266843588140694736155835052582924899997882008724529918592701447015930585225629898053770677310731975936700983694888766184747380263517939265718421372688162991068098042456359379567283348599477501379310582791854795217863922751707669193600485599803499529810918846447426120547872798278145183491139247908549995168535051236155676167360354266656175142818725808803348048974064718455918366728761637073675708115620987701392031823643214644529929621722401198200434744427444100992175437503851621872541354057172711785883286923374433660313898977177460445676382398002285061909984404773966857527774557858918971668850758058864098750454226561972391306155432279214602900270907466117294331405583176274004956623702082239785540974337784013689328956618299028964755263205801705119352061948259823618611640868041519906887321454764066904772021038313565669727110949759083979695291881200236576871782127047800605060425046461532216323839190879299868278909784700418389843356358217796845543894155710425492264654505732035672359821240684502666632846748598490317235981194203903783488551792055715627199093009762995142160280970500486279741640904035663423742219013101922121906847442828255541926254135487482020574755857200383257019822688703770573738021538618328597352365096228877273132352470256753298640666637273006245333075201346299949482820878368464170407473311450347909926215560216934709733758148375859258623491913817136085890767308589917543762544804519333691612241981094034229676380218116004023341799806671312919209926966800979684759906849353688971204620951003240009531622155409461208128961750956729364750573387142205097107800544033935557707340012690818008399808988680603107803611658629928062709953596561321105000457345421851621432841964974984377614541402245419442816784714061561474489645543347503061415524300837929539446383554802008082464340949226706943319379985417004022115561419394739225051367096975997454332475792672512501768502394960078163185365599314835739569292107652038456353492128169770862629740283008180056078494217018407308838229428875445445006860558314350575184145663157546166399118529220876472571504928759137200125187827118809219868643823396651837618376911099177844843401562606186862304715882476510744354500409180170645000038175249370465351807923329456540831740728350118205623379759436641365301509979380144582801854473061768469983716410404797679743741924602737996271974814287231745472747177188889587747178354936527020036360691023950935263399408310634937779121838095733581398623068944451871874868752514643171401752205860343450218212400367100435502198548680318703146203176407383654126710087907068952643305557223100694835454750436100644548545492942533523842409773778556989271090383575667046175901483882914992263295454492901943224840485581153269452363221513888904371466950301739872370882894229659002146909387416846158065938995932224693427354125622498145089869133948017341199156228989381537124923133186037586232194584458640639083249593671302947104875165002727902717502839561620429992426179387343928118323288218150365997211876874256177750271499027210413616692235033322996012753638220441960341228419564657592999539871295593505780553458102300376335594072729048233470607322740600031486671548602556244907050719031755270808729019111485648128856798398275384665127817212297859219884942036687546115931622027925106414334839055863804197387760850928181949486878268396774672265180996944927506039196428571452641242167482944263382579316038587943204616719404527167178180315825952145187575384573301862523107182949078241743644772572258961094186175979073521349863254077020434273538587778591528914780322219229161269591451869862150684379861098263918589479190260300105224445167247011529000581867809151235903801416800969293937376930346103801210267994357037724092586556447931405253709347449835539024394119685081593522475351556754547510395923439184405328414345127578046725592478552607184073385489553923302687469191254553917452011212551479868001048755508440299151481762009918938719566080056208384195008652152342838902658695209729436416075747735449430480230536687693899288904023697142115789273202017571133984735985284171487061072678075146917161461122318142130550804959798046416923183880163983110377327961903015993128115771515717056678512947332212577442308481025366703667885685754109963053590836178002822222559921448498170114488553102473598231669283365069972146081466386821959168805456498889463424708561027838294276086602529199281893347713416660003360361508876329527361332846721921218068816589264438543051634709773721503546453835186722675340498898735689126890227447433085270342062195238990009904217204356551057291672950318488139683648066809906426471699151363394869191000778461747867661806088401874011782146078314202596686677953239758109812155671508830909574016390797765295931568373275428559972380818025720810373269844419507849965927007594787945765806043099022502736996183190756837885060330584929156895205057106402130572629672040958704832397546640512550032743450309921668440432227019843611701009432186111816371854973628713319268616910319289678117508413026849350942051165772465239592138084669413229600313329044586618502729469285392357709831918678103633662959076991180509507084909920499116907081466081301357512642677278884490066037833197089255062214061258508066397772833117380160505897146307475143925817525490165997925907582706835126033191719415792083526416715927005637578079404760511024043553397918431773768943467317292910674677292686712735944117806799724360522783235935205606962738076717953629260789119530422912999999367110672992491443268302801686980830755622831414243291606880562425689487513517024474533889118690633813354344349217579239894553066439473554603801571785042018206270199607394039552814247357689582177728521763141066174622710524286670854188685193224022093918174474183737560445169689656676811125887223851711783510814220952990546679684963661407515353266877145591465608773993389669268019442645488427673431536168165160734268353436846840245568594976745251035062890535829133486501514690916036483284268178853576417014056098720340036049881073585909744466792490424468765364651448694133531728541019964244062386004042440691788493904012874376656005039665657389977639782027948599384049857370048523815680751173695079534450774263779290553531685987884963288812080090695773347593017586558985436192000669677276580570057680542093000227662353642033703011751615376924389834150039130081871763058983918264869115775984948011046961683987955353179716868738028131491000975316940875682525934046936119585199499287345619310436067455158865030376759199836644803247245587270979253182950140694045100529788431782063104327127975668788371811593228857081506059560315770042678568167360105796057883537749830044854423118578831806672481098828617173273830224419310304691867148177291831521608769276224494964967396802532544983665557687634004295726920460141802810711282952452896112106473364387714564589581976475251997349833729660646473101860723557594632265961798114834989338212573999568166369256586454291622811216377002485688601546273759794033743068081431614019196133278737483610655846698096026336591915533506339872945063014056973914354168031150213834035159327698789303213156043823165747104155213027383120964916297320786865350038574817889668426912057071885827951599213879116640030838412995776652706154314496199532885604911358550645316771204227262619694089165580036085580263526494688075355179763208387672777070612472723166743574529356767587620238853348949971240235156954067677843054196538265236851084779209708889669762136210352748981690445599394092685355311393180903890173269284906819071717518796858523465251221672802726429775073398617062904996643924525141006275390982099007540721359118594910282620540541985695687598966194676594743459931862775603423979248372626988877142822838439405770665622848640696865676001538770946326604132936200879714630219549337045675438445911352109966762132065447888610155640612582393200320785303110413028548150789183961078675736556692835132024461519609938067958310562684162556556428523075745106699448942533360321173387026437266632891133844104891066574463475611487552312736968256395989218879861337837994658735134545128820504482657866085721992356818925918575420727754834182913056495513036042524570854492920912340882692475486571168355569225051167658081663216299119560837973512551371106799534251972488188818512071114715927689270918039365359007542875478747839235900895862138715776362051902954070913252994528751501095177045548223946732129657462761877505073291737869277464053069739348653435299669953834219204371869477104060412942319501970290357048071137198435507127540634258783987986039044707706887797703511946677419187548822858430617192798256431754203593873848516280622737100109575993403643433330554955898398449519183224861402666040827793265282183730698473621233219750442268294541318789080598431345764757599058394902715208408991804559601278419739253961711552587132512576644637712417489224992501283397929358905138935083864268955476727104693519818158947222009188365731780348336189091354993091691023788574279460950354420393656697833152673885021506547474345728739390624983785858553272062507226522221988089936722794224271116290256964634612779432663023963983109574286925366819513993686792001585935802916803394849945558889547995901027594569351613079187742556198673975572659654968559539555581515288792445187070045320706789908946332668976135560165429909607566151261907196485476884237765530551169949733264262323853900501593956973553101346903450468629534798222915660402647062638878710904424633158013346470174662996345388098982208048489736507165287028282135891823067801088001998087655217516148438987755565107575534943173769181144272540510905113582218597264163359842874965671028257008230580936228364728252606691010716238672508893915647808535231276861697912468024221901923797664990385475557561731192333872396495033480119602462377201758325607825402263756609020019901074960325564719924018199464680404366588828401994346371434479170367870131020598972370152872846481429559614369489837784194944580998648121273949045753595446179796318858131712796416854689897992540371735074416995101229924472272769578627896889603907235974004888081100733343508218772179523239017865010324856328106305044114597846759516553486389272780157667885361719855804272846365068372384702938710543766316596216386503210216212608850013822372362481005333591515193955654042486248183446869549329693080648236586910350378945374247686773529978821665728437246616674062935746301961709245969790352730937037397933476213267891159281223238813761061804135253686386622164325177912263089904436095658183441659339714364658971198212196475300757252064428870268704761222985304109027398397357959962042216983928321549252358500092694536793483732068863362856940767498806107155820050218904954373256703763768244433437836982806742462252649264236780171296439966250647260859169388469425771463265007531663668604650414701896774690249876256023077364833395141158671457413522256418872427902452398431061279213428319411751434548658300613799197104054388655228083327208733721662260151776593796227298913020712685028242702015945847267211617349160453126951224637047703366106642391401565580194891181379396911317679144022203303807968125209448577536640818940603486849161031287533853363842206517508153130173212579656925051200818504187862311246337431623949063798604583941173055050647129697556862166145701373678558915085713099553649690293653442134878852456565465458011704744240232331405628552493667026812955348717249192101330700308014644627303420676898952902336085805563086191428138544815241968981798713920588071954165763982175941958891954312192215344923543351973055970970928679010132902214745477670903184663017630071150058422192597501305833744159505539632013469395576678985530979844440408122358079166886241147828143256201982142984676648096040248569038473587457898920636951547976345260887911532336784206066364374312145886621173598866013198720846049933295488496617720771852852758924389099243738122653080627549808889843547137413637664328605868091698462212563810993221043242637922972695139078299059922507031154828482129242297493284179085313867675675661724069479354488869325579393525802569551974542315961936517478116801120405659800357853888815034964677555449498838420141177910073838216427488779691377589520377660408546086455118870117254060904283574292294232645371697977843921125359702014207773628459177276620968684812505150628273203995264031552886598005665068886199941338246715270764901374752193952702789749195506081850837026922896350476623459729570819741309344349998437147650831924186878651180797994175450666006127685727137665561998744674365361408351350506429250490985208511060906764107226626107230866859311085867133537425199807573353307207282403182829307676613652813036526946650398908268336626193023631083400195108410367610380638885529351966054362085180743051217957155946623660141398272747988427489834105484969040972122859520010043343611340318397871878667207570084354784867385984677066478689719300568223149876239621846632051499041022457406504970009818865070519010640309028810096183008526471538677190069375610793752850948519702252995406983972619270471434176822605490596429804650694525972330840077564958494793542740261120568456757599942657593215932108604026362493089653269852463865549648134497605037213861830538619095802862641994186129179799058840948724610625691341258269535719917004456045306416168916450654955978523014218095730646481835063819946477534111973673483667814037418886250820587801240668224710512408337302041830930471399489194488520709753071246826154474739049621601688316571297960999450078919717797065782046466160655585500356687700363968098267007433194643545785011653744802878487248260430274966259686641928111552553680630953921694676970925135053537670058091146246705186720226278647954348830375930104477105592093031600283809288803981878671832852133637584791580943355093434443111388037316349012003392099086798706135802307091198479016957944463401393653068882350698842046280056373710998405834067741199354425817240413903777437827680558871187918227309453847143734692694269429500959026071407865370325022713977876204003608912784063339974974935266329176509967694934998884750811366322876915285672969244912759497304932928277102373249171827612209951342747863611139560075728625518131773425048049199992864384831833865875550881231552116684836479867420177400953241364118822529618371312873971392426724670911989715551827608012464974863706994632200771771639045750371587055768008472028707872518672781192693058663290012974680166581945729006590277741988575704547602506505489166724507762520704841600175515791756604856181490318615709385413988246807760563972691804584985170503911634280694107744436376931174310509757214622140062123183464913102110552316071214616859989125019193611518249639137071357441465699826087980408207649272337969226685278239854384165758963313149230797325356608473196304520335308294511390381728042861529616359616928402135889207424372434789934801796686004858837063754260824675949709697764843062482395108789350022703787838797440043031714677345177185002545424778794503144247808270019173217145303843983428919782185606353619857954612952431633374465048839978794144073621852972725438641683430372975558091443186382176051740061591138399255700672247575914181068327716544957012962228089049274037082813390992907976209407175162239982465194270611523480630816519442299033144692635961100128716349732139938922721607265469233493351818315437339278251695075835462311104631177342866381003366796712896812417666175415874138746883678813674700164724042076873496680123841798008537103376443218294626424306419975964529267499051354093082768377290701785393889325383938900805911600890651039150862491293801618997275800582410356259782479367157964356436435315066156813897797251452994082129587846701455241423641093076583205944952070407026724180181867378609933664237451324114886834030267084576010941441299918659317790971444830089566553545061290868860238791035516985232471511338498107649073190934599279971885561573493808711070063746753081310966121915499511116039862493080222405465597363066790916446552264071549972083794125006487456316644553681283282882107336985492487918368617988712484991921873049714560096044551216467880008263102568397246991003048481478591306203386340606507006512946167769280829061828285221386567982418447095194984736388223508699287384507955471016825714589392427598193131404223595755124889699140259349473948773048699561323617683006507594741333932125265156805835215059652261077977088117385446661804373162451168825616568138615095479576633184493305932680247815821087132426856666883603042037944968202911709307509302183403326941162098041617320624597708104500970952153989047116694376563823862857938795746466569927256185340295777624771419311763164384873403369349898262520521185536093272036503256680847238058034136654921367660595959632478902310715072926460670147746541689295910040813686107711383363527483552421252512743449687108730489024213408248904083245304246024424656807026562260467766265760225330468678194493264922759062850235933417015779794370364491138294402493720389395107237014771500523530760973878820209821276195035994958105660511099870111387101557242825724373283094027159189750753185218922352478989834978746492318185248840455904241212725076268245872503609287517634693613360939285689207381988654297450176415503643292335734939652737846526259176207470264526878937338367594342812888136641933859012719366253539354583425969755250334275613682133339265603977643748054339668879375291134184195602046699187976277378881393757532609712612630642793461441764484033793298629223418767132147235151104291893253505327487787423379744800365651944470995500674608293832330779618397651944728571242401349516886193392211579499528690948268721558172911629684305246026147433679778454142904229592372354944857675116959864630356734314562259751263531295521627956163460320374971231619549616034930610381630812650130345652526715618235729805798340786231369332485503249634246438816299292413458470338563761633073151007791270975646657573227846938756054496396712009552475180584787963733228882738350709956282577843799722297908542498366587396356935393483703304220234148351419328727985044103232295530156992553449103299408422066951908586310052330565606169647868409157613943128020040672566896425741008904393735848683834532271694554554110932238342356876298492938501648887821176649516860626125345505565281386612572017971559903206893165768396968478653602671238807535931847391502191651499628220446613891582536608874174299457701057006606666696707274706925191835524089330086568456272503128068291151452368503069858680828968327163274995292361855843011944677605600188481597378881429457442058609632980018879392390449091088730522269581591262187489402139021207162936310483043175841280935337895924525976687141063748662871066148488168322538039624404033682488433054567242966869010906506856078048053565668542772047628349078820268277680603244501179246365936599045260349720131908200379155142082555837372180251228759651026807115811065178115170214524077043458518232697395114342357386332403393594158279483968370669338329364565005054287572803650060629547765640876034840402843833323591254523685206183107917327361501243494288909764319539656032519866915746225886109206743808026421899446957199327190061160610180913807487650131009063267083007205731853257243872923658628924670508950741592661794597927619571193513420324567886356320749567167655060192780339368731334260496883054446838359960164561019519910995050186026620031599716543763164409184838464901008942725289827014848631274052773491747191602375766623407415481957036719244139733045926102342891930865743319550800341217786207703211397968037818533131308829277277795665185979570607016996825401448161484296761156661538829268227432823934010491090838772053928364629203157484021002442911570608211962252882205670104347339733212287247494981355906255436329614338832028023608978817469920989469558080114343717878850097556894437260437466970368198836189898949315787493510545347522982718815882670114517236709727958297106884831320603516721344046434086109297746359223093681092427040061707063948149657194257210125094522845841516344719244619581577832658078162444866552291337414664401111574046478654242820393292652020973360161289300585801853970692455513813428594932640136767837814150761916762995732915488850578474676712911895202311996654618558878462615363242877953073829263110261789503895533073450747075447549960331572531987287942269413139709333297052393949911126919277924046940105866045639947741628127482767718926247507470359367421179120032920810974818093100318240933225374839133264126369826104168746524736382516002510955480529157361419952229850319663856684929850527842891303656529257885454948694132843315128505890764019231860440639254070297650958955303272552694221731016509488909795383635780062929998972594624048275601413542289671496595568928990587463713553284231609870801764392284516069285698705333311387027270265602781369131383780244957175052330538283827624412888805543900934593485608218626151475267867260188981304885510518943443363154016426301108698061783755702488541007477811273164638770015210281387799787159081374791291680067017818966844791914908924245776621394710804599858225136542655024198585233652310194550804068775092149291406297006550106613550230586329144412779574583920364669573114526915618129433236105431717274773999587943064950628834397119614912721696622923628022680422766015454105495866935198066625763309442801337606813063215418174730115181898245011038933037546447589960246278281551714928758835941636990721433662796358665226766765113123590922007087450925568629409643495287204925508291303951769995214031736100852120010432958923698762552799136498992460963189967510718583299357315357272574016395277224140882764407372393510092060698717419663783606880166787546886864818660417742066893062018335955844621000256121982007283839702526877265445474706097391761823835160996225374756704082586573577517276824712863561046194992652172850171578081125626118590351108874867090279467852100905878276263221889086567457357580240232597840878283220287937088338320932019241070977350660477930421430967475327955009812389465974549864741801659333091715036944650867989248113822542616280171592196119236528364914900050196411282172468873202775565860604866051455070239060148492968783129400832186051315350622617114553189122253629128198441262497890457378333720860617742363552135313832866213489436839053578623636111592293566089730302709507207791804062372043655079220734158881636575209683237364353480984874477978461392466272227742586390968927767326946478529077138725245028512952337186621214529315487609366545369625615211058492214221397986667324803658249064661512127824341580344336941478619685123259937834007901823482193327928070382474294469428581956836591450765708915031054875010969308931175832069962188175924314553656414376787613709163590361535127377773412525171103961874194439347596353187107130377147386735468446547090640752537273204536884605189140159940079575342258021823414285625539982909973630084448123337953968026702641159811341403085135238102488976462963573152464236878841670311014643178398278938630505776204883309577504040962416117842471986179290229902855505706831833729085594176121585381925812941258545153512533329644823445183791602940780365156168080347568428626700081955699150676271173536162522644160480928602354631077672100185245112018442069074273647986940730933864051177469234177296973234991110283603083295176330654017641008905761980161778135544301619145854826758125838435362034372528125903762699890318547562875027795090429868266355526823005529068469737978203954620068240011569297038706323962377095408235387696988342631555835510425114619792725692257196482767113397420334109504609709913705711880211504947706345530404026650882750336793624413247973729406184770344636567867256563526009026162827033948713814180904393380059020957460360520317272663564173171379265188208764212235762686374606518084155408669732785103150705927684341567427590502274774483779444970723007616588568179960598602388314503600502475188512120144770969710930369202132676346685159315977072451816976004972771935998720465029588331634560960462688023267727439424344066360507013320208700506121931025685420635774769401042903878347319507954782117287531416970387437197877918390533960965093980893646616530985563307199532527339886530969039849806962876427331366499209653258661870170435735031620389665122453818406290576951939585804073061090053543565967820637608040986772576004380881895044195014267823810584648041580611156277872049435821635907910819861558515464626604873226565801667693276765811098380099477811528271597436740858890822643461519518400940861060358125340374724722906424506765066090027111129373083636583284393379005906393283778678592460507934820411944564104480067791203069525072600284025668707052034689599340548498531252029596712341185397327184128664784525026102234167716020283458471525250368674667302102748666777530166708661087502706621629007087301422966535384379376469226431040304464715124607990887898612022733150328955245356252921236928855189987796164805317134769573131997615183650939509881166007248606301400879598118130187707886708620207616172582010202697406908568631865505381857247764557330394074957578718079255673970533745209690941267947492074293986712472525216305026104039141113320960552905266628426110539447457851632443868364549510705899461215805254106100909934446333526935238815325268734078028266796877562552807582087535037849987316043347997232423632175409184644805523397152006455708169899224978758283845036298682714427987871345980503372512149948327133530185760750624158956889884653334084834194494521144344812141730442301491141295251945015414832042617953890056810582014391745299545302109798052094289894119412678310838033159061947837795570870560986751460036153477519116727943409937705592133170472791375218973603801356358373866132223352932508779695983956562329917749582838474970429973722110281078729967493110966381127146279292727823262341358270388379002259273514862144791132959921683309672538418496414833454500505091506078571891386453709423437020309976566072134638927789926698377529111639661327738055996234633409132178524229691030768285690895084627981468988483058315048039748017160372239570669410054148545232762612654029085655377783167830507829994243906398039475251494023938073002249009596154666621050905606648855194698754388810388026141201342604981714480368056004491764734326010255285613582990942008662494536701369442899827389309998769670942129214981717000806183411576505173400707959306445448075185315706744246085826483477179609292006174159942558821522393332251997180123528423095052727793537946213807001131289676537349063058550862667651187027806309574254367940105483560115583792198708841660642906689799857547829989557519359601540291254112102509041694278467989915706768460962631904106776145965955490795955196166899717502045935676914233709555366713306211032395888331223472796946544191982236451090173038421186476257610588438017764466161525865486534246240215023851761419580996089143396183523874081341576239530835839771915192597349852921584884214582016038778743550986906098353882955941932545611902370293628885322827256038937179408644224681357475350682072202376385525215860658460317764405166508431265377156727736092261957510722991772650030823642423837959691156767939676877215606081586605464173456396906232896948330456420860436218543177429012714480758939825375530483378800587122009831466014297740372711537559415530613898179008991794091373190313960787162335118836418349274327838595158076069746853473750098008415267470583407483646448163916415463434412569835032996996982363011568889760043761847160656657483843251405375825164356424575030297082221260520060841671598360652267370894204152310098638488553131997621729405151875094552571334866359271582619276049649244946314111391275895841234144180886990850963463643561178337149348734336206371643141601713485849224941543897607956438464648175337027591537387273386510577142420624031234182602350940273816701605040146699420228478266451329033034370601997057466472897835569125290531644375050734251126096078812211519522088733887416670286481044162578697612145249533781019870943122154854024828980760533164350774118693729011721259724842619582364430489075802204331674918799280077266765013072900682956229606383485723700455220714277343945963647799643841955644566167368788736013501885708385561928642878491883746324427495549249069035036851399040766997890077807379693150455703636807025108433232489670319542342998421979086491767808529385925376021877875197297457260567241370495193159094914167604457263183251191041872537837220518230315307719615464220142279479737981557620512998851481663989519388766629005826978184770137571513832804549576668739438057088088010945446962937348863812254913708990552547239056200836085188496533481888019234341847865221734891305996868137617723718387624408087256847598018698403938338688883341698357000648227943054120850161901061975657480207907666580778898502669512818761381528617069779669645231532922413843968182922036593692781987213344230680233407900388745068003327168916336708796538658656942023815697994760775787669638687816418942465919716311361347046314005070794097179711694550565075958293808361715073229451443543848766125010077398300212243165415523731924763920472280238743385750502992739819613814041112230779211815326948553149354048672017183364614119256694900173662548123279795495936161609651973643358701240005527523817340883927521814163584066545401656764343836872525490915601511100511066086286991072633065282474890996683773149817947910209258404846182567513741794120807531533230559173881952409764600074181583404383323771717879355097427317333603360713781838665644635468318450268255101498664146457445647260805131272178326919150577942309541665796217947755333233897736574741786406966746017101126207435868867898923547415171256752746985634039873841995293138964864278939222434836505186821780508866091496505997770322687401414128073994264460579113394912771096077010498551301205309683270156714360891105419254245673118593043626094190961027305014412245783429553737365157694867873555446682804716946117800260342216943070944589498538405516658511951885175111665256785549280424686525670960752441670150770516812830773455180158884537384669558971767532672774850597307493266673797852624460629793050053837357664485033996724663473981636101510953211086086001217248958183068717905572410233754492342608424056754144576233186134845490619546203865209375937350459839107940746322509758279682040898199691133641226685862555810274590713625029673883810160447846193079428059327726101576754168566757270904442226992331676207665271623480890462327875829127746454418247455493543641215378694728261922453946832460478539231880741695841503432730418380020074771763609237214999208708248150084900381360806076607952178128774436470246165703153784166647279937049690535725354208945207582971254078699146856666670941880672010985582212626203039986939198449444859857811383882624142999237289177406471146441848795396935084514735528480374371465598424096652288908071154049001214614813492689511911119732988152478903511152467474014970869157887271958230954435966926529998291983705589570023028064718895642749040983833312824177625754270090726150547719161095155629816298782663602529694170313632716897082338139129328832339881732034382913765176647682467067125278439280269671805244255821755261552649256927286868457109183819405375941827373427628838585839499313211750319778611553411243716647401611349093049553655720617880695408140697519879095083105283012352914463817794148004661320213079829116826973954446477744869495956545042991587462518814787935783948901196245397283074353537630262469164012881380308178581944375560781527063353071639484814931861538458012135866135859207857028295261013053043719470128978180992085016672375681697299695808223750933150786333609045198785910632289158984310318132614581908088672703132564739185541650134991014338641082360916266185115889909473167709196269215456251677752955452667274113931367682368705286779353837115304726479873810636373455892774467743308515924164620133054923689350667021815038940271889967987403004974939094803592173933690510635718819572788891413743808250975967022685853836880499119192149608027134032845503321033935921428454522948946990320320224592639794098985162019428523663981530397411463575436908438363127775683818340511119060277725637923011461759782412652193615529836658555628596886156836122252739177332931782099205665001581178971285443014014896034747671274638160191112448831569606448567793806852254755538817501891693370876900162625145424959385361586302733112995673342200897294736348441837757084119781659702708419358868638899812262718690942909592212432376687107246022804931867384299467503760752436682453016665897038123151969631356627855711817985822431865446072548961638972354603110161045473699623927541587114523486528206169860070818990686167759254149934956760252099530844032957491595321813430275503872893966578996673163260676531351505118162776916189727508980439637066179771866877482522075476172413106096601528209162651858933102303591344716505245467109150940284535929830620687297527413436833003128323728347620878103070857308739963051986864829781973789941585335109017798887982779537335430304707588344828930630241724841228622664350845216798878320027120151469627459728852022684274460559603423679056794224032887230929029847902733303674417718202127850095838522365506603482189327742141521987063867190718308873418228339955384607210287334191684868274839305193430249874582719381517321845613167468858490835589678523321954195949710694847860538584161717069559535076119614456207451188066333811317468452675993116583026816483641456808494547177830077849231763849661297985392947655311142335043209058448012388101017153133138999127909585614809586300179349641428277576583501400375187480189799407211043127536195356275904363490000324726406018107733100836164887164128308231086169139894404261476722311958811092694840031929621557935645712987777530817549583455711039697470968382057186616688573850042705549712043451882744660657828244295513938971931914763069161410787820307143779949577333983577572983152732555466658028378427315101284649703795174975472317667023278657321600219973386231353746276211886781231191775976084454110027667691187506102851235227105807585403969690205734722563585426796210362741974942554078377322049634901668022957914786933674084510842427360284302906769573119748202566912363270082895453949231729276540727327891987383653994431374623689042208975912841011415192442448142322670561510804161777105464153224159729920695983052746059669317272721710186364490435674835296909995181572695143794761840185335540044028790049500562620620673111956930069636730471505000582120355017535697868660370190907553157042359879695171523928445914663419067098679336470228608012971294878187863143667342857804850482112868736443517898209614804797722501761395163302063755251218298102042703624335521933560137423575817198257817970545730752777085058439521785061171803599741602233124275517142687186713655041373099782289901718789871483793512393939955591763344062195512564651828036240178673655716847832184915072099528906967412579824941370333877844506440941543086483587727100069050266378962306911852839446453080925644319815480942891608004540249859748295708702941996074340186971298942212854558421451409844969926785934164359225520185263551495692348315662984151483924139934589980814292191051170498710854347173402336625832810780726757449237941035514772685426422752117223391929903695818545457577387531323396322539323473724589939937872329324568176124473029951096470098764557601249180284100942411575245654898881186775689569468691858225168170915667730790736776975447085822912871740450788173908341420414278346332765331625173662223294403910979111381924317575516352881089697792833465878811746698300521973393003770794896591256511539445298668311484841387894417335209503453455445804680956759299035654718938310597856118478790897021858530262272570412491475378132560371587378828805228425385895696762060598727595900938129303296647299196520295030105357524079263951347910074811028129038722606017085981746092494965133701517234166376918254443862333212580883560853819721898912335324658794991504947632778465059416328721806453976406154101443370576026651754344898261278159049680065853646336698313906802717266056404127371768141729501227325199631183766941373830517449687669845091437407235215592467489299355644864734099181451975914112185771858837828233903190135344794895639753493368465248039218048512341721034724225521814642773449286491792269194304277923249783604003143682709199123810073953497013588898923896514000310313066752180056195178068265474621505257782896964314804901972120967042186211355107703118579695498975728425191930177921507401398431329132263020908970371244111013307665994564436457341148374044944542886823189028097284502509603367162465881460972809935945932229660677638611383575790068536198108400322052849265288656374296082236387636909167343946011678090600551702517824130403474257944204048459948268063132037469009995942179365876022664204074278161078129383845011055089247620936144146992314424823666529616670835257922563426322884610906181833572683364564019394253684774168856372838718112282668526095498355995337998655717257846552444209430013913137620453695425930930313078845115897984663156588682287780959924726559684892647548769167962763765666046414335917525740641509568839286769644800101397531663755314044953553212406314332790327572134864141105565708055029213652842137550208524689424309521852803800425499867878066951557467526678700090475390168181829850471714406634997431361455442967875681600177334029891148008969009052734405620117173880591316314653131507119471293182448731858009058211127146547493873559210809461720409600819339803059877601739379255540748755802610225820907671166017082097624354497657763385116768120399263432158413786106945422231614111101274345225062208185314758620029569933307195830649450381140212720266517036309588944286129544800971602906731446562589634133676907327222753639195565492270682710258769464895321038773008367644568580629895520017977659884842499070550522001086016940988580394929962665631997315551984311941049182893043924298584213387566078839274691166932113031568188998630208584672476927870162369263730482031152708140267489599942265675950036593281516565834762362391324607674353954958966589281150616398536102081393872455568801409756903632268503845906032921331140819027910414137815039415149059601181915863067298735869086419784238103665553240230513430143609554365866761924513304902072331558660400914587475177992189980352001669346925459408370762463759350770486745663577044191709646943974600081014937135738691809770561397615221960404005029650997067676741347780340490073850883814903044747626989416246322338447694766998008500783327048494422723207216180089484265082619797623984084730252338433330742269451285657179217763456800647983578458350664618716328535570722296193569675163035932781141896186201126480720655998083608335767655819189232977528183683255261057459769925179613843826450811174475122829941867557028658485268598982459056783037148900389698482353236179463959750005744414883782979368594253996721122797197194760923634736244180846175729463648843411426336227333258418594028881315004145692203022625362668138971857811028414260631694892926202693125958003824600029090071308170001299786580214129726705732602001726695431868041552490238135148454795298991991418438601370033792266550723594057161563370426040962891798924732570920541829460377390946976130453555355090437042226209262506077812150370864201618514024152637727328128149594610533605910720549379390107185155147831834413308422595921556181452858391325183307739501094642561592630347531999980587355497778648421223181455060447245747185299710571265190252981176935502582731287198212602134900821697674923341828071571189118038378241090429873652653404557625701407435251677450565160429740414604704703387691371458796075871483543238900158461786418684113933414451203063366722894386579642568863057123436891214005818366226256398202129917111650551695535210018647179176185907439240599004162510405464874311934085061928693639584243266575463148205129377217174990847884050855544710001023100110087265136055730567319483490674612049977939565906789015290770392906581471987522789375917166131313335829795338268410808675321511488393134291698414711726453106927678480454161201054104886225154961668176888618260034724337743019804044340650527687360435455028979640392735494930514394618009183460319643840454445464984730683643566592571231666690921339209225193686595308508157866668254407035573154154491253224643164195301664308664259092098684968984567513655549417831869461749884809441836090100577875282575621597671284030947814696825964056087056482046693765202245987725461954340833781077193924295828779386786507307125730322350403888704019786405796514362659903827737838402705670285760296873017300402761534932751664981547840558967139195432041495283972728325395085025136823529979177566477916179861115856195725949450473829186310931975259706578658388577197429521962453507984887013494628102122099977038326546134592230494020210267825869846989202908533595239780938324690752293363083971943163115928883420152628424590279881592998997895179177458980360517282562182232529777028358493829760596333287448108896084994185311416993973059607479520764342967181063641346701216391109834407448568931159334125730970965914864576127955797739101577617440389562727502796637747112766616844196325328257157049730829640215857172157375931854000738632299082298758736653327670191775850452784045848601236574203813316601556719301004409187141648449131032337804891544287782108320670331109590729417797469755854997677349697331111409431014682833777281590622420431412625658527598574960376405200102607505057406187475703144262397636234799683950707912819463955576111032484299324425920001638858302272194466051728873113465577142474015774428556117518059397072233630773303274184714568682704471907561771497954399139307645931894151324048110915518675639037304614732934848905159175309197714464923414823274946818550490233089139850429810960212010007456590728850975124654272019548541193327818967069992559437940693317293084778251098596698088845326872711334900500811072032735673136653231541853712894101040092605127867830840495451017885224808801062673311309683364892358375569493785223090102718187335170798787461899860819997490271486350135403244211073199039251776133214367717031251381882833756474147455626034571638388526669041915869268413943450923608641828303939487334743999452750686423748302764688622462315211827151865594946366476119507430439592312430189448994337449322725829228309194080561990184443601692553104086177189127990637992429430596172555604435203141073467975020121911562868729268092762307137710597916683025737806507766825188740269869489502738131584523574645423435292124807221604342379848271965401230417911918899710439860666448133473188751542560741396432704671219896462540652532855792265148685987011249108463745895237879442027943959445066378871382036470681424022127446486482394877532993457677597837133130591854455686727542407197661426463575453670842374929969540985023505383185925919074499010124497630856118492265919494653751136329046148701012547538836695409836365929919958917832379755922547704010317701259877250522350522501398280922724072330618449016555177814732721642877367289459307392470370259598596592827371848072495414360535741689525177862192676406270304225243529389839144339925666235184235838552369906298539533604800277363716667973950066687256041180327724610441480549389795048819900044508170371860264338096369586119872419112075730705178466102982458688632623104666943203042677585959356218458052551363750934660209743960638033718517499795857870345014210781778657241510164773120347971490300839435145362216502811278510224668584068566971314593577584898324236287331128482737514276370191772622678114576204264228978694098127227909047733362766059192535915679995184717343630698316621288114532875774552691633966789269740600538946506078995578896538953780967221955626117058284837802025877419894345531554388173485314850828068118771053997975432535061014002284872671813731430519855652408515678287385909988352581839820227346174570281920766145902571749331510158300432897024190789163803768150663722875180521224632180300520788644273617173507684181598364059192655807644585342825458915883313793029977695224638111889400314910663244466075884670305149118449548311381732651192309968401093662297401362704033010984859763787432279438882057049332022294964824760749055968986671965924021245844082516002039685650668162392104934997683069637685999798124402949621620389287030001263785103092915589179856185453846139851432236002217529655663261907561626615604630765949497507398631546510580911652701188185021870445614605543627056568758383102947439422565966511653712012438217513398128694089790701981144919281332401452900269097833975387770639711393031859735574293966481054761725183473523592659256487295315439530542508029988783122943944602506512268385576361776360600078170710370210405552252807857755801256996590037990743824611750313820818454040507798367459169303490699947566606198974554088188537316818975034532155698933045204976646917637027024053340547925370939824284513671511387097230472036924337543649059654593005260648216143438296528022748074261296225053412075842866263591564762327633649942377322433914571116020937315125511772246610505323313158552616110196990935212835947959583482575567553580357818883078680481234715072095055340130089144669157417389143078485998618157727171437270925553763185862733812336407600002082123463340635164020150990849701031771170799936242374564400348926808476524265974864070533780995441001707210878968588469319495675816586392606998422848427536949846685935784598957298275491642388773782228157303017507355955205594079008746516142962680405395379307588263728094507435310560064246215760052470340455695794629534441414673914146546303387903577647693059218104753966146276707193430171830170291158082405672150071076177412586910780289819338676770097281393472243577347218206698876045738810671479438582192098403342251042790819562563321777460199918193067744426853773669232720268932344244309107871114083492733808674229922724823061495968115328537202466234992123206378938869231310674065669319903137721130662144837760589354640504252436964914410397107456370875051219769861724737988143590203680923299959989020659310774528951570225214308231683459197220078172532531093815472199306376529468399943037211021718509279165905287388516817469581759850621572533935088841186650278865538871708603148198152846015459620626801312392437768560826227617371094528550440535356644679779687795793254569147495721706977179948392140079843947745387676062437849355494866024600982177229372051240894743109016353315637001767958381585656413792931607570630933548500981471387941970089587934801121513916839368655521578699598950829752818649750973848969806450972566701380905926072702952671178346910534606941079918707696260734485392955773276540365460531083890669776952863238311198900886709544770244879961228816341167541348780590858092628232904619572491198963071371522849452873468835460144183270648040417624017013668306931162871810212563774463089158316348733782364659517152697223063036459070391388500056837763638768249538135679957056093416830763596055137552320262175131212767140055255723099882426976443214126912159265202963374727065592301640795049253058368203941370316046432853740508936123096785829304941017603566109296634491621869148444497178943961231347648328961085604535660991646546261416894052441716862753460370943285079156883713331307167061738904707837923854451621963511357714350311378774665210237225032749198053911966024692284519342843229802339782376649644609780185305754861567001096723143818823762817778233078126690129927201400316524992849472332808953390075039348829218638187645571741189103754554558432755621394005955807620056251310029574054601979704762860928445402601231085748872561218586595539977663351795257737075469068279529295476963159124803851161262818255611926832954439747082389302617936218848692582797318390317510538631060803304032548853787913360134711419585939712828452799515533286949186470493319259886696106650494491765305941465365174403210495912389889856501432170833147329771749469596741763635250066716368981085382048571273773379198685593894041317623472302066119005077502148913227288658463952306740612069863656523244180335337624408760214776075226884104030901686878203042729184979636303869839286652247034542509551586136571930574230565423014373753734900238092706814510435849488647058518913603084147324516241577920940958643880915066125899706702732538450233166062116050250078480742644892681455997462207877545846761546041279315710556005515991120978280322664419485817288774148878660334379609106614513800793385651653359335694172622612262936422793524213184539552302577779434240939250988492523808043381088806799882997337932640742322918988336281700887431588812968816148421307287576598524496848907668831941867234098961800601194535451930314898929928503443030819156048828488247507634815429409453486444768394256290349252821401883935413673964513693326689999493787459433215055937789467364495976749018787553237777758633141194068699970242676123799549552469833458384581215577872524024149265953974220178777275001563422314232891405380645480074425318902123178724041526877314317727164588116356138543299597953164856179420438395725963132951012037836564878394052452203679559549894355081122091028920663056911517703085092714224852293548491898717632831858272636700684022804854990206047794846938699762422665050361444539805234153442956455862187614771773747054015081704764081651291782909061211869294915620480485694111808188953083500112411983451736954515257545776026143115517764502227302038367357691743808421661386567071658180157851716065551443173171149321975707568497391491947310382901768470155197648275126533312104644830258078978569283790455603554754373237078769291347010155314196352901037376978512593477375657652584209803827761163733810595959001094611908897318250092564596996149222247874311354324894963060602811662708498074740455679719431623714169382057526489605584218414882212339957733042715891633809714049284580025455314509517246601865952952862956978061042759876261822051804893704331580299248044325002022548393851760116734505676944156971878944521801097852293769252338126335148540072699240597971402505388406211390373890673209025021518956612646876264194737599097215680128016483861158953009863043098635803958154710716190450915848775729598869573309777074510055798523462173741185110788093534520106363816346452009551044428737749363193808397149177486322654054348969963883625003343133905086546890195019579288468165541850153048757013278579793755031691272810224306576329698322520620161993344537286463063660461293666358825793340317763663812982674382537242097449061457499895401999154483926684546200818737890989250721155346380327697290125222698652439564622594059147485356681122160427624713028382839365466133889288308227573021038908716210561566178900662887925111632692968358313457741306204649476724769376011908061093716177743816598233503728165691614776060037929282957908180562463916917595961319854653294366760218916988613294678886273550308537966077712555243701388196143311949546778481289978103672822420589332500204456309639256035508179558929441873649457406226604222339247923365601840625050235496528004699516550903011264920176815384117519782370012754864818980261861701575360403942807020415788314790961835935365245415216514891512593448196142156597512056654740615708758519919246265729856927625869317094723138292528293482944373595045395325880999071687149263610586642913660481399935090937663757780608229131482387364111679161755702175905178100011876039076200051091315338894377885717854082917887789574499291362889337525435745729509457977079281833059475815822866167565639836278190291133472868482154567580915404043883848386768774281710779071020384037011403601170993711421962990574651134278376714693802328571199369589379882628895276708587234802315665897391345548859650470032196924348736027437645030899417292583414463647864859935142797056541614053510220445408299693621832617852382047129847565443277301638006878253310773684407241785727342188139580852590221273924269198527252737586628461786645195317972729408635492756606849937119867508545544348502803526409754408623708953903902607693996552513605168466845783173770647724415848477632917254825723880850677356640747499431171697147907972794828893662231654488212966552789859605735631591693744539179064100334666994373211847665436600583225723289326279675550282230503642866556047801192254787270612186345352998200578797427945544645621701657798868882200216074529572543639742006234429961251905818613323206758426046721339917898046515934541377119516789179257798778309951090286987572982922617834021688077030423313954862533465412469363993828929736987627901575922605838582653450160875849467750987410071295481367589570356614316137734710235097878171137195799765415447273260849338812637878300860598230429396846345363669063251384903646294873800716949407394499554567748162463874300857216627038244783874036778486638464213332568477742163796219164129960075440510522048855998078226109786273433994876868632363816708689804399907263225400081621574107373164319599518056013640899219521642015431493832935320438713332434825500897701862922998799561910895112841490948274835909187791651389755466784429964746167598314679298704743211546924112479449062927840418881337962692790525502491755407208713124757499535659399551102157015378385515253323841476975056156291187123169768852961927651613344949034765252660768828679499325287410274552847320971607834088735502254759123219246084615419636867284720956252115569896868815025607988145886220848045523144248677196363505723945861097806762689137639230368823868411911207507774312029009608987477944287574451298790964388055639235276542937493283444700707494098441297959287557987093863176049587732044191376129671883800427938500067414092398812468801312329561811921359694835588122971375678708944213103786684185257190304000853158348321092918761118972437289039100976655498553972402399664415713850670059930336214926884461140721082021852519546626617012586879551133602424816282152594532664302063332166151524737186819736571279954691234158553695647005465285113884800937701509793898783902794965149355301784000800083783959399715527130048132854226775044216639697138573178885502097490679973853170978647749403454856091406608772814790434068990479657441022579044452180823417094434141200739609070063727389952378658063894910910688472154648924485951